2.30258509299404568401799145468436420760110148862877297603332790096757260967735248023599720508959829834196778404228624863340952546508280675666628736909878168948290720832555468084379989482623319852839350530896537773262884616336622228769821988674654366747440424327436515504893431493939147961940440022210510171417480036880840126470806855677432162283552201148046637156591213734507478569476834636167921018064450706480002775026849167465505868569356734206705811364292245544057589257242082413146956890167589402567763113569192920333765871416602301057030896345720754403708474699401682692828084811842893148485249486448719278096762712757753970276686059524967166741834857044225071979650047149510504922147765676369386629769795221107182645497347726624257094293225827985025855097852653832076067263171643095059950878075237103331011978575473315414218084275438635917781170543098274823850456480190956102992918243182375253577097505395651876975103749708886921802051893395072385392051446341972652872869651108625714921988499787488737713456862091670584980782805975119385444500997813114691593466624107184669231010759843831919129223079250374729865092900988039194170265441681633572755570315159611356484654619089704281976336583698371632898217440736600916217785054177927636773114504178213766011101073104239783252189489881759792179866639431952393685591644711824675324563091252877833096360426298215304087456092776072664135478757661626292656829870495795491395491804920906943858079003276301794150311786686209240853794986126493347935487173745167580953708828106745244010589244497647968607512027572418187498939597164310551884819528833074669931781463493000032120032776565413047262188397059679445794346834321839530441484480370130575367426215367557981477045803141363779323629156012818533649846694226146520645994207291711937060244492935803700771898109736253322454836698850552828596619280509844717519850366668087497049698227322024482334309716911113681358841869654932371499694197968780300885040897961859875657989483644521204369821641529298781174297333258860791591251096718751092924847502393057266544627620092306879151813580347770129559364629841236649702335517458619556477246185771736936840467657704787431978057385327181093388349633881306994556939934610109074561603331224794936045536184912333306370475172487127637914092439833181016473782337969226563768207170693584639453161694941170184193811940541644946611127471281970581778329384174223140993002291150236219218672333726838568827353337192510341293070563254442661142976538830182238409102619858288843358745596045300454837078905257847316628370195339223104752756499811922874278971371571322831964100342212421008218067952527668985818095611920839176072108091992346151695259909947378278064812805879273199389345341532018596971102140754228279629823706894176474064222575721245539252617937365243444056059533659153916031252448014931323457245387952438903683923645050788173135971123814532370150841349112232439092768172474960795579915136398288105828574053800065337165555301419633224191808762101820491949265148389269229370789863527063850270226975512499430043818278847319921965814312197607111087634122446640737794555885839194408093110242830850847463190693219814686430835553476511146507690973333958325750682775828310518032994813084839968172113667988019203777068685479506203584172199843743941063623432314811745524756400891921654912690827815060481711990701886292098228627167304771990157702853579105062846733722324000187956150228908439674146856564831768813892068409579691803354339136467865745905494880298543819880735955427041540873401453173925453673281939976456025598432433056158735002932802572306453270348118108472311644680475191942641443755486576939292968342866758510673192419182285226899138931192169442423038517065293370451214983835979402182716291336402531549596913117146635344222645685446832262892531985273994666695718601579298385044015374615282751288575456175419699767890892117249023763478789424021833767813973546583455562950793090466805159764095052481894758730994766129863206773565311117860615374810108158642772111135001766610911496964941830769463013884160265031784811929723802068086896236543965915120676079050083195230243478178830387784710282630559124306243943156911946172332151304783208942585130526425182114798482584247309670795016443955200631371142485002497652901513103802164168434680366239650400578520317274646341488894127703883187606669041729659713599081773690063478945952889762219978807982713983318153955415729789470167287502532359082781316357066634895676366344001130098009387835921300262953071236743022323997073379866841517182468881456576477211751163677973275051830749026653624060677896129313068549758743305485369376656303167111178715645711564024997830534922897802684646081921328403148048274989369703732809331454010192764834060593715141857989335641594832383532532875201008555550159280891833268089936832751613743898197361257066796271617898201680857611037066082157532700013441457998839007709057790947693338718593055745163721639223027885468849921917477536201357400073808029003464801289505063856871496797027824213398690366647692421387221047479329426746940631126384910143618072877660804105125122038577942906377300691241707428820669798610777743024504307895780078739402732571197282123612079577141818674783951757380445978887663092635353325611835358916396503038334047771937334420956690205359846633482830424307672057658850222637043992458137869126129100508629663398086434268567065386139961435393135314836142479346861214737008071419675421332305913985422427362960268352527074543308603763093257599065279318536959521529157904052693858492440625007187960548824463585683584137147335807077567299853264277353177606707659576910148992550656159657242843087609627514754010967132888058252910094141323706243020108989379485419014287163112114387805928327477363942215354255811251641646176650616338260607087864324959344510887423010596911622338648581093139256055731647885952217774156201146489446723915722478824329448466621139284638741937153508045102110181700409986759395896327615241377510119779895228307331474587190841251491288453203292923318899077999724017241983634954030714874924560790239878370440959081891829313189322671017796158836460660160983103380614182883321398952559151392423224295256109189125514743525452675368137851570992054236556686251198894690978912714378398839944042348366232539921136932373933840873572564221022276740723601941153086103498555980084314362981079552031286315326602072719756937537210285753673531042165564580256946039604043130694270141648575247927851361842054531638672816317593784244177173886983812031269828939062350299950465555748021266049908868952083549868071144052255745970188459999874512449746656973212289169792942259175540743025184225069573137277246627141256081141015547102030634844207401185950907778569206318487169837187426670400695719217333407326139516566723264803293030224211880671851191385744888504526318014268737018681748232020111635350318502089752993099330548261703829528553862817556329686632900112107798869212892446613292954174481331632244624932244078265721868886022028034468350974714999465901973057279831876298731556117448850126023669757871507878708101402423260573829982711679577759401392505246079666332552510457742310083418369042134346701503735252458383561433716926721834953882892183597514996887113438081200743641937999396467109862593993191481956514925609806370306304484831566536229267674470542521588524364253313344941117511934508237201420193685518260716574799956042242203738639489423825663427129287282293213719336580501931032882798790979222516545440869906812020726076458627280266435191085336917693693535602126337727460512180815817293005455050338987131858422577272430849797628930294128270089159201133151716977141037003061036239717946218229999493767280951444179515953802443130460205613056234057744408094355435625396102518065579169379128797896320223486075887532935928538526054184191304151822796368670549432032698378195032677515346256446375102261459938428710416510010869823208900711470351587940512612959502864474994464326027571800530784024182400054899493707095394788567741704836930249889008571904461955518641213012833114201692643683047702059439512214718959751654516855541948483031434085109327777863715079427857782503901937418443652030608876705981835988208529352928121333082073816403673306845519326339414694319813172411319608754616908775111828175220941839953927212394364366177202788774571537312719389848634599027963439340122277049352074931943411265366762432005685611469972352070210344660576530569058689269233247751790795977334041311781856701939965655457177547593281896846297853625242956331296861083076031551333325641275708347138714599806522974944608692699464646096141849969789203979873828850320717319792647275230983370966712808190012077669357058828618178158125516734913859056369500416310399572692334345540074207751142890949637072526762751343314407995396626463859533381584173877214481036199972900368600061895892271510808778876801096531327289703836511647636162453374187135234085117040674260915062021622073628682446355567049528849819333913009956384824633586759411307124525585568865698083365920906879453147878367543201945932726077932048536416367334444251145180770598808079890702797402122662679784263786376522976800906915561019480160249142550913958864232052100827977518014498254161637789415524449043783541790746591358606279479908945819916357522826898060961529942814695660427565812654219495177965849724632706027029759826990710461687512893352009315002763060118213773538506494985370505282365516626672407504164842675247033103125401534997156346824325526658054345405704563753059986619384290701334679375704189978924329540299625601783857709197350259335987949231974528606253766633141196938212895137364385823623738836619259583909438339028313140967026982153299200106711446228452268943287589627445574725500364453697327686214199589912359720134177473120583219809235850921703344904650822177976636794312048340611162856596110279396352464925188893712638399014172519624098642605610534504720402015337196169649522830408146949921858553522883012260797251688258218088940829057902834761964296354917058545277837507904113906371814883393240830608011513745618457051675630017987575612282584082223845446317203277805490386051496125917703224995458739599136119212233450865349015879955486770067244926830227390455570548083793007245967042835042672540748662826932811447056278756376039107400014555869829550301658093548382592230168005377700788998577702171500649220814765517982072856807986956544769051313039790189121730526057476236380277835545658918190896609854326022505481069500429725986698270006208131127848295390331847543101614961632448650801749929842360424161120832851773236007985217943313195818114564168847315058554155721479520407742603895603121621977825122429482990430907052358089144652502048310739816225654345312425706078379420572341975545859116037288979728847534237948663635365770713428723497148695962783961933803412208530338012936099773475095092268728005489402612065169391081167311009867988039224104692634648218773562881129350728380748540315682296011712547759559653716546564798018997016445108339533352676806724189942044880458038651484080075733079768675305185475241105072308700912114151996956029520485045515609688011352589210227244521002257249842721877176475280512492609590969571724912299062982120578917922138892127613278520988534087262979417719098307239692508314148697901070361316128442115737850044223855140524771216882908727207285039648272393549708792371794532125280712728619057008341140309148243436360845602052633670525563362446865052475609291504596543477879077908757675473442757269592494432141836825631331352679376214013139475588576302366269029844480250155623955783140375808302022213566216001164532434978663395116706147248535985288423601328075648020516860070146925736971785127820810576721873132810032831072182233993275470010130076665928995912485923115759425672430844074031816808918515197663208513004301617718788746336102390919838899708274037100310057996013053220826071800252561118283284307872670835663156142650409523577417934403271148406367010136688256677214116686268678490826590321719068223978103708936831332811722505224206098905505696272287434867374864288254495392406037428276736897507459179100032903330232695947593303602851835416319127070484555660055612688900515921149715112941320514498031287455813323955042620448739736177679736080710854188402996327585385652559490995189756545166850534995072650633753072496039459613473183000996117554235690419028701639235440890925320411554693252759760528811219842100822206445319581068593286692708854634943189643849150796133436419780845539249181992363071248918624339538182509404767905175133266179010332915939612708872344070016447853238180425588771595607884274259747651181647356264588478489799591990407376226995892457497173988528781346638566309959163762826467575290759269324817905573700405528016703791731825712135104949285741982696301645356902861835595439023208830638417553687129759108504788004010530844896225085682866321221605535220104868681304082370956821019597652327934702987328145345950922165090860629142154910030479191007723882586762704778309001628699186754926333832871378093199153864813805874668316956438272982190652966976781036657869620748598252820902742369938024287388168163510823933606059315509117106734610708046031828927544540570043492687619776477658803784161341316134569234139150014283297410513068442212777151842285352114952793959381216760333540621549875583288997452580306727858126792237539291785637174755887203284026833112009579810092489315355434003263174743499153674765916859758663266838422254381076337276051856607148117745665499864913830564017542887499159431243549676877244747207858931991503463271733353346778783293187952523809329120513434282965499049922033150103568074023088689464655274852927973751531038994863717736961565009861183136557930173679821211828434204253845424219038003137903487462716733904752783398118728672173688445396527746267866135917228370338670488609041991597084504853934917901620948468299279918440579817871615059638539361858106497110437765333279685002607811379075263022443077393890020091607081122806307059696020085438414589525534268981543929976389148770395805182978905696347470587874372883649027631548626048014974449989266624712666736490487807652814882693545353114444256713385452545211702912435385323374319342513856324130312392011003369083434042095473812686346854018103018787227783985216002102848867331211675739963091663946194220042987169928972468529829496502368206498972441566131044128437153656967674687342819207153988819469319887778524507230147011403678929492082328313765348909178281608459144761664549206661991337840077917480658513666493864019717750743273245649278133352382575247384369113526628002199404878834050932540283143896205155782976359169551670827600329021825337802821151087764773626575108317854058996786998375338284007487524570462039004018056154078696972066565981157370770696852499884438843910083114439592328392200182134260837559219556277213120149899979140061504411635059492134142072731968670354998114026311203458979761205519891962492714471071711741257964019508783790857616508116791079762517061657753131368335714652165727620735304282328578340734266199817002450124244855456522993920622481375122107021025809934773813566489513659894289084359827238417190685255388076047537734256798776996268696182263953510414758047279687182193273962679474976354540939856258700150227092011693212166776305766626262408537136019857615279118309552321228001610147871258635731553718812080062993847164842269834588641005218252379392071622352726794287739310264792152412847574776768620337835691869006555320132858368432425951795707428256721613777126979299875290619148946049290028282496624282507235997196280018366441467244558220865829431719805836879561836774875356734179104308471361063697111106432368938169635434204671098359207673692517010692943015862416933584218583347090748778067077527580213464092795072337510539409889724536926632493942958422768004780055841973560559003973133749235491198013608345046515042239295976427004412221357408129712937169116575609601181134184094132194231898389995736420116243621988955901475652878441825739451455877149619969234420392888335932947140502608638909694813105129546401064244993290698284888300679663666689245389152825563959359925632807706325216120668792644233745725403062188931591547081430411744815569493619333452742762785033885856966069463131851353875696860364729714831657856237746057264594971551956814374509195831193818507160703520137881508171758671834204946949076141835846837790061728449251674107643429563714120689898646692122835320338956812027857005982795927017738938349452581686888845636266633699022192598965099568391017839378527135944884433377054489847244424632876164945816910949550095104645140449116375240969621413639951539615227745178186118341809014381531001162114144489179192215211720248009196541526172725924922490141048882648826880343824149341937114006038083128225685967341723886516075277476244105090308851154377809338719611749676930131716809906576188087961844835095936423972657718637962053325281501136042559152939969583761872528626994282033145611549864052078883022661145408775987092490179613975496957625448239548011207885028931217332913596698356990811702598443474114081578670631037681883683407132365129206893880787148791218078096642589408533871117564596995211752956172582286485966727248992875155393383166421604880092918811866362226568195832105203638319544384483957636010275122893630810892013813233806419056349586392461565444020714251181338383060442712592517604579198701836012636850255336940018370892436408770800672103941687970853496007276295298166310828088083672101999598128608508217610140992562322409249799080125802874568895503707072547944958027239423746719891051061891886023666516411219171592347084646462976583249390492956015277980433264931629791173837891400677415555076834833756332148131342812996997236074829559576217350646413646269218495404309939231511293166367320764929911408586369961984805374141779002060196441307295840347047920299070312242126248199278896690218262692250834286633125689091991357692165901084326927216632618886561397590870720296373897589694309021382596811309653863450159168766191015610208868103415326925765067088208109832504552645693063043199210895280376686354758782955599927492567655199166607590780597893320215632737641321138707176102510325613939735996289796097463695344274201326233687410095148161238448105766621970703355068765076252532162503321578023403252873921844917241548754974984905545188406316584347935755233602476072426712925225429551135114813111085361643842322770470426155391724290677789184898644498934598227429814981837755843950110968798528054662374912912228409262179371237238728315549615364028130480234602002956765518031382167046310987989160660849548286911395239381562894602023111488930701344032998808158306177470561376782652703179318908155165881431778021852255447336204657219986931842582715164311543852760875247470147779149816801130998051820210794858274831894117636205024574196123421283297682793752669361139710708331470168437179802222363034952231932415844964185637577859912559043830573594793897005859966196938841948312099216465681937119904985485754828903253378600962330599932648089927068285568183208556310054644772576795803695055759490542599090209809619642031376890870744789206666956241795533051464638879319157120193678080936052417373732091361293576484273808760171443940786808257445983931326727564151841464731735620211712364133551487971117301333748127215244489952284856040750343129326868753155859880393915004443064222982746214232964345390754638210858870053030321963870921305851993612045631754451604940078424612754930057327290097611336173600314156498078901157163827990039638648300566123782114443594010579348799681403001819224611288856246126748977117654825948964320315728077074549661699152309737197884888279365444793855628708200649267402520399325538688599774171207910679778320648097759358717645804833480280768407693440989610083480798309538176583639786348520590937052360210874361831299832389759348729425415958931281468768852221192024985566821418194624839478214072989935342655870830799872141563873854812881165024006699647691877002502365325305783750012415354111928174070627825728888242540859676892796009460836263880988330026658530278183513588331431462902575157790480732604690856650651490513745513439108560677180572391003912208054161928739389937544748099678947518154655149805473696871432711529386796873836993771332315882570025233344725942735212684176510049306703948559894901757163052991728702502090193639873810343430434639897362569998008500935120678751320842998500326964591663641224229142025496898327194688645153905516306795738202984530423824630821634948853723182626135898246597668413979651769092204383884437113692406870698639428651154794181280126116688087988985212900195178003062377704340167521547818223435672708047493079788670337573362211844794792044328421413964476162205413434892168579310287685227096684344459783331783728216197586291335147845836353457691694196730633289548016670139872552711269801638796282002475326655619757981559036302648376118432871698266631512752020936539321812803820305131821127460233389240161429785455637812595300033958069679879218093582305302346955330373315452542114205370040541883282436663668234916652201461110764703144151436461032991913073782494359457805473583323002226181502805931283844595794184720778932251860409867801662634843021277245154619577954363804755634083957045654992630339758074431275975035103776570051021281677913642587452107794078011704803482331268344755284027172220882781725615930800118847574418157213768808407283231173176137878103386549016020560734394916524163292886304124862509892092908849907819666261624795971975594243379174569746579989015501970433334766364456046281087508631878635957096847900947561813608853477315189037362802363035022156732534070967300450078001280816695907589535956302950647864712812747486864124353570844491783423248560938652285398954627651125395421393584584622623206343833322626667754658024559897105998837967859432590275732821918677076812522984276167794497462158005973892894922305396572316414831918368107142761556729928817711650855197164871277316228150520966326229406104190796962335103654941008015782059925139192755002404234088519320157871139038040043147717504632998406062952205443776643598064427406134350622229583186748034592401462774326512484251370441123759536644776907682697154028243946041295438619212946794071827713974798284537660371117791986699580265517356201330123855636692184756348444383378713751056357272740138198243818869372101148305368853510421591999127251903870805305388684720310177382009232144460657724732317232960983310768201840893524145014974536605786108989312823078965004771318439803730925047896720552316975006858385885192761356339883223916912323346412784466822973833801510938578571292636393973119065417014634193031986844336519881567096159892571241086568371320741513480377499104611715876870843039083264158695685389323928524466152466168274225521477100214004999389223206187894065627102046767566135496852612108861519493205791881029849659338830538545698757812380906197982186658242671476448703575054511597802936584078352580311128478314554613092484586404892214595507883629593691314933857664918188121326521572912008062561853428574518247011287481281603790484083126297891800095405073107846063839980274352976119661446478785446444293637879128101883295807424195614832242294453195478641968270416034420617419277191206783042714905684474647036543464458379305105050714795635644819984971450712507660724396784958716802716401325555878159808078367170791506441655473701751178834074608275016990547166076060387492894753076048091625353815720132037584345155001982006930331819140839069388832731377720927713123801895701240460912720251796546752181080957795144158861354288792270182842510614464403282938200882699041524596789878020929397268927329065981093298252194786295663191546066832557513134042070634455792815458502858501808546773900328033628363672648910230000915237275752246552309611324484793177837378406517004298509476202496379838298456618256068464429764033420512849982135389888896818434438910358820078299579035185045147084750838981094965470469496426784436613543849816336671686231723031516987047036176746404603792329883684600868950228003018589153128023397921049121120714507238070350651205461776100549119685430633740967960110169834337197713626155024528435042566265089851859119334848141511485561706059806547199709230740119587411493909242939712006969011473153107501321775982799898252295305977896183150281386902672795533990978632248535837457249225701030125781488163856238116290572216570083194210905990272560689299825755971669986229955755745594551651043169576859369108828190320043733083800702737190933331390800097386315992174929415373787377512601859237550454566684702835039903307685194718948553126785887069376723097691878793447451485263034222426313077415234734438795361140166864872285051027849847535747489187466789398252575951458575970435947475769392661457384696419699842115068991531724329745314807266841997006898709105524177299923818607168673289024471920693666421352062197573782259959048231225864448482271907568894098626888927317660817926681920646533188715681753681473839737349656833852497345303865915337524123520266943101802494092083674259192423829734632971018075127387368712639535237215279540543568545222273336740465951499043223638780102709716029234141539841077342932806431420673441372899446591654541387016032777077834028809339601419015138965137280234586361234448905232171230716898240431504510590162204845260884808163061988635759501311822157815857711996602712177782023787391353086472032244484085140417508752606929750581818720332170094221085960467907295224075523509507669269377395727286712944789394775422930238473527159706538475147605108250476687334848458799741732277675224788919095810369267450813557960500062894835227639229652054782863771359973220824432423076493917546319837472750684953536692715518193684177435630813082207414145839648964609262915686964648799798994343051587357228424730729363917641167327704035144360588857057423563670723501502063602627086864888330036841116797272862528214182366364747922077545184028098806309475820325235188247611511957835091382518006286643670988034622660286179222298816035167398882723001213735077533864548744636090092194616888603841057464290553282757274813869046890564745140267987327675033130795899020056095639190189396804942986160402016076742479944097952047504006294317592763011283395124756442551131130082740896177380649297286619091715927094430520322150240950450470687850288769473841976591714597810243288950405358535378475140667502335596636365274667904015305916878060314366781576459553850538399259265152254561384409878718923547978264347980899032758464542244108550396233195831918090470670259288708420788453411101294285042209786394640240321484940998786466224096652407857919640704970900032941039494042480805226579372084252272979112249780289056928908587537326664961876794976752174549630566887203092490601684869120370422665225274538485526611668867153033919873477767948573848354885499630119716968694399631597744749561504724268372144167068268101559259182492881404442172524023365345016133701044258514858898578470848944763113990585904002755046245067415320337741988094823033065225199015057342207024403778372563237734736743110003758119776981023713906784011366691444335302625630608832073820003313610332647289941062095438071673752358666329420359177972408981006857030553322255767191630648587323537343156479281881504034053702365073071264961105671411894947293313317324011499172522793736770925017952059579772873740097945768855876232689381989873597224870456602395098153467502239805866685118502923721560602745679321919619286456961999871402440709902404881845844180310765787549910608280375357392909975239016855968299484798383401253800503717220491857647547594908967472371277620770645373164467654202630221478842281577368864118309946419014629610640059957712903922531233626422591660890339552379632127310338660751778586682512283410905214754120355139909910788522349355151891183916955965604086003911487174182546073712729294673366097738475703576980331657947310547186599396740655502025080740624159844406004841626219113969788956193329269548628853711832190568934384416655703642176717215663187938674880957073773153452818060918391599371082327060917618932806161399315590664860235459436949858072158292796065621901959316948217248869794146730162223147255877162322152712850152224680250514281063382195198901114633410832505556055302507502053111157689016794843624587403510235354735019468658204409246536850021262650099658328960149265168700004652074588929324809982892910420246212806621410418107830575121170848947280250685447722188386749375295381605122643105134951402741572243310466520008542325282435426379280784001231239637962359009801407388156101336964526220889057103177168075194874850261207741270257565686646805528587893695484288348441615468003658655833698757502534978956872924803808498247197543786992707213507156092239916299707420026251274326462023993352561603456163634164894691394665424197680540148976121182432960892705575315047257920791542469252309145569509813905710869772772183357376783780998291037316521115211891986845498498362572636878922977814340143444381873799973566686360277386680059912094668038114495214027424316831286253914732853009994208130355979440560200779623222048834205319857477198759417555613528196390120165270645200780007171114536237119833242197237456379218463494320594975162093950843195683049031866044003498151825229362996475405074172140049434662550047217357462161448324083858948730615502790991750987830888998576617707697646699962506951601233729546483990397758068346300835737955784979220679556375766586213014101534175476698888250591658915545598663026910939945477853052831190162645577736168226450669148511462386648255436233694707564486976936517773729657061062125748556082143171581241118168309463709073832522651282744152085370842941563034404062902048566578472458854061760453739384827329716482884741985243801538554122756036330698566043129250177035485190317049865053258221677440595058707121655323239588388263205543453159631290268949003226955853608835010531934468116024343160755667521282993765693180497103320231707635851190700955645406371075274021462546973719500807563458914042154427825346603305393189035339621247327427083669373762035311736967361452820218352739816588360445048799918099056033562182525851449150658114300073988038237083732107232609753732413935318974683009269615199854842361949669577772184375481395126186176428803587108024734417961254547648492557149702046199716755905986986098474532599850345986694217766884605892377336051104883987068095005517353855742279369733610313914343151875792003972876145454306759628566163851915776300434468777192970598273728755245909119855376534987170599416174713130397807331435109951531097462015445861618087913831516789078175871790627181071386689364791386054482458363073820458735566077996830814080091828126832324393370758259509887385399008424334918253506118679234955834622304919290594625826047239915713395441498548209280964548818308451912785699318287511406922278708800950069071926857189264626880503032488525516829068823230609099240381254275912836749804102291288679461226587101014159024796442826911335443126257976019968321467496101962001158985090709974430020026006350610112065617256977657621944807558730732718269735832458222216529092875845558971506817849631831128218865502646782863468135405125344148675035401997674603236669042047639225714743755044887485916931288482816021613094616636305328475396223744788328411930650464513838327527723991544266015457381406274664137285386578085874615912724160157892676427641949155099088428000306044722799744342474939542182128116195004609961358158698205951821751389558003847163956923072832071546995021614161698893955845933644962686280146401444421222097227262529683382188488595951046670268956553755108354287678085129597320272379165253901481014874200300012167050008001796051610144933789526017264793145391372910236563052213098691138550584499171826728574799945794811793698819668771879533830376833846756611917083522559269201218506145486821567094064248461853093364208537187480984782735147057647399356064918664057934242399835893580882316883019346798289814936611132026811162395582930544160246756702469988970721053231471125331346019531324392520246215828765363565005040808009930705187053371689628002884700921912513772049655670564058198450239408693819185982713548555750942127094673623754918319152414840013027743073228974095994495738123396824779013515007930857537746548105255556055739426711995906430573559414192831931606149735660570473560519055938687434835369721025184890882491372427433035222132746454719254948932166262270519607514974964493900942453516643457193061156956094466041388887177202770060554930926566532454255871575312999486700428529317026386119704401644650619228049122601286005295579076746281481299335554556953700482347045245845163620743181084289162647695699288436736562424553533077666191519944629607417439733314940922224159397879957103749827040176735038881606887320090838708655326367227253904124134708132231487579788626188614635141065887433892690169520799685713231465119181306579271988801094916471045629624216251043287547465150600465431902812802905579632300806233545374623971102259707999911057378955079473376582440754415698085652198421316189918663409980999642403990133014517608521512369759840077967846043567886053289342515096358035722007687450072435770744756491034548061820559297076223851328466253520164573195018593707265539182000170756261574374808622303247309656351857166307393938697449428260202265204683471622315868159119996959548286910542787724004159971384092852257365030513327172077590796744476602374037393261918548832050577143094724723561376730172830313013783643413719022296325536889241373373655343880985154098316939411291481548176910372068850655137693032546871108351022484688466713612806249381848291557123765031526421248310658270177719060938586005092998854637440940769502760035538084140298413491360689232099225510678123282700441549763475351122566337515482257710527544478970341629513203651437353639784352969460811679836659069690022592453451923014617942355628488160963419264414999749555838682637014187758582829347766773053368671479173623986148051408127629697964375338289374036377551743563197367020922236231820627040229735560384389720225641768938817749919893453402322653099220558034186151215869077662261058000682653879816603010699358569408119727452850455669385436163500409753885315287184869683162326466189215633801607003813709750339490201718906078249519200218705752282496608877219618612971937758915181054949122828894504641224674255686575450205029870351079612596842916950599342199171390929303984546025050052973666108298869670373704969157749941246428117669033836717085433482476070930794333003018414169642969908334891057371414896091045930843720597086698303478517435261414361043435698146113296054029516878245580017476182593663035285879524737936129204504357112474271310288125202688062361358389614849788561782578645071571918072917859268132491520657308948624192142401943147641883796414882535518354977769401091929884864293048138615287448993504677085144408350424165433934098711082622485923297909595579257390116546301489298409052168100089478032444041127879628779886682483933182236338667335533867438552750405825872844005340843104471952775583041126977507423099541184684465309645409152413871613076954690868539590153443488185928869888175650436536852493721913441486503646689921730619352309081295283094427097445005362174535764584844800522433834306586982691030375699932203455344633036014941870523332787974152268901180285353797412531241919513256003817019966786354983856503379660623240399849001860527426451928264132199478969660012685741533124868308991221405972310797451259962937720541242601504283283514363138247655325855157154670626079334641563549990437473286777772360070672459832637876444228744932526389421176283511616869573272557312378684049814347815000665615383636198916044283857091411621185199547544095588163023315210267977270848670692463670404598215436844722535703529882987189257970896219860793270974679745783520248749232317818671640412787163442444208294814244421341317995524957030411871700826611662488941759473334523296168476673212958758366793417711934711788846970558933524228732476024606406961525749202712460786615836497404963883180926904672622972516068363346722898814008386960235333948020195380925879906072424335408466674940428177387464957896021089459044849237149976230626917292771745267289418981421318422529045686110683124874276448952754740152007825021815097815457634185529354898589055408152138279155420437456404919348904219826538921851299943963255909338297926178255377345643034059602678476282323747735975508500855009644340155784603493373083163336066365420649155836445166204453186666562739037061833644288754195514023315446596523845750729034917341148719195162491587310852810112003964263450676308761084554234832807046879951065064721759532460807432539892179215057566155640422891157324548010930201373501359468285185933160689787339298159544190911387740100836064687059240493489654796102096057773616397580380788890226864277154613141770717081286704253640291599900260186117978649033463207974573405740838166795572791114605288503256137805640820277555811128486188028853913293896265277816208029639035956903240376965449670707795561860825056127971275379464504156939983499388628863083112926270369537356083802489802788007578928788903773923179483158810130269070670781006764076495466139726192581132839404191730877482668426531078361365663331363495872632044301743025686303465798221957676839611892440689130092697701250717988443101710440371981126133261049693743211245406355030771989473007552079260596601896648420139941702696783363730846915916905804234707225108027201134695027617174743048839263075830725768722327437227541054940155632901868975511307276219345160217871778473016025839718686713601124243797561297057511340614278722851425629477828797287941845592865946403394486957767259968284590133841125874996308381576087057780896258424577741811961818103647418656500992820667040995358837620301081455233473644763239747459243475517391756864617725668739492069836884962486068926504786930130826749143551431711440678887315975953593716535210848640597008461830879428533116495395151747966986282980357800076276802435161157506782739444101150222021059130325916818112302770229645814963037879567141547126974149373462128311620577143726969779188271753401784585743026151213271722822177376173553973908570978350528712980429297797063014491418794922737645638957306687592856037819752976181521167363969720039914335043658095361388782439761409594232588048870302648767097187303831214547451251263256944867691465000668960456595198742728788094735961736813304134824836865344759630364484613202648408980743281665049558139096348362610499129751847934471582385876585030828796771560891285589306107600407522971863209200755153900688776299916125826516352600945804490932999767433863714237373705432997213185700868541909920630612615228633044571960040348055247504267890851099609780893169126227499546085715444373794303184067208395518129866892550259558723346345572048558561969248796135732258321693596916404748796705595977887372488093261175948410859947334451960196616611683754251975023883088565175742027887727240843057234563422208952504419324607842516977142149714601380835529168009237540955465902337563648074891156121090428699950179283124314196116042351543130369797212719231658310451681283220997110475820158407171932931074567851541749319387878411357236750846038704586350842079815337720219325906062707223620903025842430061508578917961675800733691671005395577470911347906056934331675235730381046448355489698778360813950769244494012776968354239375255410702859633990534937218774342019006359606466481714402165549428856734410537794618922113269940050360764434105951584812388903879096200640306389064794676727643062571536772877576207582990574123999909519277178583965320595689393584008992544806799365077345243787214144380650899620672598652929809611993384070115278456615198004534262216425745033145976903997014866510951967353169128298946420377155231077750854201857591997936446686793600744568236713821744455506537093852879971812706974139443237789122618036118026923995410497330083874426385261790733091213158764930201838975237980804425722275345585566268227559942796963663706149251642109793362495233624419396223787569819641580518822445574068822098538533113980772461975238281517823147101796607311935608836969778641577747550255709050111458678865289298598539521812100032741178343142754505445738413127990151321440916405976213996039216583525234103847478635172813080582786014544199277653219906612152222456651330842899059669849118368010546753385515765872593414642335302100046705382616249829222459777361259143306571640243487610777293973389836109549197742536874762998329695608076491993290946215935236006052486868077626015233492766690546981220003863415144142286497363684370567358888568893800951026304134693525807143342056890528358058893990451875872668785936684672175999752314906315967804012073774830621689525743693084237588596934742689033744990149046484870228764462896334294934920442115089697297500630502343540374219359491678573580922656190755443206675495787451136051833258853084380357166812889310435412109186936721545533837507630489455537247804759994761241119847742489281401873819571564836267172463936474042047074035069707663243046053342815809550777504663680006197259439501949427925670215051857357771092112993201762858047088544421902640261787048661761391110862324522636360171423197291315499584073918694134164900615858639341995602770860907983577811498562549498102479781111818939560225049803322648180804929176050576232944214009854689772471621353590483856733971742231797887068020907488808612652387052604981661407775063307160778375764643795173805333123401105313050578765040042577773407855608646373761241031937501765311942768843746566577647087867701106134332301092673494453113439304092722994401243775069168866721796401715943493389809773125472998720034250678084480704022952023015314514895431181435475657046151461650471056869935331186138688861493591438402577671099238129136727725389873890277955576702013896063826472824096517710377210481327676612825117673423266811923362821791283227442285268118647439875704886320062286924719377083710128515852700158928846821625403156540274701616199192011546799841461559965149232225749060726734833845361475002517821593048264951849228427637415590130563626924498882474572767397781518237579870928232347739318336295667674538698018329827180345049517905531437181474872289555019733337338993734235935827319564631165124068144307353926367015410283442660376873808534838759580449536959304632361309251801872325324354991068256367188846850472711412792312937820996871611718685358818687563354890393298822796497138532714646130161682730543895803991620711906697606573890372804691325101696468532341713100465121422986999173885987602540860995836332784336113100878550522842220146279949632833357111986889666253548210455486518015533089268464213373226077208218241255014449235662392970555150769013298875791379145328020883158845539641931769880909601943082024206624719922233076628960226068236189003428792845721173924346398958364467945790775463350005634940145421106205573386444726865733454925941455826371419279480456704549129811353155194546005468043999227106801924853175955233194144378176799201461572996885162497121861300911552376115569895600056476749344090845882166843952609782948900979353754052072542678378957663918682013742508470853183105374983054393820807779709417471577413317048553877215280656668496811000801651836674017002642599332088518505546742055770476537387261346914028122098122907959893628582596688027514354495408374726938901353477069728882520528457903023875804524685701266124990570227292595395354812896354083738761392294841489664550878647650645987273316193998524695564138694386310882332529814094508821141748049887111453862337812635554197716696573668713679270658838545591945520473060325055478875731843937210258882409234517980310813231287985799452960303327213508614494114043415360485507787001758528870774399202384111945835031904631069623803381301229197711146148971506272484778394760888133438624837531846341843004846912090825972123009873547901648022305634794197669004084364930704123878525219384197915278399744534601072187675320272253440182553775610722251860399527567906069451467347730928988174985695355509295723049287571867765661474169489432963133841523750166373450610503915744694188547800419754411912896169762611191336021747013514350844828123868176983333394132755202793822754553366498251271788261597987571356751691077832841754677836194747161522274850814364149735796260994759431725643130628153656217064146420304568589750107588235380534161333588260432995229540567903650774556393894978505078237965819358843501404262842536473303576849741814161098272592422480438426647155081336170050131293698583392233585817595067196292982965997258500847186703101379259324025792703764844855508718095908210105104249734415227823703749834131327365941615476475657938221274652075306473311287750955905404124601621363615460042203896446798975125530477755587678052494781439232504761040324882127874361782276491221662936048542935721949585750370188489223279346680212460962200498094596812720650271624536204025629616360822706789175141408362347356135649077959463351775604225488279132937499039928740398585422944596662372937845584884650912689259039035828896546450174515720998771934492172039968129276260266844735938740119446856612154105209178059463531656887322952702080340582050940247494573274594664232459108478250230731550057033624408429848034102763015295479100554654138149994106870029639925930495422942611255157154517737010670955113346008560914754974156362218411306501389442156515459188912505787445047600093519728113131592031057982282756025502392399774943325270109896605440689658855370081624467305788891329832356295925798287808836504439856674555378249043268414982594944397633616885567180216805537732179457926798115583126693149785389223164498972094063288358912461959415962103607828823474582394004088600220472417554743963933011789480080799526368515892064137325751158047093862215833066837786411689560364523045663605194627539976331437158033870443129164963920289257078768771338077777116435705966851379551373245789144439025269604126613771181169774557336913373304145082222197803667997965170232231604511645429703322996166872250248203176668039120495306278428450055219194374544407258508602129403169655472124064493167504601794082770773341587439803857668467906198732498099145415813628121661940736615080257588096471648956967072951626730102808421098792305569769958905462771979407792346978446468922820977834632007704203144138474818403195520239468830814479977898965602647543355819481535398199663781030779770749561357953362756245245697496923714731705001808944852541508293610424231709494274221225697986665453827066404569888813360282732032238421075411093264266985551536590359204767178047383961779591020542391530897547595625845051212938634981111944109646957093028721665546825103184644366953957020939045247828043869595133964156376861276478932231311275142452119883355137988125573201757411189197185206133406663232640943888465133565340284700338469265146896209464813327101665388160839058934083473163239827391429985975378451113445572271403233884514587214502651221484842127133757328007968127050677929876396330763495163422547517683348579965114787930442813714693871461519751664729953331349711044330629668648423843588660631033218022400435549974535004515176762052164329938700761675901567398336732165295979016243542193429640630609322735685162697212403501184973734645951180536593107405654883630779178455096590628886109654399372360263405609763425157793281530085860556756827119567066608732630024989555375462515387040682548668521870106865102005705756523915980014703454644257464931898436861337249525519005618488528333051383196686150858963167242861703466065120708129091327042441983322631114956671203290550323142480246690094181805033045251015992005827740371709829881058655835974693985855874023168441229771918640612771814200010788188623839484133863856490393296003661986142010092968274551080115443148933394778897419320521707806002727795293903670858340136009658076420539324221499493892863957552477168745266765459333864091626401159716988046864117425936936303991492806340261761235945128080243174115091952969649076076915472970654664286118040974939187176787663028227008674538168977596477857709841337937828998500880493860659023815940368095703743824868336487029526722940978424351445873290689333276217331751592809046330628073802129799196142423248886344772645980867178851523733429407144608294380947383572680335065085114759867444419474400963779696395236933242452935703526903362726831172486166680258422319649311305704626861632497178257202638013451416484808932112435539785082803805231975070438733492418075643214786991341248689458434719222259714327838088154709745496003345684929616411678745347749290714806456887184323372686446349180364433985765815630646490571339346957110961643208610187129396598749677604681097254780157727439650321381100748841574671090270324591322543819957837890538360440443874381266497118047190523452061395494583256420408211047147987335877353592381706012670471993118443575491542007731220686558613049239135355161226037603976956291476546584357077902111397203125583945796087045692073322687042264571878353514941947153897313127394982517737718352125960996134164790151530298906814095684541085391402435283691888637868285322666468981594807960847891216760284467249637139128931139598920243153058197118901658020668807658551613095237730659010826478141343397635143778820184638581863887917063388914318590428571545464340739340872448867768497152705551151872574195142078182227184589044934112610863467508679780807536449946318464127286098267356486789847604924914899926441462812783937990556943828468778294185005092974004466216327332173820179959479017457147974466655763480075466858523156368399046832697296818148939859422827562961164408334777696529366988800476649042253557493890385379262521420431959230319557727665787154947070198794463084093508675315293618011080349401297707420879687794533371197842398766553103313505994930349141098720041337975948318361794465946836946473072082652312401090129621630379541016539202317157636495161071818331971152422224618484816760622720952802878988135488299299252747890830093464031700533908951711364066525296462757691638774806377525581468284835162176977645251309787333028970770179314615072653625378966032254176990487482114049302830657482800598822550890297369500531622760830905540825171500470145551122067130271768954561486795400713234591974108613840051448023968962638750604309529145973448683717244747515169549250352398850017990050178432351080834129228933350035477823546599825368453227286408940300578338136919067227741043747405129679491424476070365993367111381544057799472071392073683516445569410911849769249454406291198552430634053304236210379812839225967907712363618684637218082372479006718543715903726625219994642610098203969819195678826102083323091530318478615112230861212642572775489647943068534950762812995566259724575513761914846045296680723446798563624790665427017916797405729084106333653260614562762701604024236693184087138508591949061769260105233695794254457948333882758073660576469156407111197626547607506220124419875910559479742884844329409500169266690633682259745859586870536194456452381116251878531703100222367988921164664269854678444925520960996525156349526998726448443023150363540203049475992469689226519375221011087945840662018058579065273354134832344669642818656695000632908396240260914185140603131995951811460988051201010168232846538738852479681754128310798244672206749257812509479030512733737294744863453207889207436821206953248404819585496697961513813166257995269093186289911134681108253211189830110522119431343934093835578174621728530700897544306589945221855800400097465050433333080107816732088479557238859997065742815280223966807516576232969335342555481161204844073190045749309629624779676330157191085180913993285890741823852861968827321568661753285522959512312769930777265064846755729869948200077423026718381362499747263030848270708028622972086521910265697820279596620334567464369444278251948304566253833227853099124205024178015807863999810509942731882686626445154333423390024371770126615447206779979372596235697803911530234751984278133724278977491700164998701890885695943590524226475343359022949804951567850037624028353390693167221603393207029276317854752907978481365695977160100270615214992277329270813694671390161099624494451951988241209298506568719429564832286222516403963798222230470544477343133320701357616721308924255536173239109263608509023788324673930456068859775987473562686334590496082772456727190169476896769923616403999449059389730325400016524836165092140395383911124518335804495178764020015041134509847692614904626269588518633051383215405312638537441529716337025651792402135404192353248592741363224611117063589732663490880691473287734342663585082619639388672765309119651302091181470264829209027941228866652985181339877601589934271981809885714773630226496038428334832613063064082616083433258524925978794618739236703470369661606641766571828725467532780831987787554513260856823308722265665864414798795694993209890408037621073897507402748574880304205610718495262706236362835363390937253613561988637399415114482027918972104417690306394833758496360046695069257100672790770347032349548582492044805927032091067164814527468695013266173628462745018838369320717696159778004878988126359145567703423372554943038767593638826912134466441829627875236532650091723846589051472690499705890544544713438627349351944669855431699522885503796920749995353135282801237935985885423694681061102639741835542105105852297100219686000603285076741578687027760573370068401779054721730444876956118859065296046510868533572947308439197288642725678901588755429755743026615588622116994770611962846447664806089780029515596966443872767925528183920720235314636759739848286210480105219869017338704056831167897311347628168773520858514434119816416427861025470466335564922053824516370045513843206128365156937680170148044088801536838332051049432994835155241770802886344603713120632069118126899888581842324090784250606108696575225637054384395049073543569388979950359745141090552179633063991993877659871155566120245895740412087122622475891632407323985031060795488969804996283566512212961372008384157202789289987065820580301045847808712055040453269298571714130857449654607160419698970145373431351133790816584625480901288454964097882513286833919788081456848091860483868817705698066136091171156882723190741321864154808874559944388699237581348479764705513804044694012376720380307701099029817610656247312882787171522397422110463587723289006173064716215300355561874113878694888046452432935154476164220407975247296018658952497551226004282390981705813832213332940096247526983697097522094172200068270417537165535204172801066566904840430043923435372444760871505034396494462774948799756086556439395445326738214829532437148538361822676252440783588826229132550472984551336095343733603272684642187773391411302319335823788040034489467984639277955338771031622674237424679406668697530199028987402614548293428290954245133176999443167570770963394939942461232655017191658695266373752187090419394385134751801093416225035193677056752973829035885710992225005858601059702849921743530298883985633557423679639996479581449355969118608757961017057748170112858901698457474274649080309387936052009596606254991219489587932434504002606698470694187941088713555051503474137706652822221959364769877223926525209864360150126428813359170896392106734745840742409078652416366189345205947144227478839445164107209978303981869858595883325372760165500214706092543033542346867683535997734595150035526813417142022969045386855820743147892009262093316842489756607844459226850985681135459209557227761693106411426549083062943428563965505149883654993928551017433449886361947597801683322365673745583973491898106381030348969936358541029720577813045777383392447468940196548135369274887173073754442183797294682867468415032547982854027103210720539068969940475065439931583580477296042678537800339476789235030421985052593212708666306976932018232338715846430263834078739592201410696809506243687853442421378603570990341797975202878035435462199973197117008161814227519952971925616239987173037023174043741650185099451611380409291195569227665015671514029558526742392272980703127462328062283978845851529278747610544741568806420214148940584612413536444124326343629521415264673475557494753607595486670982911049856642778965172097418989244337286130309764474537504288669596732928249312142634886499754358160994939560264153672236221765715367007673879803039643871128762411256650867124832935299938284219860793836684363451975001054313661162821648559749641984183310273364434068591702040103697668339532246742192059502396682832716866456324668979053124231962523149192156268837189106656439297760294078728977025637047119559995667350567488657784806543810615054671354859482263094755313477964145141528660208745681780947304440883161585629703651187165204975912383388186593459720124866123388009306704703231251374557795013737920347208669726615571655684867344316857334118232351182513621135846090945584588685483785122787116289206203641660730079379139757053961526646513332460466697081884982692710757301542111861633207308008900889498642433339365005890383226892280379234613240077727113453657264892083800167848300620773301678039910377132841506656929490581247343206102437480123546930334561045598366785967998288293086597174726097088204831283531344183003734907907231164417303662434241773779390053518196864768359972324419919057989190384926952337696205915858601772362502742543708830025586624491003602162479786192886795198376820704021347048685409121136053000669666264007855664690411706380455419446463056089930146504523575206744467828752291638095307660136529038018179308812567940402711803418645401629416818080459325371890392465863933153944740276687999824043438206297140289490364244102583545049796960584380676167249738869190197502359290750225531511974876987303970808904451232438038978378866393246953316692470591191061654088206041508553391972291300526065732937056557914698370122275550152061296133391104506268784615470910456246095247074075781007537648896523784139082208467516049588355467511783971113893484770489805464119813019733182660432783271312424797863518404266150927453383866553820667118384567479228037699069425757370920087720276300893514003353619318394333184734982234960599770904795982475418304162272367120590396225884142112578192853636191656150439358461652106104518891942772531081451873832160200161690524373980117607883226378758485776859570085274044299195702192655421995537756137554592351860652511633932522573477049851827415912393422153222671152320952056367473689215551649474443724868043422621869887623117184779748637452998532319428106766969555560340898861340742518381290620253597582727974143913815791959334455405440902636031800647358187128317601899545006874424153258366389992887923832745453198715016074887539816513339824220740198229897255036678309402955004115229989922763490330274251186499186971422824643333812995281163685272331473800023979865167820289990660494268200056600642984175953518859927359244363514003014978057409113427995006484417137567095475039852281664571256655467733757227849608249340906758085863954533541248044601849145534257822147530348906565931361576270170626647561529784259074834485487858658984879129966653220316693744578260694122672077302086848206128736557472781731618286889407550915997734784917343380570767844103547735700333694767949344020851969715271191439061135750103845289952584597839608494003133072152901380753139378587457509847249875026237296129341106451158188740293805634689364984317477222761141383119903276072758815778554287350733771209036463278896198286231487887674141017586320276061910020806373130344005781736371931560045269475678555655689004739257551292239828057158072301623526443486071255163159374669423751834320592915815417355773459793383338312677508988764109284356852764754195943841526756110350862144002107719223249564776457835956196107354677542239288549259955500502414130412373813439780073409835259878932677631046491455346190556042331777104191587914946398897967641614993299156386978614042830874201472576812281719939512159197320739033365622756283130678792741308291869227174710148137712346207774054821561885221106167788097984515203338432220067117703604332514356959298271362137469398398766039678335305831875244521830102829916031387097500238559400292985760456311883025961096818910366289216167581339377869299118314013490280124021485285974499048290820719487789278285253156953608184581527275546456853405547277716294366414544447450810519383740696262776408525903136691119691261175265058572492905743985138756563344655047356579065014023866500831027174982541257737194584744580422167759238430405334120798080632845290223094199338694711790892760240953164671414968238617839493787836959787095216423806083988037600009351543877361915056666134559251487173358738568994024711074383815470232078584444110205277319373730098299129056193559462337991539047708050098511562510662132333156678316379114019555695385151613235192850988853362501551691728752574104034422867219247985819320296754378605818277948142256732498043269094570231597104779215342234650968182566578233513282256373123659806707980062387512141534778074291474301273187015762596852424487936724345321796556719343300761862514285857127549867482160340437529594157452316242514045023179160284509643235080634625293761726721204917814395036164632974105092558715181295464990180024736124473901535946577955669446824367533884305651345588355677938938357290799435980455877317208109009964704726941712599451546115777172574165887157353537921903247168249471352683759265586717640767735097808837430088353538406474624833062667025161952887454821875365355160860031302298595383315871038294865998629652898633445749936139564428858532396114571029402464174846822649957522210407310615605655396562435093637183272400826392726205842176395425453923398676784499192755441230464249895049581339919637673641208747332934004573587892113736404139703578983015335279642148792693756281673424131260694828623702038415246428261359170416274920080193468027169124245041371888140764395484729885432658391585365328553827105328722491370655944951307611104634655626594082460094155317050273682034912464641028845930781166893133956096994795687467516397352959035114886954417124006504312260212653107826384860920131505932890529077248169676760190980304112666533419934878851489844017831639554754128456021157812358803249354263535583218909056816742406548075430478031017815787467244662268477082328909528374878781347590191899131138487753517158646114731422080304006524064791318730123685529841343080364842437645001423795040587553454767245903128249052255684035446991816751210717085480337700089075824670771245309622358306525148602875225902762002782894827346362175048807815221702753527644787805208417501364164999811665343406431381363175629203158059106681524521969115811984379875880698664200403582063713260657306250941682332337109243245995813258530644591020877518144947166196838637636763513801813007514814495192681213169875690005548550714479986375295515568353218357245193416202848690936566270912006038495366997455391958661800018285189439889025496572275678108563065910540955546905471864739680843814836327933294769711482897511525872413165447807495587120613443758113795883302716026562421067626717000557007701415107349229925780790061987968785392685179546327459158316260705097671095143995379338553869600762451898882367620090150200801477437667778537173139507895050773463843225752434879195701393492848627796612414495480242389958430176064199060382530840654117236599729818591126685407472138009462686205586384256461979649349238356009785388327596231020376372848438309944426964199481107030124159247001225360095740361583140614975663618351080465115119851242920845650762879033877910644423326732971885953211657928748166503912332602331201113095511986746301078181011570093653527470523940172387578893591952208575373801102066290944943142451809330892427121071383176081960595779273095194710037020604903350478449600382556523612124236743479673292057487915385800676907550957226097207639970005109249941234828151670317116715026333851042102642877086105104074147413864124797456084252819397275767724463736576550645362127162675853471777469740142287971234965837628353437731117324732919958201373635849535771803497753937786664287253602414328062684418837253456215732663819407787383349537181819434309885558601582439604298491590160157133789914760106245578418718947076530620170661783522172750721337055019383099115642245651209228356366097371462404632239065502156271847303255189717752318451152026346370406585718769425589265865936071959024895254482499554602177236483580156306051390996814326342372415191255787306258942476108046161984459678726682684922676314128001567107327714631459250209757050644868915985689516657720452875375684821056235602764618168299026798267390027060504165966071375731744560416339279395279761374706696742096018316653777040435672196322523415208718607905894577723909186962144219780151159245163481547058215829976450517218652392771413504948356675588850702144759625608545305945877856973311880288365194316350184790139224982552170787180431967853879858488763957122447396567087583816052248774437324259513751173149804932825295398389550159615270632585129088389884440040364577484353517188857940064383671931912700783051066192431252456067064190024970674237485885221030469606184202628466057542266778790976190239661621546029013999918598227953250147416303756212337120986059154569530059862799770609938765224347032752664069060398961069578773520455570073291970452801365393781721359866217929109923698910650202311974581694680782156088728829040582151379928271142584847204347159784332001337727214392557361660192397283196007035033692305249912275272484483702681787147776378475886123563567963477592910147688489384458050168869856498623560388471331049790658696305259457990702162768149315668868048565394583279870925033907917673983676108531757492418250734597904461197287285605464952532454061342809826452382459388748266309894236508539990334438845450293093183153061313712100648903860491373575165179939710012657324845887627292981687075402315196477230115728255042363941677149957164978287826539509001984515025945355064859193122931786434525591625138909462270579774494821086103414736660670607275313163548918646431207215151648075898088292244264471734354828977202812615820954304835915203581730335326881047804879579320059288500081367973119699526763830511816736361308051439145343388383280368022534725629211470369672081324713931091162817035700880561152149893100934837661376277135221696405308465121947789456731635518682683729639958328228115937253375659919212771628730119989628294650062470044472643406400432647129626069128172544924343228360535757485288955975146736664844084170629777609930804896260187897254575960526037634216024128865127952777092183522228509025337000944351473411949445427546896905413990066000618386185418653354842903991981898515029950488024474088812875755349391915842105743724042881238938331218117707507957502471284808627034862600022806851878432333914482450450125348319114968499726760453040508834037793395949579943856399486417086915596992237944712649658719507869656353602852938640263538645594127579039302797036784441704117333515409946733893715217294988076240672952222218448957993472142040732640328257746411566109118316574646871091442236336773024682844839354761444366872074255785029181298827389009456921568730212491010323727408344275439360043430577113690394275105645476484220005587407618274251561732512599900723465752445268832298455908502068122383218033305751386679542285644397260950912020912919551789495748590047439145636984187904553238380721424221756409479605262057349769051673232688086877325351280478531638883597230525596548957059379111737730683630433713099603214235595515564999383581818790679064487614051532092543597115861726291557209170204037252080830337762412080563733390565456248917253998661537677034207957655345381873093917178028614879058443283534569885440927091859248262064367589274130940581243385002741348339639936189430138668474907796274499334436259180038078774931889101762687457984116971165742495763084489606341866748634678364493356737081046194931624114637730626699448314668942681045877272393792400040289197058506817232779988567490905075249445258068916835429501401582791556246342906334960888311354957032763162688691845972556665633846756868733711078916920795823907020792555606877112433206418737659116152443984739629798208471445151147009226224941910998787762105030129916146522467944071733585253450539186891900626833275710875097863734270387810396027904598914306878075665020615407998677246693511016958739844273221494083368485152101595946692305609609747948316770997215708801536786396404836302721104886721222519017261125621536074512436097724118221651951897997200100648602519123548790906381101965462503506420205904608960123091604782261873247516730633750468951047569873381038512117039237313622672111431452876834639647651026374492814995198637712461176163928126649454392579618770906221996589163235965246349241315170930987544784535714748204473055426002478402988433213866782748214592512530658507888748866078882065373299225546355619682498672092326108578417362971418737073466453078294593925906122105569792291731017774549113254557794171212648422094290930371034901235401096123608416956845507724032746647830506477545728266193164764821046503646662684974876997897731295865832767789017388388787283104935940637438150463729065214280471810079256110964985175662914224682661554716431166746419929804992704432693952239111240976835711794083286474702013295470728631116442510799559787605265675039207214015151697616146549880130894153020017701077189659157153111984478171393958024483709473257377759579087604056231516321436186454088334346036616881276316971759895025868601283001074789286591465775405635174284989757882987810761029946536491342484610879110441195647751912262250524020861762934785485740965580065153377239430760418237684640811068645807050718670827983085638478896029935264610534454914717850603418480897600645232779374259421050070589227605790289494409544288152093448384664166501123815269639721703984978880231524621739651666276565763990452501590935292075940923359727410692763653575925086796958467343773709991642171153068554790680737759594670035150790564019240118991920063418157275351696314876724095245456077920411205742201852630967067970256753768392229920517086353785886493401638970189723509881138342969411851941988803449003012100676662205015527340816680721453512418138314764219993511381899830208454408075396464631656285217803944532840003250069449824450341011061451280016116572621860813799516629774257385438517108660958007665589417616321609961663105612273978652089795535152504779919859435363890076613097082506667794975037763345615878270320035032528042862892975212250979867465728680861649135818273019858105005782063296375340314915628664516604184088551178937744946230833823325358047643940573558237899987185530258630101893673489974621933465017892406025898367782954211531314377483191233251633756416621487410943670866348004368018855811364836690970064858159634393914793621346615990078030431681450446992012031494618646992178137142492395800531586074371899627679216079842312408430358819457660764231680897265522917648095225500585632816677744823143900607160936812630767206289822480472935593924763624278250868909595275331943078873569535471464830643130462914997031438247915178933488633246025056825520319640840718829723998605688613245309260569676979246445895041288836222818734108298420149581476145979531276133920916889214504869963615535845364689324997651994798319959713923382780449441312388237256931457607296266195975087048971262657005129126651522201102742283481754069037803667151526120893957640227199373286280345222892512905140483288401686822166431858222208744879062871245613769739790520144484718459503286349651407339404972238470054631154837383436293172823076450261704533150340347949927530538917292192764073188563151901498043306433385805609836972745245707424605269731328979902531660909991185405143803503519904355151882791549831421912984176604914290510377089122326323850249309959932073693888475279221430410304169993726644935374228026935671841943260165081081247518862709466461123592894303720564637684013098156638393190127397761826000747849163150268846272339605495573432399184960907376530022767419320605097067613631422911648321844372342224108888382945929165617731335491768346559592107771198600029490068167365931770748998754120889712399909797214466971101413161197017152178975445842004795875249382685236062779741219172651198490891646255482915036497426851652406901911922629164451811201102581310949320423455828665201629004364714568238745068190603860615139725039640413500103838368731768963026147267322404176074036104314237993634391712742853070489745309934202314354512369014143498782770401912875165277304745897723182462211034521015180681741802343608942122338452424688376582967171834448050394754065300270858910792535113669874597197158269544810668697896422165753463214800819318521341409229810551321054495629937303302810900012259685585661255275342882464170528973645240528233215597345766217143737892528537568668868225336487057530711020198563058532061512523711134251479336951417891709242805142557297975232199822060018014014618133541099894276804541189405243866620384214157092977047227721452260613303693554451980644503616086743365163232306568432454649836091128040479896245898468385887330532214303710663465525476471779814402597405009911194442656379603006112422619360272578305190969495821591333556874058999723320995934705286828205637069249718507485808326619220157898301777954036315771360880792096456935956379237857712878737845114997129925926020693464240684358874495886710690011485701175559017528658572795785228275562360773293372220864559173580875792987438740709867385840776644588342222846307842293161659557056314782045684526796643654097745978786308950991774179721866182778486221951102772199377441240343182740508140808035350228848521809622035780116997447234252447346916819644236996115831507014092178340011321318619648870359994770445301972208046039101398884328376736721847022117115623366129048572159474072977290007087855135817435376383069133871310611984656400606922589469256780013425126572335268797284218611990142669029840312933723053217756154870743820064150533323291967765751473829317585453466619141536676442579648419580426118421786718792801788534987903665379537386429093047970855924229513289969891120385984870678672033671590375404662716841015965979908308649679740319912761150183275786694313805935313265361303865699345470867464167150593888793704777787666368974912341218114632122366497170889346299485919103080074817075634251021302134762760378655208869051225872526143283300781923153382913553200859605726631204518750633648138446197837208240397175712384398309638322719700592668477395472573114303837942686750007296739243961843949346893391995447341721893286559419867419707236478925206754762572117615276956534263815818348430816472200082990753773498172399599222032551108098489013909205883909858018024954058540827522706187536754110404324863358317335499326846767885207446984565050561554144291007246939574415797009737319595326698902300939119028597586592276181257442392416880472218720293181606399206986238426327534634972236300258640151264992746395791599898559183760542558396548264783394155214991189177510964126929032724893993032420735669844763703961281193578509361389533059007374408119549783094466538647134512186562864283123963848614237707751285549061358380945599613355247033114171604368058173152712164667950350838032090188559924171899184665914980705888130973549386575438886200258718318957467349868192816558151176567751481333784202344033365052945054839606919808431668854022930814672495838873232517566229217239226494717924841493039873337795920303989253646910674938564389976506308844995718162613618020936968841150845193075750343759609743054410887584922988677777617558075005025028023679028746860235653252273491448115419527949373832844545514793342234838876347479354086124913269040694987801405528664380881590135536091488512321653711252321709714602171640675616359286701125581829030352338294959784855369736577832942381800235597755390618947429415940976331010595052514282074137213769045211020344078370711350504137432049455887123586279918038120989490970324082361800841559692670782696890029227086506288307567395091444418163847696232535843927924362886410235672265399613045119185807183386868737835794726828483864560627922572357565175461187126776099662275912459525963230532608082813032408164557028773709336892226605135393830319662833432189842054504477651010807754135330115567197640304507125143072791616446720417373148291672615443367581011134176296917085267802776077596946963064864421340486077154685623398398248030556212143636690334553937916106551479485270961492856265737465129976612413050954982348904577079330479770350995946811180900700212970652307960653711933450837280494746206426949586268062759253137484956903798046723699504973761600157594925628865142664412728464311553144519347127275853770487054239086601488631585068931248893511100962546284757234827047916292352960266113415781578932988531732000359750423053608631017990595522508049659512001119806469788980462260648655251846360978439575457741737329962934533247767204603978054151025600814187232510824027708181039619811290964172790717390112558683519878039461901428105561885237137616861750293061818128984748980656310740934746401599713720072492127782969868222501010638971449916122587132406491652472568645538402103144697980089168737858007536844714035831416936870242287370389372346740909119222953826133093758669660223423741841378161470102952163369855256282169636413623585290292871191795360009056171028677887016170382595943997720538789593446002462521139210392285452463187877839276646187667434577358980642225909400635798787250284098943645292348297168525334301149629670013791525218318468869570352203954030485975027855953849184685390446542932676619305324057411892224774813989427973599758741415232198184013498936861080945366479697862667236365081575144957674011428803045975244037151309331517167519299025433756071433475185863401079000824859401204731167550029818979342776288157751471879652105971008643255542346587735542785950755710529662281033222758918063658743017818800755355175801467782560458612876137137695006365870886252212094408032358952936794668434538637162143958732310101297683598517517721885025527297566797007554856475874080571531761291916212712221132471420057447095288368952875932868094636241868480696760090958249554336032615048329901514596853094926191788442901792404980859389520067895123113562193422011516672274773546252359115608922949389566148254817539195640031991354787035789594084456825121829281553155836413322778411422293185884053766883810063415779144817618846477728305326919409268954977440687746436600395527426944329983127725005604457374520048146631766975911170906987680183816384081608227834075133369794053425048400344755147268776622790683457816599480495982225301542520171259880687770474228899802100246229260581583680020773244843578209137195717138163960858039116838784475151110644713990397672622013649933617241409731301078223186820232629016054569332031769225249095768261459148497924668865907187585990598035843161161188480721404406629184068652965620982027260057892260536309058358292872490438001603572051584558481523207786745010413399433379706244510858425460277834679981703931458970605025629723120682978637250547208393633653875268853611957527239645565740365264479328754346005517628916010807111345331575471400597744572907826500590368810934926476443461219108428543619638104573790545264977979696930888235988130907771900372948968840357062995980666173990319493528672650488725686765124369639202292831574898139736026006379177546339288809994471887270268502351146408620641259641620903492373010271057876636114520104715234882680963040527150590919680955156571214242923715982714131492799577649649172432458026508128553756716733549610462422707721591435465687796918827304295114562005480846308025371749206501614468630353679324836244814762707708285565501192078334087906837744768454466378132817357153208537004266742867032058193932814769779760057612389936925726772010742076916433735747991365542243862823864244817785208171544622828926353433867257811700141122838290641406150741923553605260162817605123447550706377857698872951327361776698452643294231469026536801492859947421279719146984464717571521606804537043922426024322814376371954322680791179262633080868547125052171469105044304041671953753495900396287994699174591877463471863647184394451748769368695806228526957048895871976196547180238496513082106748358978603931088866292095301669116775324611096495343386760275435245928468749227163997798232462739098541795662973213578779655014355615637247997673984327448186832200861511548147399578453840200630719413851731784486133230687074900977855292691508108146654861644418800013781037381417901920643666818636150867174834452624989454239751345359869223288766169935475833608611648209204309316439980012890127347639755428051121090855246956980084642067481506422930862853819060732225095720257582009154744056687720042609398610182345808781634598986214173157504403797967913013317831606751413769840487666245746337239216862003098505073815479406430049444685937511688436161032963173680890904400781434459717766602264763407662604315985042917079062818210431007829321166171020699562210198543963014162392027336369748449647572864233655626511359008809386374139310344266629068439184346958205258815438172853183942217355210089129476307298235885171060131398747044160756906084762933852679112853740759886214663204908508648608145371499350500788986880957176011709034618511190295591912253772707144399674119584532959210286877783231520269538177339673782168524661187819491892076956824015806421460689615095718751259847394686281600208495525295430718926638975546983883981996516304936794999247287034356900486620950989793973461167663514216747473706174640238699773312276359970818497251066007412633778248811682957259296019692581731339848134329517921060668256220798127144985670624267251518322670329831922668392518921927003716710167539698003153625107677549826451070734561596904893381613882779572215334981299581484624171991571489577895675640706845695764905424157701196312499899605116707367872505840442903817731929653911299606227529522675611007032011710991819952953905414443583144726378609250629122610925466476603163119090781007634309596914068565529714261159542841786418775903456535338004961354409249807852893409737509531096592205793782426920068776622397443916183576916679804366210239466941979416454207792060710521750112748387642640886377267964797234682721946797448203597123919351117968204645751208267101105009127298344339922579853747054337168890306359433774159653417136864662248652195169584280820879542594328073068441139419040764952383894597662505794489914769714374239412490739800396457176749096988996481182225582688621451763623564047468917919591348073821455726622822580507526520967463917303435330197819436976577176041197852150429462519767909505780664524478394386034754156950329490247147605334048409717916549484639774277017917506655174115549486612510645159394327337778333808708763580982523527133315587766402619014516577203270797606647745402225056492958341292336211494984659339816769319325373026986142104458861499810240752480154872036318029030522850406237579853433217823725776019252900113776018782031839200581631139315765492618144571303452216184274150781994067547169021028107645426573826158723791693275281261580647091781349347894896193488069961291952955006400144194542260455800754793878333755628605047123549598360178943384898193153560166474235701001588010869134699217124506603011712181611484185476357612117891862620819202152154420739247687745121641210065217848255040359095763361884803139048333033004710409231563979946770545186687015752186713823284681347670257277723720250468845539184328606234839063396403886956507648809887201746728098337592548625526060384577727041459819154677803482381348731092041300826807618687654779591389313151403021775809720090688161286833191168286459234874015257917289282050795181427572645442917909011688506880327300204257918868427514152321283093511605143501693088890564181417902311485528300085845957650862223117577403160986323774056548131384298770193879612349935428381021162797564958013165728906342677041156215300196216555032366032548105464580165404200040321766271470922672277175318420259247804794587883331361758218498694715425068401201628200033784533405748915870107956695183736745085573974679849172580810416197758728308754220300806731723645838285833008962893997149238560145902921953681506279919470448756996616908341570495983303659441933112158200292271594034761332655521256317508471715874769453971687833356137876287714601450740264460462759824901849114241133524440889393022835466013258708360064867249129936061358652554650075721546973698622312089512124030808173038307836336180135305448795854256338266127865276468629878203186403714408088780592616381913689958427652707337329463580443501136383622791955503338752204718171458531705367808444460206711420689003228802549656073916511167332560139628439943869470215654885660523124293817311131933540356838923944221984631014393467925350227603043133241434962290930259409663607525339932975141373289964120670780584816642328313046603248159752179095542332090314319944523296956420156014142610618543123271979427302623487916392535272366267880169037511124979419278689837718866351022777871815769508470168168324700560844216609045468789321370005604477317925466230764408909482620674124040026161386791463883120598552859561469850577457680863499616775424836820247373006447965810946124063520842051436033724258257607130029940899574426037558858756191413577231252195415898100066133086722667300666822565803462177739660008956817834025546850682571645819263200381428279252726121206890291132600348145544009680340601805311744179786757741178533856301599664728268103904193185107637736767418903663288037064436214309079106240199482623935021762477422018744454788504552164318737771715233807268449251553701579711033852556016085276327770161950840253423500289679716561376083918797768980971776024189486099414307227682158107541785084899225690757187657303250494468804692869046720870892955419433447489401492597269647708136341806209767305122110716821813209586217904742007580397533920514422038020378750035944701888264252477408213103078738462915912123270398591193018417039117146367556581917478183852135205367540133630155336744832245884857935680017589489268152679169147251577830255637954481285659457164916699247729696725847287917541553826150128066313109942839298384148982955930872016232265040795497319152202210872781678705079948146403238466414746432000571037566997227193201619551933060731477946918386194457215859785414306765211988632884120165706015653382701963087197539497742078356878854308235411913340899505410849273226946124267726139186079776392446610134902703429928903167169804484344052548119132050853307580824265562070209636541703989731207782531097247272519936732034204384715936441196703465166886955524518523750730381683947403565959970135510499265373747453830772872215279066817234639825585136019748256898056698348951719931688542397303304417920345611043574883343030800577547133643168166692569525561806358100344133284498130012039137887173397139523695679174029470969274642057692456367047170533039102668337903351829120847132780343037607066697779724190427470109555917413524764307589513956730614525440380520801477931615533228989745674111879711687438224424266665686613174747716554763264534230400940995891731098881627740421042701881299409494123583599109535525708719084225728352815804558008319219417585295809782422124433816870059598710487106643495305969937272758065091604466531668013474403173405921270094451702229929778605007342315984281434770372547540503646409207744360848411545291898069285219131425891090773282537940862353418538208860191216535184282053834862498638975847449038941955444403053466115926499502074985380086111836814841366504108684279884637223170288180884017424939866446395944008049369368126201009921689889649862662665984916621306216288197557469356629068421133359113565542147962535024830998806332685979994690655294300971458537551658590524232762142834272708670690030533295288694989418771152505982396456771766986325829465674892596677005986153211558588604572680232986910197596836396761994567410649556957644262259827323606671654866893555480345196919091961729697038877385552200311237871934631525515740054289445869141914800511790094967050225927973010655617166362017315085728547223327492509666306348728258209441847365022098418295184242551070961104910892271021765104379723781494072462099559705271006223123080963776795809870351121557039221892284913787847229918230061663209619464334155487091302796053738620883944908135521525020184696033104063395118722909229649739062487252693027379230792533855693936150579649306556747641108493824163850623237955170103272603147779152026963710236363990386691208072438102678026100940538003705847870784034261272107625003642206306725579563097052705834391141184304784298902011661346710769200084996370298680530158204045477838255293955374201003837755404204953435651484953359829763249746939343599834993619700185444610185675379052514392980089359676932405074226409426748377873705510224271035054298510080457362200190261077887472245790096749526127890981676385820012125985253356840401948721815177477727614671790939889609031725181164108706133805968221824956299497454303432884231290367611052873534358958557391496305308179722127409266190488361025533165378263559220558810097078567357589944309175386567902191407280465654212813987111600330233885651093929058428894063216322119320973711751502737306968623462434971727829916611000883291788652816301733689410454589662211926215684144957957476687228771141344662189955132524776128988010560107253539909260624351786083928656629939251622384660700982326543150273369533842750108995204121453509028509725881508709825273309067639045717821340752530057880561831810451802748745789660924278346394278413708519835303642103473221642905836826437163349715010397948688586526010688531208294393507017412689092432350856462515229179456875442183478710999570254447514711087264266160179839987352591817426722262041978212803333858303639883501793864338986093798422514760926179268693547997450059699927749545343992664997155369830092553007777014309429124209739101289392816555660427413572890086846890344781801066132920005295975110665932838580317451591537614568656057118244531111645900405014305691912713260519439731038107811206403971127341929577767974514285927556846740600596266448348044689493795060253899456909332253195963482807316709040561385850330325135829479443725434878054194305035703176528676813291877964356971602842279199287166815984847329078456575546187943846967133132203362777312728857497736634483117943638728919467227520251712218106196942491903622855505697720266856607704086782360008547673304845397346500728634811887747844707401932342875782646820519215738995820503073173243344120978955110807570417857184382417359807526205502053009372799354318904996685919243052299338003290502489906168425305958544383239681748011266848081037252655641886460549299852536806677663094835412708811192686933519333376536844387697331462195635549301287069928286351938284375288611711697549928412587607192121562525988200572644777684059987320053367922760961089173029046227146594727538599187418235499144338608707398488412949160573675871039262627848942467775526893007315829325829439183701576804212949453670200980559722206179253653343009862844894958755928301683157709709451368507010536254658940961890557926482636985848394184371013940282436079458074859920282013680337409870280984522275750724015739077703748982693143906763448159114521624369760691964626729205976074043210741858722552015333386615110391677861109795877434946502103493024739309615699533325095514959137277995052137817579431559168595060010565508424141684069368845413300567909915702599333436100564428860440410499213174681076602765791117455820393719018477950499915389093711817607094868765955025016373785108459008145722307515666998631512513502138738959709920060438958246988307210773290314344544928504413903069301328052728791489911515891898801800693726608916935951035198371108857820209520452347923603453296047413026787747081135344791921309582311518883399174475771804488032652968684981651501871187858316747118374211503507275800744687974889234760961902295194413262074996360763490491266747937125210604115498060809023290577962399058226781507632466311831419595118078152371120008173994578476393319607597820431738801361941497044180410369355991031569470074213841680041518341994360749869771003316180410191145420324812663741181795329271163315414872340957234182435888257496673888575582031900530349242351951175786651605470899874675619960070335807947960788644861434434621139485454564196227371166119692084613041206349254049839847785154987197677699308794935854756882075637554678790376634354102275714451753748851772596897626672998677108388089470822677104835530673673387486281045948906215225486510561242476157935975330994536333992507647221184712804682770257513349097560596192652420207449140445677320819439906556415681950145327234958921600776209359895124433271206143040431130077755312017157398410150557028483078224178533123528294809309269267007244909063187135810021783786559788918374447207819898262539866863064311225590377263160961070275076806690297741250604076023602866560773869796210813156677174531215242568844468294457542902594298205294860205077200222732561415043177939487568397602971811829715822778745536537495431202140577027203083859665829113686907856163119532080155935707035612244609898995812676494016327028702092328742501261532323097720954397590918887284444632817117879899352991981372106132679333938474823020905624335476042278427427862276880188197973805625352089496216400538250385895894173884640896168872739166870467170636309289536737252826232306958877467508690539342470586751612206445497959194559614739226290202808804514698604731861621538791032475797858031257829683697291418101483373273052982034634578407072301941304247325094769824868282755161932153427847673232307179715015251275625512555051018041388955459924287814179817132540924608129861096691309419553091550747410887615562690284812958104956185014838925849234507883847463130375873307143758779724347549612447373955928635332024877813342847337566890283170244715426954171774870436325489624190885713536712008595124316411036753017500461149586361302735331361634149760540226174903809104277622037427283838418587159981253007238975166851656530993100632071255613585746259389592699658454911740351551723510397006780013269741946887976189422063159429554348921706999447941700995608938121794879493919616176826480963141723433935727098017615122021274669681413455194191402096149641819653845646884251117512936790258303198018397441264350875386434429721482562316879279622021876776642130126773982631876913992744156859547470739064524271482827959355458643091915789257139082979487206836939684833927680363240465312369911293624245252461679200376196752600957922311663752594300057037892455486462575475117800676584644082760326742093682226705291707250855546442191591219559165821736169109353549827958293608451141137254496591893745775366545771478213446488842403208334474618290282740663517064100219689967274430426447365185769727713954341646148885924814838914679503060363632015503499535827791407575083966781171640976843430467698545854978558138624753562827064412603307074111079351419219692376290532853304549920540527754245303015738768983903692069769355354035280807711144211139335769209921573083179244375661409649158924682766225069419835423415675090317956928449262295204863253630682393534289209619457191893531655167626627439877214527188403419769812234287318836013999702078515373682221522700034028087531411739440420794792570489887321891565092495287193788380210392015372992132121482542709557074377290516875747804986534058324957909749697945937059143335663604103007146226860925913581239135653470003153391231338797703212245509314635816776029349624140714821976465614441729817651808652260389768935634898433891539332074187139370378102249569544132411886259281317982538509037652634467170697514039619249740772410012025012079096632900880159191068137778948944924550823078164093403921341388524805291656893183288731706543158009824468692783721643472152757446929194971750708152309026595867807347166663717362802266446009743198521068103184208406914314020994543148177187146309646118750689696731037133761305214176890671306403000303424730756035764868069364181925620482047926660480473341752085034006421370199504865645056038247277583497857002157052133142903616776824192664195750285980359178771257331839530927733405818882487729398490927250448164082423480057977739580878918313718358226550588409390798699438700094887259859055850528436409865710253513684511883266249449443825303285864141141424980224332730344229441464923785602402695147612131966266854608649264662943884918600279773667716237613417896855374583449102650396959583036083991299173317664912336253828909484392595050990519112752433456697584929064713357465688424371307066015808362981019573462754951148709554571259167818694187866624886248107734894421352545625169969243073596793119130057381209246435193046311637329817205616536465231675700128765352960444808233584185369687670040860785197808729351453457968475846967953574680603373951354219902160716142842089708544565514622505436526641039326198895939243021939140940756373956884420411160137222293157197664696583671975994029700611255393295097212005813965389839731031958161307997563313325345134754665503163526609752526534352854854368931009944035011295076836473796558396607054211070385971901475014480334571672875374375375755377468356828733664103858739834525095690189871214495840205954608699900120457065423380575519262651136424865909763202984287878366124733605795885776145746165459524042078656955943543438329246309888997200158312549547738421107812590103571233680204604506136283475365380418567561685993756788964938731720276582382945816849107214166251132079566594855966280648322774100369701069523033001070765895089475645985550717346082793513154711196437759055123389224717958493522784296898963267052673751507819710317041305714954326114486317843147823096873355583031701930915612010194815923673841921375269576663720861256989392812924449168605401705341334954171443789838591720816025435230254351226327934351260445189702258578653191041936116192676898405874949026794263429764549507876266710476320597409339598716194710292604900102245515394310702989496107806763830009090740003820053180046403317296068838973159420004026623645912706800211890921196820405446721536438273621534969365978445730824717469254172971751150619723082645415599958761511018544246387042285176391896298249497925382098303196710018703309857586670182660659965666494236327092643662716571695576342028612059506252502724373595863569449311164260701771231880824457630370841443834398795389742741018687075255833689647563353343555539019328364961027367531965407967667496055775401942633299227777078511904979139160970371172029321592462397666859228362188078481591667601100608853717341596717797663266005372719016351415405863104836840751216740408099218686111362767663550923823639992341650834167388714529237148570345442114676472819177034141442744595994963660238444274785169323551835937640691574705226946641309326277681515137653570497080326081375553414866773142560592032389749601706230532235623045661199063642652624191881686005232742153786961574553480574070688030171466321294301967760341470186880452854650406166723255999124157353158883367006880432627102178820763754359645866140937556192913705348311207967441407969556029022530454289548965390053121450621388815956290852156418347152028732849655829252590226705519040950591557258294997211133697489578065562312015014414970187151060521233775986616250028873447892962594684315738467903291329703946470398296458804229796970938845362545640170682478426658139154065195264131770482625527172225471700369759596146801434329717489152851697249739421117469539494780499825973081196298396671262848211105127837039270393086110623170961698327819475824325313449815791501403870076858435168385848148447879292642158444848418872939453688322681179922169290155984601140264967011544380214926733106658918827678496216151059352461757988577826748301984660273413242476837663231423040005095263627574568179675126180125763446651801229952287323758735643994528485215205052979888046292949324593473823872391784329007607692888460993443519003831056547447340537669465260750754416788238029976062285120193007304919343000420794261294703772610041911108395094533933004819455037686114860297426320931324410052826467935593886124397653259193370065711737679744386650010315791126053658350862392803630945036988335607404477568597843027181308611747342375962850972515806838394167884177251500189739594680050342125780749266371813806248227632411237932970853248719403182061906971344645805720486667644243225422642663874591965511587273969921859721198186916237347144592317359430626320775066701798812112582115835686318727523496355349183175404839498389907421086456377375470874722614247600301872410680239732203649205601209349566613335712846178226797509865386623041451391401445475248013991054357224509667045445850680496943896011132896119953205471114292075968436276037002283779586181695147129235106026896467444168424812549891169429127897781824013628000119940580108384815772388471534471613380691286046968142112351711334120917662210246287868356195534182058929505625056944141196775315215754773761758970293195326695239687388756743313348273088607535009062948118300039369008894517831226089708265725172128931968018847141036155019377784352046215886615574281671296102577019717558541329375205284689711282274331737443663365875892482963336897912638019908525859158473053983438198235804929273931835349585446688165770260021677940016375787338672033682358053640829433781005298226990233664878254476177489196449182201206176552818702917621720381074644364147687471485128063933701701473084737587332653981576857538417246588487701120688706474314035811483392411331772229154152890824153546201485819589675001263344565491735300883976531724863186717961764778645436745176242154674977779246098388179331209201785636709106962471921794698903148015686353762010927884552310355726837660911555415864190764019419805529045175797598403408035949989897837094425444046212248484509243171146019103902109546128349151162226917351041703065866649035229847047586610695570372171159764044409141810011766767397555416973031605508175063365396256136714924812630421812364368876558646891278212089599219307430657869628648957803510103968220761526230012086811371516516521935250177079940646630677358565757837322927723225764382347318317876862617080192661755683765311533029220737550871123758402654478786145937106661833207472718235418669817172228419005587225451871270384794182897867005489412412767462697017009113033076646513339382452292786830674216192819308971937027499332341017726365106335424950143580485967237805887009822115339215765685680749114845560106177287282006331769640277539473101786022861849861085634527727393509807033063862507692824692266880192026602499374499491031332031271244851780879807349025277821299571183032438218948559341097803173360433705113339681587012825644949691099915663153523541608152630773854249119114860469522947177230489414958735543381797399255233552266657069796549132682912579838500966259203543998141749717669962889078795574209689767758737798009154670315532481143349538315984537190465657633909430479818905183095036698771628025911070857289494208705555438290484965753556572617298289615447527007116114413326339220640552693504817656224146080055137895485472154741935340230340797156522834832964389390166497443621470009817453452920462102459787963074341534434008274263545921001810742186679677967418855410133015980277796509604395158429604902924612722076275195834798778332085318156784218845886274874684137155589890003416051391114117188531448286356126513528407005732300496554133167526877303052923777368403433950954234457864068632160907154937970933185344533055322159051278024952741962955623036806376539509904801744537660305874563545401179270287416909498931100139518584879161581077826814347928803000680059297284410894079730545748560525169085201148123415003082619015831993426624245677653843457618417899004924204425028177822603695982490614876831420740354682067651237891294788966881318160373383979555704664319361485770637829290223808319500198866636726280863777634522963108006999770033534795914167864375012918378318680503643112620761492456928592995150874123506111786308346102740244596736480751219635494613014129273909861038502853379630313380754747039932000930248546917942272918952566686751874997313882329429729112710645983309074505188717020395779329795651201362957157082464923667050216390239924440398937653254816390143468452984405074408047558677003337745776488209268859551095107039693289231450916549822686076991705755944882543654360324346454367159165725330931132264650691634917829887674020781991714269118698757271252920143926840484303281239230728265459087522335360920417862544378635805983438626635809132579751183996253378766214886773301397280720088197592082619202461910119336401328477518467973926881909195861501489459941534404042699364279679203687686724595200449083319286549032432772591375082639908815636920126067374753794081443751299431628967924297410332752834847781841826987954899996352897122072928516815939967773197122844881391771777058329796694156326064855012413634402921887240228679164153999467404947938010263186810583421221691636223165050034230395242955547021851368287178256506049467322317524693300574885991326935520354562157706776006996211583129853361394339484642714565659627283086231851409850595521312938191558083400305447931290024835922177974468993165539548703077259273536849465508793304946003511889298683834463716816780625051181475481933441473344405547271326493580135947191720214873670598453156147536404777677026543558591239048137780212871633870926317101675345036185270753458759622789278667175273104736186155074620162290875190150931840649871169983388677951557144744050039561730914660551267185373322292550688778666553469651381139156160761619737073698856451391849271763068556378746313661483881308106735911645992438793794665399141041690340232455288209374222741754005874053413161024072536307021943096136435578231043375913365078001169476068997188978451025195080046110373548847772479715114487101710713210500084356536947586363630757603158589728909715453427528757640676868045853506304276522761667613762467512203232227141117284026650877203049382305248782361327735230242045666193444285733258223653593651343521620994437526240556459993501789393085051387790359850770761679586753907489906518735115486373547640399664076528472515000353760650271610926819284263939991982340949971083097054649154846026345974413326603275643239343156815938548961669569242432244226152883529371748146992378390385957136408604123265196464271390897903538784310628005335786009375409037280700291250475737001295028094039981201266781643179272955683947546254261214566835332834796923978151853143658667928708210599983434814717831787014995044640622811525610001715485767015849768444428867404561441758157326059457630738649028741800483841739873385945100746340721260488188877307831697311494244403447942867525977256712278499274927608896092386207619936173730585494638239405361241738671982451982815713471759818193534532017432329615147842718861269065567080377843764934112155311162134543719394071372148279365664987527783587188039607641406746009972259371430449646278799507983143603781282793075079201667589022128058719120328296365443667694895136627928690291046803266173587869880046291412473872264026337702812836997756787264864052925099389957501556186335697901836161676873713797451891130221562107345021781764056261612476404216002993239142679507553050519917687241034137278701662545167814342887904004132379297695534699428049209574858552539340019186043840384899246668338374595689591027777382973805545116683091588177934829478796871983562288311984685995273914932661843139820158004011932163086220389563095698355885025242126624017486434155388651951705496387573629386025674944906722587183084773328338836900461823924017045211346578382160088362803580822237268716008431989566189014171231125367270680416771653584528774206950590120605540551257437824969466559858199345091949988986847267386759688444312212488872657728258865161099327002392032277066334284308403156393990678763774419464304497990923261698693808641798017797021035220018493503031555133797242755656730156408796870747334730914163876357253384783908955024295262107966746695532710759201650020241256759971580019038982450861766873748550401680368433798338730533110476647422129650417388703210451856769911341195633384156226396100315847426281687218983677315655249560153218007507778891984634329845448943320613522109664633900654446019864706610098759609618812989974120699190581703161735997349895870757539154178849585444344058274576199991515864169175417371334116722398021943837028415307507396091524782427240681745045127032141424109191827081495134379017640711665685583170285047135027927222014814875192646302419688883803924188427510487403733520505291664659561631048484000649610195373624984030689691740813166325165685064782751272204328006433678624988280115875224983272740817279343153639679947382337676187210154119337973898346822686282207371073211850429906244617757543387249127763633022056385287809068755144917300871400639975063693896280305588359668752236595414001123607914320316615966348506747237686267765449783845180254744662434253408351213800685007882254428774634686985323637944586979915519997421847735947811268969993056068754556487503531146570065682877714111565285882762078605363877155291939047103010557575449467882032218139188867813303546269920123838115270954698547666680410251755870867653800030310108681959375876886024705439087099205399804389474598320723386375979605166912259627593337494704821653500292073430957919171617478990923786091881360141101343442861119037809449817652694046435726704078148162012378839197531492192948240074418936926893912465438869597927433979660118188281298795152448186152628985391239122942647450464654843082606994461029577448689804337383068990964323278540923194985070681485601517801036885932286545795834309605670983889554973513833074943593010270421697071037588333815700319710605789406191666838976333743204436596718657437358617659447238719307397446015194424788803101237630053493459581760892145860975192227101725913810496409667863009565464985112184863706623623373622934994470227828777160380465236962007403844520476700141572256008417295911861948049404582831993297416382675472081976436129137775264282616880647215122175782231169710800801691233059733535066541142323877425476592132959557215481787644543972398210928712665942609773753702075924265049627723592976816182901936118001262612046885782377210614685586222944623947119324942848586687920275723599669100906822047414528546030581298487104284409777579139841774338284935049738147332602349892329577170380402134368914742861225907009937692439549704214915384842400833561869783517824510042241726413179180084948979820146736999237630389426035915317430323316256429202441217205319355193426960779885261218804222953602259169969220877993547947711323727376329619536478285256815335628551425153472818387683071903635297193306118172190329418674522869335726763477722508765421912989708134131244950358333990958262769524252354736773322430907437820938695933087059884249315769475124255535985325795668896742743495635459604903610854429122536550438884602912687854587768364877616946777000088684273760761830135601339081933717889600610239675712013719752973717739828969933020167860590570746194096117084620706163724830580044839939945631790207713775789844605999581122799632263052989428694540162352500526094699330263983202850020164969537075026697089386137569801803080821525029480990981966557945476775229762742835858958933013219520890822220016257063892809681868208595873472548388448685994963987331757530138035142894577058928521581296919285688191076570614395053507548317826481116163334780836042103859462202285178259884253774323147623693904639060455223330219924189163782631704453332976947311513206844080177966122835962331126787054651478261491800605309806868210530068058005869981742437950617038453787439979292612413708518039844279734308421068341290488704919095914996806617883089503898851272420625237845999243042252775498491282756160738909001484969330207429105053523305283073640087029750076136775106444352846991221889549215588243381678273152059140120920292083755817604324982370751318317950168026660982545032142323529420259857062318709463308376303738580116290286045192025309580978997523564826177941263417794171097710119480267488387899755104098569952440694893769373232742173930259141760134302369566397317064824805622184696893701637433728831019027237128449064627093692502353771931793294096042584019557035261893652249956469381133844155642172573431419143718052128856395415781591049265710949274715130483614072754324169464956659287477790348013551652114264561271576376244373529586667431115435715955375546844205690095866219324504529979161290214473977725777878701362781279055465849747371129123186587412948385188246139153789556925396225451205129038391755064697767328227380984963134600512951400812807520231591180060497752872451963952493309267303432122967219483886040809028433883607716735133290355360771920844687288058349987235150720726154085564989020847554200178594932876218617078442377440774977321382785258329262783686909155402181538894149168775431593035041405616218287906013963804147427259625229071710678714006273719542459493312748739601608776200493342381585588217125425784509719848574081952953878497423243730490823907466999029635631933898853225797571300283515244111614635533160789991648406704086691648849140311543479033753169578297692666709801689308499932673367303992905201546276482698730578050162882425251418308999486241858972044309315554223368462591479688947090471866941017746025569353911115350613705438663379027089472173131590795549749220541066383052700566714064713041620301951274476051033939480689746496720387399484993969604706811961154248219573716004422030360250324777995972720441370845817305775285993762594630878931611167839060697522474639824171779497019961140807413569918330313262372949892285479501882460956201626352404710661061139272320511009411551384996860933010184962488672289960093983559284186085056093852366282275204854149611114149570136107705498707619383314030733722767455124315269275145548401371729143367798773286398363089789714341984502500624112962657549440087763985676843851980985478825982740262400563305525331400519518453271138045276648540689385336598074915007261026976970260614749269046651425003843430539886550572562211513801150409632790295902810483724961081705378121418416600065846987152811746820858263071636277984942475232721603739802157419779695744920500382380204152385677490436794608197879325122000096722847531557031307607688229685978652056156873634387425141281368153730186944416168943036774959894929610204993109565727624523984137961675194001816559602949059146065669673953220691397687776651927617874819538638379861263079729082357298208228375731808425369214902021723372277930698975133376807387743395433425378043248780064852368241500336157715954970464048854325554841092049256107111880813682019960235700978817780568128292380325720878691719323922122439826278845467484753650553234081071177616165638150864130341512455136697990044256791510690432998679673428006376588281010169565278375335550878563037606457626281358772969921893696864922961650919939734425798789108796226549289365533905691306700294963987724297631267573034691332891364456520193448506071824021253865411925598834032531271561663946395559751269733964534715392227434178677221249103688060895190258807601174647038641455628012747762872920467867221334805444267993756596089225828591477962067673004791846040678352054117153293463539395724380770865876113724296660511082188692227392167043869112575922614530290444382704101476726039164674153009677161723971661649087548890370578743552783151395284127750783411937996687744896272393318739824110263050257836896646251462550019965288969242404654748536247797114446713606085278346034406732044439856970406477564580064056082810623863796191855090794080455344900251810497535355955331528045990156116978955791189544644944912204705398459325754856981094772111921270067762284682066727498645706205553995634058675912654237983285157783257659637124957711716383847739894182680118408138388156566613017231780062684863865608470741956157460618483323414569714800127838489077061221445282944899456586093498899302977664077087156620198863174568548060439212627255603916507696407875315121309806893063295964796406054307456962671290659484815210060422673020394071484207112983499901393899906569447097954282139690694810883071987926035322141137685913316303062915765961866717879727068538108143303720327405128989758240917168041149145433701894473493057025389181140267906014022285048153822729290585106275587433538192645256597281064512130588624872644375233892633818372743728145048054997161281810436119541792342538875829819863558550182022037649675787013096233834069198511053722496524289719396560161121860185261464723874742765090238357484469480989207665287700303972430161566498292342091659883067817039932425433492015937483228326445719711390582890661706239448676049063295135548879427569745923742611676415923103323761636333934787489832592849045893081614507934277732216223775125640934545099410436801915195850557430672386454918904655030482785264333507202312828629872628473898689883885981200998305209197896598960694064314657945634782366106248237115148961924684224735478055937963996057302524092262394306294244806948877571168628847629565913222006815599192564367050839809392050432841079276185966006022365451529754636212167180341062871676922195378635781946933281619370689635132099723250872581584349605799506618548858734300188129204330107130534998942820693194823558434140139037211901033582721104767812664202936950477305871874076184088527694823274018661649857795610292432038770863014956654464940565757841688332873627547201755152468139223509122217668497864558813289823424312899314617250643354252415965158464468921441228519694437775014232302301957655904069091813573063539336397178794393651040300978607765613365653947431570954304661420841595237555385840648013194680109479838914232906392491756382525761902130255220126467562920275985326272575697344018203209236239945391068116101236296466792335643546206246259555943559317858367946343623136274100098133973045089815420384214400746041806767658679079854548972320799794211631919268299010762300503635215702294754954956557714587485032426595891026633496961072702767703967004159097806163350129346661982989939112093481007107759184766355480290502159646888778163706336649776310539210668498743717883033031117233484642412506149940424368734210637622642878698723500175069170281870302561490270318543744863964364377148892524895326111631637835966395328346040981249996151470590151890324647827713564936846148144435128993628451878719305054446905403841668093909312761553547872498405347397972841504512134235412097343106026787902088973308726446843282213089449535335821104702400170207767290499310766450866478026439118180662683921492445929798797725707561260398939525995130529361656376592821205609260460711075178450198312425895065477183354282130176220559551157502166402182416805926664272374016565461114477629069642714665654977984123055700854213835971063531167983313845593905703718267399576340341282709250235302443867981392327481896843145070089697621009585701072593614031746501713025766350337244016817712917140922675327248566037909966298328639575017868983310856414841192499257153171846758291562152820237996190188139419086586568606611366210579201772263036745854454183344870439207534294872303851489503326865519354047335744535843093537248522978105805616971273872713090206330045893729149595129333913524544831976748943942759883261855425625547818812099472697213665026204241663961005592097962774677385383966858734135859182884568461970962659403984737658844454950059944199388107119324482022146859265148487672998745751327102990858564376936256410555149836271015454201712810090378669195961940515783440182947722930513702946595790491519492888825650496920264593304633313797565071433736942699415898328035282666125591598470985569095272264315272008071311955221257664144801951019515093153622664812210286021407170640182733319338710366490247106819002118195615186213484006448414794917903054418665441891081274696475625486003560268508557645329422949859515156422710191005831614351183066883510550768740777101959223246475591601134737164786980685522880654710270010767775458960615269780033938471187677666273272273987611573532104636650853838027296583860422265297360774080989223946075119310450684343573876841402358166381525006909364870089882778934897265451077079374880290296859034696911861544838114264186653712286340368862056385108822613351155323946829348450523310492610914826698145811894989941500261125778764498157639377848991262429440759024876094284678587700927611497028039993247664769216349613493045547326914519573933683350343166737017906802479574554031959098712117738160267373149302491589188799087353891007683713240094704991171810228590867598844503393123139362959299900428974801372441062305128751736581277839025145592980530720310490900493176447408177901231009340713838935400019198888170422977198832243673996808437129169212910275523386702992000006669547077766840620018187392917328645560314071658612443434128642422511039814835513195696104087357456530242468971514414439346470081583366120283952267246365332244387779143711141145007693013565843771414690866650030221546616842759959781030269773175179692983992576952681703600250177157883181266385495068037814317925275930283898240466159919220125517528681517385149257106768142594690469268774036630531393051759447965886485824207446000123857613199111993816682007098885961561786898294912454858952892718107670220870775753238959290311889978178818430721237265888948642883097911103429070090816104844809400926540075699398914757602221130571735184051043681914551452124194721905624124590961294171038675363904632615685853234506902951433474976783247158026551948803547737849247803321584836100781019801660641718513788224044592756971979081646095841396786908150842538359570987641354408612202421011977906884192492905882658342904787819347554450614784117112335124163650381539585475620936464045717199285741376012419519195803374774416755858232274294609705271667838889746432967637138756610026226562896652435757801393694122976799181856289440062366402120538700042546763716185687464744900706409607057364911891928496268130005314052128007473709923913362763961936897210010312893700782472120187649077309889526084044285472938407642491500086536469231436709819983765457387063573283201899004964671228626761991579400484910174788224730653092720707589311155913827742346360409556362343555972029672441302228507631760074400801979388386356681450386965616648502038917240347472795688171593688476241898276179941670681397204604902129964819311817476588951652037026786182651533723415473214047425644401480166652423387742716804273580395462197752059385985901217383127498804961215194933427581584615591040437618450131134225902903800804978341239680490690093604770411204392816892167480594586136030140906990847607710626525811042166605863663288124440304622909776230280078742167008015795697749692630042453340649760143063118043994181463460107296942128728607274375559682042702021860850207223283970933115274960465898920977658152765506263494937032422845565838532183517428258337710606242107435657255861832101198477841745909773546446347956294235831008632974350870507743039319893575669402496756124690415700911429129478818774137308631098417289744903297345539856847565049145607854477035422303724054285683135312342434567749989401808570731573448898745409180980392407335932368484089516086064603541825306391140249678762990442915162661552102364868641801353627480459304096993276480088752583323421454926573954611324915986555705802697214340274559838521085351352439127427826576797226311072738736818403188227223668645358398126591451692757841114637062521060009508969355036624737516256162430452360895964928825872093825117172656042554722890117410156694965275121085980704006096764850381877527888780031303520771409691873425369496206125898371827030879541119123739145458828872029727361814536535430242494742049867942511135241412389178730497380536027768438188872123768215174534898233480143858900866854825965307469175498093509408273323702772588595028069595784894223931284825304875527351973251562864077692372837479245172580208728846829646134907830342973060653375908787718104108006027014669576570673531876188631278970660995855769247500640176366623522060059875297462594132179314762708273793311762408501579301391737400406717824860714642493634692285585150007146541908619374968201242408009010558450310802568676086116005435866719800077947223477996750294397183636997846852532932692181850389870852261185019844242914047102539242098935713019943683436365054572130354812761319050081039982776218114714225461950604466109418819614632256067988748972158570796128386473023199703723506629263842549430379649169166899366212833762941623416470891423189740677283546512774877147735915086823393020409630761463064594544140882520502218838338212211165165038481492494621454756154715767714006851099607444458325840754895384469435338472639142098321289978463544008907809541591077680723714478987301273662625738863818430978825266486657478380853934750737120050974655998395676252626977545815388974531354850386741464253346665650324771452765102054833486812754541508114391021344460116480606077629697534887734791420842959542818531127630594547814734650790173563234697250706492361071276982609005575690248996039600420809899316243106204080793203298787821377784972684122506067522721014864620265719252373080324787937981106546244491109309541235154532465983223892443444200333700100492759380634612624850688596696824346900095183185960656341573492653577723973275009755243623486168539415559647543232861430299982023637773548704709257781474058503884606491624061762339240909790134104725342426212306379231859373967429011708945283197038696617921378375777725531837258610720736731853707928894789335144872223729092653228342671175767651172108309624077987071934466963700228916029692050872811706440559129624668151792580304586257657158595782936432852591244731373687136302687826244403335214785150306117248805631092272333915354772860219551950909789184164753777263337131473783434554524788542865943511609861918934017404554915150804008577559152705516661227303980443086921411058921671002178630432997076709190746860060479076804128770932178827609234307388186481202085612688805868580432950781255872530611527463582710291431982937844711757664480418005059277139012128003632401018223654360797709872792960754433155604945750873527395135692366762194379179756281183496980957480014007998771455823337310660734640881860404085828558439766302965034205561872573289393293434426888937194294026239015541501117040715302286398892718967290391124230535755887804659484633065374174968164069357499609481488105973147252187556501821367306234767171749534166594031228897148591039739220648991813200138985130598248536413981205327854911974918600336147254266534189820557310626828232011016289769034822791111698841969421571080409538133147491714325769631293659531405972391814578433925667758978912740007241976097527623013670364285002561995620915147820832992509844142643652849850564973500499552829662462882044675264153053937001261776979130697485663007224055486330122690134075146133627112621447039525406905730129675365563494571779794611244509457224973618645440454199257487285375302287664213412669174918196835161272924685157642601690210878069445758383339212591833411025707115498197581868831120696735511088297017770321644940051651357032995388822630862136662484082607392710919233157860861672484215985116029309269340336732739620558589847372310596256579833796783418700497321497181466410074132950644261730798828445569457763961960764907530059777025920199215565920053619315687688569420451141485483217158762343367116650740861751775711139560458313934978246743347538829114037904410887581280694506578851726113882544136107849461949722792942022955460889910046449848608534271511924446258044499219870267745327371874920120018255338517648382971242493929268548379548875279216772898597689694742020119205890141525099121211866497705982924049080318082936694873282987144469720195729995676732284648343461661828743074214816039326880336343440405331070467654488233659712487684698989357120826496425434263118321499392569519617841315987083593910894528675132295578841536786737831224541760954816017915709836963217867082099011025324747924345061766608810597956300303613044915253364508524453765734215487396785872993391249270999886201591548397032738280808378031459043774302207061918176928906091145787082313568606520896877041498752818456101550020458680480560107291264385318043561388075559191231388339418629375958569827264565176066361190710368718812867865383207970894966947027844217115490073237627042828678200345528617935460753967327981038246036315100828590823889880095037232638646990314631959522186636676637635415894224027075451640284577170270135175069558803121481340638676639319064699528142701946005346995041364579101116641027481895448929524281552592402784720621870561911940648754819642060568866934426985753529639311291226366755240649220870107874733000204379523926808134613869931629501621287837189418008587160278076809781648181740231525377019107794425499137903816174531789901397222986428363505106254123696183697488540887153686909339806390930152259892602506273702756904513553352317836407676856292631969861079077847255171775067280074939588404375975022551279823178197297667700609423927657804196267305976924186171744436703554260209109096337286367282378244374818165203339156549852229893142300280208719952315858765107816408927787377653195019504597189066394329189240260087013494982968834345152157702580356410666292530584367008741186011085417390346910062062902407303178506869238815840983846090076433015550542349571300725856364800378130197105971492590320748754351040002145457975235356322422427583748928108805408527057257247090673952015833673633980757474783289353384398903370449999128389542316400662059205099523594379223198227210823099829814821484613097026266757089890114509471401553061262782731237056766514139784425689654637260626706350672140922526042166676916715151117427901264541863961060751361217035669414635150594603527223024937913696832085399500253462533629867947427314337297244300112467990356880891985531272902062920773202991633300857017721312794530879918341467531291734123017017474796641774987543813138733282892041398347582096990604529176499274488530741112079508729307679765722024267751671246012804235621075138036479256850042141868365912307913094596686876281488256459863927587295075575961869783767741086134070809454385548747563135865556680631329381589943399874399458863194463637693093383852430212275022758370962803557905619643991678922423015105186556672321532047564405256162109346962694641966349687063825583090808346107758462264728127725340020550841747098159516715392134914854741467759659814193207690912206934453268374721847669871431217444453714782399265224899515062023146303219711743506126852962903518553929370603680258041519009949324958492613255447736659498935784971265535614938714607354933153613088023928626560184751343273068238042007953715761135611260588351830800755678639645082097642660084508093558332385741208726700771075480582079454224468257445141286802925639497740356212364855021476689241244928342139956388578684476177001887391879034233944908454192014056469564748687787140214784397887132420731193758648698621495084421080541906476573409068317090715633947671132246768090490374371829408167946060268477987874964838784930448756362590918332953814878975823068593532521095712711055428889277407314764491344077084253630902919715247583196737771745871543003705408164891876904711649010576647394108994861342170240438509766602330257796629701818969697693523490364456587394723566494965477966503597141783366589202546277682048625656895774183957736920850367168625644196896677019020826079237855640824309158632368090863855964532609309530471324687398411611701871814415470004306056009294533403203076318798700912050435608705126318481501490312627308784930970427366211914320396728616960935707200378096465867858494470269900066164166043074430798926464046986070504302695019774620775548960721510027127120280632708021558839895904812792330710292738836077653922507039895918720806433653922574775226757551486248907781913112871069255692706019083814560000560774180261117584009276537159057623267501204107148870942663165377581175554749335502654846854358691432550932885399383033858521398014551824561684580263536397418157224350126031450896682498130955934160900083951017362840247946652557589595910713298720478574919433619806559974656477906466793283289927862302562415570121483493919022487801666403858984148788458073133614117035023665596644440041642731601063521757821353847447356233745930005689271311758756754406702706458728507076662217952398494349732484531728097386678794841558454663981862986311174029912687235835829402941003307277549473978449890106525053398328069825154554142080254022787370994735997127508371431281492756498587763086084854735615742935974151873354861402354389997137075109412133846482779079236178682362311136915648367572293311638541116517085491203991499318909839067488217919824720961851969602074506743750946373125469959577597029559251240852647305029411968847894765243549498644088447630649575041629491566353114649523894650425753789954773894129620715925248662205137054012233272691807519081149665330486582193604030502521781618829978983813636971707347839617840207086240829783119881501288844099703009892366116781017624804897769912086393679045267909614131033884809353637432416411453811329834293412119902483206774943301454993941412416332037624537114821865490489972384334212413884582892332995117140774223993582160162857339269256545937151809774926557747574294208034178742576960946145768736329091832855468506111629164460766137741831434605941812860335493164424144120974346093611508137766779869248466191031996467342679009483410171217974371832949499306309475671885233242723470870346727698338553339863246117602982302401824320083711782087793381920182906405548670881711693909057448304053274012142373636388584293830771671010564093944908540596979840036863368388918132028342063498984549110273251649346840935208026906913216281613985236670450788969611773458991755758668578274715870184669253809787606891619884058648618270124078983259457632856844304061424339964531086147193245169747556438900807310555406445291104007699371900246011685309860406694894250965918743136995855896768326219726515534098816536584658364291510666040524951448398890599620247427947867249764519655775702516863772489720934867911569900432257698426756826778272714411542714267901118718544173904948136094065885099979197796849492811147592408061995244604008281348617068217344543606126341252200718859387480700565274439918195166221874495751615443649305300247905241791192059850983820333138617469463807731214438883548393555694200994360133961540544874479720228205016847883232258167864080262119356723440082746203788384673684657527788782809341382333599174718560453863298844198240187066992504258758753632836721559969854519054773152105074778774653919748046503183292737517354911683172297484896947075962492227382541631991540964144497441253808160890818003275637964528464206541140541812054625200945298748359425693115892628443618792513521488758534480104473563877811436217044828199732043715028541077121840240212545685326923785392046970852694600518165834008356451672507112462880878725391463545040345199279432699670142756245934481103773630000019679519534590049715502982068119835808591226743781176158376718839572992871176848674242718493698848413852153408196706393674016842506470647749999531035832922356448835925108486932607593157004415919832256696457043339580103268680620134884499467606384649019134487091467026780949606079874993020203028651006026632566657347923074904986154941643269631714689973793494465436734732509381224924685315966974711349525701042167831850379795662061193315571937560621588246062573299067277417566361227066171373185393583855301768382621937802618018687039856445625625735615098920399749659041869175671259163254757867526650142338607990469278667128022235278286021029360482721838207828214611354571595485729507183669712564170130678992835105467002582007112154622855475311232886400426271784407184546154651307091924530986630480282204274188506895965338961461482626752412434423194457860208762479331356965481788796324282897941309201850048736325255480632861889469346781817264967692487850263863999635283084935376509471947411592880119020390355075254740137590013734991672365016062485457009318367685113902476109257888401082465971808859976090841433650814526118224615287672360325844211418160599081645900301559786972277981612307686393728095458070048884051884517657829251325135735445849802435813506918828631524854148531696557864109414449134103803655600389198221390816383837777028702257708501497994170045739288867439199561203237250325784997090235946037009262641413575791270214924938098384197927642456669907225631195849735926798597694961381318440368292305272044256258400139680121879292673669843040997159351518236032696130037081496699110466670149564052673715548744871771447253018116702964754212360656629756200610281934567396540739425536942069484797184772626431240331142094327740951346033177763197278754660182783504832273424559681651953640197749957949600732043008124027937038180533246814212704942184010437777827432902944812440463318788711681900367500426519684468520203298532947171136932598488146304361871755024926946296950938334996420824917376076560263100825210336713469722585314395065548263656211427989937297558630206805558059529535799524073223773652637507025583412001162978940324566174096607108620536869979114147938933752590204070264729787554963666384369799444197811955257227891510456468470342062559651555082614846197890056508418999852618988604303604646179276522658008247199744642326462835654553034507883168475028489709955544263038691952223387397693570347335635951699901535565440579591286850721969122425794611533741810823938675170671765133837267257963023692970031268705109074696046885581466680995176149679088279714058995157267426745236449512067480445629763755300836848953493388619989951135401261626920559693470145568039285815811218285849013482629241468275592732203316840363455254444964222005795110190586646556011758769180797277190010027893748167855173343399761082933726877806735385326547344697871135361505838432463971237622747087993664584537202877758090125401844029667088648801085162005734718232874044081880868253191923801750269723762061953619155323324161541564427516037695304477810952865788727872630384676700429808606264255676824629160198735310478722100716932206233151644287861266343530875922580114666628961211607702076198907136967342877521665664480937611983975180982317303530994973133152512089897843221869182241189475858345714263077045132069494966604723308794906757959243455376798534961512578841399682189488809523436252843455207187733102472329903452497656043219923688234136277789217086329144603821735059755894163065228885060108682190769614476074824013075646390327300365665276557516088181215795063508738386973588289653550615393346464920609213900917298674705066961522812913177026501726058069679551236600224641188553393603769148123414967102738714017148326402079953768469680793996070022203498307096713717192129506548840950617645024135607138466070234681549911249067184068052667614461769682665283107032531455982951213864749047954821692866932861620378619246339561571586540560199853571062855785476761690088374962724968862123704451048027468624195136848236243418274801314408681944466001656554180541964340487419260778599821416144298040086979352845297965808359843261115960172228170689197104744559582957892102150247032623430028370255323869370861926869339467884973126111541680252933758722871001393699299559341900866893028555451999665058974043826729878674080584217582372382987867709425110815976890958230433657798476735606778769993203638331998664538249252889284174806823939177015810671346150405401039094965115121118912627630151930970415715245860626097260104295883181486255168604590731189527435479630260359375252241254473457992498209034906656506709131485318940702073127850818188755105347114914700698631162803774940359015955333914661069354819739790769375789453404981116849825481893643528581856884429260298981795587052014978695063866219305981343598170941051576833961108221267389598898409814499120841483423275720171586448487744166235975467285284245108583007065989924130762655338455500090662971116462691837434906948629676587609165508219794571143386884455733664605483701209090937627452805258444187889960981391590706368939193133799495301616862663544118249953088849138238121346833688591368047302280190848106354962893766327671984756143041330071998912669751496188007198150429924613530960007978286887885275413448109363618422498941598262643563479482284715980133057812549236342112975871244218384574372487516772784628255352306016653219028265028957766787222066538165469160886307925847451939264302049085508040342374644638050348148428970375566820509615383831085406809133517851266389262559056698918158375585636493388002232400784927726732727493806834898111395133513448169167952915344965468155520537782802700515635687763391140774239707827078542730155703425200657266434694775416701357825893667589878170978151204214024259926082635045582786338215741452630656896997185203385270701802241946175883235769017635024649677865115219732912667682083298288913834395046361920037443868551265190727954886752115164412545308945351621868147850819939311660142871141278417589669352818661766636665596893831496602262380721834910235342548356443983579345378570666798790236843860757241227067375277342494595252444626085209031853030541584618927333398190155173881680509720979775275776363440496485711316877727357043777464258051322086993399635418738124400820943587232523841272933094380576682096654346260187523062151657408846917278657265490806504273010129170275131596143917772147247340795773993894212247985140066592710591001406663712905362253297180520796071117443051290734880485722163330695601501502828501263713808325734904831334867686510541772809592420025243533164622552682013240723284008206661863681059439093336205030992819975978471531681927490908955973204886594242437152643742998233239415973071661006288894444312972716853762514855912652512134434993494031565234124003104955450237113372969315888906302260115016934973533750284934479796082566874072527844162158629007711769954620821481364872942706029019499264754081544418726468076567917342234733735413589205500654972608153553442742702895396131565411400955552597182488097107136535117872733177433104991404920434140206767557524783000213226828989388408542479796501756371553727006278990694289236406698067439895683911740943916905686295940859569197887699622134043994148601062810920120597679846207386688748671963255060595728807587676465501315141493148671050213213348390859832627001047047345733265530383214578791857633347662002029616437407779341407388198712202864272667642771413998152390685623158102520328056580926501144277424215899548147234093123115182049783033057555518571772101609592187161816090157429648186240132846380996220699110951622078434606262075535621360035438057187381439268844352466603732269477350728263069236543078333590052793232580091008450845020374454886438412722244977374139927725703810921346674176536881706265526810610371987877325116451169304492073547050634957560500489257720781385482873004298069019870239143120545194093917913833293135208736941106704369592663488132665522596248352894272495176538424782141255013211715319647083028298969635622556090284559859410784331987388719897800768722087211912574345584619103541098884419034044548377738393677068740740529979738776922730704149601591714963901347648138145425067685119290789038482271174420625002452922377235418172578770479144050742260136433512010530971618440268775289500943157879125890733591070393375369585293535705030134805884268499779812674372835529568932825768122263959556844194724488542370073256097351101787605965899269872560651731722224347010285086398486279273914878632349848786061398907741244359072209453001912293482713437685404440710888669872676184604007936437302568167207097930561599007178712100104370645341548612423482877888470569990240105689412170365476537905715539387971252718297992554187920098765478346214385363655041253258707375249572556391910638385892287926212880982206693955712205932143153513969920944871014890208731491991820212179696781896272829098202399445560938412651051045803841998622341526174389161290481899296754969600832220130082396406403685626488877765716248038387364740722227234071145093284234879863038209466174910030688400240478695631104644806858472193636548934515891414464779266637439348882249037626107533960175581265779633755377830322408883552497772251048882442078163409264082105473583261741283598529527160521096720344520547444494333844107715188808581516851135842705413880578391117109944430910793376059227853505149097622674747656428703018792087260636835017807006133534365063464037274021814696352906125128881989682508523193174204272899643903341135202446817636301401421025664095104938456104675099605363566548435318967120835843691531870128124304555982082077004029735740035607372449335063905959550990216611264869582340236853804138329104517604468915960406555558308617922882107282203466728226887289693419711592349534701923560386854595077690304151851179295894644346312302921390948296254149105948727390827180856232265619751857084309310187305357911245808308691074965999356609220845355858807981564678666811122796082587698150219793779867962838633109274792241866760484795579391039637396654730985061033321090062584764816625349192358735683734653523546233469050895956452620408263920132463392955409184660539521465147138125084536312657097012054634888691560450302256447341030241575201794952305025234021559328578920623990964291124381503602981068336691138622168895638889100569597136065130146330190968682371977116042702977023749459164038040971144779354171542139770353001362451119784409284746520894614259434234402692205326276024647156159179915716998234724883420364711708531080175499398502965163312904329558253824166237552087040011768771548116849962171880333273065666052753158470253424718339421530216105587473406512364098606256549230723496488173636258122531332001245871296550119759992759297651597965777730002315909701333971499833060297845158243677260309595227982366908197661698398552889732660157714416147773324623086952252840405005448162807038258801268568831972494910021313980582516636213494531099889017755678093644151684227252794401444875869900415077355904353058294067324687665395038841330216237765415827503578388998875796053427593427600520950617610998303549197284507549932170489533749631176515547152074420669644143304739969545459425032485104140611489332781551814264727964441586797535970407502189557537668787994393406161269667116144084893065838799905302868411703667649271020457360768346634539716322524178509450369459283774322510119209555159934704145250147257638078150104897868312908866200541983778648099190524059793014088756248940226135056323751090462297105417388814796927766820744055684900856607296782815756342625890916493967484777826581469642579848358800105357464706182466483505288405693781852781971621496971578192789603349395599347283580792057178578198061537616283806471186475011345546034830399860693853758167738493771431701110137626720142552542459805407930108808829205837707467837269498512630821384988919253652675824238721314957000001344882317160070422655039733824499163007927857463625831851648795356602601068960034782172042445422644800949851947410114466916570626161582952057500844205741325997327173591828342143317792900273570854566024819632382892867600530446691740962699949853272350175392292400039250882513667041136895923279214264396747976767829070255953905910601999147421654799784759679580813173032844628000979287541958506845688504270198649202558292945158025355256670432126569482670249040133612466763883513383371403413989852792602775829436588368198675976861264484651623656276784806566211882906542358808504059446337121499145709359164584204801662705454408618795428254655297405134005247955393982245504766719771650052665801041233981347708672624314570826109338912518860662263450595840771829978889539580767823930737849434494230140686529386793129171542433593873788750075664662598241928847398637198012756173669628955050239863339821349274517530281546010301095066112462746446152350983274959726313467087000095542096348623105855948278464844610410412650861518628664881609897900559650675502676163657035557280558712275080115251059515301853509847436259280312398654846125751237114049209029436123058775717467561138961630332742176603667511531327677679142944772614904636722731085083119389089968472438200115378069005024792841091796670416945592587129976160823247954714494397206174496684994420031802270153941410021282281904193630392712717199762122629442596271789234700429084895474445502850594011282267672791675234306680352034687864019913667626380190257690441261466694677702021547798803669646715297136403095258680243319576205654246930644235665624473515535845633477684519693084973200493364234257004590613216946225589445474319178210212646049418745777175168940051374194204294836105187382037749082689389601070013646450011607635424662479743808190564442916543086934750518990704599589573485542662940914532502450336057659001917539841822762893633288580903148717740450247250663778444869704609233228155981720589776232835195103593913697354289307929232183647074193496488506772552063759405888166266240529356913762954020873614374639329616186840970898855734396435465122674495429767898228464240360323014498117522929642032746542565130875459367851040555739342659806388303476168575096063157830740566506024493225057785567618372013589384875620628313708389549785243991435123716314604971117923095465987310668880955050779824715040837871675232645117886009181006397929724996577994626881782476542403834041301861199949243773289294889206747644766736198663853752407933659493281997727584539320123129108498830563998641970106700602260107565117585261853454254655081950734751763931595908915205184483974143300661915159147773253914336940147912243238210417996625541290658043920327478024922126602263123661926945361324415283893635652246659386436656807866939285281707350080739398754258048730100854630407053696820767311980184851209251547380769782702394721539914824418004076261874076910758246151625526051882995932540772118434793210836419289785189099925179977896574920937340263828940506268442944700441427164818374493428742466327681734131390880420148978161077389477046280855199077066211067348400365005481721234917402525328103166502795069701226540706948012720576690469497497241441830825954533738612576328078215338154856790359678532388267241635933582571518483510579728360783874000894821157696792594640787353597850599441975661683475785742994510429335609925195336704292647655358484674278423842752882437447490782289912756696187927631460111248477795521900367884264707076692142552957246967247678008860330630679586474795062383624174273341357699378142962657082256287351370952812748969806159051963819379372485306100908903543704780617469460417761776502943093827281953372787984111683705017109351298478556828006873734742114481012008070574745432482674980347978408226765369647392670701880098001954036014795414350298488390647485939071401813604850902331310660075088991958015308284442264190340556332077386083403545978201507357978635653112528891713253982200199607846012519306337157670140715550980185275048177502309464474900316961565834731896704317271706788202197334912924651094841265122221008395611008838143459984635219101085250309915491931555855945495305821928489882218449432022512707865212271073668572067183533777978084536778870457928599053884560660923965408777038946292072869269578623891698486167230290919274237505018416341022860885395809993435519023693085179500394823505421136558120335666548426028776597620322808363471920794986495361868310450731899192217639697785181270114028740447675117233783274317304899954660304540830742643111364148632418373685800563030060915099698612174458808827948389251829466148843251334314207705360456955583620192161268521504786323818796432273042030394508487118878235994254087363844769576601330399989014768550683779089270652100337776480821824672341808279959559282529070686868874898224187297091944254510641456109573844522726285676340369260969966373962116861661630900768658899889711501448235189887297758209723525635120493130542978142130942870437361784439651639043406643166882320112947474245901296341530823753197251825334593739587081971673410794344307288049745033070125699974185909097363853470976843559215475925917360662122191815934595146119385125627665085563132377264406718189679704043683716805223372083597959349575672330896509090866144848605110847728617701895930779815921231639684475716764189511522859585092326338657975253991474611770231932294330827546173494566737118283345468119219211852597207853274519671050121954761309202343261397293055153467667458902946980584657917592967773091879871437211499865086021116502710497023016406132848470807997706741903663856446315312158270519963963111711606416960768525357857570276081478715688019878888279200895886967430214254992256042120885585590171316827342899008299172121313161730853089227621298310940378036260452249663881288580462174249633696607654606340971411945438610448001881441656547642413321171557251269609280337184403969852291235129216976567331543557976726717317254976731139137015998307376142133006000929678960376339952337440214593979140938612776442879399751018650981670668912045460463909194172582877473766424307167929510112532442741947756107257467152422634483788489060942618948194033473874060847500726576805786262661481600472009473060411606781070406323007896348388243952152217232144984888878510850775194603188374188110206643066243825099645031589913335041200622570509519072767078616550288336277917819783840253233070941579722638151139902464970136117571432349495913643163402964528646744245011227293582079740943905957870602635875016693929645132103316373124633659887927062379754586419321119874695033125346646094857002857149159566232109369336180370350232342344933752302301667111898260336522153224009139079939360634396326140801294748299352515703006044602428332041682167747893229520653795879565790154935410390383558329708622228008162989180725251746914246164259509287551591649973536259786817703059950305871215615944559933552804066371292839216617828194199704370512644472469707921092096610410463099301836400894245054635805884185220563394223091392866472876193046136573987079026568766660328036341383465474759119836817945662178745998305493303919876336070395352360260906040667159729430239292833358217220287067743704980322039482033488291541849310682394186029422300655204965523279755854724406541332812710094823648042964879738216035665959091875015724598347215611680010063518268660037993307635331785461769022387741133914657448324820755346341554766457538512076943126970395822973555685819960146134255556778914089807885091231776476778905906462923970440481537828264661413173028702735623065636336312416877791318694816721087954077528356319995047958268949882386886271240987775042676886761686184188380951804419292867367531373750803081478935930510465645172606567991255690635116424520442429138119356419589742066054254973589234200749072387043872780516329015860765528491148064433430926883976234054750446416748646362199526076306286777438557940410226856780574104735418509453786252612366951439655047770322012761652287431072501070125027010750985330326689265480636233572830527178791237139555148018073964596970244862320245812687812435482421397112084701029867141692604362574246705095021628264028981617822497871374947981913429624630294374172449891821555779533090009018285220063545248643884069548810979899435045306082650981400695766048738602910084531578350801054071641944633345816728299093699899508823663317759929346710483342778936858427031629358613328057196243850743820373999158748579634124504021248843706502119704230113009324333038484818686154764643309588765533946044114326768904094462233306874472085441972079011339376804794245551096756182020025718363289632377463735141615352497693999137178535632863599471735936783019145085755979975047253865290402058553418651395702149326760158531113439018010517609090469469084024400666550933093293645807604472587363820258353106287272872969827279309964574356706709078130901903753645054700802588310446687690585622632274225801895768537369257807972885049651358881601758889725711440393508808659048818837887500993137097981646413113300223610734779290481101946930418833413831018788723644044548367295315961483222551554320277569259406434571522385623305950456160936495624653288486852930587005081387137088520710600466182924161468588898090969114015740053001785430597314424074539066093203662687349888405122482797933567683009747329532745710547614871924599636045810356321391654067801303211470594668519032752477036260977981026106730415132654479079969691422734721941602225236771480042790995908407715799380167356880238043124022877078707783445665149562582945416225595201461541150338504230134527993227871858445630606550450863989896943951147938465447086737664684698654488198185716273041079716843664962853664531944302967539858507453872722401170203293723409944918401084072963020893294500868350669010505465442611543070064780149394498313488870416711668174919646853870445043765439192534466225902780653378622842396404674293952048675068878852458891798096099413030491868002807597677188234733007665583990660703747412985975226467615981576824280146112365112540753164578019450775947061864187954418936292762827125698623416486742896331043089977394856321262963684489165732537318965036806598866211317355012642232769152523881289342013597418880664513562136272832202881332877188055737979844366137931970993484860407557422772324188716434183859315650181965228367345915817715324009164025863204023785567605737947222455944251818482389863132600157106541851080440176657222692647878311548597242023301901828887392254589059456042585763063412853936039003537590841888893030983882840346873329526766038854250820751406756018006172460269626373735983230418913449000744592521171088798536813949296983061103387357441967621882213966922276370857768385257743223238486506046160224110143472774998835476721065442751970125442990823628158211485745213602505766305182884614143267586796980075494953067865478463445203122250579859817147612788747723804154645945984683231739369653503622932130193544116816573612928377119732660558162202621579363033518647218316179769543275038979739772287243427600501636945666363198189580061041452771129587480968026170672795743981938098674679716112254218690172247372057837310775284363395142771656194830898635223385357295712831603684618747476278719883104545614488093316158500522222948412823620633757631213182572484753283072632230351815542281438426355104299741545039890763631325713239673788444734206779802926143326613358548849317012434381732460555875793987702515293156312249936202538709667897303529784990028631279643367580945029732919518044961115872041664800380068351203171475455500670551862151390782629116095340165192730460266802400349689480632873718757160267403831568804754208786151366181898004850656597079519044462643392964952173561351644176089301301851347997596345013156949950686274560784585167618906732105880033354032366751499068990508984209782975672019873715164351771335939413638086348921108810145630982692811993165540473460991286860920531577921918982455019063054321947187288318546464213831991341581575674232597851817702557724336443744307823755915686753145529062161860691148566091175045185225275708426859082639951088098546720395792307361182629790075895583016880092140293432650259927058163640999589240035672809636402822748114057855611060127893884536726916024911349635191666759938447398924266188044310216611075901472151166167448527048078657351619374944430527109911611768871581543289554176776693020461466301825607991982656260035039049638447449880564830632656606311698686640703850498610558850868214733102631136275773955968612920325104951707509569619706896255233113033694171948808085292117184206677071490156812777852585709543538830979898784041026572749847108976602540761374245371510649764482578071027831091463932061981035295955291771581633080999186525238842844482474748895830462959377575142628863596694770044894952902465930814965899224585984687997412895028864327837100281022911988651825387526729028506618517618383566523086606726325451880898669710317576441400094358852989938629045654544804143058990433909460250065300742416236161578074416463341360742915182495925966148150248079601112700650648280249150499805978086428935843361047604191903755783332039618012823885977122071720634112008160673163337195602461731378511860937199216062119994803796436834107500771460294799190133040116441126684330462370854547996032365889532877617551002361107083105313880949313411764806964476922782511621923321686847596847808878825714492951432744369847363297562380719317263020596008332778224019117537229193133333078684934309110126181693623277118468776100631335648547118620492032787214057179929387525039596686131841910827850226881602812282713078792826510448666250114930746954585954475207127034321002814461220286882134010734457672688658913701387109019267694763207536673086039509374669249744141036367812418450549012414748272371211029795345977331074374467859583557175840158987921583288743433160815349003983569718850745419354893978544055383141238778440497836527485953779688694211924592502566717355337701336919619438966812419861906041448708802135173180212188391702689916641121511201860364682776053779033729438729787685865627962787402493867054586317449226616118443372301473800704298084364106387148374791269875396931705816426732532107077029716920600697044709414369217928079007914268146624511690041352790670264079321380760162611838234048789355844734185762611460697776899570536104559518232762582376387986823187764371499336195757417000539169510240456679312527650979046035691557242036969969581123332729858748766885005359468630475192079045254132811915875886256124528891020586450453533796611620754316820444678060545552883841584921535100806985796555980613712831285605802688594944077308083036178730991097592613455341914970559871038915231624518525120624232309233466797443146900529382710548742587790497539380261180748069908308582950782361436519134895322110146474421106071627523564222599935214480043873724484321784810387648936227925510172350510603636481444870695548021887679996990247285461621432670284380747475430099010111279254053981861464338326999065293632971586788885882552158089314637202570384748498559910259912928962364275234597721977094649338760841403070566669595424497507912402623293524424098244178253118661928564648038418348876964341788579696719858673798951535966304806280414702149860370406753686161950507362219721068677536408637541375295664125133862897046722816717413339151848388255512957684647724054281031178475240444590446789491613650948065833272828168548521291248287989073719471452641304607439838792799891095355318008951965467132469654360532949126530799812653194764991861482765422536906221699498957980812361177314073425588080529062352301108805508234790241222781043160412252971062250351788261411315807731463863110953872892660783999194340386870754757363733529391041788329151413534233443042089950497461914097968015294247401415449939666577047504586016869616193927185927378270909306279901091248747159452861551276524597966243108230698247013585183288879305765188767003001038959490722896389814781864544355139993557997231318344698715571532682328479830833814093353738776873892422440297363863560181178383816750031263713913889242474568569245727235719726101270363311276906341335274649088895298738885719927571241027046828295802819028629570692236727938249473864691306183121555990217859956513061950427725270273125381690915475560548478907875467535592035333031441596837742952675433881388591780258284360869189753902412920303015866076313294202445532712078299917536074283980032822463367723314458010122826174073419264786854507378591216556914231996168237047676548711053303418868776046081541876884045547216328007852349567180457420366954763055737888974182932099044736523990492547624185523934529347992889650079382495749304437388064832688753642983189148020306238865954229937872986956473384426456670018734776151127623904731086633800946882616644796975762090499063501656934255016651021757144966790624989176729741096951766670545037835824064136454638184431879316505024299624476162157215720334101797755537179560461319894084034131959367801191169589759595646365175278433168745270483357180766043944097467566628580515560417568948260195990841359031247981397920620388720533988642077804531306716894283347773360354762960103850939604348312251071722175092589482471956470186981326154579952347938541438220301697916843556112797041016168534141828739517390679968608695692883575834535302742675629360968097010720650695815598547845877008818552405049946692615972624200562180226462943529847885430496736011613042591142936526667761603947658291991786067913336282342468216761309321785753035980923361261380248277783364158141972674966600307655668094490025995660810495679032523217808282598515344395589706897574312350449397452767102907229768920484403851575179870508170509749194072537822570078288396347258606366439586690174100778546210425596236731677124443499880551903556261515770143524805149332868178462430972709261985319991908994317972033786457809625903931344476789569861270169609946944616279519103567480024417532391020988577447037243017790572609270528231469566830548311321764258238236677386346576810323416402560213092478638197173091842573385040074096236556357443164574102342618869838773155344167514213743517436865293242582483753553103348094319919360463971645162028696622880350945261756576553963588020593632519701755639003245176666360087006417067031848650548368975289002947379470293590608787244618979511370222661457691119561830554408101981690243333375701654108676965249929022588124778610565071526319281507675263676339828097331579971842090889045016194233439921819956622835994936969181933102252640588244833030504843925289036134103924639353095244639520726343976938114691215701251298005259261315543926762572719516587724515393588986455329572561614013556660086028667369275977746264768605425295423501786020180738415885217600090585347465858090999096653943120869680913327740914138992703997216916725307695513364984637061461522142779551985093287924831084493050742748927708170389782573282546952688147217822895959041791192257148780058015903015001314570530390328420601812386206195484207176369294950712149451251096480236215939647206975064507447712941247388032224764566530791334897227343157494677193647176936213790054824666882650546678364969765534259056270588901594009704283853112813350061609404532013080301036891555035579285121691320230060833749997819558737712865814883673431335186723775063442544462820476445347927662521915921810966959787295407018410300966404840077195279202537487716769932323626438831926702904184579691116764855879082551390861149474537621170021474279057919395835490095810218526638322555601951812709750839416334033171364587373912250239454607959553211146892140642495880099787025856413855590914621227598429952869450285526903594470904673496526168251265102421848104139136209596872814068408559966699574244684242602372819907027067062275942709906683209361523655604441175467211616363966597134488102392578395822351170318435237767030089813267284515799264630249849070135269533227025342052672201649832974758914220103180011272126865806138231532817870318805154905924270737603080067660164857888901054458245356114880131609823598280623273278240219235544454773201023944858413942183870205546267673263197700421803108720644072711289578582550306134947915732383145194908376120611725962840265798687149638015429403384365705737550427929751700924458653154392158155912220517923717145113435101721885655830446397504400433573440760261861323025693678416843844703279329353731824170801748330744221353118754969243193050961053946644277414735525553255746824499749579722026417704857367195087477591134816919189281872443449052091637732337357485251957714699158489351252255731775979897212454579956647979985309112379615259378920832338031559929683565839386070700227878750169947729858051894817185612866350520376883490995484378764249561327544423986115395224477878760779803304152922466593884281276256857224911466211418375710220580296904850838559988593694890402188420910198272960729618455279556688108532382750294850230560588229575138845400195385150259509123034684873165794775643228741957599280039624904564516444369801898234938421396094963556700706630756515813392875765458775323969808383199123964754919836539551473510503936358150617993671606369419046720826203261249851945898937684283467501969285238343845381041088053664703333191234846137112199586957195371000775880578528751936996293849373140880482091354871076922844260475953707699743146912130801358072399747848128539578809949108614537504111466609992429380003597981945525874436563276341954702008065259841967114562013814818165358211509334240819507744464979698426331935224808342485502315715601931991302327588544603536145020995005992545207179303855253794039012931654917463517116965074664146561119440018376772835491088330308285132289818914441887958747889856418825743319364219074717579154409441243506868969735614176518897786185111987343433334564626724809002272103142472277513799702398246311653132301236037504948066199000381804302488281789172917762355354076677422674826933266344351351577784297432891407664780303083018741730056141340694085910007348099199463664207529488444701979898161545590897562410829781028345382060104232342263859757760410570515167385022675197490561831373171734367965040797974678060894114141185458135214366920334007537998904542964632590230351110105316929059174757182563000851068633123883415035849259209346453763598349911657173297384688642458342169114586892341006799044674653224600536594050766895653675253043957693666392491471400801169920792052885636067193695225658843882999664538389466286542032817783066058459030380335815030483914861156963779773570808678008539491926835678713785496897633183499241791709000413381889983148693818342684560163131520350282585402068487684052940639720243020636151408904511037110255455212596729537782961404059138528392250573496581953341369817055027658920335184157509198757392068469597021120310233037875676089580828161179879456871267877115665841926972094794571414812646405455005363999328994688584203145714434417206467586434713292271665948517593767214122902607053372894909208176762938433121359273454588739246530644694194331471422940431630126630534906718752517905468731397385460688862623729844385513644147834802219140504833673798256680590922689318531982669206041024494913505060970071381353911581148019573890639623592721891314169451617025866190177486495621744886687159681675233199579322868651760705572889898149931797654762676038907977811255296317890879095500556181318120253228344984813019498296228232588535477832191816207390550727591413494017065537703790474667756066722559047039193481705372642338328679245793926280331403074076012839746324402586948709192057245237880726575166711247231134157543479565100187434697501668504744729158282930053844314624185342980633149723894267693746123474664804832768141060776873093443580537612140195122403802583793783167605076298767372713377899894992572401291559023113344879379362537631778123490297802944562879597256485196762192901410519836045807966871709081694060859663527534881993803052912350650768840425724949967629545051770614835900807181403791035148773860660227099396014666631899851071178079055309941777316510611626996385293239498940561816189144246180810325206412037455025977168702434140666939382181251210208950575607248897626646954399248409291012170035437095756716560691608636601321343426856297922268537869677688326129414181275714440957584205469954859730578221355100978370149583276589322938642764404626579407629394723997419769599103424145341418405581402097312013627450370681021189127843808164843678642832635865390943572177708591967746370290899802714953863000722231877217495492474144682062906480196807856398933557551553581905347571873101176892866572752650625820635253712979501481190610623948820287569775785769979427932610396289147907689959560778790510486409942095052323893803588855776072109551498357291665248166147545379250653995379026055662340680628069323526146063423530660349187579319023927261571765707126504437555644571839943168809525018546296147991394937270353190653276900015676501249560751804835837712822212266899162113304272516423807483555586537915424165683522423136267210876156634302420964139893733225523282937654892903940732127863470214166263111546922665881855863340362638671957949882921334485490795534551789851907993337003518185991444397016165473068019292088622184913277440519347476966586379725567051971444513824370366862998769353867362499529820589074045077375268248361987069793044876159421907648540628236256659310614646404326260145952913046941861771321910228640268057906259527122943423445936468569789223235237191966152429434937181330648290367292268066510724378617450790940271677924455034455314733195503922938246020210043698650069349848650180832196486314242383710798880548480047655277246432650232157476876399081450601488561407798342482190422879100751732539837339623600604573927030683889036497344377926670762209594338932014523065800972825580864669659358571750994257793119596102300485930717532648866238489821803526885899937339811467679928546791681811542200553164854516422622372358049866111781911442198136448240685421116913807857761985666831294033930936140183276030011723896579131997164202899252993090969896996400435535605884203503169745880764415226513388670586531960569008231476671437153059105288120761072384371332546194528856121847009525379294823994302220754825849089192036258388201440720861325677837431917659370618584490915250918685561580871181474149032985738338034539944812415234380476621462820328373339362703862126612114134380336471697653298796747813222932718574136631658493027450117572932189290148572161345976343625863519812904167783637376911191545295783460835206128161317912613054794723827376816935591279734860398053139096937816681016237376242958994234794987565086345002278564256319190827445059779546635967476893834466994295895653815694532103412115100273290050159508009204426304634908341863125289125171104899852384900264508026637808179686801287531763455492330147772622966458604254092732585484278944979879079175279425268465079047492458226954325845632152674369386146652549576585603254495330788139475505305113421327976585287692358944160235976930330750232726131768924278647115367698988180648521655335930435090796034694933677512432879921876783713755457075541318386266448744944214273178472486326980906586575348894565242638181383407779921420865250788960485615539387476075418561462987810675229964555500830500445202211363874116958436279747715979794040737328332271267672538390400436048953641176345723139039973640442340947888681987129846291651934028483322170924915897060772192386676188045315776469883306697606855434120485705805004877389840465661957964670155656579971196951682969360085614581197294145765933349169533161595296915692362990817931011540933247546792688511088121372637458742982867901192126781018367097990107886557558502634339492961508482644007685429349235454372419351294503825342846967057594672904574609476202571384222561019809378894760429341262856463967873270084369988855905846928480287346076121312816902551658260558773542800646736271145697822252027160068020008307017276404974901100598557188797386964150135557586552535253344194134334985397685667888832021944204400765881927656714465630521016622980155274830618376291035590617273568562254694453008286555185382334413318855240479407207949155497349483172275262381463891471864254020330386377805545118309855532414240188137268734532381161637231570636807631671280442453216616166027413617398308702200289992456453165209999849285844171455797877860058423310690941910793975647998047143236793688037615068294507567723001755913566660828227390507466098735482979733495371049818792814457097688573219019331363105455352075329597156626599158841868441522133646708362140613400743938203668965347542110954260648125926102226944990436625037806334489729526223796024787121709197415199647771885358164145561188142641620720235774803749385246709763158543978504172038316763912153381447038862225580999879645708948758885556851341325410925024495281179274177989528675492945754814608027324064546879799895275595092246515570531452856906178502529039831266294137281706662203013244210660166461503822864525703473019972076538394670057526084870255980090456325124373912291605581151960400057994847005947545021129858877080133157172225543038741876073179320199420601894995192393509700990892424992068321919920107431780299302918601319019427623904404076321249200399395940721770134663711243855523775574428003837293769473912025556273062390251453243233414178535515253117616786141743575593388612663994711076689211615269505345338851769322756027777245625225398912938091195001640126610589419737686906213642366772004625404914069766041961495920591566031524169775159750891090193538038598895341899144237025597894219976732315734328861610002591586658433622155071853194875772114880841660078930612634081203399899904806473910187611385337644158511727134254443128594462993609625529032914882896799222555946177546550536630394660314881172394000434823804533338300112409227440345342531594866754268190667037070265400966147719412571796569220911529210197852759241842776661772304314277524495408751427249453319740498268185434884926189180964295604722318348326463826838276455205846769206371953326396892727237084747632057651720924763683125399559389045281245135708838815461477481119617337199594806684473669580245675098337124736178279634335174988565916190088774967746329103938980182358068026841383979867224324831644127019885838178515994020162187436203652656856834209012747960887130804521455213543364190122953896416271282777995467718896606560454189910458127154520916071692804201199553815640362802475980599524088021971607190348138455226746110980802312827803479994226742003050686195533814783724574933238744966909871810116468710666140532718169019651716903984300968777164177423043200295051990631404657493854995584918086670562787187479105655794070532995668668385305543760857464671982495120799437500315011280235049877367468302210924789154690796070798880639600287167317150056337793655709675873326649884144965104067985978021295414209616157057555602638072233275457520128731451727866107350541467443227863441004504226135913717159708954535250622356541247356261257358344714520585669029435044546991479777336975074346462547790295222935974042399973887112906185842762026442678972490028039299407144674478710465584003346087743795344824466078832187811568624090338919273215138578700223140945945812244142298550513881323615677507741466527462129967863182042681571510301550735094338471553478209248995266444874388317814496378856923342745220612034844707528907683935135338345548486254279559910617256260198590250974472184627510550737679098761380461016200776912356677045999575946869976980469097774415685076915201460638639327478724424779030040445296587010680715867400922348975163997270742465949474627215493903976871412798061427065343988811594703961838584400138167475623897517622904747356418844583604642545333646607056315864233273956650139926209083290487223498732781315898543770557888773515568002914374072107199957956588946810648078039225874526783264393958929943763476581815442739796283006791884723716096731329514222949138409768454404437949016042241960511486261493355735270611649078140840494494518544822095541353249673850561834176127885766521249039820588218056912065474679606029003420592036044435663118976575965248196292870214516864648922252615035727826378914665635357905192075813332896123631784569519085661807012460606247738145699169026385685558107030888708663368526980516215197826463466193615490603110754551370289204620529360229132661253639312136364198645813832387124009147881941171614252011575922713901151762452320703493310677646994714216975127748201771924929949408758228938238521631058886602896842730678602403333645669214195373451856068337491796381564375332182673055551696429399543938587923880292591856091872736011502325518498710830535752979179873913463401058949544900670625228971747012569306389349068915902713008448738024250309356242623445152647022356126995748101573761022936464196482713941828653987256614409490301608868901798912135347318296170087285607549269869275834456050975127661237649413652338118110961822572645976525689198531148574954181160177698157678132904598803117742509708104852927694897303220840661855357802458602397484526372717635842060751150090743513504868775402701472397226460413695599806513429916497354731654581446599971968964429384752425222048449123511421233637655259333884770443182297076296590031291639722815170408914522246461400655214377049521735516472242026885339385673544181003694224794102968888458440911594098486193678078182262316270676876871112101514333878612658625127128272134023340036042071221782557149599998243187515236407247877188726141486636172088023250772627176684552911744773623149606700053381010892229960491642874469918488338294353282850731723186446631190899480903893804518106276945733425268675302289319964477266539756714197852577801512775013340929478558864157783107094378998737342020033026761235568647302210425856055442459374191961860933726407424119164338220328243174215025042975591382587163871131792330967415066206841805280944380327384267772999989861036948694626318586666579161984333246416896969773133329869297309644415652052645974269278394584829951835199991835175785537052330244899475142190490796006209992182394518362715796870688400917532911590991174998474285493935995008350514526792451559423766788378778923424711799660674463112695223222231844034945501009092751754149818219448285738573154760320238028286927039467702205187267874423326144491102742813623762191066864006453831874474517045196886135099761001346437666063209298010326644813373231110272458392382491043601905952090449747350224538718959275983128282267264693949228452090578885869540562990564953742217083189993857142116961627788566195834457648235713118782382628877759272265987458825301314469343303819979884367667771983128361211539041403304896103920572935892181234926765669804389489682171644730907246370808250905419433758397311286851458620632578796066281782661434667628694563566154012938031581404202749828738955491954887208725296821933508622743763131825243052794449905890101982598323543190731676117317744104151364272153518175216190961448618639027390144235009843683483423602288968668713589208235192551396028766230329156330287394926651295349009573567366218975519825916487864422099838674119862871922382418285547179822882311252418654539400417558681174279367329554842557357840166333355465707839182347107868098977448572302893059424896523629987468264873535556260643328386071817686536540986854666092776672524874024289898313523651374337530303798849994216315278996725120161521948720379897456816839099335304198338564930589232140199731707919035164437801730328670347153133539981889371196451596786955269777929132906858411220596234735593805535278332083780066984761903769619360175412701821475072288627988637278783078332306278013661872326273812908616327230286127380314468040891501777937710922382577027476533621193857127802440447561834361019237038176792337270502583261646797926822420002001884674438332555036953141485574284995520452263691724264105856354527842366084303454132958030991033331709402231269851295762625521334391734736224567712311118206862966805088120757860256413715732886580107372134836140575321267415535293279698396480508278556429681777334359546350481556841983384219976764435218440837272641105206462919984898992668868036246407240815750343086305982598063884604439697215898308385275612170929150742834879383149971578059294625254668346372357253222054906834141015864882243172012770506634741919552807140338051680539727787891606389991896787815692534815703119021215316268784704764815149535519616561722949029156989888198963858665221757591802444433925283993797033039260465114350399375678784400922090657691070344453276325564390040779443828274657511215463111146854906311053610170463434079155108842110313216197225370614336298325836666979183994609165993530136057912444544283922906974274874094655413485858180900068130324531817604205646610436030500542297398342055161377940749124738601415541450085978799460110383202695989321519846873761249479483121313030705211921157843966599969384252911775618125775800725755181399540455860527976690475768752675477900977807941615104295634297397963484261188601690290504116489137832491835966342715286074868444530925883171111362887870239906737677167678629380524941446369469667596788465614270121478307529460553119503636874750031312087547069613384045900091616488495121926036161113095877004048465840614611680536553372598889846135168564445412829248364427342142390671021943818873622148521834738406375165170145485193999055789755801784670301802694606059144975265612401337746827615870601017482044766695664168211382127662741456011800247188112040739444150648918408493882553039635327734229729957469373643517564006539411544042052891776147935622312876797139176693229301617713031984765115437359866905786211163531935693104828462875738325600216006818669488013186698297121175001393418244810605416211756142992074480718487777578476488170170984938884479473398393079543289675398112156666588912106088733979124499987967626405101775233461027402624097256817398485478439609042757426845710888704225425950191156243374054183404242765984914802226682217001153044429352855694954926679352617206317751536377260800173220520292959023756029780885047915366398063562352712876617905307021486758364559781063488848839386396848128161969314462772919093982131879727083673292885466580677004945313356845610700570073976840023946233547716473773203244862386270248190991340211981039847326735732465750711662158961814246005745907050006877994741525289874990327008323566759572874566513020532102718555174552095964132458596313759414554594691057690745337249494986600484968863073635676047664462632397298132898623694240403567889358914386275533248554679420364143602470940509648042872527574479881053770683859886663717428414501445151659451639976584377733271530964903234635423254461888889912897605623791927247903323659125187735098846111829434458782562645811685297261074769542485435027690464072151551015568425390915904165290681285015604935977600255448396934915217043550554966356917994117408966880462335495180640142085743974802013540023707161420413074205717551159598025652660464709543429614059117513960929998832543144832324818215860721293937991233005514637129490773928009249814107943099629244893602837800893286217081223270888550176199128902244647604240154144657900885611550937876244399823617845639652259770376078135021085985647615276717423920690165386793554231009220093238403953707733224897609508727750139659929967777261578558666611839320304210775311593375497194032102652665348438725892937612357441092052035477115573948001791763298186621328857006090112530181963497908909980776089760261951065373990300700666350237083453981429135907714649119590739206903203350246599586747441585431542300603200000553939788626909677796221928748910202935969867879578834828584731357790741411408086982304582968887472397997026091142964019007398477680289092978740139630628219388240185944929938097742422602506840478310137094312194639600910449361168398366105030803167564857106180210797934148489025979369973515269174048295255012053349380274253069383619153919890701178925086028314784546485076095492643300424561517956866942614907770679719204711647586187597044382434173279370130985440755886885195000274510509852552305944141729476604964631059974259876316725040573855467102451328849369939548868958519424725787289961536469279096195072018954618930255342409770469133570002928151338152201554338810338095663124874390484768174352376615271179273568060515839729232838639566619110371558690892621691228250147212870395217349850203024526713512553900894753711306283767168543214737021197552891752773454530817878389349193652947588018946340373753220779766678562330625972237541779301948987057862170685217940279248971292871751039180548706649616465102267166072400417245336215704073278831886417893336290339394483817129639591814365060205020870810869652812292206064059969121223265932052328451215941967622278304843050424913923678031972761928090613740820467296932557981594360076178979673407363785844784472176589813682662807563929863494823772028182872471242240619956742128467189322939765213436925490613791811390047607823584590484795231075762700175351798993355805807725895714300209420782386713726129078089014066427287845985370826305713253533372158442365185793687473240044154633540438710220147200545412469981155087952137709256377801651729017949928358987278881615059124286141370725072638442554517648594624232601220447136058690414598177392855874849606391428547367072427964428905451279801658229132649124358145599796794650870713141966157098594154918791688698301734117954904048847165002508498475977238625900825603323423069281729654172136230936963720749046445371159415217858897455235446454962641447147068241595968842020878078376883082281129238098546510768573120729653332237767877363150420179037006518810769720613363310547362069615681418412108770900607882075316878468219679918247082856518802936028862966928306323683458576271674249134998329860543430609055285757419783718950038463948177944452426228551775837337426384361954037032393702094303378670028453351061398751831045983457529809418968362181292514201098572073313876035498397828810125068589376669421589814288060554994970707498774164276223015628593667940260524141696859693382704522304652617682488587092069116959628938999175376037420316182261249971700016772698562722859724771908147004301318134724772140931621290810845945258271718825308814514345579559053376087860633748756474670814042381417823977666150539447852163523157313063001296806039757819449391976044511494285561317278248279684702614467440838943680551091451446978581702041469809663918167547014223931351323091222258271792849389910726813401708253286950001254396150554214570739054335290135370002156306664955795511628760464675260381705813658709028820580825790574647221517572704860976675466720862929072535107634479475586458507678867212620188967104812265417329593419322032448066978674108608068331156682764638653460237853145348628140073409098564111420695094388690006813943252005388842640531394395464606717293329319665070487675784773387574515057074542532641254758517452184546356081572197760738378339774947111823389810689557968671360664616100617598380295093961931988106378960556189454946827168152159996997783283333008596611434951400391026015768280399991798652589110986102729061001834086571240797982009351856942498771137906467394499386034386800101817861871740609814883717861130480415754414957581139312547483212582867065090375350320352722731342770274795824115541147645565632013221559401038878560958458868090609259177515295966443281764068281671406129728058688181805757140764813146590539533494857636527286538315449800560623667929109139553937109342115136638079839948137937623538430625189461724988636480091912205946282546971465613559065136962145658246588073893245527906576952533870951282162428314804480070247836631440672958495538141560527300101919786254953163724182218628310321998495096178500484211993019166830603056996414302633132273855970036356942344301249966674280993886619791808290566485279484062918174680554146583315840262715486085276503957274562625781636093910878818463614112089275133942675175958296108581904617614057505823151742465006857310837841414239480994693384687655818593562897588562732365126074626246154218795568498149471609129162823240030420306416455933209353123238961920367420481375539129329969064038944469392466488177394329926544657775583660426156286385452681181075196103980081419688746889332902980173969936273401251514640566626367164129987854201653486584502578285229878560938207000774503191119155100168953579457665809457777839285439308551278531453581772364884605933628429399782793848669644471665579516710336406884505137033596514010504033184489374785817797615662505083323316754487843392381922538091320491921957452027070624215725606689464563015052860329334973296374018492550934430805567687872035590932658321036473627057379308041579037438270976377491854784076973699534714859795056239747934448472395911709670266527361107880430198195192467538506223595882943762059082428041016844328416994218049715455868487235176355429604192737008631942435352551822979573085039101553189687224658271207449274508277196224442439604020354471769300082702557382434673735718885508291610360391440107813322454051554820641273575834435810156168776591641327112521151494254302420234512093437942082522073488304910428161585731438011470418947831498078431073351177199754180183036903373057303748992679132305792506460590885296308973360272741015414098825421560709982837618433366810039585268369076986408549617593771318987577998411037482771498415925546818786564076397618019047564547618360734421193455571810893121980341486723152606204838945349251745517892071856665025951691513940051094395292469365874401329106513263063813133529674326367876350416424779372591533272149361500524770889627217542150468589011344720907413672864594119889832358682920780873540706390383345728842533246515553156690935732883374791125233048516149894616210560736326990374664832291134315260977533696193327050866275907470291196282507414065517655840450785122151251091584285961429222361290191795241044224051664874755404746934930118020080384400468692935689329913987437248513822593699799957839937802641142781380504184392199864924104692741895254440374866729674652652220323206677486606782472983224358691077806068194851147439066189641019034681849596779701225702892619759138679129741553868724712390372386617364308549154508153997104446556090870651078408591432418369102688177802455620689905514636205217915275408800820428526609265401341500337300097678943425943303062027145367928125116405474170566920143344285791697969610397748784047140244781653679842185520210646273252411049492439469249086459327455857895416640858304787058025251053937925221890488914437723457811090377354328313894785908942801274799825518162964941055337959357255979096222122920125267445008402051388103061358592846170004872447519657862000962216670021778914013793980135175316274833032803062263415313653833066540549845135634226291030288487845984859387839510468081641715773293030416821159713235013086128513308521673552336087269482846194301060158297162904362162259592354555021843406141863082309890273939942211127279604239055724757783621876056101350961391520603269577424624238132516026650278911744328787202382286467532179362150287524071393351393390417992413011977769417028375105645762637417582696848353540735134029860639652599822867253230910554705605536861587558792613668354082977124780521158497422329886673475439839433073897816853411661446528511385099409987632823358704553936553496694189335085408771208164246217241500024915874131213353932360996886669662626114644734882399095933277694899165129539836169191621674148357011172186453847446858271129630219710994300408870915683900402445287031977022482221570540207646226321553938144916245058597040659637368503766692698213098997757575391654742072951817209113766287530181425126119689745718980846432353967865871777758705901693738141570755462365023989425080039950252561120039788841574152051462191245834689731859504395376570814971329321429314221813896293017788339074871620182281805009356821989305911300020908731515205895633853938419011602406241010801508296869122309136782421307943414318993784406623801271014017666352653664313586408217578795477253968726175896910942361833599657959107631024898206587964310197267500667365900179704121817561242056342024438633254184971520275667623916647531629996919863960935662996312609414436973040515974756436092688373082657650627650761655186617101878258277140739112228783680766901851085197369845576692298101585127485253112104220201494158682163549062463745757615857775613343793533797110188189308147219676073198309267234536004639074192540765691557689037986360212860209976325325210012990639815426740773913426125389127300665562781810795746085709773765533054759609240702184759773663859053615745667002882757645515945242948991528896214985196757902565739212362394524106198497373140144483122147770189555996766286289101902804424393219033963373541144967604819636757392590303063525200449849423728219449355331301377550991135788841100549368745910821123688848107839393030125860098533208188394590004049065028143975603741428681002903060238777542051794435348539194706813396160984373945574750963652322861828254578200367425493388419560735892199898337961231917765278132355484818711847362974369934170411277877511153168389195122063471929844683261589887564115010231625106803869454253545358780430633376039982517925389074557961085676569242165149878804503352671299428424853295682541502977286202563501579447621430030038019925576723558556100844414148667655657891536580245646322505783365467686533170686935688155233934139045910848016102386087394784003704813945775603123176414396886740558084852929067054280106585115442705387642252398135916646854925071053976324373324261000426868167275759948937295301988908271026654070835551954004221889010056666562385358040692331002389360557832514635670084002063418329067253741730856120047919941614618206253646424606772339968308705366697983948875963866345780908707158217575537914000868978163450779921750872809504402077048439615033248676131685713008025200065453431262817730702366478070700753653097556105700171826210665180170198639428388442112061556217768479635311404144330958303468804241404593346277602512321427445766655667226109283362024242189591638042054926623690538903089877645112598365098934627314064193422740584065422678929219408295560305545122169387179123307501614292405643056900156206013506720369031938980248953331826873395615440838371544685829699092227266899665785311021150330935117179374968339068372957641181438396517803658486228379584407830350199615617190980165987825439696455405145995155461428544621052913254338178193151920571392619714469191516883266021428228729170894812746933541623353770423321113637632956947441718103313935192140792268060951234397892381351778014634159196230361558135348834726157410204021378853786736413531678924141940823545159661860831509470934447217243215037469692318705368771591174970203463857449058978914231836557027490846974099549389520201721410722259539826324793849585013024707987618105384578411283369340922690587662952156536323074471463239158582781195396385022447515454804436617921646491063980612304286631280130630399102643525611676973203385818098421429458388497134043190740877559620654807335078581159250136030532787835719320573260186420144614032890513629495063945583443242187887864339664026478212009581643861281993757450145835387969118277250452255620241681691769652854818850477539196637904196094704082732019249977666084214031028081615519654717126067689403412889128183420795128212894332711756541167418232524497202518450472186135710902539002356676218159717989762625725084602641332300252528754508441643874748774729593367639767101991138062383557938213387975198535422670839402917016872917506750659256437132625244197469628175596815609266883234812638323611469208205037682988183732205714127372703478018807100789631714564054314072624933346943701350843493828814986019322099447507152608752259525786227691659697214264738157818499978299422641834460835136824439923182176654268505477887840169088652007234141602734373819637637400332724007958630520800162756119650190162105643211674433234932157226311080163089557063526334864340192531421965693834554438222760410620949941640170164466768859811878130630918862737182435050888934577584070929848496762757820164362609311252697965018894894812666016263298803378169168465085890588521767704172937464859947210097268839531418710936447740583298960103869268293984108379936045839907751591415121462819710661899490544514391385384779321495072681887493293616116498179294643112687861969426942106588270982598223478434578047149173783875288546801032586612452863197580757090197094139373074254980527181478451026957019482336836209940138379084333341402308882678889805938747927381618957762289599818631165664228274475894727775911001286291299459424393189078704314991477349892056293509826871953970734599013259778063166346351392320124324575379773433107700520634193272564719175923166697462798065217043689631205146891411130758108303376616523889780775409806195101761698500538141735464555466072849928205564994100078251478264328394814200640108871953998120425436202988207277736767804300388880799315234218805914933512407393976791417976723984916070644386290045141642628559949155587346682489292736471963601606025300224478046197426909883477050749934140612021437434107218323797338685370362923099154497429706555254346905820754335570030229969619938001283224727066586542258622408994899540923703433841494021498650306113397466607715500670529468292575067710344658287288908060379040711771637046739513360718811440493189131378699094701865846218005768647488378628449282368857612058265256052905323448089669572380001226937008139574610848376163079326837193756016043442412662523007025782902954995773183840522815576894578737820384647725140943308656832395558961046363543639802326923158160287534465915515615640438310170482580104679993961683967289177782304560149057216296356905051369111186405890879200904163124104277317020273743571840757657889980343065593204047408924526372108775457070891543362307213627966461580261577649655914677661407489590034125662199900511070374276435322046683588268222788196245589139820914133676197370691902424095132026900933724734568707265682496043785182243374908359473397695756684616879050803209698147569537589493674623179094864536435536137429192914523803973400142913941970809663674035037011495555509063409417545847953157608623832272481359910253385622451626127317327336867452248684810332137344432163597650757123111822330247950166924258286995156775027386564158370618086782343713041163959115728683167286565763263720254252625687253786798621035786006861952537654227714551984098071249867023432982568430755327106410380286999914342240146828050418888971484954705361262746991898247756593108745384893820937284096628536604585915483018834643221667172910793577414683257036239631978334570126428749613855019618645486700153044260906648367016662295090825731606769934170283281997385815285892882710680659701304864480474911793337723711998222627442994943160364038847081260453626270880592652882508471147291469672046115729345897905068509242735415139798860288181764562538519552295143170510011438207224149549154782237199424553772137886582373777792490752436306976260813393158271578498224367217592485410260501141799394187706395877583637882491968151868883748716545486631025625944761894595051802915655531943429343285474495509334413484685348786493190485335647149113088198778036511230927712782516546693018167491308572416722228636721276677467642314476843735801804391792182518832908965498270396097104355029238999155254247912890267614126824586176466194028651324811588207394896249831913160211975152299229200142968389930916164662507981870482376523555499292974904397555325041607701027018765360525291299963921987656488939314911442164845894329912922330704340251693340627502703491150547922851691095420049885796196605528521211309795839970119403462995741376474563686323926791320164924483679414052688018805387958275441377179051236111697302534277460555194755617369097678533238036962034826348727208109870426854989252059019008546422184596294537155723241465433240494873072932900993348973096860568909927262305185381948416257101720444282896463273126920365193484656066459336279077371625099187082841678607232073741387262779881207153972549450438535535444179840823439965901691419001345106714941439381899370663683725962538022585362887295637990501128373677087701362588767554208490334151437991704163329930657862765839883593471158707452335246540939146165035050719221150441568753241899764752460107608353695956586232841355869180693258150938684725430477577711050285508356381159982375052975654160575158301749199398388998961724445265305384578490941338385379878789957097390028778480818891628662028288405854633806297285773741485842039380950610833405470321429507494015973884870380018019733581314347726154220003572859023830326346795756659486147293280215666207944052054801542989176821204165795331657131797804799955939517428318913953485960214061487078535158249064716967453834792172990088515386065021371057581742274679902981282467118774850501104779883216225226983886857982346020440972160986409238473183628833261353708082189765814902482507085454977162717739412416205447163974522153176167812673162069995599801691349640482458095002061196942183897795601192426777474479528693757322265142125735987623870983165471496242079969432000174183501533057196323078112776341875626225736172664603039032251133250763928116243490285588353692551047268907428535576880030583728531571631997471247688313822015400998398107942208987871591440715887171166316186972740510410981094911228766346048687942282751516665648126605484934756743937189314494598664820341782026214349343089099008754883726864308813006870652280530521656704029956150349057387139626740195035615995441274256891883948189583002711425919431026340016302561927484213293963126940855265997940251782233983686319568660868923234730985957469912043834568339848565963779590061346681109508590904428904310271846561836931274077834525087282555299943238524640776398701324227880456303180733814311401181736381215478337927282613118264733402211464714257111936396372897454288381059634956528598424153237126811240840488544100993754144600558958856470044978482983528947840449073414662735567476560468262209883336989369204973870776632395354304442540774414694421140170444081871284270451133768160967744442340358519344395250803066181866305220789217211511504903183051101673052665029608394849671068185485036497678962203967662443712824878311324113738853700841695760321718281281968746305554803553300881080238428508005650699323317982074986653346487130543599854408399801954605799692155587074557273699228632135066158513341925295923092772011953586249879765597212190126933463195193621130853127247501235749593272371239339708446447166424048014276653386867139386253605325249761998861206243028749121666740885905709879042852086396939559745901523280603736835632292926690109102693958155966059388671783751505485158989453957455961988509311522539027825744182715997781829914547111494780350694461540732295057377632923315015947314680575940850090466208310509931646879815706167172743846037211485692927271285904617034878436275021984644402826345991881255867319310409359934888975634161629536662230434302203830743851697619736052209400483868739896730748784353745871789213681153912144562761559788439080481151375123112017615002868089703706700775546661650342470215574976970849118424986918318524781119900198125873968662388060121560095980931648144665101304372455318084424260850245625692113846838049608210187517721865865679116320399174589105511374114097970679729545877071248433197051863559737617580812915578856290196671766873066757988389778960366547056650098292095795105068828735801066759229292811033530160522873643180415956364272765008849099549904503090597002295886003360894348568090599729419191152523467001269886828427783081826605983277844930368019847200516729290755061613204566736635067180511334748453197098870193477210096736736389042560912587488705283116163700000312174916021390386320571611646373576331745994591386867369121618446145955126549054436754458478635026247101717459016499715784253025033012654561886553320688920734389689885951865668900071094649024533605611548742904547877722085896609699428868795315258519679037299595475191922044110509714085364717766330702865775817130488962277845269025111889652709785156521646511201043868631947468811517442562348677011734709385094987203282674056871955447149118852510246508531106004705586883083661765276992826920965538922454197260209567923266828984270620142845957686598251680960544083325652476724715993925217001511091893672630171608182674770011079323429865436740514563276362113264090464741932114638843435655460438899261849247396115619422819504319642955862998496355240110751394171455700763312397225736395362529208271582352311908409044131611319008311915500144807693049684251645334467637188028482748768578585486123792817674945378268635083017710557928673977215208609642911306775491816527603809777994934630452244014144447139593348212414884704822780085283585399517882746013166562519488171919496135889794685736126834469253874468422329009025015685082682399420768633988894558357321871226437427885847061759736431791121537104592147761820976409240791361592818287355277854550599842790435507581060868120580462227889463730421706861195283544534105887611100010582288001082598022997586826090644195589114971405725716568473330575103400997098491047616390685738176883783217295405571985784727095306789969341487854861701206178129397319248564859710219266158596094014173060700024292462800003086645238356060159516811849272148574148552182044837796294904480815828079764383487530771214621686361684289632931233295654856622601151336699419089836470571526157580811259380454670781077004135565467248841939460680079273420615166418669808657311211027309782581464549991671837158134540147604007174042089878125249599377376965838008235364820230953213759913697209623880003214462211563237176299448232161336498978879392579808151578178281073063670577774840776085028749146729092139111954091340737153059311280347767535003451928749727405788410904972506879494044317831150476528606941199663320416601354352954744091399172885619265079281567292990772162432984535504943255409585823909908942809661358885281808408613374130928503020615182793105312530872981883100657970089938470408736502112569201869453554002508063590644371784123815417825213329229186566133864221546338638554903397798592038009883765035209396296823839839219633762498386626493498401947318298180129783084360287303962126404123883895353498719551408508491426783165041623763144995802024205701419721157752645928239802731215391633143494476740448615239845766316304588323818279868039351028237049343642956563162248960351045898381063198598703222301519469727165032245589330633610381695577444616373309400027567312455832939879806065447887690164694518453223865695700445965020142495403240502769735545187993925040232858768052426201090123986177274751151928726470864497900843878840776034081429302595478851202593551631854890753884351069148973761050776661387284927611336093927252932083590394593478186363966094191692060009215502053253096984391176018106976041882639773794446731882752028230290221298861499529936498506218502247565722142075087841843398421511206066973632729076314860278198462139129029211173777236397953281255824486457776506755367651957805614552680651565865471555738772048241307343399461219303154792670412960351255027222485685240178748281756880649600197051762192120941929908716074194222107533005558600961750454522924600825745602215774326148429619712954526008328348822534074797942536827940998192404480680053075054156898098816094093911855373221152510241174762066564937541017036054218148650648025119528919022620417872216940157584195283142729058025817081382167445827517882279353798902390938665084983005282215971180040319870343410420455823130698193813294988851585517230411211465370556619910257173999348545392644448460258979937263063899970528956858196177367293055070661009039266275830028242785965916266068855353528114732304200242767813669288921134851430651258719229834502039018030371056032738806647842511532505819776230464031179631849678817212789144974425689050151641846078213416488656868641908397352330238390577634161356070438579829577886330824570750162409337894249259503838450788557125939896756592708888428927411615719395128830437227791596731125200069937083968986791812517608739914745750678060549567357541469940591594380369765636994502570926010665591046614388221481763329055434973825401580228679861392988217049500169621442395040288770844276768723203080669784489522576158553908246798288092264711432570215299323209858940576619515761133552589347150862440186196048916947626545056954657263142617213844791211328519525423297248859961144007785852652416641537458229551531568305082820736936734476819132524502949549184616486768451146990686137255908765565284426167324012377685507936703866786900188785213028623520866313745971289837814531488681516752577864276762082581770842949701861244709915418448218110521111869093181068897648604422924537887660826647120741830061814277135912439832176660495898808658172486336961150635436012012556588939353559392825957184960586981826571687522604438832115398722234947339107433663828133976655108200377490839930841680431114720611091374427876412719848843040788624204873542312781533510661350805163782169506930630067693153641128846784988293563885276165373315757754586451024137165708579111122489462751426928935268954499779235806393885112123700033160320132961983997444012919125543348763692322308714115489287591202007486480408075751644461484563776342029607168072966146764361854684115474526913320423460877974889877953160768747095552921118238713355729794054080933640169417785709010584856391385460373774199106972881458801698469852813335997232010658912019923103640034234137933117374225440944352894449751348232084378138454381924376534223650547118407613916019260345085763913530455363428767851208480030046406355405626299005180638742643166639189555880040301554518624869566602263257676709833255114518794716894141526117787389945629279292652220122058796570380936696400363186650355616616587848408026739060406455043726472891742754724195308895764604734796868948438171016052888976541403765830903777506953297165247307670416434899266067059205120873856935656634445745228247450275037027248262542112014322638200853176537642310782638887034083772965745638098426384490252123679079845364624608217941277532803785995485264098089830017954570768356848751060944998922273587217516597983706682967045953418241152053960015967802910420860178724506102695281931995823532647064581012533550153896812309549869857602490334365925447705529310086404275843459570128462536693601732192896551278288162413005019174514383008097779954199976913750940128828052068742718591470754157801309630955221229532333451855416510087561886850441852779814923889512810272348881159553703079818485777051298183152405689852488314969207112054215757933881777255394857609985351054740672430855993388755056960719154908655076598251567097884761102247583672810255356553479587507983030908563747145850025845303945794023697740951122921578824577160268327271808613952974284599591634421836251431497385106540932840747566505289742621309894904803076370783300757263968420522484567821813519799395008529777421064727706464554597945488389171595732429405883714733368091716546987940698885660485469890554702605198312426421776697562876138772385848757423056549851398251851552939641847279081103939925262321082385665318204644577380239486093126274139507038876349540676699257915866547371656894741664044794416379561292322513268852925002752156855012713908219724954704793260336245460293977855970792635452006873075404146018134307350047064000633777912721907796528579846007107859545546312810547486816281658766848410458147989829984333591609772816939388738536836934527225065386037110003582456084736885765940930353442559492801872275461319371606814794363657945796793800064867030239096793240543550011120285845748775135536248254530673116898774717445057484956613401016824415261548598464265015057344098748631826263440151581825949946945067184924875081701144428132212586789048177338421479322285444521204501717170265699271132879663609234015547471041986579591326346386977745981123061583060404635667603331397042268530811367449930817817798899732444555509600594609364184973606537741445031651920226980726213045430838466918663336380202493154503185689876230077393705149070494447244803463436610141386224003652247268946684320923797409050484733952448709273799324451482341825444293710116805251786067961512779316228775132097120295626821602398953674239760254651690018559749480761164598004088302759832325883271623841424541754020391502902120496654136094151056816603908721779282401972044373304063207900967570546647977851966121743084473650217223014553194671331779830829361711308464193458512657425300231049415627259896359590866438088716800470541371687234588616012131674416631439228482676577218204153351499633758981018540856948149619851005426411834199598507338793887584317066629924214158485419287415015164372634401917166563094710021517627508352583532091427643201524533948985659253237488804761893162294383846951897468083351915196710636886508595158321413449883756680937061480525268354945122768550845197395841292476271761892299900675848277206249816771602969447562434513871849141447491552989817219641822755301830670669486474902719653794561872026552112904482689492280754929490672134380759274340039130582806689945636838075268851674795141421326526504550439401419185772523091298848521319993610276738306751017479260952234719747908831088230800982965947689814045530608030776601612286540526156706408504558081509692565514241478687243145665526762605293384572437747946204978108559326966506792609456239339719763293044563535014857003706780150453126045672652775523867338337468662310829734905695322239319638025998411508839639674265758881279293693588317266755162744885155925700959664921340043221469287802053276224361547879575336847723567806194527850695620082862586786790490299654869076284398955709105616778411764943318826488701564988443025234842962173040860858184996984759219006261751149478532107480568100040188467135638372239960325980506715934549153875763806374537901633229752376964508369350572787021131897978899251691828582516499747164803143012271520843283417556909538053040098732496344330711232332089012601912749235744737565305872415460593363334965219124780501500258642205773111428507047428631535548752591327572164667314136888023050795079511783275146352920849798023461241647166941281921078956206828225050997952062078374965338572408158103120105383799954203062602810466078212880079877792967034232162145408523321287885121514327087551035359802251075349026314590069523075152816614390453316261310898422489130296352038931726475878418016401671605976303511834117496875666182213993025503574730093580957981331046794972427791631237317572039735619917853195667365123813543038903853660937679188676363252003788458818658379346984531766063198668300090854226925793854371922541746208372353231408251265559798773284219287371117306554602019750225055386737350281538091471069568950809642204954964295735825327831207765110108934865786932096423365478068061019615375568326598931112620264670304726765332956459731491037276436149780620576808744713017394698408264048894396723681566772289952638423268941801365538131997150079208137066676297456245983393801353533952362441065050630078274277434103987539074771512586972964307667089988976859830150347236385025328476886151296581109380122617599252018644062487951006590258645596998085173307457116444293561467855845086530144722324763921874423940741984435610492067223146046844028722384185877337779840407679459663224528327008924101667335132804201066232547378419337564818454867208569186269936846585482266357339793805544154095157753993124120280300171767600368564662280539174843133424527566427798504580389735847117528412938491740136518863066722998159452706587634739076444597757628744245143882473993068393695466276766634139367499123298297605321827162566416232954667562094386965551724547123729308949276537620379793884983566969837558113101747237154003412886245017246643139107995978174145646019369075255835898324164775598962294956123112734435205938155771010062137093778304233274523871501781553482374717012571531893522180360172568558338451131251404703013583574656578850669015221390802163458045687052885898499490032670710535557589262781481291618309276954163196875124829570063766883207055725803327572574643666035311323085979033562211584121550950867882682085655295687420209445717337475548519761074834250866814253968080547981803088318717356679275590509453764648500895410177719838192685513205640365397064258025505109515667989092446421316509597806806023471488665601186527174266374925692431999904689337631816607787145199201248608461360362257984183421779565230560443445669130246408076084943276282571875253540779019130441342363076455952856486232081451136410528018096794484946046561658240489222150893336191440086321420231561291219734167689907549174770858855289324921345187806064321598462783191152365016285756576515242067356481857190584669813623244289856249272025782199287278157861377282541538364090360870435834042550551830698011467041327464837855209435758136125791168583407128676907866963025870301771754850639978820174980430134370373719912483700468711788294141498810181805014743027876840297280771544510623736343824420043528293720977340202161644944736091091934450018008719452179634440213545903987238004602208548191240591266063955471336402754034383122396799119571859940508988719100396570590416331451394610056898977939833655695447455238339746897757078393913884931064308082036306144296770224012832181188262149518288176701821805878475499815179367891698712600656248413310199318314916318459150286864913373659395618953621950815672403443545871224635243106735203747535931742035099575031595213045770112698206452783930193089588438257111101169243138564254557698570670973756555602379284498374210666811727445449184724358915383927702206588796802620854805122644284218115246922475291609132351490895759706821841818947132743138773779936936065603176110163593011775645847431782036350404529426078811129782761896077125500573740475832367327521819332567781838303755673133685567486923348665532107119819433607804615587167383044826290477932809548240490188086286758027461660488436151729203784449364762924573758868336068621939462590247271273827872569238429450389349758779090690667930982200961881635467501366209638176628626105272406069067619078672929021403590038967740281338197859819593551830494052904755166014035261053033732795518243356832880535665046812059876839657976004750118008742978730562058800047887219829341717073745707788302831949631905864520593869370008430050911550650035300868696912797433626406703737985892047461397406268263006215846700897033265448242747446176642490599401131700229378663609237099918883450940207318025871540416636858586123821872230273882462916546328523039645388386610396124247680802955845317140418132979387914483691290512593824882879366373621084293885982123027096827579062026651838736870239797836390893574493046268152987382564868250283203211156942158550760985996417705254772953562640899317926790041126595631455412552080131444101313748451424152043688914264266963685352238361231302013334305934178974432917573402183416201497058326302109213546273290241711289099916147748071602703629003155021320476176823691910758727741835787667988678440262614159207544797141849587853756796864402914058058793178518230008381242868020573895298300213773566920904513154279920793925649897970761282324868203955077839715398683828791032139592107082344524106551183582025408613895735891786473628167367979513222576365661457693292867594936252491782419158769223201207058494194329189354945249730993550162874285453412267034297726917657162228322975192559393488720163740589171066479984220732807120155191679697380102204729506085880644802555643076783157727134355978731470051971047296159599251581150688089862757637460507855729611259461306617700685569345027882602097478177471769645150582867470009031709977704686850988419331888221803466035272266173102027436175885330343556600354347339107751427849398550682576065432903589904156027513904920044567323156583356186087710937631765861779257512264645279664579120997727389786749056178800920753102055804012049875787692491617396541628514739727673162414237302573856470061647396196847375655961062735262373149491150661840867249295561176286040045624904338472202127288611627067758950859569717691481439182784105131673809500669299975710917917291456924876944317809451340992718618854634215101358746224630859552791393688645761059987963109283193110679703492372482522746278138496178844981021975424844141528502061019617124216821525639950302051988366767933307007456779859706723830801763106050699197989112307413126395766451212588099115817472344221211608491623524446836246641393855654397817139376261182814758403026117523209228770707652525212565934167314468688404835346219474240216365535783199723912076473421121554627828741201765683351278365074053315271133531556006398845773674298073832637553386409729441173838262154351929577126068017442148646267185881275744412846720585118477589718302770803325941562778028637382863156103487778893036761890221474905884274693650717849772296851675455068456077020285689250394732612785049182484660672252085126586519512403774829260259015814475473682405346165547847242820593727253140189605441961822871123224642184342950883221805751285031576481126740305509832412753739583948895948238757305443750083673008345407882916459565458810988558982306705950403187325789274361915786075211045099477624641310472413560444263508678261752266279970356761296326900147076411172469978568242596341578151326936375282935684419090947786038368685672533444116956368392621697513139766862135296747843295039898531923203571466375422171421061781187233171485852556553328173767866228711598925152818278852113325934856743620324636495791867444425828402128474213211393002134942697662368004667686516830518739375766206737857437109423285782119249965318057092873764686565453210523930278139881448981573700472067449100316681284753053749946163507718830814028424075174472377371546322669689764772233670297898842773562409288245933069485285541483698510175557152922106851937676463432664468816274847793983688498999793006036931820521614588937171844763740165109325887221167199072982948443730897620252381287034125750350349716818113200501700406363719316190629192126338997543040877445238653874022298773203211382948310894080986262606296472089417837168187970465103174847418842806177384069153459239664945893292886246788949159557328217856981240230172640321420529057377799168284229744388118605706400871005616681484048338126625473800376497634277411359562046269756143628067408318808254540794337338303702217540546018704184905429111543508242298437869474982795135257030160251651152045323004439514722397828210740080736427784200524802627892499281111324183628250926092341418615202513587675576807456337780562029909667902411231020804114411833187191307837184897483135905274698831054525995712595546588823527301866299977378035874952656633060857230836800991008670064593264700990627271787572105842283073975856538496349528843574730730931208667188917901577847159121253751685650113719946424913582565875595874302281089371003148584938011666653379354223744757872190546108865600223158375968020384781266732794451031923226877567503239818260043286019628506839037015406675798218562445086821717114667656366541821318364715151789066540355612495867057211525019052801501057675335041682670077611177717522670167860374787719344544637571014833686305325628487539665157284901969558910714181901658405675836588138803269662392702209543264001788749796123548626888533289528779046316173591145050850671053907818442384537340900877027765184722216056450279054144985732785377738040070749174872337213351255510704762593032111638262496258866801162700319273177070980952302448499638319635427089035941539466564105041077632555878427485219072351480140658245404996265187550518493420477811197654962988336847065923257444190190243971398220408120894670889896806591303773609860953114010249042182038320063634633945641305119315301473349273252210468724561315175763892786821522116008623164812538487652813323748566476182404068886966498877039591878139887893894263011808830940284080528280546359795270662451915303382450258807333430890256291360975843642135296727136112206756139432279737233516758632645520597167270807009762573334888896769641863898546906585606163051853622493466326461582071765069624085175921996895837839790552498607851987366354118766734183861122945488335494356971484381943850289606759445973352949487143170374559341574957163007803420702105614827080707919267328592973267170343379207496178314084067350606354787268971460370078626270225714814481297663844536865824988912359971189621299992181918565594128663232931729538897844427618870815301955966438466418905040014374662589995432361560310723339507222945517228819644981630690073200210671906264721646426352696768355068782249902876847596361464349693463720285412909565701114741311295579412211592150472127438766755536645720702021732608839269743876909375673640810547252330212680373630940546306140668734989224202984804341616530060350658267459437150858210916436400572290784585666800489188884103809809899860412984038645347264862565240921940943028098897688960352602841447419945687652357495531164327319512346166637065272198261643175135500291224856866906949578240902325777371638384592823018129630302198471704128587494765194557998181993119257788554493519063404266909907249838051411216397283392049834971663140014519477911083518251181723244164535443290380014237945574078879498584724747042757260793244583073940890023122725132423111337094527382595842977127002048287455956604931970484919713653879213756072852136841889516390701351026119022920258677781035829773791277529435939497857684197076319916307124053540856308463100479783435400477995532257361576432546720362403605098314372156281184655556143122027334471253850271291916084505141928181635552412048984040063306770339094882132051797333565612995590594058374805978926792373356379017522550897477192472424190219764032876950783983267796247840327491397344131502809848526365237165296766845558707629195366228259145622081164957790329173633374801910274077497608170356363621689919428279927882760563455053712862207188933602612801013208740649156727973113982228393019748014387076356924389837123590126394326721306152367089583421653336599079366299693717141863467129623378014476010578684668423285778102320222815704775940820632212628990280106783969589436536711153346988062676214103498972914266899359179380175178259033766253614504075797479255970016040078846951423350642981278312179839417434577899855394608282891663918527129789382204902608529777223525010844647517146656076261046018844187258279339368103908183591314511541113104396888751818020499084966886783835630886128966914134252176836299460966097529495121693877270847316936157419281275587741191095420497716326187163704117248689445064217838718921031514297239364698627538987696118846529129395378756919297452702888743885179522640460403681247750301140860900676799179364785247993797830093171795295360220657846857846327041341019636038536682227515862883155153341022728729527622796008194143983960112911672684425362258919097206783928158234376381902794646382253546661648458618935789653542649565948084947526524797718323214885414616127802982826302548088245364360167548222365056591837858562292683830882755688151900262455340791776685331171566171952730060306117968780166022331078004728907000260300224345985500232898133738024284349818180239459868541089413665940152267644005111660357671539948401814398395556513065538390453899410495618108850607900101815479610507644579003802876993768518401770272119433570898179982375810124066260524403874884944432475653481528577958829392658612763018616541125838042534634009121584346397918832417777323188517802004090568479004579551816906009167336711091261669816270669202526438117311168016923508823278233049075279312773669237394685613904128548679013949075975736361809067364527015213671729949663034465891827634911289720035069393165598906104225121105801212138635312315610006446751595376044266451180804006337459300811128326795696644578392368094775760073805242337343168603021125108074843026012198619917684874287546173890556920838581947049635450291743479153097763560142650865833892623656462752683335024286468007044655827767980049003791758745962741328346357237928904917127951778983825651656422650645786339626046936708954669893504600107224015920164714070870025705344865202761551539912331485896285801674604973272885765673721707179648988344721580118379369804912863802181363137022023702853909134208732711545015662625534854886608436899369093814205965882880887593315415121166228937331952820049160438567288698299337981087445678088554633135318528354943340066185595326903922250166861756802242734356268569045184967016334650936783660757308117154729536594309988252216101680178685012572037381032501528295550190620116581104019768638084451640127513947124831868907969533670198321774287395917114895527505045696339504266956270507999878771023502131152932211632564097261282401841036425828543986738320601525588445534215993097267625548892387042052800665918758615705850657261241099296447156651252771566877910889804456129658008697133204297855781504651650182909091908785011070911811708420682243931201175090132801064502624786250806424845115538680006547596578850456846747865015485046541188199469874236676681523541869934362254930372407843443547184320049635626844126764616049237225210024673368926054416980865577293295488640900263232008815753583983133553860342679990109899942764002667230531363269275164742031548315875901417440646148236599315911980901644972295938114499038013126471575273911482036100017391753349640520074481484763848819903478135851280402225976145644963051734495010025873497908104961577701012934676737090595690287763037037376630900065743402855669257109281519475537602902115502816584637500563760244629388061324589289909471573373573158769113938802059732321699651519375599936507416153860919361618806563936119878715649036105804678235137407007095374907116959965552145856938170840664577179281026647773293451775568869511797219580525856604635251844910133443442164361792744071134806086108695114829107283277182921044672117962015703480732066381978704028330971238023652791716616720075579303454680610587150707989050262210691773496798637052984266904893091057589337500604731382720408892291241487117754989080347636572855718222982579545365027196224388665360077726255607900541481108755989517112486607870179559848108830975938010638694120176606677499976410690501560049138256280247453385609136225457688446421057226084200813945454245200491574443891959786580757126829562379307636631852250327203759461138928052423403639600289410119660943663762283936724541601821598404596820196280509872439391515945523283949414625800004344809853330625593448156365985274364148402823977335586438994965468237149139279278526216764235215077674278361592021986470672631398877415675570682949571452867758718160463226898725612764201204657720484582799691196080935857965985611453108712116667050645331819483773533939922500458497709868975851852095217769945171124002569378020223808116483366403814007181743931519999982256390091508298676111852258092828643290784378300439372958925929714076343913611645454779564872505102690416977376914412009311944139904310161170842205258164110889900677197571326876286226427631469310565717893293268132144624329195256746245611934594434346168402088474776831119916274561424146878078379601790585395632869781758452615601335717699550363180004720737278332108299541410282539893656081871620339405487459561644891533719656931502922737417280496185998360862092902986088751589443885832655018231596828437110121684600317432469711711038854472711148277695656019508852432563513419971368762326030858266042263424231212781353573866429011567299946681076095478018329468956637271507623183072794977849428071713127354828822884954220566958088329902356463958336476515016343955355064421916603769682104782582502668620769107624830346601914812572038486181876090801064119831042756928697882735727608746980569811017678197412990439389288833470863866081662262626531396195608247654509521868307607264650398030664823012694803892921445583109328364247298029282558878048437875051742945879978046026137419836736137386425673500941303249152111505812231230173938752039483775546174321873806843436641381431239329420328005624780136093617520349668697470405476190052193885523483310302784434432064509133055385161526167469876568209794511151689796103268065775315925017607256570865310920315900234985599124396776641427057243731908541278042242152323364217703376391957278580601341030407771472540883138094808113183719858071832722125985878694004784504614430959176741360740619094350348548413667647700779585834933195181187787941363512349989810192960489502802308885704500456400639050223092445161681713994775941123257099460446934180010585810886946553083411890292085738260950036459192885834013074507672647484153845727185169628528477472166039035385651485251829688054644532153349614188026085040835760737553890858752326599068954947018737558034128835888218223536501089288378542523256472409052208786609865815146433818915363480917039401544202238391721236847107552959934485657286519621920971405499265974689793059266508636915197390088667605911235888786001627145360138262688787325131411852188041251876631212539788523600472747116590663539110660118374826686334691126123355237550699871783441634983390563109751305192524633281058400469677079298438336121678577648007786358749719905700417182132962494913330104207058726428807056146807218855259476853058758524871468917503737061707849211405862332696099485830024269551245548277844625228530882176160899766158519825013699244978725721261129851164053509597158809406016170836137278524430297358197559991427564390796245594913545748143910807416781177684654485126426238501222062606013660226589354836749120553265541884843181467816456235854335212422473801152675507270972605098993792586518279262105186823110396837474058952806465963824387678619683847422759693731629862611198584417969537380721297710326960027204428046191233930446541607197524856318578643980769459563822174968506855710977323518207121601875189448322312561917123655029958418555716807374025779071354064082302519646908275048416133631532432055054490243223023722570531328260992754707015709979619048362787221322551542255546224281235295773600181667122721131191357963638250654342994827539343336941471938685219440655053908057135275922207561803698464476693940753095789072071109229383518805666528428364439980957298711401898220780934279130500924393610252182973386613722156567588031434773202807259789319663214308006402216552119750288285958865015717018056591276077333156576822732563680162044086278448221542803335650042104271998728269589212275109959561181604046310305040906343690602869102772495932265820355688573399870140824778850500681194280918441542209605863963286220512559909997444039721762052721878915756723274400980602896156082612351064879289248637201084025920281183846000610154850193654772887261299045550408581207643705324849468029278399284649100662554142252638792257247402292766482945586792633095443693033790362811079736452721971117035010004787918684797124686929713064602026592553282496470531854690941081888454479658277870781844170302513435390806746261945506098711067346909122788016246708020928245716648360158588203587087775036986026203622148155685627211006527038598598291856927645242645812286380503226222353230494179032221593945231162413368575843165954752637862025301309363569297181580019175345385805467901257183493983023470518443998334675055216673557728255129687693443531240401256532252358721743706371338290807622898557122869734079199846449601611953060788103037711090858982859926052743111346861429753237600933543103787467749825778938871122166638025750804818017354116021548619525691185948289823549758989522988352151560177997335613004534853871358882976639127942796764582590833325111893807252470377903211212320382318547953245062469231773280084552463931869112666546306229557050745811056432349396958843364123671439908056514766405153342074570030521582130280759489788782348954621566520026879674348158803123837592381029722847559481031034994118329093853349873446542494556639236242784740512160592414982561306168877713295341749419676535100486819989794679422483338432016080642370416353832984211102515287374339418737625410730320526518946589420129426636556080776108254609211617031316782240220637857019411873096001319868899412517738680464103004416976937809974197445048182061221650760614741592607018129268550868082928488290237778155161669194614936531819365924070358831344284738980011581181574290460035851715495096524517379075702481143159125701294175569485451736357874141972518082380879506274310191791245305073284764065701941125056016910445953536567353950090343655595926265059218164261784869518728088309058695374677835715337796622904942338529348762569502198589469392615010719030109314294149019610338194408719439849736220137997713021128317413735831873394527712654105561629511305790841413556687119697750609538714607505993017940265185984450131249905804851644103865944935750061288550659871246724272419750879709018775428879208797029255570886089764710294522146490245489970743654811375608916542906753899156370962383252677794110391830114220059942270064389656319754697796249082009798301141005271457189485283921701228027306439576945872550641706567949707087124446782602271908737180589707693785160446379662506489468382327579896056755305642511347997431569800743300815595865816778882327831711172745588631045320183292996918920776940484182233600502836120840190736506641465357765139827583231716992564311792775263575121724021258123001009649553758805397008102800982474580717292921787945546781067928311754427551432922878230960257955169658143123531727523413665987423680440179268039414909854362846872843251351021562369953321020754349895352379905903264083443185199264276033931814078839347058025855497033528733055155944677440960542118464082576074579863166500289295824166775117568975710493548422709501403711423369576963457820624550025809691826814039685546339165249295276157965843986356338381750926042003798838052100564227992038424982091390952268637439578743099666979463192561780622276757464762643105636619786716703342100830012795587492288086326417443478512550139262070798574578550275322900348730232965684666069038070563890399026556880200040223385485166456843067305033834013922594475524800752032330280596141157227190254629600726365580644109530136600932654339221314730242590883345394921636862030362907753169740871009157085754663404546791900917236487449360395779401227856168757685770331723362153567507109369704073840951337620742736911233968791846949140345594557375965418606627875317445629436395208896465406359718148014202050376460517964518474585507732088450013189261110496141704866509443171862092488382523864964401182348604049265217073650666351423824547264448290385913346370259291098549225501568826304030399498339537303085260737165260598111607771403690096624937694730005719188599818425606569941701189556616979618282991786590764674241276754087869443444130216285887267557643586264684288071293245528966328329135741715553499150482538463585374658266107847041550640948488319818520477568532075877080221259607615278543475925179704554647081964707537518475588271857188048346379596139520307531822891377236762696846492744040471823928289213699433910458954119794499088853911999165355600493784242007043979581436025856342920434939399824960751482007626911623323142482903839130810532684664077553414988110122808599989335786439284811927930781714407498669112156501000359536638627624328647764658900205159508833205090190579174856518816801323758005043084469782795497445291365144315050424973130694686281046000930337016319116509513767856865967250955117146879941795266197612479100242103968298649130467027615780652879382621819077944794055183758760913048310320851795024126729775171132401041320859876373238858600659701500788252804735817923105190010670430731245524355661843034129904383973018132864607671626886410760574929313941502901742258486632898607661167451854436394453509055620618692947175140179648160565619796522491599578896105719488625748651624511767531396451431094472389859771011973568051228121547172208476012435694880047304248903238092925169726614945324652001503046812665730042920312403137526365753776275533379777782156489529940175556611281061311806137600023628958501484831824634799924378424894408258131033401634693118785604843974249662662869653833216433678636395404797785748668119375423229348086811692428395447415451262740469358538492169053305067668904742849573212544111807946841707281862408582632116851065940651328540095191670309836832605574507300382574365163347376321645769274604906397111576230502407623754797966430343821444703766206438247742480832960339838874670701904884000518354619661328603432570944203335796924558760148084745794495533107394152352771769845534994359754394975276347439489370992114972831226837714046115679949838181682466561188966054412055509751940951127627726464760135121117009322927004239337343608471204194297220292592834731877433637229568470217158094424543068691396266466011445415152808591349097765672322383822377215396492041149859244701646021490264726395338562688749549725668770192093298995964226299697588111076893965416815083483348085389185920077008960286185186101604568891326646202094959205919864456685656945549660029691968465471325909337813721037574984036999644437677416375687001827075732511073725607648626339683440756238685683580175060723337508886532344464239578780042248436437761875977322290609222971789275567107097567147179774686623501374470008034081442065162740662790825516149774004888336850834974879005663319586650741986432898555521369956831585198732506253036994903145141904777029865417985804358913127876227074050469182088591378561950393454605283703232202455700386639772463690726770741642724035023823792623630187414187910020383788326398469621241037083282761209505685219413051650015693951866623333438808623677120563232775262852808012164779627389580353539323381193599274041406800313599451787554534736998779643372735376402711953147928234727482072788075808962288642733381620011639961986195721099361016397254546055261561549033281918928038844945776354982323280567073749070764236907111868605021098081538473918542816247153293416546425634430066947839029907985914082068313667196646428374668871118073884870667216707008235845245852994189057379645614026097640870334821517361429453391487138048966636694729934627241814144604453329644928469944245440647297393022968480285876706678248221538025970003008148507358318057531458106690335434749695731103541800504406831545822596846729058052547508957110455644226279755449720376365502503433253145669920579040618083284881264054027869844591268314488310138549803067330268232536240281664620474530055469601767149378800662738191295239520061987073260739901353796485057590865666511388008377721042780368106630278008678628582639444883952398584223456206700954332353713071706355392226503763543869824535774423714027741881494874037152657425420325482752341883255600359395512803930408037716997463731770360853112301381236877809313848320277175243638669166465430409549240596301572209732785532648816765970748929873742415980064525853762670880881639790236672135938622187940494354286530957173338866304622871582488591206971831956580972427861734142017031367129600908185180504488251944407578870628862575716595824305026614096800492273492091233595167326981013228529382486168357768250869977861506030647649512610963473421711099038541430336678244339425587275181976111790637249259233355547580995752467327743111628707928786876092678760198339301330447696623021299223215383617611372353742911311059397659403942850040480987572547740205453569080879386187706028945883824444166611212728582194998392225823067322267088052190628844475464306903394104318220344009478908990683280748424569993528737768679608716307268558929039278404386112399726709047288274787038598543998690097908267303574432294293920671851902263971741099207744111262063639014975660614782618052822227903713626217349667140509124715091972413056011677155204111221832750829923008457028564877235045456245959937311674639696455980282792795026110314057886469031925218961059064799331085825559043101232418524036279152694106613254285752875593169269151499558852814602503408626935504163042791771639453426737981617082861818804633423789331303118413554382458228047585637822861412859874796808392177612462103239588659860994634682999571370528512805681622435477905220268740962429017235406670880049145774672657193352009391844938586162275931111999023071071133952104551284138081884539593315053668225207982541698257406872195987616738204713093324934190270274543965246039879975385759412532311051213079720267316351813283213211423576214172892185338837180274108784737288140785898504006443848343285626858863601040655844445204335986118595052143706465333333942295298415816929009929174132501237817776272621166079806821060687163982222331472652309493602915856776510427100884473820640665905422415146921922929997270732800230413485028541271525544298348552680147724271949768918457463120450904211276315509910543782145378429821359305983193201994091441391027217986259856952328359307288902455520293781933333508942536017456971197993528200203447506252991683653224630371879460025155501322106339033412484913588346224312939131771942836721309474058274846059255066350758802860826897695042241787029372896612675593913044959968805108027902796228652286548981371957131439163244874625706995899389153429753737283607511378939237802637187992935226118287624762948993900663183232705436196881709642040478643375791532739154556568031332449902757127429896286638587299678639939319835895376984991660691370064727319734547123728651462643481764193090631383814824395377176934821479011912120132311440835974817226093373744126549702445364036980880453062940853996805446785695566130347261806242162881017655341081979962981767949990426196620936433758957639301520522200342453910034768087056968291167744076520611898393533565045259045125334987997559502546896760393405511325099432948553042036338436470323789254639900734342439895136269607421075929126534376423636553831355418575011414070119798853156125934511107517778509131318081154785691106771447570288016000978504869318616320701378894902260803082840016704155718256939672015667751558985153031952349319914120446539983448620370805832544225283930790832800789119074393267282599547662103386515144491431325706074322299841258528636123594739782986270521652173329840603956465009986102552863056987254095991712896647144732657467388173082513036229659230659533772077248174704840231217872481712166502238051139836859931257743517213331140688038856144817248189574879167814021835430511969711438684164175318789214770447612571540718401349769417994873714634412496681500387834475644343954787570734790073010340581735528118747806408699293695073179653318964496748301420676372249316038218440978247975640219227536055744627833973691398805634229873706598498516636877364507692532752164261255085001141465803799529718053995864946242816247400542311071180232824571834747251239370543999855145563244923965219596521217585276815255829579412677498029062959406105299042771526414413275377703296280843682752464334646342752611345794331099394395953182058444815679704366248198927369393052965829723860518315573387884394332205586170212700921820190137845614856252614202778690848357299048178426998524856615537648401903453198214952406703230055009848397320519616582656866848864342201690391233549402972260870085868965013926063088543767335380853544244970263587966094243791363130383527275707165981052162813043955079525251979740981089429611075186414191368151466532217666938000736671104431288885798397620055608835295142080142121172465993226500369887495113887710737638002339219477173547182017312319659016971568808698166155502859193630346713919862000644645234582965840878513388745550778854819634712279205868890037527442235579343928482127332428561988883074475842075241537222282708561358019260644206755756346694149031704256468216829834822601092046755069099205787011897041122264296733570503646981513384971910058205721852185986333341323109086044324260111335671735057506342107473472386833054364155505785724664737134656355452575756083682878924769913152053938972354400099565587000792358073261872368697683193053168055792898247860532539171503598799259928232694803136033995759060095249576954720655781587207863129270549023014112030616329186856675012244188674810466513593676973035674402102984507187066302485438133757558768600817214339380697989026605025683255273936412170898337060377845188290901501331897940562659008363667036717994255977872598277586738203955845883956342176814532636938043058868331052286117655755019296468235067270068964409471967163678646516821277147749240148827809948194925589887266286099716154495632052145905539066748237106972333985062207870433876056829453322187623373173029267984929668622931454892024954558278095098860210676395784847341067444604284702629795238001363801922194973829247725239529974018333655545237733304600251969307224164001024369016305789164488180608924998328399535838381930299223611654277202357563857901265016824739341815989659333205195168790600771429469679427282860621887475622817548436986370225749551490116362982184571310622912499676814322484485230246446710380261671220095760360800743351635575101206020351331942612653985741921357536723923323781568734458748775381665361138120054136249138122406429847118430641817692313908885914125954412421294223742573202147264849531288232558082104622378681374721751428674426134976413407094651365602477873554996147861433939774807752927888134134376588788659143075674920111912766099346547186156065459522321853593673262899528942071386247025664508297282994601126042708065262429325969774428342317981388765172373855629219452217659754945305011058924031603519146787558909820309985596454239382725265651717673106799858996463149157771315986854243651825710764798986724293212941185318738228687013120800378031817508378743999847821458150091297838358596064320269647933162452412002513442591789907489043994221299727472116905340537164618708739228523109468084925622884790100346985121376197028735383630486791464058676042734519189196049984969108936446171105644494224894881404335834379365449075622586175347721817784767261673014196545892774138583708649589800789040858484336451860635787439193980441633208514845507591101163035216765635138655839954667733380402245455178353119160002011074353462552594731160168671018560530905835854630896487291541848434305469893003460787805866836927498666745700213274994894781186265812171331714744442361944708202833379898744146935708491704385458477113661578148099161905017032999818000705962508946748650847250753432269262094907881873987187492916407696016059214361985771058777312224181696147374878490109557796213874024400884846503358899436438572920791389993468074405053643238669608807706001264214965782998373260474686298824450175495646148519366739158494075615111587272295385993016900920545407230112898253810555049172450941088524752859604113098643667598246181728920970171530281417602351268473334470214794717388013528788067081242818501324192490118793664128995315039826832363885835111724816170437627094141696572789186890129725559320063811043162435616937795782436343280925034279316528414032978260872647661287522376242964019953746646242553788398232368413530989050933370390847369647459965352188615143346586455883775465153905801824637610542766249207756546297673920027688092868509279314183088409072331691068859280312305598057653496013019688986696091435261097194372778778693244722299803935329868691228395249047284661720802487218514146977123109223304973489972405415308089491162384085602999128306277092077207312670117563289828338710192316441368529397786597385742815306087182691392427897676901505344809561216715161437102868662442968392875502500675467732414633467989671559811261307996820311275755392574463864333926918216931911126922589342263545354205823737664623740134180119633152516288998943693300077133581380783892189625124338538314461086579905672909131069335177357158780444261738586908795971119088749055032700125103675121896517245491694406007353993666422452890111136084955736325281332629788260862262004784047725352100566006996388269218199476516623169152643793416615118106828997784964909110217995899949371055878527746815434280486992497100927690791729836051044096114722435978470168704375800654851037833852988145953663836786396205325450755707712894394272818250420514177536118133229701800175552534183248770741010026247638040743307975668405237512374346386891896676077896511915264152148597332520576314862954860637196905809682129998841200659822639728626404274737158463348895285843733958531659436877515759110849621658686903950860231849182149492390584077144138467088740085258929693890477053853328639583337719318939633957765301343244493831792431509200707873455983487802203740382341780322372969829627948368548451220966672454874352583345860063331357986398030836112506567428550315248967902074697769105989677893743434112490276610626269146092145101744988844812548295155115499163250709290258061875851187697315447275187983552677763815725223944134228021306994231981584930833993168379620906146166098659681596602592942632721330618612224134371142693931321878892622757977433569177729029585895445952939606524086430525423353051316212982693713778663015450824593274658156034923411606457911966345085114994825987498055525270533864703456519929713447022485186737344313765071863919832461785010264472721822170691462336295685168112073009799424444293370789699420426846273728034853183791443199242019350440803842985464840105264850682812206847475565672896025663665643477990141431734888105372394360780135099847412639955266676632417753528892170200748206169066601739149310512703908144015935079498238383481831281162629650407148990021676392188496351109992634836869260499880132204334909299262412758981141590622538523726453147661466957064238266427982017720536801622644031415388075474870005132685058137603622840181336637038366025782501325985460740668809791314668865123295295905634847765603833673681044866662878074038738102799105708013018960230749890704430820071948876145033513323261762781353922564152973298819630155856609506721327091716511918658648176013267062082877365087688895433545586766696946993940615526758608032873105196350815740846658637626581925194070713101635809201917225465545005550432640781697279584751277675928307261830030276917098946736024847129420220916317018320958569234053294342000055838413711228981289891742741762360693815779208709905869136859569848381269088117562844927347090167908478229177271089863948915834438814376851982915668061357919168629072334716351476864558433275955775275687780090203791674208476903454919369034411781856470156300056050491731124757896668169838693377689894915891201468576346832335898723016328847812878992827085719571146141456535396058315876013028509500110694857763847870930579809479768948632130269890103590112373542961253630217908779775961740689131948767626359322529954341423857843191589308392839146488643918679687989553063569423652141993032424663127931684148607856343461509405479732678245208074160537462269526193361963234599353819229679988161782800775634452152385387083128096664398891715678238803482206100947619324026926473420048962481743426201199547294505256290516621677550862495458363000488155432763382108923454318600828249032370869740151125895197108711777223797062961689604026305052281118369966166557715249769267752956314581661437220095389623984780092085276608220050490250492584518699246807664176298315720234927047516163337365879420039347149156259747886375244135296786047595973321524837695187036216678120176745526310577713771333190152288658770272543566948129746176689425925549516536129332322021245058630428180097773663958205855487439461026062910982514534948914954153782366822136713919652660232114772618264940849149713898863803431807434818341683338813245760236966665852242088048787354846941982702184455942342762283203926957409710928685619878418428697756562386790471166558211149724577066423658592851107581726538798839546690681118013354429555252445149319587100293699002382398367465179280921035679394215597828553490915351215240504953089324726819210988196883860873459580172407277844271028636728535771585372350277574517533955082224094859822156232118406839744091049098405271506431105856624963722251028048930319840353564447127408034518988688037301745485159215476092630262615123720205957119245561903661212845851235570343481834739580578215370704178879339682850925971293056991064123684071300117875815723592040135264204240875861761307697667055045081219832154735947515759550675434885485482781778858028936847208973921994122168775674874607844673312099240763406728158246376611346938128436036521256008945412375175141204005638518793532192260932918528050830481110946450320375955559470095980343376239739800902630812701150942668625191332615896557664513807782869659063907903094124001321581579063838170378720284584265200495763471765715541909519624230868735025391098094906799738121708118786477303534075426998662472999904389203196268601621218081321865067420082090993524808226556170805035617580117512838079490438772387612163414347525104548751355134047703166871819017339290875807751388323262238121837486416922336287375009454461508896897837600688905473538297881798409261270441494952442950988295945625866433164787179413174225666587026093492053175898797866857921646475890835081362500059349969307365814824305717313020477681424981324696580379172231622089135524455858736038379252253053775888065992218416442411973628488058241716229177337342198418326824251361471911657900601903116412384535378421927825362546729979434281607945638481144681792040396912564615378812430430030953642963063471447587605501399480928256813891320472128051919589529156930952515455295019441729118058149390650302474319748571111518970842264810645457845070094209698704043421885629351121041413406972385658915928904920516087766152356617622163852815396575882525598168909579972879492641653965795732271637124052521709566863735680208396125613985207008851599318335374440681355978190873206905496935262032295859530168471441727322018594197225885696225074923525763824150733479826759703923092629030129120104800732256267595752338728751080936496718649850042154736659304235415994512171641042680951023572043694937239243519681742299852970138694779816139851713442785914438519938903546468590542872323953872994896772691419094833562487269593787518954959315589668184411859042092956879623096497626726816065344007189014768983240916203660434102639371529142137256370870628808991414979730023001030766248569209798767941931563453833225214657153398320353401133864852551118653868726947322487391824306071663318358143485189452486343439652915973210693138137883902541305545018310284209068490576951851612145599718240275205318788170667199153888741701157448212035201882631222379865164294279365102829510281514582645152755794614834264750642040496880796388730336126882755337121154154057515811754916382926978563165276279153774394238888493081968735857891681734213623846212432260793198496062345513370442999671317554257323655824489873721456316336872458415331463353075890708302516667364411265458482136998890775960740048187710330186528275196402883246390937986318818520376792780363824698787619026233004245889065367187150804940350235908328540246075877721751586098450137815959587213771178413951030695650952112577979070754289122957914196433327600959476173338139282526077781769906202416195603875043089029196437385516368725144915334195038927907146795943494665715499776907998849487584539174628977864348227399832844899994508342449603502577167873585985522753573620926467038221115237986445246109054291093058809863962298323063131680685318549735022231394086149814554690417517254814111340827923794024321057599038523720871122430314765062906196015429530597325406248683274080242384149807915901473976360724969414507585990925240483224530134602694265448740410260514216159227662434669789904818160256304927558871998231569666804845519232186969919471886386122769634217038965480262578403118004818300759246961010359280339589701949245272281824349033300459658652661734133209701877203914710243437805040049710775965069359888363075719449766378239095315244521341956405759774217543282315620322248563431151023437929387620084951979091543434478261816199470419766026387166867900143769519795863112221098786945060637021022976306315630125507436016976911959686842380350284521087918425297584041344630322240238616125619335244701308862490914581759486992141634378726229496999583043048050756432323591551594022632360590236118907691915142838349136340869437452785382824283169500798847617977042457640264504391178151892963465239231457459988642145684848277547794909265272225579262581433549643433344644673982620359816227677378209220058629206916274664040633892505024501315296134097997817608387473598298044917524296168328024269187994850616785095345957194382275799049095347648928823290929111482381390170141985833050753719750426094205038782617099923879491481303072480754858886352854166512343206902101072584802374352023718028262595974353146439746606736351992868087863988248458611124956967964762171818078328389010952733960120133377951597264863605142317053317002118476250844719589975345476244273784919689397559388084706489934244458481369655276841379609504242009990656940083753790305819318884758160735425871653853678574034993026258764781161896813647852368170840377186587334364776690211236614353133860121891106996174706710760543143397070441036674298927548972122624397950140716769489789405686231475863552767437339383537998967500419886692127944853149686516580504588431545842268972227034956572662314219756123282291611968980759916980846465044708220886815917936762447501583953408670578026197646741102606265503147729937435085746262587743439761865838537737187838615516952273785521889335685958444838763195791633069915760110584567361341818712372490772917202431373770737726237975117360731022053079472632795100603852986439407184559488474542515126222631466577847637137899906205269639670488591722732428625342820854248013894795572085088193594421643528308379650342757637667959824225111745992120480153950967175072170109699452296694926087235802375609851828633355081728347045719421707758760029374176634411280157751500343172691769788570585785031891389182187589890582591099406894526158577065195709005558822694930144641185388347894450353435292809108677025797478326888603153071906459301689962239478415518903244906154893247864305056080498763148676084400202421435279385258593881670046284417664156353800147317678126280705383159071200128798699965919368273523494841557489172954378658249143696289306519012982968719867002660152128648175759880579215908270914163511616809281249775559012946925136300244522911660191240590359069597697234339250780469207938772986157158861016692027492215118510492403855421779035978307562742056291448916041837303503931813282481305117239846216974316019533201929629867014891194357352576352393581701729027345285468226024369740793777550781717037543173180264825697757155846350739062754989725857590908545205487893144107929046885146386992420877179380917016016217616845738962747078207809432954672932522206477383641407211856363930996734141689651833287241262200923859096822096812238139687545825534713398811331070695367564061993577942532777385482168299880498547142203971279306388083763693960593205833105200422433339854808196180915866793889141536649206466589461719762024894673116264292177522262552687430137053494557601263742773880025853313011237223628511691318669242743844062388404378304115611842451722152735701899907327542177604709004943157772143105503463665880186467891134086460718687590555035837265796580499907861587206509437772665465081356095258984635770779647177872768338408425227432331531495641401245184583528176280886114200242777886426112812674153550741346948983739839481709697066301312160642172978545959218113053044360390960943272815668115839597804342802748993654139875403841040203831864367183848830821856642094151681501499595394352741450523487720640289801512286219966810185036514680915020035016756212484377014128941465993616745174763019809012790413327286383123327326758949545695269438960461014796513820427091247306209263492429268427464025317879111554544322013585236544790271913785481785097859090089222469409268177151849939349180174359180067344910514377808307438326255288424189036307689413732623621942746820302355906132607687210045069633292383621667892922062916657057536095430746659895384979332687053643145222001703501383211892027375772606405686429616068107880356370098124648949930113397849935061983519335028691590209407874124350244950303739487693255040706876027197837373185819985663199030950613014357181121410893685945859653571209934242346833122825048536383426560141052130286766920697204403565405024720753398034426261566695922522982888693871163431292936194204507217216598477336751569559383026725125560764423884695070258827101291740162657089652678034226419645907956659439074818234412000524157519389983468942784862555726028474824643377215327530966893913861993901327341498205872219679101614111857161673614986667727365372735064092706743015113489594102858647127974769302730865208549536187777336678348184390403215033277872200933316583711749554029096961130469507425588672186274879221585738022040097825543585012194115680876142421587779956178918907398032706046799595481248129422545126323191110727631492834141605620017609789235786673312264321636620688159216081063474468136220525719104384091583983891947857310254534119148997176200008795752832701166706716793341308775499337769758402773114451385009565825060570452057571299462381602701031245956717334476121150510994064743916196625029732447492778477613536575697270833685603470669462785729391947261842022060560923568596528653548158081399698244556299773142995116082374140041016150171243526234627487771311307222556022918473151860277879349355558891135627817727886117917789004850901640704579924557807779506086850779116982621296393880954966938605017612036402900498850535095309999937071868255842319174236216035558129703313138435722359513223547884556360763695258825435482495090256207783853059328209215782052926931403419072523331084129160982775341055804279477169632317280361530369092859001137825286341964614717465697475626723645904062040718696812756731740477544535666234975364967303949305153204870548246837658531199872380499999136446877636320522750565753779629982257351360954662002633482784975033564808538506810035117584345822187457919259907295038897863284012383824821326988718587256647771097765257682310407119173470500271037352037545887888405673916746600427430633333151167834644391520773888747226172967499848397538954247622270446094387119259491604120549544490304497572199888368694147433319503912285833253314324780087406658601282303785826935516492694476266721803721434106232630920495106883422473218139255397925646322510999371996810579545707041260125480016615037053960676771594239941967761046371764765516280391547019980835247317347758319681035266447958025018431152288225779424346944787487779955896418182117667420961848721330431953247776863062176745038890289427677999550431895599955369425842708225343647095190875754730508606117592944106050939794808224506747205355649343782992035106976414251862237182298189580951810891670390943779940107055829064374904387630768255311930625223627262483352573588385535786156207624521331949372322109288649656560538339576754731457301404070711031682804134714407794566281792814928839212330469993080336771908275751301076889396816374812592667913461561938679672000921000290059372829611955736521420742474866037542408065175473526980950385655091298030116759536277758023480873370816866362403559360410517547416938435696492564699400284607999925609961355039642770796130981338935674827473942150453670996192454472470351890138521027410937630982402993439982246647102742671633696781010303567088079802632103417002244247202944780022126243583616643537959763826960385965872793254309655141310476244579914492762037666064547255234800089520629389911034643972151687815595320921403690733077756094084910669201587671272670934510627144832834170219385135598523515288033032651752593869503271227481222340627274378965590619136572672544676360811936023746943251837754105762617837277794988876930569512362700140465591740743715597527276780407205520177418636891236792592769014370117608153537997776482712404991315080096717007124096086753836447302044962939501743679821116721539054182572966705856659879459004006448866147019625871913785961203442906554822147926314536268549630699482688349306762172003501150591821638919230756136703427700477554450562976648800174615025411442993311613919014968823934491380780644396134015294071569729128788074011113409059812036741987127810383724449862781924552658566205779117547091653076922243298675458690673836687404827564816134008461618027105754741317438035892861763387167225320974036511941845210947560234280802352400528279316221023678097527063261468241554175309439484022830748724273470396091361020200527190398244667658491922073082448974077467791897279618181977020868580251343620097091563789810397855387034882589126216688533960685272203392052269245702056190576336173223841639314074776053989555957725800891716037018645550001374478785760653175538732683983216092795134278804732561702235592161107972647807921033682077281242456588506055926369470032623196106196772389043880846993345283962471288685479174687101164468318478385568698364017822712260715314745861958963531749132332312137082504617199668668180390664363992592226528633106775359889622907273135992212328836834606236539879725276663347100963314746143764110422145798831716332880894269909027676637753707451245879354974283758184500205455228747808153913712916072429131283959543092468668351970022324679057823416525387125746534823507611304469500543970560216067032011052553623650035370506169807175562382252776941119397274257291130716114832919824903124877856391453346004157721869327021947078053456178728543655115719456791788654556649203257206089757011800169329766022937460951666731997909059378507081895866864974307990309667535872588928630705759678321724409406225614205704302271769083248966182645608226521922850311129609409471767461252655538641833889695610830229436230623463813892821855754896792771960092290399724567133064163064721569710178437796564094703886002188427163435424799997355007578067762193909148878662273482979121827853528801575443933735830853014044556856723638601639571945616025420126991466435331191604741744447159459122111485745899479613162246569565179536342038325233888705951776132614164380760736360051847654333996153828134892444885063698882493746485756864446291317116198692230863314631238395856815930489495808477814830134767220687581976145214096830878521531533112407311909587936221216577863069820081699245719644679504025037523026827837092153199766610068292187840865840983042431830996948295559458606167027041806971017084197998400215608689218553198663029899387425213171556792668421986689461419453147571156513606447805940063501973947429677931343410855310517527635075935496471372154463953847532606701669116104908324936041350084479822495068034510761398468184140831159157584553798933039709920896919007991249883121222859631478078538197373846704167640056770681193462998848274108928557612928151726212039324004975251384407104986209421340624035205006700297972500071020965653038747421909636339781427792876757858972837348581682244231941489643705421227411283924118029199853560288025131094619605594963352134037530677983545941909730836965550399667010049912430759830006139447191839030455604109010858864953527160092623073052112991551290812433066995894852852349905625977642781712198712177640605652673064281841928015046269934371999154876724062214805192436483995914317761650282236214646111797179685895709527634147477383379843884385898690211521086816333823354410278285875157651767254573443490860263678004941029350340307068439389729249468146905398116473984825930965579061011485751456981527489787850505397063583287642979925617831837430670750452910703662248370369481949005340476923865067636730983159950129449898113555257109159840933484640583795074843084362807658644957819701608071579044711350124485413656672937858688590951244104476919361074861856217592270012718005119806564246244467766005215216814815164202642437788378367801598934082589244029085810370944920054888412855445293416901190394048414887713328560943968981037262364051727963727910674596959650147117106385480047930676425720000786544364837778306542977834799377057492254860584224646731430500760323419323010065230006543372010024241924902860262945856760266009724167804299282878905708476576811894358178316356391822055943704297395677202865574683226798971266971892236306642870244258518142805929700558500591884616798597146475160185824894738980641193504400800079299703037287009340656616115926053717347154352588395607258411129765015375522987410919901804272745276812249112980766774165330358112524815620718384810043243739843396145813559488177181830965871816885967948748909474504374919211231358995306307746190307818881858886455141173361137848313144620646515294203711509319874186225875202349301766527687781257387450724902192467569487343815488439972368190587130532449191095488075624508765273870745708336187786744231598979904631060101529185669576324238306475494106517878745034853303888434491784032981591510681513835122851590864176580773774933549671870259670311247825353791930220573561442413115004321253120198294647979017000668092707281187803290769541563658879263443742087255195378872518776519865144436735112842395851894839119658924840258641522144742222467299581096761914953104886062860745591045037646878446700485267163613262296592088984575928926068160634896315804684295707076795081705079294403032609673382421608034553555532595737688217114351566330180569792374342283121812781817515154511421098114950227633178093496460758868473379563784257617393621538075101909081623872733104403576999738010217991417391186239661235726714360507325951029446667534325727574514450741528076462019623814996291234491790841894994598011224467030626626787274317541813769558256155721771160012699463316719990178842813652056185908850705110768757084477048197877728250090174289909539430304537087787391934179947453960182539526103720039086178144155105804087532920954338430630091197552956468845627964900984667064944671460542425491231632248150440016771980016678328091132436137777618100061796195405089917976301513650108369461175428241354354703500417680686947633658727074557147089336639761559622055333974548095449881931690874131045225207443983301494318702942911837740318087787074753261091115907037174147539333766798450315656776060485522085292377725791962823457928499576031564886986754217455042038432325119600925845146833215221906872512664409398772479162772505585987926173205673788115420987031185634582068152365559141115080948675792238328250826902441008346432456315211765471048167410880761134583462445375701760536304112888105001161336927951900450386589846019890494776905517370124205014533359833863908953534542765380824245908364666753730403171877872945808503113637429523562912458513581014261908635562848411004524814948681638817567479286493594044268093331475465300194791842094548992176227165343173775168752693099419944965700318034809015492551145586246903869808191557432246831512505168755291338535802380207620340631286891707042379640504103097957250339293509955901752647966766737437371803412499868152860568443034261454505711496552018835141437856005154575918114673480259113499309870604775923488291459949760348112028830938227360627409128023369941006209260758560467052488324162756723201920808031375967033154477352644588847233895546935503301516192041394420576124902285627134224915801396750970546926739962520305041051025789399039610353791477598451501299054191270899277953341369808544312070883854768007739757895181142722753698747517223390389511513042848913608562665442704327510145463033813534409079616142839409138501540895392053233391163196005243426399130886826855752416442247744376355834468764364581943725868266955311682607517565267162270799815154632238503169972156836461767858168618027120779718857536167345465511260971355689391540611971997791380261694427824940534142354304500440229635746652854164752570524500728725663965149171827913946169362854637974843925863135967273976178901077907000029000301745444184344739647336537178737554172296542556614726731979849000033048964981370859187769153897766346716115020206419726072937576378650557649479458695694442894420580479762879043677790454954954071357499507954282423405084245158560008673099469030439473672207990421500282115713445279279637864668716948037467291052939124183191971783316154960467695286017145538465134239397737583168539035255408786168791313543404378693459912752365464962569987955104044501507747856473933269973091533743702030702625855832971526621429247011678666288684183997240516916764914133375593136967189427757364049258271235065635040901940155143239503798403452024797745790968622991610928726518996797221225350439885625535268933678280202434314540023811227944680037981510546837982062401156530960269229712147836311502343449229598787657784235644206000071214100938059474490203178553684391958041595483670678106978074376239946966494218259488513805219557827449780544858520386260954665708449008179497183229269821874272618361294231733512450801097066752282465047149188318791425935852653227240915233561703623048120699945464296196594307005543670250392799884434777798000345819339915156223287385710480536598484613126618012256723584817971137356547937843386055464479211344066800739674862445867411095298058158891508627659685279120954201372413714148389443324016271556304078624177968229427348499954989618555696801904018179266911131225253931006538881964574322045213546790337619463412910417658153297050768384327579789451065624772507415765284757347395179397414389653880498500488879566525364523732800902124168079397934097247275849222281590884053501690321877195738896917528406193649892819982925570252674185753508402212143498717575923817294950244081072644965558734552072207180078719246948281267794943051665560120473500001166487827355242450205899746867354282803336107079633350537648425668125759520676412604459754122272665534773283912188055372166217490146628494961673421039484317897231817776267984216345125548443081669219171353133322616699578310880527393221993745679698958477354438714097677084086705464939708729776468751063948049387498184554824988825972743903471643709117773853476558494913939444396708072220241011116948708490976925006555653522697328479628334291881308150720749740018871321765940045294290392288465102050048221512283117523304525938574786218441061405787583879228572985794925896387022334519393688088791064535089068108073407395826130718933367493242387427545520780963832997491775199650463375613258490910079320658022308845602473418474640008893824142153425506265765650954465203667117323882852611571954613157507087952517911977191401487408740187661434714372360935784997888933926890508712335392599336427907644690437635704915961928223205725702428529471130452760659832327939286131783113756294662837143869636522474856747764724986748163548858447428611763226578261205850922574873221640610598124899979874270967459566873505703669132290994898259667063176490423118322642492300380397276266432794167412783576721699801772591611997259083997431649853695704073354359338373626396388474899483276095481326884700127139720652085304112873216170280529484902530398207408505237972500069414965395680327233698552196301878026753707698670061287344044771995778697490361498322415779615574901977522607032780675372757790425152668105607901798993289099650779610242870395644683884872710047779034427377809081013627535385597808273438405566863603200817879116643760070192803905604207850629716683089750688806126443011152752060147727234143685193804862714850441924859455926358957977878956123006017992165983418961888731386838344272784031218509309304184985276686396332506133347515769633221591596305460194848189751726251283948473324124177364657725937616875231688508602394966539515640953773311655667051645033137815488060276947331473871047359832386052606385713236379422552197623872470493208662046107928311133755476844722751776995057678370835473715226927910354265264811589834503474302420931826262153128099190223473469550159951550129566921562765862756739119578867420764630677110815125362961875267086298060974212617120625220469846485969486966150222394120850239114133361611756712984800891685948120604159276029016683186144322592509268311437401160230758603911092184241966477592315166535699394349067821592764171206671848142069335571150949089056888438597798172110533510580805212486344119049511462533027562984741593594435632335009431716840183408170622779721951397043318179268701652092301894103906666721259478029851276812884010250647343571325239462194025905649325394960005090670792323999616034612813870728864682434974006216974181920733919552482751842880959607671146355345780685230861938905894929340651472249489703139735809439019744214594288824198005577942331915680479231812985215817668887990487238224645101956175307382197584619107155746817532837557071588400395013065163773622313439495361519048864437759946605816250476571139474213526784267933608415505571909728878020066929703266903211752254839974047592767722358755680714205613621760074482756184634905551386470638843596745654113312712085616225221277383049116292971665796010370948286574677103639055641756161048068888353172109116040670011653597087696565001639474076078156187639553654944916846256340697396541508706185824842151666192954705448114491727779538593410975827356227752320669354669774803303620768594388562218364422377055567908806087418049752462926389662130038805953018275499338750920812022662353596160377379544801783958240118564011037063358438095840184554001710377054374656605131476370517614789544719087981580291388928608285716807552718905850686466900426677493919538765230761308328367277965786159708833550019990434830685506535462181450269426101467794582482639050042237487790518636031920944813090293301733480710314084224585498058198040590394806298166536783184055167524484439416995038954409339101611894291156667610840637171497160471525121321547827893560813491896340343803418911584893103379507344024593143589572543517210013034811079993416989271531064720189596515210704032762126198555693770167099675810757025409490673823733720650133712026390058266518725432227300359890473638489612534722939877158911410716352564262361860931575292030548166533100041703964197051329172310346241331312255769022298396548277226508169930832954242598284119020743161953444107313326259832372970966978764329839431416890597513387132073053132468868931655619884617041029161158369587083311020765864711830509186730586516265931672562241434445384240571749144903121880505165601149954666822629598623054718678718978007569298787707411992130615351900537177314119455261472998618783378558477685669279711744402464662063060386614064257414260978104282652447068358202937613382334786442793368918488732491981333728337166265664124492744607396198653210183605741093656468366222086670269577050691189671087953129664910657784135642088248697924219024642449021086544441021575180020567095062594711465806883622904146465354271383462914507650488650786044852787510629055564010259466611430370898437623746560440466301522152727481103427736164817498134468503487398311421670379338400519455692566477405973780254710626136117319274014672223489774244070313818272275073132527608616614944850923375638505065162997085620403659867963112752124053189078288970167134406462432085767413179150438395398719031191246759489484111932840188348307466094060749188693616275281442997824848722528409821259504640244940518532344805854693160810414002837693841772456422255129849876837331135846703997176094039144367997159416801122725374081214872573501454590135947682715980095752957561548070335925435109449506273175556623234069311378303124765657645983137143921403948803611453939210463744310912797298054916168833784831462089138527640760325103074271387335217001181815921227341920201039596579245780835761462819895159836615082738091416824183134125497885665862438486884974122931032117686834245556674589335094254992118945512373235504472982129078132664869347409300989540332198433380966922240381232645492596871359104132919693441046056151475048518852679009243172164622986434763516768966959842138823439090153861936126808133791734433703687494333369448576729850184103024524323940834072541162376755361920224248075936967180151693927299109298935912656161866887272741961971792019207718068287239857002958474042112623415936656198694991595545167886404248629684865209230501840482750805832857554861298033146666045535277356527151515626251214367503489941860907614811444828919786952795447373478874514479389051373687888155351394798757459176010000427720814486968153173110263640835144936217350712289312819052454368292323569716145966652105512189627274463489905906535005935691545238401280563804771601247824631724420711636345931639105833537591708647189842645745133360881393650240878669748328341891303986684862343208714245890999909070702864427431898491946950675915256451920789790770141706062718557084796176539272282457104661597489065037068629445035629508013068900139477981840557837846683007031848066166304558680127985064803118425668497824367235375782218366258576781996241486515860346644122336796929483998643449011056882757388180184335545373613867327287764907020957813131963694260477069755840895043723822766864873030793305609781602598382951625719348493139819863951226376137010495636218076035267431523210876816273832537241904973199917456941250271295208535405290558608818713398759081182753507341767519970765206228084419010006627053995424516299328124747433315929390869323478593955247953716969417081986410133998392948952145547910434033821155060776672971984841476827162028381303480002757408792983834232697049048215464343795652897372919949060399724008311932024277190411885556972611918608402196400188364380673174081520862808915848785778299435081122407322329342747319920944629136026259742689915451580970345254484225357417214743320309972815291522488733310767278623523841313952151731576594944266380540208051764471744746087239363625239688216948363865409626925150581994428296337116391907229889841345092633259767304625864804703098916754283531371576335003652892358044325198359534663217150186729875939341674839722310025179643084595134495011923149960692225899958025460713147720665710324896156801310515284415126543188452845543891749836779078925919848410006460170582572087403306109078826127827565107601684656254017839772541940435265083942854787005500555777708165445652144030221616504214245739624574128857489610963400855212200610801153946543623901340136169804666480305801501604346832627706961564488145324526740841146736911205447455328538712723579079066871555257835576580937092906799013612287930834439649974949647816016926134470278133447555315209287084182584756711767584149461702448005059523875094290995932433788707108520324975981130797094105178642404746255578801797547442288232458210729641981257145085677505582475170462264732698095729001130740576936815393270924470708503618656904879667741306807517125234783188840458977357539712913277631464593351199038718136672674922059265994977010737765415790667061467660677176223721030969654875195210209272302066079502843065204916295174933838308807181609184377900163422637259273192231587627714555899684753971778545658844592047602904379785470513045340330109077243343472642364961909362932032000139646986124134610324143887715376820204346862634546964755950560027566937106005500127163101290979050015489353792634470674164563146847338851632546800549135787105032079177255363911019687124733790610410918620828815510176927773375140987052151269414341374352528544849805635387051415692442781380254828874427732848334984944707490794001021071320841628092625026454234583813406585479889844309316647789434799786479627773032743189916273233315715311106334468950199302728973280036169946818367223532024819423004198032036106259760989928920129249486138406499962878099579526228555641272255046690963721752267085947085721174914820313659880745969951254938942895108587167205009960896801059110296352509961614120327613677750838900489712777338548974593328115093271266002899893028689924357837396368395542968532504883606776523561780226778552722330608042298187782235944945887808563072443039482174873323454460682883333547777295877063628108375514923012500320169284461590019025268675720944832503724680488581593618568610675064412542157439569213620402640926993005441543574241308403969727503704268128888848374510522139753672565519255936112427714294336218457818735497594792228109676161121711679515961983807517415129842557259358847827166068538715158386586367737862276034801442219235152984388798391735127037744046171585094696629422637713884618883584519330039622581792273018971684682644462582341131458073363610935348317384183108640848274954475548920578574364416429784771750461510007665832480749787576667615574349535598718122534237265745323735130719597233798557444256600886191461023129937336942820507223368962911350483264836089519677753855889763362169578290132401921747074939568226900623444935944676921492936379897726224945699313639899944055614425367146268181917785035556569281360235864671443345612391679327592863223489489551396492928468307038741992556940585747486808640106532081595008206239284492389261504417198929595250380329601133542407714053721549631733421199084090218870727079897573136805869047665371322586560666284154000833710202249816882499596062685822879178593249930033817869403971350367646585537820535656220177949257051911690116010362546123436363761271010970811660173663530413417067199344764287266389586973332012592537024033192533272006374889256551760049692891580584970957457619666686083389436542987189550002372646264137301349407707540819241222405439816740398648735529412344314461060645987774636972955217525947414120789737933665803601559010165414440778167812973241586268631623682650370407574102699058607897990859001481902615269045640838754948423739253499874886160980102611023881702609596006410544654459511249254165511670779835387842279735382122305774873167666914794820548066338337907185449785761688699696583537692655452676987682014309177018306727606183130389783930471283913250539903811679771743134983408805021438221993601439322257602003942024071590960166589725548874637746530380876494726663053885575572785892788138584668759387461875484983087182666702991529072032179091226001655917221495297956880183137842641943410189598908682395404030352448386551998365400894031553163552767724666818670370735540888698420756615435575234378433288235781509995824460191338520476774174584864331803412342446002443718363158277112595607690002332055336688168698835393432197265743527323365118861667545414769264617768381720316394483720424184811875545406867855114859797802487158920433254794787409671004352577342815076486105201800890269160547511515025811747012828083068185489841767506188870014503895542412097774765863493772344166103276972285968682552095012827990452341865907546228303136634995485767296559430632024939386887505799310114894218637340222554980420509996645461298988594368525078096449647079401871261301066200678844875120345717266725004359440762882591500048669150136233297354013202896290995924262873158112758750812340308378066765220462165147971966663743626673146505494426842052254569204869703459003083811819443402391463923532916829651279346859760209727428860065321862524871993723864224128338616738953302340689252474536807448052011080065953513300600967683769207823506837535410141105622868791609278430731606632533084610584927969376941919733776417642595228541562698250545272624887817898639066050575150031430107439292486022559632926294301485094238471587504122335932623938929660826567823640841235344960616132568678172313144021744058037535614171998286445552773096535842548348736345979375848421212465440793937516749483021681968572049974477375786936316999083792464699874366113004666551013332612032740276120223029614840351690340975242640177704674143460636440372890567675644408644360112882282383606629574588294713970841164721259272362926503639853681754136088671946270295882304507198275857422833287995890813881369687027018191174039613804603100261996164974108674402208538939188492806558447992199875759640218838558166569445664311819048335554117714379605913752106450990979657386919542878469608869292966860540414141779301777116883973476801714923588875463504279679894298754227946155919796829201555708941096054740984894533675510024169318719999688874637170430463391850501197633590249048431255279816012777416421904983079859783460893569866602431663251626961645484800754929727749396763692487296832518463926567272265296438743341268048053773516544821128297670516707849467463672247211043536616263797097923141556552878831330295989274342267336168821745146914749090949895122870129889032767285704329238131220349831264035000163745187489307957284390976089629351925473783232457535830121792123550141873768621782069304029715347195354370598280058972806237928333196941767417851356094431069262813149590309521973949462268389061062816425366191907173075432437189662298944676011896452208184718424601719221696234929028464075725190816164712430578127348944300030291287823466284943076923294380720860608696321107177835516299092400452784283623685364698311237479690309734902400571779173024534829567158645386894077993165068351578871391549088434794345409487494142100728159464153877296975020076954408589080889935731726301098802011312775003185273805733247727916544840736199052622628774312209402409667777487257710113350111063711210896552493639406364341316202516425498872436628122893683018929283285232469936851499481586341116782757751957899605002501500597835038031189747804192342952425033437898420128555708677287124589613479810356517402339901638681613554465392574482585038591097564429070975651326956551962568724949532861973487314758571525869613548583745772555218292333960918421073043488815467657443868343520271643387600134888979842027453613126783130465202632582899557997288105693038787238905538476432614079433342098631323292168155618578276388954595055486892044490423449946417929218293240898701020993860075723906075067053251509804649224401588480889643996344651228156398617930958090087163377414687393361428043382226513511526197724286404355836645163220178229643133100433051141365889014507926489644927358224039298599841963537001260243071233821784320356126655265782097828384086975231641574585809554789515314047714728944739236678384624003953052041574795421674278410118370965224049290788011863747901018171515216467994085097175367492821384367643193255138937637236496016227160797608999944691427600656652538680023296697243724779047330166040238469349097011091210751348653033118288959477360380910131885807624521725808556984539747864825174705449755167346756795636325982334528012688092041828950847063489276291695409696070973519555432324076596445153650479970481066922765307812376909973910217618132789567509238294945515893612728838585845063718855106521883485139229839014216249934606780536471288859858571252509697797331092176338884422052758386424149596243233504498160736683048873636595260298878602515396412290838104103250343982275539332044160468052750233653469979778924833287224294224227783990400201924478720185850890272011966127914795383455874580176814423315679769447165473841619459936683905610357455011298592925573019449453898462840391242809267558359936630267309097711626414666736099331726706982016440234222192373568825269919577481176227633357839240984322478354406858636496406701597435051423947067215420164355119581896438140662094872224053285249443896213850594260570187038499931950053298313289470689569773042729820021511298699917343710135658698155923215233701631952084342987816453613844240742375335445061403213936082497826231105959513389913983201372999756085631383874826101873489595746327523256630689517089354701271528719801966133304602653172093443318440427674885421095361632885559156349082039649694406818667099462794350869235473871851654325438067362087466583991889760859998240703369629190015112011945186750264533280683857256137138300414481265933719159459567595332135759852554206150477272008377893345827738648362742462277137253567134568273879629849971000090882553372094479128238361771793403858708715391945776301493499985087461594645671927193768182155401720727415872069978360053488633528007135201423294220401698349956268990341235633087298625569947149271242343517816494019660488811569405607820116142840208357341999552924691877355938736909203852025889718465755382744473631321311819881270964379755869821860967146222722113602706016896139235660833486259695128687106765257295212698704865478039878672750232381657975085809535685769828317072366051128593123486889219956877950809202036548688177190619804182007179327492289247956687154966825715187794203074144300110087324286806244081762720647423949041583357763328924422393757543111427593257060614354658417922977287583398972532819877060521785086606178326405206828449523179915361320942177598846437836179455651040058831575941466850031528128498480780400340297382862843328385985728202983523179834584055148638233206998401376191670020029099246441640136177144726932607504650332162008957795275858322030989662749016434106117308574783103467713323418709693925022848154490609422063693974975052253674904308461695707263661802844423314698112630857837716884697313805843624295194320738627115502875286553677811864642668362068732674031418658275651737926428515395600759867995397424948165842168117168607553351732349179677921728316809137651825214206506753042362082709383833822800388174319254083560594413742148947090995551043661762885201728850803129258818557942179563359763320853651251527797297318650169465644074732317817853655464825837357516955231513967619092491718084534943467507011951671343916360800385237311603893603399134550817388174778904599909226423858417558241220100429397274673563470418114833280565399305125583974478433820104808714668654148096048219457369253592251420455173093929471806323299753909392565480404681826343870544031359587810410136233721373567473077180820113047089739130353198151231123424944674655012863904657543238833755311807320159813672597619904051063182802009949818550428107184876770011457846419232929943161077135564979401354281303002786533779840086954109996543943540247052159297500872369255200655504029752227684531893178716694146391133033814864279947798936490870848354486468368124135149315362081300422629460399417799815098629535374493722248247607636584079621568523723114337641072887934738980098431992558198088909616382822937190633852591199128010591684439314764636633739365897987756185900299562513214562191133230021407751929596492030010492554848031478964069854640726337543056251496606208829829291706804280384079659249664324308919753443337885299256932140544437220099054219929642459226210855329386647006533734039568124372782564708212197970650127896827231092659029146002710190868884332843645502776921698459756140810606676202065403188755813474702482774519791201773094005062211145724150973640758137822366314763608939824773992779138554654132785960358190453223425440041673061387815560928317292944573684842944113586351669357974146540614256804115413919840011419347227455497415548606898390305203062494596719533699867470061839859950073773307716902941825480634296823213424874667560051991879981601412843514887752196779979902725810336335617437698603382118655457990632974818908887855940772276602155262908655770854182061023327841055144728102538735649264394066705844512614196261864202320295663780086622874285922732182778921644581459409515412002752180448361180964409559121586120098137644020629407667400852013947484704872560022365224075589633444805988400398240084436524877686245768311378325452244286078169317870872112415186740461200397016658954601025376472755034903124007023191915283186177428000240979095261112156709732211471488814671804872305325165009173757643028898338028014277007848792790336628498919011759189258396032756146703006014804252206697324914515207044628482195388880594763247060724330004736253978877663527489925428890919923327499789560269782943456013245585605926422349982891136979253069670989431733071685869020153998672369570672129628995010248142738167554923720044331341926761000036880172498141599519167973574447758187510216279755371680838551677977162491332511714281161390236393965939204606355906367803183280641868730560397808144308636611039956764921770666808417335993472520543060644056420695634363366520504801953619507597110739306421469941235947846217178665004211453910141148551782331011941614419778974267820218634493424884214629356596207311196219943732622082985730473751625379392914200770171358336187412255968289817871628002947408659158096466372240694028087763052251982047030671218256489231982037109043135657176281707023947266361360323741992637013186612463313598401127325304542843923546303176284336646591311237482478132739021822894799926839002173486330536867450499700736939971413467325224148895781335571492008533968763556973650270824679702608500245479178184941767974269730082702719622765017101858937761509110133463503390023147288386001484123111105296374042077485521091856630696208754365944613765898872463415402087402621319905620872976973791154251268759220864342472902878104774365160429851767077199728147960367070978574520419760847671660234142443621875142028878058767662813838147662953143598871501895822271446417485577473056706613227770040146844885768962612068734881060588791952452669476929701114453522452433645040961770905140291094256785313724766619944105077347428392496757564263991335737101132115340308324341999262636501340758174239417121014583653031384658933149912326070707843774852903122956002943353441265911127135232311777742582414227323390248763892459755354322988673826417430030844745918593257902336189148647801568211740304384831126004832775288905748398780269652935736239555517170402744710043062645752365582003988830348909321822340899502828026083266573133255903820822978869075491186497994596071243424473441582327161121120293576980311642288558651509272393187732303362017356208155956251960190078393072513346541448977299116268038740981933357281070643701904336092227286880635330355350675935938245209620109514420940072210332148778725537924064920863621769896637456879488585661995585495186787457985577885995663711408057097260281427611627247009410812214694184302826780712748386847287796355095642240539910362324267753391522655950915277859642232659986857100260381119426309329096342850026196393503652298279281234469249560520851659937004513343699784432135383757518564282577672270963324283976519211244717279709559940019239394964736924014946894624203265659813354637746159702064167841503316547510126692436765332168538558126089561493764899951231380719918924462695355274175182237307750983186028354416167078892373610933124641012091200050072784994729068708220303800803640170818988866523879974460014598654876146811974136456096037312254634765839804568715354095145943345304083604711705042738968299988857059768560865505486401664160827345345077251722666381341444839742853848223241182498432881308103335741321593572005562953444406036893915800416538166678822659529572549976451918669489380191978695455014407125958904871354215249289868414322295658415141580705969575177987002605625505066528169091519396453997599724344272240845898482036876364271418044798423009037113521586736435197911314878946838924173476953161346496633415333436777719605977292879119606373181029487469090870331757778014794756618296576764445583791326681602753686485017539725328517847734990369699161283876368801825326173696711820427464015108337288740812068830938134635885034985460690746066546713373981439585425391438604456332190528120552002048139150466167089935956145749099939334389294902736114148300776345895978534557966175346977982703442877352316841862058969023471480095689358302142657639133736770916150080178929892378374521449117355385721568267895008807797223056508359926035488031047261390517204387175533389138024228834407909010845288236125976807934526954133820168522325439366695448557873069681528818055348748751270479040606508406076832523531672739054656056236384586639203298207695642307881588803009872119614981701663058347031592206665319455753966067268010866900179200538574645108834588591492785655047411115810570349254697513692745930890843099062453222689317350324117694628560012500606715064105648501983620446020506071727945136941916166627913752763573179414208447593448146637867993574942208095570565129777360468587596644702043456085054608955397559160517120540923138935953994242776458684948246442038360145438142584178262409673607166220701985137362949629001755125905821348426719929937271934766113838100050754590327713349639978618100703962822656725992193163496449348363253114655559915948718561556739199589969900908070266304758249926931566225481463463153698566404735771288117843750748535064977615921386117658127140556283119578771473207628240106565165652939240799527384639944915656602748005422498865295868260780051032273262333331024574317799959275544504360702356055040210168944965259386737410711103584477180552401393943979609868107862705471550788963510312035248379552649314211360146160750281128760016449321673806048808464895875334796852448610594833560064383151178863111018250660942379337610963047764098825933388707114986778020211743121351211002935039949319769710140792678915781920205972311341301699275345851263823991248875296993410100854339262343217182945805222455841865227333117718566037060245559396127087570164143420735883463989401489701926103335520834134775317668565971361176960577460877882721100769768904349491497517246028114892688553881136367667587021711013807950652222847418051501363241189976128083860508896020774412016972350043241450398914305937253157497003867711902113371172824630846441587932096482240586247015089923403890850502593861549809850248027451026418334851475351620609899599878755337201944411893594718244594757785354953790007887389643803019248061341898213645110557849548932484061560435776548078914472032709611065011950884650962480074930994576385038223481782722059601040041533450355578828400906389917024450088683467715746230329756933572443179864834900246734813780207802005014329851359430783457953246201874453489172488021329842971941820733631928282139274816366104881675837122134553983367022139963220250761024690208570724044360509921230825634838968048213830241277676030687606308624334801524941656449788242256635191278557608357029259639364589695977008361551029882507219939090318675209414451467894944204271222105772161986318718454735966017745398106113450436614066852003783850797340523463802432528341194713008763215517050313716472719564399930789405158860570154742795802785718599585168199270160732259019014538068860489180441705782018950861150483472257173782313073955407284655218935290088028865795392825917282886721113405846681018220622633169909148870673263614651852687362581069733644909593307814011602597497759254692982006666337931002118249634730294576471401816480975991183660981636490898383713481945377196230414475170280877728320506227639518208920910895750173393460766678883462761891702759558358183840859031683765154613677898887455308572997305941582508564882171988898908321373452646404868941546558363826400782445992295090425074962301956395597655501714456774680950504770481665269832866277592080944728295742264520694027998403290798388327686740687725908201234539573633541949959921551154873769701417446887959044131078242981718563933618627370054038537747413026126444223037076740185216279904169839143994218302388235572773761173352041014211515463165131937299841399744935576936601482200364997632909328754966363163786209542003153588788310348479689506383627331188018065004069990901403119999991212035660558188438517991659881022697602642027787486986151013356080836138644394180357313722692014921240449069717387868791606539150974791903669431652626534378962740108399963915830314145612243569843901578990308825710032340854881957995066908087110125810370601272185115516369006297519754889091957070477954575241535550321084154966178392720325005540260093506067286899210752965689134060789000244101556808519013870701499456822386075499848981848117114507632303196099830017526769262146389841559686321111886206060149016020538906439467627090387874503026261446153982863721574923336036062697910303774285491400212010475339990258857841762212873395424124545820232069943041406797314694016166366407911824418112458116040699493225455784593780332941946688640816645765217830162037714870274557705176047965600866891214451594638032225727819507808820496251075438235506343885187389124985269332499127751231550381210013585594266018205955786527714111307046985862192200288359573913025039707537632341814529602585833879167951683906597955791928403953973115454615046638932484325979201920092398256830676845644702552333825903108196726781741429997605261361555269084999362491327315931485763685793041036316790328583371635134400287271205694885192896334022285938756240888049565425328828963479759234905505953979580916692307409890623391718039140581951739374933782540869265884240526645510777949810634959520882633083912455579568003223692331264147190934405612983017209432474708924110095065855749771664752952867851589373700446676869819044200631387079895697750339951131451977947649963544009407717955136454838368545474484551077753768922248900498008454138162493092136375063815028768390289382020929532530193164550573604539906948158548242993415639754629040025425298830047900199590993365031404463362178929499089271995020426591488631902602560816526352973363745490102272968510959183080160065940521775029247268197806229053663887658986296297797877956445214582097199704828870649610132231913671266177328880736309796715211026329240565238734689024113125288913190550960760577624462214891636890163299819027226971394086456702081535738840550958466800170253087220905347311900573784134932113489397028175719997954005171911076440829392332227727555712980934225607095848466924999812677994444088515005204277155441916946665050052874345875740021931045061738137813427680668312288103364474406625659221080183674723888117121834108690821972749034203745387503516004247109843255102172473023364104780741967075253735674315533312142748018669100267067027264103870442906124035877512597171171009873493941371305441520019946087503879086471579972021621141315053387349609087777219254131100624230848731974431589741210378840727572693361691893178086841303625198714025113349307433679779968054948837203254618669797492676854441581657891042948961755457723220910916025869012820018304001459407318849477977368823458227303989302711252332166563118731515523298772576923804859325878488216268527248533130161773660813848953370053140128048217019047431767464646048840182840531100412878629843623808435906246636382550301950721922625404670159571050830386067981143729951922566985278966399981473514180230506018327439619778391272099375454524155259133327162064807792967833760329186919532388376296423912050670658784888057764583447545065079469977629949759401887483029939290866845438465909015776690459036053978996000030104138711113052651629400888740493902930993199319334722014567423991860729482290183429133493740527744414062036766759254915759161438074450840470612522312604027047624011214808848574722620481647067898994575517298376786987756193923272816232851236257821058280923307770685224161985150775245124532167781463846026348229115526158872046660396368862063848356429667201130353441811858348756525975583912823226647936588368812716086181750742544654999093967144495618677156691240971992565573754988107842710351638369264057565666854516181866128865555512600905914428628305326372954975807742830027738964878220861581791678095807611865660496776110324632033770369964837645102315362687689049492711918185876701770883107642141246063366533173979449665072693376629936138248994564062584773567521171582080586537615787070499749633792778016683948024742736121175116554267917234174016242658178972365334171423323482751307013011674641035486328372555379271646408609965715070393828654072678473796759000610061039592279373462496769573943173633580278755626618771813788189983769987531262677413468811708890378419983523819158857029730129208382558083531860202099599926396745848045648481039515914011316826179712003579741318840150633096273387949927170016722723722533069159012057362203925943478626395781171610873187279320396560733557479403504473679663754834621768869232709791848140030965360694954154886714471361976114226209087530552392311939874837086878848818240109805047535953838137205631991257286794478422391664948439002530254866557150552236542637863125132061677832067017090493718358361668798887687385257000028646817365239845071628110640167110594485469302850655747278819576811227325510885340390968503505761358030525829698333437590451027590015191914743560260509953358472227697451128705737535923754665444358196440522544770812730704490604804251042833334852775880652995168175161865585111562634403215670990778496235607491298723797735857151211957352141295788169354414096395083177581293088496953562040123672442210035304271904233094915872931149616181988794417947217003584549290222646185006831105144999337519220366481785855144528448474758315409483737165949784636885977954394904570285977466060607444262542541278666985743775113739150653163490243154069257000404722539437781020394660617419061178197616275319624187383160454773366425196018670511641048112787083443940014101355883968622735043899845378849530873748777111948671287311748681515096503940841611914238763718435607793742523536947926001853692972941138630189798555123546549489755256880917431766851892266282396187913364185025841371894119094808479390976659133927068525346925493771707344484517131753294557841989149234536738037621380123590933802258669894710562794684987989663756797611536744596432401080790688775787247768791573977830267333122758424162383617293720781343957017925856078909756001457218370891273088867401261126253343538357628798514579031163887414813431460637181062915864951541059585919783938455589911027650669540010593973483840048417701012403647210703912526356091754579351636379119184188321327235804307524029296559438572428058903698037035718661946355934813100313333260644358462026043975939335716409644277468171284471762712496497470684678495614701323463050132689447490013593665342118471349352374659798238547645207974770318871554502360466433285796421883800416740590552179591127553758040065946286332121575327991313641674232705770530128310251777396467395665527241825944435691604898736243130532373140904791649107379411891126075258799089214819033590556712253824416368407575722389621559563017166546998783119086175619508579651233609085193653507679808987522088479520330797813314258472339336681989029917984657278691933173982390818425665639746003900174324407257267968045249904229855777228979944378546325363562010447448007380271410503677243796354075048088272417643851619595347293586935871976430552262332566136133204885619440562615684600852790197204025066068153651607209418649035214744334311408355838488864697766543901957133651302837583527210471431643359205984884809686491933114484074219379169265137953798796800242094974032324801838281662573775823596439922330475006545750402448984590844334006963405848300077347057338191866244584424993786150087101109404802556432857381072280284672159186938009631694596341437676345322625519645022635913069831755779071397645181443382574054129736762381079062859579299482991639030045341484161053842238644645693335997285824671647084262878322073982254683567413979271764249973702867884654493540110776344215700822801582240120739798706218982021746483069085607448136355139651409219324602258649627788777248847619202011371975004684609230714440909651323637139938533075954658485895896666550745685432506867971636454870083407494516933740397483849127011496888531711776155992522853033660949800399210876019407911311256341169588220908196996757097727477582292342671625892853213200499058553325659658368698956231163108472221722316449954852947563460469043014797493284755579240829213060726974759449660114089981618592268148012826491873232144792239713298297445327603582466000820601032283186651134011338970428172894500313928429997632149411213329204250738451225746888122019689306717407389859004093053420405771635420823029040584880915575433086862430585178185155166459853987220427819102370118716049987626248302814685199300621528920197944461921097774513016918103107004891061364026736160223785446149245897485266948223337298915754870784776732606086960819643727844997717808444337026298624268261856849364160337330089941161007971169910924019897058053009001384631412210815659331078229334671704972508114449169608564684798875098819908497945950978970673208036593384844502765330833635885066280465720648946697894309010376707097056825003816612035861110174144448426039128192087784668355604295216561091721921958884195699960255692899326812399120993857236331194348236230417030762112576914963938818085803798687186033640370278073612520419595212636331281556703789735455417455629183681193580496993384852764911600469533961029504772942427409663108593417517571394397975586157256577011842350917435888671449690298371523657244029791450486538955687320808228112085945453820434161511725647680698148109278101059426236578200627199997337547060860809085079541905652372395203261828006720171542953940797700265035850392160048543557520696239483500378215239655627538184827427451985771200085603653209955685429459728700201085687763133043311126023832247766121255520911796206852390641318906741045656963475521081921339003673265061083815084968060912285389676867307135970402390035220088108803282707213092985551788854882360227397958750602060577378438380561065630518768460758896515205612383446039301822828519725649804284789578212811089214333120380499709626184424665551124589941202391759379791758743482408555011994444472400590130383865141240223595233809864010244613670101148546221970582349769967686280787267243868342064868901557926799775332755864175284017335956829183887891999478008106840531112648021278005185930877462455938727561573407286389481171343982639363760775910555702676263371033522593668616329320148161875577805952017992604341961595603264476883442992703759935117235628429574739597584166128561487720347958564220815356577139708113738248244558158686941127106745786872416152592770931177316079618150080090882327724820258874212984094849239887836780333847379347798352254577899433791535117991433992744831411535815714672371495873485768986378597143680498527272463317694276450830839711041942215304095833579551454867627169053159418001884458053831201345772551105365509725620322190352437988159595563889485096329954745995388791852714834699920431836129471194925812537045630585327683489219527864603850535575927815232957201571211464143272454821499270870862823998046600410290922192180974162863897807490905478593557460925484795590063943771316966108361173721053474129363360974370677094206676139907122057982347379259920110818047008527715297693692089911981173308605661021843999677078685804366679142002943446544533707332689317180203596437119563082573070427946422770981154849188196580630407703474076638339171781320456392288723643878734901383504290909310369994750911822496988010925679757351934300829722200026076300770615678998718158147286491058635684408053071465555338341737339189065042040741888430305545283953375724265936128850718586743483442052536395843563760708426803971071397611683291262531455047840833720026489211334870736583764941311792083280945124034567969857011321710977203236752987039335730451515389934569602917759537786181179188906022663001559078531251199549948370318168511694302901462918907177983047948434435669371398596563498262895942193160879862160314732366469610110477349726145985554384983692486830394885804592156409209989025872934419539910852341804527221078946833904193787106116954875928367952566894692153599476840289347504493646822117034404114366685466486924034941808390725669027747335258599487141434686478397909969764839947081937686161844417682328646810062261185317685210745441310961568862344858563045876104237696480479947295384606255002209202151855496366081350128828679385958022083899505134493032106434802168019362129178268099158809820746948665856251288910476089675660984586155564419201812020751503396131240125248897510109478850422857757578592289444225389816197329394682342166407055236413009047570000944279354347223104203509099013037920194038510528488275577694610957854185079134708186913595255708834070752999514558046198781344527722472242644667585105743147373750687726696315650692448701748269482079331161774564277700348253853111781742160831022179487260030078746708040593679349719796840211761966361001981879901207097069907563163118909001882052615548323136904671591944855465455959023323834528491843808692003494620427555086429386847371583508364861144640027081176230518897916549714663772622996129772398515744607851349345655173101308393477703760058834193184774796937548831819440719726759133282237548519413392228785433345018838984727996551659876616025248080145449196655516680542645197905661593498559620256228093406102848406438816584970367402935843757864884889199099023637566266713177006252967533536837324154095094283805674065464769054032423866316586276494584122927115940488840391316790338978844032868417185927274257410628563807572550987329909759215896618802817779637724071730816244032801217314388711772123968122791086865436592769278821636455451110326812585534045413537002639537850284985809185142174811698273303355048061374993825052054007634933069103458516538264556839340293240333913261047682105286236286245351801599533475003832900062717514804198151962895910299804246672683857080306037512727589177022850178315225499458377692280093473942689430464562945765127982715164500690483164565830883357084256012759569327567532261594063547371067998456442253818257006237523342493960554866538348897166193571159330905399863752481999747461337357673238616793559081861612943107294807548554229273796193851798469038149211711057686363328669998358579782118036145534605198481668470167921208189165150365311190435857490386779839223705210951947913483786675935330981156982401800248273254957475062731917702621765511756232299633329727182931938787193162842168553090069504980600630067173200364502798186943039311472623807815734367820978460008234725513121007851949990381644285665641552813848619969907130922445511975303908518277282726806691209882294017384493676972633435575171310689011017318542337580461245931106564874086619732259516031671911824390707893208404561394763792304244899774007792043153439748114798586638929927464892921815706151300205119324438000829252092709066157812648985891128367757712466721086368542968780514577054597012538464026563389860244291887380174481812383866041547994392360206226656964839452739656847167450678543820049877421840135535967244481629858044999974117858431214608301153606052933271760247430148213000427512091038828882622624918615881604099712134574746372184458212733091179877746153592448850704056927041997582964438543646365338547694459469266154912343419559534292496316450363167198305560403922096266225850706996675167561487191538180942613133088827221833624428635363674389575382853482433112083436300856100582671198739828482685933443791152612326453296832563415555068520854948298890364708126904973356002969578068749800695701747957532618472099182351391771957109414601013491704922791532209981440030506351615417658953130678972950376063791029441910177259067635604864537679715633001957235007578878074158273352494825948351343359728903961957435841628162243072137686612698537122366020089694075235112682650151054189366254082506193833918646149690984924232929525189025922732808534452664906178903061779569018360902621189611711993106338785839812438163035767131136345818691176718940350733620420092306341016425327150589015237940339016547566622138533448367865782814571093173742933563960837006330533830066929753988965561320686635721513624407276221592196562516043754056599909827784210625671045149055185872382311554631948432950637533515145767511115484451081987430820914877576184395285459181174003282382886910417412265402264465247575297388124706797749096012352494123992947016479652029958213644237832373075749348115658024760535189471671232562681095948944765625154317103625014282305029677820275408796711676984485608687349669635306382397832922720512961839071865683078864739894854648589422341555905418899025439390724524800152130203560731190100532945233628408725470813477094109135709588667845200114949953882267094126572601888427911954799212636038270231216491662191598422056995247675511838033911746288827103327441483189410512588611593727206693584393216528469106209566404022327168502350727452615400493567239986847888088869931121301042072745727048652769078011052280584102940363136694062395488209704956914085725746666702106561883370266177910035128191462156098180687683817174987606469863825614834828541434591041347118128589535516146584449442116589680573763739351381964615629223421990563349744108498024271291376136741378451872547458512325530315559330502341168099082221952337411378053429565047819415744410142471762844958360804630909495569241563969582902588034803838505829028545418661147355899165368825193698644334087570737708210310028728410538466137239530055849445662149657921515937247221058134028626314692844660837320395538100579970297782589796278666288549613371626136253790082370895657481985138077869426822427141054071723851580445276914595036537413239992662877471085663720103847139856710697536843620744454078143568653906249098023034654610974081612960243569618059931738515789554932190900628964959340846402591312608307803692087875575679734000400314713197131638375639941830219266275841596712228680901797383259634107358584149027833885289882712243031435984864434370154604310108564756358184800527098820366232865537162826598385253672587710576046467069760209555444930874093513412822106996226990008362844675553503610809909849214133212611702180330914748003575896763159302498496834961243005553159964909938696280003067637321368578898445368083763311455925523816663821972771261611325745515508876863589008897640349735635351862317704374536859028724698695426077180588488279266836920774535777477645114072197761180408024260566736736273841297834238358939162187041739026017528803016429541237000388030797872377355941231878533631473138473408471618597085508455294781879790855517543460945028233713640140960590540092114651425805903373049258890794649622155092356529811950379253793936184353418385049683118691542990528697737685865837686024376575375917941288952863150486486008556103076034778731505460922021388328644839339961102855272944147219444983592638455406231452432755322474476218194624471101153741345989747024889868831250542482487519561446193403631779316146963605597589540951551454744914884394514597424766708384043068283154017303074623966159436623982778797547333759255147815387794821813388465451908513498685367078054373487059543179222328678883267065871364258504147268884690785045009270575488217807357865277267381859779642784672709385693043327753900249937450223432330998261035688618467965708299977438440586328830521185298605122176228256410492057497018779010189285141226262013048789024380819242105877905907434952681775332910845742847926947722468519546377388680498267395643309117900935848989381847479515030833630213522478198710905380860539501131219246372817641851658504157589173872244120949234439155552337905496713807721862902206984972915766228566104679997492069146203097331065431939509099299758520622521100823191232277255169366914798045235862013592871142266040827696568393531020181576794427686466720794224606166012670441680486340329563852738363695010922422301925397405141783652299855206943296282415078346921325868721133273929695041965977566621079121788787303936206871867928200218821142168702977713327451632399072945618140220122662119045538049875282777745856362815878407049212176005790256464605635491648622084709316170928712994829656968328133244560972520015402568404748042781553997872376694658455738546972762057630883595354385894139367393454064797417904589810955807942965899063977147749862855246516103724465088204018733656667720361041275697163723911923703522828629139000958918469270152250567721757373067204821876832360882527567730233267727972974927486721564747089543973426740177314727696264788131598455037191891430697455118139136790380037555842147603409205423779954661474833759706337231258890954092754971692209987596832169300561433981828569260860390057775671784054848649335349730629185384942597378610682245059179999406479650393695122177001144289447019847206187917574161552364984337999417144134917422730836321539103235375230657220831299263036016856306911457689815482781620469286369912165987205289871825762415211958077495244737196692528476443439110785640306711330169727851334262492962990256960889587594187170582627983118768950832370548041134704014921594430603338786198830213533354206337649589787339538956886632955432810084724350685773714083760965395872586066628676065797923494114530095780352660649056215135650930543742303380503312759537935501321010770260198842788722867995738509545545663487823714403089998756198275705030194376192146686748708820163896564873185458032898411058964353382888906116797959023354940351289768832204650458845381042996538295613231372390812018857406809144381815986743798613952887100271287317603533524037087329354155517956338225773464107151407566380438807166274493061254428721256169372764787412601697404638385973762858218432723420939987303478355763162075488108437177413386527792706869059380060599075786885322196913506153270872578591502011758518190297885309542070124385484802574887953930461485218392539018657733286581517758395962005493280134999281343595373144355561262783704006132820527816618479614498747969808370099719003070390108854659447635416536610089717745504773447375736514963272507039975931778406372317930370489892053066990661584200601877933005205706818188346510655140182764722085545882554493701693579146541613158301043524363016353870224131879926967834090283045727713326633618690397217448942746958545431520388670945948931667226107802672558974012987091333719685151808203002551138152263162748095152949867240072108135538422267381559535556926365955149012486023659520979101983326849504822521001059311965058876869250536213663324135431964778884327469793420986967905887325731429825717575515277164407077715794248959533569782166037482862164619992063928968811785635209090330790452125174204253094686448578582235801568371568900400970476133010706030544639648761439914282457273654114034501481378642325605598528281643987597417157508888557903392277986444447075591784946718917180516618255056817553717762029309643286362005267723023155793361169831623168274824193510542111380373436270336025052650813194875089145952370725354478029930599436612564029649952922259246350680933843141126770498741633904871474078764081054147483937424441991360141061636248077533486115057387245224355216745367668907235182812044837085213986880827877556916555165678970479939942088281449320786733988692698673954775192097062501173060012237826795501988528026937294793904943708953418706412923956125119370207815985442383468398944994161510429444866600138411789906939287004774883906777886136676126014057123858788075947358172891022036299870348471799001589365659225607052487189229789166248593816425760661830034386664741638377713212623947736126347234703727424504033864144233827946165258431782419369113336413063411567941828184501226024045923372673746729608517152549145504370483692105297197925229881693587301705347461762110591698187226221683458723998282664365374758109967989491900661526424235655682626695596712393317505073597587410174768219782681675436490724009960587572536185038956988063783758244529993051643799470463556629061210170717453595953194907388383016240167365977392722635305746609556602793461286723345906119591152894066544198623818873033991720712028395639568976577039326883880173832109460263309810962255309597443503160090813333107590606255263424417685168155381248635089471481616570421438261801913402411016091936527534673012693367519701602388461488157690736126442050266374830600818996502667648700931664691277813427827087039584797886337910579338576321183223873418183390385247303261897368125978191424641154284126386926160097604282439545161040003887034812252096548660734119667861448379326450869998743100133956359580319062277116602847639261836675379164488730937840007965869562364046747888822696311871252978386632382790855774333568944558651314103469960821890351849149499921370064874240038210897465124680945090230150573332712834045976377622281888803276996769690705569815906186459785229648434284841239496319648482094989391563751855502609633943333362339277843033282011044183157483615026434620005049137644834224669222771118455966370345679205222164228903060286598216647355800933818451253648803155043451980290617111332302387477897444209384116828323630121518891504200549726422964148788496939803017442705379087102173228527660547293580909860108203386678574675798154061276230792390517936877266440566574108608128982578617774468392424368042796636622826571568729541506057740018319699351344132637123903248209939592704587744143554098864154773508738196263989743171036142209411458281261794583188224339651211834708318403539168864869056099438746579038545983369190664042855981567138554743905377945925631850609223569562074121601503446586538131217324603498408780809557707020583814063429434462292195546994103800297753291067383439436935552823113359870533562087683016271815688207891190891786603346553269460394074082218462682591511340460478481155918029097144453117104744399014913859193721289746687893081617067269905327373489000446344185290064228472583909370433876621581364274047345801470060908497206351764964565338956628927000279877465176728907777402627778017120464932000599732633265361750764825834413964901689818715081217347972728959670776615988187470744631344760019214926003801235014848063285273563931784741236079482109262957641869306680897951990782785268647486290788367274362532282702925909920586331248926950434668009952585323639338526931634568068469049618874584600134116295831957897358623603194615312059644811817074367958722487201972533982453804120222778406322051853886623062466762364469932858737736970399447575150072769097092684124184642388045659880260915670940573970554383632848927487957278614929996317051693071395137054431179094264754883965970977331601169908065003003962954516154574862139460384404487403843547885800943857556361079142776622419167329083855400837224196752338255939441198985345097106572751284300233118967322804216838350280598337527381116277374482423008715703213449386949142678765498653085118220390481499538606457659745891754349646702951615119552669826959107290530697605410755993307893652290673253844368820443258901959374438988839578677347611925440009582247800876828049182205473932994821628851292201010101179413126874773395255314360374249621366415016504277850475270392552774742247619146956781086980300918010645377279434850241727496995351247403762429409545109163619593044109714806188468463322780081580527318391824424298507766145954782823293747214388967658789888597066331433854026406063489175425059199219398339982846403042598131159605887804820557897929046613081918875042439252265684540157200945861732030044263842265088676584459303147437495677932177818616240922760873308364732090807066756333845835940993300408051807598235499691650535401848196048463350844479831230484196823585130011241215954269938407255083498848557146584982464920441386375303868701367154714234814732351647072774188948763560956863814181272039873647511781673289887881819045256167170887664937467706735348678340357839799141540502098349844916427722618261811864245727073773082632621465890182263736364048174962213998650282094643541982813406376243419257703638170380175990944344834103135247004840461999091723086561643762333700437937606619869695079281782449128256033059332848257057070804001389267072647347597064541823937877873248491689463889324396845696482435860827602961580149747163848046860543538267832325560092160275736247530235079856529300285319031077433332095897413579520564033423810256021522044540054671188336895272146188163700529233587504590564854450261716783911238661189671456690814967345873999907825427469421823764196454692275743334964086894639266283751819399131426055414172567358283329287833580299389128287940360563819394678852093809376357643217561506897694790405924464126051499564906686305845157876029722869514802842102588598506185695668852013108533043848242304271674453373799101180805620378996236533673906377698933717973743124161151447789354609651539772617574867514454482252422903036930121838230955438450388362237321005795045892791784679390090037899204917103083631827817065271995722489131159629393565547883919410130635463394963319118137141442059763726432107939018709870479826047627476593957308884592459667411310949690732729539023966872724279652027428515606585287202224914363626214949693169504168705876821707931642853488313124097256318158229318313136386179116988053433618758333979923667423305335840184580733630239130474004248459676889186096851716849719146607786563885480057489173616881374411828441496014764360858720944176724974816436225821472421085530770781029804012628375997719411837531642032591643550079896235597258346452368870684333336380043680599418288781333322107596301238269643906236104942097551654465029939795018540995498901832464496046243209414353559950270746648025155356556303008352694280383330683289553157493105390416641735735937426131971803742492064664972137153163523276568190022272797833932022837566484068468224896847014160641099009573406284917203149282438772939940195983381270963031012185035740598330939366566623664555352771781477730858436770111788122174014071021815690192836382106881538468923724323376067691327249231043618877520179310833070765474975854448544960761910348282451173374394487991219212898252265654219170911707630910827852231223964156354547643516762775216661405440933007028372776730132302404338335361594943927127393515872233633180411111304430745988772422264110819641941300612793901615683894721423745703190063525692685430591408315405376314227489649074064998821088421347864415570115891910878007409257124525295021847905605287724653980860932613944846273715924776586520458765124144604697980781987962680423073798872373804253940858698476770265930494121670124599599281436604144950856779810881656999158774527493439741993195892495641167700863454613225299817393031280857340163517748983727812891512496854859155561434710768258158186868169149023438637240145302014184230234063714496384241190441376025186790819610761866986190554436616305992210395809801960349605080454688459132372071339454715521159086284289062489971362339841926861333673263041969013922407023327915379730001828800068064964377123448261933659781978099506445692674462426207912603307578820016899213269714069913968230466368984904981540294033241911311898907605821142182075330202971236682638018526100644346318289504601579560453593348341073832067000696109848553878782562892197128173780954064052767378873495329377703943012433960628235269283656799850326794248185142854353202207625643151080746985634985028782712979410825336953842020538630359706443787962379276793239750902009538793717696525241745728973686172975669922246264241182037279085648983541065676308632931009287314613188711183432167301406090361620981332055183533334577274108713442040386017386037603333974405786114243374842225062630635704469132226557128527509372094806506092872695719796750536693280259823575991174775300994269069156859331640388692436299558312686407372703860967777126462808085465900632134460289896300720792868265760412932236354192924255067801972493653647648579038726003502054901621349971393436383192167276028989672483416723126976152545811088372766357123727067487996740067427671673575162021455794418017034884410227105928187115068482557053485045710219561100784643697229110092890146071346796415064419889616400469098702966261718488434776890652765288995598621440206491926861663505708266039858262485945828179161286236053786896916621040355229115057254672235151649100827680391057644529201520293765305203474008189355858183891214202842321019198407209129341831077819145745952927107821795795691949578198778697961398006852590696819213688413709782301141690775635158817429461687656369460997475339122347240583870148697341350003460617189252841367034847726085183886169171630651979869031309943117142650113007731533615248986327179705573676914518044230239164718868954078581238446487968370782895906763012368820269839813634773630995609255913709732054311765978052451422690780707157348770862364332908658347973510823565393185425166086932991212642520396761457692832460883217694530538430911249760174463041366584335874421527116264990023934626096437968106999819964380671819167335302775846875041422874158294661882345800938485664793517045668219761721725465056437497816261859942189169439921575870072254851794388243416134331008846417304282803956389514364140050048481759680966888215570779550528473901875441890331586470833920901896378815553295099298685555223352433461121155391593380848160217676443084935655700756773661501786960153384853444014782891842410314405619355994720768932904054499983686137879173531788274610036393894292609715882292982588043926005524875801909350666743812159327792161879795762846945363549037553344806578352742286706267531708731498223618157822497750153804953871691680506510348970520092793960220512572714118001686274273835307425855313453800527206593261452695427778530101376316142235482382044211548053670489061964567483309594371723055594720040013624037274542915155038694482077576873576849469067803264750752388817116966314824538363205425458576266192156110982507594327459995748404862951209660553050665654476542088729534820456530895578254376811331987248221881543098619834423371881571805331306797528802828930063151381239486142372766845187208909379436993728278838368880950173476805707395638001778091135385422936905466129126846746049824929342838086762351832624360703464282873856859230972450484237842262145708747050937623842831598561316590301420917826312642027665701882783728099856464014717065505827592747139824917203227443771214820595510821538716608499393469623504468427668339508788022424819559292205202546031019452000626503804750503401844225660931418881553487486080732635586628209846094429614839683070167000705109071195664697357382769898051808209169370314998265808313138496589129765281886763459081303079671229434240083039268826323070320774833464656692188926361427051446492762556325002974717731037686360483660000808804474413288049336379948917096927297729671300784161757581988021050939768763617794025141389608879199936640317841732906058025969513141506097921031853363198635161286991619216652504931312636577419485534190691967516416088408436741394743021506530751917643616987259886286709762828143274115999426492674822564094232164311592147336638131174860878240279268133737128777622481494560412904507779086889230829436169928463782214523289065030963387159366060651160954215201362863631591569299836015905271376196953179226540043090594250673667860051767844902596040501318867411961456975286728533878900182849007105929375818863080638024983277011710988231657367781667599023371238873286690389934063256840788675985915442129368249076580864145122679189895627970197102352098695025936330802440583416101252273413685046221866382434472870318880527056887053664816783815676515599366312026049972866418997983549269861108193149413832135064343449639739452184082473862544650461657470932791542055236529141353955589700573868416877305382636803060566736150407021290000219624564911822586990889424008732924423187760590131444702383951535322748331422762654948135501658097599793146758003628034053813548803736622586562616166957314658864383490650564386843576654758476747917262707765448521953955096129647559685106856167939789461982076389429154818337351776261688407485368506683345482879952094010887353210171130530955084538851295215633163634029615414784613024730082884391800362356612760170558248944696680638017273879527952328177408678696156236565940290348358564563809107631752322418782420972514219741009769629698013246329873851232044678233343796543925045156676518022386496321841197054145537047144273434503811415247502264856969358113556863531079195097518585990663470201593785295679417992322826023436301900141611364117732222425402829544436557106382613306662468256577677279702519763966962828285590951619784735757924147960883408604251119471354001423847304417658953335946080082253731834197365024068670403493987926079959378786114867950146750284344449423397756337655044957830139338773561823726283333024054780785021645984669505493412356116297370550649083448010300469302230801196426280453792615897959698713680349431764849565928516450988314379738944765440620410198521590815422429028371101417378840367788655508344353233233813216665460931893672270346843295587945556118052737333484094075000921217726566699962808419743525541134951544548361922747699981261144022889966434542790902530131429803102158587427670477393203011675093197959097427651371432030429626624091404746048744710739021434752197591102977238910116507131068887409514511477899113958061715884320207421465467414986118768459315539359045745424937655639789598390404339560068320032202111418676061946105087050989856139592336780526149345919435479564325127886359884535360465034208097807364280336960229475181466239077436170345913072052256440197584406538297272154144632795127973471172350068257994350484396534330858580108937234489707924003623555773213605675649447699731011154724336158994599732822651807223348787672357091730034842105823345290951949565791769967378600735524852180198932858833226596976172888383775089610090059320138933231474783726609428395872926774956220053614463803723186815031431368235325836249483698944413844447345959143001767926217651612101689440880873319812963975991060439136672779989521045318029040387157649181527113161675246746811850391080337687552950367996948585059879775044564134582834437368866996120612463060956723525283523049615675151323261656545648570549350601153645687712036359091292372146902299910189504386228915332172807999904840309666799042025223745090561402420269063212462968228399401139660778751600013158460630447520012537242501742461670940701689593082952031638106971631786027686194825800396060681547869551755334146488192122291240395707121179148897705961727341279781272740834142563230875947459410775690899819908631898977324590396160764074731633110696654632822104477790545834621237763356421716310532457949871856335284671657683517297125406969229509326162716415318352392269228006118543918434673967331646438044353491096200688124665754982265362912791636969667065974327448753186557905660294501238251885556799117747837786512352848127051435050420373868103369143944151394959769512449095566037400830027341145364328972149300128557093831909413138585160817252467327235380736668265652266273648162229965410798575121236739503252078848769099974227004892728315953241045957175954681074988841487547787597391836164154668986806085788569123294621570150145583835269172974176970982181113561390066163341312221555737343242480787063395118330006247544644675157180042223385649984450603409378018048787831337177147821100683671824722460793214427280501072296607781469498011951872398989937605120974887422238587915094955836984219085924835200987011708838043666658676379430116222358220970575862289917069633808915556327937839798339271876173545347215184740311455377364155220690053421918590280294257246770124672893173496418278267040683776510818721021735809463130573891830543053054392584638615226337302121732561384395518979225261655644491331758498068470825871668219992845770359884802359317017543337585798631964384624641414790337221224045674231869480621366958719252429545088790340713526678859495819259473409766635231728865261335411774522160752255007063861969272873890184951452558861244019926099473084660840313930696139699589808767753155239440665968549364359726718702686838229618267813501026611046425963594449690387593616400942910474714826649954389693644423909007243920791124715436673309097653312241758416252056556932842041482324650275230771101078271868365274054039919330593848783750995508644189676777492926135360661048570166411277053245601694288622609280441692662495226610633408491390114130835416073147545700746750553024318381828948719337829420259054821771862308750174764316174430672710870344605074064092911016491510036726666398521003213457617376624078649423195503671245959571688645910074194132906504397209383452955336966480782733127322014040500845320996119338491385954947502237096300133693217394186648694130081791921983820854311442655336410765081075783559381879891411073644407264822887844310122224085749553317138615933387406836816032631480687875211151071167602151262029056854155956639408581599602124304859296179773279963643984740141001215784933854499494125871431784247197970000962238073160504899507955263277935063033009303423727344649149890635040308130044109380628802434510399555810995125176592878688872213652267897460485053868267963809855572556136824789251391512229662209112074200950804273551601128465467324131742365318360339715790060951196647379226047686995584672837967618545903108095277331668306370380093703552514984713004133175251408516365035354642242459288726985307678425290618627448876772923126584144840110297538696985180660374378876747704564838787345974285113350385872859521918197142762706589166731286408877912644520146894281565836437485474113540148732878745286648222685001132247604415035547394328554723169655089699346480876747089765424245827375939589716054984865219656155408656018172609661075182289288124593122902323450223055780244877996479030164102750868442025325991654372949378067016375521998724865328036374329305278943270975501029916538792717771812640739903191224828409112744671734415862778696245247408881832377911407209431416505586185262093530892346774585740778754491836034529444373881962808790015055053951401036572270696444108535090861892379457508449374281982915865920321540239078103583086921204754793961918650385449714812453851612789758893528739628129238723278965293634649418333421638644476337369901782448754148717906240352419070662361018418018998081722726980635192149194320727711834704743262016192442369110549901759963243470715938818804037971555769344542007836293759603193928619568461084381217452590979136550086333786371929179123772396547924070698479369423361674263095412389865507642828000599761622340613426460583317926482921541393802717619114244698407983159518358225274673120555856187787403840830135058303772306676711370121579220035126800545572632449979880056653314359810739904863409537735795846803245989418150421974494531061314146744535197361743631801202913585574667662011904468440713372569227189262763253139065567005849251007873513381334824464655938309394189634309780258268838752019183376425671163841754876609392756861969120954399288412119009096355757529253372458934952424433919348124365776573083743428344294827092058212347361012944353323068832382764802533716715652578787754293600922993407371540081659743414865260113151927976236861981881510080128271194880298362832178033501113634683593389682161194350807129182236002367687331604524564945968331836017146730636917802578649551099750116043948353197068662470962523183990408397868836842787350429504887868552201430595557714616006053674897126398991960908530723219096156270870504057864350006637314116761544621998886075024267007783368943449972539062301038174996180870592670759282907300101396965155618653616069366492165073334633082532772022960905743793412309239279551897205001964852160721096269572084101420354420604376012424543209022551988405741126432197728701641494764787528998817101636975165125757186697237902624522034727570378907839095890304041071554129858041973352950946265314189000798581148601326096981046942485670275975431214093867753498176387250359352777479102624468031236185853665666655749850250209324833782881846765166169585075778787732315552694737138519514129727737618300117341069931129135369660806311873036867317640208481593803415710859846226988133708079592498313486320130925461965124415036618467560844763114873112199755194718824999646688854333001157499405717415627188987663275394586548773628613274029752472576908332553811019255151119410885264709416436352308256976694329984071567809534846910172231593119807977145317454463433062224001050457325667366144632385495818807189792858363124167341827901738033712999621539855366841849406677727933434622984711874167958978546044521531199793267911926411587420778451800358541041196689267374167071170463446829595444810894606256506043950575826127484679250740232587219211581741423501822344009974192661389818148669991740544466486422820341645702230974606113858052849849449978482543355134093729282947133852411378457283147744882344673820058152867714395012293778062989396742029617177183007366967830172108208810171803559941131997905505250997063891477294262636361430026551773539805738040854636662294601898671294744710409452058830856429691583388281626425274203963635031495877716032185449010116997000095482130919750782374598011968990445165142796478198473599948799672918573922242428261406437007830148225489353056761390654940448648055592998355922876765551994054248626752220663909991047182250103955992153244880985088192816669417260117440374919040393112782507686302266555421159328642899605094397477926157637284384335407650568021576200611705497691537365060671324076059265827272568269303178921537499988822189860404347696400104495102128174656085251266042911768593719671341614484906079841861631821194082166513946238831653662311730148633760064697684048289785603432288478948463721461875715597968688073488262139113051298134410906716096216689056802903597861876359425538856729017569471504806711373361782069303638549184327076892336440580853783918572538529213770045608475197743249499333180575218003162756910517070402815322563810602634708614277149999349089447043392139072585539001459755763194115305752031328188751544960729853874172152945796165177387977829257088387687395703302866944387815306243674622925701309547969265457811999327546254106450243048399574192112085226243318538895669876452184105414895550035303716850304037504570687387381332652865183222558800842704884053737620751400833898658667561438922546663677689746748338623100462357857274132875307547020560346791809099447115213911021878249429295083326969847739713018256428155440568449382777614405780441091424854787387598755691416367598563559717479845483097636031879260847138023536696248594715836926585973286389565390784810180275773103329834749641193590028588157758713807884499724852958354886149989664813167715910120672946269996281970691934932529703487230294613434306354289092249294822844750157595529286305572941746028350799805236628615889477626247263690153501659331120565297791207784196516970245266545643121212584156453187403780776380126625457683756401274227107571224116966414489074441099885864634817130766159279281143727902347542046836438682330637791033810426893232332795748598524605781113852269569612016745806014548681492289754716272637256150085416373042132894167857020548341355745751122770009131025181428456073544568191319998405422117208053333724282841827853332761222396450810646325122371157605089204079579067696072139900092810097444023319277792340000364258789270809914745690328595195703189158424641974094578630362570140203964088944506568961875829678289808388698603847335991507389142574297132868290717057905863725800491033059702296809311944830160156601552227319850700635191998832672653952976280135907430219178415632103274708192498273083705257522889681488140481903134356308936343489862882813946696050738486278606796844893766518603045975426504367254750153778288095915331931670450811163818727815518616668373884224326050906997727910932806379039781649739851481608410444949671866948378943397357456154973697068525103700037179913255213944863192075136014936420444806074617817518896500581446654051501956000842089143621674932226695288101781656053774631054834967345865022197417662384353038492613538807278654771227314501112822946623831575114403383054999382347349868561792032250932628690425798154917084588700060864913882946746275928251648954508613347918197017228501315936270367258830582432686762242473268856723972575881297896222729328712295729790504415650864318274023619536165851785081355575091865350572826624253524065158665790409461534362751753684428911728318477630565254851567706847066802073114118391691614309131676181757125820128008215605198211829210993919991890201737550725141940678088144741048009213711405523462160284826815799487991340420459762580707587118482668121762500241600025263614576118924266017041257755938625877335106394926028952687678431477464652812493941353181729757843901734821228950267125337025832457311920767133282995357413000815500533481760009084631175983276581073523082727832491116411804581972625077613020186525106124329044987351425587315107010842634343736810049729329005327350868219867427598375746699202703239390531419704490855786458179803612394301640394020253816735949499035429518355645962052070024163298023340255622772225720022211102462864748661189977823905913058592620397032718678541754779258351714490167146223140370369575015758878872592137710828433738072569658975615713368772066519345178683476170202265525037364004737464872011642812008950119908331104964956410216605199725222509982181648441456967097673692681084245512750419047927895491553138559566966288038342340319913942913387650852015413152578680406836400226883695291482738049809870610419876834443426638755424996525347042199858881418766060678459281838845795942270253162656331774037207674291223979640683870488356319197427107373007998761522830129804949108833941191951376122982029996606928441642347880646269462620100090777672164564271536315043917870689958342499425119470888041117197961653765058554133257590516161073620288338110883597297941425153683665838586559212503533727454722899784159407186610311007799939810021436959330284254515768257280890372464217994344197419590605148921406977446424264520885332379844162490431572131275708682534592820883261551856872501101085937726322659132442432773076292206178062852990073969324121291322025956932192018023970888964776790950663833266252105403574059332069441284899357973733573751453928333689413569819540530158981221207846547031621148972555500367844891023030502115972835113456353112415559469125402045841179329436732509365505056267485179172507849819761309103689453487101350814907344832535642823620186444448404856222139829567672868626818544468937105282726110065431108031037854978065330720829968311568455295180626553351385110044625175414956911626651395806660794253740151354493529860401759724596998355573215740932531425573074269582414991951449503255489172573080624557687058371277217989653841764632739029125620967077828194732450074044577052029992840819196158426503277908254598986774521017811284976335311215550572417468629007109411206468636571023815179570595049281228337309859503871972243644177873548900964950230152338791988597602097997704503345514456624663776663459285814368768421658478534003714767141720460601047736620081382474248079174280231729327870492356807064832495423559602575964740135148036240857316203375838666853894297311537431677732809497758633275582813782584894182219528694297402678297264830607691185948403112527959287908599687467071336330536885445010188417062791854081713629916147916924431870114882617782812076519393485363308410777296973379869873308369299009499259066810294982564512481761034695874759577685626714008502462728758869651619822029403061312191708194833371592926147596050103651472872051650490345056245175263561393031280017120643877960372672320327817345647281768635247150393544163210908629431589968975471601634626867878108242385892570037069140953667978343237764041965326875272162953542900548106948321252669894422753873235022679504737217415634314499206643632740630648936497609692655968268838792029706555557759712099422956362462359415528033489362343487769931681951197241113227202421176310055913984197730238441872453946914576867126124766367938189357007685509916809687780346505043733184582115072340663942994579807766825302772025992253655316431878023206605950774728041907572885971406264246359056683948514292951336250886371525520695572167362241358913551832771036556845026384845210048290261610587313697217630097249973183834208386019775789752334657191236050702794633446555643950609173371417349589039669675268627599312984152172343857063568053858876733270308428762137640461049757497729227145872798068024455204342546261012659324173749750675597617439303833895940875827060750640469677131227922178925312215886667403391116910099628268473006729843256728692778028619972446851427526794718973867402738408531927769616988793643636998674494528241284564244778666303827182938897910995739620290575624773946468117988214350806454127684869679096323861642638602572792503920316038485177956867457576976020568476224219927774903277332531288470817918885186438955735445820376854267026614704791068896906231164737421463945252076200783017482852865425180058543383659636669049138454520094984287160303618940151925357029001030639327529950642668907329896062125644569927715696921661985200469981161462837434997679982255442038979704541766474320224262503060239228691614200031674081210565774456620904762513390973606048030246715315738459032012549869165598754967515474090771080390835246314722743081801946845471894333183877597335462903966534402040125102138146138386111206318976523092984398026105820717012915463817796333098952059368869197699933716266429356536101333163966545808526861522360701990906133433436321143517463344884039678309338397441589104540337831676947993480157593216752880139841124434025543913867494653274218802775665888619168985124006223055273420182683803091467790945424513303159284485516036050231471786611759403548046334741944665189328434758830313171135292043527621302544931051659747343815372527590583084228049041274399258991788200079056877298011058292203584899206908738704061278144464366227084949194630996187309024556637016334767681381814227028597596359027247606579357103398954436096142063303197100402714551982036242653273641474583426639274927181709397208682377365738348654178309651637353564291673734795130142764759708241397936356393271201503172407582697484653181326120056614623545693716878551826910754753789418753095474604976387825377216423845649823967293803210710118652184938983760866783684327080230118318613013096001942930314430431365620386193033581325109223908476385472269737723013254237761962482885603925232291107198734604484960503744633064818690172476913229571349136331306469847321999654236568430501495847410520876780514963141804413818686743673477416279176982858075620467280960842583095613107862809427973773730626806595928095454144869025238145260844381595693221750759802537250986730058828159141385685573805966946302353847915283137617866192218076175793794728813637471477131102304850960828738405120430027986801278391473288640388328947395887741854503881091654134317043603427308602280088758685112263085956656283461370343207777879043957143078393160790601650167293028602472594763418576279415425081147077653354680893528424334958094708698469933134944143451319486042137998760302692976439445593684657113598017127223618811812639785620692005889420178118693229414342987581092253141371360844263261202391710637042843452057755216694728188596074227297449331243683362805929360610974784193311119009196169603727711525783727522963998121146478615024914628730966983919934611995833107206233510287130933722788904039936008942443319189260354336152865566629731723746139757819346259218239594756729494900795879578974166283212991671950362495371946650794735923041528678841813434043220209466087549266198402927851520737351423839190705409852095890032729759219830056048655775828567118101681588152953624616745666465316984793741771017563326628662028988673823820891019556456531334328697753555429565834882118313837299789616870702956975166149933767460867866579523495046111791944392734062225721968330419885954598231138775734009754015207224349637752434262269570187804326975280715484097630345909750205880464842261375887251948555369372850471574474892010516049560328933797343335745087116031812343885962318850800822828116048564806139037739373604255128179182066289790190988593187420854856938183306918477346361058588698563992811605839595254932841579905376477660188080415744764558494121504132481248153937257603156073941262899565363605683992749649894628021389891260427168790496710129873136056993590320539675594717394734191497824070316240124643557640315267008068643835648162658279358674924788563877343415173709072489901465715457651774517997886595125934317246957156314212200637314821167191058469200696656534298176850085221514170552954814076056187629196780683529085572384783181188004529588715593592062062281830080680570054646755194712902856811786567646063235981548679258110794732802248527074755384745502255892997176922352449303282596891235730311074884103409862677705227585951350247234223228998384591942695384054414678076491607114926744771903701300154588676319429804626056162819414135792553489741227090012458956220399577215060687663531213340105144197061972486477786038427789192273400022342113624349484046588319943422235713283160561614328717325672397202005109845409864727727660730392150494375847325241496446308622736098550366671194629990657586959431918040715337267368471418640183696387260683702722102675245034940429517736534003377821019034962564959836564531919025671537975111373435425014686693675869590299992789115643919087755684525268392163483955925191594775086071167067836496147876989821700329849695428416846413061125126421131668596611931090884393716974992978741934299570290042753377461421389397548970620963320307067346128173831299615532102697461100925223389503939865283309083920269652275268348087696499134909488524205277556891716824930456142961250612348520765188570747526153452583745310114669748385727122600129017396429884264706799880907714011303811710299229931301460395279974024664071358436962346512216282053631794104277739675942754538159008900406771033476293842553285746892208908208941695661139414310612596677722830274518907690099888913375055486759919143354215933123407001377748844308678695974954061899819074817501706320569224115751236598170372689342218272812572976438053806844484522538147156966479611238241082518183674250071579814894876627190936241404065511570747561812296590017960574685228396249788135552424691558966147937636034563425073324647407011183068070052628707891189887999644749691153167259399902630209659559308830489345677972885479679336722412171651837214363016971152204028683424557457074883845744849602606927372280804246227658295218816934452209995716002126549273984757954141097333038614244502291502389125044087322826117071536904098118941063585849258365718571834935226650941306550558900792999959339360196019157140938114969186654850818823853632576051101255419247596442666548810591164601205473456870234205122755090326547866226258812577432856722142311424952230488279136245133043832856466874766816150514421569177377770715997914971046915591903767339474038648138410334999958532459250779889231095240051760130258067688964513049082486647949370638898423360095262006388749112231334965377645357593958427910109145689619908519347277975534650497212936111979160913219631080687946701327792589219981410880296190386474200873238005381611888765621309063861657937503382364918519964061252176042240580670064803124537394035641431958121372579576240170449727594332843951456680284741691901024331838847968790178132828935003286794247391610992423160671128907535418830918128402755863520964572392237729936389329909991302220720767423970758170527400305926678532953087288507562153629350661937746494268709051041498509895073414115676169551445687721106510759142321749103389638371814387931662495360973108709285338516873784627226950542574936238547927091583759730031170352290879587783982040787158041640729242495474797969677206730679263671688162134083847216360077143018837992437636027240670480348115047117336853413553775549471773395789874144602530817536136878517044961739367842735681084913485900429985856287727275983927110701940190143584501238238016675559480649509494528992201311792890288969651838183350339018580859104531671557555750884222756532430763757168504276324656626711718619849165905535263476418996434737649877541047156270826573303447922578386100773863959309209142119754155405828996232688139548986529521148655747795016663473724104716382809879497779808168179988624813506310490456827908346558080950966540280901062102789602893560219675108180652523258304203411575548836476514420617898733969830903746304809014659148998461684437778833181364523337978799886225166222700720812523177483424664714882745882949334520651181863969294814975374734095303646440980577069526091620259035598816763039683228753156653528368629953257823230154647974211497526184117608024539900779257103448442081351185527377465718960831059761329999057031958758850561166640209471783660337654267072196980234011516995091465963101646700917161711076607956893425030235952231490402698318122957050705408417644595596519797965499835766124166326680836498704255287712422649933251352873449093581233434058407831761209615411821573114800669087072785281511781524489755933043487449631698209500040345856216328729024547636923162894564834196574047952046143110217988652773404123537717384242849823288910215844233665216575359740588250079216848491269350860021104799123253449513124466387608935797830658469223562317146270002075248135855775036113267724586869499400405803762710874796527578878496634123255595455587749414928566723577609334928727768513257076200806790116954154841898197352242505919248243467977219603681310494081804329596918893218982320944508846326843216584783065427202472935686749679730539396938742327521609811196666201410751568103369584998301097879400786578572603503993654596798233016145397400320673521775691514459780157871528745367290394734669432302356632676175083423297322899146083563153612746129543198937298035262918481391969671430648037740602178850872667382029728055605355212660535244193988376697609699263830378222099960773608240738928285416789144568970814471792622094275318229505155100410780614305079059070979592854945630440347064385274440203158256896527972505196632432771688201680277519712545554809719626922965512457418577858986739569214282492725794816557595265808197255865351814150070345991505093586536544574305203914137914581821212285172514939713618868495597268916716392609617088244691465054199355653422657478127704714164887603454374207918283050248596556424886110695299188972380838984119795574198563057865493690398618555725114373404683717995301680059885637987636231614809045084028009809673598905685331989772582627770094090754742060260077961381810494903047256226496132704298978481654488515174301003517221655516781227384889601527430859082397492710569590462824861636223655127227279775626785514853093964035121684312210874196374903943689412369476299244833499221078384422944460339046181819232211763999092184376230644577468362357893218215870017307603633199500765407596525713158219172661034080675957797209127384688828094378926512929399944549838620348897303287311439731025553710596164554166840956018049065231614669338882194208842334554061037279339312636797340060097898753351810845855522791680578118918295317003324424747073714773366879576897102920768324859521860061995308992330971046204643532659570164361653508144780882250033962111369738567208291601306108295941701470915122261402027359062941824089019791931779531074394584150757596052180090859522812946981980245422841295987055832142055967201498575066835379621926829113969080087459345577320142018527733926378860655241192358124308813020379550521822497594039896727250468795445718377091433238470813995896986472400563193683861409602823715091154631666734840355831165650328345130159014151761167907314625193623294577940302521103098701816893574498030223554004549208303968589174638637459671885271297501237876058123169893486107212636846690078571903410680276464235090978827204565344553285156325391688298150559027268145999581389937220072503795271145420458242894330548204191545054783970529091162250772856205745038245286093184464267780030511981701033116425089347467831626840981879614600249241400463426633739916975944113272392999105553282488642674760992539490598007562725368954036580401385848314523349830868548261025619114285467963305966535279103687180592587768339090536936811142366238447728082836926024889384805430215243681240409266339001329239353153404766808002099091029806236920680069044335191743842053766608742884548827284157547691896892547690891157547330613074221530308935085124214886311981611324641778182324588346810534732465351261858559210424845850323582779572540900823774181105906901281479439941828492166938897585102888312452520640905418857970606346995203801109934688807347534130328773038385799269281101193874028094868848918006002319474928220078066144350978954152302702778966324869253804315641332152320573380126225267230526462516158939859382653647073831242957853169567496370508435972353603682040428230891237403213372603074724264110444415176182083446290896959801307703071033761220275247813899523948889830950789040810608187944608374926685274641226960334368309451127276239418593330824958879569862884667558338508651519498989910830701848739675634880864162639832351135729107636135027159894770680867167416360736034012387253665413309295433786541281498128739163452645969640985404859165866350908225426053321417134493270356572470417221820680999121211538078354926036217328960609174853918154588495604465334691872893781597645417438786869069004084089967360922464555961713143048341455029905881491979225450226112369157072549229644447904474090291222979316816371731820004670168668661157094658435155901231947165044960546118059240906891708091231188492347096968773929402757578838937262301373835547097701166137584200078511068446214969322988231728105251897509308449061848295027568079061330833243270540900321888553413650832764484364356047256249983917532201608511155224560075577223370385779557659372860715573573301915023271273348213662711465341463701662846405282022539380783708416038730938553394967868915666280474490271197457128425102659917601713845210198710120382440790302480579195752839618218469070829321161675773273849971181392389508290516833678720639718716373033092186465116170276550469998505769315918677403173516116700832772931764815463015979145487094872908054812135806894450679548266656155080496083432962899892078358143039406832903091291201550960001000724028557584964472490959400759781423184509539144687775724919617633529118116119894858514614647698757006660231848703586483140314552753336711674441283536453940204223761367684937401395298958080972605509664808555439806071781662541589706986128851848973588356004230909929725343802775362681044273490980104016400871431878725517196967406849640091232351273575748336501602770045448489311540450562620584665352028949096233939417428380661074965768693772132696445698878405320119036651324600380396432800634225946309742763361798619744622531172666359393192946997324252399022798440235573149978093834456540308173164786017735757281727798914277511396373499047157706132936170393289271835390603745862400442176027743903934072274736065146472480760068147150045907237834367786016603801582702662561942965856284194545021969282553549969010534173356142281178411861094491826424637314623970192595250997245715765612743274760585956481090565012111391311155725944382827396449175445562603590086556351490417645427064647263132640808445954212165189791093386606763284803470596566722722870265570612247104894170798098525518097714126056691514828954585098410616850166553337015644472450620673256866237877329248341560458664608482636693714069368577423078052660044926409272760543714481151213807497208058730850695968017379479014506786956586504446916144276852942017640483732916430753995327704261494483674671745866842741880503259401279376805498839213558292974883639568621393508484240483869678880532535884709655562814339299110904153898295430410757947295926666130372295366294358907317335545816520961006878110224733115716303410842699806674164096237976477030339288192092604456115363853799730327195008694098369510362153910164281839807825413733650028492602660862454572395363233232536741121368672325565864603774585437992980459260062347246214980951876405010235474663089796310000566806266875756055678866903895410916312410389061371688072044997586032687790186229878460171138922486913699453134781265139448610800117887689192582950611511224502410174828695882617447467821712983211630069219006334240838402070729683130089338550745132626184741032417269844275700296293203264051072469071053672241019191419629613421981915716786275973399820323329654554047139021792182315603755429125811059464396370566185613432467854462465275368676551060849286029219583574916592685251366616360805144211491887137890320868826135745663406187628923871670136818798943203702456731572083577656524022061212207009288188231424252491294285945309849090090753180565352426739082810242894838951007516542718459611094493645633351179651380659643672990669821564452421740606570574849921634700802385523598479320528059569811397435069093687654835251134512782524156668327784791422602433266442053580501613777539568874794534354407867455304895659575565271848091286446996690353399005510972642393513463492217491327113882825524997793183898680139164742167755561165961881023940213997154627965008062142928586201917034020267857310696398453417353298496838909825841091119650677259429089881841168063161348979451146209097138416606610959758995909771598121602788461251186792194227627727038065459714462578704778996548937938603524666871314221821397859428111357907742540668546513288925269541494796308925853544914296485089620808868613935180684923791213248237482590958225464387072097836314887574209696382915705098470836946426988011985080742499377196503620853438193486652864704168070999951195762780841823120808161679676163930913780657119260198048152374444603093340112035170586032710881331794696166112043050307320227458832159217393442094328960609109699003796500417705814163736598041326982065985669477489710127493908839406862570233445586032485273202043468138628712300651338667921132532908612300628782212944570464584331316021769211958612248909056652909050115656340386572948000836121719451885944790443115110289552088675319765200571910728286563064175508285414133605509778979409134839270736160909019561924867131113773980510428212952068851815144912194477977364726364720237017725810427213663444973468593239886784348668359267717011632507333211130026342458294996485702670153237106497681674483729253133783958751029248310161634951730807051411464037880441319028928193584423906161660675560098202549756775578633040540552830601843240435314361749685552584900647336005104031587787123072748208916576893132470486475662500194656054612588767513629870004358704973564600616039631136661235806480622552397095286513932112068407555610175513281752072104844362688728365427588698761719542767671930086706533642454433197564008055875860918540064881675455827516369140168490698250847537551718746585452273725801364951511738691877958506615157547829306281173916699552025489219861930744614603343432315938651796921822533503059802915126509332470644642906486430008525025570715236701598080164154141809877676845258328933189186835500291042055677517961691454265655052154897638002040730472441974115121888657144149121982682331150713460004092510676811435112180649856600592473052572254853613685715731636098148529582084141638650469265500120332619761482023642439485057721719879930965340670793211637404743284899615787900858604605673750299961938972777706012933116830940450921280806113960756966720827629917039687579456297072069157141553702392441509083168633120442813102624592792699793948561452418282841501259804909137879821632397730429268674309473451093489829916924478478062340847136527393724898179823353722983695964961480803175216979605874457073300085740295577919007406963637942424352914114609072867528795238674520530396393769539167882145461743380181545729016767393915260867921309751103208835233675001126553226757665148462887738941974630594246936903815733630518728699943659411881813700717255702588156621545214609474989321573071203250798644023160513848562472872730865543459649078064072321599438966022221393399032775098863201706484637542214135919519992433764140895766136934915295408487168384318215627705504840302076148700626979519968970946563022427595423426496916290538910962293815312349969765436720529588900400976719410043089090309679543257377820385027678485857017883516658585786335173754031610067436950522377239351874242786131355442987522522958468551282404095589674713426700188776545085680520865071228925646315455409218525544855432704663026521917196930539516540668848461786076320367315945007520070429317321109339002508825004766923887587603699590245936339200025693692171242718583216189316361868013388038317171604986113319855484918804007893790726551882602553542955680434069120656761178612279238669512715904105142570255173589809748323663071906487910160229953157097631386932490251185315093882472257048625046135116490711277417664841028550297943105616727844042899400124861037477685120322740059857444068855437843332857843158425176851805357306257886208886296899971854654782177913829736396684814833077121827409227008642571824347144783865438761608823178451688518101325646194432851429433705714506924674838315857209394339048588131163286080019589550201757912739979643384249381078185470855545031251376747074830297401931599902078816492455456694202815201258116400702538140543502034908081731319702861535450079472083711912545350254959285999565839385084981592838975522696585839004039122044318676357512744572500690417109686835007166009015666628377889123482446710755244159885596339583339694594335537101011873671702945562902979091588941067283433362918801591895113669170941066008198482051398505996587915216651752492955963744605826660769049426355889862818018246175045203085001661799661234363395709700663452845699860336346186631873266699515560189296504645806106644329549183851918733827334950195897866386509633419735188294528390838959283562611487471779992912211038185042046628106044550982723725821330006139900189926941225571665005877390546217506445319526773525434889935304485610259260884810984924230315856631242956675202301426484610440058249098003720317283500726650899485178083803980652059578895725003314567810292424871015341737126991606503098352996455792086285698413025911950835593717527768371801195634521640932709284925743319259485308066883983277259797947157423891959672295955593971866603026785277068484163241019033401083145625904805046403748360437769423494825400270897413169018596717729718163167264808713669567656422207787136450891150549748947038777773014517132420590006554492373338862006017903608767849366121014470990132529918184506411881288312868883200342447779825188769322174135540464272294334844209685620256565245161917411539831745378035929434218636891424706597503737812123958113855541137673580925988596624355859869858935104475788351744052061664125781396051816065760673524309200921399932674163515886064350547737195984927841045404954022403513682733908720064096022224199758781312252169910664235891024714748015255701259474834818040007337393159797473053777370612077605399783942230478027741424154251260136551191680942001513189412560423885709036283680931530442503092652822273089313986919613040419413078953805421036487883663837800444511420531956578935917895697505570405170941840282127686091736428332672415029249319240701575782145563832079691591436581118392385500831633979991969667588156772906505862604706166593971015702024853759325316532257453724920372387133330815409733642879952714740568068727663071394607808244557727909355655055583100921788565636991863765438190177436041640518948154186579556550293669609694155486314809196690370393090027543545081226926648008452169650657478349001798688856285333956370543870501717770264170065742707632661948275211731753780487091163290573721644006336999533922791175881871177628059112329335268976751695232499031338792721222088414186310846179917416539688939445407255404507075744456709613067239904605145898178863119405250232632380194941199469223892341531442286994799647156373350332683751972999542884013546065875921173449423306574885374661849942076692262531562979868795113268726018958011099627878689856487550363836336219073968570682832957817148607910275578346293995740108114203375434729063722535336771747413109843742132977689997881601499068312036958669425703864869559216023654273149232194369328836579299923665103531434812417711840120997683292359584980262770867297138094634540850320522070355048877089381767312672259436726578414442555890271400107348860927096779338611759773604577283172270343248599029670527423541877864690990792478292346263763610399836538328289027174261840176305931611163315197003697351477760245945073620645841212025293030975449658725406442328581700612893525701918199803686471633855766730658144768109206505677775613240118471835640410837040348519844915685375493910655953239950552517868649152027926714119537452573872672200691446615630694644358053467991937695398370009024281496352286639698731350226302469730636326647753816125790341959807448009140213020621013355512264859476332161401618613959742085472275259593779175229333303733673059609641890970368868513296481096370985739123054602543025294046303301154408077546710043189142019678369420615840159130980027588369791184725450911800908645985732104800803976358093737920038386107267919267747215152869529217349974459272994541095224894971418913052529278357307747395518263660434423324508915214543950974222472210613326655100655424702073578566463925399716903494828519360788344664302504324726343345824034043324165844847733751437220660516627287755893142432256204445550564142743939710227047939656171497359637324671795201173086848187108698636492911703174176537163847450316992305724071687511027232395343313781961772958762663199972684578092154992901688382864752553767098486493368101027293021067533248982559383550188028424774912708954868468532960649594112310638364461473886957144287309946501503994544962621158692779441616003192613545661175594322069643567316415529194932207359903745731159788260099262323835388068203457453563642231778852589139928535827418352012408080915543008904520652189960471687488610018130323968190969649083597037736139657371395625393607696794853068257995240161184303875225332801627355689720568081442760514426082546225033045824988451170417220707981181264097034333424230811212906186399698381511445228439872626904152482330621862084777439364477769070821152473278835556023672292391902983530682085197224213056402467660176784017215934907503110251674717292634467438645985414872841006394459024801874348590481883197383986423614931488508340610183590118654140260592288704241226198751107588076507089070920830481776005015955443678125166135623003618478406355110677082946606054491422708524121686185072503090377468816382366013583132998225664365426069583054531572200544186256047139605622039626583356551396205476842672239786096177171504703003399797163127207502754952153212397605261572068691566313205608959750220783707487184210528584372117601152916519243812731675602813139120407275828617508439503076613541724988864673956446449983775780776045126308223178275595638769462123247389335285830623433755798296018655217477589922302503168789176098312271841019699576978055356749704030733180363130497468223287735984460870318000185366398389745740841197408635538335524297097503085075009470407902996339550993362504915575935583087488073448747437076224943068388037964168757682962776004355719349697243300732687495163151939981605569425862909666965220270217959648782922736861871578896255137057129651683501776361214004321091577175557139479695769824446165748101921528263694308889086012450616466691447828482053339308579599653589792472573691225804952687203923718978872961793026799470554855090772863862965664894921684137034509869740711715585305023691013825337998170842388488111465641168435213444780387769777179493236685874605146403349551243409011395612216121817915442507398585689136942556230940076304703899280420822549282975258485367459169677828358908900038895204856072259462426701028770592591690385578078672787675535029010768048631048691993462947326646012592935443294021841845664864498669356848500738773600165039645119081060945062928184984583848334308773092784323115942006588662796335919805474595230805546288096645573819596815847691050551299370588816847263831761967832288395577824961890410529684859365352504568692911317489611929135282393313016618408282241126904142321433567610841407361879985499685773846580887969771586192786792658654019255441288082024044965469094641745505005056726012309062896731882873126428556298253788720009635909896538851024949220038618649117521827800029153585724560606033524405976124218480140265860090551259580889033655326962092106953784724986983831609941607826692787092521758336921291590382877294803717767958577179451364642441880342631817489404483008634886220955108507479213447554584717078578208386292373956769466806200999948662048194678308655959172551765609525631129226634049592158363088819228596486245772695383719365478177049232399900144380965335171305149518153577213228463776636754801590884182885836446665867165169629385416859550304369302087773728853353698335172488663467805868303551537640784727812584883219252369518931472916751811737892117246633054050301525888289937483871906834071570239100334455465314882365487572997757847638828000981393718989755189561747878635227526491170816921410634180690819555149213883841107646752205832724845244997327676090220131591902062299878429924677801624981511358157976174290995266049974723012585102254101240626241112732038627204649845297932544300889596380011928064297419658709021709732502612841362689515653035314705914025898226682613967206495084464399550865673024528725100522012220075982352785780784117785000445485128749336877854660848361888099032826945951916653043987708774801668154610519813184378579197168729203748989022176333099323534694325183519549068915409794826440683850473959480667188372571011960828721922342776299631548094204131326876143995091005755470064570952892162765434059478292929376518788418597915648597894301560822672429357854548911884505054417510834073981498663935863048668147618584370716881204236618712503977624081958345863391631885271142257680432542840853436076579794329726835132096787350425150526029472072351146087749657282677892883518959295338535169605310943730815828051113704915131606522549881034242384616080575677155323171109232740398562595606720953009154172792505156596775170975357603339999318524233596741741232366676652908260002755041329401470597005512290386543465476300793284210843677247631532110110506736653065183629500166243182989587923845562931453828520151974481576141747799736297998307508506015456968503603682924653509725614751051783397206245216879292485774087335761985122077052657770954388214641325890174049671299459508860151459558353734508520493156936151246195024326399969602788349573574651162778708654133862307570791943978782253056201650463174948390321468530855953272157692313083932196538475375154924931092035628597616267364470108895233146248395008448567526726616620546575523176107868512084878645677388243974284546413279696667550553322693362099406708624162269003458398182507775418260468088254597776885710647090738748661146413881885577791451929452457423343530338329163242496650008658485621006649323801244946727118546197566580665521915547733483747529459092801034636004082250183109646335083857848398663544897065835111520998018550335466981541507375377433402628174879621595304715513233673319019299352976402129338744146794889064371066742523779794667708358040595473931333437042324768325571927260457762413052501066319434505706656034635860544466182534720538606597316654856616532237901077565476619646720684377828250164590279644037911888398760193825466818216544391316758158055525271491319233336855615408077631664241389082731835596412362591572205983872229294041868953637588830303018799540914382612698992988640189241995370816267238065192247727371859776015711664740564203725168242595587290546261405815238772954182365620580588509936437960775978803804085602371087222375929453142859725606535637107143732067309526633264707391339099124318459617285137973537656997308272961154948174697841986974833627604720844239264938791938075116527713880956706390467655731700425092658414493586168969377465457307009405199659101159678829397694151756111441949967400617019126257428400265655855285314622433885817993927653304401465888013752898403498459261201881580701046576065386614861165249489085274499115794563219674284609906737942379055127827491272038189901059983199836312616547462915235820734771801389136153485432240561948370654568546072906290577277633222507287333502108629910530037604704112097626746992060986330591415923502820665485216099796631201142995706825013576580299059177429652197683937544225813551625397770374795460917912101636166673753865610429762423989757311649913759339091854092352162478523814646130278624389786620671559480352846711221935893931562708913161087124680131376628501276671402241999528484050349279254244503000285581471414955173125997593210193689178457339178787053527815407376130402175145999660343741783507976751113254794148161862213846735405274871780843436578224149906621961452094285828302412933629561996312420733464852635916590145705961524356928466600878709214928178444485302909218562351620199197605058042042278018403195577213357124155889281093880406017173644801945121828153942719709028466557461691890179358382848963489176224396940290885965289096175453619503614236283790017750375122186034090556367845855095137726362260937971999231838642644290542138354129364319695210815952065148119830001523476808791612399786784790197298457168700309195303402892343853136484814147676556552721259411587156391083759373708147422330081223634127434932852291141648569166645565655529568530810479937097104538723316666739012533374579552968017837999782672477780991303805566209580991682477349648766987239831681015727558067385176811328035954075800988168748335005712735935149576499541443605462170701533990984413617194770329220577273345733871180926215277688709094081109577948102589021066227907098100628279252980193871655204659133196429975179637220761296967674015019048695490299336925321676786518089027425965310600357278374901350464791952436866193053073946570992847027545333916482870918386573428577049870579192805576644775823288048143093564251684137991110420557233758526433286422672392067865821083502818944634028656982860261030074331274136675822249514401655154149693527874090462176740047761873286656675955641660887370323704217752978916782755406265845282955517706347964784261941011703725776649014637599783913851741390287376788381689024969666231589657354937056539150168583000217606348210777510771121616517371940864964979293194509918093083641665605892447341978944104702584951364344513706578502122912074945593065183089865947889954932959764148396531512179584519480315085648147846980835485167215660175773032714021220800581536152494137053620183779468231852326017733972882078465349959232923006939007671931761178374172024435361800826534315071170240500836511999418832076493869289599471657688052403006510657653823659389664802879966367951961249813032897778389715693599003750569795799297208742552497513069606157295428867646322341662715726086281402464960087548090054027660127273974218017652096306822824689858401948030661236535529610411299567472585638742232132840351102345924216630556423324238808219954829584157068873118454560760619490333211377210680753025771907913939205606896654653237632696332439327475016474623739110069941917977952771903258886721943992274217825371708884667741242950116997178770100040967302257662284976719296171414556715724018710334380121855506830182151963111214385570755123412924731772740049878879605459723980328249740080378823191869726942227079490856115220837638439097073485447571286612340808058600289959140192140739355824350023202142673942447130892860151969960968848327716050906969289141908242955222965417625958375070070455248325381894120710182929189457394758885532591591957897676091287482752602388144846367319777634349788248201966231587452812418451899783178954371432908002650756361573025035776567714621453670767425672358502683932799858784515245454410212178816753612164272953755675019974838932488830623399371015492803094224725384556129585471312966447216290659571969963313563675715402177964577671913382644999365292687066728617082717277702523109409343526486469833952580233657362752031092251098160207821704950465967692664348079263640139264445948851524039995954674178312419838422426410212774992614878702556250526192885288126872415444980826244569936547375982323764283622418207610140724045772299116885036497315283615069503415416128001484153003852015207822081447728090107214911120109627786690256912685805242937326564168357017098308274315216647024549937786836275607708648643534692935253110432149710418143361420821411373048511112320809738271695402294705021175521204253804774565967115439613051980295742749964644631493352281705855184488902977616370596750166313516500377901600764779597391268391582616758935711277302012408158727587138048660793680462325226866523433648147242641916208266699142508494612635388400918966623747944264252445959135615178237910212315189224050032893632959387437058239879729489313685659993555447159601540855127599034997777416573466235958269011907195355711564721418823210011790706471227142071912910162952366762004943363399026222231408382710613599096888786321359566471575614272849952230876159405675713038230909488061954542821798673331886920147664254632923551397379785975711974539650634077098195060170334080124819668380328999550818342882256435378938689704443522885444404620214998209884855265888844485597354234479720759910038767301683878585907946402403439742164256355399639206704019184196290021926025761834100759526941588293754668449278217791805131264978600719733469782343231770985373417392488661628508968147170819954391245735161630556324519095129663271868560733175539623636439940030773954704288832642081977265231729833962792098366248087277952414673746820784950944688689251909283799458433144191409767407148699443844094600704110156572477292130268153490019240189107886820528462048517649801601260764602625643388915533368520347862717440405264518645724641375695433370444172540552615061139043373130858068331371387330223232724813162773066506895037644187656357546835670697870770714462775827001433698936925951271647716240543037301836285111612313490868963390202786896973842767809517794448427140584422419452591832194454047890872493858168279735822584559211409450809521617910348829635507090504909086960381476731957348906517329618190111873006787144512497385757458492136963445729032242382182918835653196742886077919896495702396528389550098917778331390475211096022795665912027472461385490297749337069907479320056603452608616351331168138956606799733460752886363490062307911353866991167071297121308079703351883493119515967136981378445325764261747331767419549351145277345564692009265463273172003844117085454509097569389168854130882090956478823900165179358961912325458109406925126204645677881882365040863640101604759167940443461951664179599646235563215380353860275952055478965193794373930642314645557742223949560141957300763930550680160612277210490613723305568968824451011830949121643182178589821527170871054751296801679438576367104962779832030027557794691625421953291341992838110714238495520023082324710244824469727471349013893039750559363921856425083830860190465656541136918054424794634263926890782419461180405534786516797745275057611312266319680746438248408536919235170319593167599235943278732802338674961847487651041513368642013385464911742839480500317325828297405133807074896592023562237059647570681451702042075943107913775244702051056614527323183652559819514672839658768134599798720136468711274498219331976751440203868317099945728134219510834747810030339282695076708010131654246376293292676362123383524271102993448541822159961656047247353542543766070606322877334107952274711651378234314790689751842375797987907880526834245044841474661446949303304003649331209871501968267160429885880809348823325595768953475049012215955727327665986251322201751385538146882262234112539638114984080522667072186575030013033756430130628593500720723288756304105707909411655574250844544066631878080054798123320516898315720873472798780159137088558451160612012580037460362112984346307126955969622797714762513671992268635218517526454686945348113535360327449984022714197640760491726790056360625281733653102518307040136872267600331974198887831619202387248797264871556494674649648142967077491021654824050875621918166707234307613441984595264663217201225552636286214361230040937586080204858742247038124378426478292251138515598630050937227864353716718106853140048447664017223904400117533210675788762814646339112369762816458265723999286941816601802180184081926767085223845651078778222446105016105749969480039487476513026684859716413187595686541540958875607255424939759613307771444181537653264977952199223047649042448206821534165144986076336414569577208747608616064524522146816113802843030009649430481146562735323915353906426254133773804973848816688545175125465537097109597546706286984278901658033955108975481659859128102505959243122526483556652312782766343182714720317191549238006314895399657251330735023242644525564824804122927798834657835320927246149683675605799199692465825938861893482174927131805995324131744697565359738288339147383700190039973054791306212164195376107886564296437992064428869785290683541640169521151209822996829589758727367370352914543852372930974344815254163780753869242400123853511662620638160395768622669174848678688733633919393365901430254047931247173838021784058140738989307440670842250580730562924795706353615164160052341345364174883135763031391188452812709917928042174972661278076599933485639121733725306468900080732975402625223113005714224589835139394824225454850746776858194448074816885680387475233481501043677424060786286649898573428373138868285560043523736680170175645415473735125080910280619245258356968739216837992347944351449437896739224841942890948720731332815171174739466580940581163396232385893442939178837582496469100104955945620331464652480342946251096764239943453841323451965049403891455133302622715073771043205052567546334879751569314722435162592388020454313623814054115010417163245209903052780103218007502674297464617315784878984198508744535817077151831712148871254532194621466077250695344701714326282818839806531718407460213301605002799641379085557873298909307138050297412491867133930818156882466128270782396876397751869403284931609047570106536077608514952720997151047205147816509814025225190793826823606638130395471027784243811279845401110515288465117322817766564326778744377991629378985714446932081732579053835143833586988940191097619686487868804584608834550862210606653134039074122396314071420127072678916421496108142898483047760806713260974853566589480889719081906753959172139399603525354524005621776446158037221424276582405337474507376657326685001927680437164532274274153329485828048622722242415309576033891430298874115226756365405377787901477082135496954968719126103795648255388116606274398293867827070785656899788701422373103367204090736763538567601700684924306387940213183856310985834358108837604622420456542508113138849997813439340772263589312609944507269409196022814072243672177386492409122670126489842235326644276602911785994698102441606555017528548267743663860794669042643009438918562577242097373284881491933072326546718994563510014935374232978905269365561041239457446811172735965295783887391494550382215166606639654097092423913460679557148442365142664705466569522929364644578282071979569393574653815567265568064326244620313537937752920096601395215594164462734490950198101300904977331943908101259227349826390022395123152160175843661534555846078523603293479570809709066715459714204663233946521426765176379161751678361604833507125443605369586008620937004638353358176978623069631805202473944463453577032307265347023113859128515352471649702523036019919276797851323906042084414260076355831799915694550543932060346573538900701360322880578547697707818732461147573941381040106744734770040891049132976808048543759849875311766546969266496628492366052137122579890141845940757093235617690722060774485746425303448063739004730000112007846637582359520397713135598137121378299162797019254802982123366278605625242821591071401229776138437561738250311103104084191363002055401159903015263386744516817935943677850613143662891402509510949146994770667313581847799138071170844619438690737542761327436249343031630128716110710356186870334295674176748778751606749721679765557965541716996228619138069143306668940181937639753866225971883468969900936355711649493528146612106948137789635836095795442581070311871842114192444938884090010838097708442542711571084593662808891386161984543708562576944314838344013526675720429434167134205767515341544714358132427791411655927273996988647547162146761662426893961778742038122366205957155924720403193822778242982735718417413965442305240535494034208991033394289954718903142447460954064728450088158827109354421551592874383670219517215863027893045482531473687527406267862880229370083352274972508388608358709138089946681803239362868992715829101414495211034061736480318484797205155411310022242098817068119403619971368003285297629974502270634848517960096225383101436440579607648699146049204082179594902235106895130105628690158550940278643547001994924466483786414232341393627783616211071966486747091241202773051916487355920988703643931433854590166006309607117570366311207663768003968673014546802067336455021067336289786900619425538037340168227542374664591433432415761143438311651420714420988513132522511640242212302341388176470047180612633136134417274894063593521002934534058630265028982159417120569742350557979816822409578022818718754849015686140583674254397538917677189411026021060355754699898542016879638627982869974199209453388919133630806358021750249993189125043399036310724660113757741203310931512320658321340742002672588565110998359424641215469134313696703094213204763275688625468469432808610982429616771342085468642496565659574656849444070255853421725957261927085741910262932878510720047179661080710316011803685022105338713256963652852488425432788452478791583429658969915615410619637088392608429826022378058459890071531256342100054587764862140173017697021247978978369771909746488267514637086510488325464009937761754676910425460447549808258966794415820550905880377935747177846297848952216308054122382456369242153028816863042525821246655679900762843823584338611599293996477656687444328217116181490553588399241543866661736269916016877882498686848884349929866012585088413687270069889709464657087243025523136942315262770167020676365581405708148509300814088959562606982403088859917299044554067647504490211669960407641306543789880882033687621649069446098721040675409382351870208885335794042010916318512902033741677904770685684968725881520641344668897482804534595895170336440098580263879652481832711554210745168927359426713559159085819166855126269491981967587586243213058428287894396059074668097296167438997891254618145721510062272807077748631991849867801148849761601621896795687199037900349794333675818358309227184023088535960055970788552767620988256231295660277072818025677299959954390500663857074192870706389948836617565034841894545406517725985581830706608208483356900050307925370762974086075195055662711682820981851939683561619388514368021242875802917288450168703385954615605304574819502962129785519751135528986149560478082996535643852134798680603575608857769285834730368782434749905559745512930618289786019592762633189932428915386394806078000849450518677463719444781577936643663516601565445371191280997442258081706383528763650038805377030699009125155930458758205024584489157139334559028558310232733354174441213333370607444900848175076779086446485623305233317810259069297161597341463408162739095037241206521041634322057822809327616414030155926976484263286156059263668839103089617723826092633697292174286038281285414324539449731236152260203523173183318550767567943082169082330830934731387739504864059488113340596891270182173351582817236425503482760117766500800233456359856648936567466362621511647047198045984618604098532391171749948753182379251084110497690078239608852496121413768659002850841102394266889243467959429905620260264055317856922637582294132695595474451212237380431105235673100378948312282599847144584629394817432640476168685586350099808933177726103605769684087866461171646062495771030307989410287491799067363834667134772499214053403772871550440285524981263389095136689622960691412190366139686712106285597610622628708140656537265462443515321055675282703490056277210531029291124505181646530665322694443214771313741135649082533869923541712171172252411976549503770587462338856836324662455381559048398963516439130529226118905886222522249493720979902808074157876059381726858428900970145310401941920339441627947288055618509384957403389999609264179266414631961213900196243885158539659267099000059441690973264302647807980133281627271857881013723776775674681414600012067987002416326135149362030259661132633350745083520704585653848592405581387911196871316813626113632397037219451700577215178564828321155288579184109887540699070116059920931411886057503560832373960923115364812006192962522324822110777879880098057730926791243188706618435269113343775037282351667903324152279248266957575111683455764600223341312316375147864253561033118122073650782588219423855092204747908830363470979943697695222765341888354253168537654524759020609681553981524918864240598796564909832345342997608016496307068395665602302535286930249944531315803868035291948055622195514190827078394101818961063527731102075342129767810295228448430233008356596458289896822031299901879093861841735795207933051269074653604589187528195073012885283431319517456617310901875714210601197606202367371505881087839155056843646643687303582678152807389671582327111953177278079290478347871748380012946643325981383793459417697063782017591733694774414131270783893797366850852769055588220835162538948480130820005037132409953419873267081586447169689346494174487878055313976598488319077930515355094472785169525495992372591456542951913693152534534852385477911479699937646483555061643203545511141041394204723660008861669187397404992922368149117470662455356391980356929840724969478730215738675335127889333910526251024927311605083523288623693888440622722504742238598226473744605492050887477630136281763965988265102845248168241242217512265019978425565268452619616236269229189260432778475920512142169663923710577225388302027294783175531733227487016339444684887184101794802031406071815114397079297487882727793237031600776057162070613345422999543466085779111444703930334725827902830353838903016026850491202229373063282490534698338696401856386688483094530686838218791568929202493215679591573344755728664218654138017335004256004514308163836039461432821288331110514794202207748203550070787051984096964062149818004094582900555415375016059486545741214601532318706360252374640903319940776389992411396256443703603206198892880349927190038698923117099451171062145069975708896197014882593489724710335028551463654124451499505743250253455225864384721734323879591859816382453260725323844839763130072967949664783862389783782103379650261967868812287451114951331063136743962707485622283009328601651318433930292823843264911048029017381843985578145838220086266078285642156647204512181054060694093168977429006636417187053231545818376681192500386851927040086072878209490728797352623833884307461061063340246413123285579153524476668130464064343845007329594090491678753657822229537579200813780477110915553562445364412089710815254578091381224109315082728258145270347183825896815639411780437742275130987754931517015418326777313294984915386127709881100650376621621455709198023094578942138997965695097790063705657140512030864650942845291888132678493015707005807924295062466929018619821001363455262012188706290089317541268007731078801086956150725707906200985005649118138727189247833813691856709766137309816385731840470870619998975827864720298124363714713041705456859330016927416609940254821325078768285092492653026003036500128256041774640257773957312206019564767524699324898146083793637967243233807782868842178452580116617651634726327248778874031246159235248681294265561782956818008551401862748673110007456469812930322734764603478996690302801440745805139440640747073794082267844109859082590412016521595542492268007392315240942037650984395808294844052528119010219305364624637391164870918655671340124468326431908914234868675538267008541134537357434237966005269579922752659885128271924208167646393245808563836856926008053855179197129177782348598278197528324933300466314000954971886534241876478697510307679399093959345317290261196461013674926507137953274582799891470700894884763472865360527942588318031417952095147681212112937897112062478785823970324614638055346369580408619728439820940546630651260279983544608242288092970830890347895724881056055486590190533918372956840661236657780157973350271985716599590014480020448242430541206839821037088685028335138576244723870090336818827357096397947047860407761745340470761318876046997628928455498874192385918991052905488329703736825679279430718468326203546903115959936938633074481178146448966131351191540476728765903117899270447744465618843236631090302499985783585747638890042057481955573403672353088301035996814953726647557784918798125681662088131351250098570293299255130698439331792325119749528757364252292530711743638218680414702672648740218881727546594815440408934658326133350349491045942188256687947264598327618435899726568565832003225988660893062961845057600619424190854805295920331451497246941338037716686599250636818038434409785404720957174376708897073192510856499797244660775535862818886157626420745789337637826271467332964488962912356651072168301450690894450190603932695946088962077989156306709726223444902597080448884858679093644991256127942379288833565571100397072138295792378156547100732102241152415500207508419676227988135742934614390363892298141481910202298195470051297769210870720825758432526624517189340023523864798206918903363145819752321048626424372089400063961403728942578441201568320742010556490607457925335339596843692910648117880060994663401544988943947552202806889656341639586654178467590937335005281180811598002727639739725594495958088134242524740053209561521131105472840747447172584252069908108792810814789126327801380095673093866821625005237169377109917739511380703225801745421530991653945118892260073213328392156991276410770890160792385596452153638610307845587802225613461646113029115337508302469739396200232999068218155880942558258664905377179483242629875055913458540778996152015928763546821622133239822202027994041091995639406218978286982040306157539721902010396115206875768499740379142837094266608547574609650842186550353766690968285885134022091705115101997676905641986654893364573161319789891749750981032145003710279744902310084267140813618803817595402271338117616375462652006498742214086470030932142707756353455857475099642881364966766919269676035900136107134678188288766684907609249714560596628734618390251503957973445819906962099001377522156394624446726100375574366355814061919172303215521486091522659941118298674830175696784102635285112999093439251536285974362068773077158716144594408597131697930102718877134668005175459694901600695166212308487728543608203638024796345978472784557200058300130425150349136165102427768273664037328388952692502785039613927173171593356848847869898122969398316426217026845977595450794745141934814311118774242601092254564848420269921381373206782417690410619004856405341419872987875128370833207490220245659801965220782080908817986934154383304642503331946836806011140598085967446169364811178395267024096954918910485108403377817392478785729136518736156992779326993260594731017179696725728698585680670389378146511069985708581547547987598788863293151861969028123846335257041990643142982627688745952997244008519407004965439599956595844036280715321019733932414563235713935841606960353874526990124604759253547743313608895659272436026041568444348672132277904818662448832460737870654462737000131101818499093522318307826366945594821994510485763769502248666727442502426361824327266051700069591671102116948982041545270672996866326270160498069558985060466761258952261156127581567715226190987002105732488069244612956608499755701258995738478576916709833776018426022261126193997588372256938185656651292312646455371039075758294589071309529407329412350757265765332158054677948491770950814296970803652779744589292625467563997412374020502114679822758962121115881689269739265112031604043908517732219232390988655217661207956243139218121692984879143112264875237024346447689185581234835545735229141928036962926514816144669479557386113974515808093599777158751890222227709956190456298007077100853428249339039309668251370972803709541501891851673185514527843398453523833860483575985480455426771702709347479989371656370114827782022004287286389923071942015241490659609047235317564605042783986453759477082475282955053886572353685642049925245332498946722957528218967781014740726176331839781477999719582390536615301278323757776316995202051269555121784196195728422763367841408212882438218632584988208087176902373850757794819624430803552535767241363734325237133289310214516097142547417750027485401482070053919190389788036422692546387237704015336828955358899260518421911206408962414289267600721138701596459191467210087128761260858852310420134414700549515916764723266662021282870522146939627853098234691802325071802798506114308135315251078012905762354678635050164279639178356869558122962208451285380438939084210229811738951117015546732853560473852019127108071744040618692113476457115891750627120437339685849950299965918194481687719439865053412361095827799033869394165904602221493390375154368725775601109667361536903871024117918547501042477330245807900134540693255291693596327346387509264797986115845884983603998652411424679993125458924334629828502993748961913671460329976307903260674829556309736842875477067990005278748816435535426302647570992249821079941162335006742955452946768046405746717029768910191036097783500248270940081628580300424848316636219566809170824663747976270527971545150346898832696105992773180745248434576061315117661617888026213307793622030620971963315855015953892290191717477593076687386550008465092114245391834354760036433051115169352704725801228653483380957487437324796931091101866611586074422649194874658405312695952714376498069064956077197879159318798609372172857400473291364612342984982151606577245878516908133480020895736715939794303330484329803989152173722507585183569163928501926815392753844287810843947891495663091772841832022262210015798144393492790094000931392548511415951019889522908736565717841913552881100903015125662731790308317190610404203873864283293256985627491489680564239928619626780772846982127281182704129155782262673552026928819020352564798659041934445315942085265854036303518340514866471428737985649957385516003175617783597861970957308243308089387351372673727872393392434419222708783819183382800631389586064184339365642160183719842630100371690868392087793586194991609586597936461243903013237921448489660851696072446009560530553365858440518183519442733643277089939331296473260491693593174256917608927895305456256874894342680008436027319033777076270530109276920444130223979621519419335158014364871314838787056593148445808974599510617791234958435101856234226548178846204694245904618165670460056789702010721561532369510384628486522171673042472153069424782730059081521009432286532548198680236216498337650368315825530508369048560803945308923267270373213815322140426605420207150843515790660864924008715819725493005875070390094597051815740248241069021571558257909810624417923640515485931610420397199922021782832931373285106321487422403710495827650841538467944060586404332482363348936280078117608653915283469961643245472655335092515359094611619261354121046683863562001502714502895052828684745519893807187463882460485375484511021757917039913973565260065734657502259065272193322302714114331367223210519604981643953983755710677189335231465037997781099606261230520990793543094980489587435270860419467163155415544256790370112832159134764656670584535015781711221281184145672068080706762126662804247972571226462396497333670037487228661907892300645206288431582825771815736329469715500703297340659316676956831180798828053178337963298741279435223141947550950966743768696414959067983696067923962946218226771911748867136581667866890172859413079558922220419831999350847999068882911891027078869985993401104952969905034195853332595571613859576989263974968901888946779216730784137863967773543568588410141537671838830635067743201106020366480148420122995683249338852503775312496191832427937559326504357276898169850638386843742373603589813049181939893714665974493951409795658615095934521927356242897887461994738522294240010374441636087661349927059095031829427681425603198323713827744259333338145218785682617916839518269761900049933335089716260771733713198048013637506185430231198159681745337716122401563811130449711282939455771124214368701505787420212356275108519676223392362596841905810858106327060305582686698803059690779750242066092274375118875510516961481047677428290492663987144038615675496290303700893411850773208591522019625083527224023387073445259178372718276615672457663570766534923160457027446326858879425370658327327943977134036902274334931257814785646251395640105994292499319214276360009107600549908626882882034797976806524600916623933124626286201922276293273767191746356700821393721047220036370359767338786368694975791703176308565961484989129714178152960942328773745242285475454067001274202571285042714286008385900888922503448270096598616584987879888914033086610733801914752478365862020954765795614396285619952187673330425598422291420595859398666393748043264500586114412451914308405298789033108000866686441223776661544920273544062848525337482373168662023916148386998588815366488365992567577491417419306787175114609747194527205976609070020939397024245247849244859602771200911670366274092466962790793609961477009423189405450711649094073518987096951962222574405461818198538918934081323111061779986106936550523643003413245886916921905072582787907127947209492135782341884294450382457748797933008831772350387862419164752966248165790933423901433607741807715309427030413964798423577747017718307922795669015412951083736810866711093214305567242825680574620144023431181580579234500326391151718210318045902899901753296170170031202117633754673644184457217184551596448898243896283517103057594506792215944702524058841021302800486462603488004446215026262667286887900703840967298183300807104061611446752310392255357148671223423198880501197964507371403882207250004387817638672283983257307096623221381554122158404299105992114550578508135665858262600310055914255539503694850195859620441910613815198471205714070030405774192521121638039874464280967156484444631048539285565961670504489201507860795216595252314332181212392180760292649552201854306580574248305613529979399770828958993735316092163751555658142454810232543460976588214773216720378570760238057257788794966751336620173798327560914727273063146868176196474742571892669022224737119925551139674111753902437435426746872731046249077979464455209318914841002550348540866310022288129004753038949656260927750011930063790397921547708872634751097368861979636274356949875689643864776400779567262922653410403528785707698752186319940084549110866591713446806265671954970644747252871603777881753124435108531995895307172907825542390254257842574357160998671303736022144981029124691651811357431739783746870247463801730769576137691156924028274960598315642238943940488337158371392629382132132091831128756655859344368480882529147042263890188055439252539035367144311972903743073936600941045797261760823343268260012628098276986300974973061077380948573067694780885219078297646059441789063499444943074655035870482088432513835821858163077366184976610198675937780369522071511522658468445231029159257384990314473091046042597579098285793665568556294288743745814951564499726845504230807921316334632010782013001583332541783913485613305903954700667222240986858768547097618369136891114266339244037842557513621643964186739616918911577212466680101318734894558538617168435777890580717976216990111891170682742499324133633419647888794352449165009208626347310070294043036435265008993297968951087416739757453922965004993133647938946497885951845418617865977469840139160636327190803549750513537248720625565756158663570066555861792102922782480591731719490521969306065812778694110054939613810439548966102457135657045362515370489044147554630050131446302128011674126267519385771875740288425509183756771272857723856805507322485915737958053755601306175727882221571949227173610886050233809693042995848854512737593429336916890462976064985788853230288773814214278952314524018526757332990044580928408243956084776430848692519634328560660748989164054838163554155261929203514956440951334771014809519423649091071242743734923614428038616337730789573457672443507083521614081454162911055908998538769444604963929653980290683168110307772444583556172739111700482150507550814532576797767865030067525429310610279545484328643575517780303276128189671101085136013323224392803598490073650660700816490156440517232315743786536340994591596310411764233649206931216724653511913081748856012310265310968824824627958974707313392979735770478335068822964043262262196852038521105998224089037413286612136272955292652064164882394996740239808959557185087485917264130735478218538886084935849226016151572115127694771999792733724839528983595664108346202967142278362156050469812756131882590661920060708155738153149274423312269484738845657972975436018368828099003882724344072746375369819472687575161599835082238220736924931302695403254244091440604251548382106824220845966928325267038592468033724141492459076156684297482769570060156840815008023558754473596985808779523276026069494385734662578139216197268971038088622134356715011239722152904807927788077596261197602861263791110877174565272703827787636289922242934417739345143759347420175085052942067536315619401073355155542696720277015364217657022517239474317120820617478667023179511135960086467798976616600795376226193878138402081069585611070906661802775049653275242170621588128790115733724041638518000106003367740412368035156294137677304103347166033307020881186623608270103307277319195750924676947092749645536802196419686524107145910003513961159363646839567283136009651203816991167572415420907653877376784774384909709222149765114494662766164752340179665137330923017960627717195692218324335998846992241258487926160233865881904739905225812638866337043197032271274303474027793641133037040724279814330037794654136253116887339428272479315824240944792267585088093396893622050154387177596972319199129506720433736396887725631128212362809638636744535492894351206486276181192658654038378805062467024271938821423570937001641260476377045555941675156081980342048466252147647653525153986398445318149877186219565275191949879366042035732907336526370049450988610642402751258999519169944932592817872335480196225522098988842770877352150697805023378298072611167401256569903393403348132566764701297238242060158268351457446980911658734844252437556515145683471266447685885828367219578084299526421710709348633993191437959756637263575434713420795304211853186020005502261802451724078193582319345194720940357889382013562643696800669747449689379598413774456519416501095034356842337006983436935146159556249445536830034550643605769584959192846626406789755109426041955471638350856175157465958485019171355620087785905755247979653908969683008824034932841915562219981326102928979288327257632207040423335233391300940891191343899210964035613995437082798978052721914784351669209874632369581400407599752002030880376324429035673786295346944643871245138936594878969654502790137669203608118340355557853925330379954075163382411063744395698932127348492280566255537796953459996636631617716072092610323590827390682536314693269097061608760871646274482354960686018913777868488250910501052611444044727235799043436619100053758822678099419824653316416652389453591413960744501913949837601140620442697043119584358798467650170756609899384221696802883184917324247104659185507431943513946150527535924594325526277951956820693037995993470799403135563963421899106802279973786109806647867780106181721156782233286323467748877222453903283888002209999672013622505406649766837310485301023988215995795890314010493717166181679073783886104197139282137102800524328303794728842758573785877633836394217940547101778561597836512738813902887681658689869287313116766412989628876422232651199519157619301532433913485402116328021889347590872756385858712751917944374156329934191030815451177962472589626481340256586620759563145925089305868399899122927461891837174033414738074386880060938559476239798972717225143460744725386133371456751734510084642862870937553233796707807832595544489151268241990052397536646084353383275891731068504418348085167762983924440007574508714478463224532537027887223504705637323305295309953199028748700261891808931624177784033060744034408998977027933810388980145459751184297239074828358384072122284123596154169093828747824195556824260934373149020581030130802804402080708570685624058314665817263756093201862046121064898061694167064050038972598616103984922997280329988638747696582740073152051311009290923748362110548927665630551684372575560632704888660380623675113746865009933518442694606860677160586956467490749619286562259157240085177778114624924046376734349438121515220341222080861818647694406125329124532842579809917478091455215975836930078053149631428055771119084180299391258006588460293382230014853782378002270321733918545074324741428784027540927416545054468546047928098910502487435822395016445292702367444347664518132477580031528512746692854498612184978907799457711860904652600617496060421779007093059259352770325281413412439584776179572897537025046055757752323730399576306745527145464491713631055908730384155746847224430500977342332707031886399646076914942164767112531549017894511570978478176009751177985724202200456233454616506503900574282078159682583653940555029574881350628037640510475451592152022267588073153810249661799248989770442423983195505149383391392119305003359029616509255968743756550551261442906299092434388045747395657820627729325423469091492996560482753838196518448052122650383460205596725488524873121633025034756497050135308977189845742496514270441871991201419337963772751432671522201332103752857403790122268850603545073266486662175057999507795270010047354589203336747318028211305078956356848290360924703815929380570911719671400468767360792449354705493581822267181839720875935599228430741137299400180924745791343922589942055787995375206874069713741551610559951069327255092615171108943970015418750253357505127358068789453958361699666508749085391953388080537332263958191882509314036123577170328137520480054538804125930037229431369037225528863542308725748266171844131899790188929072266871830308864858014355686195647355385586036352707018488540510694567771428536047960039089058582791159588724941148907056785110702399736011849029099469669618897448969905662365789178430580457448064523576022474005058734126995604877885927973473136332690098256542425336114972760813351680873118835121520807208705267170883890103227297732658035126535146371747827383235749988545319432683612527692861055896340136261962381829815037191352682799607501904376071877789929946858525567862762130266007521194904505475710591959224071735661555500610634153873404618294147061622961003596797638844058227747846549539218320855489494842160755566226611225339347955579312259654325874928502069744727321263884143933422228089683606794548759698817143902934481939873386960177241889607081534455611873036694310353171554264572738607255284329166527586517613681694845784828731447258653632372246288106399892575398512623952568992341042074849464977592636479947658066184353651373374645611069271753278004179592587822692993980952763620609031936534771122221845784791347429501623932545246218806161907918739385910547289749943581310503508400218182504852268467791608856495622923681982694323023628607531640930631691409322842518372894575629114655045317146611967268354943981526344661002774229676956151020595132833984861175189328202338893130492508019007422140483566864574359044702524602630163440717367975714022476014727327177677593919467585612989243603223103257048165727294826645298249223111920740950722314888308296380599866027969208715581328807386674999000326582606301570014555143139733296618789896267419601621315208341002806743827308155348549512452431910406312415707115519636834824237927117271126764856860133326988974493299718366608685603070111048728437400889209047488640344337583461941271691351260988506375810170967690865242594809682362213915504381775135993794829924518370694703660569963389863723227086078411913172703828313961875756704516134406158079056866178596159840881400248318072229182074134402652663212321862222793750183130857915060584523345248382733652291690085224974819297565463142161529732185433017493702485558166245515789258409542754334348148660644904266226033435815337200723046495683700493741283374013148752991381255893101263964279854620191809521782600866335688650783341512044738337006240148001338503184770121515939796100166300764412316164156808625555951883671510351976736498867722421377252713591222417771757616325421297645663621559106137444198728929411275306918042612442660280376786971546065691061201950462677765189727944591968170262484113005707387101606175781154101716150483494950576802226480278156103824065303037811349659065758190517656430086680661467007810644378783409191161430401632472493616921327288135396118087551049718992925666560379175162838275993887574580575394244216919376718315642430724147478867201667661216177488549876321503385834370096083756422441057784338201345133183622833324018258228677485116271591381342215356011791010629281836873966292939298211016068659647663251525845726250795203659634895150356125410957980056651506172134340718991935018057721032712213713378290627803962637281301191010696539428935925183029116961334715474665909913540631712615551781690133720826025199972216388201286088922381531772551397657492827989017978079052828139257315970191814015319080899744705155145607074922104459548742508938514514913594337369789059489317189520549461818247902837798486890928538142810778599508778741031387644476214756766992325744468626640180482533976781022673238817798167380208557831062636509122507604042066226888046426467095795951151598119789422790508341758261131704612673604755033657362085069354064750413963051742569915167622356559417695530660786219389672497129389264312423689178105271167168179750578676474143464816420126698952521202355626848224964170285636447466957825841589344945934500842709528758006817028806788218768887020078449552909990276628352639559333626571820804107097591967359127503676827660759311757186255031918979745266346162261558095519625198573304038263200943886966303882462001063153554416201909920313810730081144070737153534665634526344762898334377344603003405261164942442718302590319748484699936822568466447097787318905378577434083415793097947126803961820143745353891935834994898235354934067960026982028742995153314580326762373281572410336035497482371395729226741943077894375171627723745456700630428787394075654269427649919155976081789001880312797731178204823019559483538008598394750275257427927303904454466670609909573614670928463388510167061179394394479126599986690280347212888534794604180136553319706854532700473864623205463355421893545152087220092568099028102593085454716325620762932847167769132105688944648178962273650869506860806000027641129319006631966380838054943221269979545376683925072737334063700831554961103761193696305313559760600273702884520421910438649794839705245577371081893644195502557125956845388521020525138166287412104023041752377251870861441096463720303893254992973717691301084205138646507507171871085570053690826691432661919107217509960014582754626075193042667886921460574823174037085123626024761622951222357172897544076823791256512490245979722116865164827912452611760070000574182973504914652200903877865342348100578634251996927019916291640399685675318294361966424954386980497761767506341701153756243977202578093884407385761626603057831766464553483552506023497581798399020923652588386425334206009095344762095840954289904212129382761309269813367507306561044494866913095845378372603673685222358833667141398770188016026676825468655394863482759794771124841411935106912181567864401527976196503617292687101534773959471021407255584649479039671091782646289904902663459172865992685346125019733435627930911692410113293070782130523408563623897371956962556081251801154367610252919737678409200939026224481926272534365401115022833815030618543533216699271617707491533022735416854145581371440939511576364575341729144218289850257623538931491172253040821399246770406669805716431896934103817057888213036684256945181095299605777645771520392727209146011459306552856840550108048317715419830293759069970338633146114570659423415020696385333531069124927409603660173621682077070846570160351575821453479603280582123572705643715495773001065918557734553193689881146529818646429683556055717789842565692735768588803751643934188133023876567922516159056242816742408796202122533826745548571703470203495606833822929900119988919075048768379075665989397663799822686426542027278533650755513752625235758986872721308615809463379487926270839447700225927037651600428489262213433024185950275515023000646991078101692666307441697753751102851722008365475295218422154963961452099431301043593327333002666441249786431140914412118464066413194045392164765705319628586513930986361792101188265412806984355875430673592345464089924362757030018918667419679741701910790613205090022299458676791164206159308132646268797664022667476289823928480373137674529838420112710773949277695099516018809117927885164827622136545961207876266030960496219884339421758727985763966504983400429004068048032543427318568702271319421479269845782942619762499785190679424776742573536106859370593328248395281642953486016761440061881259152056642446455838448096619402678304313181254538589491694442730440236529480614578548596999267890400895946187031506799862128957722062185596736277821370534994068008581424368446831008816268645296142235910304044699593351746191956999481437998781410373434403713069583624023012162855317702895825821691640997269516054806206047858991900883548543280084766053826692544311569117780445306434006642657110861297338428687564636884265765331547385778627641044587445215248055221492034756683127743766289749995846279452170629573711114633048342675278448940379141914601235709912834698219440827568077389874140492454290856119305912557705181078349581160257315124601823481052050856048941790150496412643896150550945185767319265300948148697296387523676385890200800310145908319151992276856957554602283636402904347941616267987436108406746127980982952009633888109599032964927547044766310646368826240693660739571878704262713837658386179540273872637909233926179860134960413547115547979981363069028654199591696134162733740338791026203760392938267141518832002968564955746612746675781094438876137934237191923224952689807861514119187139372666535420356059561639582242765455481131547180422754544186491677807772278758184317635488977692209359026666703026049058642972003248100667245995849970841131207412995307235129628780254868173267812806992791439406448877541636114808980356617159664389348545631670418967973705167561719549338567011414591275073624109478301674376116152495762414903443175373571412315165614554584953342167392479705252885826315483092623189143065087640252729818097635777958933238909870119150708196786234065766961937872036311779598523678417992283587492687097629942358349712916437350500757595857870248871779529142042883355934762032345178639830719080382531155948803515014023717757583796392997632008676900207206339976325819185770281439914412234515463703980557423646005043645434312966032718415554775017328643073542440660734672472821727820474858958872805703042550006902995237959770551341342959501757147065793806882877585066593543585670490577407829534929972640577693465597641306387806643196740802886810625056618190940089185818567110252925679547949655581683920386759516477808524159717540476952529342014604121801558016620128940301833667758012821425351143994358762429211254174868952221617382914516588621441675013817006415079139418382144618878490729787899630767251826964201611461023467374319384590850102615876867046180302540344765708965753194441440197167503972206287713765502625919943904996803131593694629727765878665018387049559298018733192092771413259851615651799094509567430818174355257754128876919068512021086531556399297876656950478580126270650956208682731554060802696044897309897345932168514095366508682458469665083285915290416846212270019135328237929002126789020706574710660057849804615758529641404576526561807288003538132573786688952335347793063945135379190151743043721069240161077350133886330523938374903268782743188932672490590866895517421901319268279391699400310790631729618107498558332160024074558384621044883433365308902872736485229019045737331215324267697345500215443142856563484864033802356583826962119076768289883347104820844406131968229108122197697131044772856294222551218196853769873962109347040537492917523938721701133929886208699999643982884331464980814979523228106436634459769142709060744717888336820515881969445800405878527301896657763453912031954749512166828051291849340306596379038314885130144902705040898282014811723588152038434389440108442380382690803040855309526695845076640393793359870892608829008077115255252725566807011938253888789787525895088158499066557584730329314627695120047126894837163684639925186887668638276750062215779011653568572665630417204204139566010682998529252489452041370180426714061242911268005628672939126314842817341861977786568480086166407947626576911819160462302878892993135023236166799155549064017216205611816808005808491652373831035260196099524547859702709529706496346483744854856770398105531882364034221457012131223208546606815294545892430004717063113482237520723654940662071162526864686033431354581240369775791732195410086246952690629246380497094119891235974648199056124386452019040212754602702344773800479528246631675602587079186629961496410562349258958836421321945116935261441242171543870683651338625485089170302665594040106675235776755327131143715945866542862000950287227041126278449997985232223825867677973797286487910166346338513615175714677582566787924891402167277576021433756505823562771349942719693609317997936089621662580662983818140420755668023844890602029873359493498452811591143319086137371892838507638967405808677997626342356975983002199912280128034265068728629245456346868502422500142326004743590178886530592559039396854644566678421443903869492075457491978509468159313368960523233550743883023327428898393142863661810889000425451740117430896166387953136443646231364150134269330060017251817911905713682665170067145829778131432442425271086053499368434431713220289118450909930202013505306429871132593164456475349746034068423552151212666100976720919849784599406087451094946370508076635400972429923811287626629199568233999139174583909499739168399138137131782159429303477471850214989130576546618755809261372783414249255273134255973679304390413294390411372996495000448900490114773870058031740907639576184188442183199388951420835403020409318055098540899511027129752308478188973977142841012314523140927974738436429082552681017564343050269709829929865499465240758324631112962737697182448518428908836247247189739934261509799922688130355799493274385805499725862487471142009174869329095116493724716085094997449220887968315203176095138841560301975699372914568791149048010517782482577971028076287414610995276337356485303684430899233140900782370621223987966659899250357064735556463012851193108491459149284193574811289618157886312377881525882430236861361526150837473258094446530942902044015350843990663995799551023817489400811293521353545103269918315314388169563452611255551302103260306830508108485608392330672758266060069763762664983578534969284781611079218610228462945139922125562787530170235318417375976415505023224736678032683291083642494973638347176998177487943626577404501496149018785849745280688826920277313049628863566582184007131688808151518815658344140996719810295004865597432134729320524339732855024375118624759161091554874452823133343512101828860075191811425333150110331161113155185274243374090162121148784512276177216477236127368105756581711772084034494476807918134044663319837390655364382966898784477516953931251844896413746926198903295909439768320420613736980000106440850554937476046854002739666455379608794018585235149005798283883659259565050526254202865733415165982071137146049751081739497279175521749308330838165130357552391657636289439197515327392487672795958232625733175534299427314527280201569197336860258636281374533527450849765754927436994560734472119782644227581451959391422780715721628840509728474407920977750420188308671428901780465128696014854543934023986382904427613488310807415623030342306355910112878604341114404263590382165144937717430413811318042844444035014526182933924085392473145299635391708944840374100256640794213177333247262917564470204106563324987870601574746899359892216413383873526294694175557322018413679862464527131241526660701510075503090652848935839566912026797000135124529880624787697386145082306266036264313046840938825741257281727474917898416171060990314705467093120935392076718027297533696231197811400093233254021725392245931355698878016292086187070320983480533610968701752523096130235772944012376356623525088425584703433876617391694718870796465107191047647644855752360738679741380464319636364462909547828563000787816331280597621223308135131667884768385461672806612976665558104575478813407176936993212451151617520406600127332002368609224255047519390367496044095298536668982188798908841536723947366057360257921713252901071662459012167583922594775557013373903857806105562625044216863592169256040599627659683074642427766690354034657218350908988378621523722893378496365908264155012922104364162818767039159976268058566069846094696063053411183167102592315013276181671371270935294817903267486325927618588647167012152472575974455895604038131510880946548900267105681385633972633192027982681857473683434926153277437569106249962840093427797213188312086875231817483221051663152288966525688055520486456532303164584481483155795802822210227126696820541453699268211233477962391074723569071039148067217249783437353480790584721214921687357461008771233696550026208973436824167761843715892961884599779858080504125722227091960666676838570010369900521145030735059482546926176833423536085375107792588216577073975613944162289190718115991727413465594878857355912827646326265270797701283571793402775622185370050481325419702442803595614331098375935926208381918320484502074762821270873359967229870785169112581275603907499198772285007186972950338283523625192045039417416958785335581454060676840673466443088939548622046792867965075807028764903851994547376892683733217300490375944262220295691219119243332278516131294006975504472751058534473599677954589540506263218866457380116722928276957505757086735606332178103927704765078312611443793998368016530983826714782196990958175213496198218367691902233656471012774741875378216187421830171748810914091692652300879456718106470139680503688006569125201808729026737419426778261695568297646210149411303339797881385665870717551339762780359924485522718540820087761507101723740311839317245680474237036828109134859591814395887510849747990844125947331701908665151970035557859736576319736049948132649871688562994555114736848201393797609827679946086628983762631908172028009084051076309788093349971450537386332300960615016254967652301952755758360592072505851870008771705083873810386981042425504161045402428660611264280136040321092955573665127963220038569260729955472646933040087353639838543697105936549729098243441925606008618563884472512514307941939761165711089344039440754030601235795817290429161636786854086947219550057285172762186949525172931477600334003204270909303840473666972990128809275648417506763054641749722797099636033016083724573838029258571834838648281096256233932448822283792820207489015101262308759551689056194167117820720439171772354703886681903728264511072802929096292439628613830782099645734848238489640093270558182351638701080866074302838794149594822029165918781031459861629632567705305625304254550564805182605883791901860316362095628515769091783158943406476875273329172628012295333652190932430151853894501578746489995587057788338729688619934034811642472261854042408324290908267956554513515250882136273028526594765574476483055321626090373502614819669856852710880471444983276738646483004050186648150353377052543558838649439737336063107177443614190726366361393121360965366878145591442535456292608281505893414367256044840106720947316461244216303145632609073768810618613170553042392450036256467789113023204300008232141620698030608408630374982911927020851990740210205478988927783842998776514450331696934847351938863629242750595590031703841786896422001833005878046908925901562149255469712850246659761099937490720650560913798535221154894015769339204589185538391038130248593995196256175924201084649439105767864507492836833408496431672367141607292451764437332278817285166614738630947326394887835406595738748914732969848400578528074313519249311415372280668115507190552240005563039195966803139133886287583796352736569804606827278931417644230981194741067004275300980896051261961904175381988505669794395830326299911936610178155469511789209491369043020693643743455248295980177574815875678275340861087717617901186166923517659987292498318578477561394480177223516843781967765422934745942588979170445278379572542358556478887716525172668268079235903764048923794667787983718626942994165318913972815184178000570581923559792000856570239123592019093419353918813637511979867788325939799464253489082418782600028661094623973040758237225244191515834109622520167384475249997097847219202299887399480461521742201216921692422726620073651083695876820137618076055938804670634092450404407321888795456647910737744378205617389244933531087646255047627198589146009990018351731105316736414858037411897362809611501833266758050957205182791049426085675229795070133435689185490175364388483966811581014794684434939964350322263829385370047371972706090144193804012351765660819027402724978803639296229554937074293852003590772931731241003755933833493017496579245080465923935268805332617921593832917235155138638020013244771551484205270713954425567307576831492359192435580738193926040638446947040389861377202788467243605532586131392522238196337550419562556840974602271760195264528631299158218980592600980750264724345667173459747990176577423244909758786992642189896651388412250433954442328254193311367756111688614832616113694713183514101741196264386958978271538740038878358067099693876585932405091482355655424295697551006486555920741258151419754327977373019824000166837584239815702762013257716036358095143693711151117912934255806573713998078230080259735331105623619918039354225396207421622472569978721177360430441283732394859183820431731071380633276625181241693066144073431136419334313651862038254919559553277870669522210991231533585521064658963436848488768433744375601870857407225600522037169054329383466610151464036672007720669546773748847994508574864771888130323125713265787254357379809427611011148969478336557383122884427615281795068643284480093838402016284300056549644290228844132465914202282053902877467985404184718749409750663906627182612918656863480668004328546193907354952593372045145616326882520062376757931698753133658132534035087747944623896084119092622315028889329222439693920429661329730639896767964444928829208935224606231587870232517992884137835048790907709270826913573005683404484936295815576657737936713154943637274999514097455867032089264050014802566665276603536790949861026244132991109557337606080088326795536470423333896258979630237274857578813119045279324821498095518856479895911463695236073759987495465130984028100853691801932466961013639559923739507118706382016957231315170324348999463921530479341398462255026011986975658662413331676431951727701217104729533186135096670695236176647910992849482800859194207162611545263822948856694106735890809277935236970179691966588654721565743962799127675551418147718884901892079788192350040788814909108907439436887873481700878181595200495373683146298265595006045846760795029328322092115048563272939570604595389759356600916086020553918605551184012131053246552063118119078086367908593799378336951152290070133449095126937741521247381183272986242668009552656374867422354965594723564065793609744735144299627762094066461740132406185958478141473715682660858993644839258293895978624471634665126352302949773425203906430629574387817445059658531580883727177098019854122232832588069691735238153984092450728931671979669780838264155679875141586757523932357158424846371841707431822485724365005559767238599875305226222874694325218497701607561371944322767934611475836195084980217512349347100532068834090943268971462246270346258959423567057805562765297221106281376352250952237790063265721139740159494451286056231832864860592562777728474143423455539719995009701147007192194147497651735654820046418017383332768908832562786098807136232118295435396090596144064415937839783096489172731132533754054444819831127378637301391603069394652929226922971211523666079420684804848426959819546787950011437669823204020512633911614984999238318743279603884753776181483421476088346133935612854781892323692780339395034862275603678310373562309728729513396261732926101938590544238413013170500164725901942575770487943378323365515411011993819500384554023515776578066376891214140972342802844977487911164561627115962389393474330908501943757508607633296460896356150933805356692002699971703074756368443483443094000536981291439324337706620504200563838259679659429530884260447701583939410110141143934601451916305103542746672994542444975848465564235632020720063681295542824314119407539918370771891103144853130094291191005230064010688192105656182248385261228505865653619152410343649940952210098937045395350859019054524022927908521357192382209134225639878705077308309624164285434571718589695006059248849688176085426482106968003340542899445734470137269149385053312754200340233543766481202237425343267706926205875506766623935667389096120193393155150725153394253213639630256647162261773765297138834702761735488328583236099887241162947131919241042310845958449324236131462927800222345833806104022866798352907459168690522117373937346703072896369418723992018638860390595748701614788866915832585392286926242172703624408242000327249424904409347624271725327721492329141535915129565739430302904312960039193598981175320756895712968060638377951545289374955290539393827506488065753564066355310991293520357550038936834291173964488832624767532323701485141733583456666880593768913989054660457453513261821241572641543388180592469588546368843292697589892503919946473511716660318488896946152383711980519474320001740518207084465939484511330362491770422110720995507560174717749454216483637794776487120071107184387466245018467790129738799740539280269194218461025453479009301501819703868028287994648481096268304102675733995410774640319443818827258009636959279795752220522432516718658296876931424817007019044210692993447935306694278015507059670324375550985705221667559882851702253346925904136406991119900823958554796990741527047315688460838399615833508161583199030731443062057751473261523037935996601259364668411706073010147085488122548944245862488587445935094483925366143250753255736849297861530609822795629599915426023522516714424548524321453590560296283283075416935093301566703749624481168383498860891105624521703632677213467994106078523976712254101292738324312926354268684288093424937492071694395436457616226743290076307213765575718846817520878231235671835473670205061893996355485024217869395458593795747928134490462319019667869394501470944044913615138313020455839899215751863602395984763718388514414008813762253048831635434437452098187814298092643182980960270868619698707578204905755261518270279773908915496516095118513502009464932317304052081704334363805479322568524178203639200777231577357302949189123824293767428218675462809602864616962463132834267643188688819666838558968718756849924318864508267390939998454399377539712766123937626103388994840055401451482031725060803156374095317071278271746337749200545721505160179363891869366147298941130489089308329935666740681435107796304191153758959958634169479592160500222803944768547285048157310777080516161445682995444327595670444431703702790244004346030931481519595888072341209198522493680826955490559803966591637189898306273946969505385123262887104062384623113532923744271456397433683072351548657597458200898812087574413980754190262886467582797880010863545558588639956645153887457930320259349350436171445268163492272485261866164002619484173151741250633602328582115005510358342627980652053853968456844764818752939175769015227775211778225487903363581984362613028631469880957076855506596637004358689704967340339939765809624356564898800551270283163827079766286104017420806935095835128589490234383600481092090291135897898857848050933257350345172028133854435455068898352204531608317478963862159766809820164441011701616917164731707581076286561235508176504572489455175928693717907188238769613541322366370963808100652150819789454748508399320200815230216823653870157463134719975571153238667472014655480135655436839738269857021051969014506421718818079135873399772620167721527769398859207278514949765199209668135422929358838355288499166265648698158609975520928626881380838492772820073878296547246503498151295920552403623481928574393036389182994336866199850319162186407522574427513214668748768585206727355734643489796511821069229685014645350752643994551014375666314569857209669537040768447712728134418135943797156483630288561539068663051538495918124807285067210140536751363700168835851043588128296442060154868388870585847341736887159105042507075858167497102287692834921098599306954768797504750026371167930843344061259677295713610904552910973987169430450069645661583733888366899643797806665173347320006884549526868057600034470553829979750190527551907055408226949624927108073055494744933465475150194157003226001685096057579098209241693937413891768179046774200653455501244392139863961283649599002780047240458014472098584264599045376677156541380257014383772002120086791287546677873492552960007111833446377401354147249578595139491240215425380685885898693477337674540534481170622976938432366326161158784093557100506499843359961328368664732100772461460118196715048730650944536600497541934227275969091450948389193444096239996443278600735124061476353641243395099311375654708238963128743235723192672547172069134520583602717172041122126732584573169550291391070480283834177218031463125408505812757608720555370381186398678120400696895810691273681915321375267286581441987107484116410028682836738782078064675572870483142121711546240043794909567195168971190849007017060127548268516220814001995573739194958575342842614481979490575210781677026725040186067128286585375581521200695431168683061905456973534776222559207911930718159249280348265650010443877310138688338034382684594746655782364337437912177498900974286348392079325761861588408451809878431030947767808959192772140376839773515897402138398561104081960895404939189538386412163333149050599006879764726612126091924725445365907246242697838551258697488741601823476494406018321758864096381740214447932401054650176489179620349902365259488839127735435192885419916786213658120126397130587872105569118018255333254182761748007085304418692688448383991356414432007000988056258820868228155392828201696812254084201953358019811322058240136833076898640760306075602800421642336463409453794416461860638864039279081213248612077455544372373064874107581873028033950584076273218888446463869880862939278492230962607997246078302569675994376600758597823870810419194049373292551784704011521073819396550463033841858098911803405749290372231845280932590927002684240160513101748122351440718590251402197375053373238438207862227877436160705290051505976673692992489362384014579178395243907715978124979790372409641151147860077937814491164457750669678183594018136168803324340081370811161485860728683533325369574900509439327474811533720408398986630950858645360469673131946668025987972330628474310631440823977686765769590462319118659240094639299407120836609992770690644006170695584643039346976735848481192048440308200123906829488779125881348737567584641007617426596502995331798377128941019723430428318313168751783634744622919533662288930845143722372778744090692050772133149814767978737524240348714555111015766833641429054730760417157731227543974838690723882629148242585098333604232614641470685832200326540468199320464616693829321088337896972913480446624439867754303515320162664684997107214406130210464384375200644218217258691806458276749717597878433874899016450980233302988218894316041135529952837828953338755364353729291972579558240988433726699796289212285097524659619543437122613432481807314132176942427613481774933066264466135928022251823796079601065100135901825470018530099982852620601470303189686073656055187862872905209680140272741729336645837075065649251280766913535512771284165199444967527953267395710245405276731598421864814901744566902238558989787733105497589649997685987099882250207448922730106946456447080700248904730969534463455867460558305412702954058507380843938822693130495889266792681046115572992437354948522160310424079823570688517333898674858822588872439589178050462373309745462295426705378530503801697112850352810598781054979768754708736155476709348190542557258267140951228198880812530946596506308320211695287827537913740262966774540295183743513609674420422309792228831068579878893879536283781640087534109538407670684971013178673933287104340189552784701836045574121921302536131172328755874070871326214761905208667150606815296473922197104506405360266849993366266786547252919701566827579003789311019821593146196584756108688333256264763855696730975171166934128841749589949781256880565185502653018925542700944244649082366007257387508102678154786261583691615796698145393381684339135357651104659594725700273069307856365754136934640587892180896153830856922460809259387469640591329244854245994056431963794100538715771009025187722936066678436754749407545737915209600815554316004009220509336637586630416119455534852420316984210886787876776954736908171112282305908602612950710248071555177710155864449039830433845111207454836243635506889983958270543091957558795459297507844474359075946173341042390821112838887451790421662911566622609590431006809231535647484581633788191490440054702226780925847205281872049874930287712237310907424692617189112853207792760599090686517003844873587321025713332081087835737367304648893548268879981989178225446193024279832080715568626628539105574883146323953655476980829853063260032514936380892783938757817456636960594012890130130475337089128905143698225871795266706540785455945386674607156133050900453325033997840973072558230824329403901325748792287061135689446581766948781820977180963280739186190416101109070091851563605714907714269978108338242226964661958339613924318752174122140494733081848236200750449071251145825976679709988257075227745472237227030470740249026433437029212061364153718143342397779666946127117258495468205122021630961227792739015354837798071575995550522501654245406289200766024414365744022931504002163222085872201049719864590522515057721794361935394730287664641740782357502430631298012364586473146430863906424663810012923631980299749650161699697971902992529425035915272417901346767528330551517538559321821399813652254184912444856056508812662032903179807391601939610793905489755947356021381146818786456320652423788657750223274846893566142692794655691911258934940763267347005839663136668893345780038146341891444958879068113798880488862916373050084229348110350193513405085714309032611726012467717506847522998656312983528806991366958539068314780896864434803601749893125446218426227496980050182712583447475915658463734735979190607269473272434612516640963226504240387300102400114365696165185254422701131090370650088165521484830699746416849264301956510431130063070293468970421517971758420262174150512911679865862539431432569712546947855814345295152124117645932932721959806196169365965002006704229043181196256597353406531706008389326661504671691090635721845564831106089617075133691221663308284484587679249231142178318401856275804627860161587195696779461216421710417383425386532654632404565968538758085898369585512927456448992357524645214157505828043355325385358200608884293496163695018400507965109560771338895128699045283728038099012416947299889197817941827898476444732377562725467456008855565269796914043910213823284517708302189561558828457290562517505855473574636145069703045444689688919509241024029210201681424909747519166609993999476115541516616634382261225059836418205143848244339869872370739213526059304906812450288493019737508901942148100534378811048149942900492606122828640095974894954925649326493549864457795180575148740008580413898737875817465015040578617339265895992314126725696838211856626973694886055444205532026608882959870011544787812552450422265559475112358379669622216061469880133433032047043879858214006812040421323669983728380057196138740342711148312875370230356448025544799874740955428885595068277891172209916571384726974868472632108225259118097364853907694165379842256087177136495107258465409508087576415621892088622871521460150323634533893415924229822764357228676309711049384085767316902899174369516521866791327693112267927402199745078460327458724895188389051457603349747096601046154328456957606905807456849258794556751867701475846927026999927569191654642435662053413346399795998094487049943274448655220349332701093730888056541808014385923490382468101339713272795801630617847387565015629069387747851493415895859886129152888860670498618122417750758470815102024974441917733873306883450213245419197724725958549458617263940508348235087829889418777152392194996941947486129921066665083114562541465789326943415207416517041473416227626247734613001617469682909888928148769651804243466834049078955454871195026397415580554309389725200432405653858167507287221940677150721979793674927572690972936225093957092272489900813752634565417415018582048934787376321508605961564571848291249644520343486032364635278223550899851147000059842584024153491590939393425471153126103688820244714199171106235573095343600540651227552377079508454192161631167709285518831020603475319380382225138906673751216980801035228940154231513449619590253127843877645378417671420984199058411885479586472704365742936309448987711350346620044536332664518478060091239748366633882112145176185386013033418768028603807183591093633550159581001487968645939306106355863282126981160698526607721591525307525528881509461415049817453931981061036301313281077021753084080553226357169214588036944895665691420174429214453105585824831887788315897694982751102301231128911391935966393769156127743025970796453803040437046624110211306199263547157011740708926450794539578275504433383333412321998437174304423757432621670346636345537180920530292419847095221001854720353012149091145892260751843139477733345087556208819534493098570132452227906911649414453456714460177483731151395409777662938706806921151992017461270526132182139006936716369596065806440828286186117071881566155614721220474288520209623880774859655032492627040132712292494957371777770136012411366756669590085770522234407501728918940118750774156692030489834033885298415216203925196515869755244078500120370852325348646692187879796460359320452118422321926345292159779619879383510692979987818005468004517548730898450124360396818311175456141680454375279824997987573208738025148572670806534797842654894998413567779197621285386406185419675866790008650559997416203586758660721735081574890413827204651127874979813676008542263647174545610670100581156652591568945490597947675084956649231411208543634899025949816072282110162146836520659203375197375728306302767020295499443733178619058492866518887019303391197677989178389936229410158499283555205294432904571718337430445296805491487803791660011825520297966993204386766495468643433615706520670476131490246470405388367732078098905977275911834498970033883416945728019426771037354107257720862114971560912879442661468027472952236536372138290506985256699894928278334550955990592906227405047184125048064356699284596747750548837545371723024043245585390497486364368734820089861502703027253436011817706030766697128449233453236975599958332215197590533340962211699220753853921608590695877086691092501410140164110707073159991415023408716153693269020665762090157872067061600408910599647857375906803433934627357494038760560687510237693431744035047272147772590681342930829428466004886612687382082575845166940313286444914445005709002063517139785531151813260149764239627148123958673180068320944605252052323570861613139244037920802217593602621526891616778704791408070260832617238098089736470177106465669496150438298643818018132272456090625009102861012611658367767437192331332398642565385210530560994100568278616086005173435232662759860894558988538020223822890036848940316192355738153511552094316865103765819104133845967963137487957399274148245929177558789454788761540644179395329523992844196296581744695778491905628478472691122836950565838944479096557734191798131779767960609269699214698450045501579326392262393989654569924590928946378250777979957014661543666876082314783639089223506117835991342559939271080191012677125011451699486230515523276920628886792018648601518261732980794568528765369673358499605533046273464516660170693305120573102564051555331295042758552565705318463169658582927308701942405383312533691105262165986167071104866829211643291163652381927131069397597400589361787522050673819886454530750482414097624592264974345385402853957283988857724629563670899045555987518311281915495517838909020949339350909215710018271054443647113091858371390419894655784715123645553785811621868415855148569340457488249369975657894533127550750605207474122425202810600892063160947622241895916507234919181668345183912481864831697153625292664300950458198245208383567924652885743719964597015525248768730691282008092256385342839327781832361921517012006038594865412989168611641101017872085736249057446314808548487996046875871898853718861677743702394072515630183401583699345409777015562678056352438177987331714239255096191779471731504098620952213262834587899038396876480895853231756596165063425880363816558032002826126189323605302122280629265898610591134192371616960850063190525003475428924203903675475648410396056348321469431016160900639987007794010680225937093668300370533953226484360699646936999298100265956707211849077532314052176959500487512039850015339125273321163077581784696634324314344129338185390363108054837261935193192098423299427329747450629092876595649532064824240285491829854726693001042914153240456983193446802533676770888980525368546895483284137052988144356210738409577111391833992319435676328608443271129456724175486245841747359609204736120494187255081617969006809381384061756255407706973987185073471731567328828225698282364084080894138050749745605718296123708495769590894306915022440417019718796553312948006146574279509035941446404147272394126628624688743229074309267293902857084644966275528858616330368441367032926004545421022680679509250509843527617768263275188406958177791185038424877990064058683859798140189204510537475784696539267028041619679762968813732752692691667857118802778691957520937738509519260333588386045292523286913943651747139215694453595562781454218726999257129854854465499630676237583494355433956517462819048051196471408260324553414229995515657113874703695714960152919438929939493637608073974322125474754967073919514653975816642901971611836448121971932066774489310071950017163742687551144596071893255818693100227218123776535381918266881384148571197016630587644675332838680374177348024596936506182766255055181431568387618067704279638032450120538193324825931422366538162620957556274822381216523986302280268375089058525895958570586364893540237342660458523973779896020100373934975510432361363087938331209501107097652142768300682243896911162070316316298160278818069476998954564455412775550017676805100454143165893214769010902484396983604668397134456312606088462208445688987067401389060336295875596506769998091167019130994259858198626879027744635809560962461866746895574482940168128610915065846754835821939770925546294649506494714698555677976642469905244197479449800493844574226353957597980255604232367225226031150347153369371205095546305916837535935925423945056213127009642292406294273207961776779569950707390879268967564997730390966270418502767992887951012159411858946460241590540243481174992729119638067479098811665321065963286396512325493023541423498836174301057887355837499241972772573634036462875276690301933162476828344411577162062882004541928107020592395662738352821164214328926825217777086245202915378651055478770901783771770379982925153143741236575783813129658536601567376092458660565282528279946846610268460222082219124830992638716931486922101856302497754579387829582938698207492246828785686613963946844241477322321279606130510260571503345250721885002345414085260891822006103653769635923541908400654086366807801087782867888259058779557080993511365959508414395130924785754214438020382085370154690735916456927235295201776281011357014945953514537946774475510151721522565409470847616292781088018732722076719584869152099663935308185786903719645004974024006438941261882279392704029453094392903154685229316325558335250455778174279778591044537871253256176582478757035422359299306123353338913980159120200525363001847236699084237717648755054078633276129013027744199674978489354740631634986717757861051733613872352736791704817940900059908710346277447761704624605840994498060628961523762484872418099420729927520713027093474745925363798921368376080941006382293734046506422482880944222115445613959523046966927343988267992834703950583776428134616335903368109355231790604316760770379020849418791287810418937690930296397256460055769705114900778093908636356662547652328629686443368409733448946182230771675171111970485578565143525618299407244224551294800170360321871074402245821464498328610662589294195737315376179625732483069027451174659022342313395873437897257027797304061686911259804615506746390357847533788206939571602195650793465658671579684287949457482253448540781075948741819339440039272043188710629313416899087886708409913207553877627396409382434567797318626080355019828758412654929620313102197267807271830961184079134537768694873459815102997989554301482989620930754974328282316453107843492709843441435305775924278043255318289607780062901627083403216629687072722591614536267728606500360462727634561774514516694135799100784496802048420279396714581410587940660224154165802388851118929885239252696914565537328465157287736731763637933964528110598330060184927910065270779290781896779890491034122621130817793504429498490615631651470854840097346344274183422460218956829542672726695228156334632790683402650859404502831825468867514251246167695886571321294626285341804659778192660268252178845766674951028713088196367683510039155868860118945871418446006050290850928110331598907034581934958654246031930943027399950261247701751950053286841491010521099334634850116337853711470088963538759093308197075302118178863393396027437886470398530498425309407047164634991768690488432781920619288328375222362623971532783406347694510595768057007685481511592632057965039174994353854349831865074688510381683543543100539342523942627337544736782293352429533842494785078346620123755045614938884353839458018243588585108274833877428447279464217807970869049695819407575101458834706177347132029488441508138210279301537573776599582413032514483265144952213586123376502035552890115918501365122346437166872003966555562210411848938816180113603018835816907492120941035673168067436935537046943868885772088092371862805877522202130569088514062369287578227616510461311413525464922728737698947560334285831468539747712419237317994301355425730468778598543497998447223075148667836347624945341036605041065104487776252007532878241771642250404419793117466948768993518239935355808110163222614968676597978192450393498070152820225307635659107727307791748467239814476842234310710970992368311964306213355450338751702453964113099766184016322206825972005767886193103529560081861637912803167539922644430625987825331878967841061617997327874411241301926526965625349388972224940696908015269576473808141503803477969350618673393623486730636628738984574559253717662486593749224932054204026096334429648331821242008993145774631444115335474001378841431754651855372856870010936932838256695853357549461658804771970902166218916604811450578814424882297669345220024179445522940338989081920607085769885339623985152686030646136725746072161350139466165075317034583024871749171466926943791149612170578170750731408733264630331412132114219167053264233908511913247040198058583276220979089728127156824664294154638237168920661424290018705148202546036619560771588636617429555766252490027977624939989091145778639856849119845869634135979466004765590876242020919320312760247501851842214748542645526594901221204381564576731043230591702262970260064425427234435365962855384037661820209491779365499984433868292874795306984318294330111628257859658210514440723850456786267810247140428009116363637960967367314923397014174840673020133817417822594641974113655748304949377046939740750241934707528473850898797099782849876379176322539784164696383294511612436644327118503725443588753589631247148745812707963644036705508260605256738367267835662531077523746535239739765347039927856157486188681157926682907707657940519907012813456493964528901785904018517267191462840221250245898831803064365794386979345327106859174567054194856332212203178641110845253182528490027061443411433936891638855747590577160264023597410378485110574343242255980371620338443517809137587811906274610049433959629091492925176910447119654301911523100904114684349523300307229885380216847225667041901335277211844855795801891246206699588973020441066578182956487116497981891056587627923238160861555570180464415104710682119175999511258746027749406734057999865278961505967724126359737469367219021138307005233556307374057188116517128293251583469237159368741390000225399255204166903978007301913927637357384223540799565970686086149767472076313222779474450929514505190876839871621702827646261068498673033189335092758132133025538429164447004193932240639002342812013256669788831343140598234228599985459798764637640715633341392527627820335260041514313086301713102894764312678781611315171981044759074335222032845184785840171385524849307715204658297574462247516443582258907793202803663838557907616849043011112142530930789296454837872460335694879494982374831681898044908155274412785879334374573374107639534439860345032119544509945149300862771792125638442776524363204679559880363321351446018920592227135806684129020207991821113789324695158121802758796191932657028722569771517255913499799340083778358298214914889337058108503405458512257673274450833917291025777970494878880526871754762995358583018923578511954812178505001530402917842414578896222784385355151905547777791807662629064571238411546106668839201043410924929346676812029372999748367742905237677484071285399147003155760424890958319909127730758770849890387063079970366871090684567625540120053769249669044772985327068025517645930107824831748598227028466213728885475564664003768160075177782533114656233155839355511241478432938753950284953169910677618174549661606010529208118204905141332643390332091169466016473907941192593299003728884659711106503801638476563454336570300024623506262202727437846398355848742663383359050770862642237124242729202713769766464225144450321453106406674801682458030902253337407047535402588374922321119994204914588218185956897102369130490518906356374229693252091153471497060712001242400006413746238827498160666746519482789270768663544777822725891036766463555941050090245007541828375104401609911960291755977247085293048159725787531995983706273122406964886780661970284780076755576460457063668336965831843040451269357974574237334635590500795571132746841899278823607889114753457095561737208066204548492361280930720547492786683014501684899526710349687213609778184071218937312000905707503360584655772848721062628194869397361784612706294643641384753340866909283497298323455946713284763327613726540977874067943009562246850086553050861236965600659518584112468513300951164755371986299443278423415106931450722080554359041197704324782013295934762142492191094262070629934867474415207469176299271069220858500729161459582472228391082648608690523230669783506176706888087755585125651401468484970909410364690778483832245096748533664941938073035408368611540093090783777423024890368962481822933371154454626771272146926404175040910531541950286246503816839632814305550584393018047143078560319132114687405794525158494494275998510495352781202747466688812169014900863845558543447249782019307683858031202168656854800450661670576454751332460670148775331595002421846422012799890212689468884979216407877110300019657627641840618887430602417106807197480993067976360896937533491513540751811490917606905345019837383446739242645454121175156923379862015378873491711011299840673160448876864101721970437858249618645863712132074138887432221652875105007525039503206778064655673206616509837946584198559535889435567076542303207912882799813802983119138971355283420208510115587498137478478943488299777164910724754994970766849290899897048938463195945465436318384250702563676541444861809065575395557112103489936470124771399268926625803108631919685825839319640466821403060150366445188807589756290381733117511381248450250084641049480769842655550904812876422802627907770618616634551087901805992267505962960009128133869612742729055290583641405675592739512032712071624559758865368582311985019713229646613416263626315161212577198004469020222605260513073315475990280538587678884843467605065936430120024564766678643819082834446043442120171540305887862800615630937954014312390478457444300169448509935860824625280104150919084404271463816658853896744504482741723236153271294742120674955274952361492137540755969556563267414507682070006804568150150944591452768023445354558675880178131435070289014219458745130931416642030309330539751037313922515314843590964521416864712683869097591535880612138501554315353939201127695311099759738915865906330847021006428187268142665087805923097351500872750390399889139293748007520765234538412750212852875902252132463881205645701823199886717066703930975133511221583106522241531059517485485465446585839654729916652238090003579286372674015889672583319770662330764494979948051103987251835940143089130264996385700282586061209985407048341687164688707554989233986151465944190567623279676717430549009953063806765269035168485368370788797334807536945246847847177233307706747222318229358224585869310956589754055003423470233057515667300764619869473605676808655296510982127581207001470234260935802737147546065721743877041375614230016516696383770463964205764120109164606710456727103405104439933189518663753177970385192514180492553296809182945473083789856846104354796699887218453873059921743642741544531084887083469188594704246943375326287104474143677777135728850074712673503574806617048032514750279526438091612405460701415977993951557528884997207149443958814786502371880423947306654288189143965028537379512716910716716626967124274153117828938660113947292082747666510816396001685726090997005793381181637324501876994594483951584215633051451711033441762584530265869093794210487552783519669041351220426812912209232171921334668809374577479088866308556334416364548870747071210577202576035775383683525298543060055295632315153398085907699715935908405810646886463269311077700431835954101285107634690872580904022107692494813422099844700561433062172466449909620870970877702992550821195722501981733811286031775759621564636178678876775070245776806209549662643405491220368088652324784686892332260860008075154653328291237627168065671718353802220441352222020631583625828332879006498611918442795872776036680128083822637426645141887918801710668844255312198478771587338689300600123160243419318962401772941446451545701973917609659150757174938697950985882132562719757340403170781292810490803523784534055578207037671366916321250801435250418797617807356933731745435847521479478313195520234452935468614386008883564309316914433524900562941554749115778823727731237477684926487519756447474654936775205733869258211891441181526900606082593402157135604551318742452716847588371215197708922573752719017607575480067894099744869084290794873277032821351967170959718035016537404711972380756661824815972578071161921617596458660377350092375591337243339183027578431064301307584593852707097620547650346787442154981711714926819848732753826804877173428449143189531811031151099006876105904568652787343114717412974993964290115742111303048612994705656495193750525109370069746210677625176818028425818572523253169830648823150154554207637058395768561412516267202873039587566992611245778377154459643422656352520346423017111203897245222639913004461756106224890364182255252713916720434487651569233984838493464128718033967730051222246226532454882597089681742800780267725240234966020913553224135983039620797317258738746526226711630425715614573901432105723556986769215087988268667398308893832696131738652567438382945466331726293427942884976567197983087516434106180837767095820313374423306460724372854794278524421899492137657173205182254132629015548977637393495499489714126603387099797432776966655997005384070380375627405323949384094968212733477387878070820709914944035737973875797082260980072213644191283473586062176365810854436957410148953699947611693458697659956968559593119899236326325066862758811770696324260307717364311399584481979257656149414587708881526612991964724376952970530154047807322864850013283761093317074949243394267299266240286971124595887877858703737389826779512376727898847551286373948602433554111975874969647300395448720848263218317352975054239795859360562902039189211139089919710373225258612103163440900608001448220962537076716534267367579040741971820427606929558637820131519382973679110100325523807217789782949708916829915391673217863942987674012647041680038669943327185838274548839415590975160665135705066663865980577587813812515638673980482687440827540315492607538877481562787751919339677868462283544482697180639102394389871599514223794821669459696492467593442123960067460186841414420504246502018313078033888145288227304756541496049838886051580839768116119570259069042649939494989306955523129725966299608132601911513955600942767965908163592814235072964714561580249485649257063155206523474074027348499220352803477631609992259908336115272774547937117155192939045771696178529571776368289286414829048810191468961477696589053339897707858787476851930957461887873415055653414370874486674379384372588898501059104336881961801334694310613490584436394714800195959186897920873639107287723605852223162811280576901030302800154147611625088827960810437970844032297187883688018049605324454342960240374117444532354260368705579450297673353917552874827010883021228956969128169605800079605949150352046250508021230053284527215682973537869400496241415641109211663310254977676367477481964859147694587049349756160090289263547940186099845012865079369792450242998612721843909935770545223173167050491200047253977173118253465626850429853585498965634088051877974994286843070763028964422408644227528680692093988205960007568074953980041240606958234450794500037885405140966313458134605433100440386447269217128545271266799451975028783944840815908474933650470510679525293562673009433317726637982691271890751522514389757738022003314414727477363031508748169620582806978194000379732620410048351880114628999692504721102684823212815597009719825907403871247419141129522716730425213998208051415310747133025451000099622554351235754864663462207229524438245353856644246470508985479355574849608099529093003633449613221952468128171375228143077203793781052718431217449141927954064068055776440773744954563183279819818637630222728742143670978719527597562084383863445986048318872001225309076363697934585146580966370139881595643514551729421470824756250817186618555795698312152104549753549391508210198391454600455144426802282866900979890330593936916976141606284942512028340416043370933227509643919921666011463478146783895363918659352488192526408414970854959337206383491279102737557721170486397239384215261775095654069751203145246895406640667590256574473259710859542527322146292106122836049035388403051853065218607632278313367121693217546860804387073128941785153083851201858935823444416241666196634562110868147240904021833750443109291134712872472585283673891386308890264727983262364989053118652009118337016986614336558850496194531046428732328795534129216826188868398938797808286058468117297251231738893305204504485042191158524822463570228803894989901410875274625661892813941901879680613340861024623163593432723248629016354682293472582035671616180528112077272430980912158852740567004649975489356826200204932412702072946062651557996484574230238767249906372333054466395695555042863964448700181133656235858217164086680707825019257148163164702557382486411697706973962226107662136027592588956076477589160083415974175142019618569988639759771041507744590812236648922702066225593191613260202819779552726692033981292241555165319688555050303903592612084765948102978044019151236498142832527704967453075356464045124321641228511344780463884725089403917822505514213539753258375353014294349680998826910471691816401675847094478894838521112895258871658699601497970795530755075055536028410767665252420763325416266517122960490241576553038329919183679921008934595329610446052668023082971912380130656847753303609100422095123687459646169023668619331454434521088858290140693671785143073402569330769861726571229174636671102437861150791568955301495932821388474467018396344659431141186283082722529515808020767404009720927340558835121145408168907653127203286577616021962108914262156153693804563061098984509573066507839577021668915994670674191429665582348872950121774567789444463484396590257844953941071569996829941546099098756726396994299801491946604119978260433605109503697228498394542502161014137544082184263919493022391264150593984768492101159006329286034069013344666519419371950610272405171961947387624560041449982408551503901451528761654249601223991503430836171064884215688213220315419980526432618789009411936516456043428219537952990527485945827902248063907151766549824074192514667802757047039660853236398853765921746915824179438551936410161097443378835641250766719694654418188039541979676979857419156777509761203862507016455576680569249390357984447975679729159718986903222948824894481687185663527352859954092514155525724436870240525145364868803814204240132335861190336462103639280091240731761545768525947054803993659947450708353813811343098305238906360087976760698170892012864958119764771813431289688035750055360646203907634285186709275297067384088502771464324929348782147857040315237583730535495612226316774191764544058498804204197614941785776923497645127909389818844897338145462638101804065391969365856416293595031306941333264558136279398864001142593263978464175205903139893619566940892723172397887022209211992767765110806990584774094298715611552763074066217640742730206283339760317115401548963689317868434559906137845851886783723656416304327650862722231715034925832796514669769321583292039294090414612090574233124635349886625994165766256476010402087921407180019687190007059373531278912085254939228166143331861335362951621472383588326590936708567855603577240090666506332358001124024591587562295657178883173363222512863980687520576016616116043338126790292524589094106324200284579620995180188603647415162067254175432547725587827143431599386194327283663737792230618050403809960240024962835873447708753433326120629440927259743769884116234264548494401352876080230259875070649417035001082833104041375080874076885003016277892836235693237949989007420227974694216052513629140329290109143110468525597157093102003735471880080947984978650043454995930033627488025604261195496841839615410301934239344987790936454462518215135495067688777957091859548189458392258285508416498447612282083112313864990511697917201192586399168512006744504917695135588079371751222623102678475353175151110352938032238430900246398388056858874832979716265303912235825242411748207729320099712604812480481182970402779260015973034653957975956739384380386466214660917375738425858247681833710464022310468676483070213766717684374236509901260456008392552091011076390926165825461786000567167672026434080326188458882111141705992886793811722887000510628531812034935922255451411989418806618971729339899494528422271130179016348924611567102652965767618075524872158616978555980671863272319198050264359475062145467599647809590410575826689655619400467276273080831281811413836544461297102764677150892367709180128300833613439910094514809508507636404982386954954344735336255735524314028842404053178283008716983594396532304883805083616487597209218131888463149983861331726232029017744256385355114509557687577002440522876983162767105802134320976341829068288561766781494086706975283782674632789562735854045708183611797250365195611388984813636255418219512439417860709153487148716742990035511134726593208675881693026736789291834075713537848502162051415869847978562613960146911551355730092854553598921864674880503985582825226919156487710823960164215446532983442795370615246694286642808760003786559400430972591680266540923193515060508194788759845336504084301318002325057267361524455885947575052666424054666670569541288360550888528299384167152192919207738636365173967565838665143148057283506699272515550106800296955687860298782216250006011657729403370403090402640654200497049545645622765532444997009152646092285147787356272953767424825256042230149808661455941367144289303173525069551209709845647875954848775036902982944380209329550642532533888961084324051030247619735838631714067986311257477440246921726283417152072826614670976109945007885391364269889929053321861612211710797776894149123823599975551023145704674391733953882048147132974918300558829247431709149181361676096531412318754489168149497399081355209260605506751276723898932683823584612823840770285143902478694710987261789163650949844926929474187841138656672654841919331591216762731496603910929238404951291127475218337907857149580042884751590450068484247485992225395449240965839474336290690362221298004647524759461174027575624787057855941813117203330415335085196620484603852376699658547353977243002909140355849863919284000442252689628153115763388170156184919807397088461718564274445422740850347955924129861829051463516539212632811941377945792726542590846314305699223214198210200282386388806600912030129115292899654465409148141498406510305505930175289446490978820878019069187516902909906006955473222906084162048634710425259669705793411782753222553222245935754508991880524902586730193110363200217231325267272032428881958035975403853147006086011029440378896328610725929332225759650001672336703066235709083218394357508439670299070469292513637587012221331157840991591495911545823052779777480254932007143774996131159527278584986848536407516394869941175602036396442560056167003997632236109153753380009101929539966133409064294962744412127227477002526965064699483562008855352235290786525232031360993478707236584635544506426933122101656208810311363434819048535344520248203090221256269206041576600615686035421395005716616152674534269348750097869384785648974358265463928859808534805943303132177202272881086426331045750658569653384156456029934068482768173622735877733651592461528694061307228408999268233644459231331809917428027550855891554257153986530510571647972636211045019589309093857091094812474951903922629388397477616497174591038668743727692477709990912896682406117454727383494974425200095613599547908026180305748684750253626638717962932061354222505782526860992223275340366562433590898272996480718713749050884326474523143464997372321692318771411299904578264347564983398330683037092886847464325557593724223692093750745979401777892845077104333164053626460616414923523738018263770044381247201418521683112860858459746537649123028928255601281551820461196975745426903930619957301886412658407212195220217383990970157984540353769852190733374258065378624587325298473184944070682277016132130243641947969114260563293508947404595921283837305562936380623375727625028044419021738633649678431152029199286780826444038144023331868275192855999565099231363906469589192590545352256982608921161213055190629867799911157700747193193568747373152096836542905844494240695429708364535064808131397690297844430672794553930842610690521987744359325501397427900792529431055339015580748125426500699981256966348162844305659023658739657329223142851369730605651326349962568298596443782306668766958939447112491103175822635495116717126229162220139087628549747944332320763439217200229678378481343217591329550187522492826010173973016674916628056142125966145893486644624010163345847286572164442915036985990214417149597479103793455768544653089634998175093352846680388362526119470609573810966548752787261217382634758314843436147117942155469429763497571372771127143682505594013458008176898139629823718995735293979858319175256194590046873659393964209786446851059160104655452438085143748313353789748133693129999952816049322695396744563294653892179097764305192135369767170351308892383990229600289927843781720345709648522767913006720600432521062743656339225827296673537448996023303945894933961090991906892446619875346980730823740855928264687577528035297563502887288213009895525825564255936341293432258587599012971079676464690813497917361539935746047606279662975486199053795572571215609543115368501903997362731298455549994155223174248691335101342005232679837734452273350603822703097330811945455025672978481186683366882804668398931216731057660211541584326985486460081014632008438154787119350931602197484714664595395632078753831189908347386629730139110579479123104327263854224748930171466580600246966469762619737313547408260426633555492817410118797679922435503180809223845749716055032400041497748365937220785584881258708737486941517418931500451984979069148820598800959966034585882718715072189013790486403705529839538960022919887016921134427386024016190902552394225110984998863818928535550408425248644170020350705750731142472213087497827070573131266518604270110239461134614622043007167207090825560888977709874646849260891179498439926289878936544317358737484023619133165028017710234868514719385861860112146626660186616714574562872325782296018623766118803351130822829593943725479134357662115097060981131310856019563835537932421504167780691538746944291672097431486777710592288613699045867558844380035703087263093096603989433123691206121627877343883733396939055790655049265747447495286455098210154498744562901473669633657745078905739301084930160667176731192438201397184809970695635498968962029966543192292155489142995983759057186802168915131181118626819918565381361316003975722410456015052098725414799064066006033301916448875209113779097830896403619655004791811951671350062978065297351637804250329399965398116214503145100244640546726335367245984156583254109858477542714632771548911608648334074826750541439780017639807445586255506325836537129679612159867997324396560095899351419249002820918709257110804151402019661568397652342671506045414637448413555687289059357925689828604588426299576094547104738475422936478719748829286374757622936207748726497770444162831437459068766131617003897673537563429308358134777234402568344028325824375684667732773850527360963970240542146232821679250967729432020354216220329510387904281855915650079800519103507153730018960827052093826781034134531169270527423220717555622210981521491202610362391076592918637334354183428111945695816013192136130694618556727017051079460257925334940840941859213620052703296375748829295672160079347207531886282608649361510257352706655109344324011760169252272691934775554843999450744188511784258245823884069480593465095056767043245431565380805573784493254903981499444240783968218775682481682914145370511426236700793918824128859378966957813367355816332906085464885699428298946461739004142788833942698570727958055185411961072765537366072282410859167734936094932622004109649501573391384739392428275586820860615976796757302437643093666015260857655508696996735178872042064297457363228287122425029125209289036744526880650666255575922783901945130900279728332681752263440493937792385039995706139045020305242768395492072218209269894633119077170496801432544192555749447498584799005272760452736144390788682034276596224378567064942270360152397160819177425666698976077441844624685625795063700809914061439111038020291702325539120344992273957173890389118258648162124337106531382006339154539889311529174416185884471688726293558003580537767303935077137084410569405082873838230632841257906815886555564283897342795171769158843850884180372215498217328627832430044734073956216003871456587636617761633333418773118407952692071559371897675960633938612533964888630016106783386020389234510114343248672726998379157260131749094517194525193073669876239711557263165655854371094516233812560845317882884375305840214219305235374441537907092141673698470726538264038598868555692379020383419449795624000509895410525256473094989149189767877353448042954970735494540841883946931333499124375525261835539844205034834060539441774221436541724334596371658196516663765583230086686732203125502963840645418672917097523340729255223608286193117632725238150530110199539071151059369213060303626016536349950785116047304247585621335130298167813692955140509278158303324337223925037480916985168959955894366021930100922094364564424790175754887662549411165643720934724954323655185887098066107774481588774220376473715984708629491322210684060230031143524965667034038061659747479492189086378113029782027606409159466626153912449753301080041997303365513375091595049635274777364386390546135223988181642454656489087551734331331298503213552076764728319520318020273925754827914573778360462882871960947860397459178953568270224470094571788113997591177258403075823873914281699982904086760479341299880350889318555581986113025994436874938560523148621473857618040440887129820799438261244464716513799022951935179744541252633708770069060747268306231810770194147298054637537548505518679849818276299102995614191401678923613004525515018128173684135659307451748666474751682029415290605551470348712411901652018909742730893491798232336705706480088158409161442108760971792267402853220125483105517791016903028174649118079591766225063462083284682568415684429498436891461302705815799004267135076279007828060194269122920808081413623914864626946443948026797976242574905859926930559842166139389136095456066408501245418328108795663377249961182489820789852747142890072744644550351168864984093513166335159371691650945991648351585912198414504447322934832044354410249996870670969190098830708652823439039855320331893079171226910597348140533021117213821272070949487026213824654258912387157351202840817824525522367498673047178311733911131428465929501846061590189155928423890791187387243624280754224813551038607580518709898382885966798405300101510858940293200764763619591689149338378773909500889001399686035426973249087193339314427467740647720518619251158914981051746403385821821542444466772530534688045389878133191459123743405412559946783042953755635634891237103852441621322175606181555196368876508740648855879320639059729871709194235381035609488046197564937590784474930421287188444957893867328318763797148197722524024589968921345041952843627230214161313312035770343117903451767321792060979819180354193098825251748364269126765680564365535884938339816295630086946600578416958282948506483338441856669385416932160023712618655332695047781950196323335215216464654351688042317218575580531088039710265699108421662355734432044413734483186220126833124724976031400047599306862246284849011840932639074523175481545661755135181738411322080127419507960362281024973952149484816278617625717593670914588788698046065269616048339992973825665840770180779758091549668097480612142484991790331022663408089361752930118699553138900417925553472118027743443099651979675852853475786660159268347860650615674251844112019092839048227424582192316288886254285105799354166165784295945710306590651665086817994403472661640225037154258041834273072302862984573542788560093507705760586593185027056572053971721498179924193362300189480318488132411183790268663207590239418237719790079746252224906332975554070497453701952419637802644450317630844217385440877764056877070706766922824545119036495994331646799106177572724917058292211601371615123284635220485812384397390224176866382344775517469896183400383867991618116516169838361841958231020213214375389843115927750478625598741514264023937358223852021102096967312924261398671101182347551594192888705651718496366339237955180358744311383596362472683992949602127143455816170085646187625781804298597089553949279652673469815363297701456283145346376137738666532791970518010696747801547828898424457797339332924761973650461636858256584288332686736385615942460503415935292241975786509370203657769911049937786246579374340147491488321311875926275591245627807376332677834786823509070969449275750316161406938805531447034815778081890012246647836046706661175847245232572093899656269879242647953548038209044181370021953775325688947151247582388134642979058183297785676828135350769652986012264476818292104745677776475354657208886643297754596633261296277973899912268157898525324331634219225591729663578691832203832988872515571005123379472572174858676457780895706831184337226850509183454988487189017160190146131865931664333720964350277713806825678198158987641083549625545030688844594585584773695213947184204260516217893627557738953221783088315406262919514027125795491855343067219826522503931938336131996331167707887740183565392563791231356307480638451485407941717066061723768570287324754507307330379211926711253458149795320861399493763173778261170373961335757623513203228762787620605692501051953738863498139238637861927734300806174314482812868615278468283381265258863385170894311955083344856982308965399185570517549508315821858768568785984672085604342628755905052167644881694187882764656002751461489438023026168788993905161094969633333341974241197086883529424870652278583306364565863312173492860708052294980694438621558241067172489394401601127792881661501737198175093340154680310998740230109442565476522989516945255848681629249486302472242253300117389468860637607318086555840970795545629865850070376066811825889159320619913693452195968848805099444328772786111717844188044630823374826236284121025460539220859601356267654864702042210944147837172065850427116201863485336592628632535865214554340998381637399846377997111329701375462619993122371253599776604132351183476079594391003857567856657622254947777730069461226284061603734796503793471773299073669449171507021534737165002306530420700559437974726040610596417822611837370345713090295718688683575086407229691607648375712768365909379174423578322560817512650941326952881744260343179636323912848050139464612800907314151714713743086260317997197792720862130493932498475619162521719991649708277633188132539883898587724264541399789822502708707450193254613418759764314476952084588948727192981960317781129159654182363699408111766866928766068044466266639386484990103897296805137473586862227191165404433997632510201921593820323107611601397403631305402763073153503761787228240230524742713483793963047230446625879277122466794023742685533849084917447151679180102750279570870043582900418540227197099321073797112781959143006031886998808454656489996990114124767623241557223381486874181921801868981820989415596822685513375982151498203798068934130110484295768915986260769389081066279418461320996996554427393771977972506607404356132247530409703458906426758867153342004531174547118205901858759374217636139743438671741235419727893266519412403375549683854736826219384092104616139344429208746656709427322366418612363674827109628988917478154723653625152772910497113908291395326212602840846098881085957723170128353409248447786419874675541028754883683633074729677562975559442520116011236463614886642225180584442875777502176013285849118027055468508944710411990543835515764424760642993076236250535995716457672257489234054653063171064196434179763957552062837899913085322600831127549950389823911084146948048817744681534224272390748259142473639188769273662593984735464607472403320039418682727594965968214476188391814893342491439472139362061942409251223687315538867740665831024011990303512238246490535835196649153315946629063900236004708188916898371661691738926607762153238246482752716407992065461407760668650009594148645087624820018913345137269783337847641622534177807412840849242846095854566614815607315102526408928574485630460338636175215551251334107505465765565786167076358594691946999064931423663207025172064036782381570494870878541960383789063341466943569720769215324496324666053534051258933795837861268380591746840729167351567474871761365584978718921960854133240447805954169888589623137238477931047204972361173511327310385977672385230313089887019319578232687020182702301516322668770992169597157001251793934403490157827632134737417772661407772994189878633582823807989666699141113965974880880595812473029037740624909760145563053581236193370212454358744361561469836980340140170041420190497862974724020673071613298454671406431525664840089876454599097240463881732317061984849242967327788032463583756924868183798458454418953705233734709655511325580487419914404714616372192007881605706098789113508980720210106930254175054684701896674893596512352992276445818905904035135148677033645438518569081030009692508373065202144469611300860013401249597404469782147317163846238368222315691332282842582403701173488345178120269395726020801184051949635598899669117308156774526063782244787708833353160139329662127506649173726782373178735605574908451323557567088395874438875670025559954193169756849314281037176191073425679775246142876130252678865918922747039419537021784700376664116372147807194513722557520533387687589201468138441364912126015992669084822177194798570969361426392660395311646927059558977014220520521271601364614180340642136327302573212572869881478349840580008495709921769193908600703476094253762038259278320242400251352150801565982701620840765172542848833741311631451647795394179892018382085733929280754975071215968746677812299192739961517194771549884214505202470664635360217925164624478833730933291445343856311908558162498026280008992440146668294046802409961706590893032912672089952002949160796937658790527191033166246743876313160283470276329921480142384703828458187852962065219753048205004153874625112445553796608343213396941144882229897701212772487908942157430132428438064965758168663976947368132763821087209762014612628827931351882904990609884961110851545003755429851862218217455968630689835368657622944961748335315978947826504384360188488863324341163595337594487220016155318504269780634889833300532422460377341059880379799348596541824468878659513399493221966957623677173692803506457479441250874834328799008387392667756037553528257511534957803145721343449363493349388299127757845555685505049932422666334243637617853699040505367541709094941718672221421180154509476498168488157502142687891123279962805920417705602765528909206289248527131243727233725303477194987090152214682484582958403636878657584316790048514344606647470160232605530245332719997419937444226576875444345809806415646784877032253692675519850281359391581426469303977713481285711493048158305968970768552060202252408155803564540157809316017698057448329658550707210796483796416777574043085015167495459298793923369061042052557374393478533549610597875025872957099827813274825679748988305792382523440994629872151180428496411128532971356558515730178965702997758699338709983703363657154304041420781138513410822884541947240597207981215271739460173618972952106290398176391065474884339539583206158994261905600049522800399035327621769404938848393686315563241835374304467940417262382910630346298464106964143510065421892477715258519785996167572355175826158796022471006604591802395355541338574799426834796310692906211093541113631784263510670681331687431991504176480133570799004016026758190106261873160312611786408576760663460556446692645529863030050385308812079884210027858473718409397396118913081575743496835650943687533870593773060211106641510753615051895108861089964291200356856434535430378449183327080732970855009295816864452657911236305755939120426075833862836344940721421494136674509533392952849554086630733036891220020036886116708841998317677104288889745470968140743057257289341414809167183238711778187342919456923988304202537916094780284108471422888413554036028859597402422805121206659324676993165780778418991303411991635068251399608222417674072414375016920889607242933639050153199515292793610423061350658930585159062558479862661001637071544746628605452102037845098359321813891017956198513767487333120725327738888776530794090957175508463457968144603594014013061920749122502025852193931220684327618248548933543555202863862032441021828002227446591951611473659792487797314036341387757240217338915677260643698333079382319302578184324251651294484345750172664512061277822677105586200774379401198182895595210211599372348481759503629095581811816907829907386007727354379371144741206467023944207451240076817109536909792333268950119953736844006093126880098879145446926914111633938433484430021842555328772072119858718951551328329907994790629702962255378339694699847919595516633314552770714370038549302461266113788264292824965243317633260425676448263746992107611398336332542005949170110590023539799826669842645731506685999884240318043234959581882354063997750069178490801361237640337639198905732580393601348460927221821533572079148642650400543636702924808436242251141769773086551970340128285927887744585230382888860756524383196851692247490816900841761607479393503470415719920830927181392439077466947511401415042766880756620168380276363896841701514457518926266029699396574784342720553024722485713602181882231270158238987549929362845334185841543538341876428639482445628243260134988631846117907077342398382055635721134283330831785372309276635623382136711925805142499361121828770177350763196045612631804931635498878417091627818617286618596993590690863676550232447846855984836997456666179303699956796540989807197446623835509250778583821803490285175601437452787940193404791925179761594700420693223623881570337064267073388777333055262785760048839597998696809887450960324587293364009953050742903954639823345764110338475771691449506501544324831512995007611773245777067321430827103357882500147965880811959376546183363190618795749933570280397953076710121675091051251606607853398437065464474749529369289245841801845395115530056208400006236051135446098941970996254249532591706283709477485888796897916042808028353782037646250184719744798684285960389139542760016916702262890950802882243900553903733255125676920586837459671304609547196397816170792205714365801488169530906868178268649435602660041865468039653578580920096937408346861977561789029742880737322187523031292996157563038830903595559630954271942484581154073438758542580694818553201911160158401293069025528073505289511591315606516990263375951292029710111123568385278856997589225732996450010488154425307357133838866214699958847222384437938160484453879090782075013503288440586925010413513176309968624394928082123660181864912012329358735083512891245249311261665535869810463377349480933180016819798640680702127400096202649325002391132786118107273992497468595986955833020822197303772015067437263110546585085399235006273997006586650442255651128072219838498961037838365820761891042417409747826994020770940631538508655257259727145173815415663934293626898042934406684099354237396126663892986159549554526609381564053376730159383376923249276159423103060385875014187897623258820276247546300927764132875448108836991752772339247447143204156708338655656334443997650503267628591402420034628355797054081582691140850224358866883602021235685399778973567806284843614228432803384223282866427816424236262227241788603179673229391722204869445675707474441253658709482643211900422113679554233210258184753594381958720825761666719573018028396480899439334386916937635875188027407404213177713979614743986362270924213797507813987134869888519578698892856609915614543042818534652807250055659261571721196752431517921026538838498439672658523949059815649160979813213559877379768414367012463916881682461735781920139017845102198752312989981771088795413971658046242986025816869785591518630709459650356204568170341453216303647198229146574699824978891140713404550311594658423477463530804313312019647679555914623270982415579738352580880564213651914770181643783550474339626019035842962693004080351214338638060826829838351528319606459688001137715759302902343308070766694124966323512917932707863187806768991810748090564391039242187223688237951718052108196741770971363024183024451802416862170476852887593603008654492489279319916092901899079002681652937889067764965703212842981352092486150574005677269890889276682687318537018883707700992365228571923760722505496702389823914483374482005322822495654339504566518783087428675130292632470774117855775288710809228339911294827266578161305015623369074657738607934783034910684170771409704899233520818299385112862563103635208010213937702113327101810685606040112781550017801870578706690768707622134713473459908121514520464196946904480820155298322477804589935445001473739638046892272011063271232301115014685341191178175749426107298771381777810614640513527717158485640924176951105330658491371173205340534568732509988328224095122740389053347346579023068525713658234381105417011346554332120900641347261223310394023212240007041759734646401952502261081873298377605509342809838705949484467771151944838929787602792159189483360810144917903387839538911696256316139593088463736974907847891338587278289215951222557574146644300111679635240151551339610211318330208809457764677984123175199702354975907819268502359931724362484202743929159270829895018101838607943055778781855631706915663728012355997371226274368903795987111239051802922790702143640018744130987933999360221266979197355683055130649939341020686557441345469197208148609706331558057178077887330154626720571581761555357272480360198654639310906064456454928059196726192373505912012406888054950215460836596598045527400993889968266047019407479257079770632842359389832390758597034746424951771801116922554876440789445135063616246239426780323259062354892426319066103339668860377615917155329372295476972131427573352710619665573001662506211657964883585960318212214501849077498043497210106125552756601628309725213099188226052536775925602935090773592003359765175534152016039895801028283840051061199226409342214540496572867102664472395431315087025673437737912870451140661579665081508615586461342515644900927783421453984120086774083888074246066264513117465856415044267815642514196601109514350289624364478858393068497840086610133921214707812841207992869863280085714511526044065302496064115755040653708552959051107568122756449433942541043008244652528299823316899195683240325598482981058837790498106755740788656846991543577948986709056944637498986792650279060230719384136523200574420347435145004221347521850359254837160033018007622893946379030929958288353911651523428271075731416922593143407271130923319859389796610270246915907901121366103567582643061290560877161654456983577865654557736620537141143533583484509003933195370289554420765005135122720859595060898507509854775024160003394662256881136512753728072702413867766576427994087088189972318931565479717666059128906465788836487110670030759773348424188909454069216849898644052818077179865473457956771554770664826290861351105162252863706249483106398104665974259926099701533893497071927405028882469483342622964540706511458929466184333783124875343094215223831434813060825578921693022098302672145268110206609956507667855793605066315291471294823342729267897001298071767485369490088129065823492514214798221185841660434997269158790450435666530962087911730883408878329609806390508823332686806554655177518412983658360109666050469238525318007797428393630620138998694142167259964824185818356562339481146667184042938227432165708945777845175565817567843362734135316583657455252723333462715590737426044437456773047080587776057848915505505913980388629791599728355814533194393230105662180752002879143030010780266738337333953285138610897650820847391926736130118811702032857308737761850546057782259570039196124197022732692706013259128317177903497506320705376877316652792747646993475567273267447602831352295550119303546171606120819579904760102969065797945861000187462862022188449951636656932612241869994876962635429033790324392351225115680915327825585467993135023007245253232855302032331157531288368750243794335033337261177238744158063018646251064631517621983985824744961557007671385537082403080692110578830470800586016021895353848392387493743520837824058549411301572960113532916147891165634398019028006205593209640115738624689304677480579302515488600367993727781580969809297915723704657612974944471063343771907989420539501397622862072277260725855761408002385082563525595602613778848609523229523972776713245578836844114294670814525688783534559164376090875388197549047998855790473214896656286319449115591621445148495905326451661230551746341974832035168396197227911450600164723556820994386530908672712195077617964504477178341541734473957038746458052936502733109320041370379450470551129251866605885297630282628413917993965496322842311597417421694455686129325480942032415879939466500667283098698600741417876471726656256280408646052236589353132864980873516780776969770849459018730650316164026516766447116225118761185587289549094346525615029233457311097708488780124263749098945666216744669832486956891058553384229051105156068143472533364160394630244755039832464221764288000654308972455318057057044733276127501797518406582995556792750298234006556256272544818538985504855080993373523295170201464505600056557945805306260014167600139073900184381200328058223720782343638163474188688464972017827637149537140592036794839263183551408306796789967780059644912304273699297938379504168893063098557627869950562853892038700092039553904548831984871792508729563751120736959818539695977390048013416113841403087816976763496113642940102854806426968547662037432751080353518504519492509901152466134541137502211032702821330482575143058201076559098923332553279651363867940058600266995022391315124088006950533529578613428025842486983668991646068948638085292155868416347621958577460995737392556778691666601223958616789043129487414143072928226887719456917003032260356759733215915051447101276054434314330124388639580724672310641006970406276980512500014857723456078376943941064105538168671277768928935667296854501460119898003967706140796850571123123095645997147236452221943899369814558120959995455861545070725634534608526312190631521510000539419405843971411491570682185552256717740819569096632373512754781701931558094549285550460210215092632001753188694567467257293952781251488437058527813641394291147724247834100461978120271354763914169760037408279180094389297423953000909724413057861957758681240082767524193046269618764719333437046324347723159032074222555809210219345066885739847875402508639305540156269314785809568135447137065449224183896134574868302569713493447772794778484067748720490679285992351429899201559514172270142235075884921437109097432632912228162746679422149179935380963669795600916924826068073029431042963648585782519524589187801011307255948827512115435289164778231531362258531877437227593764937906071572414770241562713518036924769541497307367914525557825551882699567021799068250891755438212240439945529558003415267122823715096528925695103609379033141106456841721475718619022079396906284936743217080173437418845479753425969690648077738896756854645089654486489668977855803913322138996186604431717799481834717713930960886909294289706972444710589327467470878230235625575402923184343050071679103459740656217087011298061443630991783363289396598597290027259620183300281879764123454970918609732618976773540866742855257616748298626348361088387688808524606683419673493264697922219808619311412767840050670597158387118900201615589221174867311621182103903891946971649250614909296817394037936449519188588552295552847360054909574383993418581219384784112051222153073398249182094515382731899319797399056834434329305529996726012966780410928993736208660517223877511312868925957928319662262080796700121650018686545464822429998981533243609097600294350104791067893058504509475728292736462093655569613119131759907281465238443606386311244461183006440281983716943682355772966486791013830651202671620678025628027496066052968021873848650065858612683805679565390673602274374118561928020067035864151651264593787704219847679137303904704698936593630585122995365007927658828992415328590402491722179378911375464146876065136464602606622976293185828475703804150640115388331770208077058235746734883050214384729180145726344128723904073514212768944454138963660109583569364025323109827569692534090572048886471464861320191414127883773782554176629974240298769410434669676726598397189417794794879675726873726993025925157088859661870748987597760804062404528848372390664231401450788365115267584959167704822695464452294666924247878760223127671239095933346096097957097888087243281662851530748337582801483729545311637166830091233498482600892099761526408909495036089850737525058874633693332314412157159049552755599838670189590254475053580858408360936007257197512864892698047737464351167336568985144790832700070401077092038324853948663305252823153014007040563288278775605975327911907502476561441723049932706721390145358063156645006495908591465416569957901501162124428758864662050539521493939305620609248493997732404202485598073152442281180647316386593660238125609594963687917732607641320070480142015886235367413658481413644140775079048940349501312476736851059462706115190003969033640337283554075909999031740804316977403920701753105539697730319363413980925244248204361064366413631929133480678014509244299318280131385967944929091829111622604371408682459213673064743452683475831658533795267615599397026716477791084546420717346095093762094489244589101701452086335581154966949413517591249868942700802538796247368293631671939400378982140729678064884424105744106994055734349496429737857323326458941119133212990056859165994548651962356562477244437316334039810700851569804158656884356174682487015877349389994029368874051369633027790323949176036721940776953128843643736141935220806935696149059671335191270080728018042454920576878665319062462659967006650771137618368602693679361947152333804094615872676551281890027198374797234892700727164622643698114078925014990320551735463926714612824236949775016039317619157179450882756506233355550112738882073282326804953410466010127948381778499458260209614566326087776238603634975414529879432996039712389206358096109252331452666471090039324818744628095873124813116580341467751800021310895039735470661940157733787849402025926202129234023511655667006853377254413318215550865090366433873002478454363229729399942830782935030848766149948345623769045876153541535060707310521584105009329943140637601350319060075882153960587281951039099492795327147220726207782635051995877665640734184029765204464136944291304855932405580638133491173226724171245131546920041090436794955060873412227071003655282477887795326252710143709754415567164493453141839399807613669984940401942160105784714353743469114450320740334943875385714839659451723759171370797530491206481750249945452066170031461358823312308974217540495028610955541597318321379945613667799426688446321173807471644552998572329520867366465133973635881662884609410720759449495014183614680751591727548785108885205797434460672913631003199522401016912626363718950710659591500477279545202973079974724611639827482876657514074235025320466026277048874512102926666952664599254795865285563871749400737088783112115396284946473647116105780750899780627025489680676934936953180274770921897319361994741432407820162734006185769032293311328071473821847172667689976343884240908704624328967292043131101325472241292380671973702854813350121122711365357948170606299326116510619015715405420303426051579366731955746473198019448203480765165471340444312578268024307394395460913380363455726070657707054714238772382412189010235768845760069615233392787526076032155612385477670403157000468859662300937525772448665992752853502314654753003593981933126051404629904817910367533690069907205625646226448667704116405427366731467359153973851385878932476189651632159556616842331056554042063875477045412546449297474515351246492488874060047929619811612875844456210889441364726575451207643737639994786753841700392784534065857395490020474494448159623794466874519274414771414557815634144124063175314630247181739626404643532778433129116334293415270485484269998538374508126736299399696657634848023338657559987432212552919872784202880323823121797912588798513673495856772520135616387284998179059169295298707160323491437934134006427921107089464760685699836580638574882594665051787623336022172108901234912691819075511343410667958899830843855149075279116835124290310170344730342251653339648923605895439809624773328105151338010002586282036166232769669672796870269498888946283721213744716875178192116137996165209933524376364265311449248809731018509627738506791699931526778735761604084052747826056802549695593524856763331921022798473069805878866512659084416778554550696176444971336147230172429750185568299098374477932302618465512208892992928140373594800111897735466350849082080802715560199722797163772434555416611900599930722815933827449855474449739469353997523179403522541899289521916320272419762319298507516321270835143047399318160578395238980467320640398171025994104517780368673896719001704855521156674228141733938496108213481029636658497718254798815128133386367171457021466449585860861081377119616535491056909258439178002439579397242893918979609700996323994453944778545111671457527081161117689485327161395865206555533576639137566222605660918525679077005987311231375069231422746868121531381990528182713126849675019517293127318507686007638690959257436367670220702269488271429922637104833962548022239538465693841430928522727166095011584322193086169007760436898607839005696306230999889848723802112664665157475074587320222551200604748978937871515354831534944400427989356912299294362991765751874415184025776162490865186181066949761865199052753478904017484517480721154321279129310251677822506660527628858503149831615641890375379927615097681741883426668675940305722073474000233825533604742632503303442320911557815900470319946811016529459830748848603343648503787502844165570237190868831804703818227893083471606019658513702915168161384812074408255734666794094488265606010719705995500728326412178642015697485540163840258084023412399703267348641261781872309127429719951842069688029508681792351722360713479083014126228750353946325151272511459547818155316802048730639010753760245848882429908847235213393651444757578933324724083674209566347672218944013550636936037660831411146473561436206843549231936865128667084433509512597545268798133253660308326793822128730359681974307524991182804640516585976464412309371269506576691741974916554352714733810772293752043444307634148670536911128642766835652078897964636044821176928567885153204541707487128817980562089964161033341464135209383432894865390906243960717404557291400497202419884377122533617303940397407855266806384994305122754308201180855347462427114492269136855902703916716792793895614355693738313728575153758045890821580971957091305305302539493896234018298243274654609685991783173097424945539682622053344554620989856592146444664065856343614119793249634782281046313948679180504897405670904460135475691585068104549587108707582580458596037866741148889728898536953381764307096801948906936686879362423594532551904949981894833793809692113518043148733099529328324091482308232737657746297606491881160311190050097002055617911920846710739737655051719855103488450147019692387756940140086777773587027073661417376717636034610932412858715162850642677317924652466114712975842233048691485944350454515583935979581424016651340215951877058310978885122308154385067984307069724135054523325669875060823167632086365859135319366411586095779946230602741813001821503977915291687627093688627511393578283873745474484662392507096807587503320559592840246349279649114618850772512909901190771549503376807359569150617270452342957590687542138512295911135100683271598964829799643421979119714756960420714954811202051418815163663852209586465143380838144262670713731273128495323545828545718995797024772702287434509286532855586521414097382499078149571943745743152308069721742600299869579255757711809062359353981363191825655211213756534176030197329577002686456040121100388396243798319533878650762028848217014441561553911926763606585872320834265945700226652234951667854635480351225666310649616577220189005412289515073880313938402726536167632180241497487058805805787880554019589367629582236442052129895654840594600445641803812764812829139501156886877775591985039155295800645151333568869495446726543951889071542664977879353052474321169252188362907747946329613805938089982963006334875518418896373960500357976100454848615440564464260303657055996658918808702966660110244324171908823590872429652934749205633474148978580915403466041439352403264999432162855292676964709205249296630524340731090327567422453289818555568855882339766826933295083413310458167242477694440009200558049627666111411478065226022466611893986688154580901794882872188190724484468107299240532948564291362802374445824441444358558989052386836316389618879349286654179042118621363932444938354148889975354591828727754274303485614517990437863845628076565898081453097886200560718208015911216831780023139834036356797464606236301073161506178478521137301392401869460351349950974505398324537020899317641085544612657532701275401174324089475286833264805556898952377492602704484947723196613752498209580951103332978804428730332972503740665185105792932931871625385233827017828706002740917260729781113646043204848280206705274792033416055997343785786116230223747828393668722039552783934227747474059736842662362088675562436108276382823005673161321366348073232443142116229316967519129421083572790093518276646088594986772059939765309110167488577312956646301997141074453145926266635767797438361155651024602350270530289027418533906189867527470100538831832283472652033960077982330093037729330660862144942118545516957931825143334571759572816766938480731115084021806806886987336331974467526846778722467097322361911372709365134932588859782660864436333890687067764775246048385486724400569341619947510109266741878566204209049297409584020233291756921531168357622817709645733640186833890351256204225278087504898654345022082839380250847548768295872190779497435077317870562023748426667635136000029102573478683954693736888138992886977789696383602324079300462168078244108820974647709546204837430433107958680553251080899945186082683948034163765532011677203955757753684238131415411948695702124779679641570958885021490915963861029192159619356999631292608795929093192785939299111375549416222624775754923103860340898728670126930203840849889811770551590520491971862172406335087762529069619373225220780475424177215051151353219502541519868511482830488467868631946122405794182172044762310618481844319024998691653613610508669424148287057756873042456998024332849844240397223530165425467715227291509632909449101502878080514801384499097068071792985304990794720324108849612516142257840780310672879022581983174631081427323923858324195603642850701745547367417199942875846186334441951470154615665323204582733152556716549482177903198505199267921035149956514403729894382137579569632717059481986216243750674081655600607546454526293623509219640829653904176287483345798561608346863400511405249301610728964205685537464078138075118535326795811390187224611949504981920084196313999849280943104559338386277453766324961690223085100485135743221705771358325764623255756239222044670588657444096212345660795325941799188023758062183648971217968984244253586160557564465091407582037267545022453203778423049837694217614413271622336139721742504187577867424906613350505239630248158813524716722031348992256573782863190975495842873831859145805390403591065400457770239775829915778891357547533238361424248386160011736475552473023393117714449437984731984667824468307196736647178957210583509173903940881497888514396178016648673266465407144394963863549810415780775778010165089319099037261563499120613288991991950301418484038128662635048508933955039070848058064838138302358228808026543649659686240689275486597920041947535857048498767271247939897308283456119553857821029713308303796065373055941031291988679879558051588224760093047582079034606141881323502786087382236186935801335103342507041447143770608521143992243648954598810725046578976336653122849107052426648406734733498893601705922865394297336640066715524743617244094317278377724680443049500533933882663887471848115838105785319098044465225370488934684922075273219680333482850135421248735516643681171437142539510408630873471991961579841245164160322459547303472971205881084835589329239312106350233330300550316420215082490206693972374481639099727911403244616442654968361983409882995737711740243352019515124125719009778780072905828927676171526524803216791619583095868127648560127565164400216382147188146441349927391380428631648503800264116169074428445156487146671557093529999523280480123158963391074058140054433254887469982902765866233700614980989789617512230827551337902591565778605631950777474804614263841088628821235977118932333468489960135488627067899821457617304536281904555288613025997397741355887607253827562148319862827766974147375968381985535501352211959161605209271210237872050284509258981408271315955067155071417632026304871641006200122427011474927526503858282528534690202364548964271146415838944134175616528644503269321991921450409308587106682800565943466969792436989853293869042961046499317089568005434566754149839014003444161747229143277830605249310161303823175511092270546044419213980649858095446345467626119970921345742140052369422658829153995229829046238391548946873529783481934356478423716338160151717760817954649691803303588899163312321556272822674871088496308019192766831809000237700978778702591020516649000497645138555994696814135854999054710351361452883580744416526593089870415226247952336357536631430906978596895363016149235197804944727446703780199004308479047117548435241214013742905616044899351721923480512181007272642794508397709580012060834271292716374942463551918654824247158467289890896110697113572182421489719097843944424462812404026586764082956974201285869747572109897835941675029095303659900876083338920375319296271828727751451859116259898677425580161945213404158379986959977091883834748117602362484815000002759726902258259356962685364075812935400311810996178949421908177223371762876761185362227836599829847575483497830059934804062513840860757177458396095023141273494595568934763848592458129679821950658170211157681666652125375617634755810810668016026743025070895148009966431857469376161339010405932729127831537719949725738368574617385407352219392667624704885052692260090932007937627601631698087662959600733700028842775425489322478558786194411529799442830841737543338448051954359180152868687759983553299620575082876966532925718962116655223876002746307383368654124744816634503883638530919828533584998820305768674840950252702585344724228284633652861806390215557240889213393138313351370824086576677152381310385581891428707709659932309734577733555104963513373635363202796000548045952975304110361370293244506495849751038292306725546650679464741878089560372094428256277263426748824997625416416062518378089972490842487558675058656679734917228828778526902622116379715702082433434927968935285258732842013550379745329726283989303620775969160990812382503253782802730203938172601793725290037471752589905767138931796393038205536212120395413840962264708241665333619899634061552634702654260136532384289468260673950543482432146047281183747968323689792609818433767120372972118446993284302096052418972114126126766525661052627685517347313357379685275075927419247111327394846656351212681828264181183934342257235133065370841308406922127824144183546246971601966850662283210303078203530030654195931521295017573628909115545236159970726751621809039271610388200445672159830145458408557463117015513514656034735041594993522223903737050199036349508486479003271356580980304236204981502624143691441225561651232862370555777589243812962420194503531972501851160108957623774576918637219652605163309295239718743579764019480748325395895958486887816193837352515108985743855586507852399316353195364547210281914991603386197255617325730335167581833425201036849172212943896504626841785198675650349290080260005950541897758869265541593370799299403735031618842332059634672558197460327493004703569022553954935873173862664837963956454357518043934553229548049879862164647783896732557758097535521200648861358415482019258853133021913149372662113620762674332634887024873888744694356139982153467660671438537665256230430316602792477470857333725616485507478900232771768285923778838046535113899466669795517723253316884921216214690678316068891455491890860243592688579661195138466219257169283533811540563559156830559655203874619673546844286529188135294290109811355033616146707938021739386732674293253589070815698066182998845632638908969275847652771956470727943851052088815580923669167042688069015567601792973059770555435619997178280046898772171708419816440879418576962965060235889772398596114826859776475009230549244795741505997052250051358988766904211602327044440642118103918734488382672663065706676298027000285097324157251667213676500782476559884173824148011133446135043400607121279533805503196464004037146689127449189932718550877663816686623302793456289095982774397084267266416659790248910556691370679602172451705089025985067193211097531095476829269759586832171598777215154252806703587392130411387686164881860529786124498531113319888924060867056434622724757651158180910526365943544423146880886227395066594322906913078559356739902856915889203578354219543432174938642491751084350966382578193001388289066668005057125111349501943717962738797020206459477945291988833220803527565837522864952007953653256640648980339932814161015362522125371650511383440465019203036480446764613683147199309869738170041488402630340135087016569303632883526181543006491302631724572965386044756926752430376552887230967778135002567374456947834589309695171421484870059926253903101258416453400389403543812305484071670503728187023652284840458901365337429224390322525649122846442671710995108529503282722658277505419379459995646591241185783963530220431206390944175950961947975846337780068307689065603040278294220431876473373078997203618401819283642721341337258365519754678625189200279722849200674307518015256568948191087359074499482807654983306506524620871536794613483308862505380247166606397937621470868520318994739125578796148271838137561280378528402683479596982495432297832569260873540574477525192191032197720468337356028672541809389378070802441546698451193132104943043768562923475302196647346161545051987866235107033566975353242032612409070192554027873511554580025302517715599771722681194442299759890337084345722928935289870102190598850792926899851905021522367152010484927963406712103581329588006335613360708354724139423849726832544641073213473781704316338988894932552006900463993542873236886802418771156944054167329272093075499945438013039678608559789666305860879964388353944256185110641830063151340603284494930294466305152733380807717389589860590308299977111589383877520937054497516832190642697017585413476926387348925421035002449073187039039662992924379082272722484674731546483826587272280952035276512479119921739399360109548671372457301671020033341641777083888774206120642841748337086758810234904154744381666168197869071026153531227236064241604674270022240290719473924984817996677219565982316594346924524748894100522914720453991732160394924129696724791421671391237930438617797103611298578145027047183968141525755380935018322055662146234644173236215085973527774914122836337871341403711728558353408080583514188937699849410690137187111823172516237453590563720500906835059977927568640797351290599414287996384824020079166952684693542044865301697977218709157951061484635028518150949608711721008625806800865203628271068501937094657877837484962867411277245679399746010713159822864821135290533694605197043251228086646571704306414545126157325417927701220810789308617318999592975196518057417457062028714989638077627959429726738278345821616335359245467223325092845912869015462558430170535768730848192540945412262804491559126391994909341599340260429994188537650325782230318576284084500726224384985215953004518432117908292329358433905458731049406097662675314568625392311863869712817432150550299796315142488812166886167265184718658790709187557712989122391800199483483990703959406021517807268721291378849864767802226056928950860991324771862466747020097325754163829207767261218853150885901428006809011724008485619654414306995915607522678313297054164317603977365517782732035072093854905428182375797241546260601594974610195300901999442011883614402202977396806258269051675612307645046068838712748277065388919398098137236043904820536105946266959277265679365133405380297628385466890245622504174230708458491636284236221994923129188235782299248036102703862672738268089960321578961319119338487514486398264641056663930230385658068028233605139373273376796724746768767873918891482512429008829077193263727357916766444581888125907086071967739166919732272049674924685610212591353324390184654001210548113992398075608837781926489620773221288065510382434654176762891091475252832399800660565774726578795165836421561450028474240890561815220041469489866091677296830896507423266725996695825608910072222223267673549979324191019487798640034767310244980116869945853006900721872642302577011068182504910146689893662975637627887370821672555517819800247793521167759445288666310158219179039585644554839958988255297770406545819068603190309233917120660588248516922891350038715935889510835062531030617774850614417262429396916109483968093891774325544493519647070561620751050352308371051064575143553316936448392452055159907021397484280602563652842051859543943259220997404933357363370245645008568641922144825766953962532831426045717245315073201601685490792247767890292673492943340040822371039483211414169988579225657766841667408749674698333543968741615560196309867704258385042555933540017840015288034698597319034133879351806856021242248740983254247589872447546855179165063770232075137552943876477390127941133643937506589853744092645562438275112356957289220801524845645321638094112211834133173457941519079622538726201250054343480380849453790592937083561471961151539075188403910401521202287309485883813916394145434293086916486405599644760614734259759236781959780814891233191022772040339357577722401052896575174636071256951128158981740203184601911127113586339020500263766354260774412419140919012437823142515368257062328830353190484356886537026411408742359695658361544370833013063413257931091149578989017205567219187506314177447929657244041543076767400609409165775894214996353068651296940952137483377728977710439887239183737140297564966719576009167005639491264619833289818541590206195728256939005473866973860560747886674926482088991266662365360319491887316611126692011133788937374877657540312027425703046863906310961279676821153539631623379528987826681645309453114805737840932639187947771549398976224539759425994868467081175052762596355099937464786013227869144045209198336885199720327397902145176931691212802897814152796841503443313538978101920085722770244079494514656963861480459610836487301291457872891525931274156289735273217164667007331944155455588291639910382701290103391705740864336072520094977808064872035994460933711001387199903855823032283077998242869048323828297263266333400716791247676092195937634891630241339170179874834665390701420511928188884333200039159101151705864218698327243329008597022781075525778862187096179503205542307305044742478267887350890020821756866196395776888915126273917773271548275933697479766605536580599546590437342527007908003319508145761311312214637685524342544263096755884896081696461401759724391560454182489236296421445364318754830715530451525410902881221806744981341099717244908696199137549800852385586051337768831790095830561606098558245924160260354386107901861284954891984855579608027412591258974239711779512875545010184829610802145592233785607823395574543842628352949990343427447767334429112129117339672709288243228345854331585136418859376517875841957471387065288829974005903011986215913765140320811356307547853331937180403072619180292645720185341282346423052339695394788445578158822665076754702359290139874094939888773332563944616150811379632909192361377855037395577331616754624625830757445852522026591875797335869591922523093937191964030166102217087541498492747260114222156161444970281419625594029189487685989401628568934117484141302240960328427510603032845759079370721503415940512495125853276453733488875912574402104408304846965516022085715694021158416820948362920695984946233633922148345764196791504359791911734143890168842946708718416950124608107564809121980065276443641339141617586259764764166762612404167790045344924282457255324739522347431410820831577744133612747576838469582316930214046824295682563744456597300634739235948855141189862248708386279019786112796726123949359982503259285978517100119458934772502595531872222628263811085362626956882732407295497000863372006903703826718781289139293865838858815661613211253744352652698652281445914260188143869032775356778045898604934074404501104171139666819491308644882894579833475213450614715808215429356302295777399158827194830512264500115857972213145065681610176522755912409788691183858725170896973906879444198116550065098799559334492981997634481009603705573612490988896274291167708851831638674257753225919497363450982281052089099448571824212391728253235393576815426253550220443209326392427574812349759310194424349695604208697761326398135877112699891117972610339058124042385797408216926667980445189093319398714034628859399299090024168905045511366734749199672381102735639550709605039955879811389159598664712590633565003946156687683194386785196898041956957384769794066503909557163219186432196780123144833467266710153164340242485962892878387533637566796930862933421292635090406668945866846092108788530349293045118812197550531773471821813786698236173407100079828394393167026942068015070481398526537029795300751335304729073299768173638225280065781944014097111918412324488979631547741584127423499997097955514723584023090005490668312112782986527688407783701683106620800379965750381202192343830896742724503243503790559082368550792225478737674059388021654209747148224664939014474067123414888682057498553451462501389096850506781615165988274306942392603416274332696699306253903724671160541585442304681178963667275095357361875324307420953389942296148104895894387416674120763133286912634314841034753826934985380273175149854793145156688558247588313585293333342221980751361147237574623522625465030521730424855554120930729070023676718635631562407727623352182033824939756338674815572145091771350034426040260062635969374978019685546060362075790011068226534988076225042242842407047283199591840163827451511166964257817417320927101022749092445407340228785704464585100101004154798087587307523080703609162445358285068977485597699678102759471260165126594755022323335790428898675859974933772353222178341260336925937780165221917177212878038885129985505131384062339535680577959469096615133749232040212366717013079054072116580290031429536107459873446986666446866248015207765422573984820031981347721192945926074384739840440197923957090806379510117392382718026967588480856161277258323441676475420113081984815832339430619028493903528951516340642449083527247567875311082448566729058152998122053286283242291678156735165390631514085862387129613579923222264861927090460719183453796304085005860891031392071207022448855541017650970770365330678161448290475871567669188225863560328899212999936713393434391779307848066310520063368928738545707828360285527898427497292333000614655126664187105447844011391857962373055680765490649459480878476888916663725510160291025994820604109325791404899386082543538528733208809218385505074135340642922004268016190487420611210332856571808291752333523005172910855242325998611054620953323410327542047587182297203148375725784403202348672150136114431032971457973231636235336243396161828217152051659940858278358595475947668895746352060072850187774865808475051624477644892247008762684373997168521484233450634826256200681698152074247176198262660055929310378992448600436877275603911372022160197081628513457036086730878713521214525409669692058625688166398349582078678136544224085954949538480103543469730235958538222904653175948797545392477037595602546611792834254355251767016289626217615434746700293789213973391628283899268650575882655543283998870967606812661271123956433115709810488894800911253785774725154541212543568298261944577605485758896823319885041728748255461562622122931958231786562446268163723535732364931161474046922541074881316383657486777265429682990036479693475043620256568323878327045429516646556022456337170063118995159818939476821556091463137824456141462386488250667210326429031043297188864244840764423469857037065603554602105415784928994835640748777120251870596631647342191864294739997995232407827549537409766202766055911787274554919735450598281201948484454698117682268612815442365237249800417247358148253573490737327900083168750912226944114486093665771996511295234582688761051837795823657040360896203931519597247143311642697930472542753154941426483171702311374988904748747230434636894933812436075209727206098853828807522331724121037355382451241022792924789496049987724455509249145266202367655135348787590666983356476154790156734895278115435416134163324462532427775363695914260947918899309656856469742457415985283798525966303716224322208341964997625318173764026995566262324374920119605635363111733952797091954301388565115277075186480576855472259502979645537212584052471653144735535445588347828186387045951241230778836244945470272594578429869814658395151404909922495236976479011184918855312141137447008619226120491026713480940352678907035255870647310547758222347076835566003688008095536615258044346898662004145506662065822243906816239856788774229837540573977363901736713136343391694446029826341137544323782602407658359561526770926678889135994216619241391658413907483794197681562618988235747824358667959349708580356919609711046679366998745250937413971153122509516009905445902831608300506619126926965849554753601384718182050020573819181071714491009869778756323182205593737701175949660250404162002769041029610650893053366599449380186426803526498967466558961181875799806685209028435880833229808114029562545437672624110859661836461868121919287441302556535814052105102306714938982279041808284791782152301850369750533684405145210735199330850004494216809583412763050195839270670606375313419498967374322883858349080927455372858780919964527612519922026428622117563010654881150555492347779935692206183536726075373306790139701377629271817236087634585197126263942036169207557525657079684147883438826015198636286503491874029886499108494270506768145969617190861645460634941811501073646751707492286634616846632567763910655563010760602984148275838151230896084685524724849044978729038215687415747752745387827556188519405174029787537938874059296934248252306008380362495876456202951524796673467409462989474111075685262798680347886917433083204229852001286848517993229021494545458524921420612814021404102672571328177989480721795839297517696019063127630324017707382378119141007772381743917210344826520912092334244658303335069225612389977761413766885229747463991293359105537675453274032838770761702079645503867107921718631435700711633038780191423831148666033495697461778199480139468994043986637862821220752633875480714315364426325589170821765329573601736210672309257190518846872676207611891792715750745951141805926886350494157954407783262493388230239156301320223655392347002494267892878046689792650438974482653414026892378281452056280929179683316171706900163317175712304987350377814585003454674654283981797678404897185258182454608739245598508568198280556404714413923280913328240422201436923494253703712183123065485244516449916182282110501287035367284831989763640407703738928471587756586410659711574481660781921249649124134249402461285303435090401911537971189019423419680293503836664459753187480732959379886985249768637647040448646319684953098528432359172647333572362441251537742771381382914296334233995982444317599858269078598992049282529043938561437494321531811235072388911269103002755226035679356766213952216670400937275919663726174242656933036964986324923329108240927699021880918640053271224744527684850402091338066992068322664043553378808812937834502989011918966761989208218871518343109746377012083505361533113442948524433341129575393409119229510942263301169809967789267585174204170156321250462990225943891991453620060351974475842227083963923645686014383730633173574136698718799513516716246823476647417415562232784577872198869729231800105162747723100685365203736605239217929996009402405403644286995897339454588166430950752903271023179465481375173401502847459083049021227800678358950782659839697211544572533080299336027842191747139812559518331173984774352041003847966066702845742285403661052348921531446509901819880286103535644122198624177298146406929098962167609482229202169262358839709357741786075948809840536946015451449064941423179687067880177157215429019828007365364900551360936317804611500771919688670620752168823948884616242208329125983816281389778726949451933252273291604312290592395579543892537389361502564923236849339363819611323472457939059533253321754774526908116113403150295320202219237488460786234521807577163151069016465187890110590317075332428783613009048243250094264931747420736539803500298929265516108797804566148888162879581166439263566833964122028820660888338932618867978041163578896398714970688627019686855749200205204314116407760781799989489038262932491555964674578087873447437395280001636650858910291732089098141214368020583977644576170151844257555590908049536144345793930366966696458358441928960312640025350155144727222167224731257728066557867974290606533947495314226623443155610701109097767422376754286322288963101600627816016942870858708413189754873363776249862049578548170591398709478898691438817260759008125936721142807244123544630357683892277266309481290085723744905442222760331200640413322498327952109363012223622391055973185252979362015629379604910383678135186050855159938857531143970802802432613104868436327963541817891615562681252543732710872634235889438260322235759001351208616892389326336091934458968670585753683500950649500099520215199455828224159065672272945864575286805930451267522617513405955970327712538392076447114288181336137694603146900378353028428011880762038421581027481472994783928081302486832586571002766921175885412743772262448061986189666130022476302971029920278824824663748566622940298027432017153134318294143153898599494139917616375767694788918057994033003516575607894657343058524143696857938742286467872659236667790299889891319298190884690189369839135176909443047775585167745814337762304188967429656844593328465962088938099209824474543851217419262083446120409859666220409285674946554956269176185863974278950533805907607539216157148284224800631029137132454547851186270186201919173370746455571249754561426639243097237101364633331416533430402950972799472375905471964836317148809710888979694912889437832154771389559404616988861168389710361173597403996846314615096956968213245706854420911140774810576424189306912757689180351251590768145169816636071767684460541627289516605873407008551222926571234586565807027673852297369139252096717151594656927413846498790532054044716674979240115849669396047329954218549680949032926895798896177298682803229825685459173297161304584815788674831335172352698138230259725047547050602958874126205014580084212153463662866014800023870027264698588963404053592565528036657824185868380611005714967926930096327974774383351877076643662679672260865044880607984487480585557958300034454297448370521976242001620227475492231494327283526305539826161054318469486619335945697728213701516450648201412335567053386127640103987495710372320246701951915576094076337016222042756914849650598105284029687967901607167834391480554767396980841738406683715137037262370738436439048300395528027331313335672063969581692388303389206480038081379335878351993318961421971632322080758194578774044699729998474505015919067130191078857219604435459143384312475140802906827173975453934149109589463744759850058859972770932233603029198130830999693808414519299593583335180695308478458574110830439723620582584602436027972975658207149944244196300276356353748209544004060058469727494324845166155191204955249273874704085280755093211946595408187379973580452342737530513654891147952309640753886867584771876741402973691021034946570886363518665986520673473785170906467223309402530336581375620846001843740702118961624494834312382034681409962420762336172616931441967670764110154521763559666387901951252068993397171385963678717003310193594521505138539742781427716903077491041990246255234121112953266667136139113865914114138366686692373324367297034371004693606720802364225719894389489779746406277355440234702541881969670754361226954260950289792629697889499757080442043940410795661291769799728230761243207577883539128443839597458861802271476674678046444369772982359646003440022210313022915730851332543847775723101127478431496901652780432210946008885826615083162934646660368457569668456934353235132634165552966672657619669769041085368936409458940480573495400633503478627478829973274008191962178779718431354635777453195475827308177710291057977711771120762025971390421324084506233364652087562003154711137784627608780767324091196858730674438908162301644083884234640960668286826452814333442722037221169305256562707264121389418438291250598885565573119597605845858167182047007058494883178206388223687800684483751015238464497275016225015259895191107542778577523771840625929521247069669495615182410590202469724592431265778671660629420940992562635184612247820339195012675943365984649065549765451697762962724229897053363647744075799357012633421989625570774820246923182019199653867395408518243943513602514187796249370955583934075705544761289973133699336518269142500469834850082422419277131120383587996082575492990343489044270924084992986526111561685644890456705737599125987857311167065558502215063116822841306033334747342683307621915861478831432260746542175464256215108331365792993884619988434202537511210660061808732227323642469973110047429633290925246899167675042431671964952394749763198384475166489662172018613729885930451250653525509550717573805647285451653420255963136991453859095467941568269107990439477505955987147620345639835320153516958584588539304139700282778138018914076192585611301994008043779875578161469978621222000995378564038542768556813288165616233981396964301098652330227460721140994953256762718011779274162494163783642965445466218506928523927861945080623324931861442868722438624459684726048327303823837478689707397173207990570264922621482843372534415762138619358162784225088319567487928622596282129191833759295430823270129542843478813556697922010514110007197478385414790472117071031697129087215715728138473735578223063051071581962092697678712182271186785800104347486269031891458981624380665479478171203267965305232986057507608262758522320602098866944123921538119046705496184784330429684818437587825274520088629890291121806802657122396664534592213859332763770355696356193711283244492677962182211394084035547135103959976725540718591955661235131722573809509120896260482328262558089459969006656163079720645041787373588271149148526911020826115331682765407590200956093453072750971889317862349981673776552821405912178717923951873042130911209987788643802124015056439064995602380865793709294559138591624889500528427888439149632625777126230379353877102469200510791348121342100094863668314153568739676413319709615207767648839022764505161566052755293367637551318713899136748528634353758155545523447873379740685178502610191959478498683135396757779921282816252576389884121484563968897949971135031033922578813500300661026082230814537866766286657713373079123010335909335432883884300066749678139056884943961207079464604871506403665460107067568131454244269301652432983946618236045507877919581811343732764505884005367954777127744531390922099977569954596760955743917549128178533064753590356472193647242183668834003142692310882290044917482455048040235728529918324319211490006378936749100612503020776687008492817443080144850752015566909658702266289904995604271548103894451624885798153379564300154239591295574605292462251710549996371997730735680120462741953546112905868791487625079632194345950406070377914977631856101715306096321860348000891429565430439655185282184708400923838394227827715705415549024154675927912142972456492692981952284671407840205683391393324483764669734923086804276460393335284702905174680474446036633982309157239166010858739000491730188984003352943604118547236035282611714869385793293656551921205159473911512625348110975452533092611523455185051137487767118088489852097431582137506342233785114298653241818130597206978209144058228652669963529622546929950050944931008023681008492048394165594829051769328145577749507598002925140468872369642155068158997118027846933198335662324436707116018689634098619313105454608605532765521072908029012872079418770411312043043202581629938127862258183106694074858363047641308958757627418914983590261370966820731152610413129467719058564378262653548249668332094673219852809323859859741599321538792890359883768434521900043111473156354657246674490852870079406768744643267858490214188720197121548849403515560945113533762878441665563114882814742009455875670805485457266426002897146123940374714194563239839440609193802324247990017549529879621214393952409196224510355262054601001016684205225529345860401914777045024072067049914680430748266302405379357614281612324237235813635858863638825977463910986330594776252360326218936065443405296544108804877534493523990583681438309274925429179440382726379159599703509305299188987922332200713281998623140443704434215299783184234093987423773113217731157533761003169948680640226921351627296900441697744472984554880944317750433099076940757534188458817114882227794097582986815170738271088260860805455674039915918604705539190763794804282086512119990508664819300924987729184143545420255529148331078900490483098698778901230690739766783073343193599788750890494815399614484907837506176560597401790436793602736084441469191909987479213245180462610635084086424804366129084918852128058604576883375938174549115216806087358579958836808375092296449384427007644128367489481444243785480941650566732172635214476727531957463528043425773563589907911583083655790310744936627790555526737866625783035939229028506210165044238828168867345931677483259586929295110425702354816409804856560490562301781815148862404123906032462636931326731137392245740618087306405930842506070722299391234802629010434882810003404385250675119966436263145182722963973907382334113601966961537036674487578834025988018856139222890395419968188689501120300929998779319662587260354016613250546070152336148935066953812662352453345348206229186098109577107234900393611681025232009379513465924050864554728479768256106566006352279613638843571956289004598026825685777103425261696888988748943578542841209681278713110107635460946656297016371534844854425833303783794525996894732468930634865452841357799452369214415571622498005706168450089193807046836294076427689787544701256421879614017594958145067134202301228262521731316029571500707305134096253447764188614835851575852685625875910555385612641521275036758793820830070418514215789194322015224742466923137751507306933498490906774391482536399784195725806489068932367800808661873599953387314554130043510999751436733919583956501418051713052049213758861978910415600339082092807411584458841716738767849359977360416251862956776202713341978470128983543566113245596827346399209222484801595411292507700297167592306594553662082259020636529680042215278274183932042204617375059594535758579758965794792481754913018485881724888256302730508464649164259422357294572973436104150952091563594237405976901638255315426381355906050137369041515092467767483137408942847526941260333287639136454947194280705244147201772666842374307580253518154924008025585436999312717083886011906231212706841210859328710095875252797504313937502050763328589183324615155498457982906442449919790027989408114373678865660467058434816959015600116172851934681072188588307112512515039334330342434229097792125113333390245285836546208196840559631101710961290791092107308081654852943522034535989118977161179528416141991102897546913922521993219287737701218789252851161416589748213543525165956778304042856760046899863881452702290217643164771689901170982945024618057908310941218924498751198634025328029317450543332203208066077942785507343576092645431729775870626253690771577512475670144650405271774461156087710871370800735249737474639544566827747530820219776948386445890531819686683943743062818597101882215146715206974090326517675923596064597267445002923686622185688910201011402725480505916596023422676770449256590420574463921747797172858109341325269649282553440047017274104103736322926176512265593837830402066765850025593465000712979743653699291415390755610042330046195120925386509851982918375347193699688030742860276257133294826688599617170117140437451227464709169462471418839340537255466624608530932436439352138821372141791518832466353184111539973403349255457862064947080226740475062504805588404180581616814846802753578577282942312254734996725800005746053841125826877734597727408192729517046690292369983246026468068548796719131597328822429770543793903083677189314897708158309664674902951147791759859369632790594290782516167246081174507676782232936228670222755482661489199427189393861738962209528565737357925277723360104408830604728548957955935022925045233570074438639210111949097540289707097916388345011106429128693462872622791297940523990945379854920777546628732952337491938611554094949816460950756617040655353605053153299465982787011773802390160104476943692012756025163796426937213571722519690845282681860463544882346411028953186128405667385775368730238126348201402974300433556261019270419721486657459648759128892614640333749104106949177859446848973979291547311672513052181233198376672374743786966500294699181013541405565757769355151121569916114661975413282413246132294134575595933335658580796663544108535327813182220014692907782850602555204916315852129179477189297883062121843402810198885361262276390575532148259046844630932438756025065516502255052551764575253061247431148225007901690097562597846671857721579852067115176699693293691517737343328002712731172777528095422529153465154011853666056988640748867158557964881541976479050312749834191615293365386841522102536860112692989460833663533474782887204449073072112035971777558675237900721672366096450081141590966788622802426981704857523434446139286816327159413346415838247504335881339951035224922859559144594822780523824720968373276158103371768063465282539413495669763750406601162318178924371576265710890680095249467809966670925542097689270205303062702624239943247368023837928821294450924500306760015460962729290592481730423259797638481714876446406048820990594513434443416141481671671237460166843777166923817661950797677452430837224788667942811430088462987160138805153419577635210568433099483495072310683088420088407988023893833589649402918769466917911086885220115357431183095801590858086519721447761291304698699556621325361199078942960087431977383278934058163563703079999698328739106562431182160999822601300473900481399376341494983156897577274758453784359029146762500751748636434437007071962388533600989187795920980856881917249490587274638398054290442611778535895049457791366031332511466219659618696779773612442346656883993394429280931418535868447173992003030544075770610193109823202873512541768098778591479041260454841283289784673972118395586710401542608667728202016552878868157673148469725592979723721752003299639127064777975042301794926803055204158191442482059798505395324068033208313772858108503865635967878670212101109690163903715316648758951084894002222198566917708164363857857822612399430093284876475233526075210786756266515456752525738572671539738453334135052446258326193500349695024090485754417280093282313207820021881942870594814928002539196840002862550851546799272630457206415136176854397679627734991266488887014969639670584229683640928143503740654582801476636770566847899431953334951155544710454607464904801017613097927929713189024259092447090633883065604209853755173797570277947848370381282412494468998375943325770296308057015503139393527534540371791130516434916109330666663058728738317330502317140339635601328553011408803496866997516384835246876090138759514441082791572837854042892973356749727210391469472222123379168501206338160677083605476987692200106772285553967678984295008415475218181499037738306255210022722783158813642612239060586085459247013315744496402191510365025297004111926536391337874849022505621106986744381080871837770085329284963130310264659797820546104609911784594092946697252314494098841341518488338656889458404666526497950813944543088944198238639821556044162347576496719287739986629470473699334753621908943402817741619718080498322820129712343337168232128137060904354012719883613002287472437610778198911079309337714716935657491086743267848446680000709124679813151981478508274271625649190031977016096006615227287415409781368465910461528898494875822024768195465447220798602091685489969511222275376057799957973292667367575274233923182108526871807057836897621998810514097572736855753447370770255110007632770290414754809993864014506272266357651187591440613069314893952565899566326490939938336920463497726524989043515701687240643012267235696347617272959795151279503480484869187939051893730763768955238632293549676282204215647637685693175998640673357587797724610481447316673889185914343243592972144661062723877122248549120415676409830311255147377387925434467189930010214074935934558547728073665510204428346289602535444756190320793263408848530177916015081629237755810879867110208701965675928764875272283858332503346527141039278203294240739482980854405669205709356273820929091437984171151903143272680764566928329251936858085003439693778034642852023669920089539298677174213329620474295856179061003660282042020814982258567781319273997719540821330268059404555178361748805760290835219497396127630055767110071795889535977909867220883555904975813364177034891082130215867121103127131497679538769185310810114117525852405366957321266971973459560630074149299871432473768397307630842647567082375794600204349605894124221483455481905205587989679233513772503370115269585726689044767585099797208248985506600412188056363504815962225376676605532072106537615333549973754083989667430788268248313514993997674835550404143523456809792393127092522207317242148223076417809028554057949424156895641667879189723010815691368937434178711329755626937994053957598649828400719395561757769927551537278297077604763351899218567563083839899917139878886089033822597831583382342110589502705796838116321172013082783807978232744749096039552287381635410130790100730086275723914056275219445175475033958894068278097849421015614577480091549830289288600692138508901822702559091659702933544211032762776536507979081672592072447387376910360581164091080084114967872224376303061304670032879654600383058923262076116564994987681128417734107347094765756807246486389502185775230387901099326526070609865458291250087446900142828322598497252601112961594281472694799701764128095004989440819572344072734375729002283094262273548736190455498513938138739314295182967373015561952485160793061446518473947492568125825931220284743434963747092751136313527343690782830440760307349676121210625749032338397513891442193878187292731731236636324768496985320131216518928735573708524316900434362060621389573067158385357100572089813395705061857557288201916663271449749741798319120923417072862023272201464486834130114301004103020241058383768274109419053330958555022442972362468026563522620024628111940724109553850429725859851616245385445576830772488744101062058983100586166623334552207762581718756485198035635356545459581915131974919109979489217045199115095992311134227550058127079432375110597275920134836913705738998725497076178118466880614476216914094138231966040521468459643001364278986866131216045166748631862657534826376206595699152949274045124542876150370707404458261942141362944073586380795928532830077188972081440607350583555261430104034484291365783403222340964014800346034447180923342643711928740445218488050127766081418991654096152068865965615524256623872747335532360264112879156361750656133324461683444046689836912261790014010459783473243145725868877990762818285311546125678611188816223467911700516020772447345546353641273767167809038584336586087977185199751928057056834392154822945461829547478800887864284189979734094402276726217414477239287556300843929098907263439438146546474446332751122136164928745754500108347867263219270694463883488727316755899924022900548612960385892254131691000619349794934838619041375657964883342838225794715889687966332460587269850968868549922327737679797493086358267862490804234941104145134260801766221414520354942015565694154421109864123463558204184788680616347122555666161798163088073425220855036701555258229077957128780640015350342894492094555821116360761860810025505467338942233492096176606436699893903174848826132103727783432897460227083523569030204441685481564855529745444992070772089711627601693276143627736523560557742519360648572526605123252106089264890451953312441017193800918741933390211006276650985038584880462893290048948713065151300034225436125216768841586592298192143713518335028252697075195215342543392681653944869585976564569995889626943579220647765283548152036192600691509245310170736048795510281101629448414382118587828431231081440407844017349520607314442286444330853613634730174563137313843045158632182076372082567243089071639786109268210990174784508791559064635109685234178856259259049658216995857626482911783412724207348900233602264872063963421844074100696867774544326775113084360938205972452422340247388362096595910055689761760912704225261434909365085442118078823516577169860125234152521806113995067393865183302727938971376997724249336858376268649786392295434806319576446836107416502383999283131216375022737680710844237049640836148255389738117016925619837529884795261157106622762840874794395092001748483452687989972538147588506872036241176912390372705494599203141578088444882333379776275147157260470131738775561879450680316245958786327996880577718872196960405637949590298173737338382577818107962934060382797055306780514787192838519302475677663218576974190432549192980285721603846118186995619562924661036879965644085624690043040258610268722792418813787312356990520825587002891132621477510611147052447461961400214032400742601789034779187956467919790976658324076594180801231191204433680069970752473922278949648432639731890928239752728433769003856975776024531508505792726425951948803208645812004498360219425249864882576943871490065795280400914110993649650288200667662294097682055352118050232049498689403567310436188430907720796543401426060143495443966307358269967096569851842933501091819832589045090382063820532371805921755228746308991651103899761217438725356067671363855848898488523580363772651539250073063499522921490584504519334694186744318463934130211485804803995610622912798683202482623591606248412559145398284408840261467234334218301718041433990553449801793208531501755864929260068303050214607027493213291154778283102656102161886882703600954024845672613515910500371253518746233187339674634021488782781579773643541881483071002749798508657786423878361348745712189539467001719814609368979387682070462242529605704247947360951916289598330396037377847569131856131029364827209608305326382359967445306134524462365780718568630019574730302467280533414539623806591545667610268774046607617055075833493013732676174102128469510559557133671633815944628912891028672095661826106619193763853963143344715313652080689640638149195874762246991646973520257617405801991931288669355070209372660316991038380376154814174454454765374357418109109632671126859085251787897446807095118830041197189049359741558464379894583735402946877058397068541986895954279641771543870432402558418580102899155550206929441510219447189016018420278636199088065525124336150309848559023271711481050801453977814321126664355682936723327743615713450117873900263467083701784635455336829913237839412059160566344064154328760568013200765093985220954871528424225509314804972663821499541269516122508356601085676444538602515869082999213716730683042355363218536855445553447161444207293864128265250762715582172219178412132117913584453718143912518170099186717202480261310276321458218076641876215623609176814420189984558837728904734513952297264630399773650157644397870368259965596281690955217415482521797881181164420884290612436019361615941412989589911952408529257802544218837968562097351669111904570972423560616178728610876744038152002278021396938813075706111042802484050188063314547789637519387183139783475798290752570589588384550091866736785874345784070448299385194497884253831003379614114045189986757224664034409798334644215917229187617861506512453546585915606731662258296019703806931212505950596791122379683763706770155692845938136429611079042347076166546964680714464419610273372596134278944268273745339266009889294948309580163194782786727063536425846295653843592689989391833265983144650134424013218760251913809149199739504917656861746737870050079805813284543754042459309981199304732232212653094300285801553867121597332553685551548683404632407731373618590239073601856292207331071867576539721434774301639757658540588732170340455797804689038916723882321157383037228558558546374449132799831579908008255209977441732672135967586194428542535817572405442363692509819350262387365563029369007795105785074591881836326806015368280509381291661251431153239153793095153494106890554837067834014643852338161262613890713791125566293992877023378239912383118659907968092474494626042335918853782208135942346572161067474165405049564179792390289898367871432821614308458214304406495851055759701814887702479886246683615511084668600966169285868948545322706071658205354584035496335871883537901481537115768029463633580507338899204608202250660416044640472835568455210786377655768781810160433894332090506931797110572661840118298431674711248795708320493818188284277787311319153649041543736869380556769569635894979662893846058830989821326970755653845307216413423080036407392744189136939265625069159535423633038672592216957703556121132833445146067166264407372416152910291478874898586047998145005546539447506112443711170770340084095093452155040736858564595057161941441861416367986159570691681331457308176840148815372070838502610223175424138836930411942447697004535011845735355170151760039648332665188703142343662787209069530288951640295377075914606477834877623800397394753985499574663776321133397804675373292899114916199684043236143698617645986025345519566782644258586158386520664411514755781457909940905866383351694469849030932163417080252546364314147976057421191054078569545781658726734559746990006847068135894867334864818753867437751029012615077861074897187231444634225548938198756658696505370953897987431420579534639593915585195837091201048340988512514808827966558213476293510222929514717662266645819893866761120088596121814638746334722692065048584299828374879388027553387756434058751544859649367195893913617753066178977455043799329074101979676684899225052794352425409195450298499952420113466376950179754716834458208571990203316942748536119150812009399933159585889126455235923524209277740236431830343143180518697565784756319843661244990441636471759721707491382267428378061515019487206710541566821818976436955562640871815415481048019286898947886149520042985661575991484794534268666943164666128467363237025962120035382912907585527878461417434419369155889741626640493984074933417558546024232453775437396436339837970337164387131295248939256884637517080477240627462051437349629061535191484552391919183775171152679807357387467425020030518537223889328624708509047618081021072914329703364665789239406865857165234169076734154074596694212703149606884052451821613369403413972685623277455722352634830835104219691665116958787147632610928921171568722020315272681425768130970912409470271174327106270524010916397074889401755498526413551760926719322421618283330394089319201562937516758738525181783271904191156985095430163607931669263131258355305853331719961483536971242756302025550683725561912210310291173776479436375936847863557663098393112463805518580792531915149528812738823201270649128140007418797926410022771220837239200714512833985957321314280633651152449453144807638155779198240226049317601951702836070576169603451915634266450470871139112396394649987255834190605305957845636861532501872324214521249638360823106689473801220310398175880186709618284529286116982286538399447445333288594830653167138773642419231067101998231724129032749635657506610541404248369565359536662589471427109505286908917144492195203495436470174719062355824669491678543164230146633405587328380625026694694445476127499815472244254928913550897562409859910521514005307470561409807399203753377924975124983548863164714866255741970813790293620739690382844985830976521710716361216030577135605430017629826383363132045310936943559827587273815129869839226344155459608276148210529103148590765057187511934273021313688697778175016177221273955516237740242697005085791256668404457061464788433560692958854985735411918598664211904438637784251978097749756877018685491837317463303380665017534793608480987932282550183979707071503214147862503715322979154905253097592431119761499065407226530387542932025573849444749110813257345523523538845838003650358678077481572635078537946105148440398920434161764024037266947136664361553202566511848338108370415717694820812547967983738424056375407129222359585696611631335586435190771512794994121411941555655439797026698588066137068004188536262088568490135840739443269330976786838121892275408304379313183860588387921445904138348139048546455220414204575751352235934962216710050537368096941805100800147964340637565178599421844981193009410322976334613984700427008675434655651662113236651280454461799392828124044541577898602192469547666126132775665110974987546357576490162959402394700285196767961493223505388425461624634852183634647011890222480352488271335551348764841295591345785372622381195744977430925829957318047473959628318743861892500317976079521193561688128895972940079544539167116824629080502927510484588316685831884467140617447771170248497479827364388625685561109879115533190521853357186036827988455364762252797030619898246223010327476101369442942189565721757695609486648466080172283120806298430341988391462902050041976644914462858495487640296698608128300712184745305047660801923444391237585103078691908236173876261622133814253914338186209466892440302210898334901209673888446855618351573590381916558197520163404494726235236393448941711825507075669870270200874722082214633171904448477755809541331208434006316832527947594228416918038765712697348606181200795313807340046146567477986344669006153379416032038989568479577344129220286629816662027936526678541285476343205702096303379550425302797806783678030721236984034067251186756499683233790936422704643771333330787441543051193636537013378163017226235315530247041478706370139788495159583569329170715489698245287165872070778387266026996453239268184306773309491784001030448186328082326434032093132859778739302838246622904995553392122261902094720526355080136133100052478954644470513000893521650441644780965557932223218450454335808766022125289825294267517355782546111793365937412652301218927292683184263351108865637190692016105837912945843769201201107923713986845751964752930352445971391733957237211509243783818108001442436114836129822580676619303440745115447662815335470091958427458356374465428290916219308141882951693281157196524361365037643392896184833766252029267198797111251101274102708410643020142233022731771491655755682718954236058402871437269946810192940712263802566636308354087201120208188431369163017941172686987621317791763065250951604736193195840358036731300469780445065012959500190387805554910633221672304832792868207157163964968924843599903850588707111753739569528520246629581865462655757192947940211237517025094587553729840834608951439627597231047893839582897705182329688666773237517400079199088241665166182261223952407234376577413927693497560216932640662520362494732699038840498804529966288917023470710124091829129376901387539451437746529735487512821033261645411866284016048933586650678024056972774467435210645183153041303207400561510747669546258305406766329046225949264287533107650772613938454146412594742282565676948026625738650158964855810623683680525529956637122170532124099905621613050375901606786444217263910713007249733038687044709481811530894676780284445430425997503787507969575149502209796568590249327134063445562517149571999234092975525335890974711449138012188793416293589422792395254479570896601498579224054047304780103278522684419790934364006707489540533683399247627981338051218652224805058781970805969511290144652867863382780948817214820642005942053806306042605242866307941635062471921670794554398557254453999803241329846355868716467641788432929750869793924566391082351497515126879960046379176859293560404644468545550508799214407996233352112490614169237327933040176222422232384991806078926370302301191578065903062430655815012554154746458454042290513004102862823064621859265172790698919862762510547681604257247648805704402742849812887235171260758769870663322493159504038745726396871248914367315073868188247434738967363896478961998716080995837106524184173954360986857528522085226880767468734255090495043152698872942918771737199009937412127342386202897633634823624240298735059077214655431836410224297397489139956095556537350208686690874926403135837311937385690898187151997450858674664948552233329545580986702635904552063635944809169161817235916947686254744427271849559393375938971124817672082839741912147547266386940642878674169936962988468911346881753379558399465435302663913565745940919767932796846339295874554892574819573960100959561472030114934307903183691699973722868833455084155171746690514551503089654761101651468245019238973066733875854896270527647057232893750868599511583073918441981803049055164572770956465798472716554329553607188839511249088258427574712968285042107614199995513909006275965693849212202992970431858885334587006931065011964664089332711747401260451343949880217056576962073158076047155030900633151855789985558341146395203604923634766485462484299791272068893344391904156626938119635792110623894115614749417876309831751236027266610093883827000819743350460635267734528258275099474448560540972347920530254927045450619180675544405016641814669948041481831527099429556766708851549320771186986761800773209732598399366406016978118095862574196515132496013415466798399443134103063751035639606556615218324395923232114703874737687651965944276010518703199900421654910147815633294755932243000938157190190969324367114343552875555313443673157985556553893262396976208373434229213594197751560345703690101895477082135573416819658799315337073557911832980526334650649791209642599102087795536248203024428971186388200735848832617299684004777092973945432781852195876307170972112342024403012541427993851134907921182604945369846025582615679605930532149199391306701221526747701562461189506116842728835659467805080356371949384213400468931286149840318533244921870458932729425461891301283708994496499582776509012268845134141046915372922140300741275700123977993981642620241077854230960490982371018459041457075550598345048740895129473603839343386880103609701532010956017512997187329602305744055363843759578262167664990529085198934878447249928148556384265853572509009548422947671322614010981172667335994287950834447291195546208262078215863602110523617965934672053956967328209559591653029848393052394807312952824782425090279902100282078710883268300096289331954449490954980772267528989880294227251953734014139222658568326754184861087769693522890831606584014296885488747241822292919346202962831650438557753148271942955870021872353333115774982901169956852490480883981937854163916195332474878711236577385362130916119099983201352513803308486688812139054030192625163954255655798676556619025400996434940735973426458000623111394918868401315259856734816745593205572671461459582429118459540888287670928485133866730788421036811701508381055394280408872063303345408298682752392041539226774476089538510031595017069298866574529948839849073831509428442010393738369389502975073972005507031488952763618744691134655058562553443422478461478074705243919962568815758979942386665748879402517514004913776588081960266115108878930438556322719082744770591262451971515251646246715107977344290410384689779264416155021838547726761421447296984635953542435561997234912303246917918016746311154376485734286926017574860595382130410348589174053793169897754952905822575236324126516218145033123769985687751824651641338884440014519199107749355777377118651956205993364687818364328216330664481963139458958251664402186934811306895653065502508802865033602389626644626569665787484015366938773888538085589326083956712712053230085558638877710060874616768499799268126901782638522726134611926674889223345479613346416526169904832472909152687699280291679167284684602972181622254296578587998931253480158297277682570395377889353535532368552278511220945711341194958978977366370254533999388256149252391259852219361132537026919567356030550419397501294185871412308784230668701900370900899903717139218076236226817855623599115435146768147181808293415415294312350082145439947551000607854429640784678788601920878330788481710478690600913320612211777633718220165668084038925645916728781455669186960635623687704657341664836638215409320024155688246071983690378879138333349212977150598796546759938242928926013185323563501183579045746322079940325935996267139107084893322631598876894362511750132953796184979540365410867322700612938287759578598827027068354844659793066933027474379288542123941323346878690858259503468921873223524066846419901402754673780714733094356784631906649460409423626875699932869535113554462397763780981223889059277218954316801856010477058319712669908051274622657440692952336194241506690834134447841811233894222406573814235591963806385163374329256713783811120502731960027542859621239262975628088709372731232352919150420781553258655862340411693688013334174389410904063806543093325173821833043586794513918023819450053089413258272486353310900209853551605016437448063717270002745121247957112091492203138812718669681776357706916459505651611580997777979095411377074280486499718446559747355299967797211363740863896043692224889287986271604625515486078677945313245990995674288063301802670234418617940184149873407454006379677330911379765555168141163414037037062989696966830893468738039861107849628795799305476837208220107439317657249925517111383444208053850913466385066092490685793605242578297710987242178009901769798928607648368479855846542145307510703239415466169710450184853571683009804386461056734273001660369780487866211105085071220945718817266670634033733163321795218251238024104250175634912219702780903319001382593529031485346397663305428149751251651562945745571441680175740660125913863557511850979735413436444765281682437522253670902438324362128019906005661313896016644581792295803591045666899792526058729872516322351776884351284784656649327506284429880189210207995512399102804646628081954725835953795863096104860606852111400310607320199608330979278829180410797308229999556955946448330367338584928629369124058186303941194670906055209967862121572089961791803293016423379916453267489069734508688392306141833919728213503907109417368957579897699515200551797265891484450624921113894535314400853729539546968188697023495588938098905792295091216704998234440309887164955273425635073926590856547771902628661648685201754181851929130220568429327210204498476258350938563872281067433703011002580081348855428031101698707152924654633055336377870581838401026212427417885680908190633977364667212232264374524240804015339486932416868789792995267799981376701313537686612358319683073957988741071991509767193769484681104068533716868301620352766582861266419534109003515431319399759148838482340859482441021502857041629294612560698083574675479211667184921498701738678573371556219536489079903792367914386393700141049221615205394812273290796341497728300239887662160932127842219022484380171392640593953207736116731260832260528023166504975464132591083784758358807064292236538250235698061111922699036605710246537654967177602658179764880837212961566667185522707302277136075337278082025982365252674875180394883618088925943298848833686218662372599794595976665120250589051219994005985205809984164881339963338239264480793918781765439732953404273883656709593660277990987311675726830816563086521531737387757105570546952460401020535653924179260768742148959210968813875263118315797183486209206870179592763869515912390102981402420061648239283835474460024719121177943838894739924229603823186872118831989292245997506438545301430093031869494396030903437665760050785772343102379451621710357594251011998070110363462395574365298921233323269803616184792128635268500312064079040039845341856238008635985651715141706048618492897213996382551731419626692928454107080096660728085337780818892436203846588720293966766126791558687013538410071404215947496818072286675150032730180951210684741874503093038637861951701282313329192062669841442818050388480413839785569330876300842479186887864869504847493387271330339439454651733590961385378624058930151875313882097737851828270531847233595023764519737666562558383031014336565166988826744627403241944670254515612800835374199041827730600663920051625987024170974575982753840065937493203838815036290759639182019729031730926341644178099257318292789782998102071918316905648549379300743105366882705257593652717136538673703158570441978026785654136849698276959423395564106698740861939502426961324292271436345402544800779258200035207157751935623845098396497794983007929490859155728148765540233263561479216229277402388530975950162103269062412822675661422526378733302136637430188578663337223129129521097839230118452122350344398857027811550828287816247310460714634511362018207309851924123409672930674238432080822058849762238441011066279246705343397759491255762787017938554854839118932677659604228400655857457548552859496754383710724533822356700985384163252712148877164068866743833372473343214300064282743593526535132744565104869605431655325858150702864069327708889766804609808718108116951579218911716761772565905393822725110397981428344040212171543448490871030832142468745037149458612893120582590572997637897625050077135276719417291917928188650824964722080487693423212790980897835881402366547188588339113755018720913686207951482588471041007892041283657304475739851114849673413691357877169382236318331207160638688707719868713375506727931994125616897827437447078244810415831103841152269254510866069513541035301473530675432380591505144103216028394948375836202813764324038949684872468336015468942935900141757718167536621288248536721034011660432546812818890063367424186615329947958883905333902408701461093746195556001342865786048381368745896524237863865361048949507138723070895855153801765081816108842558346166517714713634151185943859053984838182037840651689266639964293117644804716695893981290319668666898977872891201095592112030905307374025031055688483231555333238681030378255611930657577322793959330287632640257354696851887825920740924702788156631990040453183716137249099136428603516053082663410197516865078200940736469379032516494916217989685225984803341088498020794207733050911464874446491247944247571171011097909654166145188354357933965820283729038254842237682671163691849121377792521075393396624059117928948628106635138291810222840720536073094477023131508955124824630754325270766778084329682280661300761367606509868992131043045788897886373583221952116556384169397013295932542977805314018357218811791244684511447804528960778573998993013200069418807393985725900148473027633060638190263544950351884812617096677614891913470361980926844914710003798409378647677272064028600358635529739338790389467739640561589985637407565592231478716073846770536651875278246960869071668217171358465838092789079192958254288945483660977680890463487055527925236359643481612920233753288054235000407438252408818452594079873244994543948308352507641193482765652261083808660119959674390019888179966132720533767836314512729859717485840919212161380413910531267183106490093608266133689888242467443411704083907822236188403943886660675290964087125314128299742339010786539714523027603308067114464358715560167389710084859268957828741373302255241173822965689241812565779243086863595947343829567621947840370730662635450898119899251398797082745846722394799433170927276964156662698773692856676137011650358014409036047827690129433260016896161920773589783413407668698105704608071567544504617119447139687633021126712708558860810951466352050265303347013874444709326954880917243249180358239245716895791710485256703826066513421494159019296040786393979872163070753639831705226589604710154786295349084898795480656495208703876037675288551264292516022217029928891856457697989392976862749363281108572562449167085287617895839709398323188391707320151434191929279047751416988907779071228538995324732163745748901784240085488783286163651369913101972326701372884066042939725853036524118386120685348415425463688317289158325978333705848123954107142272225919150146909166809130551643013793038871007267647061599018970869921858696430282847355432742204433444277625628567777131303671325751396179605129866634965167266162747873113002099273272370239089522153381397315423634871275369155534891704000701940725551389872054297710137671804242169358940374989611218951170480599831848951517492789093189139612116821914742628919064712940929422738548310023933788063024828745912587314876530984607766822114912693814967853310286157267193619001181727479415209492050105434208563527667931581975613177691449473442956748430952497352083360252921054401618785633418627292628286282547980518353442292667732023484865621414051118913345842011541753676857930909434991300454069483212086884178622477997964514980686995842717780107588308468550105271020247328000551957875688497823516409665982690064445904709098947094559834514522225302047248534775427382535217546534184297904746207253377542634004950253495449195117467321802286001548101791835405760870436119892500863337907499829197682692009672720201673278116843590590492920521713976236500231053863522642713281562807575152615377414994241513868650085425013723358887247820210907326471988820925356083018708940523430819725500044886443013390110149209980010761637416980347219330289875594953136415684969842620234003756412305294039559431162357428449801540077260900697589946932926010238575119386685347609054283540623656720078946948722808200378077773200171799145498746555322624207114202079925999399821921169421752717997817079057139083737006140157068570005655261759062980492798923562669452608694684686198549332232585281215626105434029302869854097260544857593856494966620044402955799179352079747808881720007630093314841743029810726745002423120039727666720495441030723972204521230147276366931670305197052949223217752576116482644114863939041249960121119631003773771540878479723137115738506667721316270574778763864478576503923425638815554145783165534501066603430015061774415294029968898652730443983182149214828704749615484430486607250208078656163201118868355725062028507656598550425874062166034237990887145567984869229563183726507075504739595571427207543163177336648379686303474544935493975603041220002875873070966884918280853944879302800895704962876239183868510581436028325363693181732927628585093514252016234491040496904284406212066981873451448265244712010303430963540545508159117426112008329183955471508908435219321915091880726544713005441919670873811587826332996294333470851956334252033181459503061917772317501021839762995777983965448853250995618654084651865392507690720414085668890748464993595493756106972647854089181846723602775667030241244321963372776682237272162706744263380039003359836022659152317795337620193062276795728950808826920914439525735698250756576874412288991452334938544570732890641018515332197567977172032006197043411681223775711464296380789866591846327688130608856402910804671609572421431123084481294770393931798936120004796963697328076541716156169759547596449602632243167110779074744236822754163701738087693647734289365415368435692676076029540098149807773415806805205485939722639303309348578936504189601359182455364628523477758265819410496458717023152576483739655553174365986267553222929597540808292206978954841875224650555085878619781250735727684996138621805264797895776159946067106214254157048198145608966239897771780864663999502236361873102536811775437021435664342393123982041133168089275153116362514293376780473881935516358982267335310103256404518505101491837670230444160247382378714875502161343946577228370956076199394977269372029124338401261377253223540490487175270888955732176511498601893198605532629220060224096132162848994673014097692367600369025524137828678441963527429175124890490911510022209525036011119684235878903600418860728542208639186678480133348752195153599160552015542808267724020016979299125908311605244363450314328771457102136864481545664781838824427120666678212466743173885308529248665262113822942740851343686477321518887007251583716968777486032057701266706121893811437688622053453177907637903259396158846800937083701945188824770833348974839517123849214389980282386082813235797952182929186223761381994448646365070457348191381962162102981071766333185386660930531741609192167568159413027098043059390160366405716783241046342059310371541625416633211356225206848460340242947496358675593119483039455615912416382921316255987559232333566087772265457733781091590550518865657331356130752602137021379115919411780186751958409997537690399870602660993163950624855721951139100481829670872654434412367470849083320401146765483895876292792315505038655372015915415564737514905823404957128566260292905073897560932467407205892696742776331138823661754174043693989205494553183819708636274098799925371453642640995803064652874032192142480321931186652110863722984059006880341628934315592156997095060430535675083314812416647197991996222790157469755839277252634832659279596824304479928865025030545748276485467828055808723627056380953894362635957498946524721053661913577491575461691616028382644959990586289498059181458599996802672496708019884119180131105777530140984107411553164602361595671898027810064074299706012540106797381486192822296968891529239761314991878315938057548826581945436214577716775894013731470119529579374867860397616061495785404699866241856608170578537075428561044103390463737299686195445971262234822336284475726750335399318920501949951797160510018494205037918631201254333722852666283149135596930729975006305751519728812189896421661128240792895110039009348064494807046462224338654127645436859048864231302940362062658536073582276515922623262320667679079998779209085913396410258370133783926024582955012941534539969426894234860826796788418839613409875255527202511670255112477488545677963448998059471338186184738247199294958780362914302408713401665915794035691601179642221911960298578543710926824623633402115113444088567717682398620370779793294857964555190972514345272600012128906355148853049540207939600239893594212391215123468959088759559331790380994347570046509661106886948701805831179278119940417455584728302029197197312313263484250133778707458018911187223229177998718593190215367385926860049667877423170270830031458080974335270809061001933069372880727258830255976589725421588915781765086652559817668242922550244023482152551425581610583857201342367403166437983830582894582848041200750523195427933379440627642349730184584182808796230146242783681215945485306304915310890526035982682035320816080897184851440536424248639247658188515997669479425493657896246263527529955674983275648202563966187029962267131749877044968849695472961901802723965550497047471576480536628072534912682513255354412004225299134578408432005727825537734661157447411600341053910952615538354230617111806128926622418873548020941697079848795827766300801431455185182950770100242445761544647158677598935874880816631198209945229416553905385302643832780620777190236574033315610387247766588433025250451516448347068768640734432817686663927252679783512767092926587297773612691998021877699820475378242171489424929800881119905995787259268893633818120708444581579247528359727931865549749842383083050259545914615038371885554014665191297731925763923029745040556351771542700553304389607427327288417026662784339213974629054730257038427340370986121207728178527230819595791627162828311929598011711797610039066964177362661192752545060883838730243310970378278375099430946373813949436632997566468540715507846831674119860976581962459357582221814015807209700732808809456813510639307544414501452813962273768692042997307215872551629931948312771104014405732712831500036839077113450162146287233598144548738713119853965162660103332751998047656299785422637925407226405120481784928221326242313890645504543989958937192318009713219403715413791864078217941125009765341977972764739030194590272989328700430722504287626037265437359772665717214773287651169445436133673231048517624034956350316461196250528004600278265552657549371412950347465859989612776388454818538257377151216182656857839713389874690201448014787169759822126202690527464995229241421217051588280206984020497949411014147065994927969555016947045373699724548611409277612856293020891817858086233424077124048487534637949985117240524440947416894992210982343232885663941141342679071326023393369926327690050428730523931408548492713668078756192889161632263543118746041408113111001833401213713905496781835114239290517222941394081347830771827411047567731108949111042649771522754813621117278664248011941250248218869145221342449158895759863468646601660587028450026925865193907256158190221038936487491734999635581091658013158705894728413078298429982925661303974002059441537141040647121609769649362286206903110973978142665912200016487132043509069887643774843685103145858716546065087033490171266324315572408194044669840041035387007277385007257980702957251407352931286654281363558332187220658036897822981469245702452176564117592826437662695703739467242168580391389125308114353321068242908609591149522033714491306165039051698192433702089555128374481758215965663926181087485318118483530044667181563699915678663481605018533931514351350784895082540988182364193721340728936064739443781934397537197461281775718113502027726826172591910503505997917582253899320484247182471131288103408972491900671790723947206061356433098912072338059463483025807723326288226942813911278260663791912228568841291262115869559650472289743137800996447547792038495183023845923817409237904537318767627172459281598853586189940441545336817636169259575570115443984477425531839907800749500785181502318020476270600086820677716703075620614066187803103725712650346931942500035338367911099276661924593794998183137985316696113855103484610781986548045078192244357696473667836331643851421352980419578696013369260973603980955581357781412267826004970062694060940435143036082232484225265962513246675443479630246397862570474469484290022739271495227849772517054329813450787676503277036957146050543374942783041101806400570550377439055585228591761131279221565416905399835064100783302674676487676384720140841007737240825213063671048776020068179427359190361361342013344518949133608043887495600833041722789203470982880465441405862810434679908934899904288582933676706499351400940572332115452034834915751392391178081007918255120174177969956357486175752243437592148428963708807368990751874247754012818847734457648063930693877960303100875440620267224339953656404067540320466850698755840503467340034887136647216293409083074129737795095960352235037222092793443989587147172450765943659735108737500070392301326345760332714732393590314527034573760932751196783184967142483227985696657699849210087872057391208837820452828335522300422784976226150722569404430382390814703786366027054856098297772461074185609278652763378023242891945726027585498280189025150068251105023447312565547956680153299512728415676905905903227970748168836110898601694807208252084142611965241888832522356078130639478676441785598282232419430360616078679845317089578161374242930766324537726931954631236113613941504079790803028748352347526229917210260864959989321880575902194062121156253338826828811347409859708029588231560630940383304385413986683469539660698456490573113555994109631977845647771516247901630159013684069889929792154933967214067112971547590165548316046948560079997363612295240836450106580274177193752072876318970541639638396059267320400776549104974248514018403048791772528098351376930014859179594915995833984708944277743468381831039033275146057759050455301198715454273849675936542750691248254581713879142722980893057770481882169921518084652457717079480011851768503176871831185025917113407922365920759690394697264447655482866652452855671226264162614906559232132311062942564151108449247722893821743852216586736108184723747227670982686382275000779435385514951545890847319464997567329134970078598218628679239474263894120716634139557866533056018315655325861651468806112707604168534517380944469635504555768918851946967153284153178673403587516757398358912080940599691925945288784069674470622146445520099851263664277918099707399030493721880906437378216013254687895421226419803196375456386708617136981759885311786377117784331848215847367261992173150320519663216846660389392117474515597702955782066153614182336818715010506702994000733266054261562856375626287557304516975850256839977796232666526189631693765957210085659972068946143296721611668228255260079617482682834281248841684531579702261477845022930130090397623758763772372091741444818294590863900706145129764861860507453685705789748734499000174542654305755287832366750407555738035130419881900577208475644184054700373037791867275044260094629262602349759136927975952942335117225503000968557266958101049653955878469128751033917336513389649230677398082980816977359066554855301673257147198786068197350156817012106517091769068952820842984092575777501996871563506720465632865945132380072785130735608666947310603724491308925599037343268602483533346559512804228121846281485869963468373859011366581561741938939982951959711685250079242811187607306286721059219854418255776977837800572718807410818200090085146986281508883124597436359039961940315918986001333742182399517346349643283539493381194601958603382616633815516106920108393676065493073587190804011805975311270320874301677570817630960845138551270823530619425169108396638659411086587917545675397319536935219644638193184528259151191381439793413376785402946225098827332943517476667452398199721018534015696384359203888362910489574585577922246041278292406448354132565200805453467909515044827015345029749319201335421283458915696962226795801456912351729037263325749569994786447633332774452912271424397940766373489986583193383928740387685069902238779708660368088402764759212086125136354995604723830081818110208652547281009146899074401594900305354931293864896248946822744886717327013605988882285805410629468643206229834770229311685088108251225199789885059568439275447660284679300621468760767877179552472046970642492773919973393655374628059735786123379501311524640946775728929737520053690586098593946819120832532160557377188472140916948166667161208903049059907661024354356006776130191280495989420600467198844418445051828314684853337254735283202902186829919481863346423834144928550506565300817496948049100777878694860609378386776917602174168003005607257783830472889406058722203221744261504009647297404036743538098253533200100573885457647204699713640513999680978918782979319067210862160369191906620732791775384945898791112047641613802060568608935394800050377654257607934022140427547315527187345305400822459383359385036845690933047493241647121074509134685385936471052396339805112030080316573221037167331372446220128899714924581052050277714566540703597348945946963903913542581989164102669498580482074987147741788628797735700280167935090005575366236145726984373916157258164985392652592991410508486745536743659385750657491953966574179696519821227189579464721166074928615228576206203898003852563802420930531475120502887441251720715530941257598395375682176458511187135323947504777633585482782255167373930272409121505401092558224289355617008713187092142452122201386789616381968368238252371508405783908307199334155585574035479007349045473389804769924164491115637818937186347975115043517111455223070013367331884818254211666254911354940207328679187917909671264404992103882434047097460572808867150836366430579940486709524987682672390386940307149132071832065027834126649414598793909836551714395607007585316449286908589789568810107351681352668089546217437512092770533185201606160669857024127270633641791278090581727888242084854464009941461404809122340887343916209401060268510664742502246361006876826400678038262140298515085332427198354352161173127358642150233525852356290390714420766928405783343201977761163490926035627868509001938170893460686045599588661954357644655003468536141041120496713052242084154712908641156472885503540223997935880509086018387396955622959943689418218816308115140316352935686688799947008736352938114463059130905870049615000943592647633067978692689205459608633185993230479238964807330092739254437675209630812859324688098782111185377635089396000129077430073060687030380341500784135509144076487441245954257234239214020919259831128932643565895904814023332721145806827897482029927384371417878998082798385689654620550891475963974417278419486134867507909138742732490685638564262593372908048743384905873574969142894667694307135360607361508153204612085910700757342132037394356389486900050373427844793797951376738810408839194401586281446719152466054356667334465034734747007357192571170183204781527502682750358795512395466831711228805235504926046664230228803270833892808263794224401863797720682256379304484830961529375553798632425100947109023970875198089500697157724794430635646660567075657709789855345931666380128403952774372130362895285555465919616545714357839948575835152410135141953728748269385088615760312707502723501580665417819793825283369545286847838584631524256006952484455561154711980909824200762071163807631236176102594012265458033434719280148392608511721761285938084855120228420069734556183207648552615679266507987094195338208880256597955260847619733134588558277145519468851561599486096216228689567107124103045686411920675805511870962398602527694636220930495489305020035195950903070387338083525939440281392499047847181139527909684757058815865521603177477808894210638915884266895450598815502529748934098482502270088273467728559022447114391326786392816848313516009350363169885275138829838639456752766220112580413900163162483291230089752107242934354781357168010001513801478119417278512155145477160232580607406320709243646489867253195326072175646451882737592042894119141370551157201108541373702022283354918044297747485868574685216920643393653159948696018040981446017488077417758933634567967638303283951723203692039352624988783151133556105920044664509112964577028427869531821962880366502174352370417068137253678577728935654188476297201178802420800296330889339058413897319175801429046379322368464663370742177909489407337134331861905452139303591730984542888652184184366173157593222417073748804658061377525634415145165842398989263195090493750182617383679529967557373010249350473213825106180994127823775299131316240679676905549587454528477997300697345005990822467376329415324661799338196931335569023825334912755278162069114532073833132722644817604433769710420500053149457317783619386330274466256718609744094517122825427775968231143605212568389778557076132513423654634392415599778764449518332728957102105581864787782690280389272012075704682071174822599548974007445799640133037942192317236510186678954515215968540775819277307452962739789851103361406376076514536432228624389657562867089450204916435603561272598930032725916500241523995630067060962089461870067482644236679816113997908422254090722053234226048884320335929228694726052083315448335020223519644058727348213561518911717835271954054271366358450829589458283484558711717361311298490899621835578756935568444156842301479500458916338511313320373015880252177340271560131700319862397641147979462455931378627818445658346647086575179544208147170550026496678574839464950655853820474093196455888476115120196988822685324202595400069710065318286342164761969663838061222992482867369230013900460732832383509954255395559054355206743745850971147857589561001142660929503584372714703668109136682889561543061203329899082993547312022943215577187921077530152617277917446415641051121312426402233228524939946054407643366985420411761311074472707546006783320923451069575426617247495210300574764960224762073064220246991658289773043383045821065557796674224107433860007293380526200834043134642167639312985416181121904276378199238842200083333067218347336074818448523254684998802976176796952067496592672967598092052864476609794504185510443549245278328789384853324804722328365411382775435166276148993725981200732533220382028540417737924167168443525280883832472405146349237281198929083196900112257828420962830857892808565422393813200217185619611813165411837353908456452758798448113347236385220677558241546588312511795454238764449333982759870628035325029264278569463605891150338046370110479703023580211028452636306596738281664706313588390885007492671654275055411384238930181539196555743477319710028547731130690102829128970354177391296692865058569976795819187040053922648903668618542040745594154870586219141769038867990744044812806585775915772763867831802153120447580601685991850940188795174369469020191241004890919661484023934415599036328724097215848411868325365062639642232639625945753830108248993792801753997607976117075652006424598464787912184049448719243956062502276752186652047732008906873506640524510154145801619103667375115437655287627800657997239868492624423959326287961811075871279539148568566514294740694130769453308023306874231451253622133565712561073243853821938188762498019349114838584519632555025453729953644962806900998508112419947659929802576042410356258410856551919025294102682691686884407578528695974041517827905155918283965754670095105285330219690293735589344353461847200031072482689920771203081108435742904744667992304396843750123004774599216790426142186019915419949591654572945226924517467591214784693730612617885386999116084752437625707993909590748798665135370537688001292604335730704605750611076690905043883185188463230499131676792055485490866593431824248946403051514264201733381655928990430847214689307656760930120758091585619755636671369309855596069099286629596616489181946134661735427271625274812947842361687441755698812164773366699009404141199067342031151412629599216985221629923203420207920117520945648527790114602681660908186779672845075315323001818214906149408118074389656056157815954117306516226940650303444464098424201323502046945531195683518622328403911794331238272530356418124115670280796023904207036132475603850604107185578723107679626858453027893198337120138883384912979543258161254030048363583401556785865565233587325591361437227823756690831976379841764282445613992030844425246040661620133455461337853643309987531152448557401304400948739001689466828437920270269385210489692428367089718998871783862419998130646637793467401736234439664061765276228649146960059792363199954691711795930548924793758224246061177924959068688227699228962308173575495691619774901377602271881883235965297466970774030759448542865092933605062246984693229428673928990932175162722188902283529063044033011985993743106005109706832009396848150674877586090095821655237756920101112126358757936550459227677876307286347500601571296551388144562348746831100881807490136742860895894924255419917280251947348003346573753152771931181279386446889376810862174533207615029825487946917097391888967821559024568253940049582688769887214946115208075772902474468934814027171692732858766672464909430017830402555384260514142893837554950798543832795750585451860354335543872021348093383265548034053491514459274212712518699629464469764047997591879287983610833880407380223324741309698528225525585341943534247769624636180664461955018066791800781281017842211099022259065841122514200421771170180229165997415733705648196014451809597886344345326635959764322115058987111836428833169591136493079701437579025149738770670793939762241774162092347349838111021337661213270125189120493325403045632616196161313795927580776157236028851351436458542734549916514211776936028657206306261974435762883658261696546229581453386901683321760963031589705098617829892706594770711726315308176269684592308537474408242301649683045230585914291091046536726500629734026251091687847232338748528629439316323254951637337213273934153370715426664181521111256123382220256832666676711048729536288995464650199186600698006490718547258876964944805807136824759828342297182859793444892247741386968922388476051451575770462111292481196587906020269049296553760227893264151332310604733769376760484447506589836636216604728922906540815437988767222911862930677352494779852921621837253745427347151716932232467742644410313001907510033329620301147369657946002083178886557536634043606079182938999892726400246515845768175520369171770403936962542474550394839849985264252112633003363546716923240855057720836520522302186101488595566872998616906860714739543328113769399933422124682410218078120285853516914084578192498139976578912186292630557064427403397325897155605735507203219971433366393870803877319014464137336941332443856452405149185828213423560298700381499328866816512683585593560324496381741164376888493671639495616261282372758188881531571438476933983156033699029067634360157586619621654311828068994315452133560476602739353366882167342589210294265253904437686256962430952606546969958158756682354090191805438406203698494848122053234213138060808263982602185778064005051531219326896275478359590591199543540269429443270741463804489318585024875127355089949496721956969188272861911215015394952635010298814400231542774671480463725112243975114382185517060945867165202907663445312252397282942816169584303384200436043338135308354717880956283505842572303477328824064639935585192860556515907648911865041061335324701613784361545502751192703561471488130495844694808889436086240616840110431454826030360106464489966452693839888701231949382335610909465595537879796123151850708913334771876120236940947059445037919222073200863992666868778911633712678604485308682015891947058691012498148917060790139495617219596001016513154009343862869498483469723611833327579248852970556647963216558401994843448687751731744464299563335585484738110207732349641573485265909444311993240630586917964899066087490617756372169747958847001487720518671246429761613271789554941230994719246622593975338283377904212833403232875721935034141905274747726864339684988616757431634607235656045818980983867544869272584719963586979036224626738411652159639460712626678916086087009691002300059000249252059192766354100652779969052103698110439708925270666808236369562613406928852777183900919438011880835337622760798156461195394303756418781001551994824921254885082365817398249793017547628897085946322787373287093461465456867060780666839726968280856889975706452291344826568815971105858315884011067915958405046299568653532745949319046813131769310834775367405688100122620700584031797640715130676029681574446547198948142570553869326101035876975567250675803039316829705497504002470096395907205483903601460457683276894143841243668823692941969705168156737797786250573575261827362694604396975281650732611288113866554977908728747563312356505387128432487469610854803283528717268026548714726250236540826660461434202676528682373190988683059575248625291801959036209674151873390683404805090847755573960814676467077558011036996165819924917226557585257985809775258065834979729303857232977510199835622411988287977243727490340376616376941662698214992012246996991418771674283420605547437102963455910809822234109923664887275493457018984117120285837278426063343460942553635608175263751791286558776562160684514907338068452967635623096840145565294109529767306483041237795088434385220179934217082678966790099537749938498359849536125039804291512575183258405336902345750942374207877910172895464354157106655166322721143370335449570055618397601376268791492066097613588646685839602545209182410511814619137198801266517090147214050361938653557075337440890407731434784539575113518159444365290190994384941392235420667796343368819831242129676614630557450376956023291421308829050630384272600324126723000708335713000328581779152681382793458548290140501182202481873982366620592820259242901131182731099026045750831953143173988959060114100367130246034993122984260804190525908860617288191168493040365385700760727696852918215707367855674511866721188540434997778560551178323544424123626649113523599849156942082075401996169859278223580620513056267342126409173258733107081693357229940842104140863020898633680002767376740370964193407355739596074640004812327410775091429856872271070163405238994884081731286451312693544711142160533501067789719405060435347961240205640787600925185748374185356535366077231880771948121512512490154246820662917905534233160944508074580318928950908302526061600065571562180356081304385738330554461226253959161732416227157361415262554776572766772700465383457376216002960069491542191845841569981034069418812018609347085912231381552377761324035820949072857136819582041577586904945900518556317963199057880748379396607435594028059981183631916397359987462895038968414936586328026989336517987996746116229612858877777811117869821403269088596730464499116897617015426974869307077586228999802628566470970422212016637729080392407470263574600160502984805504964404754787344599119081145259564127471928306349261203631836488280431768230555154191050299691416110495141250321184443732316527940567944121789116636985325300230755303572925989466821842565707035400061628686769440556329234991388410367314995687078822742106851192103542186817401027811056931473894145905065204465694543685274742439988655619035389561721083838554163947037286130083823500634667899630752536418757127191173201229945674157767733585780034060297997165000442084581868394720037421300057528475205010637377081417813180068822596688382982150985316642327592802571276604765983274898295272762966896104870943330664166359309175679112466458987933768728608595036390564527673669583571028644154498285460065350180801518774664292960204981471985931290833720279382365394008357476654723373104148839755026424542344719209877646071205975471674305345920030191183693786787830309178557869041842407948852383941700816294961039934552844370519628196691154905809551148506662323480739665778304655348286001098768533879478175533232956454407086640379701831308709670584682024207157104380076115314267751856055955675716904854426624935260556939708201502025716939692476395509594628035128672776933249805701979922020281333026288368962932581085336019875244949876150053378619221125431541954749448266971769246627877071979269404756074536911236258330010344743542654541727175136516519103569954218851034884179367308445689607225368579803025559074734220667065689972026310389985254289394095609889442524321637616689943698324521123491182782738901975731810901242962397208849128328518539669987348462375424143765942146535354309740493556461484484988697992541249745159430830771482520062732357234312033028851414530309873338021457300423670276933639621693511803985017769285910835497890948772985187251330108246021954504411604379913524542668736122928028699990610326876928304771014943240187564388063854736302749222466642405916506679616597937399638228374103128058573124018390875281852748094042950254087863074138610136508125653546898930803483706505792195226644513634697437818590989454551653364391008685980167774317666860715099150605884733577242538880690014459093080681501451620427502985211641643172555983937052988970310512770116022394337124570306383605354099425551796772972406460546404118897183722101671627386033720625846685167659542912577957525822553167706192536520851156783976300407025446319660695331297420977163638263189653735567944561069804870333311116505493774637314432080642421117154877218557513671633346928018855479734012962957346904011751026254139003387358859681464677229922222126653941681995480797704748029585635298790784362242040003148818608000464495025414283839967973124185065435647153058158584958803096018998423261500825503450048232056081988616995645715822016392075262375134326919938173515605307118309326457441026238821359407563561592476387845101865769316544124049654838537769262589713855529206575630475687863070628963688194327292588380286803216429805224040324637796422976104282133011432940828541710974312929426561037272918239935201142591215117636784097987331398313045728162529171170676672977818784398392108027523837776511211135185486928507291443567254351765005721453756876944405609160157023945676592511353673774965450664285019969951600773402948222921369387280455223587291835474713904600292599443060786944568022373144527253482311064527405653070919649030290361080251051521020761637120009612507124929640565472013840287777106697470178467017338265605127261163770744157111920455244370699184722508145076622301980706610596960538152215348944525297150910950028677050011664466580788640157634029839147636274849832421627386142742295144528454248297670739913031062693353394514784107479684776495257139177718143527474451669450799427520589549910632045258086711425148989697503268587733130200440974195266243046807463167639434189500319072820095150509876812477794184580801318738414821246297608249720775046035041829364804370298024671954002257973543408410737980557385276891252209547516910998945712538950722258776995705963703421695114105389443223344242694163348756338313993504770052691093531717988039375535760872150583586315060924953697490083156247889579593600791948134218944780456378387283081719616446551853011152260890416799612784315498903290661628732917267313132487759010584636054594146929013986589588494232252076416215157393079230288935027757130052145195752972991096189480115353065760582146119513588220097144317140533297651724795768355397541207988976801177347937135700220185862482879185845112218087952308521585371047973767688681882390687560755111369627020493018208664296860096287996845032479104551117395787551940095567172487801549414466887441194586948257532382686027473829371817244882380669695842392331351004026766742067671719270768882638815716287232778390526821696859004496755627695998172892093445382779882488767308632906070317186909583379867217966241423349376832167267157036460464916639021790777343281755992110511319115314547525512855898410389647962218569687913177570058433847197937664986934972499867738676936557473554316719015265699009958154790715488151261111339302127899734795064613380262155706901864841729109888435910128956872389873657593891447055447297202411830077895651212749539829334802578995368539459412880448904148107307343774973598840772135363544199795358864219418204910638781854518532740791122815954698467167768460830908418624327995308334469021945696569609495379988118899822748340125803878431244714798251124498104887626868833289537937840861827217550870331842493326027173273865031656320194270992350720034775869267690573896058350883435131838735147405381467597264953664140047856290847623005482079380366618269826450810881607369232444319280011878807433651694444041920626140139930593902853408792973056574652866390455323186874897189263542900156334403667578853014257837764335136739545031155539874272805825898975017100637966456571728144221004598213208389597430481667706683804258574154111242506539707592192113239641121939852176220080793938969318051795595342971473711259084912202847136189238453358082003690062099788729495229538516996475685471331366178482213742957326698114795111796916658464968856918496308283777044330749463148067576882063809869350988094840681426090651704307873178349918195328807704877860971976887947133694740166034491301879329505289542373920957849069527805861928748403123498591663559337621497981394512640180821554480805927062836703622742260623948864393817223736132583196064242680601442987269166289340725165398244206336844482733402459502292565635608278579890633848230313408807234970593279204919860437523327733013227004446892819017108101019632816988550287054421620086911606021472411557031207859674838213102064364969942862934945895830420359870333538031375784072028310103068683867487450533217092278714921666698322331436284728145103538827043476279088603395664303072230973521541681182873149742909988414757416228527168036172308155423245337949178503073140023149826410593121212365197318830341887315336315010183652126958831262625139318659392731987197296296653168126287611034213149959838443935105438508264073400480945028876542643342707102157232187860055540372944540921401106014778837485205529743611564139716728799071218486211468200777218539592740319103667853756086460796999748240177543549163115119098809400334659068513002843475042496184117030198448071906890473004548914600379890933938674649638081979495212547204195662429541238547621224383438628650585313414425184420459308928145670365436355405369689333144926304759849342789061227489009915682987929323715998161588818162759473241989854372167355599062337941595260077445512475076216444915823562579836096227922487362274557049309981242684533702959223521830649635939011292576685251703813538980961647776424554204020926018832609720930689884309366883304000448358078168498317772650861244602729407189725031747730465498896280474750315429881912628056987543909236720300471603062729718970379958048130381840312421024254964598472214621254495106307163107226467367661290685155513027284831951348707071230187512538199292802965536235201441242807786047038383651083949959432092644566520269039284193166563811126116902477541625512434213178020996500345489951534718763458602313604040782417751595549712161629642017643175733651938048941856464612322392460721982354238993527409564091279329645071616271009513626345759542156453680020304785768297800524077173928289607871097155549545179373143898666993249136953864027274431626881864201802923484206850517038671146855270010296256055371373661959043532791089640484649423752079930077139702427270150171148969673638722587380735805614209214836727577321236735547915292486139832157520700187770808505997873881472065198600249653879644545252770259909571693614197273395108083585731937146676950722869747812710085748227982075407528315946261521279363413432646671628965262186098427339929926228521311043700946680424119508065758730656465866813510314993058357300647686716917494876533558787482720100637571900622136909274633140682245516973021701365055884939262567749407881727973128050169045748089411109300489319827426479463721163821510496142357122480411055753327285306191807135719329323869305287829244935867109059002526253524266414957614644684352172583488741574021605451781116877153046141678720087684102794531466104942171995476455609612125907735805696680217118346962311702338933019702302539633572353084795262917989054673918723984836440376505973707162527543206846790845259976966430229104805493831253844173586113168387061644432582024125746711768436453570031404029815251314436536103010647291699769635939054253039968600940508850076898502196942734481495785981651184362161742927414288457167356927940191007934779373175114010559840309056167031279514349493087111624759389899640000839176642741512813389813318231632659118773067575638555244256372357492250088168019777879408529510439375965934369385663110882568885948800398510156399418661394351677460461763867861587006287877969029783074611838331604607537470729429465826143464765189967036605387709640811706204281863945052924684960932310539186365478398498337914066199483860936619647608201507750527931683494390987937488122850872034657171368803528237198424819915625600838050743112069254174630535707777381763217536513953600743065640609928862501550667102407883944537616621399863476874206533453286477078374878682151370116080473826048106207368374099404238920601203626762459977286563134583349038017661291479670634146725537968910971813691806815396934828033145560854150175173285842492153435467713951978668593429155373003487274005770908313430973537273762024324412378873735275314014723376355951812078348695077041557984158995386604237756085237112476777290917555836349193347804386643527030999040872753016411232425419833742944524240965585346830653216262105909413340848910084994106511048854229082152594925290791570761027530033584745660216308338564448912910015119617910732673959585498156278027817517408792888335773778295339596063912664766974681868546141651116788214119142109910783975474660635729015074630938544195228031391658499361891682583859404565186723328014576846850646217639084782586165218827220805284528696393190127863898803421709077575603709248136258405379866381109203512923216606904133975628550388745948419763206449071780786298815995118711242400139266325258893771317027624746789856142980346515721737391979540932653248793158439971795655260901816649228075719211834009806782126662930940790632046626758884679416955773860162337897636277562559900698046499143410465046064734983003847010376229422508482492015309441963456690377137849168402409924259788344977162482772304910892822283794294869119708754139419926887607329302430528072201211933931945695887469417091683753705755464914284775214736993776074971255124854406602221149517044251291577201132771036734182453590940380034148673712677888479433895504982881974299769994687218173581245835390722215650288902074749687067507514204754650656577815111621697327926727466218508048834354216808323078650962169820935744088441923392910483097692388688763524411704609638884738757255598094186928494286067323868641827449126107586071647451485391980238801944765795961591555296712085992227047661683895130157675008527575968122453858796852633868257053347669504148842225952071043678227535579134637241235522854898295310329022540298217671242690916702102863592538265766064487413690865179217188926864121882086257002938110568985579909807214496902543558739561278917839513833974544901973123157735511049160968798726726495314121208729879097436815271989246895969265454357748108262252341439357286539163970277413121621350610034000778873547127646337201508638907737441983221483310011621949249655980240931980179011525946228513730459037837171848624520814770525186807174842048239711750825408180260905792168915572491580371101851287315377154730800831758947794360534806888276433810538023578813689287320369967675848065197380463537451652368220626062773276528694638333622076934731750001051242717863255033621851295532626519715771371266227762256541505617996676472796243819674969784172760392440394118804429548274227321962375878794084668952561497243805550639254725587730606457893396171012228173113746515996872909780627241571366176796805630724065041815377429616807798047873179195877021116720304551548628434671299407831877642862132432439936405824244774131433311012102113577888181942077895985610256536443298959949822788408832503651443742165422805050383963013952896690893806926811618025525856926161731712274364734030543628493265516629901123849768255163573709133031058121124486598996487851759255967564671498607145216369708448356354636009365839020711326660594309379862118133903815656744042646163025577385570880067702998786176813705593635727049521447727025128962694330196477471437088842022259522154802338811617522525624976394821647536774553508619589796082272760880148182327110848466024197243131526649277499639558975926780128030294508681775753715947587411921004889230205136791800683955492162722026867973330781371979707593520144369831096785015885911868680115653206779148969218823590855552690058382417518018200540875701791088687672226003011916835269191666898871076805066238246127914717231619882673344180429655328983453050853108126735709252038086317333333247165273197421789193923654098559177218843250743907367782909389787492342649897594776898558018040153770138792470145246759450513112706752588304879925061525141525609638378903562410638723449172689913576965638723115784765084707778845630876078795620537709540484827215862889378217969057554158198546529841551779809154831017237884216432146420584985840940663252386873463873956578946324143851505974103008735367498297274383282824816853242799353313881678321597700037251316500896234729758991806050663437889627533951618156203796790541543817174936699927265231327642942285427136886537063738324147690563979695077578051698454582436301020785309292284011550089527477124811405481493541351261980940746719611485576293030774705144600036219406932492965899886322716723613257275985894292056394330226436449466523056303087572883544581875341455837994929129447874906159402536592023841183192945588024050830478992514043750379280969145947913545126902429991004968536501684516392793275699464244961083857741613601639145158359639163560600837240627708194939708790329576610229863011411363280196374337449667281608502009876626556607904671438142507466174515400300545041745715850172655939362665943779380963468202060519068221162550492863260799435580000132726554935180032295449486771226797447727203134263287811788936303377881789227033851657498221718833052345696933503231861206084284126552357828023241029309483564979112906205348247579143305520874961776887016093568288793565174103621845579163666642538017796051928452349588601741627767970017003093349733369577608202277443820217652224125061960470686873257574091761098972190107049038020408900869019167285391302344889575811509073218503159936816038694016533731592719347377275245467939020421347168691250446772022014307373736792284523621141626504317289495256405672802823998758193788024031303945143066683290925979746533821736469113436129605409339003177864117231059898202270690142584140424184742917075144299368001582842538542615939826944479589439600241894662859699241721147812800522328180736289691452637441605639358099110482204269348669094390879817663542620393232142640130800028543741848477010379778586703851364489152754515371922476436973137096311088896891334102823124253004482275073731614451436115610645046981943051898689426211276706232487812594488861277004585843067396182151882215196926627558702350121965423581887501834553486695077203453548044165744398410399394595424608159481557866605331601402759633345051952086721824725716814483495403251785561564414116990819275625033121432718648798767955375723246042404751544015178063394455830934711678496520751548820609016142338843686208473889850031928699532653264424846741352239983938754593232776400777801244338857005138458570075864373652840922921678294209959185273171512085390268677672515962563853189338981683880074955506616889631689410938983946029470145104451035119768554713361453482320467920940708344823334817089278702170593861463186852919329804396991332756774416071585011242010683136672645080639425715105676970585325878202147995242598288891750190548818983002619303604188005201215155772948972465308971775922872159601047499580951647678484118798432256096748684418707677277953469457201795834103096743699634725625466714995419172816458443416287534172982435854634371008146688088527210131657531472897706141066186517449423124749356994408358366159274903974838793119869906465107157845516068690401752020667359107298377749082493937492363100409983610434024778229898079497150547334994697997618745013651244884114028430813759082017661244844718022838697259730333730205342547509534915742214474358885191978791508553150711409519295923093257008686451285136535320427092677488687670482733837137871252142909228505324104406993890663988420699299512807182173714389902125564401765099660057369229328189741937848231840567129331468484052906712069746918895592299044662685160231065693314313257175085136786872697532985491587780863926715900194178582978623134596845314990345631905265213637507884457550500329501312113802009609837019391124361123984528980532836200757135291933549865016664507062104139551235587971770902694925885389121593858496113826642089341947510665407106839268482343242211801177282595290876433885169693455694924420087196964111335892890835482924273954574269239882386365917816046392539556726963810215519048903324008475445215557315201717116054189035300764640517772569755729570339078618665872646562334876306404796372209384283652312779239619397487079748704369627276097831211488706346491935358672583219477626273359175822908486207317058097643240009239435534365304962024887788845982565469189143266404502175414642991750399370617118638337963721970772137227805264067664887360584021439716402573789544362522757538892703594708697730306125214846128715062378142070705766525479487251033350181784426926888066735899430036080017041441874240988633434548881321651340809379236544684433228834342740149217646010223046241822765219485448016976237822143726255594156349911055427645209016312396816650563585972519057716702771479969794499200052685446717047831304826520255739111123310380788383616634781602088719423558280194587470107412908281147290329911888444655067712743712324890856695286593980193353900763443376439434608233893265314533916262656062602048459007219972366213946698618820064119689484775865057612760329472555115658934858893845189639469454382341986703761342906624862209123311043863231004025341140342383296294265259223610005680984543671269367759305577601992489944606487632636187918930937136612739887171888942322224870123213617017163352356674169316667002955856570901807973147506026191915064069893971134340093161922766088820632602489151269620286852839571367264661204503327025007388979067378346338260515927406829109694550516892045808968504739297608116620020972662674591942502867817663126689851928432841427116636986642826176861954511841479173395858777379844035372741761285427147094638484838894215191962736333834484257185226959336864706382064832693729252667413880502208316632648565174056706436192999268691963618421542361768750635498054415242674086970076316759849000942186566207307577387159120986389150792578945428489148083628811605537313977416431343443920000965589296547869687147796823104017873388356405771946938195445339577350013719198816080362690515244141054863329662277053422785165495371902225483489271752464709506928662951466873670370164696584517242936604989308383240878112596728402498105431165173000354443883983560257407069409683203078537637727279236843950487988971809001714318767448977424268304704532323901781538710289430306402414732787912333565748779414996362718962720592608582270828844036736101981531511633962754078957871218615355865661468240538951686430297934336580759998819432966637820174288341052431512677206778945310319983525259105123184298700512028734646708011585442716304907334168107119379974235646986991495990776877361450887156308052820997010288508700589669439808916020425101774926797236814840701891150466079597019218610043781768869246097986982420460582729685199447257093310803508080870049407210733978340582712789463089295731519546132036044436484239678136940315997190394020108739334598835990623037774689469283144975159899024685770882294138805540002577852377910714608893222126956507837035315376336843212737439820919356459009910641457683439767806971192782297109217619582431408139591696119538510439063844056659332417190505458519823820452919986112758069871941439835461095144792052589218195416114285896070289704427198244668553005071125765264219992947732804691205995082385039342420631109051383989454255082148714302562933213823325808569211379631926300439330631292537170697256028160838374676174462839990169328515981435491354030313697374611633380616108941609051994250920307941350182463194140208169143512796460948507850334300807518082959488646083955472009302549548610352234478118390339857899871763987303508397639351419747724654446406407340790490042715117809729022597215164684964141239406823719467936259598142831515670312003299900572188617456894951294428059753679244194599950438118950721285596684411899255279487817284893074369381797925428441512480966305226608855003437908956327112754609941412649320184942198080232559410062398405999980546249209519883663547474544421960920776363019573969076827783633305619465836846992742945902787723622803481991038110293799753838701388633377627609082963678811125785801947880833220862797449780459507077859743062359244273662962994759958035365480268087367926233740211092646927694863553477016355215246523250442642883503885779868547097377540089687449318988201746072047995529896618861239544786080045920087000127416987367007680248543931768983060488202719058558992909045812980689097338828819031364581769701047040387296977531267000547043344265196178708325564993255178768555352706730280460078472332598788510645451829670173343101901425007899789749513929526903973341437194982581250371936905802688572584031030039224970552863219925652532863041420844850514504358114827761495202211353923529814385572968710124241115227392011237484272821521241990482831295069263715107419797694765305635741526910017470987359305417558746937016576436116930557518942538581161949129508877030405705143911656786938654597586708876679028203286249979637454995029594473423477896604741196793463828065353469215837788025612248892932236593577652739177278109580615265795997610323723462941094947100226252517397365843647718601999488810907998049863600910007520969461638824126764703587686975329996455936042878833952487999815710909491649465616346878873455481757014935663744674568322344858109354217738114669106388078846867184046972896028226607398941812119972188206548581041439520975141353274418946186860574849472767089429529015882479121266432853076718322094181855377274512216652088096641674416603101355909593266637370650160576122564907160266556088807677847007054890600087047652423634858732739910396802610082470371728596598061824280127491460011987118409725704379225542228675851501152560709779490661853262657101250828119409079993585317828698843662206681489622056053703310676811615162756519965201932771306520695811575131568922930568950475781784216042189028040539632214770877976327734568407709341986708823680200556136860895793575632160640242621323280773408146434001280597846176107720414754338496004546843106908769132335861709600078606773613887947878930345686501578218455716755632184426232173202662897423976595086037839674966885429212929406494565639905745319880546542982261114014162406891791014946905788374367202582575787204589776456070752418568145116958542131198832990055637049663761032901827551041181428364242604110528451151320293561122350987203924263873627150297789090850135305647015350919849803370342935555717752331333858411643199342076448303886263453898680172652922040699105594176565975840142052671830033461322982552946237324381149645632674655615809650279282078034950190359274509199156648469538712172909809917789932535642294075880286647542595086209466096854598716560423549202479535528841677238455644996087890919906930854200750060933128888636767932888359145709758696949380418428298109569562358739598812876835438766250361095086646222856966434488044695713494709230194210865579978583350808798315864864230744301438630849619985670544356177736404227140750410996877028168151031588316102737199283355256577127344627971580359450846512418459292728892447736922110620931249606848021662743643298955073209298214763751522667261769917726686800848188525983223658949917582605765004940811923632250135716587182710697354603901419669358770639884091299749470496382761082702720967839676584641467791040009208495724906932295474042571401342557155504994674806628828090882030012302238617844550286296180246420274309410979367167349984798260690469933633162572744178011929618501054229735623121011800674174502469368777259218352392745933572609694805597505556910439642515115120009667985885257064878570854138437684223040024243409992791017009868829704250528147844759632938051817266283089608229911871775465383447658990274620316239005484850437565610498632238342375466959351266509369653155655427075524861398333695862338233169499113611505125268355547596088083354954266673397714273495509415529439384958835840632419980843947051951961250996967155600097518962521088244330824015975156179668568951068506743659048322423823294845573517762637924076845676007947387405780367963528837327038725596126624155268219974086849253150158476232946753861712100744828771534582141756351296966125246498230581111996391072042401988801056768826396736827960702307319073988828395857479931259119677002246787069695965876155250982538239044180761281065960573475553502057352433055768906717390909540295315117011444702934049941725983319219992652567826811780487591648736591315941746052185551065262768279544329658371631874197900061577472169621116384382403072593035452488231741574614317061083796268673576820534282877956257170778558569826242767391886614983643903476417725894382294278919794168357284263753109233923041623153199794907501961636775058282315222513329710974267146391763147753053814101937806324847948686936714839782779608694155024225443259494514729688138853458224220090604349246318263723583260486850033357166216196605142847727713590423813342056364085752885496380947611852971261310815571258730363841675757788127102001408183233246745265148446453636271121044590566899136728669275971862530304706576680582289774374446785177978866157726383973913252096294164393060857769901379255064665576377758101113751616874715992729864660865196292465939109492108661108566375997074125755885411877772167385047440846050786088414701041420095081977540172394130295927781654801891182747342147752865346174093118265212378672281895564007288941900193012181394353548684077180834657816844335663474883351938006980907980022873382447068652190610335812629155422606162527556062368727440935587936864300729104282600167710650170755156502466554108140348181978939225652485193713681202000646355720694778083562997213967627549008256380523913526766123135314802582329076841898023509431861440969753958803800283366285748243892824088399823387463706553967732036214607679415375315747067775549819139395780896585955549031450344685405993045357415977284603909581853926129616137231138310325695585390271870366394835819834443056661540830618998654955328038533330528215034714486798147891911972349774492459832417051384277092702883146764578328460128832201852029451440990726618694310874451404181189589025797440520162274140304341507537560082931919245866638494036752487711835740813313485010894411918606415710196480153734817453816133399093529320133057825485263303496339192899870877203843187152723674774184501885952969538146974564538621043015476421044544105654868219728282817030428851270238776377938008102793388174951530227744683302474072627453426971025628300375114217508802481912750530737168667475926881459474445609279485646153614129351493236477326827681881513905577191710007315847804337006357105729177038798338590798573765596976716764702933364481132265168561753688537117368118859296670076831680061388130510528785169450533625922851808074115878853235096905822420090682481111495495596432891243046499242792609086753330981418920971681768208791954245267587014282760261528951337284324555227011343611534198611818214293243306541404809681453831545047661473117962798422811515532574020159203739425072223958911008507678164779159719811941101319342156011240302916123528948306751829226497501062892978718308646818907418270364356618224764940569623243836771898095142247426829540156320256178368235304675727438157510748057566832867989354515091329023506972459599624813651589986447039882485822520919027136147015791405726334875206334831833323118735376583561498877845049099247223342674714339382055083375810954158906523508576678515178898753710150586160520198361006427043259351470542145462316072079624705731974449456125260215779322315821889129592938277981233310565399692024266964694343513036783048320184943841945747561729381750894179573646523002098558939808066146274745652883206554040691715769129561010436977330141343152940125179133868147238780434711050055234005235913033754617820761556809760136084293756068290733035393936859775849873145721346613753105160493546125591714520500547981790713588650474099081690724776863114694121856701663907350008154390515901586903450239882258169476106606241141692337153139000710019097225000265040075677259678846158994431688427978221808300671372850724859859373888490414243451964216889251414430863441591856970211307496509136852445218110442800462982905274227519070697624714985350867753490969696371971284227392369191481721162444785420293338880006843216618488470974272649938145093379249798556106063281818688179040117566966478982345640864628903005169205124783235664115728280695141374647546375788858300967803346691148405305474569660183368452344212460969747501924702811691638461480373217315386909813614849351348655554181552469322757112158093485911782487059163514181659852333274285201036826131686850969875149775575865687303365812622717614960935102445135670045855663714079293745346930045443846801458279802754591473148710244045747938987120307528876659068462774846677630563053345534523726717503640589431311383691397439471326447902055734455573206261701305273417038979038986463104254814644157164959029391094288135418105848571685215764844908594083882752384782145129112921549143497854125909579018253850110758452997206816262541819262249539535745419813857360807430846148585371585008427588730416835095714417693780919772601792572772184591020451129170207129987225517805073300377538945302695983936984556557169741895183527759896246926326897665760293722286444654613223467361220190134071817774602927252011479150043174035861653781285091031349116756791715325122120445845181544012153040955833046885872563953800381173976646324630471775376750940737975560253589075656778579879509358083124436535108751291700525827365765716408085175540719681389450279820378765229180847424449081359571739714547449011877999573517017405230125535330510399253127246254101941729493217870223033793858852866184373303251223218322058426348905213218960794514889324675216849741690560158782637998471870404092613321866433928922646535963741384860263986143527522129171150060295117481559638319091200378367034284256374310644744951741517282847452207431420349412456666634771793868511668983895637904521410292753025442715707461856926145827278439043408966868856113393806100249424893630915357663792111450739004827600403820541291969354582178276297905983756570299907638477947414869296417232161615292869538359716943719587228803783482416905141236248560086399389626654006433065628250026079017952130306111010533951426428911534487147254334754033426292334572976348299889491247624298800941107729738009986342424056909560136338895507470375603717396990609293624910719562783917981729071637273022493838245075629554139449645271179586198314366339155811347846984381961807047896224317085118694200837557130901794671216457230185082922554338977971328290154962212157037585251340391344375305709708419460991741950805492483521555148553757168604703152272971192476273925829386762465437485851408043225175767357090991941785162920824983183494365670036722152535030088904134487295697786885397238524716536467437926464022069797859363821750891771604326694177920871562172189797391474795718321342510696658859655430931557019130980656805917567161671032047342659489601909449106492821673541677224275012484961674910048928965163090972760179277294485355302389064740814337231065557178518857504139810472004385438446819846188363876382490422302861875365622338923782756026257004104290500319762597686603924650945237037392306170305161083715085873199003681468567831706724158226486272382120103989706440817497297802794296033810927868528118702828193598241855932297214220082314583454076243703848648168331511814132562019107660814738904572060780627994320721540138716232804566866824726365318164701815579098081139560069776050341767548335034453850176285409559472184397880285894610870537183406878353605326905774367923909764026209716601325125526855323228038171079846029121266983742151553634927046410234634329129410772877567523812508414540811864286705925866457067343876860466339314598377320683001160093546213807376115549003024480552571386007819287006149907215177142126623255375146602714097510472946126240129045401896454412197772473341379250120314476784988713698340374049402543471233225636837085239687736556837305974480007728907570407100754792740564181653325384730357939349448093472352909073480923621650234941592883524257443107241478715276062850337890684458222731083089272587281770290506186449844478499675180726586889421660491937109347093926600656227496152042880378337215028326488179927776288015614232992940687938836274781182843206309465129186357778288599072662185415491857712591736918713797196177920537827533194815719793083883001821505290131537028883432644309012672742423498961948621254654966199289402775633839235333013631409246851879312333239971563641444902367763591085024551482299615980786218288821663019595064112773255103535379272304308073565887065455047159485558529877712844887861161058757662918841125544290368757044875879158794464097745538551348953601387705395179146861327331633365580790460487773938642575082283466623319957166583298512120119695523833960562888237644710135901078658916203444901441697203815091340621043020048886328597540403460157256911334426393323014669565530980627654779645559085988185177089610295050299236561534715573557130404280018244261416299604873293720380465655958292949059889480992176588175852539544074205532900527850119867379602070595274730787349762155227652033825157851217458093470788589274351431651018634422785820071218142873433952988520460486553908767383036395349821855650265250407874405793673145799457361779598006634063841334460283580935584597844627646877513957057044875326726068824793543818109642727088888638239619024259150835023382446533300843310604259005402688161288764581035134138826843865507199377934112415831883755749094547069568089954421299442271224686476406558429224183804146188753126102812614213975459078717525127546378842792126150624374754070559586817564065679719674970193917758665134559827219492507614491625881557448944876606777762105070938512478500125215828772115389710684934287160834403774858199907993734888720451455785691818842917148673896268539789346159875694120639766943797437452759244880458996503645823433262665854578261547311811647504427762975041220325107650318268833606440792023588223797641557265659106497432866136688699918011598435123477373733104160544607974858785275574915372928048096812177400515248889433841393983968126963917087212867432660143302094505171212808243429658086072256991672703365607847141315923301750078485734619368491196049902493520658219693002560116864844735035772816376457798157836779193526450959791436394327148314995879902126748919552323530793399376459898312695510114210177686190305314214605151140317125849388095720492944572632612405194302757783315475623862346226094458452131494108840628505592947893527756101402131952979659173601194363696609837245242045056716318201732558532110286788622669104896595311349531026950820337330557088656235427998928486154836683767902760624797328821702277497007525291737776983245759380460398316114539857143315451350805344010374714225427899340571664360663826588431776781530117993225210051252952754623408277161172792399838411416972557996327274390393719443239908185630539147578675009293547120566986372297181595516074791230667789217500002153289883703017467979140563464387352884836129445335738215489646733925482791304911527743478993737823495861730571630206131405164348697420028281728483694293563079472135092192986697337523662416429383967932875824834229111512392830929659321943889866212562532040748589074328966015887656015760539332723543480337064948977110853751527645214162878592928808680635641321837621556669443165003190995520179527062248218722564843996908306729465993011024208758398681984877113411420176638157401968389558677450409662932033414245473389888505690207515335281770659939079078386535381385587307564076921976697428700465101895304817840175489982890712445919782622888609445817737716877901862550081097779536686153210760747337610906482713081720205212115301516090762925870314065658169692955586792837724815229528242410997016009797200016673703139126067391491555764258334689490102732649294603451305034939785543631715860486122488253372491376226591815496507576097232976691235820303655876663172333646053169891323431434258382941155394533117768918251052973733285322926028605576353427117785305806218721362859170772254732349930122776063603145396258983852837991451339230234810119955845484832203638434154652526845513237219872905796589554070215504970729421039326689074332998994303896011654533214464309084509104839327042216894869815674957765673123339910386285261567680114585772777312473511729449092183223191331124776455828885337478850836723515915663725112044505701025931076700285705879770766802235522609864988866394266025145337046533397292250786588421884384660149721835238004621685432253075192742932331773969803334906159114969198166836121361734820351258517438508453501571078851031109989087870814959730469295836062295276371476410237624828044954210239522057682433753127637275235768109620540978838449889676808257033581341063032417612839333306148664067239086051806403970070088253321103850226600666492036295527906316577923626975826304041896998951824593414831506645587716648381649203895110131930087660799939395764265628612093215955211880692877489011845963735597918737355218604598127681975451661644630085155678272654383814997749054872729873235374817910624676262530180266255128735048986908005834628595782504937663329803385794361094086949365701357093267673118059838416774032711780491751936401028679599975268670726829692996122462652904670323937692688203215761681534804134166945383905459276518392941113391073442995084097934966106752848793728745912345718545901252590551930475929792825527895761066416090461663059346648487632884022378234033683878359580731201295404002085890621103119647057513338673740134924127339690200793400969985578605097866219444686871752309621081014195046338494178563058574033926671269003289111150474068410221869136869629663316847507396692599964113720024595842786257224623168033658268334425261851622656789108709341821886247160863658460455616926448715609897719064969400965250639547821016733777333000588029013833732244702693933938459581719110848033958660681218748298520664511380252990341236802044327376920885708068126809283200212580237722768239040454625150551111630679864049484828291090621222535112087286648806830964088913767500957117637933126759633360373851315707828054955754310137730125558316136069808105430018762510559468293461443458722570529388263906565997609525711307426788598240752387492197909484635896193536895760827957700065499901401855161949017996018203782441191216393947199781323351138429627882289130805372551703335712352663118346276961796111755308467935887853694622663279600259701265496606711355693768851217052009851467184443129980216441627199997691056057199077687561433161207179487087884633698860535178951426677697888850470388041701898465421407240068420693375295641775440033019232884174724390109912634313854682419290450347209233361454457546521962002380266870086856638937810591067808850974500526253603366407198326385634375047175423941733258085268182581730209035882275986197020125717949141018350960717808791018890678457115920226209428136981229381860142549441438613020625441743067626752858813531986417647981980300967011267413360213018831390937655263508874041311685107027441437016663086012549607913944028278175985966394746092170662789263676802943698955711088409010617632824658450313842175906934814054640992120071251620891515074229791813185938357533942800394130063914688769583223334509348934358691606509440063283000950292342844972014154206357565932765932771220482863807528082158707840210498724458746341778717904810545053133399799644179962181636149396590110248986877112754195470182648328381887757056078351508437401124523912020280475903867621515438649136717447535312008315945551465757979363253363075878499359010619125206530797152818255832833474329870788073877147707747387310239090315694217095821341613922438921719561491388215410445652006080577453691729197080633458111799077371847293234365492214695712125730262377833080343715687831052888615435979006378803724253121036006498367271239646915208147433827234687667058054223801516525527031145559767800311197923159092615233068307313453210071458849746486222229369009030701329229519122032664554583525096905233660126164412666144246676879691428610754148582986944032829236403771172597851646050976245796921254861429819564043674153827137759271887805551284591411024728084047053084201293914510919389870183151572716619156975334481026458740239643290026325712973017258735291764494430827668889469070319615130869246248708619463669592293774518674084876014270596197736017670171408359648766192619212148530624348686768097264311980283975833632172554985284290555211287302053578494997137406275165734963903495138762980266103839124906635109572183691861939375200895616495033375082064458595721007472137752788844174638731546005101640517045188730455915347623115628261540361097805887603633264246544357845621037969380897377173761198293940083829861745535443877696028535847797135476013829698785536669381453784575676658562481589054235865171319705270105483982997777637278641235414681787767473254298444995371827237627877544187154187535019130222656136967302335040955140946004848474314142977204078586433727396944072984187801134835939142149540703286672606956251248372233419075140919642844944708036044075148192303871743775614250599492678076271114371650660805590242313971513216480742512479491886511138408003536269859477998320519884389205478825964609313418764785614611996686680817098141361738671740701301311216232079231438117690894384556880976610561700545412800361427621253537719212164423884395552655079845343271864715466736959170014084414561658127326546285212880125367271891808676615576836337354087807433616143850266140249329669683806067971992491509598766263125964695735407825309153768016411762927928338658632684199471958166218063248302507873685203136278827812719429663924756188244517005028196158548017807411831965661459444001764884283491442952992438613952214127210611060932432017412369525978332234399682904265133771244467166417555745823801310226290430303629034833456156382037791385966435130441407755046608900854122004479044068267637437139272293981445209733811425381593296439985903581711183612081119890519626226395571915510757260084142675920183933600906502045486840056449108868165309536646381412484709879634350815315917938280412978294263006382303772544217582336894370032464336623336395886199638487219752712124034183236241754927455751159262508707641995548818269672279764380030214966273025306416064222306351968355304152271655009700791064807142209194960874254948717105591393818720883436235630079527835794807419723741454879825261058152260083216709841330051216237968245852596768894919084999933306164861211472713854577590617602156194171942400508467569646306758989834096886174053903723341051715935412286643907315738877492286109569778261756488113532513130186024817955449635047032449084529871259848799522582278746562257009358680628570111169093452585924770347041658924537384271047805243865260893783578208071108350413721148773629153513081120055533409754357260046558965438819328052633771193081353015384658611022816853972178791555479331661135596575102588782837902157853409810005238662933320804838463252892808585623090213165775481540055414191026925349746941076320799387416628072161282630267894662003599909088290928184160787078033375152126424309019164248026213051215185044565399972536598401759494916903889890062854268420251951842925341264526107139687240035186093347474615788169547718163971198298289039676414356413639307284470890201583580857166466900146408567247184761245652647305868310254278823508618567640337214944658474276338010977772039473727215870680751043788124882817967316086612197044416687027729382920033831244455593172473509534131104336259089565995383827537375986571019614292483843275406849358646179757338864469405472908188350632915196896475661073638563140553398501417121274641684440646861770365015820178717607760906211742517332772260724157109020753885442540281205667935031412353200978339751148510509190722304050257008428452453412100555391341520611296134290695911944748417281051594820461200878607854143660207100778977134820772481315212141166473440296352692172195552004127021726486155499139490690876950946568563905973523938947503138480976021845010454896894549603060692579567760516217968934812912402118140810545760754574898848105267454435071226599085579162166480913023243864766380269303272156942072015237394943431020318976524696807879330899337933920360360714264132495273603548290133796459831758303550183546496170662250844607793917096144259197636574440716376365636181630969896139226056569089104142364279696202564121455838717810659805848637508311771805152154590344110840935593167281193723688530440183666085726392698197715301258382924769987924366093319968773727808509351098197535529786002216245814584468630497859327767887603530055950404329762750086922825183297610974553935508935416952206789697189799677967804348701593055863148052637616326074791266502988428919799181046978318187424189762714323286077978538892346944068007638101067945692365179929314585166666671955059926041933031800775755833967314549866409485026056771888481859692762270741833473176291962174031043141349109824168723183559680990868289886035496222026796440498685311159827918436486581933267725668553778933898578206779637900357643594828132065409150126125505536520803618004012592068047624779859787589838993491537361593874361262130745189490620001968646506198656895482318568164333127024057430118498790802027177630034030350398148725251304371490774540456198375312163306864329083488733945973065722926222271567190971759391205724933193932819593179933323540926629124375639009621210433578955531546271599589770014126907831357436983118873894520202303287129225079583044377668355818478686810694624869999007989099633257439609188863856864035475703790897935165829493775234016258117882513236050901582889072755917958675332464231648360497874601660602582955606257400337165020422559001387086623011717210588779211309130494082382193324247655543735066549984735343550230100517106421632696949828091859377679601965978500276916051080680476271915950237385454916529574106517781152202254966670704022202586069239382990896398278934465375494144845001616516303733895133819542139355051979895643079922040717942341261203972600017257806463332878430138463019735581902284415129209090643545134776906572886217270193807870501030940090145006652576148698823587137554945511388203992412822867547982028773672882538168621775776091328449997774857989485492558828522207347960039526847222939664516275398134794377937589631594263356752940118663456140224480291270227037266989714239240806420868997652970115917436184663305238798236989738134137009534937757379642416065104469143138314504888414047884849988738441126980873272546276074206110249241248562813776869687578742773889567034178719759377473940714238259659644901481868466526992524631361442075636222665087316631799015631861441490532838774384379776070047929730304782928489861282637385115690751824887550430546791753065824046268055986691719571669091527383521513169644088824808993935771593616740062957568836033194602261604754387002152487551374071586048323527137071278470651704438175299286716570861392325677716788599131470693156166042591763102835186759610010620560140226982027212623446479005683171277214792475033497096188477136279422441289140667675499929052796457050478314611725458295223639138171414802073204869391041482113766491849739666137529860592253952688248440137310374870230576941428637819301392373572283235052622728847453073304571016805086728728306896223898001017734434716351550725070609912040537874711984866718309193606918879452112898388328766667529808847881918362558216949799146739964369886009437869913557313513792937492118672613878077879060746915004656783401304748363514269821766097894107690119230039475479914114628112434575301943932660966216425649179684672588285072277764267577775013317144010375928133468951850747344250450417337703777547025721682965637320479858248250197539537287423431678592625347174838433845060640137133741157616810391695231533245089935669197352263065201311437113373628314848199848608942136150913666683408864711128971919102340730486703687599302563801131236941222838748580386283034912244380920679546639609976497760113144066367517189454470161736162029495023963677352776609240351171485952940380315364864368603024942111762993989649326692490275675754733756130039205077637750110578315127864479557036507584409204999423392468100819648692888289562863798392838997869920848501106412882190036386322089080783091891552036817138057712455604230954253334692783359010955179919108350010647911778665202639243400818562161695610918383766285895037183236647588692613855750571844729953184689535718123436526578939643200695781625130659309519289702128760573502656964662579889995843124058435072973079845893048546594049767342079012242837346373772957416332743184597465196263465488396750721799432008517615694587001782166971956408983654588502493207849579374725645059395970044987005061032458643883721430231739271759694795676700349617670559544242476320493713473797302596471871463070077276293001849422183694439602245602768626154921680177698097825874588192079064449364944204276818849621673989540195866069174036950719545402649607210697067598690706865539054943094353780458466154509021935589665653739966074069657844054857013941948606261919980198262275535901155544961217702405310758058185263930209106630864396166532510870021455639496336582819070325447617680221274354908622796546554240153682995745440237959064134854574698500729892471622738971981507789109935714944350360030115324291002878379419527282889412411144473494696700862531362515023376496139657682309602881098508705824630102451122323799190644456832706569531277349774079199800776462657085499066548861894084311161853211153170599454421642109525868444143327122914937563947909899815545427735927323886997201683129307576284400862913809337604203505055139822783360963829123082835107091824744857715112005642681347545395310466609977908351581679569704063476360119540086957846303603295651329656181795164658276382641404633324806148230483556109012025413379973343142139594974021667950462740868981428056122623809614668971197766527050129767427670915369360265502163241729820650816464259246267353324993509086078187509957388242240122683286257460593208088055361632952633344110552803853889433640308401753566895388889990280473595499701675387087764059948962872757719970183850994970553126109007012343305664425598316161366367922499693113857524787526255727883897626165989284259246866767149709704414876814697042776740438307684335959510576648251441176565035346587556848452675261736571403609329227092229772102887534946164864087979282595920429483842272990576825551579587428671213976780387489253584962603278377585435305838718869043617307017746414733922522498252618063459123173010781070528898939499222553382636229073260946177835453763622247768499688626335177961734098704528963101999183997344509445353563548643746589920035386231112651398862893234318069863254215574044686261627651793231007368366990797349808928012421072694773611455729281777261352648985098192267880050590741819295871406012719869930374269016685026231507642359389766262494415566360074912046215573638768894821873485455484045012774678405101676131813015307451106790181207473567554606877751435168674118571591615449045491421927380251803421827442476854093442850792251280026264238502983334512356625989990009996682812922425742217586431050274677427037650402109373533643594027214034626256002022233749762930958124492595372671145709005506039559581926910259984924234424127602498874463413399456173378467043927071791692016973288438203961448912823219566093897318584964092468627870679237495180874904127499423497431516830814591804728163978428198053974538013831490190152975080211131143065151981493425415122470370623030538182933181569529127903812172577615154417789534671258314781783890486624010523858608509342087197596343664061963345223875513647683620417231268435600672228115521889906994632719622852962912127430979628848108880207096168362000253042623659207508168449145507944636641464953806162842106714953259986337662958214082006402989453731776723894873182345678457323558345162383585475962505785959958335688023661575840991277232050303905385452822361419660043257420310519810866181031006785349989948844065190059564939682086137546182292744578096716502704691358098053484018716539672736226901980528072889983194807595959197702516041745173697874804606031146783816329488505772417069321580101921556684143446982159884248069561765604165668440843615421368680882187760421581674577030552946461154888137050872942694445332753498886990351706288488747457985093097018748982312216307647333042411215621571895676788289087970310586325904648644405600220802410896954720367221405255445122323343342668955475346228822375480119457605879547387133012199512311058083287711517790257880883912330049191423470747196550040686498557255568358716439410506423841444694301467816378362762625729346324410412705787983572817563582450185956997355798451400244612404464122940226228852270897467105245901593095770039753792204379328986161829086822913379429812670884822443667417023734156263220311524886844238110001277533086720478363216937533680457507409664125074418492221087120083834282929493672480451016907671690752178861860467433122221570975899844341318947965803838394956916492202772091272447170884512294890899763376311579628851510665070437922258612283311925280494822444398966481485434400527504415135457070634143950178710440239303663938097013061878303505319206307255558382477377549534145256741290086704518346842930500214792452770963241831583244717310475429778297700396714651167661628612205733905241327872476952504216263288796236306444458801628674238835333397126647353414461745171187543239500643190142694820504983794228034491159029792944183734206300897490940726905735540116233919077340281001343374661248712564530046527031621396382173480422517743237997320788658728861230513151394363672632772232567956408529639867161046316760912990114347670300221154976836022854720858984961829711642246090527570905970814233653035056108630267473275398090646275965539416097072927807480856794302910784439313735049878431629598714146407371974863909248378049796085706662674459996548578562626998381471458079987356943873107224337279363769384143370530467926730961428855024801257561355823993080652656949388682839468240162413552322671890830218825282555424467430459184395253315394120019144316597499786954095724737599373397614198751510419703214508627415177379594019449882107361162556768548775652591668728023804862572319994748794475400029625779224806081972610147738493496351286220791945486879090879286676708582708665279735188256144126976838707245373178426200710401993842041180524321103391874610490238957729622220095230725092557685822770395009085860644065322964879711457517877215753569478633361039844349565318855144720372726784158896059843344947756671423795092973364814636784794477562266617967574876201967391133689505979953999157406733448824245376393190132692251945241887371882243548028474795133892604355208891420588761187812057296137394124030504096149915342164994942706251588557374328383626967283727199998412385226890785253099414822031078303788366393513710576082806771160416172574262515773661400638067951318575577028686169000789665869722530428757881432816534017095381943143386175957127379640022244267513538862772573240258037124320818075278800667976180078019474509190544431312637325157151064794436716048268587280437250312770407527832380496271981613471891829835925088091567487586939421815448019463808483337419107655023679718007075378998716369397110319442847599573880134536987070544941192039549948769032647607744679127134452880655093511849441056475651402824292400105902012536332492447842273403164683173157928599756329261083136883018163180995548907516670911482645166158111797455058826808680793530892946282235615160888857261838642511726679414795800893117993961650904589802940556274412581615428972608540634382634251547572356292570985336363467853400950022877985839610362721654206857633628207114468305626136129395682443023991715889455190071327615910727965371413181751492437212691846369086896138207704278523154982482708202208524326127034238002896021091022267219764191597346902176194371132102967546114264869699137530417717583003476152546536307387402484994704381897973699551223567587552077708913397938939949654921367513543541987215937026096291646020939458151680656629773982871585430818374423643742398657292229868876775240847872346662162645436317792628982126396408213869708469659651281155666248418673050404917564739398190037183498725858594293976698449668681076988879889148664739140345406006121428032184808666529256403950705220685642401256605816407328819834647959712253342838588989828888380910488595651814961071519610435368235254884803278143285529377166285044600774650467573182830425684965549692627526237125363101773676703799764539677508656970866685257558735115371529427675464650738960468277917289035898202214959432550470818321859245062749686392176284477538136209879436261813895410895385036828923980265396865888925152384918234738507578367382440465194759068273269392848217584449074671285045224502306718335887277315231789236030620527822337616468282099402757270658965714103056836126039222057980285300468398153677296270029512326180108893061368209428887395706992195025712762173185968891801542949886122979724917192647176657333493501567151597323116651281445980072337247098161584392568188665665077673052104413757078452647057611553249027271320473838270242181222032441680564455406629674200175385384321963372704866432632021507529718992346043020654127638109582923342486094648555655981000124258061725421975090434950136002712903166349814797609600259769642746629739256136371879169316314342653971137898153124152016188948720923362572960977362546503830002282933305330696130032297843455745364781780800519804695074112135059498739024887977531710978272702624039150761565377358911107618611077734821637509681437508948650376772139163589077560038632964263406092391524356639083676924749316533780123062257572273509470533509135611507667785085805578078399639493953111614332661186106635255484594380211855301339409427899673666294897849810831030140964250750424725634352479651500359513718900683046277638380873539141697611033702553321929895097669581196837670055215926728250560439305328724251651421487224281247347244119681014677995823511362113325822246887685416108759028322609153398973563875724224815053381022085571946906717352901608739575684851428002650202353109015831140753760226305519343324130876571705548689788438780703055280204292028999780665183640062822131494537800310116467147357223223743825391099635951595299713043749005327867968350825785261098020609243197476845436525822046853769337014593992522912092201558384741109178013390299993758620147917709742432683338581075644451617449343236244613556333744852894831903961781747167594119083914006048250566820099277620912449919073277950723702222430454833594056252444731988141622293318580998246676527058694403781581640519110789604255864142410486558409419821410432063213269701898271537245150517215990027640697565946390528550460330634372388323381908616905675183126622410053934906467078132400081716490645173691339218729757706632927100938693687952380168286901140824971005277296112417032796364297204503432459246261794919440062573782622897394412471310413833014047226343355241542743824376875008622903799908689659058144040319203683147392686679730766878095909002254540671521985447746532663199138873211475962207387576705419973145597562789060692505206256484703296475853425424039687711833073197507597783448369013787190145871466725315007507772732422666999005042604811461206129696269717262968472636665103546373667558429680257919462677321807711750883465759915791085169643512602586193213234172186674435895747239612023046881228902119143793218468397608304289457646404813028270175122183034791489800402240887126809969098251933888312485788860042880951159451788591735727196729785969899323093867246783964155013094963741116671421365821176976088795932318321746663447343927996564577533819622297780651228821329977082987024869476329856304736319711988718551093442604288322331902569168632149544496243821000799681350304634424375576546715217768718655411655067930352743390811766646790011067136483098344759495949069434364719457134866972952160798453065043265758316698569644827867033030463875062349339198012696938970005166195706059301318804845253042027760061217500318726105389426855561584217454636256359565246737048162382770934904581600427374383149273482911993116236724931896382909365796039838383851188042351162413125602739841237922547824196633391360349072685996989999526418693322031812740848899177284998418402721555190423393416671813579045460247683877412836150907910376716522486290709300854836087352035367579886211935608864807447078402848795047361560198888996211111359714355852600118492099863141452329796796238922647029715693413138944742338621150574837641682253185422782886392447263173108149338891233901377358411959098078071759091096720635257932252052723511068057853077292294132439753014292330084136409400534741241092687868147697923950991983134133196768114893112173443468509011531819161621154562278288358037467915770123550746608688548144207734660971630009154478407637335417637322870151277785194705967954361096949316919938880853986810620288069472862197471684754050368082940195867135032496166162311659698969043015891454188726387123865842900224320764053093660729854758735420658009938394666537886360861374081129238324623455254262134793864322667594765898769223718365741224466987959176801970882514853995701845309090618579849778472143995412273230745576865460298479628842003724890269139026744211774433315791958962974723398788197214462249755898713729495475945287450245517484615461171444515671053199047936111040736540414851086167410473177777745099566300907968914856411587360768136215503937982181785648179697004716042939275717908838117735032662206127849127176210990697747303256665814891319770675924956596254062904615203914817550980565199090762558560535789902478546505048308048690137834429796972597365603973400320320068738995090956497706255734992720512830444871922479283347221159945185270952193356027842891406246840011142373299054917781554807045482272944747235602673434104863234097403694052268194205038269911495176400973709734374819254092179788959586355985089800891146617339347744127975992614858158295918117009470307236003005608382147505983881460336609490859097513983307647209516025653877399482498991318056562159875045233369588518831901415612437608944870096640606488902793425379231464879653671913038731964097018453489435028733648938044618853620846384668188133560945946094035351131818661649987752260195774195590217592396815057602583328498771173076854283562432910769523369560324168301703930099067401301315207570915877458704941512918754238167194623583689239098750929309605419643149945440316749608619825861241266852445805830530860876022611175685091616416497997905085608156497015935854101931435237586800809124438829369096654796408666852402090971063756569288613476561191053380867548022590258789581108337876843402003432687660029452389978145790144544914504058606821468981547226912467391133611916997439942988518391383235313919743488568300846374486710193645472872109668158147499744389794249764229475580357168184070700610367929563452725035803287089883903940896779919259471239925969132775644087750194390053649131937837875032007797509620960038832983721331957914377444579184987026455814392123192618706827624631637441206102082953567269172972790010022646123367510461709836982961144117275030070173602367462036549450824930361297203470405420512492327510079105647210245118446920798422722118964487800871939554457731045683067592017502252947122333934319597687074886989471884348253867234238930935756184513660080132514235163568513830051476377270609239335687245232226640623055951900526494085446031736504633089816539017130018340658693582172448623863317255372939090386730960326850200856588174464089508324731352479071631779810046062931173714979283168680168850182330358464712251966069111998261811566087895856756832047619169089293987037280785430793974769442033808551144771257293646305795150291093156677178654220245631497551007566294171665058870961268450817016035727988098093997829723911934637599029845694878342302736926356690859068623422275450970373009765057630968345245228267533518434761443577900380974433335393147051695993422210210950940349401382665819224064747649877903733117627233233199295332810445989376041579208224648800056915844928023280457316583670884154083713751842609490018981215379575847818958835058253686556281365407424214423345708729405414526888667968586563748869883911374604361544229530924597412731426281302398128568692810178140402500959759320577395716034003798381565015515527447355846976093485703968153138640445789534203388966557371363644775588167491759660863953183691471072821918425404536998377025092455535236657732990020293542886810965735701492272230187085106468622892921329595716380975777105402957753173278346180847516641383368482988469523056504279904326262375639393147159414896694407752413720946523616326677736874000596539599663676353203662446041718289766600726307891031779891138336361227930576465506884462835426401767433085552505468725009737444337798855169716870902248570138131797051213016001094165553772908437367781683801560022792846677944244084256356743024833509374265496654141001589395155496385011127289014995536114768967923147464941688260078088251908338966276391280002127172749412230179207453057704801723310789125141614751159656197541500573662112900522067197705766903163905457153414305962428990888927065885361596539969221862834503583136154576883015896328079031141385585529916168485434056637896411486992277128965078448317287867041536331486524471161175353131540094532267300903536609179498460891715627392891415668859630907619717834956434875771174344643153383689594931720646343216415636239787656179368106631939388912148720150918952961982766601759654764003157956700518546955889893405325906341032654074217507025723518069165683220447897991836127303683449782570703891813124769157567382536060196726018337814420425505227471651805920223068508703352890283155659729238864687338801691714334518632125238288965289050865437518342067835315494043743679225627674079399332341376778722874598464102862995756803872966442807352469290474304395438104268249091099457295357518242062652974341891572010534361440238383924230877552908582165217261514360369264840959602070815726526700699844931336665606993707054039222889922928324626009667162550472562359358832887241611344751694237818509197386747916352961528602210288880800112473786942048846180817376089770371312832290333420447351312892836978239247904911928978618702532624848465271774112853900574055458953983186567169813153882885507820884846539667240247142370885357991387153056744233345213952410992714401866209188012029930811952723994347849540367169961882760640040369168747960926084290161045390237290945023114296873081706487344358004808390154956144024670882508573663246129641742527290001051401330993037106881181340309187338640048429947388880853962855661393569201286143853933252985396229402462096371437866925621671014809638662361998766236302846796781278457220203465272548894893879294396086015383046622831461124434543292557936144781941648317595688245985053875620719656056049712102121383520532023594382133567439761106330907076086268660253466640572993219785784934743774995980843557880544499898294703197249096721926795324920512536245145580752092689698361019084900040004230407628776532223110844773816137514086894396962295064596354214886534266109060680761348687489182633038579830375088231967955974520756530645611697051730312694114887628191026633156981977573182650180380433422071192521275671505117541490669808894181611117883396612780397273944904984610081094718183495810888260546802914210949827635484345534997803969931789473347383211967647787665965552145141103603816607163315590391057838628023102931392129847745336391205544590907335349115940903394842295196906324338468754709155518274627402121206781653560561292286627786019027966174620119592209388893862439286031840345928528947442897895100825597366463258486377954972474692096482638893655582185340140418019890898030317016488871866903685747012891636238969678653248483684570557401532226736850649303313018079907630161784005559864030626972952519585960085058274008631962890546048347748870280011250349895292416399110361712801460086984028510925120686363314859835678418312591548178813132298848244988988186464133219172690772553817351034161203329615417163491747011046666709316450829704402396737087833933691130266236207845301613982468574971971360187323109510458954820362978304385079975792213779585601754085807946764705750845938247475965795974425785232599087730155552548031447833344904564882289689338326360161136337286327433951252543974224687296350119412413013319306746795972250252109596963486546364123230794498447443933693877015914180469478292176179651953905686986601707108389148755347594797575510743247075682676406447674025748521833444138601634463451930886100566889853376141714316250696252276827225500994414921149658047538226216597291780786006517990476266588710263828603727250185864918487625836028779736638204866999995605681246603914555142287090545736334845541043264736793076083558068196229526076748680024490661501816240187776461059143407461118000119566559777664489032911226103653298951362633004622475102619488718637096215281202311125554194946434062671521829257838580214733759052456939335676485328517466416185158285342033197657292874703662783936738729685605397049052851670173300235976907048741137264535934305156971867701795204977497078922042502824395154170822340987057879179657224447529042017911160518086712269643040084342229023336790543763532661742025418227785875677787644776862486627145201901598304326186730602626185615902139261143524560087946425011497122165398508009794351736786138862282871365361725506891113847794736209662650968267807931401710670750439780762581113160635965821976844502494515173864794065814952829786363709425372020639597464322777450771361804510169716569118523225769382998244637589109576527197536236839742580782073932238822611565658286211176164568551253862094532845831721075648815459762097655783235018833397052919488957255634365089908775995093442864377623414260231670851486987976500379413013110225637453394213673535685356920084613539061640245753151487257876101733418866335853970280569223694940497549590352612790180927069868651305916371087513633080990290225887557914814951910008831317222175793712127030110635135432405705221704169708550917099443185686920309119531578981639444301623220874970370918720242280168649397055717510113321368869251214465656324284117138402360906792452844272162994957539326136245699611141268060683824713004078239959599746239265385421140715264741215676009416874497328645453923450455820471118479380204159711519988397009375591238508451565922839251162106166717491150008676905872795278743701840647937866031640464998447151968737701023589837314848950419767871757062064300972200376426104078141573133207556270010374266995345235273060308145485986294810084608307455247376147147722192683337185226885238753041042535946616801506375361983828075962050027376526312326440498119765489292509573134117597966070030517579588542944454258752502700899330401121920599145814352523099799981472225995702717827767003316481366096887575599462094105745884937316522246186058149951164433241171123779890377237926386098040172554054558283475024936630092347755957284858426968313447010891742039275626398848988875814606621348838602912616746377818996176166183419715192826370090685346595703764299977224880350845772218225064687391623605679837791650719979549450113402704275877141565286497292548505133352823306804838433039651934697171058186817710576538846240140072828564996512031971659553024189882097380206064202185655608045440987646487797809760993924704958864135062222954486459935518552558435416967834712672286357689955077808841970209119765045107558687183600021814062641007162408018330853946314411603882902175000993624359398032266520091498880603625719096603968750259363640121368972860476943515125578874870422115846400542735664819500168781332983103381054845575976193982520565669219165586644758982152114422834320640358290016605858189213119434472050301068197455488645071689929066447666188052802789632185484524565830119418321000657069301700321465325241088798302524743261267271211929599344296794630673895430203956545869913925189866657970436573034158817403364563595962584776243810388096495732342691991073642136942052069757376923158389069636291017944777194955089420913197168313202643447725941031219399359558836266837991146824297034791696077935647228417818880178305500831678436399194865728655150458442409475664854218114497413399387399540814431138377226799723649060670540666585395778414695316383167052179839555478347754657613895264399445968966472673850850752371083631398446339563905154433852064913253343782976862875177820691416176997473248457642749948149504007768472007507360642226802939769281036085521233027054607557753411190481366813253740706004161139794706404353124562793549040073394411556875887004272993455133591011960922138307878807785959134087513172846936509980276504446089172559935368020366954075652552746926294887050012932262556945423373828352615725602936161305691227356170312514309328069182903057069621300859848715042582883178122808273010242722008112677438122770910074206611008410004734680515643053209091713916560825450244786505188384966886438181088383610334743643929766130666140207164175295636194646754923358371297065515134629889773985380767707436123501120121562057756052439874576048764513505365983931779061272674223161167407715339817365265641577408425086093024791895316774082124090371373746351918807501402141997387893235163066383881956872424472003778132868240187505112577521973043117540076824155499837421717826548955308039318560269038350726429471650430699958324963831161088748072140660034635756562482684731159558639047153508774116202970012439487281923668070647648856673699481418405270799338212457171068570002944219447239245545821655918178331893175743766866576198486379437684923619867560129853476560273962855042861677754970686606437825365996277364331088912680978013954124861361749079128834205064762770677982091400137833815849807976038358110760782756935164871926408347548908243196681226171906750888012542384041861412545996164166518498410041230113716359985875334110673239003406310895537057681144609673969196564053043869202101794706157369394781145876979080486362929040314503243457402339540790155690137300433102637803588132079539530324518606541378488910159493695892838515529770489315754996918061402857793587776404022506187231017361412118309928642842284444931903214847532802606013362451147641693033644793173776885207675252328561331210470967925862049167307042899179596831585994460483029028773541895310867474725638832747291807478107877580980207831202416153209427740903507878267179902751706848921123925645056026918414939379207201720936102459464510438838045488919837810404691793563861254760122618421193587246917983151823223153533200269947363771828255717716163758143779549326628454994950154060180120924846871084798437954287972269037679621028683060763779078169246043069858959526022027920126474824477071033992350190416369725431640781543029229988423277180047330890392279378077573173483930228744553295677734851190488865803303123081195155430215087121228491563965024098531882913901367003528026639010811983697534359915707060141670950809678869955768484611186545123811504693832933502469280196534312295840525973450220893207941007595587144396652689922811885187228369769074920811390199067159715490149973522074249754947493843182118974066071821890725726419269219491371336654676552327859046777350846682460724005056729349252952010979174082865464437695006191313464769892692124682622956812925411803737832971341933248082860685589077659797658525241833361365078318380457803588410333956747638831658411455634241500588944114015962381051079796509580305648814843499992375702945132468945530471965187964805979458891455667609723605100996344074997101225036677067377046264094540682336850848701278625950834864909136404806400946442413861247563146153335360835832851167389479372802479878096482907030654241671275048359069969737204484985517514046794880865353971843945588781959064803037350225634769180439367130869877916251462631707733436990648712109128185486964364314549402116715624412027992829115317411072804156336613366966192546795866283978134409273609537226809917048644847528316582460714497094709609667861092244292189729507342065476994503453938019241018119074815838340106153603592184441555358095447876003608824249549675281627883242581865387098928740771144848511610414793362528022858887338629842722031075365243616205500470743253779239587375507613623954519254793025292508261330345138969121434697295087046245006853285757206283934746543029018883877935004433429512603731814211979728139473440906884998992540356753748161249018875840643069776313921012738312434845888144436662121572155113091041876339487421542093437321822014889162632554992766363310522791294542839461985944575412278682173200009998209607293272352294126843952226258530342024706600109958945107922061290302510370678908475682314344229328254502499521107214714511424783993935005654909129751564339097565079210822628427137306623329509696557707573640496519990518506005523118251345236824107947741649342826024819036518093298373639015632921321470755621751649044917951348678215964727452173778808158408308585678955599408088635704542387601372749821520779554484003189534594302934543382622851155722142495415352914824867350918140106234550457298870161213072784589858279986382770046642176775749343631755787471526364610105218729208041858891192823431395568329155593801870128758112868931912079047067799434452929728699477918844682376182639561654599555181713886631906972674997449522949511375759507363878697681283224977458814841668334993176729365889322406316059664094979980232372870137056413231401990982188106571024134575635672815923753552817915894525757500051581813178767956047361436627390454552446578956231239043966982831003835610285421667246457445439080025311591974404798414823865482594319508238452658560442926997119784555835139738975089859929874829652448732087859213734352913700362739969257196493188908732785436596323582072131304424723493996587336416982529270515231612250122191677927550035305191922190000887346059523986895027952975467065646847355359187072551872866690332075905873830137809374007455054607666022917131716869111918312998827118106036818454431153066106366950286659222320415326014345289501234097889997832783643542290488185581736941666843939524790212145159262850300614580212313342670421278441125109292922316517568780340632265436256019778753990974149559817783034256339424648466549613523145454734611189313624041373911268938562568858096678085793994165016374855473887979809616969558040313806873285230075827490580382382268164917688892408747154480189643374152777258204890059463340191619262126126314933400928540832604099557338842065248072904794284905418788499956718209567078180787843044271198821345710039956152546741252658023352373213577299800334484507414115728845584248556639678883863527757201657058463796340705450682621383876283199191139469664715739694232639248718316937157242749437787911839682169874671734253111360025215817964031536745806268868895316681255425501354509501495591862612921185421747348594784512459617524853637243007007579510769453499478943385418880644100936901259428514750795609717967857851245175162864202304909719290667602436890600265576054310624863567785751690938728803632104872076555146368105818187176729056437014505805817736220311271957228902660461093365257413640687493632885110268409192881570803633053205630127243013356042420876003122360923909873536019681379350034422048493133161788969427768527038194241636951536021067753275919007152415220260501784427996608320811124724931358476493558795647784934801125596558280916759248490486506170314126637812444743835157012494058804575302376735062359780067075561869666389426283765303702738113594485106466643167631279136529395464425087627331814535719700404364963783267463958366839301237635935398033716965252524661317130583929515871962777289749582980871807728303910239754688213559456761649887148362712040750886409058320893805529145130602153005333424061405998084739452992283514266132342236459848444968035573549107177374891537349076160757153654276068172730112271696826983446777554720425023710802378861104463849390859904726417179672206937823513436305225784430124654954030369063345527441303927795570761614198889044658370184541024636903069720408584192858874498350961109443317355408162632476775055987371472987727406139077087028622875522474623402895634085567039483050792727860320262322155950205245378218355850209238097835658280086047394081957375859202466285197165451412843632209880863925927811389440653323676638904105458964409566359180698474649739784360313704130811572247821492078948169881488064986479991087975078286444917430758710800222321741868257584301746461367100246645922058182173956640528472286618774446869087491352924467031919690376250902994904124819849612432812400678253124006977106208095386312337200412976036989480494817107916355540083348639972936624396427977350687505474307460128444731205891931230200193456580650635683721291576820184286656953256768875122620745167918802403191731412900252409971601346340458047876503272957235222641997828152449966442868283302932035121933528679692918822888166315525387746506179309709509688724042709533487523395577579569459451858241217521896992312303277581602739871625952000951960999465851267075288436908826807999206727294922128226422703462680635701240810634185422508089416650842937774878034218761050254865424244505585199360796904065695664336214844675704827859452292792590451673445095484479245989508917927440862503565565434881816461205680343707399629387722656278700227939231053162917606531010939763483359346974535421489331485455971438939688539562628723931163406357578735000553819111525525771732724898363482033677782028533548110253183838091213417334722993466942118728582355260277843331560528741903588147471854291086752493508821174008623212834128649522989361625001659661926453005009397907092096006940871492651512177771442622402253029225688037766961626346191634203383454251570369855441162242622131913550629963649478312824128917333370111537249957665341871992244653183493842698801449017844482192291977747279354688251291006264234957292513629071891797506321499548120012197473503421449607421177906556596698311617320504245999776914095272312451202293398712355535698126755711989876919700997668058137575106491209497755145671535107251117308657055478764312861707622269912211751671819068792450859010610916292818369192832300092504727849697548443688464783521740341086225631371583228330629269424146986975897066580713867800241373648395023170091288457652547208940422111930102321606020617642577018925901571692889916990350862317666472002367112527987654686198788050810106661356038311256658753613878145564115510421710196358454880259140824448633629484233073440675618433234267279699355552082241027170161103517980095770635914699670259436734854032321126324765721920921605387509997653107089571596778676167298892863067627397349240170800160925617478660074884195901118036269015968183607435991303279536567408018427572960650215835523879402795226764446314459644683904839418026088100043805277991335687681475517647275512345676893936146878870327957999680261976765835412484581467544377089896113178688779292102645083672115476805868303228451982432434487050462666907183547709142194861202535095720844124536658580470370177655864884126833618705044842064939016967688231472040581192087003019979359991517004201103975209636067914256750713760158056881015714050983665999853304104392208899505367898164477339287410723548231211538607523253460392419353714645425872595701422359700389883484664145718580334761697349812793177765269665166873660941060030475231637693257628661179810833670274395587826407591027313691849866143633448434080870607028507299727687092496158562767995523366979727034946001942415371419754111695305951373318862588162026111602769229577661294534976962467276096518402064207659388013261984030628581588976903010436315107094441794814750663113236854265710327394165259549701052762132588407457022185179351252857929846884041819590048067848273874958869019702972697076328843351614519625502029983855528726119679646316087267848111765463897647557390605206985015957041153489232997595877885524602653157218661608193467427412660987990408809768136237517185255142422479637083299708704511781241529675465319482619277158026921825888078079642707123873739782751748121724493527445544058947622689674172034505698047947431438834083410327429377183326370473534131759073631758404977680568623020244862547893110255599522534395009271005029976358485834198268564342947808484989212845424026073995096108613821892047872306435693632606694625179442174823746698499806640253327823334395997447754483403915867221357119980511928296428069189687591121110645157353358224075455055509301958539777240829806343609755103233998452449571582718464141889992710752337941780608231291983129466411711038009499895703066711841896162666449504459684944579419034734806240663963981241303851446165047504808087635984974444287647398316400737158935249306756596865674455019752359040496907753406219477633152989173506269564298386957549336104452407965097832831654038489332951006185674387638525296970361763031448465489483299280811995935620039114406428500793605261237179597538806191929732358967677551474835447396609182059545262037636089069403242962488440398368837582074573644870260986745740190422870390338097888611147564580832689429063709943103678188059341575294089762799807467686590756730760165179058741732028448125870141621392408653909012951090660043281263763820502993611352309158495303493433848947503733770417467875969593580629371657717703477522853120745933949207250482818869318664361387428287560149965157116991675039693928912683177073803934934534215725403434273068311845809925511552932586395870651035240287830468544077123077482211512922730230513138363998344136001070548724284708535299057494918081716420575740967965852053426294221696720346722893154981738523958801201214490685840865173793827190780197320435296706976449194392591554569964298554279049427306491732050095016181756862642671100654476626189366616416901976271584532425969412651708011576942263563734244034440217801886869298716276611348351756199592280821158343604067933563034401055691342542879070360802895747755322303567022658225220436655931619593771623537011977910264039221548529614262563142007288192428575305573970418658123504083667620384116447219816113941096755853575717115569425590643541800251426500123467797386293382601984063444267324193773785887942963275825785152069309322613536071650015542382355297205607064085733985211410655663889385698922600848245456331342641315686345282322611229433253769820180641240667662366994568435809561555360458156354978541913202779739511979829389836345116142686711250036123686814188631965636386461944327857634286561603084257416019733219745922472656642632242561421613533636990985203080294196461817467671692898613731407273595904909029121292846221642407596350853608162226543304127320366732320171935700619472198625197812025790014493615762255698804789981554688878137862352191958029284774685081071992469704512175071976217902633645299963120714070528577057863250796381045464418175388411337663803398644890003602224435079444286304849359257409457026175685645311975167024626929140216668745727761707561238644943575507720761469543749214819250074790131888532575714027663689123543197835540653813624992131555861015604128033427657365655248380606988360128588114952540045366332600086550483827256639703123956881394709793016933851291560602797036153123223721797471508737813855665986131570687167331479056740130035173223302897512272907801726001141763904666358556824411721448471399485936234063979923175244852466593326311232277176645830089699109749116662953046490969360384941742113838893333611870504001906341495863380451654576803512353186850599115522840571423904530100240627949054126524089337688957137063150943670090902188164188885933259487536862647749132637254538745563309931329434000846410774846660002129638423915145428642224317210838454430511112477231139874719039587443262259449849264462632011385010674348968927409440395227932372310747708321540925824797113557558441896927405513921844646001790050835814434118641149610858173952228721306430095837753975257407518384589197629853323512511787363568144494526410562760725714463056318470864377030017303363210146991564019232047090154888629452992930811823907848465177326507500494305253217575272377140120913558261620112843710115682356365099227256000214577275975041666926198538166185721862842001143860198189898631761812124577551798590332938464075578269931103806024662352994211319341687404226938423531634302882499389697917974941053515408836638459011214838441013380462743916745224221750237808797537707458677181988404420141363667684808995446718527280555213792249656516586364419720983019692514872661228799696682235294039910230108113551992982372586457137974043935065552928402605979499894430545578716951220282561512467648854772420761071665639953354360462070413610870433383625151609883064764885276908555938604956642960495842508391176531553282220423703384763701462977075857862762289047977764697969650002824303758134310870402229221426754032241449727614262336333346962315530280076150898592657594414821703760224963074748053538064501282128646233064440286596637660798627674578864328935153474698722444164307224570749269175380427328074933210283513635707301444185470547037828904512096363324056994265198284091461466360205129374497940968633486372834533982288261945924918119555361078418250406133741215429070319371940155765707784121454167104019567298021560000949157154853982727912473503238736224550674871809080176605156534507269130531450671015725621498319413190771329648074562045731443625660505709542396095803394211445743892362749081120175626822559455010967096936323935031479895983779161950955508545834547368759541254176643217707636530650106733386151196053197534816067021171846269825522099944527000114379266797452268109237619105522838198361662013628791925603776115523965969473873939269631627618654969584611333277150491992544751168278136513907586252289651872123204718089814306699119384458479206510086557451428158340943165999968640457321806518543594933184753953989914258180803397142233650473843735932958519253213273545911847398430866486853511571516182618785396942129731806697402160225306487652631028388913404656047998641495224047200949232637925188026042014487273276919057244315555971927875667402121252196936347716770277381549545400745833043938366185446636714845229309871619688166484051969452984863152405384116635066285548591784895125684986695061971711372650681579793949985039743534533526581830983436171608323136474841944822059313007694416392032432227116838857402308809247941376388859487516227916643644024570617986573055697771908171679294361947453736579754180562142123567148516093466626899075799094570543732847140569810115256798021226217006043454872578089233704173396140135473737590667749732496601336272223587898768421507055526484619422240481605902881102988835672134778553012602168056000404064902329293785135169246997012043176069813333450329302967153183843391246216189044502773051212376320659242200562677350161868709749625931204689121005256492973894293461487771035597638266568138854909232494982005608021123097016532921821598204089818567518277880792581855080109981158203047655472929912440004623752741320623987354615719132932568829917091909120533304663101657830958766805185504977324929115360222850350124891310849630189759855461233398384999103176876569576149000760652555276217685838715108155252272707717551301528107463556572127581136008968370492246938571099801868037008566245730529798303404505770942369721714737950590139155932219123581489615149524379093336635148881720596861068652088088304794056131348454512441261488579195282769897615767809641543202130068708875126014214709262571734032820627317862563603133400443751212342733224008190811527377138636479250939773590333721036264539370940078852749309565453388703574294339206645675079608655005673440101066754393143116326545499710265639220585123813991564466535470726245180048655674649710617004775125481657254101435615297444988842671706608395067364327764468856173592091999339389982070755310913059123829228834101225092800108984050491834024036998253129300428711549546129349408115993482614455384362965581829899679809298664702026500628649413380822829966245557711994968984090764587219641120534272046687242237719425712346032668495376954735205977505603588765128780708231683191763211052358796902762632939782308417038390368111757288947454123791234847415047614576821775268312904193836201600333699180418161992116471072431403867598087488234397420264603337405914888035830421557758543310707791812992544259932363522864223058443293096546775293945101071236275580001568459537033598754094487770498806693810300371484417935235933213189068428456527096800517315932014291574510881154334596814836536935482027091920445562822479629595187881531238117689657473502225999049468848228800723835631079844511013546732057061337933345102914804861957208179116320715352055677482562868157624329432385315318847654014189890575498291181682155550577343260428346843496444266561413236737432430381964923327728255660718229273698364620628122093851399789037351217455533314425563024523794533814258013706517677920479224844084201540502034345875805364541445992127566298623886132211271583151526674126267732846610985592080498681714471220369160229141103970780606157871645118197376223855331285688005623962795054169510974430258133065630086541503823649493594093199844573790165790291019173537429613394451035293143392960722943707594397822675489996901720096318989918917419684554845216130752432848346576020711804185232387741505780552253796135455599295688874400539032125493451563976177234050489226502646410205319010005152709693381422180117263884366567845618397497005349807068857008042244656382489903576788630810971829435024868432148455116706993678385275216786017339302763798157556391903252591070191320553544192719990450703987278096989719359668618422198884017465245333514221806120932959010671815338156468160595420799472925529461207220624028038979818626825212222336352623442828033257900608555504008098802750851319928270862209550812351074979413167361651070218347705303460250838720210835209462339406891983141873732491152313964388680437963289958503367148631522635552763292587435368806749862745994550675431412140177156821827068935570432247810994624898931685263668053833777429762946813197246553425366787679069067176437525178078038618021020905841111987257984053856395923601867940376342786029202589571955026028658545387282653046678787232876274141114333652644731320502162866365013938632134804237579118342920335730562622432379082400038776243586784303067094065693153272222358668620948969067913898110046320761506416670945641074362724182424685592820738494840647161920952335155228039552033508747657463793136129972510151399696605848235656890968257341276339641593023996904554184310680726015469524628563192373083903274995884418521880682427435087798948119659552176531175910723918301870852489334566877610291778145115518970573605363132909198305594541441580266359388243297902384142164667415529378326897184784928095742418804191660671511972022923227287498990761669394863199849031834195981086230846803212763483347491381883620074652820091646209261323389239920383550769997221872925898130494283023063332413027553812234697312196249581285993996795233724205335735808894495351568724468336145870469334356975396022098553979329202125760941737440316474195781623725516142138541688020627902954764340027344730648924311748459785755202716318866749880484302235821473784752440674268775818077096359402311295756941010464662613871397602546230631389004156246065873594410419398165369076456795912259557085019142053120039278399287285087255195152292925037404535392433969250777891453171135030606610884924997921907280520311233737287168861123580548610121819352785702881338438198291263573015213254594744791681843941073298952155582640902781473526104869820887759894108138569673547643311444529624989809778244274088048431885149987281940358036932408234776013476438382145263624431755980623421919260797566393909816084213903349382052448046467420863353034989362763909280066487306446649858213980949655944092475570939381086416564001623012896831061164794551877347401397705169675036252842190332358304049895054293611975206237922344757987388708676521297292833384184958795090753962983672227349335115546955268584425971262228084352158617949841764456413164618659413478249301707152290145771879428499868336152375376252645508799224013162930150203458912886993922084844734834647457851326065467552611429098059477523233528231272668308732968559467971553071231951560916561424660913557775158743295788540363511676512046714000000956248958887015168410446197256725534116127497943906396946932073935857365556040957143945828600357264535480970052439161598143193674014837109958738345597098219856951024642777711036709346464914095761675715673425632188169000711141040845698197224236665262122112893670455830526038448218521294561740224503248213566565299485175279899590118916406820732540416817656355783784869006430957503369065098550169175196897066158183595627643966880427827251087359245047127825726651848001717135625834471213582917535696272908190576018089018916305731023538240406584203211632872288824488833117022653278716374427700816989029609967693573750678614383696508798503549993888200797033848642315678293406819741534813533091964327892516986001387647485123209439884365604422606262765824446676993333151577111511087513070132892820288461733879495905258851046033273345371103592167429060510104916606450224262482795758791387932248705312332965457482862540985424031059550879035763025820090593491961470016060828610053957742004993888712520299868233320349572152468881156607712765513239730260063453038756247207247156757696074260574292753193722153049946293122431223957743023016527473075871986222779638317739239941425201652600475215798219890496413562288282330932453487212410523848344281139481108421985140335488334303942101379425287701487292513175770286439183054212746199097405575796042881760965494249144218088206961866258699870562196886336692586093378752973338032957567639778275997770390827750933311295878305362861699280208210469007531641023277397676579213652626160635986116599609888888771096891219559254699659749260404087069614071331251541434903968649821620492711757667001589735335248435527436857166320559202096013767119457102920274516685195460763033036564583509700415000489921466484278270257360106596932734278158074949885506479839689792394743190627690172556499339907560223265201074620384173813447043981568310057352367453228046572620391444586236638456732032838099037318036283238305336650244899356588274972969579085486906330057079584876591063049440246651348781791733960370853321627565536874341580933458518142327969336918878645528289151904458539276937136542173987918429512302910631504443772149847433563118978550535927300628961557452221592214412621702323272995906909350194710413454838452546910573308678586230422556884040881220258528286103094894392617758039785816382727164756191780727705382439006106714663421476247894819664025778637958251845357094645926428859174989796243831024099231236095180490507166891472260656038180531380435868198806453354893741238303666279564147436493087209399675634944865237756011924210942115267963253236412951944233497397109872706583098890006417932170935300673725912409046714867161662107848910618295619818958771219784195657364455232179671006464369122768904861914735342904631657664981152773502189666967331924049793759077138622048052269367098954755689004327234966217627121628499711179108833129649269477292709935810878683667447795788478055343115278534899821793627597820031371962596929639677097521667672132780377907442921545009566877161784517420669169363582218244160718487249033962903832749781379448089430259771493758281359825648919897083361696296078271532180998663797231811749197587395433164019782221143885518011327478644734670394899238644779000543000163729537274925029773501024077004749015703853577977867849676044930800403777938100756435552749340964071190168136947807043730686605392142067940286411036660823778231479594507472132328387401661118331313846178200352577548840911499062046688927364197139094542588884468880083017402334998784572237528522500097793359471102693972067528696958567940270276897688878318794634103455811039612689485541889866281003867797474015073400212197353641159974949512074116337518573767725270626289525389224618243314120181949177461842181537241219512237254697003462291223147795071841994464839769339865588556589789294060672177622681364180947261820228903110873972147885291864660509704470044219315148931058443327055478833180834138367921476043348964440868706164939560993890845531933977108834371496409358837487805425525323969367173093869929958115069261173707576164284106105336416289298055103882979478419764953114732968767627379631825852548246318630482523705211932188954840563074436040545445401982151823131514799521840198782386477777657829556907622795926336233810873707534990156595608561988574896698319288574610989758567241947495217774684097392506336384284216604634907678625272956510266321418086887598466765791850649076056398067291700142362240743476102481053537620804883406694704517176203605076728439970463103643026781283204166355176239446498110853915763066574492459525425113452034712350477188966182337244172133500073385903394598841072923786425920268971203417662788616473413018696730660949200424182440932576044825688511922879819323031204550195395007350304265139518870658691891536158313474074621226088713378281488592719357292829184377051503968593161466209499240047008574296146156086461942586513146002381128700145492267905444659365187525426440385725001319739928585235508827909005125594009475172147320197509128628550092424382921458195991152279532338209935447121233835447029513361598393955140295456332968188439163408422897503040792210103357319942409252828267461454640060118618753875649360797117562320587631918625287108958799221690456223236230713815095959581407160894804505989296146326184025665839082538274745685635664445412588608676317988396976544591529409159670526452325080784119966281329876023315153564479227071629983523856110915867280762620481936247088905527144755983863812341342063978055088434540225577869682027849447263748787379336015008778347198144110102548564057184626521753533393675182571700388949448470275719803403046035054414780900926559386105143338883436563265800305028652883259232701848720668308761883169957113299169058154560351908441619333481544016436911174124591411037424840169966430845014772074859580451274757689374483440163355354960103038119119968982243893027640497511995994921128993255282974113032893139679488911263428186429540305901662131010796545026885657256227866666526818873094928763142912744066517758790996904764359848392177781183173796477999127975432183664147985151760475581723547038658724972529476422836151981128258537800680021740403832070937286514712452798637190006560982189442053529423870858525107557718730489163291129919769507921361377575597988031697816089375382183502705442050840366096415784094297988528009935625040292045313414977636706394950794575622951151310896423357449852964318514793210025785836981222901939463707038287905002612008060323958062689627570229981819495796988186850262191781018415394388779737611237480365497227109863986671868596899217143671624433507022194344696520293314241887832911924662729745417920232950958915258670729953254054866689544204457732344761022177522291980322295295914149300214246889697241891199354853417274651973631069690194947258441271557288190697432295897490960481271471937454984007454952478246126167675203604226287070163836661801673103866365407031188751037433623226848747511002970527824334354382149499669207507847159835677583843539765337283674482409603904809593904592629233888463606111226767739003161024333976613142182096869546026960773316515339864688612924107907074985015554318458529873011613746633898095864345291746577635129633621977924991353173371541158213343100642940656712764091528394362353374872988989423665938478736032545050943978224104132084314392704268784923064786123472721289421282960735105590774987511650713440151350572406998919722359997565228119686408186552116135886858473490123289957120494833453699065694379488436124521816164255544767589076869359114661614846519476443696560977267139089006033631889973847324312738373008269839516094550493700138039419017617024312600444334850307477955399346028209712466938030413840741873374243134188780799333681680104843100587529922346321629612121825605273000930528215044637281766500551217074252062140412836480017867528848209969472867295613131773083776507395636135778357370389864438144345470264869428487887529512293192249979031772057699618498593154473228716857698755177196727395839895430185181112757058630391277364387357822420265396997553009924443127256471732519290659653483608346385861717664507431748003895944584769480652163200467273462387512086375438908034854287076571147730332404671523217070283648148003473117275526371939879800633262463617270954348737067809616550207443069466557306969598021344534119150627798275296106669563516687265579102186904443984953530033156236905578838835400694063361292908100573502321426748872472196444501827663284489989371411774628205507437710673128744611581697158689380837308962254676345189712245722512255016546903216772172989906978581379415037232525722103877049520979550222769108744272907639045497420810955410245302077018998329686905599367350629524347815095195897231006825108940482019491234836942061305918995157902114804338072985794323484996597732688681614585534440032012617489220586544119772422255391558618341116685937909417186976966454449719146392464305355317284822730550440603115863952454417367077297748587391404884853096343122277816823868838132377401986680401701808244377555210257927449357461800504281318849199836177209667882307469589479120522154992329399014725330715748860970979074693786999354040193365386343633652000484608125975668219717088286232765516367183229164774121044168007109601973250919560433187581274309256571763106378740978255562702564995675319567823196241181581868115687814418246875083254633670039613959568810877381014432391275777236920058508899896258812162180325308251135134975873441981823465308933892698116274261055429494220980927369874566260466361632979258094694653306778572813540129935061459854640588681561162662544026034949692832118465455348893049504347728773506157538316576418374773756341915017208213337323375729442859659061995749010396936021449351795135246819088315373080874719752537450046192973092443571228933642582418246231444965516633853010564605556901735868118571461233201640798138289367794811982646196906721155937383675012462494826472115462074996978912232362746905338348509330816238369839582808233772778015673157804134009406688612899128936882486844486529740525928788432398993348931815062612613932622966845282824125691818707058268875543243327695906134833638712551714898108738470754679214428763568301391066980362007312002362984792201285781952922803364125963841866081940909392232312178108286537845795412286170837937662544654987233432939260578856044104336891906196397630417717521164328452227083413837311862534511623586274808965999914950755525996256445795211909728144477901889437698372148592278622420569920697324337321989682640219347951915944180086792772963277623577982391491059572249170139321212240550590752005931721773566400871004437658654020026099400023256985503129422941101089855715671907805448136742487146139874776334051521590374218207106123900526143667014389390513110360389634046954194999089512487716415844861326643591113516075313694701077415447638373337579006323938466011054191175628511188993502343668861283850363157169864187260160633429586150256136395356407270388507227944661733053944402467131463520739066362479065305278926546201663167458470620723906332856568502958732012980582566876143909390951758234230914597444490620034445498769978155844620331825648557204962095992764892879329702986294573560019117506617534167191186293024504079356192899166970591607059695880853526611489028888199982348025361883153117636007226103003815160137032412872713837146546275362516969321851208809266001876025208608452887123286125173071129120308941602266782798299561038781744250096485820532377910041819192770831405047010671042910174578410616550261861703485975512794598350653408353871153162039560108985387183327703097920185553495245424104312395915680213991701787888041914686996267301243386085860917281510115742584660534558564632777349439747236015438314942716818306952280311332112906505404914039397626010565830299359363112479440525231163433742366006404886040452181732347298670636933628898163837765486618008004914313948128896943455424811376832880374207361939835020191742331187719706947016003322156841917256118174166480685160993959953172885109177737822392123436318901729291785370265896595732124184166757063680504307922920005572279060363067640078847355838391854064331388761235777178506706229588921359391669942005418444637844859215365617314758652588275969096407636042274648867003735793628591133699108200012907821890991743203454107911609601046957669001084473065975667703988268644839726989041059827396974885169376080237211932176372441433916630323838929931022681825961549487959230968182035396250655445435312926287060684838091596584705655545292033300583237335195847884615136285450821894796535709484455314625112156875330304560535947468710076527192140533816099857158862777668532825334839064082057745907526448601117932797756160596047822283587032259485236046904494167158169890089702676564889576678110438519075295542614793454831446901228105476700655405350369439600068090511319500819090691497441634962940583492529357418864060736032951620832228958545202630543063445045775140151521840980733171932200178033873190778368808822858130599081794177311292447504342373303848143606001322533817870594489850981699782446743711485447213248254392236584944042111964448716697281750070207057225844813536979414844816703479937273347376475107776800864844134333978581770066959247387584808484926579430359187852744334932872205517104185201229950189746546424310577589593045444831023922609020908088226437304909443280085234829421903423588071880595353205949150548511460983050006554637679250271072828334810270765452904491985421177025865127649829102319278235693648335868321319876627942424360004075106583033877611281852018009933947744038801163032231397059274509597662590458479579188135001520761196927236437637739051659331563885765501078029184181498649342838417629804754166655990132177907299119846062185070088918967117157803306260538516829560962381700026634527386866113189384105605987227073947403857520198795954841493634433195329862658827545466936595259249797066441619120657771841343648111923288993673890335685692100037634780325380237065528730727507592623963185056569801758570436594800269566208083702601114965278139697551486077836847444331111654584578182576770323645007031743252883981510333258558307626593492143190298776358475012283335588402035067415536922412579088010084292160162141889054420366457136725369185463813425925163103941663474050959809344783425236536419544787955959938981484769740069908583938529328364765079685792025752775836341282401882186186073996834407461964459206741153454403809318332668428797253431257052766937510215066825277770729958456479972106721771094744970262388928187216920050909294720443059952464187018987192316622313105232289951427927146795711490910790171997657346411990920588758803586121407858297903749266076342993417972629532872815327315560180972935577264728865030796050271818493306530610160734544534341992048853894081360681342908990067735049739765116895339108338341337678590318326035651147026926608074586494068097632736433022021053803082148745521086088905713254961381191863029655719861035645158784939405822504942479641483091868426175445888297415012891115782229206254090430921005946673383491941711217796558084649908641083897026817180172254846498967886347894058621287268901028187157801043968938143963313153311931031046074495932538480314431695742105406327563621694310538092645025718737749484811633919401613797207925436007720840396848683183998077607262015386976100911794979991317878049326583488926546639284008818467510938752855970423711867957972125630805047594749499097788293708210869851904321815120569549221255478535318272186654037990004984959891382262172379866257280185856298898683463723347303675178473801677922557312575712042125028602445147384212601220695129508022916167327049084689975316398341888455491570865570853021052023126344387207752295794268691901049726971559580617479669889558690925717521791543613344415738090734041344098466142178333850223525278394360221599357305900033120558285161954351075280489806801372668854375014762528638367181456262980898775514987740915156998918476743596422802260118509807033275825860246049459915639175488664511020338455915034429332953801457288368255027115471022647500106900847982669253839227821381401502233094838496256315214446135115555125484428816521804351110413798195190650453417087395330988914858734429462140208166455538261709996480035048657568314973389605400478359412596680991505191219625408640816119181375269591272556845090285822303091314876346043870632869705519351931664565526046046703145702001112885837559701281365128710147368857395922419632531585812064010406997109763295445724719867920819425371567670397001318348450964091956756100192216297998041489254200730778451448230802491612756844852292286847447064096734074795066753129834124655186961870593192191719055381844015336361028996392764683641647183394393654721129422487099737878094858947788803829163196193018567108498192859694968381072568830125893906382794116150122771807978517311678294973468444174043985685749255828371891279242696334062664445909921445814790308063900184007007828401128308959864480713536977111449640123702009104837629127693122715660097677755987087090872135029325245029892062790011659215040697349333178506172636398863282976074958186069510148612886071572983275999204420687554175981792638054522810046871400584708155696474110404306395679954131069989920471300349286748390049692271038356860393477787405055084900737422218438627122859779603398870984269262482913037392494797676918732211856967958443486301110921985144139648461004101167312880589462231251068226640363884165033129500430690745470914160416822566905406734466008475248238014306645787851427453742640320426093728234055265219370517945223530379947693873983844648850359151441082284086197916723953521852708947707295240904717424160854011496187860219248032039562657463682839506213888605522626140187857368009289553046015929365327938039184656261966006224612584108220923722952693285108104403402865684626421874998416525985692647617346148602690907066119131975828956324151745765613810350575938348403140631401121745388701358737197594790205168551118224456566507259687785667344835690939842200549841930096269128819421974847633805273123448608902302776593330806363464722779262209125151908659029849572236140364999848314222981844008325515779571275986217373468451328538529949035177477071622262784091271121338054235177901914977515242354220377406567184323834926097434203709753445380274089391682250382456739719704783954755422214066888921755833450389629775737459294832240637471169620451972237232271174171879329179125082262750653870534096062427448648174051189460849920405816514225455883548371533488375664976214435470542827261468796663642287117378445320263001008406431984595501943919052915453538139283220029619704515904803458593492881145022133417865253424571480598885645227168400028364338086235559671993407536422410423137118325591231585201398882678433135991777111806425709483716223890183882797027978097685390562637148008334694678445652605921737584326889754389137464674470145891347065231627910115288115969319340019312121592949540725759527695107413023834019693542763611135296692289058478266545611839866237728774483583431388346792847708127787123536878233430959940360684607570677698176927920897594020716377166647036140214508914427260674171748272505918025289509987686108134167602314960649982646128253017792394462240555364764251978211917876143683591612972605391965663400982565152128846336393944232224302160819779215056051479342568024137564597839298169741002893462048178627223250281691408964428203230195121446382651033238651490147912130880670291923925954095340539242776441598610507846657771370744168848079246050774827359018419301306578861750989548917846534884859051061233624287407795030868195397846722158175594379563112350923788198049701547239350717197903055211321550231088184294122270908595464412228462396836627977107772241315940722152922091137620275851569482682527585163818256067728533620123462980665209089474037750366519226616279436301059575033800795088887591601364478676557447012327825733841825765729745609359249463257876968291823250839764798464022745855138585433570028831077535500687121343569032667605459317132458904857604040707687473466016313663050741220461851772554699259220674728635536492100172959692638830923251164256929270620925489207286230759772532060398932086415887953703816954374873362900979127570182069138928345436782091527091982772539170240479648128061955003128879151746005693733457531556626127303254470164314903432797202444829582997443661414340949028420387713671482690653611042215615243322393334990807392292091369694393056052588635287289418782258467730033806393107467632563306844432061593212289887414258996438817151641664283045461913187146709500279209057371220735821441694994167263749621520291791811221706828996077362960995465671442218978181128682587936055714106388012337316289673001256213328256636930260064712157257992294846852657036774786192973858597441183512927610516140053206432147387462161830139772756556169218132080320571691152943127501059470313493259286989008141215713509923964296258342516143024118022810148027245757412093957612208001594473118066522180248599148419210072746055207765900624312836581173790073865273673871307859313795040099098958233443062025350275438227799444620419719633900466332835051872429814414782708258196743078854591997711727866755720340735979335822334875557842697264190804678511422784660788860203000704524889253714406957581536282248943854984970164554618332953116591047869206862309845448458206560924424662090970870535790730714756903259392125923829527856472997930740154471382648392065529388873794399919280733066470821354918519871431787075846632129621784772233003560417251238897210047974934930977324272618950018372179434371202348697011288716593059617929829610301656780631941983131741777481856580893562358411348312886976609986439285866737408298273264240300957608338600114897421503495122200199807984674995580388442697715136690632387991602087912988931901523913547922039746456635118219129402771873213128742492772803974329041993616750836543424430254367221660032191164998814363157188495131787006189368131007094419608541273278733000075246232927723543882606241025162534637606922645096515968716609802890364472790969453049046773473660900985091244730900269544140268288040123084640204918439223926948517201904853527268695464587327416664251459878001228751446190759783895905311514964894773250263014633460535695880597186909091980994360301280508429850825094561679032650802293086022593325725325676577775856613704600971475600058450453284498348647387127488078386838158174369674268751471870862650039288872615096233425191422437776558118151853912338446864211828823262402929912110043109380610573902232308941265449512014106634347221598588155067089135108498936852923025804841779730883018857609995887697233543371196316351425847842260773536707520114605910195268674578003707121989549029228962964413705124520156442881283037522550330559080810328058531167709688142509041108337786897423807203210997269509638264622522034264193819505550717652665373202657090173325237995079324416387882645368106500224737089693941788473086507474858192903995202436019130949939908383852402699292495234699182777756165221144368299404111988999655557780324816348221131118600120286196671935060491932104125021709928765895144689773443023526564340292502760320944339827613811281339379331154027558235179752219924198776434792960462947758757502191830002025182632228660084434763687577475891203192337400890337636210622195327534838318256408022207748911564591397139419981041866006504432476732291998803346322041199862811135960563938763360558704972784252087842434188498075898482452316719029787682894269067185538856992941440523355630061281708520134387360479765233849750137595058630840134792214143442093054004432104635876877109066556512497676035978504283212218608693562107506134266963945931256079861422637037699630934940388338176790713614397102394775333427577013134907317251844176086765375402907434662147240993416330189454654363605486254388048712031130874086992145473470542449676526785392186091771946763390708224626284484932589195005276827448356847576785981037858322458040545610859266621790025148324219877136048186496046893582346389730074009322355284414622280583946792946246630344722962577243775903999603659880561220487038998053780241816264300809946816410962570126853626707973169270417450338138940563845711982977526257958585281677119240700031683787935549758881130665089129069422187705424529414906945929578107328073699708122059955004943158994199600282189179112175847569061814143095712795062770100138506752788142489622464465391408931796629545717602239191879612702662176666299343215227624046461388956977908977006855826134427297174883479823442422203858390171853385465268123268415623702681282456059043905197211612330610651195890679294930346606993594489802017285699589114110546734850720326197848667499928646232417213562480935787271254373194252519077110586415864007329551050481088760729241219147001102707985059334013666876076152354492212512674019443222856151077818618237418124867761335304964500353634370040080667678346208051926996123556471313101914691328773914368594330969649757972782597311788830669774464574881402326964533635931700178976582167962191091713527413156741015916433753746746044489345289885098756799318171038572893707198822474656679739241184256610924803666264224599908804623000945065904974689891557713864939590472594878145417472897550633793123295840802715456360089650315440434527191292458096344549483788512272980961332968116510640122449244230346068638854720346647448657978671906166616298302094715481885846423622744002542998843275150465229334408987403614960470601569193277426032222755078285456357485327038956029010987670868741034517582324812079779969140842628359583773323790509553511867664235308838778975069087978210794913466323577757725167088841425228413295402362489879591611139050714715553450957835949425218181077596893880312777484903644611927055625183468497666568306423139910667429064809278078902712391538986914816357743657460102419296159770137501921068157132267805927628691519019381630689656276444726910127896917589016336098021615929835148576327597416375153385277661400785927433677658972217866373241518447622808087832802604130334670848098049654039312175121232567524841621400090594244297601791085976185078498126017318249831401879311268165653684223522578481418046956251009417747775410313821284040053072283010112207151399153679854851348525132389816668145650815875549240257926224264815266913650038358163281599757711626600402623769111835670565956357340562534656514192492337589934591427084220518754493468301883063107610819618318672324966700964103848916118917231001185789636457508514174275278382940030774335440615397818677612834826659776472872476073392976283553464166350983206602765778809261084519988472079191720997638716970165935670433708607390706217559282123553145185667004125270121791829266363148000196142085818193611937945681309375453173445781610800912058930452709796826659164293696940109831725329200312407795364850635040958014365447215889322962815803347490255940359236250594188194395633945671285954831267734866406046168581875123538156117632114419024833142756013568264367411450667413189346091227121645294330374495248684377209324154340595399207369710082141610196862056002193740155253566047092347925584666145112476339825414849343834802129120913780973682572319418354610544758302968033323950639028756198335261208076034503550227324199810080457606225220740676141327705184933681892648352840735041282541186041267629942782576947272192196913564520199853896510073043856850626088779921236483838636595520443681910945820334488658425158866864925779232086544974744552138244572328392029550252740913256674181446980355332708987379323886122592137335213514757241479030273635859899308943833241866743432750059503767409179565409177551494843866387683818394657340382904674626016854660387606160715758510363203676160354471618466583245396673955095514380489481806442847113142940891949210274860052118352081123188088389501954989307410476241816647242200394522518202099377014692747737522651737612945151033770739746739086959730925474588232389192877795462118370560621948921800241819367584115323967524752390542042626757527269383757054413623258000146671596769778762859803659915662032606245872113927363071285746439028280556186372187222930513760218129220554403737495385132326382255139083207569746107097557730326142285306948125622745265629111201807909032713245897968080048255239807917738212394183067117058753675572504300732782240008678977719485894528710483866443645401071577949566860911547036276520573696482535573063398304420306312384821973532675035537075429296984366576516800262088943268017393613868448494186667426050815182884660264181548772005357587240898347563431800509750998337641993392774917969524941608029012392972969506958336229969207100123029895148017934141843199691475397430747108716300886908398857606991187634563733213591988087397343387826071939914716888961349367373343978980057456887735336380086499635166705687967697768131027468411406733882577848060046010461770197032460358688540744799031782668688934412417952811848990388759337514617545207158910036404400637785724173271839011239831502608978886340355144651833157903151303621541874939888525739824142915757296603398107105594115752434320100236138288631410156225718661927856303351472926197020245563392646985869661468329932232203290418953833571799717419464323644788441036213546628301201507052321930650796117744797383397982328061120244815028943246334165561385816998797608342344821562036001005689942252667172375604537628590765133611628178514272729455600453470966723911895573855559757437055491172944928328017269096473230149948367473276330621710879511361199504611612343896419439476946318161995571102691312696346214091064073713465632965641475829627049808462694036582220644590702986330465019143396526334779582211423502046334925083977668308131104637698061998372324540182390839726506880679319645313182354868492221771653556311671901381623266241868347645727060434223956778736503083818702964315849914787098711557856371080379050180199353274927746327897818097086186638697519102840542333855274339653118961120220094401940429648237915084409900034855239330039047926848214793140602512761148495364448115619748371359751292108734511636679682723455913452626490966866683864521306846767691209709758847415309204261305056411465755008968863690032117821367511542753315182936403947889476537446769452589238186781209708323403925969201660962385411222248394033890815676806178408466433948927291947001616448292832576963433727151562485525129663561975153883144751430000694875770372281389975625339190165023545675542564163966204930229058793538593375724485206605460651789547316328418242695857323752067102230142088489692306016693810047330217662821280178993611496670750145514221457044567040618974223872032867345119027761160095080233943858494882308186948889777088398599527684072391489188151982845861872053402101476264862656639727609252172061454929522120556723820106272889848074346784896273892529968617947478990665707632408383195662756908716957240053910510571565777907409867766079309002001586887449741113543754318560073701163996790450407558231416238510698147098096206591246073000631506686425137801412360753912653671613726588593685395492200668242468554477017070557102058243704802468002680535420364921921862103088615357224202177063899718886718022832902780342777231005644992332836565922565118421467941930799699925327228877910562540245081241598141581061021843528823807098483351995689079528748233023156722008562708853677235928216532090593876573885529237426927163494714817478940613035558150223902204143347582182906101206562065608994881741021499362218960105146626058641538973776600696640013266537183486290865644887242839747448748928988653438081175426979268474920863683558487227134460714336796029989798534772966251602531812208686672197196208093585828624326321194648425945485704024375874872693166767497906178728116362267595423979515341840617613762305495626585799350762672399093516842433157037289060219696718577392918808482444336491534350213384189427567290308323065260790330443128051362765125590834892102691590084455372781926106857667829198016563565044487832624719858769240413484428740934470983011355883573191796434343047863296010663132424377076065945810363693349593616615006105772857756653323287567033883270683714953287472173650370661830416115610062424398465515182165152086987525835749436780054590697383838051621067862094498044176174795080894577036433001366412302440636873195353157349406775397888128445104865904512227091345993989542797960245920090524584786090452571245566149544396563171525272921469306233651862148465960642940068305035946321790853849032493439405566934627215396065535234445550027651975848311377278244996764150407640114073044323112675014226402235443301672638687786208330933550326348842124351167919682528057054145425912935505276772009294821911605509514666824526151601018391415559930261119168277392562766912182678049861662299401663645258116384906940310947641266638770176999513281871250766646779234387931785420786688201694598894596638364417729975344907962632882424901979604529545619829389732461869472751342366243586767745989419650800495608448420177988680403724305856975375262732497063537703058970360243824783453791446371094668031913271020867996012039490959655832681360461198297832966843203405822345105952873076461315096010867305050465977087511838562789190031424891386971685226879941576364534375933007781895659907542935126823323198521809905634370702868261943818428340039578964931194247479073357754425658122167946979483822815153476321160887170732463566766574588208447921600552081392554630630366699197680544437270539143653517307861518160215073507876367184881780518973395051016103922750289090513664308007866635784089640738262889605855226486275917607270765162099989993403596555952776147737045005316802737003977046285410201601470661950793212134707479425416367037774622418652263301773485946059616656357181369281701057781886522570423095139362552249895983359614154259321375557467750748174045417989658421646253191929794225829263565884080279590534754718289203992451759181605534746431424934618169385369751698604096464662113297188472240976249194106938541770437053083866384498956612422309624465136732426970993969710607406665571171892264813389191552896691475365128806867989707545063042449697333998755305953455792691280750380346581755617667240729181541428231208804301253688705065010246990300460524817174827481924439667417758418895389203857246552674863126218630155191043556190348554910861137360957783987670813915311578334043067794861878172631301383439155661298266884662196263248124546691228542100074648727696466183519013996549254437788846294495315637283868218154480990733218214409873653440428217041115150876405422177995386401506506720168798548482820083531594984554370792289367029340574395755814783281852785737285719471661059278817505259081902851902020607665196587988118411457095676534354767252152183035221650429817743401400865796225528502727706274141575976897498315451276777623198236124374722348651498177800533147761002650462553671700315705368899730705882852740718363139480747734303603560003709788887249848474608561074408805041721856039627967979932293760427486806524740227033394900526233940313508999707318439047332505017928583682693021748456698863221975652174903087331234330262207655694686434123007540832247158902489917676247870430034437462943265304401840704128016406015244883443340115195467194717924857387474675310133668753182176092339520967557729657538027783349548027272921066876675991036345857082684123098958591436771422397997975512005004322025818646055580704686769734262495652759213612560635975071693057008835135286507873561544389943194735646261922236161382074638643708178651486112512479665453630885015244346987251370115241870563272740381019086482058214307607792747713134218821852491432809723770042368341011774346516337772010616675378227063656035761121731839376730981192317011653437010213952596859846593165220423872635155141839206640677614513333229353417053954410758056176259880222938123096175086430064201827466404586400311380155318077723685986444808027171563977199624610748498952431104848905046878884178030318750834182070397091662928931584539521604689140350883347165725669506254414763991927673417564846589841673508639397108418906911250390459860361364620837904211467913851903834063553781804922062529580573966866798474956681536113846842390623323232774656639526459527690328038583433144521604224976641166964104852612885089605445112607706668927076148983297565237559279660711363975742378592200512856673116418577304658183869863655744871556948620119082346463271804004298553817197454198662611325428942532319200855468420202678306945857323859453452879447857310985408729837795899082012473099020223527806075838219862518383553887172296658005475037420405163165581736928266303971964412937095434571978783062393328322496613686897812243814430267730262632088063789303934111006463704417861998541358658833140291617640674316031409731371851894171775674292418744556675497934279400338168332609661428531008926772743331082865044244770179273166051774793916516090050637011934766175111781351541491199587197635808637588489503123278562144209479887539490854899840825146009101816304213210670234878600087899724334593676144733153473874465801149193127803713208464317970149551774575153669719018874653996140096955563377427763339662321282948122942201877763349301027975808262421709082446327760241277546374549831702192039732738498818647347755000753069131349057225645760708969192336556228147353515858494880303601922314418095280437043017648226640342270306921484632158307060016945485001346897327418657465702400355436193813943161902762936415025189796309976908656327752873230777650263829382492656126314713984447350305355596726123356177434302455308610851494267213945589445838025504216140531294004555536103109675984797670097985672982093938548132519807753600246812393247255551238839311171683734705287775276146611958669481145843546727114859369568811141035870731215451510815487221948799590922623287804541710720191377675649747812835538052100606622979316889502490430826288813259488304728545559928178464737985023915517531677609579721328426925752912931359386841555630969993971629052741194963995025314220889834000199908506547175506376374842812690138628590563213829701822843841260629611388553487412372433226036639348151838280236546782175408160610364011533282124396105406159227236735452217911651074320724038534739369601076643555255807006079152004901445995137181452296578269434378901840392348510635120577564526588908382339181681104530874727909652293992191938438628283529336375547611340118453012377805661017863212609635287880214311774226563967057905837981185525596570548150103780001642892673430205280845714636918348538644576686530076011943960533912261949433050073415510548580462743814809870380906175817335622332795816073692020384530782385141718573395099626613040291925994488062102059414663737056179967730146204681727812724058625071476763016066428656193351482169138748741362138220987105984720738577999816264419014663277852085016483611729353049710399868543836778260253180617051545109664654370364100462739137668453228698216624585930223337482493139371138971902193226373696306052607766365412535857500970574366953295752626434469953353671866201171423483132107441542365976530108942216569017622562452118520282799352196456861422058908529634489805019375354439308793279393775754936912327170068846726159146909790781294990737320476736344322864970225665624907112539912835382365793813432095866493564057005187664462311128238149073078537997208096314312191569364537302622723419556103973956462734881267951140020562491855751456789814215123355707266113569959175807035139639760842284729924549073820336959818476495424723259138618444706381767992161965452679782737517334691580620909950353246358298183180766254354279478866690741414550327693590322826747347079575786614050745522105214639232544863437919087683296352245003927101640718452869178152868868183294237058370613327676016151825110338792397725493187923533304991188665770603417350197657858249716298737159946574467635023568692192573512566841056554055881171627041111030386330781428130412678493133705671743786574813538546561370713456706711044074034699583341573844850814723089149986955527387774553657999188424637910144577567624792402238071648355022456674134377382720987377595483934265416668292630864142255484965320668763746367008892336202697595422930620933589734475099158165190215179522635847420746254906274580504423217646393614110718809869405654209718283881953365011900725423303183816705313242831239197887620215627135027097382149096231751646179184297383735671119731960715744213497962628113899395226893955420242665242726300008952000449475782434807997118813536772769345812502349967265393342861130179394290908359714959094929162120885368379457132205733459716277748952899826789448930706330926358286521975116194684707924497181471011826452571059590576477841613035581895342868017128906691411631267687642570124758623232494687057048270246927924699420058098975250481967997669687111423454791644276401205202436803672780149868343157171524711778395519611079973114426205873994805184532291359922059361179957516451462616205572612724961804020563061796188945826143340159724767634790348903740825351242252038722045902252370043694896612576226279224802937923492062207131716647005382486722358314998692548326471499920402936854935539655361733307404969550814843519318642514484157954357572172251194751736136983217991007381789483545761536836169992392432880622132831567576965496489216070286944459526010543778664719447464240783414824415016155774838293331901512422087987938365986959173137312754511880979030453676202123481309730255187190946522514708872883763985811406123680795857877830621255762834686844003496350047641939836468835253993549246371259811606667355788033526612647751599033509496792344221574408073810270862525502051065634008601114870832694288863719045840384617344762671378734044237535290377625751153287191888546669177975292322071760199949469044931916492094416968382291725370747073924766020566181873324802642032251362518791508827601254555426480028301232161118615902130526221530172258660216605211071366314730227162188929638335840636571555915836487874061312924385988156934533901941820813779139324950519560438283387742247892357670493269269339713546933928500780476773110627985474466155869170851015483224807176219765396109701910479995212465284927247502639990473497940448194803414193711328671309991443549444208951382075049573845246212069585244332253197381362713986091179749024954314454576985709043794836202105926027638490874068184137697022971679446268497881358381813112325812997605067022462996447965341384351518952141194224505070296422496068439842711334525017634814731012553955366914129021018516547521721474776706385892655655104068104009889424856361154721789738323150821835762079890957827202484331186732281908390218439942881092328572371466269167382418936899784131359541337211242448792443685894643485462607578757525144612906919871615218832222679388175508294277510365110633791198021065683329193922606004632763660227326335682663961346664599978787708421745069241780304542918052615093842235380653984473792760871924650135870158178066494498098385466044941886003946177098389228974226963311237060053586090885234741734373134758525014909287720643883982360742237580120898838483661713452235892304376689708623126230135312828953085399704022629822642117499230161086729015969020533065996238920011195305209943864488320737198635869401638819519444675476281258071559813607431957523563559534524422436947106353351026374298250871218107143062583670329289645149036523988083810870142833527516074965438338766073984696599764887711530844791446895229752586259570018012020929507104473492628424139037575240845181216792427159846395769526423683050252467552655683403593662667276061877119618838986470627282246304682482241355255658999838197262998629102637871353817718128909971313008830232143212346136390202466899865147540071136347074207638822145106274365871781049340281119537396763523055821592619815427465658770457247570215589886580472824168114600609059552974649074648220023070511972241695390043053421983417739247514399231348251746760712745744619831363392742854150296949027923603792406091950635677431681955233358876435571015796967592373420584814482018850233301677572003684206709611227295627234453984053445442700775428463096513254324142294234223949229344290953448176683788639253061399939808045072716270091056940197769199624346645922935433110055935183014419677855341100943624421443378803557088164862505033450964690241092111884629821336322657959613490585193239382847570911031568241213244417153118958841601594244284359988798306703307172002853116404154865881492478079403246511600482771982095032667386360870447443838971087321731078795337821699495166679548248413237227629659296606208810446312798766732614687264952124229843488016956458815005914813581496326663228326244196850557334143013360018517937106313013977242001530467769134928096216809603205870090183992473250960279230496528066693622196357770449109330258541330260497137315965147443854973593193136146439086254613254302875640643294608044962109037536405082781428556043705128257441922958529977527835978517781512346227123885566333320946882685664333657893542978272082426060893223817713124661704958015036615856135223762899801950846841467779288923519165469532917923485500085889343070305779428956254553138218705682209433027550438545211717955331418640533366443639835818321155242165043956168930479679692245025638780467164394836136808967140857354859167038809109958420659993721499830679693144581021681730394567913227359262801072808652613132299720111111425390797617555213511710059833954414317789626832081377800434968519799928310273785060333118116662101509942920277791673587244202242178587958779314797330207807219307287458889520768213500464288603990942733053321971438145150260663958578445499632209657811395300233378294314508234707235156462828366166808767658043927593676570654607219481132223864035623537852503377497545751283405410176457682790091725378607062144505048997749744775555057220169813444701459242558966498809943205976795256120345006019441252132960758918779593156647348065949935894126252424907961413880507876688858981146661121564307328595649088214479690165362621984719318359163506130928267315726394940266368525951413662335846143860310149822144363827741810844458768232150763005078227422275950965531861362666680816657699666289780427075970027085669736043630536854549625508728874918221903361055963061403346155047005214772649308789435556084404392210833325425801072938374883581447249045690067169302126019148902524965857201297598481348159556908277007925777256748261446728227768115594715071649843837533521022844454553254729907606366962489117485309445640743955708330283277626594373922001540783453769818111480782403467624735239604980966331583932898208519705920278602760731272697405930885886124575569662380851730480968762355105779147314382333151373249175711433557963174373611327192837125788379814458225356552447749961212272996565771319935413663338585285543095770215515816852841212793812027740599979481113983762456336360896864969813541414852814249595745235084772800398440990623738236643282902316629324543319413390778331582580070293235919579281517817958553626304758549900025123780077416417400624336526642171169408675456704825802046413667085788921955945657012417025395943741194493120096788598622353302386454136491558976145243247704447848865905908701021121193023224434546913674008162528621529392686475430173288692367394898055216011566590882707885397766014539567390725527930293481005608954734700809738932219330999707271598035063035511628244732938148706672257463101944962020600879540949191357617622672658502883196630497400089595023013559240639295658762074227783798157704877943795391150639257529126978460067378668002112120523826485762427962162408785976836304333726918587033950513666282235780416869089018450728296764804205702645933086422102656452180130805044847373001935707427686774803666681466945444544299617719358005297160617085645274985520493823975451594510401255165306890243957666087954859159947918527126145104363565144063658859842914836775250754020969627944624523553972616483120418715285227958962492564802798905622075545743690052372524624026946553049344336069104061280828334916069114880998851416083581493053878054889191434553917013376340895236301977763395705788386052763749618211869673391069735972878949826282067497832331309699725350859888140156127386522608402170600260740280326424529948573868400258740400137931999289300302479009923563734447273681214562879535787928196641024952704444239831703885286504656497482990456602239634479712090329041793271053020829584208286564787278372703118395369379587460067873971113632824857248028222331982735624510238066909155333621352608856450963212593502604275332479887026789486267095554157084228400865441880651555225454696591204812355948334840979604593547562096308187167222009582410719975790049373197276125925095378406137254302173986321300274983828807612325740153992704497833027060886897329906555801744130484578759980479909462577989012134964101337492155586272093863850544006760062627886030730110345868377800297124902400406985569020643004344596869313287209639821886819956900016247520107558453505906806015533538079880892641008418854858932589311442223410038068232221130426252563674225920042268854487001033417822937870668488701215789219039528482341400036159173099472998618449442524741474814689579572040709893280639930449040478370358576483348353936226771048645002857939319914645823946227067908898179857645138547833264349430948956151153351379227311005570805004493912548798132093612504222478599459986713149076764631753094578992378672381550823292879668385622858760872703265368822908736081892356713805703562999922429006037977055665630347057781948592784590542122156092587078504395289436180800711097130053289244715183947131860113106172797897684395750451511634857838926472830956203946243044841774889056326948389979925419256745774481292188729518741075421088339123105480657592846204661612676625454327181885993525105057883907092206250640399459694674403527206184006708349462025126741591118128749757160369149638314818842762423945901582685434395939811217849415735528298546788177818195462450379142622647706387332831772352820867290542580140867523636612454542433174040111315056532124598570850032026565851592698134104463982345949557471656928253765374012954791180480410870408552177002460203196736404654636327083688999228816912321213961984328669654959050727523350335667993009583958678659950312534271127208089352280530972889283389004408834029515217876568651078401479032764588331981778489275797691096845951076646407455368239310117190797248501308922632554437273959380313916240844402065924956926786142875116221927748356158188352197381563620121018933844804737954104776775865033152991564988458442947671586610358302262169632439421083117449240188986382991589379974924029159804874795831322728652340180946073533796896341980209536361737383729722865488556202831517727361262315378358467197421372456575883251342152425999019954544626477711553636658615344216707800758511898801068879928297261315934238923686154697204608764793229854514042923041823183967996868788406504762072153649166628499048210723176709050876339625335205180535428190968030716395269762250894034385384418525629920680607603112803296949275777732633636751250227332744394537629819049397260597160509416968059405792587468875833473223951814611540658705176235992178506132328844778165042846137833783577340078261810037753171419161596498347260006531736916648385451276615516382857294163111760235275703393313314514417241800713758123690885254479035943053714462222028087247253782051519041968712586420023244483693266718911039268528000211168006463939664944812889145008340603760152939681392120431875119474089701097512333508007684148874580787301437578917943570802678841295648421225571962225762105739493633943751038859291098743892349333539372478629571495136431886909585090560932139363211622477181171653772394114495763537523249137459862496196894680830534324572171181236176857673927668333798110904468315558234667572982263674687802469835156992123658040176892292237846655217465697846048429009089548370028471562673022583624071487203035126244853156922486038565230775087296053786753836166200282157472075020572360089823254879080350737271757324749569144710929154404814663060426294259769629416378516907382247243030240232375538371757107684967025575389135678989747270949237455850694876854263493986565933983341110577952255212550391771956059478448740463787734099188469468056855366707077993442379085371478097972824718937933266436769319358779294750321301191824474754400374626800659064241952254099754998999642953356031904585964251737235323535161123606288223741408443488813617886157119465339310955892750845179495458780110614476283255282109351885068619396016740379532054621427425221904772066654276935840512759324156941861729400772352278524638695558325657041419190241168243679133675702595150866770141786349506668901100239991545660561643435804494558580456177401453098316350247258474497321524058557105936289330868129664076940970330361591594023525560009657296517513035301981477031689278663019792875972020107041790881493321072267947714796510935979511906441363692578181708233362785912248300228818756251283839635310210168907478224457931413267228454588729599949188257975957115260891377739862184389087171955659720632489793893531012571034529823870552599719240150106675859936338862648393019955038803722722970617396890210176312764065699234449937907608954594410302221216315625925600694545815144241291382541244915866738152409310599381696734172035840755846881715037907684175723320775466534211650714806066632818679988802419090808141508599064847440635269203134040551842203516178722383397241270018730768616026800118558778022659488629694202968239241064114652628274694687039846060334009089649568031621587527520108060014618294171587888165024614808864122499885416061677109976751008334937926858014233818090419459001429941648340886139870041026664796792668612929074003166214260770966211488683304182572415341433977730755410246284844628755962854231555056213877792458262206049603040140052270969363633904694400145139895584752541218431301256464516240483620966734413234224102373410332716849109402338547667781538764477169290159184869013286709893509397025150164444300317732078502113371106856287569080805189855000569791115609976320376178083450054115392853000334237138789627519275390743236782350271575463180108143997230287247049925853799448492284710204204003728908729938490233467373386440980850056926479257313490214960447099859836088540913348989519789192526471316274564200114904704527613767996921946022276091170583691762012201842519538530351127833321951187284356805586004806085667417198877528909960941864915643899230857761884914128486827367387293343750929239208526730847218019832648116080196264144595207202933266759632914523621412177618045547625650749380819474847255169500689050255673937399367744423507367251625622438576208265942899735672945270941250755595060579978162309851594319021022585844107236586672691826287248740768047911371087203726248170710465232036464511313942682875273906296975573077737091658157714101795622336280303819207638237689430069479049969141314770454562094704181887329382739609780438419896579600009897615791124499346685397003216890072137758027383176303517570513113382397244603233463653686034067551125988823978438010909824550903587736260391809375683539284254886701108068397825431885688609467016879722815228961690898435206867720399010615016178501114825304479441279350412121240139899489753543985832253705089199656571801122185757300882116324776022375745828741230817704679609706379271439889880721252603967290256646230236997973881501507981933350266637776981486625432361659098635386322907089181793306505848941258861966500928271838061011245024496150853664675496973414169666278778387104166807294215788344770424688560364701599343773097727532232590656921606936010040226081819249200146149343002888175207367638316103404205109288989403737938156396354040114257969709945702585820088683642783170129429799132187685002738465283413781964971167889174465710904701045691191962683473333148659630491125644991943546632836440985817887455722785889125602645846189196866319524471054535543660781139209754484008837493534806885574739391809750858094447631474952064725268183815797146953912735283102308547957800064506853666545560779880494423417605720090329439388035306815954118927805529839021997080918864334812016829610825196171203989620723450925009823942410641497732162730877097460214386574136783397951291382654202551229189308108192974077078174258645263185504670174586828911717683866886667851304977234798337251195964776214210868109341373777705192337393758493199758186697385746788059743437149469254995694925080122354640742848502093121125791540514700880017460949418945351223251802461991920589804260947163089025244090110688902985408371591642165083094942724196236281761771474231123132718140916963850967351962211808768326327446238968548864054096275617439830298358223043780889387688983791357084426116078318111456806883437793210851924623904395896445462670143661524510232773018409217355675671966888302723955318856072861541067623123474703887383505986567767979049656082631863828173978216006144559997646186179388554798126980333420462547049402055139288716662313576698296316618493166378780366035091111863069763620157724000369807601074228580025936838423018314485541793602169569050585392361378603592739418171344236347669249557955363832233121018672079369000884223964758888707746582296408302967257097922965662990700453294838941543660557848002133000698601629757042148720364821492685583126784113922878520461795000364904711244133265794304335268034750886890135224906024144171007483978984813652415641851722217306203976846374219691160102358169315565933081590307359379165205898353287273759161145489477124007811615390364141703271004364579177073013969942138280296459727874105196541009836113171232066508196446829316409246267265506252269546005492450819422651026340883856676173683959348673294740333688714088638659289143972890003160108142065351907259897076047353638809752844876734468489846366262884806923838678215946360514483140719616074379136689217501330835145445594141853583264801118461235650490107847719793761715203475750091316029205947162461815756370224796040807270736186995826452961723297528219428188788553006906359223214824048905064460969365410031822065490177687012696084619390534361869729953459475906882003740066255528861084374200990962381852556257922947056950749931670879510925913190915572336147329214265872238724129295520719610817335507853627666743746109574115385616282202671030977851740218760065257796672658492028810026496359141250112954960017926834607011578452717967036815236367315962887022878732022696207513493878200588096004620767081146007843752832989695872021987931523964460803472742434920959208144283383810497841977444590706006251508498767340112775197409549342269651608776001199636652100705917636147691390771110656309023588690599842554906879451554501179827342587649704676645272896761709110739331794205252127360293427229937615886681003356040371934585824751734078057518789560863172585940640069855910574443698469894982656971311181329492288768380698028919337785959477841029122157843404244428228821472105629432874398736466939549740972047463656372317283459391298804755909784448173279619106502491741197402447641193266834840914054984363881334618161637119953201932223204490352645469590448741488724802313067198388304827322636470776777544438832689480631735005456691241118278058301584795689073167174713980702867379356862160359563825540598344093370252703486042679626584345846442851473613040665604972230010080458979303365016108838593316421542865675900905017785912579101220888401415968283049187736941711629793391521261446902686801096669016159229388292352600005850955258609593871158111296820360463837405493638897214369006536707687028575285292309969042958558229295745803200750368360529326777585972275247115840051060821321433995245902506571491883063856265056129417456299438616582539148260205992174506712366966540838545102199764867519330268818609058855906064611412543194292367957141240868522908440616083277988973859947665512184079724721311002406988256478789454239586821948352619009922985496698048364755177487909478786267192142383659161295864921878930285166333753064660345529956272669596494750664080529911028323338182625022352868239394156109809166535627141194242044073424012272373103978574003604303913264265512321683470298613933351987929243942711258981244497258456762926389066226624920942714268860520824738541687041922907910185463371363587706704818584626933579074990452427617005523694462978011280182642791460857499379505596957678845284083721365286010827460520758107523099077727097806377628524237250385649940836846306722195701205310442687918513792966506830960932465763511185466578262501674242408270200875844392916866562294298370990916716214837553716436729716063971106428217468606585911276211593331366315508776027478801285303193934016324789922298180524692041428193743097160014336152078753968362356067192703943737409727388784765199309728170591103624413544099373430659387284507758470793505397264147500353380472838292538491289747921556199437189609651876149273107154661993316034402845290652886574543652904122490270603405603600261126910551665884558322448895096190911009297761302725065267256608072551445846884936906848659472622253407113463111391724453872637077148346164581681417340876408007426581984621676745135191579952355346513698718914103521051605006350289034359936155740061604086112680261746524182973604361749666748072583607912250200504012962423539078272680101102725859439065697053534719443843976745766514434488320245632041969631189946165766259731979351668248344218720557267289689141376372476773204014897069460315605718803977436081964138318596230862050291177960997138264348006686583796834930067205355099671254666600257497359953911730781244611514327305351011214518361291955349030241115896327416976479815964812199454031425682253609506154222558804557837279622807663867503609834534899233030363899925315523595823201840863899016979219632528978540366695210950414536319334763865901279974862215619503719625683130746174033841976733209708990505229710588107633706417349687508184191743353132826922550172714967984749849895636677070804736235434914674160177549641741957654033341909777582552505373522651641377591281724442032692426948778144334935859896555034714785339961749908968108783771242929789889342672819783667113739062655782373206539856110703684306864822157486347802859637674620155173642721876482733464314217017840344483206048446611668241783104438755336084015617905789717995215021617683272520549183177181424899654627777513409988010821832685643729882177726139031144896325381404247293871220644348312519311308625751928516038428945687726569578010005595512934556205002994952839551766918681245973271417125159593472520765872954415917134060367609292046308793709410346620714865724520598750647828738778034297343817825854867500237069486113769437640332144373115003392753224837233068500636698480899311854732870783333837080188121820691583731294064581791035611087810405785710147877195545169012101288738209715022449635244663168308814037564948912256168362798095368570785367919054234507741041352703885180634631267179576512346500587826583491886304978275261940195468108379508030537788366328702263306522155104306813992121896725442849761388648787648885657847270867863536459561844507054000494744336434119415065898685622088250897274890001406854125835142648811787018384762759891827601205734413728830462062072543878034996336682042955382218476014621834909499496832841137303301610719705945619320730093038301611329679171720817269896522946511176630742381150480042669622118649368867827724320525333448060649082261266961421035462785466294492478601197206193491590870052984103405869325315280750598841688864936829380325256588488705303787117389440094757562993723024677482242253341397149331493372281685257531191588324462611313290598282069211524217402009473550835738152980552837496262757016799979148341698667603583102496464611466665663438484345179038235968648331584524082066475587129019751255169044866271977554187219400793398720912893641792873967959481597882464291773356975423864344781260145748790002750233454142263488425523432070207275411721505522543394755157525309608282271570016563478715754475549924982890751297786156769778095012100833141408576781040850189613056417695135925849620858120708902688849427259543261720861791742243507354300250319359352968591000699768474544277460165084142722499236961299000486511594239306180256130977527240904022205517465668566249149541907843612623052993774402255124849216593539504259288906254912398412309164790711778941526915150761975651119485072238202440320884175001586831723804903088294959548396422455947485463908785926615981612230319990599569212687056284114439272480845445215088249551795458013826659550554587405247711374191768751514317277358354691927123858962037210456420382170030683552570334100711429878988387336752935971192441262108634095730457843349767111702711235237968933968831187064981473529473978017470366137505196893352126295610776969959693957919803563801793355533403360347847529592280960925432219083725834650280705037711938933813499421886904474622621474712344849356064298145948719327744602440378680078053700217037767189370278010315815598225092524087836872173430030355226999086641305386223507638954237080327945898927168520450905682041322804118327442609727703095897417766831516749552434551606370886093436054092422715340007036996316643646981137299833512036327611862673663517525336713079800695141240704679807499786206091853447695151810634465783759312735605839315572933433921494968409755115687469241209923902505489158424092672656158852689650595309964840345912824336353006015113546628468538320246315424058409453718842852140506210898507184021203616144544111639039430996065845407729749038727316006756767705494290511936233427073179189842093690822554366256308921189006367335838035516618284310009403246653094955252429814258977659483675622609182682812441545785401569373281299481217245092681626415808940032350493430617832371647534408499642891642658887371851442013132435525016230350516426639064869156291966780533806595463307238903788483075957370934150818125534696776851378096990816269688262316128787689488580214377652227673603669643715925619237005776301039937965949882068055646495897181630783372528533622824507498969690796013332287530384565665463776626760450164241684238920834802635271108674079081776255364224207019275185530049265532549045924360431550583632677134492044509990731654198366869346337535072238541350202041042423511094892534097744019425423195469187223339073184895625475963960870683492924723611326130648314610657298732139041229671356052455287644175559586480310860342321252892514036202811249723138902192251688368607520842500095767154028032495402934869404954215695053204480749002358768130159934600472840125979765086943080749047689021598331129622588561103441018439386728328165546411451669404765817082887324044110706794582849630575542790907878758879209874798694253753202881862214516071244351013072204770209069596051158267856459431387558092177442385058641925541154320621748674120794546302904920636728946768565662648357916043240693754652003072782456035082159763564432362532252503213815554132127065100091943377332675552481310949684579488525578400084110378148936206784655776957548443149879434871546660047899283003808417276648726608776922175164938703932952251564361570769791712208706356921041911501548519788178511938596062176526929232216236869435231824482169349591392625560117848122102492441113750713952612084694746995145166150968090004421063497685684752484214236604946127310178813947503567174649629558631711260618107019910340781697704782328900785994691015841198321755812462686353486264301506409554809263995385802846639861806882759329770266113434883531271899426071291042392378436395339420051033990727467173299978616758207912237089878972522200188014698615146932859195911141782326694027607159882583265679096456134314716548815793889648733906011465792767392027369529408949676428536066505174082538664287212813852120975473497194503650730375328404269917740579670438027534952048916837206977218018117588511745248444563596313311328385019112481729841505590782821146194021494117211913996477153168454029186335220246760436103393520908033609623103082685127099612415415852538657046853049044591963216168273880114601739615036538393010281261823112580471437533028572470412631642750949833362473082236119266102291492797105846203525356805729809239495069613154212565487209978970943821136645495310385598840905108494620210793098603021974488803853330048203567152279721095534827647215837066121846655017381630267916774383552834167588470967557028109475922361362160688589905755345294998895327627815429600654055110647154834919619735138018972748687315319568100813249948173320062456874693233651679840942239303738171131666346378606100039133762476980769392031507160898217211908522469229132704905561734696713675674745332706138276390176102733096225199039272822695083506150976003889767823184806323336525012214355123903895320871824631128110088043422917614510296337439089038682699989950185377679951989469132884710154076312360619644883547768249560841345512660239571895740582791127766433558639657161464476446651740159413987215233284474560780398497176786355430656157193774307536599407091475072251423513400405473621440805952190545820183338743842340575079642516573647045435899727735731424998733999557034100575267788483850997247112752531231366643969234701536927834151801274331085113284725828842827815137580195113230737757621925573720615617730166779995160523259731415319125940244015111529478406759712266899926196646463408889435724778853886287892105613413000719639536995110175463818307314715039940270424918172174539901371825502547383474918863718162163631929065677221034989192759387351973529557955787784506046164097436356839437095509702839007895724447680731913043175875633748614783272478590197629931538762706042372432622193985824827560232187461754462250091825573660137372148743350502388869089916377246999917533777006460302950265660305091136741041765551949825170679306398760271396037958962058868819871071797227785349119321772581323331597779162830089143077564271314428677404121249856994444684944896921887750962361369096462048064714534598026502393020224846367341281070019347214142274236470204404465458046152099512732169166531277735786873433806506655825565865260068465694692394839229129142433489250512073148398339158598643144830798559533433994432385375652094355761219406342192831391973829991572668149492193515697271875606150609873450307543152244174509227532925609667077299324736355401524437414354719428836569213962248958941071936107612913419835100732364313917233626401118604870724057493369137975335155145741907367515334391275012449515740913251457457822210410138519464511872086652170657258258614746662958711307247026534758748298052177530453375279896576318516382162252841379200030684317959893109712256515690981125918164531336328413843598418197958487208885792966963806726831977043161604992176199299886510681234917482723979063157704449311235788153466256274514247852743244050965385332941125850128349639986183617878716765794349498071162065174374443986890217724660008119010796166626439306178746825107987258308538871965057361951652042110086953715683288051951033177388533995698028641194278887188222884958875273938958093707985828990772814126157975807168890819141966401416898953505827018755439027235131345396526823264333912719312993447812256374996845757763742215888726511274324307539516576757488002821239806040944650361872094382006114962274072601612475394232357215688374693794129783170831068329829027537644820479599140754942430550475241185414375548176770607867557050436292706373013450902821500417785705663474410290695752781848252432245737500355590094398795208111785792024343647773805904285724119618400720743096615878871349738907770140301987320373067407129510087657509435789224502040391625885119960613722880270240828302414997268324376118533602724768670229153424603929317894563147298866334283598847253606662087594725426477023177924495176700976936303838453419468360250093423315060584719010447153570803308821548434330999109891532989128896564964964514136501209929764967253698240866482616000819482531193692855342369472735432438206636263558888030769970323621353627506553075131586581758592208825642586933716218550156096923115176556637266327598724512213611122391189277893085263097000918769166695690587675585256555118721703332481229416126927707393812715410043554148943660964666384921318225346998140031204251579437849245447930436628918169669424829446819727292103554543062499720265443991625109035609248593359130318424864388998372518969426656860471843837009927175302236450850053609332619407157330355073755910651278271411973831192677502887626233534669024948763571938463217822142186821132415607061378807657061168411919515444081362344292084403185718100386068177651305289317504102179602922362746853292907593722394064749402633549766027706787409920165350555886082035153422360208059743880373724839606089843660265660362788973057400260880605291718258510709272951462144088074348343573358816000319770765240829113140061680188351044555874077505455008795516947545830974356601707954014661108820092799164094562433133933678907297102423522016048255314762126674444718950698002716060962908499772690186832887639945363269886239316016220423779106933050801396884249105768413836401387151257490755638502734782488468391475840840932701413656369023171781877516866840221881262922283269516430006774113545294766982794824876415243853558953093791319224496952794120391933250308071194319419684538241455231526021506283644234608686053492673482407455472652287154190831484650170628811032177464096359060383877889658009300250284246073310293686821474919322089108179128131241716824330689866410005632312836277767899628276919690274772159004588769307694518860329653145136699212056300867620423995947453720118872544090128159199737162382320850560430114077933441074593694098145975546864066165493432255476945754926954269115938699455884420946286658532210774995937676648976172264712866236737071239449238796114572789508903053060219215293852102603232333041229091920452395249090403213422178858800121108374114650406124865102243961064328796338134353844270530097755934126073950263183548109167577546637810356197844872226736122233531512706849815024564450620232614274327499842227232085176774553438570477098066216211291205455698342828883699795553608592513706854568505157069173736067303694576984186029444775993808419996567117844645817218088916193761466382797150306806700598281533143184283068199269888078305130646749717879675639961238650959439052824460717263373502650287300623787063407907117803995533561474983160623404693002218361283864290866261402903140374356890520097325523439294382840138886264840692937600601434253060758411692420628574999557182089683998742692079862921508874515759529699897549666759360462092017274249285686800454984378591787630037023530967474627087825483921865040460044334892800045416195691950536892446492417319754238312041684464673067520146484961663548587065562592627891552195117165679350878023001058041918498684090806370339187797189391175677595352632835990498515051071592023381539381852164979891332168850556555974892604748849497672605818218238015312091717683121915410995198086173262155070165872986166704120908400106850469473011812493287852562102607403757392964935813142728852838635634152164101424440818422033827479011286838406706074897601113770613552332673403261614162885928814072551924697112888013985624217113695474142193649758208482458169591500536310211597954043399279064195632539417107310950522370238083963474343533556745001878689663466505863642040293983997086134125008431435779874093461610922901331665126192429163275724299010353548152130135198011841361350435834227230238792107275795111069207701716633522813170745682992578201601777587539588307280071735642551152266171624594424196152578986910592363145130482542548671759333539549138674186986802948065332459899569482715380514869737076825202492021674749974511118745927999083866005991532889008087794442725842147877931348195158669326618868539108915900324724263161697545103253399946787328032060871778304284605410334160814672808696591284068055367852155050788621710674352318843647884755156932387207183845720851226941291443539687869064923066429399681166831373260949493820377698061972037792318967658387895450012635654175889326232023306962772171636363806690932080295900462449589583562815909944106709459476586731654611236668817029777552631866954579008820778767511185893406348356978201971055290616771211311564533758527296179249986538306627766029356629785077964968612411305458584622603335286954895611494862908467888584975048463742172943510795977394899522527092050416232194123486596967519000496922748404320422013362700616546056291224044466426900767237454570764869700919751403961189795374946419262794430555024551569622931868250806017913608404538839801092104794610577895740412799921306680371682610034455170008386325191894881338305734238540872059532897888629849152284747489280182255058817568936247176609217322680969495354027951657981887657071822054530141438957338665407768422535167233007896325931183775779374826063081849960951436461952406138331714960998667164861295905164695811029984925286755467830001085893906578388263881817543729264224193738749838278164883408282612419079799234978021289688968973722801517682471753743801032070249571763707197370236247292662059589432077453569065926501085620820706213731289804733677077595818307237598653462647502040942217782252238970485099389609414669549184716261309033533569385251181463920820048309538057548625238224773012445437406958899363206412418798707225036180435931928373367320133462822549547314950803067311881360727833530894704990451884582843423721862849149756909209443699383524137574136232858364703969148423648285964581769175462692625239606290883605720683089420206914958680368793032793259760772556716562196353288584392300037449359378494703777016924972950814013426292104561579263437897774215278658673990198081690339791685019348759033325806978574282862065509218231190575435845999224836499908913787936931678190586745676626518472811195807682795044771835104000987873214610810863053322000158695309446400673879220695664625804540364163801633744260916899330948018741002908977819661347445947128394576515379372582908715438484737878289516409900689695660957197577434298492183255251726404873134500271782898611944936132909073549802503275394251513125101274995155757543620682533147411825106400675262393707373884864673890391658237006973664360647780627901086493223336751762918229167990303192299092619856316819071567951596067577781564406303516726659268965204111376109574444967031036934602909523159082754942666170069206691584205984155368332981009000758588581438100631715912718050609644233395986308060077675888710835312389937852752700231090208457987517014775091479372083550631733590890132709881151245269460284924157419738480023330093219906198687092978852121859040793207102486113040612698578131468238086713931046989723409699878510028192498710397167367123242141078508352068376292057364107097801495121041574842034145200530033846061542060949588736355824717475817577555590219186309930774711779001667429607974518603338238773526211092135578642739560394735932675278318742403227937032147571858030044971983417202219652105403830051164765129889310808601786891795759325020959017035242410431324728529669187948011405904795512024478308791868057301519542353592426761346748071268562248200511924882082379341734755172110202999319869452091744444352488419829263359730852260502470159774466429103797329850716545601532286968863872676768146691595272531903946839105407057737759393704543601939268344050119836735707648207667177379496134927857271887832680815549765211733051863879880410559699325430320524686676011780540362463793634599043650993747262798746497285264610158433663403798472938987765185554206945332548803882592162156971049081267243170106268930523488708377386346028821375187046712332536997367994051878844637595712764153722075687543783512983533228895772715457724092990600182130628299301790053092212315654260248569153961582619201934322851864789162213680188149730639264887625801656872508589144029681950813474738317044877262457376651929878870805350415620664683216332473279559981263443641045789020418159688917341649800524477511102503545516307504050396221974746711329599320338821570834688447884158779610994444827708401483620806071215551467975741305236981466721542285611078871472424859455005465752535256674647867548747150974604121704674934210671119223466394728896305546674945961976266869509742698006766179090603926126395562971019604847971430736128499786879515140296000313046936017185316349596741387537688863673569492249996406488963255488685749772198437054433934402152221689457471146377917291040383261204417703760146530629904158578018613926308547068590916625576332466038613681843330800248809072221993154680845398267943838203745793551134874376793940575793799683263811116053763988930414553773828055083878100014705581759440183644067892186911332943016160499928737293167503090368349929362727882610329867412249580333161986510065875210816257086016227173384278116419534092984075338277762786262782398319275297067906618056450741919566437375027218504821246193955879508543867050681954479774975227069054353570023920308075640445083882545429354306942211827481734520637264511634722796224153919175218490134100606175444080107100994925541697895781061807267580062797758246735662065565860389675487053398560641761345527350245371751427857631746588279879187764478060753048813001167254485346493505974344237205263359836685907513603868333747859312682840789378709877897725886962084291964978747878822980078507901744371996264947864177903584704767019052623334829288203700555345273924391078378520314109161073458043107526064577145053035371933711502626589063437119492469741568157071891199692669813513347183235996415262791091508039159542776424663692397292183976622737073918075291692339395955122220320301583723343077859868759864627749339521351486013485293485350143183299051300275865841692639804123179017208776468863647835710900375386895359302523027337905142515213887123256824369085175988284202426039168288323431273704005232136799330170723970977352416885360283748274718480336255440965717826009350777529574796266040185375501478289154074204840219110525490090153038055053949951384834144811074114059190865675898371321282011724262495113111960167877585248856529850727975257545884926832452105058911778498003587123945192218038582289600470159137981714551279340515416617669749640636086808216857662375445055399931527258826294298900292557962012799277260083584131610256027685165884500114039235755366388182520736053600309113571478965517430589675049378846915979411365504746144777637526181900999597954743990572817463109057469538617346913574229359183521089871261593775096594997626645734684822378285784006697768654396709016813921524495003917189712772209373980918024478373518729442724330961313216992296616627661260215772484372118504958897680913169797714577810927103706686727817428462232746470453400730900467496966062790620467341702120898431045066324164474821430477222117837049461923028977965040257553401464527030872798649030250590155071733119371164497871900038162187897329016088494222729119926795783612143526118273566542399065924109711709540982526191373090826847790092621220261445555505767053025615601135533364025091506329899769057781929310371033141957636472241611330928989068756666338876731752594309378838858060783719966233878613715456523796779782535975646362944450955803121799103941705286436114279775013127556565512460843896951462366045598131270033488783743691614108840907440171509499996764827980724736473121851731627037054179124329474286561315128342023037425546568910665678823095812699489421224620127492524560531148276060355649217773322697844181052560981498625049779632241514623358215028257766623605525287842373041506240533840242532866635915511819255789167788224422471730606484639560748091067383547493675098326412163198085270410944477294011029757666511148218892043535700971658056318530980386892793942595507824001639438485811075520965810709635242669300676998321012848578875231594200297335532985205464404032041484918920056287245826901954746110302193512884264926424884252479918283468787923865280499773470695842159391479217252426957370266900544977479441973549613906601601828978437143926503620842788839129970947093129741964474055587256967363252239506933274485973473633465706059219789668971063520009705492564380327797718335320932303372699277686438222750243464809652030969867059950074868398758260003686396505368336406358577600898575767408535818753460995776917176214413899182708042015828990756277472703771546833877574542724356209078627565577485300861389679258270945113558237551173360616877420923504380433428799491427376571625862975062325243679935257542368212721050787464485532400133042552509349460026659773548027645805120342610021568146121209264174715418394699763695029602112645187074365323593817469486809090438338931551306362660735816826315315288443288812319790715696462653144966871941216598760309687731254181799872366344459189454988976575900234778993292579320235711158491819580467949610350045137493479884226707757622841564281864575054102826361299288841730443810041729583148824776166722798890451237381022099116373324854971348981379471001503255376959809042896376878801087975045524697046204601720566557815970541613355102003564701140276036737613835156760566216131572589329572493042930671209142993841281663530019818475054356189817858758066839518705555756437001836366546861270477860060355695730392459129688060182456011960305460129432830745497555502885204338151390116158734550965184769456134148401937784868495549340309797720488454120520944266196767795937205957649248524905292229636889047324843776149489501978720361502789851063769061490328296129208958389561942167014402876785245808137571841077323895011525372891272615390129214764155954115117480151153630902650361565427115712742381581244534130961725184746907986211028487071715921967252584524087486039444251391588110179183626821568260443671370909495630937649836594443196636628208646285116969495724202055931234297050962730490612857195452453086557627530801710798949336135424204533084558971335962838704123449786691051630572036416329670429105255455285114476480760662884091241560752321744075687318279163232201040002804546780134093626596848610032606522146331312530221811788935843425173426281329094197412432971214174069914473539267587856595249805612323255348870000303252074005479878612811142073753305522296708274225943031652072904447199144736077064710543989264212761613263974323223134563260752111910719917986930032081096515742341181385708037391981560871383318554700876010795728444919440843065805596192562696510569988527194419657743684981084927718036936204954260570449710705001763712627446905931560468567982285015558453950415476941937131347405448889030363750785392667815302549193222822226686124870404231071388013095528831350754311231735386264309225989147584414253622027222866426499889001162327051446834866453886555101287649930720237542505001734397351431998207496168859774621254261133859020498515226453614782698956615748230179746182389197444897623052174218413118812734086123990093743155071841514332631936163216814842884610834241177061354860709912043075184273460150170425598547198188931228340682919118530963472386029225904309066423824008546254803358787900759047086487204925663558459739677142976083486532709700953531523886929532279754926161554005580929508319970850869545117420855722929089232570636188128286489182829014655349421136862525658557555882410331620646904184538258092537106410425514411427259483397905428763818032291843640080568638536348774354803370729509857697672369816079108280463726791311939397201422806966622964158369061793847581907665121946165803506645822847402427805714476289401716133469169115591418571474255419540537340904461026871110747999765914231979199840886023649831103254523740735640341463685480832855666907381789774327995059010947503265858304465035549809211543267417483911835884985260929360533732722468516942198846009854060258960783995255650838423232444164804925736293028974795617974817453179316864877006357872841773026691567977781514151664786613675549846168122740811400912491138504692281541776357826175028126176836701276572972214755244388440628526100809601758102396141867855652563864748732193068280216016982711237285831369158681494905800477395595837901923556716489352740953365885283265448038341511670225259141478834325795004322508491762070682565169684819941555355500119550027558711486893625073625839557496007660267390054659240619153438414110064823890923232864227456576475927001592185172122472517746878912775872378905675150589876945077870212013803170285807208030204493207639122761851110377308177497474872596768660286795423904608925235734754231639401180810712864433103555736905674196012579752169940387664993388537545974527333086776610875183837127115769938770698284109748756940908982812871800985962668158919983659310005319078564705114380644882509031534468184405428603130399725622699433612382688252329599567118718021840058946673693113047797430561122117718939840154093854509973316051095364087501652535022313437305797178077918304252052338616991093165897570021823021602375992863435007460220463764455336527775923553230659821097659182481281544719571936427605123035458478058799268483812309557182157642107818996629663295319575920218153448802020428338853682460683064482930783583399149464184841928941911942777170402086247840031490114291302787716505637075905699474676115599062828799657387742199226846816294600381887471304711426444499263418026717242706146936014633594623175103274645343804101925367673807848910197158502269066681704189329430903425478459781885060928541105266483120382926499061030998402581343592366151362123283038560854901591488996231272605597316914673833042638970019730732265907387976344023447511885273839090045647327073839518280118001616566891403063963570416532925440678741524474353576889801719277390710765605318567111598375585332584176085457855723761294731968092087904633509264936482555784011962816084023780701562367631923762464983905392416018589187343351427450642898715106731227705626323550279103199210932806486375823996058500588054243769698883170497322669350615561463359437539416560748397160718840073968391334025340636233324745042342774259766206934315999089972123336709892193592557841630405513486662670666146035427998263533361207608750314313933635802027811639574595946735897736269778754159232388144659611698714740286135245965486051792033426510069478925880988259247085541431413071831447163132384039799030157121885648828862911640365352077063784905356647268277892644718528353508368341030806571172841493978662913643648528561157444573025129306866107447894999897677303405312442991834433037814647758409209005984872624287791043133361955544584571121483227680430345221467479981668731727367000322907977515244063608364775408256097375573914230451782378267704905627033016847849683672986887117624274858519234728716261600222176511651513197088043928774509359195437406264624158559562948247428508843221461348492261801283589779429320710258434939957062796591059549900614033068764767714413486768145404328752864695133085249847733529025671543498284793690206776474652638067923586654284532519674094059358244707993099877017822165783860030243859066331463842893731289137043522827314506171552070079322632304582906624071603865222608142414623380271944024338517549784026831348525276738228829611427218996925380786340746875024681626144904883480448406696136328033672501160307483683797200531863430543301083807864436675707517098322595915090154579677469558209139866197777497765417451738041766300430849073691133998905923094736060610984873334522403843260516553989565556946046580188581676435754100721098879292879993305092188699899338809898484344523850997567964590274463404178504448054233848983042674916127275467774963965333910659983550542998147267205309307477212678821541835227760031704456240723907981052022200132364556134396916054556885152830056786095643451453949142670386803582131994003610114722342984369496867757540742701927606730966590374013168150883403926117939288039813107551920766165036043312302523041669745033995987869089563333880232473111605835027812476834123047310589580995245229353255533608595728679215941423957282756663301450481202458587028045289713143948845459883298640238606638923176641625128603121844500183270069830492186198858501850706343497046033199258279810906397016429416945565161428918863482734731892564561471073637253925893865939077867500528795940024835871579416428653375122987196542824497466932588119769863499104218077625418600211231513950744907627024016833859611858530133990369703623182448177576531664596383294350831778015715491483627322719378306169523561132319433179569283466811553078963219080979956899575092297201467719600892662360254894725850203727897057531085629822772610013937403123828410572930669459888567529491691281845803026081454507672424304423244476017127347686147164854213866585791460354280005255844903873788106877003197447290320713593541163599866826080457092339090308749678408178038389730970122784678224612971535111724768850282157355317887594779482398704662180019170683738284126620710105977630733866916702669367210521822573215775049122743623779914911884925750161114833784930706942722057066880536281320705220579261564769295371577286896300560947016851403944877104992624879724461071861153027214186298107659596606368981763864338331255388361517432875732197771513426385620641019198154677788497943906690854608165041041187518474734688040429235784328346290127655073018867388457915219563238810006633923736187803021185387994168732091171075281992930460777770407706964860106832495577457263234921645837325041530590546104640869711889034775734775125240095713311869247542537217555299995201178521833482140382638154559201106544034202555608475690102224857762506832463088641008064793962360403777447953058705828879113816001051482137890958732831466803498414619470293257091827052522472139114979347752871739961808828204727794100161133172209439691602971977827973380836053700536964840603030423805137636332165126800070044084953706966015538456844351272224341289566472082295320652719573544391994866531783506507994962640474615985523330213200306226026978026818800710838805803570789221501192541080731563568507974400181293149677286141536424895963247971474943330248042085732529851587720976169056432479597079118059698811274720137384410050536265860851554872132029684481935444142977037486984806441060586712691243602451791975158928137368624471510036746078723841724434870744602094227240492759006848421254739762120133842167205366440187170069279932245570261430166029945195789160727426718338484779559658716278524226271328361133638872607228894822776450728997785536261526210278643058924785021575762094249022848376608203418569529196944241001721178488127943461380218244872366940348403234783763826527792647740773667179764594368703443959315780981590258341511876724581239961114211820330522658465251639843288331832040085753024622372611287458088567178608870958358798802720153666516622528359299969887872401171524891724681125787148417711451107378988362307086891189566766055581087841894636661651766406276019025690188878616973157183265906368094118887215078150893109964330768583733633747758363747142093445855447849508719839370143217936977044077355063603729022499930362394229291624265335117770737624183737236204451905322496139146850030738752734467714644563127333551119102912272359512235858132025068152197879965338181657154072035054388524884799259722374667864442999165435746556243728701056633992959685107916190694471914650235484385487850496063652716641264738229065973582492071296639664287876158342542148200190463064001466993007517992031044936901452535895694073702671483533687337867452976694322230988131689150293584793090376090322350661369075664359282638290843684925824345485200185003462845219060551920165760384910027576355576526686914726553176258611620502984089130407036516364075807708323269789864335034221854144177834798152335688364424972110755956425635172815119412609344903815729555087991391614961850765926213108893375970015067743619168106586955621037770899389520843739420665137528642454739977725821422230605100416678776144370774139138189768829143289508905380743847285841849189872027826470787673887167073676342644931148787829125374385474434359744886904350297823840109307583793255565651998525089409621607949936058363793240728308721613544337284243810544028293060266316617617074004433022359702264380153366267792656857998842911759243455012657060719207359453521293007423585260428184214965883768086205415699522782668299955281122159031619327494825510172902440281095041041016896241121373492079738352125305557777847942338940244153827133301634326740947629812028403772910206487472980099751397402796600701171145110600467129342716356891147616495205452087813576695581302007621699343299999295014306725863050228708422082586632168939176636417067196693145942763087754889202440368090144056629774522438341878352340002348491610660601815911610350601749378616830965823196933451921037695439341095742653924825859408306289924942507773081798377731550598783732601732827858928224763144023951952338005493467616639706148823707902426307800938368558147248014692899778482778976374670230576215801688693181305939766358463261056202157252411234425194262724537514266001725852780991949208707635120075367068235427650434457010408774720363488013035691108761663783643364066275854497923061177957626127213914743119470112981935345400730952707825941086634311734026450629210909066431264007643656085251872419920650222353903361634993707074133195671156971783165179080437398840609480941442865774707849742243628941425515046675339283614850368185900315741939154207425754965130394719719901806255514683946008726847968781421577797295116866249529055696807517854667270446262421514952775923588549722657084672297126812719296421603023100113487741766885745240620896395980473111017736934576429344080822274623899940480582846083833942397533128506477453199172785678683655692544191561511359558545309521260881651757946005138057359770030181788698822001586553931162326575906103021858174300899968405074998075793946048212374448590805039963505337969627078478996386184619706251108333832832074931187313120899430229385836149084573279964684585830482738807766186607743686407873285118103248406599558870753246216209341022206367790937535481938381525317342918041200759512625446999614716101983893683920613543229406319527701750247961527885519439239049117311289950650154738491752216652638319613996804617388440292577656718234045350132128515763670588548233571093412571776019532760222077498252159474845403768336570186941346362157213400208106081592697383149562587608288487118754209828294150278147050767327907325222580127566472184053217283923483208486805160499298572561379779446899116332758620895730099587147880673111841926639202624814660353072970880979132318835556442292145771229331997416658315787553457557604521153828816125147454024598308865595461180710497573519811039821598715765394527995954480780949668216652523796847892509912461532384993324197476600816494036793226759096232172628377908307977625521083347000944132007012133044004609518152611821432725882196649795174546816501256327264348379409360902716244423994471971017479628478521082683666006382761632857836441888420411069635339212244742271268983096166313990859554088042534601640343227394314767734790346254424530711802488156824145293415247680706644668416648802948652113909414119486854987394140076142337821171140548886655523791083673690040065851440411571481826867724511310073629870402306663890857826967510965339440417002154725559295399322338957717465361663687349239495454427075397480997455583197235369215432903417765378461767510100269788153337797899787142143093166306392339196217534173065680403131732809474566668596549848731760997957199254665269840492427029343344637453976494593064301799770236012234194043067639873426698885479109100640227821278095656685285909380795007751877816933387722585511376849304336078965860517320349772932566868878588376249476301921360697799278238131766844888371554550592137537496038269239213417959338844820155331204205500374164213210053761778691725898180904388834225722294604405595534389855403952125922932068478670118690983199234152091511730777384709383248597307391478835170471509364881519103009464814761177179880275053756475235671721198198871192109281100636045108478849307857935437672822925920115580531522786327389723238672340498187883595742219937125552020147633179896505443918204714844685226228229411007165686208495083502709247625901984430907378578200995725531472091670264767133374296680574339509294016113147893282121056405900580183103723476898057831853094483902835012655154077660285619576672652331667335519041744568770715058139374567794726270998617737710648585382254586307546456220483816588684166732071103660880688141209882798854783242734286053204102061252142394488836048758283222359639789856436056704908785507268442346271481864962218016993599657942623559062295856705075372836272341043631317047652608897719216598357768031215218678578109920320869466429493015094026685642242519020337729769083631344055707448263197857395512586444289955724465701659506283327391016028191828501024855401117979194093521235469161089546570825171204233586064556434944790136171120298593624027972357719113824236664879788244459188794790102678921187308911936557116069871560036573407332098011908158383648809730692188655545609872228769468428590054712175223688260440324255980231607347198284417684248979971819156745345752895893762237314114069512736811250235670667800018562637556961171583965415585471558661761671405436579158469082756890399936314229334167355871108697889097323836564301501836781954624867664880012388741211550003412304484333593395110830393388578088933580509154281570630479769399812200264054808028990240840762734461558432656575963664330128914585746239821744226677751976758117862237692308172260392867503765499374839580946438183608923749314452173011222170368964460920961065026213709021735476667325160566202006261995430431587814177716508085967719214661754359076912405729883223744385150139404169292618734184321096702079325377357804369894517206353058644983179775844779407827770747596096205881001923609116215922273933099681787038328911787116258312821219226737236603125157273820982625553823256120160402615755134914270185465622549523747743742171800540078541770436198287680207568438176134281017307408845426388454522317930869479068432101052456324870646341180444062913631012091994790285368776674559287299091424532753846026233046781055341492627217880897088025512073763842746045648700638043576759166828140265843653356176516942696039100252218298212657646369861194131504371021697005448697323401298856448450394996715891879609239461687789726766451959012018240257945714117301893347142105108138341149163092548297443766392941582577399919505477558017162973459051313291095468990629422467436013546043648268108182771999973604741474984018192830659210936786585548319525820871202359473927862495799979049264736309523743970951291801017738178482449141126785841721602139772820226126574990558039296795355653894058554870182977957383570910805318177319164212213685219105515764911274515370619378842031472157296594997297614914035293032430485352901559851498966034731553881223061837448564966295780086970585732391379911565150521623718465093360683026542329646740922183463969142900923316539140484342191863206268051183732574943757016876206415416307947964978622881709118658877061641119608101399667556657307243895204055990148365471876557276107232404065346942102256804501049340013305785891984063327480853724637896662293324924850779113285878378883608512888602595915152560870467889287003377181967488061899459366919291646425753887297011052940579238619624064292672239128628315924547611475748540806455170840344382651693965929020905194680544242161143523713255855828266749474939851935090575101288546458068005547790427484538501319281590863696339798626765195565251324269055503257027405656774999366234857158463058760393099499070395500638084472752412948436940509196760824988436848582645208374452092495662395767165388518323843152974984615270189885562417533918386345392873961720828592978072256111927614015472603955535945378389956981558053897563162698410417219962340413277870462469849309735000741908579137799857751369073680903752961108246899896740513840154445912393227162126891298091531303162302077041914328092994712136529857699708320440368584577863468524200463488879826042956984665126938400387890021822059893613521518096843425096156609768177092627150438689710650288353250735511520667630707494602895796763678047824365512429087735012072121112458005717567782903490485302169535107365331408310719346480582858090095570986545966995974858127163176358583648187967133317869535539252370935479372816865208298623704297638255020553934766629870041683219088145463584821971786217417421807975932080492243045762597918712515387561890272541323357283692261670106777257841824404664801986442439322374945294165377234690545099032006926945430964253952455148777960286575113747913483313198534308799832689438822025119634195916529386203597097230056515118098578788295267072826175275563014370666383558654838979191159425048351109442914500323121741633144807275293098030852002093914176209251122476344940971499428141298811672868360310420982202254385319988911598232584913552577014971406075305099890575500218207377990596125391584017850631021293008348965984787500536429439031933148914617451579566930693330145454345898415695293934573943193430310441192961781138889953496587316054716024549643456959476296514884505767927745005240431748349918353604462334939396602879231994678947888008381634013506603028122625407588201161156165875791239743489674302755146888133346807992611901343650481039856635853369952715368848718919797722781037193122540428379118574238482837882736303249311741951996967341543650014111791887727569635040729821979357345131638916736028926715624117814054532236739543022547490017308013145514729903009989924040599925561609262945726537257083411181822614440498195563433977950205770534349322134582870045068364162778431465734794109298302805015238586253185316916969659908177172878056554846774568136975509389657250685564102913468136964499854122735263704311427920718505608902042110930272134873110080179757351418433859796562445341548614490646175844156546323840336022034571161081446463047538257684476056663961674794066742534075910836312475429488117564856086843044338827601595515144041451583972381471448984309371558274500579474831836878934554783953787576031250679895180399967597146814455503825657501499952072167006665416566278137604342302726379515457572382863711535190368522087711826241017687945522435199973987910432460384725508402330885116051574466744526205670913616586540510106075571950875720275454653603056668727837484356639934737746167738089233198898907152508747092001136210681065405288187950980747948852826375736483579925708885381154517818210907027289620135353191874227842976204527726314351428557050589216547693464228124753184531983140666092894249554245137838341752148363630492275132762312437835368356677935252181026265714073299821045458182012004023695687560027883441189335437018964907436838041538390871045359834055263333025708899692641494284239186207778266734026355058915362511095365270459491494656735890033943141698942633604097716425833801972884886928978013770198016459795749464346991512919996967554957247801789062656798629813767224744990274400090342600439180443019897111291605525994849397252671975637554713733768496166685215081464996193973165501290485808157126939722355346661845153284179086944686011923760720586690805623938602584740685474485716323082145903253746844230948104156611552431153881142216571623054519762436850114125234583383562536670861334913641432205744530819926408743905020074063854818416247415392704325020901231856051199088401216482662816128063746999871165106381219136442760428509680680513148794007636868176570054486283085067628316937203287781653693042312384698428575145104325625136709619318881270752677346111000275849740479762473775768552923070843246318266070731268501399996007920151318567177883068103564396138146206228813172907167211074333201074303116432272546878690533272862881099963843432884608202017852955791056607982980380088224650317037986763721202200864207824438135489230341913509720747277097767495195296560826019252208165294010298977400844739636620324429132572333932766009180797965256059376947510634392933164031146198792173604492038699018882749421502170919895490653632678126222313508747539474277978618559765272598915468116078729260552693639535320114853478208891045855601772997201741769157391419510434790241025168734736682866137454256183452814902078877889102220894746562612213148690350495375687176239428713507344008781277304094011135754020444160001954134517454426041849485009737780730297843308796044708555330845315985467990632966979643117004032381472518931110089967843622802593407483001358856559062141633774773853861557531557508088330450009424809707214844572250562606308046819653851890136268883180232769642339024005486728676799104974425628511661871295296722308700819792158272169203420735464745823122118778139184205507169731742349926981512435615343135281109527567524440894961286204416174765976135888750979791732191922587315153203911055572181600084980182825747585280625751867126135794736504115447644377906901731413189568581368426774278678994001062303175318839542178603628924324177036867517176404235238385367304286002523647048440296483191553911039568911756571613417093751049072767661423002677688725876571120890022453130537577154302962297192467662699667351085944349017884068828205553381860847012359311394885818902274392119224848864452799460863458725425918411287188644849646870916680514645277468918591302661307195583642289956003849038454097606709200765162288274584387783632364321262741928031250619725909232322751463645837825448669114607503866562495228734090453772249749272496153535613499038390374696167441366344642627224710418969139030958288747926066896676574323530321846648564628274989445072468459659103416884688695973994769353243382923191003941225963256469781165162084583591842521524278210708344648510412049199012801230789840375839416079184809592374286359997613513804646837337509256570794974950150330076418348831599945198146669745396875036634233006769047388855025782205743549891579822508602652700809364981652095728154424330517572587117956092685095639482775656688268523833193876788362811561173483116193681230413649207161737520539010482906182344888022701376235473625843142646813338086376376215362668309813048237775687161913429616784621447121702970019228110842752270117806398412974943112601357589084890411748493277378371664978510240678252986821084345281048321201024214347143351558141002420154777054014037875051262710752972826572307516321570474692731864636977562401682864741530811303183251862070139823650783066547638203622361989480638432148017284305751033172444553427169373448151486825266799196721082522726155080277035660169750194326675214033697096530512775295309294875089383339694698647303593769205883842800702575583183475907250568829124310905919635241318910607804464157326201720549936651320156511502730548103539955302628429174276512476578182281292090804378262749774651904076422516697032060435725313901897506020985496167448755731353656412808752669256957592018981442597143647169568189994457393758946710771216283003458096244872805173851853943855893666499527626857785933954163508837820196257479913450850178436943542117547070930651679217254110916570999311803126032525743008368703623473420458173848527712533266018522908140578685630120292785369941899172766745259824358282353645391002645656588364120034810057406582694883597077202287133287856661387053119822999272486154932178332676854147973575255333742304232237024758767718346974070005323966805774371566394415311296441823862800484581587158702362939438773828513733981516775327800416082812368351248271765710952641357987571101844292841065894615912034436514520250122723215345732090165066271510334399583329987791760221006751642203578946433174404668577878177034166186237021920384674534069946581294148427652184260648990679620466076259421542984651099909407019040516122448072820205053242844707103906928460564586901951206531751165133168111757269513905345848815918113490650852143573863748625749255077378715472348308989356281722457407737239375761789891758210949416388789148211437495109532577311686875926301781176168830030956014075819835116125256937060904522439287244927494809527197151184498620296761373650677160210418360370580037768704248154705043345828348241307872803709812139053985035608404041155494382012385365941271647127693009689167242188759756760374124287826303349140039762513535429087657234411306752992419546818057212380354559525449221493141284563141912053416565476103511317720885140385275123843339042757582196862169089887111401995466127314933273454668723762298736113823655476841730336417441688504255692697909416867677889330186932334198432715477242738601467553327195874618434036890979963962346133487146906059546212069312074590111649125534753100997824021121102567007062138203840345211684225022645039765744757519632791494728071341499237433163790883267467300662694053810161077362852719311028693702208209950711358833801989929333115468752512863117161314108482306753114427218857469359781335099369402160654133431705865621460323595724247940011533021260146452522863614025936391551947405620241046490776301468186215635972323056578204531414054143961753903531119965284740094950484958381785260764658377557882549165701057357924304032675211868443040998332137868625938180207476763490561274195284230463792546363403266790336983582768183655978329481072355692465792725889449681011979137814139711669259342277934477829511390284880756605734889984026699650426692728906241104009931873127065780890803604204657202189196437513323744414848603230203014717873673573581184633573374090454703285597243594016627145159289468779020233620748388577989906006389581833048115278447896815782265560263120883266031787786407038985757551827780611773276103504895833127725913652832595287108203606098449492703440661226066119834853131812142012781241452744605734002298504378488449428253109625512525326635384018028657236652237857292465524016040407151415740280163844257198121821787624892695538256148872255536351697743883736343950694705764573954258025179496005943228038556959048942498190273916715189980315978494645956821633198603502224163706890743717782622811950451508616737676883820981963354839950612992316250017475382394921199297860060534106720795832987803147709291733227549178124803122859750552228597257570659316249180785840868613937715889015218747996262594204424199059548441561262150174329309614094670924160316145801288352944517430709998385245752672971895965881290803723502196060234019871126591701603681919380258760474483492680001532806667583417960324038522538830668861413465481774920836258024607350528599612485756247756983874985031708839405202888188461742448798082242531672726246320767509876353584278526343341559248523813038126108730773962413890101115351280100523399762789594405070203809320687889004854686501836009188350221849841048185735424448546935710674031437818303466672879254632066670847982342285953052599539757035052378754877332771572730693468525194011602899805366752976486472722024770533544072719455868783539426816356557066005211328522696275765641340222557061677988155939772914020803832477117771458033075022107859359485831912338780665513902014495222840439709588791127505908160591190193622817352492907012562872481744088045631958587294678220136495581892760047481982117814557221516675080199343619770499371055153190537848180286845273805323103601722164768149885986192559986714624743415438787238616901384204129288169928275790894392424518806291065139968746193805580883647318936159822507156428945921405159006064716820649725537256773844384249034720064492587023996376787850906664867020607789751087221209900826603144193993815196746557327969866339058467807712443809279898080673244054731038373112863670176526657140997252445733690075437960993135305844865813980424085107810266493888421632991991827715081592107039369629756685797177425463328879155808396041801135221783750302354487584719049310188599518838772981612823561104888893734511845235920092297767811954728035411653407979111730653438471480896223513598061397614311821410341216363324709484474617841297074359123498409510702711503537500858671071133450474269504117837607371333840876795678212383985323161298856078313764219762860110050000770086619401233508337078655202090066477604278435710687839787467180680705170711164559924561226799835196120198354050750959498970306760985442393225393962141427122818490477070657731118925645153845901031110624263776294283438641181822079518248315069245806199027296361519052324122918410168908711044778568685361326436188957960443534854057271432587984221669984181369924602436660713538953205942402839367501176616459624819145412693101736503319007971268616132870802718638184985930534211158435332977437312057913292459570043191787988212778108207423015155270867644592553203381370116461725184614900345270763156764222862952414006872094333250509078445113169319892494168772866829643778279342379460390509984360051942640159617971880657409685639385524076843919570452781209026528442785664026537403662900558939425512936067744793063045264575444131266554792772927532094334456636572627537082372103501778718519491988396919813403241028172109093983651645662191059305461446207460242161658333971938442506357019439662449778532194400845610028438211860987455809601159187521518517301673652739866235030429377974466480722048174750226387563724094589800330845788810878974113396191528637674468475229559338573809367147622746510839442642237384564254598913175679631257960086468896474835603933933712821465688487177527213209131930493276905877499869773681118096910674909429001396980754470538917007166834873170372882940558476775939933645018920683188321446022869243064200888517759164059534513181659391589492410991624935576024353757492498924162163443113984138822609644401034174399959744452999409757509073910530435875290177157117619609789750495511711438221624105087756921418405813969236463224168189660297088656395362050483587476202722857201486816285484607073716605388071345873890870216355939659082220001445121373611599290274954697847629189154230049869111019865093539412991574661827631088664055378217718666670127661475878099156692104154706841103326563909063179425342555614896757827007042866653060764317393116476024754304240528592743302531506579665709861288292721272777990971555055656501390139053877089322558998425586717636681234131565255850601411274924234317565213656170430224041663477511632534888644494405792696310243853234305214364295949583198288583050347815322114004480490637211012251368270675726680415022968856130287608184884016432414492309876746752747626894601173998487770492048629344011469377295874459162225292504335811900122719476039402409792213946054917266656505557624271630874563385234202611955304410427207867965147188159590314838490888435665318829782275884869751817101473118971168054603634981304662066526789256565684307990724082758933001055544322074272341139393736969484024661917690068889864522653905585718475724284587066603187413456979903131876636179859764342460667277035183414803515046162074439642310497036158341323682983000356188167305943802350741371932463176703862161355447630061069435846904922988178997859081341996292684401648525447287172432718635676262489479050832733050678483710080433834837723176916036907229773842239860687808992319691883186276030112555833042537211052740414973694995160962742452105616282829380619746369953024847835172842064565735875991373813199136826703725240144155045130144781429539497910824152041421522174422910854846029528226611821558322473603752813976462170353252516280334386284797892096316292586676889993765861956900176969089428233838580789274916339727639225790078242221465909249905065496499009359516398071833198367194360227617656686528504379044943163349318173281623309711035835127105601067093927713663999140549221615225942587469667571970806065375432062037405767098283384653463234465666423526578428853561685440445798278908306654875559176202363096448274261011659822881272562984046413429102053972011715108301083956593710002581236247700486083700756110379588774314814675297092925591984919864932728735622279458627204982202396120758041865612973059454920343243315003013040590329160428368104495484614697672737329300268576662699051000880874016961550637418874281268886352145449376549886001831878508660395565343980377584041750425922503462515215618907306514295209818971518358084909624380178626221176506408806691682878571535658026141489357172160616924029318427254714786617733314547988727389980434989571976934725884266623935471812718203505884673815249096184742658913778375662527805611074561794722760421002759127070674363995052434510322272216272557874523758119692374868311038166114156922994783053326956597047272939425819153663076898493197229872827431026383744192490896470740024266119159458463606448758889873367043527513892666786405621606804767238463959463843214482255233695335813827834987033359124036013232911339272423897279480931260367940232004364784063795697688364917131954354821647865434253548822452495442478151207588188372633632902761082004932349555772671561336937350606369366873582173996714527251813568765242030979165477347317710389028786950200922141797498597553612094900105868819433945306125120038537026207452237810867387612208211855925368964918806274898502253491852447397539139782947147167476026704485748061134363102582559748716482784493568111177295650787323315157034119253485429631647531451020521092919997548359048745958155123625007633798812807668888812662327551942198418907804085779704393027497959445253888720691518557707147252045060096232044417852960686741296391263689939943260786295866952875013337309308236896929103282703719814917491136762200891430656037847234814820345810241525916687974574520823640839166215676970115704221254500482310964432110717758733931587292172757366890738307020166301474897752549956748385800142622839263524415590869319546916395097351031717213672656330240690948334980161475232963212870711250360825913302991267633827696069971559221211963806777589707825294225619419770042769992704438065697670946523535110250778378127646899934282122479695200840543861960696591198181173662962627897192877986462875492657316788211482194001294281256137727752346702345280914432894790852489725800904882097057596202135874867770085898881657023148814900091782886768394701222452120849518486759965708107143232490479697150839067770924643966322176722371236418585343850066704816035481517839667222989676798163587754295917404506003006564109734493738384634498506121261957379970159779729640436018608027305576544863088921187804044408400572504989891216052261793987304059549015178975332642741228959841048347785970551448403053353240626220499555396363295945606690099791907290832423021998781719359989532524785302505848070133803342146956987839278869565651754961552859610309303130174867986299913794984220731559807751627001590980436381214835014493281313633750801185594143126797868906713864359603045451729394468712637118101512835493800526971166601728110339732820465787693837137430885564273388920804863675978199306590400088660020569006061368129389851715320371224444590745837257269117219314874475398438854431205128568096270967043832724920917005918100350290108367746033886904843417643169744730530329972247700878054120435741148415990330488799239584823962172893378386184286680902483776469192184225144156809941566689119229775232630342505937701857823415830404347135516479142369338581771072787674882732700548514522843204431555145281266984042421397010630491457216556848807549067295805394972908815882387174527461118383252386046629515326618574395144723427676094120171622338001015141315123982577835575161691625717028102688675405076930195246675878057159046143704633362856325902420299925565837449684264466086556095757679011431585723863885830156871871247580117665354438091736984994868306521749527751608188114748417494175172669069705721270648637756787404529417749108840468668713194453496732845826230585415439853634935000968182937403879006628467855926693493091691471080947834061167638214161438916814482561860725852933506033648878434227102178780756596189750346905330016271082586336638732115221276543327952123316402037719227015753926254574473575644984851344142655867360663214848033956902513288295354166923748815199026618295356004794106366064003153876329081373775228716375868520591294151518232012173315949890769618101045800654322753531347002067857334825517890642592383800731512565348329250972826616518326427704582887297498765344507863683222176079658309149605716736509393694896719570323998747711014434248163136105002280646791074551091040639089957698631570693201562038846349680828577502976563096915954459139698834912671369829542302741410818011525737116836978832601251173410302201803098651146011602759830390618781206273107699987211246702474495624871585335500402889840584027831934004585524544842157345609822475243965006050734896161007388382672216820253063856503885291264945474432875340172585072049039662366259632341110988939801169129954084509408085061508765650183496629828596494081863748320339233595288257671859677688770859950282462973030902858075330014039014425781275834770070877253001696389695887330113836673249066442691329386931194681229058932185777384079812606916668893747300036466974167373191961222927206757919685211289494642851686845635130068860176489116621458704250912088851429224771481409788681777879300397712898411246606625724521212227154954024762008963868930642398942650368859156922508496831156402796212840384651359354011358517615807703445051046312503950875272788929474360148185753049749352469924952603234613417618399041496087362811614406672762513464578099020808174656030382877598706651137978613178057399417789478417917825594547641988111810967691618232589952207457270296833106580497779302827885892214927753474004418126629159853808889753941495145004599479671080009260865574123987005503592890718652505854507939596812991253818036482857390912843942943634437866339767371226152393530490653122374153076331457649856212476840960992111798737996065959305200584111279707742140103799301485612167812911630993531428424481374394078638888782380552953653461906777811420389024768746040154588928763925473517289385740312434322317060873400501853893316905056668818637105202541504633638927354089129855938804831721802615056753091677072696050492867179081510292451330596491964098797244875317538204347705978599035451020446685348302911425948851820970459157382459798601963283995086288956696412181016372027780841500118123468971282360681523553010117422057973559111966624106292291782241898664643369842021548753283115447547078252494501807224811600381423227654985920495008026939069795540819002517137822081459066160468117783335205979944437658069783828421656506615405410163810710983751375992515943613531872297526083007585875114781462708094375092667924435811488381677185679901448004562933214367160577963243279773098162347343767748812049886806790740051602941891110362272563285117346389007058742079411656841055216249854237857477469068019045643150783144139767235448053413431528921255190090446961518756080670746923028175513423225215038709296878708421269908663638820351952720103838014449870134264481917031607493810293339442800205521823006360371386699490397900874880808780440173068980286560829718495725489541321342802073900806419882277850797913212451994048554754440595676588588268040792733935495739181804573973132129697679696855286127885490176668392299464200394031844803009303479982825648208022811513057235827870456491784355578917584081480831649081687953728591236902750474510642771631550772688456600931624455829918773522442542118987198219771375080523016752237262202056718778382574064627273474371537928336384440083129918319102899417832097614979681240136528838558512110033764774893679618204442801233531465828611697154864514382304968902881711076704093585114340031483468211122015040668574883131293390954195959334977643835582927759160884210843641510853820592712417989949380281465387372408497871994634393305460411479615305311711346214427812550813254503641979266027477308370613830268308480579460486855528826551689754415731462445723441694178308849921719703816201774866401533176124319209118438977253330157272771680816493892914314718703245090209676370734223546083392803663526839996509740108411360475106118222832944066669732666355488291607464226759865031859666915530679386014260926363306659586521306097386757423109456992599861068634895351889189197975281037419531843650813128831181929623858850665872861162763899488765202327020951750143072955390994251618835786200308178782329577311354478000508879160211256736854380780747295634653981329522322435656394852263833465592680758769673825232835673706794739470527053862877530235898871921209873555500422771223492555078637615464393462735059482601894901924243989022281614254412850959172306486911710295297760895666780974484346120989382877277051497207304939187262423009168020070632330477616130930786742183874292216360294760495803017995817382906133888290238638326998082425178520287140840533660050567655372296130837317022367107540595621290224937679402411300831574088581137998965835240519057589508676309318240546992023619486706458124461141312375826786962575987225156130862691353682453167638137546278460439257976323630209660187191646970163836160317412970763472815849820190597365904627082660126579299430112781649027422274100270476724328499041213538559458892616856863803212966039852150051340823920202843937688365632417773167444006768161500534057798856889281243356101603239198905365713189041262508386919933149546114190079122603641718803571677260897252594276671892401634963368119409087452571634029180367603262418628848163076321821252509097234201281672845103176727225955473042067407106203710896648812544561128602232705016050995265225847761122145146303334991201931817273105862063389268036550836546617848067562250882594895358374157402805128561181499591441368501117412360166339892377410698802032136443160728400855954805123719554533288266823742996278485422256547582467055817110935011345731382832718275494808110966884990590521810155095143935492214277869598482583492453833260088884654208483454722165292205081002981600420845469519002425464665497439286974760607306953833052865238752771681343554302058676703518640916641973343108544105311492783685497300457517327697218390014434170979215501803770974754773340313317729899911693337601149672109121758270911920577851261738240798127606221035423670809914080278700626483522440509234270246244301969502953206954202939514260239340253702854308669712817817041728113650762555173994826152616753930004830403693186511286225584289488827172373374296772466643269397611146324799286455504570710202884009681097968702568479162485073657796777461012810229070000706962492381417390963904166055301305937837405225379873503062274804519370785013471467572028144741580682150975509336682978064871839399680787709578105806814459780386184250586662992066337929609336526477557820953401017176941748658960293314153606303439267443720554409497089310396877422700623270641219417852042240571649723313558076349956977599192858738720769687489343559706483769041293664705188372818770852567488423621159205670188230911843491881643085988399448835637580425021518746702801151486635851704851162948374025426518533508367158003841564932824186159393564983493785387733230927752836189726286892751841515386105977626334456954007211349538004067032246584453818988684392531379876673696527542369606842662468600054838413583284600325140233308755403849965603005778730753736410214625821608163935127177618867610729798850883207199229289433295325441979538386014979654010939933157718069525840740618533018659655361775921831153122256655208644596069844474642885274956305176545865685218693895615808154343844178193150551493623841904998534079511539250317202166981409507961875414603248036667890557448584861967328000091659872084399587828309632096170471846382913112505148755161761273633431389134599917353193349015243434663591902112884336305407331503587674539540199001059642142370613813250361466067795860641021244028016225200694482316535683527471262307687884513887962808451760090655150183247288915410196393678063493506162270841856657316235505022820414309789922613530168594597649031812995675424577202223928109754689592278267164614804528317120042945692672620739802301138792464128758050399443807121279277710092059791664698205818792924301085426043082196370393669809796720312250855119348155821903596147354310200970813632933428468279146497607356383305675406289264331202064549943821824130250301766269995383934546525322233799472305228050226224687219504546147686245331938244310189335942689073102084157366160411728792419825755471309818275241798645033923249827280646261362410563785734673647838241511296493894653506401102370034689033204324651842306399203477481678234395888272001308412794672755662199828780151430372222038680816033294293423559766136479346711641101485050881959301845039177448827589748094259927159230644086986115828637665347752708395086087026208421868436025566209135001152605202430109415639785507348894296409797357595072861779604818105865082415305168392856097072216130032499637893657615488284116371893234841448735155906020439678302859495820331694957017302391867388779291509247923588184341950896692865395710025462483538710671880947628733912794070775691262449564683491918556506581048067315669101130390520195302681349532088996337043179216610759361374987440626629184255789052249008219988979366588436809477626918900477030214116639898810906317434256077889550335112014204286137455690080547260723966212675525010324875359114447590985116514368388074955054415812272850860135127852701797058735018981703965100839252022588903493226385418513295190369669145696041080361090012580127635438531628879764587181882995582522652222633630697048740658032220266801950310043401322916383803884880252998937860501800152440773110655970079660849442545947015970196694459627813824432326366597296825888036695779143166516112231123465894044442519185639726083560319499066742221823300211092114124694909086632143746069052548510364352411520001716483085095851609173723188392033170390040473366426384328096279451238336358679377167378609789918755379487969804596143147458319895181208457044229698904914658555776428566102850870116120641519774040528277617302671030208405182309212843307880143745663283248381305267999583564387014862340863098589471488777926364589220361550318132321396226890269428538388981001002538221670708955342422454844413792801846340717717931844549245328253165051118062876555208601013327367762324918129648951765178878827791594044157368317793911984195132310158103407785639346794733680319940797510881730951501862461303199953278414627468122537046763591197982367817410204669425293444943683508964821816860858271884486694625436028671827899038644751060557913057260953521777245348865660429949025464518938738722921545696210368482201390423251065608514057433672508995590661634958782730090414705962167498787521517584073760482919067035750128112410636695025131394116298804188755773053069063106042372338888582712466734905629886140336618774254904121635120561049596250323929728812690087962891952343944867142789695649170948701516112913963673690138634371168245148558399497788483122190053227359321237716531203566685079879759859124339767488851634757083086394764542231937438243935944539159422659291764398694438249083409876480531359212717534439286295783421913207572818421818316260355155373763963082360842201834472054218790437759686857233842009436595956854850852774771145526981466122772984522899649717615894177072405781480334235197522994761433065326185623615868056644175402516177272939507555498989388421843249373817663729982326163434212477159205823800864483731452357034677218472614683518616297629399858605818158016572864833330035348571048068129649037838315738495793863553944295288097510762648894076217088688007982764891820494046501057262741264976002800068972298026924742713033214245045048488197300045874983854980732168231349688810948299947103694615606406382524838902572455684422270048627462545560486807080974775836730163745769240960969601850611912670893437070729437356488442047509237249193099434232718083691716335321802240214654439949002476119192860725362834600185029462934535945178846468168987096787482606555445184549453937491563039098282017093339300621960405223420492797794313659257954948266665719980488552400409452622317277814092423516032922202212297367646696323865550984382516248442545976410073633062284650445279496138655015315693643409128949491936884255364091215452803851868775296113125257524827573914130161757802399141612739447136388534220211794294062174351040895166821063382716270230155053759348863968450087546479840790636515606288351171553044959406142494380732012811020931869698868271927494827509508778151541470630785176627175963173745384048661588110146491720538168048856482733469982192843263639656902642311910614426841880042260113681359092359050760453646118506962624445208348930661408851561966729851883723719979711403904132848018071147390458987993181815605539537892095331551863611191251402314986851262849896803700836780238554141505421541230934473865395884045205408229398701468154630623667906931586974794608085115864971526007007199123704103776822398021269049019330666319668502490710657830935191867835584617209181616649820158464326924493467800751897635501329286052814638236607824326787254107982145408801062850142897254701911540728879272865914524070961201620717893010744931881766905681628936693636351335773920785394781121247617279503490717100173253422708462227337089763701154744271258744932508352769168752988993005766723472660618504921516831946985215509803253667558712285036641379872111473803238959951777454437818788886582395349000515108631217927449302218187693609743399100393070667748815936386152081176855684348060533792847945043972764349969453463507469080315001370528699634895849878425374331675486625405189858854464412050636476535126475191436675523372631669276487670736559508221515536927741124440848382677880953691177330314598905123730291397925390553463175663869561173989427835220304914928763021825402832421193720962406367260207668906045511109572620049224227834741442470278770197884889154217112298216324162011532264294650562309287697185483454273185814881292104846958961323181660395771680160998129868565357800123273477168596090746812623423747059207865261019159055718209440968645296125516487079392140588898889961937856898519013436167340878308252309716496302396174176741093699901682872310244437253874957353488458049821534419967222395601152666434328092017713722778848189542436094485522476147454377491452023723364296105283260539548101427113279899208482754763352890503833817749796089946461126873668017586546639800385973632590865020026549491381069913320552158510222454843488428103764588068303822570234164256426006229511644788152477174803288206708204434267501098489585126669436704696418069550746352442994063609989246732005492892665126039869839699192640793884077384241438992411430713982059900075731497450347310887538774963032529153468273133513490854509565706498698711099014292678241683914066953465604094192844279376008483978761459303946238429859712231171470765992354734007279948857360570538697668409833636345125491259943762612700957636563055491989519750235604996567840686911912130404613288403341065739571977465110549723455814939594906831556136727835526753002894603640684203038419324643853509626969539070089015750632571324532170059230205228539497504066577568890915139055080652013945957407409479752135087844002178326874039544192861331272100510761884293814363556206793790252653729673025124760566057097045896415992858234729446244239933167708668699512062904559623882822103488958028263421906451067686785081448638847815121518251125057176512780994909344596296514596440258300956685435911589172617691431715694371086967030678963749950588738347281361413816183881739087459743676438962312306357585300450381344391715292593099599733635581960128037772445145628925501637621221416799891256603258729425697370733538074626072706147895582457509860403296176764807078794132663635775217060028948203163831457403684018906643621759210247839540205862918319537044954393738392202030661902832380423639327029011993213103861892533159138549336737838069898588105583091774594810182548492869033156208590908670601859597072135533704906100803309602265498851522168382925784888433651804569101394422619740664100945132417671964004533239286104372544708194206825909392442368400552464598690354947070238149515512449076614591022391465043782200905886954935375676876689394451977677630266255357170804676516837503347832138815663378217193677948620217493389670254713352838681532136375791841518776285296404146020150499586847730402200096508258269346559726144598619293808761003222879830295086273041890583762060986671320340821810796126884512075826113630088118887254201441196710419751745555002668643278003220842676947163648710860731785395798851020646998975773934747277094552048425007718006387280888314157344287465333921726260832626388788538742903087736487720179130297253324235531081835253333263447941482971094810478481812262262038596071309666209913593861724658598081266551396072687839404568911337169316817285843394229473748525804379080296692137477881708022503191973731773246655732147325398899500512846184085879759623272576083462996511393999974021854733144004978344926686522780701540077075728084828814318022169357499974230118422330761665144664689646232682269690553867899589812093043952325239031379701442909730330104139474203580312727799238765569656196069495008908090054150395105101790973034077520527311552953118812871483001625720527189865376500207307929929806559363415081721327831588717613983351539142473821265545301964942920748663437976355890373975034578199670392225033300425164986149615733509027032668670925444607830299674961318638946602590042025148777390544745212660458170122157117308536188486607855942038801504230721134732260090001335910582990732354156652722723920045398643501724128052483541598393135366895921785281513782465605756458204711034150557573195110376134248742316464272740471930061351917414406878414400127136534257388471177722687012015642109344126504932461820308338930582225488839595591353312809491744800049133117042984797497655171615568962288742996623315075428635847502755447893008468270835175793801328754903464249055359732410483203182782665025013359122930142929647815437212093889153788668325600793427636738184605323379056800624638941897894029733685740291855739463221287155034642395520996985411162804584460658971192898038476562639979493738752510711653455407652779502568243175258432648984323470955957730594197196707212282717110728674417419716219575496314831177981641009145802487760308542995137443563444293020556274781270325515099150039483180889590041197259509227751503361499905305474008625505052352017096322783386563809935132484727951168108278980911109681664783065759663824859984082828518449991584528057157821324596033958804851444845531832830756751833582366123757987229121828412072354516027624683938599250934453708296491586424923202719401295496615772336588040464452612755451870375141075714375106515803742500702808451477561490565306946404881656775577303833244629540053854486635193088879273367982349446852454888224858471513470613757457099391896918240132772750792616660181199232321398167901416768931358000937592313953546706059449406262563355102452049810137480040598473303468558578272988338366260969258609354588781439518199464612342767458894977112334663520869997077251896348737085462967011963566369971489052657031527624610030002196121352746314757317945663457568020113493707222340341358931353950313484848363772606506059313917279608773549772917790669537736843826560140140940510738812202516683663367472526997894247145338119717289380459845182432013612384756891643432449417553496005186841855591451597950494830911717334479977786432275588105198993822805707317062730744045575130115912737868324334518708591453652079004884677004712938380028542614781071972195055875821640951363384859716452356962033646153377643877729245609245230675116257022668917414289083964356674755540892736746044326823534561728440134298370296074902679516449047330158592858365593371978517353412457754956723877433416388880437243297274057061702132953022722673692539284789264392663831333548309149402850781736305961765411856542963922374828518256293049206647780612152715401862507440497496712575184846665949704325994529361623835413630662533127567363495011426819023038710155147899997158975954753558547663629850904016381884215897137407623224987808747815155023533687863451218557952253109249334922103976824032405785232512745692501929619777809579544679860385665410509766295862999840106160528434457106279913488554046247375886327051729364098696152997020264735290483626669539199395071906715419663162152376605471233094858773424923463527946886497425443061616524432251807910130788317055274484135765166694987395497822632528948261587441875596201972585241229712001986120141829628139885475019886535977811055213741492889001982660688517396688300099740691024886678769180073158701442130801891397607842569129482145821083918528549530752580753362842157089251378596210715526341120674069122334674201881287196035332208911164672333504758775631789587468145923291974225590949213404475193695264779190689926119345315015703128577824111880251388177251007348248079196705768917568990557654783814542349500633921943472220672330052165683916505123162010844156991392012011207134902098569216522652218838645464707304314195596815542131240488603384114587324521398240544515558078547367580363610840075133284983362544471658921118296185180718902196712669680304154553980638184225666818317922290523735069303188091722317642169002994189770922358999702529526965755303410092489711084746176797625733568597456528663455897945099316959520038807339546317842589832448847604049209513143271723883643042639316006568438698800302945909901679678391391964281050902892173347643330695056068728730069297014362747337846371061428540729470884510549699693494490119822092005670286889737357369162202260453031024833367055756370128984598090998285986828936680883968232173222575193738221077873097295617069402946957449908558921982539530166007760395528845929543519806587269666197633927809597872194930917023872927029267813654943312852590428498086027677093625316174711684045020306284868888156204877548897513643174025266956804963759128007545159084524267799942392951548873426302755851681825448208832358378962429370753818630941541844794606101401291805624344307906044839755586693208264638199003378299430020546690713674743719843168071150753907840805617332681867708905435672998076256671830865467409376904876588854579375936461691026759704028269381271030772626481577424190515709474437322586092721305089552758088389239882402399636551741021426735278858758098698879287316860866825758930790856765467185322188023678999080826036354577188948859574808597987389114572031564655645060562832381336155683240128170499360444568856333442792246620196327722963464561334464477974987834649297008507071689047202175820433245778714984433024153243743236613213587631147902313580588295917370536613408422631778754454866600647043325703712903271675857487737187624263006835592531022139380315516242197647753011445974431392721118411740843029910472272126445374375642041140225586606270894218516094761282558430416589966552320061799241266178111913237692490441962087973825827688572748733009200387588626432361162824144599111489795188660695579373685136547596321947154072676042878392198123386386225932039078484989322187086078519021695621865014914070566845409345465120418683067459728047573012495191611103854779542319976391828812652268456596282218746641080704499107535936863114798482576241737474755919244146363080221917711372601645078751675122192965487289669396447573960620369457557096260750247612896927889585595959556628255820042387432583104183344412226458141516684432163258955779973268760581929143861880385448695853683411511227507901512889550168937673849547057418306185194088148289097235055583342135451518763050228934906297632984591005362556003055258207217140967647640106304394711169018346466690598368452360245339723793166600952407746704477103930418684530666177274577225079392987472294849137532722783679923691804470387075760592831634016745310607626239136614303348838333298349924726665810359148354890491776959017624112566904589769068098136338469125734811923740404215277113518194363230799257830275665571004502913541554202375287620717542658858064481727317326028295401954785907426315535116318818024979961501006196524991890476809291830934594654082312579200249494966269853593374104366389283872757821277985711659477650892088209691535626927448294005948553675703333480911207556673833882467437920570706480843065014757400316702129417918677980277034048925467948855992560905286983011023394516773244795900510093717444596748843534845411849352086233726009171429945616704097963659183768802908260208989554817637200930505538569659088305027521317033217340300409478379367202691080035354594204191826529136195060781389595841792877161445786279139922209082555135648428211872191799924706442623364069611505377767413408197804213551862737202169289572810556693694158195250105204383576871320868530116577025191183788052694602984771468248505305687300384639658745681415244705117763667166971117039611481579085648196933435692839484040246256705304283767122704143685783066776877182355063190819259547906793794790038759388006993366982337607002464129251000294361336451022978487503096461869472339316792348057133418484163669523954231780231776647407186289081478925590644769436757482547947087656426517442597680809842819777173960661978718438395421173898696710755737384076197231999681697417772799019961917103697758656307249476678475052577631433762259924771124526217152546778121752593102374928128812685328481352946541226837088874120594054981028668319309854279222251178009899401132303861682136260904085574396564517725854874977110998921586247675452710542672030293638505580063078705882712774918248714367552072610881362142104206962132367804065973246513591805441675004671782242925842470145323714896203856116026822095861686044506690453402049622181303372801546526984220814873655482460620567836892868649962286925584812766076887603646227127909119653645409109466832888264428444580045541601622184888436421789302854758955278405539335044801199867035813915515345772301940461522566932569727023909522858665443347338524844365552957276301484367485773394655911933494580596422574936567634548513955007248961787459055468093772526159397423984261187946164731038923697495077790655130679097187173617734537429342609595241905408948988932153070019139080864706506893989020815396895646321886082878949831668837229995788156343222135104773379635538440693147072776884792162169318116609771675583383230233076787124431980801188073719191891908152321030248799636113487483630593365152803622507453911094788425793647146826577888701076533464247011729256593291761180051764367966256942454134244614026860855735426311948075390251600017544200388639914126470476994717885164647210111889957328472145260963980359085307422655050915386912926680776104624100588646117800974600389998222324303931460168680784860506215876885726560521414611069638202017113759784869257907966129448144417908981161058783455172996569673100833725454005067410431199018234829212407030812214715493077191096431522137127671091953439174414285495863070835924340580362054021340697813110694682554615553803122897198152535255478248846006256419320834628685797530772222003883422095183569380672643605103154454127090651944189526309488555315522891038689494315638258723403852534233536583575772441928341288775874874641075372348983720812273156216086849739643828261390805142588857532700750097129134669920906351116350324159385738835644938670117768903422266700632586159891260837666639169515995989804022812087117839673388500844503264501833160736393412583878862022477553151918065873947632766845355248139217982412904441417756514925074120120153344383815437288860788373822184712470571493888443925234895434457888939658824392852300503896252583454129790836669469960504980988821483521184176409424827454163345317578629929773043844001018069990712258654877375851497197896044116245726356281188300311916457806683482134620145276917301867270413928675619503092423784838027967252634855157522449806104921734308967472336099592808041041619748586161907119878933917126777890009643418563938032890619574085197343457651582687877186790175728274759815883511121147024126592987692378976196481861667920627374057711994170417069666551653832599747914380869076691401977520764150208466026310066736458406242961379287712258501263564176717839008401370869522314161966497918754255365041734705617836805578763558337271094078969893028305506452640144989847156571325700331940314251039060670748080439802446017116819980917037533861591258478560307777762022832694302296438423851453974759697863427975556934132089552449051436846465054362922811159737053026149642555420722224544183463673727646407129260504691719472980000031578670155097800716117114576744523566179496938592048002502576718689051678938615855202631972971796101557471588169443341072227715809060510580772634822327627446875939039429666964583593631508791741919165877905424722983088261059069926092865979220423591989733290086697884693569706365174795464112595226328285811413798288543829408273104204063137429361759279574727448747911904343790575848396232932447371045113900312638756577716731749038426988055253831548157959697808705820327737412249015749369234818842157123091837909926236244863067765195154372771204845314449691643720724968016509136150580816560887262628949715261806101912216704984795756747384029198013866344208714032090588416740827869401503278417000720848702519137333128057651238486337151571628139762220735915326643847455514704882748787070891716600017885487449871989974554008634162268463206442596014394051822842604241468554199474440461506185572171449703793476495231884925673603578041554714718498406110650946583823675757538599075313539630049502869659719434032794627416528770826070968994699066747547251920373730007775368219220659841276462435899352207820355634581904066089040607319036475015244613938149781253340043178739913912472032397558686050063725434604651315521310200480490138750295473633053594798284541439397828980022899272527004463154959107111978333671738485589706657582797656695001498220091312799990652384354961648115310052718311744135551738405426568041358333774215325664021369627583382245271372114643821371236914533223834582799071873850407336371684815918099755789402933439390201234633065578877458162263685504044518186261783546167321417906173188215497749403733427939577199069606638555433315517384872820566256593980332799386311412810857275585096521968220323939469356629916056908491751356250263030076693024239014191183656815635689029794822560139758490788629014627583716838075235288153684690303709192858232427064583740377645131251294552620779776360112346260777536750280551101051329649865864883963114599109033098609886282194088469113451742166990506771232825777982489337267530871570325292825222366402880973302472315987183752213226696779132463889605250608112563931080483008234157141299544776881292431868179336093016954619121873096080147750213432263613475686954056587864005009914039178624240759500613031809057683572718652433769968625046290145099346654202051119545281376199888717829473713531069226313984086405158434703058676641770395077579527027166094898387998558777093560616357636344161521916338684980741878117173522437215990754084556290911539768383530537946488848459396019173597337961457444394096187911381694862898486546136404101282277519190882696642590587853282242505824374610271256960898030703533873170056896699429783224434915867578560611733247463765753933865927364951043476032953583923216407486195499166733257690755919941627653230633837110213177835062343857151745735359533243188161356020092451410562575593026695280636515922541789485177009879791960624739037085503961137933868281428834962977304366113845414647035508178028591923893214500183105170009455144440442781731230960304780941835194285393002545841143470543496076702912739836879142466088079031812756030045355818722723222187815830050062296810124905752763774604055891644573506668355619741146282886860290289487899167157832958448563514191315287233785827805872107833794505441484631452025360279039293555208409791633577623186039975211822237602977956872717657883241823769260075601949953530222598154764250584788694989683213364439440759461687757391962562585424710332510042348155605610056533718190201926525048224441079417391226374262587524181651082248699782853877479295152840217850644903735373479392352446868270669361016655065761005303822995288577173360377770784219009549051431067659991428585009095543445487597326493579233365760326997105802385229531614080563250621701146085565895832405015571923819819293248645458035017940029881580188164512113265589805219237674856184708510234723106767484387635123668829950997532814600969237322409472917058656161069551944483652946975474360848280820958260537072788094047847197433902165269509493250653689170351199056047995359521030388456076604029413267730281071112962035482149744295550176281406736462751492954960816981591956715136792471763232398655477099733656911329217271152298533929479630590241727794140620340844816381244628889217124166280790061146606333223925185010620128286692170539053594098286764079547810152442703283447308341835429492532796363417419197014049095747938712038293743506038012906092193169365615288803719161377064261918255324214209017950840273882381000133291306055209385166667689386847093104721644094208462322169917704992194372202209979277342239890554291662804404404825578778504705903524830893404010942818846668712959582435222381643721696595209347973220264939034206874312601158469654310930361343910919602156679586968790373804312365843718744260846176132566249849025635551024616061198307967193966697351814583400966395947056141818865747846380307291282358971226607221190110585845125341687155955643102048828349801168192083951627966432357115966181892776168907214640695036969707786959244380152737413551083918878873726310355080711582945002416144746215593568919872589088644468892437651409198814357996980039238275808049849701411392737302607417021491660646726705733742549933990984549776421374432887179960556167919806734687001526207030872124292219801119770259305322118426670171156821094202000877280942541493594282619767821868977752033347193164987600555653745595579906820958304072164669265215822017814387785295956561318694808291376872110250730585906352641075967501899705824000709402603036632515353458330276788493368143432598443076758738214626903752607775102004966250807372810196903395882156222676562329155705744850003888192532853651722409413887585733386770263762412487730289198550531599147012811748607924575691719068100488113481539672811464829938557437099685104014209046753814183654159726537568011082950192563088581026003432796716338596309078038381835727169613476852666371627244566184501628890450782721413297311518976461630190022064740304646231664317795011195490341294974450945646385558275821436335993120678970807506543721497767658445012507238504414842990057669550072824926936262260615271847807601085857692216584051392358060379073649382300892017240163389286231171462308036101638598392772065483547019757025138021295762131169723558350712390490781384044111231140213735892222858612803723298479719128700658471148353007569120469377974682443097942184580161342312417242166478274191631734546671371982594764262221023086606497682362285009153627282980849248884124132181447678799934911717765383510923180748865645312176352603743772188691174251649288239236147387902557341318269730311906496510580560950714157405695274925815250841335437193811345693029491081484541885820664791259376180142797109169208478151342266246793748869645150549023470810485975979032348374479968576100423670470014729144666425908060319751336581140533849488405494180570134842333593460512654090284416555561367025810234849984006838679560779123561412969050008421154586707398597794540140954531837401119790852299454206721269174042942924697248710373510573589126942356061099353100322110850597268239121440395868897823057067657126037591722635612745796679220266035423609568075014592302508035016169375063166604902721323368584775687994968995394314094403112569726035487763338784137930750578674612182605780503947920606329709771591296427382878597144740311532738715821415711271774769244816779385883992741835657510617532006957270207270160815383717139773964269467522925610439522981290708142052904033069363643433543941703214195786524987073238208882020324207987649137334909932506459174506086727199004701391195054630020393655891508177150575716543664670190804481876848411287227324946564023598693708560905733170372593621467344332531431744900081557523246983014368942138327294919281508793202953789459437269905075687288096501480239036350363022657745901596094919588051937551989854520396235239974982682488905946084770166483521641823345266615605933694176709759740215927685003149792151321340102111960119318247091932334047371529763478070065377396742134219895377456817663275753491447042802223485571312350134643764078359426967747702880034213547756956243834592112442991671741329975149286323130406436603811947361155464412649882458397662414961181816564772995048679579449817713139528987643303373052644059367869342745546708685180002956047192262671174738594072703395786564293783737845454546403896295492817410636056965222452874971277103866538540608201992753502201692925433439141954655806341243735662965478890626594878896279550290220669281895229960890579926657917267030391641536964720560801403869371239375685705811135121397845921026109380942561883103454238624279825138203468525419334701076244637300755897251668014752163585621781546366500163888281077805020571378118395694746236859953982476530281371582934343421294197290532137412866048092474443496285501548111321249411396765005428202349583204579289941345326765411479734357572438667505718360651215851211784825093457456953420668053034842916337051287489368504020164112614955296982239205735167526631111717585079013574610676242865446787148156575064814294559424377711359497965159797717890148820509229646252632386785777766783248046739114474223303403466791930219266067766518764410164044253811354146260001902930228952301889179201551452367548075166060830455379352942706951535207049704969892322256934147028209982467001193513032490704663444113816762713226400428300232730258049185344435434267986572440350462977926422841719029235054974131583849347561925976661951203085287880217659210487606408746575991454269660980441913636583704149314507792131491684491651334361293408301959156706287317973181660807948172089326120304714437423310495133340061484461295013966227829404529853323001477884024605462333617507663969489451520171877334413936232223149747878112137851148760125911165138716393824906890951249518957673059739879992288616960988243453609810354822610674418365456991202642579975045427172417746735455441030628042824551217929537118135728884279364072838238523080073725985780070649932978831474525455167882935364567344518883199139276020376134750383899401491475407487991863134642699225767060128197870086225614561838027136392703052977278181004954887879174302355304319669695712996264040345673112602479923561564074871085828560191329972799937928384096322648697550276354558151418100824518206452284313846250485692419037776452287519149990990102740355946280007676646703565191780712887670867665671723262205769355206027943913764490557367713262432625142144248674503897809875701963376561957910844390266946309167309905423732844906169849308774652102856285058251330557507052750223042743302620755236647289203073296550443866272006253234820556207441210389529024660758225808815387086431434549463480682550445464581451225131886316554982296419277794890256215520315556458736901723647041900178435403421888287934977206558713350991847045719695565962216664589804107871459786819107702158018814194775458804791688187477133143554454139172039740635918048049500691368819863114399181068729564590483795887554927909212875058667308671648276673193011215241437720935797943860362704813604210901677053578641785618145492723693470820353669215220522186160071843292556455765660805233276753600371027050232906895439520434577757336177615724311773114396847235504978573977903755100738063492398376854371874765291194705593789007163257574282371346096070725483716272173686492550458483396644392027384772551109909316610640504857290169993985834654110843295402902570836854030299951526392870303725029247377235420564355976240237635240401876695618122596625258362418511402332233382188271292498180980713988634683413921668210908835325145923335270776478498200644675579388992984219166331770741157046599406073432663967890349517353565922582722550810258743063838971158954407671944621450763195788455639192098595024382836822597410932675481673764919264723290050355004784491187475909656053544297809963929878171469951720894107932429889351152786493720762997895560067060618221774100561090040091257773532711031071490179884155374286280917514875267131067274880498382151734250617665574657921744654725367832656154890181995984711440554257899717040942438538312515220029301789026438021333270478246890942606908919647582438824914413253334397310641945594578452271726404249815165933549550887388785170093275593163955201345708117245987785303633886222584673631901879963427949271029636230786987435520746329506974515785820224565067344830524196614551977437449648001909165403007983436372250079035623363025329810353090058095909740563076121363897689614491490771707653827409750237593466995924273652126164434290205064740587562425191587669804009987304609090471382963317766575501948433841809100593144618290911643177702282211730981185478230350668772462997128116178435941941283501695963615093057913679212457406250125669277740510674500020594452688921713063299826928832249094430794710114457944867460257982534038623079099072710989943206538457626538603744255189114458232284193001239359407281045256026316479058112812782393669855930990272920599547028428869675688876781944100168379217446567904739967282634967286330087553008821059315466879284671338201770347244325522838112475749630121146113102018467125384342242001451291762595951696854533305205061849818409398061268076580356127624177603350854145145542009216138304420839176918311345420759392117272583842708940022677750921550383069773674577537863381230088907470625259317644934348592554086164160959223426822183871189561980169292748756906414956708634169587983378239469164959446697979709849646035845714743620960833493745486638477842559037163084361530797060565627853242679548608081465820238004331751108410187366712609244648133655488523915674216220377259895606559305347468371192048660408943414245287443579386909334089126755805676552287208300232398361465296105737274247757994495941782194148443273283523482593709620488015187915377418449012699492790814299197620411994027114183906174483493983589729709701622044207995716904628944388135059897890628819885815720590184493621441140617574989707156139236049200700564158199521658744833119801121291317009787861600136994823751011092127612012279572401478049220386045935521700321288586063664127970821357372067985951366900343978699056920672441008487836122881989916608727679551775604964562612059903879068831510623044403148272995232999081970827213093770179529477581057877577694508999557397688322367077135410386469996050721428170662055982826688381887298265982153548857221525628231715908260687219478645293921863435686671022331303814492754535449675970401670403447402509331837345710306164621548923124478463140145658664028105236464071102589553117807618874322214778297458273972153116298454048688646899509378628747116254079590892273935152605453983771390812255545020638672160268440068541560778090054003942276749720834350801200599439109109110661379665436573480048468030545268386374295790378684767051386408742066260113672070653722541473679380743846934531477048578133651123615858365400314192910878318147866054924072148006188830765109354690481694595122357693560006586192213398088756285501630507967070603250651147730722925256197355411736622060321775257577790582464860412544904592017699878577242357456455026434280522590230150785938834969262309097545934067152371756046971763239151738856416129424847008351657829940599433482776427410898398656434164126566189316853253417966388850710460735369562285275092334601034525338485982967678373380088966621825604968232160146666710724676564531852264151043600568924291089599674145598927352333695115867009199251907901587866664588592525654608235307861787408045002973566262324899921032567012733984104665044580574167065925351526644590166722545309627044030355667857708050626611465115114298957438614448374147385210602952575807753993841760246040411762973380635830617376054133238858344921365483905648679412048459145742254740637909247258207251155215873519723984139489945645518500014381024046617989215404073268219685940268467997566412664981271833363642457141594913563700443282229908584923468146462784065651034184518888890823877093571552682587555565008142360281272484595386281133397208582698509015206027959256701319550715454995944441607576310835709194260359934815876633113057978139763533424449516287402169891363338778712415651290746933745700009427515317085842242286688325776404159009504690440273074978427444024802191195370242720689256381099572422069152958258562904011938988857003521636822648107150204490520313513874353392684020063981692546194212123105061055949874580875712575703032775359757998658211718310625142697681997604251124498240345687935420624903462764612440440742841621253470396678651057436401005100835760358616038808896258452182108963411032936731512774847023528266511213933609239469025099775512123666508406823364349817445029766786087874356581710549566422328463449894403724327539480074761178587653777070377697809659410138351569846619187605358728958442402348338401785178620826715135822337360038360162021532537125839828067527384483481419289536327160800794134896005124532701301109093967074705327534455477510624441045124789107139830145215210363228169613584882975924122340072461147883210596698606692958036192232871120235728903967798598876585764596026747519692310341193656083282362907421099884741702487185161159992724686157160603814118137829796661537477965994714447427043603192808340472304077446097448276588091857271219286380523951119186798765582513770176953225651919389729452785641346947418526801967384449922408738118538172457001481929134562781656341613456417897220162243556184215178480508116442852474680092091304041786423261594357898337693285968723639626521068752054914445423236540004935179922198672044768964368104264971958303683376113855202615527633582228245496795385089510445712232434236086524065912518634549960446668220450771659889217093433171804607591148592221549168312912389541175647516873883705001476265306611034020853597655314139240113226627600399840700268271568863140076758248817685206920808353596869729517658173135095094591712095061505197579000592426365171887706857329837656073980188496879554483619194965831601240129775126829156456579588525260913162906959422165165616083021954119551853206932937342939342905304040422821795787922499084533159039120646302436268142473856323543621083026978667920812442944062995112527126038654022032631929803778661427425627756277896652279082359247898860077864378121373262387475882684240416268078098062333106899518048671066663316278472024155046183441105851950890435600733007265701642061757549117476649950541505995196445040993087840197011759551434718885082876987312811474704505869785850631231909797780904390700352005278457037140613503320545906393289446644187804239462211274209899005217174928492600132341991938740141110518699069371817281656506958651478150456341299989603175133845311422105592160528416202183507534129127493040362768370545140642480719106305122166941144756789943913185533253008115143117854498557252715093801269948516372697739227307335877221893078108195035287542434754585491948708429451372403089528261758030163720037813708180722211217448692351493523618174729400296376183454372192680102528931370139762992962090566066456960374590335432387599151920349549458595546999370286246885307004885748334612557740944546560585211198315820862444053726520687544115115299111522410320043521978689461758449772279954459105545834990613559933535386344369854918708130187371372209589706313790595287723033984058282937330430212404311803173242085451520957033842503175719380269905265610981054358671673689138239743762262046389322884165660917604364737317975886533924108735147895397689717381172306693105545012656546325448693496520538788092433053981180423664131832926057687298018793127867914451667422293362912270388185322845493485011757641878380895743599673972600553471978643466935614398003190148316718898270038370600263089733576201490758165500088920978743462121375707796929148896595990331148544467513677033564932772656828858664077932321095467136524462286680403744355069971939896290179141453280013239448261674799887668839521396472979285895310935522482229723838852463296520529240496412405722021682082606122127281347921608684528059546054878643175420150923883413667478019204391863508327316135728706766558685683159745569354669854145408945901284360548231157665764934056970165201791493438966997743807808586828497619848936249354595898349656143560054931710262580538208182202093368085531871295553034486933682560724247277343335295392070456588779473617108961477343874794458449467125825925789691582700645405046660012232561032747406513338898678277184136721167245836644479560557216989303982210758393615526928517391694825532228398310923011538814433997736740827973091397844152201628722798733108496656633518633133220514721374742717356439340790824972867237905002588409944783708278570623267779311520941141402225870627145722166453795516462069084023793728510961500600519277018442174205486933454244990982355088881918801587076857048846195269624315698293210258796888334785378935709924661905819673446539682600493525836616999013166885934570832169355195760333388272098354949509259689391758170706798463151405631780177228857991978609662775449868460579523979708931196308232495573068157285338397070560220247472927415626883561703475740732943068997588984503831390411097670577629016051791952771599697360560946977914911734379151484844945677879153215757873285266340189330493289130451920072651737624230624113164757913266175254331866393567073673606496675499260757546855844593227770932304213715161313603113044737922892193674349888286175761015934248168479350337786486718881495127020671321151180975191548463718801683486542395839648830568672682516421417872769425578434901899864263369701097393246647768291455814085294968921414849257553060493739840128045237414293336756560250219353511372763010180415794213084542848594901862798072659413676083825913620689259639282600149477452984411863614196983961894778986302725381304430124055367539666995304747553220915991706690797662194045527455438754064851284889622228148012557901642850859223422495095894958651075159735858205212385951244451510719359163978595874748513113583963600125196918698747755597078657765858245119891136429503328388315215613711802760623639540410342359032758257100796393865737060089342689382066993315544617813961307902977242588039655939175301459365553735504196125722303265206128038110466973104259629619429549496617418066646269680509905177067780691049094783923050566066085718318906954904949409286145251812273249095513945058752059185369114895054667686754734494960931351784375451917673204823162164183706290336696902501935476113394847217235893705712200486501405957466876912343536677458301536015171300504669724961835533842391588128992373337924370193019001523434227860223825348708313477244203725294996599631535540665753247240416341555138014296487680272637089465101183451130514069144563127502347059237347351791790788877264260997226583422234673555123595976657064452492138278444091688373817567050274603602211426013342517387109207032776140136932447444289729170468246132673414403997762042263401087788263276734172025753747656633642772576454365811447774409856991259924588758844286091046122851574165273457592134103680197724469404806842721160064231618587679470799228316970989895465237703859933468617513051786125550962251764075730144848085162531898881108043887231583424662569795904614955699521215574132427766042724716442080475582040451196867527325790556483576652981443701800155926191791489403600524152450814056625741037164921364889536287941195946766593865586824790351490145619339564599418031243103352248193934347219246044299853299638250765753624919756550009955585388317121309060325648534051229921561745779648148432944296529681661288030252624406617018031732166101987839841736131194856431728163153625936300305549540137613050179331182133039451541990274104824506460831353887076712208643942412763644923652063977919806873864004342891304334671366851575011241542587961788393457162938858612080731037042743439922731893587711294691145261252149409044700749930259328147403653739059601557053294376134632276436661946805439687479211509140758942965624723582752946618196653749163770247180520520358165866233337160847672637997373125688138327671348293193086221514414960211843860838235318593394723411330943574312368724051244257282903861093921783153124017703433871050939183948100804006665142688713375282316491781905840838836842750427171352453092839126817332031959952250606712981382428075184678631952985894046228922093321271345774248172094070048259432714761728085393207958774587682758376564126284374340001492124381029244803361004489351152056722988695120410015914499519435335192297729006823753801764661329511974451104762375791758921184320273603627939081786886595837245698051158756217221348606192797581587024136812608494034115923286164827352367899291316040699481705779432163742440319459152257671577061693053667008400137649364080353585144296873703708853453887555609432438442965829867505559779323032611542604419537113544820680362673445902223036583815862271128287812960074301949697042835434262234055657142196242112498163417086214748191911338436720184788965002095406370211819569986743297079320997322324917320741467320408963617383242865458605468125075413104804140436062209576916520794678244283719390925613518157266401290625035283124789821742979987892812004601066733132710655486582992847157279135705407472000166218339480818274218246283317532551526017132145758234430869921864344044344665584583457283779299036780715278267752367108023288720767121824537508529792125730383724207928234068013553722203679587179873400141710142751162385817053735976216071557708749773811309409734140567146728128779169627489767610005492691575600330030680577821243731161704144662421995929815754991151086105140789668966255243277832202539744409119547249632857358275347436704978582198382537422239950814493310641486593696884234640904537425167182287584407940569818011558594055290076025129557869016298861119585961234791974661942366918276135467024157179595159297648725769473193809727991791999696589256615198383804005434098263364787434689343316907782019917391124717673144012488836103935387052031789478211278005947845420204713904454501793817478429486484166018426211761781376864365407820728700276451526595004485917979622614005297608868127235313714745194204963255671790922649619303418050195809276726356273163846380192471951640285927966366787711806257178347452373762585541916482338965241005326870338428240560993553753298890872932278331654629487770482273130716179092447507642006402316263654993267516779903816877184130434183917234372615822379443292090135019382413164713992425452343912666768582954052300213996958331479558633868039719455490867523627461285734196073175379994897215684062013644480084979846546519064918725869852137240196285804412416230942942177382413978754512814865650323429726495558518173216921496095586822080333111876078177605516495764825925604590358849513524673045329848877764842547223045002118795059624315937791576155705627141818898259828906104931419339332672751149451212115253346768850302193396856021931664851847925643051463745990681712112870369375464422372654697446228215477039301784114133961507249964174495343133223185260596251754861743935058805220251572914865983402637670979378512525709701794741930065665310097340799165928782993115121475813677360655281961991207210207735551160811962718899906782670461860102706743423737296656660890762519603087480493583370603070765155181938348991935597644027940885928025979001767685015473839489065183502816106872872222299342094432455721908759708683561078130604177007927675202108435777976735514526318141744079622233970709990769606206676195084038716588103215806369967946313854807270020965872519984010788143744629024456737710217586647625239391555441201260801460434300455036100089059820092179048981128520192706987488356378484136259628582820881701886904916112749760647498995296821202850291840392077999478045966063318525821705257244412168736232213399988929856383263399516103089328661171608234742404739456405319253781737928744591784653815108046164541370960689504166276245025853069187599676757764108796116568228199685374643929189939670819174798787848228029712108150486105450942131971004370836976566989675292633130556670694727958499212772891407768553978409498865391024461213844356401562827959664526261856452627330905648579943443583898980686547969758797297168020950344122164425376741185008550667033702279053235669257532298657658732040371647008344081998582251424299365467325092963127706126123657552463368779752828547450481273678986570509767081150266732472370306205777146810671467149127389739887290544684174911147160936375315218260955837546740427372763873711176550839651916275899121559944609782219232159315890601366833678364562561824215560433925633606498969469327106108219080823598347877654504626482203214523165206993467098239768299919864565794183452476813336670839577147173556414628779359936207129376635303821978560613564950367030454063143622645037429304800377933165697396352144128388340429534537152320081263447036242737207497687899838945934029743715943555282716270756062474266239256612997518640282965664987786902498383667247418855324449917629507041133134999691687502187032018837600671609486272574357101391172662081264025321551909069881466014559120890119471666302909693641081622230346951583343533273738525275229876907040763092170358843393216715092369900611747235604751844797104101899903387774347612907321824876051935879018777528448328356158708604902740430316124211813655779770204266610494754302476081171587358179461151507073322991974215020638881072745761240972959005183466020547868935357339754927730500196728384022349074533156374270849612000330673019146304146913858267705419624736130853972069014201035431864261615259415082214187852391958647451654846021608553015242468904376509090653486010162490876133441906171583742576169833945312608044071612618523087854645671292411558205264829548330829748815310890301141867091856458274727820088431029639020111252685365782804877405398913354290554551939929972362042176795515559322996616061131972543866018038806970068018825290847634187676637475381864874049399910077002938258929248502524552689295370859283823808705099006534043978703995717731326060646111243126584658685940899261120352899970841805750571161194336308412828257636501064312181153585369819674947749634307725027068970079497408202564838091156052742337481670676536774552885284953426358078028188870843254426084967570361785092596381956284387325625602540009857087915029691120098955813022196383206462013093290851677477288413572066689348723834500488311755368269248503866089238983682503895730341307733942164354294738755698186555124970598840139815300325817264937419064617491417792474805808928998853002268695701193116620534943612527957755773029626935257352531848583592771468136825871042585681871317924626475712811067859463896909961371133816917143553535996936980354151999387903090065666197811680179975406940215421569999947107230542985211670234280047575253710025530597861803548900589571440844867283327590877157708428973430587212357985309500360915102645871551884743925715829339190484572795160019157354761106188714232799398378645970336353297513959040609692479220615951686520915328456420932048670178911767068937142260378719069902300245420163213005015584263125810616569005936715958317620864515850298078287000291784153827542808742785874518075578192733419862943907376345284222379035355241722843090345334934675080982546764759656310615663338161181746582744763986816087823902808944787252209258221971841823199442808245456256727546997783949125861928593288152240855328526231509402218781813308079960994548374212950139684992934345136949391777886728006099366096830069932359019801912378619211765123088213090003001055332736184441934093166099463417285992208924036488598818077465556504786335962277634820517941375255643355363570935329950909323217047058640799044584320418794101456104016181647817989051120022535462057514910630025807024143934471395967590482020348794350113208117182730918523055347777319334062490723194408151601675218966837026063514190796403983842679500301858453862504072933941856679181060683167144145306680303883642503715402664951275665212384454827837691001433124873388790825341432755562666758993230892566827804971244879397699813554065526233473304463664314573984907297070049154516013039591338107797390301854922436492324871608446087795291810600672251953548778294526306275624016940245327221179435245608666044308827650185741227449199883137980494360409241970464229640609416657173455130568891695440340718114083450831245572948177281325012709879434952986258137526585325439428247118920517838340640074098421815215507980037563070896744121078365135807204226953234980118132783422878726991642300933245092758114863651017872827400094534646240354694754287740182079573724259045264602537102982175284121596403940214064881377754067307529832655952429302719714981720371716145509723434664557986437794828919214930019776493824932354626064818782267383468696272061655991475523356778039707327039497198730283419686730596076268882513381038719575247311100448050373172440488972037507859302204136381396458051564498219396239442868044591049488833449803603357238004681550715151298763388149603131182301462055284762446882350248885231784106895313070360332905974896696536731942126550268317960066261234465327804843445781021564281800263875162168990031093091763615375536770068735805472136780504830643596079289383349526999940609358381827795084898461160534734704519472177139369455162776249633483103174902604708920181827152415290621302708240356287969450126788160386613076231740098459896803100596570318967189190768305450382460542647702261834851415899552261799222176241305604420247790401412688927904629093925489438388180125312577583702646266101341224932733772354671983170522829140550151171786416276572829000078259563497214433504560131860536625453714051840147632799535771830946786205449589684042302883565452602035237417861544088190427132320973787873803542466235404933777084505388370149214758257567505417850674331561400606212197464103582991946300524429269689922742466813237593039122757164547921655729492943639501244265751833243239539640523445140726702920461351112073575778911659963872639471329762608519569035216612753115703696804856232897030120080388590078667387460457795189066801594944779057453191404620493612786359721917884273670639567588846323738558313618504949071346354466491130961901366223169159047727102393258529305765482049401999615098400232660038213776512201721751405153533019698555760378512240530772534501765561874704193247434643014986039661261475557779881797341888007333333760863125312544779193318922039168819485410363985030836435748647794561390244037632491158959123187728184708065144233220412148050145329770192320170070779629432292023346879437059347890924982422032754028983543507088864253480741341018075801860964463529223124127939859410408309133003330376905388864683153594707807862601075628567051975777235069787184818077803356093976786244141380682152216859075145448575592873600023471882676758829195738971337817385912058168213766301153382596224432969586463565846892127986860764252907928826466218575217852877095075199310293387994837647332250919284330548099758299785525627770062402725206278037346370290965943759944682491795071090542368816762197301460864412216633223611610568585426187449557849934778047597250571806922250308086808021676795137289490304586885890739851721512179810012070822011109856203165335676872836643417638080643377260562298739514874040272913275199636868956829700260988113814329991683858348301526873279554382560330160693219041284960545565356132843506973199519718483422999831871218232588388216705411811476279002318707451608117914685833562759760303208442788736248928224388391677262419729713937550431378390904735305148661118950793192563708739853216188435296109390299550309783319433781611815633836547686723820305977257340928136441897653066585821464642008552442441036345907368813466849691181927511403019743359707633985580023160212992863526167108674612674898301525152606920877689485296245740743146981935257193926270619083742101901780679489952749526937235846788732485907057728510764630643755544865222778365929608506317442952028059461061315056145205817407321419225196705290013994517991588436949388514742173895000340313611032773811259323372565055407374813898575226600745919317589273593552738278064472172808278689859629449955287125435406048967206176247439072045854851341201988640194302940599109229746919633567697598217285371944895985084507763170923636191374918598299397343118196697590189463300401282839530938723744568033495408429288323325651308310515207590387102902808594905780738785122748570588623848138773177798929049209819453365917758533521676568206253579261697580018227126526257818486912009627609585995625321844159926862038499357134557801574615713823164240066770504243552548725627336168079499347492679275771519257392310575304690611730137262373383406797546507930955400925235527885671706336778848836303413204352755845965913656894645297331798676817801264731724425939890314824964050496713796798319088937628093653505781438522739874669472695154724233986732912713905533968654092817332988789272536638709005143890171325811869024857253698500689328525270334230163885623280825121657594314797426144247932612685518626380889206359224134255833474902007383218874810593346570202597749820947053706214243085323370403019593067038162373396134956185404135057004095042808024523315897867798897617175506970958466399751518564046853069804938418706261289007826912545058999334840946242851857183426374437807638284502338231409970937458098592798707953063071736807376075645548660732103200946280083800972383474192259587999062079473532339647322097957245126254394233104263980487789724780529005274164228972609987799789964663117540213679769107748897373653434101232376452943943302681232816309147151923539005857349959352483515343818739342041343266548111558786264187102313351236003474338461334280236748733880298661102917526480472311420040254964721998600694926756413598953316702145320640543922166061866213573617086435277596819763586442758751092481484004649561340254608061392987485003417499075341784736150319471325094139276299281369324469663973643739763208150230362802965536556778165860093116385525763517200245714408738352013247986335040250650441293585065035483788180754229532628975641410587178761631862517861168462263214547133569509785855598080505900741034568366342505144645397934124081177663721407526196158131712861335546747167160817302735587079823461165279303095049588957292203948151560077766042023510886547424212324013760669093996147416608511539606968798598597706537395065100554077025221447171817774531449950081099833165960143966941230610950652686908740414978727938501008395423189538719403349694992223357859769625300765729681833638134613410378497842771082085468910154670573154501422157995686970375381915382921018010017753540827053324268758027357936784018220502140484223265428490979056101299019343542097865800994880662748412283005262996420905884414059438485902558827925301539800643264586873882593292688228755568458905113669498532928466954153779807271947461947539388769643006179930353172218624464342415544552276138555853791972922285253539241741627149838140932439136626826096715817963976452067769931216579535127571646336345787986062004573716640392178896696917681650914566079531520111030189716463426952425727157681236331340606068494969755381144452721217690037291528528922534751461156586044908183044332650917462604590849068992675648589004746755057016133123189208391733517548566312802289029932762638365148337462749291967168795371308929212129901507395954396990805562266894550222329315074206556188648790120198552290052630372990511922271289148362952676681680639234817692284281876884160039256270539086788820887892700134874797949216517863086780812379638888138918821184508472887415336603109571620865870089322367200666560024400405661728478524956704233584024394743425355187097963227728696704935559611528982007956953959106235989491125240468181209934084239746244924298786842809787417759936254170880750348421294860518701007277895937189715147455767579545968253148106966597458750660718377810338830624855494110385089663605221410887384407386502938153415631955773364597303263502332295072847412013373744374679727934919077484961030542325820175341706505877880113029248179383242470803752985304088698562913616062346518939943893743053764925825007337114219854623724693500265179158243245797918893013879135587857394316170645128994550363860300772601646950576233747799514851948661815869841665401071611431799310870591063845678158897534772893761140079618567988245265149305961786122129719974313920679209303411112187374817188164266757052277377573835122702681161927362058233217021768742560045687731500119630609479078999859507351285805668009325726147520644813342529787481687175215881793885922767161568261666864685263636379112177403904194693144281093235159266027824672924345202626599261390867412131640294029910616598196459426489428024954528873809427620070077204221337506055804758192362066420630996508251027149922442312516883463172049251652986232339503738893966857928987572880500637055709481447536205841484184375734617198687374693677165010611719621320985545774407148848545009955950639705151798740594997918948163004468950624171910397700107944976770392936811876159737859971244295189037713824202813963290182775142947541454182755835157105290998514143836963757179431836941038693156700248801360227576208632664551433934678894506937749945044911297444354872609291307643243020780961308181250917370971003331659941938304144041425516004593803845944436889867409067422418560843474330697064415575928100045426376101483001156324679316159816706263114480740757737231712233244949518778052361315020415037309941966522631790745484104707209801913196748506299330365489156475560245453515231091552942017742369383215511686095488379877640575752328207527949550089183595864726947680644931045937209239705553735667266877503974754389847788158942674260781349530614650445816972591188804590213215215060372298159722401416204899303179578471765877772836276465197845102503899273084351241215281310371137473936364049212945479624231863602186972422277796823589942228490441594608800235784197839273472099944580480038250374828046501500869766225018657563380337055289355347469570885451999680438689254685050721011833195292234031183466110563863920128196020262759579491691901115618732780535494793068241651265619952136837184118217249475034765596359485742343891198475250995672812781214530411701883062322831010120147496390202944206566921772396294101065829826632913034856871871025610854857584020188489096322720521277081345490171135751623851918988815578886930007118093969590887304907862316646760087828836318424927283517754855377089432064221096084975982270865353997116528016881993198372520938229732957406063912471840891785594909768094370992521766921664438474063024382621968330771891865421504742930669129523476903791403122979109377785153617669588700821044633888902409390558367199164435399917549974237805256955638967104206755932098082139023746192401716852070678022563121592316760346711634156801464270320804321893506929847842729299178860453597826214096587268699351763231721716753132356427169865397247173955333004491461844027895338114736294934819870238991081034907152927857566947758582213921618565985538080429923901004579853332091573089023139822917488764691681300308871143428699237730579860020878335565409930848609023786686583187337031528103508679107780459695268570627417136719239791418649632815099540017969029855447534690227141882580085472692502784623128273184810382999287332620805045218466974442448181133502262000262385945223181834677187185811615325351485108186702393190939166785582604636981729807329240274409349377975088963101469961348433015259388546371998289317882174053419931196233978068039654817869851080978087032166089416813041777807914973664098728551096652964582070227131012843308074690098143326701097252473117097717534035031639378008458081139335720327992401301162410340752678766833244895481066423520353858707790791842824684241609504471934932401846700841065393148516643921779446968016822410704339228568677490549552568517463122937221482420829328797359660252030934279061849572259399209261757705764344019665388817831424559754958676856827932234120096527367298776290550050064270382003198231461383654427683916201020392328812303572633206876858206411091160360000447434498103397827981106063718902206056187591302400592246073845570663870013947462675952030849141968634644075015083558920223893274061769613416721136207623024055723483201596012807820450897928144711391392222211639551421180553057529943761773831391773333272463611106081556078196074699721764859201112565678228592032915273337526805831424922252282557623516304691234385925100471441263694536572809887136731739606436992684431968884944589134977588257641658096322323856775238005413403866974593015437193015835898694114521442526912533770115708234282233553798850285621594307515198902635683683354918620250447222133634998600597216853526770141865722177944298837194513446502197539402968927418331938456227694241620415846218342415794739154771084445455509651307689169326670712524054000713517459359429639572139927872118864478530070864304365025358640907966150330174410456597848252531610604560646020034074149758017599831974665332646616887890943015040117115829209364190755132627672946681756619741441623557563827386493158880096581585217971652014065471928321932907607299914245726088397891837334619441722578665730738141677088590729487896878154814413033427169207543708436966210230242650998160924714166735815862533546871239109404368983828553957537154133833926864284142422318215752336993578061602338817362427228580583543344670084784568199647870950639620836328328957320522711172865408697127184458561664331002073982627588061329049501031746507583283414134784993604767573649380287903474158092057196835413761988344395743236062464536376515265451653166370004495559425283661178609258689307216327068279103851748716823427543017766837879404081933937339315131583059627016982433245715317917806110210293828367495505514286022593954713870244801541356962895669614016687094945144264047906222247670956761234202248200063010477355661260101124317052851673088473935127217772799980446784911996371829054805502031058172016096393673222505074726152852162346643306319512648128199605547602029664142229673191790287877506138361754607112062985046126720621579169177889833043341639948766930023480581906468610785172316278755568046032303580260654795821430236784191403082629421323961259079150859848168603134622604028356384971339141842515957439532419386430110485669161242630860618402232742006207151858514568127169600251727067958424807478429201860240846062069307724151106052786693955021163300247217894498855962944947544019421799327408280190842975920751645030569143251585491241866476611886027213587216255339330749864533551970434126455817387866186296837453938314928444476549883542686171593654399968411783248486299812302966249640931207735796176921386040079371357309125887955017846752363049780247320386888573137209143286712678942302956161030185037536335968012796124044868930733565642130662957921775434759879361115956216819400354674666241966678388330865440233687395992699700637453916075633410538468095289174216259628065645439444974677561951813534491884965178657276381343606325734334935841919158605605470998698740899917205662456614839197017851043353928315476518197178795248088812497905586044867365675043429489913895843660059967093706066368810705456074890358251543446241432292465883167509637941754153426940596201256180153698774393989207696932582076125325816091913638322052825742149859677148722548473902779488161654411757748482094725265236659699451582488801596234698582550937274980926104126545852947352320679503066660391478295014906757011539130583006638294431826070874192818758389054997128022668125062468819707551207534970806551439161508523607636950797402559478375846802773280240106536825052745651542433205836090587474077523467334492426522508427632855746439835033892840963211453665708999797821275647634542710807933389180874668338878107205614254406390210972353307999846529090813116980438146740028668292174842654290520416686487973105535302798153723353314018706192101540875080424859128419886239550302757991148335471367702411385789339022933957785517245607019803300650847693256875500665250114648434196749976391222576479268996353742804264398959280084785622130785694815420531045965821920152809092638750154255247122256706566807568011028137718839831764207855067744610498596996629829069538472535917085201578818264316840541365040851298820570164617179829045273637321307116768258855804107616473516292588173567499707924852291127728941300922005363416773199550189098361620065637779491886151172868629674946508458753745589891411027765301452568730240886153536110347633857347535505035791747727421695467757895631807795483162054749661077891246582763478411533071815860512029141124534483452879072206473064907024075832959902048111573292423673153547390101166360384030314483812130175018700539237113986158046597492750392375560593640931630276656550584010903143444398582342995744235142478866384645362481111158407455571813383214155865031004386181086484658949961845476885878813518079809079769861523018060012549623375752500266543369910329460585883123962652903785500976060998296791810083674449017857847058071168173320179758909426115236459589753777247421781091083566438548678284689490461236965593484112984990922782342381707719909701262225829840193125453435016517901627474768802954309222380034641107289466978122697336971298331603968898562635760129586429618814794571396136744362595357832621225965652317147915590746157646354947179993431180395840219672221629782552483049505327039960671988010863971045155161061941453583311306682046707292052372152005259055623039059933635263847790413153091270116642895067831970123510730886556954022224045870345416604990702026757691512204217895417797008709570577726014507341507207254007119827309457960416270302614272576268491250251171658159643473175470080085516242754662141862965036124402168772084119298819323651649530553348607793584310375452448941063142611655822242559653684727064346730185000406959390671275853739298803817089208226787946009976683046133886465986433414458780432044367949401774611501510671611948178945179235674517666061017813707578453534999255206905521509574624951788971556663257780402941699636992757161340221424479024411528317328207319056471809124280735683436348363431299412053958711214771906961842730215796296501377029404021320403067882773957995855496761624404300651693091697284445020112722298427709008247408875566142674409831974655012908939936744810815981815500984984011592644450968675293257706283563043960349081311453683477428928248259852940184643049482976579320436580844203059991375298315833733555190957052871318822863762977681740346515075307940650189379407099811232655059489734934774963936529703761994083474792008381892742134581285777777449474400553336346713402954943333259448390957411189327565524374653570109792212491472666280085524056266425438440054014511083081732395387952688748217436524021445159609887922242804231661271385702935999273366712262596038562613016265539210268717024900264774769223966768756504143095264447522046612186504519481575455040868075269387401222330256125332989369861940563643521175024916378229518765111752468115006728579683902668584477491631241916481925019149977770528973595071685195554225945803734408069166295679812869116131067688339622251762208937802739169723116038497004464797621456953641948806393746646210481620401671186721456034572227176684597112856228631107752175617900728340237628699405464169314601609784983436760821762144496040524220150615929342098707390433707981593842033018686903278235781212290247172707026366647603353906197130640625393449896640133382809886786824567526299519063481508016157264740941047518410184193918683686432513407417261961179684506065828462923090095488645324899504430696496373900569010640876361526503083815897265796293639917881213701616665331869575860496222466288405998365515708803132740015282175869091558705310544920055584202794914058232898652419411824250075588542940020202179667933062814222041410248389022082189971920995388255613628150045667318156032444511206068055833393085343598042489627047729191210919283732874684569945314105631251839796698809065974095448605254655409118071490248839196614677267614338419804491248301208576365087808794812826812994898616207527129205712237633961045760167530907794989543043489130053493157710225527101015054485966322521007513304394743276596311136558494964267082111113339048187238712018700487893453804425901409891623482391268898364927760705239126894719643811927949677421674566591925845298511818132392286612829659142833601751978104957243512108662162635801551662277887204643593765569735444881386143420006333292460000697824136675191061639142727898729893403267729415485718220784966287467785123285439696539263817183756858905713170940686813795481681346280035836872934080465258661308434751066911765521660626196790681900917322078269551599938495539906023314785141327429145767161315503965716970356298395075143844157415907382982325294045964318870163533695156481965026195171883677426778230204772629839760374937726534810621017909916780964469111959788507815298214632699594584700410883636857221635187002387285865048303151830082493024774918327150475146594791412705200663581039380472168430611268708250112680618984641528223481157330480749818327277100561182719187414713976964333623316320480792445528820161106079156110188926831606285688567179581193635028629444894050703553211121383414863862071384289381457758763594033973888897338518859622900806858821277275026683685926922308646463654748311521004945343791970743879350506220933162084167780327290654151358710279553442456856563635818316701675523421376979860270946787540407802393810227327098155658733198123722828595719472662826767586167814641022867209754444493994906164791511344980398695768537133991712945297826491203082586142267996414935537779086244666972251444064126749534653320877910447460572147258429479522042715122262851278507029987689705434551140375133904736168270677389684345783883228866350386050156201601745546099348629946968118662281570285331212609995625083253231189012640722601360989685940866650525242253323568141485809159236376630708360374124066102072664652513589000917848512646846554704454850279512233775779606450925429669447579516964886455286259367803295355018204548818454364493834380303786001668420261517808508121285162148432220554131346438268824126795672431032654897746845210892088072073912002548706224003414314207819935942437059154614408481726623198889956831219409635829514016552457628125461723086345902050060862739468356675569266599902232758603450148412805054410884148674259399137990376953021535695444916026266858728926471843613146976138174394451021505939748441284007792115347442677315302101722742623297975259734794307754958110117547844435282320485485553992829868584065478447931981596983506570410258914313856987341771887060120995240398596798752549334806487839611932899037788000961408801059777463947120868450211413967076334421343003608558091530241687110112775270716451179306026932186444043139495998781159902291271266731850031420104975050923499508882357812301578439936176363034204822350923172115070392556190731090616606663212101916740419318136996830138011847307889223783254432196912575091978600441579044046341124070766584473480756808662694683339593771424190758777015781069188317026055408426221192492906237310520679417919555273714288495487408665397278804054583455122897287060258353931532441261919304839962869428822633204022311908153146314589788334117120338968795891626308060783108729640748461793749409787463155314541935154148721861381749470949792648447252838857321373343339940420035530605848487436345413820124373794438997182058962472021082571172244178808159471717320825559252063853951858753452389376377220380895160040782233213051878919149384191510541471597441570969175802869601877705210091242845340877245840756410065599545876018417203781746901213328037564259701469846234290994898916719531008223061723712854857485520905348451053731819012845060822065021153683834150985575113169349682980234336930089243397563123721769387788634905488836451656485013599306209875696305963992417207277997816617953823829201519009977178862119505866653068487303184245213514690351115805924461951006414324940618448044132207967604802327102282117252391589022009653268835216873074109105288893674564323085800569036103228877869438687294149445760807188452574570533749977278713827144711806047416577612004899169034472146823542365961394893885291366693453889927938870221674403490300190037091655481002624252730601162456994361961417879967711606438385591454008319439913526576229427945313093614978877613851236670938988195847919255846864563397404876473502212540030248270271166579196001630341040660615640744140078023962617412899628402632307110297819511430415563020225749110494772090825448330526833883482499669243827627042215742713899288966332616824971419664560671304964329574074403924713628843770346667997422448721041129218440758661079923029272087434940832447351560636931192980858895738276199212845783899963697445449579702802348533108601894036778625834155539603064358814754970088493115348353668387644272377160955828843300626649746145413691152138200548772200495331931500522492583227215865886243944474330169294355027311580194767564989598927994091552063821131812711913263067931884165357446658739156817752115408805867344849948601213151203384637201939554071235484844113574266533054053104260494501729203652335247958745598900663658571243419140516498007405931310487863334543023163850277899500474066522733732136630765966424890295551170872051511272877392586297762526322591237046506681292388967419179540313512631332933029425823733987995790590859981330123216348585443360051743223650591218420968157512216229384095414564013980333691021064873406686589694390347077709179442202523105773203407567773034804130682125749119837182740260913726086003500574976194553713278427738541876418928327067719248378870242123147592265938664005824430612945892436017327824266567786415340784966555850051510209523404842999657500323726449804648732839275475330960128511118900626178969561932848851472345553451358802346619163287369696421869186045121821537356695538429160698169884963471793245527768724339821739343617511343396092150462627291236922897549285773075302343803096718269612349884226460890168119474001512105303841819445997424760406788801485691023457502698372270670362232654269628772779398159006059149315010129307823273048619966743755568548303383304395963708385562029995300784482931294048072906086852134647202736818836910369271506021824287871043325744347333200628093582527368395714015298901823764779844613941379539010096738743973288598699913889885598777710041835703324008816580282956357381672687390568290123220405296497871984140223147911155316028960563675390617176672112014147356141747543954302464396378994189835746250261358592437534866967924704449547092149050027582723608187003274647836621114171565020403228902094380962235160683745371062274700482377035044594433746962242930211308221114945347307593484230408423515375918276186119565302657151711131983782143671843408175146832537244216566536304785183045922659549642885633250226915515778722516729111751702246298451244937819925470951598666036760699288109876077899868516502098604020574644359064059064480867309823681566820337548896780537616562838303787880654445338323819550323555748561159050798209880104144987399854877477179566549896857627092967134884111973254388045702912565762113880699440414366935923620613679423692452941385506915020249125240571109190065387445971905204810919484067508514064732403820081034802958677114649323080480744094584803001130330700665956636481852767695160969103103538556923732474354322423581058312445163379604092897833013409856705314044295885957660232220291719215752942966875462690169245485385494545690687492986134307685619393795535740417469685372043290562745789986346046153606062785216529852413519150328384245210001083003036540179015436617275691973311775330103743721211643306893227540220146687636876087738292039228477214072384235991826480394750641491054000552026824583288269749093433297540590099472883016696919484311656683075132171445608128871296398916983804450610365271367414228719223440795644958681318751747183345801695933229848878706915398598532384282938744780778202155866846088500208280699722617922816092873860385681293351416893959363665421746966832642155624890387115078819812275281981941018317203760718635765547511567747960039356830193057016554252903604066852557457736799090870242738073310533898956638526535477002061197634052563145264728662820647277608266727108744683631972650727879871085491470425414063136837915979829740270792457828966476128354802679327624876701078198478921618820855072530293738495224947450818579286944493641410840431988428539020253056968510620716581276613024420124231261687645409764618123848148487052980963546771422216704720646309071285595843350985571894063628785236575958131512764563780207677529229873926893646610779987041659817662026804139505456839633349426423643081477622635341356833565305007847405024049860470073052869664523324057310082200995203310514369361148661604243454691939110909366767462180547735219480883403858104212801232663262726988877503152529784994105622387123080564198154059525719832355851230494024199000266681403536952315351925615563938635489167835072586661329325317725629266676449558495202930827183969002402556993488215043265550222121847506878252969269871358413144694010792576261373361377120158600467049092631829606386354925343458055934174249369521936609136106806892472232868370995571849344260994107687376423756031437145354578754455722883714962840500738222712593398908943858464693981293373386845741106334178525774051342508781100663558531599727207623892663683004989538179134294869848032497588482608212814087687177761100553926236451113720456720356651320637795832669827946132704028361526891850206123508051746428375629144429950660314183395053016881603567524415767240046046205060618303932810712294137834321493173547688826599158885534953434293296537655225126587021498191073995922204391249030035980639637740979887304824741374606939061148957796935272273146387030908239210018914041673135664503739039458293881776580375437854581158872375715304014953612493829641082050918726274250350024894730218505016461441389571769606370804792219265531658666007833772143340455074311862235723198018335202376619591655614425454956416487447281981216046853208404652361449883942568738751805160637481229137692886662670595342713258172716170278581499000811426930995703405244277936240785531367074693611561919085892273539357904801475345299621005280061010593437316424726831190821359850422375012147004603571915799647198980091527607950627918288198550382994996455766666532573508841282767477878832590297820718751033031638201413846039169360835367548919686920141550133709045989829898335701318826857570540911251690589349811914607520256818416864954577207146668872650016043608219237573941620168449009721253050861287205944262186149549841158622094729343932783639648217513383771355139029741554062722976833652181628030640354775864218000906909568846744310230225022585308451904260372279058547975630812091647921197661736789077474423885677650216589615017732268297037265926163200914426623223565348793138360523067256246923993714078245629822857099788993757521965937089692081143151694298144317826406733887391974369989195152353042176309548004177858424631080139788709535748951317935718961140739282343845957467690502609482567202026765812567230499322521404621191165724322014287083025288441817111093521594404827818259400896287857871066507376771877685431644728144408273170813112650025460198359976736979418961825455379595518542150736545462396911126085473514622603072224970244783572438170002611188728007584288581696920657878452364618515146756366067499627687666599269352262261616489613675167305406978380973607232566926039882282153976981557527334999612808986421841639886168018996376318613546369859246851574300561299094312129712172945074668672852776831680949826458871125060122441648862793296117630949726543708917595279265358738668489687088722393967989791705263378058479228020791822145775513455538402129744957461126069199526564422677913421788750500016129056228132483617165082640404600990957927680563295975825063197304935478776430988809039822436310257484972454566838918974637278471099058956507275791089664689548288719310918728337689292057073177568993982763864447497559344049541740531830384411785927849173443057913256724067574669169451080024122512753781218594996050953271452645933904842737026668443021420206361807705837248018255933239658865197521752484755032535207995111018575171680150251886513926089657682121662058961843121997609882863087142747338288228442107793033180635849451415116777534025882665012862559225904961713378608563443011007195715005061956513698883912940213022178380510220700623563828837810113878700779416851578540681512843330259053322986643434828681764009943942752491301231655805059528100275671501629130814681437140571400138283544797768760517445265939486604759985897154895774640014921146703451488967254223828082320358914101813030473207112780619539275223097918276629345217163610343785943595239306609105885488664989151949098227943023139950816033771340974919374176596401577378410851016008059016511587101907052872581116337778174441696111814940894936446116850309574174046737044463927320536501756290893700029207042219496528438750144805354938779555685655602659905259175344676159126778569965687335839932911327423309007072993362308123652540663696048569187035711577768872909721325560791720308725575038850452497738973232950643221235860694747976307725840395229143019969147521184052424309501038305207859849391432043522060117032095189400536962546166840306576795187119316823417128886359029742678805122363075040239972994533423702053013799770597072966292749187672853631430070805843881419766832462553172611571177010460949154321777230301201694947847726570418519376922550262484409660046432672352449814916715630943516537026353143963374138862605981535164936503330977981388015449801890554566731485755406528163227986364323509878347002470922616425425535247007775941317232099980378764108812522241330391517367281250343088838625877420515206816391404278587332733081202407333848139150497396399686822752030132618176783236150451494454159862492899073626600596413415521959140650951963493486050828531857005912073982387510834441145992029202142054415616478646079203075863998364897954413571703518379201193293930354582519108968943050097363826586819778728806916915378504328584869553194287477937176414927400462299329835221096687518780927357013334971913268163234582798390068034898569233326640819004401701293381804495172320120709958916095891687889879866214769099364700581794100623398917522389588545182331685795127873930699735014488610216181156129628797241754849724525728051784596117006114501641407986543642981519413487385966384005636605209030403369169543170026769327481916097826871993348570304757909366008548819308747083484493668383443441177325626480491121149468753553068299149942139890862985962088860055537481823825222091608530766119430213154180513089183298399303568254533286517512244227424535932862021786338731918460717807734294826365071730609547752059490190951657788005108405441746189479669973927681044485177263494762641171827416889862330638522639599180187793928555104295820296731466599217237104544615163402542202966758313088797726510561430687693164605662339820902071429743675825400788317989259997886690003071704373923872066356610679051932403689846963443121314294225239559037567176118563796541419571702773080693023370182098578484108377111060867541569779047129625354627197039930188125859657256340102789089231725824280637898501939061398729008684204469563428042426411036118410234650933153898542476786239464712970051899211410194443768812948223531617742339529493620939795444708567457873059311081275768386175968313836461908303734623179808150485994326449503529503783306357927334368743348230645754242929241058971894560487216414960005114913668601820232218530494427236192623689090199223002884627354643166570245841633165994643511346763313406447317629231223377559853859635703648532973100824601682037263397690071262627111540518294111942883518796449707601947721196796933794276761150989950007661792922460683844468574069799580280648796160612375879608425582429937389810290682703540003597277460609785972374747183832226768989650353463576675726342679757023646014614029916302849627246190120845515180737688204834034711859808490234753814027132796563455072816991809707131105216152778306743233828143466320541988579373488011138520223266392595977196736470666069661182030466560553309498957346942215514029565081865708520759524920952636063640571280945996281763988486997052357676819091376877672007918214618199464304153165335558138652433473212493521834314750662696848152059794189528553487606285447237703555866840815049708521673742071606996278974011329918788547760959387124192239545058881554592069570920068334163184198896713440234293519119336531335369403272805348542174360142926684430794161371759210051538827501341385153184521723494872794456916517730351490080766417675956649079006589748263381195522339299689639872519720851856693724351786948959300587019585632506094292740983975767133024429266274035345329795318155163835149476253914083581225747919158219312656436545599160612648664712520903450118775194934894271500558792462050037373794771396376796631668928998516880316037132361267356703799584736539728523570521698388890640270136013915920807428088622805120006718266727947840193529624641638273705185171345601071689705626864663648950890456471427132702164781301254820294852119382762375528525700971428761236190464722876416623574660145095412979119530488332513306167133494001132666276560361236646346595680466650119723284640451567231479584739609674753474886402807211803738349456441601190627869783575675858994661501040406364552824804058444663900059106089925308643972309775752204874427128873557667076698984534532007648444771877341991060234306461498069490816129506928535859475301641215413206402028264154969261748088863075091924018462719162255312831099692635381677187749884991886163095443579813939254806332290275835489364327715903798256261801865805929803082464523853046594891684720287487872443439372177106644298163626104079183150696230609651867347334326147119302373796247229064514301926491400107871554287218445953659786086410792449307897544259775759841401290680805993801580815011245459340061035419913446161487493508942618973465040507868175712296568109240930415283133001069423469894397884094557369661704421318151051554198386952886008837533717350304836083019060340336694558039547791623454354259146834726934369379794070381212587323351512861107992640868435067154418286631555613200831750707738758435141925209675054859071923334374004762645134623358585018526470671803479602431765955503632163152179176254720029341206439298084323739568817159725283532547762931933421552895081164363240597310528762594305475204365780364974913593240044355957571831425943488079635493273778450982612143418521505203626922006293606781913811388327810982079460023229823106379309353530972937696053177495777620237848772826668848017227851540510952744979346361381713334256120072577245951824462354258207872433436403009340857136434019441627385878155540563025498356426445255488153103374186901651918654973666267321066589896614265520365471792989745631055552613445663121815731818859492376686558605917968204581274613848050478203486017140494678955415097961922228670683240147253768790396693133140389624393457017721413905837859511027450504838757013143139022863789564730405850412844242949382892251726134717306700272528682916234140067788904594267666632470887701748935580781893096629385722659562020148779699538972516673037921271947130731892999702410536482147042222301267866092463599453719762309759723711711209096219939377105512069759124071329508655856258292443942976639990379135739056610881952908825807230813518314723928635368059033623956924763089529597587142114743846017282211241537336208090634388179738868595650688588897817641082406882107791163793824431879252733375449743462219775041453451019175681508191646753377095334469033732799643873373911391151010416216607345686625927320744310334545889608091328679185644787184710776456183413737875616189763176955187092714288929586269041063536088867837109024443422783213504779087231663969803111470970661646607555312818936219100735645056228515407805530098617319830334900209725695652822895649666197616205170331609860933776081784733882609752238235539755114469061311732143876163329130993814210224382691530285344623780852554602115733671200731455581273512187713158988650264599641487840219144193005997113334180654777093506051606349053124925450115148987864851590819417406353657093810195573023615382168826197250716881988700975069461350066658011333249525822946499189205810773818421190862442730630749496574442697691770006850646196849045154898239479736354349911805162179446186437767247898152061864444061569469655142748254272320399720742015879188913717760493430256038513959950312542312076056273080424522683800501473205211939011851086641645630393709313842757366907019269715097305565339526984642553246472054420323718689483240415284223835283092826633791021063531348895650093964495401200511484817966514058108554721044952369335172423909003085720039527848034737980555199583621948095771298351372999058938895177794963410113015037142849919644611258354569215008739912832330363460003120903338333101888885463790175046800558464904749213747925474635145702131948098685161108661455356062224241847781591024020620021184276285920697961312538328934301990459102210050396030108544812216836834047117026018720591200878108397979084009665395868392480578044954174599693899146941463881786918064209892523094364368285657437551593455919390235330604240863769537345690642248626621989811271229977979124644398497290272516941909289712173632909316134407348519912035694470084105006978980096605176155934984029276532533495283452626438152256565444851394257274877122311083915406604976728656397543138810681592679149065968921877548541595636384238621741453969246346103907114440688017821607249976957133049919854349566134659128723598837928184113127393461606394468171300297787165604670654327906222769271813891818972317417908280344026445912378505767251250322903705193282903740425693575104141275233341828685486756015252764534597225476760812586256146340102930560511292096295407809353131886974417438574208497943828591021256916473735987757210272959258013942843786384853928591786481466998272502188375675931171598718186762519128150862123938493990047903858449974347214213516001353790345275270616411607953103570442567734686358303364992700066575538728389180401903951038213267027727844451149667535913299427521664739052478121455658182107494722373627532349608101682261521261367686480031622100505165964490727314834596763471057413064428963891000056829164466803182771970625505513443505798859364979492534656165787388164943892316674828427401330214838504175397661123638909429971537908950646277841335425203375073064088107153805382940447683910010675544351836858910143832667421150671235929086149402161796253027086023608284741594585427976529175619032126114413863698406776205362168990755915551077542841774364170476484806485695492358809017988378753996027981241680175886233766503423823646484480066347709400447764326097571345978781661105024687091454086063990043864223887638098122019530523889817032845194761388547439883512073976659739486239015051554258023423243427282184874272651320862107344054903361458338529605618532163740117317236817911713302138007046969616762459343686795944734471907707325150213597749848185161118817472971289080584431575240548330249810803467440165671589362936566658992993123109515338047806530391627269525968599096306276595611785229664051834259791684294301666495743409951861361445265276551749437209498472930882363614875826201901516352106174313373823487024291478137206238733736920624761533940906533533726410813408284770563477322010403806936663313207308190155100068444129579860595718307421098314533285813476041315105602998436221048620199506009355939425493833693687080227353546304469954154410269535200808047341440838202167411056742423305289210456947224004645617906505064228252293322171140987094326857094564122720355687632893764416293817405004820555886027143500393882733893635428049243596947990773188706397065941057268904481882551447943361885677532301188163668377895823194110804574819581818036591323292588257466207935408497423328303588777940894346855771952392781179696313190226616647926778042049265475581939640239742186394325272762062678803686651214460088834865369837534554535842845895471855389159015375345071916160389501839202690544483628078767579073388320964664468305704820995945471120814303392167345858166131378520226231617631546356380533854487854738880426972197247278919858437736450303105490461555547652797253480228025046840169326221868901681862606722759086390644692357677476839542881078186823823699989116899442271991391434342982072694523268581827293165350580101579137919043609631084839870383793222586330335732065570763168576031044019266567565936804187744314101127168125479140202301203285155932648205380321404769704370298773098669014191917891699670195197858262526049943177482873240528711165753229740454431103437891946037837548415765940864966453848482079873946007874155366370116333040739179028429418403433364217417500038441462566868882177836817494673175575304152100574536296355983416977570521432149016399766953885395423829665766107959156064671090074630041687676844704544077187991732094949612854715689250222807466229079312338092730316351665514870905795297358691789729921594476980346492456347521373706564442159367277840790470543258537080812802368411214974430768746798108014190561636784885841198195961116460548698986976830359595247028069014315118152354754664281955904190170538445934600947986182988082654260155662602070406312782394328353098593532776887668439047494119080466047563990510347397133213995896978947917022149211617129112767841505076473875666966610965755598068795460845283181641365579113078531456906808979785838071051632947144477436885320204935449346699766386655720497555788356880305984088502916640861892567796849238269727465107633151703225293286695546548179687693039212455439279118886114021803098339311274878657673779187009061400846288381176861629450247792964367050139202934990381760576175358595690738899272458713534789427107578828092851704997578870387446707746923237619688466628011566446552735353880620530196936623923535458256949986023887903865777285096474226000279993355156088064487400198163113091359486932729520058257031621039588022171810942731097716789241238254611676080559432508393864641807943737500450538765667687929588047807885348562902851076086137243214126216106515166292047059783537862152427050555156469989568458005552229794902290871947044728863240329445447839989882779353436433850761807020394131981864805871099071107394771042964766143111635342998649272617496902870893752231707847673372300570583023744626055456624864825977074738680075402408916744554573522323460726824574505586568902255360791561068521230844955128256456859619745636815444901168962361518944354214900143218305146753503477016724892904223287281194297833628687443051285273276344955891581169054881642002956864530594814814287817035578046421769306389109929359198504098360133590541886758267532996611520371757234704516358211863410551383430249191313139072309842383298833263406465619108493551866386997362081020991042163266587413966760452603331454082561947815085994876717359913438588884603131380757722645963941609059460938837847243200339124274588463781515870796095540383554626370179517515488301713116818755528003226358305177554559293214923607077819805139473931915849365719343596257985219034112211103627741859875742190041527080626229864519510014184027248973047105980358873382306567599438244137318772172133845226624414976295221494636650569352354035134250176266968759228278614306927498840652486110954932643631033980850867785295485413237675526440119331506311627277330454674877352915154495799623610122839175735349424846601603034216248259056500855733828460228797263397147669926285639135062283446406157627711776293296772170812824927737717887638956922694319386771323509107627224064211221576433844272013780610860541849872346376792128276138152822430249044371132574247272360088472243191122154329935349744785761507328238563468818141395723447029036338934903180335095103207103942366638904319098622955582054533704511054672252400561753325540323498587718296449802198378140212832375138372913251115007836052547947663147150052476413375135634671631711602433808484285413703771116068903622994675896551545404941571788558352509645905525156014936202909842320948043162979242056687502147935251576791094668980896876259528086976400311879549366283872219795376903754887835854179215242582535324791868590012445912548880234054128885275045612383504042150831389280877309735652683139553607440651758575181292176941831932964502530880813702362107933083957821832492584669956518740005059497580699149466903154818760761065569097751060589177638766718177201804418990673541103282880981107937935296024472735427323585123488883545464096450295985057840319498226969485171576609905025193934321802958174932791637225826467472535699297514646603400973836850414397560294589204970377233583480514848150398284517423941661927748798264100016605555859910818000637468777586977583450516496787121870542811470868865827583308142192111168029787392077899302744113716151923875693781925191580914271969014005370047798231745562170685564679084209732865940958080731430279580947962884968922018194676287048481958215069612904119229478176458767547862067655260732927901012837799440974763693517807055262599266204305253376362737192993318775575701394268160383028874663874758963586806301795446736985674087669034964785525848743060604582837894825016290504405623641522482892478217765425926604707515151701266522346036763950172684210785215903497494103306780958421374187880811424954600288744332298361404484082463979580523970363644431892635037321756406654905911658165103497742149517866747154782699587648707555306227873098267260564065412572544311709944678589129177704789948006323700747296573414738014013815319483934810539170020208906913691157704627869517939557869992910617840955248419719671286165735321976095287271138215745208660076322639171924701598222820817880005274351898440690318710638953796907411930809414478863626961509268415477194882088908203103426865970763440133859590398124094624044938910727153083971506165039138597759673699024757597292024655180668627476105390963449332114947631216617458134029936289375258280455262979896194456900432767478230742232476191082098760198178870976040182029795626845403085336448268455441232337060038939561123956437471497034327237599661766338178574408161626803570287572443275434724509414446204160452318225278369629099010247802006596598885103133078389648700136932646159853152352656347592376895927847476130711161624074698696983462072889302837429439964206922105933202370464213054564073280264945503916126908230012482360031219487783262129118415725026199845531437606444094589633032453178909573329633491649097617528893948062365548461289215067457030733671711907279357719315575588015423456038457417686953767559586323363413716736514176015409211203056606736201198464087680731489356646045198686148469720046552257730256527088319969631121269009943862121475765560531898371384330669486322119295729651152420260763406371859686568932040870400356113556293475313547785711183173598642521217754411808509263478578343955407397119803149250873231778991712354443564435901464722824829172694700321581577458170717278571172043630167652397877919236161417303246212649408692447627401958164066857674211884152729676168835756278522732170601350958853274355768994986967700590725762531722135451015244606193280873994456563563260783893809910756438848837491878662037922545270291006866473974384734537594568887572106274052616356044038862416144421228449980283943564164601608012773099831794243555898521162541552510509536892639075171604826868315094614356842878351489158388295686558928171338513060546410696240111809082462241814277718624558509513045546334014884698979987029326498147771972686360587619087760985729126784623161756476941705283399305700238372455620454642026980093565518189443904794912136511700957229606236634131203488266402490177071432643206575337021546380495558059238266756169234280240779965712686526784368651054285332005828920903825075371929525500345091597291791359540346610090747934359472929309903213210323161342276654829980420936306218526249062759839438399584018547187255452577946426875403443847299696564554743421363812304959100528035582161729361871148293817507249565372027636025782521743102216559835623514093129459458211610597992092013083594862974041298069287788500259635813787995825306790951894088766896828438072166853668643695828594325466234000291565761762768372903554345312395697018253544591416418758950831842925666440415147716610577266215797810483031472898011763679852878205427681119096287476772078661005398904021439822578275350476384152690787236395642584488133868985357278829378643325345661331341424772355147045742355215562985140450191763130614571993959530602573407007398653917249763055195783742761612299619445990482280236639539004371144117573383001310276425331035380524022267907396044712602366823557038776201733323514263901255003279465970672800246743369999183682887880198920296992889531230956280495473678263804650970366636937893735532111160239120935161980154870390574234503108824386630254493686264957127356659142371655455702132439745323102904390294542206286441396754885002907710587515642242370301576169511950168563190828406719951071642282640224896671198147318657777216585549808904978452986048247275112685932826579021704178153158169270175438555898086682114573561014728118402219611813702371234242925714394969817460773677156889362347657039187076939276639706854811878837096833525650305061765344465210654869233856404396261003940120833762334603499846594799558929717573621122569786722996853121282004793421655175491068611062375419498238859086643804159087298707122911392418915535500728380339429446900056854402723741432672800973783518663289024369606638816016835039057246347915191721284236252147946354978934397462297913586820252100886408060746638613957981420988856369439383377942394132389394003436874811275290496094495022516398019691209468400634489729528560635960783562840321327998111466777702116166450258314808617505909831791927186568423001753575157217618187347529014426835203640296262174763483120496459962555398999574505654426055180478830746570792433140684583716987069944380223917450187762466483042491722487414519080448658966260322509367765012621715134176256570790618707399680594942797265192596654571327744831723210188566148738919081773902898941368261232486185992686227600805242623960512690220053879984079324654856557617090517061427083114890886522499883874693737613728143313208032488245047139100636433720619961099954833955872535815234706589396932125992068810496752114858145654948291500818656278591240591400129300437180542499252719944133730729498870128964582082970779226168349687675112268129358653786674050457381640901686051776926971111413563992644810544971834999890796700018780942402230035904552585076001793411820280806175481503439557764936973859866442095955716846764427526804019260506110909017473027910376090653421201019382159613542217890427422469573526873048930111312194388178468042544916385994543286868566199484906062817485926175021500335221297297957074563534997637073285029676784678580172375602167577996572813539964562153563319221838970562674703907014801573285312569772209331043932207923180314018072509746928913404254165608486824209911213950122334505103779765360080163716948468124036422909573727738719671794731512251327027627526983521567847854625636603505305513892835545667377656273450259305811570247726939533546255458039348464450363959923379109070827122066324846947326186289924104291123289058170511863956956183988569913907003981110565254540850881464947815112684369808837174019736843615860165184408746247707624481137717673738997741705189824957981942173060034898409084362732754327916583016585089212963311693468656807183415848522892576461302015227563470621691580001498825940121636049800973001046035357657101797229468489982468946464182688156412826083061964125042582676098613213007181890977762083182651680316568913327675503607952816766010725945314429326611950566523826829521022355774846383775490853290241340699679584690245040193597488194638620202893721807217021460387596993726872158304533025565342376661717389958085139237204791772753699578290177936836177483537336420931095693253154785759303614668277197670096941097964036353985789897741609343539490425905189288537725894498419376207238956686881275063564705481812936641604071337730570889351099262988429457568816127834380019997825034906125942122865754983456260296545703366023970654158875090308330676066535976442236122744736220153627897063757224267851082904942748873283214800318547090267035669254412602802057872823907831800906083931355320011654145312088964941883390314874735016418579271486288551902016371306431534330353291615469758039127792322192479622375008502470224232064183656718670931878570270821332763356249731762906047645079916669484526836753517849605129983240400963105534402039428829874495918905399156512475309833627166677290043316264257769030795978259324058247622148905480247718379633782764387064967328106757764546313522964923250034052022870509584542678191710740868067428665013745331425267354768616164355590600267754708194084329190855744546290222701132055882384166835150703930732153517499097869159130663858404245028072913976872544961538977444378831113199325354039630567831123247967663316737514426440534886870563154462641196629336408525685602155826632323857109729762868273825494350241159143423552431423487238014916323226150103228016488181362450012900258321034874618176462448593139745754018525383787097345647658402076065032037039812973694903988006277757402306076526876910985627835375873436573439151434537327632014385995300333216750098995948992602218492136633531306627073910219756570917462066153706180724432327571368264268821179426926403346428060658305194752758100760162703585582146556075438688208651717377360732766852798278637846643899443314950993728541744741263836206214803655285461384880987814863743055627891437385392149363509096555525109635963050843554994375098530079745056333285415019149142485979456823118473865719254282057815217791450437123460633580212018839234581968157189771714102894330107932102149757961982439119877201093221144917217373775439205284510712842672216185445658237454879240383535328951046581375570814176605710958810905319209258695655727618897153162574009766208038577935362089566632880596461914522086379455289273107156800905080029350451953844953115970336508358117379458519712313423151488443002040725932671086776690953763814865152755460744159684165223907801469569359397499845770802359240401716221566695927811557102437777255988179723998427309765498888073361233642963479793696685087534120283301270533276584169278182390929151301512705670673093370180827312298508719341031374026937351924559009854778559595138695204460576457148162009487906858174895967400553186471682801707691528100937258370089682054533254118848756643432652172880853909944513388700370142817433984971877558276604239064928995181051615030244186088498561888766806967412139743361774716742853359035283975278242143958584767237676702199303992226510675003634569335606218774751077379900462700255220105892651781308889182691061809663491168531369336273186459924497719151948083709104924960063231591193298856405670701391111254944749882041860538727990033927642636464741048709224057015843748055954597189871623176925248270410000761275067251785968278383368886215663366221575475177075850483428213193976393649512679755508678481391211578392690026819997833726705691497188480043166931781504302497794491390855022951092878655394355242160126552122632311554297561263178464736851655434947835025544408240768819207098432993382623843132670989835704467052851067810316612145015442505021543532029481017727999679677199159471937225137211879799108200638271859894132156780366446797842044140246567992623372861688868387320449678431399479581119840000357933349635327464852358411158660033605800106555720595710374197616963705111591474730548007317368031242575485367336795446368375018132508436418876771867096242194215004950647686773838178359212917953056663872095671939406729567777825285960702296802530958079159539424488096856730684312940822156570429644429193121807962974061349415529288155307192156014246049997919276471222760339365802986437892988863950498683432684624531502839371991230054244156676251510328844669845874445545112159921580639892433572501507101426098254686260091009359012938605071202820381527123897682380812780906258406131652934770359811784448983546260614250945972585651018216895853269334599245228148693180517386798984857256766838208100109110526726699209543943592663497474097968077700260304336546013787848364883346305970638780585764124955381153099954631480455830126758923467136544877385647240717236028726859359150420300886581383276616794443234817366912252724379807623636624178694725116149178820154501637901590622171458308765785781247795974888397972703599280985991076995555919198283011235529709342155531473084961657915209073111717233597701173193752107901390244491081117952989856046097332182888075418528995450456094105582812169112305679714408355191262012827423931452151353884655722965769396806646645429613173211396322570107523061502906215027402157720136851594893864902023386325156311262267277890640951162883805879633902961924432506730845868792953538270260972672606752241638561430963680459863372537845070763593133037976743465050953949908943968529688708641956684157550181189154874343148135164150131054718531785465234402787550996705612134304743452129657896721588985693888586289812343406663379929581265640237164058954161393773284519729452604702531093678648633611765886095795603192181450854124430006620641622404010936306611821901534014528863866885875019898449492893061954875500360856381576144227796365301906764403409813540207333200325090863828178915707283812784238693173360201478816118492126557742784839611216254527677585314493324549380221849221276622969180342186647427708147265158953532130568806623291725740826927292373846971345309141715933346543344165947321260710497118548350179545726777865440367695040882794136600813090994302105669921011652689611582589417448262739799184493102752027016326623280253131842084262740317440238272392574209740109491993153523028150935990267423363189717129861057914904408117039126832167872725699532885022327989008473859868262456979261046598253357070416167463847442363768858972492779207260091566544233612207020836714320515435754062365918557290907632251548680418643947042722707921961402003286318338478456956901864801795822189965125935575737818066286082185785654430774907184760368144794530189803851509176106756961729654760445053699913172423370114003317650274454874077082608139777601830582524448789914814584579395734484128469912105982821229896305474602206111607199477049982948033511330065625877818974402012958810480703465694912684945571152972526614143456425386682830334489121332757763747817248510914214304862560142807599027079567853978894796247113965321070310110795244392744233287738086201745135513518064051850489027489531713784635252897306424354060358110722210933951776840911831720409120425059246480622538713928168797153762148433130524542365927246480528650567066480393687889418960848729399073944743864832108044666278628675310083143856028347751346930018745095528633030559264413438020168431861322353977175304319977577474032152076882534599103247133747958793918101196727896330294216294266117534633187835866963179603751869562541392732619141408224940917364670178640460281358667460441060051428057888465492980693825790457872449070493445529603681253258476576055471662801937460425725379320024399880082747653226098639320771779708829126749724310937803729438630769423672863415497302030581446962112994529424584684641115053096999632528313244502917442915001017607912316876266886051792179250210311020436955045814494655473989651628455646306146056500639655560918332348362582267604085678918697466998091986978323536782644776693582032536768230114697202798041267688681530844472244353184350102729880212050944136570075523535346432353751662548547235428773799142990676177935509948979836396802547284739476373502991103096797990976305144957252423866055137112003654295814357036555239554322325618536600662628940948440717896663810457777989024636802301347001141356593477320253008562558973211224248755619366357950004495693811203073824340979238115807899187376588012121176302374199264986297819007078065976174833444422028117993859888748406305228138864640458401552537727951458520647511269361127622435636030084059615604749304658829648524944521027249243654592424511793644081576698550744476527649870444965467210759257326137397320614325568196166968024583534326154828744109276029164765948588417584774895360765228474046181508079861865848702696009238581046662223596256286642155984297276473732257633013556014345133978491237208603825005737906889650798729775961138244629214952483146733626288909091329620729475081324492838342524982385244123929471350137663808683384225387233235075503552458509305040977845029400281915158689767088211611634999097764484875960563917037809971106905218050363861193171697280424063611378148187263369528541557242117857171823964053346091330599063929377508571740540727966568047529921754917672893566290665440216585527665555913910142507286671390462836789159072114641959632734483977974518407266161574478073344206974199241336869689306030299619247508899808858011869379046456334271529119319210525646459942280103467197307628357338224600452753911355445330989979184939559067950685957856682471381299534796424209317516418968254089542356662916606146996187823466849406979264864419666005532856489935940105923575226082957955721598090193934619617051575826808347471482802234372539468223872154320691992582134186265491149992119629099400445356069065710395629541986122691585965352611930637988672797544395630465595323889495234073919207592080711083486747703159201626482954921222378855439682569005063832960680880115967166320314379151708624081080833988895541754583021960576831052770345031286656523766027650320886049716583745938291725467092395312521018262728083777114605993699690171650783048562035971301492606257800767252973682094972566081090984858769007540916774443380067779418997897735372220522021224584462607453070611753012072455688007603329282164276048577580316236799196707400421553285581840974073658954551732158685303527206831094274926791715350000302033971652981807052634178910716779067563510851701802203680925336702706731613952157172496717180761869750729617181784488093082995786554810165587747957552005496564182477106276399123981293097821885456258691722200601675738910595844851079583461930214341067823931432354543481136242474772082602094915911894290916588665508020019871250451709917354384058220393674104307505696648059288500768185916497998651598255720262476391256722842733018451126679284616564738646821740034853877024177019054504664740018662614783154010432657472115773480697340172255098478286999492102105832310538788283563825009511677877304382483458389837168808639843145791598491711571135047391523390865883514165476812342060007893146220214727207484855211444375957735347725166579708527428940691436175934474180928624141518931384561999296757517037161975184716198563596769757727038241019067410331244282822316094599509978481504065800205295972062210837587455083179715508222499726041983932876091315567200560161205936542945515366271660018874895120422668428821143426498837028010047617155969198548160575481513823852848259033204497855954900664087700773852593717041108266629734217601625338995782732562951574016444051044148498580755909738079978827124703236033179932759725001607710214242517543065876952469659938801838956095946620603558983385300994925207938395169283523044831871288597785773593719379394019095768422614503759037605945363147619400944551905141762155959705873172569902609053415695878474408503779366577386992434035614856796814044872867445153457169438775590952612743454048336570441448095069469547259057543572828477925461636695304194848752837816961667124296041100284526397248119704093017024035384422791598659139191116800251140275680384743266522994937541411281184526279691206114294906930404685911620319464638253270109098156023664356547988051435510967713422768934844483693476733543527868901253156967846417624758873975836336292427706010574090331145357146663659482006274667561011845248263070828346478677139369323456885491810323628393803824820312320143868147370579263555062857584580338549389686284682727467741426825578270976667926893959785015707862924767233306149668063010419033495889406676181540535953857994534110812290893080081840157250567037611699327848199830911151914635709674167811945779241681438401072290533258741655794518676032291369392844118689950488797450193704956947777109641605653146964221923198768914489763873299955264365656640847928712126693686925464558265729497274349597055639185310190524059834323007860365093972655481046541268856440666636102690309399519877072230981438503653613874022559784329065114006236023492998253770108335278635544070031297848715679501544439925856655661758019038622080576279584076649328050207922746310950161344486652516821717192750358056804674821449881763255663652041905464276593434250948965448641284739862045461925497533909426792060005225238414470409911685444664391876563556253957036303355019656152936526962123680273130132876246958353084241268763923417653794097805837245250902772200341826590034790338201474330990393225700561778758839214621919840561218035958561844173747010850370352038480323596359123528573738780693596137124042911867714652737318216418293691137532712037743097678166053686890453065045209457178286643938008423355283626172667900560272075590312799170301784539739522777044403421693789016573546137433057916091577970759829519288808795658942166852482537631753103452137219736824951561252009312380740054627105702528002742577058112068984992923795243637221519200318928148868998727534614183726694585668894367392471917149079036016984697156445016689870334376148302479013190029357580396453894303073943370890913058553674068250022160710338326284944510993292251048868656914244953534116027453729187354209127714052794669310530188318787478590761927195004593926555759112893945770422914297376427273263522924836241919358910600030773917245826410765235288306616625906965315005578651928910963201390986131477515346834321929687138834410588705290124918314264228675595062703365713408563674445431132173240434190272356314860404582571981539170807428484588925117278696278162380921464070235861727526065330591236864786683042519917312817916204436484282139432288624646231074920540094882705776577415752718543118365302467628441780516075425326351678171878712882016806939796137820014876821345324536806438178555706217665160562740410766654265188970957885444771456524301942482741418763954369879262078432191768166219289304530187380099635154674276364357836553103608329058642617144175741526896137971496432381376501477567492562036462093816480333232425352487137864709873426680815664281284773924261862759627892956236128329439575266342041269780246437096868562329487776261775433242604252000389478506599494922157444009301737169072800548684997116351003338740758328544568965420502266077392562304344849821639727090060633160043050169456322152039219233969363618354457329502208866984474272474043321439887668641671175101338941276042998562848168178602008474359833605699511133114361727241572443878679158637663188635676842633015574991779090088161407720335094932717627000391572823714577859085672978686500943219815505326075017075804369146995667145206791873760838459425442203583192484411839071230983143653341178333143528889378857991637997731789461476754484755440002596753946607009035041355646685765646774676140310908343789815185058682900742764010625211161796133175775856332260646714236573770069030756500400919531779086609540823208748498555076835285430011059006356792371999082954535206168361123141493398491336393549960710609406038641830395649303055955771005752623602416035587259459038622901247341979351518304682934808734281875535925637940978386954282882744701333212888453427216309118940192985969560511968280561705079332871615037473782902620061538270674689796163102753884608273181091116150056273293352891066794835467815144577906360103052745031227113023686029579659089779030811285972887972971177709381181706438899590447544420200832703433262980573970663740269721041313801129310207722844376645859324797679919583328963768996268502801194355036429023032515421808052113013538975403972067105749659844525882484944034963095625037121068344311558820317911069611881085638407704600710791844832308571674833294578131522089625737069902577799123945390591598073909479910743568002900853608619094115087313736761389436589601312367295060535887335603795439594092411800184429372070473638109611539856493327522982284410624648072677442023610238410440598737347959614599987933053555995710001562871826314217942738290789979260783132546928388312245551513728518481531719914854602851095038557472584637711106685118271431305194777151680720040265698516464242166827717588863101472156036927579352351816308297413317206649542007456987866738059577772420675857049721639591373036394207986926285055456407368091626154274532161247905955940419439365197027133087613921387059637790487755909818372763874245541904591607980033629466493130310259186721841507186431701365689487293837738245969919926462967003762293543289027021696385802369518729057360702981236669228415250247998204493317583109341629176486928302254643303536876134684830262502375706493478507042951822526037516814532709738728363076015522086678154202579307903429334021357370705755884864884821911068694878435956019680809917422203700231995954583256917319505243838339541857588193582504047563979173517430983112927795674936164953716542946789760244776168404626341574118428118936332396524362114912437321381874689771451344968587598132108296213026758006177978757950527972864211529900057530675334593805914248392232152072859755148321471768983531847496463119637215967098109698917673191933799544838499969202133434813211723226082500201825809341147370913661765674874741160024235752891025353096692495412891211784828942014500414644328328496139308558705120479846325670579997801600568704327413000718933685216897361323389918321112242526418753570564465597641706317912098272009926850551999068241939753759271610403120951590033354166155544037288174788465983953297756421051292598561194631808642276516434420604004556370356556749138134569510009718541948385369782246386196366769067783185467995294234025537739666692944666178081141139879374369507440383938480771658276706534197716118063030079187829585139370786603673078878107662541770243570412809336683696498271802312486444510609363125564099731666506285083499815815963696284341848829910999965628398835274129383841218050296162841057286926029403451338845205152333197210446547565646278355805429881477834834764896020663060220536757586754635884062212684200539646966397445991984657215450990228354102118989488720107966417156060555225770537402470606836082163210763904406388343215096267159671372900167082545341491735407740692528494847459064529588835577240893626528653257822700791504797064311109716059394798354592752818720436490665024529476356567250795334365634814282856304440287469717768807876919031950932912727672721041239843076520650343509336150276515643573650447843278892854653154512299277938908712422688545198423791020963928201571314794014797172560489551024466333668327755577552784569022315746449721832642912316671980601284940509894612497559010780401082607576962062494375973583743004725351586309665998473455149480672462676086514786239095341290156225572474387314173933090886186191309300941859538578993700244190595351459085672567122703657779421340751482372017902348630882934839599786578288357217649235679394284798175607304748330398997820105761237821260803571445686514135115551081845485493796304881258034454495455322871442195572746662564572103165771831282603760693790055082169696287767288819018682665995678027738836048296930441731613175143524397758287449631073798971021391763205359346295642865206339146481578410307063812543554299296695233762071088967800041687725933231215662815208927857415906304456456248292032439605022115461434134858322913308659969612010210972052010262493914827014858141829851968454253759794642518497724070711977784934577008784157881089485772099846944900040762891250923574291487353607872640508383736555865728375489249119585391907211730566941090482431488605416279651732134758721937055061308633008877958668070782441749335743369894410263706252760111299455885537085405097468932619678311092685165302672255893032949902590052540357271808994784374504002283212757782658586520194687137831038212436313468325315412905442962044450540635449591374372578396365915986214048484041940507617572835516425615515684576829132468225302431184737811077703595451744822327886619316922329316264331047839404726512831805154569904984542369289592402401171622672684467658124338185506274144103706259218314392330729466124547109826298700974620532760082129567291291332086313347633341508310780081138086713138383537036553206053299481300167962641905612375984388405694737325394635339305705618563442246885490454820712690595330097402505679862884406554523185882059077988355636625972065690957035974317934655305632673839301601323874295038914231471284990375192883364253105525001743885521873745870291037553795452014787130907603256971260878842800070168312713324196599968668975726436271522562561263946512660398533245786603083635038011700059013265262314611953621682545462514200740614813790723419548881869328743661619737494962868075244925277229927019752644922565519672662316449832057267645258375530232768403768547255964128300019609880208670297901266157796084020485070819969001146798311248954518500774389532975733395829155867157715132463965472291980051834344935009792181679717143641967022904247934545858769820640494811223806070348594119926330809753688664998570261713809721173647283062551567281577612742147748389151620236605676578545164121442393838630937322766557752243749472923762412985824402213424145404016391034642790754198760337126187041953104022090341241494906552954687319203221116871176935939258397932772020884210245838942586141268993361945962150969283058801124435119867200258314399291233647663017223964857071332817553979990014767814826165466907354874571262079173325031174101706431429524701468864065350738279616888406152584965172222281695602292743876585215385986566370430248484543609256862317617085690585201551296126985338628387505693953319664556143269119390606276880156298251950874557578907677792765181968865758777047093013558180719573262745030861495970351843906009726371439686558736645920012817092202337141285258541425067530640151618442681576729001267552530179981689919336705361932010093508848901969819932421045688822740844946649862221766178241845332599336277171489091413924692775884941445547108154369181060399009398610152922929963647789873145295090903067733369834666973260272573694194730575104745313217080310582817992553415153860017066333655067551406680807796773957508453601592868964174476923625640672240719722849326423315614916017317272266884042594879701893716236944323898708988720071211748852079399752142400263694116683712525581017683297432506713522579338908710951927007038439135001859185179939919544014863603306828611988210878086716311468908732751258803804577907005567087130118289145009637560227695477849123364998917423485927050839214531065631648324936393757912261804954530612048862753748167788485651765919563123357931963076953686171608814317483891564640851709786955118456881810765092091904156064586858395700940754166438185798434715218385987692105485867163107517444281053332607738648357530648012313461930176131382040430582769953539566608771934151025096531901130433568901528726679037757605516495600330518028588482542121422511718098942093335828611571403528726109553357208725862709339803550595358341216082250147493021685238549451168635607898275968772269499921261311746037513177129286448413529683686748581423313196798438605167240089075560037036934574207981742022058548834225870207990301510061844634017738039798613550096898407822111383986260919716699097391397964377138579585646913526262686819649182644274078480316936613885131392917866305372037821291547694998412937171062107811605547421783710134553452709636917170423695062187066687815449167752862243760537725263982692078239442431246929593294826812001033355543102561843648633510690393100481543367551666482781490518236764085909604409426664781155633956895693297280133138809269396771625810246461092228339729834743195255754188914946674999078262008357371597882482254757437567277478291934918207258697239620546679298384612129964716106137005851959930851620976665496748769563731292312058393810119175474438442645472269836236924267572809586801849700563954485022297104291407210816778207772486642480971639980194861314158365396149432003633768343380099276071939921052818145034026643578875327801828447048119998891662804742484136465278699889922171981024111740295486255728925489558761177601497645429588162196596588735958841509351578704379767024536937377286684391948749435965610676422902290042055744390520215241721207814319288289322000388548581907899977300730416817893986377656541424350848775729321071376946408052065533300484784761160841318905058417534160619110028621921012227025361821613363458943267376801630855503847224172986567072170818507362531244380541478670332795229461368961958672635548473142614943882959941769748959952744245183345731977683940307486936723553090130283414511911976593049568658238164246449465143562009505127824051989067446081427408557964782193089771889123626172842868424163920906292385399933488328788365822364358251044973497379357778566155712213706673284899087898023751914556749216569482119941714752451250007925266904618525414664754653055616008924807733789222187757281721837664485028404886738009283651335495024552582881125574367131521000027599586498474698139279911209042771131490420769481824791004860006016523325351702254367785765978849299562922598013685538416049172705697365441401485287649809874078447877110754165199944931523530604085916612050997606985173452705390972175228117434480061404831644874620096191895303508334514926422630074081402241572345396793906806407083163454292411774164637695836602113529781091939240713263517483331952547676002000878144395382432536410262971995167918368557922481479463534007961522696957452725982432589675343305406817775703803166491226493110895052053689851197727234871364935513868156623557941643298240834682837954682531705610360587022771792990007870060034570590070189207176364810974963306868275696483840415794776833461215954785861615125853030158773486248949190888522161138574471659763321004869586660428718600721491826411397840578206496888020088791541132599904768824061105852073525429257806623995699392895119633872117988091610908413085482731082266463391091617994687307708824421577431619342457945634837968800976244322818383604801853490041252787223471739883124802324972508176547010765321179425437277589593572620152674751949581135559738711210629752727178356906408651252001535484582037806929137110203789514674014915533684895993303392757991691753512580868426080171862023804403834155911195632801741648406899655120033116305104741586693192792667448294302072841653539633183067780718513831280091820442366462619662272330403856721444279938312239613970637785139570147232388911495097632093280919534788650278845048671391629171144541622767259146692751253120706572886066181089685330406424340199420002341295086022059085127987553829474696047742911075271799034588333615326023170519347076145647658970095868434415612877257586130250995553086424701487596159157963630371566803449237686886956521050945459090655343565727900395939865645141403791894203218451521696043590330452105155556524607913528474889881011617305631811873334971047788712638182495718675025583008149619912410706925326334376588002913577502002337148301066441866562154236790910874987454398636178815710228102376705591741360672445997903790881557365199066841160185214883428018640102398664190373394586814378215347510564239651830256535019765504463710027340497941086315924439415121120234937691494516018406158160348023471970872615977553256948023837825305537562648188140957937063368451518587864660550298803667132193129289577098200342819307701828406923212250662215529222802068168089674019020295624612077217849388291088780263622320634606656250239969945122570434654513182111261932986387895365359481481621484209940446196300706805172067503085731383722154457744319446579590234665773911927986390716190642314535230198224514998026897348713627209518029529955158188086320412972995832133635845022164528670030603402981326274112820631632302881972156795591194914725058312721873379180215318601696642652612353491156294946094829213572109642774588992930233263892172487225856679373623669694275009301232886966530361057879982984627983480255963423821197726447009223335939151677441773385319914802521865037773618361746592990339028151872295197805229539015493028153810125308310116554047330758008429096847463809259040230028052964029732125927682883744550167638709516851972195311978531068825053212314467747096881250019416494732747568977139562500352503961838281907338411112474342770056115871738279622488963534627751823235297283344775084319480738632713445686312761537589212928746573625164827353836583589940042783341606619644243708811899165635758432345215072790797517918782181814030395933128660495542513949924265366141759450553121202854348929091059599150459625401972637609459830180037625629417230438313636505703649107007731188978314980864682453579657690637145167641903479680539210624878490561146664719060189208911469905821763962056768737529534213858212627266561248770190253488344235920394539722691336655118607519271039419497369978119322832871790534959414120498725623330665303299646734688563259058253393799655618974515212847570996938742618160790076962713286770234064990464748540497367986402428616720024549000731161006491844896266160319833837670092936665864326656145988960210371250771601286370542513246394993497928429683384562123291386479629528317323437896446442959746069457255164851514651445689390939774344722077901704113394972442657492468460757933605947542692816466169058643652691926271731788822259173943432795487422720446082678928989413534841589173186558962146075411458977767178685741162621879377581576668593561825724701188494058719807272721922910043150250020837610429944465072520735651244085065784797009162933435159875919335866533387168211451507328670805575550942396463308737941549478367394899536910747742021771181398740377068778433819565652637578319912151683624350768275504222497461868557853028086748858975996814200340336052908786555590029827474556789895886030372585174146105502610974544551359101892811138530510750536258880590971506871690929845443872924325925542126951102837952396347668586459735206050840231389857500546911780721657189451944485183781626112413203342161327638647802952563814803528344984180967096995268765058640107655414412234695575813259798258744829543412747577501214084729831935333352777434592253867558433538534188632827712498092047172644547660726856910065577517510590890645185182237207381834631806713139035010271235757889445007542615800207905565605426397237663928044170032295090259614769252630743560642257101080842447308015307494433034091244464729701468083417503365117192036479575735309951794655436475878231272046835061960588698894602177496023017342394285654889538049340142142366035823025487620815931947744596160679571985918386707049018978056414894076754861218595615256608062349584977425413790851242587095847698221413869796932304796263332584796768224253083781434446116427551801458096174619838471079063921239448845375208028555327864552997366984406310521322764269947510598599273837444638488973048488253524191295133352355073023834842208272132184426207115240127420270945114476764773409918607452877469944533997183042164964711855713100182989511404027478295585784939633959538201841613500989796825602977505940515653676859116330545195674999122354439973329565757975094190059409482355341616060826521611936189969780202147048689458264586531748890209964352599015478674908879069030552797473879547371339119960931656093088514393823029596350823835643969196967281876834148697317458610543507187530093856343402856051428596041069609538877321258756566897886173094259377843417287647258758432352804451144257599902514173846415224088286456262995727954776315258504376978276181133888924614452263142192838063214826691243920062866430460054963348089667163054815719636068729174401962834337677504486384593949212247301930603604219719734854122573269379464252637917788094838944590560517607495858008496999500489623403294638058003622364697164663291018137813186365363414213808391632355909668274742601947881890526166738633426866696918400685781788463807577618245392530804642383932101841895200178891331149786713312270040261818722191868862434235359200334420141122674729747232134019906768761254088234625800406820417667627664688491625459962340617951225624930256707201576307644535499977838906209808843270473447909883599307230943194364476589837806044457895347240018168665734899446611820813734786116510864490025666252584356668904192169754708312371581105918821712982824626753963939467692960385035854821730160982503254224200567963413552732301394443237921962295082522519190139657031469602637626317519113038321967694351811683153740808597852989842442711210800062427437548588866729896088237599293261588696491348937627362780800921667008665413157824469782788885756013953152196502323818614740777919139521312226708148671671987058144461255496505366321535520680383743552050256604197221829267692120145686217274680484038356326451064225878060907976189940117953289599688606377662539558497914731466226691075308489059762193780458667712448855361012721434115941615881436569165013847804858543449755341463653998728599047276015303407969738115362354564216476227186481355607686377519605450713398404897423587683630659774297724802218599845711206644714038661815936882334085327583867447741309873384331032993918424847553438113801862535995782964567620846501808643020593264719077935256084926399711769826075268667558258734907413544843944238936232882924455864744472630463298693708726788574168456005333746132034974870798216858760056295148260210033195463088879950993974155818812728964937096557827453085658184927002315821283652195388991747453314462308752749950384710481980807121257723837048117063615242473838123221479170012997678326600012215924068267147376030583422637299889958085574123658326893014738958398249567909813783340064619250011293666883969061526488117594186013063374213605675853996859290565421330048103931341659532396330299653990046662773049875935117982087093089484065629382057115448702242582148061047384149077567974932598541067235566694943984340764093880340125509530454485056484748869770131559435625827289209719721946272737228361946476086958730867199883419957213742970055599587955142592929622677050037559511508371513785701280931462732660395380664859005082591618529751952634424965922814962217478553212717881719715565335591666703321110800823152312674288324874569970578745910899103254346205140853786054168399380848484386042738836634360197223228277256578147453689811661980304643427374970389449901437181736686098140693568159249015558277305676136001907182734834267447267712807860202711309907863273722468434145261804674288847727180272190474991470087401496853036519186923253391607796427260921583489725341373358708595030562196921867868638833256438132039633697103753910077656352221374600597982953843768493992511911757047101903702687050315785033245476140795357440265560037641188401998163188165618557329702835576045365954495392379649831234731438631275499428850555805400757383392443190582903882383340145983715009521084214670095035979590984368419702998519990983708444700809779345211413957778956935724770742917567965875236781311356790631402887113782785993795526038571163640403305632414686150413087564533519146793968663267717373890142390570411737433793458913694004620060801607455972795713455396653791504805581576488612539001612310979633504225683823817102423464175981656695703791821750427237185381193467458364450567882914480993952962310756574695986393455739440831356233089078099346254089905067959116918113383354369058749137647800989617538569667957711895562719677212605665551650395253771760143567542873443924884014334854896821745007986501103691232595777656001940171657320518333720989327338221778943612783515901555175707019612671262921477752135930400236254614703588698866982065439288677968585070085251316256218809149277285600920060680165706764305607379706941564023971035524622784662988679313082410542521104200097265785545133559824323134862066993459778301769128726546530167432424588155786078889166600665566001132318892747388258797340819849691891827643075234252291353982135454146610356257739475984438867851360064019204410921284267240342573733789681285596632646527928253802796160328339669674717430568306146347400397445202242384431592141020196507966905854185981512955048804069788990956023187666102105878812961301754831952362229888733814642460877498483837777067067589191694860370860720796966248554749640187886719194350085072080782251384165013542534263689924842270497109666893398776447920966613944736135530746785044649560584903666420562562249409634347730444401318188049965737701018129742494627742071564024947840321205989485355493202240735686934028930924084731805262955094036179135715848587815550128035560764499853601973584912924187397963544304625351368915299296909778500009924469888784088779954382006788042554215934862477620398789694943050346079672420050963273029081473418416725674228774044605867254396230055375154270980546668398328195752439293368768106496526300376153269446568914470367068375585653594753717344049239234377354969294665477576650903966573896719507521000936736948793320857298794587903645628691167799956887323502117103764155634454936523977970080048455980156445626269009960977137517070865447368712243769373526143726287614908725470631487489310746623707149656514808403478939406616729446921441025621720538561707867294137156324272755699758425607159501573772241927200917043949397901484989992870585790191277861113520621662406307490562920338253519470192065772810600250440119769721937687660379277253875447265420461814656361835669383993494994459670267641981501452904711209987738286326187925749550176646199882355287317741030810637999636123010424204454726344520100404270572760317100647263063342842308978824438681450275735279469253417003476915008114563955030502414535642001592821242473539004204462661676775943956167184896900995301875977914314909634566178761731431983045755194772816818491218622674081263446543655176903517303008813276213050153534877065816039188530767977719606609856247719510071182538553331765954998647168896281989174247317546702937060260858170774045975155140729111787630843493126356185183813199306069822294466061246249551866884193784144832268076874404090302508558289278734345536933396714462357413569591935229076610000210130314709904699128324972648998968465092877203547938271586762000350151552271711660984767965868566318741113273638116241297194043517048834298756693066980032680280073128251532454194139297007252381012960138743467445362954078454965030113279443733698476393208952225205112132562624925324206578403803907556899622971560501850961775666274301108024362975206681913228785614509517205905093123649193833086027192003451260693150762209254211427485671934745981898765400495334684757786457668623150058243615700552783603012311264248580105917434538949245350114383366370115504041334848507556913862386146204046414358777676140231177274461527525140942764542152867816963550811097352585550350539526091119686530971386626811420568378884874752790026109049528929810656432858196946073226158680912616427688764080065679179460759211960779031069038967937723551654772626983878250833974834787940480080176488094102720926966805874867267314737726553150855354386232352437746310401715099649047605016978513024201319840904309976272922404635487200868473425763230176455108394959952839585049338320239846983024848313665423028747671723720495799497752874075328081571302643319410796626368455560809060267906314867215875902050619956264474078951576424775428407849845494963901259181617056116911420707295376860224351773138361620179370713736916959433216998073525415868002876108054302408474715626283711046039223231038540521240140299165848609567155988891882315000443722529727269055084470341151855417832443929116204118571812394957549083177373392473282928949910158094026732032662068339913781536332349098201756820332259818672819350067824189488275855846572211536594840987072606043024322801686332902955151210297839795477660077283321231092866432600210267661467772630841156565794847969710561614944174101122395087457975677961535493641570725423639134830586643910636349916635428188979187047480941434689846189843476194008015662120697482252833951672985118563773493600682366314593502137775482712589668151352229008270346262457927897489814483513963552529754277989815357469657000404327550314638241115253483710218933904823078822616337344727146675195960660494469306353212742495226087857868079704199819613898448029540822001397841588416490038820417379799093139139858096168726534876883180481326482935023361617413461800391916737350750133560044640295357976542923983488357344440399715259253168380047141734101913911448103751005789208250223175366001120109385747669205616907286375218438950971219550486102609472020232255934979261414482033661895498100618295798923992200631197430267876458082012366580781391967327608119956599179913830659841450047843664588265889007565018287986206838660484671682656925159528810264243955962079375460334648937932393163061320670179637484765632508361484360469444396135106780162621798351244516224432044165223993869868900015701948251785537716496787670908936178998957408600814889957075658126051269825168714561019529114834734689690249294888278955477525681242139240713962638417345085509955810366544314365602572248733190946820885328896311023821127672326856389467624731429635807996943024439279846698478804700277189915365238942549677494280125226958250395603414480219656880528629489849794169380065932398107253833460297510306324760249197011961571457807308444465680778170176208891565943123811890076430527498214712175529539314534113589738551342991361088237962811150481108543819735772266561987898874528561758218579682168411752368981943945616446538644234732312110509321087416104318645054670131570173518610253946503489558746913975324950628581310628739184386622709619004210573042211507071383250973184713022503076359317560144481628071142470117557972764164222857049199581495706955170425972699361135025547509031343139366533710434956344259980109466868084549847751272674325047376744057680898753224913486344644665746967436581272629821779799209321420019745959426107654224740117771611640271866957051961757596719340384946127695114955380257705250571264820089447763800839423260138418497999226884165515322853403044940392809124413307985596281109420899314546364124477482636281318215168085334065373229530937760478761896176968172313156114045571115304864732516313096609546648318258529229840688340088065548935385968707308219772375852415607629760500000422044562256731822318511007449212440135297062210705239029672953526217400976207287110476881474749496234743392056975582113875837570882381596280247619044207895771089093185211114954957633082018966752300813753294825203268510536590851117459126062192425389004003514819103955862220497551003535775194635027483180750239968097313161527251161213789139775895959825270695064670490921260337680850786957618644977165634671924559262164374192939954186051134853924168789479815242407047825715562458118532258717182919475093440770759736489368747309917032352511168984862763320798343047941495955484048635574926572226184630388844692994204166276221933571658155336291686989020902540637894750112446615710428030197683512645016728977337927045726100693536088717276448949402189841896025881610053993961757370598035318010950076082736064953016013965688725379704699398427035110138445877625225292885468164775683967478968868718398064780662840576838127621780306000013367637765300633643992824377622556042711314358310439109830997041876835425284794398258767947971159758922694015490222612697464091335430417594735883710083334242810670787915596167610363600205306642704708759819158607318087760340685197105908689603285691203187619960573721364987353333298266667978924611255760227640659903230082749327885039259100009778070428123662856889378582156248033937369230823207519422329705682379423888741324304679363094156600758576867728528775122774923421321417654181200120438194726949588321673215970894831601160745494940413242702299406990341769704158412468550028765699979695203254458715542458168787418976052075102349840442416531813720409952766691512160836168232922854339427614245150731258364254899851191975195857960371060712800391786725977994341152626232263600780349756248145681039960519145412677241836390258017542924054873829829858544401522711330327633357549397168063236338213373188232896181804758965001348290949297670939282474741290073966494967598648941862196150159447746407123576099606839911517939021637984903843791618064104193390731465090021569943408473422528955210222604615880468020328907712888849127491503625460961181115889878337342152947635951640743555767078528013578148856702677510575502712169201799535685704357167992769094935048403836345260316864332517218686814336382148103020449233382911753249641172254577398968016327915457567130430205616033550570128439623199717158476541387863374250937115286412538602198547420530898762018799425238769363167411376224663906809628706023491054190825894425488994296285655272608843277339420060412332485437100356795864808456950405782183104588122291007018990644181231116600985040997555660870686988683750076709120838481173846261948838090391511258840243053091178630106080963176544074472351322609615345550399401601939894339106269019369207154310904120608229855685219324824604419750184956093963719620674114724809126335881220280781366319499050733357112832347839058160858245343021135860480780623548027806207171692393633483354866709077131788940933015402120842246186903434687530341650304006096913009204222586457702962383978796354739823253596906041907663516291637233271376301261075621101914005781255362331120438829594846680825854291545651548292128838131950828353091679787839792296627079342097523385590741659590200821265341030569676149490570276460081469364428378689112059767736950170818897379084725600091193778584711666695408101159430934495452030278756234589148805877652865542831219849462396129567643924070650864430410069504121266026041478492901727330071327897511730027316861927964132799324972061173365989011228126262572750942199424830116922240636034059630511377525547398610767988658672373841636327641364356599226781432999065185083686101615665594844424039739262035453701227850621326765052901420742484726364437386060348409176192458997091591644943992643041030186231515023356050524046389071656511398774763353310969724847794252575001085849450484571385485611286247136048256798438571789858425601488344863019971492091521704942090835644548373734692569635165323750886435641667368632987971132923743086702907505609938226747717573592380871603449803330423470653168014951857773743969819503181496987211718685476561328755536850370307760590263324211966069895970182617064535442888974970952680390989856258658450714399531607960741382714519230186808669165046562948632231904008346313959368594654598173339355986443963484240283517248190118604733312724267671995468217886888304852357283524123238726234108730766595070282988775330855815127947955900989868903794338974825661033416313802001935717701894709568357296977053908190051488699449978454962607106593157725428923877724341773266589499957273582608745274361410086167483556645377237680801047574668782404122986654820332430709237451212001665672377892796084467970955699598726071199030831754708170546986131191906765152432504661733206611219189587868352050572855998970531015615957713465099341770483373355410263751940809734599930397916221571165369645437109976052036724212443597287200252487511307616081315599127856242146975039975970691364463782935401214904350043399905069827757241736343650375040664353781692103039115805034488660068643728843428700530372292604617544484435280109083780304982512735386519769535466387524094588502406570422315955088514761236766855378824549165921547791033288234247630219397481427230695509222945750979758184029820743687581218272810863415951429426531355579581785929665334370919850192592444308014328637562256506855770125990254895547941489160093593964208566128163408313547148735341740358835382561697481359519353333067873609062441928672377357221792079706291299726733891306625159195525927166317110156941067587590850552150930061919579440696031718192275941620027492723348189030447649462651994726386689812510222954515496920375019243144536451742216074699264483574584512414408302976775274236862637023580426809680003858935501542601756145627474763387869215541421048590129418289750886423195311778032772748431000163319208878715722986000934312648449831466301961226391698231426182786283947604731391331027278561957595434337419955836930680565759138351939400005080426701974759099064931474593918856616505924875560421203855094080654599692011130822449263889285897523263892100838900494290687578861015587952737779297209250132370149454081611136687343020194229662935424906778297758895413318015699158141108889959586292918750020403873956039475162257097444537455610751467053003133565397157517289251583686014096988158136007635066728328718029455755709368464302889175533569005178757152479843271845633315480057172249756849069003874720689175917991374418999588291722290859499542838694145941732218369742320966714921097958148873015086913026597334599187064584589417340927676519195823771635294402207350209362807018819850040998085108433488916900012412990634844012044030994949936958325047245749234561565872311366407141568035635728122829002544985122995176824542048949938559426297564747292722651943724889401992585455814878188765769399669827125219573975118801301073053193676412808844011754721232829596181328124362895954452093734660185294664288656162102485364686645560863284412412343587099880596396169353970050246832713273475882582380316948963637237144295714411605967189120358615508701372652606991814115088175606312406853267183508846018133882691322209473028827651380159044897384828661087943700364782856501896167003177147274714986181305553658630308478670593845344490224012586459601662720010502775730401837420082095665940447285615898561068730545552542439334762352908671466328249350694024972494524967386770933685506542534461233020112445410182678040520879206078537242612835343958641052721556406616316121488214250465083596791841251812870028281677539247063832968366363350378046821450466141857296340782170647982293404621051393428833781040768063252109322518021238787054443331785499442655981892345456273795949539552736487107123695419395945728095087749030684317508682887793531860207789730500457791706254919314189384276220645588555011967985362292341527161146021375720738656654718012118524785479520938032679101540498965160950551315754439962756589403502019789881872450698088849739437387360589872307883951152640610908279088778652061260851168315826622188431393595053346679989875825057400985853878628548190876279035745995632304961600453347386895820371545716570209725971381546468866657343135616772793222008958106889649681520391424561125176750863907617209848888042729534593574269993193196407078101940629117102267721494348220156689155975580103925870727373835484109371869080123033815045059964673694219953836219102324467725234828415917435298070106044994055084204351008608798757091348605834308691470810867838316059270827568495556479084074365531483101937221059332159377127756159684174477353576012667485113209375906726860397324613527868895674169350640738623346887695745416479572062495973700519206782672123939270996829896709758798238495010700762240349244026903112366321410048229461794766925011667173805318840359479668924422274076843416110033472874007953380892574121497779180975644866061804201878019218577573124513791494407449006936142019921613686018238722068147725814167399016847450499894937758265859772858436175883383208901579548577570652301117712493585015014999042356957771735327722922256891832819114071123134506478152855743723409756111438818066195453312001823852619965169853345939085376124106414694616848353242369315303044298764059625459675016811577946388328888478572884549508186904012366274658890853391557061593348296497644005877820177595135221613585997156720589098810781994968360489043229885021736670369826269240020926276130629627700376024153754097153547258506283757836096234959857723769509494593371935238857705457479089419558138318650034492965551657186767364507869982422639503971023961576026694802213675724439046106411807986343374899386928112079319903758143170086008156193815664347969653804394088800390696901351930575721971964995296215649261403846612293933018674896706306089688521835655147981173908017274214791339307466277074960244307231278342769977142793521128257318672893823261709190490960123042125972173509399726302760947952816617903327151464153462802721693894616943573986611440341453988346308389445349947216259964971465128251534816023177169653858085853401065582016896001908387870282977427678499577317871209323400626279753233859384910624397455861600148106281484685817601254656513903769967138935129942855889624247632884345538446043264267186377877889400100291384871350666648014587441194582259792035402231755542444872027754352601629658328705915096716611430205150554127521052835663441473844139176250941942270076240755700290478575061272585529931497627445199668024156842077794944875534708173775265190665028995968003454211214664854211603297932251446730752879344567657257018223988785965792344247993747351434080255839157494012640860416838265416631914033559110869109309397939325462070799631896071665976103791492370386577676315868916813996994303453449917844287617330658229443571249302493499281983359670049115575142702467117267191795249700257281903611193949168984417795498466636869245709863283666054611414698457588828961062780433560503148443696741531802152862138463397277247373731335047174758870935360962891748583945405020071184253953605856749556467286966217232741263926386910109561696389127885709816973867932211672362612054189231385187919671627760571974212598843144468741999573917107828394273292373422794752964269378060222191154662723955835956250364118758736949739066612624208380393638442784959441147539312084419788216537814584431435237658020014277733276783941599911956868076742181342901637814798434205625093841087839039224837700979545851018012421265454137665901267216757280101939653460888586439616325564260698206018603264719014500463832562532087277169015724490518963598836618863057717597061056203680944866197441299010609872992125270799560554017310541364880102171462081689638991353968747183799563345173727802079556697455349231478370013383235508429443115640854407507871074321314408789997526966319579451566445170974258618080531346670651956012148198609113262642123594060635129999614969814275654937458211736115556292167369489502081058459865870644818528417070482474474794894576070992101453718253570006366533330676338377586389554619568840181333027799807459764244558944720288423688080455839869055124577797012279691865262484406370727531539250408538691067970734864431467171695041249937549584536153245667554940115421488757864281575647567096802353862268563822214839766236433919350967178146372979592355214343645324667506612983416539353322950195872016433544693628856204724001360321913750917218461561153667343151009145753265983038405729905324069348099460511929191801900676123452456441897432831697326997959860122462354111640847393720728286778832177067471455450544948965266240517740391466621535068076548466555480322884393297071879047793541312878713039181864767710432908549087035282499355526162295053348595955986497568459436069221796398765486087664087851320520065576749658754312931256921140606425781868691159776895027782076045799068925147842230093455142826376581527471612199229422635151298909822127878501745693872469093711456247143229381300796538362332606676719424015197145845025258441875874474680515988625509793763782194824634791782193555967153503900162689851782794953972656864721752766008660998490892573219039485761205476314763207751318742836448260579879797920243243418088011008037802257641051588935372044451542328825586558110063153157814220317372275820156349100820170735842887872578864523100117982531175287806468857376598432696411430824018466150627178382300182145690822503530665163182690973353470846929523349712147470071944263375333459835530547944533827739890762191256066520756225371045123275391119992119638466018065610903556865814455749935543326967767362119547591007852125789949500568533022672125110972975305943535720284933403291157246689172220880753111567192424533008915107325392619101704761741146744814615913369503291562802133897816750797496139781670766493471879735041767031107518731982855501751579299071148487646188652204613999703161393349106480452289887557165549691091947731756916619870703369345435799421910933993036721587700590881500292336345740419738409911592036747135360187007076106159887128939506375119123862725554157367811049408294916461780643209168680949555933569861131851669449917492634034803956236646922242623245690321096924338203744261700619309431753859357699748096796755745015963279760514418293300223952609472134664553621843323826000460309791394058803594090309789095297404213148610856065828302773402296256662228196872413208183012985555332584297391667069169026206382874021468160636844655928706736180118020960166176150843462375651457106277476346462030369896327295433949777586229805889704524269789422345658463487768936095342748181248011267858601158652718017263657808616081272569908249804881869186465549535873957914034452927282325046204811614498390857732415409438917167390000009510014672313833616638356304518755456336456474714032103289352996197366869242467465206195787717349892843600712240661320254963057934850492413802248308304960320351755818766766187138061898246776174000628294298620393122892051913291410429842866084085302152052199918934538007991861622348415646180232851601095142634443552170807436427417128909033109022208400239188672329839883575528434201688652323774616446716017866205073271781143385219879916020274323258700981912555016589075929515496915081809282056811593510968270059418532261646842644274894856324035057218763150157222306690236633730126760524152016052288230821592961704561912160587826797500613854935381694242834706084474204840321366080034214363685502078481645594104126569517803380664247434440197601571480915224310003966234160387517387184267993298287634682016287452575770668112388936424790008684408925732546580403456243725440293097133589856966536659337336620565771804534837378681522724862909301693700665524093423860086541242568553232506712349232792865095668925442900667907332541333377463364247130785417010459993093906344994987495988962185680530104531875476371287005067517459011420899844796893058933532223728142546340156738094911946515071121523038576829738863383223427137049417018588532611287347118620852970569276994806403556934676100924072633832323509183366276801904526892729741185311753093071072358028530785924368353916004110444232280248088543060558041636244977074402252397054632129804864863262812529086583597863106921509686544425441214975216840020018273000598871565484579769595186864714001019867537281164126317022888080851698091187262043253667689197002372737887555761729199782830662664161421108270669478116194177944160780939197736532557010443595232073851189741358630526085428849765128783789787129237363549716645456707415869980045323575027733112084925458700076803969379618790860770534091273168852580611445289741732849334437867078597521019467105441884282799275518415561491637690267051767369079476831087034264101405191619098167893301867467671276229314670122653703913107848121008440602561636792084374426263148377219712664360702220769668820625528723458333219668602524356639638543831215413683799408419072000187779616104955729365777861133103187454339235155122532905102680571044442625684872602596144089254275209009270426962520318178275580569532292064126561139771623577564205055383072284372907848051144489119672974403365158887071505893362655580989225215187790437145951088822950151615787108629702018898818611869846711122928302572806010740517727694752306966458016355999487899663804036437426983800355885075477586156820779687820903054336359206293985299502844236369825664913886891916038645363225340702142748637170540209449915786133668804897737527381951826452535854735775586620832923599999477586272534218339052286412109937823970115844389063218795026082393390139417847572845515945000752189700357617333247795711762136825881926956657125762787611642571743399244984715692200433723944010125601383797957731335630657077041592298830077162582573110929737006392563479083708863006235962136529667277144064805277771116428036416424477605383288306004833196968128791735283406996528011868496344568789174972040583649631458315774944828188764876369871917718027940074228951382324381979444864553616929356184720706338731075077087126674969029860425085305529929381133790752743602571167299104393992734208954806689588798196513890592864976998213426050097084619005340743822136568344263321565532762541307706308422133617142167393280005587075570855159263750938351641229512192241533133613572955437680219837439703640163107599524596085571006159152416088371718014436667386647349975236895203164484955582583451541632960621788193695242378887884436034574533956717681771388550190947326587359402448618071458550711051179851012516262077532394079234265715665375647594712623093625047905146492929604858597228602677500331310957529210152952644507655356374066790947321271015023563957792011778948847402330158653616047266474102680617929819793949939690424732392969180390559554816125154331410840413380852118900075517635156716622052768173848385466267306023665539604995187005713062628659543055709967859029511981328722906644451911913574868062496209246135523473590419594562526627176261558433349771945613148825909217942344249389829843355553783767380473551940729844830015815397477729254092513950102790142370152376411667768280486512620237451533029562026450346633627757555674886934218853399531675016869454267916637595443078604776293167805900478153027950151402696540010036401459517577498939461729933151574725897314994269028870916655267568219508921614015552132626482144855452535269803038700199298405970280691280862088674756422070101520966095787304402377291152004878431590458207415626065322817570719631367685146723456047339257328649375428995304954305220694386195945333371229095622070467726706782944964131560928641321079054726927139516205481541961702540552729725710274045999603023453583057208415230827480134175096869831877972808136415929436855512924682788550103374270194165546120195619360222641080042729699216378594762654201931738777941823087761829230074171003833773378591953402596552851415440649367449911379801797477006027358886092165392462249343368058981673203154440881122157137724495848211712245515645697458760657303090631565371852423634144320674991934603603875840723685185567734671699296338759193228240227679501697059476468304855170805504925454750871570054332092357826645939245386559408179532852290954600941702012861256239700718899959052379912032824880823645504768530506260996636076322970487168161514835288224354812416089521618852883033556481019396419455433200378085896588365880255943437666470493282547866189959952764332542070681600158452650656229394384599351091942136705291029469924740698093231759033713644442230564294507937384988372545265062668518169254620870177868391665803653880086047945345489405641427721967828839060150955575374717209545981244012429019820700153396461340382471753491888895059865511258158872765687357905988096013748541817871968154379437622209435745677592840220194803924401626610400522005803517002907182037419537474864160655258075602933278242491117948314970804252863043596817028440476020445851046918154804097101019117256572356572183094040622016824238863327591586189639739308220695178339244906710411671216137806583152930196915597088742405299604478685308397045177116870881073740520296097098014362405378528068770461359108499583773655106545583586291249136170502320278671700242156314651626908206408243214898551673355779645744831988513789618065377682430201248598108913213384927033568760607959969893139497506600193022138861808884652906025813386076321905952675469732659614352883892844141342124430073155999917240626888380414714394199359064993367951975344312149310845974321656237520895631190836447953385661235149611188542682136089667529738572063415300071748117615367783760816548406676223286689509624792528564542052980183402048208050585090525059271871832867263528006058914223359082057228432375580732483520558986462067097783738757564680513435885554034020517083781915337093352739905847715795002730870009438333713272226065564006205061763471824295584434836426082048867365384920263693669084151622565455058659665624432299322864716864876123651943889200789848340832381792854577306198866946192663454269296763922668870789088513094313061650434985875906223531355161787382803604756872783298577715585313013990359799415780513770737618301169675320955403790717824437506409348434646539690620600880004671945468505847506285382636287487061175243576186188619718047643356227725588497440701960750053562837581159155767446053682008965327781788766035094287303096148246272442739312456461616681296631281863468847497796504938971731999755099141816260147232577369187381527371463434830579394495791829774689599344758679089578429460272369523250137540221499449656004888719779990765356759802293134931295728910230201015125446462784443880711857222703658153547450183923372684642636140628720577183243399946592325757929456323518881540215315874584703484229658863192893891801318507785886328723275336580788088397621935366459333677874201005083975012568957612287592022938555907486796026989493564101485804195615654276274101873656338190306865249346059141994089273836298914347313939228166761420582930393590699248848443679106161189539353551146636164859817560649389885088689379433884929824750164320193033926277214389528567268378296866400431204870604296222895962754671868001901213950407734322980419727181251819261479851420975428394430662040209195281865026087318424703952926963967907598384383070627236899142047008447627569794137574658444711401291450888907543731205346236516093336675492965161182068457457187339994633022036261337911284204788566381095945887253906330083168484248760583891006624160627935840876367985491743254865290719791963269210407970954438150912665768876565147656142820911775052631032588968921877527868168210960981134593680182881019462125522179343125776446127593902658626544685479242764762880253457992206352527321336920963171647314720300627221774073359398082158678748995817002080932448280067243802866669711022455027748940690639154951119192897988702753111722790768911335387802352990183756771934620150002658337625417893003697554070616019071673095295804699482558151599363830594922642935473675470845731897021614104864257162442951162365069235095170840274339476092759891413722777406082961528828707258298503473239684868570047352327500343233387470839592815358221652877399891118968474216606774113437843628359535813843834951552882433060792103410810245719087938893027853890076309391118964522749635554671398303693743889593691982836664965724939437548403813565487686516685829035815293241417045027357662183505720990282680449359095535490809395346367609841584425939128643735914873110405312534319353256335705816318326392472683402142678772117392166095187418831007606622158706999524265389586915769217795792213264225492989463022249588558861768196030847155700648022133300691474766383945613683502393076809026338736628022365186995144127797844696070806075516735689556590515031126144984783514784295331105385352441168108244125838289891814510288103980858701028936495954849891258241207178905360370570651672415443419261430241251833975261104196553855036839978425238446208758437587091999192729733267841026632071674085386142503199524416290872025072591843700430641626937461355346339461486562727042507620033358022871073811236378425178686034533703310439707392601482705154661995930428646154716520016423170655155867896753730381792127556657161287991620935886561630727665503154411748133066378371890349860920119185272181691555369422234198758821870207642392050944623433734103554139588960424802055764377244955816210324976735241673118851420155969797481196704169210479633538599490384825757522645688550086198228163471278926609054951517600137450412282863314956405852530250072389663987844975085087810996802802342171284659527877660288682262414585148313537827487642649912509624178326505753187561894350138501008369231079291354550458958967076642625079336075239700234304327811591524316978889453166863095690080925187489738714671521829780373677334435534442440901131449298622378174425765042605742738313251005715451002954851004984289184452571330407029002866782499289623500980876852616135102696029396573191796380529293238175212843676248228943431450715094570068892654296742854231239065103373913274206999529726393791184898472467748947778839835519076325095639848642272229176961240028785296533982964555037501784188677964213288556916169782034666292417743467640910168786151395272349968171808057106170459692486397537858359957837674012461112384158148809384788302291963420909506379741912976461039191654241689554169701040809673362077896247309139797717224098310566677674128957414527382894240245875826597397077869861937831003707339804378573612514715245121418480996498522313064233503524180481677711978123934671467095989064842731848408740949562066463474720636070197969632866942424265048587836006697865068263563984496457761315449434699729091061338814237149227697108678235440433999718289590245171818331011788886819761644320421818120798149560401596763289222360449575561963159819642298112847162168033941368082906683078080617878324969050608923277704455551335089335600890270008212657542982465513634311660513003716623801309412645049362851562299695946875510690653770727107483413164864622436176602231622616033412651702598143107527078353206196414962606969591087296279552738271502788922588559269022121340375978760518031017012645761114457271750377517487417902846803669917599269652817559497728580150448211396396320778302493604673704269514381489893118138788272535660854863854701778666119645134803563455929761076997255113175470210058162337327118051234049979258608270776433443004406341992001397447523049578172560084107847698113100631483706798034374065466002393002970179483434625159023328046014832704015045260011598270970879365065758870646319177837108353266524372355797987156066060787372129082236789465001739094584662526054098585331774042645890308079558171830813322990027757503933931954839921618182964235316303590559755089577796353650240183785584816682456904758025808427320545245311367291773331536699501535079658849748111291554643836409115216682096695636804824104921491649452761888732562782982722594459004032289658851322037604295016030404495744427253361397884063634515108471313960303632391876959206250747418236587477439621778102990683136697630109146744161522199574014519197847002333922818842428965034289715074001675583012748236146041342923623920853391866897505952376630179924989261182907980256366987512108950776846936817633033664377581920781428457684897938080305495342790877693845486916599222033615268703403029384016785938360951868500205675740946682023876840647444723320997280715147782235012966936140610325490733623219946529770317442784655752851923582856170757081093696812665333284760997617514107176205441446518557538296335449182550914098821762910519755865131580714028543339912476518366325229538637018894802597298536875893894367783036081366863216565384986873109468932618426662272034448391098734651947864990511532305471524091673524337123258008094875978231770936071406395028934981173252580171195388557141715859674424707582608665715404553621692044631905095535505361606181301286728109630243004112327113745789648612830246510449970225796768313815342705306839356217873134432991394943972835082984918571580749067484922195038507106275063271024335236500627538427520931821748767678276999511060673389944973444074526640786923571750516900179392212515712677274896018120404470126457736066653632909491391711492226692441967165387394654525430753037827263317308120671422169014976223069771999338768529705244480476809788661659529787522571782193103941982913424775449875444593371628257794449493827285070590474735123697099496406187941078880451517987896674632234058409697956704878689191767816512778373729872302785778599843340804527876412659553133251187174400496661187827102539966919148796242902103622939315361678557665002146090299440685341529130523022090037690865079481933928871692622216915363005670809775460317404526965462873872936391399859345032712176354674380926278104787751243951809724389907897571501467285689249340473928815532645034317379913674331835499123801743271902898041965518114929270189794075504673553297237844423689640416957755315316019935995677799976638284608806084782947713891719605447714865685163034608303541666834634134167622404000246487627019639412207399225595747177392718427601268587946775546919982748502483220736093603356056529914560498586100443016553175610770950524552333233714281727215990933067834516148085440241658519009506046866446696355458208862889616184200421549268688012371425339968439612666313005813200037250666338008029723557469310121001104543117666755049574180907134147577933341090656284718055531626017629424711969141170127575307019708914364873088119608937533612676486831523701015025897038210803596027832973079483871137321261111188404961597614982800487825618819790892251326105740974324931502397407091682924363909660799362966127869642976209127765129720944504354636914157029467295628134879996310018181551584186401008053685627576966261885976975387755448923050186570325076921148137538078319481493995371101898743286059623493659068663526482032803486464728622320383110786243113507064302443081126714246651917935386815960689337738248688662651768248258356107863087835308265621050029310715022559471688295445795860972010082493853356069014607640999801168871574549452414593906976035474067394905373358861713922522367961649594663150408003404144882313453870789819970403790890157546136320161264088765353802111848550670551347488783833107636998898705374799379302109727506458141288629896682934964754990353313160799545963515927277653574689701651380351960200060420567980499103156698592042413514918888765332781442374142470713108046903913758134997017788826626742359811226996366948272881442444400095049398439243396343814225960090254710570852257668220854503355340265150118496366185750352062347849493310930727381562806305545060256886479622286775846966908706292521500613953824988438048414347733800620015248620384108734283278868849353805606201600113596704628514201410940650749348987954833178833152249227696453585045450449620079159240189107779582570030692295882836437473775714437807550322785091234309978880983324265718838423944269433388312422305294691582320025366154877179422972242155526617605660664364483467516605186084954485064829428959485430675685485064792689116443221706173876311493490642979524512614239583762080804927320934415267359672757950226121358293744633337437924178615016092055259266056444986891840343230613483448723819488222064934038235788627872343603415732642634926663878405896790015214631457398073794777108936015384771149375780891079143677177942044931229510435437360229824887884501363656777314152839362861535674716059393223923559740787582333318377243928668673455383365470513735297106891408007522494155413636840735218682596026132214872414168438545010781246834534155353459176985714036896857243160993329191909809500727712385073758211434641206137537252139181283734271983285062376754068651117517476587623510656317692601119738175654914200789504716348830918824617004738336187781194229065022393417122863587916984486491806223169189150453917583423532980200887220000299870869548221021206789073968125838969302293624176136158611840903819919622162832550017464095771416828430738140013425297327663157830487672715818100068162898442523623330665267954525885199843337254799372212328563867060350322362308025663962743936639990721315579363005229821456648500311233070031069352861492160814072531050769212688126779585297614590822936172020911585935481163414295025325233012970128342459277788795468329375733071546527474897405874519094172171172464618248262359486090562116749933263385331255954248859134394082387209911851654667561695008148975514518873863592896924405495420077568383935162831141969859926717128677687958970958434839398141351400927478995400881524561477919910817246896530200332348499623216656034733464846441465895873225632688806419038121530784428787994065553562145583375693737338040340128725872407220921026308502353883524510962173062373889667990034181985353147860516945414109660558050209401721300658127046632129448862347107339294296137630057613239048108237477719445850537074608488635662290040084307333349565930048690175339193488071245764178891220505817801061757764458316023311754985733040150858895745519559687507067639739748079576812667399574305609087542896055494023088459327931741858409409931431124910704756051070399379314748114734479264391490997817998383906627001330135700216280388568381599278881421213088805482643479355242822764305483365289254977425918641675801620209750217997210065201337425494119438243019097147966149277025135636561743222455888579949133944855370938692983762077549734042882864297192417291388385643938852501185291723535949865898385383532178668681400026390917744659899687593711189986167739674343813167605408250379398737385548488631348813370776185853718457742915135765204625939451478242674050523643758051520695489574721810348689771797988353795279757929908669677218101663566335898497760600795590877909033946490847275882514940731604291825253963799718694796640526837788411557357963692738500664388252207743684144893420150300070301294878279975738948562496295151433244673347084648808254836868150229875093107598688856932937010991006924259135567297903130630975374278795930692972387598633044617268633866221808665793900473796518193902989488470065098551464301465399502964063931126449963848885345953049581511999347131988871111340562820450451784832528063366894964356481136762461151107736331036167241928165002325770848121806203622606375878937635131593361666547053484001966195657516636024390651992988582231658741270330319153365442700737957333905326132671340923430316369679889015352871213601823532477691377110044641779042220597187275753151767380147265308294119823916393801261392290726039030754810427178650887581870262359000816189003071821339087439037113962554123524773910962720694538617746533454721812515673974173785122320105519647182201301162267622144305075291057155471339101765907406341961068283169284783641672678648850219773697484437440201416642455752143406012289382878574264817689959442522000374683097804541404978985425080506849577887615191927700930402618082249173332604500637884721981178486610395824366448174551472545069815637920458112405397282075533458997283665414591024578092971893211274922275848096253439751783997169915089036504370091664230116438521824797166426150925841356535257353288822111055115066379435495668573669160735999175474107637015535622782729128912416047842026284024026032219237272852474858968667011820231299128704199185969962721071652429506675283730881853457987972649961200262008686052987665327001022753021225499464338864531525692253048553201976135124636049339091011217777343085259949004757187347222692354812921491967880326253246387626543807747437286050077511222093336610712347799889715685336248543139573929540916233070146124640022437873425516871500893902452844446904244972139221770400049525858208924859270948805343793281872418572688736947217011155610312963198306273101925712297014617607952431913139563644689853393895860751961437065519197854622976463496044732372407205239663065141893615273560557962276033284146811605964018031575656244341666608338972773702469254021270566583487470333946074293713920878409429981617906379880403128706756639042061099684348739134258346035939580006507158772888438080101203848853633412155121534864785523432045906892090221237746661758625481678078347542772864854050714267512957048326311526545895680688641215397950875636526857845212339219381943567156813891284615536904446014037323066233887437258072626083032770077972844964974400010608234146203312481032447383613214341179258847252163232751869438642149182982414401405206303789334233036674180689985456116379520198977404944133109659970786517772710415745357433491821970149016569167677264662369563508311762708433537931888089086789054930462258743316566686440823166257095133756677671433132569685380154916404740941638724372529075239467280898072607106171117037934476972303482801854254942414517664503331843205862629316162646277637814352764553486662978926303731140612353795609308910969828972922134381316509903418717604653791403196501974002594530702821118584186392310596285461686373806085344401050299516156338584642298447327914341244020836214241001381012674634200057971410442554666355257447726592399964739466701945690405308833850840947540580096303019906907532065720128699809087440381439110504541372315019063979818598639267072305039344830560787405914104467941721294047311115181003392014237169951960742422450635899669110671932841819034836960302923169769406505782666603613646668344482609271419680038704594076434356198951619232941565723174264805440575005226144404622337430330935454566466749517329449658692357272218062236108701114134022116729876815994628857842923397051254694388606418782844128963044724059779960992397872453486252512582337384150405069934455401399189331392643252183036288218984824273755960469241468568812448063369124246427745138720282283463916636950968130586380357350039857773500821406505783324481257017628012843571528214826063768757826043477392842686238423731620255070156567579112704598740772961509213022768475395122088278951470382884419772478398473137720772139652816670464352653832091440344021173544783858068812037958305411939745085002168103781508847233227902025517636052193035855267298166318550829145539327288789762666286967217328398010086987934458670925983743963412266640094926136354603491297336348547944269565719801438028558469180440376915893051317180892233043777426958681112310251548601360378598694382129662785038018609780980337166036760781232984251575958017615206162757856919478872304959853855831464830780345320586063818352386944691334676929145973098779791605487002732706307215381692624226547684478478800850575847119437931133943976561681750307120117098909263923307175794732170312891349389182791521096930464875932220927579589624446470776500611577297940928560844958499264434753424958086338544007123490208271885013804832825290692247019543382207849207091862160100034948497785804366149424542624446197404197722495868902202711652391607282721581147163019870929064612192026785549581702737700938681019463584205001481725189627630741028254650404747365571576554672323206757554962220073508867014263472518755404344469289906505351976230444048770800046609012087321250855836142814636305167535160606811297086257766570640632032983783339487429570848953470200731957508533524272864404718982024316276451375216453119594225890154513376028638065936300749255207078671736101148209319171371705380084447882542588605598762973279278799564859422438085022760301931341110771740812659664574811733878543647870631203163261686711471879126889545192950150021681768171893181780124455927715226678049274287115529399432872531465032452113464503305468999991982279202184763412317522328785973286280679029022615460308843786490057317215614819232305955656274808973635024845757073905802677310000430826874988443184876206835890586712610755155477808546644007584349737878223047416190924063066606703080926355183253112614691498733197238469386561940137197132557095006413731006942681859350503588348929664645104310663166140081355641594477221372880097779298817306311102528630021508678099397936332888628937955516124767572720733917908314409368331414948557765073481483275519822889013630800283701798511900575099885690181441220522789561084398344088665546650589549280859208077560039958034127740023113740239352966200019269143708421018917558767923086841322453081941834774077874500491460610636345297303797618283706951335019993443254973045614737421347972858875208350032063807103172842362669194529118704511937911452086123326129432788407114591952022605047647859302737903696894902040684000874580618872063116350107686166319937274660752513364251664356040552553766532019259753278968915073082329512083790219748846910895823928048172080679125518668018166772696766212457532150580172133830444866319574873828675370735155139551950635938891462637208697479752823050763570448154718608247845215187227511381045377678372485460170788511168066398649492540004131071281119794153745256765848689513280379791213685802636976479162284572728665226902215313229346931203654306750428065917659360633447576685385384463001234579153859403884382587127142681202671694905682389366762233816302211282142114855240766224651986675410408858529197615057003637159326515579068250031151131783670918766255202415888569733470430539823941894294009949762703697260552674648679034371712740457056842044685771234753088498148587847756176613071420635984253651063849043030190663904709183906120864568980493967758643391866574256775938996543105341877756429010771601174875896489283514398125589954990877864035533118759895100619153023105603046794655027692694860703035120501128944428598482131469284447328229716517056977724701413925541524863861379500504525576506945114484565636134491326904247378060314732991947152695756001271672851524642491633253434263119157755524743829570708838145405853638833789205751685975346672111160696150699396295197799668148510512808561890445885918494178291997841577059795293843009305270186886331551545684966500133494949476931694808012902527157134070156627049107716765160126023021130301196885679386013318984807979200699653477013289784152584679111761470580871155421221741396738547963113809587181821000024835596761135831343719628460530138758459900207341740831961388420130062163289722825098399388768105914254978517165523437278336948449320032538650457896459462354065247381239669268988130901291937076640769176017597209792839313918924017178142638356761099371859198605780853067866716194588831823764380670347736900082753469276829640713896220720121138278950090200955044111923627206278961585492439337313059056129256398809957352034002533132892549823199006772879638249661372931215890382544976282534841369811786601899692518680534502870313759005554128071549196167873347492362004929272804376427065471986586370700497062413781075184344790896643299542284800801825455296607333502954567052614687713012767953491600106537978308067591829775470205549768674979178101754272154087374583510044746101974421189323855299533427527129101010521678088698605140972560950472972781164584133204754713451474663611120520944964434337373804584321576662691147235161562747491924111249319074556774688838790352824548922782446690819346452037118586031183423620139013839746103680853651672713685892469411887413770629451897185540832311185063691575352237647827186112392555376818467385060342027998350462981376419814826983526925511368586078837568359706778221861147912897727374326169057363487378233797351056806746045944487806570371076353016236949358550272751871839883943327283087754191055639699833835593672235843958807369108029872559884197474259761577509927499511437794800112314130998495607162506432779180858777121742561744468692911869850161745847196685030612303612774160235069115006674145572107335349855573497032017411772447515180606887658552742655184709860182558953402713949089093503261291944053616721887053273203445442174560045796424396559310857783970656503978150915738481783429052937460149183486704983010532158937058885184508509451946863953334679865891008112112346393561636025341888032196135174462098544706151149639244673287670368088799864520461981069347962588429538975815673424947021972880378997304040392212803493028938738919572341389344353780479891397421314268057511558123336431434265977717604257526114507201274647836122767097300618693262658370603829669766135132506602338082028545880649893007336950831852688750248946352286519912163395876271229042271001465695582062432852612290948659497816134471008728894064876958020212391999769191419633592560556963311298917586603244870050274184029581485362883686648731817766995587997894628619618538377799004650055918024145090148448864472669604473461365146809882123688506580893406314887180846365000022717039304916831861487418486552513433586903948347210498702791865083282770648067515363275486804520907797634155937681741527900238105017262216439660383583559032113643703756980183524830016399648321968079557568809077525492321384290761700848477952496871064577408994365113239847048547705374422127872666047894593593070815854225538183389776214468358708869757318395989228185079051513030829517993223268248530178642274272156749077222761449709510989526337709289680708933287484509205998534790758308918009004641079295910749331201688634277405556774573208288704300743550196702042271305352916640302988472368049036467705943091366571985679360335856647682721604332098080566519064168862555366608629867119441714121860172781457812855087165986120198599308261321849113903617423709939811785044793947257614397521046365828285089629373629396653850053395172248556815325137566767584364938634986348944746670102277158766609289801543159665606439874961691097988782477689658048517823428248087042730481680331933964727796920799852569947867437918881348168119052351159348104645911332157247989681915941118697829351421635868138003786288350133388044684485196339517690392155884644479305266721593947582208928175377428550086342711306760427869533446739594553138192599064075023520101933392109700783758507820282699762021035914523494085241920335531398868246156887060515034451981319851019872034623415367936476839908948641733411654622251473165073388617175999697207787785211899073867401513558577053795812973266206257223225888016136850106453597183923014255911013959927562559847284348801796139214738708601849882566691972781316535750616914400565711242785007616172405873824122741468912730066162847948982908267254950914492416897165219129913490181210852922509377181208009762611788247294129318549840722366748165869855887462152229793484606870725028781313386632138771104463546827888494354551623249534915450494600737711083742800312598396779325731376669888692130977220787324344290996358881687780788925736300745843404731481571533176754271107734039067462925439157179110330156043093503416893938885717732135575556838319191830690142943505778563895354142287146191125874068848119718448638774086700972594433285274864671105027220356600942676499233294994180135544908384663776844671202748022875398617205182582224524785486430701559417765629836488982676832295907638227859125513387364911455664268697532407683073668519637520248592032737515170210065171325948277774756813157644249419143012801786362657678559386357056120038540013781769809023930750777874593916926358079768433217648317162455358051753187675293549027708421413873778479171257808149652432836634259477551769738327266620067859302831996509070251101447816737765534842546887988667287661102872298415446165047079425807061588381719480963364596757124233636092260826731585941414381645615860138500145781953427835284873654958886826863813631917166194638587196443907882310564402744930384897360570543784445006022721965704577087244459405933177760920321980912370678592138579802865802771934661774914694124982976694784302039355224172489051280556414998069681313545558596294227687908015599784805185769050392864258739293582790027181361052119739894336666908705875126801218185418827112343821677862769750641200851064119373368193334778454261394150711637481202242716771773492347463461880766330058898248326597474164022093855831542053479256124855462003810472058805094871843754137280178081566985678885274974832992969161919699879055741998384530971304750936367150850420045000529791925398665603231187489487329465809851719823871112905205240767229610091442908526737540526200597325382735787097450807036393402261140823958202818699199503977004880092057800514978709146389236623093558112720371852064020507341664354462447313733237625243436053780899192676257029618557637943648608565100585195008535435050863876946057618607902056499033408654357117663133499879146806030969250292305447384185088590864920556634394974573152809932355078824100842977501971190883458095694279987737436996600527844479207547461365289564328474750082957251345119842901871792451727571384761157250957078233334623777216461701447591420299095074038056655405595693448647966188170811757858666072303484173478370197598659705660288492844508348130785636735925219505592935219919848341122981448429590960270093794239457825942139573228067609176391627332617306707004253236418499244823644994282951205600532483157554284145413588016971415986254099154399782009083097481429018504756582545767706773694375049362933887161675949746100886819355379777072088193695253078725010056696461954293043975657346318877064914664534116537840265988955751121355807609337471137787182802616406186201185653891001225353490335320116928431798056487367479014642606559027666622289765176164219634744260460457154440752178551318126278494638529183384804816709759970662085654525066255532992546564709551279172290531576544983969772416777632010457094083141817890390770539410549728184880719069062681160112556111734756761881988119519460335347712124381009783557335388172667741855495959129775503385270573578993541741476012512230721224726831974798264324155976054250343544849516827726965966674792833122759067928390513688836848811318263563769671042740897389389413525022190300533478591812868736891958800888510579409494009944757267299524564184676716078729026795258575963743159907576305760831302797309052304512352655451554712373818965359992835004206553866896893562999658646571492016352614670225250324084494124205194632256784516631412593011973954768143265822044969406292426117465642928658328368760183427825657219470033187382316354190875002533690322606287630522774359183420126256462211214575109037897289715988770666330153680499037103552434544855564122960924937702435562855960914118550651777156380217353136903833841231451029914605246386130531749046253463872569700973103480525172189854629923131921204006589039013414533192399637142958975262626214179808887315743409549722412388553781433145742387212898038483298009972002106689762973698671781096594115929321425135511013044138805900287649001955849587041639389118208383315908732488609867516340046746209339235818835762156084665645193338059483432331357385892912356929789516357889690225140542181885971517465723039232705178277485198160097920781798809829154463412753586295569225041357071244255206859774992699012941480832078973347022243045770811497871598949552774763597259820714674101429635707379085640782523027000880908739364203043573220385981570347868138818018404440606146374838848021134152116986016658968591155931288546620946153772551440122188462554075318788137539311369020621077419543048227042116699040647516195240647679933998078422473865063034470696711327516259621657294185526407074563419935333881679036291657962231013163963347329601371668580696692270961300042078117069310750794556432295261384363659572557551000490329420297671273742054711776639613528171434698207901352302674678289888575732714559850357373286258243301666221094145824801844863748092392842898422492833698467228468315724672329237269477154607824014025011014448064332995319040079666266229144945816079289907137170662642163341474138634266241318138754392913902725629832846242390739374838519931891068043150292491292463315529671204168343247600136082338875959116666770438299253578540951704379213414795060614673538418217979637351950647628204577357012450539230711680453695561996899927562668058356386043094841652827746313814738268671803886232779392501761437468539747270740270145568189424348051525090430291287647990627156699362671544724649149288861246432624539837325776261826911000670780060439807406725091308415002791632983607257203665316162465745364485277113423559378215326563886890664522514213721930434109538500551426075840213985125941175349453712180558591202874058601463208235715593132111213521248358049341515690515386837434032012078746007538140627847684166071139888919028324085722715633760193721570093333986259180390839536773523595678393184232191555025084103578158230739911550577657233893026673833786326748223710831932862543808143034460554697529258102070113442975202709837788660948629950782312346957861125497063940890537440282037454618614640013948273030501762372441893168643634798650574006608510392355292480572173787512483446466242884412443197671774749552585410506281921074596744913153518341454006134988856819907468079737933203450558004007690861671429376127033393562173664179156851631570096340505366586916812370463482458817111306280974379060665969349755482814055250005178384087423505501889388679588511671236423564904455676803504929484062191271634216417796359807876633628278434762184388265105912685880809762767621512310945014434322589864515913681771313617891238656252529067401033377862918305023421861326828972000934556471428403257962895381713938575987951954294097633267339559727456175778251160974280251185137921345950093951627079548107346200134871234551387788680993378480436499577233568103660903363788001937720517311421326895967562720606081011193488978768292830029835527996502318036128874918774282761277793449423291932197049808227253805598240943005557772551116273389933600034564879483188831373893571853512320675053552484826873234551807478735591943371355321799601083603219199873230102921327594687279889722898531337171584329604654730205564118954012299837388235132807901645680374180013041196123566710437356371159543703363455839140933418369407176309420274017592024856940941556511735241127568921732880498083888066171524669486407662649347231801599430931276649765188037875104076074009214965977393561877081073466739852075947647615520869913344566265560105227592356854656429686746986667124162835564011234504476285391209176197304129837063741909592166222231600454629109833857305866280844044189439717425561752908271000134387244910269817388956598442430258900742789851314162321755538712209915555815097817143174752915972305837354095961848887237198203926875760040880212561949914082791097523784952191059425950603370286270726323973772319676167765264236034905020897913944935013502085263663984114454273440023874373115675112306442347521442836280610496682919924902109687250789061794679244352488736332692090055680976043465730809082680095338712409347089214318181289990079665994633786199456273924183443776569377936046331897618349117947555103029252976405580048363307508427232456263871569277210388407716533570598839835108505664964249313017060290828101035726613072545759186650046728857426554455969133606362794204684455229179719620589617739373878684653422011502155824568605759477778566850538545422166603347241646000676870094237248944007395080179339439910624256322529339482083632306596735693993681024712692283511874361196286193116552799813352852602099763417960736211125698181100297386249078262680361991287831109282235764490175156785198691809437997679896009845760748726436461050594660412973626457147077988162027272631082877782161467158225770219496244791665146648339178432385358855260317059279426847264461486348885212281768824102901240472704057469646759636841192289200421737898727559387376758153274986790080408865119664054769748698908516719694689728642292101936064086945902004182921566756135688227236853920710504829836041615285252800444536923071506615132721541318242844643850069485317516830315615521925418689719155519142328439481537074408336220670934526219621191338145896246559545444127421375177008546914848822773934176961108360824120067838243515734087602036051097230529482386730983255916985105470357891454147400915238299522363377996862019581435542077868693676660034973148459648731514420652201826453829990738693821337595284468446815812392423971738754168883656591778057940589549844781659504489947665245423343833390930142867033400339101414824132976676788655629605269088091770160402635849215174515828458330359922004808620019138873947068056488367407125879961373472308621367500131071126690055583834111231598398879648523288489436680485173267001205834620364203779632971823061705336112546545963132051798484693236797778084831706496505821305619928324487818800257678262729901098481461797384348104500869519971543149661160789544762731418759098903941647204160537959264981221635361855030034531173372759753719230650808469404097883865343258900653577754792106939117477905662372448687712651977172601358408525390543128061223288402088482101033693945757297720476845302066072342604648400418620315144961644742783955904200719973565218814523248196043589400405589506086594863990534030846927704613780335194357858467027020163864580249240834867192998009528642321855283425143106530445145801589381037997641058540792245003186321268619039532863437075293666982687570139946879308110660588443140367726811331130082631451144603063773315631090605876962458013673171889132785620272412177803094278206895350521702431493202139584121566813633999722348962136424932391351541234196504798447127849691463863042038013957455341204606588850158261464069958369765845698989590775589025537711120685938899482663595183670293436909376806367989442925970583043938222687011418604634060352279314005470046418639163510236940355793843989934917377467164027588582248884839549574902910322598000865578220333374849647865287567756435182268215605252209357080012441990244003359875016936197646007807298534836887684577046374680979524975156642755788209866515196200773052662965883887175986729463220954420474548167333385280952636065829922323123847857523402969970876096536110279977262165330814481209777679231803450844130642373417331297593258492649257384919488934888429471832038685325982977029170517532275628847922905065293598979073150194702408865052351191220447750439526455435559358061045209761396495806333620303431823520643854971690456023127174938691731687121179009064237157506105381059231174993467761281789005288773242544813207719228817315262896971452161975370571963257109951033514534735997168392342711350923791773703987658490468627228805047745548722451972545528809339830895447304545452960884854142699357188411648025105718522846590780632009023828692572810423393712642278671485083293157566310878431465754941719016149738396992806484084856449698071954497366871412836894751464808027413331247851134546975449791153725313359737724926176684532266619981997046745897016739893596044302115907233054956303384170664781496158271816400333847597191223838275911972152284033337826329259532953878552590456798459634630315517437408801393855555273976303285379856271493539051536864351027947198189772300094908990571530839469974261299419909526060162126698108893780831212479917579043608042163463445526787030789800587454650761856099513780208181059658881047331660725095732684028228735050491938108176511668083310009381980824033473500831905229051456122677569770037571591505711320117847801805035897333339428757215621782643185942170537927022881906577904629045326983623401819862624781602009246758563410981599871034301216139483252853957737924832234870728939844453459164713057147552714139044594082466318235900957456702278300929769491820569798251985229534849072699564790972511409510003734118587701195546397814751549260408422511110320799036804179279571791377487882449089060609664366774419258949584444442933802776131600714744220077088503772368521707161997796455588822970998962932146432902642991572879464088881800247558532265038326509833722154529504151133585365920018432842297697889036312356050598423868050334476378229535681911800208602130385955535049626093919996182361523178782227483029326294728276085793460976133313778056503362983041522083011913789378285693377793613481201029176805045375275872391244749249234970198370862775815186872915024626193585737018704072367859834064146734150284049270614404949976125260755405781187439578845840521611473343616187129859668067137244468732332144347599303388745905281567446883914102004163581974216850945876688066091507852246931581707591123847594755034092131450962769653813177066032497717083580231516946030662748524559694803106364273463489388369478102395349077954299218444702886931994194902645912567280154223132628493644243434920047617627297723121322760627479246125276835724608820129289040778490374254893163619388337998607861995986224893190327251976113857020020149125869631564299678057062536203900723883527659508214102087199045478600812827376996766262684088645688433935875223535085294665642018966972538921615412525487558166378231019037918336135064961676078765167178258137263881784409212164989084267291824869853727262779553853952728481915900162427905104384521445933350653351832954079568633526206903517029037346500297522823325611783894998954667153699340609358776980870320524386697885268044170020772577050167132434352679479609102943448507012038730826152601101816543753477457178940066921427933145659401676361037196197323919318857248680745027629151292065656838803029259772820588285378680679395169348813457743923527968196101663315268107777557526318049335462424665066646370555749896174089068150238199304447273909401412707893000195383922487548768949903830773035213488910129233425813987115454972571831350426980771652086055996265741125338226169912625518664522637208008404607535528768821053854860839180610073078765318177916039987936955422676223446149339197723929594686649662968898813867384463416988326400707562923780050077798813113092090967212010828758778093715938038787994025737106575034315797636683965411524530213218785931936327284884547609666906714451499288814177947186639758860736470471660878230148830038846735916273461803648997628403110800237483256451619584164795035789759691037704033110240548895293670207364884495290741525877013456505396119705018356604245770319274838375524076517332627519050768235404901417242445428904043796625532830622380414341686243251840427119375907836011902368354141648687317737059899454046450244454302534788622232052430840660785548727739826729600807930722100606019265554994728447320021261616749392901705896018863354813353642390313833408568228654370747246885323104128948127755064510983507189419943165550886837951015312432036412174979454588236053957329936899381303542595483131892122532162155149798182256630043850292092063568945228863070347527140444191439343007864957740902696107648694425743505456659423259052987982681611231211504146440074858288480638071518692926380714530911171710047105397955439307909341306863602170052713641168591004032004952966864627493608013211031227939618171677696446941250291723421521978327569387922383315350258347805598680319228928868220293875722452639575730124505981270724878101581308811020023734192273615814778753382097792783177505507062423922666224895163290901168224123178731045741500086385295197550065698074476926104617106258676245040435553979149977793541607019319014682391858452496047181402956578833484507704172212448990707421655215653078509592293127794853593381252455515153295374443428151801557915462391223052788951621355193392239187184569654725460016009715316070836538899301642741275963969880690621234866430413526164400451468803491939126131352991485191873605809162256755040294720234083756074539301016529504378219290790268038505598917074018423786576941830986554275659121743257096870183580916824872662672382618539189080432772414286399831183080533277701645790474021404632675671601535358493727135646357663723497892867465776303632876258861205086991609856091992554595627116882772820395262877418732694860976400496756872307257593775961683384460065778781536842403368521904950060490662593793098913612833559105512243081675085769479949235144011949220672016027049519269371254271560867492060234420138939421532424098652816071684530607619785822461383382831945437528851582618411009186646046307384032087161741777553678602269971509080448607266432409929231096083842539744430349476310948012176952800967390458949121664671301541984987523189245806201448613070238713689166600846058421622043219482755787506333365335498877472995353354655697242239682884294320092316607173420687117368776964958614267530244370351037323228547288188470056297342262794534389008566945280438900289079375108264563852173767644347400129224469363882840255708130124270335724003397627230931591504174529511799597005772843385587862249816337976556626235254831133567490290958997140179703773437142875718649497037865519711521790117104648155156292863589898778004423278726255822234808619845569327513367453592978735142148020251235053196681320382199897481111788821606157934074717099754501684578406457572295594836934176118525188403888001597523392658478666085065514681336310285059499753213204775702751623443261047046489055123515681479390978469496717969168080709748909457718619826737008899654220155273971697947701718870950598002976475688164710407891053769155563261729391782250651796947618472108280952582167905622726968702199774808752268837167490236943164946732451562695578496782339196694582227135820028796993445652505538854764092602669446505644175228528072895263585367433689832027083782243440693066320126398849601669202252687443332184184600949576009512667742927977627463266001467206724251739360829070411646044362685509624421062482452388648502181838732975845734928327397944204265125498482895557799651162938058867103097633263393253836762768162092775613005445323312269189870206474124736361924042374728148225398249892075154143949128674338927348096546286556203448734451788483827381136826387298446228126538008879075384915126812778962201548357702426006537639718474867089990577001623577319383330989297651763208026380452959672593255039525192623988782612269655293331951886231400118399968472027082065470267912999366541338226524631464508937545811532287146371419364444316809777711233940750013840114465880480338367937154460863765132639249677402840490459015505498631757758883991801021558674076397125326572176451741378228057466350972336766836760203618742284407361025399108753026398408231490576563784526441437001642458374424816667936961073177888259905839634020010960962442560889062866761646098348858200246461378190257186793797773768773367802751495525636068648848303603319263251748695290401600535769477860769172329098715890994984040704954023727064066428887401449696770464666399161687730430047564824224814806127040285339873769384167354361858639075466806887624427234076484218323429643094796564148850039880619965627294940027114902896836682484158164390325940069607117917295264470942155716878678558506181311359937770261803855258338137897777217433967975755664789976221685613267251862707690120916838502703378797395080336674277903606083433340584910845912410109696459242069976402093975223626788536746173648062620490321580205295784566657621140999468908498678642987743022698316302787113241980695648865635707517491084418579269869508868744889565876468418535951885702897879765027243302711266385761810280861485576867965135024378670740470674857972114225203503564488987390276475265469890508583290148668150356098204725247744146144628706814602102933933220065029279429582631805709514594622438818965003097318411833484983879082165665669221414526546941222955584945221618862617980806009913071897892406996434161685884622552200343826518058672199676844160973554276980314660673587787984873329784695019051953561953835329467854030948787068329059484002015632032890490540590009162643470038487620961474581654501802736583045327154770157711221433717264246432129357489148237419683095654295899272468328310509890606322249466876284648766958324888815230356978361555485520366543625188427061720537799663729516680734899670834936675848336957661154915877255596055365199146521435660256867977844529079887126773556554159060685570886882159460227611263227268599812918658612931809933824448555206157517704163365158386505224179865304678841663530868703936306609158345575878822676953389933774198451532234361071679756455437654508618605135022220467109558971194542047669873135636574548467029010468131602851050286986968648035606792054278743928031480875730452196926257503887424938762314892273089034979987489417484214970672849496697941849641117036061741347468284004338067787731618857233003104486024717220288176588737833073246470100478714112378300043225517355671294388082380471787576366984381017199803769247062283556754410077832885434621504076287428638215318404168250421856166805913396343882101704117405595346421806419591316855674247080400702913494190533691478003759299274132133232471202957303564275479667471498386690535958176737489477476584916784527336397873216397370466085222523547168560491670623567861094427069640518960473987708907383668628667593105854248400333484109116908688532706820539795204519915485413152295621296625727657954254225840851659328503015638279707810304461077956592413434876136635525938083741544106222871321412680592858911385431691357054567417617913181964236441459277996160041906276452936727196398451344022338599827114481155119324958442668588239655435304087221995361224852360776389664217362489246996803237263971220436129350127020906096837006326971365522893009041981670282725901036400169802383204769498740705589428438368574096201155590005491668734804991677170904364914577142448553626137467772243127103576255748202404792147823081020811897012502461971017405699519089142668368533037618482334120649277008176323647244648851734078110531941080136382439669424858184214365109225296333137809991356038424317818871035894567252896681029496133142868195468068569837056977118552594584181185978047774450669792020463597396552948714836509822208436077178799228973804839728091130308706780321901381764807484795628178564201678197745514003938374255378316844631743928727933030166669306442534617402713957762675817998601069223342032608063297066674120784636086519497406317453449202084906796476195788059183595756385333427981449428250819131937297657239845679402160079042617046456280283774361785284248413059195069228273884471547920487637508187685682036119691110495634838128448298885584104467462476750122998987354866534145642870090477084766972041757142350053211964913212779180279576654131886922657626343831725929857586190662571599809571338341030198886328406846798446531875296740365258056074464021205295074151150917808914851324100930179361167236504801415144285123251049268065265928514312385815420827575129097475211029535522437427901640749420168746678035302282502112873413385666900387315481577172911050241220238331746833936602318644459735464039328750200111840152157780385734869345485294405566796337128265767108143166665161720508411338760377940235847188482200334512002569590133188495213504288947019603261022678916883768499088064245866837073435080206243698898573293074859914798653612994239137730183981067688158711188867177641283662628130075226073413649856433291895384264357143359499921968606663808937302425457458899518072843379574588512937354245340486993617965485302618169661431388124769437626022445754647285557046669842512807907021078525079244512795594657348220858238640379410797647139997547511012058651760038739395873858540533651476957073304350573850157015415506759676592068338662890475921483647488783642944434425686025799296376789228080637852513471853663086154209684144689659127101153120731886033166934300391949053603067049358896486281204445231233690529992220080619834774940135527912974379998560976169598010044499922826496891208517836692771775473745538185596993291234016654423333352326876116267884646367712266821667460813988771076842846657629016840700300356567087103668999055862627203484090313842388273790346471501769520022268988701644010384336301722514029657576611252769264697734254441781288453403311851925893288250222592601137920054893888660129707153666787853678269605151954675657017956026108304508320635286459360815469848236555878320477888730396714457891815572177675579054532558402299792120190051894880052472385223053881972883602669520425861321709004549791755418265129219855337213868673340830118240216973880859410920034052884610078730399229666253097945502694011325233608026521188890678135311573914449302961263777491747995632661765063516208016114123809784389544190516144943951848593476535018747211725898848218657293528410102865444980744024164406547806098070226216363522268691887275443450784280341202903518938036728483000805681621982325382535159164358125959636681344536986446553926028971050899584491184507942452863781480042459430171822847817276809080566787644088919819943436023636131586503675961772353807757142845256922419974292198177211313984340694938597028589536899458334112113894919713018459332223574103237843589454456553475204611173119027349592368920535763618802524692120049955448187805041661444727388262470804383160073511399578604006682780551887541109167569527999782263938311853627926506383151451615113785863965184317931828146403469932587936451131220358695937664145840827332831374602525889020047308870515703336906670700026094857105332416705675800232661038357744896268959733194625163118625451799747681000112403430385942339917352407822006646297739836834979583653266291598238530703384588037880835200934204208724685187906335221600342699367648136927672844137240937402563868772895843407742372980054082521940730604782829697273066396889023086864764985693309546495041041087998978049975204420063315032621144717859619338274898393817823422912892606349182671805533025156263761953522464888634771921422571119411843271143121844796688055953919850516365218515539216506904935928507195907248762080089842629188570398348800343262368727855204051121169045471823478383151606785167471829691539994768710066532449002550319013346304487254424246558677625242548033280470865127623824420238267457825742039442134310464126672854835461668852004344861325991877768214113019097789974819180747361344128940636559299294641688338071467103898587343421499818437849888537048352763520263095429383771959008466859395459523081139699458282724533703294024112430378493280145878845845636927024466331918437448252750945836434010576260039479732506254296501106037982578356607329714207299757172417759462916744138323530061220572920471959774548783327671046716305023258127445385412851769386804881026212184889690586046120712394366260102854379136054943036375623347734628258785397029012872706211406761128539646748806940298379649620746249630656988250318438011394563421461327097410758032950515262345145004753514760820018850891397738127638298489186171296227088258639163046967169763067593608586765114673874009866899484146625183034347799735105552766403936957493304982170557053910536789298597787792202004489037473371493604162835538646421678188873179590641889789769989924226754536873887278616767526131319489045893905650613172840753801587898300608304734251866376661851569152215724051444813028008458413014888243745164097936016561819108508272645345022785611067555748163744639602659131292534976678120848237247692046066470378321930189977455995789189544655075561131461712416667924642789420313714860346676714859235628424843391081611770183530607689941061821569904073508644251942131046090254776825221052927060546021300355425113053078200677567713047353509314172697839451320320171265079760059620759924289487342886405522918795145259616223913198002545803688851456459753562153554335507029905389364270726137810605243543850567548368001020559768147063658404733829308851556784465247951739812155020898248481114872699351092712351676588114041002235408120209121972577545695554102357019671276547172737133855065695876902825386793622249925228510968930917805191086163591851363815682952996742220040107369417631235077178629081049891846342242254690646302074274165768245783880425950511242109099792108241771978100656063811273598510352090876922501393437679269403936711071691063678527430861000150254850731618488280755064761838865269058334053694334657650919238685244626994722388698373872204971552506878141979850183610960230931690521931298040738706623846319643867467464387473711911053207768687493944518910903573441619813526468132709738403627140180918778889326504801029313029844415111152339042315320895746256189193423014836236620079433319374050918593432062775388178994840281155381593590829335164798024493988542709139496396783355787386321402792224953718485609546971933309154243717230937006845275138648985473760964539455942622240234120054906721598961360503902649576336927447768192166835743290072503079555372343096963052294263499704396403353302035869388641192499650571952282591876476466086946745201777651953519617338928677036058689110636408698963376308708445222950493195188569286048248421755728942492645991258484654094341580261151551011292036521335668261781306721972755956974034650666764480721762052540837849423940315192333289746470568459733787063058154937735276194367741270669729067448463372921197834875907970526934736980577355827700111127287990892239500763569271498343533949372713000767678235665509820102309621710647925114894969774033832817187477298305045381059660992926630697167925744404630603199787727678470616820097460802234085643532728610325642610123698727950521352825745631639083710237362820623949515743072830370785001877127311502050307327152909156942489119642248685303199236205425905481498614442342009366724695362728445210203903126498020065240144985800349588658995523586700080834606750539796498011086498829293171646026855384693891212208787390263095154535385817973179333487960834962220255844614926318826442713113394120299484650067301344974652290523705199170018156064618924598542813566948281933659550226041985961124983352287746011584170768132497805339817797903780333123928227987220540603765259760286459368532182855388344237575527852597108938041136679416330238849795205255630641018279862051910895034762920705472235622431656203984379101655734817392418191537087283324525702444078020377995044493655665253335560501545359387968017699831373963586860156866038372282231995536484834087453464462831714805134106123393354418962409633563150889207964865396453255810953127609307200227545868849973581227299464324727887769092085344969424300636598981180013280926932473611850118690080556182628688976058751730071222587138067796942680348209265586971822082787564202080104160283156837028864885368293962757530496817716990103127929219644770317733276479311750475402367395760357315838747287930379218219319702010477276410331656999520038960983054673025938022740467640257301156078964636471222390182996064264871077884505000255529793648016068707352552913209383192743609329646458585804855024934509654572262887149339840838142901286734264116282483693284335278238793460119338086074626042962301040967405367664869048014711882950582175059349565079447031014673739112652725431997382770612203854317659135662588255978699973874769438590755809165799844569971287295394502862827502486031458224657356547920574789394409455683183353329174628674966734862332696296990567355927610035214323849269013010941977594617529440917620675719816275796282506739883260680254526575871911961673117822723493551787409763756361437672252355666380605396933065527916353597610380863275970599536296122571530432459440260166844073813300670916415676664047580923718754418379673664697149558214995547071188880423393956582055072123976189566256175420487403857271369611129257924159265053351310933352710135265323322233799946038951343478741786195264784974005458143897091935044535776783907716817290634652698112779083299260496800490082901939303140595289035002912919485673491802571963296713547175623545901332753815173745565487881660414904421115224456967305420268634626756205092061129285675620315382493137527211119818142487255915102099108512836557745778861009707381534709447188068100688860468884691084137127496202068240646055327375024418719940247967182316408353002171875900979887041031169179828418549356203158424919875343747335582818037951490640561180483450354532018484355910484605607669440944406414517325853473988697809855385289183490191584952422570751629151589042690796627501969940684009699529544634431637875659802613919626708857385194041268816148858939755265479214998213411399230453838650550551314161495198175710531147408013190435811353764122477958951351747701148138052691486703634136302612120101207389197344207485514144995779239807906056141242072835303028595581204864907103962989815297990640820644008421105442584210465671469973178860548631889736903222098604432792602791100722417060956406188081721514304026247694058544718889347712539036344017474092206774152484876001956079250849893315252020507552715101233301623788215456963053307478520320535029605229468362862493781547907891375337290347447993313600144917600474152178423096948896257130242104580419765628561599490065814712624684660815219697568455604538578576380189121286874479023633739328587064015534706748422760580535314283333185390512945703670753469118118315200491844837823147188131350490009529227742588432265476859890280561562869483358917174231934481660521566930572279818836159883405009301104167711946471680665998550511168551407840331705817829963079944448190774655909099951104430164066215731081790288819598016256135450217554812689963891615053982343858438299683422455222529584551834113258658207295770691467867050800559932061290871828378336135509727527281476175320362824783797417566657577341446508342696809797101655139255011841004673780757318927826590535609396358973688577775680878271648616906282266552424233528273087846299163348726300043844525148241761151941050824801673255960080944865345683593248558240940077951201755186292083548711974648254710135496543616196449117966774781481558912029005109305662205450749534615238372592901943874253855408225879508568907950280452139681720055809175036682855211303424509119414788523341443881370897420133094815294370368129632687602230612152296389698708763305416810057220888827256811727910892115982186622575590174948302832783688518650930808813985386386600017999868597770966815165626540443118271967782891745358906545767187109471316661182690622543372108769983996354665011457748507760853684939275278212912044119028147087661103555461210187485582562217812896310799140551816693753779461919379869263739810144055648077634298239596180327377385606485274052969324536932722909662010816460419871742086189246651634315851602889524196075490841767643551203055476588600270839341542033869152758208774620009008600099962385708073049154054325170319329388649313744893401409562069174447179752048236662446062167859566676910191732290139537812909108791653978703150156120967888827694532202125090436689255109259916806696642350873713302263196563386278997577140727911239994179278096058850487465677460206118377132337565797889716289097041274953958681173368243940578477708067602803083077769024711472685219707624663821431135931148492031045571769789665255969666056653179152532425619802437700840367180659205058041443009961289432557997162395903599693916496415089854207699630536254361070500768980942734507933926602367028498771283534548199094523869664383836187608078113075276107900530305690639392321980704555521898027953185591361272908182121994585373603101559369175697218493271968760852407737245064856092716008474794952550113050369745016441506041999282104214296036937896243785128215723287116962645416947112110425952725513603302164204818152266543489620968609404229337510434813830125600687420013513960899236339165490426955046755057558512743074881181898677169659128564336781727459222561824812061456114738183080360325720244552805805108335031705965945320363834630573711129293468711917815791264708422219761351284085363267044556095851930050175502750854046840344707835006640441906910287195084210250801509618325035067879548437150265219407152680462987649100846998652681378630707494761801413452387893903218493724421661529926092361130435339378411615131717772162478856513859989346033034858493825044021955138028604363053118725032862993714649644829290668044566596015453714330173618459861029338458830878024563457828392399561800985863835338446262899311792063646490338508463147746231132721935861974384249671796157540280996464122695377024589206411479786119344647785165609121493841053733963965934878226906899732573610915124232497823365091119156400504288636955385786492056642600108421318420952711831022933531295786658576200013940471296335361894522292164427002595096520930934592381223822079457688859137128169082222335276343265136551124883725413596411704588423315681217057144057027914016010664452027519498553760393042255972041012784566748947492626087868065640635772746324695651975751286602235977768524721587852771473674479130013031964405419472161151508835709672473312658961854981740159945792493261915588314263174393263479820170391050967529056191468924216216252494807261595272388099017745279573835748023037454145377886006880481290654096661149739915298501700621322016583694033360452600737776481548356026637395588042575145366319907955892317674902345351766438230870419964838251076789764119407647602226837575833516160975454855295230962430033971385301912060103099696886257213820087001245273370988920075717639147833862751112003448347549773622028239686790732617200057828163189836826200846107675956893324453369672328956978483950871772521771506349108848411178709237984572150776324697087729287441877048627386034078436303235070993693335206691812485084444576288031436711886715001452306671814998270135112661195489695628125818466653290882633589038139162768196914292946886003483455651106372360462375392236573433224892808539469292393014940546802145139290539774627430636049918623732590042572828504222468174705815135641681235865388587620866092798761505399260727634857019061113960531847921675025322171886118521290542290442535629731467825752973608298386357566271190393232634550543331953032421933838730266082215382568639321508891260585053048675950834157476097176047592249458889559171830956441593356229532148028422834320106776982571201999576847646565420525137784916363997579815436812733800783167803469968126055123214275254030409822445897087363109230786119273637304204272888577407053731883949994705133567674923785968675921635672141216481368116514011157015008764067922452580063053094745021747671890491999056588813277769967813043353210854761526136523939912041457098503759259737987249518873801542005021366798835300446720089494428676062191132095775999557303876881182271103125764331155468770703032390835265919494292834615285276126098928712295970043628908444816961351999433523271055867603565286409563398303295069820549785893716817914359608721469268990050632402759142998649062136452945017769490185591401933754435162114435692571085265578264962377097738821127099907470381496112007498610109266281228059090474345303899488815471637149592430411426507713696013037127421257601617997373166974143333829151403797487185269448417249807845928406939521832451884003196482756608255180771231015111618415566240980041567483000304568034032275603507107498136367868577149006706307521080361296112062376265729129512964632749448021754519668734371355104936996489004908500564627065707113566328193237487905374398823187008621711881290892156650425557845816704634031444678384123968145707754093429302082155401495124318724985220120001833405718835465767793243460562709215332891341250316396673867720062302004245358957383400939585785054895465771349629656296525560788117339189780113428567235077975566517331690235156716626432660350746049183462089152054736495071348683895193133328218253220496965932463742101145816280576951426755253338957344115461841464933069582932226076077852591806593925861924687324144590943717255105144169854799480678807520167282691160031705933811047455871104603310128528268733748088028714701109846996417989751078944524716933662823122804233962432595756217863329773263954208744184993723203388886555713148549034137399940636828190123848849715042043525212264209684217800695211595824335446992794553614571736868702805578111403984936822672078609846335481163089250135894180847451569684237890968727597932322029012343212801495581922352512033905839142290530894402780573504445870441878600969081694377770938332703371236298555263650144693361001922755803027044413597487992131566722324884149668921417226328597383346393652178072993174880655650802351071670661524682238119455532909277038256335341113995332855075400529171136953280271314012290242334708705769600857925412395307650081414482761364477493036527781467285241609167526176783721665458125976469042759269641643586063984057501795636729095959913726472035424839497320985075242307894764947382738989686390383298984686219514183676476232452356999452997987707244214336766479828066913528727435934726062737294941139063676619491141692911165759583698264970579801931454744546387518574572034063913945678453027513397787079941615272243086803902943710569702960705341897256748348080357040398517628613236100267923943631305625185791771909110344682477095971086657983524031286045186414641391143874531410587148432478638605145418913014746647140208857076690815621579609346602128049750990890021934542530749421069073639068510365494751277428075648773110251668739616307174673625395529807988138762769608310375070001907984576330282581119362282773641850911387716595030814534815816674227977835987438646230303730899734718709380760098621872649765325665592023734890584420097867284072188026187673917109933148577569600173852488676611769526781689209736716157313460364052331829118562563071649215322221768931329367865627807437518220069751193612006479354034839930686938100904096121997423702453430362288978414939910296114312030269085025405205810209404628382890141277921463079909663656551629046644359998474983826578383711574745010578805745633319717907653928413324342149131157468719243757077696198327138005225337145034600995515053460100520360583522635082933488131996951545981151179848517416867537889202120744416078416135438457259313561074751880071963183647774875194341228123816617472238369454396340114429089642462187476043447966661193770754804171981567064816657591466093906087582770655870745143154282243226503315027929511184214794138496556964426022773280699293009824709265952296754157680195562630512096923877660223033423551628953611069726499772850239120922673347170816851142421088302061018942863694154163378816421972030023256421630019087765975062946734333394879005851809104569252869024622813257495184836116035773337780713443723259640403059401895540319071001710177402743183041100240962842360750955928438038527729901922511543724627612730544106014784556140319344075047813310834765241324998628595808483844387075419344668121170332476955664945050557011136781800738882817577858918702193147965144577850695070130975213582258781641383064720214662442604176287294359723665533981409156902103038298635232983716878411885086515313737205138688595477305745842382132428851224997622612278421878105526040279602527907499568880628500003830891404768118215691978835456544863368061269900196874101309310617538676877171956586091939577096370295404055484396730887745303127945610154775764817074984661881606661962858489562390201839244975733199094236136655387951875834233725058716679387955549817906224475292778490019744384329934205170213383063598613882148032054581826657052193163268100885308397542216416438368399213618198584106711996859943335483129259805856243837066298567512130223122887028602662753404136095829083067336355606111462748412859833970412936365404337291093102223840234236352526586602576474890217234939162728296645324301472409706511250860880072490598768826743492171724794262952201358274802008907170590047345784366979732266124420062381069361162422635038659938545511430974105921152630185330326118586063957239595982412896242845987622552770320523210966101227693777794434120287697626390173834367925502248394893213328769565146593318271416647161994794738910171472386600863035813914565596722275728333377709141897585689018254477984805275612618723687537764260135856378610462853853614073517968373696466123830694603114588381418738133528599850654831390435986269297566447955780003859726245119876607523674259234909642028888077657505413962418229621367479563131544000296887352540420717418409029013803531201980716693693894510791290843181715846517971209568062712837167451273950544586370082952192871357499030797396148163647208024740275496723082719166434144518525807730620864112729931754907630688926744116710454800994877411674096923675786701120288137205424846048005949505555280022407741402324766064555875697916311915943819233966317136773491124334983036676779122990612127453128508502151264790710572732118818725264387304353428568004787636490304214294315978691428869029122664580788447930120064893964377018532511989516860758313969502200571136058091443903384019818616869176806080149135674742064156987616388930712706246622732354167146884543212368830164785315504483033984043183391891024046906163936362199705434805955392154356582068621256028986678715798332736095587686466913276892484471491409738190520718249727428858738246718699074873489682535968765284310221269554177253768261426469948815907906841935338862902225374496319176344743076930640154011819485662967156281454893938541081442401135883038502639667705305615013313203177601273548740581095898090348941360741551024970412208488360780914181677802980744938466312653275692537809328615624155575559916291552258177305736558641345840357354295539419609440624244095332000565311970959670731771732880439414016258809971875616921445746663674756249458783211501420791629167448217728706484673095958844973612977792145837416552228760048175071348836628306577029844805182279132439579402964868463907633131854007571005008848535560356728878093429960493961791071413749277916918681458058012016056512338660168118550746520279925811686757368611890720198547267112540697053165290075195869622855456022335540359244456237350848179380208117366849468916537517921487325199716844038554761613874713249987791156208884211169870186653955991234553204833455304759799730115803687768445629877409985742880573017141095223172383268741309611149412034442871151949643947641441281959443953413565734768717137243264309032770457541031086285935871774858826457069039644388086229583035956785844093600528584876249688885402793428561086415116931375395773155396713532446201120869560678369449049061226620616301794866521973861713271157752203272585111080664944208651508839709388493244089552498673076129746405970128719293564364212254335603654666413128615913338035257911033961539386504397805834722349417946625086099409125509412727971336235147812527683839465168307462152007706710562718709525098594002159410400541383618695403727155258383745216743360088856766578332650026589220854211155696352537214652541771976541275241141545957993276608201975122377482943480902529757489878437617803915335219498703782731319020588883749250556863047636469858353735491062374973262589068795686473610609477392717737038840774759440747704228580454080073226984696007464310200441389710710808077929309352813367432548366131342860720100233379880516074834271292090678437371686193398645822455069850018056415045584328079637627457599010644321172500418257611897204071124518849038248907058167463807956116102453564560190992471204794026068614237752238257174652011236280488734682899932746886701068487933749021139893144549704180777662865450234598884533852529250745276365041561227924625899033332461177277007271835863340504584345197460718391861379877613113582210677155508785802297536522504976362886735259687250310272215114847855457552236067829149202417893475735335531643975855440555368920533695888127820788828965013369928620710974118965627724549518483894726435968778006976991831250048734246190165899802734624183738935213605262430519249460016847488659098190382517922122190788414399018650559860711988834281705633851452514065058606228498716767255542929465016791644226035737539690516958878849116216820741295171154482693138940080691302285241899341490500623130720144871414332508400249724251463530148865416581534026284795712333003309629439362935990081766795641656341472132460582620407395687296498297732108916216188512562960255867944126737617792651574554354715159639717043052709691972128458690317651336229429842858990536025454121028098414903938843413318953355703784797024654226167967612533069109383480910957221610598587866814370584581271898354843486438451324674267315215711491828998588626419253577180413053192637372233265120418487808817904259610423718398592359961452090467683307097280848489000182193841613132518810727095285298708100364317987308730635552492906494020838338745863516935518336851756092393527625539617028294809899988276663072952095396824024009999298523453965763461988210788178795239186255897786513161099204474736918424811775741689963889667892808738503308683534780948316898981340931565094305290861080542988877296196730308877611685806143963126900885900231792741253325247373172586610818689364582394081127416119488871307015730885998588620535402680216861821800169130259316043381687944452182786114980719846229747869462424303437538939451295664130341657985942805420824360831189842068959091490137590895811937507063489416153814437993698460960659587895780338938190147651102765023916245748912544624636006697401594677275925490972824592834368899534670139214843087553332176218690103629976987688010259690112878400142199745375099791101988309650653633473607578399828472829531159957159922424980190156737253411564221329583041468663922377774436883860523464228310993316370738882686734246361335174998602840751223430219702019873734814337067773838723443588365365164295023848516052269812151702746218548816731944857649374308562476919841059978257921295961100214955369871717865698018242869537325457293398264245427500978278777223270302038967626019470910134861461201562244562074793352262137120933882153692348578224960810456461105140660553890619700593366750729154990582949577294165745524956922622581747790366270892157685171092284051280067924684850376845700700901600119757309647435579370380936664213028821152849447022344419557288308584842011523387157244118388651689959675788564897829722633036009848038583919461049128552193302931671493603694624958621263240879358827403814371251680751989723103234911549646368361209651525010601045601609649855908714738200524017407396242588202477244853843403089099825082884831438380472549509735886473014843517382725355974983185590597619417917846121430697991097286209623104655009095720721598534330245546969754255391695339316381911864063876658614575342024874121984233632027000716213550908652841118346210967346089952715328229598056568015711653042980226621625484087474824644103134770818862758665193779728151425234471048870460716486827020483228500235369529131609797167517568075325314280572306605287812827191705841285809379478832099365065685408318615150284689407010167451873932298065543108478492210946263389720848855315115922698892117893365213561075864052761955269882984304480789481402548875188240255201511915442458718530545070734288865525529508237435771291352605949490799574383936445205157501376259479684723560037813029360776387783260669138971135847032472694658080378925634368625244349461149944070245726726442791018757303570185404346551019339484881329622484364235083010123421356452849216742489605780759977018125107279260626632804704320165179685520445961501540953787634373366696191001279862941309599671353257222748139712632853963235023477495915014086209498511736296984072963800913587829469141700535928726005396486533815401052956902783942451745631500112791379745496024427691845977304904759606429964478569468611644767680444075715242849551022967053993266931622233679039005892243545947713376623776731892177126961519485731745761714496472170635524366537850019186624603830279076672301648117200880691669637722939010650757791688543876049397919534849768276730570613277690678680583067803400042031292469441858132143528631133962444421623062712348778558384691943750201712988774699576449929710327280382989820231174428866148547304087873163416530234765996857496546776140347753314846476763669720462144323027374572712336924393092361531752430196358266071897567049382361166384475818245000045159585191503667817413566970481720792927602513376326144346236167151390323913376753330049994283674883007868669541022580472807097367460455497345627589851285932822458609282277649309691059077001969789672892663569356722235547375705168381824860875172447204610541435678187903838381194185233263009008563240395296086354573924732266725442877796173460533032943790185738709674492683459097376827290635017042900586613903070538274656261071145913146699486118494869885704587004909285613381983133750725336635580607045693385577837393638531008663763913210574719373211200085530134744772212830411992750194862291731353448433196487322907005499915664104452134381116141914735602987131412752528936244673945447875376837817171480430822583143753541717038077285811237918792520931280463448965481857777923004399708538288653903585017642727621024076829248759896208980958562862002930046258321573875601563585253830464800323915662258163454458136149797864730963366874021866045400393786457771764377629710831585260613879840604371881400429245422048691742848023655809787682704452550548945024266285769853170618617482388901798271880682594653925638511035600701009397344108507652110760888719279716192329836503058193959154606737018802148519077715269061686493333149328859258550412786711309467523710197356377063775734448910219316081685855094648373454611399104016514021724920436301129160672226558190772593059538699747730395581568690855707235051654337565546045912239437294186764934743467969627425155313760472921157032783072771544112843785567067526819387734230632254806177079605018213208727648141983574891950372123243569976354155829093923778196612796381819394681048042775610051933857030774203265420613625726928699381725315887610237814031162694419611050667322369436976588615991747873303137827914414182369644259490508128691796111090107346768517205880978479842890942269574831251933428725125969153894062207219393640996492167517522914923846105595613098430984283648406892178047755776249346789049150324137626505046021229446079557342650947855143469199177779565946243495958633330749559852267941019030492533966266124243653588925689486382115799496010605586162773617997038542676521256060771029574073152267093899978133365162844119261383149449267870957721117234076994568194472978505940827416029563087237992636155557419058073293846686232700101477739653409764701963907083858685100405754580253297662173543782208086624753141975427636810004669459075927579988379012127180485284557265918053735327973124417310939714896793012326300500489173278581927451634466858351366024837708576516904007068671377111361309192808357716708964913292038995817917748458534627723831335246716573439365264314187569666897407507620727769521115323431679567450230967402429463693110295881312602845693525733029180058233433754270530202673549820039411670454405421113879706188928614755996788296988789166306330377531358399297628506209994139190329781079117229197665214927829368991849341667060446724302656469398244585131928949853920343356238422697602679976132801932875245613338727270455141714098037289411197774098552351226670183964535295158198981619308120377275142078432146160359412669547733451152894895818331406114978529848373095974345747834314079242568109737657308939404308591269289493374787029056966954222152285803701358252489007486579070140988247899400003868125130436451148401892662394670266033078844581571398478571011135805582884379005062928845029880168598890784672134375724164332650709038093187627186235580182449073270425804505944196227422840717565192968591245587978286780844430375858438726831925019114117610495940589888846795528687764697415327893062449972340352871593891125183673531189752592990034607509908957799816414462972283783470818093941561200711395995513962932558867427217337878075300196529946890242762568037874523761384162090811200175715610962007807790093669770165154092899904573266654913123622724480827201165116392000660512301580932319183219718781065042311013175061665543717038195005558835337666275610983415415079463345549997736172597927596935499566768116577066100969790382767059107010705851778923669009706310224064588063969730182404762587178075000039969739553383155125068130388548841301404278561001132032116374507773765525531268636569913871212745130776623596613192284685965113477181887383131419921618644062752759241578566577493503886557711003445678042981492905727374796502725155978445005747157627214093015815938555689128008448715175518266969508141921148408675655636914341690271468585707854694283163115915864356542563258811387845114131123497084084181550793470702900217848785584153604372406417755301337981069622029397651960518824520624495222717026002117201447810825420164950695812286699815774556798060850428017762158463211588957613617082252274770657747284414875573201038384507306294211853182631354967864963856061997486437762778610515139711920276400814819723292817626880764441967348885324549847177949743477586446307844500260283126346840893607289968992235497226214886275279653624715642683095398473297912024612800121608152298721515551397357698583578202303905669129267905953848860154853998138864494379672706614776073604969359816998416758207711957570296275171650806143397478138041771644237407401957653770084713174321294723961327647645707480461991099545736518890987617895227537670704829127696978897208102663327377070886732579251675125914040418129901750326338520480807765459520154213947572927022662345653360724684822157899593870417174356196333459773885112040034196577411954628579592013567736165704033836471819057169615042927800472965198314022949726644233302650306318579706570650709246782562667992569918493213796981574463698274602169428009662791851799553829911842688082930804950977672904769511657842691238871354722250759107928810700735283414577847495303966006484413685147029637889462878323448804359707055493331891662974654645482624654243031319406575026272033550542699398640037103792436570457251360144892339822961185708702212121819944265767637315380368606481773388298144881009909344440901461521123366523965884933605757972784857958629393721842515168025355575689252146045196486110839998754732910505923880431164823392747443871180796560417982529251588712217436152027101853360190685258753051493949983670849213004706430798248577690372124261431589323617164361780864219738533908971113242251232514868579922029607060909775065828635591893599034415020432654190523687800807755585573339539739429928596462676764314269282268388669071076577490287484868198038786029618082241366604197671950379315608297863928300149044378469791575225013361786787260899945192414284534681947590911647217511487072973315735995284322461731064877761885695518824406261540695358378874752101094491069159997664969426013990895824919811860109357623595056136994645892428877363493815811055143092892893502920492985893092132666994940318376217818101203809986414817004677996933877355507875697679774556708276474597782615214498061153030699184105631465194899977270561073936301516807721446703608028219676069085888520731474948145346300264073075840936838611965245995796106111491518554636246509255238628989507355355753336874162315954289278447417139219224580044190202804624326987191470616159776420719417888617582342729885274514590593641099180230636637781423650268260723923725714696274927326817684391806117526482236708102038644061725679847610061322543582386102957085392667210117879836913645812462070525960023736937283793861446523543255486095909976152778427114019372793484139646881676768182137698015857860657491191960158014489387335622683727863895124844296912131127088515986926495303536795168073971904006354723065290045223105305098279891154449842099363986391423430134521406489137120684825039825916372526397359047032551016352489170733100030832615445783997029856971875495111118670284703733586922696856328178338074177618501914154431322879856734797957092622392861601265610022055899105481231220527698101160565664232365129504415764801417787932065675245535107703204372562357158767448527573080052525747667400472386337812187172988146175836956514950283572787289221949719067709576820948787951923667680946550071692179967337272541214308587724092190882978301166450085573257254359235301570226882332424479882102999071220347576999240701713467315300608058762343366444095814593085174751291067994947644778745812831196519283344827210549819765676596979520436435954930214632633687668108773732998707190525520485017885892519344382449970397823245767833768124205535237596431769873301918200138950746794596426710229447892702593369072357111205088325806323493709279635537061094998481140894524925302675612416346226138609769175546039895949977016250782119856965386964837742463823955695893334156124644357205938575104239289052782765332189832721866905618535048920155009299305358841973059500612850263175691887391169229121374845483487114298860669407725727009892455154519527925271553666888124102692680550938933398249896991656715475484565299886535847670874395331353078433992811810926853043743728451638232754051597161626841480263711568584902417041109106776992964340158106820716697733603449339001709899997736956850295367853058448141527112336220441541379255647626311550642397651265239879361929389582192153838852949226193751131170464696057937137035037829119034363856710012260302274033710455040659319673206085986236606715119758341928873686573680556277204821834478522199793046980028317060990834386598199385778151259619536545745743873314843482509885154312777507717475880042794702001061729347448266335002900895106437386678750633430603983551322818582631691700218035181351618958262914550018728023070434855830865019134861233107628029592607362518193137718505419681177303441584444355445704137304981817180169389118503347274236981989963735109713092136379239520697084140891737410991098502895817215124978977115859270704783229998753945531703588530002275718332996535771124176072137678163948743926792431797878807681040902951440904076041658531048769706773090612192687367984111495202678074541277112301618422495659733904749353769764444169449173568962517797927421708469853636322685194978781384688343654400528484524243309836923114880421512767966974716975536708241672892280847851127220407554340505014130750105237442354524442661132360517397412941443516088672912980581179641260759242501616509773839646211352290099903865337502458753559075215299343769728484634717590437950121946201435554574653535203534857155501402566588801582115682076240265264188489486572851288015545871105477937275991649646346056095219395223121167145053682659935616244455039105815454365763159439922073125859370574130000836918110068548094740499599454257550038746218489210204850956053589823804697822144111041744955556300245640413303894592470429887708268137966812048256963776811051188098438564957839514757480433172965512725340014723803989435903526049555727382688183049224202950438800894447191542584711186308683342392657660677582437182600105304060086477733396416660588768932237201707088250612237092497138029086510822173895944889799814298699728033359059230418199904037383807594904294801162603502681330132355876657430728738961372235352388115089378655389867157756101693617623969768216411099356845344980754707639514571390674969310069251743181876078267178077754504867333694461587750598360191035047562332056899975164964080049222707465164308822908436860172711341150245746489505447066745404696633553922678425164784575071673667800286996820839208059777221444754453255630097662566883371037949671054792047935425918494008549794909261272183972065131680001507990668210263509113844913480846550563803431509758107222743755274061751024999346072269285839923784429307169802800828816708920922973790057988498293515271219055374630451002749101376821851585888118434626502849313975013213016296179016623380795293171667788501067545231863738910805460553965082345107735126523789386785464989396233583983666659865122821058240619943485602908216067132306125125708282442997320256817629907724831953575491400935593357175908619156802471438574795543034641377666251365233828714065063097020077570342888894424468064781540032963940815470351084079821005656737063447127547826680217418914055455002801047969052354792090321754806186536072762577012094278826719453164813271029163512220551172361144901398054588969466860345423179720554218262053813706399578710061747457562036237087342566979317859439807954392086947751592781385300202182346260862390887760240254080692886527692729921077346484018927480779398087465987027069808553728960653171121000991691523742742186593178201622380187760608324790262372963033792489335486246775721840788212613748529326157914845129568917780861048327852599320631139404712495597367234882164646364059939046023636906960373133317650095834500505616328766474283049985714864450706358532238363599401120050162751560968532697247391978206813601175245631926350046226297295108894818243143109262915305596048858906607625849567384681114805090032979327232425205053874098076223239898377731318396764532612707959448171136724208679170124774480639160663992275112697468424365155673937967281161516209338548130080535105462752221415281148130488201253395357132343613358474556222388467926306019006639132015036699492218045340812878104872675139822278562842689738220876662699406012097668864036776573872456842487130123149413772508159985827399838311810534264127936026890161148261174589306188865256184138106648769463225226496128860001913974648266713521452999895911663147238911991030672477517244172814236282692251473197415238645634387394258449634234127619869150642968734960940710238710542917625226673787884366674534820847273125251322976150115239525430869600843117061623829064868780359201769723972143366318013748483963001408047652558294271829179868111349038503315318641682965106603611232483642310227730895425866602148023083860725305435948699379715620977022119552035576548232343578280151413003883956915505935631799672863474096396212821502598900161433657529776582087063566815340150384276527727604006237168467946163791485075009283626655554353551299347452996527219316503188004825596668442362764659530538722250659212934818681875294173260140934190841258078282453381554486839732171746435781822812101180664988433174631423010751951331110181659142806612502477897156450881890475390817131454683101583785264081248704558698047033596118674933478078259101422911764259347933304169031631756104736972134747896790150781839825588931088911314392489615671795857567699927798215764249914505304085503779736204393470265356268768221117396007130101409603074133368628124101813368135227335842012150151545565137243656647671186525326036917417354068182621624836705476495250898878245389663851863418424842877443170143054283287854030463149100423283243499866254021446234114112755715750242718236743981792284624635583639793686323670489692091573230783372327024873387121367202876566712557969335817902911226182752014409672320734702238363845011751652229918700337148752361529017662992740259972325107266069932200749661033636760830111103587143153383774321424713503445338661664139270240784902898688884700417561703167034307432966557770552684252779735167535928651295131586677382261427977643250818190704454513002547241039547754420023764165068112611760487457828393452569682928342822434895994871719787685902447466179581213684319870828218196321788494424372072049401521373444655041517011992403662394561366835232588747346391736440424640131354256279131491900043867323147621233506532270179605627365385008930869094337609964470448504970006111994696945302852110418645489653546464137786746125555144675138219117761688079119054526530116347077384706323661195456657143060394925904663431759922355210716221220550867620662569005657935477142847104921867123761411466159130168682026260496540312411740195623929333199266754526854158890901819163141814153726589205488235671440618528458145576206488197296024397638615386779294001143910238326685658992067163128031751635655175332589957441114309866765675063849621785779299898046391964736292976470792017730791752102516048714236796554637445188561016557239770649162491183266702915485038902221825818612004310369655514548918319902474611829861206929266963713707562335432291866660600864124782494492405368172093596672201317415238065737228417525122054080309246722626891628902609132691166099114732248761972976315376610491464575284132945678650149265620828438694691808795973250253767749815725841128412758149446890893887543819274619295689063470806952764187959699142468764045632430776645652324147240205941631632824550019279379751171882013348248516627031062189089905358695243895783688399077904104158769878749664689365264276032897724081879846515269330567164116752305152543754143059536191115178588141121391367387031360542117673480728593987053703568029617165917043663761029665399477217539472336614273763024120294072294670287184968379753737966095234898778781690435678602833220457809359216065724561832042672306419241187172199459844758061950257562007590335857262819136037589913457795992768703831309388301109575261407599939781504141627825990040014152616689497435781284144123616690586563172998516817714716191158120946826058495995787670235101398740524629051920181792779373712778195889212672769827023117610449395784560524406859261010938496573253596069888331097156330506551271465971178573890315134727477146259806789981498398672613811148074959971789085291722224348686728804600774827577825791908169921641080204799990530121523617414264541402371165932008654113264948073937016483822134041779005113592798780345209528001835899763945549462615289116294993791426604382563851143836453113647999686651229620790303884202361027440891892687928433604818803536569124583338774389003494569250661012414975991489774922254248342908913330277367611581665317946562452171771960361333140561080277334197953202565511532692351013019778316345008493976783492358494727697250096515849746635708995545215791679237853020040897639119934014529817424352267210383619326310405725624804820501465131534225743013260391158467075506210523236110978451576810159453492217949250965504904795316130164954769688354706251976983150938584479915545285642888242640976561927166063885054817863999194279800434711134221414869248937862677898487655116912493872963676418485801079426039563411158485029925320709313098842895754783012061307248278674877631473624051804003294822204132905837712335958651796241090171665794461867683065979028013903119135665255603867925674822036962240680569397021146203916119593505594597957398581083568675941531208516392669852911790788692452170133903926554310236902801831151833898724409382632391398464235507708967299194220436814056239921657291265493498629068138557583313260387960200413921805274492376188305043999714375370725287896192671422936721435945836603544648910351217718479413732422525587520765145887295953662662396633335888499838671347794836254034689578493486137402996885212840467796531690708284598065116344387114568621224264512530514727944732256525068348526807131061012079012600280860349791806492025742889414464538083176440138810133639858229546917022850029847037543108669822539688167485629830624560140381290717972135148268244375906991308800952723729210688380654052079699014841592338609266110484881649452602346794394434488603639294484270827779405394113819272387057584227603802355286843411063570751065835000506012428706805003059395389678302045945532968244706673149301283877305138996635860453796837732015126873663371419532282962656188459971199110769140137101975403749763419147596001840673799114251545012158054557033372295241659679183832472721866392799833761157724171938219485424557547270375744122817117380717042445135460372035684346626937765952852878881493893362095033634495404579096526557735267976124091489177308836655313856386820308568166243788774252128575193865278923833994374719112354558695064552013246974625696537050867233344035779341276406106164915637644088997969351075544079277986569384311887816563352380748259057538944257657872648422731616710546705286596184554733055290517216230963357614298809030607323977851692394036607957053206503169533887398141248062756052534270425547138825497502292718246260138871140770715926465308910451124870068468540639678335391729348514402421785467880533172607718886291011259462433258885090105741141279900522920923800259384650705395507727947005690392713881151854771588115215147132765631925760081841047911395670008300089101519114812951360711511713001928013729153292895002316618988960037725621478831416918740706192945386449771774453783187989202112808990928639310600547961349025299011086081442904744355186751754402819883988834312308469148851940824084047702293208382175287779763538698879102317160708752577548212277134466606278208419092320867021064485304848507104017142893764894183163710199490211923356899173390139727356641234932121783231840323679433381260547175187996339377080199519624477853891003456778045505145377504344287050643854249804311636372307940819886580400211593767683430894397773070486358714782986805362840160568649388720374354256932356557942200038184930223114189509703949773531900332852405198114455449827606078149108253328461606419464787973786759985513157587339422836018242140421184052935500128114679068502631562515699586715518070090592708121699720251029017523168912798564122696709133474244977384175985270203892652356467716222936280227615294870306758297313517186195583274252919374345070453635144243067278143544723577113507478909397169378636619398967140349586082240355103179802265838988442514181552776764218333949777119849971948948548389044649330231751640326163943196430646344466581174040134394778490299015524465003050527785518377767947196406881910404556747508742673420493737130487429441660895762358609664565015813112140827187854381054644164094329174978734618909078309679455330715359308401493184916359753844262005191933791250880847598362299214130933134603747886296224528635695653932759773330869132449727983867613118064440053789048015483495942175882181604553538964200797303735518745206366483711896525383673222108825659308345723928386392304293858596326950766306510291627719995021452819565964816016897118963542127088129804912753102826867351006788390978179979544790303730438415284372020324625348184730531204638872192929571747191396691864797578109221954413843179659183877497888186376803135986579595216612879709032572878924729682930756442471702955279604176347807636755845090722282473141951836907287872549342001161086106017808194875933808723317423200948203367622975993322275436837617001548746394777441086700700438758027689521145574350797110520825714045156928732881030674888681267762737829911549498272951980765982258192726992320524074720276513956806419646031431401553312496128635848263244864685056488073992932162225536960046429972516982241234305430675215262482174662182903912552409989462261433607653097962417254859057507746998249716967873150808824633828345115282062783794771284846731208892506839205038109311005868066708996249191995392573363386012780548649580597839624606905657758074064524903792410764211704806839471368256873014779646976009228401292178157046938864092263691030534376145316256420845685110986179953166422262162822561409170690021462553476954756927911256087830083309357319674214088472870969548085657420665187607249195122864024504803921449021980708321279862910764710974444579936859440840414593768825235464984847664523251421718801164323760874416659926389019883321090584404908385153403323113931156417849894902956434691109367376581300654441216227816913404442623110881979152176098775337402970047366662007995610664608933353872824784243956179268369640789457619347545116954885792552607298497489535823084530847360455566477836647434944229203849253569368947259994533586336786011962703945123162814605822473713744931657149113440889702222669198532270503345096424660082975114812314559205815418699547179080071609876396175764050977172156287127276690808287596394855225964337967528145314810854173608687177400585742022378537123195518746207592633951371746474124566567665318284229320767882744455602317131112759985664234106351802412842830801712001873316069872186716341668007011376996115323235371965189904114964769687685494789894131097367180968424285714985536580844525599677182578160492371783576875188578780195162744101026848611895090524656618175097563254617851997489656101968057887873063584591921598410732617595682452783407926186770747506740219632346893410341190364968701190363857114311772846744117191053606226575429500371619599544720165642789380716041880881587362983899988986899317142394252129068286589420547716870238168866904790836839585772942481062262001869942141851250531572916266004273593507330387115545991376598229142600356313966773627231779556531513252077607247609721565803591363821377944251651313643356076956345391580374085247698606367761240429976874068678967525411089208596460460463539200684317830647469229059123961832415477084760141598220206126692674293148381347645952459093094717819955731741168054618400774329076590552480991843292706537220679710121987035927757785839287441509558029385611205975775525726505982060873779401404268228796442829696193644386737743550574189732574252833478425849921417521793326826568940849708612147018132020388722167486371690168520021783049201997889639277219466802605924492794387946776043376277373216278193005673096432017021615585609067953659379033424791543182511170703480819292304495732208306584475650526338221030550624822557224100475311044742486541627385703262848410556635485716156942610155864221210600224212626011411152616753757946165025839058883568345154865350793614778233193938226432993661541231780621672221744843072025677830796065689431872974046744574562002564162157880347560782866289758845107137011270727145377779022024816822597426218691815778952716350266446551882096771414438316199910237155865377316661587477485764662602326870589138518850848267804534873839717017986813047052874565041445889728118072347265374653854729107970236098249557434081184532703615916220786197708702216057664023167611054556071906428427715178483826463224147560248250733226620399436434740632079848629541579834484629044575240020037219312546434022904171323201070168967111466964034669667430747141739331807356472038834026957396289219930248341072377266741825322257741630739766042566258758383009793381373451454916967185772453316975668782448259676324135870237680779911009838488757263779493471504689583919291116410536354637128025378274952781513139872667817830603880579081967294745620441780588555292878807437207569288559193001081289860421926721298356210560670155770294621535066677238654303991698367758994338271153474514252151667226718602795641376180967042058712630783455577177168612751444448208624062738403997497357442921291375699939221055661095093498071137586083308678459734233564032626003107400886381979293125335669059548079276229048963008717214794031673331823491618027568987081975333728461134531176004364499063299140727167677575941162221730520241046025977050368471175484924762232320813627410113450154725261107620900299202093356923449478777528054398344124999401761997978306306668356330295024178230530373722952596992602352439374429810693867814716363082700151512824366810575668335306966104470531419576403727095200293231640552856256267378419652384692199508919785601145056126718027648006414029475791220129559573578972144416580777757445218839559330367351059128448196423211607249795452810118705057066421515889164019708492361122888015283048187594362683760585657737484934581485394203984694946315047768098075973512473453558455597315546103645952603415085756102537253649815779553991373375200341601359239738331831508341246909989904099247276608944424747179137526418032928525719099637362813692946460059410286083403148245770577195361735657010493401054516757794482427367611520435484869029144033311927174907525046507738750617427986264487152225587652613672319379313246689816026396971020886171761151445012930395361196280451283121467135411677149901584769678742645834074320769582357348496035822485909718457754166619729582070835633791355048313002492709185587589928684284104985472029848741783242616826381740838608320613047409640082863164022733574764146415080934565696154846608353124361618472321599856470171632703795862356092352322345114242801355382883823045665809633386648423534530811337720328617528873094132923817737035212354795449116821755240458898570729294073072102720265879715350788443324672771291428791964371982344949081237432906112136219662939295475970413747503838368488185418345826583271156179070247981119573970305826882030907408131019094913682287830510061414108618986898237841430173145849533388571696053604068699346265173461704790708586619135486216165515811373836736888995705743356467368840264719176855095298883858920297649385855946533783070238025696848808367757892859734427991785989762800605691926811171870977087319832298282432785737521476639116266338461725233965910385029516413141787825364139499443066522429050727007866887792993285377467739219107371857313995873714295190064344238840143704091311178030123813254866059618772873059072864229839719789335684559712179561125572576151643855389086442410917870272882019871191081199403421018676626233474321104440742764124271638681434389277265331552208675581122007909019104815842825826705278119687280737479938972089836524092785452397374488337755374707581364333353814948029853356180381872671317936938502097647545423672029797941308026432794552365106782613792770948913827882326139423397396781046827618874761479045983231195177981819482490078301069273266989634233171667495949192130453732715456506614094380219555522586154316629213535498810530054511399369659589313906178267173691582349305425627208967590225031720965898381115491674044537211632405167415932925022456444977615891908772161946657613148323383122116234592745398367583335215966547068828545787178613380657170860710496792049579306367904980233874456204399391716740053708133771540519777138393551407009467196949289965553791053022015974144139365298155431243711793527988634646235720040151223185942740692912795092764483684300737946725828677928248552052468956295093017292732681436201519449754569626765132717692121110799106811102581791709881352078425495445765113804726500885703714772728817108374331162297037904535892082542781182051556949368902759853040388799862890123794444549966743728257800610391290430591845924511468489150490397274523268475377034670534810900676471162173109964057000208906341387754804741857116843156066757077438498794271562942370755906095340522288594556105704180163117595109181965068730494754196559727277840503067510083518518170761686825287205335373281705761188079265513711115296819112070958105431201756259697136549128144989806682472775658956978741815943880254546675842899013143989688668204195211946282105788912919126213956427850340047001564802789616573285931851043485654542734636567072478892259974520552234858948573611190233798274527577064398700190892982682383723219538552965389447215847632790745537863404910156433251269891600937790710101564896173659343237523770111116081514068420131499896068832423556530845157442659087651890965850314442355919220620852998722024905129070756181947972781295705073915365778424260984851436672073057583527432732477646510865236579781198055392542626810267969655669527705258773878457483304087313612439023595105790373420847757307877363567688910437897174838903561894870322579310531847021099094667106702580400592597109505677574190583323151683662662243393040188737261633299733201146252787049931877094404965223623421295933439069675958819754321711937566412501531213054677852697892911379736792660643165944094144392037397883506877344497729199184061623160512236045704395505171536891249281519309548131460050106234512746838977976788657777916283614695709064692968603869001555333764215536292888832777599910217403056791943757087288828646538004865262192612766594340091520017935357043678494945669689275216569603709663863628638383700020837055421666774880354756930554137845698870794484532445505329750225664258857236344047190344889184377504778003260463278495655883573195609943160075658479323130921770729192246933022403835906105817921936640579137829902489669614838224920571780516160386624660430770007980423090012851659284321979906606017524307305735311726439816263440621578115397470248526400595307027909018471566988621065862079598577952066865112857568513296870791346566278466898046406050651394598785102652798248406139488671406517189112438608065364971674204171080850414531809669714664637075578273477871887913562167028389078189370705092001399539100716115846267670044262290002736452674149920318210647760396955916721376396335817385995534339323638165864517180043804684881284651061368996956235988556469648239219256435815457904609009120760887529158724612381717468700587068505142105363076608968128986671186857892497512954415692230952375737202302053271930163518952353337437034699562295687802324070383853007968809820238400291398174835660850111989022429278435066560099531198374576589766575262354196877865742407312908787720922390942062043561998579581613781095679165406971944054876400412022434116292394416135944880027639550250076525352871112053086236007014787723993920493314844073918573059517085219975352931664085549104637576846679802982393136307103439325620545898614077725135467518270528288188881074198927277527585501490828025584361239786177686565106204853852912554115402286652480004894753710534542662822855115845856891772813119079475278265003077268914936539894810131844571303248467740049635882286494792285948771302941616619688053529881423118570258649731134147656405067530097551990609870224515403643905366642414062316146892118592250993309573941590407206177683718466079670727411205333548103997014107372093453341314316966736764770776179095120158007240525401949497942654245537076250052053385195263684121791483252408169485442590995992344041798407766814408353902865042179457730243128302119752546486343082966994932828797697965022187585795462232288522552032520920571237071945929750509047961171397314678438990391165995458734890825141875233786376020552621906208151722136841084309289291916017279868021046631895855483937454430002182144022474529723870968546918162487198514270840496346932425783617959518937102201205188331496170123958412799662402209818260649730935707683149881156255792799660416469130930660453846634750134002426033638766562563717476342931710166859586693903754678976444146422661966656807099349279967859775156253469869285878337806651974016387331061685381692158622822457656138927245957823786300810160323278186284680671920317028549493239208926660332448832933693010705170557210579289131241974857747675963255990180838381994250129743136083142112981431192059625058846677508334593938947524531799214203822828019291437378492463262730186973259521673212288987075860882743903535580156275740634116410933940799260520781067531101546065883220826486632476705470337567213859906109521049827144902994231338586443217806182306254144239680439130341279703155063604512539699486386491991209195618139745231926936822807692609852186415241895557318075622555705186320196746774129490312949203135746465143810035759435129224692164705251209673680880500495169444208393405040818025258819739804813821604013473551936909435269159617139370894647740386643691932332273596466149009070472192173017087680696390760306982003117867474352064926096669929438108305119345994102108392173856231062316265840361192619667550490636782887691487751137979571117782716470227356027321561981916607237954097200019651165601984061838743608228790683541750244387799402886572373080232737115673958468976910201973832622760896273705979976668523825456626245408024645214178090581859530289813924728878847937538290133831637564205886030315374808981982583676371170997728045253148543907736943498831422129732421711435060958622325156430573763786550064503772164073236075479634410144693466484132231672544756885411492087091473030268360802730358774128661281662108646758330381729307380059993216868974585304554944985534147779906623015330041943419512195650207013887931620575167968309015081165825289862731431120943535402720606305564182831996082632562781770842285172301315818434145758280483712428475834161482441501243786004727208515350482730098635513425870853379933204726588199399674912322719421547356705374199497873406186838635097531157716032354260122669465981172977832039706216848770738563849094399532930188628418557928496528235448984637564176091207787321923487393944544964761746692867482004844466938202516373972875333364564748034323585552186277275297108469166586904147354041101406910736782499003801984803330315980950153284482168204065685796106892521903788774255184704654396875303561822220512955010995768407790464518007689310280996962208630622433770968750630490524977089384767561374423845119336037777927187722140573712077832531699455353513123239848391935191328598799906131692702469581486059061047593225118752136392700561258674963921412108474744397309973955421517915261797532950631178335129781591716431878456595996774395911230748286376296756603535542442462821232236666366134751343416670716680156390745407277142801277891005706030082347109721097685017809340794789273647072787579047600050826300369978613493184351296562980511573725855819339446811636311783850955692135372685057948066400088101427280960741927316871087645615979114711163665891238868791243698757326942728808269711502173942875539066627584269095750122230580169142758579115635045247076458839673783045316074522213755122758001236271383124194714550091874644584413342323356074046921976011753009335523242698602653277812860856094488420294012615274148820708548427825483242022657561410451615233458047494957868947421716131534998315564638527947342808469866017610293338772919502242571564545127870311082384838269371776076890755929861913498044687256830049458344864723407719536137779106176553728494725877563276429240335671963996536242099817233558375197726671011838234729337812382727816497224280636750614144161748604441142569952290072438533617601448840307613293594881404500598170606435321332507492990926969237600752455790450536227412380950767367091783629109017456133440604483917201305838254194944869435197870495428931003594863417917279838835410466811675943308711298526188577790618036400472984736776602581713235437454278964036682767088132951330330083062705228321244792415053287928459295562913436949181979636783830805644282120538811946034950920358445170064263717493340420728213353706597450014130792402537828695101406761146529653707442956573767001862108974258179787113924859909739148628525695883453729775727297664567072916504117606682368047140125641244783996527265403919029689668953718818827994501098070579572865019513751493887358169650581839875960136868510159586192638614094970069238827172285939897456123450760840733060058898550512629338887486935117955524030742629023929421308274570131774129654562171912404461725910638248574440181461784387490129388651523760146625845600324054987089045920160252412687064856524631430529002452873061085853242864249167642021030446788106197001672482718035107404939321793403924262768631854142986884137690270115520244481746751493514606117678206347664710055818575411031579738126156320420029608161026979782782704166464408076705442870904205421848868915424808587469236687089120981228688661378132728652312264519011327002266925040411146676450794357164049761975214090848817839824598774316123561136927685844416671337630574238768310214846043010695311902374228773277706825197777434361624908551123342928249944203673835308285955082010141203531096380149897286394686622185186683999193409125302575738715744695436982340824627030229642084737401488929139878378399967044253630102136196785013136485648910447940403002520648532882541408576328400218994681832991244993356637742498745902309524691995651706498483309513149418510055986205951460068995396018485862589959216859719683028575221745387922154755799193355009694345997544444572170082840650829103122465222220006871809628169871908283385197570099381517192382513164803072828951214448142229004958208829652616365034854005348788445339717505217432512567962683583337405825302603199078858625299756677549624126262701992185131101936935278301713035377133367482144876016960917671973886867538929710949601700026486735168150038460498676923568424798715069047152961361404397063298475473816064269078227389108456753831892275084788812177154603981086203755560290061309722896148173845485144905868601735625187274408572914492516116467071974840580705860417233155795077334127711331832343895404273701756255729432618951632748550443644863929371210597967152089730504687188728801100869067414594151336236634955323407992208454554461362812524958743467136809861768517810051148155579494675898422372530231618556090380779258463417699931612116928738015107658353514366649519093575000159840392158512801618341843698653379421968567440642037267481815500376236410315941842203069905649267420177767970865063794578264769433785159464983015004097081749494584498078555931444362299811250311583109838300692188454816854157645473998391868506456786047725886949362645670034657616182021262965027767061370073853123994851242005201547107701149805262624499697523477317505340527706210567629173747722091153534170800195944213385535730065129507864606448228276331532892935044190357699613311836315848119402450447284901472634924734375365822437578262193432218714949474576633301523306538294403092476833481079561775006553141253290096421037197005042016715846506002107771834151784579103713109507711209365565672147914487689455897138824204883577422346964787830229565840370892627509458671198634924048931877324917232212133324818633841784109656740461429454301514657645585206493764373371890245912449151243080205278108737435316893712919325185940692908888443607054864002534314874291354261440651850433278473343117825220604687826106019693730255809759912630785725763391037516281763214431536495036892593752470642213772593105181220593076319399460066519055818784509055505194425240084032307703578118243737134630162256982594868564384947386611230458921944362655713903728540136483714012196484535942254483598866532164930868205693373584866811772594673449975837021108960369266522227345809702946447726246748874689547682636653264332470560266810372145300523213308495716789794768692184463761497570958742296882763504461254100174405654217924838397743454303559266951405909585739898455178477840195808967200907387778519667024094373008130869665346222461611477555082857338094540266789125555145219891101269193770783748569921754746687035660232972001023917713749541149215086122654839115117027079855035496783432505572272576012865094352327354352908145705053169000544746408713974673515752989869003953674166557765944695208791025614082232829500427987451879083783961716250392130118935094427486761080265646660876481968874192190738733510144666635023717968442403319778583546303644726322102213566168857083642777736404923991137021096152278193047233726643270948234307102585398451324109693683128494392712994576087533430647479613752766580060311273913677906212368115834428980930960133507794381286074076436453978076058481692158926003416446377912781125116241316292223841602230773417927538202454119506172764760769220769366736577992588396520725696475026220681257642221277056566114769121695129550736311563660813510133338286746912875974330041074863199414404794407419796497187634901436987577874099275405663057962146956752293552368299551714561345666998362995173186830610675332963234941887086282251677171080695815101121189424412632619457807599171752165262815498413066511162216583134676071816754770903037887552337903240546931146434885430239357132306865748213891947412865495854333371393511991175148379774597855966674773203372057925813075872831467482957218426981279565923494834248254331913933065279662650208899067219673578278190602086701245302318823572143414641940039804156256418040067510320334828293872134590698301680260807570524136456637307309313953832071152702404706532048593816546414860942494186205201728317824747526946006754464042791305237700471160068782017345636309214591868864775123043073501025921868725553221040322667617946612958954901636599627321624244090646993728052994265438017557406978798769408134696396985239249992158707608805762626262502555475007160190169528561961984582134549048012062971739282614480360183275612294116266849336817499679596506856288079241675745040612005986545292133984540903970167240061236275675122428670740495166605832210946631919970910803338167016457421338321757771276075283797723934799576798054360522990914062954518839625663846355460329226047513841852582294461453911866883144903791837240520854529066551879977245115624569487459923477429130171990777829132397213323349480977847752293033618431135215811734441976251536849865400765669684383319102876976772089278115016397892589128535976051775310106568976535711302264034116316577208825222275635598885113898891842571564531298270094838554307916052434171466748766438943035768268476057140274691217044637951109134421991967979573895182948508962239890579345571817924877893920838580275803355022355219853956540884546846643141881858357458947782402268175649280770178513153781453621576505681039702886099234492684259956342960812523953918706222591582629912226139927052049687751098833929109016024517635662850426978911780222335295924569457343385498658847409203847203426418669211677464241116338382678111608851711252049762270691261917483838211018559316696440340302472329340722935948654617889528062245154807877067307450485477179651555523807779719313836826151341360223399150932407048384984284836158776038423236892678169183220017909187700551200900259032612298055604343649055821878750463747974438600421069845968034451235191286352053337278744695415616345805618459727368617412488099704968086916799166375304684680916168325211763896543763750263156240495583115604187254761544361118115184249762750857094032346394901965304429137526639383086717392314533354010664077769501355202436018485644551435799211857605610800584539416229002702629676505124194355621211464520981092024575527403049961993670109842074020812595394152186581064657479537837918007246594054074147036286276581488376215736694869911556207257313597301386376483451928438780249264524431210746437464282643429586748051873253439140241800792393682827421182801492783025562398493759797090917399360826720680611833992672535583518865352479902883124418970040372810141412122458972389025687296390856516350368593082624911416929147392459410767207252456629063988508853041881059979450961894312380456233431695913605971100529699987863946695958659582600433915039957841449339211214623350104728698560024090279596071343639578151529078474545215804539963167785534751169082780931920597062726748418076329997514535143006590426783404571236522771659937146013368561415487928929172301074623564169449639071337230708638402522879907244209153609742385502810103722413601530296519432182343944847137841518691592761117473766685045165887633354464382906171499673955502285369679621876666282110614130462306156828698504659493077073620157450270613310419854407298552737815432636932198747562272115437910995838144170725884033129935732534453273535792168145935325478779752058668219636940594853635975405852797203181056810192700933107513328080039837462589702141522485727619792709125434565014089735013626743517967853530246823289404649528909609363937489466125442209857224435865819161503184208447656033009655614387996325984267809667427623577446424537238651335127670487519184275167607385300818364429403444755742779415428727056430678878109559794653565030955846682010657317360279135741146428867951047488096444226896682192391162626686736133092194679198070105537934781064222304464692942554509884695844554897935803598591035961313330649769565257416097853070767064341753276863070764288898247233417998313179238539435948499398089441122741790587091989684758125656845673310956896780489014925917119741806674529823640879657444935869696317484155373299552990884803037989605011896652092650011329473250299688518361286023619171836690115544104102677497136309438269959355133961948579207796060244095387376335713913072526772521243623060832589519305982606439629051306340066387429919841227598495986417137084578689163070325243176122533570195708075151545385409804021232153096672517466494537385667857531126337877460069040144172044117048688059444518407165973152433631345616133577405821159046387944218820677102800825773102282042322873137308212214347998324045825517817410348886047808822044144785764913939824788767054382739999471966084136074230940836365104005700416706450663769165832182312539050673302512341501374807647834455499746239754731180879289603107588220717470854035167979202208453065450207242365830299064930239394639388538373111375276019819428355833626455886918385299459184228709382813310676710274581712644920245801534534832884973678912441785810204168655422681778408365727553477663150620722197480291931628029395348803609364656184418270515271390202881880719259751547099451477317553729024594057320900883419615522937796673676369729094130659693693975992447845942189550799981575608611829398861388144246268333874270326188538530368452479138532692283464873070060867714417755075513192562363791849892557431450202555956422533553122545269532891112637843184991374356171383540364564111994998734969602617060251769902883206543870699400975282250597486085257001015096055570399699954212823859567710267281754381151914579998128178046661601455970456155564973782347379725734372558555628030200212778554198536089909242390328225703742495754338669290364471764033857596352658040256419421622511768737752243584912349411533505150291246247594203503353665540128550981465928992673776999680587858256503185991743331614932005924419483364308229084417197921335838069987056616975432153771032438208807287511778425039138728292205504107971880349058194959535023293943570476628660406823655030756719259630111821300248542829252659960553950714434738729027104667881531003412353294604905145934897162959794889885699573773287378885372266109393597325042931384138129140920284044217928311544156640834474375957087991560785146384348944177432545660531396449814251686672885795415474003007210794952707259836774510885496545303678030789707283526713770956513701377414124099887713030112156202208574033000963399651140699826362010490935644510462182991442933407249020148355103886385924633881131889391014954760352006010571259795709373028714601034639796474692448528447687963229354649241874658452955820785347370542749975753611607317065301513874354554019435564796029311989898796056892741140061312925918072810766337291776462586741735117104081639546066865608813728338419523165627160471265696996541267461241982610508662022728485715731145233572574090206973612233653578699613195353266181685249469376806499538581028099384595924232363268822071160655769146268931988932264312149664759985843869551399838749701642361394904978206317214968348602277804340044931937723198041229715999381005789040581804709843090118312033357903064260110952047536565273247896516173369489819266014653432259351911615909925614691169968499060164742311539611779165096404720178664290298263931861606850648056192879441995540808472322700024072485327114832925244856535135255370427680795110048615986229691807409222851010375359408065415685738779645191995144205459443342476022483863250234116811948736462309027048257189374066283942183915311762715782117696663289727122194779698298942585150305559340153654497117519790286714920267971839037968131876720474418055800895692684467837237488278720979978722569643239219765109155728303239372554398525527748711249384267672407292284485603843729376154423778817618313541514445701599274519561382418996499099208651116679401773743094165334627739310839281220167488673953568830809975385172580317303319815771770734992094845675201941912935571128070054550686366876180197196003523621043573790210579811982038392840024699401594650804995817413793403715321881910280224868083365393321097185299996434222355336024640365029148811011007048920170512091985335908418885403297979066666398339148988732746787472419216099261275399862453499642252526747911304672835021102398637839772223084391772895285432326754835590353022787678655884753416446001217303862192933193000096094479455485788617443432245000642574684183627144594193029383513138807065807109671116946600400729533888983826816608758673450295869043318650290315837105997724162588875368823481805918669525221317898590017762556413509524657240062153115500179576154863680176380087218729221412997676311484913876833308285725188731639191126931353050578027153578633362922639202559438311881935064243857056035177471285984591475903087831334697573617664962012566140806115557711379726454184520908366626453073466866310589521983614821260341155734785865057545324242678614186521179155570244904332396137518505605937913809337918461399601731882648012241242723903109425445871867217844475365031728358604193474180965214808281587027126206018712476211912011191723948515055639576199305186598794214117637389131765090526015548699043387661669788776429824960696547279364764292073834393945529494269704672052861768695456803124403921016950376075664294906452419413427619268571246104255086051221161235904867387363762597745302878194161672261038968958313878376449445044197281233109631595752491933268259690907724069608118646598069976190188201397524938606181269155499510430212770602932340969510666710416846650382734506930359431933255961901091539691516883799713711416893046994560350578452077450068512457643057602365390598620361061089741782108852826999119051836298293794202259978088002450199484880498702049940205498475495762196105001547146596800277624900336639448545884016500109601885425241340333151147953736185678148016911934203023329181680467273985268843511433096738466189130698177609908979722001734670513805972019254111931755757670907835281999945740616570084638779124861770974774283880267874030388730286522315923645771398992464017966104272521653508722703829765724931377802943089759415058054599870990413855157774061969986973615923725567785060040225401416085132871812647134542425469149744010091834433022342482264543105419584439431317156746888239186102734938079108779765303878153108976115369236500120016873984819912402431710135764084188271179607768561720914587483484511632028704965766029709727646086576470565977070320254417570952219980680851822394715057361732818242951070937886755004766326799862567964175745000941309121263350287543899175604338383433739193961315653140531106286947183672681521102028010518604835348681779124132270520050265943100707676053670151336609156017900014135907140004289704335834905608953676392473837493676394928573335228257220097656802211760284130633203606296848865915048107184871003575966523767951698764912672007309790136023483486746958028030428886019230504775559287546676367142048533890330402940032911605036164327551770894119221193673037543812490151275936100761018910104367902728502211489698556706915579028127576704172517457946161327471970806883599020078658218573119614725914362385488614062994731325858292392569717380637109902719288983959936138169997190368824984960016292573881939666003533596778464228879944908347587512829956596335074443037503712037986925937784449094893553064559938072566061927672961238216856312413875921651051796658064021323922194691029584179625203866931083792107241820236882715650057849831874729295255123184711656958562744431970981601998494669744851275124704855216756844667474396887230771550617271330877638546055912024693049245340616544967371627319928263474039103816858446013364615255135917550710712885511413065750822673200776500397544613202168406966093861943583222684842536616461350588405232136776682973448097602190984344262239348298231779201942192482968305054188493454832735554218814423494840216011659742857346425189650884720346824617534079216265564583560330248381697587940180710619410811724272839838058679365894797076978080813285443506374842289300752272393391705088083590943295185400016743400643112054568085868578995615350292446890872959150149197533833443439291860747142907366787206705335899215629302117687523721475265422929195172049983679056391978590615204116465891132036650202870298123918681350162401564904841926691371141936772014266955831491240305157243002601034209234814298621618243607040550514980463302422876643779930496473011550096560488600395534004435558024950822408549133211753433871887866789271035378065527050311045663684716140479164565888322148761705719942285540108005804684013633061661018173439536572534223473146290159209899051096439883965220518856224786536134741030168831306900382409249835400114749261828648813658297391641898024927363133859898689744865537199234963928410233730756683366969106221723385962915124521034707655341679843388105549606884301299838289848343999584122329944073675855046477892676072059475993273292189576369389229370202541281627373003307202546050988471625637449693588705218121450803122950914181105579833783553770678034157042379687942243841916688731134526590479557580732565003152245373912817052109215654782075845391739797775780866864024306027315841309664186370663723097754020135192455904998540753337428402908437316114874559219332216891165055936206616321148410499209528661193842655340757192465802049515295621067574626818088938118618260530226638773609897345509960637172060972470522990547103507590301042807803806533878992485928263152764672931828918879328062810774203258454522199762836738958399166157824972979547160807082735307829674183417516641369343031324367794078654619971514989919704744392553250542945119898304010765512003338315006023155613614790892920290197561570572873275072203991748327368390743997318060806309722701936233991634846874297887608354596563290722916618344712515805322376023288858457394738743336622864555308412706510219144440040816079870480963403628239455608198684755984705840915469486898151745963696823893354962287846799868087467372343518106292766991770533753274289499636296804817454739029382229823713191697401430101901507351250386350791967060925607490387398736912408128062951825549559365357811508541083025447642541485441816405051318918938349519794437151791368403698412063951736925254876858524168457856650641568687030627290865183684214254173859732316465750243245359589953360068214470925161859258316719673280089830754698617882781994615109729069519963305283943699426672544142074066946584435615973956752021847172524996277837535587444701100157421403861209232409515170545624567362556308523625121134306573482839258188784297883025351508665879445640662319231781810438937066803265063932454711309180602084520533365388642399496732577864510437013527876322829699890097538440525143253984276683544847685449982624348198751794536549764068989108386781059146816478161524892108576120175741020249212139194020478792297017045979424160209310232732803195461642479744924111013616833602672185389954649584888154976645058370238307795664076135574093258168280952279580928559023817720613278200184432574848700226753450466320922955965801966343865888827811628221778866273800182400027824313039301171326862005698861658214490923677996101752474330676205348212505367401063735906810419528704885046958076366794976374565500180614936719697709260327414046280933801131378912067626881446718089632912518140967603596647571326091385812330515352665469921612287563520400304522007784010395885085426020825197233045743336828374441063718269679046208404535979884771096502709953671199323608905037590426073744575804485473811740397957274102486569729720022269166729666675250083913064315970363177530384358415566354784729293142970452651690780753161365048786581349179675826728006029584155317575089986331292645641327425392357265322111488783092244147146006081970345762550803900796184584357472152150687029718458444746146631344783168004864356965058175997489065782739068830579901967835501206243398108250232967512838032851784113487435200566908473849937737559870358232716904916541683436094288587230563632114254990596385885624354994115275960064816781464263829868460197321608026793148704321651993491389091010836069746170566871013643890325566423205352985206394058487678676742676008274174893979438609843161315187684467493189253248563346836685769447721362644005401500817832226611992711249979160122118106542986583502226969505368908472540828296747108318072981473626049726389860927456483188555943769418650536782831533478537537277119148945728874542850783717986356728760494503005249352749763470777160201357470416161026184894953996017026102835930649245616210351709308566449483313406567283659368475662042920136625857382413736105059618364535888786107510762716268475491237388502480042818710982442866046560525734010274118489258165620184900334456854820365836240701777135702478466093562167986290903127989619626466137024979943406790108237651919760017669230367700968316722674149369489909080697079982612143269084279048829868065720064758515673917356486041402495898250007345320054030903302781720005586698151233107378632007783991710096004482849300437716575298081070728491876403141480822409719681819725364845715073923850877040311813062960554205836719474983401529365309444147868388389551645913312606176300242970705130414657637114431488833438775378436522311154669499613222639176926800750659947542470178199650236848287054343672791182659747245149658590344326189642556649577955430603618309972111423908460132267839178179811630620237431513317835089791339506535543384408458355319115591189145290110403009555207239482489920069586495784882063096989203504133495068241150601746958045184043782784818771387184619558853407766711084279630295854222370971925524547304880893465847092787506911731118702519020071162120838899932978054874457592753872633006343644555112360035512924847723186433958497556693292543197478681496952368996066561999000682849194870620773214787596430459618541524594012926548196036512475184177813658414014458261992529092061661327748069100800473265367851614535679871082348157723647899925975463065210423289693012910971410166340432348009829970889899765984360805127192105805153181453376735195937284679142858706580070889225931621453626960010047690697337754713448815320144646330369206509818834942643422681337984122708085655746560860684661830063576057818694596038013725278599439465695925215480087961432711557142550726599576707280559497889855835808187786010664962001889068932445264154737838288846666905030444725605348238596134748538716512085900997182892110839927935956442392078525077116228151842960023065744728383179578815255100765929905640749983197469941941915419157674197419478471731510786811304424509065842427698824921589441100050033235299288065497915028169968014319617636664652350074179117950963161117534264804872390263849317647421257511604447199992085622187563162713343302138334482741939979152972281428952749212482685864744143723847670974380143403161039485977619301110101468549044128882983461570285468723089988609625402841690443880785678467397797963922634838472300211951955807353155005105835763315182991434743697051970472307707140546436378471002130916974628435686781932220527600915033616089839521842099718902739836972052109156796429122680957851994628876871972717758145351151644103029969661019772111495152390102218756818391827887616671450838207141010639152215397427890386360004424509204680461224819861919302508988008641272214684780878262660807862843313762101291521649499066863134988964177698407281291349084048872346550175813908255017597560512463931256696831487054112994173860280963679847286171069817319275338999884242889250557574452516740158584192913087085733056517838807610754197137008852985536297561613668912139545332822233170413985481624022596793242558563918107619737689907847242405391256505696276807717206092554232617639757542973389734373896124666376156115029921575965911560720212184787970600352074743512991765874980440279451175834449064717809312816230665559271394128317709694158371711461681873895725568572096808850534435147571154024987595608224806819123114400877422649557637788373854092754074331846972222090985603498800046396697355492507874088210505496360918296458848704185214777567353903661018116199310534803512506822472670258184964550514252542705260450005106614026211206250640165376341085531083684335888922226221955972917654943223799260294661388286112441370108911548987637014118561574789589409454937094986961234034360923079166609069345995981775987934743073996227717891557553907530847541249015752899869662764062917309923490044905726269224211035479983717762842184993878719108572450999330678580916662967030324743481069867549710186403218119944510068894075853255141602563281553820859234852128701561754758645716523663203301590598215924860268195012156829284326018805463549455280249194868743126320308436265728244051320428934467389021656249024056932360912504884703530502831233819134567760982011903120177725480797892711097877444574685486813711504707752620220799197644944518224742518033780058323704207505946520849944813402600026125543307289474043347072549797219436168426004676837097127332992230664047359008693001347356743226425088085590906760487019191232583229802363784476070252613494679264929924054090358275347824091181158401151007481153485084742010785575326783998360105183878517960829611557319340500398016251494822244579826782837205147225963214603663539431331439573823454920820985209705416516151059610753339360481031225925192315963271844434556386088496225251382670500935224771814132365792006404834225000210422620513005003725727465296951659732709695196470691431125136314449928530639779715768036460423474932800029173721325050755767049586188401584654221762727129541170272960905934929422789204274653282456899607715910369938585976063127603883248396857108813293698489983914666533098322160676953289356998348709820497495781922195276737125745448270216809400147770495238740883112189401240908141474684876863229553378805466083853812912822290271254329324131079145969278054624755799488772567331489960584753636194822932892200133038382904848796974511888026616796441840613858852246611257685613260231004121781698478694903674458204636849382407345700778905776477955843177944472136032993725461410833053674120266005798942063663923677868956118750587427597460884964664984929122006192258031968678641051964176371981949399271658117293598208454649214005119287963020210047204993222322803600367922628491874150235084826870958361391549551390325052528530735314148389143901886178295076311070894892696494385398691084731936822350889887207811881942648286967604840454191941042082611611392692842353660440802126882205044102335751434240385860193763186259850155815528336325621892172507903585771409816382325072670287194985582729325638323349427531954052770722234180852676940479049262382557260622423004961546333040988917165945416159909160847363456448045557755212342898427532903100549658235393522991508405471446796903134200901507751293264887212668274956241036280019466390950378593513386767369744250345732956750080838406521069799435212465599400933014655400749929453408875909456355333471838744713882580006084513240754578598191889177144700574070920011847208739535423401795266024658497704007364789430460343387359340435966154834952764085413329597855529864612487363131756570270308110327745462697534723389356116895041845447720136248849771531672239077566459221084275649708212939446038093610932456002287602505694365748601238883908560497584073338331346712482069719810951806683143954499969053163996836612317995684861213898456589972273069810386729296135973586612382045033481831397956042082898940861406072227974469333284186194121690184648851034747866988374833385233650819601839788980200617725745992976078742956229168636701729901484319914420899164605938420752037303093799063253561694976700097897782629133133618940478503871871957977703788963678377556693192386318196477419957221674263956762283964119376908247262771458263170226777286723735978365427577342731531127374861057916499806701906320994191308823686211149733431610628228874023290799400885893674945044141049434138128977530764333540748099312611233180822626567049557378531025369814978527513666221909028865808486008887855801786714644756431177751998913687363825114899072611481928017448799143179312937461762426019082784570556343173475794399746140086645591571797838570263624184654875045196501073716157029401490022872283498554648033289759686183761513535933531483462208218809531143699615753937393399309710685371098233509171897994236835541104008126976533379381054587282885203400984134862854130164272996697531443891822875057256206796285482937535353436725185675589881663471391409037716928107235437784675509838469315177861454569217068856143292039806336126279426936752923087173184374071400248213312852661686579056796710427317299864093026626100956379877347986678457423168841746704265651582684048263916022462880890620445078830774847606234855646291269649028542960788351081532502357799918632162232229725257414620488379228536936641543738732673366739519990700323536312364646826402403737359519320590492806795721844599914241707827410462009965867947387793249669780411316643994251043048086680527166133010825493291765143307145971802220675059105511067321531122902343124203617350541148238251056753588243403079876421025355645748953083877122466787036212851935240648111455211913182159289656801119614783150076161814176747898234328341602114450805608296350371586118568822840865217545330876717186752821396048044419278403945816852883857882570954173206529473664513858084373182248556241886837528195593804049599628933251141119195693932476884548698732776506327875442380314137446842640433989006503514374812561456427434066335780182707630771722507056072107774315493436014922817266529449021860564109648542529979896788160821604964954992386324512751841466312448558715929221880146752311338294942216291673522484641885816217962275938945022114663378272837547724786780369073759973095131656363781722695484441830873056991986208644894290212979226342538624428471316711568840260085365947924256785464221018892933055819857060685874558995784656031589417631353977573083820057834929434836905219069631424541922367985434320589137827315155756538857545979949316535538457440630337438485042518019804622944943457020697274669903836265574882867090692417637985854260186131119464523974765801134938063318907897695782413059768053148308368455614183071726485235523262302812701150385742876229299252010828328568226532332453936188378279818371997699388202868149982830013509189405188151660668188036684563001139448168831355034013699975543455698243558459359867902647805459246886975208789662107954839684119983169741519859873445592252219273885578599674920035344744343736041545153963686657095244184785131068020145615121644972832326199220078128300590950329203202830217198039352255680408456159714985515993461639429413052216055774077995923639520800230978674044642360066608674171843758174110004217255737525561521624267474216442606321116340179699700194410286265444674414510430418296280620044440930734039592241254353102887280603875270094693564349405530144203946963823231424681519249603389440800977936574977064312208407986080332070337077574298992728427138208282799769841099765320343897956157074745335100852261026085651762822550316709440410766734319866258004072202729364327679034447092357205225799314639132865048862652918304992981503762846816157991182801338369131370982754297787875992738187702684912067294877950379750191162909962487745707788241339385955365583004904125567093140886697077981430878087301378921560268932631944276202643287857710053159555095937785019428103147004475313596729632165537607191731194318576490184499114097652805583978656476633346141017240330285124270176755503490176619366222349633772545825437187306245045607028223612860753335968278731569266402703642811168512304119510625893244200207257060579544710620272126093643867776311626976340270782944263996142485655679385082668043370593245925581723121449141627063664296614845133149995064155192432574590492198180738050105480205735045065970916339532487311235386102044349176096600110839412807113300842746847160088553588032132195677878058812470259546938714414388798216975750350230317637250429712250193563438566799348548823674314757430933106964650835584801832087464372650249044376000331438481848600696928560589499904746376894199737551246895454858588751077262087784758531525469311477779213520365398928307043314964981477355469342565688804585488616353414707427965192385161505829172174810916036225766183916157241449625420859804591044838001954025581161541840418612688273260063269216009281191670645482594526025986404623116870920511361369270882579382429645807224454328820142736980315393618092268460634451200322842855993980641176391950267224544428847137477178454297255184824758449938853473464263725416661455149546221229356443320928500935981343339486191577109971526050630983852967689534209541427646566087118378056039908115029013918326473054261787900539820046746024384511414293952354659667415774500499119803580792737674428221289630435232868011090549219252704990429547677199476589519116953219742419861413192211523769279216863590488980487043705645739054270888750511337076419823265695389909420082380167899247261066736111397844135336253670566926701425713045746515894461503039708504158906129021773928765023222426112962880167059874998085999735649717073938187451524584689845173827444934016921569240053219842577525557659270426925731506974345333631729266823192229868237764741530623127453519013618335834354283428042566199594849997981940920544827619189078405001243948075071666908813370340578218343743843753394325331361514480641662921613814459240418686590915797507261819283765523756748589769491686981335620522284005834250064836185267668137693062742620517878401852684037423208182942894408013229134110208136590563481764941265482316302063090344937117748560882495397019187335250924017358823949975293523830541825057520466383406035580818816576361641472222756753125237974442901219181850059335334593667555113146728151624414533115072040195994782082002998745791229045727238887132864297708752976254677927903733329129449981499631567943010579574782218432294120894255792902173007944278111905306525124623175568976051255758351393811787832291496334748416773894334142447037143608842457337931443633511054498338726115658673708052085966712481730205135039815095019521033765295415601521663661803019834960219616703573156000938753251792182260729966387792582028782187366721465365482219421674157917423281322470051978555988862280584982019340150706781935910128662028117165145965243089066960831324683391996866807360739898972601713454564128731638889419268550493440973088284717603068972085352079876588404983005110565472741695630017298826655222219761765842397412666897883940032768492529192281899177885191319956351461525923214310739657233678741056092520187122633466709540964475525715432567042670261813214675073288424624018978692381810890147946688127950284709751141721563673761501289782264671721913332782706757987393458291321998897931082317956359493218849401061850345431336077101962716352877149397176181708601244142815535946116904754352602376312150977056988584821908943736249956139820474486742622236334221435947902387266619978439450047508601176749821467396577058997586229536510167147060741050447571047652725341638006027199999106690086346498487779566670552503317583598723376013695321436495896497910629515600946143586436365931819886967664406287552283277879181993410269017702182793025343961199158489278360724683105307246871993043029867928823966211405048105559322460677591745734982390306960484781203668015091432824143330747802709383839117299726752771570214793043637207990136077044958039245100103028845968671053533363522665948587938954615063598888985711189688657042091920546991183443466065816769321866841842527731044701628878774118763417862011471165364487753848911042728301660783048758411054926343220324246922040359101517749608589038205270081145842405172968061935553270659599894864004561690963055691117464300317248463069912459538469202630949941191600667931062685282754390918931913774797879372288855765278982538487318780196298730530123486963417704872182777850426557546978462609928622532554215923366516126946424018957786500935079602959085771571991056782891678859642023324113757030923505645029365709442358440034862078941253934870104176636275426995384182832292679418701721140864053017943199265573126709476976131263228604312177695475746442110339586566153847899247518541275770457542163924430054438555932636234921507018498792641477965031315260545679672079790234397249715733678788369933807722733625199097330843355866188391687325466149202107827815212431509569572304635728738104466875870863304265104380130256571497862187394864128871089287121023292510323287962326182537721786529335513976077767402488059239365042915061545252083443033804764633771707062949638226274057502174965580191810890715293480482729574159463929844192116641037949340866302791435151517748715615256562532175844809714690794921985136789539312228883427697027660079574660166100424572434559183154447025395773953769791797012218055935354782606668934888925404783720831349039111971623337771579495931077691476402020643950967332226794781968413859118870705158799503599613843170513886241029619719602628596315161433659295769137694440044930635291510155673224068632388956928494438670186837872568734173512149651388478647016559357085990173703233828166120776217276124430597630738990226217286291594100844531440319231023402020730650678588158134740480658207604406529398992923925295778961914877652583696468585918534921242088528445523739609648729913802955162678474087419523069398474337792268720038716563036719361580543037571907225075683147445994787142352148769080567989804701740422052335614067573160224167355349261051041450494008781715457418886489279804003685581113044101201261869517599893629537530153029242218371651933767366729751235369944381783167497815533023269639251154619033927307705051965240210299597585653683814564861222602802927125241116912640467334412999424708622548103982692778600011760375525561730441496037072069966608721075636825184681293410212792171104773523843444277275366683308577524349355132518782670077757152452525226489586495493111557523723787962676313357123419503730950333270526245966340107776771215971047022423957113272459498269350329756018347412375347220744975961433532596916485140534445830143610111049293913803905416923605015724372684952025274292802825675207091894856252134746625062683189612145924629320219363269555368464963022037710274175222433966208751763316056772056197336147565275922427214327676716014957058301116573374083108401696351039232165929427724141840259179615294645371996435167918389229617645624983049443565950112823017585103749297352012010925455144968441682969906605942113819050676044687048880352338579747582367270369454644755190298334805948946883557193013622746353550022073162283373189470549665982696733298349340064906482622263918043580137241529454701890860813483461584184951065522940984705002623496509698342819800577313057912411270253912690019564268000351491518587947769234460053248835245516227571352449370380423246456423577852596286883218084616612911394164887990568773999771519383172746151734141532060958323526367560295695636410514185749484098595301764743761886964470385111267575539609854886608532772204579322969404565282599128926630079708489900314086294774799669842925238530161891461219068328022989180024537334174443092309962564438058658503005146842798460769162175181837033511834881564468046570656953357644869147195529548578273962739624522225239524989859750029633186226730312119226897288113308846141680496105670966797902967268169890433693883025580946147453535763674569670957366191474047093195567709847616830366590181243462940800897385891132156510577808532262292715937877478555286281167242182158432269203844530074741332408472679701910625136898087950378106732143575142014470133971116583055311094161830930252742287601225921698434779075077019802463084317979984120965417301933759142149526921091403651041335910177647809252860411798427432426997761652830033340910694373451903168640290659071879759957661929658310201351431172604815480460315948325618518435923479065955477715544298325940298545476786782080485696463177378375692893354529564807141689953366938574361735493155870219122765095910878329483212290678567791956865451940770696807324277911670423787602673980357870869625884281221359200285204190910545745718188086378374762676046445238074279248786141820030028200025578457326484791732774065854183748239070308921526694360423947595386827056464407259884417716173749667056298155710272406856460061109251172123412552481979307879109958030085527308649311575069977981427985922739060776370459537953369076610925796739309174761499379901926385948056814661769824169778829211536046184146191700014373854670131948159751625693045209484989084950249483035307573572669214568365318208016969435113352682075894324089010264464707915415167229188956295352199085204614258513783774062484042943289399967805570147120547220785109942812218779437994404433186400678339011087700976363688420544118339009045922068348289267085193587528621814930621757188589633514329210682534070509076675039245214051609993311242106610350275831522534065923140022479618972782797597101970757959453848686770114285541646826868749317217225968098631062552069548948950304683117592720436289240180107779561622320424515563224093558022175759974190598094158621852528096774733588941016724987615165986821453404087451018222071423028706860374173621601369150059326139480574985735598121919668329196683486048156421879206676474442728101266170235833636223445984203516036211874255213525076248321512476164606868990554616385212376459774897540377755607312123657270410708988169453161701124771108343998156077770684691188048905736986680223513338685739718720766298134847007136873069105027322838358865286761054202397026287388572560105468452261448980913932646802905180631378013472163867437189007586527438409202023178123395521527370519260763591340168439407173766337427631588399628455644348837110785204070409024461854282554273778157752664433568707863481809918189811839275443887335582311776283145253962207948890718802866545563614004774321404432804776393659671667591189865890511554131488056929342470952693759044178141285844179057799835077196317910837820628649323157911134556182349549715388306917331166221224946834088827153318884451357417109307939961259238240700006198168651711471829866582744631733995620301211895264182319919223239547599793383327655182725633951709480853949211496945512202732469790104082519129849606857260989959586443621925961972954165250394021427519792206396593421764111251211309172936865578754061444026087495938963806821755799718799895500425765457561580240562228090812927075058648425966781033754924437432659518067566297339009153560128685190806120859949912834806293480145517145882391009502533914090071466980586585247801663176586771764186094587782456768897115373653332324663666431338567364482821942774652116654794132901859183535509015782766788966245394122721193887691301952598018305635745614621973534334755901725551474245740000536303515517144425773604021603150104598286983100071978031786887763410488133089085978954445913582332861374234134877157062828760457224171558361828838292008130785199841779070679617918088491280441366487018667945575887232535226672745831173182659161442196981135076222494237784066147244925045505965250551560211320279269190586912376249659455455384948396278995603322706649635078267924816769088523689941178329121534837712590489542992230144816007759068298006727969315329685778726001982943112949869573299675406244290603801234155257216168501299164753665072523607476272422339600615168283509366643403898338459320329625197379149461406400431499509364835800901184986438105949645665906354912749093480701330593244402080587406886818852775448876302209415280542587650578741423196724076357821947714996115831598570017680221793643527808606150232288993721108191811517884775256718555829929160473028509958523087350435194581586737311476282583823004310970218355100531266325806025470577428357906238797171079592741588313513414125629245944169531613519439558319592534262807475582296773985223975930677791923615296734712639364996484636097550348365547032930073392505242161162565045202439631994029339692934780840790262610189237468538291302208736897167439126645100636849740005260546972688556245493310561647068726989488546549679106276354468325658777741190642684108871847742678479624885960218686406642443041727528616271541867012063054123022368834550132162062237170017177413418633058871584669769486945111277205792663077965226681011020674941472797366875347369564085847677131046833763764393111293843706529287038481128115590371696215358420483803049649712262543212788077441107294883738068795974714952010231571330024669285138449762330464297255854134250328196123704898609106110560916967058578052838088749283423876456779713588827100668896858634922418799009393541047390888614510087599001154709815046241621163241721332887693422698362454750925153527116282459064012626968524654921813096074838544383556730337859119349081529122356563531866682834100755520639298662449709156770756891323608298149467029319850776179528691511069237084284544236376088609843610553487174149077766908528431161885782806478920813548928032760958832690167563764751804370820297444129550629825232673312185267144122656705994509147087339969385035802971551301882307523902563070181179829740481937649352354540918349943241518938927281813959386823188510391441905291876324389924374468698554864803814529733901155783423318082805355334984601661960364033708356469726757587565650494884686020650259494277257379912467827586208896094466829214564784593627553938409734059044034761085963964071975890361483517661013107896236563594941529115783840667357433818274337826497722025939146709654222595566512465972484013902964403982605705061914782195024873769689959649186616188738757583605547722403600741609083736515093474027459087720377828334211422038209142710391549218496606145910061854471266834069697228155204582401687891909787028303948389411462416636735546779156765636220533848706949140277044563963313720606734597004369420962494963711887969032726965992341330718688476757841586364905238354102188362614957763965279336754331213099721803871846812960112230440612301524606509239244216334355829723903611949655248239411019078682450607434050121404876647129850250518377882071879646348073623316831946744937637166017827432039361378591492385058730241632834616859316449851243420425671693010229688525978529948538174009782243993967555385807374856875768516088042297639079738371180480247362251779800806845671857716536919090762893549715695892028412342094845856799813667852469075606036129919589321671277994464817246835001614107254209209896539677915236226129798118700103037577022641241745689953906373470068574669655115509207200074888617122832881381757318667894241610295728800863340316190835408686804571199365686701225863855937645046752631083070327334943652984401132178035041121812208322611564442901012372335949954253044269639675522856108142339512730764509722949978419733679282979921380017832729859531121043181091755411637780651459352347060241673359487202283871770825721981226181652899945889588172106720929654270912728455994129318853041823185963388507396817068461766974722555384235265526073182968251525206790754087214944478963831774995549084168336026360798720259224225116822180836795697939595763221462628387334137920648724785190672550413979392070045417076472921083615993340184790607277274895128924933186293703418430914534267563030774709214234873749596713932584522487833830843124946586154394232890395650755235838954466246733474030537184635356685667958037422832889143845859120460092677220616235880458566418263475886574560560078184173494860911021550907547184065771680289363375786954058705369326475294369202002576746162741742640051847050880414079079650921097065408431723621855394365522135085018896942063801774075573220879682072439394895475244470230164798583361922545988894161348370924409514589248297098006370243883636353100757825557973368213672888808376134709978879628226589267386248619895401514486633695828491581255412575485282963075620502127540394889367392897911943079499838649911384017956420881154336733093571359461236153601296092613795324769469075386042642578649852208044650748367485977178935776345147007727430878659464944644835374305700784902129542282443377043117278319242563631981280291240873461340905425783971008232648740574525118150412423045238067581407299811996925198662194288513841358728144438703570125554349012721813853121209806828126883424000582698242289836972287277223971350538997358103608955714539773811079091268075863574819525734969115773039845030892459125165937749252252664992795403579197372256676799320809767551244314258927137678681715940034206256487412377184334213772307121145933468784247910494077622914448202743001693637977589986770461431405589703407028164263068579527515793717104584395695980541890144060892084129501635273947475573059034495524697439557494693557332802361440745582203274196023031234616985810986325159190237901420572571392734877759141244631905474121206780663230335863516958070943499989860524495983857621131369517480627008311445048575766288488675943589585716514580740251530976434433237327454193448113646260068313290008189974518284582261670804844182203228519684046146177449429893741382413016553140246031532546960261295796907266489263443191819117375504610033573555917729785745013603414095092418392570302431784261296483973565114599310403264232642769335417438818672900959819502924863121141432774819775137026474760660251669768714332586309527570874463586244066607413186640333518210191719534489314344408311808268472619732327076452291041395266486289477830554469032458669050806449439642580104229805253439461707591535444607783536025563356390485048986460881023116571695046711057681301454461465567054194742233669649533002093561636091812590402942999136016631229739354171002550894607567829496446508290576648403106345582702271956341340376225980023330889795937617777151862240252794786483245802579161014810273666583226443130858188330494062029669311497877282123944807185070640169744322694245933699153486821060022109502858205801342690334282206540761058382237951039501897003822392075797164707624620934778611783092486320379524755427451918500209479336178011142111905549503900213086590124775615073139505779101330989893456686823620614671389504748846975167900278416772607043151793626023099008569141886418036291441657414172860081349103481148601551539226159349374926968895211780926744058423960735772856515859095371749260124473024147792141232630761626426011244396403240863539572040509242981899270993865757151305280118601967338747964398867074964089850238980588088470516842326987047005104226024045324130324580465058964340403192020622390471675425954477380568628076967336190850606934321435527760919714449179789675536659441302211194491139004757464680261971394152797486714997774229534354618180257261091983704474237807177174008754005724673434986549086865198448311738726554855833400983080949105248205551059231019079445102065648053272292561629949318385361140593138359595547942376480587671540595599459086084552692012569441239767540453458105366188129965755118153874191356453926226969881543548972783516075729982711026444924315210188712802612719134552728805643050902993027117993921962950956424510805850262627520072566769725533162997490545077518231719019417544744620133694755941915250157968976782743846990426616888541477326053962197812302033842548914009564971307813811954512711866677441860679522902260009329371668192892373355811354567795392620073914789867995659396534288004336100316845310422365343287111828039882613112464696739379652103260774615129660153292278066951651401673326053239582131745658506388313706106107346080853275042497095485494783849403234215265838112915929008736211538342856387556293913401380373727480512675465799903768251133386219364259837292050620959157273880565369932902021191285910713941106795707966836753937421074337590666915106626459071353246056738273797821906759374109791530665687675666862097848424212329092967099420785437267333354421086344387450843046956487476731769462075223625854004304040463563005572852456989124557804556614059600257129026859429098059666815894456576216347757326956837739075032282175564304566812140507456134255192930275495706014136568512158401597937373436167786205768608555949968852690463056786018753476338636221562566300278007391848092414099177356178902533997184678263716080008490272982854077439493885034017116576304755453777105162133878493070565383559364492117458641110689873022486758237201621244950201269359112553679597942691757740008652625295963385756852119995765386397741407694936677412897275824311867618589736695883330089905745726969537841766124474957146011529815805569485701941324352447236619523096728396969738599824130319088874062241663190397039559696608627612106135652940456291476181785082084318668650394417227844385754335775981993654482264892659733695753747125002960876276917584647009540873926575902771467576351193112870773566360314261197536292279779498287001128298166031919133714005627510485138967266145151175583015702215775952691021965499630062436648031940832815400773712494357675008299630845585199387220785676365779029685454396554434289272629785783741416394199619820913363927270457473054228936161267884311130596769548528671725015078254550435249533955482270981752670529297579986029155215939643562738245586120915187323511962508946112407788788714644926305024608349375227425673392617692575883790061015474299838673518618733744954268645882192259539441956144854247229004121050610579570945392677210593545192072796641833929414923240245605895793275484443171928821792555756926345140290274192768440798057390532882190571855554611674283040055307098791158390049112950129368337593665300436408146458874231035716844412090494192149292576212157322122086547809089874973894587806701745474711995783235035991851256459083089672446827352334707683756003625571933117483862103218728929788196807811625545606932889757804271099214444390854226460356601209676186678737482973913522637010037567790747637992039598975995781065955552063442950710547144343096464690408270173682291640378624620841258283133586194387383317582948060404929947813415067476171887729773803557683626793115454589571705228184843456882573474869521671335747947208886670929005253849009695140833047421207052110639378308997169328243922510272607316696545929632747768252117477235610829196936557639670994850194062494726042610005991244303860530246459452581018999526758715594852973401646867074280364046171222628805456672198063989435309367846100698004360038439079512044943399632462532238226055143111885725989443168644125559675525223995569799260946118895412311682273014446552664358543645450517168470824667087442375261117479981922940852217988332588822594303592387995947178743649044373934486167490916669072700515282079715900662142246520629544666875713014842677496084753857371016642657128663909707840006830445343960686585787733877814660908596321340377370794549401333095244141591810448144613133448168837543077626256626450737677473572165696806121974207275904977971517298768303938164719014612364005946889475262054150635412403579964104970442434878987207700122601907940163005170002008073729695469703162810014120908896523860241506248198871279127522201923537489532667287903104184141622216092380170164336361102099831477095021054888239071981698231871674059686346357509145842327152894508326001763041645854093784613125151151640623637718254393612811859860730854838655888277730008973995496684955481409724082790190267551629403294982888357099854571019744995209369741091073903685874695295869050548883567768835004385461138381765510287630357242507878777193780035353451516813450988178440419755907807608342999333010712556804833189306838804212842944596121105275369513783817534417071261402501164088157195530351279417053169914360014763921192851459223666741899948434591017963318406125480147982624277158643272700945484778294350617165100717764253420514608885716261223697134466799956940570036800435973864897247625247509415448857881484336351935057761467494938769073004470959139936898692630783808142206347486281756467575965805982964829840808554993784572721257080791002793070431161369668611457814845632422761382053051520946733398471435281510899565766133684724794791774537324384985183189130045015215559776394772944286499737947936196168204519025352029597354443675328227137772113326306784488021698891716905445307949172235377443721928733068397188945099512060734403429310375743289659572234360028528600571019487574027994028077889874512105127840271086841200619959809918834834700158283479561345620521997380879010272578641702931660346944792708716745240241673464402772984492949510613174237013266194901475257477570455062395850668784902161948239429744628246477537422691884796447596119946517304289387600989422588967349533445189987302365475326949651914055739105317109300764202317041752006936965974099784125142081660801019506458427057363666359525403057209225942148298744594521026678266595906390172299693646021576569193014535169029333856598995342917365217483513384741817292633258687165110455749380109878633473508368322459289178377616143456654837166743410702710629605242930351239548249006755454147005513926995775638140875729089013163885524062532777115487539399687390187197741068550701547020033664561712336071824072736956928027452575213503988102057120569316647754761662726698360708399625910180880196826851394119819150360641343636797021382836810640581878307138645006634676802182372900391577334617806230168795966501350798625364222183918832049887568160974001988270418032740754532991142408767839442662484027394077572842367196977590872345613720230933741858300345694908757557116408766684636185609335120593480770430320494463735541722643585364814525991322571576628424841957578306427494597570456479745729939559808930525614820892895502274995457401405506767324506964632884236870416880779799740237969540679382590591915619527123631614951546437011928276787947549379756321514197159142791636005305800367923919000417440147399488015125477183574929745632330410037698617651647253055512141693687063020192765266306825548444353684334785730746911501967239596190390575687974688383390967996623940007580233894563546353986316249659323192089848181445928540358923483996133111330334637059825030302869747338301449188240759298600403926612967876587019325262663847175665876427508049537921790655706468762620159860835965282836125011793428521771629930190583443426255979700223580122602075461567906817219712545508083656973321892518321500639071991851191931583130498382124076698548707882594309998192858064034594391356109885021886712163533489826745243992008574976941763370329618532289797341744661188020802504013788465550190149352200772457847173809501688963345769331962714271160512907275876211459886291652457260796925321893282610847477168396544825693000322952751255515992028061636156458622788635453734797936220219184473367968392594622211862333257880050424230573806463443864959780221626284224540221417266242249016532917814590948722602378837118729810691876008268578515351427023434970642802502867783355185666596831250432024897230256632901976788784513142774385818529945914127922128709962311650087970049663702250195647613137957451658255896905413609522517931387134856351284631992906780000188776123327389219214422799345413861405467707365195211793576007248449296430087788961683812507191190357835518054154462323829763937180024207804123161441376054657423274323491252980830858775558444848542968803629516611324575915161529451694595182974943519567897620702781596277058794277700135285518711569503833416285513307457601764017612492233515954656592766961550412043799874873595658992335531494011171855470740080486239039110575797837537394145128057414271966034667638641396955588448657315359299315430634053287438824308705100032946801692554177792324879340389256299875066507709356004559259230723622651226716104734894784658745847074542319421894149978370488695831399759179770812885771332358568069396477762285501135680177719853865499511749790006262330081126144625258958494291814636523884495125508882176177834481012973477146162347276719889450327947515293172011272771704656515299457768560093726222446912846865084469564722531549666758870725331259732544540877886149640396949856367635926211365918800820800504930553865591972272490599161185089058893571055736548916028317341815545885963785578250657327138836934805719296174466280081375110561699855170026385136706338818922632641858968608897731379551340335986755467561955159517324609381210305783427544583694722090718406226237389454816705455805144191374402980375270327124289866731345983531050317874935330339697419411442521552110278506072125439866119509932299594129576703507560584572129423139864578527905981452545855301004666235324905929047013289336891397222327452540991738779599768354533161972453056254643941391373134052919418009941680376660063867274465094494654346607609350714392742138615891075352671953800108638933421686555779550188508425469968550893568429085385369340578591745749628045540507494694575666855964571581407721667489007718137940389158384974412790574965676300330867750293995269731065299629091861278845705694179921134923689546145445987769753999750540949228466103200335073036799034219127712618799370356215780168073558476040175758257681679599486126190932482568013329463240831665965793874646089432248142908614295432654947171150207869431338605797929056978294535589155070015511201464690576296592567829520760650075899179438998450426138436865464708534169283180417985780628271389431158006608669234805171547852768693786562421528650421118117921068793986407640618482152435591203321495432350153046191918828960733182405709281204858488609163447490486145228244518982387531008260796027513231441264470661048979662053272664799263242538148834438876768536359623193196094499246275398898587718657569571642165552055743550333626018164503955555877266340139110811662641663547027610289209406770541088024974639949228230697401832346958784723184973336900991429990900034304081958152893199726461982367237183958109916226217007811735942803631414052446636499295342490932676164906521571821301891126000668805838488485805625081986208431708353007088253585198068257920905965248711292962537241559456436922095427145751049913506952529047258920484218277717778121306379683094735758552532773570978512199320554784779751156787609278963270466368626588614192032522050330958943020354464085491124549467193932642573839118802528214003103676032533096412339806791426540454771639849200848648461519799170507306730870742724628786292299289128080495858786478063612317096149090151091671871526579180807368604724726644644185809467944206573388480200135487204288771741201262246059327249433454259034438697357873531520088265648066931338183087652939455900702664539137462008742671322251232781430209399598870106887717758049925732909525792204345980934963100675501473300826764805457928808837447636835958390567486069658478210761546861682376483060152187777675186742824518734262794793481639896216530557743141603031236935248983493199727705663869850962151338818900400234433490874890248860348820282744846086238863816876679088197577731319683562003356938342532017815938470559629384190296369668002005132337071762597216647397258609048900245867902218544929174758785733893807379440192270646460408163685207872863288309323792617759624564798938212510318349239274077588736383846333195009078188453830852444776556089414118047930402732811742183345376168064025082261799713748179752092347194896087962249438062569954444508794330871739376762155023483971727926745440130701630231785629519698588704979035649516814932799866049935563441159672065673075247944644131123789546196264207949463465452958795761830597064876262075490940037886243215558474795016931721357192285752416868802922134718828770382166022744402563151526762243067662103514760268667830271991703933699351712157945687227152796926972614737626271630731702471346185765335376548693571015055314128394112880494828519578141881886420603907430952316599804565485401926643892330665826194861595668414506798400897434828666028888191477630372151614186828054719109782944804859171782501468552397528194217898165393059032720711262816923531646347011416348537720624458949073481710808985584171147591485505491444135033610117010841389657344037327433578166216641672064948466436234232917764120596587754732727301917468700422055933942776855650539695919035067261923100643901820691848963940318666267602704199222942167428438891675935014088790951674844613058742516550357465961421938184558215205132473668084400493584775338219779363674312558089871251719373391377207472540432468516464482720260945057819057964546921913983796295494524720722436002019520617426204631201495965772945118246336110381773501656084958141345752805643151067727417093087581462160182296010932612517698864970414096899059250973966396972799558580882470933093198251612602769381219882268108222527033388500884487431114327583127678058836435441456058792010904988993592400762991093646886879153831398734336723763353701931034314192671223992186438261894200514590504749167921744931871078550335419845463619928325411134250564878153552349580908193150453519394813719210481122983801500336834919392808104639134062568843644782793057386011246597177521936617996030148344209308876262894116329391996836114051271003381915757862599060803178490539845165888550120227473051058808290591620167596970106950975111067205372588492457417005185209912455689608254515957351740407205701285236200933943247558123064467537868214134256315796895393738081205351521258420369125562721801337673855206911044189507192212016805586045106086939445901467600012539543587248485551539328288116225260814618064493552842521602696220848506681386767675262542196616927828563501476727947419255987788228017251600368847725121314132621977535130694581722380792234391326925124091463839457399829275034729864939778511667963475076783686238059816995422525140692634949841012602926443643247181609916366161993625562298094276322498038136905073164543340417545175793380163261615592884822991910340725858244700082317460773677912092134508356819967761050184536341549852794050852999285877817571065525699172603026555154187393176298716295142415492356399256649930946596103857951142908832756720835688530652768886985648996404524141084853953380223753810190969759472868881746276298772991403734908758005880769182541186858118391554127479414805483522982106723196987221009511141170277175876189370647092904186840366926996862014288179978310017239429980750750827845122003344954346949383811874208930578831056885246816914070557577069640296793612206661274743101487181293874633291906085636394986800715501220099761233176360933330234118204041684536835483579301630785155832226275418918687937918756326558445556325865781844510459745145917922175336955433923869081351674198596895874494256958184253866676919787485794628018531240343970598875179997068150546543910924218209568960888215455369701603401436329398469098937205820653232317821494393897923302452281802564408432192646321630673297136582969272878422667583802568736140223918735874070445033256166833589028544196055449834470975220000901438476538921254775271277318212972088053995448730034379309920894813397213285099754128258550548477556344761400912376190695704161051929924716260093468308531490174242866833285077325185082830050369046830388072987907517420112226070737515107763167531956090484233996097793228733961130134483517299860257287880639274168760357313294402213901981533184976216910071155140960262504377577348221545262327380405545517100070423786775572830771880963653924058977090832593899629773834556898903990625625419924462787034776681626090918500795687042445425988431996835782544292868163522955751728403226199112523041824588244842271235161517509869057248374705467440537474947882873909636549961345842036980168559970044180528662777400786953710680855916727400819316946765073070922903060878932507435505184692779313813864947654235881233948151424509619408900824639535235817029543556624678218529232457536073928271686126870164090899888691629499059835508856372082434386626563447985837713152095368965968601966739902573236542803359627321141435897035303561035034614231786605505373879804599920719710362113032019158866782176258934387671161810309151870015853460350230509778097015870393251018123731431357048052897395381609159166944893023012506009168266294820356168895321847279388183676123849729333901945271706403877251779212448299621914757151579739336241773427592046743314417270141072438442451151421579515778467451357728657684016378650803308717337320674239219176965558312135647818653455230707382709261387460111219266777817789023503294043425447956702619483199473703858110997663304303550924374733696503308166654365118686027684601675904672864222231828614358550749256987950130876435353100595162759927857098269407500131162908099295296110114079522075992952438911323865980782349893517851894248078646240744144647990348171033606936213449771448448363974849113070950778019374054237464737200669694384591663367836747511430869874042368301633022291032945018165532226974524458136393052140411300148914880021212514929279424814755091727265093189210272225255720164529213505558344281727985148939309448056680193443016161570068894393278632841317230540756184467296247144907313588050091014237919227477552499617858846063166811970071953903286555320326229252475254130095048728115875186275873821995591284416393239441591024370455323551367312920490467320718903817967966370712029655157488823905729099933814169489096902429625368973682990694163865821073404978222366997683719726130657077557808233981526907181956327886487753619258427081345119597237100022736519317989644718766815803857725366208092270103979073616771279673347736052974733449881960621630898319751879712171586166899253460021776356729343546413718974317489600278729004830557203042303087879388434060787975609347886626669233507816906578898618302398132651313627821630921259148715995770130246512406653701638795003683107002815673810846078985254976672201762329197870876217897454307618809456603366105929228345041835447597728287994592104537378892085296263680015095356159755341627739390678599846544519950632733693421316474181681100628836693478874469050426434460995773856643454560289329504646646237334098678608222520723017934244346918547956777999386245762920904937163371433985356328040817611064739731147478387966862548942094232837534521292054888950106531827372509223844364567366271906966941513629799731400848993904908445704286113585975625766360582797546305644147406049885376738754744719870597308768983763203521819477836245320424632483464398901435784503446162583287418757399680641516885483889441231689430889463211678722959132976950798619402691193658843184655825820617679391020332138323923210329888234984836781551270219918597291650016715453845499172446752398419717876627081834825584707706359836392226028099327089080259644081411472988043192297286712927837761442188007132235940565275922504264194163448372744749662116656267786778633782898469870304127059198264847625904390686807985427232329657142756098295218444463600383813191697381122362039113427807345216867654314771124070659147331766974873594468878509664995621623317276506829020357229126533230218029788885734260348077516025975033652123753953736736097746174955488826805155490016691592692415614752378051668392447012729952358263790171966116870058572466139151606805138720069177472812024344471588321110275279857217694476629718835908521194334840101510477186303614301581989262501659921208246098829295859685246748304211132000175515115468897895051746636778407360095151081415175472574134006532097671077849272787989945523784889990092255492814806003691352952299871730538123291790776743097602052236065598580305330273229959158824811947503671593095385685987324482239699447183785993968621972015611710419562348037893813265824643086165757154996734825542805198545282222235145323504358168282690686977274623031011322544357717968444338719139151302449202307617691599178667999961785207779935826818563851438922917068172384915744981085714414308778367075922571668066900984115680528153445071381129517924254339477448071476071821428344703827093839252095770268992480717346094278906654606174784787365156975738613898503024688753572777085722122094796315648828757904948388954525267471121983568742706428794217205575496252393106864820881700667637453242335162110355197222861736119248533512625500925376685063114506398633592528441095617258510486298181651336499762236331394072521516634780521989315656309383552875863456061525898209482914635222307396711604923405944066915014423296214544773423949181439393746959278859135840979122464398503882405118241757053927686190745323057795442797372185120236997552940321755247843741905345864688352048108988690879172025604426320381853824745531229873029974901947327231210957760198997033132257999917821941059652178137407939984762176550999538234595980882312192644539127885232998323667713350275917150968908590647144597846588567520857735927110548882189166971083556863388486639406330326505972234460672659513027979177008338640488308265611146104233552650759329439864368035890480310584566672059223822682184350257293353317635822056036111743462271254302176273810665738863095539926561360592371856897611382063700261680708203643084419802597365013630983237032016230423893645555107345029714673724392286414266277665176888722658811941881272399324914858365480893947042636455509345578997177521438564507336375566742039043691645341970749474502033527309944588176441906997116006588049396788720685635926470738179069273533328192633730593294647920027211078354619420086909540428392540753119015257002333777583855407081812777297955877904735860522859854197506423888526606082344939824912621626367301356924098922185627050341473333363236510768511500385724379385720166115809421806049569019245806184707403551715284515056805017039318410425786923305865663750654660810952755794797632439831925483090227173556320041262117443141097516546450801825832784344843131633707685784956392141890934277754854460469664081086272496630324663685135975000070746038878664342694918638815326392351663946519875786142332654479158236760455617290063740950774403693103460034528436162931624778712107327545520312470300770437364181944509833162847314389193541319994207525671646372967433531957611491238307589489055635398359309085306286846305198077306586590453126994539848099346458852824636808722183128515262768482699251946673842094540173416162593178208647501744419276885989525218859918736310148106228016137649352694238931864720534797898993581525150048737003612246955375922579199112857241724125026155100303980473609481408527366073601196231182397395885839250283503587759760885669141012380562943084224082227877647979420995637354257835809679641495624798578116739008902957906603827603941915319774658849367541625377186755157170220313068083833574661577586769594205785340127322371368022356362248511820312486032661884722332672463907664376960389980423346043778880656983375641914521887010974973023913574054248826376301303898244988771679593952010105197132719680438654167215318313348484101619285775775674488187069694667908710697416711906993533634828760353050917912685726147138999759167303964822686366359528194473446590149390923494515646019513777214346371816916301836532725517996401929062070036625386047907557301999003620458941663559558886136945735883084215374791735744226061083255803946284557596701797828732259433748517814416018923156398646064014067721776438285871099708509337903064096987151102455522340034536586391803159389252037956962167079629196972372260716719077092318571491025200325014956285147124089620028317327689422308528602820507995855157934257039975892474380478171683585102156363568129828684807320909669056925596598758190643507676322211324844484438934768997696919671747169002323575205287772129964994239714815369920920528680628213187325810421356168270168988305670836320639255231461758259731568647329648142316909477588828591610867693740591715470911818931951005897546574901963159226232587838536801484706800518124114865937628785275663067305041255824524075117677639090728196744359080042671680271085834530678352959508702103154340148945540387005231162478304602751214898938311156399225829789702162307695289843505131741971982325599796782047547926511250091662347806809347792105876286744106665541964154336519512956439087783269880617207295796395722916593796561401299309127533474273510239575828222416703071831721105719381126283085739284873155917649638537351003974044275289874175881395905245410324734767404800057053209670138309484203465159364690784605538394486938734955763286880132411161697808151947966164238990998951464894183664469490887568744396360628867404455104473820337474349434513837929724155521879029675817062880617177736409634566080859309237837076922744696061194282932526546131707403691356208424559009481450663380935035380903882466810161191921021104673548117919437487280170506550128287985353341642042773582340917149906716355811687340518885161597128817066880384849867100669057273994815119347021050959372844253297141272734236766568175714292599178953317209253954843291291705675559894881587295519060567746121784093901847879300556805113658953808633301156898481703753552879914260835570387023827007849015292981216960912169911098027401572010245564233998747632604624687985569761746339767437135611508073828199667946966045707300625304242538271112382886879063991743690435521996684068251767964600930328209278602764813883061303771445773005354712287417568477237487364327692742563818523825457665658743123393765210958697584499566728704117326640000841203182537306337949191001331167446316703259365342228305506636416179290661665474774407013125409055163136127713400369655021633863349477070574439829390895803703906700110190427901268411587470500970140336252272478572971656449601050374689590023225014544450889384737469464585384084220281965427488287726210340929399626255740916637819702622265387404173445784508697183549177482272576900675178802798935390957805470663439960789469997949071635887484604014437106537917607045068826795999860082930786046697730821641698142353268694408189884965684107150009387241653278064624563767613004084611724532399259337442053245653723012856763318367805407110384199077357574063856540896456028529037457449720402236877757217916024586729805781589480241330429194525825488047481643516043246629820241170702821840815880200215653978798372113827173150000701851819036757424419720814950345082908536402943305520050868661313631016872594432630555585803463200179896302863184790970319373561280197859951928964498854062530548180953053840892674332717172574586059097709656938937363178136819140181049932923924808931773016989860727729853901007421352934951070882841616808128858557541219235704809871286709767295912792279359338234378043090356943446306484348741428547373134962574765085736528291147539360410985667276480883206574140721304105724723957964147674042498125726459680893299506565898102984472109356060536298375878785407132532971155599378867539276592462301523342474319184225327238817838032796378320269091045930250505956609653810024603237600476513249573157480642460906531876751005086295211578476445622235636453836196709999002155936668007235793424831919357834429943005143537838366729006319526257491053792824078511567755996299228510314607895219488065675001264173740315553978051016458822469637626244349677272177754258117762384922036749336383978770649279892540731120640523580545606284569117024624045481274075151742568779980351516428883533401897494360035182115215928423867789758684696166180921846161668406287285772008485736001491164854514242377836295511846033693604961509743058438842893415689339008852525365217652819215651296702241715934463627738158502164916453875316282950248475660992952371886423173060922108898835878285568822021039811923651233596254657010026302215968754408184106464357519122316956503986806343307218560221533535368679951434770331442655629436310486581937585423209209820613256061646299269617609600865944634688441812962721613993885750782758941781690424935110832674474178380940734107824037109047628769159008429749013318626570428251490809714121478067670763754335754300327291375402865153982989889985167274370190681063380494028781506408217589152356297444878686929704669995519643921738286762322414921716093926692234100505288071010903515833249828496015629495632216529982582374779693238217356424049162656584023145384122043280053134437811113973859342351756120550356448659473439066123936724431347020382757106512342808453077022057437748196618728574532749746998422371804192444612353596179281672433984877182148181658176347031175524156151453311053338240221478296838331014002759314403180431413779550879463261439041875327912384879808865032476621383181851987523625602533112198016313247776022295579690402229208095738380359785630463367322086907515504486220435536705522222234734719322903804120288944628778372425513413548965025655345092788790195584894471281537813113090015493360738960086661951961330789533359127121054196779919322997906217149242964186573632844610998788442714368085592792548487872018539197243325854250574891022281716456567892161973201030951444093555306906851632779426053676210508327870173355558112041396742628691444686734692181707217522722722155904041562482632273095429748120354881691282216376973665700690590547090713330992535725717404571205190986376502958891356722342801524190119793666145284450052672860167017685214090261610549689301470956159342351411425123883352898745401116079816196900157897038323545386355855400156991116631498126428453288306420102417001365792461285347602403063661146438185532981615153368926018963742512258632365095988277854438536353690977307196154060629780994815693973088842129413537742459015078821010209067162978083235512988840758100936058051040385964468772278402745722149582411390040008216474104972092193461647943188670380062725587177927506839439153814150131235556016336475922049481293195765192022745574463461474630515379671739678668101161884864701644036989858917269043912659292501450297735540647673812281591936319315661750535224615902446697772683523650536201285429294134873704633464826819822292587209510355005974206724996643094153155025633441147152578154001183678743902352778249741548217632663604908831962526392405690250743613124563740160770793768106455802024140448539484807601060956974698063312838088637367640400305846212251470576535189305788349799460870203124709025742313608282826214503249491680883372750145620993266466825478262097046618950100105513520935926632704012588602881168550336945314238442799341620341558618107201810345475718194578701761536096784617226570485800598632121754086671498947917462480847070957733964173161059876746967651604161596500679046676026589709167327787656398954510002931490469060298600258535940234313744295382259315674983240422929538943297288644956823790473218999893790510100155198472408603841217442199062998455910859619236986971886211922692190923256099396039389717537853777935636501095823781476053996109200212997165670161466435837778681426510865117447641808613797013132518422905293004604800278055503644384912489067995296396410083723803064654592153423967527235292065385370864461925206923142191819166798001886576689587971728349491665548111283695563849392536915132631252219958944367761279032579889990162286338523119147683678534008758587154272744477583195571751688280702680092255684508897375203197659217285609217878860771469853027201603442039076699331868053895990523505941582583801267066651918455468607449891060949239495152726705577080994408102406391366904720853155731293753320405563512694533776696327226321193974103324629313606785696988837178190982098582760568186515498660338294795830369862402384965599141811657846067545366578195868011369118098495834547684284813084501814473248611426627265951519508445565201786476135766007812385353976282728458233049418918100498063661483404456405513449766428420586360338168682457487450462336024733120374217098178657600580713287115123554870730700371286522922793663213526835506267040958751117181281366623609641627618399477789605846637164359749288314102403537836131131127801327723833748043788018728263134274572770645809906704260432326254609453878072376566664402020974680945823153734838699596852901558163221619131662654653497729993043706521014901556449294269329341323040569787946257974865318010855258022425599472782209412755610186374751149742315627593954788630291866804645262607390322310664408089195764909593887506236119451957728572854015225529368315971527328531329901703442161634042648069145991223272763912372467032469083040462276246201104779444987997213660963337001712334420178561159917518143384697641270955250348906972154496423538054793289560523833218146793371330870626285491071403110849437368331146448875868242512222434525542873393804670155626421957212704058395005791458580363960552684144719332430881851202795343109757690322992313864195419435270174734386018405927764589673006725301310715902579275172659553912890860969002821410702100314206840152982224962289577278818358647960486706013854325105104648012263521723942071085775041377661036520076694010665141537261770512287985727127621027880517877983676083427206158601651433935347289365360462142405260881826748862069755840358093240857964056828068119733257256925821927468552947741448291263374167478436622582217113874068113871591365711936069523251119424082200549428912542210847275067533505138244763278716039352356982507929778848211192413729704711890950767549934999601262088615648159738901354042108915345171136805950923178781647983056021315328084849459578221827826059959459918248658954291074970028661927193796001982762231320912245162207272355525507272229847036353263751104313585816724136371390589673186228825765193329411225136386008909413426325515240275508080301376757323083193859576925482656011866500577669573011656980817474580846051019508639391234520455401043273468750702333299494706102343131460431345962082403211212706171768059665890844101086739900153245030347989950737498898721657300179518563905713784181114446122327416380727910435571777582222104172900418481178160371667348948075113418663747300794471112916843312129152460791475817560575745051585267966703971612301605736668509301262696799612345534369412329769993140212126702442522039061030532345260789263448599819278162602213304291689020504794063367747609833462537083026048531571649985167246820319398511989975220848520813620682387195063192024223694663931052087230689599191906651195696704662636255139004191603503640379913733037652617267896330085827257396776958804382054686383991415245077838022219392333277302138473450464295936979776016489028375458538793719165029699325509848849480022165222770411168028528829520220062187896913869697517956607804495227244247720728410503747190034525638545252726767350650701280198239209165547294732327251773911649492344778817950781749387211447625724187893696114218679966996846938579476000984130167521622365838056196136942110101704646976808025377640907364394708225445644467769564202447896822866119881713126680656574703352063566439121424072723853274565246818960523475248021361377819944800346404658108614845686616328037206102767496043988551271007155043117217065225803638549128371298830912108540938016024679212157541426770940843390848790758265656717427984835138470720236382237647755519077410401458740369238707345148850196299326182035500530279184110241671782609285025626489676584541476656638085184384982293709014732112451646985306917090003291884575953245450138291929366602288922435523748497796531809765637776127533230049431777823915143682363921595492342440020910442670798388245951642952997731534111078664678943602992245685855499594196851951220852142557068522617241302516371662735137851552612978286296142198311045242552339864622109265045738765009790274486161485405837073700612718498314546958995518429035709476964821093827598698552358177718436797746990289405256483461416893013789122449963980023300038266781978848090819465598733116172681806378341250342822095098594244749167107145779759810445656822384523035398312809814502111573077812717243627728544028007693280080343530819263024520732115403927139142804464375074904921993733160810504475067441556479648301486090339662868551026373802953604098388035273393770649326536969443848618808648930671794859354202579414160197395123313576627478301051018630670223017336685911500860606962338185664420520456881553635535709428248324823992036992382626864673087888472113955759145973347036831677335892432712984273647657104785930767512326861875817490497923029354839033091215929681325123404934367399833965039967721478415402866518490020626674942084854635055273121137191826394888830393580851874898700997414474226026019010721495477394292660869838264873726282070194013262794645925428626675324066387132687516804876236633929537647803152261782567449169592325580686946435708383371323447473910479212423225805818110452722035302595070237738402246499389031444997603664891470492693468683059525236872767984233068712143178446549408674382908270986707530457865898441919941399699499012372626188962114557420207512679192749770275656098631982073720382958631229391686002150125203564862768151219547098334940268596329383193409793737328689644035293063622266119583132571076279909806014408909015745103459568093256993010881905320697893822576192788651238359900482379385864434543167046301969882375756850520030314746039435400323664607070898515007302153016724721424663229745485683771283401881367889815173561643956704805899112875500737834920024027146849032403431402099574601295117211671942138387290159718375369176005122205655826944379444864227257943697082772270723030225178202498069186761656475431506306896424907761030540955926223324618589705125946227656408534085690100726186200418250566883915791870084645609953973441350887497124191369852734562703597944801438302415976438121881263452670039363479038504106569544899357783578888848880464003081959484887550895508483794276967368540236796183133776127795895285701534230295438258642841483693497292027044224603257871392863149458121095290664811822815006092609859250577687704599056622671715276136456763867329348178384163255972127933846607036500988752635848621420419938599123428706470649090680798267724263382843872338779379758712970777939918255138075218614347263000585025034240352738017915171403213606704239653265232158818252682965909129446776301096428802182903854699437237199775258889871959940020203676137357510840208897044489862224734359009999168766538228220014796264838463724060279824087699302589347332190165353919073810951075085769643227954101598366539431901814177858970494187606187740183854208077687968495467427160078208110018611089386921920681769688966664962675840050279811596688207839612172505390521344375653229001395433495587309993000150178890748963889705252410522497515500731109058919883931104196917316351529450046792352472196149905163329896778978981770332442893496571683826341759908435523691163745262623117566250620006169412169061821960435610873978387099758901898231738924506543657348784334849291414819349359090297066252380192273179071881478817178233203064026108736496821926732513390264932108015045612295813234358911367200371474227949375361871402914615412063565709537339217779366045925044500558583609058052155687095451335079788978155131780023652292446316463820171600120662250907608992661080703232444440002868292315746732062611755219861323700902405584768172440156104408531706203294900077419145023134339309134731708072466931177850181730708002554122107224017526252006987148020697410679777060007913657066896685604911527673896951686082046912675440085724183432998184888704560867984409123232599562658467230005678962097411526154796819793514059615865741440146872304761229180023525672369466796616957067888682443385296772789355584847640896892330204398506245228793550160828041194462360793417446317069654033926439262353442887815530448097936109826573239220497452887441530764258693073164102343590424295333968607174195799184725705713059759900242709008775355598978281884418522255904675696799562128445838779155868149274109432551056597405466236544259430939549805245331764117012368765381716596746769504596943820534317274132408048871036889472637434349973562337616358709766418392933271219628836679629251745024807194210870107253115316108466863400880260904598786332031666812461997748907274125368837895480260687226575973805187926794059645921792336947068147684262158736399005491665432465301704371304611594368036451123920021361877097972327659973341098589201709629115155585438599468640052079203944157812791957734127339363999060100731890155998885112528295393245326803185262630561784379890538457415479909802414922065472096929266740617535231918785664730232720485827164521258661863900299250951606814186467560097585111205970184611828972331566810198699546628766491790008853231938437599063128698947489673658682766099242464736049912279671745607760688150221463625720232015481356421607982481996479088187557369572254481391104397433701720576658535838884335652984459079925078085328150691729654249490799452638714051045596530545923587573688225317224795889311557543531231315863288084053498656364065556345367071828567485468042484834169161470399393246986006596555935634865363083902093454131122635611751941076886346435237056431048105784190434237605350146950417235921014166294435219800849666259891530178039475277410406919690664173914327738653555386044354553743697696110502973381933492818591954302738990797591204889001881904651192076853699969663539872397319367730419182465713002786036511311247154389237100348523512241029084119252243971525814279379324849163009305524124777653127623005565120024346866724679164390252680826066721192032266020717330855779922701961203627004409994380902729864650722727706758612056441774183231744614427347936104189024540702575933914265875969584049574551888668794147592021409924009219748359635125414564200189662518555654128943006244087086037552766371123819689746963731957133464935774753645310112223919352471722059452154903607106674955393798562946190960607629169071478821920236989761369726860575280365162565798381890612271058340916271419860142357606295124029015171586884984334608694401635601906368313770936857601233638781955062714350083343884110804892603098518332898730144900452452054690648221373150714507328145011827150065151749861836498911906878603012187139845023999901613061519031106618024026712233935983058539387227587644104640434353738528015162179469279085142549053696187416786022413012640314150116285005077497753339005276935654575368004238675860614292880395974341972176581407598117737778895615243462074422702590411290269938692562471982151973550629405519686638276107467707459381742228290420171852461972376212498392649157920097529233845307451150371871453657654006698612259887349304766981362958110175661067894596570087140201120972510731097744574613159101978537895950612315731221236101464527136490875762608097532626516545405114748146840888642633572586815285841311311165381913513132674919577236532445678008629105514454049931017750538151643615731238209998609142280094798314117882694441987137464700860137373620014083769568533445063674243226855430436908851354244501691009097247036920063224559209894831316798372326557398759461982623709856460525372325183241426839655169422043294536410242511010634637140810307233841216981573022913426715392733926555822072527963063224658460840418691315548480295284074742918282214170334879301628001861270864967223267553867802362477703730895478550832579003955915221304953466768297376933034991417391232269621471816014140018316409464622568940215434341392103298819789595291996379211123978416154760233229636994702746823155908847230693059912539728067091740277983257217121228280599434010258180171216592563863867045154667145980313799512024792878343349313298322225226939113364885190212711308457607780792595973440001700051906289154242951583308308871324767543233282202740132218941315699530992140538261341561721880347043517630563502027362111099890535029967826516299395204590079794945039454833790434587073680144995362821407572005116599521602691856239571583778015938698238719377852499233122349050007446071059681898804510647914191217824337670342566739246810516472213057855464406216091099502850364825029012022853531088518185210837927342495381599961032115103786702990989908809395916228162422847072573206957421246351318355309097833634081190374748534055449360639059105358632385316316381319996904815317318662061239365137093229326909235337188369868627072530126702918451066500141765234421347241621065508716147183127265497320964202327498178692751391968345237531911817043849484919752415390154483211692738503567593879168498345668586258543235983615974653912230100888941830511611740254189571228804922543945372917393736901240919556963446440460340686042922675563044860576510256352868510631024189480011670279328623806255916598366788173831842081442103887609650221244255685151105469673185548675700851102356105358951087887763222316467066826945891810221725225277791344735976358956427958380271340449118889722146381586027315441182195089236558384177096133367123769426930798122649803925497243650040142281877334109713527153695056192785699778328025434797903215939884157180001551844069109724881538925716148040626329574484974832981091249568840461740322434456006282337316824342519361379270504331578606891350266928259322117048475624561587828479021878532753525129651581251332547318255510236499347300809892708935458381630669515426923252735042051300771829361401288776445934813832706884546196863444722612176887828250282673927031875190316585141181310807500360610944126724670890073768806767100327110589938914175747916223128301696985330841871097378175224458557991175937557706908999195930002447603808398722350874419477433773551817026732045454998895883212064136005998348840137362501214000095654826848267525922565590757459977427435850844112013549309788567596270909011483099938682764750396181286450244736680479783686833340378445387869213151692183955593839303143425416099906011526678506834168579033979131198527168998096616487079307113685135775299647858406353717824437259218662426734924609235894786203090273598805745032761862483640479868000033952297211167967423193921128186349517649564649875040613654682133740320603264354137733245986014746780189612527660553650498209345520436504806875695878841365550672047879512404919207430981575485618148285473667204264045873338130398359807415904963791624868634905688563319005256168361975415521827423449816122829273936216706701611894021168532765788752025342550457002512744534493437424262879126152767250564789003408747852755130598725188908512443991951701463752383907607455126834948836019480856751872817394072075194149192573812196972385699665604597683633083303332887246765010015305551611297559833215670929025384815304075106848492235225474757996842714488133072039340022444113357694971685347245008201013380389997335427144397180764991774751690716471316273422655876318731986071261510811094378455579949480793300392127264397799563863312601816324260522533251352217388925588156224315203196961976978979230369455851366058578356778117188900150359299927878455844169567343105606799794429121117355402070022593545933411306499264248788463181120929232585163526238800489046210717882736296616307953473137434007327779541664483983820492305509013735451450173526684261781937267803008657898052357770375571085062510535477381978275258705277281787314883807384724723393602849456509609523903222252020626931112623999580651061900273262735813733612377566993805441186324374283146332168689871442207113224868775588935744854148280670903426005806794781911480506819674404441964653238653447664844460926645188564202098893161784424190707875854285436303217367613915854459102414099753693427757142704086207915277728008216595563353412044192290603693706145218066248391027071271854290725332817244127724242011918050156788444571928645734852745197591925172173371757447881713468989316759621862359361172539867291427606051243845009931226293681655753021660608225072412009280632974926413207608948534130856865510126221043210529734878505767221493055162921843971509975946477471410665464691779672407040355877789694660056571915236859500781680412615895212177415786451901342338128743614209573938748041187630307088964999263286338640565678887911202201258074999219320161686206298996513876221182057985773850074616999728239394298382573071728190443776494590419602218726001091028323066826428686019025817120330934078309886728085910449079941750315981709684869743264530464993061140237270255812403020124007495423077635622450382478309544066047287673969735871742257354180671853080570379665069814649378447479892339063071626815462310665774917396154115198822230058816868479070905224651094387815690451907507038625748951790077660737418352768249876953905469349815946374976906940790840111988511912276498840704650296934917287273406064296500682390125219791893509343695085466275697908875690536793014255388876938770832471751792061042583453903307284134919684731285582843987991030207404099495127529408649454838309456194540467083356225189025936741937979518980952278037741320590561496338022300020425947649196501282392423612459027650583638121914478547233473951083416175335747822369417837174242394240014359725708259644288098861796962067535359363597236325449093989703174503333847090263020355205466252339395358862597398470484643504240902015539820978120706686733983941143041604829814969932007439323588788752729839780652513581725016797344814296520313610408854588760053395788119033606944817033394998417750541951809338997712126923326622932306721769004790068449956274396728337686896900250009146475678045066037999545908649128502712073434464721388580629856034371127579396536005544567408767392447284857819060168444046895249298994948239329593837611778898079289291953451239359190733710768809039051346849885603647960883866908471733479254045681025430465380972529811812978150253615199134227869918746191648902603312931828563071885962590552970956451530276455415922546654706243108957569683998515071973613445148944696336687029659796516274840306836559852157357481339980832376923716633841605404785262650300104762769242289961088826971801021848433977801572247222089514284280262793447109276866587603159113107655078593742603074863636631843772682832770541488650401712173831003668501572553658684551207409660221519609869754201466622193233881540012885956557358317582624914626663398310380080292919505205239139292527705375917036290763060762065998100094701360081431260352976562234096317924868837874612608273567229265140159284506539416257137925496710150155758134536113920897467568173791985543330952741050641607147580415083554660931411316684704803749673467203748426443383532938344317295373499788999712947209986813800786076032334376334814453207157092098738066028625671625148838554368337169292852781174964599406071990386727312307227450290918366838485792798992274490349951238389211695403278716376489453809357418527313911710759476091250397386168149273110287279358404770039836331390263826646822530955828381044799873540265072620425707146023769267578331664433403768667799595169051796757643287585899655866616061295689634817976112286519015138812844937134093845411058246335927181043328052727117321617901579549810660525033314599450396717954293540340331079963782646398856614452413478044837619443482890386896779587769895334228800060091941517845882338996909040394852303449551539089189079048424377253672816793605544743862533754606584957771643227384168058214592583576805827505559993950591878449827575666738598466787789930766101044309907644216412931825656230334331206182851773709013813175448092192967505155550912715880580989691435178870542896800966548168744872189745697331204632703527506562945792456035402182421931369977413056215593886988968729012470293188715494029318214176613825221630089229732908050481444637265838254457416378428184110233442944777415287520209358787789826478930756687038949580679152813414073184462828209344606462173079565988258587140172769435419524370200524023674823420697673145616364142579690936666827849639320357671878894313320521574246692303286933628576514933847426570404252804352614321446135973138553246045584104386039825871114463172041286464552263240430465946968540308556958991736678182096035774174406832345655060575627467525688432734045469461973148060110576291592806388596368460866285392646265944722073042418815882799687286028916864331537335839960576901723187657009183985392274032441029637457180794442012911919045088629223650796737203688387371875992946297642174377688943930251861015035586005015196959230046889238388238986788620103634913290803799317580688000184765252289992104282310444401713345947787513950630316825622162748949319392552200649299793097037975951259891072364587159680900370059463582264971598212953955187019751825662076085305120442844979674800349027504325664418030614243367337455079803461486417442597986761892573373902007869930535772406786263043894128196722075630771966258425070372064006437707807451164356862838852164791998504269130496519832068167439483401879033924202562795408149182241953875144593950384018547272877553047743171600781351428906497968922172058239240564926828813973292388688727794458371985704325222927593764930109236412507080830693903758244125628109691668686001373880376006837479367419920556122463431248841726669638125322293999952297341026619463934202586690212050019237480058102842883582024100568477108661602296613365684960751028700956460635801467122087029995394896055494883098569838028669293778338669200538164478185913953776073716305073060906860362839915099826411706401595616308012902843346076664283886448205594590155139778935207947795291110029641921197636141762430051972002414320079465262882553465470996991241360501653505498316358459641787973511122044462284221535310927885653471991171663900900492724390863533346170157908480757739399972599612736118467926014382844860941101060745524992236457370522229793317293139592086334126005853509975533615660132954677942030850495393739760436297305763368955513602770176156647128303288911143058550401755022812650746982226133710695737785389879000179005527845416249052290534817366525717240469284042119277206698028835688007871958339611723576421053648264161303894102229409222727151273185065948190292819838147110105845160946496759802491297941520089904306890028721492225250366075024783474894742194745017693898076997627371093613978703192022452327505575867350159948837163776210209295238526866086258758726937120268060941723568846637632493995060893052525627923701530188689138612209288849101346966485596865214440368425496902682718639572919591010798020059337462126927363259108716570877725550728702009851553570626403640675232513018527979884529229736469877497703675087987818365907679563835708420431724828267261840563553398483841830316403430793972623428646836652705779410282633180832379301758457783008752943537984752687419380955311529988942282809855704816658000748137310460085080758494856989060028553300657296487137832874488229288302343533751272940948241405619048362884670903900933377098514586113363036459310094608244669868952184274159438477538938582263331809782422017502279059719828388870662383694897225761573045714715666999278463640609519563890518674957470065830267084900638483306163690280119751201386707543555974835963893501304607500700019830501169334543461658282003067244840332511019602369289977895734234134986700787378326825071984242809419070596596147919117064322925531135494794843783386947453123449741407804927052450000344813983931296494393875715367539613839309397657440438083626252779647190674116722045142170066254450195736299434156938168433806786736312123908756369182966973269812637162639879613502462312344005949935986595907862901456872906544596003171755208053396115413316270262164315166249366429106131228718497016407046891257421627264559584744530744089679523377427154512723847282242783367354200064452394234514078050882730162217884011113331152891472046776307873524652635595433989140168840567280033202098010848168468208403631535936859354648284584962627917876148209707589071938486575452338148753373716803015850711478343990198662714227561948101620536834447395491298346861465736867400155532765350635399736586449968101784463124970539718006868863194572189307925825700852279717942667289674034932275874297940413654895190874013215869833047423096813374419840022541923133282391780777854985439715820216438881606865599607409042997183969684314857502492067218162183721568353794941469149056295934904671657579369403480815029808457474972625651942772939295322772390494688114904262992632781473013835115254381364595747297791375809243043099926730770794702532708726029610639700034869258683903900997452334675994540674014013777255898288243366364446540210618436690898723803146437002779265634907714163438860649919763689912569474880296903936627745079333892424779723118181627001321809974106330920138553143893133689425705179951238549413534622136645986586017469425078670110617281027745742330637279548294559636169729125495567497060548821541679438016164006852431279554685231145047667049805348346511137631673176720419273174534018286714196619476757458046759732718949994308630648185862276739023277027237574145396603206775666601329731610277120974494058017735389532651045838595950135818039627929603653241812016981457294492761632227143731368225531184388710383394044473464129468634439813802833650986403493346569718457018456939379241442445053269693936595800688909541095757682935617712546406470556831297096724108729515016557770631640994643307064031784963240709883597865538909939714629927459181587493465707466179249421223631578264265235208492782370629040441308684381276946337176080341357918711460787086530244338551465996539198883821905790213924409751048175704697588353793032062182688745424384930481270446874386200132613486405564844032061309712020000229577796533407697179035927319010989139664368467924670946195797619749902712796391539550318721775366509442826701593731654360146544987110144325753920701236164206876520911699424884408209448380404761343733896489218889186809304940553216974089690545752476599093452725089136239292845249231576880652721440251417635956262536829845018459421207812848845713976829987290694659010472822574097371898229522544203341026872002018752900221101802005434192524013826382573649025074213738210070404139700705693921848087632217433782597489741529456182967509015177490412115251151483317967829204437322327837529537630550417872626937382836455432807054574564632240192056121082223741417406005329212262387790655270895896985772213490059973209710689524617782330381779403653281475615837856736218886424424608977083651412888133807344812854029303193738825372967062410182692182931413479451950691105475793334427853269445081738716702755226305838604697032917279448974169842974840493443972347511392491066329286868636352542383258283854253132345571251497192536497209413725528765388684828358178349943173400971310179099798163717079669127804137048302023948195803059447369342671980915225356519517142730397046956403755420084659245748312531992959490246694059471238549366878463588587815416857294869667144684804012980193976141694185128380117730151228179208577224950578833561273066988905754958614387783166754313054458808068379623284752235846998530770287493736264680359383497575956920847429514657775607488337679493080537216965795300637015342826686842942693501486235981302252893748892278024861227819290242419145276271475830861499373515926437591478656703564566152961897233049581117772042655451158492132563797659941195874757707643312629575994576898178210026114247020874641497139292941300752174086084079298791354082014478505128765998086749253986111071288023274265806080285206859699996346337967947977190464034062538041796888353857909127263766804723023980593557347993071155229608379162029428149338087654605223450856378394235507471777252096688066734971721835605760195047454774336472836530056522980961900661846134127191277452456034984770174139010194183658708300986083769055113222576641315302890081044064735033048572509084008314790822200759192357630424557307127796809255223424907062831562219312652076648881935619464940820959514599332117201283719039819584902683992677685201843748238033739390095922628169901752384366133106381505591034746651889058217608217817198719274863451317055974054695960679667722296086310643189809763930133523554011842355912983907834986245580998769283556380929192695553407071450473930253029101309485920479357854845623832088882879342701649032390659857474962282461395419212150960237209506044026901485169218211440180795919971084621430855189149728889126031370100451775282486552242188292797732507283829028569836536602363752220295841342188351225505297730318608653915326311727655425451744601258345971776608136557681450866803554213852089649762882274968218585543450352661775885455279573926351091209042513901790689329583705639125939687924175969503673791709804817373008271043157081571520966018856124434795153588395108207698825982959888222804658310626262135252136502746668825985169867809419905155774204903472871129619754394327212409004006719061399951809582781233490399539234635197009738501222927036949178200301271434338137009927230205493197702162091362713151355665421349652839867986804250092740783571768765222045896114148655031828346847935481026552235633229022157831444729505919936683970584640607569456507339709345607920084704032639448401904865508347722355856245190703377121094236291460439536467871977083263191884834680760770006798862137245105663739544877641470123672062717908946805435082659453358115257047426065038762936062131227159823981632403833446697967948626761859152241939345548386289341091916290953424842606945216211897696925581261949488031667478166742735462357359121677748227745736459084714611315415140995402129411297682631300368176659621859872423539481619537596357900198708288767959556280991413776810662598883694465924584119996645116359111065336588416871038054832382737022664106563197593463159175401554496788615214303008926737213038955227690727602609202283306383270200562935959328984396563876838092788736487347514434960157606144955203745877921446542979631037668158536769958707347738211216312461939423597857313671913454654189732135279470519321368145785811122467921066523366558393528823161005388014054525631066148776658511377146294247840760403900140521987810838063584341934597914327623037846089087995471710331649135925910880296095124868145676023293958150220084720752997796081636556904867274017529720497921161539749292432139880133441132179251432399362233605273924461419068743891313602991080549104014904212095606757694942641001668019446777590034692378193493478597978418443295223746341028805216122266127302245894302387333040007601190278141687008844290423132608255971148032255093146084389647282141632633241093140499485159997591794378929673689839385137256729571376293231120765030467887307092273935137585125788305048814743584695659304057961712192398858150039757184741280724422948671862592847455258212319471175707874735751319135238649743656972329336173160716472327350268546667478852866563733871497142840397180066735279922366953317718572474371222196116847826910125800519014995647641840232929753365905426289614438421592364666181819209113833597284109648191786370512347837857676333099839401597549806129918101971890427066020519697140952165592573389297344269622320787686735298794305729332074225044324422449407906824686307185016710776027947999052695647049858188618980451321026131201963964928470427757475559645590886143667274144805515171194625049320690580637204614044832459434122179027811819245555177900829665155805375911060829321175413385195973547441784937714593920607981873740213014400159300882931005486185579717836647410111532024787583593288368233937608383918646742481497085794476650427239368694083123460215124340765788731400216006771982048103479307007012419140915254334160358935158555006523314248447535149473435657812608903931742457163358582800028803524699401848311299116896399314192442568814913217537105241802862979139557059001668015126244611566412267038032336625606540957573411423636828634265266931700790285495271766353404181519283573223165749806683289113643984203918662171606913388659663992373691495055108861675253674551867889714692020375842596950954005601449633862955972046429291110716099356354622392892338511243015804729421258434085367822645389670392494878825779701599885949165489195223340401257558775301431575176333960609948894429491669122238677541374024521236434454741065287167094474589600470745582395355646190624598899354260574724725571298730133545316450405292690814039576788313048707433842447532665410939442635345412065699435742009233223989252355692283338242659592780079829389237566501796397950301014883579536111418396034968376045201118777516942689891523838523343111111214625837446223666932699959068236220696303700284021925055581767440800860588412584929654176015497447229394340076174613294159121096517130503222632639404608508744954089098226876644090509702387835426027688245890168616803612389748128484373130380357501600529407689319467297514493756442194058500027624509023424707748931946112785059301898633435657835044220892932422373715345064669720247759650296045263837238650187216471892625961830134081630949712860870535986149226570624718658914938301945943348268288227118125762288251778053766380822498982765371446301445518475425146262855457168333564412353955885233577581845152011868370843445372045180734826369839949656392961172542441860471646535117696505427376913698278423573274581594581967557910296008101915561208419434408413224801508016312202783096786864730387946416623055863561421278759197647287107244434934505583483951527417825358632015896051099713303648541939811308267720005219839387798055365803395480414883414645263349519893257818904113464742937031361941051437488179890489320544811311161575174150448564388347479086537928943879624117822118957348257571186159184768946131273558073262569370769458457935701161092656583700350286934610733024876949902191716115912286371357849927755580446557389484625416302872987296311455151117786645997919204760512980716200244725616032448875007934290696927910691932214486285020893087586115092198643444746160416690837045455082502395491009967338316035165246078391090998839813741898044448344659129097549929459312532755661165476347518931199836882270254663910039365431034353079928221859139770594543226770750820874463722164382006222335051310736751943917184154086153923710692070547089710405044809913457376119698370335025568456319703932264331827588564926451231510836289938834147414759894346014904638009436525597995326654676830171518490397236202047293242401250915778463961149886890635024303516176463754579384750381003816597463205430325227906784500071508419475687744355618723648035029505352217617903068486439953061846672319563631353295664810597378863393323862379177555233605586869142537467022183383620666233120747821777126220838277842984861427751438053414697300448531129612848710900165815369760700667729993576813268262361706473350889855769991943057740439293188866866549428119777882743390942113516749304710335737031208576890093193864074041844981696386600108626096802351800390150800689530357778784689040765358118030094019683313847309201818010732041284816237578647337540623857224142457240213504306362584708674243445330662010657202521783681970265550253691870759382091200986031152762851155461751902648973901850069348549918409505555889681099223360604343444494413785786774995806571326833022003731298120952686749559406767176202680709066628103894073477458036328667749923379512715377930295525930663213314932460044664818887862116939297938001883600539147118626484365830226085912525417728870682498376476780995112004165904565710039267945080995857001967205221498132594564597499751507128438314625943810557723075910179052477962044379235035613808484381185417160032766654105677670018574328722849538235333227527622851726893878371918621901673377446436847225721919075249431597224345144685290544811957522990007722452483689758162246363332364813540200698352934330480216504950987342794381451465854585741706060401401521685135951804163378238419677784833095724440843553057255965672054131084020302860873356829192231415456374761069104285558235600097465747752291521858533544619917944766737151050084581374952720228151584217936015387503856250369716060119626490880562060763806459514218322080811188385844117359353043651347950854671514455377240329893632981227822001937921354452401268808944900060097803726473608379454867775857693676262481826263684869201655166627686919384962833792453054111960411931553077967252462462141272348089104742729138194418404943007668350153454826725924788433160955874292341877843148424395048927469059908809591322026459427755474062264501211713667381787591340306206994112254405561621815998779270840746751171373203273005318872926223729705981644554213021594440384541344912820557877291797720489839326690511351974284719978109953526895661548797053342424620520540705518104923141992088665788115506078068399924428814152709298641538385450851855245061085392006833643246911964884358780803724219930478655994310606826949306607895418904739049568362030838602591097394665574318169200772393444022761619016645410811183801206566458636474987662526860994871354731349579983185634289997689882561843903726630003552974171710455053439485040619715560578380353910552686659490146580272428429859741552000318336392182588142307392783321317022194254843454909013294712382814262480313680037321212546184800106363621788392248256826931292903542692975938812376563264375471417355043432191223961069120040876775309621170818070372014963823611601860568331151737095806706289960761327996326429051803325562973450435356350362517433820812179625264296627994871855806036437722258296043008154087567219178059106530390954786722443125308583489703608285350670313038187438602847113182777654635497473418358887535594889309692760363316318571989344744529871435432334176163804609326288402222358164752631199866805221222648273063440894224093392581385852929401613855432973539570441606429525429926770627146459145112200815765113418989288213258756581984320014245552520538594203828927252015911194016538940727595933048470920659495272036688537215123815199020067997042088230076385831968509321364679332077473715702996539973968592631287185594306463460762389018876358674698260490045234357340080711765510098611429157220339785177264036851927674479061051447571582027161239995045639662257134224236712490541841779286764602800049791377141272168175771285750941473879491799028293240528400161757712754513147268289956466365446841802901822839027061300865275172335601925877426395272398515527347861771577300366807216619053320119084279455407503500686090747813355291060396912401401491454982907232405568314076841171990561612046797912467998399924943841840785688052350838091675214344167320077578813940194452512805298051321492375764820249213076048055847917675743652958909964712146741115212529588790453934655444262536427472333152825076662662738237374774165447875016506478537804001225813223313882766369209051253453333857159143000494012410602421671041648717921538687726088617064017331799342504133712921680999551769191910803412080104423504824726080128033339731115369566065107499719509908930139489305455293998230639160844378734908579057818831599083652681623403602503782828243316704251176256742887698877615632531848308742065281488750621820918279809764310858506591681626139028257533882894291457262724897116013745650174950102908608427598979343414493393329695387710374471587644984496370814462450496559586166027989012452433971832155398472171245211632043014637390340247610486481682226379432330288372435668330043170094875084534680893666656734702126337178416359601503071167814250696161761880015990611525406552528449487931168858989850657973195744488122769067380928744688793987466311060762832705570897385011459713041162678847209596257475839072997077001040508706462735454121147457041142037954444762533035236175120930825561716827003296217270179781306009498971623155878324502412377865521539351409601891923166799714058405245093532274239142669392242978285392247031939536835799587410084868904369482270857834188313354319260695849686918441775501167192442967603045798456500439677482727927041167349488692725333354768613456967942855876904461893959687233115805152724645667941390716118425717486158701904442420554786132549446142566736013061558366033490231945025675611520200634281164125831501291091404765598583775224281152205950175407063359139987268346879416413092683133283284129081944144256080186036699492571954950399544285246083335989389892867769650862356035917984253193164064097392097985588313207488968236499077909387913612670555996714926148051611065841691891410543885594645020787373717700486920436729438901830005332359109311539016387385979652707931815062794671069878067931696232947028833174243237398836640758836610604751963846181615015471062677342929737902889060381165521177745906280287122475717505395973921520896739811052740012098067110736654501047088095205583545243730886385770281362120976726675419106487546611419647684559317603738577527003374434309013858620683311744942150411919585412951100798682663620333228326995148546152071296606619745919453697182898052537802494543446207511617800651788495887814505323312915723123211074031245986217442075371858496398867526804545146187193441067868604235171963344964858363731770754544806551676570263308161441069245274619747021525736440541433143770194532281791692554873020632320834688813956991545861546235417509989973524814104223734513835943771573078988964848009198421649055831183461532897870781135448099833260294791006481695741216470721270907926309060997757552094096844782531200183909004641982481815325263861421807838025189514280143539733776213565356137160091011854534530100429718570403379129854627862841735444975601566235323863639016873381760203220165009757503383535262619340306512954382441282465053070569647898040434302004477808713669249510723423011504566577324108894861911606945496221280639057282972704381522402988405055493130417761011454255647802168795459436273866779968179123288575088021502696261048868626740961236124921552751676136365391790269144175328023244057019998967185051229317810520740094767674751291358105012700081802917406857973155610334464301051258365169828557394308807867131465740611598818468831809904500628371758151500735084652178280591838808727076364882219134123084622387853282612769603771877680166446347730217971448890295056895591459159169531693655150492612422357590963127574653377635605527190685777920175696034394249500102797592160697690272659093761646029961670992843979686847885327341286272447753283858998420616343347916161196881221066004504202765551975491222931579627087337972764707086537021774629747071763518155217381201974534862569177961420546809830055566139794986048409027776107395841667720646510986869575656780187940617004247092452695801941361911885729734059787552470004226959687392789767918690615436982111072712292805552228949869867261468307857720344877106770924643430311689405676944506653290140048580526779233606680208926837353761873508267941164278227306474847640121788694684485031321829659654659824697128989534380782433421163284239743783603849236324067081795366988714451000614795319341472327994190472265065669783433239496196093556813301553932898591014072230587662585006677353392329684054097271778186355144927458143187002296596546426401266616943492722260390553719061951959049049647541595425913314089428728884558323810534498672720439118372085922846061608848350592570242798700233335910545843917670776771701883755279240904909761273942102800853262921681017339426791704555767414421920681455224743566559155032371142236485685688341360781212984505267105244949953987855071917278964912410900566294014616164538163531768546754617055245662378841522569113656867829852954364857995313340403070510343655205305393909335158759577377710568446490915492718587526844868838140009787095063675064773908125878568868799640468050705695741520635157905654673433981554872753825807171201263483368007425994252548661832119918328801994859550156392470252476064103558711396296388405927242334279463174568824773253919287174190158001033037822940777073445485551615645112004888231767616345117653733143457931677122012498667081514504607869234276767617821790152081542764857422257417801422603918456372272711107723912937284200216544213883531605375368991466064340600419462781927024386675441680531239092724283852368344991641873009390943265850518905119776315368461051665612942253235184925543278639099646683669097978457128488472239859213782765051815542604503781680176314039184350448664207834696277703288056364280798637693947848756450430558841163669894881054393768346369676540001652012147831770421532298093097246079114999043624225706934724670664140051251062111191594267602903436009000065217719038065702133503034671721667469125290778614122640984307471090244173601525967725020901527503539507188667998271596772635286864996789445647028379443182634061186117101742349638733023670102002532832103202317863454800164702382396958070040669728063072659671386996358321920960177258125843457877075999428841310692751369619975216350461980972513946641225413875021178573384479440341626551519562761079846361518185356828249801101083390150402768153435733958497272769432257412046179189583231881084420946514750914588083181062160075027573082692239626438437812931038631314575946633163152169880726517599921148733223232474621678029820828092768732151017323799030852242896029773784565769244393207287902795624329855022928409255569948778994593622005444489918835378054593171369010182887839475846029674467560960430192735729770313539283352209780198925896154583928549838078216713226805377190026234596133522290186694666686778298236612017665065078535665297417383826926301065329083992148958571917260534333250315633167341413236023832878854959776851251915125537341370973154387795899031614980541081571917287901536077228213711224266168857569134627261888960297499240568933849655833977356702657449671015828008098849503909184582402533805872132001039593816758782732687969109332893301635612611773742325083034867716816243529163143510765145503607867822363494896876823872363295696810996267081376336101717859770831207310651657060908365871123915279074315222414502277231847317856038144215429958396871582792793802148775731225199863164322836164444597220253872011743046850972631171661506292936512603730853858490844311161170813068792956487117692043522812133843184999916869264489585837864045546369828545039362134810887245201898186202412129521171935449638448697438950473379142706752509173731807712651506421537642914445295784088703178251120051275871907611230323876408322626883456024809923677447335906375606057675449900512532688292505144128504804170876081569232916807395220850912712579874561123984854546751647773212280045666055465365019276012723689365943978365713204947111839833365031281690121402350186597354426321751545396991642387417660644247715769169675795405929859438618225184676106471169081430257141253170585495645495445134011542450843599894301607477466137999078661316576244831095228806001622837947394415917297179201520561725194084407941420104292681895285009913282873812307833528937054924061196810933532746628594993157340704310572403164352761709558704886574072300267776862953000240861625262268323492012516266092161862287686220294908581637278601410571197544057818208506930988167690645793840969032939541616362391779657324809150105877103602686248013035954150317622822281549437646629153870186875448711299650341600699146448040479038345181851490273085583958198967123667946954241550417188014721597369310320508932026480665421036149537632331971406354119301818877001566671351286364275756925094592701510229773927711146769498136701324630449553604073324989093341931426332685273448592847277984358882262510804148911481033891895277963698753901813345071254897178514467801315783950782604347389512631683978837934743657879874028449026937748497479994474564965475412682593173923294292613329922185622768390707560113736735716822763736244614948219794664669865958280102285178363736950186979156615552830652093116607871944345362159358344893605460852908203775530410887294088942260734975152536711714725889899317979890436319079585230522237981323032778561243237311880650895231307490709859908661340233051586293498751963972676256377439779612486703077232187917749746265638123980585785668750506870302320529185368400470664152345911019774669894054915578211143665589633948306024813234184229150457438409490303075099095695436387880452909466012077813322791270671615738008023275398225397551968399885199931313297011674709969090761684966407824618045124275332985319297658441356451238782762643127016614052192361949263226319022715038829051152046629355449139647214853106784614272733999663219409372747314198575120384671614619054538873745626149511606532318169156387991989039063712162888554015294431460690868633276629109939190938802414070664457656320987674992163627329103661393142989218597715292935503559629988957901367276064790336916622741597248187641796721073420512230949284644934720699549779785449950567954817518788368564789050537144436208328451025497904641216307385147010255017110730358040589082483314901928223824958377001042417282152544980632198545222209100369376636753269983109623581271673979872472057387229062113396615694399019676568331493602323165281226689070679166806698591396529354522376939391610497443624324054431662656410265874947076294132616433748922191720864501767442110495915498912783628484237596073591780636804525199317035481237800740276568055714026926857994996477463936837799240103377392984341965654667799760139509075812181798378729296717133459664541761399010507277508447696881186790016931627227308209187489898036817429306237610365252145643099723833898540611903015501050721922537558571178070164524929549098875255023369546617814217046443134165438761907590425136299739361064053367659731475892211333021355832447813409232697879788777889642861968739376094725348970521666217159127235917559267477667421737248538083337418875778036657011198196020343665603479829578711534795541807292877449596854224515078891299763873326983594160993797730696191706408218891715641027348900711742490986057544351289380523212364888287285746362622357406650099057017609794630678761478372954720071025303009091391252078303922123766551626227415724534694009336599953754553134942165322277724387101751307747010474018599334327838828828981849843283599882144919444381627109770618169173557740929319508085170898359162040096644721034091131759205415968982958440610889848915347877779128804101297076041019521097612529315025709410532046715764321088247661633123216212669251106061319455474509481001040502148717639482790444310314526028962995367647272744095312840593316194387344944744771812032076171104655519707577832048267572984898952316938592083341511103747426269317913154722467333303072418080859113456508544455471744443897631366815234723044809544756896633138684456421736844687034080756764092756989187585212414469998911848495041653608344902099016509940261207635067090730244840562365101994486954154494163409420262532608105487227177419053544582504538435773658315043811740922025346028219341864549782942602209615359273225217346532818441173267746774588391352166886582640654652598361326629853722163434388778809573437971617492478745448574183447863308247303489779797284117612231273646541434232682029628801791985155076408708226226966739453331562546227563164176237053528884314123263091856964362835939348697818837880984125627739911389955716494639365903657268846582738442635311050045807804469897747297290480249926827480154879665400098007742094837067421467840149505793989164368667109361139815072950178242403024363811458539215784263042020173758681823613731375991138413854080366308923259300253956679184703333377905919508086874950616583138281193790539975330525361000101655803343904594844397189431524389088420428112166546608395340181734030478900641394079095427990765694916083536826486629170582108378959538054287759307809268626943021158296184135224019906822811576897256012949476326538871482572120045558203436546194615043497630938149381131554151327223670303481006340413316778325997621647670316306972896034788846182589896849699894175008065851671562817610648474146098307233335081341509005702786171359483338575748139390014790711550818906005089541715421365261177962544825465025907206859093801131835964210699163580202121286898489178940795864363603076007022489216393236498785670601034748981710860433511515665707704841444576048212369869950415598121009257966961242684139550495483677300741266093651643644008687647880127478271760557027406911015828502181941679948677034827641490293183299514536845747934528404495293519403509287716120815416184962313556743660300010166900167769660348979734396744783150052494091673219720664142259614087835592327594616437225180899288134698996222542036333165158350407202870690234445971795194317281369629438838658415537152038193198762284023864528917946322561245550307486386672482236254007768725324506302670185485708115297943995478690470638636118294313347202046455215813117898453172839103846465903463042186669158314386885815170301018492245428244649646259333656696342820677563016553101352487458199549375982915923496763806269549955866453311338989304522760343370842842524330306602440834684475409130764582903036941783358875242598567754523113865493759978538437381929960534054115536125205201901495152934023939766597095951306898581315056961882405100998304447850230931095916345350200732791209272080227038072973323354908899854052904261712546978257817387586349880793266300493172456648458044214730963499379837075065692315460737085069260327291581535190064471865145457591557210329276760186316489973930676384921983879892149234332117459885641067721325043593125099664015377472385088687689830613074494877225087519270796177590294352979577606447557150316292655904632346188342299663072135870282025861791714965133600851524261431571888643545292947572757948367255416465942220716268398662935225574396557047289921239154960123900076806404303089693749007274757505086928162888603566110519949178858609761763733972069798107721608026179812354029793649163296620320450329285029512014255303860532276286504546977501160190876363308394867021264545924577234884830540165971723997713223301310876985393110881759225392716276237670004207306443060533184134244400885113762187675223892455001270971807411165104180679605643962594113087671101569325330365190112576200203200247586109776849875563295163371160310673431435158506732378969464225936203294250356786334481544663673017564962420312704216165102007213709810296001219901551083236182105192051474772022349053344772410221070049455138973846655269372395209941457832173364651528593247197452145515939134188566814053046941326255844442155310393334749527061757937198149411404069212245792251548422840348356982977678040312846039058162941835435604493669316988305049195284706089438669628985956638919755891652925104670515643005339760478526547864120579287201907913996355804669708915506935469846379152082655637320411822422721231211003109740151650784163323855806723053140798670510318894676041349047784298125534138898174339188302137457685329167662357682390793732501879360752450125817024978501120088760435996959451120128755895784264418348420134495539769138466134453520676907471656674150226221513227331191231130289452261246950207852364006432348861180821905558210290956363449983902862556392250879113937661933193948525370087002307739197121295510209479871503824463212541081942820489975597476708149389263114761034253680534671176293987973732245354405319549479146149545188424407990946021322346691010092504027357341711051815889809957095973979802784405779129561747867748426506743548547469455453584107249751474242575603329353452399417770406250300455893769167552383652707390249189131108680361450199284083522407930169017694691795636813074621714693259571679680742958925750000098759145463231021410576886814779722227459349275083069110072280124829137898515626709113877279085726876523603927170271479562429119027325554667066883601060526743059565349484576957403965518790158866943463449108317891235075530617534250499292405011393782964753792395691199736839889342006350450505513802310443494027963781500991720407911887803516846912831668651470416052272192151291680964946768663752477695715901312236170500023445771530839732574071330846088224062810064664255940605260716025169343098466141856225992483614046045474376670409616571843546166871337522329928636221085766846471585973246441473102037070789597226292465278947852115383959366257644142422120654063315433721101573206014998242330593299623615817588241268905620013106944576649932095775366881534941273350400230814305716696070547680906799068328637462912031200053687205051424248740769957868571738417406282114667873832590031183360962270714192664477992616038487830348563807090063119794123209413836441316384219557846214558438268898621098559424723166624601938088703089713260474597941755607732789607578771611859362007287139226148840520631786875601856666724703267530038082336567644814624149376041562535843033056864928300486911298444954441547025717931355722803660562043638360649513238896704450309621321661485854135688985734815528116534852035957292708498561208278381463582761688377777281867691040608270271639652700970169165656459797106366198707912078818342905723292259241102901700570383364814888960499082628459441169180692138218305736338634521872974052554323552575260366223043969198697845529578595949563528481519407466037588797602521805839937109377272125759000573160565077054961448197699820925490166682634481439367646221130673804765382658004131310528945444828404188424514203645391034373689076580282388315671319285889375774004575224955575105024998284116748827096858960789199863891226234770496027944941318323831320473441230163384636134242718963223513932769050274820446355882544541079048145645132480039634615069071821449856494083819028540744407594235175748264982435555884815798394497622153637512910169361124651488032525929668015299606079984506358999577791653515052531386211492766998829506435096011967922710940267334135524093966815316855127217766228387894794447164563932992748956727223323228912752311009715505580529179406568671538221098161316258142217975079303228900597087996736095880915522089602090647919010599465298076232939018072069074173118994151316635546283614968257358556992962004298334468044578569286148953414706998504595091227338548235821920143425053248143134413053915181450762952360169880313781866723425329568146955917705704590861540635227656997550892512724777126444390587350631695024898315110825461293930926677439355195964513053518309938745818590458175624983694294152217373191715310537800572653929264224824818025037381379763410173838862931808100473484602365491120659255930359540287840561371541069257549986110116598815119390965287419746879154341616309352982111951609349622804457707093273160741309422826607942639013837709373001784282059127570259888738759290279519338113007180169237449124486164290848639080179571105589271324756973717886887927380278586369406247952892317231757663421332300567052218075764326008697235764358136232006210401028087530151943543606200522594057131896292498892772474352057255833107114419421550134642490237291821874451176268586289272723256285972240890562586608259387233382385596493802522051608167280256144233609442029519254730102972072576140500492389958953273315653708228436454732329935013949321573404122219797847016762883839377170946589889243255199431937063842233003198011742891056799218032072062425663678384402665767907743138338787783873061762192461961821018992996160415987717292579144370349421327848672719517191914447075414386924248623953621858067719501958509861347604331644855979368397239700316554433383184375789027260223532169835086928360696820927378043625378953434074626469594742858898412037449124887123095101747497442852736698514699908006749227119987795814159322277582719724368923508075552436997460746724165274165255658308660784289022067275576166678227039083841152328962924846129189792734063187632649264111223147913785811707945696236846998278285932203732038397900244274141708641545445045835989988319174790750814290354064860817646766241847312117576399721008947436191843633597932272457825002361612906691221196879574681451179031410921672847193637839610637256107688900936359381969449940385041987369555831424586226902691756118940249478767255752757382200201261364761953837055779385688100847850734977759587986499561212012436924848518863167917339315115853381246672458274102598419315017084452463417866177196365083950662656821562835318763944585956875935661876118271483916171278967008144195982621500620037346491783089981781465547458716156788538609064969649352114315692525719683720753370199406603377149202487959979616967574085030112221225467816686214134224168009858281396994249232080170334946362412303533279835836131633428866030616813224201078095892121041749663806875367364663036633281040472056040284212961764678930606751792414264256301682802662024971376153340630005984211403461921990627783380902277193664409505502942458413862414031830339003685202667743636580057235105070989671162759770362474211906588431423650407087133894426319314483790238743143012175395798533863335013212643325712895691204516324559921714134169413147736584291194908154193095697313729633734856288482436717504537961871735342546201607521657542308451697895777279182815805982970167396084101202420159982037699649220749633791593756913857201131673694847053345471786173003315894703494127985545384906165445040603253657624137701338357143097797661417089826383481702242205992742271022518979927051404012131295769999270701296816473163107790941326156283519329071987636402348870435595323059280766897695063531583592723878889653133179661485253062431944437034568403768766009831222198374093323880524909986539956834997622672718659063726267405399826779161204040734790034081003993915860885037973376267530883096295843783024890459986456492037078848433855985210815895300659849475409350790045061297248038759227182896627789570886553344336075774873571641555189312065386955128121180272745446152939066141966548984091663371135434265002086131724880909571953045432948544605177364262361863798192468455247881201632861202984441671609806977736438645947483944260382218732871106626762228775293603911749666177239162320681260694969956727072385701541014747587286147179234548638479677806653746654262141653972875404898142575595047077281552276361120826747329588727616581783083110952240183688864809923046732824577815695962516071076215128990762544287007567658857185696867139575695482193123651086878038116143971951931306500764236800858804434829748434113789481629042324993711673294974573670512692461973391697461537593758239817135664017893955736019554811119955064326113823641636824955659253421209896285258130459881793937380204003327186577062390515745371152568048840595393856036050798794760461225190820875193235020180354585079045145297087396912075905298912461348512836725211076550035003957806964845490979768171762407776894266055010689655854465676402323921167473913158488597421908636079407824687095856939260298515002055733644935644374411693256557471619293592367284413064004946402181397111160404515563442987456143481238335332272306546780609482946401829186473420921028275248066098251907468468635645847927605207573563735595938849447428224709053905199084836796372564691143867755714103659542672270195513165443553083023057195028629608133570811896556247901176924455873437766312987316102269827359046333854826144699495886641177527805485565346355419013440651534739268623310514138050847520852347329434530557057696497964993301398655787495215671873632565196168626980063693121608372940214894591579335549169726077404394581780382265463085947182990982649756731185772227973913621588203602709641386326538147247735475978312701256431964028134582128579711475381025742357436564735915176264551779815702514187171254649145537372444438939395493771599387481550872482362005197460868079184570046675597533604092331484447881892127824147422824217231730750544216889481696426126570474598646402510355874429136732609686068541639277026193328174342494387063166053827418839988380445219566483159783680616104413263160699250954041194901317803775056624162851824729618224819299078321347199404975677254588229389757642357254148048986428303818553699948537248778338952785923938392534417681548801530906408305390134248439416559230712835151900695239603659741315518841502721068770116632431188426483389775193570919454997292089254136176886348708649098086695886506906176181420048497664099916920327500443527774734839258891908228281490485923008788073207617551710694321450463561239007958880633759590986556769547197014456066922716705618283012235550015656203475931916984928252185448408010488162569837142469271825215682492274569482522079473903571149721794166445548195998683938943002770463835710485287113699820862388659511470807736814494386146652621548255084296828109400103109971146586616186400671353094326405660053446954847777430502184316857062549392272690334469991206667068620651656125558916021948912512922139755583130537915134028190389306614492244051274032517817887226027344872968566490582814162025866210095563181124749518323021477688593280972077967423011196736035034487076923027741887795029072835885352508864750123537905468454652358062564489180614240802030231260708604487328626189417082672252980009593818130226749846412994590898315853785014920793866454317364689229789300319287587506197816998165936674596623048579534554723270953320121487990687635628267281201735251801255401034107560311144284124075434306285290748253653280639720101314145583498528511178304137934201458389787906714037119550325947844400558736238489824422599852115188149562090292933972692808282603328745894050086315669278826987901388844831076008611546471559406085243617153063449873189843937431234525552338775653216334661036340591657468469964520583957418009057563371081539017599413921957235936062691389697352220083490500721305236576530237803910904882251544112768305711616550338897936896942798224070903716645248667136620568493538566950777182897031127546125130552408978893480178235340609626626740889070211764836838981884398475541986196176092348514769455755077986648892030030965540680393483958809844373146479889832593902810424680750381838107015614575865582082029665974391564435609844664186914845630759656619634900598393928573135051635542935904291328095762810585916486153366582838261103650769050633460752758738778585935292471788138754963858534152105005910258873908270111381617673280277266255037156958811633600860464382113961564151212159230834721537675602967459601051507493240802690277649236713973107149653174051228584406132630791382980272487141650038437379498341537545440578306078873295373161733620121927021491476109211869089533541540243617868002116845639031765503030767473002852786213343691554735191152295854770121870785336306475068326387553540235385521928522118249927061959842217974999437614000288783659738820756428740643192462134336516732142676361192355091363936667758828009753725351561306092228167366904542460356429765859191598989962758893998915305678530718909652994116869346974118448565609074977695754345068837913781248488317708852847012368499199229859596193267318798980698404148802031291587883607806260047080515360833677156468707665972311943693711693079174353385986357127500723643686010870363829062956037646901450915658537425577286481623642223524963528145634767169871598393428220928815193855999571623177637108131820213436813375806908919598997609662844210864457435504053522630121141662937987246804553946158863430164155503591603250875489270513378116442374555869337576978382444639038185461768416823828077120994068360121337731401127724984810173988955688731194389354794037430297392705070714947896750860104185883025857363950502916600344717989380893202822012703181128545417117064228695554341091070296369999719528068339354280702957724863901083790994844180376267862773341813089528155948105054305223337228816318527738089954314577213927918911032058221811722196896149553666671156003800648360641432818929767615709372428179196112184967934675446372855541033705550815488169154291369960839370616324921822865744371751048809577328816453648936163614079386238094930734125387878973474511530778779255332878617614953718620786819833973422432302116642383359529517249153205614755957638317970757620359705121428264036011038607261414311494165441451638553114754441487349286359467669350767213852695409922815177033191375708436303796973049683689601241700665146900992819157157053419803424927556745714398690997528825136241506713851275127441294604305648756727127293379237376813133209361846069726640794494450476277360954778964371623571195171479441160004997556283568648961808110729506481278103398043031699655030818056891829328827749043690683515310495277285441269986280067449746623154782482544994784327924417514010744345954417585251802805944576713535031855311993856742563974781049407450648321369492304832126643921272094642000111539683103193703025035951769941611972036751868443101430399818629793395464382770774745263188650105360954103999075639260167175923128650827254773505316695852418863207972273485533219009849334927931570534798056926329321523545443632820878154752591692019904195012767179750412051373730979994450743699249928301302533613620647397100852455652336872532707160413439436855322176518788090677139332011560205442514629246288809511489263200664773279999186492143334515015883549210895360024561009126433521887805657830704488205220691018717659766009308694206475576160209624356289007106164394053715602968772249532724474674527844838073678337847342075929657541047314892896601343247452259861866512564346243058854772458315511606075046594027473366006283630487253484288908885352892242685054693229767069083323396573565924775270209366745847066849357186448250240166312287365189182474184556889559370321253653164762910220015471124894930695569246064615984301185406125088697850421804988294216569971669406086696868649803963777559581602929660647038362934889836484379644111075482761027478232381448157039238476442272231294004505918903365336016703876745045583085683445339510120924988566849558530992526311558732129896669314540202804082528453618644144547601024120025539724457830869264618084203374675855027513214873393968996148686668402775273118289161815086298614714838559937564394130239443762703534676813822130995687128075608391415245089936741600719999466997917547281112275688384843028815283725875528228211407362382695144527293218055992145761966518907296640057061306781941735200740374968074410859032873968309972759944829881533490569218545469198536605979952816387181320078142451175506399806020564889421132561751361780531772765497193476474367707779479170719564983994006045524616340429429747041484386758529428115982865678279688292740996803923588087530698646514106259541359492685522703576688995285406808674613199172989067937531532642158623262067716365396023399270932519896599927982499369812673950461483850429346778900937627080859769550280330807779072941504444616300543947017363984609748485921143205552667630384669973779081253276358097264645667604842260545252237899050539732569615269286104015248748994311123108809071505486097337519196866692641695062682548921512753933387182470964319966361728487847785185547266900612237862029617320434019564038366012463263905644351567512641819193102031162558196880577357690789241884879887183836976169286436601002466251299899179398320320634533832022257777229078633083657514461949185784472913587571062667791145551773662492528385287786038111444733655045576367359171141365151873653073810138499414867790782992769973349639838501073936706636702359555527948462787744598911877403386245679465787874549500501457496133826752947301435336451798160408619794472739403760114533072851901676249689533768999193328637144607672960730762620029488064559849460047455947991092429395919466376526189657922036040804788358162239433088799109101564555007959925967792120557025171277142424127598218354314964540303916180776555022533550718483354640529462185417456153906967283814809824803249617636875095899497201014654258606060599838303336572578946615505541366692834455669724319177842397501066508000415378187523001468433319068843826856459777856112220256016240334537943788442363655086885851044304673004581891808736911312324939411102856631047920656784867955240535315130172467235095807909376108145733791466756756129190945446443987470324819239906807711828004814472740666455737363735562025311039092348771745936112384168604958962651555826633247393887989137194249577883272160785821106121776238908763288989234228928822058310141251332414876908258225844462130337184749883230610586992283025506491527573067055433083700469648918404054124441161799745551380718694056501827070930387109211738676165663460715186700288438411505449813534286708930287471924439227885910489449821926904768098695571062408192465738276022430505181393768890516266145988437672343877472918710304450892713876137096137391104417944162707421906191211900997815600382826155520425543600993849354457630501640817456922950883555449421783312843699726643618076386446247252100283239873039482250981290436162579113197585928425333102602940936971095085256337423284373894134423253881997245697887535140570537851724134392540025031622029410956498630665354722890397294738561132912682665080317590207610181414814017605991825456626169808111818449874743505965068222068440492744821347109786016334027795480222249143805285480671164509287207454974318351825039927704374296320757684271589421206215200120755705965999569963347328924356679214544269259541192781116591078701522261394808955761457574744303378033593864142695123593718639903176767541254834129588858053948954995148242774094629762000855765363246213638857522783952385260332638246508209979851974923800632716728476334738674381461637173908505291180103667038494987164902256289395309830151445119357629313593668942887708068357223016823049835849666251892516455691521873594611798896244742760246125845031154937537684278110331720724067613480860769223901918050740881405430468121773969890803298698193003171859383217364665950182263019376937936722014386536185512020127677766396674465973377612409685483470362333467717035972193184067946798034478368072218176644897717168497818772336732679420729214388983392109522392416725125793739306252547066876231350328502885810244346004558570981502798350372895983200970969563796956249077523528464795953331181922073250298076049279828507286129880296369739835955052280759699666770603662882288713167072351091116555031997142220384003173888306697276531711178069596193868529406534701173427164676642523480087112034163503005696813052325897307260872015475509617618998713104792566965463555259557568552287991756189003918055984826864742255986923507699805822931414242733837093161066707197082841448645977518129854754679802180878811916251586304448875609658689805967851046549924979681582929421781573133849888229145650199293893000519683436132070552276687360778215079379914167156981872223971614980267568652991717458259113683867699640696854941616906612485380326453738967509811779801548488639660534463624790371013775000820986531969702324632658350028471993645405595558183579877310816986429593763615498115394698822429517357530985215797292610169967301322228683389853323168760574545110994440017700595614380465471629265150409563730566814747246783489192996519298745098107143123220440667618290622723883474486337793709478890310072577789446109415535830597292831896163688168794472992159044621719606303041147092343566230430860727942898524863132517573981475493917450634903936129663079614562569774720354419711689942579001886974166963949957575041210875235067914081705735418146014160945542808530497922833299501380200595239436686943394509737253362407003004828399959460183888763614422219040072401548389286303514004071092396564284476564785359316710807454494173072263396112800184625208655217358732024341388637542606872697571609252222611371253755960125801918131176353598927889056680785565946800055869329555810378489152310535076990749952909714812023404324158740539148238046102866263471913234675319680680236357202615518468221325344951647454244218424212940365170487834424031464436418883984326632864386843529440150531349022791852868415663333609230486994616763600458675996560957515030865216203380710987010151371078258539693744683183023737815371431702431368189712449852843376809317809504349038499942437879489909512382394891294215507006187342768408495270419054652129963639916118794745686929410677727790359519036162510164497122133032952577620353973442652748038676186241571814431281455501839638888270932254834695360913880533861943235437862236092088307393974587574589752818295508322691800130450099061716796046804484802992784058951602135729882920444841825879800284706473540037187288364440528065329259117357036892366023834162132389218437548183265932001874446994178554647999315054887220791611686023171118448013114814729756906533671001404206084251587132438429128542520066739836395093844327298827935769899191408056684104717829106960837239735296063754095865327043898996716818227641428091323200016383127432052893334064229085664816643385680670344031054382650933181905235009089202615152393195064506677100465391760103806713661735245672338348518910000351162673446571710088629509330817730247244607294615584277731638932754768550053840712952781047735275477464876530763606215848046093724332344902621456277120037787273740409168677099828222893429278992993949003286709479502712523868147839034514647310686591136031881281120870343086236163512799124601005298996489700028502543093696000921353347237747771260391796484394142208591585154663359648259083424832672102392982196939993328737437315839734260146292902747399546667760529232986155411618209656404016995012281430359897548258146003337165943611831213907662646549067310108583544940449457689497086613435497529090453045664210699371615561783501486741805473150917245367254743955585253110975560552299144949148631973756363007708404461158183519875581333364289609844562379017728432972844545919073340608726878835208021967896560529519596224377907957713776925366068703448695533088319123878803020224224792337401803501775853093708287435477436346986416786680249295964965440047233745118624649914791039585020081127831095797986733682288966234380214712241916144586129002198963833579517583871669445764092073716843973401867612251740904170520670223524068930938113484043871863195852545212807190554744636554968986843285839781743907055520431578388867834084939250333966467788147679459472667953598010941398180661814105793544191757759095098496386113819150377567590633966041690917771718716658904213719850169694271607833593250231909029281365083614793376597697951000498405463334846821303768838422684508647746399060992364308607640545778103007485532026479229157842291611394213524097195838653112675754622455486362582170394212428282712514661037567956980056046888927318039975082093665641143556745006662760242693218565029923329057662202404408576860972975918719156188491637185131675357599107523684760202776112532449945043105098030892831655744730498675519677879960008658933585342806834914250712769872087782422931893231959826218321204568097556166322277453270235539249044047167567405600476310302790159149957818320133054415882655845034968937220310977946259253166107452745536657901985171429700555220023072621306092688635245713645506019131057806079243939218752397005471006084967094810237415488706836616428304660740081777882936798949662151561783120807204736258787996732536033828091074111074735393578593687040109844798195792757022083084388707503226521402014121532380061573306190348778086758662476690702696855289603607150955447749740793175745721154329597852414038823471727842428967790681765536806134671776269783818182886080854384236609506095574072823816992467934437061493731330955511273723303470034034306904725477194051258872152129904410148798225200156161090529774543071905925443045143610849616628204847360647081527350758193376091169799091654605711309139392030543089054157775639964532089867747045294431406884693625778325336128821387341973400576137691942344117878248596687369880023885703588971098903319704567475633202756360130322945314045225152487430651269938992688064305061967449408222020733856976828452236982128264290765484994961921779698443175233678849383289780185247032357715309812685606275288569448180765389938570542960630672804188347962318514380846629540643862891329445245582985867474956749686464923035452335685704320543403051398830326788562498155672338771446065957675185565577609321606959071887543628585199932687348269275383054836488018715281578589068800390857410402322791302548030350863358214478759345712452000032459103112328348455095729743177246569552115253712504765511583662205764229046225781533631447605441322169799563315963105186630791739343166003613214233543697852329811626258037201796662157217999820445334434518610334877131422121784268066930932371074081818571876771997506665973176606540148564000600569135950288822708575504627631990676509522951802342374009650867358977187072392300949485440660162077327645072477119980358317236945968393267129757347643564963889579643348132715412539487721773129542140590484733302632346147124588767412849309778282449670440918773232035232128425208183273636537158762041213866838596396361728475084470230192829247882500440341760372744950264521642137238068158630072524227223610776579980752320082349030249881782964449764434147496982155559119031321811138108893051835661421668739917418982883837218068078179666959089196163662257399950735064806550711991756969306157573319400773810914949381860339771986401257768424310394511035747054860819483243948759103227729727724113388763652919566933942415736247840178670215564679789601876960284949835389838926220194748269211583145324407152273367169124757965672848912112883274598228906472561623006018509416024358655763430829120260530727279287164612213097860747936230192834475624531851070145187789831645911116735113266216479718057204031461809151587969949152324560457808378414486087211071698560037039850251592594847626554194296551914389692625180515394770391436673189831050217487376418935937421881109918681489625850882433210414513204275933766516414717225308487143569225443089518172024346946185770846780761715321020695749067273102908250999372033592876933314231396923330661340050133673242976655481678220772547793229577710760932052110323373397244647121636918681304256394933185600996562994001520791343741176567091587450002213039410289907844402533024776722849460699480441226489181336840460218976808885958466619573109150309114316680553482028343532397481702921371862872663754292257936126162867519422896809957333881445050457717047484147628228557989036304942796370946229259088800203771453244173447075021946293829327473378796674242310425603386256512273003761201626652572664968994976939186070291048374452442107756014554034543665625700620502314371760729352276510661529408847260147762632864438549497885094578111370860462404983435090061221136197853806682668437895343650200859884519180894802461195975115244777802129203251825733000704326802124218561361416941922133049616798670802247765633196647718118098345530300973056311250426891430111352852603742071262193706744003639877925419937050235544764925939947618000700703060108090376875451945211883888604082176535478001551848266241316526740937574642982795155838119904670875290618402759317828297761825211549900327419045071105215472644667457215728247073954214019309997090215729622233732336418577634561448208545399990634017285406770068333831778324216134849332350713727247671489206648625247515542326096746333872265507275095553368893698407025105766843217784806756474281258073720269193096872717922482341862118363091184422447562820819535503358614523386164756977778684463929790134898418958853312659557775998549728518282874122894282555741554471957432792886297466827767517925939785033162928762834097024998423824675530539631988863921228352805246665349036873112117541629607858395331964684802376603422234808909775512114160164212327110652147779003714204401876804569133126815988594115178273029356920917615655329512814020196335325276162897887656106369236926459691879119470749683668872275757830361196828009934044271058618178158908463290330978115735137090809567233737274367116032102347452615533368763162527861871382933845940282176265506617815303306606543348942100344355103250560568775478075725517545236815034390980378806777580457979198189160347209173432505915974418218652498046511707030257249521068550208738182991039321428758023646112189352138398962873716397948474141602441595850952095107337272394657675580963499132575157419634926840078063070517073781275773932813856803872442110035779778831114106141008176717187067648371202198011697395457478577956572056361934442362971656283988091375800310032083848308127329787178427285424672965428462593625820275357895577316691359945472388477155442621661585776049200623173309146714080911031741906291287450196825042692832274711619601397758832137865232091896890143700217560984601087551315787211145394952823020115414861267042702918246714336453244831805467985853359405680087436812164916515574976576290598384364242345239879064895835417775659966035719882760960152539404588667247033402433230752596742963212550921288575073941106629449276580056172424712902134953857469503263252521745661513855914631429679186082195712188807632268158689793848540016978502968358404086603599174747159294655327291399764326298385117689955571714050018046054496518188537560902091703467249997437919265247930498600514046428878823226497859930113512977229008932668240935779434102384109614630544526536018318459158668535918230130337651032713151102964568032562569983670762138843115125723018484401469247514655639134101963623245108892626975779245666876429154471851041800441916997978135932448289876140764847759639914328398753513561321619172699003375494303137664566986439354294064599392997190553019516305289810300489173277797822266632987390640478333345101267632402876343057928000150534778706634143472697426154441453229436583688969322941246397716704549959096589855354850578483074068562955930027309174809639257186989054643616237227855514555736558153423653717103949852103953957805209827397822786490440854745931122218103246267366359857419253108169988216720636469984940354188717821726259003548286206090308552687799331320918576753130771937325284524002695551057292063623238983740554438234050270890182416106355803812629587369532182735492172749833284250999626651255379746165132851356223082041421581735191205638680887690336333465218790390302110570803095373980919564690878700629342824877047709316023524043880642782555302836565489557791716639566068409635587372916966682584334668826969527661474965808532382128148832499589423153739586994520641099848023361736583668455506562963288987696917861978318749854699430512029567521069829323487110727476925658533479432288323924401893830693037001943992741233645178382024976684786151922287733485264987652827818982616693551706435255794297708769225094698210996857623433256164976362603129691815930675036401319473502277658030690569241826542129091710008072027288555103886487115053870509063438911120437879817889124567607306195922415330586942613036895653644856101957171490967363609798884362092127912563020315953052261401425514755117477006706495132379271851784472539244019607719053234438496637653366032315270527094675934434237229306172943057046484634673599655209184758564346176363762535998658758755382581679664143336691006725206977078846737499256093944151151299843177088700688744780296337868425362701794853204187202667103260379928903031894362426398051591288292719645611741931430124885991263410812631705587194860356624095592773389426165220835831907388513811665728515438944661781026596747985936707619733741295622059266500772934561209601619923733340080451851861224205121827557350030849938501307557053280787637946470049331849133741127764134835884936383870450873676125819945178485730871207492918090614054002670836918946445306802099926410250981405875229890090304939801278769908406581956425889182235297482335206018064641504456742822567412594231032111301273631719433200263003325400201532680046982119890062248872390071593654355859408529188893491827710648106064658408561247538052542009101472832266125539797601669753663801950285656865602798786261139361719922213041888663690667033877701438679992602502147897587673854286394232866870009044041847790268380470046632953659464367454370171367561272485056685816487918241793587425896231355582413061325846700233517182240198831564510118708087806674959209799608972945598491435091973587058053657346165598681389343222333066911521074547109795394857291222393083385414811005058747226565558019685098208523986988123248145771940238348170084121486789760516001019142441893637615446342237104123287945395802429371421440239160367556000975852336055188961633729498181611140217698011998367851350302505434172696961119382868281938905157679325955733656393279372129034812192676371764258715627669317866647785895155532129911767521102929099388288823242592745466555282409720155205577345264489214998154012469769091027218251320109908693828868412857555640142624124815186383130291897461318559008401786541108067859933567858303150091180879893481292631620281974305102871935928107233580787881131952609283588877082531413589028112962082540277952252816346884387171513353198480616390291276403644514128159111036196074476342917595556769521385730171075501626016621403838417048896415786022290184804864629600055521139383946316046172743443074450977711575204331034782818519067624123724171370825431731970593994588456902215499094652903312395469632024473064921976215231812377265983802697483618624237628448795147316109631984856143450138993627686037535239289341514342678989602886118111925393549437365571120373698472795431966889287844485168209133015406166955369549183071934089135906584610488205646004632340775165066220050774637905506846039913824023238429526071486661317671425292014912389195382638866187998189455544864644308715744939285457016461020176382040799572771114864195482472227268466883082477516746038873124335700425703810039463038902213756403661724103883666330994942461576869554847498819816995592193915494272776845265141012975841441874791697128167844821687547764538060607227911052899798874845044678204942776572854837993176033192021481412864551380590958890382402730180070907478235250571293270211227923261005074300074823381037850943260479175706806871406744149027942980757241770020317059283715163243176430485610897145749349501640082563618399842699596996296451461006406025486333881676336984583287664421502614229845053827430477443231511409813314294574441368860119807838098931635679998901313337593080085809849108309050659996622886938623751236155329168236252622615834444241194223354256110516210387524198959838265535270916574171447389380760266925280269414077197404249519585282001927641243152782807656487727170807741688551503886812985622635885919769773809669091337800786707971944629501780876341277752813406283341613478190631147062231922542128302073684633319150288699841441268822042654150987499840250555497608631888292483740949986103741642826189093052499412197060935730640209385238303393993106475570618256686918636266718311158729882018645671298454904941262290449865170830730300163203942415484125263616336801476147544189066707224300618211927637666086287342279254580135484897826750953250378056168210601555289653278113480117323317998128999816308173402490749650050633173384050557311189251939555007923964237507530022383880459585823019747575214629046121741373433527406509608112754844038333645354921665743783415935793851742560132315166708192927484660836230757145626031113628309535486420080022246767357491627913982865464498723815655284462306422743614539684917945602232502662201757980361914429666681161919873301854616207979133623055765488283096003318656057311121726111636943713134506078875613841429561092418654556223969790324674903584781003822069457769157102435471454032942945349959408347757339762883175415832834226655538628137323584585383213666766390911926401548709284146032528127448429097232553818107926478665860350630395789426450286311850049088586561883823555489248757153010673885032591088720467041358335899325668878055785427766956741688533411965202936799211850472356523955098291954568191325500066605148595416939400174076319653313672143090186533876292573058066991665170003091761665356236173307544086085565341629891369038883441304738306663966876885454948448829766183822720397181578536611091202190636425891527659897550221639611255583058384588216727890513208527959226973890559851462003084611686882576960475414042724362938213408207419669807411618386709579267247375705379352258255599375274829456265991642288807262524867351226038153589764187237168614599228256208604100433589274545930404683988307308484543168831056490745793102643664181510245737692447936456099629926771948459599540985461870952142824220941364122781688909606574052337287595484386656854405773620230367979895903412957994439921527626033186614446782538916704243428853618899567515959349061274971892442095306386895486370449514072361960391501687580981731237676972433820080980838617066362043412841793257256761598375483544714814897494456218848594889166294316183783371296150696331697074669767819381317780306848892673525015187951082902889574768082233959234664961844542445135709196415962982595980566141723726667100789357672807141594108023584980450331980557566490227585733458641871227765082980509919782444934023109651294416761060628113655539313817584351074349115748816419030892088985710016934960096387365411918837955361638799289946438099845129496060696072308749985672880355308028024208373554374093775863312385307155843494616239217774486706020734676176377498517287353752032067997706144115375094090225255344211637540721173137043762395421014821697317245343162410545414174559526277858672399613572399929449653358536903166255814843588122402397434212473849021178213260508873019212513831074344330936406407850151753866197838059167996930174649322771132546341066038545635304099999613533167289074203830373070244369742366681707553357727119626181754051980569886349208576756361910812586027078536896191226580147215045695786913023403152660758363614017141224808273392580109690546862266076533611577817475329094522821173428596350290726434001076519682810895026418450384891511931452341963985918941251519385622524948257985364306378581764680196278904745944154250568634397264106390079461529049398630973797664046742983929610031575284156592509471372848231790998381982560254042507656875521210221608402040321007719385216117735802451863030545269952265621867496648229471645420400768710810073196431396543578136501557536656208016998136207719792955266124629213827151081800572113243499828805211134779692823815093251945035545696910687088344825651843537853236194825060105551237763144236299934337687160823075584645026942021443718769922109139179396199900099288368398907225185945346599732548329275191431885463649248545344565855085883278957809255793887027728890047956765783367633066997504959212150381457999056270893767547087827536374916751097779384243722578144076720141172389774558094655440737105633780376275112488630376525568089704599559878871950964400235740814381800405221080378181423837033707005919041156474766718990570996660591337894639672111510259301895396197065911357902418829677108129954534266291137935710588323376283170337009872295427342553969944221032689413705901329987205965959287328994774579790770102565010672810565633229436113275155509057492177742094946189432211654715577397063663864049012265819690684094030505152896801946793056921164859450232458287650807195095229194331218228038475667798235338655572484572856451686844796613251714859555801248930026906301060254934708550703696054043723251349473130303626291963964602131877879827781970735407593414447679539915645409660213259496073405234295646136224164169889238470658900344508848906585051335209678851967324848465737081878430474478692354877177240612073070310074826596345799086030998936539021797216564663298150683094532587555479300804279257371315052468884631740736313249542762055011788898394165507481006748328088716181438686533085032799084088586026212753144905149926221961855966503421197414761823912898273048013026713766503352860300055545150471594466823564759779659273683017325838931579073406492402184795212658061943932416206931305525331385963522064032278236814960996292188289786943045231636012088359300307038341841994494041688588575153228840511773518961045108682547780528174104328252990391798411047104052462902600345606413153122271471491747219060356962116222702817608989112376920157675399094508113813186576850543388851133835579861679532281957721528572952894024756865106736183357219468936158536628692414963537225220718013457420457081865985905481598152560598484935798923901613149207183690726291293522912861122163388712503494092628477825185025307269469063580841224134192920871350909378310382148123934698907479649515037534380773774479794395569432982096123018289732940805508949823863970350635801401338970677898938693879301823842466430761054980167090788155164501888435193804153064284152856270006656200208853923556837477098747852140373014475990756330211198302635582160837624561811392941208547295333803477697580867982931201767995309346027930665461000779977901434992939927283629996582044971039543765675945717194546881502871174110897478347512032520416109093980844930707841407919676173475037576999103116941900696075399552473669080965209712789904736990568852683360634742905074272889878722626264471077149834902259064045381489806551429061101031189669859195549838197899079301815843861090766689132934039034091777313021160665767251842933714625313602476950327796690733825800500287900799732557671339522504468290435945394613692133027867050879731181096178773428392759336378238637011910823977030149421915355007924538035174636678259256973008571611348088875971087419207999059228709370731050949201818298377552553021598317062241133920544652629498742898084628366015326984492048686580057817810809764360133335815758340153605936511913756508041119465115173574137723901521547211017977655849343688577706570530299694318809538608001259183916090606405393471590693908121471290110387369916137937259535242895831595837778867236456383431292187812062547605874298792002286784053275361201337549937119023518090832350298069923554034336841580417760033613402484242927910990722177392696895899759344374474764561155811192512481113110899984679644136076255332568479927151475842393420378582782789456983614174832102446282236401624169089876480672033059645936861552990868287224391109398147874095814420627612038917372467198346766283804152026619030904201337611099902245765017892495700157251277688512811630746990546410506409295053224803574290979487891960749983262889407360063352950031450652609790016612213019522247033766667281960118280681308233831425508827554231757831152184061519682225720007152414229317960798901541931501860290632734043862440724406404574410163094738046142419059369600126094257409833724710816443695802669480693302661770142264417204950206639323514711864965051657344803395897345959117118119278178889508940697199961302027002059903287024289331047056849184694126941383220335538226687466619152880431606014655440966968932013512479797274258526815401603423454414052202127004040931953060195393537791653864551356678577941516746755465191817620907490978929046372955004075474378198419568539568153164434339692929083301729938314260497524262055915641674696186612003104748484482058441662065024611617360578633106206288675511828262271528787367159353092662898024184472726381961146892260412795415028489830448079883279009704346888972704239337774756205246774885401272238893284339380908498782930107118944590033220785857780895464344305377278728115594410376436730266548473637392465437578742237883144235604196853944662808856894435749038246638664656069575803094782402836457069740430436481215872796921224746423878309699858378418219506790400125190677680429451375514895008695352452037059327074801685060118266602519452651412902290879706140219141907111110347653597076153785932972119870787518952402463943482795431841492470536874300878823942695011864641510652489124198039915492798094448299242746867456868875698420423953412323381181839341947802368125713442965134547483778264497837299709484865963562557682512558104337542800525733179169749032455379906369566340044982178557798202902281110995665056996695744523725073984224760412405179890243455317648926973396324418293449066627349578581772254587399643472246591074803424882555742943746769850194741333101232085995821833376512071015885718955214175010968183217844038674650257825295741558809107364633506414466946681567752153331293040807004493458548500104468227331022101875169421996866517365651510978492695050934842656388080354191260603646162364388564983680951766125308023463433005487162979009271032367282396786466245937535209460985468561856022230129005308236782995770683365916693946003769410072806713882122599838603681264819251555054607761216827593008471009527493384368958229896264278345401656325928564131265465904836773183196700168260897642569663142198104311319444678633174729792677442714621005566954465086955838659870311642797422826499039034534997004482065964547363067486632478974631871071898825591605996822290754495072998724855027494874662072490695746940811260270599257218011657991268739891841775384207877689029313754274485009453394378119568546586728247948729648887502563482970954362615287852146259244360699680634147645555705838699021971780418889771397083847907641404152894878388534560167652586304472104268442485632473894480134646535429393765513301524091457100900498471258157253268493663001917809691675732767405026750817463870348174259601649253616005842527386203498755070429676216326895379448073876478665361689046789196317001876843782722549607172426976030372203093839728708148749586127171966420362529238197446541026692483873445049128629893522647852979813443204672698901461305811223021855640372359803447553731363878903934235356682844174472322732924061233521794505303824521565488738615265933768670388501848257269124153255007148809599375028179295756675325406155374235215894054254345573670441889418524060347431092203608350815045222719280778498676440862081736245945440784556787091927932632511869497611597405852014571511804097648069960739630293993258367383262337194147842466875598201116503790445378157701408661538303120642831477889291095146757555495333886010298315094838677759504773034578668414650589983126641063513345665595041221084557338936305757305827666328545703459624995025824904461450489891953524153882288397965955441886746983491365398645048574753066934948182076345954826089538403915967087381591016604334971255757498689004857390021507119399147387806823010462509359650796582994852354645665708922245949642390223787695364399268046083057682616195864686184053745295984192248806248916138713547925943173518178186691280185569611832386538784249341828434312933406637933153528914165735791828051457629785435946120098297584390428119731946373258824302168693193208717569894663377863439471406197514525139276859692460373058400514917030909075090916034097117483257787338028924933369465707583233468093541539698076871820590031408385989780811590815250117016033866728726602929206348816208269790460457041135872485135686638965213506334073558623362438630647521535266953477560464810476260350814298816047836164868992631188289792197340888868426519878399729711121177481130892422450857128264059261645833345336427462948360697556313860396166052597492631471744286088313989902142510220842189114390661269058617821855217050477143271292248060078448550074193192079000977892251464393353828880531852367137158229453058002084935902207963302315280654319104156565317990864740257706298425959167800519328823955004237988816863988100682391040728018632348692746152297980379562646917236943159761940355865370026938890554302763111759897853082199328928675058873430778839201204913231488032491627488371151559711695665934673006937658469083223530199816349507983011797426422038759057638408918104676945518405632679626298189633112760593636718891385658897065981987598553800332480498101281276176752354092864218725428517044276977801628975208277076592674456801800363117446336720460083264412172261593718269804930736356039262024035681738460421823797410283109914713924209127724638468488436968097978523419492694724176092817654957597164674387621724906090227805418596664996465823039671047543124678758966005935784579613893188377481423598084156525449403415367151683178517792019281491660949665457644588793721199177401398479195593942840295048534081377929153757472702295252662940417795991081868877762885934360808203267038741474108374891129303824580411601690083393447860185811281298544309037387669444502665723494575034540862963028195405317854078874000220790183604832717147103843480057564396083425122475539676040637124175215053088029917998095128418853012854223004317333789568473720196521049073574860437308041603428181344296894008887816540886721055613914785687918527889809177436259917838593658949071854080161964872140911823360602442209061521580022212932165153252830387460312527983766113092914402346209589361590251454258154265060295225989915491224252020334104678226269952041142071163964731389553476755880941673568922839213273267700283569956157484515974087363910215871585446927082503159362081701738568521999010213395791263271953496567263850148224377859951318633661116752587088350519360807702052234926628134963030273078069470466780613402473469001730225326073092344969587614982071511832324411024875582144022423941623386517000424157226592840550164607039377800801084654184749505247440270946457767369389218132658546431303294188915275236253116124933508371311706922500677990484032678760821352951190254689912403405591699653068784524745671981896506120037931304885166318166691036534129647501841500444115853647748438806610391738782010195239391139327711834030995220078405765908250727080217418775055077945935047468019946488579276757154336122837290750786307645323810039599512740751622426765225618786942064423138238808434919329716942331036712731920124445892963235159836131525972814544575183792071078760641748845385074227417488869946063662867504361848664140551396487474018096396102083124244260302470937059320598322155936814791273066439230934103065995484805462135517666503331667604853593749129479934280139413748062570514833492803279408621792485907127252912584094900027835866830107411511844405959209270376261997755381577387061092548390303013408097114432193882227023914745339159728306166175749345222782594592361177391509731038677948150658243244357459211747945240989089965338143229469677356698885677916386883009761809581855741613533129139925619222366876677090601672491611040451436704454291731208555908151440596534978125625930939483020854105818260956301760237318668058898750837669929752105050146138212579478783272981793221350046506633112476371035136879841045250844223099413813523784008050009435484802948274214738468632296453240029264541930338041768734464642160835144944377230545085115706373634377292990684170086408058954529782091343845735858400934467290588597256808872714748467462151557132351935283263901824907690851131231152450991585777783073676588574474153101806279420568664401366486669468449226655419678460418349197144633497272570525567500829892981691810224872988472941135009862413624010486268573289330291055322369481347027131948271442523004409996103898652602896622285650815467401374109754938615664397512103866050928661617551947817869916992745675510956417547204891258546109904728044362207272829149266729595587115412249372415986654798107803137388932705435380477419835992504379096481862929397873793142300853455391209368640846745835583206486921127603825486385738622133750535646501683830271443304418269251629720429908028553829961133711492650239919385310079973450537051903797290823009989586235422282026317225904201804426622082292975413491848872111814404374550585026665758032278232198495632016162016521749257847303023408599492982614208809536118734250323268291670719263389815788672314197677948858571909715877049058209002242297929835341086723262376584987539708274339627378432442799756372611376745089506426864077963728201906480916297392971591420462808044673539403455287391486415484539269961627655710195515319893910743335024423530941587624918684902719455697355759123183107872894461992504531484887602852951271962662367704647829539153575561920790095446296725039471629930826367032214593845821978531125896272706372041168747030282921223403604699519552233506929773894653241257262264368345069236688697950597625385792428630995993687552776292139937147132700112864068326463287065336321222789489006079779660841761445994274818909519727971481535029828036109355197846299308799032682628035943516193396761851778974562815150147825475805530373173863740035327294323668860591110878301831914034485089894360250730039393559759519456811542985411379418313972712143964854757644149069997911219208139629228629336888957435563189980906177473139180494277336682712300894958363126297317329404209120814965171276683952052575468463736921047538242652002198809313477841398978623902372877786726938721898212616123830431246682591072379597282065211771989242694975770857582083108744177415077063274734179360429813806093788746845253657589848216725337973299239032428216309868977233233500235225140594935351246978839420076025177271882560225447310968192719312943810581570055335017073967052467650308280412649200511043911567576207891852220690381295185576063351758516094092070529879748545358462249136827302007790876250482295269388707276843054109898418075291875131632846074003147624134619995772860440653896649818264058106668288019567372345356873748126424086240894644802935944758888125586999988833417592268068749709882672204008550897266827761047935689441303092400149384271948966109481798425350685718950275642477486262833032069815298103989939886148466237422488790765958422747935998102444413129694681529377385082948202683300032235396960003371959538340756083791544136696273020503634912823594780428933375401552359853112141244902241359132175556947383571927358376698443948550614058023573788393052923590468238702049488173650393096578666181248516252254926406345301733093897222180714674851205980390404888663522007099199726172400891440742625131882091942475386095096424391795173702693745258346670661579306458170221445125634697539911760796621185770448382811943495215954299546428549478834629284926287004716181776959347733845013150324356008959713273453997677589429481188785898083290311473693985839406303926242071320391729348495360815996855992124471609000586072594827427478943271688068460219747761966130391007774232096504234290157887739377536595957888832223339763165541167448556981730479066627322727904062494630568439948125287916897304261283851264607184903448364017866040357026200732912054175052872766933858849068315042984365545113129251705607275339624686161364098567564032806840884146112154251497320650778719455038902871512255274914828220081362665093773778928852250443397012304198520272476774075871084749216065534778330094483682103710344637168560482259592326891099220465896013358573463173980475225857469795442946927457706742553163376631575182736475184923382627758790961974640744458964580683209068172470035521919289470106626920396387962789554396637252109975936510914001432546431752908631953889231201106995808565778004425507103981370291323824739918903230845093239284420252922472310394210209123622020542703584094270391472160459230975365599676712662324544231783565324080971923903597735332944234937291514272900749385216589153890410925934126603135952187365428462752275051554547677272773293892508650020029859274695638401425721817990616285196108993211929990584440365403421505115121060178957436915094176805938721228392349986572311468547959459327224424912719605454970537979715688613243876661162192126774922929370554972854457209216868211717274191655697925306995999644981648140628468634408564946171370367703580673977698001238119548881286685711445706297443686713256851143611669947287662838592752455653167256541371926278285890022736735647477221453675102862446409707600350092782764554821663031660710433181196371691030761771447307402903657214774457593352239721782573998364582112485313268612256784644612937107490503420320071306053381399675281190115883318408647246171810547941149725560131225354062593907208150142819954659863831607128032747393444381313193583863518729078887720715236548022979196067139041759239369324240189512532908566085364948143641600807326803667816129762994068283796456748531586157637352351595398077510965710337284384653463922484109133965327824012400142395173590181891599838034772326827478055425760509593606832738473269574491464169437110513885937881951100978906974511795472818335638124887516402977199001743231507224295341414150647459851971989589408443118477696738783600996529455385254932616315723739381352231977851413257493960869384978802202508645381808336648634865224321446097341021196369638119970412614151094436032630159235805677223594452432985434355300421096548625359946206277871600594246648430009093105960469963853151396536789357817936825706953763801320482865898591414631144379169269959545260769805038122128219537193613824252612751092805575274081624422970283369345735834672453380903066388572566160450121435993939133375571254604875254434981708484510164651288486479648966581570808797631627190741417834451376719315106990733721729026386708161265053554993599344206715763980935937588031316954329770331851070778091977423969379384014776133004733637844730731567187242683674626676575044202684081106044255496985779309251505220310534370401736945012806089815249824692088270761338304806157955863425130408984345363366425540389592659437396226278603459722225518912379087719170034787238514940182265824820568073283855609779002894537902173617246213800731121428026774991348678335273860432263910962941435050560432522171108043998347296560859433060108777415618880183527987336406746055860215371640979672568998108272157926975738704316991065758189959201606221173279102897511847568812269582697393447630393760318300439998231161181970853312947309266218721084692641734931336587489987445579539062213773880258931385443926371937273862557878592724218501578403331707138576688999135441911095624828110665771536663728024611180462554950499276096378271947736703679201679008776594596084534088722927972781687729252198117040554850313463029187474463203956874095810254908528826550831908971471675582679366263442715946394509870996003502099853911673304181186410966669737898853513838021384822898325869978040563172255838561958771987126901434610291368475595439389531564009612974455298384816357468710824882938500647241358653100861919813129658040702463370125907300676578622662986772853536270208447325389335563968191758801234472112161716068731579580211597260972178432962567245247012883575977654126040492942796271728864100200325124601563407521040643446710051637577843046045211168456397443393615181371370832308549095630617215930600715295482964163803429864793147145540227855180656188130325295237477486369777505008660941533890925801362651340820749356901862382241041536359725141433628822839361511449953773027390673674703309290301866961678321641442774503608351669986133746507840612065610893997006055997793470548467594206425392467704637992456906144656870936995276248084682427578510671683472954460096531000756088667079879393064850690957271340110916411423217734560233175483663883740095851842245982462804031777078640489536896163235433827881901080680619108405753844645292475304487934944203563160677489547441101134481447536871370694983452920857472989687338180382672751707113095012691429880960591135335936938455967559299639887669597868506033441671017060585912307500175763088908336680063768144363941486084368585511442991347223921477663825094803723179279408547498756552979551583942945072836650664112247672207676649112426616682385687456002443087084469319399923971476387760477534513015659996112247922285258007929378547961170250494396068185847873437704077284176428226048883626773337911561564754438651858593855157172553011542678452189686467179597961055482161493515515958156807598370509864591697278306443409447172936928033049830222239466435950369517119143943012390038831867546899743895403852864292186414406641554606531050594815891687267173103122086120965917874239645170638275360026167084005699860404841406299416776700386159547318530619798365124262819407990996819615009245941634046040472407321275284780426620708159793409110105506489923115635824369216847410463561599769194513764685969315376108743632398824924729136649234259676872164983864837224993275405412507433366682174365800369057761276699862168520492091589896395271546991078377042700991203001891238341097881097086152895551312830475381829215291168201667927741280638168429501191110291219688907948752677269273951939252284461461619351074052686873906835163829720441722105819791598432728105763246087746168071367505910272144963559803026854212172978127064758459512749429737561754622687999987278838055666370597940731011563929627041138751002367387147088972859855718083096672695051117508876954633623624181260449054208313693232397510646582373689947965864394385810987388303502579219643584741074892650024996326834460371772550356873772927043707855865484785072800324499664477342154223731443311671027465826386391938775479119237240364447898778611048080289176388482365675930593405336291631941974559868135961608771337228571223233296416802156971800378211977812932089010396287849500499539833273149234350546050664669226420420830190493202639469952629220664959970168598871173979244158065534105075973798037458503629689214241778876716303164093489352523133078866916515349334285179007928730424753738467042648706017301867021369511372035508889571925818902966080352971666825875630966364758237365905663167805744391823787486373298887734364299382813346660373024786415227044143655850060396067030735179288074047393204679045266524225838055264517615935323341276337951123900244288151177785258531132179656740345001696997862698718806332300443906003065871395661025208236646192136695961618399067586048866026670496578234787817971071665669720107313571514313531898413361983318892756579200208047827399298349129225706713697448062544235064369034046280714277939007507285961177225827672378753599840281503322732887556397859008665503057590506063592017650334645819256666124079959611669363897633706002464863282511364595009243521164001356310544756605421995006552643579540653373663763007847153762225593850684116169500764559235952128486414496174101757091903342919841543676605082713653775466624375291772055988905578593932070159453299662102386289053167830217961656663837373966161395188423082528309316248470816260369596552506093855494425992001662323461239705448073366369335875980787590405268042997468622971120083842139494826010654460348021791899074979173610247610471668872537089213299445264784584528508223047474050829643800261779516486028175008081808118856110038668787110129443465616784347553893098372837334104843462867618767321680825316157813066750016169761661324941257887174305754168251612629170166640543592166920773385648027426872310079652431173534980341602151725408807234525897634071297395413598889701796303055631220321274592208597667770129029636655156135900736129586761085715711755448602118337217386132324898484477385698808595915717541348995493451124961575284537237052340618926135200575119462892664820615367282278461082341730394590578298954111129930278482639925871494325642530923279777691645530228157527266409045642296793499750104294339232404633507281764262417996680362646089545129953681975113960837506691990465994657335152832084834350978926789357503991269982523323661159272008522890857772590930205149549609792860996621162814532421351548573345425267883320787935362811930706089932749953381596102378019603993475768122083525248965651928066198219319781252615389348379414893394679358112759452347765139760056947001536261780504350046977125551300175612635963491894431492688294282264406969841940821816645934607773164336587147526316738838829735727389919184200856121700800317447285794506500632866391335067960880973910533923019841050924266691921733137122954570027922127283928237528008906821606208763005035661407696531561095199500193118257517548070235551730576006346548806226814326295393551302054273864624848866089949990995404116907945545729414524269748701402580785681641337505816359773131851957829280160878373292676350447915476212371132893728162571095764243247877190973296927328926447715245382848113329377922433919549795167712739988405590014073528423335061036138329779847816527651909328267361770707798630783494394496488205683405876149783923006920458737633486210400285322330629466994291777757012905182566660018137795595403731800008462345748285444559953239754246484844946792835577560385816859667874398980439517466126734222653537526735088593391826545443979935649121333393841725967120659547466832234923683032244930263402823621581671295502545141706781090689854491008131270929075361977419393850556435660075639121383528689108644234038728381114685557839539634445436091529482748230723854765877756500229253219208535000121919502387661681992066444349443793985598157282911876044827193028286596155489214684134533332864997409132543038151702513863944405495599765310470882645072873416973246628090610260857234797677448159818972969341700504584644510509189306228482744846029957067082085378630110412083344837208815047561579358482911845713711032459350632863203013100773908830814761211939245404464119906477884972955946559047778775699075702849503894505852306146976817823893330508921561548536655921555068608460035242602356428377227987354697784915581643609031786774202566370086353352166809880704100757252657152867490897933485341033572445435957347687094614383424501129510916411134114127289094527355719983930589379140395096681836716012968338600886708778496458386411690293849033893994244042415695687292282652149540154452032535516907217662114081197380883598203839811280143886081435704478368236840244399267420510939754288082913141042533932601501434276812387943623630816792164110720705274423332806749594174692811873498595018431879562036698207911965586115092975826523452135836462036388552371722199098384098243448058161429345886070052439001053705261801528939856911021999114956846139306318914431300990379549622030325899690210407158049929696509982794120905020290260177817448350722391576295462593113476256217154411233645072380116090828494217865092679945412171980927652230212281544069758967874953727326649159700623735270657321439513697519237594486404510119797885425259984042630823951881006327133038608129006946424076608527240149109944925194360959911274831878501737571156311344351767836387028140202716548993098788230630867194324686241292047814789239807157785290517573695307187802839350226495961033622996499447087074501320227316209492460753330414022107858912803578063217130556790195160132160259530992059044300010727768627560157255073006749850500693200837657466708274951886194129198804501290044021975642525985277127010786697052820637816904670422333850166441257487537469640911553813713467307004779042558078322039606344511257239367109217605764883133275439771205733073105192518222310570708109151026668781860223359075776241523332075161712900688198814307022630814141888354057847230687595355076167623737160863465837682628651171069428401353040791153390406505613270968112599023167188562996232143488733185731784668291277892932828199773651454518485895147948193736069507733770599306538696056527706426412760224545394969159822285863176363776340674876872055246779637259326482187151998588075082680998423936753879095282606755274518263444123141020718758211428946419865478710187093687138286403529926014689750408257623281416145821794602585874874964916680499524722007259534733022674084045128585899079975804711393591354035483566763914908278354783309926009841241798468533545010516236469299484576705504922200437407637909725614440767298737833712064487013203874980992532926560879798979145719744772876096411787572160553920619842940621529991884164922482601337389550354844423294503323948312864032075385325275525810930328941218743031591246473255742396488553906990097687738138812690975281145611768633175024245665047989709831890294755699025183824470465407304553967752240985590565946088257135423654220034983218815629610684297503333025978834427376528388787550883668864017152331318196562578865788550113456106057668107100296250803412671081373306796902082931169569106784946132429450919819464847171826062401365625195526864083383700543748472698859648410219119273643607656872905048346199826036552627866573913877829334602111901064120394324164682174617969230677305914006435724316332546106312095193608152649277425967498374305940873030821069164724208419088304257020887243533622923817020319108372258414338112196881079413620096932428956817229787482024256227428939386267346969747490905235317745531669974097900951644141522947689104639039613417901670203016192740830395549552236209160136960624568602023561357705300082378016980035862239623050915493164305529707287993111900979417548243505305895487496753831532828168019859825388379981118415749702101032440471543609057694045678380804960007556875573141216378146138193990488529790993665535264143671907726695512076430555867835751666295462399067242317534097320722876884752070808355415952465232498635424972898397028437475604370379316483232319067508720028258753017432995521239734458975384000418705213291198624688319275256895557488992938726527004277429982426950266990800177591901117826066078353359243336816458680030717949029121558372827921870779665756254870100365653192349209016402660436624501115088599914094345011461269108771506712681284277553497326540828418654357279186980119727872192028652377547319810390271276205515930600676874484216681003999730085800801393813706879913474488126062156413392080450619904581713111521826209638232309413398533176521044520046349501495207019547861296471229651401442489446930860455919045337892068580404745519225189149976214215064809709831720013963044332371203949699336904149365073899536748446113764648033318220035732784128001385484848576005458276124314061641399918925064411564363471785129781586432433939008911118030689172887651623857553078398298994341756450703364857396613274836419512474146490326260183448436601032755415391111401903212986380870310352316486205780756701244030518575950991603384424794915230948341071313960619315469755935993859944789298008246631773004868410724277329367701565707760358560992735183322942353917165329321475791942082468829525903913020307144660035902422410609711305373162883695233078459912559346270013766498203761132478895663305012014872781443367188915270866930308643000117034858456709080976742182853301331622635812135113992324544224265037675903693648983893700481145865829566602814862808471361995072405907150286885662782544099054865561362755002754173468268410577800532302187202311012638594120360686062346535497341229777936425865907792294394007862973170191755073311433684836161438872305410827494830867087652907476119462648961435838238516647777341542632724627642514293542972521332989865611226923939990340873827856856843061250994874600771044405173371953422053561430870426772724751489658228729786165738670025743907028786457452780585567368456739690842631062294014713887022453830695980344561651837463653361753356751509286972455957406686996418019449658873240647129165390463439105737457586559356317404916812820542299705875024966991693548144061638425045591436944219643259487259519111744408649702764927128302387555224463281126110050318030422913155117656636157494525049827584639237927627786698507994414939837427956888909314148240918762605855491125721036608266854389797967618638734285601334975821851031176521374622642959335897936386627222318393860680798059895280616651103256578770418576023905278839390531846450138726531678349412578871280811722248730553249654822039652314192721315463791783760995196361976881198740782047916726596361311485676806480730314227311527834631816388657773970510807950248120304490746023561411601052883380549279845732376651744286909411630551912200405620703320318338105926543052405522464014393875266611904013917770397968225389294790207599777260761880857135279777031390208596380943195195530786756897008049106389439207207623032175404094933398338322208823410459617114990384964145002566123235369144111254747664335426428164150057645624820527340803274565548452223947600152008466968748605623747512728778030452824577908055344833027119837970995080404069824164582736673223365937807031019506401661538365073070640272792527477437098094390941949703067767489253759664703276125781854567954958953828401898995951372355548885030203849149112968279797085612178114502260894248697625919306613157077985572961687031195042581909804656847889417212107132495598572845488050272168753703492590155844704397148478559194891112644737820540596282711611477686703697273348699465506977675132432543927621516630449862581473625490790381546689045464281660187303365589184654808715699277550658204037720013601571023028576784914465804622078742852306690382441174958346113488000370908027214179258874435907424185168757080461871512539515264537282125832399413468099325682424047142574285746316806510129853630705683683048111132918203410333413385893734660984143878563975996953062597309065654381541565698538168264179823067619960133084808290197707187549131964098709599796535427406513565927614777262175977279554538015333053340866934578780236991657959040549251052787075578727518727233841809520283636058761886502333555057615664587019249618267599302019692832833376899377620733972853572639930234711397634984148871849492702430188205132922322376816204990462356647340786107675936842474023521873285339591937155824251267169725922915917773037746544939038323153722235261545792872822631113486181617388028562860814604299109812246418678275589731302989214979488993606403676375804535655362537757049617103337404175489863661302274544164237658085549275958104256201664242729963522635713199351131141230917979372728735071611264827584356876959599196160458300976774990745282925314170277131222905093151202494752201987189852575095842815370783226167748979232588937259431228275571422652553312090565359083305366254329283791265324922177398587247752161211736502719696476821796759438312326478207406158144461871825959392364408816512524267302972902600970206793818382968910494807673474558853107762459972092899325255572970311450335159645219499388471545200067254460848588395999916642494374202638834140012291998673585744474041776002189574195831147784890891635427295027391058756991542669675938350669451770304162851746763333660865174246018387374014602477550180610982271351035801655069781906297729684487750924087118777892520420029883391707574892592226241157596105464881421671100821430677963895303894885819761396013855966778202516368133310367263740723221093315784717835895406038941136926514549515854638251527665439851945849422225866226313088592795036380795549746488972971057337201374830256111202486636266906565473742635905347134323965456734550658058094484581652487219987396037862647740364300726994023540534616623535450431269928751611446635485693802442662850949755201851540574946465814574275952071725891266387985129205533860375733264878193471479883892575444071436250188026610590709015026890496374712163483644701366295808119083815097376326086810151135465130112482592813201574189778755395645824796165591164994740406607286077331728473049112842400527237923499704778238636978454173853265846920084050130467470012541633578588452880741091718386947581523090524339103452895919264470244321048780068323475971024139035035837815851983029073799274884036230803637740066696416109285985662171865186273170022070164996576670389820631691332666157151880630810268471476077829110337910840983409627133613104092565525144249619731054204942684892171210890260310671587263090782028431064953781355726490247305049609478241099307921515345447205846768409830188187010086189891146483218937494561235786730352892656518636522357962752045752589144607757317991398087925306768389406650296473364087423165772879198723787362162703505999489966319501375186820777861044901056720537869258654754274155437084034496847720899128223847518827436640104949791473321832351249288751600670522518910226565372909419798736112020919921211832554476829895768632830052078418469807495734340081307016333187247873115987401832975576267806082472367907808253180434438766028117593621615082876680574232214665334230385400847504174060200350746831815934453178748589284205870126116051137012818937051377868272310147112923641417598134421575105808764306403709549218979047487545747267227790569095299225021738408914313400328322105125612941869057507872608168847656996961273819221491022403886201143829995153143214240675837142060916261962927584051006347558624649495726802880714501310120469517361294342437990827866203998702509579542886433171371991086064834342076873603542165273659107323285120853512379875251219131932469653766404048475365940365913118232995087479822900280395877285027043180520327915734933832556038026569869462464035901882092954292122313926952369011517840484784415481416735406548415762333345883067412184189169054945387599967607076951321747683355301977678333927331109446607046963551267280756822051031924811130083186005165373604683639639497777647082751874493806096301668698910666222248502039320386547079170604265913496321782526204589564216013643467537654943064489845184461508131526171557267532463521899603121165314526906062758374314898073761205386931874862066596358303646307820984397721631084980836724340286533584823414092928052879399737596213566690509245213775693551052683569713351458026582144362839932587437015032819377517702422117509232664655787908397789461582153624289708331614189636481143049977427616862922815621404675026745706621922092335070796616828127228986709691318378571052206357497140828279161724354693789393790720387522583173271861867350374756910505515591684955456572226596314031758688662266992691366521048808323080702698198128507640293617889835805487520490094584621186767153492203404822140074476397265290778587876515008400587431394874273948055537291894859516320548775848312417113738110222940066376623151365668167542490215074294390666232390985713951112218577483904420144732120447454155733447476332757312029937629349955648055110758273630153236232237584942475403112383328639963390161753913181243122997284519507236594041685152876577958916534058408856495783494619735587258729227806353656391963957958619596292110047520484219009141969558913627055842951894019096537303347707947610984295284219665924653338812116366540320827683493859691843817117977889115290263708075459140478879065041962110200895031591041680786572375592961586421390065453542878387097354110411570335509286368682790638014769131621516022744735370149319510429856460224580310844198541044369996644664451169753437747076850463008670354096610339965637121061035966461842334231997944095721549114380746680854381029493874711099511558495149168566107725055016652588178205005426015403961164644289840624794252979622256135975866928292384106961187210137840053636075371266631203594539821554086867155979475435108742451544306859349034594127163980052182450304832968690175719365848056285211094671664407366947026746532872913576895856447408468433432366928829810543141853490123960631134835112058482557753634048340540548447821091717216231982166793101982388694175444032551643002011750345528047824190174479969981944834363490987964819886189474931467676755186789800934750891816035110857654206709806117187855091896712667147807060168615998582620460410444494388709164246665829485499853465792836881620646559238219391960848074522698405959674761678119137581507475900701827209291944272966686180210532928384946175621607640878851109238719967157251934726719491355103810181263533677199044578034928192947163397510559284294059981006635998218792288807046036324914647078435865253027201016667409543299551419432732964545044431996792580284020494851183331266477174219887177611321401288107565161072737107127261112203239454591968519926184128312528114228501831911098031338689855871429550289028204002447917897203639568018102799897506129923780405089883815194522881792298392982003560501897783126172000079715383288779811270532579815327867112440003896005009645646106473032688896911475773435643382696901425300209176942255881451653653587802347656261553211780897503074141186518305691007946799185566685434855405286921870522198237172561698593321543024172483146266800263338955349226601255545898990098193700388229288845432843065269528854376955771927411364564847623392856968147256849345018281980366769676676831924666793556181570229990600899182850338574549361666196369779664379085281574380136859424213977096727709921856861956682110083751465000009897541308248457017892395626874929160366509566793868234974501078011127478080591213731975929242375056436643370836492668053968043786592616138447843920780430051558543630167936555687635606068046337137271624443275067793384357057095801113264074212221053940560471729818200742826176883923290274387547178237848286905262687900182145869499912709207897742880721961340798651919870563067687318543646415463817096037253894972975450962795293157124473567630382522526492539995005861171303929742308899429995988394085529664775221034211635333073723409402831566304078797215009837591696848531404215682456596222836688535592572772256627969138271521821305353131000526500676349752209945729611519866774215349277957988120896234202253506771562370079393047883319418749221094962340902919169276730944226978499390419758183587934217172986887217506985375800683006810834564943454841805188184814602543204904701718183528013155332558855143030075230311616561772360459502703264559842613677157412708238591943181903278211232611906579286911728542281703868886713414584178765208275818417802022657321682641620636003883181818750516226473073342941478355967487562881451193072710978876059117948634527065921230477342925317170511501514185084761888490639509713708988615959324556214323751500483870981954352481603165052385508276111968656350898975847881542601869657847409028076894839760369377165953921889109438733301359493934048212554761919693170153070622385541492509940151520416092999414045489308648319168559337551746640177390261533984712057819561260413261521549843820587613783484938105084256665145296188618732897681481504738731885624487287441029740098247893821148541117511424436651598906253576223138458704835151810665568844806697348860590540291540402142717337537282716079708758918523740997171423491746702468545128837164577506472388384056201938010835361547408250257420371341341563686981231187336629984805287846163279703808922863589336813792784891881715562342577492757104706705554854576119194977674837986764286939825539767676855145697820365486323563119874063782372302320428462730328303302392077185356882263208066494910114031953113586266454967045746278170589706552386801031737998478430926074928334208916436685865354262573467654836334961712007958070393088432271727258421672883673324111127203519372927712478701184773548806838528745594111048187395208944609073003727120993738967185992988352311731605651925050703647241713264374031394551381441306510577305942470915327115963707958609304674563565070988971165277328754335063837943712760322181075889947492703810602961126488035234920380311883036846056283487820062615654791069042782560096676875267524267265130242200278334501647319229787829264275364905154773918673621522609872272137689965725445389300506037852688204859274142528961099458031461894768317166990812926737168266421702239473451300784318673238233114382667028636007118654813990315235791444089814250495195503108981693467903654656344182956545940993100391228707643839068004991677218788243088226704356551773260308487005533345703708727696964137984651278375351869985757452920643703107698689586522366442754123338805763539439982753283207394476155678694128922185383184784693066838061653490719167899347450287914145404297367747621315784309421895525488967745787170467224266990197254177900989920516431005834425854660206084192180563958816369040748425381440012873148188029968317203274017767316146723880033198164416288106774026872633869905181900398021573183505100562165047984293466261698243113652594733047462605890171480762501656910799511981698795888585301713749862858208526330768784931420510236193433367714780460055368409283977711398913961875718008823754349210092484753788824210099479396178253455254508305222235741831095266449011576128133832864973636433187862843984724519288440502907980759965139122388317540459155229175602637381463025827481492704574466135589807175467368551571566447614648903335257875079332906096671761242597232691799635464172599376748823383502280286649949194797359094826045425044107945386461870225522884069805059539638617344325904884664875435404268572041071071205063133398720409717368385341267977927083923400741735339189742072619474421936020216161802793204437244271135242827048254663045616988663936245864286134205561668436836640797039519072808584285235663303712896384943908254061780095830914052425399239752307837136542703352531039962366039003330407003956385611555614183770982833883988730177248541965978713538141173602791678171768959973389162475602379770872430192803683485639924086281245510663578422411509684935075537626067987616027096295292649764746609571015254568384119698412316005430643704811919318116408601614555602420372038068198871170495588927136729497502034582959751834920047299500970608948301789963029694854349607575582020885545684755975970822963183595678013033639195149539780824798169090391074219327156205930261242821652071019310837816285316961504673772907521335737804379954809162070215412774201523178370350786818629793463479788414648472306742907324141414627429126971097892315716880996342880149581455749796356198301067477373023900838450112727324046567400200994402446365199432391230529546446911515385890542214893167580503273756664861886552389472463789993202178021294869518661089439865143196442083087025783862260357524725987135875440881994635059522718986871144300200262592724812563451691663616073766468105981832413421452063294041373206988679855863793286763108650420337183213079964945369129011803731571564211436881299618637908285915938688800216329099152474260024597257784125837138629327187412073315860753939183634871413860713845436573983173809465158101155750586365679892226916965255956535408149569019848096155178256212014072098096457912321333610914870835882315444466827113400257251398983421385229418776821683354215561709273190744601246501266503086280640700112199859051036940569725200979262395934086143034932054535398227862570341033048835203373996825493081366928881114669942231405530387168409253589105929252292289702696619244764128684834277188915628872468304703067984293686680755179004098150813403262179652905250620824877470616147861197732954210044538861818336932601258223385680311804209548742644652913457061739967076636323194851573503723865176471618275285126834507260611524034951511353888404456419248043504498592908229434601727795191002738153167285509472727172145397112559784131718875341258344461446418280166252802316952959266638094606479346531431221611712121076003506646979799550648664534169429722630135703704761061619099599222175204838129302385044255135104102647425742287106553745330318614416025845498805126574413382668012721749547096891419976585429930801918044577538676568147358599755000403565186220770364122366276482569792728577523257573405707442400805074821045815603893505120162708517767387806598814543063483890791478657885894626237124730060265936688129873814772812725947850557085062123433857077441735357893631666635816982669694107824408531873643884690312743024385559385961417487790358957752539658021995498546936617971115121071409718456982826336835864004396875482247425122501540855806894832740845981537264926889704952823318502532817851804393883602165968527992849309323157047619960141583274787168140961840944326789146265259221065122651730846754201798094415874145512294974966018736373058025422220072304138564321156377310266913463524514214071058069804720384687088538565243655270918652142727913026971293501988105555023306283574796846373291233596684701953459500076469084906580665519888896747088500361366856246310826586939072469751079778824808734887927147309820072291459797837148549372331702196589724850485836958609485183442349364250076696339301441666405743363601628890075063409903391168169550641424349505826594100682005984550888162000820676020562210490233231846764539418696281026373743009636844077337519134299278461845156494648858947384673729553404018599485755175394979619257576111275390498007237820705481534436496336168870588344350038324367237381543528372058708791442057481380651301384249350741628833749259536350894292519264956663271699704480606024414771172005194942921052490676038853171047183549541774078235037847493413528757171410699947460829042572534904293062942329547486452700354357288324692900366993557761672244584569152485626804180953267326411217615556579888289116713201828274482776216284107088952719203969446649028309194893769900012627412792819347495506080281872735795260238064763862182591998417374317627743047635675184641665110200180455693296689746279279561650456185592178172158453307479715787233108699529753931277912976483959905132400824421234106926880476279553993119147807589930747776137433344998612110367717088383930562596898100331444426411215298379187185612561583205018808809886723361796346967804986071740624630540759131546847847648020296735337538345702393808346608029919699062038024360898346994887107090890814010774917287085692085907108469111551069207481614643163338109480830006739287524163399515364650335665979722789558629016275813444247968833570166599153638841340923075962043003978271075483956674680719185144672077101286465956116553317120204341863225668195541556112378399155243317609435733121090228259051866384540534288522358067990830904939830729748447005392203159793478601027982473746075798759129777670352559001115541001979215442414810405665727296789556799209051623535325796610408080530194052918475910030356061875505138777148704589793648408715892997437696267217987024740713196585708384858200957545210525754300302235027824855784899187948492009091773333115424242424023347070320477616497794968548900445638036419289379838923839140307802923764314146474514200386367340010158680753161321137123831908641641310975358700757423185911896939398124545253155461131159788679437321564667545526060937506758110897217800347801775624718911188086230981471702434555046440041801934310118965922438526542856652519596811070973933493990198091904895978152856574655314534983078411075126725313298060369528585898999090338839705866978478596055228690995173996265981621765469467108037192616330155337065087715305441378784348861433748392382688047747115701258905573589080629626140680187097013656583846610254163839400864325933425356193449393618480683182510242319748986122919260190951601193683976835278219133696087517082706442909959404459043885975646623258564391829329622042024725674968473188053052389393055724071066604210930185028597846178416382450659106897937365295834029849903613689015717231757052960348907437426581235527661082137286704653677018513200124713601344165271089936726332039592046006419785724070654035749867709016617011723025865023583518331491967329457501395952015664608932571730314595136229020411710236659240317020903184784363808606404694615410890870906262077111946756448865083171472463432869539147608670650257298436855192569876545682961143094432311907659006516213088230129008960320418725910580806769425892384618944756511837507640017206312809652823940866418203432756433869639971578629462033313376373642313612756335604396648377643500691236562625859199755616341977533787153487906474944595375891067838227569097347191608446903463480053027396542902851612651041511207308660666129573042055603064623318323643455069278402633890273713680030347642741348387309083625524833577146136091340316099773653517622198633397300287250022700559425035997328783999832890668309792365473128588394138770884908437640279107816465432363258018850815085013648867824650806417709231924866915999050043983582417004733385166703135761753730371613016043130463812327448629238520368391955644980022158189099724911156972397979640860776640277594341861506754784548929992344178339991986066047724676697970452746791739730847960777697321073085251098442462168130664773574240416360351969802631322885572530269762659463064038671289613395970741043773419609532603599794999204814966774522964269093127178011080896065009587526476332432744735737328274776049577608891136848844769743421915211736412978676948595617412191386799614405521659884621897318948338667296802290121402783411841187742933609447418543794214150651343363196568609817298619856721111545026153164593302078460069900857650016823514346262669485684793293186797246961716137018258691193469669830883907204877343533299893797704185847845548596597319970182313657431117822138487949082051050658248139651963346563448066874625812968094449468442092660121624800264776478005665154085837163454982297069093419322607559711318245658901601652497980343842269485696558374188368613878135232631296280551839385042561021593597955067803379616900585646410786940768201241477338216584701947728357000502603172053643461763262383628288421856993627818777087126498393783752511729383422391650696455497085025409258792821738410217038913586138988936786110665895049422208136309714751111503809771061469783943747446736833569752270785236859198538543508783067355537350856834388266692700428908377867388500661195179311164635442154348609909165478628535734918824698746638750574890464447097430291756017230194559341045153256404865796512205308001532741410143125885108860883703247558514225849762741170804771713937577868449117705546950800431670012965577012797587757938512921151962201895953762111898495734368623088279649015347368826406098928668618334276054586944456937880423989180421761805637116723434610018331001605217797536299357919251663215289477358601811010325434575646962571794572414948124836141201132965586855837520793102294525524653830835437839935851428946838444731822552440367005106151852503642180833184786020916933660339962976865181350618235002803100339219730361483841235222658233152387999058155449915053478114900876763890215701487326982103756650905680935837807045420393953394084483278143588461696319531539181534721375302424334342838062176546544353836313210221604896730527738907264267647887341175117327204164590824981565725249028551763671064279770599465169135351514453422121928657347956238131757024550386534118625829167033103805983622890980417132628111853616527090810209774516211406895538435103089679082569330128905397538551528786807542187305671121452309048712502934131107574477090402692172762888628823306551349396606555162051970658052557550549388316169362573100799333490720615649035184972060746321282151130103326244047991131400028160037920301132607831300402824142648334947933827284407248495154233419667380670195990025808687987427862831503722349721053959349237814289726288248455818438279729886870949689970094490489900077850152205464178568662823315356008751250981685207707831623884546269554658669401095994217803090696134355800018876046417089872560739466174563725786034007125959297582575041804950506128639240675393889522432781930581264598034370568371162788764565401607212528541871190380816157580016312011277416738850298391241274669961931865010155836340924413100869213808601765121645416934122778514178013679626380795763691584099368995152337498477697604582942186379931998083725407194805352111462119841480224481827080754551966105113260535543310376634550616946126779582102697813567895939898367416572433574816819274567321561878454031053806302790196463529607519634121867967485789955526909223717011397817718122580454632558906521458759118157696727908685665064902968277111385592824141263362722223295989763426916945052359026900434672007396882713740835755313257497368257840301478123164145053367186161298560735296617230721562129628398176237025035382364920401549322938883529491791963398504450280625022996076141391887369860016916754002681757858656413129707546459372517600331066015933432695949933159660102684207955485043641840039741363343588018690046140470737166341653110863449914756236236564321330959551672242597943274971276052735637444524663541684357885075728245165085497558121497819912541982223536571037014019737757713560706989566078099770122373420653061203613478399765015174549129334999113643555465456023729682058317043354021330076671159910638558841447016250445917251225817244633658656481244243473397767638454455793090716162013862167911137862908122028644815108298875296523369200971909813069606024189310035693882081807931534469751730213671233410040537471491642479593823703698722225525604050696627553023062555787587592283880245249641922864206760765916269623891017116983371411643465867558792303589752758257913965870599075174965071929842739891034121856758600247010049159203587987988715054485831637348306787402013843163207522966809255777032912638778208661355081428246769157826477026174335748015378457749529209235381241713591229680612215215359387755160307963006774404657387338880648632082401268742006570372539358641288766227159192287656816049837799274949938806759555957432254934696117179149033537221176749069304586405175714462240649846785873983240803866160606196289335678512541696814324783425328655819822031329439140644380687170327131739381338910235762074733194149258606495642677964046833404294727155479891666839266435326766291585317963594306874892203260421546930833001061466450471924593343729186571077017280056158208933551588317617890636962596678163156959953656145699393438314891041610108138947623107531801154657237118915722426646158379567643602643649485771252359743263524958980937415196560492161294792600472940813699810903578298995835949752198377749256933609761372100864865858459018188096830193147410475875927554920114948739334481570607859803196841268321948629929825350373302563496513934079640017315298601139457393066399463961807082164255790792142852118841421486650552953393904296188243835015592956146023541602170874937009620420606132831630906413890019741054568573183328698441854211309497136183709935752838810475273327378241322405147249367992590612412519661220056736110360432992976686733780271248128138374180648613867710114767347663338963283548419712519600096194174865696490503501058997686421010794001490110010311701302300044091859239801280174360060403200874433264861625616311588013268754565184791603763235760371250827705783014641979583259614183656796269788803980522223768536543529761479023281690862355351187730928838541596019551720361942935690242315488588952790926018541895978560349586834175246365432463622230536554216877779834628676585913507049650959050792773704016729468778985908222064425939887305426875371569777330601021218517002777668765600610393775499408893603499386113234213019484299130732402946907218415354905380635668790329770745407406040993367518561976944500926573174079882470108013584846568797289057480081583941821695165538210565601333851892084062077118852693827306867374756283124998776963322303633844504538592999120639692164725146453405514738994585550209098191098002951993769811042108259516118757523546367656104375431845642946333069748284138560789440078754940030875108490837387270826301559678207614214715900372901774802373767453901294246308602144088047068503426512439738484045436039714228230838209941624210443046671630324740432819172216721529545843034520337329485138394570294048452711030777576505719582504770409022150635509947841697096641384168458710492194533745170946785446036755424075132950338316016079570294497765312115461720536886946951427728808805528890855491043439680383245945445696212115546288151223761171628406746872372736669508243155033823721264313160683225881723213564890485322175779023513398234033288391365215482091491265939983822111449523520045789457763766635299900289570944703230034805288633578852913630013614830800690089314346024950995592442234519197338680033899335775719876149627866473314219000441769436112214722024878919222010305813099320853080534409079876414953312620781223193715860253842438397036885164378598521670993303580531389050604075064540351933484408892916181680415633335429893759601404830534353447120523059584494710555827556054559721774825129402199185084086292373725781971007563447004377383454350867546330690909306172500092745755087764909093321416459739582543999878376351174305861857356523914954731787617588575187762239844215503199518742464609561607602373342366066009411310988562998825724868087470328150146225954236227733189046323245567576183516005470353895193602162909032380206689642678486443418052570345964040376439506713108032076286178134974974234473713598749173796768089115798548297720867491306772417128554082943491526623503145622756561623159462617938011457954338710783000124597807844772544476318397554094243943249095681589722676879181397457305486005289597362992796735931853527535515114429494427946614523079521223544834851446429425372120648603020761752359640023944750773295507187793930865687966320790069666705649590640549471948818332963550826354677131864475821022360417128935339891699815704762656201990827732516630995454388805596935434386593085393000110585321314801668226068881919647086058128613050492763560164999882230090731608702571528185264290847042128170970202151096277340702899701483117365238712833310070913366512883021723582092311888506056765783893739825459669261693002792839407735640589790796190437901508666118858696853121869438708337411575331073292222853000496005169096678747514185995153942077915923448807753971197502936671830168792388721311629953263172481702657672932555465206838299245824629789926235274826495381567019905735370632379300412840306804591880670546210821851713404127940787439769510517690306955190278050620694609369727217660390789286068460559106226073153853687599155359776223349831470931560297732330889882591326993006797051841056152177013672490819384015265560395035080928372910249065914017600613170459418963847508895531498091594202462761607614578267965128121062943121994274139891100983002216497551657699084690487160591773280355910705532230674935665863214676067268852868919866068413102605394809103920369241692345981265772486982294707797310067692758044346357126024879090845156845868964704060045222501915542732945104248126889679423373100616863016104997085144124443814877994197808978431702368181398335825399329639753336061057921108048379626153049270826357020255706545729599998274193614687611215837778644109993920713003782042709039255207759894678817935557302763149477886192080639519122139027165067552655260736372731519654680198378679842847648774558647841156451353206261619097964871317384119040182755873872845620017268200297746286405715476205952770567316661967300297916877168256578148167057066000945169314128680161120887181780435252622398579052790734892167867694966138255925454248771054452512332638960646331904049430659977465333545383649377828771035933346841530660688493209367598372473550732758006405016433707635363101462468562601891493467835769160816776879338535782667274799071906414954831858855618502878428715339177474167951130119866127351010499974961040692784947824245942087092922558915621931159297992827096365334411120754791171151443699829141104788363759474651091926996560657319360301396508874903355428377691585836254238048545163320765462386737482967252430898259494909643331385837034959797335978660185280256855964172440938162457302996999878458686241658978048849662532425979514526287928091855830596904234009529627894798595507570511788687965230899607005308529201885553826070990420138736329727487302960441494136800553366492171024069137733660205072056277028469697618091633232898886820239292358088445660503988234751152779571764883053218126246353624635021517338614665940196991310493640696487348977825927121835622583487676831393479588365085423122298092354716689484234215541176345604391904067208576735765094203518315349265050760716366050503058511104422624654649441915265507806915491676544871416216705685732680645202921222126249874384655252600566532876420039866599642279723919317647553771334399924994713974091532023909839720617056815007999395664628119715238758104612723586660462742038796892109619247356966698259177202364079336561971892261229113276127531745484174877919395899599246487928196027728771094827528472344285322373335987534832006555800520959781099794148624445366034337402348670309746937075433797235327335284547698331808271992029100881014797336423099466387846731800115054159323789988941064044294230039177342491953883892346794779990937792614199177156173562193237770750678295283010792617418993847490879012682515791317902209250514362609839800524559685411190683636754183218762113379852149373431619231105073159499050303389141990489322700893840454279274635638163869848785790814227001902797349320647020487794281889049823769587049625763578792574761264890362941786919509921881933014124315664923460794572447240562048390069043016231870872855576201060619835169262987245772724660712999698396072292792005529729691387799092263815545775258532739274438029401404091312568320796737406018517399817261368616754890971418815649213388788945418130487212184171144022654113816540983320257089986083630264308894451253925234452828564736575772966470596797511728109267695220699326289133611140512809272924966614873056525962965130758079732408030390549856957984082538461450285244777768560221544917632287104854534006897226873625950054032937681140436020086407289941425273811267143812810147970998601268988863175722689614774346744702558423721568291627550915396510008862877098836335332238770518782650314185527136194200648107869136531776291837315380196677754141518751540741100748903203699825773984677420366702952506614560219796209679449104125478155665889780491995901330926559132233784569658970720131887408777106583570311925338857694533737908370850563416032056941518938364475374385560255483307742442823737072913141022005673395411365016608641545497599696296283627989378672642013393588584093430950675488524573639054140455395843182246633083225142320037562360323750253193613165866680790384885774442645764371528074993685146546795867222976604969332922769875361326874715242550589215455271556632094703565565668160824057678480831234996193830424390881907018607365355969792028181134976931416639086883414527673377985091783443132557277827590612435480500781377485205388756614949020146741871337047289195583709571004532156379568340642841173476239010341468338612847464857046790210130819400199162770747288991170370898079760237911794344148505403706552195232721735463960193101434020848601721300159170262657612291257423373348744401127383369423960206047212529823211843844799092410350995480279703513027947874029995928816065080129274683477565576381875013006595302685056528205926231825816449124663416818769171108041980201071785853032366384788389426397021516908783042433907677455108233539341304944446745612521909062366468256047251752840205373219338300065296281998586569802714218925849814885949979380524570062838358216006647016878132838035840675498364473802093884242076537865998180888976753953634260199546593691619553089478208608088127712826009475229322290850901437394074528720473949781229575396836284131025096228569709680121078553267608826349387532119153932049217376580717466974698069416791633304172777318774934380347909906727263293892128895694129818701417824443571526292562481549988960553607505612900090425825630923516814805025427979127458110262073306290041755973295970755374892541097013952747559553755954392752135605662613497626457557161046511371295557171846736069157657816019076993566628680772364077119861528438213666602601430566682833936957966490467613104487343371262443475135539438762416621329672807710490923054804927391318478660685953754259213992588072765728216909376564747819690027063255735747427625850004846432465834310043588068673160404200619906191109028244800688810865174683581981350568390889707658449955047929510518779273880584933200689648026143948272472730497609685835509349642314196458289248900086223496357826708209580337417482630360115246991915374961479508908759500637576872209149975013978522189910844191644756359752781745779470197539015401861495804143213658394584420016103306400132288772418939980888472760909868123867856514365010614731540825239104872277257515442295279972724422252416766696936859957149051960900299723508672412058224709154831535083071219200681649372697065010440532911516173265744682717142408114749346379825177890505660519624179957451251783830701189318249080585603747127079868693888294384174985146994828840338293127348149478238644516789069867093187852241161236407429995311658899120732587624181954759096238874890306824985275752219696051099623313853024722200149111838126226464356493975808740495028873950630585698842566604372192937857560098332272070338866605119901048475036852057431549505747256750857308810990131301957883726398096523812391959749508501494836453761648446082175613473069537778087451614305299208594235682169632238761665532740289813708214621323875156861329621750094563084139502718545630747035926257548531574819858809882832825552845911036412769165252548285320264238106124384941354329235477970092260294467818605209579173449131855772075083425212052896066380662413489361537308918662687883090337344657249287993734835704866087766871124271327665370293177926155097199138346176923966172811476930291165331416406879245502555273413201097101737133844964237508234904291254475326321729043887980839564736666916138054330018059081068828002715781562954416869702990482174866448591024829336332375615566210139179080458341828328957789338904249227397686385686721974053609650300516344988429444317686242863394819991319460293814762917665974684327460343091803005267504011143001086651164290492882859405738755450311288605127295964713939958226109084817690854377243018201595483226998691299660933450898201668449611359832728446283659730743125859458358424524519619453301540007741499846440697613882897107132297812201721641937822829435238231336697576910587264936121504436857019811641212316381018279686489085713851793344659033214957336644028050074696834045635978679551632983143491406865630548464281766138338369765247559184757072327200314265635575704969107093217509909581964275789087078099500662041566953669620082020318719218336633000833345299130535836455256496394886231780474686021012672011304877434260732996909635413383631266037812327350285642285781068718064507329725721509322139766317987118425662717092790015769974767062117970491642674404545778002446686918306450345052602366280796692606546786163847523681587989011017819716908607405062739086696944724371108125319425280071883990350588941040908447911684983445702367845173682675032629475333850319274324768688264774909565634618600283130308463956927135843837723022593906396978241561768286278987036446222328640623151625148153513822776863549363949007478058146066369643226972211580998385525637697946043582095970237394191472742958331272076957278678493718368835174581595671895749696866188462584256120861002389239846751137220015362042154097645049031934623989631468035088629362905028230871709864573732289785283621222845956660447793111282468692126541486059674342842758427574113593411338669558463730538783181235290389161216937875925070133218216238402540960764169138064187983977581374425176002372960997820465589740108539518841549620025109400806572143155163221082283903875405763760031282091464675557690097734208687864312468039888510671046464105763355436824944666795473997372746654866450181618998488688811874830626332528092214072043301570385096193820351083703858423515331186618493976122125426564809073353545716222763383339969814443373367136012325301563881103378667704303897667004361401539441724962086152537558293839123508323772310964683516301955537632441060288691174777392013276029929831405010320929738018315444552322785779623789668886645606378265668926668981582091431789488951056846247772591187035795652621443229994134477898453931694505288873539196012226328115231556021180446517502430520005681816986594078088517797404558924275966304671710642132206041858133247854616124510634718475094266552214020461880320443505041407227169625056681288717453924837342548524268388416378802207820468063748714117565423585699104279633528300260763813480676189009651557278531103162675488910085392876383665930191981920283310041395320421202030509000069284493227950965687473830158863888358219151187730068025646628018671809596804415931292100082681735854098217396289038323270218465068811100409718763410699699973756179073554730849853897776848691568926663754712102039844751251666503340243281861812753141779985358585245503352726348100242558933666866642102187640190174380112181463880394279190992382673040127490553333813505631185179057409641881785822884022407586304165558213484219285315620481435509148073696995338533037880519110432793229363679306285378824845449810083657881838576905964800321503337676546455693734927432558193834849559227268687173561423928925249980859775792651305650522844320239631300375413999400345934538285532320196286154005839972324776696088396985688434865144445463548099008530271724459265568978353994916626152027204170342558547960406465070334365391441271477630361328069219384569410570524128244361458973667261014261361446571047110540244947443764258735450471983097650941313148851288738212323087885135999283431040214966167627430753625820403425565018433860635943968461233824848320398989717891212092893586642149519314397969281845394506907633550747930781130204859332863799818464904205252901555379130363355848057235184137980123711119788935336882168507884995558983727890320394302626983797503689010517317084766757022569535811810503402921834925442854114785751189751360551112955231013053014066206765851500573488240197472491141047777904248839785672173366250825427233934354579970139664661815675427834477296989740652618233603557319972706882353775376609063528715393365400900691109220611956351177472862020593464509580059849369675446195787290075577109830007753769749230560359096994940915424672276894520818812528174846813172208086596083069845332525445996615932476483704784960109682323026229395321538383259486008843463113657560112937689484944034917582945589429117839889537253185663832883280890294187084254982622136205561737552709100539992473404441312780170929178092503871672673410380404180341705659908934449944231253823828253703684592163740370346858448648415014054665739480529759859221998900604206280789782757083967466407866392595317706192682737572166923886905002526383598520293539008190033798472333629830599595395562558032704595388506639604088216537076502880898818858899742126540455189466419537324473011401332809188514001704787495256125879548631399452668378644833859006741700786917791026259702538549796280959555105570165230039064537413385279621470090640770383329428777692395720467426777470222024758136790174427481598858425575839936147025967592596291136151646911875406804452499842715619318127389878377108356534065051259348654409424482096456949165447346925759512606746758109787245540639419322741766673369800781880024760342368357726017685559052171319117378069941932139134466169618325415946026285958024559505551775261560031524341732910640920193899497177499938227696261061634135215035922810981587559759194573556241799398912905999959499961934330843632082017341271024241182197029196074667314317783689101854716165211509627207636670607215169065577947715351275673045746851799225492286099045939382159006754799506976085541748670443728182410047262051251678559322838483371335761661828073255808532573162883443533650419597605911932886845570945721369028508406155347772604420339513224997242718920095279608600774676244123692697794809371422578930667975918712371351130126906197347632752404004256357213501252402231854638816540212052938206626116094696085408126224832393513945473364721308126516061159257556167283680018908441476097838262297895802404567722638595611047780594508062464694105399807676387992646501661031105776840450545776450157149621665152699110224724828057330669857830527895974782970701642034274126166474789494817170242916933699941811521120366523437665736291531501087629665280749761057130898733725344975795192838855250037430916550483446124335175298273008298066462963226174294644415244857953555155756877288801814310535688034191691601901855477076183314870229859966816267162610331033724397316164556305545070613564987190993332766561738329953584509648683417108053234813820794307932697481053080153190638062016990569255340864078222854068793873522593729129125959377975114908248277033555460099482974209680358886362670683072004408628717598479550077223791697847379988396262172129046596144402591718435224995349339031862150195979521126453230235394323060011792496772524000461260573057284182540078951691297818409680788470495095019495598088690601062595611682989808465089850041901310927644251427258005083579256719299457643337929370529938412668724787331603624868583978173582191441811668263028655657126745679228146880892555571042004722628232553042950758245837098427127408447747563523799318044314558589246049471074701022752619945328562016005598236384648483309403887429409146402761141467881796791346240527632071880932831706699696172762143803593066307011258471181023831353603506184537732776352564933434372554550077390167208247278285327417376354485449712023110921942274798909045548853435690292324301853969871902721260873645092512460506317421302051754276580303590149675999199241927120738032522258957599315014964968968619231000489768033008369786011026933793591036444294401244396550442290808182783259747329132019971611555140205889907629412846713039159217456329014877232551686090941579072107902842288380395789373838899818155567924335593710936337096014433168688441588169336390830076589759625714152356434777847040153457870460355761861253277335959132313712441491850761670880836011230581349386093228267770152630530362513225747815274457139298220952488959197452052655236322441211526205581763913717698992979837170488320463502024160841551150902623553007418103566527358076258781529169387995716876812075919106870870883814947569661808544710517494771254452041145177516217192275513765682278274630021947897427373544228970809349191999369389835755474719059242821473296055474152972987905800163637990230271387943046703940699504874727854392326306483124631551421374135334095142311920420602854521321253216795778747740579662538923140604025433192918205455790850657232061314209609216704412078324275522341307393376369103377158777806017618479420158425086778290727070783194766843820728935611494030706971680042198515230703409964356118913201760442569515776247818864956457190974124737734469972239057469796702524951913671375352109723587842991368094677181856167662354380626299015909650279759551339111416871046290035360098907179027695535652722989377052767758555956647525499274952986604871127910002416913217254021765608157431632144496512944330552113915812240927280620900402104169517240498387994626861373284680271240806618546467078289055444524629027749330472697122863569681510291768142647136816122598347383722055303854487167761292948686503402804576538973635197859537586962465850673433703416001419673041862872907425222535421634677006190405769316189653291039607571051531412145434840940297311838554922778659550878314689186939548109133055096468324394020478432612709224105353606227849892588063718410920105425245880762668263359591792782459942685492443593994758841309693743582153774993415493819929839357811141437309067100831320040185432108449289383892919978830061239409003487027177454793126462299294281393288809613640135737690492458219285472518636499739910161802373419238343976764396501548321202924232569598136632533484181316822384636987873817398431639983437236816478605872841762744929350819557086977603844750458172993447320381965942766867457433149128151526301669783729718462062058907049414773806188242333538932896871205392485651387291106098365838759194091981252805425048602375825787014883378304662899786750690056545619252918244112233931779888981669540586801521788428505811798934608120235791392219002703391145312517598162614514985949398935266313682440211345586865556148029785307645149230125563911366578122902758325125370518995970164808156533195112461396420794655138872090267176637030329300043139786245486955030954465878998567803137525622457861080982033068316001086488266425019463463055713079113537843757016011650677589751467555803805949137385654271603212184974076500526992051780854391424608849678677169391745949651256748735494848221654238084881400248582385206438705688603910276693815787373640297429399719401315228396030223223336051362419941727937258663091611228733764199517173690597150937941483466939644413673939389060380682304396955200657029894201508521771814918255452561543033106022402647716868459409375607425828561664656605093931349710416319989658275148652599058002029667150134487460663396621133229496035157019097519028187860842291859779759793711052016048818958402472154656345756628998451054835039570438409187431385446683324031511175124033380594344482806341094961769882683922388400399928300906779764706201813451598140578617300713013041019690085987596187682652550134600661264722816237083407862757159860511719625130870894212201879586711646522164040193413853414681046022111901252584817874145953842460752535892481305330519281563745094153771912458402284881149887344817912891002667870964281872276682376617349644331505003768190521052618254749664769935974826820570657328584866496203591663978152207616146982686049646711449312825607667921656310371772914357168715211517681382011369171868633731357508953744343572326931462248625018047363068134795953858983487077154437869105934154278737438361872123945366123880989269193461839458961411999321108443506017000376642443918610943434967732780966015372132885570251650541461805719888845642766669236885754733501087807674174241544541066398929924215311875553146038774580827505018309103799805229176174264894809686066929124012184429981285221515888430274704465300745464543023200315689574494917666949762777563147643312412374929529672990126661585384846823853108697506435421806174305334975821203910168154068178453748247584252049616414964519765512068318039231040381360301993264945962443744745759426817838537544665385808391685197296748007445945857775479555653466251340011168945491949220303296506877746518848599295326297423108533058985944037227462300960485180790682696657367014340605181546772373232551292731090961787580951322552544701537912573262110268705747365977890087650659062042316353630398522731630431139649099297018880691362706517035075050913227960836709785681922685460766882845801176781447155982787750166620859427984904480296531181964358824852931737644406713982878389444389752864372007739600999097002979742701679290466502489373611339592686471646146259851743536171561724397256058363617221117573394603189363430095547615607114898792957353328184994402253919666853098488300464971596365165940893930728684153983680326943030674460762997142216777967723854803259434940540564400123696477093502371926943663619514936426305177057314173922585881122912041882012972017019608683087441092610876382052580620578747871689197744394616531723523882649312254978668001082085561415160233449955085273715286208530653307270673793667194431523010556234016671658477834918203937753596068382268370042849354132263851083722640663582722618679187046672729740617753955111989970576988980215085752922247739436164157507189113364898139003349047849086585803945821594343679927574417279470623273243944416853946118742643454460426477084650999054308907275194721019688551461908508198830474693839640695646439658842036865325265997018885635820050879929446189880389333722819910776180618634667999215248223207903744932068010047107193335169453495394512126606680575551269759187711486448721280561128517347106249434207972143476893700473827644214336335765553601424475334954157898123613058634598892252891130408850989972114791469003250975664022737571176679367115504717920476609564652283949899276323027588461608816453893058284425590094903416827074156242585278317121897454317738765129741672693242331105414704478734347692510346379922785898646522271746768881801047168589848462592608263434873891434337670274439988846803602197780688712657240880630274089146344893227398916234262140149214183579463170590984942086867942191381702731899965481062677393982712807903640350594353823203369087189280806855884596342765756559162876075304069232893218115745267210792089487017548841363122599360435815420081459055101986682974644917519594550815985048634971132313479187293564954475318293506925000915071715149803961912094886565953859906136952512568131148602367739091445429774398640197931233208771871049149945927545646792742818172050699268907907910742096399481143740458266040460549005711940737846665799907984950351101648593005281755647718447165428358593048447444231374355906189577486762087806841687008587238537530951817983624430910598091834311988905068168555962986950482099885935775316530110243084692217494439183154109510576476547159696127181970217986682478107758345420208877968318929875233305490439127493786845049077203775445036906655406757695205959835017146157692842532515573394099711386340501151008162418343209671656944290679569312625694511354119041684127455534383664652431075113764298521210824238320380259927046557889908832598285610449705864112093532841293884868422918926370464759493127835736358655109341360282589092143137794791885365895151072037318092407265548926432907570358902810885778623071124125707662393693366925298692248778898679187931096032287124694176369523833132623587625015308940711237203312977903344201912712940571686298874117216002561967415865268277235916559915553676616750885192543336210869036201776591817674157997953551382251578009964501603680672347831041616954356101962358919916452415153983236457564653660688782599503975073074813754241982705421794246717949117572643770303224638348442619492169371370679727285550312284829782617206512051373650464205093225039992152017689840498956841944827047195961912655169613493545519001734052135170970402759567070094124803790035858609765442272801816751109337127336733109443733125235695222707056171805242322976092198403964505458779839471146754025633494745364887839771339703890318209682570118036397220987111600350332087211350468430351964408465731634358684398910683393927955283395111910870360451173974098880585949788273643179914742426161424302030722225213324516193268175454207799636038270257246756495750469879675951195862702340636845473288414374884963513128262683746505430574037175832430560787623433581902774388167448511530727710740967037749254073260174528127083693598387841429212625085365220774956758111705447127902274390463211746116317340543158187773182313132559794576749410431533510971341233260376057083152645412066410333566769477545031058419804959141905369559225365548496969160498740743699073342003906851605308890753253514067003185455284970228331710768233257166218645898480355068361943473488252457719534032199914216503956720533972676649535587659643870169617021765491700211528588530678272539227767220752765731023451260038971366234292018787948806230602986784908822591434064413872568412912528481783555022522395977000261119379776929096364185201041790637680219108881468347890222807820029166703068888229929362833096471408147028626053386184361433911065392373401036659944868286525458304953708903157350512771256754677019866816053770410861155454631372476985077556742872521072379365399291134797226425065790695598762321365203594175173265822720666569022263330791284816986883062082545551570167060068102716286269274448977782168254330472964268500654458782359577214264158363896110385191007823757283762547748290822039579462385382818906643678568420979124360865358274083441610277773162998293127389710683063694209046075731124326657990164103768735068992544953060816906189006070643294030417987797573176546895214172547039419764737972880325787270065574698807369242976464610994909040103727571493492936454182447790591651083974106014765108884881394194341688699993061137677925615184906831844452368191597778098811714635805537183080751646659191190054955360429339061025172240212121191986866429488746849252509072130027395433439705697918616121410377902639308098949182188115403109526606713034723731625382498311659317420992289076671858240982383392514909173594461557875488138259920270359193468604867973347844667497433951483055761176601162647188671774459141656398068528806121605413321657479882334554076781038744410197311821124814001090864110891350570312119349272172770596743642698275667762944456086913806021627000097752546343856035649745512189437173988659612590858541484028905281890161545822845092760768902716565854711047096063292153346568308678738270423393594982988998589166191726734168537065647456013454955345934644234859498499903397738693382137625475926122253278909584703219992954390594317207295585033549143271096861855826423430132736368336412513161692508062082796406968273970021235741814377894019957369346001821537936259315712075669911080189038396710961245665773965898299974533067664248806222633193783055245452815169075185526664774108996937858065200365131280294795439911894355624899976514463282188912517631939565758827868002560468371340862974353756176323432957773274188208824653891730334606456288100276118812025186477875231193362376029190273733730861704398207512185920606755531247540116691105837452248738247926638856811611264660024840475096061762136701725103581868133950933173536466938552651778998594678409598487851988627712057968778332572492922895613069006348784943842036484214907722443700427610057528245968606008003981950209642146859203688808900108682112681480172571665913783192247191875285076917453246221338347444252356386513842304755732824824461923605477326644694852320629787846673678552396193819815070413367082703531066314024324626296021485443133768716230631315981552736417390452942662685973210772419101514292460569921661480586533263041188055868136468332093805509744047437030168889413405323807439253960016716124398948579324249858676377102603082710511503737065628142189758421142831583452404610969063866462535605753632221335732510013022120503140470966634329145553745629766490026182832701800923989034622989486246213168595812715791499495012478917543826302138687386740304258971563804073396774878154897387818987262675497961641352504661907982261538410663060867670309158157074796519926102939330641423662942246940018782597849654274922170944426803388250006953234869876213357714033172424411749087051977769893373416799625242234130003311979951978287691493451084538309332117195495598462138582732187532451586613477090958047544430350807060002832016765325114865306570437763956571347927090106456931181988764677468678488352230088887518056685791015506423484758381679994007961702339457547400142151686669769506924358146630402781301867501764671289028207198282353345550272898734197739111275641942034748829164689074249943419864902342529627364683656762745066647566322192306983387127772731080056954283994959546186439359494566301091649392762533743139773411113784391381756637669666992926949740469500460439213627064502828703636907363513495510186441257749674434168366255975503508943536435997459662274784096049928747506562983358088201021398963877708088743525475586776235561977637498880957256206148033234287208049784794359435509896857482294883353814249884551632235579002923352807059811350716132920277786519873188977233089339071292197244836132615711026400897754275553418121576780470796940351677119357968734568137379154890363296842934720377422572785136342881105372361492274185307589895823951287227719179163302310065358079644918166506889526478703863764668018343329942551124387597831976703437737302374949888769639261329396188220652605665021465401260208711980440348708945463687517920358472402392689048820926412658660333953887123662612320710860743806026613791538350560407807248520855499938788597311195852050113482919654598141825570419684365654326348453291383009124749619348983724349580823971448789310995276167895412201811764917238115558558606136030541690596083486342678236367065785260821016013443379853529170570204116256754763263438680837282938551066717834116631690475952016908971087273032645050893724470175052042998570573387438947605273327695004422624064834401485701192348854527708766887770060794407665268065793805316030064472662132357950596578616505005100526982478180597648767662465722210984324640446423627036114971260475693203827598960906685114466513238173835395729007725339881137683630522614228895212256271481607639114470772357271116762094016808851740667707235618665369246408856490244520915149347027390765529266956389155519007932276566994649712311014404641543299459957918767819538400047916839004292469419849603669458469160670379873158738152568388441751291785095842616333089205759110063858222991129402024336059930027566066178518413595943854934604977536176968062343492982162271256036852679219467921068891333323245926854849724317581694580477741365398224486267420734505025776332836444857399672180142464290457168150186852663598593142780590640979985558093519921701420720039613510367348614642126152795584431222818086371001938713523000338475271507400643089686434152649699748334550926123402147402590413555493304706379828478575934226369823851007684640915042160206063076173644664493475617558647461397628180333523305225882573610662794223345320657114940088971467938962793243859171826418245471910608386450174850615268641105651146031700974793047948010963832812433755143916353365083006372305786025207704229886440861389294009276104230653896002136350921616157518215978634531138701444870756947469471810524569100671932241121867086214204003207314495528166942902331718004033099078286061636797924165298911702100219443072971825254011599367855858096147570219020712462451420895552241534585307476096640429574429658167991030364929609417310144635086176471919678065910116366994433633723709099357817975854517007136755518680840716233269214052948544512807663567334627103606266324468328511825922482948158023036795738508591657566192502855120340567569609436491381872133030737392328003326873658863642115462508098474344687682359643015188388620372109634742548780363643720402346596207658875332324131290277370972118640364285168189071138111225890783577637972116519430332127304224916155615835111165684383815626640540145801128711900775337306338172450553204065797675928818295526488256389429447161764520974895950319939442382766498616781138342104305953840177995011814049526578751330265290938449148045246039510664972735969073684065930425378093765859028197118536192988486583447847012508692195837457537386641898786615482100156548287424970139833074708525079535824575684205744757166829385575833171283445108456672279302124477568723277971498573121113683237422558266636698325997452254400184673493606217785175514188277338021322835795762238936925041071861549373784472385081491518813018058529505845901937623205656822022514861788981011528820370069069150650940953322524478923765139482078639547824162813730863849352831938211305539881755370258275032347267541711393746636995272769218855505955501926868882156940880782261494385699661990479358023060932281737330177819099757612950279791105547179828837933048954747508695529058523290907524666754689055930711277936645952582994832267329931608166948065413477791555597077165244496510102413415256934987563751137205713718041643697717056276960832355684585835420206290331931523669147965891605895919871379683354515846858195362621148077005417619117759541720905705582163886159664175045174945206575962971341474122729067475113814984868460131057894330498335931153102282814482765149840106602208277587988745675349750959649889204473085290022992041993491518362576955300771857966168161951829263081543132366450584186215633980084675062932294904972337547117867651803109499195159192779918820512153396491404281242444666905991269400689821854656156998797020340992804624633114980569075257018963529995460072298723672514116508133498387009283667573622351128626284603840929576280558259599238851884881217635816059443891242364830733543891421307288840321767780078800368172049581107397449465752791137741164648244167423543082750335614492274854464570404221038125931470715924770803119827659873511165287285137888105887398481054605837002398077588500559549097604066949220568096531753746501279385491514319497368557247518107103379506338607182531445097624577825030672209107264461156734755959540647976916400405000181171317460917734496605683583020626202026865673570619913030601905668794880775984240494620600073820585056461759254319366914927170831049294696741334084517036373473081505212875946880357322725987859849236043183313083988909982703967194413329317028210547675304221461257954539274795935023713621715669976812424487044831901687903785156206614639886838696779230320800033785695133744637709079483359077204351480655329731792056303758590073626262096751731132129067599240180981658290532497517714061398569954831375534447135775178014265480608323571406422305418193242496645483383328731180173741105303190194773896407823762839149591859690323228221425184944943852562432941312676124064304871811378886178395066987879913129742168793251312724007821319146632848938659192581658731034880451299097651689668559546596781056959906941296339166500543759806844499539555226841113365282615719152247539563539134987219043886800020173299997287595090985511450779568509884879065204771904838550748812669550932272206111212050326978311715986911193957106591992780627158109918616732781318758082822247753514774029046405889400875957490664202949870096222506605507694653563389727118330964028974582532755302935476573813793564014988399588869411060874972203905216793850004237461972642283328260335502347763254159024166643479836828532705944946220415826444478508243150834712073181037929798524684334359811237894965356428063238899254211761083856506010107677905432727122099395811288866498746903197495899433967427145068362814241636722936385626946614229577116253730401071923645307281066706571588373318304659593804276897246698474270413566848905232808091856673150336641878370562406256380295404467606282988336102708314388422925843026772421100885211619833108927738901774083419616439506988505454679620967886614129592049425798654602526215118851947083347179827659646042938381033106585166873879326005480592351583405853351011487596846290735181059603681097216656453976594620580139182692433706601407713622730895596391571053651910321924965201800739771675672346700803676971018254149593737641268903851411890996939632646662882480925024867225605990508471365094147826686162051737749558767793671895119891026524840048974735436700863330935291326264221365363115316395733044537590808170537942432378427343237023152299015254336260139797755238683992924873017393408345044187885830018319680911464926210754913693323410658347975380362933423952812683784238981871286483476848040435684351203689505449142141785432513130761158471100899563243315168605447795439079951283937414469971658267149885846521914373845584534145393582138699072057646367750658082741639080105709404990589240219509024262015974000505725229157256167905431992162514429757560198741239713383786992083845569731214160722100206380276215752473054570986312818230389109992839143481212250211137906975362046357215972885864579775227452306236907550361763643206896172816940034071343034879335783234252141178444774634787010943624587554503197268861887503345726882414864663825573921598043657358557626296882479167727688579033023358243513537724194360313102713777899933722077541431131850663497108519587894311577819448470756309084203515952100235957201361533349478559175441371224417302355678666612403081174676483242578623902258046571452238323968746129021464385794665923264988442414335402458276830828844049723811578804975078053987287075334535714747331755389347212574062794900538689761822798797910477964241474530129443533905326808239877029649639735098997363056763073584150457060085394082404599541617539731744771080770923022225962958700677871876680799068608860808909919687167063906268624509237404023966028324026763163556400297928713858192374092241111765455346497643722846732110096892600786713395643887165508133626101886049420237027316119535065995674622546180843908684537105517737383015203123630606406902054677071378164707522515512943893252989153024143724952997586292504751965451516445991155608105910928996096981907336283534349258794704956745048973481454284354786815636863328216804596681223660998592118608255170960401388092776828271162528277045128326385450247173418081815090911266835445974708672487508169726318214240710857639529174863809542102570011088522163932952358152425878648233266200458414465407717511343835319289457532025035111891546113897209040959715434661506815168146223047592183794244862185597241824627528597875321520733585837109732918786397745084820995646122158393892676044719589442284484903125670653524185231111620526181751453180321240191750070084028572946190719899295193650291400918878789608375346843025500810812529844269562333829900586672302267002630655661640778899360912410533677614767191199440451465184891452390617157181137651187688953996444941496913741149963140880014889157179870206913898939799515738811736836511610164085944396177408005539895346199133162257877584838418117335555818491952829390219763909988082637863155205075270448587927671693389771490211805907882847111173525097579653896027644430520919585737370430190995785432500741316369411711765261752221469882172107166297920076094146500722653696445142374846778222122906596147941221603708728106594276764510238228429782049610608496696269379803575186444815117924928457377554024260042558285502120940477213118767276439640570481580617362326462091387330059521234554514475720709037203066769449755905352299644877310177798678567443123650177609429125948544229569280765838132410447396151279806213438499912364590965351377407087755715718595178786333062082367613276219904167647939603113478562764132753277004069975324847582536145579891675269297132021613241126703757673848310572655530547002428343015536829636532333755841326132096405669184951025347995300869366115358044652826464626871877857654491996438445929483009369772369311138252123291854658701401945427979732198180760301075404295457779811203472209505848595935332812951808999360041079854825960050448617548251210642390139226794590381256129079393922759767233556755651996414890285449938473575185926864101460053534102959087084846390351136690628705022477526252844477568026209783162983028143571538318920362003622892778917287198815294817092691002937605999856929795943553855540354532077089091884174721734221960529323133821102149051597274714790542674782748723435603117458904246508649821808270067174859078435787555040356168228268353327305989133422240899233765983620627837494835714254044829394969932433279439134556939261233672729803997100092190273244610102274758945446843596183108714480482410987121511286661454205682423016215409848552730406201196520923199532183565835242129957910514176176315409474322815552555237129121642841901780909601593308552944859198915028430830941338007465510944219062068138654229497494671293751386553134776334781273161972792461620597406868135932564577214451957794230231652944941293286457695287547719339494631184017451945958713644036883716005644639241803938131359858637761246106959286017631368148022487950690752415228627685490530170689022889360731563125428163581928645551079812743862473793098169594422132613068134375943999095919178421093663529877445498680307647358073367698001208089367324511651516977085708580306332274253949002417634466000319998562874054799885155523785674469562942247973680851209656921379031885478097323349905281530544770611988894501452054136596711230243365762432014975370876887068906145737369687714231056618901154830446585655838891408547762203307057589612842847887492368740796005003097576597704389700840570760664772636384944485744783819469280943258811955238896577766477233204030124296391821871935721485842356236457494591573985241174740060995273172617714482504591060258703461751813987764397863155782231094867059378840930025149799874891640690928510690403565641424745769779988967763696586303666430150801878677227449176602472758508849705752302472789058309604057864764731929330055181579154044293988547898401630855532212724777072934966321830173031507583928995534192240143777106206322040234778020848971568699037005354405617946215911986267546109781391771850249753831110974551406615928353905801118983949289794086379975694461302341806338758542377783733719865479345043520542079455607435046275167891847980098765045825236376907198722892497066932296626660825093100299355949962004364525163305264166736037039265684773437509408935074391843788630405746239230980079562482769286655219404286297053298021468057643470789550156848647405109042330531412338275962553445551553566141896497821452046190236362309119444488800714043900221521677268924282449400229497531322912954668747926354014173231836809364673649738144446800667391586615414952480593934589530616568549497123664278174677989228513984073601849241241633167348347215251908543171357095235640930153015817534595431307227959140552756455327271177929040516302847980925849191377613747807804267130534415516740669785342868319411914501724593450693017813673919306957858528091036037361476897285896718398293692188162978314627737492754330286086812350689410276832202835756277353141284704573647196877835706567342687066371257271927939431230958279510003289109596321280501797548577728079487322420844837519772961876987995585141153559057684807902601054967359075145612907995988302912821081014361009096135585038341970787247206662456230611648187115271830232785575974660667164676442079440195820322240044255307544639759090364627994549550367134957963104564854048171272292004473967165996447438290753355564182711665246403754691825002549896318124303598857264027724142990225132790340755343175404816627078517695867475373866299105079164031110754120643450932840638566677037157841979792494186513034810515183221197656101595228843629194785139046527589523986454045015445179406688687890816748162483432933463346139345030149116732415570492936273302862143888101726214027990893818180850643403611610237174030009612281247053487969763757818867897216383224376290093166395112854125214558915125079056740874372225506609535738450148036848022781395150439390964040995764376489410683044881685636103259367033294841001557353199198354092386406279066779189260601777745344200163821361148703345619991023700358914102477165647615933999810925615040762822642597315985172377939255198655637624886850914972904143496505130949394084985217092304144163862881053669761624381998735432395658506353442274938098747799926396698362214442007432986144820329144801795822417564790819984755510988558405770381297256901470718700102337744454691699867651804501741875239677713708849118635897946422928107350934270532987451781626098550084231868347901106889033528901818743965757186229005259900897658478117303768658631881895441731643042012259352276982325229591193303958880313015635796118904263830589074131501981435896738279900032910639561956837469302638397081380829441969745768025404820281160008575576880541775353227847218589994997410505101504460682077851541575978649934170236942725435762658124484860617266825627348554784678228814061465356592250423687335406572000701665892680329463828554087399814161804806733766880707413850209414629977526409770044822027645202657314130824933092970905624500865859830129589154378983770917563933353135890135935455562888624448902467787934237699265902870494689917947215198272399030776901283447566310857943927121976731586129866405520036671486685027238316718084490010811363728918647224216581220486800920269356993998939716505562480035757544143352138791139995357168641590507615508693929493510113009775332701221140881515792523611538787293392534187563114274013007525219224649100611919700022931339457995144052401031574025860032627752899192593612875579981586212978625208177343503661046434700480555675046194437191769377800172814896558070791907145730060290774729437721122351833321270051570011248415117486284716071052168076612554132184325220075449998700405603591741358279945676695597592003834415189762877656163477261510954735992985327321121874279177599089405155761248254438936585349217758832903819358633046692890219651996550712876078014728835737309425405287223464754655307296551888535406803152527663953513812566018334057872998967062515192052395276822091888603155237658799606682270226215678181419962174038462509835772192820900105624778601141189685544803706851779214218994791069350118921236246555408810275918962819533674186811256184097239459572624662766714596056265122841804117257868771873759065487635699134302093661524179578274621773147446900898976446822398822105485550318503909288792675165150949472984457176314907174640916850743212794796774496608734151808993700201542928102308238321477902572975474562412955598547308095324893085698392802647373638572976026144740555539754275617194382567219706421682508245052503998855135810176495171753791239172740716599835400532248610990671572335827163955535792947391118968041427720795944032624165302863075640511559089056944602405058848501467001831553628661342689469511537793632289552479679953820731246070380591464058343166096419906471365268784785399257993293837620968882920058528962719791914073862389181555503669677554070663358419618271295810795754864038950621231294368457215641049868118397813245233809836350422433626354476427755898492966743675562592214384591066068973024784904201102131505985769680323939934254426458549517461158061763620309798484043978274593245445711939002499118886172251204468502153317279593604872705154835384169852452655077110854765675720133366330897548783122288400436036753604913031684958255078072919805164392187815089179305106294312279030673720600897055276605297195369518508719366468982813409972050977797544316290707810229149223763848383514418086516761826244867030543674526029357071035988372099669202093149275919157660418519262102290589907097223172849188442779731986871602874186547309117552529387656628218219072680481636292890438978938057519649679937757817064313314746120062861375152669383144413580116255024727936668321340602238164295099083782544592004884655271352391324197887034197381562158952332556159198243589526424436253167517736768562376236868364039455563277013307760235289121786645837822762917548561654669161664979975538490346180569356028643337961207887315066556905258101798341526820708883385144105757283122151601595114292067484895042403125428107689527821550778000339995222117703646802524501197542471914164470442482111541631410536396648560726243202844312215480248682951970518552555100158833509468771060141717675297788790859348463560440233182170199942409750366033939555808147501177230000518321137675705267952983977223596834319000087688031746795272353829203111271678330838397531165411884355968766516920768961178615196345155574999849936704325577393078475445532361985982514271367716165392000335516644914543318954973324379758859850421513848815399067893754199022121108012739441726903861262517074813245506267074760157723921426055881186405528234121977209349430777430249454011600852500339804038757147495758616918592688004382496108313876236107128927808293620572389703778446751911690450642593121514555399952671493765419201633273808728739434300093420349827055400039186335900605325572405525250790714381453550005927276459031658731531798627912830397704792891517631309536211467047405951271702505158601062332348798714444560028458950192018312283687059564066080368985616632433283785437810242826568745162029799055654817205210166390255687384226834790584748175758984728353856610586586945123116011956007740499413036867398450550038778046411995226879978250468137051464704880423927150610838454907214230783988784312447130612633471543684957040614249243474631527770698126992210712746423887346431785689130457021915601779733725106682983518555864764075373400740515243956919165218452328137572285767113926838789201414689533659592026823268059129987073360206832099641984359636485231916957514758561853450474420466507209380712558417883765354247418298284852957326625565487903774673614149823690231987809864485429357392448902924925751820119018597955595234697911305026296337715314089428356492290703385223680340998054044071918777258439671566896770253633981579257792953811919278931327966181329414328427308439405451512507080837584788167275623207834632692001750517592356410240354061522850547550745687023346578693234679424766369578665250791025264382768729479776259233489613897097062320306928367243753101760650295829760969101216082338433970290543061526630081750016316071322962135569281111981776194798953332816548167854489248372889095151686772933063453468994802244997825007286531507711769205702749545637080753490720547903001555398681803975343250606916840388154465845377277220099759118555892481222254407561999715258151105739664042415436573768524407934371697176716762505679591548081047025573761249607696282033704530351560201732464450195214703685765257853357096122590792470254817635635434661536092711133212775605302213775861706482608170429628836886213743433100439482669033769659324191941020633945056803821685039962918239559848324278208450576347351680987810245286451700087633939768887167001927103321535717489525338873465088646433332662331755303288803648845951556164694233538938155075210567638440999180095913781070097574893029983044998895239196024331767616212711088918900585033314324166055127166271737084249899197035999306260234911573106079323207367972811029410201551908338387810979615323546026564660516699142573170159964386564424824221991310740932280340693081604605082537023107457280265974262352906627931116242952233600040253154409158617246714160555921785108116387677479386044733509005090333749747478644630275472453228162295658411688822482650021531140246245882378412028253195156272775228800509619437108491933826731913486822724209619886047836796447492814382083980244388018546476101879243441855873725178616316485871095119675335144000525655659226173358770398502642691576642658592325916703019643797537871084199663348112807692988627365734864979910485018211062434638793503466788766311820155728481166761285004087544693887996572948094384845371801242241209716662679584625640318974290529339917154716079466117120155282514955368157256764899247613834437829227476272620111376779769448394153740192437819900552287423206820730626837656244995155407866282980720058615769272379600352851500339612604895628046018345896045992356228333140701809085144139416540578045160728113376438130786588257438172230855631929732872985146641967524230681763678720372471689959917804912782846392441718152104536079688790289540395579263256518807856478758994320111854132700257711129156402362882797569767359088823843533929110012099084001943066827194712626933195801265663129028958094728569663924123442719231394512314590547757702945484213782755263018068814566288053491896780150969698167104215836031027796235602920330516370471848758396860621471186379742379656751604255118921966077933336626573117623780066482821181724326104577479208377242791493375110305565474301416801453015268484123944491037481997182088593864868058908715261525028322939974707647262402834994002614743470541281369984908898453591287878532266008805109698002956203022288736798739116418837772411912514677835181565145431583880723173059800218023958036248996333233692171494185147382991317770685161295266923320421911793639677469325031709589825205778532596098709919159829373535813232308300336965635575521590632185960992033347288812482364241118392146716579478640525743437641495472578437101285319378719604091075204257750213994349271784031220975257056224076992230572046269935684711991451202590860638765708098355723030342082770985834361180153078229520860569914351957249921810824739141328835805507270445587147646666539350622348573701755655085645378039624046473517624816446349837674471131652834652239337357565403355240945273326244699003285320405422836420482966078452047650695405469100480901459338440713972923707817783667454115576709639842995811984086993008443884838884870900431326713927831880435887561297871662029337435174230416177349303330453449951416649976273652624924722843604197126009438681856461497289777901096855160266845781756076433491312001801362754815433798763447555993085304092363685505048067002814001859089361777121418493624444386164147881798024200001951818443006773698833530524079390909051796679282910023486049389805416868446170741729532796105976204977061060079090431481292764096974052184448296567145958007348322772358560304066431689272170398567604165508071062147366244614190867015451682847843833644526563326617597916606689765890205437557560462920539789647727119977995573838613969394908962129562865945188797301529092486441006011802696403545328385696628067044116385543857283832178312557530389696862464052494369416071719166538669664098320591444283000272860155605986386873166884315157732927618239273336273747900225988278781464612131321061595235953136869749182532911331451776358187258939247140698260538867762160634692822882369518000451351310728832942170477594758983080036737903630737450655244294112694552171180773611903865543959503458991718621947094367097339168913833551467766004924865984899420851303868787390774391509805883837363200517800876657913048760200506524417228961896984403584573640279418957296416801426877715750052313321554086704242068421885429560730338866869260153891312344905511210956470694841521771727855696520737449175576474889344323209161865621427429179424359194503515450463184801043520965928580281654433218167500382053720419613993539961183607768909939737756229653270688518775561668648464040400011498741329601586756106294455892380121495125956164923861855317129802180781666116199432834487136597756810405748249517008930879245128223757193427281246296034862319598340756473212166573788845974956545947164914696965959602778194368005546447333109379624644886288024230124387326649994214606879093558179236496628681741571973351791626176416033064436931647563735260347611832888298196473812096537621227570668208298949389514052006539352139460759826290412703683748555526049403558571798461630029780970134418187113383513307010390869628401685561801370081718166906079813770234639629440676606171056159744494804149801023223783989455854385701587500870889365948576433505511248479253588284713060654238319148726020696804639789635256187485700588800718066737169364580481640519305654879483899769507480515243319105429390028934654407991592634996948842964575170234971654084835467629478703461890080473446161341014609853598197596859647991824860392510413855673044618399399208620309621963860339199227820440834084028381030205838517484931713513673076522453648858705929420408163521035043175834856437055880615622126364980639841080538544504223906579038827917762600190707161705185336902588974748547746968295867497243093843356334489748175821346518559373693404475929883454575267999337808801229703691134548805214994670677001029480335639764371824380558290874549566673415515771288899805468115029485067144086058046612029088549015002344576335054040564644466774347078938298402516490827404410217153049813566296940111933009628781210152725342422124042142115049524118491583241627975144653034479353666762015250683557015786956715457498729644469624527587036610067927988062054785607100723049822380874542261640758047248239094411561135006239303937419634816610016226703761327498969404186461833950055936309574240063796215295142212352053364365276957474996002251024934641103543915781289994353222897546561471592314858753970069039611156948798858248455781316375837754345419977793413711097193125305617460172384065813843895680067743125445045397026858519964518683762582648423837355429171692633230378219227901266812615615322503359964063585840131905261556176076440679309536879430991850028490248355737848201423889420530135450569517644561153923123257418560680126919658123086165400232263563572026424950440020628389550697860688515647491347286358476285172370391292841783809078636985625820046200659963810335261514685014558858026846003402348764708446407007065121698238824362145335696232357376788502317136579882598951286356112168353545960548775755335944966974720110309716124309160977265144085024643899294162398056944770002841081767513404378192832626315563943252028762485896513186038951289671576592202387751808959258063394492898058709608458462260591458798315113391978263600709044619025291615175773836068223503342414145687076399847532294320284671320614411191022374263389897187789975047884649593946428263672844439726531387576642623819507018543498854359828427659440341219284886855520412802646598075658493183397131324687664219812068577645482914638270942351774034533139906945068417858720933912495912821530255319965334009314235463148129624718940970337667511134395874901050135643211125238830193314645361122221105978159949465738768780343912257594079754967109935259417096407923990636945920038373139854905478002018431368905256940758082655042697109430479240432746432091208343809951130501878506917397481197634122561859055196208913375441975804676181155045324488834972504154363533455258051320835506529413710134655197574803923640570004242191502273640900563736537516706232338267351217759959470081285917347597083376178789327035872188167243555350924773663613028731308327042401697274259547635086966608528597580760127973465584332416289399757402010614897518487101226246995424239482443358217617826702217307426817630490625096994330168988884786582585679253804002522386630294027345409622374549227016693693932325453974353583646678468103418960218961065895112379079572892834815988935890537732500695595570670167804327975419915964363820280736775863507594652574225771159207745404940740287655164141894647911553588634493365747289895577698842155537624607179692895754147113848115070505271306534733552253261308836770840068957386348174801094248399181277612938347965839825859120796649982927844186714625892829265093434321161053908372261553914346766400778335175923748318744945509739802376116042750581605684910459069641916140378113300275451979801089479023739535057273257414839751818142235101496185490148711805478959526779764762563586965969912623077690705670388128867177125524331313405710309127304416556466674410472547380019900695124177026312058534729812016794228708027658335889352654436239334397736225518886403886315469283256454745249321959866770779495264939477474536848573699858392960010307799172865661283962416021558222551507609900334919095012227277855780062487381566554714926229905672526115516415016836072517730220508759944656962376410350195542674816733321548866051958499354836244486542611602611429456181194491493421564549764274682313781269637619698150409134781327604747441176796790393467339970498753235221387136613121794530682868215690745035065894680684251132794465323848162200539773811065484573954439764726760105575118061130845232841052583302823939292259680460538429200479900814489777623297165164946941155677486678780771551609814805745110087292200792352434762342292606659499614590131031435887585867450851579514120885843140207968473709540268421873453018460656849869427157721813726222443275865504178755805249586240669531145403013451201809426656952002979511810081971334807019076800685865798109595235971810113803083742730634443652479719279770212118849157048016328191684109305741749951169730721154228866231614186231159332671208874804102137579838079754278158494655640553278864440576702136469101152920624105254487242507254807001175248241491010047534407490431099462252544309374532569685780091113114194873931382384377155034822601997484872091163261382966871368375832190600300425734734999817634687044579955687561690343273855569658968281504313542215842410188052344675722921343488683970062076029289017702786392916717215430160611497441993734369804711007231254111018224701725957126058321816256869523472935608373433582901033499392632887050048630421353345548629686956820839427507297947679994063148031766526892332742790549860754759288127178368925550440459529098103790128455975525475681365062102438591700184196550961933935278707367357511802033029106076285704782215723024066794485663631942941059705167183641647724806072396348982074770695797102787776911818136597345875718950009166510291829842329476130110014326569320969038211697417080104905059472334527826577280497625578270974475066729439976604056374944087972652293494326250898169388822209024386485760219641235788255269014608773019305952333896155399268047905061889872811873018628754189940469042854496265817402334389846261373929343172715487177172357286264873189824036147365861241625102753811644707337160384277311758352601857307860178074053378929437366924915896101281597876433860181747216764320823547654023654044180843344882445186148665309411664810586918932784887031251097225000103003296943579010937630032988003102700483889007094365321896665396735446062283548375302954031252441611329205790682888077319641624480967732093658091205515347255924761508025813231271365385785045208335959284433784074538216543389617215335638491418655015309618801066282630062262685282266206798034745273065978301009655715306889758456892073814472196350876267260244508710285933071546694360095355377461265918946657516945530329477019364272123305743785187371280092448952441980662591920349504833543186990358311063014702800130523343895962603741542618106843152193973882631333042334343367757399074951730406447285552617607570524961948359571018731938042432661826582056225890324561790937051353899589109675974071074603380569505060197966186144254641623591143439557071149980910400116531066633638792020078038504451888194714714323810668549604013316968098635052859395247628612062974645227444454262750826605639348962932467680998340354950261019771368419287208426139535890398497126720926855722419713426338399953589566904433823318944054457354633355473622544958087341209010771871402217598417939726556963332775436572769283600195300433139215886282384581658262503070412263266980915189877094698062934817448274953241909003673755734289691817429338799627298164438841189632265188033804896060307539638280872185154019760664321278594854430120543337971675645584122378929985494526667777429178039344429635502867114525361368687325824162443051855291832666142792538951049513469053837076786461827458670256372756207325876942116601812246185598174394925868509411897686758692178836418556526564435786893307303342661769111809679478125013477162177338956290344339652605000589284356528493979928404769269354990012007186755349168870803358481093996567100679893755384653639960196448600905857846433366290269594060993175030658114387306596863754957589219085688746352436068058598406188478161630951878086848538125212288647600527396934167644625711800750926950879216115682961180132022167562791773986713878195050040138577934333222749156324092698124505542339022369254710698879736483165870538826276471202040393481065498655662585318741968635572239837153161729034061262218528898053103603805774332070314019539298554858416051027883383956690664051436560775602065944982329382954671925450443828303019995249072371511551425318314973958097304845885037059227411142162128632326119641777153970648097699795092722613376033380158411119465018632931271209616988434797152996546311845963336711411832341467252034343940194913887507779173391695740100891259768667532237982234083096032633731728567853935946185143618042451146089497007162800950341303030268605143621924822355980779521130154017381389147345944528964297979285174738277948186734531959074570381189593607812114192146762429529379140105141826415254856620841286888826878338241380453563011365313974585155716575840445808419605555298084858042789838130690100087983354515377179150387759511489365361947383275177099295139553526444321633013310426275568278039080302487024602489927747516561968879459446932819446572761757840383492844923837943149436251081866944924587066164358865399964848251908053789914762308531290993684354261355323272686227629288041977225644853705490816585108229136949785203474756764401623146980329497485734653708810623931137735881876955535133941623107961271622593603825990331394573588229387271214562513671196968500287176194682336379160488453078086995305672680656099350929942992464342532942656259126550773547373975192630233674119460592686383423740312719711465267238821054942880265384495175359768887972285209431199021469817364009576697602254703425684575722285443414782112503328598362719743022095624454041913919152177801138893176460986869574190542910843183632723662773750049321587828679361889450894248840373762204625474671379499545100716661012013689123793481643724497299116253063130805178512459229288276921820695377613902433178035003677549940189918150120086685277432587099110894321000575973560744703818189950546112723823459990012615477913806138156850616897743199557881068995586358657546526935788089514681096891381548601810290550444983080202683108503459554836348452241063497618750913467203510368984337378450787245211168978892865602503597709666402520162393880982457341516731345505760340232514984487011678760697366131879594953799621531837378566130722185077077355110504307126643320376981383497357501107331886368494393396936758601619602650820484083305057004870799685003605950661721578728230450893499051231315817909859377495545720038359965403615731668829508691485706726162454714113131874095785708502704623754439195544567957928121398973672106410886268716464687968770167260229141301450671480310013226559297547726019620553753590305075986446626054965911951927562607629904493771972041301459751512624245407949212401742153103826999801396535126540310511492215590480984699338921322009280200370721535317822344285197402045218693692414602559143182143972376730951097278548175792117213251558638544350350971531453451881165246850737248311939692465400071389395290381784352226077389785253121666647348608336781480655625316323675363443240577042989242923364903182267377177372030329544018901091817485736097949214198149753368789528740158727887334640250453793632464982304820057972343925837151978155601989481630652645510428496488628394786094744521696893950233317486578088666378611968751012600561095259207536162377107368681862472337146279416222408318399568122834131110645422176206443418157044795436070788253289689213858730915674453032033646136014960701556327914660490190171068303418272361524815447695629919733143218121448675681169378818525872252799582000133781207566280798426780086327964934631384880604326958049271035884160432875719415152253669260769004091454580387473741155830982843529543801852193538027878012413029680780581080090815776751675604936677925946836283517618746081156220195180853925802203971268293500773486221550875378387405496203810789360208522916239950539055129225471988772090606837287163428099588774564654584839887773521487045466418417478593176510278056057544921985004901674453745679196659653456243566471623582220513011701368183775632297462427376647682152931432647221848058591728031871009123395711015890893960664684660743660111968198879965638893839349415268727455029077700344553097825493859737169253548039860280482606664167309355876515837460031498683719891572009576574488707623987016106840732556295731280232061180657838797154889993174176753352456760725312143201094097676316879909333852541952783591461278296563295077994756082165180360755268533086297663298176725033007684330398660724846768104003224800692217031284927966067372995873503281896765116671428484596691178365358837240378118058901706025179409922129404222071830771979547050422608234846989419080187837085401092111612808536642503827139268669060596981656751434622234274485263163595387838699633415393021005006593783846709323355099477156181520888929391945971246234538968166666780781640112499069503421124689179305522655349648597408627168869063665146302739481341303366386801690436690595921397031742403330040430055212840472016684453084592260857489670087168783893449447307551309601559000110023740010017389955596620459689523058899747767731789803885479999470488940935123707487446188302372336918157330562666157060075099519322407969406680546659705666945897759507037728579447109978529424613169863708880900752755443397041267693619264404470523310883784232198774095050221763667314122333042318050954489827625939582264208551786319144901625458669197056337200112333564339003520991346299347493205464548572845174922677620251645223948010190277351396746977245418220589737454237495700061216528316352976004686029747926731551353278428786974736955823154788159272097559207198277202274044323235403337507930997603200367624893182509985100511841467233972962394129452447511230025794883969094593519259179817538483505278061257982541498965364673248045813095223906761930063328797113431875992341217416308030246746916157414984256751708000808497257686213881890547794390583460688526318427673350599967416162616840663403485421982481261426853219583784492093290506399990926773928350636736541400915440475275077704075410450999829294372037187316707914721222599820097635769638877126178331744840884124521705797892127015671989526472285593596275181809624383163365749860798442114675449748311094493850099827118517776965460193920927928026502104585861616393668497988400185193480771441143475729165011809645634343214332308202025231009228472934282791943897744500861937679176481504349967319420963145125456398758908555940364356326567764272363154115948377134915333634144206318986264993247774379890848894520680472955057202700517457132282723629404709353722436320085393890038313067881824174845685824631002327657642112293270267918309361861331590471881631054602915883201944115045431491858917207763229328183289492621476600826225685534317278011585220702050704214476787925698032589791766779057216589011847840835366889850326046528188617992879192368227604954000301895015967864778057925513145311684545077408956818989900688437143714614931326926397647856059742377357454226456773055171052570005260320428306258080796379071497249307214051664033620856018922368925695106507338779394722766571743620480756783180575283740571346754688942189933022610768040860487414325553077507899169318874856565817710606498047947081243859170670854240155087000762384262763955309851962816252269418826778208801691574550769602634048484055037252065210112174822251388358438262588499633475206309045014505349878440902013682550491073762081122435073748861860988487783469295121271275408241090268506228738710190537315362973204675658225830960307916273835303783245170343759216824965707156063141602944235788833545331341262483149167402520450528238010675889868462287042721686776730937987705737429663782201424894150640210284553904735427528456988335034764839207978665816608144742108640053949012470477988225183478920844945428089776658961360298346932074436117365512638916012065175841068735657808953081149367052058794098865738801228154022335912402748260600327228543974789598255745791231713782931142684874323559350804356519809606357351243635360354439539803672054805733231363810904935488857742363911564667900317208690376789375082492756697079549563988740138840444833963410188817144456594020533588735143631114354240433067960257985192009385754075027641207361104109981714967806890719270188150305088816337749939868838688217712259657451818840817027228873023364763688447860213429027738914705294941256834319855334727490404515300429284964934847296843902851636862124061277491135324327195515991730511260433377605973452982420437597038846277483859425988617209659969142053564520232644691917242209472723964974125427909851219460123001606817192329647986838706128128196727187506551213796116698506100420385109376867483083609297028928479385857590456734662615072502266448211730227183250721823506623920411600040201045484973644015540382370084078250360731261243887593908832356267193182003752179532883844618448093000051134392087481581346484548824386900015766089663582440078287656123219734712372206432627180624686866898761773874515506049180540494388402530356240458913958378370658662711290284334107536338958456522096561648010063852731634389567527373216367150805703036796239988489781032673304331850060149067294825348301684064259448425781915688874268015725416561395712518172589398877601341240365727273750085632715550944605907833639098265888220688183514662851071055978440303170910669986409075544946845933715085054154728527422807431332668321071284615967949708359240577206367277280146627366286740940281241320242740284012896382561770854712632393207400117875353094233637357787443829297131721766191841365652955683417348709201108977105662677633345250928607622746455694786146413998557433859056193281762165117114236869614736800244320631837683445072936070590900810771478571788890415803511586793605465872446770403221615953940010822002942003960782773385549859358556256964206704983054821759936100310109512020533909758090834607687528034657166229422910695748636599449830834436703803293866151073077994984393742213565894354349540874057684284701703784162775172036264367170202375743985955847123220025671638253707124167308396335413617196836886967081192851931717405779741230590790895085854847064069016080866380830044447328050715504531574240520527747368479776728317870895922610715496980280337639557986468807556486142119017820340659713022434628652092142114701837018909206330553155260568470672265031466863441141118980227013438147159606061004841096094193801375172570232027203562307509983062323323099958814451454230086211443518256380633675876474379180640610703228204587994191182053954767991852827229086583623101937011225607262943972591322906636779194477846203762667306034353695069675831753891950593842466778990500195636089204235070789811546838059246642308390355597719126812471211318357315078270886824562849376197775003569961685768792666147410750051664485420444132506828930254529938573404998598612856739538250298997545377146433752193037427575976338951077195027366678268398242240018367832439339519722750221039159993064518097372696044269736138325146757352257152922137023303485953619041920019724706187786216921437175187151137064424483204925433761810081258749417247196815375630840923124951989480976678349426256820422550669158102292871105535366326265684551115432469311200227520227365793133370545591079305207609256602147536970575166662397556000551900912455571116088268367073332712058838759733219481779543802605654352088205982798496277366065670421261427383417754890893238774692970114651744600754014089334983830065481201370588648372318137095834416179605207483501600643385531368666691809417951785753679220474022021739142755600391598551360534305791393491456788480447428275599038836577336523228855378744642505034466534316620272896668216971555365111810789354430076992883237703684865498457713960540377211407810168718082200074661465524683319325174443314114963612155423059935631684452707753211789450013142882316593727073158350176274097696925355220098481451205034399344151083552560158530940964731131008979983759985847515104247996424470207777443107227064681120457814402419299593727974432017427978680212421235942003778585589796604905011531508133489631595852880758261779312816949992200505470287184977582117445354692358461489777955298406766508982447291243606750269414784414939313052430724401907589399670945506441284287550010274461514580819004880846714363392497474209311042387644243643745951511719749245176061824490632658873548736575920959455572215406199301762289979103849946933968382724367590782974900047106023129825759358787890155326629343914774360691407530684895686131771719238915807149571456656913602067327469228571302286307273367808985003610232935924924843702019997630311636298386491894443651788073683660429207766879641222492762187195718168058777819464010961973201467507547961627353229368840419544732344032957538284139314679424142468951000421553839592168070557386782527332447735226112677404329867525641877613630547915233959114036155516947044114889935802415543123436254237453571734090142671638305887574543537270936087874473622626520283868593336055031731464406989023288423181734277052558464847304780053292519888874497951823019163952312802492538765602910859464784480185122718206812929594569858899804720052477306826359354358207179931263975649566083581721456370387823949782421710590060846087363759689187048330791484861004804893114761040213387928231370286909545294281112114271812470088039495679760542451552272816176098334390291279670818223082086378711572393328332314773012282829930193083306669059082477415514513102130485507865628866073430014464574948299401629255179441770775245459961165620154792952735701761427690570592411010521194865524769008801633627028413510692438216555185519528089917357258489196383166985285095817203473685873695262296834492217919361068718009605100798199305013095182515789447333201257719210381090631245454657723382753264133854256811964290775726288289842228472279418432014113990563945142429398105023731517999609948191058241728559454241094678866352442556636387995959708557525986211561100194456893587737302204336616407683548737787547516476387193266511676816576978114699409802709448628345031461610889842509905543120624400480726497536544327811225514121132936975077273584932895441943207712939168734848288614007742744375886342072067847392405694314605112699743632835680634748255861378961777976700589225753791950930463042295107580791628363319662187983721701411230749161565516420776710392493869805855968386021985482306739169080575917365028693433375539293987671528759349926309233125478998430113896306905217890718198591497869662714260611473634777384811918622789237263856356438958535960287017442747405160765879653668530767196906761766960281022130761779451807632902033874369900074878363175844765888583951410596374655507926825025495382771492667718397408376036888271613307531111453796860743640201223488202626199193826348895965010041365205242866025917672585904395474099170324368654979762590248272285325159982469816185755702852434575867255046764569429787491000447811879474837836867990677145421014513176028322788468226683124222992893138827587095115629551850977565081155840411775138521395230852388620021321686440830896646258686113434128378584076578875574076061737191599686522864112498163189969913003980757447887578382451303636023649342694986655780590049011738440093807933406079689614700374773142628014570892819553344412221373233144764171624291971530139808344096926982580623043805384848276241639881063799432046315743323959242440590582219357976200812042105513499776028272901324376399427980358504098605039571713118950342059133937571387826407258522223809282564613123705382739933945684757200525748049594118691140444874569186067563058395470097338516329781679420372967691157264971692751395047841282320920702842664043024512783289771218083070246449354291449729258920669388719569739687640330532993960190236410432392863297190138964483848253095964055270389224631806513996876699522978119455139178603701329509125438078026375626717708690209423845516787380970662563757919083672300265285378962657520305598228599725880287055290000604140402457609380810533829044255926805714954921412790095487439543721640603497237694016238028608103585360150795330073673086885052917010795369713080810217258812729814511696104216366324912693253826059031005647215194712092300297385195546973030231289427255837489323779638028738956494205114278636920221698853707707356273788234817852378409728339042862930572152121623193666500920556517314340024588760695180139854999759566352052336292093206523149690040315167085810618204351934238360480955481731785250097726956318146052035552093030205933353094975390366725240380216420206578578739847572464204401340452918389484467764881585680403848658888787760888927156082014117092177094630193343545686193236409452651943564462595680239795822267603087839043987398378324824111438297900557521917952303544983254349923932254440908653491070089942667907876242468410750113637654950545821579086876022224571427541990353473909833539608111695148827400821594926559176693200239147074399815941487646937489437676199128379547635416326354743077413141651835208252096628998184697996326253116606439066151033154599950574177029031946838801270109400861815413964890409973045424586168789742444740188706389858390955570147547519214367583519746585935101106202492774057166673411534567130584162073688545134113302609030767209396015495996201692364047051281938148843881375177398897511002555487673998205114146391678393065491108780296244243535752299944946960228641777726983315306858454686584160689774990221533476498112546624572175444739000577982678856534043241032287380339721038459947070885641206888750989712900728251732111976865470070221928973695932841721766090784582106315621479656059395420015604796650506441556140239761424192358105948851179666720412358197868519376375227220079884700171819794468775255152719652759359829128211208161739789759207054115747133156186551544092704295925388872876366684937002704194366818514475342715922410805948232043479646044135995901773938447863651714859240208941298524943438108656276835251002811542154358965947211770748999527182639652963231204889047994799687227885122538631365622094975474350929716856842745243442562046412452398748408067556734910520469831009441536417106891391158062896090483529404918480855145724411248323841642939493257310041616121946089707745365554090230923520735386887474022108647732997716117153713398817535287625977953594256640868447222794213170806580082015996101748368630914492862562071457171083946400860471889093896708823870304971154573294924483237193202471236026384810329349643274918857779871721991154183775964476585403521749260457108349091464830586486966650496807503813925372965535505566129018777663957503302616094922260536537471306952421810629425759794862279495666964396340874423119425945449556947244679443616542675845598040669717546896774489595070897412003501797088119382644688616715490328040076725436786570758962543514075008876943429656512546067456224872873399884700884881738193755447809994256081701710874703691473793646760640950017531097472563110494390361923277047856756324781099210679030313619738260452548116653091009865352687680100389954345636383985651154940356445625422239738425438033106552195008410560040021585285125501593992158471453035732714752684317632798942092126246162992492738877620428469783546423617194743122556141717841796049541100793056756048405943023877427407660375725576999747925126914533013850434355573665402941239553933202115920605507019422204292651973508347426266087309376699589816567473540735485662784181293913977957927129697611370938382477769553422267396891531977865533296174407793835758123659702868749696372445324377557064045758014993701397920566348249313067459380836110094633985228430112352594507395459470252022588002288265799173430970268520551097844233911860005584221755160744866712673089003326521071716411329688782132212642163831213453773866679613102005524137222090392881862088206907654827192217291051696807105315681584437254477980207032273177022492430321109286119623077836631308234630228436811187954380200751937643789797137929306853349436910181314481962777536360269549929131824683938006788643112884054733385777308913203856863579331542097574865473935139206812718526877963912933205550617964504009083468487446107338789103142370249420348808081148883492523408973589679420193235086859378245866456274878512716490197657513077186584100019057503980549880550259724660998863358238411876258949110428040909314947525414759043012987988645915520570159179656049725012859799495219948730996056952239655134884214952086995572192918691069471819380753287097069012130820094699485062332479237928557478831860130085364565186723897159208669796900589891613105875034659133749539850028530947103241931479826807000837183886802406417030667732022324896733604630607962413636726795330790373828801521579034793179486417768264186995780339597722256676555149488751112381720803626648271830892058617648215809966893142497501352449407290167175627367649793355441836197091359250687275552095197438746167785498409947443324849680173541971943409667599026965609374950670041084926557814072506707429860132475839741281108460514170285765304473014521767749108990180919586120628893133783906606675077880661114403949245511135183856867074662916290421163516110445632495185579055288188999051136815644581240875699216893908714871724719490483184551973017014275644036933951302510724667084317208261109250794688632128464667583034230640367385477873748335076862467720727219702592180220470374666134461886184965912436283407205300696860083146851972606750239493070412756980231323855061665418448613789375667183806367446997160336177923193822745025362474910085475427131052264500307308377303419963976021293166315232140327826718953490471179442100260972987799275321799336633924372184701958914176798654614092073493397615947655780485439572973195338663258040165835839152256035941593924024293036562990910883808116939517468640625526178274000173954345639011737610640657768940404433572064753029750657931846161849612039654240606213300056725559123581984577762696208369864766357080019185912851078214878438213044946817690978155961654868091266260171895745908926378019558255054367884233528028449099802023640095940566797979763236243475180839870680755620456987330878111997801977120081732814590812944383197311833768135850658281079792922138669710175633492592076592589329712334634545089700189815733289067625408953788580614789769338269102955020887688078847285327985693646432279393807397897456376127568266919502886933270723045284748445641267835306862667654486972221934862364807598354428861895555830918121662486335148236889742817589328308600007780661649994535930425453278919612709357488742736364018397892891906323109703846507358509872933496191169524733002815260105900083952889828915631214076373195683639566125708167739019865855645426304571172983554518303182949157180800861313856544625194260281463451982958864433223933446669934144694152806086802011594253716347033705316345159965335164068139359203255723360353117788530785204405552998480200789854457186038125709966645023655820646976340087481717285365989662786343074541132102504358846033122017348887497478205089788873780622684127852606123996543009798373403815586568633439614408197374658706205014252185237366543251973653480077279012841631053226982478167759354169088356413284219832743070644088673301188803376197817611276306947392218877479132213956826910593581704606791621305787198286873774204851549329413447360540458587198313142244627102005418292288221109395045396652797498995099119171807743799310293049787349698639802505520121684833824048418055600998880659935422601637228593053920808797203641560895675819362921463837330284943359425980996837820392431399589382398997854373147544604777127946275622108695097757479253520146845499026349119556548138570813989225053821928027855909755628512791940438250180227191770501148783014373638507199340054345991329807760363908152571481648231143890694008502014369681314031749018936015143348350048142839735608870753323800198064404556794360320710751472101087072860229001358585721334118603585047448493025015492341270439923135541668694504501697814708558822439144854978444468364504285080381461168397569244829814956192118190385546069151447898890098092823180507000353647842332200769910581616956897687276899678692848447063403918166439551516697145410132924449089204059723586029230058702628510966127615621159142309796448132523107749567720235675687143126153881776633373704309379937456983126249017255971403785284885252305907809053612894661781195342117696873521564132074677886156909501928955944958481939968430378821020910556949181817840655986750963520490249312937575293978831384555660348161774298225524994725545386818181321794547812979810458893867058752883495815225730715712958349290962880558613938348916428105219187321536597367157788322449564858214488228254113065854077712459384534693780806471589599878458783509864791820437740629623275636243396467506426285147197594733462767205194395056848863984002467331921680436470268365262038541499148131376130290881468248927038679626765244980067764715345524452299249920119718262517113745262439375517145275546454819094529205710809319461852415342725427570099293837819246186051492613028533627259308554654620453627741131899427652002843607001825461883655371388991016430608181685370646731108090085059534659306512010471735388127536340307312874466908785050022796990154680502367054946370744058643671779629406434440393186053334826733095011663057295944566534661645870031420516491143057494342061394016274471733077919283973745364229524244736773740596385978380185340292287789776047648413911731321970181600715512402684788885258467315729761218441664021542757894209846854652561153689806921408689679428003717248532444685827364646693772540157885495465914643272405584115975572591783127337980147751045846485089908245932953974865985820507219998093785413613447621482434814944821025879103754845228935790599079214446998829437040587213072336545636352892505508272044434652604576805358809078780260309009689828283261678723284214444619265675579981556338746053435602321698157772478718079676285765640628046613059226617455516057960253406188656015873987874392390289986596096618367110371258392918941267941080374429406112575308092115776054796511478461407192600059783393155096962359583243803599589428066204752648879126258248021099943910752108268930814894914284193616926182748524581936842237675982198853571024799407862404785194206202787543660076728290016429446123006258783368520348266981966349773439795701542845261331469693776743101259358657675273207242062215380192783954917201530152860024483140362063893709232197710522874381227094546029305892286921840537101213995337478850430472444531269909656417185968101380738890498389339074454408427775875017241969425031836620939397884617691691182768707330603959364415882520490615086213301757627680445498583179862476312533718676502702468433793594156414067045314293509684286985740350161503347968464542539984699901373103089601327410799772057482220947186047219475353203684562514658949865884433916091560772969904809461156295089402530132877322604530113029375528078748568635456180519120455237237737869475443022832950632637078182332533736137248679493291395560619845570711167893775180830940618665750223028038292767209531113968286390479430634677942274700236780113316319279036915566709642546537654966599193128569193727371590853132268559404525664731501830175559956296738967429579903464563642067486931836036517380512944959966211908270860145359237121276307900184484489174149934347170560178683641961276636122077905708515015934962213502913853778589742498050029377865310808113527928069787490412184330511295399600669372233681053567001365825339529838148475416492790153834612991820148647473234120671255124003281518601237977635164081181930273864693314507043565040869713681535862680800748692152028905896420885210152652077060210682760655372124846368687019057345720282714133826568811911123360031857485097293015669341364128851056940979934571808020840578200582485478552107898196280038288340070631176693727187246310717967492080848553652284500681681617976014778979407554091216487456229565480112343859263756202504560194183326258620554583333270783117631513408065457547012937075956280387055354544651594671390760912322140476297121035809195217216969983156992456714681565112705065948823574532920728383470395628406430523203443487285251898079301849226698310144402193249613780064607244495527967245129016651498236863519213562091157408571962549353276989074705935667912925476650769797024047411357351059004043045655886303628067202259054263545072978656455770685253067998778479483402681325582980227661503528811536798196263630922842431103597297015963418813392792990866359512077420200064349044332447587877411376138444560611309358542320138360763038497460140054898404109199816040081500303236432930065351346191016639518426869813242138027037863142722545377338558764045475805181704314329927837456472237221538433308189329259376973183765945923258751122887749108205434131900591054387921612421380735779448077832165873027472066078551499498206789475800775514746548700342082556646367958462077567848445062364054883776667503803811655475461208876007021873865676562247986111440012909307143361947565376694561944239852038452482420739791501025666328396472490427206093742034101116358842844252813739004060556722775117184425451182406990704714943882003352907621793716527574857011960728694946511467822557413360398839224407029872432259962157700236040990358316524483239866638008821466863650293102123434026815007845878095542248900106949386756565232711910012949759842370831907049133934234525393136193879446052308715385203358210772255968729739457415038707515784060266971485057013724736322488829651298608684023978960519149488222806945422199822930630141203719469773666481482389431809870503864866145694525659127680065258624804166996385722978371566875211905420057641643913928944809240755196277307503029547047752114018209517508063126590336794089247529498282185305572257094067631369912402476682702526835847616896965038262818080994320900380642378694735214554669279770256868380078274521802016096651542393526226616660928087411079113257781800511496514647427447566765178020379083915749371569133634020665969584854882334371023017555408555761581421023031296840740267016778298131101265317938161211443678842163065636138499191965270826599447731180286271666936970526453274323879358168938367390975491663916403195332134343417791675076208245038175432898406424345016492088720444188795649491630990571425009107032217661527263635736066709348820857329129470605635437334659188954002624850716893113937559931562678901860439446748694221163000898829610859922324044124832568648481106404086762442960303114232010042617036890852961122270127018302858965209490426275519318938399955889533979216344571723478639924212221634138202520922735403288370426293535833531389824122356993096397017204916172269360960203946340583956438224766454141393216993063645148352187736164466401898919800496704397895709253585137178728498920867271981123396725132896264150405615122681487981729240927142028912954495953784609636605981979479068897839954581872981772436896983204897694248226169057769945581572501439617342203043909242285507667778364504807389622357307873745022114181350064901533470736741876110954460735673444611009506064268203498115718453776678306131835670615192209021669972269071890459527855819051462858022438307869881471408825271852661092468436217246083874650340350346038502166903654037081059106990874643573343030237369164016979966159928278685155194454260353126995057527725899877135002880892973269314573479064534616726292969755413222576766069868117936929781036758375790936667521422635996508353152335191293654820313914850827060134382497437183690483665612401971731781461235068431939626636310933022751253839125617120128501441618666921483880792572630059170892006496493327601871811992571894037947078103673634035570291234952739488167416431428344057177768320790248364599540812143030133542952031009830179774078538751227939749967489201356778664685835557388231361110700837782211636436536835442251741663202139354606217295066329291222428506458538398391029886067353137011606734732978978727112600098723674603274183667657663177679960335363882156133538469252792325480090829045014570711610446136106558939479768422751147830060489184425963388636995442702098776409982737595900364874143996752484999078025359171349460103134564100448781165291827026137373161260273887546805418098857977126892959220258797457929178126597401907777691706034573319868990876669850259889645980358504143539884216783969207726560770297121477549774041614506359580514953084843589876956997218362030102210902172430427033500150884074346049826833238944019790172170595360380179079726651966882394981867237492408019367432969412189796869987842753896225153924275203747878733453492606654903226389407267636622814085220219351042022026176619133581341782846330939180404383376303543530390232189350318154128845474461829540128692932084184049215287121761819747454127766931973406304037747189899679049654867989105845783866501378193817121509608833088808171254326879485642167963638518857892409542665870832705474321798762967314786618172325692204039860373580134142138465243236154578046814840574945747467464928415678314258723040493694298941704269309000301436953137727007409096107032080967064449266084938136932484821963808735062503260408767623091900028467526590989438193377478301946381013818202145015390078776099312055679193225654631210763651619505213522762030195718656719168703780485933261730093503374493389278059123062287625935272436638712480225034471414631352503897812921132633947661502658788277789167796594847672413861814489556028396193075223406457716188982921001848887732333161356563236084233923738248716968855936376659599247645828707034407350930319199881932447817720111549274385006288329967974550092765227027834257035880662032368069809044989481766174297768805327018557969223976209061154502313371268981280150338970079472937602415752220121070899973848776350034849484021594789477765489129522396526761160488088513033025493543266797320316056042020740552908115549160759691799155759048543132166678948296175406288560823629253082358968963944747712891093497491218743573325819373877908943187823722053831816085432806958836001723921778614876246627602216676501746547594559529412361684323570998906189448534973321237781691656139804556083672087794954806324285004718127035960401674195122219221068641054099336333942414964649595434674419096369236735169692355775622126045905751648495351202642360989433502867930108712836839873272923400250487688887692455019058695776562872435791589728577414561506149629195494075997824851008000691694524492571497484621458739227397016763287482477071461068865841893236179760692603491222857234826345928304109528191134597816332891690277076083966803238881492963309030248935622748881507347090027319965315365687053548177742313601945866377136399702134956353600417779887890497858732536042182173232680253079638120431557178526594563300051569177445903044735414772495361205642885950256011838812319431085792391309609596161287771447133613785526652107270039066354326700162744010797690262657974888887996855950166710601643826715258110693844327224053397882504218071903728667729947457644479054847278368933111316351516786018851968387075852433944529611412748504216286368198136443620919756369236668187201656383958160045717407302532696805304372750049796144558363123284712947269198866714692918462333717090667727254387579230178277565565248726743039193001400220066983114492091019988051922260406203287577352326467457042080806854660949207012578574670536694751200564434371275835352081318664831150815198103362329503268168653646431002398182813762100461482724130256212063346442088658431434388792007050929796295333522585993617822629635163767000485701588344676110285103834565182086203163856568784260901132252662999076639072901446198975922513700705821586546755568010757127788060978792339492621006267844422570879293297518526233050272759160940876299451779121269032465196864717879999993336742054498484906548066150228883520384693107250887316252359411099263591308389357611978650298478854626087451257799593880209072187675633911303831931869481446901143449166907648391686872156911257851741963492281460815410065722573360443908266122422843964534544256032416100325362689044651567655303886894048301992659950460648913140427942713501466819207504326274858477528057434651630527640353100655209138425121558707779704306695707156978714556365432356568710075564084094569512837593400186042980763475895546645591493812588384477259304612128384792046720918479096075779070998960939885269822182331725436955804786353281117562044015738019259974957509415327436083204309346447021279719967706759659349815259047584722310508596220004816301321435148117995059150077100817361847741722522800561473213580767967415459629633786119480992892966238448537263117619048560068120787673832653373775654219315572963077506455573503256528909656199781368606678631105066461854839534728383883945528563343120479390615400476051086800250742661258536945821493670126078476585495807979438427041187501321569811983820295872541667115883655499555062151997124507775014284824738531633706337459090287970417963833678442074935553646285607057546736277130751832210780024290238231035347438090118898911347302182485810190015212126366630052622619821837843469521053364901573407077151849764025715138165803121466267850949812257168045662381512902466033092517911534521146365610994421566399600167503150838942528994094689006872771949454125053377463171662014559951827629770868423877845388293908760144539029838078700984964418098466152770381684945991849306955946271888414440666600055795035010220253637951085917885130700445178094632006894834437972934205390121333505110950639065991403534574683263232683742674404473523313712041483316868832789209393655765232728666447233143758615301965978580112351617082097059308239024442286686887862002842729317877790907866743881629757890230158937619341103145527363583069182622302364467805387964680386301340477322485329810595089537049639884963797570161221123467558602956789866260809298922421806507413009851781347053146792646140806839887168244312216743448449656758498779448142771357519398659071519490298347856165152504754696792170515007465172313176483348732917888813728524790905673407728575176956647787496999696973515426177733263169932760680299160309828585034853801927739676084812544930488298245497802789067778977194440266878995701963507941043968181614212156106394181686503396583038828065048245674273113362982877816112863648004721837412201217962689016845126667433459791670301435143113649499418814737079969411053029271091885805550637668866776441167667915096867913814184364984735208430806709508120589032138096309187997164268486643180217999226813532392470945384926669334430496849774958352055240458264043786298999425878915471243969292314815358270239610208198957066745708721735955269271036123975255160387162880902872600663910996991161467502686060781455889697954131785206991802732855984181218060159115106276948025849816142722419106080874459985717015838889487127193385444450853616665654498654440710760081498881661146985727089850349097835730831303579719461483992626841888815248618999915682892969273502612573434623871152909156292608944695605938457902123023722040948694418055373216603959214303158688918827407528354852859854614821987815543971317712849816156146400303883058605470111445541856932646997589204679753311197648327020272694778957022048669721985341896781822624329468581743724128570403840153864139340133952082625901147316630992549466730013058927762057098145812504698093581067325301472191532171392103766338333314326791163415501678543281034050137562349228557596806277443031633761720641252865287069793212147480808948427173304527206719141947529574533172973114449545837940137701502871937521054981785084223748945357468524369312113261879688000220172908522545091788050283193684554219175277087864515779062105157028665363001024975670673563200686092674618250690629271610508949936553839904789729261113963347770996039887793844629261086312857515677760381756915599077762916210208733818346218862854239790808991422302678686208891230135009560361673448285098571132910237005956843954721864763437029201083738174200100753139532718395175481990270795474482264782368282352150784458691349607749763833560428969495981093579069346023573088140120903113456995699112337156502712257518951670414214462943588319189748179006042020473175592162885183742909130990428174513338367573404240124059608964521315474876676667776095939294941328065110593535892059954958036460660538216719677588064669302054228525410342997720718639029286940428273283546782565281427093567840241601329218764831691559156938946585822504555716879991459688135837891941176991704362680615061798591968705557077649769593171164702380535916696513516276692248613190624013865711812896019555682717975894699530314287092482648002944623087698799780258655607498874252703785691953801061351121220466417180806000222769304714279520674382585377560996361981785852541131844536194087796888751916498566907836237012339560552230639811407718769454867749580746421421088902055702107345152315270423812161281757795821821244665403743815174111784212218593088800052484433782741968100469221479718576889127810929399394256368943584370029686210736843005169660769395841964198381365642607018236911928777958252064530753130048688051212610873827960220155053174212273755455606652210959171075846349181017308397179797685430575278028952359284641290286034075725470711433711199245758437147007872362717703285903633932192668234223531548056786869478108912339751658767383761548492595251123660365471979570895653476947480484066417765476102644986344625662706599867425400275919271236165533758510450094243800351460309276112449174778453556243735854076177919188363275297671376346683692254097372541715954809983721092182447327068747727227788758042800789143458100639867717660004916974643732947965018930527842321518797605776906883392328675054800856952253062917456574831640989096007738090733038916787249876669156845743902379058993488964225257070357534924096984093546380197276903225871984377067942781348201193714089126865838250403648906953563193481795157463914533312731870809083155178169433863714970834847476683951900807657328380117775886004111809103184983115243639126172202549803504861220461000032355103519646184663637538556899452909810920665861523043597608973456874562827069728707501993210209613105542264928431297793196677403837941016187690485232904746702192154290477722115180108891050305220502005679274128206165610912434829531597866410346756516671172321206491052463920119540230330186663383828129405260799730845364439536272199649753771660670205753056840686092959264908068033156029166274995833316225913066670506392289435811930191768621485390597932363069002981778548214533264889360491333308023592943547744772126306090112478738514398738098405725041460514951527727813998061677525309221448742605938754197227579589568372619496496978232294914355405351435041115926567642523282466383994717653542300252906744490262121639398212617472894058211804195226347964953597372314229670311436697182945901816500865770599967957360759877734129947572328902949056818993346763148119322103932492610456576869018041052107175321978160093985293813961198486540917727046418581103216290886496489538947900637623740536725372306248999749942203441237187086025491007337670273659325757262414743424248071986406661671339997582960385882631496367179820416243207388932637336562006980218114700516351751674936337661725549075725353507911840189026049589558889920636744800324668694341572635961730914973026828526707787191565185575163760153831278255806139815907937600458726392029873697385171626333449481370750396613276331921975013696269778210210262681632338041078662813885319457028064257864240026396441488065856658424374098978233186591065792785569464212734576399842252957890535952527882629822779344603343516306282227771459756791371765552696739776861221938977739659183675322430469858013201247974413092435422780039980279598992412041063550327967676452639606598437511498958730794799184822852988895979114872120350149797308139907462250392397554215485147783677158360120184773322869644355117628909884730749009143191310086602434412436058987028821222658585603629801773292879155324584596445773265754633941455654974982508597714539339026423642070321092206490081013710417466926416290892749445345356548114152671194828088915703824516146558653424418273260399167863369212142722435191277481331462260676795220367253366164537465389705678138593302236903404841521974611068577718307697151132205869867222728350076368255145408955480845040159629363379670302754112842729891518745069517125177015928933355698011161359648618096805045685832649048597917582217621376896431063919728616155120376487572915644729303685442280263808033066654867436489584121550497163353464961414100754999911816483850677159139128077216290323800328878418527263881423550619141999330518809609893019468782988054639497136683174762828352826149248192920899529301238590025356428939908478697968937873402996489451539622949281153554026226080614864167892369527674397354365935256821583008969797213235607986648037757113528726133283038058894994851156586022940928043317548054606088242372496123789860979348232244850583478248671510419374402642988206617841335362989982205312081166760371339158605962572266441822627322548920099646872887487612095314348546818430209061480358945310800779914847994097780464795174932186859503762667626555335682803463979825106064715316652016217029065193758090008898265675743204333160405517894693745881418745898780803768940542083416418564683668856724975484235456299066942311381968736407721666082461631008985587528661809944318886711952614146699773139760699216864142200619305072537765949797957273558640625490333710225279281423426043023825603230767819800494757055955928589451898156393834436895817344819440438684601282073817276782310222822197923263129099557951012023817397011402138010235745915372380500773424835490633813656415944216774664411274170814416876669447595701990073675890311376537729095859901566064364477407148477144634206229741291577768592511598987330368728411128253372828193472779346447787885935767202641655983268835206064076856378352596480627712496246762612036367189287737071123967418302188253036322761398398172148124578751472633156096356212779209638548634319371759808209633655628340755125001761709515769715570068314974013115129124346396909786038403676876414447313520149274762603241153938482453915379308779165022960814658335559142953767617784902556256050579470684051888674196537852619626905067495828672519457263748371899816712164252854774451563070947479352436146188061025381507228183086112694742548219429171808488511923091572331930218928999890659623451037241698075617610582966394078035746311851525255215430850472752224127451916424217809690227343092282701753723637002733779837756892018398716760467305086694473823248044552036482562470116008303027621513249552340709248506723559967756339877677231637514978321053758303303619729255648928766099699503981939678361968369405687348768079379087948087171199030285207083406755113391784118800742676246597222177893431476173030079986725891562140058241851982601220977200151878379749643748184688854128155477799257332025205883783523958521159440611002302951592192792724850244634184159134587135795510571615744681646018955809881049877933651559690518474113485877093160724684185034594808938311438798712778305351000250156683088295563877448370840652096214650711798826893545688595229308151971097324484430232903749563691226251489437669946607677530515737686446202684167216221316411059753216812308846110244371399290702185138560392325976413368607718165082256946677794538969879732340480361164629868664892849434394311638995269085792472872098226632224662373434168464535761978995412960664366991873641288449346426785596828257579551329020087256457375635667920535835275957154483938901305561135472138638430153347696246565893480920507503053481629325775163721070983591583504825472227330003514805692969288641669991605532328889567661540471004858547085391950138154497371594823859913291478959968313462289597673550467407453092258564998955413934234624869588076616832194132416817691096570649074900841995333522880004409729676769149948735273644518730068591364494336160461431195435090503697658213219725456141065398650149547645961950881588361514325408390454485908817318562893406326769747833661814823798835333283743471260254193922895795324140280217455221280429964287842777322813082977670961466087148456304717302152086142787851430195982500660248941011301827505154476943952053423539883303995714596572966211327079141227401410519807451138323175674428732982373470925073095763802464145887672525665950220486201002144130137701844353803626218185783408356722673639965700503157123824799417491013483174800226433378221927426193729110252292096196944498837418383779839536490478340488652440546015803416892207071994016484173967452009928272290631495156919657804357060646575519644680287788603511738008649380924922779387194283903696981019524804726284955414066654832302339930011469987041592784259857011535884913009020706509797862275084869600783101531037549300145991835728098060160440642656042247592865509727912776708749116896115301197150625474831928759484185629354739398007633166669829439857271440110128695896720123641217760537925114223738902798881834904419208554681473762678018848463594541505364565127812430009963501665812734051306723091802545942983852650521256792548213326813537115110362276168693200413350626539478616246084247547310589808225717208259657907951826647198725085517384909056655374630596775137708429567283049411337484998362553528863881225132525004499822027886043879420551806186512898879816286918357813447442968389848816939943798969771750874048521651928231854172268167184799972218625046864118392700157115758493347157652579492155073163599754975814601046781847733513084473341471727069842815488599688330443017662180701704318344092586403883421043605023190692170550705401594836637081718732209186483469498898699668986403904563575859757655149057108533550351910117978046218699493269391980300203988037876689761516411236022533082323188764140571936788848109109863633423552273579162955663094704387825765912694890004244839956937290291283241824295225332142242956801909762130967007559058067359777810707101799705308837250281530335895823561942348889389491004345397669429929056869834746320034416131362819750751547021690114740256083565238829540373782033203775386045776069627192965529085011360268778114048442421037409113853508956322098852774513893075258925017919491184563577080725956191603252222190022549747771667646563418008960155309395363383225934777927942285818904936107888477102791786222719476407066370683473627867519309287173475814972734303608833942649348574158889438297363404428653676873908107854801360984293950493145537727751135646053860746380803209488541416442602363263806609401936030272628710395254596272315313979931212506555857960891459788025919458158537749987150219209405325528594596638639483568916396568890829954123698926420518501298115936417893454070655422792064616812245783612323886507809654083853637602061746439649521191729425622907491134358058169893567551307741622456825354200793009688807762912249579193002526164291650244132910415215722802037642377933040051604561032006192274376998346667277421491122844899554712095385244552247680354259735795038320933323373857758581019179481227914456015975528051796897759719534279083449057775366945644415197169784797703363720688431519858132450224239712485256161532957640828297334497728429242222530272018827950981540224935948632529247147857695917407710383385037866337795686505305018556905096654963322016738826975719411354620444680513542580701742889500165768219496667084282711086254503099984240273810324500796819082756984007853198129851112709362154052905334415005810577044723331486650203180333610546693562380974101935450711932066228063543735878003284431661893178737986990954390525949208625841748461375815720090573064520112439130395636968987512446304021975501615786929663388686720829882712372300405975329306238906678908645602390280825670541227826593545737964055711957690738271948876279407522047789839534550018683152511071378755755596382642205085225234873966092027112249083822545983415962589614754600141451667939222591699410701532550423764067187187825878707082486964745774796820820687583261262296243403135645081425788200855052777006365849888392247457105250367694490158385356628275080206299446709069428356765308099104762170901906570084297109446789665294115330095387005840957084135248280120783641163195720085939571839719910398674897405838816350047192618294355844636188756834416829781097820947487689184353017151417841328227953507604881491965296205374882369745971918485306275187372688777832092542477583320194326480174155550257648882820165389838519449512932210315728459354753717987301051557250795800052364401837892307207846246642193248943743880610321221234686748425130752120431556140228566684703681956855462690098364797946545251772522613248174230710410084590839279631566487830470369071398561888815844602844199431911353648909535132339247021285887666452192328833871201717381820193336305757465572958949334996904324281083700911804934627722497966167996543340819826981600316203519239839327794746062291529627508710218706694309661697051106641593973962915296090459606806475186461636007482773700657695700759063221121769006416852622697904485451477231187852899337196362557464104688207298544907170310461856502808779898218943209988443044789607162688112390366422999927718857240436671792770397139521752890093934351362901329009548461490867179183813066617020130644782809478591798234661969499597440411553445487233241661295451687811715021795428929339789519976741057695192446670429129399324497748319775820864142905693867900246798564757506081243629351901489192492133727596815993466051533312658592895087640521098963948299788561471143423682516301369483575085198277126739328181778003256978523240589007858768226136629947558625628722000560872191448413794780932022020537813715207574572724035434719588280833203312951549731048017977976297430163191353971888374408623190286005529703301895378986509554763969116987169943583251469026753280861086065786215920405895864717291895098538605083735924962619945684202929659514784854147360508864041403388131343108792611538523880025478296788101284798932270789461499446086521641749748041374592918875328104239319792144311930931428258437422315746732691900201726258004175343356407045904031990340744954591654058327608224687336473103082273699496190761022338726226113790840453940297106674153776448868338124516652125259148072944091565413706548696160373883563299139976132025998108264040246316888926087697998670745340593129367222895126058780839636141556806828564272424268967744715758778075854298164083665306386846710075470736089545841511613914232717600764117094038807543581888419353957021251341069167131858513364831142234278031764320950339734655815079182404916068012527257741178350081201699313990355841621662640246800846168704014167872619248021468310651236227984992744802425684669762164869270932572445494208132605937439402106310923618396211746378168545099616081362299809127745081021431795466515901870651347572802368857754402571990252106194783784560381248597992497889461808626484940739217485330589146906203163309021889911738537776091980797971762555230965016176926503843933285395999321181022375496050311060133332616710957572529577236112087932676409501944656562053680303952207649857536440452422144165988458653088567765136284621977038871526337535407758176778978024071064479404270690268003389621719744085336236212949173855680520297529698280943261133965828819061163345386806124050943018970621363488270517827760637347032124052082703658671762674673474024778311890451294893192167408448689697282327859283486226181364209173382223539661070424999405966246088816264971647675587935766459575664430841453611778570274990431906912431092145124460601961119523123750547857328015753702067933101837261918301915924954686898342633752502083276129996433036685786504330282153010225379574893539724632242345091671746938777961649484611699170259254396726248294175247527607470292436816405406666958648829700517972956911798289203603522322841663009684589387397070839098341681307560370744202078487010865083245227535090168396483177365390444094553913403095423951760598632563886460333815731509471928860592507701451322935695858559188139377091078448489704260908971761438684149726158858718357599157512557359531144962118832915073023960922504281548959058776998554481265131036197092730751781998885093761921592890366114190806387201442616454650687506214638451366551918749988689966279157164555703926710916684790693788183453516360861982749189741541465479124980501427473614191436398451040627230206233585020616494466376943535217472928198020344513633230484181568731433496849098012584650622356911052441278164388678594557089819416225991508570687991237307316684527032155281502295064984445702996896445560185689595450239356513463845953156090997294848711543052635105024748114049493697800140884631816553879939154151486441780486633334515851815803550908290330786880961090834137694483781543526252503475120587984680105269958585496239914362461526434522761462296038627767862009834912784808473121330116344927179273205658023346409409905893899774123971434568354284892448749822642139087383954469913368561091268959665956378982377915055964920473928163629824928340953966638201587987868298551016379437995439249856313296059291818463483443571649823011708062606577616651096241646410766177222202620956791427414858374618259834489634733752132079599152092686277144723922502948355565966298508094040553204454258490818969534629511179646537911409083293612399491024025293912042003737885616148544826362690232891149928541825735895169952320195070445016140409328683627035084698928445590227618827987015487597596076096750923152555993007627069758533564008254089783880076534416321321213002270779966111909354551663096910277713632255967573200583205041222080636359494782963418206245081227917737653405712410561169578204361550219142159327742187728606996549636767676758617430699610117508777295951289626054349527397682597204124047836866816134316025977518653277262559496548065228902586851337526914518146959936092681875193347034225347884825395453925575311031593414931324931218369749070432168502303307025548168340023681103322217446641035155829945855169035674325544864809282980626671270359935747797081779437330457045211270859024746386539568679936849708985030125677885596648028920253255579654908943521757610466567827648159053522762810443069157729599254392348759288192201735319499977353018030206896079704522441304148557302036066496166308888965954647708944332747254832824446523939691439137842568115016787366683836618543504359709541681102053450982368226858668086384388120413827147861516323410454773434340990199544759512685537306163567436715214657962512551988695770157814035334798882633519656214888870647686458487608055258030018067662755891861456586802258646336256434520724699527292683280734388833071894213327133037038968627783854541992973888292229876972291615186023444401396308297727192403741292761876504174588687079452717110605597055396089917053194522839798738635362735515425273601962646695228291606758856171616362739684609273645959111825310960324651928933245628718092650110795402761335544198676025988849065512013631637382535677678563203569656897078403931915032444601799200375908244111098273908693698043154640053908132533341029329262834087529120837912444458953076340822743198267730651415286835339000539623104484351680275608352431554812911110576609301348476495096730144983918309482720746707626934107053300966011705952471156483503861240245196625445221169892569896453894139835772136442159976575752565446026669117844903808958831089460245733386681425931156917050851910820266441372110120036119095602215891902301637248359596396107215231922212863075324371020889085526630858000203854493548361246404456626898222751609558353409935373529136251712541255184336795838522353955003570717815721602890488901444995005936332091161937400215590379539363364961472270515657823271168499345078474516837131105454106275366807610309982322591467621948309055194918372567827861119284408518131175574960793215331013961050195508626988290238687211457641419316077685950771484125319652827411226389664498029235052931950210171948504400164766942014076227847496497014023839946499621654419851921826714759372363819383888715713004171375133857264407330660649332096313987189465544093064987990646641245311786085265987102878982539617344343021372546266990377015847088574125332667536443171603864183480040689261854572145600835340875750797306270311322402872179921963651024667122865615274165319206990550093003172585791407484130405413614282761011347631622833321638569585995310086328403568693502728538470554398603403288360487256123305393180039814186680502747258358389175239824867521909066063877031939532434004029435582018131219342734426257988227559214110233227217875918758872469868853954240278374464342109720992045627517794482016784898329759680332393607587846586931525645554979894890557710874813450015098800376676703165407213014220907033915228811371269762003819011768416401648363680572023888159473954180938581592364715744894759967052536777343403988230730638519325382720971404109554296687495114772806201830221755594314386368841542756907510403100586106631532967151273210667544089422311046744675946229539650584098463194317363109834208328050583441393265281001004363692170255161708340639602907690312745917549362337225066594550741041700896193122798596925558329822972348336279746661121436385233448031178457623983649870843650967529555474184030316729678592886941791201269306260683891429011752762027299930099023634389492420718210843277021910951808908798981345653433563591689933138840019579337457228558231332115944886496436008762864828599267449385457347038821003756577046952470216980470096151355628430148246182384992076147267384328902824219236945665122468092538583589875118821524896976066040753266114203364123921373298395314585740889354814554881824710435414890441055012156259988045926564080215854248632321633796144419970138406564454123736350249555488479542739087666425463357877890252556838182886164812303313200166292841247426226967994266662881895614891643428190597186249685136377717077384458638461062655877561258870538799698835327292045670446293857032823839214492261577211316247112275757513890886486800805234181077807558938918527679006327339731997205481226610621000669783710207844196671806740699184608959934282258031866754046481488688559832254485444408187621445943372898543031256231576694440701232456969898586924130938841283515753321670304781453535065406067048443716996625636127100307899192896280677415839698368424145144747978426227222594310935686275470615083259424320865246075907756746067052364922420662668975674524987082082863203616181238818452066784981971895781773484790528551662777739825739037565479132100048289037142734839808193673134517434459534610578536215978285748458881353002314227157840433765480507557258949664011507753140617618598997488330353478644308692058639785899070200901491221735028235132422417881871710037637818362400698124430868784922111979290775153864474956669985610485937958456757867319180693337172368994206091811124377368403378497895188645745654890639773371994182676526830720011281673703223262741399378770662680733206740195611309017457398603866112830815438067167091735804364229168677713877349447789971903588760875000342484853558008028966873043240512811305811585192374247083180425981824154510737303270292075841347804926393727462927900690643954642684168663288796449245575374016982061344130762208078662832936620103031578355630883644213038490062003431661189469802797954611377691932432319473024460524000538133370544048408734433865986016714491189005896595967449218682712221502435487350047028359064862040671691494881915004073144723572482106698484208269603079681363131095495393989550925596288242522677664158538521310841354306614536772059235604888911266150837362054555235647448547656414204044505939284218262027949350158288410465164641658729950684227552907436889554000802181381884705150311491879555585429939806860714378579885943073578672164918719452220831408335915576813276294724930925180674163161502905261795633668853259022085995485641180920763243039423903411609104721349182733377205004065064924583786574592216887451124419769483778523773906067483597000985486569731066645815999717601324188473860332493562785512839432020032628899512939081556454632462026229800332176167515233753164343522416111676083593192759158575830242153140480985724370014265581739923634697623892665870607439248500205983110177774873943188977003564530178065574338246696736174998798310362333712026158296403135627018464606688113954494555023044033448828486943911156018114960548230217734762205558391710334264894947753981257220341026140379317909535065792962891275710020473156213946658191577675735061492828968784369784018328858138068335205852495817087598584147412953231515240291080438139780238567432236183775436121335119370774993017298939082511448079756017014545603322016987610027864578132107857318482266949062287410790221504974466454736536143423338873428040721148135245435195472958669924762215660575431249923965988913207457741141328039412291726999275793588383551629740522826231879518438205215075484738074615828303350564863507282031535368869669262911621984604325461582840868038675314236005544422692402944294430662885834438781091193492173057917147376570581592211494656809576775799437287444719688273101318936813895892960076293452932242545525977129565304187633610200068948175529753601739374964831289999336172802314855197408762485035819862614736922894544678876266366240027167860284393132170856310972969979195619432800571092667924161749888525027915544901228112637000504250015301776487944784504164389045879830207883279548043230702199744401404718787564660868789034182651722497580394902142022771916028348450745241988673246267729942002315956388100857689085578358215153861789833752540748847726251585759720091211562716275665267293486031329294649232960948833502466017705788772068839871137339109225360066102771087572834901231662730997137934755468373107272049376706826561447530342750810232619320090273496304708635776519919078913927191759468396709599625332394290574655921673619429625718041822159857393452974451132751096602944179552128868785438343386658591273481286589378605409777265103910940882077134115686589176392479677492769954774488599418010342010089913491240232483878928759916850647303606879626614711095800803451938083417046587926260665372349840566207923283120919665897923551918328265080824829887592345787754018536613956375014722083155857741057236310793736223593771490387307614543603938364503090360412033685736525210627993771749370861669191110530809252541809410602797829685953286810598332683516032711244538872231984557051339819070603366220348427656930573686630468740734387367207189455056303408305578566094601013883649989543465663829307496913875375097290987253624041104528516669107289311089739856967841877587469389156093043777581388010683845390599182376832831685995356409173233337475545575430717724541780118656925103561980568067276306334944891469285141018755971955346870180532228209072046894013314147993904793414182160906696036738916905377946573435627135589181925532095549227278877154451514474936517814725915348946718736616512580264630850403195873890308966740095685444842207239514351028530359539613630044995194417116794871168691967275971908521999782772798320655061738881902041212945303753913330129818473234557468809735648076868182364083201155196142462251071273076671742845739735173954877247185673805253263305628056803530620958525331827667854301190985682173768858109118935767450216970850122567707093361108674198023072208840007195176647534997745824875013439527486604267160780362125040737887670092344411764093284976440836450563804990077933420385909422400620979476685593749668330735175722240530193488601797184672712569033926493498285386688135059265979952060675236294897063752473991671481071299847836575620459037072401922165907478857153015495349595386289113961085410692112151058292483496367883902947182250159973911401990168515352760788985246766826134239248003782868865638769493266218800092205607090074256975352932466134923574982162033550816896845376506727882422034264735969725539791535145014253588165855933505562671932065683907355410821499393026198391599314080130804177347152204132059418412314894406408435833560233646179842509753631642174290108564202256594268586664427672978722097205072301738086414976407784966281146841683051307135259531167482024945674961108611641566854883384367412245461955647387750256624903491157910761021557244384283346136767802799422300236675573420132028108201539656453575734555964962921218477874737154764378745158225532779939033153452746448870280507862823317138113387121886639039490346762581153398624870169285944800139955054316414923640534422894475134485037000609646322039144938860959081896668356786255373198986321908608574088384930849450420752616511668441228581274231342095270156143580157292279647673330230547508284704579217960756015555410919876284170723943791903300672014662876586996771655813418287949993032625043041818468360661448722473564157853354251320108030239661446083746351921718903682909692196250371607516092860820504616854133436937107658901984576914853772007455266108085938291762495977639893438616622667954630378788943953305321506500205713338947307660998801864470181992459021194804488315237254825060486889676382018933349218858471545122057226673284816858813323196222246995713981173785075431909572477091278822195823070167573721801791025561995210000101290498909252406588136020714894800754312461795761575405676036494916815976198031056520085599030811849471340676253084611304845285983878776050196133019857729750963320151341444077236748494570095011939618975536538057908506300551177121923081539589623369697711951512663032376201172832527881591490475507634387743853886711378262824836686005579803317912158831756519190118056673888799843723326138659323100745180422336744381093493381744717708985668642883668183776460763713512827368111117973269270423229789789972703261844948134540525848600165151746755637320309785648819230932075532183848185599158205010921663589254703539246849515460846649454673674760472274697789239336864547845490757247547401123410713317795552833188403937951616936890953353833776168499882965727913873633741150644824585186074585298546975749352907730343237408579599419775121163317292018438544155354144707134169824686394386488467270115682161791352321444444830182371875082399869698166949402478700089350354321432253699939281449633482863331453928146366385098108210232348451143336058736447908490702313276154532348619625676510553558295233327591346095990506268656647136349165786081605175200988601925405351435500832393654381009738887105683770003423841785602434563646864642102688255131785003533873473144576679325264673157458893466992553099963872344753568643520921826914206347805709183452126698197844788907074726853424612144592833665703804300448820502527765825994337860764835213316867217588216039280355769026881303526440420469420414483780236304053824590526094977041729179279084518254383926600240325528664717696151775367716350294877223552422848737030364644390928794852180478692786016474913915592122259091375410280324822106100011295675618862094440669661308957635200339859205889520941430821046119797423934423177949540594136170855800102930398218873041688024775285408086497735215225355382327388763949002921714515469893326715765986445130154559745407949181425497987523354190083733066440704503317400469832659580397763262825706045403548186189433051729430529551671246219731165625278938424961905267865665135821862949584799530271216641194407614887124367753173180812796532496421320421176014893475031930772919421067452873819194304485610029031306268691318292584620045233859694149212684790797793931343717823662931129454297618591049869098404462743991068729606318880151378420373509050022779004093172872136825544458941024078922561219604929851044930840143886340253112461816822855755536067785670483774505047656258394713032411027181760439893096088465637924398176437291758088578086536646383376572190472539263240559968858081860670277088147742339943606389082577039373877201863142131804036443492243001844256428372325696275742047544111359804898273778892122465561486641640912216164192347116594337428323348436661178474379652412204876251012826586874911391130901637156433663622697785825641426325405815294850004456355018712094499360278257260581600571002347284441904474777309345680375349506474234725993692578806503748214554749803626737369316685461987529837543112411182832299459921785672521048502998822391047820874290939419212702023220257594047738541755874791126259215089572237161841725955359030598205211974572948721263178132799001017700874074406860499002937894600858490706593423773446957559811567310201166911028125328857618227951357942307105462372029305282964566792968151325650655927377283858815756623836747754116717559852874310734982921821506388520686424310030562443590311964915349910439828532874023996246844638204989386659459133952118391594077711380995135081471705915269794629287315747037340629446197322215858571725501279154207143323343322128435200996813649969993528663621169033955578446658543360042406239957895715017031878729815772794460158140189543570400807545084980519602791581206728546013231659091898659822691361708306649479179496660056810782119839739286883754262635824402228164834401353741935663259246523841284691478401309542648893549637278533525752430100768298544899485743089588111907040781794764350262890717501149135178863860997264408493883637239476216972658652047125222485718898929844271597501622323080738364264245666442160537755820965067255377692842985014960165608624517732599007779957161192919295800092902225122534856864187065382811192581409774907160276784102286645013738125772569761842787661470055457904285040356186225911979900476350707775109916664786696133025212795304317319586997085849184670759659254346650353639149334232391225675284430647071118641694934802063550563368677408212860156399393093641803924084547442116391733877155242416926834574178436607825070469151663043619886491970101957609475389791381922166288365090001394727934713677411811210716886875964573545737267998714906358548654653073489123860192224470984113059389476385880158387936590640620898921357992550586707339990001455265945821867559436784882551147358165878357612662097556832302002585900422792567122072969065571021113669084326783760779653503897046767091154346347247751600990631064512611023011719131887495673460137836579140522410746399131623211022833757102210904302860487785698127777957744141600918436728991213309482565852060186209375360756125955706568020173242773899266288118546952925459676323241309482088239784325540662489660357089306661537017685882907448015032960406587748008306849225180092209437355612467738004631354176320943251819600348057898975218906785742290952550102542000171400758098468592171354333158770892426505144463130552926747524922793815264735793815993338907082738919889642521067173190586804738681829809445011713311316734513926617824757475572787067138541579786397689159016163623935095065609246378126729770791763539301121057938715006302869882625334585488773465649573319543677893637030409122740660155590172102908371339250512215730680186457939617912417708974041117196829518852854339177356156117664459080916544461758794690374201060316174126160155551567794421322564887626214523752131758872674787581334801768524097787360173552019808262988855578737732104068700030378720201153364002964713214638896144743712049947210168129297885661868895900931312917795002715037042865801574406434138811193196328096208483343535305890589503953050372666855588546739551649177488536026039082041009059414004999747066824519355348078144991135197346363916809746686451854418693112902083026542729791964196920508632106901974107628433511753847477550116672477656444578919628850252427501162936553036511751112219252375484890956608603066390105083744959501823009323170748209775953106219345709911513948687251632557683314261391906310991711531549912204511928638446952804922996669165343377208328039234059531268006423542983572317415700032621644764471721002967468494611252057032924469680068028456143208537015311639287349422587704553826406390507275957288342959909475879779676464478961234771422571988994886536338199532784365928428128860181822336583312523214580583877102442897436206847729314936100983316503167873276204074384616038715124594510214113829991712996230020826268051666191208668876457578565569644397164600114365895306888344587386623657712903430927105960790330825743546798096364456334380475746715092680867322543126361529779219548551427702059534593665974240713125749297328227756787894351402189849736791787767818835178270607057989008982801594400478418923745432158884049082648284598411581918110322492828460825693846585261693851197398075413063729715929716270008498781646347579556301730587047985573399741655792303935107255444590480684684976420409011399476545221807185048009775297214181725006455610099887679864208311676717371381315356124133069453498537449418824607074443766133377164431038828842394879817920785328564061463035509940852606334781868251062516759247210204395154908349675116105944270436933155832163191193149035298130478793950270883403758350739694721914962924987928627302643658217272407077675234846667215896868623932971995655996023671529650365452572724679252442145180692278985096338572344087882561803802453805408672385446431535981474137220510928156155262283870023469978777960380718431811472799563542765729339975076685331328879953028143193540020267892550009927551684439764836625153956082606512310205606769437846108500723310782889289721821404886463435773930602354432403455421407651712501767663852439156513668975541939435399558891620654039726265419472822641806167885515431597184760989571127889666863164136831091679120184850248139607431584758224481269746694236461397880483247210035705164895504173132125435564093092376042100928529353330893251187875250053492764120175826797742911461771366018163280800137766103889439635743901558836477119835869594719053962645177900340019613350947394535629796911222234526876094456951261273546486305607969541584370899938889041718286603114362141872529761081450363135628114652800389860471861608250999667246595663977979706071108648795840004793720473784926443503931506812233532693216260052991003327434522620385228433067178954685991085097214520008190842347836896754167132354568364270956049986389682070753209799244284003876731398918667144851595655048546733456386243530303501699048548276913755773087613333827678441499825127113286611536177634727349996851527825270117258860941772606459907735872629907727535766198499638531272009380558212356549293414141165255800252615931878573154218871573276463474620524757828317244945332419861146148531465153542125015395391971242632003295965364960395790944689745447635541209159738481491075275149969977186644362332837797320536931503221837989503846066676423200780507291200154061095635974092836253586633467989005749933384222545502313039488796908979932210351265988847898384271905184304471229488851017630086658942802672402816359010588079073829290277120262463634159145330026359418455034199205302425536247310445653290030746205213601329186336175984321417688049816668201617421071223896335203855925812288260545964349608969009415679453577005248773176610406190778363581102927720743469832491599678481704196373156347735463971849880806674175006500131037611571588010336351291995282779267470379959580117411374551357002147987695545819998862839850408537993496266009567210068585354886957235231309850098916982230933049004588555207367211859295877974589462105504310461024427478415234413025685625543059769357605129503248193209197368335556065827568572841205279803069297118018984859547169164586613829212969706836959934987414454704326501257907672898848115370221569579950939090965557214921411696211456451540681748601737425637486023247688884466958586345543406726020931975158354117579412629133699267147720630195115542762806623007181870831445539102268865197750878328163178197732566261970462865681273202590589672915899886215592706173055600095248140398434253804640430859263529060618552287708528461731649208552851107794034259155709037728877695619161751371424599103773692917771374575030668033145221243825827830314275065325987120414564443518607975743686783957052535609171260106898321354942383312606247555438792992103254724706688782170588895061720987216685291184850780261522158613191740023194630141881699424510075202652699475154485027912485450136709799738491086206478494130944003288204134996930250169144161328193870882503349359753472876134935640692748958170703042623819497987964774691774363192644223383398884542996474946910548488682142801075356233726458522871663202351919753254118256375839616003552118932569126911367442135361319702392202712611480765915792977233758277092276633837005423124663495024022414681060940782206437728183196035188698213172020630963107365745076589535713414421815123042719827933764040099808861899477982803719614790404998189922149815501702782569091210928012442633575880202801434038002674770016693263353344579116201472756531016356974914732651181367425265353801175365946633265679464876154811779117681284121530978425519641523598396314073013156274370851129315439819615226038053136211175158781003285739868598722934911558477980132151315018608585338966789454823124021778864483511556034482470228979722791819038076292314578030530362230138807017412153240200031402383907535464943144850368672481578056157013570776431390014850405117978491806857903408806473662439295980111201637385294307210703609168587437457003022101720803105356050964950618270488733255965101977880860179404492793111011924018927399747224955086164069854638193361340330674103389546309591270854896333753483796728845054685355759117877285624179357148362658841982719798253576796887499336258955797199631220098796230432677485421893823208290445085318410903602852001701229558383778204590904158268588332048727338760748697065912472186669780119153663879376790197484445297634927015503541437122319443775106724163676232629877315578639033567716246649573129309921609742197776808072044454379732779940208866713704635428601478070404424207301795571527776043834237409712196903319587619701496996070169392459614291870924818629149985689753902047277790428105605895740060099753854603135461470267928741369705168341637662095685883716808845580774375189927678256304122733744510285084039252536066272557868823598919086421363728341099628150918528737583557072847325481753007759790642498290038583301220673008015362948412705938950198132595707708876443226578233714274563332651012012613073108438401070220712385968422100549361865741449428783735413581330942597841034681624931646073553932205803238882708279548918705685481492920944535647443656095187349160876507753897885854676191792018934592811862909932179436679969953755361748692483527179102828056802514538257696325648542642177814663420427156339888026139580459576441515883470034477899989385782356680703731553985427688850580340181588585278684233283423921197849992234174695737804926676615211463262193568193274871264069533726228389657942012959089228366282578209252495566357221074294375677455442396796455603928173693246100478378234802235470778410988936609272275361765336840974113664093646795585759952690921822585299164400872082883627216853279822230386733263791613880490002596142382919251618019044519207134982399524497743122797123150294877232197098274535745577544219716926179387598772309887451115838384685302289276673960472577276504222730600715811840661233501639550302089266600718863776006965148459617897545311514899256117112489686576371391590053635216654732070783408376158869998762238075001511448088270161164822743372185314599374468944137413983496352542532313857777018378794854357189768453403954573486964694649240283112801283855508422713911359656383762333009776339851898380705905745278170034814569677945265086379757424455012769019234145717182674658645390833321380531679854492753872287597733206700569240203138072830017967868680133356663135011056042233639348232013604707040376257857444098245802220771978841069726958670622677427059695448791109677581651919063107961731822794593102752550260426310248821989049496892763098008651928379627081467346516214901311568576931333973594853964392862735219855894291575742449487594981373615828983375434605814301714191821148563862700457233242578032977546526995583658981233269725802469523467498497961890587236325663924173298470045711751272371780841317713886152370727141736008096583657644598716573639723079222872421609470919776724270181222397277871277703973494565243679978338781468663615730464338535091369816061548157579517951275965675521473807946689797587153843991879116186164182345987049357863840726508435641361276646522602638812470293525182568974531064347021554524560311439322794469923730767092580771282341312993124835516772245796002532567490132057896506759659325907325456200506965859379575481925087816732494286832835034060287255811102187046303478041724186745361427021932988999978895421463888014101177651780652297265596499128199576281261216715290206182472321474327383437773540592959820753298092369743060094935948515263328318156428467113186959013863094458402170703952680484978161570910616317152901964119174838461089074377682935273269731293273096265390112406217955268184848118012297277975396165150633758243640121164761170342619191543057208469701383644750293053582431511377219464588856526066755593676972123405611126372982856912010590183469967355972332830245015039363850430804353966276198736626848460148673605614363499558886932181306824751546697815316139857382646895502939845985392844048261602827102924696508815151101864596365894925486461594144531745626473011123162216598493832503420005139954203246716103123932055267941420643596641863423191178514780375828930275388889814476975568390277596151956128781610458263354743839467770531659569699864307737651123807529828927327770016635875445115472038955915183758948058949863581455104182355483036010292283863564568770122909620415629364919220411508228667746235887541604493029073503953365411807452395496398593096511608380692157155807526555260498916057148185866494972862833877188998996957387751464331613681438459315557044620514492517467106240157631387039518132615495632879655485034404251864518038916014445716589489366053690417947633185954640476870121941531310326991852741338228568780872442651752070249515081636513311229378869973093961029379641616701331954070800015727709777479192161160789799079474715287025603741788708231829606978559639038941487237978153971394213743680010139392282316707566599559033695243577264423587284979914613700949668661917344921106403786775611224976464532117712131467895541715789868379961735628595457830327738081999165180067823494859048109660001058164275322165937500338694984747543310234265205401244311962208989920819233905390422493340757143467186648399116043181233841108811685586977062590753290783784511823859272620190856118307286685398196505809640116949532552452738813506763654922120802209713336056289196560780017481492487220821720034779309931183890340089601099889064063327970006231146753123543514681553793576848212140779513831163349030370461041608275232924645104462460802360403631090683146702880420849517705795026411187258152693842765615789970349861601727773507595115074865361693109581028355021528352506785270956640522117572404849774472374959395212476966455526637982728789341420278719865628350295875508125733883590509309425171191470080609014462143723997481395476094622204514406773361607688784173897654299724381957426772047273994503954156797881190379473982914284968605698702212244807567498607324968219078887316821037644528117005706968671702046237845323554432719751075451276646780721258455488481905371410822209704997578776113484293979311877366559510851832967644997196941651800769929065808157954611953909656838170931099987755272105957294197464869309428185027715439776983874201747000982719393168745326607034814634469543558276145234485834748069336854137872076207434569773567985500064587475722175463098446515683202974830340302254873339067566298507131425641978629554401010016688864770099432905420252429220935579955659949056529759810651760727230480372074478527490394105799604257214435637764489000356443854907231625409299597281797293723305496996268909664932838251104541378638801504847602136768974651652211253486309256977807233221473091555706166900498980712502981267387959349063138775348517063615284666020170842390073847919538134889291498641763218730737011887779219030602824843372204963202814863461544164046523355769209407636365099640773294556824723353415122087991161387566356216377572197803140269352236736315801445432525798561509692945229551209089729301955250814848081281335129481202201831854330995509109914550888999186538529747582646633161415279767208584745903981774648395444423179219362956679074883318558467470305589354018117569083231595904513366629802814170647165433516124379552053155895139482225054422684077478644023710749775336831094251563851691248920699110042788389143104971244724253586334378938439508543540012259305017599387881422467562634668918813129540974426911989065361348174094921530795338708508800643862349076496095978542760803517322244333546521439527335442887872004643132133202873056857336001880437113682285831259503056861813623015481601344238178331607546368738915218947669817209216934692558528959444099252363969351631937433111141405423588488017724163245865840812960186580134793645331844968284507926234548145397100193547081999660287619628400367247422047787663645097446026182865369865145290554563546334118389142604752526254926655791884764611773699087631001932161145656408109839164738312783083338594070316878312604810283135265401406694816351821688483678100066366865962491179461488863210182134645725593491378069401428442895394810715680153947158816151206185070992014216523764339759785515837381038856941421109327375910509716172341923920607566243311939450136781928335455502033019987449946417610802531556569962746073712206173636410464088555209600716953775799280081270405356833925387990068020726688924127513212611247310874630177434369859077790357400835153186863741496449833673169381450142641092128874611019881276143136154340883989104028910444493992784776804769576513655199795764577594240230660162894373927303759568545098872659878181215787241365424506415543179644348006881699283695984535272587982696175264383304885407251030186043177349096038040493483539010322776442477003482486327295382507732072413571598212002233864070714677176100694023563561557806817803835185995721807026410677875099789100270861133628820502403038098091071276253056122286067867141025221558303571705113274218040678799140924518467764556880483321021118019550384561683186282189774756604116147063458687500178066122927175452889196627879847538459884318964042053644068435013183864595538676238076940916377115755407176443142367791670025387447924001606074161752802887898332913982984992427102482355985767192093606930257574123795587176563801923570732250765209896928704385519279778099711115176929374946114698801600567901236857209992218660319694429465393204919468951491628105394445585357665990873158679209132001918808946626471436898104502315087810733361290778909344793462598615559636134610730165316120682071810889921633770181729297760999538553401099730533931710767985201909454442450000336321091280890809157671768371066088019182468478949464607165332301905260448623589365969726861985092402601255563635533896935527292645266233819957683764834526381879689170040135160962264525850841959320518142843973367828165237382361286901123429609944158010679393113070829775065288807913465260709345420940291045347849187370405384503846950783435045459327873899868022000511658897758700131094546184464953859562872253456847289305672212349521011240481022224873552993678294173960882619929311796874975415231985155637345295858887316787604422906177844251963139438032106781049887896784305899047312949226575002409905944861178992672194819802253444951956956202721360553076853028511215685469624123903898105387407688193138936590235610703052164855681455757889968171517715968637536955990047863060844185944739928708085086749260912627271061904257570291167287577573037241866983854166119810694986309049530269726477731701949923585577545530689544098240922762982374427335882804117439968138784546579632249659461187205496231065141727174693549433628018654478100571660139953383494331466211411035344786749640484234167834847562676250156041763951684217203947069414509082273867371153373747438338931737889343787506232592875138184811262793367806080689151379377407300173049794527251929834293610096228928020399229580284213955449693777137680133957469891574448406685727337905941643435067137249197591853150953295829823432961187187611967218757457757223358863782565018079387710233602477282620929460409030660446004110539718111396119948266223991227034339919183192698275957371751041743024271739930469473555468934706469782362502665875356280283133639883966437949093261666370463052344691607948628151780467257779667293999705413504489614439384766770650707215923627413265526600957972797363151059468329209236734079831850497272875146260271365003816477059120644128564714675839849452947118569792731180369517241254410346296281882144827592156194884868268171961690771569891299876016640882133964220180327409072030974003533064225705095588739820766559015350636367306650384260523473196740654436729952680753023337688660984648205181809212776655180782939559033624792999279926467608818164316815632104697927120906490440679945473855153384759307078667158964165565842190386374552754129266958100405787690147714675980268901043856003859533918366272479238296970603291464835749720979121105302991011436095325383861845352091166491336069336999751941236294376246281983282065478845192443483600907869153085921674227182587335501379161700801002846961509787490612318005799080443575804224488934802535833227479410434405038112749234162229412899973499095272491231499477028641248434203882775962050508049444824833296875452370140746089324233008696823778692937857276667779582835673714396789904288533683844093167595591550772309856978477597153036278230100221170791303468494651088860731625916832621575923081899101492813165744493417496749228788889940168447855293265945428066266468308324226767566081341424623554820937412839909009477043975482334742990101804819066959125324672982399014011245840165945339711125870471282484251875769087965549871897974947866681753667998497496594251596057343937087105228513181286403536075462021835510704455209577104457056809918349425865477728292466183942354490272546377325915213685197829462537254679382493781437770336986800640486359059996396122716802514604429682089573012379467645415251580974506461021001594832964540666637942116079856835119498534740007341748980933536628412099447398382494752526013187408681111745919225428472163835077650622882992335561142005497236347109402669684036211433885716406227079970076479966996863602808308976974088974942888725046995734974606516086649685072274339966077143562013597250117286466434825727406550208599450070561251414081912336223054948348776010983605648723844419813307994770557144505003958881688691574077121322559991878339060383087782081328054898059109526717079337226212960296447329203710474084596648472712740745949395127417589146188691993175539927599176602618260562557464458872154690727443727076519817329326664660070469977207170960206016680099384957141476498273587100541118374188680694620572819379610255208886894507637024839953338489100072457147991838671725649693228320858400193455054941690045438226012759413352648577725592946462237456920802812261087344766846960401129274241927205026709388968877288447546317408815828740752595659234990870228649978553720959382545901813383799714566977570907162951267409852069170391733695614282284563111166000457664472253905416516284807442319910924025353577171106108828607207858785982552265924257281211548670292769860139305337703573725761949030503659774715939942748594931069604834985952768523594599697590933938223128611770905991322972240069298120950691921576128758724244610004632038062438236638858140827161717204693367291155803201204517715199943882010701865028290929071587682473640537746193279012795425485380905132038916816147854786246952217916598195718024585611113187164522624780200110573307815442041643291131787473182166980988013587363930496433612706349349998743764089257121969003121629708222355516610817110668660137271558629141225146821616967981228947984899943347684681875866175242413288293871281594555272256069670481756957796571879225867866423908086796267356813737334067017081199055913129608233341069206975383689713847408196263638126579252738124473467969075730311192119137417554731770192356972791457943782833903938337039783885878751920655358962598980887178086573948724207471917883299100402220437521738212418053698996831138687876930502562582984598110915018708694690264928753873690080627019305483670680360950004937623867073557366999093292619780156709138892643067678923432853936888941325657800700300563600741107423546473190032785787727725322730730541441201539568578444487447742039898472768676500517301755669344982275012510119547935976724809109341617521318123547669476653155383230177057348634900683945949439170881271771545455062417466336030296683828446786839155692347325145733652324385638266817967762983648105517741822971422210382558699810907909390319608886922142640839395136944632172677783773405467798015661222502782934229480521460258157692828663573874220085402572614037214336002938223567894282805303620300938243779760067108292544658906787532081410352677334944337962232847053155601070006213478626991291693410073184306060401291064377721612690869193205142589290199336418970965464469614696879688913812379287932155988059741225073136395584388189552856598901929218084999132113255992488353133879882670939370381229690461709736389400167177853912377051499279434822365085827987666118755268134271533596670757641632994441279304941821468396937372614766985631433226347311960635507462618119510891053234981790711005271269688752546073533152358617895075777766581102309940893017038494130511373529716995427226705865871657203689579706830917182295629789696486174983973960834370355546309214477314106825856808375589824595249213386876377271172495548983421676769967047458783108498202692167382157407255805128315968972985061032722697838393153130480760770545086317706929446090542781280749580182518706084232257856549933623726251002765359869264091104691672024656430207984865537751338711416922283745430316318121759473924443953800660383771152555366371303639760501560053563215237860060379590439792439066379998766590967625961218324430583632886079918911470798145781156292589049281360080754759447016703488925274453042816439282791588436082104369245402786150462019602344880780916698995954665993531981720954293245196795207709016077922747263701566491069515976762708942073301581870962493612109529868346147869005045721426650849417151982574772031953774055026826398445779999737366024106076888058940395382771165070017152039081064739424916820342278274541968443239348245402916198759933266510199912908354067429331645550397950594116117873570416244953427461115741208388614256076564739412167789280530425790852998833387192964993884321307196820876495216374843094800142779702529482642634651813155796024496142015275591769543493521987123456841419638279546407863604739166715130927768238681768584737436101762600186060911415324640089708415494274624551813512327706722434570119133875058881330960368342902132657638229391913844047881046156011963979289651407664610721253436453288208026418253674370398089536196184271444224879389695775128295235103522702587754234441080704908050764715251750192170895317267403479140905837044269744041980786612704460490365672748343376980167525248436565725786076917858641964002561929507717046838698793938063939879318095750514756804397993913013250295835371314755548240203821300034520555360289806146507819103492283674595250361026661496341282023985607549346359203779654545418055743800114862228429540748712454374420554271141570575748074390987656522947910522742406668510754929477281993248116344968636906537822047888883786657861824027170853451322530498337899565210444527827467182276483066829882069491662585806561708657585227490061884104386258831266677725392428769106569066745293416359171078427049767898589784787035608049681963293156852742918108847711721505285358324747950093013088323233140192615285021741234292766303455118794459578128018020615876985313629570206498644266510763417593721338082055091876400227314073025230259530094356143999559111688744519995287142309081001015711571744799960750302070059954652894345783128375514577383128260258555574479373739590758764283673611038346487855714063734387850207452501093845674315102179549571280040427073630684695504462950015092659858872868945998561046238606916071753232520629752745809766688178044162109858503372988689280118629862182889190868437216262630791064741192284907238532153321896073819766857977033323870443452494943484903274260889119621756368630291052045529983073393013977339407409911659911319112592682923248389655055237359310373909617496819502524153230680186427630479120859222565966342981088882724792221566534505952810335872341416183574346433125894587223911688741044786846878232835205157129421447006246337334033100272965169689795423067232582990422111982864047854739078712877958702835213829222901688503141891846719786165400418435160518617132171808684165586755831585512774064363928295320229952925126743751027721901271055844163954405492170976113250854582029710424328332759116735865931487795414833925162189999572807480848708510805284544698907563820624938744850143771335782238859483828693412289661502713129768517671956427936017051195902197809679042239725974820538310035899010848959025551660537883685891467552660093000969397730825843750668536098199975958584671836686832264451112542621857688125432553612695568389098380731682098970809352880125714075885184290056096497994765755929081477975142237180165918576526723710863261342954567375661320430567987823710047110958354032755567927468373479556740662622329364695239588718331009477432436432000205436164365043035957987061525742615800642270232579279368847666993139443302157726997230913301911959049457623859396118063924481037002578967783180245453777978214659982945338210944945598215826211114184831228990315335341122551834986328995686147148219063247963482531467212612652327826099776617385230127711208516547085944284830131309068166502485282582635530904049713889434295566980818736585827441039757682368373612716482834532828377150373601139865891372694042501214511689380834290523184873461262192093391368175605812104553735323137403654635110737942076925365300252256714638617844612494580606942814985979559221157837888665585100917923458298420986978401955279930704018646786285812038564624543516884683406267676757282391809658336406140749768741951839947689720959186801516127520612314975389493042580741481706586936426564170693725502920176523569946882189691920598255834380977664905868391356296584165995075167982734341423125780963449791523923207273857533535216848272928438060264572869937108239702827365747669818473289234446193835039067965358047182082641007675757235353957530327486127172768960798436973673124345983320481946055706786079227212813522018662560480931090367653412053157909879814340356875328628222770755990521333407312722016137693963642094765390208967553609853988053237554342891367355744685483782195208609453385881327793261489123488058323303164237703046451485368734893196797109094831633627048600559163027531444130276691968085929642603397743575365962438466011250200707383380926644062726389061640235126121784011673633602882632851319186100744834159074704675735438781788753340024389274564494123529348555184101193073969230106450509585612290885222613096731410470129705467301422501159872118172341715132233979898423511138018786527196038188793306727873326639740680103054447364946514081012219105855851740507973321262834816069471853252162644812174762235973931024896489619730542215189783790466314997749491862361259521014197721551316562662114933149034725329979388549330587421360121369446535184208577153731743986334325768086499980776603779455717860394092915961499364020637629484040844497616441343158717379037005602379307495350404741844960165707028363078075193591255782380387238218447774891993681751897851120670431435771967744016428077762912632181711580421523858185122203705805739650579005324655862087346189563224682993878462232223760360597304144966616791446594982275819010833486855970394328610211136741661556334623905123935712070517793880249407382651054468371852266113182790116596337085834351322074477221504887718467932464292119447171169291952178332877585951194561698411965342294352799409771311894849714565822685956098979671502760248983136122629365427221765079564834745160294390759233525938822717758246869862061853731543306846065747310785711224965835880312823820606411601257751978153529055099234371001783573601522378955975956027204157030949503753865938442859214344345215232155633168974217175306175145641827707001803130374900833453612348967214603954348474469137183642888723298829043337166370805757783325801389857470660895157721939108298074533830935587646751172552234066477719384394488028708042225701540535091363356800886176715813512856004794973481391657341099926091616639327360279392163169331175523766388033416621239553688746907077724577683692533932817267236979531824564580863250897036667192729397082042101360325789260535790585250311257364771157820173685448988307399475677304753693865570353057509221522917429796465135495123399606087360393724656680889956626023674759435072327710364138270315403794520060683160792410594377374368417030612474288761886085852981449957065392691564672144386709612457935267688106697240315070277671186344250757039767250903297637622230541719832812201571066017012844797214314605289270832056732137419837664930703530065763128857772665975683570206858095514725855596747352366422696213855654758872054001845906205980619433976396512676087561266594368770567135837978832990681446182307506478670110395262643773742611176140817557341982316081647338049080826761715960514535356903813443913672892745410201217938057948460597402523739079931299786670240421386958003075095608739624465335956305488555726239808886854742003174183398511211480680358531579674029353878490360072255735869535304023298638177574758021117464181819663057099829683157722000679030768934137679482460375409954348617622002600584950971087655562492524765061658473487407774036693390627738603983586264765318757322663815428480501769927999849839096965441420520810510741234790210954113617384310274337570798556854079929883808408163248500187925543671836370641837510350293383262704301720935074779399464001617774829079935250216573037859067081677693570881459182845139580106311766699013075521739286519305967694216904902720854091863905161485184935362601502117672463141031533125447518570845877390284622052552541523963373429339041935262520544003700130256656277269524507937083579020298382565867806397890705013127058281120005604428796051527497065803188498330895044594517662914728802322728697532469271276962901011450933129511381818686487087428950796434710662405498144861972550247734334627970953116522650619263558662589203603776308345733366022244535029541319185264332590256059437028959466583722613577409266407495278095598049778764676706054030060691824232698382678326017794407746501701985979145115352275926314596399667171062766025962831527719072933914161308741770000420768371220503492031113301738438230362019249797443396597292510914052500053711154208812683153373920348210875820207064426404923706050119610211320177831792319406819800563353215045158484568821008775271963723261906416518890821883845419328791757436504316188818849997207445282580834758807867153125264633704703456266841042027544228170611735883293816129709770051134487103016162456697685952267439690505393155182695683182928404242580405815223196602065291676762558462121084345131399535612699756219818913413585834798446757599479676757034338743551462452739661756834980578942693091040298986279747414484943864289017754983777931731098372725492279638447387165215982525907759553423641990264731530710177821122558696946655937721750019860431090169448510352328078017717672473672087558933611562418993882697159942010081004107451059028338663948747400578458834903691080002734393811584207415240110450790360806735196460332226498311693689961992678965714931499626023843598914348979615246183325435871581859971713114433399319669043092259022726535975832927121553522728131449097765363205493907346000847679458539311789615791968586956606258168833782463951209673843212580342986406733183963167247462071854137309457683269214025008068814233237087025910728886248865974624096678132511064814174808520508318125763686327800221010657964715260616543602038052396194596366807756431132573634648099108210629555176154192984615631961545434855319156733689830310961555195569828639903790062353064242211195998044696342240123339056873685674282513296754660503538851708820926107633190350046440400421680832648820717805128358176094066841238599319988922677279369970789230440004828067453304883455015708693205849273004213306242172294686987919493751570000483046546911911721596070870193019466549998016223445759724972916211036503938566138428352023096623957117875731084894009338591674316958903280848623944930526032539173847372728610036090597260206538678187136643443174585919172678100941993750481127582562747151567349238066093258123407969449114057231598281039751376153775514367223000772502030157755738044964428527729262481470184397078529247612707348412604274947180083573915064200581090723113538882890062842109902189367135294644656601697591397982918934372120128511333947469550735956049469376213761554501047682028979426289799060198572620991285908693796271882246170362156639462775266490385159556286871736286730992674288718718067980055422564506396029242229956502144023618739836327262541933994325846872632317403395804655151064010642881260817145929173795952747651418927291126273786355628904649479482740689780024527313753579706221360996093332819786370514255368652091812663914528940654902186218635759357845114356017739339908480490893831498499464858766834414767201614874784982582924742554245094305938684479722198881702498968671761344309177041527820073638758070038955784777075312781563289485267790702691325133433612960942576339210779188501972372661381523710208971884693808612403971342827751560913149578839175822913494794974547855225373583314974140571226992085242526582618433052028669087025986878179117549752297654729328970418685923438258136342204686148062962240882355158246960405914222398838995883173361495170651359467378407558462592627504792129322418075039603940785205864111272992931246185735469251003130480988111391062501492161460482503187397245810853226000021779270432387202387327398719825534052357959203331920437438068367911215180534282328879589907908686367458305162318741753492598402904173035003397601853360540493570811956125227986948095126414119545349097381384956640867165852732186847769851732012532730091741351253517060593365584943856804861506943599603602438826746314470812980044556915316644896929914114375917269303209749528789679283840556538709684076731955714663482173579606359359923935744066573902820692707894086628502564032376910305885212197837520491394691724602504737515173626945691842015181406947647968093507057154867577965180744551318792256959439893274607644283532177472558803297451913628213546194736209953685030250815396742201490195090634145396925723686768450831371203184343294940840473569388416514392448236486554069541558132751549388864247133680698634441254290471702059417314770323289079762193238766638446160152063577382939060550492782675149738138956655992460374473282374671744439390353091501396418384581733305634733177692413834219034577365472346172885250987614903699710668084115194234181120452795721543094457901536725485969967084015833149080979761765477022621623190681896712655215011778763737373173088833761703538094258742916662077884939741065551914362298580203494869765016069029572244532350722519798697361959366348239963523872525698782155066679875119931511279638152962037823715473639478177149716636194529341835412572268490432684564933914379181682039317574056368631304015108601287193520140598437576742386293753337090933637280514156074953744609029257817281760252237026606664596101983370873575992047083455253492181059927917167939118479130765458447485387058737819229647032458180059166439325038866371336239159152007891086225471279999695720285623470218925007288621621321343337442612870124530971454019849806121448541683128185066437317208908245179495583941149373146434104669174130723381445261961808223714492147112404031753100087117697503295236439203489193876621717169942922611121787793993474426812906976259343517988860390862844272598533808825789304527507848290586298702056377998636730924432846802674308713357055969763949266949072268409538234321467760868801603502329475752188948456488061864458273995938872217767155763323840563287910064536291772056937590583260362700398676749363459578608303793317951904459365552359426825853158871235013400404779549283543656732975427988888807243671384019780432862627661635440329083167946245447747620829072258249440030400399804147368782373278416399843653851791578850893541141011326118851343180624467619893459703991528446502563768149004848576813291676443887900245026973191451574890293881891149287527755952240185175121652583251647752276546361914793874983806699486676876509375521214125507495747983768572314829219666602895081725131462486865122010968669876273226166344874682955106541567701902691491233054197548358004073121735069145385412082674019708287605389276573245396081174292832516805144736542339756886378386173402252521360945076464458400508597313343359931622071949002030870381038494985832724946453768814577362725978325078437095166318574293560120393477660908311230975942442551483132145505042669366958362287739055824822126748110635507933907772991860136990996148362913318500408883643090634931270785797284074977872463842332803271185213107380186472307422699929344298251310214846865398799751968023718735165492119067472878065346029553682531970289971005842808829261921871363530251370291978263260864042855156859988715280863910250393128525968585196263498355269443962320830870625824155506888694974578972846260860504867286234589460223646924456219831975187892373681510338633891874145845160960036310407453320867834125598127610583718479530759009380458469027269797456473920184817127695525945564183882583370682318466301473465857252127287582537149833147362209971129654617135891136674824135190429354127081845573157120630464413029321960219974126840403963126231804482957319390391868923351751442000575224750579808121029971982953121443041208057063456283540745241539978397529814897678896239463952609751535163165077788215053750115010696878705499519293602378986844282744996386706131980924871118882373511164766237613068711813759459238588689217900471703025864889181017058268049922930064400873597499217720642422470720776183441916274930140383334057345593242265613973737803949603953870173759098462904338598486605966691522402439644785213507918041995494729084648486434110602209922538809894177383213292378733088698890070977245389881765247347326032997017790409228283577745697514307582583067374620573787216433770853477511432813461452667341773925393919594886196694219973201696124972545726761709228817620050005791167929253982939256224446137864728990055037466131797291784289958543605441826101690883651241156037236994578821045663462305820870276277531346602788015460379956174223520992023594829054502653477955784101408115664078810832461496153774400603469134142628165858792340383782369911980381586296077815775022315081221479643276962830395722303992808903338619646002383619588734886000229574884148305592197117511090937747390931400020880845122221332087262075195185296774264011223116577552973008167064139650828579449885632658285933343333163955791688697497967130574177626437006145385420913184849654251976843917210931348645484080633663001817517685809886426890362996892912174654916266254961684937871742132089688699964290337916148170045057518450333715507816462475387121543400827047036772092115962871777513550639549171203802391476953565918955457850578402177062463370426658146707532476822321951801327972727095410150086157874383954240211919972144475523077571293183549370659233905567367668191114906835846051648568138552250220415235571136506800688685463592223541127762001345081355450683602494020879189536610339330534082735844617288614402349021485309152487248393993512089351112064320949757328165266495885582915984758527801475466542733890550760147120358495397747053880662432663949305018130161526062459938130359045071360802071344923792335681703095785016417892323136752493819020220067884521855338065443190780021884606202106582783324539502037354618738510579751688117274672592549488204888672108627143966753233941752253865330094587544977772645916500167856727497890873957979557404512262170907644984848809031399945563584699044475950624181686301936818588593873758101735629341079845037681174794384443796764764409640349177703093345900349899430271619424634401896540606751045443257575410585965994784460813122593707185944410904886810699950097092768173022357923756638505524628247187195749690894274331143948801495848224948615654064531364674279510201446739231018683104219672207195427702499427170892066555636674605389344777781300262628217413067378655515076963043853729311278060147340275983277883197806635685563960911213039955927208944583251073080696583963972743629053884033466013400088658762808032850790109617278155114200851021484599555286064541658270857961093012347487428350782059126966873911139192872872338811780442142769640752329449089835892568036860367215835868534065897764182248464449715502317307303171569373824494720977646689256738554011573504472197282238813399831732801733196993440305883458907154126157820667372774700029123785450346052190627116212456413390585337111380725004931366621773577987647312666958855161421837490597235375747371542103699547946493967837114822727905724765114359719012676865847234627063556280639341500239094325226457483153890527086153661649532124326058954887568217035289528249094835173795158402493633474562163691628761513962002809794889992425170254652911002214820477460903877553514784440709276471583989321165557585546006242665944023321784960096832058143354006397495234725151159429683085365982080580193985305974597563286324257415598710841430665754188602254677305857054658786416162286809204525333090712159275199554598738799327231300463536907441572692949287506213567289974350722937917906576128225646300287446119136588581250223172705672129531358145031383634608585801357628369887767149362933649302427272304184410878256608110895213138321991101766972202262169389345200024899433688859743158482039386804676839152306283064921385764372748501600436629951242946295023057549159960994391913512859475324648294458603289766205172993611208559065940797315209038708744309679773641264562219143880836326819763511114357993311567331052722949541097597976272770703598746527392477442006988610793842213605543071551596490026914970292356731035745791849784961022781884157911595618861242967140766711354740283208791459012294376022529068193213633507269992596702442813711335794699298937320069422105719684053345534537448463131034584934648603407713541236770357840962870610945484628440472715233287728445354912815771269593843785362407669585650448618648839151835934599488933475072799323016771568724384507896131885226950010631782221069485784875764121434427026070056578894570767057870890908664405260800597891008389110970309735178651789702890405190269332324012462028978391115660953707234198003829379469715266374068634746848490516931769779898914865161718675955001551501477358851535641351539632248734760604414494148073525419880465374836948804369960630046847265357485409670029348570518238457223253234331006330862689376415002750454933369706783085320790504788030956647380443621708141684707257894000036798709519413113260910923489469366721342271377216240436400796214301306109043326573120739161271469812189267272675161947507225012692558473852285503816847662210344117888036841757879012577774143697110581590621995536917972460791447748847833154196296672133338775761654322402274772914473657189336776413887856075483343168307579183547574426069508370695465298411556544210400603096668696883373499649011258599612597545050855439646769262493470890986284980341484684827596473410078349031898885966777328037952377151755172249854780886116018220929928792951641566953576857996510654723401265037252158218362637509619528707093306339768817129673854786841224448000069521871826461516769026832424270211660948307001597473962283873776125847533057179773275202523134423127086509519863745670257159668988801644575771162043386787358993225872392731088903957161524623662373025438613460677220611733440822182752124955935119640754848899237950290194841210429324043912555369810296466829676051038220797008376297974689624440474879075860122701679499678188975459892974435652776048455788185838991553545284487182231127009342923162575305897361970988823556908476507845906867739157187713255885017101963824255350258331153061174975957437858372671099311803846578337607952590833794094607503248097769181613532713935603549953579268685858702024400993050883813742865106705602683298104857906044096554387712484229852808288089683616310777751860525582141948211946145150520409788604870340053770840795883409077863637521486173065038973972480150465833938824857212800808727815852487601497371282066961085224948218219558036671167387064021775405040436706770084180044679744604775280630440490534898380797504274161658339683551341015303848413099180253116244182964737285688583660299476862697105546374011511095072188261932788287504990018400439181857869657806762439853431072100218045416947044823073308210610091407370718457961389078259057335370428398305546035159929677446699744403139017920833394589522749503225245225881759536194983779022243583105616592625427485280962511374592431640839816347243082614693826516958925838589792788238694477369786099762277638830594331611806700968357995874816210410909021621251617455852570189202424666702586368086044933742951555309425885452290536738511418184456204843872086551571763293113637428953821186485567404369105688652179412364343976956941576879496415988394684949130143499769308838295539926144846626139118750221426196175812380983097565600926318665072551557539186180288000703486762647047556297578874449842343536551321798673726735292942185975826708274791096897901890231466034144474522798465866176227986412438087728984028837935771537187006966777516968580364644719072508004159700215077947656990995506023369307878096563369304941189363415973117666316999835170073733211631579338463683198646667842217028042809505410576138834375591566030444240717157220675741354651605774629758209923039076083677645630197982022597847470187463979088543804540964247136750304599679059034354770156026493243742330273835142860079748526500179269413801836913407109726947605166446369685620888779377357762351103051561277064510118152977161326905402090437515679825069819634793402095116585439292449690286272569852900639536133896270427745605862616096693291661145560062781580330844537918159305794017730068816794729596753009227785967056784539759878674981016263568741856836276781514714398257704599294333253273231988389749995587574448676184631912642634809846985071789093287077315238493908950624621775989845581592874545896544903258112133498720064428507040992058361521840259678676205416852870518631145399195215789784902264635913783471782059912897472161405380981062683205561069285690826172896752984736017111750831702486744979780671069086642423599904029074024664294420830450693383032081314511685877895417770394154914347705568550634526140940874302944308556356216765894027222822516238428228634976497671435653791673008462725413752983258797641209968589648833271802652687635500074754158639382683420724612145843599861763501611394707440497173706534230413107324848242668632723384205124481240258250668360880468908897272011502583462441155798879610325246172368552762199395242803645274769075661887467375493022005792907251400481753982559967431891478269828251053151928913455018114377028595546489646689769861048631472107078010425670568930882107844506508533286343608805989596971985133017063063286605431014606492991891556885151845818229315174063180337264739741129423313532113742280361791723820184043245840025159984943700660334543953921620072567944481413802767604811751898052909596110293242068703756395946919185755686158550402729924776696575570705037592717325628860482745575965636812918993985514811531756626435751796794970107790352241605368105021723464199445850563290775896535565257512498654829401191794606063604509547605114167692266674171775636608576453311549732023533654182732543605027050935665000322142727931309731690371128011117837348619286951638542699816801549757328227334087151808928973059241679107720248686825336612019973688838173356951831443708739585265378889124716526634655001396064345553884837556054126487561465770242312957781535543238007165805562040107867802117320467710200177342818487054198355800939251430494432397711906295402637902884162656845853091915258154099058894426604736590955265269519576265818552330982904177267456485550277989942570347505120092621443994849220960600996069220436320034286953590775723900079408337406989538749812113903087171665310214110199636686121362647744141793667146068497695185167501143425899874266689769668140029804190761498914674318383714398436288030623475245704900126830466435544700898978786352533709857106107739575533936567726279567800900751209522402260594848653357524698449504348268642862154619134234704785479329166941511490822331567572675422564070055128134041379475618329968465025374229888563033735120866838354072889111443783977176289616498021225265348359619338107685010077601076680916900457753680889325940151362122779956983193177920091430853240098002970386638923552674072544732862142456289653300898003774045027580833191435708931920966256705253189339886776308920384839783778272064746459664505107311878253300705430388970232772705629566938553282550233289180347399985093907122360152588267033574568004076933722053474861756060331390177493732863715272304826426261743138498029345342613290378199278583467114179058626226831330567856848388212013813937909314732019789667596193645065109419890727138674146117580222791505301030669980866909946712938999396294467914678859753769043778202967801608877873659947121730499736964411594998946968637407806094867616682927020439364235520812531944075581264249150503108627348496371603532045701483555508382748368266882014738069650242450296633083253448006226276304960162879503067505647934534666097022898454137600524907840631298462397019054059384497581200412528913992166838340988660217476340894934172304442875206265930558292088893150240266559744914789779675432417822081172056437219252887024179306454689594528731900014885411102364817924735950213916244102448000744341987068734350081024149847060836772420532400207150549433193580656062556486911418346386732650625291257720057965565621516962216055403703892790420123105979901408118626075490810986412298326634802751814695247357039753257471686975798766650388627899670147576726715181215184436079676754472568643300189832222947502210377934464056521189782462488644516221450367067728337286924554830197473433868745430842953066420937147841190893269628050366163279005769321436425249447353667019690168824133635241315197297083125910298177826204868569254454253760329676431044519368716132328145860315133984686689431377081266861332942219591904345899170657202790551888478795738762060804370412853624896566454427360891440514185533551886072496533951961908373917638465615831282258194843291383672234923280568075890641864847035927725605681335355992237426454528523617061050022954621042644595368385869517366218337114164369604179199292108818467709254947784026479981511656348254588688296204703519713444902513296043741344014505076115219263147956015599927645334644528457624914743199801860940711122632846911052248972188322781810872896204102975508990036732072621092286033914852060307795967042572781536507253660968138778812724471238819750712734480720960190720862275427591240802032800838517370425564594447502766566767636112184861625476184434523830739104360011239526206356440083165435122374072292091216640523306280407857190094206658772490123001029326455563312289412402993720267313144288405153219196666902891008653882954978738093745077370805972014920818082966601258261369793225576314285349280298496051231433944643847825352621778080877750598266306313732689641298777694955518479703863856289781829281007391574655690118385929370750594736132767237290247462467263249628442236172190308947527783136781440579822782696787552854740284243750127994162488241054676714814730698587804937552859995039923254352748224351708338463101109559334826333104419712958959280091733291154542910018384539156184017946706053586609064606119452849812082276740583422906845942615941237360226994465384865010733593410021222865672042155094678569601565921634791720516303405999094796864388766376754830998465718442355332375705567747407893783140000467259689204447270590986464349946249996638765556358453424677006234153049836890548539891808956416130899488170943985691241065822782082421537882183963540433535500894976633183122449244770658035232649776549948120398541527586055700945680724987444611704823454656105777087534825734254865236926381250750852328487122816010779287101331789912831957608869982264294790723366624206618499263745090138904058977604505120755426102652682301262809632292759762693433487806085959869394483097367864689298907740622107967832258551251226899824556833033422210730414601360752269912316056563565249911846663888374889358563837914328148242025828818635440051871593878111164061485000796935620508156349502423604312137267152420547025928313038385725263738690213018363263995480798490331832790316323595747610833714252695438476533897026662105357713241870963940512036165957988743151647196785710909662631198932183408845632347269779771587799643104082705487632901401636267279313681613525976509690881421776242228847990205956645768262308947661291833038723044620957518941514744387861275661728122784881403608356810266567606087384014499363500601854021864630492860963501622957722138321478934064210288840923517091952137987730300804298255564867793935092364399485382000967169931643046968384242614714667397239403617353545989569161211954810055635898840624129926397872350104513489361034749525210873013282285479677460142450751877086024278938375246029685629958169502100271481130253035050070069467675727615169253515820068561749944517531358990454072251284101693975721663615877927152739910103468753438696810171669662303077593972736003775850665575899314803093844838669373126692523927180732768551730882223443672999050864836641767105488342738268300503678809750636861325879141713274893103035089926048187946220384457253244170005033971775756671252434079470150925926523975098122535286655804650244026604101898943534705820604731702368103736255703876738517116963540276490647465030533461798867258341013417862119790225833473866402666822850742844142296861963903893013409896976348451247948254294412493292511836816690605005895449935087984224779089664240522993005043106814721394917508131817819502823984027823632874041897248890502984730218486486246276347186282624625830742928454379776707314139311778593151396333118450798505929823536670519398063160335574360396726826779112818020934750597051925931003380193198929433437600998359747052326559261979692376234860176248383805750627471027022591663711782704322069789291212573309797338774197031386470894640412103022316578793687501979066306444769705388505660049640062115109610056672534284958887424079402056608604259189844785030073547163855237919711160143861821659621070720156533849412299270171736926384068868593551476813796071188173714310194388145107862276704908998183082137839545089990201721595512689556945150773751834660785489958962644998927870245989473030684106101288962542349567956108802167210897482675068416084523219456581335029651598529228008486172477671214984255071427479931596977768507773418395612528387292471386743330993941774108564912156009745804058271388625813314885286794461259091608790004402609615246048914414575389663046357123309981572217759023862989111143120954264224482424545224701709107036116521538240652197299517041806519170367299794149926710674214408451485283286650445110310431226854351756128320614698408863372473554963021949767035115512342054978186323647647610561124666048721042862443157079045117699468628756528022330632491500630526710383196920509578030902823032042941376778924565027072178111117801607052758742914783766124589881506650881871602639565627397562627917812097430794124785304034762004453519376842987457460173201274776948564520940814078702586206350945885191948782843236604191932244063082711513788110515071580076006721963098876592164136021258730474264971399422158473607509851612463376974427703391154788143323721376284824975216566892566136571353187069245207298269661581761339136785613276998678206841832095981746146234119528602690312511026325185857496351853190638950253264808876271414538119603255981753867586948732156622334469258024847900284973792897099854021301392383643365864205127380550360143518108795646721412433796875150594058757903546416400131521489673178750994913523951788789047693219932848173107874665713605700362156183992066205840640424780769370910923295360632536804519659921108593384327889198517504630000348110001934494263503468724088026424856070490632878033582913652339538911967489178846042045632887038927226193612935342017955769387670312062816430321586664071604622496507535992531655551444655827101075899279472213871299745745771582864677675927546673927822291683403406044745925975197371738065384923692320520460124869977623615539306147123615921282292907365965496666677251971947200220943849297029167361994427243964699716244777379129720899628761805508926815674352278797110359253813186477973680529328111013945151827826326561507396984740939842658017531586488838483201554469162870781829891067940100602121247366143096936383413200524616186092935046752630658437248806755105844907474653914617292896718001554025905935888867321749829498105413452718959448268844512208173602052030486039138024144972983165702289686891064581264689862765771590315753410722269669116729901766968869765091054538813959155585178662893209209471242104055968085402187310913976762438169603521694300269456735872953430653750121386753930312832882298036043963909112568129924784823676009384537408049342196643331451411935693825506497463752964183370858941846646627925808092125343532485585576333367552493159728712390843960072156715482423132093882413426199337212647769328464620753536715172962370671991877043719921066220088089675191173751772727257628667226103950404258268886866121753934540027991745890270062446356849187191359673582363022128772033675969842726395255442770212075775282695947615223173273293596180097338321648925801768657779981556391390606337607106203063944802589692220470381840675322836015724210124660172347857532199417030240459828600866699470494326361237959446773580048668717376901139093956959255658169643948153285214956330158303972874465370603355770877435362473314397022437541526259693005556809287076289161972462780204805936280072825075097612612709976174911764082180621409068679498569295248148205537828787672896249794836465165141442009273918171666430162993677602305633250757051941595016996698313796637815176923238912513163461453129169093864940420232059165741428795944606547642189701965571992532349526714345474998908967290004980983220980171302008909571120739610998958343660508434507362104745759747539934344795014966488418313399506545608189749313087305900192149367386636067980095460894126038444559986167009095491324175331930409158424960588688627757534710914703740813704469990047324055362105105899239373018336472646364446407750692749003055199135311140449125263973371473813019646689453875409294396217629223746139000473562491065813089074641207233657919799538781409680919053850999678226577874736559633498063382610947835669343704735513846498397224994401239713833744957484854505340789117863189966360014675273765885298815904460437920720131936350105155213225390368526506788655495839674890502695299282771133056750974772015721389637227554269087785178966981081958557874300448729683796016291355981314020726342614397436355133571834905474182303480086355468662024015693411858386422549435152464697070111636722422737789567380689861354030884633958338616544780770891704228298391725470757214731663111449825235358908490299492886905155817502101993048612855516562132851752665033059748334455302182373719551370282747669513993174707220738044196777134997883881354110698730606404051259577417890708242379668579234323123448978659105407678038011985338358359156548743067237222311579544087597030856908421402902872855213196095535031468021613729206879408736522413903011627596506041724897957755066595094111179409073278176274684287719303138427851814015628564266512832878223306865962978368720041061063901627455504562103267654228315464463137700274775577079471313542267473668770228149968262557117236400914599641760912042126543535109171958842655475288610515757706488395362475498902074743993159989717122749812788859092118158869175727083817914116495815707564637017648573217452205213292956600265085668605072224248658078937982084110552924739291029475074560460867251875322154032084529431821494241386839792715070333461623426600430904953428412530475580014930760259102332243837929440087025052581959720612924094348693886556718697186443262113469634133363184142200248871754468171452567525614786796230984896483830583565096711038791254165288159007277555311485923313909381926920390952391863053181979505773006414213284344259547538857632619702298702860444793399447316314249679340805727504404625696102537810955121596406774625089311103176716671051546414329526889261287463759675314483485744108054133329170974803120183832964762027355908436564591007917181993853629970647346262066500787576734997008366615328245846403658905692941709811278306926312448204263073710871574619052852105528473128356550843375386856895791290976188768986426290310565600629387935790628667665558037564230041403560520904094340006823808789728580628455100708290948497197996109408967545478669229477037948056852896407304924948336978135164304821187209888376552361121107985864420942470470034654202904288083782537070763275744991015917969262928519737805672477570137575331673689414876347389791240408476912393419826482147974421722768445666380093284865306920005636844752340734578914440534003612319132783901258854531772358599849205089841873603959457741187494061319979962944192052062425957029490581943877373954389770639052320094354815215571165455689638792894814573814470980112729483590800969034478623313884542989674347768603297539124848158573866355532413610434716601077426770552549334931946923804585700653872503226446025655410510321449142052769240726303729364087036053365939219359706030429559522052279424010925172511708095139005142007802226747220562437707626076840759858757817134458838851371882086660715621158113244198125255610005394044919981773963259572863916295881451344314129842666592424696894264137230407402927377134093562774316569835755487676811571510732395238644461930288232182178136283106945167849497047656863901664880924474015295408919480419940148548293306415377300648058232191264232441354351207638815763877308525480010463583744330502624777931694149788671675473140822939537414393632419909681159279735441245223589272706488026731404671038843461637245148553639982010630580688448711721706085120446339682660204929360712686451845473954059432536736552296306057008926975246594317596173679503244464855524543774507528883858426658992179558727741717837445028033751125975096867823815769795250076525060541031081992577471670020378927128656533910492696191132287723155818951681834515935770401262882756856624440178306106123619821914909623888091922471008230140013061176125104360203153967930643865658664631927183033467925390412515861344372694817446103707830652536512691925138781551347778963913310582452943304866717225946146539687191305709272146256598570830726088060772036839291615408855202140538063627338231599125723103020623253857574818042954947786054660272435572747263239559628742935547678895849868138138720439596056308970295480535210386878609077689286240964780214654034667769963061959925993279790357893044988941233033067063919964247320762751821322827234112435791020605688290657129477255648499362049859492140498955630172590347685545054724531359464563356580786666884595906537512772001674703027156698883647239017455382068684623458206393744017382812646228873263361407065778208059158087302329439372921056720683104148939741749921836098121899286200153243277687209582544561104718728632258262265903282702242849622512411336081505923046513424138688487525729198217916788271126520791720835795880647748256663708090749761905530722826434019505343968758469412291102645693912076008239033021330469896065391269083983797793279500714253603075888162922817137553572107950429254696492588186506995109320759509484686069631213016384236636769079281945501718448724677341800962524252645551934592874533342243981607882779309200506745658903900099500559727866385763161651972169484697994735972571542164738371168368930418734431088864646508530614800370654078002079748733020643275921921976773662292531253982393019345558992982496277834182070247944783451702259888080064040712322276353817449436137172543815531445566296837871620099106895221475291288904464417320250552412946987802960461962133008683203167107002366934687910094819031146778007325177675652502771971626439352723009045696236372134404783786258163287152813842133976976767587558687504928909172176380548747101574172099387942996248759030332828002072230088330954697109217986641860361678304223709759728964586010336535197844083938644088935410803057952194619270253855247515216361071400612623328388861642658580149199585691466891736494499626429569489468950934981686892019784533709055758723085858711638386020485764482369686976082192827429451503103483714828245979662452263163172467269907222258645701257133482397267044962239143094415631886053623339861262961482030611192466565488658994744034148776686640103463164787905740115963358444275984943729387168471378454274127074126881322005602103050195406288392194507569757086383065756824839726836299147166948210170270513120363178253868208173156397829882883793825122441140861472928343217366997381301909018074126601445402157914496532459622553117402942627679069893764073189706565007562837480621036523928257520473891082365001043910795603442730554018974167401237566053031144770681092251682294230286603514111547821699092247955105970868656680305899591328155135778055537271941136747028032222238375303577319327392809856612318607600556728762862961075864801713022137503896053518263844889829724839538260562076378781780064379432531230694128256181256859413679963005117251058787161340108919526222792012637327275669497524615813168370672084006266850314457769599179512805206012611557097047067925005312373898050782222287386992049936299755085455442805736527364789424992967797032514202979358906381121785267229743795457623127199350209311566351814298297407394794520682269531079469557917661056399445255866811554286348888145596949918365308515959059780652410129261467558951696715582292798420694605300898325612924726929820964442607029175779514782503172472861259385118529158028212584331088526502448880886025812910005188781013485635573565373824963931848608910796525326100876522952227857516715257671415530360561552586415752138562762285629614273217694726781919612715328970636434320327887723444526281120317742426038712949976168908206639445679436521566174098247936678062963651095472407163125626237519822164687640541897358707792102754305305517146051359381225913200711320409556791605586953437900201503554788502109487471531515552996678734131360055780285152758843061835858954468429457150245350047982675678644838813079541972017892373846327018662908718005638304525241581202814757931744187776837147055984779512020614022123094976301862104009249415299792896954055162031297707299040129766441614749376698690669624938150256276414587017199675356650385953903941129083163124265848940949975591981168822650898518511591803788103111382938692782509185888383868676361381546462489065677975390320593457234769765478905933022055988299571235794808362304771524609812800644101629477869749006198955736088201345797726859460990226034016013600530389327972717919742899082964321567484001447718886756465210076910001040162754497251100757047072553657416480579005223039795680934939812945895614195259578899849479461524355945677815441521015852030038529397437486204278168175597175021652528165724267983344124963865218567367085883346726894053341728766497273391359958317961664782865323038995660344592782208867778640634637033051212518854065053773661574773924970579184941065669149100616705997551840084248585786554406951389520795171483285032133626959225821079409065226707870764116389098908048933461360082363600764553517694105161010415020760187223718916635431075972841344713859585868578436155749215514202260302010974276286272664776886257677364241310915368272940925069383098240951015165365957250009342315824002459895985470910413098547675057039063302333918349528319091741419813881635744963869625540686220834049811364553722131910978961258988019412825142454039451110271706877687895138413537737360841450552991456369418721421281570570643775614325117206847903250295380208626135469765067251957440933894447799781541125369717986361944486375400533874745237903346639505706166805977394370046023544400390617037180337063840760596763116846405860701525538909866685815665671280470707515136069551338617021054356976099481007768931251164491869354925435232473317908939671972584293681898337064732792820267718568866780866208920262350746941159450738245149186662074498762399177091023809876058785601953492965136735392606508170574169125621547685758705447194827817504410210091623262705529032280111888574278971445920546250573481882331840160762163634122441861556832963171431554392250688418585459725427016610356549025998777385995779489922468086456523944420550620291789858289689133032747273273878431510529705259777452986241626776113950120604669479757038023414877400034582880902276617866694836666507524475853864223284211096280750395999453365899723959678882332214170939668993150475108577744025813158502186666482043299155751998533004998390810470749343192917215943311121772422402358749869979017808193102223792697440070762805513880118923045254112095462618820803021770424824778224052944678075535833697844335686646754389318930085562554999506286348116315168524729279137193290031852957614800819545597751012303968515257731627276759526690613937642120174214779039798219296097746964452322252584611520791660231679299701063747830354559399105014791573173195011916502954195437252290821847619749609544814118645025428433616618646652654274602102116069434709949457940231652098969057041282310525978357726727996590916631869924510643683906423103156804654440997406644569905057002798506482572585428361080065696683416904953503166835289184112293534860406187461425689982733223962552409240661879588330168784631732774279736223723764945564774408513177109128323401602859398214200493831355319486981285764251819018715872679377206200253381370079411821366099136214200362012809043453061544105208606842048641244268948772880857287940848571634817356684027970871433694166014985645009568930737329300910373375351651544189044616270941525838657413879692068174352301369709245750985328258569092226363983779616830615116193580975606638613636886338448129386475493793933141616802881215723403758674440302922148938526131229694717076745428387390566513096594729011398797610170842455388320594753839113013714377748379020700047836959418800355725243068843451306966483521508457414013341061695225313126014687029367911604501708218972776775533137754017790869554288886708752747547459433385535763048038007986243758153241773296875654735723151025647671915082721952292755355216321822108343891185490121165794570052244098277140467308348304238671960972108229421222300771659902463126174929774272476351514271172668537578427559488415361277474442753358443898630021511302494868447064472485611103116191680003915642860898489363814253410442013303948112909278023142512956263340240072507386069121583706972939752388946366372658289971923105974120728295780464829000751275763966036904485385761419315408831206794191920194692914959033109877844700294667242044986804408135652885080695220710415736677967169616535021982767039322832492491266192385784717790155528100407724402881396835228525023648586018707450216581212384020463339924662266602417855164170959243507758333926389680970878090332308110361919708856914963784069545308460012340253709717121200262789298190245584175933557121243588984807189476719603990002617134339160895204720016118380734957875859374439576752638594230535225761257287324082028003317722316076395155215389764322740871542339480949785069541426115275943844793399568065049439940679543849366490048035468546255759935422964457370538286983723576460590165678517444701061921707972619130910423914443840576300832374545205729564670755716073570102259187794299837516102565894563058471193962835221732774828305239615476643286132844122062336640340484480164624214613992175590972119328228775550951561970736753958082817632785163413885119526329679961566945600160978585140081265560545041429291758249920491487620207931721399549831519835280829729311113895558003493938972672806441350246608046666618146860427592994403245159238970303748421537581425785843392789616375457793469124167106419347624217186502408857570452905132947511769263430129204019598178528225752074942793662669382396233587260778478618552550294283088211359797294265271682620200080818033157017734285032084411344361186353599078544965679264191598193818070918203703050008248537630454986410809345931837181759367946887429822299528139273618386506345870951367289123530274785952374506002939050506572158827743515363036223327349619784261498568549378681482248920797305025954226121271435146200604414336821074319604495895725626467518753768925139407346691609749867722570814282919198328000575026102904848311640949060982701979960744021372746802389443173800195093364052170324602707600272164159471771223304553134867577023653012972441219294384889092590550104598931673026951459314347900720984837587202832332008710183426915757073381682579940093140714240256260418290595819278944518629985858283274734999841560535519395067620315646444340883282061158729514410603096352503226600756069753467869277893288351668994101590450690541841513121161072091787527004599975672159022806910974004659836124455091212647802477413445472952338027079135054498644380238889621067142851506488207792638662831006219405595965681426665562791775434737735238294510751183454714930705003337927662178927565236843193518960531829136677360887600520718953081581974286879243909013151669705689229399213361475223576372366906649876213248028201627493642635459251913489744017152214820566102289097720170585954594988673650892976969212224774224196565622561673624658236585474938601863452694225557482211086273787161014132853885933679493644177735503632802921290872904503836229846349151392692616739260402968038580702533141576248897779301408158023894173163116023943918787372304275768426508496875398943102553967910655756124395833485295159652062727550160824130594482102641722352980566046919023793315503593141103694641282724188871036121937638878458060497976586091898128637947644082932709319510312558148465840648391743190704455452944770147602332263211578098897361107012678179433297395021076338429942693695686515114530904353282589478127369566380148198078753895778431342123726873052402534620016033704392731844683442569402472951311686796021118411100873443111786200816913271377310657676570067681656780704997264146103067995330079977839942848253262421819735623318572715074664594174599348355494443678335584836380503623588682917506573625415986034312394097890944746751284255840512573959459468769571231634769922707557851965121681002442792768447887239923521171551835041071003356504098198013836597831921524719143378443474497558080280688166866464598125385000131365988725205843543145269581342685727173087430323252662479479568095435536172872132240667119626842786693389038263104355807309580468446186010275599506551910465560614974795196187049502613802396913557566186833158231192911969398750226247779297715406350220233319140273809026292676827420298317237950414418420422186910441487199027768234594614738213456841733034498826577366480339809686669211011261505619599501559697233330523984947012419293320210001767745725121697704960033632381111128143584517322767717767141482234886968664690883100112057414557211340438954041126109816788217954316765563998234126257999749578725467581333839401354691188500340227581395032546919204578021551387497964042447842089277880591044480377224944213239743328118097280438800753296852772056521892078816374438619649795195469049045140997550076116701523731371669548480826230641708446305048795646950885829328133112633251007063587405595393618670816960552488383935509328028414707798360122211718209958592875295361752150289819814493745499240020984121959397240173030514819317735993805315291192485189371625020037028876896700141455010290988344568272415706715737075775453338172774408828747236575342855789563052741269480466650781869900599355732294957343034257147181923435733119279448931613146744718723379654944975691143390661227126419660192231748148199828321951037466441862132628256572827830885150187662752700886436612690043687692750738807376665093247482634076364056717338719826885218837659562360913892463836059321295982994420954962242299622592173781654481667702752472389560240813670431652250933615041967432348004492449044202240175600241513092581339668950467376193808421652847485616018861946906533925179960605966559199020771509949435392003082546117815394664232395725403840460538522744969731254297442161237655340920002455943239439458737621537317544672675415884334878545613784155054910175536396433148304804768057079703712565072772056394513263007698860370251828662958751638192876983907509304540352388997572834662427561711496073813979942357895768682539012033997321002374001127063389356826367690115345209076167516162213637894637684928020687107543421814597769971757081666134884066164104403051081646780059230407364828922107006863407170372113427373019777784902325832444534245932425408511801038175596823241873574811689349004062903449023259893577303988202663007660808566897966666228082077477045954637321838869680681553848038793675747765404152510452118512518894489529296940674174328047525104704246056270166761605522886641570642831718248669219952643596147724180723826135993871172631537725606283364598115290781366227069726207044779566442099980303637493408471277380660491282079637037531988560086203701716501320011531032030941921963389253377333832107529437164386962621288372532691531206266353401094537218666950144160645676848797695304333597442126398056232529457137299260372192385625917136551359932802503563887624456245299206374565741221382948643984003237582418632804176662780830781175996182414515623406262231543668899892656094832383676150232656081643981466679236376525417504983437052529965001791595643089406394118598098802168450542303060309227088049095169484881297802215987242995757728706454676876934472134815987543720922108898329899491742852667661184920211470229038655894616193960703607821348354386839430770754101525754501997133446486539779910460145379423786423317216234252063690500830991945108794191202793964185145626153239549861867561564726215829459279072146321822927284320864896764645884806655623212746227186303290365234939962324466371008783147879760510793716324734174128381451308670256996731205870829293649414438641463277393082169526966556241408716100206554144405882109357252643517104501976207044866634269242803147773726829684414102528803499194412678173756812399382293013376954440622173606604856607477123272083698538198514720986797805456717377097946835404960744600534935545220624804798085800556280341716845950237407050088866109625525904148858439687970232446990450871251425509209393273727672528935189162392992754122531871123162864144837342297626338030204242698609562110732475534630863207822212432580243350799297451608995747050711034470771899163268605667894273375911586985139957963783605523168737541741150412860015255976529576909813533383738255890394207009349366389189231729502643897892564393110491605336510602487318564332792193191640647830053751456392920195884470910912702453353886397851429756821143981282306152246949301605364928480381141161172467846954474610106745273331795176505018032055768781769659536351158215335253278131481803989649596999269027844894158952867032343516685190162721980221580740096469782228608906787635264294438854102510119829648417019734081614379032128838500038858295154050850890532763740803122766619145966181248932156330720282524467897192272388591598894142903217487474871918000361635259599172766182553617558060146090167760287474691751873044542659717098039439933645067356627831909942326657736580792116824789974183621359831837387457121102263154986641883597164995665621038462928427432086188682749021383993258885178398407661966812102764616707173200534092405565311406736723001413623259003979107142627821315350021719518200678463631865170953917355009667938852290676782292638219785670014265634576189557923117146734316356062712160484394098965562641020491409237113089093211975572667041895232664278461474459623030940736298768185680364013333169056120600593992061529156367458676098399644920375682956697205406942026825666658610426011475578362610822995029829684535809201614278646948950973132083664058119704566777365539617583950962428760832803780346208662744839972508560723525869639422253384459079375399981402606722589948533831342432199990125439171640122354641974797168255063103471960983237178108722589656075680512161958273743981947098592048111372241484368570773603541849507034784386884772942195169236357231540683685075400981778225156648274224615256687923928365901288248759088672830888593201709800072494821857682318572706356456289936292124574985736795865073540805428203740843017319412282625696633741271498710121125173788017981166085765171084622459751307604491530077234001119774454407463576974789255702657199701194843001665949099292222262175499932976860134683266280176064350744156518404017572102885667675432036154182068648058373277247689382016621584783143055808804999184116435818132918381541731565619698965086316860384171433490121174253356744802020336369313276585671149176089852071550912252768319595628920944531764290856443828399163533209313281521470202509286343302350547184443721481242535731918503191425352531077116452445957685711473857547050492822624642215697158625943030158949648977017406024533564947376934496964624614352673487669652292426314158939261715589202988494782096563358450124722317427079028339578006105467027148052836616818994361036145613251850721424977450026427242112302784199664392331846857965042785757375999043398222792840433864021254232035320442112102730005275383981280089222115994760113702309136195747142986553421666704722741400757694140215800754248286860568424660196017099518053684056619992128169038436622486685560231706830600398734333014688280791479309319190110541300833505199939734982163139026841796650874694956713369605518171299512224236402098764841066211798009703293135231026935517131554802313646761910126250658860854434078190869817049728475163567433069540679403594665725753366632644332190829638520534050040431861067412076561097773966524991654363408591705658857547927207441768938899226508069793495978713555305131857658797855259338828668592355910535832162164489827158565660344545938366737332022819430963313912734102877960478705841292880235638423242624432732448986900660069384156598164489579556583501724223986514841354551404854333241095459408307918919306419687596837670579832027706528001060375163317338652301446031186947503684747586191262505848259512629450117206570228624650645655721402853946316456927301341479472315123008615016316391089745883813352671343117888076084146144997044269556781468700561797131528622937463554206271100187213624858542923122003261734320119956403254793645690849377829494934165938332775016099709073463389184572664458977093248147474896680037780981929609763323693762143114630072606587639778639075184245678251641766055947809090802070695556673926988784896646835578858284270565816160743034661174074148898974264568676835258352629961754178612204486790394334924880640079187340721468186966271463217251981101564241313461644508430136457938422487647690012524406496691674571437756270455582101371872453412760083384060947298387248206453253111882888271979183917632603925211139786439735597331362062987465838123151882000067975241281068075252791555732516651039608043975589695497115690934100781305015486649817193488090865214891730138184778307247656031976903307897967618643643575979579533811716876762330447008836690863500483743417704071482623886782804373642606875444123934143686254828477824290075896073349412799077942039007878804338498248051704293893215251778031218017188101060105919531080928314429361577482294912136212816769076816796053337149047510693881196947699499782140265134850513848736310551772699123137253934460019353992482327255854307504523138996324183367207140032012594229335686422647384796178379755924212244232359497059022914906074084703090450011414831880599851015400970266989213311794812647540797903982170472708125240461854614020736915882932098422446939264405023708753810294232464019297755796822571349346831265266161276899255013191648786883691423268248063436752610569227454696476912165274083000374354546438147117932372868850576887639679520302369046805171277643599359719350091416463571883765573715424748243895658423059977038546677299587684201448409337851228088422336972467411972153365086144220308266069982831885753246689273116693698716890978768369455809762857661429467761920757322869952037132875766251740589898260891843626532433035867204086350850456483548416964173623388691933069889578721604804039874926885984492518561371919807017139807863462625251264885261064469426024820751335357969036851782944783277494321775355482244467964900127509201707370242892973164860147413261861273586656372893436360464413516414278375886193546187772593805621253117652916766021327802144842570138120174470769493707405103093153274699925101496858087486970224907258976370352263203588607880915852483582408865797206614758411772378346240381767446270923025004922818796996810163538786701105249526160329669949600146513374607786209092587047085622358598945336675980605960028398485700094938403412902257196939795423949044020695415683005136480829036378310640494292051198655984909095395732630639430166822781714732486186075377906700602016765215074584833967306185132153486854010071044228961319364988428352322340684385751611452470933818444978481102875144463374234792359543823798598101091567224893665437813350067527152574474496944767460879158559389116307742379215955952968904713247628894372718173732103611782156336137997626633783855519846070388215370285405887577761515116495832259332994186530874254828482556215817778913953480567559309417403752236018123840387346522883803571615263011823781719056924615566504269435468033882712465277803800333837446537709655384538788572428796161391538882125548178928884958300510085595456455599797884902072061166700715992064164311518800658943554919074724512092753656065314610636632765532784560446739640462965869799963714692387682870112748989214401808457668531163201580329812722095616567557009558284729123182809745209284369005578284080604022056131189427440217789671953940089102653119081651492676810066157266018773977780177770230635654778000566922384135041769218344909660604342902664321123900965172984651629855750715689950876215325070846177661058323274700931774186008451847690335509835904337788409717051199739196136977755125273287954221707189041539921072564331229462379476494367103117849798640996894234562029491750730276087336005499142873709422476305158102983783514006113540095989142114308067749015524543373211418065838989746497420343905813369743979843687838280921289089879693242046420015771736535233800561727453129710367501240126650814498091389051616354669221182927526590805573094097714554140276925359289409391913976888176782490499901255146849151798671704106203536540430201335843450510592005559879594899416405239994076452064664544405569050968575151680342967257331947148179355793405087266789551848345708429147146105325241682590527449608698575773772668776094565149842438133534573211427057076554823713846261109894950164222691725439231801123320731386557577605042299344958080311003265848372944501076556494303551760470551367148269737311339993571977634034239319591866233050477681078730854263122616357494728347744086150338750913188379871660852737207714793629446816037599258740242260751434613001517869921676139866251127465285566345067378931309271625469534334363369136557156726765413174945550740314072679038211155473525695909666238473418989782665071698236709779455613848536530891829942590214951938859249317589521946638330978140543955203595472720772590200730054527128473624318391602494255563906342773762126174544024504421205365250340839730354893200109978926333764912331577689811745571818768004881869136911944868734957490864362455220396792525548752044770713480907646824122543724383827077168043709589730824604598459621891180347927890985608617666295085408193273915989695326209017901289187756919512354373964869462538522292907353281897105025859309996523457724464776642731574685361589154104779362188417797839787555282735111134012055439098605858592402782581009484075187504795091768319287418077735694477018884668566927413797015272323305071995614259386568724172363378417078117667186704589087152071789003710405358950746321620095994486785037693449234279204597099221062342945279266144528491325373165211493458256721730704848964230879496652997773056059655708977903702485484619704593931495953667513432920180175678565403177058025394050825401684079739712090425965560983749351477332801243119049292572768321558928838828854972763113940623937555672135599303324041942434864010204539784556912442988705418788137586632125007517691977070431845984574304770923316983288856947239249144860700249694528504374125218489137581608231489431994588206179538980767747904314212116582528236426297246180293359072254004286697532653426307626938059551062963248734153528652850789342178245839975277972638080673770834623783995836610878599342343201299160501322492388275765586441275236871728255812679389863809130398892618747130026222850738759537144455285946518439666350123020459760135396138394344159247023802255945448939107900604769460823567545556225693408070044822438083060907704157290856981555949683118889643687707753016295462145087818782105106768618273706454887939550441944864482942402794870034874084243537671786118066722973564812575289735343530084192977411754542792417733389335301170430616320184102567452692020117347301599287704258120364843892635298615494303174001649521670883819729575219871858447892655610443932986698188943678161437800646915248963340727231058013172583231177255520505107520286172922642688504067184136849421999630792903887486468895647860370803242111780006809221524475101507867147097630889539037402484484688953001130092029088133097688322061370387445659403706649044079110827136893205223015212136154545245163936202444994277549035770857574604873104610593358913598311923167463039115336878945957122404141843622629317708107880289467045813952452677176072965841034176067027327373722855552899964854890234074735612869461321686114053918927856602627330213611878142934473846895310232829903411647789829388454506302923617691550220744205159718924814775904398741340156545118339672762378547616375307244946267287531701275789034876253945092293899083424690547538258180295794599276835358657945832111165355595538765517485077756734689416310553920180425197227932203443667547336204528916150330842438849304718357707180123477221735393123701547868255870071209265507874927135777149226804759194908977757609615693670495404849897347759396753855916650274491940909723871724274073587824329887159599831734368062366270091743771738902539043738310427419453898522127517114956716207345483162571931472768685200913637433954521830904198485984600716603397513254298190585603402499365811921882280981204188118809279322287778177200535674362800355156697885167958332487850990005961176999003884836792512233498289766141839402507713987129071516581362293560326268652763365244270001909105979532799462114739048459424188883878940460508488251631127216913311367993270220240097741714973431949091517349005184921566910221961725790142953851160091635530738962304996722368918375549035609893345244788599655369712292094511192963009318471794037317737237803247477275497184617543414210298715371868487258319242952151121758681536704984258546026446539979285903141503539134941911246480019906855768482602059254179202678703219849030809524227938076104941795063990265274575353992855104674814611257877739097123765543876849033134523370898102731016022914425568758554343419175854213077209561332912117932735783737659315172681852803600048943905698722404216797168553086810022361086569139193489701385893818543823255406574000449213797039106830606346140756188563967906803741862002658858233066445589761833164908082847129604446731272609526603293329368894937625101106846063627659709884192880321533443926941611350197281232342838185663065663997071703505034580668029084064635098428519978905527399598981529984590247742532665300306435824264914670969236800419461127939099262538960408626010340249262663426538416236191312797185254734090706841299676621650919803498331241501138487115402612207746454195074302133392396068035964009425171983068831095779320302302693681469004994354135495378764542118216692446532998961711974212631372418827646401110628238868348758018946612326277090219130384720370218414196926874244608470264493857592502763350305622338501178896569055164830361556299845257527971778613183157223160455472123438151619094399583899839556789612385801228681262404259817972949415215352921376433060949072993710812661885945660068635423170677696091252173579473597156400655693750329653010563832597210599394589106709884788223651315561381506027805281091136193881029303293193861120342266169688336448633031505612083702761158713941111474101853979335124769169089026129150818296979968196891366916077733650136924033579138694605348138929822232677725672879583418518468681212342564159523409300697315673633061577748926773630550468091490145533297771917314710937033309622077106049320930068396201074131711675583192628410629262195057793745925298727622784503139194630762891309414605620536535394009453989959656759464330111693788686490598212889413721091457065713439107800938983310036605302137261418052488797271982181761992640367097463728136815748490642726934801074265356904817255269770653719742096774170712104692513083632524060174672211179054758994690353760491448450492333543601407933021691984838451847324182579417897153176906865367725001278622021928097663079584457202407280151449373752622873705881518222950674634151290598910231880322906405520621801239775250146576980870649146641531923836948145216421238282283227740213541935802785469674963342817957052370278342822672307044630784221487703184025955230094880400326243252904972972167413270509620596087591599049163734770031729416900608163153884681218966151755105697253937191432992979470233866476532898471161474360679746742676020284599009420295815341498485978749893549572226572462702592103303671018971521989589192186720568515116323041969204757336225789610750593996310571199984237059139969526907171895307796683603535092802884587739475796709881866219210855514115207539339520817739392699546387873460518130994605193236136515073842944335052283010848427846888624079926531582794704220340451290420284082159093077444293005653547755829721482550133886611655470888639636279490595271357894197762149976173988230188193684201218909262155452293428007729179602012050259075854749292293334236808777950631067542256572586209488550161154912467009207330073170413900556873659544358817845441400040848178445389135004648600371448043853722004517057085733737624964217483826344431232976400573299999359409219369710523934990689279555750511320329463641662440598624410461504589918356107522073386484391970546210286398439578809873294965390458972123063662089334607593644635306310285029788301997731869114966687878021354269673043447158022532577654478374991680422871180517467706824763143916897719734590719416945478590652787486315020289737575714238767797359833709024514664420979124113208829096861831121357740203557945516588685001558464353669474177182345969231025019142548903678785209485275425269911808337309906916231957893614663301711118835810077170680280082592951005454410276605140640903811662705570241924779649833498503481551498901919592206680508687076768588351375808107449492800706768898800806696954732183069892385719811772819581997324924712881939143559912162352729496092752067151600823211558772747498597849026413843059093584454512642247222263802982476397935166644756399481958837401809854121362533435429164575348501015688686469350155854971809439729600372203999960949622803678659997572801974757102289022347115313874701309516252914117945266043526844594099879293841423850856194744767805989585757620068318458847386749536911458104899529258951189849614951429690549136305956819204368237135579384794618997557773608660488141512596576393918630344662384720851032631380384837786733486614555850014105235298424996316231682663733583065374350299875481770182160453809124882137728194749142301075395789364388967197742546517983045019499117974498218316906171888009767371155793629253859519577395469223315727003932483988271273061051041785736059339739177956149679552842285078731235406428899887584568656169361100643759522173816509678457201067337731510558103120931946959355200551863077545063389182168716446728862492151090857011638816603575270797419408347847598158959348706248248420916230867025727715887430285353671900868171384581919129024392607709187759256855055823488766158689124128560638715500416779311080879615937473172231543164123864523764007433892050193182521751478524411985958617266212890485482073332676852521409741247987567276018630140435130553951145697829822417532855242400947391860228145650222327143404370072125517374422251482759129663923162415227926343951226843947731272419189602947392276310369887879056702163470723463695845467417922169311034948196118657693986241780707796238202620604668206099744304891962331347007985297689949648263663976357297633267820341805556470233580093332568508680921846672202548051064916932368324930611002033733600634098985389883341390842114500521309250009827895159692148267448631245572359045217323745539864257610464088234786939846343096847312148966432662749930461009617997667060279392178233310868700174375685401927320117414248272316655477887734610220825894093368755969041817049031966723278712529569493197800441217468388307578068216994194186922350865050736902234472463741384561833748645083204832147791482539180169125223651732069763826494453011137120458505837169312975574110686823523260777418529106697913480360742506207142748854770801669636303327994140774620499035056321541623779869298730523679885426163945010966043014620382975891233206812965811426147739889411072800826200185547037463679388046776281195929515861167823518963658209554903517909949305084363661512449020083407144327146648476170990296330400840335699750812517259113330814465817622794547925118818329006221842697857041105818886256416506419133263435675254686924496543135526271432351161655575139852518760787228741992810069164597461528622824036508944183892393849330176709347344960457865740461919812906319127526685544842167353494850750275408776220061325326698861718381308019612787114409160620484110049167056206998608661863957942299159248073829778424476086318542261896075223389922042598437156575965420022917860074829899099105840691022188074827343340862426043972278379175516898589283244426156216893660293214397832940552983196758106923175915074356680805739592188325976473167078627153896842341913236408559247264736211951780066321062061133731867371368507636108122463253111373681911724199999265542380311505925728922240999039130597162933229932575182764193817802485424095196224588863103749091677638486933961260882917675822405073682134229801390914202451616452907526245954114137995524840475384825446302430971700968726638034639728738265351765942672567570622597226860721707925694963110820659165703514560845058107925958767073069166564373459693664324346524003351105034746681024659756943878883126943350099870775713506692279208752112433043020449241660841930063538900980604977950901623271022963071064958179610232643257737488860931933948112181732923624367003632217569466386999027205567500912507534474334305103483939065249936665749759336234084464650186487534163476546617924043663320508568339190078747749664593161436305448525110493036326059380052628549558598960158534574316781578433815718209123220637926412865684092287433072226553008195339387721805987492085771001149981153060261097640061531110123855446296421842082202717249200996340787108234495854099770462899078790317777162824420573504507027171085252093073090374454457915983999062881131813783301031824670620714350301509540815634882996674995420085049757238793802750415965635799247321403555528864647642774508927259843391080604239078639656446701252636867168875416204147062536705512318925832442161437433553550540641481824165705928929115960562267821704029980870759290262477411369278217866384330881536347601884358949891996695325496749584143869950226084756451999570785091447084623882968607822160632323882425659731854520303081793709602076566490856533302193032284408808517984026092968851394270274446087363008939721053577459640191178090809793342010471565876518400533451372844325333352293724704927976535004409014888012846733713833214381583001986988266357301979445707764588774801093407966985119142890824810388403679342804126808197678416404422196928245071446665985989263550259909558798283094492839822087242749311369874374344554778614668841027178011460675405491012073787214946661490366815121852943173195718330092213156725255937539041406098172938224235914088995470566535388359607675759089757858293924850883540433123357027835488975684820732402994244134284181930494866897493411882909136781597227015238372477949461441105945384195139990407336455002564429282589828997189510912288718249211319385616020587526049336568918891647619825707179335671243419345864308445533416915694209984224286740104039310462492645948907796536216669609430586548573737285494631143324627821289301741715065639970052718228344683187671024951110531139337073884982219303179903874400849989172097570690026026874093543997972798241720588254045054198077891422911418529303234288277309991723123296159613870822566612992114167199264969456244090928751442466071629429800210166158040377494190414185057431159806022677308255210417968208880379805569555960511263784598097561064190465200750224902050308953623693500924715321413428970720559709020648074857994961247411071436904622815507708823403707846267846689798269600160208628031116662084892755740668727044485405226235245170806909690271200621008670001170872475975145163781183151657145838158157722675841446708543805501319018514018616798648665501640273243300074850324845513252155773713856063598308016762359459507552807294288031206359956619740014252694063655854881280116292596926162404157019444092173478691921832884268709330787475254511055545914592828390497529465856959234057474151225692942733397424837808374971539829898133127690570134621636246984627983913777461660027464515259467118397281343969521458081648641761959547901896167211309573518622514027608911151560337019653028224387145519155842306365514396688620446131097689594190924043356325903702242486712135953556334952442702550475067970694115713992137414676618903446116703552497669005613979421171682391767330906005470276074921344768432134083920362729778903300870511013898544407984279466942891074178115697120774023435664534018701555132979317224349504653929662870854309060355994808617343500225425753715536923476682600120791069518338179986432487586621238138221052784395077725591217100678164338773294140507637932518922116036527380286269772757979128449297967183981275588257286889975897820259996068828467178171892827473814192304735944829462089273469068067440464419925693378966632708768079244504487388784843526989318615122207495469767515804384833729303715670945747875158847125681500077279909313784766026004342452461543454975814414631140720416514107372891730033529941882504934021658573739271033842198643439414808633207477021115524045631890956821684790191458208112699501336683793107149500195936137208008654455852470289975059555784564034141434424216470755650303240560896166762072921833270283774442544214337727524721520416262356755931497354065321402525884074543338504543965908506164696278348335804323012871003204778154067561440855304705640291691263333816629532917838092403848699456524488842062387009590829983125616732184441851621607019373484827884862394653608690949443178931672827703410224316649451691173373374512093166849456413547221291974007442874428167761881681021189384073912276084082569383195075293879608625581345167974379894254841284856667489031819613112337371639654338335576299947563970526514785951686662150966947368340440050875380040891238551041570277833251158888709033036051453184197689087932412999811329779780548346540587543557162142869864166996948392585134352477468762336725274564010315735936532934868087965871748578225457973239340736286713254356962582616028939562106591159020526204650694758455771299655574731688826396307877538122030271205553440483898472506483021085500290393720908080165407612323307804446646326916430290384165433031369001767495716418524437505970845117870300318482811493533328125891882106349887883154960143395194846426538340772193517436114904473994873451963087354263179997578334129609531364605309525068514298648721416752663581253976865162662467702061393466736497849790519584841539276246039036448852207804140934341577818674601986933280315799106124703791184541601183379748334096749522732207924468307034954712912532130295567148506266490659507090551872427803029159112255839684280975015734785743359355836179390489396235082748015333268032564383396055511956143006756073109745917660597330351104336715700107675404196416150563461305903315907854172955961585137054410474159756264201301717113941646670083021524563263462159949135608497022150655975689153915494818814001277782396325146258872623043078748772727158466849119932532142243436388787788449398311382961492344457772063494507594796146718582164441004047651893818237378597531351671458486295498020439013244493503272613265479074293112231692686102740085231152063894842197373185334614285439770045991828477633949383069053417245042451061563859034298638747505032842846257619484863531060069467506847465833551214383806160387154857379450174704754777641012493250501749202710056212586281682016214489247766312172756227865147359860001778428145418669505221929782157509623229048914973579517915560576173310854439760274931026631983593611344364020516521966882121528798282773945006389878959020813432007949570869209922898760165890229002785859017634995806652752101326851437291415143973351931152752620854948622741683513757719666874070072555341128680083641003552488611198082193777058037759307040751007508121258885601621375942343825786436178001292310630742131068368737027641577324155844950367576993313998059045431659080191734805554798987667647972207364194007121558808561884450363978349192420013962144121257617713907599270621997512306720116096332188784616386702625373596252226583190809977405525299495224229912201056990809301410088460634015428050707800269409215931271681187943109813210340141030547477530061247305775687122783177288551362123335124612052727609339360710811538582416762059568091847105457412973215551767948246078858507720774745871775627410346282847386621398083175337613115932189467460441519891101175086045280426928314066192775734111995285009734309077797764247030806842629934446180414057247903758320315338848176051649646247434694815539610202493394035829872578973487397977902996265904241234934483010675197062360348019084024830065103226286253226081208379081225943813113376836475800801535911302883269612896884616941248692557507201146219564186624872323840944188827327426287507845706048753562288921825249838024183473830055691576749605697403699728165437497458204895592435945149031536900925504641467907491995813769939750038927588525589233678836618898426006426862689272994269145167490433880500522675875623385309750761758032632633528734419886029303846994325483966301037710828967802274818412497623885485736359346606255108621008034531208988213883397214297129234553553508034978855811753664185588799129776470331109180351558284004684461071080164574427837734301546110493043990276589102856786228390739862635956258503367809176504269052436921241873706938821504032741713355101191233365608931598967140378962223239812807543190375315058414726654644012067814797120992378057696691600081777641058666462618038481383943410945756093339316695547352100488894446384118952138973725096469058826515252023862434068426409811145709391991709888157381867795486412281773927769635853124986393782865761671616342098422112689265651304075048083676178353399727479783796745429832244198576754220260379194446022358617780995316836966135202974778753237023987817997703875531298697221823969047217242693466602546733631287201348193945534800792656356356229033042359188786416230364142166296584806931619782083627866774028473881387401292314712494872108204376520192246810340708951112379869568115177915609032720083093743449952004879989556849675426499700201300696473274211465867047741436837338426443749052360565682669031445306004708383784304820096238367179520042828318541324530391900764955089415823122769910256618848388030830496162604717486219358055717522927909647602095702539768212225324582680331628959287812372056351466867635165504327933139563905162279088787280022603073241180191545568417260571728660995650527361252257854740772424545894297380997651483312431675959024572966046005111266144083929401086911564079449232639681821542587909502447093244424483169037588711332055865960610973022061512682630069492510542206117803881263335947695035342978763597985530381147022332630478095238106663117016408128300864736728710739513015399529513607322160027707620637904808807337733761848318336470948060736316525542499314029421308093678650522906986269145762496726737765849679081237006504159172923546671992522012580576443756779152491624838745382478516552091741646513809902586019749042086379061161319514625857822458185633900596121026928861300028250560688204400869423578773632916690162512649487563909425467258883193756443100776725620416496470993486696202215725530268547777914781123680254897495625567057540755896042834959957519110100414661860134174952515495576860511948726741611168835863001864982714315438313271761443214197873800458133998628401945852703073031455730371572119389484080354947386857351269855520332367125619700454267094304689845121370153430847123441240384259436199817756691669850378616884166694767994366537745747836699141307158736394166483388526002557735645727164669820400727849255448232600473761754468065049360671832570489533831676590314222454787443795718785807741530804593756333851307022526502084991697561655614355372693337549645379663159881389335471811583489029987602589572485580875983982316580892791672287707141530007207348373614492111445021274572932117777528800689993644931880240593071403127830591296679077856465821898942217153208778001560741135054638640603411761392892418569351995309241121345882122879827161832694663859069236956362304710386057265743535900856517907109804332752244708393726047055716568227182580752839207426345340273062028471250760893819777302627284439473965203230058415613897312882901546854116308937246272797751736071462626859730912502586981595472261981669224362777939950917594800907420657518257980663887054868919167495164740985721428169414863874479636772222973635873388892254526889981499073962691089766310100354388541429728192188298973978738734422921223044291151314217760062753841055595847167266675078143022226412131355717617982678069137100912839129858572591073728944558479085396465986013939772359801734478326046711869814955544573957656219870880464679357149344826770164598649193600601548032341571191219983608334636360391868849023412277306748967542291469758668235876849575396944284768078579318835325878224626315209568080499459219807413254416863538608567681906084177787215796595971991634164662613209972713434079135506704041021216303837270720291003860774676611995316627790472535922001176267261261154567096400729454257789711086930181223324203770563788916495924245134273778528720310322078884657877176239937611237874543606212029906208230727731476545517787280885124729131498330180345595081246543391783701392903050642051398198052857305654068004856591638015375883016957245210893903096344017247445837342191600117378451817368636711210340701042974844747370090732746467111281230309751383084154470746784088939541003594481482515597658282429594304915070881912514778923685262293952752948298555977150727539422682874293537507482430934574005520431764267602137111645351354784281419645890374121458660230529384099615017353577613898057279180034696112042940877776369257569452095592171757611621458218316149863663478299825370705941238127218220716325852026256536286700860884799763390516329677025966907699696309859918962104487050783402776388218890068185615328829663776163251386514489873566975385646297780029513391805945807057423793657211149590112707958699387847991077151570351791056939201948771367517799598893257805148820967470103012028235757217223112774611285779239694621248543853279827605776377064787899410225349328223715125529318104638212633813981958264543232257611231369723482832698435996872550386838864958154162304890562897330347267524047824378530064212802240795722585952328360277710456522472705612649271736411768309710078562878435195790247212926092036463035139139668906751643807281880495196339569979004331135516579509589135928306829437230169551777238771490046937899980888287077057965389041505176606725077162422103948960399598282331578168346529731044170431613082965962005166050017682974678208405387358486353594829145622117171132437436356357554446268860290637027376032981337892370327145758349922241099869467313348656899685542991239817453453359440395495175193173783216324659083565795263175692540791126589653087177684042094322815266801465948551935136817693177838891176787757130347184986209856556845433789033320557475143206736787529126975356604445816142467550946399609183556077063778728777604487127599528227615757242129354372786785353953877868142276461991419967418478646506743007340501573403237505507954968511579701332168501397703810273553677681450043198871281082349226441707730340141664111252833916703926650134020795333586777643878778387900141480811527117303186650275026332110522649105839890465576512821154075059661107090126269915741693176342800482746220627757489729656265268887914291391484024937656204089674785488426297303616646991422228413677533100360568161617637410896232151540337523477029273773467828767084533407613865893243164226437948271651136934846187929623045388368820956243774620133990399774346362759673599989704852302986073355107935500410983457567668783181242358021529769231389551113665837167343675715743393077554082344429181813943662424800580026775804276160627982845528317367864463079257282394576217635099964669471097784856652533360870882127695335353985740334739591449944456618817903476837266278608032253664026563591485341736639820122787541119616780205694425014204983944194473091888002449265176787595739191722415151369645653515020108776130356861247142522681559777053726667006880874839421687376762414754962339457473572679317328111119618238916212376458036739231866345714397440250150666158153949795609679734336554211070155222518534865362187400821348909242565263816811927043890970873050291043193080528962365058085699019252122335024904997763519572254111369393439990525353251161037069368537132235031412043221978196140613586006991131331268933399780337708269506169934154245246270271501523944956052253145072757830497408761946757487819001388311307561812481644270613097091603362525367300505061052150304262644179867986261684336953341661778725145309590103992472048548291025805463182570801999920685792991363680970356833868322205906822448905532619179878179375044931910823661376005084232749380105893751365216340249841312620321754126291562929671845777772658896716042061459869748484476441986237577649963513070710100063751472638941548737482006072306019268414542147239756235719430177515991040133948766270620513483175160438823068313818159018959780152778293795049791879504030789593769607189801494307792577326012195375244430493008138404570953899847986035746397307918746774805590934586545715394299253917533058063106080795885739605177315500834555686122271564966320872771497214637401203994417153518437065115033862544736965349110873145627117911472168631867042779232931339555654367396823301301283269232865880323774819990964846098860374256123741424437692388980923619967604435087558721769043316254658020302668322911613048330191953672322666211013995794069950301745648198985186647267280974102293886211700875094136156289941620607579935302885216486977373073828436591425731247865984181000769755999546931539341382352489209603685711013660994627781058872471768668995108255438765800300902461521060423960694216171579431592336180550894243374275153935410523219184417006103658740070444653266553818657972038690339251585529628851443789176317021224914558061298538969831278720698029922817234423950753388396848259170185038889519825490873666111899479667123844754080993694289632223265812425262691071022026668622618186011104128960595519506739622206441854045801523828956735232439496266812039939970245638161822627782957343775977602699454239036224211184885858227789789860666533660114684204308376482077305858739287250150599206670907733828786523170446269026801541903203195188674808702767386233510477964002710539537197855840209158733390863274443457521316502744565260521562602262367317686010209381726872092576003355481206315309456155491767683940122614448702984890508524238274388404854275070367342642253034398020975103111399811994035958872852556246555656329146551576478298343597535192915539917660735651321641781024019836236831086058846517755020196983738099454832788545607126302021134882647600449391317089573294870343788298412955357669556605181003881241412810493629714255362300506406209811565963088512589952627896453607068993900853022561835073046793411585788344929992754036051253417116600965792146213163883198461601207127519466114181532757768914388732825660367937115998594187995679815990574567032342836183945155553014804174265676936766241680860412553116882759198888702192714043811606156222420964361356490666564679317869643976583854993248210059923025216543380711749460061915941436005382006560938653897175297447336445848715382389331300507237118612252374407431152159973570788211162340380099457277655410913460058746856133844779052785741416378406490251634800488924969907351766419903477601460053732450173793151865924248234852118081478670772781579576842846321565163125292854283700789429490167475625339651392905132031300820455544303819673033592525001630263960500584776418074002953216651342014133771470043303313316853284220243682021973226610711168491039955124881789428062146105116185034326652265626156171897848038931153606041549055177313877251200776077276874852029840070647838488362376567865562069051535276315646443310748251664730692571747441674303363837752189027524699649733616053106448717032966612865096753426069868139022548685912399203900044322182028955464261334019450255590811779375403701254988278960069671120128774908418312179266217740124026716742417996677462967209428949401528923126612694031159517135978553438688135477028798216775647470404240193227046790785998153438184450717660182943124121056040933960616386709044177165734513627037684658523463989254528019658896163124431547572124471829395794122404459286415788366634848052344859873283006282841329199394536037690270790692557315539264321749947497772286522387735667312214171892367236610496128090162874573685690008435923998229583689179327265493559612544705283093210728381198566293005577751361914174532148429912052133578717257364883462858238660114962623041019645728355012370535578100061463910272691860270109764636738826542745141124927115090475307994885326050464394443042395082481652528106468733367449441596480677252523101389839575782454363785926850666302142309910108643070723333565040119610745402292522738153653185205484572711890626202030267457835477026891761359874626985686643871587181302273233766133445349942594734846168528035287246175327763233898147733372058643125607220935385163158669279741531330951635401567692563921541298495253413776158787145550095219770376199088484863174731766774854526934973683702553524920436752360946026913081368886686333486740336600181296868328538124504108269707538940636720181814055735936627918271169142821437910287828863328036459338168435152049086613551443587432263513955117773251508150715975254502320266813564394384145932208893002626103694827698783342069727756288218144757923330706311493284339215288319678836878937477515464771174495091398958780162915388815891486533770952717943034012031061256733474890611768396808810369525786110701514482145347162591379314364721374497476158754469339580731928796447449468924865261882365161266607096311818434473118858877949185574152425139656535211494615433993420201688333014940732646026500445169297392664524293437030039182356116198364091214103189759065573916057196631629593751103434215045039743568293256873771667145866602227055298947357969446842664081852738642281470851329636219106498121737584489576262946789886900315556913356007093163251679552996631101264140997916995952470011796552282426143375779503651839427351675668569448936845407951227976491487864354966278516730844559571036354558061042319965597897990219883818963989150510731094536737490966544590842406758987970330934611147851417906861011776779915607144536590142893403390818857081235288201184884172612713078762517585885009696050649691319015820996297824181029346938883531058169837229714843805765166658218781041114327504571041813044757559615474871798039838126703171910063305390146834248609245017631826851605914248613308410803179500887294237258792659395333794733223821138275466185911052837912722120820094902084526333689371753665157805315969230486853266205606177940505081979472707847995138582004007789520572125293771758815363914345754927179212870799820742962533074016373366908493967154279095656489510131579060546690677217898820601405535993272145268470247867267987669510766534938382508032044225500514420336344561773200451367304820482634281194264670716592396609473577161045311692292971726673122034957886674403828293313631015855731687248103102401611464429285653072285166636619758225236378533564276828701348581365429498660754890213849390815564370667696007119363062257693617180136855125116498443267455727203425821267960719380926763191237255231193109276155399704200220421042766101943065525609345043065973892532655148555416845945820521259254357114083520355003022426192743412024241411787630283672112056228143021808744677674911379297454225671984194307335594681905514354095272629221044848671101872120989293434755810699517835326429641894074436495168582405839550763882971457426732592279560354237553769527370196065431259452458064699582119959783072535081626417447308211372365251122871493534616744032063765609221837496488353934951479436278210155820199013832052451061162935862089204912486541443732993247465488595652210847003285019940009474808227326129406270447944407875754537316174254514234077379379097183289692071783781946972964583239498993134112677043885475074528825512914463115244580922479421280789667138060491257610738122694813814963165447130949829662615222085715771773291509910633794722300278248332445885781029437876705641449883323033826653634041479907882696633825890710277989950546083177684055144590170405346172955254383959598315505733526812980491048376096923060022622355553430941025123298350069928211019644200251341658966008785955318809004541706663246871771068109845892102910131780288752922055991112468230052397289887596033353923643401669242623003213488440016222527726596295060885183679052095901523382322771180321552173172497187730394636631577985037690394029699240579449010202246546992031735386507290466181903296738424106404156007281146380584177427831694958230134440602261032551785708778488765434469857788275878171052942828370904874571598147311590221115131483776827609323597190420770892975727136699796668614760288034910232836255472477791018954616903290860256766769996727695017522245197993300310414898898180041834588162431959502919974113946446575701963061584478104052515167231790854500927719559603979835385430822485860650239045730122026189435814278652020958862981171401068909354795515639728987497092622412876222511785707189000478349015607686560260691498475804012911106677334392719195829397759915009858017129093165577873940069863308881898434466096068532246707659375061879553359347081057023335942642576872342019864689762128446825326174321178442681777881575324035434169136300408942762153625057811128877248639534683662339043887211111213385207539439500756176044508280395865345031076959096522869116645466829201263515926160962174718058421221372202372643482606440102831202764459345746154192726675817678699208035754233821859868002831939523982006297983061729506777914404184283295640862070667591040411925683668978474237953150124747955895809289963908020784099193197530016141296836272940732479705446274045686289020805195305056621060162025754585582948825185901831161628560734261104383675239981740598008064806965172806701838716222293654722802997169425939700750936918148920630064455712880370189843752279013471144518226664429491222599433139410240309598617490590123975331979378463636696245294537434046732137963874023077705021937158380953348851995547928476018189965578126359449747252735423956853763689869237863705078869018259644647542254453174186593122789205692411114351027192703111025247077681558198208527791009702642035325209494697859902499651434689632499661732954608564687556363001326176638911883910964167987057384280921399156261421325502330302774561263922023073602145856309117889139088524456062030336098350623172551535733707343629627241680977164438720072245430312892768599137959503722746421896495211227654448225145705155892273048585873627161332963211431159818711649670632980045748788082131604233111503166182292562485371734425403048449790516294310037357002315846369208859663414060714005800165084566314553784604733734804746357617995848173494779472467102014659544404078121750565950996007616190037320740061947330629415527122889185621732693952613496341887652825988465652401567350428710222431356899062396175023050183591101706754195547057492743850043839666822272706605012451508133139673315147383911636291123941496439893101740435217292735116490474441604499164618457366516778581925041611413812673938533787815136173581217640538000904053831876010653341111814549439883643908002952039824350372422066173589660529080001199744035248500719219020978377219153223231282835173162711028909002869629614191914206429552684245678341901294714553344892598887779215775823377703510640286376759919979164461840936818382532908268228771500255727831286227447187502470554551691704606675600948768036823244091277756392712978388662031840464129817905814489717825295054688336037276663274265918751259827333273159777468579615705413035813627797763808518809990800223409099684120636090645000004132910159163446765668937172794300769730349556244111036601696965025960760239455698775956887646136633154859532942070740178608625890091834819130782211033398589041165795137855060965160396185356267841332797399577261812418285614122833217457639257327683577157123197824595951407198003845289941889381718919653901083204107514037571007263976698013874035030059872237054485645888175744666990164912894229474410162532682821614700503858280272055810785964262145424823398735693411248405247560731918898449087013752666204210455284202028335383226929488931971535720469370602962281903112204061581310509654158398735547935551357056780099234926829735926679292374085966655420873933924689134931579695798440273697223089182471943125999762903345211757436027200450797556670887402988925233517658285526982261926298009012581661376917424728786954221578606469410044371229379069232808449699101690103539755345312386858660035665535890847193615864454554236124168056562853439553722070225644169589211597734711138136585289227007525307567108104299556900852160453041805030151329506876730275740993197313195823322202935927007287557312626625702196989811740030949828926705296456300282207700245832700273379601128624101093633145403535367593236060939611807693511962768076811690104647975199825448303874655518899904306448219734042933766073297302488147012265884236393495078771923586192888105204457013158534433447879604940044257693041162959143151790553411318701508589009751034620347689957170348236437611188338978772750716700628557670757498711770512064308427839482534400382315855597476798953698717675488908172810354884773885910367113317126431888475321758867902653501455442721937899213589110903818700577657680146583421829820372127853625041217367347024359213705517899734313001053261097705107559983006396135724274261266801352722980436083712887186604014199076027608187963323332861437186536322649760896184187948060836180496365145302756038129533312985847011279199350826037845435175603412339392927538520285376790479497100671245299317430142386009790051780094706607703150767960346416167611038885429763504946082678912507140233811336059069953303395899862410176100172977228683059792339148934326318038819046444784534837436878627482462399868733605983250968182084592140581232347133329795111701355368703338710165691243635244524613336805641070135996436694318712756464905770569724372488663098621405751456525597825213792960280277626047995744099761873950368252893982495695914040681106295487500088128687603179806121647634212811221646599129744916452847157239377874653707997009891652181383449126654442742726439701480697763321525979140734299930704122316119642229330693243264896253156393910785367573120334157508078456490311243574118392958165795956030160836401379351514018951545495139082023861830848696106400244291334383134427085843848664082229988876415732266223542887662781494060851060020802731425368251624330955668879886368658461007309496197166944985089963231282413272552536372059099745884874368376545613990669715079566343595227646987416460713379805482863765235407248438619338380937105353720761282733161835183876872529956610925323105582793923929621140595643792647686502010751031926877948730022147684614625897448288277500154715537407915458870171377020766499238103715736897621478047774697783487019238957808720041856277895191620090800246446352790282252087004134355045163062176763923674432341245814165741210649408120738299098213725310058935695839601356631292111329966648048467250455790048533213689807946979420843681809372251872567636633664849531081490599719496181229542409922937480441282528088490936182250833627226303772342909838830128977115209990609959749141252891821536541537760097306705247160037791013271565509145675734807759275853102901306219929111239953619572545413428599939951513320142462952362935562965066310239406380735590043604630678822159773193517399670190108356276900869690605257225061232817780185537241827746113870283926823434034085410217749914727629507506159951982997959493737563719944636507730049106368564522458654320657644491308161931265773405598251545570094521764958723095752072146223045537430925897557358781869998697868992060862223595014224774229926759918799074567682853747166490131170980558916813537268494215184010591546154343164934364361285002238362422129029389446073494501215325431629856954554048136032608008000353721056873947935687033341357610835656113531679584675678753158033719653013623038248012699643497743415772412618995442934815993273590930867090324146164594998783976443783956942572156755877283448678156764672597559732115525301714749945172018571905612368917546037423448708909191190546917682586774183286676480825914705604006125173972444258832392217829911582294251889380125047259238003559453530643741335751601213520794852720929570465868361310310664704553117392703584470437154260332287649535027846032303812659688547078750246404683488240570671148340866058807818973773060632954621845581490684338674571243816013201719857393708752389109091091899313644559689222843119348722009048065732881153722048792447324090353225586125505997940387353747176816399130041205364816308020210728614573509872796096880435691699912751453779075076502678966396944932553818152052756962856518710713946123098426342524822058057472013667075141292500901560753177252886704810252866138622031876207609615094028679440159010703061246287589075882028035617324756425303746616891324846103418200493191014785217463701638554887214441927616598207549325937095225333230548474472189932141462853317251982458689403820500659176943411959482901419103387324312423871198006490016864138927926765776808659079644631437471361727782068366378176759351355131025770252097497121975819366245627155574695082931186787180178097387182936539510910563858564599593032680075219498265215156324680688850956211048501674669775805348040192012857545630135980918818913705943441714162583649123611332079952230949021259762464846336986578898624356943642864661225435328317125343313070418095556242752282315479332385763902965017000556861067874366027361749896953063732827959069059032748624143930545532636022311892773947584080127707648607924316093254454561911419903235964098797095464910835739081576246453775057813750779623191224917801203782816931926633732106529463784767620791649368357615924721327248521500180914425350659197752035211697112516290904818716049016681521561437249925178341574586046591545158147580684701012174207472673146271185672570725130739257092218532172467931775412513081279624674124491560071930582225880499638795016465405699653283671033966406018447175042896473567868663633403336812523896548008235641002659040327168266675469656819760403592093784592064046600040168571806190323107208014654645600112933853358387605328883507321552855447382475992320469549975769450894866472547994804633326619651596537380671053570042770319302188192211801284577387282389854222729133995079224982496593570143443240392585611241426387066573309682829465364817020561711869693220519266274637413360951231251623979189445869075361278480099397994380313327360626093512786891705031607371132939093999386765066225574175312943743553155050600871927995796238607257192357405699489699233655750870004700336228092490496931247086939286368968487329093724707796441039431617763450394975046284526105666854026695408259907551751801785054141360231520454339365237739840887399350543673589017375385139185270070630927565919795359414629943236689272991707985363523178966181757190491883488038309714603724059915315628554647650081414228033390523738058909411367898952628636599684783986664824853569541752766180684839014546769483887176034978090999588705091950911554684894786286045087073638630896350899890384046569733923765020142451170192211705760638993875221784596416081719120536097442537001765167137880712363855920950888288943874057494743816944556017623307742225241374423701591649312795683708694686267443107128693445147318380258114831437724519554848438756454909322813603714065932790749273457683903844567473339141983905193689689646220887024381674191327606102520797063789828870582922408657254183452128774629110356343113818868105422255070988355913673247253568774213709904321481441677231346428082662389873094795254654976440586933359787077755237378833298585605885473983101356077280928857536275132823521227976275458898899959923974009648232245109104831380644411834390514646859543398608879371449848158540103175768867478171262686200371751738450687184378313135717173635547273725445427743688280164605883432037059308380806543129547652620245146495974197958086449499737898614876127036255860792292771324883318847538336243171390428900827162374473814434455852813809969152832379015149216009260630806073457903753216689247134081981119252160963344831583218185354899580672297182245900557218369285469190765731593611796999679315038901229750796164855817143026586188973804742902783312097219946992458823256753200043109182923425463017422824252666961576771001552505844858186728873220104366967857278346284897253803245852548734812356432784832309141599766503466559957893278346189439909529673049129216187575585865308913161401284359935941351351925176424305811722478457575690703109722315642482126432205736589463054754418300142064983538276723432456533099522190148259937224936945165362566006699787550053411932334676332599919262799999001122473186710434228786159250312242243092825778526821718581324175430445760061407861259232050494718962481988482617079867711599214096709314898529133003101224582914210795778863205638438565951253593743192801249736621925226354410310191329939999887269800949643389878756343782347258983696431200475571085962045387865884085358222903733690467918622688312379273246742926757745555539406164377821738808060151712724792392108344883275009417856461111210835426142741020094726885468876455203416736644397220575466319164038733561334902364988812303754709921160111327474295076414900349358752586353604182420048163737659267395301865747214047602037573853624397132197707372592943115905176377472381984707437792934332982135184656213010351884675599822173155868700886959451268412355511590242893818762703640045351060737621991941335295002216258083423181945964748113702464396798947087545858361326627557203411772267871242805600010625317156301004127854341742821297087097666292154512865450488930880006985282323198586929764158779516601690563558780982612440880001117765014067686866058136925481149365803224193734343480030719353819244468854780393826132011147950171444960436047814662733742242262468667891723179544623275763252130746569087059986622156779326453278320163660421783293289656493646139429176547355351087751530802075338253986635103477713139944606918666535895403672235692110666096987456571014631108926399456425137451705125894629451419275073285716585746661386267728382912426921456589714925264921044778175248675872487039218104812117179668142078100192731253367550617766202937977126273032938590244726728406763136932448275559655465538802896459066655335448502151936232706397167902922388703002854524254521259605643465270428570482917342544830288194894812906533923850602953518903487927567071263851478813365937419787755982100719329751552336594282765860265460104557580289585062027603164292299976424797042453701052468975597616280637721617194182026274398491292722283816124444898502966650381665734414951804191700788878902780845724468516343103476803508977836425705339963426748633361863821686686492520680836390616382128367290154472309555937780364087532565030085000845923152616430524118380618105975411696911862679442567128087195903301990625448600253579071222623484867493045525606868702105562505154629385861520954741502612685320266533648898604509967504143926408212698476913940876412421408484595373116564804578496630618488489125630481035256619497905991657649107602515660470654956963972828393977441868328086121819834962694832922895105555346944106823033110566826660078326366812686953258314871031982186466489551947249435513219187652123890613226713171836176838537048983741844139717533839345868492513653913792109787178907976175331576985443017674421432175249897446867960335524639704180350257671048026510734493532188044519207166838584137744591951597926400077327723309324244240774853482524112347141507662690050186829369925551156447726468696304480239531755796845340491732592280910522030262559468041190050257329963472474070921866816077495890755139520549419614204663048249822107417921929417235057370218620957347054466628690426105918000156769502430418512790233782704001123681125144436186268597387087003525240229011763742301115263607333507053141106711744980023552557237906444434444782334376971950867138726410293488809996781301724367376095292359458610263334639719128117470488432514390926003681919569171819064920055562192334512223100406011627437173777612839910130219696498891058888562213192422030581744488508160212138260990817141891532862411770504825600585061205475417814716444920676290588845771536692436121345825760555144867137084170441556361516631241351423791459438034902200572086031770573504675545486007639457555736109501555350092811721993396384628544044973416204229439739542344878707701882324637360003440140443623637815753046610208969212998047306130569035856758719830577506268934975028087194419026442543205365042193573410901541037392703779138960338774219766348938007942509432717183945082901679339308612812335601627916427423525073276215884785126390076095485508078565949274666393508707342789039642419136577872107723772784940959284080606866310190774224210155905310676260152945886278872982304151040475902768841159859553300714156220943582022709460946016568583995114950513193880305960164868067401050939625952962003319680640043549375108667356531464762502417549210725500913161549297548921297304586319834756119418376690584776781743324072943658871272409174478983091840749548942446435317494067342930101773622662321041828504372583046951096683067888952388024530021897126748864384297117707287187078673917745735734061427527156657722235022183638539378255046128867950104537298461337025755275392455588918628897438355098492701490756438927038469691221292914066987575499689830352737168722087216662470669923279836106930716475140653863003768231748842660987334130667282268045327539189126576761853001548341875448801041455443671113137329868813128226319044497229688398863335305276048579338299763731297646551924407740751583134371239474001918894401139206388580499606931661786796725316754297588048331970131028476911257868426864624984628260494228095847460690994574513677514066983861119578798426707277418327839337453157635932548245593567264633247832548642161125538032742339144466018791665748292878300242413930863427955965008789705046839069123893448415615363307206381125731174179349555409296893162287731258650379880675814803666470546182654769720355444863255192870015285442737568643543346971945018961926901535591649740253175388969082842303755637354662134646685498799121780658112995628436577629936043866546059207236133818460151779801611943764009433052346334616731982066954201695593041982188480512306346286698887097660312421094938657331839351795468847821716657001062016217610651600920006692657857492834197921155969468857526830568695427848902275497282307591165755396489770128885662531597573719703044327477671690003188634415504194342165107934807283434255977549260058142289697276927731017123325728588652944087365203973744630418108605965247241064651362043365651898028670691836813979859598996536942163099565102918433081151813623683788847550090122522468319883972000939770058571952851698088691716169812397801875281377031121736413299977036502225363416071242177865860412014414468928944314161970639536159035718397974660659544571376702980272996241270198767957766954856070929644831966353476948680193329524845916207161863265734755467404617756783957242787499995906322822931645313177894779518835872025441449288508523060951237860304760355204208752170761350595169113000021570372066244817747943277768705809077510028603711140519190505143581471138089084796689713838449235883901377101915433831710175437814717293285043793412775558987236006009004689093573146152878194862852254981432652336327393363625047740179319807371527467030324768525046661719340843859769770340968163886151519025249974031603761234843103319891214331114673426286811341805641889783567589554608703577442026255250474386786814517527062366957975423168373067778378192067882126861576918807622197547110303486203661365684952825068732853417452563285218559036638335118384039856978028555103101317799267512078167990404794071190260910279914590701337735396938772348909037088349181731104078930718111444248887503763755221843173075849098382518916834257605461062889961656893605287651306549856316078169309510549204159347158278141659827578718939431768181760023273323812822392275080248468981632002698586451660175108952278997487265761303808549737053320022431368362136186772359441269187269363556414452568133711413216399267477224129829709350122517696425350496990792942474637374670241935709711244891676253423360193794238461075690664562516337401416640563167441871652562359419058299712841710740375478685303534414426340175333223817850753207962078926948378289131598061361080181390279611518226633227774400418242507054594488818188851374332390584458273574815956021877616213164243076856816243604397431758045746024960017478081086638863382968693653748196761027664665039814771136462963771686134134556847860712733070234817986998151841511050072572170878872472052355603975359640332702029596571308996661237695139630514040460788206083620628285667265882029152829881688859644144049110961513340008071334975424899248015599169641200270813481584003181529070164374006354080992657147636159501351798994373096798160441720843292375684287669394672962365915621683269536048477433247273589002222259423957715183225700925925947752685669239353438130128849861147227432989720206168391394264515594765211515290980333429915153427531716527657896580103211929717806479750565131485798757187980609292291673962736213862987899348995610956597860689346327690991235938445905320715499750868569405207949090126808280733508052898935472463252092930063583837321402265804768597568104432983910520376162772649208061260753329450919601477764344306480905794355508698852150670585234730059231343514701257481909801579328778540950287964624887487424112453265228791383452152473705787315585036236673632961080011510984501169925582280696693961507231387082606893981769926546641662682216514818358413691624202869598914363708795915431016308607847680572524863595856992912155401570657170549090607298945743619028647107378962905249738133488510830913465547057345404672085120230097207344111549002122276248582911888651517337817278880359737142654993780085453949238635126222524427948074748100635325794402641637297260077003010246518765025485776592252572044141620493190132655628486326551121312141107055192761766922326340941744617788101742854763592268278754104876615783568564070387052323501551522714093931750517341227062923180957661553396714515492760066791261290966546878720416426922223520771182734113957173404835116344876178113993043558859960344725993823239102929266912866537429465552807755477895268276510252726240223963774952418967863377489363763442707800571652764004690162470386927413356239896982358759436627202327461986284308702085002313051852879526540701592647303453014565334047059939320041895056174221514714249206504189288895576538982126257840472520429776302957492929964574162967720784998509540864013330681483342041589122108658988623466774730201473005520529830083769395914134703192737388761644202683521156338097903942547324281704890988400429570650039259696859049832523267670626932775936654476215718202712849438914542029699537912390807363450844168568493477989141772357512086295234557756185726770789823923668652671054603006808127136205474782517334288059328158834332841007637707929203785268955781283804580479877421867957814776927297865362415230065581222276147595691863207569125348589594747260609008113376010941544819906483700771642762388283386424040666207247528736297328520470335568354281567499366845027320224686481316771049626317171415266721223759609750181029113949901203809745524940755992561409072592276095806085372799280831263450033905170072918048202130100719912654522525665436633046594364598259056659303075504510969359928004278513518688755485936457222042870680763267205708329219535353790692564990567360032981589776713203944359495369347707040971313354813149222089029958220951636622220540685794992202117808804577696711294420939789280003682117715707953265364685457453030643526259114164277258333621318393352569962988463652865715900388757551831863551087230735178294667896441917201454520105851286280086823854027715367863992371919117471613471019304708001125391010867532016546322172834029139285878000466444664096099502911198594790615243853871802377065781815511392081553952342365643710349159642398197370935870254800840221838256347454292575900050560785316815057039636375455419954942883951555463117402610618575175791094601493421121273045276617319598700546182235069543470448296083609292472000021792243131273622775547220227175324884419137172918353759702405307600514773744019422125168964269469561068923980018041096199894031711292924708611493635971500562326416345977911745050091981922085747734565840010790606402720715102019231835888145044090435287105922821618097281188266737257860148990434089094338016719374542796177300247318469916625214234173798427294224766444590265359237562643319923505047056144689288941784780735023116278994597886713203723122292162341161883293004351517451357750986651587460004906994458117947450786136923473646027200094159678695003363354918654201052819169577174631782014036358354399440739459051322286087138602370656268216719563962869529520168377959604589469564779049535776241696506947459922655584995960178453709944447840404168257763279221778377795723678019684709430379214173672895655672938407462575616821730776896329692762128019364956136425729789392582845142648447966702937870577921394642033744715780524863491649573559157080021100929393908446373944390862939672459963489038038159892844686427867532033619716026003946520870252888775617014859683860755983861657751417092482548468269552663382811541940441828699022347522143937409422271414729075122293749992551798564773984636200943469264546657579609514791650567031663107887423284343683959688000808074714173728635778992234976640874535264851859141139700246831241471675402275171990520576453885702135905132520454551889042321721417693420446730064477060167216483202963715445027496968921710517566200798876945740856369471661535668217149622818021154178085605977498120728948656678662622198628581075687106526769196535298321735678407033586407416958283025253373348288018132990006067669277406034743783819187441164881311001612210028042670240048645691999763220586573944413839454672054592492853769779738114042350659369789899639185123433472970625468751130089694106341721926429098212576418027600331366702943880306185559687022210916763106533263398023149311119385343897731492748279324152011815533492187719448536769613543960700088024673271553944375994932329253378003936508457042841965689575327304030862070983666028370868335562535666341474823772830616644620103830710883646348940957540908177187446685649127466463667985978106769586298876853432570661149198198984370926762271968778293937011909204042782811267778473409780192225160823897364172053399151960781754104744917512058939734949141231696764504260471704987275221482012336792107370345148325620293407922858863856903740510323955594361121754216416508142230514511798861051831070093548862931488146352817129627671344449467940613959719947727779994645205478713786170221633136037780598785244641858751265755852870088133197770467318711903297758939311686032805763913514932569776433846233830702194505835173957739315019283521707245309043229257649344077144079293981713446240137940898047235125529967201915410324290108974589458067330034822009550711536966549285391006019611663339497743150095743740313688531662030922746021610054140569183100613386187824008555149107405731218688060516684534967269224366739073080416077336521154311501457153891636352627758786390193531595212853798762025206579922297992550933537207090611364547395828095048286214414859392435434388776528696563397401788953350836595908127934632046762336203416122664492021760920644307767420527981324667779669364358639314989638148491219143139477887658538659994793169972613756943497032890568660208458449727683992589922361938584920145398185535507783399682487316510436089713309324600464353467327769056488107789706022836174202080490582755447034593178662339840687332710362587846214807792018553135152029422958230080556462963383498066393736366893735561862045012792372669687704100210644473418935075563965846399143648538540154194422170335106403080844856528368648158314683501924265733655156064901283854665602575496685734937282079843165061330792725125948316260590030985188585389463808552446962851243525932583308331985279857897221805433058671084212021707725630035162137207907301764980606532978313345685773996138582593121335068198294219590653610648605599004200448185224900554174927980834618134965936932264566163842416236927526667301142062747316974700873470184932473097472152521180969463657176356331525649048059691872770088578300975922276105056730155798571371738661181346919558239695166357604516226475650919407622181663285699819666898910485767493590190579781140775519588652508418232635595142983560501383943745970761278783141749818458918613120095190454945447645812901368388186046973466478666723566470925666852480297034547599718258171095997841510648575154727209339150465282873863918496449260422757364618529144477871009586760222985010800761033106472271310850645632240079793706343695772876982928599006512046127311813800810237170468428379676097394976038390503430238782571723195072805205165560594379416969169629424245310408674118350217257625355239480260105351466848438534578440365780319682648507630398412238436242868343879281442641935842865002609173155309995998254888677476944697367395332817633926485508991450789851361119727552327278901665229255030676067200254827988417785127888117288104606429621100678589857480989508407769880286231776649588578133703349134662753100085538973516586170388913828770412974017661064433100753206076806871439216587801104484328070355133945898831028803456391419097717727639880997323443870639284354804231227550043249740558195222520697217914062709021472865234838172524012761063080520868173565233008228501825204359379014286775746364205843524329707789470418347294374779130999508883585198076522641907901182014479879332228269042452527122958960415820147247008003209024767561569927569961845705402987584705034051645966777962280800929237495477366920627499117393377694666128363377008284351427295565192296125798033027898172144614957984821772631937574557137728833224196249470024998265694713053193956804117884614719345843316419704940903910839455574972450348402231486366003544229163675404783366552629158139494388017674811044066264811520766980284663481673302286732628434533597653949209103914984387146099220508848094812750850788621370472331310944865948881979803146825967087114958585637137728852793429057975502950535423967936450914542266361992839884834842145412846807102560586469563262415199176728448913101019755856185507897034700121926127701239168499296101227866709522678969789721882043996523434552855740321782038679860849136663802329378677905795360005653117766941894318223218500931306928171997070472233928273399905588986272130296702682007437941858906375649949362389589584690184657093716406871636562053577085903812487788634910756243213604045812665462058314057439807390334119426679226602135596552742360417851777848338458609394786023674373008552044784422532538550007062125032388928253879501460394988922891812453989002690964673622407849554225505505698905033740409474735286278525590716384435191927329616444731467658000909826371917543159387503869674387573496010120749582855683184777892641845200221241778062926165785236659771861058575591563797394881217036507984952158970855501986655678635013578325431759977677442540173506406037419374767831812828677576179103965667017679741809135266286889128163376981630169451077189781538843427407371373435668160124193924930553948089818844938811785151277503399360934460014809169987588116138963891414074258912562448120138607064759462708035225476396131252725120627352791642393979689883993569095718100550448761680588131516387035955052667669721363453416979323753934256519186997735365131905604153623746850724389107593226549795585033068583136060771743937947228738502672415483661467103768369875754146785561128615372651673698451081690251175956643073144733441289725877087948250734625827826863434615736488687418732128187165636170364360278308690875029172512178145243696511988005158913941421870791427561569511931610945202716041914358548486201580019646878621806167457963161117461799377361917176623354319047317418408845838423191325599353535482413503785077239426543481911118132241871886944764229703541949483618109446249521596415269359165854448082384374428569668458298984393367343367899681912398637685661606983825215231376674416048643877494068891427787559725548201634030741557066809981403356739629069678519813600363356482245331509474190545845986574369142672164522060336607864407469919748375685117734580180039584648800559623513736058347732468131178293391910807915703050880134829652571737478634803444579916361664640271899019933827368339410086809103056546004583259172667044363740740082128425193482607194455320511129645415074448839137715576389177607047570784948792447267215928643073064542739116749476669810577511641770772124678400740499757205659235495706516312210122480744833055800929713291000848960738997854491989815642381102483883739685514036335632908889425925817794129445540322640027467555237021838927315579368946406230110408704163918371607541143894502693564169837623632945854514051712861045113181766830155716654851253758375955717431871052817742900689888942312742959331746906918395134099532704585192333651417468853206186145583600878679560529249853736781609125740632584862681170826672645570844828433853130094117028174504383996313523631876845169126332975466304662128041123426440830358257362523625268295706292473405553129207867614740963154722587033353442111099494045019588382481427235205514958255666472091618148236947337830495526171711241790235848240415867965321250424489061132305385355343848874844951108254425591115569209080972771787752610190090850934879183758619233445850290871166542244293549190037679828830893027459068349534218991483588815830029147877389594875077691506369867529641567825581715282536831668211759946824858846617383522201241030600609105221585342865422686712609917404077826677095625325221643456506024655615677872116088232175705761499190642278701742070416468578627516338115577068295598464531005403966449569573250874935861942849953321237851322199006403127449638474362820275264982430838886472096715319213865088060149582203712587541605464695455041685550426432554542282024777494079085281907710113435329847103874647252850800886431473711997546372341899987444434974588336524448138742347027269981006793037584246092562804405639044632488338714948489223848371744096827809157851675986298234429155339734339575459363926261700627865475830997033939394322231004364333182491724681229888118027505904489319818113046035767574577915633130248488774300492306769701800168212684959457908894945934422970095298697930160780465045222459723738742782857330499050111600509116726503454485785416737977264590818074227688838891790135828795845286495195537244186220021202800940754933158530222292579026094444949149886820328762390228150243748292213943924419752866718783220033540367560976264871403467056927377875494489665197241412044580638358087319241708214846595042108711165211257934986201060795089267584049968645275149999157163964192635180251007274146438255909465380718111554846059852924686256000680296953253670180016817887341765813496010380866288030157118081157457431689606786825860441046934772215335797079420415280723054190501460378554852569053754572003860703388660514142242869769475602659219301093306878908370461840786083260539962316365394185308585763670347310130916967370312371457913317355599069328410574135646954003266810762845557092918670404606617414276667172577425074633701312079855009074028121096246991127502220850085481425671055219705885742610843625476171476716283928174553217276719304414313782578590595569718069454459757899151802679033238387395804632173201888345778501850756488154704065785648853079914284114887094375568561949599947261743618150518003983997150095621103824700702025250684568198934718424488999955731854417618356081637844072216192276693429306173889229119941182405683906189981289566103789587350884826365671744324010024157548053970242439606775020103683877782702785116120191121323576941455984733226308821886502800035046821976273469225103275716391769712062930593419333202959940451229890080868897998060799476888485777170109153453694551598733540491886206269467184620150472891103611505045577505059995583664372136148192525478731057573179267463779800395124266045898485368352672910821425508134292642846539242300404472796642768939808925600911381459783100177868463520579338737973413232499050911425728286191331524788291126532506153062057273216953707428153978650616749087100974885843054879466362709130922740412926464300106468801474996670863162153318539292630057315205763866658045415535951950690510631160689851331025399307086262503455089158465517866768464697610021114844170554595187643486102196083380317245714657717519833944276614204562362968650027260958742480102783659324271628958357903414499165805577144735209249455892369300182384695566311627334778012714124005121668975275257881920218647771222058607118128186610144075798110925838010047619597024127521942477463678367413559353592428824484895568535100570726516473212836712876301095126635306566661119899474078044700747004500707439330246108038923666756105354767297701895246658044185346448548964243767132079308953500752776001710474163786203320097476073339097921430016221778710021915269090544908760007935756114447063026708685901984094656694175013592685850425576164580638001200931653276096024871457978459143099773263232029843627514280898936275905489753784679390861524352132341769502637400418504944066877103843283989218687465186713766005021769874261348005501493592057592320722993179947744214753399408891663914987033150841098121290131238864433846320113681843804832106121499533957037918061373207572217320600085631175220816576820864109950149228717202824953477747697703710470287188133941959703975297553376082081743828862427306625627701983789095420128784346785087441638532021079610740952102981309613820386547782203255160424830546731217164512158290123007139739819590039763924805465635454722721032186877459092492182825135334089402993990196027294601229284615042446755359617069809558995904230851564565574686956687437888985274173851962536879641838048808468506571346167719791497833558538139733933969820040327551922687959645973781996116504316012529428009504777671656776942839224221239110111451817531786556697848688001525908137589672132251160960450934848304822806444449687916128441742474103824963964917204182716032369725519299595338849533098241159791412279056908471870245905411530487784209677845058766920041032164448074027579720644768923913410445824891575313245649868439794806463820248686180823596101583846742732431289655239072728673372584080718755693523891022286624924874793727734952045360152613527848143640471760387241591886946526981531705611732089999632995248006936184464484346229649678262435938408662533477615065834360627643244735015388196985088085252229101036387624526905274872262466877016457396313911985656442810496619272203194147445017988020882842043129189521947698322808029619535203015495281015657920076509633169657073191497227188102025321186313872341993360676968411028008807741076831060435653857006810311375541645266542291264872698686634799458917314802970908901550480087838652235624531692435148879980272402357002218093068907491141856768343550645590860597285203453551935930261604520191471850796487055133273613391864624885905730703681744083741986658737435304952992103585942118835324218963404956448323226775530780445034700961323195736424491828034142565523996750234869817003785012130655305306356401213567014141281740951076178078768312271302157899366715042848895083818089004565766657672924910584622157321531992287099162255481391639148159820268179874137217825894902348302327348782109928491976228679201996801940542935034261447832503045609885266987380373319122718440144251293271220023829980228888184433128724628759857990806987283973899551521141698526897517748384649959338974491981938035690524833346313994750901542309491276844109357944443602421303236162271676614839973849839561135863453788496707757624051539133091204455365243530845925348928639624263291932072928816404995118345664142151317704283659673754247057990174811521328214853184869629470397505801680960937399843826263764494835766934387508127639293153622857652234631824236941788079999284632426206386983869033833047069375451996837549660655409526918372210895756812661294977695140489558850122028582380645722851353802992932520415844860237949034203054901008046194528279835066730476509346610590319642708931280322274201293446562142722644140286015899210383789495792044069898313743380796219239917833676501369001866850678954850362033314688986754000617664398908550751293073630567001919533972082067910277997026496608878066115201021850199781923860411779592635913704003336272736598746452728298559400214989921853933203885502698751659751926573148052793116116938140336130113130022968464620891263766931335516422351725131914552221104337109956116673507406398906857712473412080548639411292363382874170176473764721780338789079699044439240470520039750858938077850457709498603335169062965677952252396483785904224092868882024079911113863578759368598504816524797315642023029133892777354907999724876294542735496169251065586380706380435984050378849685466094683190556986972417114255016361313090924642019248496520833826966398157420703016916628338990129628316652818410745657129201956969877075285086195857666168222339180773912339324359155794432896184484759580232677871257699094927109553079008625804056286860215747425453574538220534200042165519999561283390664240383672671570432970815143304716093413697928300402890536946968034499171388102143853105175447430541907778987967586672089657915370003466370489593889072853941919006667845284301563649809393216403551930854775733381385856257891930667966310565704622544446739124666068007788945759041805861202518664679794027081597375210703020338475437660313159998540166354215040668431834466220763882232149673823345291395796345977529664147091673366054890431960715664945293624997765302165131915644561319981113294616092060436603087785624900748852921667041859403172753807100089722533644230781638615900513843774584744395594123773807865134341504258388669888141714904321418487007166798533191228214190243691442174298832488890765923764410160417780703121298353019088825773954504294356128516882676149080180970922804128585584668487915491096164907296370493071134621346722334555953191696225710610538684282572510927723603050916166173503909946795457389207495286242441020506615716667002538235033844882439663164807276403058516940058983867884864476127566848980078573124479489550763896719191224125266743798235158986314933539588383054966591587702787274208063132516880821197826849209876279631683928530656872139998745782239883626858622576367735330503763779529752503611092639089811014878592234577980336892044316850729884598187251290360918113190186565895043613513388210731784951753396224108716592524115249289741032683801235364126838373411804641625606106647488342970819763144272982845766731487705370635320676045513907137601816294209010100951764115065032935300048709632070284614825028468525390176752382492173219190105919562662814480464079958654217404460313426078213814766898685934883636395351319196780332268289987387705320754220611921298118190645676098341965922531614155289078472453764043546237616797725286006054573039385449605416843369283724580414214223330770649731597451346298063032426975151522046691003652590830835388254224530369212569706460810989425587891774316816691741016242330340320979928645798279220852662884983511333607594896169756258694609815856406200112305771965938394611940813096375600829271489563023490512449913686865764487996022093637964661548816707476311247335400455313146898012717982605139437437676537403895418933668981270563538864714766049508669669487712420164213611314575754632148044551967971251287890348122661705615157231643452012427592940561963257793287192004903395347788014280629170413794761839582498778631765966395747641792527455762306525441426676166392917941146534513102756591025560204499902805287627073079677250003997529423716321114766564750037731887353254853847817934777996213705401526889884279455955168010170466555978984919219677161412349527967310047493336971468868427263190456970728361186668112037099715304052913394393723275973327658282646742823372064229871990581516582367910109430400108576259668617805568433728912157257379199265933556406241245802066512803497827178437378883024087971936449856540607536813549053082725926846784282596526911228561372548186997086779033679089804951612421198456345255962744309557543157004372462626402412653282702288071193585114335044555826990300790246250225192725435291963998063567067411697804082185154828802451827672767395559156989086149457530620093671477367158810397037067476474111027847907518636175985811542489526654679353416906936340668824450128772799228405726035596570076749915857937108885234639777588703060977611807399855366814825927774373473833751532315883934095718452459390355274082222243907184871372226181325948827828138100262361862756008747763291175719303710519287098398262859761844192048227564829772915754892883812744980583005881884593487419146060924607565026156052280669210101047946311766366765483055754886878942047925458775575682157232174784477661289220870896896574856586900541685338333486670549718720200980448734153814343179616233348351974134376904136605712665676289505026329329916639825991268448278349906209914282311775641176340842291604610493442885354142316979290297039115920187237252567326722593602152397042797824187313556049309010200133354201759908077216197027639002873838247235569734730885076343029556834263063524565542524898336396288589263127440366521854328046950891360997414341448140572839450896241374368554043669912690572799841760601720690692219490072739843242778430158288024988525148655814991952755340106540118879902654076380269101403333070391400780604284945062247333835511769932300874517249784740814323765087796133736020315554074643758167131871525583230161551775522697367748568256451118217465465550660770513942103810539927268137575672872881376127098977967204769604719187528577021034859938959754643693102275701591059448956424335268920155549902897509112910839755351965930974658169046903553344325488951993448407888059812591378578512364196020529670311630244213504335194672049831588323247547479855916750295143562840514204282307872884799205324083501278814448158986699622735379177807300222298776388814484489250050197274904155490936046431529202556137457509748602973735381308044185473118174773672663801477020097580298582262676690683557015917034622263312101805394467898577315003619950819397094160358281758886955301570057917187805293113389968407158750354796837283601093017444059782655703084214722927407022127045618976534642794586593825852371718178804593378405960926500030561483378965778614822889084933550332723380361940365979451206984926787395676740449261336012651709430573011084240098400049155643335650512784829263740373431916856884738580971212055673633484846339630789995677712302355659578078092329495562348705351107627924664309124151235757451999894969890387222331366743104217523759665464422775333225007273838496438804552815487982339334620143547090122643340977815188932218493208628139964058605001038260937345554581873713464136159132304814730935018353384836223000497969834434562123635484303895771641875834914177780224234095299397347638406801798126460336915554495651957376617650187630524687802259391207055224173730576766859025552812658446408054398138278329472103060043105866327832937141024704393877476086696151457570535718542060478090231551430591384616725234078505942459247483784587346891512510724426674815580945672158231184645138321599289511412285863607717600043312273202959344794566736906888515431598840710104175173622502815330143431782498917280023426032214080092464855073972933121076212090161672547941043747908564580707956929279196259007353299278567696939604270274897788267586411536746075753995732002396783457044656042239311488989391657464054822064320543667737912863658768328374270656915515485404499289778896811931942261767832517512836759935656782444601258943551990131639658936077968894267150716802295887794957713985880643215386678291965474705293003553669183520331584251974903643524380609104171872408206792528960053254759536696981602856438868941031736263727384304319878493246381328289310289711664692600415126818466919559526143003741644632380474737801426060215542705323385341332820141759817356646332433847130166279380350660425676634794179665709913948042714379790281020635459276994381670818646220419336547670796151150690824499450988400287129082720451053754587806526404577924730880511740710561805750040381126216399033318142965783711509886082924524897942583292049986278555044964970512317979964013807343808910000958827880037388623056505870568011503888347773450014405509641552080282982672030324110418632061589589176377814626991768219381902899285931326621923636290939687215345083936837888629568678054532127089671779830618148321094979707094711342537577507332218507831049498378019381735937671671172040489927934155178959986869528194196923938924643839066376193382802822657777173154392684592285046811747958107568780062265880765404546839198894570879767389533501874783286881454088400627114010071210249563268143949570066254446096848374614148250012413292590836474135457684025362962684789906023362379069211025806965731988492220774762755783955115013041715695962398148077759319517151160925918339341122445520355594723396954595726429096110402111280671055878815491917175420639006033506621204441382309767314216269268787552021282620635391290637457188534547642556549292317619158094948491088495259227105259732905057435783754271631861661241875596243617074243095617182138192161391951355140387807880047999827532252405276607804409765951866193239970234016664353362364325820660336024886084643361705314818504414962480892583698534156327581898030707081804765471839076642651406109036435013035318508798386614694963529600437572196879571043471681713307487562754314973626460604433812816121809443123679022521097974318947017223241425392585375242537348776069857476310102291774354145117301326163316322289182390962958313063156004885112469185952679344793982021576253030308802388069518905282979005187590632153498155654936772792086041221627401838796531457302815201974075524185048036499244695620475799425441844789511610921543398590963556161021523024332203098365796053147006355915493114620752218124093628950497517054977811368388775062168526580763008414589686440017198739250856405357411036055594717390181962175411670140993933232918914500146984153504899185511699003446212365632023388003546636412350029853391219633638199800481467253747914754827274081705178432550645952766092956566241896667234981771570420098328853464104641110469896868549528051094292287515265886443735817307413370863349839325866217418422781751877882535712025277541415704715084805448072241750976700705305292060694985144461920302225210540687503361813504038286605261070791622623611661021251863557889308502651702732578913332268904805452717856106969235617797104503866078506104739365837563930418978339452802677150714312013035808632215333205418187165115894546993314395349466491969738345890804492822267119264935665836688152988387038434964101089189102817971670794091581039315989378696117716838804447423999589442526879767569006078888362734409191665473956450475329563600370810262641701018559776269095429054850750620298201930541685634876658969427922785175399851339847511053790392505236030480550807942287870404593729952270916528416544156232938980552971460955433835430936141678703769359788306025595177273467459137821712277652250745150957454722290717647084143515666220857927395538185426218572683128128056558555170141059842939854585857281526664694201485326855087372320626371823711408611512981133200552273371744526491488431038054169169917549929779182885890147774090298926837996371806177528274585484280851521769719393509950223576463915869460044006526520890977414411654657300740631321729607246148859164173383324459151689337776128967492360360666365762629540029344522755871841114356690466413328587767145979727838718039732633474061911928252746664009742742072034053634147175997389727002633144604375407499872750827846104741543158016477552817542729056454584493698616682221868789808870481687019639374479398303215209779023683695077055701357440216230835024893547013224656547504766108799088954403168523989796217346041304256796915620958836217717026105677161686886390808852286561931454911489185123959197399418438730557418217087332172276281889954050917617050463486478227883191222301867197268746708636712277394574159240158159198564779010391028073427244583272844666769430643428618394760574287356591907179533846247505122152627690645629273398524751355825988230513983815814023936186984364864841057516613355519880447483837057262195983531749898683004724376468949202552908694642374341058088376070652441783040740102761082344912364183334251825978132319510430457632625767818619028382445715608630225000833753183554708151983290814707472970177190059306988263813986918988166533302200102920529844712018092520002046374121270064364870794962065803302231435517372720183395274341369045674821615903767369982116003557404577935951711869726554055640428222457976729554944617374748156204062112792821547548502158615880842164877819394417749544938432020413681973092411853912232296148281209153062846062445546814474732828905378059826108717846161474109774652242288395128485567114692392361610999097518660727692163709480419124242403916883023196344546845885657712094554324543945586995174219997197489853737499468378186235985727221242802786557274993750625454412233058252448162472527184108311707591326893997733894382825281167771811233806627239133889546444749994797608938890649431373500081606358439060754868486433209521397649979045212296419992827179855671911181859183232655947183586478171910438556569153894414929989106473697872172761427697196872857130177875453374730886167476882700548360973200483027124318382948485355945685674302399867461409763912300241641309622056825664190771701320868617251795921039459029413288657523125015673568309246662192357283438706218724883179386008554760203805391437359021576950556492640290425362625752353606493363107633824675852369482328090236675691473886150315003070908662841202651983766097936192193580137195217876340596367740142643168602672794760135870940283456778659758220328123727874321842535726685589393865765078205323279634774536489785355375452413615042318408046014958018005951693063024203056161612540909068562435804620752211216238051846557789030521480133915813952463016546389376117831537954930440287444910583151823448062746779862204651434184134252132838606465912017028840217374626365207024058098021565055883810214256134560638833845197214677357990788064989311575348708700321098132425242908357467593408285453180618437263807265835746337838982365294906041330539351921513349507006868412009302218758498319650342755850680349081156173534327040264615609011741923958856058762769560236648377013376954019625234591114988704386308200852874071728808776968169291158552129637415520618827357651966578539049285267643285581234780269533886918616375302093845189354439951002326976069440197869389237066244737202179729842475249550900885414501943517459317489295242663578837921197176542632983744047310713504261831987926434168321206234502938991624872466941706916103056468006062374617911949834431576208841115105337705019285798586115422791592899220613327457980299009987329150389396410466736352317104592257525006450010655246454224485189183418496981783813955883704130558169565498015474226741627258500471707290058902078065940424479775628281869240336497410316930266343746154081271012073160332163781763503161011471174143006605204080840735598053497332226068868509596686466303519068091299933221091739268807776282078009453510671503594525616665055617736496963136996704481099787500532855764144125248046994263137996253796212274274993034348090246936580232919246835505000655503751397007378310372549926166125118913351552076063966331061942282148080449513070958639517744737857331510327028207539684028174560477509933786127933737502713954579090195204787500417648663819192253387546406255601385239718540296915119180898648771486032546145174911490430296484175098871819724255988200625352741572420086150226794934341046581018413646462738334741306117710373198178382818059024923908915245219013319868402146903314507139797913030518425909684336908960037722712587991587371844084819362869598537783306515459844787524192266443351976938996516083817053659466075251073465208949978564933270546136086538133785968103071720751989061220362916132015136674900213092579304609793021017807945487449304801734396681352677326064816148857349772303669644412717331765535527422045526142428674781757038060529071715676653180621647590370168229321310368849847894528637561618395794490155319454174412436218578095824883569289447617405821236582549482984039445368394456301764152777481097508747166604568323117102392427844124824655412503793104462899166644692524699397653765694680450104038159783383752072519900658637413370868440983242929592568640727659450672927334146265473785638454693659611693357255372112355831442729936425575131829861577462657460957705631273822963487145041803694940452051663274596030603117875353811349539393945087882693784833285586487006954060436129926124687250483963235937484616086741818871867370517696273988658640158269727974282492981026658989944562738288644436921100790762572648275845178721396742670114851742770580017925114716854788458165119180175720982839279880276275634023867479939845110800383116936190542981396060078472181005157609481704080492702166737929457774911672355216749195306918360137997616613019454963110947372310974982611663479753464886819500987775273113710777791982369709216450091044794566463804863588161450114050693834848749374257596469154198363023505049327116871290900385317247777886703753276820514213110513680329528443346505638559888508597265937307909064159807513727618041518363338809767596187938071053941977441749978641190047903868455680284498838925599221896888085516360644902043161557776512413071750066160242252543067677492651365826563249113938924288597465548054706824209241357755670791381877002897738855837598378539912601921595587952557150834608987520955950835718892028400044390157244737546342095059471198681441328405768331408211274238422112356266740674253497849700401233378209955845486904001205043975556110247607006110699865997509650353753364087046194710387294062446479162090002368384022795082501314469176558070987524653758344590132789826458725654269369609773827690438531604514118691291810774510295068778208078122251880519396729169568128573213309427714586945151246398038598141470159721645138564006371832214713445723651990426238601760917123717548641629464557062855533751209647496707214707805198481461474238882625064428085498483120243603687006513137214158985580456742694363324933724859179784516176097510886951955415590012204767279717808618452029132638864866284376757536750393219441709872816861821932591367304936594132177378801035029165606077995568018419882986943617038863038529698287035330018298168911848353948251151472161761623494907311898990026632766995072563591995855721909731234074517258594350230145950539056589606167601704250041671795531605907547664726401973756946390181193468592291056303729243563948948281900406149030699307023528631360345738976806311435867462085153969629367962379686194352436426114215185695674126596745251327922459666164419421535217886247545099657794514274462613442721297718395453550376667677050040356788820146956890692832990639516275177615235700976188965793000519536243410838012879680027671714966195129561475072788177230193944160748202760723538758809729064166277891444961479123783319597701181046989728431850557526841901172337295399082403892004689182154666416094216837109340537337484429472098418073710143900208356834595110539500353187674812298737278458251626418328863039826865986446542878518330905839332543698543477491829149739587634369215253270760027826945548863369056743514746916358692663782386493593000805570186221296175742364726208507808926535166769710018746796035922587754828967612606486041669663162601452544485853597859384270744567693461180441023485511479633140557779444316475300822427876136095953456686520923121853639443028446400628052167552634984759561660765782563343557525270722434684454399390093055461091993024393765190994882702209320450756165538971932380757957665053250241355105571040980753285023834348312042406670278515791406360256536589100527135747506626836245085448801599174504199354131607823846363377513392494286564193748067838966699428463561105790559989750095619339610330064537906472652850185158298462750034154103805369879983138204619601446846473616889689511326168232070836696244639655233462528137419014247615647488005068156161961079289574643338372285684754483465484939705930046746942059706024955910129478395749981122168485368788316173406085845383814164114262032368169142097857744820080070342988617441433760882133662276427560819516939344728232882468530000237992701784531919641264085848869805238080092132129862168440079544450408387363735310417197212064605638855002007156811748109429318248550616613225637662426903424416334655906727252645339014493121935124939002887385637927400121688698839551243550224659484890244475614376539057098246009401071680612532855565334831683506202922088527089686048027796332790504578423506851460675877283391204838138164124888321895666922522453896332652187672449431426254890936152684255925569304322272293471029591998920172009004375373037100038589036313961556648135736721172894172137263998702337184076058608699662020826139329199585901815998638560176194532444403095853808350491918815591399322247012712792374309176989182942948832460385592611916906805547125655672236459487694571570082370300490111582462987405483506301665824760816379540361638503102034484142567183708491121206634322803487616563142365284771108467117733797589780709313944104239240804343344777635237079889904968961532735031097897324422492975986761045246471778165617945915379334920772646354864999912005488086879774037805769713598775566793515582041620144883226112706287640886526701278130748250936502576454453353085805007522646698582330608666532661566572115629120879987767004532287362375686414521968716754355746104349947597933282489012483693323745942775465796084649671657550015794566357534672802609848192637354002274105871509468855202202555909515979815606195037133572107057545247879905926456033146685232763885303521116691885370361591524650421894012660776468044928441024761420014679875462619394417351139493902499987097926198871298933469925334277176400084335509098468830813417014478679100416481497282423051513345662292805228881437734887857946067953148324399008550134154108220501497303048637474517717422040009417193943308058881201933834329103404882346329680385312686776108215282934822978815164367454544368783641288875478185840249959612052635610149433194475599566169988730318964699699869162061535497110016550645535384019902331740719807307022460862469026518833264062456583764034901949843182244985672727024374574494971328955211119147875745238570356502427563053293198615257613999482477546294841023871434041093075105250434055673949638087149341986332463301578059761258151864863270468160599534658095919800686644877555274635927884417215484058343337188742791649798997796233788425286836681385880605095512959359024643511443889005426624892537941232394755484737195983552647383339711838266994032469226772199516840633458132059383023559841171842883347673865686965637737719077093611753176372852153317541598432100358032357643247374571420210941226625321454806427997238095103069878513280602533878647574790571971229769795043808397255938538284484048088075671758233788056080227549350087928867705625356657980074334755229022405092925632668155953898312774396364305668137613517407215751785747555536582379458803097037318872421053275681011706140735180185088170163399098647246831620344303052159092682447500415858189690994442915614430504977948507351699100031255100651071839830798744633304307124390674785387227448473764480479290305357875089097583962049512579702146049844557466881111578935717174422736245186264498131312041013671284844893512127090360913792714046346696395735246705743462523823121269016951877951216830755398052694284221212628433964401606258679689667105319743042860443082455572015337167442223613562191784817634132456982559407854274600702804857786864872184422782875315734342504721298651209782421468878826353657131512040006760136388441589535822991995976035937667142781287315540138271552833539589274879079563182506086665124541999989153625283432580876036361706452755103210729655407366750719369540398042601665420353141637343469047479806357642441609234186729634906784635588744506084807892271658139731764128020431858461701692547176985248398250124704889382783641520120051512447308165341854265478028383698582037858407433898118156285734804738346511565346694190458165340806967336578442820974965754440168339788755409177158742683089263605899124353859445369682143707698066430646369313460260602533176710232917661814665952704351449844408392200014785514418340676822203073771177962504299460569566116245906781513676280232767611100435062983940154782459868376940393776235291020120591725642936809762041653972994807904449894019473825533701369470855196506872888367371998469514663275017360179686912777191058653892316435826881245811998327042768271972202082849498141137935879312686498970157804292365775563947325072942339499988545747767752923701570439480996952903876065728782845273228911743176869319132500610010075473684122614436890741058156687915886444403494680349777144164580885871571207276858018149667861816535329252204473782200122993577676341261757776771918231218396869117740949092154841604698295696040543668464354452263632607141267803353037288110406847201252426194274812963654200225693330002003160730274241908389867377308325262906268168510950337049822601505700464572832862419927327962503334569563785419848946920394948713414085357459779031175796560163039591842136228761773534394008134828357228068424875359389314604207601472704317578675890579753857245623071918696710779878249015385296828709948851367809165628973155502653172014746599324495361213696055192888960508128498733775930835079772918463588196858704334365523749971702090032005383049701299333000017122966096910180828426188734620339958901896815135399645585413993936096502642987819287111328729462502608105823234679676395733196214047018839670390054523105298447401122635617589949191553835043549346018087727640890576555807487373740738425741141378587154610166329294507021043901640934169684838613218471208481147927244471795084725019267583365142005980644460403099621838376683385806953999593294404940570401978902037628477840570068758355928726012516058951054663005574272526053117272090594033913023825629878222176217254464116774668346505773586636830118847739750432429243906956080827551842521771043274129800414708780093211890033011642041889395531113985828052506795140985720856444778325614465990961122709598352827296926641279143903867833380594519327898066967317704921216449982930980885195046106684626996760550533540420487668818524270037377084839286136844754550135377936417615182272830924725551658109978447925096924978571684062289915810278330516742952858237929823116923414280587612513306273697294094443042352407748683570901134817173030002580173891977772526137976840954343169210817675149380022749438676602961009416842729355839792644189599120912421564882314622658133428576985355093892860765881296129566265854852157884899444582658751374153220278099514352649602236536978722411308582330147123499689709364337505750055350208668534272837278772230130332808503656172275887101180041514730087114648202666253693337856140063504864664169054387950559157278352451861745037552827885757235745786837345261182905542079180821412080714335662076598187270984875894971745603972160721447138485854264071653843463162733611158449122692600173933196788462816024336207192074807436364218402415698865371152666223168138066686084875286258684458201494395156679863848150606465283278392384509335390123310212839960444339686930308907793060792046695675039670823344556830170529852393830041463256090829559726222673799614917345048690584774079279785905650156067736691479283015273149871523368644691015914591366851731658004750865685353212216031786117837454694182138945829252346566577845718074748884517297647735242027307033776520510272578307822237247812057051502514311771840418230897800007308771563614574547590271829965132820065674058466336947434471007419364736485733635364347882866589711501673102321844439184582643662921677040661636433235792547937841739876201810242541773826699960687903949027513619547408255112586576042358707740294249158549387263984450500947858456305445047321468864862578535410540294818231331921900628230442495746973829320813379386798198184519008930014187933778285226830370891326693715307316309184349329159395277393360240331089622754040814082790003038295640300031795487297908542989045993413681935631760404241557473127961579234953233053781770138975654637492906905321676863118706379718522022647364035743721076425529509312431443260789900707411273757069203223477274347626027893358505581162604534271583712856668878112996627347522590224782911625662862041410689291233479801596129738600880317620519238286657622541327142488074021587366411014480842666381815653966322341259066599974939107221931824950303972638575523761509787144028959090916950596769951167644508033826308111839851042373159951802733121107294533465195068208418121901696312769921268013626869970276848252586749168242909772667823887904619098226805501613525713588946539938212094551570190538692708658349955824832277284246620126168726364915323184385944778976693134203833618859478091503643616363463424388424298678086532530395793957326749860704713065984313449086001648951852671308885629221496023165872321731654329496850893572636658297736101879629878757245794440495809178345908298104294823727903428976466839090590801754075814269444654899382460720996114624697768872636331944290351960539289807892247840428566568742624565942076136902909668242705689992275607610577321983735369643143929407782886606562716068539078841446822182597652982618574334016614644630038982533042540767052614481359404263837705306587327948515621479439184760782355678906097599982819631325397706048316200285368324739644382713944219725488265912813115619548682569952446972311622413975112677752419641162977171301224788608387289247046168018374545036218128695595688636086475843581751971787336390306332627800733350054341205842907149918466537348597895154278936788021486755019066669812174295761477308473969820548961673668189823187614182240108335357970120259372759687530996181630903184380594986766605752441360196507737658203413564765580045185242117498525647935049868454192799020782809708748655694847259728633835741239560387374863829222488802293581639465440882369619430409992955170687012221849252391961768437972524160561160900196755759186288367674544299611342384830449974748231778987842300678510495427462730412818235378301260699048878337849811724949936301160388739204143578468101036253205916157124068842952203003350723703857422248970654311435622177587994707711568021599179693924877294344503877654676262734596762736974621446996346142055320268100994212286232679025365031942728702890595296900603178855748027810025370422637503198753464859266712543028288454974961871807820571670780207009291691122883963919696829813572063517623773103966947208392210743851986301265155820603797036867553257986485520956337613838848156209329264367325118059819523264220031501551997390729339074772601133552161478602465986504530135804243764525919046721972186062237450592645081397658265128127690561508297781343507629484532116095278518787715907233607533841593368183696639748659314276761429153695401987813886380143033011595647390964451406361166188781533765894143348054765564275707380517890150803463925030861514731895914821338094340855076465172455566806374037796671018206252462142817334817340682257096802612194351687579644005071201587394196531852777681773594110093452880320963596335289632847305862546745359845625040564327454821097527001811345426139061695416291034669729741349259625077937993915135330055601687148394632711130725047132979383085393977389644013810454536838727583542352859330673447305293731958532494432984967918838996593294900750767831520983837780267952067368334009497802106057341042052933367568942095624033239771826278059501798278530475200072341615806337616858973103021505836662993741649565168872665898387184708464325656325946516414231661871633381679714652916509846735877860372553629671101722755455213398005706551841108468853861971243629678446638600694946067599406961495378662282493050057584998207971398874444430961270236094301648440836664475308603431388374973862551065696708510167416510529560097955687839830180265091793891306215562568857411151333213679312264648905546413093123645570134715894755741855511320956907235786845625279373894634460003040521193560574599676407677427395511576360895027399918025375125228541358909640193778017574361655113600902846099713068289901530735640113040641711126340477252523311384612485704100232238169913791432892081747859324750716923506632480249609350208933755806474779089912462614340415051822095901309344975671564428157440824034754069193870634252800701578882742895142575858310714095339844352062212601944930214891440403612528981182022707049140424170367051984214591863344665755388117478613462912758026178441457762409441154024565143550724830610947338039909827067147147326090874798455919126734725300034053995328780330543608242163578682894154644871713133168824340414820238829323049849743614986387241614075665987151767187696109158165109249505377411843298331155732700181649453724343134911686145554931013012973826644324541518957702584083402116895420956908261572382253783469302830466140784345014538583830827776133592305658517467320748208650015891116849771198066947428785149349698815228637363399324295748563709600084329365358152947616564830888126026022579831227738502376586341415601779033823011514747705999384748304977149770041566532097029663416495538547875125590379775969695814249913841345656962027165414487603893401267055938189734542201436286084708389875191969695200714476163102553538432347848348616205505757648091101458548021822684346505519113451772328480140127280251936752576011949628186474651120666259935905445451601250714114649878965176204321554362008876511894362810884247219374191362640788007289616700183186889306652448778095981264047579234301699558828037196860493205662427810950893953170670508877590847173839781055165302993152263569712739350200798032413076562434411269233856910680083330904538691398991673153632142745735867169939344168904622135926750713317314375183405549580683953496511769573801894682989505904249827318303731907142160747852159268710671203723062068884200044298753360776804186489430744352004468754059805251272008111804985888867053850047868315760466011093552160010609627237243218843262307294900154340360224067070162062959880308565038072402589764433850556519391331199278025986698425219591262706035900154366114699372722718061405236484641881415813015700039133812626335830134590463382235895912588157604027137498659675219195623370651679607805378544816677846631805876639652386940829726925601730943836202742805603254413408300203457175597917323590313275861928334165473013576765661456285780577892572670941833197907575370588418186678550061261653319123641152452318461608590165414939037287128237573058930627638537600049043103472236101484516340848897182406738074364945138845119618897511088044291749542743985544787643586805784747671393851808566919697724995408766492423748697901246711156127088023228433650722990837857560811295819133975858766682838187088156352842306102483689323411092501065602325006885993947854996713411689405163995010000155452911312473581548992313419332712461381973959275659210935998870213730442247271707317084970540559802899492419010319018084663074238098113219816053974052365636339037475163191436502792998348613804350779085269555807377982221782584329843904459582819451777875164277061402541948355501441105904905857290588926863444861605500836912718762615898801451678045503407088864918500763128693944953962557032688877609194261636863226727626386359165824888937838939306162545866961733508811896894443344270640013702561173043424481408713183641105829281454404173898739263576624797989339163216481300828190835254438315331694562325427027466756604435164823035296199265811116425838579370770678324103576223205246206562425385460264881404741015715425522062070535502532179651735820179678438664585657788988314885718519877729781912015379586423607648389856459149629361832626638956608991254294496936602510056731580897758909854221699017082047860308671848809066179226429137906361933294691045872268551950060823356975189034189267571745494662136421662628519859461080932242331554621979845616711728034122635753243971917545909188927682716963725034537650205471595030215747417652798368172180921927135891663076332750077147259932252116969811693613102711840024279370691590109291901982620301423737543224247846772477520845019784328688008373695337159819266549836782152405295274897014292045718077547980533383487263443266945166179180286579890946969051903760552056504706508436254781763083457946234907915362025295231834469262625371751237928655143809206010824042718006218943374095850956846364743245282725840900108849266685239855018196599340565887813317236523322163856948374756250918169545939468262259871504999976583778240573050998387697417228117430285773210667758055709650597888397089742965309198321676934198146933972987745043833803230081768321844552177573661180582875872950384685041343829653295893496721123382818550541089847083243464327747368714699049873312956333248098267855312719551101770325960925799577829853498183290995845395498717550366569606031627852358926096467961894355982529463518978647774942885350022058518883582811482845014165130184323897356496308321132261100244963044088858742305565089647447183289523383886362005431240969101260195759955638827980764729478185907811803242996188848653851840534694821404896402587637655544604940442520341091220203449913894411157487451757869684015471308498408986027829989249409987714196745254486160366795506724682554256760524389724040301060485829201424834545331269068755648344385601743589760002406532935364930063759293854388447110868700728907638183261795663708109828497585202780817975041629229645853977598543521455041719422175249502303037848872711470655962784207907461734262255784365767930161002935471722432749420194869204730955739034378007720540433903785834526721391497960976212389214951479628232619039438370111325281595945201967634083021968881858896654291758798059941306913109822646789577238430914467583643630124668477669360671973211545062887854037980267034337843934340575439908241275194715599101169106222375965255457089555422368656279946423997906992717685504914023530247454751132379724407478716842252445000308635121185476556928752361654572323442530165503885624788051697359859897766536957131509957841183396321129875226373302249997435627043150426998956718916031073424023363592364391275187050804925979451287855751581303940638504048952669257527086449384722495425097543982428124410674994554501553629557317939855412408551574232097656740120946135495374808728843475868149642280376971620696209487098032281558545245700603715213811887255369306913451075279958361884397806047197356916060184764021394154394326804671824784661723915316064428592315458489018377824958327345082838067443695786555862352719414618479729051840273124081790587622545019560225162168851968794048566223836154629454277406992514395733574227196151756118265660590644091328420465521949166432522212575010903589886075583849755772624409163420275092920464749463661412297700326077089193241353588996058840615513458778187161773830168132531682712521026684964633470410406504188523692103868543092853031225798324499218724632166928125502316673586833949652999540952200169407041104614559726081535521470366019704892082688651253022180780730463764556120827027495694205406635199023754249348685743349769833659323324046893437519748376320489503791230647464395094929363843946077229983616984138192893911415601607630650220892097527941194318934499885198478390977184748076000700470149998004189337761725776893458688206375749496211525886869179175595493748721038763659318360309527447530001694493441414263851732439037043258246061708580423025300676111406683529757521765989767603526969958898414992359685166439686723732840647615905511285290743988857015995380926340909652482895561530657700415867764740323570965436456108143518948921229905941650687259065760641673403103951580387150642526199284630357672456605726965904896316546065871433550838904962197629602756576550521947561247785870472289790066001722822700294995789756596854298229302489836956230153319968493103135340857224545910312855739608150484694537849687694188745465694164125611923252817580604954472994805346948411488328971916220969631426497574723212118683475955811971863777188357782588722663240067778525611109322958191716443526934241074688023330830315249701663060939128437754363535969551547323101281673568746318152092178323779999509962799419631850279101202371808411106826226198535995723928929621880840407138106147915706467840966495110460844919479695124586536563706910294748844166900736050576336684903227795045672158355137453189170579291050732068384875350273084699362837251027231203592361967402902876454597154085988801697808367852993896689642843562740032147229918296190680994989157427740269436435882065742139736842139512507627239307585633108285955977165591498252061860684654591072782438067189422998460543377349795398196619256278530957229995842841947579225313308533715367355067492275390413886416462233319576986804256796465076707388884635776833623150987440140660515630496695704397129231050742480956801694177001293782817604986647829920133529119256020669732643304666284779772157370756679712243323395879053509932520321495362246566257788276734303323301995374046287197596419148659424229348730541086502284653636760763309795050289073042998722879962909831390134010734733159870295025323726889534864702632643468114911592598746929413912018543400915751711328891929347198838510751158431414673742990195819220434311261478941507455800323541857357453984329521507371954707708674640439121573136572282191133918429265613118041833988265073814990061174687176932349770388030181613294963979430891370322409967959230913741210004217805861507377414741886480212658499067249423620837860784537999798617401695636902791463962497296534869573665264052324453880672308127091055354830515775880600226357042166499268422840978214876858149517151271812910222312365782324786350657714472183671045061851621793699351174299754582746202877655795223134303568484252758905146179224188682972707289581459929728892232866137014096454031789420047758347301469117706507090633320828006947523822598435643815775672116850601340470333970527903248805355145198695934228588801282163608251474397609197921752282756796875067710378270796122855442283763527286178249471643443802504563001078818161243241200113655137276082292369791354329580612591207766885906627279279366006277560220912306015859842260872764804145750151667671605179328715805476036455613107861977158883869834938141961354234058320236766134883038249693677406917478134783231637688245300904297118903827844988962513458062707762332364698545845231594900470988767443393301159308824766440952191009097753092020562076714284073721182593284703759729338299581165179525766213950061858448160923977279425657130466599155621959738397649074750569597101362667433131839195713544169844760104026102744188901276684444387475037451279726311173838851993943558926190596925897918420129366086933741904928540158349302793517281799872924555240374230994715924609943382275157516368478454696104042159720232741719223235088285428794909497060541953590589172775888642086884349087865604580825846386968374621559833838138873020342524748903582010249136263888722630768495096017337318279677005953730546786116848609919699654400483046696063060220926603179596846740746259628816997002009887646411837731809597577271723222354951047828502466914470781912960871176551697265362066878620388992543286164966446637354608567252523393665643474616063352501688171233938346229525370485423773318188408073264341804269513177414746439420293357251145879378165819722675832900999487002926916316735989345404536215724005106859953874410766540061083239674038231491867830931594190736776378170834774972188918933352951081438499459160169178851983849368922467787351612640248096987040934153510962743883480663871358742909909667664348928097806875476248632051987908550039242003487260349827379120943464250731087166649049421341388611273973988769078020322761082697430627225072190700738942139595349456370801317095553988316799651833815442329932368573072502519423805824117693550507348514881313895838949562252576500249964954500999214256098461359727838516746084937172176549074387113331677643707099998553055285113884767300020668193534564807531439991354068234801014722067301517871413651956918894204984970135224666195332170450091257406315219452851113607317533743861218191466533409344310385251609460770262127001159282210109060932366198900101438846756406443614309577655217143928884128088510466858215258599293282506038887397660697763864077324427447472504395510214735439233387325657118131654917407781455334738251696725096035079463572611058836629045635042852093379896528864734668991460738880580554209219873970371826493318103463593510312223544460941229028064535630930241120434831210396790181153181018728700570379862330616113350282114811682074818393482260978812615787297196259460038316997289393972835964343040909589876407685056255848192822723250443825816029281732938900300691409717825905475943959752836803195185998521615395935066161890077053445030497147609649138013795475143387208543662353388854188252102217932815120015832194735094831266696181395041984451221155684098682714793168253970931141713621643588335782899182510730934514196189515959584169768829671142926138849045356638052537366232292628848486909244143149244431469452165098623850693486502071778773223963984943032979898676321742750124094231894285485530018874114922762999064454831116866329455533023537960237392146545575976779518302268495946670507552602710663542765949681831746161074232461703087537297563084907366029752263857864729748661592479762706519312128835659271923708590104395151942239731126353641437758049336090329241380318998221655320312612402058003221270544735174992741285372660066256428834864819839894304879851110233516265292345016769163722326231276197594322638396422583676825486315064742161077442406455547640962123335361558614129738431032813868689988554705615725856729451643468460260922120613284559839333922007375386360170259791865944058408650263637068388493998621714240943252715696313384869876999228499468676701100025207011819058509103932275457319808626517505910406444882595924550353477956631989710716255825349108415783376781417793803467750341648663810537798556259473244386302269460521725871548694023921908155805067309104674053207129019455288079580589995873703762117441395494682019293213418306831685576811669145403840554137744485103890258037936664541658733323208150990785273374197963747047750234237798560207701805326300419844610753854558474165125979559538745457649434868446801084126023112348738651882405244583575821298131369653978133800933287382413802023455028143666923791868411028742437068037114830994638082303229122310242436539196852953328157082087596127529487410759673807394234177155141716528608934003522420270766295050758472744772053278041298339816932344501297137653985091149315466499822772100788776607393507426693095027537300569295380046218459916246278816027587625135279828952914817469740175336613483728986460688187650260275904198021330917060572674419131155668232078370076737670774934841914177505120846599172464177394133902261770073297926217629954746317907562837541962794428704253418320566137816579546177808430665784632864158116584824776984391908804643031806819817525625215502836990761656789988812384777352758537289147741712121484807203171383930435556278755223296648052424284614077039925030214203344820181514507137488772965820913185277313825477844170166265391434899229259396914615259314290371498372395093939017778935028525279136095609216603486404946062497157621169762572447561693161253040532563404192338483032008773608683986575776735204007156255211573166320689158215667523596407208030981599253647891165140639474722338040194255204671526593181850734505291653912958612977756477602963216665271989153578268078088844422555277627304266332310147549588622598900017267589014266939810662604102758403606052045359256484231164556054150630347141377990538051583151763739831523816310388950766210138088521131305144733800272800545497112692460081401437329470679899574842265384524251912407081562422308961685706263564072903600034596046514048907157713868270203898258842610690610676096980345486560497256239230300524500474863417416028455981463717158630260047406541458551839706005467052459428727260434615526253475973196204663697963922237978384857027304622980737228073564147876989889872643544467771600158188347603940656037993523002016938487259558429553163630405927827069939571978656301511956105927574458067798281943757886578726243783421376684905076562648757748658804614129651335185514522890676867829056751196870170087265168512737561136996582727223727867021830511429383245603148154886191649625030919034472681972263398207818806167269061273583151051704317193368655877954965838962980795476649259048461020742500525982229695630807812765873474676909574622211236717382653585680422032676245103634345235516517181502175995602997394897903759866715482222340999240390112086741500471982356975370480968738190564764262800571505285226953387317420453866630781132053393996205825353590209760322695562282079084587498216098311679599418046217430053094400479675043270965165043704039871870080799774067422595625808312186157232113339806727103437655645034142278855800818933910169411931754291898591201268893477123410438719845358672093709217289114584252228878843745378025540127379830006285280630536004405747581750386056320846973885945442979279274728036815407687503449429152222591590115121525881486892596686818437837109596741868067958505430049512852725474162619140714634945667416554071492727597619628535401028322952954850506350560975336706502806422939213613195336608393512287973539713900673855823856959635093658660834963534578818756906468629754374965872758520955476632664825651699084664645773961011200096612592479841675509141338077901430969940102278889093442674834589512589895522473771494064344456259737297829390462564387904265065239210063369624155893940672677049631583430890354781303658225939299128522227198479906053236875498880967876945959606919495001745292400747849172087675540489034585740976665511863590280870472861241899922862424779366370651732707200808546233454396836600896121535199129623108586794385544099327566876494105134081776341189415341417089913292387781184617736584465261304156166382243295742535033118710827005962341417540160007978471941738901010073698420288073095218406602307404155395426429816339764285781059882052045471846507411156664937750093359788312252090569654318781960192212878538853157781177840894315354745150546319905305486977487039553303572103949837607720210913055608184666541430278694437525019904110691951384678665495211896252779707068999746340991158005958526783746251062268226221614633676332018635258925323980664136655690510946959903189980957213782751812613961592775340172824980348726139993819684101617190020335676794101497971735060904662612711554193710833419399122024690632904858471414869456081496397388971051228858228634553640799869663378817417649165014520135426229857454775110926052203619331700048758945901466103182799736189976625390785247538935023682485061508288067162506683233539496009965076201242524476100629932900899859002794674998924037421419850627633986834064841023319357527608775880873402851172493783952894578011513812060119513060435809321510036920865200294317443338210059501457754763270531308034780099047062619912394330881168559935564454775133965047494785847285144057883475067362318729575764795621680213951550542855240699774506827185280531328047104783457150331465977659785809645380304400849815194655790872068737720805581252233056695961798807748215802225759587864255585015615623739783809678556246574801709437720466782184089221651122151148373697535191293791371597734881512460742311389607473249270587319641312232595697129762510235220454588687035984499798682158134994452666238134563338302377935760814761572368602298591518598083336181576322728961380498732600496112252285672181909433101772672602802450834687287201212881221416310279417642444746095442945454755880454860494881616150437419470854497066026547673526037179272002151632744863459219624846573111877550516293666331264589708472354027533887307255205540651392908050188664008759529556107758295831026673599485087991795725018980551569435385275932135014544547882567787596736740848815263330036008220416736177740306839380558890857198327323249336282473946871063799259499021887159075322585678656011443799098681009008218842424365718489225057747953331739382073708132378674815102258420987171243311844980998618098004617022312186785265346328407554271438664764813280399704427429180667588310888602328067839636768734302848479252608425087064085065584118715727473384576328207222344327510982269162231556132831149191773297199969797197872255752282414701553796612973400673562182932970592726077846317050050493015033643313824721780923086339932817924578024577662591051844018809544116983636311247397375008015292232366823190362981111289793432689304412295977713816360986188031125692592959592464863570944751268026384626733262668596744860536324408345586703000150773654346623382696799772885847236176270048115136246232536006535392957735391668707444074804084110686919691613587268467320916995744180536697122684581935745094420062004208324054030894125981709725899866335492466854803264219507228558592689589381140875677063453544648534022299096384648452307782807407048523512401729785784033254266802225106530548760016530606668007950500548370319911394276313296608458947469873118066110628686670667111977786129913427111296601668111180210763436259690518043178152929984456940587604389288053377142346726032099297623846260803142941293982859725958741540443431736954173958994355492673355221326605853124956741177906460581497675478730018540165829045098556014224365481883282482267225216380581355431265391682506166396380254362819509988644158757416560316403174641015004961011720230350111169968856189975555575324009855832730634947052704333850006059845210539677050553950083152392127179729752891883662914978058100624072351482748881125861528607165521048707392238530323010917693859860077679216111110309249937548692424030010620897856728456709460483245548990288892589637296790989529622362729156532505745277575674554288797311894571593217912231197873476174323230954662570970108508503877236044405728235316871277672215457632492911418311036650862345772475532517925796033345370691625772129214516428764166606888211230616208070152829623136170651619181969074193224033400575860199596438113027054154422035815795688051378027288706483498174916615019654235102327297720787709691919339712770237882854812765716165165733700825962402162570908958778318116276960350597826690814119923127623621693523609895432666428245090288593340788695400688352312375432380916873581041513268874137663564304853006350553570053288671707350623505291093155699365088132607871521382997713384742332204348680238366740536658879114196149930106826986093659412723172787118322224780678718752951094918755878571077500866108808946342144954970088071261283417796009018636736085390601565847896025432829429837285901443962593687208878628040787011593376702457813492266483554762465145344795405189410878933930442284300787919534005105534810983491460946659834826520528516982284740122807051451875735536135992123668336990399462702874196964036018101486964953520284814316904779559887150555391878286716291318207611687832005204231242520962467575097407769885323768605846472339447529073171044638940433789171446553694476363904213226926881172465051327769709639925050825802902337649322571925549740775775659615924484935419597442956472342053499981382575465152547253747029092424297073003999888096533326190291695090018290744197041897709291222896592291985139153609376060070490559693033736153163148924990346048983862815957927427751459731273661470603203396175147276047204383554549065805091691550317346484250669503320532183478637740200402537164448856657056311392824637232961171985075575828791233506505010691088669913837461842713588034520173164452843068771607383055365732699626769688273137401966750185769643934049477907896871770656711400949799853771841986760133777331082902319679659174783471255527763833347680265332334549071663073278700157724712441750749074387487779285408453545428320195852442493328404163397172758614586803624145129115954525662592380700976068764219988062606579205968464713124443223553991276312289269485382809443524462320188450725921364170751240262507200458734134641592599799767203998747106429411060271958556855456658179836071137184995337606343800396301455976645143689394958854368941053350742198616034695175144847440789053806002384791997525426358557888930482689327288472993738351502370070242236834423789413418697031505868775446728324161846407061238607135515124639410676837004443349639750704272759525119615481756627755096903284348939038834712482904334690227065128766549347762335242554651301808500610216720128641820827739279013878286502443070714250702517119381771584645863992002741251559442336724279082788672902723742245309583631520547471057076818413448080418326208619383924280473316426756749157323507009494250600952818332024346572627057395556634818196599459331238471966128904440300820811216951131680260024282517687941341192904953323273900596949411900990066419183382715429563545179536420979587523200221537862164204113846835819906422906569896209542579633573457006453130088833043209808601886899943051366659898994649376894455327107548527526292914557828243293176480778494993730323043047270111530839144684203727317416863490808358535318905502332596638293916900561862797815524516610403360516848989004575037814285154691049320202981069908348358509866182855737836277642491396971046861600320640112644096633501833290616274874370759578557440676678236565530053023995451323523192053965400284189031790740973992411316659704440558030661365274920630816316321850273355999704827510868987240160147651246809443625251202114339580574514857091129109821792268529926730548669893219730432926201889072794206154984177069750694381183488401850682430877155803180147088683622781688349936447168325334378752004661291449744043646688839704775783031681918647349990242331364081628867389258396991121943593474391693741367436261891632913279425103676737048869608862569612210938969235661225305233543691854262677522142462546575749571796119245291763315817412175609166287981463008102948194854719940551586775051071931822565870203376512623597738535902066005713340911189010036612910953976388226334052429446107627063628544024974415641456010236463445894980651763637536178663841908020956597933816359550245236848677750882965461453010668174773252631732445162350078619442658488899637897957295972533809001996740580034714539993423821160385794669342740018202173141276334869558575224648467008644687023010990642622006652567966477956539214286816878659799559809626654073237319738329565751712418337366865576470142333140477993120464968831868313952084245257372980627088302339369426347571016430169545136173754533101573838789130458356520244397433832351763908995615478422228616230760109955168403952860060655118154845022047904507898468311334035626714318101744629346131616586556277353588143915103422381732663339155884456354605081247111784955194561439306512439723047288676534895979082272503328800467455274641553952279661152086104214793745112348710153018659640437953950448689610177765994266446062998777767524950537840695630575535058972477646974837742198663770427741841783064577533135297954877062794948016275861256643844052896865058829704266746408247104807658670461585620657400036571472067783167847944792621944097161800117949575844431831710909630812035755061093038301355750257608930682838286729842030741702495883939612692485473174526421136355580345771654197158909333102743657373252918342253647159364662850268396301798424123405604188769464153898555896101014334134584464639039291538150883851121212190900766544695290366139720510820942564218458289633244756950478811980993628648877585831072148953826457716777307044764044874548331053470381783565859393923345898084785534559074558129041669640422076484140784624221141592473247710241426906115458444959819196172345384140158895186305387980577423230872370647635579420553663758516226359622973406121391847090470506594597816495139070009643874686247768289413104196003219676213006766530734602046981390506970326846983634101188948642159643537367662128762697763504726966260897588578621825225777007940767448531744141655500467755964228996731702579991411700581620535444193538277335643328793402070272654475505672568928832108302898970137463232381482522567530735560522376730900709061830457194502102960004490400806682137823799149106320116669830469348604857614515316641366481752274916589065314260631871094475790916847510115049229601706230367335044967692565000114186721865240806041129141594180457499240915440796911516280824974612081089778355195299043254834081536072388426973001399656790150650722396190424101091886279078576483439489904862029240837894140149674374293585449295522819150676456506743058653698988134544324511945566416085928424302160153998555941067597384720256985960790630143572697145588561090495066516122958296332645633336210326415106890621445801909169932298812049926577827601260834943140647977778593751967214386414082020196166443075386248614035248414203848444884171951530474726248243514435761988028754038117842056214442403203458500513456680502818943591630870863083746343678784200418630994691149945734849166613364231221942307362267408354033359221089588122096168026323510761416635945499138766500413338626432938989708519069427701342915945433904757587148466446215069116016146809363750808621302864574715789859845723814471894922076495941919483116782178534895564148030995747478569856397881458991610122123657074832156617152244969699838171318300496803780568726605455960634572042578005161267423975211660873223687733052148849984117756208771222126714265589764547423779715482291214976984521916827663872515167160971706451067238279648260859532064179673885876135215909362303376117341091625732122659550631212688662190559451170190915869121302394349667512499715457899852293764480406260765004022847182869320112694859047854116293158608611119780102700067726841631018985655462945273834675220075432556378392224703241798451708055195971626968375207584689730854131569006961168571666206569456900149174399712922199002175751609629767218835930995010578566415309850901208389190355771960147468535624932550950416961998132054115709759176925227865523769491896673939640984141296656279578112294000286239203695924865953977867732989196998263150325224522126436269132410152203150850926223795990290590365705249581420932380005396963760226997001634933875330277801983085175036302532924650306925388689913629105820018230184727352020533372392349780263165769799658857772287839771550435054243911275512946131351052769370310185711173342821960588111770164573908143835772679819671903150901663738526539353101949663605999524018026023795889009432268464850531704524390115281963855566382541370694103921855838962981298756450164966035648848678863473216156673552282345458166164158923489921671680776700649728379450311992648003455423787066170698538358255449985351974837427046908076677074841973704513358514408865266078920614585721499151620718362212839460232604504092478301103682600842725476011923558424666430258690843932547104974573913850906311122888138361650427801323187326480741105963016531272944255191037648329684251264533335725835341062010796739381648420355977967125327132155734267322735990053131292589919085178255875824589144635711844772536396789428100763438845557067846641432636520598167665304428299100392895840276660142260364337183657447069284104018711896655527718160921433154189063808471567199454028230661180029183007690358852980380302824609166993560875341044439789200792477939686228963251470050378168144990940451848555532553375691730801244783771498429514668194341461347780186893227107697532033826936531492452923668630514972303495715978572731351998590706502415223384191841521128059192742340727709139572499800814282003401338524685150517873276762166071284482655017966562930167763695852115108181483542829833452415202000924161182241246802749048613413716515580868831826827741366795172534619435335663460987224664437085384194146287692018514662314075573049916205651316966946214118333930234618382611432867542287357168175853635551091585481389334279255494591193839489419999661911851951763377378448667270471171643252234567799620616806586702284012974865895187504686240994754572710070583422970721750854779112791847850606931445389702906640454239371757060864341646155422440578057302755644383491662526212240208564105316821070908378760193872902565482247162176153956584578823642593435296760205090098770190653250679076640450266631380667897582051992719046731904571280654771182593914347631240078409596051848442526027176556170356573408818181106037113257277936433245886581968630166483593496429709048117588058122564039028808680427689050656651275269445993403433443238323617367683285151487531491584224494441724360362153570978292213932940737722731815955513555009395899759010010336197051963381153958422088097166189854279533854686699655016468381437152356268211679864454195321632558422005016540935560807074987614689009936723256173690544062884895922174153064827622785493840613709174606649759916718884070718962910728834558145128101377865381961029430191971440151716358205776085083269500837573977337803609241216965792625783764854072132323972173504580560277494450098765497714851154990786922482233626175207500026238341300088962618965733784445399560313976044012334043853413265233991274361897702579235600583944246420725825776061159918559062150657132879878863002457207001872444863692692991138732085670020165918836931019526737708409743558069327493523265229575562589772376451693771313933255370270484551942404191250238991318282628940465788586523786199522773132914365804814673853336240496659868118507296382720271757794608030340500271461285395284422007076048430736993092358528201392151873766534447902861503186469078296351940331473585138154747969526310477744211258453050590307726792622380198070306287479484372935088972337037297041400898846354388120835902538046636078390259066523952398869254599975729798002806113024230511366396200403137691347205919498245659637450929064416504857007926087923521921195324008075264845051902347957992677493493357200000378059477552357642292460938769553704989990045384787494149127719960085835229676250031027832423031254342653454735614890902662028680320562199768507962771589820069719474884860592748712329972623384554844824417888143443018737593702096801979832621601098926439889024128104372073705959971012190214465866015143695111766756703046848098099099435732548425441831683706347756525528636117840515169795940102087363874663548713223617332564558407029314221277077206613456461267542253557029107845472176590746952306479241438918355519930893664246388698074643076412900799872263578860117169807445920973414547969156832771954333079693392004912649978363405800927301646423207322708753563220374357369092904429725203028276991330213480744969711691769976388776327749257224476407910549073280258202526215319850496392627316461481856322940962205985315234674546364384228205469194306527123920511062964149349130594107612496619242033034289762054581553554732482526062308575029915480025029101859203961670033028225726566286969467401268040836983371207834726639065594280586504523661390233713681582737305717448724295097627476505965925374653567640125922346414650688781857556691769725883452818284665503949700495777070247042140441041526013799402368092157572435254410271839480999259245320789681384969340089906622508622111631361077174479178749852904657147825938327420989301820283523297130603785804623140028512514886173586671333706827181058887450084171410089215105436186720376059766566356934645541623992869998198864256941380433229793187350608874046344522297285727730400385224207785289023030263655511831368606552276787203670436970576774584006810912674226484606236731393459098295508892757135598168750041919431935835768153504660645734776546885347951732033287272104373698525333916180740442848736915864112646357234897541847488829896190766128567350449771158753202617510421039071932670405478004756063507618283626175812146420581107198424497961644385587740167762639590293899658377788734052524665947199892405861972153322464806686190767726521853165989831503125817827427061265991710836824734308137312578126511562926253476568813064564547357725270303525355269492696356661916721191422539119491946582652993625064300796708233011064720573785688177312143683291220239830998585937341945795954345370281589852155152057605667209781216482327894445509110752024889027481499188428695556253796076301735447329302370297518987100877324135337544402532317427917349775499215710247227408067841088908855363593063479465018673418723355107966330025180774124253354394550815195635515868337218544454421255967856269516416359938892836552269113776168799896618466622358487350330866619263966907973027263905492644556130434500647247796058336050146513902175328795031244380530813258350857482696690977546351858734343259482888189239330101353720978498076999994177836180504097643216313542564450624857901141131163552667645515848638061638995718123590863906348697151312622043527867520971549297119294107281527656286890355313401762464081064826711157823003205043758882193792532273538592329999830730518102136603580581486057814619003234469801488507136593259671356840524017463694884725619534922533462118971757622392750636066809327384658451287908423825317788623242977132568999572610432252778040546802380602825117188770833184502337426667666432452853719106503754245816169813355924676282061612655775628292547464817726728241093630043687130178784633085242468748007584473097072177866670476632775774900834325534362668887889873591685642579828576059594432794962714584758359454881567389518742285508935810808842807205798883065402463519369943910950099986023677139348397708541657586941105204864743372614945979123057050456566661465906798993867797598760123269613048730164518157031984354960022175809987712277620472912952199660198552565498131287683724719190220973161144869346185528025727862660138463162819582365499799400039595323255913443684249959777023325150296593945511832718514726011268621276566455731719797786742460661460704191393144678511396686254242471758504867458511807442161003156601625748479943582360768763230720117055573086028838688536238465570055842487505889966201599220931910114005300436037132208560540576890782141355538539453220910067513361822068618806255790279509378653877157380036575657405111893069529378537177428447640354212141271307408172916304035167235549557701002672998589189478047618710434686607887333209899333314673477236366689344968493995197006613854165461613511739814455743610224040872312776946502183273487906927783501263861216976339124367223316670774173280616532489035478869393233853151552383983087525101997784500866053794691350899503327976908603134037781170249336972820659010001638494090231806088858464066267150694580181541940154016929999074060692651223921263542742897917730048230401751551565907201998221054491700742040665343849554895093890261287579029254326863819721053373795942143053615257115927587821916272633566122612132919421535100749408486691873405692785160053648626109038219264130076237716006367194371807422085658510331415325441980012284384367221576319696285082060249607743788150438013378018802018934288504760109762766871465174521951532727994828324643430554712509085937622159180152725745307016005563662971535188629262164585556612490200730592726325700695900532927310514731453743154049234489671808812894599897358260915985639611047692722421459451909403793427155775391920984292817574552242250632996041007695960812867620635738882844716223178727261782220310015981972161603246970698035703732574724568899960058371399433044738980384837061654694483212417633718665662959092116326276980870999127147005756162095758197307699896159258798053166045181989668908485239295369027399751985151293457769974108665581189847807728160376233911202152632831824983074564953328561457244953061952900678307430445136859396377223596691783135609336939202592147750653983917700940956154547413453970468153761334958880529626817718225483549693430158719060568256234887758622541038399503106765382036693289934392774618403755413746553991930270453960179212182087299003607805360319160198354549824861340515629452135850630811486040862872919516633607765990136513721766847806135132534070257895803532268297294984296045941954450103601727462933125442481968574845740973484651168493994350733288419339077115664099547096366756647255955430653199362398176566026486150866071315776036646976974083351410491839347999643853327737413865409343883975660967578483794306083163871926323594008447004033423312712180166114461331186223233703615802324742693134621326189679826013948833780125298215412067729891079082301953862032501151944124955960227362231621034844773221019611660028679941404159657793901037986380575615639770131123017656621717323518371564077752597133163937007867080814400593560877544086784507085778578514942330050603169954313467608641523768047319771555364233579972267069610832794401478731763180634405605251763017803581533499800387828056975419213384547901406887672336426242201358071558628355538699293607800447624374978920560760440157980996252533417764965972977767965683216802292903807765679703757774873323811617574676487369459860165548420203953169234283920199212552364480164918176676851742016974802090212262712470350148405403323563642103043971064874486860471807756862881140891146800453681448802540438458943547885375770910477633510760059667577887311022236757933514426886443678677758877679211273277923982967827965722323938875175816233305815565009851534526596391798793109454143506944114286952327656244142494844775318943521388371824705113449687195077141247478601311544661516003910556192546562383878851036078168680680934968297521226632626162009220955519920304885717700385195035023501305577637196985477942802864942048184355262866089212269183679210293007604871934058843663921825233258622435974468778796149283291997100793400639564237250552757234270395741399037968104985477791916109319161400746286389989211760447920895290608886997590683200351132479390920662531538185414063410843428342015689498920651836408191809240174560557027508190302227720640526265256066546754019181453485889052300140813364483517398736164143868356524914782869729027117282195139391483448834217954739876011591919021141231526815033412511703877449501069494536469742248145319940613191573538333875242744226665973329843022698912522067752079026773612213724728810445863237307653219031227979955642534184690595071234280016584481163329696893144668305218746140676847908710027147480578026323338157705928575959713472620662106086545460580991077896790475861947865404849463528795662647079073331384936221031528298600405494148091604151664679022458671648588343295678911671792663292705999175842930198245174340993170435665566654196441723586125206810060083403724961610544295315885394279700116219082989223751473285593782459584807861682227358619087848832525561301931515903516458136038453896478792990401084961807376433555684467010504955030525136970253128768238964559322398288254111486174681902244450791540524512317798251950958767236490493444406275965317716349303764681085986168921403696694489677554446181961266418618170800255762464765059167806426035401116532211882472877254141627443372375931379714683245683117252141988945919539928633162232347261180741730096965679998072497372380614432474151919960226275735744886205164927500954748174405220858254195491005822208231583971293670885161678311782203346920040487609942081296763251986897538207048546723539520681970189058366153318790280806687701069564819776528757851358095734644426186377558296635291056152639654364565671211150594462118800457736577663652427053183398391440918612016059694197876732632710195760946173244343856606422795731396186567357781674598189865527491591147180288036609621558258598671071518697747202398523239122237874238422285807265477799840609265385786091577768748261948101419664369005016707097912839716545208046119350638405259537867117190305223892599912813946377521307069322463897266269020153778872336056003049484444129759967678687639301027461780271406568210476330683060260640066221286687062125043491145273680744055797746252354260215521384493117657279242188491193084182001364894200671485956514344566436839156506899649266623446086221386279196276446039417377637528880469518923270328652236329745104435055179972272826145000268295175739695348098941718242434518870248139894096359179669824467769748536800446490018695604586767836280079294900697263385754860447060847104652297616070200640472200492727129199010595285691687748651394302925060794100787529210843023603242275355145151611150727420992150095674739069829038422054889200326763391019428369292328948482317469591914225075271416932699495484910192288779492515288361045086566585639287488500499183613616678339982065172380621193248950756524450058537163200752250748079117560600219389276226517673763645382994472017556815719810629333958932453202985612550547234202802533406605496480941527817463468456375219958019758071376324281365961272917809521981972758950832091181455795401087604991979714633557281163727928600264268911303813633517893244596588733027717265258380352696247332693748930196101350912552886896892267777590906343487028899589426451535444472239128733898286351160509437657705248649434806788800053790425476794070310738119185503476431654493641809351642829376684931012501298750571055363678551705182847798326318010357354077095915085911729303886754632712027477113622610870333663134232642608780436799002005286739271456246171278324139851973174691114908867936678585584263654012443738706898116431304638715528370265295967589542656804691221386784664069645017648209005697039316477755261145412160601815975834457888789386910485208602196911185507024667346603376981792646053781470862521519784317146601830835777887359004358438533537424514908123597345025226361511277659425469642693725350811259976779070907289385490587705297112057606746400325556961351753709832422892231862127007172283453203801401209250581106476905185661385740922522809309554377236611335671766334637244749831324744376785765082247454346631895595665230951777993586814000831007541539313946062947769320301960726096282391951333124919207481002760218332866479145481034118719695895512673399659206269487757235935110577823630846115924776607592286841007667795197811226645085407853965929455009896170387949678837514440528606887963133416560773496586982116583602092520703962445893076266782603178864541715291307626440556004131600466864097752350159025267665700822802649265477078365542553843063118393957957063248922673924732935392224549284273768514899478594357310742509897693189560449949553487851216919169664169845010959026776118504842521717292003284723290830725046828604680390045570863807590692415366338679057201352463677037236282106923062942851864772547564078082053931392253395164390299371747205923680080791611443422961835932448656400929769804823585720985958945056584127847187427182943159246774678838689050819933048277815562581971956073704772057157979927210773790671029555926255919482517930027146746369411188665853418671302170285629603480882544535879456135100057663007126642810681388497055957691673630860614548548339729276435070217333762060114868995692513579688788149299892372794189571155280679913541003111236569265823603110445153397872007457630171458775871860378062313825212982131977168171957666431042518419492981921529576550185036394545362213095085498061506814407705668158243146238082354421493183625393452556306597375735462755764042697788296513701092120926091850881976288928411701206237061366060050805093228586672850549313121653280137901531040943708151283423414518190851783937109335882291761662596860198730417227543782016771632503443170877810921736342638183908334851843653472618070831102416643720697572333872592245102376999610816593702681957141912054560842696345668463930600961287465372706244251241842607883080174180285057393646540391948274222129293771535876639545916633946386722405285516589805901470813150837873250383620855324264853791138539914462281987584585621012897131112890874386556898584591514005829435659126972782077570596661875372035429956513573690697235982869168927426460245671375278836535079462976006464176819525898991210287205341892315072435684183176471473384342700006291845976007016388691196845193517230287793770323189262894734171015625426307734820669943432003302447388151598438551207172415888243277774293746194685035731026000731274654593739131413948107336198928823857198144506473498137291151934657397054169410168200670935190564270781421457172629090400726713120698927777665213680828960300201819987831909357369062817345441712422676755035503030290607146125396314593703434875036887077849074548869811967575765070951730761754282286868305045647810617330816532754635821338722027672037654568726902771417527864727358941630374929493667629274190317377693279697399523402232044346106445975104207928741429923960578860572371426678808109970577702833029772314233847754791637004606179689586196372245138668960012837025716356231475073900994887580570556365500129500144718060002813011598413416516722237564414217922643865330336649912064216508475640039962667831875856907889649698871200811638168380861986172279973067004290332550473930300218550180460614293696484259261497740521794844580327073828651855639872569191963667636716375059470804038111918664292048314292182133798315999100789079274915612292755929069996808982649872552322591186231658812773929506299255284676931781554889875099966923261057207505294602113434339251474252209345783136434259308876532481829491187480194765658644800031869275070754859740701870009619590688197780317873176775111950951670730989368996820750189570807013908693608800440219894581730411055839322326851747627918677809068213745476786461714122894380750502724032931576462742298311112259050450284240004610440157933168814086791292138842692027313005592673697555897987182287900845884152425549190423106998746898340289792596837803626107539872769273968371552624222704573209071558197207393056029308770715824410091901310872605821736720925029035275215051558205906866940602296568744149226639789816761373049271344160939841523780593013254049748991282307597032827559948927136534262763670713629574466958567168745170222357794346470420900699157271363273984755968948575567790083322631235433838630665051511765929315574389457485173053361055268943391865114708621471934939886682672672263554024664365347257408785140305352648028555581824741280992036501950489638842201304347648809798795175220921463325327181392108374565111284358414589847348109701125113836441909229229761535794293161468390033622772042149723596108480231083900241736477993041862161969058970211996409628433481903876212543559020723748564734276577961520469389734612595873249816142415463160924023452147722904339118117336477074521352802690251040541808146348729520636622998162251867249910952015127796915885017263383845757130365877855828514704367623114548795266566325978333019694080953318697047452490479102217427160292338122696943638895951065581843803640833331789949027819284950623412159516520205169060618556132937865829355549182525809580153046621874360095056072984423166354769573918848728927770907192326526544025249683934868723648926498065080005269395348451494120148143270066966307707775080899695178802408552156430244520301073227964464101957980404061190166222661504372294275690670463330564350240452623050802166848445653521118516109899866972368602446879611284680329913419637695041037358805949755735815052268323944217210187983983543439659789350403092462200222389361300482284909906315284043302400266952351125326189809298137784890003858042005079258401625848162598150070684063452968439658299629566092891542748090084305551703087183382487231323835799346651344080617993104344575226383759503136377859790966606820153349953950069216357321712703760253501661832700385368561205653826592050107130719634570178097998525789979398307366770773783264616749276377693675418778177732386217206097410211147439506044871739084822564550037401426507405703397779139954900641708506172901223117904688807304283540829304456911820139952649056556576035420354279275072256322693257489805628645955467143373290635981333774811020353981769547912608723213133079342560897213865012896224673788849219710416435322432846939041577291558596721591638103351183396373891749480995571578642867677911136349967421493171434197362439976953594547619166356552595794492198246357296976484345520248035031863131903178185079717912664609265975316538200807294935552381455413220019793707989929609297317742097775098669319461211492487352845950453158834725572256572103264894027920516022030147316870427596358029542649023342743180628497599501378614051792243317590689696391821056041750713159474295047323566993114277861908036007122446033929519733251186679818816634726400210677386444208721397908507205183974843309001290406048151052907361036380025474258650852130431495414302305730933545357666272573808729498249130872112614120929078835647009297972799722549837999380536635833811292875372098320827567463333549365316603199713555005292671768375675744058425529165713257723566133744316140257881301620324891022059545412487507305154741842466725228150908559072044695020154105465846758135556140051609982068975587987838338983195075309538949999851753726031503405371955930083135805613767805433439534000332401011530598978549814333195659808841801709941619536704278233712041980612952326878891795357213429931384762739852396215149823609581571432246043988894269540261489047828366752234585746705389399782467363695022823334726339921893309321074943940846731295429473891863793467520356509179148015642665729022144145021347149578543804558748099241699824397130839605040505293070648758396874875170044708297406503183995787758986943267623100093940208773047439234960776489738593811922318670982504196964588013188554739034005383613388615847161366535186602422850755018735963580197234397301406724832364493758969877920309516974880666912223971557444606671910526607114587438667530115869227790619147511533343199112414254561744475010424096309917811273287261894667113863701458070752637792109099494934156834197847964190387038697738064921666326946342471812227695566002517841105857249529971342469872901542143711563266009475524108576314082841989340111649940847401311824401989034032452029064732034882835353994216032352515163638519917293450370829755071720691224605500216898379542943032455342437949308665646769956586765086555485523221757753465691608135478004566141346029198889273158648526793364726361182683127565124266217404007029895570373960923704579193164212087408606347248471200726476833813509569893543717137859658436411784399774477002435941354909150967059883924772146442383954334426656976349599133282537551294993800880004318913462447429523477930608223567902332536398929350269683326593471508988092038563708919335736383846406453684952474067771949509357606976266583112026236751371456332416295308571928568460899651697913817037454895261660798604878067087445654460293574875642403066061867687015586027129675587827499494730906953707659280007220343977144012583991701048847161825878685710054355820481213021062830903657272536019959962492751528657692280835712022094427101676859479518721429579629184654610789052841096669370519720205424470977882164821362383989529815015266830072964281734767639427880697480591081074943626653417762517400874384028553577983771863433036039140611260755104446062882933547986350249101467183847062488020377137862737726385760159674345779494179292650258959535633701518957288427197389716534204777260068336183590259450434879867316392220206765281554903746656945424376317503272324168972499469590324426327408781304375449730913869934946049844173204031973424169372587523814126056095911902000284101090424959386922220398970340466866666158653462007761251619289157233123159130047472051734321505679215278950911360208551604739106908083568630856143821200460806508531356213042877982342754200813279705929441740385999914131028186645829286378872230056095505184628346513409635730453171501874625806202306979746586354617991950892579961275831401646970075170919807383891378739749446969234453928845899437195990493398828589704294849249100823915212562137460855713689932538642527509954857076655655756275544029425891249125983192371703452530834743916413447460077528751012065373309253929822884065109102360067975957841604581390323015883090772873805338353076645257919966618184189736119084601699686725271121506378538246804545436433205352033593795487889654702406646968265675668066283779931526637165155353659104750054606678356893013606524199250151688904257552281337604169161215711301523844418462894548741423749280893869880689712105110693596306323592235112537973404671312373010272684023207079167283811936537873625004434347983928260115551149888587726318369204771168266671127405727492786730686138423426315392698884676745727201164288155672422602866013599276763853511109041936214564556990539461302377025317068921098892453326666635754722884211761515430217434431323909677892050294095806170147273064567398445519987383986909027320307714228981353222829524942374792382564232111772941634210225742667397396208694308492735753181728078016777544658070888430417466029481558558747150159696712775125624614918250981757065937969751234493191700773412137797923754044031388589388615460121836379875231155918698125226137922474920004689739247221031058995669805306880200935086968029612609394481702647339328261755951938210500865648625188201446921022305216716162512285474541733152042710895137884288135737054400256806085141879488359320183623598790910740147990296531137172930288983444133766460887809774790914824469269728392686537398832523685716635302554117139548230702803903104446289373978638226099339637671402010695268178249972515184666281047485030290938665750200108354859783516644943891685746594710683578107604197744735887635463366263577632300616429349127143735984785149799180371293814361509943145924942705360780105287916542273613727062558880518904383971066530253864176291719217872711526674050446700781096587353893799307801199811870731310121822583316405547239995567431749864375280482560013917436215166675378331510680293054984897891539692404647604889081505701459663567982190433285133982078066472376444255876213081103161285883187597284904924429333532233262767356823652164956182230575561687125018398977670639023807622362022253949948434116358103005416140396705258751812119656755924239746715218223087520120813455250569066432812962491136357074461928828398338251490538460153560033509281707813338562536479407059069175576305607156677271843154375387648481392035498506304947646819641456763655322930762210083451268069164506205042014571985488566949207345423434165638207524575877845326521756843751536891608182406544169559907162902623725585303313953352843949101574734083488053571745398962368283973602143536445616477612665275607828062778414064228507605513918550720825428002467826031115824517072988023316209846119859969574223515134615611889659833264150334301837962222578471945328447077927678619167943774414452756817676481665286060644700650232068042604118201529223043158624687983733408511261392095873874634720692978456315976728093420295938156714134494470590669758378106736411673899843237534223506364350175038952905421502635460316028851204702954267657370627744141521995426700991377207106223960467535706744401208696570020316113735444359268690141162089304328601663070594807899245271111512272785949764766876593926767342136727907506716832124988539193135396386728362050820336376050542223733195830256657298116226461804471829075656349572386105697301771120727086173215732403215192189062383456729525888369708913132411885098574230282917547796024121887624055152170076543951332636216836962294571964944355797734176767416690970364156549914743190188633354892734618798869596210476629323229421707805621670568964229945801904529227953142343997749201742198646070022664595346156534034400960420813068296353339755739989431785223912121500554392940864390274659954528786625244562029659276024450027669166501397616980036460121008968516133673517194069533621325930075106601322193390235572500830423167075348649081853260564772389111002267611296806663655987546621910595226824551010415829785170096419543544248008350480900301642905054501384553893036925842976727308310129733797446577338319337744019169114120520232265464818998616482473275090120811333738486987995174875145288678237233867098572906525316915052740977364605401556787523626535505075419771136781609484832689227196193743742859435237353097138819512919324939078170008593588989975372204168614188756761928898225366918112291163597478662296849821234582908448777025425249593799164183187225555808056378828767188672227539368436083835323113756678660548437570251109761594815597578528344980450066168392715064387022204346380347762946049595411618454119753974606901542091105744004288223772622611041088615441011197252247243328236175689747419728795419052177237330207330300293574638688233553759061385061057124923789102971398697169659606919365518788673781655364901651689751484483486986134415235129465272055507161281327005755748507026456800125086244100748517995623374864967484100505153342339261400146761535150570063256687470928727405035824226780334602319158302257505155053501850707349430801550262358728852441167224935344758341141381391136610132099374542114930603005939651398218370349246562466156872016136691592335977937509459616519583795156272272705040649977458982413850400523628775249238766967504006410906984333010017388966952708487356181621058679259516305719773886905049437649708282864469496195324685938875685387382153128801064399356329269613924784769431179750012935434033495875104693173029181900780160391610553824653262253208332375474234358204835642992420278445693021631589478875671153327970298434239411816311788669541709714044355771709553244366903700360807093140755670342955219481508991267752617606128277593353021702310903296150560877324825860439513729665472173931568525987770758191660694454922581911257866380930943760968608963233049299522226020929667581827806892135624775884574612334512217455484412906344960323640915084434296396629928618880655197212250368049421747543745357859540813723322891016765057014233494747735498456737006896216856698525007342333157712575986536522429339985749059668464676405985608077837073845610790536993952380119918601728954287004727772994324639315420748719617488094805802902623252992518838632097397594486196802741913086447245994591712564439810579104459698486761584584580702591395674993163781744404926843548717808115074915228208218311491511189917532927540570229705416349599007441071389314829169475403715677246122123873897680281414673937952488111644891669128697083515741112220698603950273879747272346011605272953681517744719296009187018146331276407404993016479378766441824602892748032021286062955575953494141421767689188913544196265999428305789437182996347291174961900067601361319160493636749367162109206801843776502229634570758518572452770425394829239901442103675851360521421086640803551798059030308810263211750982075104578633148198585539101691963168666707944340153591814780956480106139732780842551839782364982276894688707787335109132583501530074106920949428887449535475221773276581302616878782860015859096759054106790186332792079399502711291339026909108314736708975135448646162483331764786689436494910988727885984166603786054369571221955720382145487912752876217064214329793231828603245551747155343639686820155247120679596590348532124413141817321679747545539907914003135504548267152983875813543004539753346787480983732937995766892134299402437384581927194730704244639161850690614066787651023876190310519347613626641166581460606298070220529713523146593081876827220765171576379739291059251373847650395784659013686071845143822629409267515929874591860274050990631033894100937618704978130167785632317751552590247651732405980743082790285992976377650589754083126085221798143983019533896254151491140298993078625329190371696435618740976985952813366944414306418872931659048064634848417015527004346973272044145473071718607780144434997629209498736665889109996578631632024799570022724839439480025425332189814790977426793822395459347871813500254152297582888870031795230150750698612479872697158415033253110493739138954276752804144761911600785502812742610738125175245363993256544703800057479993182897017117990585893760920415424516520928033449736995357158297735399992647900579436937001529810907137856151265276868403937795085421472846013822860855457200763314784693923632996284894570623869200977036032938190784208906974682036480223386340489266868967025635481331220549966151616398923610104572675323808554954219440167329299958201005761171186896150189184788486958866019489489119965036860674753683321879790508436219909474902774144044213965928118249231545622718230509009638238567737906060487626005308161410674614860088783688847509143449282830669387959893693925677061030379867760847793379083688637205817854184370551543527178102694484594459034150570793524300613221052877165878461837707940485698855540037408324179431086980882421859620892672770519721291977741659843420757547225398762810186165318368866695774111367514707101920599126694807853522039204124995819200112347898355900256938470404030188240380010703182527205111102309068941388422421829469410462256318953682458721991094177995443101096575604873115406260034094600028918896892838024503741062059589599700829568271512055611623458426879677840194621190035743611389118229240052056163871112736452627620192264802720220072194042188061536305042392734403098200706790938090572851874743606883264088603243500777430172611989819700279152729866604448008425229705149153123123682386352208966948661207634821337386012703939292821050802651254184004940881886896985506737584472113405902475359022155732481157676681227810587156297600463521703104688574053780786424350501738594158205274697101077783379641014568247049370058626728439747335968080285929175850523010714128071384913765702933593860423193203337252770728671951824074677866291682553707081299294476386753431896178034929715863970341415282708741272735518743121769809055981661336164633803507423988169228094167608176721045920123529246403892372246769139550216341397960125293497600052369082944093916595477677387063506226090173346327134045770042113597512520873309327923345843475224519234889007576516220557492037878760805178930226255938694201675856842520268885561819445483274906733953124015720310337034113376841493608246830736398908570481453010333348146136896109096750212117203697971448612654723857497436737179792340588278005653562506872652289124541817995452998735398754671592166530678841911718231550142259162736217504370427875873040429334454119556228097134870815090992783374690861166893597267235447363023628539509301977585451130874789042607806127480929325713497116810634152615316894848958756137820882929691103444766390680595164738013026803126353487470422409198289743963081306658155094915960053381653981418654450840180908036730950622182741619671394215865763638984249817714248349563399694256137057443026635816647109981699305754669035756771927441258539191769911823226536501780915144583111729831262865658429654879409800068410953460933105246723281941610339993787200535304078536254681773537994401926043731043003101472990018358752108534418689766497570866168262775511951339247851920213827355481255473975132051638130581521566658320229300139208429434015924886304281993248408178750220320230202048089875759168225996858342995873193230024301412613570063890883119612758072760987005045133035652707389521323821241241079998831225068409547621180727884205731957433953210205434926533754941190066982524323356824980881860968107804053946733345318327358623043854569660624893696243279481543273875449079218774368303785950828366083290167930820467984661214946776856334701426513690745498119897128516518749017633540349861748614480356557041217374051067614153566598186675126461220766548801781638124034622508911130707929551617928432934703615581595990740833971357734712002920513024423986205780707062820482218283541388552760660831265155309814838643650287184333238419938793937809962717123428205972911714273421697076409576808225405373248923227965049372076933113673984573332306562987706158999300808521905005337344009196941484792770852988524699499288410282928364475568760866239525598451343982191115181474466121421336027051355807823917547950902460659059045343369867615744996320476030384061991428502563601122749264996926395102357357389910537475196736885052788191969427176735632107359826444602145072624805411440408169432451792597549740810182957810505638339901787283010007164471824791409972152448015691430018272610940733816775301068539511353443840469800542354343719365398184682125083311220398742719473965315846737708710554140275279403123661614037307596377459950007703817693529020834181321790545042485013303380988964167453376798640993100302105484420245058949770245329715031180058072833851180048660110465342495150132027209485951197177159305895669881033823919642584323714816540881086873399149490053725951058500449812938834300317612772036476322808569948704277575357001349228882596740694255192263809030855127977999733233328397308711452792387561964477984152605739100079398283950186823257251126476979352508290745612350846470371516322532873583401270084358942182284462810205829491960248078989779446820094278992404006006223253270841828923180405643507136442377796253696614834382469007499601774967568662815976950066429895110970424339215486683259503810710008757007411076408303029518400779097659063061307406007753298364798490322311432823980663314977423927176491945130156079083274974718237511757452110424855535592250931119412655014817048539098065900356465003881340196075853394563970075151219364425948851570495844270768955636080554696366732787091310927651888082825580559678104484541259397499116381953960518772387598927960424077799641671755827149644996280753105239627808785182034247932559757888275387880320721881320946564077216059902567528507741433823479699543147927430731439699760260672517455541793922444453414180966628244042312506964980971129644260260553759493239494634138930379587420514540406792042445552431295271522580514752807577921584057764846944788794529828267354447846043436133375912744757236718054185023475809194327980105414563531261510578386098659536787934005998138117056312575119286718894518375717612933309268783223578513735456677192756302584028104985327178155613308703248299049712893880156814325088496689646208297356756666490071946465171414421084819485946913492152097109137907642970434191190072151549131290875009430880187879529448262600398701376051767844586839351550154435985313105588021327214962394163250134421978613025702897765543956832317677652902817566879528058784161115590546404261891434981600661872467532983923559147302605009988360821619391582033060214325896411859286865464073505267239421526363764941586239029129579934433466842538860121655254228939463898306600833894041281332877312834281541431417239988682391292430737194860062822165869489821465949066830751354637023361418502400725190565756870773949485104709329148768892052161389549366317003432234743690583037866026881954026989179836295742997084607200180370056522503123007786714245058559852933820462909350043919950190218360553237041515744450445490527852444333745414134783867356113092889680928996771468553150794982743143570554027507370213492652887662877182849274954564519971449037979660198693584488592678148933653781958191571157568952433527599200375293813977047625005897334922474322251131029238761492963068486684733436574541417895535247613194440315423541909168020973194435856983991855330364808543614182754438038722215840339864151973599516283176950435012185086534992655951007536271995607177874223227004004386067117369287997103135850346883668306195459042000817044952931525930926609074563763225906930297486153446340497134040310739565011778959952296334326819159960180876382550259513743356371287707925044309126105657125721878314925750203736670834517559108085717674325079690614717106413386241348422736258203068732182616877678776356576742593897706435477797284943181027075464791451586673130891994754704496211136170632925136666300765403714947531694448906688851658929830793140162084133695591921818535111038914203942542445834456799638116344011821640051952477440603383724888369289838531792392784587434168598302071404603877539315784611962817399247713629409048960817100566888324282981652719490890835096599954833250465632097999508275582810711445704030621465015790777060708256532656612619458688544480723696957113787934146955059174991333453471601254234123906472422376187254677998616483152000517759326780153353819983559879607982019046454782246766011947796194794577501185452845274388440647078270938582112013688409821247297016618964218310961527327308159350965239184865773220124867045631366787271792644186303147462584496894806609162943495619725416024089250686991485087275861768228822394303871877180726111460961655637362197643346267708562926871768101441074892060974993049808534716344520383560075333879833636248327192617124370977705182028643688938677539211523250614774846709501477862227852171066210797066874821232221327300990492729277765998489297782772460335142040759920568190713706084790305521183513843016984321587135661695906155568869983768189349623718753914171566947241032009803076327422297952231840721542443623844146895593162276359415176965286437040928821019835372549438072675112460614896582864041717885687801530798428420991245664618641452672746610993687053346399346964941525733457528668046399356254391945198596872060999353592953692289138571309797656278583397769701256570535015108367854057190615670616124236386428612412537011544230085885823746175292363409362200819928964598856935402101436494583780173978473991111610875328655199877620879177231686541909091591003331426212896322928814293303677048207388567179943911172467268300522433067616624090464915591894617031908452531211246061440988263670146687581562692236406817311033337731305451661697580782605563677978731608635561499545706023740486144760947501505230447571119354570081081215054477835761544125028955076735696588386969140999708578748706559782378446932927142841166412536835163519211152823052685175291177174310816172774961932506932839129879865025086374535254472625221643725901607499472148677900948882919294045064720213531764599501568549817725016426437916346477177827493223320935084769344180958467418172403422318727348507645660076897679928828957284168003698857144872280393248343233290224335620278601819770933447710240335063713973054248804559387274293716478851492881916421949376222854866685700413603865203301546492132369385473499443960582713000509586975411980135523846694670555295491373453426172249692083116273023637334397390263786808897050336233086986578291770280380711676255459371440079712276207798026959092153525722023058401697827967937370926105089164438996484222090700026474535656577918349569491221402943152111998700105337184615468525424474943759227234562339521112381003546778369920402755152659095479483062206614962636673885594842168504353471316951198863059488342109709896567635328976011284654274262912040661621784749787874064261496861322070567733003508276899977350821295403364085488488486630856667685445174288120940833019162087682294964914669984804727690273945866238069905382405364503132712430522285305568280055673142883562033283335252436569278273855582138093698264898393928976298235643754067608335229384967007582328005178764276312749953151323366902864601106249027087509959214694289400574597099613250638265688968664549427505510837357469008355485252420912129484519304235111936161726238811504078750763916966699356898783904421749470408204805498739964300040070732977524104431874227881469390475229095328035586666453305936003365289006407975877246921969951143141698601516029380936835456505398626503292173731898705752036885094402947048935011009090463550559576271886011714405937154949953252790596603331109675122801398291325884470366620146430389323769736641082806605654867863933385716909956518619756549255082805651711127311633733332107316270468975481891295491174902900134207790910446640021968937905494389096478839787539816686972096968308834232911853814579894212781489220573532916074413011760331353303597857006344915249327871418967095794663279308483665987170875779541168723300014636546075610695143784815146148973706744618176467214235228196405921906876234899084142502270227115830679623775719810691075987363516689805932612967233404725702276318244801996439810505680320971480651248583606358002783393438855453950629616053509485255951477881890310976090576370698635231980676603266119993805541589383084178895766613233031715337134360021536370788484630150583757772734169325516939323771020573354704744729303253048622529545668026214779720924330663918831550885277827052738551421164790107395457402383701607994606297719511818909924791840528224572063856566306520050906485304968313418958487081379987954433738431038742781555981371427902801700712744221798443872784668674064443906642547885556553951188020521299227081151182759276217904880756064724510143686449506422358442074561849705817136542920207631441084819925916933037874323507933827142921934383505973470941181956278798222134897103232615146228388001991245229604771980527677125906379165690472790933346509067909345235492461437507312656907344086823968269281538791402853270965070642059270179062912432230619066295366937683232668770765136160882811946043864751870938337314819015616904308120509555214300658589039549287314021782967860026915515417900952825274363336261136793718567224244417318698470915691709045059110193911548374094534709538977034846910269942284008573379820716058434289916502369212041264257134120634540012244231625079812620424315037236872778931048440399178720795703164664461800576472342897640693961727468274535245189894053266019091385628635461162484810529611057860809443936725227300523954341001637241775242851388320734915559930048564454743681376198583617482552675942538754975158304513049039055259323484430675683224610390213778332628621728603464578701784599131770644560102046338716210733069342685373800821328269047281647586432684537315656381119758315152503443220652688121953558014528591120572038488702419439148192011736686278911113059057869789160993522444046623899504992625928731252667290293864296411252739395005140328122785448886548180590448144213262602934738356425873497603642224989890426612883132460369953910136105709824420364579855493247282025351038905128689677721604084552256154204657272396386188669601518212284008094061798617277192948444357478183139811821423751212484648904976952920855455293484776808285249933675293219284261064519240845685004247152607444889437758458047875531508848748582518672019704846109249607940239807765175054827109082477068115426863935115313980529823267029076398192650153915853372151898732011623631572276809532697488148775291926427372457374699632606849148596963699141241602638455090493027063532393580578741525579550823241050099718271758452485427899852439818179316580173334588245797376524493591083790051547003349539590571381756238617510851358179471385932548301879965293409477122804780850939501849033559453925512518578469545149636574519948850755460188748742967163855460918167034906662373737629762425909888082739558797914354323263191825777473586905750666862091309470779574217560184243470506877073054973106778069769066245123855387115191679796393099169534677219547543904080461696928474498127274513709076418636670440457472691998204265112855451527597981847974752401983334270318107509916321632280245695167261109464801365948101113761400947209456883898678051375300755374320125053481217372978853251143695970471391576394420935990373569707505638830549488309331275219362673010056754470415971447375176375855521825854196639761459846948094837405875707344970145969571313376388330061662829280887531900992875882560729631105925432257967117292338485922618174853801367576967510586562932813646949946791448345195783902570678124681893842064772123954749423718811580505012326521426176425829633707673727832045203941193775491672072825522457087105736608021540892964968158592324743133892382597559791646252762896394709411436968259121602708907470918485715722057144849763072265106626240915165435849246388782994704108751162624436725302426088662867166274107178650149160540202186408602920421879862544196538163032659336042733880540402235044924999319912983048730313072218921976631763357416922021840049733087874453382440286402095745465028467447216945563557863669662071506027585902468017476013305362014363779777047943747989393445468276086206931440900603080893283093287806412037661515688075465289617013503912631552425942509509372901370940145862238054776417165478589858623760897010245037773712420357219732947350000159774238419795797855412365025309990604808668465403797796646905050922334134618179774215677771038976067201440242735501781456945595678944816859553346415470071074887542656285718104366396007199466344816060110080053276435397263825665219311526796233062848549989602122656790087412361327900038559759321453210933499692262413689237911260165336848105687248951626708724347023396685897849731970839978476196603443849005662929055553598310015698430843765150889228922217322698026219541388387937972307483855814048188319869675032917238900147165583569719117480079858004409073993435260802283011355072126539303320225709677384163434303704065322953708433153118137851268903258961206464857269065645881443727496533881355276955844329037388770706963772359996851594312445063466145427225366505828306224290955350419707333826419701300406220221934206889088220371910527403298975695244526863671037904160343914019828231516248457897764948068225476909588293044301958685900033815686058998427423718118338376293663806927824162533708173456163037907870930237468173493798881216510966534091576985588723217872458674431365485162249929597282896748260306961782493286422633165877532745539448167576670679194702824098444728105766672675280926580534140112097991409038844838984330152961285838445214126024789576511721532097855551649206512712689011488998141317742180424417991010976583264871005484939954918830252630371652380097941383947569092542601534739976368637917743601173520723102902757650252072354659319034817221997001964076625425068811864098793897259733769454742039319871697237945523454143895363349449762971540993237682490391994259377734295089316785394454085284685291270886818693217010760819195483080896311359704766438830196700040966510564782021559523046995988122666876449117904990613081277959230958963936920541582445444560753077348978832357801449585743300275032161048641572498390654019243595680182054899642211594011279263367813904350909468358190061105344212998948517037469804820200502311630469812388034496150426967773892100230316102348548323686760622504995978071066071102578578504696076852860795190576459547746878817978626409746073262979131527911436781154414345171414752983610543519441006167816273506321331637693392702329332542203461620218746693779887298181006736543664695741875702801102549321564044254714444941621623770022108320393411329997473069845557415816446750654319918155393175708887593663038473874690528425080991457875037310631223694063580040141059679272821917121242133487251086001303915611036451144510141331921405803286063299398344227717655695879547771791508739410097971406946637458325536025682904200244611266720576838161572280026312618942939393092623271339708811627312297336549422223643383055242117421728945583529798003712694471517147266677454897459136565036584040483424997969466274416101921935294313621153534859829327761586540741229290947187777078928938370411327286756473257921505442782088479453044525020953761813120264338466432112516519685742253950382538549309216060913001836509102956831820955679108099735653317544784584264333204745059390729281919474179822431019420649690629032877192489572483186127612544085723881136395105637087712463141323133104381490077678408285014964525608564726661797707704171760377865951079673445115508155991922001876787786178473625041983757924300123070964142035391943777386146904815302201126325036926525142305589818405523593495580599163476076739764564938535852623514007209472693339371386774738203871428880962239823220735774909346889933132303734979892577604944046066439831417618798051510076436066856748237441574893959898631252292653952595785720421194451820474235676626489553290357510469806752907311919630104102464198657993520795398017575110070533781082869903786493675820653586951067264950409372094373855617622006474739798446408385839171923173673338888482067019730487141559891924168415677352515892141521082241758909978362334822230740714409248689727827189844129630639219123843203382523313827718733279765746299087322692367060212617319477821312313685866844352782211597289802717308973852846614447440056958508791468335289256248297787323408762723288497141873915313183239805803273999039513585872963067381716691340913332993906585049399189781797139780063749435221062979306946158300799692011403080923864248722759232010805362882100484489029687718143659488338198461359735744268457958061190352138070876908695348160250219961166231856426256075014329577464894027128230070325852331533331387206277116048074066411600472486214107300046890334571067045392078357740626314145307006188318238135622966295734541005658509724887865214882736693075520701184186449991064670310322308156253947556517278930791592084183616974517746651598839480116390708046090764256554741012471477489819932295239753095540314879724881505375246283318386682352810833263349541790164919914621279734203166595495255118404117421359210285827181703805420680608980876172100613790445905986604456263953960687574711988083220711859971766467500630010951440423861704209800464276570752253062284391097328595699195222872732186738949886370692033332741513832022321404348108485384221461212788353530547453357601829363433856331886653836104655391697460781413430287594919049005730833263101882099308669160176803289302269958592176585173276109109068645360319703990532807084937935625031764584750524968785579761924289852970673237809057903414639444939436183712591013276422874674656927688499792694854870861923210310620887831396287557497523828157112751824626903724391824479878659497938876900434040507429004218356488132648065595843899401816255700032688899163755005789200624677820328407889825821119013125280814547753835092414163270603918566897698593236706218547660729420770003127871528954882080955926085433695458198864632053254072524800308938094454367861415031579479044966528865799609439195730516266120792222672634444005176079489744829856591939444870906405843744191416674007575523365315095050273339821432541090125102704997156080314334398485695363528897251694540667772760619981759797869169832169813224219794898044519688504290439165518166479045754219085547668390559184540352621564051595742625229533199471559967312794399112424943333521124604951599178949181270772655828657844321610676357068997270066880222484974079679543805698341161885994794459371506352460114505862252100442121662658025895879445566469922748351321007820188579714672630924247765632556049917393343954974486678565025719972429203796947096503627263566554270202358236703091310218599269282877183232431869316340650312509476046151020041838854830549610238660268701903344824903724917708568067882668365632809497179267915174097777046295206330995360611206837368418675439091580150643223741567334007274376987908268854702806935201800439286472898088965641623050148230001192443539074759925141363924934441553158221837784343677233989257919116484357050599688871141206767247164819875870289673743671144402335804379475838107281233759559744693530820447563684711760061478069348069285225278026504059429590304545453149870845050639917993386026538047618042225064742959992973726413895386802051996332101914773985087839188921654022574745064834354084291011245124775024991451000526509714434301654075188852396167126583767806592813726267786572422552615913397530543628939411650205067080544752556998291997361838666438850068829595003877092341824003207847034742317146944684688302706397448101766436560862855734127525963022262009203475882128197947432070720735654156854925061090745837020768660705487804302516213206256068712133713921168720751021275947579895966262910242378070836377727577715313774319660725886372356487329597258462860953993336479467393941674282581506847474702784505696453421726881698355929956153704768259165338997950079096335286957946255587273997324396092364183223213472344127692673266002460889474912427034522222427317988330741150974894629173118149467335773968851729091208001159715412506909837623083420755500989624825225538731888534001905427710636710928316528934172319526935628613731619088185432810168968496159905250422167146218878367084855410076172534081345088014717972461241798272507994396386727530081546040187064070703300355978628887440864241607906103492013898051779362834965833846615668160403835211737230596905302770220962298441731629307325505666452287762392098413670001450422253335993682692863371521607233496955278624961763806118771798989870669641227763645261035884076638255147605483968319118002804609025756918419797617800217186487438174956964517735056181544093021349722722051558551826079369715263798121401079798885579771246885885385784899137116535739675708479472282335920860996558523854206094951293163670475932562081087867880711258512439685799713849524398924964799031301864437512858022593467994474369380539702934660464206828722791202272542769749411577395829046163432412901012565014676982595186995316639529684154555065881275488708793429380779904249444782262272500346025276621289287085882782580892890107043338246472134807182279529897441227797644421203929160758520348490666413659137431553904784465952680628984896674084526448756481976686240418161732252985825335194918528583307232122362158473226293169968887717325762191540249561500357062919545390489164362794407227391953448949885415487613398667300456269014245402267333432579618248351273579638636121068036507792218355543513864114043245396539599288423149663837332865441217439784401358771732822728841220751836902172854641488145237988312910935951562492902876531646358951343159485685106293345553355769441507707894361488350080607677557425381961203705369582340467699786379888596299535048475968429085763046265099756066169371251634731682558551908707584887923963439403717474121024302558467427132732843136409744708249980091088519948770093644627915217267891251847021000556062230108764946595828185343968240994672680164431169908879314057381620704341288608097826986963659400057898628953160996729186524426982392062530549091524421490052965050726621460006849463237801377920799361734984150534495333979337411231324241492290822820164232142594078683023856317992072801795726172665594278340486072935461126657193668497205503570997877770364217643644362091514238185231607245968789566525277599134650008214991670095389613524110502778466949042040389621548316808525612324473778670522872512985142982828869884685050553569478424984208711747481996378358840691955222236110679116967439599399117904075967894640143227389952743933742136764500284264018637686417160333008307362557116441727319162212236776357436192136368564901131701479085909666912891059546698012807611628344443465019113997686201287700913683649548345005179472037170491461011849100590049457851433583293293398514658393013139607177599473249756469734620514198026364057802660994518294218891245088719995362027398293869008859888982686053190606662984994115699943971782546711745097320544405620494649617032333785215945091397328997560520026947189908763343074486801844160094156043343145096214548887470202982217541392155948715152007928891271535986841512708365286476405856213590963627298734140918054861689491702440809703279440045949090435076145236487302315140029621128011600631365563234644286484031306430903612551413428798313402026555790530578494531355299531648612941602386911407690516086150641782447935022748559580930459611449413405496352006943585668766093701512425494954698926102464831443281151108007492164357184880664798479940343101494134798892045843846756964820435237370191679595225963286329605766323180998506720467218836647336839440954929511798281317879737684561398139931944608318600883989483210367077123449625886283661396668574261538833324900462810090118526889535913872589782029111370816998686446599965995294955665780287459645822983442587952438516330726527576222608060423087868060768933247113639271188336770325108571563108277811335982831049055176695097188677008466759847636470391939081839335240225540882439678880461759107993393805222919369522495733353677129277079587260953752029480486403934480282280910965068214322790840249702462443202079497995427264936092707995408939177516646421774784248568167690477881549851547547386935736407305258340963688271587207884768545124733050647391348201043603816281321734768889172816044705599493694021993878091352643756135276694929660406571407870119985497451496023817174155663146480636975294132903583899983539507037099579293038250271704678586660025497228157594333027756095671639971802074993808389867620435603973177355954134230050617935549618140581511273714402800566409208046190956939511640335939776134172479508023118662065126722003005236662599343434820884416622770508767664789239964789870597078732944181282259152490945115129393841637594416605809559507317782906870615456339962581978909521004122502292349478812423662840411102591865322614149725764032723932297540403622536107383704369858759995808419078785626087684665730068396224961064170037224839624614497689563373108175820494299389257620804311862752573511086484784700783619903423547194551645563201219472924084154745164118023609033782607550605292023360512575169873189842271650070089570569575066411154289570381374931187369755797179883669040676189673698487474665043371032399616161798684205692631927983687936410151305919764994928408719834924685015960510817630181221570122959247329067481957157419198063902842405458875145192233270653758893494078228836673396860848835123615473014062363537020657126209765440275801023723761707533579301546099514417861394429227264170264177249604483574146763404397593787495826712299329792838649602818213036405407360688485309918815604372653052394438930310216033472541404150970586736897472825042020813557310834126808107534278504702778319546779683019607487569118686738366478788600784841575112781908851820961602688271070276477971196592687730862949545978427413427498477767064844991993516941472343011324314949872217347134101077682192062038187372278475963225624339726069943546803872112349231821108365277523344973863020647335419523608937273477841694378888408951868558893251856485329637484456487776268267451563735709201874049141290469776720353599849436853070192366481054722806193038484867310426765315009937612872304559046732226615094834210671074605098036750682269037712874459373567448508530860063147472612038431173439436634117162041909696935661808051455116666383089536484070582140511595850820880829295602658100035259517826526432135642637783110714891682483066962082950784052481451979794125209467604825242353026469914471748323307613867980989144484235637056311614946353413365722876347262235089490355014278304153377729269548585811846285499492522940020517857600816347257640115649001880234724868576562176156543462249979337807043676994843099473447404538649339449650473246365556551465750613019401751266865057488409077213343586394225747602660432208558720966772748557796828945681721057831882726417933280693897062770535464558955904339642870717577396612926473666589498400638790497752530065110960116193804484661054419790329066079363918902992174202210200114146721674319361133560496520448885690207124966174003632789953868946210631211514225330915476408090190279437852878886350778728550155376006668591402119345842993603502666524860741228609365232533197635866515764974088360553010194112575090841664165531210849430170589935762176561188477066546922521322177833451012484287063690426679804619799029123117125785293439285577530225897198733815665965402467402601350063565564656945132642155968080608031133299481690546123261707578182191083136521710049599793869878019791868205398198989190687646130971431414168128464836400709724004083871046607987430356763972221902917671611087986238702282090523136896116274824555326792504350665663143964661723983085912201798401438542881160477957346278221761049075548555171926786921404320065564937061390575439681484918237596709530564151075630241057853343373778028548508789848741265890277846044336588818139602232622298100894715190570320319760799985276361751101964909956089670412361749587155426053395118946767035693242387560744023282099863459985411609426141324849216145020658187836940368582364432444608805265357085658926685684207700315368340337839649565833091029382311240712031697033233918927920383098523026786546989934451147398218879937789342014598822510034139848969393802446366577725719571047884158432678142233906924878275221167626372822856340837125441831804529009809163478332161478994275705438517469405665540357287171363714510515600852780188264704169377504148360367919337426327257046913779890482115645064649151328467094843571045312687054497186709468231576069855276474926230102589060919711962568510788942547423509424748420922382796446006039612203073810964229834812526256766758380187258271068766564930401510607455667595965094933118069590824176486744019011511600611765223916612031391037479998007310386821228527151366714639651954473458774330624317046504787691099834147030814072578982391553405301718853261304427300921017284881342294754480637062927406531304524301742007724652297832041467823126882243519454921794897596793473274978800172059086483358784943567219516803202490649743630028997799014976526572595220934755705087490155518905602148173442352208933265867388393971258223722922422895207943227071203486485912055806680884619408057787826422437469849971174760574764966229105882276271916275801585154993557051756417654497719426790295519684865260452419100713978725646525407787728540075698594427432160058832091396283002751572160540384147881462508807677169080800656157346065810504179167747465447935051574621475324322480386348120357601499628604718994104619568821417068011349813030916730618573985301757206332926295765480764358761723273123759229931426000651812181644821479896601259701565832848972251519506522700089512113875931745184380499500673019684657955908633329636679031975307235228811319044700910205871110610549330239573426603286403029056850602107530521631686760761159853987353588104446902052526418847336202547552065727462169503879512443795295036591023512309538522588336236216606032602162988750520385284239246134270650503533155027115617901901783292623071579814628579614144991706278157895927462601293601849410721238503790995086497094620118042347241442555398085644939625041805080224675718759883453613452116072786579906386201390321457413099796534272601419847113454610679150086188375031745003024706135037601929872377250032034970571826011012944448449480068728197935451356403080214997986392357948275454707636326985240377150084774039119921960169982468146408513694196538749378863451807656021096461323489602189213310262376380999552907047388654852245258212171923725711313834771717984424450368232503840609360254454454259527129955945296917553391052437291960431944238473094644575017875440321882866804502186698273743056983846211072846558443535519829383280796970064332695937127448150282930692269394917341589670647224151290634006316331883439285324763611948926849930331395055402294021609602025072320605037082237049971972935989578078611346755680546374529756805915714054876441528532368316299789619757220227357051155594844291676939887552772768061997079080792940952412716198583568654694254181368559156257899623950547138618765736031072925986506692339987962207433365723390497522002096465097271489935118430125785603544115653480419586330472012191905389423097610806001528719753283447498139650682586772495546676842052945771009395585145376936039686035571770174361989895777855277811437011345335186547534917010461688716517799549358463179515919301704581032519828707292897484017607325396841645767621897976785576598195580440213167964152918085118338927456393103137234297454117561906163882436029534367309870108408973659013197975927985925848959710410732336998021140657157122504795858289452314594579118402693717606793247788529923768842176059857467642102199806250111282101728917177426139430540025941357453969334357228973645072357717511785010987281427818593525738226899553762229700428070306959720939275283319504378829651774483468525906272997865572316713901048065914637202431096423292576012629765994360760998573068417862613103680363722326763611230882361209344542357592280166278667432931226429733225437674141993734111450586840994511053900576404442132948209260519079259990975758139582853879797837029810207413138311156567544106792242963466472505962762065203016128641992793717166809771502807703132587774282523900853391977784966869595658049369037037374396281219500406327466116481212809774964620053698370879987877088260253886569847490417979330561742300665431324052884349145668210020060661687801337876226449929040132120525826696976077233621866296654400190369503689560288651160090080229033587132515942134525025143379606579841720882640734829128103905764321560992203103680882833286551230942763085683211191550836028098678259970497921325378837960476902959775166030224954823258510734471567705990914615210473512258585625459815036639276905673425507972711813188463268015877731724286948555355821749603158980357176775993899697771464067115092180847697280980826789236530413795739092444726623332487779541767780986784994564705753792244863340250857608621883133235356361952350021051839091658878340784218452091726495162987144619845816211460784882570160747365781354408769374386789335336169058797382943194333011302764656044104520524502996346754566691086710806135062115535377314006088720552398279454450368432653964554052204275374487563778384304526294313405375690748975198154319695807732154357089260908160036305497607094299299771286838209842886221352084974229559302064932044314709171513427581650126468425932926187952605318210792204715609124895929024840000145600788413977294030473181350691081401920507708187902148275000346506829178591169966364243059469554116534584397109927301528544272673115172800732347674326304188083712548394159261327138824652581249092547759530282592321733627440223568930467119380792336180812601792595288708255435020191226464977953416179117944016895365982525913013939784595768556009095403326973209668013221039543134471940325039862849126148201502920886034751347648493528205868487325916329368929117814004889229907374344270840273060370048733974175309145838757487577150768321804513242847263797792630610474258542445623881803282047054486878404892949485608880474072407551534578924512392950981618345699094329638004088849086087646915083345027362429489948361597727081659055917175704232861308696913491599883396599628486237288665066560280745075459803062367921994956606552020003062047930765939030184243116982803303952617991341520200331719364448026324593284401514332858001073510898881407196707932815082676395686257034808204251752670997257457984899321180042646591294298727884628419287943197672038412086234184931753247974289355489768715736539881377713828854163006687099737977414339413295838019688414384457731333813764510059952234617150618194362811123982971339748281210460886030136903312084163949284639419178002839670738377515278431043282018219293947282016140182007236185674507083291265314664365448063292996513922519510216637534397808387691344777862360572980081232871371011511956208139369271049316667080607661519151679434405390807480934242804182280854771505089188413807039138761656894513154719565345309652661648303139533140627026944452415309518100904503747030356579339250151866640820987968552414670398478569222505297768456335022462136110762886009400720615551515085015363002877454712090710374420975155550989838676089747301444918693163308956248370769073268698183285648562804686762318644932657374891150281841022272926897411548351413700393782147971896850031698510293081776145139206129169530294339176646686178252306289070084822079951204482272779917958775569090662931456521897394029408806547228577681824074982656485786606677000889011835694285213319076416807315207178869287481647190014491271695490634311156290440944837897304390136783637720433140728572117793494139419483420011517724766399107931307734151965556880536928794859948825011709504056307451414598606022730468859433221012244173570944043247941386227558780615143831998618090084109242111143413502466380705074596323955126195162623324478254838669223359963401482057929452736603901094832422898562326413006831239149605899262997496092179605096044825704969450219090539095807965130932827973938984417118977435838446941635302819786783516574956191820981796482928349385591134871283629593794375547951506272751141743495443797133954326700303960432644851722008156937953995906188245584962177206643267304943161744583065894302958339078334776400894639953031155718091071252167302771477598027271810732298128026062484892003867903773719663296747921397436561389849485043220082704059948515939187477967265454915698694275891950022104444283399041142838833684442531583551921891505769588096251136222957699864684937087661945878212813101851158440121300259969516351570015105955576197932703456788085137620802804417724565890227603509284944820704839909482245873912237526954991169684148363217218618617526184195831335217176319027837061297702599373631322029950079175985347862923512035259706819617153913103898704247304068630750469381134319529222104206654123606158408556338080238204673286072213595310814112998636481186066444601764682967368538419892395619753893234323050576087423254381145471458427121658165509233016017474707962629763243786375254505785944526916557100605213986494601655052112476888628107189174989466981698287125924131423842642301184640037923079748029764919884242466299768454668142689299405624482860681265104084415780381857159139124246372065880598950307535281660696844371007274026783404457182180503726656912542415148197538538843551985150230266973779270986918645998039832583198039861830773503675715158935230291195943021668344848552604698478759724581405996427755208215244320402606602047990175072082501648734913106415927628485164201062364555075386361622453082587482386576824243836418848867628903212049899043283278329878264403156920129987833554813297018006601217639538356167340676214619793768123112385243784320873519363379618218903230635510588629391084167810563730614252929637375038081476845266849110006607681880420868480960579235029042968928437830612815810255834766108487515500696867743782793083307899611950504078419546553380509509121970730908941629786557726853297785663231287519636944454783399969047181581707952171077620603628040142816753981440710887761237377481025059350258079493614282163458875521524048261624558911943352295803642527242771785636078576466834025470744450255548309202247650377685233153105874339078045259569090124955176592992423279650845847353980635042666841097140848734429091719685912043505829682805781672531797387113519286262356920083507373952246424719895260044166631947950930614509697251815079731812217252944929395811344173502023411871240622189656140783337139032485463920785830816478433271672078926745133603020588909985554988627609671817651113537417435008706375113246846853281344178471954020927816957765528311112116991071261825053285310360748932623121489922915867111931680854994678929788345264252890924185113455430526342839914362442924618636211798640030772708407383570024248476204806264259073840333394894812542933301462764615157671448976483709298728697905290507097089190689648309333905964655108707064994075080819756337897084208716557970083355078454370616861247318723735036726597387449366784152056722721146112179272971923982980703123654321809856906646434511275998247099432046651301348874071493356912100843983778241595783163714880270964386122664130145158086992718737173163389704139017808057205207720174009979352131229704224362543164923458811882870368114965693067414452842569227962067828788961159640780675068778366800567983009693981527805926015905010878240711569378533729246899090457819064706695862390950119334822323998848211207510306424107418668949491357492354489271776557198548442683436441264746844650750978678607789412429927692705921722765412133413426266067517009347469051259489703473960970296268193251200722082975707720823819648017348973162744112498462174509422369794333249672075307899652991130580696381270142244620603613731183992341597268866515337674772541340666925019820450200574007119943428401089538087919248471202722919741313927537808146624222283591308260925824104971568831254946011684013892887896193244830215903272443307544102147772073681328824989959089794339885298420355073467274010600278053375189907995613242163330542320951056684747963858740827408795037413003914997930342588482479938064459373530217885683270341635788487638376744234846452945733863919847792419849158018270006103343250677474241772987819891102731929348905234501567641871979889664249182296637477770579691371304566690722873415442289615940032882856514833598128042835084256810071661062509178919509693947964780748712056680814849755537494628255157605444383904175889598745369686470629254282091733808046237188304062964673471574110246014821077554020093985602167402101341745465687303666105434829983386195144636332876753509695885397007734234309267393283885557090020809972301859861019845118557340802240510627197005393135930315976910199517274443198899595334737395196166825457396693252629959609256085130345478731164018692278434542491233773758552861789754291947930977615814582103619642906170887886155120624256769875999219648330032093695620288502074809009689167436984448947876129770043141675313422795798741306010505339695387280595893787193478830053270211386563029543325230608984593687328087418442548960209699848959042639994179489241929844556294810971437641785185871424638100550881932944852111671971730407970311227819306110293548383735171704060852190372577718816548952021836905293628574295732078282866563264268538652340397643306242357185169494319991974756581614370689949544321095780665474008768660454113099327236620842003608992856856670275858788539106050187381808319209247318839995296314971145976264611170949872192721206899638662786162411345366971184850705590421283918398855067376164860936235907457690741732248751904525145179254624266079014819371223780779216219282698845039669013326115754443584624936997197291577478724478654046713091081027847125190778157453713718697067801339284725594231360523573014909129407002480296781444582801657355062166961772908141297671377635545461586011631864730461996070700888669900864847417278681777702674166147161195935527072098890720389720253889550760475903618586415684014716361615548644845898056723619375130752487629597429682965989171239195131558954955274997858218503268390955215240743356896024281685084044508604578120502026646097709229555197441468340831273358954150416958804753006758128769852299329877903442726616307271661777166845530583574333584553830494471353613542495672564174600363942888543065999316106771279356900860509540721222998053481170472296248427791157491223757450274397623826772583204787198260145516726135704264737974077563863519200413767547580279843806236466470145795256899235890111109914810218930892644765431689061484785270537384137162055763426164346717756518932090554365637630646075532084190437776823053908556288005381707372679860258014489948396851817053515289097742701168115724914304877356902358623336057021874246421385045363302629683205961670290171862591870893450119105743133154921976120205043949932660173016809002864560659495325359004313114815785012263174710397147068510364168989800082333639700175559980662880515039953196695713448544498904160624653287395225491734636418499148101574538647871501808364696628725475187630788514100569195018510605609281275658196577310454060837785804359983120561326137796832370604348344281696807328721032370454571110253968645998195243245671803396084950489424515985899148281285251715961893384708333215388225772142903182023091478465660857800180193575674473716558794444770738699349875069592033910495753087661990337564383921801690876034761736861347149493436448928709804757000479607652767341613874007917154880662951616896547578381093572724436332373469207311621264504432465204042827468033788389309465939539594487115376195340474523588754927219661698951877842774862674462975597161885208259872923324283516233108561123449392859944927659772821527271521990188805974056317737735778492826504345057959460859105059021534333867754114687451592606631827027988719068370740158505261285819239738925947884916066248923889383905884108748292942711882713106165181182908070057935979529623144285815599397270049912338803576316382111619219812348759926554955372335762585693596183318314565961872372672960440068246379231568736523406613630654051750493525937607263842920323555657523669597661136276578095265602058800667039490323634950013017164474015688059911591628207646419404627280210403253458157416887504329084436217747701392461558957342496225030324904009860338858672077882587278510105175563718375462332653065993483122191434206967920116697403937455936238604557519669459924625950338639891639367519862327903387511646350498628636541229190440375514703843176297162253938638679348818284686451012202922167402280654620730723218627580810159803155211867160505877571162938445789324528603303953817863129547326970346266515301678907851937050720247134463772397884075557432379717840277575066823766751541296475692291873058492565714576550679958744502881773802344715117178836429151872627840487647297231195313683977872921523815508286648526827424099525453767795626803987754900799574680822816041356876746757283644068137070859912252175782979389581076136288988375328596956834769624235021341814405067703747728114941036446815607615770141809658238132697004914432671400618605998041338380021997503307492415738795633633818664036398907928691068724604970880985618967691917338046373830774154508907051008281851119478886377118528216992785393166969302114713792751531908150666425162654569785016100258907707695930026733414411630529160105048018416430282190333944424625663615153563082631159687322598418908167061668658592786530113892110374117104775956879906954325308196004942944605347611952225220586735357972979684214385077139791349417952364179860806409210664941076452055227970914313355879661644024176430523328469548530727638094297340027832289069232623894886934325520048931329885243519706165387038277895329263481940087894067231537516545743644911397143362923325433894614194051600691579402851274273996380690878471710839269155449376565460892487448326928286588382354309938051766192811738423004189299835472924204482486079860827541454716973467252952946208161509180076764059220420281205533870990580054134416765799315965921863615416664531025043459432013018210162371649985105497758152384884998359945559594319103218207560386171031597426433474333496641126230172603750247595009259398037792662125032964770318373829838044546532170548535045904854644402136767117900161800402194851010863854595439219617545418128297616572860318028689968124669245088153480076319537293484258370796998664217840774221902269196800237422895619404882276776329339591200585688000184012988311036899265584917037577754077994875228132771530233279227527496892539446299466789628055085128533422616151065503826842877672722619187430185084382427003256569548045362119164848738326279069282052255729709211816343405547930169893037024631058015586843566783047420747636006157321567253666035830295111684634227665278751014174564617194802938057498632936762786922515318491854018095926088069847023486982652598909660099533216558788647095952152722140776174139534626719273588872496286601584419734153677106379004231131274365003260292157529016479826056098202813185366810910315721801115783186215498985434691202715963790732054020419718932450035889399137126691915765355548060612539068248824273874201266015930944016817500563319810138097822309804191447747925607458865833796479597545479754378531650874131948865854066281015450465656035085682250038678977870915807270698322657239884003024347737331668782811587476175582905407265836130245023219035490562137152710037799871882232183543683884609998234489710040623242367210166447970804198304289066114957542505130785882829782047877503066460260109644179336370066778441221694823228903430103104887285081171640165763595696716908626311648757828707068270086692037361596269714902770291434447668554503275097794872529495155366398193447538306262224372783964535263287553130569010768710635883938936069267736924665908416136851597851668358616241192859558716221475797770615962052292251691529178069285322998681490788502455740973903008759013111512529661819919088863388215357475066803826829934172311395412920496518170422109513088464769390256465884646943109434540082588279107925179118897583706671461588559053009001691085946849633922439204716911842054376251251802691944067779727304983023485599362545217058799598381316921852408387036601710349243081934094466248582900321725350079192292829405457691250371399154593614461181498880847811869221521674109191328192258082335410675867507902540680107241853062977667000739546957429520305306677822128712294977751273653748767326321490841096599662735499621201693173256681455744836609684322516362225339130395289737673843389125963151720703400097300754182827967777184425170324812135830408284881663996163365493725373122936820864854497797654498887469023746184272876996688177131042077253502432681038728034140315625919972976296249966251097954822976580990230590374923349794569403648828490969634583118377744139272814283894808430349671341315115521205978806285782792127962836069544227970724467420244666389298661941303016727714742028253524431565006207934720211293324681788110241218786228114226488393095965671359184983945856325081049770439909139597531000996373382908232157118860988831198051895179878618687576588253575549690427773877512804043611593041809557838409978167837126542559056826947777564579844159259789912655435348559543610218731840075601604992710859258519109279700055246851117571377878715463467777389623083942215254677054306700861793089960236874784252894617384553364506716489720350657777846629746815943672470011508125841269414731884523743702729303297526094431451451341957912770271056728113354603599442128193426205609084248881227353602485812885414417645030569227411762398336294380839576952490379706881292387255954795568739492657443707429392467773076004736126554706063566626748171876585987431927909962867409609422591519686734959311449176293309896154843890711821839227751165742588043068154417998228756664415944488299045871367223533927569948308357657449310198745088660171746215162861735508611287562844323517643692528548468286443199646410956616166219631833177137932410389165654282678046537362147620233008220031226329924455429027495843784964547039369040296227072054934268248163469445142188943189545356039372507584702465080757639210846894882355270196652486093447899675973755099173769146540499373113454261410170460706462241368409064411887132342903080462056703465000326101664674443264487711313061192105813818385675555674166245313644603333701109784394448675232013461134266598332278127957819088204024335815745639767954686277473380993251052147030660995287288308050931745319608766308139019165419895897038625373076350672445486017162984362577042710707747074939421239230963244067710171617085789051289278557630035137929617155664957835339505049114728250141013963795951787736434487076212294544768557974957967774300325946874733946418676515537906156477351048034563074664879636230807347640842173378922558401324659393943547496922506033716833575699222808016457986929920980200635516386168880930032383352597220910747546704858339962396509318912244615366041240694569216416479293382084617031644134150222808891265956766034077556050121016464596466216267952930868691622899809858757856231364064946578818645366400288254029409166757593069985449158928912331865544853192378091477289452257667195369795081317349814986024165758279788156355508320550328728020849069820944014192970742039182740469341955103478224184940236001976405671637606368120373814874495469183509402838656851833468729885668781853318604096921834465942848025646250454266505963152128494335398435483050832893573340625402742838041480738643769502304002712079557850503996597215761705179532226623886276990493975157647920563741801593325247508322495162252832750920632815186615748430526116919665188113109844147456457832690372575954136880380092821422210401235604199306208330833321549156952230415588705328720985480309810632672762250177773917428734190512247228858282845265623341608307624419205740391957978585630555792501373571368974192707113489968591526460873647972593758233535271767913047037645589802277059947768734360331638940294984788704223566095622045880034309281709469683606709553738828441127772592148647761689080829814120089590539578428900947763939446278918699603010228789187035157304899032140607810467994082240941584816804846759485121593272655723806735404155676299692257759906587480545295844120277119339591657397895045557511139939163623486402479105283678452262116106938704573273601081406340887024372377924699067017325235544759458236411349478854821270763077309069076387995860645112270043286479234316672371002203984430308849416891793365381111924009240434984393110452670274360109189196271041494164445458884167341717098059124450936784366510490941875837558087783926581340695405758130433582860956691954823184224391729503239551650301655222791506619176649480949422294425828163488728246339574815251572130998775772392925419820176975501102606178449221326554965052938084441272480808754647871082274462034823824542939017205377387615440679473221509682164468408629121979080493095118779985513464542300557332643266463914602129905765915299481795102812458360369928996591184922851369314213123777139457521717018181229134892584344654807203706370233480525705506931453101940787290238895391928122697653752732025123566736743119109029183291552583976858536158353393873922323197424932431647937566897896969853757199651445932685795110034923922874966693497147950172586489657305906261017657191927488700507142555426494959165113990218399176604365222960404408136976298401863940236325572649706806519352133932541341920580281973445293909438754681454368647313444572268599913933629768084605556751492878983219756853972049742090661419977052692663187663610475845751230622127177693266583808192665157884860574571518400015721268913568279755932865081958416524201625646155785582803404162094288612949390131127590572838125472095470111624910062538026787934355003827531272728847245897537551502073032088903064794536828876030496013950923396549134321141756396067321992218583037569464302122501232513452746589022266756345033721857914407154208188514325373391644072326151524525232446307308716236277753673332739443066613165299012865657155316714893026607471353101591456596316180254070498840071717580400280381848856907740700575931575683258118788763889960172811643547286312502316445247272291386902958728572991299625235192162408984993733481327943651289334127350605062538137177072632309573380458067060234573101814574220822929734275193308184956891509206541214299428802638720433464247462640839954705885040013614923865318303968026588838465189307862161523791666108409614398252869492504934782390562066594764507991124023832318815601348106288425812723557228194206644930093608858821367615996626609025793430879059378588435857452874083239845057559228196080187969932272363459724563069120003697860534871118409643216041146287679660590869143130751500937463400601485552907461071792296676630585762807832934519899520346094133474971560136136938212739386817870302743269830558895619748675991813061054928227489772789400177410349781146274326338565252187662180195798658001154160103861774741696760902517158048885807953008753836296298742563510264794246549576871729298921693281027822010927944567382161630655655412634796206794035386681171395586621370088972985652736053945078913765132276566645652239260540786594683319609970421451661953506810600261325494227062984120990141256791898795271559081516685138732126862798895192508847273046232007633502339062724415555299164496252672100786842910836460419857751730860836026923347099804892275428261493590598441663716652008576342208543358238500744548146463695904038646757953463186798003327058968943424973874329816094167859528589835599174357456422610155315931826015911447081066692523842453848803602071445370731499317384054126342599131920486864475503452781186307093903357711733022532993725703286822982318593184730587291645665011476803946520378454238301851422122874755065332017571317277962036375528697024147154975523161954900890846921384420147669551032202534408247455048639460115040566368935685947563947532790231374249710882472254664441395011010831179483211932570587254012728367245791096536028714872232388614141014214754073835918483149116454361083678748931565513683290909516186648520981200751662126786484436962041483939231474780381570237097776145266511744014070771313990336987764216571549109548258907625256083880018765608269114524580832002155764090415420285138801023542493517282710292067567591021293521249388594658950220172388197568151101416865536261833534642580456454267844499204025677364202305129729930222261967041686982024671910941282568859552485510260994029548961212355064025720105890120791924738100026626061075956321008845256961725740865408432741129519871619270445837385504040717763261075238285827550216972521261485624259862903277840660783121366889913741453337199226362513714811309139161441053489631570773611622793262343748356940960555388224336675519603249801132598812201926591426077618879591754548681910048516867164726796305583771186492310679166721813208437827001297323991794007777655592564614410641185008315244410588032290715231864847836305245344176635710570414085240456626248217838532580272931661462009983944906654131965991720328840136177582187175268424549130639341562713691647316757289982066510942276816543154144636330719036460874596667634118184751086792293472526418195479355043901388312289560715442755242041258112639347557236646096214602041880340909518410797467618167990020113038649668874554356242229489415313839951616085357694819631460475504150982185128150990947666546177336999899081712892148533333563863238614351270437917959896908627561717938061992046286979170251537444126363767305404416965290256324038724958588618465378430521096905323846290692858814240310446685481643805692404339758192946475000596841766214321838065222392844285225374077856716788885074670652479274033728969678003992226428046512437757332269197148500521309638989230274698640561850565785404482909338158490011949262694763610189937998151917193210956339327224683597561250684697747799126741655720481233121121115706049812955440546752581142763742727505827219943235326007805214994524820497765584174391740963750702447908720877757184594115957331185929191786807848609270611979316433061566324017209687889358117707287239350766924878548859640174184074208158740363980292813151449269733764527319207785452181266016074005229823824331397422965044409270704599170545284448458266405551658090219312646608387593334259703869967543271405595978760300751964600782807277814685041144431868649445617979734676049890314649449162140182768850645102286599535507461763337572386982505437231080301446778405233159611230584598422618193925173290744726061384987977171634220180076809319157970740185310526335084735147438232162350619226867473070362061382324896335885342530876756151244581882666543997940048949282216227921066203496410920978958839134993240508112664983843042527543833718586396053212458957583693745966597697427836390501335922572762302285614097807367140138001510699310940886046756058539332803773172186709857507266006592419286879597802375514625914677601479460870034206340319466790240252554589541443817538247970385628630406383931468900032601868442917890656323569978716080258200464096765876054653198286888568874496949565962060091743330284163667260211028016279762559956774103472758630388715973251732922268808113499596417820201773643883400546865171624789249505608579484207150325985069867750401068840636621807482990751890933363198639160442649555891977147727524727792773414803838055389278617257622613169730050369817152366136859989874287182654023130484111144472885146282315235861857406697259497370591506214775048152571507749812368284070464253284469221906160301649362893512147697639917261830133000005687969300908063577831263063102101700007845011920789129812654886597370227557214206006934972221025943789498391491213571110312356161268642075559098107863770468372281143189585906575250082589595497339391183562753901907046991962803270336925020315482996425566695317261984446992990514127480926593031616033820241545747703700775991986712367886767618731502938885859240475337144666099430659638913037852475355697132229592220339364785488235583197696610950561366098555212637367757192534470500545704402884880667387276790660824311767087483266578474326714725391018262091990450642035352383446404473971144099694089399920888979135646930203291574689574602400919657376597687613789756347780391891952853494633232999723779187516864889720154024437656080593320201134799736477664631567030301552724543016990574964231440974504151016856131318822429403800718022214167946416346310808589875018120032175594488251461245425069204717935641534343086542830048273553191718037989916634562011225777456260535735685974875570384980663016402963475249582985969279655077855723278976760695688459625064551777237205695403745683430133653643876537495416170386937202711685032000826799851743436013788637312610064549368941467037983737081948279316506135226432458650303030537661470368918010690251374055703359376714950744317029643575615671376874070846514170097150621911910715514945099275468331600031843259401576781624069068701693820581396135182332350639742266464570895145391835527672101833393768706839069772825291702485863578314246580463202636064183992303770297234831745633563864863731516940617508634691828092248879580773531519157007097664639213396508940824489399242768188907354861006156911620380555452322020745528938539559073096786517150018175991703516082427262350284047444242258987105459272343786834852224190692207535735347238454011748515429679554765645557179717907821698819804220698134890407407947347722540697863178502837785099352719384006018435679688439360002678641917726956979266742860522523157793204117219993849943185182042557395082437958350145510640036280571936048230187064388015779346993498187551813938555328547388358253596958857913562629349441614649559059573582637235187032404837231597882443714204242761030699269032549133319969185639198560237768165233045914061188632008771218498520761507979490563441623468273907810444215581915978930310788856295630894990715307322157200141722768544119561090522733353743496388566579350918740115401212277893108471637879407696245356141979000743951746201829340023671042476388598377253633367723284107607647326114179527470150946438659858302518158840466082209990682234421009659010170265306937692290474345214264491546751132846296338154308733693722132502819317090999521909494687336566790050964117073445337847670243452938461225376669999603932560579206639383187944137864895390599698924186747809807402504056392225804403487555466107973766892871401485550620196180835258007559037217313364088969022589193572360393309362954734678367805406721574232617297828454872962618835857867454007447734077306009364669303473991152450400165341056780352190442607773823978547887107044370703288187883882661525857153336553281921489233672408119819760500788717046821752195018644112856632302248659390961166239561920259385684218406988539751619700981203940579139856713948511313824436376843460257132508779635343000792214739969257226520189189509993145021880149543377004903607406614805184323301216515603124283556547288401175019113554204548493866613570951932673953201329806118103643286922549802510112062494447521532199790771815261928009205603596529724334525723483006731019994125302413774482428607161458793367664488937572374499768422842921709032735625275018219045183262156641750097627551071692050918965521341742333322705164631198780359825539576784696306094942503997992620196774529444554334365023318575366129064569773599530126906583370889521917587486591371132731071852690454571974820680563857374300317530221913774018436107700137275000702239372750812293282793521008726861061062117356348147543904786859415287144222581769616757257062466199459987885351294707318023410413107080577052854311988302644317410166253477058166842347166749017782710559506970636341906689172454447359261729792849593514794918783022466096496115222651627223029693886381997916948580158848896734047285468943065444898122466661347222775557840270537741523188661171393931783489320118074137997549434026417747244524114891096207328640261758348018440856514540787191008565601333477705220921426834062911944668174900711946406591164816381285185475089057762334968850628862546524941029164222909063745385437405480449526841815211355232932077058933785658535425290227245862604151538833017393998045460259998509775118582031237090073646108486079959389660371758030553941380653012275136387550201083642145201109259442926378528172256334445647061478951635654730804266600392110457075017201457964072436655791663033972008879362792142390803415466274722382200382483161633710195351754626191570592269826940231353276199740234833658444257819947349964885113656702089386441660309564057099133452478011670183963463363866241850699973824386786157400984989336275886223708027393463598523369396222142242964626638422788009774626772973373083807517208604185846354157676722619409870176654395872546943949700629616272001792661541236561366300966645722625936573108538455696642205338287610986683486036645671194160753413433369027826413227871095085619137368762797702306754443737698990486292236603092258262766988623246058963334307632455797942600405679310737318528657322546036861748883841127418831248435717281716827285394466710121489913354876511345439076130759430811557209846548473486390199790304367385801818997040901557931525748235324592436414774175753188618614406150314908077958000554712632410486775008004480834258896112030204404721889469947242580623338174236832854457619959036615060466121645649123670413987700359591295700937686521464526359037502588996780016314033086835314264842148806148925451034197475761767470980392641499816597648903856085315848564940560232119750261884296481030373910133004882346039537926850139062219786501810267365980428507562935496271523314636785219229334673618935930224900345513112518030511123759694160536158782273825220751038266974069364876489364373296522195833230146479365238661218251765143608194516502614059777775126678440432668235231664653109929121929325338892816726378906030010493955403780270256731117651293423777020129048551167245896145914290064957496510503282431056140942538316397566098403090982192172715690507284192332789189265388357358757967326600371133142430177653093930890990570541911192012032843327642487685473579552684047977904300399481768069504353521018727901857760787692575767778239403905080653726194874024155482029226465966188428017481977092398956386822714621560858148586520482134953710265421804024782486216419772091933192934895330697441498764126678174871270525379094219019255020221972598106016949985940484085136670471354812738924105128861986792614296409115173215910969567641103597942033867743165543995712715380928262880239306869845121027924719154232135507173415590282968468559476600848541619769044192811557187742773038189973791170746458493426771405868421838637379732930443479524465714772813867483913118269450427056154610778665416034051278187135576343334078703806277980459249955115873141570109169559376235163692779025819850966992742112724465817595451938451291818771747940133492118708353246147333005351307146472155226162727784572081248004914868848205041318280763344086525601644391632194213600478540369516056245327177351565926491114470616084837743436521087625404173688880862854428800200023284006056274273747985729852324554844241959371812173840168361919001378836966124398010264059489295532135965570962639628348399588209674458353897337683863103360970088828069683592477378522981619639767228664611887791462319576084183389848804828863203981703195991992697575265736270117551939342951615796585467892039896304264992380899728354918925249327014732337753735768197300630446675443939844688525497974048086700144621041693238381211848371208241597824617129673495960152517642827084992129614315467497742779291544721650651486199583343582263201366854611127632560415305731405904786421312374838081862677193164367910241194283002401973771169556488364661215279205444012830281044268614801200823128757643526275067018713489013520565595891628578289218588208464351501966242649988444649299193152378590411495720614962967893488150926671993173651349087854866631113574556646374443134775187159467185969509433017000600090696245633679900845265839341796665143270896504730657637905221522714100489391362264910857683270511410546724075026401579480763015395444622726522030806581143554227535838779945711606114308779166121906088103330495337627501011847929911931806478082870166661392840340562436584870517897792533423654212766737828418399463952342929505742997370666551126352103928131182018194808554720565074494141048558162203239935270622635155231698252856245163528629769045368940715795106954805664221627330135104945792021528132597920154391947731788955521362662042040777277992591180662049649936344258466630778841168563538632855449111193421925352558322518006715427824623057635611195568490091798051719898452758652728495834755828786325944065013237606551620538399099889220185128522822905658640188679842206990007945594794311130265029961039043046167757659262764132148281143814059206031109646102918630399055276892885112862123015516681374287098541795213291348411908906120510700868798440010976583816038111367971139836724428821394148409426770364914983300252707712623345231283649754497233827287497058299942420748471128910501756720744052986873921544548119892123776752260966710051341715115176738300900252475433299674665121744998015995235996242530963183346324089966328788595877365354242916061950458838276473745304141761802541380793526441341407392785209117340491252406171583658664048477571549535041674773734084524202677173499091896831512019536654101627029688938873420933437261414672253990491659984180967482641057600155544032187535256560774727224702567985052998339117499570211757131664857590251410488776540741192322355650068611330916591142885914197367800819318895703524580532159963721888170277201978810326142949952271969669331852194553041960493123661205480847513170512358827286617847336795500777388372271744380753840497843820965200546102858805526309058671318872174109618357285737934310914421197323962550339529771373406270362170343385190540185130568317139383227812420713004888625925135345661421790632367951017365097750115995439967244849156599798440399419216960160521320448516987242135002849634086599047710837025747761015440594510754452110577295139170028386863333311882169960472772365510791706862324025547917087150402649956007949433594845209245863888815919899778904752665700025285655309498867791431281805997421084750250168811638774149511837194894229969548756069484584304461095328112732551015028541914934345353453721605823864177735540941805067026774748944475137905760535196982863580217750768658662162953867198721819710211461659786501171705309858960751448117665403468063153523447228515561317949742435603787435376866948387106989658707539895520052779785191489853156229529108872808499495360602682445230404396346687279347220092811265636315315773932277061171972684591174052844763284380593963821239235940177194930440992172714552124707618269993151228506220802617336896493136294643961547496586684248242803683107703799915552865945299309866151033284929257026707097484552656234659093929376911103461858967752955435812041412347913586505622961598326456481869989663080631002950454834681076826044493410942765166125586193993350768221059918555354847792203427614122144583547369595791767650395307317247889011578360616506915056917200032298063481686860633495451888344442105059102810473091767937966348177531230986383180248650406157450699913976200771526780678484341425933798960407846584231664862136409805277366453579153898360823907855055333257186719944748138310997932077229894128517255932849740735533528360879462004885556558758949261545539027670163732510380187923847940233681058881858006875593534453252234053168485264480497701541146138861014399269298737970228515253134860038279382484462625574613132371598224367501508839620096539152528683900823638406164226740208037710799997900583683626241732593084684600837744894144693061059555231577602012437760741848997083966213017633107086507020371173919065455577139490819612153846759486123749399656936863316862062712844126834942923079254616059551043564563055201769470932914615268535504632110442105136818848808767037964553475983172897099352801690121585549390114227007121282535871592806407613801234476514921996232777629260855285999482138228106034794729069176864347427381309949702970659479375341293344959476454294031691078331776159143139183513059803871950473210968528520843877565863994145981920982897003962379642394800465339965996264985198563079559636103909218010010818319514313310090454179017045009088857303002897475339106423469001221334556503630911377845607269459446226754982903120641661521600541286491961277880150422042512676847361956211606130014097466210914544234225106801683747424589059356612060252044673389070452180690105321272494230812587202287602675733982764626058210431104120247081845635227212567354710228287087468032731445891800857255167373762670526662472833074493699672753687108276068670377986103312728898427014378584680871411174519660433632751093301919389078097896810900861621273043688549415056233830672531837961532982133180567344095055855557328000430014602417606875205628752095112204981188802143384458104883745479021354931863441728852280895885122263068221553729913012979809332577599227652849372270190032620653419232068342663597663114000512393156997372744870061005102331095497299245558224426027952204980491469509163112927058223133249340082624004030734728905057720691361840719688037547074207497808598889213108508825659737864450475177659661615265073195353482179294682853427618469010521681650259537276598128650704635567596399938640486995919099717722381328157322690940910903900232884342681828581561704782549755272174181148376523945620940258406154987029523964779941113548373860182234853621979149335157550651124225373957401806159817564619485512112778481278709709686701567697938926064063073677420671925320152359340596069346053413690499045490628911602446595706308731917117963151651312741674357840547193550181032078977235590766807010052309623599118300447488025447318043309478661621615326772547518723299587337570384936665479256012123965509225235465568355694385576085063799973801968949744426977777020872138933121795943010811984767241804565203920864111404993818053352655989663045387261140820030210268711978078203755391557668829824072972352143406955784737490478508284820837962802298441077191721892857797473090737319174727705195054625073119401101525045795507831425045218074171860119205266564311717359254540699424897718460483816509149395028144030093115456750391343708581502910126282987535052894268793236910059429940604050373272110186151006764664168023915642837620589405849126194654574307142751284191503131082306473754994564694471455326007239771348400933518248714904979417846638773871156524416363009865125753363781413515935105626717107734125111261206933652001849321161880542087213334614179957580141647991009045657968813294654960298254456017506310340842476273142572072362243532085597011635873730611102874413219797608151215254237787065426805993285065508280447909442745198255767223785836070938329822791391260666474153792304598311744322973118167298675130357558950988220732771548755495095852972944673157276017789357108990459066929299600635636081653404399054178377223351112407772957373413586868917659575067887018373930645031794813194341704480792795020724238204098599321079236015904605508845423406447500254215453625919201744262759503152312227292772009980063398437146399729036673862919748641436320305932445158190715577114305731953963493108137449808558439127046033090118082473371785752128541833787908217469437088833023328041394863171494939507900119770399310668840194216249484497431423209887755773165411435781813466765783664947902101110125959142900752652574656392588205417868431179018720731473943459865117596143375290644832485773437900065450861159513281882959059063787645115215917344675931962985817216918781059714004010847659466015122911060526103764342086458588549160046130354007105699784497518061534857602746474814353813880182571844606298498209765634767350165006569007103750890069012317193463074763408137645957916250393868408284907336425415750569592686766478701033464971821221902253784745975571492772075894706229275192917173166113598375355830790931795707867794405031955328280030447792262247818089750378266613640866876753343442050035101207190011835019353114285596196047179379856228592036479981342614430944374534101997828167436208310250820489601361380948304877270687073632347605809266294428588626163480244936154077912400205793225889272289267476509745496483351699998395155038127103348531413031272378196339496440085930258655751629244709637657203838204504873541286276421716200475706425856818962352765061401738223467644505094905842631940235869260814682845279444075779851218793358449856514362185258532890086490610481330133404336892631627200077007195245910490185143727580444576436771271202291829896983545544133709529688933386470912883758448838886489623547295060037269754336405590941645402874059720073796577358271946316489220822231619504350109374255717519380936262908409084276983759941550297947339104532460517198426250428745206773080358345103593569925745907657369814816158006882983553574348324340000075100653711134300368107851352442005571608452514131949552384534453313955373996961233253583686896380922736808400043817901397162869698796292478527031907933951684180722105789185486791645282425462592828457902251323224243081820046274611761607484551562974014786804847029049613841776918431552767980621548625890640991292040033658347908575609694124190150125865792793776849473286684544295204341573318842376284828736960898423804893560678622173612040810949393267920542736398845013238384591924734520457308368024014965642766965873855476895527822478170380758808853007377781791930034292970404307921942388232743706644911859454925150953971396416597581381855250710447340844542705854344151928889380494351698762583582215495903570341010211662380629068920461627910594493611673473442805973478338103225058565820863279255963845840217800589823458528568468979208997046386017331670170432680895096467638111851922836083119370544843223375541074546569222761791047277146105809190627926227926038650208192205648082786006094056292765146018033538377115869407738906064274900018869864181175978470810647729529020472814073884054646864598828814461817926719023872358530871834238307764262331469369485158245477877828266625499302582790998699271080684663851690886217198065257203621396884835832108010091254239702861243684530641983750343500175177074172843677127721117797580461888877728979683851466246045359869331455787658008189557430183007683090104797829244393468967200360974812102318415303363953329936008613832715649023731427516935900260302791684314143149616023479301494983502470101395392186737022333165070837885531097061795045256919627709826280751151120152786285135851638625995235196717233284981458743684079885966843544651981139242790063963633420434376550788620424197146910314208602879931072542943571024423965209101848852367672499603908901884194448059618774875124290666308890724638353788472463041269942811285434488436070233909658275360500084239800646004973254676563009361601563265365488445557004864850981955511314085873613358283953083794151706288370852128047961382139987563384302754783293188684970048095674693389932631784978409081563598694731592583531348113100915578679063791675123868328305454811094217230530247345189069152784529071196476249363109552552003635309976590737941624336350251103804968117659136540752434945161094613263793630551977170567616714191499693340788098195963598909275150837447802659175834794375374929994669792195170461133270979482940466811315388056015591692936638292634922668410739042736638805341202558139242352996872829300172361699452896317558710481447685803705824757656139046091740299325435785211720175144442745778722910401343605879109694501507177820723508789667531748714427422690796545383154996011522061369745047542346937721829174525623908183106200337471847492573045834845579579407875884303330246448582303658811063448233194812925495045650943761048859524153579902553486389624918323437522836113860691506652370519420810762823625305192730730828439931741908253159829059713379797008652950518181366488941669181016826323033230689076390782355226385359248330366271482022925193953655647585548949355898781078654121620096524816091397267896182385199667336994135896600569973954723809066926983037872447270892250635080320941963919330952922971413645613690765566751558634879403857274858593381761550926876178122619875457725755510526963713986305586326637681345023354332262862586322059960158977330563332872273726043322301677114559547506479882394067331315785022750374754216902904968193079916058843864590848679837567144493222667290666284876339855314010478131536654961295519845754498354024322247896303540445021267778090088769675238765451565272830492595573783234724768236870104705728202954880053865276228777171505718952970422723153296983343651186558808749509334482110910770922046082597015113819527151881211004734652467391513491801121187523358784079544471636518579927000381769741857602708140706471432107411608099827149698979966267684027868122348072920293335809817294508924052788732170373383238186745329217659914508854211075720569860093152242292806622549912537213829274244018451685980310828152177577736992119044271352973293147993729580182432309670020508820514917878368842523157681655399119447492396983939167099310035957721379127821330728889369671671365748466785758561167000813133185875879776126208286444454480242271532698810578391579470804876003360065965772862525264086555330978897919506487643794510661752231539943141393204744635498132642736910380391168077092807968425682704633651532645471842396985414095984002198660679008651704130328644413175989964802417336617193604692543378634385984923227678860425570835101959629294443523250265580591670137121503927830999305480447837714639625611933394997953384276269675769161841031168057237079325593613666015871434603105018285157677252658869781947592063156965797325626331093371473833178198034091350523708849448445566972532703864548082110086038908095640383183533730122417774652665422109675716825019691355993870756800894914658178362230953561617808444430036296947833230074230487434607365567213470288476893963832446233586031682635152029606474259004990033885633866745555770342192803300604619286023479194674358852547303373168661417814101753861606552994882277614489220140338066377032105004021883459727870181878377186113730748993453796189666631805432366550283146290350286283975163420964579783556848339397896651942382831345012710640800865201999516281793325705336358689186370471370084624742001456677580830812178926030556855052282605726221934716069747280579117814632956299533994784583354437764434529983255327656361939302291717803340312561988267012574478472668739646417118940921375369628822309349397100392768924788735900378053454664438815917975359148410404745700570816032331473619218630148916651635756566321013170805906558292964590611074622749836492649539551652390451233252417938047703181391652680567685671803346247193147069777212561137025872089093144102398426073646446498193815332804110646820854971201614151694218937488531022681902093997190887067707097840846207927625450027974380361711960233380377192033330213498382337224981730173752501729555490983169587175926848207193235251838946215279077772888729367563488103328789378951905148710413514117062311295748892889992109640096562705055108804899629901203006228827479412553151365105989680462323332752485708144392705901864394587688253607238016517675104722835977825946295002457092177315596309831129550419637227072757574077998643327391595122832160266218686431798718979565698587438642671823244234924098783740499042371656657171694350666572626887047619975881555511800017057307294056909908105708190997219910947414137993782539711650109959506067075026579552104380261501125225602816888255053591507918569857083281341619420569258562164880386916035493011181744946426107126679313613998851586235500570373329027321042440762952999713082717734401117876800869472326276965824801493715341488600557524425644902990997224678350856609669393352008035362261707963364837943695077481844879094419832236546095548327615675155515808253535180302203655073194123882213725398364256159475258271902371778085313795378421369421538364606196006272965956325113266534735759508522190220221789714933959292628090255487070490277525074203737004439374171833340505302915453947326454591477455161966990912307976758733383160000992713783161383543945032358557554679614272482325675658603334474267827420827569301232631682152730934362992153108405729064834809301582260073663922684197701173552307439551952209845266761148070068709476070168182851776947598489349995857691417946415939670407096453762591308845312198064473983147516586662397752029524230910299816111895973608576455191858749962953325318892078698989355385176796542034784392892158811660473234823676452294497635140770795650693793256679911379782621706768631628170659545798400865765850347088665266503090479564009361771645811455736702503709645506823268590395078076049324961105539383518643819070199795873982781452743637443519700915842787589162097745686578230931739390789065862713819047888033073050935213671816427876116706565988385598987907443033456601806396737017416085480141862678463372040183893490035748299351424760364216211608188405769087351255482188329929587218821741777395879181828274646316837414614980691426843271569935352022936887701119436304991601658452215774570400021711884124657730761139221587485549813078566732168400775524127375519627731680097871335243760508266630004427930256205935123428543656933738817256255000514376303158385305661503189577766839910570836099955405594216487749504742461164021102070152521385113641300767275066354190337263274666106745614005238489970576227945941118140418165272083552577988539644738401073120651833419892138474342940310471473867688348714671290808994017972501967710510908203245867455842760496912697646119306203197288140858438456177661165984200091976661143968850784265308655278780132362538177552052818540846616517268794455502989687347482477529683358743128594936684702442010841454725900008496440603033925142171427460357040906005497708366797188741977529164226401462966597557504024885866511503125317999392439546970498153462343468863256884799579367816624575386899807710510680662366060485648962078738682379074010575972170711550134379114952165441554594328383477729441470247351803637246555458129881312428103571589743570835021122741610942724204430830339995644040204127677457926271555561079019117290965274178299961848014060284653588320984548367590246548645342828913722133112745044556061536288542623279423790282964296689852628427950277870081596411886685340234462272205652767142312389482733805725592070380506589562307171261168784603259610881352707373612106724780215646457635224909395540178512230167104057673911404407539790144920489116630108173866900935440126641978025248819058235893655706103700974528231571997314677442015675997789677885636326043658529628158333069545756806753057254303650255556130322570082476467706010574166199859506767152668419258492269179285135052709115887921248120516204282724589384683556867407268374345524366765489613881277456326805530425948823312968774668861750155940202162064108390370783437314179286526365883402541025873368478403732590091638329933739651152026203800509240078740243697836140941739779027837175931705728388928361288947349717104830980421101810981466134027650009760196298633895613605650968226921827394663509353873029093019240184434616035984033774311409817491174149213687957563267731910353925907858420243074018148214724909718766967101000694577610884387628805605895932243867323194010843740268751821677827613335863124429924911681384802372757833568519705164910271262849214950842306416421355471394385613763022077927480418726930276903077970255336785937768644273518409855266129825279038154919726204200016270608063980102455014580093421902571100715372661955512458727795395896980561500608293448242678874771274746218660174380422856041285022568813106971883817998871068925779221685190380727986761542690694995445429242668777920034070511502279459667062332950879143496515795477853022671311968036363965873971840233486760424547520483914998554464873589262122973686779699241253225101212337778470938108999852118101194307618067240173446978895148944575692687016674015953053545279607465378981750244683504290581579864653167115453328151400689164277549914654959883455530866352186651277723541987172523070131730140314121857707779794978188361851948211590161737846863273373317266476480192497413492830335989926186444770122152737183790931452348134035822747013918408099557681078952074084343170486236695951153797751751970915480155102631966454705675607144573341475332668605536490340979784285991714586413079937104892850567616887093832795626403596887318713299049867802880194139631943417555052836383905234341436190493654422269183271084210182614607641908702048139280549053962920059491059428656179624685164089285349080001995596883495775236222967166674072860227978664745485357304985378965255701514977808317080691410660139650033704800330745442483410462154238044882342447792847921679979932696758342747458706597398202182741279251696966075482744076652393020033410370023017872020265815126654437911997702733572328512859332299576246529927588555922943444671743977497854997550655710942919469447247754173163224803758621582409438577768748309063422363472317225391017384348874948716145200099160157436063192417346115033016930510489136435369929932906135759983907806000607457787412519370163091846913181217473858055144485039269413923470795124558639741488164262499555398649846546908881656488707415975847171477319015027351556939332134683948054180361257019053267333648465317542649656817440156562428073522451783860294486576725263230048109903576218961736514122215146807310523673900465132253351593536364151039551887535966832487046561790863316344606952680095128198859407342389558242139828395462416950671569304159663802186275336227311205588369410689635711004570564284859104071621782243407074127337044605053938621927890808366876958492523326205524750337272184091941526578150041192490652360328759820435957824917652272987170786152195626314920974005808452172552667941868473690964834714462731943226609136626759760493629270168815257419728304940206205707728659222099798743996297051523768999051269133361896581296498038163565728445187918406581619326161540008431471774285707631431211878664631499378263871918928716280516150421975317066825171209838780232644591300350454648005820337933462203357789468344091729036908347493494588752205405809543653116956351671849200140985944803868406642063003797079324308377630343224715929482872420620821038703095377757399501938913473242852975735154628802059470128834411863018795366201235390659445167733153435215294681462461930901665344270173985894796574425787219055784783452460053753177355966712423905069700423345006570099181623708562180697765742387502744304281339520858344088809127920345476587943219052716839211920294572175669527103471940311465335528799240674319062987469925775234732879790737135545459462198799498000680626254131008995065670978223150136645821367464390866351704326235830307610760067139094371534881345039198096691010994795722743556283589296930399514823947251271902389794678458916813767736045534192319575105688847877726861824919924447434621546135870815116989273590475438146147094172075246267051909361652921254949068174876680981117279295646519151955570257436973432443672474172918668347385591223725169389099955587591265348603787021771213098845484110441976788631960448515484801848526060731872939072742944451652820312775226042727233190440846593608570419570190581856960591254132965152116501781544020810537364291752976600919145975112418463609702936423666177588412759554126008757754918127254928480860725001548215509246957107943782529427007583873505169354504148209281717769992483307891489331092434590821086400330306319801501080540462568906391404376439594619877469013288578449876334357469810840919948733340627771014204325615776301184686752482371686305679289955904003075316142097231294553552228332055167817748531533641791319832379511230421297554558761876777919472518344046823162777611867365640395878519200636763971609209978956503424395970911167388347667239489885059380446584436811774614103259496960045799200551026242292995902671121040346670386847752793742269490094917196391710401682026738235611829595683880918613946492786173706686832164396499607235949182012450339082197411386273350119694286769978667112507943294188621997106131147660332854953203082976761438762082342302311635765483619376700250682223416371760388087787612668848968394578735948446372003072784078151473657750583447598010311096679043197951853860357072998209822401446894129231027338557931128594231637298133159258699866063592009702147670334101267207646962454151781687901211335895941555247534675177135795360985308353328767380529029884629561790826467492408751567265595188623641486049990607890540557101849750443649593645793276304655624468793859014734262713775036893887807317017535363687471310574770966297746596739292877828960739563095151774466625759856176030262482978174891649543743643278002668231349956798096060963315291987253458863376218834902251654679222450929209068744076257167277913708778620664258469117558526800999304025816989665658790083650156090897915873453563075578147540369705700127089715060486142301131201574931766211816607821846053393318368667474059924591632988697708423221955862047548450769358573706105412945674936891824255158493292968730728132613611720968639988029910125916630929283875811493905417044198436775898835351756098336750414078603702371601073747154508579909645053469446006553857942228496234125792494049199597032744275545782043263317087297551305857528218899563923392255095592365595239057469675673142226929862965446376828654885958937933001399873538768728912814579931342919072290815424255269366085615212147627568564593363547024752068884737813689555254975248267259801710866715265057509942707211523217693435940319946581114006013118373428802527799511409620792978847753028290638432478103118075290323610346646886751384890033734672028142485801317260223563647377709570231375062213135280934915490863232187925441018714167135324875846144892426443985536961680170293247987181062505619756393414291716929359037054397235270548901083110740022109323179645284210118609134512884546854929211853708403604185532130556815617952683101094440068157152924274881244073157134146160602671443651672095035036320864798266506592037172957110309403809905845383373487542550164594641649981859195825336132680659534079532831207520420824881205164151071006836766027372742407102420687483347494557340314909871109718036793955242037622001920354482139984762129665345358725456055240550070072547305426299610225756790876650156179141215108322882602663885656006402595715854687272523471350192172080752582069958184437703908956043072019785527529506761567256760387180271339889224114778965042668633227478280877181541682040949562557340041371609501186002689453887865014888409578156340307957064994111000613198854413187474736250561095181952522091688399851914582413691799069870679006398235710103863573317314321392997991985486221283561894758370987490066412819200582027922105148787822089833819081407320661665336918802415794850738954807263977223923845959245859970211440796480628559272549610850281876170256249225243692703029003499110241129672770231583452275984826722845653377790566109421532223745690847133640684236284474185627841750175546121078399990739695222315774335503031733639122661884427618746903301021543930393968465977839038941351784049866157612344557188776938194381671866327129747974806437229482162013992211162013839738933661921729860625963709257954398113337156029359566736020313948781952346989874012082059048224005185998678122319685781479332723752713007424570991337162319392544557364253964832194980230484377509193529352754455249134304538570133553951183885774351280136556855536596417827894851114360529565916706709448318100292452883619210891569721639622247683825135773702285631166320247239762962369521879187657504002386301863065355479819090885521593138855103078119666642151047073928927346498593755694827914341022326894329015125220518204564404975749999059331132866673359021562430016464236710190315567052134596743063677628448270119917413086081914438920248090083784225099456819606441077456765197829701569898438363799143856599648932292427467657867673831817577240088800094117548457764350561152678965722821008915236774147683002818411238254729118012435273179825140536734689764470209550555358481245200782619199743713282506681501792926040370266318475418884337154654462236911905827146937995298752764990783823628466384223746833892785831262366773883135756863829457040907213886857008161745614432025071367785025409585961860755383680593732264328496368001987557996359687787940508657542215317955189457508956558103750004075619164490435193476562472254986485788010698511165152420951604275409639808132176049630468973777159556847269955743061444466787202063665175215283391910300724739173894184675045489979408065260208510397666606172547822616793449596711940455414016383377198770782828301385983849647487257890531341095140587742839746714950101199904872282214706986499470704437013988709840140595710397729445906276124279844285026207698571304298778672126934381705084326446704690926047462545223449956615252603286720602196975510237494655116713676301271226713071155398290615050759422641591186960592998490356891161720562276759212273275507292103976715197044501881897958146095977333494270284519105137349659034016612401624187411711436843400226013205380438985694856954633229247716042401484978942946444047007614855075634838635932854317634827862690266254820304933624630756540625586263483593693239643416064504116637055826314570898714829512805712222140201864048772290531354474293022331670794879299233041733899730646282913522926005532304771470920847064229874804366383852632297186312995897929459069500603817762281027315443488512682687816204086578770348597115281434939442030871224699636838950983115417610811772113559941665761603581038094435078283630122964848198693612087666328618363371784169229455160047949275233342464796439570656441902906931659976236480925081770778160195987117485643382859086988813068089057481107032885772916405649992265917230088916252213513768472215325282274207163468660913153554745785983945095754689064106143031064856899157273483878869332271406658319301140987680163033461043118005931321383789750802687999194405722946556892727884514416395994284396013027607500486875581375511086794318279449984310080542298878043293619841752513224437830187888339677051513085273575248846975543506718621052332873498450169400903589397525681235210430596364077041040536799104259461689407412914673025243368646596602572886832430204974936866437788933608535592229601700516090631638121817599346827959004780049636372660163882117978740469881601063105830890854052948414309275340563712944928549698214796645868023523638628670710957262656296602779961287875904244024852170511712882307695494266895427255152561832903179216396873505312181214439732970086498369024433475712417648984844221092816699274825949341785420071966897099935678604293826782683384044205834922282102758895903927548538659437831965371179530174019329996494017421967931401558218887941029749942080119684564992202236446305205651179411312920449924302500511966387650513457622752428918450437907454084937616780745706555697339602971878724403482499156487419444169419800568097431561831506530152231322687074322223199292060105335308616668810082412456971783064681884308733909039938240582319034652235151762048653538025950083554446854594399405811714960418654644363437413024406153500326656771128687050336824345796998210669503273749345980370402629455028281289658680019772560352598727286073325474426639205776409452112015460920010842172164649374479162133508144327852748822452471984714671452798826072982577881052801603766185658799821317372781212190258181271806182056990501327551228180908180868257056582995599069264103206052287812122454894825615923154624446289284794839496003253877765074661250909699851332080321667750589694685575412952373643609833787449222954475330888214034779121060055698908129338519485624834596319449715932552675445032509494464375257419219878844264706305716298557992279002950914803234530153079829242188941432219186335879244808045545859991173833269918246203141282974625724901913889089125582720898490575968010823100819671634304820411903672280278473370625077356293607790178821820577820531963733062713296842049666427094058554367308459070020870177538834824440003215945173244713419790005832708369059997313968981049414817313656309322740078286608368687379575065396268412125528834738578831480270773017165948521304235622188012822149749959252053567707586039079550197684035269728419705660792394351836383502864486308388003426421987885265038951157565474142568240861225168891581176931640723004701269228322605010465609998146592089376170898536134019803982331878247444950067976965579298542095587597161593076691013784716147517967818107733720898507811027098119425153367354696475635820406923816889728498661102767051368378808121808628482855612504497159302770203083196402296084419191166779931586934554327727668583434993593016460490482403144229138921777779596531235463412252485254017705872954018420661468252256103285772017779762777390919700768688940790585437263846083991477280125240693923278720338139645548654055861918591795455547504321600529745667755664642844254937474592067591589037520567756709566255892201300333823736403835032803884662904412546123581861229701096758098146420389579677449724764852242991397818424810367993177300038389922657566215454003356897042366679355825918547654837158479109082434007504126069456002371560997523050813229319825499493982839387521172861707369965257007328434553494686670957142547352793123849643121548647649531147665417125702228837576673713632325482980726898089492837876748212821163112653845336123333943258829979058560060432979066929881310814499934567169317835345590926942989169019346024027829703234152005327822945773760608324625857198562864572230765329486391066939849318812613953767627271481539165981067356418227214508307815039157453035708556917596753766077712427894700967335799282412621769307758248298817971801260281454538054355343846926223359045061708951440432659017134996142205297496426082061667669611896433201755010336343615876029480284052394612970409059204172381644866437171648262904561668163557797536032650040373802610351125994940563784524128027114397924095522066563086032779256056933072648190339725099206935313267965319239127368336473362199775871099379926258598351255709841389009421127099218849154063469011754477124115729137921398488658564502546842699672309528132846668082439810854327907801663736223863384483420778070106731974881217040739130980134949803347946286914927288885362492819367388851600359991222227129346911989721625735111736896122601415145521303943246898105082245144636520502855284688009907243131078903693642128139041370528397594717434225482579925779679216147657980017687634391120295053453988023615825407064293790751296319342238295916955915443358085801424841194745432473733916964859012017701752015533205377843978573303891971088425895598661493585073500728740778451643424570900894468949907453191347525881469466269104323898371379822030969727496282076635751849521298642081784686920361339714583260070167286404275418557592299203702513585558376834570504030161380658272682308309665935054836805391070637563145709288295140971907487390685608145559512048154567028260012026346822679325226484282681091251209380502498356035931689386615150906166593342312785766754628817341468685243440293956787894933485858630205356861258126354023976417815336063462737195516245937414880316452506505817786656844238302278003500903577478368129685874909591403687999748295431847232896145467222630109229105445080875774355570250338359096263698188666814541289968996995303743383934568768848489615914128945361399622573932358607771412492310934600727311273375339415066762610859838774881384071313618643962916955252638899816107027867532764990942039276937540968151904075059089782956862000108291416330087629862376792457014010385426359145966265091936941255208300669820461864814012020890423541563508456571572189433709176084497118742568149161644166563789171085409798520545673634826649311603902197311423196442683632704815763478154934383471920784187354055014093376896876973036796605129434418291966983414417735700209102140156887057983771738245137255275354819390255765729856543274681696896660266771408800116594579657580707925694598907360803511909077533963153469884519868493841528957236783560678598763441217506867777461147322130514923418430687560226503182944385709852473061060904436624892840737669761682727379023107803674018909827030452410681123737355077937990236361599516424055325008993878803176142489474273070914063546299695811961340379304600950783772845460802393344747244216995133526725839392236705862742244132862228459053146578548068353559207352797966021318896572098777793067202644772547171837942086503275177274180739104739186912618979586666225512181291698407460503174634285864977957654792802610070028640794735606509050091964420184305450806969527493230908363997819361746176189308860463613463419742429751800720857614576519893537724916988934454153284333103343620638276389020812376271715807870852176842598057362700015265238010680385252508532033335356483403927369582993057160633595011006599853130823701666649228488517343583978009787100386221123183040553339865614621751428752950805246273428432959236728140517999042464562625013173555619523979156746213215253342142329514504550822445019057666169122791689990515801836202324489067873593192255939879728222312899774885561141302409735933054046157383808893818572551034129836063327482099040806085930547617567315356384147560920316951466845629606348763637543120589540782983705801429304576249942494782778612398333554357767309318515759510575600103963667525825290914163772886997976759729362394491573857226312879842187621633176238609852763930959780801786976722098556913754357158401732871766128166825068491045728205542600152493456968773005761213821528511447436256025962998283131981263338429097868228595214802415575287214715222116685198746252705101378132961347456588097766155696840460347912994931524332687219895329427067013437115934415801978158584597411243205079276876729393364827881124599487618204113202822257587315267071037577092071694653022666724075031835371616811837880176179299194158540663681700896121037880740128588445291867510238694193430224337881922384567624074622799177220418663970494028353935118132210463353403579670009846726576293234781347338468313418211376209633910466183940307765909572991142980533964446917256901769314138157409063906294966548567133561042173108063011531443734735510512167338395008417882530318673245710493314740159606974583197665715841265302988274664719101571147525280357365328368993323571453031602862687539648464086786351782130445635329245126829522319292434968890383250761503555637355636056498725245538256416478587754437591017880627961041563033172172619512936822712970428306291336766381764095246874056057541387008339997581721828822483876426175138504923880371422732910695902310144170005871494810175773439807172621236437164990102653249633554396028514933973302043256720059069574138357183150610874193378712761773113165643944923819521395726525184296936496360158414997146748042372508036993881147142193710939002953407670889947474837191338545798186260491304503881957858207194000184406397375231071909971739921058735395152905190749891212782723926627827077386248558696739315422977097716358096750899499397645469589305918581240041790576047700283783666808605197939672358916167868484322276485839032997140040377668444318429022090498883273638739233308789968548730824808005654379007027021534868067932163891244450890105852672146235438515486964023944613440269964347780807516576536498816596078189721133565513728728517702099286032119321069951661791024380593721649872961575505490687890979976204943002741986006946340276827827254803516287837821346044706724803284788142574891285981252025286462189713056007549388258256259894546928226904506328250433824530114577121874805267015568093798633913696127576254731970676377394885630691426936691178076180106288417849982903440023129520999665795804469736200298495776120100617723061972941903560853322975639351627744623685032868042563227250441074151614065519083368558596428741766371242035734584328617363896811182624562676261088299328580447952069672406414107314811426208369057846487044671799296875514704068229299670366153699575223814846933004948924232541487223789681974309661183851789069650476026135437217325688612386054445887819780097985435127131643798340730980669436280222528678406372666669590935091167289800760751194575889284735801928026893711107079758707381582422553983718671846611508592176232935020245267198653985849125709138952573947370402280228391530969126301721931202800531619591552803625317460158320513130646452503779419715555973930291884723822657869975230387797727902571900622150194044224891301817678522990785489451826570736196523850261238914607183845198709242562727476764577183572182741330962146618022275073994362530568816902052016192168236315186012040972662252302059449829929931382909665409645869898444405199794608406989040349482050535449218385903630916283157218259754752471457607217000569706228443404485889531395668223859107192857225718147376051318634580148854530242881497692618603499649362095261789133135205463990600482592182275796868498101863100771160822791938653632938536331098693772574445489699387225917690721542900735390745967828249622180099702025025014703286324019183377266029567984060029278078855520291209134947836577955207039834067538955318668796233977677248983515310037289437222853560356627897089231697338710036556034867606212980598388008843019731055371389770327194529398154173162057526546031395177650660208662495687118246340505731390588945442966360181190588608656786830608555580985109227372905903712353906620355315359997836988659422680737207380778888200276520801961177200754732853931064343871609921634096388919383129544352431995824956428502119039182723107685592541783943163213776416716818621537598790073260876954938318427678671928658302200797304849966415310532173705603724396170262882317320971218317387444176395356856372457540999341149118483279247960066562630745530815974249395928211178355920525333756303023283884447535041309526341402801892042506178280591099737970186856977760778742452601731131261822558721525295493890781259257106565253503191485542768174342336759546251989723209972921330170988874105060847515899429674471557280864362630472457588966594982343148629756352780768311007838395223191262044743447956946205762658021143682588872136382674214867620521110806279387980560059987084815048836743599735636269099323409096028335215759749488564823057736652923329605152740299421129108642538629261354249131410047595180455446995700711766322579124163065502811279496875257594544675198490645046052164612517604560081395596318192338285438554861281496620184450044719272753209119940207344536702160918049698511521545540766703741430816472867134531273435229748323121549368135935205289243084277346158181746656050089892107204327059554550624757983860442120465339500479714719457599418043754830566060573760887342519097477029134154910344101264343109886971294275308125346663811075600636606679403426197004316714993849884997795928098937436916659516502301706780628772242510115443526993331175629523402622293937523692380556069350274318107599336826263843499857893230459716931776653286063325493171876914854483652378000641007479153422625851933108236780062837064139361085480740332380632701168231814052492945500356728185604785346090845976012669546664343082192242109226155819663662945099942340508813055258927944622367437556840207733464714437184375388101360334526788109712659365547594291163653275751626562442267060618950266888224146816078886251207940373985835226412121818290042052399987492924280662457895723326698111875200106181570703162584386466933464008838658939170610515580551798707552681381685430989175562206172831931153654288506864752688045851241877008212446496446884976411569179370536888705058532369068573080928852525114805550192146888663738633383589921066594450025681369266866044992513460522432505345010861825173751697060769374455632088225743261272816662889025360848435560139623790675243091959118540270310018802634530028752569707544911150774502370179556272935992859336088681702323107420674225530598521759793363749505451463153958540399159052284557937742697508022739657007397700926620697702223323315337350849620735045210103581880196580588471582440954455741496747960356362590365384033852070619990430070322218923579857472956424487297662919729905339939019205130697387759939839590692088293455484718317410970587249911858323870069070396973504334008796785784203660541188866381362652551473551518237652348494499943493876000171978470013027175945000356911599673575934854276080561569232507408476806646538969280849351073380034663826091527257418453374703877701505456398649290971691862872422448572947809281811743107180073892441769268434064911576766374588714720476151890100658630989321974077431023414305176741646792460947016277466785181899562252906736360106605326372218601018872236220348993285979306242392695540379916984483848699887461309325959434088433615525730293936119549939371891070172636579361143103723323802976828843316983146352215098196366494894747482190359197221794851045639449048237854509887034599732188260994294952759389359946909370274666776561367004275893107184796458754279657677675208715603205402296035518420647367685722003704223324098189085191755640763117999468617872864929285818894970396320659165727956656633123372011860248319124835345656301582456104249930667507324886580356471279814137253903062859558121339698561950727760014063510132135075891916477440516546976588752206720865344262812865802247088139695975174165936283309659093775687965815966313742037084138703631085388431407465355042296193452957526833081952171270035367925595049992338406205697249784644146829683308084017469908189280829255536526416553711301134198281601117139122595087101889643764165375522406157992349758374331225844095182202242575375265650669198153111733411740382752656708183672828706530061973437876904131573354321104250400450769821140427311009156287988529517426634244973857652751910597543303064271520159243678417922203938785469220832526321863682580352661522112175087994286242990551401395401696072001904317958844248977502773588796282385289749192310507449318738857682011337586981726247345905771675599245191151014383573371371886594744198440955531832494423373355068985876526775244672129238661224080855226722845997933699522681359169020979543447203638663099459612938923599410562393446572678505966489361563832540243785064048840758813432277509414233764089879547447740020766867852357699709569791155906631791626288183525775653105161890740749401147035251414614226263409509498275337931251036209823259833522475243864754827506692338887408786777539581778254750401395901845477503489961567880832986111288849102399586347777048660962380772151413468823955578304909968766239340901735866718540629060999093834431982541392513886631544019619247385348129548154289665857855143720926985753261235853854079367137359985183727586431078300757188057331512244352770091489272396750293789020522810208199415436500052797054841982685218476706903954970603882921636531646590744775764139276081560054850380014029063310171202679709528177635370331091885906363099417909980926194296925404390616271596667563655539677759618379250413526536262449635057249818934331089975281337247028372718122203564264474032700749414051501470208502052188161143005893779525230415198435342698742999056828518690434553965967967159026726733427606360279524753806944427289930377078333974409528365949144340245076871118378948728718617691399606768366443280843882777063848814344430449822816583418534547386372857430149540646360085718993104955318661366226413009821825521259443227981261201906200196659573568105638359109078923591633219269111133504962215535618939878030209189050264777829880472673380812044745570523023052946204467713002357097341768935693610180120030801495865380506159686717294770827350356255764411316530522678792988693883602279130033354386972312470110076544426576235580906740377422403966280634969401681806572978800577722555776142561812913396394133136629189776222163212582897100084331495526506457788320058579701512247655015189849241799758584300738289688103205586662758824556851943157897553126189514019573187108139340853485679113129060700557997972589519742843644370730520714393097332084860462843538749627630127716127500604606524456298009599895352013345345229976402633506696176435189930628775009988966207228606527107006420409064966393792350770362591309174770918973223311825741368484130028766913134720849077343826353024158735464457016685173463587162199722632673213375911054198813463973692733906962160544427643161101973663508662673000692265775829185650839099129495062188600757232645214952723583835249660222975629478772950051324640893969302310714833534379718017520569441732479554724694627452271570025020193104835223755469317636503290736785918263118862682492327663294853698969061101508372069928512103080001719186029380392932589471972312383484540217937003699290640267399695322182600707086667472132921305347224898508658900862132727735060528423688218732014841121376874135118810989444126743567147272143384757471937814815601275945161945416378758404595746403094665278651051928763633936992803593936307095633073262823132210335097538990972696815597342778059084722793373029177568872220148610664693551668241649626783067072768942363806015035388978218080302154370469279320165888886120979802712811010694608801616416692864587710035753404100871971083665663032575693508194134296360130496834183281662654894172902601400423134550711296861328361720907762939323987497213919751886713540674045069132397772910152570511861749857491168447492904874728302705858497969526965226132072250355100194008661567227822402024422041964528348678536383266017413829058478701313697411963870621190209161686012641042282406712554527574029303001863338290467518350016377858913454872678183722371349583461363715705363414819754346198492772383594903103881268795895971262070193638896429616664759420853339195858118495738670265807198426796723521391881416142826971303165847109232316634929530835068190374930238490820202492175348048481801057207951603804388971948780211488114300665565121014524580829815342308487950810255105083845025619845725497599184596500966901506784511021227822542519061986946046940603827947797390318198696807728511637368628325790302025718410131743100065329434379720605026037628458313312984915766185186469508628262737868809227672183073484771039351903218697524969428541380248395738713545907660653836418593827451534262149987977852872725034587277074663035676575871661887370307603914870689526945012181058444705785667264166355075098924928288025190779430574167285812293252267864603463864817671846543902249808503173611975855543587097203976673209614474544329698052427882151148129921722312374166831735150341360011805751842663304738172445158937889482804101450702777146485451726205924800664092537830816368296954034214195007589426467145405940785996834653615127633892802665205689337364529553128150255420383182590988777975210146182359076998140632187901967436238906185852309619501433917267621034872696677060965539371052037333184961461832374447851763014916184857952394281886656118660199107725686198452470337813925804385002919304843825529353361700685577017251301531106865130918121313972183898826900635570994653769568175842652914617835924183098469487812718822918933635397770067958752880298920473180364576457686742375970200086153021789375668680572631258170898819643101436358932421560093601108232496397513673787954566558816035119686335636653067509063904999102628806500447147800673732258260793440601675787639533091130105246352543262418751210990428793535890723071474127241243318811811433461710270468992460015973155649044201102302596832511984611787836706011479458323734911889705250780680345782632482114730509655442416909978473242366476425615072060853214408932739627604929485235105877660257462673869834491419210264925494235236703009660861737439828876688250514129731317737755234388397136074151452442107273260242082067272478920542180887114813346520811613354041445117879335348411614966809089321898539298935719196514177361163942117631807609948918566197870728686360187627982368767715573064385465939053630477340716193034025602655049784244384576635634549826691703388151895354616937672025216544730271455427560364705709268983842673455289706706605954739495834596945078243640582039930744468043276959070939178445378252328409459760740040581747523584807546904717950072401404079852438741944269810707765347798110925115763095986338237704043771632725982651892692860368571112204400374409184504578299001965194103780151760317321612705059947082289159309324300794157836855623279146235870618196824582928658821271416003353340779996941856416956251832664442138329479517051659396614418206805232667783629862572103010083277600525641886502447999936540617453822501876947580838456610498432078859170245229358784639099156648215083707026952886945908718651269461142353232459786875911463325839274580049283243454962696812261604129681670471766464068999032877650661501737543671719938741942634020378430955764976297617130205967884636707568258362656019274771521948666706627847585893868268841454791305248674820950915175056150957012857733698136153247320658636930525437394304238502388870588640611661799186526624978192308433182783920011360023424488499645416598723662679088546070394420526561298261968506325819413415753929758794976426363073842282144373052739539232857310295952885370816759830852520656165483501207022240974137287950235414700196188284839540505823836449178612470263874339157057772821294445012689611610378211119573601570370776992318222490764905216743093643057921517551554691698099011090243022277453033879913536398003501471952499867693670562141650338273385031408851707849347452411421901521749077277486840467928644266853176361566756108603610837679311629639351854149015074640295161492272923693312176345909321806244979932772619874026917538951772901637477897077618277351783074993872385098878599870329375866116810959262768810190028978127217840699271198433396983377980514415722725016387366623787282920141285866471535774620697836909888981174836149144770379382629082277835368581402459806007008243095798422817093353669012826763996700398770336419392808802922128552627844675396258041321294357423772950114031435597545546746776556926163275036847750406921711537949672685028364583707363964465706341896559979992468839066609089855826687060571125293011811001147121783465049002143548317199355503906650912925152826440001298751173229506921206724168591398405375384064031651046544534028164074109909693996828650811271990794758329755068990235081289193182335044649710323387007271500081365147181791054999968422878713182022084637739221051644823513123595914010093913830829535777832151376305877501798885816556244703182806971147528213810730125084353288419869380264593622247385206806675021713678468370914829073741517468704675411351656554412657713193797806977011626900186838722559137247497304854122141666135312131565414325928902091222699705924491933121333426867539541813402320934224948487259625768986232454652142846993513135815283526426387345546701827480158567089399021098785154281417835522739344250945911546280286274029769553658915920471145208466851881916417859604941902871735126427942985709550763502113291367676397333092487264054707751251608156976663532430879406608117603479721876059126671327914745847111148822062807165453865005305650078654424962016257473603457075329755984458927664801400337977845239485223876209097701862521338116140119246986993950949938276264903265191320843839454730258378037272802368289564107502280547616772781582568297934042708214943410403709661183939470044782156544153032198242053330734748174107272396379784295631865459933730453402104158703534964677224513859818059488704329977408164242214377992005416431722282132770252318886064148256390976904858593323206591732661888408687358233127041047704207805173783360450740228991109858795448534157883155919477148553695244265157596212932990627958120858402548899161252005414986257670616229224566497703563857663802167669191781945043158157019603978558201452555034674406829012189511486149120634514925471593420458054090943303958561816642716485908757242804134060638769787892790238818425845999870902445228295933375650382882275472627585954549386800686821025728856420349167257647985469749853746102971464703623659305692317169211768926149586803693332462643821202111003602012002437866345161657621430143715814524435938990497680205777281755511346688384074305565063601056476327439073839434474767801251231681312419040741640266551646546620075590564236374706070514034698193298737326040829142214162790670903977851756812489642961928196437316780574210457422151185498450347916368185133519400114659568004591744052023846954419822008546006199892535447041336342618371363613189407776168972516650898564875876400898558795646598967713438297977164813431536562307717408504962726467950630837489028602534193395128641107005998162370945057723800991526746296050513418245107697371035805657850190677835184221338209389058549511517053584122352900356343685658244673280916238836616226611923234240698635519809962734057071158959346792912127982540312633023950138716688127146662346046364458675053718161512661111524272558018839194500935824144235277871938854659656902243996019323537352706472871412340424213201421839573402200696891144863365809338114843890285491874239923232701092097541785673030152361168606164599368254434586702802376052707489884185737640919873442420896785747419919782725993300784185835622118298615138700082031527803511051199562034795520513016706340211138043822447597477010691793737678786856269435986336397568472323578063437135527001348439112946405850541851091371746992976076162451819173773203098468550279248068793124674662597294513330003594870308806071541796170463165124022172066270840474077240703806532537013757013941128615738237464065528162009683970615874070323467356384427675515004787444123148479758600257268910196639956938214103266509938984797289882583364030251017391643913515586362998196270591759205267166073203963013877033640338227481314358410831944980114008248300810405033996593496004784525399434621380810706951560495284663064446270082594602646572372247417719738787105748515243773167789436358823778049862806839156390330879300178169122434907281509410024250931286543273045974005205622349854457176797637965466068815198689073038348899469531186500747743933383551084879277162682066350974117969021057109988815869657220654560605095494749363162301603496569326980996169051823085578674519209579311407132776034578093453662303659568048836174937137275611562188156088423784736537289721023199833022773972226765472099021285879753204797152422123236170669874165689589499658930851492892653599090336282288844274055317455883214934960945010094936816169995386060016313397914531213911415244558542238327707248494278131687384852227645025147176874377270666600200043908166697121992456824364690743975126936096942612909852990448249307710479396532137977188926815552351750207494448470240111417211828994918270379720601295714309010533215341416162130663065358563199719601248355121023126337069384010779540697492163745751110249441518201735374245550256907465874484199323178669051574625912534142552155054453970208546391449736909469985494929948064484218872534565905105992439555950510385697343232929960327500732960495742246950803810930061497691154034860535447314898063871904391442546615479748205961952893328109151484626922437278667450106978616632042222116963050514704553076494987426027192643411873088393143019319286289096227457680584298699684262875231373304872323571624186860737277302670353082078749970680686789659164255594744036914984015417135234873429390017257716879779190567005258900660915096939072271820947685557993228859292352941079703426022709733666619556114984497613295512262716746747318451132908679482644382508549421166051161099097651021801301448634603373747464507996084724145999070745542425417773581267300953717611496180095457180736545256589605828977349647591652966379641412890219506228607658774095757711589851871054709572564445811759622691592912796992481681776868757793851169382913343023785974762183050376361509654872435526614878136640703723606303591888793588208993181396926979052409614907577995663055422024314805994900989881554849012815055366153199917339954946615465064661087663009094343123093752007231389835236395002969473896001662781301391650562400258046666146995170990968530767079107555186792442014952491459303084945204921375916301758544934604826001251512954812776805531855376656335071758921806560039218960130351827298744774599121036019310553964178824058924203324868291448586627060418443994256868956933898033883438048574611267675882066582998973734212735212127497671959967224755017326165831758341542025926656457253539544273660758148471053151019157338298356416371160177704700354120018170746479225347024433105950832566297617194336041599493637127184445908616612399740856797397462100788438164516906930828716142979476661822561228792408167682425783973590474288416574540245400293078430687702522600246967998888255004362487903085451071410728611778540962055935052288246983990833542142426063577943521511108813831096652151200747183994103729618597352958129404144879531458247409534657959800304064378040179732784863665359375140067018241985476668016959574617772063226587551560567869374593325986497539700999511346849390044698267404986474852852192789279511280850056736527619693616456226968574567460926754444848009668008433377689553570939616020472509673301323825728924483285089791930389690075731887087866344023487396351592557026350711449404682076431847254577858868599597373419574077527057700465202878201619930000092641358734984977695555246689078767422787303679006018067760369633797741592646022623404901406752041575929180615794257537429607309115045581370953403352592004261198112553664032411365617551843815848392558657235859630193539666144762605460989072426968539374911383302349575823034757284536174456350289449994261239417497816344824606159336763794803584995754517553568082836509801912807334168584660863695217461999987771267350271501828193752713120142380127727183408400833131388486701806379375504751434647742974865077794775951304802547265367853938325310735026187624252233741939429349630394293748221351786063366866323037978018762067642211743813935161467137834143058202422359681007739144580752237656576013149883656127136629019974076019046430962823838578771668612975003419299842814724049700427944538680322892064095061426758780506278975047441703762373849709123127589092972419042197501048987232628268448637155730241925910192025998083992892222612544488451869979764800937232816989113112061438794681996766838189929002642409301657770024640571680376156339289065660554054673925950075710800555824548041642277251724652911734030079655445540833979590878949282941002888196491605696931899715171146319351054043932271871715107126081446423329508404256551347175375294681523588565939276623826688762692832554016255972747493110419514925632364033734906433327077865208093491189772276875789526140685803026628667603505510586174635138449606230887617086162051151304010641126785447694151800883424667902006099969570108407463981251287881324470135202544030570038355667460776673789356975754589683803849542273565838692263174979701026133519812675994412729884492647476756442734785717315208588173956871269603429088951319218019032131560171150988954098452146076455545486518947033704025661274961433469913562359075370948180234648277551508659865592100307692162590618176584921661927592994996161950054396000813050393494005119335960883044914116893565375752581717684966017250347698285160120815375177283846955431512854911640126270612645948406000924637728243571096270721082908525277759564382532788764248748532982313766118166525456282566433545127036164112188818295085871367528737593599393726181871210615047287774294730586572393927052620010732688204194443363175988101633144737018933776528315292042411734755870763309503170414536738735241390317493966258803202319874491197944825232263463970014118631412967584488097104974407689071363303875385374053841616737262670517930295147900833964049406122743478928321538932538555583036824293736043713475556340623935751052052585460143952428041406875613126727538221931911353179927351154879402562531999324915312738948391170386611407667351850503683770781253061369249943462624074806728992801512892999359675492982470145229821680780836598089589339968948630755477377805200102127213240424532219749549460718078554673554461195284535405152906092538936807539618796379995020893713499220798626192358476207168134022152673877641663383491329258047331901043017891726721992156056428100085888821983086555280054153946509582540308740652545188603244316804456862525092079009481019266568431846770537439093124027791590741164754229084718019130313937667022468571732717048609057901009633068400993517828173502488761479530757340082227796641433195342866892067087849739030042290021087773576458918018853598335939530419063220200309038107847011599187945857506841461130818568786543741870490831785948176304529336173745432320597070524286691194475932415459310337116119973340525962561081027190892674899949678749727505967328614366990294887166446800618428765777238873336619797499328394442635170878258856942790328365075120984076649784126225855218444632329778653170110224866784074191817029134244678857844947145501676772575944650119214448820383515662499878136051311089383228698777494491789252574190659784789897998248633859563603816729302485862369652613825755841256021368588013970410294110789648162071981575339352416242394363027557609788045280174071651952701441194647937767589518469431282992819614427605361760728355786262978862004137217812573693074888578471750394838545110496211449000540404588757881406980063000459920931799336507524048306072379545000095445847316746113618263603901788911800532501408959130373005903693514568953461020337660720202033071925836221958310691671759946075511357424969599098715909296186709989114992148436058465558016011573515012879514598451066933460297750884726561916885070280141909643607378686981863939602656609886750897046742000141326239737485782009361808311012990559419147692731104118922007001701343846079595587465067165804178978186367406066868104066848217073159420253473258294592487140402572415179663505234246781523211806961420158985552097948220198720189810263193603796182879759915239101313784061110398255277754097427524542501291439048052450142224948255595532505003682816328835284271815407190638114553894275221657312540964929834480602513127269209545952697245845259148429439263856687262967949507123972165556027914725207439469985785921271106099651822510681766034299595345365885817216854833739135891205944991007866195117516816965088321975217394761335906536567996502477087996230138945415572941787753868656607962544103210196469785114133904097079546023486847681505852881250329625233868856720800101595785612262762110115256648672489348819765203915084348666686562330386706379824470318157796818359161141879578694199627110545218697423773999314215850673109988294166438225821532267699931460083766005544520659987939959335143762539884079989243109220589652987175584845276547774437301577775832292934835418976708429443706000682461085234159746424404090962061822673257596223070560870224579680750896384804928410484987480143577923193582993890601027482563163731914912202313251412657408402762234946327309335339900846530998387481496518153198765417983910900537525443961864549512365570672925522851774592540427024155105008379374521234870091653791560017158890570497339013764520909976983726303401844632915057633554234807359325363778633381323376308641127772387179910760229020453322971679123837046327648737822691280735623504794871669365947353877512907428072650971141093333354534176755959065117906908161215065153078267473313509193416294746156229828638888244120760461255168697919737902418646435373581996788485847880625028725543997788696536513116768371742345419920021193344868798406162211348812625842930183382104900646419710866753367263153270770094609215555422198027423187760647107761159854579513985958846794827621371688519473650664515023827281472097022880713809811413585928209075864797644746257020355580081918635800598167659835786571072962424715026526737966015556569003267515776916891997832140357418258055330164926289916458945487602305399508136897726233371239776483162324996425074691842399664291366772155356542312434371090254762491359559970464929179776347941027891363547755007255553376581021526158901148308110532500929741600653788217296014219444357889455415381678738137202058689758999876430325744713881888045565523525462572712255331895713284026794284004207502898261574036083263547499919118217220319978918708878943926434922539716337647690333945521512819325217224060488883199821223661287990285260115458749804633500362679915146670549782639607676931537868978180173719021372811219954779182011465379052093614727056284005752475180587918409607827125072271726357839150124779774298386718518305950371135667020788265904456684950218504198207217267373408148043394902665445162130844962895890160979626850149891855465652702737896414610159729462389184756150349983780563934944783289687658075480002049653177412308340711276477755373285974364028641757828255478152684895423985157949306171200581618214101988306338290097378913604446752394004793394476623443886327577807262208097073559884379138903470756737108000063947468640269450657363450214591641843113733564279478609038795224942385832970281130984927408512032347296096730641026203474915288478727770247619138834713292168827066061979789031159427696396329471270096104524643104807838219389779884101659676875157236520490206171814693849994690208524526280029125480668582806324566287470473931384173117702850887285227034461967708086445912494055149598736010058913038197998856372832304433552892175989810085016599341745527407713711164642825284952983692924664519143595243541784799529579759917125001315450734754943494401018130594758713064963131532525628393106720315428599350743641317402281745888703997018674233806262139651866597861785862336264093072595394012219340980090696104914835075305644011504383638440499801968321502980291809102751313015872432704355697240379506749246697175290435022360260138051322127716187793894036354290255149058098187654648649369391526552299236304819514636310713674528967784907970325356699046465314269918520434400634287968066753037875518399932439643149372289593825552806876828498915415460919543046909826764463237709372265579530858127153533858025620799091195201392292640258062015624255947965370558656140527736876697903501974201825514978647487615926857585918052513592356576280555529340998016861588375330276019193482309971101104108501156448391379786435647889601991369919756608233453977000151338360575353644166960100619003965631459806626869961707320560079444711068217131958542431631296670104764173392476372636898727325801879597789376261227452752891883256694300737930875254681427753787085192863577641884477997496789868355213006433631692152462043516124680383678219015711015694172541097928410911273742535161569595738401122748121182618714811839853402890323604623477606163060930589439325065642262768190000991114500586383423248128221622254400302305726460331101974679156982013993572294834909128113906757628706302521828764855427078561196551256631191754403612700558058193212259874642477721430796472130853772595601150382532273092250286913196870749140383351957491910708221856160318348907793770844817216088932708687771376323477492385437324585517775630419252197600417130537637114392672247428021806145543161382630634932349065621448075112443403729898190039917473592159774546851504832656323345346993765818025171214970861899625963181278135711702260522097257980676304082668289855020008236258832868324588031908742123673999686632200332058714706131889367340566492451847628898689049040275902831477542707211060003284477794445632887016352989503801256993502766709208259131834697606015646541328083792789825358580966759148706651374247825614004380014958111709747374482039994454634474081223652420697423121270969498901429830522743129282585404374622791013804620803507314155840517074680797305190612843144747973349024201043639968357104208261381752908005257976743069019394300605220428763416388205875450440269995178144441981581347832529872550801351550548392070282876658120190650017337846793362322681753047466822700361860314255806077785307573554699143376205353990912294386661336598014174214992255936837956288652614545152510539963559612976341643478133761015892127076347307364239071046638953214241073899953129950961291864794670535081107570833683754305567638715942960015041296833228861236304881364601940350679170904734215171006491974269297038351364502879856505924243920411122656519324509863022045407525277957352421204872611269398637766614998593056407844555643417806712450057919394485354530921970217563910016019205265528525536170384067797309648593455446728357002806452540833953809595554696900929670497513696350508060727074703565283018189515483600489675048273114118358126923655644911257669363070543377629090215303331414355709322522641312252631770013418890151736531589344444912490051199037317049533670959853215871783878360810308182203781600041772082768144553359599283319365385528901648826810380916768477600629615180471575179687232853269803255896267654403093062729756261524805080785674889472038867017460479422971778403302128883282666526876804944000540969366447667451720088135480598227121109003628243451125131110969250469589153150472995537074167524206091174009372991239155624145186422104970890724296277374204330280847714630164808282614877251522727773500411636737720387283159675383939646460927768142802789781368517973518690634326914346707056779134658076289718892871376511899441498098626847474697241699692134675066479659805046552828956924047189460963030448244812733072980707049177234642547210147640274202028071263446009938162842357137178422499829673234248360181148407600643718504111762416127420334866406915698874619847710650727847685105820800221807083012525463298303041209784530836668662427152780914053005470778362134117375531385749411707910973060076528225889497116794850665525568452487181145797773550395489500901797490391976793834885399961993639963312838326684684431314112510227200928565655707469844218131767485065532107537811485438438173882052693918947506674481968106380569407016887799776981558945535128395459889263612346598636506379302981137614087168292118534558770405774373012552613976849665764632690224147733529116652479460131483186591556031833816610772017238480574190824622111955927509778952697654344437888975000258330953278859899497382560048033595278955821285253500453858627858243335190553919698588451928276897848341265178987995762649264852210320854308742011855679474168424604000438982764871711549886396277994928014427158545872000028706728155524259562658825731214511687128736606538930699478735635112698430908873004480520523839415646575898761934992241265449207938539942268167248969970359184975958583731821738397292282661499161249268051439655150744850538365126131772747704956279307172291736536373885184542413691421427640885110795576708604106716763564333769913429395768295853598736695578126048106932001138527233394517250682638364005724378970715540958104776724250304131811971648730985355844961261166993483988630619715730039322248808547351225350320913911624841205130737008849549821704401195942789793001239508043024401407292127520165763255682849868315155568219350751095914352922551724689037290413231951964223171021768201849115142041415360265338982143461448798630345314191515040786065919917146954199564266033077377383826692882092831646374606730575141358770220937268962651165398704039359294108836552395050767180266035243992393180546010378066830681222745863864694215175304653211709821913380893017476646969223542432476597668650783246346683458575910782063683550987746409997677121297112061094355236527614382351159912833102946004097435705645467655386105178089410189639258180085110090081946360845155201363292917928125153448961318920237580461706596042172755124501557791311578375380562837298119788477626948612369206468512282959167687280498356062120175400553237890299241090214120458628506372044889411859903165447600390067271518830928027662203483472135471891397102892344261773499215028483728886347755358917663585845835998177005938315475900158633187594201778526042267051568407839770220557497399392478789547675035411852552529042809487749550000645680274175918728195206093926783022431553938648184037629947725585078579644595295351521269416797050866770131331862996589783524282231666094785824069185805425714043517065875306236119709832276978750248716808007556785080153620460188401507479415306380736112681119625949340037517001961049788535327347317845571418427984350393542454350459889797716444188018726406610733434661524876047158080610046961979306039733619687082751940293268725379383984999283789258635421999833160402689191406620547206198404886475332592122461666780963732495933224391494864549791451456444853736365370219943952026192416937305048879154413665225445348915146565848957210746565584043764355922482274050248134526734107310872877561285829653742928747037204234585835362257607123435097237466726821362334086313990573143686714499081801542841713951947045093025111630539110009508051067324258178805260383175236557310669873694905677879316622011963038633105142504871465288852325464211291002864378232012540425086305207011367114346592012876730678907596526917209492114936155003470401337020145554204394657858269251560400662587544889809000922246182189495356596414110608766700583861608254731390803765849220197960464141683453403248185387360100828193037167009371360235484048408790960026043434891249988421262348931428110323420721670857278664085612730079431894852604940056885804775094022807067664856662841806378626684672530745146863251661284201658152069178492794515855832551273665158084025795251858773022912597462937419917049899907872418185795557673757728611184081023246931463977896358816645426609022665657236117076616130448197508613102736306327168570136573083148798638565393543731909904227041135597020411386070887684000937284699450956099160974260392893926767201414958978211275089511776676259037623600826431936455191602491980032089567660180951665359835164387934850803753334292724882090172053319877856412029364249952591050226229272305725206802014690241719404481147492215968630527220812577541692342947480794685712559500749193150190893397415060185377661939928656947199550810325551340688790568561342422117249809369983560227698692033837954282842535732159594948520908383273017158568466448667514915273165950133013356403469884349366303414448393253458760320988091282115753824625184394229813389205651963150065767422762920169442626853149102997613394286238198280639527191402644076288757346584329167982221227012893484366676410444302751803408850898745370136230550051976782038315448101126002386191075575195498861913668223692825623989111455198234543440796361275331591867029444356663557242902077442732169864762111393394963584970419117530207606366892300486730242170298113105000865935631230409514203657141054578058446730815454033272654618462429571631951204520135751926484003777672248567369212093424167923847463322475972730873167708709659629775876202444816863717087642579677303560238823476555990170949313765860324468764206600910142166371119935863388380389313549412215509691584415661571565269501860644140128371399534674943163195040092703691207689828374651513335020261431267219683784247281793700945581037190119709967939839323726636280253600828282669590463385356256192049942402580734097563817397356039215512549981400599275901974068752104725003706861724992401612352814239520113639375692989773212598315760946439163391754871958509128150840900421239786768856088753217016142616364321673239717287480859469335170452407449804657075599077094729417123270883307149833083852540417929129601098984913783800708746622800953297094961075265871048463179782497765578369130323494157574383615033231866290661452570140404664816632621908050169803030073541039926442754732162896646189485469543530899743367479033542528988695229043122910431109645869774683422524348827754615265774187759781213698439773216631431177760932559840861923781306879887998014463432626229335068989270593368857031547048423865171756939971872974692233519408801201353872739237439352436377139090640560211338274643450183302600165973149388127405766412894643615412107011167096438281864576452733927051311224823360789326698026276244057404864597237688061647961246016298574819423945224964194683720405730900168588310391193792668579130384776551895803128212149996710485268591540987248101693512648469882514698641284963703388096044071101628307863271719513487431275717972051441027236465837798821664684731256961411654933152245867119215798037636437659407956666452190616084165343976748600913259247177547490024735733465671098406721872413791032936925497500142768832597131722475857657155616966849660362239922518971786803746996199592321700605127037494902369402832402716432176267963559971781534224846775511281126628438119380606799738137247148067545463123618539243816486602455875703145246759479631788687512237883931135671514208152332536596063063849111633459324451783746445722658412116469001240210238504762813444583708860367042804289047293523094765182402716922132591527708521363485545747013912418485495683188509967639179235523860477726921503478680077066438130484682143108854514283170657977653122318087391283861155300559485834920013611261277275660199034855217067929103297022427974427814628307514933446350740194791073736162798836913218955151585395204323887662317102820280630217095793932632820771799827469855766111773821222177105553131789873012092962567354632416075417023596526064610315209954771301753786598782078956066808391421508206016664335638665651759681797220386522572075975448327009370169665723222772803858761715381295138272358768025083280378035979173260034753454518617055517642914324410949724064554601779201824809361765836950178025946153572151209285966161870478788083534447733524227250697839574028104719234151780069085987615468482764255596691134194239407298129238267991764065941863235704857500564282776195612581923058997145265227123832104398506402486892680365270221728334638652766229101919511799535983652354772889798868343103908964919779390993791445429803977296648521305852960151355901193844666087962800746291493841058561927874830937902285800339092156923811190504696490115507745772660379314075986753067627609570120060199574567654912695508997316381278052674474545029250810045607202576156636796932611073614949355831509581738605705989402832998218818465000600756116812312508751453348487832716105322567114987732465285144592100184218438623221142371013524798509171230052101089301135723718706188378671443124811984104997391221595529204110071315211821400068280978903818059849319311598638078884726768088858170082482319342179410276847645313458563530603044809972278740351121594366795334844361416943694287908986553072998539277155104885881313483869186077481110783238885784708541734485076304282650784218090954854179400460413840676276913336165618122924851323462554354010016493750602547982120232714864570234297435880994347215475519541819369359811217359431156514524707955170607477086095326780022615548031624229002033892212334150133403816182978146718798910338132194363088690484207956613320443920216647810710577125600180942844348879985566981752188244350672120456298509259446022195807599496634879526298048628346183506522563044042762338963874748232469933988634955473042520612752488341373644392376700802552913444266388525312284940433934921459017910178090203513824251221734883750312078799005439671615440524666336600307337463756595649519532168734705660477867483292650324729588667036168093310135277665075622164480640268888410866514420356866115301529453563149479528105035964255856938734163592822771240584838226875226835146551345943075100110116985608445932290200496163860697835726832516054741051728734692633302392988812099207611367854005384564944638591350050420233530710545159636365064679934200739587941013719391535905002092228654547258554593080302615319416122739027272627414370907839564687938551431202521696084397835601116861838998958216874329802757217170863727698092121604921027825576825737928865045581812116258468950249771934121819246936056965210265492602854518879668943912381567348458581942274117887484894289006432614551042781407646221093578092103896232555201917797591078922055578528710974415892104518610519926178568664262296315852206896157856291645598948536643046121685162479331352069518916042507441087950611268284377927367696623363718422460562274760837909715771557164040391955233645035946716975582577552996572930647368028070001675849398372664271212568991768516394654210885599091855205925984220072531184253154655448359096066734943365641245134517366079486561685163907790763764612508646142467349716706784307669021665477054132905161826305209079170723568347141414352931626306338982793014009281037691333733862344485335481311831682791458309487594305948412901672540006513875561008574791338086530579038665530477649251449413873667758301779406723475065353640709465472853248551250076325017266960486227530044978465650125079099861540544401183464976178267449346606320562879766274459113164906606009627172191492661743549803921150450127369013814199105041313951216263141168665844631958535027960118565245436395971739260278611447466615681671293840546161218848508210130784251253626326549652652482298445591402344599495838048612466963308680606897086360238645536191194433792480577867233584267260666132671669089152215823850229408075694360682599818611278169708245210964284277281012249032183965341201909073165046500774734589546226626552925087620552401546252879631146033385187014244935293211529874252321431853597204705999663854085818861362857692854119204569977669274389413959701619197949474336429668380862179434244741530024091788204324886152401743346858341213211635526943994405842749812195085097554322890060584995832428602965772079455402884771654041415839539160081528236269826641578918767498134997700240250200385230053888047847275960650007134016593684985914107443711055342921913858952012006908433935359846559276528909309870853736459634007333657423726816557847088941087254256840953414538473576698222255697761246767939593515869602078638042679432328903154796233575757184785462098133917424582301625339084292944489331666118841880008144530011766307700334621968180582568683959073161030155011296166876536883259165076457505691036126133694757292385955742344318159623651942500023502280754076328974995118826527959916861144507546192203682788112133565332631605498956310867302817434013531606996999525629682137051873394407646193457632691975815647669023400769596125762718056724745935217820338637140352867112625472726728991311914347968324961574032747877513664313108929600005218426503892720061776706804414720416104268413432574655986808155022976146657407343984396939428877698356122631095432090541502598224773094179745540527359988822329784650816887792518452595479116675565616737285121972028916150844404132397263888779060393749953599584805796065089484798168749117928310977962989831386285554898870383285647731991037793140538369638650895921448635896297052312772628924954630869065677493393998120919898767736704400632694922771510976459137373054135819158005642272392960051245162044686709770583900255902683235834185790420286150297104032997510689363405721206801945516302581840559095392305560565471536771679396619473888036475466289084635945091308278901096523944475763628626271472311632878225179931671847463712327487131559252275244621439484205673468926673550317139611087571912125562260822466756762531766566835536866857309469181959727864185791527585439148069077616283713824513384999906635697337106307038766895114490761379201222397983821155071399480486488354999166022286868469787526062612306824013529098700488763822788957710681633372639991380614488385328424438050173655572097800878508125754050811598586595200878576844883096643571969185078494797876951362501264933945338201754559977527551996019932090893369453165215153180099685599805313759997449005004584396376220204156191829859480379459067659678851087219259079855932297507178506970671484169738884005369465888797216244411128857510663626216059917437009441800638292008933923202358971927305085213944903836635715235283504073918620140509674567180554989186211378745642027816187939355110011911180031220531272688420732211965930418107190992111969347853125748768248249464747416439315190171881647795354525509020885545995425213205925724685049051782706407070922071255589987101403122940264294151613322956383976431752225337109437317717558597711678916809226315406447824229612849753468356880276859477659757303227332433470096596623250193198187676350397613643797128224026351206724411772132408127941113232273206792861474574996605104432578626422453526071310263250029106033341303187412729180223228965769148034807506024195644609197399698981419475276013005642597608220211752034539835334362172129842993767782836715317127218832241583436294326239353234348698090934293904778198152026344722580801018840177099668526889889152820425209967599870673415593557416521950881490673247846832177289757142543817242173918493611142833480884165798803526823546446800881780180765773839931689352587376049943470976544121173729442905391155225250729044953555946710350837702074695660511200708062492814321083840659510155685344469590748892604978653408559509103210167472039746333771582124735425014363208071447008381115682901728414712310646893947025032055352510600100603294478738234890724576555394036446876318102669057822681816407176516168978245573481775481563431125480254810156350829102875278318413130079982274265524799119254161080971674762690022776714913897523704124255021544245575328373562752429980705529051186082832797540433862588796995117392308559883390151243512287407698785627966745189143761373825282540239788309233950300134979646827821951249197817868593601220389453667028150665965418491756994752032800066694879891053076704063837195961573821042327232210712692551281019562244309323667706917103845069814685797276283714960174407730680553876753214771414934283888653252785742032108825008303545457344115552979350166213386734334503362311734324534770201100963737264706284692815552116006121962585609660587000651136453183497126668377257332065274711126818245383812532997975547313805714484642530483994151249691728262484678991113484394934435312010744876873972539084864035004005630683365453850602780926266647186470345105071969914000902425488914592252202539955641839346500308201245258581853789635671764518964028540130325488171671155806083723759711111708761502764323141687580589077938594297736186399755902457643922213720463017766287116417640477597754033303892931767425526875713024190558079236888144598607959250657127052253293194227993170363148069678224894828082968235107117697819389295054857240654485228605282899086161534171389171591308332940913326132852600201276583599174377069946690600291359989841115997271784814974301349165351914287877586742481170660572982617500152694317009964404995317653259153910097903352777025631329697857847481936444719884540784898426413637847410187206328244463448746459003737888540651643702368210308443528759536889260381037673292601209593787000300853843126504592570103269734635403568837134437418517838627267822091091465026567948286877614745610751206673020546369409002729099074319815998590922784986009646084349192070112469717118674848683266671773215647834915362459361141681102578240187634094553892781531351062593689306487992930932147556257878090492781236401257852528677375469231132551340885018978876492835707840102798530298949187561125886680337100608416081331038547417903934732390785947264786716215067870735292593965394478038580435059334103272238288063468660507470515895223545430143507759490596062499283092217804268504076891215736125157819542087906436592824876372671013054446115188407653350644757320309082740159985581224213977099251851298613067379443063502751381231728010661094960919555711451342482487738385906515634846682853302056173873947777843482684374517066569163484734523330800971353402790896468625953814998489018241974291931055055951796567815783434313473083771405187311556734042127757152338264641783053267915937747481462015918475450060028110803797608319794070610744935332526581912737967580353718857471204553182590751460510348593892215909469842468970036473238156727561249379723512646433696760224332329314642398190584516587381296966939718612779893392316133096642071607917836119616850570227528338249800851720682861743438484708970788541710933290286647982322464710774317073278695763811397767503495677795775189690543346058833992045533692138416652106820002789751737399431994454357020751461131819163510103078153463589375568865853058891567253852993924719828257006758458838239477377802377042834113027691660209024619597614326289613123107000269674768678762567669062914601640628597395868201703124583637732308207071231292552565309306287620440800588408425358361610744189096306861010576979116311189905116868741260456809744978881166811377685898353034647589300227297894834038754153829151112847927209721526573987050441781976652696094530558967877118383530615538885876360781868376992837336029276029083638806829740541024629283242340588395009077341200186793948181926582232375384009464006453881512507133273632742725779436854634905615941544108286272027416200770353808903791268624399305039842504417109744139476085199656524432513762821865638521021456838573841041670848011726276618220518058061202516779192472031777015367437053329331465295716795494804473072302667893291356591227101805439081956369667048396131268808851015640968512132901997929325124116335640900528429686031087764144569093693323559076108582346963613990657950041596597960918616416039974868200210981647873994717812171168776172035299186847404310060273333188394111991034802891216806797550507755431185249588589764332955494225774257775056629695286765951985575570982827071489404191174056846812173518514297642987087843228053105926886775517704401194797506797536233046938093130915753416366854385215223387243774666782820791122644388299960620261730538316184295075632475182870657241335914348526965226864357646012286774839867234361671846122102123054733342370539917450699211569970484218135215220083144372598906826555543909507505399505008839991832150948934580056973924631104923645598601042373382863705955648563676367297638872988091624695701903765640911379736645144522696587730541433522785094872135290077516549270420659377507226002487313141496326316587912464755948476118690554673697267775405871049268239696445277407664746158691526218732177163484399082030455185372562967075305709623490492121618127959351688402247431477284121915488692627701260576144322942430195619797283850322394021184764995709497067482586787695758200289132479549999567458708914285856534926321215064008993652653533788754127715122064370091847247908099069225245565550836036675296598621184510710023520816953360534705927066320452299824600712961511464520384449717223283375262270815868042200777636089695750658252586218818770520315682284584212192252567845314674246349874015610543492667905176052666856127968611434241151732420533435494089206939066722227662912336813661692183790234347068186123822337839382143508615753378974833646994672389542786575457769827451502693809082188168426366651219338433924310841782085216900754691859767054479023332819659530842899609542514783649435519010820571298773751033939326492774975491657935798345513321857055488888436332508714567756454932929086162539554487618871730644890179698028091633858041521650106484531680970665395878520258607865440549805933081069559508900794409380909983883477456475211675863838199965518482716211318640845879509276683101494187060946349866216932300596486464573384071070305654647669283410200803330697222462760206090339281677528607732748201326462127606675543000005537094184054855777474001058679792255681422573633455256958145600443895812106386322657542490427885121427655761340966551579470292963403237282305533434554178829605886820661487252555613773004473204607228647160182217528934953287398321436291932550744972148539219619302886108388584255151156508111776491814388370684006574190029397259066132704255925476476133721600550232244744034673976820940768161607176794179523337115124221870127388045959094743287998171509722008490082515462594732024671856431763343696996973871721746236065838107617095600462927835764618288040313336056861129876738455411025951472629898493986050084165664984635005302582126477131834167722224459897170813644370088282935307529221127378026266195865408469337242525553033235460879379786655604023889681790178194196972641750172801402535057824417250841112481920426118932086960862827725966784441210873073597035747323115106839091399999733640346136842420898744002651999551333530648699000940225646253503321424615314574715549418786077799383036738543851736874000189351677366119917614146033371879615580725319714710878287359140756853600522488967047783309800131541690798196452295140654776835036934504573938427559422181027459439042331802684104466237752875269682069960341626182866858307707728795056001422596942962464712374535800008118670675827659813879333162830465814307981538206440303990839352458081309843254370823787993968651867936437240633636724388734538866837714816728836352042726007452724299689082275060177443285947699261411850780233129833131940527771654777436072523839764353755584252173266183396375642354767438135029865284279260727032623360128075816096852313650900607367672367808126971852824505097294263216045391248565868542197708552282846803844913238715550856987756413126846395693671357274292314496620454117916098746670345941782854863242373156061280611050994504645632374070895198187747380291133149546596042941998037447328567884714227115901038799531776770893334178717908055505249857373728295719455893104023453038984317315677943513633643662218229939780628045350958719549054123261987432716748373322386542636751922113553769058211739216037880228071826945434349822072695503145241830193301215305833524807166178953842807686395648037176191052137947157810538902456834383096813982925859480521010340897097666016061248373537497892031569643811745930492624423610979826163033345208315904375316759690068928331520159948481540291399272027326272640227328994228545393583928873461862931070916821941350201163333767105026940409185980542714593139235672526126008349780760187497114699673498996351841691664935772727773738267398426806666486648457074285742855888907493250461887186652977260289580355593441989874504268600307828585799954481143528571004629057610940782301064367408941127971590174103044002400708930696043912603129011664983525111470694237810102441274137087943613495670651299570345055439439324289433211555309001615523710061074026759649316497141627776571849169921910748615500575215075142977522242211629253048396475801838689241251722541958700578194708538483993531070097420437271773646778006774153607817966294729474474419354611332616027430788842630223469953176341338957506643992619916039095701025310880608970970786479842134914778940108200228310395245909531717660268730619314411972710306154744931229032178826169257597730831529061291922856499524312916574660848208502983134260157073822299526257831631038352361639688462679244075705693130283442534335988233922707894069308480607969299324843076524324994601611342686848656614426039586533816886645513189414033599281343235368267017475627582967961086085380611363146592922243270300224649769091454064745258858946464120880808932577805795487533106005509241269938443725434376697366096536165058445272638931983076094762116773995513388239925012517258105690664019410072238422625119277367280717180764324389300031026288295726403794701874319171812607292983775347826290424390908067599472897941455661422710649988043272534928038646515687659813480503981707178324372300064539785864450043453274641555664550905022767678042818743564730132461789192839767799266571022060280115997603566442124334604395004645875051815724406673860736442584409781111311642435295811553365453000213980807408608273038274322814636455498651520342696196143375913952367415168650432134822003295296606926724448833406837964738158309229844161817914254768471856628960911664012332493361680101252109563233096257981654732616724297850789143776271699535684913138690974004861057975856445019278771844612577453743635154813183105960202034069870116705077558840088339486196271554637699120883045318636354835886402999400409473695308135570090861670491048028877047100165410114837579622054740286773272813287426699526720475309888383907178722264363613511530176926827138924667816872536917125962980277871956738850994175247450472851111828208084239336540695516414599844295360210999642243454422791030753943433960086078886072476906670819434879664869390192090809174655549346532120939334832436814035293562186945795555152872977892859988669489052622638233469894013948935960729406623830227670066182119332675101169707656869355187767882746417983202588927208481698798554827880988516615081856451242018379460603255768187624132672431430133737701579127625781959044089102089715020020187971453840350687141819591574466509581617913619057421955586061969221025996705196428114279066233972299632743554112319391511559676796480136705966633489320700371009726067468771704442024163206922394583830536786012591826806714551032157184404662562915714293574941873766512234728051495405628434780323084138581247222878147934988227500355010111084355474416357078584537998938089531891708251798395850855793744831619521221068493318249735182921955439465833004628172033761605439863123537978848548574644869808569371855303312409028934909850670517616677459991764494916728556166242028629894969853413760091082671047726242293878320093000517881549427664580041656795505250208981002784811697949345022948210639269924416819732482696028229702810231189466438554546650669829445810424283764581646992270246606331679390140562313116510543451904874170107342947409552154378037003234382944370906415936123257423255245046764523310212531139930466108712399361042954690623610001105807468466576475428890151571333685114181929749011992688953857373676851577031222509087118485747458828294746733930441546601991662382263198852161400949869467978284244715151999255898894393958125752094969190687366297852240764062589599663746342531265699344658459141164521749433219458946786682159033977386637022248096124562459310892530014499725337034469560203142740675041630397528826307001253712975003722726490177102884526085369499298918437599935148135676058682879762065471985368231331893940368383686226666305509127589455528803751135738877142629999778611374625316919482767145693579086309940233029138952001172519761434942820031053358249390403981055792415969600910574015524121499596631416391568059641931816296912877510923040272538741084144167595515805584829281930301829212497379762352164902180244832876089108740676179025279909185207997038969970690991294618877355070604572134348044124995728010192457868186076630998324925212972847459886778191896529683377730967478048722342006255893191744293038177350790765747577642447384338387077904383903980729497618363251386031193066189718812887936767941412662291586372967500535737132852426300817060519007828305331695525026470519264055628791054432132731169460873487513125645024491540971306938803252516762020026317914477096311762128847229745026755117543055203145352986090083198884976451887248724062445347890421969379219669547060376300158611860165586696332050792478725156016866066703168113514922374526253145733360601601714202628536532333637493774001655885218700159937513797378711009117288536729973276022664040244172714888669146653082517178820926210248905206582016995514672714360926972696820531765418800292295980892534914282601644559533396308152766007357137679712907802160447930201143249644527259705499869010095433733464355455097242077533954685634434018052776402474327110183962714548144651477521027249928243614225069598093416389456695468095479261743321762095983193627688950095800836682544998691535894733383579512741460355741484548351239189707887056728918954788038524007901287515014382416086708998287334417045168209300199764868667154686863515844862294745315105011986268674822364120413885395529220786280280939935083845575039273144305652001699520315466411386992588748700726190261894845933268442317646379141682723973345043276353372072982026795086447533159822156813478474412252187101111939517169983513010903683366289704774450338998206061750377661085671764992223691631120707625062869987700223490819945558668418016319326353000220685344346609061005786417436662464461468929667794617358557466702765895541404112907984480029324153513923777231217587377338794868840558755048173689753875596313153063623652104647352238673244445952723390194275544634400203129753842597605349541660685770096287612583272632630797057362728009781225403212413539770297310159858208924829856266336363507800401694094631554846186244428741995017865853018122568221854858586559821993955449125221246715765076527167763272815098649425964381471343820729175821709578490818090461193227679203291019527157303099285076382507151136508545539102776563184340138016827270586744808238837618023988104865465804925754194544216340065154324730770786208051045138931471324073229046981087124359005848674272076343003719720873756635220461494294484689984897817531497395529279127690914741980557480381147897623202866595349214937354658957035928345325150971625320755518294675296953737795109379020087317050688149326715928401521284773562605724795198932341933878164353288634191910888214941126521216112075108987734294498382395199409736747575112224046327009488976514967866971202818458282074243385850673964514036278301199029763934483317383189872886834318280279689953454347745255620582794022190903533936849703137078176597502461604987802488760857317444996706751259289329780152477642080970608232769024034836951804739798767816920745622933826640682558682080744732842725939269104923212401642387430977631930311168024988786837272904452264716348200343035660567921030749525715702816160075568794296799913845217650001678555223185201381297777838262678954078312485363380412905031417531697162179725448084319633208465416253468024667313147026858996286547988465073265855728828680973424413602901271371425288153480139956655697545871076347658363493742835431029565583523446096647106229979331795579169808373785406699390993918689378477685331160842562982737614516359584481804669332231447603905771314911652309985348170091266584852220594656095795742785213493749902617471769728638429215098090546881670603775277146117499687110030855257766049248465135003698132448855365701416063785567266886099396717883500543712601911443177553755998260863137329808905866240013778662792225654561800415161448434306271311594199602407078496776845562995666099908730331614374191808083594481013280607274340981442088544224096691605320061806777805480800602318931929947951189838587604816511687711250520883289275615391562640851303581974422768290972980907997717720367953765403833102373598135954951216011433219411258561973689964844442086833810982720919427406372875229462937548663067135573912236124389729812394503860094171846805684914565179358561874912005075192242276076969452273949528377229439976354867408404678211501694473396513471362874317920314819934735015945597855288205174552190961889711836196942744311982964855747166990930653597428186653127549151205296162766986312869757478615296510077793508634965888249819417224531571680612675426743337533128436098479625183117464211668527200532185203102895959287387278075880452097611036286298516589096262166690905367456627540820729785981106809226628088689163917083452336165067993402325054265296199354848588697703675423873949457371998335803605158190245579403688636174248841125037656190272188695399191307465155886838883533745084126496247722225420650386745039541985819899214462590970935371920123990273549498536901256689186646178025545784931288902950629145106850944654448684212972078882502720712540805083407495426188874970622174309757267384785246413924958130403419231155585264065825250674927455340916657399996658215707585927612959703884350579096192902806766214825556987905119461063440201834653333259848742650140618390912835774403493960941327970323294721677092674434359981618165393217532503519625793236477914735643902609571239929359654449071124166243821815213806033919932505107366507573074215489785266731130607547440272297901087713356971902074260916151217289959926295437789830705518536250406992375144734701682089263792034058535408822049918992996004744618986998247728252292649461493287459921281010043445667860070353824868469585547496647217060381540054518778712850486748361081450977583211539035725658420237583265079258529321098169204554017528757070155655148606330937276022221119333727497145837689171624679589419776520163100737427793404335994043144414540184297979034165501703504637602909542369795457344495902378567331377201136870389913175387804709756936174723074060681365957586304046988676583697584922217599131102036268075885211982849967055023798792657351957146949970335900865211478432813138040540323955780111111950485582501854312345050784630756392651027643586296542763865305372604397572615127445320711009568879316968163119925481719552508083007370230954813380716433306093460671300616958662352378660928172158524534134614517071694469993802566610471737728909675763041887091098787438061806002326575555054395596917111036952449192392217406024778077589062823153577176809234576836765982082273900005723828922912525688620194460914288261617591416099857962135364068778787130463694174322468706136094421311588593884303616412853116262014537108745367591211022181539281020292522339900308199570908000288639086831639453087477046021694259860335395078059848674191907909203399054484789374703710067653680288882577796250280963279188683843945120301883449039807407926989809531439075341126091400802691355352358097741670519767265813356554713490893852413457520395482168087787363466116839904583650687050475820952437765160170638959684785370340125425013211884205899180530276052985733856163063578298966685621824213043620667196997126143692778518617655513518256915028487467243441822040481070496497450390222476801465261807015420135114221253416351951902411277508825636613452163798022637404213363400533902266401581770692391053183331495514110084735458336687861677661061182905035097206684600322424147534393471316574867196111909673540418026204593794540151098469194704098544688042225472159501255012196218328612653207201527881794341692241736296239404480949038186462265214542462502925493816928392268145823600664664191033722275902629857758781276653964270680108300320279351405972463866503557632622502312305620525567260834948604811258468716703613909730826317636314811964436726072084899638558217778456720993859613481552137420972234731851883944663877985565840000811670022221184727329749120995417442270884091757067581552542080495047409886577662854392816320508831887505286891626232640318478410065200649251596716468982583631096217184233610263095028449400989070063191373908889606600239166833596676291612663531470709297983813544231046047486355921311422403169851703544009510931308801339755251353889866951005538949176036822322337188842179476292217869607727885599913298614554218422661743194623272435029631072603271435687390521398090829786101381287380578285921665023986734620394788135851565324845845583429112423445663077994996074743561444968589909406331201876444991515235895178382460559205240160725870932507167314718296355790317760473723235467327722523330400628446112624510348008687817164829865563073616265393434844728932164640159090228623473876769355048183325706165051970533484721237903197562965797315639199031991095923214345465370688866385326778646642949658678057741879987012957645525605172914665526045930743524446773565406528115918953397094623190684663495339140758273042119572247119801664861253475734762127605159007829793673319581222995822594836429463067476172423769329360901430965719933406102227554443652796216604212998783130177010990297736585006248973072016508394736095136227510151095964373305447810476204717443105060624484287889488919001758523806178647462437171424256085267614387298751130009797478867022080004546007501947512233256730421460458348650595594056699537301403356947588900114752839151217936043449818230586797874042361984245466634316045436459319005696018094053548244138765124896688740522467613800582653573402809090598538752406560686471714823495572293133642578486006183853240564243823111311671086131892949901670132167133184363710156485030551835550729205428917901450654907144140335714138441458941056148534909410194644261953391067843280356135227523583083644334776067259129642941754119773167040033621682315007105091200940056154783859562814008846889602389265858860553696413097425674431492034928139242991262890184511174647204959602284292015402100452687450082215683415644843077191060886277461984415362094104107932625347952421052699798068719167653299804284463668125871800824104837273906609365315697354543331399664564053013058525609337654312749123834865038670950619305917575045068477408011093587494795873848851827387286180282566230227693369681084863856808823472615187681142376116776726962809032102510986817368060142707297212024950639221228359807862935981003870391539233599444018258467750305048884878891096749264449975989323162920832770142496169224761372723917124792237403390521630113154722205708667685649340009647833286363328881453548797625232343743204112830456142122347829655203282151683871999177801185687045652606705583567693219508358620866629531050374758910623599259024010318102979148020539232224672911490754136850608680828742275248159819634942853917400495132169820062337786809681925951532749782954084984564420342630453404482324219843886198378510542217062192851312373552491507956836503225197501397478939292704584483480769893526116554148816588634025057182296759694716907699024307506163351770478778267722193951248574180603966263722635336882627922599427609228613448066661915593677720645740128816938926165973594335755899190171368293158900751497785285192339437119881059892284154625383030745450125629958045266209164544071093476642604380423286213769253823559752401162020433579787140010074628240326396265662753182733916094162287025105929064843314279032370668909984656666526817232665503143600455568522090681959999448564694638411009121030963081521099591859498735951794749578002762039979710747294220813027115049822467816948703887653076694410296586746197394389664376731255105164664641769208486031272128758164283911367167056802893207507008847912308370680268600996896609937517698545293334484177999170656357058720272085889710877400269854266555702940113036785011815704298792967289984947692199639315413809108252066270646441818989949751927366223875643824577031778287164514201103546841376204231317719719355158886522945541922873360324206188875635019044127397793558614319022548623217926631974214127676674624538126307557535573041842221453871918989623496089498196626184426179768894758833528327590808959410939101628322197327547341137321976700941634222776387690767318749000047298444889539697214133148143853628355726957089804115230923171035859133526538822208147639976525764828119036444635216234057434630861895151730466877488642753566786877997889950478747385972296142487414040501750444324748771546945723530504154414903779021573252042634986214116855386459203580323579044700215733201543320718905539001778766849552331756290557082162111417310111920849021276048706703897750115858319858637120096204105830236268515929953956873363165204886188918936234249613793022543329487710974726505960545967647505356847307093092762759145007388151702866262743243675020716355115008557242929263348249320158964933018055375685060304298172530224470190507984327798673320139877332070818936124484725464232335454385977852425688956503830855061442961892919032224921315422902252518701048240320023045225029596569882822097339275848047070852290905305453056346312311626966812115134642518599416298334561662242667087226957101435203276712876761364021710058752699062823772504238232261106011099159528050217539711842912587667329926900934662422353272857854094953308235506814839914618661453257631977800123838382521875920511878776359741671844208122870115880529247046812054582096828433269936030133918461996716726269212394581136975769510770870359729485252737393418693455424175721561051115683943443147380282164625342691382666991361436566053449971646035896776161057943944303105518409818310399445492994888979915537778444379804337604158797179438710304480824464957289583862786403426433879886310416459887630017520968747280611531639914518561794081880688784312449653617475667224259328935367158767010451493556581101453340484675913686994295454675481909094479201637400376537700824347117213861035571132555025080572173530686045130787764444097652275528552709134045223213789543219184019391555091118037557810237363355889738366012737911137847393731648341531789817362820825360764938874408934256114019698601246055722021198384255178621359920606402139626553144914063528750754167433854985472111883748487155800651091861148225331647624690097721277802584661123724446133296041044629955432013918108499298398349791417179092901067629143615734021235534298429985811238858417274314011702109201059539724995756608204119316566169042095451234158283653397326729427304134070824262704529655612468260652924381580682096061617184345227997793995599374494056853050782081194418278785226538857387192052168155755081350671420071039494913424730167826594431132549573422887966810546225856153550806393243304555669409639843393310958152751493453385249017612029163994191028733446482844907082937653821680737591396632408128771458201186702722967829318902141496911722411818828171781757483989347233412220287668437507503251874487085928983123510493757691451641353125562944213702522853339957238137639971388343377889503956869666278021250285827264452166225975050710859516127727043034547406487028282230486457927118257650517106127478952193246709928816536491012129677977408339140561319125817933555381634425201783473607159168952408343261192656380858534340201310411472665916683853989785736360666427998645469678615060062293000257593157427274244143666197214359837516376351807656503265280806203377397262491620717809895745843273630175724807262471618642004949752734029887249043370715998268092600901155651810245885705840397821510214128374719787063760848014243805669046968460694295462670670059618692653838647317611285109323675115328071746623948194735308746716635519045191479953755590955082009508171181801354927448910251783364896341772419259709838125820355351504722728848159684440377423766637345274940431105085706396326373578926225328152118978011698906996917445240916899081382104304733332279963489004023788306699658021670063783943064129222964802323833271083577653696489465078007774939230252766872182479260038550520618440647697381895337176623537828132986901135727170424900558503873524347320096668081924531512933137090069629396792623131728889565867917741882651908876749997069743968180454009617240770986916403118856120996253039912401446250044004420813643176940829952602962825558444723381084690442004162685148437575645658027332390997907766416290244763955092237716021955907090534662691644551515036939774943225927234478731359071621776490944854399564856129141768197496464252225069224538297810517794433194614342385115943443281796771403678080388471987296988689891913897978716462077871405397048998657156102997159494118177886499907059699262946196317904485826739260088640111789291744963881511576148678550221535334969188377979605756275287934218319349214671802436669725517207956525977749630083053219765038553212204254092394713204350512700883552627955794275121612643190703071762373818898898300893642989121916051651592423010389552682300953414845476326646859027360700096714369806924564054250352338211050072298264989340310678917008717005366159731081626488461724588775600173348203595635259823975645787630803389068008863385104133166972832494244566713812418957673053606226081775733711170060942816004615796114033971359602387996327161609747889574679167315429540489254599034256285011283989618128988656533439701096497820202443715149058460298388195313736250840047026014617298952062542753083632284949341535128722834751562488938274854327774494775423989913106720530675611277702875420663748385684978068002904796574896181636332430802464320998535534335900614549999263522907261080981329266457720302941183446760354457888525600543569851975115208194720324602907709258883735686769990573499479333947998522772987623183447838997838005763457665910754048764785971260980759033702127139804530659110718431971040651301437704127279567901483620681043115041732081421608084802032374653760031540218215066838323352757542333139246647660862740901145404433027382819778929798523138717085831403687547279571383826392866443295325993645881575162901668009029222341368607663374404704851494069479631509080901244005931014561877498962765709270024863017470919285160569290305592166373550092637711306437898285982887705004811652688458011813640429688858059762942008860629274051164793339676760056622343810461657669102982581822258735564517729522272789930572352806753071209214979804605692998867627537782623986278510285983516621862537611025405572988654014578124145707371630550293405465879100142707315179327188424939636195408328796305404355414606432419475836690441965259800285955792911191474767135735041337199006882996171486959654145038469968914828299092165046118291817260259926712265058736019007397363239792869906830420526389092126414318270188432310489092032862748865485715691949746354731988156192672274249589951796503641040905379456571359308079199473881491146132527290355369321402582726258785092644792188151728853628164080733894390018125801450004659289312491788550890484967008187158745707217574074461427023481894173197969752770477682210992353272710022468150152107482108537327253957466940786533403114274150895776978840843483212103639828193857060257067624905068865607003568277233942240399060420279499623259642213895907899119237674329614622906821525296016602282155996044270882762613248262142256957194347624489722678821699429257213610001166975523939864125381370611536717965789532723527969769409534929500561123480953038496112601074535356409057064173992150694678358397939825022752274868605395103395358619013840505168767144828944163351600625671429042338543455587943388707928116557428039069460459893912804312580483203029546072766873306232126531431178852367198896632692862369908100125991109226774279730028663381748545902649218225069074652619565335819657666251999800092861960655615083221809757884710683039146039726860700395541911624970287494819832047764656090086920290988173902008395587581961713761286037098680696062811983009296976089299768957876052566660440713197030225676536323135031331231179924601783418764889649315134306236787569437652944789851479173088840974620813237376984236451481859693757362678698069849344476925803858264915803615061861468142034298850177484003837379177963998629204849378597847799140654447748218512210379360348269825908811431542431178453535564035211227205690754197167115509081032024352518537870395071652623233368368062067358362852054930573590810532938305768536048471089555713083632763689706157501683106671885479114657137275915814056754247080451669748710392017372242029009794268442265961332181526530652573983444908816252557315450450232853976483439415134930821863587714660048891294701167982561415776912757185429475867555897558735055231617819187918119204533048241952104952712639347083179431468687575468769928863237575875127722355263349536070082672533507030348189608915435476987383188862284158755837415164297510192043118566823183363548355174513497117451075957837762954405455302989686460070064497131542533475893506245028513877640836892106299145102972444413465896095759478193790349252343133782642482582411103749423957353120421609852881082320122048061447541297750927064189222619178269506027163706753629856566394011483926231534835432784229294745856141519981385602646045297545351602801640883466341317535880237550241083233980294547246949790618234280722862132460818068930880651132397338760904523758078980181663484786534696193256670978855670266933719690922736077775355479210872232836166627647195437208944227205834154591669309975969721541740450864030346917295802942019093532465349147050911920592520509508859298341536753804167417298690059958195846563217090942922749913207211616646689810608233993962706699563965732035747448025829114293110176822466298970501090240889507176037021811537949399888957150994840770765794104270505025326443009457995236300872593815291807437151676517711170169448568904203187524356007015148815015163456223525002375993844926825455851515729702500152735978327427259291578808258072326112661669472937593773137445510332623854397541938335495905547668110559481395171820574082702214905930678372679279605203698356217808157014133318338376149068530924963645857776477839488708508965527292604514856004412432608521686665006872032758605614074973809624310775046617525818236687843379367645923703436727232496926156900964737894986776160852905878859809166102229978216881402085830194994611848724135230215909717141066862481282154865578757694736038146398322366159996873733779031403284517775468627366835974552990684265566827635704703989671513784155056366213526415289339214260856631910774760288264459866656099533591794240789911232044234434352751398536620779840574666975729991346955261575038838372349053493107459780090162151921813661989075314708200835750715704718902280764118434882873141964274712928238793189198959190960608229069743506236208422096712532927603027200184580848897906358462693369269131367315464844901052996420371193213974566987923301721230066870257102020807465073220581509269109908262013119644186205283320322206445994128059760429978589359804676269493913440709930140144818358399065377381548863946640558938592230419004510506474319280428040528071367714508022302768553044423402172509619937410854538869152329351248315055428169016094862182004875182695609277385730735022221023893817393439117237479783190010128039824077599944989043271844457145146763252183521759454366237078402534431400477454029627306201828664329047937059510913196484168707423844080915745281570854229050537070586989616037026392267289180020031299158460412310606266264939866398292999273243555733779567471653879560954324401884731624077180355316817713613374865973144290546754458076029445031238041556249044070728353444904539499296268312935520359399865367655196013582484592127894143219243430397438375687377677181185040033637528535889801139810483943614577418181439635882737484153901149093414957952405813953689808441225791361875313975575298861475267765697152649236621782391549953808293486121936537994910090500520745685230911743552388445219976528359633271222754867456321035932915683412437330938164434199804099794522668303956213922049811341246652694887502733995882848686029276452538356660082325962002370716009277271827587778718878775096881973081097005392204313289609865160830962338747045840587722778517212368790485195235664601529433268256571114229504635546324491283975139842242378313456307782427977273057353825172300557017070365412649716407473396137183218657684654535559227901400373146291235601196952423570386138174698895319270760068981741065203432920596470732727498678103308439257524045051265400167126039284833227612883153459632872411162973372100940013854145608979169586894281448947468911719231507977297608825538428946221844970329303385103346579794995747802060373248524796404038460895745118745565565691330782518190652328507555763952014365890478912702162475090329907262284497404524941171867903935071282368204679262223471719310228881729498898478475647767097532212455785128319437399182197651118870726468302471904108341567398821575066659201393717474665885508217003610123463434498249173729784954017761352551233423787978324323932275188269530791666574836071833602421169780129382494378589917346794546625011671011634208962832918788741879543210059260028002900906634426080414442063061383122291522899280674488504562392918613756785559972031042944900928792466995975473123696510454310971106653685512277681173724679350322092847907549972931810496908136390278335261799063878200064007569833126870919882884975460023905551730380443121112757113801045442003715252495133529295522056968265686842485599637297132195878305088645277216300475041906034349852602036899322962912900846666795005128412763407342558713545338482023431961608763310262791711493694229717802159392954072981784648705458400397005226341761608202928388729758731378443384866710230676243005221515747391362913304089473459128385728712245797711433455855258848401918865124060473933635370608696236524148715742956485287740290838405790768014492661357051010554293102785853552745906468336611123889838452916320066645526812318533063625616732736494998022491768204455443254254514182758274087827874587695433078375647375207783941859191230558540478878074511837074335196395362418104255501698576683075834559250422277750599296710578859590891158564092229956374252044989143428748118676353336551975000721068496856439003956118707909282236747506520685725617479022256226460327506876194297131104299499902913871036249520907501650529667263681987293933657369632704584312430394019528373315877006477751483182452379718737792790760880482379472135272078477757441846900699401514115868803438226442155109123418408160621849583081480418009196320722521263702763015710102586311029771260248891132180566953334750857837627295143729016311622079807411594556248285144275785256975424076122149248819895151658094820725797708615644768883695099667464333489719798411530763751409286676234939911307857170923671662657677346273595818999108942806155813416212675195876511248035646477403881497212375033180300080721295801339211817705521943473237638868434373440181059080749578819963302432374170554425468980424127073853532033844793613851104110350253432025275813555032838248985334258361163750480692152832048794213766272683415095746151177967492737469914081972560787863750559037802884426612173514363881381004128573462731366507773036961683163547300271416616033419898882944392275660928578178920688253838799378747502386548427756071011809760106377086948895240560947549257122256073791574605974542155637832865646083175610009392528875955516055692893238529466985655070337111907924194968633370629258172893953839341585935394604284779015184053382346531133184347602993869326423572283563346366216481631323821000382775640632845644293344016319846807723492349626456174431871347248231950594777651984316795559242386665997271956862317027091484775628264221933698788970710005859195904594263257080234146722479972053947161358477709110996371650835598218114552250124560153711586452292475675437582611901722045428779883010453939731173414962718619871344918079116020696153784242710769425687150320733871466540143140043508362427029691553846477598497386674064976646725601564746012120618195374605775979226916993017415201028325341078597000773257040396856927971159815166182075762456135123225927056910511629018450002834093126671489924693280892905244307158757024484103238901892469155296616751536453001903850758764114670065587119416947661200200519429023213391150932179011424539385723631002047127832341995260575689837118780456771993665768195703071812590337250967008612704380665880093046046976636958125767425089067140932209251762947236135939606904730729830865991851236823093900195623186983358903742525033155327008576958526871060183156404741373685350864194647041433534587684591494930437835666234654561526011652806069126661105614568487915007223527511748769289957644365805043311062525598687347435242881795839964214862883901014320820164446560425208551576555333980307210089571605287593123465602287513292398176793742906963774825097114124719631885844440187568616201638261703541018335727246412221666800498239672377139014241358718603297948657430169799650107699865528543506600966928154415585553618777268066127424995464273015345375136725230051856995228160332850009431804323887797982664931942858226825710205505216067745887557079631010067639166177651361461486438088093388305615424618418252029573954546160386495647662157157455324551705441795726499763473944829374473479764706617123519224073708612580072733809435328284109720296030527195071002537569835152880424359012017939522208063064628990197991500160341966504286749476000623884954497860805315663828649548463109340221837729263055926714878856365308491851992168120391651915967103867290312317468596775470762936503077921930383699001859405731828115710619664746913306423867489409341212034330300294337987095381895716772862350113444297941122637511774957254113580318700593859212306469888819595211773336556029063118724154606662502437469683940034086174226574650955789396898362811634914981079114081589467902191439222242217665392992414877865317703945705113525535170493289870666135513651442771125172686158914880447247418215288298470562270561980437763610455465624374787862252390868247445395597487641729120623779196323416326196240730174987386369851958312836998834585800084266727210736207745977019199062334542142831809703939729815374857371480265948481730745484459571494197102269485297198889328022028169772821666856052285625878521974417309232813723770770155286301946570621101575394092832986339236672274554503359722698741513766334938130120430573155046363621121523148085553885893748916762722769086519182693854412805164956663895346892382725027314900549735248817755939250612225701607879511145052811741521419065925721368461714403938708534425153597592401041852941799327414222388105372809073422561898859261532517190389992699172778841176014355445771936139526949367264779328929101063576686556917863540686320761325799924553358763916819950396106196486305351425159914136487154865284352224019346456942375588196128371203299227062221668086350748220185883391759488263205120174055065788860758827644262452380769265735799514997661868979442880669095916515143962371117135720434438215820651641313797393361602033849461131822374759096541406206552494699422156226930289432906245621786667682917015917055354356423367743213184151206919294601933811281735640326012059597587698421523042115980772843561907487868448205364478132817373112745372390365793527599954352988067550115170012814492680130933572097801170406377941360923312533100732010050865564245142269754820463647735417309885055676171294611585675497540001075751694596787893569251471241551850709323372420241599864519447342110820062207366154047011598460447989583554719119155071853070138136251300571849111792044431627431618084943990166970494025180762502736597858579605616430334216515041945236584427427292472835400361853402668201153578110280905379044919370557792672911606082259153427819561688973368581505272148331032727931655063358791387784529004682417206715334654195495569220018414138901494923567141765345759245195720208612370937151707207742869366672897136308125333321577094544828789850300205497871157475030468799656422447150261175184636766364669155559475582629704860057205761311937814026127492436301715496639217719808037677287637125877769092914534234800860603720379188877577327531415282783215029246533524365616468086350678297267535024635588700889396374096368042238262338265209837933571622048623186946371085104733850915628652106193144377581489235274009719525947767483879344772802327195000261109109445033353460589338339217194662861433756016794631283652881433206392193972257897784885939125635067908414038356148552250004837901790151939532256884483803553551492796950571525168947855675254261800409097123928946475522657309572650860240328217110978025983709479866537727782252412001473120195016079810058299832364592577411112877525198900349752113741716460821119292759855695612797077083112034080473265418767952200323409571750578520552260242491753680533365980987878435957557485769844969926048621010120530023130618539296212019421155421540046211411530836433566255150927684666323323906604713741333007084519532126648436896253670948224228043694693384969214184862041018740198315607417549138996051594705091687153312875975584149820049086072773654256071151095402486147275213580555397299763421522165907601665778921615925218713945234638026250171639473666527592463926962924858484361294972521856744887004394077638996447548810116973681819914531620336808188958644488563296379886646814623214480047944287578449681272701761033402421787791915226839339312613125848135949355514777332405366483578093371931524186823915618399717894416052579457583139141334738239287565736345411695046202541444840972394151697467999493765323604917856305449901048688110731987319508795886708884640107536262633346019213382929305449566206938076874962114957622465162772945263335715082317654979696271404842768297016203315195603077472924368695011018970564383314436608891974039841175139749683451551793263025603676734886134669889886640627343358381978456442384800274282997215444859245689912513651051141011375430544035838718415076774066234142078202864884586033437088898185124811215108381372076196005076034502824856656788059843573381753906143430460943053319750668857010756800045503359086622144110869203850527546163885426061287669896777702792860112172328777766784215354328243414414057030115578934805371832744330380978355185275351961654656493824582009692793768007015708569328588379511436973498146770037496961699593609789512842746944322534656651220785875973000289870443593815740983142684941384415413195481005591268904298613642913555096163686183913101101834819354566722243524551021418395493180808100555909026981221548595058229968178859976357859377076693007112661699562472155984345610782607202652619817667060630404361041135454894001635792857326331223523763380751704930778323455110587801443472439072662715618649971997887396509100265906128403503617728281261800767591495967721788238908079022362316730307687122628142202361489330997414117744996480177071779417160674235629550426065042234944295404432201246657522971771735856876878135401773655320473494268751046964059541245973773949878231422575377388345253109754868567791373001014196267828347412045741564928168670521855592520136258000340190699080102164979681780236613766861022648477722751069015705984729499206690380897750262302578659357990671836284562377017243818801025486015666564002619943766965844359521232118245812588724999022771760274116816057881777857516814790432992379929519117936546248374764227328214816042253020035533872613319274985560280253054246012993016225278999552973691771815107107838808173722305274895208285085818076879636154314097833562171046002032313968639079336596354004646406542672128397872369675117023469246646871720945970793074211666336349803060026145247051864178234162093717508131248467466867751427836347769656370259126301780019103139125207148730796726984680249345486139503292456446376629664895341867425190910022171477623736833249912190132723417499781051449323417955952236822584449273435489895974937210028200708253434191533169813979354048214147068863972654684062727769982964416689614162257764987307916536416167441216904407473405835732703350779418954912219679902065160721524013222426618266421818951787576032665728848944536089356162440708231257330873904791885694640672410589694915071727228725213678594898631867482907739856530516072494989720698087406249444988780688334736955958897810908653461747760894986553390835919771246930589429179228211579602787322690135373020828576228123398587333095106021095802276141396499803683765422934135432043107535474363013459393772675324399488088479290803678148951074244651194133888664994082368716037530342835221240575406873057182775108465959669409256589691476501274723114849236442341920182762349672232543619532459180321436945625481916849577709445062716357615960127653811523645808117202311865805330515442279515517580571397625079048957842442823798979646577467351613384625987237671572534624166185613156034221707239138478312108239613226496318934215522071057635410058280931412934531366517500731896090139529974748485185057289539496161851534563473403762663624939093152719617077195955065738095012783157791410356894720821660073284885711183458322341285051878682961757973432245927678654828514641050527324301693710968908318043860143042519549181021902520069997435955695655432185727495994172596218661663997958180727181848196179059712628912718840842166638417274854720935857615640932208980419233424103594505803570240709044336293332370796186050203947580642174153927759279874782108593963950511650267642185405232393410374536718596674180055914220479505271813887512680722945759985747940883773164684763145751460991181243597407960336131054443169438158098571992444349814941915301157352878366083460718369713876965059201956100123603438404638413182811893930437248067918120434237699574671691663173027527466944656029384996833086859033770942307517823682958078366872277936782246418059850201168833757942912281631084783318992475949073947467737794906111214559494372597910208433824589288196803703277844715496252401333853143324919283204370566905900509016577280469425779674549043278157276373820692314902123874038733532915010771424733997656440696871081720294405379548343175575731295367820922598229512363044058290450331198856261943217962576345643752410875051318304115931336665422381266097239391927017377357069680517066726355198576956987410776047687077729478488495605364070104800510920523108299741511101956096127239573424242599420626908463097276506015616631340087429583072362816654252883599408378422946706833228917455871212701236210261901480915888610176410757691404188485446730960195736703966329009631948498279958548790921874105357980595627215642818109351764499740562301940324126614865875707848565756490269374767330871463473641099743670675732084278390985634996852284757015888824888937112578010491958797047781276014376989618172701811710311866305182815487429774784539224206974046496539293035657875446570558439931803785798128248409513697380237219917616676318882504923560172292132452995071227671027812451631701949096041798421535579073438868186136870226966210873842495081651750821494674948152305130445182822314127138595835090132872733165307535991921537074703330913211514144464002220398762391392632660985658452208184989365566704903587663648977656853096232386043722442762802604104173648193453334663757044534564433289356577893237617302698411500703435779441964730688789808942704192644860267900632697330534315290990603902152705932170227642957238090286355823710973668217674383255435167341123062918556798123487727513012861865099940994971258320912527465555535689117610496081355902025187377672146947168798274503552767321236424884527653829747888357732667780152379975069417893066964069794605506948674843109339328604011168231477235964071724231345809636310029959533433472508804081926819004810386762800616365332848588661732327013584615489027258238065903076184866565403930602203902586188395301606393356189365375805739158855865715935340561949840726267095684510430135068462265155522343953057823174497120095810604462221650408207425487994386066375029728231554563800540357359028251761774176929604299394471686602511700194511501902482888219038071195810338904543354103400540842620691501454747106842064475428464081620922085630211243736972953770908949649793308030009877565289027098858061054461842392569753133875498934500866429685884958718622131131499957226078491756437968544731481968087644652351002779021684029882733596529069986584697795557637608166873728209137213595902985558567879847064717712631097590629232206311408323620604583925393498086225443580696236407093057833036712743110771212726368242835874828576120204014244978755304448328799564004411153941641205247001186561038868147225269105013317358944112501949398507788591618866050972643853248907626300895621021752654382465113441251724593887108978708208978615718438353489945674518979929674941963243441819265326761955176273457153090355934951783185333445034302419965863460443802141548886401304569196703760090893495775472046174222135710688118879962506174041285439109556868567188079901547097151722628996756029103474935170555034762221646935738631802630261539239160249161460576728518309460824405587369784292218135242350974051675226019060527436166486028929981257061768543428420651868029727875920653207981621306441215838654091401206097603924622581170537355950324663453040385258246762800567070644685423978723236175575928841085553383858482288105108181310120646334999694147209495898800242394944083282852070271368003477228742706415242337942955784497954562518540687682195339155411223287893350757821683347689034403497960079798017444744214675175040036682078716234423776238950794419063091206436788326149330519880063143161632236091526752878189637892047901440262307674265920752168513989050293675162685843945271828491242203308076455977705492845210846058756057451704908067034913091243180208193706212127795783141865379676926003976310287722452139475016809692820082738983447105934691043677246618583919191428881099915345936725018680779748260794086563994970999183135667784811858156052194290174158946654155921276420970646933674499880725623284520936611744207853041315434952629123166788595629035447653242419496062794104443635988520112612076490637373395223741179466087797491909556938493260122642090784376442663467558265055904012254558352558662803826139666254404175677228978894053724587005204452156026899311050133571727702536655941627439758074398006538705667683399456316611173840921336497066404428048516540986727624807776880250955995134750687375068208966878596710153191837554155233553823681339595727293565921598218327030965800769522724197064950976080846192049067951475919701550854477627903123182549709650635649688028834024577146927416415425400880032980656800145241427716814517918041769494547145418661405168678079894325600012772692213097287448478861487106829849617593977592685551902493347475949954725469199155974832991114131149854404871321807954026454600029979842171122174003985775227300067100223849244656721754354762272965483589777971938710604984918474330448525013665399277891019711298027434885429633379973433458761248510271851150437271245450359726940384567760151885713520993613523969360551959998932698511525702711442206091261898584000154564643373987513078637612185861281835039893257297848582512670529887150199986071722577258067770645896112225980755841743255801787009666561122778882663039357604001149220719789955038559105963611655522375462687906815649852954497829693010674553983507664757613562873703058281465494849971788943181428808758920239965507358552502104118327129940784901688050160920943345068919850463522376228515356564552798393182698402491924056105993537522039337674800103335797318393190177355801565360020471549577051765886459321763782206466977554182492809104876241049126500235580090557600560275582293939367421441618228039446300084009351276262889042361443358383424133656821920530472660024091827122470762895990577933778427134967853108873514842073352460840951987464193430788959101630139653596251731770964306924159568072601631701229864829378606468778615534375536898812589657869327015298439420564351439206024952806828460091043724753985608046720303035513785691991318868783403061112788028043895976581518278584061317612969170746379529400904435037997952646839116279169185781626309329776166658861319849118194890616755106142160484819263792567041020703062091849630464540155757069988473684902868826852656048719677910973426341256926321639080667739154776823410883614565950482457627510917870646929224281256189173173950763071942320168749234481029141664236207104400731855533981394833173699595285687061311989975021451017417100953102827272087350242097681727319785596184034847969071885889612478604192300918437255596784564520116538609664183123581702684574921739482551735370226464410497881428904487962338830622576642400745268714620583907101095161936934745739311024234914313741198577936553843458779931605549256438091049857607570349133436389119085464064227836555738457897354482018386317720098094847240069102685786853889042669925208323889147773164936872504640064010150126239662392259238950281891193538472676504548459758091452247941653339341741531315836337071152471851787596996715917614558602866003521347019031631758084625302480669200401673445294378994355211590521940904731185377265862044651265051210158465263794712889160766947835641360437338046865779708552463236684537451777934127897152276642377974205387300503983374926369891393791064091414915195909604820870445676819387018278331436760921691735532029096797398388126087294567645552478336746826877645727753756289893692346677490615080482499184702599557852866617692010127183545803256417432093957161638939521410176823724091696501754464238757589113337953027265968651026078154317784809568913746197798072059615952025548253413839074641291249461802696853173714882839810997740283455923350308317596051878376848637865293160691168485090369448214269056530826119421099223965762399976586396856439118977928021010384698601482464250705207674091880043533913729056072098528258565588041741377389951657246784860526550655998253206610999954596404785562551087905573843625903610086995706694433978455342054881597255824639775341423020060656182410924253589015509635164316181702181478034001982980412382107859923849325999733158033597468903983415172188389214830446927540762185083982509047725623390382349497699680419598403815746376308303546954859393879029221003824159717595287886180201961923888957963541889286725372403968248168589986716144029767682625528195457868530215414523260761837521063264943326159557369671266095673512764604356353724563704036007106435163143811113361061323120995568373277189413021194685258657978342603372156374257430199883859432233043768984440381598945918289830826672089392633815810546129434069204642896481133162897268386389328147563690569303432390826686827613962354705461838924889329228940158388167693381640244485244960189950170821268034974512734949430551695744063842129505295424517022410950695161834036450746125087279692492396536313624586579266361224696140715313147123319621019578266382158628642184727642383640033442673908395395572094688470452928798751016231995626485701500669486954061025418402185945976196292481017423027095993876137109292797594957034002205480707177442748645044362323707369567261597878109582437711807448441175432813319700118793083140546641995711417675029054178266240095973499150203934433219445914670237856661491169468038252280546701131997859337775459495738785852787370808509308687362907480190813586107730226846609891213074189117631344547326296814060060255029831385028505810933794150628017135092309413940974087773919874819712370927934976995165948762369434634078096769100567155811299671779794763584252459577849081427635712345816170544688167974545860423215509623243609795741633251151800832578184911365185917783704380165163082195935357353368644481004946369977155881227472190355091225714518121788988676684240380531905765335515579782736200521427369971818167050144154198787884415028563474309030537235634911782895012839158136797873857471517943340374735266893394942872934495397113119213603251805724231955768901664402305023550174217340682035499685501461116563075828533763924697240571448723106251699070433076881557440769754305875347410148586799083515306558672378062785636289366831690833618147047575448471138164765920336636263949317312694624221255025620899587220851688806943748635598873698387974962313990752047858067378364941809068798417163273818333987656218921062487720283030240574941566133284757305823458616732494453332914654677452240424608079786597273984990526660450735867878331486023424282000193449612619025104317555295633737488538714463718933316393572513263798516232830503128843064328344046044822803549922030987545337877784300678210657844559256795531904726186089587048665202006504664628101457424378915673431450527841140325361690734444888254088547715619791548425488196104522928647850896834117032946140030861865550313534632612716366378642552366933820596476270323997120337982809743064501224433583048656957878153680602433557259632719959303424386904590532057040630816704320390497282023002559656791646445056095829080789265116106687225171388150487153227943016311202527753615007418640192574695553658752220135454710037034098525823066598541069180301115018277608503175495751460088966086786948562045543384336882000334165766322991797549838676479251486249254131912277156200642152036788420961170248710632124428543193226943499817877556585728889540399357262408345517386342924879942659342779002577894784132323699521378438907437224603720032573057877381350263828677145478829980866200507303297423061069907038740124214903201150449813607393546759636534942296098101882389526435844217662161896159722609910378824612084493959168413474363295376358597017969095463402034922572546121793875510110701671289528119221109986302195747277901902081848367242663695838046057201606551102764101431041208882857768877529824917759328787504107783287742519339190043159141891110573573937366306726257747582740680229970995033091427878576101186270635689731944197056883058508600069877172555226996969223456719871641536128574962010904573937330462194193382454361101786713642582276694812195320343558859366543585942997561695237822130434437921952380496290635986996915417208432489290736670222308151363751631823623730927153508918807756824972171137212399856417155694803157000198213692923915025528439961563881942145073873860729499822094109925056830468646388718462985462188470147532215716094864747984576670196691341783613412730345421263724732317144338496662547896358171822709295943563148130594482889169020374237687152353582059990733927301671167025090477521255884017547503956779719804512384446046229844734373012829553986995323814799620121911735249404568446930359176776714147094625228591691512793880512532007385508489084925808670046915452870354774265733416579819149519082544893186103878560489615401372463209383017055675876305682330354406518436638104702555826619709504366067366115539626027146394953102556216805542583219818104147962893553301093639978632514851055139836459407212589330746643715521672939018555081570971793956954444229432218733557083185212381939696281105080500020435403770362439542356841158285006391272198662062599081718048744279437066897521910761218413942140755698145839049041104890574808085405808407801819022094620165677371420775042290409145125643684727982565294779744866670420572994573749906524302501900797073918205904056672610574333602723756735488586429791615464184254209645502236335612095700537399055126554591787615513003716726282369445071025970010525399479369883409555308166378498336060250406918501891361793222789097881382168945456437594470829104502378363653984816749835845621525876038874366789911180887909551964690744967597375062456480962925890433873299739894061193616617905613687273681478673222707403262637516582286142677168850508275372402526194034730610076679716422686352357445407257514469413830721669262579436978131618160469532228880841549807868366891007970715703544302102738296310083012491495170624030877852707439278016959163783044306750218310833343875227492434814807539236630263435405190659112902337659286478108216786345875425797077240813962221327960200968308465563553375991937425533137824696176559137066072210645545865563710129940437863220327437509963999288830333169363117879437360040677255898571421302172809515372575024492786442301280577456266302000340765754739813484867367409598425162648944068557891748937288569118016451465751055138342475935173901260961232885695005069228826883814674460952417515728406185083907255619458841178324152324842749254511422714961513215218686460425428880801424597315493282004797324439282916081521569539361945934248871268497292442018087306650490164199022514936487039220161424304803948071778930368258152588179055773581063018754300463716830699945840272852769879729258143065419964081533629875381162540295477040720659944930447741661667396889148749036854674125504234622904000698946997383908981456759273357961026578898827260244571601587931595685637089376924698619195518748936603231419904268853516300728472930253247720120503828057232653772342455346998208143861697105231884420443874786544726177708021806659973836267438132134036203720133500437012511090939281785758734310925222635033020383536371788431751474211270374864315715400642464471894754360146504870450173083139271335356601963967174989182518389142390973318786884553229184540536208518484375272437239191558936603196345679697729976500719452185175424620831611474276801135607713501213815524376140756196906129875638278394588232525481557094125874881570870183412885824431582173678628279845082184690262395067849104059105191034629405919609496560703858064972765906327314009598818265855283248381934398329679470796636231899214658471390180575874737734511500047760191335111263473332767169908104353250046724039839030559952837932112592551457360464282783850546887848784047464738857115721971281156566000865682525817518394501557296634223942427532761835618008555096307360543405493866462662247110306985338343663288845815252533140294506170466968985724759161036921235492268270570419053174545863246392709157480295916829526755924062843205016225651269197993083656387160532660671742266166485514156970034201632048228127334463940687774176101529513350896035394321634442318645366712440310962544331165275626624490051414731281880475562662422329226988036578097480052015608801295999997289429995679225321382058484263510669386918472219278233062481997657209745726159290840467481815849977421133354650440840865162194507133189359847258137539044568673531459986346393596051111690527833140439183054200181071552486445774065691919843498939480860908944844450787694342421716146106604391793835464645103958903482180631447753747698612740038711865645944370436854023442499635382043611857033681440656763365813402477639631621321056905019419241977415039802368004143087490313863641833990725518972488318086658546517121916619117016760918313126057419573398310823970710927593049621064174525594025285557184549451550010046792808102373153768417997079669747382213836456727345613401330430906452131885528154335426544382381634817671660815070485608708890860698898941299654639233221230381869051407896230011204917630330050074287211627537082414705012828695714369431240985557937373722178638324134815549043070413271519693632534224877956800291055087166117282497008960891671191854095885884337611064041179841549862206845144159437363881623309518044503368815999017213592716927443418379530740549127976346721812561975100995428936256196207128685532529347932313946539563320260142866271645742090619319145349411509699227339373507475178013532931693400461187866008109719238928601795915575499957883751045266990300117739894061934634147439970859250922336220340765529906595985445567475458447828587592757166465680732329643766075827637773735486406157032887022780518843695148825098083814139527499826739795795554357337197235820670362916200278487912350562970286272765434756265942405453095482039494606803638215831933666145250682974847361871826610136479005051801696261193909034608683525998428506410930561936851210701509193071236915272351545566464140371919781909264534049924237921732792123205614366355855124832416910084418368907780826515889120073248766892874492927835629256831592017331606264888160713454076232684913424461094463110502148032279680184308306217000957020171207342944958981349956379103348667745164573009768569695889288765524988013764465326887617904864122200405684064614893245111962852713178096003970439357124352359012997991466671990624917832596739058204669474489657540278982447576928138558722098116175699851667670378225499244116382975667275738521242977083363336491726308317636304992983662743899969679613063642728846934745672227387495555806656709899524523711566845917533361994911733225118116362331833458104926820055664651418360197230425610220112854013470042658598172621401329201539343390061111749331932565993836345886000017189071827887309227939891297610463604699057490272703770371275354254445901838013175370399728911504642120812454478126403420615054998225928537546717145049518689493720161042567154664410769346602127819460651317076965752289370125650896291547187517396523507709436124804187174293099145910790840861821952842500823736899392925432801359757284144460924919149180388136195692749587528036233086720228074369515750676390391108615409707436336666614131482330962806219760335827608816327564459915801307317304294532946143119004726880370243609041052121686388160127249981560051898432568411064884014805726857167489383763556599511253274944338936780713699190725725133722402201073719634612345146217247718963675453500612505884496628274968724510398761527162064788969187506095182678799648524904577559858672665553592460216962706220988686623007919196939965620237119167629443152903727552648713360628061685965597209009073262214836057971771662534086419522206830258656173355768937168997338009398959900833124079537480291207145207603132267679142222360773623188208692298545003534541840873439219387256873545811335702697838287350139227895890131143535159021691360019460637353140803281048885457520188347574094613850058880443465283440899669613232461421087901994675845606934246242320135396466023991737755348167929045220849638215280530390939136682893610064256904166120654091737966109066936865234561322247877193762035577061668106720771599628907207536406468028876822305031723542742673195944768845828761042705639611402834752101195768775429503812648015563557477649127715943832315077832930094789044857152002216387926744963540292895587212715411469434590498430637943279834538416610668870241549713838949637602128412782424667760034853430310338691246084493078838639146162607789282215637176887379698560934409831019005515537627866497493639539096369624175142021534549761709100389747397280571713346872145023729557742570522123761878897175528056990943983993086300232257110685481563842080633885211459106266812664477837331077493755920064082487666706842049510811548849771450220963468744146181945339017370252482781079160511625789237817795678933850241813445034175413076640502204531338268601127763168076057743658462792606353773392876584934103017227482201397314305795462278017623513008734754134434744019423845690976210514927573898824593062265683868167825636033253904711988007185609546427676182766104824615511807781456708974185360135046850056608368158585358905599984439214991960302498981667555384338018155427534495463872077458353672064556269417779581722743614362654695642702794978635463416743644638933308519992230641376179468042504819949622763453153319433935170742572428700568785243697834942549578421990826321810790006627930964399062806133571423228993012987822247812191257682741039063787795936798981840383964255103062056657019955859326714657943597268966728284687612427474314453161591513720108735619532933012486003020516450053246497430256098418994760442854490794497228544576241878967494697125595794472872006801941769570776502597119455675059254020243488643796920686224349913531394337745626632153383362686489177843647766798320909462704401765080646511852251477219461893587881631529099880394560148899369738033618320837974627446845869412082635996525431845511536192567127363762906110187642510753986048392883571760189562762234605253577413237056857135344041349846078189403553293538223558231786034033246328396476765365059823500015905372428484077327966614393033365676690607815303082121516797355168542122109239068328997254530217437557539334070171484220964992320442069927627017439658786924838254275688586013126786762558012467945714906257272808143861605701281767515616032252817978136485896966398802638362101622102285043488809898216064195177365548357288647551817284308912772976681178836701366546182472572195989204888234157667641155236389983769628432132335682934645970731490905448369978855702964551737464999136617464594549540496227813152365671708358688400361247012914413727656923954718500601320452191996537598386122799851717618643256625245099999474072043743924407327133105004713164762497721504801435632624301074970958279059384106890735656059518063960218831904263373467525475065649873178944716732202521958015171440924002834281297143248271660645759990034288633499978100931389122122913996576415400362138394943665160357833908969842757160948059394678429602071874603358403826701729525849310323374532922561565644896875107765707117022679742796948249526260797225529895136907094849375624596026887233951427136229675564226626576403980554939092082382742890824416122332987831300338345238653866367812938246373385990891957602468916701182761799838692136588880799135270165602615300782921323267431290280565235459991386516152699150992443491041688848240838910880232338068222635398116976293290443639067064748539819717396321050181009560122513008213415183938505581993310178595077317290684849167449339392808420761711522945545984746025844627140311792122831625239994079037391555541147533316169559491401348616138874557367696333129930736633703334422903622765862725927493431669382770241837450441034491956844328829428769097749970318491000320864218327678886946526034639566578615452333978288069643610406558277897351757283586380488584233044665534698835630855745354651586112935356725785544955307025125030102735239632225948723917546059362569979660993796824354388139432323849234737133719530636492909966043372272720240636233774288729144444675629227893444503980571846364305115410561461822510141095718407964333393715518265760899422177971132657161375910878883706086270347470931641991508642567789354713858740904622866539523992329207834416561472314006501022494280593282108997321037256622915557153174494687591554541302050265684031077964640187795673416942753037995133353660503322952877608749025277939769531083953644830446652406121354382947253815780952829069982605845830342917211405837532116537387826895032348321923783192778465512221901025561207264863288802357311718886784221840785713803153909489713925484876645414535595582125580893200277385809729128732119655929597401696902922611081188196074298394322620444024580072233103124766235271886027224527990875730856088930986610878948176241503314327881810398894771905440157398453777756642939723106137537052164834655730099520789822963705568857880082581508148985939131353012803828359376903598147220545201453220879836209954879542109521527341582394838531033083579316190456280642831907273997699243690148678767709579085487002928628071600373497690175685233481453067686750920499349059500133155864151808734851045571312352748038307082402114536701031851103421519369308315239788358259106899048707407604003548548175228693944519225155157095900781259609368812871842442098998607865558280083952065263555684700429091997796049041271235150806432129604856972035090429108314948369074112219766009022072649448229459893844070539543514332086086768222435519364091256152300554018880490419135834405670424010745696934603408246662870412122623224653351739976131932906404565679435318727042105727654508074181543985897673136346787911862786278575437304860889742760598808135849829577183083060865389816975845391848808064989075336597690631850434173597909995753713958772957078030800057120348325416483253272560964841397985929509142224130084199861094312721840680328214066550649530009757561681303491659249068643212577629851339551362259289091342617586092337457063534935616361663720647456926247702727336193909498321586832993850235648763199477775802345996995971449500584294621251147351365101592634248549054999890160799864079391759682911310645513669315458287337622836427978616046301275805849882858915633208381043016958545852860827416379047462624018091459994153400284254356763910815950046729396138405678200863542495656564696950121729167193630587485175656185756215439805888293306051183593732573144205082755487018250484568321085378594841132103254272486488055101356761082932320216994386219056060649181938316647601787327558234776727858594392995243024860785520180827976912373406032787132204836945579011260135209410205604456459678318677186068705038260904851651875122399687277549399460332626599552279102908704383354467963652391768302132594069213472776115483680581358834685058913832442206953977481533836403779848124531764630406270577541247260107735040735307798477629570931115598912619420452909715868513787962946460231231047699574836137465085459756532964598264193313370252664214157156168720256419641946732530204448540546065765292526079956904270773816032075039603531342291667147408500212719715810894182252661897749206244011524548273354890246503032367946704366309513572966698214822783689256031804972964762724988506095077763897839598435949329693178321370461608454594744290346475748295628204353905425006328549367005959482124920001709601101404091291204118480296476818442356331841955709879573320553384071146689439027529067957012167343054756655069983867753284697429880817582248694628672844822249814822180565588854540779613516976400086111021510442971453767490222347584308962984946328578479019241070633450390405324970467005261928983428727196317650470511752211409483385838113513102668766645184710227447676399597321181248798919869616609438244639664401065134216109139514293070140258748855018496968089694722059055253503536212141939790959624543502876695323132020257489232056619291369703260944104740204559952946910411168975217343605667655978379982289283034136035685828427179937584064364332678354569463408239801815815680279855871357083980310967297270845283439594836690291278296101126887225737550101227534148626737056008383947514043109973914480267175184474304209633679559635050966695533418238129552567712391281308812761303915880376968571358797628236013544096198675726492923009146623810144889408092246671748103673919983525112395159670391296016258694082277644154151264190675828552084491252200301243344930766777491866334679471120460748089801313461526712667082769806031715412884154165119148457691541253679252590206816762399639883279006478542122930308959521409408970070538211178140361486462183176857220372797961836508213049218653617609572461824602820527308642085142189969590028784303008253837954623117421217280178687782355562155791509657511986300249039444657663233760840863492581711506567531670048561488280034515432715229174702913690527298262756812729172771267277366042300545114660766063542306970004864363051972020852689533899070407254364685364725761276891699098824994976938100807321804452082833296703293013049613690327037671401016485010592571972157782079489854812594833117337233421138512498899686561026343490281815971821513814647456613213567282164549173213150244491035213463034384285626839757840417048096026816559157744884508361131278104233196780369565396121323543540513137271228293346811329286886936764453339715092979878369254010586059550251679067022507659378615864585738426480656163737019972663407885230987668231904800177960778005932216505697222205326745772061657224696182644052480823301904500579169424355799689964742898680534504431795221167475196401564698656768815369745316809231586115795601755539241727139089535681767263258067715722178935415381767774479604527097283606716109594581935029844382217480533011944438240403700833373997081860983976379258531817370116332922247253659725429648816362796948291557301317441691542634391033965931003075594950943755324196967763777948208745296140906317287330170557921426363690608503345171751579489690898241891200054819151669607492452068759234430455411964617218677595108217794921444892187259437008073046151342020443842475017850944026950143855818408161051790686813559309448966370142102762238054059185900626053713703993391484168101545031292113095818878963907775107497992791417119903610940880520888931991650996364020548920557715713097264894936891470542000351404204461841853104477750361046864244521753448132780084486844304488452964698686170286529756282035061864254675872668758435819082800560262708164788384065213307566775375619106431432418855083216502782465320452483970802675216272721179321882518707888816515807109413144775730102797092929890440696850061933939755672968644470270351169821046144047276078310830439905019585450048280631365171339213715812253881780976639439252178904350905632259504108260199513611196688219436197126350340668123547490376729396453703140236873418014610626883943500503584191728764992860266484755638287703243988804078758709591578372905486292028434386060860878577605468349180033027568267992882160259081726538700121010159691024469789366993590620570780423234162655345833948317005496189947662356216062394776232156797170628128317058043709238939731911141685329950553906945013739968690838596733531089565722143040590276150421737891014667701098818930383396311233999259342184798859483257064526605180331995172678739747386926785718254270982717651445121325811278029991754883825310072380355685414467205618661202820093425796027988533088537316099904241008397716927493597634474747644802907633208125741315678482612343223049349998812360041122060242574672372184709482047843935334573771083888906148568049995883874324668308024264938314025961345380129584531403454734694192934993150523462193915528874152305167299583590830179953754221456191318111005336746448905871545250473112761634007315058376982374966636894429557992762125940514684396114744854701342881606780187902510366833151589531028323982980574004622932756266071254245117655690732494820621335927291440620518969234794691334695867733005319995130454438653829774683658863187774271300746516901614136954223914571628347848937478164416307896755402526086814189654977086619035944631482633578131417546754279294064302554607462161576721726682287652340081541949176448476881835386898827695434858067193074382665789949056605471226265444147957341160120632571772454175757223202702925676261987778557736700238557108706003823496128266904268707815786814398387753596933005412390298158166947562479955155620954975605134814081405110095894688242395114579469894704571880719432243101304845260702703525809373018209881300484324231018296208906369273172856238670965313819630650516557679131468186777048265642372993845569751362881389419491930026767003110668461925062640346674348577716197286135852772906915500680116693428145306681056072991371867702079757426478187981596846325187374925251082766036252759528930156323543732521361931566020286435828916778640314257121894137389875870870964121613236576857749247032486528503284370072353263097494913927023687362185877678616189013001188539542654194961363790803294030950920998593428906495119962729158029441595548112852247106760841973042917030738275492091117532643350307967370179960470601338376268061334478235633323239085870149845444474245382680593422325240895429882710960777439502244580993729010511412042200312181724466614784013990888167025870975825961508754303835593223509271347885084598766475507297772208456441884222339484966434876737716779401100916345422567408885933379403968745042427037811856712279722847633558660075786596887412154893160754313827757749353298156037487171384873332713210083170199205378763392682940006135037424091440543039996370208982184082075250965368770334505261788231166227066437524373154919357152855850231637064315807622129205485915329074395222053928774257881760609171307485675516265150802701188623230395178039190751178348979690825977303667074995353626103054409086867855607701039475948335796535143922153491130157877882042352779648175501350239693210900807986145054074412209661058808692767213240030316642687748264665729318570601411027743674305738043663207718566941529677292000486520507271484637193076023740582510674805518152592529506138139538801233807174924953283690736328190666061486059192433331059092695369057396902982550710030373361508270466638325620442928587134241094616293392332692148451726951152671033325260983793607118774259166890047021796678837820074424955137978737798250851659300099790386345041032607801444875976354833911240500939397625519872846762509631826350559884028901890203036777402041231005596173001036391329167356474187928198006500610753701861192961429694332920780239307644976257511573195153157724114316404696877997820218269810824441336553296377534981029028204975615918799739157908747819765521809085542797964390640420808990712915072798070543731789367183313599976653765228648747848180869169783963417567106811379518043130139464125477584406231598573064426491791489246580030233798408676182758252195200590202508016780024882681263914675429077829671913722598638604489569894814436408819266715623451932110223241055883322261043119372192195541775403972372971700009116686149895469753962781537918057737445460918259456584814127431343799774126664620854370741727755960505169520827341446344819372849004912477012667403660328376949521826127550025247698589792243036454804105989870049749243513421601055234248047808351690162147399163789948271488014035761258969729059211356067326316278100188628115087609447898106906723613889977498803942569551553498226177270715825464583660758995150150079896921983900913850768574138617938422124735663448533468974940303546069915496861625156814081960860169497012865460455687383425400495796565366620400857971592797232928173267379821502841531318248641310634182985425023566007282457507137248820917454890378790781648396816030611581043447045925894700758501225845593059204047460191584496201586696939521783112348139090034635917274145112706448630201243822206547754191255123044969497383510271862813011816265530281923648765465142361180258143104666062781139267073641652939516093763068830816586289447795617076087355726486874307249068888540229067007735064734062186982331273974447858467980405603709722526569515633114213109200899419772581091543996423603944824133065120486101694435794312658741472852094568857929081877574249710780708949244701873019662268064138259482248659945578872922852440456524790108418294394676171171686885517937515900076491770883455906579810415951205247943452232366780123386159373535651334819408169414076650828381283961915189147241760619218609758965584662200924698551253040934469064983759504255961452587147808861147072107620272108696803219685425351504619259838355918016371869231458895966408810691757668008106052407502708938775099330415730546976696188874722565528179295245289939018703599343217313070576719645445271196399922289293717578267080297964619298293129562020462772811459018092084525637512102686526804056727117958174630647953769661746861330798873227707379583366131088262769550204764434638678431715659919057529050020973787180578767307371623360889011030783314569044986727512903093637348351752282150214187258668575126333433253755554147807744513827225720652106489990852440550251003827449839403698781447905006880316354053338227741338514540906759834434420427291817941646775963876492395618835891367873537040135631007575313119598989971644389805311470272214307570425241748143770382295886412759562930014466709615074283168192077161071720953729876925698268434680493067368385490546366692831259482312709795651609630435030058943106871130667906694321067689768464612952961911468557221489268934999203524485109261347505239554018337345171504367222411612917655731516245601427729815826842552386822393964603954428928545808430216748378001490650917691585935087610582533326642342933912835048436576218732753942045676670238556927927441748931548629242075092309259759214456158618113399210903875079637596701583068595986061303460203865057088590099710373346866783267568989417750501939036485219293889435888337278960910031805112813463983035475998282402391237370154412800431638365877289012742982948439604441352201302245544001066881729507519376081163048599363569500518569583824107149036934256140982367137624867664838090406772215429575230315058299879769389614488531600051597541288849592938031249712851603819373165323783319757869040415146137114977896927309338652034006616050811454108992042131815695686840214217849857665906370252444000831995129731196609454735615159268813917073456182058677567003724879266695396885728664469677191995532649651144338114026499031622689092971102735694934684467411496831358005815066339679559305643686999346877783535057730431922813632270723815305029938243073986565095074890969820707462611924892227457049883245868131230749408408293253468206163578877000229988220249118001497434952969105035242022991529630049801222761339116536077459424383846359065799952134242008634862740004887121184410286854864286234008039086185654697146294650032270457042208230403278452160524081621057997057749298349022796375282191814854376182396083890139830907537033108072707325588273061789198781691684898162731604588994660610678936410505569128403090314863933827332859776956754552539970872842516076952791944070183678521662265197937011324357328423789460185035565232622668825143686488617889896143020783765866711038570158207607567230698745953507841964196588134843990489309159850697235409646259570053396250289601722164064668483136930958372981340564597455596327464306869324994038790349683184081626603312085831068023243491121418805216971652388586587215221817062769848970609193815067053688307736437818168033353493363312662481033307592068860777301332103895623003306410577829655925797516594398676323015219093011558466593594388323861275675828513737846186142220555189873451470258634803939419270667451226250009796462378574675941325170502268563394171683076718694648330409853884702330342683565590173597309616705771101286302136976265254735993981573990028039792034561431162887938402847252756123020904654896046783941907195108742549186255808065489665451224867430144690328518330260169957977802598812110398603625892171779525687874916131285116876633825789436855956074154306244167380483942965184765014682243085461461119904772569305342710034482475795838081772239563105316726011423236979827727113497688948034169395692934184236926839118059227902670207352370486227931926399741446503380004361528761026726919619074602037228433109775885102744337426881234803423852403298437810794997026154504400850352884903578058050404601071057927892991598590847335852340641226455805619851748600224559634838989825613722118348420112005657019598006230261907573856222101034365392726137547448061530719476623695036797288506474548237252433787390600732986110622418614780641799439493044662942754130939284236020673402668041328475787925247501729615778155184635727363159082737241531813822184544563785535114758860990743466301678655863573565679878326238525037303359584786192320570384238120581376756667613841441286454876373844558256391434606583333386299047535599226478242434736433143099203234740351596583802452178662451293744834148970908694792481024231167668025206538912185833357429277049531525506667842914159516403112385568980614047289818956658505155304646183906766297710142923223137169423031185217984016873698067598015804965718276699532296484688763495847008500589010307286102649656001535077074137179410846066329826170048636110283859678730043691705814492040168663068290004543226212933418668594093240001024662706275597596408292843570263190832651409035826572920896561449440673339259987793785369483986612690309682427775690615238301480949348709906140983363611734289595273160780483327267541251863270683951775957778264449248820722371576309811812228073729054210641804882361807531204316112591131969893771670270308273284333307615218966412959328830929653895401160106493431155136700713312881474382528926913464608312078989776896485951858722691504462435507192292021758382616344282353336071499705273245050964411910783204729237751509864649988546143657037049912046658783100143654572889867392867801901613947314836951224382079631303061996453038076397612198858545536643954245215541991415847843200465589517935889482015993406642188977282738372190301683361993604315314135589830070210043138329665656300144002480869162729354575583298202100501754732697505460597224712311351683256962491549925866022538312345264797393263768992322251886242367384188587201407776393068882734685563522152044179891586944300879614968850053419799405505744564314928024510290031579842756098967833519489081598427471709428499885726992632097227082291359259259013441881626101418013000146877768745404500297515026476187555038374941333309743704173124871965136066974878042858659837578665841996879159747797751030225246411403673384890938436847274085123664227846552488885424422987308495825613049693400939251857475667853118267320981455206626498408770591562050093597647013183484779686992861437400295510007995033274743683552236969146471300773116839824403697374974094283830333008829815292477310883864227286757651941447913886895353104762351168431197945369100852203160654480376589549469056214108229203658551498436249238851068794942220546321023464469476533738752156572925945857760131806209667815428678166963344197595325000003593798304359164135532364549348274027701070170684831253337942265754503136139923061882757039919774224665033088979850350757821171359094908020478803393962288796294989034721064512275914760460943598317040128560543890766958475589331548413638188073910063418176868418002679198220064895724745003434805590625224922660687228868358382334480297584361645095565986850830796904796111403589772676445599641698618872688120208499314252350849574642857110962488707253762284931153495785175178586823016251729504638934187891726165141339159290366578917570448441779836640074718143365174421902443410691462798684605580342873513665297199117371224780952238331663933343574518315188037265222805261239672361197076927071268377548274663700678658965016806734804892012325572106721059529620393780104004397975887660459354594521096938410797041057128837099761505176904711848855711563840079409618914057811549264534641099004771302659884201022029259644875772381544886319674264267707165475527840523577212532098824671438784305913551784612530516518087774291179264446186347577016992929254579437242897986857867896965116587684957756451271834183859626260762030184355359847239802280314701178000334168727741474359321847101613300525541677544651461099414914064576342944864517040412446771962519868439005074179090822999775179018071073930201479909423799537509159741835788950247949969232722582941487310545754350335258660187413099658608130124701483056496271954268229416730167703213309279513636521357574441442754585846912333350722470875075650799952009443295505104917867231789438395832654932619370951593221799519853081545589147916303591133737370362625340553399195132877454806976618185011632590380802185978776586904246325967056415985080388643647363462089918557266989183335661990245803782463439724015674214078466641925394121317217515965413736753801447804148427617571128911637937081272630544544660709530793988981621232197214635822665755242013773309392876921796766254005626440696578160831907784425386514904421123975956756646373051058822274642230119446830306465693007224620735853934334084455772224196090793116504359524450312449638481075085003141273839352088760312687363225542671131954906080451694503440136093459430527695877578590990183411509154011161518124043764771171203975077040685568123586623232507111328583915806564761983095768138367273136189468931997051564726182152221258598215619381836223178110326915892472212485358896560989726189976343586228276513720162591557357491103507071427036902712565143935841719312596887394181007845280073724913039102919884896880938590042689747521089057216122070049458531870951947742314417352308194778309867720666825662616445179817566363990692856238161501204108676895777665773584436259662982239067638543648837346313869508489380015707778454488199394833411886996395652362804449020845104470345810418392901363736845759548410375156941646942578829578206958139347162972931680158496080039145723544968877453920907146670925092754922184881805871850991167670182394161875800000670418374652544442612861742688951391851973178082617732962992393907514573178512526100363741658606796899218781274295910164758252795445172464657376821431035526157743449420634968130301379916793309011893987235621925859358570107171248599401493363614424061554759967438984957825296306611601465619717738313227705873555535073845765344570778921372387287248449375711306492565712929659706848832241073606483720713293886185724355184565815930072033184206837132600022016444850914349289346874485968617326879168056323042712609966116219685040156348556600355263088331327457476559378220428814496486767590370238793337732476714978890690804849984705914468380871113097500432558476434892234540763845386997355861623404788374947436032503690876084990114645694027086332328402968147858606470189824402076272651850768156132234683274755942654865512996622504888942466013622060294644201816773071641583356395779874811372976792842361407912329972881229929425446040588200944940697495588428157754270320222122771249681374223289399992212543044153159710776229042516676236266123959238266227527731359295937839310961902463372392066367210679823954669409526424828309522906101365411161357940244612029465211406595372755860989112815522106336825354367442264924527832734572806430741398404601478302893239254178641624405419600398323072346887442090510436560931566776558763851762971713296134540430912878193213019793117887744260401052071690769383916856860623698072822304144160286895154017029927852011320929894206641162501486419734350539455201426306788748505665407874121749690620658982355393845138655465936563774015452292552141002880237908620947330540469260055425878061814434545873507979474469802800218250136417357031892412444090814990678633908296048243792550240661103544782478792656792269376629394637741354361387111347452641427521268073720969627041290162376424715460160462628647296540467037710392345645584989599855110310881968628598032432140438836224774779185129231276593379929321583277892636836048389105185748615213341489683710206993103255994326077467819062939108712514718860349502505902304347001085917213162281975944870064482957173641925434682819596374592551684750084681240973369331158116760789057603612364355513473750981114922671493552206864022948153914986773791334170248624223856209074482270749588537603605501210000888439077876454163518058501878143300565258151514554475557630926060374528772650461032092735503530631068714557930321421432962242018664107337630924570274611955474171200273895189362652282772709796717343587259364455849991506437958451932414571762204446120347940983958867640976246619577017367143634325027084809719923648984132572040402361133596927492616581688011092551756902471313416846479846508997352363851063023405711675058463315961459805680387794913864080000130009187651019995382648934877921386100146589888579967623021491631116001632244217969164870596865325580355523289008775584564102169390964341932539659609447884806119927141573497434706690813686984592719401073724109378217034854099797706056677147278219902631875473113832769558868529412456213310725906765224004748419201546715796512132782253508910493610764001314782957379573808560659398077743199316357610187348668401184406896661475978207665346806663163303530637186790307812527924621100694971601536737487807099564381744097633568306551088935960670740639228355302212538588043296078599304536764904318967593972595336995671962033506360765166534400529254040804401612551983747169667319525309164088877316890668763701005451973999535276254181740907011758428603337207716467601510262299687014171307677516716341814283724390564524670907199605820027968793071840674330167777557185421154732067927720913274297936281068044308036349489597987516376711754513452710761605078353208101340002297330093289678596362726887074707245624567528652654673967326432866148813642195442724795660444565657935344088170290740440969008686475037171314545254694188222229133460310023336537000333471880069625951719071843396138126152189669123642383824252129990019813331931713046481458353080074201088290536673048117754798610004326893647543631776346933477772080895977982143602505291832008803761994163940564425803965653182866460682022062537089555908756779885065161337443744438820050014103967636507524580542861981491672072066091713711845828912654458365696511653737795473241758554161415469499469318437909520720718836213483746986951236911866663575080096722739641735469310457572431393437850397442871291693594790114430496057006815806757426216594134776443870302078557297905673381580150018073211686446530492469400955565881981361818443950017723148582028886452012764569990814379103574828428736374196539613698161507046971022002372795589920795109964561490751471489480643042344787535550801139571761173679285275067872001340703951013062564242703002084381961800479567028574767654240741634050713393753967867252867418632388447169973881323833725313362636074400459644128989881322216226695365115205757753767173532164920117417994562683956850203258662927824716016080925983172926450307487757508792986441387175931387414910885449603433588264494825359389493135769527350994235973360016423009270593595126609887914888344818467163625214180959653206496491879332322460625284442482349730587211403033921677856342819227399600348062745872149467470615802825947324327890167938260169776395154551249314257089072952886319790073726620047424218137273214256953457501847087558337280912215453697488788921249174148695536670285156546982561944759442690034521080198335984708058534440482880847487208573872298695853134219085325709713476091104057170077743971926537025057350663084140830002892269110388417123741573947884584957707025729184961146746002240802224163381637679263427055795883099472843356821624813811669009559819006263630998198267280886241019734071823810014342988549655618162085828460821803945679161533497292462904808039074740941879033905273316572870257065637909482310449105860688409743044958067153377042421166172663867957732570083357347355871198998861184757341980598135511696738512545511658201470270745989501083922192886034317935651696065496225344388369620729718569461465926182998745090807873436990617872020469623252596948626520467458734075008995623852033827237272825757924682593217285610038601966353478792198897958604037543547468874329609958859830743306924987113825460454500816922535170288470060222121143955973019892848904775264388872275981753688503896100120488091559466996695730183260436879383508825569903220709730480615700630346818576230889737039683276246791613987413105726145362506688157199451667117134953028281150355905011446914069721996622678186503948733126662252177552933614699381724353408123302163050511761977901090668789552180098584177877086238754863313833037112625961561017423472484813915081866093940661045024712413531143129876744819808361291885173806572074941586576627111113700837947865609025176021022503957872610219196990346715821962960738699197228390700082904280629517612381860066481345556199182671765244314841098190561218667366897383558413080854874727605889612576512764742390286064102008176331594909853386467181390269301154937730872858488511159842131528008173190330238866662762892168180438069584899938068640143848750829779228404077417186848525589122481103395482744899761320073375486493012593517268080626312177381510228923292209335760808647403076750218626662900819760646983485064218808524190426401065097055011842411234322363643829268839509125073021382296407605841955241215050271895516949362256107236003883439478517573499003267747315402717040511615402900482254821796167951294600501802777189358613421892617012389860383563281757149102402051163259461567881626726009468569902578581112115700662472379825310666096077647499431232389729798448044362583105149232327117399506237690229016192333550836165070180403919424878211466649801504870215390023471601274946940863182873279702867066036103991753834212692257029817615009331210141631811797314334344255307172281912800435404109727224292762370665682819910342338482373542206444990030477049494025708088711070646673515736442952391558481761491242770645835089795193764062970848719617719645780851317692652474748236401643214768437141681810596699983843450947987608194528088552448310677668965362107055484191739869335978456847291169363672715798754238797946356724911826635477670471473443475740570882405239958474810299467722047731914091247558821335620297006915935997085790878858378442881512551477372361681631042244819217593498480450874634054172167721376188047109161601893291060420703307930347862158214974455668157773181573682359364865734181353022899347551076233813196020877272301867012851541303435863048066466806110732933765564337446832910021213993743162946141232789969553159263697344429687981693778481994366443549479901821766492090625136384381840719052373071857980529204114632785457616137604359365214429788146456472062252154958825405463010625410060497462526606430839450200956731497626226630592532359917153421538129078572245370313498396278272214314233469461110308308538208208844147630357310204668365376685104103982135566282362658042018516661431500652080019983676388472668136991216557860003867250281080436919360792466699300384247060695015969109909331635332415219790880932182827620973408402499919980096659788361893939171292521445084473656973366656806280032350156803470291631308975441955923131794989561619339271928793683019483849670443665482800388323234473863131301012017533500922266141603930298448725563393094801755005246361444962065759546976821434858641900277332192907621866983715098985668874766369830500992425184217977218676564432906867664091909840397981809384784915748647439249414615521524719133919875321291255707312712210180443684587868986647223183608216635240794401763377950367487416694508415056386216834955616164460545108792097997688417860874913997441754627204168937920432358903877808388335352749103218389815901850283608559428379155513367476191441075928187944424013311621920985462929624574789720090144281789109593575227650737566676521908182081055619004165923576568528421031331231535460943591683925483231831285391667650651982498962271869173445901379911595272306358906871556584587064046688023769336889910148429326625010536035763421958163349070356798909564971399741008762594277468857262877907897966170003019189821176175487552288544842489801271117085857634372591254206196130018627777292691489373134785923079005564647252376882858972262988920567514962636645779931618972348898950856440057450124618279291515125261694787336440717741231493016209425898541873133527201083634175993102799964084285083797227135118717615173613662095372374632115387223051271921977144745091741372226210275350016465890034359359810404341292182913925714614849950110005094351076974421029714136991042939778618602549239709766591683747966717344086678539283045131065377154395798526562894341268533250660791924012023601249642152729296180449843519073848829214126560898172214834697260186036435622115971409574879106279585112285604013771460053370166528381674216829452117857575837583062138279413859969776108222904836908144562223305128275743148148695029799343611637933070386271990603103936776250806982711302652101540148271771726013001634598493035012530362698046145528122290648143796312011684655779604806273333873048057197141041854356501201228563164773843796518179251371757755987257608940383697283360161741295883650047688422517807005719549209528045730044051502553507585444769747659306543576885768317284770418906504947947251937560315420014899060914530436187892834480373382806909223322150084134997288549766770230215791786310341605310346505604911874366248791596167133964065684290442365535043685771868397683165398418536731676352518170379528746315854690178405376368248389562427877318390805177226314451055215755166417092448647052337984888020000352907141714004013230025294349610073447747942449132816635343168689499109637078801233468583433656247580292136914343044226157969235330074085586761246301589933241579946448514159156378255891867352982322120258337143102402431540190138480156366088460714298253089971594465256479025253576732967147709054941373879653723739008152273935984360570150324985628264687221850562190676843073419768103369497877473229264893052965919152232328972691805720105102546225556830885327252141809588146393168951125978851095473969018393605857352957862375342134103125606056796175578624430598785516530952196425189137762483588502390099353575533946889509506769403000622563762961565048680505158538734540698877089059205338550877309983418076975901754714956468245528807194873184922295845552927963292249467414942700163096892364392741127480801185654610699630918827407060944760833606609850420113497503023666376709186884284307014213957967125854802645981979351385456347139639960231325859753884139110791906378489307230050520963085606020091260930727740730832963994671713473772821999050597845916377936835050584537745928747671593286234458912223897148597446752288635624315160623183154876985775508703680138400933316053971560003629087578070113793112810542244416545097580675043754824451048102076979306730487929684787117431166802700115813080724167710994974788039672208929624096204942263417054481150432180466152476864724562607120620261859326730917667697248809516899309466030322985217745067042383122488772832434293378459492886147450328693506406549656326490096912588157015337080472980835470329783271518661906235194848468100145798680623391857716397744769696216295265222517651172287973256433064746651895977069509407864274778549028759597937401924116892469718621593412774763243945197478929124079733110610082300814970219769487023692922020082156998151116797555941418256816427675820250132303228599218485170666265371090423021809303259050649632286094723846830802346852658659332081524909476691549891794601016216672947654077848938441669745563570565410908869814381675206820036793611784763891350969264407075404801326191150998939472476483086172750563330644225371796794739569537599011474025017819343743121417852421442560522016928708724127782729855567672733982364343280803522820381082213775525492578862338983624858439308660838707380270665706870719834017249687735362490307589187630487125518629745568724781708276196779599624061328882363464003521642253946399263170271471798990068950816212600469334571468256755684372742427137167215328304336882423257410373307766694994847659113401365447928582164077537505435548626646045100934192170247415253054354195341494333802425565599158178085529737151695802238300187558393816248457732209290485728499384946299963683905681840300708805357953804397778002358672594390723119592311430676974306773215609688683610331231989014077337197757495852521352728160149334720616344675214908969269126975385566705879206230351440751095343670813174393528091804235929764791543622679541631435802811968886655387677055146256133921875858156672904173452631014793215283897167628859158025138491426218514236555867870014112852950550321364403559337801766642610997506701581161239702349394476843502229271042647892467382672589781267271595634915847895195875912774674621381370615228502829658543791896391504474356860448304506509558113602852232448430457615278083180635410505276844682520507022627306886682601780392975715995070881172780462355058627518393712689780870988192914228200752855958695173057332892354963695163330006374283169401719791701208583627319446796924953657966153558844088028482756411978194047601404838636302358581126618048080106226725805039616794840557927745176321777170162410940009909056920822644028915355361850179256551464653772335885985144606036552866266969434755196308665573745166458322990192752313754897065966217499914984026517398694063353075737973402237300834267274739854614894727329697958834873224723497614024077366013146245119382409876160928479680814827836455529342990836795759121726008871408729591847633746146241079844353062636266548387909016551181547335277230018990587632110944588469365353819690613366077123523375461997706334962295005922740356282614800270270462953009332328385849264086936368072730523447732721066824676430174766427395789505756060939455349327727500105914142133312949533268703041970399697905100114872897738744667891153947491732649564337355641964557068683814466404746060154116849120746613648665563813455642374166550990465183910224338019902971634878381003158753246659874022357471387685737224964962708471683026564821001688602945882788658285316006179892329448133322745681866594554132145831947449458303550120413685447416841542487188594080137956165291695739371579229435572636484242066821192355028582101772531521042654669318908203980905844961635771474486095705739600220986519334891851192041939523026628117051318843386509710682631442393370927327146147384288184117149956104012327457464418227583776456321094960092447288436293923610516183931023486440468184054847244015165437012013912147282711826933377382457609504179104008199787394370506479233005112527149293252557976050698387449100798189292807953687245469389131882628868217882238144504077753198090556296121305940819309138465256156861639839344935036667794255751423047429632199973912371320934615198031040793194811464165848876160605185288297802060933126412377105053394224106224803270537701374602665980480214504555653458199243570185026890652806900896989004342718543913222333436058983971152797435064809565353951822529717050656214136490449539706454135491263151011236467359948232950258940162076761637983513138291195243355440422239788912959119466970277541724644387033094444228681326891119167241213883419034915425878725080895841533481095461341226051129685762495066668613843705041793792729745195776209388064284928127139603990409206242507891236003513331408393070589959299488751062339878315610385320883010019450134025590965523220042854282104730415625851540581423972395572862939315393940553536389403026498247293920882333357761433932397289073608710624521770444837172326804555823623114417960012377902435211011158846566081205861692958825783789687984857106147914306795133684627776419446267266734998088838232369643052925032162523335316292419666660957018518769153971156828100401645782014649379092781289441406094014797272653079926687362367369780187839688103303561417660878230991860991710413564888437962469965650728624511314631597294258617773752648570632838622079927166616198376719546032867302492112568469931505775543160656567816013112182646795292379344545885559789904801459190444605800784627460440844543597376229560834292936970220938283645354343621087021009879370854006066937760893420997907346656416140234947108916801823555704089731543497634996040968061139849171897153590411649272363599128349462357858423075329828444584181579146190652521423580931110957368916164875701474591654653316657906936625192294816763424648362027380301647546226672945171344938319994777206271668042194018018714619826363267146022093240683597629185494523137522492049886757809481204612303509626744477989473289932965127149797424963069290985173837094795691504043937961496893031379667889138391634675219215380127412734809469717289225748587287881274266423123324957064001929339086001050158220938967120490876838101062440240285919432479255167284254785285709536583744552198112573277081436976296661001585635835311760043375872019063713475853338329897740948252946818351507042257501294181155348565286254188278977936773832830233260783215658929032849091262164977636031292882918378693466618670872363412541523551651030953490324211925472211072717561786368223739083609738198248241081195306398759976135716294299151809799180628726117518948449273148170042889782487197922279827551670340890695885800787947430135350562669966161798791806877377915168291918585230752217988922440279203542962261112764389928758788328278111352683543436212762802822026732738233991489234023829004346590367869080109014856785416666306442611714944584024409608492918710935233950764963091261690651237706256564720965812625669018080043663142477833875541435049252554524450501695421894700922139333645665775381954542937295364462003654897835485705828162274898476371207259709921074457687731680771953856309056580980321744453537952466502342620649037617894724095325900344318420753513123334898042805712907174628861471323199032150632230254453875692073165158062048569768195247344723409233334383390794010747467608054166241308720877359385830978452662163644751021058902384034700087793510931113194257346296474122148668025474494290931247419972423832063427897745725990721398902328937807306394775236123894306473734799196985865692002930352323287949075342870530220230756761532365337989316932345481846787796637894901075661547869962866433363976868770769710360294095499188385451972403793523876536715845904681258035205849187153511453915530009901449020784014573916980666621834818021915636874776866531097702364863926868912799069654301027968208688231507008409918411126905722176010511017151387276784704315452834717645412889621006721801711300296449666699376397475431350379599548278590957502128134433357832377707358243354124171226684076804206385121953166554400417600702902906272521180465768156903429092178005659109525223109174776749912216014964091033854138684976421678081345365506042558265841122433347408740954256175545537460418086549988458078818908298820806545554328455970533155866718652871865221532032138158893428629924583721837505567128582304161693653250058924591106065537307847488955812687670659765980610424904090016675648501339363493514557438067281001584989876240065902141465224621253226276335142040157187458805040295487814522973425125257166356094357391757704561206637428945641556523502866753320867208695940004448026394765309962995035334185199882965569324219747407734277661801003872227265981166694997454527512144419940068995973774568102726075239521385050622743284108057516288209516280270539970461983793672411159829323132554814515722934065782956416560248335570569821806172123174302177728624897730158066778899717010230777097067693239910602426615698425153921198133099395577094936828777415272574702429430074104907177773613617385900836110204585525371476510701455605618534089181098320809955319376643366910135529510577937049731667800140864542297966096740436135790880906621063472378994880116158242685997375699509898065922047093849745919179865074972678940694573109110369275020125866395208490258275896634031881797687401952811080241272890969047262239814130132800146375576904193268162834397744726807336353199291588950438736820912362831915563201848444230772541836763155564642374236927692117372551924328989343282149270600105190619123245155802840091902716391503717519476129064739917608015578140812742531743289520657094507881499158227256908977942000004886110928940840920755330980312902557199768047324043915283418693622864615579744879368684087220098831799079849559652248390062712040824801468592369991881579589529330570983984628935746966350322964765844553724906348862954557824359786560020578738488023422819781913153093603902345422876849942347064869883007643456057990387188061609144785757198172294852013739006711516385227285579621964619744900368153131080865168429478972549329733083728963154400510280114242946283391197842066809084467488665029794726665214762255930704480789688591466635227734756056708523607223479449162441528522566208201170916305686635820155722637354017274934197992677095905954796678285185785812997193585955301787111588785649862034034884687003484724988735622084000543527933622265091869605432352189317080774857621069598180844160023087211832914308919042514802287187682571669472282051821935405182726256878483832383333402888484202987090246746550623111697052860828808036157705351730545367616754361647260350797097205417736372001382756345111422673555241961611364972810605224322922156330563895494250239230079672012845090082280234362112233342292486413773501678170018817675082354653558247526214534177988850681946937878244469948409495176269971303526941760698262837452949105112619033738382215116025704257237891187881850170974681399819256554449277417809666824003898658682788959389924239984454047318582829511977176024690513905522628813217131270093058734246256560074927015727787500678543663546277328056056494509741073751075078310525953702008058706150686362247865821420118398264677914418852946794901539811637613012928369728754777072633466768624524465064146510076149821781539417688148866153902063567059985457411005381700506201021339126682442890828056995221667388334503505109834536338735452537358962632558688712433013403251261847103955621255446314018191020136371601441349413454387599146129438177347816998533665238304504403457480367890385951313923815586895250536122148429841334036809489327259388419143285809162535104486989107226518043462504297688471969134162741297909238930701442389411985572946022348476476087193979966810593335551543994623767061943940149156300899995978503743021378453683297931913234174686919702744707097717240993877329525002602555617524823851625701939230986235517903238967734777743924530179658248739635920281799144084889367840825164762611226403167359831298398517292301095876060144590277793523756585186733330040296608028636358650309921543706349514181578132728533794045483324061965419903774248854474617250762030080485752602877507489190443537859346296748218689233689865875709925473664713292259588909635794801256130310066634583611821226711091575776103947051896285282254157361817470096434825199085389423893199329365050387191050316754042855549035827264401046711474500697042896800138939574949250912214508214615122335846209546231052226449966995875932708655914326305193427055848834107991126429362435134373990558148205197884672819786364836197578319490625218984339977980360548201000252532319532449129595321049183281394153343009060998935640863481503050237142203036648128608972150370624806851621340661132832226332815375362673000269883957405925427876739123545323049689761761665246535179291097693964938584645981617740259838957701506023890001011601606419169681228276040037533591901618176214698025179785991133983413840648152265455147421400224603447437396268588149275289575745363249056106725567725816635073203262015513147575232624556838465427016056597409675471178202472001423369371733415793714367682259503322838113012515744238843775655553625140250107525112468241793950664829357359459093881820972907658860830755494737672325789218328339893713696844150826866789064022059054849518010834992998253133110479673358077928330030425683984060861692296355434898867169389947525571690317412077291045440749434345839664863606028971355744186333252770484972964101974438986890323424940863023646659329666932149263045512412544778636410868186362020900361004556521408213079544456558568388557250101696971337467828711311347003692707353934564618831022475206156094888955132140887809403343208823484819628259562202588535340737064353935692638422919798671432414174130220211449092773839205184363910467137575432657607279724194961691758877125231119103106959526270923991070325406046429577429023218554245801969428691909654434523049720310615650811338893421885474088697256410943479476864720189608051751850061519904919432993115657177128007899963316453879661535412242522093437680473929245375800743815609763151307784634144654309637526088381454108130359511985186817041590325204995082671865425416095735331749306468809814522652240124142615012562356833866785603073145266121109614153377368034854016997457964006983019688369695800696848808392788349204178037832055394551362509612834592855218640571037232816011132680220460046012636232851228232138689285814770064262205695044223472708740447722700461412144205470397013371939888470866084558796637233200914818514949970008003041743251230930891456409062659341953122576057844244892704263613999345802164615877040633087460901487097592423889059399203442215214788096130316791374231196697395522853307828189757983990403087997958010360782277976140711467029134620498938811981889832344715340758307072884928226118151755961730274410377906909517822924466952956130999692535696341221931706800237558294330549183033087560531184695444384808153288926160748894735499843161433810720662225647735681566133340361097847570113248866149428557253749992147230653445201386848961040047999157647972232257519750783995240689806277409250320365470707598233406566041970834882976820771499357992922183702867698213154003612280945570824796383933695061825954861019158833336488228503506763240990585248770986165787463885084894021738614261614699996245231510610260072091708469532805433968235109226139113239842702897958664118461988978166809378424048326165276961668666556779279641209275019890560551597377259361395659999690140558522175786306113366192796405035840399385491922728192439764869187568569522074172519990447887568145894705801890906772297843782052638558062362860018667948855857209563332027865377173382319033865422996432222722600142123320418022059326877129653075327513154551150579853283209809167442170149161506277550771354885280895031319729833620535879136435025612078986652870873538038689040621009228910933890313163911138663502203444355239452336173047915335678276460791743977681362993729891292319716067028910750758875122088155827290056486801511699436323791577055611009255100079024427925095909205621105466575092605825269453967666374645124020730197530814152579276847186895091543642823378159311809109833050938403256328027760010362178295575392866679873244633948231345559779065491421069617827855899580407517501445196396305419549959949021954995260722416733528954146570732297961289811217042980136391018863673391317884163755647219144102195265453481439541389296224700448603605024972293356773242256734738198129288614518249888680550124777190738323247258021991057933030949961867059134795251833397195756244806136616397994591071288991631792298087876677196237087229435538059755291516190825609928828413991434590794506928574789829559974493739034016526083897130402379777007439084780913349271641326712199565724906597884315867926015418929047300773416652382899239136804688153956677791655933307279502201914851003659062674974234131588504369827252428685768402706934685487343477407014121799453081063603328633975271394237047893885132636847013017740427471047075472178363434999435146123601486133071608848234925523857984844801821100739884700733971405333919919374479120888274415217451282689734934178224645390787392507095121382764283976193210006293079871619937231151153711856884318596741141854412530451433847089415614071085688969200029979570509307496202946933974315798612835291350896119979935192924147160365033918669315604777861990691335830279164766160609686902242112494860974630215336800755971604866200707042294542863733962819304259812970450987675460949145663331569714974015220327877879135025255446497966180630028070378869329191526868067460235959731778880452065635971961936149965546059786423047625026913852520299288904958265814068352705737110694497859190045998455984367409829831645298026718715541745660974959605137700233001930651459861287876464940390112931755179456937086714723261040468558786850948751893442247901978520695649438359984346219088854936434078777006605529065550872677666267805241598546059448551288110322839169716697491448770658359076230801586459611012866987575768452485755167772274567398728425284613093062604314063493727404965323889235664155091229877906234095302917732197322819352615119359346844899438031801885082551188601189425295785872077430836342464887299561477871120395660491846106214681887155614546906870016206979738502000975640892917738182816024001586917440280917090775766907430411361251277453110298271888916457057131582204748258180661426434357085147754712834502811652717295555778907699221169782737632236829314189747391787025359372505262422873002610100876814786237767469416048941296942512793028909899203546485488602912176500151558739956835221199310663499486778682619391918019200408937688242552021745595219983542921325176823339773397765565326779278891354579130830679800936707975694918771264078037473294149760075545818070330147737359041029790716118456747181185134034362851381297337413564139893921610081112504002259540898265702307228524995284124397004172428756957597139027137470910528875190032143126092543572372196275664053738372034454075614325642818984266014528665777972623061642314825119583734328301242841131483502432014550279935952241731229019869751988116971771912622198620816903833889825141230227718673176751102952591080293350053501470561727953049023431949997881166707851123579380805568993711072866249809477311268799010787971985270348194633707917444832746545138668117659948488051854459975234173728243679358072813631751230877927565170188875553959737195024679815117105405812915308163833767153741025944938118735127597006040219821298561721391772604548084774015728126856660514565088344873935048454091805433544545979402009697990934002769528594053842238465590289990747340567671608264361179020645792616738928542240028123917269499846316596363893467616157509902104968668649190374556697725137469429014106867870028871329316026236813230841270497190302585037722727328795480032067646980532113000612568042458049643606109448919572481420196325531647115647782399195633738816295834700231160412494326004484094771308423462642100457223794006417757231256282367551778015159064966690327836370116612551967834668250217136303756785950312889472713083326070718337661335525628680950167625319940006185460730678065425399876785938221028913525031231250940271400550533434679429512441120652903454747806897686916255583083392149193957760273990976855322972969133778499910640889479929298517252272788749180126794145949679765062976184070010247326792902452429379184622371679228299861998469323076521395498839399201534369188221332796002982566473933518891735668079137483087423836325444354555953794913059332722343387873535860806583885228349956480731764960902329572606392196620004645630897876510300848079876250102111024707585059312017911380563453583888431074748480847172707476431660598954052674205228693432540908560402067174248638630845280426198644257549560335625863628807024679805985559096605528367023094184117318355724021103166359749433519211682021987770322922382757093363084458527003841027463940738651956865249659238541111252317437019901177914156249267891939868712887963449077169575668611760040870893064536811533910600710449856147696609447278333877875465478098315719684048122069361280642290142314569877645343371186293097981218579950083679162207041522221428839393962019276870570234841735015935961250191108156604163308332653463984313011475760630827427116519031194282465397720067944180299000856435221067996676498032278655240029114241183341096617643251684537240132007184441342196587196179070718376054788586568730275375793827173487642127702861493166127459365575095436141621582501313242410246542196605513402980580238108339059488117757295454418420486523798367942270066793044749085649903217022278123051897707411639281672746026838474451022431224408720867617779422208460770805404352195272798767496285346269841675254322855604800301478067899871847728163402633568776253491660181337780967190622278235193250462630547198780312485282103888988895568494649381532559466904041592717877247138576123986822863031550771259684866528747802283519184138231191840214872381426768384161489542988248415573209872836823625997562491030222513706922641623967758286224669121297066104952516441399404893210288635927671501425717755278799930281244458075765480621015406721655930928007451019136494877739491211664155208481215764070051933960164113820282347893620001432338873498441664905506628152186254804200145784588956382244450721368192446913720333160661990309074024944041839060174503886259006705518381723766045063122415210262611690852651877688885674767938588315517793276504325461228347691469923316170856160950503024944641927022293388549406772115129408943103411170249352804678341488831688016654366818046622554857168581062130815348875976423137442904200106195660578005170715607245289065865525614806954562443987927023036343504753508460629980698852816131960854780490913190382435817473367533650094745949949129099629060063557588857324249276347535472578277942770753655076736045977799926115377857470036943571824722472645521028706226287731786335413110264849257450712672744416791108236447319114385654954459411769211647995661887371727848062147626975256217898358107754636681388126406162847427159447053850628549452404080733482790290293030479867686447700432108141489447434078299101560493417254752102274454640045181970692548871942291567738397443105908437415507793842927334892357676199880783077284804718243361005941542601353217813602057101149379749121936102594715619374797149640694698159180801577669331115972898354963005764734502250698361106618604724582744767365549631081815212028982962772696064583199344700459676318981165179153723585056401336547063484348510065903023315485733007669628443020026079722191052814638054641008968702354444581592354247177629042245580365488199610979963312759488446160707828676879293811034480469764270214875566365124716963526459940447211287876549102016944923470654415176872564981178228601966712227288635547233990218825441227616798685697072245867909291597459119178550114040592050191424178953121008856080578126364555297758872481604268014255843741342380724683873998658186234605647255666157258233574257314086327823374575406081795186074294108729858261993962639011795508162109867309840839209422833978729423440681879536601568361811404944696747627293949335906110287964204896121913386936405777006204243319696161141528812746789645441120767236657737628647780882764341305044200783915579757843605362297296928568114507881488858577582674975419396554091516500886215537229170954293841037900104621556700632515505562114167259452927355007714724319854747879605108806623515650289350324524848283668719302043610215294681993263878615685221613880630396426972388947906492197710306212434069725765884025701250642405830213898924912619044762380243400053440093081679237297600518413061860013567526891957949523946419565287149378854229500762805495086304596035214542571579491959155383825525540658461952414520510551051468672427665322770798985117940519332640227367063024250394856593418443396433085255051521248928112934471101381823110232824303224803651010463710806317154430979164386871013151695518510293794066749286363035351190227594597645862802527422131606005489044774975322808635945089608149098247053202756879947512643050234368832711055738492829503224399450248266388528431608780315454666204108718237220520579329964519411427117217788094638440215114423845079254880378698564006218874561368111875267517989792115815478617893710073194040736567267265482624061907107110779551431319242183192251595981858223013962368777459796462304149593288739762356556010052308479270497053882756820318228775179546962638778586351713932836442974873097679996537541241289935495756303051943754417708235026265185168202277103695783344604095870106665014925995629094017026121390103837556839835199242317675954053565186610302166764030507630199208546183419048705007772997697919359005568706663218203147707946246200822781094427839090196461705993573194645611743813434138293480388160439469518264443974187721091027312756572666013284476010260171730345355241424388885224485075045043230254510923894877080291903717828847018229012811492344003731407879370913883575076033653208828193540848287245570493137215897886090146515657428595578082729114245682812268497629977151555817255775656534505007819072449492920836927488191930693854826561695722720420547937174879765377599159942332341458871233117749164242218130951195626434672828640775154468699690881183407371728562044734067898888676950529100526820378185714253047067354533818900727397853155010992233522769920020587411329219495238702567041615429970803035234896325305939404887991317213372328272694114222733849821255094260089232706237579700303837491625717967361220397182924670616594411115962352547794823987694228051186285521284067668495258752479897552801750512963438826399109170113250860969009779873421631781294296580482939924749640180528540310093518488471274487953014528905680375096212993088142352140300499410983362032186786035078236303060332499526973894842133183035347002470250525342153725339389698785549478531733217917342296008844685733468504458326746810958061068111226802408427263142768902593662751031374082906778797924373863362244775690469384030783467821871952299182909299427629556462242952000718667710357271730156044582257451742267445067664607202198490869740855146870145493201563220942228880775812658276710909554630583299992035743787941827940312198852138957852406424643345594742133252590097212613034369947750561592611031560312537429415736838566863034470363129106904517093840082706720129243138048433637302055056271988858143813160832158245141525508080437120139942918156992857628265503277129526472700439674301242389441636083142546465411995246034577649736903963245461472760646558351761978115731934835381812396437212343569869710192586430813422490734751503353155925368226914692343256597432284896331112957595174345910789946775670432637653953222069574874713535659788879097673196117745939215211681439256524629312678648511581202121265296281348867918792740037860513315275377491576764828174393091609854106371923683051440536842904687327814422572348579002786076263051935642026929832834335145652247077908341130874642920532093647179239324606372696041309618274290343316834149195916687031435053473719407400433301212115297852832889044942874568022858122474079191384229187806992928428140438526542478105991740084467234928559753904881184084306649680716133719887307191808271872023060579354483836182549607986881536945461239345827459329403222510347924365356488694637113546039402277249684791884987333290055587049606629074572772125189016628209654695771382323822804129217090106804692571345165844380637584862480048444555090074881971103880699279880998487218816487680465583977491994634867720565228177461949340916695242237673085457008143075919623137031819429423789771098222327448398302650963364512293357140460945980802974104057303824842311516766117493869068117199569750744833640916138542366412662069331604941437849558142931396942168273058724578965579292337038595257216388425288096604368615492180725122393019475373480617681297749038137007267495950280826821478669834728009487361772456246881567691232488932602073138842014346778147707465924103508632072713174627578175497022712480885601215654796058177159316998269715182341796327375188893505845371376498221253790307922366699512219211366596483176820664441026658754231383418639227598528397386680665769763086808302943881013483475961156840944353094100244055441293055476038009072029200090419671940876735871891332229054888061609232807637173009197513665873552455069610171062151444517594878232017796775427608861646062480359291907688504373191126350024099153177442198780970014195502484564971016552530323821638219170774555790409990348263672964996910918843997470704366319648967059059789178143604000846130833950651555067263447382364551163927773031647873380805197437121624665257047657577741608386379734705589159281804799323896217319717577102963560377366929174722437017005933195918132054136514844152986093681226051061139875888754573642225974737466551798129309065764109329513723711364373561819334895002565373658590185021372432244392906702564430117806993034694015862086099352937977507889988415281580806681149442723039551552405625394332020232142082732948859746088290906273328475203184807696968439100034330724210400459770642162458869379103451533245878982244843054385211552060300608343916319098584622343596668279121947528572797788494591774456518444408532587697457962040356459290159747326533497484647579501015893976320154888012161327046331325914336771608588756816722179018385018124753101746750839214774567586739715525408906015250673480028783540919038738752758995122932455263660922964568170251885767592173045976511628536879036105528397561155212207292072656408754712632254817795620273686069303555957018197622874496750221376634830659053577848964230848506666287195408532446840562079908872748086363553135702705452369365432387216337577094936901777705877088661014480690782125616388160623148287592910692994608436322187500351962098446238084546264433860210385881090517471954100859286642323860852884028783465477029772132717900418377866733132868313946191366130539164760913308271983445548516587566673744028391541569790721145684831228595312393424219384815177199733059085523942889301813757729705362856839240787217922496543553918145711765023805643762457238845946624459802356476154764509950542735774729371009886547817569420531550977543893511643792932298855094787585790717559705698752337131451497558693750455148708519139627448506997571918015528099524286694076706610528816905577722084460975272777498176967223660273598361079271504295645772213415806808673692389131214063821218320742489678076276534606202123656647197733231444705918852201333212881531651747224114076853916797603025783781806950364970496191042692495372344143080117108251389910206973191856477155562714625481647949809065194122346654916052110741813457055550843681265123577535170849692531533737095086975178252706971814415537070526091726353521835112759017494968044827803920054926809624309376032586751843066644498967149526774057160697573638191895119466748518898252666550605019764766313610734650704271359584841835772127077080293968852190650105137579653673081138330545132219411476349324872033946691636883186763038714351789130390852198954476210213528638466452231190299704601569396863639184973163143038240133411499617395146506296888019012154316077368938056034526391567305857047947190881487714601679136577584052927711053817029784978618428582049365418634923278332833008091782795663572272831534649469635649320510066306880226877762120308522419141471420961968994094269215463397605560334986972563372921453106924822260423305460416339450367988745962095644263085374207452151421964424771962869835684162821384502398205137667356135434467845650320182365135110494746270796379037861430909891889352415821383135030809656126946100410619643574479274941494649013856176646110528222701682607691721179307575347679893706922101135749813976061611295166163589425324153461396383150752412711910578926939779744673887611505507622508354067744552010096819065902087572412118944470222885696234423404368967946083511825392214634372570539716464464633058225427928475814916164667050090874485287029319048638700914974931543512496927030341111937893135793826266000134920607910216814599145830231700044836205833124956752322947310602574774373184366869368184050591192743491484797439193268455471260858314768359747019255509028228337819709129001055042913987525351771978143554302410422153983290007218885346851812829052763690555655426955136594958010426965298657444778615243761570947510602293708520073341921540316891634168234406149597665882667736413012291144799606815432085642138419072314230632306163417895668985013905147301459465048296721109769787191050310104242089143145301042392726117328099290800209679298645278789783206649833606612157062362864842896103615584591653388757931464872617842257313203824097316432328705365012837275324849795885251616536272493936742315052729442353744773746563803878163559054225621902701785170234743587519617093659810807256260976460907174531012465505614988562462676357655616811127976101242934268942195999341002598696917862650944080635714882725030983059579542762465832460395193579786189316252321003481314801510741885168610170448191951245210537144493327468476808379438937444549169078056106615092854423899804047992603138540800955875337722440713558220744554424139328431370214307958756356694942171924963040957822834956417217974869854513358937669861865405864142290757083459211316228353074176474006986049523862476304293190166362042075595994805136420500807200677677202308325285478426218512874147294135696995852385962912103630120568186289931855489709176752830266727755494070913231364598796456684577759669065369414018134476047316000830383937865120162186305888242450905309789972868881627796763795179747394612529168227661344377922761155271896148357642598309087282256608901592311918687915924792096281901404971764284481776755313813323015588400026753970304221221947841034702660944595797382126497815409058034197619281110139684837831068634915450031029710303040379240073411438825559125351678477996113526307867937964002615102781833601328664887946498418803080002620989126990368961732807616755729170755836693365225712400188306502553150231016449927945139875842387309643810554552122964979263145168004349432902260699633608363021477667207137296012371009477532675430768901674158732791430649035348253052005593122439590034755287270141808490809466905855999781176316430174559730056711281783932463663760070501910755228367664033472919108350856332008154645441880063626120924921373232595603006110058903787088600837006827363498186892740669153305487122950661351083497205755938506755974137372497208726665007856542289849907297383435189927976611621202692431632183319289242201814138686774685905019211707474993677948369023976977835047738321212576191289017806681802863756440421089203981714516453431386959500729625458287544297196097109117039571262154208064198656094121096944983609414913453909803585316809250620787661480807812007368897243153574760485723320443764103404406188746581032948684104130034877271590695927537564536958735557598746705610353055718634565241364644780290296656918224778336917280802881640241304736168409811511107880307193325050862644956120864594019693576599906253718661135573903744949153659828758635883470092283256191790021498909517293523418443234811877823659575167573260518081221155247503431794289348316243614042040945775382448440338684259100718000086382164689891331399177460592568353091003450908862675995539544221092336023412254850858616009989249079848479818864291917565404258761514035110893244441533185014647279359518778796512332608613691279401780977068754792466884993617518942537223211535460976130074453112280007454433642799741966562676559939288681061869424100188590931637195804529554980262385349539564661424673786357664413521587817699278139294432425846469179538643239278444282425012963557570345618787394379633974665779561802595388722837466672117675725562960595765428755546330463806638324489491378335969766315980001361519924925626653411534880220313780922387439220963004894108888061540679004432110901128178472342327337860586729516288395861160075456473790375054504827281596048896445124995440652818791743208040778722061955198297117002857576278526701070627276048432129520575494423177836678491082083741551255112418063736976816201275235560125971295797848378157579736897899288740416107913669550968629708750812674289532649065451753224084846675551890334656955953225031232877278757353985753588446487443789513475678951724278898541378530092563115630214703838496549939202194777059838278277348369508591583210982630106091518049701953550456910035927384237006083395114097750412021264555302517068237255799103919926704935192440753609485375078796960016802039739395674885461274962114487841682255363229851494758145052797775852974964533364420179588182090790595586318358902346058443457453250510117307023205751355652741422179551595565175765524447171200725576870236533286127932030078582366337209162858014372936791287819648897244518590999580318894665499307247487478926516613156770771199400578766634931980414657899591519042262431936097481813776741193694182316992274836115970875915021204093220911131734044562907340648977831104579528103239864662844588536467523773754088159202239020545373635690731568109836966795316922248336442854200747622212554025699861046695834381081350433849510307581460979139775274763455652325369283229474743421987262830878563522685766827037722759794288525931585687392647064558822275142276370149340132192482585811739300558055940006967101441600065539008785692065539355581377684948462614354360628861954302929533253013340722087883042036597888959485658733980612916411460349934835270486722854979785442955956288710311588214084696053471533816807150298158224399871229297439086137231639347998059769092190491382765253681645697857792726383368308046356826878984692565709541548539760810129605985323078358041199156024548506699214524382628392918959001124389264952505110264386193420593965515571215630362029691864037578043895486140459252942801967786121225257334931501690721274226404490005996701681560527487515374479584945675321821828990523923683474505663879451785645906075039396632156122094317690331807355167922189128258321580844488258915102238107753013182739318307480123496407915346584317340522795725974537491295065174768313371797412825654359984201044323128854384361988962938597554804661986439241597225588793799996878861107008580728604053556657951700265170263902862073559781608553939589008478897899785110798900551824274419507779196479311141101870772098154788280343100402221317308810410573248376467407578328627142013985949622003695691642458791487113671704842071824030935654668197634495565925881324330420746459403961476835480311191745293909125809182755084641437864026100533096528183512488523738728901378368011977831799816515790504042446517143175185311325186544072295819001577393092336529811031574379273255712626701438455957148491343632479708327009861359812617691931049103069306983985769443146046383916074855027101146854174174525592968946076511923633227130419607118677612788611076893638626241379822497178815428797265706763272161126797943335653128446279615264230013612270316411215555279330268590252582400784202419092637578376798538748892905771558226909239460111943746433066473729757231964708764751167514808465447887581742135837942825581785301242462547170413725779128839804451532164713392231504792424333598592998402839342159180711533660155569967712237811893463587708959779052506195358289163407589686752939101247061994353008888553342918807464657805227929190300460519888489121338079689159880960396166912005523828313535761354763045259946675069364007065862747929165563947242170847158278202130840891139305727813281503934657670041735826211973086006593268221209962848982695189622093101307208252804218272549148084733697027018315266348103961088858835359906457386584257822038546229324018047694526498215744863175086065966514945366733817437293177180472592579489284372652833690273539201202569167796655189872608822448076364724634580498114924633500903398555306491421238012511707226232824110088306925979532633976026404053068029934352369128497704799762467635188725019941169478945698276810071944832805897095562385923640200047520585742922827643160949981984763061378205269723868378964092593054630743399762764848906676362400707486479530312701663245669978746218964356445082292117311515432527146626464997419560698496994450907326642270938959300146947752068646071452222465932524222810549244050489608320645461793298849190615899120096673009751661984313399184037221379422005395443858609197752798068309771933334562542211500671954141608552990765940313747727581022277685558153808924362018473919860988481836180528998483196531737407855020472022001073115981670418125638383352206489673645775963489951736472911079832065313419389177069404353788037890385361367921511328693048493546023327136059014586668310516432125219758018992680045075917789455704357902474489229801168197332438458030703868830600710788352719056804360967805090532983766802071710912935636273919105467795273097790933402018184204393494148677402762570760448069695113974946983860352015013101293994901503244041183539219541218276353862852637637406720726405916165504910078670469861560552801994552267303255975518660069417179880602721706046064501384877152567601262195305408054558607593218089097012114546099408715877797062808930986365939311077445387948912065178171435167128581131329093890871118774373547747271070459502154024844276120245702351923155045865131369686895263946888308798302004603918414512560300301200895435963357021033190567088695114886969302144582639961800928904266583105586126775905184977369964727365245786177009065686912320313295608403751659895975305170736898088455277501158232276563315556003109908906654915589240061085473968871255659117274773198772751083036036351675416335352216361548181331961157866883491026935586212873345856684695172023070655999585051246716865678229204515915843043317091645925405574548545195840831555801137761306306858815251258232736833506121754689422462573879432259627277863547217678553658340333226168712174431875913864004617337641369334642228099736348195713926791941224447965353946033743261471161580389329798534656878306662273577340508703974625792706920363745120685889750025352179294657425437961323633481623291837562093380689033529654125566629575999864186684801729191192642213899872083833970422764674138794735669798009690552309924160323790092144588753264806345761573557648867144083470790824047976759952450236052993438251664589082933228247054267363079078845709270165069646111411369480103806346940208079741429191933045257615272932205438104519928117595787822919728580663639456631051221786253801419850541966702272988546625438831589982529185915117957349162932376679577850256439035585239418587104836924691287066447946691530803730539034994819742063239312681601682837508048614163431264163616151451126756031872924440864342958174061969716264576720798542371578136273645877985061465424236449067389942843121721708455033816842439739776595363280841567697575015835444466362790977493980609615118466529599438680785406600109349009591935667757904577518050499147794652168443539120558800061454302641680849188588697112049020474475205892793970613173145201103597891578350844454092991229392120562622139493717421260489143243324970225805810970102645751822058393319674941726628281599568699808134110202881474652602647030777777475240351188558200628540540546918216320178114154074585471357810000979638939456018943911844312448403841291011861506379431546809147917686542872102092511979804404448405307211367996974747329130535113128030132099449071341695010874536635366118210290435003645158631563146085051700840426201693804492143999910753352717716649440237651951084476394270822319671290900975487745420935681747204268941798092943801910296516454774458161022390476302186571305664688411523595627422831928888887876032515011938098380187398283502764517514918287327882725859921170450294514052104706808921542961748027413767117434793167363464414846024917016763201419835812494878304296099794826889247902699200604591261439608794954930052743009375768938493303320297806368516796464442869397262703228007984567215972118142312685046314667920210024316672063688113032721371038488775995103276288166892662940340440642785193584515119288377938451854644771957015439396998920987311270791764906962774044599783056126003061680887741957183687789597421964527492030452933220544269860633159485287810223645016246188839563091091846053888881082194722642323736906802714045249823168483570163501876198746829389865726550913717724261782113863353466188453460273258809800333844470361505064594906684245513857052671238826746928891285713437340641242744687516945978695739821297343696279677011727415969906661083123640266006090299352147349661671494962652279656012367494922237045310103721184434250963253262880187868409859780889342325051340462241593198199152179013619585040301917963318852663995758482375410070217830948837244641147017960019532954788727818489359922590946265906097634567849580729489444853440783494848085424542258318064357710465931387200055104715608474210326958279491836394459735377222355837312084073569864136075533144253548942056447139240123289692796824328974749609365495873473293280454207536509864802939241528717383886663084237561512262719835598029172604683372282494490111012823044301379003092149990444134725902211110829397697662799415435673374792433609439405276577813353015902844400870606200904096378601145549365406791931308469504157800453588477673558473607094904717719222347149143972580829782283566368359558341038786383828029773150633856795061532812451184644160205878024442043742652597886574122038447566342143302094829038535908634777617663386692564944874071708308137450505631315367414515827439625294172771613263147863890213517292605837842481350203966897131064746645586405060938192769298560548235327644044233964078945467083057428092527699621202429947597267801723294687783426727181346018870313383571619409815920481440013906230194022486028689937520529245705256703977779867591053392586038289030235254188044753065436463214638894917538679807628382778314388373801058031088255572350355693138842730556284557609547916869011135594645419609618363555048485215183004134675216187198527592613939792987948030433154732403835437067367205898845948798644663111796908915139556841599203034513684964298333385772895984555086603642486103858656950044064890887668117256134942056859141556572834751594946114564404764644037738182558882111609825876957363367518854401117145519796262896549394599523565739089440595630123572140707544923574807446339832958546815503153197148300123291912907005608613834620256303246146198393596960585503540355741191977582777509497210038844933247472085756518852464502284212027329471296187099875783477407447984030671485090265889529864796547896296683833251688787576835745703623099938120454638938570338297466477175212444558794740554362717176058222498664906147262387731578334591046098065197392771531029014207261962620443877298055182889972099030039105894583148293020448370554072822449961754857065510154463724986127302046187252776448544582588390939823153582210214167926131241407637752539764782536554693316728633132977771779300491881783499241761773130975164354652816493606009637139393537512299344672599080974766633199819441025503537005886136076235366175014621198048102038513405426649507196042383900658339263967205957334787857226645495257486706457217822345693122389654030943958977992341732846149850283384006033438263291651262449141480812599641485667022283995936610660276518165604024707299382560755398483366700730421507595944329153140974787072488222180054083551567032936725110415667848150767714369114040550001778117654300388055042755028745982088945184331226648896420282669245302265568681973814479169115789803539172226666791756049307765451345325109359176184793683810117272246847941623438161802298137462803771347552088063148227135988108877818677632284604484897341439408431319669821676877724016809393642523110355613401172394824893290204875074696296495908289069854348806739677504116450713634247678544464223389356284080257050783283150324298785351031509615223555491565958443199745673076487253547820464252135656088016882564990454995254067893793644362596923394813261175075599450380631824586333773943666973505457125348916017633266802601315626150415315800157997707223703504874539768430827645287293422692692703634808885648034622806082644619973815335825263029324853265428237928235631006460847235806425139748165665977764727803449308037434193146727140950555817614618093843206811618570159450982981342455616334135599970281491390233849332235809310600371233255684214373734179420756513602918918093885792024879739862057828861764985734207303032755197041906513752879218562973721213633969034512287402823870251631881498905829055256179066597898685157787262250965780040122981610674616456105324783703813514254793630554455343494919850325886223481650765872840826779238438366425012700536381406645453896127309747157045779324054660467766330524623979788299603011040358867534020564507227017175674640357983279961199492653095665362287150405399251878921471793851639039250975262833579579066984341424393138930450680219939047363662131655800924018801104650395022891680849721842383191577657404156892091472603510953473709185230634454299214035448124990132568904442840845682052371274466539229553290811830848318969623217827633038948120259066375163002283820423616942829822586300151813035042517044540855620741342320681724552117638453534916603149116010381259286813233540075976954068696105424778918670073716561134038610136632980878528314704919614240327286937472892055244563060682793601227400667962059894869707202802661078903572130312756145942687917497467005121371317080508588433334772797428985228285083586609613784905845948259235064875329485798863109711746871952249447481676529919689318075828080982470281877214552023816346859213492268382337266576345403976530542766492176627859493301231364618076198908936261068301416246556897778469064079545290407074532733406180305381450774889357350164292965652399172930870899654371107626606582837248887054386984968333700654758417873953448627297187451912436155957338800778860905946865523493210391260067534890708656266234141842774849061560670515414042697458775628827739461202847420113046107888907623821482081693760907089311577300995637406437955885595152547816355182395651313415750831526147276370081267405509095884138805746151840406222779169965853471836856051180568455049652886855784889771602996435615023069293652479382311478345061313698840987680146305617130845189249272753746974294600552572507835984625199527278989360839200244670347502000069796860273013201150900869332896999538271369172840868845313695567178521708870400213776472396722765752008361659443111102247249574805806654911967364680387885997860257342691662201566128751308495055195202477091052273957871047363632896463828352060974781896416409804973202437853533196248703283300401928356035360223810637267798849976774667437270889184864546204374146417114039727774146062024553854569644587555419630809310414952992480350199303976454449486927047587499393783687168289843493296604108723311815739072609271587645181114687550344929602040390827796057863726082991841056762045692523859800315617698300861496119859324308298619822808173572887304504154172641908283450815285949205204664173188570706790251117271199866976284923756226984129334745724770192389695555723375806164801449478369881639393639919982562171042860335403347349470831360524324827428144453102314111686426112994797040111591950346261325862632316841506584772148682396673546801599433208345916901123199069816468853443935121792621542232946088534398636026227214648915528115872926488357194145786635491253201746604251045122709261383193931260063582977611358730912803652747921877352120657816847275048282654069808158260567971344274804828812402939595100519252444188810295863591666334820202526975007026781713373813945089038688034964132816145896631280531714583719242898585265787579797246850596256127261254858570762446072152312230690310648193908547151229244945383041420349758321245556016684826928434091223371582417927621141944997033137023403361675288125366354594375712476194542215555555312759453301758967961264086606764881982765705657818471710192818136093868043223313873656608608573362219308201287151441268696535813634192419663764752863486569649200653499607011135944574771722871641654679008235360053927241666339843111385784614737764072678828071576759531689505702850967223787784851677088111686042615953791476371622942883014962883241002223712658356964320980753677521515712949346605214806563962446883233571194730542794856463705981149695524134675950730201584902550513963205747483998725206014654225809225941193535603296122298379646572921253719184329149662982410767990299468094080706384469172852766125530263591321370757649725274981277150250849708221093576292394775950212617182551513008193980000780853784679009723157485127162506597156132320221770518417731111071229020352081869652556289416158677236875317810202811134508467018758123745942718399219941859189963078291173662575373329402489416127050868631208365678607153344842968982746486185542690585934029371084238366404053451154027701447512880024974526844532617417477257369356652546948055764655420378694735425380361406596813898753794700853435395872720642494953216344226268033061895720216976563944407064522802873971095250479361715528962005724237963076433853313550464911845382083508748683864054553822349391983035733106939002161929969107552277124584865706881002788757765853616456538023548568061851935718539467654280002598241764890538456044120755388342557618485118261406179646125678062278659599966431532993769840197817567664364124142154226542242062131495853557909483396543686069470735898873242807391069536273558460658076953224744266179458846779639042829058357446088368953482718513169247741806041220825913192075789233806697344029585407560715237850270793135161616437575638330092493782097696923792114581994293241771862132125786378262156137461714669108606106070365187921425019457640717672043552768377436730188593992365967927329541602147455065680423714365041962710496587222243473214103563275344961645291435703410049473139094143464973866131059346865955551171406762503149642125533540388325533543790453742172260133995057648192376818689693113627474130733253325566818946858614939898954176474447534792520498826760731358973029004534960394383230734885773715794827881530738775977113231293093683577629481959107876153149763259962114112172167825901442461983643138796535961097472464761725509073709018981525592095349130880366463690685814383136497757627745545118648080449730361694087502655204933773308401831010753919717724364313871498762016253607623041482399204979019100493253755962543251332943361643445429134096127726436449234350124030101355612818044694342698546683619629052979950073274752072266887500844435626609083589391767307568403295181344103965248067825085380094869306304845428697552748357535342580380335501567566706568731256566849417018109788512955396430433373078508803734985608888320761459150625418651520085486876489513866330962754440060130159451319115299027898006317734231008306576662760579795395739028395426105014249859103913349770018534017328506701876152382301001170133047655054446394556686248932056003782676557284607893490499393134672321663337246667230906331165045584930128472371882121108099627090068084675281375379204485675197132617887632524450277866832445949636074034342738419290235552558153659889347780468951387484930556936559189575829719967390133513888113318171938292874765717658088360834949826232401170040980106377866152272134482325471520262337170076235355327744637467511988330599112449092156501014402811446616445816805943695926443135319532633104307804164977561375243189964528233267685104350577244721693965604304646963248261735916786234589376243351349468511648244210104052656819830850650525585347335776917862540957300229375260340787231054013758070867788972331463369097422655409817249281893913438557600075315879645017116747426470448257732143064677530485654625360917706161396420198678762729818255127539020090159225314599206672343821860724007440144471950709770860187311391518905642696095738504728802662459542352803366676836034416456227725395444724513220230041554321739975454715936650858967201924357669153412742744779763551702345463109244846377676624206310682443516183282005903025955237101090610156018956116163130288015979157171692837360802848904561805694471254697829324156431454461075311572575470416108074806865379681285055800541153087832169749510000667658224464054133352949064366945180608373381508136768182176983662258377846085793701644108359673640221148807769458827410987738504841607981234791803842310100121338505440635803933833921800366164712241863326409109228086479794502341859967852645181320113488839735216687260051661119077200587289572427725807882810788569568475511060853771546585793584253576085090107181722564728981014119196107962360312293267082679634694091565874955347062897466378040992717327251388398548628004604021541983514337942377274323576461881715217252527699458670382937456491591430742008822778636065610463280898864875276951003468180159858187363729827019568379022876521138589493243279811309246168168504981063832733783732311299088674763431157279585087593628710602260151879751934857067545670108143196953498858137541472019610314936373195721461017816725032396756812299205028964436831575874589173120560039671343233883968878238220470885218200756975936838341402145722003723464380755024331097339412092687870325805412493961871709548922086241916783757619012681903192420472049632867721565045399327231123630928229637290649964222665615894645905319108085697200132080753566328076881962665918150075225168302952577443805357043143470699941594020404219501862998714182781703710331529966423983821856250326260484171429658255856706829456346622118967036498277950028840177612439428155166415614937640082493045152242997652347887676305945102289428853661684854299228687122311332543445382181475073933275989787159281275172123509169900823598920171318839949303614395708367905859862680423500420641921285284840719194393298533821375074992120172591420418201993684015105981501720084194206983148318474128117084465656340337038029751062869640594855976257090148254765362535520354524679904302597448709746059846482974168592607840219707797227919133883144802805197786800036380996245488469547965633714348778783756838627694626091408650481173554192285758990617902471374119242323286887752398013981109502426482043860779462716131432239765750725980942974167472727938036431417039453026073424158605783784416927266488030920070587250287191748488530892391926529953681995001152810075636212974180585993084096818082095767697613782195271615699290501722908915306483950102200311744206620466113376301947281464827822651751814665895414891302660709153644408147371058058789283539013288620015267987228050793672834211268039210612627540040447862856881682261235906637137160350025728233520877227284639862081206424327068402661060053918258446577020051391389614587491528237918976196588185900407405760386730185246562574036586343274241760050144792530145567315237965992125073370623847105892905575927459648241876588691171158773567112407405342394076263094407591911955164538401122101645352472267005217047930976244289024194233408435218681889886079062774627260465059936254067940470542796353979944115684251588755396020927771896188040432360704430040245940509571124285066988028896977517574732369932040320669127304401831359183848069106421751813691525683484019274952697976148859478072366384371398444714792601607550150456140195475866106002309661536759711633622432915173620123524822644410611705119945789344058577427545455136995574482819544966138158675675778892963271221598292414827396111807100706995262426826979585269283710105768147120847033112424761776553723012613465416550613541586044701570179241693264592386872882687313925491827040019470618470072360007013947378049921448146688522237887133845840514059731525310040315437258584434781299973221983093173917488516367052388297434675920552476769842762757137869387380084880796740299407717395481589387003495903397929924682607760772303994186362632378154589913459420255180322930149056373792480807937432714462614382883977590261318137584575114554262811363774664545339134710324335859358372069487995413727811183449248041349172058411851784292202422924740890231109295542317860719792246155579452517261427458755416761354033926449981547922886791677534860182240448167264152853332349867397779261249846162977185477091568217312956422282848888453363617215716401068244576470971423869140024790730316394237235978360868971590913519820962215428306326426344477525013078845872921409386961518009653421703212335871942325151328418316314659459706074939698319906664529954241107321205391433037095091806302471309384641299819706310058661159588669648834291583366288758879376108613821459858313775348689681470674127033174376464165080003102826147832508620443054286345767232448165939145156597804344840111840883816156194580207014643081704930366062367569731811896816889558564269498410497735269534352178758121419813944750626186235881755865063153188334551663338101822931108430358858820795446333056205109703433412290313957830782513459043024174731888030982961997963957604193448143788780957754634160323747124458406775506594535791612012912997800402694019658176014150391439930021279984026233720714901370913499144057013113414052116849932731906114120391978111197490771643474983116541992800235283281366286786098575089840684981659936243145636343323864776534644241816393856486018656468582078610870089230144425508944680694439730614356428151592130097903960092823973626141342427278321681173147853818378603148623565480359455821456372795015450133929110757067971845983140765646825803517902352878305439863868723223347141153219074253826009538113055380290164456902320611811258165807287383856871727383686693195431392174717895097970987689541782101149762409005721510350510649053956653883290963196319163866062103587029563554043044882049540915322738539036916127632593951528267530933346186779264080173423523847561652914131237155025049815692334034520763672435821695961511154159125305530939325427825905099590790274815579515179081359916335644466697472441509189093020801886927764604826286490293439104157837699053850508716194962336391680808376031377163528057819240307579606258372163422764964020839873748588688652711780112095826518589411518192948441945225720591540616863061707303034692989348437432957462911374578113992623953091468948762731660845406980393813621574612323353246324169994107081734742528334646173719918576271037203162031526366682977091680106096333463159447684863535983487088127780847511058330441345021903512646785234244947994378282600955403065457885699521962868453644180891086103121676095450242038356405327288572554799318350777721059000681200938365165332957770247903691313830830278560330053830368755465144029773427497377116712286892650779756354517146589353493551459076155161069400935030951708325957159991145940650575231408040322426689699667180145827124431379348957760414413869271245373443586035093569581027926221020319641370599219984145564686806738632822207341201046523797411446825356248789659668631912932460309123051236954926266823096892036885452678508408394078413948120521112700685951802222722237470309503164157060118354562482146795170779640399333286387288149712526590699345176097382928078523635624229044187703349961710402243519751943999645288528044471272953527214215506733208543846990913071499901721239086929430286605076766123275542919562207541478113689941648704132039813861027248570031775205053470653513860221961193934907704802844400170409449131814937807788126925751158568719713030221326961457937355775188927265560624744901034576512102954805192280646637664110051786291024848822646634504191834454196382112508487064097357380852062513226190225576984487515970309580901687735069430849756908095477303360442499928005113346379205516694356612973272341452561272684509583927890978509919322231735489172107116068204031686301742413253942918212764677005829908376086941462081183769825020957323653662398567971850220653592022891480622555576381237354355102649439259980009723055683879148913902504696708290375712693535704652786926437273074414719999232880814025041079060341833652353271590921976006849123592693927712206673793854481801097409717429079791239630861351744537722921731535375111837008009558400075896384321183596181295391041533952630233281221834120298018134229290740403905128693419354329465115677235709169090050428668833799056177669525903906958375550154774113534505032618472851479688144233953016476368485034307072145721402544174284256998974587319320976870095415461536105268682661085571291239296385951171101877811001981874494799152860774766226324242220342897542039830319902292943664336017970469890292420392932556353993381352687324644403881116613070902622126951492392555378015986724057207151770908557752619013736411764418334483447441015995191733710190244949562204845500711714184134725047262977123590231067352525205330447241405907750376168341421547564745111896597246455703401711520305054779377608835401720073191170554186413306562272357060747104295888315611738740962660038529651584963621938558044167909316883203959481908655377187504521633213533467661846621410041422180669170776832879007005003093618974512774061730049639504161072653770744477496876543330143064209293733767386671388772952226782591478323531329854168662165726045856380824860563373814847813524664645379042502336426894923101992109093581645954609594206903087048059383497613974225763519210935012374048818501949555497900243381892044560347254661823879972696422205690137248378584678160798574564886292272533041710082387073603130283737445723426031024813005441834342739811715121711703445492085656982705608302427906839150641443280791262724934499323520577570600282069203514606624410627685482304656898338715687023381035216993663179460896625631048365170303938758402842405249101624689400722004500633238840838140194122107616509928007632931030856804058246303164407039206659252685139578844045079708434675073937930299631779234875908210989528151614146370182617257557101709231817598992576385120481512096477686048352644421323132304114252584239339670232466764082004668515452654283509559518289587575488917299883542413720694144146704697268424076446787517270063715925295501791350335597555735019487833901950971481740309200362036059763155458656899576068270031451085971051285176324977692552775589773064409331200359616648722528552865427393778706654820381131762909554503069350772745960311620670750412098828412201586678376106845655675544371859880027704328762889799401745901807706676103083241951778911582723693878802281641530724638774870656179089847171085395678089545636022082054328222495250988631658187416581157888227903820862931619958103761343708988524864061624957232928652371205858190614179925507093299344238675141206126491029788003004183417588004072624474529248066971529884057125565247231364808608157756347243263599588866234066963506435781199069296900560898979061431968380432825552515000466602735187043795640144325089296705087687229972621642718562165811295195724286026031400046933300432554551302441197145937036717908484400859778164371546164782539479211793577042775415070404020133159681351736980677647865198791937926278345058584814142782716839162210913581145215088469818838963798449647486139154779015630428614155288058210022638649468964553106683578825473816535690466053865974348129972790730859418243778679244151485118610823142581205789140983835501672156945566205880742989787290026961741145255719970358077137586959413842865323712288544527750419621775729634513322008053766715658741177758729447567232297024615968810546214167508851225824153958951778634278868182666884696391203204887880037128691409031165102779903310524328616276676543444752796374156367770109410718328719001900044617833627633940662812547080451048549695019390737447767696406684550852877189651452737529332993470317857575242032536097373267525906796162826539988051061047217281596448052576674109539315965450898136810656682149145533445736569353118698093824361517452178270154491739889725463917214792611397272482815585900954659328347208782902703337563507692402004332709532502136803267402392914416688718201848816329438923018357130805166435711478439548736077320775645728863840267933186008270990111939564184200371447141470935225460570022896759931233998133328713598618788328120985395697042728873966309041653060908868187724877654866958547434839242454376900513526796777668399363400040140352098266268047269513872132328332575150501995574366035970234407183639466344817051016845248720857760859345752707491310506625841817451696559139775503991794742762154951936529708812434596538502258372280835151027580840806398153799564632250624725344522223410404644647923056515919369763629530368868188304159805809472990115282112266068048704856069961456474515220714964053272136183253690768318074298748809590777828505520474211873929124246874896883874337055589626424355752074546328110974326301908645290135686901818123484264084965479187558781355352206504205177978417782574477748208094267733978470538394143802768878579976605088141781993713492084902689808030050163555558591296455219736959157261077867157873925095458400771967967393418399948043996221889282476963053160153463255893704542062601548889638251724025048695270910209086352413322013272787444317235933712501218682940990456310445354735838022556178828068766577724147471237115697090739130683546076010284287554259619718201637689085535535938851754628765568364154440927650728350950920720523908341399095678957190031391050414992764534684707450173368801817382127072382935183657234306316230623635537347760914343898077806711090392866437458516652507250664394349158163888153206781029298845371574754079145332641259159898950432375486518998905738587576067466567678697574294437998232097772808839817089553465225653896718990533383431640836508575852599861466788693172432700782979589981502349154555951980156325037595287873019230264775526159037315913242139465784843001138240664962469331584931855164238426338281198927111755175071224800391533568043740272664841928714761573892818697495681512792385922636008658129380155974030409958103721158116679277232472347630017156754129293673055671087966744648564452878722664318122511124692301100997518999671344578034049402893244112202296924334305102289806461655804126383513087395601152287031478496536057028124674358967311604334592736312232746854853444850618606005148544292267311699443300972925746270738521469531713098475078230323655109861808170520023375316201972910268042265289854872310257124130398472678290951848394204514134772045129716619818954502791631049029003081235509309972306218154194341500901533205668140574486165207115762994371368942672953833826149013018627195711535586017586043184102070692712759516390450184268445221562976901190543882153453927218299254631786508002897043657851729123603828848482126553806661457879460567042657266285103511545800056007683295443289181451917810677679673996521798317573188155736972215247093040327102817047313880408807429932778673907502678183904622288013483899517597727740564170047889408172611290383645436729743098301121045296023778226230363265093074562953130119977940337792607083258521094041592989557408778668198703781350585404899046958750559564616549560123686780269688501945000794874973925878453679750559844810590870379678009340668876481964732027928238981763109342480645520053360778210859112082636067244525137552973705175183415920842495368744750556289921873194616068738371564024597031576445630191303270142954207941253590421160444819052188565497501330747774946848399849173131899301664811389065117981257944453172498742100519461086637369781206976801695374411676537757475075895461238489464168739956830749719822494304953899562093034242113060430702365821981842624165325728628466429273725396882876777755433417065996700219171278791496984518203728892159945573434069739334821758802904079449578318039530133922564876296571045701627212311755487667090468243620902766423666614164563310831029052200352784045950961684323341392612789050426206797008443138353385667609092370494864590326087389497350440147583709371153491947504454957185936400588783366920399098720437470374594095902338453592344403928939105562871904095622930853988044251212233999687245074630503042896157779741389793822623020815098511152274503781865069176989235994424958876623185780787150462038987014696615809907739880428758383409852936920969191975537463923400794840248259146599972489673868797468082836162229089974151776651742243358849254950684234482170344559700427254629056994388898254542308535909159727270529005688916400513052114320782434461443219627380881218093874017101814681707674157525699017707275936650647146608442453502964339682452508890831563687121150751045037732275036986288563676413810063356101012024433621181955006179027794185361684818801001578129868103774306530581970459215872121740318626557744334084384287080169800174078126321399575718764448421869581424660118952256072260396641322528963474773344788240577234386318279372391212633056943089788337454721393042358078118348651222272387148377886217209082641174914580902435342676455952620625759853230124007635612848271933869016090124140168190163979578089570241221654319574909877375487923927096075650203172632482368022662490652010393186368597491955225698380207722431974452514823801921727281850949975082002355737477329534913126267774292237948755507702630175915062284619552132611316250480380997545958688875068035622714778057606237311814821245817117884671012486166405720890301274153515348806299918475072730445010049626963283637628409978203351403511161445977011188917425429583810495462014800141079056740697984444355361618389274676085311874822009855065788525269049527250591483102928539464845943631145407252572328441089944806993126436156444376709866722517009888478105855620042677882749218622049780435347454439159381264591761303123189123948487466423167991139984422932335702204064746018619556011457160746259533459905731387664276965624665452415909518687909109261009896348515715120798589254241789856976349491680048426561040872113239287550333346621379435669031214066126464080424296724010019638278451539277437258836691353937814484761823619330714895637676573006157102576561795058851544006410043136808348451633117972669696873774403935152240817895947198777802953035802173225841456113203955149696214890790390988579779884579856367758877554277745008550615486592796466405737906631338101776223854373132343729262565227405295875165974438445533990681055488393871226618299018871592209129264967248558430881582539496179534448627146949976167147881100860292792800931798215972382338898777459814412343248899454039425607682239332565520952378749547396453167784749385437728798221989303278443386165622163671908587569340682904145242356426945152571898790365735618326080151005346706499211077016186470958745420568216409749180423532203430607512637611183619677500891259503500399777467888903529914065582782578037475598710180276243837871352862142165105678719130152438964995579113519716159358146629203318681634463728644889420828151413966948906885630421417610506404649302949488422070933887929325814356017658540305302884269321671296668514560737950169639458910464098700345637651862872476562646492429336512594174474113413767382230648389055061689812287022817810140470188500925251513493228243978156275311745986167834459476162344995473154843091639046070694651138504571980039494688947213880135584234007335508039356899171526352628632699771464224818880384472267230047741639093442578640240604711197590800933205716051640426377069883006794715594443153431605971048050798022894981492816293480441528954884268677583344108032463643039951397499413234083654299596101809660264693189545955472364741650739058868045655094662101141734531999957976354583030314674230494883146089767213563129852138839084101505009858435329480389036337768212444178876711338990364716066609256603741813551479511309189214744803759785655071568582895597392588516198386634053757528041537755495469751014961899803476795262583912675801086568886805916169025527947997237466616830207268071141375458470164998095722197318099216330578938218302491465875898380930281612713545001775348064286284814994537081789640121998347088017679714411392608717730635254058131354223368220716202995339164479705206801126564140528751072634925093953313027241209320454346488379156044332992047084087992579979451473265033063297101324231708063969360826120562491837765031789915632960974107711339044383358721513351847284572812772170551725611763253180275330267445211345727653551006126400939912958250934672595103301532855244521827784281746630794486384008137479211406067471793323097420291042903405025372062186518676288541213355644486689926523648596403401370546744688000540086024283974860485450554147607598579553474635255314736697061148579039867441647233404205660999459680831359888446810665335509975219723813870070073840502117033283192669165602606380777182795412039432879594123816929444746582292976175357156470153581469456976754368725647846284368590435339515432840412807622744765051189223125195358011303141388871011128392008189882455445212039875280652664490815428429460476765967691806843341028899119578275117136625957859752397955474965670679129259222161600264069301538175440814367424657522187699861727907417106518719281056746778340130083503352530333266503168689398321033450372907336907130284013363880155115792184525062644371738227856972519198013685259875883155091803711410725652123873011604245965588925536973353430709063995991513904039963637186601867910309194686418519985783965256760139513626530933250683028571093521030584097701846457705911253320278981403497504151323998764068908289044076074079556633144111365251306074330074359882491737298090589807034063052629409928785090204354601517950815720132096577862256564571620166797529734558013325984507754248099341491634068059807870481653520411287153949344191427121040209504249942681659547870044602119234823161671948126414574967587565741907900431176241687747962842229315346901595877180929864273620795979169635075820848816633083965619979759500298827826180287214701488518053045722073544624758621271208559426540540709263927925725897798566897560840327170237877266661761587568700736898615030038737080196048468083457915992735707247881934677703870251052416025115767343868781621623314077835292541175861250408920751592362839006351926776870602712989205431030281345650753587843430688426468791792765734961666510694816858759298400645029408345597428687229155635267770351604094352528506184326737131101298696751687312466265171978005100138546336020732288805454978729841831830458246905902414385076713073416781372130167567728699594342090520631675964391559741982041110632116484869185541162654967483515427493997853918513361172128523133816434065259689723319352912561570131881712417825930867923756281138449871855910359368744219646165369976700452807077676172813988939780525322632335891901572239420443706329307571827500542395940430188105638252839118968539848316528486822990479084535436097963724917851118904339960172763896669259279795434071624081006267446420731172817422929485561482399380819958383620941797419448729291567499916576372914037503310859345810623164986686309925400399631312434063413169255879258034890988637932254283482504540047399415942079004073504197844548710423830590244425600495166668611581960811857829253515289029289188522809765255197390630112754111733013410812341803856582296019000848915398176989280638692590559222827653817587362551744884539898222510078757405427439879016459499293331917090569954562477765183209712428202404150255869480527351578972523420627128429408768612355452042161895244200159660398715891823759526763325951816334562589264381370509839269167460176169741588090070526550545427044237217257211602663014989102364297939006294141977474649448891357300138366812527446161539220451333613371921900640504493208591719211302950615715713842639359775399802457334720355289753208506053154421222906849784348889447924183699677324646692596222573951073802327419383108020003718245713186434319123255534169128414337927263905718451310201949779793160017775787977005641791732142518571525033211772717826991372335543323991203859627944956956885331915991355002434322120912877225991290976590831500539723797512116305173216739921914438284792584698987797697603113759864981063906007500472855321159533852774465748896798495239188329354546340802681235599738502409239302688799118802503273162110807015314834217193149313415685698028275327178881541847385714530388883060988875596890312287107271260404455805592672277993449180830843511139349075921841866736599190007645619508905405517802442673903341328028829426156223058386961298000607693322545611159980307663982871345983466376907658617582084917967576865051360718963863225492139970467578467425250131335510301771185087386325703848921994188108140896570414036787888243939865951541901825442645126875194573895435324201739523042216056235911544811960384381534216550488807397576326933791435701659178151999383440231131865408380236687364008047286289491688717403133715872188225863259025618463453459517447602403170302267796166808623751441397896195458535978612236249918658596032417025178516800630083623703294749794855800970640021876879970501368472864773548513982393615912356897698938049274014035854143696690977641181911939115592541750940034741593258050202043243787336655125181576788942749827393397070987955602392321658510016559855724702171308202427031556376470419956726703069788573596824198955883959036482008926757098818742772423318044293474678698798981781174995251891450082965202306562806241344615636150903939288606131679998686459609581645196494131731937338866786442941287328562404036495772899002224812812948409375751178061655863467857552143965105534316354241408122073881311422430716538446912132120268333729791668739289133471021797159878528856103165595402410071809394076202608370067444930607912954007337758617483089174516814491751910063380421392498963028459728901821878249279285945582660779003362774395257204025842473435828604522549389096624706806056156469402364604025679898677889379059793577475666415182915051455561421281524126321614222026382144563293417074863146307747856303928731714989055881474271798640924768184724814548628635178729033858902597824673202830924358928602047868898655394365818380787428878607828160462027411544628504268183719231518571774690600826820079285166968587023803600958043988785606126087047498443518412605801387870705174710705275512572263373245518652481838875979941736054111018983016626216483430982936721083219752583582317218637829121995441263767605099183632979070975769715388954898556069459775242653676877327811682078182116813017541010330165665773185116150743335794345434959126676720318332853478659480622244827874740467540487977262781326522798143405176581954081970046780414439346827890126963004994142105181125215134019912739329675512651555038302079306046792606389513935974733338010978079724008440563458387907664691333563079391389411058288501664984515535494642169320566485611799999866989667796935705346626664034113524587903610155302817342563048231141888959878285551279908702771672776264901730711517347786641008345668553197570034571587147723253400974692226904604819756302234818843944751989744247664203636142659868619951613247391933581665757916113153889341538804779157898705053193908761858757083264753316517524600758041526789579306613451792659311266021207811592175086531588361711120005030931850240616837496568724964800627933657788753443957784342771295908988731958382895069719689124082403505468845227986460043010565253215050680797739018240882324555436406959197450845406998277776188558975366037865993419673652524680222585212611264074389512720509071218095376612532094342236536636939435989177509002512756792754828597759764307549604657566139108057909556881200562595819540264067772404069676285559042088561197444701180433391187849084285890510934456287480803036566458472366308128643596054859982655711034762250050692231197236512730318151829379983452092718439256107310685283783254113639648827337239620620408522133322590456054897439643831165560518249975020584237028471453531704581078212707595515653654121774055540882503296191618002344220210113843570854516239439149891860635355648590330308109557407549341228592317476292958972990153233197016271919313200651707530940899300592068507809875891460399149319682813008583892619507471552893657743163036426261316565243639879733253475886308610687187001159514313490070872268734127387418713268892306646845153545012327796831381449059974749157257583945888566776935435932105598700387988484303600924561062261801647454924465491693355747397290263407605346370180582936424384228458918120569810839339808937215502545603676369268936323446611388824991134193317615764483753894961523093412544818226075180154865514038926046946853231712990608267360233216963493822587269372499589438170967857870879839196546826178435145378134971850185806742362922411653223184125255596966732107206377066336263564800357957270688878641948622583312454830556633296480509571044570762024523040711900568595739657924503028311951600554491786506993034381533389350258112388003217938652805182721246160133910463335291308724095599486759242467902942530423722713333635068075744081972864329564304219876786823631610787821724604263486763833833719065814548072641528085054209859470420876044628739018134644387665666582862755123195416009092244064871910827282760304208202142636367837530709617235788824173964321291990520561998831214189310620414817434235445124545624037644686463178397503262537436753496009825019330066912516485117128463681847660494410765509952785821233253451719637988134011391988647755269904564188867694417952757703782200429281405444021469923652644891137325137088254649702304616033840784108241238554262239218689674936796164591352103661938209723399499633692723989440686354227059045352879580809520869835876398543750460684617071233936736771492418052115728320508136320410700452175057458887499760988657457621557489171354858765738941369522547475838018188695880190071095997419410374458227321968090936917103878441696591005529584165445236025297397110226592302916746128304021150399840582794037984770885437750306045208175281048938842918827542568669981880256968118734991421119577760250234477332851167813200893750812575350077939384498832135900311790246101083472609360992740779765302474524072016656153031370061768908629812918047265477526217966730530765248406689204943932127485776699169116358054691157451676589724763633190142562260186856653382434168322694331276744326750644490335662521865319474630348001042640981997241416546261532128932505727963262913859771992670331459023376242157018228342228975862831081196168876184442723587037461606418957530404296028661395874391777416706793331367817437587070642709202852364688057891158928674228248118848198518839305301985342594428175368692645864705915420996024633466774030902476152984318568718100897230493545235744702854102810759989518680108989799724283037847613686344301495814669057259066479279163232970831029727181765572848728946995696969044925800878721009635883973265039885771266330181441634698500663940025496826461593283557513700364099785165150743552039257660884455145012488956712916226250257526459872459544982356385347296961359269861206086433572372687795447053945103083815531156016892116396503274478856201454036422521155317372028320720413481526155499674232941205663785395137926216121654980338267419712148605609958009755362282696468418816262641851707409751726805358100296957212705801586612761802007260583642811142263571675080607223867038358259861452724148338840643778505253903588757441651416425406916594255850387524065526079406398575172997687936070714475032817707813084710372959588972539419246343189002512691898409822979294096255867326493456935975886155793683797181296990117307690664313171492478017241676370652331538100583970739037501658680323918267677778361736431174766660204468448144998704316092408860812725965424054301925467075053043783678212506590808376669478331511287018883869340190783062235269231486708692633569206332930455673016991526075014686120459880146351135068933541182782855083365137516736168010446897351209568130670112075411974107613962554350450886337240558339023079001967244890104391986226198448425591927117251875262352259421409157781154171783108597264968525662069864678257805988852936804272610302435952214695550591164764043546463427625956655654793310550636086694719080842784545827385369539185031119953600627241994305424092617779353350914489236462415192503671672463570360718686605186296706639647664757873658398978228153613259326227984748133563032409003258912370320623961748349170812646292277759898897180467294628177813980157336103020805099324268873823133119506551581210354582266793509839267317957469358959999289500128556116785647840489387504919809149482715521995861391956671974477197253544093773725858275438629399540310621230667021457700942322020359075266157313451235055379541720241960520384070484384431858327069065709396859623537982240144019479611308370212978045940766048156613181965695494945018902174709580983458319896332399548980427841530744335858431327498989602148880728888037867338936817981868452489835656744650868797665452872383814926620771385292660488861569395315991579064105335395497960949406864185806964586761063982546732059517241856888063350973150471231824220689929033576713017007036129264479490619917543625229171321083087043139951509649825832177230513136426806082575592094071969506950895095937089782956021384059729856820182137560319400894276506776468899871174056982397814700457253021530067492637336668539948021012562938600654198865184652217296240269316063964984648237622104439146768936217173977967204369240092729371314347213878288576582666087779569151604992810898620272898404789548173763986530645074266737093780303271018089552833937242758587181435425943469696962641654154994522647888312990025685303353389443352196957150589398287441916358835677745598810831921554699078673404843582851962305986723936630140214567003931475416329011170245912264537458963104730624013106217305851550342796968562186211422164387423864467579374340428576078217558833808746136849454054046896346459858312461615085117296996494639839590072885494754668593157714423960819641194540590598749233995407794813231509377352363694736993618748763837078694377365939870365791956812880720195678631255872611275695779591988729683958456828781871044978084153168383533053757032809872854898001215228171388351286773956592684005393919661448242074968460011648812573672799202106801248051856184413698794710564825053393577072862051961108169742321105584851094692966385827276623252193803736434094253480867397197571958853907791853326249946722707077518082111300840550404258120210373651763677786526140749557682943800028649087868692181422533240307359144158448653630018098540435491119211422558910907150206582704290118074091684185452191347526374688210998359357720431278641038490750177644634726662398510825021419885755125775529023523479074457458491762914488679345207901441651226060050217991499526898573151400499757003201146598149771234749564580318307848452389575987203824666029322028911260279242324677833310291416279567115200558533681358880420180433153233752052265654634700692193424551151746310322062927116308245845034476048668872053702458082900830048828167744434909698993404010087406689948537156426628962493585171226504200561682695185938480567475455578446592417238083693983050867903971914292560154018053125589391898946975970110599835594721091285198765672232395629692085504967374302794307286044276596981195709434357783204278658148325966840610827173789036699930433425587362402317991743798323109181746664480209949157023212958588748935577045308604497221177668329622726778757448529977526194451581877731089743524366853332462693643758782666775324870551390962833408901188776556515197602071271080124048245397505117009466952609248050619566983273461604669738820711802019963181208819619174963762874130443635454008839974140443095106914169428478078365437825739625764660240254579109843408993966774655346975860213826940235864880915785543369418059745692348081663990939880748186186758935429348079093896528066818058216623329232527564162329833651288353646948088307622670292093561023349926569518911847481176671099799220868142067941104294157120629395881464636635300520542449855930017825177876505612639684191695802838094302653791384428848066144162068893045639953984495319925951068886688058914365403641140041837531291172364320928573632891986265251713787778505187429998761422683951821342145189707029044128039948075105557815228223891289745975851782429848045964067741910187445363310458527627916032036124483376543926656384277851355052552868719067037669661845923760706416277517694901430052494128789088961097511562325350136917171642272631971336322904685336773581697477107834097233025458192353441205380750520114787294283561576140106053028689691280768006127035872134214132545856036971166779461182700045638703704379325656525353378922671100657809941249933481397305745278498963695315284587364121866171125376027491729430467064803727160597389742081555302935807893539939503311429467078177182103533529826429205200709619772093153907256207055303182847858227903790876839998353635110996571881354758616094249306304001005467400751727399619102952363363742452246836779371291158242699992551684841312425745027029789176824734934648821416651652078126597196416701780270859716327330980874813474423136106551580229316536396349960638305356501697325226137100640205487211505913513144807362378485888998196956334414653191520796415991321814360245248717738072365690206283495212360623979117166618852340174539819661730899987129084579876136082932113881285540167234722101775145637427930549953407036737902209883017685416675914390811278281671321465756891825260194752123322515208623801128270450444419608678010940561914996850655862258308588115118123423545494353002816804609433619626153987652441981481095512372720296317234914952799256752365726203646327542614326314427788834370511649050789594628128772270655694902273741398004543294012136433097011411538852451721992712333493217843974649887257959230114889722158678203340697414609646693393052384887179993168469115151759772163357933042863127219271780479801132312650102256508171081453372563593507266541404759586772303044179915749465053783249710856349573121570891144707727648048681954818979417679118839884953577040709584615063340950329119907559467634226162440065900234586839839785842628467827382974556788471479790051712660899226056867914734967671759649750563852959481617362290290669507684656539515455316796425981905884848912643490958801065022364127162191548939281151105840498539421843298039094240581600905781202859322615180061218231938963614348411751614705330023714781178401350647619096580605521882122208656906716257113083876479331203929534121317417974246470048216996578397122211063668050612030455962057500113292542913618606184433736220782904234756646940397390616776864675685224820973810104142131907919052469514285820468326635596880517324882888823069197242113465876864615947734552491191330066196695727151700752755348216051272995925658687136203295314325334374364252346246016829984635358647059109744556983534953879341123898857994807005110437935114778506994843938031454607025278968870498207314323686612700484637648334229631301161346488698400342335832692957918247098339346072405133423514468550405374349654023576613227958647850843790650802832224694437265658701430081944836635207106117679866284157342132411489070707763693307736231093857442423373136433268864038411722798362534257731843681022256684211557280922916826927954025558334824461355695370662074594248145955511005163514229839479976488911939138716412555140105410147043470099958451880334885808672936699042453533941123439203135380510083554359449862668382719102843263636937959377368220106323529037622645093454774553583796132806264464631176918064597967335962389856797270453652158088297672880568610799192364628161333275770380117192432565408451650184949248325707383609601811969999226202882083623730750243002991752356017487813991273907181713944035823586105788319538070324654610035537555225820160996105756728634797496022555587567563263659212327772623211821411873815205614381070641459921861144067882632159313263064263108212887801617839794241934050756412852782595662950357530845706455633551689477118057455500590815074678308289541219221383040110855301302763241215053518176307996535889331438353058310237454020234260532127150823816347690871298844488376222831258147177364391469177767913059907629176017568480434120003307828898195838298875682395707346626475466825357568072293988492120889380423165537572638773363010200333260206463783409888074121292545727740021336909315336165056481371764458283429348847543099290391153557634649079749537939224385028573025562526565004575956097351259080718648980978196977728240959534620401976904462934551264650774326154638346867841475458397276795578795664218691700982500930055402055526476980725138923842198021772260697275393242322439798083173897048006802573894262804541775720611282663951315132927951934085500659960176840404761952363764986604532330735422247742375056061065401552406913953870121075898697186054669646808662186484051465678306579498287318530208322487960061529702705924396219435429741539170972959640476543333747563656768336824854899834345630816229150229870011165287604366112425320599391055547575366278657610391390787809168950586340337954167557365212167515556274790786311653024527555382281998698672781844807626897749566507009728029342664304403790724424540136632383014643443699218717361731866588843284559192341920072255016995284202777027735945033156914409338791507400752120428090381225895419601854943696243617190728941620641920750765943021293380515801573966024787046866280138117952889191035446872605471367003605119806087009970725904363089814174674812276404642370576921681465276480932207559143611684610380518191847349158760786516030875453553947504220706490466965072514129313397254628211221767412253593129105309352808614951253134713945194993417994669656948201584384478692245256310292210967691469411971602474212014891657668227965326183598250663866558940739022074000576435903322492700149495925400635539658104081598258741275853524506598460335033277735691885142766730786000603471945105964876000802087933409747488446039146615654136966388993641212418420432942413910086519523078250820063658644577101865057180986656001853945460058138106649059520513303253861779095220967098415460745082242441625079791507054372959201254095549473066399197472401186250453182558476458310081989735302928248675407886837036712585072013891616719333884173013093023814251481663585724285093617699837452238081474321487485399173552889184294178522702435236588150002960220512894353870450887288943545945819462588695359879563376620390112347139629353250622608578607662576128321078561921100266564935843937387129929925903869260886648595057837486165625047248293373519910760084166556692434092349360974612369217190573629174372622545207893771810182389390423582361830388126797701512390979920356937705692901373247280667877079124481912352281135093042043584630564565239056637958055461640713007617282494839168887621589213977855167589786898611488545074942773696050019398649479675686462744824955184445648665378825200362681652951186935402149570982917013073632057999246070304498257123537296508504673461151579472975168633127674562247368698454290173549268595234827575175229372275947318480307958467359758131137247066015523345947444147166867456540046650809372315356023296889529458470817460540696504006402865564202961153729087530923398315636528090717117046993087975645821685664465903900224174730918862258320273278064510027842920436919657526471528756413871408308974901753295369751162194698868152720426968399194240620023921001814621131395330771379543634971514608519856788932019051858641622454681382334359863246113023360800819865976449081860990471942391527355351227278453336041567784594409792610407309686319978184779038646865289115454013133759423880153099713783501000069417732451717676902017422450202967962036974667508134892689607847916027151748300366074743163693927621881472761067990673090292882094939879804321311552513893365512525632907844389904392759797747584095420774576231905288563538142604260748387222919255888978815540091634785660436804762786371790534454519132714459773028340475532768959733432056117715986203875596308271833655089064421462547088568564630523249070061088751668552120910893217997394555324110631232850067504212832186568471210363493824688031805203717108325027658087713949871694477725577345754657855571721866653152744442324815088086743924748734905897734546103563430384443437273393058948370460082361383443973580309310255277328729475254724669556058047557777146476725532183080079907218946101688505396954896412369385442119735475298115109549363711804458228448055985918577351090763727397518408850095095451037290307604076936947237456718244569501092638684352156249027587461521477964867338897193675340827012555435803187365827315313683397077668611632137481923736457605549739045347238286345673439119634114371842436708398001587982119272523052796356036428723896469021457721509371037258999553333972431097996080684408499506274788466696010249930867185758269772175704161051573945676631001072883212856698498520779017345085569342990380567450636838441782674127265274978591720362487597400619506995168286270399974313026094806832295731139624889498474708416353856410069228907370058435255432704210379894368085553659419024529870298461597730271458978802514596470485381500506828860402201642554426639711005716085154713900688564590847393235117552943494551554769359811991550540954576938176978985664294786866659158175622886752014991301487559125793971302394378409160603530933151509041178786088790453798466744081284911219330514315804810605575644148950171611860283172721228411469206992583591491354268287690912949384685798336245593384462772201522910812746021177764187577565534315969673061608278012792849399010033714955671578695862097190384845373955478090488451289537454887325899991863581306252760096740186193462658491358915296196605412794886437598452044042392240154925010701196263608560132195525432138900840764558062375290627184759249786225422911483504054456960036804641341990512529135634531150220164965204110218398178409305244859959114876283059026922998747350760431965554650781039831400395398393417036687680821664444352613061439354093022474790836677616831251993981224503260841280876055010157448321996571548763283516642143871914722288796413112967644350615904150617524068601884627286090462341935879511616143070637611593398253567232965122826676171205248924336992028454160619243817691248333433575235295980932098466013179739500993384093667314267006518205906715919008927185778183762918583641038058800040387260226665556634384861741757677197705363543619325751899315740075239874231007576441743692730587465472449693583335178913576836760389289007406509180741243232585089778389029104316143193207899081516571426080248478239432616316515536380762292139857801828184535707573679729075306465627208326463058418138126211508757345347381099017021475690896579089602117919213092555381300517181781781533656632347395473055322172246120412900503789607644756431511620652583193374843700115234702370496733736822403477559257852016826339329624931893967254564285757329279714083358344590929192682768077329064893300704298470937010917053069847485715772165659592798611598692908456285505291769380560013012415372225960496158625097784724971442072013647482995564876226803593594110735466450944378920702334897495105318450571500805529421671106709207504153885109623629228970782713362759068511376822379222370106602799719914647950966473817055873409947960175617602344398616356736661357170806007372468564033593082288619795331395396198241853355451605161489919515037266145646986115197423568372828698194857904455515444742801713451870920545651382274814237632846961262363228369554299856472387012891816072760347908221623182092813334296382784365661377629500586540003833845905650060322783587038998745152704408778171544471968723629400161398422288587381608570646317558175202853439958053282176512467728421675814448759216701256466673518788647441335824032485234731007219083025582993027671841038584049175979659919803028525558308752787532567654249485054426256608871707487706732216644774825576043360139147664465189096045228655936994344794695618539108483844120727686755288392444700239517555843749130580441277377953685870959760546856112006311053450007924861265197735583769815557107107705224531272123386206774400442700271825836996943857439589940053755569907924578889330404343303268228258721742258385108097945300542225055687775985795043303313990291537837772917974847322350952727437559726758229820425536380271592455778949559957504690898129433344744974910977360199414531459911631132638933257805152500489920626992063571987305896085673613734025190342594506751680694646141783624750515551064852373336708177089272856255457326062936435262929399241662795036567968484694655303091385543875847527244106489686666976847348115379378650333383659544963607435730096027691881102397539322430742957040614552391858301638922897066673144468066806125586314313617738559045831402827640930834278986676188192532122848571632824614875124181980675332508963154784224028973358333442781189269104448480547295984876282657541443035066097117360346018569866611522475742121893064388994711138337014277341562436857604152964954496924547281853767860315166777033605044150133587479446984970003021113152161749869089098134193330799035803872687333057830847735628688916058302872518266400209452983236656633983380172189939765007451192741518035308933655922600497145001368071703114047226931189892477719007715892503534109348312159903746322075029557808751260176164331145676487503150165299631170226787535295129962617320112049178545227376517229091844770274122484570197265826635028216237825146234576188612730747207252113943718832154975444433093577326269434260764323754048751652249240581515274092658057995659719992369413931623535557659041870745164597529928485869559730644907580917212255098798209478682966625749583779066714345184385550366574531035550420886690446341153980001431898075595940982103298374749526733887248954423730283908538277133849133999748667181592665902897510284947458673289015314052628275096000730283544571425581923054001379752935375100899107049410043325175626608225691369721857258624701180346449254401106310902484862353658797362462789756077725052584108215547249763393812839054091497214387437657219198264411197803098080215614888719509363948733431018631837141500565454241645402259602028287064390053404833237309718993089687280971474391147008268635541449783486879169478997151038760620462953235634182538281183002325889266020355907472790965958113874128174150193139698223958591894716186246527634055519202963655818161657620934900485389981101356871326627359902150050088206767543619089310382422629296799711955096765681090496886002937234559129857784767324820329261340261923757963755557126843433513433081664824517150738814083140549037174321807441751405963779043327450036510309548822138478022295711788106978448227861483374511132357850624012671652816455654691618207506744351238566687985261809759445854745030782529127367811529800393495048742515070449761443661688645434972369649877867116483946722034111843799722532680606718512574591132308359039999530861761874015818136298994653591073085066748351278946383365643109556870832622550941254492836915181523584911675703031722969249735406516559749666320039867341872361764043668853516931292323811879391573315342507241546209279753454951930802017242051339238534737317689534700796535194057978205307960060169766780622045315740281165021612639631546148374997119923817474873177180517398210772691476250047882246788412211530345655753688470450960811117741140835312606871670485495233089177285209751442199726788170539385070579023846303769415889083035082211894411946563274007219599743439038780884773794022162199483934074357762325216598501101404450117857815446286339585527341665726649176113515256109543616174879221519700045367260508174262572679817648181005779782911548639551178377708208701459987513271303181602568886618722168933241374443241122081348215887950539074753608759100422041318350644790312866951191069491619237268324755638594830803054612432082566143067436981365631424342121201593538421456633744723135311980497215526436201579370122658576292174225028387225157310362372389108384365631991026025358381903602946321326742084272786758065421553040528009121323752765159706284798630462023885217089195088753289585416267591148699759544818886768016349688400235758902587652955369692853150697056782009284407982029111641590226871750026438876467986949530639357893462811753302643504972877121577098189261321512195010037574496349001854010299032773238433975751493988993707681532994562562876595926581186118683249388431017585400903389138550128100885446678691376531390098513692958534806513652149203734986728048895061952117759081083168306436792436482689840446314994665056052379963039778714199382652103208969179884971840929719733645155757615048827956445083007760361702333358020049829089641113186117666623588643499901460356250033887324104936979527834390134320073474837281900450564886688903099137158042092248243800292944829202259664613106950953668985904410652981988963688736831524167428647210215295850601313697253673091735687890967957061251968304736972567712716369699270316686067241193139490861653797076324687023634771974232991891139207545385050316310993344684387878449453126074680150706870583966633107887663338582378400794383609843405265874453661965995251744452394270891144100331135522733259636994163282857677377789433115733302311150897120032629685431033732808659206572540913874583911528762838050072206398931707198388000477006217019144735334663628529305164380010251253377691882601010346262881813221350106775881798289797562150563465371339961462192649330845522652185184291558658440978890153136533499820276832372110598782940976223625401555837740523229886896192896950389081060901940672159688103030706822313713265884432758657955833970577142226389270928139910713073938653747572968164757381069107955478568530669022033261807553040276976828625294079816287178113313388704642206853397781643785162214999921154212781651697179187457532059875542342259404477090578113395492849703620024841101365224290984105934685728246630059205779011458676930298819035856756382067212776929917757408622958582004776425832735403267477082069713494005372719513830607707808343375182869238566622759125424725163704472656199317619425359636301329265613452469904324797111321395612835052463703127022458173665703185306698967585195316497321173900663331715826360106757599133749544992970120280316642205502658376174679858140215042309414848952603984206018732113549806714640348635746432413325022973810822531992699828105090810962227222933306183299277673158089026958158452119218667684108053413254144369638491974852841716751268125147988077010255416242572601839386937440903870859000087549314223390678013139386510573724197037727267434848964102465577038507010311476123839273019457764222148360745006643366816829284873187048138532909871542364924115891114845844931674340796774233006211812067144186798373811265928908456830088007517894072911535338754290233553142009467350835678843194925197255511993843644166934737572611385558717290346178327989716812596412732227851341426070237320653542666929511311179806868738188549697924342005516446478841998607976824018097631998915361028912653504399259767250381263579226680194758188177984943968765562605418128298010589000183857980513275462025723381224568477414518301080009120638877074537523507293145796652515899075523106340894281800461095320004523425460687396197232674076258664056972538885743791252269713743059789014796125848838662932111773662480209203694448315177777628898839842691005626531687756750464590713361665275789263881827505752694874155008920953387253356773572909468128059175398145475217829405279787666788164871819071839429641578143577672744422089010698209591273712777122058113091717269325754304525212522307623458712033825171307048345154197774797170552361411401002529897563604795804329348728717670343311502109401962420834811545310852372495672647631903845096442048797878942839740292058256520450814917403348049521010968380628883403106385221748196029821520049496130655913233961769463557943563468869434814301795577810659689393151960738772945652976397797923829361719126855206523044198791056336548198400862235386499902882643981049198428758030604794065701308496058485028627868585408199369723618503877534065989030188764419049002048074530409746971374963418979040749553055956865610758551047055195597616289407247920359219030064561487755081805967285710736530720712651940702578413509615044042915258021777561964131649302157699889458088243753647131420395130800807497016437767670976671129398548980053450326443111766071886699937600534608563110150629408965711202360663790072156746634734624634718567293765953473702787105735141193386783330914261411918094939020931144486792106581733096915842067369015638653543713452195409771101352309890186403491629484113707718390944285574956109368820109675212788315929381840319137883668775259638958869914301105398868245503120168153278616504834980227560802205409858945654078762632487005714224084261489136254561163269741174006534173136236308356370682368050356276393444895787805010912672907810253138953747324917958811481703628258976903680016721185586430787006734175362309282059251076372911351207941650040616679823207088315479847099219597388877132427442801721814684675099488091862914800140113768361750888069695505431057099141711454664561392538473064819978891184019161632730687559164268494224975650734309282342129115139782134153556674500615345859923205834063597353755305621590767754796420299608408490645171670548852321029511954901705272727332728446696559914308879857415662881912283736512543061196707532138656942254158936674957571053982496442979790296657446858035986183237849922067062080344991855527185648024778791844632092555186174537930753432244161524249959330067848284176211504211540125327618434685579771666286174597831255367669250014345273239002515927252018705254247177577804397785514054938275218099963556195251574303836774739088061354171048987992511427086377191543796218106545028023155490716776162461132624289813407420995556272383594114507470639503741145707126400811166231879225270206677648347750251236471979671063728367834079747807854369063907101431990617045237089457130842663801594663782195672463740750984603759777593851736374587927596054509476940448975521275880785538973994448063065187197510846429263451578971959540579854072806598191382077514160763931715601304699295017692056518363749388769177374118478029589493074409877306414167166619141895930388007350015414202193824049503340644862753120705975465479054941869942985157736330257631574837469870896575298202833519497186970702876274595758394271336845859499168530247555109006602388119644386843924262018889312984035264135077996991240533616783480543127285216709684367532448298413649091000309170621462041961306447350587166626772406434021306884682518805872793254723990409132492216685184081511210976718437588347434046225669987792774414324652074315493352929971629215346219576703072602141242336483057030872860081907316667829403076410704677110455995910016688273485766557740663667269736150901772726724388176326695118541925571760529219506111604511279921663887519269097383239110785320467031269967608594582041031861513071839089104927209196943562750622935730213083214184236684563458566013362234938648885271600411285413654463446454611054333119565249391257587869742858480166958487053785073272122028732943831933766275725854009876739045503884369056985563574697047977777992656684266132601627850787109858331954848257713388939328774394200092906873529329586621108557371090057611391441634867421334905440703951852737911261010123137283926421656572802287891166831687584058737696336567020482677462231528184892226322818222715149843750161128524784923965945319039386874252136499733886446532876858477269052735100332495549482055463466330821819513525957866003772447052983461394164477432726867628799291634246312266339116519154632910506717789510374936381175981281286671824374351280786298762812490784137238652126748220063665188312093724167054864726949421715393853235396655977981852234876271445706555594275443328971406986125852564715420241358279044507890064044254775977343526818639479367730365064627528554246630477736121015770626031329652099143394982278188987767306903894372722736164431022524517063113267184050448857267149936463498938820867422134860431994912344436739694095857668070906345925093560978891284277829404711907878358073543413642053615771996226782740599522853831590411843668920586515397324136014702489658151090160823529281220733470263140652825281442858766977836649208719172345622295474464427243663234896564651183759663232950865613386293662551806406551133077568726448592055934051981961187769559801715207575180591744270128238176075966142454371985926396850418023012285394918908642988980378011565005009600605571432824999853970917726575372226441615205181695115103991869299586955725554975606010788532659091082839585242468357767718395291664318683137301415365079731004845108276703926975348703384249083296851600322125718337606169790477960480548878249255118321102313764930702688588657842606988497621318945854931136100039611471525381153134298519837541520611781958220648456893589124358437155741922718604589079108482829363438978683514674128770215224714960363272132908056020429286885992145298388186249472773129209815488913331634378751625622723265292365399191244595621710478223943164261899720466940858633534843402372015307044453527095703611985249203710168383098815298178553815214362097502003104189655991671208339748028948463688362779655232697743738371019901206703918689417116778486883074105898600275959802553923863273898734423507621812686502679452659978854267696315706393268798272061615354045324166618132777881404057312833231306490429545506357223975351549782186834671676411049587449927439111998245400739782283606655487760365255916696843046371934427113525222547726764928912997285432256159569878746163405500877826192342572661814974301729211592997120293080410513310237496048435767164870324672401281304325399636594819152457030600476574681123197407413425899856405559074296901823243545811887781655140004320370363277847202491385715807246304967867695529699598540080293160960546489854570201204227924184524778199986637832451609484623542955350070116884412747975440006152993154255692387425702050386973210040831499972795614473293378226253676452356803276977935881340266290645705085471445089326265067785299633475187675152612922072947135962975389387578390643832873685208531491928633536670697457098609146043715183442343706954840129830329610820645487292923832648905626159465211230721180955738683371383738695235886274022424800360585148357478766203719860937668480628479571756456293966966952022120457356370306179148697162323063126451288309338582378146371178508169630663102697918233007685467178542854002268583009564460995467181743481610038654104012098095791812646374534456804054567555054167089777043461850178148520576309852674386081254055175690728028429137222315674778701020094742293901570190025833738145865680784193472296182760385440035865367791665510484166907174151875172433601454223180833384682530343681949965321687366773247745512855468653099483778305796178574132934663732908139546734090758724658004030312328537336197807882816950285684484736428920536883881396390612609983166354601800974943255253431974313541053917229925379500506962500253149555464449597254583854451096845856608204280096373998832018283791525965142831551738000033433056234479723282496052973422995006587449126408978782544007461033956123614071152788917365518141947208691565683565657205916134133403608551398426839269774662399490232369216543551074913997947767672862568219224873287191744656544925253768820152393693196481689367830237875021913143490307501109137800396776154410403209287655728727143525882809070750978498310768436435996575930928617651225727357873138201422698548941861698542035708888899717596652451328808665707796701555550581134932224488085561985659680980177626492505684333768794440439802751637325942910917460830151899506120351993073676162791725124409871131717207642998726722275644577364976854035002983020284173616728888897848190702027084383061718102019829491318661940947263742356321546754074292227374212164870184801393504479301206991740060769178000587174535209516441787846121155317137936451899963396675321238825926166142784557406932304289857452973864135773715172589448328874628447490234122051311690583276496249261806977776949544870554203408367366891535201447775199282831926415459234391272039157195478645131911158711274993568687472507726084672085851114228622701121141944399591124865796351951646636007376039272711690298959697217608821996058228418506946346943410229004402609056928947610516989459719232867678666152264713170763770464414628337088402770570583069204783010144296224061588114691707984615270013098038490002132442810606705292484665372767566544648722324516177765498296866471694100142473803807476848276644843084615267593867171337686900534950906830481188806430299301153472876806662123431462110767280440436570505977465963063264492488032975416625975329565262465369195383592243081609741789877060210964892170510538959106739397272577101559240199020162696269300375509015000776066330484071301724661022944023188629005410873217274971622910081811846100481711385689856357050048259243729513768840095670814557834198873643987514730409694195315540327010386094826667774423154305053534010824835796097030263218808887185079752671282139033448025260734133814462067455512959761334377082670498054990743950499514082136479820457876035830733975232231653361535691718548435007437274601469003934407106800012555396376410091762830825164498409089751449444656812245434788717302423364512877401266985669553321366544445301202839812918978442523648476817287672990681672364374419741542749245044393791632789036263493130492493690957411564205082009657944224704568311098725365092486201331024509232625257004973925605363498413587291138989116764431970718213569794564680208643862796795202972230414012674465101644265178699481153091950430623528665318323550261854351986164891329856023834331712633071539795974040016153980947208977640747164244638723200518528977323101093619607709452913893449935218269204979767018114556044711942134312706747469461656121129439995255606373856974637372075731798418330051778056114395252968252059968213293721841593289555589137921969761885271423360242450894839256930915377980557279025342640481003051031061374252444152624036739346654179696944540496136237007426237195428263963433681373947144999175831052005375406009739975770824786099470297703216478676290488418131755160263318711657178273161625182981653590677786143437348198980261853447712253587044921676770474430659320885114458488131946627895714124065531995235838745417757988426628991645094865074169848883364969633476013054760254366869926576261595888215541944759856788938677396267105409203185817265622120358687998934577423171604642043970896260042060459462038032520664337085110298414334168393477974117747960917743701340827856205789012460069830458582921310819139549360564822216564121129943955979866654413546660525803158991515983848492034131232613879571474525791310163381597077314686749099885681345391048179153331693983279931538458992322112086188753168133765139570470056566187588337353185709848633125392895676714191639823480412488644435839052749193857884945611507695486386630864013620249929362549940570244998134056664789624986816434554703490411437998603068923924345503141556648632911567272960814568378579257431895491094305897806213669083333803332148713122627550589841895177007108490021615079610741931630823430903567072289573114942609640971015556364202428492948689057496990114945922683370466995418768653762301441641573549752598956762272263560787240906562121869830916107676065740101397833206484653342541643006492346248913343903633235749677252229731797536636454408437957538977490089878496742050068183059033592193661459887675748792145212579248704912850531058615944859420141190418078085145357095246729874123918564122091407563170762069627355887218466729294678760866139997682016702350999309738405113449280352730632950216850921708153538256802583322927617192407744449543337522102562479165609459723082746378275929467286567712309237536122519619972444756642974346700559391032575699573968908677767071675266197589196526192982153543358356406397277931742657214879149753298287999317362145820734860790343112662305770815456969129953770025346341373736614726841643289763492894013762923166205300034189418808920021005836585007149684674305166568929505841617275214023153101967774558361848111146418575650199476000940360446770086348652640832138277798201979675340212258873400972042409877737252508879216710535826805215758255237120132118087521449182244687725288033168184410486510101606684436724353155349357457444808013720974134442132897274965593601041004410924267720082295411993818192698660529403007557497750572350286560183103378989270927743786028902430968043898580834350344073381635049072083868804523492308061569736432057115601305572075776311966132252495996736320752777955583210408833142791401686225109129333528051495544795414150497184438692585642843594616146197098047641922378169012015646158539229526936212949441685895893274651773440853812814351714691745491747852634364252922321543943019829490282396113787525064092328660191698216208682445838745971268804781518820006847811967331851869938951122186815480989813723442807907545221286369388960180266630674801621342222112348991639905225115759182386985294872173871474540528953080669144942456331172361259216176022672439045197729127265248620046916756736694860028307540844663021815601239365494176681241440868120626350538481325815064936694817901398609050493891709852554492397958071427658486200258778628152495852604849598899039856927355259640957293078165328523742310405892231588799274101655004992546958172429867526796344750105960327291253388612741298045475298197007185632345849803423632162528549165449310036234277072909924495685283603308664417374043055475634654180004271617079085385056714614526447177876310444774782235220490772983886583332391781323825865412430478427159905541314507579994538377428387607113931726070314761601200049161931345367344200331168893035458363543061589340205172438092775575798532158482366195425035365650983412683874053483466571232073835107683609903564124539042074380601048583698321015393064573679647659026449822668593262007996132146647337254022400642698873722769620032633121336783635621160839221215439808240640915702318599260752275695038269158216019052684073996899860369233367857514398686261544197120855707623879442401692245905597722727890887993551248589645994576184319194195810865606646551497738801290326682640679237889152948885846749470804855556745391790609350276631454089816826103360415707353000311213043793981026254841692435226898831733668241292147810003871826063966612896774870548033957026604615352741961851311713758021515055530156971119032566950663198713955685121933431314894615695404134297252447961599522669512793961653590351915001453674143413186016711248561982028923248205064910378968838306405379963941303030597021007359353236682575319083997173884373241743294076005784595641451145259600831992177629758368294493829542230714762400921138434245740315020461223175220549324820875186652962998375145885041178908924349716012912978423751234363805995600544369659363032872507936862430125051881012460819878065462384398298754723783478997890422678697938631769406688711372132509952701727092381446392561395435854197836026096141582607964146317846528635142969929617803041109949658487458650703202178354091051073122104570055514168389074909343876795099181775869110031165542305938453605084348296448849816177519187675075783330508567447465238251150327503356813765291884083047645267351201025583734458612620644244924869974853984971134130753858809222844012894293241884840447910065376893068148008112802031014200912525361397765443435610834475159997433942453635878753468463002192746723457319037833551150992187327964643266860960509418978911513943830302012898429483935073645913350409731519382120159471437097871669676353190807144666018808546697387318980656282925714695237187924453579375982822346057799017338700059866861789886292056972746929285957208310654851689871132713553190602414110655541040292541144236584629435318789794078924016999344877426029448323871719720966018633250149507236812978322273164694089394250630967559270646087410403731498568063791777096067642615462096298773381503475412141102291391051225440902494745109325192833794669177712687673380165274862231583083314707246268547992867608708407061397429582202881897750195924629017333651623576818980917807618950242415979029791516992467163745658092819932826348779770562913461904541489695360419319756186816974390518420281148484995839429719618481730635185731256757087794578422881915084889238893360690334918281919679286686240358884864160881215084777496946255813879416699606775621070398314950611427903899803742149392193125911390691014516771218347414287108546008710338059816126321499705147302669700062436826983296252761198760276546317058081551984323814751168791388915510687350107661226816770788713461353625557804973044097022477586262908365707590428393346485344176311326685207644236456361512772762689648113296582428153043838225919678588680377266937044711768531219951817582200418177179477602375971764002870267697782274276562544238308657842846408067028675301018914164282878087052905528978017407928387763014690871416002516067992165689417743126674144598036364940340416710330086136237224797443148656762483952159564368879745758466574195653867404025029255348602628458534855683530647395329543913921066709588957219127850419326118297043916168391837546146875713624082988337379191983389257980857920538662975065723171268912361177561906839730185051120945111567167219574324329607058526454639139364318913924189985334448318849621311843744331083656655998389218039899909888626283179589052001114661561759118254342357625257361946840831936612458477498073189340601498009151138137234930951665266873727805637766407919987670283641012582930441599370893837168865893583820788327060634493108259828207415087143380347238909078283984310416137326527787897599364640294965884426695556149646608136798186134453780431815667741234471693769699896243888600600959371627946440255268150323310987244643649324244434080296836530591391384521686260718648298674077240701529780339855381342767923982506648130111463653342235124256614303686713837973101429657554215729702899716383897127267083969167414020534088591387070909312676365196121003006776271700035999422552993958909727787252770237004585558033342259863574304844450809297801426152307269907808545859139319573363268836836850902583259783290628775413812786598883942321459059467886245694023387725849742850142366992357265778841999202519147952100064516581010745029569428023470400386476887019083471154278194359928612410845200808585135086533125253587004630652132025259659487028276839532865606369362827869635484921727423466570354017336383195053268358806009796988773105375785445476685081331477138921782913953432593408414070602166017622690366559570691024994435842142932630818833057917421899149151225486603850590630356052828611522378334900160871501668282318680979475453909910414574686623636346976964548216623726365638226673509252202825308190252076642318481131867438275687892057973040943013881470153800062378618803367379120921194645081312755938535740804941084162747233790391292211505396545471079668773475996992648042287022989519822247327136016412034264197557974841464174468915254240062413036080209719770470907867682224359198225386845527578440738209941368176142604279851675523703713898797789156020910831139565570277232145193572794871865601029195371456605809386173106694404878368467703052868530076016952785085383510053785615441732934030149070971460986235163424146997269004319648005936311174934260423722136813994315514765515781099085044503752392505449722959380635314827701085774886838839796290726507920613295067382379485378606160673737778036817330757799347406487235795400666831688731138498092648171120877492110058575997603249363256785277372251716261960225409679001133047823582822918597064844842701859130801080282202230668919456096754646347832941020132867567828874411207760426615463734432288983802332197240248110302961017893753215087286504757644173251100748481604226999592814110700447824720779832763515477112542146491338025400087505934706898312218471281671081820772865913827184593231383880187650072181446954411573285630863484147905227967472276308910590031612669100670100534212448485337115010009617194586195239537245679699014408527733337039948325252723343651430855413441332271079081954119537849206771681261143266999006493840388935236989928484522600919120838701909164709956601777791192341533141728231922863795831244880533504903207010335093031975887147882600873848956649966090649436757959922616049497456905375035027175018678698213948785250560320526110977751401266741771038947923097477745560852751556630000270034920274019096139196576928530280191345902961480409377032712942022060086087352569874075556811210095221839214723761348558587339510470213198779108252714729438656292313530109734370976444979951667086591710777085419148403240941924687383966125897968663269557296817144719704401661128310552678897163592182656040542116057486906679609352968227203155672050036867428268345906515641371826200813618022981804103307536151450445902283148571867084184290164109282212010611798262776507177176907982953337240915447410041505446198155675671575144986002230329450529711673528990661690060894891059763402970048285314168655386390608586926094109604150541749413437943755271051054102240633480426977208822521255179823750687539456041009952449346672073607888774028695259547771433630896381945953141685505956762514957209127606306037465718372590347470243309181233259417523674139254035514019306122245572569761547648122005579409772653782719420709761910235964781808270873184422160051497806222391718464620985989170631291770019001848884952424039145972223867329439032990558154347841922704688665936914064204721404817843972093803607465453436753145823283380510278506184427913434949702479009103986747373925242781918440325647183611608175217723308685032996296077351575303795212182839769583242180135766661324287154901268409006488807008705981316070006342981483866491268175997243099930130024005292507575291121152562966644408984707074487476520563788296631447665092687635297446431563740984896611980304309569801156429336285268238923384870745225742481372994803454330393095737998944669438802668485482125812998250658071429723513552355125398656948239542444580412651209476710809624852710455371323097001233656428066421659141243316747084008124935515713024994869658731037682686455053256300003060645010557750215853129419474673119277526807122488957605663656755978131592430608794977155339185381005857547178011322021045282779136101039997980264492123302140283839221167276514268529744674100826516944773436250136048259802184345126679746494373904987666976056706688599000982933509724702446630375826556692325093578969812020555266171575336229767641404575422465699165506932461868868098391662537084136706150096956002642940379849395731325826817178028936873706865894551230329669367763080826175189846425751547018397795576379318408662414313376736784302618969028739020267068900612324779256546955141062000525449187732499761740115583438413109493994783332058700724159226592391724879585777785357699197660066013030702356205306318780125132323860372278697885109001834387659799412116516489907935007182913034997253128753597530138373888442445868323774357746634090017913507495865698540770595337318808677455296445896997776629834048309451232145541338404512833534479961539391800617585994159161497712600565019128817656318690882694899528947827953370627223082207313161454679652923298348491392102506373102315288232153948888037164043333490169079017749350251935209295240205798827418067456041348169351304494442007807638977207785679566789318699235816518418422750977017173005588262791948671740031275114786751482174137184619574761990799317335243226621351555971673900637655473268302879901743496765785222814770750357181218979789152996922346988041602480212076436842948795580008241343101261976104682229479999296479035090628508386163301770224538199050121416404150718900783395292359321854803551676451134813552053080951175848896728338615418657162671197312378726166223924068976872529663181141253679500744768843780933505905285478011826597955664266238889533263466339062329509717107578308783248057396008378640529263326525719561531206961358119697641935156572610460640431273607939622802775730189342583257975210432480822030367825047771313659144876870827036682348466856347513918120674536882611439422627437399437983074764513431861562478520558067306943342694167914702663151719609117562761189585894027505273850145828208714539397168647115873374282538306334865048142767907668496062491696427444282250504287876249832959571865204857020905226503695420030430334530622505851842935736123060515098041438636823217778252714700591591613958794042531896724209088855664252630927135499576976033908673963990865375541379983026461180103159871562083664669667002483540113920459292228408338908505169238424142676111184071129908492639783175596308229288444989826772021261734704184642237948652802286845782111928899527638030133277669286893680750481874256955861047337249047604457766982035433064336365909127705807853824028783109053260733531333756830076452914411438691976612482165446302195693508120498660615624357170467988757423713003694192717429315818869679158280338776049342620844884214208718702756185936344114296003155289801189526017459018146360758746395328775870753681678694164149684842017817882410177654419248934904612307093580418292853959820884675906279843940012475662759246257122655360745144624983316868981861638234228520419418566790800442173581921298090536952347249795968769562172474136508266183320603371376181808681885376127134479026372771586045470580154793514863956715194331916694001604383681563878797996118996557424271036127408566262758233406983606058122576391006260081767401337864965356914128728422942228019441674851647141860187411459740197845880248421622971941836474412727420522036459762531384581706142255922509876554589751209639232769044987805460925306450182471152789304880348799089530550242751716978580149058356027826543512781439744864558200147075439387223666194667226434462570503935399113423239186572015727299578911660443309818344739586220087087668863780326200324244062472648719139184461030428501978383272474223414662088241886843405943505134024936950438328688591755992632203376471992403042776032873439135276809837903105323670401470307196355210087986818314714950865719010763438296218011583148984982884266125706896400000419530016265812357530926966532547082291143350452918233508588041419159566107979409220685571814960682186241715310940671465406550959838610614767645503882016266847356564130080232416308616841968662168805924793613496574204080373453511232354831598552838067624260656331026156354199390385259265608592933710912736105317760910981288082795391891834964648864937527412868510049553140697102735207065758177658775725747607988099377969716272424052007799970513419822904619622723749293353795828961805400722072692461242845981026546846713816230201208290558620733192216529056172313804412348648010808609148275537648850873323774430737297507390279539348059368076252865984527485593242480970221905642351505320193906063255659455066599381839091337386327902834665835104378008581302922311230476014427502803912003813523973971858261752253011918103608388349782439773489573286672809809823844488278156165087598221764369786329609104684734816347492010973422714971529082795165411151775137307467112214130729614947192000610265058197612608260188734546700430956644439259051270679300817413690404316302338468234204739068319405672865683558448157809708535387703520779425735266287292976413606679148256922614989734762529311784782055218012607185774295579250155293063956641072787769215257821275918492783331817492350489626614115178000039944713391753615403356654971816377125197721713223795063241735272553352307079348149205002525743050490748599976803643049909878109778472024838930455202429303766576168066121981670107289738290642887359314884553993537467677795815160887936706816440778044861798666265376888077540205650810570464758472853181067697315260311180691016427328837178915539481366286897356351905941270749554532384236069520364208857179238232739017635393111184671112786742695305657887966894141936317360968389798795790317585324102327668874298546673019060589905528050028682168018887507384995114317704657636012133117322551579941679622897701115973905687472261526594537582402838007364664122985192199876280835423938426739405824344003063942729742248294515778888351490757869012671553361837490792595326969094155822179198966267766116877452250945002505115748554825353737166079485512009850932176921987048498673234737479550492916698092199451950305496980591445472457179735903116986617204817665812257923143816428822834151854844569496781780793095788545520030458155644644232378802840735028483902147421058419252057473105083879098817694453799972556726908731847508498053011075751231379804231115952351730389880473551164412505130432181887416627126163885333216590927274363223248431365724811676574206293460937917763494927004035961508804195814286520120268158074214031735189487568181574441148471468590554835924905703591786432596271632024304577946826131264028572053883469003660996288036011441026274264194438461437359144407933745003697178318940925713572946159143581358035359778941107214944752943241107110067453242501787500425966066685011730202848683637807445743853272769495271852536836737703033236765300177724699676339389862392414337920606070596074128639963665942781461829918328268588542995906719253968435157994130069391420502744664495759169953947555273852988425243961744730609967891239594259084567831376598957182318502709574022653865282821908361579717351568114768409800984148077841231656246777770172029537053348659052185909919988946082789401542893605362771660958162595363079721186441443101852217794940990961262706559040834492673542572345489590370074962078456102225668477184393912579789146478050279246113859832031842041436032436753078812267269336960584129910477798154392276384686784314691316262230101123119964902017707843789849292704338135700063459833686997415177180664981450844349010870769740877160673801407436942456847711531585771695425169858909900710635242690933263744709372173698218563378904079152169496522209942386552147940306739693513341409727212750214290907144133215560372826758106815616312656435622750096594479108206227930735959555811736006233043237804240190226636439609775639063071034484520727386276814011674207781711283328496521113686349087550880222460219603747099600357489942815484466695016824988972039465765672268532569584588912877017990053448241207647917589826901654424320473709136510634202639456850305013203370200658875417785462699466219789190041161938423654036643908003511219321213017784433905567432527532312945473474047887858457591408951288548552273301974293698030408059261110066444799883551455117885919860267901782469331458228187254478982078424695478466204156160024085826580109939552375624352414080682085660222443784747899084224078891745509823940101415157418755838585177169959142061421798501825956714243587197406849161979832393520831872384736636384331805487937832387688759198835563446058669690439299511408977159091436882763203536762204131567045407115524034788244330049553403688946430897054839931221659378099805646873472666349503272339344867272256217348591649720862582731162138352941401625634427126143686451543425071278739958447805329557337997551219034132361940358593346281419745315256619259792819628544924392952815800455096014229765688877248766728292573375144990265816068628528146288776795281813589230424271679873595419551695858138861227688264676931132094825727780212373609824351007583603929875567199147351555649364635318863914518413730440349134951941593675860088805344719993267589068604829465360808229859867713472103863884671268157754781950357892027024410485041678746312757253207503639977203369738111288574179781350891797114359144199597532101623809075574150488651188814644431854574226469565212356296426243873266925878020176437548067707328006417734922975408646669731345236724846399971880059015226873914935625561878363619365553231858530709206259235126658708696043534003521909156005779002923284407865862578301996293779247986250363259766264374574827625737899717759417632362658999439060179311368751476213142395417250950097036580624655481342002122314875447471057528977120912725533035311075119817611935683938128460429336679069630555955452008881955288687352554205599413373887029724936643439700589213699250500902033944221944234947508118540366114666888581833684159989005289598982140893986062166772035746051214831605927567155891893536523134791359202045630571461199669024964293486319321149258199804837463743463845631880134802246188933392720458340815359680753169411491303557012787560273926584364699938894336921603378004749005341290162804930487269984842733312712702097039623710612767020219190796356657495192653483581159674177324413778979807196597347222685796139703417084717512536235716149741734839227144170798790825042345096491817273867676550399158897563705760503927904618202471866489294794860492936671724519259097050286406972138492191842601428949843407867280784393767453148128239222305221449371785687832044721485248912919682030733591143524859164905839533471276966246597015295399791729545354102406404941903604096751432552958865910621343991533011228264644781486427647353566630349276478794423108283567209417487788874051362610159555213115126915204903705997878419228508356472474038035659874655075967032391888541487913697026304072742464163010541213831948273474983170933991251968889985981901979773443518161396243816818264118129721063902729000113097194516150068396665103791311745491560304409952575669346253152791021644786539573478495951714786965442540108670563522166191814574643985328402310245160670784574507698460480465926677201297237404252742171294901429365689635468802184988657106337998824750220455768531425000341135452039574828374588186277982581151451671024006915622965765724766775560813867282979178288952599428863884815787403170034050161262599917880731831662497304687239238482713558789062164728126881597394188591968474828307991908291558976147078651384403404701630908762175101951574323102528091192013758821829416467520619450174718780136866223069927702204798721552455702265397130623726979702790327177852277825180577533265968642591143799965992909021626018331586006000952796331454025400217374918589194058761562784353196316872771261328898249914608502165221802681266987788117837442246123029598838128596194045649180313382701495347416504928686597625839414366121784415201636700414252393688698014129964150372783714934967257116282837333137386241559820296868436953384986477044652797908703276144099089645629489950224526979210693396739687262147782771764379134033427083292921437765894145327294479749879386209959045005210077665779931806192429878260341145494450641310951499780986457323334362734527790749057300814063339721475627394972105601029945480418060093900981170199452767568503340336579999886228349354176522212187705833159304451979561664881558834882017570787966826417272734217044523363552343719634763594618276688945330048533156031344152046713415685744893078371668759034803043333636200273383417351649814377258516406050392917895631862872557835053113020646329274280719596833876349572101638326408534705372196218855548251229145039437173344821461046947126134450695794375878904486830118926855037968560068796199100666351108808459137306980994794674853151592344815277595869776175240721950584130971489654930444970039541684825625857393803042096237247342064476952585622285778118462441103882225978370291436433121001541746502600346907579529409583057121615239975185729681592778847671075163878339322775313130291041886855285526828571881762036517792534509689360066266428877067908421507943718782799978455128005589518870210502801231947388575918304944953579717161329618359222318348565881792902296945084084302719710628832116371041940576958586233230741357663862294598200290424318048928549686375747371277120208647171548069677255991288032876642582698803827588589726822926643200291386949101833469877369149751982322146697983335495968809701483551028234827402872393031126101967395770297603876450497438210810763283009376882349509156925069979450942180617273345107991308157317787545779512373212805962478106660051274131584346655756700830428593612526800251835206974633509141790322620805082839008592577428848524782568762744621953002571196350271851177308862182339181555481829956947119745313373735945529200738345009524516314314014397279146464325525109179952458426801554104031642626913969558418316601717804311913944440839824147709539506287496385010832279548438641428826927969047155281126096378569493080941121374415326594020468336348464768193954307702068038221900857151137499407699868828465325569347877408127199045692092649801248341231918956124464081502998739316262670333769935581071103974526280616637094535206756987724519858689014972034408935146747141667690491354143133674238138114318317160262118280006991916693048896480461340664574164152564341435426349434845424891962596622097636346727478784081403582672390776131939587805208081609085909849554264562068006917771631210945918966198451062282633167074265353303476963701389205919858417026053244860762304015928466243584151551041945025900211828070674085443370272217541707248240820802731669046251049978596557582841445342286196447486664896072610850455612587608969475540139039629984713664992895941732040614409574160713073980153522025484361522503370684212132690231938146350379963400253851877377672544299936508557408707390569871420384150481571246685962219376976776344005715446482292723944071073091005989745832684738331128057707045095466335799426238002907673154958767472294424768589921497289851651352572332911607005747468098052258615425576382160994743576638924531759071595420022850313438864242654994059167682078611756381013785121321155487123182883442867352358528647629607647334684132742884156143479044012569548137645236344523961042918828031708336798518521234032648426132386085273372585610231181086337537861482779696971664208915360634587973929191494439040677421847361098969237944157367680771788164584092924714791686453214210226349724191909712785271483747148709672066884379374073525117230620409951611548614595251587939238926069528788901093620024548635468246782222861635106263713098621752922795074966881468469480072072961973113183611901628865708385031973656758391440551309245492975246806310719641540934635129671253360923126562446822907844525700685737445269419937591379967890292391162950707714145037934583285510613233923179963185400217347080144381183396892477949882634973985641777304946710492494472819605221750334301386856204375936390535680113986040729967954407976257740276942217791717057083214261148617462989886224531182506459342070000432002136336167826239031686434593193097759614035582235393314014166634201944393926700212138969904704350413792470909749694383184950402355718721850399094156121706066156160274214686388724866480307807017749771340780269386262572921385262059455686352055623788534276549494696295768350098326009486389039190128749873192657498529684696424052407738475966316965205798999946602269858389540911902512093186708321032569922303519669948671197011429864261549885897536485900346111149937713118412893476928662166528227419633979809912059061738164408901354706396515059135663106217049151369123023633879097253424476678509592138042518017749000027881891653664130993863660843081605130131524283101603362743259519995826833406652799377277595958212861155859130296340034950350258482171299777973366951111348986754662974345892257029816702247429301782183977943901323528162418725733029329334356139128859127511041337240997672933212097196316951231685774979499762865349959356080760951365555085792873491952347310494158186178320734444207791851748259553444921463999023464378099116496136783581850758211383854787475657281473975957237334880127042604402313836722866190695411605420086896038237955198599501140786067937638761206846453930102548529569537485158123014790535041826723955747321764207494246654830949086186371882003405195588445012929801408662431105103544436229760161385897111201516559832974472151637635391834829403997559019535158950495886037305902729437801956237658048884805417193884734443012456936126290543089740940952011385997119848162618587592181516434584503835856376480839454428508961543233298822881564332796902141685923781798885178893858800710896067716370660011517655859821076925595606993009060745704619613664572444747446661648451153081511367453856394541898169724909037412154865617234293264885935855986459451803673274017446592599105527663247234975648731512419412687079918858204010170563314347261613571790791310689145964952845247668470919212154019851767390273718731728351999241904238754077929670882017133947421864564163175538034905212075364969480525192929345910048529183990222253366721753288821593529084889565148767144472733562872562138541347328543753171470479330100714437844413664450653148300061366521694300526118320635092373207874368877441992145487380840060618985172279426441767901274496211282469840490000306145094484608831928313861370407055916455343908345808220788251391418779022109696805446607458343016916145760945781519833185932045757897251294235578683137373319519737786362146741438098303912790086550774075187472034674197930754597205159248639070728880296071893302812798545320572006656205325048452262031091360589898702205773901813015072167143501292001456919485207917013391121088375392607380972109270769786076261391093871133865990615874652437313546128822426188741390634673987916872315711154024109334423689375039888755654800412368938988940668263671614198313598698553224016051355969627293134497977846671592993457375263116835942381712944316207002515469068992967571684796799539092373565362537927713851576891380749276912171141480049599199158227823285503209994943952975562025533983231294882319734153868509027650504678519294802342947761947242940255811692873425694856095163934014265951193494123127562191551193626515985052212616099753068119029629489799281473585128516521220161256138371300309557805784844842882211206871909145621733765014134480755898860546002158520339815653402841106857076251328269071090025207987519478010224090406685537853534963960897184685773935150030165914723203839778498483294007282498682708213295049567903821362557357415815508555787559405270860362839464273063673889821842430073914387539579305715463761681182902860254355719949317925087743521614806005430538638734361753193016692313988928980224721109925714390616748228821004767770251130294023190641992096394642575726579167748080579614136908315608944785342462759915283089960410080172319347771342525595422797316369762460715107992343794140854961667948320145115964095546126418863365901393632664369986568140657562552001055551395715656896973488563235718455026596764544793975154128638474398085913426512018646351606685905020279148929520805339875313744721266216336398838457354533127403983953977996832330328154390120817260981965794035726869963452277672702519972427066567175806870583596667248573333976850555135468197970168312790216320836563148491526004583221156749678416024210813713212070105134470929451340987871019914334997930323899038318925270489322424702043598232797882232219869291544514031801276850594150515049839916105658743028066460878609425018166170141493158248400718825754149100578430630834814224722951915103478432741747052631994385688296194537603719075043377514880611026030746949040750491465868623771956272849969624465431561962230152752151094343529727821661959022039081230371719552677729852105417279591086651268215286317482895676600644767417858458331177459949223333723694584415830373752702842004116297167565875902200397039488617750116271955083498459845772115717772231142271984881272386957824148471680467262688520117925356722157779366049090457071970219757932778789041366559898418537922958888094980368051840758260354943202853909543648796004126428242325944921008493937897769347710268100823817051429269857234733870338581220455120738326932821505880078477307245340605740245100017149688491030238536010343456164915696910549100611256718113832577469796329987690721791558038964655659146218253520096160501866567339754421063580734450890226896107007110972319758409037025459635032869911771165149036473156075954591695992836073542908714605215053180550904232185537926989108333109015706605781368444754766009741719644193067231764023006115447962012444845653027838502764559516430155027994367107741050741138733759256307976583954398601792024720129891454026413930752404036298040578743235806235708855413991798383061597677299321066577693396410368667709482572803536684672768767217826849446489187031960387517364661414960853689822273538037005995628079340547544621334041717189382785328391535772086343819192130908183142926357007547852788663056187507584131614887977442690423208424437574593255139047129785530676065428664984664060908783814571100537278716570205707946476245771924851574576480230589289469738103672028577560832625738361001239627814582609835546175138643786244816550431556535872286365778048343333286993585791406443552588536623359778693106321982048490130420787991733400855964301392380148773582558587236975269666768213352682169367956029641685157623240086675059148995726378196902110421028976449971066316869470289295091208996882134202040232304105360323417409174222562269689656072948997978380208034614652030586143909827472055885081126038571424209979195541144905928263234739592760587497154132383841563752687463173034561826888813402011933790997560483172300676505430485996019718263805376423578630495946356041251242753585127356514763088448492369771478640941162156254119202580608981315857426290335458320688377086267952430874186585824364989595040327667640987986626427736054998930176043405437340433747971787872427444943155322108056923674683562149060563445563263613409128740966489838414371663585335675075930123043488202675849110532811933792107980820158403669591863503166554574637812777657955126803414793581986929909759917936668338824376016166765547280092748465185165724850541013938246583848015994437177643060073017220223612060141950223727801372991225612714645279036697105562360379423441640356830172462436659006716245729805892140887164814170638312496243891378146242533845060012211636601871192816913763826379621112660104140883758738897836054945195470097657386453317487288366731723995511960752810469014580785642768543829595693649174860175504418885570676358762772854905735361784028747814582347700261444488508528039461393997241814425269699548258354974967531228350918870958397925236377528896105608552593858059443509440771101869757809352694808629074996029977741717003120460849695624258771453322121144894350604661573075882542025699401677644703976508879621880725340007941529750366110897078672628545319542461675319930887135966938624616630412129180286252415406355035365452855519835800930308900392339642151689743865279730809926533634379371357857737179938070820959191468790510764103943852613957926841558523527688458613143011371539898569383698614515882600610274553355500023335000709278058960428048027427793057641038920459540132267853617596171461666345963377894469819095956145554644319242520728239752312727741756670859082460579625153744397273511742189206177884952887700067003841755412070228752406825505959551119245272332455303931210854687664883298511219503041659523982775420374447840738949614109929659651285830582886078162943697822399395392014196948117744711134147300482580522248855081566250476949635391285883679225650151980956868634491552884107591596681270169061173103137126371630182348797226995301535819625934096514213050127951504917405949235952911033532833749852156085556433970050412471628019978776217636986088799571248838092943836002364627259044926039861628907892971870299579855794255686898147350701781788085927218849613638133837686169254830933485210235782231315435715544662799933279967980422744347076121385322329636520970456716117440526623593888114766601855969158260639405066645648314722116761155513805295425452057669014024640001919321890422317667499605669425236412776447202348158655059069871244064900692336893584701884175357197009316441168429914462388206693299314236861794159675683700315897127786802358110189136997265030747658730804256374273182653397758294997471059259287943117271463584408929563625107737800719521059741754434689083331221904895631559572624479530067165709404722103244048609106323093853133722141597700313768271455457598548255567592557710328272700554597042655854889582980654183336744250369145824760029601592661463130990239802827643013211004941875868960460233079092329915324999348134637784917131158162118631437222641780248678415850088516611611920950554139622348993573053173622348483522027344195007223221594416500217471216509850791205213039308100317637569708612493077807498005244505106807231889255204653891162843772757822429142855369489143786342356037836867700833390099257708743444220250470907805674306132127399758631384155923391107071532686602115744206935693533179793112248513655745359259127573335117758904005400111436415993681069704456736764246945039308392128522348316719727907338929507547074110424102571446861905489409646049705027111437954215083863961624072053284487199072030951309156969330597587899649530779944998000941882256149278767738023345908413005840534530832019389214524783393052920533579006712503744076438054023482700365988909311778295804992944998040597842164192525164006694377884453574017666759358388348238043926026589157768974608819157105527835363814142991621778681840988260031515604673787979946656309953702612389213500764730751396066283010117737181147489168932359223384852665128258685550903312196711049402626382767411916000310311388098508796667676959401586984177034558503112248428164669021656017382086601253145027019188895522257291000388238146369357678472959069176854554448017547809895397307874483050333905035974101393588687611057723847921944499802620866591920986098448699890326145577378381216338432648822568822510026027290875138719336927839942739764375053856710349715623688772092639864663867304058511098420742260611740846201142368999148033776526367651243104118078045492780600510921401335162884931762633843484106620442176747148408779321344872227765397013681354220777045024668414872548038054753203848518357385687333391922445094007392417012334867228081068345591549992297603277029049769301928908688760501810968722778314749168389899324463103405527384507474897509267518070662557638256865983989372156325227932600610059314117483136455379189159702594705748866557302715108037482900350548027489631779480334702635207223902124223808752792324954136241201697999206794572383571938776470289254740137638835951955294519093569554039999799338280596337110704698139761375162584509217498960355640018243530581685265157812976633526179699451498416800497146611771536862675762603771092125581854244153712243152310242824153040828609182430130040711757471989594106358107640069169327126266985284210672358493411703346088260272243133467510099424663717209088783989801957913274021351204006430562391949123410042936874620224400694599184044208913438149299982142707061097847694124027031231080933717786222478999880412373829144415083198514337617843345138958065610529786861385942352772043959275396818749477575597052088322252539873150527037894856233691449359995049489100824722870645188868321199364392407486429770643691464301567191524364588830011713613045199266653183305812492039456629322244253772471659945289433450829849971145285377302707041918921723102244147233109442716490252959395245608927505319799507138797510870373174504902245697729420414920458985940280674575333422186513725290377631519533419344345274465556694057169177357140433026758672205545795119191333512583073848516915291019694057409280683772897895493909891668753679071648958449695498136906547296703864487119113319897305024362777975058815517007869946158964980486268104203865977803886370732405164811186016976329210740343042974562497559383186360541539113881458197600921726654440081947989690561250544139619742940829235315179010735326823192933532292449658909362354006238769018655431985926142510026729165507790272631622997207432970081817473611516136342020347648785451525197399823494904564957951831922008229987388586398979610656993864452626474790603352935710277215293238199310727794888682363204912906778119592044839988961271078396901482135397071160765958899204777850996081402761121861058454914413115661853748761368293788930793265193574246120371051854289841711922256432708548486116244526082739739272109029872137785934369542488194061195752108025790163106269908777276657904486039880520599214665658024131896606419445699328716154468081101644490666985805353551714430338761393593700747291552424914752051978860309488359168713213664732116153318298195461442526851849521297780833296244926143415017267038420177126751595492734571870082260768298586712399996016316775898237155922408477097041973361149799806908514718772294051513973704835520134656855371270876299496803405108777103023130660611314915450401808263313731039886692361262148812006002667497577362513094003853358086487669202616777047237156713041540172411869955349477892445588716619237124768615265909575078254643528677631995702872624180604390827101440643391490765267287869332098539434264286343415185972203479382320763290224608771418607643836783260619028938029712953322508903943984647318436487988187908508794846856123626422412434609826404417666215843695247777021818491512523890697306475860951697692364192217525310531579393403421380404569964970265632697128934158061515439736816042951583565126042146703934605570386723665886179593833011939509445873676675967926973343682840447645333933804232494942555826259156710421100181025364073631804477077625659189972609294070612781956272896747294474724879084973370710505921386423222967011235699238125138289390298974607552166655711655380288296395377204724104251243287326966642454521352308179982445053566698231951034937310618161295415493051315140550377193231031541710178650065138510762930116751178092343679318759639434969969305001973373030667286225176819675592859076158501116676019136231994071822692882272638982374616879418533934608740875834494678236183848636019626924574344897497000411257681394578947761497295413059039111772835478600043909301399896488641223854440254434250444963720724932141024242844423688674004213687234390870564014926117601268496653764464153873450920034301420341291954492607530732510511603752926302066858629543086141678163284528956064282609856465591666360876852784034120471174566420980645074533180277409001382629499169268224511608068391478366220299201228018990895019431644111996743738493657875625670573158459696453492446930849990664806224506189906451656605104031444675270215848898215719168358315190524857071716474956168237530477543817169558393325937112312888378061490594297614031898406613894868689414610380922209406040744571489834668849624367007873117960402363064367398897734164129573742418320378365610485712329905163527920971930324641668688698160374595326848452444220807816716421065949685278454369533050145311002696615224199950889697366684096314773602815358546153080566881995510852247878457284775727366003607161717908507796906989026053675621941161758191167316542221947976159134303281950829654891201323985771019176445178774692616589397731168924080160365410113085439912886020172411760141355354342319413248409240213217467282579472930942775177061157526866762081349283447126271938879805675021377676614314537321416582659870759711295141995829400783828346033665571726091292445761877800707455716958649854631866896507313270458183617484191333667054198568786505160667695474095911167445919953831398143186379316263533538247619013967747206531495462378607146680195779245072742218975883595028997868436314477060120383687913788776737220489671988083744622091412025658575213907279424521958580106099389169080346589735487376738576019246556468663457638734893035827866658985944094909819344705884367975527685941817574427628219744409394341059965184499463966648727254999016734096306342168867650576142321623460526351027464863971670186350614112014533701396803427398668675605304322405371766420582432710084242939694615462136625978098718121067643140854391864639018310280884500987804198352391810051637205911485605384097681713159444397581469290401088090438583491504783872982769767913243347680950013860940680845047897861591319592094710263868656994934956932140014146580388150889111512747133811539173181264743676454174006313089989880788674511608380372089819889063610964653333705946024413172266619709849617928252778042366364734554059437851831438462900638998254690016619282583571989745179345218079969700940340744730395165180377961849662096876665014936366298896402916203031631102719676953045133617245986019665926024405722598714499948910835950663164961761078128862530633525281401816614201901805761008052906288093458673950675743259204539788845284694384877122891969667467810170682926394068304377570068511549397938016949513706614557572072996392110067764797955032378812677171150303574339836346971481022611086420080245862076326421622719503326711487349327793515029883460332926322629515573857680041028280753074235405018354322006896972303622561428737985825454562748864031269091840090095993581160935352936109895871628254871052538420442666368987599102480024574903481247187852316235165482664990973923599773777386487847072497541594986477924886026552705638485100269578623668847787760154639649180459510913382482517591134834751674181359905833924464786807790778210336860953878081076928726257822354904710070720486978983248677700394768540982965835652222567943068521585059189801625091503705865170776727036843726161085403778661277478289379680372256293779989073269798341954517501810499526440096460202109251171101710213899652914818955931459223598397502353974811236186449040539309049208950480635864856034031622181337879313999149514044778282626876259081024944762010787677641451904551417641705837675299926301087201303872659568059407767198854573324703374713094832016677497468334806637389824795418631767011910141844623074899180491003046326286168589194364940585134112220789490902708931501998433446298277270912604091256746077877624868637915232003778547284748226895732008651251551979888815618993190935838672716143607012896146540734049392268126061284454801211691539208534254492297628340719197911386696387351604574700030039245059057360115507150686982434300258186279688551106281435139240168191707991599975385167060069518965063252807934115715716716187557753257371698494589534324254767074047691354897666119181669094761558780392538103133436727761868462746774165065625089237936647993566585480692593504382876016326519993221998571846951542618103725300904998502927351793916784193752991117648415182183797539423673417366133174977709977202506906179958237348333315309778079050878036395770634435914952680157340643039120406024322455580176505091299523493359879950424871216935077932916412161654726386710227668448183527214417191329289594767890520995613570716176042037432989156791642980188568481539187942256841667084230479877245837280769598948274494774011977264894367449492010916371053513967589902840744785992391654044290075679495829186491724531806239166234629252619538647771638467921925245787374108786844635143532556170657655360496690364028955954805146537597607317245794600562881261442885181991933087128709515663755965684215666157205969931225082762626044645744599397416696987536912028784579544287403027589828285253590874358095855779390246133435095631200403884674703040773433853466145176193454394193487693101488375931993321777064169342483401892354673889025275686254897758437196292957554317690750083496401891802337168500305930765070864572091846132033082123008151865744519151808972041440165093863740190088710327359981227124208818994234225051163233973742409223103089449551353089382169034094252084798716763757173371665866243580075736341288932538162287637666774189309216380272860131074009092556279533405236167897154174451851972749144921175478833612681564726738087125551430344161688005586566371635874130453734881709788257449817809833994494456007385333501138137219563592090361645547276431084790159908796341335636384159811185392381493948594519001038761742072191455001837723538403146620193327472816015945406290339557761209315184881650236861398831615915485294638772628987054909251831490632082988447632654415348321631659043395849073399338009281880255916360700399532604736833668521520183115122606191698545569858487831033843431299262180930766927213808339025559709352326536796490877731344156957993155577928457408924322354024895489686999896790723893982491518915754809760855330816837770284447776965709178126030445169057175163268243045123140209904950595204676568976881901132648645526114397928202343209162183760346114772984264202066754708885555257253454854276991896289507211624086377555458670251345469292095055435103129320556751131146043582666024922432516804071740786576412527122000444587361414903228548760169525700628247933132108160030621771240495210040483856796596441030343986878540526920647228516054797874185477581809830613467949087716200477331717815389582343145956188898491732312408732597819697838593500072034129833874493861067725433826466333887509288232120804184041734841092899471623511422597345031133384841611400268883716656325568362858703023553817785295999350506985874925745801701887385741092928634462430115730701509042612827316088160035692888141530992886361744606560229795628695565737362561532310492282710408360629333703741328644879373269445368062479853945897430183769289564865561131449296328393542304265290991128249034305806283072235708114313528583423020991857825587584878233905003357351597329506671296357890424541218327271584025163362477478968767542392693777286837166102701243383075000171912814383034121817735014242999353226854248427351853301510404481744822088995798044547935427236385115101654510342581989462364042625904232141735529296422112250049508671957100975205070036594719605095254690555351488039750254258139221573987008673958357087959999382602660629270334585863469782813845670801749921090082581529057938262055929291270223750366455703875573466817188563960084954346529655985597898698296172347232255241380113299979922726473947308705263038991748537720175188307058598224541476162908424853446775237199096780829199149164963026102754037747099579370092358071820597429263994178490964686650130744282046299425155819268397908998088125817035826322675680779119733430876496121192469109069168822879694771135417288341513617884073761813054589470847950075778365582863443277946713412678795725383106079488414740586481146470086771685640614345535048340528918752969090643432558849436969235295634523754211146950056274489938272979758225499221195022050054212024312518554139164687189314513291325000313163041169634944627190190842381000936910657071544026302538026658897970848248403597867390639683507119129447135082481454068892653580342113388026476559362195487912203161358251528373934002476011785173394848686445731375568845707457748058935423552615053969969887195897161071409933199346392337925753610420029207940885701971810173166851232894423182543965928331421997729366117573628228833406663461574465982214676382121231230305557212354704847684098256253060982148942860963903086382942164119041085415436211886110348759772793954503916568445006181627951847142122080564453470212804686412609554962586293736183133755249510068491593263501764803041232079588131859680480888433994791231308445931445646054546962330480901097246960763038338620264377500831305698851824379573999017459154233191314712959099333034959626275243348480240375652668879769375254980372486639961048102812315051426982485457054843027909597965309845077021688107114979042056533308900302931790217755691297285216626407033162432370959250692855341334253969613067041348388937460536079423438516813548094042710455817474772182594183834692016643188388076232679058250474789269958102566751171490942194496244388702709132192054864091195512895333975094219837202073993291724418174157083524064991664840051746528547876934621870603918465658834331654020929385382539184298294854414448328682249361248985431120698521363097977122569354160786578285355955443671018180709073425775782056633005528407060144497875505145044812441280306823548994849982413312216820833051146680136649745624254253782103061626512924729555711078064177092165898835114283929692670337153205963765011747577909827322405596546625397053287671379679734400931149763633296546829309878842631621244319509189382060597679720649158136779862413393365545061458501492976545142600845262335063447012995384639768414968473329639814494548434960410838562422817803223859798138338854241554071133553299987984569469355569478617911041331716182046014857365841344636818716783125885381498482581860338854604311662420501839119019057526967135486626037048733507578346285649076344662167443852021608905874569837233470516031801363987078941301433349903143836224839266378393359513777156949545381425814596755277235892265814064852337771743410366077025781353773633685717278039957173227260689928232123962050724864739543148651297842268854021075733124417048242982409348004507109715382416501693843194569701039536573857119683998766947351192559650530698537448294677873793083653672184908141269515779176258105365778892466602098542557287158572045081095873972435630903485451910160326767456500236641136378163426303834496660354154726052366726356833486497958609264398001344805548380350331578135281508131571960945584148802121328891919123222317380875989688665666150215742949404529901347831919187585677278844014199077339699301390929420799706318058061557137196495832251151632794369148937139725661144295521401012135350512582300652450866372599739853917176118880620240648045483124814857413983686538502795228040061114040204971123508398108673261937006595039719382927461934986700489685976101708402210872976625059261251751404284216768365328097994823291943711583559294841041622341954837871852367675341997889335590923507896737060094352005491165455380577603767439497270322852116489545214922208250753775035772313615578657100368267168808297317229591820317912092463409287491335246356911557491375557646668083472553246504273109674515597721556227632851970342759790620495881936211849884858822500848170058667085941714091608007136692557981927730272478257845587885673140080920842992769311710223454195321117625414630164742256582182241566612959381483275290439526945948175978514650727595194200164904183099808683746740944722279851278031977960398829025700340737143529084561126034561123320937706650756117763801281486522175428790344763052123700246026877772055414179913600800276166951843139462330127148685276313762893423488486234890961062088845292773157173494037459304956317712347994132975091544759808005030458947974078068056875875028782571109221032518889834033138245977256878751895436189985740721020286013286771292979133387867240384060687413625200332390788476500661606888907543078987405328347525512073157346456086907048731399083416631094338799436255513267962464139566250632987612339259232723581786580690879630138349718755424877160172272546838663278865330431207328010305158379620089390814069988438168060083375020735667982242848011667234468975738996714866926076692370661222462313931859006356414182834863424910397460299996942955202441827413808923553768658495103016079645136001616481138402253232620220624034934778001613196657491727829489223721673327613410870084024377170413259801806451442042427518695790766701140842456758194825430465210487428815180520036064560634756030124867923518410879303919786019996510572961549954923397591944574032883311788987191222555581493000247679315496081298361366604740182191711682534690727619169336725470559418864409548612492629945884216192070552518724264173940907896249439090166275125970164874522200659004931369864729713065863316407748495397054919145512517832753356598050759576779492172029929592263994782302108569705880418673583975532498394168591813107281209518588155029645815501176397448139973880889645142212502958217923124465453120517664845218098968713074568616431134333267155115259729578031799000045258274062431578594682427563783067482238741016951966208390901499546748109043572263643322351042665890564074338975122416061962869289010046365061063186046532205109470339163398476585121776168909506284218549368870040484523368068219371103207200187040715064968678588204467757489981957808112092419701902921272630288910657292334437707136238590554536939407652353676846613764119115087645739005439837956591233026730243212208440179587392572006449409253712868727985438751526525988656712630801629582141054867859802550518590108413491303179373295548162865192977032724808949830001225999319424391357336198167619730534549973473319305532972569070668327369328687705317761733647730368817987542182707310414426407446745670806315284755763714195964872328542102790087620890774820323690726326080974241869287652045951641431750318227680755905670517355261239460990503396537681331423610947168747815931824380322019272013726371470143569686683092593998597686784375798386150800445919772197469891068492146367098028678424520104471195229168292170585517509632616912629264777643802576052907565128208365481821026687077339078831047624627367521665671828579468253676602024171934563943159036458410457396560393194250043070033217185976114360857182012234429948127288089489834687662122667905153151590047405401466520080905476620560249760918135720448599035689735622255944834690023927735565151309192061573830983418464637306878881460493948905436495100374412180838994569593432585069985505319642968439943130530321990026550072420765648985897137488084249016826215702331994258391393022114468627130014140075706051020661505801832838563790788307830993176346750779410288407656684950486868508760221054588394999248332089689506998628693282872532911558103344176979360213061566414955507459389876544781375130529821489052528737511012269555780003453798394624348889812790810424283646211033802239396070653424064788200771365639627052265774826393592660746851759808698891112626775914671546505330583478533451435711978855545515326209896388844754504027276374199630566490888201766313039350227995839568300281867858037655754688150337188772628475634493139144247791226614263931073588042988962661979868530637843180243231773106995154424789171920766215575932859037206183588489542184633132471990900307067683481804099203017969290040987082486643984827077870166965184442053841670304535065295194398078387021569199122300815687691272566512000197160551751832256091520745723882319025290975551683320157963244753029202686491128041830681863357966660660538597048126389101355930766223060203576116934777480403294546434381697934257173529681582584007186365786209478232726113236968760628665933444006709361703990454376209752128825932950918043383449523922776144953694435923558025414853785209351213101931385444742249201435616596016349473773176720094402663727095036588936174079308758809464363578257116425142579721337377955687307759935801031976748077118073283092391031410165068605897981305734429944053485250951282488004911185339349514842595875909240418757926259994137339920137530020709551756966786209906307163049048000710879990711891241947728776721521257412795192332139868528329866851745366143563747562679820060835960601909820339549411881900625034603646810200757169205573593724820244644874666370846500497876486553476347816280236090550379421508744588881472273816226951995066282420985174559820165445684251598799411987601446661061797574072654873650614824583983234579024731905689714012037371787065452648335095079095851802482734394344583772468522315760125637143991752663583760203856108169811444338022682543194395124313872641855646687433109238539062603942096557270308693989135822671925380674390569749272015106614512765324120427441970429026892884109633119142878043578295117241357918989447191270812723349399914104587668488448853718649271136026707490073836844703738930552637362597266306916666623502437859462828564224498551772971206178987325423696312842319808530979180557777290262865341487611004565702170168454596786471497123498071234485264671457694607648523077069820581130929169929749646894246097279459556631472905522603760617216336250417220133419919859588680282686647990094743817173022575835449004598778906890265528125853889612277158128939302944629775605452073861778632319089585174098372027735442625581482067702199268323448763139932596795306264323765340243536665410332597521743739706682275526825807208432542604917660641774198414820154255711359885168436701378223305005144890323082847834054971543453702036444434711110816046208469423626803252399241081266968303354730872758425387254522045077442851408694217501001260824127677859359177376749777636138778799979923964194939467234332049288779039936562564115941866292376077240676761340102974161986638957666695822972819767470480559012492418139262895352457224519648879653408123781889947757539556457741779280552140247469174908697341522064282389592343821090244021532176594033504116472130449179206247710064626218589493236120365317211490071021657950064612616042303490254956195866576811959636102695011426657262806478755820993826434943817325854635970231760194649324811871011543082582810092266873308642832706557559650442545062796657425499819576358476954410018127902821626730113241729865221518707229549835694832551661808479490095150171458350746193723365647008953991236988202989695635013320078689722639720073312824486057952728494080741711796430750012809403737173199728407541106937922176284990629308159267834225980750050437878495005433329299678500386990231859804119983836429151780941999559810927983807910349819322441401332845229723857339296113244071269300624581279654774858966934275658713281404708256056486527335118639508473628952624060547143400855165240449745136900943851537068893076806777289236916324702988707945074341914230047087356733796104419749552527309331640839704116016246571713964783862810295677094926573774654392051685664070701519063636582510800381214182357702166384252840343597538138795597838700090874768895305060874474415669424861842676881447066832163643439872039173877160343880370818816546721687655219078027536613821749051280412466384024038719925981799860007114798307220126014967785966135728778251645949271736289790130304932831561855261200611308947382396757649990491144024843208481653294084370700287347139870700546025778004047390454974486961313694186313522283659209265149455353665367627116765133840413053795597487251517235104148159900685473299079523513627920067463566260330465288590004818680905340339036133639583083445938789315010203562909685433563876482068763515101729368785731046968131726934224130166070179047043702560772018698205172343316341026127386874972446286583397856353039438275558891374424921685941061331774578684762728106101138392361952458321554194728788599541517125764094764589392912824162661097490794733184921995845469571856850178893174392963374377873577663221402819559316014804105503467425014178426626481716082354829802941891198733175570425849431284257818116554346937299378419260905435952623879951732686167130273994469493020215830248481361925789687096726249704813616118636176238117787759583137101202575562381536386673664364464229822102792445851170150231932362953994519868608804019909037747817096534430051095959353360156574591170893093715585545503146283608920814136204320777802582476422002617449827206482261369373329091849389834810708522275993743517921769454732739948161307318569283637912297864932645248317405040284266107741323831780242640808604231371998414966754323529368779461049916573640577310572192369921598619919528596244188505411310994719947888851143874434450741196080400719062450804032931208500910817189821123461692624105676432791349420508843866622477891313457485640891110271756898420120598054959395418872807840633044655176158363713907786564228126736397360574739007246137112948988574503700511646119827953225109026032621075642165776080016714545370031267259395814462305393006691712621415747949082778992397675634763383496751933912887273333191040850713805456592157349183495918887702565798010362973138428537890482672097057145501049236770390554046978596537329047394939996745032742655530326632665214476194232915489700267632986691035986505185853689840951374880474724573705435048418122342140386515149445681790091590645535845528644102542649367525469448664227281499853450280905864902991638194846699886185956413015048165639291281867784493199967347617272720724611475864936022256517649774261773728394826153672762844460611086706072765410013393247123478319988037576174120810631761939021938073559104859009655529313228389977499228344148971149287891243213531050319947579145909695545809244176329744297564652178115096191094088513681719257527950293863910906517737365142113536931605610577877739647676764057005095659522107376923119237638548582400487669676376503354351800238262639283507358984318058786806486333882161061355473109817550460180354012606231836679719767854312587255128614183666447954540136591196872768957650747238418332819832928392691581735838588736138077404137901011737115268079843562906500511373660704430687332407598608324880450755704295462563623949228026985156744815129856760157566942755867995063560627701382935935807084126628904399290502495823214473437366459043975272273269483207163830031549440799039025708298741773884939644648547153321524173324905321286325210445897314608760723485459996648634678925511864198676012428049636891604888349175137186576959768774446473325925892678498569451440305011290250036502027813776792329369332565043490717903890347983899600122919032981058058054312133677646656632601912845843240785455927507015190229557083415014713209141634162704741567764155123476255548782941414146813234095769553066568407396362166719450293189966496552451128618815061819365928843751460779444375669575788802458196246584573290603652863915330110432295067939931459082809461177214920944905164922069279699665577742388417434182735931790262141488702019272238413268634997232554368439129274584496499127255602796680375099807690223442395370425464021249819653517334881568333569739977823160828721889419618829394786479258063622918893414866565409723639498145967210947531765499846568766762114720196429052232491189986167289942972085076962951879458852769187130621190946823232821858050769199106069965728620740611361342749488638272557628006416846668809799665090873554855439304922664182628467911634031336872806457840595990399319222254388524712552257825181486299986713847961308439110556441922082306155987413625050132846148308886730839072607860566377711188719252777797017166397817228013158116099832717060994276659507468648113378505892456629624301411892738936453907986331547110610889972095254342608066148200437252972132848937724992740661890368788821039054493586364017199908620237296351885060786087772992075926726171224453312443818957246941014463971465246906650282749472954429359102770481903901126256202637145182778780548177899256964757202335449881677979024191597944723535474244437679546399216820922748557565638901532256171715576956765118479871102267896397474119169815026589328265904482752556879127434430508908308424610805855372282163387075222081302153573581031471434391633925019961975068572076543354622816946243824788127847479842742942201526068235298240157041183486226273868645851095320269072737471599698849276706714786696273698722917002487750116552725106299649826950842829551740764614289084814762601839840005948447788398453140059304857952570678097962335346229755803826719567412738072395440592784357643404380452548986877714896260564897108702357974505923713013486280571078510093088471087141594689037657932150657226843407249903818801908049099693021703453830750726266655064931636448844380817581996067277434079591664151956577754632525905411490556258104662112498681797529696404199889666507185983579766309386623833826885600228582132286760070686376059334029197841107634376668030246705048564601903689128636418111094820770215641501752870019161979527417779792140741917700762559698682663948587596433138794468249918836058742102441439002617045047319289622799675952951062450337200143968410302637288102684418492924570611119975597995259166471449885539934724268016930524870097737799775439715797413057798198556208140378461925753459839039491973520688521301426208511681084127145555997243221896992270180887069637921406648806710356963406232179828522234654211965410202371595167429192671455947017168218194583152004710567605590346995115409520368849694379482030992399778522821553090536247010035081656558578817292053252644951560877802571335651280041022607727805762569891663084248725296150287211490772019621609932401474708631135625020970833284949309311240520370061311773058275347726517275694478996653425455383611585942191632269812650331109286364862312430537356446598115122257472908392531133432261394243135981078033988052267311147764471492042319015759820646225184700696286562886435810730399307497146735674436017149239121424211663141840602939839040729744947789651999702168639031654362991738696533595292288215476513977652699345601235435579998426755244669778628784296374863590430839979140496563911009610005808082241432104094318385747039679813466880130516298643848405588998541964477319985465381071632934503403656068625906382685797718549120146555392717293593949810540224466112698253300764295308625541204099939550776334714497237614680085020527043749990953975870905350539710402255999179706726792954629069074185012543690256222543561151012844671658936074384844784530801187087407192744107521678015330656868281024622592983858855967058843343837947896099362854848800837920089965617234964866352016887413799084909604045467611834076196439636832915885929420399435797409309911559871804170143875837722185738300375808564393447897462842825739568791948332042959473862275161288575773003125571549969700344715395362641651440720766716830392890184933576991945968684180510887069604994509923706174451432746636010137617176476478953955643517083664008787442777064373525349743070278468128148888034234322781775092487191208850758055985622387543660831932090733879470363895830037812360409088933874176184941693011412666309185023933702577347375937922113128568206983200210176118536165022867628469276651599282491946786347117421227887247536600939669370554565383742959154706705880087649499579195275158639736978160791059511196372399034010150775965301223916011718769082081893058816649831577147990262127299283138568679229569258110098776879486150707299066108668786772475434422159036192087117370726826145531471169310181814473113723982056142619460257606877086218679804981109332362556292240122629625308320402013772005510588187877423962522435240432619233526486818777128261350908067088071571263469585754635225016952850054759824632939044857068140131815531454101415078001406673135976625913539435484452428775035316194472934961150638902855014137337206921225173193991759073750108328834927660072124449765884141257446117398135726894397790196902473321698860812927012248765048996392823046172519932912841428747370053083012827509274778033065268270021197338085483114314877481397082786050982765150859766989843055680118772434993953419417500280019854809906750221370908326980087646825861508669199090893604396105847444790554782331861725271726470765920068171673340507838744282307642602682071066932101169737284444090373862297225955030017766207468455888822698684126933203841143269163165500683087260604067265730889125100484669872844024639323128108746890919532685215823839940804332283359446833541429526784062780278504207247889152497317225845287211024731337951342445092692839013198083173931820508490973379305970926620115503499491982473767011706380036934208120068847221623297917092094611457528015760660703325296825759719954732431291482691825003639714109028847318329209021111104322280831189886210776335598223127741062139728791476313821035051637154854546623247453541064999443106697549876171169177823132116657136587165419769608261787722474252144576914638105913468959935369279099037055024204394537505093662867517285046453911961162604030966694873009721402532210297447024786216519678498305526584483116251413209676673472896512690594882947890730873821390449890459406793343223412135547172902620457704935264819204184789466403674699518450324113483674161971772267975391819880140157629458409464710721391408686988646989108452483846379973019032699710593808204575685655511132190601958964679297879754025545255620382740875474572880842653789126592733862992384456865590753690011688506344621432309662179499560476072206787913355689252854391268122950282437817437385132958000301415756356055672191085877753477807319337436646444691834920299951301314985456296575039168352126757285180681771748202795819917855392613819843571022130432430755709297299088553712377954346731172078203817433935383926359405059463439228762418994735217597120969378354032289167314542513012993443483320343467571072477855970111397148821697520252422692562005028966114561067351886846104838892598458461556773188712894672801898881121171135532105580663869214043246874883044906834733231740587230909150630925613475396849062874974899856577290726584331714533070773608236375653548848865949122196363202217270770060362925946955728657650195499006233806376006637650965169576110405442954549579492318293264816634309172070560625607247646217340624323614059638613555867419593863787381869972264284352781181675967728297065804791498987159207828289439117307309813189109112067688334853073347040966002576563902550987809910868743931706102636530398617508318283571487693638350297422199809514818686744175761363761400964868155354267213908060356650135431457741115505420483390323435020365972615827355792740339074545948178827905364413349214160015909011830704250712689562069010305700986351721254190025788578473659820093094382839231377559225829375853240473888109095940769061998080405834734838993866784916939147015797278950370100657116556112008873265513484269093056580953287298823506742895844003588800544313458581363827696857645434049376505348945898107891027566310605365622925927971257545369989546375981316577730203292801897802751141991219836867815008453150251036328595947378966791614900524300890986160862430098234027318975864663263774648756213245893452970174666074348614405484053003291831662699249860443558877685637280649298794475898863417965523362439525224621226187311683607110963239226454909259384003277124353535204686562318846996889034586327244999884720179075901844142039248093163571590516936118518040559010891795404797554208902347164228876756765121672395536736281060377360954145931090848272142324611496711020844789796662095818451281791661640635952098232269539775302774678516683980832620176936687901879854458875432645185308792899632674417988302852486303054626881059239023874025555944834695245482017677149132384889447408558281366818328181701966703387318121155785019048732595587532037352568754007565378079950438695742772628336800020680457170710299972448427264287805735166180274743178412695013189209585679959073321453376434666158427110918249615672764728129109495607478589661466285227848841023794500432777864399191255543318655951186117912937424109730211332733269951898846780649445899582916436579516689859016383710990912302317020337680334420620218788876088204239016833829446833549850338353517145544678884366454482936511137602131487532094410086534932980266598020366659257702677290768205562591656441820228312648150713179064754713146158530469370805143202021697578551145647233531741973898498848421770376063328307953786918451018489966927823765573234921820236397801286403324407937308085949271593665005441189751593511398646652761299463057521195510684117431452241172011570775521145317843185011085521457548814120601464391681284244683302287406420804972136032410304570257451398618016387587650481354948818131648609921192595471069742950615684855415637126685781491985615687213922328383094874732036963392859291109382730522479169868737015946732484899066990939890510453001830076678778026393944478795134589308271404940611230215307624089039213444066200785622917228369202208764273226870184698168496725132306458052655064045774236895745987848292148106599148238141770301407394773980260744251002668704229270126566519063418094650719556851355740735984918852062400954891198140214146262894339747977661421415328029910513368475053711662648955952789041801714888238496739603096287332471933243119303655615813238211521584579203565842246222832751024240495685463856753534828110737402499919933834600467375105549629108702473031406316626165570423439125653473220377795028090590550734753391972724174805759793946977720661013064315461346747636963136239365384424353859991480358179733778391675210670046150463551951283524008225851244799494009686012413576043948941515198543540221224600318853544088442248448275445821310199861050649308340309303302296796234006103690401177945387014718082421090375217613773744650970795898442775774031174379600831982193238334187918296980401997796884148972287254643028711029472269371779219639249331975525127495327224514620548881284405418468681304568163349006773260037999380100945430408489223618932272494621028271813869101962637355557425189518185795540517623627129402883679686786982932958713799248651019768953629572130822580641694761149098115824630447910949311016023232003495141154785376570874183516236926902500414581592609395760760643542807384165221526077995898262869340150852530662873032637216375604613783626565346864306487411191928844084901320681385382341993976492177172599122596227221546748658555930978721782096731475876884137553964156972348746480412886058923873227452494501686468082725036716227983868447792796427697072682307090748758461617239857848487249705670440903876223305578547191615447125878545416628816234982046373289199138104140519834474698326351878566917146799932793505077110997663503933962602295369427992602178066686629811803569725120363127200515787957994452383468038653190468593204923416911961509083425697837604109511546917012850635615670002221802630320312961638621116147788061931809191723431158128848313038534684065410892170392159069722435979197016441138827119955524210324480618579172209075404872914614095605820515322439311926252877733033320911894840603965921142753182965382631826761879403913153420367150767271806143294947223773389301010639304953849632144256552504931756391552298736665386028805444043740205349086332570359557644037600320283602149800347686560652782291027596854133486824268575510033787906179910785275498877253059587784737738060909081580136035890898074612552598035037346109221010895821455738479943702625104691015967009830854844106322652799312347830997424443966382425325548359669179419284688575631584641701371265965738601451196758662635880330223170530515991220854356571935980580960528336302791175117058666663734166200878347166501834005291679591708251871975934150285336195865918570980870917256503524785648152351788800559923104522754282580561714014330424884125224540780657376907275395739557081974084135601438938893653112555362322249747135354025755748374288959815608382937782610331171059775330793078888407351067671654181860352580807275252789706545347751801335973196646156420519035176796976067021928391853002980973983151532605343658028061615971584977456026210800023594045600344311085209609540404245191762843857328219808025338119219409601776750457804642016989531539894999750658211682398282492354045147668076693626124953093367330206376589059398588457790303197489015929812164724375915036536422861342913838702099832446606771202642699752827331385718784199949311839566000846986376576925530493038340998992051148676201675748415221717060321076310606219576043787090071480748138344228614711875526539024555045338764447497397989932105884392324693973960453129537584529022764597487042870433814139124110148907693809011252063074577167726971372205593940173058847861106341540920293197115749901743565917748194174323332881783265144718098809258143494009771032640325028045887016234337368738909466721202105669456209605073034076339022338732677201685589664249172176741098798006512400510078419066623233745702572788605245405641722254465452800114690460150053463035033224258121095202451936419994448911277715969453213360471243435642689633153184120467521901624728226409165122858511133611454826188515000150563620998644166650083979103274871730291466221878852644880620675867434540755640647102528546703512878601167181466642544486933182908930239173790999767625986720760807879088879138959043142830615479848294272129129639314731765931604231903866914690497701073419504174849653364236360071859406348588153233518628932653457917736207679333440411077777375636029960188738414240938857285630776331641869361224642903667331777900081941090386593003129255073624956513657846667325960223149679202172050753354403606906119310974158404072782462287417543046161930792435464357990387732283207397249108800098841614545942726088015621618606828795200301526954947927078893209121090351866752331923282352319548493729988808126113721861855543054691534505555503311525619772582855002461611034132063940242418950830836219640691442953530218064503167789512731117933112383171381349477781178145579949768731833297065422822772060573602697425005526332803611643085733392745198266040642598477970577682923558738320547845473469366832430182040084051179649301243810674344424663195201837252347049177451120038790350374360627553706060693328349416709846176750665609743573915801958730205955258742930930523051971129361722511279428497347201140820894059383984606686604212094132709190075814198899128822906775877765606923365942650695304425788298589934816803636030179314620651324396895836656720918315773718780464894905117072833527181630191368874185960996318670652313765202840025708781840733919122421802343819253285301757700745134394703937070059245470954844806412907422991898513754666237454748346685655088066481080286887219590701209582034649935290714361200096007632764414298022888889086841102388554839389269412192802009375632339323897926530664048778727121435906293807071810006015588274190791696522340854131023616780064425905684336165862507452885152761381871075862152729246550776370876294953317216419856913143876072491052244356054843310554166887330602494406505346548537147037301015466820767038708635514017812526339943440871310256653787907261155207522205661254964680706021950119487373791928364232664663090299765502892347202266465448065980294081129067626234939994910889541151551574720441152217636087121192246573937297241277268605282972448568387345787200529401126686942298625574614959229907867406776173129452284873739885244514055461950982050448765233797689400993562745136006118858994240008563539584562224287616051687108672254469337287286165229933945872566935356119133284195554381015910743941318894950372261732947955484204099385869134271072602996352420847106712116010146683672124544907145631335794664722299067660819538707859390273084479593112053882881819751048428378989211849266872913614442144730231467939688539276069028305118201162307755412158241350531885065830619598657734394898236633247779933023959254354146577073657187961664181186179113181166663673434311770701193127679655883307394455759413965670450943132902725753585050129089995623874732766655436991077083976875141458587028274514328272276465884282433562641636251214430118934117383285222448895469437226242669506184752309415953417932232193873124209165585204233591641414044006460392022611480667885548903385167520315879299751186923344493341097044773893325591525767324106594512621167880164020237149924547267104933955310128954412054861961862117560418320010861170252114482056217783356105597734144264702774251544629619127463589167372878506023940332960567303000897814707198952115022833802146939053165293392607159807063108075120376378561343365325428960960032720110308811299335015696822806499880039696151173962557099013519862362497518267980050876563933908934018519290543958113263647097322836956664308019212668798281417359900040938640886321093470162051220005623488775706603113012025033038401344467786087570200870195458669505677522750149763556072667130840574208107186689154639481486305376061669823410948130857424386252112825563669056094476204318871262822533022212460013831580956342823706384012041892118475265120035639563108875725919325766439791775561275208846832176474504974537442957135388609284555080398532821676398080108438696043773046970745681279678585004556177612777980710523790122581907560401337501912669876698712023223337599057304479433384906288959242453804519463539760383849517545235603897114246559947587428216998361997006377146709395090132096337659332908881694473674368817802332916907812837184544292280881777198337432066415390200577983457456997568778935246786046106653868077619030146298106580749677109616141666385327754932983353829148297906983175141616901744021483237454016606445800203925443576926767716969524286588741117960129864201816557586164628110573546691865899909479524509794316222491980009320092584796922214404111262375345584881628990546404105582145278789823801447965356890704438189303283952177843291547122163512129262046922313740994831107623285935169483714073816432799595742994831800942048653398286490830831868103343463354907372002259188077163462883161657773300077006179175168870713796292933083071831048196639499805033324922724344648396315699989319468518537513211367535294307976863925617634877452127202612139363335571324598093252293570730308020801171152761737324142417696705127585483044112157058054699426176507824586831112402147904276432438157984833766976088972879908427316729875479747478747821957073692330916885941856465393848364354885194850007043112732468510089129665960298916048860405510355738293684100108929937806472948500097574683076749849945579973097331129787049715390279593621644624284833542569576251627418359546753485586584259862346760522821730274440072245751168479214039707821833948005114147131058924978289593640106108512403780928143323450753951075509671460756953349276998586749835995398793096094776316961317069634365761284219253033214491560264167303217696591232947686269672783620163352658950530733687391167292972883268692922391575675869968389950064539295617225686159680219534829815771174906979130904003532177897582055395722090601429393764261499566622337151075061622141724804598495510689382239813331049644021662160720662846652919213023876817915014302140313112688833653493339449124338917573725697191544104354994819753508771025378175701854125710779468615421520723327897435454439568808685562185690078211043459585579269124499984063501142001446590313351993257280836428899376743903937045658785100614836025016481352915591367311052322343886595064404981266024445636994041035789829300071232348670996081486568078472106946334337923514213346895751162329441847353078182820388491433912550401214969281785332513389188185749822627824989180019787086134460054130672756299690435452481499125625537876518078095915065260557526346217424844045663722966325218247853588925968482693354107536777431765844292733569160245371852004583189010149320293683729628963367110748837099796370563155877197434880506315609368974910230883590583757691566613356802624147970525607709888657024946293316295292615333276133325648609091869921254928675497093176066007876609895279044473914432262825006358079352365354426734795302590366223054223399593782182608974393504783341512861743279029629683749398735475834131597352909024182217302828128697785151090598149693164187084339823282972982544522440675467939829427184014794106608061161174047254931600448789343265517891830681114114682905123986536396864905140268157727896980716063352979970821568362788435175689842334568128200589940874865425642170939737198310944167343869207369652887114801138686679962424792336857918963707229275607978623281609143144285189384071610628498013915561864957539692372887981572958808098890907885537334228305477030757041718462556234891274723231352142589834290710053697582592004593661176379314961861586812927034991070317110710743298226430615574265344134883457857152595703109664904237399998516213816283633602888773431185559167784959804724899431269828590255125263260738194800545424637828887563318255025713930641947834227339511013703205132233669207555091772275157142230582256502930559063181846634844594008659054526664293140568043594051830798359334609376038053334432384794294128304462535837806473832871317317100577604191961701014133332102490475137281996708150202158692712305422950692561041934734497141391086358065907140228309456004496110625269072729093478898138871562416373326139585778328909979663535538739441358595225737242814119737447231847343252439556211935307732990679940034974224313104371170253602149050383877680414743686222856885108534161548924399913419097443659513392540556385923438836058588896558905819325822624129529533031167137003866986162994900928015946328312327444557766174069793992797448103821909293327414742638832540284969925024742531628697576186524149961097125351592448540819453295622364304951835875276386216094267569525016845267138564578198460867388008394872126485827655157115810568358424574963376242926421828900795565481011132726666960629287306471132284814438822230552429961998774702167281724096123765441321521183112970045820473553631874662340613911638508257789290736033625480771563909202820845289693054418673349794914659616929209359930955331214897560175725307341013812668512421682567344154742423408854701695680183047816453937020358780780736577699683549130235751591068484598333192695782772505213019997183114609918205810501711631672935431219184520684121855895515495670081346561275554391817811130808537292510624192601640082037622636420015665051478111642018111593451379904269223361623710749198430289513196692481542249728441462539456514544400172542574347450387925421891939145179947612444329593264926566791076788741638980331244151059611633999989792262843508046382945580119392231985923087443662139759665204152621957414874005341893867720624896791359236782318159351641462085550596948495343904223435372828514572550213851041851109390907480979482410933677153743330073832476194051046210053742111140402310781999778054385567198613032840241748388567366725627256574059492542340863668834756437641171426218597874003793983548385644696162675737205918374094001733596874087839306724879377547091180564167262516771657319539734990980519495620047494157775471566128362955031975009752709183452027282156282217009440054594993560281570706235850505981113708176845466104739479353714672478065496961992274259353145675305978905413855672408293175184142581344282546714263787677270279438607601822039567814899053033417612569286747925163957677071669159277739668008046431272252268841727705963009970989250367335834318711922973625996782738264190677789473003918456888539331251077558066193077545583631881022245047412229592021462525160977014065361068421006106832138018837156244095891693635372588604982570556841448590087679594801892655411709966624099160166301679124337962107044350649777662188121538655572722111170653510367852198929279404768162961993663936368999683441970308977415355485070177791789116570361156605503451526863666390549958773677743175835127259424238830552330054226629360915141264493764043242070190167103566867053147929009113952714520585685958798454777517753449126834576397638801121757993537413565875964229346276536117351654777362512946669572667560181059660915363994871294373780903472392482525112849677902447482769344032290008048670391465425554064821909315252876768078253336312087525533951134423561613152694882041989745900137859910482457690127968251503070454388813434503465304177517958409614767460561374697971935309304540458480531626626433478126266001586390158875669577256543448817992992466429195882432535317508084245537110707104327814585599921158793300422158958164872865757033866373361203206836408627264713192670349979406885602601729799314941612393059002627845377475739348421249382674228388314517906682520203158219878766591979723340769969979500247597760659363872388223490683889586403533225645636449261254004534669045327326386576083119164503086219310121454744629268030071693877057180101215406729336733754794860805578906496784822812485987890174323758667656835324912240492051241753844371598570090881068209376321152636445820029596340881494385631710840624641949828999579314406500654220341057334467123652809895418654335261115898681189020724505690091946527556394479151581848339648833013256498604624175810105385111948131960805398645620714174748235089271144821396172937871409516413393173210861214894582807876579460210440748648866981935560982424217797368508930966420294329477056364531326975280049162143297539753488646564796416695989187308041734350060997579107132150960147348221088754916102553019133305956881671088675363395773915671519322167186083610598704605427185064776271241914726366350558870093771958774906627196809844494083208592635703848116134444066853222187423490152206611297250434498876379105192138899210605577289187600331887456073029784698841625065637508680352427466771052930135353861177796460506150785616871814755462621101462815323829926346000393720354426804161979026724220571743192798690776639483204267168581069867204477145599659776828340566022777503943287245612743550035308269013061426061952258327573718157346079043557350765769962325520363189038966312984316131382434369076501184110632045596886551734448576989878159663834166312521232619356902705153213278965866413207523770362737010150876705380579309432217269457887612839076581481563680647408308674895957218840995890787514920775537181511711792107152337377870031415033898336604379147494378786550235523334476386796001715563377962780883114767442339700657816902124606754981764874871151100425316298849156198026813771211303880941295861631631355667011791095321987832550862585442543555288650627448347975406324965438905496414257023008037632779307192545322428848336603064200942298092255862328815977122385603972587843729414605853721489264409295306674962396774579950138161382287089890076780088654486895534635112163155614784970529923981838087861422626272661707048717666267956919870551323342108698680561718444903201210081208173756065764165951986316557244260910927120012496519196876209406248219751483023412935561451181807585766826765315092729688421471692634359572622479397617006542838652193141345902808457813356731126113009312713817917134758402303968323821820052402996681809384385507433392840580306364607729655192840443514018450190079403855387389036923677470313408280430245944302437510088555195391490171652087175427751320325678314591466398762089808285686151151308097908449047077862899815515813265021872247051202217278770430865933283835111128145503062586655491302189495422798427629461354966706707733475809988090996022014955419002698333074597534792031861265856947873220642088677483429761978869338977164148042523514341450810141208539573808020080701883172814095275392887375045311888094177490626005083515026506882594136177119013490561234571961876807321094308069045657073581583909233660026367826423480904769477768026064825581692309920522346489307579142174992664663880976160502426930858574873204123926324996454138900609663646879200368801977492280351125816721488022269123508732493307191789950000637521459937107692283507832152743324820030391435733551259649645543869925818550908888162036700592105019924423469364472471216008959369410301851104065872966389317181633169183556156630707722083573317404279095155170752903024340729646178688830368578227634725169444834942463513834893494541383818142345346718637929370258599300797520336899091373286506276787374567263949962631947790774526872275265327794979658388345343507419208100560540560613567912919199331976420437620929267211361056794140433421999182814204070509503658313566680155982907684270365170568480356511595940934295093154171620764824960415874935865159852827617270397619880079633073578914314373896042928290317526549351209641332864027868867037302987610880250901840996559669276228887528505307467233621607697067195004676920206793852909222999299900151836341887567998950522889088540715192343211179750844481914032106307125919276661183113658293724574497797144236444768230520115391870881122763993556954199057166244476524480680286021508345054856579687415154982612463390717527769468499288603296055224462575470484817433467704212336337326991168420343639465528712648725733330362831637592050645967515187968578077912777772540155581585016466047792211566449406728172270139132250645233133112791687626628071733874058860698852645944900490586898284674020108652570247640557374798492795770473810722585161681761319805539257273390302722355094013881289057697172062622449521812547209483660184530937453918207146353850017226796279549904310157094079012718803609610910864721794915214323259146811799487213779714573117807137426296068452714006448475361188558285787380065927211542080738475167929196938245487106499934344841946600158561547262216009758480256178884199723937171366208039384271078441449855347681444972127095816094099552590266978146121726273965756855352123809621008591729862151283949792491588953137732103716078186447375342042420415189107189268252897774014257268560919924563992594235895170687455372533728993140803087645501173021188208822899423491618690704123636905892471183610570209334596595339030981655996040202494648259604523218437896661784719353746307677804278780881997912685808618059411985754403396736302023154422037026847765590892657579676711276326016956629292220246600052254655355332616720745618446746771919190316109041662987039281878037838708830508782467167535726507016321722605027579985043174653868134527860671049696952626526114383472327056430781966547135758371712153589506866868946496488378655344639108667852806882977591474786444900511787109142566945739226722981707296244825116419152610335381087701700385156333574253474070199393734233705947812312674887513657283318689423280105169622769776258768313028844689534562599666426287431157659128737920572922969308212342888255868355432834373747971558863310942421531440878766331351040888437872512287451536751046974846854004636097425893504935912396939062471728068287351125791615626224177993470972915509003473365217577281512155527815583490370999505096980930048895512226298727128316356964942039423054065336613714716536287073343681355352640846836842311531541631268473317975300751884573379574239709060200591276238410497068080995669957562212263986649013643355348723406953417600602511399640253082577838778251679827553590166805132003187056182259966812923143530794670647682802513027076625989079502885112412097128706716613283424407703825348884762239646377741020354278078309682989504141477345285415549081972105635951233757411946865280989565772626004161161303334649608099894839918019182464544257056657041641223126958297311760533784734868907346773875055627014258416029198491846298183307616903101469691597690998832392251695275995211844459118648860013446588834499642455265781634995960620784226234514011706267252103985955588839020893473214302493463263265394793683839994673555354285902554630952278443548869699416775505541493204031102136923637692041706738967150732767157332454241185937742975226886193986113942617329012022918115031730455187444649359791881598789960031909177599602715051226369742870757772563301570117723846247199613871464122658013444467450624012426966953397120988677790257348835891054815440221440304225382376431149051635520631326768462600204446057333219837730845031520072237658237703863779780467030321221079593038935822531304586307136633928461569454396910682242835759323944569958694384985209800116497920584819969301546447539106775128724864820177310803108155039499479684072042217022656331409201520590115024565193792542329907239551047895913731000878085005902726125589604549888767696564780463961749135791450304711308303695842902369531044106488631104575662238691872451946197368959244761549701585987794714327808002791071145392243461925351210466841870584072500153701276258094630327204468501382581764602181834541966227443283465783530032451851405116065074481248964612060888909345088122061382745551990877403872092846472095168472746665611899425755435053766413182797999715191866924708079437806900346888558258295533668841112845402433228430551802125774695743196957386644172753184162084846910894193416949063561995229206027420462274162344212255445335239232773179082971234271516831080512166954405103008165959455300414466147357050797501010970170967068613022508787538819469040500742883753950813515624470582133469451057855974743393983604697815911954346769242952776369241941362911006037726187737815877810039572075302715190612018965812243166681573288721506350947133176646776992136341710313845734543010936679386924900998078327714488740808119701991157335114835722692786772766461517618417646422819748050561961173846668944728080973832951240911341491661665026630744013119276258831083085744917811954836381197036867342193884811010786134009753337218712450657830535637319444196305707563723501309812851702246018136684106678471749046542342665690424536296605390944293908881450354710922333075837772110614558619286556523957261521629694607635906758663089063599025391843738981853457955333752836501412854530308260282514180731923041443089708620556635440618802569735053564099094605365591733313489408692400576043872608067981479967572813225228590582671638433529077123992379908670521950849456750655322451015344685755960984765526895550600090111928316153883181837346998696460342894455338607359368462089972755583926023695682030712479375089656222019988143432142770779655494767910158192798475825249589358313745974342567352713745394128278153332100709273877639706150968772618608117570936265152695779624651134906941498647767926283793973140879811030905879109861908736803570906780036182832452923325548029498040307881067197041665850475356873356276755471011680247617671770100247054311017060277912560299305752061965876155603543015725377763414013269586104794016839959028409618396225772816383534529545234202287751745833107476933714548190979177875912011836708784027286907989610746262784509944767297397585986562906148797280846621846012888284001973465069428030026023127490211581136807684981772537877057813630438091697550785791978035958336734929091322858864989344741053740692167840450318281813031217400004776493356937769674490045506559282061997763085115408867585908642384833600124806461627250910110754693411809289079026528961699126905839134459136693702806904360449355284732070788426349605158544202247147491061154809359873687539771570472451437890370493662700319180897139000906583453934709310048189872615380354167776347647095079406367124128689329137531132673502546870576307541021923797411370415460304267833855008026256668547193241796410323497558371360038051891783609189074704688893492435158281572560471727518339180807293781444516338369420628585413082251696583400678471569396979095634204472546212795328299251016751932922715013473298230327527764995309842224299475822673486103175691736706664135370073385910256450271100960506572936672347518131447012052499526608019348198974872830542509276333255949342504516932621951395680218054503306130499330969268568610081009383286719928781536691790722387324734813115209110391799821295131401652956461612845841775853646010206236405411755678809299772169967404150192990160622621904585617248675076592990906374474766565042458570218858741245191562426612474401456824157363730484158089374299212551502940025374582489742930411484420277287970722968233373650257542933428057097386647778097257278239820674823630536056706582598593819967283919007208681543189503725338600364341001230278211200226191834623962953220556614056717505455573357264685877823107981483099261114540015678356455861066172411829526814662219989493341664095251257919440833444782188347650333848073021131781294397475949399855956848190760536291267514492598196278384036617448942676074051251859494327098327092735610162323964427218953517798544829894284593581667853203579776845656359189256890486452900904489567663094180429399957655675054567758834820442030356236920705616868996889450903226766022523082255907383579476955315880623756310672049791216099055937019623823268122265014271774727703754817127790325172389152275350359581331066912318967610591018438438845637608250679429236166176471066254698203535170657965812020191856178538403408199712240304687930412075653331751322296240673800211198207080409949310646251533235887782049114883007905228498228467718855947586171404612146700567016735583123670451525020582857144493438047376376368333299575291223095366651525655406326545752439114520864777533687221880753379021698752188179531564412061739590877462351338770782889232922737445729252863341835372701965445051857139115940690687805777246314087727154872502623968804402734605449420364584155631033612767938740349990148382351682194998826792065652257658038200629304019670828484461608315331744842054524375272370497889323222778959522977414965279357703692843875556687811093020749928150307392859079103258284705589647361802484436086305544024287724471286508079222867206954360498140801322563609970814233531305324582474440592530996628203676908423965316822987521076852555136657617199696068284521894391403926018703372331454882606232556139991265009477145403903767139736860949458097533304652920179624814104258983794541368732741261598890909983867501085666351709617211308201762123911105409835168706219396701350585209196814701400930882575330717765017453602578094114395400875472484616214062613496098565072057850685895405276330044356683884060885930534068373184719288562169612811594639601185737917019344339814286453626113187447993635425769457558822725947869684616234419098676759869064206374962034777838362738187781432022050444696151280153823334100262936350284154561677269398593167745020858021312531683491315773392030185972655855273452753986750475948003100597678684656007589390115770400066707703328867873007978338190261543318047987392093830439659574885776526061807043998474924702498425333820478839290595657057771979041446353607551656337793602634917894350396715623152268389551781734008271985479804217053962321448310222472451058304773258276330365174025209644961140350594876852554138983311822585946745744084298250140087198283057211996212166022405555138949489621096771184050763944262762465535628201833731324255503984689675636810286805072735169477563854708415332893843092563870615889621572076410848375487171225560080915013109621779936344787558507992620228518060244806693591108026502740933194491127497266098143147080279964270076993365538034936429558452456465027088034751786299322333046940821483179884958170712064695845620485555321578280310160073049402112426414746841751309813414708424773976770019245702413763807964148248609581004372286046295938026994605741091790649097076749481252511270758107174311647452889758759408671943529249080003365333318320426432682541117090856887268551232234200098549469918346855030505680835250882562036605716493005458839805524456661652663134935036989289083146483150487872835256972930400313228707554289232420957285355297105396560310877792455824755421873794825042274069839575913419714862980828541239257892419370487510368900697813908657552047017513569792536569493036113724302158459853291909987101786144657912077598466289754084549900629467954240220072300874605945504680634989063037672554871254967830149004036570885986350418849573845987083665927742599251451454489052494430119699580474439483967315425995880150084980017694686381370840079666783463855479678327238484298776231177794000394956744092995973051300366532522792332128082085456166702510235791427539753753274057349692961629104702113120912356830515337871966352979950722731207658408003912548711644984879728712632554907503298423911506030288623445417910891350423035125695933802858402266121491901144646903801658014655951195223456366750784936846250569306373300644889908238496125344084278722560312545133371741347626977893226654581614338255195189372628478132128688787644232779623033737585090203845451569536336112065542968494191319219256358523150960374587266148498507664191340146654414915178947858358073193810965746336432900780291124310595641650392030423827098944660460301543751029255952652285593462001034810577984647076142565708723345077374674106567052270533403660373227955655692938812445035887409915050037547641619187773252943506510637402245484976137397237766602150206863429346948993127366435191776284556244765976959422200366568286584894744994405556540092799453365032895315374050071621528639408643966958170281917261220836493217609520418015109219557373614750946915389429528952840371854388534318635948805257059606818005472149409757218770683164749275687232676584546838164697404061763888838719021342618803010614412711137526465222326686986170978262262701066781107817418418621602562317371656833570115998316326266542398369621926259552976917363709990162980118673060880385274134429999847656068518875314285027499093743435965564249211871381438714982507805040140081839111771032311849272921783144261078268209095213113448923744836043954603751110946332973002407255390761564252347742906996822838985368222444983991723185348397540798678749517075856159341881749071405040796480124786220788607881561477810850107363560042523668942698399779374898334915642249632677306461298752195926073444043677655880073361349169260607215236787633835829142767216072264848343102384860475024790865711602915028963804005672267379267455000001592931958469489507546429203358141963285973257999615113317701291534769103435950270687718100740165095508233642833321240847933171725261369004027142124410160776318564897360193366538926187174019513544104489119070163633001075081727082225157392924247140533491751027459718319156816635386458968124718840316802062308972211635596117402824743810919144933080993026553885339506152532518317086135922243312856973024162090301746475852345478659574467433088994695217902192699128048585069374318660817565668512514459759204363952981911713861435508245723591169558383762709564047263188204566323623412980521246923465435544515010191402722531886558076393221919887686938820928229208453651879043049929607762250039473301346007864050569930850918955091526284744346737124310909162279848966707419543082704266344406391308566169847836929870828274320753627256904538693797238303390859678215822316441126672997632503414363711031749356331090080690975254473611004536565605783521641340068762734835468430322447865734301917519368396301868144865500740099938108189866670832731699892721374751857280477668997294052652886690931741044175702850727545810390443592750985191515682147439650443627651900670016887480544161420052536653540832530663607910509284788378505344734963837730689271491280595613021547833488031154362747396330980118449311082872149917242380973799588497644030931172533784487679971578106064906051011327329989581062418584833746377645813725481098295661444528239354363556606347916571474050501164718819383589863632769581767339767134467566341470991079339568248628001435736719382021607629032323866860429864636464626262478738643854646122616883560327606856468037197306409619281645973114244394861909995771460573610837888141091534620539487693879863455207488127238559162188869678537894829275515202880338019339254448679068155803051210191116168152023870453819251656133860484308724337634459369257225014347443992682259596045288584082564259257462857299478001893202595822513373234948450162203223441014867617570543087852392720699546308163859231230760004253887008933088686329703286819185749334664058137508734806955810766519007238115166434381865087247487651775049074485303789867902777031858267518292813479285666827572804935653581990573382635311849230239127681860968360082960248830175458239280223772398643152473993661147874914844569632315812949460927952496174061692800149635205346204321703731147635424912389058868063220675756414420990343944766867835825714413945239642051822707871772354007778859106026665968531470297702121391563281612849855117677907663506484551540849119584513127047454240384528325146941765535953027720685190944101903007014282317754055535817787263872352056309567971714454517040013429796204860507564066120922928845045592185195425981520813648416534513439679453530534825351785631601133057358331403104273418967836098923922749795778228953881208016111309719785133856477989857796642357979689071480734973792430190643364152655320738459720241161715081828886986330308117331725179449898461220683949264069627071691892507962576611261125383723370739735126852217067192958442080169974083985398150611036804953148110173348825606607940118187789653378583715571975590520710079219990406524508952265372537350365505039781496267309780357527911229561304815810914325832038477721862698024108300924205378877922038731491788082975771456790888523271458040042016363841056432640411109219664921985365886341776811439724758542921464621855744846196922463496413370577228675782620973113800254132715151650888530951582917539790102694850339675652955451840599424928792606539687441178602519615560291053690181593131283687060424891575840198931058860240504356496126237957454724678906877957310564791743792117940974856219450669389182754429691526796286398082911436974519661325107587823330769680279952579389898922461289146168675821487995486097256583092571934063863505350985507860936960134880351042331132259078218868863885109551608348736439416149603232817494899198459615521832124829233651007183273567009428101450334695330675052014386938639680183607646658753973970876208691137842991679478039435503641922376621365585431187824797426009216122263322413324110312776463259571756369769315951316173498226594266678023855962296340577461728068682229481455384939881118694403869976365384868566025604073510776394077572396459202071892400836615235329062741329824342066940331842530475470511334782350839359007384367088684971652289356021321010304248040781072191090010175994238312726150308352044469884152853545703296621657349577238062786349909646193161614407621043682050204380693753215277634280065283179359783083268256235171693957867424899995270379425353402228898573405939792385475125377141267541009229515406909284268157572056309970774558588665418718843902816350842539132309833881823182320769545018466013384917072760125316916274752939323513977030441274775089600331367893956307831655040469232727863608581164733876099008213794440847336352128951247797502846858127971015979788094880342458939607686084842361180643459392874099968927954374591377868803832550159185981596195708464766332751390637044423513411665242583703912811982981836434939649258746105126600149590817351877665991799307615244452859482663713728511959752447958563572788123719878140231878334750658633881136507419792124388752475780887957824513660216242456250382837542930487385314438972516136507011821599015035290241037325761448724636795601431853343091553566090465851430068554229362343359145582885183326433206386305144343446833576746745867620718106045668501213754769547217516821130597114802186224536319429403119799520464256353147631765547155416978715830936220556808954871862901675912581579600811658207394861179498214088050039630831545011357537925825955546826105863019469105325065709917297156624012117473393858244534696338895419003771512073945539634234148856034702124170731028561227273891417640428504547183850131460220741516415827905805800547465403988063099618200124754836515324930520371547041306577940705695771203994038709575634817575957063043865730034860974685668486262304217339122343299989745956226445146477790758140503756290315184659620930650018999489017216778503275286859021630769064781495054173471348293681889727344756867600732564956994102351760116916336041017617258444626518499066966530551268558333910727788797348456273709103346579672611458065815637800863974352498573158516967768993587241027570757061313676066508526896580468598066286275207586582433278180644853694349929378483341335321503400102722859646371717560428459689968636835563624572474925095621071324954677239166819861335713410916773260970926031562906356967973789583891939297388992702186525374841227923010431227802684333990326135861907951170276082254494952373105840307333950089612698131856620265564926439333691834553301342414408984104543602860366962333649049997296895374381891459806881235170966376846846898409649175916578322092582328042345781949565021786062913127759900376159035841169873994164029117389104776508558988220919970275211021004099927223364346308400536402939522082961066992318677054801778667509009986233122227264001500106310328828635125960294615503713242609537913674910325148521062447615994579451232985219584466169354999450921986953835796160044596806536371151838377079092782565340510465881114257691225351182832220905396507793263612045561887539957156876317754273059560603169505606593806025298953166944947319103179777795277319750947465338447805074586597164793863502554619624840943015318468392614273207222685345895805245096741513654679290632579679587533806797435119296269423599169316023941788051359059386816319550975348833752760696225637212100670921563326926118742729122570397327818414717782142024785633915150917732507287609277983248523015960951000164021762050152687168695728661839387551661461808279593523635893306705478057955862444488985476724730536997722896375916891111761281648319136770711687748002147708184513326086957459572070871714749661273832829086956599742980047359736584293802417911371169778228393843489995357480883069006998921669512250282462342491361779921818043421108965054732422638348664384092946196690166299752005177441412601272916883451400517751023908869722302081319771611787362318579128393244411127455834183037848244147482709554056163940009388896938727074810587926569674082803902044489602006120628126273543033522928250653401286918064205356182596423806760473628053036254521670794624499980711464303589254162524127707549972421554053808911592115454346520801592225268077616430534914734863400488376852581728365986293975518926480466030202920211973095011285177757482222318220701344846863530887350407618942758035756631226494228238454972604697825305413560823684538750671173007733430443770107423243143910604556646407565618596559733457704615276677900516969480077999438977252665628207984324775587080464907838525893895860271011295619840936785306634829349811206873753507209956736571542280506880430877499132573021175059928247367858056934645242675044451208591093829387390673319783255317991416066168991829173364672061578666313229962330097627835325267309595133771906296488098138471476817675193230936630777368708673679984008467666931086689810084643075963722827139187920249982416383676375139556514172481035815490826493444958310308238300902235520868934887067993101529358478295451257932807071150687680932182089127258414210379127825901099516090981488563010580886874632079319241408270530560441059621436538152916308027557269445197305312404330520176263514332668541769702453712568528199443760492416480856697382221891718077105316031114527012110245980075911626087804584820730081780321109394534184967946079971955185921675178000931739839655815904536920391879213645508017783205480806895126701837668153295631824648481998975425928828228554284376801597530988448693301918718202754421218377721508005980752581133457993098472420334637187111642508348455593335453574886344355568219129182846965222170133712360406011674436541651508684336370250954162459410121109571539444823550882019054412970178841788670243622305492432841479864142810774542992305702643605163147467890046136719761770660138787553002496796165154745224826627944247414929433741318761580479172969113769220141584495958522501626666944181240132235309013167563793425845648454965990708899469931442322349468155557387999504296505229700440932492443863930518950034029180784110927803940821076915035451162212290217595490334854742577474232237722816433686085791486266857736769389500653968017706641113007116051000323195452374062651361642687256676786285800203339476080531138554020447195821760803230447054603451490768045771725229785438409256156980393680231387679178333562961213342754538015019760636937146517714820494575414168195098750439862650427515371357330043423940611063181094173229786306862619752336335823682796919392208694681581006840100497398943571293250220747851603390789051298593337467455087965137543954515530051592348604831432970139998532513257688460104681333690646981334269386588207684847275693705480689860481487841267006286061759116355013379756403439909154636763093836843992114780430704013474610362655739942951174574544244381441020931969745058860855212662598548870441145065509820036768832562333270556305812152732757672532324546570843287553280996897616464608940017033402127497051503222568308126743569884498509083372567172101004158639686729445791607038555637907401685153405267998245338606796180044524979937056186186555027807497778992522925286608721452669041289705570858844414295529248894665434172138918313171824309446262543008600895416155784027544965928076635606498803733305237333455332272836396666996986293740681036958746174165425444095219471686163969002866000379816892693886725854754125848667376888724873804523405981658409255527204133893558923472514019726039054830264332297509500556334643605750520313875601909513078819497768879268435630509674303383517612082734745294329708600939688177089663912951910340723794402802262391410706458263185627132635643697882756096055013181164953796343101792826923338855302651477300146808453257629324197309444681180215291105080390390551146581662687695007297233731209720770157302220597206365485824733823967798567650852432784543759295079424470488940466769240017531047404819114028408167949854708191054349155859844131207623322732465738119977387942770650255040129361349072620172818466647998717646788392540656224913398356903553962705429046459889522946802765685630640153598070682902834403588078922510417616783626675997141339335103746301821194731455816541241427378486179562623687066729964143852941275457778761673369511060619454944535133702985894299981601020781582289398167843101054266640624900254568677026991264525283524388776696198074904983478307693420855575807813441227086280416096972844260695905173103018521589396631259434895961514584116573714522397527271295556137776448519033760865031191013421552449498386180593119717072294810679710506721898169002132319009693269604967998232262750115888448235796574729405119970575382001605634064691133011487232750531556492253108720234226699395286939056645322774503249170841660329426171048648223848386923919923785216499656946521385092894217742422389201363253633473906464549997760610735917996150222976226653090170763202269320820840985392843693402758667618464681811490124972186129574546808691098698820353711074780183688339998248476796698891610018830067669347013072644849024094482096591696830923306298598746168316447415053065108187320829736874747262883437404574479609672120085877316747390204499730303376843292836872624452761653372967533335693214187714154069935058190002166019195371511789250673713853135063117381769556277836723974618239093194026096673950519554930032013487997750105693381809339119266056209130352471247294129156465036505941102224466042762264135169807023735134907800709460558820820123752418137747660983817309639077626310144566577743666700189789623780601443416833885843950092568452470404715235868148509708383274710585622788203020650829135381784179786612351174598419137819561260230673861346786734956060243272043420932492795634394665714744425383028249359640644706014195499263540035794644050641715863265748874287834362495201281851539984011201206701938017809329130934312269415268197954759405467859833405340340051910343457939438716487327496495897539516647684522148618187642807512484701796243137454676366219744863819132817763837530778824829596727345316668778176799725726859585985586302811720498674819781540340127635709648388773580884120855818821205940024333024236016185713424998009275847682248948450223963936831927231921907390311280259605910349944435158143320885478749570258414886170091942555083980332460666399972824703953147751059322292688752035553497402697371077251883588362682667339098366186270573456278041831153990021785270148518328548623387163457285217516031620585861085704526473973773754403869127136365012370385230006755496514053070754697678364372077152214811393903329829223986374633420663438828241365597453628353109411483046221661013889286913800249876252680890620629203257117679110237745191787078891440833976788966587325054957351046967125338932976377532356649286149494840331990928374697273886314991912318194402681318461818951645735125232158530745768373860503971591498782798138301146234684466487802666189144834680587123628100371358313410308949253717797134080392650970022172310944984218778085540768401108521438170621189260144033059983111542933188323269426734467464417313936319278102999568419915223040152096031110130409167527461672139043399628488262790632115615362894140496976758067727901371463783497816226312896793573734262707500362228161024203611209430916170052250285857474593371687878435519059442303480133397211417557476080187932486342755758811715004026107663155507617093252027024118842142794991704266938373930089767401732123242760455765848511661911219349461257725925444269910177537486338888019152970583651762253452956573767067849024686799238056488126565555774538126058757968111618327908532820903212863316533794010319705890893077353729351757768701014613511031954038919406663955139383110956705524104384499162561727133750561335258707513389515051875113102250252653909010245320678521508511748129700832588111493041085192283672072351523648941073989850470533397312336423813346753107116612172372459418729627029206059651915918511354427110408177011099233956285021074380745213933173991809556507943906768247751384226443776635247163336426470951165111576697032310199796671530423753422316204885483175848478002509538401517055473852572996506695265783714824341855841490423420499649598973933120999690587820488056848485451989774566269563898906054437123001467003659961399708316162001073395807002685016817994376737565840614703920429624775853304404247987111894770874013018018594455491842891594008013715225535971390421270666904817605317862043326115781865646783907370786755804726880487695158155766314151509038574758119335817406997599930836791914887293605525202853416594335016507788500976151375353636385776879004768165455906499517581632441407939521233464438162928388797744087346521196835549574531220307613602453920078546224717964135931108782159261217586068890614040988202066015632673207968103503206896881733850587125337161837004985959781348884474184430296068568260582074685969522566861949305285161467945418494106310465157347191962371802300853100647062351862573632711942893469367948586081362114451031271341731161827858811314680963188306534002519692360963841570905714276267751650738198243050651020863737866884715214961067864510271432845374670154073270466162232574561900124954001113176925854964944031337553925145441729115531666245750072526101911243878071857841527902222422266791132533179164954711795193004534371855878825253987196750278968892994801770458015685117819487306992904131081857667834411702454057322200142409152221625731253870949550076980763198812888534173722834400351280002005678477940820250932957413952449869138970420015428249463412203551066768607777726479709620946667830960263627271653707506164266949851158142440506115095304109646513764806939617102431573978647580322884351996528292848179327274234850312634613512518144492068136211717024305251438729946890548869726221532844615491465788212001664473786662434912238810597312269644337351711466280724277188377718778476857452655529371293675856870803129774306783693573354937328495901171213882508607842194178896716561859166374113387288617939716175266096834494384418070483985331241125671145532332633397525228572980984779427196715374191088072371405009435730353323569184051642591310017480785891873978774692036295748473508655683662450480256996501401343410881178863093540176068686234325049261363484688384596366819418209710649181140205178035681524190047312316455460751804121062561919750607330127878515949485171939473011969005526043473858580039746747203531098608286568250615596067057974784976313461597889202520978582333765225791318817069996913748899933039467051122356158307996593252934124937527219049807993319215531219191214110379471753995935973928425973034763642298592177311803407217774222742012646910074639548679521858938474109985805165177136614199238234014510656699286296875458511708078654418893244611346806243332202890362221181423518641914081982743384374416688546884900908039258942307716197585643416631756450490851025236364917449726668108346390144606389474250395670152407843473639036102437620341503788837853474687458594459323430589900953432890514394440773314849589954261021602047796109609019454919278047110755464529663990643388175570605191130776423308739086901964724452514861197202431780183741541333913641070915520428117535816047700829037809430954792990635427082854291493069928385215509842539806449208359078913148784636256245807485441492122158901616505445842372170592943136649253174457381077261280165699451660900221601267836911950539104924645260820074109333986474302250497745436646513801567310350669302437780547828318993582559646917624094535418142734408912765446787525417250617644116705052346144293264901191679855774778280756281180503722206819217918990471860253448508794805225270563934383912724621657439224521980261272362526219737188231422244863021035646156706154527866075499103568417451848296953501040230266502770217372149350260726937085419064387082489675094173093380032688532980700068560454376360948630809082029183355438668381548001068523299196038597171361685856126539225733472457685607718504652614511604766137298429292159176603003786463654124064906789970160450570844904433026668654943680543114578234422521101925123865669524942200014662626888091517942911330070478118705362522305863234410541120056540143386418645149297377411038058537814492765847891843321475534226564940540500427551080695544088680888309338964921467731158237849580479250369728454522084338880371450275431269975695200412609298631174632231661333432258354368419413661499481340897892587010009520752907458349083088167702684788174336737297969972365057241112628783842599152669418673070554169091912220579083132295058354201916923942997717355322380447580845340572077983047202598204104457980406252383192312304944761948833474837160738385028381358330649673166812187773559491114055733220496828131836263898679554369312497265882719517927966125844627781045006186288625782181563045281093998866816860359265718090041423787918805202185148522443865367292202627772957723901097813316910849216755638785882272854780525283280485373921265511010393086214171804270747194251324703820632448598930521553003033591978982227133865087217538397138095198958581962794855075942699441966378173528166621180782425258916923716056642325293115279808186675706917073285842762815635507380509450863298610815036572472128767979358533165208617987762533268408894788032132722451182664087354862274169361776259791541560821840070858926921309046167651507011040774164924271990847529719094976393050189642691077284517482876674611165094269719399118887321422835142461464652894096485995797275452309262999266906359852632073045185208510090024110930775122397319543310186315145961202727893543122880793142528157059382872409261402765881026204809764770375710460382276373604017563189229268517743011646712188124093296882111768843823460382405778086335049556572863350545478702115218567221506630989900739600131442529515032343885482879168372894654953960710477939220291181164964400685516570834922928903451590311197020565166493934940431272536875454052618053428481649582596519404112165486912686304539562799381758569520556719272956982996234099145623173694269395064193329939381315726702985279951322562692611842309071519111567749898867445358837637250538691386920398446966233506118408425808369889818873466202498354326375012262666072959505415810668182678754136403895187315114295647430080203557408328772590998407780997365192955996254433964603455410840540410052606092140582270982533416016113294493302495168485463323646717764551894109980561146269143622437105930722473121949006705420212137911924034658318012227646397946748627619189066835035899043738517636339968263254282739514852861449650478606498905221041207964950876888556570633103562344929953458139974761203917967142970607328816527652704480292274097865575677111920635820443588365272079269363011636041281085961541573739811086594761993483441680895441149155589624764999834281762431312517380651597973712327435952692709292391160604236183748627290830002245425024713847963331388007576153779287085606039978139389552542550444164821032855218531147818212710468921992813839546169127555120852700585299706928126518335368454713954003008318453222765324078302646995879960207039066329694809227089686018392820752854151122999208580371144966857661437005579410297049537141498126041891561614406391299795450662242942515949364704007059236230663524065407676682758577192645224134586414842874567325366912563719604300602945015568902108924631633987467319966583974020009012715822161542315745930296156152768333587232170073054156446293257606125699331474523739752272575198613683396267149184198986097616609511680584733323077314533584390725234474672553825813056736236153668582343698421649361592786045200038959390896008724507409475760431739696225524617845759248034886422504746710350546338831816096058692654031426273481608002919876336711955485943828975087328151842285535086538783296817391581618771863264161831932624003263983267583881326587489677196130445297139738946675272750551054782404245322591960369717440495323601509984778239053028625331051131538959214955022384254459849117208585205809793691186084455957158625445427678925454374234351526869852298059610162592349110551407897922096832523175020741029245719157623690948170231040474297360742482546188199624447423934910844923930889268315737768477772249456105623772436738229370306774650970985193037638069193858864043034776425591245778603109972727359113220644633435411631122513633473360617367485004490374459465077964412710953141634018625089098911421623041622942021544210285488652639673906748007437803758304831861454410974862440752103822237864199278872152285572005996554536246764455156133962845599989616544600970326924015152161314683218519257195707945286458689714433753194019056812248961880631689855541943879183226150076929653238534946432555476148042410632314147618426222343215495465573837137836693189391400625210421904505206467695299366174338787043791619814632491275239346316782262699272326718636888869702335250941987480057843662032282228810792013975251849403249064852434734242064186982009361450881658623329379463806418049419581667059168991889397826569183196762422407670204501801708988048300248037808721310780116384213426165368205899109701419357760413209281183668371430681543313064159404681131696185228735914065446903853288112775808477515734887311322576727467285028497644791595958460367093935973077709125066598040510275559255523418782245725915138703542010670252810784909715196103705466101611439320024305430763050767174414630529220362061618896872389219980074242516029829361415342395500181071178528891432974048457275029887808983581278069533465256257690033383076587576565853599447452964927994675133935678004013839973411362931084904277760107291599807596410669680263172472518642768265417515317252100603758722350719448048660136783010275175799970778225996525082557688257260307901801382608598895892560817662576448795087634447865856882871495059853731928523877286058857911350500022585909104414812522982429737471723114729612838168913480485491319473108503940133972675537039043143729652325178696392943412507138452097449651371817999660498698576285633505600814401589075587348160435298275627872365193328021717057891104825916651516572261903264327917680536839513900115880232666839177040160627498013870110409614663372008750947083477507805063010419746104148377764699675130268929607528039737811898308608397683102415265177484985679736372131503849814163411287946177542710499603899159403029513980911933992424388367683181121924075329354226705438010841525363912111577529620473929891282922106310726135180304685097847098485576594920569950731119865991689943481937202907747382444978863598810347481328296573154114265955463989229150663470246620876578798868937411513871946183782636531961887370211353981466700340991919900063779148397341888255358646548519012533548164716382878249563102141831563459835832461544565243524703814484693793654285012646151682909039912077896212366876816113936985553302141575441584862946956153184497090156306163012854030613507836327243698332909960268746389645859532505288752033753858004376029586154501065153590678089206205569177955602831048197457965838172230110493295182495416998914701162887755912347077936410345051461940820013065573982705988280308465099129419931070491100364052753470963358099806905981296332442131460665860869850057929047901510872122787626889750829048289282681990984061417686963891793212513277753643235827162693769659380067841631852521425010313046634821901282996042264150850719052396693292892867608749441967836843750151850764969670447450005738956673705330996260656346422889850394051738119242564360486730498558586492642012237646926442206854753269404967335816730132675994188709481641668032184424060272826398562453159221310784227048448386326085531288289235551564226953454272596861687801362857210555354793517692867437302434700199546832693645580349601707156391329622929203415809272656599468237776414177301046545507001101107313479182915475749162339996812570929812446377670699063193198850716225564216023545867104922303406018921095436072395550937359217576928202682800074754862369707572514592197345681861416089442451645244539775171340728144615729279687795132639046740418207635452200009824337272229486914162420675537633297079926353936740051342356766887956275179046432293295250746013703818676853286298765501643126660511224105220199198927031758467277949619297475461783553575545888703111223249806226778579295817644907865090871644738444630588630629142917088685232308580455396445308351080160325541227264014105809920218472433333577257939524917817132278235842724945936100243225190096586366783125856252694209746479144894226196365818934714514888099458541247243785758794216140854216211897093724819522961510703113795681371493045548502455915788763995560477954956882788442796872127761158283272997842932890296318517547664918605785843408431574715734387308829357468148334069772724290983187122693634921195168400067417105376538933057121016818454964072005216333909223050527768347084449234489408558619126361930808936057975706378246927462048092142949239073194209492150526346055375299090463724912511613270592329749431583949800262571354738466158139006114454834950278089907110939535510430444735559781670788672817118683981730123389790427509928449280875687915446646859463895596737868927765239080276396412080863530406620954207532539146763515920141372323665597580476900964506531647874653320948153490419273568004957142270953559724612424301695211503029840158280849149648631844283528008785885007596531633785969197532121756458168019407566801917655792667232791427171114077137383436957047752465465039625757063787699982725803469974033190510610690518104925073673927048889282594179959141298154388334750219014496573234594896437127519051825903413689296680110693223054310458223574209380807929193881217608522579268167747554941799688877451743169846646310279364944371729254267953796389871391372299860224251859464747974646432729814506749618105969335594301751000281454765030265382581198872286798519881325524852482781782663384625342330004939249370249175713511458551463785982495407840736693220391914009040217819743957804458407677359686904997280562412502526561722948651267694858039047511778915353568201737420773562500561082005303950458283604323771418484905548338702590348912982607854478024699827641249014476484560437045447543600953068301946128237159367776729588335371189324842727219742285673088318775258719693886947646055434071012365076504530503109427930008231149929581568590758931831390341161057204140678927387738932403874561144603791760396024351144223368716418521333424404087473366067212592532473881712254317695575015648557529471969218126317985464476889455160247278384336671476032247121755297294471159613031061031943044819199420873146316965565581902735028945340983385479718699243977124560569105821489995804430266861890671952629911431876408374408285239339981929965290248114665091117525217854506957684159020516371217487023988685559137582985682527954678888929780015878576046527361918158397845599933875087408902686319662462584622372115648020141802860716806159247192218314835354006545265090848826832491186709289057628744107106657395169232794244154056522260420015700250916594004919429558703340286756992468076063171394306532088592098108218700900160214459259202496840707597661137534042331011351414572795692662567162634326495836132062863657008042143227621900803781461051145122875829961930477756622043090446502284027317250011323935544215328270412914110525872598400000799577108702049019396309807971969004999680007774162349806031046725250564686659575791047123812431052746481739781058605024314369163162000449849975270182517497877509918612332074948750055799378761466631525606690501172869349527053914148849854621696953465102683670577690378371540580175646894958957339498456390244978122730084515477219698222968977660513680285580123546726838249891041351712070791125387822682489451434211459060163131948008745349881252016678362693046382615678568601670695714283153404540104617193143582549074829860139970417282074795019911405966760615643860908970505666473300438818724364858831031328069962893961859217837759825932861828558741684413200719048760325875467668056017312082548050175804853529900051989016016327690882414271333439049663825196422871996410222545547476492942489599531662580534969302982706169551541619506201666548540027231457803718594781770002044892797948324315088546332744111708181897910830663270280426193468153196419974956351975933284015389923879692799015358235376891287371874055952126662905419852402796188871155946615884475893737702394243680806888422421089753658844161398015998836496709640879136465128042243927745972638164649927686363658091205629366657952989487026481797072636110400521903162152921854943234662366846903003095343448057745279696939750351505789468433555233910289210164844817564983400716192297247906767959479410633741891723991999058144457305233318495860981907358549000673064553612425125406931249254045735294148841403328369053828876164418905805689597777419239275356909233971088810770978483115607513409639276168740291477443521423994911303569241605604249673521040843045174894943522976742215749179552540577501296004734257309261768761592415108569577506196252321633025638737753506003126111204630397711595059006420153235819606072514460085006892586271612469320571234240723224266657318450967926001145383491180026361747633324330158121200818815129904693762520151768882922565695358522285923039588178100622061590780347015805494527044816239354110003264046708941237102025966806431515513431075604623563995993243976585994046453101729879108917756859993462640010295495728535519360997196146793151629786085762308632653557392558501090164148158917656765502346493437817900183390363965819902519886826155100688828646841529276309631853157889111603909594153273615223747580825732777913337682234303012237509737504482586471250470576847815302802985413515086445238316157709687551332405766987883059160288393008876909572253347843891439179622189875723235439588890633104093463574999265390069193374979704741444856597144185360224796581309117438428948860600200146186730001892222883300284659324236867165423735070173507637750348272505073098719931660687146242820415402664603066519832731100864613413977993115576970889770704311042482946461963504673875465312188925036732704090109868568029560638947527781330473785462705763890928127399850459971585419219288439124764146353505279509429073368720350823496526710830889623260001156248849255680498589246544197740998064181719686396725388943202221990717124226079588389609165567853887081286707265575253315024178696508234562191759471532430969291969703916968674221364980416712095427966273299287811165215596911042844262936461077029775768058666966751075663175736631488766345037682340771357020966327288009809345755840470950899881598349248262202021148279377057784161707956096742851579066839000709115401063011561160235300783036743861760231510278559206529019376282163220544714221679734603131007754601859187079266619942020112235956880899165991978056734514058232028277843409990176607084647030836487338584945688113635810991098650291157740656656058476225763731791056457369110862845856892789995959768885046719499004461512115494401743196488979876663823217903948985454094195000179322912425013780424660344000220366141655201949100141671256226319224074534632977180896839167488061009625941924211467041905452793207828764984773015491666776146415468948584798387623871287046274308617372574922406968861506187320682543766395355432286957700377560099534795538124660076913794565879937691249613842631037188407272966517458206637989012859671973536273259636922502951619492424210000531961566784902626482537350144071591481042323169801056457705208856117074485250889653696456522304966753509668525870080695527388128616256138796983600862172584673734750532900038303452286164269421986233727838194199582687423237245269455610921416110979636082845431800723400365256269935337817845777288184550388070409221464649290933398027957270256075079645656547517633306520263097022754631563695649792469341682510167918068170909258951879106120439730395604368251904695491927048992273454373510045003683113262044199261665141737221185073052166698044274853528146914989006755772690751852305352574918961209085959106940802231712110906104415419455545411062383748606582464713615001293695092296140039619960161619110381856988260105442729398726336956896672772587277770481859832541407973665149582177477374754501523014019112395883793362801262332395113023365327461762523467671737072212074639363189447157177175604332414109555590121776702539698007323067370082772484252354531784164936808098014815300089371616664629791588726878434809801424996752987738093646093695475370810252498371478278026720473550332758964549472030495640715078363627628637819429632194633923597963898369154413073980075906977763734761905238145554870141106546882659234949327467522770637343057031526443844842169594421122840151581010096741779793139984908062122584003816628903550972820908184232482537767329440975255526880772667293852022527556068816823919984198871362327707501606384116289568488793403713715926189555226727522606741249770194708839471844896842490943837537073580450589083100957734906395055069819158142152966919001868145603194258826966079731895065596725648979496881231503708866854153087559246791840931511208856983910964396568165324954116900863743966951032083465643591663129758604473046263503906652603621494081212851095993193107077731137906979147487701624781299465607773131799553376991060953804550582234795387443021359476205833934976765658789660732232016250354547448428944404949931125175292657743613210783141694148665813407460423528197173316125215704762302370651431514820005360284999989581038239819348672566005590884079921414701381583694931233779346185052580743730767386190489999722586888419350346022431634235970648768417027196126616522128533816766388569801163826138357907806731549847178260862674177018057538124131391446698168723036734574594175428499681256335832385201847597721307784422349222136041384618810322238040247094667291650828349887443382507574964568248252478503043911632085335679990990871489477994053049376870760841881985433339321031222364205824518912855640159649341295508360015408281476677520419844412900227897986057163048602736230794435233420382581035499102263195480616641731683117052464145345829544941826703069728775746705516780756871102067468277280774745024155624793480015134299806065186806138657517074681252163551510538104449358283341462125584919303887057676561688741599339588821074249167212198092241311701423444282059705241274291445343484690593030603599164918356091082124479758238550593470396045070080442315467228782125700004472668765628849697307191331864473772227148877587572849109251899719897218367550625023006596129595577726697185721312497401132524898250218847460612026647289677511786944936207195686985651817483500120206582438085310853834407606748911262736239465031814421392998849788582914228375632034815312710344878650762637774857056543943196191316283681079692593195136888625609136484799652288679707644386355885178656177351656802173343461430588970411082099203242016841053426530196666897426730583369747760973822846471831289890742900552534608343418555831309761751982185184337160181786462265177319842017667652378625842183580409708031387900082327890640182528236945585708140569065147783875859903977797320194310448013194834101707565820083618910649248236127555489203008285443709247073470877529148812673497550897842297675530949479023533934990380302849867714406920887070938110840090453976932007921506148401116155565082563569078463320136876686521079217330167636669788762577250948737885479689653888083893342220202075356027259330910205376736580742819820295547124724548587834708135108713730968184153731350369772480981473409775058891392736221337086363653053001815275417814441149945822841933272442326179719048973823813708563119383785032939342305861023389710908009207981058887607674759528280054097989160933360190139529997819051716293693929463305602953414131132723216927547057446851257294258663453479560471939595496468228087899874438595296491691251116632067380510063541358495753810501760371392588088181875738812390532879278602175023070178417445726494314343895239852219807393579027911619848979380989041975260782099204929741745374969096621091870460129324277091112029079996660747389071148052152552192019393672356234135483771904884774497975870688842959287616787617890004282384780528682822919195891154035628317225232520669843030133729082043521617065391790956461114154657541050936004120402738266793767171285863908864236946943337607625524085584792993409309537916765173941919636548898092825069232779871056378055956768038185164405449549346522756620281027509662183836343231797497300569748937760440159765648396796556053676846659503104827649851018039835935499532776531819941279788252960849087158736881982883247881046140620133625656061679757111583276768582741174553159599291722006084928782041380167397045179355633290460351687273453202432473264941470531960079856310439822673548325221341263899047528783141182003194491088072765916536218893132026366175586566087633928665262665770691270088050645377443053542257645333373997871747629766977696012649419961545371220618878697876842149193841678969078259393533221563180377416838814695063397685503431382036579999960482232609575723697787744407147836698457938580808834708619150320803983898850820643831589010218048636963843768860283279918062433058666275275907583373959938258518906657893900789517959858196037752501048040444747893271987188527319059569731150153564333780440968121802662454669502874657967573543210782299789595949404649288182869526637761047661367405060413339084317747940051085588094373256727279535955568952236009973093233523424881883504414525995233403833970550892435827702098282366487169506862443117969060180743357120245267674186303476601019672789972241114655714562881791905610530290705134220214894331565070479393822144797450252551181361629352138629535423398272232056298377568316130963235962404831985377242691840735594890200656016681695827666791390433289714715603318962515626966729363089031078165619540651793651729531289179145626877922479820778732412007648472665922741776181194006901454529631585523383345615849732995076310990533042267887625260873456945318129881224742411457941427130506278234798261033295159918520980637186521325035316266485962806928593858377576590549143801580775011906739323468118175266056507756446866220059302827008771377977640935762051331950043592622888611367061720781225199845675885498627850307385738306032075506392193590740701350087765021271034703607864474189822686602471838243895905528798134181420925512861272246252144120364504041206955121372660335292315441805385161948348041176977777041312774468260664511601064077144220857930685001150469489539610016345003453606034788251692275876306327738372149936287371703137844359224417704446729604025353236562456334733641537040831706940023365238949512952660328439836573222365417721990159742616972615096466198596829901403628299108701934070739428767050010069483273390703246310793592930023104582178220284210704427000957347533987000180127818511297348406260679963217777387043955172282110524015514469245833711281705890934721764123716490167346974474508566594164410169407346010053046352482528932870578938574402331962152496615314257677201806906414029278088824735405593815159593069590417706313631821836363758753302233004051249948157316671447976413313916707513578309715048955876478003439526260064806530809175585614934032810938372203202434714227176310005759111218494971845327657991352511650197967105379522507240001077636626943617873167002148622971469611123111825155520190257602775822771242244550758673526571863632849983435390804183833751894354144223766203094391675162473069784321033360161781385668665069759993928008206437581072312766291520565013885003592173352723468528991793266276243564579340800076433569416091518869216367487975714215008176268526607556670140463613085670261179796652193680963516393021195784789245878142460151725341942474578509678085223244972127542398303497748907627521115562985568315819184393696251237773406876139666191367163701603887202702531702811739677538662367398107721682695220403271106225153051346039379328045707115146774257553091742101312235765473588000623833708525405549738465673163013348815207105800129925488812855933819151044686753033773319679208284302819876244305569790367070725743351277430626150617694405310101694501230505975591013934044087374096289235667228862934136379738393640869808752925176232690771091896276616810135636480899802051479126798529217051943119510610858603484688052592117522868379353419195146346693603482770170269330237911910297160846061589523908328418366414083449227161309261895733816540793896301283906390591469193938050288987332532894693275514771855667054559970954612981998614844467558093814734729303381609940523281292659775617716259405791701465461143079662383848862520028110071922437653486164757883786408943639907548121886790988913858102210399847861440452363986805299199934678124586192777512638178087278044693498378774671832474189430207231630222453357874098446103348343421847681909002003319554551505160582522660215233911005074026471461096394369849079238938650362397067114654395395068955933784436379651904201444508574588643128775345548901901239727256161539213900113159583830438452000750418988929534242960518297585434054344902898883715347184469899360431996469590059463034515010238964244549288007143212572117184388022933511806035508648151912474543168394496285857778936818196613129742785816163756779270340900056816863204824253721772865072251637397490238339614068594534002587711922230398462026700729098985253193277663329130444394251973845160321727727969855176252474458025051958843389643135814375533111387290346742233244204638363310685526051022977933325100407716160015271779481722819924492673627610748324961548943405498970906146878872319634468916140877508253913724053152014349885871541543466537747320437632958571029045406311267920767014935197211146932242141981876778031284666806319308565949999463924168745270948368439202757276670711114895849682499235878008263980634014692947721928353687737313502438084432273649872466986472647538053171777766897406849673520651667044073521610653876424411787247325554775972961855051332005294992572905934411329229484726898651012959793387882378299104889383578773936076038162393278764948409580688402675504685377651297579111578645516797664727890900046773750174700515138197220913435633062288071162824346489179377954034982741387050883992509257480798062332059809837892240912247670071081960419031160615440292185989034336065277743481837004558294480849658899330124648572041790708334161169793812307226434255569442028078602057754901145162458133228024727114919548831453734098577222812251040010666720069905634550918229399486862327906496032125062261169469115254357988924023767868087608141246006018970940865020608907607539477743847734963361705945841487121865856821519792849412660739088319344309574190151444766338728298114970187623830384178698487378231009954395162888426032142004763736039572483462811877211192614894967396185893442969038624205798657361163360510669561746067912149636889647193089522122723663201429605893708337595695570700845854717887764728675393691962842234018708389906009398999543582606047535612446366428498065105641507393084990342397461125979391399362812147272848039613657535089283521080590874562623271249204425708908646484297646841948108851409370406450949120230848383431216660381755319218116871610306357006984399673429642580105507019913624186214997057148152362494669192642826709373385285953682028273331546856498396308114886335726895586513265207251741916092897091066580208404369567008647323566290819658226108984436631472948979975027268227297725556845459131787705208467829047709505786183012737300149789682113588264376634453586929313499431309793847316955955946114082732875639730332117871993702267890267548301224022855456799114481721525931584608416610263936131216985107464748143573694786969104029096814666265458633455651846321315657640520805161727312464396856444092161067632933085139493698745247319386269195090050668181733926241657956253627368345644425270730216558016689911594916022130784732174434321114219838254075561663745274565674647299056205814033672477384242043559113754861228434408622585556158538049641031493615371510654502393162715647092752561557377660171874642583961687861516494316210052732883726319360235104965333991914807351135970706359747345716982401972723080799524215383982183799208054183557060607500772548129443659146281118791852892424599360075108045999064707825645047791829263605447288286537726520716777958062030678750701119672712686398682583691339523881621791310817469580107953801267403000959059308408698425461866231533460627449185086740568256327910531334692853767512529717421041751771687751601584298086989981638783560934206995271518678482371364148989565088468823720937328647183302492946018607013586864395863949258170604020001449837528063677371867057846152789358249496623339355830810675157196450327381948136617500630791011737760801486690857809579481710978129906052075669059020166792604091884371266725013319600802644321052797860510077175378079569697437284605998659272076261737837698343290558694672088924188248102118721397539916547990148078778661981369080808325138870402312157565121067154958277922350616982473968221008041467347402817616488923353096795776559912613007655430924843197650551550573921603934977108639625207302113109193235789232461844386390223973894947604250372852583471025577292661302779858166592017175663795151718681532269909972484721959550217735437938631425976733548013408936060801723945631283509902104270493503546590550537750610810621234853713281945790181821084197706955821725130829372059333135591241430412416407460909676073873675370345476541880129786610719967714653685270607275182487972212604171133606873620532440025150130510895989358617206922008673890917512701748042686823843990571745371813144476704745713110434875575078098972355496114417279508295953404232882740315427565588458668303628056950199486069946011813820466328003476676264245044664029573178240136596172542485069444035857904377090413965319291595185868248968016736340364385527249317062616824941648100051379995386166595587857057772136949879274744311908436963071777995479465957403143425103437732566227712856824649671210673227171762688487855340939721167743495140479697348081336459704615898757612714662663350375652862005537911179957979915566919871493942112826085590813626911046371536046806593927438103544976485442047495383775571212985113853800181481759287248177090024868077290887942559528843488974495183495111340221636345931893051769411136310744483719163796558908831241993739924578069675911066916179499245353259183967810676497189210445064133704618465241148617841635424204009104769951267580990991924022894441638012391190719882420584369270723863995478498933190630482451124558658585447550445807255616072483035468388821095441489883528126065429214288403981881606566207103503761198656508716737047145654848147880067072714451154955516487535094381912499342815360760112826345793686858706978830782160333734595690295355891738975830328175825847051490678393474082203178862910843093797100776717220377637129999417772327011259436536559479429735982343657360701252696735930751477163419353829900037882749145185184754233372847310797285991867054993510783248506703876213011013139129262712329339976872680170155925075835216398330615246216957003578171912325548662534554254515624875065089630514232400152277929273339651600996698435084030599830783682533057524924629939577198031559037387799398211490512346187740365326348064408001016767773382889456546861418845301593131383844819267295784258404227168292389451928115081927819177143040771228100120643382567343026072495023705159358856443041935872012835940943236814713806135362535493096724195840003496499654414440506642461699687414516995730932999274225855956474976737468960971216359119801212088414506947715077108554988338683757241777412822331862534582389310490632710725062383030001080072762542601005260874395205799621954183369138728288499458013369633139052856709664543916851262098618614097793492085985473912220067229050538572576664571927065838382582481235651573824684776015525750221375683968476171935291318384395438018968657993893855947461869193377654205144121617723460503870776473277401052898910702677803718338356457370404618483048709508617274139629184814093031196787339893823270288359059698277626646501271937205758441879165104481446260669609816729877757853936996222339553481024858963752066476425969306224549899528878016527678960471624942022770663468206992708371910023199960600520478331402109016623771373647502750881038299223852457277603209612578021346313617750424955111388063602978489795920921981196331919346802101034514334582589945278618884390207212913505798982143257003450899025562757783019615336538833538412926339412967477005526980180700831542896823924171979797747301403598656434886056530746068282752079441077187912597130695197174985188861995875317650008630662299617984453641664522577833010751505260321505540429241270160040005336968566203261649475129369171927734068003774082138830319429557208519018497587706054200997677865912795437758515994919333929052187174772085248799025867317462607703955792549096007987003652649094821146008722728752811682753474597644343140055968644587252439621306579404151880853060336098699023873355968143162440227363612749930490185694495978861847535703836326035397958763090469681227523688850463464371024258372015991239682627959741786225704249118685644280608690450573443801937727723497384731615377287580967224863884231526252142038421105473803243256211814054009770009891672030531595681129373648338891735898584739857183079300731663249260334835132273971791929427076407037109382027464456410560890729253673811039139165121996131140857554731414177162147059604904374632475039496892176502767778476708002269694580702647411766876147408862759441192758700616159997282005749281322912684237668774670597956204231053237606119230543227412654496989306906113059463081420003636006762643993928479956524870562529913966676836395407089064725373321081017210010831708191535633258003417668682005774726325105960517787306454876224023516166087306390016588090072551233534280319873708053799259229462052195125992034755585909242267932354216860567436721245270268292413920075930721587899610445173254347254067652573547872973083023536412283094417794610939143983788976504313614768679416779434056320194704607613968012780483734694733177690675198604104588573588404055991920905176846488330388003608061013630472781120225235146335090367946207987819386815784649388987994712482319710437426764426105631053905945315416906400001267111650885314515109572406815178017009970910320909007399900643209154058086601956520342783296197243970401883387267770322865355999096801395449379926794492307308579279643965128041088608220689766600919807661380003739173470252426151383898157587545667147396580487172821090221778519332254954724628740647906370998289693672593846449485451247877345956582829388243484867997505681461687232175910476269095396624413917387041734806747799974041412089977067886294111119130832039268488131947253317251199217792719434623765285158040300803407799849750022308199824486082186266640209094243519046017384271626839416174583088263959262846091418614003353977202105513320196506972107502038275965698677241234363075762623605072990916244110305015881428162119361245612621460412794130574675938046461659870959408800704290750539632364586175235486619675665257464280636892437565280646245799001638749001129257258569740991488979555588950426184838269648851207010215536791216518377093978233672263867671439230248067537188957933246550952229895974105647527712021854739605007203844607714532992247465464752075370253394760799181875594357814606897596485665733677638325198107759816317494666687935632949436861703072208771492846881549065227120198211784436986254294154492929348388675903434938716253279789919421157492386917512665709132013658281332810579706498897711096803296662949397339904159055697164357744054140190433102433025845123581172362351112353138937988022267533525362943020478322726964188791990468354884855542080747349773556652084011659542082085355684595995439858800761765547218721005894288707239137584183837937050251752609174286727014109751350454251934731416627450908340061323236852414054711190757930269258225357869003504725841495359376736375616295233140354569611616023107272435426983704472497117203643819293277124295262261165240165055299693354988180117249090765257628254139052528668239418217049851492107548607615267820902660585374047033506534495764582917578519559318578134580286877267306904200241194554804487860038111242093943197738631428808701633036428001600631882334011724349221999312746048530357230542313886506530038277855181695492475818547057098308277169822571465246559951830362434529326870831136267464545329095172273586472214069761937015990132649870670923109828724969846361188689391055227395177350475870725510868456594335653798644522250066576719772382074729800578865713265481236493961782862642278068818113025215193141024743592867402733026856390747519806372276048230629471566569183905675354174085544957374056697868773289647225528999674996039445977048548979050301831628752607318112241588495680939635424724302879662300866820836155683856708521203865890207504460118935189821750947884091215390234070994337609550342816296242898286230025623533545488822484096084564709166755550355134563696204799600617922041286671472109450134669591810555215248987895250625524294905682617425261542222803707803273690220587033063501483368711598162620402969515506103464759396355671563126507605452874520416571319850687992695179262202669614650922556436780199677257860341960673117987017059797702618179405733241508323050595572278265941047358650889612089288773402561583668117117073006076548699096896991048861033061029470881405718127296365521954944249042255099703689526175848537331760987840800236253461011678247166871543659972930949644752127137268743381065567271312768119855850281487874570006609429853928380438549410864397520698496943551132344390038887557851719336509774429672278070883174114868435026446839975018410776174020995257564407412230587017263143443112690278007939427867795708368070985122824108373951789273150899842707030193413502247681047505868409846555324824986288877031973515424119401706107875983006351193082382359528167114763855243214488110842280327621252732781762602569815658792244894257172557155614756583233222326516688333510827380530947477700516356410923848132363059256168544868325196700500422375439473261877943580463795191817798213488053682606519626653412527756621438878784119698507114321029614469419782084364869893289478481752941612350362091044144422045882582233636027485053995689643497607748075121005368729860243888605743981047155646505841506650516477956788297912776804917601877242391482246841452227556435461131975120158161911542170634025568476672363217959087607960240205175309473151094077275459946883131743084062469491915458310373587400357039684089357028532957195752264108110285023444257520155745287880706347408384563966389509247992271202757052395076112410175209554711606746909470453785618433373220839772363415132384401286332406652414265024927204035841344062485212850544331298400893238517630643511410731690775586815440478497112626826902947247083135862171969651456685748463317287966447296230916843939963036457187113374943721306546607090465904461013805056136071851338770685317453035585772027727130881272085820489441600304001265271733669879598014414829351053725977337683846163242223451512913462604083745998912145825258494373548745180104917143107407498253890425512505154774615683754742262984766777740741770641027151063126914732358575115274689961847476885088149771905857611239988290436551078092476958855415081718907845374132827934507490845319214959581707994938816537449553299644940405445174210568196499061648819218195354987474469349494494620978533402659253318738191644811890859732982401833089835661423358541878324884424882594259628150366123786732849423933082546862132723407734437847171878053482298617286145750948366196684211416625422365679091001520025782314245999943468615861087596390277193878259388879503333705914253614285858271660236584233096595312668026122502104200253817767562352025330063531896638046703642790414850632438884781080861338475593992467033539624467212502887982335049667963687644486446888881498792367146613026905487341558943669186586876204024375677334364930834128410559783761430525800614363276130696313275114501862062777692993166570803728454623782171401229039245190856382231370991770539163605191268609155391345498486325937296738256462389063296034298317323419943906544568429548144658236829252399569894015611700608564697397879576793865580927993520787278648242734467033357692436965220339371443668644538094397551141681949845010965287280058792435414219677444589209632721742825039217858130507795212822700866093172093133167352371302022701598313303105151248032994393247073132473488513093323124632330816911890698485150785022026526997548923310781801799200039818662754105306388926747587368628188527971130732688686280548420246725465399537192281842872543224988301716863868105678191715017865280181779563622553746134356537525395929630203134239050348034852173332991308705109653921576665353611640729239150156796124874392166225912674800280391717241471381072683399567982955633987799109706642425893389181513385585761248658529325357950249682395349321127898887479109871794313506431948953473311952764672833682606611572480052429802359863039390987847771144581152276116915921993060503878183315818463851784840957842754585951639182903086381100216612717821390765720314459420277751645382546585429196799735375622785472995203526843987366340103153517990065583422127791551882049969364352661432192558697868843667652329205728673297085677307404180198693282139926116820682403889087829028077739599649007641933599870093936987717600204632392692378866379530176795661995023811458712829820637121548983731185142977485406750731493491816839696300689782321425740959438250530042934517451174005762962067072864421175902896408519910089514148019000985616438368732953716680722726110923668049904522439206305932721820790510542700359356247878691561449086802981206110177813044660383222969481450004271156468582436764638538788081935800489764029991943077442568879846497950183995223549119417866205727605325889307486156015809178822675543395970672887574671077710645468706112367591657234593115713143457787057019829113004236383694139980140420017563216973219121033077145829575376605700610823789080039840621828421836204190395931849700564204734826342474508487654398723608131130539694280228045916418492029532676839194583722609354717044112898577632576258376739752935648426439171074171442155030202664887346254272183144572509846517609160991227329503975730752647384856333084897751984849986271404568953478981346191501736506286224453567607160443249547389381550444409273235085302645086074980198315412078427685085395068370488198376984256699673475291792000908127438895972206096416857408390059235630401568996722214467155680541921490181540871166476709528832462036505043339506062232978471608347736195285318993057477869028505995618196954616642744821992022208010573328725187406391150411642473466722342282455966409164060965345450352290464988583068173943826526845214442512572710542674219883997252070063627584609389415732976496099237214095733532750656813888136935013110620657766317368375842841186312389865022586894350838224383781804729971945794697321237690143350207079159609885696366866479904689998036061214093114433043861732987725940059561457145923535849381112463961303485718130151448428735646798865208499841554488324336177204263594056852704094067598932204234468636198466340762378632921313515717111442972393068381493350265895761913717733095598643237644168472792251341067210617017192336575070556171809506199178120193762791975168821274323980206813853348971029281837540173642983182732119750258985690818662246001620381401446195356827802668099716493250297519894218915580872200145249662060897350334507127488180798853020850154177932218605587234381662691019070711806553484109993702362419042508252282157919149378696374897883698169237550218228188103019591718993688154075257729974307602952497208384080986659200774405910430549192997194062449848275652080087418195873398492586465132412479215006444904074436600902607528960392497516007338528182400061645395295971167610857805897839389131771169969444712203401745214246848117559895162739076411335323690569913506302769510111497636271738251209591079108487887070349117436819285907987321765999800541573250474241161544886898784089338640603208736040118227578339208011844978257550239430560770411475629669975978314052016369395702828061477599475491809386049262357421385350769540908416985221062473810045343191724408973726123110167287339694782775336169333396531842382574450004108061372332364540600570150446445615641348686925924543579481443796577508825993107833889349772917238905475493602178418356513313642929286598878219528362782512068527679431902240290670183885038346806962367398439224530232722138789154618622609611001117257580897138797284293815403919661008291166662631574662619505756706642025237483158257693269822094601503098876030944245737398069857787291861939900040020349270825822484137981817888549836087135254346514475236918565959149073382576963877824676222444005990455376553806772988356102192830175828299486622252558968691270613960216551707778136426591909936024122756565361599972156036141810545449992113169803319148481417162070137456870508416877968000863772243852097955848510015477330090012559830214235006955483310956327903013921779727013013710225293513521595660424382213089857693412456377997761181164235192253543760452197120370393855370052903600893700656316021182059520491273868008175173274018002923448226231953593021886802272320666896325375993505410339559788125040775012733531985605372397579343782044453107686424594885771225116623013809998696137393278203374522798912680015653810370057034601699909147256186557519382004995262545902780826715578528231441818186982477409761631150700442906156538476749193661835758261501833358819275225693448111320434298653633322396159371965588552776027849259802266522831014192119737053440698797908201459744779442684043143825215810726743414444110978995273688498574151921711211426295052532087664208799064333481627426855791055535968194049098350903376270796840328765089530944473360927112179892731772836276354962960029559274883172500994440425314865731131390404736782976372440767064446979185050457376115000874643889621176118600739911900410094699520827358064044458122447531829044919386818415388602781988000034932604088895400679517132085049436764114935748026071216406238756247158841525853196591558422372871975443445559198801947549411143350537895769662957330017127697232379724534818210465164813290095701743759717779742687262785799559294828918962004507012306310539182737915633475372479880133511314238824170188891807800925965988733114665454489405959878626599302673102165470306726567913011812676477799450550645546695907329623657296616817281844672397074696323134232281605531678318927123448514422175301900417260647532514446775011504706463407983306926277455765268324793375675466437448809147772153929249074341228469651367217102366778035366760434012585178348416081304124242472869293399210911412404357805918799042114019340797465137538668380677911952324620238432865969206985254846818352975138531519560398628279101614044683108264722884724470339856081614144425689215681917631012720961543425709057037459148091553591700357338114319795893963676533238960897458317821969420399158490033196746927859994522204455060418766258403583142246581522655202473673434912746278939761361700726662148997955584324295954462367284171480951220448887855024890135347938884333601989356687645773750531725863218109223402983343583705993203902169085682418708642311601810805689410360438607128321270219874608735164503029349963703852727427134515359326267664987745525869533718855732043843488879842669231114931143716467913830505614430031058265481751590669959564261952182993202216958838729225961802484880822314585032204998681705269676932694506637923090254064218205890836412806129662138636784996680320388511576702608483981009526527713855465591051084915174264571394388907255872692595738346422932432106026388789088907035858058636003089161083623094549916432152879610660674865525087026886412775854149120802994027015052475464637447356884673217080125236489479985965643635875753003035965170011499784002999499803746242551242337552733560716334345624264200593025933832846849064930250499493125584589841062411697234600313960446548794021847514733769963814761060890803386002142355287500731921832787730216631767619601660792857978668360217938383477110517826763581834930803662864147796840587188256740227119790025878864168691440969208113697457759292729053088340592716985487056373780743885428810207738071518010943624488970987656781759711842487929653505677398403836462953590313064469133489023607449728929849802489022790774330793260878639970062243579572379354244738549719618860526471995175885392747625267500901678801431085035960415726763582134195592987902172780686767609000629824175925692806986601768994649915584901305440731790631430400961491901273071797970450591659753052366119027932259434408536988018876543088396624859785562298730678301469974800912625474455877457342244775013118457884151417081680024077880203703450383815592042946695502114178850689896150232313800071357241133178580778286642654172770568714105422774270604796104045519015474320341332572782060242093998593281224981068969808326823383824518915971961189713183097537615231432582503356038924425342254294815200918259532230629376706099662543250785779220588278711622859446355499669101568851876344479272858895902189864209913495195751641074390707564851813556815139829069902795189892965113233015067518786785054464877451255311851909590062274423176632271884727423571569698622743823749062608972477550068447660766198424794057700800172882583259007530530447169030970883497267230656330115153140748245619418721958076306268874333983767372817598395897576004671838692538141709102261225979621215358511908458984535464035632471105808326618519673590403311705101094403917531645688172836405797318482541213548044969055645832510144865056926790796261910650917702085466672232142313207953944645053624335743409459111263684754365369218886710340465559646527966990456901687282721350377112770283014959375315009577236122120745813363378683217045168648899962597591701979783906729352735004208421522478523425803238970889735730577582107129961469175587496098838165133788492778702926223169380805618079797332227062465128673120716223688334269389808548155830063286690732338670626546955763892921935751701790421246606074304853439243397014055232340762857137339999679040256852462435281444119938978672852395823374927839598070766841784653907662540995673870113304339879216264353853662057829470883612208526551564960599310859123277503663313163817958772128450969963158613095236299355716379874655607202285003533438847886893591576345862357081320927955772405678326341646076235151632138238000214312720437092282120508129793253604590019089065852096012655502384961584271006164688372693903892123814021554744357583155075677096868298720399021685388701290686023818782606925260261994229837005041259832510786322487257048975776688954284712614539953878411638772207568840000848528475540368618672801866905596069601866475861701676576095140975605989507265824093650338680651043921672626306718324899786600065971829285925280822771195605815363074672424939606599235344558899552232773275113385199066660847044053892224245670940803552028951825044074120947946034790611618851698888338024052361289406991457778215743319419363009989213237751191646502896995517877630421442710408708802742320409478590710989626857725484924188156568442208341691933116133091100255703717717261518254458165062627474764445977890504404938739871302220829669357396560804821653327275058301610226718723574703710007161911918383086331959200671036202893496251732993144763747879078991068587394041507028422551448824613701584177561813200424153299489581324382169449064581259052286846725892737244191038719196661724853901019223575471913290854858494789034772020614936140835254299322610998055040735852389040939937723335810621038437139997966203352855231202578746649630991241035783630248067137925432209579298954344862821356797136028943742736267798850136406567304189608461267034940233494043742951421703210140390625502565403994207044211474441621538854570185554618095633445389700772910022130223082902334605114779254557382423664383987532218149175735260398824652931730753025472676106672957073813118727400117170233293744953383886773595995936765567474213554274334941645893302835095808343582663268345441674806542868866883408667538848206664932494533515488064086480902694562789505357673440166299291543185698441957487088218026725337760857412475216772385399124451741549236784553541670085425110993431755945297814278387896912838934224780196082547068263663420271944260918819509878541977466944607012429498701001415307815895921160101136980855757396493275512155286931484205748513429801919089824908999818833430294876515300151107019075637571387418620226219534493267379879283694080025490492992801621392586674285725367607536009043841742982108582640458049420852572555038258651735623990522415755941816169139749935276635891631876290589329234128716748374652445925627673979789172698856478086353404571059536723233236914749283870131081328790746540298819554327893927076130944321429813813607333951832603373010487966681856039415173934809222796238711728337830314025089431687113952196495094770288707139854015618734320838467917805021599804171497603498630312725858212832426065767055836722174988002238275405006419614274852047712949470422745795372897205397426582606703932485026510920261672896708644137892155738518578640162145498221304871939277241018001491428038660162020960617442935663126913699901359461084680302978656032721629637731023777139486802594039493603331157658852704660863655017772881709469807901649996429438033634003262107248720342795441883774158735054479838717084130516114572456146845962240983859714065326913952194834206580844570752690567012001114989986509927486440840272442148076447184020361367356584513146164050514391131301325661794049617244225924961605675765447630162880147851675385245407474876981092083224666520163976286204925841340935145360738947252412151700256012648351145854868818953170535609951875381320186515094909053724845193675329169152395394497961880781221499871305802605462725945174319932663472809398857526307851048261152941358521444090686419146971353016883800305616926992629788252521367534818643684833662956673488108044674515369980336361355844766117400298955817454326249256346551905383319159951061425326898178512465004170409034225017390212567355972050329498064282155545531746533573629800354658684707317496943314238321875034337819540335400751596736500340798032919358225728037071824726122642430073611861870865294845954527258844919739044051166582022556050461687995493111309799875729497551372945158830943536227625326947256626956354137845301029207035705606404402173686007880881216306934120815758230414145812484227786532722781321992585249416517462894926782715980687964873985941948064344493233695644504694909003810117633211040394668235128418782609479241810091315658084305802116215181975446740464826464109583855455446064784368790030028290192110480906042642541815962834041995931739939187892318569595248501712291626601488910220941350042863909145650363371839799896875839891008467350233080287307331102948051892508238692574692818902992877188816366851266762763272503270460816825206914658639064770101253124065730164149766332220936022629863402002094368600956132226449974612779935513910118929194440460345855140029197069712140183707456900174021684078279198610361701120717614617063217941642821264166338195213234203215007119761080776567862269637597916832093457206179320910101946764816972085500401957267394874000895757769681171899901593268221312124569074689639983077338700643590180787403297379226655187889274854896119313847267535503673157241300297556082840962224050573053052859793673069124227450015850958190242493098080234157869659892690850215557595531526685052163470138749740398748614951092401698982491720763798709833564079657923439105829026751296546715665424497585013818492800398984085555022128931405980590460954532595981045683986488016336267717345323861858424985571025591631220547251185767911216662580369475967299994542964457770021931396268360726923564159235547251857973004459223401193657232679838576213483807729803955265849880097559712541508164662684302904028710330370678209319463824398339013159493019408000425083025261763944772265695380378837882048478954720868350817860013599750865142981160150048939468280345828782940759360384447050257193126514950595654700460941264083009260636063007793078344256602234670612006738486994510836351408272561419025942086704209806891000514289976066855391091860607114652090130258787860595239414386035767460605524462225758126909890489645095023608717488511255820329154539953904325463268967844495753109462008946956217070817257089270670153138656020169455468866420519551724977021931329233856395675500511941288340157185503997980813059257289593310927289628050355311329082084400159761988188679542676696663193502725687411602019041088233705806078821034150621154604316649321116135192097470382319931124966505172387113565113883439009128681571692091993084865564525830245495025494589029275685084830672490407600255248935016842602707543304217611716869237140388411887001516852725372928804379910186536076411824577333997745545469411187486925001657510110522752532766110263573520221862669805416205472108527613675438040122508956008233860486588944349717264864462429317034425173536467628378397590803261973873577210079206619912219110641848360980843892128357147846163638691451216902740497238290362891314856470322472173319109209025381169813773158982073875835685567975155939859767049759028722788856556355832167999494623173460356481904991234502403103227687230523367222001364446601120614170465315507398100838463882497806672057659592192520789609647776351735202202082541112503942308253806377661925114877988802893898227852440301633070723418955107973662248848121989017747898897729786157185235810213144443227318747343575327001988873739296038726158920739518368238316999554230810878233230224695045229255192867837638422596674651989082638089595929924082121081718373595036911855558896473569699631265077731633223158045360154207551249377111402373734012669864517363546864182111494493616178552554844173430735552684509385889188750418548928856669259841966058236087015022762883246391483163167530699759712024664173139960012741790851611788462290214858607459351125665740696371737949763632094596772935717595611079888880818455664083030021326208460334200690643800719881765431778466492855343073472091477576970552766271601857128388293905715647699874862135437840785302988910143463565033408934031998038734538478677258082075084724735972235205830973000887523992371664693344048896055565062032836560282955716887786622408869557193688426203820143009326652830464102430237104419026084820240774398978216904873266063021172186113871201313487387570576605351441457080724617819174529417507257798444210065720238972797400845169476174743313000171917461819487837609462232998501910698267923097938491535421207025301498365148625970631333147176115749558707259496513501108094108278935872313951392236456917489033038888962297302263467468375773323405460612438892598797628983535040731448564928410276331535282938034721053600740491499055357682144749499457810127785222179183400755961910747322103840767665662700902862583006969686061262960303247654180437815885277550562944174392436540767167249096859174024523367297321582002888430080414468793463184090816527435014507878313410925990705748169781020964974101848598635031366704265988620286880703123947570517114523268148327858520265449504256562384467412899726319512126044131139694248339277653222080672707827346124871111337365061951476868796209541070132530570625900029566273938968722878778717114173684422651459824516320936299294770387956069628979238983820583666748305258160970660735397013931519098728315552293809793692408447914290363530434876443751419674694461933127628911385044237401397664109586850161097372997303907802443943941417945942080653172423220301422790637567863525534629376012348632353006879244255937122430489688297295309796960964369925364706905808634144844093978974138841408571882949182570221007368384165463054884271265001484949975135348149097545592168899487257936722825789001443065154155342251885018689004875417100348240404937701969071688384740316756911216165537763500253644981240782302926227862845469368149422836577227098679272910648329073421757754192049916234998380467457610671632749236333025530502077123810198350474006522412621918378858233570093825355844025149716715956310302757265760730605535485095378205707470805294632945597463797797421186028343786107591020917644594592373450494215600450294578021144741996343947703703204453383551598371510071325115464540120655644800549886052628855728896893330318142880706893552718827418341742508224488442103441961547602882542154958053738936536574512915247489174034388774460963061843447042428329294393457012658166445863195563567689101112567773235345320353042365596827529187302628527631901302940958919485055615801442113913356181162503445929338962020503839579417895537160119311124143886605256445845494050634083404545412705591785241942427872483957995948179921233104129108705239608753401769164661122277955034275841269555813566420251045798223698148660393797432263450684971019328057782030068770345295730088386439228078224395196410083319347176104164646214894698430713389087499973960521602166144542597669363186656126626662096572046779268073932035532722029761454926452030838274769129194389303309257816036857703332088020989836417965367680764997480910835185690401795041812208820303259755210265755494043180289794319207625465973468819025685762946944485234727769853386203598039135693762360534299562176073347867705883442654212218984302838922477243555354856505356047135511372407295549204199444472099019570008323462796233338479462132256133820842739859179815234041309362053238008289641551030650702295041650656195479662482212828217005326401454320766996590631453618023624399748313427961623968213249929509634303332094166620899230230693201614402890062971536886921161781587362260883395821948410114823851140896202385642379882586486400031143818816076764301928411133787348232055854881658886692608095919205230760384670315983186324403049728808607428903064071675160330079299301631490025436891554965882394374913991800925400932987602928278886612188903341846855271898967368533223889201137978161174808887394907330563096201853340897035306246879080942450318338917311832015869890169359260042596289361146838339634578347281824004777735516297409444027669955916831444961815195330428938406740387809748428606740115737335244906203578222612974116076541395647056894976557058392289496713754593222911457292965296770838070459996432786424659775169921263878553981951426703463605158397774442069923471333426135378216205752474940981066108867650744410226973890829079700314615143671959503642029197371889048614201042328318110087712531194937015896786094280370579354054229400376157507983114639514733397050420399422120829580614707295908641523396123320433650278354076852812982506711671611419614306515027214997867034747173314005277859298816925925179414030815115330519369230405007621069644052579525346627617680777808830408775624741495614640656209095081980615823251722330614931531320625668070807619168777417053952889261185375806886301796619680744786387470214945751957939521316875198247019977734904355971049393069674461922695649276857825248000360413783818965723151698264170842959426695702540286515515343475701482125282016000968298116709358690109083773677027847251365576756417576918484889018838068554683809002204064347588777643426182918832912536773180760476186165181338402254958702238909965259097603852362243275308532186694844852870523448006544603040585278721315412346789004668625344017745121458291557820126271518245360572784863283755417394864865589943479676208502510654486208591443053683156356428055612355352139511827542103689849532620622321369618286602573292045198915712956557307786135539522351649977096503521685432649501244637605773407503342246794699730030322689142087895400018163467386025220848998201023375046411371990370126023943117951912115567639453675360394204531692853124635319357495416626860960281330323697822079557710982941413955515626723670489356486575287488537245968670123997649036374586791738860998117156202651440677775777015703348707029003739851872632319497159878672680047158656186207714659449513885536698833044268056191707173753012637488398493613855499791492729111342106978825253638928271118117705518680429015480773242676122426094090817647915767190484532927701883537913800901260169716348811669129346196928681658910314421660312574272692825542072321640841956314916752686909281373879677413172376806679295736226575377406505925208084292996923787040865024591589136091456326388155637855914304896905382815837931650529463619448770396849738567459003829425616191075655299685170578830472566972998748961298047633829550409531265690679692226567022726057029146041804445997686395999521270623772938462242738864635679207978484514858250143537870986411713903593671412916159589598739006611566006570843068627007055569361297352146616550984982850486230892533204365597865014728405084899614652541476963744054906278945716353117996685240005942197773853365797208381039696484156034017548836746359796463524426146280861975889085275501922468074316690160521519212371665093942463716665495296335637096796080523882130010292003346211412957741338566712909483764657705545518438973487632008662042534206474837913526168558390990638217795272864092333160202609359345897710741464773960752557816917974513480719349268742081500885008892424200720080280405170627671867237425017670688729123928857763081029588765001817108573665744112561851740159431466721232768509060851441556720775600465515040936689005007668751871211854750963824022332833852055528014913200235141606892032764565996353013195369390483499464136252248384696484320825734998572417591235975754017908335611244203435748226819886192985487182596365983911930121876664879239319144472030103967852030718989501801076436111229868309670316182086656387599400198797611735461282417412417785625345004774883709354053178290183480280435324795882150212953734497126013567824025380375625627045004492432241777943138314163043243171365693457499093166961817913892626668584956406350719844280334707425525296582391648714907129411051208183227370633974567116690983444782380478105673072493830456139259112271641772736188950144848403780880036957714303480373218107399579456022507927624235411411646737834412664774123349845726834692160324855711646879812613711553862901310236388349395949730175608738911007295478190646452605845121941438804145835454263761352221675978134762742685102522258490420155670758323978765217767609172779735193380848994472602538362512609349455048629740624150050495154567018223385005748124199302261705007554012269599534216058618354484930518637667605436304635400415743510896410086487216672768451527036070761229537620973540720238403706780716461802013143782953794850695867618465748365634334146815322201981744106451391054083273104047147956692636742182797806068189009076220106479441558287262343229520601130940119384431562576824941148623202452133573773513709958012098175732896009389954894733709573166906423692893065799342361867965299074366076199417058091472555456555600561338339158857942926092788222538395275150174726792592026146970308566239456976106016517139809736558103462087194509867135897417533483069026536395154535914131368714641079246998320899499612498594313023708627386194825582805752571720325190944388502420137858755997197640225024926674456991965803443872277961012562988973091037550448404874158067048365727222826241505081364282330378832634053901855782004707489873489677563023707794779669878709712822754323882563524836788540094975867227521089357483106392949592277792122723538066646183462539621900649204628888210652175138979190500646583027996653214649467603647573552349404972581730417904506717068186936609317403046078908676084492221680043797341221085777111326123530355478461581532212100140898023572834260665571702993984833733235362799632294053983128006992886539331984597636567022651569548698280157286289068337265079643240088192850096257218397432160782771463156846437682289787322967424821555080732938071998376865846245251709997065019108960402352127240559513248100498273074963667093428830131876233789475506917729645264450697874845345313405633932332350316179799950791297646752149957658447688076927971992056489413199121900030996406919345599564030068788009964244696659603093640394243955341147347394911404499909276608928530531764816738141254715155182194298383214513214107792532236835135315104006302347683702843067292407032885220287695956318963218489862042836216154157124876288005247203753339716058699927798482655938214683193669447615600008830553073525381381169572205278822419080535373490228238814677850670052911562374364790574022901837582814300614418736270015092464735235911332712987138422022392067281659259634095128306044137704334121320435905927655373916014290832429859673060117399310511694404511478182688402932215569678658657413640909699784094104365103080923807652301805454905389934345236901344138575684129812682787973405202729384999740195001445954339365530866963366559978098872030977151964630366917250174029532696639727271724235422267798274763251021377000423735465471114810028523133982423743896637909145691941893688448772208083494271526165265851497674473611529491011225182332602994785098291505428647248434315354337704160246695229841074695286750473042924702733536845658751984270898875304071357804926381896996737673137246242492169378355788080327898373326442207783945343032653830508415371439220250922926961112380285893937369188297853690655740979114886170452928145604725340448719207641903260831761248818203446720328621369699401513740458251373457383320626052663545370091832529117667557498216918568764998243403465271248287585624565752260845164972519493251519362176267370019481288462784576116785555801130924523774753046556875359302002953886869434773186386790309597917278404640564159564154278464489364929557911074594026755448262146614997143945938868823463210669543000631580603606896025705066078573367168310460337432304207522807916242656353345713979449436865120778321960688945512123057917457326448999589939523839648763385519782161363486423538074792610369223888846211442066497110017310379059906925075500045513045425067951205594974342794233998621084949995833544931316727660113876165288220484928998437332198786195811385819293014750711964318340030677028417849194599851170835281207190553777679965255676369199230566820794910406994760239611068490329301586239086450919842713298973111683569672733530723324383885151298228175184372080554733329225664943846842901622495905842495522268613140170014962804674264941164954353430993748208863255858515699884923632311516829018111038972880390154626745238986403162464923356378710977909853812378995318795713010653344937566678251732758482024443824975807002016933343397109542143835386737636602605713277056682927347327916578301709281569457809824924328284580862826540940906314171094408518263518537435227141747897479459888025222921783565408256284214263867225686840220524661535496719222574966032854076821469427289729857524129395756798916082459191221893628875622037188216886188215270495641196994600445491413446904957840563775539366496921358654063833831853269937483213741394962076915199527443786743394352779523786925656992092368496404824337917353910410420633589687780423557019896902492984234365197292483056942519733505368754426141172259557084904819136740026560648490967942532325026496424023082906056518476487426798769746999717211496860113302674743475646083913055652367365148332076019660494436565269180868304197311090181741062122974731335394560919419351124615480393538778149641490524465165783010278965420515048626075913650526467875764091048541253556799085219862880233449561417687027680250947183640610643943878424390671650280064134568787189868673651138610150440615725881047466975389493332513581566354904291729727757901516226753741161209281800836559550818033331020799490823792660708497224348345908478710093196171602483660338959167130683441308479601322655865774782785101110140776124155553777116171561380367936557410594729916546886419224397364501205996537949665750180624374687011602045303883567608165528143349316991807081025422725867459575929274330088658828204677625231845721011371587593495780158550238363579361947424295677006646400728321062893178037102247785911229731386825154439445750439287964459512938841961107842283793336713621488430911634631871568880462524358846491387761782912364985280026251049051944130951075365299143756157466253292409323952386442022288203278423823842245475512172430780348905655724270336994114604299971969284961214583701641218358028399159240804660363771261333769895302706299463637020071609011507959565435534301005687511988497619234401584632696638185741871993280835475226716915870042391034759755047863358938749293309936947655702721284921368560639103528264649577763518111745673262363032658192378677402367500579445603105151448194145042335149547320029343545122025275391887499790324591364533218957599089245187022899112022252510740578831721781441496643376530908442332807720073472918527277144379824138789715394742965163624506963750850747331438645284539009694690810548740300157021637799436232780375703154222814809827281941914630002573446505896482164203787468690963256359267462106304319275678533122138002076982806687282409375771834731555321838979848967590791470802112175041939874123270766642292847732405983581307190686174951970551277130956043852738680834031219936671445602522746779548394232605511031664532171316019087497764080382741541184825158802916563518277186584645268106320111878066162773945292343183117286608012241487987079610132870085678273561909746719091830247487795764203418316512944859225512457863371979400866002060296199363030790709700709637567666130172121082079160371023313012439416747588953937189720726504998690262702667119051336241043623324232620139427784810559032323198275601117199257179023850612929780838193789029658002084714482689146261474039846863226654424899177950545800823244091200211290896566502006761475290659416731846272410381696119465604497934728341188244589971831321552533247809301769927700014311821557771720937172616369146510639209140120442992542320754657716355255294929483753330401218580119371959329556608916457817240974614192862837504735816298952399364899804579662946268219606348746570818097583612699273090007360115606192116603950729808445624928867473905236502486277849914380650620681432976481910422055780847563145309926755530154527582095410982344042830972970553923557752135365934935341170592565097087156494137175751469928961433479080785589731166437544731588753160078352798323131974381574909459664243722114756547663417982603168303714884351254357994431814980463803241930329269602711746324634702313285646358390806872496061743691398932093975535469908713709533329617837953188434647202294375101679015704354289084632490047363233836184426726918726420668834199868510922201634818852938008342340015061425779030397164674827846856069932618671338464143156520221532647319332602429712451689874623658715536469380837526404689212811568789509570560282501211206587665400771045970991888766310906812198821716201621142650646230396300012329550305892934667764908149952874761358446602361559192743412143651030574758001060604210972469039321461137002543724726235302900931876713874951329225831833904980311227498889211918956064272253664912682259046776754593569622180038216647321358323088354590825623663784320230717419699670197071502395244214931003858270001489231295598042882728953881694312641820498853870025822681181419283073935568180586107642500971382299072772802106521358597196960178466323197906366538332652362384782061423181151529066484538924699271035827591392995228349440153215775451378492592723847732771936875530241598334181279489767229258638843260276811654456330944690550397333155699258314062192305111913770154002990093338998019938092250395379134444505300604141420511023467115702178544517243442324946940228191460183883416289156907414225529067045978712775909138601826913885762111053939350524597067236273979188171988654416984181977295360603366637937708371946569593777647148484672355847881872292595758513160392789434867131936529037565398672926523895011806242047965469334275599237191342045658129395340886546733215228599375105669381695890993569949835067769813953591182836938586263478684542270065144301253837976629719623560647266477626619663556847770801346236705717994264537069800084494381732106326358778933438781714422909735529455196107235255632492297898503159778268021743038636114073148041763044108057792780001223878902219123557177042682485494717043464781554367663036980949578968927779134124252738239667953652425230265870310393536290963155201294859056077048920022827817434011154554506597212744529856962578989070106420917264434811757091063461496279982232544049521769329226097953710901445288086249185739119230145921817514353896924687025623126695734993818037553044727940647126485322979052896858975918562688511627008680635020035219274834412312574139724705778020469533039530739830600939953602760353784334254706272376769869126186091357776217581652515032102115917182421987195265210572541242874095556526374591399616981320620303623420353504485649264799955514374171225113146166039201375944401700403140765512625579099088966554364878882822816365838921164245789112159052540626036333649998938661433848638193918363040187705852454024118919469179206138550364488419898141067600343455985477187103295832530909463525516632435097393578055607684897541316178093252077913393103380088671356826870296547598419622113355581147795051131697670984744241076461296520857125411892332908501221197047093829556765137282899346835631419551256416885573779160218234896159031017104999675035676564870561507966900644700286497180715931520304331217050604762897289190040441665793263800258927654192233850875766021036508054478954532218503948656209811220759464622210635538892502663193183352904818415699394848654389703307130972551941326980882970992804380424209057425704221319385617508911874095020786001414237221007207564935645832634265898722937151535011624131051854794065047745595380050102883799659623873553300871319818389647004100616343224388928535563493613063879426886549290634202817994128387052509709214458871805945083171489560520513899067382361056220881999416121159240561464649956880646467175004218312849394664734830258936351378827364125520487924463404144748570496509283417679772035870462865657980936581109511585029298335510236624084105616145455935292448997161188418200362508242923956612899532833590932164930998488321953840131010134088396188158880684639463527700218338033762807132402612592182473639291808969600640464842860520959505769513374453561445255608106202683144099882061833577095516505507320037911701024388252041460733119913669993005649596099133084163733198744191621115212352402847661152210572563740004793309383107821616225339178895698908497161071690951694624187985201966895484687872699486702241006252537680875172543765007103769533438472721548541264413286125533790755371097497584887144514896632705993387844177473681295962416877571976973438284060907860990522617747917366984899779854176920652985299948602541126063386203609337374369937345243813177189973705313307330135110398183456582091390591962600309641296665860618976567511182554426948775604123950162261629908366291420286422351807851676828217425239266488678524896924054169284360914009852549792143891334824706743916088188488455681647113535919278420022810271319352998353296204373730173752140024950389158730634926583051996098914436277140985175916010398318556913916996464963847657193147689235735042188380131514181481913233331225765536324485683780832144843840032291043645297373220592761862989100985932318121172133810029000488195662020374833997965012514975895404722950175806826239347288413051503256235426779978725963794468731115068484770934685735746543561147679461830630026642752571624862213243606710262526669992871372914402969963291684839358189231125494654116579395786060920086736757024602583589676287080034844396596045831522930873219374109291552677551471055091061593099569257942704824723758730815315637833221843828116716427671917268108423947570834666519521442151682924642415995804583075956604077444445776385195974511325901753906441684981592556481398388722360249380194777497709815540816795085955093550206263826191541462326367551369167334087063109150172261509678689257476425368467351825365223278254015684641375107231484528735382895611597561821546773277936345489491847139850004934486738424746387493208201966105547157538839208292905992141505036952564594541359267506453155828397988969825234121360238476255077310834254938408072050852982889861569546152728056529929248323590525361893372741462246564066202363253142748161146714782364983755384178139029157106297508764659454485704153777981887397819252615960513846022861932352200737686746924128784983950962876768750300954054330811860958410957425455451194710855970551276707107482081136386312562229582131689922401924829700931563202053522290101931651921706107756893479719006637147346863903355233240463813386481790448244391363993030453023541917718599457460213132736770247831055431772224069453316727258127954800018942073567028539796970152761632247635995886791050918672875171691859728689391685499587979780401044136536965700489069964643949904330036214398263866008302745433152594445670051303933650587047899726283082297975629575249036882675883690028996415812111712039676841308340658898500397890822634086585491078328050477065705795603794314489793537888423672652164117931131623167195041624526096960951847898399395734056058649030085593913841899183210111550672574365772944301468993243368746124452164132522064154230600052955083050532165988874118991141931548990144140514992797267597984657129788943320279730510539015386821965373619214370406504172707362699123799464925120799386810942088377243615107642027790393692615144014318906289488022037312833128865952405363739456140358400231754428615016602048782156964541419860107299366146991844692296348401980667381389518870880594960227690019118221854484322064747064578709006353805023960223058605627280441665208453210100103104494815414626274054407087958698453065343964033773385527720499345804925197948391644703841010214227405578435802769419044075146071329454342356037329083825157775503608292250064296579284576520756487689037038639333545622821628237887744212929520344882259614227699345668536240742418699738036504460574281534830124921003856643913421549827384636336948937013454892870572253784404606252892658001641424655638305748822758896407730039093911929049252635396037669828219892298600707172503605820032475231282841440831419108101209300951045551614459405205707735957965480886699709343513794480056289573507185450217359814305984177706123824768394474838573485761754908353650964066979644751864871505912169841967892843970809986342132684650147153882724239768006247554083539260512023259995884921437870232914186221638871030892472908362797325600281067513361410344598959677546361592590248132159756266504673065587836180536238125855284093943445637113149382299970765396677602860612286155108478788019386585526864769049262194592426022804875491438331914690318686953329797095317099923603929300527346860333573192253996598831420817729625292649278660894891265335643371080404158817604201481229546928700455918975678293389591425429831047237223533119479035147072003746684258775789465188307342913328872451999491545175879232999651141120751553256307872901477898245817123905244300595558579138218583759544101707469086416996127519881317816951953237228123291737393919672432501050021037269032818244456423082758639663636841092244809915492388268569555101372532225496372860724469690722320557529957399463235533288165206819142511831496411272094093366842079853219727278906520519227806867450565821922540347414014989859841919444049568967650837471627758253889585160196579065526750718357983992420711806006286522768152629769232248456874991461377848916704474932603378366378725546810544381334775241406248807048284119502340595072033912187425047304887321339239220628226971558804454367591370355215905313823519635169089227502202445918133218732987194022606012064237089986465091533511048446207984232131401066513683279605328605410635170896974391739336667621143042149516528927175397329772466585225755856497521893827316193738454966439746170995308128521708555738608861369295254042457208748499270032088592134219630612078803586138954647916158385602812461517642360848494796820066253315657349529818207556261987958011095820574669612271758942224016532631436890023830632668527261528669194642636109268147341696850631438262179288632907533978024521375027885729168320683603871940550454361522724499066078765216471694461832638195611506631787810766692270236659397031390220463097892181806623495575825104139148709181244411597994895316567634118163429710965204921092847865282113669888519611317245514021103833844511969346192087688168862724019238153284835142366710266123118837593349648556149975745854286412089091398126939398891986202996935437112148339170693084556212312788162719314868190469815231061855638322476294754913124402848291880558676571717070723129303544231182815266363580725731780723239660750233021309267998315406005659996763271080228013845091780566582335725507202900642834713250323286441477160010100402205354227383210084366039267881992335959274777759487103411728325244316983077710743767452581276288057782917832560593997080518279787639290256445894480901596191811230613366994743271376781837015218772637959657828065317153351201978053713448454502404082768957429524887681493333004156785425928489567298565255934029696057515143412600469406422725889039162666168744430109007335606888616878082107900084755058634153029384395458936109558125860480257799241976118659445773565589475833703857448217818331675465374244537131225364017017406542928457006639037098661547366812411470372258412795036391987189290477497399814275831540719637898717010369101504793883951187322640023172521365357584030771729845057540142095482184649126843119996819710355359302797070489524773340652372433081465117490684785921737035121010486276330915998973145045693277429381066553975421710405724981734324089879251172873418720158950628839264406592966746622052420522870538401359086207711607193519700321702487353637091493916699817161418718087109998749056017397564025439626933443766106471705193103635394430279964199070819362529922819167745324068957158779253295307039670437321778907163955771586003631430218115086248720942677017328898018899344610904310820441592226567631813195111604732495826053974203009540418169863892115655780733734523485282988642681383121068145477778883988229318970167684571018812997393811466343273288201942513227225933098289561543652513077696601337863020190930960692429758091611433621959497145972241861948648197145020593588243339691048502313789236288844133527753311043851147266413871979010478716994856219947324279830458987749636025942934189640383696762146949593093104149879578532953598442196598078756270440749709632030126433514777207646587677888989981032545304195268920552055879919334142982258442249555638864011880864902645417968369299189858401498581882009416499787971294917175623660536360838253077842557974565554523902468697580118239326091352037061872540542326386237367195091926502049409698849436479300419952562326936094517006606875840346070707527604050126959940157539541150885279941001827046485400604182106394156155638753677981014460892976091444275141183814076540192953360648429134655476187659938965943936855086760704020603890706153889917924889112471885179390567133546156277630539767793120166308827258122027373126687362452784763584218187706038116809337411092721101982717889861458320947780441223435650903945156699619518582603284620442867282145502619132383408947257159024504922751042310845447744999992070543765874024801289165175890088227166818026059409099896439925518581105537361956030392034691391142200435346899929358585403629522882748245706727480927373110912633338919590128235537042110561700398790520787336052719467748099564032059748150075982908155230612432151645316610868552254382993702616860333635739987182032947354715920642583217243347368982506173939255693987610316577272112333250388973909480882295027323874564857487543513652604737021089596508147476902280153671186584266456968803029375398257557833577636475476896229066869847980946702223684889945168299151464159855668072272695641720393793771928210685185276148461670326388582049198145400255538388608158870706798329214942838256049139793908683870386141581464273939419571792783033652078009810823346894972675074124467966560087368700042402425965417833689687745759856325920918586839982064264633358830308066834088250076270206588842826302144746783315698910137894191822745323422478191329000219477955920723735490407106666914259843573827946516797776587067974290940658791533174217097831775727338556955448547550947847505886380884801083965754475988449852536830588971141154713809755673816032225845767878710967241620108759281384720114128173324916531062934832003033574899542618332421191769215879714720401835334403224404219244943373918320883188264483728542287717468822312593320274514763289291136185411489414382328958814666378640970281994989983364356953400543925590108934968597587090343900833282976859655807975634769634832516972477685672604250076884946994531797318661082024686850306674755966760266285107293409786378000233163975890266040235123694923427209089873434106456591185631183286809302523639461434682294264409177808375234612108802903615968791272091604333479632058218320170744478051340727146033210286210332239713040323431966619855414456784980989875302403123437212496226647791801764143065136214846754325952399962417957106871833560435740606980665695178317051373416721399621580282796196858738485496818525473412187100276071112987478082126216486135034573054334665519071480241268710862746983613953981330506222397360626811706146586159701951838516628372938377702884107191387354981733013541959647114952802471303282092118740747935514336127180808273834159060660136670397485939868793353259484177233512205356891809503634306980944433933805967561021950720771296174650212648065880357941683452841605303957159449767842919510361781735422280780263227466862932220965047417645899642641808878073982532438860339482012450015362687486462203185650844149937476668863912290235090505121455506844801805380467148495574173920270882563559094725155760566094357678420221889173146937853855477774982048938076950172569399349670423026682007810169403077685184292760150998755963164767849648113433465790925286524438559422186521087406514712456477574006265680262102817808622900297707670858821732801967570983971579254375701137516015071199067074212099529921737356748158289423597365467448668069876428313253796314138278342802116763136566119705262698898289805962587354931694912969953048863486271163752518630710683512365082980637332626548143547015428306654557274295107500690633762206314003266104014388316955599876757155559849305274806380508326046286247869633413554703578800676019310426409992903150845004245820252333086218751739568892274755126297181704313773368106401406198903235551189694324826962376393991750422289189955603577337235227060227766787688685157853027635962261114308159638434885311696149076963566009625210081292964309843284619630454895153163049064984861494478023590845391413583648402327830811719301909662670604167880459204938858420974351240846444109878898229524498781391136285744544368157450971062860019190877459302287854958859581149752908958465697297430819703135011290758832391975169245220144625162070155017861942770751497139779873423563753504150809850525778223892717827489569852234160647974539521894513405343289650640490273398944861246299859363694745735278868245292288911220365345956068608130112344302034713845103629023037319457679640544161783470415622020297050596468864198193361629767739480308508709969508607231330637307212219223530100652086641170404612119467092694375076370157976081796210972180019585079603397277988686019724250789637735850274638829442515858846931067686845115960935881238626575349538457346929237329370863177407238494793144896803613849509675453442273457263207157513285460977378749682063004150536959490148885581039010632090779721972697318805435389313258849092464839280780812713297945801897651019400540583602637907009495312391981421608014259378413017750633119571493833354930208027768097557259577474102320861134919745842666725347561788196639681741819412956747288969398916481347010730295681651168539058934687072621037482595650449609072581409045910756093804715779430817072911755314897762131576301570811572456423314252308756454277666984710437197890740516496714597372272138096937956446275092771004949945375711893797473079444051345656399698297018043039534543297561733519125350562862908643198572980596085721953984902810247386491559336379820292459262849205315093007343314987036703529778551575033633364991311690436137153592927662976654634175699396916255889972487581422996668425378289319409801546392967811001315838094191908696072890995445907527747608443714236907357884952096519341239695258009857298948107182643566035236081016750125014767660424975505564492442540212894098966721322828021704030945257881235970268208937975909554787299443425149787830613935395833542511355083573099452740556723535490196763098871353771715798534272599629123558993108212023248486084611423769609359725536728377513058080431657679894427377999642747592524232142926105578386175768505750874521443497100562891683046394597843334329200605252526040760024634663136061899532199516466356618069220578711343638222569729123214654121859309850473455395273988255407192350788119197180429985050331267288594210764014356468263140069046536190296525095667829462445500250418761179168294653554002344154968984126852856446840452848923722141209319665257855591849839782865859157742735951467655192350360237733911919620496393360724851781803966430490578026224077267912306361662596300120227828693008779465651506478230032858705603071300645190700645220713349357079092085249468983872657978935347584962036189375012092326447788624613795804850348387075564761713675302274337090690759538254445154770995011711988079028076194268110119965040846073908616717295096112670446642416712351877413079501147852944846994591471954277725275767217355308103197247419737714389202728008698339166238016694650191799771554542034339024126971050673605824227521298235314176754742846794109008987276426057526668277317496841758589255431377627816276956702224763635376638450157069162695577790637122263187765371972860604935656801995860641689083437158912587816602990455349208043248482188307530857327654878203344021703161832185366651651145090438837375443333475087859961272216128216183208154253017703090579799044279743064586018891824059267073018522869990987622156300266715110282318429253671641625004154754032367785489294047122073402858100630284211978574756750150930863399495885139644899636977783522706229469420376655455486400100006114263154208924230062408355693648044349924518275957368856798047706366508465769195898324952722074908835666145354198916431039835305448920054990183424418532590284540681447073370704985779298035820586708557804540877659533628445488468155220922474280042576962690148661257611940852202181071002136283585699816567050379035206073394696841763162898955557248060667578228608596602363161291674581611421458599089254578887709658368460155147107563058120511205330099885505975679862274797027887320582961337365106700199508137690652396425875487306200009137780087368553485832607594401697146790721832836538405630380729729220599722146855339329213236465074803626746337634177200712072535325177656898571623549812314807100190090448221309129682946594414473112659213113527188019578062201800041335498370920464681752136818398219759446421553895216139029024214658375518690394177036488240373232383154300701158956036790418211653150365015265079022186812520665188016266146057907754421942922671580326152381794973492227521528337416016523044743551133987467821743266528584622983129846806978667238569632377469233473813480093016835012329108426958383571421013326748314967585774241460431878719299952094582809721787778538328425491859349818580087155021607665813524917468970074376881390003964570086604719420339004123107335947133648221505185010821888005823109358894341891746256151622193638883915350862089204059641022631915911971507682870475724511064492013407698034317730444096026102784491995981194686112753105329519083097302974005666693461161907240572150694406147546271321717992905512391073222715950186286249284324946725475445792477505409085777960967766618808680854933085882403039843456679505863962770845662077031203429145794887061552863755154405549652472434669330644275028915300956010149567644843817775292775346853494412346255576272531329545700542133829768029870880864963535864619518339305121919123633310351727752342880262589615247407348222952501464314687399865308338653067575470321425202663622711768536709217440616300223934857837813080339747262464075461162477596269464074100449581699500348027236879888826379747803921322807020027618226109526198391176159880054531827279995669082152001517700866924722252540238343104356268452169272147300072368120665319061559228757101403313364427281763315629438923603836978490916829446269920201072970494804114514789687962885413143168048430014408056084261045622605412764059778377451604243730492150469657264439620503218626152111153709219186467762441981497928498835278560460997415312564561299623325528638013389242353036303075623059240050061822274484959718093193602477450203941746966097801412831780752246012417497145678142636426106335338469928476063331952901135271659276847845293382396285762891344536003666627772754309381869506161396364282820899148894848506973163557064701028144426007993891835163341328857693645620856093091407252761696514834678195558792339898770166817482706958410095738245348638532882668204729760499668769412686609297606130086147417104948086708172215919281104154450849374908489797209252552715992385385064241770861367915753211340907180916964873264742331772554888590450883512080685696813078693137123640361967241825646869593904809583671297942721418458697990248369349799140961665727067959305753866791400463978391126389452730176933344841551665383085052973904485413400172281373220937327832928087635918496885280857402854039308876433566688969499813285111528964184766636656833948615693406416454143844520447507299187185662348354092585499383040813716720829242223455691601809289213554052852932893032255220167521418941696583524317605993069546281999496601633332896810635706681218486779684866879556811509834087204060471455645888454896468004810639034432990404259214242101695195941169288709023663998093789445678598059010268118130418202348705570079524520387913289951600693583369633312377379372462414748250286272707193046252528748155225585928295626801523372501792531353350572085078733575423256566207248946899951359526729208615073311479580614699028609204386257419501666026226400502562506586498111317069040456266841764930876630643150378189428710363286161049941678791307787109096238503793465783479568453588158384717106608791672476915228570588162335388548843081293582255614968590584939048157249998116282857499589045625190482126003836184577058598217271875617708730734339061400476528721830786265168820413538185294866116827758006918007323656876647941936524458547347710946777409014408115855191967986835664989755749635320532982651911208972370752252722282513032454668638355369690944714854275294719845159067130086260096042308818395727090035106869461804725644908766370531078314944683554660712690807377898371699921413486013901203522376886863039356817979430076950881777765793381473963906029799175396595681390302708247451980477607412611206178972575175359243333063356742780320742927343377494172469075019236459081720995833526173841077448205355231578101386508280960401114616404335331215163904182887179025950673414086167053874125905626383993089383174930083686023484228453505160510205564758809479745532784668752600583334812854640841208462856166361324139579308886003663563820547584045796221187124865065797130601824888697613536767624486172368275622597217960294730165030829649818969011888520952234045083052426620915039723573019005448112574846901024266134103007564815898165536709729541308446495014880890323915498565564268413986294055254485059042732051361711787516957649939031449631862648203023551612206081078349456759116094137442088396451363372353610039571295034688013438871610465247190956033429366798140818868088345885194019989610155230509900555227664956328865696574135543095191829481228023818368725968165470860144507549007636321710382926173448394181555650277360184427784592784663286098444578598084631855825961087826005173630400268643161236673433908115200935463343426469953977293067733754172199866571932912349152944970562676023108920030839288771787435370005308843383952119163491350930073726388199266865785510394853752679731443087383474436100168149733910841548222780726710183173848646664629559981331456031309866972435451534038103772191964074830878223344961768271952549257768979585495574240758888131264740451174961605175448902803939631876134706532731413323810317139319282790164882321890099541632357482537894375172974574575902687455790474462439814320173016198330485720693494636335606158997350768198480259734882425216279234415438094631285980159877481390993292251601418323735684586503592602078894259778412947112391823787010759964643259212759465051478073899611017385399876485381654936485771511949480428883364215606162962527616391231973496716741401699449440294977883679254293561847482670561800766860658234498340458721022078789540240312549858673865434927546052748706891582643198969409355340998806192725211500550823686565803891993272999854104887805492516293739347103099320388384423579565047103674047920848070981013271620937432371254204021403823191092390365821090151474072656952832364109227523207739557553685220268812917556170030537065219319733901202291078350141424598017000596528916840317576092831770820477185103120429058393742282322236452238683811944456520150724344435856372223950658553993771909677812786458766998999295604750313002703842588476765398177103479477564607545265767328171151469679005841227425759146338480521780373755882754644730915048496927594565206382924390511442027514173506214797704508248502777705122591159714746151896026499394545732725264248157839386634657690927231983401989902788047518619989627903004327566530598061221713243891850975774814911080497772556362871747659834636183865461147627064129994740740182265437791253963795057238513651290302068096867876287120469575223696640340600561076364613876682152949787226807736095593533694862583203325093787388394124215859885846132928061393029479201027320746711070598640005590991187783044026624978319488850518380601430486317463772188808316076499044226566896847982508550353514807052379249708139059687555198514878656789239348285328655100698415137412142529026845857105668597198637348221989676294557857896372934365428063335537776457491493875990742156947357071738724215215534167801691189444689403378660468319316695733316161319055722176704705536079504528836142942702599282679506066067954590339175574512036578922100696547106651409630422954568850326322651872126874485009370337404471802189241543639465679559884620607185965967513830891233319898569498898757513236954831570692826006986590917682618812226399643864449442938634675869978735047214051284315373741334091358951338935629042578013837768650963553808481357032926499502232207141719822170904037044618946353839567143480326062011655388503085485866544904632452329470429800216641669301711200431292412062396939645080946852983184146276563171730736176767094163285660415897800391686760697920377180108373095559348948609509470948368295582728159724658029281624592938140177618278418411385538883742518820986549842574345881578841238733471108009929266430998520329767598515724626476966276518914715381490977450997321874973644720866076290330316871243990059419311724549596539063097986587513108452873990222686399475598025176683317123944085114528495750891400847581499224828849578690473610706296798637374881832930638335744894766064535297755487946236878605360627160020176075282239134111715999103203411524579672743801383045771248568845861837010233405089429436439105171340831581094688827551069076840302001458835171205835994526440133811910222208340081441073117584731657898145397709814327289022714330026839483587623023114487626100579841161415150904999559456028044974452558209214022441388536509475456090527235060888765686772240932327603699824518027118577517207479834690088908121365634314068489626775646638997288088311132123369349341552652024257826258402708302838842732526879573478112835831548911004130158337125789873116830108507226775250592868084074124721294592808499158381261824795441114029333269027455502760262091402797860414887898543588406961586436379010438856715063769217119796010843002157951748853588175044407501229986780200660714456566515466683246216621013791337985932643341956197902485839156373415882030098986807981691493932449298705025982824893926702330432424466644627794705123743533228109199733381451359345463862376776281376554190363804340183461436410128727853457389111934636339313151527609055742986323999441933719554343404528744680106714958639658896386700206998807680465466526006757082612288742897946932123646670023400405693310935491624474112209228238427884283186552633533721757121790645469796318558509901058903217314865946355450505332731097963593707655911100121933449036675031676688705165242809904277315681654523198875569517740291988763665405823364843922175170046486805478389726909646384558991270677693144068198935224187842257407718735828513336266164784873320491374139767503970590266931032944241630331446910955106516235965242146612021063301199026486103950508161017654324732558497665738463893597681607178558910040041662792079886411749462500140666654780223283642323132592409398997780655812549552783675074269256508797414439884590310072232481973854104828064157374829818276710560675065363164611082698777585903780408901502574403357378581814364710635345501595862924690105987723548826723342277074386593672494911916093091132648328090699498690871682541033509125752459347276805796693085994284086621954088078018435751547553820465733848753064298093609105061463614154280915504170452804436434847065316948049320593672406876618020382364219255895021907816335922620562522455391443904147413317930808244065494798456965257038865424950028674402946150605697903508013941304137301439240797530688227314282758724134088004350943043664147745061416450222556702394008905823541103987199982316589434848598703789711208717083766492523575499132615162510401101007033373618285334843566493739853446657870069758307431058584901475958488908562869048837324364927218833417862153165511977778106989059831727002350519861753624365110515124206550841872205206623523731882677391108473236399017182306804379640567651623686801859585383212787282892201923764774944873525153250980404594363052934747257895488262400045524031983115424469539160316643301804692102290317220833919716199707889612364238796303778066101288010498598344182161711286885638812594868000187252392861842981408319966908474018754847322085144516821263895728469808189281011702884256450289608488025962644303351339587295929977186159086545616497964066161428369079602797471249433955911072794427144605773920195343935433854573855238076949410112200111117518258807322190555813977036162111885663306572118468224095747127156494359521734122831053770889488965150962770430065517373523932863152964277323481560189623971374031019625102863543181024960238416969388239681309659620888043003301352749056818150762308290100882852003582509465793999253878234471528559279320833465046188192197998725526620068273459400156639970677628642878508610531980727946780356373460652535263867089760490830313602946945882792297330713102880939120565819191352456105943388853521115913735080116555257217633807215169082598600165927827130823346311073260459180546249803968108384286249638059535547536467902770772309392384804415967870029420642297911689388943101864980372321552489354971108292958090914881557226599601116751307873778765845127515069385615287853881766374366147626700578769927123512420420613959307812874507303385819202382261661241281783050231867153335223713228478680516574159507064212744112050691209192949220846202235061264912730186896248020885936377884325762052398196689714015299230987264500412769596782005703106016850232585279349995770486356926772778457442325371084467600197032874629973245952754993930003403224689337605502476532570082863683242452755033507678016268379082754767125588435843701662597462032990377348972844223366598271956670004698352391394464861914645116420538703827519876047015097110637396295636711994123618031040278618504661594017825462023161523061225364144858542923239988132373615103950367261466616339991392000923820893420830138214269529991413489478790812095320144486640036496459253551889009063196810405027893097263612016826579113002841436593341367281291334145127171829041116763059080393982649331497034665735513017871756178818927544141052031518324629468571801185226042799579771785878095709433026813420398641678750658379281582213261123585417956607453225108006171877576692094395355862432007471153051518641027414184296099914303439718694678494735712689947227528064410905375542909671062479169131072707796032471010186572096801317435885084525504877757772619752535084583485458246497174987376747997001585885301683812291931608887658518732434220977866540801518340457445707638001928477500243871790006009188759842937022215970764709967127533006189615875551968020695845061423978717288301432212061375970478399779595431346371271784791535786778547965023837151949268904508295752972878535289768145498759077658300999627843457936232196405421524867081671892998792652315651020505002555801187528780559761662930639615823947880339784061212534417517003002401177854179999257717929785984031234763888236910880358546634603771458606949568622942882343661122083185166138329154934314883770743451617436371684687558843795184278698810439504491893165988559869459077139229711471502548162319817369135540920511706570318108542896136349569278691154954504289013664324798510774482629181782524879837727748938837181014395631996687579741463888237287189772344897286593596781254900023737486804796305131331826332361293262317097501732929254422526190981881611032407872552613733368373043466668433474867132809903213790259224123688835563821026635276590798011351021668916511242607557318036314969622599370215929317647038887568820970352487095897741676076848747454405618267545082558068848719080494555677845343532903168484847077254902845027522682881865059432455018348109513500406900595241898901633621139939218484428607778113567997290211014687512904240101259031819424686584945431156926326217950023501847961702239443499277603268038412444780742601938871115102835546298836937591527925475444222793582861506860638892375886840344233963962652813284873689884789785648923502689545263661753718353116919904130505100984524353800044752567299063036103066411879186513488388766406049695393784752967634845180121249467968964040043357391087986477522973914159056662678834555541538761821674657517241077861234213324060067932040578514150747672774816356939778432843855927511617421745915942590303656710585033750571314028232666086118266261579973989656921119369605597821942433387559572517109146683984934261624325049646228303154778779468510834798480191711307914848561149038725823807731527207268150564478824665919354468735282358066823730784865879389631248381705202311525438282196740002799563455546276526370693483473323895355218306858466975217628206559810961842248762103312379870891230265216915134991217326284613886129535293942676623870530607212208747217683490889706610097507622741803733603750531026255695540120848341172358249008757117885392100143228781771271789761884898335517061089660917543996333224284205512305162114569784381110397938447359584813290611000788094929658509528574188043854989716820680205813179729055006419593065873229278083400522729431204040704953932722535224609015038593193990659178944462489443483905762549244372811181563606969199115292647377440140981168538028918099931535046503704714947135376274410720698937976306340481567127476112638849404932317455826368933043400043025299570743110953360558341609187892089903020758074965355910368195813429490921358189320975015647709662396159902298344680192388155135557298585256578677275004084519775350806248067110605564157794420320031749167508546767035104849296569649944505491386432741297744589945032198357075322990990630963180915775295351827081905633562638371643731692580591387371935378479783512489723579729218098863075380409752867429952927749797052493335949592361287749463800183465673749991016659413643313769412566468087476978356200457577145061723521352213018701740838783312295156589467180378322150346473567060400528855329162308777662209907047835978809912440365620738527027568205984460239091790270490612512584107469242044785270602449689984144378168161986263009103681510545537780005436010918765943622465442958511808869035912794429987600672134029209800794656658022933413754665421482390113280567850586060188979883568301762355590499466469531458700778588324730470394793658687476879823054321384700905278129370768296642151867828593898772435558385407871980884243224905559742796921364026378131763690210649028372445878345706105661495197469599765967640720752347418792598250938575505479367761809534682835881259952821182791821632748697606453605454520928522429677720680678875802078186100752244362375817103568782601628872045810097893921140444833001780154399658219848693220041348595633428701055734190221897938979878430753949659285742084981863073700307130163329251102463595040022664593281945293600110540328504607641143082168414357720147458737917426159946617943544219254285386928535292078216307171150533399539966148380430658108620064441049381780396921172482008240160958206063376409375132341760046191980405151431304703696452392307647740654806169624131986218936256563665040048701363794021197384725946836225354112580225736423369638302445169779317816459893662894528849895192005974657629386059820234916439025958432991555422260884237340103738132022584639175409413563795902451507648089633401771877602811031586918453125451731163962723012486772129752031598201864794953313927547590775553525643783405016511004032519202358679029494010246031505231733203436836204203857235836230585317166615028617477705140562476497515450110436823619631372344374465097725289116654212422205822515716665674885786853355033621581170111183106358683446937104411533975487474405611264316541774971597794871081716336775717274011084356698572454604731398374195517017753453098093770379097415055183868795611612665516223001730924909715325332472364902096914559203914287215077056315842416812814368273695007105937921970752854197599518112639170413523119937528005227687389398976460787471057768200516362537436677800831978735408338810209036397466387032620160292678954476738581790192743339649129522308678400807813514350234287639383523957697131665169665042024246193544813659096127706138583302672404183883470331021065141230601157721720944842428109265825918986632831628723073751209861089477087950733915234858037712436091303901798390217594853361131120432944407686207621885915754735760247579127755092355793411218062023812253353176069083847803420747987554875284195680392452207534975392819384973622746055656254660078920393175184928182831807370108337935678939990905127641443328191129425113352965269864425923460707081020005051043867501273998677451161284841526829679770467185764187441350735930036064126938571702381802076191087883040808010829079422343318557400859839459493998047989377032502169604296064201193199141825238658555314200892012118125055631673195533268319434603529518373533560511160140090223541661310683566960710858678883713840240419644932534477513245735372937871702666441568703444677195932979364385836643043717558328250023867687316229771348662451324733976620075704126475592258564394418965780729267251528512820230791652720332918117187561493796540786421938294875449899289210390745822683124205000403196305471897752931561343371944616229146140986597126189785951285378490715943206957395780009567042156449800612688289511128720615236657969492878268911607409624110769973601805081071790087933572605512350815847787248910470159828742542095287333587464490240488086133720190453688785564129871538292819169396159961650022167714863061046041626095078292019263099211208107322318843880536363867098316563044765713366803750804485315052783367658542682340027491972739566265944983170959245735216569493710901394585554298615981277850939899610643632929563621233633218820007108395137276032073949798133312008731273920125357631735428140089736652964917440707500967609914666133801879530559227037289425975487822322519196834562751183623734737540115339147011951940676210086324521862499601291852819652236962185347233389027956597326850494588047702725271621565682099722221680124021364680914798526574196856167427941915185628837812810165864545417507001189274586216224487620699185699216271841880091139534974870959716384273152411671774753697796901454571479051271951661466026236812616985995588379635420602050244304361012169839384098818968451528856407443977628416231372610092692515001542498469138162802492562382651984365991757843640283769316472426540557661294882103176224707395659285289810128478744456613569023987958267315450844021733491556430587347346461051928615961503462648997697124122725180786559181668493224414488642354446913565780490245920455624731706142987916518662824372080948498940687671617683565781447857196487701133796375312306740729989380948958125750712755439338577645478931233633470478673603027526966049318014074041485884905001516906143750785388720453117692174098300902487000587132889841133684623637549693558027172638486869759824388700472551649066818615552788504815921165834817239918535552184195971096643905768040996322682954250863514451892706735369726163802982855541446426935317309219673706162058125395303233003550975213182619516262000777865472764246967464347078605898570126734295004388844887722069143881665982809298863709016614645956563108294995866839305236231130115640170289654514692577287361462758795612408786345561645110138627434679622901455524859709405939342906437393280420202429340435720693406858678187612874020681378544510460089839647606290277610085397724429393970391261510321422291297294225019709422458671550670450764809762365569276424739549866349460426684882563823354702641744590459481313109725957617408662826639077394088340702682680154714303246904451249508425288638708312787548160486576713992156477481683848640221064600203795740099244905566854532253094906342298516343105915758803676619639906675033210423348073409017692324276179358683158909602272458134319009375466357495467831375353545831739213663249896232628083879948208201204865903589694475035101890363206907014014659569461770148152324014030781590352900634500325766143953891091662716823252059883309194845085283579384339495266184325807608298009071287523316172326936130920016861577542396572199685839743268097981162134033812703717401771441981249122058216700821117445537282871305057572617038225279086556169221496875058949640393423293245927242691158728476781383031621493733427629891239874432108945829533199017233064797818367949922361036343599012648173090318982169195356390740791192555953961251363691113967993266174301831667836610086813390111340507830174452712302951948033630224216253307043704932280050459501496392548522148442791787690529394309458258711929432608379309807062685557703172343376971931698104270963955186079860458445676088011478425236839450306541120491992316864673125250714326877482172234060726003021112302550380491061160410372697171770763341176681773118844673899527019851971690752534637188522292838838865162220155842756668941143427012775052631931444400861408265739681117741902478259702881870850729391765408799581357403029723215182781352329654045030734271204179378615952235950169130591086939481477112936574125950462135582474065778701677078876260533674700439003673781138873280246630368847738582551080234944539743181679444751335098214143012114781258309772683877941023209276629032497147151699868520404385266795676135191578663334854677709764872453883836219028526008627485039635174224922501663403498521342068047120342715291594959942545763838737639169843015035159062332988024366836516024283357981954551825378995251470674407060450421733114378261830215053742917174396290650352253449428235146921452000637570804693216517147229944398912086709417831318298261773438769521858629872698913492083581552510257586516374941234581646452360222885399253807997311454040908470712826866454939456079518604744149396500861625805194970922334536559703097039950213956883875368729590283964770063766658707840383035809092057733176605201127127021050597881274836878396068011286062783128999040056539633544558872994445781902702125870692155384107819562498948166333198394487481062656126282004514378543037386011829901196836258232319331249994000965011188423603822618715333688858169597106307374567446756185983550239555808681756675137237159491647550445963677950641876055258002738091356383163237755934049203239069897649084043548876198594956382593182975561755533459068853178806338619479838652414004816588779801119348794154263275996786483198106047851764747937742727615887386507527024834267260804457744847380284373259259607893337601399507961907501731776561320429431224239106698626021393242473602164130503977330703337163287485275347009101671075480682561256570838251693636640810658600822750907630155085270301743211299540957870396457012228078430613444485505523881039544642422483832329612824234493125863615513471443771679207012853024698723634131726136358974872190002897160002552611930354022231979526790074304800708258271646519787787061755167903214642120294528382678176670259155636789292716213650825928187457108120251955352071928116443542608335788887427681160301192052032617769638416608201423674422405700772252286407935698842690706001226005533462608676384747701648779455672394173668761224295919399727043338932626894210765410953892839358249386581402721817538183947287407340393820019502752953010031179088083141143779432167278831501771706476607455269836105866127824927063160407583633218017682875088883361208448360315278672296931165517470231736888655472924572530047234240579565126601834648351028343782691593536071767388358974753021182802963083182330190124599034031922863853208467209937996199790628298391295838281560980710435622779421806114120871476747540339511547068212752953867291306030792535949755527535913356466258461356218035228809246302595674582445842146296653499987888492650791705355591316794823582377346668250680698932330696748394351171827124037298741394916671864213249649530762000946094112283827130790428225129873904031863483215715712958498645977138178608400774771122087789952041402113998464324729289211795435133542567621689850476407308580956001606970272067516313629608410112091102826173469361799288619460727589172731620638613898882463180596915039737145591475402105318519093711521217463571782005530802361823566732875332469767391204870901655239773002156815595912604552366343931644955467332352833513440530395540409785263627926977666257083911093250793243397077829485229898347748594635283275182941511559864176170842573412024513115644427104769030221732952433574597182388054001844687396638596567954358289001665127732142602171856517403980280981975039147828591144311554039246839216650776051625455077058085547914347936541302369548783468790160244655967582852006613298317396193904574342393096786681567422555404749606094684858950170236380731830649607061064905553710583516717757232059511828686069156656584483629854518655641080251426856989278116372040031591569524014810354261526980667875264929510781737192349432667000905372618548354338196563203857419245048900867655493883849011472432117652440239832095816494653925600601635946957226657422565282662746828534982499549137884411173805262568809854586446448266303730100952853517012699036086047254008630292549683313851635162249954870944278786774520723702829378042602610596484323370632411935067120687255280925926684808646417842250672700346467137850762725601301019686959819286413510627138393766786747703114567337315148072754859183672548554943714651911563221151908683528117194049064402343334845273163706836285469165500903303746126495543639888061536502935779818455306855051476093790121448246616150255245400388888760580084655843201668686754670367831763513752131543805297577891044943487946616577016700561715412479813880796101515614658892157984093256789234635876361482228017027679781879584968925906113064713343999063156033746532582399682949232559304992310256357388632082479426049811109907380023497974690087871610848138278375441503692856381135040553132999580525914961121737868293503868407117146810663473169842674079304021901953893854689500151958301893041333311570571701623074681715412540083301280786433511999127746908666976553192220771550344250920358927808587465841391516922763478293390132223402492824961266093345435580388396508208523476319664371105872528326254248456023593536752345068475161174716323657190384772240739817921085381306549712835359824959222486382926503994032014281668419794459284336769901146000135578949336243010764897340306610085633369343501145427896517742421119380239891687377346590613111209389224467746103397626341520727116128491087774050603559388398955715394531123275727885859850625053046933842201383217730486591604836700765313419087588757313127176063156151425597894434491464001234255772735851403602789356339724978118068268441572677653720887516295932856517034505429134950443840943384971496269386629168047116147201068379021731633534242140697730872121221168015011151457141450661374990979314000358729343989181910655900658751524744253266158990178706093269958683978493984599433928319759640543674807598054527485654135208357168252853550349234968436927624107051862880423960678525230122751017495755654382244838551634969793127780661723464621743329953727659185191801532942689567025329422341105115583105960451695270593588121091768708990466246924632187487997124253590592690548160142165828114772425020793189432600244179034742361614130573883946645986291755672544366212361958588102314088055103134120890164008409148702504126676712798041482985538017370777267071890793029146811601318211042361751748717461300357751630631723183597408445688336254797605745093618307655975154839984847240432555887505891205399583480979842072575987958664944475810900018369330807071235511821465001084632830032815047500843261520490301949893877917778041077419114118734195073952524216576768635073947025477649819426517672899342438973974274059041500620218006747910225165177666488826160544771458683116150787502207281984788552057831030386132913768297210102928949713384989665121973916846102289912328463806953037719511656805033073146325902090140433142045200145370193610779536567882006165613477923181180832951846461645484251251674371031661270389266064189925325181164708052636661558640267109158372860874522122823373445705838277612231891418776819238969144896658779125144752136321756870366672978594236378517184369365414610667674621329918567842772908158050273151455039282490929647013374076034734596434418246304094370702679985364507287758171323341474171500545196550815147525168568491824373246052368252850192061107318685947725562113607910077081267914610080738461739101391680712414572185641377916445330540591315665406896348113783806835284864468734451045101039586689016610427731976405249821122402724403767812875378722765068358938067945877071165854051182236101623523366118642061142207626448785231430859127514846863074208026543333344173880657306564782806621961377052304754407677522826946236752074195242208872740743278520576543059913266885824309314457534523178590060210220011122849933314882475975613802515820133313532346170896206847229174450661629348638485909219638926810861030600679108664975916379291433402671798461253156653697299348692514379353949259485911269422996445748397821662390017100958659835801968271615116308670552548438059628297808365170442205836019390719839782546733286958705709538198541273803929388111464149660606362574792063512668576420600140992913869821838800627859470587724070523530003479312689884242232851195038835957494001500279752716165944690450264929439406042151438313500187988177398685899388164219509297497189937512368973109702206595391888099196645948947057299979959159364352635533280021417933449736463693576956930001040996105505670034986298406880882736811379281578530231455372207981677295132146265900127091178741391926962327887689010477560492445494213534421270678280952680089959408362954176474256962030516053276866263012337517957240715661521771842852725711789878643977681675015374607045414250687995962460072406389889815861354573613474554156889138506730773360522112122004619113616935761220029536098814823821540791736953283339966278795807949131383302232778886805911582534654688395157729214829261667929042452245888931100063808451421707033725125241777271859805648500571946413452241187402547364475349370633483107439409022544456031792253886035043049006027013366382290294534402413738371301156016061911159484023283714329922545523915679528281851523683826546028984965766246155381760729490330942003161335029391207171065640061412391594262528966467957004482477456163923326615050305952432135187228081153101744907332574449116051777956603720589603321379850530120122840277093169180179305660146013538655786780723508717700826636532332049771220974726463080426855043611804297237087999273936920449480159655203833284191098243262707079440199788235443818914336868196052313293478343424127943917624435348721295087285358625529756303907734266005590619754320549352265886016241023016888318544185621521682479528385811412250689396426085311053987972171530096593357362569305935454132682561984148241743016821146762321851691903028118781608180264665675834563460313898790135806895802982025000724285532409574768044482775735171387569383363100152441653044338987973555154328526548481032592847284637903543437612490894887375877738867360069218651092799664302807476838340535530096659106216699264814975176561469205503203020267682724532944180229887513313774084318862712537520420845290276627498941887392564338941006218380147987072906296950448411729642112074619694646654784661781320031306396447215471293051255106758036932989045186082567716649124885838528013138144639574008849349852142860499494892680592802043492367249676463386514274699540908812268359822962629277253732821761097407617286835427274707172142852024933267978937146960385976204333182296024505919757815720247706120247264018557410189433848397818831687731990066263262530748144122265938215950770740213659778457164767248293589966907006655470081534526689915519592510498402818610319193367085457527958929037567739856781808176773873774913415079338964466804478714720815193989434000616758666138148023885529840291885312000711013857611585650282369512885042396064041593993825748400655994132288420077772887315068908466674167790009909371414211599233997581214114921666513849836508787436938937906865185837859125576756718607134654061589300343443900398596003149293399194354359480291796657022197123516020800717579172041640938203031292428654407394311391253673533819513801251111514100746264879146319703767523295727585928950656772662300874919935732166385929222486807271833678086753934829570502281500587627928323545960641116361099997396554313110256856462718002262500928672391466503280660728055744400501441376374078969396178292433097654564312308621068094304669205759336751081235842294658037241397551485237227052249491281776632189037308164354371384408543973255807620026501008238452983273635808635950602108190430634343301290258088469279481680253203123895920678862524500680939465241268320193407267807429192689288322474486059462222322624095490980217938542067996494574626430540295989761593141029475465570521084019003528532418785303888690447455439651624508870412025574062031699798417077942833037578044628552824473746652965382498514815604677003175225157781909008692542491540704425097493627293171353504410016705523814970326162135648816453751216247590986159541011154190272701514187837344498194694942666569532196087729619740727045207541850188919333637327774503717741050108073302503366469214792823482066870419381428695246576327379141444580694200910981615879672379410927743930489226140630509179558638646911536009830311741754258779098204966798914992266928301006284430961058673862734253507525083112260560092182398149896194994678135938912418406947649271591648938550150028352906750407313709578932980331752978153119291626333241242790822876197335842531983143276123880932436288175540710228945161114167295445247992956153396047152296327078295630853482426467658728187103469443409133306822372676813889143679479909727377069140805163640007503082291724853034998370000619881608301989604678416433411137978986555407107243966149138395012433790942790686507439630276040160236432409495409633343405417013218615764767123281049380889322421563981955130349941450679275181243160461969764627042099671029684693619363402342401877595624783024511140608865145623315392930922590382314790064318405093638789889187775517743322094336525773166471669145201673486330225390967710473085412873255935004375324467674597916905516216804703397418884706929509634204317305359656373542272344926208406834093541625941320835618134467267405398102590126729454343890346182393689484583476192997955235322226083423666430319141848323688081993832661770323851979752786306581834090009426146397670917548256490118293809328638143686964262202418871609070281415919781653127293090438088284109252220997017703530406145041483630925871523045119764956633156788671059343374718849599585347142847130740297194412820278020020091467448857197941863319491978663839783827908052392441147910177641318562096101134509170818154377124184190895800871286047483124618948051655602579976193424468062759288455914779542408016436651094139178394149763239376745395194298640215490753741268110402162982251479439542793987608695038581165382586780619158687403196468575272332953650831196247810817372691051306316396133364960094142106746287202252643971177120795694796965823560506126109491442293943855586621644431236251898465366368577212312058581426059125219020404169832575715510493929975813139681141960488945442620643655121807208641868679195663766624052362066643873849551103684754729649119398523964437509029863305772750803117348847355116207709926068754465046999435970806586186928560566187887858488981024636062201114580256275552395734063126997899509249932161119677619126145512988734371446586904428228050971433349695615732750422307784072979307193092864303473082114506002044638559426960247645127046776732344243730545051974865287248834885665010517438668944235896211839306670307538247906335562120825177193776703467934590174322796416334844775604849271204141035166228374760001236583515747831180183198555207050168944894623595190070974161119774427701579256316085934599684128761239684310993932716678229110798123013154419302483415725958603374432393543196143634052103022924596548885212643321505126949194349898761121841800973219703195693515781790115870370285709928372802684995902117993731504351284984468876055968400856284517451977012195329049915201631822031143649248044126796804426513710973995337395286208436119301933455594482908342190149176530624202844450836113754818369576062875927261642233033576418170298416398822394919253282286272426418090883372585177961790323000408325588265340039375056736365167570786729247170796194347988542794324396934252904273850315503346128997741940170156104506904408829501773546084457376637992903734082112340115341885646988716591484397115606305505390475037100897719532225902983573680795297437166963097749225078994395481987878326899527995371989850364896181866795164172192394684773537397037479628558497562118362032299103806024568438186786519150602237538507513349121943997256856991876279195439469224800977341490309481639554741744919241493897977923187090965678195055950849961929300883578560137303285921929344162385681990329442823119665760947830602923885017002216120101854620875563371075489900009549256609881091447226003681420823955453336076924383871191642393423320450888084498312358822998749867664912013221591751665809426095540209603058405527496495327206339528933512757872384121001228461373441777388196429728343487634637740876631577047964307365640055603329485111322232157843064888243059148526837691910617086214030310725798307613514198105869096022340813859913816670582970936187761981173106151992296464473946630489904944116888706751679935556326844636111936357781578328121959461403967944505190548367765756545473260962692678644765405159274690267755694774545394846704415638482017262737190177294406783663699944378758853268454600675235921861390461319692034943139899897164281189277837501467400673294706747827650436307136714180876772163346344456400840451896288617201985054868064506210486265870907865458708076419462141394813228029733374476152143998703357782817226308549371180249723282971527117317801972992720618804132197077882051795276082518797895544666943760594926100396982625821085578083258526053203508286291291606078360257916267301599991405038172210316206307340624330020014123196584143299457145611255855535364324000897201761259487952315546699261087475265406932914709816578562777092253937109124894612059579838497710827013886228398361067003498893904560629048611197735978302727791238170420831793485685749009041872064127321264870316215751827316923976127340737101026660029074837225966229742495715440713345992653173595208467489699989972532784714711021722096378884434852872016289871136980355449645362042010905226239295503966643706339502978859249785082112012670696080254425676904918288000354194260626447841244626271973411978661380201059404258521746833369796414424209923082758575189558855430977952199005793237955023166734313275059904112746134116111948758490050016456949041225915179259419463348007902442701914536163250051144507500741843988112037549505200605704758544388335133193255170665576260183251631422687666097543113075464464684056658575123819091010633010319779538349924638968607562013069193454984005063058205322831363886469332052017204396656838218939875113320852999874829456160886501435208793842486492032300191117556258553773224447518471228055366787854473109810093227101261755912754720192920552101901618012808112004070157627302675784803587908029482814518103636152637381285288616936115573161505826767635881252003468041731565165934560118707855549730979224106881181799316720001520314822920295312573577587513176444486044322488728097125426964941130989632057361359882177874258442255796596652152709723829147807553095903357335852890662080499456808511303700013936942148858229725335800745687432661640587076083384582544969346067503617074301220966028430104585106898278644732794647015403123565994189942415418818709119724355139194130847882880683792853258025144826334634787357019735650534149781166394814511180292959923150888027589264567281142626688388712412137482071853826885835805390680530329915522201627379461835178553471713650672357737197531166069435678379448401979222748128990219817080094004461740086176372147981625873055275131223753737145608676563772111083860696717129176566681169759530720619464256532126043287823865023225900518634584320323110295340204062784154390206577826213758140543823571065844479974733573229256321340088315513585063613207194363677447770571586242540021326476642739044280900210924064679058283248310505119222971926598779389968510411537039548991620882242089730594029850324023514788986080136707180233443493052248404631812277208365946346397964170674963850835856693344143936671719878455237412975247673127374305279630421352393038329436646565238297377753234020685997295338250568858449695405747335428837197355866371084830382058913940414027379163334620720359311901380915396974034645349188670605158372230509661312304510226982036262409617772452792397610870044285909608576801332147398554536383685177434351250211666637786704545449665534676423069958931018368362931387758137540452302558025489539379233259177247240645959386451867113136678713693657317555885564053199201618173162229304277662384618926181874894317420204059888288472260881225210262880547632665042423270487794595713484862801403857187043879638495740009900850386114250233367391111125165133413635291951307499590129114314513946322024122600610480925247345155695175876942210788562752880957540835880473891738379057348943064350986655420860426658698671819749037067206104669966088047202393823125641834106698394516082989836258415138996083158886802032015761070554158745777986862671400294576592981617681250289622459194784593257225327356750717556407820774060833731802324622431100567563847824564034550293261012732415380265761652383326233650441083481888775680635483868288237689064439141965885649895528916354180379114441883390399537496615182212528685758833111871660164161353445465306112546377563892437137674054733214033786264398855452678307184700059338431938924808105683217689612411416160924988063925577735852434425040523132749251706187984554658811002261186420663772284484076765605953913588291734744498521237614247012354072167969133365079862476923136561228818592974054825996961030697784844038226522181404182134755080253970116200083688244560467974719427439075867701689780255900435348062627893177144765903788199439754815794548647374792714979633612747676012069418474225967549535814248150618758609487589847439913971051522917115274640721952458781335219984886751944657459777097776844243040040852886525208731969655138770782438998957904585878351070371966858168851372153159606112458469973280783466237360326841866439621029824059965242571722016071870576534781844880261596195016642561096793830383024168484468669448131572008329350942053080484807985412579155045708068448103423929166661818785860528820894380595372795507357996146419949763444697798987861023614911901025041308025413182974162263309694087118643887667767594807805452711877910196783442887983553014669641957510035703360857076739765351830880592901274248312710917666746518571974668395648272295624771768100135982282574190189091647548925851039042633546916394746133477174371419485724623758299704589847626467180739729085564559870778690724426620242754519105999717214903576773372734065606546893959352152261283250635376646636777962425499764635107730427391984137485522786559288722439394580568875416340804316896503775263934598761888194360595797538674560200311290449809594914219723025555294260040688186861064467949641288724187978661458915758159681390369556010461904769312187456941053922515530343366352115132477059695272864854748265325990905403361726076252119155835391555951548059835286618417413517186160694829285071011484134778319538616927796608399165896531891435744682933655413937840643739502114964118093777354319550333747702280151054868959976989777809009812223723820653512655932807229641690222239733358815798889483400266515015398001655318186921403682527596313696144587175982072736343191426413677886048316525111291966506498928164659149475308694449483072060384834466811880845226117326731345530479500402890921044655555401540357286224973753058760615562136396716217685300647407282110655501483136962480426155208991955525046441944567020206723091095214016995677953793670858638342379056333038598516383261962525007647325405261558285418354291838687850627138920034487548313273199300243328196340441061199775184219203204522179729859728825841013726699833704871667969253219822881267180388205054229923298676235314829051151230411402403552195528490634558259957633309004543872976210056413836011359299400017361162349511670831730513341269863899907517928532566605303316215045736559947882450575372683722396343123583375252442660274509141032135067907529375744439046228183128244246034168345822332442517296329374590587836898342161528522940095481473209223135137997474662176653365966677396932386544030645457454313199614071712492234823549667180401978514144816349918474388857695939283956944088477593367899278531577484239795820717316544882736287403669290493867585894158157147709830342241194535475702903297919688571404567355238542392895061522943363486262637134963100364855842997629488602408759277545469604551024036319442009154534974402829283295371818728253454555883769189858380449854794386456549964006660917466003200579772887739844941365098919486894457704120513167330291092712581111753941680671389859512174726334729933946409366245653018690480985667461519795804441310636936867118756509691388062686697924973277375574799224812072915198092224277339015974312228267332718920383401719956243555752484482548604615697330382323443994722407986040434924013097558735457865233739690739297219800245864747018464959131261942168811190302963371712123289298808302638992413056082086271720746242896528742602822518700230005375463104952418522559597717926286881973803152677119495709252715013004042608533894534447409725837233551412467178490063893838533118304904426367988521248060727235032551007905695838456467647892573422714252888631299372995171336557726941249130307604380755311064603361244981959648737194032493631524372022605281227332348644127985674470715996724567461053094946045941605361440799242753646326684449515470744841706588117864502659146724866610182723203827642590501552076600447880758276215843670423951543364449464764415539664355974459255650281873845282864491677468867681156365493308760115842724838326969226323143658139009334760668911176606072142821932353299730146813868593191993378980359714026324406624737529463087522002422758841366948002418767725922044289788124021321394934658354383177752864860393309414496852269167830044036158809366498180756074857279593730906488513008737086910856279202086771397260912390234966418837196991179781215693691933849460695177740433404369297590269803116885212546512150793286611493446075751148312029922235990696047650493107614163519507623875645110139141533669341209522248742662689466189029873655060779568678630063042074688677485845439684224050200065472877460410987816659812506936220490093984467224575186093521797998907079897694247861991910153921276232058518245415639153158775530584774146423153566196493535817419373695257941004599604445018455972724979168472753400635729433844725774910351210924829824288515677077139553162473112186842850334008110487620541206281968205195076998365324742808787429452770484369777525105726709200859067297824175765847125158014730954934052915131910137550692025865636236927911781142961140272461052971832079428829433760613769026316330256845700374672397233406702521150253945202838592132400750350621058853387412903910608603262133317647802525484762576668483173749796229146087151994757904460515553253026363360869534734399630595286474207665243354349846215447800382566574892887726905093349680572328683230869403319826067287138824243161409910423821064976471189690688150637539277741352730047988022842502764833915005671927904181537226593959988112275255860862690844860179081902984445027929786020125264656723349360085399566392146145540826007112174879369169942785819422899493695621828053529777906624196060625588973699788932948200100217206567473455403537065493850636449061240569101627955415263909761683329872571614842155674952395722854271298586420867803507598997547238083556037287671912788987623708964555050930747612215002387066056917913358796061380484149761283793500115771817344203652030717471738277434993469594312464458263969317808761105250362312371017842909680827157975368626742012142689175479579875932586142500038206248119288504908193232550880210988809719104586032063261414923337108421971998202764204791890845789978581447265569315115538826300909257796489893374458956594948805070500299341466874555273159723586542275240183637187579027880804615398881658210383579436984428846162274692451947947455717371022127469428136379517117268644938779295648127137493714567549145507526075578548767672286873444838193197589365275448121531555096254010932776841345311504946993731485777268848965785468111112639206999164559650806940596000124549581660999692364371390816559701268355755199033999760228499227811493959097849080122716981472418030656229394180105671114704823677719527542354942300108655792690299464700832465389009659149977111975030409933152853304453991979161008953973081921008811795120083758845492416263253754162568647738455884737954421616896167900488184585525906038449416155355713381446661931176645522515434616741320606553744041978841123712230445165922329293512690500230274968010884372332138098556627213385619482327270599637142936111379630496994015091930743769996945311937134947471378789485684210741379804001760289476345965890166388882350062601729031697061340842523314146648547128834851466907833315430827108267417867731235845085690291492620863422303729281295392632786328600010015233225261213018993442374137786647431652095230126256926670360122626521435764093728797161414450973389820990275840010497740337391441811660266445671957489073789330753367112975412367181739349887561832293673910332795427604228733450140376602747380652231265880946090192868678985175304506744711459604454493286183421634939252394519440185894453572903019220320844312951581348335954436663471401685968316784081148562997333268780595600413048786904894292333706252483919225818452618777881056181607502251143381749420128769335022474182504983311987853055938804232877746033286169024382944050190588576099616845337346657640704422094976435560307527290965732729017653447656169588796300780390772112733451669945150086636287502498914473372295690659307398686817742709493047108093406524204819547932491954570767725856277230910371070804298795489124589747028059214554496454619942515194766657602557545040743369353686197889849335214557823590032212901345166012986416084652480841091935061358899156278382978983324396289535724083907092437645431201846416737198585493500045916819934291362719731397842398768377986120945218662755456386646924443070709863108001491088374865336007722926212832038362700784078723213087418807160002737233144781898033110675480918115499573899556201259696828906236040741955639418604226281232376019440470612262590089093691286800507439282782439789084950249823929451239603509331327045658593670481309396038233396174954143693117710742128248104924681628889966039494343031491598902068193442059168145523202099417469720725421722298713734267026422636788453130429131223358753820355106874715852202200858628757786356332932870411096662526512487833046450560951430744479602939929811915503907559943102010765854151972030404391505125805970920416923742606277783610592376861753308911011399982637118747012314329429513816372006170623233678970366847199883174588126661454827907182118318424966359600164450690582962650970428194494206733603896307300248965713834382713846163352748906329913807294002929045035325711557882877519399802360753879889701708370186227686124604299025025990620914359846241454829300741595521172435854678317369674553800342744993587430887127079081789131895407809853763878586503694100088780886091527147618957001796842531764741435393254830746737472894286959849638500327843002908307254745218396935547316123874916676757600573795006795147323867485554274106506238739613954270478251563432230271270258016917770119562013115859853624336119158044126923987870020097851541652348404331351635355246487300374106373317408274226702445411599434939256686655388972464587142515756474066769982745722902046295747537951162225794221601882463183802520594485140011270984976459603167757715164262369383027121182742378949837833860016644745140410489490587313390899070361633777607452312722122264639683629073474266313061287307560263392296786158127375007925756256652080640486258081983794936317613231289843228815911289277167407230757592596051509065133061237603197728224406543537359947908555726525586361695497279236781077704138054811647197308493958999084426290229027542009859089227299904766226445290665960900688348983042132095602417602456998518961496923977791890108095538731820490586097356097585572178609284310870332245965002729194572568075983896163264795333764738314939609982016742309086277605724968759973206879787423454646074941859472458834716515706460605856893454476851996979036981999825896443571654211581527274918259956612120267498129912748468950599035505718635947213465584945697046510254999871993211530329618742162369687256767021236061466594843944148879280998826214379800946114077881869766190618663314575019691465812574055647578962356592737471675313887874605976619009011790470073515589497646734388364301925356824213503737040943297784108090051470184728599632650710491464829027640553303452719829565182061886244267624391888904219668284135846628591668731934064200423782931134909081948912600226518768323483476325100673620462368109255228495838290105930201168056426962965458263835862145185432572340464022274907436743450422030939285356930339222739308426106853050055300506097944780847803302172934398757247870015266037816566543865941014593575016312823098006699049576286560868946290660154254024135465720637508751146029403026379581745088071072106782184926900392495640524299478632314710233490716869905076309059166971967540473896592261594152076185115031821078410564827120392839698069536608240607008662236752393604560349085471050996113618446219619830724222967692426200730273831329712393550070593876763867501594524341344848298315790256243878373523610990444507172418795015884879073069090085388646389314104784194759825725919780062590300995029863980904501949267713672537171771863401189998712914095345886506547767625534620649647988320809822090966124948751349623019538127561011844393957212690291387382805337173289777762902366775957338224973269894016860719678664438719347427708275785876934525693732314123785092813059838285912195901384419302618839691605196130276434995870039289888649552782046259473758812075109268576118674929347185830135982806338348364637456777568296058533270652593216036222009122409212272344837736688473326034094548286840962827801200937334829233569712668632526663751490580564998022549220109022895359340202858979735159678836650770388834963257234405921507085637252134341884759842444554424697173748035261024700008444530159891435391791958595295088268744758084862754803952412822644037533414900866220954382821866953989014739654501765698661126904552289896756658809717056889988996655207763853207991537253278125677127005165591930318804208546295617918443020060718874102490132059085283834751043314664307792317266677346360451258119056349631773861310511074199166267903826226024023336975376112534853286489042315103637217748283750323743112771312412735126861065219849360146020987341021223398269756930333724758864847760091318521601184502624657559665028288648153599195217907616936479928173844218884039861036179839108905955976070624743249206922720478667192337094326829488783656838914652084368601903378438576854357069932022769724943459689141941750997818431291886572027297329095556855659421821258500488577971462282524779126705580660247989234847409119543359754630425000852453583143593776461066903728518189014914689747269745836676638213074218391995672050643205326568568741778106242122665233872342399697905315297004800266240661549881724993277612411322917191197570129442819922445899153565138194654500720309059045963915160551573555457387002464563742466213522228905360235677487548986086646824885525435607049386610986446471844958744550250217787257135738102094288836712233254178947884860750936782726105418371070643904355996380234849369525459299726750254389222661559316687969737233596965152866477994250525476728286818716445417090863492508899961308673549634167884650179078294706313495708817651780177026768330843996342572900394500580746879298762165596387131988531899704371289869609036940291109704333482809674335545916439448853753363003989781116027340938291372026073824440338733736460198836863159326558147518551623079085979821120565286358608055131522596667425560898000660670764644533524974154364820805873558725350182133241638976409251371658576095797873123982848448284372319303345449637977432699268165876699322812518553927829306016042416484424779662193917706499501175176921972570394047717719940122039191377159779418291932231376689612001438159423360226411861233510674891831584334644036579732378105021075490719356369792127195319391650862281897516212134898229109897030207757401291163643375305162884165798321746845612663602280131987200124032633407635856955020642340651275410376626824202909458674940482080085284564719270718271722424594071914590572701901177528127212892423112503120058343326091527843976037429001004140932973787030210179617637540970442481783095921533119056443563044308482001007326096488256739376008611780962602931367586049822183313852526970372173043063136926947200244188069447005331492900796510915210532075647778676085226161519754544428527251314973777371382140774603564534245711333287760385666941865625645327036222343548921062511706761544622876258551731401942250816333127565224040115606678843765616999611629019589884084417773873155675261717289128149959414898450379683980845913504327406686867126211977056934954232825602001784916824754822075860335858120608279587876264322405672339027414856525255205823917868060217210499345746964026333780174045240344909883352240130992793790186740362042084477571560634533780928962664548902349611811458286025492757262533602849190358987489208740534170196577299102982941064350149495860360594729356329872225195536995851401658358277795384378391417510081641138725056290944404864893924450202205961896635187922359101922570208540343778196614175963781855659762530072189521184049256701300188074165052437457485318319621118361706068790980708967339820464519758593906056358162277288277787526580751629017840453956401493960333559109855330596920329977980426713420765786349484533001594905720320307226760990995840820441346408595405031054420624089277959017771705583074832614676649476367432664267911119407119495850412470394631165230164700173025986354446009254898249483899042496776847426379504249360668751667756122752069588556814198912705741771281229391492228780244073008401424933566530926255684070119683410529387478371221699006193121837037998751483346259828651642195712180728663822361381425928835450043513774511476764252533602555841435230328262714379003709456646333715413406281982497731488189162894851849617461560007807997156444125385018388526864364888682975612422839208027365509132418348380227831718883464996948294776574951475418023817264616286902538243820358132057719590962272238229378423533271582640500872491736299556871223799301537113949465671139913257684210049650696242864646602994595098770437025215116568280602196031417047700570482140399515055241526044551968570595424082048669582580804858988131446872325382506604123948179403609554295138222485950423605785994188643980931837671551343046582605301551719217753536551175637647955387018174582816164526327880535472413614916462198896861880137432139126629037289315303373083982772481633125078037810166661368570799714631538643148678045091399928139553282911374843888151118253341145336925327382644414208304490980519622412949002835797822211184479614922710657029876010302789560423856246298256033014080999392295101995504304987003498965697414621738783914000876081379920009615576642720158921428990798437858363231827703908049981324374877708031317726246609007045856954606419114423738095808663078102360002211887327371940416986409500296471760702643953930631577759360973851398302308228099007514263998319421376110422175028964263296226977785499140506286452529862772957156480565877753815719675638697989976375237252189785462532360477035228562159831486530073212104253854784997009205530970240319220296878591199810672946948655575930002766403369397958716749580957611944864359300883745183057910340775579621305608742452999063159882327352525204726026006808999752809154721994365765760584190558686307584134949808736641586322609947727192316890666314602919503943590121160171337111965341200747311197940751404333612735959938467424320102274667259516071486192324489964187906057224189747529268994287671670069568702790460332146296300574498288394209331255587673805464547702664704544800188027180020330830257541057167566653388443668238168604489587556130022859232340308860013789932419232714138758051627014768073504379414938506284943602678041993172492362398023023462454783212084787892656899691761329710087347429540040023419949075857140886691421378581583935678991336452640812407649437156692118911859573527483028468606799909965618663923518480423578480127368623144892270254852269253112530431938457463652936063506450491401609029448095867140983341851580757012335799783952402644246444243983966624103205980951724978638369078614749116244885104977285441074573896540443291874961553778634301395221655653342000200568234602941288813932296349172454576134419721083410911804281348040651400385739147660530540548600093919187466365795274238846628123586257013304706363169285828500895845928626935207622572398078466612847668495618764958602607957040670603430274260056585129067493454312712464704927046783515587424869176871674228143148527334003661791492213052674922859866402915260742329777874951349748148684115067474975495598727819148647220828627770227956614941917267253953960799114440527016325513866120783427700367128230667722567147133049143854357077257786236072784740925955434382398612728150306252855397137236505029370805620974686183887025411051315552891586655210143999349956190024185726042883531607757226947673104737899644164816082950050707706355362282007007250616701261039402255111495442173100327911301826046683003571288259199597415182814828132880531858934901419767126648978609450582706403067726927042804007701711216853748295272267692661753205698164200129311448722420487246365967311766371522891843652783686943287067975131555074704239354178561661922471032132253368201997633090477660430076148930586154533869091854731294159122283880877153846711795717857997633082865164351582563462948033203934023273559430725925717171668285300801640833454228200035196908668685204772754970220230917872776581197729325493766067390305125610743522692929686961322764592480654334515992740971373091011301980769863706986739949299750422433719224914127811055190434733759721256250042383343070467356099091489054133936162041903814454882769191201191095552101543185378668543354107201321324425803534334343249641486162686595822582745629763473985402150487668132238751877303521447195538645026364488444736412376064531367220142861438653106579652330352073223392031343873538717143594293211573420339151780786454524419868524675294634247287877979155660698930700663208749253789099617496306668586329833637224276392089985090926517534338956422834336806671748395812486296392426248421340277758761553106551656718339898513528815526534257594591437624026545853939271181617043361059915606504103910474208495963774105697969037592209734946138128035131222310383823757961686915756785971182606229198250084611968648343921906591875338122554825061218170690415388687760387896905711253354360768767949350636413739751532868918728878780118759588915500794312661269494483760600653504538570657607824100793588559500842923815156177867419312579032955055304453085291350958900687939440598308968556105146547466677412302059365336783986076151269335235744598992315108883179678808939300625706526880240684833590986583614243143584559567644727518448316235684587436030371178940338952962223252681051434322944543907434203473550862601474349105400874574107549589142809531476538811685150828619518946549588867582899890710641032008361254900113826448547906464012714483937047191200789039414476243991606862463029662084800673134349525514321812516531553304347638307200540152210858433571941478197057135176452494104070049185175228144840650429345670564222862440045859007605696702352328880033911750473981562807664551747515886542991761632860913952338159217689178531386680261618176811242482416803211492441359327613267580834163271463564092690092984285081640037875531025974258278876288279286108828294697824044237245474475215921933572342424760420803701624476129911589406188110776187815560110918577739108783689655275757448279552548724676281527772317764884488441886963813622023163376217983243143233652741418964342058922922048294166118396282130277677567895248105867295001931058777712082087848597989600845368081550499117525560898989650171503886064773876293489196863159558277883096315553036498378496024703888191237460420941015656270248339673574905396340843232072114078031847219998706592401836797178197052744569038117473719531970773937208008401970235834228675898868475510017917064721276894895935078975328625270615437209086915572069689326771646609813089899693366587257379456037819162178738990308088455938994215182701936121584412769201205095395165878324892927835680830024054651712296524454851753530348731081766735364006442463946358882416168021296278496690196954951064924784334290241402304247288371293922813093212584745509494553090006109804479363392081655938929825802576992078184505113795461621919143329358987554396875702198157465823632066643805746773207931227783967962141226133915795024391817105948439196058124743117315332739551956422645596912398233483315922706883291672734931282261378236195587555133007099315909286001921331617583079132318751497105378363738865841787668050230284903156285752361204014165958814988645689044297055000864782479883434528932802895574210199739681964774612357482229613253101112727054233422330816861771774424531725831279174121841496944060285021109112937824765473624325964836624172811583915460418162663235209196792059976540433304130138934977731017920841781415436323219323226239677856877335063802133061244455846989639853604616645578227891108804880939143638881771381408380442041574233248977172466152673174800966128565164963402949270834745761744584592734806469126626857995032339110544389659574382183546114391410558778399582884619927035012980956673004027104977510207930455419991029372523890671458307735229705148777778648961954898410450688419433848410565690137840493091540798636326159007502675321412537001532118606121049707068925867481221175216815372871609398951203522909331542879082042958358744381695149981063330553123036970163375170114347539387387761920040078860987380688206975214642844948285856363338706027116773292525727119770145601686133350655248025010837101841724969723854022073039537219733684084408197685950234472344709482892278156276595989631713145448637901513985425988844111081260099411581074087558280502732614863360745719102026557900884145539446345551685742286865650864683116982564111238054654340135772533710004796007409641086346983570082940985103043965730932256735195312106443017069900250959616327248528016278042363806288842369174304163076790732766306712095401584491800100161691878262894303826505160217597222020467058407735812919677491135891587487622769763730004256877511558464470891968132878933518017246347142572509087035982646548005649269938634806385658903314957475406804677614988675004985973028460803203442763156529142438191583055062165461430656615026489055384990345454204894273757624071766205317337443952790452605291055917040340751029961544094950559452867992507573033943010721746426527571323245031080567644450824268411602964612189769799432936093088208195528906738353138563398646404251630659693537018198068106542958011638848850350178408028626934697963042570634855397185825058624475129378837399849075170916230822485524111751813054243078806777997321761945802963215824175328006386416479173562076926006083939860688520824181333276059234579242505009722404012792111807495815677731416137870170346120071616156587091473336051650020670196599950152570372711468814228846314933644953608456026262984928995323199369537766971130173270150646914398298685839727504783261137900262825320526107885092735160578985412092131581243060327332006093452864230024913178275717468073782656195100046962320292291943202067917521523397352232398568621291322391094052279777949165871054829703662820919001034008706111588848106773872265681089381368691481089269992567626275691748454813282561225975465490676804237932039517248359347708006387637441446384711737283352742739175897901543061989235846039087783379025262211646252524534690739068193537019501308571430516289295759297084401671243126632139324518615225809103470949308434693582684467889743263801499906747587130466924052785120564794893257985135012920185631585745211493681938290034701465137253918832009542562186637329801850470387334064349097580724078247107339385976953190133270248705403775124010233515260048221535984422037650382981826387617448193335809514356767278632019873025961505869941528701838945941016424449065559982270101505554712888193238638548372343624586243395851973502849587033708898743590527576848838258281415175539070303465541852087196537343386515450131826947279737174426265828445509241456786325019329737031525488805962948366002022144063045555122710469303062949320229238231759057154695685148361388885960265230650499254164027919529624993312645893146841169106136748550563607775095393635423826727649002024831459143950544354792423163719470435439899494636745683898803081291329227575284716630436359890428311838651898384496045869592908936510386111371806817698485305193998251971255603682768490238429796063049753282225393693277592266671800462837966463111407877890614463956837412054450960637318220369867983525249144496964507802142316032676363690565094808266968012802203854645247880584704985675770203660807459415715303606775106865481472588386161044611711117734458463167161729893214977016891431807849621967545551293829347698646348079439544153020213228064873489369168207627580870238158048246052488892522200152367815632840954579197446840158170386724221232210193671997549822659732339687564343946075678205207872203815759163409345581808461341160379277473340186895277170105528985981259654482313871181555139812671820931986231488914032826615824578871995719516905589043975238886934777010559880001085224651632632286324607931086568631684286717762892349802412573846099312382124162437051223149878305687815957173944936794682518537359606882022263784875388035397571888381433079603695190994565830114234560805067517731626715310651442873182752770431151652573074455324768433839294171382245614686732521150822407488294184484538493212105442161117913018384911710182397144572230323086101901399950131031262455767253744915649410415204318586911276897784010025748232261649670735290145946019975627515073558554832591854023429639739687046893970985889899426379994772383786800845319809824833324536948704466707551755947744530604062399073787327925835710373464815052194917775431944724594946407460992096099886387158777337461830469483327915917523794271141481253718801097171028167302972999852350357875318020140618425556200859292502577168637440756758784584971975229699469190596548019713812581064104555759518854543787784419500018236399747488784281357164037184879206729270933978612469033176709193460459478957094006534773941951986745392734277387865410959227846596125658688589061478786619234060272020569661347811048131381477451726694286666250354210210019392394639125111939950095261929806946606734893329639556825241027727919705116680456913248312166318218850244810944684621359990507514091255817582891189824905806543664356857206559467255556741110799436806820914687313230980118515250661956607960914872715038053118547052110033432266956962600258952660589338695673652080115021376912180757312266034053028048948339822930670257505019583094175300491504167627047623848715411433242064182039787460489024265600502365005525611678609672341100802158307001199288766266179931949231024779023351703725248864557559856973763904027389281326985068731355332480988016561047386766150431162635917469091747441659366707249557454346307313700393704031029168183094949635851040150429229810552378975869941550608925521159080473317441508174890521184289459556674390968668855949591177394864697702617885928405557610239344833397082223435414411563482652473859729893893401353099496922662099821949207977837931688372131238366288132046915515370736301963729687628178005590722995357718609741379363580098672632703339366760773110795872530087882529202119879945086867867131620657532409285125154037572033969617464668256376584393870056585647900577435655561751453113641972843849280948235364450252717828412857970580612080424218459469256949326588522646184669983086192695924285645394315748596865186727473923944226165160970137199703705296995411486387383744413034137426473002735809678893760204170806444096819977195019501003668671522979416025606497364031584228856442906884644622073847317086972214683611431479965705829217185508064784608295076684036691649668492304806749454619868916638471934909190097255518480878961070130736422690525995926201136476822058298564748126322266376878370447298043140746029795574349888095904637809027992011132921632900182721591628667388286138151491405590601594880769570936385369815249521300127740775977949905458560282157883542008111056032049404727761948170057043275886545511026981792566780638382977866433322377828439127771270106326909238571619940764629566415916851251166647811535301634309885665254734038338847886248966460502875191821989640227980286869936703560141531311783485527491075574962118758936086923304652985588203571624255925954422628177557707405866928249637302906864678410896837514688102551288059152749088025978838838341751008224635235883284285050032732161297232953724342807405682287956551372510611418849157621219761075470184540500828396236751919937518740934256390168999078596990657991824039177526831714686923248471492521525540157402117057327967984325381798373273175888838384254555352149367805466316515304509684438147106765575038295565575933099375320879546446418829739056357092567862169531986447955973174090793259641958706327044847616407597868049614287947475215693842719998718677411890485941648121426577465303423355941127643299011333553288546190671730398506288105167026167467133619166560000613462109993607221517897044211513575674527021895539087136997345984122181113253921027777343682404715992488489912158818501003372914300784357278186513935714399408607802730590916424271386777281263886491000635743024491087958385173151993900135701603542177476530357552658210728951784947061626786220192801155500089109703231268326586646955315822444982467101620433939631566973123768910042336466410239926275604148918395130093342449167497949391061416901415017918333319062504321219385740786503950026548182533739635574175433739373963448469378403510845542148727211877420070468935622865238913247143993492219068498703700190802736146910175868104630306198212090190574281708620871724675875696874219484076865584864716952645525503633976773522099101228753679923901709582792317491813274614719075999953254098162598083498835488571307065909841937092911194253670376355415882811806137534135316857996685817068693768986826888100807311115330030788642509983680595304049681267660634672952729290932128854735594915187499863228551709752063689674852769160367114452749500694247898978465923891443913158688646787524501255870178177353232688257768720073142364951419113816316885562175360210243164554362484818531093254454135564550163663632785500083539603715445512523566113879766644930289015540637265897769426542525696299408875291417729822601388889410280804368810219532635790291989080339552319722944985648327122531672352093269390601044987342603470041713504385845943093848668337091913100468651129616629031531584141589023512063483291488948802762331242058089131185989998025946779759144153408894485393655992266290828684651458558316759201110869801469424103552676565217601730203431904366715267756697968762348910256983857590226193263550451560322610214472994424400332662956047914227773379953012081781266278711586910335528544192844415387979283036909721689749434885619678324537154092585248702653678169040777489597391479872450928233889702937696406585774217439718314196900306581221200197252983853910481797934303007944132147952408529486114546962463844389966032608526098419217348224003829741029477251341841105143839518085361732584386612950881899341757676714020043467150604172699784195249271819522571547593906951780945350688240860595295850669272312431425127838480345599743710893756162380192238589131417141104538117473861601176278209896974123573974317196198491466312830422174158551370028365479585143237027057411923925258174016568440197466922828015087004892126146086116374178186879420248318277514712496569266268954834662013098933237254042213961257049755349705608155028578434073393729491267434513203732683744230104343034485601348637588664545379374159099923634699026730811622419111265174806757426959079916496765616156852348739041940260854947089019925826431545016402019940445720622726010250500437969560755333979517820520408131925608791644441545083780666255559371161508134085616727693149633187015750756967326810053857672991951845323295865860021896511227884549750771408350720496183788110831768578904084470337076139911791157787917996184191087282833620547619677639617311530211079166576527947471460438439612209085260200812289719734410717443567828163821577944056044044263306764665527517168056475822599720242455906512520086257946123190894387705839926218847180166751998047938125469881932187359677575928800134676677171394170588982486884661132805530074381824457055325970167060501116423973186843907265205533062910792495787364446029309202802649297520121804900165770404011972846468633165999799499252404270782944217115847521783204621753036837272180056399496159501381920834220205507776791004197085951251626525969851376555627555352600557122887590499606387366826018871264035551153190286607096962818898839382303153956326681609642617004161973895458983695590188871124017800915755174557679960204358095271342068715365476589406030932121474441926324005598783489907272486393013000192909298158579609361697459804313347169849835625140642611381999163009337044922898924232178899863277098279843983235349603556255607583766585165448698108162809615098843620877008053345471874833659770741776523544707927538537630076069098904791165964298073660075959347611407439836293456579872115839742821510791529396860148075608452154419874892079036638406441109052465522453799374992981885557316539882667357887775313034821814640034020616232627026235277430088235325273767370238463519920044451709669082765495430996856614311362228538984828090330073922622243539564050306432134649201405223673070382296464353758239682241233183035374643028626630991094982031279001904879988729946216900092851750090180205602826560785345860884854722294475979680527776918198180970657558772070694089372207524864219037616425554408846277849849958497100223304830096390467183290564241875784115837551464252651619439165384402588818991121439891253257897736491602802625232649947717027818644292259487548808072989166103000151070725850024577406592692133232106001447748293384908963595772064109465118024957405772667604608329270099311754024692151597802961662855720239364665252463211346264275572155587359840454093017151342385012728040759724304099991001452069875224354229923319202583155912452743990719519012390408152548084780631775921888227523477766552390742655406606825067297923427606663048322370819473703729950267081676742608508182837749698664167205107127184750492884616293860940063814893047482271418974881551951275486387941714313600378218583878606052609180781990296456355708410198721570726473802078144946667586864623271996495675345071029043608061222660250091099931850509336278640970050083722701859541120175018413681501958028374082445018316602714012704239709291666480781483514635126069572922162019417058104641423234089380720128700331681669422678591810619316498566456306123774468694887937590158169631646073652642791870454519882767873569980603818447103995959579296727305326085646669579496930377169909753818793413577945900942298770406083992266173134924497408789774136832877846773175152004716211743697694131729644177383271759513920109059693674449560925038655878512886510357621168694299843690552706146202004184496158513564901792955884956469237897464105330963187386843998369300424484220927433867176419227568714211359544963027236951637540023203847097979805324992566579295141965778935187080242428626062848235173690767789774032704578767544714048115254652373623485650413285405604674023519110167885008192515758394796842424729621277858345103001579806683950162378976171671634012130332716967410160337447240028019386233676000354524115808580661023099075955782224288567112882138231206055410551068495534021755272742170825095546343976474217242329988974444196925886023747417557437255156201380616197324668206321371328380030077993174758685997787281944252444561084830149231779163174172891181624704045834727409583692393830434555432913549694106788839620515134405436514699013430112078814378475245975066249231436827261068193514603218606737116863273033794091030285970289404301563977049534004865345535985889444567061294474739575459134948039111623117333714583382998425255258348903960234034697852179632702019348116150860024385286858839951725873860853910228684342061721587242259730482528950391278933221124533900147024175721855217257424607070933406732747671472984903949952172512540520894440910654708053813268108045443344912376728028633403899387960474983167402037145720293658789570387385104729733746532268756163449576181386766580625324259676312801245229288486634076012582776238274521490296522390819822587218739934962664887972362502320788256110573665876430896809703571140891093464301273704591386760999266932733086847231661044540271501334597058829493888817654851560486718243055516190221874759445985176744003334174179156344353578506048263344531139557657995379978539446369226021229771118503122527695012600166377065004854594873663150519133897988135736613184910335564289768342470494134749113850112021570739501681043394840056749806926159641214469241584078949583288807348795067950976544865519053520383396742198317987613337181825176804119423731249900929313999400395698335262223356399012054688010059210319120221209644031859913327689120666167640783494954006271712069499707706165167467680193682811253193941217661261282512687927416527511977936621238256016037124079711432380104274486500126113059070071257976233774438382342220999528742036109907110090214733232020795284483741081847142304489338826609655769952449523739263173805627083656216668619428430129583549687167893208601290068952003433875464308278966218429344837516993472815629517780258824148082426540940284622565464540959789810525801281549938704493163363412771206558464102521013356523997478525286141647680813937920121297518798990191060414441734866388494971749340709065285178663584444584349870978209761438423220557129542956694712764670097361598411021849907712096266046127286152001066656967876555858589388826007428111703378863709086795012340585248929231778243390961000755864525580018514665706936764560959637451481040049969054892009360822492344033306556326778426623929020095054553105659626025531079367965572744076614583846508735215255295350465882340828736768416046394322825725703176781705768866883544197252069263892502850673381372299751279003567828313928930809490935061844103715709985898562909836772223018118610266591352757578545191551391639557736562510529465217238544589892390753571157195032511464288575748891194589866844720119932129617965693634276574539188577082364301256365934016333997144140673540724908098162456064626682643479302115169477975574774569955333756761731481216609388030048049099620033465626945922798228429779716778508954754208697590086105679138988488087751209152985214464897516658536610097630322255614966577199522120611990184284108998487321533547622618114241339649265178009005428787606668001568578027671081685962291621875170311795118405178768593556798049947588662430361630081097124768080350589797584153684351763103203723228476741825220642005140975409026746935563353679682969841354571685710230582112862888006012087734302555069533309184316301529297510996584103495634738912437243469312608086099961709193029347360582758717031567753185708166347776110777834797251358352916344362018445278544607330720675910977765019613450793434923815114775521632289573263961576971321039216536264616092909897573157641759244859625890977215077537289269312978374074305388529679871552282389918177042266359911519998062037228785846681940082354992221587011410833717947557317751422162012196296318482304478660422017496496657006335978869350554183664699456718878722348700228214827644663962280082760825570940887313477897461853805789397342703599990981589013063730556375479194236508316424736190034877423484525759104798445264015848078501024437514697182735608869782890972574731015373920567436072434730766077267513289839883076128569458145028835348818685873904764409578343715186007742753427730296526264388485189913772603075573920377789899738006414162272708532871118805467971402777913481710240768692771686687067772354389901850105766856384227182609895454436925923950380544826535789384829604214035704649019046986316473138207928658354731596702587987296630496149108047219990392861119700393790398660034659849520776553178800137809254752683696715890771373690610068260025186601768053697868855283817747189725715125383723924418178250554824660574878118659179690988699052079026371185754807262210641047575981344634086265016024390245401085650583596490433874031349391586651906559536021517818860109675711160436948779735791145927360109500229082067143352839328662651148180918453247817753719434260856038562597704259519647790741327052318342951477424313742564595757587575931991449065161152049442616272890261495330101060746425004220406529603201741599934391162522715080536201383647914890869556578929792582441392509720715382103278027450689432206505495051330965594791657559563451007752993119950993246046726524458953063083760528507341432738246738365106457628507582587910585282917164777637804583510535709724092134297527101510616563459233967752238789243873138421780525074008617931126850408651620127074099590160456092931342912807031905760496210876978820962499407678605330797074738342299359555866796376352256761662255133054759495079834784615277059863582993180811162391079424260624029985765978264872954353681524071517111770223601942804666360580298792207032299222686003872623511757367856070037941724982000433523726550710851415430684915731246700207242780500808598036271493760475431520481757571125083095065082180075873263338538971808824048670291866503649437394663345859932910507678817196611373059491977659495576387545682016760845411921501980073339022451472782045556000737609781413121586354256132172948630145234271851883719652134799586652124488497064826221367084149060907212935630409395830274479822883033857544097395521561327283334534997244515823900776193559427038216920924220778499130245372293339512455877602219192537807247079189314711972180429671111013829366288323493475993772824385160290905218908893194673537286437109352831187547468523837230668877318184790182459428889069266170690556011153167191212826932261145589415620205491074495260900999164724090435140785058629648832362585189845551635039958844658542637240660713226963094910016863829090141386367786961723153899015732758908441800128110407503684815244399393218413473231096186150025968613593694620241757565855093844290704418603642957230030571544680995262314118121493265255203547179845788496488047362290363550963006243983113744948603484089619198538734205790918905572253507822074475235948468937568288829711066714990800327216405801308337811001045733402924658831776866220038301321380158007866983483595338845186269102920048972352374885188489690957479963150436119038309230911902482633460807666635234312930853945185439962899661464255570558667483384977832716948088475813880583259657774844249505708072541129869702350450095200618863955205850176541345379285439994392884000749523938485109849624366088433386554832552890834414864641804613717324591521009835114731272708357049246155871597011733265384378999140565211102076472603278728520974586711730281739981424086204459904398296732240741365277382363839212147051860488095240908418868531348782048499268300775380222250013320942487408179970800540670968295153884417430963379297168763946425779493222366951997509837886422014912588633127271873662483017010856065159261209681965069706320203859990358277125292997214839954359757942234462838155885976625701991123188056478864671916878371680561090071904979929801847970300813330965667633140833504531749230300615500453476756660824034168984442524882350053382486285130404265186216628946358551904678880066222481010503807192072583463682399509999611258124572424592938785969464168931126913657098905975254301507352867775410540779913798150844609193309003733144485537891706689505942881643665715359753068256555262914409655678663861487992388943514012389680085719302895910204348880134228301025695692875421935260179250262660616398565997574023522152856153301783056036746897002536579801122806966861967924638506879733833729410369272969958842245801028854370997105077869492258652937766474118609627826164295237076629950690136973446726838123762229921359672755754096242307843191522015714980754986003321688528048811309503338243454635464014843728430744918696306828260568630405988667012720423071166809577520061200816041647719443085366403597679586859671637364881611695381568409671424530696033804432558723389722927958406824367325358167659883783276405744747427806677098692477944348036724001694896466963852255886726517249006850505883834988880384579341539845665587301345135803757080305333265221170326379461652330913938999047662203357622520695541770702418810536115409271872589315768076262980558043785059606247331180619229748123474006528866108048948859127764034029893795558391801666682560451784783116848884513833431395564201273674601803269884250141875661755914501629287461971494139449812360421949561306786684900924664280495884928656617775933739885907832345633682613420192023338778379907112782761310806669984954706850835187204435735096360775283074783680712592301086127545576901841465247593523500349006554022912030278864680246141333739773080321737806858734146984674314139236342094597054619941437708640025698375936660646276129768251657315548772650990664205776586452363960543352431579884910815060937043686781617758229208459479382955003742065613039252969635444261999163268667937620096741543239037377947246211841620406529590833549566255177451536735626129336414149428820573710588657028804977990206373104348590931021758993737240144203373363791559374824941528378139246065712455602181168401820165963455611309341403142783832476053350204238757608172784732401775881958432029696804570356362394342269934592836054112898766176979423917541956366093412666433452269044580645323568430374317462963028016754317637317112831653285261564773186750305379817135711623189830371634436232345498432647872178089432709627824744716384042269171212764426291149785473059213344119546492026582289116322613244715316153198438175448758312471501870130881347456607947414561372779911028031841641590657382182790111393213433098127361521230401369451891824210619549653477709733691183567943401357833729447953727710606024378815689718268953245471486980556139214106482686919606428457471209061021529590721357826492992760625291560078312242257470061438059643249623843542287720480447807541932877943940533617782463253901484327321073291521396084944304711980001957586805819819418966203540755359842341093915877572962658536706816288683170996180895244668628522288947857851225854122379004695963090455995678956630892781655550809025416748901683316888525806346416187324912028979698450205210560399894156043694585465781485728657167156574669212264255462377811916279834737980644697781850691404184472520306249225509410789537291513987458660278434903398106423962070974457768975234573810298224330813359332433702613291042451708087108842358952471616955272948128184222813899592784172843270394850897953183596421749205425986604598337902139297789194441059387219267245907403189499157759117402807186323102608145514672950774487904644695383088716799515618678455143682802916222243179699918159007226107290583020287204627300992040181384442504138179034246827486079027261460822398048062196651063638966421053742998241272449589993523287290873714635207789801336102657107877281659012227845893426078402188159696522438465594708153454421772088591120268552443768127302848166664603620610701255749890636148082527941283161623113362440903889654554943878508432509322845968717184367118753802765569937374336221164167046418164150300398207958754582969432193794396913445852609444085880676310023876593333489603844924671714094260559315810858123207177333925682161364876154714871322917068537081397446574434869557285054168705995024626780104261929281621174734568427778923754229858836794351793041592009628268472507092961888303635974656268515697678800255692607980027851658316582948333225674177622889660110878282855963726812572515812946100544767273342890174930466838674798000447874868780157261977807823210175386337456767356332821231219298673105590725952837519705347835998403751504945385473544541303462576590102513977800482780722209752080230575614021209413378884753603315387157766081878338144018722912268755740614135805308052198199390402452047355414730691961832220995145166685807997256252226477086254787691896602039104209665432810658966211174339839289595147638879946559565146552343530136767243480885564934300478305994898778335040705675077923246948834997198937561516429738731768978900078913103467366826837474861832646305903735769528266873099225133977887823867267039072695410672808687960592523000238314964798474063629269524137770134345592880067128054383724216384613356454965984485765262231353365389357562447437988680299198838821876234205321332664981697091942590197695140002058883623344974749700805656238534809538189783653932651737585465683090771352084746131873435988398266092914772838278122492669925042377240779059421035865919755011270749204622004631141915358682204576347951542148776083760753663705690991483413513590445501834167341235400516942489034847439097027150800308753221841478516001120434387891876512443155117978643418025149096012540559020094817573365211192221210372845328258384698233805567485477240050876346004796843292679104022018802098906160191665437069475132756724196185555091546229896220720223004533860244780333541507070272796043842717636874930797946579775143631288955351982938192346227728633813632116995019673710822475049701204874373637896644494477410366403255244339513402291016327119707747365644073554932065039550810167991032716428316641631042176258185257429123953552172489535829864351162331723677037788568883836406792820503473490856820823790439703893441075434553847062104833500818102132145436437149102702969207383774279519842362238316994838379550720505183456074250389602228879302815219224616813520340344534869845506119353393503150953183803371161440312306674861631243454229436434424164512443624207433290998265181342753933466970225132953059928894734195520387131050432390866082992403370088008032957399161988139005593488715320174695786268073576824517885915659136972025779797635986826990565036609921883780244072916373947491240275615304077731187063355089606255485058208711415343903486663020680258679448291697082237014607058494624352144305430264987544258608341355194714961573326236726779751279297413596621302880590296955671705332574496253324032028575223254780548577623267449902740465139517545781424263810118273706098278778042344784118480193764924701335728175429630434063077750288397803433830971244804940899060389448252474500355980099224468947643178767764254863237717741654138188284124923677553117913268730957775178411708135265432524905481178759015434577419000355871776225073043792555196104371376971864255086834554278146986818960154132540151146348404425557025675823389505634740421537546276159314944277144467755891523650238279344533227227030399912207782684116383362068809063300619138288991959605318024127513353929366217173785084681379261148207863623908737116858933621453144010701615377706352267602119249337918130472659909713189846618942004287494131681047861152125208015625363905536277807836926282330918593691156649809567419607825514104754765553837316095709814124261855262770451820067997538775847134789767648253602839781293482741717396368579644815005063747897948488243443042028660913229529141600130915055257119760745705952969183948283420419112394654547547948290822111411897695119180237489695553689643688806716189104987956259144645385385726948829297961441017156181025961528012149400768915918893697246434317193761309241276017520329021661604091018079378638404509828670018260997307510171912380784415382651701262918752646120762819837941714017812579215328968056773830994416109310307373380162328263311188450674616057189706096227194281975173615644313244406468955800782372208173821957076040596543500779927818699400385613970633467759193129725272669514187861510933839996674665287775860220149862696845808142238314605157771296839884915701092951434728614825496974950040426313339459329697810740672611695236148744211646056801316897783667228225215996801690781336819546800744926503947358289094286845961753122807892234224870798218021027283770242806130377047239734407870891698823707237455740449184788446300438770338345532037605355254211786664441811610142195167694095855373335979196221179863287938161599409986004419554150871464345781235109187984223096870977670526905186000278166121564065309150291715100871740023441851153515465440090495800763221878229674126467836450125783996539557575907657964614355456804921503444017717585782926398219707847552302551688034077782254159778547152207295345895875644361100622888748115925020376965113092173934231760233580009115331009778971142525934688764107266260539933277541092077015251300792815866286791990318311820335652391952425067401508925607258218637444182601720691850868386714526196110269611353070287462694320917820383431200345961324014432893248983640136997158147174704694642457552635894814674952891778091546981443470116024998842418307618080816575419326303190159386554796127239487815907806822739847634928136113339302913764750115040305057012197953728595784638597434067395412794094598104020661095123436246231907025248022119744036231615716241041229703468482170133063242183222903461709295142057032968861272951221881521666944740582815870439664693422525619089215606580333986055977401662697516872501038252518664109439281748517928762985528250689570734959678424247706734432693787943545751119431779014611434077466192500502635839283542813100332845919159873287089110481850571012177381626598648674734776615230605628366333718641955556308729468117454475824730719675487637176770150906063952064913578432692708503469165179550692219386659755787524974172191737342927656012864387205742500770484850017135742495597067042334190763938623453428947173504608897534277399261020320690416844799745355544145490712581327417006310072911186599523533948854199985954081929254478841409444396573745010549807853123625462580369238858119320640332054766736378205343693332596661985547572458785173797130443806317621006704079795734547457086703977462854263222485264554972106839423177539447030308017784692814242923039514232795646569809647379029563651179834542161822629434958730840385291209039041066007919527576460079381157701096700142746274219161394408543129184577878212554484855633837344137463483277334770039274545079910185166861224830977432989170173639163944267642922941749124021918822847722283311534321373835993900330856346826839141093873730050906629091953415658907483360499888637606720308753558441960505886092638786284503128145646379367448740366038783510554659855487398526540612352264327646406905208481031211816889589422000331490759609555390337849095847443633644312669774464069233874867425481123752447396031036873472262975019888336987134258818930948056215000756812398279849686872024981272118265271032010180075119625527781006364913051914951412733710623794356584712265885573026534758316690115553614500706707501900501747990164360106871969350998197215745122041995417868440350460847216315916245348144239326516672167107556452131772498660881832817525863070393703628727554782967395367127227249310621894606332453589507174762559772038250668707647832527788385889007222954682199504128219667362464435452109382576718656044941529340903849526433552663917460916872384671446641884337802058185440403311083056509265065638336350833231484045787187185444873654979575802360257478569658165689130601949448924283388337600319036902792801732375697226149739438728677479144000924628971510519863827056009137306790317803126439119714182714514042350821261850297398087359599563761963754428545330332172027179425449425518144086035187997887886115287290812495987248811667482002429356307380088164219845383555512220175189517330710374223198983253600336490073214235815910396171963528221219944461679668649869118163132266439402447920025018954561897240767923678550330874698408237844085096667511294856201298624622079766384719868979030986997084914809128888740263414530253827928815136867489246575475460936959900523032055954908829001703130488613492557046048606400757173672509949789913023162076114937138006687548894294497474851193644018854567403159464952328520880870236694699789392648864303805232141944243753906639326440708661583781358900727796215057442926431683466279260252443538955643534792929040262898883900767346592497139849542117871874138495862154548053603151635668868126481294429047069833630165561834366223465159399288953441096241631816367016803559880829995546185773242243756460758353642374977028885823726573528123102182449856226964064818487854028255289994238690558771623532261018159783615087713635397281775928602975987516411471513490142736905647780730033495653292593938015748252806916487833014360353382781553935884280599978635039468044433410948616686038818493448719461433887157878207596954598585930597543573934278202090547702304054200912128104977348733205932973022225197795929085326123469816768745005012831421568450236495889209481365005453210608035403018703927315483814754891303695442884008741642960243568894029323626058726408908241484601309181526745123420044884976872012879443002602615859581302483395860114242436738167600922262151630305674763739091206092441304724324909318314231503471525059369188947194675224027565412811608869826880302479643271730072259350697733296654508547751487066503702704146370444167397407858510109456775516805278208736581879786300702019502689776350424188748155116638241030204389755776587229185799907985003108774252797160776276004140002984071036577174082330123261241257505890112501110561428133849850411240178880721131520983322939016943954327461069214566369842008037788496840145744873750544606566231683411979449205898993893941301705253440535272666975363417112119888970484960945721815384936095482909757993420894279075598104543433571032934731707621749157934867123398791887159664720282380956589163019005588504317075671130963789642448411896915622376593380876490913363832315011743549531169722145096164896302358139779339962641192546658711110318594721598898100213888362904719115028871289124655830405916435555554853667624730861583169184813188424305607485204073046580988099770803698164788020444065513507035284457907650854898988660201507056758753949666110088591400759032116439164431393646736483482735809312444288124326436890836860710727531996726404938309477533151336457741077358232732149037916903557371572085064017210031161555131639419536911674604612750763750020330377643412084945577866469561830554323448370754501125738431785939716540889828009098406692120117229191299928740960129499524909485559237554426406256847798415295792357852022515456677118697708508790214832433718013677168740262518266810113169156687240679443554759059533665553252407157052127163990031318258967523732882423056883670339979420807209806232661642696329944360555828500128625846242377695415047907187718050551216551416852083420039742934168023004061385448965632345955430187087067054621437544978824414442931913517047300961218828937220836287232982898375896840142703923671276143711878097017153696516474582639448855000708505409069241116513245354475071754289328002742101101566818472539576742950548832293539538652104372006306070179502200122276291271503699650132902180418064119997959858617949021528993902771468438897382312909076120404601870204506622973882744425003635156467343857510196528968376634699712422020854989016223325770398145448685640324735062819829036139892045401517164194550294822374877631795177410948058280386870412985895935476386525192759875637343120173900785743930674798199598544962431756040926299923185787721307171853644898837866883223140339369729010780726421878824649921919258797375036723021500162478653667440952534937554922135694790356084038170856534744260197594669991158567607275797476482433641247932581307008515039542380957937873455900791459476485961515424109838811847028373314872003428719700926347028389284763554560103653466824025494891063412124341619251737515187470406896369263306810088384966867419002940120384004646197764083714254313110067980306927155267280528141022426796291052744470164859235814508785047241632215869925413926832883088389207695869501135447546429486615575380635403827248642468885312831743102357152104954713971302082616664844899925916630746974209580021153709156604804274156006547778259503343051786166933555152267774296430404916260513541874824194908140443563758869677400744404799273160422589878025793209061447084406056844191471145371962589286980888722537009179963209824612847749123618984209554158859232094770159104918074639686869672082845612094013557543470496870529476623430179606614946739208826205860824545678770982569784911980059593637724539214641504654590628196124071927507344421002611891936665715055705354411372331335198055494013307763232469380459892451608173751706375249282329600387469172565210973337695120304834540035544591603576455048710400131612822012368458752252841493770866985912960996325723305574043786715006767783115538863507289107691229024678990916624484838989218766537262685685780521021096222926909665624294813937022553057115750365319620331547050774302567453288673673034178758598155638383967069406491298845087542020114378843919170128034930601393474857122658083233427854908722787895680821659016934117794834387988276759492973721194682419961871740954702672045852150817304269320715580281320477411500107175739619502097231500714043895653548967219257846172462906447575515293029823275408535092911445847179747248802710277951860737734088291488958254632802614781968823316405465763543496915555929938922398024263963724270817286427392104395494191011127617787235184713644266540725122624632193016150891511508871893087843239369831081764420753160294861721609411138149521186712096460700081395907037902782093307530722194948155324912368669506510919480883187538755190523315782410924520070338114775589881324927328517954876239575519140542179578910961468866287211321605913304374427615545395531096971966177538716600577744511493347489171739179247931070164461581059035467353308192460022396611979636957696893250302835918356841725173439398143098224461582386479647583430451400062026991378935676379842734479576060542165304222123851456556665943058531845706190868052573997683489910560128480074798728660917935925079225997177178900901128493744881935253871828731535932337903199744056285750105785976659601850342135280245521498550633686557264619292375367083262474369953315230333465701104293519351688105522990809310537582527106602125632717743652002380479385058826356707995239364861405217952049641701205010548278014217378944588898570717510040765722991655104637628469802468849951180136927172450828065195382055603862721052718937157505226274074587066002750910869934621098619183277802581732098935455628864152074115976848149096259321525571389883576322513680485386672498612032506091740761692340498993384719501378408059035209346379673251825821869162992065637606921975256571677491368644917272640004888747030771362976513828078441818914310086815596555372897195311182958953658726317710636962665578654724521218130450342757298688135699279735122601305964900637305100457128567894225002581984913085919226553608556885776300318430990842617394475198958738297081816759770523948568456058494671142207611729501870505381248757165610463590937320547374827454734535500085338727946784484083267162420375207494101845385262914709859230603314816163590739818919403664314190407748981628694019181012359712905605317446191245210869018375101513620921741514981961236763250087326400580112531096002325867564081186735072853485903570463154004799170206343123232113826086726894800174459536519093435256864404829504140519172567780152111910703364719710263059519505568235378558448094886163682459745523189805946122509134414832251484509186929673746333251399725420216623401181878315720959678077188584338700802433267989708300709746143911944875751143656517763828804382271021222919819902472405981128692885531696225100798678343106615847269927030056387312748911786263717068992587286581204350703875501478937904318389273576834903890463510179713264576410567157489280472688895453287868104911211394383021756928196844211106907535742037716993850254954500757676830726552290052720421562421148922172324049514524552778858298591767329462409858425795795240345064252073471826093676652542955687466612099252702038214782688733226000843463655844267460224598990465862861358983235205037711602304349306281202304141465994227011816785127419665759626807911333772564335832948596515592301380160314020709806601113991075248678387406392878010978912308416014103175787042612494875618369802409580203520757549362137956213657624549076857857685770836976713309555024727732249428757678724404879169774680481670429890900407948601839700257958669421012925434141182714833817351048519752625410132413200023674353779053687539119931378581945413468078433567385105244323632959875092747283697201490106586228723749224811132334470051534978014943027198761109932435512569914394963213735501696074141697733953152235784388705202582928043507802836540226461870805320386699379519350605087473267911509844694180753257269104020567925859872626768324891315421417355835788796799597945856035557640154536314610438001563871161777896980892420088013407836387127378728743225505202131303039283077619312081916015849637052566703277172871646030018497004312250112868914705264797357886292941308764960886118660980636455009301032271726922795286031766176925097358416831333328707351205942686615629465528853678229934357000859187742548885089174854572595382052303519099804643845827700612831383041833066859137224725266992825242045164731883950439793929042739347511724106987287619442944136662842695586731653106313394627303495401610873280903383328664481780185778157895223367254783760803430188364064160254798213647222850889214878721764264191906146785095186391405236807328884370579108255785161652701526449469629254381343052517872933088691745822597247849557108752341706148393529077989009933371844422445603579291264823021741839770758918605318001618936186711716508685115476189114441950197506864150869721472959152624355996277699873252284396772375014541106766842683511454913365889929032868317403271610679166674258887140926790990392007637122225150066476175489335118121988938938527780903366149043753509488715568431828998983317200670123774168443846601359722450142622863085413344778741596264349010720502585815811050677744461140501019224764614684029990496875118116562082921712815581531939100320254834974898006918863821713368436591413907417752857796598638092391847538801703779262011177747502578684284104152040294715306848307079557898645900962614989246002677524055493467679444629163836694863255115690979768820907622453097730577770939602039606620966431853091106569705530648163044662052251524137219946733631778553013852889539190325959516884970653019021467206732955721802780951801131488580969166878331932156432318942709161905664024977552088059501619648941166517468950548698760549883907075013704083288871383476814185188149927043253272817008757869543137468058624903525994533683122890170965409816298978378167156006960578554597363985407543698339803649126508175918024955762098474780480377626835069091890819746185162211391210796057657669792871288573782424007941042493051521213830352351536845912252894915909296711859848769679438203928654248344383435075284277590475115503127247685618230162402243657603880613125868256828944891410358629068304016610479639415040639353546445955728684171827975404073389406976135997017591222180761333508656682137495567634245230831925598469038039610254497902709894542905534553037921149638673061703329980889996228926343446978006633429149043658415618746065902796392879852999871538167050949239494152053388520510251277589713050635064439355143785905192457086703267617415993109240656801471321609281557535817944168515929740164602069229565105256402322536264949716526014679028381606583891946544585656566859085832078285675743522166072244727974267123101169315371824868933871825650722885618890638491672671009001252750447861944236682629372721799815951531669284977688607269648234579446045976988944231798768224163645238788789148049654005483094459447414245146189548149141486839242435831459488542458520554897534507714892256291143342652456508903434613353128735592846740260504894908248147721552011014951255145125618713165155802109245499290845017651255292382201759809812956573758468863103815994698797593919027525043971236467233195705054862578082518986410500566347660655885470489334334678910115936605321095885813023576189427953273207609506729652412354033038181732308988438491526235486269545583320598750249353702664119357938378552829481792158180719466418003648398766843251372004058305230335015528882856498580997017361671231925204546039389092568958460229283096500695879604598382767857560998418196023515952642746070119041576145674273631707916764533101298773986897126518016089592994522306574708994287603381935240235020679182454510836892738323118080203058523694199577033138818108692663748597353205107688006134693985119004160619936308840251423446464365579884047527039636612188659596600993623467493700672034863598405197221727768081748264183840737703546425185918756657661302154439194702266129015958597956219343151647229831457178885136776496402232897642225956924368424916724676975735212047027502868583472814374875645396785936771276631461900092312248689498655624914026332030565271240406318006061989075857442145115965606497185044923484890938691196805736227433512306306312610303269455058115664297104947821505096093839273462572650612724153470392396391510559858053509274438501245347457439877667147670148168122823951688893970580092282471318980685256868658998864605206479919594557847010426557243637552126074009556962910013489667897787780745003503140519423023686283894026136337467179966544422032877509294840201980389710039216112343822210933408575550074999912898024250313641201886329984147964803604931308533367442257572676750474610209338833667712165090826328367384221639068600273338338268811932849741924191752234077642961970911136049833841483364718667604326660601374422943703386432714125727332487098860560992555321101213201146302687158165000309184280364900159395460903398672347494087126660086661479974744973306719580454866867758863784232973125338049170225304421944559458254686380580209959184133559838928648505446125772062447275272136622540414431251200579205592096663977183898834186290080009987077044645053221488785794862774274790694347356443714782989874096015640710568078985999375885971879665357104299857478866173795669383411323660060016126385960401516531039355085251340647224670614805581448781508818139170641125212470458429166126656751098327176502484963938997313451324513998334906934406793442294319504694480675357081741538322486033310295448003886570541650211786581428484277582287252600079021624740382198443851660779295240019713608927014749593611919268588108785913957145362972706723044042933501621782137117861884087235342795389150257678631362616541682292862359316241794799947596774848654885521797422805872861069527977507395592770725349242489227850161638440262296671868648891633575199380561800680388862045712998478115914101077903450627081506315880534282768917213771273118836010096986455781394596433410092760128346800037019201115011732690757495489787371198374791420626811347728100883942990370975401186883741211129062461618733866510494346718742133661464814628519043323867168003676073801691165905893993655761916893120006536968335560105340622699744603779968303586102102449570690556047088919888086796958101175323037691975960767096973751028616194717622825987036328157636903283860172820530419670137263115323971521598337578703141071410222853280122901452339319576111053334026206431293536114775706072071518525257107140552777406535264036111915651616545233351364699091993353495600611399781010746986817285920565973506112958882589520615151003906671499831937785569599408029312868822490597628719777147111399380097485791265847985390579287499337237521132287564162424448779850815465859520421270468574337182968385925740928979870073445449681663619352079341906307845850728091224264199182942253702600131717744555060266713639659391064630624558209692337753043034783905244092864384468925808029849365414328174703077765834861411718328813824788890877920783591379217273571416584212678855546411145820002931077843131376844775718714155535952821838268027611589413422876587978118422828672477932839221111962804593006157898951828278799271393375030638902736746501602051717421954098071610795904102254447451147532922870500882046492121160341841469202985253415973409677679367627999876324428798258956561243181888230826153911218233877582127811375714270843237246843374215404655958206478483313750835325875966409146481361685613105949676335449532771585703011908178982120505133261354000315879133807387648296284265290695888465768202382327908044497250309339241411888637031870569588534474500950157673220632082111186765982221976424851859774817332745487970987526173509400094595892508522986882139581060111490752700711642550056736028765279914553691189971440347896846645415852866716384113182101702948175271204761056984474080853768603377446646821315241102401060982985690237587045077959267339712051340453173190886019202367872721614763715187418468938535426342144035067073701601693256377266553662889704125200376731209103677100697986717079250991313301619221345858528688997445975448438886413962058048599821514502881702102076378481910111418765729204050548211557367896931243622025899785599055773820052358115573119419760338745710075906847395179023225926256876352313949145620092156592138221169004258781723809538906863209403536571314141497446036117750218788071870694122595009257405317994114847339658978142797249330267247155604339877567536667705147021805730782892951478388803934153592108339642420642428506227164875009809139301920404276845592823857630980468978278691712510802295482328837400035607435967519484148022405255262709207211287409948096692039210106837439636943263656572897490189116858669119816422723193272094587596388103885604100116784546830265574919496395468539974097554271707632015896458583910115274402247000532898244603755770622162311142857819766203060068865799979228760946235356015013917006203586212109718158159010965971054868781651821447603973680004091003104208000786456046273141561408048147153320118014863843006927610696570244039558455516482601657654759196977272110200073115309620757137820009414232378864612904816848391929964367312724216407081015569743486713355718664915873956816868936208059765671513723756872169478413655511916333059484791341949538424437450317442409899902560521694159892234961663840425426605562205505487829579796488719913885979291300154806263697556926443539729800319615105935468519855430980774121215806616244068588065222999176350370411589402099451179066540901587705433841522669155895315466383352609910459194984571902436831417963717960496026522721614864100302718290455093863577905025825245680227544135283462979857396371487087197739800476488168272749627871009517288020594830694119869933370405717905453555703712421434114271251612776867816016627383849988801206246701337775761773651453499801415669661389116053553096439049316233902009203165384700158423616276596516477498057973769057154225499738372061508437817936333043794232051493426442615245383401415618840769965211267727881577867533706722981470574710225104577479820159021630709959257719542004091493151680031041067758267640913638131579891167195897554718603506855090787361311326421801723019954733683870366731810004709222488860751482677940427798099431897176122093060479936192009913510592175058592693723184675900497677097658997052291267600889188468344177601656089045671517180133860860218432746428834095648304541022018859345831427932564475791203619056329855652840937984868686849211062648468568739522382514766919484583690624784263557474065587476316833260308827411662882392963269209144816309104488398562940735761766745453138411243943649452142100302602228595532497693566443676560086036232977857273434202740524665425830144256913759838187085124636788958304252684968533972511523321213758334502628360430372058034141782431746559528796312950700322065536721191227581369957979003959066208007348861524871347925280816132455676122524966854786325363499591501659988654545313117125726335128448389550681598894051950746194208705076442693492079323947806447345488547155818403305861713496766237933273970242958418906965118791128206032896276570829515717512700664422537012877471745310909194261206627433768616386217680798612949828200871502251464416827563996191772875804621111192990084191055213942481760150539794481591989113475367323695509551438116362992399504363129881812128209171474824999113075533221509747204157897711751601376569603944227922504931864556226340614060201652909868904773903544253180357736254147701709187306975062769700723756271590685053820174415378869633343572196104690764483515943849092829361328588443984526952748669225187805721016256212496524428032372544216848214989208187856410277270030389268626891103757929398399772076317330226504214305141613995356036442344771458679505113634804993801823876214508025652908339685653085122448270165628749981419036383089291462670371311840153751706285962722367272413875662277616157887017353774127717391174345495426916999438529725664616956661086164542722904055417278435821112719093431592390091226682945256511895857953415685740276880872132070845422583764204953230209436168384333130038154822128025948447062055318661049515088425149603635351034474241607484379537880138235331476536354581164366836185660708516097206158757854138458273369283934841337805535282383884699634572017512443731231626103086026559778110583979241551676925891728617692124011875490192077236855015053455852754190158403001392545522538447539983495650876604898691260904564341033464018760157859798278327536159283118948804108527983732149224381004957031322659024934127600197326779693791167809037558345407248201869716923665263822100279816829635104909409080162932852998043164344588503469554804659169156558830121447329391131121856727713324484426305341441867549786789023973510115262051413243170923755650068544532332170190492521681360338145824030741722494872170619392494139425309624156198002218272590645683487607467369137376924422260677737179691277762788379323281718726720242380770277972639998520222212401088075734576956163765990408956539841713564490246212154523043935821995965127568530959846266615782932869327751363792349354417026089441631660512653353127148461999745497523710256360836485465345313116095599287099101251800421895897488862243098549298927265070145276492272755626175051637200526379146749615350545367614261584755347942280017144134617781132532940284204014163266407737559086892728759675058216104107172955025838875708798009689621144941232909463310011353460576611759758863483024413089677383552413681450315837185814391458723121493605410682723487808004666308710575211450366355609205680524878516616043141378006606161854530374533667487214143941585552275729549194346388099786688801095722877488897711861722593805931789896642319903691718953299900229851347255624026573172841802208999593111029359139969494493500874162277817775805192153688025113390865474016553118530112391913429092790017103253376754758108652805971398807580473031543324716380106536273473149318096850920867067738578837985674651268424489421232375190027683000329467643401031296040151045836356696034486548217862391570594053625608067552411698854536419198238144310188125148523434317933444817505094689508432420129743852829537264008275388480908372092122311230980580399424575366785153448426311310682775202140542060446649925675199635939853499368625695870587686791079344546173284192357699566121953787391528962612237278917212672184225017028651832104069747817278999639379858583938532882147119332202474008056945822767984374847937431985347443146655853627367576572286969608030761927342721738909758099386283826758341945498673044249726730889246307622933206829147852512380888182361548983622080537489593298967901459150179376806593612848995987685477793834262126093412484858407254370902578895421142156970195998160281153631310664875531626323952392822564146258590935079443852276391379170182403856549289621397440081745586989721744773051351783967343827933834481209692239302981768704612837264628864655917404050535949676357853203067781704916235289818731466864408368018460262864295092016496260184593790188048575135820967054247067672102835909440286150354122002214171778714151464020707752882277068358606697790125767616984377192291218025862749160954880603295887082284646449218824405003996144449490976044600909178868929988424747085968694193083147713582426845712676534345156287477511765390532494197398459530769993321039074724988410638130861072012944319612265932986996402621647402455240609712842234781558348647121019165884507025399651378894228820587608833133175926076987881018015982222139786797974215165393297694681166252484670910647451738141181371871609945181223226408281382354074801172279909226642451587137715088314650208480944870014005854292574123979524985481554865198421476937942518939652170667517344156899935340940011513993396045176926396849955921276637685939365876329075681108319281839722948400901329696449317065740498628882531405809027535606440354151712714216398454857137978636829878368109007464701647167538080777016013425271029234252812846017413779579259475812562101396805371481877302369549364026945101192006122019630458860428813708536909777651412093088873768159922690090969344555657091595591966578182016662300742770050615362058303402078599419870648098108788190891125612349018281996850598143623769406512688170326175712827952479095908453114148510953043459484379337819590234270714518287179120357848435965000892772932943033255386630745839133256171115281907135435642186167087820652628577348595001624236705017378629472801103754094705438619699909381557316232482523187290779017187221664289084792687338628233911354301734497665602114242146564835227232843267220145282187735933487462578968910625166437325460458589537591150838131019534480407503274831273135629321682296124887508099441911930467474291081982389822402731037364652155041828303498613171211396369962496525427383080453691630847251533121486755726944017474669065532982555796318110316034186751872480639082599301986066233453559856652048367601980911427261515758498556540578732096190845485825622704650362541802956726756583707836176917428350450945841467420878670415721231321215244393891564567456247551640784962556227608991339485940657183502729359926756574743682119450041686198372090419783392544278439071205564321385243084367542332484950001227720416476158532178920209340483423219724511457655121543762786007270826034315216201312079707659377886201978468244402175406526619080240032093606243611377834653266515182145306023856974743942252099733420005885153923294452888032818079459305538405840696140353829232930460729074180311398546709190129216632906501062344134318312784876516636315529986582403564735761111509091287609860454292535431251586673277263598865628439414059714802939085262331301277626859669136390849575026693261428096742024364314690981736044844166455733813350220993185009208403912756060694579232632304606375491837236161178755018065437858346839301461626600124116013891076331439096680727821188842429089302875078026908357933428208302135229484409142687278606831020653031150191646214134491427014855026614675047402248482932440981540942849431617171460718943868210030182945904793661276517244587618807787198197334927758878072466324305276084663678871829103905847426164987287747709306750866557840690934650823665488889717120573960671250260247938226048142859462154587993243713305810670465147901258677744425754003343055055707180840927356835243312608082904450349034219492405090451664759934204874200177167216626896953764157668318143923201713897348119125908708347238511608484541622570196783977670125794360995776806202482330666402949024173149455176719821139372397391103359077883269578466013886738618312388800336293341742954913383752856116332165597397892160340200827750679444920414549539786268277329639357139350985818291074171357012855849696132436445474790631838220876250773727589737947881486248520123414533140954316665023443985842701502066428838605370934795084084698188235675670165535271852861618666819786408065942521686729042427460203447890861162431357907292218933626346126830500274373066813205382400860821035011183732667889238500500341244086652967778302661459475637320404081959154208529682173050695342707705845058910719453259527613639144973353194295256184196878127103385026749311553717625665323219284417402020902757707919919611684456622584042165633688055160210957101814338651675414507243437132699557800545582591711143125892604167161762106012115342103843822594756786684607693540221783673428924391595411573608145918183459268149629271035725232838796093875734796955009427952178827612176559166735411477971103842868220062816562969359822197945125760375245867654609131537435323944044042907900308261436573668278872236677982114657842866799318180336935037875154269426763633253900510231635016662576876765851553033674732042090579402151194374221839977273172962014092414584793194416236848124654138469467650759159742045638699502980573774941608397671252598636092939005820621788549092428019255038209699261675797415916065435111055522574094612723753695520685836260750734495216143077209149099704207722899195857537508945667450153481724728680471913348496560156795971730772956536421422892107527506392734719237368537595064191485825475832188616317254027095775113343916227960634213730114736753346824239008877277681220514277792043340558731643923445436443396394987454041204635047197886506729197284859668256086917437976358823739755742744819373107196640408869586002787486236530281528499412115541436748926928187859243950533407372330784554140479250828412526991237544068093069300186407452943866520506336241041696562096563177192970805258959290054744216418802588269061333907337208593121386748152622056316887690826215598150527565144824486694845463789369146881485816838351151767669137566591360506006479871942075705508521822148628652818736876809767243311941033793684243669532182991308290092235551219277415631262784841509404430000423871042936170255108542605643792411791864174341571402435882959881416254158188648488783438005243469023198113740393559453690686788495947581843311060562143494545724568114046390543598913896839735291282314257148286689600232383485149170525191094033276834905569260847032901823975567752956751058928619310783929580839273931864332612257254898388075826000212105135528905465907588692309201809168226647420820278070590922368604524974643197171447267265526059353674325778189341479015699384321083961067343473201124434332630947576713622262910500212438579309902661773306065635435607714111105716339696509198109021093845152058688259588981006528833950914933446377688686651536729558115357308672201294836372846447460029783371792520869921834257555112396737414036605317646991834447745154273957068275204151276843235503671397496268547612826993061507523381658994521294239402538752965292695653081462396969191050877473508445272874214737106382188193723759579862301245216254359522966287952835433455400643949513363126484451787200689416862189318495559034814361815455413144395472271342294363944523413749430248634767015316013200301367132546080657054139016252708208244649600779199808466122722420584139164530969305313945049117454952958847239487185835866741301128941157928545234689018240941237109436049522831303849978381572439011038771602087776339911428115227671958986864562300955248554304140443590963736454684903014479109708822699468614890926763175953728908187796801499774721689378074444174949079087836398893891400627329879459057345843697604781574043682206955916921540319569621857150862450317904911637988892430581202822336567775658387764852424769250085342919395376633767809555499960813444343612369865247009030760803020849370474572488671434173472105765151043555595588445626579461928691386845624002954295090298934981977280373239574289684515010818317645092133564158256093015214588544938138657515779056207654035166109471154847596387847255736439573215497656734968136487472652504076411040233020705681012569291837845773398242114789678768267055918778784092713426193075837918646458113696543516688394800690001468612210147101173609028580990936467730696605713886227675684010952786833498657697226328906157891182209928983915010709979337718938817980531942496899445345584787186174918154756960737703397590042235516226371599436660163511952476146246132469140359998058400480141379267489393836277726135231901542166390264458152891209380163757114179488806390725733328042544800448188961021196252410095907964553831683721834686029346857745111913718242384044818927706574641097352204654134007357673891023643321084370948020114929053355319854913127466664099933447678567261478057807192184659866042550989395296743095363890068517422773008604611001150568582238994713816748608417073502752579097844198131775567958395029451663406023627739078022900024482839970543981932809663375777653426882134574392369719341474176982210687453632034692138950531027002539016475655143179688397130162549873514486163204306082005432608762432431636361935643543584894309772056237763700200339197194949113503753707222690381260075074954192197651831300434750165316683330096045210621234348045785989862546871566919293761083514628397967223720802575521148261191353256079726825643576070104142444383400506992496949891217547260063199550282186569066193715273552508947794225782939453354255305566061203386005921499117057343291159084877312055825741039189576024383033336292387819939702039345425225121717431721138638452590769076359416052816801135042850621294004045161155793534432854478851539814911318668473169189395817083081993506503022810439943464489901378819677056091355125686534003708862404325972404620581828168102960713796033520391339888389588438938594759459411060062194368599372055082374562263054624410123873696917112967691031252787193924842007694153354695340306067103639523054885939094159840799296022845785456490210339895937028698157700284852513047682012513866728390404181884019740997208731551529574777162117418063675793617013971561128696715651918188513153309282901219465103351873934740526215983927526435955189969013213326571218191709772290798028322341469579246614136153989758504589441523828463731159980576066916802423062449260213976658836746264980250092932318343154579744159293395228915439976209060991497602703975501757647572358090047985426696522671362453676549512420729705867620205341346547868609202276156174028765383605075841309275746108328898667225564761539311652958729518082466665002038162708036337152262989485783715419639540855840295339315676265763406003836108547329737734978753234351808753685262089653540599103147260436421440974440613404064644151742654894355830566086163707152103395890229312277235003053381445086237850450767411599911710025224784917682593505304376044137022351418967828522334522443844708128418931945446211265257322273015469351292999352697604327348472020146576428893395274724097024583576026534518896876562736272599577099546461844629454679378944838882299178697740803390636326284096678166427175318582955652042060265209404875050182245272868135983643861756345877717467057031379837629465220548494560466380912697294598421062773652412225303263265190577860994273357196075150820162306513571152840389540919794972622005789178177343158975162170949866992883737512939891858910178162428911147733662981016321810555476721395430736537230637854522197632894026719452190049000155490541241351696778606392142756011345167589597462126750643691603193208697123375445444797838630064238900647198364083033794750439284937470780283179491988660415455930770989393034906144100934460217881667695172629507005458925688694706317547378435152902341513174850713247491337616881720310044286858418300921735050532509340706906579074423763156553683113288880835860972055604866428849994973363524603862661146780704830086816519887215850256418740084370880177130999904863351526192718717669210630623088612378956536539938227028292874135879011264249380685322544430328288062411673869038450748657795819066268666638779155053976024209638858302735741276952276356558242743816247859407382128344935144710352815890500759753789031614100375170031619401383331714326019076835970074494682838568837792183052340757732344759657048553939708946789381969668851628634732838062154510516067456179671826500531564743230430959342779492187086330239242114818311991466589088780714568199495055892167096726762658212147133435824686966623968079707760806465811502143545464356646215238600363562334062593297970015482193654423559338198103582455303049347846271065046551174695302885571566618790170183816819187616530980150777711282886841637313289676708809476551564927262670058847703482210156247181360180099651646133185751241107269763280922667941940885171877022118074861557384324616790308463472824547414083382733750707932023589439074488870526687528100639142249251137843581516249992948121809301438421934377416810712978925764910686434856804687834772127436469692546670383046272153179882685671466039229092595894090709444862335223450053436864744459459028009517020117614939063274015237318453339616371699613871943479944154550357221743172448295892071517792017413648421514926692696480061054671912767713795558369591037418124889959269773036721913171905133113645657110498546445456977943020744962441485905545670925909423483933310807074795774312692171789916282684685292091016359100230636979221573681165985172227853812959563260591538378610436422672236039123768883007608122780158420924390762373222665080580582335154259895738583822085411379041361203912561279868481342553338828080333333849234041276943934927985247948282901288997093211630720880890509889173444184463169822512580678396505334195574897859858470608688584503114019119346984128368069936758489420022292099395464596238021295810567057781435911117271016750893815368536659325200190021271704337621890623671121052730106079838414191744471703101183047297975909418763473375120527258225256611398753241411596457804948039846431364869511680878394706176855238527797213992383021952678777643417462734082120400603436082888256227102045704565379030435078924907228595248865198901956629567306718977227319664371992306873056899981761077604552792847827033478214340832034061070152455541897082231665933923852312360624817145766118029636254414436493652031745999996077239826867792035009800133172799112517717746759254234068944246864448703856992994263140566949184460399609135492971368059520798308015817648884765457964234674795285062092458009459195955839831554287643263428215508553938552887207204817349042722380755107572175706082267829988593023927605269107680910147202576433311413200882035145306787529864627249006327772118867930855081985283161072688984863181897990699437273697811641115815349038977960531702901000440283476729366763931754751593871255927270076426531292816567120481165014360237682620310541113237155370632783613693233549088581546943292869031040254693520152633114744302201852511111258817416734948768743131284108956384451338705936972248821851333082736938024953577237141761903082139565201560943226038455513635357662018326608236982911954719951027058187146304211228737838052683240809013613038680889033389931677460068051179777205895026328781050050657072987292971697383149615619252384181922035103205885770342169556438619780457900697278651532592950986136325752721896007374613187349926830391535344232435280448105566174304920927326392694862831704178232870296530103774490130143524456434209258342801014756061854422306995937481188498962480669512222189027925050414643415488152284468129428762121055032051510690174365267201277904762360623578361540728630574266338844736681446439693363530219975943362812478927804803123139714315906091099985338942348083190750954778960732602499325474690995357950736245127511232423150423131725804368670910645558129015476024930847267422504390505137646360629987175017788593242601480498330088122086268478754811776906392936843221522416985883000735605356615805372793135864209316457454777794085484788867832224852932543307772833292699232261045354999433658144890461194487735659422049204331128324687988010124927746678806154358069590901969584679755457156569524776743217450533471739358936677605304927821875723739011960955132261983838174420782858126586611803574369713754155118670569351410943402651126834461017062198811509807250648164844685084741092834430883000486719225221240066996616637093960305597890345744764431505134602043431182231989181730499222356136656927508872446751598616179669011785571044012496004627238935215283398468791240859179823219971317776015480357570591234714056898311126727626476798730947428972197404419312772967629260611531916786298751802896967756122118872553753614379700894767740459500288699287031166167853278987550136656920534152094591613683098012838729084597957223760146263488813650380154676471489538450482664517889105057739790467441309590427732635024123697830221621742637484792245845938313078181821290525997727444216313477085913055534602005502451948647806033157418588437419746104187114518375731794348595571712855826175175948693561191930941782621006708951293157639795425956238156030426915135839091000946951721339510822235409660971279988033847688854423563123571262291974195608385692927486936225871114076303076045991633384738056768834164529901017988965406838738042111181944736432323943737249009965681605549308695300831602036474781069758769639424237057453547595826910359141678351760891209227959283972100657045942338480971307612706075306458496541978901139015400707464011068337400657905068892776460742834751991871346750665951135288827171508768589112715213844486360550787505753581729906959019994530663958745440174273548131013175446111521858266308961194175413345911434944824615147441528312632410585213057058982293805213770932611726624429038003507242130630919372892633145024749208320824557118223430238422288194286695569219706730455602315637359312324912160827814225919381574291096051602825490187483674674836089217099793434188693401849720495372619962985166442587799206913389968619701324809067905071285953414848830903354337567976962691395381914487683163848773130269912653016431295038644469264754329566282168738797175837929762961882083613228525207345151261389038911020202494328217897613033747545866957038951960862841630842242642608847128009706436027212718263333394323682216897768639717679129161045654593114601703579865931897509043011601397479204071955480001835732425203649099698419154527343681522858726761959652780340095580954885776956985562575125512824600426977635447014487455893954714328844621734608024682171346211212618877068172901828374076874533301728997373294329022843431180866481790368007210555640567283332902984943613005611684246254077894337458971951002252999723712622219530294350642540074927056910609431929119547239718873528476539948029097116687042594351799837701167425833173163007629342449163037874850562451599675924287228269601695691917459572640519547122108737465792201518489443986558595594369899670184302029944233280761688232577115533597043007955716690965185857701198397415933516425440698015657711710237233369464057589660295852456349122188799926011408192063571823057706577623894852272011559686699776869831023487251429721255076453766121543053099323788707051058490879152649938604416046649154825427406297164630578859706757800848191528691090831903329806545771522193139204323954854293496681448888037642426560463860390678525431699898133542423085851331217828021249224360201149085304170808785306284762836877229891928041902278514882326711883444900889611018775096909254548906105799234038367065078292783990613805865523393711654770188146535098546652049648467144760728530809745860357747861887199445359857767466573074871879018809631100142368709463682323668439536427038718905978314390535254767997294753206704410820937808059476503820846207167855815059560445344650637949898273785068567025151536505366717417270865698266334283755512175011963148866265675319226760601575223387590836970953181496387629493253948114512627831834659667721994980609841833637653315788168940826949377587318900957055563825900189984420942428503161325648688746948493601314189624501828008901091183609947526958354076416098714690523120108634887340838619899398915581556674128744073015467175999837607101153703666494355121363163179330335787805961352044405265564251280663543533183455879794404029312854504977602711712098869525331866749665745487386603100378917851838331249057106977298943422691279640715105766700559236765954500274180375109042429741000987328784143671846526864035949814569971991361202695105167547599616259771744162125006790544802983849304681651858934546537391641104062266316469250812427297187666329896464601404947530358679357910243959429488966323556893739836781360239455246715582323906275313473406985886754225265603452709508606228254810745379084668320347247756102253666470766403709789314088723398541625925617161195674989571739711149552515533310981254404769493133313812637559246571950529527968111937672357794086500067030920483384538941488294747513656682463914712651412286146213601871117883982575511021356160879847015205172553856212155093888793014866623341042161592190314631396618909207538377725282879990136650997238261341103045928436854793136724375153531336430973250361274220072496264160789432613675480437463212243005432100723300659300385912448887350044363732780727841357572411755427011602125999165380006105346700195864834059527665911603674070157108122170201595439405147951490363319022817179512482140085211953498389501868438410445125266791902796825182773497785650834053918912047659330656493737735781674279929846389004757595745561899434463067360528982084497983075396454759619636696148626479239370335611215865924053081956273730962526800789968060191665882590444045373295407408121160864546260199138650844009779254125904073250390788920002023060946978204627980570480923866223711781272876730069429425478176335337701205322386249251319731939264946140733197260815305624464118490418987645985193407294756358574618473598416734808809887100145697002630804232730555563391457894717603478868868767411213565138723775454988416632357596399784050572588896112373792167594063854864751643708178399412616972325099942144000990378582465858286274112727516284728455322932257073609431074832775195432835219282768475080835483123402725358851858044302098790751906449720939227424737820316388985750438869793357593267098687229544610247284456935300216439043289257012732813886247564986440116403878716233499089072338254469841582397673216026491503571728237245669586038479957468692360143941843312619741815665630771793660517940164565769854858996849561866782432813487968464934608770756059447206160184698089773250431973740436388896505293389104238639703793020435429620918742215726166400481084500924883765952846776415719268710242512522677232162438143865095161719814359721258733415078072872851957252121842355382027803002303242064718935602016568492928732313906181717837331691832734161511466942731864565936261979879448169294606350601636079194977954673086955623476700001421866047680013109136699694003531607082969632859669920274031759130721040071254783524866235546645220900271366204467625274267079223692386449087808563741375989318020618572826321469862677301493827872514585495007614438483877077922418369769672484370399147526271834297109105722972999672342610010226040025050204868931259241807646218662785315566950689316146129591471977078145796015024967844500092613014175328454763236777787894974469787203953995304150272033955407447575974145415001440499189594357343754557904421458800751246389377714045326090750931507071867959147099281599775830784803473288553289385260098918055709066304420515232528742461975786382918183785875061082855832732410004785167379473891187311011936263467992054115640792776487530136074373471846509195098820847221358362195107750957277318539349280630958492421006436218613664766078925182775152455823230226213830343569309134356077464623038783877758917269837682519513792698839129667666846797784783041376813949384075481119067859895633707444411335740093769872152844426880463921880525455169834204803451728728337903981917720649720861412706320786864169154702420332434381014512317229867274136330155319748405064217902711667476739888496669511845987714514866117572166031057304756556518626372417611099352361393698137074661428412949802970323123488735750174183138455073079105549101369487304265961096649266407025886760760715101487218266541006814768951950114519003452899458987763501352298638793447429698415406726695504549810392676740310078056561679506987961102026520437614089921874105789249007390472596433926940104464385992168039576012464215866023010256387130920482101786463869949177277544260622362369325254939159149817367125713129579122456843991580741840251084975208631120576746696277988278014857073023808483676158562309318682620944468740527686277560925551460980670589506531685553316326213248389215342474570096743635338406817839922725312922553900533198244593433136960525531942736019658043680351116953097313751993048036662146010942894359813064934949250765222961289449936444847809655590871692985962972553110899232787778820295875142831873029255655545776933190389286500321210970423887051119212962272925536496931854871455709309401183709111853334075275907196637098231209607620580772667419016133410311851442189551197910458510290651963747494173682038243160394400490939685021206753978787633465203996719418449834937126148020828532756388919829415221064749168455332040290199249998520205197815132261103066126510605346040410015974910176035262728366867169920023261199366623152728995131190221758060829738365713542181982850957052741725617358037864250635536604887169582088514560982764049071223621584746190987841386515349831298109318534386351336287378209961356454130975961242568811241085695787609485885430797568594560971195171893147620561978791206133056127929292654155427610801136300849897295296337586379331657129896037494989254762032607139519107640786989084091187920559766794290208332985760848645290136865855837966417327412620422348084331850667631551244945819624974077331544453706285739708123036536356462156416751887163487946954032127392536708545595485744109032568183524080069156950849514680884434013126060244405524953072415199740086676183116474490227412883491109581812595985262907188974595799155744603390299541930181306501458637233588642089548016972722780664749164509990279377353537858978200281686319565353716034563722621419568805493535457127759839857144289440477999668141455508919171364105173195762523398709128406312385339228526526184801198269177246074539527519444658369518249646610775498280422202337253875361402857989413188105563506441839906438577797650442200468164399282523912504991415778668286115486393728337525975983444453643592350916572028613197151673236092838700387769209250047916441187197608995194900958682918220386260341272923212295977490025606572930506784872698382380791511123826218402784051491538269326823151331183401849340128233014991107912936155826922277710440585779370794265678038806436199510556816155302848862374869472821086127733126147854729174874870351963978592970449205326468022226681881885761203446647253713186789697305847107293722190956407917641205808742834585714070456550375656777999553545310659723244020280999698307207349980638077194267491218556935793925438583432751485071303757700408224178824524073312966042895089227815125857002270879217377104144841534147990716093633791622262065332649998281640272048635931746388489275860308139495625399011025962260704124576457348688953559977952666064881217929700674105407680441259608526201566915492223232852345041412689014678596906427328531550083133122836559229924718609056135890012709953456931442128103298468033260292409295522279360711858781868684302624976325908867598340172423859842393565338751804778958009517511575485362555228693261305808296874263994071323952705262800599122860468672177607880859891678407357552804641133444275132088367595284219122179315094208476514910447529869126614931322271500482598535181962501106430921189916954101563414619647398638519558676072915484879814828925530746958994976868548908263174501075949364391864524459366550147279053786415651566223268849795791535610886243084664141445742269033301855725998841438791626028881744259303814975306720173729800210737798184451123382958794412933568915536451439450571692294912844733547586658603390826133057902030227863329567335462885934346909405532755904134892461343387640101429752588287931877457861277787786066102265289383360163168184084193516047559426039737429094950031682578743083877900198589590067253384242185721060832687212544993347142217640266722219919098586629847176459059925612634838858228758851694623979869849595232192874045678244108029516287147925703586273774930872623294113622652645213353582559164437523326582894801610744835900788537078371484305211920837042025351794386479962711424203473287168822745216588750683168459146711970362322660598301752008349115745567335534733040101932679361828086360802650216111224992474175996089905247643628324719298788958110106684167525948376448783162175866840055269869697598149535444409678661584248885277754323420081252442967151169831539389244227145011012943908012270047496597763156501629257814769232797668282558839715383189396336737492676627338762002608260258649912270188248967476150476224566294186673942502137013748332681474900517677296153225187544388478794710146162366761485016094170091331325623477544716985004545614353638496994904212085285953378440108415933560219786592693913799410994933924622321566165354841846873427397232254117297644442198223032384701070147033681667573675992444580769901683750163431927662956186195691493608517838960529886840009236043301592975139314686664842111573241762342633999962339229646883528655071032670487089671320927911314287754669627012508002334681077114455503537524391622185702721885812699542465227514572535653690596600754347694246122570740201557553980685019527200325838346916311351324851533240700680138291019700441832897031378039016336173019291706126710294089819402158409668041342129449044762130218659873504344327346318578049032624018963395913047297584793155895781667326325780380697019139690604785920292357635285848143843265549362293523038521177565475153239888090170860702940495088262584501943823994346304514687351513221830449252870895526813516514749569569682148899388012999897239766125851162026650729629559761903161320520802290048589642285931869300912748008866487747788813296271554383197545630794068111713636776034504020572019917135785907501747627841423568279982884111649063428561391925900824104932498557763904171280650571287993167630648238015279521086191260346827531581282839734988653600166500522999510916037531298893598615294735684244571576972243264285082615436554406939791282754978811458140065621121066322887016378897834347230972317612206232174640839545627447451203195457268745096255621750967382995246756674804737740926446004264526156028021327955578209611039531901335336010685951584029262143812428889830568755412341884215152400135712323852109204202663988887920517235569457169934756372098905126613264741355408409616402879361694955446581997965623199746475140624975181175046601219739101311988851065712604763633835192169541466384250833910965020978746849819432697591657536926280052709422280420282659238082892125561105016519167382843477914799250699398307379041853885259652525261736967687316056681211664465260638619129963657103948048142450405865421178333254304704171546357304928523718576503539729161149821446330619745764729114585449351033908658334909050654993417858430904511705142945123674664463532233308959672421484910630105403727757583876992165337762846047204211774641293875181413638079663616235701963719804829809142504377407946558045021550841668117677678400978211327634163022565450160391317441048868260838907855152507140210551700205812025200168181481339366741499242799125010218318405388032243788380386558897294329799961434344161380023607722012580252326920220994739133962952230177221075914919440425481141637000182866618202110339678197705163064289893089674303774675319055136024181969358586134199143609009709517180863934506386942856078373817575681530814631824007154183884324550852145774833859026076910023051733042119564503872124445608413512487524366509908998633158040301919513411111501090159334873975316573467209135137227463562470148460877679078194678201661970260663361473285727464062777048765249748314354745840629580471867232690184264202366698474285702745147963752136237857117743734774976037153485040684936726495018086070103308879941231877617326399119366428471807491212606211548611259401719626926829796890098003110578517391766667617311841953213265753616085012049876665191295919550492682617441099888210561011192847510490017225434725556903945590350115433629624920422774865094948881100607519177279706472501699645193997388618768644425240372306474997199158416789482855403556122901292761931220402464825117901559367529256313225679795294578249646928838864009960120600232259808384202996878164839578285301367015340991610328622362060493039484844289702698598534663241766596002534340458548117210209050479371671621457538745595724378769766672872660389520297526864616633817763341995057379070468250431959415895605510464553711770502825625727569752065448107429329230513224464721433614891158277412433127190163192158482963499409531054106978794798074606850253641369124744328414129001185776359401578577638226645682243697122580563087517301244910401472246164639534508999766285138281984215103258487640781398378606490471472186338277237549773018212940088956747983532509538343506576326393666928901870994503027973273386493240709355121084585694473408001636229135331125287612598257363137317040485935210035843459514137753131963633617422215031688897502717732622277069860997199957809889871942062736981781796763154080599717916384311608601895571918309078761167607833891051988645386470030763088977152031537540204876656562265303930431195317719494919486091954902382316417283822678472933978305101659949942932456031900442077144511985018405161449130459428351883877639425743938411140020737646251944324960801098176107714572245544394220302935189760989222347259612272844524776795548412616514014708137718119980100704324620167046033411340333804273826057536653775015300526164257755154148805676912991866517943929985474801749126541564122465584218645395979615530202065613586778762933638679151438730594619857512074803009087479900638955913297124626201223829977383910245669433767231602442010637793591397997433823556229555458607413616952703396776658899542241729133997721970528974359094608342586573145982418912074526541557678300589050376997718369959270962861410581765306804352287350587683700901095526403747636108916380135605174006758462131990577686753499563549059440246975702132172584400122784098085990543646549428566401455641042099495175841228201464586499845673681653136132720577618142169614349211804911295384442781466719079738392144912050804150559244279301294466645321330200534694024973473704728915072720944045909368405946851416261686078863945286437535498553802811751755841023727628085576873163475341675326554367655296807454876934100337863015640205940044158597823910096221441226018534973853730061378919398782666544946918385069950568721828986155336126886774139893090165477995303362086883492916937678956164576123607956365110598833085675720865721720953355213825518147981960582867857207608474467200551853719513751100214468249555747370199875330203143389749318980543876914983059280492020027122464162604990359402609238681078695694926959509037522858870497791781301884212290263394854235341262241083738402846888396959951791915008429083961992746437327232393233734600078397872923557582473165656498043917792820992394145772126977381540771554387983880584056787025659736688330501531109985926811612151326504932993193490221168138245763665683044558510006643534781330221425673741375585465429518516930102396567065021372766045571606387359161388229731570612609320923054871088646735981218601281549895042101837206800165016668749567520831509630861374198845312290724969959389201625288423899773885092305039932911025177166226866223532018310035169040378551168483560134460840754341415749257571281361575861079911724787513221205012325560548119107849484134817898565150167201357857768674858359007304315449748058066405182981840409187472050395326435132035591411595051903423746694062463985691456390019531853203757934979871864759236609815468232205037638967522029013857878907378251639788380754745655757461516445874427290208513978060719548093351037012829596628053459082155069907597681973671534063565666915113465219668423004328534865872776090260078097463119614246647200848172542949722191210475785836144419981243427473882140014345259964294873058178480639179260760200194291238926735035751309999739925778885952227394182063658394849150061195009738497949145952478506210706267203765676874354655075290407179931612767170201645458309207219322673257199726192719151830286565022162257490372417570688116633656046795076359359630528518863165022569079921103721850412167405075283692565378962740475971144865500264327060178651703338847996937370954147478842180841705511051031298539216930299054130095510372482508932265648714066741541505759204080704936051226463722148448305805059553972397663576655840978142134254966083533005744513681739219822307266905273294554516670082491024793141239170070450344635628261299535571200438220191800778373434913874795583325424706200054982362004229762399794164655068066210336708621891918918066567660843275451062378917972341201694699196609264497723918867310295210542322524875880920012565782180935736445284485681538525195023544782121830802675248486632724352729512130675925816553452341897015445577870299438411601504396541244132409163568447623249572201464859041556985051238618885071715266106786552655381434051875260120652128328769528701997873325197469720413435998314601876151859029002234802419927986545646516657419121457974835974070626823237311108556142527824822242402710891685001594374179840486352693568229232012871362441311739118530842766033422312380464401598450317397670993842164026489976318975489741916712883596561459342169654369934302522262203476290312574676958132827404001859503696021713763963247425909505723185837780480041765771103525755271081439301554853288212196438923536929187682197287179455649430242597011678669404367198580412668041674345409839171392143822310181382632909966774674540536205970195622515856705480960115876859422586027191531372245614009299332310801295592804760359654210886732131982485760973368756052503979656282180553523916521184947705149169900720233588998749287016719167986608414047243691784060919838958819821841272545866734663468653251176818862256038110669225247945218383240522874976852051336884437200460151302073722917632507859943654631756541008258039503111446807103288196186240490976351073207038206566617879337960841980175476297183583407788320026565875535821630783388222717161800944031400402911492800854116277021017099559313726048633704163904757943025553079892387453915990098272111628960496362833051526520096800479055930050320851405273183219252721830348463326528216537376211434994851904717720936427775275650458185421008962530237839877888977273357195124437313263921961147134894814296377223723689375130105681997513690589798542002513105452103072255469951789948450089671854780236369386735076775600020817379674028944983925052201733815412646019372574760823452747692346880769987766292644082091328983087753847021798363858565574087697678596956623784827316551732655730477307572643755099959314832341141527140207685201437715327500839189814664466823240820274160515040403847862224274865467747457395550401527018746041200434816684514268176408128220454301243784305142695505391580426886119950992371295012489336740452562611779669140452077560086816783408828475979469879654896241360889369249058958916199998022660470597375715334399281452335565117844728367028031144094698068883200811501470389746589655075661677159062852946334679149756085376290319313555125440815273366925725461867465493980637616982627640774256556948726718294549843287952428801308225764486985016358554015737486993727959568416833142433678758304456792573592429427623295057756655546430970965285489607546447372258055715625523498792669877905434782592142679085428976739192470784057086114109814388307496667008785327020339700619558811163329455833654942793050439119685037097669769530059064545289838429362815907139575111215221526008698301705988906355473001127541946078835405729287769809195025935821844688062922714370682541724812980645359349388640622874574608071071858772667167833613861137576569126916818730875601922136479083703926832021019665622700150407173888011968315679563205146144211372193073278103363262746032524165646204394051794406206109714631688501476412558201932112514205698385813728621921864429944400562438199135000305397147109037102933065013364240546451248057772488674959855589611419436062036432095239755687690175145274137277710932725022856186884172013003265870623774244394114340802763434189254139146099844742326374659991936771313109087455641856953554202116830761581247193259179757502000980168018800538863038618679120419082415921177205777244974609045058504045661521154352440502343128455386246103245911268577079857944907919465153190895932494682392157397683544243663572880385986552168988742979149849179705200941680291435942536998001636432744827177371562863183026489051829537634433969607543901172580464846348798687174846466809498763838782659151326388393047736127086191641214138222517630053785081744155713764546635022231969683485368272293715221879226383471024603652458481664206664158474837808124935270708698068565999821811944622374991872502150246014281314648437787139827409717519266362253113928213907035363510323588409901099484424613076092710522409875103850219100579210655374181985826221279023730009538885307025797066414629053272729837340413600943488515510912134982879785731298689454557224436590101218860263605657049691336974247886334051733191537059241849523819660990265516804318824629559799230642108343028245499163438122657957210557971763319026716007767069669397016526732096759109639864254976450118937172409052280557704672593086823810765860402514047913219792332755502349363637115390866646677406985330556963735214070385703573288402182395699609141948562264732766158864794013222214578909172981599724402649675210027351959933344965592380982702801864109093063215384698564708209801493477901875139559458925570671189531230432092530181037672631182330949122147181398650535511487623491744532349128370056655636603750679722779479617744246582948923934856012524561258025429896589984914427199968287031576299047896672224194229360683089441566004792802115817569136350910398177185792736314111818194263709464382128127326709217587559167946564967125727894830216389393969877108187682498318413602804700081746241081680588791566719669088304105215156989177459533065136028250695674229403767629514979174676443715387963109023979326420969119325406438120358724393251827035167712540648979087536054404544948108329339328038827887340490529512085708855696938028244440579502062417205295143716795314422346838664384784911832390495634153913906718000603206585180097312628755814283177722482364419490435315349916817191627558093720537658450010546755723632474372055301209159906419065094330464979948485449526914397341154720141346968415649681083774664312132771338795589963310748520540040217291923621209278712148841770275658464162766483780931309997367068638323157352250982446291518354846029705735394687170534038697568980926628711192698389058154340993524464888150618557308745882521588251754675899073695602187806342204404668253281766610603726150440656107516914673537914932402754948481375431865845455989873653103590338226636496961520332512300536677396262532561502658499210221788363981767759746280960039004609938969790684363905523577001678310887430284684690151268385275485239760091097862135732887116658776382261520921577240733397416283461742182295348383241331601033381117973759040872533884648293669004277049524808036935191278502826071224936382146954366747168361296285516155071011264055197306332863229383624339429978828837351920335420566528821939523273891829305196065372477812475027947772397899055524044099588254170227676581286359210211895381858095161729305974695671148647880526956738710514310546626651728524014662142073592352541770503259436673749716478527631918958969494830212069584068526397132200607148939744884591352212055161957702509257829179390184340118321460063052832984432557402044585214646561318595091331777351517732081464710653710448297228663486557244103290691914476374374557529149155478495854141195771861048961054437788994391806038438538238678031763318724786062564194529496282855503709569556337883990332487214242393760618756620742115606160643977737571728381585997528141963717172919562046707067953081327483178663697624087809466170064514644904479931828036509788820983809381319806286671367231055576171845297161355182512992183619330059755075344033537202162833258007594728464903046600249954630029444854109170570667397082524003753240444885022350280699811364586243012991754680489242423438882420624146065083242819771078346778806996006060881793148152391914662762299279865882139014482465524467255603413727897749420055533296904930693085863910615005634799589338919681114054819777190850783298967294579735831746848544696386431943606346574619509010286263362894928018109048765127736357444355573532369161024575896778901885572181581410946650286873955553082160032501429551342873456781464020727236591679402414090389937458989791247899788878156362035167226732457606723712075625707778923819387721829971708018886216954048208636956557503252911968876068360436332584246510077325337501406581606758691812061825784263248721985379838238961522309209836408137605386651037025343311521643392187189128224376212393260820074262209366269673718230526230199243451314983283854461548121949517994574509097372354330107215755005903594977849056356885115154155213350210398650927729204596897982425231602739689085810129651482677795738752793783076934496400859467394886751358443364543967071113832207029096742004791312581719214217779173372286126652080948572295668787860892611796241300587085513545349512170814262762196412219803510031850074760545521743272754536472336304815211463045365778931438971679537842163009251504377808202966388119045966957052334727124858738516189406620319704350288353078144068914026655010738312411465210895298283508085490273987312012799676534410065311212969079544479305709207355609518021164544832900785202509276234855426581879942465448764421324338999595177727304921813002093090275656869493631066666566075088016942902950495549649263330381874068763756298225404267042098005765420430166887904111625716186108155382706430915753399916534881002064178550927552773611680374496642522805193959983637792618209000272790267520789486044110345193612774387137808064071219704721782550169287143484003765840437329858225238462457252875840444716441648320985493462375610894268388469419029905079465589520996987745200035416779352837327408377443421212178616392713266168123407381725940116109552178146076111003721652902453817625152246515849318358992010869286120249382975650124098210680127862383973773374874557925587018887411514202447248942914602130359185181989835706994647704143410807791432928496064433229264989932990860614032312619243977444776809599498684347030010688335744040109954484750110704302804604355099161731830155988386711668894272235185194025723901515089903844493295915043570529231150675352710237143398564991982929648571695678464734697317216187974691418833263650164084013408857026379526777721072521092882263338068837304842111557889120083528521260599332675177481907672006268193439441798298823293532518816318762512703372449024831778241864276775731611384405259394945110579529184184059642572725604377997162432780218821792955106564151793447411610206920386638637463475420757797078690786501042478941868115698195191612726134332269216511242954370026530703406603712563894168182532401021063708771070246188997033830439781709480079204667715208691315048246075581440006174797803538074707626109026043109078300639501549821969091177471883278125233107459334979770565960543098056008690167466272005451264480674044228635907141025344946212750303911857208182433588314938866605296079092895976896515726760890844220967313543535874757980681715303563447901373418781417298981080110934624294812759601247259600236131256524341859026129814258828292215491149292004409681655361651300559315105663457521606285736748172805549592636603416603275993081553061998195480735232719972867471653960923433600297903655462260543902345622850188142648121198915911046215145244327081874663107796751488477807598706019042702083668913251419221706976027357915710721447047218737425626311997501000668791286759708266780493050228333411042297392849503246040043677126434414496320224826878166286872251801931327794348566483890733518713045918959317027271855080247930451807945034689199929697132957373132710739478246309065086946097472094621174822701326842577356836948333347401806565275076473779206365301571574025347350999366616706979270800968225077739983804075622393882051138481112724208621487136070497126596677416010817581981215356323058579074369578549920157649486709068428231670711370072236407244925819357175783352984550525366508982566417143206510070894608403225541210215763471741528682730781185147165116589694867787712775243987721977469095765324146639330982340709837936573942095681317172440433599068342564363686997606812189259776469078827044677278058114036677709040287982618185290070370426164577954588131147478230750884943548115476559394436651901894661014808436285662825219735731078067418065647279683004698453433963337315356916481375488442546330257061550189049460891045663387779178566572763876416582730589127535398864188541851191767825448272459449145281306260882975729689516711707958387993399848947985022647662338128290734835009839199945878071102016012752042532469894057084865869607664309264616893809487233697278101881246577342057978865242685608438635123104812250848719948953903906559120128317937996281956831870263226766000511005753686600774786117139379764835024865792221539753569743545219248255181316232000126606662954102283968156025477377934045543157777442315480727103764493354790813317040451927255130025670168422407677631555701321248427892996665092773336358938687402991420204559617574314432675309559623488703379581406601557675191822158257361747560830381517361527501002887743093686162484067273188525290422627552385504608335495079374380624004656933063017000866602255353091607001442409190807656690323685404997484378993798904136798801403991514644182161614099744297053544929379708900652217522037952604174760031064203310534215548064222449645510485313838271988652103776943376096534604268920274318050575655684135553624816263707324161548692381510014610382748887365367484692161356603220866183202049994707312273393472891026746489803314232138940896075499727546839468426912593297917065224463350730159309014773820843811924613516646189579362480515906130893918836095863718131143735682377401895794635860999270467679609451896643136904089557942252194167147623540541031681635939943324762808183214246576152158954907013008228623051954041412059211219634791951211008700494845646872871096681930238276928958509647374628716762419922562637491395907028705769770133486952353419049048509513575554637085812339730719262849943823751708416166213973138661831803866535728115956191957543963114185937310750798024855676275603961354171713853960727481608455416483811014880134023606775794810380220554916857296270187141518780153834507392535072058830900448305253383799997795613983504815469013848090245716902394723671699492580421375871449220129334325936662526067979380545425417744895797779690579572793783225122843466380573248096567108023391126818912766949824747768990315776194733147770642026624957998274543164640520847146057268336534834845287565478932296947315031508834317812490923413925132220602967285320155473012992972142111385929338267088470937900966970318637526205124002887605033409069854927180698338122609421018131700277228397013961387753470327770597113832646376061696301132832698418289003200480038714564036700650952995353452502642305644644667304972306282304074976477630148811551697677714085381393992845861284149703699067404462169722595922611425260407045331805260079752856625748740193059812531643490347837718093931434119512940986121959826639283135475763585286903948118680214546766251058896278525865408847656187380137200732002666192173289339246531430323790092351458551628466057379701751881334008571050796192188775102265021423586272506243137151484520229132730433004895297996368583854981305379591559111094210810351155686808525637121335380417629019114992005352251131386911976715087818475526444108381422730637112740908779591855968648977870771504005041870977644963677473921225123779060237984998029434610203834272983579709322502725448325308311012425466525613501686702479867235274753385797073395636010189575124751601345253797263569195097872039857777216462030764467589681313409297196485493425770294611085103505589228309462750550843926186356438474735226907147745106994896834563936961240761285229098806699910375579701355109100726903222938670466414960769770339425277543774903059599121998359835599217184108897955850328575879672203741376225651881008995350902779236966044881779570227968440886804869112486473511463508624710221279606335172044616622969272844036498685235965679242811055614366838847105738932622098159191109740556500910350964758688518113684834127015544791904557507240071714064051266495541057232609931012816529502877627205879778831729330919148004337540208302112752879396167794396226653717386399655661650183652445454631832722234521167870507878528873062163835484620787776674707013385150396196481187716451781885177200622966318366099713241293345137162927602571392021986147103009135741018852129183701748166568940365230089238170798684542601136688191237317580984915446210218409038982404519325748146880398406122726317115830784919355585070785612116502221854076847315880986356115259898368832748796876876476921828261590398266050254075888669303300642096564641545907150115248118176648307003076972904817534130456599126162416829560701656311492098821011565275613715460238915347921831567660255427095949035182972127413551356200696639154214665279047665439671975365088568560354613055684075782589362950699485739095733938725623111617577921860875825799974015104988495393644112396238844930779550436947941807067827067815436512367477751841807435135197277993577070316385053439000477888136227362267826961601752519081285477843571876937248953896475142024694685938284116593545102623513479629822271391064174507421377085528676698928774958769773410790968767310842340014767896463144001239026704088453922559287193330334728060654290353470141556121501965109337401210238241690835783826047695098810795943653597326877626114757626538888880970081316604891886689206760574487751714110110196424395406060940614295255788581628317008442948152351212279342694608102478826009972481736357186514879705166606305852563148981858356269420162664769335358813793615934474951510340429985423985600545888569995609283843631197840147855632361275829786614151572437350345428395595893961978611102050965484959875363622220865572256767668540935141240312078151373420059141335515507023734634188883611996226007229385746597450724653743611405086334953543203745104380638146647857186837663574611985373896858961323850018212200763144357820269331329220700789144976299066065719892497276708030406960963840319147354060784128400135447111905213441920166747546349683796432548541761340341535724904734242305107724747042281078070086108170446171566888411903922963046255772401552229525612381493675440312132307719389833396945933771534615605642871784796954747548295415850414843869098356381204541488989324917405211809828503316754680946202271918094580469490458608391459361052740756807419020257248048142890112481885681672033002103515787146231161858592843487910307702307294932180553289876130412139082164693687747989509441648453522405372396417445516171476054263497341113395929993727630052608252439253900754899700926138615947112555877215117808644172291993370798782708813475386694632357245644407043169181336683944998782626549638423988082932080957386109998018258509655354348893706602789323354320410445140049159609574892808027901620661671667711088149213735065585770118153191900329603418866201184218814853352283349256108416982454300951801001920288084265560623875938314990651694319452741405065112902419284783046897921697487769019550300935660846895797727086540771429469997571322436586095543027881850854864343736720887857483066664470800997770613830886975743256480816457288427437644967520505252262177272951577274713845965745748808260854550515584827339752103208228355977339003601285920307812608099778534479049456361846928367003970992129002260758805380059138513011877033282899227080175938491113121622802857521892486665450381032304103558784440291743233437650808670352136735230101052064341936760411341498421268510922326982260820802718250299827430666410596214930699229745383792336561254792891711018483933819250023438229329641455179295416106388172403688477223843887611067782313977747569243225515594931588960389549291604914579410173666642441774159689773238231453677252937622564665257324998914510999741606625213036949359737375507181176242591614924049171443247433055717234977032300998195115192520450495623465198495210790691424428086777332803045929235569598946156656202734963436917325288974465737467988499329526669413412602003508055960198131203320915440043226968967317507174013371072046492679173804923198919249037616279699765894203813407028042177657941156363267953269432243137167936929269050663025283757011849092775326247073318263854527121865861517086067126362613892679870968028244698707263714751859275033558108807210212145586362075762749759970185213136176860325610196391886806977564994262550142783970176604230318137116050265216519391327322635544267265679053661193087836340962026664017635680383687003402116674288878652165948913807923156201887697223398917369204527643346397238324831519683113995014965156619368648479804455474591936022496230947866553827605888117374115109173519584550337791420160343261911188606678178382955219297137068487294341774153813507885895063645998800815868823699930119771491621963990596499267304189961883487201473959774935018111619362386032228185029008613375932007222030470773417280966023823841621428240032545268789011975300932578553036439823695406463425330184139496703903393742636423095407739714036089686130626989437668193278960162661049854476244638032824972763990911400220879181840829457962466639496100170307293597853463142381210219108338440935935848819776782937389467723398014414584318027832765693724780955269275375731830113339686464560839242597435158412872083246139916163141039554690920441484416734822229362817124426872928206091212539117836324610306143495946754872963565714527643330173926694492651284917141203303643861854475604943631841911130188793751108312148113533241587049785181434217943474351274849146136202393752861117308833695333711819388991151758779421026828867517289430581415081615469374026338551689537327709756042453112367297386348551009421453870750828500480787867563087971817211777219329801648121966460899805524004682703024080020368749250277097486915661098452995940962753057165719658531570465870044451139524659904935848920079622215532604884990158525567643896366211137659809521183049539403989575696357742526557236100954274241464936354813758756213710948671759533570238652718112370087570684161943764860373555342222378715098691716542214579136995404635862467334203627983326039354711472899197670690776133655593116735198538382518083755616910410777974098140318274293063234247366305828495023069910164000688869503475116248122198096617015862192273484594478590835098402894068281779453511460805372612331037740306430587785182794322994222153664919424750573545345221775511361797418388019209702677576558389725253955273919662903894320901388570870407924052154107178978769493172345595035532739986006963179315867300635817477375817981843273667879466664964089125509664587750049889391302959735787975480238396982072207170570013761851190989628256031351564843692036211855176272889970062340511562539536707349337000964653041936434112370614234898491928061282452678636058353314540120822647932521583976439113569588149771358593697708129482038463711986232755271875339531930008113774823656421298213694778016846274131771561484427102422466774850492812578527595890725899741280101570979587277578213911400061431166474836332168354097963756675833809631472883609563063114324748768129855795976954600971957801618735715914909508770248773664993905758992702289335681306016730815379652042463508261105681404964405067134766176291923947118868370137561041320561796240203560040223947264649779304160800051993566681774902524329617029823067798734930696929378489927335147226170713700501436841067660379774956110417459226408974896193339270652584999588657190492179998021054346689009616547723552039241347116657275067250224781432198687531529474131986221902988498613896577569769986169243163120923841775556254657008018735577660774598374484708162617417922216297077064507511081862737222633573048242496880784809334602266900205706882393708799057659056825871758433694842735280127441953964060380008291382190924321176231253210844067947458633374525386857119324931624283438097325513794324617728255121081458789174285967407457055512498967730056127169002215863361799679133548653889987389319580859563794844634068157223217290240660829651064431304766288561270885885029630786428620412054474073124161159643015486131806798760295999036098258812851942248493746920650467382939416540559696253840841483356114288311427378737165173871531086788851308870232770094632645448991332159630640031517264596947909472679689234687971842530356288786818487102791401882425892113012466892195103376658529602632446518167060014633336950652549375649020000858262617887624164862436264367085874848620826952907530958655020834623985528691769393710197775846725611005014009598399472577654855340806068260400525103250206298198766948075691689860967334941593323942349036833855673231448082272835814374658065358780336075432775726943520981966699621954549520978405952703512510733174366845350751232240584843814799405277163889041764295994476237966080884414969370261929875404293160405689859697194003836655313362415354906343049660056922964969965250038255484661470638433052640580271075242441935839359773484319536999399746092499513157701218895078090503597473720047340618038931120679995288540779099732303551161503863705578458985531492478048453096932530092454418382047074726219955484843884034493131531811284201308983141111785988882436151730029208850070796648327008502455837360713692726974015023245132307822788223162608490549244011005267458715621840815771591542263512312625460197082808366530201670881248280644931695968828811181715343902407813915553391319757260676468764701490425038966394743988551176727678463410214691284585338402242560879206520352467204933824946507672907460700784416891225464048134354292870702112148793394079871620895287345181722636857825800693191999628305983968766164102958968561734482187056440621448730571403435223824690299834783909672481863533694326127093496955297068856315315345914175413416612618446807298755589808315932511204113686881268869605483619981687587142266092026053928633630183266048927136170081414145696197467718668775969176494507440999999461034531896329204538840418984919650391188636231724850793827401188038351739531497831696347201022284656743954000981039877962082762903061115276158544288119638337084371784415103479576676233508447946413359317671248603330541050713066848050254672953338425180334415370303088818796921330721294262333258238436800375684335868898755552869289490165729420276698567971566575471398078812436912672572197169765867179851782155170048514841778640369889304950287537797983533566357887918917901754085242495943321408355708520449678183852786357656161282056850022605934820712212923918449677270196650258297830018955532481948324105490690825772289116811525666025778457590420187732350492824623155291467377184330388927726320427155763821107506693798516754510565729488801593717737062632805470734408051886378011739071369960661191795591644873797612013737163347294492840218707657257245685332804964740948224067473012823510518139404752138448315146696296354317381544828966313578355416917111463225650368064982421485657972083308205707933660371798012823492213484904679408310487104534204808764379219884796819992306668329265440834270193427989422805342758396962799379162357750698374586550992081079410422635483945625284555171330524240141008349089110285280877481758503878659881738918828837972023182446515347049657656395667277258182750264135519609270429042857506242896288660182517456999461029730867396594139743540668998975019260499131424068352245012102719825208277325490880448617524588768487177953772218796514799911782391330875511477518318588428819969292894940291910700303790447361745722274765029978260941942698104182246172049434349804452566817098447240418685831223091371544854796044713438420861339839104557426252024080918120271769585556429740517814329819952864804395100631283492687224975192000133827101948965105355074182302574299209710430359473507587684684453792585015414311573424630218186255186058829281408485652796507845635487407458470153305346141333995004477283088356301664758020710456462414911260004004640570464296251061120845096649205824412795755488299700135009707144199684573468341385495064249631347776498100688353020566446205998763540842608739510807310386829795078920882705558367583082995723100723109276117138360568273432457927414799699792466394996195581000866848691911820929846243117869867485798466193360688763208629529870991425557904347920006651063946599815557308063408127690241499550180303538982880295090905482725130975970451348894071108428653034150934922194972904605771939351894017145285788578737069423673265391462813219042039432496005288766637686340110234701341061359341588422480717775197052100706036209943340981870920843248186064079057657736104573991461529676376338236666852288004164549349654871401777840659737068858791902024680114941659407364256511393008140871239795638773131995202695580824615864043217809849715871947005836693932594576333083445518009772103614037352395302972160594983013618786212680309833734643578015195283134374928167328116058607222627848758910061473683798875151975939114720722338435405907062217715720458443801065279066568095523347893728228762418489720077066206682869879646633015964937966970183801168637035433029271979988578218486221409620442991908460832418761069091656107775763836265363254499360778780955126547246846780237891837288213908669463781039694286449283792515614091850378929608504329883131450677793634010006107982153946197789860160304970822519556369581612264365235112441648000172397181501827964994705180914496726916623483020879181463656109230809034744211112966587471429992325805670698636852837206138902284322787394760466127237441957474209190417027355167114639937331374494008202520551188414705271691686954006539192697558810811676035287101332169444716505894379043992826673638053120973368471456029599284012283920608177510504106983467235814856398382423195732603452586470718339318625283337740893217380741519559594001867325222727398786120472691032502789109566383905890536887958852166987252767407849437562234450455782191313424490922961022833637105869418216876506845380155242140205485707467249433685767270495087890608066611417293855989924572434685575435775951336336892392384010995276330904177386995407088311836806689854797755465984282251899744350044702401404013987926461158314537068314115978339729268662464316465715340775434553089512449861428820490995978767846144935451812187802985510708843561443353611179842694634936663693801266424055102651939298288065545994037294321485238433676691085659336759862376934551392759096916205775179084049552856281421415365712264888905842726008692624417567056983623215717579334841660515239341249712912334063576249439973278644347462328792999451517100336805624178478874142215928249291254171102459297301577830963717338031507654169614642479433060699379163562636982804863341926232063058400437982404355373685672698252688440097962677292018117202089354570590753769067049239217335105575982054757364561192395879020631097132749945361654284495579997706362265540142667252072401914623706189917241547743914772380860732293771649596474054005780365365802498638133289598335575050391702905846973483246085413594316805157520495313343476546568003323255832570028024125578500995923269162244175195401003911978005168527106917808818305559842275392647695988494690972640434777523392076577851748221267276529828044755932751212172164680535692308102612153252757074742979200467427882071063807150508075568283994255868970081317010859588100289546849059836436736425639273483052768385596372371266548476489623087321668920462612829628212900843149510717024754206001656343141006427063010141033578922175506309286649723713267198863675224762774193539166554107508127732458956690881211810138688141330313804278160871740519485826160907276604392053856745441728778088583429990505855277884877434616570568909166899708345670177384017323803264759354723684361748626257290477876676779915089028891966366392158069512428367144992900986458816290587595288121721032898231482707240425411929089156282630384872469894113062440207474774630609635381957337836816901845397650630602180352287742890100574339983336469113525706690023752181547773059765979231984484352362932501530051787872215296332932157754140838527724862047174155022994394581755163753269456779281610113187739769150916269428462919586261794986781617062691629782123862925619207713793912416839083567686278218763717098715732856889964135908831769582788752718700508629956262992490006963932871374432523980968021519554531512496074037296897403438953010159308009344518031900953171336345119446617676423454456532433934689683931431209769267609757301464629424390769506074087341034278368223401120159925325862801270791687930058379092085197634643652655950317898781052792124725709638900145560137200762314498567563073480906945350280087807402439768715636547617978803017562263106324381031222059373716420429300363157493687898274450845057324967783136407499939263707320321643902695872016659254696527535072211199011055813555988080600163624878681047489297983723195937352774242344763617483732880002936318364260551796566563310804121207449621514535619207437647603027667208086651727072696170971715642648979769534455021327311136111267570520078810306406022799751224891991381735777824411794726362708892191939758520907647384181840853738230186397753407033899612445793096135409643800388955048160290834137315041119849984949596164257290126174647272309566707178866973963087945838937267216155323929912425593093720696004366075237921500372066131087867763502853168444018057378850803751977391692660399573039672196984553835922754194578960250256032827225688502890964917003190331786514423132590294764340085620366799058276961092084840854890535292465962862726625387666347466811398354425117459588495827649990093552423805976243245821107866139842493688786852912546100433844036002372850974616352696149810217901718078778492332255411533877728515656991868236777173187776095808750215868384151124836410201874746123231417727259688628292422521110764092785607854492100395189844404883941929743329290514110844101731641296086188963618749140827290367527569598899732269172037428668240939153839209682673985765948162210365725047935078564624826178332243313748216030742928228015834157372068537257510922688122095625068223691988997696147251610784453036295190455562938100881204248269888557073830058654570776451165787529041338681259178609312091939640537502947847384065049063704145434593027139814628720560505151652765414463394623112671481171777201791788552255376652301430671193582977794418377244610823174680915126893393523814185506591465849270898879659661072187946937381061647799906912858636975693987039670086064462283440868649810562786777427045344627164945463322616684061964035030968418987319859920033342610277620794649621455740248051498186206848036915251926603482157720692918667979547573595636363741896242956515181782112338159969298668595101558173979692279828544815832112307841328806530668061703078294255256423157534111336052679404122984154162388077627078656072757189323756200420463369126929021919265925902877759307428089785289739419706131678774854892716420116537053841281307352920077815039614261727883532994155986762946828725243814219939927042451733274478213091707953721295683177500753568361179589371393253349552536165699068547682270022345635234758259189220597058735586180664429704265857433290860832674303683240743157855831443364888840282043855547027943695936241440550173918968808647988934808892094527996537189956451738428793447942020687275988288967142831691954360550387350607302122358897320992496475393765306483542267412200320299026769763486831162756597825970764472953327573008536489656765605379604903813077910731473163271126482402859306580703435197047711575642176108304726537104573255932291278860812655137547480024887396687552096841834440193472288746340878982882910013119358214659184328081651292568319625953874065087418461689436585986231089399454740442663398923395303579955342264253701093564190031179867856113291686007883368639034114423287243321196618362462603940448331743811307990495916890074615618481421388659952230103599925859265861130262867213571020490775768085865696073491301547927942887383529447253080136354933834438197540242907842001252082953087159710124730951357027387967168273006543201991326661469803579343996503643053974563133186128861212052593731957041628054770320474983060183787699436499144836927570680363124725044925596886751696223145194996685650495500065678136267451535879544101162231047392834109037118718772596322740732298768479645708233853512709671933964961415012896240261874698300777777231173628521972756867908722635588117796559802117557455164285884435515108293308417689808806896937487430486118506605587119678389590908491008150198948267753498691288296918365817786673732807260767094744390709459001285674747042231735007980211588620856037087184411170222642831459423032616397929662696331865739467113159659406273887256322413270389595609670223049916896885493284797998310648808738542323576582275775131432516094323212953437056178526544912928362202766058628609085485994808788358591916901969623883591931847428637542103171442324724410345485263273757471292468041589623174612386941409687091387828881978772191717311898420419294850476949275766817985932732600622399409646567939882530144722444980425609608061877006328165217261580703252527859529397019285827346322396382058903723664950522125844266985403821702519160081528001841724906317334378952880876793297255790891833682533273245046943756114936598770899131880097267348199667852702521620220862806794660111115999473680383969036831276078138779097264274954970948423745515669194497071291794989170729042311383795810427976748358356118157747241094967202873340570969737697056489631449419508717133185309448671220745862052134860385547239543817609933111079695638159234325208965486929556386066411720601415289896209758420087900595711773089713683842022265212644008500315207009475738388730507219673185372572790225763490562804287478447738084169020299817239007729524042942953651010873116231381858760515705706114369447521478978903786609300391055522196906572351638113804818809922321778511441294145800526425074397754425805635932673231283701860260652078026019027623157873478545169217670058713335262893234965373660261745150932085885954772068835704224542542738862576179743639454278556729138962758725414773288344228340370165426813905362628625979355259204062844300085266149379972226577134582907450450886822994235362439199094320854059906717503235139243576773058797448023507533656171909235083984107859845438308075475400842514930366407278107913227173541057174558936701022807985255528219296517705556700333036909904169809601342551898197277152587545555081391395909363328214799235388731255848476595231051226309630109565002944407096318419793082991233748656581575170515349062210837526462414172510886074273074742627568154528635954796016223728647476143099018862295334887572826668558883733016789020080347523198074251770155622295762192540399428711515060244796467021509068868012651939456000380754605903018166488910657811124940151048710640739629025439002095780998571775583012123230555203332631893216135032872000915137939239104681056521090363332760743869596000275830387682555059673248905060692872599515884170991753221974248698805291861836237051701624402051376438432599232148126842755029202840802678879764126493177310720448460044804426162776656268446479647600480347976009616010083997757937165783836032646649463394507156555775655346565114139894409674749877477915501488299747906697529084628125595405393387669764228702018694517728415756594500819955503858821282410857654008873683584302223312129355290454929820139013087071385585730546972226971444458082623644605929058680368160557217385134147219650601579701807749379657675263847600142974104286840265092920393392174811510401560961083272590987629823589006805693557270358034832850898710872984628470623054423672604910665278328334265150566459561942731676796129658662911352978553342381055360469366262026424059465546833987156739894482001113033335702447034152784031027324527206479552957771793203326156789262602257446993284610330205423942127412430150094626764669212263669344948663492274214180106009812689562781699311051325205454794900814488920057359677598084210820307921801730040202043180203692679934764886484651337471979203638248386885383713578960658073345497518308297107156376607135731653650010500272820953957661228625689156228613765431731500400585435948755866789799894055983689469379779412132120241977020410698992492776823059060443683928649693628091728585137022632321987358633118269983325271455563043366454222366974624137688987116624435491433357616953132535651059028607909802875447957925192489075119504660528045805328945904177948764535474047977375868670569074604631833821240643352021586923489223234939081512040781792406633168994617372394423944260141072266303458179122536073587857301777807836999463547269198763927853346874145995775567716224365200284194693199059600554556298047455456813746854964154381815765548675198540386372715925411908479290194362553518861145008213512033193750436000315594973137912591667153308183591965946024575415258073781688708958798476565663694228145659833633336790988563553118384057805858655110426716851146564933801146276241712364732064505771247292692498583678720682180021685392227132289496143036294274407014141952415197116487388676106115868765742611215460306368361005312980560988507057759463169232933983846946962644152975734853704909827183919368798447842925413429734518817473492176919200515701552937962287205158076369488239574817171423184381467130611687176893247348621861022698331442919352429858720430134826902262261450612604632689583465212368422509855210269171488141202269639515130967061921761349396882847239958345756197748154118637975798368318612716201577120018362877673499652099499778272895415364131631275551660629864120454479220053055036471655163689165207923274503316494135011814418488781810294172719146920255650584598030409422053813572399256143238962292810332011353553531632328989921160175256916999716811323123011163871762521225871301877654871663674791561771880545870589761418894253616019632536368458375057273955370344482052110559489520475888266434135138498035722047921829295681553268415273121591592323515457369239446687049517502648601272044920227041312793139716996312108916729150596953450785340790717072244284171342222935707811382887094484925959865669356285297121868607020257371481374725646571652115177703376440596638254888544681400050844107396632601043761346754342834377602733203048199932903071716605330984491756126161828711399353850242702722917219929697696501695940029172021080296434181965210991557932874224947545076129388145725010686131167955180716841381950814942484643150153796357499809105092442438534680511953694000453615490262197488311201352059208378197366026512835085155837735722886467857243747259671842725997204599677718346309180492883248294020399565484413424679808763566843480764652896025222904442026254120066381781288771406503463115011050443941415615639098318401602812631109163534094109638424161867663919940407155214970847692354066331189270963158079715942090116844323066029808103976945820273168718345410987852229030323539233805486916933281968930320547792910707175804362465770586163858607828392485147584078619095890124170993047360850764834275748286166829284145539789735421343509515672593146037064034067998919527466091728079269920192441168355609225054229376493960394968898023758013144541901567440714215349997615431303866389515575674437457546488370500937935548594215032794264792662304081116344025167805943605384716763183463510600213527120590609147416004595530119813840538917172493179337550067299185245826378089451873606072478407897842510999891955882755404097420021790580681872530642172668660696806118869770633722404205491445625804514655070597320371027245956103137532956278160839095756264741001005389118011635709470809006010480062458626211090939410085030193629534592107642339884721074728338541682401923567556424984924067791286245504224574510604495616410389649890790504578907559559497344530982239433070560585352083380904834326252883607426750199761506251797814162267122003878818701939877143148652773828182738618015623252969111103420707764848377197987177638177230671809266275305039276151215247504076942387218045273922873207234276219186687963125898439792211662467195819714738283868080814405704406876240160442689795524033697641747104276964224098579463902234958295044156402578730557079622299979373819346547773808506000594025482732451900684588504985021767388671858784020797966522182051756449183222925243578004793636675927547103846360934635663139415003280946045326257867809618575594999401891424250312343318263003959279364079070593151198119863797903851824717165190343023361794558332904928435308406306975462853188823223047784380884661436709158614025292007768416057902457986061839147997560224851430917037582919404234490735154585030221024198147702722750184788273627930297445108531353496655450739127964142898710488877577040948114995436659937950228091870280084991796633913804063671492496487175384808941700690755156051409205490458061454451542158869279115792602171182477125182959621651405669715257422031754708189140699772306931187457424011785570182923321634797072913303189106641502744510517265326601693779521269302125508398001472512340516743441733855798962075813852542194967111814603385269292489646406568773362466314434210445198513038154292502995109115809259136130098203696070920371873436282402589929478495040520139565771234765935776332808198534301762585796178353984106945134880519511222484354777611096209313224558420344116606128297345719555724023282451769128033254693624699354796552714128781660041938230042229756540580853730079061078579291784858242977950395033673036938235614929544058356256932954138534590149749682190763220769423711780618428388642109459006125300550945315138097168697176871947450329163215963930528815618817420271409714126389715855934398900859319968500549753141480104409650018332494790661891153478417757954175959116142591613017103370229072767929441942159338589272253418091016782798409303316987083570080812803901020646642849843341971329458243014787316160910344664139183352639418745786374793051013451100900096104862217470416376314320971684584513167686057303894505250191338624804717973210882604680871167566818696100639346922013071683774569720761382753339999072084247118796164774199546318179047245891700253773082948197602319578902209171064576005030269072688799009388804062262884436836676696439288776715423339858907519520417711774739544759280743186419443503477769742187811285737209991984722083259332632204270347500945028965216118971560932218974408754009346924119991738978448062891533679558730588043558357260000396101395117036884427358580757481279784853227450033729974322799178214942294166364384235074450392586639101374911529602875581904717916721225765847364743808882286625348218934787335340759419349078316751068991864079211024405151655608927027702452719458939455237556760058534478708606827951534159638755846215320230199629244774608711859665021019631789284328995813177419397246297135527444921390420478058723050682414657707542012906752888756171620071065381614767297855269703974536886056077806168175341380146873760782872442670265770397581389805940192431986440556954522872440688279940497408436201153627462853616080409950953022204765046855904098736686835118628615286263325071832754907171854356922971449886790313025515111105566140552580686204028540446543380431729197855514057408893976464542943300930125578205548871371211165772187517944491601741121510840287534966812510295372325165439609316278153239786000589241132014828651846330854958051512461614156471717643201500037074784505875922435596067800311991897621626848633916166092288608135396883242249282880991694741816836452471926044933094350757335226068431606272013956600966263174615802158374275143885771968456840673377594571413718176165000687253027728487450849675195794112845579495847894691917581966240155908972292997985751614870775223362204982639800221894046061247343176280534941697014577908871424671978629002288830430465811626112374786125033132133608753855733077586878216272857282793040317434275047072723710663234618223027224080444994330287336432177297181507754157285519988181447259553916298038144457112599117170352711513869283922608687876506899701224396192553804075216283013967251656128726980970205854224327553785792602903553223553270333909735076810590496428879626412365173391227823350095671504483430717099331901064347081420535258014592255549672303735485683852200550728385051795196268629270214327291524917289461867546279474016825539878634995208007769601256089193096537332882963615860967534082521445277185579024314738753464560653691725160219832470731457198873040470388046260718278466202883769670273544102494042638553162412833294551529133506531702842281090287071850588709889400449380536677549703719309672569337872159893480682848737554916211643278949351695299852453987218738182915986285480603847663613558573229108821376941206962585779132963191772386032318840828022701128589333886069500852449513548713960836979975930567780997844721258245825652069420775651814734709606718477562521581475148282955738224891905392185312288295921197373261348241487121832817725451015559542469512368597378947302188354473431683357154012331761529313291914508102303292152112549733981042875124888828778153322070086240266015765579808910743884394280708122891750390768441604977162838645615457582176068378908476871731759933401384536448753252264489698109827666289087779124370302853066135369116618772667144017531097233735971849227013884015063410389837096369416975225377638949444944875964261890089910256406148093964805913267556030416185180086900578422052212642117717668481227266865647222393895129366977994985724464713794631373577139664059362695491299975029683526325303136619253335891161024811721538639813417207431593090630683614052270130482125483463589008329835516314720266062178650774220855135904904379947866359452037864739094798816274862182506127559394013483444312118889571086352384814675694470133084622977946520592578226524794863176132129942372278738249675179876800278472561595780218846863249817851244292577659622337534256619637993815432938550428112585462462753964958626076841080909610526457007574085160331690993794188677782482415998797582866876382860437965249843421628778718197432196848700750815690076124598447244350534336438631022217384966309006883107435403427241451850886113241810044587328942087143478495050779879565904877259502416172884745049478185419138881696139445056199036807973570435071153716132504202635097711609467580822873572020400618463685300500475819773009980654321984714633184468678319625216185377817798973199825367839848958449700042976659493994700581705564742834430586936798999430008101842511111673904718962702077548388641892296188075097432807416962194981050225747351208401985959062288881769038649818209775462101344392079101567152988960120090014553976568344975809655885178815683238433534685981620134220784904744612681381589566630805427047390468422572405931581210963883801575523581654567373737373553761507878994242183594398656972901766684614403037067480570541551666052695794334917712902026535910630392643773492262733201512692646622625064882197507854020357973284149282665893265556756689945498438385994642152522667547079236713152843269385747702183848163486173026774187229807574942202534864834662887072158330483339918241730341301462640947169934966538724153197481729604261259704849498408990464660551146378404606018528314941740431533024302689581295235784325392532716454456482881258963984935742011692483529255039925727199835889330504453402345170349803729274206941127184752975885727876763397781278452419573230828600094773740410679660763429325935692478590826279967591352835165171888853011893454036744478631729661705905888116376393052984732765584740210537449991037130539315897806492617608355095965242188765573776164115561476893702783068489726460225798949841935350710018650180111954655857176371102991458973557781135417857813020470667243860070126401482483206218577518077607310983759838128087379192193304627794541393436634972440837430648151914295159846025636842876935677941107121765576901142859212990688713996279425394690280728924053372797824239659301340838038132319270014572729130807031162174320623083194541820014257063749464943095784081627281704916561255316903299648573589348009498378799678172961303868382317584289188779972854892201286109533493492616296155762857905054139318145731882116721307144656490550182098432502863075978620254613301558428936329772728560227777561880889133222698421936143309708045122684305189433326689091941324869680378498298011615451189447153414104943474861954397811925155264738738601507588761191020123400078672240320054144096901607325636347867101470890626543099831797683031554489487880021839150875075842778089109142022214456643378842276416045405027330918728922175552044224316366630079196864653735173018059873283067627210385391870905519630957409648079094920579971517132719321640912740064568910432399544361030733153849212671468232983515613187461310716856962304717150088945782596552960094175407169619175481721885193291589816672893862348752969770325004052961102193661551196338598741860442876561761006918895394901333791719707791544264041267030142206750804405599021253423558249975906713173580221845494679816926824049477370907986174738880570085536963470312761280461898926055277795488616735290532510542408950242910600150172811876476399173421531414744397370429560541841891431810866196265430159597516262669924564786192478713263005220556065064008022750666696264002648062418987909166920184445034657705841099782564813463615901495061998169507109136985527020420166987308138655720927313493600794253996435711232927840477564199816734911835174358787169197693489121306067207960309239566372011896180022699971484733995174688167627171082478692597648581020574964138735607017002582392414421444006726915231850066254533764304508831327165534052217102275721268011744165339223696482530313307694426781569052484483347103052203282675136633572029390752732640731916182856808508065104676106229337440972530185277120993068306659249107430824119760117162530281113515452079645303942829054138057334731914174340174135389926112360270439807096630713716899661308691628659932725983211349816029617363509634370638724551550898806531219682190911080125185390754039805417051072926026264403280455282250727939908535001511349072076521242077932653557062071686313282529456087068124169400596318869889742096582642783321663008123892188185434530666946092044468700950992655485591182891296060324918705134557752334825697109751889905722720232265157061040157830750282038056670918050884211760731926463890425905515184012486425837604163730693051655419629538609159284549773365829835761499880689812091323617717785395584914410537216377775504263289126685246375519513156909570313708387016914187280000260642661849859548379551316090985778506644979740942649576663726887746472685325396287262434406102390361715134545708561623747856861218513181543673297187745403176326969722092405758649963184800479099790255830617467770281880683530178904832472245453686015220630250170026101049182968035651609229131363679042073426197797671731987792885860655348942697089263591139101757459346088288037090244253704759027041282480292958306827774347996031585699296467806173112621761714908314399994153292775252900827626799507503995429561918926238006488096062194032810329689599705124182955818976907764374668257917444334446416084221857976179758509159536717361007125346522644814481546817093476613676888975396432468899135838609191850473842814675714567980438549146160438969746445807719650768803887564537607799477814487423986325862972408257455307567147555397323267857617737723489882489072283248445331719293896949072446316132701536618606167583755905641635449324887624123939086901345035187454819088120922095639956511418073306172364166635248896766920774553249005067457065374052042370977946596757215413277431213644231171983760628669912218779703813935287525615729502646257823086259801253245737108988900431655897750570565547155663356727651366274109373921923930675769479264422464854246395157964722406909926376988365277305397396738986758985903176648331831915750138271524307024363046768499830904757873641374957597025688093422838076248090726839164711521709732169042305898130477032472251943625712270080625880150838686769234235220020541347040766562295739798836258244266598559829694353989629587967582740337651039431064257475073242321091267514292307756454717155258931041301807107818161271102476836802975450075102079593763362949905264163278241587649144942657805053630516443538053597608567201145965132944729265848374300782547525586268581001753395814764207818622738662999803588891836672413212740594842636639410744066459875011920419372914475344034463052912749214212627203994655095143896325091213961070771068481819920393947223570364079950094064767169413145382509442971472935869775108082902477651932423230362426669039748661254273806679661407112964047081217419647065618104277930459465665844562249497586977788090916132750418502694828586882752376117529780138696119344158940590012307973932006252887959531373883507782106949084311544633134742102935200518294209176150954740914013639715125430140862965428737822842340191344913960004360179649582892524487518518213080810973051527618353056477910881598180152555528474598527259207181351416461084712889322610004865965099450740533936154364186710296639197277830973949083947644157056629337807238420863282359790576290173935467242859818560121792594812899790702632759025430229544128541798465092680468740354465532252548960992981428498602283477266757828991705645485437762473512282130188533645316455788200890755589459394082245853858413906022684545177078423467617693481978964081102269950152929454197102043511479679953116088834716699650066594293070688872065682717961245122213737408176201764057710175491943467141364639635556547439233601152026020656708490671929596395572633119001000360776821910946973461583444732298636016917304815959020571408181057283200367929005226107702991864583101176682807327050286721365355184956563699430194878823758310877744608976165206261375235427134210952139652656031339792128894041022203011443635445230738785210027485900724028429922183092575641865579319849095395943274269449534839961219522508220080246257420213213935414209722349331284641421968649080962850155394103946378862046446601374920271921874310787790909642194810148486917854493252056556345498002948381290113984996135823024872418147177695342870392540317539665340697726516703705275642632290186567641155503489445593176053126534493381283964342756604932345429399535610297057762482855019647698284023030982770405654840893451402656056806914892433439443382881174508430454832094759840925212624443940838432908363953117097376169182452407619939230336032032626893849208681688618867318228362540844144132005506800739828962065430958507399449623704631082762457714758581665239872648257692404062996718714016722507334250540015554133084831067497863679790157883264055449236329439226577639911232922388925252157266618010293952515051858245892815519793048233952463206094902370019284640648536484834680554208033063794325739110358531439601864275359947803191023275356249535120995326513416169505307597469091727599133834894167494055112540847679906427882441620386472289754175953673447928464916795388237898761608648111095128707937072358066432730317683777693087712840807280084614725108392287957896960309797821472928480196994002808209952226090841931394428778886807668927887378461793795452406668327647639285083226889453808743095596381031281986895814681578296776179433850923852999611244966648122292114348948845814324986984523345052260693787423237266729384296309092202774482703444192597905828547471037110339048168724384426656807750850838152687615109234741772991993099040571065566338489071220081688517947306244586108106951823217013213247492704307945704532216092824273663769649046772989686649336811577577977856402567729618301128161355737153557184050497839806088189257416727796578297112889113585260709496540170724828170989069956543280756911537216308792951592541997390052470087790577109204184937656690555579075841812403678469546152410400054532349414902706888024223336142042124580073415136013730210749933750560227994827221802550695825218443917627624686902850015865363315842809168723386084648270203461679295410614920194463427297809013179412490531285615390469412896916198249733208825268724367414439984892420987120737957339331694649803629729054817539801221338570048130427023374882474444645717214445216447003425677626000305160627007670385932477520318350789728389376971881856813475503056829636337091496735644541909195465120258864599855098213719297822409335421302053721254095682299379915207872015113547875421745259545563130579419200761284076017956193923351635400111417189286777245396089920190914760071183607123610009526968984613275455966543234847057837602101497507823675509916757972014510982257986956493851569079909592744861639771268400640299367414375980561495971205329293489319999312639168825652453471027309564833791086823530075339699687467142887045283268733329466611812874661412031613875090190896807958890795959159555809394701244239969737677187888442060201473396570940134186226841605815416895668645584689665364058150925173446645258391709323318450894577162555338649074464924859735443495493529083201312702283247097009538796776957621678688140057679507909181417371255715969682966697965776091403279600737233061910175638122838716537534128973208537306534545487032845700223100406378082425609272606467230062913396546169405036124580429040072737766354534412137387802198724760035904316497167505341103640687583691218943439695428748594898081948194004106086677711059998070906306050463183344196358836760524175196475467590099174905869552186701054406019100195967536713071709193118014697438397898049696738826165656840444386584455863957809292972850698419034023867118802037100673850180889682995752216287549968817012022354736595177448985766690983237522685021427614257892006482604324299104841233767268369849014728915922834876623258777620419552274707248116855291110581098961774026159300483720070536734895973267347285145985054541065125074305308665948448018830065273919488021750119142774314795097537490338387990195575997373721631831854609976944165240466982128116861322574489519578485337609842333988358360648349165146420821128824518639452751278059663129773056395517066786933571099055405668013611749953661809742285468513524655234039501651770281492135136780944906910340547309437164054577074833090533315025000962610544015241884845499246202690139472726073170522672710424298825337744289971130511469587688238466399009564712828533883903987900906458844469970487068528624612495204543595236837682650490807736981765564052411723404445381418293902855764664738718659760643841532972751894408420108145311053785898345086436756922286309393972734345103655464385174879235785130036834339359827200215730611387754328083105418623467026949547090747686312809053404548302803705444455948522203252595587591297583824788358285319280028709260244147948141023203262982153881334599006836064417662623910865701706436156020400936775114229837441452965458802453228654296365762244207388896599869209275254248042397619310641359866666334054875761173457779067134389209147981541121782218570529472605591990777725537979563306989839224619031068667928208914934678360472924250723616049220434565648582906662362829997602428045527471739974157147263357734933095956458126103301411852893488538761326602619183091343478658807741979945331495615032368143824028905333469678155309776141237144941634969968602531491220130943622363409020529967782280151234123104506700361525071392024606554264329594104377051370750201814996068951563134415914590498210774698280646736726203250387651813371460119522983638636523150316762664212536198725706650862905780585555995326930346970047407925431031745920217403111732587918741817843594706067032989894987670786654736528100794930859490176860489385264915022318172107649945100976030115837292112491941620910030427117454102157646351545064408868345709185646506723052470890291793403006509742774637352462895338106011396638422070872057465018359020258978129724521456068922576381491127354690391519803053724871210472623622269794770586308023763241830756906376062796833260176260445359577169943486966783395100688724242172139316953652729333879822549502839309955038681825826228591724725855813269005143017984906041137880650073919845867312075452280951839625746488925948376029303678035705369226118736832462707742439041441770739051032395816402530775858993781198323579759654303307130329269376127029706135898917920479246691974789105722494393672763309075217863529865506050196687228055957251659010205918080888104384551892188731755861405289637450835975213083481116469636181141257462763583720597335790046721416912106942009113568140439521227907395669962342997641159603360489085042385904124596109854140915794559559575663983551188978950657665321980941412863958448861566590534305178209744805543770534730030799704099631976970351247382147119086769298595551105694245765723657914212249561242309980013676803095214134773611832255589307833425355464913877131401501355318629852501729761364843085794963852144586144063146407367259955324361596932157811000317199092419827793709592828781981602027543858310121661048238492046103722111581516195431819874617665472362957883013859217635418073799969252526127234724447887273502960352360893683508791746957539112054146974435032241861613876332315914258825753308279831674031758399286284114388261958244085443636564018831833371352185752788732160895542334882487995947475678861846042397859038656079165688042008065308194813352204967692745061968571221475199139790785555503958888092717486975046234420801261121639160616805161357160899128218692818371352111692762660630629066884578888296171281386085758795991500797459763130207061133704026594576777755409465232214972294907577160146263060014970694682462021430442033502900696393833278423995653168432888797314911006763010556711578565375224163511093011185932464197765952843443318368479999454707960568981514399397040625274869780544128287367828229004603860270155317680421148150612080861341798866387478162183858610799281145988892072049674798565800287131305266481549347216948018687540930232284019442957242271945416727267703040453350807229178609731458014213698067246133362874445594593145788987763515963671536270457194334123477249968610797018429772495331250484419960032631903255479894746481915188807928554585359024952548067287556153235845524289412090299529931589420980547114611630881280840814139760379493652748958595921212226836565100900353173871416367957247277425121981914235861183884720759340982141586616709574783995736593812297890331678196634173242966130904184939957944985292444122848069645095879471548896817785892179960804403086709195590233247881875510507409016799103432984182098195882746179543524133369288853927098746342207404205564570056705483846231898124637292835499106598790534847698517060842805924318840448858762265287672518469362209712429053951317001297647842628501691632107253957507111714260226594683289893576652230748884311930132954518095414643178097139195629063354231796006849258029727852334639508597827136047459736095631380031317734340066852749264675726654928265928089946232354172755594337924796304172627363894366304009893715802588295077999608907032465680743785177300172683167617350794465899448290008435855464788542770731701119008756226878860438864956429069823397932157965123193769360664095634676486074368488434701771744684621473911611494556998077743581303531095892779138879490455415831499252797309344412840735142855289978823916922929567860697404448859326272232685606898645842630606663587967484457202722527566913944714378168690636634462083054632713573630137652953818322544340492174528319474823257058943174410554422528477419479457875640747409317969586361120891270313084129812235963728747616807761328909399783232537576338349035059719434728009945378373081578033774492467957135073665671575612405161740347732443324079554716908194099323255326464398507485584259873768968457604796975987149713811441125254228625596896351676713963927527895578171042758635954740550405612364761378537920512136774555273852369364939767799526456798856018485078326791459489944862391485568904653105289387229364791033154859935790492185227070271383419164564883461746802381027888946955731703832848580745855245382049559579193135111252914709880300609436383646707986985740936945532031868611014039819914691292694970236913960754391992161761841686442953654081240513391180697938245237595371177939035239759993775094905741987661995930269004566243405426825802489088799568898642463359854848206016423319315096819631583169719204321254416206044805985407612025183820477917442397667609612128448759150581243066948595453420723870208603704152595036903749908181530390285937803137983682317892095987743870846464622626176837277859611536768130592004033018657639281651031062769029391044746311504629388279129776026321688359424894417451712153867682798361977160057365083773781048359441661026083375547021650788345204765727104570954173502474702999072706671795397765965759814443261624815478917618021210689370728003069575132144644363345825321580324339098999348937790730755579623208918357342960032163372605714422150810649268370009912821564756660095485455903644586480295548421650722231586789545897589705823922390737799844261728851329899244782688549861903964698409596308291585237502194268087894057543275641282990320493627100525738439442243851099090447712637140636426072476016503883946864753636587808559596455663768539115822616172155855101118349160160560180859309289547081987398069552464749498363825412880784545790075706630492452836199808487100392317934293714136335170403469058373604743519318673881305541046230804455269700667004041476922537854914042947878278444470752758567522264987675930256390223216439730262471674061437312414514690834917697705876951531882437713493110059281770156490501320024480401879577149165518281026859509359442328151443156908834484908671934432764530248137510309367216239124005430150602275925479870478685787012229291299278964436971470135759545673125383539128562660848944407384209207724490486202913881153984499621324293172995418113781452005567551906339000993524332844187295531874073125650429651337309781359417199108721654060059083173475743169354195464260372574189496122049090912800307255386341545531360644098645301589157063171423846560812208031744818711510141362394842018331333416080362190501389822599259266380159735536045490936949105142637162181665001767005077648914694876365407425284195425212057351813484103989027265628995189478657125685188445142398620813926466452163821436851753239597916341436253199573753382866258491523526316767328440731283099985766676899065782143794606796016764197061937757903226072544651220930370058019527203832858915051954842032776222023651661632911097068455342186410092068232342432398671032383430868016509217121544297048438779210792107805421035967610521804754378144223878568636044651947526856850211776032919160951471799209382456716264867525904955728341461265323412204388789629218441747353638699341897191261573328685581095192966849288425081925334188445277325805812056899527528643271362878396392898180469329999024269765493642108547820859735319755901130499985582651518339618355912563994108434814041981107104371549046210384045850909032483302385478777458951610806719531905596743695778562596281827486813953218515306431427214697312609132253293031975486957457827314230303216625893981875451396622857291248989239185732415746540774158620652681693310284302905853726663588310354084757730018407315023861538384577823983188182961043042742876060955448955432343858170169803566942738292833228660968705725450225298896267186750709637790006654254525450558773077820187208088401286195062466379211513883025243152040632725474452561735402858302152079759199479373383073402143425725948417184956586848457421758494601501002730232962598980361062977428711696587184762281301332094128498164049175014292815480538162867772284547373052485295761028536125897125453015873540771485918705406268116157065252411023223303152333889610715948193530063243792836834189665666889332963522079668514241211108433841855689509905256390974308848488847645972206527946333808448502599838202606032734348207870540212193695407201491116008144720610631347565078391754612923205364741724900851288067263754122228087381892668071334985385044854345692460162941345288633726422945765178240640779060971247900136198951400170277506413484385306435433375835359275292355759125997283270921794761530715169790042542696798437006048112905913800627342313629054936391635433720134180230287642327714078678307273138152590394532215083738335900507352132834661816583957324499493329832142548655876059778087615119565188171458742664952061911986078282430041774001053338325837652966139105742718178760974119583258870986371053694356236549214758235889920464584152048905259048384569899164899972749810058374058768324710220627053143002622171012101030518238862676242378454369894016945048124364625837599480230298682841984610283012463635337090059514846241020748297120428425726891662081592848807716328894770626395683690879952440195715683548998426146951933180259309276301774661982320482085228849919703540759064417231969526155232903492069920604011025838605448660847155332892402057045378704197552147420313653334237237534871373443369871138755290770353418720981144256034765190387591515109548198580646127412571025544752738152035295231583683616424704756856811822880170164501204610560125605883969497216764411275835669794998128751863802360656929941306618558536574834191075028915674462409993645244124212189530796479031139765702536850028207120266158535554135541713015503865409905013711444203254439374547212975561621775109145348712360795169915323974195044512813395602949648545137375339539691077785572364414195104205856430844961633525551345116898088202020036173471404108337350153203037718916000573894316338097800028972257445609458365489806425055511962977565900708623741344647222542449447135189352401637629736145782434808870569450029096837528509823424956556255315593178597933070506166689685739125772985384493275695160989935602899896516144487973278379048365613123137341026389184406998301056899023706816481141500694506899666636077054136370599752026521022376977906101335037436312488880384782223342828901010715732656383899096126244004637984830095729498805451871924688797000636350334297059107238934296284449486654064398135897364053671515287355427023024634277943050388110979849699134546905877664356815243387934822250149150749154717493846951888372768456834168558347423445304488456648829376900114571678224211544934742910442704454938926680070820963631150197819487989616360637947734321105789248596158201304004328623307996555380568934055762877985605524783163162824902215739390260618456118993081635238063799114143998080362928805108374883520262144600202593420982834967076211844837509479729078226839079430217774072585827653876044346675704608779039636980513323652451701346499897455510479377907564119533694339017745391308300659285546481194940272948050236775695517852381188829384341581040664542421162948535141998641309160118419072163951971994962469922307322372286161293732579352512699025315504639541875796007534139672776723450588218671720250376776002683887655761573808775325026087281273681765566584577476274102136409631241160615027308082278253046717689582779026131776684842915485163541418861818101372632202273630910744678518552179918450907331062460374216558253318953033660061803627015656193171880078941218356218452341582853108596629446533896054733954812195019356167488508821344251578983592962485320972087885810336363484728807006369071510654441527049560846563342157869290202942668856329827897891543986008634785728632298559948793084752943893936875516677347997873410401579741599202493478460950116469824985791700881636620775259226662635275871168020301921373812696077818072775214399766746952678021155448493097846851104486172070945235132603354446353472203972067688361901590295405960991856393951372674446788695416745827490856054976043978296068472527473883667220408403725492975332488039430491065938457611679831111723596678773099554913512938682912985920872460989122902997104051375921744830334176304061510746794740027386257304109208988674584045108054187655938693584621149947297220295892444424921387339945960139482373869394421378320788176298592558032560361285234335977880111779119105469445098019103655213569568177828914420885865797675446739777281839564607522862784682191356540917741453161833155056923699259562748626509133984900840058311893708091611009584176629937856510338316699868165679144588792105015631136095628015992972119804479983364784821667529905336073653831483082616160985450416385502848418281202674919717049467186894572889763127956387629536425001049004630556500639759330198041065512425213707532907463210750526659657099055906115983904228083563397992842393821776888337694114142760428605639043157481732319576777745134389974866339702997651678529455897435509518024884814458123773169170159385299543896816148294367098817405294955649144282149609637251026834622139736267397793525274428485634691139570084616757199556509530952777355429967214378671597472089102007231976371456680417863578374199555331514491775547262661269104674386892223971593927505516821313026771031129010274052541385690346730246142649233600387093678484722799236270991182755587326842947113540256271221672129462120754607873179769188510453131365670226022460536491478460000258992177871227971065345767637873632251228411659829382728295778509715217791161855976121994612221350660336699674253279069413899736621512777927986547930856748251580513341592434461768972217347318782315096184326925860632263356485978676604381327653017995234216271863987793286310721908731548772404999548965307846528802865504525058954407759891686298768723996665335840186425310323979526789360230116218884686644352458820922194866724491699775723325581054777033961720313463062832831661696475778181027307658423092801170693728590623528943946705200955030702367688947440691561277069904694787323924059114395131582628884815865213364067197005978216634094373794168759601913858179233638258420716740739467700649780374832567265013236354318917283109199393755752994452190087862972504133488367539297827746261082661612919059724600689924478587980250925728276381524700655451858035439746295751902262615372534288355058553445847976429139739105921578806591723297889757987408936317651736596161719062114394147065523333563365029871242741702735479302142806316351353149572360377684667588759325884625865978586457955831121953692889534307177650081126459194696234304491837988039442061139421145623242947413083369159420796686793918554363003104935893158576642296859221230232506365786739036504773350024125064842693273492631346455209263120472485225432399114944498704548039543031245795607261759253359365547053741803233532080532775832931241529046499202914353078002015392827205039303644250963681073951945047624708146844237256066459751298372543241177772693669586587800552489834336086848247577747059184199719377801868061019610636290762191714890230188153921519620986547258841896144476097070693621838154993951859094654869084617618363146587460820636805296685611671316765132241116873997450080680835003023244533666062802760076689775497331076687234194224334619861260698974356254418471217661361062017836076783323890107883773500252240100388977006600418563879795786544492127314054918613622734709792206726002852844276368498207018939398954613019534685782342760475251031593850705816919644155213927413534024863190689233196719417299996524827602315248536596743555342048883933949298700708997738642094850418793510993830708032878576227323967959280697157217679081561059525878927010614064375777286469687892676659141596558141616704720434390090528204740950032294101060186259856617289082440979572971840651988213997529382115546762528463526938414743344273933464898504841619586968032021261538791365293147742861116439328200991947842674359310501633051922101259644741315181481130724176953969857179962111394332598875477343272329765457134629531137562457373514716407480827829888248558054568091778689886797171494254005422290819100298236226262356690584434340834556950997302878907257250735190075469530228998942607365884318666045214469214955549513086941744189771558039136291557271455647610651150202555673188112690918924230199656220093496579350901592582336838342888753464697489653154591119649788755526482836139937481734652307751452520898841314912981970202083565374718189153786705512334246541113012485376989238323319470435733092694281449037386710970951014464673016416474484160507998949019483559150412660458330451340099953670882282519419029904547246756432146294686561120428722796719775930772976634347023733704138150715294291184815498470278734072594689872050728392630320221998411488621258137488569887221433199339242968390316100245320051538800904849851819653521262750204149091250083786283483175830293988961500427634825732265176717034521860887954049555350370700062140718084224608437280799624572635478920142107140063945884452378815808785271189103278285419178245671316749029431361707717972817509752345869772425932914143230162055283525940806426735860395321564800656531996440536637107654267397617419892096289265039187631244627739459105239393214198510629585489948091629900266650212023194088155157369361446206230376126612233779202809633491800003805091338588440571180682943896813693309859508399029511953035623458541196642002776439500963631507892486685182517215139085633528128593912638571404121044421902447000341731293338354266254654135238843280522655537547689272847332890728965571876207705227253467131632398109244133579283605810273446357963130725225999315632686256841769489164463773824064874874310463744039713926198636829551358741694917820763401440301410343633309426749031032182380037682968256062157568909333327324812105045611220514890390539216001941853731208258671253397919413431120789701604837297590134395525386159221138538436428971675883261307926647664457679406815337903453991237521019628833175648084593266951659137466385551204641025079833927540816443745108125677835057740495535776781617608600345531041299690304843230631201049254159423994285128113621316235537485471529796105304841109856597412124274990650519074794288391927074329453819015349504941758260676333905181547154501060596766547905002090740333090381277271414186681935189560369763410937134898402282550918158640569465611312037357295970588627189020673151989417836040656035274772727436227319668291663295995265208217178016853253554878178488658200859774926259309930600551012322025619055779090980759374424768888027122130304027421710771952624582985414521965152940139052658506004627873773890652707374858080020133950650165266443259978502221028060661128771593569840564031078798423825775503162738653218089264475232612244911225699029692421600637481080520393227929765468359045603534621898994216933404867258121046059024590607990518283309972765281427177747262725949061230296719299541271094990923303700884908361056293202905483030719350667253871266009320491569666523129433607356993528096161966404786442445368744747392414433477998781938019323924827690313142662160768512656142285042055968055964743468576034375264836019767870945517623356487236956730209590762412490632378642936480531598333711272132553383657514167571154636409510387615630782547752397297506109145846762255267147667643184219427595749458699174077368613310350735932391751940849530716282110992788926249230852274323534221753201496085633644131051827960105493873585565898094696478065648146705070606928361846365643638253135816295984713537699731193980475877077711681742210256187926985062140711032903933419748054762890984317825961390347363574296830404092709837109371927524872659306505119780758167325838277032871872143359160329394407940618280819231931027201323407513206304740426167558996514016916058843848523372321515541896890954275420364305692090686866815787988462901288810995712071024914293127217728982318024155269684038887014126974681814945742791324650459228821305493419455661364618480734907096267994851476074816874861222755171024908315757123375169819328555322991528961069952591038210465716859824573152538160327331014278605258697668210699822356832661870796904572012050427779285550184396548291134508287640871033352323001736231764540171896561952998313677570219880902761834156696345964616318563130449425390705111255714853752308552618240136212524074175517866715888913145906863130484546393002029238551191479554476226272703450274208354775326778733251598633208033197606573371527617931947234133552779568865145367442204433121530002564986776931354010855696913785982760159537987276734639594433087007365483502220968302432588161909499901789382096153172784102146084375064718171038740463211955714817834180062051327924746777736993463293367513396302814866185010717698806894064041722865564889145137415530413798707505841475425915354856339965901944578423307846977350062945707734424129870862991155642325369707943446534043223684387853074715856790436553139266258779039105872029079012351414135857527130497091784299917028621434122147060367453632449351461983362028047825012501321532249153404851383972256250482455509916385434869293530120416584668822454277375143507253762108410516876286284143605390523189503420119391760269001290259245244732418344147488302412113868501602920808655932887311778281787098846811681129981591632697526717864891489078152697166571018594634413338611040934754464615487246737900065569936298506027893211766392031047543710052444706606175902388359961468029422652968781129023577255603693170793246704548329769226804228887569197047245523434530995636409580757916857536901351048038708996077659244416862999128012121591018449085647127574967521206571998159258889872176859748569108967646151863260817339698540025256334058983230403768936922022728572961586444034641497870513730738571474738514415156142956794869573608925454331291335861824893460990701417194092245496855711022320722051505599075185833724565686513265498022873181723176434534760036483608536799436164833065639594679230849073325254877299314967388798435186577136423893966830027083367132268557569489728391002585017872664738414936118597719554563566540207734942832871268733431288327354728752547044407702699377990048911701477993169635587537714228795281856250171753867205538121944270336396955806867293338645540905709679383677706496028914533020189148125359124841919871804094791499716046170513382762960696434638500389579164721079306500680171289149420730053252883204404934237491929727519975409344759034453140073300348274808574892071769562844313467360803671040844222450968867756240675363920348667719158869309420947846718183688402158501876447603823289143548533434514840057678696215138953229502785312993653774350526176723276317032380465985351001629633139477551041303636869428570203755662095519911324821491465325453943002322630607498607056117907801011640969534198023871362581157372778702531979557145231807845630877233640868088715725057506577728192843009434598530331033918097605665808190748392246024147731218932955714073529314919117169496176516079955865295265759950786446289459883547445924815645610110973836883529768658685543515765976229921821172188964299307271701058144235629441735882146919743510814061278657695052901445956557807342702294312864172328849564448096786428563102510324705387290371570603720731226568059560336273497005851176442205744339464886780575651576295619646233953110097771824965373681799887491188101429788053328042289622870304490214850397111034211085647523244034678447364511649981834575814317431469787347797997096662689480420882394336131261576965948962619140306978397751928079818799096661146261818370248517793634887095938159342014777828944437236142666721767306071234518470115267664718749973405469329762351542723794743905400108028423026873144598293514169933562324810216569340314613029125268507988068705839860083237508842368862451115149629555127223724231288044112480747395377649630174495911799948938698899171319714783883624682081500406651407544369445509634113886636048969951891077611918372800843083688382877747079356764702473482045182088291255134779412050921708818961363321922842337476360443093392796486282139941936856489324973257184127709588773852416004983111596935725889559932138401124134228371340848473690865361861791327312687863543025815309320036155951341715081034245047599391467305296377791061726637579497860471917556990010614885797870381087379380275764945496079963003827319485365675435099958408425133745009751048046578456818770741494507308800096011721161672797091894185705170827208836149219678115408752636595228203124355414073909281049971054048787989391275359985590775238375611759869574303086516019338703128590232340175165795900176741297618042262496881608158656912578282442537784561998150603426773351647503521063279107507286575284885029499965294331523604598988645919117403571590601084389005019636504978969734850253369114283960656763747854159097756312171755661984839977141022233331589953904708431594114612061947103531134649092465279479046692644900457646324191130959761115511803937618630642737622435272356359629081130235091952708795154166819620331112984156458854277884006074609961934449138087079187498309595055758198186156203689852431260068094299044397558934106728344144592149265927984015285764574660865846761228859609971722978117697168144643359878026558749592493051451949804835327680973660818815536329229784707546434733184588263889035425084142038388982069143144709754689036067233003605048289805807193567264259873216275917197476099023222554738871731076733124318952674197164874394859887949593571934420821749910644114582557034576349830456387743295828873286215480018493789217998450604157110122209355645784386213133824583056083774406541901109613570141128736051949639342612411827588013815439670219796703369919617462148896820988337343628654319078390978954568606804747499815876852558521485158275546793404281077577122699044899983433558225157681730497264477528138433922699271735773869305656983818476010588839966740757912276873954468059306759227051570383011554594015163094263426237446196948196976869335939816411012616385372192033655286865060780278944350334797416945160242274739202393682999510797942999755652815321366981698574406985324148896415368543940852204170879258074486607242810345592329647050126702475220784937367683267512283148798811508351976194362840907236388124572669057865757717848712766525796329741443947598892919379950314538766811068975436576003521169733179501319448124116970966959341312940310897576513669909241604810320609163164850830278190740420432844301885467369958774535237386965889143870332694945625397251049468412261046717407546259751543507791028788684473263897090366180947159308452806145537667157603574138306568811178699966976776147537024736476819960797998598382137802742868743148504383066113069721759830661247432142816404076694274893066471883940647723891999768558657539764391379100146853684050865345820891104174243394732166775413164170082240629201789888162944963489477047475258028461654811582664200369428917802490744761061410892206148164074387638705640191068851633579892393985574425128525398018588310486378912857507455901688575910934197489409690513502255071889118656074883202824941476624484554773114415434300656968369254539619135910391229342546045460007381306506176829295831639360189361697140092449570881898550559956282902016041613299687836698509971427765971995451972531217763864792521365021080131043189589949311276959683364551245192185487404671623539070788383288476989910808731565516243826918211194617618973418424919864382049824042257210685624694131915893126151184470127122514687051513223219618202713246024427265289725843936612977081390290786371969387345302284950036092018183471829888161907918098971252357323622190578875216427932747062665840940992609217483425295771974300704672462044067693099152424379812423757841908141448177565516068108124741087285795634052735129339825938157047242967003276103082896794383897432216777986106568928241459676323801393501799580651714004637799039545187408354117985623184148878952194088391556600460698641556225054595113503618328720131631490531115081088347678477145886248562060818702425716313604547534115834250451922417997577379857445675382816632091244181766185242590022489529918662355723454476566840400295132690416173637206099913544303267366904157962864657233820839721849889080829773852239633074600823845045573950661629340839217177821327295303561921253583974579502625465592492814951230270909800190180591937116612696247625615090230876697398317131456934362076868137518209326599210738346424438126820702166576589380402869080547291521410257102696043191031569128411272444666687260751159038079273340172839907605428994045358223866339381450588532312002693755135800619193120390501288378500625009245444094664965811410351546643072668406888043735359559274564189683124385351620646754993374251076279282525479507841531443987666577846425404748123767178049091920597689318308872989804394537958843298966087096733929412162170350806782089910989542198908077519750129956040694047689701995301847040208236612951629414092422200864696400673969912513896739155304496206673131248090616760529426994719808946452524558629149772534765276202689117710998576912119136616535814121885448323571346559699428867534331161539081201208998680747647198819861151676487905617311077592746400961527518161927582426076042145736468151474364898737592474814909872479540698149567906293019664670556239824175938776761929855314323931358970173889171219633602273165585594234501102785294670041603421510760939890826995642340844434746511044597827367363457320135495799613176218487056311743820076336964148600074623846000538244794558934465496678513849526963719533701885582250278287546781816094076601852546622301951511286629133377818382530478065404880863680793745850720646109838800704918080135570385001356629430951655317328539678461308066569081874327617567897304799385168640708836341237312230548063466217547906455666439675037457013698745801244512101584152325498522194266536690101120906896124704708377008731268381234262139319440072874800799023205393070341020172229420096232923802442077127515828702408671407925100888217173048791375461906422772552758954220018398578272676381124504473959237295028440257555549182658758431198137546091340632806174187894910287180325981012347490318784659552513048318506378710016720382514291835645477153630584699948415055251976200450112370183351065760127949807202013617194068011752494743217066799913719267893206610281253488720148481556993150119687752815354579134807173074830301244531934482097295694237735587420953844953623823418293846358657071237450964713930947926955583303142394186878008897337340739330416268749403285867602619269131480498285788745770583445151555266810688806664188672788469701197735364414066519199370544088692107005692536533377981714895331387505647837904733452058942233377573832909840498758458691781449880299966086676396471752583183824031065895725415115693705527593076216309569999147562180312504972711936561315330701747163026130977552132850054330087950283716643679891556601847814720574292395430394141932411950975845363219486453377444394442561549641090444629694664041973945108025965201419401056442934291262249391117313892987649243530548762798110164316415874760656311946744786257260404779823281412107073413965202727066852937538238391449963141509087125782585296412958945052649233891016335154496020953927025087814821396052514158555502144525505450530647759867463572214999568205977686361101646183279357575628502986264776018067623519256207758923838487194001710520548528988089736512648533872695489387325340059332692655665243127701065870949349086220625151706472427610388498521621892402876843375657483223211036880982839714438579275566422676723015069737675698618685935655767631375434289501745091206134845430617532022646172832816890716119166572320830809002102619166339577641839953472874260528295421140465951491255401447816621342311788146746585019866390388903907008099850511367629952791172432407761089993796768105852643557525426577974484735880482836490285854470937337543916258178558922119478320648730070591953104334351793150649796958655757268413573164970887108881901331973453308144354571446582392202873028591029566173000290682079754398077861235944397247675778807066518667560081155239784600403901415830989714054391001279386863725679247327114199612062472545711446746553773169939036513402550680002495413288108386674666995734449672064311179768454725166490932656518820004474599747789759016169636471999453348203956856169563747387839408296379764570567333081344227627534776140207544418959897372265981001910341958180726305914284412986072669546033305235704626804639775963434251768900931730494430440208544792986721754193996781348201238053222279329472467850395428711065824374725028564027657270048370901921696804353177411799252371126658580932517484426340131695303668839203136071606486014395611196600558820398920127354050312724514693689478765987400659043601995007690656971590631611337187900424301363498806157910023330966192645570199749631991599115596911395286712361681395896930419751004801511341574774495023354333427944918568272432389509432020606234927279687195976807717979045289563363329803086854143422148946635156060390559277762240255014927828995493110055966300669969116522184771169852327706525270622226225881901426473755772478044311265364423987590969748677219545936689030239875815870686298587333857885720276480852078628344227993678402817059577955460233159844121178556205939314206388451208199801718847554417567345931145278389072676097742285994062303283096083582224150447842280086822179550764832016505037445145504020726326659703393166539499411205211124908840555666245871423649815404322186111298079561245615898314033408403420480851778157529613445198389178133621579876868351151345068394121735530742508031066071003037223963120283108417574680996065351892335521409149520292411641588460828362340241038513396686116965789590980402831308243866705806633316649961663737281012961549759123659448068679974434292459421197596513526939283153399341934879688683561506422842913958775919025352649657095264770477983821606074862486330148429265266195004439778875536947198909112325697152904573531361778319282635075978943511353954116457816381121552186109618136734744647693400320943995791730648552336060487808937606959044667087228812275133972098607568774661176033781882115529742064394680310844500293136069008148601543164133037205119210987112878027788797442340666795779199432477854954929083853088134346222837780955879498804328854419141267560500455375020536400993167536906767798863959828229453469479365044626485978602413936400973958249249828068253093975890650201856779467043767827116830956640313233606101135042685222294447161386004130230311493243012300437141290895400260988646634662656435756272853823647072523274690139675768821576120434826860046123868478809154211672391721872239237129668498781496921450618808235188779375022219932988667600260381858346202063575937199605241993813234793955758874742334707197316105316868379498982560811421104425736799192843420819515499266967577997323895122226264703354224650762422651484882292742053020417513032279530874229860073950976880905738000730563714177956536608561639242425564243201592992570360873952938001522295026565269716855722256184477686024810327682960232481386109781365645918481230720316065920256876837048361074512209481470641142986754058021289742945106272850404398104219886661524058475528960759438855685440980189324429433033599334929956988814255492712463488377141762031025633440788529965592172502131942541594212709111221015943852261259841476941401652194233327475428387349065225014769740618087615418811419713605048805452867440445054557242544328252815466479408572868339825182806888556065314087628752661706210893168234497930085888193573802090980300787404560148845204059934769898914896155820031197905671207429844217598947855063015947778129839890875699868743750209335276945427289592779819207080537824918216403997275814003648900959979456338495974179924570637058175775854261124127467670884107385408319755350864275860058524104910531274724100719245046413455701551021361188556908535835077455564697340819861007684442648221564578366323186433307313414296579386731830113669568519513885520336714028568039000960593710729126253745589561008516401636273443482994455042731076349489807106302347536942839877059738168230469821153998241235503236617482938545619081608451119910028512163986226121449284064581991657732147129136053928898412249241664204952038292171113174237425240205377533884775052381378667929868938581378361246655095261182838151066817478119465422449603211903721300510254153669055363926552907482482556178927086411436696909544350305469144477544266380575234217907002244618319233512597896227445612525719650555933051251428023865790454248530178784819457739727081101486388083662873343228333357977111140595635236639590356496040734091552227731598665800980996418670069976356902953363658728663214430269115480265444946580169269821752543810673416872320257542785478086024358216395407826369213663887137178525967288859079912566633489564379291444950447540635000246219431645739594679465756919458631879747187001586761657298877808336496523539781891585042852415723567452595328535028559857408688407851838040720100122236617691245242454974467754969104230595190014805442347048425065947991457909010777558933880501204974670787440095050529396248150959928512788339204033892049332896280396199341488205070729598224789935665942038849524254309956025541435011940562888559813292498442678303822255735191432743315468549427922221886633160621787098196215368494942737643552766761654445789236349310481500973291726269072247565798626998376391919758745418335718587598439784403125030708860078307474667432380355658710254709824665993429663093011411365820714575803220660240244799586098375788202713393381438524031647179639278482634338995045537729989141308955630778144637226564395325795417845815845737372790656492304062586545466437822561762588145653025448687866039985086145091003108700569834482101091166855912743956883193309330143171316519158282864610880770706706059135747563070747477576864096780129690442047222408062135233576665643220247942537238940122164276274623602501266476493933247046157090286157236751659090544825255574831146589583951203857934097932821737771020657213161536676177377868569175618631411109031875473191736009410440203003554599180767371672292073498050964263265276481904296401819082764097973435291724428492006669668554137900198119099310405293649839303059320138061893816168786457760946717732935075171119122144763226161818476515393704307763859132739303207451698614430524509265187446977100596169366327323923652693328930528271549290468866665051248676954374602206793514998480163302974448565581994443726201454930049527423494959380386845211100489689458484210422401807106688227376284399265117347036053841856444057371782915587740172748771815854007768583383710539285783429567162006122531588658798229424871161743752760397141355420456069324921897942178025506899158399276422972751115346770105079043640370789206591233867956393277528198744726921351023483882322274289451560810079622236822479266509481829674293928179888485044370987120103034366634683531469216777917495603912094251199721251085482631059644344090661696774186725673031926476082656216836516887776102435689099562202374832631092981783108611680387874132526363645031690411821393361768486176369739918020962977265583841147439607087906801730756833931988743908569256156632659079697237966074421754764309298293185186490755326951556317734356633805999571752491420545353244096070461406853469160510678886758624467142577787407005314391614415912370519458762143039185103182786716533289285210697263511939023206083711512861419773279441354664041675661453981751484792480139158722627445777317236157368931762583442668935923555558629216771173067626479497709650526277481117706174175526378898682341245050055509124346163734840987539297223580377613786509329340934077415461194332139560353219702560103466646651484071154481845967298850849013518143919644251665095100173935368503980425793099983373218836515544470656739796334090576339763579066547683328409274819349657506567507180028405901049882914900472851508137730536085106873634736033714487281111639965195426067797336867167104806576420020025711778302623163534167869236342313348444026596597243907466704435811329905668324233868614731079071083702642831530718843440885414238180772081401706584264668915587667939133177453050683049005717010415878210544190234615290186044633543582651512433583639872699837092543358901423769782851123361817442433097953277084014324655204648087055637190641059906334231259892459240892591192271901137054451152787403511956661528891025725074683318387438326891360318695206977680987505626389804074848763512354022870953674081644951836990812424052597231125098789036145892885839934641822290301204796128969845351752512982837106167093596609022507567408885375142608285597889644019784625850091651175660732677890623808353125231819704601681295802740985402557196396160929792370226495682751964258388963077940587476834763317778992250338949855301934929857808566602075899224695470163332501990251539427665397623904400731760462797016079884164360010584126885203141385081937875152843371894398050964329567317439027990679740446913042344588606430849345577882735746449800012191715901603691125523875379472085797447093658106084391967172288896277926047458009575977356478417829904331260970444318341159951012437654994324485046332750578371499238670062426419276541320016167242724787493669643941154101987127956332008906780859290182106261538064702955788315928195937463554141903575747852570703895367802376918565729516671861030285466828339015062479118670056777882947776554741029462577091649277207046104840794080344480534303394884209143316559820206947887937495544388596150388499358451437168884820276914825497851621297890399028851370847764657705213285602738867559287129962139659912835024285981452979894466212256307474013231145808388243183478277071048447659703570890410382782660712485621342383134241273457612944649900909994051864997826711720497528554969085992741478734298256411413179563603425293728888348618050698242873138973488858412154072070748649531283804450468444785204391756658165304985149776879514921609003645468847528428434164526020617725434777944495061339979853888208536435656188972946110505025912824984597010987044336965266386673912414266082156495976401752634916362274722658664833850618575423302546613924844375713675729685912377873457154048515922724922212228741545368461289310115572405184328799518294113895958806047345644951316290357565582477920125035006034146496103055670181355125364754152456096183941624473659828323451679912073021297289082748561829007101221432945817785522298233890393005023447408378939510861733186468077228475704975678293802062442586791899562940213554583544247771496331796443764303672500452654749449978325270893372262829905251792868743407458184802989722797443584315180898005065894969334263797378734328618644013003618861811313982042999989912573678400983619327152518532710283805801159911287848046392902834061041254804192898513967547863109711863418331736542201558682567962876301654679596090256905887386075294901004744405995555098045347098264301460626195636417392399717242214573988502187318773484533547118784435181338121522087857230929702729727836359950179837651867091426717342930024341951494530066682407294991359108376548951411860757055362841527543534690775406910578082991603613201462610891030864246777453484240994781883158311249927614868408431872779556878632532009960336453152337610835207139788822148411908766678032861548743209431403080854893727749194028094001568453972566805944005890137689221541929917847611397200921035832612247348467866952662082922394813430312552574674963494412205704276404883523432844195093991346065614038031205248464954453910328730937849215933058308762607054002355240989567316698642291548138193046030768702567132966338147420216414501308721802132246344140701147619250977372939264783165915662420617290305069660249923810554574270103317393677685134913341933338833809844370017009594319782156614031380281268845075345423887383353731878103243493232214044291417479831856009191404060208816382427726838756334753943086076476888056117965783550123036937387604645994958038508399243275555710764162584675643691270744805081068526684424334094884699121459631357469030335689523092648523932920831177897159151404106026325070783925504823757296115022329002039157136215193742619971013979855332814072192322456371616728416888433366533837578394939874299921135468565248839121097399122515663171415780558986128282725876546400356402057436442929896067409006434299486068865314186087242812692622965786112666880838155531649871783465545757244100228514106744825019183617390763292426589271276568698834152069630639356460414170463175323378180689744756259448738307085773979031318527982876867424988888516852815629900916551566973861215430697638238576539184925989791828986667322661252055810940636320702324522550128539133629183300147910169324389547782813630333991863750839762139489678475681389095321299482627689917111276856471161575910692898382105238982964747766616115431771809979176561064040687513795275616190568209318235046893808598502825092854886908474504037268791947522435295222968236182211687083640746390454046912340568857184578635671036112113763392799745427962826577036936142516600916677208906780091028548751120432016135461247767180340679747576178009631667615950072040795044701738702853573136639994435327296435559828670586885689146322921987897899684823754619139900766375151683665358242514164039197602430566035472930619265344469705907868478465413011920661799953251470212882988453132042568318793958887244885524913991333963467820835118731729727898098548040624857159123097205237374856135969873370309495552875114859706432258948623694780375411767232909120031896062511934663564630549473721197355290023780357524972884096863181160289436073058611052258432378820224722803751239635977867796650748720293183954570831470809066158413891384120512119631151589366167896708755094094407842889616804656335625948517670551179516394862915935387352168297047946086806130896320843248580051099750176182668150286851535312343192835107458342718973193461010521098847800496036530100411633700524762027051722033434392858689540115252892245211844744969223288077202108410657950249028800902317415938211302301211320148498098078907036008232492781508110073365744686659894570732027075378734544874114851917301956499177061728826094406677416978351516441406691387353686594282899107835821853057694673317445632164886287468565853994916263961345435869035733365431520892863746972981685873611358018794495849496764410915688057938081441517526190001170718499959064980314217301884123223390089654411556901363124574213026289839025531352521572820322859162652615707348840222705701891978598010808767566479745376790636403134389590721380738238560368983659792243768023295310820038397929964286942530226166110127887314321768759448970286230949848610098583605300741113228817297630018376497477311188558788297226354326359690271716965668660595671121787964592116756219707600817464105539645734777231636396428773595820151091773444416575960782306294015925373134879554300760784971497630889262104811739240199559336746485306216621511310398681268403984303862167493711501177351416581401511126949740542911195887952921609540190683706862794538378755415131465471493661170145101591960913097777369169794930644078422714557119963526603023855365881480252282873333523227261967614103175474646131642299023787810276470728284674225113535378504943154359255078864844378665453924069401611444745040629873650543606750291273532090720307280365227216786637134189665448153466528027150912544827656534012244546269059297050716499748299904042158859764710949652203985176396522185080052976511965510155403691903318571308114433142626026394127462057676877262281090322976884709525528123087453064525549138003081978385569126109145387057173521902905841521569533298777486433449617158826891504113999791140030832806917389205797575615179160308561548717034560352560161949099639086988702240829927130834076592355490613598484492020743403926296433735631978597426775771708337838761849643110714217776349521045662518386322170520195426991886800805434006741456897302817726185678309589318028614343728437394187432250075078958996566945011590102858839379205062720702459425989994941157885428703241497168255349432456586247850246288628948152594511181224680478730632016684970009550414247560732409478220353581212182646401436785721092760374346614080031738672716189584383351445303482006070107142858669038555233793944210868880352836139032364162179055575608990700515857276001943939773083735319355926569477504027255552925839300298094162792121636278779272895931753214276772675856256121739314271694612475541099511557870968039614960081340848857424623192874185364489747533965950025835799288169807720361826848262922779882591288507820752781267319266105553865547514592854146727448623573214882736946204192019563713306328714665047824655381463242630191003975476754170065322011838322168394118110281243216112054313214025226318156270931702787845172444873832997392598412684703550384106730618117804842839576120669709021578196961053819883881923059602353174669482125707180590748892787841822611432583502591377716596258992889984947068578689986985053680573294406378357610242015266240714408912496949999765340743418486104826755337724238897320935545679583342696376988743284223774614167111366239563452688302457351272072686759851096033005636055184024292216644704160198314980457345538105261978008783398639661918531429959810050505813514944833808612427098774334735218561197177377564620446011421447826926531804774781949851096710617805805587961799255096281761347939177377778902857630311014584199470269858776737196792773503024770680765490315474088849526788488838476660780332927812393510131012353702966988735604845888281465401604046446321495617048434545482626318112533396950240262852087496806024832403348548746193529437458107260327845625806705509037380505632606088036671740460314547703418942360613013689636416552475687849512444491192942248633857545342594546846872329476742133679730276117383285129702679997925034808668734012000874979940672577351768588867584464351606854481349979713431858118931250265782091104514330215100194529711665636952536705126847211409440057130184869578317568385737241110345268389829147606833642603003344301864259525709417255055407924415250180112047903259869705987007712814064815073472851524724555319293759615804992443329831524633278804402916065211423484754965842430595317075759481975180927818295802648278861801475941567586305960150857361535813141152774078498390422192101426435585711346009578920184057927758563026366487242708179783855925734037118063910915284868831575819064910870023829142089196806189568913325560896257857736651378345242201461610133716354334801944222381966754034240581487082156456911962435712264736515244871334618158143264401372922083926506713801048164048070951485709495392888846518340111115637507661822981454902880132647299364775995611142069998583785301628484784864779666078626928455760407964035490976425622250004638418705993838369634157962738406411904747969803403461529699949886228444979027992091099743431399682240885852741527858041600215521497899408675791821712090783963112027041640684219098687619389929258816928776952036884046382566820857343464123258026125051213786571666084550689748733357141518229700627793657128586353137409888137073111528045530877260540005806856619815848616165387990528907455023717139487733392278382919653190081967553320361906860612359620141053993202218514541453839775172037425921094932723920507198844739576666945488614926680768768861671114196218185055573160106475658641114861111707878571948083027072074958130603591677381119067534656904714637145169160941843155701680168993935793678255773904089811276409857654213171047044065942095127946919234733222606333549625986110028716453336768752746109058415290076663523694696368582175933420524296688088167246390551748541375027174844369497185940817877448722953149955717383076426389537102871964300581046004653750048778372613859581147956514410608201296810443889100805306280025125015733979536250165570584200943506818822066706229039756504878490890500277909711020634182370166612229885423277625663126362482449808158568829902783899742935475085059439022789664757576347382728242138695464924065103261012202026123395428559677492657776997794327101127283166643577604793542050368517318806200892054522834704312217008352462550881819338537032972653800685340777235086986873138946413324943003456313008310702227035057538329122100312886569047633319337243605541370313436761664192421334610791265621033598775868021698942339643283057830158512758445170951266773196347670116474896789513385331954770971361591090621683821498881679658686084055436752926797394352503243670086520771045243689409883681619190754051118184722434564908511076361735413099290702347452377132058930706914017769243730861293597797023434760815910409480296906280204382317908875814942420413968074761468825095847309975031729802634134198132281504599969823753109825914388304592658015605846058286867057556012334076294623799441607777195891053758119607792691652380551354340759406465708434782365630639242604747211405303877951601714987871039605837199251949037306993021376004689605100683007216006295938766752310586399062248110585689820072722055920408907744164827004285649184508909723122519873417176066377684167326455664585742004773422847859715840827847648517640927921784258664891017373434102651830448845664696132552696648213191446714012613118397250993187700864216172018704713606747906714488929227670189013888797809843412923505204263317900248716531770843379244407489711150003338826029824888476331780753671469791294453411323356262894908372259223357547311825302636912651173077355235494547046230447702823145003803904958208840599860650379946355955036796103578902878052436129889154696714559841888553922498234825242770348826698748346007622433784578568667125599323631665743905083021604253348812881106173465724356777385973932055183045720672047891242682589723646317263913952363776033400497778257049292681846360655547110613476977542970138662687450783678918955530718980812585399886306288448700411040095590847401415629626171441451820382794516122513054348040893271615771354619932488567771751488614973685573665545203255181125787964351210249368526508663917340676080247374976105159896984561748367623107296796989127994898031150058520880688363060876196357794463689843066677760763725224851287758328078098154700709662741678948248034697039245913168952514378308001949184055673159867906447567659474908118279714386748468409610178510684972379264506060435894767951533241200607623509968675578048843230847321135755790743826868941680471826679106892209470050960041205903941516832513654525829463998592776995757165550221544508158454769907569031997858547632644266992737207193974085397260261773823237847045339771451633014092034163709715589371999331481690940041804048731446870541503979418222166017184778798185711216193339363140773350869024539408178872307668042358515836625288142147720019227992049721443873473755685031623816437316217630714528631519611841659665908036747629833455555882119947221174214855646183895839029738328939022402205725681187952644590425565676799766491981975629099994500746000974775926468079851780398381009628134864703010313417220371318257488249703245548848769251961225458845859708458386856172069199946774908960430865450767097373391645136943925273372452318081213869370789369677743289926774400421680355039626500685188594951140362832583035626408392292383486781425775238345209283440151322296363610515967004108008335999482462790182024906039368063111674424013126671450418447298956065158747464058982654569555569299146972186410921024879153060570075733245403438388045686887049183678350447683996153572472859239122187592247940489558904180599834734604309421832541810083155879478386776106354578746342113438375089642619273383550229467597316153779979775685331601474859630115153682984175092609506546494669478291599150265865578570728381514216057946394075786646315902394058795708498569916217227983099512821080645102802347219777236113484337217956315862133142405824834204705500175794354257082627427800542176969109221811388895006685053410939756390570975275478976742778945050647396078221485096825815419406075039828192019569486470245587763045882538018174443509439071511413972642521728408757117170708186627390076580365645967473399621715372094883533841590951108800867136846432297415776161697751950619281808793705623047095163157134499299579292470889319523193487222874573426636693511465386187909484380075399782638804780587491945762699080539950811851323742308372268748367181608736023550835194736432265991700045030044887250123924819787620359615872342177101349614692297670943517578955018172233938471318156431624830596557706691385341813376613082557482311698842484714159538622956375907255868480450677052296047265279241663336200363227879698530838231514251981823440252506363872122718969114093586143096495744129065065307071543467875673909185090760113912496376152888244430121896897317695189140380356442219325545611400773442301190553675263614410553934305383901689135918726988887362524508733888102116768283230014110043223450120613952514070618807908156722176682412790366445416562794869681976010532503445715534071220944227397390555164457348172108293583855615223268835880445137671041046138561113592373762042737159126463144154988782309698649165657593400220185286267671626311787298114819890035952946872329178185642832244262711108636585856810569488801457618623593059314468023952744577099372766098645313825546582794039603762943175717301026261290746838691525752089983054538421333180839368217429749088583528792038166161680225124755547434561635200306740124748865833877938402618885353392306819492833369346956099691844414600924113254900950858937812413413452428157697289184270861898185665296626637413100463222725326899258748566719192879501403313216442803790222982548026009275531336758398822125850243982908801650094425417337725781053101658573704946728312029322794901872536434344406078297220953693735069064596672607503112345067630796073896681959555512792882761627672755775417501315167311744789505640141449496778377204914411097109828270637671796372496558092087364759102402151669911883354873389285788319810537665083003324459923802907743744781320674091522210540517261133622365943558563423447486189745526780188953667540025721987964418590588882629363012211772475554559017051787269042302346791195223344246030404419314329181813576963195892982047748400774452095297313607030162005789005010014376768976232500261058981302761425405046777108359416795940953035792738641395522508434122573344764089492370152603530733535953931829574447216530384061820972368264039794159436803686331944138687788562979584396498674367082667255661843265365997292794650816349768522468943136581053425523253564639989965734385404752779512778393942697784999238681716159880920257985536242139928921369034866714401148965830340224758655408579104934606765039651100641278895454834495500765784144425962463114997789778945628841341942246679233820224649131299709556549528397501321789760723720494740243261355408784409309368288090175022405213134734482591648307803763154230770681604654826709036665423100514476141494464017599330664992814827490436663332829423262306449378277078291597665822586855555467195057504690694463725630034249964456672791037885868186214364119650778921915417598577034304932299281233856293219407982057310021776314068571904439711277657790737181646184673594031960746788869341660855087417877409336693861805230025992546424621769092248601004586341435984185217174878616393684648848645673005126733600193794876945068774214146553828386490397038831379689965375659203596843599619900657800066426620686887593286588941155142357286778104715142163227583720583888714652615156530968108563041771724071049754121461683133798696217895304979034571422948450980897610932470284350350936024764302617248686338988686805543162339808832094356481937132910794274363337775365865146627911776531178970815531318541481723434021791974037433180225995239261147791394585938244358240849470235625239592379723360795938935197734885911115401968395250379746648682194197380984383080807487588329394380090865170661308281990141677363433455544450277984414329525066370684113849173862908941713204076342479547349400866560973480929531743301510183109593547716293531894265128378789563613414518472074877883080406958147023146205670448225178583507628091041939793506994863395076220983923154401750528821992365521247476017005081173414217456696546844201210828056066118315311337831781671063954613925868755163848436695262369872242934284812151964466799102766492176145071931979903665617621299373798212201956926661037303003297514237720280326924067096423256407287168163661926236158951746697673232812524829628532197193144517581323651692399145279859299187590938641117015210494788739013454122917836349874790193309581427032423781327644943462597915993057755963252007115593451100647546657117584830940685554296538769384394451051848766452112595863518316986235039978532893075921563757946828185716819473384987188449553349487829791762475879547845015772973189825102597147129936414711533107034797664096290917991418112972011163554714377763025150532460616917555520454401188323401352082719588214550889341358638204773579589849278490422356372763742572572826326347318145386506040963910328060297634242294488217272082208993727667806862846953290539114578356155071314717409906031216252606747224284978326594304390270192998129787690773089041656227800612890975270191635105277703868510428201285689924081019901811073498607027195313683890721003275833883613619948752491075053475414004367669688512201158007065475092655528398204263153478704167538747545032709500940047899488617582225679306426462800814218150205734734294421524854996225085765513707065556157348290244083592581418603519585491731174129717340698418249693077825072264083698041444659182671464020969227022646329293518884621011759517283736910629303627066881957008076941805195960957360351848689730633754368380419498764047057500913103231781624767288984164434942418267650019670054056588566484349202431668185294357177956950271506939731805049523021631385877656091792492555420313706996309143697907380888130535758103443966912058111340460281803659531229422279841063217639149346744720443895244123223973983964582436939871278102499158763024716708786027926306629627911503658099729097769262975165124627128001020710917347673223481992970541723211396712997294429471905002831533920586061951961097657615102390781390555170868769114409331535931844664177845121373515772275528352867669489570391457249798530317674315150761944346793968839539276680333707766288678359646663006226537605366101439341323647535873507644480104516987514462669116195175494359440625389784877167266919777239690309013826181207131178889709966058107612750069638030338720772804073295200681563778208693846371162316033858058031832030038053412330548219424978760176170677521599311263570617346787336889584950021197322351474645496049328044238084323197844298980340733737210006521622092813912212683388545430402271490497841824712353841468211740496063522099165737216200787792562721812993128050107583803634895947152975772840995430578241836374603329523910207150462413748659095844816754421811688690398040298180292177276734604248108278174011531280328438286238308276090527542888175927508307766093836268275247009008144679918996301272618396227654365379900071115288848096467356071622235139119685000307250376190025770295198668557531732617860464691979961169815790138392058600431331071321217684271950488753589228289549235614560769571934872509885562883268099389748022571344789819724231784259981396225990686248521290982111437220355851792888830136409583015904242858976972694887871222711457118123708345968734865503395735022192866105422782298095884962390522787317262674560520433219655066459332851865848203152103404840715435113401886848481532539978675210734385114710216097268923325946761941809372326853095371706382095071922141871311396780959560751974448499605377398887707071550012515333070720783758447803294006848121680335091092250929838194088602058319345867690954248195665383915261501315386730342007098889260473784696558777187809846574218135046326001717085804404426338069983404769591257667851331419407592687438218636858434962105793034044577251763260187819658782465987427193402984037533578135354873291111593729740962366458118129977079377189037305993058087949784425329721132931488684652245016161835220115158101624468023210242306178764512324085446419137171662822195723465407272174218740761438104208351918799750964971358383054149927426568830855575375472281193440045985598323229241481700935473441546824603391648842089890612634689698672012609545587564673712528031975525123180642095310743318329101306465569269670646052638838511109355375093154965969079988066369877161562166658647129267877279722195812638943580091281509768947204073926462263327707193683774940556091380656253412966448340422606101783663936825406114502098271720936057551039455166256833331367339472878972894399988468116433946312643547806153302349731571621812506324034778044672481298241156372270833849965876078698418381555830185109024776342507705359820508075933394056694991483140789237067794710588124968647064782170085494920392740689750437955328442237016521314941129064833165349306635829929140901162370760236730833192722055667811251882648495523937199981004504210114032928001067075475297234669223304167777668463877206077095292237611088220140944828437602767609187560955704907168732404590880926331940883705133055946448732054035804032240988570030478714635251268899811292008807925932350220217569179974486364470686760646126217534699963989089312441474997754420714468916984706391012947594213997025465836308826733730309204457025296500318330804619153707112624335557102694977139029456830019965872338336064668798399528694611432830092462982856366223443343135130584993088573688408045439127421923866073949239385212841353304679436451607886685710947597358479230332304164909759993109752180111733550203653771263286176143593743125717185588867577977521566231617084570358325220658412575962457170068048023677546150458817092488131082025928355689142298218451148384491177277754761310986728464741350241350075706379094549147334155514288408549152012153001813226369324562244978931199060236688273967879129753505748015136034912133322897004233507195772736801121596735730710182594241873201575648421488864845698596447763539377250730880519001458453842472440164834261080010675685752646402461689785095781570555673133085697806296524410828208958668704754337088608342311192597114427733987417020960417628565437310562449345183803659413803730630812183675952702198059698247932759664945041124832860406273018391595653113521813441426606745178191547734770788937386286248505707551614401209905669637862525219471258450817127840360518969249654412870571883916097857824892126294728837331344868943580887914684840301531413543091554842108580421006403279596188835884648392842750167190922713789645132977599650973256537315447742119514438105155353337028856398720560916076074728301614737492279370604756264735657105008656678290536567515817216562918536358466656700301150854886926069678080263032492062268328166136483732214071047570205507470451004465132032235709344118782430256122284090268476372599563997698130068071522423185539921190803653778873169776673533681657368389470954697444816045615800266875091802799531961640379829237320245521064506310610606334798490310869739048188202822458956725605432656461103334288758407263276001070390886672794962566392788788351239263032478242894561923831144859088642512114085456400065797706263317935189815652569936601647088451735050518314734843735430642901165929775816534144857951964896680701210082104916492184712899238970631601408557327085938423796879091317616659325728798604047811583909298928270718471005693764193322915460903567552305010495875575261395626701518046946236310488198955438167274867171326709369392243263059588941592132486660046156413897665151866521410297291620326832912240306605931601586650053399300344089886252206012230065852977237633779393122884613600722710277559784002774031173772120740856399908053887937678421276491174969244058442432356497027158206455697601488952282218608812679752422319993123955939553882683682936955366833180441302114374013794596943508787871336130034448399028598857378489152882555450270120782568361538810029682040471166418949480599172562686106490415353315552509389963223208113294110611596117557668959580917514641298198673976340265249189919921576774395250166136740899049159036048296219948941023348277584925183849095834982690752725645298526341540849861314509285053440032006554418228386715689634872678755459434286152254926519311149527583819977973663493905274806014087608503501090805475622513787656974132464135078976081261539409511392999219673186521297091763495068219639439271609841424081071504620209111294801078392979549002151235356935647297042824790957244278467404139699564422322631788965488254335018556523785711527376124896597332215907339647223547871312537862154180201205657586280232534318487650138511621508613294889599376982454686298709974160733226299949419995868029190058040339630187334002483686152271148003353852650345686044528191104002939967274312389599581981077522004355290884493707925729731860454827892719660915659675455525598496843272911176901928652105151433249143966188171581910106559436768906377147098195763308106516334239247665155023498450940822544365528277738995993211571517151385189325142868182466151756425293138986266885762830672504506678222591048709468897595857206261857610235613386455222957394256477172894191351331526540580087309334619183148768291567043793786149741065288634134293936927280693342754771312199382674554429321495194161120416228571790348948669856285772440957192802664152733944070310496791049780821867330550545180494916472003310943472399864049334973346603515006659506073266051655110751992404606843342744363135551781948265148651749254262405151137326990180027696088875561405754741173631645634290647585459899586142693076288115734158300632034562259194057748236285999645618754299059045359309772538208056734444315162790352791435749724813833166232221631117682108600037973767307239526175825941835117708291891329955060910762790284185506534696408626386569542842893874445167796801129482874537929090361890296555494348830892389925179347130821114946257681173751468725951263275292516608110774007762487040160011027419486455399838693082683465798836686357393401501381104747215815376161522912911363772131676424858507486152448691643663483373288764414126466284268632614127114413364681855430654478372037136843044143856548528755880121720737535147992028777697010173472206561237806612217046372557467124885510749021082736132860840498565983296783219724010675738428629149630629843852401934292839756528291411482749267449650191656986898931984975434006624624799232493803238990578332849182452514923533886308745474595355892405906006359394063664428482097674355025098806302306710111753420074887219606062714058473407269537936899218578858247307912131209258134377549413142471633526330583974826238201365340901009314752545103077086142023492764050185659854674826545944692271464448682683475825954835431306298941827650122942268503853205519179082965317157323515307370641948059559339919021077377396845897083217222328681663871736522758702018931511331466957394549439262577991738392540897271592369564247453023646209059236337151252743121626414807833921024209494225698425242372349488444427555452162580610393985294287254941000954328690817214217079482279060276454513983985358242014597444660197835981567589134570455669355706977187317819877762867026610739853798830516236444756081413152040628960592277102299376703810681709097678362009866974912113422592769129714577463946324350999794535275106143943641580783375160603648438522573709063076895741419655284847045897786030788700887902902249563686613101713304173365166521317570407201675360182057087809282939835572885887138233993042592561163950847427664390227281606578542246312074965154657853041341839674498127256143161301103879737635405769463007020844774672758201179487748886606737934468388741342025364554602313648790019221097054831649995647793209767189302394799576440836054855374228062295524166938986966424470901484154257351331923441582598487099978306353099496091440617669081578939316904416617330530109530502135119929279054150836891460125600932770959951024269794200812019895340734226166091720364293360877721951596977436599462087399926216006510288956953663555568037494909781079502801047684876096950646818752529440922324727179734438978399016534831953297113790993766188028901208866642426639566233024342337430488831557443242680595020302653072872769717156504909846144826011382539516419131094789706227551973730211327269253796272461209509321926422102090013194087732190239184842703607883841842765490488756294460351829712364914436377098919432395305428352674929519846318388705059551953009010417770931646963445369136746762924248286162034407535426015850714316059997239931360182637423090822418858528538584348694888297456712881193650629218347091145833434434604477454353061326170503710563990830081814278950632267665416054231316170050407617787708777626707823962424989038265803727815368968698006580072471264993258435292005666176917259748810445887442921408746087373597928356525880962678392136907150725844012160878525484799839865936186233934173058047439215614344645603775230042669141159150613850150047512046955459819875565839037944838844178377711401884982643212366265139932775893326291563555199475139823654899556269668682872241931692238160532903698429324774449883988152390597824922360869717694086560452341685049648518951326769043481213201975039505722197371294963961296304865387360097411601929003039898764535347429140137878302704855554408140715948082037070787863897922283499951927560528643931893085138210722538165512385259631787612249755358432804285866092793075236342218098425194438104484308053160952202212109286061271823587667355663359818586522029254181743800795036480736545275994553389942152305624462683331523570779352603833431930500222634104296424742074358203962131767592018684852916814617089330310245644659515612572818931069791577929290253819488535165570536026264576983954020216079984100784603126068114254150273039220771181578994679480258406234815404959159866097753560625059783833701320252521209826657091437165457297971428258277168629872710925413415571572206170677281326071793632136790515988462219696981085068538340199075773544948318434184518128813598941255828999979289628507485213046931155165779690040296259997218932729257811250145915360785988510105281864301221495965951823228859807048803273354356161103581405315045351386014348500554587462594133342407480924957266319406115053864033074575385652080632499193086461810453281137233132601875415466611399614946273325908118848766436668393313878601467542966883352484353146711153644138408381768376216589997383447243293888831450571790242713716802669760515473473411638389669620583466785800492702138155162017667692366879289186662505830989360760898668649588810854070742510208849376649103530168633702547667049351067466254534515542708592441364763372488219358981816505274469458330777326217277741721333050606057560837547770121519324632027905946346221809318090780441497083728424731526290986134168468428135864411881207932304233796101547508263442458879974942483932489112041506991742415090729618850313925412555627960824912676025629900831751954460398656274378028022308555071075084207441082012153568748762591121209948719342303307170206012086889620201754793737955732730271857873362640035358809575679317464366688774436056942195498569669888845021731623673017240954408773485086119668474305326660522367514545065721231780538798727896514659708382139071876413146756749859146819852593900249357361797757406834981669542843462915749687111798321609250282209365021341006273378641402545259789847441023970166321188549481905572729868448996471238449219294096758271777257870482459733515789507259442708352882518560464683679657581556331915600772822741571108035563892294786226250664105745059364482501102646298434774056769522467929390564376643492833642414482301025766640721339728174671247688133826380060662273496850196959890852923301061908283854514810276463621153249271524177046859237626249769246255363987262183103826953854325324349339738482756411737098370327142514733650485275330892529871304892064638034271797195484592800119140208967209825498286529292565116187526720054871138240343351606098203571844782642800179194659058801863432801462423418798339797881828613008172514016678336801256657357303882265279897469817277847830836033925701986348797440645458678116849652719574553807874701133467838769289493112535352819590117855969033573187140300846390995770025269366658868514669275198394475060389854757613512892142500165160752980232283521245686195293048778229535543559566760115644920961050046366295872235827916841213847023139861612971018817807269067922067855072234429271922648139029905114082284926319098071407043937586312154488556486483368519548009685555124256664412343675271656812036342937107198428484110355526526345344626031099803493392619232192567110482928369475567276221833590191572148489747758729677044899333417421539607779473972110737481820816580054528180844957796694279017818546026229909865850649114112441813563626713626346076766744567422515264281694054881529046035089093220148925351499453894287221044193324566887945895963299079946138562810455182243114251078572001918062783596956154086085216356038755613941870378133761023212221849172074360557504430849343069190268248280452581257673085169964620047398788311464597693095412673735058922079586135746143590961710216769766574362899624549018737969374464156482895034148787731611342180307034243581219034474663047198042806396763431413830973250998918668137430431717416630365157306619154758076478095462496499016626075741906581886199134913885260105224162571610725882203548775896721921291148275034398793900383611941354333751001181690732368899491273937138176500223522595360536554034775260421593103568667618167644962947656881925011319759923150366193753302023801799877323902651389349480439020427471019256159479613606902385573071128533964558302280559353114856918954751933095247416887963592815857837682548513073926043506072536791768490537206116997871297947981995054421300539277666283720856211234131772352726902762731412086759533414953700402520294294379377674618386254065706753360124217686853780355927055517547292624183658277952832667291917950313665037145914857820179981813572515821562804396424573746131469964387185254352986832394394380119731272630438584127959090143485343173692774684200262036881705197800767921035062101114678990352834452275273274753971100504823878038646507843237065673418942668287065167981831206063510999777976563722218008260117904261397203576720672670275642312672218218717789358997106148023011396098673894722653401664244989924006364834012947087692427717641134502453607149565529648309293458483066996677658457308096595596610324963871829203304961663678898339347339498761461590112975142682159478007370907927507722179384378928244360285083721869397372716338918387435123270469134612395796364996051913363474634528910449045984278819285219783665594170560166277274806094976123583825777291210165376230799247284596275164521311320036267302416208607495105554921816459457112116617102488375726923215670528028764883333397475648596493300265361000588278428636653734615731540719408156445317638548174495636170048229841362729170269660867279346181612327035311995305623623323702627044118209492813880837603463313542803802928579980335739350521944687750815382234409999280176374208705189584675533757379520194995849032613978797853653751194419657477931758453665200027777249073498137634591334732350425967981212117986380457874290613247640765073253354388047375276671351246965874321842154260981436007426061427999163196115124773257308983831506381182173115332403555460261135239431028644066200734395803005902227480829063873354983739007982159177106090892509264512247770089670214785802406927538464363207857189250489271931498678061729562220132391619425555539237462581932293453908420557069220857303340495982522871328051328973676676576238616979809993921860077162374810726851314794707093874984544174631064789918363385381218036698920332505220450474717242798953146638393549124872881513967590822089614873658827132759210905568785681530598935594787116100367221287163470494392428731807603981124471727341215818396774002636149415317756995155682859477526596800309602793131081321486951980088345254809254153783789015163694138915719159880414813194638844905106814344441251473065096507629352934100514092611195753210918679804865938569133314291798639062211031929381855121203587925758416051412222376016819858386866014990414850680059835141112418963314638106570664471264943515764097702818436078499210939215329194376906840997518386647934915414951024294627538254929299389737410506866001022564952049161637411838313102415977518037139778432882422123458072755670219376278968044736754607273536293380742573848868639519669752703879288145928989883076419044196063291161364019423735937327163847132686523310525448616379855189813124693238228033275005618358697250258284154623597868904704124572672040519290984370619434266337921677468231071605929280115324699594099909191274435473544905380235666987646409857210773150941125894223062659052718658159729486349637438918962832924457332802245715320768812734641269751422000131795468679742083237551231234146085029924443426862867846116234078846486922777338877624864614884956571741160454978597917796364678750085582471877757496248057394332932006570253231464314045477856298381312898340105247979900832638418396016924071295429214388560212069285554150096467194647568334951377378347232893552018539788397379215203228616822425491254056004647066505333145792631380775416977350597016134856176493111240267269618875744573402518515830844334484180319816925830161916420576001248012577243936249948271872428529348073984787543965827631018998935918870395934992940636825052680562916922556165033211206870418334045292787053646389707353903890270702757524086097501014835772232261358937976677044813604288424405002606916124433475513449185411319351929660541095475481236126037382301661273670359951754689802006389951288571534177017792909433540173230738637362123680105222826616269756708938734813882546141464619102705758022911165154971653458399559116702545289868051912687733145530499400219885063266765408207405984195951882906861755781418288470596985346770927611926503418192086274967877851509207298248974240682374189095393383780648329832244059726919701113923741926479522898396945643442677794162955131083849808327837423162389824227160285630126273877563308878757480397330090648899766641516338864373439565309563797450766308479498041144706224023849210777885363143381161284610709176875611300697577464264970688317551110359484134850235242622676511420427213538448627237937918248737102311956112156349833762743082433937465566858702524734775968271284870102612108758921090134496654731835639187903778327663665137178112737457485008111449161703541032291251404942115030040483258785716332085840500453792375190913792601284667574044188079908586794222954614630312498823547485038796815658564534089340972707487498750690028682667051153137991914728449167417623443786230620824911134953413477390603315696838346590156418233006603247997959745534797159021804191432443920353283607110075220211286290759578166364598492387585700523694781049177944720657779839399812002924179856872842489462912702220466341964485936989882255094393001861521992689897760180782493814638636570819538627904653306058950219667158792568526636019612944107359341568254924112805015430864058328620952197176681077522504573328889459329067059881784337680834063876013317948033324102746148778416943334706087771097807527309926466028594060008585533404181671903478877008853231509555334349729390756953495287105922772013100245880862296468762214631911079183252837168819599353689469714959426165958899923238915582394972421046156646546715270289093770271224698726084337260986742597145652116411240221772359155543116362970055651784094798635200508702293486683792216958535904798895363491625062712506234698847109210675923536448992171803216275798460845964224339660634312978204511076218102847095200619595549314528375123533181314915209285740015736945530372129832023382222212561480371719411902751274802913415872083597444049533651084405536437907182338107258534921197359366709986858632804952942667207200945402238314428800217243104133041890954397735789224209832870660549558735500458777575636254871084007167658345879013541770582968810726490338864344732733773444460890214503127696154313839651098467666244905996827111468968767301817894877087777984252692007808673874320858529817079337298076305046850831567035597186855725765421784308978081183425251895302585667520581752527042432782194028563924592214520428122527405629997426193028972410486365507144983759825896569015819773359904156579042796308728786949553704904846806892752584478205628464034410223887093586191226888418381927811630767305597352839529413341328579957705515907806101257317232331473949091847635251648905062432446690174575978310010273144759218078594497445752034401212583970754768482588447563290225359548353834847632872403521852853401683847905624982573402639483026160913823203083531996001391782390126809799362942433048971355927798696468684764010303800623956722070524696690780415196691816568056302802555102915308538426271791288109293892228932679921216290739960643846794204864429078712152448847549870684149740623352852441959030983991791462366582762890345666539314906246665886640006023594433370335493646213392161412607429008551077292291656442262635454478414190682057593778839949089841636431155531905188463455531023100997918063195761871205798301457989031661382297556502778149295119532842428996765570346661847336316796899264532118086446899768860771802792081458853049786752800601802368667057563799746581875288925160098068463590249263916544707976255215807253860052323859292497323770090153067825218992496632766727217547292521406297591465841217445117615457586850797951994823292315679382075684751198279688288453080654915271179287912687759355381502058630882583204729521523848113554910934852352520041776532227272334507598197417623398308089079853270310541183914494620432086441129883698217093876450669782962007212270888969536799201185171397429336070887311791601940883074361482394662029998235253530826424644327991366931862449787514453500576139700375156983002036312041937396691724154475699334205161817143741527567001386956640806809845485866797404953982772589188851330775188921825469035406134810567732558362550637796486205521148611618029694355734473271854745951322351446635794243601429396067770728040479034296289422627332650723177294110045029326458235239711133258127198736381718047879364289502937641610522923997640701195013756277213259905380986229487693198804012908776502447168853128345037383525063284121243163790148016103768240980507693470339400259782047346090325610446693250206211578715932484464913893156620897491227946503291669010724062573903768919804707734742369354471429199475695733656286221962681199275666617529519954578312783332963247834740359743480694407066241219219378477641995648578986751047094201397869693165078530620787643214107469866108433767584519213295331963435025139568767253760766951655885704883006981278724690028691610206332160033301122705155443129170539232698916169729808872224724396441071280558231655394618251707850892634963662512745316090281216381355766826937595140148392519098859947740456666958577030124629401178838373356254988598130345296520028855453496418543172630055270738018338967952854477411623040059379770469618020831167889681053187955582774443805148758100381843945547814190265629483221707518901692952224924391939571134868839724675071653977469001758945516884619985975748261155547896381420325932347257848561574156285352416934228586837295887868702677638720683014261499286018200851143301943082228255169830494082875215740768499643581591060749188586098680415086151080762566139275319029193512019710439197689890598031658969190047683555842658255006742022853226732231358724572711672026681578978206955658108174453624433417639243879102074845995200485987053083207981448009114672398182330957526237947917936382744291362060650829397398530716839899999861059828777526700751652761388008338824498011008943776237748029885343029851338411989339189390068784345309990852468183995491712634844943047636614283323436471722760827764917645701757958356031403784536333327440048880632304667043960995412952250489070355261444518466381566683085607828755053007816421026674257254553210563095019761393244532446672790318463760133018368316757985954849895503991794237627195608332024684643738092526085576769277213177454868923802372125065096492498478509189088748112225452633610822031213267364912231403956617077792867424932232115031987795568927815054064555443128189250905633565563781163860549025574789951501872066021832609123462955699380546432869235660810290299445887965912882429649505019470566366252258573473584041336017543190844367453846179853723456650726251784569453146293930356778277555325223721437579112160210283596162302020928523479264755343941882177059441719891916467484555367006700004397192833056288378527520118022938769931622816017122436585847498500446801458081734788151358916964568245154511967781680594769822265698474007782754002972031137890088271549774500578613683632980235851576549153917681284108571765870269687735022534546585517116916013324173620701722448205729018143662229454295126796095090965211622819013913972802204611520263464841173200885026707018955823214559648901498990989703299713244219254093478857532730931668910403233782276672123733819516669279818930858890253581243581459992727495343773130623117538768724140638719551103951780248264415389659580274185225655047143607352026985609064960779805111069998048583713535775799275793371303706762390039973397536355911857316951857763596739805439415217508491505975685123169056581555480047113181458605279696232567041111088106203485124338006685099248880162770986519799866026697798988382092426569134205154393852044277212910936766253165158101803654997688588078918746828701656747273111488842312932362331301795038534385941621442377637017003903442011066816317281996631502172293085338230942888248446611962332869314761631706603464686073987171935558227232725072099240344374727932743859006151059366217393546782779583691732013312437356466511127104039444478849845769756653897787524951030965650233688496067112594249346798130195383334159108294265646984054463999345421660283741394488473583436987510399359499456312443605117414635236989776770621324473254790561388628600409259242151779136275605528871811566902709976658028161107826103747112869669245943072570250460181215679934484195325333525377058597871965408402536777252407078212072826028586752418392710579038755544844305523930294468757028591108614921424602844322277742919734838759473425443379536839800321881201622872706067884876972556125110985078220395375958391292200955110944946094184245562633063397693828425458469856731070060105549708378010742492491716895148464505436100998799230980174826473358155166790654907898842847487945134861640782159236883900824701161012199178182441005322902738921367341668765839707704680432925897540184818828876280354492264978156703866886147649766885981602498682233708739474938952047783479411482165563529936830528524719745703783404647731445849494145095328349563658663267919167499975870104262338281618117994704900604904886376350723077989606195803980458500496005180209434465031528521922512553752930205045407728756430365079979468468452976019897483816084554468358039161720000133620237731251405779430951948589053217267872574378610571335146892107136327151843189571305189034407478655805833710083718485024278442432526102775088723396516431566533323408039765955708484662652249596064179369121579854571949035894248490521173294377839812567581217641082949168498288345324167949076570328627836618300466858841251028714966993210987595753056300512045383392974392488476631614496226053147307586781885862967507597511056133953325449417126172424458474811090358661809487036477011198113761920722962172100082281960620798111018530760548958148152461938817800478467953483022640663629250348329596284294396507921299906201963597527847210728169298255686863150132031386615217125774483494726112028431005705140104815880066600562271046369254116458162211011657866238280022233883603565648300479384170912599398739404454624429732892954852740762318841057907140216834875679191966655887986184853757382037029501621574848149843639743679385242650618134487816277775255028724432687835085446016894745410686735587977191902417350945100001262340592227930848094544517753107995204887582471699035035498656245857568237718308115329729375825318648585698168808465661528057395868711490072234478188080467684009377400230526335289272834801934086238888237204029536156618345303172265825237059571468208511888414643696131819511439210811631324652052169248427248245252840428571913503469080299693297430749295525539941276418463419217741291289876142198184496000982470703948207766857639759831619792882724367767323106763189947786816579641302087163659247311031653006128866855124632110141517687663825204122690138706781158506102631076642609074899094283253678216724344901995510668162190589088308645961800565886926535124806106479006192424635715515406875085102423392769164619319599481563323985241692172427694650598303695480139964573174008373743093189557683651723882298052649568014902801370952509842119303074695256976049638586792217647789004094614717000349321554529002404039118524009153151428558558572711456627268953592307618510441472262597130928351734676817298458438320072542958137048275792050828284274534665727399158912267437169779279749216109696198282304777326056666239718469107090380522910996606198609152732398376608117527601064743262455645267993501674332520655783749671297147039708409155177776746911545277573058806748920440135740343598184104986285731394146002736805692029034333316078098810874697919576834554033070772918428037468843448518901444477169718730098285010824912676433035137668858186147114168332682526470551709715170408035689647190554098837089854916570069016145580815770812544465522668538847676914794736980965752236807638531533412085595578489249831646772031849217956257598181404930385650361385649885072415486983446167316036331716070855321991365318165386959280971638716456432057482030589417874388571394219379782323552968923464027217534023280869101022395280498792431318481643645940174268036542475064061869233428688087418728638646202262631089280261492573354931884293724110510074109940165569987757049639674340484861198528878629871970189270004614148226705239961938415018268894886329110755716271281571892064359202558973093474794453539406716545269750207505121808199074876554186218511484703500439696471172201745327691850662731872930023673266574737691700721753238536966295097168452647651056983879998001421912750163906145117114983145825930833098584751667927892129778722060601157481977582101456893771998028442643532543853118933808790841286623990423058808268056721511633459603727191362507243026657571730137507895063257935131595148217051022655344516154417194583000050416926573611312772164139823617427997614113123767941972212359550924210711339480404531452199586985230852136436933457363324834397687824371691813094178475882588125615388783570908122513242761565111147582194956303546744061962084652317171783922344915981370785462000612335608908730809670154327391571134626781646151459101058723599562147913719022096910527358077995847112260218710854404320253249665657559501157342789901996414397786251799657620351554261383762111787009244590108006612807836193012434587896274836154440954187379561642791652097933665381070092670688799396408291939079463099935470566809847313882453048840969825952034890493001175008832119446888562297587398249231021099862767175938474893538909786898576109979430265350111365088452405045756393645057593077928809138824492305631624173064470998191055229807975447051463426576006503663969065823910190535092482232657521315760710863272111699532092381439521104775608724505637497592035066936044096684339988936830965485419033255506904157205131749881922030568357110808445879172672914893636663460565123673780348123626617489789887391573947062693063264884609277059952419065482907573630456038192658970869164489034721942845182889597546415349286366334328666553182119348975676555296571348167672919579667284158850011670139378663031843430172406705756709576793245499365305929479196653306431101335324721086733657744867367764947424818345268981908665750967275518978309167630253101069012123775350041707663061311546732810032935992006390488817122678676086574561807028360812485982827247735185679740139612249468957021051650756150636474226153764173854115187566498271158167852256997596139880938198537406450047198148711043131726120776663612642822545621935805752178802707636550661311141689217012288558311749140255540969229745074849353426480334387965695833899919260552261783864974049236337941595508842024696777754114904508429237156926191184973573923986545557332519461449673157507142294811630828384019493945755315575415230108170759983898108723416454871866580336291913740329809588011162006085080216086032994344153587724938095096411986788798164595339903544781180016744546432114350327869459125389173786038251697409875514019800192995069076203609255071994014813149932811464486340674154688680438795231016644318413627033634989334773058627448237500914613586684338098111588161515578501187630654398446714370614719937697922816152741999621294670482089475086289392816543084280903285237804506046187039919723828785970693690841259416013045399281598953916086426459342332990877835443275463250344771460785407226854812899126980053372962460476208612424184567964917065340377914266205859809241319050250407385757108100845193074385541863000047530682059677744955270623487761953800339539929968429025499661313530917591781106744321851684050267671503906321479419695512956009591019648646149502835429038161504607978725260229161470917402896576316130758373360849667639813171515693419219441767633683240341013731579871880593553760491758133631048693492432580572630773067707480498596850312036513142167720112543432264210248366006978289327415732257226898281161976067071852195234505537172452361832460229387083709071921404078369439308592726755035395521572868608226334651924347825215316631853850453621148747022133052236503092731699881962915799414261211612627923377490620649461016378656015486996605691837375008384605170820738621533604157487801519981395533700255560619511428424847429331097656484455468330054743286426940860433525293073193658521875693067326293311537936142081049865731126741759751338787481579331685658800549189326537146013386893919066706077412162864379760586105189901576272729817351047609708669472103043785360912651874463138365222726825443113283933755084517845414875055379601315381008859244695307321388026930436091621634791130668476048469860674326217942002668244716729687367582063662734220873917391481858990368210807181460805283497929557580768696732857285214070105512883917883847279377782881131580225327372239605845589336879642890968017701133301180707723201597058359896642123187645447005643231703159908728252823297919915984586646288747821365505434963408732565038921525940240954842312208324458513924835141429826295376254121130985389130117521474881752665898435414116243315971574739246899156598563204948171594444635931887620159358456740861493252132404688364739857210770545336970350123812543647650562722902071144111394802225882011721650346261202406605675850670092518182668551748889929968387630494994770147064567603952643919441643623902653506720386565050913542528438507824262333863615252681097086533198089921235393001922444637595781267550455301599666048113862416276383426658749864849465821186628139728075162604260240366301586113807186671904268777395209550260596134697471178146422789475687918192911272596828942466734316593299094137024062163540878607355062260353469766150083348630215495831558085593728195194956536511391238932559920617160228528417797380587319456741609006427619672116887450203848310231095851085542217926062123950338594284433945180376075695086581595997716085515066926973547273054883422753128175495598856081322539175186881588989122615906031946400196504073408523491157899416100124670197277219782656520248761133618474591735341361465513704831795596490883114281515764608871366575789734266173297131213808880010753697598926620812520736144260656142756231147602334260806609507298946257034030046726093512852971881582699695340060640126066949759252007168437124124917792608572942932201340796800164868874722385572402637026650076156440150889417333683878221359678144011970020759097254850103757166664364085592213408522128003120894116112014703963920372787472850732098660702466667720911638155292872924870445286805606292638352274876968940955818934989091447471604669503203737786522925583899096807839883710912354703825442636269664320571654949179005551672765791717965490424889511546612020962235101406494535959674686634965379543558118713584742246055408636822477531562496924370222136964336905529388461334778288809693591517819382793749646141984486085974735275491003632341917496444918081897184327128891696055009376654089407605149979669364467867596032965317192176266027172744934892716931240988602125683163962358132985563728582330075029414142870308202469722274367317151678779239620547226005311411559083073387773746921995598262777749501206479506176873782301554351919115228248503781227872941522464401799336972675849036176536742990556138905471966625184011783959863015162484885530175142786304117760436374149218626845057180121829798714971297200907583066685681199029119074833520017226625720748208865537909813758659376658206338432026893987991730057824400647492471031646822538418030596995576007424510376312357433499957653079485884471234316447677305374505272494576179445767203225126945017819079975035880341385830828248987907824741957176786294683295478750504935774770711840007874635231796261227053158041477837107458367380511522145518260775819560185855164937957175184865183377734997537384500947979984699806385127283132703205778586605556054829717161665298406012746898535114641426619052123812292608059815710309802769232262121831976294839094552054814665992839059909333104943062089895848097528416473866933936327495907554680015971176253140680857368000505261059747533841885705754853852211119636787544561311990977560182007050552054865779481680205877126993317546895711218970846910196955651542229546571130250158861031287337177137243730808837238331577470083686584980523509933441832446292940163948091812033940941764132376949861640958717047954384315713265643626062053947792278459736775828610940434439465350464057867680863102747749346129300295842658108774756256177569742350890826509843776104031662063855245951429540069212721187062275055311755190411060880099949756893139584889211428400860621800236503970720865104404328583722054233334213037008281619343184042245789008680779388459443080123850438319324202252177296081107817744792007408205709533805219970104125938711764353282888499684679505992948293835717343519921295251346297858849580087066247093025923155987396732314395883158512896393163095192683567262544419906469567951344549573564657083882631929776209320092591301189687881247089214135356161824450740086924451455104525615869652156780340512889292257182635868864752172600429369320898270021523910520850050521836223709761589340295784500536460856770766342284392604137759287989871460843721295570557525341421868572796696085784261196113552673968729626459777632031708531277268766158176195771630051726784603425329494017691368688463154195425367538755324020065268772584552472902447447228222638189441880503794511529699531334057169229520813891893985763076340344590390923533699443400728669089509728061566645007574760255351256278945105920252957422165051535190629239179003936284808462543339459800859493963874827821650039418622193441956185963390533510348618261220125434491651289299915078803926752843393012006499281136279795896118861883389381637094002947053548645123901251937589199265635104516409157956422315896539680773161290960940735125343839994943387495701346021252441849011888870157959019777961645351511361491792009346247273979304491587027112445906397806865323149144184329751601115236160346934600838205468113597330045883864594779187093727614491863619097867492410668186476932645373474997591107057637673285471336372959169672437148824410636854105256292834364954227069573443378683739635616702214786278540620839301848436528458148670413671215030036311316989335350409213846935622299347326151314076623760558404112728893802455744911966727702399776036492191927816731722980248435542140879622760840466721306267924845323608066927331076958112177904204075272460489810454865642543718376567203906160462924283954576706968012082749270980080569772373671203381501541229901499107870834795203416364858224108944998949865732850512636724774882328030759919451166163645081394376492741490678389332171013168013103898646935792020643717843395939255464200124223070549478078389079193247910756095919267321498026190424108421922379669138354676632735277495343841654008572825529503899332270839128137720042921352941024027907729565542358465829945236662919424157427358666646253793188108718740594383833816141213892957462318132753531779782545537823779645564993007052143235852663697137293508987025627710973589429479817792351118899255507401122269934643164918559528605070489278924125082994101001238663452582665574519283749172277396535632523303152130943248203119252201198084715122114129659569620609990036896179546761761313162751850979073492929700299834904656696329420639233026337768156589295822232380070175533714456056454341239012134844013550909193682240976080825312155119997271892046073619654141936387123652545167428962724023317625502167587390227785356597196332108693451025869143513647238453988223389908507341600622152586779313288205918474190329201314816924663936837588109041058271036518499650426775532149361167804639259044326685181911370245671490804626345205691508201157010567738393652577079951066215106482727417492189768080584177345655275489519262376210769281178626310783279463531754762278677818415717539457494334096501276784075517864590486879356893167305600013475508196345074616325219448249354132375974009414460390829655587877976695630084313248814414390946368195571353953472964693710948348710903902631830488686530705392951209289482990723513033715407706242672407561016485080552474943178233599375325955927628185459189734976090036081870890429986767270862644102945655025614817443324811581890796223570675652866840639509480681657956524307353778352598908942366178567533421789092456372648469664991844558879942348287794931501218348887416881966670745657728096639453509687393399354826223922053904463800633330820780171732645522407393465953602218548929847606027661669627444259721445104665624431472535645347741048169704903702326784533701337728646391091148389869561510250841564444235035540889452904620662045535452779395242126800135387469869700136953303015932371821680284354724150222517821952062671798812891697542789705560218077398780789020382287742866154904130915661097175762167809632973417409299193542210820910157180206321145857612388858437070865764624951492261676965965486327117207716466237407476443473088671266419342502325960578877196810430428721745700696749794734983003188063299850561487643456137843760884410694235476158336610791540527756065034073848053819011805951259195136523730324439186888603201882737807170997543554671475405222276628061859787995061322414843033954450989224688674367272824958994583490998518178604667709212858966120464486839784410270979889730956326575755987680040005727033813771827178312973513553802534364587586568097915898843465971532261196615119335055157676963163714517788618243101098694217696165491129290838036439216022528423037860313171867771493771958427590685156544591821228655360201442002653731967455432223871212691354628517672941662611482127639099781427472253926354699716040437845500252932046009132526467549389698452236599771592640802930872980584886165067032781411294311272936344726521507558415091330900574218818489326420694365454454423694462814118885256862685661157468345881562125905207582417888600623062843298916070701950368361417678727985145491872650570212431803618968899360677932568889749230562935607675408785502099829579486885972075038097841930303512949907658638212610942024498194397542876234897741163187269187471196017088207812359751947858819921745590058052156705918587323235199257416879990233772483282157076960767330880028770473165109634805236054442911162796638156358228961560955535823298515404917806968811954278365485118139709870089353040738925725644675332844160618819238117028721319533836099529635774243357425227789128508859853586633902615484110874142553787687251261592995167318470888704943893042460661455351677064826755412371685469141359843109404163691494947461730497821876133995382721909646333244207495893356163620168315101322834651643713274591702758224293254397803274010367812152540558623814891443113408799654912943190126855980349149827682015929956403241314228457095623443215144573206635927613488506240839558999459389674077686826557890755951126717556503703216035034851083199394182589460195089614165736877186823621365890317317583487859230905914048202543675702269522412458783668819504446004041868435134764399790016742558130796842815379076261340406814435664357797560483761203473149679179034398838388377686916236230441694196306472079383406007029119978488683444819127963736408315936284225720744263915128351252012792653513065599737511676927117165041466907046212610571009211328429361995221330414899088316504866086636613769907630498968593477381387882477822367983550754065279397820007478732777444570596041905212830492154967432903684651019286754034199239317384580148017836634034236728665687563724318202773697971059716658303571108778427350310700251029668751573106205110939883589902327106300952040042138950590367596358701632272514401383026384574805446210077188739227250765397208439947348110391174429510615015897385506060256726255879751794060536200436537655373147341735391273964585444279046891995474034024111810367110121254750363932548065714040898529256565513596881012562851165988326906842003008887337050954504016157275370758282613308049107326249636085765071634917405309130776159662857197662789763324491043995459664641321996835163867912092272871532504056619408945670031672615069986432805739153450686276732398747928777870242148599314213484771363267919702294443430554326376294916834565231756965359490849453542744076480169208673825122825373629357510590092552120864080174611990112836667226325413399085740432307552912410310821132186156464361478620422401809098646433462682101277689880822408183374141587361154509874079079889106670598807315287414202725347858836515828731817816204803084194439742480443099897088210786853704597834281806267514641099322342080687997330993395115596841491931182410017892934489109867158110314804422960807106080867420255363427555123695262925197384311993402434184564693083234894939277662774424167910475494840087001477608733812097964522208799619992970286294609391933517776388674572190203486936936295310140664907210253930317795702229313791200763680471794049800130602758054343091667374503067759324793354200231614918070118264191430389093401689583378361142635266765741139578395892310646681959408797051130743508649873397564787952292486060147469981526937250516594659738483478319053407760302422579184375743577578195417139964991594694366164553955859881123576067701592380774797498507941351020892728728245066649025730893638132329032598916412463708244762848516050989620070229239607698824431248095965766630440150743258632237741812785020630561777683575921396731113758257428417932428496918351642389333469725563023272465041372878185184225896569191391524529917907131463944382668204884551835749337184487912779916876086014290767144636662818231059869900930795356772230136231855776093664896487810687005757489552514115578994076821046824279027644753377128306495451564021972497088719446047486409173383612988270473268590072286465770577519785362355991212648589765483013013884661369256855161885357913267222653147422770956419026784263427334083251686598301421193284596918302784552631284483005803354521122110063239762893305782054330893807047091984288998351040702251775148497024123773208054476280614821781055835668527995698314230700828841250144895906250832479176236100279901914497486741069254780729115604658357659613338851958377283402186973331515601333202148966829140598313545843584382842983005561285120276450086143342274070315009149018515238681641290717268219068437686435328184051225731784898113136050909409293256729733276369667435522018130695960741034823075119792831101497343782309772908222294164980712511702654520612764478677542526707162431221399668378796942961440024965971402539529683964036836710678166920921042357287017926589451377694774647420400897994915786106441333820193724995660135607460099229396286397821136808604786319376553112332850102593158391970699217310782566661003390010168052530964618052126470504926753976000586375536479570803881875589246957625958121178086298993295246320923475485319800684654320790677717313948548483463258919429698760907464469771481262752606310980016621792155790153923464434335528411417871792215342179346316096646165607699491292489832219705044759034885321593242726662409406922505182143143603884665051553015915476630265981653705438568978957946829926539412625949665802557137766846921884890351002794809296118658153448147764503666380558357831982426917027417783288787538253530688644239163028300598607154657498553777696902519009275703514397392524943890019445808375386922832849599768440752985907419878002104151170586609038500049558542590264691316717740955760235669055801040629537890283809535378408694529485881317010052288271269103706996446393747428332933679592981133811465814290728251290703802271733890704276133019266775019801267285834286499793057103814061333686496522156860334996525397881701170105506813955982053857307595396775358392490555355614800842601410417853925874736352864217111774900872119106483453661562628858242675876055925876962977352405557157692367004581615139672850792190327006952681223524895523632448541319475525932215403411216062652872081119674271781844882056906240649826372128620533889104343658539715126826903272218623238114516315842961271102120369692315065417514023177388695362546420103485122422465447425059096086112735438921410550703658432985945005461065084016122842381012571738588675099497661571437738991848239162250412508761122265846720673146686867551032643431496972111564612305523438145478977623194503931232380238713821046722631643367586960027539304617220582121802733257179926312402299568005327551512628240331938095060655072120083730911334197604355327882887919667107125378346313696417014975746777075291587885734923613070497540252469784259751340059321261071902419781448326265475173914366249530937326097120148001310056863285457980678385442615430003001319898484809025940427312450294239876500127340791091253432381963076347379741150598413686733766935561471635243294189313324876424458646273428068199661763932025196605903180191549900980832873137422941313971028044451484522602063752406315454626345468325086609143504794039708421859395253404925208887865908473028026346266170765469589453259749691319744168819407837313104346976116525047647756527169268663156632541678349934121761985336071934436791863714902776652775564018435348601116313871671628292706731357809856122561882210201327883745910298666729566783625295136125287822950971285680347411097006290948221382879259005283940151324162837251349253644591706879975925952985474933971159242092561772146822203228209348650435328011933691883756561658031272278395475880550879439475667275346528143624911142557064575367172586229756302994114013992954732827008898757208191438850455697984480754828489954095347693201170868511996992757602026058745973318613818094128938154942785495172710418195519098751114363744928222826618912029875904891092351445349174717427387241088406144039652158187507675327043161042742088572030508999797094228190818959006878231473247856517622694878514197103531131060026914051005223559463487469322100403556517753623711130979731857812504764804340833803953938456318685112095400068043828580362162742082534328639277310848011127631335621976794952303535557986684170559165066857183702402078610496196753171736370867170972403077017395537979033021903604212087816481937272936322966874522774699045060478202015915423412446577484419178269503425216956678566493339039584512537574477853019222749260357690004210334007825433260398461065763998765223237502117375877517465194528552439764269309701409478472735147137990106606217244319011356657823321403431899989330837867051298439304870647397708893468609281984232135562467371983861409477879120324477928258619435453561122470951922630664808477160519877479094986110153999191541990437048371800727597295460211049850440492655648990047243989826609385341744951588011703564895126493706895015613601268984588868251739609924612514984101157848696451169216608785656121900689358461349292144557840710743256849045182932583189321368194905259707339392711929962731527455932529863432166092193015871753884137599338348595382439870422180355047257579928026323185667180566331123554049597834075880476738201621116114438905202280640981095453757077918669445771178093817579381558900144229758046568321856808500585799764086100781529275792094965947534648947951390520691904948538656365573037350122443947134257808841536502206391480592597504873871133972427782013639973391110309467121318663339043326941380946403734178890537733813005255333617949990551659198851201286325609909350258022795047454430667311791297679623739734457324342550255511057049789081964816452428904855331893480042540765582231495557092006095966090768524582373609239969309657371100562293690049649154906480866107546318533895609280639060930485348964548923741994742239080738977657170394483879057993558330565412707010475531970676326984405278656988714670623083815003000342679814009568783548820621027448823001282595052939419413238666285538061202159469715196340311572533734649826536273424682263687887714443666465108228468316157885827877645121696647283060264150505353394516080293599778251565256039564134822310132484886247713334890960455097891158521974145017588930396897392809482190685282150339607692981413831418807186906061554172524118948401273665368287471379647979008688503342290576020088027112594964569751948700125561605818655264919772527673550239434310613506903706882273607992280354966247614634820015178379767205286865815511025469087518094488993638817994612498311170969433218708950872510684554770962825052304763819060412759694778915137124181421556498127006927076968944553124934161723783380221052569005284421519296628408062622551336859859401893892311676843876504430893443647034325173208043520644636846469929124531854632723251092654940775060088006227426825613015582563271703987507682874722030779786855047454270243805313023338349702492728647578101492167117461515688830371010597031276138638652041786594574095826800310272935670476143911843358224707353785018450558132333434516854477856208162445576315104222838955706628232778771882587660510037043381115233487362758322316713294088898770869203398497252692412473943346431441183675705572708706965366000006644076447285405100491979612759493860090984795048631848737685314716859306284873143545927394119243196097588861379688070710037348211134350496393985441892224878473584583410069141219507997805117611063610064200331243002623154066342574440527488223773602281856304297839598042892472933820240809372704481633970846631220290062922082779804777327450252474319807407768250980154867400269491991688434234398899972580481144124287587760754284201431840921524946210598291898122338680477688436515949024052559635597137417417232694138842578833116236944327067487689227729844926494565695361511457481921559380452385962792732316865566760762821519874195903790307895404382998713073480374738871326803876187619430803595433875176588322676422747972542672950378706610540830747857269879178503351165406659720955348496504326454623248392603355854105540195431787340145507929879492383214273979656608253422445024119671586177893917185324235574732653335564324846372559839674708461698070697393423747042713928258143008572333921857183395382456944165307239433974765075468647847237838356116231059404438112639920824082950143376920363440842843809042239471751231973641527950157938590914534083189297362164787119045000120880987115192235535989906139320683300843312967772407322349506410638707691448139604150088505684185559656161356409207076209628747545156595886346917041906726877790345890964230688109414215212553317406552866659837847535350389452236060894828798819008689872540018066793825734001572740152611890525105059375743228340108042395285194169859773077962697288092949760368527350764052811418981768662780488987236833673704411710357683418322394058728214107362926922656411580515606243195145760174965617534684419456717577704713471283280630449548642482932060245537957647622229097258181787893766206477994435539708706334510675962192354233698478187198549027356584484253948504000934438167624574436436105388638983441359726191244743326371304936617255763977362233761957412504690567530000753162226939794620169447280497827003836206630552085785802019247755366270140167475307295302183141067473578155752115721961082487185917485984731653463244421115196857922157222589132927193875283005651202055101576722803103989687567184309642546988137392401585268248130390228431635713160941559109024336248075322286016710954049054659208461587539988818726028616014947790853904137624486627731248124826056532712803432199876064972869486985238611839942276956993109930876453099252157493582405983958745433000263951856280588722947846290827670077007575922349751753144058309764934690658901083363282889108038655431843489615535279335704938678367461317234805255865475925006730053431010420931640294871316119409324432723740146558639600730869719578916564189619526286262936794596179774895663188681984853325096233104191049876000214391199963860130824966701490090157543001828915571264816932239880322895407554213486870502213875191461265676563168191709333669224347094953738494302332949054488535182634794613968474489043586517941343529306708316423816813999667544327165757842406521686575001234242353701690929183185410345915947692954451838401383923235133859110235136769593223698990113924781600727772801010578070903768640054041868414413293278084964919825117347126735216082190233906986146081350981560765425143717287012461390277492564427473743715580490752628940563196434238240408250273691435169572086726262494653214556765919602047788580432311935568505765392360050071159981840410584661700081425723522475801097975197188371549410600308760605021892683299950857255325651982002445714154355955434318520735824238804903645151762909622224377817012065759555039085540159945448490884810294195347261710534301065432423897647231358897600709544476471828925488628466545138645102345754947959164797065855121365092475679786263848103852030268112158815385914969708471431705150980219284655315849604262971155323934259329296977174449699130120512432802168859634926752154341044581762780010611715901914775283379468492661677199860180095406050239485236974581559165309900895309498433196008167950729437725728405235105360321393436941855654789695226245090899818824432041306256387270642301535204880700235212468250121558913424053863878780605362198035934237588518109954535629940168292323422411930538488701191465143866351613861482630886065781402903301098986267037176929642712769687816264009204795073537933955100113741371704369246597848789087567289440027646664670200539712720722687497458219441867529159883945295801764793490874522905736789087812952931243470509628066746266247156604541256650485070390728704263829073978577411964996168546084153403922421734574399803146942258010256744433860074091963028357983402816667990943008321389665905355545732483006661304924282608270511531882012689371074781175005469754360305031066206046308829889555636524149501992930063208306963723135977506392067330380081112351345744191412871195581688475500222648769585509370022437716463870419464855026673252682312342636991437490907739581868057110076400156080270246028604551694039114500396220931692874187539325988660177755430399116851455930930099467753107885726110839636145247246871265827371900120628603812529020203522740910159927726281949329942492312160642812924749628730557987955922595947955334810344866030085432886547053107013608072559366127668483378039309859111542417808940227402341541964096423592919482904750656874078104487656016774096718095506615297741055167387057481850823877370632194501708668771318425976949336860591802326938306803999689593279981520045009006243116076199545637992121618649648339505517835638446694920655678833435793774221652215068068292311713224010856621252064681502481690401543990158840074414347907051916734684827885048369179657742536284624112862292452300573878003482800283299405651982412724751082482373487851142986224555945801114543877273548020177022330150675440015437360493633922090551411764142481007876455133935261488866332188689043837788804061112494380253456974500036989359722544737563351517068275323525150899558830710617434801096103609972161290574762609281895601517761988550753685016563416590111005514618395154623733930564208902503235604354248998901538899918692243530003631744449615940947810913872338535552260486262906301388851724429207293601415356270139644744744251836374911292094726106925774722389574204073674595475585534293410968722973916874976174635024079294112794460526430657146788593728923864722571405434131403283595778518494036315896041331972653089271183460006398623723062033406307832217116119947288042796136745461007938803943048767807596951212131700388689101285555292635968130208521278305088411730199938858008113275250564012273752405097649970449106580266310178677565716172535927581767140277710001466667090674984052732289637191257720689365497275235347718354066504448774356406373509303433627085752990523711911860078123313925347762217175910868105702620834636620436204549350484958855759681550119029301430638480812676341832757504415758221076220291961020987499716839429622628441177712566221006858053656006774488441902531044228741952425999902243666818929093753689444366074354212727956006115652068149801552827987538274973509079235771129780174946273387164628442474726712856895382791220637814407416616895191019590213968493958586582699307302571704089657833052974482659550900001005999526437079827473530369387822683011295226264569579690522111892080497916942044603163021800012136361453364764504984378017115225110470848851374133198487927873808235849832447909202736332223114395070374517943705257810259754618936287299930204588143819422124331443836081584166162165223538079033317478445662797533713211680914878233932300901057409331150256688938247791747422666457104231698953335566502642357708601178711762568955630134663768495500163122989975510961547733124846581604726176427177544871648449865003840173438465606283288574769636685971567934958705624183920515446682041063530388416628726004379416472223744757681812428143148610915273810547926935661109010827940323807061362853678436485718464080961926910788513789805281495335055157047883931605868207527743024892845166513447567158974441880736863310243049277988931355986395614014085803117269704623130435335309108707183103950389990947635830175068254494494927678621135938399984093430771463967773593740446895361193827487142382601297518028411687716037101290163613785370385293090852798065269306450532711658048892003321641064494101559221920352571982192149102409703192265101147873102288110454601504253011759151556999452425891992628220837433878083311049142436774859634325880968872700381466106007903413038788930814429651733785627689473709854987705197984429035680725805910753900080167090006679017739744615320521517213127012289962319481439080821870610047477666573375688401406416194866662270732992798318731368739035631114384493134847739237791988364688345721950502914962217438289592762868033080032591364397554057491138292520501593416033530089122849945221635080503637219894283029989009753808637039415830617046249816478025960454701587760838427883150083812018171115608384924621600561292352768758107750836214174224346992338132184675622799976026282220774032891943765712450290898893893216342460399783984875548971603703704529315500519943486988627920447750144273491237325471165230933433278261482271304561519337072806353421567590132398404272231350775014783738708717234833085962879078483536973147899691215299227772797732192594533328267124130007385499071658460078922289270167570502213597328721071169384703902077395348572472205964160301809049189864161648159986622563314461022866059642717998903969161541084435935656293526035213601379208527297975282004903683043961835835769946476258620431295276568821560475378432165881085326063876031920988176963590455289964805690997355347309020557350331823082966384843399455770037251801515027285759819993540034186031279212866179070974436542326256374686391794524204432345851263677413597722199523137905390840477729626713862488662352288283302067984441946015173506021076777836853807981757000390222998349609365902592197122196189166406552652903312439689766032312617320419226068074803112203877436357301273429031335130089262625561575452841487603629563842112286004358733552308074344080599622396842512499367678502919776293060352783287716282041307366321692998088399886255434236950435274740782057744040336498465002078803123723853900379966631032730908001062121339717596481808758218426182830368247508269497454597110164011088482591319464828461955420285302092634273444364519027471286728144734947151703829761399592915355334453955700737917680952043152028565112684420870555818637990713094698324277429739219402163142250852993542782277157825966291851727999750470697067773733860655951308339486909552593813103402548709099649839826465652923326639649120513959116732152539059174907719843073078344723024666427794842848918706887058868845504302193451499448399873315657380639308301627456536855060989070152720680615755863708533231849157511552529213708127223432260375251789573534905993899371706486254636600626460774205982383143566906248584474551654026630158194252848749388820233246719493591761105367510186448995134646289389465297023262375388107766857115766796337033754835996917862133759469304259733296455630934766913357296051599487389890203304569041498914127242232174164190309319168711961168394846300494323529770302829337630726214063783696601835471708787685038694325231581715629906777603255131296941642483604190980682565917584266190124198662177874738882751812164172196798013495652441524576673654827604778915122470802465125355358405590331627061895251802815035804078206458521579958052737195430929839201440420179866310313782271178146866168850759225467616952493400090622192734354761424737817889771058736522488834775825738066292206670780636118557776369369973239502967651526155743022660871447957491093761031112390722695281234156114273014062330033248410827627308161005350015625807596064243350404909243862193088537709897601424060422695301535791987335329082035180170034630699413082289136884307769035197874650381567136448120910431726601680697496385842948793237552594423925025137664030214298113376453751003938814312037211007892214656927107819812299132389600336430505074575974563577173368874112259982040168111822326701380439451172128030844140611424607428340957135394488724961945721086321573558818961381102474258145215763868019345342620720149182458437608235472548337282413994345157464513813494037788066756256860983243708442137325703672581645107980948535059290245981757186048069061652985798186083664894634645881817974710766493045890279879699067083499265698026961664763704186330346621560802214009624086596999665286029847492818287735678670940090737670800895609092537784560145113341040489315335025519030739439445642593987538848142182118997587010691349203780255077541607518696281111549797726537676294191710058327050721073726318375875318513314266747083974187462658480136777424926867844280665406951652298729814466972029872639711672875927347042939624933250620509512185802673267177908649855450679964064369712455474982220557873519644297915059700584370346817750941774849794164824425894210012448451359323775557966859807909770409407309546967320059119190841846167525700430320891903602750660477312914326224446082425926868519152431381749736941203905621066619522065762580735885996260953128281174679688157571112473211863277269430245594924285749121451551177208323079302016461572215029507380116300226157647554615417107146257013900307016550409337723437401030017823324029435149566168660990567373384422203910246797948009215619237183366687024821471686689584518054094962516987965970125904636745851855858597676296562660862195466519095265865771940456882128131783789691088795848025826705125250265972229771362237155513555799438531296441062224440182170213820994012360980635824812424408893640812223283610815639311718826091259150093273703169165220699163497974296889424368440884005173965798992325128222017247319944012198332419572153668716831937346900908452278091355728424308291035013342418185079852417407922915668190853205169446960997530382660641205986936650551090190832798968454106105365064727882401671553074245962607438878208932150409195671838480982037560374257894589936281888382565281340077131078019625935469675083748028239341487962908317821226864964370572860241878663172339308924847131936113260257436450285689670803098323992716993652120065029384011348410039779546636372824043672034251919238791815637785542997179896080722339067454608137637598569476957222782934564174272431838323365715382154791194428291289639765511025372295405691985648252377781383907907483788954198160959961273552455054269045222758406485924833682106486031026788405421474601745089120810499474251169283624841571930042166850651273093453358467755075850697236429517152638379989866025215963274237867654642842317255605654357533974451559702727763985669671539242102854613705064938822225458795163047310525835990180355601952247770472106730340995931247221579603446654670967534747730041082030661263818558586412535572081361492772479822781782638948199349711377980029069566434802733419705789237637628222158854360067830237039305058008069122860860621083920044169942201304580745871686586063925410252604945175941766831672243393877421908102993941557601654370159473695830866191358294423736667985086812182258176492322383086481101825773183638131108716812744970087612502313126413677597764588548734462449233509323412805963192943748237371536770274335492980807878173884304438754172021258422534651490806577164948964161056913232410757182745153727468803819920241531826870721926548211754711518654082713713121019091913900003150775630355845722458198145732370931007616538961881404706633408065435699107370091994662738979019688422839458335954415338210960128643709308740543781004793386826841216504242582668562337142151550071624884855018023113075408506174902536314885942168212133654006217412432160421531609751891390547271324883580045102162460796633649096364816100528682422311689085539249478961435845648228330706842622504114097966902153791086779813012267542849946439006446063730806203383778145119030804941039885230093243376456272596785414208349075390082175598555807320561803245802589234198783196443218738654496948968553188028833814879322725226200965497325259836353681607993047909358792346371207467655239586719982711670183358703539187446721011799410673483906627268580050997003993975584739262592291987376929531391723634516568890162539299335416322276338107881234827519475050113847557407640031595338623229842442688308988159240728150467094579977144917790211751336801935568107680171210725578447371063950782014284672548221836340933869893966146086347919936608486081310388244226698988248785743309509305367519655545255467821532642139071559321488589162260551268698716606534309660122217293563997034743286144391409716672121341916565146584670050308582207839717558604054554165344282482597241844650373159573745665823772067226920780887248322475213612338802438011121131829567314538625691480638061549171510274950012099289347199551452427481769847317982356193653767374129372837038864450090010451927753655801976498224375845732456803296301031092396263902624763492303376241434503684981597125478407290998619928910617947570592719299634037303200908395409788838739462914424649899484817306567374031913905479091019217129877620944622522389870431857293096943660281636731559449469246192465482559695297478587507702557165882995818626760424393275948758319148139082732350305628182737029968487804949418374665159700573897074142673615756848827062081365798502811935975107423941095680439088227560266323448277603474234662911245577735946945883681269814969236603040505200561055833739886936770682484853821143627617050072887577265363217678753117716302509609987120616662482698956689180747577891895247947986565169151649496757113992617572285454664020852834605493533638220964918501934252972582338569368313861579314435167213764554211956393958776061120779018667554542640009412591970546707124318126832562083386142998557306245507691249715847882827416004660731601708463662510363115724558495718671798596834190088878303858786376739391841286752782378959966980981558250577278095387509672062631070497088083489887035562586280334592253788411768575309684528771487934486682589316120761020019588281445133855930041033070932233798859101708292849361219659022866674472632386433041775290181885234453769777174681245703255534219627937467660244981173952585369465548125347826576841587961398528528278194557063331878884297540322132719836777113031209864733204450841276365503500308494797708037324753610195740123328219816727834612430173063792466540573250909733014825310265292262735268644509947939615805415371069550667125562544071364685959442583556814629486699504385849674728796043631161016338939214908198004314027650788447909449264342686304037539755168294154567792099674255937660499087180020937829957696173772841139807238684716101852877048520838294379335687638089400697973754763147508366613511097981198315413773408059405046038050800512188562157733688455689246011238813728218171428536241244059129635871031554029048132759798810315456166963191844958288739507248568278881129349295975592814209237010944171580915326394368656522786879508190404556790361572971903629749362041181067183791444335022339236643518539039533081509499394033999073776015389650893987646353233235656871076711035910774929690328025326221543697591449941803897560607035881543643703708353138963588645432454862044289233177331348260719946044131814642593800475432958891793864529852633836100808654437714153769387631447171262449993936998010183791420109316465847980399400409853160380580003583235565794253658148472997532418577765621446672082204244534723381196445319398477050830977842168138461556634141265059756527881082289972170723386919151824444769879730974378668995958000745872622302398338187330003653884139414124182730510290739536244713145573380678273590886036479712384369275864078380197815092104465782684362286799332042368029192406654391944613789582577367862381244399320072498487339991372642552059161107567356436944452036003568736528148232724342465352974581660205234524608037939753798284868390491728340278719045421555096210264893454072811603756993332794500756322567704936341783627387019384548829007450920923850419085369365003232478869043424744944204852327582962629552870965253589313160579758202865333177344889767893048015267434145534928313707359383703449762467000548451189060743210943824544775395400867420869602777661801795392241901720979289440042372664510982565893519703571221087508175808183110669368107266861574246025406910230662157778822205248697012958554604637314258123301658500068388885520239631023212661551729687149626904792949578958908363196317999594480068057453708084045458750022665681503145111290579878823304500360804547482898635223464131102210144701080433060390936696657892754021802043028673328295160300079508798933350572972460204711089264935614294691591228777648171208754828003587679400735139464427055445761439296725308823626489816322354630257468026307943497198846882007240167795953578568424023437802009767718435386584833028401757547388983023327806169446135074003230242682543719161410444785883837320397021214813424297136846706135279201940084195155902671155478666141082489860459721555204094173447117686028682960045733728457870228893153182388949551581291344529415377715573731177036486366167971317467752543549558571236234043549980263739389328454357698565067622754829240970308838939039797311826310421519249059228995492315270447126123061332272721489170695218935381685247065636734297058925139759665966463964116790950497929796797473554573524965230905768648047422589227556019282867958579300228761479213930974467233392993675822834694669821178477531299515458496165619961656761272581218109760335689849393229049959637960166228498069152354532706569771327032103523023634098805940498696120952054417108201148511195618950254145596842575418715531764761497144844165051797758265840786910034672214119795200335582711595014572322263017011079042631030904213402446626759492195959149877990955333486669483097522366397521635297061259971573828446834833717604293465259948184005232986814911837578352389768428490503043078717660412429051555462490104789222955291750457960858038432066423599458780473175697936257390097014800372121665350380693450484747233113252175784121116097989288644959036181093841549907630941672097399381319630989734761869604389689241126743547813840585476726164796750638006407570828249222865627077644398678887850903294210815115801982447191227293653275239568405557414854869340884027556095138320925926233445658971296715435927635017674001044695231568960583692641618018641798487319552086093653248162703753512064516724558617836267524369657872533290126275966108276425689563393094128938998275259519346290801988065389142918365241666507797900056473732294576017342254899687013801413288935117393797600245370921219996952519404398600477482245317152940319417359237317854180624744360533332867426485647149591010452941859270676432761060478718225559751070027539020335853150497620152194640774362157647237642826947339062823994589708242158895666752565590249274418749542481267698582246048098745718513337791028062469329735943296070140047354301403323581039316912182500058781405489310190234315334192620419690080714855499231577555943082529479460454035221936433195771344073378412401292481968911119367957221180689066092873037319096748300098250847476891544352309796448795571015690586253576380788559239067125079098858627902410891290895095127164377063832005459888037317630284318628519680502726990609214259342265050102796229412819449634409557198956369566590387512710272908884990634369231522709514867924403940558214364790930760652617259004600984290484158028442103139394545022725947555062096220878491126034024880340401340620651043035112558789176393096026911612291386376759075563231974248174768221713047210722724683510556591447095614446387111000307088783603813830546437386401885970287023027763370643291363968610929264563656001678890688422571305343715407851367467265077070039956938641612950593396745465179081093760062016900500486620864491651283814783265052678568256428312706555688626430837591091314583296732468607173494815588328625250654268192459950297602606095294155374629101234257526919862836486632434511936278171458981466875283972849260903149982154973794295516588644736634615961017154321223663000875791105042202145599117302018458536226943373204285679468937414847632635768920965084783983504904986264488770995946980622379183147934302359629719421691485694162410088283659237046925419144832829939357204443986223698562745728668404897361542944664942844764414971373695294483556056667877457061403577988027444102930177280234125775984953602206756425809303630799483066818602183760137339421014123876503665299754405943595120274122043937552607659868092537224839250431973269779147878739162270804101452547980794224804320488504352398017932559484080219898604574260943357464869247736279909476787326431374008642291404384077656762392939503266867730859374366276168297099263871978222296017291377606897770729620513755122964143873263429248675047777815594048892768586004878368298545249122440138632519245025685308054334727841561139941781854715111589669384531685842892093761195053301038859896739769952256060618416241599103199520752253708104832619821950420981856392730481805974564336538323875697196944409420102755526837223981211292772778965596374552540370920392954996566540675274761275478593828772694260904930900205902243620696630447829238522298516080755737077872722826214230181456736899582189839831371678818656804320544735688464018982995585091903865869405624543872681771182770709109543408447710402035179406835693692047246933638839773203659150303642894504322792700021167299629884575851827718720000149034539492059802005987450590386418901070865607479782266737961160932848900451769010489782456035661501402024913738167633263097379470798988668002785429969068733051515825665236514563792219998842413601073189231866322851133186628353449917204669927027683301358211812538015682975929367474667924954915326750904149073030501609995034602446866391172308071838500680979062985643088149611312473965102317813286781509640757604757513215685884028413173304803298597094054289369987315166369897481737843321505036647313483080906557066036908363510070603923724679936377265007675739191539313157941395378623111895892327611694827531173545110328440824280875796871601534305717737362505703819006864850056362483325328873242903693141633340885029415812046924591345882105548232405022871142704850686298129749891737994759818778066141166101450677544078694684282459778036685010793131238905764093558358835135751046908747638555775615752130824261207651686345432516441394807005360039955873164029330796238101180487088324911875655915246896657006149718654747223661853759908113061345034739819087888795423551831055857964423171592460793733637245514256114794267557436811176707522292755309945974802369061248873650848229526407408171058962791939597871946570103920044579050206206339057421142359376302365785492952473921709557338521719864586905916200251464482491636043839407698402250907406176037332223448020390282779500060215414254618778585911066400851214556123988555433378671627025952030063489462233926546008290332188682372149682754090413521442216489028006947086894648753445868791229774048712279878471091350507842789601834876993355702582751444748159042154185289932159498157153429992859163947811499767455416327588900184484922932860600512881686588464262538761359213699234329023483511343122046558851582155934130829433273453650955012388506059535819423204767850224349172163103818378060257178005097967876796657886508959371038616551270019398734138278875613387353096392995319119286380527349099151677156273717403796189439241400585796260640655990894349615325378342556894938865410824994288348798181890608875816565010091288514913568446855798467101091284188401215038165654026310949401154541837276854519945548878400817108925171187167303353060666391040864191164166129170846019627276387736411437170171261073382827312950303815279593537029523082974495096362770979549319296509177026831759644697033354761329277526231963918794763420682163386293093580757671908643816609952845875230325120421471770297971563206449420227544971868176237602352165221915274828780710970921776339959801603898731607739888998489249377151579279063471842274103123841255732019251813311322613662630821017537453937693296579887796151927867133793568859492857365074310938218342783955158354425122527945009487675814404284475400809159998129129467359477929119211757054196690208252910072911174554601686106938930823242368474414119156690939298088731555463578480793435543418969254487016970700250255459283374658573852300139883654929415815704379901164470976439449375281451166992457576870156467283436956065487741742717474638302702616614020423270066468385462239792908253337460800312963098167789388226710250639508058390163736978673179157455613384556576355708999789583017784115965783503712940813613155071285983870577791094025357975128329203606602390777463036726995748390702416087918831886133565192294043763033515090755471703800828180047896261576277767063743373492920429065872121287933680090678056068419434239867446981663959096400486469436315212010126893040802467837203858735961031384199349290116019976855201374644703337171354318390539623847099371535875711402960845621615951549095035930981930925150851781361316755441699468057738120206009649059531868295251703941142422497642568350128153475673157404654672015217855332812239099733915577104293465454677563913370069922656971812808757287493287056166038599088373132380652966824078045649473947767044707270019180924716694242969033555441619157801850490525504437366335136596982324558920146943127539501348023134808831444497016518255437359914521674017335446228255161868876913702744939626559853905598553961154829558957568056041050600444954925455605255310453254385237264364757921707102407877714392830359585221525664312755694831280162020598248074009168109841980728239901099621757695904852138330809341323075134323803211026661394565885086312190985279981300020507028708019841922351445424624169738085508095676676875156396113327316815059628535422447372260217914458188030152653369760376494974879566581146883436135607545608554928534743781925109042308246774669299363787419163635136165169034021743189814068024590431945214030462033591153685864555446598375820761461355323650499721118855421778104120293976751003753379936350003384667544716146144197802128994123085980694691670131057431777184488934378795585343494108672790996073978919674173381284859782579510262090497361595192536738737477668622797704276563636729067593044984440671843765052382774731467701921762995917933167887228903682289632271561422751088450328121027487277591402718207108051836636841970716304744642092235289854109537953322172418151861178112069915095723692629172500078824411314965052731820867807168623861892947262646005353203224603796761384349538696343812241803775986721744092319130848279753897405368947063667994800720902409183398718162302246253803600879842328045783769076808533038073476663761748640355590680961794084764148488888909602003835592902639049934258440883748697838878160349685091237034898287444935224726497033662687017016131740763154829477287333753143154917035225346591638033750210032513129347844998213188456605697685405517276006892482758036216198683902999972662280950168990099729257562903283510323361894497114483978079663452944453369682568831359077019804150796354349466311042418704303555754273889815087024520328438444033988322950135572515775277195023866354829098216542926418599707493265213748501147246824724470804876485932331861301595471748717802319295590844717393574803814560474550328984015184090921140027297454978412635328032355125355330717215311990390435353939279023074172100111021974363644404276153577442520320596701558816557891709556948779114454382839341963766157075309750671547933328790029051864287826368013768616408226673695764512115712417000817871411725671066312127301612574401292290323783122470923714086158289849026071546728071695654623703997961827351145994930503036543892040451550187482342686387970956969383706077434231860243308248554460180386899697073935734221296698237507530198474533490005511186744063058790677485054695350108696532388161883395587948787019290336924220001773815162089751166858941379063082625954632533604207645539175167894644900177238560482476329848086419554352570919341468179967341015068010953719448215730584944385272594046501116196134701985159635889901974417259224754321092046324003559038603568043292102380653039406721049966486659756119040282392969014330765791063041802717458863421489608921376444356224200259728604533535181649262649156292139319341387561621950722623950025518245026327980050494424733925844690239605288383012977927734644173098245739115821410133306537991701274899403541763802245533604832871931857452790240008885895207854546446236090813336214560978625684899793245054502826510737956622900613232812262554355324189144365600026210161538413128629246845344858196717235568849121439822668659359786025405388598269610765720663215966531147299428598201717739948566915125814868381838318346080719343021810893527496553532426601853867912527685571777372404904476825799005982844225976672747219922349416881268745936076124169683879367236628046823619231084172088428526789656101283615267474750262842459016794761104227468196368108584662479860883254138987050783207687357709408054511102597688899622578152623595010124938262946039896685552281269077930554815425009690363647981876048026264878547949726218881992635227093773733478258604690533857257209221994114366483436024012654308051283146778760683874669479047785066645779745332129956783914833775108588895315286387454010852867463860107512573637621864352012071032868516864676691911562666837755637576483865101287461885511224940903181374079334855342308329267745114143898992908374707690597488042091860487112209989152931560323819651665060802626585615120708124311149617962830018401464965469091025430789396756106308166673455425637116607058743022124490179343366438660871732249263833748495099764983126372897454013964821036431576362316613876222532299943631196350594989050903414651540563458969242113610875452264784161927748694317530393229897516615171891500689121734350226068933348449960421053718222168417212269650152863786500698497966608240219922080164908068913593023718923683002525776740679483537321021671135544707589638219793604443151242904786230820904331846468820604656487616886440301906333184903162958894528820449052282541034805107704290318592780639478793404653536619009175847767949515273614502177486958559644191941271821620546705417050577505457141185321173906809452756208263621885468934729040211757628399443106201860162944067653502580470038740869623199546819747096417949758293017428649274211239167933210324337659269259094326897020270441074943014760110853753265076072338127350513515113947447134540312542020088716594892984027100452033123272765620836835513370359647883009354760934541116379894711654703943690338435733802454110999117562839638260731753708768106803628011597497503790764197876501317599214949318372995121126511621083342795945304176545125850272748891043697755216791911277445378999129930849165569957533667106250095865739729984669512697184515158472219548771833311036479928787583057390335324614640440184135578226655015552945955200865681264291580799520899659324754909008614075668780854166454295491394310689309479096150329509539945093502893269320413282513920358713489854964910524231381468440758639318858439481260789678356105591727144728095364889858755347117579537416046529152696609826116009806063833978996625640715160785973168151013300019188807561380203563625517455773386927803131115140642776086642947180849941638981378989748092286062206067619747287874945391489987722648702428210763079400616157919420867493397264576422404826492932394082114307594270168189706426856894275418120667473767917370619384233906491622566991592661473781608417077273971470392637331895853978309878020714615088213757875589344588195370765908889578778314275345229851634627565445621019052199809064067794763542766341182272932322938180224281347620638584831232246520785406970935637338565267161346795747129976338781711405377159920392450575914154509829129845657041747238874627819275162904014607398977389357239723747340644817942447055768213011254963482946188863174088731265839949589134612273434042812526680958574048041670349046353329304156911516972868836569798282714474541952423918657614482334060108935672663680695640571946094333286521340021801392585404966774313417741777981919434411040408270936178767746540743421168536695303814469973172059909819941330694332008197566646015456110062535995941467483049746897116688434706338065962761152210620392329089780837159078457174025265973386783519859654474375852797461594472518519387605845422457684243609582793337522640310958049851617790921724669768033771133387357205036717006864099584719535414064196234941137983569414952688073461022000032633131672162579316622479906050805138500002917154269638713087280252124213907475025019250990898475437950993285048044302744397362202828329971756508200842086503315102472704799869625236569324338247064243845185469366647736888652050743910984388781075879002056467891604299602683205849540020689036321778991845487233641136843810044245420969661257498826770042976260278267190149753083382964895401449345004067060298028281846609549497683186544817842965291043940578950553490746720952660031546845630644437139724905616237984362995293074469283370885675562862023664608660799263763899065633674156677811835362973203583500095622769654405660177916874008637313182961455853800228648272589551206550484198108596395192049466777321569381369044504561088464690147582289981742213899639017341317140748510150573219331891796722299812310237895645240313701409083028862746041580110408640177820059352374349124346893791298531663097128180800921431009618794181700580148611400229857511000645940382032317213174887776208478283858326308843617614795328859448209917356415478761811300023781818261376149495503019811276267692349471608554851881228804843802828194230933719253063143143258779903463736960983225676196630548746057717671452853722320190607014723376683158684219255589694123342501976865572821289805817881643684301640866228168168352782615972147801790412492368673186177565962860799082604271993307469055380058537269818715464505324380355799933879137675258642745039837675136745799897144855356270775329270018266057497897834218025063889013612637542368940063330325787507084849310470091116235772203474806214769047508717895618220578852544962452930711926192226213970120014386008028756184813307534045011809654636874940575518650606165843980264281620006441604365623789498249080936111965230160994722211229966095157153958221852256059925719530280254173741900507629404462371458225465387060794989355444530385359648626913772866890732653083094451694915178615247053486368527684723120357830275587144051743419850741752653250608777048164379756668850952516597912059333623018946680968917393036590848876514089422688077253272807874437090809174810880441421257269438082880646686150224566656969891120123415593020579717064244058352745983362416873169429450954462532956395495411408877186008473538203271458167208083757576021459815141153285570000582491588435425841648050466408842673717134346193417226646634643125307898875727651944943148128462793800720516115811104935258402465986212292971678345412378129719112641619053860704218781239013280531828057663190686186990163039320876136452046938231102545493940146670798833447261127941674439268834027691656201808681166846201588065061482450660915961443451236778728055686228944827221447203044595465510430487752941751213891976495820219725300967251546116649140919207106845474164283894216023027120865522500373583934354892642946128414869444957797903967157779389193503393713307092933814481930796841025614070736653972900798404514259080975368111440425060799645482298156443170632366743670489972906272867436423070390505708958523197678172399180439166464397118606774910691387310510168331671136693187472424739174234368122649721938385354811215333374087134529690056596528176269622185217083071101149557305592883073065417769001104257788314108334510197602991704579771067976871622642436449735756761844537120043217000108166254818572791234244048105815907361857039908504637653118360442792774680393967766607050779716348232348385774837652060685414253795928886290871173597353653351734979157002934681047654260003948497549812091491211068085058868356232847331576433323345764177548863720068402842849715224159764079130884667969943706845989454819027252767924356888344903253424850439011217698408924798776839012648103047751646763900996023243300385732900710468143829746494792775537536095051239408702378947373755631346451021529002824721727666983532882797028472136352775467088493549345356317334357837857118976166954449198430284961203396350210591362462809653506312498553709661366842039662371746010079548649480095510010856661640628598341628384487195341197727037519302949546830830054643208114247216629250960049717214064332361530308981543109411727249135689574249584649405572136581888110811266109962419324516474988623586562709867814525002098916082653441663675230700993252628107798715111873161168327858295237981898331231805187064132292861594996369008095443799535618872543587209610338458527346963219149468868291531154781207151615620144785492536073190098866173082003862573007612327014589149354865588142235076265308797872359080280825268776225969308475328771799612939274803060609814876371492787573229944019047142195740410757640009467777287361871005977185476443527459839932232241608547701733388613645371956484861963661795391946822229645089476569465743733058387964753906355496777044514738367593292811908051018990771925489473072283529040205288233792036324920874943409586756162745304623779843341280443170773532851212245403255418398468075152855071960645599041291247018656675747998477472191446522157846531009448484257204723851660399913310127374595011335498185767727930419794125361340520268831600499827488090376389276241456305136277859462807646173877238306218750630820824267213481232060283200017579273901035505834362274434192287415092781804921885874960217796994438288073401586832724241187935164184873776014782585025202857241646916017842892809293611760489664019436693366061947889548989630506796415646971906048095348172133645429171586138000422019966912004407245895196172862760463530671763240426690141315281992613532790382938779611653818631443946114592505412005768332442260515824343020750029167561423921090730576467054305263686715955371625200680975517269213477789545320689915014107802768025478828754824371276636369271684634882457708036672521614543775487275713610994981745924565350142489488853885622054335270437339825789183824854476894051792050160222727806405451325394434974754594595599529036234138316480772684609344952653022373613987672949836274305888102087385124551194045587457712964095354256041412510424933756518478122864734337072553596720570796392002838042677168866975577845230962118228714644341780672198003553170538675917802025026106543716103710469956222771273441405537725919952656525218226924295815509494252283732969130546173684824186483473321362141045477032152251002752682156581644342396474713364610051619436052699499111531387821464436438781387728202209386110576240005718363342072596044076297345278268623937916850058072012785716395936533100060715030937441205382600698928531885206410204417000743624392857997203195759595407086893863286939269319506782803493693785198397917321059819047350300733165706834553844320512229668623074174536336245946617164282664960791820566080592282485555745517621334468485563781708061276244865529455279852016842504404706177720995035886011575634374126609783665224207071184500686647763802169097708050129567732106949613486375098789830300824767016961657353812448666501290564483394448387450115240222885353470922647566787867160814233941763083286311641302071438640567964980551730602881751499411352181507524090437382942916028529996099258656645636278191409473235539408392992796636399739239524574790668046199239649974598225981867098724952481420148379889193318937815951832442889381717935772621360873093373102593694735935515829590088801831630095884520512081372484050197089183600210415070533190358309428202392509565948241309276711401909557284855005830964306154933440659582919641225917965153084031169805398467784724339371009026042842296215691889952238173927043111474344097324774741565829958771216130553314064916493128076319336717611552087800829676744698470369345121752822769680393220431153753216504789749276255942085127986022108440099952182435670291816158217549866038737007034096140285097662372744773460290672600783742677986957520474478576541807724982801654267059790046989149701326879768220905065864674324293431985806747910935868271351985558503516115882162096923477790358600830414496599649671058745060581123789260057253907362883045973209896243077722759375069843245095644151589044743963292053811400597928006027284462151167553381043410086004492044570099986962681152791174697490176877833770527864689688383239168665649447187112548681941713360822880150267581862219709808754642952320359877513364065407760840075797527935924462371938867718680112929172710977649888579957212151275491936569173145378859927200977440631682723690179162951588700900473109508714206451456791883487211904809313706629609789802126489035786931384856641752981578919757161048483142467589464965332890585097337818220214213961526667001128362560122268755418378531636027666254864718642162962194495969995931613934896411867111253802200597387501992289457506287295616574211287278235004203003310106038625667055394025216776136650192624974573960575319764164649321151472362738368945488660824263045175115596181653262811363530306802890137609438951138765470684236662961378769268248831596672298083879707591053768524808890614676718938757046515764338255203579818650959235112389734311252391727511235836270493959358644894210912826096482950727784636680366542635471984679921097294806911689916076370684729967358003306146250276873020150119044912526567462642147544567043635853557311383630449559416905186473971247216006350817661828235459556627437609347960649324411056860182793152674728834762768864535574946642155490494528513581042657390429495596517740396607357873612411102467514072768149227653381139426379657705357115124420871698105003243787316031008980401668671324555988192853767183981859771338222168045162734634575616038031072292580403171748861538782847324486978958610386672538529263556612362198981108170804309564229803231645881209548180893424884404685774078251731396107972384562067982203866866071745780449680875603804644346025604299089382436473315567622856114555816791479509801682304618221476199249767690383580923425854497123839495972973315471470717881534283464004268806105366938677714566010153261015355583381067785382842509465975270149508552608022777983818988914286062179292543026885756374867107619863406726373091491083227076836609009125091708076222396946817567078039928630078002062533520438148647121556886829909906727772799604465378132465623352901783976291715816923023949538821683971356635746303366097969142177836755792781333007715752020849973999122493451811234774388173135021305727626117913679357078826676559511581922033261946952247782687941309955604845159196491211723552426633284850810319091115691735430671918830354753417521605833547809235737920995082353255832592981047214684871549429944769181604203991181214886785965066746734772928501795156731153527265674054506685848764914061906653917817298072552865664685929743064666370295845457518521077384094709853669374194613495500188080817840228555864517569929039018744270470591766879733634928354166649190778352878608223671392156253497928896478640171474303673166347906343337676547313510789335335203848401978596635643463558052594083902639729042826834672777667480878538190611210275029866864821752367041220041356316655439581885242846626082409889827608183789472770238249921716714073335795555546249692531022744325539356000225312260566432687869941986188030082229400825139808564186924760731923812422397896427970240674201684416776455677424962884275266390257845615137876462282301755303039959561314593092927561289423129013340054370647948041205551930704302299082829515491143212176364832808849291200012305804729870377864638637851398226166176382246769773741282809373621043961577232956450765293341294995083956499725464127798355295579896254931858825844248078762554821448022978422808385251549407861882932370364536513833154275156463530885565362939399381816569958357371441263514536610959376035062550044029286710871846027878432633396793648187897329752025869649571844509381518176519712722488569381963488730108523854541312671237017952303828731020459529295891806167878803525484046210557725590699901149379756115804367180661148088382268726126071091805753347402111831315212772940746856028714742048129372594942821410754677321136431410138818075507626789364585506702683272684098619301871734268986654027147237734437153960843347196725566736635247842574897424037143728834275043838831057486297081420176991376024267047311068500686497035756531877456580509028043311301845235695426507996423372053912082060540634440650624371777802616177970613282441898143607165054057132314311407003064448110094197657666724705447784829058019856790170784364009448654235775814786500792771277437510295292606777928181725224460041778861491261198987558091122635525294835355861883298859998198518572754887583473164382915872803900994201183983430664701750328205482128775196869584823719700054221122417913860931025606968663163104183653216708255159836904177912955691639779529301383025057766109539510676944071492682945099843101003237867375053782839097201122112641421842925179170489969685920210592702190080075286328452017225684915501301683457644703583060034685588512298179485850406120434704873986886698369300376069822025994346331401905168430260894844741027294585211040263809249392606394253747024889350888456969412158959691662470229187378825121829287696705805631720719726483028166201180624691950471053571902830381753577101620252673007670114869627221329771384657670946430493292589593248605246479609530947447315465428130663112739749112306673045452656963511032172433431037096602263911739402799772808278150621240407181978527914750875752835421233761190823185039579970744619996812522596763944133150701442090941631718267561150798606578977483994462865254514640817271224400975810695947155733207953247618865611303701331197715928725509574079553667656900343391569487411314294092320543111286933416795805250029332848904599494901491367373477532624439060130703093618224794976035370062875945778634812790649522030382122064712438352871652833501611727273449984974433206682922912435760216002336125689409213853501137690701898760036521244755849769164069216780436260115573533668055157631815861054666267271454936162181045728188401284025998749317904816526747408790424554983684993831491721644976254968795609085826919162122059604951255341839893534443407766670958795671148856682141631597225487008229942215911683094008052079355271676004760698500022973583383431863300813771195772026767526669225116715389648727652646734990120969580157088581549316773869220062338789291928183161547769589800774711004563925762464664390968087459490079145156384813053337221803905854992669645932029802095732581025318105718653101206595504684822903429816773425180710755222002862841171245359933481345157685215323813018677421756549732223301005953514503998448253799025903690471611700189384032137848847211997987007241396281760374455367112383275060298829918867795917060540116850541390686647200621695320104556514945347657254223578090329771148493986524288658231524595804313157187967303884939259262393560675128074756804623870601320125823971856330684857664796498882030340652633829993410943301320688000881368047157376345580414472305866027825373639110020292875496408656437788744988557124391975059239896480905041333792577898728195731860990160037428302713431111114347028230404868225007870913617793377499175745446644445185040565375660529132285212341753700283150981965710394934459849380056044757249476158465802445722399024606299806836969264162465085807693163792106896365559198420824249220121356132097269738496372386056938344512996905746961499685606124715100489537208096048051331785683672244422705741262537788443270085734310320493406871187056825384545556766713812314072371321591438033115898169738878980073025696422503549827743167353653751360957677550143500879597907451953589839127059513614691641103163260898326658685932136861300872464927021045456337230521606971817375055235515099202616546240655086771305605618478888767907531388838366496884758326028911624833509214625765066185186500379514554807134342599605542714836125139409772622465494850121950984003665945730842190839439807984907578132056510443600616708601398365528582701938480480238369756435991377169020563630459787107577745761101868625974124401830664679774306210533765746634738331000920624243176857832791409067928419262318752273541096819617150419142881810941562754868850110079689788468881560935545243430653799392398397849466229313767280072661751332754927728944142877359946804235862837497937796865491726950307225326259694400466273601574741866862332799779000286603423020476991037730696645785531656061496935796646670858147677301517304418239601185145833226278457731831608890519104082650095656691424335350021089580576317284265636280594948213441412266488260228006030729462821760623120769084429276993135915415728244522852625890306767349567971449902914064544003544518982718504353571305901172824120885078617092130061091074198603864800311801669880473615927653201051871155100991999335561294667975002596197828028618515751416011086918764493340076960381432154220611239459555167547809658907941120218783556264844352294891526624181980124415688112996475370681640602621379469022823671792333559948712937478472155146922447127089323330777163837219224803027752002659489285621576103567878089593892246333109494757380441001782913957885102411669933963640796557649762816093252101765551934471255869471058260739693086218093149555950415498606370066738264474257419777193791602216682861361092290332566486427432498070005333349135754016652215365443839377386057200085015694655200832905387614988024357658996269788760761217338156542411897842493963345993321463470090884246764801177589364994489086516581557087860871905302541745298858565564085911415873938427037256739442772655169272207125661272182947237406294141955870901407259692679053411036466323713772149642050145903025384941698350862063915755244776617352868788061438351350252848680120524044903160530378588961767097432939233562654025031770088635802718846852112821253123588064145004575300239741501152173634364859821894393235966195503328441624925849691200873297091089330113305434813246329347810994140662250545134855862305151274024933447416721689959588840773634384642678082229541379729370487164121141473386779450191077878379554889239707315061823824956865922545354123619103323236693539975467692490939951609625373310467032027348494368427405123219896679103441748448241630591828038814802200165602265791310238559702363403184505263494890303772358704552450851496877905807511134244455124706450076368209073839079749401024616367453748696994458434302106905853208925592862896486555066678929084605121508317766529318582436847204426945220318177961975680403064570545318728159363126785072739627059317378600803575470732046863636332456150813379638449566214921790151317361659660905015451536260001361794887916789313339230485397981204318131117099376215641040220656008247817123182397245523357899238673656076737500579811066954201049019940611467657584590173302475959796702104316504505760297496061120284450328249662458663216673405524590655208204886763871344272366258008019120815429199852309832939079851190111059833582537099044271857463725937780261072294153267504373713727406518161271956070470788983324752226945041001663311405529103660817205777956887196519612475496738159588704805061043074333914663514821073526553522630599374464607022646242525239213701672507020715007342428273875308241646313365920054369466653112089489710252483762845021161824546653041670703877663523409529260339126665603884963387435232079622920512408080672332017350232816351278757083064656357250827419749127483250083385128789770020189700968196931202700481779091562393524490094052587913194556708621594474005230056522807916169506610481272271013043325041374090538773909324872015734509689912805716272654683515100011703432429757048899055952125361979050941419085702075455570674755395575055468257842184715552913867880213067477548252942507426070499209228717231620681504176347037116091564975485084275827174741879837001906171747438464788603477106185011791265169372695954722050560858366383143313839735612785965089850649489168488934933588983742960079408706857022492200026404851422621481199906927042855813484006826082398401888008094342250020957418795280596721951554535890165250581106113769537528721813267901577567724266245386426309919140093679924898244285380535788059507509549933547691709602709770743152170605052834680884182687317022143467871164820232333498018113329365959936015811857624013114326134402089616877708648991952361783251508727203567062287917561105671207151141181053322572897995335958086374944223869418945973846691247720289356572594460429146335082625493335171344117832742299088439501590348200289923782489483833555910122835927303019552143331922108182660529522182442764475344837925434836007435108676700081711452103865484161836622904275759762324285829430156947653851607982542477144405545460754203634360830643214671628738274598937578741806874087523569356003603479222968711029232946046067464647921104662765223925478225606893954368165280465641717783946501782364784285917284661585096585897026547160549876429711930207682107993961224998444705591688144308277223815087641240616672559677993641408984572065212740643080102385014154721973746744915841134094458450680289632958327362903996190978894607102671044457620852589614152537286270441948684082994840334643868975542855438441611313685086373446759389644308996209540095900951587453205065858301166385797513107126091792659530176619642649968499496564939572936090788008310481838075625325225734785450303457216098786105088066704840359874251409515256214436792774236329051443166444824203329994031666356432779251961948386508519330154543549052225721102241309808010436842279718815943003981895903175254976403790545683090071941074786864538556561266540809647149450362011269086870336183750220764092581085753823614169388991866662850333568605637811497531155172697879217573932079731297267483970627586377734335877317278493489242502079032332649244720159509204627515682927313357441055180053198543024028756038219719104974746334953191241280801983387858220313288274069381264448631118905631190533944722791598525871210831816029563342363921468619594096128056482218377785118181208540801936597886470408130243544602379569263472929291410196536343698762334831699491368852179113134992673938561286273941893152465756869566652187106942546136493876125748349603625896035021260103738478761227355145718756469558822021743623243520665448407890175157459507482650750015897358621203863565889591398893266264659438791900805309889798952399411939855502329122562815380260686198564202956483761660772680003780942715581398947270665745952217193402508064268018303543382008849047765384246105228890074887004727663967423107755058566860906852400220340439737986963838936499150200287052921581378060691287756292844842912314564418635324004178445257086508295199924127046600777511418842403358730971893603497867526161780431364731527566884871913417904325999893671822907428001907953603687613041410545723117184107317548244633067297808589199995680966729700398302621256844225651485017837206799472047709111674652538059519720029293313821811809441024145327985442519939056691244752252157406070701736849964568928481990341473779716625365141306116587975755140487767770474704967651527882534471111165968325636411284847094027696510232208106885215004516970934452272799089111024618900612276142892409147308690266094450546069608122616067159494270779069532225630087281785946104604366855706972232741583740597793029810649716052168875774961148750232865916961638470177520858549856090039030973865187071007796226482362973057982649397618373566018847804183144390929122320323083074992712995737510341481492740191029647585311975158472664127791666610695703510208107185495399256331484358274098646019716583103469758244895592038554005946567763493877852671499801101666376719429608502447624438161504273674617826932355582508669469115688453522799178841972210880086206933753162660837154690117865482055209400025331864394202798947152719006689623294818163657053824281131904051466572611443015356910114938113133626522009962999960969618755265912879573284254556425066253683673081261696273912104761889449767774812353839604371918879564811862110663021048653262843585204801978053630385932591753885357169934274194622719193035623115234398121307703523500731345846420665283725257277963227435234262896582625290994375225762903294216757064462292318004188101766980071218318383590713133544698843554220775519108698286365559054191795220846562083282836525888342418197206967972332058028824328254475105926876674390945931385246713055965149442928882004314405561743492250515252748641852297620110905751375301115806744385954234293982359603334030094385544541499463015118452184433808619889981570066539718956631178038378363357223018525304857623287990000781863558647353943358431583057156474195152339800692065663831511890098987643107859379616204810223864305765630210541169351850322234576458247589904983648599309891779779491290819353176028063173842009428297393626052937103102972296635168222472295737417526879358998561905100479197272017029893967422568999579437503272695089656515620619127321183429584367194434797952206132526608856704404877281189882138287120196735538493004779933085865662662656200440883861513051355782249427836795778118757903220907890039374504012347973942859461011861203240534844355538033198574963639653377888921754142874186223909362616671022040425265511266965500587270375327082130572193211754511476243806206517961105164108076768047282847441509592011156287245953779981987847420319217654729183143813694504854058239759475103535303255007926594030709679082184991218752641256252991808310499249031865245545263120270845111422666172273570743198741618273092328438095704039353219956128000906204198913477671763002883582526251123718989439664746533025909792630173282414492209144380692976319253454339179044272000374594491731891333709916226625201489421097190431968981785446637858152227494962683564703921089122047315832768551005853171953804587379610456720387545684540217479040479435988376801733972797926219108969907793403619576549193080140650290346352394889009896542312669101121003687585688394841249395671652710283948042625787580836982918884662263115463815782019187723703757418654541660788334332065294535357367066978260231041150704308230526361672600221664550888050922888879309311340371026190530121132247227135200103868604192666487265529303488290607477414096865689574561973643234721898594107586862075540982216447031059769555175338958880287326210739549658731647517245105721917163429899878678501008665631337903131326653603202078193656022714372486174398421784008663172325533374672860496266953618723257669229944741488145544049132487586508663300627288577840519570525462446320288432227401818720095166184629962363249826376271154994086762020454553503501123847307280891944763150037013075513464777324869678190319902597028638750760035320181378045270184396385319473075120184857993014529771380664075156591006872449480834355982941201147238716367591409977852599093033734680102242110472549181330119749580522846587373759894390167306069760156404226277380735228025984266557234515093002609164900330576600775116538600840287891639346992555327134941787205276852764819508503600505579854157810421275596223474597798921799638698065188846998488352839695211801681698844728922645235988546099423368157681740066518644345116143893312890129831433230516526882120209041025641167987656278852153244051504873715525042647064953553269375662593881835563276671748335427533450607215665976022874335790601094985000869450782793800753421403636984591782581002118260638950835617764827823492461277873334274680321547690638918281742053647648137968019819444113812538132713469336683908313999361370451712054466652769953247741383806335996063741809860817157654295137273049112425238591650678402226577462880510343969452683612230308912382299832623492508088555537578976901404149230424250751551065151976475419291938186418672466654014253681562650131568550895080059564370903009239656461634371645064864742034289967949963855860183430232212983309791984048262371067806121863266717641557126937032364597061948245801933799711930961034968034816515575476960655722394675719590206451265501602284829616410811776590081958872807866814061090992723396720963708383811135478577513773706747705929496679312795431888074262776956934540303409577361609180256722777949031115346541777400031689751907958129230997117139406942108478511594838570450189346272139579664987347464616801790298974256048264844262017469462293208186893894908153389746442238785753661757831252501712991740077159960899960682320912521777068573124097797132158434607433155940326995885366906038351708292702857874635259397684358102852572908246943258899648642892406128877393102776487159077128739921276687821240016950045797552222275212383394194655270216138342283145474962670849932367931553389092315990997417038336348407069253598370096235378400905939244885262548519042707403572831066694702366986227378227299163553704104275221666955167622203885531824512102623619005236871140625191673267717776540065008529994209052831778341406186235298559627040219879256798066291209329427064487582574413565733834706736430650807253666412601269975834447553851464807056031099880322360755346785301028005926547229688951044779114909451300402099466798064581339535231384743791697437060835659058416812613972930405575711788629989101867673989525331871422635820981991821896380180901369550471829513040506569494149647887823394838321770545735652592506334337016944945208324388133324534735834471695002363630500831387397959656521849556824006011722300035064860969215752712230870441935943341875521675973345309069425376496700851128309309975049913448596602867795982668291097267220949727293980683643587473960927262655308321272751234829669448839552862229223889522023190387710453192606909385770075514525041096646663406164396390593965899344629033515617623422289813385005987383261717817377014314310089049503759694709915523255674354396418245297291782274389160792390712037117641037686677390582667849666913430322694924284963316921276377293554664206233689843289574256803604840099613648575907597295120868277452329257218614569880505200300894859588492902134073420049675830431464068154226566562313805275023045160774340100931895572741428562211713588595913925671412606033810375208961601937881561110263699158006588867684224773709330069569795038654593060461313313019449901841936550757062589091910538622202149718566933090908491771271757771163743681935087493166633113392429033025057793051646600148355922836026832377452975148096728607391225171526353357466736818040705319323356822782281540731722643205057360666179620117756834008842818413969854929460271461102354711795337401857414001478374384340564231659761278125626459037666839469536576798673670600032755960483701152928621511420678883174880786799386610569861618873982178202400306737596672446516242191213338871539516873041546400005951655889609814849867990922496274810866487480134736576632031234053716112671941222877402784778407319740594582302734539973550618956763806259149883403120848417182756789456828836404068395665697916159338918330489182795066141876465146053412674526409588574372022540519551485390750883150195615780754226779024217797775196347688585350363556287179402868976821597533544311783111317911887161685859849627629527280792527301189106057761164687946716911858221973872144293599238019897395880288873517721474625462114774049356362574211731358522275566142145366573924896541264535837421109790253524652665456561748687098336964897780755465693607698032206398971767721088922367162484793290393695564573211804026551597249044262922248566574702674379477437778247467831453711221735872446323597861597676832280635488284322381784653215697342736287546061901920784561071771535280067336516235338520535832675403576682251941835163160385820235521010013927982518492581160151769708319795473406967465372560310408213944325840817670709131486426353887400555182120848803551544595776982374712526624066620080766514396455451166710078363419274246919829904025299648181364685137484116416605333909631870971227807278700375738707497834608917879348262394510755893185367091265790310525181129483188404552934202121227631515415249544672523427404046249601803701670841667460825345397792020858666941259348625805330687597760541180869773936830548357397552842671165992154228386215851385538394323277743107541351892885137045124704037159756902113128760504923243817691030992447338684539751671511403769098901167235129636690470353480751119732086181836828023602043760740496966173612769596289172314010999404048374341424894920098271426042994556902276558497314856158354039396030674679799354465365697381781003836661559380922787910499564400253779129761071309833948095678275305951828538869204805476974047152723555062692763686153853841019811598537714876427678914184033500655656612483928248586759307155353046938581605462436992142174653127733315814547115416726790116149726761419470119974669186945639279080600115106664817277901045466927707858826599021092212974137729444358967643884376668378944007833630869042578489460004813610442304730918058893092261400972510349926040065026039029931493603208366567779648072884262828236150831698586138546354102804224658947083305243437861609461751775211821677322696459150325228373598209223767986246111706145939037279668268303316960765249481220587933644815603823750738070268082076069793117870920934158681743197903036546516078636620598884377126146786082994404618682798765008722287411682698121877995307253459062429670204820288055880312444821237467946372502560545212639200120102754349915896777682508642867564573469076767052155269908738226535372306548064265375634494635291161337499824877508727438172227138617153511600031392825403414797219041366253546615793502907880087498548686929379691952821972023484022820275054859878905563284759015920894454451370608837416182428876247197577510910050340143362957224028579848644903431426202361861903724692592236743134832923051768983682286062997281004585847136769434944628495753908931977827895242289591785857395072758104127780611974481604643059014481532449765871212739165364465273502831673838380525824446834530819211398718181875785030972130433516386089092310083395482575771371201290198747940047538988563128416749396250182947737802528900873675996241662143063222878700507740921480406843417127974867859521446745217303490147373740878924803770898892174535373180395390200946451253341496066646940967966104561491877115003745805008675348969227957851536285223787321293691599810597533961408458692270484798998297464530115071918825578911669041084451904039909497909132379541795905419639406939567995398321466590001692450287873515403923873001380623927628357501713989524544418536341977586200210998331039778514260913060605250356830156189972509190517118409536118766031716074857361666158080875917976595407151282252505295276080479818197319666043034555245987454298703364444775702321095579816587043016464614928333490838699555530487217839788274841411020584240331905189763774490435880556607179804494576747918077151181666141281165244174754759965778590644392514493130702541446582128885141753193664812157183874486949248951899091019650453910853672510138661994339954199565041803679868163887478249815638051977361887028712901693484052396779266152486820511844022339167104074286306016984311306531822657402949217861267140465319723079389630912133489251906399986836091585150529639087354729991779406945867558722357524746925060614967857244322196381907842337327820579501718254102755651862517733368667966183910206927351339265551957488871455907847074011623102409988004906336820844943853748380001611410080262926426406254875944187210833555342954041284962062939979172294157614604275611730993844346100907628453563229463647948329785915701140696780953599043243149457276808562628590833158995072550663677539066816235972584264811200281309122155448305945058806023324332015982640825899452123095718337542738131424654045353727710847585423724805452617726944278573081627254898411497075506264471550381216353510563370135150910983173625709898381816565565673208965445629364915570037866486774862070469521754297958716664997971378352875425025492487224917459055765365433886138492603640056710596854609628783475174090839610292018402556842638890356361677552853688395493927172974370231816126392443093028118798860620391898699315298103987394153425370493816627839521950558320213582658150743659762865338594652977869540705466951655380841359477981008270163613664809600043261117400873081007892511275088795371828737810438419423326181782185581822264010709029981430506634717913399080020545703416825118660030730878279736290908713136272099932607535880251408240586177139155897652315412367299321568987323185241421456920316798062326273923314887318720256482731932249150697354015595876569681143155648235196621833865506077387805495749254160196053229665702933799318237980806426659434417834161684105648970856346851280112431598240358731465411229917213235975212749294942752343924684943242731264903644570205270850056022346192229894559289873386453725084183688159233430916345208546298422663050054707555944231986405893207803194595685813371023258223732609651392382186627913573553198254600662164722709904287099352053217904610171830500141811424669657192202136069848698181266722152931130340774044094282243688134167131866210373868267537845870339101113775997235907093439063217773705716664890674313202591115768893455830489286520086106746257844426395073240207227995569030616348385865580915658621284760542205128156853709267886435599826316352479186669726977309625163012848904090464888284918492919272914332145746253703373984635733089256927001120060857940502706155706537067458824813320988248350485387589837102281784400631986306698356181479149233246508282793364629197841979045949874057128533926423579921429638085515131898911642504611262646953940580822509023134023736019944796344945435432042746264531882970952479439423050806858267238559983621545411717784539502364590611476657962014895291416207411194533969580602728324604678364732742772860841271571101022702697222672027574512111140498993852708846357998618184409472664826032959112835020322090426866922832513176194833353145004702642560794984636562107458513996343623065902919193572365874009275229060076642848306756787665273315408429980653354730288060613945225599765270915494827844383633206595776985732254197005405480583692017616516924851177954801694766006276931367998440597560289980867405941100942776741916592797372130422169214252541655468510717148321297386980288900939752480848744287027944116044390512913598280853475476429894721297249816249164902091822155632409625534745898934032159767437969366153836890162577677320146399266191452006680161785972446347799064985574232610368867375619945222583503438831166449729144824438975084170984302586995090388502491510656538476511940211843847010393826934047903000534885966368404767428662905413836734762614323090144632021337582959922222673234041343461031051100370455084212198312975173863047215472868967255851980521630319162676499660530326287613492218111502748314096887957455704147625129181193607920661172407849587674065375347266733397486070529721230180731918649839453483289881456674553903096045202062123523957083602901090216736279473611120633264900532098695184279207962586180488914869147298225637829571636930459708876466919404233042236246903348880283475374152639554146388591329368120544104884383083955352702215448482681358419023060501213237799369513005854221201751072399279972517197270744007659359853949820146322587571459694360956586129083287188394469965445769963646508948946767705636899309919603216899495218596748448063265883823044907836825103655250981973011609068675959565270172395855635522872211758286951347399190738037399707107317889163892186944708703492452066563240281567218007405283401531985756049364171906156838204942563124766987066922973455902106345106426082128650137489116904619235264591816065906809576705048741890497726236929480447828019284748180089382997683178614423253908303482558689031756514005401206565018678929821340029598544699740858226960811884298352009557925425672838798933356440478642217399387192786662155493373133987433231970324509575236799847260352783934049606885986183324319167527836875975151923880583513585664622422468169792744303690777520624595931934179812750112394755532886890577493663048548995114803100002409800167674966207315943815317179795768427036003473041788247525652053595171836435625233703309062355162637715542350764150664273462087278211789986649719212296688230022115622105685788903777419397960999450817664011363110867754373302402993042551068154105520593024701617417536575823782764045157457740811709152928775179702300356257454365562757907269773703419451917272927590947736854372864919229360261622425258942569061728779805960042202897405796445022067442946882391138067769581951964741084200997819420474944544561507391939757567802703083927759852103241477535774070396551709582356798894945286283831582300565667067782860265899954904784367670934805736219590946406859655531515210214165862578488240900307211681055790714566371960337954406928662124294287330662496967789216616794885418506513966375392192161824315673116837725380976881469351006651960507679426092142193573830497981529119237801153088001760810643168389485081942454512527648322601785760762687769567154576011574342267672257109740050067177075719457556470458638768142531812098399032982175946054099764244871112077839294483320483604381379952443260310701853060107831662098766248015667296341809383477510958132318931268418488965004755766423059672872517025803662520129307233564631564051734464406554743285392877545018046534266663269963494468398946905964292616771725497814226169830176859259629322008393004833931683880233913235864313109073331658360235063125195285558445122087862162714465716338951639600352177395102234854355307567732463625158525105823608636438930077406509142262049088649770254695504766794431058228180106896518397700767873700086995239500519019794989006807157707634475027834024610716257866437011798473628318443491241288895604754670268569294104766714614219459355180219814330787277330663687622565595087743790933935107128602336160163691509280533664542635626993540913239018196102405810671779496653465878916801666528860692482722425682313794785479347352795696465977590547103050891422923532963682307406791968801296509192582273256155704363137739803649608851599232950662844313986975697551841829036126478785964653860730157874612607963048040330220733707123009838676404848051575883990869954688547617730704248985619484894817378040586384520559551119036524239415735907282144477668776746906270590474971574584202098143333362726973117926187685568056708291700620027596858253022533376693668016476155225950464844162933793302012080852732642817267254293470050905350534764817248726084236647012267779898971677020067891467037744596704067765204781444997229069867608853846223633500965601157342697688293765701652509257896721214497388211501507372800877178067988300101242785276717675194268002019546302227108495423514251416964769672299819148621208267963469122676231760729980627185681315676260933147394672495466782742086186624436211271619706371488049001652427713170928927472902510439219543428760530844614915261078956236808625882428891706605737117660035038178175656560693056495365952954773566745011758606756999095009598202993296950670272790655446656814538868432180890386531223460602532793790754582815183754846457015396857149353235367215196902103048789043510872525658613271021821733149836749876653355050669466803068341836226379482225021819086973537216603064234852394726596104539763618938719336572287292904731384842245075303323560269054588958454937006203850212768869756640421165902782400603685565999659038674405919701873225711928402692106928807887148513316880217135554642686932818594296345277222702039650970592871276031276217313961475217012029724296131323753686891671877880186993502824325717001281279832750389358484107229273069735794248791939768367112753243772397529163838826078365433328662478896862067262955475130001998914952793432830632727125742307949907809054603425274460068916469969210802106946715640710329089174160593153027357146571757703245050220602662134578948374499173447392255377579514678203168539327574563314845168204976784320476877125401882158434540579555804158081255964276094649122629654812204721888156054344390613975795139005932121681445205693803252768080106211592179281068025978725972319601190071083685402456427562380657782539470361980287832466286609369666625232679293518925720562778525059776063309167928727331600392544549141467777745917154965975946845549028747248682949790016766117692977928246858957078701838525092118646314386147070549547060919986462936516859212240901092889838487560059914405680699737525693401524107770245115276270997273523850927923710002038518020708279806188334715793483567204204431202625619527052006499231231147720156219424016469377089307340137158505593383290494120203654631776084274499414542197983430558693757271064128718020628064360717855413397777222110833649594288973944833120500517080243755814876591229006057914569528561370453597645482053651566390554159674515996454773238850571761527637146740146329275019083081108205860872174475706974006354118191446684631809901267232945375062376420378056572043051598391557424268388036316327202707453359479205841346060893177504756347760555176165551703298470188337614365106592842019410807172326238165784099158655333701361568447451856191051829843500926047082720993964222053928760249480849824487494549240769495911770133468277642816921356936216230033109331373320832502182147996869284572066845330687079341816221747197445891684375850412785519685083115502409916354761025264998450939276144739929830523650544083913115355407105085578697014023811382119931457100168451931528072710860663694440945475016808329744600444683375193287245894866806984453308243106419505238178949770819888459415939981808484070207089447614358111264632095691611368638854252480309277523583853485202321346806827053909694683472917713496063593493238910601802555264955360222240976168238653407971208841926118702798315159657321532832455697746709682624756532685029812092501942305769504749998810065836846541899656300608745941516275474758401791323171929898123086734336403060548208574370806747525076554414691552898908306714174243464986295667013054804850833937842938382704488991331388906901674726199772798214342753520788362322058217179291483296113176550673083216402590436145361215422084223090354661371454000876701793501768023219759486616203486027096315732508138770864727252398808871401210939617378000493813029952026008465793329282769243077413267548959256443762684787776339111974734534182489545764458873300230271110951353750532044198473502999078357006658914977735712426030065893871633982215068866717535894809371694620043136419048184016760663931625877227742144269209282972233567096933011596171323185800740159111313007856000629798486308584800604168332464464508926051228200476946945820966323541511388950926528580676007766106591341443958561698844117191863832540222283455598899094017024870120551688613321284784741105457651058479170993550783695447727525774278827788670120037999027225672854164036310461717850667326926910310541507800186474985410774857777443875861613086898185971241477518658964683265528356327796310777865491687613090299097782592909533670204270041181605906859619941172673436831239791522224900398642095839486558798614569110498225418609456239588405480281089476804246423651093439250046796555027902921044103078136430710499380044564408880058278106828283812444026843230165615494750238895248192577715317680917690351135159725048495271384974553429917169655460976771220403813550378595138119206564926654813115479121346672276679559957375136836876578295501158433184546660250438799153582162201673987945140822439772240594440927374842648098548469538849014034685850090124438233573155266948689738067317928710518887822654177239761650066417410793686217368072586795455089995837183761051298314768091705612583967902641089279980010808642631764907191142090691283827367318984278844709270376830686224262592467130032212085690296220400151760116048746267455600809133649621974915646776185205110956983615772904101217548554471192926062105829411956965038156614860122286559946196339742960266292849269164715616871537692182121389676124512830549745382153043176265117290326675316674939660292471485778406308424036444266774210011560446621453084930473255135667592262813750390100680914744050977246682892412357739586371265135621603905116252788322726282624409744808366756111192670612795047020013628442966751964241007244543474306777468197396682794722838076423628101283651053987065256394478385363134790079136067198274712616268138099064650013996813664821856801897942620685292235256090157784034004747684047692441128691972117452611022306242517739730299850191288364965893853468276775529741950484330335595646285800365589288536766812159359289921176538339844669948530231363269966381722223176116047452063618196762717828799008506804494032085396692712416297491119946281823312449796982753677782418517724289333459806597325627009347875821948652287581557092827588194239865458885596901636868484347226212229181428016300123009441680078984757113741360125437950049776083445688045677475594354926263048859029178555325389275848119795049576618441180288453636540425332870296729551627070443172519518241566273006331444715867206902423108202421606072782383606132638193413470402277706691829240155679093118666050001970845956405232403766813069692054019431430895391829225876447560873893866397723079977633754746903584014548366382342255232782385007545043122270810543827094042013936459684240044216556032734525135378185264081649800534172812259533042065813895805410019615600325678370105555822424882181018643080255714104168658276052135076283766630754575430975869786203780373197162198829900096658536449616192659795605039713153256296112358401692015840499632821194133981481937326083912570033563866655918085677561353617562953225787360523762339974788839066027520160423296057167268139821858016329763442331015511647253714255629975942678998629370531250827739174768302955009009559762567290690665706431081699758851527192572881464295785961726972616335047860272964600483942285501997773663225698978033969365495152794143274777089680895990939030145466777854668236038644873674567434262112087807069087430114967866812686730429817527427072473052448633766197786543711014538818707552265965535782953950584019136114903247753268553321727936420602687678097756445921439701562857115485263222569366350238581568214326509251358083687106940319678329543683933579962989460630336988261691842145106936608149543888469063432993640063006564850736984608917078997583866907995533815593805937983729882966249889204405857514669456337398972668812498657891759852756514938463886853923237824107169352955850318477681097886247359762292799812265224891665605569358366621967581666649657921052608853670068393388759764659385025815173927486168812581008056672667842068165360117440121131639611773510790029783113399713345300918601467382566781882552707529651749975356872791271681111152927974221359807867317597271339965282360784664342789660564445722146202382662340324057105656589904881792213132791185057225085415341153634461112419227339341824435575520263233936885194105132968956001632800843460122759909416316903246222848560667229962333761958966908005740301213316529902813134286322977032803229368962851872405538449948407632088194343038877540330278124140959792361983892091699304147164648821464701003853465943989965707133527675681453888317823605407645406205147845970989092230898484503130829180528258561779003298869766525697631711701828306355142910097276899577890265881684280829169196450498121415422821842619185626463479430290621807950166032690295121930736567430381999956390559410969768194972196837234739266794532366086448285116208510362564436463926939516679831208756341834042579899041932733934660593415134846466114055979679640941869001636803598646993767641647058935853635914660181114607819712667690063307365794593657933020709593872424615232214945938386736024338609769010207365149095880944664146645413038351032817137734925224510043791404571146054236637225957607205624033696973435638553679897675112680612656756567445240797104315546306428514020272381612044714410500266449025009310305613555236630957988282410459009932540988858531968425247579798402685087197962965444282828427281067841555679786879225367863823508863177839214174367907164768094675413099298270796448417437611956548926692591637107388552675988912853115833192798839207534799471251309783691311252336929734636519108463913892729415676632260275182966860587096859003907108595520641675125533624927685508987491825331750925231704250866756183336609855193432018866737632087481636403864488210360444547784581527940455338957064841665363377019914658987912875964653869664163725037303139105192019011301223304265204212083151714769811171505741722842991393727771525942317145218054693489357510749774045539441091137814922001401955094881064259045261528202418142740988264340714746661243489485297969642735309179549007916520014150932471579817429348471177009188278552837929986017879301032274550395472100388564550612505877243034226406230981617919755511704139623979773481438703514741745739849142761869413478043263964386665535072080438574953371648474308605398941207272249610637765961923800187644998460994291402272390915742124809800861031974581581194361144543936535709401097824186049344554902043212590572877551653508976758824899778620830204217931062875855591804091284324250800904423218703500856687608618638786544808227289354432574974071133656525368041888880362422604506898398285271594617374193722485480590016282707268522489119855213716866562682558581962343170997767584948389263645266285273799765714864426544870885665377058062286445117096147211973295507848758502853263792202459265519431029761320200223013933312930759170007858348214095252844039260319893034304257496742927772183792731921693739711500419108406112132060297681833389866386599292921925918982807894307733521947013532104146353231135176112630873715302013588756927318120744493263663616467670300632735299309278148178124219069088504192976060499066944673235406796613505590409443405786297984353529637696419056366472693468989757603644118310833120485937679973242191933056233107370356587006728417083649048594145510438029591546148325232410022147762629109955171853190482414384005802674080999536265466685532861345164977304715317319035326944767768846090529310550034834129907936766574685339726320841464877235442723983155315309605435918605289262643126839173251996014760291354681917431845302067973799226731685087554489916568400698079923662858337302674405940984773401786245630506923240788763177335820485798617030609053902726892835653179073338609863355912555715877227302400561019499034155875290503783336705679867862479234805699575219691898041777313162166483138213625256104617624378316855606048596669122636191601211454729824506662918614986721620178000708857284831131172019846330155441976334278470150268352800563302522853710338869963868908068161830583133218199292709221714770658204499760034716459192249292705393063057942222132215047785923855125920192162906051054645898472768207794751260141843741122941388041714522846843054606960472358400908422559898880416503228860190475338287043670836472652502326011959670269566836364960948317190748203589026219212618725783588395174277702169510439425856202521903656750729568700736792054650704456283319683017801930999399336188001430169853376007226456199771546893381027053216298920564898760585883916448395785611467289536912956277861068638872882005307042530421748166706745592871702736567382365090424643063064094465983164023052695307088817413529271419084911016178624716764670643810719139212325219617966660482359859244420832933360749787891810324026073957618486173151294899165352896608376792166411497390535397771765018295175861475029735578740632710657204404926764995720563687883819039500619682023130635542588150891930223643516916595533297487973158450401446166059437949078530852438551487134122079267205400369559996896971268947296785718376763125915357993903867793311067296211846370860314708872642784300079787137657694996997105960281870237948540386411532373724850917081705901163983452493254503839104961975780554878523023214509295142978148198837151410563220768803969523935058605505587244340317864242584637067599390045471003265937234531458402886719481216532763805272932225167479823239606220489567069983870732950950733243353967918152324444768862218543424408424228842386690744078469147812536355538066128594393869035300910929065843779306197762629831623998726101524831651939752661963149206519848679755470639957442296696870025515495984340057160869201741330518873661370362016440177976389687516508295353675304433214961443043673795320376484008065786938696407529832482665017463687175342174064035188973544311489625252067719340156199467209624339757357074954359189774639055978511062316020285369024388692062551823216621138496263600476364245370972072363982754976125548970262497598119326949500352892283174789037255410712115422215100905755310540664215896972162590777799251739044827901332840014681364118691704737845962393250023733005727414159242028814842154346852027578765517369824518377784723035354002208627704759105517737827327442534607328221409162936263898592943306981583102422823953493248275606117566596203664693551662357010009765840127226193115312381850984813754066467276596247757946642834972879802364258010318111401504933682459677133926723233256769170561945956953690037099433822816039948123489695392086921618318685055736090040880158141379474866366279786357448627257697221327155360359357655814584697258790016165392015111163784048771685168739337489465058028441089074595606113295972122397870899747818407338422427984093222665202667860399325224783918778658857912116660720004461739008287457351780188624765378744233536622245761133225944913563950151321762114323373747204273399391300805189348844689874915930639882485483490029332036774849598855289510864485225852352697047314092886931564749391010984874759963908767173186475574552477658311091093455981202637035360220528576043588688604069774944587924854949316060762011222685676890595379263582455881837758477020239931150683158122344437763875108251931566197586902059170359377138202450845234318775345177371912045423649422363223222251066148774557918908906089347069064278085405323224489764084494981707568377302964171851633593527629389748816664360855086747759006114223230628287854208260964408606436545688260674346866375973553460863582880577790103975779605841608586670008579397903031445277284372920563688069487857107087925449383411890104566316955990149474309496821462105733202821001924555516790177152371729381477364192347635877036374325348327890297643101038110297767770392230257629847186849547779235030954179992200811010278069579202477926757854159415119085776515330235928526931942463193686812420011378573075636741980472742514743013119461152898882796386881913966175902417402645797714921375582202557924918780256937132936042640199856723119259482498085752769956577379391267580938022916098639586249078293037328736957686238094876028672683573739372800276613871225339936454900309549105247738727299361339812231884793466442889630167515001163049141328820993790305377364193260513087247443214401224632009576159682458811234175102803662891881776469613657324766478141749433323386626762726717359802400906078285090918672640018828692470445034676280374789104984510812012264159375696797870475175344688077167857802952198992478423660156527048938207358146144509071096584273171788538171755616295210381120142659921276493042287112729618784872714333341123143899444700426389661704437924177076137219805128955595884559932415301681305444115682924144231265171706509877442635355001058181345423912003977782043502939841734867523284680701577558099685144893225713678742504802880609981615972705233572069755010564460728062691733886545761263448163473608127974751930948571155036833343172456188174720172498167654025474088014148095939378272022967272107228958221282240036565362515761712737931329260410094445399399746855565339003935488215309477670050301576799679111656646374575200980447497747286279090622555236907711743852112304912831216228370129055848266818158701466286507340573142175828672610299795404956496173520295429441527864087631212419565078960317298271604421062761388523477871104586293710414239639715346193031243297148940840361186606764610861220732257232255907569665315429240972876694659521122917234943428734533613682640383769832627658724039158681484015407501793638615040382138006230817907343347587078368325951407117753754138047110459187618461940136544847977593667862925770233717883026027519951625115006129373889213376914138424728235213542473337268172444759082230626227219618024848798095218825768175696591429903028854907066940097254881608810455367263741816934500469081854905073127141466322959712907059263153011136431368512796238648219354174728273661826457045128494801372953555577207621077814209235764457178359789116028909337465760356522909965289852985937960290982138666788946679072086680891873558860384630916911262364462460861157726973014829258581274791070879395109531117290161642556834308018049748533956448311888334909601254881946073014530827832986788081432783477437974987385088983739053536487027531200329702250668177135662300391682310292506440786835043968610128728593900857697764694499212968388589872006861799612019715894283160998699253677813192140690937524512760626418825316156827464362893876498018330955484078335326539550512476937067995247213054652291345862999638507173179039008132392151919818922022028355032102178986974921862538229930974160873649329430837526564081687419261910020806016293783728635540953796350672392432714026161030889398014698182753322817294129932294300745556811282082555721911957884153294338321802444503288718118731006695487855234673971089120142315769078842341009636867708506340622620604903827889654112964170781263696471477006913937812063712176076408517807236826038680147391957591762952816829848124235801806114001552790264579267652883132526665761718779460846461316216025752889710313100629274945848214839114405571438431998925876417100994084153440581650222102811913696268273032055047195185117136054514622934821855979369375201671539759973381726835519395891055981383308866097371017523237596650772116451005278474903795586961165173646710704837059876542388593268303672070689219647063106157678290276477464589976267317661280673012099308787510130486899747783592349637108212349272507815940577724394252713624442499970860665958875913926612077959217449232835805072273034407634090494244742675411326306940919787905558248229067019530564906798466237866177225128118230598410867338686766463114617637578985708167648713531393581891058811274678553318921331389041895210831698568206095818646325983684373448103383211938341799956274111113762727661116763438566830423285259518959758755436332995916898842385679466203303974963823187871093720588994449637184847904983104378049139059302439465780990444823260273193342240121105359480423652841276047941216687600145411917716833894857497403027281329724350441012162295700717158055742975065537454829400769914810686905513007872642731334760186951791870914530502952367008840309691554653766170788579707381534474682478232427642829638463805971770632004413199260787356971498093471487424418761749120512433011573138533297750476087820774886694201092265003404851482073980346027667124033647575825057981270405913806804809051550675169735562146695370519509373604670850404239670466413060937666352586294070216157763097512900221446973407632343454358872942859263118781685428611411695833346379575788781648222401214475684185892489520550312460255436054042376961497695518480027700105344656633238263804137371074075177552965350083721892141086252333240423522648175999005816151058871098688060044761626425780324873268856206523529480662193264602462468926158873554233084171955934808759545166292984129691967750651858924291577236563208978576199080737627337650120960822778692391013490892142686283700311353106123906379436100622243373906394934539028095947864961077573759675904344419105922351591561197770331251028956639556934092174445627051517135986761243088344011840550840796521409549947302484780774980349222092850775078065951195660769678733353427521493522638813026902764994932749424425598270047852508167235654939847205279029808478081716517358461735221951283131989686122305940659513117989453954305424685244425269926071009896696368525767093369460069527011816485342958244880886459684922126749488189430520509519284264097448881738375683267401193491177642408137574690108682324129811371099266074041800351021749820453328106485191326448928174715627672413445373142449086735947100763660329303596233894131927021742830355922210723748175238116822877297982966561010393925252125884210545475321568080534229043094704284038495106671971773015750222011810443489014398905208881248048980241263502928029714453087872614502484959019198835360326185692300748159592140927035731617619557722578096885079717212801136236951173361568431226209352177413773789485530317991613872081468219300385820382378620285523364985297206578228034066938888706898769831461518510480104726257777942662952723888148786426479318139162042480446682782225307341463993385888196017365634339762352820014406288388245594911249578202720405014614082106916835921838276899362834990825606729854049130547954555342038590275077285270400552972157842378965485745898418887200643950475053918668234042954931575636891187838919878948216312010905920540029315345042263989074530861028647152287934276254212307605874024424470074862758973429893141446542505623481166641013158540899319323806998467744095367600560866065094896559477898196875656857331114117997534886553305988770743162678831648607015605345711929216222541327962897726095817191058207070768531096479026868364087887290521024078618431446332218792890196025234202498133170055501082637359171551590214519368620277894239252920966458251348442057448035200810480062575939234351995100431884020043008945815919648576381793831877375303443979183943228589403654010904150662019068496390104532133497101331858023768166026895777013070298553536839864826585001438099355078336333722989159111625969329252301462467038130688133801807827756440145560943805878795242814288406658017927916584005918275661002182576709446473169455831191806827101340743767427758656326981985622741819324644739929660688668868602647802864203909814757593700316968930097528330029049631092842624449446697511106351939680104021378028847597237107763635556207427649330161133625348948279764388787770201656832097774916348888768721443498460743718298655531115569085004463915973284619445703940091048215986432505481048801179207767895868690596602163927461412376132030517501083105244787975712077333065234494989566699633363660168791083422280456543216997212884904756608012761143048805529515172514627012822357536275255480943686175222189019296278899221924961115193808046342031048119534195337950602997880038589854218909079546801322248238613981022573121021345008769255732813091350892409590832733605637036702772046536352310500083590066677237870682996286194043246658125593144030958794512320832154363029477770751160154013153419104811039311190128801882861527492835299531014502734799854766406663900109833788607839063436984546305240099211860085574189499253958604421576621002654651710271577845198702813838476890361873351741256883106216148677353988357963372090023549610822023679132110238143522776214421905813857507782442183058854675027122002774021676928927114995167633919580330842707617173542950841600615874839279717935106906248784270442307692073174505026564291421385965618520314704920969850210515786947445489367914693562183618292201285294758529470018125660822907053202975150094863799505596774902138955590962493966002286917256039890330087043920065924582872026536814095364229937010779494492655915871474002510868409357529774090812702068284214925510656323647267410791085788165195405944745637579291542903867386907405935486583854031066817666655447506061794331937716483834807328041092917565157830564775791741344890246291333875812181425956462232866895464777599029738546861422601708382745447092260006992782621513177382030081092452381906869897120813543372988109765634464134447793633988805446373078808043318385220456823754955540379728450427145600655835245042557357817038662138639637263605069969765609498893504150582100319969817224635532085377596835961770108490825878496910338854236152959799649701657760466469404766965290608214314653674195156276273319579030973842907913797451620960249580567130123602057381703362793047016439774873542072922116632374931887544008794677270553435672883813021211460827192707862005741994103262431613802002272545767732944702094172129141734076542488451146226528207857008191019346028933990401316636738371658581850815973261765311877312333672250012079818168074733342055212059782497581191468462610013771892439569306723185209723807330478853792283264246662125638251767627741831842755222263953040263287444184411261735618781744559137849339540039437882831771888456132296846546546970788426332857321862410021132153032809143814164635106711529580603210398648223658782924260487331473614784676956682840135760397590906747448513939671434358879881259921385416464481044612069861040637988434356479792614083255146452228344564420253480585321825299845752885822114340134198606077963013905001790670371011688861003127984667309970210963245262376654471050315706496688933612287982297550440755246580647363679537266901341988101784583742088410379385378744788823436975830305195844423922388691304964037078384834649774849086047018073598170915434659255526031299463024951719277418663226081489565235237612144248485127598815438347668925126730243179809333587150772322528985879406370058618395157613478851540967059201260643836094250831552300821000250562907143989351840719187602147904003335480974162774085587141258338600122032506796052450014380517740682777737277573237508653777543679696892295820960300755818829584097750193374272079266448875003450754807149753124644521411053724658762479559469699248528492408789431729116844432614176758026377569612309636165077364172919344152809248493377983598841796433452338801402572477687228324301708880923379952538730582579709138293241695211927982939240781296719212697335234708826080949785664367028888399077177788771730358995909413376978593396268313822089936801958247116434381809796967599249836156347672828832441350926670436008448787719373875027225441666371292298302096640437838491207535156868584876068981204511537155576195701108303503470609639775325584076076462313713783790758809879284627892481433587400303261384204327250800492819692334839528075678795522410892494676577097676517739773750090539209826763359788472101130121822792085809519395276863783972557014102532463426916709513933430641737253868917603682046953854065463444772271074223666993917031653027352922056343550441549860040062247126229459846271927873281133272342573766431919289271154352364966191772789174123956663757312773669836277281786511935630357396260093922947796663913306255932298051382804335751391628612885978992933743305800913201289467091423458280390436069853842391957965292638581150674526519771179426628925445315842093438548416055376514200770112925558955179222055202070730883308278950244756700428027915060025641489584888883585460212121954379087919292206006778440996418761816427632806330915016374788833669539951829351008652926389688493386546823804744965369843739262908928323075375819219139430413349892809298297726188074229377798226509618206366343101777806644519850446474305742497885756746530687748455339594380721388238376878319372518149413363884618307863646843683171686600660607827860304608229555457357302395171855800844536633095692577297382346058083978449444082618287660251746970845249910751788969712084403234469298711526506215416299888869191420546032764486983076999812945320488626136533512991010338794679352191742680040463667376543792918624747105115821493194392447355029595019739626584390290741689123028638307583452583531629810715657756764890086780283894841856445137251934137856079411510672591801441071836373294163920051714111297046237299403405669188915337637066509910382107243109206838083858900943602309656363473588769122110097660117572571759078529639523951020282490487905258176834168810503324810255789187442443465996539334262524153374099065821388694363004333278633983713822715333399266255825467041037121246850463294899058590349751220551496643067070656628554658110349048871560419380015948739753533634419664760601520820557864451675353899858771913612529661220362495673590524729017392008361285256256492594455510309400108152336538162820780443946046865165210385079976393996024991992090393564924948829170458285228763156181528188836440353354208908795681119210572280600661416444936272716539534061296678876786930923789337040045491806144645155383337953345647800110044989314692500586104900298265463053780106637846019217972707136892077924819389653297838842537110294135816449151337428958370531452131754647783654986215710827077785522639287908852831148204134052174590824935647311141380377911068336097055640984694833295758146994170049581636844985048559635878771854785295848239810506728402632682442809682847909615648126785884355497732508603851478986016097897107944728403148583949886010489545521098974283500781103793692611919389717767683394483602467558342207095722640308559192473306022994744574551002247293655937135097258483470146295754187436273299621141749133517921552265366464930158930510959227318357566931664940836812723541623080592347069572694409328490603227454048034164212048907285185026380521424220102154849253599599660671298683799726747762014576543534140956779696207419262878595639407155572183251573845858616622373381526329084114345809283039201613057341796075359176920554556075569246641771566833914028471530692186806885931571076433210861753865040853228991281852136541013865674197503192723418403513028718963511688271230836942140565685418815024751776263365606084329445410651616749376549106009773162966176958273774704712203211537714999087363314956761962331233561613528630553299545188483445577360658933873230085019241909525267030602151321309512147068823849072232769379871291959403145058063776779306320448393112428506892974638706769473477968659632013265843180074661434220949294650687706395027565541317994352894056636373661475338665710895757351073690801626460403235155566803684284265161654070200577875538514811613258048545640746501542344671327718597278931884124319194570616870511728515477998228564504451372269333223544957328386785320896686745729018161536033157490196272500330239759605583155460746157059812560789751183799200245092697904646301761071287028624069344386149160283560460340673477526411983983653553721221843860665295888596883124417475295008003280049149495408012389098200110312866315444977132215427403322526418399395048450471764876101529133469138604184260432207740850837313840862627831456707281245693634343178990755592097188952567784930171004936063473060840327167664354264156474725547590297831476476440285945185551639442671416527267150369268728352902397250886541286014721584682353784881444375004634217932449352311557337011883778192758039281492052014971009487953194421568383186068282540959672874437491727976622163250965545987823535857112296587307664751282758966578826670773230618798391579570716112127911782465717637857788658912059411882426301269698888497858440804782246454860766916365300099093674178485538363073486509880041123096638758139326105465020633678779988708511012085348966877726895574665915900840780741944144545948098947559386657577060964527071581877805112853582313126049292183424525170415583962710352499734017582495256284439419877630806497484813343806992525711274218412343920704628898125227608199581232380616991198203144546080461502838451239792186033857093875808704461044915151529312126246301615303115320994145457036809394571892425163635333078349042841804548492710396514306770503988099479810781185028806428207913972191510064217564264655609660436915041118183665335518341438331469931507315857378834308558686020580326632007762296676815988575114958187122879130815934791055600367094789723499728072738263164356933804181233793881760850633002809494488381458946739494909167360846190150825127591585648092300509290645415345116702840495034516943293106196784510381303370187469439716868337052237726263574725498271340498323721312369524553757807290139866246467574659821950315568494973781637350154872424617134468673601276960280067217933294993470836588145845729095562733544797201624429799317391065485866385592655685206804937405441793585550043259561372478007273992055381129021146308172933116807111937159819409830425165285303057647203265998258982289600222404869259528024197730914596452842920144861335233938325888329473463076536401999586904929549610038450908358342992658967440032761918635458011948174465510091451587520001220756093976267472695663839584738695578440966966042440288344974290862116318113267795988424253259297413512376581259102319837774361278777914564965128241447594024554158495184157266559980976008294955413734303807173661390878384198440241607620989679833183835839604209032648280808289067581344977955277574462302617166967980642323218920702005077959049779284273182958808688565976289062384337302827093690311534510238167258975504063608102191393762270834368670562871016483492516252622061874287838534771900944808636595473717833335518865462572053863921984322490344091862229703129720605053510996887170904588465957155583383915595407490593648094916663717590390290409740356012535091129235072884744786598595258748905745526729227870608110850417357793582549175715197820449131081774050739641164608756510096179662733535003209817580053167756569562517898740594338003657367438438575150730492304453775254095386595393136866774792133462910080819066289739386720118642959739675726454933513661966831007686115001926647458131541646215542889572806586825541125232922989339283126200471411193287423539849644315048665703366421059208545696751657431719495754042067331664250064616985025309277686810561892123034333908344877906453554106132984212412927077658061459671606752072861746151309370615042862863609009727211276440542074900296131575191077664740750489284080178538092001575738428200382558423722956576552111167438549469679940949216780798432853697772249099111095950632878091582963455145906777308588034505684348769749227694982798371232874912574496040088473950394476483394944913657154472947310236390493649753472146946198261387624893222169527936990106261589426162307781318822693100691409920606634704420272773771772615860052656514177469239774613079307703895625723870530587444042484786518479835410018452041701532369453044623546533409609347408982639928821303363677737166757397431349027343679814917031062571709589533852242202487345719504184787971301976136134030648604201039395196432475182525014324323088831668535968992678796581836789247092535966974698807609631984348467190860475475153284947947593861475344087272400849553913283331858234511639526930907800300538761616555357052985379067682963427342687124133493389593218470715636559671207338066082447426920945744313813525535755199120338168535533409008434639626274353565293173026370088320882982807772959217733027363824160932001925621182267441172965202868403928079303087887017441032043356657738299228734870669729427695761082261339792511929590216555155582356735912378297453784844112939314541727567151173057768128087269092843730082141404826067995293677683571260128753574626759774664506514918439519282216483698727001251508296163017803018983005840408192178491863602326060336772077306998121978761473180008752022975512857003196240146054690494512947459973221055385105935693757890428882394873013542997294450404567889249791277875396275641668199931207062390066901013062637559322267245502164161962919277609739519083278269991800280254303018603946991192742815792259667084800111121697902011708490069822725705921042976502661699913021037276853717507351508242288952226547139163971757505716940185180222424014270248562816035317937733210998146678314036307847669117537680201135870669873785215206160656250299836243834663788778748471789875783256517751711643709254654364148905058836651509479640749382077223570145308525826121133545290039453297403660961742575529465313589514034298192761261804915000350087217575591980993980082605417065932138179989876069486469862360927775846466905558568346821074566984346498070153837695069784611467406036949439405334650825394133734853775577029647395461464322070178894274727132914233141126909311780642900652028485828483320867812671034035755372888766635610868386085255875546514562316653210048311542002046636510549614268756226587008771770883896437552720423543092825272165838653245856087657654737239911325401847701360894940678466815937610072360091352124952717355448966843375634548466449555246308127411141969438688899251708665039627857420949881654915658698103957560257898115391764016501166844078109782971002035171797107412397448254145581983480564867726453434423972681072952242651291406237022744280618911749074387802561998606571465289950818810464323634480997869290577633593003021071337726355838785430119489770978408414720710250272597313105287305134479416949168033376165611506428454485478247387995347399650857322936792980891666825180763214626568079802441353431957851299789700990275889872154331557068748152241030496524484983113204026260531951419006254601997939823072400278662467960205867279353026682473361075564858426522293797170349514022380358167248938195315466279717011297794523869143750003754697254004768012560133506979402832154051041147301548806315347223407577120593226220137034990876884577963640897413205904130173864386843755469553288534105960598423951291857443133380432604945739963404537452899569515403400117476937245312291364604380012591188303630008577810777617277237280097247396633601844383175865322227077295542923301117099230144814171572090572560822034721491991915222539420825306268031586139707120723099490771260544362041422371226890696497053560354646900743815222381027719306380429089559935602655539397426153221124403969326930830707568734679034302471932375087712297992944741236911704086936489474008623260806737321103494648103422495303672054010267469884958859829557113572629369132398867616933010233908021794163862383572401553494265491789680860688701245757909013726437103847832305485863023071044067833290464685672474132888423134383316039757817721948472745105227649765889428886052320907887755194428486982569898092526849591308695275739593937987503240961350460737122008127034874153071890119421099209149430913422481188501052566772092713695261169864617850202584759367250347023426504854725511162120213444284058124160325853750776777760933990472130806368240181593799716690246007024582889270178967905901481169611711133422136581905229338290119209538611722806412394963312664607553428753497706346282005670040459912059188354484172655093817375612036914161338073264519511897353393025008079815477199796534105562970226996219749235286905963751894635643303442570468391644179554858680599818590169453598272516594522211109793914100458020322298136558870357815077459661658636862168458621344979428679333230524554468962441957922149690299410445913246070391766891104935920477374459710789453139863556914459578943783843131835775640267848935839877269275625663668845718920396611554169951206669512005628634014822646908833902004232959186468873022460606611579162679098247118499662881845916900594328970492854272929111775589471931749984210557597872505524234829109434524326243204815102289436896341637293571897475208578194888127373056522044854198855068479004731709696207781727786110104710182389480036415942780211941094962772155409648363127133977984877428688608638208871639421123683527634804721235870818998659520955472538492574220973075480827956899117523275061908975806994692270683048707216350111835458817267745221391657439279280289747834544482415381735746519445925044663237352756195287562262880502342985375841771820513421037497992146187231612658194928632589252423466428683764127662485559478615303428481810027453953761754813128939565986818275213041733080138186441505908948752873648225876992982835778424720362811505915098441157213137142152203793519547937350795705109223861242129448556397014907454558463850537320175434470073966858527670424499778425337172949683316700347084713798490268264981132476734005844868720201120399865625423645661131816873365549416353139052389402864529854839153376718971065212872421449471832038933087983847638912484376462298031666964270685474224341888855202427770171988471044031090930188118853769759853411967650246297841941123275857218555275200910025302670324561453715899244944278524185363696685159130965879265094542711368658368775538749624739647480014599269395328195767591500929692445987391017054194571668022783611993561528154864038648640856542918804465552522767156748217761303318148089158160370868881410356740137816743427280954602343600632722464865561685113647161481061880206471431048554915238095082888087194474387806077990263159615245180465434970667530246525882429494705587026542489711144436391615936010143267199409379008123240169109769294960162713701939254552652990881925893810999486242625738462080444991938897037703827631221012198890921779163679633123666123643180255432609784732688495677866486132132876761379709987426135242588738791627190268941475868312686545443625412914735920611698348440408484074806311598140863648691889197928879716817024780570754871898748232191587619783512356670612099806628048903460037725486791898712698654039758561056611208789889011673948138711868902024260192211036909893176768765119095887927869211676434803558579183586438130516021438628364903804872809751906775230946933075771533822914492416327878793106440370834378335369000218844171587714369439377804275668251894147569378631730824714828589918234307969853679259151692015568071433886470997233517471743846768842490257603373585551042171527110146114192333185646257316781724936390527289415391922284563075777913586773735606851552551014854244835764325604867736147930525405448795576807695088513787535437005657908391360154717800077526005141534462217860613403072927411677812685484234475512302388051892621835755983534866950198785290330072162457473326747784179211937896683294881343477937134554779514541156866383609534577865311329365708031452554015324519027813590667059454953059858860549953657984083121128062873700823895699924614925625626049077084713372032436024660773967225174257635213201091584072695124165610249387723274932125057329180177717037013668392335163842998036745640682503349196655128081945357135124344191431385147430562249119210484134504334888948571413549638676493003799626297070758745802784224309888819647950718410579330342858860396620968912515682692944772299403467915664140872274454301060314761462546851734262064778712362640300266114441099427055218264314824002379507700165146728673286924341662043414687662996386174194784172257069970424241117596870359570704186406865584817877508511149913091669771093781799285949287047540814258579891296957168980520383104854958410620031205175050178567170871727670049739468642052312082490803928783757823356569854887142066153277528194077784170551591365261211225717655016694506040975035369644075311246142212845956054251196539154938962492400302483924407432123742751594248804877729169244434693131681797475507228674391780095879201441087341165423705603406902352185412143775999699263718811415549402394959875050257605718625110264772636983101613973316644590025992235210557782344020860608820860867535035032341830492440518039834531634288578327676752592229642865055837650649987525010538920192792355045154089455520347384502982126449652237239074254345579367437357100798562307374066860686369599484418745541690586418075091520185953165201214651031411648316113309009243531483027835654246624995567634229941941438886409949133549885966021946511317215738631237240526005159902828350578520923826599853013391450890416758036780124297217046571343020469000426137629351103994758642243011344825363408004005856279418363787939389639147884555660730245741333110678417586370732999493353101340671832159582383085050873727006179187514502779274047852083997999679123450488375934239329567506487686756335912589790240472461942891791824877184065986837093272948663689237635728496014308125750131319219712213495730692108760274261408226340310636120403816651196497856984918595705315826735672287122641212423188825631689974203658329191887143142646960102773966701805878520476421222784936763470585624710832141999567691200290533067103969442223829295413236486623157472197430957974485628750235804932016007042436207183883587836029740837324268757459053172636417724885817934838799081940198144746420271613426371101063101463616829537661038343556746313205265629234929515696657253385219817675109211276360245722479524075676220478511963782671323308490338797178444087401383346634619997729304612608899630553971443487885167365524952826428081847826870827601575609079564291901499287910317190857783599001374250611548707330197857277451698128872839175334448898452796038704003104903297472936091504787804172496736909863598927913073565293836786266874566760767128103917826263210512282960368929708565883549177153987112917376083842689658981246004767993715004315240661003681600994614672016392914691804794237491697996617259074778464766753462825048812739203589432985203695465185344936395329830407435968626967787294231771673066737543218972305172761543477231878685083306278763815042233592521626799569398581253942243630614245713486193349536166101059009826286189004141440866087811698873551765997243288153814218211876194310638147154079092059326601278763225529719501579893799364625872080565636163996347347828849443767459662554362393934499138693823638867923755399735455063798528182940733949365604898007886272436932304008305680026740049928209767146132713238755886337422046880059043662944494261656227611079908617993570778758675588810027976022641493558651060858969160999003720979016126601057598014922343079533824722607842789950053938934962877078077361524063865518740043228469499061162445091261965360967795248308906654469593763791641823325262907184300013868214286788565373118924967226199850585999880958728022938569055433780771088445241664578135948553181347525688941882913415693362702545965534457168075831493289973751080305164185807916127707061079807567200399781787687008080856456420475496621200639779708099685408050402626750813427397377238802696640103515310897275991170070401478846860539013920783539039688724486135479493134073644308753431683586144359528629168075602627169582215604972879528426599862393394364498729438630269187676647856724773566106603581354344953267417137005736510200469663230504919096780284586266185007339701665799661705719781505861948647422228164323155073866063143482617086319533517153395578703716291039374038823584209464419378268105431066973087392961283334913010921035015864719748224061885124899733137546857027592762037356374737535668532377878020024909186455684514003801089571345629226049362266799060442862713498665036867329323176114663716368850939759429908045417994526959840584992251149341429977881156430511172589066303167258065240431265085062093444770219259058384383553598348882386738057131119089571580874613353328095252827784446331218778367826504184516575018097984165121152596045637997811379287704510326250618158718115127544119507255502121340337445287154074035420922269329091756344457631655832812909154642530984110975096790713979829740222994334991205932052740927178793608855982987657598781653356867329900729706432532650723419285104829014662091062700352476554161668152382992468462367975479503970877507678987727582111799050804521854985646865159264720528085783998958526133263181259924896639205459421510460469710953680134702189483645356675645882516883374541994975342468870346228078902352599605180254359271190960956235485653638869929781677219831510636627675078154203154292056629894481032625254172770445370543033688206435262777757405199022464477180816144102021787729423757487362732444451534009669983613297161221888915672054583781699638107897726445122973394999787732132199068531599453425235473158738169710769774601555689027736320775452527319718750569977707052563620969607854737295699555575244192776250474374961673541363908201894260279615883778935652992610298707302868206015726270459793934944950774318088783740506219438005185745981410350910949002197934706072029226315395579722153741721884185715376846704565068394011779335421911411413444329838171766179866632215544839198946807081166926625280425847020140507029480853169792579357115927375052309986275050778262567197127707524696337287444908431611705243211523937394936968337478297386151550442665760834336451065314970984219690566335147403935112163682127341386676283633499083794588866219964280020869345723625626988707152084956536248869443280510785702240270294577320055097879831046249005074206479634106734115354758069035171608211066753805027077912147040480340132200327454080026534031688388977171877165091331663261509426939788945056943276728443117358408216202973499213789713426073491368822205614138668820457642337405452558207989397094299231461432857327492576604164764441973478964784323853486679477416877368523290781787344474468848799961924325924922549777570599271715394251006411661910910773317664540002425433763455946746415483157807951219485786411740058674019775313288938355299934190778825550854422787990012525604965929219791695936127097554137415875541261804842608187086749366843991802727249305567588690911504953582450288579824485234165180340274676741689518190998083819736854346642682199065446388171684120902954965727352005018117135285577851830568241863321039734441842742179278631157997763719750768295001228684493584207625809759672525325055739996661472548654935447576945485381417835978423311198762403187274885694629961213542032621653669777563133150092326044190751276506397123964352499691206348701015635030722439351570581944066978955768774188718194851824020754125845365513347610394596080228398084761352691512147261343642209209125704922091288949646821627440693681838613642684900055464268272785224364590277438843286806277068614188105939328811266091077287223338171287357920854246703226361603027219387443122514952501936188850218861501339620629042010983915371817722154848348826788636087424317272979568049407782233584682305236407842070762817761358778781554294568602451683124638231287489387237286096827851196568307871270211938172353997297721110602788958948768014551691417884835364253231148838368331348799946618258406224663848578405758060494569044572532624952462515291601558975888997791965808430133875466430266473923920454811235721730576985595004700014061377288718203727885315411141226646486645931910833156118513455360111339485113537980448662928656026006812842428842174134265514951138740421463998921590033371953287112451249541290761953302568985449047761141679666230939646040623400945999930540228318652501902490819321623473179307446582689825328299577654309743405850534696016480227108224279988583372610838817211676447470021850329228025215121962767478021933953802730484890095339757986262346738779788010689286170374582935564108086662411700746595112789559253809049000422744776560217218283615281821639301618757443239890621958377893290200797333793156039845589792691023391931894191531895885042391990097453249790628697415681589013349110970653896849267551541693598513868454699647581180261829292099123085973004828298583889363324164552573965970370457457356893847025558830965971859001662367577519766907277621719021106567833563705452297117787985038473574359230729237012043959496718699651562469879946946627479461050555870347661683779985835804690941891781495437891879278967541285286627745185957604321378127905918809432930095673221915364781323019817944820767673613981961637375166016915908480307345212251454981748053212293696363520872464830110922644471146117840290554217940664543879822698418056063755023706230186531441569170745982039118715397285245006362839474710390111408493945901186411589121038112212406751261208559987561917924482764133591822980771642996259179822802894066355075797981234387872467687250744218554926026904981262642226367260326184900496972683824639176501455583562576197619675420267788454866512592477565317197540372300805631412084137984247187901350053673998652520520740135956499655671725806574756288894766788113070270267732882285260547650951711064144256278060657370017819847495310917795946960613555807469930598052195762493870291277804601940225685580143122866764088304661352990221413189029836903547564069614364640772682631020100716836252619002814163072809387777422461695758237864345988984342586988524119368307614837253438958899093828115576069777810911966363964945724066202627385439884535583122605365157832948342303665870096990486414500622667068341307607603750306800921869165450458613230683013635360665557194514813747460162318322622652606682365660798238040453044591142487574119524960163179243226424067241566696682714653173292974790399192201182739294738565933847790671778096662936538254498938699514180731468960987529732900191890823100963109258669122962598504817136948038308659149820029601980067514760664425696330950001196585273751326160535435285397712923774566618320835490937494109135429350062604501008481727340952494379618869581871323856531790091818510910932278002610075503881764614577001732568903299819287500571524737747838563807128308940641245877272791705454680689227429445397364593840747042976507512187223385299071816694990767848450347240381060413494234892649773045665776721367056041356319400124625014543166216031874491006793238468893099052766578506538568295319074916307215866523205242870191389904327248334585426907321393633000646733080763100182786460011491391960505928150577799407649674057536989410803078884441385369766385337557249664731845725124684247804736404222180683410743802929128555657554190234365320648422391687334350766243873378125203970306565085045503508419840901938265531078308880328155176762120729223045555348251487130493183959685938723079397124068932004620949004320193160029469200069377125821646723007412455197825397126409842678664488554472091265008497301266270985313396408859911391130433039039286722962806198646942566086111421845801933429985051790340799992269421805731665710732985196542597947364982345095331440193312305234565888871379689175214983641778246666797392636268296574862874592884883666702250651583831803499024038979093749327431497008456301140476631301649777625698066807537520450535165010188231078824617851919173767692363593432062965169034685253938228438024707656718074471928899381371163740243050543825544231660155629979281273357194430778936294073189492346439154063666337709847042934196371834070623577187288861048386846442570836338251045974679299649185714730646898236312195456086511244971006200875684013554925581047162015863312363301469790274660858100643427800066886656481833674790909658148831142781374369552445699511553987992933715536119658254324085454410981274087321795231733192176265815821092371184779147166924638334236561606619160081134955627494716111828946298252720578996510775662326008643046222353608001703586882967815191847064482149351600850927873816951683986349121767268934945590768744171058822506787988527523492533114848467763695727677059137988732423516828231686584990970747741626784141562957618089906470161647332777085277116603959145307386890537731934081961868789145023924229913864904102245485693817284244426204182532318982150879544781983326215794005653931782777515858582284272172179815715757155926820965285252085553256281798114511273769539200791478448930811832615545275760835168605176833691287199651158152828120083901659846115042207729520548135649550262797514837029181000826837964650631702216271978033720751594021625876775450498163938686919426565302064548951718885243406212373123208891046941916692059452513170808717246675368074691072979452956741960692578353814461659200395934719829042567017711219880657148624152796903493695181063522308447363257029460347912300800783922215259418690389925284252388452753647976395702412985677464007950876822497752511499535669971662376827175557837156038116255000594041201097481532480281549349262790713635633774576898011267186770291232580097850792455613731094679537411500254659035537838826319238709619891068691188490781788387092500437500467336452764239675109186777107012857436965858033252271225286725770959721620362870518429130115553696455108742344258382838151857749175238913383839126631324981484710978795648822197170940344879382391589936667569712443797325815138061790880332163914093763804970376803102829636639048271175375752152785966241740411933522538583086139527017627369704543112900525239101492610462206283462740305625800962733293442313118900561227291702371293353032577882049216500712183715695960507348622453773112503067496512736548592286450070657761830353182827872253829263645600080586667685161708975709871964995863775034427808531888898319075486972113177784599442389319508862193455613975978851476726691909878255853789533361071113699644536514245089677796501179718803011728989546502250717211772934369093041498143152444932566558767893801432279759038483186853136359760436291149115118883089860173703812304129243432507204059077138542849885522798814178649363518066591105240260441503235520101297935208513051115585988893447271521246087451061115972449476800362276997848844975099689812285764499250828426720912868416485029533124495196197547610770138626831849135783546185172976064649704643253317304682538859328206107902754760914407013601707320016132049841193299959222064348780904030501546383987738029185327141848233757571527011586232868047298083616455824881475343345439792341490790135038797672133380867508991325056193467468259791272523247602869879011561313102134992510842084360939153216474294320930642413202111684818550023205108579480322121873024381546158840546254564620911928948560036662342018615472001725523615619305137623829234096598010708787048096395781183996788664954143834837814304077567641108920238462202337450477969073437528565444750461184820693043789156653146258359083827300875887411595621225827536856352703812393878433586032898235897989932111987174469766263667239937476957645859621085485711981856872334504720051890614278089576062387662008157087708850902984582167899138401846407960248386826419618590791977155938126497954982777512368527618239406050770572323842035845489742759087237459348812301891006431575185491990804063562965942703798848817540307609731060356113941210204876355007106948275695267693133987590176680359693567942734337057807719034647341121073270067245203722148053632784708845383301534663210655959103927850652175818643444683522208699634953881190067006213808392067376154939062245223567142681736571234466936869535721758249225290143988795890231775876038820617274832279794964465908437782406459974602491862734194137027030334499916184139334007970548913038914090493092561687578336621847625021902015322848780370288711401323570836615234887399133509219678621264742071025335930757682508504586999077533416017361687132517287866827851080599350197955425950188872894251955295348032775274747051140418593887530592749133268167512057621337374670107387388185513734424567107078606187868417268753875852150655629602030788172779995303685426860915611943818035169659525694405326992101032774197382286697411496061920940970805838931790798103562545509104927366628544337083918369383469914309112555140100637588989774727302781915629423402912180267132038355345633269096016093165554751342053724094136053018855120690458270074547391223991934477540690213332957189569189083808977588742283621797923201074700259050921645888888280735918611779783001861887089877128262152517902840245426577259985952606300798083845677624013340114725091806144444953420935598738670338871554971546639557194165529943248729167133258934998969251556547189133640832215265596225872626419315829543254272156750129294965718605856392468000610099756854294255792827613661090374513734579048048942572544254033364817035014713390658544024866244607299131473723982852444773038458002756310443320465708912077606621380277177168438671267652143277149899175093179043811308842966562443581535870615881478573729905594256650869826379121782022401815575390605589039400533167959049393347215685174165089443446078516260798609719834190010026685846565984006859722787761497091534299055061118982919575971190496601816154867061908646223912199743587806430724630032802847073309483303003463004221841642872240139957326746851374086866935153050355139058277775727728743126078673382515144821020215731771481457616724267824171690668976003799667553970096455405864824998866566141197399091379107123392542854335809547630237239076624669443383541612790537453706186123186184996101482994961567185103597956559628391922678450007367375458497266691730925880298289321784202510254184177673412361249930445412943241470920582990671484450338640663218990942354870356906213625560303057449874451357684276076343711479136890439359726169530467363201674337612281230266969043577871746202896070975621384962777352562547109801578209801164949957087779865946463289571013021933443349979929031447434686431806991488846799684794065130728997956177631086512697112560276795161209539586314085348937923403965132894730926771041665431968562315553152769393016903123107275777901724016571892979286130881154750412180807800335385148907918499187111952608902060068050882580706136629427571561931396550500209117052956566926121544312542860371699305229848194034489175548683614298228748121006948716404597814645443499285750691000698844723471591668717743786577953637263631944598741452109786058407571611627956467392740840159736265546496273061083387405964012932272389371256735082605095874623891747989374798168432495267659203343918713005366823937927352442894025476570411063505524320963443079645531903036620897200915214783335514370406994660223823805890248240689790520527150733471889991919484451878700951364425572227377341368924792464441755931530844776500056674419231327059524154121157674013578527568542068056789278823238859288343396754088636590091379255887852181352586813105326129642105628491930894859849043162773294174047037377597218797108595244020555831169616763264692421498364414176367819116117100188704142291746803425775435442745745723594203254333924882135532986150870335228410136543271438731734742656568039369602951320160615158710614071099032001159087212360618221021270381571063475140971677012445527995238502372712788721867915250096950791782519764471211143639365035551490226136621620080898206826360394851205468196742016035898794781722267094370152421016838173011766526615583193674210563641314728829774763560163772346483957517308185963409210539068167328683350376329634798130685544635976558496069343066560708271091583938375959348974274398989477472287396541623460334154517261537099314242881309113732203945373896146446732217171327563021794177630535464639126885424097468979708882735386152570114977388018903499686149491793763643434361787290488821756959130109053333027670708448007969746522872700949119854392851706938976582626731604972362261747997663641319589250700418009652157135147616630382789985812748110408834090703509466585559186482446588403661809512824294644445473088456095246233142500073675392873633670651825656943387951328530971764695876643854010006352582949885787446396119963593383263967513516620369845293634398751785152472218413926008538207125937470343211770674058102442261189804890047248449384590087165340820031422811951882764227933231261804937528127989816042615974758624261987643797436801985242375851921873998616155415467006924737478145263697197839141009492088760283182985001223142962447547669692427829753347361534269395627076629763778027522840817205284944324598480301690908267680960311965899474442929242015702120498595235395784971499250062024496201287555348787187721370678784283597494718126557432066344158302846174199194598140313475779105498254797597417360248090699020497746405231529007193876094965948517243829328901849246992703620230875716569141564708637510039635120596177495287825576517151289816145380320485600315080218932403665037740399730624513600740773057539169091632339429099244618833041960961991586473087600035111817263984329284551206695721056076044676398012091024678760649491351047642477608382545136522315425463570682140930296066402248608726756385030104325734804038235236096878793011032616706597966573145698532600071019820035313815573007497917216801204562321332532971566338556116242627801179388023686925672557748724575803134942456669969300013954399102691350790365326212262198016153089066374711534207827469576782675059451818568621423006536895752064409439930802722006583475515065859624066732646062863715503222338064719280864996168682136435674225390610873853536427693538465505060548421615581419001238930215333598281954096825773149531287715551324122508034868282520338632055038408344082863728316189593506688794218680620182077488742397263618702419591141024720247481588909808520200972764158476195168171574934454035312923071566041235038009410882828691449017299011157857379548898258078212711504703507673339090834121658555420556918587250381041150992886525337392585188998586668456567661702020939321417034380738277798841481437356706630697189277840169568524654041990860634851571690327298321522590547440114874823257939262872626757869885287792586972638719166988946335967625887171669129290778887193826829388866124168637101831592621886746273877788607968452633862002935178746790943371923008270470853014965022562655218841639660208112782648529215668233665622659425720599061960542999016577261135461942614448220484041175653573276005107476627137920446898559057624143690550253845401588821290587792729774769337751286905043577572860974118316005080732089241874330009301203206437475991870718561748932453811516857279973645391451667657108868263591396685943627299586538787871918772936869743867185893850801187000587004569269316022397454644292248671073365526733462207317345653573483829232820261710270960247115116551076653806806701906369269740181695326204296136557699406110989274987450487703122896600920863644555293726788497755233624377393667340197666106712215658145021412924541889735313970929852199415443900924592305967290772725531324984786724262972631258748413816829758877779681579817221842954089168869692691255020956182676303860165268238747518360239743037966080195553397544764142447826329803144395187208088937375918690358157837771612610957447251409429665981340510832191551560920245039804232770449868092149882690455083318799688403606164735714401574180769519328490696177604867548275354691021038117371321322901093248643881805039921069133788513853171144800025026152365035434882432084101764523248132669746688423096919286983796798909388268953170536419777650468959972337762459549943408117894903980702065646791801838415198342404732500790974372381704522558587963262490758684091933536454139328577530999399046495966658524910834369296352066187803171400063342173261900176313143519176202343731616834851408217727998969213733272144138161075724352642519792047792993276719241671528872363419686352528125215377365785929113609914133184168278720371959736477088375724805943181443372538639058434120306435985623517039264115015411572629957021992217674736306518746133768371363928845321707010359609328416081120530609651977156018420113896971312871416207246043078236679004046310104038222432904457993628427829422452856054162262518227870062202614453847623905697714543051299612501812834826780541377563394491467884528509042728353716423416367923400780751792771901037803708246421091392067647918092037571286385575915587364255751640747846991235277127538262128786943754668438789873868256813250575431262828093137860156250649834454358042202781170220709127008980604106200485429541761142131234690609980266961647172832759259490039987298892414014022496946241196023655238248427872544780556777264027101502489030122539531839453879706943282300280496275890807898234087928400602219356458189790835361732724349373774107551175886602944913769327277976062773808859239157234428662166742025427408203109959634729440004579098521851520274539308890788804627294678325676625135558150567419682673404612364079230542203201282133424034101646042712783019123028940016788779742044543392798070751814918445763799928670501003634977859784981234208147354883074627611442136463969965916251911702996229918089465487869933080791761621832899316510334852916392551193733169023243739772824132384043488135889280050566752528673060649637132590363855590120863342426672572171749273901032589524112898001600095428133735750884357881303202976756759640726790319308465207917815842148553190999008404164968251374265286301241155861554501268632780056266665515254791501529519406271173435938825044389759172055253397840478917896770241121032002258827645718825383698026799744942923086537933558617203397382565380409858168958287071514715827003287750296176330503867151067177837762287046148190334642210293244537387636839969937301954060445355584855315947911504577597619267803333223371829071354632305641408686148994089552916418394243446115434788778535150585023738731201783248746290918170924651029426374750556261029280780388463841515393664943173604492938681404943028142166080947104724525186225369801501023522636066624084925049662114955460538860446009504138863812432465570080035873348599466391698770734537341148089903801142223423348501298309486469794061294857595342568183714839409172226536781756704983175763489147759916991227703387255517506013146210795230544545683255770927022985346587981927587225798375706695595292164847699889376679973144327230349497700453022071920347948502424788950614561478645774849357812391287020112792591241182325541285945522290159451735363763759197189444745581053614287115141967267573645434165208237002675419134280443148438082245923342374525156139470469297039806748339190093642016257921676902592526838014737141978098336825847516715962993035041282132249606804245462885799969580000980832698899407165810558558468016558073078253583183974475343092335471693959227132053764994136637438202786489375818457048478527422460573442373510424244871629286870597412931497750246799706442503804889788195290046111964432281786032068479708290248811481293267444074346803525580234864139431752156355782121157106132960289534664084527382942712585885071307503445611949712000568516868963929742196615767036274610618845909137675993186055658356187011665861687596000170940322908370255401692723612237906215560587957735705368883537004258507002087950374289348331840678320986479489075920828943965788346118473758140658153673976945108240959396196395513583071124222363667398577598823321209539537696970930244305978053172424548044695485060060154806537917505518828892381364997450276730418639325184055809391296964552057989581840633366891266525223391588641746925961744758335089918729936372407349820619745681179407004617035647914386214016206548409237766994377752658640745076551392678766309929446112913519328231526201256176890034960504691713722957208897658205994790237901546546099706372473444710328093279872497695606587160233308069086307477514397769581107361419313833309395901658841452296618027591617421095168912220777494824338674261013502512359874266802703454161553471562330508719453418367442567436325064335492714286902926038416135918860318706900157675040480682868534301518084452650909834803614053936071460186710147994773287299244955966368225920416550298599943518351446907960408389883602250086167922767978171849857158623899411893230981877213696170080918655703633570355682042875941824704647931729805548453076594254826577312165788771231265379801613857975929739997200581454368777354822877922769646582971636597076881247603523153854748247784764150048619161509992364553651877703156299252686388103759418219238145486798859461766535624821838257326273397124204286493563771601968550346074155676201997943977894668895188798999410534577677120129545427717997648663617965438163878921446147008240454875745245472557021402811397463046145573160079728972063652371216307485576037261063845487067341228680556721856824598906982467986136743587991088956812353548505971470022072967968034462248149915455859221126701576877081617621398801852126187680001544450131383932151834253277894775529525833476385488728648988589399374636875796631543408485706789566597328274547601882765239449502214220246781089662419643816535818158792779113572202920537008527856107766056099428422406018073994635020939469208104288444089691804526066822798938561128544777236286071418784697456364218686793014766750273808913536654452430849569755827436139381783238017094833131383384219048491482182383100162654274149669721847485611358659014931766614758761835577513884134058400246941212335654597570487771135001537944139493613468934062919516526539801769385533870121816142239076125518999611974280957602385941377936199676298094578394624053712226156182590552188520023012748590290258498818584174425425222539841440272325663300382436088203441882997718330033099283573751391437180155087394228743786519203681858724154977672870195485863941263853238870429401499635011956744520355167599801278036129173369385835406460931423496144719997455271353528042657243146381792661716740016134722322589434885193071840406192903226687409762605237380734279515024447489838724877323552852366989153343874590636926056148548987908070967095026904761148545694292079390403103817642643941577442367474500459265483500671879137073228216219607151753556306380794443263565108657804705136656446160055042447883533210316718694764995605337335600443055592678702931333427875301594687275264486446347075287442949066690489951110340876210178953549137047446412659515365718294956090694148850605058266396525063434160222293447231626855136317404763940670529620584836148523501321362119864631938499414827903277390124190602805567773389302980158581259901315928348365037077375976594770846450787264980612049008494959771817873795855689390342553380108980995794707072948052938543677915870813104791636046512034114006290281122165024544270862039713555659151506895635658550428971420950566473866623079490729368662302414605489956547605558940994024222679328008572569719054130695545783041241550466211969426607667589710854222088612135744597434363412335224924549657988965491806659899776266711393184966551625127039896102040334807009660060050862694207973428503306097663539740142258460208955447070634081041741349704344807693534509906050267397329282468649035659121047616769114693958441121722331087757066781032311091631049156384126632225506577073361098615973180338864062693715774730033525683895671227386541069073879767135853491359611567955953083894924328746633000014193701031448151635567177690295422132640213095150717062264443409727361853985293836295686237532317584731768654141475015218611335487347897194785629674518330877409780852803008250413479516996185535928326494490502931382782385809000154822106470383495082584566644439332011904125158575120161696234674439292348869240702283185639181265634495079939752374888986170547958508715347486823361671463242951192421663499798659925173372981527753471389942410009260084487513692440075493474118115208795992557013540955486917104504702376363447810197313770566756192894279056814788998492341984181693265296126590180975165749424435518935212765330399585102382809330772654586916883123171483078332349742046045229452378858505129479495340512408142564131965950604666910882563335925088773043805672706428774207221553223691524916566624809635940986845769392019653340651019359740851101032280624451010817896995263947375739812904361600550127205149784732388624331728160003929652631152640170022796423254845317000066394894448575041847039765937924354689631116012901463039918512099993709211768643313866149437353433873534498121546670033352017237604123376682027353116280645906929038767295545437599894795291779882207480155994560269480337484471519108329632693627557767809031267274813474803238120740349340794013695689974094638031529712587595438045362052097563125824245534752109352201927857078821757366497269865240667677093828418454032553184884337581898844184398845018408528252260892095247834698457035710378029970720324066994258048953128877977761677196373370016397932737178917268419341567979368563366674656473986281965749826355861113041415637702013163178516526218890559407278930362780106385095238477195891762822503697787558511730594343484763912053961320710100365571746208512772108987405695005444671779302419296810526209286387830188596180585033649412950670310356701108667864614244307696011832730211421301271718836101729787667760026113651260817464439204166490074901675385196384308497778237104334968988327598184460445515657140561244366915569133628751807814268312377625044742706997277476700525491639147247670353161336920258911589365101592053513091204790814430079550724293967191774631883573411298939214451444335612807664144014107359157508613233983089789183161073752542576087500923610142910770488229003906702881802322370663795848268951653368734442964478252218663289063911451204789371834951583542211418156885233519182505918424899183340019877471908742078249321971549646088150713491458463481542561889697412405640258299780506574702242881510944111332775704238827306171548323071827071940408320385060062977793352122973127025664639472372868284226008957015323006318133229042758319890311377158600617931893282594978829156283131219041705623165666850711861194656881213077489371311645181278058582737261616238069464680073270046391150367251704710016122203251984601504343014479526341355327935364835365614901271809546634149545149964446257660930539033340684444717329061816523620618757789444308427042450973153387861172928459593795879579070059501127754998665721832241698559178552963479970581441168300643205506837750428446401886980342570887903935737505721906159546632865297355872492938608843946557297777171906172751193407595194957688758432293370540972547271994657382873591896739202206502733322348340409481505914957635060640409840268938787626623286003486118306927003920290840076365025329823387404961867446182357695234178957245385224114707267606920652783044248177698565701538344695982645607918399780344694652444852146892422559373451269333068881953594396253875947068606072717808863653121112207358933568865828363492906831309233146908396821590698071467907877197985184472988417125274027272343320799429115246200663478961958979128744585525133796653636183154628774086054645871840086313546803294294381057653648910425431723978321980057780416721555446326719658128137087643895192693448676545960487851718967072285280534656750379366421080106786090450091845400989662388263932404466595344591171382157323309569659328323491087990707496159713526526533978680581602589136837247403049843565417734224068003973223867800231046390169986277090352211928238931840269247163106687589812481165249675007177087957667954164942711011515152434636689046578580202585587346033552748448091875147075522878829739452892807060196032659993887364452698206145703323324284513342727615605450207919374585184898941581774909517635330900831325572063250043744603197194906347542561526614862057534258294483966419755527832447009395349918228745274946690113987028352899063909980382479524994969427115684977748040374992491610176778503615949568831051195324170203062567338973924453273907013038734170092308078780467707395783783285580854530843066742656881263021450495909873628459673070461376971603983653763551141505050353689863376336682139874787837434543050555151451672910826063633567722140100211095707051171490732735345507956852832959462213990726878947459690224405808829113312986330295270688928467273816285730889816065190344360710404075399122837367188340309052040630758982327228693791812790811501169688426721796424024395497616191225805171467257498362792198388938472802564379646856433400362611951245119900105798060237882005159614984823297068793216057553424258239003066567993927293482893467587357380752534119654838705262037745989190432267219634588534576846693658745521659708438860048792155272407054818853715455607079068205827410213416543182843025337826822224372971664842582485343990290960543387920679915481634710320877488575282504647402150371880442016464240958428801459528504441922035227782964452787011543500634586052003263266785818451713154336924208478098456030728940467123000662424807565568186198753353006034843252573523526680211656440324183928890207309748328217688741348547722045561154919868293598820712796448731529717226757598549531928792561147358353812928574691409123728694458961252591720770731266027274224427075313161791678106906037902423705296576334645167505847704136337076484717210975945620804485786838457390487447450510972695051353527269416302388000636297981479288624290599771610580990581230915221298457425394628640464908155848324596201093121477511418088374007622483028494992452651198888335416814055929674192849876726317868347523989875145417096610962563809912519568062993227698810553327606896787192622575419614923470601048316239023890526880308316748586917947568986405870767223698983916306832275662827470630476019114449435882215945251879061536389143463896485363994256983255179422441621284912810605707350251609020544786656882558609462835052813737647944008598011763200781379415205211982848392990502937447809932498281321512040236251399637525151097235066727277482230395143084974596472993711814329415288190684634965984365387625727137790839666102408635574602771577377116936081519100881392004147024126626402586536706841103895666903289224013436275230194325259782722632277568168092189900225375872056999338322075888323745771134563347985296465138494256409239304838154781553380395384496749008458366097957821219139682079098054244314506310662689064680926191909443271681780920701471608285032148690792913476742523293952734718758377040555008009624172719659475149711226798987339709146780458524368772621349943186211006122590660701911982186654523189315159579139396413788291561145663743413621777982190756208564254264579626340085206585644481511562175796482982450862790237618833481859678561085605310272321533391866125006526557193537371481662003740318378307498958338593172144837479701275248115766558039825785761406963787843220403817779877619902504094717260855786194349711283364120786031372881573356289435986120874512129838643618562273873193282345136033217368344448478251086619136911016618754585026133090315574737417865881412548633190122780923413262160145117555210618460459421713389143180165405953613536426152000358908288992809102031582721844053445924821860748546133465798122541368417157839356038810764536004309283889343429006058901353368023206484395994756913623623093035491802083466710787170277750288817531001731980115605619741288899657465099892074171632883687800951454806852239479063103080347753294521587897086270704872265665367110254160443867397761467694429861949596726032070769421098183604578015940251345098417694248303515075442486613380059039919678855417042968776096448656692441804541692398122353846595837688668438703107044289368488951008745123587136609698240717383507177908369387688477075871730983639098703076132197690617883417125032319590287997098323318721302188902619806303626392366542811020570674678309509939725701413767005705007323601543704239028175050869210998744325904952043595418995249070056378452931569795462011459794192380619899597846110213021546745615455260842958489897105343281109739099566298123849929587916721985562501509808497017612840149893081681545512761276643935296223041298971507839453906022931679914458451239705941498351062655363262224102903223096628174422045308663450112539862811393603062133915854052305997903192703502351226009438252589694050304828221557839924519619820350239274776719569850996555877451428212632668804975277924818857073413817783023927023985593442017328858450283688956853201006174617311191768735209293988276499660473300764026551205606282108332164966090896526563431784768679458575570586556761208321826336036556241448041659544627071171963673156935705688842155876334287683513541000535296032581055414848264994217291143711599871014360467513697692887948034362521270688930831335297911359373859661350122011192723928196604139997188963592205741699388626017009377574663888240952654164009133789074258118907280021310997803330798678701350982657400937219358059859583852101273334304165767719389350030384007126187693057514613197278056475387111100758544757909476410574564580771444602259041752168073115228817965965028221589623838130468557270928222464309365634904946306703282829000886270632035098240480573416081303596358275542161688072731202047188714631195126529559560807311738543785073254809175232833378240656849223768951954001830836308728860176720512733909817165579408852094157803810456893447981791401086421665680897760171211239499643973605848528188630135981580529592582487075147865160691326637177382853728592275108047560986541902357262678186341868286402580480755456532730018300514653167977911972990976511846023188034505787805225570448742819392388730496125263433532724277761256993668774506535950344722932450655072763389439681817180340614552660130441254041599289328239242666002632298643796575037291445800086012098137806451924016060715995838916097614211822900340505307752119118453362163650626918155459747697025352904170467557069608439672400974874678465492824017796846003083209908250573400479868722646873108615996759634000007408145622330938387303253081112757635103698100035929124039461336759396988816303277699615216296063280526175130544444987056340087907746347265797788066637502790197303561736248618807175644336529595263113481028257994929806087936229548049799207307365342601565841902002204262818433699689833085076739635201170139815299742058571896634234263590742434917999989070351053503288916133219267810528065988359548810137951172000780633995544555990918501248969454486791513978738640609363944387131633594020359190447185280898373356647235323925707875446185516738281989897324754246047012416758258514725967221640480293670076197399069098844003871494858124567612674655356111314607497983152159266729182957231010396501553772381360326119181243833713503195923270135605789198740369236246162561380366499471793998278290246971030530890967923050672455413052065374326077238281357397982594974226428717422009128836155456027984882964603681459693607066301776767132703981329091334457290743161008713026323202664479149350559864749682829137694832801878373266563523945096327103720770006296587012119884418726687796304003076686087045687316202328288219164503079885114224270986339711567706214961550571961799722676562931293867250045244916817688324833132174741937865670958311162968269475536535324196020931840088068051963355507923611541063026538107277087669672595389408600983004814623021024412207419893938103608018186713843609116012807887362515450744504622624096509423896330659724720818053272856135050969366532772704884406575170701008587918633738795116258436360243836169759552473997721998761945346758996887596161858477237178764959505824893412034980693369102756460307479131738597006048072728501128634209474154510677105040319946257780071608031917166456150045392092748299050284155881194863591414743093824495705082910175170925864404720133731991636913948095608470578681415464263151768384962333624976392658064995524755939679298320611144303147233744109963926550228734794133460909294770691370095401231070650626325671084480801334687090910605379243235915153677965064322876961214356116737957458871702398698589696402456540911444705236424306900213146481738002720796602487550283743335582831207412973103895300016451512606505338183996889782547680715972609759710673486850249008226723788131350998819853936506831922068484274690601076720848284678827050556371348887382937222918287744178576154119395279922797143909596256039570146355858229117064693190891964616458928184434819052600032018294799315648688975793401312431986858933257885464733129501039155360366387307010530329515288225684603356328734333120986718960941106942535726668106854859659814952803738796443621513151883329095023397604594196235873227992435336269376130976845080543857374027124691958307310636369201268366690989465331869716891768619303915462835882397527583309391615389977730824120643311605819104985751832646286929404634178063632516104816129437962592196968383651966163528851334086915650919728424311207950817981804241298070809529504647955548007876001460863608127567523090667221254142227513477146925068879635684801704983752219190779655014812476625142257894929568581000640235726232992365085165348717449909654213578662952465817901697286138262708749867615081576583233886142120779690669263663979057765068537118329534295477150696836712384456140119122859064318700186621358168615721514018637722052491336132397819450078326928616361317341178061705027117205931518955236014792214462328206760692805289869770230920403432697635196672900828223653388529841635766638347441738608260668584368238859521283970992479706398308729461639025237016956403493401169665306161099867125214805125167317043104718238742580599024529802634792942811053462824448528453103024660685314732351922139999546771048263503478836987666126910432619464657453926288105634723879945712067144961267677708708459562188717178630348936593120416711544136299046607256620067585121373493264580373500870611653752554419507674243139893679949668695503773295755041417795767921107976847249367601428345914674178166994607928834278118349939716556394483668043583038143054605627235254321227459739773577474480223666703411657847589727751551794275465480274169407769246475818037562267556356714719465367363425098798581461867096572065989347879636883950540653966420707422313519140543337228860394114762722709129368069831238052374922267713720457286160834394150839807333485033044680796357490488986496239162270806833160896374728722554264460486443732963660420049417578174868027528446892956535555854062077827396061927642119069912711840387638848498171890891165399906557456582988993603539118955740227428749490129108177398363981009794787863607190777951777111890614498051947604100250627373411921426763110560353939189102840503923657062498682934392654759471791649863721455895282867151672757076004293914365869013282822083175618643413179251964371957528471404817518672686173002016054162599224212536211515470135217591246509134941417302138612352573336543407227613469770173425845339598589309733849886418196832710866028553368772806864799255604800870472777657061935630837403511565059882477716972249766194716164986882474842698250010108438400360626858854790807457950043504935084239311850683223983967308833128112885312849414279363204323505002561733834697778382676978548867616727789397920805678415801844221338592251959067013481683887310791758698311537481888097333094929157797242608605432191914986134321939144473300874049583466994564353092837295511235902775913790569669516000452878296245988365842293103682204641267968909302815706121267987844886543908609256619948601814446104338004165602775729368586225974394311558955766871743972175580115123795469591980840671188919837084009855430333560510045206571977381027018549307893734533971736222156910355655091765227632715197864990565780671536564910943522718417382619345768532560862650358042856806304110453759600527850725300560934602558594756856972985686604632906702790703894714765387387015320125112239480249881201549961902228062352263048024461443993549452745070365877300472872665195341609700486780992827696578201647201892814724660586110942943644524215099122501069024151341601187206578228242204744392539837466812814623676037431658327850464104747961044295587871149069271912875044390629387735587108554228232400428239356850816721885066917314558037659618991285418225475619746226229860929354847788057068502191429545929340686724524923730760160942181587458339060588507955376120921768939003921163608961825502421355937897411421858660170032861586775833979535437151986198618665599778346037823483696104447072013792739731637110023756103725947837420625996251097529913037849927174482961291094234336351633574049672780166404969864585415394679916155652396555053349655566544135004707658004615509498271226703569050632489946895059687359242791235986528704936001068219845067866649427090659029366241688610669271804953686771671501072736271569657544504461054210085179491923927438193899825864512048236512904614903033279312777414356589299450390549595380414270526120826067951587429001490884194764140227199598787347659352447295925202967499486056344320018013176199635474817755645885090298506854601522713676425460863900415148346180359108054006106006171884031768158184278803838082508534848317134502209224616659875125892690927165966367072263830756929452665317608415436837577139907102067733794211955874756800554687412040412404071358289333938090567194513592576366569223021935999960753929656512270879128685423169629806559096971323716501572948992287249204431305335876126883250406332786380332930515492452081543963106900804217417162242599941069877152133626857985494883589733915771409998173151146006707001311193933088930156729154361633306994301703651413874397863057847806619419367775985844142222165879095046748741983640322359387631356104408420593055575482107606597550421127499034795867707596814582534354933456153188672908048359217761847060406951598230080030303242283808242167062270184390975492645291439460123951597307846659596989876976999163233967737005959891910310623637539920808001109353856914893556724523465202412981999633615053699944255759176021780122345819087011552852434511893217221342210655645188517272361344251494413025621368839788894652881894618094290942001839405815223507647207542840879888773010885398537900131356413210503937329342350468784483611620904362545160440834233623742038360633376602195566872989392203456706023643767125735667174817760488706695575764068019765895690614726370989292135596988412843109321477308953545979781321450774429600621081122287831844070540158642821643944677178467781949941603873125557900087186723261761245743250843007729347591032811054036871760925281958521751958113827148340230399707207574392044408271321633800837110038068064461819365344657103326217019150980109105939128260206402894355041734019206159390295338517605508476901447647853202494741863700350817219422934226077423037600393893432961491277149512211879778644613626066989446902422428794140482625959050404589674323841117255015511542420392375569534804179610270883402445372554304562152367130540441532345104909961951624708251986885307153958289704527683839811419427658216113724512120426291833674486000791446618812986437742615630490591250077354080717385265167765326343226306012035463789800094948329677205925523675801630546130612003473493258025945111889710350823202564109958766660313419118587841253621012893325047815096659422295876693223310016239089224591687252275303617233480151308836161799913806013532281975972208985999008698001998675205085042545791206047975312157615694168199865621070598862229853145219134484390752092483194730103314866571404411772405332689366843851571499545812479507818880729624142383628195374968353572075729476572051544223780389863451691149500024575232140033100495909063939128615415992744484357647167414758403004801306506459792859466248754402028365138167024961118364538508058337600088355110687804509293436229485286121079569799669741786543854567202392623887060474536251392372981753661692373672494459308156016707507738859187216671928296151200167210854980945570785084632705315461875747339787987053475665953024801214467336317661779172744316442091787587356283849601340985987484753684173954933495644737286726939740695873184192535720097577981321598364724523251416765687108692195796195592328611234778148516558352203681494763650419886143172939193641597583727720309054147714448118035900689851004975509142241558474829082702038963606187093058858421808707183451309221132285472277877322237444441301577252161809823799982638163813349250798884690715464483317030789721712418122450065170392793794168834963077101247858034721893635783832525550137187180796994109326413529788830761230202639962691715951336538729780300484797290679754144552468753126678977721165968118125057481970014246274809458664824535606995225630141163439251000304395744852916677348631477304048980915756599638983661240189642948956692932765873906427584943592125251062487806429000711569757947749995282103307402088867521607996472540588521811382082063542903860831811118842515016304742971073741100151565179742327705780757826246778486730094330537939038151892490396150950282946921741083700206302382870232742373069990788631892137404767840885761662245792481266592218768255192460003329305301037093179729686584846081605664727571289098466738109381384988822616196740218796189472633590175873331413050712200027480853503704765674228844707000455165595157161727464346158725648002485563696123686649689605237369288083627800596105965130048450241418599785566324633750197604291291491074643986039466319853053734341218006825179603269357775590194984781055980320977682794421360273027645385534693884044345980506840475426742823441735202886803971417323266177919213020002756367812839411647636612035243382894574062847615761420051783733257316367561695438821118778182473898288125144521033496263211953306174028932769848423299003148491253582261758751187401027276605094983595593604779380777857108544713341821648229892420396432389404683929572968686563270166731757086257174819658934036664067635596350779755732398881887003809135314994484242059173791096945120254886215830317063064118348304188519345767144202376469082215546088069206438221674068907543163168507426005328718735318329414312137426110503331950098623171406291166970454364560515703314530336113938437579360969605317679616445459475219118818712289768134383327431711293826451224172336405934196448330046133880248212896892877582954310664872946706649570054902595810697880696968713402067676341918996215925789897936279771166139997424790203706033590458480570323663645694974031028805457903572541139943239818997598168010800741603490407933751975530368634252069409476716315775841417926440373777018059473977238249672594828488193086902839171224084768051917800343433563579453093877685040629433239909434189083682320626291372175365958996811829931058592458479955192011823542444632584549814216317941940375895098906395023259969482200507848703446027218250052374599275321948977111017418560604305557640189113438820782639577861769778178350514696138990062226517607621167605260980281596842331668378853815438238586710581473466396117826348766098869314945329835662930484106778189970679778835130472232441171764480642291067171709803695729468687941066994512772072950325401288971168734149066166939664931419419550168226096376967012719405297871499704328641873067091652550648507343623788763723045133241797885944118907220468315213983774236445320227818456227590422534025594650988935346643560472717806431185293969953466239716517198239752004799018673235243076830264828474365636633672782928453337934635821729388523156824191681060133280934243379380204572816947114411691372670909568418006840476771315645666376743017043852070088384667963183889891937219917442657595185648802281117239200889406534603497657146037403871615020353426791672028424251080210767067652641356496036472747785600909087546892272863229986182958044376744142258498942406255700110984837309550248567311235417082512610278552654502119271717931198357709313436649742084967897351025418043028203376300455311621542786154375621386394579416656830179359113060123662137817250595209016004625738873313465277873032210495052155343296056604327935755363827585662622628119339081314807269647966576895985773532690404785130544529116319085852132063756388344146169042469268771932238757373537468345155576931352769266942141534054919353483070230762126971275454292825700764891045269500656135006763889767084753295019852466749074796158476245783866844058103304879348742738414979236031547386062906967450021722589864615497901901539756234206423696896658261733832610685277500810831406039430981528181245560713385574264908155031058961590728029692976761074143002679817243994932182594575613015990112742534534964626058913815199616370249534594774632822490335566966619507163220921299765385945958582595671480093679087522669999349685164211716609817882336931992510206058887798015952264651601916044092618100812575597853702535834508741303993186381857648209684750785651339863357528489319226509392019553273522979847986459081799770616442064995469316781906592725744696541553088130240247334562256490948620001379248463137657460169040992512898821267104185650920513582362386874773001961883924167875846178648223868020560764919955297968495731033236836705612183159055046885852370158578356073246633904488388508574061768406672906244329074644230995476448321914095028063790975666392113691609287935582678118548789368480662364641584823787599505364638358392137885186860247574696375068837155806787585645957797594125219229667138134847453270815369217013723117724446315599892830987002435355604291404192133806856370658977650072612817060890544278104389242226033061113673083604069799582203144153509590588533982824343811183839704491523129454574893371711247279127086867592724461076323759812002863288060448813229584698764772740191616575815926268694938515574535551790803772366179667042739703695757995022636748675601462089738271678959580412171923608506041173129767995561657962485893815803372375277668793234617689029963415614907248138343046901150582783242037876812902514488120847402292334748097006756944116793229242502736988474328725710286562408261796959000991862407912727826639599190328600353312376258721646121531818513392128313658803913393775302625427284179576718779478026782225951021079956524433568268087501237272799793620236014651476317741855619340023790749036920647016056869675474606976566283356513635387811714408808693268582470065614894733877033847090428351661572704969062665991662302137757857765130838167546975129986605011822224103273689615317571193000790669969368291119642491157121388709212510308221232340169993561758798276113531938846028261606185971410985889168822092521586300640734126636459217742679559901531267217984974259802264350316550207452740051227943589658277713067659884299964952649244437298500246867815351734065528937136621078730319536410507335837060043149030972736397424336930508574476118801351345867273032811560723349852214808232409655763239648044219520545132728334187449783826225077255152809579305480166404266842701233040390917000960502070565731856193331793709704328591901759468430665581155475734215095866141430691576664894954947914264458182937541098309650708801994339485263226342905687097574586342911738677417972673106948732929592557065034315230771354935609149976151270250407068267587194663851410776534141067885619986466307694814206859468676558959873630548967107102500436958260522098245922449905874972172560651685320890362237166608702843693080545265332143041754734804294873789958884013442370799191071059147206893987868795961674834541089733555032868957846669227640423426268807224806916168548501624805736928431863027576896953240342469571332753500017961018257447844836251834560634248772586421888337599172524051614550737302685613789170197072722253447968368810055776064734860020962445802869359791875676912761617151963896302851587119711855761732074432605990088829046684618557346024259686459993936862837049296433637042306213342675108209652607434328042851679470991769192473109331557749552045491858274602095772957090368044992800384383631977625168037861366451428076445834845095562021286579518003280597103875841650318701860367069099487244015175242986111334834836399413994179157124819178414762061695654350652093967985245143450861958455958560436113976772459484268552277065346208576071634507016357926712277690818539507686653940835132823149828713367340734189600134642759674115182666879418406731038241239675731960469021420744159919231350783342759784905021663468798705722981679344307475821259700681040309287655296530689240752205861577955078466264137924094338218968865787828811420553361317664898131931064227731810150999488023161556005924685534388899270256901385486036061762553071459631853729123484238126361579353462036467437559465068699307819727444714970925829330168078007725313762965260464992872991513328808604379029553892712579094818441146393721170440892316893771389070609069056111679421095821801999276114989931988828663108229981515749271666592030092392864612960463990025876287154080269988129789140931001743747226492112911077203848489636597502140157593155065597075528441157794347863496554203355051483944975245494534050475009499016180108027014689757356382561399921800435418362682543596561107336846719097504696320691420245948648281111797426177656936827354557367948293109385763047322834561077353703915607838104523477129917226138955229003338568038407690826471318241276510346986795365202227564746145808525758408662270652817837871836498008219296018542657766975885171618063376844433368111742280891846656336733800493979540532859668510141542385319731556202015567353712747712348030476935958204389423603794846587679469701585003964096754665175695746297815330280136660675799136604189240172059490591023933178611224430524084564127251603157693302482833072898671240815005455627494014030142591080439415792309095532990388888611069561111853292402039347679906338554629597819547604013256684565144553528337697546301683144369203047872658108108431289816876457761168332658119416652747033141056138742871880946755909227524538821847295419169441885374653349773513030003556878796358086118606699001658003734036993553909041368319980315188755071869097442021534912796940369604217250037024808381125584302496174623502380929025736878083473165883939504718168209765127106581743422204684825567578497955808474075968756784003735478194166248014146115604790231147600716993326398323976148516701973649780417160336301098591402260107595120742920110142487112267621977230502164892510318125420770221676054310812732416648482685058649754719372562945566695058029589976028725821079965674289607022430173020452580330024465508155388240012783352841486399416588758408731826656219927517936217927601812089146918438912092148934318392754140541319106328525603519021293951715481547318252491571631495523118286002339267984849653730284872534463535792792690957292971597600746281054283669054731583527804933388190579376425517551621140018679873065183443727927544759428686920114281602762630452166063061862198528159950721459161231631017648559571639125295259314802472051241320629792196895615165012497508058566148320958267114162191633406346546165705492012578598445020784978240535643207116624812646077014874347065654045298115840854410903495017484966763239136138513620637882429306706239727591226434770448305587575155461313951615716716077294567824754296044895409455815658542487220394371743288139132127212408818036999237196062554222875452689949287198169885582440897037052136008967598680280958315614336967744733377962134837366515601655749401380547301477752615100351367748870139717885462410048335622335738652792790338084635256292808670763323166298795679908037193974447481940951727935781385877916123877063784380594667358831709297282361056499210192899364938055788669348117489580414632746559154550398409179154201227820763928862737749090369825056636522897105150089264393386791042969172538516280362542719530523481307961473627660881716639834185078508631229488173661857148078366471822353069278223418650003538470063334321023986483428542427547136971819550459416963276459217232508556024834213581627763808867323114676370522665719161993979637956304841190660036851778562279170651419729871252311657506511467828893449194563745984677762154769646137186207429738197886960443467854626145555287550451457561798627603598755829234239960826533927391660602049336466468122756854815838248719014591010363622987444980889239004236741825659897958054931885234850215802611919121869589865001676971261486985840748512723171737472685719618584918345035814589010458311058334987297716937825984231676922630146608598863642618076941427450886325959743148752771400300981401837490813013687258604175698053008303522375651984358671561347973209658039459723002750559987521690994026641944349239265513279268303705077163555584075021371903636464832777662732455560923938451640434327412807796432912916015517323808600040321232581007872065845769004038635544610877355792732586579994581542557314310994591695733198138705816186721135800054367844582907731222502032887941648564952127423440296082142807329055078564918195553939861761997201359011334061477093970038039770980157920163038348691076586057445138753065354990497383726049857134781437302263295090518697278835667377142878882930322048402278496240003757020310192419810863738948311138736185281001650789093760873274317166730484597457227546657367128693860026484820481588564622797809436514983965361119693812652196492973867587046397350901794590891711008767428801122221046076119568835457541137806112759754729868790881456028012504652114444594818041882582518585547669614130878161889138687581427607976559322996017940316790720275549148311428554773137953837663328208198474585749343226662788005435983960132792947371272407312280722353879132809975657377192992622493898627033314502911564156044502633848840245309969838690854731521383780509547682903018760206392530421459215026826516013144138438504989055898068682682345635805760241576688108566001358866412322209970797679714217735446150074896034542445295363944190978819608659747363976031863190167165880312174563011993143816209061986833868626396219230499178660650301327527008259969912406479794502289053950174701664803805031147347975497365245996071256020644592407995034969072388954744157096489776768111254870802846653520484983303714856826614407896707561690849957196178213292612662008989233729967593415589522020418004908621344020770132534559936065114267729400203945707127242620607786466208799618320792335703681286625300993089845675277150165348554729620496700636783441522990901000699292777756819136939731322890320643740871081271719036368551173605797012655922730812780709938102588695220215666882905857109226883808299882108094015078908533904901494829186328998049419459143524799673404247455891072453672094277482162347021586981464447592618650959138651937977114968916388045530866372810600425418046213020621841034365085544496034002845628717282905332874367602577146856096835309887449473855064854937935915067740825137231087941403771822131551086690328568326054735750316435046131205649397648393437922251006069164885239775428677815874531256570198773913262661624808884970800753421610283778388066621195460221311276577865373080327306739052569628788078138251983951716037739689829410114749521971932562213651898217161885828611860326244122585654269917638537463405420394777825862625528167570276173906754319765386046420759162976029716639938974948295810267565599795027935630900290293096748714414370941771985426838456048200614616286590038259758926858385364081897010567424625807394652680962779748947530935131673497889114685482448555222593927608245111779978955292397878871514504057492885170370150518545844494920674929803882410476597375149352403243250428475924199423936781918270307556531755762322290523694707012993462242103853884778729307335007673563422679489636515117205418867014016813536143626745212685770262343604854156607756827221945602843951554555078829298704731827168744073130905720700913669807014915518806472696563183529600241814915369351848286339677669209776514341221702338228935112907915766086323451776345294440383535951885549879221327338822567626487269564934135285018023788680088564904243583541879812999680901978365878215101435179886705973134722626222872520762250768773370019477777700697011522755788812342842364029621595134146400638713475153202122280951291192558939785311319154830576470510530212453179832717278050373905066356185061076054823300008037837373534851185420981713705781674938441927098608419624145135218884777559867268705286624391596379232236971088713581057940822959746065650067662636309322686894089356425411256833320389533573817443946900348152033440112044400265170891587242060744058790677044463671734941333887063382603096577688207215471941600620558308951478791771439587589047537396089462600657982277094495862296202818658776913711467823855923683234442106085656014659901156370103393591590230336207755447029182457461204795529204373979788774752773524579839387653110242478017838436936793747452686797278958515337484465474841933661925906419077904971957556018057626525697883103436800903515249647341452483162141590872038238246096821974740116807397176461674563399761703840722919546499950097687880579310153278969809065110138317625498938020838944146264093954051417055130610770041631156755385046923257249520881053925395662961730664516516227913902647386064307629115783971424918277339594123515906962972682253192979495619747560816117838838672675463165626607386729913205500488670817688523725428312731321808957594120262085331052208003009030393425143136686219556141440314697485612246870614463550925016064436012566007405423457645967889137300249723447809243413010516085847648060117138813929550004097947944834258420201428538569278865367114431810046639370224504277659011580318989766567443035094678156853582179131927043085447024358032845053482229250990938803179580087589765009859627476266888932904945888952072745591564026662531183517876459625860720723686911586168546906982168902600596296695842201406490794194997920256504243967357718871875518384023883749813235908032128421963740912132047923775269636610285280282058742350369028230988454603332302736196391624232995243040058937422238113365589023081457818655745876880728282056529853520326351544975897207042706102681311754963349900543490629981955329698661855549026608317561018483852218843586679222695856014657176450512496592699177064667437153264725939767180978243404737767199412599684260452973455410032053029292172118929823929903078426930078576439291126144694108517980937103588716238490671307575363335430025087341376610081723739882717138301285154005268270993991632342305880237650576594613462148706572911231946595512739781717760253943071080542795035566512365623952996136449426573703426541963911789355244092800407135100863847529508070255777979106812787888888874307800192124808504105065450418970205356400744578198512382317802574594797379586707728214412491614687079371024288803057682705167679398789764237142650872717384712517509869419349314088065444865613958941155446871300549411116022093780676102659082011606611353428309419978189447381123581588700600437545833343495096155648483083881755792579867508651192206833467323117467874975232866585856117578248473327208225247925157773857309228708067557639980860134197387859931368694230883399697800645410572963177128823361394709909312592806386446213138473634372433975482132075030549872312374178424278887873949815984248640295523834613535716185508148937223785725265051835115274571373153590487442380589600386423455591886565130793897538172678334376328874688904596070650099697973166709078294668988116395818220358080696049705442452456985216412210452100232980219233513803129927253705780801806513344298905412327253887489086955944726680454419455911187952088216399467410907967339486269314613525371103450212461813619937977650543001771205713052685817402870203564878866053506711348065607249763057333491093034719721412486499474422604739217282977300787647282798783571840363227720767726457663083757220909759078708173148668889678944877165781382064754096843678055807756479606565856476904073116027795435094656647317346335936201925267480055520463247590761759870141417863206589739638892274093299496775197479931572874689560116723577562513234787021428284409975574008024563231178854572013024505160276541753778930386860149941556238642240085581433155997368150358202992918406621485029984197720245087568878944270522885954393443374198358267873105977762489867172081547810797216468120850933256867563218211682700739549205326649860520996993778096177601752210348251748864449853621485624964071594633802969934927863135600642961882486857432307608149607240057252160793620041971515769135980680718629938977841731313952348436936806481675274503130338863589435796893314297147732219457680738564871217002944368953579241931006594376900604062800438748793556507481964291256953734772396657257005449698981410505528985554025473333219833391294123205078056346943504371955821038992954568537252178441677416980113602105305217230622821364631103729609048426248942855073357294996018959769147630164305305849123030658619518712115000955323171552792181056526739230261545837241995230802722233412789401288922439115285678439446206637681094659245282972704909426570981445796378770204938805699347621135243078562050623904415750071659949026350107097918845901968807786758183110099651476650666263151718570057763696687784726405797017455780945905004997733935696573517592667188674738824379808414167662551076413530763371994397323123187319078539849406896342362735609403012477515706983432255469938341933812938095885556797122449756912397609898496311728363456870614301826134640850026884316903643571414069662024943177008100956241061407635053957922348144593591577824103009065561166531209511739085489410457003912647571083112467718257857250193846525776344575439296980496955910427219550373013211565901101111174661573952591062970720068134635938981625427131978875799624258332255502304064453387566730722698369576579170919618505517009059406760050447022318908462035384603907037196788567556937933581177427595393168502816261305940839262758926374965355770678926651037043292421293356454911736365980738413398488461943083357261206188497587465091156111527003342468073994334747286111732233493478517679878669552717518361665416376661475853659596993340869889394830525730387090621121223555960403657267387177709717583876958697876626104569453534605143903930905417750108348995519285802912357411778643654536873251536755046963079600072948663900220418343307587723145203055314447130581498073144089583016093933365685447664600529816242619805897601157590651968055134512178943991428515532071001986686185531277385955533342998099832409325651234716329410666701183374664385402712649254688620742544053928328618958102946316559324416430601555075572517991817044233106159416180047640062843265179099660990507519743397949475519814795301282809068385261733590878289189968347040037822187322521077737169421531204049108160189550382094035862709102893067591034243409504922802094438257642472650950408124820175229275342492872396739528358026541933872006270459989055400628996853743050619247627187440596499709189287685916841460336260840600808035500300620528669590151637015943298163918656650986315508498880475090109737310408192694263943305680490041010954331379495135028200045019674749292077331599175897981152484271003278570032803273238275742815827328767059051931433154141983507139227035162719208051481476413940392478119786945517395872626303070211653585721309948967816856125846903181830654750153032772653108519532911587772700916140042069632804839227810608035167231609910661940154661204796622669680284144339726860672158176817080981929090932072881683998056083889617672317236957374147047202444781976908620049355297261789406557225618844129860067726783672723035818883577978284997796721245638996579911515984256582366516336101439077452925760336256631861346905863245943554425638837287184328485381424480170377362576578214671538014916153073837996308170373865720902026597550661550414294990496326916087363817835771875409318779988696041494929620111229867914962821675962755306401067452101653292700217057912249046543735217034718295070110296338464537742516306510799485792557804288121362269434260725652347175067987997850032551045242175032657885152551988839629651851393695190879681612881237892195816319291169958252723737545946481994021109160285810842912701587153992048611755209177967498480126276796594849594678140832581669744544631484352748570517765716743126937567507789270015092920466483148367649712064506883961721537785587009100283235083694416172020656839764280509691378162282226707700657615424529728440774242486482140085523623345980805563372456259940768356700821766710576868519757131749430539676395796464292353325998443546013136186769933884036440519658315360931451369497220638073050799393552832397925221536439681304845233338107902838231400129699320411238897603412138041755174884641592165126384965878798010207457505269747481146317537071071187949780146402371617899599976484567669554230025488402928898828128684974210399880641458481195937096567663014991576127097313809711343566575514839944061191801073003667893457506874193381201543741838139807984702309943830520926735109666808522403498101705710708880039516480711438500392794503138321180941952865727075743196749237412122506965233126706741242460014916068170213727193681985721082678753982305990465177679855793954467452037128751584984299577097352390513570800901387545954666328640138066615405244930144750430372311620794999821791424961321776889691420481658944217710226865896091152576386229581498590867017776298465940003776786222058651484471079664264270295311234801680135635217251000324415355776990565475823845389563125825890954854465506290263682999098243173993062687163732719566892314405608208602052876607191315951788769467898240730678104281057586781297837019126392956844107530983360267974068081595377881333133413524868000743881770732278522752051444285146760951246173571914098260061152908922793661701596486478549272336417890452807073805710804899160583895494170747510638191857373286040855850906054661412091334982368613980415475622519570559058977236781641317902177820061535595231315109888736249277620363830287628913706723699859362170945510129859334902056326751142584393298592170664904145904918722910016990407673701379531505500428383551211481071296356657211472401891934803596900577275738366381159465557931891569992060203492094311953227281986866682362593546045501911536665025127593713454151843776820207847327079822431338885036265627846074029854394196283433572086665444050345071247966058597794124960865143078983640709976987342703687870199002803836778217550852118046703746529321029526097959755080710784443595185448549247394283526834092781942546049940803404409249716853517104814613426287737627619749342443148630709006194701783674394238706189650702480264293653799687077894330789942272818890324266796549155869582409102649967242784925605642430634748281397542443105037231726871805790350298085562802139700872215792581461691370119921840686302009303386499457188263709719789039972842466699590101125498754016052622729194681114425128788079390951827734406211332718267321771281532362777639126799714824706087271651364045704821941253394557999278534858188571007987122417340799494739096090960796816626525171381934771669085876397895640782743901057126865685152417788272133574454371589413162601195064109694984262535820646912664405939167549565522013173534618006769922089155840798498695511490794976315394997560037781169295161283051842552389992081060624748186717389334458807792491537306601594399972491431537584919260523573170121297285734939010482745922288605720090218029095659369631797449843252185108557065950272923310853668768902260558433645902643982798788700863407371017298737751958364165797675564226287530469459689944540184740857672043724137983653481227930402163517863775757399500210608292014283651927363500576571803180851831796424040850316035614653872426817303550989221531305109369218119775715294513150856646731162699717529062975864026260100913407127985345542369125111973057220157330861101859263614966076229726199256204246082809555776687860602681937433525105168750494014183089428562685866308425851179980325219639832121326643818004318024258367468329662028525669845709025745479890117160707709006621594721482055760947631035211182650353703332549499770763964229471548913536818994752258963693715699825124838602364747636159574302433050915210884530376102093445733756949730717471808605349899130193022276857685071319491410580066568128735608462231370082445642839852382683430905854375751565411568625771232962269020101463762486356221451540338666316216159838451962742913686129313824147881603386676084022847477607374446117143067892752392065560186061398676332562424432885535678090159365722160110210965841069579321899483025993288647503251646544521995864535447924209037728462998777150915510115964801054502392650900048280703919684984439367770171395767965008239728590854574454346016325881526659629798067007624731583422727422158684363157827595686805234236137229066464053100739193908864620502009209879210125726022190493583685764877998076914289443346913279046082203666206966835377450621097862999507372568852449855010778751318047068476674677446755433459988147901137283283000769228340333507577280391066502198093208005219320581652030486567953048337697280860435722941444400612936740389474314684955743656817335161392702352830400558415480028041154093180022337510153461125097319412752098701266044112664661181769880073782700356868738795373735750299463103377206056449162965958980252647009913071377206068863259143512076241040043366246936540054301688470099158488819549610361854358675706095216707941664339423938370321766517005422370223156131853457842070208182943062140448004824427624570343382727326062155261101453594780784757374915260198129545695312229476791170570677069117398152698591305524644713055605422936246719911804799867521636647069591680194373593468841230305046918450808848558524230329175606605096698076672136559136297371494156915562713262326928095972593736954082233258433522107571319548059079414941810774121543260490695758507114856439219373336275607206746391800422361600200633143626485849039443225393965815857460458316154033526557006913206914912224776102201362113617814666454983094864257987262146187866977358591669324765650902951747933453745355709364508237872133791355163245002472210899146137314935225859027497552046236007397704434562761278546008003892283064714609548143382696228860412718866604864542417240409850028884382573430258084260418983801122445014174479390130125558199290575874170916324737154041911149184934701719478369300216237234424889131718594643075695188256067446608331476573651098899351165307987205016468549546845098881053687409195333372087460541059408316370840256596455080020842852124425850922003281708843865619935876759138302319042764873511312991994794323439816898497461602344957495480956446409807170652412702576634790043821000585403152274396948777162491538416168023874880629509229428409261560034441919351715875501029676336662248698327976434080760702149797866813547552472754774784926606574741656763760639985217722337760196682196681074415951037751625468251357674297774821367162607938647951878924065389442362618094699978479839866913097631489840390005397907477991993322542567696620560138288311469484489757122687055189655670689482615862277335358911288074499289019207720913072971151336078333189020575793997500393433862359985746853546782655220723107712870102259493767714153655248217784712749157118865011652270967865728190066746401037795674537750617294645524533363331603464208986937583659158531495193499982847586613437225121912682871400116177075638585078189203663417537065632361815679164561242821508886612625847205884199687850169104129925235351673946793988054390402593261668804755279922544933690762057908702987395092343175425135058183511255997995343663557913889409030159897602205234459839977431036922950480470678154089716218506871613711359038883027306378903463538010165646396795071480575224687352386832898455711143238491609938297509272610758986114703559887560432903877415252069705781355519390982421966386340412198509385650484536991211802904927358330393858855033455033366673912350009942235265970444755822268730570905815451209512484679201430770890151244189750441185029239698463800491388286480871709821004067729948180378180535075484532511626936977046637326748629603079433600705323786291621525587342260895485020465407598719929006221321061788374181492462053410646623868000560502045884461422760141419980631614792807987297390499797792469379884181368079055220258925897194555872465062158841926183224016076475868040895679971588566455572207570848492911118136664135569956144400198527829770651593984623107346853345554077885355871966511556720147079658450339596451907634490293822654730404485546638140177425167259722058142114055020981250975100898852092289580628283048910401693936397439316568555487716272331549544683117662168593565298478314208673376762927725594977278293600159243619810746893181659373651891861432125960383245329953775513078282011159761958588101135921489792411293249437176574799219070695338438100294393428941442891643448934032344595847881006282732012180634645379382267657349520928222023865786747636270811513323065682771255338049021266549796396565890404701462839322377197413397966014404817699864301542051999638026524955574981046717170731303992046150122964162643121806134991113069037179255533624633125185728185428852296786268295924463286998504502842431082200492027274504952508570965297403276908363202250615942755218314640331049746866629646007942379122403772809689810304759139750417720902892158815435598716757267217359642024047346537895648820407071707474560309040587463766571996994590294232815492927857879019240266704777397480105830677167453609765345560125877373808161834152002762258575403471157884389939532262712162223240171225777123495328733086596636694137170228020533735073425202229512879299639592907963150011351324961332536785492178733816984652070992639821787283322722113077399388229678712193784369572469243637936369728122274007738939870532831635863283059409944751370873202927405439179726099441849842375763995784721151311566790620632530927271571778830706662743618919488746582580396070053716209605467051188405343533426213929408623616009055278025968754070178644513946752225322520218532049210309084360668939710075962304084140695082207588913249652702022204190592045922535695198842740662108941111988170238633147718563933012188763393766970803709280365490568024531002065403391225254111842490550847580881667548449354232557498145820251423981558708170972782957964955606748722438015773095258226368711472612984785736807766155145960429830051564940667001520163399843643402486510720152598827313628315815848329144834928231925371135766260145423216140624377048314992404032438225956691269118656608045549307304998554199759626998964249205164115602191037464927016762219434946478746145950735609080576082609602472965371267269657587303437294829862407386667625074496871071813923050913482533173634225567005200975173983721377061757416333823399933306674469996380259621091437839148882422622740631600601636484686020268479596500655617147381032336892609137187852917239998625025801657441611330952304671554606919982324161339452623155771796068775875213016721689819903894619442980210067672314116811272135693068121945127053461672558977685974799235467063825390371560035826273269865084407681634821726982771766676151396759815499459896127709629413025637894647829587147218178201794175626884919946359710403516405913019526832064570971239345724907781759405005750927556899494813422552198677470628190896530121997780171755834777605190865564811637700559998449638916563389881132699772499588227636661205686897201832256584937551414041716723763472086692860053984959367401249415229594412390427716266436505116701297336761143898930061512129945353839825709953831585975218533567251428277790869743615318330992328421242606376867961911691493035902160179199062541737947981324424255082636129701180172505210393614523364865966927744679422133097582102060038215623198685290579315142314560553057914874158690455317332123456547256159602093719811784938047976333535691907695068718951012792191791623897066029806762518063497896453341138936593672332641734906004886369096048864160584823717680786020251679275010936742413815208941069989901098042747175659873299927150847240622272504847670911150975692125267637615716419433855063435093426764490209132179618781007990124602079430659216045520602733740629664614294322302160424317256867518096007031121192278642363604865162060861057683060423379481908442482218533841439306481808390637401405945081783541520134872541309837670443819348169946767705824956955478204399876239243666956914842245163294362019030965854795335682462227639956704753357629016792075525670741711787033688636710910638366431695035060467543188196907599181772724282604681093468116258908180658138025888390507378074744554291927560766904493730011286784757510932087643128604772750061038418437648095597419473945947041064510357709189516967441752242441755677657475642250636662604066017301859906469709310368648025508672140165177943870116587399490904313575684614707662277665715993540528611796388410080752622900304992266010023191752837910472784171315984384884753232134955079133408665895918092429831584493535013991006915156675413642347362913639835144508617724621458699280423168104021301285403672716065533960000625058901725714433836982134471087466799342373288073834551029349130862273133207894204327066657896371194764910831837670259821700055107681957920692808137176446976292045044779139893135427119874003604286468499685153395631645886432897509797616493768378105006650656035609755631424298138965270310001812342485960128722793553246263852021729171546768130618143209463695156612352289186969939751886836908741878574268794522673726741606861287214071907585828248725243280576037372061270008062340154950326872742568676036172573650200662141338973855388679587670582246648193577650225836123520973898128371138778120773248222238756371276015458968412566531169848618992827807542222721679321141414144673266486272477231964411693422481458509470011020058675643015320727555992739479297787387410801071957943377851544302075543370518122748070640638275931418229727113213089206312307396616755020585535594345763125270325038010358537319517665971856404080288616317444670410807794149437169339785691882930388541357289570997320801904863272184466697602671858960159427091989686533761857532911827571121306024899150704268224043341513131832951575665453975781418961692073978974745655302264087084405973152362536279850195068033993197054548393942526953593145161158242216460715509155241943186709395486644507807777582427640628640268981867213026956079439380072439815294017558972482444840190794836969734681595552058954925103224552018421503622998299228652613376847378884517938085218557170642209704850642137940861288708165577513142100041657973243899927575222170306764016008493342712333610817493995753241332881386746404361875165119445468149952861548865129666617521066369583721933914688488911940658125267926647172893945008375726552191692258174662063628907286990819823950730494369521633788441548085572200514964544258936186498464103032619743426870170919354011310794080317921034164189378306395138055574429961138595810074142061720338464264787175004023220017740731310434449272201153727402337588845934862753932198381020007089458298231387341648256849093422220465152840715029712341368404037136187692908777205977424633295807292396787353769215004352051809362405950258110888035300002270371241652801431150361742169117214839339950563279423451475025705313085893618911498286769626336294433876540355196316489046416737437611307342666577289156406778583839448236546679338774858442548105336347103047302320331042374059605738815083749303687709019424960984479793958488794360267416811521088778769680928435483954193074411782537222741267569480877341242014331273180453576200973881331007541431107299454980039885676151379858252340322074943329148843346858803568321371591372374957616574595282745604722398188762246062732751227598615855805454847588736592926323732625459106227731957879012803766562108962977579832610224206885271369758202805625162351581348219009582912898646488208212112655515159072165187928402930636923210772464951897701191309086996175577119792921374513969191180946393436059605668096843651278916442436996228000426371502899962655861997718341841604096930727723543983384982781484220456380082962497211259236145854934831353130848429247382995395121602535745235237498212038963660405460302000554894798795038407456783308117002260282649498464796446839291742486707768169245041169717175322762813329014856862173711900378046245521914933232442856212167241578542211113011679651150937033590574374646834066918612952698718509727365466429637306651212378797926104128051047283208316334969533000189021367270993744017094371321490713032846645063950883660218495060675026710112256945926703279355268248999615070402299862584068672950541261396671956872135474000341163366768940816548286958156501261240892871190411998109068847614811886474259371304031201891812905350622508196631756254292728662044230481616231962995099858761452679638785909157672759436949689820347028982800909432467277471493305232693236044821927636422082741238043342380205812081606678932227366818126332410518241165137369384960408423971408757165528199322247586680283202667044963544883928365094395383309068752165716559216412396290737086307643427929047542345487139891154161245581105801022510400245236821358136206090093849670808585034875182965191687566032027453864930754668024524298204957857503764253241710477526234501330151203137015282659462914778253801537864216628754078056655416867362858334466748306542437142188274814507559116481026631523941539931122924156733272695437054871281192853562128329840096355526114458697943615493155811083258327915577327464356394461253542828382584231724229627833398420234226767341094944424888732176584926395976925783018310652545886750065798732706376284121745274921656860825832835506051785084992805894415500131861945360532439913414162889403363223199274969741170144856000886180361316799932873485587605472125362191563717393271627601486667784663973091244434086485329225390566683949030465155913016660338961143985052195635451444990164400096161231505296883013797248907074294457318373346600415901175779241575025591452282180737214285594864423435988231770576111355230389712810924876282813777306908563655839713866441412560823412030993557455408123389859421025786320673742511074052219214148487468395461169956551082348346845271551779711549713139634872213466684058416628949922552915491564683384232732362537249145417822666334069545750842565756760608418524492916195177914436369283721063577967465758670063336620611052461595306501213384050193423980115004962112877558383011850895096314489172966144730197662845007390542136693179167902894139366757051150148387289090495695844523921017558783430144128409002173580058941667942258770515106199961568696013317583561986728560200870270473302658145923931675645229889597776834453871573671876777464589308823242672384483161409373260393237177448427827651725904039045072254544604842173363391376825516848710856185154760717325050825982405198799743431944496930236280715674022910923556316786327875130120504427006353732996464371681271633071353464887027610127606053753696375627296295711126788295725639708368170253793666263735250779299206074423240659985758045355223687299052662495863244669610794461553921317500338164113467807916476225407256261469775494996574990749253656607055955832809419785081651668675508758149096398915486248943911948318099169141417775853781181789810723268014204454907604327239444764395482632890616184203903416507210292349001015341326083923730326690475423001422748694589103016899958512286472419524137933458305726828877114707703385669514773684725150592655162574804297051704220840557576703902103665747142304839713169882952366393698476391473193394381226395510459962887872245257184352269880178557733114138059590255986122240317265132848924205485363705431567426001152259875716117090014944714999683930444926351276901066628848205004744008021226537609063296349082114097620501308237053139088385926330192679478651457032654614658616612811882158235404111604009305417327059890560347124062951325363127130982925849231484153130429125915407427811307723186610542197634415254622069741439959011016268523756909120375899403338828141931743176152288107329739977000232359559119747912047795960685195582054707375978541899958254619934801080929345051827295669344559148141313275026565668637577680499972155654317820589965473982011235947292288220630225545993052450586416124871861504463977272158213362080685755226624240795374898052743772749325618743073230363407623328683590526086070644270461133915769493321685273813663409826097252594632044962916945621110925062135986016388335622852321451527609334176419047208325803724351911835794094054677178024865218917115728222730750273310420804206719821490981259919593145036321040282840567780981910717835704586070819257768321431420602854484874001685104452546149251712976459600414642788364866889751948544984127600307764627544649252266362349381878265676186788767023982790748868347868928737114680534561019265623432599168561909108802721047545201898989598476555956846694051662885190061410406433486743925011958725146296545781585894441334116459843282785861609217895464005694941185548444611742894221603616939026631103146766253957873785281146109770044301117948901164624105971836523683360739740773129512023906316042948298728610101684635775016830952535007297955514005828055204938447055493293474334255946495628631685821283126715825901087113214726963137206616587942847290804715581430745580516820798909942703822205966559581714510661646374585545098052154433289046609623208143830118232476517444040161441546036832541740962935041905549593519599520751674409927689747570014839779424816639673407630550380845963403148790870448523147862186842630631047754337768367330047173539898752294708558378633228815502359836804520921497479940200359278194200730298777993705776235192422374024217758302522909491100119191561192841020628640312007673084632341321202283439404013582852345603414688520427810462780531797696933771115145875304412123539329312291396439457639790386817755339580750929503955413179244571115648425972538505809500267219008962387114809166389061159703685005820216065594166419668860042785991754994815249650535812474592729003368104042196718876522961845112234861069162990928467083096483067550476911005774109150859295375912472118379172231690668675223115200506392377929950891153816493237640828439713432939254989641624781825191204211930429016803162091600936191015805962788462575732800810014069290236102324358844840197552052266671072078018610716432283037140515946285527206457499942426616747362389195400454161299365797316278801781551546033305083963432094935303988104175188796814968168992716589628977909614360364488377632403424697045328911888013186149271974892606416418811425778222243742378759566726165431264209443962518886047875887972438049431409260936480860737652784706044335730098467355404244664977514735338093017951246472596293056946722581769501818593511647895336390080172889032716912252617163373826539422778130635875944869957040812625238216449402095557091936097185150701499241275261906109985771972376877753923344367763037482386588778173986535663808294598506643728953495897176915046056397843236441142067573556899386276807980882583037642343011896091614743956811459697461847161287287070655978854565540555803589573511023109742907505737005720558515843314636726912969336158394452010298555410766573374052630435796736157059458527988058667782543978424796247792428318747124517658685019861585141574472082256796085098696489176593071076625162352200542815106167682639620933378624101700950467955596710189000001348687946301872874778046968446450142512187347514518474065157669227886492524639709704962152130195102940292981507658559670110763358136172735526211972499680426132101249875432409056444407029918985471968745283757564833332299353520272022028946788666102097112993019444905788743216289977545047986850435150709444232601729993257282077881788871070835367143571871350147399257751438027290231112548306952933416011240234225378358979258129836022800816379332667160166492753981359483935124492682994073972728347209280472337723861007839808566179964077414210923021624891305858333791844572220772104319693974410597760924426391600677777332578542454236064438931926000474266892759712668859050226283546974057281018704000722198865538625985546123628284626078255067314467108545969036696147053679363438988579403783978435587756730490413844480590059476354562661310363415335043136348099898946571769445078721382775246278132593860105204089490059043287950371697263630535879791871858316674214899153304375738547425751572070485901690574743976829438256817761174377892304764755122560492867829308633609144607705053982681810658405728945975116051230675385700501901831176012589263451403887785014116563853292686341408368401459895349214506381218040441407362640375143907354875798747151764007930899656191497655194239813986450763214882884742261331127762388077352583732304527984130145889043283111247998095565883749148986399328579931864471078105297915680608370383648805992381919281194935019254216128397259573308774922214627881496856770557309836869505043986164361380979881721733632749040798788297476528304039411897265658429960059340924021760563751684453557516695604727006734100963868959555008754231397833129056344137724744615110658987301150240113724345424648476937064063893048609826261396024674015607758384872979115635635965845301949779787481519033976352248863627636366948186239573687820185877587908437290373672598851156900193987757924910247646798134088687107457855408382512086338288788416057832378935272111026727745939514764400004895242737538988590142639439165477607562685683167516413744551561330963541562930969912369075264679673905374310555477531435874268197824482663725220782447582131753727883932768056396907672639155754279792231466276643910806373450211393415759075080090354635536313390998110481887638678766096396276501118865589865538783763309247717672739240028056446125994263992667006031744958316106802185047117881275707102276870777998785923239773175671209138864976293099572818683161002537191941773861146350981224125684269130746723596796492829944494411062509601764135825279041223268614997125540447731223326448046307513343538683700786926817066966526815317675977921249785430527985821633611949398333246877965665274285230137362294156911157892286796327727783503340474265834417149929372517323098391707202930278555817513140411167830272816516507119406216984921263876781906514370931674839978248165678515334029661105019121440189779210664847934857506246409851734894101953512491869995732791395677041688657839487375718132311803581763428814292072253051512889201469780820038050848253370914241356141311306542715071314878906218243394507462537125593966483262735602979965008435037398208850884360472100653071628649721100533810205533382973149319252663618369516246924093055267049753763007016076467409807900645054303177410740675669602584377274029130324192165032036876295140755935972398871107435727341779609290489267720083844834632777115205461377122997187045450097505484472288904652176220715818482103637568041972982435744946308267015195275088316398557676628234117527226830001796152880370159742255342884895503835193038878924374551394740934649212700094699095516791007918108440768354737960113600196767716994786392961200417689912829243197897017334282774777361864600870690825623037788314750816728878978234865894566247923250419031525563814100126449503482412916541348743742624400153846740878917971686116199346320374273592324738866842516304408091489692974121774478368046197636156502862679323125238270055212331049978290559704926715059221985061452438391725871930186181269137014868233005814811321947015962918189760586759051052039483880725675566386899729111130148116078179674804834343140654443740917124072753134376716422225947276311524786909002252942029944551142671150948865779252165721583471031080017021411668539620408007652092089108483556526357210241510854693499711670388912737077437807465788464960857565133039425250195173052648549259473021138490433554106739443887676144375268141256562386169013287893968860972346717825824114602710694216182841347980974163182201205781602150956510497061356681340614400072007795872785435985346859599427059117205865754120752336375027881427774915808465475898003543107321777139055297322534342451005442168834509025561567900334430872028617949202624221538528473250094948457798971330952378838279625849945357465700245957733673776247015801725204004393445576745166685367187972548153925263757587524483408524547224033247928295831971994069591462831174549450246541219732147828899260032883676759606435690460805331724613134722825486578695954379275591439557187374507673036384452908879335757477120073647083909945070653146577018686424799043074712676711562125018188325162563895608647357080107602247288507711792840405414211734317815394190974309877297433839078382436265670122091484262723076102876084002761063839330499240059196082808120930226828045399770670904301982862263142578703479956418583472925006422114082563594836151189053457281421176427108454896920798213967687966097419250187123571029960997322772409837963284758407447570760116849397662127535563542027849132717804727297552031037191944785064711881307681232620355179064850860842888624450244360322235004527551523951138861160934942522894335263509885354364702229582197330543938436720228165339512604229349220324188186195544249087879618271552775083862436509726705071397178175036069158419101811630023993409200928270117835176531044249022435031159787715592140717469569637746547596356972810580629686217161266776688655860994503658289186791973433993997539281703924575822328785921337531274904749001539747505827175837391093143288973774587873466127285878703721921789887703437697271112776482003520419608068947450092660944558226867891672449696575983224620303446592207541961498333333907729959126514368063215373839617821354756314847337045271044463020669594758836425689536356442946297254859698369133405432129574776391216077869049966753931391578858656530709124223151775776143017012987730928514037789833160002888994151766950057388706335692897762487679304863434434416376565005588847293001344584857860740774722002626395097102350413260597909705593481635753719098455562067836133430717478933400293724820591246011184267789484718660566043285063503545205703237278859786208518228564611150766150791544269899833249840210114151020113815660023846333103862353366115457766424057665239306018535826533829156171336373637286234311603349633308146045895181472970458357742631745093828199932880803466028851038492358683909417791420353321768654430194215853901890820592926006271423393552679829212405188682198056466302487910512226605029823991385497279213073878434302114928517985365820478818216005085441803955210290951208147747455202790250153176658971347279506808304359377504280170844926898784587483484000012703512924738954663204398403331857217788507877102522931186315900708500994429009760643107168366205395178386591600279363762895639325040794702730057601800334595604782241076466296010316433166953975516449574666185046692151687381262948342777613136192824851253800777554052656115554523583293736657113319905239152768876515758623116036560672393592493191897158321025989385915470267671647685666005843043306980481246641009740711976057938249005159953574264413200499288034172475078719624294484825785880448042982197411706058842072351758406667566525364947552381950842403100224705935566014386728988014713340349819001341728978689902764733875999190007624736181919024261491307440317021980510399606357167538043407353289402763478603970727810690692610857209885041220767491453814814869925871261817434589373440505795676585739896327198056861876763396888305040292939989666718273126632274359311843672163390375245419736135593202992328313391566149333087069325862462527038191496975195082686450784432871974844890603168917698657755563109666047059112778953125279575432041131090136334608628294440770985120593801501733769634840415773023362595875848589848188235102410024332849820780448274093338896796433905445278991054570200349793023750077849252841347516449403028803827153308581574892814209017873679516033332838568769752142826980396854275050494699143442311737896717306994792751877158256816591204373703860352378642268274379028583212733324674419960245649635614516675875110007390479013196505367541157271819466411396034877835580525344504458039699753551268635550601597115637112947314842823972548685816034236795693735305159905827011410356686906651686562392951600298002667837715754526906487643866422210476905499988842146879902512492244753179167709310283547540571854375809430161246142382274377013447565195017557096589820313631608274409265980126045477288942383719941630460408045919121350681213552899030669983491812335468194510005207197287900888610751088953168784678789066865018002057360372046648127526544519009796928919952147860514089341871563611804512712847855738011096371664458157003809743402601814876561603439474790030446995604010557029906498469780119007110110203342409558169928398947985382183086299177668146229781781390255921397307050432070447653716973789484735233510514672883844848392883942527367875511837837718862880215148901228792232671772699232499923818204418275880538974079225364741179748806521061314665588295706171013050496790718021339693512820750494335978508029370664119681867793601338875278285970737757594980866229150145895027067158804561297350804812986986588041742780481336097288373058302930452270804282854110875657073194713279899347076969249150980454294651417434681661958927239579368596032068054344376764455894942882354455000049737467802148847834026885254081394034238986065607220679934326047395788643468204526275837976039314232797284576656764304900756690172328121571092277502915509061801358144230022223510164614003337804945906130421041309192735710610897590902473298068823425527493040023787593359181189662020771851242106094697362245023176181081427437773691116320700577123083605471426221095177971819512949513672620200985565593643977592846746338227199602620144739565156736641487902653326110948078143089682563947380760710768402797950189320885677429660081241319678659205897776555143996778557037945337487618510045960888537514515588480473318173193197889301703584484101968661656018534511180407017371394951026475564230595005568817944188494339998843469722563905769433080047340272308053747783529733662351102576609035091066260775210593199685720167439883343007827281813916244037856044897147487867197733367228414973542573450950515056956269171877520556331451648697051263668315344372708904206202175048996938398667070832489179596447954645303898780636455272856609601657070726552454668061312095530342942380199944026079661304867949275997802729980177205615995996097926110344880650585760718725625195029085147285609308836862284737499997795638039182164021195680899972296468224250340238321415306420351084039915819908163794425554222212374951443687839931876234016142676507382094422812725188663307101131098249708989899149657358723363029990304287124829678811626467965814238826619708907168546788183977168657019573370904452421389321661695584023649760018103535186034057997376843068665523182225995098345370078647623781847043870141199906672101351793448748596721353176611016283717210119143758248300046314686093661213762064580384965510720657698881458533394939478643377639830321697602068167643374101919735049332847338389227212851464838070703360950581130491724212429665818169367119136268398104226107015562964325415711515311982753911687567383854238737808832950185980062688731521409719000143056363572403479233433350461802041635744876560481840672255498654056864189009192753823611610339010795421033735718628084431456728436003334695406573097590616590520306519584489003251208750168071287542252461789289108967967884860165784503773958745122935199322356411772148041489232017639541570713245220703668981038241703777144180094733493063934410747156218312702514943793625263912112070556745620598170407252834248657011705637825916715627319060284495247076072358635523749328683872731523397271131834063034542284826352675081119218191027189820441939167680987320514671611947735454061517309076401632144974276998339038706786986181292628974414364294526010432494426406314069414190179256110344529190300733946967099625448378037848148813379301576061805267778833406010629777927568732317824403605391841069404497690394480371948828895066235480746857372045260840185804804712972786242374730109699978056298606345915451264234954175086789005287743675909480123266915024815555521607672171746142872254888256855393775937799796150426350568879522830600720965721603515039654191894311352548786280226037266806340177273079012526128016980191544183477196047283914492722700211062274913371136714424908518143174107505755131065074766427385781839002247889417534056629846168845932664379219489868102197351125516113701146592106698699366062010575367201852713131992748368730859138175568839210146571665683797868064614753481547678106050706257120133027316774597993959598664577603564211754955471778938780926134126431649026897648523501425371543418662966924575591575067703948932769744623172869603223883815380966640170187686142528682445724241872542225541226641550624508904974011243609238202432019765783046061914220461724615220945980504564561160038300926838316913850788898967351044667834966310575154690359276901974436870919784979222297826819126474018075541866005753685062779912447051849024376492863210407033280336729313202723237318136237353871612857880660616489501665776574117375875404155415566578450989621132740885827158071445363140012699602491897546213602661652444387748576541400698402174739406117222568355628353073409219234906175318909336322661970852010933824201428329951902185346839597283156226642766040020762064412794648382462077061287678508355033808214944745768692449460580063809875894950166469021377518882697719285515727173586515006785470611103747649395874936045370369814678130637045967131459842026002476955954763953680930741989623505557227564748377797559197014185241612359765977627616888181168753735571609676404182132900670398256377348196791380644442293092185629743319732379289445625908173021940358555846356151240203268009632638969578604308644552761978560047977360381805917545642914359108500004887528062924083215024465735988844760258910499205131423034500265346499285181996849094696242614674288637352192526869001771377085375056157064568061894278435987614451462196767387846307296894007761633333706075698853235800791976802125330169583196224137630768466068449590408696002862963275390150720809085826729100426874084174289798303357092334595111037987392175924056815266678925323550765530931415393111738135381896307245187032542632466964092648398055260577472241986003675172297877171872960222399158822065994308707052783439310171954945437511940113567046241729642553692484061131436256920422445416095210256848997306117473882546799378512022559880321891424449646287855902135846071008255456105995752443778036478007704815408963724112685239962985979335840810497268268363974090961294308688441140459476972457820075737543173326369965126308974757636471548888936705148060882702999163038115724353713678038496969338578430475868000558328454994455929307440713738096626746345892825289229841364637816550905327748816833620181008754409266898871156414108475825412819940650749401597903095956328859184721548850754208682211373166663430884399930094341299519978855680392905290232250397538307622198345668784972620051261244445829687528514493054106985958719766488280369960247345462235504175294474069661622786775772891484574909753668896537624113196064998770403544200127530309558267722964522113878610634049542091377656432015680512019463609405254089783396602354702292243019684684261617536799249967510602941592655665047634322293891392859629591904652131708427242492937938322635209733344997603899700400583319414062682984380681895911079893520674771793995187387044249790170625832703785817827697700851320055555779808071214232388412971392494589628348573989883841133318894097103364140772539719979164193242297585884523055841755142872430431600352379853422829936057332370984483924948730216835085263993711487803437947752570339793707128961352167816589534619952461120306577200474850340573075318853973131557976081901974511593694751249423412148430920680062451926899207628452806318370819680432050616672788925812337645473881592681449180950581998486183406452044589667212942466334857098457771811688258766477282898927599663056499990011835534189831152459858031576233398343373674090032793553687658435807391595057525313387232898755648105394469958077377486286922342860375177652684842997350684268311229652168710373044127969221308428881627882939082896152845864779245981820345368258901803057144846690405534451070784443503940084735500222052274579458257519487410169464365993152844361429273869705599241634937739271888641562314555357069605927740410753761355965886448436618478261881330732882179065912849877424221610304420117838549993271456930243193404289909345105112124796934147112935490136293754912731827925093015195326148894563268305790780044273848523000812390624717378072854390144739372884077057148528202979598650522501285151439629142424599424476465491463110753795572422433772390987735623476868472796882804117443102595625409403408452206245090053603657836442478590903287387424041104827097899148297484543595713168922724578016231336594861070100773194108253115189190556999411040485876100873754450913425555432165911932451905419793234592445025732792174682291567388754742022613652601570081899653697683266160044986539492141758552906789930235907257727805160043558599049796320950508744126871688575476529465653322101044403742364471931228066886887579545076772902382843561743477270020196849534253620055855138065037019782448852224616134891927825338698902273147171250910804753235048212262598376557726295040148287271864603727124580071268556189519065363366621278603285448854522335878116274852953634731901397135139055278276239236797563027439436069832549137792071812428331771121272195180035159791220885188528089332820445004320041736921929439372807036615840717251688786235637182024687671567167549515438642821500353386392114369102597750456169733967069095122588537752067402262686584918772316672047366006154048518958915024891810288938621516921082852410759272680323601178105826008579881530932747294537304460617281238505383551775572769847857264077974293505002079593415169773924402919393568626237948214356125227646040840847916254407142189643984723008463937084616909585614979884196828311596890226830554342470268970524274801656338100087466506808536867093782988459070906511920728943189293991341458550017667969616776200994987909134355314486065511978091309101533422764355959728507394144381747044813710891929525555217715711023085263318762974737232376864645344649628382681953342839172960454825135522752925115974339744144170379801761534081064518932572858405126278038902369149547246340154073460586031144655733467736972638089295988434165459329522785856694864658998575089414348828756603968818645024539752486372449068531407964387166929416546495620953695193867194090145858905751264866068399353276640355038060122938488445794671005054932130541030912404474918267178382134733057611611054730037831812495167361082199469089302567633501228535871543017904889926234294148604149241662897928106661792742928998387686082576125312298035456211987949921861869398232096209805092820561924896066807432736452196357919575192639870833171825556713213286280467022728978803538123907679782320133229024259908242700995379507813463905319778227913924659126246170510785219746358202821105074163146033581904322003665903719837433426118760897047567174506942082416759014641887721890834301211831750465642950790180191981676896346800552859575484989629760052501580630661055275574106750550311474844890663900491690993252950239271062743243542394646571234402396800561986950991679555342505903693174231569898714687873112766002330961632315035412830518300790312722764891349518223844456007440732989436625477304397104840966079014790494437471414332301063931882723587834947731720057571813658521357294614784100145796576001513788132901500566203656352413656320086890131559683573591031663071173554100733211572812039881082047108169228388987571889185714654670555256599800508060696492111854886379814131382012629387431520671205866983655785929242189564891023625474613187157093921054790523175445842910592624813704880882964384582466271407212174657232886574120582139384068934905616421420902278436098284005327976419810808057523346398450530090039202561340919576646015282015496527199340978347289663138710829358368899125203010427601011825551760293360762058974302550968443740999076097099916875677826300560423932607472049961733430705505436424123893372504194262767526659304611794058434245955853518432923844805616915713658460864056068216870054192823656477979734014867647281706954178633013385605901621297364813769761525818398370606615329553938307709231491660165060650738227148343997433658835840099613375326791047005961317261168500631742387687110970217431803292125647241780368136618468873723637517527827657202687347412788980797744137941708315098011456532859538384686596044290003240305542201566059299718854048279602781308795996223120625307090455490751451013224600248251802463102543212982409646115006748174809423490263950342506562519964437113520983619612222373815516601241594307177857363001924829642100295983454048904345629466106685447537913098568506911336405168773846640817811008397999422899603135423868180767871122743524567686859950259232327194353079908741418475874584314214763149587591066291535585652168588711088579723859012305599784010983133663473819794260989181693990072164168453661800224318954365543709542473745899811974423684292571292989826256368151364717714888832035205841460082434210574189574457569074392551513592028975211303030864823972999032227871221078851925748633784721080722852994192776136788791037706722176828388162538752836036723253445917147907033748931979723720989928795762074260437379440716837275438503789796491077353763329510873667331391356293403888732841719216852659668220175384655763812585600066265626117308672134687470722371040232974070601786210847904923148582555807296198827736302068327180188138630691403281849521404280220358399448696701041551874835920686494637648568714391885674737970576983036878095984006826585610685755192182360504970222051790493095960778408348521868883843785176817680649761652666425418295909077821277582023034701425015905938787950741409831739260170870892050540324142482165992023906607900527650957996419565264180058130444651376666541962434585876855085618846946846573378167651300004351693453337819076332198131577225140221346358600226462950826508328330156597719338032879242469508633936175963732873514254012145503228716076544405133137528992182964514734320384942602856823998777302278909206763907961454857884394321155822909196163380988857078226542313435874097896881886897211973803097977241025508280834174759297361804510882357386752286683695907373608034375957615986369506347697504313034649543007160926865713877963978422424328279998619391450082683810221773621468977396501126154313876783535141450260106132970417005044691851507253756297567512781427100709136811598531505954972077995285145329018565082689661659808653574906559883343069407112426257289098353812771600971680277577148588081348549078996818249874284374336017110972005319176723381204099088780572356564576318796588808098627643251716669391516831710532410676433986009242409769688238624374187090606783067963820815172235205241583797482008770718178184938467150279712009172463613206020601123513088732262456813344293303742374532294394891189594707298286458565110321886841278102965431462132114557900495831381334373874932811155222725830155365541867585167127210247305648652170950892841038749829180529052566135759166690543716637883751752606765410764976741083754057222499070580120998152222224341494712135156487657581714375056091700664078898561482450479517662650691073612532138421500854278236498743310628811806354027670386464833826062081092964723703532401906018939625712073238963346342878774450234324296796199256415403885732157183328803130217823926521696900393118820338985672738811079851615913706540097114591423444654585322406467718776386645356898451143624860746709667190704446915089088737383064118552747081661988392200858680002849086429629148733587798337846145577273552751648994951585937826591927562861425663168294252733290471886659092816198045657241319963769677464761747307195463092468382479835581826128069536781299258232020558246580426618900321049374521238284299260131133427576046647559702653235769248082629554399225176233270518113680711140234342311477268948304747105424057810230970610424001972396723133170229991649073335050175369215022916074849816950898286804081797206593222683089679422400216046758459423191085057276141766760372578233008734685501551488704188960023049850223031312310163359579170943595202645228645157816967813492917743266225211496405878390825862376095870781979069300738327534809491887076082667416484293322883381293311635693265979437989925354628220875882712099812556637660801593525971828795458810028102124378050563587987599656954901399987658932562775771860304521889670719928098205373340431619295883509672991261972241322356608002523924151152321922459016934356417208298821225501822878164792950116582067394605834711841092667392866029571351916341163731805183388925159926346875862474402885600833560941518237963975087081151779697623958861002708133554052168319847224410422685260028132328988016811835869845625613298074329206438651518785109340243015598321259680191182450491940926075092724355975320162333165084503101677705570977575442021822661329012716665030290639669088722431011556421145241311071166152509038945000202947050796478752997271445002915996791099330821289477047727071385094735346262802523814040260523777945061216898680285325172082946411915543431800609047833798451612912180138651300368709251528924940156672248114849530658894698465363797949884787875500417311319160425065197837067342020020527646676655237705862855532019833381695607800084425334168301951951573519870512276423962920863053533171711383995958812108026106834713617879870697146548468931338863517949930940814181706156507181308234776075417859869519286384044020135972333570341472390206725063359572490420797270536544930600420156196015864755355545943753109167449532288397617251970687165373775696018220094420654361892950724013503272586681197184015253893648410811040880490155051583519324816793402723652402999805811982495085433740157875564539949858570703191831526221787719102164717463191516107549116469453165443694227255968125597052587028103056524004750330942017641073230529690886814378197425676899506961106978582167550860084925292903600455715826650298486437604636582655475587507102762611630822897294853929700996074964382302829397053208881752043509038099916668358039349257785435588502148195059696143765030167105927521349070302353375079718653363709493150287816369742254616354708328360040409446367764126143991437094714496104150153037045351474103372144487240546267781584515170928125788182970476813798889649880833044367688387626546025407255023002738311927427270599945505369351682540135664836491671134087414670951641896114994206313360282706605518131528082016267522722342423073363158600724324342707977510673141277542831603139008459865239000600065552219000654006205682802663547324830479022284555866829755517522915911419874184869499418613208312570557931621237995638892930142542648768967820384599193703881944736609781977476718479944483442295953040512729939427359413768106344522277033107910955724641100287697904809412247077464219806754262149919510788482936113150335202445861977680348583739179190821539815206940759114638406557611735956446544097839445407098269338698862065110495984455511069801804619118119591870732921837745016764589090485296507889295989858879162053150397127628877636961998829647487472695719660766610844689037337539904908337675635365006964594360219784683864927976739244709801969826042426343523152404832737300581838561669143171502966518434507958041857691617664581401064329030248019455061660970539307440584668545822120229567875595789936958273516777921784570976295480942805819330954269384852669872642403521519364550928464716995243174696899011901780843244403822661723464349201092788086614991162381896386090687210549712887782340873782364855459851072715434655829031917811600087798069380489879715472128227485380254962050031373606370138693137981123617705624423155186687752971382311931677865421751260393303605827216947038511512541982208175621302091056651984731939295756200559554396572525583729734139347494488402125698180705449892067823683215041423008249458975066358622382488807680021109909505948065659661054733754557537628616697667186724522097645799893533936032807429407206470112076450034494791093320352680248633770736404346678399038885691799758717545274737935717340517747363680725097969708569386442432996390347788201306724991836530131864305444371337811252835543203984542334930738715901295921820676223653494819162616964454700649389637914569532174335418285141435536328347187800464239851978263198601454797686351454648494920872660867404623873887826526393616889202706413447722483150388321223626084044312588788544500782872925786086336061728720081642094577630214269210554528297400038047153586256376275323280213746478269966056700295289454679936397995261919944120644019865566805201485922620923570782308325249695003127909167740045064625390503244648889134879507456791548245463628039851376034523543743614144587558288591032093313379176926103752810650758090267020583793468971834049157633229864235556447642785546046326474654307220567989557990044164638180655008781287928513569640499183380192976996833100146162566770893163135513637497979029723177328123426522817269182589494112818291424801182903987307078865623695281772624513674734547127418752133312930835930009191572945874568503796783346784532780215729601269600243310539002007792532880464813351907427967522105843562639851047996331674763167036113127346463604133082476837934152630477460313337860459273724369878448374674953104393785828234143117244945141907505731648523245019665678852076900576622112933271867719833568423970745970164013604526844921709135563769830223861084520141517566037341173524781156831518340484020940055774771501797835541802914802480891748103275553243275972605343551210608157887550602470472656774332606758918458361481014569202581936879088755046885421640506345648097641388244197051387240812015454565220591656392209603711910077552911896998967345411434190087772471738768041588966421130570250639013947586734057766709784358341802296987024786766602231735313778544342361981786508731586218220496371630289574800675710254682531399039386073488122642484315311988166106095242075866640969110498097772245127230387985184497552543457885800303892439297689597317119258434202428294998498291172264551803231761338531577543039327274715417900666898082306930827053056798435055967949579655903232563857642944935077077694260568741846902897367156353208140498466158618984478316540676773066442559652100735151370973227002202346277868710727601000305478988932966401510403264741906323071034286082409370272985652763976879760698574447078162557429156595600539012995297908592580226134726668472047322094887583496868516757679634825227597497144883577508950998276838616822210890301767065721271574879346704625754967735640561900777100772743649178697758995314812410781367059420044227330056558387970636124633564225224266333518165136015722236962270537872004733325387738602334312687764863611063258495958573578479555547002429642770865372524720870310371163310719101492267562171916563632944670281033569702920614838537637303602028866198697406175740344635631853411883416647009897140408697721113513823701096821040352354003936743998413359621407648695416193381875398412377364153738794743562800280369855956122162726084248721846268868396252397700102178245342987398631014738753953209435444311014115076061651117569497413111172598784827098182282331093357236170608701422562237561501573886899259201755116807633762508036064393064778505354621991639725912657752538749299679648995594249442543752175685850150146585830456000130590894943169089968814962667580319036345032195132956821341602126671657815819289725884153510611055532563043949025623910093453760327882084535269442495620970978351173039802527029038411239838583447598872420634367342947434076407912739482955380807275807052239141241647024120722470106902053733911012076649251657240346519680182785614093913675370897112766462636255226571682062104709527876234010589193850477101873652351331192317579930408024199737995229000099137400379609941898419954119116845113134658389588349175237096483392276186853044598321911438131259144446896364018246186850735544919479800201823057893550598060331685811013113806937458769310907334260902861345199703535609954412775707270661136647632939477766391694795375049846722976918798369117218284371553065720898349432593166855084956047464391937467076726752893747430477340123773982097553288457303190123161990036580234917974382185530373264113200034852292123549559717195839923159956410397147456981925981513942557725889116652730181770036580015396462215880992324604950455229108344649654777450835795770793463512947749479313550824246907205263049463592696211930494194857783155935948262765133130427561373441782618950939586143670815159036390999582937020942839045872957502810077105040099485924960896388453135793895904313205104067401802328501496174415165966763560475146615240405368533103493627464687236117061945939002444859893775181156601539867242456898257171039599583059970369017273550702829552512872896954875244799304884074047938866331483699346701454229496769609102203674199538649532130094173351909788106378398941987479791488835528732038704193958453697020974914049566642850694297035617742536131285468441101830949194681134961992636944419965564241400087658875395125172161972499685418507756068700625571491546322886950185956899516110683506175872511085796006699221505659959901931081950472531440771710258808172835742870710666429436456487648268167393407308725196806089678252429252134998694907754176790664138079749946038451449215440628383184711256911722047150739193340192451070419214532119681818255343362398993313324455715842141334035787640646745911060225048919641844072707307531100125627723751208532722683024031433847630727459039847189836123597571523011298182261163836512878684432457271299646787531352975775253971503893387606934300032594281779317186998563826020890153994287635902359538369523407927899337349107715911988417867899253276994902664750844467581798668345818858467859753191342991394454831788211078208611139390964315696804842148580204117001126994821842735729937998510275324275058020486827004480041660472408781200097863970168060222015236252132148247111294079893827693851021262808599762768112708734379344212463622235579339964407205494094482595814665796539266051447146279448634509086801319252567447917635511299245084232276455551627291640946499117776380589872668913557160378057208957822772576073225808278361548571788372052625079919118580122536191212766716503265735945324091895468451374138981994121354997485926841731196214799695939393725048992123816051450371787343650286067940331829384381430435685735425155241906639232021109075500072579808357724493143430120846390709957471291805894169435778013536946931319843554436781778207485939478974036919831959994245828581291996274947973997965282929390211335217549685945219706469647820561464687836698446133604105015835037714877626557127201919402108500853223353725774879136426226661743583474653247342754457170629108420022114539493622226657585973001698914890990442767036771126140667999565491440139388721839787745144334213998442880646260569159847060724353452218424046639606180849061966400266493621403794145181615772988327369747976965189999029617186435236297518995279905965827573783118596421718957150276508621503620525657214352517403157289334942324391620961396814792951188403329994886575848766534030300940101463113963038771170734176550775868148918649879825451356046481588982562797097554928900646023642002812298494177068967100094682909227906283678156513926292905424516085641475544151487687303111196552667201119366407653491194253262008656518701794780125006395882763991888136447839076199980259044517856562452640667496122668392848218166271716436232967865444358753040750600022691531294146506782648239659122426264373478143156577008755024574104356296869226370928377633384037169992598923272894038099183950637557660236973172191033305690520804497416089481183576706406553922329847414227439190444080527063524289077933638771336977474919095542625296846980856535273549823866954452314507090826286460796419121340440206723144164866333776964645826990926210893274172618669295038290865106678613715981617874722367694599417314657894686174448473805858005653847985905057874565897525551329490369850056916316022265196507604934514672893809830726537733717656630096411495151840611921423873489193535673509506835205326761458469286659959388056696984610868985249648535258010362891908168580182891681020661463011858434655967518667721481439103257599796026291774857804121659751674696881999400431192028040427383586382068634940010469888320778859642260919492908580063253804952900794691084663308812444854740306106132240850851872691668808686280043720013835179790549275341391997353449891799432119508618400629088647165772600384386137080916371264459239678769588648178902549808971350161465489034159238763155112085169708495162063300710130700420230596369589479591935974198971689285264886041266227681538233000427880810738423223629463287256143108873602432442305439914475764961031243913011705812478186486916751583724152571933095080395683453492063347795687971503206949202994817680258568414418135000175359226955860550182362248679026944654840804924448739984201923435879998314065816588541320402727577122665300440702304823224457594842002601223500581236471394744031273358302919573876874454061843950117829487552292252721136798191815235573680324628861654189206451174163721162908778647122285719100128552303884345459308058781926387690905510562318048579705035874404481772016957719030219412386596217909983452562411864542676364949166986048836413780825921400823284166291115936989888746672480975515634731781208956739049893990373023834268808697005941012365105928965207938439654878421373169321942528554193923023489933942507979354671883476306030610833565133969742946532717566483015950360808647190888159469174510396435815613780557936322098873554810977358159991473966812713934085902768964484374250221259291076673317013770521031764392903221081144096801762613315151457262331818159334757624977009115527554639147983976907558809303211594888185492801808788036476129716171758012157615500368872777997821370254040967413980460762046465403729690346134239962296172835095493849741327649855592948646833252087896890678328797936486445442962975175854779862019765728125031439012735007399222496779647676667781385585331254035703827244993774572321398873054113943531002893195516702401752797041502684016377664411690260775456705708125460930502247963424712190498795958977279792063695483321714562072082266674355122326281923805062440761690754006618145119789871513579073401521118221244319231251695072895580633160890494050116237461610813535312254686776459486704851121768574771949565434477395698495505115252431580355122555618359554930200869514207433139618044190907885354725176187797596500656862341117301699407725655164915120195887787039292752567184933128902965907316141754143713246190923241120687270495504906300940055039696691367589311017985735597151533462667711424664504014481159536564482506074624048531651916964401109955442620439075563024520780309672549590930773368545465815786460725867437373966434648930554067094219171643832345606592764887004513899537837334302193713515590834495041075446526105530875064903491272122526147712886900755367207140595618362264649528989422584005947519609655018201450769581366346323814191269978765051252395886699792977691182491741581051308671718647010149215515622546804415038129942863413018066943739307691954093616138929025415815851177306804268959852553205550678825057103268968213475431388106392386723838663071553351556078638871187704437432397402170226543047675093038312324603208730325870508063729058437986032006174998768973213937770785222889302894587184490615453179679833935577437715239709397063373196909729179112804894650009172503526369136098535651348559611990425884678678982598773837400470291870904029923924733454898169615422148730719638648896336748767270696519529029402827577581354538312042687762917164684534429811455675344348925789327121988363738496538846626476991227788949084719744138397894730895135568254152491227663013059253864490039863778604789703813629787345577180071514998088356303994402440928546847385985712749081411730225769289859277256458645925111046881964122782585984671255850489405983700639570448740119951595147291094056741608819813141500741502984986876674947257387947723881401116360494545991261354184880210920605272735088145101482242440566803970846927226611663769372450874618664380576293627082474858758715095510792171651590227740074705204557205463564982036213993553772894145455460704960688677727615157782749411862343711700310844522650196989371215959118113834608221462547311464445122095691428265005996355072383255909287300831434242820310518169677236314248250076230430653512789321987930393966260287438760713505333236066428275915218631248142980533652697667096026175666119613319871162374676727796621848377732390367729488299366227172777900803172734645928183875707792148789908109166921636304042403610970998846033959434031333781574255291674588039379143362141134619454846240283234136293853257502534373028409406957922960553734757696833264529833141341161926872422643913074419339245002277797167177954361411771227788766052658264125638619258991315583520564218466824387801938516031383950355116125931538636518965405377822700560624693239775097899433641077096427799894310334187300077070068526916198179015042251666949850103209477932110290694626376438966374165818071041632528966314045502480298218503052956060114361116957336454647087220849756492030554544905458764268422597033244473368647044188340907823409312100518078562637766274397502005318211633095457007401809693234573607260856856392236569004458801461355883252283096105932788050668253664291986894941522510174756542670726059827719912937586742626123730378779768559888723848644190837455354435907722921567487355926414581735722073081290303981005602448624445121122169655880936536031645298074995064955307377800020978114846924168490369855567978463557685388657706053055041196509394181157725614206989750368752892151805462409269302428915590426259003514146291538239576569677553959121469512379684192564218400028342102124342797231457070804773853520564955247030380332993600992603241536169600736987285204972361879268661534694968774056445457879206533688522759590688081514607297160782352694556993787734646179005150898852508166598056536825305854014207997397434925606936330504792944921531970673250842674941765653659126258405730910694847509979963477512104346918087021241201039389214189879040267775391913143572350474480473057185936822787773361029224546282036570155116513994833565070126803561930699152281387830067513037094472808602630218467702094845301085165951186119888413020813402776876246154484166466541853889445811674831899727989928537716710629498575067378560775952709908354911922465991498036997985944808960224040808651265747580137007894573177026774678222660590492232611623507519826375125737593683962574195781827044070688462302501657073218212261056582652969554825643407918759406439142600270560124960186058107029677545856373237155191929574279580002346499415322436790337470560303377544008287548670145049968706094889121560144224233985599548108067999770220852172169564033048835564744491886005341197798402965000609516071130953446133633232265433613904536084292848495474304668431271652715270573980942690584082180152348096498668514802742815453969006097176411203073506507111329968045144984612910976753760486471600761149012257854060312847355200482535448001023070455966448028665287657752146357385045693235714811353880797771163103430265547822692439614906021470841224140185439463319695994040337089180963341929242111512348371419709427639193141665234848809615651326383444880838510303657885798273648677617560367107339129080609261821554630004100348037785484924316686916672565252424919690186649211173172750086329951082362855314142065352251408960663042433616796596054529130531609719252512270325627353755782905815266053217518040518804143904078985399454116305914670153613042556070202696419456064720362144827004566576547034275568060137659269761026064476491227804384671275418734051535604042243745153637329691440842906567128359807674678052794188346217210760551299914648917720573236584888733271147151082319225048367233831154942137791613759668768836296683360878538068138818245772299194088172042672797765422115324484691422320263450196869412042586813952090658486699490575090053913844919650063979750729292782474409188622213961990803994040009517460778311321024595237973274352598304647045998307371783528089312077795200772625933752293919285782536977242799771192178998955200902712774907798737672209384845293197322913989794044140598453042628182316767204521872954544553874784579428654725896957271144261037851094157169901745623227794641231045351309035505697451539186063650303013262472374322255965020597283116071353484118603396741602284700048741018379871918582774581331598977189484631637246167094177279818800060457024472618360871415926955049504441002601351210665332966310805952186932399199669644964440824959302601054442614528486960441457646047463254654855945547257643688600440826408941942093582914221884193870125126970812847404960266428313623939095530758843577085845366973703351817949286112181048684683473199893376295359351673014493311993664141851880644021809791182817026977085769286445552525029938366758991001949655951977879376140519292911064298458543594559546839096179335514662595996852061313859587107180888602075621803215108489592179504050590437143564410803869773039379303528530266103824117881257852852693993426892045501067278978103279403339394013037886780427756925627789913408940959616751170816679554122031157894136457412581562029132422810539262781916912886329333907658343476644996870388351107595443817859133344357650426604676975454761914687956024910422186316750469650630520982301199854085582253040193137308600306843866187191307984915454668230320782685854422942012863454251728270487999833335587351721242150483846808874114710109767846066095863311316554337999712365855600162893655867275675581202369886098116570378825448369663565617524877450968019793108257920284174497034324257689764118100348717041297548423666961354070084123896410436321361357449927790360364668436289241623807514016172291458656525920448136046433080525643031016911827693398715193786885123825964934406830693478886779689176647215595283752048466501664491782120331830629250713784119322132446975025249724868703573953612037014512267023716547166650603384212586556396690272335467088070300249558219288417998872215503661684584519541192583551280419244784118973480975912151175614313013359954708964000793300723166282860713793890203988517141880139506487435397090678179414426008490593296578938063783091361911735187013390356420136432385794345247433997174513650712812014139329675163433759860841658142085121739959644696603216882582287234048539537119402838741208616998894672130762978090477057568953504253778701218988022896112248488155679448501634679337427433226123248616187179774575944796937283510308455274015611028934435890651561893827486649986567870697659487434143975776712600727768220146550072867474192663137392407611880142682990903581006111329309303209543762902808084078802096660382625679982448291413664769173354459553392934784466986591997046239770528486372858763689932044133247343123898416066271151030928927644707048963996604380747561931595494928237785182454884504561831820609685571396748876799507383831824682850925431550206496208250860032136456766246245025328017638699252478239794853536601529350453013783630640600740012440979988870963435814024986810914018325490419214625747855763439620002449956132415513684436154307217951568634951380124564721485366103729868873447623670946991198826685245791543833143008613965136181938765648554920887646875170243529360048562852759821921517726955182573549179529278207646930180138436249734869216267462909182019604039699098574487691325498951802934023083815579047176704586958609634194236743915930569492292554763813141385329458608126070403652162305914459184022764380110963928859943897746571984761583490032128038162863878566950811043405568159167567162554264109404527896897369807615816106780052419755971701319499175338492960473817110808276917853082376915348848236386094223798937666845113057086805998105829757473417034098724283317043212173728913172765004256846102726896386390564752087786177174769532297783759163395974728860949305676058437174098650249680704880551286244798192755931279443874838519012539099848115630316374530758929952550155257699746167846982605065206520968043863014017188883898164944092343461123129327142337981921994915266262940619409993128840015631702718310295763653751632602511171757821051834987126294617965844802034355471646151869275715638861683239043379719143999781707517005344847917212996026324535385880608755853135170010788259958924243975134099027985534828450625733758877552384378569900217321323328093487542599355353728168230979169998086596839947005053536647037955872294247106584133155401022066655144927281615959842180146218050989175659581932289111482700079443974062457543391283609197647114813294985971204339866250976555585720555710516980319044205734348513106918242431673476439530146882046273035297002202681606509518666817061227828520481209021254490103049633293218149445046946056500505431616917118073827152649144771286491348392617188072646127852491948573173983184167895303697576985412071360297311409784575705216156738773847556976239978060509412372226858184795610844604868451325100520722740322240925959120142606224412151251519544453348807835000153322002768627774573444076999480166476535586058505304552471614334495601094985116504367668621944414588547001805932182654838425223253716559879726990016483787128229996105279955599012163565371891294194002880648420138485369014869542320859301589671847554922512438400775034814109234686521502592691931980019961106371360535014962158683333615820875275688095729271851155355238986005192813201260381596553231158327921218805433143202098315293908517608746955092570298695938495676371543309871622338671099646551328508645155249266781292195711464246611224409562235953140391126958561492391859743416022732123667160368013545017909483815615155824515354793832853543354654878881600251025273514675504960025079825017090890229913696412262004690526344741866637013219228044449871870211786046042889296068319736637165726638919405192868287999006174861383581345690217469194277702812666366548980127836612544025624918859380318129456317175531293065510597333511219873496998497028488586752740456904934373344086874282978683826755332368609180593589885722792038041105381388370573250215983236851539479356876673221414505592669727212672384222821257485199429170289058731410657214822862903716500981056452319313967232749810520761067839154185876113851435554979675281622188928329294604757365346814500025458082704695677819845930710368068720354796134284902032912867944947847565491758686274117943389705607887643255065536682480574282176529717611252375754736479281022985217217945657061664154305434407085414563934131700843455128692732647936406262320297414472989844749362445307700736810558273149827580461156341733389663380125919333724444709483999013689731927881429827449665164636730984869984591863483331508772801610518296045324921973950874391352674255146706512317683340636269084932372866123570514687139281277286728709684350422133693872183672370618413147900441145717886677930357519965615889840651826754089643563658727423682696645340212269983017323721028830370022533492892215122033916314875508314776446442325674701973200392603844672305163960151185752086371815014873183924369277954864760550234709449683300474074779466600433224607437128224626648998751683299832749577017072718057251492948221720070863061907830833327600623078644804310112630758037755042654712974407706504028182071503317723894132552904583786358128743618857648198162591101165994958124140239626077941460450368777025910723235005031042397850467246450116146106775725067357323335677184592463804766187383694643312694233521204804769396590818651237469432196199251607994364167145371659908655903042023170501408958377778090533809751416992070935434945194584997312721854299331101322725148892518993502121725766011082775728443932186314648915993753053417138107636140566558875843765741965922327075445063982918761906440823904732787509217258316718090069531131827897796136069323888954689116064490602063190409576793748928778430151353014273898120940331632995609956975188390612087346530591021326337260343479781174227952908154999679078434312335204494339186488311750796562614995580100748422645365971866108638671642317389845360219676988317984147290222263027663238057545415467149821958843772213983344736139209220527991836087540089837365518147391116200696876541901288707449912972186474811602204569104360840251907672950538428400352485845694263801696879262626379533569512262060541037534411862076322631249794514806867482222390621535042521629783039282634174892730731723922289378081139881900049353027223128972681454274193194720469831366539427968992353479707090811253185599894130421851340800553287815956052528355403204213323511689561973917323188385628774997218793052531387750356013801576408598018916743582522331599069047306350191978379893211229114894141004767264043072396469606940132384676451012872857096675225948419060265547298782948895494828498783878851952240534636694426390417763641016032204048435259208323750811408393973956663119454871559076095151363779754670852621277568569999017881319575536967844256077720058275751864958073314182917548012514424866083143308806487381797921209511846616007945845544842914551793523913238838012205596994912359232790598613021726026441177176228424025671075574214618409399928220309833015288412957775800410531107672283225274894117427476309800128430268598559421469437886224935099626518928728081156742620736864805510151985937038565261052571844329721906438553190849467166750239226168578904109190210106300728600682400548125913245267237513598985695307719907392160361592099001358135680085709025727383001143206245631318546904696766826196002189303165965079777435787086879324773570376545415479196332826392342154969366165974944566689202235113942063270747166355866424302630783161097748553654609421543592116587853625990012210792527707342628110509126823439269383864957077664513662911082263370952960379974940923770120988550290756400820020162199721181450487614656000292627019385897987605634826968717457434036017621798508024940791961176388177842455318355469277751193648717248777889440066242448355028766895301359872151846823720742884816653267123354970711702579771840694671761114902308450160836106945941660695186152531083456083827168899138985610721605110039690954955771637905843419724228844294691213219130378222508742366243782070251994660153600113508366573777111540009382220058773911449502932621668762235716752726227734852996974509245439600736983314882220578264566823748071640990633654982151311367112116230280899500580284093569814599410818526491483749093015815645688003612243201881038999852159981316081942576379562108089491116950329474442013950262000865132526014974824784924260106799579020684327237215918626120471531166931850676693256996216316700730803510172526029491354958480391164410880198640698260158551111246580945690540953738695680683360495790890210838699333711887338362451540511348946755356491260705711206829595314213147732530476496158457979096663266264305100637043867405860967156247037564849863964736846252034324579583007598337998112444082591174502603383878280665241224538153610127145653858380223981410054423145715590055487374022614701082303552414189174032036658592746242938231002519322785254774931078902696543668512419375292589907483902210639748127110649460554291463723772435159003993168143608056413261089080308327662625745151792523726345122037169194874025939624036933106793206748473180075946562648902756517059606542210564219324193411402563215086892797093633689212062592206293273271258451404306282538285190929343199904766561419238005894663893412434714759964753943303931237909548112549479708379370778126983981252072392458663539632172157920139195200740231611894146905175028430197896488694924586716396196780361786197954011197990888614276480556598630221561196278690938755997100967218354031099651215704280847310318493069789068553676565379844977722396017500255761639291131680602558214581068049523943695264034206311324611254287663550711190771974445572247903937895729999437350060639656868703461366605218591772047892147305951081189071799072992685672373420966913362458131358198214314633986797687025591235323773358158923265602325081485894631860368257937096151317613507268405314676156523419903166047434329401296558363916786491432301362071949793544158832469315874877672827308692146817357115254564550964713410586881938850305942457727470416235605801856765354450679251334735603071429134950830247870220478706231854796709511362190220692587040329127169757173208843171360840079154564558553327223883054105650192891925981767892765886501244842677279615356290871752217551335247613732434596877879040748349748817169105951474144004872896900505748994519116804953241672960269004025303466155971873787009052411738885586873945031886227349385131390058059919976239379490713172699651181513150718184878459481095814624493210805266008608133439451866030636892153291263411255238784400833162350726236336031818014253772078179167615245283886933286547498106343651141119594737123705403218621528045823020116234889158404455559121609238911132820999170329973622150375187746396080681281826491909025849749796271028978704041122769805243843384656558038907263802540850861131738705103380917604952270255013192572569582615802900869047178674909546528225473132228160706295987351728647861413709906691081352243834069887126975118623088599734032031291490662055515780594797805670092875334976045538303059122775997125745786012454479270408678028209588112630034266577612921929315549962242583887602244975613942048905605462280328709478721858268083016117663580043723875318026063311867211881542223933509238808485012415626787339576205049213631209156616955228405914784320651333670620539648624720759554820832717764683906844614190578513022627915140652337078231939790485822941092230470610892371581458127018508122307273176657238123644001464694959622492175405012264601026979953118054042476149543547507418398483877073453295865685527423595521753221748396172781763756927471802324107148695001603771849100113778384225945540191307293994258504921452253652047746900944437102518721523076296425647975442269370625583902485752044828229595904481215453318512698097284456213540162844067873867817388889791567973196699044154173132702958989292514230232542442351615985002694612062571470182763408267802462766732326328932127446901506145657860660032689672593760030082351703733939274165745864319658972822502057959003435284643539315826214696187003515675308131273736048656206073058086734584399198260173296927963314654436967805653785326173093594521010592179405331953313555760054834447817188547507645950205123858507509588830063617674022380594986781025901833682717106549706317602883765014476611308084057827714994417290991011459028157953356418072069385878408436646786243661318866747128190322731501091600056409892726424440799472031365070682823053937370178104719225081218349067625779850939790834872852890305350997555539231810266996962770802926907568493559421374627450612620776352834656262707548574175247663640542915936641842078918895253151409378678502066063503135079987728352649504669994735336234089032897195503884310888066475898087844140171664674776826829898991444090149223473507598537275651225674008259971858368156251747552928558474445406022843815188125676984532644076703569572888193727162110556360018962541416710320505971591677660887295426346771905271688625764295987522228785136964647622289527109248886505935841014390169311791310767208993096404948738481704484292911275405922696079410424769357783797674419651279267540409734140861137179767493904680333865093940152640768020391035550577389639684721688236937298193547249316204614534128499389097693979474413009782407844678048052995129910038419119506981425145958466000922233543904026621223556882120177228276390359165033137887486772556454098237296819458686511573967222185624940621823921653944490940735871375511123724412415807050009050959521597948057756161555691966386913505568260694173033202204381201511803097599790299400060322317303455917250303482277773039862446192608100970125688676138536491567196252919765243469442149061073868447496758104923571530927091987480620163011944074411486810631155267315359761905103774876272159967494713341115405278401790455889998386919199818374645976440804921928972552664306941813163511609413591602026524664000297213783288154706956932003298909097547008638198582698577282987353636334933648178955091590095482708060801763784381894125939910777097890589812246329824162805104446523714832122677858291802488015563974305939133442543669742322436994372446065265682583544099706927295574410272695410635216126694359439508839102906282429949392133376838036545548312630818629206382962572878780876363933949689315666087675078037286684397643928147228973080097686160721912204336083966055410237794945241284141372380754683304437399784442713529891482753008166008393361148231509235596607693748750314516353613493374871489438917502935049336187214218983213664487697066566030759251447538411753920056315977443728523086166220011391952274866040137336732654427384463019251533936351678971449908951062603607397288706942492857874544852077148360158401173028529511845748900206501025887488271091862277936440136886656734729030776465982164260780922935295880200722715732775798645686807548209207703184326487635606721947202742368732785974306050550479924002973309296457199698093685751043888649473193875990372122995650332869627768051190648059037205054361403996043704193653879047281253191071924976419221530574584156573286767073415760704094889734634463171735123347695788126751596572480537482976124390801839202011167723321251587730411885260054784909565142323794586934151140782549981306567686762433345201381299022393464320500782367372796002965927315072350410712784236514360740938113127644801303940578592792679534096327821251262457098365895409362180539906754422724805867944503930861708857170303938713468159275283198931951075515896430874350394280476519702624959306906457204791492598803951545718807338461485776915990949027903484823219220763630912712081201266597959800134050681750274275424378265169672285123033751965031434574419675843238701044366555443117784404874827426113118221751903070863107402992460909336220850270057909998615963043287883403795990548265701448227369665755383781815266391046909637435511661894125573216638405066529135117350413399388060257265659943713512753857138386772974218748513178119348385452556339650074981604556213625389225353855374695497882286309129106778033081258737365298760265779645310832451572717590338565638571868684516055481615923308015178850692254922155759670646845659102589231350406929479397278625396992359235942640931445913196544398607200086582053828885343433758119282548065025885829853744657022543085975103686966815886221263984924062536989785497594792028330032475124840618306772547585483321795247496067444107474572310803838904513958819190663920199177597617162775099951162863632101510442840876462975887257548597860847015290755149822740417229869831218876296307255787559848379928752758542104141411340115887779066567311175876908717555833876010273142201736711313474226086640772314920231745714681605723820240045957020608573944302111030976198206286113386548298514005331811964462163868586319794230525637480890676309629557066306255155079654414394502654546306747988128210028671590415616493481560374956961678473300797674517982382391395178330799898188884255183394621286041685427937012515573845136572883694367670739056885743014296070992953097610931606685162758440986659128583252172307624291029238619133114986923131284563549631506749211053893777924111138366116542689443612686658626023965787337309970243695535197517384165583860987662490795724377144827873663469443499588335348598998113938763394703578574898308608463547407964676793773895740265485645970145107284158295971445145369590793663434592854142702916901608917080025987662877855466711038954997856020913724595771067466692068050503247944782434283396626219760520372721491631663988679919356164570937111460629901324065358823699728243389282185150316210721923649713214672398921530210355550627133098477516675696733219073455721850450040133768542564746179449713466756275595163666620568596613236795569122915097129672651651993103599467842424399666761937789277352159530501335060925680371244866225424977247845930027822948239118502398391719309374303548675858262395644105496581326912432901257098848654932511213628961957549562566287478253898129221202645031857713213121276433875521444952483620215107578196539552813477109546455318738739209358891703348480954408902338839470493514495097532462933655913922711546947834306674600205079636360165521663826208075751085345755391919901859616638799555578879571274999730408889453152297051673446395863104385598113547414123779543413087982719984954933140931740608032678546049274156435878995295647710053781337245428178933951328783644128326859751618498355910853001455637114701874620573916826961265955901882371709860933710311380311023839162043712681750196067717807023535359368667373483290508153417508266518510871264736699152027254515074845463871004893174417866148184302882787931300782912121875006436010709824088612039987571174588868593494646458092654860963355109563791769751068146377444377333375077433898215541808668777633408774279337828002004796765366388525113256190702311765851701577428605618561966455535911003246347154031612659169760025078917859683698975451765313285414386042532537116095797197585811688067985106088129242147788194334579674795787948370629971515389648395261506593058601587073717440375143989057961842217711601143242872269084172688130769500537742076833723101319555776943222430198718206155337606201510056565556704558211010100769122582779720175129101537737086789222655171424461906529512793742868396187384561616867243226704147640688191951373474628519693363019462888739066169569733516225856525784984168971309014382581382230621946649175878668235017533812780861882905826824510001894205602339802358722958378314089783674745980719190085603322030452804569897686104335190927036665779607151744019627360301405688817043270336727308295053090231731911984003925917944162981694444656430091534808174885644008117117463180079576306195094297579748846012048669608640683899466390725284956883973920361511057684320106567512653162494956011125455203112766473405299517516052647230748009594902221136674659930588404796055835622849879152032119901933335170664010207588819463425217655465760863691192530773667739103825121925249937310574379272804198346180128837168182235392202102022663127639330891727707214074888454290768282220253221652459192702424597297914920639246936290379603319467380073956502036090885287767867168868069707528429496630571860770422794552205660166448692609521963216413268808967010444622973859934392318318375774371724179301167527743379912184486225174626667607682495671883952840220466414606472517732296648705378911851409496237778791619860965106751417408058011582474455253899812814007052843013360698940212951677866274397428274578870085468630575626046367103350538501815606968806836748219620846244724833727909308129810636604019165233310566404226862288540483782600209664031971442528256416154085636410155722277960070605886290540024723249704056901831231422250296592513936257206069957786968646815725284343561797843729249897538495840010566028089644778278730655579973798845322096249509755034657882038112999146585499442426924709320701419257142187842296802521861161690182698398607052292432520071723827996306693946660956291825509287640749967754253678953641725897525668783152226494966522943029975361809602582203375866265510421085499034041270133558798919152070844378606939128058815814956759420899895903032972234846468056243675555385416888660644100559838755706021660424359141015239551597097154504883991014504991948452067369010829615396429221313618719130932038467227174559085444077865433294332412836933005802954727140957926222309295999858944367859816622471286807426429945884281463837538810589544566400258919514363296830675076912676015347542565563223804714127366370273443616131853841727499511000594899573158086427699856764920613789851976219450819644322249209074892055954284374584336504829932444842894420274552419570549711398156550154072339729567341025358051979824416055824425036617421299278679598937014219483909565448907003251687143218987152492139459656170104878423038715371392470215387799232503751689426253174491209969061787750937303533304873534918223578137977564164155030533062847448277350445368588987673377684963927798977175675025008088832790498555785096685210870661806563850275356781043865667278365487424570569070620638059320665206996703680471017613998510202826556537747660240676340260660505779756087804241481543784296389377606567902441300742409595946015866297367644151546685786411971509960812536181136173284961265473831686658687954874250874298893982581679402837025970647838276649557272537886975686156989235817022922131332556019697087162591095521991736488637234818249575515020512665097144256046080767058467439759490917007350840113779607661176137261522306138910935986331118057753138874480333037286681708016675034026272212210511516871234156283677267252956164366009322832989501401049855935338876735002792830051760775595635165572802074881508007334821734155365084731655876038294524512579161115044253602509964212606147363823422751283207182092651164524610309525130434825164411529965700364081660555140896648013346000251392627621266530713586381417057023961509032412355506092874606509871331986797284862250388134342538688744646641913489468712938265392968254701009844938619773383037021041251366202747055649066548646429488493428217864281691590117888609803406553852336695699606646062826166057890277732019249179328281279122222460074846806747047797037045824739662843897960029409762606011973939728696637977048634075178665106578617855956641056984558411713577476436511686087519703255426899868792193288875006176696818193125873995738142453140043037314680264583464440545904454756528153278229185709232163939748025543309289181397584665957145313375101565831937827503622598581970345536089898988785678524085563979528771588660080468532936229439516584760325004476493448246641988605737715798463225005538548249070066460521810703974998825210872664563957383684458888924559894347061890175101210661326540078421988224141291762284639249818746958743445785036170083803400295813740904570048183851506754728242857260169004059818410786063606502996202449688655785155980401204368181856745779972114982144524216442383643762156692801321321710467347255222271540512465089980973841981361180223934372162806124771369446134786012700772698450115643332243817669698108318907627782914361209756275099471856273047705150331541702515547851318181233403324760004737150870653329222308806387225639117044268222133173860910613963786839536446339962168818517802462026738577341335371936587053040314313013249227089200909344375386916730149624379023324526957504608920875370095152053204870524105454707856348502544178347537855235099447413534942498131395957769437250321704858974544607842063252843000336204852301091815712671402799841765155985453749141816075642302707298984466704979619659700613263342930704509670944550089996750370148944435030591094881366336309100055497135587164069683034313297083936196524208809199298059589372416766274470241791885797941209293089083802765847690996654819563065843182298981685751838490011336203354080067762966798467196250980535057035043569281668017584091596581123618273311316387775591435985689991499078404747981822928374367681344899278515085259378251820574991155059205608498020426082333196303947210147300838955349948725442962760829222681374972840168173729436575257060537032259249560282733879195726997501726682543765568000469751143595064962359760583250793994100339087049671439824307228540696112170200153191900327224239770401770023984322520925519622905570962572181391868095708781966385720556508616939429301787215792609152608657957754081505066139774018575535742578311691894589680454216640159613968459116177867036942031359655667078008625904687895009707460046535334854079859826651957259429595117198071554740638696150479042637508765199032853077067596963318652993807120229088657872435570260802175759572582760889915111608926049737959041580951595498550813149311003374814196546776663326323478506491362840092944341353408001810982908622589380782680111923284244961804072664907298957594501836729489410606497383991955697900934916194056437071597643129996328971236479733115041626301641921862493466010072162204776599734241660051176599541334636418336017504418679282405372894823990289649444027993191589230410205001010052703721003663228279865850163496178180941426050488538379787973231573007547969650736556031896644821349784446950486695513042851275980379497387729006655082363249921155978556039773519590105975965751070700151986326100327980057470545893403826294637409925166450874888604918691690063969445890912809262330760478251934927922434364832439767733622785629201274527591631787294489031317755876050364230347276457491788427560652654169959959269294955480559856414397823326345478546319185967254279572453149597466141384800222660054529098329410075203693237541083040468927354898503381966422200053697744960094060842171645353897908776070890445228097596236372407030187831361465252774461938898204493322876404129342097785716956403074442055112532187783242884059424651090202681476081771881469783210877125881894279947836814483328003058205372013110618957497307976241398685281048294388918127481572865819421081966670676060184476255308676434392731707291860005883722300687685843160134669395635557876218872647064066090922812591076727724544513513603559475114889302956875499492284502030965675012154992216199387786080307713533466328857460349611342049475812663581766741337449601580439929626311149271686311217571479824961043661942285327938498438475053419145215759119995991544730317184193176235719064394381445260486778647204887639865435523620619606660366594389592643389660231111464551189225844455722472373310855890662282328367905039817879346185195139918321017546219282647071188730205127643343984724907618746066619460902724331095513869981734999062414928024333731921549157692589826850363842540400291967156344235015129919094515947336779708525740485671574796813315594647706469975355395231734383626943394378889239452544994467901516704920707558249860883406689026728624118091054928946022825443043209039128558403669410356407054099205910699730840152302183068106086901534209947325104304285112920732851312013322087390952080504370860437616586670337957167763540268290823909057757294966178600383328691958203879516777243651930404541556701825119835151456102864627091873230828804100001085992987594367573597822967921743840912825599135857403688492187840899950928096645506193566318513411023326235705880345544302183296221826503763011898469325308801430064295461545258934599528953357194729124514740427672289354607194316052666484773094447962057171129111347605038791666226231527699823831654710162805144935974009817296661823303908493326572855040217399508409209187305466357360140928883205982726921452112627175145060052041136291069208418249912714571484429316036834132565146172606524985628344039092163607547389857658362936458648720823440686583129839708331815715898420606315744908022668270567223355094711621497853373642706553840528911414332690629430389938494415317300661451284394680571161441107806725051466454070738088583779984245789380640207448815191886467711461691200537393168558143175472975560112712685662026484426474716360147411480941356731740346526290164673615767555578847941402704086737250818970183792846637760567504290161196842161393554882603330589054782865701241427621844574333333020891266212927171042995589613265875764686001796157238112241668697614264407529035660176184330496918939152910589373534493175445791038816309296520364614018006372233310230415309556621920175288252155873662815651939811637729070199948889907888510824958934785539234513182167606200348332769621414797636504532575415459374562032167623070502439400453358781057119107171409465861005188407005022141548957917943060378770582849790499606815385120134828111851276614461672334626929284242417174228034465638155269892269533461763477403707167931482019610971737071769614424174001980951148110611778475401467476406781337349589754002740395394540427416483796539329888304832220396602195609282780984112803689040168493061705159905988569907944806301170646534233366881720289805562317177315432366515927004816115043447748163286450538861778280043897166884796110195125576305370403911361413424913426208271476420309745955819268518383120396799263555522996480632401372120857182806928051204775369458479118938757619776659803728961322232679423906654528750231582133407283750028112717806818434896150682243884818102939963363476669655768110561187587791983638253815631033403512616542376041501613275280963306220899937602341407056170493000875887747231406713810151804075122265057614624289230170493628295858974716486922274273813209535380364373414006333899269407062618755594457271200713587621421397559558289030023238397293938825405816949600542546065630262820969882424084571493982041054835686539023845221555203092021055148507785901909001450775964874404223686997597021004425732189090030345093393815143409880693826317362368681455166029403930155600571218320636427037815442714359695297588593406609178084137680008017206210478032077850072562932054107786879682356046993796363376682083604816000632101952067473629504808980873299879765353950957329773772518764590166535422977366697845831449205440830971684501396973188713364823152487489675625586588814381439200456221996596371866846889231780141922786023907721979697997225580925438524947697674901432767851189580593782765609356042984465916281828531490438268158929783901966856138055084980283889105147781158960576487059780058572935118247532416229439148617339905478963796264916852743963613990681040794143325106007199745657046177158453890956677541038596312396416795441599344810290724099033751989067668229331701784974277398032479142797270221767417883111867657876503652654428037286792663928850228752077156192966190578075674965301461159403088446355460412978728724508296676630526449653763934210243992138787654127690438739440886224464635917667776141549806382952931537636965896889268917607993054363961133659895691837728941951101804121322028705957219944058343354156794509599805176378105004430911288637151737690427086709734873117824464325136280812421146052189906498844048542469317986165833908938086423896786904782424137120033449959783575319307042854479801362653254175002531836781354816531909181096841897817998583838662745557897133645978786897946213642051609141271729101193527485341087228108604049336006537288049908895688230263417160754292528768409306519005969745450116963782281555793081853952154370683699714268831217843347311769054572079725831661243445192502818159499263990859971025110068526347481544833924775708854271549259407583775963461772659105634008529178512318299993491320844176222473358841814143851706919576752096919789629036937520428841634186407624320193561260311983281197061690867711768175876297836322513459328898449954925999912869879138715791695745941467036051533258242302134019529085471029136315152381122556316523315529715983394014239813958108965180914612781715564619889689941972321637261148197086671240404124534206769292851088059872765533057296232225821911462413798654467015548642672191679526387402475585200291221467273825027035227238655799179838200090789456527713369004505908021687515687118151544768378857547679334578301886854575486441493989326285111690373462830136250339598573259876868166998859964518291479684952291461312734074488062062462872983586873597309587029120623997613964477273613238732291620044619820295648580661440255634597809553585244677379800779684273808568707059637013851794792421507420797462071420391420135116532052087807233836561827004707231958985487957610486851010486736385984563843693898817511797374169287387397076009152676136719244332290024926080633279361069801261930729631520924910972012558411082844877743469593798427678292018596896009086058513935084424118410564998140929713504292929155784917832610917047449115017729647842071253445085699393086015976926386114723349338310535273628950759010297328976917787318370582870224462099988983606999279211824913149243751881886601325917152753313827046212728990655310140182068547653687659748387660968771506502883447947269494904545682427246621129349647124604835773332400729714038380452395707334312999973963715272157113887173899013615389245553037354151970272298311279066758845151401117351306653766541196260971491555970311365301267493319906628334409529420427378813036303608710323960492798475569951041949877349122431989897141309442150422281532345461433560018965093838858915553213257994970376693745166011638643947253873525179188135824408490791132852647345098923969028421854385958315903916216696778027573983846798970328403971712220617746749023744994593695675941921778523330352068037221245033834036719127560015414262058344221456840511461642044878297215278390286413668992205161778828069255352048392414446842705993294623799496120520382264066535900271062709726991013813368191369286359589053795518488903483400210220550212981911440501763611802332299548246543678069452979548739995757015603124623500423020076397445333362248320798082758247267295791179936191222072720743792716711800337530866356105011357815334479141102147958220223699625353735314549699939348207299610004487014754115729887544358860561497968349913498250844966274402334697125761908814663869997439114732813820305951398541279031535688910597832011518938273120298743967744884464483287228543528812905711022536777958731133965954804511950604114367088979289340670664511562797247852804559219585824059993024238255025707601122548288861944373449472656023282288651640738024820547644610353739510292505333907767029975869271014271290187193390551118832253262888551823871466401972019598079178291077976561526963908282782928895990813593658777302652451106545063948934412846271923452063920939923078558712644186096784481747889614855143044290347890753169176308062418326497173994555453674972166792697180095349421939773718811607621728498995852017579978903852208569519857007277878922442021530174240088540139514389757454825983920076788676560633948422943992572508286691391404200549776681593749524240871131715625166956523334993320047969004678664914158436425609242180653711487838641088884593890750031335594476849474509425687784956940903318901972227156010945509722340425114784521782049732974317686042082000812639494669417390083765197934712711827228654668794555302836010055346509381976309989968504716156871223919549376933524017959054266919999389222940281679762312338727953981534137621595991939427298813131771485643347320407194067964377424530287545712933158681108242493246419379731974420335047280294636219916898471633435841422801081184414835873700611308194945971159766954973941887075176328839173445987544036982311777279548612490267828343815590678010742578340998558985685378269994806928237986270699557545646892513760438666605948136753419485660289912083223223362374542466254413789343762688577735770520142305793819218591802754741832819743498817108952580701531669243980388624602725488702507560965597260070885471068057643102062947873174535953284749822332193262370278751442117152795418399243009641945275788741908120026384735365500573915849988080553808214141032168502656515927909838377144573007738897310622665979826805731610362818053424965860894329686233037857832628572199452962755151835990957639613482462316652871766189035256762511739654383771180443122671095002780358255125500030523963806848842683147864021333977888885769541412595598829655907840508606518942145389620207323272640163443119929693904380713416032287730376145498574548713564153920496913651523099967669758199415756000902462524541729191076250155136492121069864639843536806558425171882634769916982368759980693213769036844699773282505553860765464963274834500978181237745042271847646414726353668849870354264841513052236945073577924382720842381351201761121670291797400669260145848346620008874874949694521005769572762709389034794986595958278359250001089508065726805023355473514751043684740677056021609295149443045304303968639582828635667701695181675709833117968641845696855333333784000845068612704180596344532453858097048413955527439821802692445629241916678245383003552101451580959057474685600387196669666761065464666942339522308971792121605539403805096823927122025209686445042524352860270658015878402191116247513799279292659401019446586510472806229093699307883264615643595188263892996452293249366210057981027026666234364331449066066168464308539264602550061852628860837633071077109423017038235969025422009690990133451118270604654333517193341288898834063814686360879781260215645307084657358278720432789247176822568111058972786978475215806371547182892249942830937747560382180779921681767923895397070613998143755549900073892170178687084970445328405151988192361466061375680417588383755463250657253461774095947277582826246823858634594533840344052111593454469792767240477195609872716202812520126654419025809376780490453534999649020000819207174247648680641152632774816116042831399781901667649275396553911498955905756823470683874717787276147904390871914910972289481378095353454689940233380108231619650787177163719265580292245105946963073512402769357890244917269551964183569811545515002107937343508918120886222012699437721709504057435109260800979850328276776160628825120658838346797492185499680814698802722216956767916770438335184143730199927873110439923298978146303493325626758344197586496477231991790466970846456678782437007670126179961918698140304191915326024539594127722572535035278947671459347089992122624489563394866018759341121121859189725752441465464475260373317478448456871851292494716154339225646755265171112198679981235541736050057095805152123388255689310382577788454505449165467411605448422979601981168317830054742137177992107617807838699803178032014814834435072294450705706322727110072536612624167561191933332576100880111448426239243732833035680222547004358643283530377965005936706922621370224034012084273906925891991509028780802949284115850356389686976008594058678771481395553595239657264534295410466354353918667263736966423038433182728372608105779721077753696887005835530591504580458490440991255700190278028029458067751836648193307046563680548794899682688342171375727178909257789953026369736694114006828846216354057806738159928659567620690362753548991540928954997148486935304981445999081673731533106265212645376079057543404852855572868258844934465706340072530727184278442149806988153127540784883957949896277181655036029595535087109870477922409046161790181950591421995544919992414710924113475753642553945227655366397824147333979976269428727854503961859204933720568314140385359076147124964495335660010290463703769806829979367037815844390666374101292883332439285956141906638259868348608289682998076353706038037616041047672342410487174761213768629620670573973953036768029511317926547120030047757860579976882996028676174276123668292305469290939260148480212097644142501539721179538422040051861727908866122922715647128508042417702448817266384091095082024901286807595428231271542466789714144253906790328034381706640224755235890872341480900989904694118427601201979102458681020673886549208148842923759092072956813235388876211798222377866941555074395704992022187607986057848603218215635129066367683701936497844531341189505486101360060830385842388932939937142496720155047262455459517709176168255552014316397416876454039863881701623832329026548232839138409404994467826553616173225337297794773510501541650168705109185746785045213845664429565501692128481002865089977105616120046764581106712001012803454293894955288777464625150008704080114304998039737413207397138482062911399679201647144769730933867949859742953207343865592449141257794743521051045272824891325341169877610023420896264927745569821687056826753933957443742784385708812042576891475430797803369641320938274729773012804978665913261604169119591287662414040507966364523530413486045466048140655958988288400124391374917721469721674679098630844040451574270042812531582820841728536745560992720045261618571546546557956241376596802942166453475100252825189361873431214423539704507682471974033527816650770733001966610999276906660851274684233965619800599236253185846933754860160592269560229539707009565356864764358042478031630730005094784486791626682272338717185048299637345899579719390381221407650264725438498362883369543188688992550364042065169647847765484535660988615381604245866245499986333085029967447660346717736783806610965771520487686232100654132891225576345393881125142435656821698097805038013702767786391882877985645751392414350032402853359402934116052465954424468433751650241011173674008569657973583135579877446319745422834163976605864794805381375762325361031671930307014050031213433689071159831651886180195147670123015988163155218179099168237490157041566759434113984340117590786900988748056548055342591978111778394357838954140801180707698176791512859075161955783268399524235224356739360731965791335173803345176512021206263973652936478493735124098533368599120005233990686240530697005328424032363467010512260339430003693568915452486834769935208743567985019999382221674188896654507263702790993702071351803386479732677469080174782711942365222140994029206927882309970737512069773665442392230497839372547187763028031237695208711164276345917576234281290697526130523094702191674963479372411916923555535683148937589608901405059380761320086276214323754033972070278358576573811151498867131793519407118002669997494916324898236020213679572233741419131746725831103693384040065629370823675369320422830929311870135269467746413281517884417881545381406415244642317755939366124027645339806451922430877211475459403259124601549750845001063662033810754811834318805225603118469290917760330599421943017592005380781165234340318775520326447789651873249051375922990130199404968273226971535215051418954934872527238802753456172475743819475953281384712675263284953271765983262642981346766622536186095165960862707379688558806295030984565883468874513061084806878365106745266596100511473389731565221195554054347469345176571120113241733224365031359742119113312845000877560336418979594220078656154913227312111436427223981297294994040695732101720075930486679577880780380961561405523392504451507872559104231650863879878532086174102521103501805976644559115713030478440469568305063176613517893977839661944597525420021549272194516554356603744297591060457512712273886809824067959312958883087995610479424368074481170333744203939255828637525143199009341677743082310060297166304941485756320509640026899294091960245195725474674559899070739158738122792735347480025237050798084495763960524793422597527807877915060698154276635544874033722966750979771198542428906388085228364478048168368576903886321375531830645612647946003324292233546225948914331298627138018051990908072514471977062399274492157539956605921034365697877807026294276698645309824649523202279411458836681549921374615042133884615742570402992020937861107152046849681046692539251113878532445970030684880615885265485581351679328369022825932397677880018884669807817649187851697152042461866214156852008333617810176040091458130043561750902293870160047527466535274744418235759532578527186407409669708219943917286161598312740224747101194289519839865954827845945291107015397270231896873954008834329737933991182521820353079626130140087271659876240090108368387176354206619210875399116604860986002893889615853508495370604588006841980828999016548990812449467363589875852029454563637663573252889701459957868304335599085172050557127404890437970622625735585124096685446527048219097473793914413066725119492698147842269256592092715321733097260160539984147073462725279607186396962270670230408818936545143513852208629274466105955284937507555660732376915244902561300982548075117633247035921781038227643957963105473688775827291543912551960464873115667895668577116227796912183861257765373060855905542838041565656595268361158276898280985499946069924096901283315813175672270970622481993129766678000610430468500585468248553383694992988526566104188705815918578249902333708505296721801226796607244905675695693630562662523116650799672718524203431168804420851089547148999015548186372881145312289678300668791131559967670738239361415557825224793882718864844324586198285175931406315503392928672495395506516551159430036225370463691113337372993353021142694672883635600795170869428389626751693313418876114342096025201215682127501620730836260143950699367581594188294680133403278903689670008442522643513414492300045740378457840931035519241522230051591698117882482262079631955510155514217967460903938098849633300510476689416511306518344035276564011683817120962534784377899756934592717421947457904667566447585525690443586914170633565344345537427904809648500461940623165809683427425076449542548667310852995739952638265594512647354614756441619446638253585502209815144183733114255929992796510760419176198909872863017052273873912779602258777550937716035877211330476852036867490048940242141695461721466848212562854594833827235009219363139868502298815650235190220566567804773729224383273228041096226987360897311349749582040581760100738285139586294769374300139218761499357659901105922356627654010940766045689345328223320247628005767035211965451256672749029649134454643621170449244596238724010529033726488711171210418680659472362188860231121795332780593359582158376086699093910308960784761918518019877900670200449993851369807941112531013541881448833303984736384187644109896220809065358796083586621058876142271354283449794784357599170701351653215985646225429024981653944119292440529131142185728522905979644178637628138191428471912982681950795502648628329976292494756376476081345982801869674044833390109704747064018723893061787472565057420521087864333676432657578594200387501506066227712964213759278848896721941457022563053833274399684896019753475928677470207398930541448782518998853785876945070221979124265216295853400240492499650489491232781680522731322015835357389875805982143013098061695124659070298231564168132074755893645740661104911762404501792472162634079573074116795401464856217823841186868830760822767956220775046462277147658356156795411856943939632097450573467683599143861573587885837522369834572332997081080432148415832594989912667935071700365295155873149309551716950439382099973258318534577279365915717490917067180996034644746260009898839243878331617027354023871626698831761567306081875595295315535323660475284468228573675365809387131071433880226799362462784693907122328545243590144087938995355157149638218842097093770347289640879143502641940231575323786600558662488067525135824998596760901577543615431013619343736381400523828989652914891222755967231184260213296293538083347846895939282676549412400187426294537857668221208554045614514708442496281291327776836245525737433371562064767506797230173965814023855623441713137209461305203142264254631489745135848965730481287458262874122515020869375234720939274177246205057621485357415281336972042916089569027440675748098440881049712461561439506676573380477501176365360547251621638355116543140533331840496383662791192912492220438604433960605098958154908260320447724396643623599797608189187389174030375761740472866965083066885202144317247082738087371893899739053149996277857038576373403638202828358893371273053338862037500889610975781706806171199400095785176910770978131256948014371746076963345781943924509223591043753970980474338479926451426850481320667868150475115400247939893271340831508905459142517681387640811201494029453747861240549459610522368221283342989236387961615768897512323884684495881077593235767021607935519623313448787226770402468925373740993109077568232385781684004995287976842731583856613065976512625618380251679814585737821784628637231266437559660254400835842694510793228487483059906781657932459945559625304018336350647106184009433824292555197750141302438119786277382179157962145886107119468208224796995860641845319638132630568922145925000303166273074985385025388312398108480478226073063230709694754446105027547720520648294537277366834211119403014145567825364670720598841006230027225213604953766786849228326929742784957318713698552867139828496906536936784085184788035580880091251825613375346736207268505951691827716084042471072109094180108763575225403458194235409819173473893603784854606655871928871732682984656136981344071308637074764477779752250811331475408143103040956042252355324455956609974846832669734251193167203078095713877926694126318288769067068081379417215146450069236899285183478614103401652159030707086891893171277386998490405792612472132196495711788263338260958148555528377415502309527972274312533767424414641020755960279134726630518156946420356727871039872875578027037142201342394410681377538933640019197697095392282150271568428296926610872557847933497535624565156497556289873788706142044984595248083367091787865337830875101356955873745083057610758636085856521419465281448341789717596044059770435971741851047514933189710969288858788090939768687401975474262831856763883538741762702400889091245242016399547981431873434115359226443336087957787209776339596026505241057330727792839251124460398693995077649579851225800740805015698064278909814405517422765014950585359837903611085878808824959665348526037953828633205982552840328010080302355860220329994707749774611600134844762351420511632543994511323578898841587893937169665847526012895069761308887368983957038003610145181112178325484666906406606258844603859931669392215188456258060954169996744064304723481555545086803544242371715984505023303158623280308896194851129608214383261164306961342840882158706397741426077162370650130406759632476036078024260260263181469213225687054193828529909836459050390175578938942075743900752430524156047389893971305510100566010841175584471148549884281138081711985281908198114565515629784062451203913007217505990914801205338088635659782782745380038308034174145293557538649654871472733386456153226928574389969598168391717272621317569178612191165276143864165592104925895176680762993879170617301917985904322691311824620962195973211279493277773089965242097938979432402620361304449529813906926873507825686831698025483814063563811096792645096725338915826934781537536374327040204370742339086191349380507046472905284151607207841728487299107875876067997680541298127245875275940956700951058603527323059625183886588903718198205283000361414701077960554112906219533915802541786736310763462222017283138286147742060570074230294340053118428157928252636442113483969817978735436101288464111830064918805740118908588884517076134520216874673017752841624657384712642867725216804131398376951402491606169641869787863652207491990431230354136650500101200014931186545063254355037389364144511202871647952571380479136050018049825652753320828057551289299315566482739606287577077795517757584617079433722931771926556689399403386398801373412229231821076919612274438821642540404819667040892462136870979125213262820823820743083660100973005711741358355642967035342203529203230479170957689574146962801373849082216850567895781766510215999599185032168646794503258525386726230487866344868069505491645552079564693461681701105807465910996422649426637795188994269314478960356668741001635836466417556625486307986574984692653488028730996316765222150510516616508435510743521383876629582460210815370369207458309488180062155200978530903097561112927840232418727394983420023125230277174972343368933844623222517419116854286992066560820369637604163470338279446245121890533604400189768806548883000139170487772897182632581102875364269244450760241565407690799330657601357878391973615178706416350512285909478136497362635316278980170307893747187175139822725235330539890127557138758546681050737956404736392235258256575627269871914594856099700598049016138275242420518287162593259817432160860626395345346852818135007667894790609153710153352162682093861109001420625050674606322258788040188828111583872172706467758036993316246718822123352575723207385213306294777037668251066310353425567650709496477155725139416720403431359283630332679357737705859603498672074418097645921887624299105057540508484662528838035304267794906574121321625120174004845489595520931611158306431980317616635811453595651028385515737097261519041400380208875964304580243724015636005736112619923542620782068130594883540591401477415898866679458860092290240738660730433047486577258504095696829882739740427774114211599364295880216658327520547469945346865687148270376468069817160887687269416273457519102903041217435358018219716745040452150388378318389896046075380393199132675385102507890413546850880052534862600106002521367429532586349430886835643905961511789578314831638987640091170383497753187125197083690242708772013129935132156253912838868357275720497137916253643527344424814049830919010046355415234317371057840384727143709207284104836892022462410202347784406167902128429612191306030035091763048006594201585886141275264208506640707970353664237887486350331440252234451564383619779643927505073614540860844668896702270623437233599696219817319697640247318487631681572550168145328383285735767556216050059424751250375799430855756979443212220484129432576979130912504441130602524285256893065759864980236818236172259089741318602335304863453369446316098781846501507789732844818527945664696521940750035094773279577379270413524337503822408759084166208290644059040002575646894720943615803540216454920750036403655773462054327626585499944456391598534070336224177571892024092709623392974187678009684441113049971626484752290360234346220503353897968101588666621583224253802204064594158633329095758769505956244894990170797255185276317440950641162156479808761705811282192499641133613700393223433470972056687635229187361506073880237984068509808778698540021130093670828830678761317968003393835451364405253176397695130035625054711081627080089609433696910856048374045082678467055907907494868228944663878587936768474893413341362500059135090896700417040672374788613504106546320166629396313707474639056888426610103208536547209954479799579911142722021022683408770338098437337222476687084652178424975392004304682547018593749172161732582857589957753848934226023513129907861022571810113285299229179096214934494124731022044537999043593442555204470553894833048035572342461526948114251313027794580168287295250286103994351677686849904188209963006457628430280766984234347867352514859571611619907425395003497247416701329749680604915883992703534259660710108122865511818386608763062831243942096362508889466209537548686009115289680612701334182352721560524281870128821072171516767716265265034985490263242499163256807619387574797882012388115163990175342409964720532032243866370016164136973615665704883323926905985277141134965238149709309484468353153781431206549847454109390038675283636137986128383532222463823530837017094083861022194356868109310928141299358273674951384817957832561348792732503948143503183004605730720850281997529035203113036150161360877913056957391009107594906121659344814818414598125993412979070704119974693587170756340567725878489696704583612305249773595865338440848441245303619599831665285248375802410416957594230081708042525595200931025467422002273360583337158365786056947395601205374457734867049514005763055635453449780815481371415154471459171301364587795682782708728071662812310065051780574005435428615738629592188125490051724308410597554679830657952477718356483522227132932758991698065189263072955108340144399942750808057701885709925123158775271735970416306845439230424934449884463619974331589875673756967074854146690391784494699669399377728476056199213856893936793333196798528237418189837569197006832819466731645063927986131654074645138043461138813456385361794433747732303887432887912078247183256421552379519886286422031772386386859816955648871100062333998231530380813850196984132035133314761112155784320600027454952490278673441021505987394763533992288664576953171582738756644865549379404313507054641140200986498349895019383701540222199461440746824235782062454517419746063037536888876971815701899247529747473779999524395173973322210415461006527374123787416441466953044975467465005124944549421897912796584669305797324582015695466308312438651233593968163484751497245058939054912584377519480081571020312707278833058226087758883431694079715385024280445964885490772858675815719806016213878028694564404019610885899984927152574338193166060965660676669611705056510768585750326952634202079638439005578279094682200253097894719133838224662197229210304046252222899389330885191890421192104679288260647430408359847460517239873529456832206021694859895145759186100850459924854900414697349103244549255056155102927817184582329689851076009796672007495799063664076853536741883411905350544111739670573170353515996080366138110408019754474794549917685970422623513939307905636363908381835374519568785083880696736240630404825856045873508889855066514351361257881562897886207959047844182911766508142596079918914445307606214925709483421217416661067245710170580285752838545000909795801082887907921004589084682806004400859232324566296578308039891265737537381308499916596891187484808094805954009943054783267103520494023019012415500457993065283924608617314710076568993691264448976459898287187078473625745719284355232557116011101856683234876335822301852517383802943815213917408377823513187203510195856014793807049007309983415098744754366165601601349519458472358350731947017023919574718489843056150615837143839074358174199481851291194341021559796989839178951987202423145369098091828136183450462304235303155281940822016372540674672113656578179447835671946812439733213809477062134188783708391580737997070086313107634428824131636461233251492047740787801534367998767202747313509479641282503312878842628986403377702976837741994345599322909374003138970418428033494168569557325059586014843727965746670946579996565227285584633189413683885098974254175186544668120987437920124365796624788691400326588541205654426061355002375991347592925820345615657442037027530835453103586336884861582238980706852393759231758321907332759714125683775581135921767370340280984580756239213375182433252128698344778594211432598124977061411764204038723608057573274420774073970817301030001091414316665946356354921603223677234602871164362859503580636750317554923436481868475703868218368184234702387971815157847247252436345743652712919222718148538141897539053815782392061691212967420071917041557459321567387602364310506878290200871093768690690868974386797110574860083134538895620768202532504479766341472129561295691803313739428383283758125113359092340104548830318448465920556793719291778549485212127613337714945595605062948115912517598199308632280996935366095649217660657956127939745373819380567510826827801165059013106081089075200542688623751073298521832982873137528807476135632170985945805314070601513504135615997619019436703385897259131300791020675809713037721575987929615369752834880767125434604056163269087216902590599838503314964282683337890491367188815528655832398547676204629821654183693400480899419202608688198524391166693591969645325879397009763518219759569205379612573678841234579218869751307563424575407484424412997557532870229218787978627952541304627948859220351446828607387235337609956260133856732617176326713782120454433229557626809133534518455152184613126777797366950550949398727741387563948713408604893125167091681640703036183975187976444861698633466451060105437065118443130216874769160686208041258692417982441162927993396250999156575418029490964268706726223582643626934254473106487561764061217570357486795280506165571958227496417710620669493763463491513372902235426726404332029392657801144881708373072910900165548153337864903825048814660542878162957641482699164370386004359601860180682360901446552133331295847240552377813651349578152280809637393578397385771757673256455548242100520683846296953311646664091264488573051120799908135497812242411187892987796505533447995562436906042874749712974450528478249323244032550121121628538936413238766968446410530479578876297324851086089747552948600873230944448759450906300158532906249555297039008762825715898780600480420356793589006992027189026751531130444116773855820653330534676032217692151518937520521545781407884657246998989887574282648696012492725082663406251138566475484226321876177400557658196795225873497772924972527719226826848385956060664323660383701828535573497927249727737198317221310145805321268385486779045431268486121913762185367948218993038213083919356711908504820891315909390123778304585291783384785777553486498554355852101306629634795054669848663054786248002921929448534921092214718511269903930368024920105881698460038784578099889157809993389366821071886667216946989146965049742393226804277067986073076208354532657527573776726450314789482394001854733526454087899101627884928091762960585768072574776233727856353482267033812645319452262615735250240073159545093962960533695457192214412350957730736359813203871914023387714198233447242992516757803912001490323048535873328440818290050156365024006370668136698731834385736089836248715247405185536709803325738930447138485185639418369020403772161710549443454230601689872423438510772282156122938742994578248703103953376499279393850191623284181702643707646054310288408322614877932669217969055094553954806150606401523082947317794070609754168668673307649134933956284473816187690033523077337455757876824166507191218976809555346464462975953194022519972184137796805700057015399441968738913972321459516456434543744581420479842040996313248636077272162326837369979892820134744816565792698999947433221708729641210827147270841593137061253285656179231461786627315614925072723203992435056270992953579977943356762886228611135435713939653873357864155572873545322809387437264496816862204414010699918074099679917230150435391877970400295934075710188046323831954716217436342740852221076005724389010247303352772438348051407084990681906157455801871703447322373761899845073025352125548946919090251769857468524162075524409948089178519845382925683781362795937794397905365676062664212423965135957495171575523761525107942522830322647995946951637892216169911869102406510299950143110101398286560325295199779051240642686491087830405982570527696904213331998435231571085342471595514718089717344550736740340224742306892971735481759093537371547579060583123721806265019084224886278912164479499872677934258998371153220053802596877564012785288904448269448501730129065685018506288267054389407989279893615838248229922536302876517756237795023119269612670986235084672351454552183158998910358076896297377537900645267050601839301143653098298286454381388432191061447820048172621366927916804868185413161372430458031140577068152752650562503610914247176644925526877140080213911625148580811984725607814595159836059545862824994739626721424463110365384554928205221328058956298323166775380937404487168482964734987418021052002470475202616775864721704878296153928598480256149454606395232296428492779994833683393353639564998581063262603614201484801474628867481891105049041596743927735754384794683892492032778907968074883949855530366352974422124261251009385818640522428516875283725114134010187554282800442462826994390396475391745274939932369696565428917310810827981578846361092530531327475968653920018527669687930394781761360331437373847620018561240270249699785412797194260021701132714695749055090338991482579558644149427861399958781775749678999289938533706046113581683339036357408593831123757139009523396215815653325244589918456698841084018606312823245664860312274480486308722362909084385526507573762636306837813781463728741899928286325813509425870946360713515369350779047833041165198645523080551295625799310613346790552783792988936025460760125016362140513211586703387966653184186354333882167212340899343533863413040863329957899332154021131380776107515312651809929110474969370225492074663472872989790363624635165879322169951316394379764037628499365556999739354835901429814977320434703025441372399096896772659864775013098751310692870463230399658823164180162838298194097208883439420391230407259760884885028034713339685147734443260827265930550283143007908852061639013678099699485461807213485197421427794133689513290768651650811608973771729282286727378786209489471443079410563590807513937025725426269028533025754892804614933558130976196734199765823775084914266364973285708129787662354505632855594265906879859103856780167339543880026785395073943831080983420350539252946804420034803818254828306183751248089440018382804421208320602808942753246088717773920799295261235454815905533273498791289945664373809627499874379063952608238051330139365218722947308879248639297461106818668236377634217280195474771740140924660003726342432611785046811507264485619490674124854315756202258392902401622796890498273194561721863100747949805054071488649131530666485463591167093688265870498747134238125610747856329771435832127202705063209367144331042123502053912957830862774117495406527028843677649926984537510122815051049468671815375191739977601645507839392748153077109049069353736193107916151365433623299166143623423403378013792904402592495468752962447678762098249758547812097227019220137231057530410884807244692646117512961795429834794942139660880198488979686130244667216895320612232009782528426407407339645421585998935616894186326302382360176020450380425257557112878894750600707620314975564693100180765748283387012155492445526711997999606115866367045839216487785535759093462417686826453581227649986638751303601903529607168546666907906317287492923560107674730303803136657390312033854467190526334654192732875188184569378161267987787412368194606763691015748105151943520628894704672114845607720539012273053470494963738518948040272325462974340509061205322833915258418684222692014058526077608840807511840496923687941146686746830563728400066287169500686786321304793495202182898726402989713404863249009236735423382083186803136308130801148339583987400756865867496444061411150113208474728777537965956366294940996359515189171553947552979233651249192910631602154695610654720236390586629594251458380542184257860309593067735550745784514533220757918330284848476484870980860100537355003360261898753217472152479723395686327272959147931300014784203804811770608201518696371162279949649536890637915744680883273317743867104210941498270298064364700508620863076879955166090500503487302812153422964095109058542047612240808258681072652726807056314109068217221631867817166161721037806949543685390479422217389368595595150452623098767614449864682828348991955271526586467158826534309768388807807290830467216598666113348060533193182337481891939152441374429508417485095943905534246564992593294380093003664524428108361357907886625627488424081768740068462630454087747868080840931119414255347279804444995913765936994706534506966524595779265353503084723203926646737643351817479255291554521599208615742008408156535445742828696722136283706986785671565438134380541329620176031506105278528667034603477744705208753475315464963756605007246821601597577139401044593153098341143496014265019264026159688637014503917150590753832526668842254643661798380051983918681701895293770598377344689531872528314135747676260756558796320384958851519633928314880982323755130675679082913038674433557709636265038628657283404782452776492926822565382161604239219548703571478700327194383717000164609616765458268837377686788876995935246154669621772692510711770822144712744712781150848464440460091523881424970182810092913960300972407263996577069677998447910954721714319287185613735909028181364850062675642628909553369645158870154515827985557517939307681288028973927290864151387022840427515183857989343672775613903279316000279229304684845954615554494131064742246103294198030192805553242078052609566861270806837746508328984516589987227938409304603017382303561871124713629321629357194510662864999827037752890390431492529297988226800944679642049065814999128797004278873072505343983754046026107070953586877046685309819003503337637594672735514117101956651739560780213646739249986197550619578898033539984155469111198005992776506167215900981266763808465825289452154898701342202364034077785371545994374554458020762004360113802481046654083666660612556529291594282184891319190789397433963880974817102859145665601770679506038831122376701285776762214243439474750082034487960335366692304280194138532819084794213392641311438029928789587749086069501332328484507111343728064388032819307688903409877985187229512335375968929807080036744619711982268217521019408407222872649227979502531193213681342890116836969331211321516916941784887170392211574904681395479520329299360405551626343553723280305653702962256033099644182416340602146298914022570800053361203439081500490367648735387971238697354335084029198802939855586002606431362974747550440282574833265417506916176944739424394439314412211862712757919476899110899754804813170931743932585157529292255759090868373375948602792129802510715537911072923946738649605599784732299189419120447829848289309571195114876350792789654988873819677920629785850506636446992681051987323384417608417559751873838525332710657346061187908283144215523598247687517445321369363150683956884137951520816489508521632456149059119446673483153784239647630297815336519830120508952978661623453033910140915243207945804654690843019038417670530016044619626816346858653215963588274099188595316961771569995209106587505640230755822414123508050851254411711246473996975319640520855592746937556592267875477159830851910172508641834677630633170170552287628155569407738154844721846677808036339337676877745983634534538716267634586720851891763985794567557705486301665772355212051978248855635849425433660014957190378934330441349048238812396499596066943684046253743078455714844786719145189157170172885344860839742604350108075657900863319108938379793333699277892953854671044887589676642028831886929560008802010916594512752391726745311726546055433837136353525911759762658237057131311365707704741602181966285825295485245118463474100228657227285034485387305418424212232961770074408404551045631214491679743214172949412146030411337285299009398925263098782880441419278692274217351625608009626737150086211370443637871960240946719744110011926373924133664105111233284586426514666221255549315123160475148424884913483442016727433342623697641516395057016983821614777254777615031470450170344459924063504147803303717240902117401206976134297525144918249615012561723372243200781098048050125573878508280536739239390320279757876688471628378456699143516044367417086619721612937686008209173122687927767524218173085344041901633013500213725669395923879931980351749199167966548836621202403853993032744812213228209003752427918088013479919509203587063515528838867413136494079619591006775128713813172030819966226913337809089427450838483828427832160241148328692918592936814620318234477950613981360985553785536879611267215246347650881118359200860364732470729272301297726981853017113340493216048934079538999077529698359328169634141609425495970238993086071107850164382432568647400450498471955841347166612104858167332510741156506698104922787239077756285765867345602494774464474607884308263411892020520839961302304980461327085581950428150072424856002990605081808915349962629242676186124163919582100566592765038578432610411579848577641395738605593284937217466667936671785333378352747672240127836666561572712976481927580649673778335114069747550488680796933233532519252645788859940922298959169937508754335056640937905390709613794849823605519195942875208398339408886999673465538187662640361545361511459251651495991608506928394990828378372917774478856985110885676031531693705939845980752939691689183075073211467048220859819532842061722848841922296154171793034157447583325347179441263269574174976002999622592666375097876164566390533769766964102725441575728432969742004959569907172696542561414074674853323107071583699051330779793564764049283062542770898565869985276072788368350607935395047669808040076980632971036399568059772049437356053455122511166652297414885278669653863187316139073876313387326297699056696922281578539707818065466967188259375431056330007993252949378079348274176482269727545021303660617235849079573086208465972643354196531721107565431012806295506998073032406055254509645039930015755363695893221033937290068274866564759057898855359736307785429629614926630103756069569380963905131274347311557592465737212721300990152616623666463478408384882167588936585568747952980017512920511860045574145224129656743696045009864002723137259345058536785773610706272926118751919434156577902611240876135780551391361901725460795004427643572112708884086380945192923108116334821271081581581474454895666209698594147740899620152429783840491656652829999148418218257557964786553980354812820588159826038394875222380445570748485150796213582623517009873209415502378664725224162665635591904390799544673039671457134199416124345593431607818381188190572042787993402214333016831642525357507175176469681301646464345153280339048990976445484997185096582294952893004448099965052516662931637273406091827748349561121815150890081592621314066412277677508172652798841697114427410555139339107242217524736660030478336126723672320159395559929199105301688042796618982816134214591323871849624497745055852009736277003823375832562727728580250707230817532016680906050414466657358833915463154005232387097788635536072722781723189090276533359323489046161314931160709078277888925437495755326873636395219435657273941536131631855765862351664125589206703303692418604711925170901950436296285167594149415634195501562191661795652190439993891619564424572163684597143163725570224851148304047816718129045592669191664247086284524739647854398802633298581426124393233077530376096322586104991053169455919798646411112869066298801168049833493429097726048172229698478329435633710795647448261678968350831765827906776078700751452453968163528129712336771931460225232377647031851626195642641845460355358436316362103424196979121388572128063918908038359283295245695814422177766188475767155369773643708580108090001979367946085637798856621830495410437307467519651878103102402136490855197330383125438466985259595973513383202548535394101088119979166696373470199204200662099207426176825326286433304028695103849678097700060606322607644344455772200965585490727725931597167730694765078587511762683970429598978894797677419459583436187068252364538318228543184591340312238774688140784215163914686565118673848109711609957934579163997362868084207655478414509693680967762505822481544560552399299779185288286849313259936652553126758344800422738174582489613459264833495777589390496121876080208742122298684122086290793582677210385227895422519924347478446174463816651735791471624273142617943182630873246908573408189937806028742922940708955123759561946140065012944529928064564381067611860081993243110771038469827960416698457995440395221726996469454488197506077549589536499418473643125493165195738176325174920591006001412599680246570819373195207289379831067967338412364640690166931406841636882653823990240867507157192129638646268080214063714954919870868322054197141711127058266224721219692407767809923512902015599049918093646899347859063297412412476164226528636833008054141496887478335901852675347704421929693088877239348426712391256989359737491991301429611793050351971876841007299813774756125381980401314221820440999509327902441879739213267048950503397289129376673562591003049722933461749246543426995877487904264132375134544778813354502462216168107029026402229908367995535328677034580051229322110420710965153055760958936417508643280336614890310392485062164046998730669475468860250980043654844855111753315034923381280890633228352966225838111586775601861893046118654161823772682684075505859342984410658547015616927953511135119848880323314368403300356833201327398109619707665828803085967109396037196483208099307375862454602454511450288931459644946949187046629613966147993031342915010814669976174517534471912525430209065083423242975766018266011038829979333209829325920667948823758558489316616578663543088846492304747674508161430211319772049518338717255002356116209917553549175434577067902784070698462091129495430358817493373218154990832714269403356379005999870603696940499349076721583139915975130385684739214090058642402114309993051891784426129491149560577247403436141961476351699036894951054625451095874750219988858702606266802996264704258035630324668047882408047626170429768183772521056651961545714655008711221017228046145380149630958119260274686092527127369142769017829083079902661758882406899395736786172478028342827540072274647278726626608109082499565523214507108105808219155263353242633449901053348056982303162210140542875625640645244255449050693592000188605235225684422259408933398455398385569223408499256124739464591004766734954325700031488093430922835476104743027758525433880164763258198657494142198249066616433171905129186453152548345407750683555780301169990919916997594615877079276812586187123011577676554150046945696938826612427514377791065335601057525347674415764214704601956144958289953172145762854947951662904048581452182624531838891391082446319316785641257651587947716181242335827158200727375198481365243685558140033326778927208090747612891651828903819130260877624557288981331948625760089480489775642884496407672873848495430633579458513990215756327112282640868172292620282677061093345932833130624915218207269592489818508031998690607091097575970487363983881252666488103498208692215431663199060118224793916750401921426792667840180575921196980467347488619251628402035020268783504477496895202241917982861735382516006360654427030708531652905332582490502394320636353328127409407976938486235997366318367215200082928635393219182717997570198885023496338114626367262428924909741860910614154180371639235635550267920944875995048341533958206930809592023151417435269724018944152303445847416650528717747963694624129584310692992335584885086005554033481544284257472067466599771053515381920915892612153146141538679202046008394023323847028816990994458223513686298840937087707673118999584335748658785543103371098341991129671823094121352342156600246274600492940700717368734913408418915373303257702626845573522939523221706048727422251803633240253204905657659902029101876600442552774374254967894161102204544518313305133281865863151996709946404804726385296782163625012112449862345439701668217280489364661507113646423981181110658447589586597037967355975016881857148279096281968958128453658139444120779270621807405826625334488341725606834736139770927461170105652109203606000545141947658077284139029054793671438859553473838624267868999294650276612897969744147817369462504722451558268593075673834597938186275148168347741634469647038242780475380304501503285976626851624762560046916517239988327732978889694865068654795365699971492598503390405863111353573932182762302625094162742060938251110073752879156143413807686875110565249968256793968124334311405754813586879266253931986946661758107361741065894602934478142577253421568143655841317150552043552180560581648360962843664518093303238520000714693649268103317654726182515440616684374819420159802364983645099645869022348743552277144159920294589063741409119809864416011438953910213122651316950689346578517032092912680712222709811963089915920090550319453569937383500439723165755144676061073133517222552669837209211715230429273641434291237682845880434612915230828655016941027839002771482545363513798870400254769148544659506940306810563651182893877631459846429496514525548861026760771514692639168003752080474085656667080341903858749816650398759046722488393003363806359833367322109795681851084562648355995485502966526992740188631167345576235531062100631266672598368120782313425678566350961142696869093585345111713124050808226489829306190475527706886052779607296647166745179713971337491217500402859140900710831672955837835308167920158857371413028607226335037280856439818479872825979455745332412333020219539519635515230903391354352160091230744626819083062357727912507553152707391396380509913451145615186730042017130145438989797007639861811774506303461840386742762741071663147223627996311219073554950203267069308926155641040235135132581184364201734848069678117349898758298999508656559088633187904644454865336273445133252099406727646589871904202699900818578904807879920030691901152134885922872614359734479957485780317914839465822040482919564717741623915732967895355289338801869130891282875673333261337325306250782599687251580636151134011593307402892556439141369883499524552439050942636591140973310428327211019110326621199996060506846537596135731426879939561425606326468639673295817652519917311862010991878407519107585890363388791930217323582103400108630327520147568953974234834175462013464957557414658622085903831621469248848330630357694608927349239012216170946495949317348034274270396559251184716333827688567343561526154287265945558442591862690996323038527246868316970335480791322466295670325731232606695046122215371789748154740817489329487014488660899890994413550788946277964875744202570438280027403304145731639890867010447061659602108736302795101813175583811844806672566122617442787292391221356876116970849062009199456740190803779873673299501148324367799550661982901366260290724689277244556818125117117221555011882647961757626953077352406933364774099048459237195265435433876045966438792455315690240816458978790103981416392782705084605923490971462926558067661763084361910105318197644621880190822207251917862277260199876011308549088725963812415692846571828394782572407808569758851988475868945257080297564992266652777981108005846072546059649956641138381261839628096483231713101170455328649103445798350854530952734148177507449462404998104740188987699522777194778181633133902894732418622612365068757430301610976199354418126999528349770429020414902966348547003042170324636453629466074979248231333097945861613604806031833917352000691641424137735774112357268841242300719140685605509287522215544006446528576460560169178634414042716103368933861531723555310656413746947365198547609828280015746138873827673864582094227498478205096677337653341408739104730079930213676142382750057063396132241660849589682712867172033248747519658561302228641047009456650497844392658051428257529804751189829854976055892211253864992254827919117679282469818231630836600174940207969447249634948465853348042444918323900635858189689577052031315001196817678454852099475680129729376646336616917984802547708005300182346708005739025567401166230983305001858015150544381239637131513967508749383605009154579822400339896044658871625276880186482049417944405860324011089228701789117826513026974565147899180010290895660046724412887703487997055965616437315679344364462165056964808854863346263174333064156784410391465638816970439730434650794686333847058294449190497125495849668633079283610265369764075051676058017311159470795335655092191699166448426054472462298483983933844028933075070689975922718010100862053739266828459054270744267170155165356207731731481712355826065232224213583093696987606240345928077643523054467049048328787681254682038669283020808261897761582984145787373707090998831437122367573338635987276826499582496503297735116144257192651485163122489846600468054749834130050913595629722772175710642776228022329396094980997972801074898642438920144756485350168983663941358631120140788168206165751073021510469318659390554354082972676150281745085455001519285645704135282473164578078906392138463558341934383078697268642436713783342648210064857273797546663398597751077266924974056163033474212280104968152589713397672471893839550011588560116231690470829307903095194481717039741779727083987836004823923895043217100890318476912521075237455212865754580366542213948014672179135526976966095864057625806567851627982213428449506492089086219517349132895791058017058495205396937595747904964061534004967478109497328326377081637220923068843830761395073276537412598812359667727927479406329777587272339069231059423248430292690630887495362391710850397881116657626618219399527916524856211387329207223241114097653743231675711576028663652786686351761365046106658644895759608215357610652975759168085436360308381797305388932579377136363010123903667648060852462482743224410233942413738375695857002609334423476770299897670060370107063318178840255537615017026946935464793444021225358987288999205132605698766009116835964733103981513102628887167462887462368679791679447063995275651232827635458979811325763063986849176792352354108979823153320854536430034099352803596343556794440381372069180685720157433411552247611860356033589230040800714537472385959679829694747352410689112941978174568458024398770971189559360236363738377459477929479444425784243155286515631512115727285694132418486669933396144745618379679857972196530606884103210783126402587135792009062573106554667831195274125499719677209872799456624574410229754874992882932608519559917445983765438346763646668734499699474382207886023467922235348111758515764722592918845079396787859939489084928736125018510889225494544816805023578910524939019942938084236955405039022612530019632133833662452319911161364671702388980795243571981882274766354260542563477294194935402150988476477611228724301813461426634091682937049200907061729307233996250522451374324420653886005850877376146173274474758464218380315703731677956903151243696957272626267193716915651875965196085326875776024441697906803035664645907443048861718812797703068096394048267989300856304942972128672407778883331832503019827403421242599889996382659424477034052200192495415211715155725685958919367768560055755611843883682986849184157596765896724513781376670187970279557471760004955310881164175315608691117498777549463575149344742690170552647223590994407739595183315729418948449366716719093493923868253996259355430429895387054298470562281150392166430599785593030236951381906047320110242361073315759673867193170278181518548689883768082709770761620951564228652034453625825368024731929255194701268802186154056532573420613532495046680155739145330839605949629845320539716892165646202049581585557896996386728174058472226309088349948581032247967071206726718524224568350263877430863394303434956424797680380879085859198934095575600457899512694272548958701148909917431006973233718004672010286696270649085201850297827635679469592405694152338088317046382320664458337454515645614019943574596069145995333980065006492881009871392408967371696581552866171908036060159739298034375929707827061253064182420205316136002465183022210242180372503897028647543438511586802637507136275796603270416881909505660043987318206753969073265656465960445346686651114913453301305567112046639344031683315097129755379829993276793142275878366631623833839032285542926567476132400344025538607195232745606438377671010000219913594253969289790621496655097908067711580368744123952645676455687375007745998133238853811918145532281405739609271299109758597338822368303358486785534100987712682213903489793185910611912881602714258686110240423273261120711147796166290015429578853743634211761492839393586889468237641094983022446138506411646619905380083687701110772712342344537213649484107320233647710335894860357998252226431892429396273694230570226379692812499687519091991595154221182740503632415806558216512013822993414189501538280673485305323390244608307884517601412690131856680354847494584823193068734310878357345065515551290209752827192897297758532955341299096810622442351040120636686274423498977001709017404747843436379954745346353236489461512730457404211317855985592542560689832952326042898297522669169287637156379974752846160172541407689153903193246994170723698950661688833264788726405634118347642081154679737264513134016271642850369147726491062857781665024141670081388823787993100277681490290650364236704185264740886211412603277767536191925077583137636188449274334038384481625535365539023202518909053685911548053778680632811306996223015290928602028801807953445253430215040544058791647774635827497042702877699949620609070189001047619620022373554363293921912382173485247692488063949855946673669155811958416014434537858738901968476322528724330011344943832647597452665766313393117837901308175586604248861726265697883043429213194914214078651700590076164875828160878137329734742396129796004146146495127744329146287223289544399971048620846253624968433593559318731377162584665471894772686076233816332917280814298855006639938768398158916496793359631454268486719711480226071691599381351512415183588817195401863991259331020173221238665695239391143751180973350013893958006090946675961109150862447208438736107473652023612904431317822738472941786096392104945886484636022034919757522239872203899810486764947158558178988661262003842153568522188405900610853274802223007842303673141837807047786102874549955800740126202543233803826693609298675678233334141018001535429816095278725675688439421635874421133267344392569219248857792502121422272808150781384605035508885431448742308466901529587080795222642926557623717200831545294705253788020586970354623537185685999102633151654984983560105534200162976324453547552546656695742992827052971227976313497974585381305299113208098505776127144265469082021736090250697871056996830475683874390681252431717423847516095226405263221574499974389800934292118518233307184486004565436275228690443380638134572780168997869290938149171898693973533609043547081126240046551077526292355339788742967300928437609133160037229780961167820138833105146069483352047607572333431230705078302381632560221174972352755399684758487209643438473445763669069438780664525432329389088358215157119859723245014122013400517660234863523499862577422652219679163764167225040387363677283274204003300735827668227106015081870776918131743816988835324540138279384844608798033895277483082118364911164450558268455908806480381766875735410179346954754009360101993755185202814120711302405286657495581900940953289701315517520629620857820297252457343788011025153202507121519163348523096724729710420527208440668347200044046113553531070281873950794317639228816216393838571565451724819730903554907602482704773609306755275243119611508895031003193418935828631372397870914289593177338051729977911117024742728213504931872294841392210632965838564668684214136087229763709467790068670864380873365962087922665694273714428954218002852449056605009242432147172000048991041346533383846203938049164567505916185617680330621618391515017354139294048595296721661321063891168211557434977479475159435816968761044928054557503385900165573620660620815287131028289241456720378787274572319596309713653215254398362977508540608579752007490405396370656381269400761152918785628588072516741359058340779704028436512095097585859536517832581462779328179344543181040817746022170412267086768670000818781635616638381856897601414926838855660001563855027796189918519623323250303561908665316094356269230576919629343516216366383683803200741126989833082182884958429509366195575689514702382049765379405418211768686854460723341557275567265846079818895491577971215524425814238690239465083035139880688710431874012837390994148140380232758720745490734804177949906528052380780379761784007259548547238238242454189205967726354924176075887616812569756514026474351676283493359570296825444035860788689581283602793935634363396005272289046056328623248151642073317610602296371176547179127409904424605281484947683987751995118558940775706889347307634730928532187060409811765096365258390446167130555011889042288129304433199046095904319085848739241725867505029239522728637245903405471187171496962478391097777711266990511629882198471697578246769631914750102002543078153093674685901681949688761632292405089187112813593876811926244251804289689941044985171691471299668902288608435101073970131452842116881422257098067807594272534617822614875905496357767112040077428563289975012074626677372919398350750477879765507544198248966851242449391318370390479603669988890789908435040467454365752967555084558638318431952738213576913744232806162469067723254102488226469991893375063428804104967021396990826973898152993091267300701009457692115396191465701462897784239396410585390418363072585516485329132632951004298227216976903254562910224308185044120843064240417201217577186631861029877219960696846725952341753505482983137250050325506509710410617977681298338965476934412338083603715762912664141410406389102441480622302397234993589541845458604973732758596147079132859146767976100750529553862178268755226636933541183819230951152813863950146318006612577697543883054975375020141268438772615542311555927747761772193247277420785477732484716933228486874765465256254633385018548586686754225616424707016349319822315650141685770739173630130505605107489952432082743963584059011161916215738878280644491669023157593726339080691187197324044322328185058220901763371696745665469915470189268457860863167718115055941807982069506283499278582970464123526555110145469462763093392821357880574794707512904371504951645199173458057116585751214571190595223682210993115703479435513236997543509684576573535582538710080121082015850651304858184970352883591119477900306554544752565132819506046071057523273860089742963838870419491735989678416009602433265915704695698541299916654064002422661363840103193693832109296688764796261200297118245074036357634000547133520511808379472706759930849574917584390240263400574655583519112898759412303253318277646942102852762604845050209779165260642308592236419445450816481787415552804506280376085117592161910892417418203768276750529009142087431086823979626712250157884487958813393814490312098216222772359662921643693651169875734306326666779941050372431762630769273025370934576696658841103777306765154873482052603784558173476439986163156100437825275223516673017121529444274659719970566544874290681357044083019258708616923752478082296390329487423800830038721814960486098313459489403363312285066717883188948141103925000747528407136581686503727513606439447331044504266428120123000774464422404796279134308457231338228355698102719435386464971022581512050376055510380032508037118342093740634277977557602309031489957241661716238351822626449114152068177732730259627153545772962812153716764948762613163772929653378169049009174220167174342412356545680721671491565482085887207468831106232264464680079917798704341963032783517441041732623518947709065353340946461808157089657267461817096905534818988862958302167169204658066076364971423918202107865683065690614488253809871176008478453789819106964399817656249952594493354545709134842849907141702501379314552832977772703549424185387579277490270428163758149018070751933330823239570651650456752715278919733182566474520925319428950567687802145089007841275493975861988481477534342607985659686955733239491788809328144164904016898011745351538219364962463234967010488581884935709622456483271998324380611044155688064107372370560824251546113937389174270018747431845554688176076543413716340793463864670595907944005739664896794317818891145387540144957652738701574068065033778397674925478164094408641612416124908284272895105144557587689468095518622692193119813877614614822112243382989009254699468088888095406660147280730334534669010594957700589496373733993984752924701806606562029970223413017793785278579093840950238704756751186837122299492813316761516836960278042367607307027116655865743231209584755258210371238786857733428108024389366090153532259390743855731243888195928718596427677945566579065281961213188539841013495003446619373210299708500212141280760981857484901631002015684821397073904595405301102999251273568931510684140335248960052006702175868999961658146737988919885891422878467049936422663637477238798164794270144812704425182601977007402776778985304178134511589908088050441126308317628583519187711769558124852483667490777087154895076505158921521349478999990806010802916093275328850625941817449931626853827473203677255240114248304597079418957781716975443929990563468632054934051750945695172405961704696730665727782550757550043677552315104139432222163122297600521677293976385311068876837478152857138902465141711828381909910709893584900970850074071088715479331654670843520150302008019063560150910324746262772255918619498311205849481567524856511335574433253868303700558459845095614415685344468594241907491840997706096825015441096245010656443948470814610411388350588588341844154450085375006876336262697742312693850911829761561399244653986110742732535942609943411801633005943282813242771955303997079110580907955124635375939498171612301531059070873434414077150238882779014586288196194554224038133224236876840927356185377188132334453976307383075987818384849649738641362444310449343624600789894599582474257858195263046371226530683961480780853208758373261317157891318869648597120469018112927804465751645104975311384093098089634983258629598856297554175587338919947157267541203419020159422422161548450030968809607035560998827264520019737274023469193228934415378490445100250040835287046345393890737779689488769340205287597873555656249067512332055401934976734918769907354677833515658621865922232395610436356117159009394823196839100712341440479023028615421611874688776391988285379878521599917927315929558499276158273801232856874721493599611429672067778230834818186783485468961286264178420752030089338248707903098570986077022390860358852489819798355488595521483532610436432728518553220891254943019746477591146047538043309740409073738645156329004766199671771679441721670737452828300291996264622981557122304089188051963772851089596493315519519167863911611588516356260109500663454455804956639045073747115970589316267518520984223351384957419956776192085983469719945579672075123900262814901367040932782368874275641711393220114163292575985343582918815891008994231344846922981335713108625834013997271694474131784328989469639267834109815234429597802918861268054568064746911588287824368208954042769792519400451234507906359312256133708842311630269933572939333585367333038136795198207925923011755204134919936702129607386584459685832750452006149727812083498365981133243285078691027529538496548956901152662107431950053983109939932306056167192995722922019155574884448190266311802666223611220749821471859633474763119375745011119131708411569069903406799719017465869266350337206705505634397635977151149462868744997078181217948108641382115035551092649388065451717871052138431762097117592848649096895603121001348117972623183189616988204497469608304818499948062202091986959287605099682873545990930750847321116643284361234120211934141869575809244366518766542212673612896237305866693382973927498119292247883974423366141417236448258432836040147596863682543387924302152794153482351520866157229703805333685668848398704761089060284737262136821794587588335882822181527071865907146366337094906988142875043002057339109562432260723150723553279785978746859696209229876332556844715318303574665115691340098689916838816193966552620452399030967896413197901299119048191993169264250776433944934470935175830945305366898300234766144503652249090794243450236541160827932374836547929893858390924601768663216898066576258595965283866691392828089023816000752413557136621811893391778121692649294207716119598792342664398436841311171632430555032992410385049750629794179641129653846427051060356830055074811865414544725824985558423336498371918215985662177737378143186974673948618290423556922019130699442916654818719216351476827923890851563948855719067984579617129183922386126725483024940682730593626142935008525072439056394967942093645160441636405140247635329279796677433047983790949080267744554290796822091711899619460532587943921575967630937607662621228372531709205691047818504837071778258601477211725195795403388195662006010380720824416743922124136919612720884425385157868508755949552682660143177790511761801475774196697127446549950157893632541238582879408773557412062045884734854503762540969620150147101378802638499363977653855831874630810845358044651383039891500241857378423561846725954764051664612170588910100742034876358198353132554289548070403041427456117571168536747344825319675379527975621644902767518182877261890437853771852976305175955347993476962824711581265287843953173789711766129579832487535885441885668068757147557330475840051610194275112348967504619223457137574140995243797218270852086362409212983351629747205296096876269456561953756484813399114282088680108217791573967868627659806011310629267487216706120859743533262156089624324636117962865287308553693712694558233820420653647528645220615542191716972567279203820577660680188151122059174919604500207232475112176672262899219850951103239505218972008762413546164632371692736704720631557939451786990371219492400024184159802428285341001203135986215795780336375496659973391162441173639259198386228974280151267314580614741375338030544836925755992545543536742303258144098334912417923489873696549295959710262240559948810356079671805498090928982967614481380206039655774350806969345590151479572972964480185506279348813073676577260031573487423317215291633930336396266820824376745761620970379156475106007883774143254382904644181627111664053843042686507411322097854027197150077086953242872956719562692453464893513206891329745554437700302256304099357538241322096975410179790790836738674935072952718401786585517356988826053916835039524330943520589021716427253948857333834514764106722712660095221014083515578234516019811982515616356836772801171629702571393266660373001087488424161686149285769402358997716504698791321224058137399036253447787587763642814821356055728172567480241734019586074241922382397232790325178045904559680825833508175949620101530878710688274083919674074350995582021586841903858332064391962235042291572504127519768768105763967509259359675529052600586364230438926656145003322406032620406054330739510146449119249737727062132432485359159862163072146878757437614366280617369504119925073325649543973024356406201093344434469881131745093071807859992905593210999098735119045149803261804131925034455514862703276017922037810072051897171072439582174512000596813286910479069488095535212504362419748732327669888853363540012954028266831501411022484607021068993829901555101121215907607300214045241189247459373064698481521362798400859209658833694285150842444705627639301357404241684046476767322385898522855426825971844379846098445772330055809860713779930212753905400469875778036396195789708141541702934796268984393236442617441852789578223930672500562795146166839142215770488803584784241714301353264220453478576520811218812479742903955877366420197916820514852959531190275612170392509622258255309575246042876741683563658315722121831899398204196112369824408745606529235383434175894037106661531369180916968208292628058413661520310777551357395025423181642203754452550403100645189879090775620007519740921591222526048812549184471842739889324001540668808254036968356518118310391339970259114244706796950783566945096607109058398217003549200514772366696788303039568874528170381407469595743208776091621413024087744259743504814723311274010276575940665132894336263089833994320561951551403180825542530342289027347796061105074286941189646901530604910916531280858305837029853572145919568400932780306008957037118159382110768561559361515020896671638981559208258311705952233701348749014658499827170679990603265113168057967943698403836325755666369668381892211737792898534011950648612669648097500508668428925890102549653002882752046545569500436307128036624066613162576884911069009244444342345027348683265706266564556521735926285268285594739714443427418716034388501504328508179861468462554240959479792533202701207377516799953841865071381587090631851425688367277830702808097891712693744256437100077644336798183996608328058924976994383128352857622728068787651136495769125236902489282201441040129281903887479550683998685863825832853219690203372609055105544540705000927173290040385476590093716835041719653715480963351465597449815195639022807220429077757411109923904224925291212403954913607957878253190529599348330468008739339350251630492028669294390975330513282294344164329281089059417026404901298287704308163090408542175852395411801757524177671924122535399950673940639484195238285010595846201577442641290548752450321558526069358279264803984540797402868365238761084917833590072513188977398569811718161774339461103346931247910283550839839507204328011854677784257219678606994525430586920737213290056426082155151474068032967030261122969306996157900353265109416022927788239488163084329085020324343662548818129258388215398912047321151984638631404369288900276073542026087943149561547363043792398340992972895762989824542699746524275064961147130636353302534329914090849578702695413137821546684026060975823898411724806698467812744381483372296691369864883310696892226593873145131069575034995497657618096020486664413439269586661337513275896766143783677495281056018351443117783960688242875061067065986075986966390856126826904023326746489772375260753857820813428734095607106574956395650163852034060228415613121791664647216006039832700672859372493189834259078499092700153562441547221368141073631278391424130230428233534903945261076545397252391235931316088737501417281661191382302548540680705217006116435783060252368226337102635251876980258063307826267341645151643799153158068190788233192772587871152897915199523431370624247784571261009589623622385146534713733362241507655352441585247203246824898160403147642540376982565356450156336224408934910031015954151893440719251891804259204991194118703839601997510984343217130283149461983915615037056756167504146113266080594787765971387992367010183849681234074348483127234313047654876232313015066166186369572352830071948689606915542227940436723668715381283652580102558822500269757087844232672245369836434141439354430354951105116938114303652930594090644917355910993697530581311217581486706374075571758431462984823783358863111270666756684276266251642628064167205373938737529680129950251501202671580799097716483681443726560850847589954020925795800657882320156825135715990925564645196522432649450548177602868215302455736101270702950376810680371695807270277660512719494204434212275994007904752410495303596270482256190968547623375686870193348216374309434418298027289921479824966647665283275902409480733056275700850437841662208690926926769246083246408196989612455034321770839533122706501963833560156696243417822732427743158683477665726981003401202162959108905771692607360544738697766395661748047012813517780619954624267256715925752368078313055158409120916525029071495700155945042454476365188221417580425729541281084668220738298652807664662196145103918122643744522276359325305709480924069558598300382600669297188956788754383524914463321257842945632883570230872814045002842162908115019315948204154381932835442007358502482083883345909822052929541178964674373588436089707454588719696160509513168342177354803181675664385374569524964752025742217793510034188495162889340029199730155796104706511689126883634795323947180789526246092548790990101805131371019730647624542106067069219099897035739550914615577928501274950512528795912897499730146316862352023899221088809227763790588830319256369184774655234771123333437946634485064568263335407752420915621149805631918021600682194129575947380968860182889432963760021497930345260149050302497374086866663062021744115193943679367399026023903056987237246063465489069831885879824584783814151250342644157713396165496811285377936629852780925080572626653562918428256541195507429829536719740211416661191323196804374797405141116694164364287017342617628606817827182841864281893699093249265129950739758202282773600097069504314252555182963146458562911367566373005992079012303130790755386664784032223510862339073874926452781739889797381860552971861835626228525912170604161249593197127126440846454950929461695151067318242789724089394274081837242644067674708608608468474636927126457231378457405877720476941335056991701552921123155381974196758228194380994042293320645358310225961297456369345806260849779771851365945315082530727571075648382440930878765924111239514930228958298574940716737437120493230486113935638110790487130033409806865250081467671067525318122470109913289350603937365873175344487660246104767281569587979377974841705051719986297857291785316740435139095432374848076090988178976620990269293496203868894039957623733834646160827295143039885212572122627329958477656036025052524456605808032330473061997954191556841296859479184429172187515353754552501348622880370215695665078378219016222441533937045344564799146084822965805035669358816579927922201009885395188828325992365803608909433332825792904778726111993836590138856238249095258434450199635023895520901599428721875472625113992678483993376538978982501560142965130549427829287962929675073662523825549754671480943920634307258517297165211472491741455372342083896152079192298951394932020432742576803618466826454407601776338445977759570699440061228707181626384600782784582552740144188971744557750330880367356758805680329594846819193061568040182535099526066072564191605857269530603878634675415693078099192498989251192174587921408658278372504303249543750689349741014142310458804770140267351570728892853214567289352653533450672438995133886776264374341262570432954121820270793061597863469824592925659871995047804408261060986139209987931939719700636835817425233800890844086149108668404006174615958200157528943660344424383736762327422977554652433315492934806681150466695084201901854144980381587690619952448856453120045110566501077891087228304468879456477546263196311250677140063643322181678535672667038534756551343464417949159034694919007264611807766287778457085633637006331625102240326476142651307056025503526837211280403170655250056427403353296270436327226990361437735409783029492319972469186962707275692913935288434098078891962419965047772631531340971855917143640018145527507645103403145130230216602817413729901314637370957210416757504534602910196202327669009924918245040312989573025375605896844432116061765476744868884930527431731727556316703295131805712796196585735573324959156288283618807747399265337054577511948827093921127160188903355005119832430105086468693537599662682809239582174608409550181464060045545153309093707825647544660125440564877703057213132477987588191320852268086137592280123924294362462703499668375691340076711530554499321904006851082039819561944112008764559737379584391750908958467335365697970336593690068025743070868546951028216841681549416631558459184436599009973956351680822918700843950811866593987788975723885212582651526378015214180897402745202492357842785535860325195280276644166630640070321492361645816997675083494918316260814688476429069799236037002157328049953625742264745976064964703446456927125476924930925990882374985509449125921820051231984752769606375228912885643564743926307685936224709255353961696404425214969095579255376256663571733780792840949925359507376281065894632919643740716547319125677763897456078680603460262545416100016771569497377609045537755358979107889897470204394390015587105391964249531721283117645306873650358554675924766382248027277847809272253727276835051322846474054386379675074474712609126721174848283017427805052379495370717008956537760082422358698588195092037919900645860084390538753925457631226499317288461886628482905361903907092792495778013301866529843159269258383255623446808519849351192568557424432989273865331925883026695323193623027734925278719233071365973472738737654347178559435990864021427045101600983177749007478068907382325740884961452144541793938157602910531284958566101790492127798879398880066750255335354275945225005493123913234427293138590308348807934198388915836802823193655647859110435294120663893449842984046565167730280512432784678869314009432594183354043139396537395765830522453761369258659754149287548182590831773089595281629982679770594522029466526237474710398427927208534911073720672629055002890221428108416578260409824253877860899946718188409777476607334637360002008943802936421020400887040719968885240567937864030020841739279672916459592998688901025505123698648503541884546236984086932692601086875390693587062728170386595283988488469353999337731840428446337652480658026735609026101262699347675767528468436375462849204987333161751380857192875835670335616266483374849944461418936801708069619342822398216804437994931545369273726310156265147186325469103185758644575898020447628672002622558405030806157341241488296745026014493059381451911538988858002111590392841357965867784513335129486575000668573438678329873637843372605674187156728972318884195170590253451770588249920772734405989177492266550947679116316506815599066817003556210293967981874214800178366726760223423519103746510757587475841251176296509745759242756710693674390255631697301707466061999306165405681105864889141727357588796364452263228532076950498632766600026569410279514509253130828026654444115483993161353416993620419836412841418045073341601483483519521888230396357111686844425986922610402557197497445046568987981664107358643477344828835319117469534823554854086691108165564618739105834349068417008210506349278005284329000634265371500807020152019922674247574980407763662351922560324381470047994563074094115351627964331483539476192185987952980810690701286673197865378917994045248503702569842362267389385465139136081874620673092833987016425165571940884459919391417652776802884379494861529063599488090966912914162648741441925203324858965600490511696463459044434636813198753307158095838050251697347980815833862124326714694279248317159758112714667769957279161611610951447171129013555030146873753504549687353595631056681038004817275987629146258553936466744844039369265822950275010561970801951498401975338413536640832557669218514910828828684555243302580920210639668345097005686073903378848666521410991700680072101889549679129097413945690114021193943555619667950229376245343961778968603324730525355595767518709993891558936635140698236895918683516328615961060081685278019279243324642065394561384477651899091130076858281267371144563952441197082893892042424769991954993142262019555393830271767565060397451290127986586897627467145450142523440319215556585105933920909234870325431374742030179484287400191140981055655322373253692212156569840824749602487632666180754107982291901217675322864530638106200587528392659924299413737262362259810045804854968211668722728839799261819605249284417254143090592395539495195476273338713687565204057226140800314973783581391621389949107736073812524099979209877695753961879680103335487274657240508129788380426501956638583656335910588584251829326834393611293475536892474932127386889621865580494742269776647078694092493671817304587690184348129024126179720193271578199365212722055826365820279988704284243331581909278469814992975894149952298227365082646156678827868360487471459421137524494649142388292279811841924937207367613903622227064796477401159161541854129080693453092398393806865696831149358204855992259367091595177500782760126113542248878377831165887235595598514848687628872547027154048410805723991735400086536977320874623054547279009733971425041141729346611824189456881454790576806700865646895551374657873808650016543845242100989482399687250754678467431002118533761034794688524570534978117943144767734440601937467565760715087857377767445326718771715490671624863089780267745877847855763566305822207834506487522254508797582976641516913172382166171722364624392506824101553545554489048884148716877527920374466073716246540592754183920393092613869394863810730448294754838173814455723103972771725338065564698224124000479799068333755431105564264817878646771663559444949260128538976856188761373730935456214216894204046583694201047639753455713468771415605714023160442372269566399720670385167879760426477948988535056827397065787892294803849654219849103372387900726060888856732665854036679223614447957870124109146550839643872784295496979364024791763738751710549330903318434866853626523421808233561229520279585803905619295314469451982414698094880898516482307958197141646740667961651385873594271109483757098404823335738162846058377277691766001076783786508944871735516343334120869371225034827183223209557745540079184247084290000874578739180213390432789334450761565491096412298785278199924970950391602364956970179210159745698781621545719601952705498966694937248676550043187873394473392726860807762181822224045829904423327510533951794284094264609857962147136649517029907236652509990521880396861933716989444582776112586088946962738632370820429244552474036257316115843169038923272711850888306092340741142705777408639401218103877666937215481667612482520367832619629750390590837649397321771044484051008340536328757134059632305511906789733577403019056868716742733580767323361383611722958514459371200630204777512444775812005826227895569073094113813262427175793953972296031063482245550057055528186879293386687552962994004704208907187565429232579705674515799707474100500662884960724508886203461083410155030518199267399289756118596501656927724911843386131076388694129136868462942011622706880178001655564017372537206225841432880852001553846548119157656871377798708799513482298877594315985240364782050423156350821159925618009991900685926080943705613732953356377277593103093254574898855847395477074254321467392862150147042422604163865463230917710577749357149301096057533492630442684225233737738380238142818301607642486546620213816869219731321815051999604107204861663936641001333093209623233569292478414566361864406054070056533134383742167467305125579752819628572412198102515993588147948088226370772171091667088126302145157374330540891215424907076759210835250152434319179816120120559043665588276539295225602586317797485546210464913088676002326964842125295484549640411229964904356684612238606932011404571443461550564475656845527110310679026704385765510775843185888580784698754339646486979595050709350404536938839292820312904085665026269702405599161217862828221829948099069302910359022320134767793428318837714168964103276465470467784677049420227340718331679377094996736881701966373853623226208339847005858312582849409646055893389633057539710388922005883869946759625000058977278130691611182811196788602748247394499188818291602692710966899307812462849519645644856628374648332442474262215969594978911025052508000205358073743178495353719092231103006765654070490417586974545846466017735704512253180203834744711645694719483823876842213532830463558607968822036665707342289546668814202399924596399844347111908327978064782864498825148214562108646276431705288556411147016461647214288852084482386287584893147179982352351693590763657550001331785263081921168491536930453857700350846507799128597015004619745996661859884837375116066543606713870022608088900477116267961282337049089135161105661968036124608063777946473462045391244531736206835997380653217987778546861162292043746599400950033142766106059739901108747507040551542873962569884064316486999010365836158949319446992594951349179916601074111669646303191422565156288397590988343588336444843546168351566627863780157444585581600748487526132360205051421288242459195741726949818628432802168831388779897194279274804380703674152665237386628477653671448905079539151916328066113274635443939284293374323404600394104649629229591224132720343736930365294235172590422806408643565854517680277758793597169322979504045039905089151056448530271821782886799265011257188557736833981289961242111801232440878485943551483575650852556968704736416322832119734200387846664612397234404482187493610352301262411268894544943755908549534062265660133599474875650186023406566538095442916586051776233003014154411033522549302475275902454194611442955110623616543792429131765862552823578045520259407751664689252617081241624356260430413614122934808872448554501731084702540083966844555366667653331804861709017436094290776110852257004816663199556371529764567277133884801980851617592242798485395439330910238631281998446108442668875885951886836787183556333078025960804649547571766472153780197229195762837227760752737775802167926147791657442184968060028095674797639377293013151238895177829439683906059588439261075690873984384038547503748273544434972586507881119995914003519659143544124198436591733735845185796557134821977288795399224909610435973523059444900519832165350868268764559358030477654924847423585742447761549015331108441325710376364667231366549364481304034779687719179819136999640138614729194710173453995998944358818456005250356411913583662424896096996329050546394569798718447316676373152413916459152465083946003789134617268696521859727669544504869770343470048990414585284876083848011638111579609228880943685555548257719076339489264001999482307808098639059287642851569982544400159340052088605643818275409284484986375286375235442141049086441141929826300947285340755806008820168290923828102317352110814122803243884670116986741688210302141074189044404702920880759026513410511215946625026405959450742070695691764715143735622964826822436559314534092674399763603061133578227547175182355324209008366879481095718457846370671295573498475975204856486887776440153035436349063378519747536617515463514062942788547663022133851768978483784280749500531276540889718162929337799429461242220467611872302241617202776308257365829558234866294852168316832553224767064287028641447712478480977554884162381608821199963681108057730165133793302722751531977566304540729836288676034744389617852180639684065288505546008793402336198949842532658817556779116429731075359985264752391068115552147508244896540335134668679794005546094878027077025953618649848610541324702894615346612368106080552058084671754266048270835797606952459062886070517824214771442313022070623877090848394597523848524405951244335144862201981404842540981487414377172368515583639200243437878426921686268288984187209236659409029370711566934166105952285071095594737990332814200538360664144175228205273668263662205290932975042174021988783933096695009705918709767468078530628818645293395863384048770477298011095794972885844292240405253440805529790794036007183046960485931359334655612670053564958531846482655919697103411667106623467099695817999416726175769531954740260139974468772811909026404267985080511806249422523281524567339006727189152390219399570574905923067739303425261406949323997631787391781053403631003023089612429968977210308802767585222452675433313546611860930986244073856595207260831409936579969732889509059554856157211889289758319436701623738535230585089849374628823763768754852655342588511304024801806198230675252013185582937592955951247195657903652028966857656398748444815015930958625391338474419224092711238027962025415903943205574712776716152138544373613145808580289066313243683330355673744273330282876046522570506970229301556769709428619880016194514216260036333600530963652398627626008210237980895724269424679428814557646310076794976496659920715852306622535162622861559446957730910739441064923270677357942939495349400834781250848018534923552682688696235648734739735868355623959771033384042250824108054483638836555437225819431325951100946735221872455725914041882934565259416640597192004089045679605239888426248480640125006721244651877338842682600556826940371418762364193173409230441270329230391643563919202476173146653399435619853970505793339160658229088906168070189171462023784037244329258115397335116088189520104687682322122022685504365569744329073143325534508829565204200413546956268763175593611773365575926277849076632018192255331364700519819282910866258676613916165353251434420043489998065444598210595903012909593171657382069617204419407031565794304425228871927174806050118614847198593115571823280091120363088964752313505460897174584162795991072055918985596922052281409843598383039291060078933263679271791618805262344088372034690761005509363907554854016932358988185075449900942059210498820396567194954048992219268333927091199375035856594740316074503446280242294877285001309702258250456818352248929922395448372524236989305683019475926258944216953971457221710044679864680583162059756634247302672399654589291281798906857288074198288644069460624608077299047730452581950943057636544035604708407426457859567277085070377174415540276437467630848194599030406196384493102528841508955724802077885613250331948764915473410485802099920416714465040676207888856652573734125887237776099338523145896348934165985014833477648038615963679209268980871215234032118470513345528515666048798123871095227787403392585104730588284836653865246120938744373880791703588687829959913376785578665719383742857652062566590796845297571172649352494975303794020221468666070488631916438887865247330900580099084729941758888563247753155317568046981803740881466209355739648114975773295276839000815873000681595673550754359646582110477251005055449351901141808251399593560160132207453169267026453498103723365850532022644612553920930045150017975919431273456956491841791121523579318424984370607049319584681642349895772475479613618417780406140677723749368564686410155468802376350731951395567242295533897905029262700728371157895868484726413160849332803521375256769013680206719165417641652797704727125319662147849488543814767613289777492682936733871866880141791919677922430013368538396216522021417228925913328010080389353408539110162750042740131296152633688414730497223698385546004416001169790388797659867040993176638285930921116377824065570229387526016750364422500828959628592015581529141657158260690545060625588159792483811016935970424979904670894412640556330384270999429847078439790011822517765828062669202320186880142762193143337868658065160864451097930985790050889308699819433448490294454959239066396414296674577939049475423607211474099386678157004823972434681694794361851074943326101258961585973456540064926873543760703759166962795886164252056100512689859263521611606982502943327154564015579118237401203788819914015746290719051008742757427663786722559940765915447783820290089848393226629535967974890935387469157624847665949693802919355455402637228952511450413577004209851460336279545877283403579233041425080724246538828434430962321360087310188351985265706091522229762801611464855910935764038043247859423073709099049031242586987805704720642637577377319163283456151330301977115197420882853720770789562132838289566000183745764738882780537828760675614209862813110129736725070030226685953956866831610768411707101378579593275009266783933412640080734405853720714478180457466948629883615403031930272019496025886402500809084614475536318389737431212285680558763848218651230706097050282785698748739684593451772119712292086694043285922023401220250550027226233489548886511776654390500936381655447439554501204061784335649687502700710554576697916505535432061187532880895601903659422532393368461245607927037927180598363093020116873489313254842554503290163650409642481664659388175691582277371318240100608949243131322314960562691250519524744033658222778177478110619175752838862183965943957992623139764292660000575026046362068615965291545040457668777422946832715677394155867272894370393681570626298945445044051822003575631480751204171174584093704658440535306145883666060957867085408022034628488511596579739868711985924523517872264906705853161236633491879813348709695461859499145914127053690055560194459131128055939014160108920228158127100063057165051560735703896167889762910272560688242745269614251490097077260221681449364192167230192063420048258599601035612248296939499189554533631763082842533292560742494522573445616182170494157515224233687243051368899763086857505074849315834775941380630166885815874259544669307795366474414827227812435085710547186288369444797368049741480603263897356974679370478938571228759755996180193575213759168481757441353475565577775381020477499592110895383472927051064007941023007890626298248509590112739122933622145770171480476877260437361648753328928484487639133635335997378619417014210524320420053183843023852156768934749099313771263693669143436339309097120227015046369720512840958112389267328521068662060702486628942926550235491334220738421427675346737927043798316322106806240448492440128387950382833902813878575104980964080407674847924137607333198997317775534716077218761501155690705448721204149914657324916530211651873663947850038404649708851685366304939943736842593611320511059893802472189375645823267088837019649540717970843993800332231120601027660467100281025278986121432431936596660947100806386035619390903628228379412907029439493216380609655217868980845522844720107838555633258892631611995783244380283714932245554180172864696211072883402583601780338505807757169992385356387443833950096923975411966240832627259281807900767265233844817543934360681420297825588273896204213529231663328893705007200854464005145861623319899339603712846778220486482097164372627443042260646698839785812041203346858966744259463159136334466532336446323162153426799740854847275823948686200148201765845839295968016782417241742090045925233901200812920242468142161450590550931582805712051593139478239350682579814169958926677875605821813312236904205704190480734419060291557874025846689868891895977437189890670129940416718744295800716564891096137995050585679783358708968218130599235413720733289595322756236370679905909599513943822697074679029391658066374321061192307463362256612469266673036375316623448487800301054260586291355603633308999716244053038859130742714783330063848450709051164421565121720516330845930308740586106320891167931485561662513168077284445829816206152127552279508712241715657116725988218923649645409202541911560910719451329171870745387441246551951079666882431906749849683042321556285459203877790562074954772068927494811595946262804430109535305641237646836277842444043911092585936111246445309055056209455163392718689328159761996553114756031688160427630188174986970580122037918081428373403171215875161551638946458392828681256341784126682034255553469823546583571256170337366974911671111636045962902862050700781529084357297793703233330814196105702289952415307713203598657038654145870955445037904152284396303301713647050194460661289657365196358751609523888225801431580382085667492868246819833494153687459970251752851599868563128021871334665713165725764890849969843063124010039604385699035492437492668294979562839142315018217158848721264051681468465671831400175022386512317558548967379824015575577923631226490333087208311267401916720989673623762652772312386271850718563877326884972529177389742093237921142930350018080581483404278925047661953790158723605442244653391758240842278935429028857306300247827242163535389513586778665705719508152123580618990700773072153530921594242716332885196745884377267105453260940453553498601316557628624242762923453817494987868504737246064626463805887532070879607128428216842104847666929124408698903714956574472091059695749439572525466772609518076193247492588748222692219772458551145473282383852055168467777097024993397362823290442109977819487895905945238494112793018499166060755913044381263122006724248330495636796500193925806110644741432979769137337784269053124298652340874032055528735391745589523013609682760292174003659099293632024090038941836537781689387947370427516360261400832838202406289656979345852933479037764848208835908645674337289522450913327318645906132852683482741136095394061529288796752174401734302293326018338702553990029048929857182073825712032880065994524680018178992001594523538530373886650453080862218026703911753289347548816627683157060661309480379300890046065274337449281930395793130376802491886604137817013401722628276803788590396184394518292358266592513314215554909094923709787145168140127972166682213308205566702115755712795199910964527902032809810284108330669546971925937831810973278177414113912067520568122753872575980693228514612630514522930257754294976192840416358405333126083699110954931936701889229301093553788112168428277593986403031209209934206924764081386753788572016514266012148688876336811056381501379845063919894912102827206555202098086089275162617636321437513893233294225990073917639500399333508092413157597474875095947313747518664308123844958478959281142540004833022157242959581918098682792587685252090497165822762982429251764159789694401943690573992751926489318767191925015304102498257893975253595526690241289588137720187667663222380362815272031414036675350029718317555444839194221333541790950913687478545573703174171246984207061149911807024430346715208592943840550319271071562420076864527051182437675299633098791985431895629591898930412387230084603572755219677836877968855973622682032433860409228039905273113983179548376463171349843871347450343336393695829008412513443157688895903201150083500534101039836567585951302142195974667771976152895277737707049274570779966526818359476044180717670250107351301992374931739772979494371853032321805505047430205952940949535277548544985264642763375769546620745388607757577757443792847032257666850016893027204612395168246428478613702007130764181680949797716000479178913691704982615116122628009228794641415685761290065278620979182130593491536196435759313038329046655905228296165671069388673427862038206104092729451951590153267709233101465095841498044767991945334783825713211876297938917224405637269257987723559783015908544949698685108835110918880238596746826836914852335760687017084812976852116151481571760505380877186445532368606088900416416499203655885288610354245120766906861526707853189289718334374923980840531844343146785872042038239355735399543956839784593920762091534692694280326385083488681298121237441929522654515961730831382363764934074320983649159797674969220672546159527585214731890263451519973409107762286480280342805875530481459251225182091971722066707504219488142156562911735475558911337292582293890014221551021178966676059019937176907078979358473058999943654087970624788881574639647597043288881745211209934963263158095873373348187223586564473245100624194108288683077142102510267749915506147122852436310730299262271708915157681305434844142179729220298102081590145582059269040790626081650424976249998036932479274126704539506146405942239030487022438091551410218075485895847213663088461347125661707817737665955849047343257814311476776340326047536167604637120278900369315485533406434090297525449839624000309496996681154468264071088745476659387205345704854383062304919575338404129125577571328755996673114792336896424265400442438212435205921331989717567366521186160088709469630183495314543812396473350321527233767376625111067743999797805817495180488025504371255399205961350760362657008291441254350071239886857287270669673217178190936192135728808076335731909732650732399574520881675091253021595828192740237962116223256611275360133497984077474334482324568088579307681289147448049920388823897706344894243818103523327649175420472206339360967333768977415382361148459285186382091947068671094362411159632504198707434323337537382854671380812996166568216814198950424119269729894554583612143027405341706000166722294546863244226300973566235620000447304003947043050134868798764716592050805423009220288603681307183778542509159039380430757420352800965098594997080724098274698899938666094183569969849411390114272787538088156397665994745633225852534760049754912239731459276757530141380433774297658536264188921587932196919888439263947115838521291634734075911765020287495184774325680093253348032003093814119666666223124465053284361093966247946864309864186000467735009007972961499569760758597492169512817643684390954343497665178672071124976011305875500778318273014193549338776773324616089941599796832527726597688917626229624465259247612442710352445436914823188927418754592813457145766910870608794408778809685837443689155816763161070704859525551513615577884176278525046276245941931690075946795552059951406511945426196158569362098536489540881722830133333182886013881112606247460063179840719227842966445939167485564360356733143675373756729253391287976515743859410280479060392308000063400562459336681888460150741865457141120201600721792251519520238806382219665647995930417635091170400778310317727052800774375885631816529598691394511851722179726880952900851189630493876660572617104460440025356237326509514697158717017809695449305860156254138340871315221495930504678903612229102937260632721729974293385411994142465491094674338797234948705307398735534727378738392299915344351748842773321039850527866081857725736859971873542756334353882629530209480136608675642022670434211121078771936248235421285876068812451701329592043931477770531578432899185258182536590511892353842396714532658788913762954535539400468863497152360211935697091228026933447710054771806911135755169094736856047923706991761360134162475884832390320914549004361070545016490587621315349536927313293436306279068474768601137818834630331073715625390994195398078759410247129123986086017179191707149302983660006077880937749639731993399833936869126192794160780620974347259285432908095633583219460984673197349906735032989151052202021577797790030259865387277953439114043095375162042859716974601041710846186626068688420671467389920262644074688037497124016417665472640178375783873283886796875269848196530266535450691466429575572696457213684825661014294577629203457105061027945221343704312828268517233661578494118743274395754563004748601521521132497086252974602110751855246531480602732872851800120672598644290081231149922351141191762611043122528493385007446891366197478646988066703949720968107680377645001375427767878576658782225787117742499312797667421134141949250016055210648510407926142343258596992787120037984431290011822170516443979649792202076802734517972877211859634024819759849709768352148929349861414126703387445073423974067887522172113511322518866740089418299413686120347106449638986889509589555522673887041895851294578439634125754428047761105872144712588363723656250025653563283189327531403244858218122655952819171744405178418979020524752889138933173865228983642848186904445905337688595900414484915571189368506642308597519641112942040461374983611160598605018385075686161294274528570764539289991816901194289127790618855343304747161603600626215034829104683414523831482710564005181896624374887899144607793428580783522672575044705382521530324520712584229957231064869301136142295927078548251225391776446828879010077076270511144799210994729014819759562457353895577773448449345979492399249884158282090468114544106563717160091442165488151013321795444792918465981018449805077485980261831386461586580246813909268240658908211033118107930517073467813165266021153811754631008623906231240772295927500793498918004789452870069469497576915789242916554740351795891921226098327967139755447127574339291796341113271876731443670172398086514376341026266614771887794168590019127019080586218875517190393818238483186523097740108469279438167900394267854081291751075125426447544811188877322462027021269348974023179407717221355609354336949070675680020510407623966500304392470974796392424407437012426827214590137557617425566356247510782311096157133287454321558528425033763295846329025557842900785670201744479788781216514926798181870426009574550341478041417349394111344781973893577567168125454667140491454272137887129244742081302991197064654005560607977717929552789034986243281688470092290848774892962508081489087199049493888057304226382816871098621031097133455164285269487496263959594915032915915664505815763076746191874778290782595389360772147802189211442822089998071065536871290452085644791067949076032668065715587387709001354255101194120065293880513952378362007418084352009287854064131295217036588478400656808414381054367328897615713607410346634979775622866789530647118855902402679843715921038312192191313647121013802364913043606727889375594580680424380132456757316723194553886613649808815338121035521209786150211344940051380134221406997096859626183145540341687976485027014722766630893750516891476664493938394002820940706504708184756838317017767101354153220518731037990043168453898580528243862287554885915731921465111004499864370984619837621232792303150213114148518530676136648139015053352881986557121786909489985168528005299913961136134279650872479302512006710180223922965108207758464163060619060829259335439011254649203147516232786045200290657076173970933129999373995743668362387212811307093739089478255028732094404749161621446814051126491117646658736014882628258787411292650584746970691971394032682669024205963755483208658350323588661459458278877423503455926645370768385459008408741601117040314991817896586882557871010915955778424900808759020807147876094751292783660960035981634354726354960776358568101565562798495886888229572877024983220464945842503565539905688254933903960469853492495592512836205859154868744307123295847730256242298428523359628504358574123971857516531934170038701299139840835202091699627683369277046659949471233723660935078195979971414627309101567019439698183407847767073393593892340434937162103992686315240681211783457125883059106988657858118076514093643183900465062973345814760672792667386631158723685858101474436127150970015944281299879077402856314712985416821182261821173547784537821618254300567133535859732134824849974045402667940247784100107063912962366800666715082986592940134994947555113983974314087800154090554865088748077867880068409930393787278299063156723589580128516750468801472419131935338007265998559186899814733776897756759982881679895273316773519070635530285966360697912514865701780295887585250846623812265069207199764975434450770940549629991358836850218541289834058565915305312781213829757906458596283406036985207275745677894298385089739448538614855544902966818183640274855332347387001378512526590137610992909235420762968011633661048919297545811547976539928519089418511223848332899263749531683956561160124923166011643048272113355709538262522289050188365454947135253452417508570207708140102557086631182599977646307050379394636725077906633138239944554214840830002734201506355176764752064617233442426163864828186267694609252585849553995318631651489510372306866068317604505709254955990923891647493742874098872107225637089908784628394076034680390066168667791521711232324268873123302310721887608887749328853547770387302750916463274935876143336385327258701082137977584068545268539324179280414347043893735195002560076852259883728143407018991909135418108579440926448409165721787491042935398654055709935072549977856223610456825823091024792738578605373903092494920758265703858310586109750304720431447262990731860125546355696953609498058583615616473183937745824239994154401787989618749430962942364705782823963545278483370834476603651154152514926004176407471349330654594075667446790546995744816630634535534024550714748715972560686819398494842681830770241072100062827900787332800355905811420559711406701742974916098524612574809703628036880688035491055373707837793786621566265363935831859547619191882261728624674394840099634295171947073245590077266084681380398886580436848189118109354158127366406563007914815147850611160702249432280269248899644121346693020657495925737274096833603634916428863863420252663618614153560762628059772292485100213388978424387313189496262153587813425992139416381966316726679561214389299819011516928871470717776664559809729334787238141543835282552845308851549141520815029728092137227700616021838369884722416284221461297725025813859513739166084220704548764473733848852999382970148004999624615254285222103359010832374844928274695571811173951282332310937605535035332278593894941078042877503615582180984983850624329581979675252908792453317138459334694404397240233235615861682498690756941288776256195895139644896672688412265684561572411593811867669907034954038048745532632372983404502442526755660895366724275414397095451025999819455272150927911793637556742002308296384775244120161589254400581715849681272836587404268862050625336036553156845852489828042347013320344955860339183048838395510976476783110685723186166795758082723114985763410138645426536216581602820496191934865348274257782886281236188756742558301454554916949889783794393130301476450625553124205155044087387162757769326445062603534711656865894385464985601856515748114970653969923045061862805924189217571756684230596151426439516779690340722715481522661885738065526191114823348458300841349418235214814285314038365030994883895766376970513948485766412626827212734445338566134640993869763250348718702616898387126219324467353378673541500058028086626769222442861480513692126416635377899468061794562661487077751525318638165628961728542461816675191677066484309522947294198490468820452302437871694891852660868298162583159632474925937810798584946004574656545178656249913918502147088979167520145635604380731112980695744793581574751227805622993890285885619730805929428599431871479541007123958887677606035871702517360750660573917427292334027217306012959823177506160413610286076892482666315210360624464936259789930870867668516729361178645683011214402830210776428288080617061988206974167959053839486718267962155950987213365640386646496922199187488545632995887328271639297370223023364408259591430290402282208209134453637227759572642800871985067084024342012763262899279860386990866533033977549435322194253226594305871051983545611453159292200795837661051502540489465057563312548600019027012109812495191116921674245115768540628461044178089933762373637787213758031495075957253678578941476580498156884510617211226390628492212815686217183926928501292509360636223522614504672838167495358396237597040432259554698774637832018571108257474319907251341205215902884585273439417143051577611492161056405893511437661206696395516958161173886694443558323285265452527550750879269300333160524124773742359735958582856987827925358855741399601269524223115668129366185479355150421639700237105797130502408540811907978005722739801214852472077570699218100072379608573964479260219874539745373076704079762367293153048543724705542787917476962583330499743561348838199289562420919218513808949850007490994622852588735135845291235793621729676934432507019676359183055468681203807263500428805256362372651248087983144953581191350391405398834941503357980383627309266037909778194978350247399299311817976357385040359927136319831576754994314153772539589979795863405843058901864035154876906130235052559948723648302179427907952076592035533288639362526352589270399080755462340886963406702215220138445883807071200425894772797804846410685841939689936395669250177842671848179258446874738235420400394977813565556217195219359388515776100043928589633363347623375119417377225594470131258862174637651004660368909281913282167844147525513187189182407723700363314348751942309805082487268963026700952080919131613023533588424870502603715785024692506436276371734484477810486472276494288627380207421097384191048706071519866101973325910902868072296652140606935614874415371748148241080717366848582865906819552009167251303136584798979001537510116438212213899868910379743739536652128529966269712732709572639210794568528451275127402960520841979638701241280406974165424608772130735785451756039234304116028453289090293679096143261014564861213480604650387372495372109575114867065276532250594973657469568753007492606363886748366202818587168643642261323400760728059969784085541045625878930955476572770056572458929541502342690995349774650254463280581974770867396400201293409054547729096705210096192212794581787910507054361770033898582363249107625363525116380320588871230601348818073155345481938616616972375853193963265410384209438379739606388938283742388002546965496130896014473706873403822267382388272479148040092092881348576619828717451082487217313321607206303329707085758412668164688131974747524346975580591106199828682022686756377236887347003571772946301080800609952732255698531492797990069131734745446542953730575273551123572118029416943054837132228104725563408004641477798829697049044777960336928349287952549532269238214858907083211742652095074655774499271604158823713604413749609154943344499319808873684638315497484706868666387310016311548304870057786878069718072944830101481376289453172031098442746082582667310187483774623632714354956446009643770880642057493684982450297910992153037843819177274655776980238301626119558437854856445855140307534391092517633584629787681538680511176321261046471815971797343470640844815307751639017091858068057278130054860480529591484721701568691864071418808825007426288222081106042353206543682505998944886492123869186435469502416554349396673307515698277088856480918472281271317315596703218730725510140075029939014059025654519477556588393584664733300577237271276806998489501115208759612399537482069651487659763284728251753080858261175753741316293323535765465290540930972998514291692656605305574954767306024364694793372112036434278770175589707415675247127921032109138094022541627243245633477119450667762361687645162867172063348275860274032668602560776917741494335204745240675598076674008849628712771618722305684986154979182184479240519835585375609303547665981559049576617376434012633539122194451672198645547225449581548551371885217196570530923182912286775059089105106861562068358027473044019460688484214810107990490482686354872113673099907100340026928930292908534128181311070023594923348033435644748074014951530152755169507855728090468175106293127010857782389092968962735922709964413993566909025365333362561849289681166232967871433247886849410427986558190995026283510813855329272293893449938827036325588871796660495052604002957862413439195416795412674119587684679651396624397380574425778045848930207235305029731626665335385667993895161127730299996863141303770252527156137737358343897284115899562526584294217782273008948504963994822576912004857705174405140415883914454243467614432904713373083534567769712554500962158131365848041411233381472872176494445466321104487377059122929692040386321959342006957591977970375380764344865462710716680291605311355745152275938202869247224383433585525220490149421070240519454980959374405100268956695379400561559520682650629481657121174454642544163849176228106954885591516664865665355429956632892540120078060916055850276415358344049930168285233393528074366897845007806239435959182600450081833189165599192041937367039029313015472332104287889062923733693892291576581749850582171564844109190043577547996960566368203586750028510563712699548300108797235867978951203007025473184731814782497016567276528296559827689844058959614343699363276419122442064001103057467936668178036607149600123558708329240108198247800069575429867859075976030642111080400766151906612020687123751622002164472719144845023527983058917872132072168782822286383145640544998081908588482339790123073956443759433505756775674094697689753079494799956996632777103412589594390601646838483567869783104843319611438666965683874363015962985968917357475735683754849472916594994724619999674563328673944750577402376375874530801050611867887038767937239738078747374231012378820081717312390787337175883386318103405227315138854539031544246719922536897419667216295706519484537708348994268813249485628089644008579864727842141682252569325323453748019516473075782372519602729513447447898996571308301260531384640232058447241335581530098505353508181014358219312556331202860628602434602336602835146284257816132841126734548699755095947018707915535223056403411908606996226563246914188482209924200306199230098924765490858465699537124822514484362767208143530241804622796341083295288145238919243536049020856527209363481243302897830642567185307122252459505749475396491129926607498567840288415917968347340999275707326175520649822708233539163222006197810260835574431224184713217105223240777109210224919780143427600490615142317721879496502587535455608568843461694559420040807110614016825937451035635247655349820875142388925670080760292745126585019904549821496694021838455500031637481977763431886680423803185215990481780866223773366044310380571698352022676588227778223589546918912094950209128986811113321679499976465244417522596377312592971320416696933348220237313449753493741113308513516021633975503614363250738659168316812887715153512163960385498930779626232802143463200969838797761391444099277521280954812409414780365530155503251611220313134170382245114865004584951533731594832421178652683936855502856488720261408843983676739654268397086620697035639688970076660049335259950138346241751932692301592871421295119813024106469162352368054876699320772219919306268290858169775467182311030692382312350520578147318983573094196890779141238681755305477816821713862226047031545954828875425813226754052602366557805727686869033389638000377109875473641602598266010269352669356928071887351079105518743972069918420153117767422568727941109078143820183103736914181176124035387239751087382572598813781417704652866686040633388716523318460435328095982506674040694174247671094751609565920589307309744323604316172407502830666447717404731642987498173942264108801968110423256472244386764649770815187527369288024158153577674740659213383063110309550466712741856438290273969687000560609480044358160945545620991548395120685169528820380292202963583363214084736977111284896081520653180137440330328977532449567687470082750481926061788824604071016700775645921061204908798077647813420406382440019753039997034249495093007699411495340505123316329737812707627455057546306984384452193750744325028031281007743031479924988729170739264611446848162520159281551113999683321892604621536175472934793737468412286020763532209009915093269644356457024687307896185762049968656841700784703341101399558861724413376631681341266489166205158495332240047261452021286686206427399464219286719695213777337084393015218525345230492165079862789217344098841492382406444990167727112264670247961062505427994297428582582161629524347317700826013865684080191348040935884610426844135848790707959372238088883514824337338242455874809089827416628419406464184237007608738036793325921635521250999636050185995041893324878581843024086206896749136756215015606986811788047931390937397209962765053032776713094119681607868593296922444646548386872877742153015610334552476517904323572517787333239647377981991827319512873406034119375879503460175103774523848815972062310583550886202960753661074118125443788879843387934131976715112896428927574361100069254351538698755271417443883230073133970862389043667654468509701376050530148378129099051093900357901672007217614516531240945726687365856483755230782196676241762675988883112073244496107061726417230676407771338441807723030515886706394620138535357386237621232919545664730692471287550577225454377543538692241980327461109450422340921085627086558077549991368810318795772573553081259880073389170914888363261738058355831254138320227217561078153903847451554983053910178534566931887468336180935177643285078142082283691173740703915264209823549741077807016256434864178985515672268523332505092518904360708311868603664438888509470354352250745540153247392478792144836474659209342793196905005643450262815654873478425733521568654595615194580951131045850524204302297795052692509375817315795919216088385312816738259020165586459126054707176337738492336552344561646717503260460489072711241089636152251612480613182224742159323053436045746495521992395947721645189634085179884463869319385150544609764653592840459031024978312140939609684707336714388312789958595822990840954595531377787814425025257235430072159204857612930150327693019148481081984210771609086507947160932384103579387847644629289862325678809112946634220861416436202244405196270427746439367077485707963809426800014962220076750110992469547092474534434802155957153640159993027197989095579821265430871318789015636361888185952731509398488302589624511365029946378830024681649949069633813787377251402273375415678109563569559795514813173822147365357982795666395119209976216978747936494908291909819686615587400273092768599411218105286877372429909305788514931015780739962749423818098236559321879901784153496404535716542493605079312245730060136749526326534440509402052303563420361033783804245775684511244832374273641445196045878767063820947160061013789975564439803030906662857776562122496353991131327777236303599944650821220153527293975986657885094406656190908292954061489227192976522454207331066850833809073767624562119521103107976406548584405970703424558418487143289314734897555648738082637273291445441643917895651951522577699951619308242933749916770018860270023624395413608574537107280244858101361958717123618361858141026457096201860936586321923524765720635203539911690605043698310800840275180128028797435081042438115043701321857422010650579244219429160692033812382818480639512459986411792854737984287215472288043319828692312032557446988551866554747846315629011131578627621000654718701430828757868759031386162970552974531176662775485628055835786618049291974791988006371104826593561627534748026180356032656178908015951485699671525506881294559657981634431577464884841197312566617609387499987312157574867028412889442845053898820088793482056241577446290813693859005534143685077210246614607045844922604869242057909780616862959807873806079113330595604264473422217738776908978777538946359251639652626584071841050627768606661753771258177231175869518131004894175368113399977321555602848759374616530024124989167328588006339912722768978444313816939959753170100277933063856307297363966454482992929897946994928756525359238672508701051524731117265271816043785968960118133703286566743167350919059108332323045442922349321400111305282175384085077099715984010866311894927758356819101296667563586719362109855330954272097935905700815745791062863784387123422734237722656861433939281953481735188915187996542488324498734711877023868816965269573514597486647721590910504309381478864088117240138120646780163684934732150761729379192953373649505808142646971099895025021118978089713208418463856930934870445311097284555208991247885842899322644509364909903173469102591024624580382608005829000242650900856271408545982171438814967396150896560465340984271247447141269212488233177815804829144988218250772571214908381046236475997645875422184796666407996229948003396571766814160755007503905231483760643912795944325651695189742856262737147539653493804823270848563082525085441661628129785152134544733612320219817864586885897004192791425450069878010138739131418146635478842938368606334724825127877646457510172699290356567038375861095897306403484899609256392510971235572511457485205685449350939616178546333490846031260472638343780568231384737696884662347872550902991791827591211252151966994818253124385776440893475644918279967081992498132451681014538053966501721323951062131784913263433518928811504236497865948608667972724807572545731424489988805276566814946081774619276493446256923657142899783614682994770685015877832009632118688956465793765233213382927928541083309900749539290618366623181075862526059150454406026245192009209570923285167132712919378695139259703967179233334878811250105866142619766322693957040949175253500560495910706579020896380900225320265124076321502733083881148943060635560418575129472305486831079440491890380746318474410973013617265057072853863974827654535299270744105405657395427398949876940928513886365622589949963202429501478247590197739599765439295193146988539262330336883395154087058524940326984699038233076399636630308359031914200462880457815187716385822938297354513196435597468546946625312150995809742483149161299712263935095772419807272569986282231782451922927264669161552086508790064022144821350069398712917400310205394670279738368817434247479387026293207038193223190105611049897233131914879529535669318037912424842657723363033362506103768344930974955621655894818010592153691522402542275021463316853771015151236704396201345932815358397813803773455983349685525278046294598651724357294801594623556591364926507364659891184864421682193222759309499644221482231015529723642918698122722755201646426852661204825184342912435663204208773474101043849344266412023883884216737381508443637169156854459032834721386494868647490778257288304231979687733533599223421548161247364279213846529512767626681798991245956394357647419205244944882773888885879514855417873793411879465049154645473825651017001674803606369188233984079894222132151660982229583214805715579198501867986526659821988504335360072525394084889632195332411058259322495958179731335018134284412388046264782767905363258152568670374301297763499569834203455541993879179361473122530807080875268622509387425293501249016254149799309184629183756303551505913868165590651784368152570553737307687854914982720326817146725384884458086259610060718130323361003679677062104876325852140500024737432773034833699260799959271274592614600362363927893314133931582946771708301833360061636996039184827764591358252979121298816217061887962514843574957795476006027127047232912382893035295316833901424993593816730968594433782302475360757531317942552397229551266722233201839106595764852445328618575946835828949743620502239254271695507957156417197645579326241079220625048621285898670964147613328908679826823767046126866968249259986427353180912368396903305453745886932107479454339682130750382437951999927210546235306198861916439454307709669962346778429291443524371048810237044733413787268284885996754468171832502555525253797443494660403354946754936425154078285595599362492439663814092110589164928694270254248868807636253490370499413291055510542593717325806052927053066559149227514295084091879936060357623630889143946039361807079064541578666949978833940883494062343852677224892813003095614255880383784623052533735058359128200981619994081655466772747141706633322890471896141245947381032548481843686638241224525718890749638104335794050909527629625733457418831077752572190624597782237927256975546329451196859643701043821647650885580809457190972574724781356081675194592037453115007843945335062912711277821826599757017545456323473970409070058727304678007714501537580988290481061705118477151567679761069868633092986064195168231129755277800676035483720250659283069788120415771347568246431630945233464157508117596247992888846575676155829426815265908373236909564894447078726227235104992909345091779909021002210577811741197034850355754507222820598616439749791405175603557242573342476190358203752572453119174003614500921086514626802915693130944331932289023019631889390944513829914462531046602998316310202767992933014503753307806612895430663386329244440722858107358940298742741411536580881386368253376314102696844346818325996562634252674860570623335390433269246368379929607452886190999569964898863834191706102766715287384163514866941663591019681211307268050079189796586847739796373484649565287706127248625410901936122933589926490065706187621896449245449256900298805531348129314242743269322139529488740176965677766675875329716800177968160093516080386087683446462319430621991278240783348756889110119535646937461517114519940132769573741047066369629563062919153585373242261211703253044545605702301894919392659437451015609591617537180380677898523063954285171692524395762350907540976998551240449122476617612623728558065938864672451224488773931906410846253188370363983566815696246142834209873882966798085851433341936534616299006068273411293898727054901632495256028172959924110897332109465577765185319609113781640875075199298286012506364038471207312777503668199833389624851470078913569027088709537431384224302304053860579241222602996892305409606325744639121344911585685094326297205967398886461955388219993181046445004719692121832634298584212790524807034652286003293891674947418384161318108196889648319407179996130863902621135732041088566836065586962460683605981726603493663256580376347477131602054507467981068572854982011055620643723496581505535586560724062083109315489838110219282583911771177687624400254438212537775071925895305380225482981415044725384607311608974092139672418197255507827395842826088131972183815664977605955205292000947799576820551175436183066485616750128125284637505506525254775615793977748573806653322743888422457388926616604156665868342137279509848395292619722115172894942223132332381167513616688089793102983212180799255526260401508381355809890112135293603056991853579112245636968750814494082559720936772116300600551425097884201514499885192748386632630664629168332344929286765558193925839354276573472456059775648681200667177791251249759394127718634149310833504318450170555847247473799808165094020656902059274081648880542526685544036182629508584709293933603287139353076707863404305395184234155324784966918229890780086413736421351940994826814329074889139225271673626127136161727592724735362979295000362260697011691719016749123787791237205512547277734529828042540680760384600231391577453484341533634780508825912450336997485623410280087944817436708562318639362404386264312298014117809957139237467728469601909580987496518583470098328206214826075913126016830115812309320122795478946289235402655439045532748268197633443225834723790735633600633103287338933160553391004427255851679252568354016431433459976339012447975941243047111524015760313890714744719142812957368739461859833009495462009319804970334943457077597250702758487264687539218719183693803447613057440717376306562548084841285794724672925785691083355407353128315782052262367312737726913869266550047521715351864518171961364414779787546101940827247990052772968958883196530340223118838271158415613312398935267416130217939075313608437411086318916079346688989021830949236766778162255374663735689060619229170906903406578472291573826422280825400958919906812849194715942172648910135579030932759066233621734716200501353880908413655967513185738716756190512753298358137180342021579566514113921805699661445038373546484959950133624961966092201411856819169214266741382016619436067966519162967632744642638632994972405824739100226682124296617705769883696836870267041025901152780518319055993797029456180484791751504384809227817777948889240257396417152400802048259614438052340159511688723342528221928770131418018144713404180238208762926141658261961922228951508712495080377041515929152788810842122374522915153628118092107527589773651558621604181146249040206490467948034284056898368159002716743712520311650025704639256265961099585715985171541815686952844554819548703722559390917763281198206994986909481600222092889509185745898774521785290938524382423121158585163601189526758003245915483129441640658217042157405977311914464042115569706297189054101335375036462333280510115025335711261346527653383969530006755958371305884137104517086118507683356004736630037047988046437799670641630347608638326321939142814854883330218536682573636153827601371543976643706361608880787423320506557460171893592600027138949836482460970667939420719883932739372389405476140224565676784666516972350782145131663891368277224090619038959551101840020123218437016963784508009798463326598935865434486253542392708938744473360182019822971954747158002983707883135618849067758372685722275805289950275850609931820123978877175006934182321834130584839991032743847166006426488287433596902005464334980371688957441632685226858199981759494214264435080631114061441356656921031418776563169894978716878584703951106480193597779208668407012902485504406321207314046354533332532460554273283793374493906185683511809550970244680385394621530595986397043292691830970969373885996116632680307387153917898240697254917779694302781325082485384353280607704593154519029805584535286170698789716955165777559207013772945094142429258308403229840084973473573834108163752783039330524619167594935641056450871188492466500231413515182959424229968251024228626675168636281633864681988140500958711950721614088822832529502560573413865231926479680622855434037520816431654203438664132633943350200037461490501522281554798398107562822607509221810917173202487925781699485824028795702454207167479463306360249210465512709600246543735274904807477781926226922214484690126413063430912274309753492497081204371012735613859190430673449212772454422798324997243858314641113548615347645138515319530753628493549816300853243971674673111434388621775023371925857311968091373263957696018224834657490608221667433862641294730807789568831677318995143247308078846073846110634716090998344692153326030840124974062437029307141325271489992644018291552726785467464544792905150760881296632914141403682940140687323490472325716412223286629553744429870592604915110004326371997252304018363706583702304962403895028529378753792165035081328729404738247187900498452519632958395005143475691156527250822349321128810105472554751829875506443541551468328695851596682062084513375131070328729763609383450661667139821355318799343101977504463757545409775167146523211777588846559169476856566878673975840404575030635843604917678793093329052911874876930644004355262442217517345912181717665661232676658753274206647506027676533436404076618181240407927307039510400615517384892992532089634174036733205937369465304512438571867077273896450801631069966898645989550193105642387158926068924069192116838689751309211318621570452044302151907678014598151045673391003791711455609168473977812515640636025705044029949892429969896892306866737057737004367053889266243889312050920194905286112218092990366827620887976084087573190302891992636673582290937616891909378646769076991793443468287779530434097453110249829001874982614986543705446321039703755567130201907371144336453152976142695737500599089692174199417282681523371917882036861464022249731133748575040824742854419551167898786893483978531739066530200165164412067696396751816452742472923790960059504722481291904757573231640291238847558592712479009247931687488098894199817228617082029058740131235430025826636470297321905696179156491930612647145273342427499716869491653966770981724366895218506273942292965901095326643187349969767548972127084217954350812002687563861519349022437293445992368204188536259656928226816181079002231178666801978189527159550281793044621178444027328744573689622843605243822439162746077009415880545381746177639550551287961213513555188995916417506119554288006371454241935794822401561642955505560522698227939796993371389901928840518679873067945289395268232444880075492642801375017040918541553009280284071798961223892402910297466017678449849950647177374829704988886759902110241117139340218123204790837356449278199741234760769981591853020596075843572833354105302051358830002259068393842350817556537447844700721695558441512888306911872655920000963536022704118012823031413085088538782678359334095276533493989081465887463954747357104895310120233570554994679026680827902549096345243375355951171233387171721530664659943274884369466935283480921158008146197220606108714023597926039048465753378972569327622931446077895294199556586758258846045780126230405812076646043245669303876091667158576040817201858635403478924256638912924745678774700920242471282834895098554921692316434611874824300426168224203970104940241540063111003553240382866084584293035673733621391349214575516095664090425335324569019461270353596410181449392232101254268856769763446013471641986596592460808047579906199081379302833425151243570178080228047896716468202785571874876677366194757880460516861698735300218107837230265899025839227261961139027781936056257784555776135043671284241406015841391295545991617134974015253670152817905870112292450482546923166567743362419781487395404430423136380049148260688872318668287403908328330462367583793814939200158147059585662672093631191366722591930282421352296698491148788814775260821057040043991546520604565882336812538363283920505200764869973605871282814400275339829839778843856233956054812948279727361147894165297504257148494898505672212448043136529367110016237041160865894986761833321316842370626521209270409246954839817483300132367482801114090039921886947746817088290658772337331182877868044423708001573255510146287655170390247068208997679190911511661021672457986707194631285800063174469237459731440057265841497255451299278389519648761582558617308919530597477913318397589859724184989231260931303353554626202604066982638122757141222970337404224409095763062607715202392963409921221084259058756301769133114011200419915029268278969186885233887595744862449159280048993835223413442696089624226697427337873542720541417023497590008931735090544062929563183251886494212141119690699383569999805964733996888455772547816361393730577277298495390395213882137809130092941477494729277247191737578966637316205953480285155011393921907317516248940693926138141037525239098437643442293419638716310143088208327509874105001537795340626673240483408925693347915664806102282028900167812235420895841972660161138415003935487767596470464690977122655439629778912416775529349410307212786335195204508049718597730427365285505501654165010661562736253823706515145240649765273828560155698637878444633267068702914793574345786984768480395216840668084872194467124125039607238459515319577211210067804690388126790029325625732656991094091086823733337004768159134304097217317689334075425901305703315858170938654672289110754329104163460877435685681285957259383560792868001807579103769400938327242667893209866895792125789036454394669609836515939567982725431028278567025848946615891283669435384323242755934398431116727502395676380370617654843018171963558556408668157809247513663559465836984615184609148522313041082020611619294133488385752759394311651568350221126229841897926973398399944383545622761797679568237791311769861384455846209497129067562692052246390193866117497686483370996802147485729007057931447632240636214032401657526169193656699490675157962533938983944154141897308456675755216627346191562793861875848018738649850867819393579723382381047531286534030573713564618802294720158398441915101507093488032782114827160821062173808948136662562042158407115753277132565417990748238364826062615926941164657019379004299194918795449377648053087386200535422611491463565761786046143509526333321289900447708179219598175286211512103222563192972914272304520085091439348859274448086460554016569599325052629849901623795567740984224963074529117889541732926879697884525327129770085708397202519224673100381675757255390115512561846901541097077184276050025256410135364763667663391497202234073446987330272889212391266014331874409702752860281068268981631987737569547086613245820989974598995633890358245203474041240465526836889220809860389297150620275732219029062314143531223198938389306769061736569489995915504541370516965332103229675930979613169959766435391848274087955464188950893358686476018538635588254358289427518170789549934719330680309158376942410234852689126600489806428205191849963222691087585726961368270381098659660159689346447046417267280396288840948908147709876510798873466705225174758157195596601330328506017430762639820741191864351730316072468700347574420296575480270566168980864701091390971346945649447202762083253841544240511345178274221363099361052894622594589488089933235302152633988450530805979418344372822915255151842478660455992264073205062578786681145632821275360912482234125300547905464330600325894359030435252427191347894343722656924985368377496493903898521784896852935554161312638462271837570024596806087010783215550241611056572354291770398920673365527897482342392180864284854495919136528419661919432294020036306125354007598546238514801649301319835622227810876748296504423937230758178621531226096231086594156065666336207981725825568048977462940131823892680756798403531836398702505579112564923170112110018444161609466476246099103713028395494251013008218307470607688221452172136749214367371272750717482368538880470968894680383649046626093441289896639611549096100601997873094252106444996769623891297106542946603840452328546627867197672062981398328724394187104543074967840748356195034548279380771712826168894049350859433262257333540284405421530846246677583125530223959222389633675425846782932957483216692019474804698643619401211439746924443529132656602544862711152439410651934717489296999607226703309946563379902154385444577808953910957089714916386906836551130663280805396207691566351295134821953828439893001794438116301487542926156066951130006195336364008834730235286719910365635350051779111484781416010988604049075892783849419726347751527151863081081689625284575708389092625395741076816750604652075342613432247580577073631455880960416231175520877307628320033424707874255627343210207862800765919742550814120624247950203331144918630337087503732783853127741938686106012767944687322194226539267389518246421917921626146004775618110711973318729483600604011871203516146025495650908074242387343145105041841958754808192528977338941167533752458701321996594927028742534946382602417532189434108171997392676146288629496723726756834721046287485688768014321458641686115545658451373952744212134362087156982909940248036483363261854953501938065047104125184708866892427529621102510488954479946325739420930784260025972011919881887566572659101575596190933754998247174781547416556516738669094984927478910270882385882063536819491779832452833061852377791281712680415803737148234065568192487995077569874555983782655013912281773725691718785051162450803968072664273126886995201045473081120612835677605699952357282627579200801180787500662374253975819345220660621502792831664382395686160058870938665739509911604359199316808734975731748250626404573903801834437195224510013587006697360248750630215816734947656212544401768598944358028923530303788150964082904069267720007296611982253887660788477202571688264275755375010397273927675252362159871596111335365494339039190181039401003952499206049965917161187572921844461699533020449547377323461255221165148919375695294943061366684939593418768407906430881092522336896355839868822371344064879733668186615682378349617042783384522224813205042070241471258664542796457162865726657507967736861528522630176760123976785210369892894651063965609086630457072735397420008023769517754365727181746022010227125582421582524587133307995147145806945954634692908163368522841291325291851812677013636720464590582781708834696169428925049135593253546615242442327426020688359509723212171527362174646869219093256185191842920985063552814470781837475494571628256303696072487871082621365057763368154381449093905365904340120820605490384781035801894823337943213014455926785798889378711969867736696496886024535773431825511187042496383629635060888035543084873886096166631120519811055505934284894593964410600988211533942115872834765259712938218927267973548698957997326176214300466795165033849768053828103868173189828178252823175841326600993064602264795388160404338866082731075371069088940201376328096957057705821112900318967790822646489079307750765569505239512626337621369239693020747621721711549149642008670057365153928618378168960281372741996771254915874440841998430469139635324472564996933357071338175208288802162651536415660525372292372427566800291731556988845259425979927794067823300908679710108579228515233043155782277989502245669613388602606168323587305113200460933473116719576573643940888120751139055017271992388682686643787369640313275223738162398110386713198825890827146805280824234050335496152911591910904163290835088107995454316904022535154615943661936557741693904889130404979281417131758087384660234524559852172743205689697793661250082205432078423609804163746687621073509590666032422508951037899073039645333979954496974140672073876043381571948504420314670641560388365273866976957218507189526617849841031215627341089606061678019940039375487837397975740954700870661561961530279482577566034985280888437094464841643361212030733742964480870302150050891030121630353006396765501972961732340203209536161585073026427973168291001172298577088619263543847752497961664820871261909298947429533506744944850937918697623994406768141269848757309089741994493069075015523666818599694533011032410976709233815560211962669780434959970172595177563178221788173472445815316167055888152165308106906872379236412826606049207554562985318533158761643977399472153406082375676594495459963307117150479741860693724796878117443261465925488628918733199494007132491770647040656463694904185919100318612955568451189290673404280711335074044742533501811927692787521347559979830510282314674843579985619130163109102966131720911315051260356686304494613784644417470962569597858110706580845548347089892116359431975201585232921241146439022801415320416038899324768439549166562671496661076454730004146628028585207478267215176537521860656343275102124285680521507082758975344048721893082741451369826484711552193735717114277649258140821496512657119547354982323692090915527366360989280766869013748473596058503954355714941971721704958504238985846569846976784313375521043579834087597444401477837265631169413257643980691767123810428007023238870572181508696332267991591878856192786421507874658124497588831977534388031679005453698874543164938871983583200334663601143333116256608871858805362996555934851891899324296431470141221595023612083261049782539914536538842820260799576550909096159252813853094412432142995447323481706852957908427706959194603925196250822300970096192180175342667945015810755246060020288182709373614037470501985261093409087966430505682527499250754540805973044865874951330164350016673596593989830908088140254838885825423112143618541703073373128479325455160714479393654824963843185257594966824379284269964452391064463402756459367814405312474087277485893490331884126046396640567507386546498175004742320369978676937898231653183638745002987198025591893279976134976907563116968179426773400872582793977614845290236406906332503638683134369181328906572973041200182677551358384443153503327749437570485576703593233848830711293150336290198998193982863009757437091536259816981318740095426181255968339841891931823174206749984624634031850540958813511687728513636887429308124020527388126623761817614407452094829661719846130488730119724934828515346301372478584200312977595538847586944263217377089162395140994038088686255964331676706603399136543383829324010285470200567311795322389929199203139052575022445216471448496677691464609752926104270177254744332228282667937244834422687247900593264727886714922433704909783056723536791746306721649488255052339744092649026404382749498614810565871435205625190563136892764560828438746255939095078154202670142856212960172501381167458659365458874844419158488960321240855286131837041217531576218718997838107283516390313090655631810624913158745130445490185564166812370832858699022711894681373505553081863730707594138881278415349117674476698422314814457741131116080331611111519044303811785987408914540810255927412696164391853441450128924441520036415701519955947714146408526479332023117538306980077097125434404620030997500065220013463655833325965357461134131990393546293713075901305808586842239901967540165847309782198210493618224107630789691303000773981046363473868225015091544922414286682605714491935561164442190936656403696614367095344004448269082066945052090835397999496210994384193680605063763702171454150298973754982288742601787474446455831768477424066691032147177666455436520048983283178243633605039685172111210054303836340798602504249587517634409822219966752241783490242029314900657649480014340062482408040458665370715978512022015971125804279205894829231190542868299508749816256632009903921171861802194495052919534810521073461349213387484528459041689840566690055632803521808208180464173534073244571737502308366952006163097469486057550839361581392637330148179515259346540211573922659184233939367776298509453321990794949933189365112345010595238193874609356275949475667709938451032415131821492078935624905633405681286329644696099957027253252598232370461997532803179708983052699259729969643854545440590661255381797338143317299589645795231422108717075391123212444851685296794939379860848437442537614502223840153830649237180225341203610318130531185536102698596871376885636133950101953652267186602620971466532242232753124700773899225792897997992716393179872288175555996193992512425169224082218609843579155242895597385206177571461888337511670412993360077527178199091327097491910195780509503063894337132410171866929670931978043592223001588138739845741907413521859865603509839553480519212982168691515453597284922735953553764106563880398390578746786312635763064224915549421161240873417855511972595341521205729319383124542009895102390359085026798942128362819498094486467821698103311497864327240687003260618820026666046906207211783118355424160796813830321615656593212232249327423575632859894689400038049726521053354445940649324922718094569690273478778959965080260025589261919303626958686082697119369652565500264891786573946200490478529026191644854195220238554549903022652890038193084784232632307290749036907650820911114659309721691137289621767528513728248353396038896144635664307588906968026000043596157801274037024448196992341477405534103425880359662057532250591474552943219834178630760655733081011035084325120325339132169295378325971942272264686808125385189083085706487109069957795599781555656626488987724819552544542136902435665421772277885939767048809614960806600632555151565477781407926723328404329722251125716350875156449101632205548699160235110523149193432247570175553456078051671134674780443279249648414990664051801344450404678994081672455470435381507552838530992477130690246066236443890905475730295283645202057185988313648000284529879961804658202731202913868027087051200141959923433662704976975123140713830304052737446896854015083621870398802901203491077519817244626249138030820739187789791819375448741602672308031939075623364622896609194745053184417442801127511420566109816788522744042474990747912095428889409296188654532907984561656742149132828140074400902475479887110993155755939810748652756875810270536678992153011273600719507638889104767834539081407757969918883867693174550579257214659177161899563113294445391940245357860554875018676517483113280093740582260872918079423688214014100155236724376634239638333369112997599133546518516480033636067646112479395276770118808337807277280355167336409796270575574539021100322408860923059396239093761282702531761796628515091437740081095931543424471903894176023969862265666262385198407375422566158973682766622476557874362559397825286668035124482659263465002987899495547206120802564171904032955531105817621131938674010485960513997999849541194310120100204635280139010361969127009241088636724719760361965581066886263417985948291928756831066879808617339874835505938827816641200058082860771090503948261569889056550885386999615895440586715235473641514907606940028453586398338194940922234550771011965608211245248152141073869408724905697955371019511100755715548452065959707276342381622378833506580575481280846801170039609978729720829814735182820925161423176259021117580593908805533506419023056944351918489495836767916189603503959629288126684865168669986817845338053415260765829761395095276357571184647728031914187423349609521611042149861884437320908264272956733732009676681225333662349851295992113099796138705002817416693749380286537397172895323634243599993566781733803133082495468860985079038933726976804053106214034479390673560455091705200941331685263977876846091345395979671240927451224588159226812858608059406258660101523843580688047263714216660911594561850325795907850912854358627512930241076433622848742013456006889284416053822952247427603473310215044182752614470242904774036461484995585759951957082009210493128973728693792082388274556567402443768944744406749942051168052272947233438322566373317834119881157293693056264583928301669154795481898556513154651902700029050161497683670010803034492895461377486327153121765622207854403030447527307656462226051757700593933734312146960952064975666781055365456175479018891103101382664030604912000456653449738208101629897255533424292996151742451723952484565256270764461722374260599002295944079695317805326376005286840921228657204982317452330459634689555597962906608077970402125580412014438783220639822150494101828646382334775005225140492317473266112681498486798168169107968012343639506583183210892635387854062883209935863373016817221870002795010279904769705087000950506957997134588969898712790270313835899428543839448227460305785637454997543371761855884892546734620711464736665620748271911583421542945801301239929231450463870628073369156153571422258421962913713201642289486224583733896409880407570225740855870798723231006790910357134470438947655294691611521352869167819767707668915973310907120642930854188562653668947486597147742687472235342530397725246073300725038462123147062931372771665460164229720523757859705624933732214079515945073334845493607599333058343613262528209010079265793928875476501003287805690151521666807501868695609857100667859257040469284815001076650588849997597827933961564230339510706412406053231746370980552053370709094050218323085021822326712983980853083745297064856057424551524195202650702342644470255270369991756352531274194785508166624958205183390797561655435163655516711581597919431820269163918305798316840095850033069042589358255855326672799676152105846323172224518943167123140526038457905971876149838636602567985391378472953076757371564959968000905316150664290829931906109273404657290699562403645600116278937213917324016892696716516852633033778977210285469831310963318323620379934958319704765351968579898508980135699943352199549620534155143634301081304466806116343973198921494006470079551066834506458460847613166958121528828619539322568895966915975566300521520118065141145474228349211548568118988074251863415215942723020767990651288377724792240722787998478019747483257310252220749733744695383243710796089853491076989824630391399397387158543776667258471134211319358593149568925723182755216219183241480042072517931874910926896241541305491792487915655119857851294294926560171995195289879798462761145305147931489054987129970625395348301788186379198383009766709605762595936270705442558815038213277701069840295882327807632016678963920124516884342539515359787100278241873143520082840648209551910502046779263521384847731109133263907834573658152241827835615068004102371582391790858970206085544319401075517154249457807535212930545670997036165263873114357539632340414470569092458093945684248465674270451790360277840072835828280966472114790217236570194888722406168181451855431710079884092933050007770297531866854283800805048193265546999427408069165370704651971803469989235158017791398979646292470093790876649975787911135243968112525026559305083840029666600417575532392648471189353666717068441419494395449388658635714521238530714265818509790236510468802434452226948632277705629242948817903907647887230635454904829753557097181970785938566169243967396349928358106548844395931800832621878677452772223400844408871444848583094287137935766250660068752141435417387453815385862685208280278758908404903074499362695900527195364738116245731568509360573121006267092742452902887953050460581153870447071619633050699736697787314157021519004588429639737489187439879667146830967644421332120846638800726513359835928969930605998576549544495431054336546454323317850726772094107759548362425853863102238879102121486714711200430950049086441927668170545552415316114947481687072920949109768845979362378819419719257411202268921232519004580922052953144887483929279776791095105322999857199478714711393865168782507622217499920457284161343037417509870337053920376998582803103586138537325604799996807297023419096369400779792764041695022963292596538347205460923114198030520180715068709348667672043990715420649357606435836636059249235075797234159296547928775194618725034201806678691538709090334907898009191683380086284486337953042317009986733494491964329348562661196834544666636891006708385860701215368476832951307877321176128439797450036628658866110361700402300365072020132672207930459695548871236581711033883311517095728205097102553009445185029860240388815642433083427252483260511853925829094750378073489801418959708006412473854352839862902143851243777889643808876773742782538054528641173265802418679208014852352598275553849288251479759612384638309040700630676778870957811703851963692971491540098411468173187649855841015689683231169214990943264165538379070876948567053295622064220687751700214675296031695808755847147520553085709914226651052985201118585219187701890478783641978726912422642423655177016119625016018931967846906244841270657077114959625104153227916527682641466524532737824525506262158116410342894205680155440935222468203655389300706824093692488652041730496959593870801240014513693605113948330433015299474896454886505820552813811991060126773919700979489324866606812385504200999909254285734056114832383153495432034867632998086240144657621252278745640497828408489994631808757297655146542268423523035436376301525182558956795543364748611284230587166608708947028814027156797963616732028870568754102169634639653884596632395288797134846393560912827767185277400253787480022837073711565693800456797182371044225091615153396272406083905059863217273302321253862782946509197345069413491008755630011568459059704066106280359059073172034858020558553546967128737167914162777129382710825490102721778554288256400305757574814816194688314710764829270563293092556740102293519890418334171796011086804440495480713988358378339587595244074076327497067896097598665104958577814589446713555198258721547628753104528078936153090248457963635422803170472799482388584658520736391495315708409503019878246344407736875792135062817387687448593402667283168411014428220032715018937882761984746829250520007926820858353918658867781059846291935136192926794867230671749145025331660618386524217436591434573233875609864363564595262750094495154347798726286692573971689205083856857196021687979150742423415245854382863353626337512674845445399350042695488300530301301889995843278963476162389570868132024484624659799241814034195486949234909108909027201674215496782225529539321280136391018186247757578449001517326091750020110144536764155660028238260848844223288161095105215193887986149569018682595306165263074475139862881199224822107643623270227716955668996696186849792628049586534426587684412011051629319029211081697279154414627059185108320062430085766241857640420326474525057331249188746648256564758613065843970646704080331419221270982732007316194309365476490143934615526211473559418036181721954286096375235926136335480527013642425290199952289875936325724287493526617927448665934174714540445424178346774281843433543182620809623448238973937893368034425432288424749204013933696511650800720084551965053005622081102769248792013395010239408001464734773388398819603247502314957961153277826827028362841409570161680250603743746304346214279715373836737545642141799859397507336193732650742613840139784894362442116689104644941283199087743410743629411842693214368850478347863153774860993806708737593721886710621173371048579252027298115935474035149693024026060843289199097669812105974774081674158160240285284164888344837126191101754466837195540760598873419016465376707702803633613281376611808160925636543867540757282319443303289259737014248426231342574955173974577288202555711129714955783708200648299757954107789720333949097296799299358899681982894352923769953017772759938148239510900016221497287155805806341500018431745241318782096977763426431882380849524873223482664893454713135872818672306688890282816558663362622614477026402622051818202554314956578053117800208174942652493367317402353577033144925317967088805683679453874054413566956297770851862903113532438672175423822661518564373276149716927378379185774031878970074992108256055129486882188538059332251912869403943005605578437378863055283578088982657808726075698805397142506674942103941789771073529141250788491168076756846075903683709941509905922027374357451687192843024077689462048945929164925865185966749530812888487814648590586634918696574827726904938812389782212456007328493695525291069017589276161273204968296731914067536770091713534886687991228477738406472648624505120094797296856636118826819355021551382541025340778049011238877430792927816834428591133076508897253514108332234707597827637064037973738705541324733288371780806655828901198537492021252261823211748064292458155669547400113010000422312553913067221243358640216498894288492030301682593845536216220078988664574776150278493969840350129788433918381705243782408974503074550465774633486332940234747084804564289924613355401362342488053460316855280321414165353196532825599127279122959872873485673109576663169094317636956427182294210770600853637101158770831217321242519051487664896957427438608235476209196708305530985204012127782892879762260058434764987002795663098687418238576427779978295646929103462062051495116268552199355765875469512325942877029931366344978362818412764463546373228898258848890896346780996051714679883893199898750099316185282173226009939847230689036208475925299985107843266154490358816762651638517367885948615949377100708703009209560739418278960494129649764129322321221842264780261623217741438090867382640446223087697426872636896502027312746985546003042540733025026159328105709216825793491735910663223951873968052619880100816855721845819047068945617477516506291533926264511224667025873221441387373024276285919231426471963321427234528465874932719025569730155766147938005226723427422189427957160981615937171246283797353977978556848372028774678250218418585549847590354924652490712136229723584095289267030666207487456777608872663911816079296718098127659341460184614592504163262019646750830044511733550984110260083122491281102495202007137129138427330717730772494927979689081854917748174017694859731405812389671716893738776654636997528829381704610152376217989224288289976437148507615404929964020891427364150744228180527946851499858078435286814869463872967551520789604011667459534528867784367388843648821837103363051556972295587753629648846785839496499778646217871534244935898329811245778902191964757058966604820204801412529617120738623733816751786459449632095051964631642007849481844459421954450312020421708371562637763117204103875693506991669954200345566233137551184658887873800805168239029505746678030485522183305630544269037898206218016207280371947269268300025498308124540399400977112722932437978503934816754954556878022551153256224849973568543836000816388366768392872173797393093160033629870865166088501518395902186228608784627908913382723081226380999260693582768890553674395778603219008426897367583220740855809195834086108169938246597670594739125592412732973685954794155565723167112076554811943698622399476059913323988760918779399950633601990986907330940202405729556369671065614369154799731929837206451367767374024615629107382533329841039964184401862830703605494925358955155757228016329715348777959649963631564285630237912110853744998959862725675722701039402395523891155764219868176322406833137707353186065921296584803534870529209382516004753466673024017026660344873764062022063606829085066383977445704037954120202528245740776158935763375599414764265425736720578541058291938599416778134398483680915051132811229870067851531127112859054678210258191233184337844419770709308264202560601753011888928656452513694544395685948027416597379262890342040792407447558346019915538051802173703821042433169124821240815280288222472165909688816761546288780092491180389151688865656370909249099280474854499754549893938582359022149963817863649618040372438044469402526585773792690377698251361806815437512371240996590265290092280384829948883743683066746028754291242320187115009302106951238149107636651435757244541137678971713678848725324484298430917548410500323983123943074817890416857139140424615215351820373133764393403007021664992151841439490899772554967577164337776727187713706998136235104064904384226079684237119399856600264743420639256601583235403520726174480555339206624965027185854032094915332824003893755445031972413598113829507577888505258246128149380511430360695996843092582818846294257174489259896986047163669570718781374614667274531096304935381025035660194750460297226699360725054532381656949241281053561491305117146830685979250149145150539766388722257897237564300891511964151286986795960165013737595562818198915733507012523804465394801247294906302778760170803886831749876044304198878323309566599485659945060276841771198263715267755798798078891472498825113868740413750490154940654286997935876178059948568364463582826877784570366085675516522220577031375623827543156517295408102789586371907811980445010781351498395979301694102174447573800097829269125012357573060535219487900243085079828131178105356888149044945208885985656631680953547152584396926018021303489726922463941308888919722499568483103655788625488563269605694432572341196514945129887520530547918684941260748184416264296684621511542963932632505075761002222086675002763061796238394552226297294205300177947104004025747329216885016089264749055117538512457955050512858846597914510822969684544133658693373818071238620877392572092994766278081896311419332512165034038231004270018774332722949172345075998446922526343032896894272608401358630078034144351426199938177332902557421711228166674180039393968986217627535276877988714827797678756457340913199554383443015056798917526819564426108928202510779113494155974660745423488321904498658419670261910145536697448834659655552400111145628687204061891025498431818078141617222904757766955277706494738474617667353511481973035654704159894618335659900022098071913186799567535355455114900828463245796500651227998642497408658868901706581247947509835901075426359088712391921399352195496435432392783390398214957446637014100591666763929147807951150047688722035527287755095736325879642301546724252283788193643036785915225973888914050126799772589574344483725058974287562189689856433588207529905981478528626368130653304044634682969331240879780489944189130018924582943995240513125444470473502668868224679184866050738161505602443873606114851993381956150659814082476632335028497631087805682641965039405973097979005703773787703311029990586506189035300764501962219248265751529546321708127401773490553014239206841169171075883847404982525054690168435982070507275765729414317635854614656338577055776357311769623895978810889406290872743245725165091866263396391757049564870417067657338339930303418690235271225233737539648245966313739131209518181959964773629260523718332526901863554745052156638310204735133048756524434602570304190123043276494688132602402011529828875337007893426911585368815066933934375624985273179963816665462938092832700699772132410059766689615678376714698063585570895217704198577003581439447042576965234821339515896583914626208157616462270957942521971161931323625083003118403282435782607002394025635647055818644885223888255308250479253265142884215001885885376664411133162830152785886356766640643787689490910572590995550054927180912096240152248712859362957305168672285374141741883446363390964518138596787864502438343494342241326810086928876458601628270653883211104326000882560541170835184909918607735795190999688296778374388677805088826817408287203429918250477809640534993552087774418021646567184937606464867484190665437854204514861932311247999754598460730562722217012655408545047678561323295272924219077184231697302199018637668432611918463742042975493307869159894096456064344321139334488876338520696858032231385659482008076883382541515766487095462430682141999119026333886653714317219698119197983496373225442278716054476379206155272130004281360327172976412585939473417903267235371699898613834947292016950356194159145347044847996404796162924950628025391942390691941559126071174411746092378754347095095681903261886495167977022594776415670083307994669383716349036785979899786172793445075488422520085619121419890341049890263938032104468717191061418363325848031850331227934630078529380721265528530528070046924594054581928370377184725395576350754816379274948024282044307097838631088401320514001282618217776045020811892842144318321418630943091159090847403274727339025005360605698430080670349221207952666061744775707458353922786354141209299129957147650951201380067684845127071100190379767752048072726964221084339314233944808108469166302387961052675255001426154293987083059081573197555040249183723889709359641283695387066173463127189464916252569127445025988615307147727891805842320726799482405126918519502746976798600839802290441153963624432580521137604049297074472155334993243360360744958688198907331938979647643895963783941845513435823718895163948470714802713912043012069795382587234742642450915664935087151605291458551223298707012831243981861830693818091758925075813298222299338296574987116540843051023904336813796517324798893092434676094809718420708153072863105157089249791990437770271242114163909800553433030264691619994332946638137838822952926388413761968779162367466611421844333734941440540776652587017295810722816470360206583985148483453242864758644844908925358167208253966172771906747051437527342348387876666037161068608795472315618779008520892395088708442324278229314042534811522890273259797435142763403566567921074367992254564508699252159863870290642869098837395183050079254868146848832124281185963166348573316735812687508715574846084251986725049912600204581335317524444935308680552000853306033025951434709633960374396950534329776755416949955893063915673305388306678235038631384778140323999892734644853235288871264949746606452736512280510644519239340858281436267086101372311537991112763945073415700486109228333356011678254145637745558977135051920225323855259070397117969622063780300720229562392402166852460284745345560097646587092422013610994200305229351057247641195697041458247214366570187846586905229162546212028845998563785747456847243501813223396805123072627466757778859273210971417381565817317412585085661029988460447094188017064958123288325833477316207425942265298246718493649774876130095699207216963185507590776685776180786996638622806320356796339445964732841943739607743363983739437354247513235064061823451445257902598079440939644505351363750361405935443466067526064507627823090018306152442773536171580429560046232518646241244108540581215302005795952639885460142472286508131524857337218724958695696926750011619674587312927497055125729832338142129037573669739193434098566549453164088704796859563181212837788685399595539896520254147701909692879856124101672266375047046984056713648809472126424066257512529903906149661232461118404807148830456792122638387758862057425904067961777461083097096620080909382357552174343012698058265988725342175982534314472235410413870801826853124926595608554006771452851745626591828027747227563357621124434143871471157359253139881900015744864607535058758410654965153557219080219077982705398029195153444900694616174964413621129461140911597254285281976052420111239215819772743264486274073237866984869546117260656806177652868464753088644108555764630454856980737100028661749108852555101865597964315081660621501271191220409593564266365008214488443579904098660225831498869514594102221614584079388027769819683405145616517069133718432773662602948903831809512111978814834824525179988809956455248120245802455567665971169432301932971179124296865765506838629296366020238094280989991736894270425454075211634268296919347608045122114771461890355802364526805211930698287927899626939233179390078479011349997783331077611212251682003548881983686379288542513568340925550237523983169930427913111952711301247416465329171386587730919727918583185746163988524744947838490902703986540959650789093268808855348087544494775699768677661317627746158376639743214643682982058854792865172171116774281361657175519657666423671770304068121656421257272457265901334331496714524209287035915371345208841854339791345549141998320975443719399152504918472879714917664146385254959003193832019193464654419272168071018072410932767405469042224327472413673961639794276665085856559442154901226999258716817551708647523972994590419011172499268723835302013131549614650051266941376560904860902432142423582757849459114324266562368191013701198160586839860025197675158780493241425660411512460771562248332736446796634153838283678769440275545770299520646375528829762794971269727245526380899425611486719562508450359902610959738034732267344430139832222421855521048621459423485636162933450386290581001025068884348803283701067413906133563990912799080555231567322486880672131496654059996872231371642704812323172996226183536740617496259683785292647888485762336837718708849261480141287632957174528448242771711000923719333655393667803594813190087549637686977727892840694781592341697066776284842242640539070148813839923466591927985662336302234527758884490305772602764862048100331678654491454827117925600343021673723539086183460440874518477598602586958053228436050071389910735194534523116318428165645398418706314199725140611491160761927773553992289072090915671417651608000704449829033590401653422138129543260074350446759494662572445107191890781793342399316411959859602755766651730206283116804606736990132203787155152796136048333935409827307956174937081398046451946988069563063883394243077449739982717843222798520232887050024932551917439482677047882753444066887091671978236038405680151951473644171655885328416667936159167941604206344722477489423515995852350598677015632857027484839463590799825853677983725918907164360002751510489307185171171551384368285575811640389802061253214550911353358821103661925282604813654910486413560562498772778333033739719932156937368578007852272341369168613920635734969048152456853867123043918374136488189535123013714650067181787935056159040992734313703859536739379794506230102656636932601800347346994853985052952761417011017247891164964900507212088662054587173574566741120015535429115856791323332651330343254884658157481773701145100794606141628604604556034302459791037107015561406591869637489176328924348730741230110194586726932115665902035947401071431823636347177614995697416316979599957191624236562891060236774450574861472005064993343734219795804197795144717749110841092435557214505517379935241531588084884257984445279044148374131535533819174456813536882535038946410808430426776466622648616096952959908076577942138459557259399504367385413123076896336805403807268927720050905623148848813370223319075663862273775065187286386254621827582076835557575440314663001743772184107717361425358204440480007959878755119084023223874198869216599674900277332015765321540542535583274576634234447201508818009571761829250944501317740148872643706799840089354450365423736913267218859675709211692150929843186040468202498082508205007749855237473185350895856027823796295668048140210993799998459294188605517471985317279104148885829586068249538890322512217361019306385783507021344737307599687754226502299200354912984494277019503536128139092823204913359650524480262358025644090404183807300969923864963581384738135489972687130411100471285950248419755700738026737804453437446859166961060547079817129292891959272751070678500125831285773311985425380302533656263902011352204457259561429280935779893645827416128998225284958222595107467571116085154406172088654566250113443206859498864680391061886668986246864140197169732560646989421542233263291934986241520021805575406736951677120645226690504438742857402306086354711049776242120502760286254945387167291472038467874297224629563479467689691568785932170644860163680379371842338593783485754812171071443779630419008426668979469841760127555245637849849593453075418976356519236744871091583086352594248056834794342241836968381397713980494839994815151791501422821338287180444571535075024001913909933601008983487582587674749670123865018461395239772457627982494564473225362464739928463638788984668482996753219271227467068824016613665278945423831774443759962067368073416050667641251448495282335317128318995975911354019509835058511034736503077979652163255546630228985315756857441613197396577902866651169899097669602878806334543689987522135117300943555026346797618275990364556976984879732710762954693831531558269052178476302233364406718885467426375657495411061231543643040881323824441287536753421840830243962950945880003913106401911200600815940827692094159603666790327693823185975308966628986421695637499358502802583862797348677626197962431387514968467767381243720235261747025749721477054926409637299717866869597504999006545403577291588812324428489032821543022422310960919449284237833143894185599821574537826964543489952216637373917255495756575412830437192112154019656615130154537221722940675947584771949558647501356120237210130632004289454096116202459395577206246752672004769909215320367545715785633649172019165224982898365814330920507059144524448913502102809527250698634430853653281197683275356320928050350511431926739641313472925839164988600148406099538678265641440429443739223522002329422805193915964584984355272631352047978679154910128510474627600525499953461863188511525191777189276849727682301714761199161901484554996713576852683568344525588184691466237900546174477519630657753623843428413686498538378742626707942275487391222010252002411767051275816337545787737594283437026855161188594786000359875943876719653244104740650709231149989982206529763873363351286444620183335993788666726547149151946665828927053641029989968752375341202932377208056162157355501277095989980806384990572737969642237397526694697532805741469292282341293559305428695685857413635981920791053729533294239915965661207015630406208868862863456867236060733334774272116941903406134847502208264011924143466508602177299403658518530055153893333946087979180964080020590039985175799454091748302341752183727028071843347367846403889302263637351765682204310714124318892444169605337277936168749554011582750305756128970561679839802204942275700595004816265899606338915471678278018879632602597574688248696252768947179745057926675989394833436915656604268936470329313224193499222062910066804301398883842427903400325940548006719296742719188005784022320946731503604626411999558891746614471866980441634994814923689820807963388694848984378784704792962439331530756266215062621776288589139175369464026500812033831706581311577636761660700047941707346132218649246142211025701351163404542779427213404928814458427108221767769068090258858034862063696600798630587672008544144463752479815039420398135673079439714176701729725047701826155954578142216146264058890408352640158271474770732881869573577388929132000642477108856161379741988710595190331912636763838736499087807242053643285519823195399929185470812865000349904637038605823631150454359138006268987248005682906505144245610038840919530431612390036211493853266141500046353563618734965949553536348689769160997400718081215794385728031351486597223324628380721875183859935606649056954013241544101758149222148273691159435373857412633660026493819660300257248338972838559502607286575553377683200395325988741195077153914998015979078274815361461121484243897808281847946039511034076779735398511222382697492119056124755668982828397995612640247074531800167898077975511394412394687374150133057800503613109956597708974275694715410750182407406405397366570155638326108162787443131025783652627087516464694327753086781729483311879832726458291030033338743407971908316550794417445444369323846285022905140607391946381628841046613274861755832041479855722496071683123184743889207915044518014273343142777787451494928526514671646695856585322648544143178581953844703240442294174200646021840208666917995333533381586602383054908206223081496209783901638756920827410720756060642278832249632636564832230796541591048484190416484111922588492822466131462081842017195228451266598066984306503344807101347947084615613688988892522244669786221335337309514301557338602755697200072575250671592404259687551362198409393432745806613047387519048540930052681667631984207406101352834974187740474412355131877614673001297348387856639324835819427093129114580834319147922331084142593394506823942593559433858735788546240726549474695201692169223708557116553852747933747992417124909682776440456668390248792363952181080730013293762773798842690931457595837015500489900384129261284279494336283298146425748855668828836804536879133316125589976893973044004215576696934412919683762960697635898590061060875072182792978596314029864864036966028142248227286195539671911511211730565298030352262003128283573332954575713859611491178850248140925402567716763391084006633345132439912527753587166104522372596038966735311089545981735407647096488157235590949071677666090407869829567807327991020923259263782162145543820093854196228702785276430952061634804225067032311812027168682252948819263045079300117413772434946259643453142966339938029560296475771381410149359257347800416466373756850724216615830921714219844470530187148451027294877597610658387823758929189368508249683117735347596067806875184983119877707204980642252911181020587414694789402622745035552980543174322992461608147430632466033377671750176517282386033655534786756129075002082019802813730063796499107727641131695411920347259357665379462311959909011133951830668668085223845047184564594118661353261400723559662323179908022475129111712756054035769422119311490112652186785762151460227256070880398311213282142371112846332666051179894391811838565778301241527220300074004083754106341746430794523036623873099643502585374745476116327195202395664482860789820551037590322098058714970560047859993733043503860330605707799456224361129124058487813084398585066893944315873419967742459760754104309622911724755376229904185879695772728465302937611256546309678510060100909267462798572700453142581311957345450169352014202548097024802738904354897612949828756147304503592618539078074428219735979356757970496719235412980330607606736499414402323897383782124298624762972957692801763033270905266252710403869849116251660713467846773652323005158966731471834223379573372220091732070606319531690529933533302155239371871076648035538330975327195494156994098717245259191654380539551815329947867662071285494637625360535398297963098403413398524765195491282982314023446127210603463700603945220401428379857697527345684562315775618037604041928598088185851835091222387952091412028344376945393740082106497730813437731457578561970279541028334684730260383331347832804303503331729543692332069261689740542347889525461834785002988057269787630619205053104776562920438482991133855534680805156918634832471867990903545209929174228574960154839597148880623319738350403451371187914841417485385887127799923156312839758575839543605632735781485947405540976415676469341469443086020545866174302050730509103127797840345706014692664650207350756962995412058128767297626956491209998304192693894056115596437344748579420610402017674051209964704585572884474502750490149461460499606671118343310420766904597061452811920237581454413003266025288523720565964940954048878773081855898669590068006818449624001861556669547616488097290765758716946955937458679467050681383322285252969011279536058799112594198895716753947519483198350636830891309217867958273465125787758901742053823642530473701163378633217283240093060874125909586449755281328727295370567375100302876989649687717824326562054738845698762799169028227836447937002400542782222748880387186825768439267314172932164664563551100488586702520221118109256092979418949108174101104233159079888599644089782904607646935863527714823886384051381756080163624698330842453599539000644743174494035275593013246346865258292298879608738991971441016072562826692325219771094154298122248874180021305429911833771145772988164258119815607998979997212152910759689568502704420986273245852037396541303751948168023342745753181258357997109953925991309019902510422509381800814377813890253245056656184551411166196105506332686773507673256233528089424907211548531737698690112288459359046374967208061042753512327655703216434242130048306659079584238897493302795102066123836575406004141735820450327380117739701119744962385619488802857788098942292035580364068043916798481720346346070268361857784412456432367551759865209641914632081088811124765851256296336120799721407045479888100371447472801081164389622611018523514989900171461282645748781034907981150803414096772460460095748485019698759096895164154188514628514994239284442034640433314552747841477685278019566280669828632877823204249639701333588558838039289733227026055873861473010374995859049943888311815337217444948999025056202247238643902376331380839677248733783691993522228521238919628911574627307031056856790178213598705050447406987313578634392016468105140892640505820332859377758987320234787207333923293168505854901486647275079198721621556323605253513448764657111669622031670551117941151723657120902558699531322546413901585898894738778269025110447320837977622829108359604898589291392629984780378562145496632749589572351110000400425392543479686051880212829313016129181548961733601537049363391652193106544182259433762393494034272425718174613157245785980537393151859249694386678849074355116772632000454854259218807230066609976347657972864692611543916291839079198051037269971099508515343004596084713413286477386727524559221558130042911724225883497125924042064846056285757182735892204843194916343830386265468965963197928605522235814606056542925789096276151869177296715536528187397266444490459172233133617589348064765328839493793661531362291216218538791406049962577188088477901716230929320836315404483263688045788156234125952078564061145054085037181785818237433069740955256651530488392295271191507010780409317854515543973717558638941286106184580928487095286550686451369599502918414076772980262597628026752744507479228563772115716872793186769510661054698219234400561151110174315280254256179415484480938818094831783510470021729955746057761223455659747107039737807349192898275920552724139204076710405993234711237647185436827274661746043286281179505695139530754687608237821407737053182341098157546594509748791330303435626174570622230438317205321268710600400576675676272706260182275942334564570964879498935008287441908533342746973064159231863866649446952754697913088467555091960170011876520914551472100426896050114762921427258908394756242510795934674193980235912270878037384056683560058914633119295917922528542518350390717397513832961889544569291734888399107347729041382669633357475754709493422443687776510819396634016480298775164772914120216382810192254167692103361946037267094310614883849453949190182451396624510496107105738377416858338590738674265546930506020849482789011737104901946181469838765854705752647937824387882472594971610160028139937914899192250075967578716294079086271244136027325003847800771137837926913106502745575254509047237346337714368187725154828077735097454929031036308051529675568396736692055331209345711675829079541736471908129697705800647814738871907056503678060824686637798770544688691301702534408790296156562008081320920692155571739323523961302213757946119384845122432716773771460090610052412590568555068208267569888366617704578552699376224730621148016484406997062168153752496568903901434794106110689617988607222335802668528437503633122539493973255626752455788715453140450630136126277104479635537544430074905351101488674543747028244169717780991562375757993580402314516843335815654471723256485309355064675946942749857307048667025315386324258532341601309306193777439372042453367430325672483586423088147070478235093548068600214684192498927970749269285990133588861440184666181596742621452657515513394430674523877437905784261378240080164692146247666145960605134907685884085000766436143851942902694613455697771234129061069988745005678631142007594761785610144841640136924754453322147642594400877897732272212522298987315127724626003094565338428293661051007116794845459680732052297611753233169299352087203219986697602729783823250408924507663217310015764960456120678383167508868261235501944590208713529327887892438694512203778994740026501402240544750663563719302264809428809680494514924359106226764392390438276824831928771201820989231301033966042841350653871002621332083215213034694328386214155358741648156808973595329157963371859096685180417309338041479017989879704479571284904524665970690007811364088882744741947377019859790136440850991598747725909037054623784349160574200374379158393575614132742534400020244811563789236303994605504038054831685319208354800655918101323475621150353156752678125778491660292967575208882407798591745073267243860043994675031866238493546066256327665149132554088464679764477690224715662123848343318456390475235683354101544386479736349639591485320497991478307870938222195158793346044624666582469467659476985013725175652163858523246797974625440454685662983813809644064829717690678858830142880916652115043430981226098903229318722155001536814865123437596809937346005382411100750045009283378959070999753318412948297072831358178385825325524072280378609756002131942435973495028208421915597278812780441396406943311205013871202430416954754694505746989436390297577560056569911985051856911255264934768404106501388630131135872144429529909221954091225432716729285632059163332735003146186784048572739640477990305566045541199086405160038843719374475012170112579263136596394358100660766245023678540678090229076456204339873706773424794763624514651424644440790397752540080644019427213433978134711319747538232254130957706230785817811959866131640520669686633168594103113587715927820326935294714150166896930153766840655363372243872913332718433852130411958336028507520096208995253596046219102253915656445491651623900591469521725294642152378676738470472309572193894803086762735555190960267978974441970538543892181570534166088954892119065656916472123126478507541372401426435609528114854634530547397997766134037469413960474405489545285018724038961272908986854144412873545234255688744983970901997804199065248407743602236339876610612944947760939311273221026149172387145320467399116648718725210210862845943336986156537784763264670673651603384187253038991302690680170329136813729487343758427049449774622110302387515920621176848945862011535724247664175331677022500834017902246544030516515388674338190044936150454060228862364775650083099125603722152418888483326160698287645643434269161557266897582222847550673868870461319021336652635050411345603765539336164401788368118726950746402286294864165168619423815774711882078766120156287524885402714415693259289485383014215396932851383875264909478327566082357979833639128689083466782369018326922773741906633217473917958350035533550337206978223913668820014807968100454168696512014033962884459215033792253899491700287809750543934847415986817738769148637799109628613795161863644439897993692550511394294399088498703996702581800101941276979797060514987748365098933741365825924158239266220643459272104014263308663477244193475646663210824541188007485604384768466520111650778220300765575182074240940037274109969085834762451451361975711984331295229236842963967047428346760582776368824177057916549688893528154206900662320445361404808518194385735858604091390347143441221141725307676752583731113241070242977070703229549248690961691067806949940247787820319084689649784909077086261654502921729879443362162861799334957524139593360855623905279626868994225085900533988128388149453884540404410710188609856330323930734635484588876727381622391855511959030782404711125735734375527198964425110226234574014321701995317881622771972891090103372044594044996392391789040645786333671167383696781410863607967693184458202863199613358032753933780668982827554387189675393038159467404719574960116250516799918612541927661476760550492687680718818161940195651465304117506712758952835923597097801182192662975602316883398625680347124714263609532124070995889695148815051555452431582778201874829279229746988405647579910672246613030588567924341651604038128242427065214139731836244064240052080604054483412163966166274244225934142861183785724408333654191144672792719046351121860262725759296980612190006252270523359568876827770074147304632060761053967720218397051662838296408931223019479461951404711159275092004837963742143710054534333098034074109928685238390043841580956134720418985824697872130408634866862954665312547183572933865959312693316843539397731994604655119115524962252409126583083151474077869193356903590266724904628456583031051875249061447917436098510850608379330154210121928516656274298077361451955276701195225080899917073303247938124398087568115959637778188249399321110426910799147238581390935282796881774179473481425714341607691463232757056459126348940834315337063290003848557992984715264027487292325815898743657899637315567556836374952315137476438811603113833362289808754324851722633570456640756741769615217690655036969063286235797280248660147876678549147645993021376448076729459805525773342027977251790114428698171108647860372497123613524870358011891888969646238777863427240521727488207285121831770363570051321464183746599520530767882809046904497302123202914441768629602874834236058264276859994493802617929159836793650774682192205806990525767782841367918033662642114247563388035039369809526781680400041964034387864206872030824457473169638159671578003880222960693364485224486160765788107443939793874499695450871264370360634258775490307056970597320110261684418911256923173677789421714947368208648204976054193728083955406117655860233467865834000915583745132355086362716255691633772802680739924605275864085196509089357340022291600315402014649429334920174248886130889551818240556743464152438938436939953033156466939371389652802765889399235857085050434185820233139539564626105840704147501602590012833087951249408112338449580446717895186117066650471754559805969397558702239456956523449617613447172045328554148060794847026019349652756413324335673119929199317900974039744841656868272154834379795666490063619869083614126659816638178997209053542050672680826484812982895787419239368383078442903654611829010773690677812819756035868659817282416444902903743409812316329966106314977032844005696369965074300217569813754941343291794157644626711276483952148233757563220184628335192899742436352757665476519299646664520001992398256203796684868640397364094211915122192223267317498847851978669873844371337034007557917936638345640905951260349473163085441006059156314773921618147011252129574202258071848812480288848707533738269355235255116905984626445103487834516092459959312410627418939019328739093655077012346059737332511789644511815677200546235573863844563465351083531260515619019851501216926650002389029135626567428629340164321526246266096455606669800527814922167792650302458041504320535966644202550136869255190253436806826544673551419166040592110057417962685717656998017735292034074828262450064772126422056591933017779723918755722978485603602860636878105775490105429415657558786668363786726063242443448833962727263956829285238004683460147491779808557174373644218989356397351162411787097805827485530417593384718168189807240705385478788549025954383843879774844388847492119083157019209668345336654160812429394957625163147943179484688389921710552868866991766250742072341667771171142969878201864202276361988261850147121120384827735303228949321828345370394474225988456775810741696742164862688140782581171345171854082837358911687877883923427376854369175976416085055403978200268211844047419441738708819416933933421926501669872927685445837906677094549888702689331917759252202427828089510963794858766568155305624703237593562095177453271742143495189989301849894399424259086367497384166196716495964685134863735255827754284199200222346838592656738773321292404602642992672596544411273311716649301172835664175510676118945281102574313910489259955821752087575645382762567059431548540319387446056956132049376166017572562455562839736180559341639152707338086326551513216293296722262827948327215279665107082553523915009546255130697212927102243021517098030833057927688061179105321303166558378089269776151814920714421056720622282593151991578815521275295809450931225928773968023824253612528844239229796288059488943213936041226222118612187091049145563487690431480128996910782309913887009982672117468908918311101668463622417058898478479888203881760958206539292167677222460992537608296177670490460893980603353202626194297984837670183997151771244735687238304427357554835968385227666696938773722437437560797709002121852692906497152676541366295561920572388959500781798124771105086025026772993690548396582096654201841289151410909732140155552358610845042766930712842219957935505382060581100297090146418236704505593492232266829375310300158773521199971261825690851775008278939486353406449607871440768507286753705155905783745879591019940959604780839605472886348646070190964372384209986031487720836625552150574704412925719547609215473555851226455164423244124394834033830731328793755103870586119323424257044312391501908063868230310949356630128872545708364990048214449233303351410694316330169048201997610292426979497470345886138561219353357976303416724677355782460541272858762951291900954767658959935918494114960692194106793157384125303404727539601678942285674915026122166446603302188511961039553518662096334295892716202817897321705619828508729436276309636038178846932016805121790934272859155174841420861570023569130275649632927017495400390616856157264499324865586442196016446894096817250558417343865382604987783404741324744637599753357550535132550954370003313241362871896541763153785324899504763462436002867088339346664542496497860062924308086050777359029407692599345033760539462078805235905610503863377823981134604867493128769580907570268698288127737423038909889530016490857088877531338818525400921366700326034726917398995860757361012285657631216513461691113718019943824920769033681629755314160467187117880456028219127504290015974635700438423619678797767772910743712554079251258608446026035631163463830835194345049652219331444396689126583694603697697688138338189953725392800472337119949749826447846588564256826530409747876529530376914270331206574184500517719941046028379845540046150415350360560847915250309348191624027188495758772968043651327696089559952607055713063737134935760420835731000344041238861426610477641767526240999294305717709777095420375219991291083079201418557165209214093610862898426117811296734690088759376683158870956593884018703920401664839866262703162391943638882758202775876777141693777618785331114586635309320252552142565428068470456819538149897945350956069968196084049905397767516172665265473198067790129330328219202738547838303895804740816103376381364631961836662367239633146867655328082214829254462323336852985054039386869667461354346274026531438714275896462666227019174789891984320309761226498523607742428306604642893012548939883767040867805629675832889044723232141522239690994616401918906814246039321162395562511751880855555521474983085011066930712245249476503242840877390335905599098061318202406759994627745320018651095110028057868691796065239781989664954089460287436947305871324088651684643266679783077596945906362624816853174169566614036823778459374956410488076371726860904986687013258833420453039085415387254386212727026877944474898705687852478302160711804521644169230936691214544432330174965500692168751011880817057731817655275519492088672598950362251895367739869385932651785226927900633986487408105053406461542169500957130257518928823895047535526808287002857316467165909930325408101668835951509096412863769638454239425400113137308791032308753193049194055487207533572772265587925317806684592183037395529276479797442541497921949887478676528298303821323090565470764432089327065834764889041405020138646538552734236964717567918971628164614327603790907446183011484346088076459430107284199272287262065084164085880438143450822341977972216364329660602236953991384023028724745016652254074740364531681324250756358471297282495900175527619095508589330273405960115139678153537102981162957020057523266998258941704211370993023065213152921550576610849278101277771510925047792964316087157255667380096061176333989882749824652553422636246814362399482378833887935163246520540150927233809361690249799595121840271243096546084928692374902915060884345773187771361095965385060363722425993587001202475555757265674444164671724867512861125833301520210954096352501847905806323413145553075870418498372257460568394368994976562730765442023284012060151561036658688081017981740085594895719793933218609230644682845280054425042843163862200983818909400671458822328464252143870604740415011829798080156958237615355632695711527531119061749592257204107477551755574456925966192405161779475930187537565766521840045742795165798361058512741233342687255793252936252775671870398426859222418239997004272334455291180613497052622010818403161135672699386817394758231702740761469059210827668512833267410633533966417364645789399353141099450439421990369197019733863329006505734561127623763239144213987992740915906302125285069296761369065106057988736693676751895120934899155327257977139909002691087350592586660615271622797617821385368133222112430609605339880743742054225460613571520032357307653444721827390062223072063403435840006050164762812064332365330948993615716117264939488838211835612438792106892070028617903209228118430227561621564494186402790341032053213448719856559204700620602544912473244259927126286788343431311306967470004833071114598135978814400340403246541370746976807166903181713419399723450430454337118497233033138925976359935571119754939408012226337281665976610666807677627678250226419510043505877694042379475826506364310023263248537292209986337002412880134696576344515685429523181745190462635094987140935375395164442863825464980691467737209829166254294869170735071204201199841598971093229215844855675939982774804922184094462948980532464905712624020590606873958646017782604700040550647649296164944224602618752845376615063162455932967276623374876466687159499992916171877891206278113226035156913642266944934343005607022213919314853128449076335061947898317902341694373290860632378525598422464339589328620377867864682601733405032644655910386310297686533124339772821648536901160932140617502243789976604160686124824491692730009842183825314047463650040453749001472507428354636071829499990660310850449483192213163681656786515187671792756718374948011589289629086700789907197707026339533628657282530500657384205837411762902737142449273182408335756979379466644221307634648687662269628583545459747614684034762376455991136395369339684595347461405034232294762569727031452075093961027299189206528307433962347530248092619542512410929330525430328093246149866369111654484820863483198889029672651015581406138719016964406239098864513527098354709541330319809175710669957554090294047781163911574891024282304759067012033719468779225201549338273803188106931897242035439269412986225954032370125140781822356285546695878456775260201267456486566170983420020168883868840948822972100604253810673333065991475343558408989828385938297855940749262005023907012321886418237831812139486581944881707241696439038576270626567928200843899396559200386082083694406986925397147603652188723313444866206036722393764385340476948887655469224204891383703966648823740914130417724905225612736284693159955221963013628480204372040240275091030635339178705157407348929234181787745675452225314381158657524762730846295826406317315131696550744296910725728408734507026349286248071540921760992503504551132724725114859579163593709876076087928346111025601625950453587221810886051426855962304025289418518098611077514688824605364603325546170098564351158738505986177977595438858419907489271124226428944304280255546950212598120901330412617006077705312725691269049183618036531248142268483010042202460742067513298401120036340674507274189342103959996656192960918561114655842251720458178554716512697036089663177700549561720706647397499659485656101785389718828220506341778140336169319674008022834122974848274880479582236376491916796457224583111117057154904119800467907164975251748518030067550972059323389534369249676581528675182811414919563262131178756891515046076019595188553381138400659889618443787349495531070676178768026302060323025135379123558145850321757684377644318049232758062787059646799321719493150006607721397453596096338162159870758393362363468556881945923613029996074738214623711190998591926827677132015873461295786346851513952478828547338612687439920674536775094618492590207008690282248901109127317325114896562482048112782166310046302718727644186828812880843508764989930620174180415375482569201120570401991441209990678271925070879234400138038759883339846889371937684864476327706271516205088771227881916208810463871759710883581526845176997582652180410578714020057969561334439216812938038516937117733835481349114323727880938711285113611656016994383048819983732100905934704527260860835415926630073856732729072502313690204595691555420090963256147373404966821471332323916078219838507140204202109444584942806293163236623557670716486623894810978846483186034800469549595410090830467923741848247039087291708714010911369037220987763595776858156510087174975665733853507639476133924156956918460746027171951995658333412628419756060387381950010975736082963800812552065684186217633506451893097927203397501703667770558958665099516640063710225777083846580809741845362935759871889243364216064796666203788468802993405166469179486374823414516043417952310180996165409936427290593122130617664319721518496297064675183568881122555755273937126848281209704660584057421826776731850847449369151510004055353473990508301065436182269819515360058926454111559374100041966640320183828060260822273352907066884836227168478977543723968262924176251370362281526803272513572185237685157635604026428407133326863418044025501533101457618106885381197197631133796140926254555653746629600059569962613908656053407579313709865773246874399487382389969223827454088451425450599216097709116632761781025499411977979555914643895475849025314996044536638021589230682501992286591849429668636700243382870280424794456536901777509331543348318464147755949248941249055904298841370182821438846971837893746920358343460688337134681938004891529418655225994244836637568032915280578123704334309366741078591934205563689952886548417107552123321562955165275557919621527287211294916005972528787852986379368713144478581809613354308016922492228548467292098804705328444108443979165171710096590318888101733452842022113601818607175146524597676642803026802922643188109836291565097559574324978499598554516623322709168863802834969950809910150763616055176600153213901593724388286662848763757966189543830439610278456723072854027183911217104459186711488326019049566685357025029553154404103069285140287969124690100635164171029871615989537897238952121887938410910299678041644094300976615638032265609701226170749389738580639703041193570563207939252087341269472136353951054688504808019352830129645172129184996998674301901535522453261348354772643889081805052712294247866422294022161155614826151786703625135122034392732534362379608608740217383563856206942392840518465624222448493018293381592906285902105313231000548276110385124219134784765037413853888474184021697079732549670480751573463824008443397114659177592271300520762826942089680071347200618222847288509022805213608122346581891774651023223044173693996528182185633299843946211752819586437502051111555443165477829371353822689695790929222462546423443358862790600057112162258740803151059205533211283337363347011479421178184360239325230973234827835901561470687293024934167374031809159445479077686678876837075755010007847013259902389048430422032168563382564802708102315078748258319780313085156138540031139307147294197792653821338726310699814290355801700855565888063724626575696900442343220744757500926043240788586013092749786085132785707754199388155420803257126909326260627278770817924660600086794915431872928469241527872853547454306794703060286427574791058641354521262659273185764012723896378641561779839132049670429314152363422561868776098458248318025527782484952171953062023747241879671062805013818514577595004338637213311222773046774420727766962933080518266630657893951010542968351878235385164279817681784659240695611110031138107616517822396274322241558610624801850435220412361762225042932536541036593534231725866081166209368911372489914350660426766316337904534482620250446919728835993023137956097807519137944776734083501928838096084949683361755661540598603648079531397720232689535787446932987088116799182966380440496279295953735930621507649880091771417387899757591433201470801693336904054494106511416145868842244188988784061597450613959422987916225152526700902741436675859881360275413344989267937662750555434227729977992028380140518016621914615425329490685750525783181251606490045691984805266324491982149813789714504360196540137164494099855725748635235894464987411006431008144519705834228987252599140403456769902549805334263777658714343352204314452547642480069948944749985849400079790597474354098076713847755865314766554516989148658108501263385095860092751994700658153202776287435563817658703092794181367728674221888229564974714634177597194674394814854100067952257453589128658651409535421569874022963958481462310456014240469119970916067542590057411303267163320271696281502317940665605320678297823483216969416071754886231322910660821443622998914452370664964916702867793933598558082360336621130537203929756127548959727765084392923894663548148598211692692488643737761857916794695038611179249059369293500368780960606739586654316166025599539510643601871441510367663698809343474953862303075284669842419377858697027907740931528787297995831584736582684796007903855345276874246255238005122801396293091115258267048110447370136329734285876030065894648111340735018900897480620040720607184968196729401219945846308063665214070572228534205634541225560600679887525446575799156575629950090138901814685983041556429908623280805821909244380440309835150359491060807992482289561065118401701033691567713276011151613541281078589758206445339349520396921079001362453833428777298745661003259784112057916431741836924477110162261242565821942815398964410113074961590190928049955823371173253178915757595963467975018945437687474628537605479986370586961076260622525640917816329334353424395980762943150441069807612684547439743580991463104082503553598808155005281352053858309385856815127870618000653205558463983553652918506419521417927392011181020898822244270281753394346902707218864395253148491625680200380492153155685481923137162173047330554579648123412249480196745598821282836920786141759579551733907256928051761074269823267046033957590670062529925097503248795801325389923298099733800242049711811840435543227038629054532433409199734154789774714748663066671669499772241777562759291119672480671722998795652563647426706714253952855580106411284873430637915256967158172996922145718275164165680099705652739634634538462476177589110707295507305774340830166817823206476217863886488642881172999461239671751114830285202649299833746055978963745722667208846274606713145009492498491382714958601181626185692198970474273788655775008966492283353757321228454284429980820081442604613976372946873514973514836182906721696669840092848220172651081726682648382567949764870258847721465744913206168852398588621231876850771407810617676039125838822713258073211302085449565222892691775755075050687575883208394050881375101529304327992055289852440915998509927003338153703103032587630804137705422737418072344683208341157825400874590120146258367191018646667666335788758369173666725420765544002596392636901159479333373048412114181619234511091298086705132113852626985771129289401508075513414839482234885237959939128670025946561619186408087726724592624190873839974798927590769149652011612905331880045709322552491993611181560214746746355520276339558869189248428699641737989677558297671569977758513294242451679019229685791962747175407450392660958547128244265565210578830667423325953346722147106420397286981514090050017476388633878659750317916806178176565859857519444162256818247828664455604850109077000961312959699115549067263661279884286606116673730766156523351984247481585296770002598646165622096752788190965807634406321895804379422569958644652517368334952686834842542327302541965780991364436091841023276143326739896486361726571183065494712026073424146152582647406917409432977852271089166166774190882360980496508328583594054293982087421822990322007013585863660359384915984465815925371179348853270953286324424102794777645815504074559152513407213142323737325667951359628000581149688010931237977207051469857781986001564244555230686183558918495679130417037480197750698753360287196396938593271727205196772818853931653496431742930717057717543265484932718863793344921545658843354711778254502426680422773769604791738902595374553354232211418870444071205242203058816324471095441075387799048226281156460374167584829693116902797003105584225700186885761868156453750717949563449163237345780339457807976544046785523582159728029608312487861836140034622525761881726892897609014342490058307189113568055166429465535618455091114661633569715542788071513298079611558479382979621661783099292729371287907242784361520468623087873289605093765294494402375028423276087508839660016162570524763723095247307643320360952894419904191670830169581075765100482680314734813232757956628934912715295887218710555226963302198954554278192387383699516846225530596980272943842512383217235208531251280325705219370283883689325542372383915853839483508433342946951477355635276932263159843913203423453580761219664724863447746195791545347690776774938744785268707389009180642731682016773246543791006422921504502493961501348954320753367516660974292417237179876752722426869986321263421929770845491565191845034078424269730259925134774039488583213959678322420266585728664927394720459352519011030720373550681604199214825273337071719186875536818254160535026030964302024217293462962748288406601186804007105141622755174114297391079357811929015708481034828800575502543335369035997052552871423225258191025340524534000776039846961121151721741814941221763713799440634142812681230392900229151428122874830479439476067600134701206438609467949764758149678743826174540613180877139468343091717580370312248639444463988148172666927661125768029630374383106288079732336747778191138546952670833154959086977111129097506176232559758159622412686313753379637206060788592428158939375190180039537941179350047759101448505827667524203204209982415776216630311216368162472547561042597318825091955530759390795476901562260924214832094149068206393684912642798415184566643554937005979520439388877240561446695592002947101368586834209149585826916705042900834942298361435526162540135470573366253594579349054014813959797801726079065059168422547035657823757074914985626371031663642756148670084405157694272579814956647332553310133002408487401662682627465091429601394175494332690718955184871091140885328699125893184208847755153298792079924270263318736436056821894414748058764121961661273996152081964191904052296583691436288420132287689998885401513070081691915617656195654112959460064144208389024352196316966073406407419171107850791446903835688536837851494117429368071869945861308723022495473021734723658344727549802144768030479273290388040512475786294184913212164080399292998316325431652281378599266671151400210209914400870965787211201698442654577619741457595341127687775681289523701167511825238014584214465544846711950449811402858403784808571105160144640190727206680658446317184009193286675697454328519764661505738112709672096586769250079338659290127806646783212466046893541473343230706912495461854037930813022306168524858571393849697074486932957917128793701589061777795354774189709142360611851275485369811274149490173559107231442868415702445630879912654201980878208868998755697131157133798436002470675598691397819020164595328077450318656324094928818885462717195577623765290322392276727792538100501980777668397088174038071866039384207420113461504012062625819704645967352924414392270269008016199893930991032222710319633982305967663595657709643669271809180515313530280294645746620295498117756219450361361895443581709327637294494482546445942828388247932891316017244665491513080947600405275203958950865148917981655866069739051167163132233876742726954706606744759744777586927848576806567959512242192079439110404979107358825756874871697844404551226515426532286972639784881316108879933294944796713057805088511310769276533650532370919268107891413788191393539788914570512753529097359992842791467962107048035430550045694849916528514835626185077266546783777809631983463573153277276507235388985575179873437894515978123995676415457946175096572970856537763971793246301364641661150994523193283307793461169348629890695281582722660151220502042951792222932181414856038441190405533828362061844025771316404212266339071872139346726740733994464858275585300427559926338175591767303276043698871127847666718757042933806369095164871230673620161202053311768712688950266811077171561881191470020088064655863127944672618393391142852448052111404083994944508770279557747190113976734348765558838285912395950343660537847525433498130673800641054974392788688546549411585512373321281213646363467362888260918422156091371077062016773554488653469459815119531946473550193902839915332231188604839696135325353352696597517232673826150181446209124530866864619232860950556418499107343330577230126245799779179228560444887773018608304467594224535253676428527008827175726302734499187950936733948407249600931814979942129215041342638893094676853481000605118078469074441548090111333247697264553124675070556407512877767557564830841288627287809418667668652676126973430335555710318216199191046928514741818585719943628962074698669899192479993009938430092277508847798974725836483373648284730807854052465897945186718473290324241505165419997893414514704985551525743765392076605070961178054121672337157741991289093432698497366244107663705196796373338726167272321809735176093607779500245386206240818312445413079079158247330650230394668692539258024033738330903045932519575831608930327360506677746838318016145568974619494057577209223689556000022351952949060678104087442595165398820945707749715864841408471669192068906011707195932787670235837811930038801719499248001332860405176721295758749639509314686971963504150463947889890048087812407924772892334571603852362109083521035680497645245464867381499628750618989256575289593948213968562529447025059532582775105145962350051754214371010362112761836101904048037155097425340306457815208337405471509641433566971339714966174526812516160864840304883339185529234520166605186898854719894782118574064121779755708825660262946332854998936446750085618819275274964268526883297940429849384676677469585664648536491639830758955267134242605143751449950869921357453413762818008668791962227024152215782056619998238436341718239767868204749112510169359225598596580181460834333980664139991552293599991102829834712614049039651434742513274701092021080429449900152520456164767957476497928821135611810607712625179216365110380417839117776109342578492441973560334600031508333056886913318662474195087297717183630262677966387279608825881808561273889001275297273774325095518611762071610649826121153314067115034961411511189249360123418605870728769031137755094740978847628913170767475988429884492292096138768609853959513149213285625216138912093576396122565109268998707701061049469869751214216752152667157808683514895700454701943615591284441443347161193407512556309706050180682104037540141994229324174799479305866048221792824796398637253128036907385281051945627157702969816989498355068551601789592332069451433289134359134927307868865280898728330561728997685495807053540063826894925952603767327369137833238188923455996065705972831005081500997981403113033076187467437025754666669010667217282980848700259781783618655481638648288411890901184701818061911714593253267973207163741501233002038170073776428840969793730077917752001439106968973735393757984179354068052713328833545230908240201144301565092707104846210917436701779115905611771382607442891612822370294823660193126854543122706365643507439634529003295004336473958955674366176283255262089316060416075777968597524671991855187050106421559727735634119633781868183158819585647926581807425749481036337845576955961022539559125245600175273940983011399625824034704727498103582130297266257039776540016675820985423298964644682341605111139336901356940739890332107581409727169910221778016048171162714049234362737545102614195780493067650345888614302869642076919697980881736510571591353442416280514764167667239622078960966374251666380516945475761814948120651839709000988608322673901960316055546223930072800508784499451577887993972734779875171571419770710490198021838281414206376914956070329105374718580620574921248526522632572903255628609732037072019841482409111535958622624542562456400738263630798858806848868551299902017707286153343640260157640381652111320620361692086270920390902017870958030089460235291903161556750765778879803059553280068105809630171042429931058857761625382898998810372145401595440171823555206892444558271033880013960987404527378244150507812757609949214999811424436698694173960614252199413193126264834982736602712021232216707658173196367343541741479540565288795495855863719555214472552561564137858425304227559232379150892892203316799987318247384303327136501866679995896005679319563342078111689175615600157698405240459784111415675123855962619718659575940431201020937369239046951949480417360631491259538328523540609257849828161994619784400290955348409092615715269856966189353478183935613285960247425388143189915695241103383506863993335108547620643962197840048050953546807841824688924457532384607786536417789133883725320921691971288385679641598137854970402792971696001393514458527680762266016391544632017403204075747483066912273723624382102446813161234642966523929315762558134432340895741680964781889370583489721295476509995790088610543178306764957113810234800084266035672943064027718663794004126477009606256905420291315748129121881069012424017805026955105354093404704152324681599014653292357821851639771133777024695457829662282223270446727351173121881120904398283596738959114864238683252897877419782630293342394962343650592316848301298775910003859328038787247032542126054315691892200555057153620194017957551339740073087757366914658502812712415381954410053427765758325803905708878067428199759445202380107004502785849677723146173072042615276758616855330388926607703385617031846064259980133841319695609487991264877041602204405758260016674608972451766903534440744915702885729899827352772341824937211871866969583062024804558327756760263129408867657245518685274704764475046888746139314073320001908308599838383764034156986937811999482519828366258777138528149968250052995385523846443848898609005982779919550036688391384860159351969353152015541222482867782929763096915335447601646021993402825563302518563845893075033887322175083772565174261728755347472414951888122896685478268611300022096529592791614002646728738649816528780116663879737660847450035777776380387086343042800648990541862577785595822023687612939927084721709371670932486433079751921428352993522586960788155823720430110001673850788727265526210907739199382264782642849908617199127186273554351831136667319090846737849202009215668259083952794148575718728878963071511946429298890613635820670047608229346529364612881516361755882787145769480419213695355947436010275901024709000456006853357709855203159128089235096871620323837193729894255221862178834346077669184462388329280987321338252456446655199535399992135431499292031213618634652468932515884546210968277114569703198653855168082574107675628607831819248152571911752506135804020757596069548656899680930918193607468202737219086220044241429961501181467017449643109298067123043131249611981682448911076452581993505825249188192800627455322081407040320952989348154415728083844744768143738793289130452400504327116597087885097407349970822788529303973953711403452272908638811666108065105608830196824379471082930808404796449525864327843098885751534775285165386488393911508637463429542873293197032649390082066654019793611873579088941690904553662515037023011786539578162695212220978466312786790498920476971459667203084453764288458083821905924155556895312180596779002158704010811605798629094945448679916333317839490303204574161437182557357567302238067948626472641926418682256633262515111420102791010477259641881918929204040527003436289387141368087471199552081945562994353472301518572223573884165076137129701735580513565527338805840890189478751425443348203007017853298850748158579419053396520776175716355164829900717052907023787503609170418826861377278073178849501171375485561731615052186232621757894389783971235009869601075788118760499074751317990461889535093583782456911366675596514245978777279021190821564352897194825538745222093757341996294125768071708545393841497474170690916464177710763733059537902624278386553910131424575797284854004851972110655046423038208632188191108053774528495203581464454886314077185953726719828299008944953996634640060661504207710564394870503999758102061073448834434028360948580801437341953881317941887838456738192149029475387000096858124755102859299108259335526782190707999090176103544377597728157686001153417418999899192638925659887214980142794914057462244699037810601636196815467627900711195606501011372746245949355058781991511053286121803580636612544632490589787069479873592583391929952132006877668909499060156220866413186860192062056897226100298106089432858341170530966453636974122089674275428624951898030145750045438802728133503248469900475023185727608562753454087292728840698190019510963748128279917827194366588143142358582035465778799533375063672926191898879604724211674184598158762494063330005850525836950731160695235198039138346488096910151844939195354342212539397037471322323144348370599235465855180241825625058278127493166142709507544878231934177353977842187505874299050712387448777787800503934242262851698820186070289444162923808954788785717295559598683361590370594058816927834652354888152679593465375921690540594578901672358375310720360386650410628771661513595496823207627417300447795444737814117695627572934243260203711648062997684411130259071433520767186699981521192380088397393095993384435245591472825875740188324664072953604072537986267673209490072197379408836339696983054930296212454746451921652377478103283908184471444091831782609053777726996583319804497375705820987562054631950878191955220464387321304174716177884840029451412497261362006358490543480865940296713554536027606588214475940241628883391085223439043547751328124063314392053892185178231174686195492421577747456788177444666435539857705942390927414737057359609706617099479952300343354018213753160813243751683123275893672376586617562209192145904566401358780338391325832710418804774407323532875191739612384688436841444118907290515354494771269253314483451484624480672172587634932165068939766851425092535174118151460946456406746495322524211000563902116138076577617753261425336812531958919397121800592555184787852496857317019700139408403095701980039008342008544466882998589304328727622157362291012513863358747349694979927570909192953318530506822314712134888314254326735417696576176829067451985328454018450648027224038832769842109791934426889524598458199657524118005402670470109405439334001611871270162563819677410788996139288818495964491913210667424480570065061678183828079968983117236130372973575083690770178580127785987153674603554065739993327023639991462445978357011426685117710015225468001083126759487094889316804111924790326923103355878618445252365013031724173178220314914163789784683499701850937768872098134104344916115685601803678116531985309385190937470524938768673150429766355465031431334809944874815234149990050553369297558333731582422080344600995080141234929015720167379594775291541850438603892170937447116468868408402466027377133649871640415531006321514201573318817326779190445664239558772290242003033602115938398397770623341609637589405725642238441479914324739405119890516147539180946727475230405868965059780866733563678058622286593954084038358851631834480692672891566965092412771876588602881388428722401260966961344524616902002733061934999412981870369786710800815209315016999433097320294950437844627802626460416512917464431110719714202493632075639610537763970702311200576290383887815596266280563781023685180546056250825571639053533345953876674263272431655911493404160844692660852560862399888617484086401255331704612666787581166204189292903339659014388440233340989251630538581052082776734202744828264881756543875275333226204223207065263877529868341786781382485828936661541862845535927972050752097356114573592155803156845311814063578431746543625169640453738940956440291683507341633374974870198241553552735602619039473854655594595936144401171011661797047850810890411016103861959781203528170601655735734326490158102724577428412736684660123919162881808326811853288603916913741833792505482464873684342328232192132500547936063836355196201199289984388260944182376068371300727477998312942121447524466949442536186195427286205659387888481582178029004504249198275674766823029404900229613736488211708404774599005950622223742878688052137834427153190219527722742351924413594192904062551527109507826245737608027853076353061904511471715053198281637172303938456021192151686517922360305714611693105411603246713620612357454340315928206615683359069249728814685339840323808489683775930918447897743770476581711927136153565373705097703534841288124687443305206865431124541377596492354601484887550691332294709558280152400304527770051120312470269580478128202150581318686611150138968328307400208492973785393661289009700999312340174707660685590339547626829127945424927182362193496911568916921752933091473885880689983089506087469119022973829940095597670549636178302227317226214745919359067246614734556773278303481267993663654294040749636331518733283647342929122971278501998525537107419404497110812349350685017378131059222585164843525943345638308940970002624637844663937585234994698832852954688529557626268205613290817243076419264104996634289220077976581460412081316351243764796566406527727622863001295775205300475888953553455175681607786178630930003086485039531068373873586907445556513591911022626021656118513731185456690788052969347887561679235937321675895698461403035306148971059065113083178833618928161726219297342526557628474438600676520835531120999057849137383549696374929987165890163593492063839768952571172387385148546415672451008745758605724232995008685305191462569967209466033465256953989088447154697217142221306808420533773491502151146637347008290506401125237062048980422200193545277229852394187661707681551511806687914966150505755440104590860431551108396846119372397579759873996193292209102775132789341185467939846157866312555919224543679754571013852747226116861910111036253778579654267991686566019753602251719433428377298936652009381247629461727019012003734864646052483049010397636462215021539480606736414967624202140005649712868607306069513410233095893012735912464352121473099066814929671744257863664131895445385264470292183636531516597101749237785074225487666694305935937753499029997786298628283760279541844959487002641933993944554805647094815723418164593916903859039904958493453327611134625845834253308336912023426823287581562105517773579938221802981829034097203028805611522567950522002788253056516214143144264640084561645208797120244328400658721354881757289999096512648787958551369875177504714683379253345772585112650599424094686347347503330071482784398381742972561288848753801648134258908011766825035165684925142535653068326901199034078265614326303441591178640154899827169139792272293480164778585426098585586333614194357485178388606678038662972044142681661295929762173730639972876432019966614689855727824405081599616655587723144960039042065308917284000980916717470775818477985679284379978440385436696582215598486620054541794978451810601610145259284354104118337766480145091833508887040628768502063494071431553366826644296241383903558443035532796947902759252697853864877732401555823881314446308607397623062550670410109911738824729542499290392432975352711544692906106696257739141393425360993096775375466641941695736067512285541304957233781163304905370866682758124885781176676540421713138435072472313011592505850683351701319516491395454836836234080177512660214278178405966663267430724763604286479688016409943861991745719483618731572022060926918126877668895201380463497675234303773244458763795359971223964720435600764836750193304834123252909957538997088626307493465968853830337631408564153156596755129821443233881360360009771851719000193741043060160856728488727761007939121418169338724686624937880123744161610176044355044810503966471757845297537576367333379945899269209844197493538642032851701908129839508033175816264072379960772592401073638354625843014889228831467160371052548908150093018255284384204730554950028732866422701979293106287332656876030187750650934835730017735550218492740142438348048616515962111689832305905492870737128947934339383623269112023101310397905557806096290241303431382504958983383166243893979844472292840254200750594889927744025622450202134354052341413429730732490261607062481125805564978034670113605994762270856673210412803105603567283362426051487526336512105536329588666243657893097953411877211061060619869460544825250146068774946756847704713108231003936337542646825088870365051752247278889067927862223789564879260724569673788195627540756880589486552488133160105174948500694617533024455913193482504877485580321277477588665370145281924447412619102756998452991821838384602300164153083749039859321733148972812453142766996432527420481793511716825692351865795611619724077621995195580202667446299470508326820489661095707083643105278338842380588038181532309665604962677770496139532382667294898314270839453209854591812478265398901141197533965076169346347038159748760812866128890932348318855867662755928580960698129075257274288501590531699975035836039967289206156421340751954144380592914078325037478166313696286181106669705908560950183830986231434287464059194469331878879088270372677654805693685545155899458029812515890995652187863737866042122243549968013584892685360204415107435827722758768484823977985019863164829675653122943956156577054359357318381586099917933438529262466413000331489009765683181746757182097983649360991680623888014684147914009102929630783037742362345546500865482411122702625424828836676905506543402995974927369480772271974598641362012632406391718809013790005618431601133023137441992933061563093711535704607658696767519193425994719459311283811708114767564259008614709517909258691128290887173565883328727689840276172719984828331657581749639646722598009535998916882099091253039149641956031368636697835173281567970930501392993078315533514263459056124807231357455122021097505575145359566176775239467906660282157695571372165259009472733241250356127891285320744967945938264304706740196139402980622872412081357851198630910321367793688441774925305778223357069156515211304639559003764792308004645127615684051291303476060396835913466773231779832923766508945573708796793586532351533008432129043256890611466549467458906804700406153593670317323133366776146580760580438119296512942113008945565829157674088998517177463916311452038958375639820955292129819592805484198765212236736619146178749714497441955124796480578997902171444291822171533595924331808839358843425612812791021596437973523379840458028109349635573155148685666223148215402531678050013857366920778979471581303398109334974341139994626897230723430409310517821955095743904104192517580704779099289620674561113422794288788217743699831325501021239487289918369461289072595391179705976576413330031295192672823583676507518574936315863224877933480617553025189250033686604063511596260850934999886643062287256005630746719552700592049207549407026717594895880661384482916406671040298546439181703328318266849012892549076256941296375005450896066687205632905801065524855402756317457039198805153622717225920431443384034889971466021102147786819710359094788517669201033818549617350369073011258924412001825090914921913175520499601410769713991763301116129297765773022388776559058855064938158286464615109110362582487143531023849252947295884599810929896054301728933596170825628045478120963928721328803669875176176950191233014999250136718256073276723895725936307954250501024715681187693828976193970767595162778406159892252059195860883512370792420718191931124986296609757235294086259117773030461595236598229298742313900159783068023514514742415840699753155741927017786323511925600594394796637013446178129726327935368279586036752975758008908555945404518809602847232673469792385430767813762391546020659569619692811375191520524338428954498286009198028186700650016084484054360081616414815224041668578118663982366570490000859736602012979827966424786927039049120895295442147681710337910930725085521106292013575431432439469927974274329733024705262920408336688854670911613495826891112840835145740190053563682561458523425926077594024398077390373311334485735422605823772837903495214004576915168453379994093379195557667873170989600653562046603671344103508589798218377896966305238220419121768054960353887306705442088156265285765960643285528582134445788011942257006156149985071388637121789091801501377516858239130198216157716586960308613285890405584477072316172668835077190593813346517188223431089692006830819824869149171877810356641111737300073945665375781130470109502778464032321019081310290398759840966919569458130546023664877346086520691376681729786174809545250083915334300988933871615778064181569869655683908937197201866333439394411304727366739362265897974723757582195275109044498786668122087781760444483586512405757084596424117561756628297538905253351567446937695907377130039931539442666282780082017730087279559352950405928178038882868060260829765642299790156368525215100588671711229630619760832789378416619273492779910007005008805335373702404254353894596110735793566234213211640040197839925117666738621112362785506476232242472947473775416797377731804224482606825484743817931627834443637514116829238439333515302538064125828123858602500011353482260086766672523809964245555540167496889741291443378521053101753129764215442378263787415315157907199886673580268802474826749284186178270897725656121464570714526686835172558776001159197973744385743479558514609405729732087377521323904376256832701934756475277152012411033311276580895982201697155092146105555671421769031116930772842298829045677570103163259419121086064851391664400624796383667259382375897863222455203927969054847311924840032682309578128467846680850410759614140544006269103299691688832633164968374879018977498734260729759144170778514190877964228979433548567445054369832552466783454195413508833713327279453328291088050967760925857269627146614416615984348162966709668583484975352265030275528011916667313428206749886282223146854330872850205650491572711220165127934422992415952875555686335115180101398847358397917850535258549115334461335692595393767333813376844101915016054826836230463113697188056427829751325105761114804484674787140293202369992504462563148076982871034551982688726372549147537147810026726971307015447138610500245978897850381653700316519069075580203626471176281663461307130163355092116972244434867325441517269993828312014448537203551238366619153551824628203625822367302795248481594429236939644973768522205059347401025861855282188852208594140487933270360162200636495543883223717738067781730456559875725616494448375425910201156223079478444503667316673297041980717809337983975282417106789412995202202743163903534838439844666664451053156058340790217548242291548655962365760909374203127528057651136128335704992351804215852404705555736684383822367238476229572611299535545245231762106887464239366936956519591608586312999409135209197861411343189486054909708015098590641078337339279391201090256866028904038004766388653549080586981461977573055210406182883529202567470200300945903465371271171607586175987812812472197625458148436062008125882147059842672837083276507053056584669802614033967176929230058136156291909597601910421605567864903807222717100276504156014638283390784881850830717942454795653455580995599514812803000062768422879320249186392710601820342426489077406150943701777739126763208783927687661711185059982775199183385964488494189549333201073787118549780088478460989748549761474136414773134152281084977725241497956116398135436322153883649848727615008623889425678929813513673572388159305868775909800320252553971113929489466870223771919554920657955618400907794092996577288309301517929310732349157326128772665208466583382045927469100826333356656173377289165594265863635718045752526356859208011147298494318835374598250005139519264759662307582784705116246288834050263006191683354626002441727081202857652828171025553577527427981778573360344625952567325068351684411373282721701713018318279746367578230369720233513087181950290006593528982939116024412480103646577488387810867545956181738502448107175408055537539235062194625923197473787941037053561515708819751061506377987455948339381207375887253717220486702216827470961739393402644448719581889521697273934091735647795911803047724379678580029216206120893007917767915465223053584216988011988188518253518876217281831316689567226726052233447661731498087682172464430388511188294975458436848674488584615061962132168741488196372714041321843011052829388194359142943430545646134193198202740306213725184189529738109614872266673362396440029149431443725792455329939231304070447083425169218743520532475688113361432130942551240880860929857214928713117203185044328710873600547460882195398835208918292022515711347049130488444555920429090128353792889919377366756127366515573397865967153654403876006970693809669990269759526382217100392358266917835581931201504504042567346460061827723644861959477513115758860135537499466392987879903556847548793485174102488564637959193737451727196607205957580135495500050706130714611260364214908330602160327834449085711349170885049773685906987688688460796238432998720942285598486050140266367751122110963848154542799341035146784286314679366992954035410130674451294458598904116602442699954500326091182141989627409873409339681966198959617050199702289118626108305237140284659209553524927376799707369125624850233998523289804937701724350757719735256668638660493189605620603089585210792308372953153695029893503911641622161008343865399911361649021638734018225666219028723920068051233653051684599438266048700472735335335532814302647101995305243923009928770431016415663991775438732477422546037003487478639046684670615254968543298956523512830883370179657845462651926729014448285243561707638729734501523194816940888349806252849042512553131996349385260320436502813400151719722166823679345533945486624711734975400379288888104841528563847510710031663545401490173714072872819418056203097070801034549139494147452948213697882271519073461345051587940998527244735223662673192012263109741553789394000109119424471036405862120198393101029149892742014529098567292010849754574353340604297808540824972562113520936496056448943118235653714964480183871260223212184776452305018758457316721415872881086320365212381801616535185483255583565937745454103602454031581585798526896202519085396438758412063666125619799975846083653461368633569734522509517677925725708983399191442923579024086077402613534627599132858145931235520958840136848245748356239623489542988550142349156269603154003087798004567003359808045696347881234897084968492976000547186930654269319362148033130045963015813447703716779282491872092692630679536250117510147275193727926007664038609463923566004456259688953283537932844124304853995366402384761790040089625301743070470834225854137484874129901003354882070724726556073146390531283874950374015153228773177317207488960779547354690909590704852091335116701199497515380838705304629246195798973859186548334178016077061220429382324500225208446582769597907767881222543093966963179829615182349143313517115553272638186373602733473237995996805979222185313033953058273727852568881329112477690618865499863466484824210049277045091842091133859505891593946585934247335992811904897020734775503237420020180714809814628029226446710264753508287421042707305196607004997441442546824825662226995204559851665054159210935426941732339903123260488659187770765233333903793881799639301883361983970122709905377626596024945218449432872643218368076768825494328928542186687773611938596095255038404100025080858129774495438815616264830981983434738430856561754044598238393396856137835629011932432825551778785624258780521898606310460746556507623028334355756985868002239683224801941606984628868704005431292220909381590021813403596384238592782922795693915134338562928181370460358419865478621119673537997365108295160974520689883199135653465189969774878183081210957756371092249286054169325862732531740518893664941507677175012146031482801796351861798614959273378278073435106793285981654201715477700848520716398194729528704171068726808323771307393942754594039565208612077530022763215906938391366681293753110334315741801394306378916220348391339904433330760959960189339600899550875005260243950572756915251967765190683793338944009621946476235411301967392768686589290547983404745264870721419011393898749445157887840847135610943799357795974457586950235784034273428627416310799812912733451911453210475232047852756738005370400049434238414667837934332041537152739538017398014004877665681463013774436792480796978825468775817071706847251353366835405747311632815804172752435249053021408467676279974352890127416603595116192080808533617079436273886527348233287533607233835276315125576371096214038165989500771854772672052597773174225334450530769376498746466799321744552352114946370267815632587002466432902903050061236087964903368931370015973688752993195825243028679146758560085910551814310247196107539507382126810470002641449584694642858396212668875984395697744875232317315446524594051175390987336088756763271415058907506680275177048596499901300338354744783849586458718287083082301361538785035189844881032859809842515656848840319845017630266942514384350957751810047940927023994815390163107734568388753641026416495019673163859253587550303503271193414496864861335135858022540707774739430841908518738594063223678330324335074432243345776310245539238683346055238426493949576167995852547590914397258703431594567510730372613607357857814949193405796819368594937287268663589438193580632753891528140261562970735592721050986796529989903300288549212550629662963076268451202131321895369674507388486974333412917798566564559594154847830680796546831419876361562394823846726087679235167787887286439518388586120703124751809652455074532895587699064746420777447996455016855437540853195717753472903847950688214592311017057707008662206911383138257132951227572538788729177070971894646187879230252673129121668053191025364693226723078077241204800880945163826834045609891521269272204274501450882076314036910080767064564377801097220791318280008204660911009973073029069442046806644681131592685401586438708698480612957021853735677040159575954796051532366555415532805011072830605395624898027723584010660364756889385230474264652521845419620130988474684105408600722641478277898723986830589078774501537201365925422270076610183860553018759709953256300452469201812576602795488811073955577941333787620322307261507685562426471964214415834052750191466764090214808241719249667526472695570961426220970563336776240652262211660371400999858096739047637121941461918995944078386503678055903047883754039200147370982366985341326090877392611081257337080194740047628046979502538410512195113275972228589216564608928185045870045121345914818885378534945062575576084906435316038838412333743474690066835176783018868741735470231553887308123044306435341782444472002707069099624225886943959859740814974595470252804333975769143702808370779410314969533083526650030390933774853289077249457105221597756169280522577711938380730578984297494906280212165795857278150171893695897105171381292597767340457537843593809689248502093108864828565067571405165060669788269356662865441004995468839730659833830696833944003079287474773764463156421910976701211376735432252447643048714381308395254742391011792790390337914698194484847190828499140119532274024657733493307184610112464800639560015624406436931943378012575642043290155122143911383218192516737724349221944418533329978244152699418259068396455701587252927791520044195175777880769718703863153248974955300169064625139765140787186500307196988193329582286454643826076062697707904705365889598983642560278982396561801886720578233014706824690322383547165898266503419701649843613385729758382913140785066278619986468023682170869787171807733354645341512064396372836801126322624280972521179600112805572598989757018018781956147871172109951606718030345392723545221269417426425521475668514218315073648888369893822047881959045799524505967915071484387025950724639296187760676670945047823128853648147520658760814217288118600491838903737782504068289696385913500406824520257263698496733569895389736931397342444349407010524252763251997740469376694594847726870703157925308025083698141861018496623202457365508673107765473099614523231882296587580761103435497568403087283971987435143709363948603789484007418383963307620006954963337916447289992059146975051532789381703428031176503422026489165184452438350948922136849112839196404197672851745886223363660783356432690744400108137551997410071440221441759050193447738529574220982261139814469769572999641249109201609419128826407142635521915433118637483582398712265585067895087740797778518355913162148839220367208579587911760315010723097520217531539498875417333553938346703260515131603405400916192909081904724517516278762383349589026958308303728339374020786614789702216139735276717356854749685721483440327762133546872978263474761606837108833856876990726847888562727641912167613964716886484527576926305364909108690377953873176624743774051603238082481466268165685678058560293119775238402043415259083412112993353765632268535980967985025676073900459816975259012526298350009488898061929252380499624102109120482979511297709732821790462797279402611493608823317695623775024323614966222131141083739273283141186950890738378531738099129512598386509160459080110348541695420887591085666501423023308889378594139828810957739439310368530868025107930835725516036663649419420236843571361198280544529820600330991679993072237299515247927295124138639628626026403640793072875190073458326019652189443799569678485740850799235732647591902955847901881147575960355856414334932506608275138759853728310464067052249867265949298048653851211980180150494870192590640084858122164463997877742246440379396994895478115302565337767358032641134742832637143322050191393365114083623542700688469160189298549276783359457300422576077269867502551853698058068097876297053686977667430107995368322259828316341658466193302302945828353972989004677224767519687814786035675163697023153985351796733433459735563470127597951539281387079351980544002105883631850293836769406174263397377795424641829152606819703416790785555116340805650759236817292443969331833062163785993796685090175883525975471875739138030786144118859745620365156201826382783670516142099167592519590036699565934771085656318351736497120907644052899804522945351078613072020140215946716240407831612882220328037387342872051990677621422269904300860206848102229163207418333109348698160258860640480733324229528586579891763431045466112001215710397593671354274097147960319398879062153768841796798454448819527175996333467183686559983503306867432465334453555214244837941916005735754690087209103895513414371886337929194920275350925404949778460771746715693099260918183580135482098897000976450617423864220523840657085655829083421568744818425065483795436002559937792476922641628904825029845913841766170895489041241883980941961424090727750410337153919711800014283166977760101833001155012759192253554035959325620136331227586587885599642589455139457981794913522624718280957201516003251906508810586673310167155080426163173071343546569400087894845282889065358572822914978321009618870258556267077926997814097359669430795019618816538186095240190500159228144329666295674862665707990229449256963056751290534972302849872351868915144691510613124875415109897663895019302478789921565143352976087830709680224390067195131789392970388233081462759503076164992271753024521562779134588753916695037774129727927921609554573378183395044418394903928748462788055633379814689133476279189721307032400999618881601125761318892138618888869775243562638024921088972278830049012936001728809407041523700549228822584478099876989335116867813305637597206045904104396930263607028371089545483395365904049582427108359481948130165166189842303890819977992304345632995651338006591796762991507777956601552666022329278190250493173991956342915449312352394397380032137145561736680920712196780057187953451805309406478147767997928959653398499038499921271980662098185300652025209868071486313307141165077349653172241283327115257762661115619598027912919972451142355898281062878851607971677112377372862348878453342724171197227322678406611570603270003488965713913287812469448209801577292043623809185960569430397850363323781835018313087601539349143311077660012396242788217449605441194681856297471177079900617616399012233666512505645377926875225361740672810899029093157078745901641270477982909069132291911137847909828856163361013637561077648451814378973450296137293406820591322555241633660425506773809547040145371454547482845912671709213982450506977695851713497224154205151002037868874963563868705832649648128272825053308930807382341208213687196960670390958238584563807639097427295936933513761332758816346436178648761450136161265427013214444969754201962542291866129786931963256335447500303044249742787407616634314964300046552541893742809430985335096300172769744732961149581513060408916492147479383895489832553763761534174367142545720257154084938725967189481986288489821013861308096111653656137528543141437510852940032299366506089077246590840503360295578987846256569678290014075072874741995119266522957790122719648426863937558961978645717055743459419156778279812360292019898942268153827572097375951556501207081081681092836159296558582971238665358304514407021242511456930869632944823779762504188110354340755452599755758314904359543521492849348729381389629455295634879873024494865823092057204570754900508390315567465162954801162958345542335633966673780143669625760305221146935413108879157229760853812991253567712832665172273804004981822884195617594840425964638632593756155143988258028621982911765723183850278965265900842434856069005521198217228594606361532929607993379860336331619169089676101718560526415042296828541160769792688178353727806658384669346972190954656597252111459005785163748606881459841894975489506237628261315182027054014371223371741637707524309603992037797580156908376414802055105185466099096754709460575298674064844200353049409863355177561326162855754080949835006271620000316503668871362924818317139193210095801320529049694645930463007701067951719846211625579604982962010948419651598874403767738185936970294480087074143036074140094982357656264837442237862118739367299633946379471173049492984060261207996881531993963029559391974841643991350342878018266922348791806644903296627765839403420734751785775201229222920292050429899690333602995709586466800086515433193287965823675727223853237688954262041038442954889970180892112671240506610004457861672746430082110341290742071053782678254877928898716862062509611822391247327347052505520493848488579530331400568355578772233552849668946544280754710898115437278109095710537861611497187779435366152228944828628696581135300405536938082000925972956655856599795090382237576898818933533542339782664907812385304390736431412775728358572044727158259348378425542333969330117092197098563468522274528224149260296584352201838313113195356877317570475666986322727712544523822364626841127065963482829641928118694290631042923937767882469402436577984425828100275927195403073079207908651827621272219182675861074643347083180450104358971542725548013298801352590529198907297084279804816878067763950446382760719925443922841048109884846770384278161962005680420142241695035246038821263905107216551657493292916501765302447684418813720853842277665615712690885095167522076609083521634082978739656063934500638123324373823615047880039961805399252122753861740905064809190928956333586005676088714337033788423360875120454832153643383044553437384111130286081908280543578090975354318563262495108487018191820045079171657941654354006085146154245861290294809503776406583504991410245870704249054893188132730145474678365119158620218427303686123896500847855746572291763955632818060952190251945802784999765939702218961035173801742045009102034448974188984519567505769757654137177338533281169091643410254111851425684869040949202368329679567230735590885034756394917779092075339749539197911179825358485815940100097875838621521526539277824641926721000637613862047555725926216337643760414147765505613482181576072327175552124297715920367814144760693096418516021804051311097680184880179426161754131163887149349028813269218814360731187455086241716718164108315398751745296126693065381745543690034896865064905398462601667815217219450451086454993516392371601459956011188749255089242664392408103539546372824815148546245022288225690584911813168252027237752923812278809050122184838249632434398474955336530332925452124695791585107211896658395607789415818714513087383953646357204847059597878301860042438859977817525390619190631460711348096880863287362713113786727870170944660733214717967921023860951114265208463542557801772221515987918840720897732828889046458124989958853361312412062102477125504200380523153190114455216888048426271967098405627683691263423246625771787907044584180947997032370144062607272898979873515533510128375198121951528636906654578956069977504272516191361507101386892857778911555925466076497497674024164373290495392292543663999015470972616088510884861325887150015045169938398636904323411086215839586066973686514034702042149056954232906992226970296239051437239622879140593910564373092563679161157461712234813935403752094636583490241345209350319543027756267965424489501871101851527974338250682047978975215574423861320238485714972646158530311419426531856565780414774535897443802525010151449191951796479532978531413325775013633051449932105429021816490135344704095824563476126140765589568102038279984997278969167549519217408631208061166598575683570157869789227128863224927046443056295279268631364407419261974042508624352208112115376992205798642348535666110758556864675087494017138080750272565344550888755883837241468833671946896762063253435486423979716695515916193210597078697849322619347077034639959018384468747108184043223346229314970579294690638024659456808326368876175953746511404180000461167131981451599098193945639454724810958346308977107451319264803959189745321497461425264801407667389039523638262006410767476559160799369353935866500201102693978032962105854979615980163895329984046958299717201024410365064320876336635496300886491815645614978255584146385386778975025726831835064524433473720384547616369089605615200231041514203389795610293088937538788856700478726893532057094561681569381964550595349015889716850383462467955821853637280006573218359913215437516288828574912918429649972323052819507850999876888366322616668024621898135881866505420912008856547413660719245323585876720938788219934933771209556556710283120285706245783318464587109588284224858536299389746453605540662322975001461515159555890007682634012212226404701242524913187571386908422540872278206035564327057298333563601183260590843246004079706224643995946396633301216614565358883568900730061655813074661665908962606214112756201414052946838755281560464197683583132040009993122548739465301252752605711227390796278891836023006380283296762570686165603409807970390993142259379518107500499384658589462604002681579300553514416447723423420567280130579097354672947918147640120511275781139274244804529841098216751269200403663389108571404494399640938959245426567552068142492342209272934882544470167959209425217304531433261604106271089407865266619990278292364376362981200212913709721094260673703616650898518245944692184470188862900310623845384271608172834027423685302371622854177490727502065188601314327580837133523581319319674879885699865808770336140536235865735755757205159124339122422262030570871951483594032144521854992769657360049524010801317648423936795415594118714711798358406533854024418258281377388870686409677281147862910604137201131170994290503931962406060470388901063299272783414805906878718847679331662893275673636006682289638295514496824183120148159328987681525786658423894066309580944363092248605767084539272417978208708135879113426767712569748508421975951911099845324826289474908111696968764597775838227720133703933962092467360062736094636700127020385981681535111700803147144019960699300884862198632138245450031502009991396208637243072151721385137511148371559742160821677100151205057711034997961226303323408556306600636925621577222308643172939013216230315320662100510442011998513525122776846314177643454630470587274996731753665719827451920162242719477291510033955827284362059971620009804278625621819629276723087958438788544732415719712363758863064749656913411612871003375538372285218714602642480028680262827535737126442054826645229597079768311142551889802697344070537653099733408809028617679611737578547202980852373702796048831596666320883211953298070537439611952622904641866856818526785149478931704913616816697619864941336394181176150952093653279040196507912874575411392853010652328565047553481300471087450764082728343450306780624992752399327409675137479992776500573370637675256954293447002699599587897684253099927883920777725037319294158245440508995919096493974632652182362082506851977116603642868440916614352781514528054275208842802382918132410757357500949373396281076533339864049708866137939408205285998237069268445713963729375459893679856460047452031092958870104806702225277967024970748379090340085166071623193613849418087010792153197845478677361351858880962284627256968517810188053814747085174058329535521554026801591095053970801637442159813958685604051699246273529687960535106664039698143707045879154915615593690327189722622181848171621794635316728113231588705982034203101192294411655437272401568330201915817160521457493508106997440639567462329356352938861855897864397109635998110806232128232350538585465006301708615210818770755541994531958656611969821559965787032599634804948129197969179081434422218449034162519315634453873559827825335391979000798076781385618293492418972239246889353906203414469887515943264455082394312264027409138967705496069037635650894398917461298580423291462577316332925228212112603015388073769315810088175682908113139273283317398237786895265519458463414958938025933703903327232761207723625127173667914601766120852414906228235726352517315069993383280441283437294329826881476324791228725151665439028811675862887411377342924096676925165718286557359723995663144003871001526683501786423907191948608668275767922828070119698062158702523964706979317663465396566625605910145253256735346649576413514925873375396485546207331670286056290924408940140323662896981550392489440140745021317324515568245295271645757915320354601456555958829941972124108608914585425769144070428407954227120778743191971392340615594283688347227662760398946852360262996214409531379520486168548056820867164880307609823806408555289926666027992056611600270058816012143208458903390086436633300824389133053139396527235433946453569542319238401105729757945820508051784852085451295909404052743968714872496509422631643209767037292447017265327821121994957934634102968317091805198852738452554946093468789845616981917107838270736823156936830401205078563315298203017269017159585490518177086646275505217374421605900043906605526707880990337912726035536196066988711116347050051776083917868285846833098083675818140302617834343888847767368463909063237404096100003708472519182494319695127720797437501988766797776349982425289828969451391976914151517532040603077852197794519079350487491952812205546453363711356926242120467211970866478668197067006690568482999149890874076762314917522558694294521584300768467430806063957191012416268732800525094127276078051540533508342370155420625991642502497643185309006942394074873662472312289912173577880015585430964235395965213290440055978708946339051033326232522463480112713302390891400421680035835823892759600543989142443944570165400240484413906393557903950508024093006695050001241016122281738105960014021918495860102876276010651514836945009845582948288807266741801615266276947305927106135395204426798625686621387830773740958914697027427685295240577997155853164202415942738699310560615422823964419447894922856517403571916881890872558729800134958228594198342819700939968940485103049199009614986162770063717716699710354760940353695523217217596984141903560749764373367893308858751045870264232077351804868070042070314531215595434837739732073338349284602577730559174133264600835370674936962497738114332736125661633407716194139695554992848666344871728582126193892006206928749061662861814461434428038878425773961930131245457623650845361527664535910538968404734978899521087197851599097096624490747594833947288595656849957932643958424202209611826165574987026145429316367354265665407359154858865913314002818597081777310832185215347653118299638587502833962287587368686304375213312256776945575438370690984623854743977795851984663798337230811160866831711616472850682143892562126664874337442612529408130641718812656647467930601360760159839980576658816639340044334168253935031293060087162001289930390836845482556015649808764531049284429028405982761301609594166896595067886517217538157546277004433261343190391615998187283813124621530319949871799737422539691319699114517753352846191124385435200195348098114311937553090636793122222606605594575374053985282477686906040754000027902440130889488251728500054363929323721586763845187837971973000113964760821627045196024678960793956031917380547953229092495350166339404959908748584596978204089928205041854096637219817342678557687209664528692315713578850209175831594242208845221954538482124015550003709569037148213234451207859981347470641676603502840393869386011832387337327444103975090822147194204658978191084910125771578535832779077583680069650446556417033933825084264876112052170935478071745364052073108002313973792482451396709447119545436236988095881017510184106822111941136653963753490553592000996547722695772621548540304604140652707034931403190233319041633336599683458057633435973923742933367973668138930695433200162049049702006561410348756275567957628788625687551618544344322834810780987437706632143391790034075725261351538394680486577564518638844388354161646021514356365803180173503430018751549618639468414127219721514291022454850630025819863925744212920815869410168636326691933158409906429929273875951524113612437788760035763358198683965767919196071672399095456049674718402782189767742131096788007178191869911402815751368284861468704294568284672043007888077235735937869927307444036207854699964115508890626222127176507650565742328293428714903825548325250397198416770057622936674015568487494218665289620604700634987901958952175785860710138144820246642150352929229808017658491358595915446247382044217981441264505748891265905363329527337770910876708545825209656554126815343897525646034980016161601456080175974815333685434071185745814468562049059019650856281908557795949475767408530898339973739182814848157311184396919482995799517816067645309080922928983682677663334444648279566136555018332256943575038830049655015492724912848036204136734967437455172183774769315951387888456034937750776914744581212751827203882021370085534100211996639312063834922560645246024484871359861532977533888649412015960582904375004210357764180139718434889784054299081240745177340582437470997571968375681439803165830790059670509027543837888772717882271708714323583764171661652383206134773812294516544792151649646533180174927957595370117567034233190394660900101881454816129812290625243110163629161828251786008496467180672093228377538123819607638535960543489877621606642870898530515668712200281228423835765099365673511012479703225210270727173939306574005165519780682689582282319690513134221561632877497100977733510650786977976435934393872555983089893868228842055527130289078306102648652867985222195267391977262009564680799159181751217294694443220177134603524501873242908862855220370729235024654723681567183088557727446059366943810609921648887600698990932527074179231603098009035405126494413338890800725010958737746372845531861517911997708795046386460963181057741692866885816095808607526709998514998359774410265059081096663536839048072848933734449614751927702590937198354760372872258497766885182753930050805162024204132635597256171513105514137454227748274967041793609667783177630462548668183621077020362719724750872632658964066842327705596286767374441225033905145959521089771903068122973317645773048334703102232030282260536432383661749690090911163804497240738432283435186917404040062876234712453150197099869766001078482426657690121913480720241670643807031582372553350872958048830427866805623424336000505704923889883266088443995702341622809576248695284385392928860777287452751342306557930597189877568012741300705215737186373113980582287074159343979664867560768161038500585303258664109972426695995197311602539840827479331520908442202685693751660928223989660704869351128202270290383606302347448365635508816245681947955541210949326247511947190314117792254881711238801711770157394784363108720762039008792641831575674394610543919999477977542117984084510456896324832218453685908818448502712721841866986063365920253842041681691519211729296959909310235727204363540197156197858402647409958682083672612397249532699273098072990120503927137421173938618868419038840230661987955937322758812113536328897061241359034056579527159915996890878797932573448177263332889354871412575783176082722584051720586591116024800985439162816529029413465003164074577375099587380468953055604868127328224560326060870318795987799967638484592227802131784109727910219980305745269987186449842269064001315205204340650808629746032098982780219865927202272420390040891771740251615315794125757978862342941521420077658475439809591494729072258100351034947648087551311527494586977031528751538372417608888055013699612870250394708982217284097845202442819644028633891843078737365078816540242477324433858322871226937193959953252762876585394382066896816584756016182478566092488063925790143318049879010230799781552525949361230054146084800266404748729655132601798133553259418063266868758728562757446946957201397672602823921307279188779685302709286169057356808885022122356694329266920817297500456618312349856354288825444590106794679815881774726043356263630612704530260029565699377142491999008440329913865894601858394073061769428097871428230756665371566967778641610266498871083534213052658237311436211871900992019380927168834086993460119461387217077749489266754441509328310877941178059530697700711739188967824570737279582873778922016005804628493518790958619158526329481902110429253190488791891872936790638048489897382481239756550302332121809020992131683386030895433132438922028784358334932007400514772116893481723124523432576699716275380751394500281818765302969058149596118673770807650962457986658626386823299124030289259693456051231185586872570128969992405707787100876573654330995531200741067532673221956967772482515679887282395284463381975903046200716939850856367356759251352517121185613455616698897525254389951825667804996917137705733991461685163666819645878677420161322726511236364766670259768008356552540645987881596292985974283222543561308874988087896536458789347125669028125172976140570705581782513624817972710281999696963872130578274660472977906984788592982146140937927124284792699786767075537125713812061270312095455835525601220641151860178004228044266331304764653174057005006005339900989371161479423896469564027074590171707433500835154502207928374592125123924611909590028226111899502226342746022004916186474840982643105733904312510287138214304218306197173782438985070380461206295529738944841549727006280831811498453846852905914270011134305834675915856037892013587331134082349000111328108287871851904619154165134182304774103663826321670079405278509478971313547760368227174086111998568968624272315084461349776643707380351522848961648530393057882756434854338513139203203307696512629980154368016706681306933181798572294774196201948568003324099845630250210244163030420864410648514802361521491549494708508922948018975789471567321092433796335294473248287090353744226626184768845373217491910947285350801844753741323625738216937666612439514294731525880969719011898456657301323392966240466597584663657549244206014381051164239734501567597021682322119751303071350733002348275369845992820930394897241068972883166593701594921252691665563952904086399729590072870788859578447088777916482287563481710113454232032692095784805573302689678270460477508385589097672747064336493238602317976900525550029306471935642375243335072132164948995715903056041841254490549190875116306197689182379912594591377186881574131703895427110645047838949382713574705180064813063475272942148859315415618201208215589468096297976089997228750255637240390235214966456722088342984461330942597948450835686589399956229938711458326658186193971702480993699541496508200782040125873348232307166655649378502767808410581843875383546468661315673416669689558967922290846653666903565347601909293895149142925606664184273079672963712809460885201708695596146016833412587934508852707040642478683780460898300533774769184726018164554202167871554564749532977689715027483038782920327510407548755747894745226316091032900641656855929046672692511860788891831906314107438473997537839163948348740680502959722820654102822763486166453862518850016231396908592073569761430015606822604427588747938520307040115270642361299010561895865032271291391503178460112345128486532350320832313097829695677288332147683972988440630030679658268445949259429940499520437663463975445029949593248867721127315820353635946832501336725159934015822974469345456812785900652205521854970781316467286574944933900853412195174276773299184776678758818396100730836954707657570631511642878636344871020544035749928799768088934660234306444788061651943534255662699245887350147821414950964473049205360999421190266032055410108643442275052090913770063852770263305890838094402200375634124940223829932023516407956593483857875823252363435839885468508763771521894980105287098663046691326423948173315377571610899178544376703392576597731696089523800481699981644980263917395381701186743170797868388859370858911436468072625075631157021407381750043390922950510340240108110778117364570495865864716613534594861085756685859510442888826064124773664666072257937965034290803450223059655424182735052956855941387316264179028128877887018394094652743792817753571664381726674608300671610928368842333586539719871441970653890642054979828500219911893720940142439036257168865263835382154382691143577205815380806743259664539857450994818393270493384554581574614918954508188783690313098113940242665242855822742921726916857199765659568120357494057757159074568399333675586829990361785882095981161476135159093728861575769624932122637251114042569224031024275658703297756911738622613623893850798307147708252109252673901375068826988957086879651556183108548372512863747086306840923705600394989080313859609783765539032697663786145762130965807676204897819808733522384761408485199789321729405855551940375246388755195484584771766594589973883099598256445585465334098333551438238624097462031639677315081819014519664836698524895804538798328555494195461083425490021225574931333981727402183016994148402075716953263855955544387127883134761713745569094686698132291668401477569105731362861676389293860733955696207244490024015702336276107642226431831102088746046128235603723597028602597474522013773808316596688673577408512587839200850357997771019270572124570909164206156477117525770848548599350011588535482308256469409903520635884704092853691229374809275599696184108729563546676601783539412643488519678424140021701657187314536328468361737389024665858880381709867125909613551671948848041752551403736624691292014486315603472572609732269523528525337026781734147697528036727392815085436097083301587565588843437664155129899514234874221036377948421449399186688192594463028867745263029410511156948066979965871027474996902135862769279555308387356393208723200640053754045013593524928967060878082884052509967944185564768147846020779919676044437653806191349451560737879749768240800977243239931967049048223437969090569205942024739757400463960294098940371638660402564712332804238277994130911624359001667551611929801309875756336945263653366804897318054655779570269648943029263641364194640609654551860647082049564980636135032129350815060325086897704634573226404952442696837196684622302590220992354905314532607307630427092478787362824540996952851714551627861525666574085547357062549850425562902561472309024250358362701116688710848608599039727840131379911803384516347836132040217865550026633629289464631664197467832241663384220790561694558478938519492257810216508306297135780374701802886833363088975989420693537357317317082813174069789397870748713554921435307770763297015640253213675547736557511406827984106087599291435068350471347635440593425249997973760111234987839628025919416439131721623885350328857805754157496305157999132716246909276786449203832867093007084114421664304047739187068273846645751180749759780171548318778422208304372902555940222435938243842305230715070341303937735037612466840187616031463597816654772545420069955998472396653994203063272935098015480392736292942355365844554282428888166790115141831468619934773496650692779452655396678490754369268006840713525613649915499832442995533683602259878078380565474450873124993518889817036928219838199831685247256362148135876421163694972561930148868129815666391022936103670203526217856666825621003957483740227279430396220447057308483252756397772055113260066895862873863709725377627213143742015747398952256783223232217051206536495950714313194331193224366789611755838563148961562641160289187819670814431674436747702425701808029080041667415618988505259975110284687696329043597015479450721075443435235793669412105178515956163175596003354691953984929605958886954983117759522257184284644056740513759168355775557404980551522431707613440070562358504243778684977670268418892244679971117346517160733320780719336515743495220682232557285816786983507811975243411941067849664036087024855705084603855102138140270690274364779797951891037357370776204474892320523522955132171288791638535053813337743500696926475116316170867813537340949768885514084798718727414320522912715499324227826860230439838305194763678977194727386317782535394896794348742460192694091358898598591903338120651762656156236466696915230380691102926883622071323704103633785642608573517275152345216634943125975909982802706062235982273959756934777394248828657519469542484237251217417108507379874818971395188119640558056115822588972746989578033407555368386501389946477683267126715635567211680769681385964267827931577282754535815752612759343804789133247509743866214310924209801125402869111032138043804003570305011673608658270062452401195613374200475738467995788075526635923418831983911367484138890332763004512145860073240946857040734211117077975135049240854436985273444962122551027928595230114128876905205424849698081026956235525334314713212762738388345264324714918102812463824527893567105395167048362525199419543613137783115998309829482413819393581286595030492864424139450158695850860676445904197057166419508959296713648186690036938551375061985201985674524394483879370431364903964130011508669163489911753615344414026533710639715699611001825387189126856271612919073664459992461110674184067010577806500573148311189992773248460697022298247448518743469754869085092450602764661356266864214648217236809049870988711451225665973703229847191803362118541222650377676604834892704456868060935289729951897636051661907357635883990560804792233526878410079181074713706048176411501968292575296952469651543624062936622708184122540508176549817177815897761566395470522009971359182105402508203896654479447286091082283150853128692880680629949976137417699021565887403674730788266475782657467761781450783894078129981897312074398795524441569199044529119921756773697702885010191603559439449090989282310836570483573004600777439718854398767855241132041503861816574873733786004335415658183124494952766311984623376838006327467403763252523021264286947348464538249592937851423504162115379716582141127869548409053044928001935160076908374786016982006845390215518778975316471251511482304243616315469947241720802575989617546953933840305278511270126318865612410803728208285495499815164309641061592576468864280070503110228375205989092491936193503997945595572011990292732305757239958134898579685842702710804509535832988581417679000940682058807226026393281852980870455078077714013684208440003721405882403334918676023339667593417504543506029274059965731622734530633328002643498957773836636143947501637497715275336520361153650334941935180393779960484926309831716231361779198425065247180874444269027913212441391003247689968412835805318965197942597947714056659057185056584413502131113767750187211565198462861421425753945980184561092592755429007647364552067284877798237278142211418694603639126864450657498088188310657366470436167956499520306414055122779072073721389588752920470789729290470581212586282180363795487099241449011893367633152404117253413673527103161673058200476904036508202994997670573615537514452069342721324648803263884253279428843579446089936751346767497063145957076495326498638193717263936643889521930890885357749047817599852361530846292202870368025618433877644309252989734295281548313677495781033341622320891022149593119314388859702540788472032876297987363553535211424965579287402060448335468586395605206241726598144213521357736894087186149018415526782243204475275147964387174326632727317743040206875980434629848159387140790400154730227626230172974889304715211062990947035108946087482773671706280954453557177121063358997932730201926074818299351879883306401857972787083484487575046290968837527987817162226949215538350508090887359169399300590673978045380040591585159641744278153881580698648637475726928685078515978424462932838857621468722855151472423363105937389011875875329152784585401678362093986520979442027652183074886964636124915844426590069009453825773185211302606889941673742775234149548674131219189581396144776101575248024817457707109111102026558092462820956795015788560216538726998638234233504552766870071800093499824469529639060859708822471922216961793602694356740880906664568216643850827819413750651217283084108897473158438568839062977378376007707347449932799423591930041495770456839889592738590250532913907297918191989626741505029100552835774873400394263931835407802415257982771996554522309811744187202967286896170733795949691401570642642667025198355397967088137227214331000861629183554179351445767238564859341480236317650594554996264548294733714675145269775203279549885403930916820531401771173061489158621322400361086081382122686778045175524697464941774926085898904790957775836147977797467381743596845112578279141525265674610069028874905817242976470813855682088370896558121071672146470033741735597017382515128177040847353337627554728897350525683204272355144925233023091283370902468711315310958440799234206663955039668294956808766821690078250983347426587238777173897902451085466741062082169325826412403322991542465488074325195354472732746334072084027976958845319038601796908450266664687753920855577297224522457251770790658288501186045292738185842949130205356105796738855185575715815942532002028351432193959057802757185489191056889669014848344368825611390036911184016439985652540210724684952091736090261761688581652507088486624681286917881493758058152688366286349623509808146350401870976523202289379336310667920710303021704803567984877408605543950528356642194908923933828384421162047951753523265672205276315585241388672427558469483954437960668932124735384724858319701517426642324881845324949919603927267334032137806237887724706038509546844728514573108931421346927409972498189288111045391610713979943547229343766102492023277953374903881398382378213118435198769886322533357547203264042090346013604876853228335847410902583267077817744231502652245035484175654797150512288191964269227881456062214491908459699998325702382448565961867720467403425036502828449656451553517821318062242294239434995533476309834058550746151061275653089164130553109787888615579459533887341616553382786480839124522135857564653869318145261893162697276707067462646549408917910379683131256876816183936003599281852080798090123511398837025954096358670090683674828242548001902971340122383213150460420120367602430283999324453210594514058419984537507279625886966955276679267103084815776155878016111800981724974450920271419504519687894883316121622637081484004873924971537053761798637835939177822119767793876038711725169956478757190314139186435775306531999284872817636012597357883810415182458065910815846200483263278964736601439998264010130588714104310053669252014874920816932244069432242659321933492460332073498817575857428802951392706270432046969230693141334104350520725303097690695786102519291759188619606858174632917191159841795547002160115298887204481932144806639294685803653932252470679073230974015700431468093376865556521138692833843427764753896481160322746691207912177404775481127552133956916002951762834515291443981451146251261771776333974613479931875573528622297807598823089808926254232941484723163261643837230975835016373974093776063821319219641133821573858014621075141015912710077248763928777291208426701347310170755554913178289991279643838563655027161132446556333943461645051224834577312909863409470836401970753913745660383268019212207899870538756051151261555941760885463551306459796300150465746835075137558662967546212804315760204964541595875180746618364172601074792721206291044224792854998580600305363346301299115726258327228906410855111860434541463059676000286682149122925512002311845444830977001082928170512823351939835760102593722544937144550049124862028540133542998989283700571291056783889357901320555518890222175081014520398367745781367777107103870704430800697935320669163516736086826590993670110084128996439150004953164442895793543140676387602993515848671993661798065777102571957170326701599382641591057210971091036885936064008693425068676942201043699517655848278630237241283199197015262754923564762783104175633496883104644320267544041299668967904752887835159791555959516533187315435960552185258597517371053918407542173424952636810086920240327968327763195735165771749088131643253260498756614748755617366665469086609799825396321732147550302329740465244457818436930753687922913935569845463358667580053678298589486377499631479723079845537208550966357042816955582850424109110908977066836584898540184513043104699998203239789088497332637194524431552455920643251312146611631297568793723085525687598096957083997716229558433187454785966577844857141861483573111785927529239899343869924991766199581611420358406198803156255481523975919627977881752349650859745705974685747214343846773407419430891430814138222052536779891293692791566385530500434054300954486375168519433643546379324994852990290888853565278272809213338622442385252322025982250382633188002775794711371601978827200794165190976645030137888505303186194702356256975409824931468683374507604191832610041260937924781907707486299313185052556764960769561687132761948274350365441858929058304010095478094181591008408983358607724775161656108518513080964336119271631695359426438780614197333974038699139780839356863180461250314735155150614857508316719305974512296319984359072584555817469666968371220045740989964167665014344977027888828893879532505579891064549799362319618417571579203226826854067615785181373814163975532533408263937362643002798696824384885349158619512151760009257953885850971342356488105068288044223078765038048530631445942816965074762791793035304195858205087441846749955761704961471788662094913994558747993122791412540565739103938154774120978074498562104435113586076989287112534971415415771186861582484616120435805341506404433867158653654400229286336228091140119421892880362610603184195031890939398911917781762746001610762417025945839062037673436005978703104878579536401470677260458395061223171786994860864554513714437023809026884924474634319000611191059911798233842128528551393739237939966264878462388624967132410833392179253258736746039433004807746771434939533662371879355649369709357556226772773775190125448590229772627755498805751659778031582111747311725059275107662507794880693266534928434808384851097474321941183463698859859929534394649765108391502200992518738733086227353141375691745229050328125096745716027133303769169595334412432659070713557841860250082162261572984489905623135288617088493620562086862488085869873363338869855778632562975229426638507631153773187973732893104475886367186461263499996256107928591600431691225369720651988528156074513780166419470212601378926906219897482815435123818288994556219810382959089304498460605776789075635166298129963155211454302317561168268826472070384054261424797590734542636070434573887937702269824581247623716528957930338364851006184622706833742785196073173827880572821695760174791853479554988595141318048803802113966762065469904302806412568967149613467182513431381322661275077858046996767265454206698509311042384130348846288054634226057540363729824806331056563065760314977567002672639463814963051950531818361671533422227960013224752012417229912789149687480498003523105499454635041116072509242302489038965628676877012607555453700880310534329984133104520426850538292630348934964068753544173164242079671145256024285705387994239362903121494429360910703266233485347781064633287393723542411737752064498683336075756690532810211834914429007007054121155956388258934178808345134804861538062687685233264145328611389681103980193185826533069224065258402325585578558648136160073248561249272066719860467184130160054892054082303515028100536170314535747306984183354571875873235430442026015413053675878086618223588144581627339509965555505194728725821064240071886524668332119928139452739328899902613226072830367534016025673607008448303706889174942851757201247272248923454149801880955876128882357251516347901292412816862885370956681444144023518318781434288152211315255735821279870552472346675665390243328074732419749203613855169406617589574164240661746095381037899329886011747419174954109543511103213712884213982587458655233778547441823951652279192780910420400709147491981706749635318607595357341522637991530530368077096625922758680522710093695884928569969940039642806978641857415004043946125188182128361918286017511309653187826263322939497978398149352076332671049696117494996381398039081568415509238824068062512655474639217095975311242618418168640290386443451234402758231504627209357101521923132318417475560898516394644371238141435241554255836603145896113900435561721384709017409259920209286109475961787922040965127384365255975121686524015236493873409789160892636760072428236537561336386454609211744350417833244185031897776538722098497898516457386666626129480003317425265175002631349842311000111889253223020733088286798496640547063501936950772998694161803576336146117064939453415747323959331401936278937367878495836003990905851379180858336176243293462961486103337832218255531930484410925132022403077942571659827042810977211311774732497282518528320041367282057808237235817768677602425629152525401792807176553157933926162173969323483398102392639530533087076169514857225755148236970866958519669318460876783554128029518923094379095179988076137757486068794160108697847883958025027075201548131791493046220782961619270594056724537962746862017695300038114361899686771304096439733590202054660939600954384352250091917970526194460453796206812572775333847683025169132646736510411692672989350802123373235029923613225701265308202487860302421535149419477818524883948835482398717380575809794451019828349695998482464580039329863951841138330667743639544462620227346254546206120656781542812268594089135261423001978063977203174364483021821186377866705898776142448648892808766738108167568856294740166494340804547250470532520471999888722206950186227378330347462932162137026464896879707426604439469166241337387127720817043619395552045650577964699992519092038836625674814021945112823889418318657856600076953791179256728655733942721436383615970079218158122877235499918947376572641387825801601162692988165684314572671875487062672537619359410130309589900673285208726431978079487185894929293528254453186149749044203587355593874466670844276377130858912923643531356458234769045813667515613107327307282130645492220250099823985948344159431811485102615563653078374823544053004884561634884034407285948276706313433958255587126503977771777437617342233381450326790356840446317194130059662402886029692929829989173237097232280805209703445289049245520911922260072522462747008857427874993665209711168546320554854246150358186890292503465220728680047800921215272090324997390157729090600095660100313635773719379528197011843191303912234683405733190843884670241588332964071069278131545625964566293520800171312489793293615699302801673468731131775465801867550375473335416590829161270232598374004883154787040145791522477484444129246003185478438010488090414309977624531309517219905255020153762352315512038040793761814465699366671723352356506379605830611755404060774202529898337832242483143729218608557053108146121468697842456184088625815219313783594820608954081332183675812554738420217030776993438615928539148755678966980435181976074681393779585841879796602512657443577389486991393022636248939952185384953420877847514734226494450536355380336503104412645306178745622015425366499630457198008222884843510764734646013451947129807836230131365530580877591262943422022670923828606537928613737846608820306309736552757366028394195158423844123977003737925977156207591766857688985344397859792579179825843625055720815695803731816808704718993900427311063048455583512950163677498241702758350783530686148300858278898435346005772242830941441696525371340614867037729730056610392138123093438114339944751250798703711184603005371721241346396701246376444532733364531154349943529503806630193955814652881211585451930333496021090960986892397646033257542212281621871845961369074939057725114942456750875623309699269221305969607802244959321222836620731318178074790499195216938147864484089867536859039029726852197487014135650315657045371082018714994984872717353389303369299517580757642644997090748378203931174439137502536036561939950702039059012272522377887410546328322983621043943315592102319716571869012180720803655374822276025575677167526841722965703627748422386243251771561952090664208095390160518434959438185220719488187895242252723596284067879976850938788635693160396762965352819570498418534113814819138657379289512033653837851496938960249526882137169934595069626064783198153457156220052043042123537780237843910631213799490786486343670411887320708307293525141661529629372287650593021737572977818118908076100379156373224168773934444922274872570697506980346853181956012019627240709606862383783801286933616359387433754883751282128057014575249122417045471179653418911364112993093878362474846261144171347213128324293778105799016523688962748582123031232866695035824641649670803503105077181723460236778446747372984472796150542070901649272398931663379252931624011883638388311884097478308906680087671981232327891252672921858710989255004425698481238817844942937292075103627659099291711601620213281362381206238062749629782212690388240014407708322312581188038268174294658509527200562495508018957826383057359530820518043353368393632406466916211336573194164008952933641191539231101130501153742556375123856223178114237716481806750498909819136689913576273090808429790657146127958987768939221115139406396482948533150122923727314748815095726608307650728428227678989404771391494362790010580374316630407620481744953620301365016140727217207461712441077281997347966773282691149912391399152274186361272622282714872005832761134589574463110788935649876513636857113992213166777326840566865680839549367175232963607082611465168238713308768326021936812801117548670747793262358001137065462284243737329770463915838231438805820444193892808844471233343850176604589272999918048762875082893743764022739740923691835962996280248031212776507821182337101919565226713698084378486803584657530962976364257893947719590692331157002603263289867006059250148652293351746879199301307076872633685372614551809790117003983085843483431128064686020543485715317301303366541954476983977119556100851930252949054477488111794511481909255717102078161981171600919611997018408676267150152361807244572221698160680869815772518269200775747465552120157209737078141077423315819195468185017958834777139926436885810915982046955627358581511205265494883325548166070242867229465713385688042907775971196071579562768562890062589595989381947182428844414882852589820191316998849135589701742539465702972783023635507024505162307949466070549037368600891504430222840368467005671620431444596751896009707137478922482209981859383184544020919001982038352156532889547952275245568276428636275381162830453828571590803278805576957421326874445852383773839293043000786805915793911440309891658588336171228521168755031695110256918726217777828173419850983290365112913294863814324933879865380938852422212492384635769087673872287756619315747586420324718833305730990303037395776562371379677479153476272523342618010706343217622021095079803629300795611649324019164116368333441500371278323370609661644941431980889806485164849330498252281683210064909294865899288625091753836186235571781427435534768086329660643946426874349330076506760355274118979577610729849107018714432445256180807247335245562943999741816815550090668375242495464149934837297298619115558673709228917507335718903214615256170349801551243216566523584412864505284460282262198725861897092579798128932198435850931845538496165794988066961085539808358589390852636704294236886153649025857139555995983303712268658854261548857293746848893775307199180795852898815297794090608086186673368319741238934725079509028354536813235464463973531166895310448951946311736423162303774954838340110768949719927808260266446153278213696669969757703159999751301439023966144962171910711340837596037796024289378686978888899253983017594605756296563798369703220334881375579846301705304384323940490344612131556774933708270875745952027427299838774555646046395828391798569021829254368105428083007214984315916499856531882231011034377344738749632932667912978459986369476754178443501519820595322281741380363257963030179169837412859957305917628526191530300892965427490986330310538693003891130632924144647217587633265150040103386022625864384228081876816872792449936069650497228988369361435671655464191801769342970843096618806252824236961091905062746493265257000116826295577653025233103267667263216075047107869249933956871583273525268446476523188118575239902664340664512947753427914830254279566551648056926591524436934155936709512980137039367613592764528274237973405485901795239999686134588525713581153167283366545653645945570727178798428829663425933415307070826950123314113919461918800452555665547578252116317960381249458828587029065095936969855190707218696707466477202916094959226083538410645448663998126019872152055550869212315088935128651366133411575155367480156429994823594590352896059399236238992843213691997279686417956817132749409151909381259831689489618850608985240068154377948378001551810835925598466048676664492403663637498391279854262014947380340960276403202079495300176679274215220296808171644502692685508189315960074873867463773505168017640781375647718143952636186466040227846824713658209016702277001949379239780205243233819143153705496563744404879427169300955346168846085134386568949745478453076750514014513047633159152496820533148819289936116164847456206239416423152961247837848676129406725760900742390680770054420839271546491386037603541294759426682175077309818540864407380438549315055861547200072482868432757007398551832566568878856850109791616716416295348666315112040058504091004227845645739072693996689984881202272972375440498583284912023853287927993036119105150148934413519189789492533623573068553894463291562088857560103720718135705340037033150570384683623597052370925203049312240452305482518734939463540063905419893708890011229879505609309133041892847008726299579365289572064116037115999988321823262181954937148781034249269319035100955073925894172691154372050844067630900803654267591620038158455067139213186291192791010912973124945163817322447056970141266740135618344823753230208208398414614200791091447682519650851996548920790626188383498674839616254428875169788361365877340005143745856135762268082404419841134531964441201886792311015924184654206701464249282666250676112350935093159647629715984899730049367024526537093255992219482008808196927522350791586948487972159026610162019582295744531830850162199067456567194946181847176217712653011002908769944348626437751495084673253927369345255167891251811226019053570032785661734974330979118615635934162708976401846826580780859448930977714433736625904071034554910243154739753345247388493691666643826360891887395244035671340594254592086271953654637951997187597011125401259533114539451862783812202953672648959003553530146651586568082743834860891578058147901015110548488995627113996772277761279568763476420764447847844492051947848919607476054925877672101591371682222852003945615546546530193677819086029486750006461690786371547185514828478637496477404911527409187574486186592659145290267045761277073709401909117895880790791890043502623738281826685913570665060276559372704604526246160819578386709088665839823458028217574267323993367872651353339031647707425455443352692872269031007390140784666615344773459214913688767384132040065045485295126035060057036709401380735958047059129828441275838975398296523692451752534202482316773194114383787975023624283863059923761639212843201566046514365161132174427843613543570303800396288606284990676356434987437799210492405172260480418757497251063014670684161954803770179900790381892975926389112130105644065174798941125309373221489919866906854310969155743725861709866551611199181588351976493335220946738569945060688495439996441800763777713490851226736641610303439537393383431242411250785416619147050240635337637660493485979088586932319876301477245995930578932851016475733182452291678142362847584727762530745184334683539587657291590776363339814159856863433322316987761842643266429060972203293025066027773473834629500992805358683764368397319057919551139992794370129731517767976775416112472349406311880705084479938501430505809796447639083203577572720077050666369158186018965295238554205314239951698448516028728961229034906496812237347266172771030291719278854774965186619928501644882784940208507439984589712125420439685794401893062691571814284751164870958753378515771335681609925490950080642019697488275313964277184613581615080768295032231941768070962111519026268090836426760159778236469413323418607480100066959411584196296754036921411184992140153826438969816722523285070848126904067866961574989931108633845165550333643552913172394721076578126953246876242004936225575440820639994975595042058640248174466707209180013050753678361088796846673539083786499870059647475960523764928618111830191723174488602917965163148899240668638426136663306552534898368248670721513400946776757258966374578592187554980332245221271199099379973461241717683804884333510394321400657505354991251992356151950011382583217804610891676832952090385832817472420343985327860985657704148495986525007557002065200783122864245871825880574868298465215931865182034965192526208431457763714356612825971168707732858462679812293846167125932652025190956537251109580881292227095024479981505993191844376436651780440138217934614555654579565147158824933471639596195844171618237084054210397426381557978144297726193140330990238046163404698780721926672520102525128550785096752039771681960568628331079377464098024539846187249510930719350122002985232305637991074832598522688954655186441636861551759579401552974711239286270476649338807997327350929813606533883982842642226335069385116093229321169703088682129806025409263576440740631577636348273633116290408439695480268632552440464635037428227083168622941698365782058775117446109539304890545101941432118872135176028051058542976296586084337270043721776416192007153327806039911907981701304708742283095528744271298342090795706779834327419116492298827228344221789883569335860045576297758763384646069432170076149666828693928420029111146087627243146919429179594461112556070435971361048633173184651705904909904523032741043398553004954818172679493831735553091490639861860794883213088413269289301583524658663555394955001717355244653256857730191359441454126707002162437496839968607889810091289593623860886963198710710972898685332772386100222289352614155018965031809025318706321021271469797443762101756172536406242047170885882220541292998431910521485087985754325252662806633432932515659245840087712738137754862360692754325187828060539952976886488027805650317028465791270572664472247234644045559723021858892529930257493607154795452120291471671606680979465400724514807094853394212898261083542725133966119879270211601436931160272950553439017195572200123857748389442760673676881858380400185689784664669548080854267708698293620521617761220507981488199173521675724583296668746285561431473758930236815463796406031911873253790211134464218586168848348527328662868711581035508921933195432321279219785747197033914699908508351074867128277605732583612588901997474469575412862354515412881259705369825345701196084069176094833709243232385851922178920565620907528632281961199634087741465483292935741579018137468011533137660462950043685117301062390373855973989921703015855165571091059814928388842948485353578211819459788699023037474021574668703452699366725882408452393984197644434895157396144341681356016724331886972256401333186498666017303491110144162075767960707305968125609145335042680622867373783835509357405022074914031973461242707293028548382216546074880705137757716700156573590135223121362329207255201425904050158332101300322909019484430510078145029872363037356617316242234352901639661943197070949734149776402291668237269823365502939248888659792222332794720806293222663437720741225215063125680724154606147126869705102674014461114875588685404014972480421607869374162986506123537791786235349275282061962900245896784461128304201286126310154570109769235615828047388181153107228214882330243230600840594048382922298472285740996880937846779018355701435598679568961108271238567280564899931792093061371638318286381076207747311159791713954978957407061409526842697376867579352599983458989404728247081828176409979185624819089099077293075506647403987302485829674740413851219454279122518885496664053065035419394898800415254110305763692846070818208149867876466523442218358173015896550223848219761569388390095516319371361982629862002164263112079655405647822264287896723698141063147435469244054935372474449244182048134733988229660645853513349820220442330370891707171861964064790888654267707775502367974860110625932178996283680883060240255179929284323534116433058367602978459929176692405397426816974702225018718227359989498667413288631608808171196903616908393770955667421619851701848689180028775134221469484224780430416209480245099206440039770232345565011239225957061518993925870348004908167323705991857872644359160779371200505411818575089133045017515947545467037051616581916337950775728536132458210096906972941842957648783890421554519243712650318304373844004492093679096834629809758859708237756408183793049586504347151997731313014961416073829323422964270269889146170183038503969155181717502150192807177178898877630657033939955388138548122662203252209053758370686140646010420564490639760296266035929018029078301080332673764673249592263287027990225376958815769275220521980898807868753421522698197820885224921560769195549282119705385155809212472843608258196989812394088197432374372041449016792781061816907130246005750697333294065609678284815443812506849096277794287893232323165133255753257900625393364923287444100664120468759466050906175506092700963857166785748889432513076178529035152637066461541703023985499674955590668305183627766170160013114604124818765080007582576182071828667877255108309964751161177283662277376654160296155089980210957588932777847664050121656617308837956151773090221810269771042729584911292897598765005500964026988802032174797842500849292988590969479809400336898445403241950946296745527407211654270732449752663816961333079541025262069197931152529858138299431871722922897238457790291807636881820165993595891211465184406882369720086588374290594944920927352404854126715283048743490488897232545656423676248771362070719746561489467520581490394608282914859609540504935813333957163711881369237220938321890391957317013270629247069856732017322721797341316272462925807386563899899425752969338057474991391941863411847571907399447427710934057899799839747094879061426645293819289928634536381172720853366403894059090607055513023586432122630133044933372753109220791470519280062762468947077049552147661873702540941536970224608843571613388226302554473902694144157149036702085800892252259946442583856099265536117682302649519040861068230366801394307454972972653539543147394250680791751515615870393718836527160549703409549944357918994286851832054888257885205031012151237725843705148984790792196912750556900313639950700213571755567800102681585811516431293986537446939999321356542720539562417091855224044642431263651892402768240678570970508794762020249217642312669710949855310711990466831586244294602064081754451422224361023106017038034472095039699078796052475666695709863508660593258444518249805769353964438560230950507864891417786256338675977790360343257121877200370179745166690222440405695783768946652668843717305667062028177237009463123384874178328185914371418295177545618620044743521852760748713878531084997890434832464166712649382029192379987649119706521394217629673966956337525407919767472605426250015708056616957207177626688963783933413324501167920465154197894196710417228537005220900277873219993265986456890251521202387507679489463650787994281336859236440986977379652085230490399334426618346190222818013607082077350731307987112085322733821699032468838847205420818325663357159288423806372293130234501576052811923230323303319487584940800954723659265321372327049762046884099490030882412598048474758110893754796140094395052483015186731524890655897633942210645076704218236343574198304139823457772469385914015155993560491885821558132367623687376930822095875830644923767537059214905258851127997841434485028683490256170841160503547061819527103534741062638807991679297822504380265511314779785832336442825845726187950985318291445084240639164132708257817651064659841519185281861447267283043219872037197491143722961417926870918527545190612257236065478598873756484631156277847764487641054794320354997893587745628755131807292537856505120920314343863728111060531153784203107686309891738921094718355982932146703926831484453958511401938146945358069343683448830659505397701650227917719502947060442784311693763443448433374539266978680875012898039308564508958178312312609867747561768124165752029071716514030812425893537311244978962663979273163505191691925558064988099900946215111037087080174046075720660018537956549099101315840657905020175764341632093697936807132627696553281159907330727922097563435012094110887100198641189249178256475121083602367307350217760625108116295433758493782450128774208167253567199007508777919057156156604626240102310408167659982788307968846105501683814122412553878235749272040386175838374220091105512579892108210996566693776912688303038362845692640945337763997572325082824907873155142263245475917232194133176683464006205293816898003764842529999876709789288942878199628858326594267279620402249917809564229054304519258495861184449149660149977266854944785359683814190661656614793478043225010843871510528915518135649823165256907884306583366036338272657895382191225953924173751754600505333207605491115238246778957571423609919197303725660085993246729674791255765362909302819194158018276195956170215080678972743195547969719749427997926661007974033472074355832603652850328279786737779556990345183455686396398195038666917464262919879502616697446794966254697403455478215209435707351322650419469690562355133275607062017657535292721200804405642767581557554336624255587668278571143820055572572020186958630403627919241007710459095072061520378814041827934517527838098655630450978160126700295869052612410866822201665659842444905344985944611261386865917911073145892927651305776371948083754454943641106405699363711498805018284206470521395597999205064929549439348978665271883949191278850087738494391723600025790699918213916339885368793557294504050253362315204011154564014645112608904073069890098029075974107260970361839599324015668916350699290597191632606273583105146237353092033902158186640007627044540972473725897258447828169057370194874226434509066537654792229542405388445575498176747712547569912489212615598763500055109720749893061409818332667654990147848797481916522760651617105140369318583036154349640244104552729913701256045853150327405783126485701424935175038991458159145793252823261651023850204561913877618928851280076191080982386925681840599787439942122447695279694608805092354486248086581062771026887054498102473335694297760401149055652330000304647439530083158139892096632648590856333980929472599649010757781796027795298615991774420110678595489700318016129519305910618404124797856215219149448836832802356483151737886612099215193920758670128267545656321208928779997313877270238222099190930193752042154162200193417450774757018218508481163498625540761824700819696569653985286112574756497200519684367581034842743118989489699765756869858658752390812816308326795821087040602894766258394458990364461809665754582252397279626081045022633409123449088845566404392797639333288046506596473315277810767132817228442740982695858673733649146389769044586930796914816301220244687969359569127641779464521794299465117007276137141610651608987668559113071687529473441104893901766737835076786818263073376843882662376204997212496919375269778447133484979914654858659613231364202027126113888668756435471474481394000151505138570426077902801738669105111689961947779558841946624786616437856361114586243564593170284705930623578621410298865931184471081335138554266736905000058327794679967991023548922348358075838526091123450576516473060300212864757646023009422600333695134940601437594600835923236390789835694913974008691906737207649083260728328835916301985365176532521876940563617770264832643965935583828921637757198135594674229936010381200151065110484695553084230413596534541676277649810442191832382274137415113602000963022616041405967664647731073852120377389528647767652635665017879028522422838741472278623180204426410725707818697618013039371375152474398888239396562980043462975985709016248802423426181586626339025605864327897383988813717428798742083103706957943133233648790473375915766505987863382963635902016446241399580197449403888493184050707249814863085833811855651361415661411578509474474604087059588509684567549165753542848075258425037392250662692244154572896806313550910780735456274585788625673676417587593251514669239918727174063414708584690919994804241477128589437475402327261726937875002779614996326752653439068289330554223677473833635686544892223279775981546786469342412651254294164689326368366649679966618530894800927516730425450658221483983663592127682422803201081014597300596594057779791886109453255453198750722211552547484993325400205632707378421063893731104280251833227182102201692092969711908238688190806398524385589256159971075105052723084495294558310203698477954311399527919543741776931375845874246269783526614185565577399266586642435084149697464530509464711449483549427966738429573200938763916977984006170943931620737276102275920476296488542485182646586165216662683918782137814602592623015709842069303585231157839027991756988637661777030649132746112537984226442849444328305706620437978523147824820597286899985397829117621626234016705674705798021219213685128188309401876295733707410722392033471871846152041049442904563081253555663487644746772026065883240898073386898614604442817803902861887643356764785268929082482575711721258473139716006129676934080084057793959661095417432569501957656613244461091307974198139635317654900854245222865429021489047217816705686605208983190435259079318947615612151207638861858382365809443882657676220441619276210207009197581714856584839825638600516670238801578724854546098797151633843242083822145679788713705941115744685471291151961119193025354196549837771317685867460939384561618356074038870330970106438171783303784390102445002516963840910720644354063757051566733960857609681098099688437856658042586109734964269297513938165544868181771962451521232923344848038303533302786800596576759680228165497954060823709596068053007740272195934698790428771487243731293256595080327110064346764692692497999251080347819066828231222009277548346302255206783947164733346338618762415013519849394371500124019695444957817727026403548271410156263061096153761840780978082823134460785605842324947476221104245485684973955121841555710036883358186841452672893043487311713577446297051556941512351624260579603682491450282581772445277283384922223921066960074271538992035795773843610478840172036292292421750353540188858951875738236259686966709088693304680347462877760820505232318099487021859431493572851541922102309903491688910685871817828569214035697846382942699405104106996455298240372397886132134063354690428818175340055508377593709138223148212139254864688858005048204650385874221784543299149700745379960444128875040966385690478666154691852729374781409740599626031777980457601645908222328857348918607409571388714814797066157839141925931187300076679586459532454118289188859437441370030819046889836374980824313041749600819832604372197518763366777294745693590106421974704374323061736873908841337647110960000380505285712671539192444937853248205301128077550825909780144632978101702775695117793825418568744652652967009916879361304440246457565136240526167968620068548780368124241753554319534240578119000608741682717501190412273882983309089436950395367070823112362922993980908950307553052501771939267557506763726969563418649083840714986936194241030574067892266623049863360530272213036328836513228260361570181433802335681974137309048988527986268777487143207837470830135945237956520156275053616629589206333313702665851444349951292302086195526507222266504977618467864076334597960204094767928051473228396724421994185251779057841618145325332211978095721259695796394056264074290721181376318353107427882377213176414606512984879288177303817544210863718210761034588771607115441799083086384571068564889071387021555107319079781546691951319752436854774742215044864395432436331043394417501664649680256635072802824211355197799395741803585198962657136130301988028177553473659226686711477525046335290778740499324269684693554082987505955581811766129281811462969103436617626131729311802151873260595524092723695864677073718952057122182149274503579157984364052614121358012564493693028266331203701410625866076122192286325812014903633318352574138355275872030841224697130190955050975262924243280803432638602432854055532586994673606571439958984709362454549077268662716906788695777029506921118035393577083081940062178552097591779497130517940419981771530124884861618195395281008984233867873240909668123327258371746805979699772306984639649103706588642117670535747813605138090125507565496939738698236190441117756548103642091000639984478265470746996292177713256986692019649956237047834056695575466566323985108398241141564634453720275007476066346640916187796422866390645939273710577650856416301207134535810659455711133174669099650294472325186001338487186068197560765927283331376764590247677120475973421752929892284399821069018071709302519177569120339102339900889822866801749665719704941967604169867708708985780006409630551822219439000854124084608068883408245736814910074674889526268751058583167933314432581039875558019531797293566606424300551717406990979326128711308722310087779307909009211205667554917128672889588264918238100343832861197100777439884162091339588073856467069382731034824161699233581033382493456368197863801794083330913377531776894488415834282881256133399621992758507964054714259088986665482378499354057280346104407949848951443890680966124291931730986249373990169224864423166370676394161725909709301961785721470964308128488548429795293500866420407523261604321731887130037629184187923185164139923820730420133225444577930470600075488269792296099250251592236424953848063345980772190581259456966298639694734266401979790714760008050146722471488478465226327089198701882773455876301635668084591913539420289128360807139765063288582991110040063909912103771781501208078748078872522173927766672730766692454390953960754623731242941140045929375188004858037848993941130794718672425066373775606755058749804265037873534794056768085718597485969170313984894225654880188546674829763562019430414700925278267415240807640151271289928368225300088489522419890396383638644209848705233606183113075220417232273100182140233837618085826401113350712326306297688817202663480575131950632286647298928830634120469143435013633476977625575599549243153290853063534130855784553782407667064269228425925667516242831409508993557825293327487389243199880242945648197465689498904195739645176169372016316064410365131027874131005087259045064666084257154460392957594426265368095294509696076254242379302231275082136555978657892860105252900471097025836192648261550292656150225635905799492413461982413067372558720773848509656622430060410938426099962166523596583042677048253144377868721501219742893655255482175918716667471503618733619185711528649845690520560840573355114188112693275768437352400159936549307612863154402563265282215790208073877516588510250247353471292620840081046446835700672548452022855854270015137411990064381839890621516700760649390085906966821350086020897624877827487969172563294158507381683773085554815102457382518328577718041727864644610835664218188447443219233020634090084620350533394302749794391035505684771120080182104321571404207349473038880497766665396659327916087138896162548430776527562420331404316017293951208734377712479760728070426788667601091070989567670504517583819927897059831268512920203236011702120274870106922308628051184773295190782250568651718297258633187972488445248930610393190567171050075453130275730704726514124044475606249222334114852020205252588175885273881232310173884988458070690175136355255468810210630279872443751633290488053824093732767645289914298739184145132877312864902708782262803424252714347692578856830980695879901456768623131382732401025062832705584089154623727125411608358444783270403597915000312519370058916586405318690945348492263709315738210726109760581430840260940759507682160233081541525578995778569233127624257572918154954263532350076034276352266462984981852490901210979927092266850048096407321671072220758020798366123095799714517142278345260266024571314108307100658724433018723999921872300818849619170242946818549060418344034349927529141335025842935108918574468018680992854451458615738682303346870915929423388039885317140603682629308686453387696706703322758465901095330860576917618149420816105155262067435786531746473612864666771797077373376784683393570358620453620701493695526381188662061558621539817046860979628508858981452093568416638624223049187898023707737095544213193996937819582321300235623855982318387343525402555815530216473322378166038441060441169944905282462972974666793685206778569675366240813817623082421279038612747952220842210608966479146838507543516967220157580710610548848278739135983717520204664826377698459327785246870500345997596329118221648569678347332536570337894457804336419188172842300747661442572008129916001645295216482653664317684510802433127579699202229548973499532620206459206761376166891603373729540055184008639159410299956156724220946901284591467330075690417600281322011553420111021611640032270921106778134385805174438819155200094476987013765454566371527542573447455121586911146895081405009388917742353302208243801036095398811857213377752989463454688224638291213668937106451939657251309102480079364255135346418584101238177552296031127228321759453250216677653957222857645022710715473008171062763214311062737107382556792664802114266896161769403693359217040140492164304034243545687105931174076936354213573363098859057236277848662570568748799995392630442275662003512296797991487132673343388064510736639367224121328075806979560931656709212911261502796240769410731151201462959218201607587771022751826926292251628117829446842327870491996298074646392611788823852875330379004880327898557403198845523618678853104548300936977799169279485729821085749678857794665621929546669078365647903788713049793966827170587709955231793908163254743356301202105549945538311879052777904334791401454801510629491737030311762165689595177213294944975833195069309377661639235138104507435287147492974073814738109341686957395110128688120832314718219821170257650997916637116431483234065990635363780968141816624337647530136551971572062748418713869856393856921715069295146164426108589901260511965646054960624236731304662187194168125415387791085047563664344162484729483262542970599772735459294829091901834581857787254876331496690638150432867965821246926787266815227283916224546751866624405099734517024189679044938614530745949985491142774168175871024149042992548934547549339329791733411257695364467424749064057308107425309693506088451884735001557023600558350200613744269049577977003930634613030222078152687922351195928769549409832233807434995852330549139387838728943331768496215980932439508095303429474463982458516637516030476999963382712143012531265323068542593654023217459181599871777185762527578657594735094579343195259238586034467301425659658434438831851161480241900457041519835197144404521748531946411681950088375079957432739241945774026178007779979029814426044937066952835181907789942915069364728273017855864893795127299856736273622964055683647465331950164003463256534291800683110029012815438077724201083884673566855216487548870055730769284420043261896846476728867618302581894046106800228425856071077608768156548943350077561771263366930821250685700509357227863509210140194718052520806970428219246117661445849254718170161084857019445052722159079657113813815930861368085205615042256009588926256903496983522675273786579780007741912557764475751816489588190624669371421232239665009629963171682590859144198503707722349901777430612317737188817866842999611511702544418054973594995379021753064533435248918765903476409194136457473127806054875541071198871179592824878513069703220033165185200967815700119439836205746891663249361364990500019986067023658818267502965710788559984035429190421830850190268006449603140512349398761395817752863528997314117427502308022083882188343986185313616794387470636133508060838112593505201337352277481217506103147240958681575262941208907891740902188724987071558399250654986648979336207746401485184007573691612076589513020099145015076312777475364054570013701711078803911857678753138696514074466933859899299906177805481961586036506100509559867166570826422975034763969857235230098981946534784669138295907034262189821069537696574837398653803466350450354453208388444582627348206359470887072958370197160495075618058985949616670531661464297171709826988660771220319088414328119754845058665873111543213230018736877190673317536028356441451717535335720484260974489063892504747973101372178177852766274770364833831789430791014510374768928971613650582217142482480915093302270340724244021509147177736337499824990908185430779317312908585053302196586853999209251083800954710765453494827980891602149005723877229680070128967583677534349005954784602305381916088314285496261075782580551500053597968171046561958167642798788735871135516425926520763244202173456045554577004251698029139981421526060082414081887636081042264370657530293965174855543174486588119813757181444971609161286621087012483031207639249652013965376498222071791491350564341753279577335361103956020730893521717353657435244372819303405464438330385731354539759708535975501055535952091732796560354126636875605810450641168581360981949686796768728522455051197075902286861395663582790233795389272452286842565360956253624631023732869350378468687153122858086785041147698998946195342011334173698168371924117786587930448678691140800704778046007530515937035421852874300881408203662363900716352835137091412248955594333657876117299910882506958551185512097232557142199941178372258440787877087924945247664450735906091743609087636949227401264324076047187501028957939212586295192487442926827542406728683209717305173281466998648419094982630735090093373899796496401288941779488617857299134535378276645714382561766917660558207612177284619266702220865023420639900698323739115179526487745934342280383387205710002707594664887923144572565251768588962516610895322252666484485918846942810294949889107838003658706121622015692207316751542738567691597595212074358316699956653990052028448072092645991413257754737560697092318691269707420686457138178863086235298874060300264892441630408930883837816400601862114594402895453429643642185556012734649501932545822493967217263970600606532785629113162699792048303270170512267725408293536193567268926387508982418496931649553150798451548830077130852508304446721087107783109961155868464528508088277852407678454157352604661959405482101926533849511913768367057570844271292208123772370706690676437296217215980204799495866296430047417223437471421104344023378138014841328796534270717390916110069377645014914788396434600821584503463016245398504261426821046710251075099235270961444737526730796221050930192804062106337797879705284630130930053051326787215674650901103383867663590927886210575587862397248923341708096403999264124930594556674610224055624370475171137841844316891973188615412197211136407935970512575812744878754576702295917941303491372320611176034474657594470272595829162710660583668550372681929175027233491930748473754758764435433918121301967794098286066720227940367718936773782456280020852209278425440199265459398773437206441432705567799878003909149904025329390610489284558653285908040495987885735868660412572916643780631706518048302537566652859086874562205640410071395383918109816286209917450734753903291349658302281674787959978383506915390725530738682441077379922467521637505886109519190288051384993426369896671502201162296514218087699291385206710475881266734006837652761860128392615503392010667644191808791414595843101608111792022833830907272167373056410526006813660843931912336847867038608902706631155101846617002241377829439049559551126612902102489966685325468519360399139617217398391349666996245028483722367443773240307673224449585495264024061367507343884497654944116171576483212067107270778134868083064959165159234418958582635610815847241105915475500089731213402988425464183815825999247559930541019925951138778805565607295174168464725098199358293771470380408799142457470041143818955436508751510744104935683371896185160548954294534566944628507518978900702264196113517487480720682857766460288021251423322300981433614678484308815894909046501634798314916583502158775094006707066396320869546192738598650431021000293586249753263670767528566048898231115912933244522919178323846796561008362682272971643795128608726002401063840856670703525789692316907229290920970818758486911987528840553835183383595371021894258959865338826099331259736505552887318041034157830372229168546557227953122647773288008022104301861324976260482488032165535919673430159349464225063123146319088396507521524822164838635812843939339996252706104170515347104813245808698212634811198182418273007587244633427544548603887048762817047651636591238769466407680282361152508656237986444607364876079068373386481880178227499738675035508111580129398955092886469400604471726849778864871729756864527391720235551137437671341640083543394866075752132019387482244682338156309342268474257611239780938566605239689331929032428451698883523056001742285811162065794425511095842293041519364262734280054038820191824988358148254213191936759977312085054943001112613075277552174206700199675686485914406547438443140566442997405579274292885684657684227319692119383772021467243989346116669758119493377231979169443904697246769717786325058461407217359484597117773927498573014848007562378028465124533928198649289802010971205999667736913111848274269695049751561279599759741529304434104945608029668275821484358698357671478202319613943797104251218950466258230439256269009592293927078152429909914079606202990539138174470743595400901882512474151334966212561362125320709382632161818563526168091716612446820220431122435704088804229730428858749243217061897208118358695970189042045317902796167522986524975443421072346677437225004892224941828400081482312055270297614195048261235886587836421409788694293926926000095971868259179806994548603054719093135704029717613573720292200894548646406832624337695658742987791422049137787868905729088665909903701487809307625736671538922818576515447353914181869431250598659037563922250203420612819180122318405632473758549670938565215896945426270839293701093394418277893555751700447056306346514741107978237774880927333266714739248987002785608869926312318212152769141560231917760541172761471488747780763004928631325641510490943349632014687643921838066957051357080209142939560069821499565342193258056506801923272138511359999982962839314233046059785567540220684287988936765158351627466118624678912608272110073950764293799081821301282350784882345330920843727560527972900252099051500487060869708750111585256818535701839244222930931338816229812479095626594248748631202015954573039483243418503027263272010516885900766383423550058655060008964991153893904855904031587717435979537306167005684314639474930387565202592972605623252397518289067671469891026136712832825440411565146575082864729376320681593682171120347385580736427450178365542700641296409894931767497308999429076176219970686374507483843294019430548193393613769466111525415709070211407397411590283045691888114564232072006820299801826028185987831516385429983576132456321097481008148919941397495651172936347629111318218790584898638940148116137640036037819333990259546411157115454449853840438497607982277278160756937293726287907193792434026550969677227256648626313087094783305842131054620532376083426459488615786481954081875750512215009869307951126416097088340483307060195077676174712466337602323468515875740497292552635753461739524528480094534365645462521153540053920374468975457029203796775538493832074980504607171631931560367510041606719793957551862361695097777788259186190003555693976681471714073981536317814739889451096567784350876897939403281053963229321205826902536597791260979590980117881324311383123023401305325123952620213376638022604921181890000546075892194543857035502370922272991022751929410463799449725425854138936962505865699500700224445111601560152323657053503099813120743570485062597907443963430566790149920114369899612578272871987207754918563528115717953475455715548041074610570790847924889670694990604509637880683560787331252425228016611273210547599595289167085576500408060161074957918373715729890584221335399710504309303089359616646492564766312765303994556370769320903625114737815015565662981185466554897207044268430729744675399563937523934230882486893644107934480975979275951069000719851128636516744271015042044922352884398103683172442064412711854143124312537420381123350027295132695789798351614288116441410608324929692431511398817275041678162818809012414102094719226541652490831638497542866852751190786939103600042367166249945650816240346899321565457807675391572737765462992379216167679398975065406316332825791391837713557627449944927667242075994512282412642662636373980753785469371040674805531661155952301645726807891403734883274619466470544041404363893351237627036932622118641865427847646532749646408730503479378363072652036030962200230531746846967302494006753244358175312006099811187271924457940428178180507397589072773111783549210925921322947945337484668545994901195417164131555938883955500804898787103132896524242864763453126086608107723487867707064960473207365148733378719744129441027275493238278024962568367729985948735420978116178279929878361238265734756848888736155033476513374490215493428344129753909045965551441951078637072140003699141214993106504278316471439571746544616430017925746516369532769517032397056271036019937001445882674010001767157810935503370108005195431486839756590984240570690210713599129143796014209196206400065801109832256935391105649406024251507509946003527912889772217960412735032904214679946123755770936899236192012133554540531341934381924237897329352594662180279217874302988209494270352005087565032698802657538175176755097620279630070074724326136163879242322727719253268423554501861382826675002937746675345736686913414913614149240160061658452429432196180845114614918444323350371184264079834658068094400967783380560342467245708623752617033192350045354948462149524814962290836595870335575937813423886485552578778985364294186079874516276695820244855627561995985272300314492757261838377256964941019545553070846678294440211824228403934476669020820103513530459272409003285734244905720516311449658854467380754594655607552956579329893006551605643321553791412081635483886330974633802464130838080740119975641226500750565442203708280772082777256872361726811156661153656802907608811864378139934736302109993511651338837534918650633110636736883439639975901211028309821029970979618936431122263576819420093711455326950401191160701475730560609696861386269945482994531488237172119836179054308933967963822902965413209345654452031913327115850844735422877712329828388300028841871921213258808273825791682170636139316980913036000079584694596913819422046357485654909081968490897453587566615850988303356337488683685372319538725096524165083467943643530959356490005122260763094717340405106072155996174911563095802365225548919536050110855920931871913191524406387677752075718196727608804170862657264582156237727435582921670106348658160056110008098473608967338477523923300827686252329520457830902354092783970477822597924158495110218134095092365690082229824563783797097096396788607906292849585875737310175442710477154175767729292745367162213568179871975423134832801611576927403345099861393462765969682223676157786959031023077172514818129498607701601009342657500369551391428961206640495078377669015634724773328855609770187135061687470338676295024703983502310305284055253239636839661811168800483419031872220989575280308981476942434518647079274813659777599481479576879693816657700608084178035476467230753886689690942800468165532178046315363923578144357398519419745373482343008460207500231245978471086918123270380761058143179082169367920721611727931891915901852186808890335259070959745614578280830593757874291176713756082849265679141569345701448970380995447530284106113494950944956009167477671317308871757425042113253434324180240072639104584526238663039794536860183038405531538866313604213821341700032009323131016769138778517655628183764309225581514112752210054090002597735073862131450569210492428742430495483128241737500445559656878661247332902259425038812698724637439640946731917015883582347265613281747730301828424276553668860484865151347216529431450221009386154518643833617164312433438991903253177023950645387481456733253348940576088563834302837443874370031898179747055236253931497579421626145098195418075810852781248558753182174861400799925517667922614583073559360767963653320784106708815742321049276985312862578851883669421343629656569984390293689577749211604999322444684288250405337260286453423843358772654397493967234850927626346977299614216192574384452321034600844036767302424835294983480078037222773874662284883898491774990075052852516205106301138875171055147271107169289341416615897577842711213955431697806820902086967671864911460507012842124378926164624796063334334411051581441295225399532462575558884717118202203346723605045512040572441664398166755087855134011839890789039852487278685703484481463757138085689354375890839366304726589254625269954955837467356907788384648161303175703478469836654713163189067831360817983591332394758867401285992481493682897924950060873564571619002797787854403164144286271280803600296705868527720853475289740376530570777554828745289030028435958800292669455828368538021587737818343734937213443255537099730582500678944542444382818547071007390831038935807475822488409827892007227473939583096648600179260352879900349083138016829496772279667620526860507715731725442370361361878384263547016269170939937356129042186121286450523471402736245393012969262336321009571466523465705583935138402392945890984977247273077921619103894198264619090977249334744635314706766475627802710576796836268991806366642481189139606076275633412833316786717356183718462416484571233849581742836361298912280169843729510149860084888376507367325190479501695574771960906346461948903669440149808415741431901188670210519737100414026524038228801551687558538607849594196343774251388460391195384497887173738381067637846293703633651487198421264315252231099149882370122655463944787078210374872165819425179374465140266498777090424324516750360729832651026455529167575229356774750966021161847104698780304397953017650219773214522589155546602395881382817869735999548358231083128344571660737134531285710832450801458584129678955929942193549657516569028015245303529158498745451548723758294722345947269970424414214867146822586337123427858131965589958714808936085819973094725695135301565978520287292809729607228439498168066095801414638106351949999859834186533916582381290393951013134902291282331011408603554509703673513971045119821050717125215479192788732172628855137588325475273890308606687538879410463990976789586678863781897644026121993035023789587547380513911190729644720333484670086319636122996698084799349603810590308244139660405672708647416858372926030591928700067259825175767237771334717387459878613320240347112079147408987600285757460497011581738584679810219138977792910000872577135284937396681427604330617384734531233854068913943101484500746252369253574874789530081807128404887804168890787420297575656343834986534417025562811626942541336444009453397426184085104681996619439989141027134538930616533743956918601687227894477491505049998722930335538760414745248918593679827420296207280784122075003083225453651082900582082835762379395034460369043023186568328147242547015207679279341509714378518773481148145205303728326560168499187116029023631112145754413231454961790720758014308477419414271201569710354100623094815160297927256337322790679919810349607230220691766783373361972761304675109168089199838600829063663283306437290701456865136906673599575997402185680261157351668861806709438782526372816008184608386070846596536527601824060176497800848086242495602572781395585951993258356622281267478274761801671752244372391584650871539936692128006036121894568327051583388413408838648137067614136829163699168259640245173457704451649044457469137618154964927632558153363650678777751112765766031293992641976683001531290050807107314621107249075960139177024301315949537273850728930809075359218208294514193751957654619467965839285465656834614274896565016352314867172421079380755224992730600279450696639134042646419771383437612275574396213151192607680016323477237608748359918772171914764340226359551370783497453084855958243812718709210081122029632235043436692697914997200920063759084970580920989582978895164379838921785594142021521714502574052557052324347950464388959684182243751003880228313907223628585954018013416933062270622440420447335602298261925202888470389282031137240074291311205341581816122021507691824175676617410801962484704470407934711562168772379242531860692702586177756226958768867909752641197610683578598990799108066137074301847816388887042374441218816671839072418679429583900819806861274267279848326179467431196079034831974602531507751812085661054169171513572602378747981294199550526423390578211012610597528951343693183298547738875415331699869316693249867044302293885732055570435846461791133481993089523134049019008731961561306784874152524900090846170370430361008561409400210415304669944275567969619607822512937807635275010844991029430820541025708372983268610152943653215795655263886818558339181864206704321398837933871581749133588352904908783583591369685026405217219701996530890903310460507217563647120144552822791922690150868743135703536725980673998740676438914036275454078710344200071250889759078658613862923924686519566688903933688334112803390089621446589922977689699593017625288226163736244219584815339283173787265435176250381208633197691507652155363880744648658899772437439612788058281436550854720693327988497784214072592086820509208241566971850250513472641261938651957541523388069533912377318223063156606989661862538646179174653231133849732623279804429981641052798229376050213383255706112116039482203831696369729302316699913964858247314624747814671871655018814718727607885378936557343034716506630570458302913511930698029663759276418904663904405594953627385435269332928905186811459368872690531238215328106162634751365486550002742075722033692334599051687022515475556032205060825311724456991011090700540964889419583650659636728450506409516653209184598768153549129687966975547773771822011058679518905723545331524471987856280142229687503609884213597053811435662789715033848952650026190033780649109485594881488701416260040626530343289001808353516365943977020093141599356526521428539385708005585429363530472179254804899702201941674229764862359725770831733779509880368884862635324819512787986364761570602156081671196732570978773905314843625705221237357595424211963515269898857163701928810582362772363131277366394588345822459338330048739616497147765704819226282144637189985050485529828267526279184336220568417070658990397061389868847485638614174698031466815193875572559117730516654608296157355610362072540015101134971682965948219342906014842643001069269601741214854272168165007809650609280020437694652918400179498103150943239576947675704963071153113688384464587895450344850853224030751863663359284437535158073935258339159467870012181857003582933120283316208103404913110432579339800530414770930724424965133483311570228310422168563664204100883809202169614734725231592324346034045565769282131376182651912571003321132940984388704360749877731935476206814125660922944095782522673425750565123931138560734282927173809061177276314133984763919744001707855383699838660707500981802959991093277769227411829263479154579082304559105740201662416834229099967742574591979143083299891330087822230984221928745247920535718678064871270962260677626918607859122689829670676702942496305677552525376929264163378481638518314668675559971968351673280193825892061192414897423420900419151935188363552424866379483139556133877395763007531258007695004138549403198009343028998187339209197569041364643390347702894305613883159201484626474174326449549198856687953781422781838825568920994567504112734408203189408699306918922663491057777407660542408054473759615753214190383657087344193893274870360330479645852477983167371126892130135129800831604861402641595978837327500282281837226928774989651093766519646223962619556692250840033747418792597926086316647399721846766098439016966472238930113361999754565794163329153713370228401791080473481743224377441621390848808794766139146810351816123750035994908585147515301931843176293157935256082745614492648075083829216148337782105682704814247088052051505895771563941630564876239627859757976510170267889031091341222165801281747024625167894292200915906150638617304175289761482600734008144760165104506954010917368611984982627415029583271873416762841684173505406565203492543844823616193341916894222353190841832601579700053240083685412699108101831450278828979555256389399786400489848610414868871286267543213142070473451713947030374571531392657511040314568613345988610293115974543738058942043551995162419019593660097240925444611097238695891527604989202161257314667938023276793903248946242915653703624287710686178981487862967140955572486230946460163165795531260782053983213872685541703137092617367682874392758524846738942742930868503102253822842360075504642616956622867493742387550498515490001605169299473480880289754396627608790946696639383037261289751835962465842394396571241522540839060031492235436392974614082052146697860245143603163557463905773273984269898125034885214183574101644723149415588899630998633437604632440525638717132250097653425744592417895549138988693081488694004382830284954274129797919949829059382345588616896610979325625842406344044398071317339125065039986255838514430803597347240287544802576346933614948974338045017733621025936094309431342301995418416307950531315999261588463551739804217064641719136238797430623560462892990932974201771723077474300720470758020057965638648853272888996494483151085953319782894613196042999690313499920944099537453248104126305018662809716402255770869727281484257928386873900062879494995466443957489055362517221435425961191868804914752473696884855335926112227752406674147471389715813838348321008444621906081091689371291099703233097463598123019291617556589725374653130328435773667526232893112335869897097277096952567429455054990796654119615564777310181792006922231491520625996428299663628182745956571493283404381109984031534421197369177296609316901684872737740405577825197345660297683736018153144964256612486676389494927402113044600635359449450856150866655713644394571795526239594892162017561369953414597165795283692696399063140487824565377986699651396744466924671092342423397333806704138151960911906674600476269084018245443239926921909686966967605777032638856753804001279821968750648671188788585089607258749881255688598953272993455791183450210544210118825352806566727496980124672178441412452025738849493773652377051256598561522501262144249883717601875187120342968216357020457123885582688742024221908157523821072616688622503035176713481628040958325296056150026786493409816896653338569742561995078181634991493983167793014224339937922625384542122662739438681811478274715199719542770034784339792651751848240269545709730106575143944725191434568547102530898442278164120148856314399177624631904678620348096041985923130990443987948428438563425951638711078265119151090973496344454980794450965893687807103198277171689468747128223896663082593354335686727767896228719978308330895763718072823595071958123361455070772882046056664436354864084772178316572723655541875059253426293679930808813063635584912712957014249391028806050723907092594613363073000503288281660971265577431950528727405866731119293678975307070402995820517978801924830612671688527451789903285529582665157370135575713750017133031334760055937448730963883872278925400043422046664058717807105188605363242621017617664575449783340580929524415977932005425823455803870633221652108416114462038167061166106333023875234869235990380831764472302238587407795102196753573930410585675239092567695549349822778247530937330960807807432778769659462714398193494857523349789465295661151374299635861260177620221134889617508733708749818448958522145635289367484244385945601004001318182928400814814105927663609552013278754829556713461755640858798579404037728904549589131941100589797120779003200552277684109466834883969024598509390071941596968209206916302662164458697111756069101208854315574611311866916006640365819232301475913593577039668134198225717434147849007632574663214333575092931068766723287623311335507481164369799286980807198163762882817992968657513827116657254751474352581759820866890995961598296208423431838194297605274992018442367937468426453535965725978885827540988594002732318736469538926657971318082557009578529048537793018002671352643395610117198372688485513182338826059858786009252122608321785220006375627666739296538921804056152834842208369759971348934343665497418547121322317408513972669461253909005660653271796500417134465023709186120111528766076327510579333601268915309633455889131035481892974599191466991630351569531437248533924721217901380452870739150334964519254723437910270610621801031797522896868845192679096555428250149535966123693194878975625790129386651423987021852387654430306813783928629611169177590718426153066975730564032171832877369696983982346882618361475478513708349941479032385950883695339366929713716118387417302916639052690295589666993022249686458220930909765422723064970731419913569664774734854555055910996020232206383812515636604828155546074841164777891718834548430054722994730594152265831549957325043571945815264844790958322101732761927706252670350140797495713070612287484082171684094723192050880368641026528102339176216961336240683989909544171867025148305529732692331068202738391279011658600670399127989241484113277269242220202568189974007581778351857042555763995567052930990184882707576729248400328615623463906367515268962569339340349160538253970897556907100840998804718482934776813593575290892211878240065339032456100416681561955642887951777636013019260434548382602781527291382150549092943720970297298468895766070672530723109021321592950475060180048654236143461835511900202729927974403493634257188402372242773090344406680784268572639122409448908124477645133357402047234282184130535109270230835662164972073686492368688392154155387914183721370716696473585440333104105581438318986980610076304707917097868772887340609136938341147769035349645065191012150414836127151796452035844312701346918417618545477820669211374142239550605248354986145704567927486150412664885655877412061129229326724693415558587805715694523719380810713906972210403413109185909233941990969812341576622384308197897615468393923016236439670676957877102651041325535458936677139479687452589019882049018542764764124049193682079559285847445730134995578553499320575757679273152571438323039936101690088001333522537233637715580425852143628136187033176980885441414117104641434253017609929015993543957662453200365740440001211311500696172602779132751598622661014620624317717717595189978972237993824351987228369767914965449425681660811773295982051479304146683188202248251749096925570940653191403278744085471258649872809920332784860782085707844171790507203730985071419415814480216865630016909488513531199791018977537421736497920592367546480289311656855792349481499565131097696887155756776279935637078252961212068167574696359570262992613958939499095621359172888137645081086362715606324876454522005356698160383070611540334590682111482025260103281883636323916639091655360011904703117792873288275078560447844775927197176942658423235805852782677771998453689300131199265386248107124987431283022038746658072153825643545090446870983510651076175317385057399032994820438313748159425805528386322528830857406677998865979414742495146622120613487802635891197019412479682976345423257915524611734164661294590652279263675971585333480662738830142923200509440716810788714028184657964135040759823828906112200159735421404944188800120627449441642244243680752759936964305140319453590990537346303192998777785924426947024173463519041402983802865802691031772398433721371544041059516180044264280025105293872304025862888615142738581023690630713592866416450491233567402682874826614885667722368608517803227770953390869058182238151880210609640970139744994074797759099129148172187309823720585476588796776021121214585699041173920105667902868715576797120370839427793717597774821420868108792116171493434162392993587272901536208719380573227883383948182767984721524323505545825584371202565084756154031306420818564864081443452877829547380684566460972317372846571693090096528013528475422338006406836125009194847977212566312193082041900827914023701518978776341117787831867760878669914428015186780401662646966762395197394683907160552538973172028617577188091178764757559974783685950945128877945176350794892398404731575571738269143639363362825628545537596642174798136628882983607702972459941662294865011728093360354819453147962904782145483552551245108486247223026712324827217420572919321992870149499876909989962406712081301927393208133078771257035644012044487000349208649378454746398544879315982485214077031607995454187115886160026385946983151298933467024767602785832506012219792519125941480960526682857959156399050748075333663269794664013084784705034470273284765440160283163310962711404609054464258021921340884928398448506285239219811892041402027275648189253020281146829904764041529315567769037684694086733430577534189848106054672609305751225786005528266212144549485635544764476676400253310387114388834586514671886888141759622354885924499881552476772201234871075952674153305157455330984952352422223215045688695513412199448762858896697123818268132029691046524551787350908926631424543102785339385824464021841077009458977688662365328063320021523777462772933577392209087879286152226396897217558653054824278393007263894344615022983090195538288532648086807968452193119145252495675185330503837569285117120379649114072608130453545461299361820649772739761163066709866514087976836289547218960244933754938757543947408744723589650403112473277579292678612817173277814630592752773579004221263011193664132482679848057704544092400574479014353038203788363910344027388985555219033434992037786287953265998257069783473956958026606750553377265775134117657195096254025284005895197286157089873405622118012237133591395932708557397094840651993733874626029376146324174477839314420180295590203941801241829376830123882334118663248173712596126126532933514536855468807767799178789282837046368681069961650325601734612225727313241290110750119971384978879053323534297113741788621465984585918299734048643158640786663727933466462454269562789587626201187162793862057634305448991567376015459535362132178055392551608376651971647025197153429928485048573425054280867030684980824401586614699947225860250771779579253650055971990287541948517720043948532956181130174983678950255432685329399562959374292928997151192695876096456371379431667914888770454060685200191334142211939932986426750494604499763770191610168639015281723705015598259917640419281571446319979170805946371357428363674739768450783547321444652576084950584992473412140048170687330083560486179565150825385722529180482200541678435746265389873957140279501884893954454664408583211493442963603979564992392073468094367385375013658456427314854835849216992574069096409533773680064160090684230752206977878713721117558362170673755919615317757689420936948290853042536928986110639304344462940226445689372564305405935972962033649717188276352899343576720017918668342835240186774243680547101321805604013603547187735094649322679321265281019041719405948385024792546972587062275040235685580495665557442473612083301627357285018707985604651881211302648632666766810206795776933932436552250101911463993701610330653990255564024663253858184944186028975860961654031585704819183012120509445109182629721861118486415809957821686337576448784745046308160852662550677585906072701231933883543636672750978021075682523850784704662120892955396831418584070760906925122115647862462046539329375917902585669795792925101503508171748197353739895194391898409149675408504328178648186405447271526924230513778003085355471556096617449507994523154429299038443913073333050727737936652833835401970357374582569779914414610410814802851839905892438488984413738484086495498252923794341364020291155633222068818715125320867123025316937556533522738253361831628500306947704874850010296622975896811829814168391480772199895811413092308500489213979945965854861547974551613704821237564071225982548988901968553785198118286207640737706327651613728319405069655904138789465571717595330891051192163870196786738560169430190550028867866762448451299935881974640200371698182296362907924770798621472197139257443256742030306871802624307210487188526939881877672233679754556031009818581656469844879057837253254540793536837170159352985193619944561365351844176226459518669291603071810075179620854578166021711212331954714847492241655206589008825315863691965533078813552127769989580328414366829737640364920124191623095280766592302429291831251391484457268885789981753957868290959069865296254389564135161347703888194514975604390959457610800726794325475207034114348256494690936552212572831999904987557331410094135158314779123953677093112651372175136930108303715787469340813485956891022916894675403398829527199469085781045020657685811257854382375755400066444087243273611754265716765709267241135438826878221850585773134464253218893903593408983682898159141598753614195813525493491661942580984981848380307434381664318143473293675689872654794877311085092532567084734587939861171215643469378931438004584078003263744204189651136944994642689048267837139301202714358551593776296037255921315634445899702637403613687149179872245965768787518046201419408617091859861813845288761447401245545501054973489304001532572951643576460114399963390617173181217306767084289976506024128979302348534754370200232235145052052736961124298194286099367500799634889904586279001097364125296567232556187599517439031445384434153562238319173845870321775144780360282529264426911665383842579816107201928789317303459150417486572538642470865697180089272069527191416092017286407219526607569089289855565250617265376326955717908729744011699724333687688528211921768969091495980349113140087836335144040926703044904869807707987449259642739397220944670478872443488982941662075127363449663155185465479703400146666711003385631207303576397096767799698148665871272936851928151931898254752040254884659425243459933988124286827106050047313087267604050499243312050381081896083244715123994992649459704329420946250276432970471892890931819362655572120909078969975476930508377289591802234877454315581852056983991973336312547198559496264472907812394712226824610220618976649892916763897234702644328070950629141572038056963023469309361005534651568368261070138476031289580947732360274818089910178090957603375873092648625102379163162559855462807293072929123521624192393882306755097240688204215281290977634074887602105439491652184117925089201773796297250496496632301036872702929101214619188864016485423480173637632334455884800749099320970301392124044361915929724197643741883654013400135713977602975054265250443183043669847015300157929796356324951805693804326767215412218031936996907748970806491386421877233220853563067090924181597832947389058883179352174759712581836324854782548708493631974226284050200227399388253679331763604081119057832784618568401559256184532627215456573003900681171538295608402330685016615237802420628320286541854494010039004782011304387131991459979182116512299739646653145822177826293401940532982184223250005640441281072053969345134862923309984306837466105738224791705734211344893222553188494433190540291820604427232348910250383565456334015102755539909440414080697324571647995052745787401739599497060266417700279009538548980280111668103395925213554262648889228279965944748073526813917108773249840394977154420104514649242251270113414340376518400850121305446543042539050129242611756789812675166505670165382473137699930312092425070912570834994460317934484161920113093816084189332964319498742048254397722752359571460273052678147508033566453259208146006074951468075268902870569438262565005818291451926587093455947996423669325982015313886760307380644669726806656262212287196624127286719823077773370702167364024559007906541472239172157924044480665569680566213025167949892841373323273084226924275806891110362747713710189939835680459960432123404949206150227654735917637330340653606275149888532997701404233004342265367197304090374895476098882883014589702887350282976411808057886588439579673703753965919999178141751507321774973325793501716926626734171985523489439299749247807023433298414959486146357945355221299745640738982973613805364936865124618890769570650684463647233110016193937393382550565963738198167881361284636558483668055155953531646889647819192925720418468779932501874617640181922894369380103861401301591591105571123139842485580551059098974100868400854287003617031423744342678513837204174718098436646488331862588870292110098229505178750781753411390962046588468875696183486696608745990594700197749429695059950194304358187220834987947381342492059892044024210507112557942875008280127757866328562871972097761579847180270870528888878513787376415128037029873396805960397738381750529033779471799102430290979457354569793593648591284806182059550679501034378029904337959906826372291446756718503655905556937589981105784420854339042493762055958131111516725883378004182676439077789189403721002194892360488106829524822750211009755022244976135916887679334087242999881053484734677453503706635200628126406800225911990202121610404397499571945255557890300698925789964805936733720617897237458065816235177195762011730378669094333881579557828960389521417658729308556390612542472512920415606010991442024734864959673886754787478176460692328549871194974993531759228707876073882293879061758417197415100881064777286568793605254084399907970985300476364783120248100771992059717724983366670438716101865621102531244663813470770688470978486861809660820892631938052731757936783279830246547378284934565761610069577856982922637326609581425449638425298314468464269779036805795929262084496640036136880434240687320114384053186830278037650480596973264550159780808287573432052491932476111380604850101848153997647080130800856279245455319830300682591392549759625248403155107895640413271317103551612321151994875254604467633470320210577582150077726190874239602021160301484978407299383983161186954247460516666018697721377884901894087488254191359244152120681980532670927674570312197216890560169410619369401654748034054821719209048765913981984445919386428685156046541989079984424133107958184182773714289329437541895378330289421553766398606249210829500681328495413822227116903517246036638144439553585563023954530088142684520159056834448259029235427277100594958646501040662019433346946410626446364445018885295160430830450562868548384327689915846568126327605625023113939073637145460206623211430234411813640263832469641115356442134104372493307085283353992300908342086372856624245915653815269441265667556402113375829096854042806799518226435861262141685786363960153556319467508083279361111765286612565033820702577208499060808226984113961898363989336292174634605970429722702775941628763861959963056667012752648964713442647616159603130899127954371651180168548721004763558275623241221776720767853162262631911311394329867927386092144668698757320887207173771163323801578596678404682222775143022784974634706031112665623834646127607039598500642342071664003676119046962625525379527472756199485973384518313990304869504999480735076418816597729390335780402303300799164287685575566084303266221051483874194457949703774575477888506424065058238855666961339210234977740660125068032394977029506891327304920985800091025213914369029010952019889529051003087058530326020156240777039818251084459022604022386355785783373519324002801746369373240393401001227023671080479190705537726281894141736975214399483538576680772216610557190402415475886649676114376021382608025128316183992776508773167194662651923703740978304260659449193444307680291393231722646147540005234069014518133988269381831662514784152938107787589364380529354603451617105504579736594254330634722339545218940899280087369522093807838965089782278678713393196222566820621344450078931016379081550509974743032687928330516293684728597873671918849558448720733430587666339206834946687330074479039447406175134466294291418237034609628894011132106263885969648720053784805238193597144526512842908320431499690121228652944288211081433313032410394794450102949790790939003772967646484500865254141751321854759774690438607826918373922239409146111418533248337001219322124723258056868435117738447477029596761437702649309468281491326273800027139905733848210437776277210446356100118613862404836154666823840443800830437445030773981011712912650914596269775306274713602849541654979598238214933386803466295703103482757648104914115181962517638876240289628338885000018619660741729014470989027909894594237381874364015416061195990212980958660150115711779786601820174431697289651587078038284969032484000134694663457843993828896978417896965732627287368906046389964603238636062416715687496054293472468289561830985775354803872564618635114531181409579889667361208076518679897715054039570009138474474881325363405295504378651896454875021539251735861788956028818719885946516877303274390246469167257888826809938622807241027453380170008082088440808700380837502285321363613725525668298236685867991175321881299658453050395146592189488946506559880897393833217840016978468909865798995813311293481369850036132109029213489390829648633146766269017560102378331981755881168498291907104325604523777949230011808375965512328323989578315243208656030167937083424679351835324867739497400342327889454037518044356183205890256376911160812051164857023247396704265188592130352416750414888944997427073780673197830942515477938216546521611883135395884835351911087624258645111882076260676412125026140342707397269530217755029017920482075829606464207538479779509961007104330522387069353089888650146312960962219671458017262750189525862751249293313352376598498542940692669669464059264211125766370772631103675660349331815194201904004874336949340638957203835840795397884317906670195380011512528774853985637388921782567805587469567579387037327919225641386215032822928338285964670529375977974173941549793439645391699103013206982027742500697737898785816927399886133759825967571854820067808793303980860611620600412968390047222348976098117701238538290671402194256860737401993050205007052442481601717588356178740675292244344475934009871761759318696481496554105180499255502844838673415013970066575341100901704634244983008616075460218250756941752652518319681125383367595528014264273502316105096449856587420768094157730421654109100243627769806991836245386193113141366385808004055541717455708236808982015476726790395942954850978137879741626306255230042682604520158348129048294446605873671241028643016808689746248041689396962614526223349187405617351319666047551300287618867615721537807893645790077172207672454455996121454896780658633626703394950104509795376854524134542500622586546374922715683819271207088790761026226043931697522923260968028224645582840562342851847486828625764490139364130340867463527526253718490411646643456704700860651530869881404305208189548865717508924019376839871209677516067590731233119013381058771125930443713872644464908274951078041681096864485357644489580726901378633671947075188253164688569308855074204758622885311884229469441982042264016395204336706688814580283797682487096245349192132386658115915614004003459825946234991039886740747697982808180771217427718109617630610535163708340405567830618308973246967781136464828939611994166418501112313932290355049172117829975351994305795117749628204615159346219942266021829552648841057784345470576219424302684517969791348177768079738874057238040765591896491275898645756960431017027244978016205163376504483543164044360140859434077317367767992789344350641059351867198426079123130190149830329083020906569874947708513621230249656195577324779321683129640107592078694259330269527414533703431091137681212762950072703866003931604277993222999262364514667539200582594787599924305094354671160561845592848011398564075930365397945222294201890365537040899703293616321199550303989089691980673302759405218814476189723369406824854919808217372405425851509852374439898609512735723433219479898509576570654379902800266135365003164831071782547520824259897735094327953060569138454387300752805682096039986143375362512224214554444114064509191674120185458844878816175802927685871427650543011637434040880565619432659315452324339329043368961705568306899377561093336394535434503062142067749618270827729430676496602132686679866410503272565387938670486062177471044775485321193476283312420881263200299230084886460306744937262679553531311563815579286635925576200686798883549668255132871579268048639899111780027647650145588294370312718558564410010729130641121053108996689297250194258146042724046061657613259847176499092288440318863118035134472679105521776021008988792813599377012821124718250201358771393503237095636449206113125142698102216366704424361439855203767019010755970017682758991631053180912480697295673780305442449827492924618683369027704506978924179023888906395981147463643662993450787212081277897062331625660800623368819137935307383688296420762825449122052463332881700194951130112239552751308380596595515177735630491762677859740635733056733048194338602684649209861278823465209280542220880533037985948299559755114608489309679228040842904048727247793275657566199953797422857397665431117883767027864794466543619455537571223501402235957338509014496939090637945439613934246346857167960777470642337786582303399843792962828050781638340333494843215273451612122648185851632785956175725937103248418801527409625329616248813253855466794486717847505041421523375112172859214699160400086247966036679405061177498922547443413066085433549009575993587879886638685940310327513947957527146100198777691801738304535937318141888821812598899293947046182080666297718616473397516160205862888611320489470650947384518334687082206824198709993603658768108502771464831988721818474651083222678374032094672328964420562058213206377413729535904484844818053480460580601230975491782352104459396742831973932149907790516170631526212874552199731587631216934803593180303398195094855334308263649175574292745740470146984749686539290569364251875461701638751187916880636496442710450480857890188442800718282772553838127687259976476282802298032294110366354234950384747517194955332063285172376798707408861570107829378349273602158232486590126711701688148552679011777250560614741101067874274690150822274611618110033414290041347946400590382333980330014063848719079442049096702607456391185216285230997314601316079569716632660138847029837919228133415070334239541402610178160887435304362734315492067816155124357842871151356557386578591789190198635047403900939209676641238147354503395876144967336084542334036345026838417971497483181483141384243044198625993865797018894175767887630211023022875546559088771332278219676114484789423286243309728572383779368650300748034609355633127651345959515328643603727326154916134517038158294601594220020530784614321811385718411705469309144988213940887458787242319353678869712816076915452312333146275325644732251214985204711353485836286473132200801630857668549257360600453511223798258074190408261480175431182953172689699577203916110468540916040228181941810226395678838319647340027693584199829079902089632824940777335020176134912663137996303982992830314020731019380106976744189038269967198870870788953716486008901930228631865560875851709866593472110601591012710218612694351423599684455019781705994743083089402157056690018055197108832798301203532177786837285176748613323181309460472092240194389002473510259857083137782883595946176371707277392264465060698282159676171104139698907401792404019061005303868057838694822164365271800263989114655324792878617829189443053491888008952071156879105093723673043379641124913121640387743248811268801143110294504191114765344015638167603828133986754265493944418548025461729373626335991172536006473676212782535796227753707482411348708960077792720748253908045720510628418451718914800019605753427323585260504674788247647859157026221319732693757016210656393188085843908158636648102019271525213061005174681967512564866294622957453715409871412391463156002477582491337188668586113294492019928130345175564187878279909775701130481040659697367041219838206885862078719152028068407947318602451829605584645565051192469340293337170787117726652591195921833076754985367611374590822827464195431792471938638208757651242911278904887205165832534736154645462576230687275350553413947678927582503899854366803132039510955051261671956389048998657415982075412466180023543389003926768895548565456156663192543945798548036788139720843815628791168549020830348796501065491286770751533662786713329729961278596233641370579189486615045510059225249189904520849551168819646421894950259795296868322489504746786081826320925158449735267860570394133925213685525261535739172828313301305731930655781156974309440390621769593440443216135133418390681684480247966767615670885846740776928252092820488389597054789819960065786460181598605453233806942389535229569557606518753791075333121426482460253891417723283620433871905359087695759314115621091620008768090175814299729787157407145407985758915297067575042783294309563348423519417660294556110114633210128617841049481009049833101480765268784298651506794715551764868942990958205182159564956912640021420745625673307305355702194127557532173944214704493970301115638329523352356198830054059370637346039567501160084062868550923575552472462275277749742586191050997066543922467361120563606299890840166574285317797784268148150899652881257572727111850142224191420732051476854615311512439403675044121890706027411559485103618573624303427304793852259926522820244388890333627981807276805430077987994946606562194748926139640113489859319896806318138645016572103826049659323283520206055756586941112051757925261915994435224782508708124467179851600746271932901019359872518663254895433482547500449220557234200504953665275292923232265554065549692477800034081817166755454836569080654275175239961482851746015685334405967941222059139655538578929576559126944955694328661078440949724799997979507602459891567693146627473602893485897056442684681485778419787429441360961255041402016790483040195110695867305830998902434433821104180309120885856880684882621775561461039612966473908397255630431121257830281658980290442913873085054145511605647543175498292840027546363112676476200049943645637490906973280106359582851558525860865543915173781226808526772739349658772161836849046589883048580521542804067847594227675680066112759446593081400015328536320166974931245317862143359201864166775376381893472719806319023134531104267123383058545808123849939474543169339522390148049951771309129994412433952782675165115880229268048264624327445288617631036314046213988913046741178474150199203211273690044736855649917328063085559350105206710001713572814310785287733751508234884042694538904482811416277715447734972176920668623601557479248598238649819646870037935495341363699372834597693634308948359294341660845063850584761677357051630917514285602936416724426910110624331062120692970060422379914168190898382804733178989479945217051018223772908686841664602009893889112368439132168527041733990023818172882384472199950675117626424580609949744370927376890428341886468566690105726052987892237325861151296499377216703080990065062523800924430501729290517678698170148672705918175832402912755103042076543825397338083220445571271171903173282735125912465498358244211100195675638213905660937380368482596426799073590340843389394036099772382389616413693186240519071138192437591610050752240539522474376156950848362485043181062637136675596748266806768598612594072554466426208847265915923419861680766242708698900870460212662697691626864529536230427546042169123814378252316720226597824568863913678922958443473606259824818284760456983517447165915474482262979148940127043592046650147106477095178391072439000319179633709864293147238059435121883776295972439048277564703410983900416687650383661729794113053547881838987170414323379443306415597179928302973255505245339709945033483481677329686726174124453383174680536117699705623598949689765228582720010721622213125145088912753261441119301325831744633858919689164744187667670380268822755936854329941000965161988437343992857878141492812820850240717598274095341988020086549316296981261125288152091307278434915759659899247881003501269832176521905203307561150366977471335731397166582750542080201565709001335050630014113141459267745581628104577086347505934295846542325907970991816617019017399914456142779163587960267581808987066080085418335397684135127828278320896133617078766670689679963281547274267811547709565249210145738293892622036328053156027942560839601696068689929302486086908871042381629246190844975066964371567100491127962728524598078814650987032736578488535239454413656998332992045133025367269293788251753365841104630673404469148956144953247797440234244776468578586528492996066387460181031323366920653548151547119606826164938802956292813208956982113761612915417446700670935823218847696579173427884343419161872988863313029252780593508643773397298846016166721269939461280647315200586505409990806694720629390147162442953937689260872342548505183484994660481801649144003356911435586892793410116841049732967869664795905181769902213703706109997885829681913552995478650572649598850950599843788390952611139685378167790297458871720599632980219406141651229234321396276187241305602728075503790566154382655521811141407255439752857894076552479285866085155157878671359013316833980904879251308226258125162648424601369917008314707567272241932151472374415093520805873065901878412034126669200132953231298825708401392983848205172189888243846630467057478954296154312808694896407385339012772638560832634585222940972042710500452823471183446475532074920796398027295709226042073608344925742625196351269449877556027289315925339650720862516651275103507568590334471657695944212164164488072757605934622335141898357893239857931935774116844658208719311903665683549585396710743993551491768139101000645690698790752936217970807701862046590210743179071545065084181211319202676591688241621899510952679586809618822198530703973843545898799202074887755459579306233989664295234679231084884348605629745314789962479556080812594402916174156263762301187552410704514537032332231938383248676693089010696295873051865637764654277091465529231271971352880809024536752390345319632577552144311635640046661172208340366095183615198041624307654677067603425879156320335755110325068948917514682994811313391032175850250342004435220567511865494765405660267667766453438873130584875097198201703383954121424075794902325763880558451695744765815824326865863828015133583604891039536429379972155610778544569567645363722816319390401091289280341767495847754749982229929839681967625086415827584579085360113304405744547470164828235265568886362054495697359897642037233074523369298976431485218324515226620357278541034587877803225451649696702961825627828900923235555650424879301096983701684053035068779207488472809945386943128673911778915085206565722306315285299849950400096078982456072984783049106898445085847224640583192496236569705157290584659276822574645654122558774777144100252523485918027093713604338535508726267602881042472754085053556847546996846534360322049867478040413540811892004744195364215834009711019112775872186809325833564755899887473979743538908376661359891107300532326679452062722552304287723285933766648598584931934055673782141641391921033867101257144757791394805351816877890753513209195799527607501734505901973280101644307925596776356366087062228532712372827395039302445618664843439784771760825098237844945149271436800400198300984967063679912631127346518699169502939648283725038954807205133971167424029649573123559769792121313680133923758598447307286857725633324465164828953406745078099453959674124812578567758296773097965403703783228510568206583271262386456872748493319963838127750603714084939069107955234369951843412227779965771470280600173319114875038092646385776876646456711470531495144886977535757669868433735751441964085677941674428953401486561032448909265635265044773703074863026443518961977907212333047423986591360679314557027355973707229374438417047752108156551966581584813147656449097697035284918846350947026674651854140364273919721801597999502690062902510599457204624080473986402769589142719860338471924936214675453372555699761464610970889752021128972535568175352133800292082398839325922281726660649238162514731469513389176269550636121671863362405358449494151366535347012513489481108609164499711839832235863424108551664986010343597415366280229810515723312869039561522642555095593531666078385428250914068799574301462637603079815525628178838462918190376648415211627687928250379231661160030882735753045496222515655334396787083513879922524152209633226062477897659328021662444698920589047521423778583376233789955293698553235743529886055580145670428039855231981608337341650388573047585024772849871048125216131888795131650206272838955880700060641720971906359202098455303628833559666486155874243436518005931017310914858850425360126233906050048350955787798449766470145462529492491819431214241007100851672167605226483343062794330885441860393254043672806823964490689025544796835284076654861019057314888277246121915104740720619392125740438153924248069395246452960788097862231421833170000096656136293541764611774200459214452937044766639971069274713527735347978652037899249202230717554458280870650594356258598940054741781665655510773936193579281415544669411606057654118857761460371573928168270941875216772590359831599475118646517890064965599487686238710959707774989671784261242351888435823517784575541175872722169072940183622454892019634174143781421235209837464496202272984357677295737566452459642794367111131631699610564216225954456250659390357315169940672370692215110735844198404715805367192578495941218143177281812421259261062676986233106929621894426303216526940604005075595288309068861939398317800993953281993482642558436447941954740324340727835919209161332617908468078488565013421560776175883873337010677010050477637618943690545075134312337876876136784183811892254224781035032111342910363949485948637007500685834638084273869249602483741728506050184424174452694305516309086381758301001436755938539975000734305506664698857621402544381522768619839633765249602567916631051980210812287922555614954347550621572589337102725461044861424934589958579165574621390695428262365995218662120050024116074240283422544463592312882428579711340366566548339070806332948039472000264735307617635185441158922662658834441114910310816770687775120206461761673300597086022232196889718356436596244575371935543282880470140476362327542655263971465525109870758098709120080843298901051667584439941950416611849282549560448034492969539509358878297673614615189864284288419197273244942483021368841558106307232296771446138387424299109552076054454349240287927739747979293813139946786327613756443851112415863080694489680939617610450565067538229101141306469167203903582834664089572054173350033116228017128030669632934294761802567249972731131810788827101894256790596247289208325809251675361794527555142079934623862056485851166047412476574239435474634249223854587797773183224851327015396271945309182259856908804277811691041798244559316587595056001288257069878319046484705907153683436896477210653461658714967003845715252279082789813955502443242105403359957734702515057955305491191916514675239772727709976495008525103072670115615784396896355367796054260860449345378595158541357793854282457922607452863394809887967597842292389437250591662576025678853712427174564563154003528712195236629065863805944069911121463924131121310409964094509188988845463845789274993471666268534329287387683470725091266781642774971402417642942433999664300357218628619301036984082109564497478980982686707228513043490239718593569194650209874308462474432532130143091963734846784397598001674088718068318578407848557212046852063924245889153778333871845129465968086200270428811029028410357932447682617371483543027344212342382299800992270475294131681073116009948300609188110793054194195931711862956988999766008557679619468939925772977919355478968888134520280569474450801749585765155591165040397487816539931531936441391610484602092531108792406561873559634897361653249681415897756387716697865262044365846022989070053445791465122092116597359498983901281092800161593415726325745382964101095574683902604496603973527531672336227700591882065623498136085568124103045398303341754953139345105026003494827683048709098200173088840824043306684946978644715632686504008833732365540528217446416762244379595770984022714148306168860857351123186540489933962100755064673626572277994928798240336081880524396990575137635752508564894532550509732383762248177530238202777954603727472700949150513127624721114349470102847059585526436858941818221633506905918363189953268805064346473943803276551584730598105570844797193450174715795988234769549771575485240492659894196420480081492311495110260922279375966159542899993754846963916642612774292480838953519766548276640458400494063750814840658386783268377649043367020466077414031970625962095667601596301499114274869632222709706063664480138792935311568049423585510136246551050465065709231109900912001811465259325024216638816551793425574117502734030017909146640734197399329944550424905746974835101586640926972308139489148977211184672333586362829245820757120554791691932503355267926508900580950779272084144090383231583809695382916299005070332602395489666251986762456574431525254691464112819724270452447171869413309280727911777432940144274649945344194232103952238451905142342008344890625163068733751995751091564929006007760600177281173687099827733163164295724482440335561331068957084308380990125176946032669157178484359123506854700719686284717740779547528660156613377329041211977936566602824847266484968310655873035967483504553773587602416113959404656908338901578362660237650331212770904957453186297945264299724587999745715899360690525923860020613079794671854289127451406631596754374049168195381551085701945430643790204454507025114073049551037922555254505475179185978309986348539853842749347347999631776550900142563815104747895884257727530257894448974931867066872307046020698034151044372928453829151023508891869504718240144420895354880809611398891329974088774322201204876725388508135364275970218643780440325619837936536756954410672607029753851730217363956328351216445253181763788775353359121381905350356618961773719085169045517674974613997857476291070792382628224117466286773204876641643614131270135465831539474155659389237138778241810517478321452551565927575326154574343957269070463143789153538665647759792799332688133543493212653446162672724602082390427298014581242649964796769716416713826999977766055741649965495432607597607979130720513527015541349008633527795544930148430193049679710458474018692250649178865123573363284727945264619091393273926940280511361793951227151045895557025375658793336726882439264479724537546366356009713930035100176847197859559884191765883488163109643317440709424577195543918912180861881709829746592716966180683480544492050396192951069286689175965567487060705741441379414638609154037939934019835524016066200122787624564404186411609198835697348267263266465948835168084454467179709913485345591490441637634608554449785102811946666596807961131226447439342622024639924184655811697152268806682612364751193928767156084373606596780630342440887779482780317045635092744636130949729537596472947663223966552002916729799094488561372281208211607807845614336115397413006663717123617071075505288864215935649801097044902310187715003200321267908354480266834038503416658054369390639447365564947598537102483663931554510284266502627603451907433615527834872670450545950811874132492603547437555810476841298715475441567335394984147451965015859388813120384063080317885230749229818062466356338318130784140543347503436664171933237241149519123638155413027094096460616220177854042575316783306130096184552638044227451342329994391305282342389646240402647749522378590447685008135736000006354929177888703250221016869458545679596156901904961551767339528868029621791939962084338755906765577707156989203474939365049980779663623368343216972266656647768613559544272925906795432111135410461504690969112487833656440180920010042981716467010390298811039974464863280049979243976433550138504643888437547618914530386470750428822835561126534156189955098211273630991084477885261422511171938003817915796408390421602615106767202094374846069174057223569015865943400736420911603262027821220952304922067083179168855495459349014494533721011936832982377964269928077379926232522900833222171679457511621323311820731894166007498222171017890990341211911186275830586627950205383384163903654888852983810883242766221752552004466577680478037101928161927914710062526881719514421467066257685856935676158292482172466122031909383951922458311853260162144544105068579387852877330701915409473966060267595651384892010198400791705734554755808511530642682713403543092875292461254594329361662241828721045157285312843187576992382848328654424833810154576887680999791838177562808409936932769553616593991451949231762770070595890025713375049522359363141112977880152924399121523483875750757584238296351761333280377715584638165489381442215285038574876767273601268979233702946890001741073735091501337639682246305532696164224572525786634910407158316486761902418491963891382926042616078331453990741532891708437706240818020659349795065880570696005188338187844569529800399206042792535435348974657230174738855903353428632049114700957336977325527583767085930054900492954716915832324392726440413473846819889636744177291586915373072204765040452229462574698370936253852037057807402110118563425081891672759000500309902531488093576856890650809584152307992454626833612584567184666553668830423287445811584527496041155458388622612591315155692338150772073586613722694624696985427619063209225187802746486158672633169287114176528428038758393609944202341274788877391330521417165593522239377515442833084493543434073965366232661822001936597991324384093043664879853141445433101602572414102192513598935439036705162785825727951683391463550180048163553027670171189582863655113535082575795431177813979941538991580180981067173851609850112046835487603745883431692617408561857649430720235576445581846753874442592869862019233436349738557031449424008805343476244641853704715255595297132267320325148476449254310615327474815478334959907418321052635517691719918832415103569505301928805359043097032493551640691634622375507841258466140428622512934614244285886933905708599650978038784149911698703735170430372423096922752661193737911672358006216636332790973640870054729924912632039391730779687849749588165655133449110314661212238976836602775983776810793133684667662832202810601822823635048061260702294733910711306819759438032735120256724467134973480385607079724984539095001070796483461759050483384513748243083939659026458126001913870681150170709372064779501577314469190987685589522779330196464189579026594774049437281806116700978632083351823014269178583032387876344842550107160521887571352104176836136542389144540743770753405032746331097122697766158602672188611274744057829873073281338127245594740713659628540591472358803025203999711812493105089411809971535368443402009693534149122082622441278472989719822533453407264566188408041518571988507614956988306504989384554346244860411123523667528459502652459033730010494885065387800403949232065333981871824186349210221197896491137191080183373535362856971715664957632241897110618604174867492556040449128639155046937780131063346418194904567945126036574466201258906390944405215486420064066553424970803860947309322008149199712046123748825903083021498578404775045924977516565751332148279988541897500581354380430989038028255478851491983741331268677401850845424636697534847880657384682012826839517063991358396927459368409761089951678454782410704610033751822258305426382817625733745433017849331221228009132066393403273286212547033495444308602027759244735612218470931948906404864580402876228430145775232863459677323908404915647824393456705505353954883047436246522365798128474518635303177245252388076317996590038601530404904470029222806345193516305222947103247762564434129756025784933382378547938922874903360301846374336523357631717134828100490500827965399617670563701237698556310769323783739945097082745414039478047200351000163723242308219984074403914179995450329161884144912091353298356422078182962237714230445012229225552968001626162687093898037832593802929928863865355831320214107955202704316714824018152891442045873690367122069034316821594961719520402933004495741873073101396758870635087500784181083267436008161146040513895896836369486071035395338491539633169092921723792303433935269783126803883025379184135623131427101232258029580632238991022514686236933941776735432411471272216998266488807939730750424904445597732599324378114560036141783375717314149226931744976477324056708454622094737054390524538709391691551144625133151026037697976146942918762842361970986205688756141340215712146709150096631059889940174864931878178760424705002844292699193972348914281389719593245450535439572510226658186097796828169368765823814083259938888999029872142021252054718018532442857053513690897771523755137367010213716274923032876753492330260356052720109873820417390378827100844275702973144222802335442271740849803114055755008231571579688372837970716350263609892793981685602692819955255375751787664677342028336669487573322779611003419420713656282632666136391563599730440182699053002603177303418344610118596355467499257153684521709104697014589999713584812598914005811629341792342778124242942817667116349500880490953047422982535695353011212013413279228377099724402683810609062252618339236955702994232408937945914185898948403540974112111643041040466390469354436999971365937423180368935208127244000615139312048120806403039181457620211078319996858576905279761020408491665481078667036040850839953707275920575405852863206088995044424173531161351087974774828605645700373621959612230600467962694405382342186145276858195472251796646683654154249918066782669572095653649880730147220175120125358487776696510138935433203591505927219110333919068472168622860718115318999905224640580365881622792472471363918401418183483152240177708796639479937002050900624305919645635514318899782197935000608368335831241421479761070505799492783611165589961200107271213778520979588256871216925828415573955405384325114832204074542384020973718705720696062166375531517551850099121696487229745242323452145479096916273838578428694949185965227709399704835443637008844480183987321470772498298481160024973383711122035377242697325194782081794084345431571990728560534415128401883546110778285198198699814718206167564926573436245522922295464320208412265730319177486799891303088333898340898525752852774117120837825891419928535781230674870005527883377201980647954048815861968662401078263668552897427037727972498822651444055815651745718287477113986211064335644972832544562982385255640221336450179129890691989462572721237806279611162499872169653338830544533677605729976828428087338564169211649037339224975717135471341162452057330041922505850855848306755139020391334899043115315031102103382578115607370561669192302814685443526291738929670331192429609158844008920823867340040924687750349251320065426482231387233657761193688281685117282935172547222130119580372735917666270899987180868662293501959956589217104546503134082315129341755248753029176999328441439674244307367840895694438702362904282466168390193620451640665093971715479262599511076537952094680638827080341461002018657635566129538682688010319330319003376879638934419064025231221258190652628491689327994740404377053262057992647474058182907861887856568632765565095356105208333849090248492801914570297776410457097783623594321332782107167854609875956044398111392384044333274458089891908640372686238683995346239067004330303221374767593448390741510496230239093241495403457329482838942006171560279597154281878312111151790071865066917490637108061225064795665661282968774115609537787113406859886155487662490754688510854214237920393934869347489500725647217837655093494171334689408423697353386392507490187551007472326264912792453545358998654409753563183047404743379869592721589338694461059755139308463383426276196223568240872273991272456554314505172403724907938089185694151393141387671203534589275085908178173846645863550420949601168159227696978182006836884959792499695414058082289895149276712550780081210580830737690885313959165342803125899564363706034879465517610464594454785461395388456183459846375377385685883077167616300473764828775566316205318724019894257917415170026238813907760597280112923628917286198737499014014876004485111131917292878451860501952062716317126808432104406077965043124995138133424376994646222138753820674570086815235350312969095286000081326537617367229029185817101494226547663338673053736074579026031799331677595227871846948104791680682651593814322083698802257075886864767078329844324788535527883679114521574744450524474759820914758169653726304472199207833265883961338926446382860443838550795554165577631506668517143927219283236976082788516309668296740560552267187513894129272258035012296479751904909785638229220856496928938975966348895046472455163458080166461642883935977998122690338152316403912879794781147407498000363141071761316596724960221150494083705922446982968169964354539226036089718255420690349260263485884592492818667915603335466113780918744230426303670680835118653367190222861552021149163627141117906170948866174695548042040884405974390766696076245189798369887749299565644172354807077549786136761833360477525606609772364598359243108017751065609327511947579160118776456437278744573057846269042264979781562344595892958367810666272543771438432931690013142662079779798891806452635330046582660354881909103226486847098134721885371543321213986930520278766907459675278862202538808569532518138054792977964818395159195084932330780338045855655874094967190459287681811052321901346608682802720098145828978909659779886819910626963421230893994446378744684997245377671797858348799418986958561346975998789080288232762595738984778243190053776103928260812899925224071923089390144946219214947779223212306362437532025515513849080782523529152113313937413165726977997241066373995514798215503976671377001160548593782519452884733180408474313897737067498435304768366277795792357306799240481788489467877411555753431551180532931939565701552302612972912343458491209195171630746420693500378579248275014793874864761079716977107857817432758062643853191260801005692305143290747518302041345174149118796081229915039446240442568268336251897212360997867810558373547265176252961872553121952346441026443002480440165460287773195068170889080257878253465134147770292712874304482542917149814340561490636628854976865090969678609578373811429290813284161662136198545510759588139087433185522380705494480636526060147942134877908092260179895332709874493904403913779158497725572183124011727745744061212689763585748461463586965186921009651479060447608659136818127936132157460691206549688521465459903930596667967750024285047506935878665725981303429669978790483374301584195819939359723986231791399563293889163675983549742423589201586269824143939646137777569488132584727617818160989542626876034432151845737041717252802649447015164144948349402693600605511166013595515674961399774765589299318109683758325438642992709077337933138788646379572531350967879723756813010696662945725301896128224105471942843408170302525592493871578164115316204631929694472273210069482974559910774327830773532982761912293110433406676486422921037393910046669907482969969080196680190222012716640762543364665546873093794115555574393064575344074230854801683218072428381664476159559398355784269084983946903101057079967374807457213350663409928145801031708657774380226088667213432113637215364023408823800371704382250824271694820380194965620454344679432196081526435200383559552870766284058736690703430315754410770875746140097899311019162425708560851744272441564216891949799978510088808486101891598376317271051618734871318297253669589886882703939891641878000205669849753183314395320169952075001659647238243693092452707100973275705392215421041336229999275536037720017691709692019201555760138220151991302151167954340604849246667849416765927750385358432770914204299735859794594537881932917077264908722984125302699313947285991607349181533139919356343081259246150538582657814339959434238859501952040691065687782933045188478358091371484633156430956884625399191885084798287700517035955748582633075787158110385266839895524664626573099503146603079235714947781972298848271203336852990391470730476994419836984312279103555472535696228152504843900782663514647420608682461160343609252211450196945326769592316964162595089313678256104551484905197432963297990952808863150188346124898696075551608777504322311983491654291743774922854788658674613781066575291463354741613254733823517269169006441329082958915287757737364386298029620338833984054572758795087249380170316902395457869160844504865914382515080146500196580097170046067684274277157182136289457566959375884061231221932913545639108055898484551091970109070233426849261756127738099422085774207802406802653679675204280066219729517737267427273276719952149964185471073631818271417952514936473821741403403688425946450841764933300385066615791055939668209161379885195938353370358237804198568789292605766997668557633633088858253475236713165074035769789066206248638948165419796034976468853386270998693819931905550955868257614877507617015994437898520741510470413016166212545564206021859542927451790792151995722808790317155857065145917249984986301474965049365169416008449385121997187729112650753082672239462103902880980563898256476006293152736175651293155843699897421652907738759411473640891299884266018176852528486784173066110577647487361061546055071899802264650967891664945398587762507355728858426606396665438805043279796855635563350893792586046463725610846614565986673324851776347132170106831035455365040488483210731177860945137506485164602660844739851505834542023749217710323355922597590916791418687402215248337911815374596307476805780355088936307394782647570380878140962272798475793883201981420738123055175386258600639355263322053001340945030398635047802268315022683136047691907115633159142765269060655875676337177734332785514670963324499199654487632940521225789297228962044862992295313191620477228868159205641193581350038342078132406732233886360709983863102456906617270116577389424010197382687416191366344205251650478830633583401181067255184681675394707862956264914041786720047265198442646460986490336645376848984412363845598333084033170382296123600739140753951000315773125248914827597497863060981006854377112786236185975177345583801834422945600236748224952152118528178006730900758252677513697541270076239774924684531445900975672333205943106705945792235454194013701295433073599776945163567305602741875836678215604434248551875574223894508049755614358312938303566840069394293874047483436900129188580260798383493336334337085381693050301149694253182686115694264437619025549908233754099108675521296164066118750922902251606746112338105545496487619868609677593402366127119928454464350510335347652866118159468747052342839163997904635214880243149021734779782474065734391019604010852032778016445564899793591130341068592772458417474479339703154863877748805032357395795148742703466868021181151705299004414528068427043675858279905247534843770962195128743260077557779274281655970637805230882232745826479093019139617779188262320928920710079437213656493029077627927719675142288278840267129573932349135074168353832499837701797327550785289766640596298839874871588522520049673393710569692888685843386214270577175700442188643856640693815641124269480582143796994098547543484496950569255007268745561859495287902292684445943993690930935231536446041139350981419508162098613222655566852314090003990684190482519680856343013592536487344178988915175599315764302157238527775667489572312602128297974595539496254740471553966658397781554824130680844828666933662518503367194656563267479532921975842239939160549788099973666075220233783326758350131165289660171207467946204966237440407395941123364037970681477832079825190870229325387008193573801054027645631695128878810488065728292847225662248617789801856356165398304178708887022305912924212426767586576695462029514560289196182095176700556113625195844929136662062525627056740857019622300069938022413575001647447293705168186741087213369434635189828615073164273944851692665571230126779046011515913405458364304983563515840832035190865673660491334666910890013756343032529886606414419466929593776832227758412322824186330825022863861332071225178193579987853331917674691920604149424979342388778122473136402282444726167061475074989167356257845518232772118360823807944954823986660978802035300589048973327698995685585621604336573786501617406493670906722163794026990495817858671986998375890193019612099041170258158261430038015369785184178041452160646919742944125782508666159242614633525379537319528418187872208595335314422590764975006078076583779235169847026001212405877420911057018557869548846559527002209155142664134227957343783431483624738563010186950912500719559594515193045736546631251219484181318138078885838845007339831880512088038645313696029429262762349952476550484990246343786178629251488033054103398818066967760675395012804390317484208811521638183379610191922542081004961681696764134701821662855768640145184310355046066920396452698179490195055349069800434309408062249092153951343764878052087729825057553475350209062778998047269131606800906491652874337336255261417465477926185362319417016511331114077939217527148015147037587206734070587529147890787052153917923812850852218553086227371159852628190656698123764615514435558950204234860869435499579241752570668155344901188622313553442287466712301327056391407731722464170993786431454120451315574339112725793903685545400791828480946863411191987281769879826741723619858629615355256041476493571197140601873258457821286715838120046059613086145162988342772247953069751826211645347167641724928223084022670380570486317549874897720833287490575880232797881249657183135261378452505120284278200857667711532880654496386000436647294271753134079475946864907989833730286071223786579282956642862027908643531820474383232332278856292097777863073697571032644245612466726266614177107694921696548527495066108417434784962782226023060017996498554748310821361891907856708603817549471328939060154161836991639329674871172307055270272554404060285723500132936781092916210248732182427821851221289601068722046376879828033700097056915221961625352088565767582001677589244356040216853391716392866116303764608572438732715772404962832069658643280094708195088434035654701231613186203535148420589704642121961205398319558569518242055377999584757026353940864069463760906175199484653137520403424172919114068243010675580274215870032214326799402267879923705188092152062810618338221146190175401652162310975749026227056685004804028356894314012630775110733323092138121098327369773857523849317377078576297684908828926885096005633175510713742816575298709012254448925145486758190921861557380898727412581667341949273945676506760905397540115058211957520251718004109712868757899307773465836391734893717983375060440417417145368541316716161596831213218031776823338688205567528402918307347550059917660504218386132678654050517167506624206481703688829214077884163000784237006054680221325559057245355297106648728777772723779935467873673954328114438514011319226965771842505837725289226379727217342979730641602356887423818166417061991401488785169006543501591732613609930010709672255046791597211591544574945629705765789910893744599726377679215241559516660167908665457527364744789659450331224360923687267834532855750810539683802840344413380008632477099077244230761108848093776208375147080564339417919669898907055487094114145479009286437794918593478565593766656627651434438934417019233050204660656658831654679723903885586331236418335075839183813457696123687174125818628750127334406947220630064569138900605385829097145623168398978374727618734805446828916527304046517973967875412427981072065003430927113575366229260765711389345539907197759482345485365379551317079641370370307998963887481430287152691477001906559585888171285452851143666009845460796751213672739346721372816491563310301356331610689684555959501541429726149524966642247879626343780090250659962488764950885013500557489586782422072074146702811115736973792963200405593465514171364927773173487206874695317307983233651484794909237772606767559609020726931379937772936283822209066414665299277021133333349320024744369482554648102648349388103480864544846262525408352284000852918612962869698670471477675950959447818784369630304686836220761282880020160532655503497276565516426185516813709211485564023981077281728174855741439718104240018347276171111524482525797843319582616163683500300771145580897365003575348240281668301945507559312411178318038520501822169193307895470539187496890001122159741926925653556302639851543859223786501940983509353229339376575098728859988824299326130975741361909356628351011099968621033810419362961973939306555489293747065901094123978181193139386059968043261289032698396682857165543933905890037587137612181833380775843634108316706520937503114409546165115279450226311543097223520847943277450686789662244931457046024059778189871123087051506934708033611324259543649130175694566963102046539468137849237999656610213150256185673603345536160842941796613779775659993156760596905387331027500602365338669994416248931307021134528578726327998616158771770162371413050726764156700919552798825604840629774682921500659382838229622345095440824297958007225656547494880088732452637246801293114062077987160787360904294752473266712310524800258028540663585527283303806457539526289750955607281868801081744541638913975020548722418095292197638504370072000096010938186445699863122893323857257210453333322922107865386483536186576013116730886061548886398610475856796967820615839004544916073737190422428150015259517207916336802390413841275579221169859317483234899079424382095251395279351363259559408286689793047465622179161117175048953169715356374655049057697048462861766541943248824231522200953437649084531580551278036225998053717247017992271683132526658378606174666446494392967071268455984238789430965786207121342452099450120030083320457427948914799153782180549614949296874758391522188797717050792737513989245155106389470780155680637480403665756899067835975302121262258568291159195761775665283115916222749774256455892505109323662121628688169303724496600795004980393935783072985172066264393325509890272035067763381448069498546506573433128597136654288147571532882885184272701745144289756003774694805268779276517785615408928977998978311818662710090493689822826766713966016408532099152749490666437904631016550082222976493859193787183475211899736595282565767857009080086649250395462911043071270261570453082127616463334595677435436443186749880462346165280299320059245722014853277654175449301548819589647400659300751222327949612136479602762684259785013176879572376376236966835217983426415975818115600827118501585954298550503505440856413826886559539824980611380781980660441305424688300260225876782045703333336450067548454220304647436272357463949222152284397438647149572981584207627163987573191483547472614442845288392424303612283966178369081011791652205854270199276454513330027821774887790804537650998716097835321835703979210389644198331325212913459003568878097718968207167205642457615345297246027456735355104563587349079738472410925473246098299316905975182257959140707428065703807208595450829560125628674507348801776522525864851413393551399713044840143878783172619080922662268437177620389625355415614510483934457448413811888849515160901030617720904954325963221248578008923222781644786972922116775618715569052294445646526194083722783119559914613257296402507349002479109140617098270033154098294112120337153735775895432842893520460332415871454871215211622210080443881711517389672779390915246963953601659191797088882108412035080699844355120473876648318606204914420625073288938227856285846512447121547469667351549418307114312724870602147232787359679720690719910558063801555244293914629922032218731415890301128421424867375231745717604852426967130399014379031606318094164187645132087940782121102554392001268043226476460085604888317442040268507607211248114406954596780273476423992948283147340231041816564933850540087891028016997247814918798260951915492879586082292667165117898095638651634055156037098751898122120946194410195243896529839375593447050558797148265010877928214826338588704451966396922032218735387997033896284519382874401429231155625574362495917892465853756729447119248660138924624571717796004945837217789751844827827099922630291169875411749465213506427243017152716928886128031142721763158037562455929521227107031101322720672050511883466203748848224931160489532627698396799210768852812710203400345761024058177675128559903818955264181207730212822506371291526656484621002894466601997984175383132562251978819768525872950749018836497460258317045959022859505036108384970902645903348441556724682753546472037508803707685362844316024330066512283506172954023116033672250187061610437708513159843278608314448296197871193784527670955153066765477704413993598111731255777016970095280107954225910425609331946367253946926617520602113194608739701103497679239057990317265694367883954885755181590714803043359212746021123758991844421460759930138526425178748689997947665795338732606118667046183816494571211827159122013853744445337600153301594386170021142934836093862429416421273721880394315515621973388174888694090212262405317078232899469140446898482260166581761003192197499835995492833908777253714496032045753685439344246597007584134186634021387884956186396860621440230108656869375506046110554519141101251490800197687547162736820757988812886190049455576669958314738129640797215818544631405591756744203815570502669765842362268336203831986907108723843146114368477880133511333171842054926141232781444844994462550417138796621502340531324100429840978554034163815277235434751224702139566337861659829027137716704215574304913180710029816365799871327482467084908826529891121738476795590838616278927474424297085879459514615996259373308824998678095378233200811582776842841385309552161850277414607090589398022068662169948849729309040377641822012288137280792503711323774491108103449040824162729539502975393690756237441262408802500798187338790927734738248956466938204111453162250046661158462578867533754782496732769866028250979182307372120163147463345873698731969982075606810498715655184152501433363356348249690792716889420267402129372376406028467696659531632435797921762108271027198643231075576544415090716671937616175719797115433797154754259565977268936061621259452281016332126123712895122528467619187208708163178474275872513202052700819223146083543746746379606177332767339401140285864367174238946545123417056290081471116391938083387989400162622661260618802274482626770754185861280865057615689562574435109604607513522626823235009205151497443569927093983630628721195221374634843796047542123120998393375567457376193955786617652079845668095651269493900842202279697163929912004770272165329392646111312836802421287579997276483520390093151154691672763155606348637564707286614964524739943532295072728621177460621495413260094389802523773574878138640703285750652587109643432265622809119595662286111115142821117529098954724056252708148662029745030637662677920759152086800619073344123785849778735682139886773191322511975921049715595382581822611911261245245825496619146638749434963706216058004151173248236661930899180460360083362929833795891440722149561629833071822917471973900792630723749383378694556036615016193339285540825121277027719286710580057579019767321112823244649621475417214972897985376327244803882019161001167004322927100055042704752831929201276425237759224452542450014081745671286482264922448011832113126709093165672701134671500215704741617287033470602789025653059780997092136358457827313447205843813031511151913621719184891883577631558269216445229067684836964175467181704625055939141055624023268399177449240899459449287109190595044825591537457908287589416534210799886562500310108186951198641957248074566093871020897922546740532395065787409408146317396706701132687640085082826034557274904555623175090025708942034938677428792059973887882205690242292395099066301731065830261297728493649961936559891311625499727025344283234907021584225102419398709051457130880836284346281585843487240159346751089272447984601513220437327524492675290052784469298290765119674149717353085333066272359609978246591508394742589728394130330692071206693583015991333227360279190158963629386725415022659851572575906331067385476691159026466107546536644559586927990846703005394292523008623386953434265055609255745049971407486058030469555287396808129500216496891043704544900592949201293003550585472142944227954972091634932964549519244982080280965835766872782745677745579959878104543692054176080297235486684956696175841203379155673382989887697952941382507498101943060420502325524583223090821207622250122764979594459911675246026380661712675215713545670767165145163996992638255275916200727198430051894687607110678258378172628880224445205526596437873740060856805987617990701932677142515597323496350395857718243889650984330262770598046932052355229242520934167180666988641070981382392523501995510855240017407753952814232289103224729819233881061585070081712125850908144343500398462809331516174961183137750506197588348284699007568953462705551586142984465895886634824112791934525104438245358819488134712216871529417303540096124970749451968739455453522452359577511946784571634950461082476742428545740124566021788385864707927640590825041665440724191820571403144362817336478622937058812939889502402032625335205938862809016357570202781645518867971674205836366401854387097687973411689601183206884156114433041542878867876090211735678527283452828256435697413271221902853128007864468007443529491381163708385187926177211047329261749832314771159766027522624583692873541476436156844869815274360411250809637955438374839815123171787499452689406745338909600514923213283786199900097334843493090722577379981630930354067647783012860818099047167621632511271221818336510501705492754713910610574613275498907699632499380274174683184458266766969563119506265173813346222830570669631979856732301298203873306738908028694313159700429986843707768402974427385986464523877339210144009256723770006916407876790517313125702385443534958486429559992263677979249658763976160636343367153758408663258023938418544482883020120668037449371615342547608817674641371506164924066597216409203137969820842819421468738514002116733496393416461181683776035554005763033616074717182095721237802672564665542456298752979031999765176572700855822850062504855015998658789662905141545435370332014265307601794810577503987516484267313205275398570831797720752361923519497025318109003561894461822402881754327826144122956445398614200952127330534112892967996505310202598266097949534711417845640619113718967440352890779957523514271856787398218620170691490711275881560031022392403339217075568378021330680849887601731086703863539796523826324930710722261646888981189677294983455031251017440955492428160256258849011489393071238898600753787052071627908259841157582246967332804335113402234698888463424726299048297754691883585619484283131856902628795169714730758701934672652544179228641330241232440148658943122575958415853664506373043596027271570346669343886558431433276075823404869905657666833754636554822389298864710012601166893244384018455008471612537098499093788204986671569146376977315047929331445992146772509089911831371223929439566901062844727633521209526555762232660764602730924620674269403593606628144036331274804630260935811228373486502613152836554511972460870825667215284056792371099343210153648171715800898089524489501631945940076454914465638365700357521117076979528479239722367115630945808293393636617089976602390249673930126994061551472909446980124535429943484171178585436955813412966707755509630522717204955340100084344624414453267812494535039706410921547735726681589686436359386872779518784610277415649425064704965979039672187310815176910682031861704193363618739464978472329968489555163730704905604188943106359617475274820452838461320712505331104202110463443392121179405623754131249631552585404396834157485907980887826264229677477541013563482469945660728865834198531208542767373165556950919864966275015743932989951367492544070150686341655774198443536759953621719152515723751368495005483707541389522335716509923710384865855261057632457987458041141399872406123279562475582649783928530895843085998004730512497321001237817485504891298679262247627947103076592395176171564371858072415599298382011346253234132181230521666655729379926044469976165070454534811238763146075211613482426510111195995736553416580330848088026663779486556485601156702655297450634805507103994556677600892671207986933926335574767044457378406506505729504683332366246054575125289030833430329987411624017797103213804613355203045907726999210229862454929520660010862312366341439631236854780631208419305000398317935109726798427523990908007237503086429419573708850369494289525077984313095290802799420959518107080567409662802227577967439083647593845936488766845048396727148768771470174741655018100015019914315544898556761427489743781949021070489745345664210730378691520504958857295590053110055695153252166057068847786740175851171554827764982620296211215910234395205001613282403542563530235452624004250370098731981997175006036850861183743966159385749022862969157579287207544390567198295864928893414669839635506151354111821619893787401661717652490282768866305797828447825126641641551454485499977464226243338414518225310427082208637910662052497074744274482389141245228182763355371912369926989038900004168570374150725928521597169333301225674787209956679524177088013110962356263940332131062575599259235474328695200358432892390995865838516113364275134504841283455871195402107338427739866392227484213080084302462624431536316907055059102051375365492821547360801217641795176611100609390712397996379852004242344913616712963244777400642733392199215896466722770828337241930155757220338767777533289360620555802795613094721420054855532673640743826242036773450054504446470166890350901700522113192862436903156115831245721247740295297619413236565793555801920412067272907062296784408842139132416821810229372543778011165359456832679698187152754754577605576960152949452859995336725784588833847025439102416973618312452476582892957796481333073230722560972267659484127543175904562216923389404688807278064542142031234835858835697663196999514085783159759259459527377709696918747087054603528515351070718254768420657769872380997846580909355161533432516316725008645723685423474729524903114992751422857963726612299040237067508674424035236796303092893905564469415094775135953489466792302496429416308843059057712641140977416709073216931121574430345652415722695296478219445268742646006281248643976035582490358025502268121871921441571257173051940516871447885104889761434800014305109863898333778756577407062078937181182624065825058752518235027549679622107188871639882620802616963512813838210042223857464095162045511158448962351744460641010379441345856619176497329979012162776151221535555266041338583383995270582970438295841838672348732383888428006228377419241120630753206291022616670719774279238111809482541592572853369109980670071303645584149903766950777812264013926286836049175391238502047050876566423746985740824856774519782468670851719680676879206983870294636004193801595142612578806836986149738727213263534373594815482399432994199164965849847145540932053104698011051440508018509610378620078944052644676156830208791486721460385324767302915758179047543708536503959280727394217477588970144686123974689065945997934607951084292669301673854625840199235370443162164782432566042158672801360178923413639010578154184038615413330612388913344891544046149987923243103816228793313988644714649283992125406233323562221875913505670306008509106309315466651778401797589443335717688960463521363216593589477578135465823997728920342378473083368433529301899703654088180424808170705955715283250811520623650531771721320367940826648908306945265136841989691441338576145723610667307383628391609905352327980340743007159464106781801899592301682843148651528041532695628664702195626480085798592702037339812265226836039312381086930250286797882838782365106661630027160898599080476696074933749011214288845724374055661004269209948504868248334790926895217012095223762489982916137825479156356537207572234953490479279054636700096208971878630290670019216137411717220164655074726887837413212283257731397720962054020556705649928726719914199413972187907997397965117732916711988084870277798448700712099324170542032883768032434005338246437683856589825455945672417705794548675742676116452673929396003878255467066314968024832239169092225107542954618043817867015803368618300557012002852119929238851463852307142054857261556950372508228810236451146460075974446403268403848586274144322006987744437442324639016884787594284470665468357977674280624721360384647040562740532813626988350169940514827838706666264565685456060365995990634669463894227543653108287433088511841417579978846318703569026500232547578366153440503149024136171884748766609497434199397956121519319428994499069420290655017855173865442750740627983899208398048843172269360762653269449700484872369597495737339859778065731596703902710582354416549048527039386586810148484386148264107811761506693931439523069608282951845330725495659028398328632690464050585735969714955154758620097580876752821194664455901593675586687295280165313906186823163019240035736266403953095622870988322248042406845047457850857592018170005364145439778954954308905985922555152764574611315872066200932436885290053907828885689338181199314058064551903532967821912565848301430835842004421548652294587839478192702088103172029090400010236658079322936897676534705403685967367895703800293871589839828214378135590652518949263059859298711443991105963424982823936861583675467310092595696060420288852874544268266903104840790064341628705875655096554303405762981202561349656356094809262817028743510211595209237013653215599972248642090600435913131282566661672219601429428309011125270508905595910256224693460960710532003800049797650433085666468753957628046937286622981373000281686838700437980044543064695535226783056426145509058178041648983352423303625398462573299806352747573096248372815943226789093782174822709585326933948187743887858150490457651554226992028284413054191722162217859708219323240615133146599507814372689920174351788620122584425698825703142579776148159934912375152368323652389349273569755076656435965093739422870389952936249880023086878221025116029713663151450772027801678498359067243247697854892550034182762330778281161371964243236729218031889696674754778527385408977279492361261454704612059465845339755621301001953083284084291441806039720456593846702467625468608167728010772823071898055535879509747775042530098985395035952245814139955389354216359811196502002977518972594611405134518173899304711611232431832762612810392051347330215389924236889481126088839655528109508933507794895022764533978632255585314217824696002998780059132229469646680899520557372773405525837746421881295287390406347593367653599948406995222270745220967089386208520244306726077259235367358220955777805509578064774539783248984203987992050828562872321648485759320777246381410052238975754963604305672112748734074539822691260056513068948661769508631251717466659635790664753750747164482997443389261765730856919121955269548313899950683814759207610718666939370721107818205328528315494792760442063445771572134968738375644033213962389729754536371017978910000093591320275570253089070606634636907818090505799948758901555028642793071656492150007850347734413949324421170449845401872378575143916372636794116942968193015260759049658352654843316944334575623121524313518999493467869140506911349551184991822329361857831143802766065853583022317945237303344315062697910142706832933082175350740881458230351437293534222305068397627672193561069669323360429087743791692806380284893816181279766983547350082854545977003512951689233423912720727676547242768050419613579253007385170359911340047661364278440196612092383683322108949106727164368852400956742159014592665601349777319050282375694009034758393944297405967713576602108604939439820368757347328695529352838015974918477759162354902014655560018249441491903522255604044803966080325350314229585913614987327305367180978232365795397182071616860190954563731044375693116345898447966716288469170889375506123263645648280709799813473264851967960749752274701817637244388661521855371885457620762195498328061103327808954151771452775588509048869385256913662964802467221583548756576965608997461483077745210270942127655049976927084865681387679927642352986324828275477062185927255047418186921407499483842474012121473104845871868621579860863666166759075283328643451398764261432039784557347232326927822219287268066977676376836106375116218535421151929129756630529547494326676236160204570039005328586749771148765411603167121558036625172589073620648786332767070508974178262596823923727860813261508878047410233613730941309006576710130592573728036139734748797724093126582580719512252356362410525755504979603696977686700785879410695871804771072388774816333517092629840998550703619806267353993860725939791994467293266135354667064019801965897545236576140174293303195264179133079441939915748827674449355558912968690998851194010332436625007977882140273165456863621217140825305495010431221685477879007906900627747637280029246075404462537086284997574125527675456310718155626668298546143286636832673621813977047125483124352527538276900352752113707331055272535124145329782462539341601862214204815473864236374850993750226685642928576886107966857691733504362941717730924790407596222071552030490934730223241490559278840720731077903480925725448873154964945124752403348431696452589530880985964971446794475716455805229430232415415303362377738671023598184895905497596085681923092314579791055701607936048326147396903316987641725966804737006877173183186266009463798663182914030121783861213376102722948636431462468612953151472073953814495799602520497062592766751135614538215874611698887707704436152871391107344051809920999158156632050860775083830075609453404260857865996636090742000488377610549789531646792971806409167020600616436698383812925235087794061429301750226911554258117130742810225038107865061181066720446692238324484759590041121409810869398832289971661539406101966331859127867467985187483917025812457950095507011540887874069208872379934560999329584762531466983769507763921032051371715442975754566995801100228081983926577099128264120234965902773325587765407346323462047845138925770196933027117867630810918912846359435258020025608439418087754241269288239867445214469974778595244839112728724809640131171178590146377576874482986760043876650886466263220163238798101970948295230284051759933425768319769403644104262280973023675124453398659714031310540437578225883403269011654612212120166988837060800473178188347096378186680019697229481153418469896524511304667499045654456960425535166976085196466618211776700125512189742764149488494186619533951199136179487555271218809658722599040693312695825464148843331527196506012662993165770433030122780220893548208402257854491521013225376873379442264505424710061984789525346271943510808078927187689600528565227052202734449880245017794255911608590429209676719051457320209631998977236771794825629481790792327275061075095551275328150347228659212320455447206425081384948584749413064929807925296400335305638125254199528698461946543167438064807199788403700507425978830117797921047690629746464856914365706317204096639224111423666333797447789392758700621609161430498256482079099429622938949642220924150368604569405771903363374305797228932035305715422124000608128427094640377697707939597204498253656001736766719217549374808405784302096865673150803172602947932791389364282946896837225820248597455221065796884004610196415390331687465053173261640879543724358395305500992041648110205985962180228418958829272841549751238096721174983964452837282191530270023928792250356013357758152614753659797269734677160823580806278746835835826501995929660919302741827585296768879752554412165199451935641140898384697441646560777901195038882786963999634038184906905543384522955066307249789490209995853877469153126608491407326651417717672203906230909278589390971667727412441768105683433259452483315143376965334427271603487699091199098243672738532325891240315777651791796901463586790927094246574095160783898795796335902103992121485298939843134899515120211704804840946164555993398812161476319826063059730765692467525207137970767447633958403649356867290999239385524937690969308332727784734758001611278788425385435337945893179206260108861884914392531645969359007651293148962931875749142732669270277438141019624563180850951570761801674570944316812260618342976537292429006372508420898654425821432859502048670195914396840516820232680404315684306996781913568922258420181616459103085219945752623910048553823304668984275041324020039583493830246983979850297651895360318735376607361207026980039668613150234072485054949241396049030980555982095500824518072812628084743718899081064272790876661033053701044280361789399684216512748562095553541010812549988325103542388229529641059079245629019443890080291085750540412143544529251354485636659682174724113454203818519595276794925905502182946347529513255978515554295619306856946587000362952983845238536457379020083038344243664133212678670052961190994014238207274025683925402561932462938920994010339129398639652096934959182786591293928333783651257008429462116976962996308513736988448593980390893368807215168607940287594646234472376368265209027133633597453355345616943062152433226373164259277439427671700067253868940133093600340880079431199883788965331547187711464557251715952051907943330916019241216726190979787766901033478960660854358125541939413811420242009006042457594719903465269429923212913523369817987826660175816216541849230741279633873701539637751423427485863782179069504542201450485490355567344098424869726655327841690726180304363255975820218836561577031274017363570665214887148425123291824152938595857295718927833744542433919077452326298386496972368830593324248220203470953087564348250831205227633302302670239089195150858176757379760739615602999693448291458024759680491403923712113033675976023572192409002130034553690115325559685786151550559268355979465754696499426826792561976074240024793416045775780419332666896516781439268067115927172808924689613421031070336640274095075235984725443501393226775239777877390719834111187543158534540522265344110724372300229630528184483892569833656056455560732514188583870486171147764024320304259183618190890757926572910287906194176029414200403158051907989424272412491910066308154306583585124268368881537447499358331197367851516652703298296140580587898144052128539586915485499527298111207691413537990183519101726894893936191687437078366121588780813033810223032397636756642851026332644382674872678185376540288059723557231853783994179409496612103549586646720985577763996762019646643222235066733917120230259340493591697503192898038346562716958715260885492955995537109271116149801362468703151723648949177507540711347323858898664883490734569027199002873802254762035235616035939086070953989914404749816697307961736861602836497758726582783416987888211517897374258121222639504113854234070510585384139936304012030571212055405382945869646538029998416678076660658539544849970406749960854365090110350938441964460564541478020782550583809017046148720983233737012138707937009755759697732368037482039701113992170777604780273394901545621272676031297981721293670715256233378197311655755715861493629938956772219648334598180358059856167341493146827455847214481021799151782843788575619791345237154311411814289847403585283588665751221109674721410646101405283743306041366471990328881578665769104007354996936096601870124044418773088945980208848647922275470923440102082561305762876932475383833181820175132681551801838091918233468128605439626295076144491147744168037770038981321065510922295719126891273074483264094206078728389905516343842653055663725239239291046395071559986193273100778460012503827273998921179421114893815040177801368212326065280793839649665733264857859083027848415004067952835927449887602055169865600027715224974862404797975811603919860413121786244012913519273088789926705857931328640080118063676434752919466123126693163412858908314407210299949374149657206131996653529632344757190575604107516017226498786112739774934478937622008019708194321701601600048397773222272007943311884827758323091578773627317349013794547390262819877917980674461854445749840461670444779195330604884371476025754296036504719912220329853088367768158939612998794573301057624521888080474059932790737764889793311606173705983103450099179980545985734192278553714280655320711201056988270135291998913741219164350886607499355147831626601114997914136067826538994919662204361227970719211910734459982642734511910752848404718581307461431729766890757711669134822516528044725868868173114519161682940727132875511726042555780019538637131783011062735187398176442925805633457946843527936569418918455298197604220838365173527479157820448482437838610826750033090530476502360625523072285270199492748173939633906162826853081356311045205156452742986466274710166210825360792636665703533842720248047514230097156475522993661715632783189551735553990476936833696578003377159630086924383038919080847691061922845980480634120048543110232669025759185619402215195476636517450726740245362854658254315300550127329467588462556013055822250989863754924003255827610865710135370978356715967277966500060549979501332576406472123600746265447637817543325836801346896080920146284552625331857252187934195984978701893796224598442501286398799343048143365128064717784959500168336716641321178129084500724940223821532054961183167058796139708665254867649539984936195218076793452412626582964661553289342729226345769573248553422677897629458568952134078247272002785165010818099287449420450705699432585993913623866031399012769784308184386398285447132957289145098053883291623141560558997341492487794234706308557478486369282055424517181185543685577157444051526667019818959700482144540061940623926000673339908494966644020377660626226199623016245492911637110622810495909551489051443449646860154641609209257296041589923513256771755020302394263310367209550526608444578170381299523614265891989657371802567121657602898034513292570319414563468750298003259345440359999499311595605615671386541992046697235002876458340154603277063637481274090076907826450059614021413707821034835627152171493536538085329575731251025203430520914413033991402160894878529186090057923484468768642197849992440001012605737925985099766122025955125351785078068387339625523647538351811468592729522398802667923184708909858739865127771882079329344585802713253136026497932547154489226862303401661281117126296185844657813416546653346046248328695453107124262057980856112615228359969992349013108073370320422229782846459708486153084871014241782492589861352975258606169848981036358124766741056926655311100139833889596776190335933847977420862127039095973883748763571344180831492560287952750231308991922266103480353214898912247848701961015190024314180598306069110527112654829188265557758685722202330787025004942627103346088763628827669958219619725392872847573091456136835099719444682840101926814508874303882593550936828122090628064936084560732077201684230926509692587818215534761750908117638683033888738408398969252076102780765427647088111461281511113211914621788985849160278987245669217597047446636313653014024095145926806574127841274655348337314863056658114225775271610260119931868056870438883198463068895322470726048450631369570447423586462442368379896506440891251712696313490248125619622718881900634743012457819547939878346017816067078913800513090790803430129486450664451626732446713328325408774976208804745958939595210063366946547526361256996556508511929899675687450153828692219028657399627368595160456848284269972181744124295622186815456667135394556373099836875918689413982961973959105132456472316827846693089797621809845379189423921807690152973598023389275518601089914120642036378996884110883662155595171331729556673078686877395147746221323270877296003332917653911753716579616702480316871764174012633854308611316073566981379373468455942630140400258002205013496606834934760470462645451065043647246410385673644452610678302424158027859872837263971090302741540799458650564590469988942755814478803371359119821714285842689680399459014900977253429535559959111486933983745721019569586295585278295257032003094570183637613968682486037329061371970914787444237573335977788912117144136457363079573266151708886488792582463641479056093776760541070680227440921983995460779240406670122041342452312241800984972925086646493234340093081431897292591303035843866415225914112460627825502439509769423098261423868624210486201947671673384412607895566042503627140841616167703398998376349636044467966599643390980303482789263423076350592746496139578835991370567752685469968271451830952767419006962240577469743744050806944583858873506445839003266176342519636680343943675330835369512190216743905335796479688116511209638067018234482514112309296459007582929833893459676044605719504302295965082198272391010084236420700663387204162650117618967033996856207538825489262971635468378204460403282675823967145575923830122088387426858969203167289807356608470946720488310699460299467133793320581866921085905257519413279871589816632425715608618125698233051118327221648277437140290707206112541508417009748581474694263786793328982419635547510010594109578672021428784055826243029908497872593668302013621421442185213516785449995768791382132405834461562711791195769802217394761259583579691523658194629956848285736405380277736117700410261075854821207933864430344022521778162609923914667700946780385781103126032531363652625561551984350635481805919750487613814571831332200520318625548634256795834830654214714054191952006074676286067260711322502095046722530722634317605010082186502639266281486414950709667300389687409382834586592967447754686281885480665375365358526770333411323903678951975680565149349767292659034223069955722861902802393527222431564441762875727381638213073075904816214794512772458536100492558520591892049236557561904662738909658924019467439825066771830482719059396701041622843434350475723059543906589277075893436715241161311036579591959390950902872378432886443808024335791499866202414858805415760411673296978577193404374656664677429334866486346237961621406115803781205007425125899859702884178286290983034214493550330359843329900235934436835345957694875985953287383350009096069885297317881374880093868330511749416739983976038873872008085814677267831457047511998398656929118636927682260324990573893721826126723819171481842393094520552114598978248138240733857693366083245345967981099988567980266505161716323791433465528101592849729662432774544046657663872055495019473169183556119859327571396965213282273082822845152689679161864517205925889534392577665060282862323176132914827268871530117146669976933701851966813036799708925725266222136565477577538452386509814171291937865363695097473588655559372291509008321389737105940067915199418389097693816923889280422982175537933992001724741983583529810822741123240883582184579890751894130864972351895988810139647207819681905922618823107765854561810627562762778060513238810233029541666326283426147223978092202304742136559746234040899839015622661307050592322989618469290891738074470702702139691172066754668369573350619990232238855165474713399976696447912904516927436184188646706923471961107091398964320802324077090730484493230766706393870252378388150092634371886824307967016559811278230687105193631027250302179658271424692524920249883782739103318845327512301041075638439541408236093717283531628082429858813939760346872406105822251582085194510089014859300813202732210768808275659957149548830209951286412552693917805789164865357325693266409908093946681680327948570892142105930964907371887707356374827223115270168893720848711407847543764892910145838890553313901914728304249746061806217816979506215325283275079987476879866418236027352258222825785089169999013817602305131911138226467277802435673892713543642026249278529708437080468119722599057764718190804076450831711834974344037933514155412326444769010716889996598633394594289953858933266303583378788620015929607452557415066097004596108054838028589538369762260196270925808578743119298269526924032704684144488719725213165613162476799708028496435165446451921858406280725179698014558314060934362122342356440707903758423547910875917969018078117065432377140536385425016099959825892234070671342373800082750065355314477804942332322740458774808960415936307260574814295712530321679339796546759959748286077909320486229040857506039588652810733341878344978533792266596014678127003379671774770810095575736045362665608034864963567314173387784601243953857373869005067772173808314007969524479884007652487025873373216759822410929274280383341433831092815308899622734329844531648960780595878179593414765129191477868339462526533280664536219329097763712933429607662448241577601584774241100587644193279826336845491291189320065622480204858633545840961577501103503305986362962094555284613006925889902280829751086792326162110304702565598366919718638677003116245703113002771659458680103450263175572630420362873771699608676661398438067710583800805028980843711610486942294601817868133471396994905017592668539501638955031836923987602309762104955409683913772449306306501267755824529286019148443763404751890173823549757104066955889418304358951776412930931419113482373560746563304323150208197529640197797773091071073069351878908269715881047721023365526495609454693016414698053284530267556213930643436521514294422406654347296470105528882655525733174076717758593577684335318751050576225798460824166612241485525581328788648254762779548257539536012864297575128061369168871059408682942909389329581821610839022002550778021869205008967240292462379848818006159541422874926583366853110962911743960056859527232786701895616828749525982276964256894421737123211111506021212267989027387950666236765934449629734064213031450466610157398151224423992265989969169533458315714154512370962146240444008584955879914605529625549599664526175951417515899100978110718521333710952267014000992776148237171325048017745697050211604318254062522236188804932435047542428988008098232852409044996307986387943131631794935077894875375396967336479057469571357199076446808289009636899556478326325352153330799034453389484176700656260991002081339408492149312963764983092878211301164311834427421953729712218502615620385221148740623932319194681792285563814411234406480477627402840174962607782800114338921361569424521969194504268436736494565142557331144895104035145306403966634543978718906049529536800635632983319684616533159696753112124578535124069693675188980413941230342215211412576284020920897289933658760883431411842605255143572560840232793452005362731816226985984155042118431632659405624884464945252314379461217831554054220989496199681539797223239290742966605882875528909093224626674153814831082926174638999200835274816451608125384732495990616124807039786098953913613695205397158146227490044467627577158277500811732174885895901653606423029897954353013039694402204735149291822853018538303379518111334312840493529406078358674537348710225010970257139587345452321998939003971322463344773486510117206949008915118540190231613405118426309760941684824743405856544084446608924459756958530162475486975690999797220051012382253049382376270999752268005433749097084582557734981868043648206192445821572134774551639055563031542914519150928373520741380621930907798941099006090124117316831061173960307597651750159565066982651957450687599662145874103433301321390559627914098679927523846549841463741467464331063283332403947315805765790531299469090927675071181346202286638964131671664535356065016919431469662731681590438491249541102645488882653746441360263049219337336679684698105394228433608263881413453855927079650885369181503775342457471268818027760075701899591519405467118398739403579275483669895828547585169568914877322557916114011425986279717972434264180885701783345952939763113314005346785742717048107044828204146311360215010396419684046635894821609164048957680281054467794688813619147050777705924443734247827091877745654691850204642527750223955235770921273494379843001704683021636443694370682581415863435490776927540042370586263240591231901560169580766800690307930803825194063222463096101422775088780411905466391003122666297814314436067653633320524692750962935643193933324331020357504090369813141401449330929444588659571656471492872313071238049527691459332080472256577966239808288194814407656148089795077337615301758162908683922393179420244892075307681196006501289731376857569543497067684844532818144630753126379096259725936552554788917566405013454429941058905620005510239774004694764467739919645585262176102463358383118341957146725544170875674241630448883886814207018059915662146094054700455542919494175684900340887642183025608674611026442925917101684147663321735801651104734816619162997060168247606455568043240510056288684906431826076940167619149879506782286449705997094933066139256871059214414182674940436056263360046778928808651477265314914702382053737126592699671500854246068777588574784333895483059979428939559845762041324125448907136615115789739137748084635349642043035641924537627667674933186672029453766835208660421498352813322063052465955132340634855325431431141278849458641509272715524944380596550796345795008241930258731175420486405778035673598189559300548377321300350706657432776004278777907691267839444329223069058586262210678848305869071054101571729874680528196612070833026755038123768974900440945218823784143189555658596729443086753983352230488215476348572680745033918621698976951734139635892348817965594271192753434334632022596593738112540039203926992994864168770217421583777046726454086133600674465351718886265117790262569833307490223249949867333434985757982926120050080787286785304037648049978443200852791598411832874928488983211393338528280030929629809331321162700862778614796135773792870261745727484155334171348202395681261822333828696922763309712013617053858000988178925793201904575239082586042786769558247292317456710084099177030312372193186212724915341680717495159113888718456692609697608780984372454817757885730589043113272080939019927467436476609423841236570174079277154503229012039093703376120072241799957273098203754477419812375318277799303300421225406529562279316398360558514239139975391643816602309350931322609717710317407600625822364816742670314262292146513641275432403092372533395286042252886411991204506958868805505177470313590539108695678794756834005467644533818836176607615424494101469083553353038443159907780823697674154350276094055967860583077273762062549363985873985735374457501483628603066388385789836004174334170023973437745552397632340607367372514027714539685290377165981715165363831937941726571214325377624716177532494768887319016053729226206661578169006929469112184374536286899468693286411862585305511949446966008328981809992684559400715455599053064790702121860843795098250278982858900586530162618296066492944743007442263987859190931837614297981718530790878111416792138552824795639039525636178125612915016837978737688753405357219118078793061473759764918320471856503890406340857847761107670122428793491340388165484920733131526444919433883214455391635259926439157999899211602579066104778956210090529221805435468488009362884476979876785399397420059878466832870521380921879880273049094308195258215273274431649491488395625504272113028228196592556580980352890785619799339362273361780687602055236961150629433062849277021020292148643715605133628411307491297724994170127579008548310745577392301971325705073970082185770166530265805443723689955787699005070992577434345441887586757618591025958853589305251040944373142179971923349693578807146011255871497824820952477435977375620319287052285807628971116579552229214325426310068399722362425184249140067738928348687280682274669447230784488261719214679447438230714472619257032596839442389559001808943230326615017612146688802107859991096264824306364257769959014555987725718707511728702671749186647311874713690683545100245375128215503763186338140030851633239699510053762849152533310935648288288945768905326363891973220585279672336624744000404090159225235936538827935638566977993585490644821964314289654610671160322904520451623253371193750512104454630536399797351905376020155551267620593161599231115623698656039464105273836742145180043928162314389453919121427500030057883074458298280659644361609316225450136519327535664904069918130631957458502873298957255128540232936305690525210937120623392078286215402238196160724053021501516887313134673311952595231544606418318342048848705218395585576828929771536043384975735725022110506053957793362670215968707119491788250054354592184910269220044976852059675360653245793063298201928371835756234122125291346540702475765688944621515297220049574496354752635600525980588976928100465649051933073589040249505828412526758224041809981042233817515192553492234218043850314747958112313684096317764708513367018227179209958252977951290125570412219390715972188735478850645760845690482522787184309168524298256110012226216165968773504567297084470022833964048571251146032194522025119678575736223338750067455107560188703049378238663776106895662187409839253068316951598760792134170502412509997473397774851135342042239504228346322587715663085025795367631202500722482648491228261130607800717152393436030572260963710560724442913575634561491055977954380232207817938244516573689424383738087939610332898487482264016161362377756126242874576120717363183243262225510933642729094211771426405520842646773574579755967061795268878888043315559841042295227789701440536101369404062407812561218544160892322681552477334292104676523591192984959385730022816002856393584849475922593627412786926807418248018044041977823550678900195566308844281412399966212177226967734421522437005697550414280384110911206967375933119934993465634915996790947100427918789459141250286919124109035343666987117109552361166061067319352995627839028801042671649320135634557119033847295432655976372412894040316000888023254678451870169991388378812094340412880973362270745080252767781694375867901986124287103479780508193434855330623564890782148296001500416693572204719084719322472258896767534110182079565327058686013061004627437675601679094113814274899182139501348137676955563041647348263288974959731354302995508210588788184371365077591731853455753646184213383885065715266716628106044514109779190814925359649078033198805231568568589302112356203566663003238039197175258718680807307740232781174370806548944664708051325864339894076324017083419397882489879610859812953986498320849958184771952593761833778653789487287182187160002225917815649056800070242611333350713642374629251657322937121167388341781951992870749919688118484557235041091958993655063711838374725988248417790152624545814568870894300252931303910201428729470657358549600117358632146314743725493764648554950711457670601454700478789574244034754758211167450603108148292082833142705473882561786099888272904792833785419239022919019573915838755753292962077856720943318541679612874799834125897200786868387290027807068707472076452122732847944019413767771851217139500172410940442105613139168584740765713284934995396351763121400662459420731166479354546140325442325083808552890695094694665036344006342760883232820414306983409419725734710612892810525701796958914484363083542754151700417135019073599708351761657631815831238584953315788387872151597525651820133241126818981355037390357647554898984565442049720268151842372241895677475242703273614098239197071915160487758632133415417703847481887804160459682096895103636232402598222713928194055127966679197439121138664154662328967817815726453321161465745804583139499798738586041689982913011203041383976763169571793011750894011088790019931096911139920732455670495209074345320552171960885724330070431040601886796465551033790689857090360798500677765194747623976465022126405000942107163046549538927281350567990750959781318009741627176266103038729618684487588659777247838047985296272257973463372038815566371292333519352928633208535210351548307497582363385599823031957556531956259339362877071630708747713948578309551042145559947851352846807400733799686589502814351388327654491200928832590510062981163253534428079216977091958388122707483490496818124691004529417485806615821772391981604240317849496228208813859766016249109097117770691450547406065201326388360483086731317276955066595090385029545753746828239174509308342128017219030212022366565606391567276315190992112852412162962240239173217357853853848249898289700165710519814102374636868213536270572949575762915173391990561778686863513898233098905640648760695306870338699252944456908857893166853347941470981750877410079812784301482275335408928287244319274562493450725960505789415542287545934203024246414402899212483028841009460275761270131330317786245233145541864558718131974330662570263850837276230150111624862519586984560467609777562612667954515718612022716042662692112862493859268008111121259342628593375375872139048203625267670264239099241548089096116294915958298429083934399858547149684714852358227132533245128947290395379773768014069887496426734382158998254539617711264319567620331454330467937240351824025864921497532891015359497365395552920631300505277495809255043778315983415382644892743495573763261339085305669877412559639468360900170037202670510228486251466862342000950815888019737567649607425477220755086365434532763150835397362208118225713387278182484194851232918220409357735373961908647814013707959401882163069967221921352575697889719274496934158118854461863849761536731728907028665888848662382485839153538298548094128390454110075380815304720485613076927012693206043151164229604346681591305110180532210915078236704527203972164496103041223507668826293012014997748864785975281514825932192769980404931043410031414038197050214764588774598349993068676748888095958167813488048764658792631947780642602852724762545653737084210351930431824133472996789099585422376165718528773559644277647868877085655717796090368613092359118851989776558731193070723549162383306194924686496860147077522362024937381597117303396696386850010113213407793684132074803182579428245086609888164423131708795275556949397858548533154421893102491085853598030046493738424833946178752005751848934171881954181654543450091066699145076112808781421942178106308932337289905792472992198524327396518612084102390788871008269733506671714876200857815111918803019498849083515814281741666381901144453872220072831144906999338825564159164133461076830286974695502523945099448288523234148582492939795944621545669078430300378740555978118995235724874412323141298776041221544035332103941085295059066657845390882872100377352015761807347260619946319092724143630838812152981849971748387902185997136758030532619834317879604655466472318749044157008725164573537563468201529790450348238644006731198754421951098547296505435724936232413346360886458336004314916811567329536511117099563603025499817368378472949407607392334950203988906426191685577743705156976841684793996024859354766051595931085330309223928977694474021474020106166226255800159466508927666284454027845509828412551880086989986933688958169022642377686846680380303975731709470249975825436421457956597313941873835690247237572531497667575086973421765217617134024781524426833155059063731234763349774701702958855662218680016367591411780880453691568000083082971773648671626838451826909987596259734015923066770463082788566979024852005951060258128613968891083618111611013637643937984714293140834070030626424076313524355596424960333361132114260969143872023833525282741404121135425126677526836852768968817182321105357251147963665938310327158479981946856481181194844964793878838003217588166392867353818372788473078944657493327227880963026335889575269695937168605560647324883054193902521383691265271510035199352531452298770642561066538727212355770529228865940589951463325672560703288997675490551688730980423393771542676196197147114977936041365248506593387094764915776042091556996675127255754959570773855496129378652057428710653331576738005845128283416668588807807279429299931546065716050661399392632299352157855607704117368331970224430996105371685611408349422272447286722233602661603752125150909422494340368128516121032882100374818660456607871226297890782419897959573409337005066833154604715682593508507028149803351973263609074057964169650306138956448070122754051794693434697390785300550115734503671729336835555453631710999503168187023634145525769775760358921815553930961444330380504951236827559843191514706694770407304926308612540426065565186612407401288146054337554109221354171883396270985472673361779004183369994623683741276256397518817959839948718898253477960460632028776139405531131127973519826931952463865732744859360416513352278648474959423428675896542134571118666168606153746290129046209986298966088745757305996279821880378660258697481057963376096067618076383437953825999622113055381209682983104767197440698851342739664215939188144377996429072225325421130145051862961060230990177452561588696345811011722922228152284910916909228608362560072990327408770860558785842572406775812639886849821478000047019817582476748175764389300376993405422635435987413233268136765226481366677618172281774869020615081407790207920983985636671525015843396857378291551338181063410534827725572020982819089893028436714250497030801129818248001394718255167474973974211882249602138621811711077168785613253196250733457304052379365368511765635057068074975763388107736193054963100344467831251081873579421043735448137500060712488197150639252468658698725757554737035029670275570681995062275679008155820418831798415439237760798155818625853826520706492349202653139550423854590590449286484848984734902900536875322958786544115166847398859902716841120268989949590725436935204438744201906080616162537879219720724124631817742929729554343971297380055649316921570461764159221053494273188924332067907037917919664187653346444723742371143717308082622378020298512565896115656734912661366253148718817108281468924560704978148171015512922714429924566933131394521272142778374506934244787300710174337561089453425101710952888125740550519459435929015276657406923119261763783659240287245074073038154224705149287856556231598154085787603121082616792284604973983395917650173043987326019740746184545820184733714631888697813195261511648123138773385541703854163151578983095368957400799942948458714314017898169646687043364054827958125207052188509119524843491555935786533298634053408703679274588816308739011537922630763507519569550739553431706327054881956238665534668941260138675950322909334823443113063715409651483816747891752061181545712988797512505013544333359740799753739496180868599411074624324342403694552160798476072425428336680123402665290435158165876542141745869400449403973199429074139413767500402275212788172162566773070747267540994371041422542418168580145150113009976788232914042764794969385827557723115807602376785628534889819802089959172092394738319472080548664199368132437232722836009529399611882730799717935284834422981394428296446882464669746465567208842153207783806184632508680149181800315419948120955668445519320260799426518658827134515177191102094801092760415988420276318976420624989299081706412342612190198861715076303750953033561692190443512465323307422370147576805959966960951449222639502685726639530501627023492012332246403644374738827764296187006961081782907992823860465184489346355472652699118283373400709060352611355856586061348208713836450248566133352521748861492338161768175076392548484440385851743418414058492907474347966601811521056528791835599704064288418545754728753343461857278127548439190309186163968095091997409528565823976992559091817422679989609386258741638328389348106310382870599442679130988602516613119120870807818626512697169238675358867846207399642125448574967475594796869820994104517609674249606985666961412082605514801363566627133651543611860631596435090895361414393442835908753669447494961014932083849778378296751418046318966619106923762115027155749377225115590736846874987719091842044399623423947669078302921970283025692142984688548261977693897892958307085561894719975034784610530877833970201362615472384660692163589926025453687999237595508897178053741500460053068180881280427211216457717052603724018273934423890883460918664042932027180552016854088533530352777635734828935567010632806846927033272758875896230211566459377799855454784696552681925369253415275362487402296442099305487658461574719411422102115398586262370801386070131279989681129945333643021483922103432571891256421138812740530262991669118006529863814787500272619458914680322324418857142289821391130689972042623614047335249943641574240060305815770831300767056988844190642740788510146611122168538702809925574712080104448813927451991012880181763602538473967491198514159485747245937848181042684586102479639626657332812791311998308407598152448725656855373360673401391066196953408102638158851550206858015022863489305849255087485444714757238553299866221302389239954506968985769723995014469323573705770987901887019384824573651788834940804213527957380557681172655453259961761689771847078376141986076231912270260840487167351607593265896466421026486425082173328765146059714285689340791778511067648967121501863907663635192981304886310621295137084497025783476594196955608690679031250998129922937279472659255979532579301292136940440523442216400134820054657999373124026051050030592533146187947082989080672000486914150138827287982576396295966872196498367317492463785232088412984194039968836899738175815443868741968921632238460915631807382007657576253513138717754922608421324019168303544924250423696705168678922909620355632155190167752913744356717186324805209801222979071625253411990233053277517175641945487782676043248608622920425845477174198415894654076851448492326645008218277308771212393336703741467869320720865383716184790797327134964811279958178916109364850709667710767025429062156973075127893959773014408252325255459514744055440249940589524293753137165330035389906702679663275563197367919330861494653208177221696748842398780950792462627343569382535389477157721987926923297496798333510954360190704044936391617686315422962622145550982996671560774397843555626085926058881626225731162623090343247232983710387564355363201427891971835043893433187275979513969244074078659474411054929717883956326564302247884175619809328918369780570250498698504241868624562506006158159116846070735717966057125525419813438061084288221622359558412443296150654773389659086641401026135434140822392084112431375090761700586933845860223868207354560426925358382461938454271514929915641321449567709771007194616594801137804621008694249764711313230597645597676541635781220703605212000852732615745335519980698689180292568416996249278551844347955915521269138025062956549431270529692320629547601523450342808294060245459241006055558204346249078574153693480287140933629483196139049391161269412796600654139001151570313700106303867120058331101664576244542136806128867175029934686067781368536720799008088656435374017744131759097971458147036533186738293695748916961265799647473520403422849937185550713478330943223207530412870023875716257636319350463251906741509373007952752709466933973164721138247526914750462578229417827050753316543485572057573957219510434936160890353363479936574254192660278770189206351437415303086208489051921064406669850015443610575678138408255611784916025813988981095174923041386320116199583318769128327622929172243139540723843910226112212359078234085335913061252807362828453429966712559989794577079880168616168931147842773021760550994900881396517126682995962313410119641867515584230669176897467836859687278036364370569851737768424047358000075462912335631616741681896154919427948642155571780119162443617870350587096888588347009364492259041860202570968690094788762140297167742198193923546606922858374301819118875600787169522437106287825343192538258880554196313703733162384848907143659774046350410730524276680543465042388889768416456703060496421504880349391157183783923965799800421143166960289705958770645301392814391237680876780954325161455265256446201670831025819047164828703740203012952552796730866507408332118920089033590045246954431602301140642112273062203791510103816270148117585425106118602543072058255249946633518998601478079067497120301002276427838796791935783181660185033007178703616577697778339689427895926461015419650301626618863613402057522066908717939101573691378786401984745264915895740137216655751004936615323844185535850332862280447393102834886612762178224105970444887507745491052716805370350465160419623530994030198398645239522585874440469772134152138073999175099851817777699279118116623976615667141302322935724019235397649479642061688096558605216276582523038320435390704112937369045820248272617218262895940958346104014674171380074214861472041593543080514728987654014740175528106861765385739388182805351742736697349052872759953424315269597752635699118658886489877198848043162734586464325285100340316874571985432327555161128632752138795955411622762423665147483453282707951531653658360363782798151293894568127528504429143971426776826290486954196866536618854367350048606444190298140477313732215584621198634041707098610044365811169235823199115028102323755659619545776012324884573981485312879584315113172079111440059438931144753123333288126962548896805676475589986249138521348385000394270637053720749693346082022808631169313962484069341800128546414127340850028809290257791098482513094473072731477576773627875611242754473143534081322589238064314562424370243061607748591286190486438588187851105411545949248987966757672045226057924185064397302748689217903632136833473754212778348958594039368029492789416914057532050540982363464626346854987812666349783000026960517536532649443007881617010284721354341741802052902476580228329366302640147946440062403240497196787902659359206900888135525798926756786862889411504102751673015935610237775913067882208604696228794614453314112059134309667040686974876031687791644875363399863909838675521413885269297608617098498289445236919544708003864973363437068532805504043500681868089340143854938591134682974602219504362792645256000983763023179210204893753972097190960374915627163199999463942996732219216346550278154055734331070169456513556179567541065751842921825815927297452230073702795786998585338865863247616333847674916859113493637127390424156403600901451846630935625736728444575961933720232212111807446779465498085749563692098543810493489868152212506133448254962873521017839956661757939825613209612670012024764688900396232231868198799363027199355877049180246582165031016507285905537249875953346049616488012775078076694468458172079675534955835385305960112525041813945314975629728464567744978869281587987609247658088516335425310954376874683078678721284367114027360299690007057847013477771172363037088296111825961397333818110221276138852039150866531968700971155014629532308904550617079278324501057218264624930228927479134354354492983952341347808924132332919376393004164198433694145857189799827443103031786831454171710233860098591590864732252671709195074515806565208195704729012077456997042935584050782183290948478934054597290435613997096657574465571651938672458102471868972422277688936715655559339314472184715291965821148375999051003681033838221812202485880532424859035673258634655424993225483618623434631471354039744627953724381573046619712843087880680181746058762303674374926536045119047841499059603382080230106518668444002259409666238091435794229002534589201940475779075620158507451685410005204951001131762682636315748655025056272217670636220468455591359694557883291291424887722795592415732453695148144968040019137771413530413998398986922734759282347875789468345053872992949422014389776110441825051624799874388444150719111739554403917884071138918226244951093128627373172089183616274508312699823241099039642576293750119664095599838654758654832310297505018678543326607926843254682166624523142550482607964242305442286977710390503513540740561569058812776575351414555533869689968693855152089596451480267960044785544308618050821371918265584662840033263627589333217076307581875897147130662395517423768415407535810087430023665908754328944711354130047047145128896057063912135674091764901229342953671258849136633712160772108782075317754488137469850692550241308456188097015138165900042857958393802113182836477318784156415780047047916686191368858922081831487471575210241767596590715040924423015860545558428158997132860834532227671575057580374194136655396181115391985559155335379956945835179048925351609183955684076730431385451182001795225395073320402315306595679796192733052373269757052698665271538773971720515324350395321388749617924187267661420708002955028063097615128113852424653675553711944639608621574957178728682252693901508265243357947561433269092078944074602639638995552787089121474749689660697090442098249991143289067013798216666610830683585388299552908217668927391671795428035404213783981565579636953070105168793265787784140150479448854294388504118809201212323807813073058895845822085257076808584485043139243468392113806888879467372853092025679833471310332014377068463411891354834833791933605788515606870793249646969674483350655136618985051619999630656898375979855180372548320220564993469063515379723579968875817776345225648854731353552173623546420556413506587227498001141259525084363993944386466456707888293582182055444608443496793452226405523746469150139823305165805189723039784239207265703994451781036636918238901938170832169691759714177984184968390240545148648492962709123460820661550313848235215423693108468161581499030413894759065059797214554351885236532465148721948214098347772362485436289358226770549594876904282501199543532674529223900777099916891855762038438120765640622631404119251355321129356888930353667957388263150197769703464543919355162492886160255919110011513456521434099119760077255862485409224597904439318341603660686882024823828169979698518901188550078854530520979967232881940644096388237943980084437010735532348555808325325750230042479578808485138658548354408600356385931876195082692081715527374931621561028823672610294371295226169355627729831585942259909072607215671784917390864273152771804664260559556137649394213902037932779039109538181776146349704559860589269489812578319465184485880513111007480825600423786211318873112874571422795930743690561240556423473968018067784646009232698546455682405784932842780922669921729202371211476215113983526317822792531084030336293493978633090353472074037600330073016918640852082815197289005291612298721598390662661869476876845838019834522932992263928711359188112837102446460517147606570587052557517093847781630439010176227942996148482067874250374978334270679674219919796332872874813184770747176977555165161612157732849921160936596144783783380075783502441749577015752228779583492920500998043295208085012653961597042869691515211707996155417456761048524829446791412282035007948741339375185641827858494633510336770226603986680127611280910894618956729812352599486937311230945696120067812956078507866557741691087285675183857298471290796893845427627844647776239336852971511804431538031109088691846322219075685263202793099363807846165142438644268286734177692612482490371868616433064629334031481180135632735248406462845211744320040367171062883096883880062077343504345550257556951013357776343368837373625724017583296324771686265217896971453782252145550831540882226398616459887571885337033797725724399911429181767475289772644548600747531137726886905962374777353168760842662783434346132201982965498008136194948770394551427658261976168149453597647549196799894784139839568667020182885922782365498081427644588803884118461880461121825643133519195484636583209628413945159462079608399390633088013197386874006758957075534392327639476082826611597949819106210582449459431000585114394106986468718845167637051022666594469169405445125242008500730559291168177433476365443279346485714734234607571232811423101815225716454081874030889273263608912435822128706799626167500493887463014882675224468082975266931111564085315469834612190293164761403379403141816715147584053792107464090891793203391516893699105516551267723141938786735461177443538638992392123391521237119370530982983596638981428221935942645299872750338048118062404221493653050451174171049439733714562989637543626258634661851901021951834292898178266547423110183973995975693994302265601964619417566087657608010728762779897443487042884900361485442679613277436252864560584242458891134681522101959111387389540929036387549636895150726659857835601855550442938066214053291354214644293085245545214760597238579056427614385093226732366837319379402162278937597897864351532608109245355955772208642763105789698271831602086678229847273303299960174825911640577526905193489955438796610983810000223231187848240252731424383685081797247375578759622792732496024559867988086755440825013868605604073384276632242334278350700998645086445944835698386170282905870608011666105852336158103342339799396162366285316933555379607888715942495119071963724743408568157198691698915759144590111002963513313737958416877521216921947519770000101808204437877374171176041030599585870610209085612803840031745294260975041921139888363366068375952335526911636618398097772841299585588972344948553743216630660985963346198061782278146118817035904369070544615537170762807236524710080487744285740980085589024606448355086890307866037974688329070243677517040013924761709839506377576392271504976536667911454412148628588415765997663062383412304984468692022460592550759149829594488533091720613352493915496224376646324103577101985091549193756137084984322181378821911886939569317813055113238065794587668133104832418086518782222047257517163464107870169700271024710541793446768637552457883846288921494112688507900946865359398744986562467155446888065585898912538593750527591753180995401358357091233644293658102630469269732875052321875429120921319716600915159084639716249854246978865915570166739615442749265462709995449213747953325739580090966059978658153544735596281780712319800588854805243166195708479143282790833648679108546889097870156966239803575655648711027631598021000602493856720783112871220586624725710794135409012116736293471862160543992612592615262730898553820496332852665652168428316765012143340114324166615396289934823755042298866363417616782909891102300841359180904520861733471027525500768084931413150224676094000406419577343386929652234554169406217111301403885760211935402649715593183313948525739088630413024141245825356792191263359711357524969076868442033728625687728380075261473045850219846113207491718288509427680239872479098430875890209293261176270245846089206924741611817199352046702963947972801948613478276528845136133273409137993608880163733858930494116818287802733234990395869417230467666390762806513039345802377455429124598098138527637173127198140360721504474709294087623781839086102484572001604381095431141136198488355267190498834773587103350487811403912082214480907585216037788543981103862487376961122791242167916291472343943604136252294275236987917258498524401187642607307888750517896248238595293251497252543606021156179455662794335382433366927228535232179567176226076988890298397346609825102965717861726116726293149133893219251182746792557572217783477627151465569515058257310572016576575475435968864594063147046038342228127551634508564415502814450704840662779447365107588778454938841780483771667358992123591282483303888724205817706758375341006552573270639666327810874743960568025955240119270970803152329345682721953871702687820023321700995462940843781993312329317185804398470436958246197095908897276923279013321040756241652894001855395066414342731352750720615719096962988257861652228906975225798682015752709796716870090649549202629568114125940693284588770180454189468387482890713859024142673409595120011617222783368180744431016871250415591442219035858218705203087492243971954725457972298706557731617711521913531318254968001269144467773898374250828833839423087598350678461159744727112231925936275763140732691507814016574162279817568057513994020289337071278734162255671385448828276922013633901548232149723869605176353325647444958910073162163072666199502481699417955005553396012810291530658867690256181661995460037744347455897699856942039953527897166251326171193745634081738498438946984875351686704239997672383771906277216392932143962266561515340719146575084473188499085656502824208657101239824630674460691296851692937757791669203272815216728200306820460441089213519544601503452071482386701928073023670091527867650788465556206241030139883462057568212889827527098918564418503298514073629489320187901756588220435278680216996963210217927741499988897664526927350897626092250261813489184733164539276834373999174293765273265814950205552048267990762519820573041571671752885846841485213791015952052959873088387358323052627653101600765701025309404465836468117520830046102143894229588191339636581848816684184807383373255944643340490878134652681497687545671435736512828176808844897773240734147730920773326309893727646554039910447028208423294079950421774149268643796474956935717605848952631141329343833068031813072553712592636865739566312704516697052714338400390392080240924613672385355437476072855939541760845409255817752385046475727063173626849374652829085511472974290927998208360070549083082607316094185534455686034794195314304582384135076085403795018628692935232783237473166439849510897780603577763375888087388739907018532086547082625691549986343377421424791116993092799117331504239040672767437185919984196980044521824049634310211303785159367559547721332233032187972286595404696730065148079574929219824343104887629870684757974944743987250248617648842376652937551508911832920145891058644933724762455569167765298668661041127652289111488493579260558866060266506080089291903839344998795661599366927553915093500254622724213180298974507818151956733379296756343723018353075809062747078712118875316362004266783105643929712566876929880664490318777049201878206087091790165230148176725329952293409260254010471039520698747338052130378125897184054203377441125332888027432034781642742121205316521925217778691519950789941376291675770524228615985641621020577873864893128106734423173957950498190065150191673125147627307849809857736462272816697185477389738899359546040627598516712821682045936950610657689311077049002063763872399293035598840434190935312454271960547786075375124726329939140346777390920085393068494908404864550830259545318158494399204407494741489069212642909385283288949733544110304410431162152326480129741391219995219137957037637407496229701457044661778403544718961883149801010542464020458022536566639885893424246963876545532013233283211565737201943452289146774759964256536404532565469135726127113381355726164466100355026726155042522094161335462782005561655245302024501352377940567441851080170856852729809124969676932110978893897564236049722608920415541599264216732798690155736725209628558318210656017726849684721035035867017607913356394049121498584765779265749240747295320239919020878599824207843468123223918854352081274927927754099287969661582384141774036624248788109517706140549561606739065378375262426918978493615857152580538392521159602602523074824347546158120588911197012149226918074724030353547379519231499408475002578235173432938462967885081086184924212925864460841624267477425160275355557901924612606626983294981023617439873040314800714388937071375324534223634086412347611804768694743833428094409764052973978623486681170684447410052022886332206765325112278530098009866414052865847868079457733452430305463777178918532974493812472896197955749011745176873351792567491679810362805803566953716963737868593305522181023366874637493241596102858679971755150744062345551314913147297125344423182656288105319255039981009767764458141593830307752647580726456572993144014643325851785100065382219305211599662932727277106633558130091870830882923165785188221496603766432780902595262681960283000405962459946641461023582668613148099025066356106463256033048046918739759618243106097579044766048096043217839660181573616853463514597960996894739788685384504256681005671987094601699623497346091816151477048216937388645682423328344571265912939498656342422671887836371697496241955758965625365127861355301529538843375358758520084710127043483362086290419810356541339821658425447009369849041126602461484177447548737712675022331052414934349667482902449400008754331652148679462763109410798518243729338576967380936935501896641666426793966651515839742803139037457048549656830920647148731523193065665041070523580343577968904291893000284575104746016240306006120249473324974532978278342049861548875511701931361880006243676364320467883595341862349356892335172455748420869618997570821248886871717920848223785296086952783608584692069590523350179796235466806632051062148675113337453946970614663658728546881034946359667082475926714140450577860941286193663284631770972670958354230717713580641477131496111614604231734736843329096272184816725635183481890347368017819524913526160684368619181670300352858197470484386835548469796537139955409619176307078869260606249752219510327147234041557375025790802617326814905763993112411737507757130577922757697572118665422071985413958517868361364073366599866506926001215369646950250414768143744367860775171632636674078522741951499231453925839384514211123930135732033276316265043836558579201198221072373872815427674875622778993144675887818570996241880960824723814512239706674134162470096047878117917899044355386576838270422951094464330074226776798224270690526622420872368985421565351205661472353559276929506473061879235463018800423836063410409211991374411547916373707690435422339715614375520543866293982306819912896155005379542957712819055116732523558992285068026567993089514741383035340382197310484750014026880861248225606139239994361395026609662432664499866228196588695719298107846173707225402244605231624486322524148235019447176839044084877064188773087351033159660124547381764995169395466810241455471133509231007690926535614909624059113145985922245357359931077194847344608442073401657602906588254877957602825443239104578834543391470619085970824779400068140691492438904473048979314181422361318424896999800967850584044041152368374827110212422848069467918342939434953106455003536415342019689105888006354382957095325198734276021555893608253412170591024276434555209005661767951813237431519612244108149719896412466311527407925473887141125758136792031397746962494983449866696834501325499210156490673969222279787484497003810509829355144496601333057899277133989752823218507327055071829171610876579415511607787796304154308371816310901497037341138559218922022522734034923070188825767274871486400669202751017674425305521620055103063463527698419889004557355569133995667994739673389036952682536604611429338717454617637428818808420385832849635270303563069140741256801206305927145959180191825827602753808772406227679906113873631570219588281858099310134438774392032820193605090230091363256601785286493563569985887565341040914668055703704360395707403230784016053688790564692567820468591449558630279310508195276978326640063546437286492626971029394643786173463287488306024263670400632913918453377143700067054522167397522515297839025841025622439706749494372367471124924720046066055313878274378026035859772780845799209930230529889594883172851147977087108623975619182889573841908147317235537856203046248092265997864129058316132528719961468116229731874254492711732180470442939659675094350850315626447334799411250163508377634094382597802830414885830048871684397491692742827683775268620107330987818661647973593757228531729664890522525575978251665742724086732228234444984450469671696087901668253684293057988782779955738092421256492439896326424272028779387498061707089855223251957375602419712426144644349726698677695387593328396394451395607885028471635705385527483517944101579529879848242768923420965310717344745822213740798061811033620509292820873365343585725533615848003612875309089895756300395713605401343894615727291540104236945768581615084141149340868024476749056219657307324133278411971252371708760526131227690719866213733471065368464417695832169720714435779458013124828455130960334749066267688476954586137066670524797686213530682054393435310740846812412531211453938924538178429163884324139998500972554658798810642167988766388630042843597313071081200829982140264123281395543408825105444025913212132856702142781689220879244302383297452732487350737304663497564556825626326290001533914793406838187908603930140918243844385397035596232894556747950009786787800877066692055650154127197039142776046960879830771768277261647501291169281701293609487436896199039348141631140661978748979376607751405712072370835981188110574663090124730404343163399374962892517399943020683360671447338588608925190439443066216618707635892550603311151514761779990206917657700447016735573658198570800317552921673836962792306621538063524047628690973597339695353080296768909418626709574938682527087850902930155625908717526249300650058368636514706110226089832803157727276860125918382136236085599166626375348888165463270364338295082801198659638133481431136155316442737131381172518250497589685629614378876447096283872002784139086445544139253802014000278981666223462100596647373507691794638235066550907141245791426773769341170476332253969676835893068773315048884587361538429833334392323994034492042378559143179776555687614272563652681047118024456159899761831233351958000512296346479561495466177740664311490259939045217526641988743599956153530235980186698651082906125161419590433284768372139542410278061498759891876331529811721880762136684257835431592767593639832727918333233715224309753327626372389372090815966939985327487990457461285017982445357370595790163250639923855952050299846015242744741987821555330229557155303779885966871886196349083816497141038174567085842077517631103569648760331393603451394346103656322293227839137532253177580140716488290980235327924544802177182825800911097223330424283160660233607773572537218868985178966807325767555940735836195879129817989835858712543758003311728459233072352129995342922315911384520621588061909029244920702409391573331782359617314392723951845835163022620791211478200636034092197711105588198457013103604499073527645541711118102413999656063043395742376971037739395522985954601947802294474759710073056815047195367577323757362714403441106323271534746046854618917946264979250375151490499328794814935269797436013516434954167745741425299328755108036533520239414639922417999416425139296357952792833818019078973088883965547267725645316394796623841763325549535369503091674632168961772998642552313702833856874064740929951580220215525541933687634941881068411243607492779373601290890823680758994692309544511374204655202629679138888656769458971648534007900472945469363648192718324673319440700034895910423448271628506228369135575383238736438615468393415035994226504860652739602622141944323474900210447247110753808509160770038384337017431728566033530609445588425742099148843470543516937634380675015554714737050995955118487763018474268439968317917814922100492262883479094081924354025119914342475605628225512329100274552106786075052120282726864575032441230304489930721988908658900997705191191357452450419255152873071964364712019391885003495367391867682330755081254300652685284840071962472463766496302097275735581643730922143169125629761567311445642994038645860672819260425322622393017321104780488979660526118709674245470722979887031483219971762754108891930907928413519877674534553541885045346083059804922159270273983001187651514650469284477558570319822521706296522226052702230078840577002573136554109507526334963359897402501542321989251090753704523551944433681801300825686142360389532593623295819304560939277941872369693858274110798024779233611083948398688026604508161995728607527768297544938293824794346155984981737157084409378904263029021678420915754903626642117292446987321116253059226045554903690909976536277303271488225867618052941004519419941509855412267676821114630965763992230603125526380646409771973372843742935348446906811464067939918692610942292037916087619208069042890368935982937536880606585092283364159026747650497595793477383915312778472592800273456514339623160966623632510128536465242046487397576389639269877868426227555969370932898990966955749346361620921617211528262602435059437196167035478641465144240531148961119582995056075723861294021172250727113226459079743054661592219311727101378163290399276455439263319527868243770964245588884268227298824990908692624141773851548970731230077264094360448834854116732013384001340132253023958339865401864091491746623573188029108987642425677962776231858740318728570122958193043811533751738881037369954230524657406335686824645748878212086672092005537369826182357562886580995680263932118348696760341407611816455968757824141859517739034619789125962771645112886241106814307017952631427344050704018414413018390669929536824476151165561867215496443779686256498068613749331566471865034152528627240106935448513501259239350524356877521018749222102231852793479969072000135978359120023099900828350124665723574796955267163609493937862149080264938366990605587477859065716016298356339142707191536949155791330037943878958714919937635574467232301887315971955101396375213715568365803838659444591665601695570894016587398208967726798712716686658248307274628820895989532210541403781546796239519902942226261885142735224185012911758226486025340662400992951079958518409555506430348237275402480559722757167730480062234888534212695770051633968983303558132050434834502153955973153080916849208486924696088195577729650350428195641164684848927984765293522817562158536633274406500666756474355681650277887103984258065387006506171436991981267276643994871160570965048986563758747794014333792590161680664522569185821420735803015612608830704576620356151973592510916769831499761535477472886722997524828317871023827114082730160144895035417130493458626968408152656716785486230873229547167892687489230302408720932383500401646899603698525978302430712243350357158109654442076111143758279471720951858839230604256795913929290106912478605843448642639842773310278734610065377435170584912533769926292675518197566275989613030800754775761103328964574382527517173669210072701152993240776967956773187774672282109087160444659425372975815423342052027696479197386298788131384458959177778538257751989169159103060971484065800274884328453395420085206984614838686457671732827436304661914880500257584842719564979499758258692937775633236187579794763432904304745530668504351426216211798929109480117719183220684226794036482682625898427767739160141983167978740246105254776486144758505388377256312199444050724638274039561259935337502669656078369832912983575429243724825970361121513411670014757670193159642609049500705369230037909271144075015795035278469754676140832834028463021154925613834645618482149036249108255369833698126537616553755073380496936648384632202507951712405249182414453202842700701428898962706489309188219363503038515331167147199590374286622038144599276933872207925905571007338667740003659666990909815686942588996448857336847372762324499798209735019223542442329221292131987511291073778473084445915917884397143162923698072629153673086833236029160567048975812474508180836843785587976527886680358658787360372825701561863818813568888462721984640228181256664063662016128607764414663767161413411657031589868397706694460056886800847988497400129462122052767112545658519860315042944618788619653826471607977901304090135722185763628993052552678129084402945282379443538663602062763726477050618470891394232194822493590362364019954286869109967282455492474621145762609761071136633645015833575815243077008082641420528365257480927439535545817581545378717696732967492098648734702557263923407367710719961394787889827475600929720068141891596660487057459642801262077225546748476159854188404880544745748010574012676180057619296722738350177147081549802644638745623497640482237603394673522542557682383969605434750377672245047340104420839550592793925484993458338412384161431215216303868004021810653634025994183592141961490805612394850019062337260917102848453123211585471300542544157561104022748748166904484916330592447951830977841331666281377461352331846408778390132799792501847404778162038334107111618901581958736504029213359847692201093989457809563344581923394542813333141146904209471075325383498174283031191749549198058996997637315415763931254194055285018628485172053591155782597805911722067310478432365413464051142834352459851553058875373595559372690394753416007770458664827232925891545782718384416980694913060968361667566727837996076347549413629836289007286093543179030790957443441545099633499754030713742082894454148469264705259372122351176916534961632778286778268511364726028011641371310279085168498058894758507522683254822093445145987106834317419660396197847313563518332704194629706963087587507759743706367793827813634605391029902856531518601653962181432732528561260881565492689130898964560441075699571060983979498973173011541847372570859200693813633543395252990700193124601234817259495124564024272859669676239286644971503781534315557043892016706607254876441894553764754843007367303534018675319833111875454959512495319737133734912764445015351397675851305455595088583507613142360108819133704451549707772345165419509966329608440279119533531219708978088116719427536689802366174773375840862955885046673101946061354310725463002184711808571174925380257304223586308772625277561414734937165975602895972949635907475123380136553414512872505157915277515694148785157090276752261378375225640499023277652251645687874456591933266626509725219715670625518634111215604617453966731299337803166005321014738432451678678666439632691675761179655472822296031686971936881814244963269112498382727834961496200248870020251967184524801035687582955949265307461571437737576260647918908172908883873278490836982867447877956734466372596287837424369776681860601804650739183357912359739685210064932208779969626448782144288993609289251885676300201266006185072051604571964209165933903255247201734635944138650665962408878739027190469117547424934484825770823731057288932254416924782231331831983589592078776061503943913902744255588697013443357855364748769473354554076459765093820075531068542481235996099640986526498816163055772445253856053392038393326364238306203585341113243825186486537640261997059527438411398080519492285276629623703431233879738690948685128414664624404449979363478275725992588180109102796949574508884668819029485407117357565674004891799560506577898181736416734355283813069255413412483452479352855216181724744083489971858620532089633144003481264131020319493517863788072263192939195107572709143583914261747826724777437253564122085898670251386384953022679018669963009170993855946360030721753230365349231716180163945611270269864515096335958974534103990343643309880500254159947576254852065744022481760232567014646519624688840491215897057546111530396296873925502374952585231243720592117653522328407082040168144456699060863727605999264978033350973927262824314957643461744720500988355267982994250841742361711913422073532731009887334075692144505715726478581449438554818808415659352722015919937025922723485765402688442726643198824109278542173823570820882820285303778755620344268986783088416993049205477992516607656925516628319277960347459743465270366594310527554165443139993501505022778683183118994664477938725933359112730086599972295712558316207522781938273800261203869316057026145492586942245959730209970861127930215302915971850889815577315452944007428360991181113316441719282181502137634532919268475805112781437887977843477235503617577554792459119430249068989393990273961282528279142154460872603734379291643212329769854821326310514018119903215108548138482106861799036701891857029236111134911682784816961025632774103666936507456681588283649190065120853140010567684544852962951819900138108900390316155266200537756690987802651676511574351966738024238406246546665711607146031809359013694576139820431044234520701493022682401115461397128239621581425215018731003856805801580111431704685226133637379963511594400613097686430969794539056265560562412705823236784071231124226050374187384011580703917924121501013014357659220776733749758700617571662580726514996926400438009765713372866212256500556419003588856189278775029430792561864087363375922827490868173342942622294858549430079554910449048370371546665733362784524619715525580529498041661311916896810842165327658198819539734475045036033316526572887664288672618768361605656738738494336187533191992380383395475016027995603842805638175474506858687457751448244890088723458209032422487517327279863374577978235574515184532042467965823385008009620303654873863555870248098124395982541418488036364123729877921983387072817099366726853313742690104583524887498012334300364615527187193318771621712147635190465961264743367345183779748792655492562559304972923855700990007091793657026478105341272337563043292293374685137150814628448422496415234054595361000061492930496084558374647202598328737384245853835696006733485870785838730704527814987461593900672362695688852577096950796167280039809971419024283129246075856554005343997287937263821021947547172953127055599070668847750421407796115527939489341476631668583805052693012065711546293529871031168971871195944821598691864954112319279896712651182825393959863675266437795688985212005116281089152899466308401784178624528222426183590321225615099626985156290230608250249003895974881479385296203582691018197445635508771345033774190498598659779886807118708476528668695097005181501615952041610871152991182087568522694099964175677405479678409834975259406573892087242052070203799834436070087544069084800496629532556942074508467097197055213265404917492275403347038546977797133054553888574498266396593359701378284968355391520176892271999851353611517478074221848532928826675706076727967709054839279849675893002454355441394896821767309173836086603875544597511733108470811119975141043529544373460457910349131697489919475869846059401862508680506351794389684519683563125965008456237631163032736380198392992533464247287765786397199486344475069316424806845068993031277429380391351906331574134082994741374811654266650453803183194369988479425876281644105812806749894079476596740422694362193000678135117556003318154563545295713140318752652853223462735591228076426798504996876235280743367569399028719345789373217021635874562290834803992648795540451129856549409334822263571255923595036281410150284094693526988261220165700088965662216338428061350426840733658692035946244192387035688774816477939493657995628820132673148899487255888582396878989508443076430095738045372607394262889761104285913507090141395703207450996742429513636938954513486306533946815645378711182328563885066129073772374653573605425257619589216484858768178278338869717816154729422324043283770296698082792484947161204435853952791873415595057475004924010104793642544159483084034351463891417111712551712012448223560140442363503348674628526567674740962667940615549612818777603020260253987658025280904020723273405058007971946822464739947072050349844062606003765744361857660176297610564498156721133385602165799010741709267952339429086864681425895174408762635558283762429854646706026223763386359077870445015742746019447002561233001247274610060958684786376446337640621033245699039255828309686110654888398583404411930962533568048309779946297183839423997816462636339071381635416795940796855589262360850518631043679051460927451717826848897796958341569684897304039775486632203513963774052007207124363012264035568238466122309458669721295793224401269394571260401769437402968303625099002698311871744147459133519012504442435301657348007395864786040260815933108304244953426395998403787583606810680751505679156184297280711985045490985973217593959422802255036713231652563714845104134349132608946908256819583179099161126340612234775199319358781369458172271059376810214273045687414546948410968547460015653726934312034999699874687041268030831155618351734129023054082517603123134129138293504886520400532783781188057641308220250553176456876800233847146476136585811694788550351682133191558787556947730686007694947212516525835552062244215806707016016965028227806965037899355990351202619853891110496285777071700951678500323192842367311642428452656279289002928608912265698149964380206638725275907106563324737091964307371006809453055895002628226588877440915332502397332333169145676534744127552568884269099980056894666735493072969276016157282503227214988510160281764895415976306323568167652898286359903969712116210687703409778010556673109198813489684282815950245549593290421096780023063094516122920351598942838832300600069071888680980569684142202888009288575126734707291722229830571128574623089891053651904984588427343184423147189193560110989653651021027375573868682840402052109248220679046409507592203074791818896509779314928661464791749276519792655962749328680108803768487089466903278790959458606056460880163791554142503813897473287204327793068249063005590037357120761049913527764182948651965901734273740705083782498361215335653936081872460821853704689959903456531683994471971119131407824369196113312374264704263540927785589571094865738855779526122488916919828974785714133208002927861122412219732241863429330391487627534696446750617228475056438252166749901306224297501327772407196366857167044440922492134273677092498414815451814543758950957112642816543735131867120197956718099484992637683252902000196729309813179997246002124747036839868450704847898293562243079509149064638149739701143656688643096024751159064730981762819273152716398762856878118736875166314235136940953363485673093926508844134171708061181966030119715040174202009751339903212637469078703155479879367899989376401293975421772929141292676275630851654900333082837036390743472518609434449177731157982317450307390114784576450786087429080126983415171003548688953956523560601144794920902229792540634455928520086598278500172682380492245723153311545741757426840195935726702836478095899775016561982736388656292701625522042583309478078546336337104964978886300778643228415064926861999247319133341500927926100926100033637144839749172828710885159062085122306315952397735862102121012965606736340439487405905773974323146924458219411149940013897828879607034394722073924894546574482681087438081786660168781735125028163064161406465517056856472945384033941437600214771873171263217033837542366209019410150582523581442025816873731642512441864994167401077823114303453805142670824907596694904021718888147634711785082130646485398856128216158265243685737639713423106659227676300937960228873303953109997115318682322675236090773842944529649929565325238793177477011319546778515092338795209307661293233193574269413537505635606704535227416367888746963452739727179496255550355126061286565169638152125369873627191990344591348315052627718935621377541318767711968850307782333619829595039702930087859064015948485974164032454897801321865273844714101930858075164846386590142084287012446645822253202131403853904471416168817897304998816928011776688303358445085473602740315341894761826895678207350686063652398684915401623093205928762222733424282004458540869367218832838851006920657136895047840037027946961027836079319200991903630830354220208211251666983349713285949194142982387447770946264980153449111458525400535491533654634783936567537715313069557784469161052186891473443319726628044847528626606267935569166487770907902298761273229478943649776331148461282535703063709870038882680606295558099697574317962021464600849331816327578462096241673428238715840815798179158740251889909508587980232056832071412743910898629610024247872445355840124282411198865119900723159924008139022490418942792461826498002567740264770153293794240496456255712089030696957859056230592060964283719976647543933755096035544039930929443286536137735987847099744396448864868461602174468088646047868307578652247637342368536078607980444328915485567906796797206425621234677449736218695009562226675333052061172505616211182132891965779253822656108377919065224376616982540051409536892196018204762851979443083969663604852279365677908206157796855178991403550770546459361312977583202881299860305652343299673696567555814042594161681943374785708490194737099167633220785034942564302324768090853270376159093940366379071113010527546651590382871888830300789080683968149831347510774217734525543511556807063164073913190614563445853940091201125741759075372105615467467222604535492828373989150426483472598047027370723578881164036936028632947923020362565621193344505722337133069165321014039256574670372086601195089554455025922078850058167877458913245653456446925222841610569788949592668043271560649375599322896790116429214341899050469976825659071529069481568458099153478765166549385346217023591605474859357069664013678561270058283578732856495339371732096727428514535166555639065665376408550723278866446668610653351103396099826112010609764597091509393790545793713583744609759658262010745297876736205459004638742634532329573545247941832951356703240547790656783217339543381341788461847360288632100992938066150757087759915630599659357418161830896816598303193238038102892347741001800084288806349958569355932344850208410018380933195956080882544877776514145366072567823643670543623547860934871166055959626450814201676220411782317378662326395912216045425277482324196974456102346888591974129089988235072045820910406926835060144629725434775232627552272818359323908394447266249681006644121600031167556888381757741319969269091956582380758379437197650786906855312418211832623513404829583605931489071043041424964530320453488314017791332300054621431569721710524201116538287519189857103085013625163913559263363471945931687095726309321001308789148361644703853519223024090611480284674687829936378686469414596170156787679024712771033686838710417623029055962312016094557903959806793019669797881090383905356032799180330784332219623188999516144901861666121417437649779244475037812129857788541294846788569621091316652395251432334163294746150906512319727043040650636102467929507294475164290694277258032213002394394892950546684346377901935452101109558407594676521689375511873824300358032030009563312081311264327001493908617620672306965811442810801829412714846245052256545234460180513385353989359456738966988950575090218783322042308914431513197636245763945691063689246270611905913093660664192892616365710240030969621656442753717696386109091667248302567233415282994897654785820582696934538074115226935088666386376672259904839699716505260029139903679526884586966266189811496688550721890419711443084515165029354627591901229854620538767865158952922550719623780088826531617068997701167503172936702509790473513547886463482406620959555499294571072528833719142768107508136246626587730049020352208942404127976126327532292980116451251298672592821164956453718470154376630068614596969609164204279316263423536795647708100156953007737741872950426774820844369457281313023331068286225402298321268931183405100439028646976451359029197030146209802630388621720613789519606179407050740595589743170129204161045137830865322139470277938472108881464240671475563599678362558189688190807736229981983713263052063856627090051406667387117848991058085306024308154009985876733617850487290732998555395724711351297470294788747534366821822270285505908305357113292238057954793956854815863797954767341796673528581404847909203234524973615604419632784031394762489562531635281844562558167020129871883876226209500265681843968727112964215302350753272245193232878007248365969459289676621572061029872009251360104563988533073594430897774464021361391880170344553161693453500393946250914059430975052028193357490584744578424969928234277129706349051146968625049869205672146923274544027982098416491469864925153262777276139906508633484574558295469838949650770701733553346833800022819268677184651084101806850799817742972286024252431040337200763313305903993412023058009007360657448229609090020435385767801431100254885315791526353066690250334948908105486810065399521017454084056931649830397612231412304023580751672121586138142153775619195785915597735730206255321617610384211348489445773319670040014809564376535469931876408716287154839895270693077217524279172948956766159566813604508490267495599176312808848180950134832218322422411558446583421146348376931908313462280649877450580656908549024169164106911398668120249657207843717183102825847990402348386763584638800513427966160328819217454322684581865508849553702947524371064444552424319608521884344963887328141502304628519938692520310818810297975640856149101658555767716810790037793884128653410341837922255467634269372271699177812164395904701080605921735309299254385377943811715703187870394558880720090876526010367756564202177343191728639532187698797283758443908509125927629833237427587496138147624361016047231528300178042376343311309148963105668340538584515561951984245944872963626141086652598921058184412314015342407646070182327762162343865552309326190096612076751011369429390250287327566268797011413655326822999308013894234493484427258077226441991530930058241274840906389918423786488589454805479791268413904255008000043589294884717968560179905011337016625195493434922576752518510181178300104238980125379962073356469651905371000185733339968661757238918498469365341319106395221143193535595977658925510845556816415669167220416758769681174960161657856769589543123507023032195227634789955984042029708129221838125488603746035519541570565840124177699866475963810599001798264439845830719448106294909305593357295979480469536853689806797043832583096697852203210817857908824210354530763504903090117894234652594745239517203918626395384987111542867326535858434780194541322834852525292196080574591660377453564311794933368355212878891597526024594496509975383822391985383189584068978668295147054894550280498743046797364214783600540887398739479377887849564273287493100192762919991022325674133373621417525786604575374798908164915900567433827961485297879474620495688589491914806229178327307344325012094009299376904168708147287006606871245462284652764916408150990471300815227172977136126727080231586389474485299077879988330271841803130845345650809496373195907803297440710518892020534451469160159977087688484098879344964828265208246690027358756896531160738395044360656752071968238243883476197360961418087877826815680254018219759366615468925781503258331270413830416028985296099995489563656615087353220746280710429865979102635453967307695987784298601393622299606869229426862335805251572918870752728961494050792175905095097993599988781635325288770031658905767328016075438271259154961847329984248122794730357559572523454338371786101065993553996081032151095748650284444122718225417298875117622714569102123288832298579153019512102743804375272231798247611275150100002657015268182785644122157082062062691667170837616247072058542581161820708545633819097703567211372295133700978267678436795381044297311804555098768054218413876870763898882081517856753538672685654087872222762065176893176736257591623968918488227389934643450518701131068519527674352285765407298713332983513667035095999134456002960364376563058532562015301693597402188726734795159787154715458825636966307640330617710086032771308052299447152141428579944293188925468834936248350048858787838640629671706820328035883007329968489971724257397162168902675707595089972376648683019974381383275020980769916788181953412858031480070080362544004999392294417156429531933630623358943735663671235355017368866518415368523003285815591539783255093663574415171825192813641787860494175612095411858332570325075704356532078896582437891834055261288500371896333320846495383081070227330850949309811991987517709428181292286421042212105672765866470619649609988271124017515887159822897137884211056318152196124891787764703433800223013998385401733300193904540424451733710989703600268078920015482908311592020858126182647493791768845989639216166730219008603684102366403270684043210398140158266377785156139086344667635496816657125125036018671102747083230503873637476917762000610679417331767392294800567001246484378043516960006345871172233461366342517092171430744396550939317570246178870555196996820916584224922510734313072047586747057655994469330543443216152268182463944998531443925459601695593358943482759282850529524428664473414026634390085812763917754352837790937572190325025178282431911678176779502331287583258326267808326660439436436601135283482731418172059164244382996896566538846594205482806437042328894593556660742840332830004210226006070130119878903615358693816575609238438838699337745719808374911070041930227523968706922702379459475993374152309501760371706177896541322203186185230723396434419790294752376325468799552178045787896164399434678631200017371630078673811544636383825209544790020929356032916520817347468214545937675415948612229095829725311978429037996823682748589872778890394042718347699844300707286863228462946809229926197243258553999170042108781151893165598173569350646818641137253192547791627502132058599880961312195321156180287610753207128750468233348525405515291169635435754424456760449521149450685828868774575973723614174399180068866434567153656532771335788001912337773364573579664161541269563595076734820316797753602622860656140704058255021029026840774183675014759157146569508677776106954909896646439111591150398197401272294178278425021005499893943600564141151256437326429505374385596768162300142529867093906189609731104773126702853314908469204914059565479499867070255230642227748049332675845282232473286268558598168822645828902552731781029266916320503416079159570967033530795962082131602809602038313809130352346231426006948126142768423802350377623725950554837102312384664477121775647764212301435894159443460908789854587738794273233354030810705347990682389228801197929380100648091129549530039235741650044794930310427510795070949364855108278504718942518948488433144818075790868480282962641750259544397416946247728630349969968457247113631846265270764881095861250067112294919188926366240782083177200923154289221789843236720245313714218208497369511768934898106095747836588692938702794199274720069136319663381356491698894371886550108751463767436856110169033451273044982338680876234995364847679298275648250204480103965690645204795408544841175058703992843956199532920024591167717439009757283096834637188606270259058729415640374147249030371729526304796387234107601855579830036186770481741353825147500178351518437200599370349954368898275065109067817016477088791547629029814507066112782113106319191254747138807412204267658129081255368049924268219755425310363606668597084176633541426730611446426435147081450421469632061775997280356447109440113327074545656652798011281119556632220235186947955470741523201656162621001255623552037426301023850986230351253055669383037404454910763533357255339874705013109715985893507079312054596463362736778907433647419025652045476846094479989245739171727731108901932044708168944985499028842488703946077129109668879521236797535575065591750287713180445392854930923003326897884413493542784447397316418162360353510294640358571970270339118149527944469050824525686996355037836938542172951390998173744035522225134492212596545499944535301788668639645541344783959969820986418987025045423565138855987990774482770470161436504101558892152662353153845013439025126299970669923316983119358933653047529238573502897479985955138349485653390005991624023743862918509688570875031948598897896183240767970466157187100941836613255601524594163989609029326658297612282238982564827291600765932004090685926228579533766372751781899601661584661098946149870638752286768797046991695724197371169495051873867280539053379613693592691300655795713094469738641705604814665761582080353231197875016184636390818761913729145895239508045811422344817327480690935644983097451940012536954622109169374803893203795057419499671827360620802633992361929823931548795309032482420588188555073890645147969848852225792860019659175424226647597663131274311152218981418174759598312947583722400634408095647918135101801099305420565506521885981978155780481216736362063842815295041346077588610767135745621085783993321981098601328276103199916576196470054141251244237801717127390003382820183569693719746304868105437399904111316278924905914090861401738406931522651343308430036793893198980128387427356600960892357843542912383455094959197317767658837823334814215931444960907985703043560955739296808078786511796742888596740630409925838178834759846719858605713750412043515422207730624160630309944106491553733458516976755556565471222855712401455734509802524799023464971562671751437950875074688094364280641510110118639349506284438659604422287677613737034330441933654773797103387186482054336670537107131230404115750895035762060113248796256861619723267104905723381690456021572310814707264860012623571581399564653271553693991912960026560827333653876947778335925347059821375049879463867174716737311973588983246878204886062838730786697843264319278748035229383175042722378302537412001401721001012322865305653132606578960595936726393177712307460023270583184567784059562764804499672189499145305698214166864105473267826619720609564892078045243718121748993762063085311016203944780111218869742316955851441929677938629788675579986801865951291823668874618773015568208408749456583814662193330151716277680319383993663077687356210286165748534681107204957537249143387087419543557642199642453687570246722451534276946550793987479959882397440323586447427221184738883482684317970707703193592492639057862723055643526448513041451192653324847383816480452898147301304711230841861281200526929951045060496448491898378924843013869413870385540579014926354882976395805577370750605437006447906828197282290366823686778745289307441263304355000668459608255540691483657790781162176815246701127307176130167286877096152712650024379662869899244007373997848047880370915304011899675029560874892971786846279935173391587495424246589908930922452916120722659996917194500123814946282284466948288272953480118486497698167641075612948884352645767405353571224900116717027065223474262750456299556218580246353040690684258083514255621152948988827284099660251575413940672529387858932593276551449664278171684417229449749184521148948903343193007526886088949789397988347117191297708415170977810303687703170978275172588019260597929574531839602715183956811964206297354150294899069733328261680474624767411947050020855218090413914479856835621634035431043277073782439951532756552563984892806318614670799657010976333176137983431710791374502896563237468767837370391236878621721385718526073363566538456051851007548130226647165962459393479165719255691664299961196556996900959813499093784974798600310189491836915523317106377569901479277323597636733303685312642968670062579916965008216292616656556643249889963965268005101823770235342635307505461147599983952564328152520376651316804180393478947072295649576472292970225596273534725115910632297436867361750613211572794641572093623194437844660215540915452706354285666776613671483362126411431853379599042787884114194772700964635685881134313572632579105820120056126242049126745735924271732322069616122158624496228642142178664836211823852021844220087986994643583506583570945936036054250125503633714222706953924969749923072801614269948790893353649169217516087931276252269660234967414990536691604432444822726058266596346981343270577258216045611309262157568714819695688922863449993429616864365211002769999224480125725129776027976122355304119162302112744802783888654300369027986225947223736808564114475333656107502918340927337865578090757593395036067731589466742992190470124405836897269197715138951945932943065043048647484538360936794648704429211247059867267231329046215964390336074625229841959168376213062967343406926371674135546328549016733881609017306140278405016380656675424106436427396551461826148489201377296930626424818125874730641619417458543795704704000384771726326855983041095252932713041346836477833929769523638768836750452486303120769048760762267273227608090066943200142918890160389926011971898792445175151215590011066098012454604130317446667134275548481096869505660305660513281063416408451377959151952407263528507355605053631417992551673964062851344417519642054224619381983410958063438976430646638235393952468397744814920627451832163947946003368826953892023195129270432773008826566695844650620757076522694751272176984286231990425273062152227778726705736032555313524374379373482562870806397696797041788365419099862976727567081096812462806542962809015887085677711837923402272951946149190939394569434619857941820823120104729608211094542423503405053978716475896262266717677222446061182075520990478207718958676920972018968436580646689027990390489644522841109306374181789231851432192761319792159725172658585232226447866372889987533080574286382945921385734136306751226841940396673948828678058576784507078982331224727109535618827253813073681853777591102918754146451814909709106138414530495926144259895069140803835852472412349540177375154687553201121459424732175035349895226469073836212996355446789165209241320592794325718258863365488541559624108855728665176985892408120541890250733003590768077824447631595388754640876691251202484484539129770781678487560094390119505859002736718198573050057166381239775709792489735675978078793828273328834585158264368340800637109661009802077024814828820018016277871479315856768733949361199589555260354891393949767423193199357019044373833393687118926517805451387784783948059805839895754705016894320708798199630556491283752563896226700047149722224876661851737568433935876752774063272598071926180205511847664210293327257306314148512859365904553823619414523574998783679158672959295640740289673426936226437082695372870912210234666864912617943362634842740071179323646596990844605533134314208933334321820970544773498322701607551104649696060869552376487733092332726976647614440320227339482694887525764542310450850220626678323976348327156592917178930602973866379213165600335380486481592076211867014225969460908853061145826832215696616800824665989458516010471505599551123819706396616703551957425178370243126415659611483360608483057932566076407721870407667247127129380018217010268346279450794319070223723896807689020218949524311827386554581873551740338940866655788671420986616015994815067527960871575773857841743773416005334798934859076898181540349045184639152535612868829897165200198703149715693811692597498992609660047921800801126533984322768557758823020986087137453545903330456715901460423985471483025951553784445689918776405365057887519974604676554504835113669176508859112168422624446758767626355515771700376256632502219597435454552220473251978526019382573676141762796955923393203819760894329584773979676912275551857594115212975534157988630937118501808261555954914848479808031571417648003001600696222035995330091471344214362668247490238708016753267484611478141564746248772151754467871253577702884267316381416686525756418116763150961329667537490311269834716161309731308015873029693325498187095576488814014484268768310335080939508435847633647791935134797052686838828008490706623744450220999352664449537949597286635503702592919141021923009959126678143625143431779709419937440304874438081699762178405891572416238918851286461180752010349810705791183273424821527294296951046973808922461624144724864086464432575027691557737586623345308771097106860200830622214860346617174249293071746823547696982977474668209745816620934472848864165321750930591247701735293010073546838548461693498220540623737463156807133282548722167620843320763994701270064665841906689519764290721473728828433882704749739281096197549284878585142024236946248121573184618048886199528893729796335513479767383447472443912185577288496698851780310057388582180335410527997209491213716911539745444491144328734426521415022267906917717871761158811494350474794252035533266034656121241080420300116747471439182506247679106332283771718925489190672470431747587556900172374630028222093721089867425009361820467032991589358520584396677145012332871942175282416152462624584886321597565366705777091731123312823058329836913727526853950423674250279021484784666756997260651362709079851241102400141264972280147265340963523580475651846739724067397091162390976789058561367113792690250129123304122832921971129451836706710301565706899607625611864067574737931499822051441917168010634742260438872915755960774733738306770493104232605644427862516142772853968416443762558021091734829416766192083704922083210457295862001554219878260166413316705863109113526632437168605235909461504022436716306045564570490412306735675509228548551011213523838591773581415806836700362505247322182076613893694940689254256923055163172951057510883071380074348878863546400348502681945560344626017971619706945025352685910315945423878816194347402527782742249129430695823317891236112462157440248131408282610385146652935052004354672334855107181280071321525209544701909650293688871603182011879975954811394815351261253708937962867521732611938311707613699134290105243893891255712446204713099936555838822935371734571177989945087942692251147274157116018688098075876186755397427615360126906804826384219664928697881446970468859025773035363777660040075496402515774666965473447729944465665683004375412738170510851878790038623369098839974777851587225134291407566858877085373242541216500828786802471741637373473894400657908878567320878260769889061722485301272042531447455092491801342841053591595550886180041336892011929401753400208547353772493242470059313691862692950616305310716805351266607805751705820389092727416902190491717933646170205390654580654806694165988888660259696540473472595440719304105824946738751877626711343893812167630880133966611252719845111916820778066574096662708845034397870648081013136477089724954731621884224347266502121606845050978439508589490550917367114696395044298893242144518203913447586554553261743419799033098204731150747614050770245773715058965176308564237989156497068717287601922251314077268328996794216129228140727123980382981910630794358801561978787744082786478902257816015470299833085220695116673509308435124312853448907301012987762640958458543465672976436107391743472792389932566558771014368144350502479668652697044242424225402380010161179235665611740058975089369045650216609852121776963257688740384682092233325408015272399287087768385271727982073386723854575511969252480182088385174413414508331180146031884578767724425063221981270173703982017507697837881235414355123482790410625889446878129801081843199094176087591696713038036950071068949731881129920952005477757760921206393856881066826237103932508281939423688183366078578294406857624770143422389676662820107472477356246485849787223130625362612559639684211764970994921407359185284220003443264957958600952154139965622560370910229719839968361256863958889584010014921033337428748456264165259818168997310291985676390380917204516160227482429795968407344594915089280814159033205456014475544975129980844793005495823514809742180149634793955584168822012440829941667177172694749769650022907185146144943278075408480897466757199593311067578603395217007843884975770558339793090547649218446850294407555619984677472343026989438593095675185689901920009459100489252095639032366190784945555730373703182136720328138787189634421114824834002564419573170043840144364526559072656506290151792485130811979569087957432500985341624516812544351897394844165200076268458459590824244616734673426985406823711596192149903025451910605146216425553651512234940518592227990142158544987751989266699519328605533368969184642118998808621533152688562553040162784724499577871782583442788950001504905695739446218837353300951830851976695980978423093413271704050555866262148436761370236749417217796251747876644749163698202030969411981004179885354646262765456201900194464141236392863665979435884659619324469388188563741952742517859215698873831649971154966896683944691456164378889892903344902224556574084670600872859658404082278995541485742104509862327826110017811554631368405904479202065301038732546292279015427961162195311009401725357312248018254029198380690936932117826731826839539446502501522347334545719195087009853846241014377570518846550272608181428358899311206319959704152244253904810486635268292785018397323302635532933218620380853164590864853239751866117816578242145540200810388003500318764218288031839058482083324220526725436167485020022235183110925628250636681564092746090841561571204698125082605607166633642267974372865038127243302069145768701694068688288513010828582619360163512333477660699317703006704312609172631641184438515948193872264296080316237478252718659293120110055549645310781444565992834470451372867486161627539663477309125635883975411867557607841430219483604222434459519002609830128832762936921591180845504293711783516684271415543482992855456090728353782032112351365146383801678118060198010835493699029917907833633219127741923778176223637852603899145158957527008159497332494621067380587257118135409898399785167935164573885072335666437970794900931827338823064866597752925879294183035307642791887500389759419786051604813836374177381257044653689684594458533629711457804336681629078528380211801484545167451321506849068582370956692999060052523161000512395714604726066118549583979680872554738678259410027513496448834007876075542121798304416894851581885935527225567181737434180444329600180104834056022854779886375029575072739085163180548562337950299582599258473573290831408024958863177656621213477656383109560838011809702323341736995003111993765066947685514647919883375271293387331961572550523601202209377370398677248982924033194902672394626503333919487584673126128144516116653568207395287033219196166526570363985062464326995444321719780088485274117593475537745657950784797599532046616522730609491643928598452517627364008856801549278890755683211860461115114584239622740212672257337731285734875090862750718605670690954050503102693711304939016910188006037116528738472901329222047710398078399550854899569947152219780032870199312745646269389704303388602432010387280243351387572473130639066378978587133936704905024073117883993424818752358034231945706335194348504819100457794178369768003049832225252000735286746264989591944332088991253635244776489962495322710363235837631095591707107735780857104038819399994381225902983468537792303542835197546219002197328268195061975640403857054183440803559094743492624165036004079853709371449463574358434457881163301716753038940102899532228506178393074126719311195013542805960073559927432297932811125154482831357506951171323023953066920698028318940432174140687306804416120170736479406660572256443797543603849494368854159939062722962454074772093081546244372290347435711875516114705879948460412925326350185086295243595648594148560245848420609518936741280449302735429509571216623767254315291863692729221561960280799611802194298943367959047004901489762164055765488544319386286905944397553486363182972571658096524136675335003993301451171460104743679387779963621264253479122420364894274348079589558321767798723669039382207080460778975989118432146885824829434183441762648269864561202152001898986581727157466331989674639486733083908604566152242386831424958845097417922232533665695126726772522986068926204666114364376296028025782372186906179710558979066516447152078116145918158781165416714507769723085408902690349517241373177375797644424378440879038388233102259558375089885207119154184440220522590896838597614856412250711997074194749372591882007930920761247098198286348385257329472434771511306756796391067976934321454720394443437195594985026793941423117111024563904081222141348203768412535525472750661462190341607863053807389631334861460900791536094272226714850210463245654477541586866675533184509385275912412843980994155604871532977187615267282128096141851210090337694382276377890247002609483157510802567971678280374831398713937780584274161686575136158438373609087797368450109738615197317114354916350528023603373606206526969517923592348078035748959290072227184946094465434146109381940472453324991979700066369984627091728288294466264680033914808084795795197907350960849977188897021399124488097529892756929917751749759658485198207695556280872599746420695294000814647804631651939462342088537004615041898238075267549178080911547269372799436727968654180222339683865720569849206024503119747790877483651753553263227171337744692121677817319740368286931715595950163099274154786471394803850844718770134476397658680489471236302479259101297976173673857301454768476774963103014244429959978115904023583664253130702952722236235862070075092287963414252372197395338408103107991658574841053188510477306184691369250457643712383889249318342474313783508566659841145402599582824897863120633162634539452246653934859401803431765769016745862181647709077704879360581979182382608632014853840086852789084879755940414544513087241092830139904955489977906057424566017877020260027024970327627328476623307643842398994967187891532151151315415966079278907489115753942905849227052335668737768271570940909907176762761308635627419838060062618492242801268807478692725973502364010860834960210404926176765982870322696216984180235225984087892426929783442783281169809048231891986784522059620740544996878335873532862272377019135101636480480923307425669741457374287644534401468001089578432877823152714775098323084383659590599820642783217580185354644360280025305919946081532202519780759078574641582423478661190522188979268781501798440311280054082903216095452355993286525402988570145967467141222632563893001663902834804769634927057600993245203000813194218720788365258176939534098617884088383647133374983927089946456285030649656857389263571905466823594078170648717599094274624803810710618157229620201587153766934958710213849957754847705561011279550002395635942933225945982275904114555205366391553030338811063407908258796799618441939642138104529259127462522758664770764993937751284468897753815486794764201669174725806926687715226776513754992461365310467061577105575332031399323813726343937544224848607596302717243294743263244835721746017088526359942650386470241867056412845468744556838574548100555012819585222072510381267545530515495139054759405948530480434217569129059257119832129684877035443949821990675569155523645896730129693814054778358475916683664950434414279972955317052601667367639455111782580948161165005435157738598798761755227332112617810057725635675736071911024366225383558063113316924324197155060149104637477911443639976416948565674542145102953568176386089691258550381136422263950833660337580144277085073151057297450499263940404038648928239261603251058343626353684944057315442756567107706892549449743904080505005555052772291069880768632196281557264981993017553484855624257064867087259637959941555731003495435875089341112356181136002397706579477063647418698381854538843741230007537629335939591225569899214685373444987380659280048296056775607765647407881170558240926756692849126704711352303760278525671705193852028294892530942677633856004479971717822198177302083823690579691972854316335882590315926120532406221078693660137868436935316417515713622445470518268173518788112975225809594218409632559048304971051919385205775083556592975164820278590579502552324576045885252427590989090488941669468379963252492814712070414619384053503098525481202934084712904605995068200247243777910808909212002397756076043998498261201462102159688111941069710866166028139696434512944442164000258535710368670574174642238016100273113355356146568337732006366569326392196964383033229504642060866311701122552663195618607486120511971638690471894061663535461036116076361990906422732932695315672491170581980195843509182848644973897724309385012631084943489221599805628039224462419576810715549032261037230388749825046759475141173456603098817772411551192172441834679368439339917765390330973831769121069564910435521858084426386252976043690214307964037737639550222931424710037591857444787327336658382456014767122764515656665400150774156002667317070804828905020136002059886272644618173964979562339807635834787177675736362085314536147903573427151718401038584598169508175479609681373941116010790113938087758945962072035240914873915211177663804083832932363511816777306106660228881632343171848707333746486595896077259536941684422727511889324156751075781464018981951321319803545242075461294664633908675985253061419509622472558502139890545384069890510223183311927543995369460552648756930734425186455301183873825874462558887945992030784015364286668888850322748974642014935624447427683607934062548226769319767385834489126771308440163289594486959891142812599220641996634206922156155136463004546486447796058640267562137526790411954900391633347422309416325745047059339487607220828258648637374184147069869511838931057373417542561727529751436060327129106163279804402130237343895618663415499708674518087580362502569382422773603340264155646491547026011801703286740170808767737066273805355600825569103933470716269987106857450162437166346297564102212310070349722363703393831784236128189633515264161212878263375377438621355516579150313201222651259610050539404065171659361390213130523910408196016111205868171534732701113764101267755105392611786388404591577904562916918129995197651047545185359282785168301813230140020221471505658960840793625441233240297141612780072606783267248500031045298030533255780871864529171759022651312221177236269268010147983081320657208688372411678624478933734181702739981600795571889174600070906657413052712356693572791474513833560803285775236052841870899117692869648631412506366869071750680217956617742388311646464333811072183610684565533608276747954879706891433149778116205793764913137802854703512674377229943431255150623310330722274564343793740491488340907315085285755653460401376179302162194654196815474440452187752199566128619102371742841864049599841872899418656866701345941830336677153453057928976561014129046438744930944719648961290526449663510311311726042914785960500323851101127582793190264304182802480714715646012169171383896130857348967459880562254484673792721944181725098364885506905979244583168716339198725797147819457145351011463242525549939818474491589369967358884578494330717882095139348382349859820541110629743213962923197103059499117125422217089997228582346067661565796640387897580206311263253229647789796703316324843709434011186323515648027749282684838399942749828060458700259181186214754307615857614583295981451922546313759114032016043770122616746536633576389622964736148417987626546707051307577730370629716908977301578110445556347491690193019168953070203860704889497634622960465676482137518380417819325260774464882485493798550852973425700613917425496532386279792507179448080093881603691624742306536024444767998537671812579442336149191901995984903496582613579967009167788310347422398323150260255716083465015303788362779621711573171383398332605708198883577693597815618247503324624890279736760218960779669324293421957414111234668907461316422355214562119100265391372889163479547823092719422769541256405009668487071473089808782097298856880605095704796535599986335211181173460923788121959972498000746604311495675271115156862774414547930817152676451482956020732258854595542374603538605598304506550371424443707571859157758842298084989470860727186174781662530479852095556533542362010963315965261667043590829302290328403617878165874458452076901846594744063899970021015249718904469685239285318798380946567203644574377987710096476424157889799232449454571239532221445575696616354906037357651423926545713320676282188849717233214933910711622726919055879354463774567243295435661338590892822146735048393142553515853912834711562513173688922865276780017931074948610458880620719774040316748802432903698394959922363961110620949779270595387555640439976285787662537992900104252115213821466117229335575337675205169029234706072228320709055816483712138750033463604682844377361521377481474994825825209226227144902753561302187884906528012505153406097620284307660930978073770611951180665746009746504991116447528751066524561964796628905297209732196072211794778728318790604174232353571559551331413295248514721953614509275219391037438531798505073449631846760466765776825191663917217257262959316308980558619724964748038439052074776404538085200090312347181978893052144018331307846354236224563593710431174680682730166045000991081407005617765727579721895660150433469046338127257382977155359238393023199979104421091532567696335416829118756081051895901072709162315483012445685592686857966665111852970894835557371105149080379797269367379161027466909595488664460652895074105584377297783777853653893912147631948592595156459993120987961714533511813818337795955247726288123345712421324430657606967276301020619658966335217098657536833633980008409896469541726875332332723397343355887140319547067416478486717090228173247278199830997119078412471614691436641497566515072317923307095801778086322225732232816975950866798035151002860283908701688177070610312317802372681107783341250575573446727032610324366168877319813398686910511675141027218007055652448558908820190724415202936476035058303590032736411631317846438032463170390787271800526736624523487974379840001146729209412063776692462722594681074488564510468374672705122315568945695188711744407392707822129954551219690915594345283542867575074325490798272235889771509318101388682845733128177362610960088463050923538065928551474274539119461217742668686443393473286042382625517888084058756469848167784207446292919478480921485256585071172556063071818256501923083680705826570324829582057796203831707859794253338669276111906184388610990546589901172639477571794736798117032969925180122263356095551161482482897871228929334595669034777477353839459911926703531483417410758776502368634179049025620893116952600743447393824972562575350210989901459901365865952047106459866667503030155997369368372980262824345002685880232052917125993991426050663015283525340694650848346395544676024302224078119079672208458172922364077960923455581234622901705507993337023201400148152091170118384016807658174279296144070610520748719502915235216133755730003614130936120771387193854187861677319877181771059351523735559003906274998690436374348490258469164376506855053665945774570049634565537120006513551030301261308517502362893708049165792476416597866496179951476802826099958524745955954213292009808189057196556787334181034940917174488024365443648095774695833373521414618023977146044562746771943893696126248128635399361457845101951601125146269615309043665171069409521554858738522655092138490369883218259355837672055296986546372221727311849638201409475500773125134414851642191231018963231256554862104882556033185416940720501013190969866891633774614762187948617048159108620969605922652041819194553136507523139316809552456776646805357115075225620053611826773380381865924257008313293454602533881513977526387039664712314799314557163628943430802755067445250268859809904717816816418051499033146076727940125418123386620366560969394675702923184454959526887773772727578425132628995137293980062233570422817367512366430037071664626920849798140051484797854473173703456157031603887049453642839316164466127861858117601293506447774349513493024700386645633682413923017674283611988286267530931569783328065925322877115516568216010667851145113422259130782141066479738912526287056934058024298960193671513086538674576013017577075985411153930619355528484842285569374143959412540924247223238942470005289100116437732295220600288293370899804522681202365607390021549085392473313251354480647590507940803456625503862499920092165581384453591001149682703445610311444673225579795481939145930507789120806023707834064868081349329609854087095693521691280511265708757055127858361291266141103617413618856261293813697178938481844812856837878337866247072959124945268483870960407768956965936410797149759179700425859588360618002840972795942147904539008217031437390283947913368456336228571707894939482178342618225846450270961701571748829283552128317303241141463215930090097336737901554472347326729203765087287237354364943343964997549864091087024521837900673320300539787109318111895590941946097143587557252251625742978012462982007916231377311330125225183045361288083801631769099684989461367052214107064454472930528521750617932042794254436821706135014293597006251141728812271340914724272822699594634728206721247149200161494626212002661375269598410077804089620925984606533487770760975886908174094498350344621234258906580686354606358519968052437795403804375382409259656351404117296003934349501127458607602467387901925371130130278580105017492161576371463174354479864035326762984056207166267765850657788165879204227884864061520874522607870311523572355872042563834734716702986036207894080907712523218321502208020285906601923962789250838786263509238643243342899380295545281116598223813357176736746263745661512343944647189187308258972911051633536052609104944972938249227637832164377108640669746997970137651004999064371573565986418753147366001676483978589344551284243751953455047215913140819756633945382402054829641454373747835338690819764120399702238102176201646945431001689546053890853963246839270408346514993960592353291545127693085450147411430634110405946278867917181912686980047447836135998466032019248622987110160415806374765292858894806334402259625860527501129380629678877589172502726485674334553866960401954161505374410905446587694612399510478659492408594996346214795426689075723073114448059192843474717628721740970824044495845461362836271106744573319401505076579806145612775023710088928199394691825434343287289151166129504556106659219081578689216934654747194478798957131797283347213940421173360133538130491405781069554231600397678002905925123478302364491705052444028283358885807063822907197563348101357074251287341902491931048933129000654398831224288488974090546501976209131974014360190733172778847471688481101731723311829835597247506103661315132469594622599850530108875083693566642367569758190194110679519591461471066214338924267339409272496094299596106961564537380316417224170553448744203158690521269902789368275000310263783604119325462616162704497952702326484211456728787341974410437815330878046242092648673158742875245536495314492940161545715696924170277571216208674421195456114486396550785467037561746172117124390991998214727073767141302999675412113652711755648644104531530884660407571395259403144567021833002005719623844045011462354894102448339650636125219991547420163465030535328752895304920333704587833941976167979901681823358248337711457986562311011581538991476985499904349696530375240320065452010352440205107357220079373318700639713509884293568108369138408802074685540313777069808664306562864319875107347098754330800856741721320481540193760323791465552682770460706686090185696272821324385055166763445878539682355687536197884632715928469793522251040245499252048765807742791932967840633688906527407842673626715972990627170976642106491766489111499542056097157160414710131338613132373107032321278674510664150330500441233739337926056297154826153480565832201982147534121035316543367085611646779973973902535462550900620327564006257567784372265308246043280548165758306608491597532236344772265236170369660669365376191255972304417407677095974708638879151545887566455333407473281649700923886975981143100863359338728221210499920762189440092821937667262064285708965972383149209613149447661403704520892605105694130912850690782580362718265688571535575380726748736378018757789583122594512221243988610494396866713586129993451385152117155197025268446298967159238031405245892797584397607110679204726381064396687420547497821022925377415854063973584683572353066945394644129898978376103271234461528945010900938300714986977998440154207039076452253189456018512407335121470334819089284298319320476090431929851979228420554032255119842849021698697606748685111584560387407876486156309325194958631275402810787426711336643905974413127517885562735816345891249927111042343897009804673107274012420948422269818839654185304821111130881849582492754584086687165536959031779625498735995762041321212960792424928231560835122811914580925344845640112646271909361492431486004990757598685362323204405816628278374754570746586528461912623105952212783043296185432747441644918424290944685534507224770840129523845472703582889578796476821370535701017211154605584195248275881722380292921175975057691869560323021264305552897867266204153096312264339909756673496595382354411246288978654067542901813311542785655759858112866308985190989707325136574220378956670036854166236502397518521257191735608663374645300318366735876272386219446995433207472053506480216555253090089184644661249752642567812390882847369767826411731434433174277088194235280319269651063401227821830086381940375208016892765591435060923249184635038945047666560632425221596658704800387378787644322811413725065331077404229135566117213018897716765604807317425682557579276895618019829507985643605388075838851379350476349576282280859950685611226481204491852509024759584546861984762022190747493908962940448101242620909405759130287117363715874887734585782370145838690059510948670212190241280532724984821984804035708805110125256280731744123645886952981211199214640797695855712655723191500827131139096683743495086344772756681788040857287874260883371066126669707568324631131071362693994798141106934506774931414084294258207202770449533832020472452634275298198835522949654812252649338121073552375893012594450023748135712560255224109831885470332701707803030264555837068360963022136839685729860887949924204877469862267266358996735679255086635877190510666187972473036180896443224172696563726116789030460962899923715852220568588672221693728384748224400615595400771081390851470467641038171241311230755180755380699006667575893632960520992664394091754561792905475106112554254130813246721070327268175820454491948376620932193377220957397843302407600230138823386281401181457713597424210193417171793390611583754927773932963152039282565433372751626246565989180932857737950475976085191332204751604135769281160104270172678123278945321463656337936256755830812217546028730813191638622107638996123634900460180585840827013991882230271614417329720998546249822067685823296797329397410440140136858652613181572816766675574888550368408598886020303930555434111787041507577612201193785356397427437997131573517158449172138748880461641746400613877763041796053375666141540365621667762459518300964835954065928822388095310238063099956697439104817025670361825917925232822661759182479824713452996761441500268099490106329117068089196792699610530232067457829242622145945750024344674970151070667410833379317688778231080791259782076572211742777900775204584803315052687671706254225782680920362557726054841094896216812810096693119788068060720731828422285591088912483367795980184328535241439665782459199697220931990049410436458156012395142157495965566702754055683661824427451176178718164872540332631253242841001277095786121369650376471171563720637403554536537843366642746350280785006118811298601116733340145975239287720471427014072688927527303061132797341723622119092117523039411204228992268775965789351814845543412243782445088739774196414996717671383413595927055893475833184693987768012350349363352259678358910108056881231282944167485931174194033770934444301465512625876546241522591698229721556941604932311794622529785363678725711551962567901945450180023811415700063850623868696428683353152271782932593066333109216965517578929004774088746867618777113289380425531669748841794657908114154420355245148671428664867358097176761172244156667263269764601843663024661068527457385954633094447553142107462264665400181839362808503785064165781773939138427175420371981620039554872976993025007605897717615427057761674254941708649486463734261567033867934010718694735838444436676812118675078895213558609451235722313960540317147435634211758727794002945027581797897155827536949408168116796759400016819249227656933752624010303297766421331120913275661353722622215185742763380135867868125790926413855004687688154835368946456973638694253473278116625852003901701375403690506533474614921924031058786214367214047273294410049856128951402580923952349169834068589145225222080325011621612581458946537607144728470609758707709619114975731138661639815265539803825265202501530325620635590991919435876008750094147864632512235895987733842143239279384784814381441354837202515775540807876111288152709063601190049500355563545759095185777110636415258609595145724231816896035884333693643724442785610101892944718699225278966959483935757470030537218926105806968520703091213760846732215181727305539160027059143631589726025632548106463650539496591789099834107093770080947266418483037397179582688951889824449463144163357332689127021405183071445717160165194173592111574263495649657605332268437683390282292040716452829327331618161714295253574119399222603672723517706846843490879354154325213070250058641082478396512083565439203260477255077730604242656511048724559427214688308203579161277997308566676085526702862266129043651606758820805816226545425333067395666345119065056110183984190449108815653119614205733965913719023720917593599428081909531517565187235799605620638510558598691405757358638973208356685549013163295731654582441060120924401597027021000644755018920999860533344936961664665982661414713111550352998001967836530014038731267235040133921015573537627418996822998334519642746390392548508189524866010319821987476654697699990587054847463137152324622485495759144144641090964526389332679379963484213760776214598348569441606872539101592879947389286641182444184621138010606638624090292073390179958315555266302415325663886121351840082604398657597518729357744645023090698266840215849316978236652292284685342558220187475732933613476999268417984856301713114009156536809388595833012141278361416619498739958240901238147195525794482702500127666252763672545037840680671243596869289297041809772373627870010233487133394653880215608629238526030899008316185399267024556770498332011323390256533626962154805525233237316845186852145690208417769808023222106032403223172295238294309202938564819546028719184784152413804525225975139515434851992499943863887608584738534732233500283280709081205507596497876246971500480580298923041912548158234226703758413173205889088048901589846750356838766239541176402150320046531060629202132239279730186190052411050513969702589931847965814223293068508229470569784434505080513294959065563092101820951609351375058727274125381264043880031948496303076362238998669653042646671905804626532621754742359257621444981663258094656128976583573371887118991627713314049947992023358999985901059214761778094469330468485968841975720028637025249243377264492181138639575967064674069401695697823407946644102712617627247959171781985560151153751512741275311392340848239728804012199813845904053840013819700759292343477897108826818031738886549847500770476333890199063354760896213317974379400884211521599762353974145653593055353223477756671801453552725560907802984614674980664130591761434821645471589694156221944779474800619335100778003527668788618286413736108861054691053543311130571697359879719736423238190227277483933682565803031052810498338638603131525578691942057172137926744100484753381683005041691591437200445375288791483464718802175655968880197794138364119318599061809465256894072430516548429626598323567599992089887744246554561042224428736448237872793117986621834169079348571168828703075518993147113820228412588130053379385614003608523709214418703038677773472181025811061306117048772822720860309367189465447420009854624170437218129111483552672882969559045270745231731460068176379490079902712470485833623364813983619865277552046695919572679605414768520298995109060883682359991163341838444046477186925895574025170128434008016175151201328066253270579849505650681413983694510335089087881775606898412324849584780752047309438991562771334176685472593331644080451592852951974316519427626843148408386020084520450322180352912032621404648673063014734933852692818776164196386822327728566131010254183447880107556895727609706890943562152858282979936929973984880459520762356901212880656248554950936265311172583799984283170974113133109651319406993830704247594516711005062404667499774002967420706561928134136887202643434551413475307005359527029556159323703442290141872862991298042269636464437556643952476984853820505584182453637588555091401715040270554352022514066649252078663780630410539538013956495952346968238805558809378302314642973640262969071927511966126556390810386049977744959279026511035454654152462629184398341586868089078205105208474932522997990230128600883975636677882875151734793295589444678128522208328031591292160452883586496522810378262935654370721874780154293232451605217091792693527593101543798620059930748548019047633027229720869185543277913987768245895618562610030149828275943951299357973934039771547586670449589821830800859591294474330356374213237658691089055965001329196653625502349495172963359777145861898710837998347749175604700086198249027356965075321928919639310513051691119152610390296196355205019975342878411621384564163698422174331865097883851787656329456981961193795764745874326508599705747606323185035297973587227084842030587888288858223797523943059580276609447393793874333186149288974128183027818716365175568557067575373060413837965605972636065732671815315831601464465966552549581845406185686775228135912836268534100282432572720216866488946179372792397965513721386616457131162175987065218905281612588571501772851450312640762183943128136526573379017926982417861366393731036624625919571872735828605407915860800408723971566889573616478809048475322918678067399453138050702212340895639242338916708341132002663534531385854016602706152931916307388205075617389866589372651495305195221827114983648765457729720905927310625993872594583776466226376073671892389778801800312768517048655953378168253552780289388205942550499122161739909694665970946208507875749197186153254051980096053491597326538730644350464019667191671115011830720912311145521771371383687591414686527414566956314444573543326758976084265770503581810005656080800275049422168304579287537575737113185985179482596117964630332307719923157855292044744214389538589122727210597876256628580531171743177818416670751804367052505862085491609678338395355040647830287344744700716875054188468445513357744734530883345284197848881653016199950001438710479839159165769903782862906344697905893752587139920796236593184156885737903825365321581941109546253009872707964806000535471299009872253440359696820586577726352868275017330724381734056682837400195100100824889128580009137637756106299075904919977675535504734935422772017897888837528129929131940031859957533369584455044957838306222477481728226549353499954499391988130208842530117429755606116398778283692361077656443643418892138122425377876876471397495982231621423299154967458162091040859762015438653638604435942090109029790078350543841104527213586337427948944391407291311750405314405003173240430319289920435078068644373800695590870643926216760784232687554563386815628596853369396250599663104104521853742697566913091396900831162013802232248481277270029016075925855183916814571154791754973192019542221518325871462983680196218111978532388406948866263077330124600106291513629841456081908239785009019783329905753531740046036561512484065827731734795805567995468271873800239040604752609198333587948950754389729190016938067177026501561404455466668326769937571741801702945527045938557345837350377195278184229833565670675460784871536466031200762527735050917466930897671572197199861744784265352872279784527027415283099188275755654100883763922377892930799125116162561168505158799040567720605227286276670877893792893401290545026277349132721640664858244164316879802230991349305265624334098209356018212836232688857184530404561950284381501795756891226370708182277831110034220080835871753171605194374197898082993082191953750973505684455317961748888337130106163140564854420349553165606270988980156658611415265077182525928327773475122177038497156089252776887251376444958578705556459893368271797999160248409241888504556660416664362068721881448703220403224631029758854065581305204594899571957635342837405554948516521297714568297267130070563437085998443695292911938376652685343489943092343528002575266223265842255240979726842516410672347772762151583421977218779363746213155011390545920460923848640940196950192920379648255424394869769221189533371424942228456442347012830581354178302930447275863618964296074037791711630560793557684959135383653442446865514870551267494279878198040073390094070985105661575244954445893607389243974818292791770726504900674639097080448331678857070547029021121601523006505280980517699979816820831603745782064244873382390563349570067897691407395146176491717381414309722989746831935325538146585862310034876188511191869179041065066916185789861144476886714771584008910987296908671504077967252945598798472268846584248812710477243568893403940021111439842935575715598079392455674870080117463406271481784464069435291250943788488572432622432466980880728347155727511486056019811489465062672395856321182640252249197400256430244424192912882964869622619154038333261641292941440183428964912580492340191019420032283021347592820196107939089946395093995260995048070444888125136999782011005051677277517183804324271015872237329275514700620448451620603624466080943469631635849831911616333552038652818517358283263848109466165933377509382914588797205384964157840375500424623991275490104478173172970828494199820430142714880317009084065967340346307487205477510004071036445952325648231398337080057144208215238122281451306043139341177808151929435604011365558731593603642868946529606799360269113688287236029053645018218896166468051497364211459607022053673720029209792690344048782653947055017704792365305083937184443351922923258397211776622875238202247808955120689528865678360073257169961886824311243419070169064088545986786165397668647752569276505160360188714531415571826537834551137312820975496952313892964208726127873406319162510910305300974512366647341481338125292735136380135006122134374031032048506330836285364319443583380291749172263316027794044633859949057684366634752260034080300724790307110051754198212553255217062806468226928766705462185895877419842090390806437765074519263073023558236687867787302638163712280471277412735057585924825576881122795557709310977673603003534389841381611471085723662193282069856441252203051464862923104526411994817626372034419188146272561370234704311938024579111691104193460164542817601705629329023895389656768265986819569957386144992148065649375612870250161848086862451165082844107912816234185302162699445930495488021654200888714964309969223583295474799283958771712249087794232263210695920279682677922894171324893100444140031843334670278571219024712465110744357450000327320180069852635840645419779776667681366201216527675486500467873237980708119403721048805335268315715042563590578916507126781919686382324920226518889192343644060782113722813227259226657209182838175268659947202325217101918103449709471727684308555842644041544655739274527781103100850971310334994359334089798057896467909662470915229040499393197661908815721847358625984762123902015748204294272589876252358826952876174666311944746023346512591473043717371073362925239830180363115160316104069450481876191894529948057062027464388628250607838559949110796666221961759601405083225780701804381919053968301317922017768973659425722970363851028424071647870096775985570018243751099852623376637275661397051197106038131862638425670088590522146316095681074704552272689249201466985960349327595045135779941713050800617543348982704794057636816708822326843077450783080073879165603099999558438737648095012916050935580389729535278018424350258137895222219213799496403816654434275108067204544569718461105034842811364820908399845183224774374720611286757223476241812191898001735498616553474768389202830324427433026803606754661322737958296023039301404762980067987154511295626533798168693960405638329266993325930001141509880192918074858461686804111361652373082913142985019375681314640738598860705173029498452604398906549687210587954096971277888672017962541423922328578985176008880732994696899270735100009026908077482360269042909635830751308577791072802426178944565100105040045418448667371439924901780364738904033138871331626284090373257621087383200036807225884259220385025446572869053696864033313401811977484958612487580748790646015100471816325013506608032547619746590418613474911844439252760198740634260640557418248732851550324778076664939954870670165652939349558353853668632027073327338848078195592157854105471384964396482962190907551867429133992836202289632736805410767232615680098992414365197373469411191616621795632256006028809612037531082719801542486628004684025235413959919715041266702673188860145236441682994916668037096712391630102226590764774221573974565031811474948095912191616753265537770150411311841508099275985643453691469208412553687422338448377578247275974563915347258116379940931901081350328125826700902535295429007639007324262735289881093272751684160696915913853963747692133171331801770356754053027476832892561978633217188262541902278785882382167764954268207235899872577388394455200652160845619971929343994290766496070939291395986885458948321527847858030459985454273409709426536729588865383727722383505053771141821741222025941699989031031689787421606219206525974939765408313377970597647279113424521934619751078587325990294242707672728228712422576333573041496602372616775125640962382843763393861477623506159085497309991145360386963594908704642449063538554929527384019727927499128602611328269007041965993793151547017365360424470305296609721770027356738912198509680146766044761893987610020908008978346736262396980419967254249195647979306468070113246106278501817070548722847666232516623813287923599761880585275893436598709235039518518940020195135560764683743063480735910084077411391851835834397605470299554237745663027724479385565914803781506921461024809059640081761497794082974991912552765698215701818815091487895428413866741996138907808418277641525457425472691601673262903406933600137579071225169165548339573412369293719848309605208299199806353620271732028803583227752255142159990320123751929494944844312250927567164243958687687644647068620740284455576586079381483666057780421741053177269036177745279190111937201263836952337428286045042048083694446871059711015949387022188582770004942233105599746620360560171467414287819762881554021392088287807548458291953637984328294613083186625693702104536110260001710275000649328194752285016017541291855676113712109195206203270520283384703153196351297878092086724634862815008789244066849445867669154327389539926744510767644479703251085474779641587026603475937190008583546457370739231995607861203730039256155303072603721472933296165970945742274938318815955496646800410748264773696898469278621854253552075636359994408984555691578203428357615188528582625137421279719591640863250542415059263610205523553977209821085582371984053118404412892850288664155634645255364378953113918535824378725314665078127354902113472408755233536721249147056463096629132335892724711907571854583207494194847987682488138274826993435975443769403294497348864460988276681536506010739303224399078191046764242537843074085994390586093755135606295033014998934673856923391366016111716194325941339226506459764676278795672080311773275597981625259729590829353608475616048449273696842397007184377969364798761204740770446933435279979127826999465568210272857491397630090384302363049785130382698234603563326145555479709293376685502125360043993467313119658354831841483443546760697720639418935933567959033409978100006341729369357094780675134499254675370602959353393903998986860557814574434317526835425409291044920291220357165628973971967222272035641592213389288451719834303338684115819739505583516980752515717139298500766726472094599986317074555143717941483211883549885686518586815581216658058229345051887559703165280299834175971964203192822787357100240370200626719992564922828686891873321694166529379528690389168859830949754472392995052904558039322064865382729896484739787052201928086967318471541212795375871667877207063960085085462086292209547993216441992071348716557239691319653689384062556129564305220909100701111628792132155739720301568964788834595054884899049640401618151676027792998819158935250910630974287901782615803001001561352672209472708278283664684714226050710021044712848296242524301166123762416891919014472522000723411946169720914342202837226455293845670794837066288900266270380789930695106720310519948385682920564663644535897465157759437178707744467279667838306992894313216955335662400531508223315139772154929385717582512068220804717183181332249754920506371080636769020466772149993954860402802438447287526651117152533441563320551365059246175524671908287372404439884317322669313514729111082176770417457592247892236277198962854029914396136923857153081527977800018987849819979182348409997089328467147635510134702490773399322216389580596646877567941536549464816170257004448998797487747678075217859063132467393972140625844141057110875980896972871729634701858935165435607340487815241951206439518547969206062993929895305107690487325223155887013702559812463290336181583772256361614939155750889143121633106311922166046881107305805876124691263331572744386892794591443398066971960394637537815731985551604285797846006315638484006555455920407239009857115463868399770374470492367796402107500463262788889647648131246727615673492396487070748626954080263674483903872517975284937557735519562657294737488284070820224539466450180269956149935709095864095334820620252464190958469037878346759238073125504081110877706032560129992866284204260891849653901718754831586222847646777706961589979177105000626353264466263269649122061681664700926078132928490944998278950066639117993160450346252157009318586733521863274397665622124354938269586260997168658059959086396400906481571027566043714515057014400364812786855077402329828994530177329273481445588657051326223896691686465357305187739572231412795471630123798831154472803147482264054559333237026472570872932945563404328704394600227314698446080429862931672740341004386836108133928265408044351986584673357253255115111338822720135454940861538315061161918085920942616526884565172752520185767899482564459531651283338290762275491031397049732741988319298528773717477373694772867626089926988038600186546605131023817623472929966535913291047588166031666357421547590584647922646855900611946486588882111363512457705763686613168455646324475597105409416679397423136958671824471936290040913795136196356353489151391406996546859617827835274649933935684772706909049764109825050331450715507755571592891082965594375961527163244164863588677300828798566964727447942935575062619761841973165799281486741489398183706895981784483317496970193489998195265001664175181953132731916275991700170679996888285266775786520653727194653640104869808913717706897349529927317907708279162562453575055810065726170494004161265066894130069539223492411682349445922452419836299141927815349018962995833953191494547714351103651927769633905624973692889554341657200387050185017975603909352890063077040036290377147258264379531337936315994892611455899489245361523389638675441072282994398886407258102629028414423996982564705942697495463305368314648733493053265930403707615536615144928764987184916041606205818478105448693653921375216429471881360884384545037608787069903697284910180806118307218461467310536328316579139914496430341667719117488570180738632227242685837914083484169965247159355884325810224806613064098609227142329223455286741377901567746986450817525062742692413857941381590521426938348709729491133530187486705227145247122777650475912642587283039243673784056503607192085786050693786704874025014001781618425656547545737075894232577767035416220821171238405878326662453900950343783789292347674498498182567711338198558565141327790598613772322286923990468930556276654948190453887840648830538543366678292810287709969705194280163286211630347211785067806023239965764783219607328177118167475346248995288077459105458440608272697302013711984296491081709549167224679306354905785607400627998103489693312818070109800257342195436099086005700124629012690468553848148570673473167185548567556862439356815121163994548053981183930879980669775227748169384135846653207460192561980636752151484102843475700304086759914408426317138237990451974552008165017460562688703621786561255851377557906209898758757208273874873559235162767656131412675426028315724722318569898632030151058304700791811984634515508192282141256276931015107239627171089816055191072019105817229362170300234637187912588839345186875625370671109077230637096990097264521786307738729122872635189512035594225668559373841363946823738288400176868044816750751192998315666475999704600630908166887798738647035969201326713546525677929556525693719530283975209124976420348454806425783988814802038411216023810599405175227850862237251864052278194421016166626835386934186519733132664203950221455811413889530875002368433901264244888422462678860520648427026207848105569580642641890286812912728626714573063273702607535004610493506980236498554224691729561808737698819602064789407536957712282431494739656084463450040084101524703177328362897167490622679213388064597399886947045991849021062379045007795184825131062806625641037743534855809880998904207216720504129529490857850253447556987474210294312480231540386705309148787388412818051370923918027893427679112543662942624906264506856589468233942388523023140215702079348522290328785820997776542047407839154741838237325529655829417929923528226550964641681561353785851439611609619252045911526004460934652181641313702186621413392832828873092340553856895382899350897080921871954548282835777219321334999346379686976317219646910769254670328983581901297220370796253808895848643799198979772387900141107059861139264483801521443031048911628795598639258138326851017498573204445925679882456588028044606697853743000499352523984635046767311645576446381595789473251760023773823357282882263481378497580805295685012727090238065295770469012084658591463606934602649632199958400536324642319848143479330650510649816010628752944859213697550362034119565812396130781179152155360698427911874704981500113404004064129770337424365570923170449486091002621536395240780313115085390411735595372477360783011464590949948686173349257226259817979008844421315858118956286919397737853666787324556354902100720929587642804621835729223841075797576335867296172018648006000867243894598728346105657884254379870904361803390780537355320856972555421538453956138623867576098781090199601008203283029224581684902232282478668890628458606790295140445232098362887320768815175512952115647000761848169017933504086854475911350500825506747810680960733135413867512441801993965411584750945517822569399254456050230527592677750699505286697541881166984346200908513246235096947691293847023257862136100995090766282769536760070301177628672666044504960700722998716841710212599029378870109303362463913504500534851435259528543146167654257363248050176322927728955103264682205697087779136141537919365270705075983044501634492675095791466889366952795577642512680147444967543794657278543711392876034528426702200365073008066700395954075787203457033923197204082383156321466772957547408247887531116347625123012159497786952759141226993186241867470362722615430723471909400325912864862946295034506905688031195014545271509933562269087088084826939769207225153829445089468322498826240160055789503161244841153084705420143008924851117690704571285041566076911775039921856860894574788109234213760092337090300789827521287976855187275696523378042076029750757659021798080322952200550787055394470259692575024933386055763852825972197776529863264015143736591906990842871479181605302701826897214336487731765011450142953862925713631567059529987249672876190147325843547488137539548251932222516012968652409136697785280702450283052910477691741551106314695760711209727655371708263297952423670373980019121903795505341698709714664629728397226127634639031846894569757453361513377570390240424282284082828295943897905634188157489717624378413716437293194294981679467681859692894256301630992602834116182140325474773183458834075890651348267194010319988797780504516309011979558341263174600870469845332341715142184936786328664730485651220997025115464104326688038483076758962205147594678582741048853242222273032314555028998023890888247663412811749857528608647358661744391367651990397303401366925981582983544801111026660477536030234373557602282794385779976931686215756032947819289876137495365349124354626310685216581175195238378785951761939421949698871277605848991565088828382546657837516969792931718545644155545131316954139639718068353693264031524635050460496495804702567159422824005758406550062200963542513490787569930340480764107793215714805532377678239723426331617040963782989852560551434156873436550980894234442265215056023444965472139211961306644327094593558474204577817871613318415734708038621010337346866602488930453109129439552400589438372476663456171561524772951100707383877338516749914889005202321418313959458569080239898184705322828680055756368002092883547695949425767401539751117294473590889010533889248933531959515970931249944129799655923897994298311224868796305415131510407833531891760234652347894742022114549204296126829992796027182954191087078529376932919108000605070092507684699838718043240087725338676151414750996683786877794290759592709118307036197797561608417094962614596888017690269587580309366841628003896871721204967789693667674370537082504214385445092913860526752963576293111019532050851631854395640281444048083248730850160311966557546209594004242923218178787676480520593869588369488505931948786334569650610935793876414895005079311543990015437323568138660761853439511290412539852621349507181236368601076581436902204097794999210175830756740114057631864413190527773497313923771653469767808014446194399597939791567523533418268235931369866829723313622773129634128433743756114871830065620647336513100100050879437297246788469662903404525954036025661227603185495694849989799875681762809369147306224771267770992528788581694308826888780098460115761614731527612600170973963750535977441230870326074941625397189878340172725057529912740730884395337882303832880156215679923927037796010690708645635758754701908050167419833632595547953503436453660159514785610964145701181474167854687634908505502099428132629790789236805867051744911055748467270560906588116818630621891440975011563013355137798778005834099285530081701158252943840998910553244316918159004966560195248458331039583829034361371833305202245323679943611622652435709995075344908123825890279299025810573827590711710388680126107185643090393180164327081849729670946883165712430197313955357266317882373705106979332154988440588475101349787373713051945204012913325225538577962682300787885064307052446614062406576032783099301583014649826165431682227077426322095521925319375334692123065821369321009885223231122677566754836552887536108703615269843650601928844408470756792556602399058439470777851792728330697164041653934323264449602945538456841680921072708980240824450683603682977482566947285072211477771573300116844984306197040797758791546123757488246682486477899424890695973178533721894921046123332886779974845106575902274147974176626819744442531146791601571279120930052265410489044484447077091090332796767947687183104034739597548161610873880585464376474410353641272952066145637336156254639139459614962458870608432069842769778743671634655255074052352367233620429991965309682657511797094248012889122697060667870908964581496066435996547092611668657461505169565359380234189726590210919069290591428420367718905485514011351209904945905906300254394805612579807595174086896852835173037151079084559334676867528563804326361321325089304556726499774433815502314118187489694484743708793709064614081256605290711609872058644953153226097867321096883838258619451956716263907356565352585813220929861153609127346262714739722486713429138073293750427523402389888088958395745390303685744834124455260482599615688305369154080848771617095507373099094261210614428963543087907857204868878607387835711731714206154623592311889975920710797022826933361766894762125813782310774733094186523766690066583974248311258337179961011377633004017506115465955091604565115196013940204587319965780818714678804321092481925773848608131921726122048953168114811370961626283702637799995919423964310442859545122417263548375329466649895845247332183634688536421614540871772985393042145178219167647177922844712234123358357804576267637949401881760749946262675624197042031731015824356714175198813272933205727618805442161198136211065906418042434713571315580172813264559715039068708729924072372802485012788019684106641823860123254126466240503530840059808617601337591617959305810529035459964846158989735347144650389655387484624448434763518637282182235845762115176666508061546706452377184017296365605992344199674326305453858315167360077844638212547875237468501856993818798533840063449211599280360736121437834159917398589927099076545199735377505090302049461338080043079487810376564982264400940595184427263322927027856203398877732410848135613882690334220127989882992787503791222867227290899113841278723219227538606058385249419744845172592108250143361558093043156133852503844381137447435067427821725909175675206737467835855804344054501017849580007530880112085249294797716835845309755690555953263286724050175206600928846842504257884800840144163531747788565680011691324711622640805352173860829500058311584153565658430743829806956041779430000939910934249009487326380199084013553933151070669512191984988053100362146512875624025837864458604862402526956476474321036495837052666121444794279121454142746315308232412816490148625525420844585667749025596045737160884020376630228283073975311285084576085468316763850815486771900432106324408855724505329911474041311102680579797126459361446079549222451430746497022347458803040864151535999550661192674349255411142747374408896270522754488235672044921297070741551619270042795305763916538796368478404578045540326742716295446892229147535242854236490979844413885212600755932759209254175729742229757318846528235982420867585057594197801487178080493702141490069270724412029801675421277194265429205914332258299176713877013940964129515428712702342165491119151629343685712302873490092425373853696145914810423038740378834521688172228372933640853873677391581386561866491397482025482824003648106852538727891206034043020952507772713923866838961831878961992944346469257352312370654010240873266647127279398254482623093557381211963709680239506463153202692392549302144327726957143072614722236608802326917241826478582971806022639538807914075828326272205419617299857542637359428846514160010267871393907220975872883946436189386047719497427072955229838176013841237306812094531324789234921875942108782444381264952227700405990543860058077352311813597404257203727062499098474990290163130548054495045456705323664073348967215646313893806922040377771844087698388903026124133386377831011531904700563364379496134060005760913665801283729914797829479021801702250308712028182854708582614790443879386044928263746981929778565221792545891322446872670255790662099117681767661829332793120283724420009960462989337693241871513281964754964346155838047834605101623582817982513195393791022155288524357491932324186376918245845726500747973863621002599135599807714244499756440497557150251102630725726078831063911095009768368099314242966305984221549401730631084906821807229292055496849148532309559613025635438274605002192392954577313099169702152412312501000424867813707750527467396829900609658213870164366060223485031236297760605596909167405103572413646997924821528921476028062820164544094756988525001477055634734305560143334233902689678140399611229326480816551177964319346978300229013002670177307880662628264477941688221662088726398744693776929385996402991380327737773681492143630950848017858327699114568920263209696760097865387910620514925970176420033992251953375819671676075159199939393271534137687103980884460798345228438826466160453621714943542110182882004961250149903112545448291576589681218029243800286880264325769766837268814616606885381707968999413745588634683981876464584277917863714507855410904231132904001322194623040603559811262769954010929647992704012361136060907323087295729534833777619016402498874295157024849090821421723422726405838502118437732688180544932006678744543722806179252604961337564532527311464192919511578044911255638752272192843390565942243707029353870044483243686575855124273781206713512325186293566455202500853492779335371691016198634177926676886933822888014821963609601107471122010893106744909005906802112762384581621855206457660585329699889887908456854863052760919977695438824770882425157976352640358722270787290597096192389629471739955019148241037085498744337901586005590610751931230914509807128196786674566756567265564716717920611803183660861518952649292639119545239358333884341621407256747406593227665781604321213571212757479674389259560527466541233973971418360688521083973642502835191046858695584195606451672366255300610407753106767277825620105529871639750468170042122673158764928213046412246206495925451163812630911865158279611605335056732457574081846528963633504477400937552320868038584441048147905514113115318268210801973201704356296336078547248051605632088755306588429641038489675218214001704174963542319194002890464877548875844138574031365142459177801351979425613146814561257896361008307555073301845622871453825804518229664926564618679134553207941442434446129328558370168494608992032156479716711134292474374248532328217796936978679614517735344276661096817294492047509696118512793432784524655115273774849173328734062555714748363032286703538362718661051626292575258347150161507680732673634341181559862770162898421080133430247507723268357437895754093316533523496648291509603560817602062667812759442711414102527057382906592114107769551289030779123432920730481121402838471229438660716234212259588817461519920725799478252408996996902882462102816284043667864721632240512770808359257308884499850374804852528464733372650237464055022402521259438543220237397942769896185384925383521635732142666572896306058463527747541231008806936608646626351563387716669482971611609427734923617372935786489754598177357227376646748151335124623401314797170601979215693636559085566378094171592930285646970747848310820560213545338709993793200069381092490159435507172531087048192546337940337213580478916365753565092673451722189715284561075352184794915645627301033351599732057198559197405825860066436003254821329209543549852561389624667133425787794019056348685086192456021374767036660216340646081288698615464759169216420589407467500746653458971013527568279179388743905092909271996189808903038389528677756668724476900614908096106860700916594578347760005215895103138107336771326513052828282365686232354025888729611312292098522072377920809650110537928897474004389318262297853692966325205267243421169219637924345144936860737354886563731462251810313744609407834546827078064718799887359155340286738164360330592068638074566840928540954229687810573653721699630304255410073029582457224214075296018355138456837857117001038693107332456445993499577112629922550525942869966136133220128284683647176088644341430914161733065688786009205445777640479051648134368539039615526150389625870962944374684048601809946362122850886931105761642974987964263183101678675187988163471050909307488183713879138895680177801043302943367069346476215426743163873235080068424624982833108616910824710009611236045970907699272169082511932714293810744423597130273112730773520065467970280726776075701517466543028135716701240012474547781109192040772181071119527516695953882886634920187843673270040986564060264789059057036393505128534046697708993082987347475879101027927764137064842184534922239146034903610460003335098404846834974073993195582269926276226706181238297052276937944539618115789963765190677062144879642733564050334584703624640669639520995626443040866428886595966865939434798008611299774495097713120623740663186975824189164709797318968061605518215203724841993140209251745800846921952557331927709032982533438670730890196427559166737312280638266481084309381387617939763226712522952375501987838125337916387902252834748017220510237657024609185308952903078801203147798446787464843101414625688330147588279234703449365547014154886170213529289933508450004181169019495552689091641619028607475162191921869786158876598873719061076844067330450498766226204697352180577774652803851559842233193068390617485309880957448438176335713875458484488753550188636740243670479934723007800032361132708905643091544135821874274699758279680827323232254338916278873402662599605569130972083347886852656874730491294866036435973665598876386572719280489826067012834015163967878316348295795720855730716149460060375794427368744887062302434384643594017666262800108813209111810999090867651157067399604168724268926578592006052141788760226173930122289891316479655515027061976334640142454420632559289765719011245131805457795421891127066832332178573222838413976826454833041165994406398138224442863601732549737512818492202869643938830751462401845656677033627726153338103528223692451639525666020305059528065372914349481404509101339405507818807301661289958855477175567509618168314395655129569284049841656394611289719218148285986483868448355924496296675557337083411691560132561230462925711175234256860719543028590628459360105607332571826905235930934248823792037902820588351910176556385713541644705217580430948999391860292646300699995862043638162586863448022830169076133073891145488879278832021693382129886357038813226177548462223103285939236372108945904244544357994594666527840831674658925817308409446342146083945702426015845055506759334728708439261879352488279831547748811090774400286548588159089651608749160660074554090528553417796018145009276815675759279412285964377058449951274000094086256153604224610165287015500985516715934627859694784066209047794106043131522035836128243846835798862901450323355211620315517824343994490940869905121055648874018613303763403938340323155817360089396593682650615244468303669215718853077376045476329961199839577566099094384228617332461430380050096289241176484947911980491256431276437112270642214522146319826337283944036433484538332082810082111232153715813640397449149001330813150912854811112422826879832652561957365089680276328927153317715258949216069010785811459534798100741354870322220461039848155360010216939292076862845698312595670480153238099002962817012946071821646705267706218895305165207164869125472330272799265554093202437120118153899280729535157538333061597835229182600766552067607101835761134234033923874879676441572702673118330088822393447444380363974840618923452775889826987389050188647154323549208845161027794310870361648439818543629159488002511483517410378911725502734073226772402882283162202831466659685583006843331973827681998281295242216623555974602469607206877525529672012605304808608202154080691441466620751767366731725387423525037939252967569673783186380646580340114267297386683193457865862253859947486034347116391032558769276011589824060165364535050535930790264523127070835190537414783464487723445023425390869914465789678902805629689572864089478494274061101205740297178183648648452534829843500266170089323813457429423425455894095095773126845067507993694707694625521635418625302195909023900766199504533191409250351347944778395326451713085068060050496611806555395698457562894843522626849497111790643680616285828315705012040666619801222163594648170006042919519766974091503921711297444467588986564473415860977807820701292077593777693759892584016316681960855839172422616761629234470863532796206820509684742060392313697900152264897307944294541139729820296291737232035995626035478694784210668909014961131448459948281691192561490926577732986685294001290858183833769620271422198681604215373201158685511497573706108561166135173027787734905410165560018947245454841636909591342942250388646593236432254161906254884839614723771754840135908353528877690418976583700769884485076104587595946523916447783861293864131920356056048732420497925636535863493053650174560838725937213044650997922247167721664621097285904235153317743555144901585442178357551358620896064020339409403096576909638148382806149576493560469332429859861563294214585621171945199043598837318440032713037160891616434584483985520079359044268976903746797942636871187159458598370838305260978626139803443652313477706285926039209657001346062495563565557003893377847937095598246136304658086611579377321869375478468399421866838279660274663471115546986347011113732216231510082569430203573342764071112505728968645304492073723557994739923001210746451893204627078386863053368284778870862270673863328583515900683481777398279512715467146523760082034214808746089672045274222107908456392890261408471420368586603937837348847174525392351505438944912357524853494393173100580603691522910759957238542124031568437002465959785647686005544089972981423761113233666398574054848089074736405937738077616268275799508993511860107540141418860364024362928563114710734951236043336224111475141226820441499540504127794281012099971907818010219036900383978081138039365930274463139595590269089211191521499680743773293409641251522569376874505910425513311253533430843707264797582280962277771433015276850898303571374587837337834434756966769691638320515419992158708662620406148813940568473116477413849821416995291956376409655424317366239698543230458902289526239581865621767578091620491694687981659515536383653029071539559328255493247020380934679514804191912616181608792107274543825775230002678877579851037860200409245736664369506146145473010668557404577465686552484579860059931541746779180653418983987646402228013192933826795986093357857536557802109456997388320909383643539915939276166116317349425135672834144770388590034051822822691570670429471489516642262441029975457626289009822251165265031027709436952184245762238957311509832759420638541403452060652270911646102616754303118861461008976361434282258376099727886960743696908375671067822003781341220442599526335284989208306731791969143534695125238485103331839412262951295030134806232598150187455462867698720654444082333404330075744351788942813628255928261933724909318663089259176382163094420992323537572419594388293380225544899633222940767679734402063572198465134215574240643850202760471881973591518316689580503866766870452665450522507293090292101035637998174863857671828036528607626092755852316348705807922850882380431283152405549910320240408341090052464966443616825097755390101911609362256266626133044909291585030513999946980904327360757820719346874477740886746846089414640280505646973150383580678689639477905834870850512961905027559650815539593456891952581463160412414508035395399523950850589352987353047608437811706058285495194788843971174649024832042056666553366801603920533558253818673266091675941667413715654579761858157515131185670605183672560414223641578225295328127628053318984195360376600751606501564100031271212691119474958066492772544347614833807820245378798978431165591583456138361549898763090356113084867204169188201398335769760304904241032268737122269994381177474047876475998342709468427720043315598381390702825692530523998297374938404542238453646023765991161482965833950344363756120393746216363812780272166693802273529681347195716180336918318833769709909509863667625436575944354846817068471306366835925889368947018420876605041445524290171818451309003959870071540614511135821959360972145489745245408178227243808521585134099579031405719537623550597699454183760758837781241360696798586994082542451501864133327191290640306994618955920842356638932001498618877527672751916272931354053564240318733939128659661054990887612931669572751429608934101851727849276044886270918282567914501829017057325123987985419041314754685277988256815067347567286674316128989736204496405627279995182723733772103520334115634143082109951960909686275445106760927639616659464978852895040118516216258893258712945920306565218330885744578152871482670751703993373262015336590373501152560460753036057419454229004136358383896630517910443965671654779312635545063834385667934169834063789282996220371806773480145981614325886592937399822191370638964155240089778812911534175240592629657356572748214468956410427754767290181756117317661355971883401028989677354394025059924322147961986108039207835868089929012861689655929884279829415876871219426846156957675767808854782665163947345125253296217760315996531121921154274562827085126390686152612926185787752352014218525576586437382707913461819868281055654400186170422250683446827766017576866477162506759908003461337808614012446039828025966815284570029159970701848064919892990969364834132341914605205749278976420170239386327129173686901874941927789381641998839118126916281036106189646965440111209364740659365180326558301295768299413695579830606718178479983155199907905457897114867834042454555374397735121934734084237899762467243556234442560638411491499324954106865332675044804423756969639136684292457084649955285807854465809220746891354233733820889964864589038235443476821192459591899752383813604141909596170124908438175504930414488853029000570813999906995678755075126625248889315197938769882478222987632957311634713793472951438031568986243825368243504951837556517929118601229693112392320759120277023163461032978491748205681899300967377370793048837765459319177893426292273713351824590335448567284027601613220079163518897317512235488743891046578467284171698645318293828583393092434167218306910499503396759898886640085534797394347678456941129805151894711602184595165157198124291354488195701470028606339554932338490086694438722330813598030828725632932203796837568871490774967625873118654036151353269762279066251167525469453089353494086106600289391779001580695161343064843359165489056739982411728942513416606062345456460897361135347354762016726969117577974965882039944070119502226157630673956219039529754581495591327524127281789382094723879467174069089862768509233402248441871358943645836078788305069239521397564491419064701819470032664095945606060718451172150996779873565223084942711198655033608561970084545407813579186842227188783355412956714399885761915691755446833180161255642117193448517687374146451888452827437852803417731752150552292492140281892726330054263103594798876442588023145001363367935918187986714005599432585620118601965247090898306149200176412591395506771470316724217534650825641180536708847870642621258735789885109223111347870474415459721036115049157567794438533995240221915099499154945482438914829042131388823328604705622215644436637061234991888667241339490239537332090224477893201361286183256171544514094522550053546103566451484464345890996202117024876593048323380081581422720021064203680188706484111437675275553753102041656357963497645726069110572714067541256657469386209357896498812026691706131797292318590131361003487605397440283428664074493459384447038728213483965681816352790717543984140493143349905520121664230208781723570427330569368535164413151800124818811427376326492929662735558842375271525272427805860936827773944670979638885013620944517561291299346107374148217967445052446242169955632879344590690969729020604963829658000660542578254688537395619823150909958438420138038885959104187026695088105616001792210342538789613949061785413762504309415453817499355807706095479369314078686714517713435553103852081124572626290981183329744624365620086697524877142533991185528014767557499796156760644044131921846063939570781051652880886407817472503307459250430113220810783500658413382623092048635892666491788559399589558745808857516763335328622910998387847927458618243664312646100689151234508884222780051481547398021001782908770904150743218624258117404329634663776536995002113802982506503121042549477848955081143425438661864406764213917159681161898368287435838145995655345860952185747237637223521448675682184612464522078183182270948391023094748844495740527946351745134464696325906725424156946450131479630959705203360744160885157932353509759002356144184047641106497336362735759440050057003291155198633934393559504814187738539624473435181081535636719633542295152847563529950831784723717823680623746902511063385542034062419468915607377351337434780227606177878161236636301475208203571236991234683682048587360886598494367628460542481033810331633571585160669082217955050698196464174455372592952499770238172736412926212641208277049980926137096607083897399757171493832500816766012882401590110779307973894132663698347048806033006094190530934179312411868168482181660242343652162420324172538922046431103347773448823223535487649969232401131164703488495360426566858703720598788284498402239981837916904485175646435809231931838755379142248159124038395786840173179126377251646804589188280474760069253377947325330542275687802934286097147676044366781769164298734541300328663116559187637775672683888466352346916575185912540826956724484272801505611050400011926928874079644222202336311046777983868250801258650197688800374757814695506202011097063448625382234472706709016764547818675381600894607377002451168710510000932615605118905970393128163831174765944109918626858673500813534736751658165921544981530911899975445809890383992972897758653389427286481430751633408600052154095636465438894654189847995740714795172729833070206282205644938978573023477324888610624802926511731612359098099400699198677945468354561599930640176632147267332164841964175989178119990514180094423414068637925265109120974450636829787048041442963089695330578431855843230469311526523850012472640955494260758658789311436653850261993725306105398847578039309306455759272394248245167671896858061655961116822353540660279166284162915580200614508792725503957303112719111315411532801620903894496453830305390083350794079682757540035204537267933891578681239454551226071305075868205352913817224192911200256125109268848028285696060307553225213095026365429477404586402154178612275578794207841772922267087970574931408840521068557458665928819052650222261450529183930812490105634380266741080976869863105315953145872090153141741956881810521115807737977300202844735543085250164933867575964897196591655765580091265048292295703114894289680902290715467101790967468589220419654365989793540899404602732514189464049388590508924591096456995250805636698248530561932688031777586338819661054347151225612761945979896541898424760833267253071310438562424477780681101519441576967203880469616062886258097922171681126940070498324207767322053072574085403179842737755466008747426145354565621110198744558506536059515969929320791928935025495525354510612389053250646154146118283506263847822695400298106601538706044863667723019835721520648986005901191474704236980478727234947188093374951487353156858954768059318467909642829310009332977802753119975101134295048639634595260038418019969090178120510735659542678824816374058957573603421693407600775013242958865440439322368905739803354969664020968438011640662809501864362601373724053042618398450387864477323363359762803887903154115145136396799969399581298837122581887101093652940434350089042098827749248010876291088340488495049684195791814798056271871037775783193466665310755107928731439918936450773441789554760618748437729106169051320715933236989847366996493771441547538703069931996111241893058660356180556166901522497357287243660754861575560351467646681222047275528248815078001226397118718059966565931438770752362631265166231237308453463806907577375816947195033394588963435076150987278030769368621990878719093865826514420277272128705648460347147963263316920870873127434559894770511702819086812762284441285099839697410551046305876384405983282387736632479740732410556828829109843906367253194358278648980188734207201370587688085076956282087552622518287792293576092793898434886131071769780132288596055276090997087144139025668246849881366614183293035048243637141850999390988726719320963572532049469033355322530270317464536853529149913137825360163962951717840787343406728429667071588659868509244991165770967844798970646335011687766316679366984662343027310835654318403338232130046052940965985158100229249190852423472730128942264874330422195280008355777456255000803054358419615824955132190496905278897663273516369085981052803068458868616747045630932892979946563358762285496373594050941242534606691621815283603917144872499755142706597252286522327977470227850826611652340579938922098057394195189824993848646235944429844079530745379268702013207156790404949120174042421011455325594528427588810918207494810066490932836616345700913386211790102668475280524125046514542281236449638846841857018198008339136762625470741098439964104736642982772742957167009491098560839285073317682410793854866816539493728600503524248198739411190314572628667001888942981172991669968426651894440046161739876636747516749498019144730006062979122055843678683932626674636648488430719603526220845295651255037328986337066102953539690162955223516163185421773157854636833145897650504304928186581455244250003144042521667285024217690417104548383285990378454033391055523363666330203996358994801736595289902873181867793212454262169718273491691022760014647279634444032349927595527847369311090431625883971165045348560762958745957785510748815043386083790463938669399086967122162491085231138755628696375328636105996426599061673508921524901739283192507348347685398968681158223575089089434739373967379906805605904994042278928727908020765860703296560736487157459430870458121611263699569748106925468681253123921160787435556457736143258363112779687227862287350287013771762106792216740806722425515708435634156297128280255606682850643880166759006578092441847919213397921301831036743188206383671619838791467171239289286984320272451901771222348088555220742387971965930464633726745863635238351379688171290175979498801287398865160741916415562575202167431656412909269675331294610095575797320220811741409836286388034315200811890855619222090384806410733386935687585631262332523421034719202841824636304842690599419779717925712388117412316412092760937895084504488084417999738115175775149929209546753898940814666116075941486739583166854855376705252330799144685899607165405708394333767702230095941631362209277899468424461314428091630676506028588294525158310483391621205457404699279573672652310937248928480599521213209179617161056758980154037088646717094379670771909784274442241713545499802420566665886913056399741761027043574281187347257973469675899848465249576836109075433945989824624329360984583064175727231752120337847899109187022467273127273032290979758036634806763621372595527977503218269953605731364925604611669590962134467824320837376181339708060147729364378386990754446970942507047702199833181083487781385076954970703236981895036970116858769790543916157974199258718477606026398205276918067371175237964081872633157873813428352470113014340484169726035285221470692573387491629717802287224611648318938229835628206797331269291898078310016977079078900054716020499872221719108289298961937345248031753469176735278753685911573552301694936320682246739353273128758380622540076072507905307665154005240993676159165566529463947515078091279567476823447871826941424854910979025673586188131722945094275315197831275136514927443811753271723520278460807990498920216350590447290877179011967681819912492170843000136986537959333085846953428769110054376581633275248713599275348635816883905410505475528578864345624583129440356831591973253981900351210966737890799233769225501093108310482315830214113837314678062100671491956138352076906189371339280777910702651518135087276284036104856653264131773677802154261888614972635606725893660888078404523733799662903591500140047501591497580573095197192796670215468247178768715081450963752225992498846071406091600193331652041658894811870027435381485694430790302651887811244023975646162481201227841632464585910116818375109852294348441252562972231452893495683988625106246551626217485752159737679132398962349779339950381290609554362909717221884539314275976342432440487235574747043360505955690460937113873288239009809852410239459982879405729421911180818680379058741771420585933029325452446140002039858052954072321653432620966097868886826309537489394992007878842411603644854900651292835381591310552308952034606154918079311670173787132345965081740732164896611405914822388521150093010793503176172518041280542361183711270497506571695612018843805819746179615193769642572564217117775816939899347593734972604085236435360533901621200805197792173924063272901253368893581649830805663825410782622670281868900913537898819829851905843764227826637556148139481256622848267006597529310142657611279617502844401960570568109934689984786521181248019140569451726390551570587673637704506627615983935515785391717720671521071922734851228652779371222397679550932447218038701304192602654386516873378183954476545450840182376961237549946022362033676995934828448921995357723790723440031687472084398728409656785499078364381246755907767168547287261219281928555311895494993323292293066701305049023740241458799407387696792902029565561285920569987294969300447450751838337663003871644033246682661652045535140679693921905746570011094180259274124839405870202626569779725550895233969025239441056283483205065293467484493124212960297551645422952674563599421908329419258227528337436159095365994629573911061052605642609675328126705448378911907795367626576740213710377306327949646994971815270421061675732518041146913820626725992298017081249905422836272867308402671880199130099568761179616816086283371258363242070068521345825367890548426439627350964363207131241257857934986600137515161735655384472461230037426342697707930308805789012135240160658844838519263813930132283222795403832773099197992957208887777213620615720068435629114106678361053776428176948483714817662542898608901808437475528835596468700137759295009451485277745293605293941846879330790974577143541949219303596734352221199862218048833547654218263868567293451501946311617806356780546134014863267447227724202202272295026092459563593271324583345398979098541656348861196324897789501510881453369210654559460154751579567044290238218936703731504815303764001246067192961199713110428177380664493617849962690781588961363470263170652517422910566428270328531839380180410426283559081197733374657393638133809938791005664691851130707249021480134753524466548260821078762500785233985072286942923901849958799420000074903439084255654962356491092942045965760070683825350120470198585137723191600621570718885148079333848428714986964031237942097659549359685135888481074158881676092280722466586700557338774038312146162220119572820118964407832620781514149415450482069440632164420793404610158492087095556150571939599967454549917771493169500148136431254801476929188415360879678587843767024855394545394520501192107245761979976706897844699574777413537389979925874747377879989881796086176212746022901685095295411097953505571211945424744791102832891023820199401614043749175302957330190248577442676255363273706316471409052568594917276455493342184810006520440838903330307624185092861504938429005629097615132873605703256363573924529102901194705770429718897406637944877334377487731542781063439670112657437355954053921717260145442861609946907338106998023670013827659329120625996240177659304633930612820024362088304136881142438900471189101084763290051591123296548425018103797639238214808539873183220999815938269781920900075983464586064378587558224984484048633675078971767714070942182396623197333148042453297824801413235022044940179532559913797349451566671534377204471775935287171789403521134117044483881805940249850657615071738866728965871605164250376435311704273635691514167616651516780475832124646757144489261325397011190460606152853989390842272880734002142038585217527406345286678908762981771859176352030680228297296051427764955543469889297233492433126987444039120754384272665755596952281741798455049396713740426472228960717285148553598265931989931917129083356727935158487386648471299448658530546791522450069255916609429521209534200871148329066303692455323236941265302515576488789007087822967675229200781120252138678854397133284892565854500494251072175697984372573610458968676280019641402307113678357469104493146835766056470591045286634037037520119706765337424012378944226599467899860020498550926625407203371350282565718762485757514779782012161012239656108347975517243968682061102504336413419399795140793309602445326315324311016596976745664572428229813865952550776972088182380554740436530858768948521025997301920420428801679270937451472429361566032729043443733871220580642800699105536956016849661975254647848606702923896241652893725049759884378989062991051675879622563846361589537015485090809622343354197289800942402469214354568048505464173749864957117073322985622991899684775900710798068212252715406576861830800637676851675908541320221354056540372617078635988885941495828904482517259461367715209640712789181293238414741140315933590679010205648497038824297456968392606468506526935727527198706659377070577177067893678634620416142855114825216782829870978655974207204480759577782319587867257427237280460435294936777414457788032635715493054445442657951288011466169663468749451082909429913737935669252012039155908500342061710005501453004475456276387205523120848940854591850543089520616541775653272014960171442093155014877852147003401444441456271525165085703614244809007349156703618817190405466847506802685750579058883998096047722851449913515738647224170156470022436829676742466170733874092335561255097618820280647353222399435334838527448233979430025946260051013725432314195469775862473544238840165690284620777756446959608034685726191942859966459507342493549299715918870852012154331759406967139308192815473217149204413389923577532378444577984483811791861049865346239455752206059670103760464830795021366409270171275132885657679192116898647618286887346340444912305232576130534443529772701974934506461517522388351244052146942370142028923198826263764005163663669280384518338494708080531997879598261764726146231133323456613599496232558360859195382220318735346012952809222024234915680700932716709286734905429997481516501606403798015613047981931380230261422661350720447286408076787102976528292648031328129854131192080231703698429587569131349895536302158915057934972854334954801734787032012078697325718957651969891572307830181633037829332704735825817086281739180070461729885238512337845569167707556470290895283035409779132458481237484412819606732645401551244103322411298094034023164973567393224841330499187690335580989385503668153624953889538438741942272474750082823177174149153358807407259315323752394327533572970690620409538739894342055323487169740000649469175160969171711378967853678110461847424148782247258132890808869376647502839253160843261011446583258583523820804599542065847982382178274402755801733444396562663695428003060524494447520536809495684059659129632295856355442912549748361195962579598417310682463526324223922404683731673688920923721121053031615228743106946130058838430020255019093152443613460815971448792499437977529704030767406232501769589857800680460796605257249665926320550953544192933331967470668701156030941830962610761271138870688389620908739986135367370005506032641585672879723093774051946895199286270438005532653467222073103909479197428593437889897950334772468708004278362121282724382233581202742243764192934289051899834621555168753365301008300134325302816463973669137681226333483536523180336584091407255494414569600825128209533523738199915508864512010676625913726449020067495749512015398113106676898294885717521156610171799609301230824203810395177519228668533857570866970862874536887510558589943735349684682810077455864494976524216263313246813298732065548107974774761402284318768782270744531370525516986455889712213481497852388906623466965532278313788396985989404433036504707633599740555419094433741822886686307546372873670158491939933109050337006878616523916595727248876598457585661351592987354495139316798437152949926658557520788121358796155853743804339625250527070595018271883645544898575949285235547928364733249159989246891564654034601591031137138873133838648053850462438364071635262257573621607100868046254880100993982754871261681546483885416998082596325306664237270246639339340953581216237731085021487235854725672594261481638592339570830409367359525788219861560790922133124581080441563941406852926787660493228139889223531245391228688141008091700244241450877211784236433005250667293288240114743603690281163182983547416256437000058041221017384856450591668319232732912736795944169464421184903172147916834250325205682583698355116869553943153113672034253385892365606711922711219844973936605586486926158100940144339162851191910534566025410194703509210434832978154982227376049937437855493889054314791052545520648214973674812639939285949258176598036584084642962711388888924929991096571845773225277622649424956375120271863590923699689750817055908946173751307317077123484821120408939158960660659471173307868066528937113564193484923193436952504116319925656586368860952578767116080804108177608162915380213817988982676514688451281755036482417800722427817435525771085343141042693335770187247919186031483935426112415861356747732018767535563838343316825191337289783830293583266454905624178413441732089415005870140302153412908891211144601305183892435582202586214200724665626548936859454271394391189126364742300180787423810872403306209259650281404095873817612121563928361485234735362949672707976743142417639489029935154252845869088728050528943838257448970727611270479895409481661323453733710108349327885787012426026117785055269860670903217988655992984868452592464674314146417186289065439293182195201031322031444587978116353012876748504565035013075229119442853000377315294869694548457216185730876730309975904680455569727983280857784736303161957707816561931971661345419397482248760384119406119184913261603898400867526641371238610298278657544575266622753031329537065200845203927122946652262563152239127322181818234759926737726814503305948711413510203550952304910055509440900696936902069388380423041312255495534720812469781091762032041387926898909909782133254995993323206953414409108370283779654268515370308835263484456187395260965616541835816593213825546350839217215096398346394183695240296071461840964459649751941873298789773570179604939801153622953066290355992736413631475757681978856386950187623661321388687880653794125189022281352852745828520656517185365935618595804221155206423719314764526142260694095309415965917148111016000464355493283860905428509554808901742231026463320387451513331536996210488500238157783440721752234314346558067411103123727978163168224664597676555863831721514532531096586642983557833881558585487695146286206906465561162293597976825367627043009946721238207716782961350804584567682633586681215792717969578098052731555291950120872015384145798182236483996843233889091154070933161629981921280290639840363501779214273662928463847613050885056537002461431211926166311664976269997841336778346339870056768044161346536466447091068365231374858203602815265484374933693586323677574518647155892518346007400536391768202312136676673482821220314015954509162675033531343825747125911459717761491181711556724002121330507281885625451094719448736974134464645581755405282283673965851160090272127819270912089944924665119297947174682633358805772028466158022174784129365277630464502919979412573632076344685652318869219041649379474561642423119001981653677088090174907615722113382870379989645339139777669694094629707447262695612685404114174671049728800857205676726539828640314134902526005999929535821790737057636941603142628628224612281244537436412072447882841901660041476626835633276759271953693730431824040207736332413079499191035777518238037550915180324938206851782521780035910531886956424911086028941043821840118714392602911556524013770525869529131421201993574589277425553908773643146166309256184396906353012052234537343978032312696891265577313094747448472746373330132668632705321693237934058163258101757746604427442265586741953117249307987797315427004430783236255265842081865454968526380209831753991522748107017625124852060869498734396364306593769617163916389536604224583467196840286076045006326175791506570513531078973619768437675735794241861532358057482395391067317121582219238831781597062686531908633864607139426883110180267231526119345993118441764780577760889109053456666732233482656780744525602285685664877300786835064782965010534823228785790248110621748694469659551131972108187843822182491504845147155645794226404305748568813905844430146882294557981383013328518557786051855283691582502921595096565792446229904773224585935025837597821808411545338306623613957519858330597469965887693633721008882902156437200193212774886271641986186548073902135678090008200807622803810064063647112712256115937312218173081319830714339788644976519032724832778032056146576455213604713481605252171795399854582942919585958333650766221598782898672472544120009902154481480895997873778790362734826160710302892146717192852222827565247147346466561071269838302564993353860656492182394160150695703763219451825340948755694585378718282238084623163392516099911782647147021928781205337014440373819514447898288442843306157452977005504165741836054409302677713170483845354561513425555691135049059238327255985562080350128940454179847336852972885067678865039257249959873168823929438587559614595576544950549969183577067708789482014260114327001214477812893611354154976468634062059452239965466965548760822890092134175705034033407026004970640910896886253185500910369658516046473939838317149171257293624550518405899973065625641989179144562331974105700380563403125392217199105549696696773499412349332357315139145646105434447612801009949514848948994239171706090923605779376230407022019114498659261944504534350141995567474762923544852534504412009306548558704939947674814761314203576046853195548577491859743032396579905999126532102624200006630946855506250672762064622093182341600690285884710339680181947836838928957460883613100184796452160201986769305361203196424506377000657658997313213211257458367733435500262443085993227956693518018253047715558187460007248500070939570909365257664912565531278357916818058754268864817938665774797668825145165954378623443185366679801282660465993711454505366668130149807385018612245335376032937107562798935515404005393868750386520335744533507212981642043546765433805940364890709773114150679310833630104692318965130964114533912802250244847690211184577938388293518025106496584841068638761540176900563870085746830865636823642534094621310850499857302103946138077497416479504207136694927049313569086673147191365552846000895070033696244865589821010780338406304803254825372213340352007789796120525807564403836124503138676128091771952098991755717784007915782972130379116191479347654873983956818291524804845378072311974156199128728690138651337916321649462860398619433625731376730047850214950753472494295529882568418807057065611860905759976026909212372729003447235078652463477414975994135037137180444248096818469179740300022346522571809439311296023723532078908153163994618595506343221164348676569989049977783232557637840306323783223729916520183392385278659047459218968939487718832780600683161973357755702018627093771538887593781483555543786286351349630649063991298795386146417541507498379619404838421865889248127269742267419181776937296264536671565631927879186452613281996875523763432767402228630091509900217709978498563623599137180285679133392866666563721200553670241581326435767495544984648534852545209575815961395535316489860183538405855061517095960964815321780911077268113407716561003710695722804830129055666387654137250482129554098201748873617671440317892150239398207316481379798570512904176416698139618715759541859370866249839676061652634919962888021975170087221355885754495235107889523533237252166320811791974983583021459510624554546390040566890630573968986693845505697694748488480089984431335184967224037688601597588974653065334798131958323340449753948120996282397052689310973038569504297298411641113290182878113948807444472748052091324146920594439111982043158346327328212560101456047442012533567212817214156222960379875537018452253329425512256968750002261823433349359838092255441468319917078941186962486552518694853964690529360285582901929922862852216529854434925527868587241797530979235225595041073108411015728252777166559486817715520817499153717828498970881716159823091316213169681820764284620639789222638478058934193718956092354390892578750160212941194908994847684256449672304573611754518577372148137330430600517330763907283996699373789095977430796318539574047876850409853300510689372206835331038003775263421988974781437603107367627584072416453957179724274608423755033547130732998031016262344029120214614631360654393314469490395636656282536423268358875824188192072611966321500982475799210132789192183289431132840756762432606251488635251394280090308207928954404884607077560187143341503424080716580508507845869528411881931252176782452000020931202456829905158978961837508842805293790000246400948536068053339009047197877609920752268755069756808833519396959956319811647245957277344844703593853792302711257098627815437074266590951704752113667759730442784441761440489828741774768597557329958071072875838753463584569710820311661127758590580652073869961648431333138309254259105485950627204941065241325345027073297648697747804644865978948859993883347226710061707799211033707580945078052595240914677202072607748591210181892860876530153101010306436077733752208725847240723861285567482576633523228077536613866324993459220807200530514940858855628461303329949840710222611528290120448928642163435392450358682517827241929995332595177069625274786286214359832184683573144379326723447653223997368753622549483306144055294180874464398372305226468092043808371386141769491186205408553661628823978156162069552889223333411291985079139862296317637324876854510728941733246249905847294934616263166403256236128596150442765886081130395719351480100863502597089243347279607677956918763082216517701766692384345550427229825676327307350745943187573095573862127105845838115533584313267525493444994126528068088749119698059961473686752037015198344872520064489476084396908122926607701106799420611823398988222291920315559424165066252029185007383806646258220929915080009905604337002329014917158474321361222411183624522006949625731698014630873533631691967590839864392434550855405169697725735096429028305281369627340879922032964805344419279954811252681666619746694916535787186679220250418244588043636415400775108072086756032554630058986978552976469265218314066386230852099779662346370176449983100066143331821611814084091633410527829239506090428020255325551811408347416777113469284153314637132830001860587785982263482520323290489381687242892025657864810231722128879019734319505189413397448417684295246597636713808910090561791696338214069760492413847703938186883631156212441858623000349965024308469031872993314097499053231516224688874022142456973844864151450268926891048649718425803102362607362563054094196855652085984031110836843361883604444222181706090847292815303573376424965130954098047067533190356988229588153813198154970265699696153560099345675446918961394489156238707063998052907926460579835000592817205879856909860821172873054542717024403092922223419810981584806736092831026253598744523493578367785034284678285900167839393830652672253129255930767521610144258886503224499071737862878392724599981789744691579506896074658779471465933333793776382276306901012232947571566676027918227353148401937125288325672696414490522254460576454201295722083622511681666713196803153617420854496954528305839838212261414871576994124325939360173972696057986120382152112508618532459795040768845914056968645213531714006771840188317499522323701007762554039862544728294718122424381737718910204472878409871568530133421633799704393979669176286262504451150743090231956564740082428710178728440220606249354755240810047250031357183122006550957768413050522367080606320250162713699473491002310479810016497482789574520026903825325309402569952322084654579058175365556718466037321412977726887839710747643462386546665222319805182721045747779926896692952862628419248102628414525235235070875210120348643690522623627557093740707933910948816302012666358229816555055700067639652382968002294217024163801113738358821661067519563143193460599414274596225607420631387618961259393942419172884557549927806612303749800986318559035280352288567238165385573186844591214409849949442555681606751352509078870142988483802890462652911284269580552401116983846241252799828675200660665363600785987195622486518658456905331777118569519987355578346511564490956015416703409151659518908933096349301306964635769941474824190528183932226130923004077264065646144315312215944357750674545349805506277892000409170113295003636588841101277343482924999489347765201231719956008153964815139177385183303141813202652339391850290487705546812918259809236841517155082057553627347827708873621905968050543979950321356387722012713537466445226471956653715381688842931669613841752593286306168553409635616157918090854208642396854447424489250427988197279165901548179768137524702228167410312663133150534077324539077591194004431842979941832666332469136350821931860035537512417372461899144430489467659504115139726754132108203777490765354499441691962958205622878569946839858813275414567815424480461867501358711633597553281710149391622158358931414351945366308562532165405739226630637404203177725692606327289143342163332375194593774049695014484871851222063003490469004527926382911705931374854909980280229504997097214948782415862430798535174504654617894970463400308058256720875078550571492846331717496020748657206388572455226753999890232329773107314631638545167978249558227451249467878540079745264759348459102627633241616377824638722793238352671532773595919192634815355995429269581271980101372776726670311216430736235064894398519010661701465164156644616718406984898512412321210076827856031132721921445349126038621075634732306673440512613575288567272715169880216236764488726659167862502680447930236938915498986002632861725132823077612889730546416763816585851957631437450124669514303802831032952909509822272145584541202148751200444648398480983790412097242165343434901868159729618099662555418305964997556834932859808035569732089910199764040512605454976517155452603342925343757339978727567758813992564959846265366597615814115067815243925441746446078334192350510231952922103823725018524847319455161314695632429430922177622932615364376823151226218285383472640104635599658010503177496967480214760776678973263892928937807257258805037483849982998683611653486168494148853262756370535894911571575443987080125425733752897904880276023871935270163859261412005939536141716053643287124009664371879566527364586756549586363330850361769343761230171770003889798128218791813041502204425735232595307270934713419113145616558831473078606542270218500383904208928790852272579818754985454210523814275552590395057033192619706147233313351252154456294327235087064608329692744050473458797789539155418967589045222735231175806494389950429241084519948038500890701184455814855038270724643297485302819047620256061236122885635462912647888014691082153814250038211975711999670540725452673348654944782544494425998726448208524916823999695318309790707457201875207405521316328741220356470574051585442289265905484515933634610159307153419087643683554866362009797858661504587035535872895298888676749567660598326694587254431113680295400047819136155911941806681716654129363968093934193189661082672272845698684353189161901589377960312967075831819323574095604058671849049766220657457844224937600226866895103702934987663788528680904210997263570172208439430305557978291893571696841469672860001598618883657837773801069014069760423847880785791561690598263948357532163174655952999199060478786175979713276270520197914862845307972814144568599077236943172257964452826925342204901532635177737648987999881508129001247406185834186079328026124923350146977960749735620783529001373903259296436859462824803625831144910084207044865802468391321767356950608407985904302459351492916209773936655345743809998300271110223058909398504074266443795172031793447992720178437262473520292375326758438779339253137204772578442324253780913971757488818943552982787762894424552432263742635309977234784029407955191251305773097387878343520629918479503137970558261882572235746853781968468734658098338850952113618377559553869633180272192585427776582026710747515523530457388458008034787949797818550735136405565336944068766151827068271369621890175770517668205142321655645655632018958247264701228966292947324418151689277860632238200098958420646662497679534997317770034531665517422692261474851217664811977028459230031225055570964665117384618810458102949487564172710909091277352557985520534554201101392587572504461997099326064591458985670308175198287508345237010250303251828354732845646899594656932814921162541336535945150042323611290959483999286307057727023958976615819781684218264936436850926989145571908446426143876218121653918283287079013043904892811845664831241962078562025890285862936953275216046830702567772740157979625631330816309331984680834032007861115266873327562284399802436744221360866217779074297327354483157882410410702278727301775641425901601455837962832426129286370547361648646604389524487534070079691235413068300113116577466627652061594994046273724891849094056557822503248208310464208283718748096856387192633934193891139180335554040227361137205309026256439300948330500122498573736190877761812539128003427147590916534721652542659288319818713772740181671382943151083650843149605859045559419035068410705974597405797416304545945917783430616691905596691328771054552044486655207328403370700453281931345414274893297099981047197758701251353865885223528936612749642357467862932291421695820264992237854041284637871697778320554305381458435289494309248467471915017151793560923705936804803757371170843228285753406361454220522065186460986003961618008642257489503217327649247922977524818168646073999864575393606562659912814081606236660714817459546061539611510194150619936253886178820291785255953523030903592029816494063542607499179731371812009395961480378268654477821791750507449647167039892112818399508652682142186687699584646490957700181627036583331650960009905030360851465771176755965012478293299115172529056364703773191371396342394772732952846058454788005373387033180938196504639545818923071173666251713965150150903899325918397173934388883949443671980922559637925400222118376752230246093053036086206691621123535963143962604876125003951806976858295435265546095569907052089257170894104236347350520766378887853481553243490115062813663053336000197715910848189867689188394612009516774704496111971754154451734015368537438786170605860743923661848020009343709699152970749254789622512286324744968568821686497412851306803627945098342270224253648253796295036859235198678358377991151893078017494331801430638085221507172285114211714000486498007591511319507406801122508960863362458234011532181950255810143486000506365003791674320341305661061928523926075584702880751042131266373875776534978018392604527723520249767541856463030814957052467208802429447343187582736200511480012272295811357961899751374799388043639266758116631168332103001418889801566645908182032724067971495977481552137555286993978676569514293617176880232481376301386209565726779046478017035000195347236782053499885566265195352081739831413876331753266149000580115120337955448772488114317568406599109730537629592502507005592747086317774457090016452036495276744866126387273170521003832617802938395830953823154054595880272614128898155715726033432402999571411921886706366680970819693725796804927154342295818694825225540718047285397915692620148011944701781610379126974734995174659977207651227024156891503544670479862433675604170714682604735752979395331844944218425619132405281893879482670531163630557902183409468218783656810384712046756804650442386881648218837727303605372019027448148593956856290011514480576227146056939393116721289143041111910866337924595324114501079667070040716285791156597170572712891130716353146316430751290726626270410192666042252415742018884754647463944784322554516904607148873584282128772197928874493661289507466554028970237019380371802724309046420859562338216272806411689083099979476163944134575557805515109186936407627320766117881448554882711345442832338097782441015722879841413542995358808561262656817102028284668610754469857965341766914579050174747476622537385574588958937998127559305974705769283660048332965959608425894818797418628967703941309733525051443849088120173965049181403704569876905104270535050056554609214657839813155952954629150001079371621165750845949362489986344187522657944732897125936700267674274649628146516004563314332254523401658637954539980100155567813529164080945784691220637461118766590056764150271743446083417065788953769852950038484044540285946734675920510359549489181689179165380049399994591406229639958554804335705097168330623129537001175390535141679236075705846191977985508305166899411096677923576273702203081039546305234932723443896908019556115859791294263871948264559001189882971432604377506473043439396373907443516409870885094767706259341000669246333612345924319848031530991712448616707706285684847128222371638324935185991302199810799591206739227565525999602149309514819375328987281414178893780485118559546799741510463916763253933679619729382610347608299180931278507589210123942737064212650243627404660318823476892844160306194093591480562075583631540853516255003183155297553214638987762166490099577477862799416416312514470201598028941328809427124418820623814450058905341094073809528623656465538145069192629705721660861976266198035728266894380076385026602318645273566741173910703617902311362130379922954150350005751155564046584431349679078498657711379433250443901735212069159195249263888129416395147387177496808783672451007501365362598087832267650235749780598733547598083978358388770670167722739266262039632719254196097040106467620177706943277322517713674481486949457748925472712302910689562512333958503507839672115258653285798120308909335481587524832916989486590494765785924368213276300473006601217947933665312729141179898553856246619285272014667781854245557095934694899522216355291608735228484695718577154382849744340331693456188426368053086355529924896849322916976706874118780361364786756025470908121681904576125114793271470063195799446959806783245196614753409660917479200381081956139833149937653409260793921413375162187671455562657116517456775664768486673536561504102238931447482651116874063928019889431977030045820117076092183497097466907205283927363599410281239950400423221954834526574891842126957318923865608240846950965878658803683958222136662410056611626051911635485249814518603866790380707939432130728482156725288638046120443382467773726760954606814252181002082856982219652308450531686323314197000992923995309349791511241073094048901430782442120345151947602027964475604049143922876243658774578672744911266811425769300013011919278911014162772181784604064005690794099712911689629889512117360783237441950551553400156255962370389104251020839091523687859716896117090520750233382389855442645895772725521929276013043238704129912614888969443913267064202821796879586528339794262078683639890499395122486696282743948917269845803626252177912424454372668410429834501671681348241939599438014058933517697108068037963772731433102785066055354992280977925652533284616859176192570316069488587706908045773371012894488621970308702866791940194872220115125061121698429615803600540443468282420592594388699190550690262216046600461908416797098521322180516295638099366637451026572066617751433198430806521321626932575934226255145296841644600539664740364174414316128552898446616146284909125587834910364239936989640697606686960092143872279096184660705202196022496381442753002193331198789508302287404058799996599827813064369226500198114849821636716625007771088986128463325539142735381694393584192896593539604399036239087365329986550711384989133330418289489479806237442445273486059062254568583036118795170701875610556094371700835146249698392755209621993851832822214790594851751371735075337633626223204006275433637660134509774761964373098275938853016553436897474008970216402417500045528497528973101301647792816262833520837324978946088979798825502204348407572861860388655352605874446004621672019086763927149532660215710567942623668283019094787728405885391709723503811503653401464827921746357090808108893639777787946785825708452561549758350989973872838353382099630304215461316384757501480037428110744921374123583332342560128646341273998047581874076961504564289444163130412517962880966150961073366027276049847152678007053190662702408748857624876593539358430697114833057097932191966858195845810350436421323589545633971321796567359443853273221632406085937892461522649421151072391093455194096134546390756867806074759780248609320276345944728356248863050911740751346526878011888762350174897946645300976191578815421306881330213244972903999587246948992454171887447234852479524549267386886597029435697808674859067241504999774451595614115864194672382660169732500083257585116838259411565327595632701341932187114619043104894362724109387463402485207074842052890309917694789414952672092993959249423493169499220543667422078087863251926404711686263253872621948153473482268769156217958614074024141559705586759959339189377664196231281106205790912839047518504319722492505489751316813669220648283357769939473152048634552446234620741056053625736782791848333711855701851336495789483124526337857254831823139188071778166198922601623320027570247565204723944709197721527571504213902120795624050971187661993506272715992239379723258695980320911109168881581245687228424623046456916193048772000813673492172568239406325658530526389673648612072499380306367753013426777986094732460963621513233183129044786228923059915400052116096520530669825454067101274958810018780677572384110620995945405441800523800886526159189695550294354340343545817186018826471665735227497020859011970256057342393676001078932149229270541629509534081858555203853562243700101788953189127932869307271596160058018274267918210325198333145310575888188854671331232765858012465420582813903725190319574388222462425558200018141662814388881156318855179321011517208920693438300582623784565818646131588504352549179559094025867297130630939307335109999311656398476143754984432331822777656123776353725646942559242497238032035153254231363672213194895803463399157125942718978259306670310573553640145367750133117900439973912848126072671136833579658910632724922073957956461962582826531572583354366058212257586129529148227051670914882774268389785991014315965006222744405078462733992755339950428523016937130648258966260212576983737682023218646152831384694474942258912827979689615362839048422969320768829640011009506841629926342641530606477032129476208825975212858753183266606114535607314057113710569888946593543823451793990033186455363649744748205048603857030659027707046753432844445080545138259776010979897792858824220117654454964472230996817349243801503380994277986796209517063095192511605717166502433421355642650874327699264762110964799316061921856542371432292927806997252081970052802754052210463485694455155067047830837168304815984325012670203926914056168540287116940919441630637172655114772606460474998351094891680174534638412820779775397798503818790565573893370097313148668247595707440063540635982126485559091621680042088377956183323909080289153618983993701323370121425899795757156167718630629247762327639473809924441923919154448204163058985582866916089026727045573680159651365977093573851418922444696434557327463878658588223733523698564789940973375427469248633660743918369545396285948364141317117033736971077205040305022618747578728246341998244701913386468134414255431571000468558032941033336113657743548633718982371804589621987102270331886968247140079003532920867538503794223690089233188018577976723045157599005138324024217490557435525922833707712420876954825459208906209744007773792523414028549206760801644245564020541314018871764278826494839465510046053016169212957516733247462895510984736890118336240588763494826116482657038360426382248768575177919995397257365284754049954531016059696323774463259729376565978736952196913854376238166062151651578875397829640778615922627270490554722084002544608308563871852192302371913584319581417599753207505915865544954818417315303642153928527395230243115051167449082471106614245223193556222593895515516482402486966125536668458527842586551275118946705491820212718801816623796537369877856139441409808418876092602268865206278103975704138766045978117574002397783626437069347961368992866759060196816616084383137511904147979566866785885895927980655028214804785437094280878329107533585627703991095518579579532409835065835935487809363086746761781873284432305899415973427719477054106240747749946201602765482811192700620986359413392502699462965278113537227337628816112742810869515233128917090513218702054558172795727212617750707235732024694745092331631235423061062893108224251945819454845249168458738730050442495784351235518942215393866042058071004309081089333562579832952797613355932186168185967444158170505266350862989410443152183219229855880988003033894457536565546002087094920859779636965061714820006575499230261322086942323409855677626104788362910140134453434069423149280192802084943329672979636402935064546928123529046558011708508373613114904838477564994618646677695746030183501583563338275692697556011567132068809918482064063319066010363920859259415167214293085088346444125224322280180654354966987570166494411560319513365653125848675757409752968596993007159460431911167875913026260152609489433580817736066695267951728195350050689833519697621295088400945345425997168926052032941121821273859119829400391297906265845112427510176108628547255781132992527998949923827566344658145944951532627239356731724438318098827285495234372816026333975496854942458484601869254050428420026304526589789930669714941805302497274826439865406819907812705109565815600528654766280637270238809332499387525774671403032228465666732699769705383019350158371691453726625658761926972439250786067895223435389765525521863155862419517610516324152052895456492345155318370113603414792658533304319024381566642201528915464550986972602376333399752275325157843875686316800280232813263524566689827255779818332748083409531431294065149586452192709849583420117602493021104031373850162144922588476771200769676844106315799011416417879152200993937831395417767884584995170746246066173027979047058980976917908652646399574323034006037629502308523047036779294977635064034865079399279766740208713311839193375330089497229555177032075160095549197357137391632413293526834770158556347630398104120060271893714609615463102455728467094511539004266014287250995971449469961940739966177197628918905828654464051370194848784438205592312404453569907088936535420374813282778065124858343345984354863290439736511397686357056402317555457316956344585102773313730241646586107012777576320016496906458342082200829113915891962784117086079423701236768702498868230336211425701621911855847443129789250703712148177929226817919487668407642965139421776584115592823362546131670321676312137902899019053840361605066635161488539303804675762421556131246901268674032907516660741504972451434685425691114303616993173801284190909861510661400733855216326213027678878751776340267850944506852893119215252056530711396758907095734170899274176837343249072458237707838655660058193548940086833159229079592194281651696545215523545893297129785545801554457494364639938832140254845769002257246850530857443622677831353368531966779871630145044186518657627221712501643028304700262969939811587227222207795998819952641646199647570245303924829794303308258998982584111025039006781358354047442724129676878132466435685562414407751507253527197330791359912033865906399241695888174535755855938741184332897148916433823124031752797745444353683000594611271803027116339833332791589364349122839264877889029324186901658066549338697456486814731188291646068291412937729848809766756695505331246235728664388321217027938602629646823293547642929731480246939082282958222249971367721591187675194948948207550836443139234253399818308629101748733543831054993825207713867882470701956441956999477331429327660966893921134147424741275837528039798696359205699985743082238509153948106026521906793500049011725251637523682456800868333067884298380226036719566228094866188265240236158441748974191107451397452920397748779725362509445394999324590395689179427896967203238531383509836680802911800776234880210322460613759350178661553596409832779363861655790909204433707416058444913407561447146690704213425390399677531880995360419821174851572329161683821316387686323029780359531251429093962340375845656270970516002644748654827853748005229744848927052120915280942113021041927896146196933715110590363374298185194405119875623754860883519405875648702112381614952516371392467444140892885676475109337362411896757369055676774627435261894837126759337253660446301652801893930163692083382883610715948750973692760794867265491904859633046971883696729471045477086641564081891630311641525522349620121068714678871211007291503805081180962812168380478217003960088674583481603681287578630668431264070060546027346275835287407724179915085143890511312481663712105138661441735014054402395151814816785103282566746606285552537649127396409340411064674926495316116062339833491403631397287248965864765470743729739686925027885281077931930975195305497611837281110463093598596571433049350751931219811448841250326497826228129923768985081645177371679492397114114458387990881948078986129026177990399777637975623170781112585486571958885379034495074692579672615412445078233438246905675907787296232528534798053651788850786694076883974858884990622063340055479683640723583899646934937285825641871770271954136469266796293408219923066499132597514521855368593245283556907795235870670868154595467661473889333110474114035182661511516746144486170660630448633692160933933583820625481684620682084737525087540124962367492291754971589640965380976718705948497554421811103425273827428529248554002285046203573185471017039972473970113133335837782543141067715428722789172039440071279402649608194058102293861283003297793148028036943573784558716783466630856593811983517203126626695635958642408653732614316644158183328437976270220310049697700149734619081255762622209534282192286433639345238376987451872111387990556865973336120767773329760313466263308715008372431028026404437160837646146170703167880039853471068354018305136905815148940061417309177282431928208595101717801721881335221012346515075166457536001554036133564749417222771088960031566745804216401350677154657464796053273375689051429665293790864146329862242340320559132127755687868025544945842852870777978789986357435870569155741084908518541662553666904012601873768544208470059073546315588768949473535712476778583073006365583054550596139061458497375572995317519266019382337536846375817437332051695468412413784611410313396602757967820298075892923380579365008634032661673026149607132012487717390891401749903828086839569829572670000000874957006309173015113564250140218670659184171625446936842741916870303325295050162379722006031304788559184062483157352649261142307534924710379240829968641986884248401374843494431812387873174910895687370010405909771487617469878285670707757379501845408076612345971376673685417599298208908305600694714026853125854089834725613819724613637769116191836875176185798162255226658397163303176924725099059223500262468800671747276059517888112896973498765980530598448386646728881115742237034373500930323019545834312967029544489282757314755735207711376350918396507228079919387431525276875267211310111073148691186351704188642603423277987079545406172413726914628077600973532180613796163987091436223920998198045808055465061672873668558378946131698638766090473188007750277443499568921008918118118926293747343895455900014821370820811198671300170243820095497565079428946698142077413402168753640554560206234087789707971326880923150005382461403431537867427797306918419503104184227944933786519456985447495827982497440830353997209054977307378782403673343494663615257652071224906952636100493190141907187691330500630494065260563347978751323238655988820704919734742152340446965393087747540336069904581849441719054656641289231203408779229432540733729931545338800522747696186606166364393516494897112089726000557932657552670958220908942914651349650027271686694714300765457447762062902363875057974778232461131184294964533511529170053102789313605799626217324256511225277414883304193199540435989828661566707464383384478718138191464144355270694178760667965292382126858115155963359839803678614558979158055943660632745884510572209778518120470437387504255086423309172989724585522670453317134018916697107262489935015932334409467480044026503168897546431506850746833834046022450977536852831677159646961623716432349712365368086183306686070346471116228519606186888650730927651452058654303523068238836227618768079100910053768986710758712150977851905851361370421615654269505134581698982075624671358431219650556834072004523524481917247698595632083181579843643832398438017403205270380792069789528264486277986879713525387713917813380794522927325286329264838548521121263731909625633772380333753716108236070540049894380045747162015210587288351250694917653054236588583331018376007281228769897117504710650875013119085749881648183977740239047475240712383447362638179562040061206614749738500445660289870259524777108172704480303280112914366779608505424346013993222820103280045567216135594765253248249092723283632417815460860831233857419587246285265508694294946281017825716545881313969028545330504603223519381486744429721125141202628150124852418944662171232771076026768301908026045815387678828012012421992658035241171909320007633497924568455499314957406576326481071050067158295076153416216370908705760206372294761447325717321076135859549707525140373370768799310322245444925476747900042758255177054188131138707358331156752084283081239157694508926812772697506071709161351655841825700535143584240368723483112719901067061129621548484892772293886825281992287128828598450220775105975005012727490548982326586920888974367172324250613376904052070383968257473440064129148802843427272940443835403692053639414670185643746657828641943160125074965077589388349781613619861766687838754822991732626605927559310881356881924848647233981962091359523008992378302519360866654484295069513119278251707757966571896701870392570722167160352852805889903470733453342177007378944796747448372547350603322706163564631380914791210940333728706212729533078103191810564063433382194676466854574741695754753885456192361648527096751425292715310555667727759815414182605600417427687871029892970226698971160495152466498938041154775360703148086562863934785585200224527022327398641272464433228495735523344612200951654097614084096905888335180109855338517525662316945302189554588885597304401046485216722073330958811364179991067897989261211788743463553251587078482481156428439953665935166849899565212477454416003583658924218915264938314955104845338899801071080670492925495865573411117208875923414606431916522702893046176064172379307563269419313715886512864318016710242153065416818595264552904598150088807014080561581169315339138305548612117348857218069953569541802494774046755387557538226896965007713279867796596033108586747311931743727232078794662874699986634053963890737056795382019022624576910333010776775640364860029141946672922085083112607067708463095203497719465092854100598471782628071360931761619315026607851454519177697673366894014393829240265772624723448321032391948817181215739361211771846385719796654770856998221305537457797500729533043801531687449541022810379343174490381096526949043517400279949916464707728118155168739128224571760933793854302794317525991444979977077184117187173802148157306172613372141087702694912929762721195510737486599939342880054073958823367400260849005569073575730893115518498924598485623848546932055316146614054830348427016107832963349941880876577776937696807798906177135106874365805607664938039189725036029006164983989434950055922608287629796732226108406847034447378336780716778466740384343946842931482943567644263038564506525924303746055168457169844842138207917603846130032288197354665767596656020452374091360320876158223214228501846657346373898078479436306928429925402480235989356317928408880106541216157423390853423654512677303708157663397188892149254185600598988921312470891532071313714077748148773600775751045613521372490792258020318517832225094843841595664638091908979063014415598956697947044167759705090091925572312993723233921439300996403778512827715087087556637129943475656059534251506981484364572629795335203280597069645108999141930698177859866694632628516874697817484261424461936112361476756707743425051481248377706034345328138034401941691069424139036039733512905470293810175297774306273475907492760715519458486318532931289963184513396361973468854293216164506035441106284268796625302040252804819623818695681614569746229524837669124647751956987084124694900397641130405552613444583978331888487750380588156729359344121413676998216525304647261607771256677950234252564392713606352427282487213487963636982286932962098126885767346073779145413170139080560796867370071573227676291793939954207203306778482537251955938801393844812307659061894161907340952777591777288116690683509676207570266085629454417954027432226325323212898985249278136330227523866108767314729606329381610697045555637247596279791630289951090356282740701537035886598772815226866099012069448324550458319147885260615370697014872414955112137995380438150229533222384779769966612943137630622131876696949797318302281243286091074960379364131656150782779109214915333536099926745750020494054726496663578674538873687509515672263355858375210776550552196747334952611622475410826829027433483921494481074287889247648266467115509661111888602837899347141750049790122028206876010672555223307301796982444581642946350195345917901011356586865205959354141282579079754270836942901439401246684368592955718549463728630237012044321995155860388824285274837162719489143928463353287256830859189223560119035816997463044850121208949363017190782250320123703187539562991039037580823985340025945254796913398106871298284628788487640724459625184709059968030673071569413084308663375675014967522872226212973951663762011290446899116263294775754749541117847079820394107506287262652416781926589560990319039550002883251394235449481628768835401620180240665327990618897637320741062383545464757506253218757879460288581375027925304847831548787604134929435262472574875652226722657300172282208063618326842931467512245295270045091487154057697439915119904968762185699639304943783407582495122698100712685601981237546906879991763948625692818749655856220427502505491654521706868964439762727231237444773775781573691289215491759965639813550173713393624059741429908778970831083740643414283030390584755005117395731215549035296932269011623937710946776622423210435450773164526839816202764189456555900527929452981344713849819308057645010642051617661130626646425675837645202068980109249396357383943652583767079562759859646479057553491463193122039836209461031112507982087818358335202475235210003172755175228517071711750937384650772590035371876300632093041326203071816993840823678394994730962546605362386321699101282101725414309549850018515496829663255492189579940074404392227212119940949615140888071411758704832079989195093500942425220774174889245242737411607425029689781903836106483615187244805203409260167751780321257468393805612593154313263585673306886559432042316828624428985970380784062649981886035202307368293201757892336890127544145861240697842425675408677464390131127411748225940546051151662345279166982939113189291109557386058183109471895285858702241571127492392587971926116018921154768802884617430250344350104417434641165918367851998682503666999749911388499165324041261459260378598728984306274503753887073265910976625372738249259739126399718354652775442681940631983203258670863308954769100004298758139960314403254350978670707389542339043564103477181408657343200222245188332711071226217527998942817986867381361869703737481422940796866142903547111114929106621535447679586659743135332394302055861066858323954536868367649257018955137154506938633355615022026333868297404808105338900702438211194824121150079680644019546004607380220085125221711733904209080380240152676304650949567924764125079935587962091226166917195221764631576329021878843800372592375004970405138040108917821484530138416872084438730478198905999361860762233244713773888055366283792610524158833585591141341244295841515306348300706054122715454730239900529122831843469781097495615865636737385793454147152377523000872830768162367391525741423611302860737901081580223638364772559030559034515536704381659040826461168690974841182266318828394747167025170735152475819346531662209012430607043789350227159925671922467381668185711329398013808312373361635327550494308266262434442258239082588985154075759471267101611191246150345845127380069344245287213141656342245537953842846849097147463118896885394363863786052684470138866601806802029371779596081151712367505716365212595559490451925373307915018080211082099018363793599188484833795535918343072787005375140590234385535828067778266880199716215057824479287318507253961892881242516569412247378377413055453854275384641983547575693747654237028481266501779770950555584269262204943008533262054842165435007288684186214312455969179791573207564389668304300243178577665855279278851592630219014371234638464199902784791381058284276956675846915567049629465616938283836247195929657463464891140544737079124546339384361297747139424319517163546689258857427828377238184794884040578819024319598515900921285438256692304654362647365860848371062212565827538970925625056916881652248686982484362317636093401875777957970114560781477784401059264142992566367416297848738733393645568749569152798722661266072435128820892127880874974869127905475247819845830643497786924676613006500042825638711591070793594519622914613494851947304459920987352003460651825787247394654372825579841100185281739086676403895413225526498885429519806988255845825478129414640303396406279811598638749894097183816748901286032242490570978808555883582024858661553887659139939943784828040510939082057651607203977775673866588695384269939545139403500621199603409938842881536621399993088908918731700504273780444198396418902381953260164889208233504415238583270709489558671595862027888215693998628888937593382242498431562408257361820898647021357809993898516790977737280971073830470184943676123374768473290450362591964933739480684309640553326796635230404797580052127389625043183344870902463911184978720875531814978294841886153415208707210918009959058279374483937290557013603155895870887751689808043857249828336866362745003797881868415343890540139610924268962863465537421302758981790295584952364666923378332524862552816777125634086744457075388623865145868625894656532886178642536042407072569064911899115191477407633635454296861489202487487239771320335251554982193121505076730667630509496782887431681777924379771320912184863812459100068751775988469971789674924282315721808274779654283961512978330155429454233883594785705513612390440199453533650328872850611260427978927460240944267803208995728706209141232942511423484285730107220387788258850989188615826174307627627283705236800086836248155948463668418008511015985281830490365983865594694621189040581148355111738889297359776207675126944319671199752917668432366273053320013582454230500786229057480022742930108387020584393412166812688166218656207364694052155954207415565328888695799402783015672661722592371111921749425009401171410505231474800662463111929799191932253228024466524725599090643863763601658896225941059134975258096212031570525473669398788603791556342768856064969107135678663183774162711913332155055131485979928284901230685842321916254140853634961122125547082885692705945547382795483451792241786546612517440048783323287834988500073336090941682316251130661823651958345649778790143296865365800106522878323469930495603187051295068855614653508151595114572234505400186765990324775326347206222783741231698923849928036711686165154071468994997835088938531265286253063252011210641250606031723867381936954351613398416760589059903726574408451337657252713792957904604410795608986222517718910316668652775153308440013731526365924504498843146826710793697545611250068041400811002790660402279511292565278023099320158862086599616330798538724818655813802488361975609959008401236193326479184235412699921490849889858108928542903043462153375442116227127102426848325098519891131309504527066770929028303842322409395838568582082741380478459923547786293098639507110454403748480846174275753337901251296673415343615472253514336270541683023014954663683335843429138636917720732287840093904127198317866173706133368355154210128100962166782507840851017654732335894663196888622283686909596466729179624232708714341166468505545216821216102856264856697445386920152013282021165564877321077638058753951230038436350290190014745352696443120452242424341764498351895662037364265200296424655481481512007913758102793589090647071618857163517058569659342434164205562376910625607531430526315571093381757051255925691401165084411781088213827807134284113981197625665042091775921093596453033260908992540073362266246021501337537729395351255753019736956624296453339573755252479243576952712565842063121590796251883823358953511194149990025687908410083555908659765348026531972828285118004139608415046009675409359065877585602150732410639663818371338315154209803406240082449035071318039110550242379329007162829776772537049963392099947026032761259059528091642782000926269131002950593584572761586982470520579231675508175212327076917063271389950120574038313784847505434078457951278907126663196367691258276622200082703021908019452102108932940212327310945664293738854530073398995388459836588051993432850349137041188902138246576832909793195464526938370539392568851057899730315424728756222123036788819539008984172816687604395629430096923526885458219237879081640819427788007051038947424267730763865671573238226664523938043092911835708603587093354493064698661007441578715630495559270205240059197700965816397256764168533741509694467689316774046787549918948918992597260939969173791238364087406257886221953854325799300407662596875536394342731030426739781125644054216933482529948736112180255250645604086327512587783606564951918107958797600348084238917962156825156263425785256220479014747457832984489605128660290407792251494113765636327213818301748890473869033682923439756078403163464867335338010234320388993330645732602321131801556794115643904858955629119817022221020554173478597156200844902628005843338190452060968484082597210797853360815728484210187368987149231366963948378079647308354521985044964109423276704574521336071199033144144904333059505897646486998737508427718412134395876522579764097134469237209334744488515909004175744799463539939204536793238461108375242469285485061033328473253778545424661655175473058301685422487271547336778128267678535098495423335243994089718639308944710854030024326379255471277915197342599243236263658611102369801474266463279864991136879523518776810106361576286669230096166854461015802327897297567580954159075079286088262291562561804398852180539774168187025511251451436124177197148366603411794014226088914513822214787257872807162741812060057695586136038054091622708684846263322795658239404322330914369676115677659810707325132783322100990615595634369142537691131272719426805757532213724452665624587018373566027540547379195882223318644961895682055554726715002549351855546228189226736785832540190625842944638667621963593797060241313220650922103655579057132475574168712267248417346224824264281004536533465643864697139265692762983611012686129809393309288305501183529813550384623785699643579020826490120859832344357163981083561865847507550838542085792321891444313951978180929051674070561366167576082120783904582555779130114387345411892782870472127822082882930022149978675356081234018358923923196888440143466873102824002582237758359600028304204162722443747385797247603528545442657224502287924558582623521823549235834404438793105417992794853475076576521005075953059900145349976260660596670230859958768759732234585044502226830427332343019785242725929130492768825036735092197092580407327045634098459536947028301269255750470311816872801095202503023068590952471671644659548314595950648217496093019165201603679678719031519864269932956088468806413341990732981441355784248447576383754976593997703409234141351017528390528130483504638398876448840064781577989074832758937688082144356462290434985118642756896990659035304950369426843056956733904970785262680918095052074838168413528032090078589358936615610257207332374363169729934708440164032980492529181365712206351248837806795594671644758962368455441439533372669216422896928199068827909099961602222332425858284374959642487433394697654167851601128792196570534037435373759816709972133248293993558328830740094686407381570750701070650595660637632171733116045031795485072439819784884958562855595534248301612466528530981849354970956268505391114526425980229396848687040236526730468428506228372380196618509148286599805914982617509194331286153463259770476308701647592160606074586233215635018824519662709797273370535107571904492668657799844492872591494407496419668748443962059315853292744767524083062552673325768332472595126878550087823417219509316743796087533321027105019396522019435235992395407192938940950620991528044481209768835878270825528489413142749175909141518472031683084121401089942527052697677586164918812927778217813485332976855788591988869906500907448198217002016111539573200640489679248447404435886225643402401991491272515954922105782274302158492598786383241243736806403194794303949608845743754048313971482551457392721604776150284061863521585400105594349737769953894328021689081783204573468845786731577342101221533986463470012664254167126853867776104111790223302036351825546016788086212882369206192908480188710230399598436653466474280771203522330617060755595048265015006085400981222841176801625443868522928042704794513881723680592280684006252679839727003238952870898222625473242092436808906473998136575289302906869572968797358568574972531708239781569099536165267404736087055410521081520642476507648621234200907678982757178217983839841227122070259714006711421118108946617108631812857179510776459325194296114425326776794803165495538537057160959837393017999337999741171025990396714562611175947610998842035744671436113818494726814651589070983250016889516886342078342284786898186535010550719834647830434007849603122298625522802887303036584766907161750015025248068498035049264937454071320998049281884217769213818324166055528574327618132112314620217810267764429600224942641313196635250208053169879347275301824640141950160307255475510506439026033250357272526363252953565034510340798598316178160601825753515620170559593216332248383801141373007260148382395153572200846892304714335513223816588210973085606706771013187944366459079951569933692056486617221995425417572905214877108974055345946690584060414698069794536276733073726792358336094405124304103726663583317569753844715734703761798887152321695454560994827097218862448956463329402667813639567639967403276251587289638255364456866680925211965172988154459239431973664814736596508058295008206007821262688569294657409005088836729168422951650823249617579210386636719477559005823212198679941418532188838380709016656142897145835373847009440776924141081579774835289550980598065664537645185709436268646081678569274209685990276342445965289704043354325527326967542458354803673777887731163733182035151929153671583166858341004536758506831102279699516630715709919367105496821512802497111647691747337219538719524421274254971613020080799989651067044505577098347120253974007780101832556189604387826723290881893253109639886322777135262855619514170926956967521513372423128393966405128224081565849636741114283032960717084935986955787600855744336237554768558616774958282023670284773098553721068797552643214701102663222631042065078297163353238022799846068840872548962736979810612041259915178705816052109454603550547319078064239680960571557369280876155846297559337079240269689710946705069389623812390844965139180962810646084952986201199285618742878746029841973127619979317560312936997850196352814307701570208268130740656030268477690417532560750651275584182421190301563175386443384174398026933995372375382692326565375005384033805685077315498688996822442792956163118743269275315149370105713770723224205919864137643704400835012852510544519119049393809807863201237592941009497183916079758064346666889558392130831083105920671854524234914129904196298068512869344369943721633209293126629403018611150056129896822086700155490774447861513208826655842674100025855548439549001265910604982210151469188092336128320829425339953140220275533483696668541975928339141491104095800953962832542121258514259573311977018007960509725180701382300426863931701358028116847509329132454839723063982392975830762244991488156695265886118394936399013690709135416889948848242625536298762046358729702252334762049588631289786126080211362488444758640664431290598252467740775701823291750603431017369755942306861496701531046476939808834201903203982632175025362291182970062455930722841474764565305299369069446318276843652800359134443700041244532643328097517921543379409312582308590706073864734701181810164123996516438049824747106964470064365247681022434790855788399338630049510247671678503209786190777382875971687842273792044790260380767297557001484384733319656818157495486192257608723811410262757403326905819662996881501905171463896235288049631618604538284796665652166940688118616258158768586093477194236713849699138965957017362074762915211856930151647179059526604283607248483143077544346326647627695309423831495084743508295105870440662760426513226247683637098388656412789382495209404875944724374373129350384878564554429831048526146617379969725499292175823644275222737486008039742543832158152375862589993322113801474275816756142370815850278359237993868525795142547816927733457242051573278661224542992117240484511223558822961404065105932104814939898516785075685418224811771422890618544945370402160350142056448620960559339461746728039194501252441881988528347843109568987522108266717612677018181188136682418777257763683979975010651388192936876976295550144452626663201602578600936372573627727380578159392065065109759921588285123734372622899344375902863015717167444884217366550777896178573273105963434050138564824362285079212086247464971194523423753913088234780030496127210059549369005270780559882005032933494540834527651395441497228578324918677323369758978032894926948124373587819798083096383517853417519511695604368223600292894743814416152140630246853944821541548329676286755188176190838668819325191129728805654033180702014668302962835895963738134144042897047530644268434993310221549279100307647212187704841773612283128458186088481150856050990478173411483848261680491799880669211666533376116566058313570335769310163343793480705730229624448096932705754589741466929998676918378019336297796808881596188234937082254889114275781920702299584367154074785336286403707703217811762788421371595647056546848622900068440854663483675798503730714907250307022449141320329194673257757189350851401061776600130490899421753279370649502452263965586132271166036759188109054572021710448992739336469677445143251215696443323767254943109373905326582094697198974958189694896080547823556991959772699027142650050024352650055560544621646067715680396162425787429686433693726086904388851548238921256417770552108822634292613453907977012208713804729998196056671212768758809131357585564923146153669212050887226289217261550704741157278410141137053359612989746283801217329941941781360988171186301318466607090359895323196429074420502062113027451806529805509426092441788327733023607780562456754761879148051925678994029882194216167231308372139106784773427865071615959675681394343497363797246840221500372108213938813589172871514421849125625163201715240668753799442750777559023450859484629758160184798019919838524827230056248254213269481282843641481320717180423521355779598223509068166737376380299773268446035791489015497056811546239628487117714330361353196317729029213400001664854488608524469442699590095767136079836185169220225424529783952263637566301985815120080168004482999703408869369240368417925435500875387207891534697333127811011106886379833293291149779353202958062140162216518399772856442327797636404108081365341031303257112943066017968674105655608668448309552801511068585024023262922098163335819248831268653924566387724856804046192630728232210022593574691340482756445169612819422297279921477356057024339475201056227392026847477875248689006487775798826380058359009173260842084311708655296921549491349703099754347607782798921997122778762301978045744010091063850465861437437798214453926698514508971184384546054839328554810797752380311548583396718187871955213090474339120062495920037725852110128728731300495272928050514195570125344329084985985156427592464639967979246461020439196682257988793588371677505231780847313145830229635911489461173486562257114194434557698066930173657298036434941366039617217105935775012438047913028923132861222492568654802248553101283573093825874010451894103309560309145327003959354733971336989779521886091979845867745516160665490059592615621924134094193969315599917983274409515960808456438468366527487599096791228070044506700932331399428493453039725557378668574889376844211528099420601231643952291802729409016329485391506330301742759827855636393356780823008618991960528007339379398054337346183234411262415128258666329906376909837422813349488595473794262581662724040993600044099460375335551434068938520334801113218706204708787638301159919282811171896353458141490145430060005497176086583830034750171050190312032128182865924029563207934322176895627893645720568357838141610671221490351912609639498521570818452169868158254508318464103454591059175043666512205974611039260772442786084366841828071212014786279263359969219444982687664317016265808700544158982983286671118816720594176097859351159913522216849070885421534558179144665578145651468859844011829422022365164065260508230650618597529233640949193873039492037055232538610019272897304703589740934492363857993499100917879885245313383448367722657816614630361783201228960796479009870686877950680966577991802647455248210725866795521456923148135726088081358102735392195953119661471769601637652065047648814634211779116150363691982495727860471538351854446864672713878019614705339242007663303064506215617900395181549690296225443209721971583487613459312086543166497074440229551791245927275884214897651512048941583599427221740195967846046629471600247863164789659129678413485421061029453285049780100684820272679571319512251593959845181992253747258681878134615942978588646670766253713983048004623242885062929284538132164373170933105715160624279513896278475994724968214508146512560507759770081335350108052918248117237491025188259252846901095173262821793980741552573098263753681664948271096901161739955518396123961631002834293034346736460086724927441847563283171554842463477482821067190878282510676407341456106743530797618124107170348842827991970820463821018706157249814546734977996762805509776653908110792297405946599227756978336627535184141684960684619361397960405353404930394583542361315238552910723432655043767068329789049460288703617533557425522461494030368327523396383210756004420252977575047202399871966782673858806137912398782219589352145166387932212491486923180209146466272939338029431433606280285393545436030059330651820806527233450119620414810036661475016413680929357032063394579620033842675108161924360977603801883189535846510253459149436829737160338815201737274600621988660013018081186323872367982555340173837709956798778921662080156234898303649749830771095656424027134209616588459757729455001355903928813161809382661638298680269885258422673759288726471762842477994443689688975044786132170849940942502624891532645913449896002347015329667862512725980785968115927189238913330771101915698103280055790541567427568010863103427471736604900779489423959648399517909830152864978038233873271263037173167485716111478642115319266254549888775053749731499849104840765642029164417669579722650755936337950159844799185781568869693612535449202979493228546515856465681622870171282715971350440670520806575022045857194276183282359736799229157905680168334008771942525803757691155161307533570546032607020651468283710002465697366194699647435189628558660650893809446875947473608634645827203542078782282103435353544386146510273208948858488439155878963173743576567978362583419320462970031536210069865597112152003176187341678862892997125114584592887134528978358822015939096575023164869450585600910275426243462673382820065844142337675626495337498135647217890252132985408238022147293417765392122719790915932529756592884036240811162044165592198689008350021743993375932602516252707027591386771607827545366446586344331089961877273939465309927352940558718389230847085606082478408540351154603402875404557918286746981258749005111431427560639000532734166323313747948279738443946921785280277871992494031362870294283046956076100898853229650358388910686731160368259664133375168981209416097116516008911520468917692170161965966590515242298852257947634047351700833945531345411021025504169851050066079985768386035563239565094188829931045292671420884872105019798776001401788804612160873085719010706527997413072040752331836228842747952098587384903310628232301240737488464092989535354058975926148606818073091546681654219676271431860291946858229047162246537036113815626758394068119558643920721026447800562385095245900979309824772090933185093400409717768214889601079654578027508967118838143639377648718564368693220657644166666185448861502984419325622156325246864649044292106617541333833318124858067302705523989362807932452449993102161841921438941847520172811622970780860245327885425657400182526853179800465642698526017709988194894146383864474120524137477271213101050378828979798814347298064937519340003274431814949349691124684475975697221237243552949366454479463677780496295596914596404615198680167642186046574616950676324622353485897424201651931333927876039785458959188731235633273479433175058926019748357394236738884641791847718372642819383037328002116274935162522093316544911225165566755935464040581577592156253957661203281240297107334984652103920487857085710496440020371509996847746683861932308315842771596501639079009428160649808296251952064448822786094187252023854165930951179281345671662189187894430936116619078884031117478223496461656698122461421140888604759389108960541067177676261662429328187183069476252236491382861176346144314531670277311384777192668361202150940991436801695459218795467114122693532787186556642954804082389051529127539112919206139072500217932414184903122267082967911479882234032622799628707327969486786621502266605594289380753820454167871472474074224060655238690378016464232303707391871861810957781269948479458428031871204649627727759108838417241027670736790670129597915570790979739496648906410860549414784569895828334186974402992345646286551287302501219236304561528685101355692069819742689442332805097760477251111305782033585651180160457265660165076645027384190640627581516783569482181728255742671376320033622952513474320857340448016216345650539573893968761146053061641876422478222525606114888234493616489907939511790097110322633545247370676882368497127964992119433466362136235869369654133005248727914938619784573637524100903064303222651237382046102364577620655600105472656945343804647854436394484855025315867683724838191962456170292549523637291626762742424747019882992543332563073117306251309132572718695703822410403781898608237473980978222501870027298344827084703104865451692456684960712679943324783339126072230159261255569531871583300795080032188779649851869175067530162374675552778428010149048700619543968785294020847880964505159439707709176504651442207521865018141320552224738451983394347807616891535040535195860499385454386929250985361683028082101520310512039025525463784079327073947596867805631282486305417532647496636205334079246467645182232216160049673780865017286851111599313963374009348233448985695982317238432834255336419053813942118612341498543380436364804809797741284442748223267178338865974590215752374188896912082147468448137891628517947357056742882572323644513422367681276997295618904648004844598243551238477749670133765840519917887428395979216702744048143369064114282593449452162065740357628051508359114023361389631496411480655905927635386653409139013358545845255094291558397292354888646038290004304270424270157400125893600327934196838852061910677163082049296490613617430607978970836390319567255388873917786789125289225246540473547160856014168836332903499095213241218341792991502011459967216567923497947185887480017287845317799450342542617531606646126373301864197575055313745955928215860693037729188752023656230293692884645003760639164062369493784597733081477241202380571654088545957025992306095603905961795116743457021575691605054609514689871168800258888131352747433887148434423111378554238428145382125279442341417032194006575159930084556663093931561598982678364528987907399532367033476434935241070434023921079311865684113360739465120647797800854254963006936367840503817982316635937970731025673723662748498204048967184295615482332937496548851064399874604716661075133996708583402922114135268939536625718489759439177160573594920018831298269522858661046812885828986813463633512027895204153432053594148837470347981381851243164403017175291343358842370606311895667910679058400999801434801142592634440975005121846984757269395202284946474329798042243858109467385773878687696205882189274333154473628828452657631150479165799501953559797923022225731371488953294169009238521176719549940589744686813288374024143010437420380941710676118347386169035734238238172686858164645559965150901603201342937056689650197468221270404208820311204236546941490691419573124464061177716138910667858606909908141250858337467649805106937250949062985827449318171628279117778596344694669220089275226383527311629508325075240763230340722542260784637920499333529150546957079236875711102068238001899470251115473447814304205340434305065855350013439982860198751065299252655700304922648488217879562482561461716932461219913804921266641246304656311677956812394187297864041750076966985353283429103504973604351388693195449462262197095615987646296433039115072976834663430456338468895424159023195450085107275206573977883877720998514630138075593766868352262316878407451370345668459809527334967236841566255447035337126595934988212097061799187083865749878714122403792742788518808460585089262382991392137858207714575835099144669866377688977846033280357168159286224136649359031050254912510112054134471420129743081649305835868127366575454837345562865756985612827731926217049964783253255777549204167655692200011653505894644521572054304978355635309189818998883292425558354040962104403379287930289381830125470113620291346446891093936416124326436914612236469144350411684674251828992877219095212785474131916934683463515063880309883492865431050713237473194040401070818899361424101092072016916117421121111718182899793611513556748485633542062484257148131504707490608644904351571310655526568760040249706239330233045421742535074111019503348803249786477356645625036263353362652399939718614714810120710685082830298563983899671606252669218237417875393226664305025467459349319128500460609165459533074389373412333402653332762702802170993603414556522441107310046515932220770457579752805408369920931310278561769541417218516751435161573795818893373209249626197768248857412785229735312359211593506854435395851363426033142148896975856467452930641567566850388353477235684849665980876465664410882332838487097767418723136792702537266705849375328148196121831740670922982822216015236268164692718837694600537193206956294241243297570471601157819931926747347492871990707598621324352365290580637879384007144309052469795229236267656251670500284948874986439710026553921533900132406251416868222707297826039411284839269700406563397110433862286402215190354134228989641476168694230576123209516661637601357489483955611927845863857197650415070267312969940621844713184331437121446970395950661823516310855544693267076688354775905141165968223739684909043070875618174279859813650315873327257711371173881575072569098352350807186299215085965705548850144168689177526726502247817838521825425906059392968772693264566212610558220426225063668022915781106522421032696674434784793824966567898737526541078119363918997490584368179155742751988904002231060039577941112066080887421105449800558253648308421384662244724773558284306756775908064062764314824921928430277749547660948175440896895871577815797462568227841550583478309576886231475494806628364897490678267649696573509316908958697956823007459973381716608089499901087031521082775765714617404022538401858191817432945995646042937091692798432814417190466866607598170225144267615868833938723326157589305074195438882980987610163714612058582970323486396174168607564104107693721334125237232369544241718222872263006453930152913090687280614401293503036821868182768794813501125118173860900778691312095824396002115154298543471271478277088612423189870571188098656950294164512074124787868938376505078689289748160076212223258043291343599691772877381132898715871578867049521937253616246880574984146979843652832288433915256418191258790022775163443927359279262778273350895729733300409565119706284048067367024511375703064927965762136804924169642225651711183810643144920061067230455139415350107174243191459832142847628100271672310995293181606986993088552864236527734041162872428411772911411073302262315936827615062124471637829747641660526512911177291029494821431315912456267335075431483677597423054737450325842974240764979258444576098858782865948846394978188896166239128759610508651256463879232364074567166217948971074598736955187007322493774809317821246229893362851239420228652089915356921893304215223440822336773327721641334294218920034249687177606236143029235548721355013026109731619548634938235973164047776858147926194713610877543874464504305163864738127763780409349788479987781636216436375431674523626992033778860089840864943678007423432496120757163899309307965777447354129405121518072970864417143299098497401861379152866198350014787155939488526417464935257363516531142753248593298569049202042165955208956309580042768406794994745377071387190684638006025347709666175511402296404771026646736247147657492703329733930603724335951293659092692591177958531074453874694763777932505313698954257036203838291248370299548325011044495132825737665072990438687725470582554638099751713449697015760559833233512120741733117114691947050751773718006217834610719732973087062443861208394517073074261912053656947533362418119872762733328940350182798320981032183630419662300049042507054757864441818465879662631438216134633708303279566954342112139859538032978619641108006023981381627700607994281456713760632109309897767159692863735792554062226761639996051199863976569005723014851658276128174940479177254106093691987534558867489185923727398254753350734064406903975131113108684678817217077453516289332393477796891075201152049789924062811469461033350828823332018381354139745309362412090017948996107711143968109008663532282972213380254600200734949779591729281712720326879800775142226845489827740137333287401728476250682916772603970660793830230271902542085488945003498854785378709149196678084660193250212106637835580595241158481987621142458530315285941322718784024922918726273344978974977554474151075429740952876055595725421198560036830843870251847303537043681919219284680124615907699399694091321173133091175644804445178745500793860982827779131360337261790503270633995374636866650272467453270492950310978171480223428286230599062256526913932313047503997136541457970004067404228302948945435383670319465006042799112076749821261412283224176662587257527784347284297452861713888464830146825743590460477049474841117779625720164691358462322345123863895307228723829643892427133525364584345839390175147741402389635823929043918792044424580441635389860834716779085213973214681572886124244439044331244604409553302446405623979775239675564353745658882760669229313174662789706042979927359345552509853080684372886660206539371419513276481796158040529883554916445209370421568744607058233471548319227823157701743818591864217824978727114830207345518054866327774642593449844929802629929685733863809563984924205545737621520740709874414907154838971720665533487729471695292998741742726938077149544836895219658685736187457886460347200437819659834771374005790421789693010377338642251711155133077707915128741912707053937162911599748659239685095241857014730132928970672389224635890642931640131759805328419807538414404656567209838634047351255297856858178761321993651062780912821165521163452810958358909496742762680473812796435932052927288838227169983474588643143321415639802268396264409457652412601495366535652497980965711189873291253429308726324246879411819534703956666870650097797599676184356500377860317654917638598591784169354268798890483837942325103584784065881525900823655795124008436221771326090520595263951563384537493482202558453516778833302257134085778401590017304587382488245476590956926334929787916278384162812187079135068258094418025223687214662183581047447145659212394083522858634576913575196450926802687630613678502981181570776950683277644207472678734049004629609535542796974503364087120986376177755083329522974423664542772384169857253183285278177804801628624675894782644208386636472665899892786050613366410733289183565717600669566612671248245203877891011294430550900561873658092197723582073777840322487937838464129673961781466663132281929265077871412890433630191360452032495632877738115432158694684243131754901218691148109176146757907561342297344087932103092692939877947431675656732217437915280876956666902902104491099393941646174624870747632530464698367593734487396910770981193064820652387127314912864031106521991801614125843412271709981742360788927430624488953312380348861040006605157317739370490968665923683950187101131546677553615036657612379021825629066857402699063040279849408853142297218169526762938445855924764722796809945883259626696664970116246985914106170913803534571048976931307726980288416667404567878573892955716279377730168170693126087742283719509245215393047329396111956193268285127913911740320972261201344017999636466200441585870715388507176295402574440946070560240663933574560803147996717395972123389887150778384771168104678550495386293193660069350468936759590566170127741715587292688197412430317548315356325499773446807560039356348651566465375364158395078294257431898002775358073839792321013939667378104748927320995736576762803957092901952583528765627432222914943874637604086043672637499822126381869939834856903546418874223083954208120373396620998063182764795261377044544398108206528979724455758506300490602425550643279068375607860130601372848315906727600093969816739924057982680646557990167090892161165697811974863845675368533503997195882887542367421353547008260683922275102090736219089279939147237260642609632592139090124764658471810471312336309063775552385606843904010783866519154873492993282832224965456465107204855964960545362648937657416412990099481358360115585602842263720502232704382384145843674889516836830697870842751198383048165261730137150841719021057585134289873633305565795904946378029273820374676064343794616534830309396239255979251211282712540017351377751050802031198809448073367994427690483327772021639517263953556427321076012984127896609555909755621520383791527902053047901413156312433794884563173905398406234364609135102348246161913240586133888306626254806638051655909918115869898739423574758756463006694898127637684536486464322190691871393477494172670300056912160366554986096799513856672127653838653567410862587943236293682314382148714895387566179322927025126141984429770080347070518008706245248673124342527247923356186660705659297984843168619366352534706098706411921189473381567340284482026012461554416286850640626067773124649149135791353333856448744253314749278730908299331232134951590202865070864260619375056287108349144593866977713108123269139404874959788976208748437413306162850968693879588990529155248503300759065391086540909467672627756347220472457776443863275538629404354157942388662534557347360662296973906033560156526280167181851944599005854108863130380254388456874488409754445324164762564291610631436226216772620726023186879455069901338600419830108602351955504181043149540430964711829657151634153025691248408187904899581079397410911413337770770885743900312556470692138740240828054752770452590568910129539890416198084089033363743001908733558810510086027957191745611125858725672670906779463655671585777112692656010158580419021532537237419412264425372225488918280582162392629060126615063534914184617497291546425024649510983719296785495996573690087978066753653276658386494637253723359973177495160335562365986745757728815796140474185481522513973538938505787992716641603493350656819449999948649937247994943042850362462986095606064330798504357281407493615622604485063560892485840210297869839770135460818387515668601235179961437285190652499615010631725670884605669468020935494508115139663654992755874660990999938720038642686724630181322670340972759610850906169935760307941707017975728525219134328753154501704363675920908953457970666239855329983594985890578840079200181422394437477994372318472088850404867676470717346976900919434670098793228360985649045501847008225267786159251935034058758840743746931411081674154817543739540986330351306566839419050881431915546415552094456220397041038150672988493654126004154105277422628338718791306017757656671726057112433350229910301594973491607343053001685222998804071025619026429421679281486587621258742772253140878098944733163814091767366193016817418149507524387925171334607313713002744500524183579778089703517140695596481185912359215360313577420733427639271231845275692482238585312586193794251159558907048085654202234799190225882466074230602120800076445219851529101625226322417642029946183597432764452381156165756817631391772851707143142195700266508691879963123880503808143232377532743451458976599111234607170653317880436759830390017970732748915740371686286669616682871635698758338056566004192545281507371453905522135325429139221886753952519745068683847064168962891924361685829267709201343921176919418599904737037023919294714502211313143376696779116856173369413436677795909839667394667259039456763781379360220154435648907826864754512041882621233586492856325745373462482448667145876413854214769787678634830634586088382254382023457826143582953765746870102743137642736707907634445703717481074498882413832791686396395461072114552684751829512112213062477778077931090996617821390476451782134268470382886698358852538682240935699471962820941138091768816001624920649022808658866101164239855630927053869237011327257272909420248526881553999006037254795064338574835759941745660527606973483799017485997232853602152730103622757521950622295392975797257830167774504566011964044057407435884061430728299061430394008337636613952134139103388471467653679373012189787307742278933182099540875321744914366392651480905043976440703643050294919583449306486643511780220326534167850675260868418051171865264795654146831192117554557844614576166580023811285894691461404535571319704233981574159962991396354076733737869491408983425489885406307866038920348718857545635353100354205875239665873451553614332141518573271728771548405049209398956223944981536906977387693746555940202101192294854063590322552654100354703464661548813618285058240451028372404163288086506023314824685096867595522592764443954194301802549561763732443080464222054387624052608419019148936433897103555988150186284612004546743051625675378318271017152370078574168795882376250820621329584992759557593480151871621045087610639699657978672543663561204738718351037299553882569048710063628166176565883821095471729714401155674814928613654338627594032024261027650194375878472549838832321992205235934740065763533069547876542714273038437079549020142099578577101571702250101164474211950885579012384952764875243420457452680613444809477600054421739658040977732433832822554986659326529417356299045121127748130372984845561268410189109249634233849799750508879933062741596885255951442720882983150228385335263441667513342690547464440074251736811322386569674073183972333450255143178196734334461077610774072811293667034208647765395589312596405511368531887474046832294532299612042650853810196600468041951117768802386489547850163158139813681990319263081492943804355751099089104503843584282122289400585607353217728603443238337838136814231696095765339662041223584691306058138445004803440322365789953577274041019659415613580375682976389400096052795618582372268983106650461348176295244414682019485483609072516083776068717827175618022264685488545131497807286073402279438019749044567753845075587196912624576312862466629359374924751196461446819292936438580028393691325753223431241925355777423018494462246118592146512741324640252988095473415814595705212290415624879782796116663204624106046717536319541849680461072494533875682585775307054791191271435482845244810441145948685359129399516054248611005205499231635119253458165767604336928346894461439293596108847582002791683121790021422570712363022782673426881018054393259673179231160739693985562870177788564756149971683392565013760627748737107868688422430656738187639498001382114876969242996905862230948388546279298699827322680379142195521400432290211075992194036594856540337201344467105016981759898497031088692374177777336787859593462432378433290173916070590970164518585197222780549346828643038656653714877686924128459634040851157107390223997488182950759126245986092804798609101758222789441387365754883609419685995775446101088643215303684664853540488095039502855532283395883514693126947972786821162041669262236765983711437699345988263826007659835946803231996324304187771283348785335213821743139496849555855894771100189693088487577931874736724662231663060253814134587022496673900091101996138492042637021902161691879765483007343872335332804313852794104091915687454794412744664826163915523842858771610992728982742604853499909822652140035968896274183577775199078366167929525732037159939986610554784791404751519028111999522519918598434674786353680032389480752600781922551244608379647307489137509757805563649089159360892269197679292646843963917935148167467281397518071000572716280955733345725070713761662467773780964118995059661885111654279862857967099377162613649684633688660013033758552016120920323104461679268423663533078534075906353209746137258755175850058078170668497043234641328322763590143838789132425342586471149399531337287355056957624485118431672568383782810246952023675957855465090171302426028576142700758766510872084647479543825666021170582080746420471754302774148340590004052621565696943555129013086529823384985392085664245395231581247497899026973092646957967711808736419936790970477180208214043784772414597940291294016504894423234268150432051294824269624808178714364909924297020176289257188009020887683782719896731842239450417497994839628328486215276837433537013232009532000030730853705225482309943639764888983476062184416522505882351276599737268381209638660006481499338523044632308228408362217995670857334325301706788195251105951604905700534242265083651325219296000673471470750789129824178052556158484376024106734205197102224081529872046089823261797897409323276447828860018584966206661318700154874718862369900052197340845907142336342113635185135967194596003520611952527281876572435001485573107611577134865723480287947974525004597379225909866796274924755735440758012801888877435905250869320089533673437920102087796873058519027658466993445979926235411321850210332665107223259131645865584297953431414708306599641827832506102685131166819741301996594138906917538639492230215699675067090999069634185879709004231795030571730790898547065878903578517672005466955649478205086309157424933644793058369732832157167245028001777199010137551443084380266836632395386406928761583315659748558757151734821517796322765710324698404545394796570416425343659912432544040855902625542199879579388071984838172184377500289601675365147016795105187909390391575451379896860605156307258769816034412295793726589892193242427398493640847500637823878352813795117852704262340379871053553233855669786341352182507272962758872103030808167556707259894720517656391612255662046186433983841856864138498057876397579980733293514203781944617549970856968334306272439396226762955492252494299444945405467471760019582128506861341962237897022476045511526779737936809566805017612518706563715981423373714352654247222669467152573702411376032729799543825111356344700447772555373909111085762417096271200440932158148760741232155867061607007519532227721123512463233831982663421141944684560865606630753100243424108462978320492032177866308714482751896340758933223300259004518257991996831194838326869902857825240246258743398800188418536086733349767778204808023505213768422622158500696037472027371079237445842587220586929399166510016804532909988886684568458203792393954388948033101072090061305184541255096153012369334461151908001317229229292503640092500197405884111064462681985048436397787309090000118947683870378619424980199482146065369644892168880798645507715768217502154283767032634711380695212254257296304445117352173594353796216247522314929261148956898636539403848541448490836630600783549938987060259551133721910303723268581433840543977521616449754241998969844449740332307964697622468111119702545402628766362492770310833366334731272780975946847328762622069165533274643647978693305328313665357170100892022263772305500024436683637368830638138666138664446024077332916736428607668894748365250688328547630505643355103294850873378324254986650312314602134365692626169900798188136810312555104313679452954190163596784860403831180608870294747486324844912215982080991144805054481858744215667714472687492229576203934762576415703927875568900155140367222860962562962731032378298703955055467816999349372828325697558583421337220045547642473414550481765547782465696783627991644078040204983174651590162049665776538118461959180831636237913468216540543671470545537701459522445985493846118527371090591487890201665389819470985983612890880976397479845385440490632850107086151515232110447113949380529593579524963377126035742897418618979804565549709201911371884058312288067012243311489017437840487458032091812332480846116956886676017574249543762901734086612597092273374935140698924512043545053634307798728401514398499283238162849785665956251342611769117478545716555399874977948495010123357234535811766329815942230574992065845633597753072048782921905492344641899113412839679375657086560338781089456310018279682138541926138366688398148094296379237085673289533052401751370591993161842630398335011495685174765542283847111157362345272115717543300798351552063898160608130866794682310747314847152869636373591506120316670293195106739702330579653465376949473575426925022118551070126864502865126422152926058415408714785607977210127394459639388540071977820926044994415808224318612329715422744099372333718367757807071966749001136223845577667917055537472854896237567307145539111252495308550436228895245498044510989274551046689906371565463114509091305967188147300619540296731745430330503424587932505770116251226503510741014847748001594584231110561217274023888250550261321476389553398403154983310985413293641818036286609518662459693879973057691213387316383959834892638312523893180996833439467344951286899531800053911869284358883824314479974179824678437892357976321984961947594964443657034439612342402762024382693143232297697604959032720140247930431853436578084188229662454811189486666462153975901475213146561420045329035135602107991704149288908376906455025778946530647024554529473790393482829483228756983788311523624403468690046346160378812009657961964413429976224981256400516137029954160462108554349848243391737625887415138551875083303452948831037022306225163065658671726938590239339225605572700934908153032268537986879472951249021738923234469104368208320659541746362396629053473438558042848716648139243853948502160619236261072694111413023072999077508450359484977808627994752898288314129525404179927872650829375882572136237210804918497836372453020794053436887825247927046080736361351144400913886450934782366936552436233021336993880706220631785451030812219376438604977234343187031025726122383625724852516268750790986903559379143391467688607231400826520874916312246784849492282669280862038827572988340685599526882434843092365265098130445951758411998479688980902940070809436120937347582746234441698091025825117135444619432501167253182892608949656651551885168434119030649057336746049918679217664501691037267088828543632326503740539644744819306027985532576173640780650622756713459658273164557264986813444358177795129172615337333332530278887909834201988281110350191264736072462448804071027539469510024475823781770059354152785389534455387297920250188130016529611662406497181474316577631482901128346661913656955812579245914863130605831260016235124991428653136301433853340059466918150034716923568599972138987027653182041445264702311260063956093435993434936664967564085945155574711006833494510088423190778004412100708295123398068893564831519594543810610220455390549516612343654552269756242484895442178687225559438994923390236533401964458498640501405060840862976491325823074182851559772412281348217389752328756257044541977966479086713715959905349190555705052070605281107311703432208291070593294652152803420846482930885765276484162668147900746818335504391081712566655775212111907618983282450921153589587434218034430202021518323782083198571295434279095878566822983982466035386139227047779956168488247665621436055129015120838876382346007311533436192908730120114584191155151961863299065458840400765608239057465717443034464214951393414027585446252345872325099397252565986481366264449859532181886605114702426751696798716799617451865192545048477483884779302924968303054938939192828281587959659092402077807983317651720854831899392791374794338041101553762425309303389078745106786280269353403148635681904181848014520866741083506116473567425809099857590767238399929457110709135571767023591920818140187524796714017114615947735722857340611670884822637993531076771280278936942143857902182479683526100503269407459056059962380166531999001891384369047146800359541501192302109020125530959813463364405253187924598454812000877168431575872109330843393090458453666241592340535975243938381517110157895570183016744990463075092064075318663814119221926327300144268314712312493797967658135439073192117266152797029078094145332000496046089640892413764431664635236576482270686495410614023434882716222454023110136482872649861429979010348215256842171301503615092070258183320036520192167149333532092722484501405081617533846495734479296666958330263806159900218488597110691269381742026621534769584100003076654412340203850868375555078743802042123682772841779745085927436020383737593224430289199412706930836108711384713930792274695503087519229693088678622093629294703318117493190385339928552710773912733566405769948182261466130500773918983297055851781742269502825770091334979709309097249101408750760093855498418570694782948612578358913600747091887926155258397480655334849012697985913416273981413333026307483548797322064371936878489064119516956485353089825458531345478726429076995230907869194426529981922820755095000330711768365164106248253350621011940262691675456982279764724849517377840588471170933581317548588970368138993706853230195629973143595195442328068783634464363691870618870743386766323470745909368323708715318131972528750425494865177426304395008908439862074131676342322673635268691443369973855841073699192261767141577197810222028055941522527879965152108987852347660131008833199232630720696608217389083380524608116074170291991265431592899769201409512841849368797194411076944302313188938719199424932270326586440195450673783147155294715989993335709677832967488214858735172585090078214177329134131195848464461003191198321445974202727451889877753740338958161075369652321115486705533789832205303903041272245358910963409074949986600935264073739196001695386485763289063966994059300559274379680285967943323361520524563341610928026827210211303511665059582151326642650835016616548869094295678780761090541752595916248325241639096443252807171535497806665916074894701242961752788157776084180394331052124556253662756876367066035391021172863609962414444671880595122991199168103093306308605930582544807640886207904187906159064289211504975633131608585705633913830336898752118840725759171225872665021347471895992549445847340924840894524728644505648842044593811461866332730912665786813221456470452916368507566655624723960672241312586568559246851871308296812632061081302852082826447878920720883511047961156540768448641976391870300147159307870152382249390695758737203918915210562034374259893884877906955644803510126445501436756267845239312328033002564832692805643666227728003921887637615103073008230063301398817907920253869264516477194848615628189388533246270163358280014591591271305187383656817355940946046632384904162409092843135391518218718872153745912182835163744756725713099218116760501805723749688171981622853080715767819067745476244780550511747108221292043592831736458983878509092648302161162513518909488990689068726159871611651548218509819722995012247250386474413545705664726266350485276423460659962313915648185414324279455379304112409468956890349915183827051797694137187842646374770784629247771167088112569675625625125428169613192386441537153586684311750069543611587952554930672961879941878967497362362970733583287035082957648097402501937606402104564801963372065657076112709999572836219697709344619775438917099274852574664595863219502579453475948637899798412475837203071362053996379998349248761688721393500529085571892707903024356247916074045949833982296607279357532460895614393213418796916284566851518761614175198389572025038285334234332181423652556332922410796371455115280305505976556454789969378822041369460667013341409740672892347019914274705031646830251976640569356837453917667419500778483473428260972416941601431666448342762765159537555537823502117291492610224774172077301945356212033761434768643597856945839944694816522687210470420010337550658495830845420808279872564198228701369884017519252826189084689731420861106559392644519237848714913911773410896027855075879676420974195916469530497834869115346186416602082231754796412063409832498762280361993911398485452481113882587259087654923187590256661077802581269675751240473145545893570367474663941743757327254459896286450803341834347116120797375350050698352631089555613657718962823656047111293898934536254055305556243758122922144125160104078459762980809616132010817325866554696407733487614329153136650359734690348515967112026824017552836034333373142785960595492275459024264689917417024644138461644853279126986866742862289175182306994082701124066956980605678352762921997041338664952673443657869188150833124048439781106005568125850145189988869046796178615660550643261406510880870001222581254002801373328845974780023825659907824473045269893894373897964809774891983699662126206931701671159604973006769773446383175219341263644541364991307886984537467870622561014347526815902148193034994908948148310072352728456306961606190861526403496627347397800086390562468005006149615991722647656256528316841056202424543233725404180686084565124428778282128068837959628604147449212365061280585998271945650700453384266778781897456322208324907255536371067468378789687122335300927741012925413872893884280518942260689994208216676121725901865459312132162308263827935089033471459219460617412797107524653662815402011319440730307353755996703022606973087666986176464914626216196963365671327186203162440427347443782165736676246831282969408855509520693655135198424295636709086341387242699050230787688417894948574560479057110008943424072235967335452406522666427642803514879325860072645588864731448172703142973042715009031004784595810469157696610904101707593340603564727772720505872159252587924063874924072093261701708864782423620821479024087740928412062513992064212191513006704917971851620800924181111619633520431813113739409757746523355776870993993870886612133823256060084246221771880247613275038449645164273289087936189540435100207441388750504248804008834523574437744498335903818883901223265633202580832410509416644914765567217825285523054885095461947004327389603424601622400486841537362291712238842226087561475283610729361291484245977139123268706013075846012610577120465641386945627575050951196789386212444613165551937572616150805150765155462040996325995545235503695489491473692510449678769199214327419342098367401499508477925016503162509505531401568173037407490931188330943335043545886391488902615511679164098397402194158064892203798988307614321558354145159481803618025214409728802618823257829359278546299945835201495669026209661484160106287549583424704115192127566700371448898641066562009312778134381665994357674827592768551498602866664592253382017613637549973756662487279825724032703444789240423117715886553409571821014952579316540927720778732443369390243054698163156317023158389632182208156862981088368263232097714638098023026388085803334511403132399919665570627248845605602763775590510093663127803317391115412404742094393820435296281740314079182025560907408508453622739692857044280549848897615466913279193338565741652524783075076140346336489001620953538269278680875820832247125510565832533969681919685580860116349122305729326676316090532912108017258032912606763361029931353134202115356576086778927742440930579239257786331211839901465263801891157567076013672180718494181859966865500164400524931937634274582936698777742991467038731993118507150489049977259850683222022104099827590561764601525606686545177788131083841967098286518608809005743083228839959434826246610203582487633695512196495187379780472314870157602636901070997770768734771446993935215654831879506650545559744894056377883281050901342181190163249356707330969449931144065366809687515597258331799383080797659142643250925033080686065135402921828653675075131288407011345852472404551099126736800908363888636286910982787205588861458131267541463710058321332042062656619465671985524526465436208999310509121461834597829606208484284608480380891100359103079822912806293830307849804971105885838187451910706087039969005993359697209986734405652128727102945631309302420365090693387006621565159187132548597946305204269243389050283643062678299535283913174741934422795794208959483206980827572637440666098495826999173634644461074113441826148300710219309095634328733947879079295749064669261148749767626362469628544138517249146668715297215627029616751050299976140155263367931318726034569982065575980827813044445637755953990693082265173192547151166281693026351258933769200753142816888879647674321199518037410127667877646005186718401520555250871299232687562714689235273403120338250426112933888077133353103778460525927837421171575381639939005859772453697237171794208367542064434227092461064402538079870408633446657555050266680750170768433415439427293613992063296447443258681962883945838913311127959515249891610449722230155970430891146099087925632751670095957700627497923668594842049230646563341119948357773687701529049370481822549769304287874911789792932796586797718326845236381567909728681372006301223846866378526969304486038204024120539104812748390527855941036260446554501729412736998285747272672085314885842489994501242393423529234015384205536565476482693745781107667798108053462666083044692348663019662853654984526887744049222422040614206878390222931145534381637932091095956194389434112893516514149565462361002446600724747382162258646820901563694072553811677045768770181273357724617117972836663916301076240763992718565247051449764828543143630964550523499434399986548240945226897294101718460122268281025811768667644171933915287983209594406385555417016273435710306426586349404271157099455490635568851281523456267944869966316371241452506067091262662619404642279282053797188011137301918738207428200229949794990074290435269804982058949428648991193550193215911613481223338104329552223296005163695232670083053432308695040306949772942021168508062897702593097283343898857814881768765849982236806935837365022887182019496103660050335521845119704357205927838142222772794472289645310365394403510488146905263654420351294761514011889559873998632163674449223315181691277498367201600649800841442940531080692740244919208406296707850766050252295324140738486762963982795765210235905487510622292689097647182990126963552914127864791992175691053012574465717622703167184781613047006180944546085477082603381167479540852996966353708225120502536680653370232437803373589500223852557102569226692797724582880515693512323972761112609702552119138483589574042454172271206835030148623339101418783318156520410083836685419285494255031994175187560206438495209770982339988172288645927526103183309170380240542554762356453361321608174990840288684825637031050176131410165183110942484328566929364536136584530267156578851719684006670301442152490194164434744324534072276954467528108892404258095424508603707059974745329022873097002407112694988428326971264212530225651053068596541137168480112280196436565699925958031425878327706703269911087342023930692499550617554051252210936636658618811366881934861890700597151860438671070884233888578920830755755692675010724169209996610967827547013495889280706574226875843979227312734171476205834970212148834882232550511214539867103650619675269565226989635266780509022581625565192260059410310162560205860142715790297682536056048525893208533594799006437048481276466504850490572209217673964779774821203105418997904895069687124668074853719102003704022851058966060884348020675891531828729196480474392192027438301199376318429507155181252497949412127334480371604723699145494692011462576199932522829241061298522044606270284888929354821260686657483441183311490422490805235417597296529460569843534627924784959177336260338612756694344462654556688516760720261025558353090289396962641538906077520075481937738398059315131711500737892209432556926192404119126145726690455717367370841369080702652835553724855738545650205596842785107841152230993916118366129653939694217816268758959142130684679765260895590054428917185380131617066184675652964958560471389881121476706392195809947976310258503868941297389294012549820804147684335684058722758713311176129979447462854266839460170080170539606003720816416791518572481510416525155008432771057559912601607335634094334117288742996730344697165695732137560115710257370653756916302465725948842773194749078489823734704596402781559042666321732904611141559045415200699844977084717774824973517573995067312908809100210802806439128579547386236433742421177739746839167260216630022139536631157584932781479841531821469880655403608487361517746086499431079445664011943381370592422339995975992697877819030337635490691374225909646976346145898385041738098582228566260805297351515721762094938522975549086179477893292708563882481462831610615094972656218343678836897872785850962647710490455937635871764522936193247734884601750240854237386441009483275227619254416323681695438132610261274456948398285153498751390170124609512054527944899085171519039161674832493357697396569908275197878358201573980971195321202176689405378050222302553798191404934985131313710164457632477686685160556464631407938129084772694405160107690934926611240277843225144513909780240153466456819701987289384900297057437681934867456287611019854186846287542528508014493866127840276548759117612357294454084782954379454814122071608519914578891739410582990222382372847589279240260320008797952276061606612951982885173649412650285844104981991615365882417768790604836215499620006735723198302996113387152235832395365291924458677730660138480322348286263897112613679298321368162585473880256477784245495802609313634962388518858984381914092848475829868480886874779912293731335671118423524912261009159129542395179113765570908507474589053186666765968172749116299644023152926808317133501628459693462811848759102588325947500306871645393380485599594468710783325531190543168424532291070838835046701493781042070000452730095033519013672796730972916877222349687273768275386278668782507055808007494849738509842091778014844571753167049345325088283791429765076952936069076440995398653617377350650111601854832360565873291315179153382414206082347839004206497951507399965609719845533584629697690139315297383140139285539112319750571324785390522181594888592966165501816410414279626250587102031390947037319157238609624986990482738541944800897779788337666985331773984842162472405852644040347354302929896777736088519155661206139710256210697156378735636714853500193113801459312437073533240579919834894558561633864908485769852086563477100925615027016063404723024674080200583338367137044349762580622750880029954974747502765931388036923641728176539162846977537943765900675984617373987453618125874869909693483042193746002809645436197468686919379149025391092276915430231919361245582608560232281964930909078837036206697458040101099065438869274819641081899244764496613272016808900202109255020224436221044923845133052327846875521651692622603700608789785744614809621868565156668926497550446533812427747114348583631675795676478250186793231338056819017040548570473881487547600130441638167943839804387879814357207811454566092186420419299634160925323273669169972738480893486064509171192472990500065268044821847003905389227567925403329883830394007780683275992346752532970730227022363381575051121425794961081633446167506650736045469418820393526289947380482017214497321408151814392856678514321635428372559590028703958715426065266972256533256907982987915022642446462881640940920812280013013686106912523323375305818799210513332690261698423885829759545724127990900203663769238382365471654262897811152317910667137791170594456024774039288876104665581774401438161268074978140920162175764670546680473162704925911612332840322707087902616348774533170431277563156415673798544755997713946808423899627798905338396025304700222738629349544135715319967323960413211440899952825967297299485969118751707229926288996984148294878458568883312605880713552223185391316826274038864181868478270067298148181271163587016336512900244354907473845937844777530342353404848290205361678875272048398396500089446168297464240792395518462753040087900294269052276743102651699343465489513132176928038477065888536666059504640914917225408060900659738220967947300815072700017458971398871414706354433064461780340494650617495757295580715195769965409684670875076576633493426470197901703379080026827360915850533549743454273801982478050304479921383569341340842070320570606932893700595877125962099944656119163976568709371113653043667351776315240445072405927112342500863207410518998132228123210475338974084385057744001322077810188594491641747726175154913341254033073137815604807398598008188726613549138876442182703832445226084200973752803301273350306131083610098906123589900633239030830363887414590596463584843212890403498978700352681123333975571861416352747463635423672684220311682893912188383233747991104245733993495591106266506717873964229408672230102813259370585078059083048342766631871049402095339325167142550508537792928420235311308723753213929336730474658454233599976870985154077018254058703016521237003749091465999756068795216871893475116060862893837404328502950930696150254228142228822696147882658003994934905227032411904093533202357516553514625027521837191231569996739156662240108584795248084738773520571969668455627389677654724435719351090525483333009781463807440466712754460991455090438601459814610479290440673860470869793623858809170093508636327683979068938049435981949513197542816727435093193184709066476012198215161109711076733431736732089824307880079611227070179751520634013844905797166274113534828331883153868769982514557611047353490764012152278158532882187737024656928848483516939909133946050080340322647705342321053767004982163818394877505197926103111073823184061413058395707754034196654865361104632819579701580116652416542424367828991929595926951029273031087386137806076650388594946513326139188813529727576139438580318527925649885942046313724733088402527081308034273869421932853589838147700287350892396113247348646834198215713116921949430556383231716702357432773732819556866245307325163802039746952731555509362600456691622617200157274864222254218477558456078965195481939745700259924220326642820325529204842472193285554857590689980975565313115210769315060645741177404349522388940854296652413741544269861773154396945800872315118290241536106730545665891554509199605679689485730821354902824324692236938298505546938542037736114057945997745369629467747832213497281361944692979113912367464440932138236014271236347824100041277873979049706996862760329165252124004812647913721285142033161139165409191555554347269045388707055033347476873617885732746237542538079908587163886376343811183670490032611576670505375245535440712392621118651922987558344517414766002518095364216294353218702426104191070860142887527636344117900466464380044840205937133614067062870984004988080382633653233037902065092381133536023368591135411307279177924851670484640233135190922624757319898441458504927789082182084636023092963312764449890746694806458318775881683108091485996755874037037363948542274503664971988642029460507861559063517586762237489710611268013957655553971018758993227700942739828635743399287739615590485379880802596893830935508553098883865926320937570844361390250717860203723047282670096307150821655430258194127885382398461362385735130609985479766249676185801637169609206424085146572800754840104041275237692270381407709428202159136506231534466798962570908597713270737118781297716572160967711446461560183778485247794816010503837267621718514954764568994614530403911541788498270240740789488536234962840050085693709383665990609891885012362260933528626700746019785683340761120022074325642260934713731401453693828052565576615837588183585727353058786808874474266914818508505184766127020262798955981924347958432276572904086443564553497325682056301299695073655727278604218119199492823288297151309588824797408028249323090560087519054970811791194922528492583648766279725017683217557665875197819451720365081410098220937317453396934953308833602581216676418644498185431451289015105314382518667061784776522856852811149545808809655430137524564487918609657441796237007106669673062545172806027570808023246229926930177995946931341453241368887544357321976668522940123668762341487720636485939250568245810271422742298573940016208578182808131723204785143412883541533086965036999572862450075228893116924754969395839004969763229869674189316179482974480692244931990602964782110478154164706010399663497180512136029960040161768422459486944376517924915278295946250097030095093467449174197503285701865179253610577052939692793781665545469734077877367023652487298945790093844577992430710964150459098625441690825649788829804851948186410137936230644982009157806625553468389810651756893095463558235152647419994629774192526481592226589899202149445689336089208645793112183018726535866770315957736010026733376699659901977962228438483124473319542779516486214323431244910672517707532128333575690795070725678938465627941518368695521315834741456073685686002746373026675132584779279169782978984919583343655058500298754708496387965289794790822618154476915193364261834157403494834725986444978513670440601914193000247211571638023911645631489227873456178755578864787702914059669613392947932989670540878995447386648276355745364593778733398265856800767757683810698966384002268679559823289732456029761136525687843953517524551050544613476504695449544454764336939498528305082555641707869228786439294051374583285766026449787442749825546063936813375937402853748523716069155762127053217843179643751204560020358055085942375184300943070863675539640916151144353313189233318124714784108316899412370113431292819327543434096288197214630330373190901379484822562156579821041425255508381569484833693015015747165061384273933113985184514772576976148620559253685530873787872792966745273441234378699427090502851703940028639197395022838010935045230465318235637081576486121958355774666240830338014575454100898199389136877063404234085137196707560890334537136203041343962105905001980635986384718226913870094543890298708185577425718396773919937802669260993569562468191190185744200363639551836632423767137502441475183538651083721997368837043632939187739581717674171644654824046228035345371018247849139707838663461978386696041967104257171180646796715175461415589953346278734567162090096699181822376076987210235621741949060380230697866269309261208769195394512408605047560891906993296720111540719776062324479740308417716965953859811622936405137065478640751865320220607028463731220368501531640962376294638029011434441691881038687434207239348683512864750988949027885596185291720363608832103266303080246175025390733355916490009085914932826885097746783618820810451048345700313030007745824401724189185587937185869206669353266540993393846889188039665890874578407437687888912284204287838188003668738350226779486654635628630349157963649058644861210097733442968869930552215363347159003379419220914791487646863083801785486129884250544469197011066243035872613021743373252127749804940368125332503696822722892681168002095626348142076450257083469678324797779624945437045280217884397187652339550375582903093986745493935874910065209041679816055662833287803808187843823115088719460450455407645688773352389468938635516765660955362200065726211104632249012661155443951290916362461132070986338916305100348466582189600467187884813498589863422271373612265379567761562759995133335725861771497983060282693298464455775182409783243387052860843937163740261314639190471754763921261841379063669331395051542066597507789340635510955032368689463604153757192530690441137555483664660920442204897136099513477192167616864803179806175295416787629611220480311983522674058412867216812710555102266384699071454900574708064478441434200582754635380003362418328933496818873040269624756728328019978397782495989646599601543560586828423607428659023650249586495496251517023104893627496113746089221723936220045403206622026960883429372474614356657648773290341674196342432514541087509577532773747902040213192380338458282382185498121835232446571841895449067870080445784049424359208608844353038146207297520709329670830947929170939767089487647570158226865424713176838832278617258505712441001718260739674016615069841390297790867577310818029397332589138345837868441935747159110985065638555695603513873190903782064932450785534436746937459607795884087573664134935815787897265684260352319054518443101739683257703405424234096732667870150316527376036358833572558646871262386526968169493174141936323168696136281481007287742650590872052058238731355667003663911704844800673069742467738221358042335575261094405569689830899345247743364120172946621807750025146766338786246856033512544686375269710126431988396942502015728140728448217053187620634965803233084130746426264554874224729408919891721612894588746316288471871636112295456076170688415882142954914371703063717630847558482108244317648371666491225441667295700096939449339262536987935790184884965707264468590784370995833120749973488854181007353378429882353920417095059699062506643133638545399767743464021687451153793266590418193805710201820714399756349817876812779745187339415919403675992815302322258716079939138076013796023001911011118150196311071116797063267729756250314773670397548718333268735250017806777798011495166309674154461850814333970684523832590678606419042786185450834714692926696981199843236040582247153264857368077726251952556907816274852106100730392979004809126125856160913738642119273305664834294984898698962973347621433316619166951699782974803379137257666224712787245511369498726328510742313740530286094002088791470224145330682774055174646669214806524261932883376693282984577868200474906002152244163314492210258421684458124872388234540089950331498224660990777638726193917924972234753226523404798112148983987085802463482044405526023587908108006412071162815308402630997757614352389819032002479348799463328226224839319513674974917149872536239390290768549665032656314691260154406408283595363510809989676187309143369993195110498209260281726297709026635047657518986933322403917839088329619665498598713454771836205554671057615601353189312294783006460066506883202294474298122981156774305464718001729353936831341843938990495960012861844658155203037469333525928989146600372068533831939039640038604030434361965119277209333775252128569065771030224238817486728311805942786587052413834174979431254458955601409427195065013115233966515812265800288951847718064308379298758885951460175685354188123505612675970576339939625705221982175294987464888117129846901479468967308349182808465847507040127986752054920408778789238933490490509678281749037542681904612166789816148414323875999007578732267505398152901114618429415673188334467996953911222995816208139396878700351564454480550641716684338547600514477983845021093867990857634831706212661967379848745676992894063536505032523968728026145690774292845354019710749525538407473793692419958984319119726272615902682676281748843781732733849421202327912695031504812133515265356166325268990936549599128976879128441714907592694635277886981366488541438391512540384456579060711297625308005733732802736484783369580159565142024275915719698916596777034671223512452393784736958315465453749756478188810827749872214141547493916011695879480674577080585457188538507215808574809811260019445406928971730289353066272403320454170177494672429413279344405343195470122280429762072023053955323521135160315985036714094127423625826885804525165250103746006741680106547930061845747150478703143305947899902727234144891695707011621399477311612767811311148780219047454506056333002220114211913793772666621818943247183324533836927170451934727723832210942213722023169192017845406557819817030972067476817729552942609947291517573440642698409708723027663694658524721904484058349309076501832545604050220505170847302176715663912243567647976081490035322370403294955553763883156054647868166831969350716885056062710355236226614155402678932475851006462986687427014627232825386155023960233420762827206437499423744041838168201434833122383536190703836372987960460941604270525172079545365522283095601090120989206685860374674967496912517072747427691647315199560771859782970811412844055386652234806725596024654745725019914502948023889783207105531505524508919320028606100354770009704440487442552333495084379702497174941255458544305834473214020788024077720807068338220118840699814880359028621879913838651284112868088077481339442823313842278506004042845409996605254162825024035871735789186810753029398924285271810018260089909300380773936253015232302495470705433676751594966354573841319765159904727591257061177722475427385300417195962438844045273374609173017835658087544200839582290709906301182706126056958083235908454312599993298520900790932923238804288998584826130329821530117872759349815356565376647990277677806030001713827217751738841047338372519320046880403472186879999652411812502740871450780341661202220154880334532092023406140181919979083628919465905480164432674017307347199401519243637224563437239745455611629698974235758012138196957520583708179994510630523771388034172256270379443946916195208665119613841328705548389343854637964371179969046219549005070857990556860518962773379686347621247502597734434701959944821049750242072300630683425559504115856782547640864702469731292984915141423175626826158805542652348337494694431402621112200249949497984193383931354723240226032903670115108539924582994814783745552654420728765389458551524797802533546518454440542386666526730397174560091163405911439289471936416974379260533308831690206454812088671077139079937253539747067987596131723965333802185398221868477365404668224576726404494802299099075742980893649359190101263805934668806457490211923683774594781085148591014288270003223446655591277998460969227513218510789077193419994874927844299618910450838911040345865198506920512536280518634906194360929073399539014045746283650118917652302031910514727569787121707483480395641397838731256739831764713694254546751661847329859765751632809912917532081808515208739471655624938423381310761125338674948285814740487939456261456805049624095550325406817082249066246434492111452693318279574945800167689935753352299166201587422554961773566340026488226971877656662917661580359081275691924010786420072674495503590329225279391706862627202130012600692676110237213690303215876416925493451192903986820574738626036891258147301324281315741493515998607574099959402808570490185852601456584186641715207497863998187734061526494686889161252135834722201526754944814570105395469952192183636541516533084794378902158705708269567416360045965171840482833021090246807486200982860549240888130386069646837292662122577708488209405226003417740740493824363237441009473996943671962776822698440934685140694597368708976437716781034596231659648382740757914226985468509002187831026063778264175220335104718748587806415422887047108144283475808092191791355294522824032480741191214061530091095797313688390830030670864184300306672574166788003727133172516816375364628054737360460284281504855640156706537124592005845426080207689251454011970971428259471546870666825943030295881395467657737082764759879132531923185198980806576991225912313669856319760762968648922874278163305628403220924812061105139686384639792602314818974316325022722776275893188050956356053317319744473017387880429302948569221479967035809642722293919211919572499423994535465430501031781563731955708635534534125514247747592413492591475518889692045486661332063443326804528655151925809379001560864528146417825472703895657435543145792089175423158581636594764101687496587843068217572611709283685004228375158676263674680543388409883307764607031130353918367640261216520898942870980066069727954748194545549196158114403011250998167767695601688567210003265122424012216956563472702591607652092867421767859476849136507788784714206922175636044678897914150063539284048812057313393089280423152166161581625907332307712816293411182985127337470036912151609314555881567006004698579443463712971644435081613979211784225196361174333292540145160109151350785080172297907227474239460508527069500370450014294646914516692456361559654711172967788588037579606689162759065339921012523205192521761936014517581630903432187011778511473099479119226470401594362021751810276318411678777089758014960924279020710686640329478537633421416850242903904887948008114865757012045877097847737994418278684714405860297285081997943374880443950591684833582489904529429118962582446998477142516667046392567797403911614880059326030866358270451501502201542617802940237005228794491122698827360318837407044844666121671025527261100099250816334342619786192706924977895500699705814254451308475287087741222854615515850302193889704772933021523601439064491545483649150908500319963361125143881876031176477767642526553354644264108669523883283077696587326014934256381194186361041632105305381947297596840549472331225372862685898254886568197322574230342578713179559528525857844989654245144638311134810378990020525173883759565617678179674191255218493706460898703509315274601781727795290160590399115186955530245521044640048035700494492440537469880742535027029788551273424594662255115515478957312193063917861592586187449683708817282592500962809818928519876002821669620985825860956263064100086397250824372685171945310007040113107098352485411028130326899853625358820919537214436129246673909446009436775939422664186008683563929278177020843707982091696832990920808075004633085230555974194240962155935138123568168143410295090655500478972267318501717849099426932821968074470052441272058119048937464196740793782338970688061778526423394286589743170291964860949052212116187383333788287151095565331444556719253081122504234888501909512370865741904680660897485244545227945564427411243007964662096405294364734826078287997456665550413779427967238235913588410807537386532737809312618429440035948661813884599065797771946975827738431517604548761545690007943207273442184555100072652818318098025348549472616921711705518089135789739064374517307912120243657809127445215428813349231581393391955962758076041105335945320218742959352303826882623307586462150224651927691905408029544246651089690499502262795704354091290013216679966655098844581974122887293090125387737350888820853724397328917984618214681325452708102959149088004245747044896871055324159845341260569730967338604728245647454034341042850138077546587629794269765202973839560488784371657682251067775825650041895934559462827805497745395813164312681520140765097564333674292950833409701840307526316130334911351364426463788952468154935458893836221774173911360878994584457783510837811898424300728628147179476733330530133002987143684671915289803106301725867495639045570825077598799887924609745988570060644421314056187019861948799796373521624565724779792326298146196568446697914537238843869234037100474767951809681871065219387242504307800089597320648475617055007730952568316942090488854746749158314359552221486142984771956968801037451052876359814431210322392142616863779169086429987512150003802289310375257336310964511756813308782498920762329774787420043860346287344437013350408273200400262323686984902164449361975122361876441737585859459770724951882733436743980122305739939443819174289483442393397400355935364833122061176961338037218614266891154984155331719593921853442743249348506525836638337850676896950286242219054223907370851014762819324652666201328271351495623526168570318140996124423917251008076271445549375544525744921638453256910349246914817177281876087481584313360371339733817714814342087089427526338582265668301166240360004840672176090470272086160270172295267045942561586521340480242292150921953374184250742361357568340194547910791976640986508664296822427788286103075443261715390610008980957973442707905845517870984567741854603448698622220944082204827482029006463933328938605503848183914087969623440937739806047027844031226973603810708359843967769743680241041613716085278622265996777046614844276999176824892815863407653130495187901485269620686072979539203702519026972252561126386873135042011037709168183620014281937320776655266163611293638105222162977321435619408594267185104794356590219504390039221210119215183967712073390310249650655908551924363574376534408266405517908773270128686496519949683796440144180989628851551181100273750008489182657709694129563487115335087130112793711699139086311509741931272640899233235176110597568340794892454994582548941631131586285418294747792744561799060336995003073696367304422055572839020814065655786195566802656241039233212100290671032622401469126104876452154170572915624678890853073867834065425318974904257657201958376163490253502161483149234100731130965709840920385174074226541135560858917294535483212820968102088053340913271447580478400475501137126068647508585050211552828104575907640196104198497546383574957753290201980032612220863205951005544548321509363436227389449280986740379433655827862005343694442065267112188494776322476166385973037540675690260861525744100687115376185900577877518694980963258811184214991512962526507329397205039368051974155100125538727195176341788695253507266553493845458547269729682796223528813039195630271958831290119091844451033827513014838322817836790029509718183892878835074284649613860639167784533042732808681706898449259303332943657029548434915901958446968239719396678854380601964566994785271567153933163818323410933786632238597510621977583550425629291768640203737912110831378341570947450299935967980479371772220513556880056852937627295087793090040692129084491929231309644837983911697722050716803012817355390978818008494833555619363573342287941681497852086390488580881378303843341772070385699494850392978510495893849811855968222124218697086420774789663773636612218416920739799546420589823039765873297515863905853220283572828283906436139557140823839253974993030714557357650609527036358350737436677226202560722071031274703852922873697960176690196736801766562704075152615758398550410351664094929094888643004459532824987923176326789097464737063015426436241396855134838182622909100933431214672989652366405308690146415926404792204987591200048831630743512230014987073166697279750127072710825672998362642382446554998324313069460838709779099488245483846110877240149201291863761112387789105191584087390312867353091785576061755350275599841687202519892287082489284421441830912768739648299157495076872303418561050208568501211399236811417564843517572424403337495222881090229726985650961651290946127744422960768662953660444092130739191967271720464163896902351918008415382764345927438898706597217322614512847404698463345796066506825092179862499954385316891559519714044798425138236899293717050927489542115636389188729968030605742374784513021301399822335221244743388023125106367477193810128541776815716220288057274704717061838145769425730400724337604146498774203834176393095239243841441744035995670760295088809184440251943855602131140732605151873686178115518301473079715520375452275803463292725952084951533171431603359527781775564297248994137367916669247277008994638725203576500078196400317303630246475511327241920095507964002959488011532972396548913686867038909462852623557074356965921383418579659887462112919868513240235545347545494278756592328957597882688726453288574634046430209019397271103753157724085447110750405647439899596532821999391166865974289447298593435020170526372829543842730973210634998738714281922786503385762701335333905881669192900750901601838647000095667949641972577378942360455225987325967875000782887667230829884959788721942939530110173566845387839870193794189209436587208874069643802875939799629795487211848415288779980270078827693650553566163288176984869870585913352909107058908202420431833935509048841246291390123508333631757037794371706402212941674619096649311922909525135768045401412136293559484074090291360220792707779784832808790849065812525596604957434747448484766127867679896726315751404692540703706169288826046674946200314116902086385765003179183948827227205926989058342204671411069381338523217373468878324002054843379257684211598201538289131679358122124157518711201017701133818758172537161741588995983583264181840572012793802140940426210145765258503785001241177346419555525990306979195534257764448484577392448147507007399651602861360885835297944339531419969568617664408099649509002100439824577509893278927926199632848942078030274236972406362936899423604884999744708356811203941311110340040312823030577034489787574074687026022567015623296477507857012747814293553451371473821037848616212419297280837792528885953098195285574967943172104363864314223704410122828110063907392385778681549381513021538624339725401780224901971265281244108597528815015470662144285632497547137332366455254684820360345803178459487580986708983770662600914695378051167859795492347082776084111005899097560175206548421253994064936286026043851436894764990431533295390609150222862561628488971570615060218997917749061200242245205343122113681949174890596104783453040597823120818885665793932560748865189726692058600307447677263960829601868086082053107068550451104277287221061890340657954903050110708489618953257601538601662768878725277257696760045875501292460414412243746671956767277031033704407912664121523516912579237051950422818461729713217325563210615238985072288721220011758533540130982256921815631649684549828399009309876177346542145098681931101808981067684080151494380260521889451097810179912866788191596371804818492971589263924410621378187839888596389743820831412898019870485929075479672876779105565797059039986298438063649746730021284112620556992485193888100114732974163216362775592743884217202125936191127806280497130952407731967208841828237801018686638718630149587807452886390098348630432755046364056186220667768451889292476721473340728702900780187300293516112063182407859793748984884106197209857214351641000318729529281212097477113709410881105157730087986320708720789087650428786415153229932679695504253370213253537077503507450438537375523410843228534310732447178543174727966223521190506154448592281014289961584217059757189540477288354438631199158463782722385517224548975174651435712648701810891059747173889790999061357532491664383457047033430929995815982401548356542538691938805151015776540445142016661244676819850337003203142934549567898267938994400285739045230783698295782714796518942764263043013413927616373808349426816926589769048771083584078535224375575771639483172905748965850309484227313350011719912474245752397133171753713602119888237542252916320495979948686126809712309979567898558680820357388363683287744652580537095049999497443509948223086297369799426544621938828381867773273281174634704380001961831582410681200650946684740049223775403889905371678508456336340034805223782777569332762430766613712068048752777525075525809173784335078015226446332303344623760392728572925557867435044184257225283163947685082767370714465668482031743438661035279716126415547797978017674695165866220963129208729046100076091293852025696057375260183758077035051200988379379437556486246924082599589303878050225928924154393715518404078801576786500486149039039591815213505357655419381046737600414302566578732070158166622044302994656707687783928114730018433751567735220137600922894556638456184296087325860664181445000855917209639679102290929173277528994857544086299207339623345869408674746045242580044004085046413971441161354579040315966533002901938974450961437137119622553148477897802703504667780102825894605788164868083019358019260697535041215201855252619048445714190765168271862989054779576105302928720954545696050972190592941999866684550926925378778656640788102599242065666054767219003745303274375453429635229548558126721577830149142827168019565943546919167965697812923256288555846820690504352546291079075847700900368711040224717173357726844601926944472763720379765118817176429879787993012897138288776866828574555221939138895750531815689610568230938385537810650603055642602594245603997700207084464996167536702885980831026656452359371660692114481319808848504798652384765477179998502663307731589372344395542911419664569465331115658008850701066292517671971156365372432625789226850839459501224914325261574566862233452186211968155885438369366868506893967363304283049346362432017296744660508443182608631665185872359774015790056906532065151363920897396219414426288234120782241526088205769935820540153619167085201495275625126421546547970228645573663269298794363866136340673493372310521769279555204488648307958072073859228487465149241039536623173289859977984457060256637828928215062805714748917651393514170890614147776621939219826126394077167719543790633932932958540018128265925931082620702220271814542699647519119661987338094015545530934947524057080916253370174865595334160776351705125829239695029208416110069861190978798605693437109373045407473716981453980347118250707797060004518760209363032982936491215382957418866284793483331371210848521118774919634777574334711512010085515798697725718103721345961289343876993819707003844947925815233860217794635639077876926677215824621049278359530187419673196863879889066853683749202391711179444131471126053696463620720081097584451342168344881013304600789943701869118927232363342602478386807947914205507840952258783908506752444932734911680240137539023892020176806057423467570516500329833346765456472703067785409771211104479966780136590590668477180766720227793872908396456194934404026952442174650726388730307631065237637315287914111615135466285521353015096572803130082561730199103735817479289128799044209499706421609127039996609568184421118971197350301119682092620417018691474452255520649021755436410766803230742065367319439222152078229442836703437028171355758790912086420317635468150889976938714252852350779405942726736394355913576555690935795812994519759479153666056651944333230762627580135149552631302686061002559863642383189869410699127909027469330659213823724401871594858444943314763968090040338213105565521747821481105903938551301559039692607450714010993047611833714601501732756137660151397025821039903835344194009862145921320939540584436213873377549851259662544547851568845697651238384023910462336165896635944110384967765481461641465180420141041992765763448489180122443959480784657047505527305778403356974931157993291175633306255574445441346476728508748449299886000851333261778079653323531079719402969499980472995496345088605963273841052188604536973581772827596571322230910778304114472898671080982343331141053591966029584055086560407010655622894909753308037747724347108385953921130015037566921373633654561241845543279864890129291739732802621630093642231543447843618030209089678910791253036832012897187476792704916750980677154495175080343485066268812707107259688118964756876387504056518718273836388937146346578800565221181196607714775747950582310271215089926873585418060013341967654574006312426135062467761045352034627986830355920945787852104359235246849069004074014285107256819470066026048858029492122141382099874858011520063645911352296098896332805418943981476118337953624615754811766600839848097980187316478788270524921760509544792310369313370025412603130995524474862820790030058113257081206711696809796040496808981122246635424482589400193814273005653996253129717326016132148783675212954578568935793429163191643891546535610889481731307702640346973442368803943161040999660147178422379712603197746189877261007351340304653195922623202230156968813460690532535762584418669611040262716835941566657694626228989566029142375812998433538853218776076912085507792997911332577092910578388021368848962759402894162420509110144728098327965010691097915279338463576019353670407040120151696728372189558643937942191487583594423218724269552641159051375922042468267872071219098414594879246542484301807481103418118095208518028466162295531044499918107738452594198868183487655017120309974118812242116690305771670187387490323648112340784648247045602796301090150592128694884493955378992612217972471557445471415961087826948682654567724362045141507614265069228640426129252734957558365767135917959873529673266463615167113898815331427928340434699184038036002959040152411166269574705340590380321780668746035322311600389480235393732168546541261058127398996757712223964173321924405282264347621822379958926469542375616624247367314393135150072882956385172370049542068042164788278388268533229094767379179480559483551827701106415136195278988682982866017719618688754777757842901202348679427461975852213068248152380727450633872404573365708461111534152828695032508648886418662356054098577394096826250097614727459051287421097504161059221940185534086705989188857852850388405860722350784848031720146355876877037396379375776529697685147972675631916765804153154109824747972906011707626365637926150557068370813231681594234448515675360855769858399709359467080499752156517071983886065301627303742501147352964178344424813923609877851471410859206182336584486844219501326149231540177812514205586054451015856710230473207599617511589974704550429123864563482541211688403110002078769683960893334798557584181398772784310427905804268466092604105889582310982544699204439847434042806307579478988377010113373099047054365349035690659935831162164783248197970475215213433899253459350478486688816540427788389550021149686342939816380664087074719445928179799019497094324831903601429477065243849643964557757592957912107552447377846309683346029483345740532399373145726932086657457999572312370638152336155567428852639955549545553802900094639109507766267849002898130726879218013119433510259584600689303594815657981258048650488336977461593987282593469583102553031389116178953837468617680483167944581903137283636076727849402052494284644405183524833780381667367104034921309863308296155613172667642629922346337822896766006300812031799500070853696945704492521015336050803456035051437668535790448410564499733690712421948604599592606517136779856643209227973665075371783801604970408145948648504561028282917984272184116069491453639146870830266598117610834220363874300137456986433931775234425023295799364206200133540644183517710810773723098196591241555683251104555338922320985891820370346466030096892600982877298376661124061917458937091756910723721152112921716109699666653459318892348506693201940007852785878205883455680603454411820378887099936534584567117999907227443133669691506999293957337929713396249228729437281875146214511584942904642440927421053154750339363725581436147791108477998340138916371407210222478248292317248643085092976489490313024868940134805720972089947991455116362282410037188874591648834604561824261262667356707081092641835842898069547894831200426811877709400357009170992380862682785612292338387635914162463310696899182751904808647016230509496113811847682951339063603172892787696524701830161353415081095132650508677092608962923362965261881732853746970664338688973173656790485245393497992043578246330895977019167694470084040708473209778375172070777426204665733707302142172584685713769867679503583330084855026100909902575140494750745054658644395908964881614384555346911656722812229375528904597453538858733590830771574288497581796237098985064786350690777283017664630374628388653720718552530018889532201216089833738784086516710707048649055357215020902446182012720892152881414411737918952554727695673478663138997295783722071013414406021006215751915338162667890709892426334413231879758053901833375081783052275962522099982463952028559344969734834027344560257237546050036175231647897215505546020608236264613071798336356472708633051743346548955035069287364799467611704611613545990639871777559376375988871983926142867909201624509749971733013505639865995704171363735255364920092351399126465950381479961495290524095107304196274899452031980079068003194489130354953319057552399618954940444929475241021201631731564047294520974832062292866600786754379369336035125637420482528962553933014899516108923602914356863424065016934795691977917428066985299399501940031311483549670182371334548659069679979275158746203946976396867537382457031509022516050447060500919009919797746301778501783620939127873007387756858965052152689440082146616468582484449651373860322883956071532491882507740979558908675083026196744871581525387166487682953064619062351248804797708308422071078139397875241171881861998978580270890824517535000027267370666785319071112080042967854473470699781950803907834875071936960157944624319280366740873669069536475346148423382976865245562657566980212968388247879261734371274778052888004055825782217306780172908076824952475317745914465359913095247622765464640975884042460477328857840611018255693302805983724008882050059616268063793897509768242149473985469229030660986670398536130665267967173289365404786040326615901374910426105484966648311545954959230524895497593432001989653439143826386830135473895839291138796788944981055659965231123148440728962104857951348182457532239487998368199804647505062639857070888948464890484266366388418596055520209575118801751425704070986341241023522651983780571946937070485334802913664454985150652361468103481305134256602855997822886237241182938003522754702134700369806763484357503211474556301969585960159538331760502857501713950521607441744709758448253055342923840848964707218040617615553959635576586559588923785980305441971431331939899068262148905920041290987579069309584518632766892460723229095602646061271442764666097451487619202184687410903263748887506587148189642441289119030574993084583379538983960268628378571689659348133824546953068291333837414942162739478479691222227434830205954906846091562448777673728356701282701022088997582421509145837987296753616669818403836103897617585137677332255488217075391062685986849907454689530293532073397167086362766316406156490632492788055179543490879665339946045263826789559133564718582775739937866983687129244475150829161287479983252594978658405479921027710195755446796114963098446011842180045962875428969979332018731487041868652352748344476441244941522346549220980659956244267520606233914365096534006007315820679414471277383412593403205250573894288431996465304059287434488524630909728931372492503689469087774388477485593981017850394661951342392125008046147729837013721201310104090874819633341644818853645912499759527949452396007371613357216572652286025273288950737497409138829057814070698960999272378138554018849498912937064893456145186865736217519074928911224530101063953189684254525216480742682246403255635676640630292809799995056202006065619764935994473476642863460086228523778373273954607722915010603322066602527732286808870769533486274082727505401182995909441543807043486105380574207085573981162670729911821165643660695169677519165458391864167471812915888500099470925042441277741721170312404005288424765415886878689525754886364890772190627370874718628760611522486075890340162641014922343739408400524147215092415461506974996817302881530690530961911208767440403094323046231788645851726998395963378708246581489410051799575761394187048544945693588731767673992071405386985357024912181084495791213489638863532867598711462914345013881097289228843758962581975569994419113239297548699137070875200687485862391284863942601203748722841108881514783916988974064186503293693075178463266332066505633290093301390422731803155518121425497756932436199270988811536329218651277705813416556577285251642343954456298487915376723228923422337453862902530409914307807087384976892467071617867560881456481251074759190433652764593770824166516061890323286349253001142966000624706450591219109754608599101071614390325180534954517446509914278877868503773933965319560130018657997480454020976411250025596249828535840789047517880623192916057186133869780194065365737525452318753354626474895536473938821627146136762149585931395204541254062086332271043385110233248390620491084183458320480822600601891275103036353305207406481578678162637810679570917079992640258591610310268775565779843883809076878119650142061460996085589691997414144596359684615446758740409216593648613801511220643601606660529721280486421847153692408071070063665457305305288747937852847500343143096699995994648138635799192678869016655750712495187913803706282906142879607018456136340319803106682197897766717522619454602792693992655290134336382508107991861039443585710764499614698417316363407826462388042483402685297978482569726069309378303731513500800681033960324759859846129968125508016365574639488114876427823300429973779790647676243795567657363752094862739806472399705014912414612433934820010032419730122869097680249901500012302812778960214819105563200188239693912866339735059240895157459522987473279198539157189070601870834209719577996516051767581933379866461655398960245005256253594267515511910605700284320646796918557566897476932362425610312800481349011445901534969096559376913369382283692560058891578261529985985428755690708362861714709431740343831661446844069551730792022084316755185283190524925711774176113050473921780749318165323310847809065704857023279750415748844478085144312121980222221872555923195564204772225130188400917886879692862865286624101871559950028750709264494465479641808276422338897514067565696544587788911299818606582445644481543034526273482549426011086007045242021909762652852050630380023683560470994555984567338188778432761750241194617881615839990094429087836810637406437746112908137337789539751175656699543088063889476020900795926713308688171895058398962111531343316701774614732997888079615640907765141578960183782410023010586545838763531067208681898594778810957367439233676914598831453899263108614040986729760972365484247233966918861571344704354661316847751774891730408707996860932417577752568968770089206869317817105930684496155490975587473603007022797424965615892772477478102334791338161819085423943727661726730649578284187166924013801473637532889372389189394609678972130088059279489307716488728098442887965620201745532712972985884617740545185121265732707497318159055547188095821510648369967203075640616743973154003342118679783726384269984320123005445127860257152615461668270673575776643586094720832776777946570056702565236621398310917183652477658871971864932060233614841764355174398890243758578348316747857503660837822240992255595344839925195566875937492121012160078786615187441360151063894046006086005157336249928363693611552843016169962164744777312718436590282723941044248722093211034316641554779270991215093613285466729917342525946703064174621549581572444139877872445805606870949766202339333650367539125251152655460192480128094517897671932847235623437904560989628076313326030332471016900190415042739814808607148769929794892330704246075943688168567209523402674926816064906917977083633499507344839688197929530353399927908871829015907020378328220367595888173870128796905826647822094569514153089228198814379855761923491320434762430083300581453779593067953879197322282509772986130131236671630539231400598494146470560243514607453632305580863878782328175110665030915075546142334813497321994709812525689295155803118857890724592229960037160567978864461035439393881102339580789325289610825768844572081580147392781259467630574226654560740392593246423969502203891599299461416110021732673661383660598864083858422170253999247541308526453420550498852541136901958536910641895675814269135761144458825300285497486501717507598841981532628255248665416900390482536514650738771707248488706843661189416534890543528409607538362372859030887466477752998846153637291318964152177855144259648308218552739828733381392930202552607544127412537324587273558424310133043711732132202693885847805624150977768327822246433650985210269030213589097253138409540515925768960465449909888852211335207277143671819448368432849618516461304607187945494100484966289438390978213207433719139145577998511477440573776638848925500875487551008007684255726575305745816775309350830700147315575774171721773432549193634344504688627166763838379615630897963143967384130781579812356121649486954615481004836572262691940549280686106375738501879634381210264661486928491810160150698597454718259180187577619257232954070591620697222357319615465620921907329627591470403855570648223684216655448349041424058008940979287107963710823922369871020510483719304958980164780532578759098130724502777188098078686376583749121905310891174341008139732725205303214890884685171351226841817846631413216020257476440016552613513398530907535172550583992599117219792481708171497955550828867457458410148102459997196364516722329574191200442076912496677047944534533154853049813505074750892444904639813332706935993856590446404648657183335117255054410153018274105558140079755091115948777644902062244733666530132386615061719037573709767719916542779005053629000549675186302988278246299135490052372748267807104193159151370087219126541363704604531788807724900285384020935158975041861293509794678131090827189212063398662128054408926402664637632002691970685378280258299177566934314398225088741041643101061088419417062247743478908840145236417524828238475547447180544823900999318283618326295305545566754662561789572544047212395861801865144459025752845584947065152414087976023913366489670790660318581845700078470983302504045575687930622001484330573803539497932188692432001966078236575671205910760924951527304301174586916585947999699313757985135532571659650155487501467297784648346869587284226697718373999242687232361363446697395409549148697793538348922226066518991379038936854104269500081210610408457418819037270547158674198368031342196618719541915027491012875822251605399175697295096796932851732927024096615395358287887624087501871575971371346946208298207192353058215069260855575586929144927133328263474691333421409069215303382300341595625046335925269761486001302432529364218307410964094995863016784554714593267395125951680179217997708338630663324138380186490111950075185946554486259891293562791165646140343327912169273657849254188210240477944021851990875924497046610289281321039616106447879177304441853849690682011569818068951839892582895072162653389976702833710342853060108292455168027165144301208317807567995573972626606487428443690733654678668580772539595989551203679150267857870175976290719795857497049954696549815331138402468695694860325528094079404381755815863407494174491796213898997307769480154375662304184169526905547811329035563727971751239842742530768981874406841909305346461213339718655407508733402999415884563690966405297580268599719726635871560111538190969887404064342630939622847157134541439686159477158644554670284840484317978686027755147066435437240730503061102145682819606744252614468502357450371662403434353054199566520449661664776711310783365652254525680240954574765475164315149872732918293445681622183739211025193959227494075604426179126701334256589604434049896347149459307695630653124433488267648099503812511072164979319040310765036991241793549656196313305543453225399061220679642415637257801714546953128148797418536155400697069265124771313353317870896308484825900580554176842662870151320203509575903047174305908106920337358738395789069093837920243055072670070382620763446762540473948816463171105354816670090638250857507864034082252869407070170319240984943687515453409151050305869949468391393326263858929655946772619629298865990436819745939388430884972525737933079774147447876434235230188926533570910392612872077203570139207116801867408621905256179947611075612193855992404340887050098467407210344015993381074297833418513140525246439434078672018607930917955096410535397856356341206332812083193624027219778423780632317297464261215235783748051915258439605376776590002379882983755149011749753931211570874807092209772182393305966921171299528269584372194313864408674902850842880626336152353159704621908403056212111814172118872547728587049039094970994284860404385978067763089621749531249703209556323251194267034522807674481791782932608664850167207116986253753504364966092584745309331745185189945102772431825638644917810276752749142771324681294164237496856016834270195292080640553624047354164750524457871092364609296607468650583916507042802138356015577007697578188390680232430505219967049009865041275407465355308525413204166811256750081698375161598559184434511567614162605131614812490913584746704587070499733484570266356098826989961089859420594031391212782110145089545102474091031660736090782570127064698525712844722700150065484284225958055255469552138839353721635856387383067321019598012988085646052232633289104273850816048691982790705330541692353241506427935013310706163238645753290430999787501886030229300379671837950775777761475369969697376807388027985735208161881109817497435754769381336725124773962945759524565217110805543550435398579483195195285038908749107716554516617945932529404621662391980868274410124005622325909013890271725552395754707265908818317477397702535926798256644448097338980021482262808122403525915981808308751964669575544613412056308876993492805057625650396008729177743411055777191946199497257774113873702469100321664594679744909659982009908615324355197182691038600402992020860913410863255749297969146902558480893369468617394591298622822695437407168569370880785952230815063832318741397905322545315802865507349263617968630276059744627618306775188332682003469958472351009042245261790975659842628101018173934424067339144641136169904093705864674670068979875517928798372645626131340482537256562727869460627706166821822775360141363939444801690476621346883741786214239988956218239890593989811053653419577883168257472792456991521173073823797488873633846811562807786609388390640896120978103689999930815697235616491244567617101095377301836515390284342959159409654640957934224355633521138512264404883055629962101610751307638443069175216957257837568280878871390241908250629423513582592629027605238438575351041782372846715951649184556235357735870315876830139169941167245699036582519877656902917991085196795225185496979615262248816356227544408761061317221188696077277591856354657467617600918035023015467880719643418206221059478030488545146252205390721121150090379177623307816632374065089152617833791046824725393797376642771833435861513673375128528875893840150359183222207735699703645836488524557431820405669981337122025918525562284935981026081343020857866301725081097580819675827700169820711663482450831841214224123845621869129351681697845935979140598200874551278607000028802310585742340108029902887366657265519561187126045477604034317254266275005391119647818383990549105690796772793545134687596598925013646747806032555653369323381606326429629503497663668291299811169554229229270260919640600164319341839824690916140484102105731145404477572899976153259945921416037079508377136589695436553224671864181285526674201415184943623060877881114598716248728845288630526830228220280254998883994779171344898626371520990422534768715870456481622396092304932594812429463706668716146878282460212484365099343085672085685486914320808226541338585581633863118482074318041782077355246652226649763149566175441281050046764084431605232499716505273262946156390139008049403023341429658369776197401995471069799988586937504158319449064287037979793203068348931586801172484156128530332809991716589062297731179810499738129639102566714016852466366346367335179266598752336930020845129048974942579933764445983995471318655669223521712740892980416401040260592659077950017264066233468904613958328683458365012589121764623013791116461664242327383026252409435086344407653946734254540605145201706435380416875150243951758383974372776486759440005339853453164586919207751592405908679332362179824756710812630408985659555900544620326714035476071930577793792131152885927935300594529778484819231250490002640479273343323453427995401851553354639511657534122407671242906885023117202278865200105652475574590689800367780584339052174827685649310684561446764102415327883489021646894668266641548815037311427761074099984216739791358769521593697680124961082852006619829435729649197292936206694122682294253877587623545467718479538170887835248156143642293603808682252602303980672319238120289291628755875530960316932913730351598617985548828669271421151138429420058563710105588642995369217355231456588630646627406786087989591250024196139421711918944552294376369294644912100554386636331801909755376010666137973091172817932786673045028538720021524976881315946178211666199540779662084735549308425585542796500612670375538863524458402767894306721607617585614938701217000988118283674829463848117087039467338249165691713733452436999663980487112205296235282078713632235720964182277362718201302722141985907635681337826037168485813986329995133940492399405179959080049755831358536474850087896726434345169953722784354856424140459229185489495322642310944825705163910691877542048368168400841027266845447255583710054253512814439546455487096866218399659758953118939028621865861460502272041365589976991994564504306166824871074452505800216159142711943378526323568839939567067805631333080325813275339625777845178236536684940593823268591914051461816465343187201371274951204575982915305432307457472329077169472685316828012546930936341423102990520844507268795755772182447734921269070644915563544466904923135132442096622681512044059207500894180034056026223334264164021112299434214811558704085315240094379448792345778431298316403358633208358994255052569236735712793790406093781626862284462818085403756815865982823602585887313470141162260755498025151537924932993154915719025329879176394700869201922041775610385356835795293527416534914416401543828995642611165458013374898116925002212119531697378557988503381511124257566933170125532364716524020224289094082924324836392381778950770394063471552163999691370912267427279488765566488184770514278441622264643820990111094508676265177499385617113061021737113178184940095498658731372635296260185676192360085497487781092336963848873920186933031436600985671183416408031352357978958257401675209052037247441225276132362290789496324356462091176134788059657396515383243151784538002035144351121598969004404688645287929198322954522950734263054793240832379774205575775091916384108420484044186805969554862213801326998471552178889297848283067917175063170200101126902979922793300376717142020521543425718056008071683808200294455663430901809696224006609374553633565524806926783936293904780014976846974717992349729058631312991684194274561162325996476205789310500515176958462684425729559551407961203063158159083284823627496408108125622923113477296115539719489559048290232396631576768875603518965587508886825712420970594252270125539786714834652255260788094841246919798196620162961774471697474634892001029164223136384112016697247635247681132087662140310011889845213533079829856246282384186408282892881588069165199350021092508278691452593697370251835183131278939319113597316021332417262015265199204900468428531799297105501937062180659118591781620857106221060334927339826777976121663004340959852445632033594339062839177988260293911304680943765890670274477659511661184425165909010088547586338867851862908645894484411761264293168856338729004947089970854609192787879055861723080762441462882728462222272880167130992169440529517773378223684154211917532826623064076472272772766822507465668004287657409007344415935915478530247363695680685472157801124639902260084358402530714771073445588301237558334571577923557026414337775480541453732547325831452090858065419802456270398635552201851758458955939735097485138758700721199249601038749773226235130198552513641429691238288150385446270265812730439994246360224919050466022943002770748445608666835418609772671615324987674571141324878677875504725609329792246966171642535236662792575477332298721602565925602308120521252486682064084155681614926051373460831035028061998327233811102534036410184901196963470481055512918160526014437429313679746921774750201875981352542746173592325647133277886613863949006159337183803694561813899523602740304526485402231442459082164188006229154522880020217595312927360870830678051201035661725507590188523838083439840305180209161632318206579658121881822165492868999604665013385793364447611569316323769623774028874573192488948458740133857208284142997522699968602869811016836605459098033207501216828220950161804834526853453299686928974355313546214587829179087427150148567848883211681365158638779573027431542290176362043537081870945817233025601898539126960868011387395495096487306750413967014857162157633444067594049443300518689512346831638034269879846138406606182015450048569667864967213423900887938142917823964335346695454233834617315587376291523876681849974436375893956957082420896612210899344625642579758413170563896030667518567737512738374293785770555868583927578412307154302024819275908450011744917497758614421602135495824973776547980160163668432665302245771633524239172093642467826712601297770661122211000510811613131950845146674588331473777155672586378272387491188527909143176259731563023917645237568202393202104709180145069193503327684025677526682258780257384079903960586901799562503252621374040714786161974059879837992250413434154068584927612965706092049619846709709981541910556039107554053113911875785397103059465760941644163715756683230926648442159779852505402633331961397846554268623966740447464788369126071703780900634821849511354084319527158924720559624798904783234992960687153158208639935618839317974789726271328456161091377405864208052163414801326518648828903137034520019317026363149799599837695508638761173309494847381547535611656844456664129577152438467156021403696940231939387784090326299760586064906997780260716021211186473935085557973405238191185033618064586570140590179965920322634813295013997638532815104494206530699812402200471602017324832033620297358456972094125528219314647842220472407206620657224864900792900196497547335391421687703967730890094052965720652269649869091838499107073217479907674322425939715263992307782487462590991933580190231974292976179028656886767922519459296115209631668779265684216102691893263607585207848955727352506470423489091134144044441994975932368576623714548111310987960960328525900159968396991164253150184201389367512328031782601406180168972520497736054298254738249585591306441649768624961573898134275459600427678799389811252230120090622013025524016674962141585473485428710751740253927896350054030619833186130598401607835852017582368730857919574244449144058293605640274839808762292669698264822375722650078359294268296743503576229841804592606786008822620766713679873424092676555873359151758836076506198572674036790902040738270521586090626745371127061860358971634138589192032225746773360866641558504816492548595567903937792889193924066121160057078815814520743352307271757169030809092449475765830512002684604056182991825025336129109471756328079692130485847628249783670446991700091050146961768317789668032639457556924419457703256995881038127047485212516789435205988658666633784481600219898115999736763573988490322811383296169026842333865096189203147132650807434765165856689211530571206076286883609027540204279077171533135219691746260657357221521555161742349216662165519494822165991976015452699739879830660458797132994138612045852440109621564072341116973390524365378786626698502448982496072703274406789196041035118495285858657317932886226866290980548467840353416695912242801787698823590913651989892420720431174377345374630154791391069252468742156605783503983090586298053524566540404507042919196375583230673651628403948390876325544437826442371877101791994086307942238335367847497864855191651743412615134442716598351024203500015529980571686936109917756162152251893846361212935577402032135239445305105794833793527470826681702622917777961543221215512115578454775155854362789545006542989887841822985755153090741990583180770103837585317718980264582099786322070507026655764352992203026818536089249195725364316270512714039869389778406639856631469397588208570278617548998955507817570168251218381936314645743153748364893779793442386686266665501678251178585035265800925694478342438074344923265051895535523240926965841487074537130587735275468712966706944327583431500422373631836674613494405830590531395204838798449385902836292222610176586627428786455819167595998705068219528817131234835711944214523836662409870307601471843298610532493552066663675260212084214512303385698464762300550835277812791646598595173559224627062442390378704572258357372470805344410889854338449658924326172209549300466965111565581470569155871769304906388584383234972704543234591290870681891142304288968558665117013387523441303035068935082464282332347006913402740628235603374139999120070941180978053457308702648650829449163506492134292863217933336574916213427520882057116242835556082451757111175671704688980045808233675718028163913700256219357236682157012479111137643870555064808794731524324482468948030961482227416552189060940223977315295117912543772745226734759820030824642129117432997702279013267111071212094755701253324045496923282895243089095815271635957278971307824118033170585249682728661733127546532983619467004488390214246818846006053513138354915981473911042447820126271360094381539752644264370111230301594657056175832031515837485367970227203828979998843781329739645925929570439250192793982454733179496071176330005637692814729281273704373693148865010782004174881609552254170345786464112895953981127560528478975185366972960076152684400251163099836664554895502110435055684507194309104641012712636339501527519225000042047837394787274572205768407706262784680676872458903432356001641201605665961745985600165601461100270933395890275624366146073191846576372861784021090449953981156654780833054586620786340445228433393813470834158090605604894046042842160792321380003435636269425994771309653555931004297507450671674134003435537936147918202192307709938772115089648144848590858503167366886256495564468933702236344680503300428331169902891394391970028076083124760971371940694267284941248841911394835522831267504325276882081748587502057167176097475593776753064186293945882846200149506271524346831142608294643322961361272267313824873560179207873213530107768660419575922134462500821294139597080054241869466552140412745994421481951014447417494187798489987860450642170383401971029183006794574729705666797626702672544589256628608714511947438680911868253307825895888211323933747654367267084314814531101371545975749718423898125109560879069450722473016685311279422731227597769723549461293117465194899215619880321218707680866850080683711843772318615217208602292603115660951638082451752144999914520981886251624937965910189698372674349010944925732022111851263456154555439032420619608635028819443174986923667957807963678681738468468502102723862806347182196118245299497664566177532124914108515683899485993106361766352449004121191960951446293543091793477283165610129366020558628427861853375570203414526950255794168736885323818784486939517970435092283938888781467920146846869438041530020394819714521393845532355378944651090652366496386365349562772042832170712422844711104740151168711943094040618116926460878444630382886642416193020757940547173822191757021192079132090385900264453245519086172794248520866361321151179230442440072687072745986355607097461884328184596970336901403199693681268714851798512746960495748226985054554122172791198152599564447382961529284435608375189604171256664076821808814072056496582431551162880202556926980049316365241823917349298256111236064910050620875999823514037169088942474367052236837529084287347628293897666460644618041923245285651230819551184188139058015106162211943919801833401492152667740485859028061478854041395535119645829208277667869280089851620631483634107525113824094593789812099430523349486530066638129932791186501475812333841276809017321018926766077084361678100236400103387958101916628625713331863721881149457017906658862883987853472251060984415287751792434431876190385320886001616733877692392533467925949056079767414288381696423667947709302435245647567954304172547354291938321575009155617056953511754730546802235782106623400817908850101846547625593724770894923475482053120481116887519827540051332653933674356044157778928152051824164915634270231863853194545687309886795046620810321661116558533127318760118194944019989966188630174768579607768793421956957719966230364646769269077285888519643115602276357480619156203428716025748614258205055830863931227880273832418572429987727588030259183544377171371244068559722565679459856039472145948662766135644315523511191485846230544647945368142256744579294941873407312515451382101033177222670433611584127077230033974731926125825488585404271473735406800103274875655328100541072069598786020017136565846185864229904774976665485205923499988491062116835902623624833519109589573285078652914239282260862560833226446728458180308949822973498521234140270796019984019677137450070391082375299456753472575543455738115782827156625927490337687314566704620684904053395570753797937503386858659771651098570169456121621085992027015742057843122709870960617305294177345087808164010147890790676908498887073442640864710260985072965995904335659022162654717016215356630890062797314881692201004996567049272605127351115819054911008030439555021097805931202777343795693093219297515351319952297411566918900278620949098389393581699449480725653088854924854568985561388986854341174935294487202420103850144411497049162295317893776692396654614018995204513825130144535536308325384329055888034234437817556692934018079824558176126280400297490006435617486540543364058394632982008596009830252301114462943453407712311713217741726995264422193262415872839861759480276471223905493710676531565552346090941051523568124132180726025308988286704131572477104227555764925248241740908078718447980651127564173541222332434650638947374676665212668764094789314310756740186049020371969864564906464360239734736704861490221642337493361037501432789570472945378612217251254908879915017508403461507912328432390797160411512625615456234138740923612334034213192283757557516510917068234646489007907200498477695317862400936543410058996979542183929759561703004609279026804963415192411595246984313171929401330278982073281184396986168236973339656938568753421991667759291028080253083696183178815663291054983225996386858718265065002861675537396919908008184134862753333164669899651411101553227466890024307123356078919934519465637771167078351294174646833703329725211306692234134193048227604646369374266031330273441705919083897039560948077575733077702946510572506592438466616781157289456941452173044475521088446476139204123512302063842707291992811945912763919966765492518572739472687796524456119603098713722765745416543251428808855817655944442243106287114735591706308318085807469041151206411163279586330791171582291656015244377303126387635416087244023155549239816395816261883924308213467859503251939191928093732682371027724164334596757529706198780439647107861329669138596920147870946016788688416949741098387560750838233021555122920506577689776414128724823843035232070557506143044434513476829577375816244175527534682520682291028558965172275209366160028992447141340055887489757368763272798410455283566903593063101504957288954967620143890412061714171757731704418444455155913874265232230577888680659110065710170083557259519715549129673147059093376237944691285824713445259691137716383425155510547207238087478529523025712069946557646714752458203859871291889732041948336300528091154686164499749554529846825101267193021215471873026994297909281324609516389268034044388201556588932540573313325232343500171391473070477526068587064125335338764558858724413370408178504539296308359850105297158186431418425607237590873742928835408343275653212131747637184041991647536496236803758144276764708175862793940713628103134337067926227267710637548748995154922185373939359473258402052651823230171296580535741117551434619606212970654870221375699245738044910772181060142803733280936492307444899582125653217820308989220814951446670677306315733078602798273172915660243825174497172442844798088649602972808957594722957377137761993769757960456904545648471312491726955842534690226898818398149072926038574281685089659172102269867876019680638639971368783254824892916607391980128068250659695655270442205372257763511552777111568894601750022367103626809012173585805476633860615010326217615006819131540239842050850248422696450498198456142172249715025343767179237135246212365140429928351317187657901864647081308801804036277488268818594216996968155442923759070380724464421267451036172811051227817828799856553814397256166249486811295830714055568873358261493406664708356709550276818591913937995355298225602457893948676575966966939332734313358550701057556859786656578445353443252543657713323916295432800868475200747874780809946707685746957069798066048544993568718379895947766393565716465653669844931798972024185335118182499714577629313853460695032085669212493394761865749370016968889521171719184844397378741000981365933737723278114563431000199146475228715641591912170709771322315569313438044107338921141498984323679936805774822737070476538695374250449982341687249329630943520219748852310485574399084393766023354547628031154416094081054834849679606004432777772475550215237185997206534216616518288593266444205283821173683088330740673580354175316209843026107910333011178447565601934771164409204834770353479650494729864024439729612543532876985281992434780384588919901716745930122928296270536664442640154123430543837496693084420213026340757355033366015549156852416884284813647904035746681093902083422156043684310281447302204955876568657971894405116997219742892586998598022315680187291050138915628041278461746783720555695387346932775112666104525162046077256008179664298495398929207613597862679091188910467611511260606026104113948042605847720677851245886786926633781068392468894343282327045886654753841123972198063279228180521530114428810906177817783734865247960694154520259551357746936815360595312671896492233168210794826781878728532210281743311107123212621426988920114249623558276858924868872303507646396164032756996457865449058543333721803907522716019277297133916293180431055544689678744009781714367988410705994413377085335362334557356557034358339809701010514782230628983701005900850195133276829796593128068133461878419622666603653185341557042505346736903314474400213365293326800992131512151748935023428069765385345637609020785692861773222821850856053290841991779110961374884335836172073482599832521867830590891460089193902678434606438864713877245170636178887965292506011838323511545092765042202859199887245814690321925262215174384831319173059042603937356573795754506055806778239553747153441031553380039560236788683776310102956596550550934201235983041923722439672587357063009352609071630415897218042210486963701068959293467519817760576370518074947987354787995900755920250969948894403167644966818103045819985936398456472276757773373413163215651014384550761735428741133071232500807378842436521458785954901060056542948770144083756585810673201819040001830053200127398294356688956547377707137021690520661731853525241077420164527198158124730525544146352461610071018766172667626563160438550546175848618078912906550272131581394662966406776869164456413174102666936570574453167751354725687478384869329320872239033334928492398654892068774205809156098659292198443002206300835117761328685307253987144465610345660985101399697465693752409092393722108184469724553057557799195031572408561788526496309431611681145765627788889066594253628764258210291311560391872702567937057989860536473543091928736734995789949350381489234314987045368381265890875784467713637364807601972093003290892124076494475257857961768794123979560035258172456107056608287814869174861508100781868562902066586508887612289051893028252502160255154294032747706954900132316611047419573690232327764712676255288262274220864249923766081922950203768453577682485698732184529578043606046621352604598028615281847136688445862564935295304422146894968504575705478680390615262305486732549600392634770230293028715611275382908745722055614425781383864468916323314244966770084132677547948292138158515708431325755414668606175571580077643811997922199271308424858092373836870740842054906253264092545898923816135860984391962101241036095917188239963266100414309523393201497827366771720648537613375990562779007177168780050586806926379627537222771181737015617455649654676333291031953079371499592486014039522244455331706684665493073067926981911260181284382964841020060591149887356924966692839120850958248111794962780184337943067320350515312396247758628807461894298161756408931235586269996876191847721175602397062753100365230772528008881469492244601443329868129881076048581912975376774079471731656222668254520473912754148251672597364900653759878774964314329724414672038340435655161890571730724598610543704103327096869625188969709662893338408039467552412523219967569322861307916299549885325006928128660333884553412462842033915578228085833898150277092520801032705645416578861710312882274801941969588455051289024279629729279333596520030151817144169221801863266708183639485416527688769232679164343704269060161831507654658896366243945150441851969437423496724289905013840914844131235413301635250256015533726256799082370076489632112570790042790919055337952109731897413020801531141789941064951533052518099627514654806388143012876136390407015661137569218159418070096690522292404811379318325278491686113622140030765496725407538651411710846872946021614382750154852218533173666194736578767548975236695210248542500427708464997874048536099507082962520843186625845058462876619537697518191665835282933439305004034977234471626433205837519583371596665076901127134495629738025741208383727829628677074925382969484466267532576221306695005159983363694554893337302458850602380079754239519667687076762847323144678086154092097402853133045223324862618353823079832874395439341784675204791674358446106892356812904240101339538081141145648424407300882185894903170399839754029286531319143724819642816798602076309689816033607500878024747208762557266721881162000284692940198752543700480421695939676364141226108956344974983607743893384473948466390621840125098514778371653568760610685527939214244871164160230634692189152560438194389962770655256149653405701020779834923172946487636095436339196163034471416572600325097225613466386437954222582548627044965894838002775862191586185332647361647557381189803480418083745974617717124953864448663806861456450937067481747346444252469995450984458948109698934489909395323589941325843942225100310252200900871057999183397914650209336482812192796867060166627206410772787299514032830035925709194093542902552671830511997604859917885111158703819717238985253001074067349276434810774361703827380714156636095761238068471489513172757179507356673709179931884835764132093877133882711715054347594336166967124025907798834827983418611395954469126037479705139434605217033223614228350318786001664571749183293758782620078924514711449491128894857185567230018629583393855134231972205178922137222129112868107685528357906620716525378054894181867063146942602868334829223589663562903629443565032267011910406828333092471621183033019747883835805492179460777849304091581309525354885830937944161007111717177237155790472934966099479881255106076443276102988756244631424222735627054529690802605718736604595710044423801716350094736174173294394120526707983590825303231298417990286066323979033633690210334289591301879205583859526846291580347579800894604016672301720490199876435233013801449411387549339354386306375404852466116020544030135398916985893655658686848979258818649437083679760859175886181491268154157445001225708945743622330456972008129632047097320884032300015814246869013093885826413961480980769815399397393967320119447215694064348384117404401414672302744067329870089218890935403648313323716102115730189616620844449298064914793904790266123258355616641292026644844648255525611293430869221414244999900551319396069954192947245015342724174934856113322986393894255974444072262900934143730712721648214785810024419604139792826541788858965203827189032241228776275506430285437839895414244015345099555257536407486327570045872762366599076628332702493222575360979508354051339324729377995265025185291094490805194074427602556650233691494859774209852941505727660458240996082279884244009767397734429181346467621819055634011136490902374135193408596523756483627525426331785163618394859803820879273774427497999169079897851675497358874906636669382847682551830224574972964181402237539252126501190435828288302102205144373754957917173552848127995592605608205069232995391778665478530035509407259512810341890232198611713141288409430640063198572844127732840852265927069324406490701824112503020192776247804423116019560069378454867126912441831740230173809235202413881024699005359056853593436055940954696408329074590360454128125091818124698886771184786016308684258340217342240610929174719402219603196731276137756527481965224074056319108055684578568323537660867298393118509716938705805067156284453984976536843179757785555280106375126309575598577633398652915185180015967582018103097834424464497723672450892233121083044240730513139018119123862223532545350569343983952265633994336979928895584672305820981001058183024972290922936705115657801571443076687370342959239248348392196576002540371500735187378838418032894050685001737368476653664438903180448179926795947601269835738516685920745065306523445620054072115932534129093346419406085731259491128098724629476088870119272957110153908002520469210851817606618522524363496341806343013456373641758061403603815619964329235888359873165185782553949369735633255390320588439327926770821410268660369598412315504685293189651556739981587851697241075320369436398992260133921132067860215552417760753151831554529757914718603798276552333935427579817720156291047945282653331815960538121480023322031819741977938112389364932405695939959409920847236312789445259195978997065948907166734832060414504390879969466004964545210127481783002319772151455133549861259733282885880917374590758376379111020457070475384315604502115826890112454223592732266463393658239842104155461177747069924683808153658768187289135913939112293949155281013785606889849449077405329375171089870467504287367105565702342976916823823952745593098393310540861796274724001797998914485917234443442746810296108233151649274403369558719861225612116539053917086240988325407734988138789079439223119991851105622036334972990780462661188272618363219633014323148865312861997887703305038876582072431725896632442775418744992854156277534975771587622151123097378787904578547918802322137054385367382029340351594542881355161187744604234309836430573238247977814304388129973851917643651242135704077216047634218548410054667320655399237940411370371551692488265876932123981657456629289904072392478952071483048441205399598954998582991093352343611793023854378827768077091240790243269297018647228733865728360687203179963182895862574596432119059503368866835899886980109993573360559031474614925899934174547386920886389645376151964926167599869728533131896256089838140928338588257442469137130843861458541516727877243950980177228991085620593590083184573564552918893350522892357330886399864309934881055359554597474053219827676440060159926169957780056142721171657560477115479068079508561545531310009886509470539042946647633789436332523231545556444901656346364996807299022693470208628104080398532406182821608246746324658594929037263494020070506868937586856462350164036328192097597844254969625823412560360904959474133757271954702641982739751829099721081429744964524722919545396325164951956785735825005409924233601003064948849984899781908235298023978331169425963285735815475021744865393327231447510604062019215650139091626361172523875375254296780789209947734261580062859176936889899924310729761473840052464092011732236185091821757491298205077025858483270010912075681922564173226491913757092430651108572056324247991244866626132675544273763412534196820394154438836263556485638390190616703684378421336578493064917425301613157376086684874603887242352614739535184357288628116604155003569810071253314765973887354154288294316727968460018059280430873036609951319724207430399268396904881200005264744348181708052757499341059794765553701360191958492408681566029536848392816056425913970206472680716598820876638700277859678781471618158984653601057129229296991077736664699529722638618209720016966248247595970133633222464181095256897434839958888201933313599787245444295076355396836274745553456547192953707737901073329573484485215149769411418720651639509412826887176068098387658562449391295377803772154913601094905397596587827734147883525516414401636054233464713257355330473542506167084741899148126485583254494184899512449656179810389362675580873688179623674242392052941839061849226690507028604772624377308015221180957476124633607771621288916167849367245132644020898726583071295163962076756555061600587750418775483400407446142855458693306372734706792255747649682282841476835809742802466797853512579160860739843535368645330807489735718334451494531374804730995296298006672262271309192148386546841032313950168417407041629950875233385074343204020566921269668708957431948119907812143569018684765319816683164491434455222944030770742540225983541767785170099506768202149162452578490791973903950091461476379600651925347794167753501126906973263589473989848413832891837101913801986796875682875262735926300928838029748808092437833995481364983450609377777366796701023469069898858706842680038407758983664567212640055500456536286023013009029119761746245030810890254442080307979058530690838571561174032520337623533426817709469133492662757016680337252570803822866588405349856099116111857383864858985165911463379590788469510624631963893298000321526023536068022506855024754514734451259672867360432577637979048683328143088563889799449235035972694346194227199223458723289103805928668412191211000978580658484880872125236830184010087684334864894724181624025097385237095013863558190012894262632801955209817835090650961340063039663880795699428125964037485161062129836296445878092394097863436817439469150887442186124246283402434162970366633891978396118316093193411026241461239872208796283669499534945465102037206239691981961671362470619240851244102917822357749127328207441509287524973035190330584910511399899433303278248781989682530040897351831441001370311283607215537836935845629051456959813072547548854549755967553283694788129967559189433418663278079657543814975271644186991499539760283165991920308822616362913261299172771002579987228776688132083049109821599333729136485381451432689563869587170974000878869112044846496470526993000278165325349177513302701380748485885120957525409974783933485779699896386604508540430567610101468841334183366181341962074021131422301829863997818669561998535737879818663522295916383920266034892171462879612892938388785058315941705500661620840134863320666831915706950636276879782267864531807454536835764194398565072009012038444157466137731793989713896803784660045347591272253311331285578286649158818582076226500405284708824779220099513614956087676336352493823027720246796234223822042663431412365768668795349535091227869419350201488553575983840680637037300742900867681430332969017555900690971367348694230639490001774093627679980605934882160130061650568858709580177548236139873202389519990121285561566348157960491796688037436355315932759149162746151318888856068723961824639645304764245691062118421980473319425568501623826716702795526927912105166824243993632254894596822631476532266704632859014507891419285156084645895101262649649649984146879043634579735563382771796093824745583047503635435485675226920340257160462376693440068873366953728285723848622009029938569808270970118728764495733009079462067922037183315663782424990440437446185131855531344810931699738929563153969526411185305496115600128150149582061807770628443684793053670811244510824496809641281079606247704753375814574521028726466667496453103989794780052715929379800090780772641136249531808794921651856007943527584223308406287029312437609404081619374097331868610761609297425577702983331047441206388580522537567744316380486116179316884132256259055906160343276398350713405470407160611873280576228746432103956839494881710957948830506863100181071607722788191347414366818760383950657192568741496200067255973812227352474078653483896372557739517573544730662585380981687185023989854211882190084561554474522411101574047587493069902683300964621828974242826116587720750029504588403156953928734721979433748376197916358242482658025951931695539464676361325599681858011919729737588891145729812351530220596633409137823030165101649454724487610469704160558505341889137475580036212009677854768031724448474178921841702706051505287493954668395259564998845303825172262507436842540323325477800521561147976798004413801849246604194340735616864115574765737557096437027122031780963978104496963284976409397425456359497530303598163732410811581065734030227424269125489392271328629082207476738196319162312773491713974386171809451711826235972316915512630679568562859161618076422145353888330791428019871262100681428098843212055389162045378560393976377325685249308172770401618233694868795670615356165730710932342354453895290464851254059297610257635197385755209400441712311250178411739735663763050991139880570978378656910429661232757849434192168905704907433040162528131675313511301445129472690030137650407876471898066454182553804735028328760176193306991919693511668888347450020218268229632265914141454346106722064106362476500486418691107419920350179129504719769228918932398070523377085460523502863929106135448891592922953766700052111525391113205520326715498195335220580056044331998265884296145822384855604679621690342553525239722082571508127013340745236778186682883432020036041528740707473937452485965031328773337809741824585733129826777411665427205999698930940925066856568934303207785005381481941722107432397416304158979966958756597732704246240972488547198939940405633087042464903100824323341160467201677103767212803923250842410052530286490694791556801232322865402775590155477169840327986627317806487488364930168351898136816269029693820033966391092770123126739204398920621821837419361106822381727776223983500400145910446998743341704922394285432622994565974543532277741801470088015233859751186634182324253167816145015402491800571881564289347699809398816675455359692554103556215109923508693948988107084349274499131448938359109534086500371194832071685650198841465170679772851077059291812671507105425555835788857665172099739342636956494409669134277699852445129762055742038280586761983306430993674287536887199557682827582214500318243350976433193661034486134555326211379854378527749937118271440897029477568056684452162136897689907924195303038369494506621542109615161805013747178905643945885468925719870154904517175669365284279707652485919094233693263651771434726761490946602642215293161362424208714954688749853538608560038474076306077814463621666843622658527392670118086798390759378626812298333752516198742190461605696642271840876590385167457127696994152676427654829841163295495909656419976087849469374944734096748919012347227971465794624465644060354230965035684938932518345993610446575249916975608500473771216438152424836054442357697611312560982871782952703837445287638998668684866363294435327159425748369193756186602386070166765410624182999560962250234709345145770614017197564098643680302579933621641011025658751307444437317828930269347053057242710221953245656683486817856901993749458872180991098753799805625420459244828084741721535176214953742086277014666203905664512546559377349533864426996818478695103824545104690507309825450756385989083035635294125310463210640077622011268867043196291026852110421867638055831089862278420681166146692713910354001812924871958621313859744586920293345999959742330396946064667403510008643569963601515471203016329773089132624271969401787094067182841009483246162427570171253826654178744025182085087260086935535915898745138952358098251383537543953859985323783708486823375042475739740892075960203738409763900518361571391946571343840576590739710518518208235354226636138174607477503122246339416042077144288353213802214716818247989173803007778363843581388045864021693023433957660833484200225466326723807242020221579309809769629775835003462551030833528613862085626272523705501472977599815223851083766360385211049189121698623988123920864149461422743223162791828116242214938138423047988361164113346152702305086103994086213790496322473829879900325538780213612862480205387279384186372043150670704964609168182983508994829459226919011684672605048803022444206504880266155922164155244178499182764614113277279018962047621692160585972107462664164324369374401838108737913935098084887915261076780325596576159319560748143501830543764026854052056932712704677999064340009507529241229330493351420033604106321293372187504428297281843808419669246929548894187862747108460415852165469786250286956941385840895272214310863891062579140418781984864809581373374266163021011444986644924696177615007190211160442154251413794213235747993566449131960054698394914512794289489179985238845953699736625167153181429709126998893226222115124563801299600133873883068007214005413682027177024980308809033154547654476788145144961749989347514015406850812081483496948088072279652411187384173581400462240677662433635821400675433522702744999941969907383543281806610236626021878733124188639144939166302337935148244333863282018083739129528803535234405313575903129169165543456037772195251661998629322089213973984944814565250648041264668214563367579258932468969317539773469904822060013660809927267826629081089157562465312515368145437878781051674805349691717889171033013725595463257103447154820830122872770544895224391233682817411184994123001934625009851167421631346082516009397607561277403613929506059962429388432494219237924356606184797931655319428326947867670617831213980343212291992341202928537356844489259201500942572110794128977756704902558033911794897421940960825336537260306015894322060236655800165527027810968338357401391916507417341771071774870201307115581108939543357305513024908140929577112694060323558711515917639834703718008803021165154246300297914613808051266068514483304447244108346622879925084053985944162228780486450322174049043556430323954430974611562398676381085714521102493314597133657729032866064236952050086652394152848038430372343778212161719431816301033586257143918828238377673666863999199639072975943423198391884006827661408299979922981090152816953179063208359036754367445419944570013711251565246314637128092000521873147605168996366442747209520897179961737692549608658432456224557957654184648415851234205874475336164908272321666630220120399637321260143218876476202901581350312595956403529889649004230405266263940811153324319295457295544224725837751010652511180409745051120314801645628666570839886609377191786046028414084543428937128662013536801305316619089930132864808901966472279696627028433266678479043657781629971574727310668769984975857514988067936208818081142546065400991804769108883990117038453459840918355203273884937530841967752285149392757057563817009294263887368866196774343339839085619571392322108551722951808412783143486172444141670838950922498117052758939374973593252306265732489141099669422148981295416635291862915211763747594780045770213113018961827080562999713640688713828489089724517956428518174676431285956161935295660700016680504072105336384178101281033306711955935439614786684850376913415215480621474626495925126107812228622037904268274950279401284342094607854736828229653683358540863115043500157629782695116726605736276330203643059623348030346208989583963884551426887672969297255202139468639791172092998315390163518924432781491766538243750347316695193370792896264817796509955159877784129816081708512720475291167904084468074545359548573427918688823868098701741734423926364317316045463748662143477601291628380585377941037601792432677965651778155468990371761172811251139457450012629218587908561815333531075881561835273597367345708867144410634710773441046615633425846701877664022935401773949388019107029639120361320799979275038810533893617191765438662855597236256139081112557360139987415057945260353151815482094559406980150305752881271196739831864366597562995725659824603555882641796212892437760633065991953613632873759239826336822459888242378940729397178387989982161667378164009925769371751781176289233543697979412952625668414052535378708631818225824604370858013786563804369035344016190374284587174842438406795122200741568409286938878235083578437671637703892834614612901965238216500225382877725560552698618932167179547283729056476030754899964656315896118448902772989681505413346196882201102942390709402371357935583562958898114963454409670028184554803323855906216669386353758015599206010354800072385583903498347895900870789381247640548017955864973370159712033463551027381378383822028072791693904552441461467442272336872154000285963988613999766130462056926573259167585706023332744183964868658393091424157450906975516472891832419742572304696764306461467520958782176884142824673510513833185273728198097474949650885825572704223077178729623839154525964752376425823257793465854663914451116439467618541963012888023152792281285722028907158780687256783919996116593056734596218008310189371179586031678176233940279389938398253640038637447888812903328116859927815790636605476720350701526648877091986196782141275919405577508941478101938921982982189780522008099930905135016463921756739439876553115572587578219697293035950148806424431293477097009511945165412472557820134008462348813107181769951819744505705413017718590575965938267910886111631844131593632399149081171926004547674859495502288444955939538979055043518552631895338140229869411511751466500238766610042080713742868356357891465957030355155505810534319003311856991017419890765948538053442315339497510415441438186881816175614819989704655874529839312548370150337648237893125833191414647024838488521764197932358852835978118204314849717264351710933920476198597840663229752159166217858217118958610438514231790382245499646921771260934901483465519117911200188032080965641801825125290862611236873745367749040638124038803836409160618259968091889925863103614788337559054844660473977089879337976925593286330354819326494910817703806488647140023596108226606419399612087086909857498377185466905456783312259817023144155843960115609182447208681308248350251371270003079873057728910376697680077306831292716863208758806330785594050443487028280312917344834515938950210367046784805996141959230796542340463297317397966954565243304132804668284670867231633553970707175372076659445791948788872778031547688240317472609826585443498672602902281189808743735809762070506563545713967013531642154769318970026741042719981290243218470698213271648394617661005173478331922757880207859608927692859604054776066686151203470024732419576660799769530007385947664096886168721871733621312476066007859197141167689239293529426795737328860846646441634029029497051639084967937868041025685371250191110336837634221068432547232354517952249482378921030993925274486787336122061836356337475827160430972174909842105553098454665169391058329026386138715078011689980851220969653539411567171375901583207692585236914164267010566201986625067030615254099516256830583605719132876292629601417427472860783131489120933076716331096292524666019110986278816431836104044984205680331333675897021563917665515993577873413707492150803040887140406590576492599761758673713184993739047062458002119108783621740026555487372590268925682286377563380702986864723167154875925760167181146723701001531832118755698681572120276428560230399733200254348586339553083236108115650578025210357969324933564038312119359279956356968293191258333077029366119651132419038115457849780622512727463162811244519537006191009582036220288426675335987734183277346564191832089562144204788986983245013026669872634016594459715834948807163722677602302095587149036242528408599177748938563775784493226714335367232354939835307908518246096872219770615904122433817896152744277003331941370517488977168749624382031944109921986437434265604642552206608621666349599307101297308216094649826335467628440372222090898428869826814688005661651868789407684925529703608308384221875604739633202363369184234962946443528695229745516741411067082707059603610266282526800721619419157508488800402439664819352950828177024750939326671458020250664744916069590207050924808876529228118402610978027985509277509794073218491502076706448890873854827947179588636714494842137378229447244496232296532165758185824202231135650424669803210841241160871534949037184029315320822419008843189487619918629278062457027176163080971464770142001779354126782984445116929504269452151016284703043403414762790583470660963580800028256401161676686541174521579182382045495874314919613444593593277960574532872652495575643453024636791267290036551739402726936153169136530441424449196595871331048749984834453260168880823032902905457367475252892232748766280264014682597365279675840351202337171448986439902307127866401606911907957115529510612090680971397442719217025463207377077617517581986113195951570015859042402736819844335983415160722944431155205543467818487464266798558560091800745231688502015460906754767377995381014366969205899908917955588774696358035867836141507859610726848412564052409557450852064815726546373558565889847505186656475902625878443872063553351407270151125365357831890675913472298859402544248836325164821787405120757318718764718084606510123427333814614700537773066431765920413000887522838776620549913676119828999060935359653728576384377259753883596525871482654452256429348538587759740399710439139021719003272893897787684622139171726725240080221949414530086243404401515325706004102045514627647223064931437816760172086425341471025335084612540760489287362937256255529994705619122850417243000366907886437782635558084588442946893117916576575389891951176123948638420847659913501614968025471482984697776628642863747378837695518096313810903343698305672390232437571185837662856394631351194027500734687622473651945190568136395971249641325155247653779302799490746435684625616662232051892699580442645588316793472229536252346006405481028460293217892380498131459370083457904464307915202264647499355153153659458056726154231071495894886264736246482759764138974813005646036730259435370500381272107435517666271321125242672650212350959368276003443420047212797146339734592703238692982118348604862082967199556871345549747974059604012247810379130963794060010438039941770708299069471208490360607143421165111983722116709902100152769857974314287116896047765878335497303329717504140514804037914413835023285277476795117633696771646136603734398304095742688545860161154387928693058044460681191831848056133517738405255480330688310484314695131673905526234790167038796143045114669618133067199718339239389425262366130654932039372649300351717437877692373866889162953747406941260641400637601104546006724732346675660015461827170565944704643387635868694447679245570648778819011088393477911499093545216884376530511297311942113356754600042057091418987330342427845942866631386411857248836021265457327690404807827892476419019429322695913811646880972371666608276431195872696433758217257841701282076354345336788185506707384706845389620172018141898231645970181576151790687789526929849036491176229727761509001296614969518066915701941954266264439081058133142504732713215537371291994327280764000390063816948898156111151303843665532494555681551091269194287514970980443886109744651689546545751771641221703883563208463508919917723974366112028288685056787808148161019178302564542064668325935456338683313949238360338658285206769073571956293885426497132785560194682642688964975725094587624223582578511929383097969749554653952536063884904092270971182255951936591281895896002429938079723851540330750341891360001725762280029841019688133449655823161375663297545375135662181273007050157188037653604927512367921798172384238875614364318869341573430274702578156993108934075894214439354920364580520263725251827292078509381028124716704932344255220620350461870337918170714580726066151459659129037374994037859038424369564862183906399226169265004736457281832359515612714473361471607867645663387544147281418558164421731381266181046142010536511153829321703184693415943174761527403942549959634838604223833809929198034316245191206528253870433725245776871124451905934387542978049356139286912310786796041618496436064749953889715104871345362426856468651459229900390634787652278312104711307694793802173082267026494001490065705960740096209315006142884114353491448282917832704380505077847591538633215314504081558066457809324583816424763128953668132445228146568751290479475896353762953844882617117007502091814587563119442531298869826687196222933475737742882086446476272155234607596503997593422116636068612347695914583886249511384717109902556655832773234558960492351361063842128126999576231547443861206738977224802618306474315245068766003100701311380322746921979123151802039188652471620631726821748494199699895020374322983086943902142137962908116610666381615496114202814120987049331585735687611697291691755899364786300709355561926823245470951597875581444562520476040576548467371669949500579763968161561279161185734555087530949364135292254392521696523803854240257445193391353045397287237969680945397435757166602085488851672956813066232191208123582211558204396222979007570968346480870397872305931007531175006791766942881476819368386811421498249932360878503302857385412029643800398700305554214842670123094754057066658103753633323505472902224504446285805508248926829799504048356227278592028307750098447007066110383212689550308629071528153607504318150411232503191149630094914475192058557613056871594126218668934555818507627250967809676628109101150846130866852317976737483011431275095000939713703596345289591701408647705205414191555357730905951695362533156925450951356368274620697540149695774618343645519566244661560683965513189533502354327950297776243785297253422237923613512331856925284962794629776411194686561081291699796615640058627650672383541991467697625051359658147378883680269639703377375272292574590601289554743762928481636639065616874270250325067673105415648013869368690543514325793692448816018611779745223540237435672407978711263512632810756791826979411754469499921448111352943205585554695496605065084555348890018472212331799117234515279150475811548435586835836511700403399014449519043885172145471061320248900387812421159868832987843640450310237988406602448100047076155795030835795413676050387090508980322544471945623421893718997521632050238697920859082034897700230474380179226875654045097149410216376119613629583877234596294131588910770295682954748006997138332311407572899621028013539718171379841629222241823279617977186500860562398945206745101414968390721332951333863118442863792235571828663770829074342607366230906868257407919099379576134005849508993654731811413656391451540739127197138963392939051368591309560054929381708801684191036684393440561775210950398802104707860847893367252489111129192648438131914919219099782031119436232187763613977614797201847869955704622386287301786537397819845947550262404955431428880756332404068181765728356519336084524784330172349364414644297905373209676003184057139897753122059781932781311664644715526476341044665100963132473218579247087338898996877004565156586644398466162818687478704809612458996405399410662443288346922820353035118865417624986684637330201531356395292345377420247052125402422541834969169824754029076454481043317019484910608244069256277592322184541012879302447316382847556114626613670895017624189116086510364665428205155114968617699272656011471981773270476391968073559230170527066257993755022504340482238800097693221661111691982923767386831456366611469298879167516910555347308856580932537760880596140750812874605698912423234885956588873937619345974075955931239993368798521189414121265174282217719140070265273869339828560418023044181190891906385855444981455767433201403868768634028032699307853413114068371803668497727517403983881979743233740279868171111834825457942677106787919876775355626990195728891736996941171093350071450375522458209490001708692077097735270470610088486062123555330944724754396645336479407609385500046146363196351845434990862368333123622300283912885894318482787826237433423711521540639829583149321095857516425190963503072376190478919719131546422664462624759684518517920602180585129174200598162810327788156402214145480237117579300838678579651511710533008101450891828147184199931829199811766075062981051067231003107631629974888677320611819144635691782894717276514168074575359571661815780259739099818104083240277594573940203958586088333160161144434948981287982206493003287839847749672189505641094337486643181696699032636723359641912045278790355095160953130297161720986801170771582202727820271624273080128655037755438858677218506290950566493606452344412054490579347022864801339108235895106454751472410063069772770046943214949188643103200233599697824899402564705357536126931133629727316831868407613239776294527578685715467313608226026736471961762622753466760325122847717188028747490347498766913930535915367821260565557142027232619562982848153605467845701088978334824117703596698168368743827407582443029722569863405700785515392116222058708191703528995171832638117379579783633490976395008929333736924913136473338773125295877623601902853973342872191372450660833522216548002655291433628635194492328530628276123725022955485882873410549367787567774008239023303359826643609591075581315782293593402905638669986031145866266108647119215838066895760836321122654986965053552173932612025429106469577636220340591258503934656244583429262075574855523220877110490135748727149046748828374658922177260987601666815902664792510938872716101382770539209962958241888812611321540081603173957471687217251610428658284882647926293932253052369082198580943953874052517339079454873560939365648591083759773007646046179845093218358167060893589044123460414706826285024692019721106882095014404278937050895836052448224316205477423046515242486031691572092713044220898421435983744079771424366588699166684661345333419006564893378615161437023675285562229887101560791610229461227599149960030137051056293052532220903679705346100704005820312889725280725256985204655391215494179757169908315004470124486078512816921377301257322286284661700991787085606400730794049743538616547303062958407827727132532362409614925324711902167869958598610467412203972179458451159707861179363418803705703636440477509579594791841655353747928409924145012192108517612035958757071684181005204040657452913449977492298717375903305558508749295354047988123062653694907905261114070823424785950353277940763792994618976725752670542140773313719994095023132015730278155111653494383836145654917653383419753564311122628997499206952816940660872274251372629728120791743630733314857607659544414553411676250012253004452206152494305815373028917508788011030497106924301285702330610234935880294884288538784468136939915201078804768820110461989361834646028639197856955656711566779006507768856192908181311342901090249020353289252538782136640561750157762377690306595060034085634002352098884850502016861118171434621899472913097028821603634727188795011675758782820684960776989810986971371139365199311143901077418312679177614786852676217456720815858065554875909705058490341450060650544946313403833440203241019273180882504374172865136271485695779512636077578636659117295706150897995352083151747198331287930796483384670303417399785078776053242878826361872276159138010673349098623195934912911612550326259223875717123739655852609018198179927976465783671094150248345030598342006050590999012875309077080297370846015665116759805199045798679446060661668470625241497039162361747135002189875147767680154305569775460322976477015912879818323822424025897363179547266787725242940303722812784588410270387926478653617080657742914135480698089779027833580522788736994481478152796145886206100489967216082531210373675696627460008578007403490446340987176550592772155161754451826141045118101620245425915203369437006385579699804274358465773594668848166581715624282929990183809548183648079143264579603401186698387068732813940672479942115682541120065915216423409759705639004362019637218926322790653153585335565206890618317604085089792953129187567428427141712885697671432720503278530019879716120252296985151866682671542254149270527928647341682643299266134404301657403994283523030781338907642113354776902534703317149468620584955777244613440623511873128956170679934115175925597604702458948456336478902321853564199961072267147121539361000244474600626770013961871705359044677600280352587819341649102883529186183810415244985066126933982150205660282718919394022441858091612250180929423746922839948618236482984785233055761240964951697216187370849188106796620995271673180736900851188985284707400802976076261806586024928473814910762600727293196486132817769178163453202473917506463360566900940168180330515107795781488888953288392618114993154744959460340581586785145860670821875560304402870381149817056130162105933852385038987022509664952514875754662346337978553996622212225223750588418349796155246784781370090279342269661412907019399868475157038148908705830604812239221718171684254113283531978934727610608227799109275597643147083424675153974823716112755572919480690269163426674932014706513616125423401833844039773584548071558519409928591271432248615016811131433907246801315126662116019552839515578033917823990937796296890621851853113514886331842378647052343180163629330280940242315689302658976069346995489607468019836335882311447417485344818069249202868031843668121842407210956585140704289788095670511909302119668383900961881134127795639715737250076898340785214531888862719310790874633123647838237500002482191204506641946057848073130856146367139602242804616547986220727548434824431887839200299670694606586960812177993586518588626370232812639908136212528369115326995734897428502060059378265809238219336101452204259631620704765608695767503406065560779521644777285174765110089375600959661874181687141611048963550570014344199184257858591301677898666277438239440243315579438467635792293563120206344218541532402109716473298397189307645505212783282964195263243005659513347700941439923100334766165325621703585624873766519652731709099110825698225542540951524285706730187745560199970287466022611093808900914218739845788254183767475478216175969452502515038850144521151080354715363399140230012169200460176676598178519979016752229080613778250861679346933312344464685531849120133234629446820214766399734978074287875516602400857571955280184767399386422663972040724247850161025144897980976076388607387812133469706755403454124057359072230009775703032342308827623628402979797788093445179917962351607461377114972053069788222177919859018119155997102399537891689252386448305447773532772767513980917599001934392214308981514848824996464010240193215860454017965047971482191520359262008000731813276338096848034843026050383341884174731940109152929212614408951381290268960818987700412666660964803364194102099267962082383688482180383595307802544471374567582786031414229765282740993946308171216448636330158950193616936565056616991935694609554107714968434475613929014589316815677234844021936685497434113278108585630215965349230122648529696759278226768600009020256844666260211599899162716184772677377403048172489778025792908798578893417266890310728668713237962967973646485822232732897838282880342512228913652540456643744748294917757701505189378046445226950922460965246329156939596574924370227654093281007864411018004590337635268331771431130812481018371538180871863633528726617920347977691651515479654753459236609039864569899661610519775133350727498533057883589799799589745384315837668744086166704717358895169938464567211092974942132334256909465657218364119530499305495970953835092942089889086518319639119427028131053094927681793269392940404833222337426275611504605338463681180101746720758378999824652093591865114919503104176530612174578184015863696889577906195934652553925842385543709038019184673954228969781288311077237511861603540304363639334856427211097559435618611797562464790516175558633323984683784992190658184938437432740609862713167281281652012763016129556851907251757970271557976862189804894658012579238200655253770161339845188052683231620106073404382259190971733721796308455463695133516438169929650675928294984409867653628350694060464308525618579253264917259324013369988372473641510255044293014466030352153353819139313344369694601859677542459887090790861001763990797914379504855088169140397108485083152958533864390020914917061030867692122095868961750166309731611321700859795780605911623186650434590929108146828594887596908656817885943894721869497784543116974580378797545929985214730641998434199166721592098985854254963270953008972215787277555426843255380326504130531288104391565749359209468991406087748873986338650379900239280755532364424361046870431540746420581092967658579355410758835970716944448419819633998461095218382197442096761579988984945541582627001958890671895900955226466566900520823466509640491554768750970902590809865134202547314936453498783133371203059136784355423061196151084691518444316327604986814760980931174801965453039596706166471268932978469743516547255707456933446585203155951770654588245896767017582023657165044328734997122583963954054451367733641414813320348328374022284375826182130790575961808863588846233637409973833304953414409648665432280883982424759908064211432123175235075831701551662823869048616342464756455478337352651766632824215317525465486706933564690713640388428710127138420511106740652578700379497970372822502767023838739848456820661458767767161985196502311493771159388723677914997312197620456408936340021483006390751212645968809118660908053470125381605249838572133786373863111935537893657590407136926125136390138446371033093165633253989720376560187471031619543321746851305721976472141287020626447192754472051416054357287209306031813460956536192045699155051893179004654794853681111961038996861483393531150866452738073818936082586807301670560590396489082606544660994466791421652608007592647558141055044880895158434303681634397372144603005365254816081445127507640472989519452870710457412552472152634412232303885467880830700828589122466370790782949275660906793139235007979715658362444322444233501576952759295138728918739964393748273828777209382091578982210121748639558722434725466368669568657822691630141314767564922001255844769257397110510812220761865037498955942419922592038336476053167828310316323633163048722016317071279618057559188482374520635122395792320781979965330190365786114940544538985164898725573936852453229155326946357546190406426862254874594653372323029759660278110578627913909512473530676695402493601975035935131934210715360687813363035263521602324095317172404660194725127387024815586420129035313219609433980063262039565644449280942857440231769463108895738377245494328479812007932607987719991510620618894102534377169529476828117296147137381360185595199469910146073424473515335910135320502206775681752619616852782976053014049350875824611618198949401333488530084416200910356197552529553749868950654741889401216900244289953990947367477007583836933413764772568015286947599360813468029052283926291114691460640566353177607739409999913931363857308866770050588143168028378456885588553204424949377703130277728889717806154882970903921989529346526971740236389511162869084817358322561373770241376923910795765846294396750964079180682375301108794038049656962149004457794952616561778277901880805320117526426193754157428591381045479676848447745522350558730626437823342691364817479406109574499252060451576093483203471352257446733046908208360376911299657426437191870054956272680788751791741113343020521544400464171223608616603244732351206137459913652523580626356587553951435035138241498449519398472022288839189767432156526124019738079667545403144505170892799713052056499260920182892956758286307281357735861260955172165245513344877009632061975182056313632777643835117041238933552202338341269249872807262313192460017415206358631755638159852994921699541680547919030908143483499039807410209440697939633234530110635846877353551648406370684588661880831797802750936747844179462949297603589269220946217073391775400108769145900142145951642999422182588993085755319036200685991045489939379692628591292900382084443726841691689947785193988462655673330315957565310779616357361172164732757701222358496447383939404857370694939978219931769883082296177191905097007046589248085985754372002494847013875529671994180771926209782645826663597090726097548378384459816751143402906034495256620984642314373242606229678858810996370473734343108270866660581963072580438790990175382810716199845600482408272223170974086160302204627630722231533425096997054511191990811573768822398764909197004029534127231740123735313203201882952220630474338194015128946696685210068472588862459437760908578934132196564180546136001520987154643351922433529843351862343080847209893259525087402131736731474563043165745408373544188298621397046383643838968040465500028107433416655304037189959681637077105998074083272334541585890287408628929114440402485242720250352364956344074902635699959303403754307720302529494427843870381037809292073946021365464618293685151748394978753121893759602099726092395963330372477592597830003403826871620360095071618890531446593916379738870839280134925872767946729928199798699992230243260681679384240536279015326919357631864467486489873157193668390250237772535358384755239450375615790406342549385073996102949985494335668042652015088089601553760533779209482400023393349761052404374765437737872694032158883839255316603718290651069152424749178493170924591481033740401850940350108843443302226959527754609824007906189768440132544285843702988687128682590999970334442196258257534051797256143110306741780862802556852076934177477028193259289326723357182053456095039955316986552246478965195606191365255632755835599062891814446578326287064070086869858568939299819865329504215299884382839714610961246444089575131028315454220418458756154578573583582182512316452782520728022448941576979141707403919835783176546293860786410670580057321806387599179176870534893000455220469720981617244269536302349113980753571212830550071477360950064474604429039255188341969820951386478917978054413478955247562098709490100782083971366552260020519152055958248214504769840996120473198555396826675280793726427966147554904108154715026094473920409120926797376978384183930037959678948446088840279971420185288305958898730565277087074834497438262085553515599874561659213491264548656547439770294568011828809472337310042822686176216234868289291196646835104151894857569949617983851944263012674432371500154563475190674940657344278685949006744197924047315754021354395205840859591957666345353299106720789036843023093057857836540050262568827846725406990448634632651195109042294669873282936199800683677271557528645872564663774064897033957284677954884261124351921836378320225078069074122510917040097620948161074166609891388293717432855796684162709948239374232103237698161295733548475985973879195398383485064866850472018348008365876962249543763444626282198336809026727715461281096077693202921274216960737671761736884553086168278306642150842378759997140883310373245777654420257890691700822232456101746632957415185214196264664604788434128674057792169398693765693976412261942706967785863520735049229715492899414808259360049407323848141128664101369587401728114424024064926019368406114991168658578491001562972392039433616221285456903174055093718737560200997815753957533942492392563189983377899247584359547318651516354732994886634410359259679454692056415891791012544855298218010380171018178884949419712400766711625764790939458685176249251377342893668359191031792911445338131710030861397818291485617678610512999375331658925269165346124898736789379326079617580857080814602767015531005989696863407152127913579585372828017100266955319162087821229250336476800670676119742762570099344616606081982233302476947975775401539830834065984246913175391680455006832313717100258262742748287860441264907180418463728470876468189961954591937944461023546118465847273348613845376334729408513972459065314926304501159292308339686296106495559613124910714119047844866798221817893642456872563906145898174061536959869030031308358070070410716527389467908890002215568989787665982654796850895561101049985007840336173290362947697080566659737769262839183798676121640004248483288747559196906563666315856567487537016426995116063534888923472140123616344773743124817110359046369515159644494291200610462688030405868224504691913448181019804693674001078263999508188592654895595476058486415143645191184221953635522141544752202694824777523980319527151843171235759351960731289113794751340765549983111968104638027817924010255901540085427965369196731577052745734961945966151199121562263485101825835163669289101135824523199856153009686457891579498808897419075604157504083057311446095501945485414871587101341718441501654822299192955705261928740504578520644675116936195693772477814112235516228545606719441013336084729209277444061311203800518139698395029295203791731683937912229015416751174624433363236483399148298557129143823460745999978693754837621609613332276582056341137259819073323854934242881913518594323147692808789568314425186965616726224133795882445889408676731387772050557606677486463831289692103186068807155519330039273275518816277637997573037433203021512869855609116158096216843989441781714525255058526302759316282041962616993972042911321872129486486763362907090163932242851700044937519532300531526077213832729013995851753316943963978406406396365570896447406664417919271300554838275410540931732415310518592424818458038669828429447739986912261547260980154287543086324109535715353860560131841478860045093256868459930238759604742718989508625311579763641074547119618322080085122497230586941842217306599829364958983924670415108495639349181271198698458147163950272909525978382546073787873709929821373929177969521820563946658849412645268345343794029245600015998764055940425427035062894307584995323223404138206580150592036050048984918756626044245473038347060436139482121646300040427494087250235880841770705229622965375652535023415870353947903074791094075975905553591499701882802371530030875235836374820527787653446474319345694894425622344302789296284045918479237464108028473871981742282229881985552856529689092532646663434745327774961633479990676924352754251878691054672952277843403689934463595508330469424260375052038198654189000030462502763765266853244707716527818860859916394388467419965113355670511841654932258741360458450715456034003209562279185073622031334084473519504140177193538123528422174245358514604571367308290699417082880281197546393879297258402302579362523773588315943310942539615933989679574598925882714762116043706605375645463427147764951438789995303830024955506251015773482937868836455357177652294334756796292739583759164870720230950783581929570278419115319949916099843715626922591205882464926165820435896169826553907837033478032235645998743979888686616926892174429904929322370898856336487010964632174286526655596389454847208844063393375991131716516686906313931376480712042993035825808498374078451257869357228534832473013881629133702411603180525006513664058040402499978201573863558380977078135193318622982825629724202768372437419145871617502844749943157063007080425444145183672553982334934423294225871991270040222664910288322392424680746715477738036002142026176773473775265094600207851833826569652501260542295565146740880349023980736763766695723741656513091244971097072447168481781276008961208898311349075078330932185151053056792209473577672033337730413974176857562523160064861059765987446998412054161904395815453092845803365545962158968681222102555293045199203805240117337299352564967649309889853520520250899581870907877908158331545112659017108354049884307618620163517321353297271682519522608097718399105802864483294906614538295151286589525339205769067823245351712949848013011521838128205167370514317960698059344517269996849090013350109718659701542810504049079749095995013324596514610334896154969076801513256674290461053631045616152787420674981209030545526762501887258970584732780683048135776075786880311319706650879321016758326618654373957668640188834686549213179841898347203451888109520692615347732967467909319947683702402766388677752389885875126248567044083188101831164265898549539624974389234092434573091425354913770865804138897826731562560396111339240416726022627364631104639701811563535863848474137746711906895733453090430317202641102205362483501776520146192781327589151272842891717044867097585010514516913420598210343226297454751938521688832003217212803271794051084549177669705248777682652114171036944295003843121899783145310354439995314113625451812621523529853281228167414431997529900272708672761104432337807137926973690406681948547836230034642579794107093020985208483158312719748264189029608143443339298576590859177735513276551326960670936215536173986969573323563991590725687094359377133771282744205444755435302336277574769972275269041177075984847749549855723977973130937182702286689296646378191715060333300474178222670464370681148832051881482101242947850314888141548365376998145862027267779368001079695772103598038501217140454020461450736148744130946091167997699768743503106497847487632902859266486215529745559037942034163902058237445821098454132994913249883352674520778955732224451486866917439657058459856803332024735727797738910453634621054641074790078594622840441272353170178506461259532396179708821826053967787004598457231070671935567522955075353397618680532215886010332131605739085680389047045449026775023014843019458631080269956830594815302388763017165530068810382894722384012550690603408372518890596116860320082163095425972710391018179690562625124538647647294549431796620176124018059878399655415243897187324568259215829362113552281918664304279892177725977260857581282118701371740924032599750884009835009426647177458833662593502663708077579609039408336787507772843908859186163676037436432300752005870322212667762368392416683535617923730788664948321499538727623315710405421718722913820533004089154280338043977368855939535647163618582246855665598164272504703591485732450796738644948370477571317889991235356047509524328209224338609392844980673789587398090937760394048189389012339977713706949587211118084519712967736930233902835240897282722302696102447654326811736153435226748192719914342876795871469185359000236472093030038166711407776361774935274658454035730685052859214071439284945113603748715915916556961669730254145496637986306562369976667590875586461643444292504971418235812666442408741514540379406044417822758172252618397599721677803692336491421285163483588500821921468234984230346780995307608112998644551893036582461523044446625635412864623897500679797947656010919121921228538148185035754968330757436393717748471955369690765190499704307820031440131690712396502896770732004636098634747321581343594564145528489281539060701143389982823533273677852759462147012792193243668499187463271620507611409441020030792806167130886606139074790244959657571294371250134944943708553141187716293956058708700751155017551382238521362147003943742030190897358019636353705796027293952836287161360820997784227193882076044047639617489744127772351231369888233212380487811139285934727125626210365986564064098487951948069930212079156289825336922529983489605623538635193318800900399179596624419114206198152964449634147085787327835752127652669010175734812293096810135899325453623836091793432581009194099671024785145556621968883745621759229350355780730144322875094764728926332244502375486586751024766243638714365996317514032935969034570598466935877581025075620247955730151409390203542662004390474493933378984864002370148780895972829384574358140379985096596817436623021369422851429603221822967608400056571812338795771371768862111794731896457078162090898388105821756915033125448373437251365179262878164562778697923256720867788406648229257983715614384743359224187817085252877819971995749654028226486704301531843959504680405866062273414625531688152270545393435078749404126067621066543727538016320396613353663752330700315094243331079711317457490408449639990438725553612507075334896945648509693683788995089155070054459024821660742659648125743130550902085390530550277965855265778459439996090077193373483809599036969278227559763397445635543256922530228862207742007424364422461979875485638899452238397604510201865944407864997524445463851092228537156047674013948239840991494136065706824285830830697325485872207622852109456195120510437916025302717830655028586933566802463813663784201928872091095352140660643206249758570083445660789892768489187171718219061442692651576548610228334083234371480783950378510281481858616906927671811725831703994825508002360985316182569280692627548210523134223547086770951921873353768079603226838372315638639593775359112690919109311257026710794772799854415270135881084720230248249400183965200950363502926368087726534681649333818724321144902251650442868364483296486523904432934165049941464111644546335558455260897576890235756264313844726118816518389954236832128702667517497572021210455741144232570579138524047840849244041117486258485018262337542197089496812644417576273886603919302568364132674338622393718264766905074671225800614651219127559681412277721658016965187151666280996720929806851089789658614932336293749429166614788168469935288512076959854073299244003354183915208314363092922145656259722665032078595784793933811450237260246150899979442847907845122415668993212006263996135202520814300047748142912460525402913938938434550296465400133213151789299361505143904274858157791173188671156000609819855537863183975503521053932725809026595819750737013832101581916693859673796944045433142589386737440087499323120524880052769671282778570732331825967716942507902375185610191957326477818347135480753018324879350821471708105407371521953868787891116554218495114439067831659438497501512154427218558217029814122369441770386248848341057325954610680009850606473084568356824663108460049884532095286825609231531718675859590912607884857128453450243412762188341089075809492866467227843390527470250776107009360702875672373899115649681986662870415860872345400191255770982259089418614201053721831402603726539957906515680236206400129396776016299065957552723369780362487869981837401659640599798865883495819319217206577388595963131914554532600722666803452857033292736981903420287921668708255934259173805342354147063701357485971265621461008051911090286005549882550940277188558883697165340185934829582222932187861283632403924072116377895410513913128910054393441938604649932250340824874889289975222291220913258279972333855349749606580315819460148284261462333440798293283459688599600131203979395824177551654412221883410552710770499777325167331967658191316097831892274361589487067666401017369468709186084922456346331996705283358402618907514306533313870196673257705457470161213030524401267843195977667478449210997493113022150564433199022434834506319267052631080303295829733001162715608893328325437518426825847993626183540877078196271747648809826595324918015987811542336090501640975441286134732283169537880934847042103860512452304591070806819139811809936428849264218153582716309815848188767411346924534968621694728425815277850049967494587947150076818763972591167848365294458222602115211932877484528627800390071594104195131590275931677256775766701268622256129042401485342865259799405840742694707354200897985352166376247842348742034425379840111728676184682742197443420362040717034932711200145934079305036697941461925510976760885194201980168988063151557894101062639710424294131284228888339950988024380858961296102102883997317428318165823270180486538457596682977274560251410816095182437248240581931704413283550714872440405097040261186890984667567024783379835917709022157362197149018305801695394055946246897888308401325507111513000583609263856373377960775245316897514120180656651440164550190025813115860256804347238534394852433197677561628427898519477405521590772070713457552839064627206239317469388338070635475894916773826883732476526682858781330121123856769931123770369004101571075661808106315653212173743756627826163034368859463848846736891397761911772766491411592826238397799195311354030498181026584477853877884973977371115643882064622037724065434172930764753059971662109818488538781249352114649605827427756895977652785341250223218577901662283229149341637910303854218572003513333686072015916589513981728482986274650293517291460780823788660343483939978582227068209005674931484915497119833421608928346738161798212517271501374586972970117776944251612961374328149874711994450533840615252928418488548125656124665216693106719900417110764660300021235502172347305553858535374168402648904804445880460329477845817247801006028459357788862367275363430383184246299708804996407480298421578198854762158782069954007273381725175468700731037109491118064859647773016180102509216503539410412388019435500686427699454923137482565768255058844801786154694892527710353813741860563497353624867713125982621594228792250218471682871832265845539612118995512061583301154622781905999938896768984534194438406527552027098755308817223640240848034965941572081658451302776286586737176280875275818788974479791058058755626180177135451675210864704611575525199911257405411538795717002900036495919562286758118246246395238357698055968572573881512735241967478568627323931258578294233311710876630760957132264264231277352607883233160238693110623315640859973936786211040226042385860080853311423915567916535500452618208247916845600646307573781329882749207903964615645775510069136417755345954860942312070376837952191806639211416506735542735312811897836581432110248049857107057524796916074673748638431816514154155202243070227990237888034975128487518717575983451189158229924859420831514738896628602422919773460603221312325076882226989784597982120126278737934311831884560074675852598162615544337928487164846768478576951220745832425341706418669667004446588318353993504727565232470306011017597842335299898699459031785891384351597684609895278521275727855646325729894547274148439419252417417032647618301039454595076625812271213808892240266546542728509177764094020726929847488884546304360471345108729049266312937362078379592370853474933787798914036651424655217917106204605366609714264470128874549302534509003137713913796049921325069216675120909282191328128171107752939312295061684131095803836744768197885144832225566123860764637196375913276993350184052776329491240757545278236969320780962909262860041067987033146334422606659759413021933300300489438530637721967282240425143574480860989630052052330751644321289370302916317707197478988300838025058074227380486199303075837207528425393978807411061417684610014555869933620424166914862934385573531643630866993493306562428447783282426637031407533578358399343493089901226135261601772495250799802430042692197200962749399978043045185060252065005363316300315201178854541640506937447602703692647949028597861890918158562783516694896494478779700034018224200581798294875636895541256343626069670862106256579305308160623780093766369983795452191534046784060876682295026772838534147007592036500324942861739570129898677250583557636237569430423632846277025005040786205529136183460080693946661230010576842096324114203479326225345349955857073907377161055090786300814771252594078207149501440224289290855090731862342054126595437022034631629541298302820273034569827653448099304283521149439796540437604150595326111227283729240434808031717278167753750966229401122529592822245536712155376726458932291522189983050182497333982010129322389020755993680213717684876491621965325706228876814602997244431345198099767896200298146295417570972841220812417179109473516324042195590103648509527792714622293673804331478203023863076392856206080514444551384833570424715184382806960312698099158623075375048439447812637808661868857362836977524929231040819989346451329296681804399134897112300049513848605618427575102456821826307997860414436919357255031438482593406624425393314351790378487329066368168172213004377956318047315384751799471502915619687912405931532813366082841671671435769253164353446806770117305719179165636076930757216151256943761343726283689236216349555769539175519612371256830603331305862841302003887049745518788672828619185421825021392962087010117629969001940388378647217389436897549502592308144812977940783395247133747221326672788844580864930198820988932517525057867785973709889290769653324021929482186783415336125192521709156769018191462754445912353164932926176729218142487516989000714802964019732376739725176544907456221644377198179395448462077595120454025309616927415985141074494911855917778861195247126599047547005141629090927342332102646014469494672677569171176807144953403693815195009273727134521859902946916631729817813966981691887457278430793194820110704944238150476890872892650326673623553614604615721969327456233991758551064499830092415916674883882724432433545532860055931259326554465305355230031156083008391040803239947304915687780556414763696160709276654442152376595385377223786780101094657414603353411894515611519273682176191860342758649899117882445723764061118800284463570524655015088172510162281972582951989237434436030193887283836068293025482306050065209196651244605890477509922507541709774502235523248041614389444742839737167283267047912970305125674900983953192363152900306361528597179091571805311146558018004262878087330202556642208160728102352108555127195974692106277184956273568662697282653305081709827917447184435298781318090072615923321892882896963022216120762278805612523901089070188053903516889990668719214262354884901913310364432748479929251585071792316525684517252360546705235028514351673562740955214467313876066610978158516813097532423711097206151108903602913493916916683438488176723433993072127789363845936077493603605458462149322442096019081939156671448823849973753800102855624455091325290594659579671937745180630111176762151202729662822140964258967681676126753302344427419327560202997128419836249791512436788956177018954755562644999259783555538700700971536221156744525081679176225338757852761627050699708169899526029473177822662126640795458040526273370903173253332051036935196251935173015043799805310778688773149101531772690233967804354510409771717184438821719618972204027439579006121439660451741444335396684222256006066468294014548547641903732376004832648009484321474673498054299353479801466965668893133077238881692193450076407587231278484715850647505531071478589164564665694483698425503519373092372562179755282141389951051422214094385085081233324474440244443526120573687080441873698229344709921650285304164777002215252292357148473685175550411438844480920854235134818911340026103221148574736243541174107599160851230648470853169754938249780413627324675983479873717793721929831432212112322948969393774273311877894103816045205032865918780672708583679250969546078409119636361942862002805905416410470719745230522752568927047451973967375972991262339651648100501788330520010121208728650243632249200851371703455132583390177144943139972543593509026077617293330250416965455036324244504679058592550219214560306926990109585629644338678304832267175958053884621263162786642742952849744746803744154197763107113791631019155603226664059246884972708029590265722852096383823041335530783222702989777993218660493991607305240412671197158505541319384691414760947122744174119540972657424650188042113567096616484845904244927871239013627126359106792251847698136828523915009526588254315559136557689973020074689620977859224345723453321142111650318419253735061803188454255662024852351674054272498100313425450527368030907442083371347676575913001699444475409569824180520542283341776683969622650549617461342248635733969717787336906552075680010046453258871989391717441026149180168312607344249026676582067366531556392190394943953891910318382935738508727586934173713009753163053722727253657873567382753533541871609199862635989651126908397459323766656220674766601600022410294139103311898507864809930162501570900028805489881984599541405941480078875644645198287736008240428315097762877726784050092898422449208651796124717051081878138800425248604948241807879922672776648492304854727604024924006342157582737059730298293178838725569707813075908197631045733646508549714021987042434842210087668602055677832040058270403954433342236069328293950052565366842476420813449157861673410629031250543323266669306180716135700485817915590599029442984266539652679810640512168384044502889061903850302148449828630432056189212443465552538754616813708070415580452391222809008672713764791360973204402307064007088595396001472973990763939856347056374910099340954848628564062328937724305126991588571340201014516784183856095374772668866878631157997999042116638250734882631076090025729231256980328475260339281464237164551159086146344687638326878254322837320295020878460596431250445472984440958392164379380522604058302745101693330259287848321344387527573351702878590787916594595940842573023204289404172668695541320579190933734760966410842787384634490446231770498330188408499635924336965898807090214499724691047941934941505393137002666970031805046018327007322131567201976288422906609611063613567734487422452551243631487191534169117338654935700556295708206609017648215872268848727097520767633341439800569751410410656392497702438838354365943817861277569962404019319593618692892019386263617704404179369576646350735424060880148202464310968741678638921945944955129704139613554777289372596444964404625809937928120328851425442999918440762609610327294483479453443151517767856897183347832222480082523497188687596834165211430504736178377896330329182737216948180327128171294100159421477634431713946466589086058934730372003666412395232233602378796744992843850159736935706441200959074631086842090557766558802142147049541434485948557083651651543052846866929257172162318838977401199476010733173229730104562810347408509350539515066791547462065258367261772247788301557094864642093954275305798604104046273850118764599750639536304550754185352402999417476268811650138991202431682444665063867281101665057504758700758753416647746160266632158935517788392825081593523068810652152110822699763918414895172036302216916924799519131857698003474216145585313708857205555893990259607148776550297741406460324029519537698968970224391829036413059471383230894602888770911803749428986788203201536231058186581451043985288204209658620411873299206797490845784553496777817377470902097837758242813094774949350333963560484192330691624404518471336885696694724454621892211750491086056139520503074387132995131645030197864851007790425002128757529932149736942750507479192262943628052009978505570105576717146151437713077032290605502714148966694338863779647538646364200280401083729519369934378855685535683384714774515869808889806206814442806519883264515424685658775368745630061198148701443122739958854347364862875800861623098988231481995142972968850905843116025424715710600393352201365369597693750437616142266449004127128899473410529809713786222802641392617828819369248010317256332440354123674137372904016862633726580739030171980153111469068010082881282164058117520235205616229180918682714408537080928367628789825573176256256398372251239906715865637575036987526796316410892800996235280431513030054950666431233495226294545280359791851208177701595112390669924592791613342651556562169381724659840269035078090282817610550892972489973194944730695188390549017856556109804171900334998096722518225065436476084517001311964209555524837836667741864642819149639063079916880035968696513938538410187102391805647538315206528927042408124537169999993843845083921661722559809313254849138739060532959556980720218445920925079400877514655781426168672983130224024418504920695791261374573722614471963213282223394936071804674927706729421392836193664749126668072125540489807387222882968701720460851832911596762686130295882482014643724109751795226447060419261963156016396446571633221182023287319692226853550847950523690910927256463643516126251224352314381212148344076887538970753479016437715844765991953481928703235214989869727496713692967126759454995563882540544812369598847985458913580872009631191197066597452230394478035994618640878888204726781407783852616976118985028731560633065122512163598811706625841993801368700349741845869617485474742999908665228216605375152053869504667153022960466509233007042246788532597867420089382119513425586229296511381744692107711358376760976509957621463969040857582204972868976862030155897758637674671017354463151885826043354987659042847351130262772327024883240417019065360580702525232060701848338166259885130709868120399880073001573520501559039547006195984726921568545956372268429872557878185508904370651893228746917599771693259055168651059436870772996823585003437702126501455900792342142420373858913568479417394764461143891225311762689177146879788592080413063863086926646816855527417569773387396078418171646922561091976122778734689570703422779856952287499978817027288193899761983881142159267962420779441818134685018260240419120108324162581154138888792152695993250026615795882476425014571021365214359240758517260266651785269223810438366298629607273402537749994380297060819127683026860257727980222626982804053411282898111786981140066942739117992878722696629199791420906418734246661273707856646749000209070466225461508527236124031696255610720464782812680262759380030115489546955931302325286512791954912022427959884299949020983202502597455205664097528943976295502807277086127035632099000938876757843223481223274627279045903968160649594890211608575643391313996025386128256162808918046864024333037695321015471935629024660717774726953985982236415985794069672649875352735469919211326569988507122170280483750526132487005291473904407502966326635589527683619845730671702125446562434111408763343971314337982560727707974641386538890666107941747575738565986745629580644525589199278729826202585746434309740704527558374116184696892394223988609197642899843573992042665888850945583709149773951559335707027299395033642059704071366664866679520435308968798988943772665040447383363657047334447548442527955268530139721308813264986699441769378373556276335920869081596756670631507182946395751474446403486577049802951898900304240222864658708284017863543281733918349280918111529066203945695406386029382927142605318455032755698392406604614167985384773783249177023565805606027688484355825915568108132250026828891176655178716027637236732518178989012097373673564399039531090852954099860679684563704838557410564359686590280947358257249535307579194908313024461137427477804775175247380572085729547468205806149451621490240827371831612847392673961590886594480400707208995495705733892146303650113135698259386671478386527253161914211261496265847201870077751431507116905047604635210234040838120859980465298188071391837979624353477489871318169465968885120551063838354898482152607353046580953799558440706966807951101040991523060526699456945713178919977947386449165410308077255237730560351692997468675299392164986233774708782152623481820317968830615575444662426575832179405561649971234116426587724228602398526038411228528158295815771642173718749895438437507647284380104546558176265978679441356589167375572586768306216374545828912896227044897035307760638717777719656348517327941288145270902641537650517362475951580052364105781329188507579962806304010733520010834151636005997319872895592362623992223760683298639047426292246808959880764566546526497117600772344364725355422730789555884535811740453854482362782515365567181697147208777457631267885532663933463755469016813312936420549467658995857542573710183154611771698808873332058905624053848395497372359135384409903143327417879259126633498614735257080144239528762932200045358842151920459262810334897154116708452131872890986924475830600158118991160327632691136267267393088398308562225425529832202648544617208139887669898646474065031172356006308881396528505949290601795563724301686653980752445977852308210312685146037576201089196783878002253405810191494102596488101223721581313543340801490443483564682444397917508552063641300570940617821102802973228408868144431550745176607954582163360674231589359546344820922931214779735461947462321655781507193676484259763334317797861761914308158463889160515685964029053042117283933805611526041570270321990584000748570095409047670728701488486529443856551656388197729750255891132741521676168535789957978340354832948899877600904913429967117500562778921434855766304277882844656365277080941198019897388809365761956387893333865808210740291146776165721236340734414056318016445530870160446288735566259789113389084959707264011223155463730454080881194525670146752870757239766443295080269270691336421458299571608373247829959112285232113683096796751999633205041001691646096320059356092474647260002479148862569174631072675530442897751533102801140752584089434773759211543196598629336136860577492310843220613591070526388784422792293790274708092055629880724412290993065602749612676546616152397229942391866194988722232696411162296624965282391566581191936072877668350528850490872519984644058055414310945174733337370027321176940087844542283770687046749365205533949409749458221140119858867109521454085524465300807565466674106462736628048058069735002926133689629367697673570076217751795772060903156836473038309034990533934537284937971260982992059429693273957437886877477661025802983295935784752001174860547392925908876525877356597465913794858615369794589313229503707184525322568974189292460604505832576685896788006669652412653631375093558559233538256450213587633262328833642091872173963872529386411956004745181939788243829663889364350015291442095101268947703383532322621754739635601681489282335444451100655723851085109852908093479809056233704902437779455592447735530756309734190359934711028646807700405459336054644602998519173392144392597135712168927909927033233111662339903520950841386876950500455647018912843122977201733886417321519814831997592252574946148832056838774343439899898222833301099416301807800762678588380123521193361458416652288875080385912519762523758526045468192817474740635792204191632190724360080447655833065621107674986190137873907033153653537020579184801032368144931483951517140693124675578037476295018350298473039577366867596125591344717039913855253346823817760442875925125302531656258963487587635588640014217306551345616109868977961058180719777112925190405677970745422710709546949193704239695277897426948751704899835696731796764054709148047566638126631222495654060820481894756612700944160689376719436565357253278170225244318271123752830636315463430058283115504349132673895362491049200130879423556661825003054664208269630412735999020609837035146198886508353855796614221712759192186236479588214410687615180118795966130326773162550386877602061939286439661081315402212631918759424625386590713798108790450413533267473896894619983811920531235404502932259186956567279018130466550694487108424290270848862806404993320533368238498488678590655491035801012017380103271304652245582261176119306402371860245869320782786887080290836120492640106787829962115596739613812342511940364951982060799307181308887525000998268405770335515690752381368088961331998124246823641495689499012965102326280474661838946523524145439311690874359448061250793055658338191768472565322780073899338545345305433966710745717097182597402961551468028069635322253959481550770365278858421620575454107936437872855872258075471300694931782339382762233779002078523192064170516466174168783277340123425401890106555079945431741624564114364538224725283348472297684292762149784348184424965985715151343208844819138223520598560561144153676322022419762344043543842809642177515336658173363068977590762480636739464399766583388253682621835391683846690917049584644958295024341993311964628215682335572216021630538479533985836069114841069807205716459514383391376372096206223362605784919511559049375085446974059474775596375791061019475141639028792471554765526146637996333756952362096041639342745071130566192367511853076324609388025956460161374683233376705751242466093954871083387777327726914837913927562531232125075058261008076663836459805915829928542026100138714378756868973094208951873406484366371347712990679709180121653349717666542531216821250618076351490751130738063097952231469281514104416188748790266682727978125306821492180905189994071292000932049465960281812346897933134341980649420487390628833188048021323059666168405129857348113684526363946208581655417098591497386700720669799954862048464684695416217865961151773288209548287998142682042154261986072046646840031356616810002652835528722442163398991750300197231637601483902892770671557760875762178832481748766647409536909740517620111635163819334815977905782222622732246259609850441168443639740133664564639090252759539184496073415477838887364853507337266747399549028158984221405431462516658369975233121028378881694782013666639398161095342638348610982997703349182587385989412988753557683436427629852854881425987016705085410984661062781787497857736751066300854856965926416211765952190976661587161707662162094293165298151984223514244062294235021459770440692308868196981517169786595980653822079938241233816916480043105756772111857740623189467373258091017009170875010999706084188988581649864789115987673813902387445687288648099073554259998147769562180695354865999221991681176415326050644699703916302519638274889790638119734469552092447080975669714529467134600141456105088358971159338338441135038774334956751025328915819414666610615262040123065690986764881868885929807382797237943020270145253792567331119054753032723655397756353248199467282566094074818048713523955826453730988128821610915360098168717466524731894018702184948448693131214424950605992582988113794274537550287073303896302582036487878599124143255626651343447330071821034769404883470851141320800336266909454848603290281620125468408998345211158761691054231003448333507935823334231302812236880872933532534650882928066660501940411020853861075981923786441148369289814190229466890020101726331303433789714297489925698327054906100932785351140229160667060706509851534938835773375490958296463244087311936060010515338698940327872014752746050716557081500959081334138311808408495129846785802089738395392627852295751697957923328487954620222445986767552324637463860861944156642557604046084884350229179633553721096271934579879339008935325541355479986862590253952082128526440864931227176494228012718843186404241628683899375197816540022289615007187787233054593734330278736144354509498710631301756867308022028310726561808120925580596150960344490866178194067916208054158498527141193277538032381315275916702858485381196457133989510215330603615537621685253788169453338908476778706093939821551859350897435469083656520701749444492277878443257501462203135504059865307147942260186184014240501128351475312667223591648890078216221427621618658598476844549350850277789292093416344655783200501969077232017715409685971772334831553676275205712853422124377229532356952086503005294116229418813823977820160753400412074980240770913160530118497225543922187954309659362381860553464357959356640013688900572482150946403127825215855101418085045661651201070175020537042429431516275422864274108637201122969636226765822122736593960127090748735029614535660912452040202504905405475110969035074264308107368816956862618957511102128334488146368859232974974100163271272202409588843971606686609041024659891797490978379913793381074217946955503412128189276941155940107411402483635759765366689897835177445382681145773119530748942384258170813820607486269377345577770326186223322297031552277191692861150508714712330226407381484496492326059431256331639089353229221832281256442776319922227228984111623826551102636206352458649868750752906974258119067712201521432872932241859672246592959922765293819886371344260868221288491608200620601103194683505314703584912971581248556446577774161766167081495814969864953697035329046064117610805886117275792511264918439843474929206632906570262569317194143765193335332498697675599884389807272958410361126535799379399466629334123270361262700920989077513329084317577332309870047983532771530024242391805057020407189307776212340247882575849178534792588289467516137464017717657537537910460536179251034311592384507501808035722492827721292186925287549910250502598148693288758684792626668682963988832351363557272282296482346203585706731423771767207605949167251051090741935274504343707847273762750732795915738353909781201389961405639105696724767818831644255746609632751867576358735985700321336168870140399728299756817234653357651793002012594265976600208374346711972414334959126716558232636721775670171687664284796728336146264694369521124404834149677051055343292802078916358344041914190933060901030871119311412791360701993514885087231894434040456518789319461592332576036096312421528725441927033724571451981438211553379653993991972889668571901712282688932276927132657963349833398847201741529692198642798663831948777410758788057366331646290693968151574023277137020370992412728572145081215855320109312314525543287758111719670485918506541235694666176404474273436724671641976829342921375014240514130832614928394787710452465880829257191136530243861876535505164555988755413319173281090681435092357387746495784510332421972164462186559384401471803001007167332147156859761587926246651394254629796773671809793175217942743168130425343131316254436098766496641381463157623241513608337401886695562517304147993665098548241371809044818609008208969817005088779474072997801836126659469970714567426888366835124962045239833921687320415490601371742959019034948439133783660251663734106061328333002627387325525633112076074704048725308401246830841367170316334253445783147814549606521050511790234620246887981774892696809026010944553382054526888256485083202417243163459456466136779142325872558735085424168114551736086398682066382401136085975421377263573731324434780670478895411835944209565185886974567378608978711045152885575320452936156264192241943138269940857475706115185599567556276219219272895528442031120931200593868306505798288010117841205718980388673238166334637090764394638685352018030205599984389799225184925622140295253813470534874129105399571949535341982107126453382220247842743768320057237115027240669398212263639057312252287565252227587789054203504831614761668637057973901403326520138287915294899004082126033796142674185795337508067785862638248269775510056137485198053063615909161289235276141882101614280738306757024994102803593990750927828580551108817748181265973577610454579654774628128084306239584903303013998090936128321272487051381899820720429364782601173850330211309157670871477172255783358573715196676797370627152518228972282007753178472978438095776728853877862475541189752571947677996462042932332972605311392695374106486205486991177670803554056139892817528483299919552359647045778401071521503203423208049321898262622444742817017755666128839922161528172449683426472397340980890033656495106100044173810472935125662387689566345225721602683714423662955990771327463628069086025510519031505083762081061928189081479803286243077131929836562855563107782289107910569866879332741375668961513449103704823101023751228150183399011203192678330468074890437595437887557886351473154116015086830315916653698684493135665207338236868914603200720851325735076731428820297684215900374129401832478515967657676124675967461349227254656822106694881041300791716613405642423964525206775906050476658943683316389577533655164618477632295465476971643853799695555400505678439713245511138928718630232416356842025403204831821444390273941522565331063832789959361231738618912888801078138255845808843633771751950636050279370908264020358756763676880907427371819010478009006885982429512331805544143622849745610290630274426027658045938813916192000918093389889922877307075313712307665100338557751631424668280904130432546095759439021370041968612778506215344271033504793338347385968074278306443021866319875342187727993568715534651653423939868534166687624714013715687497879911319826928137506774312182815917194088187826870563720499013958476396789937986096848623331870123596954573766314761842307611435622396718012109304628998062959176734028977957035206604173426534097441164725930116889692003253242999991705523389731906369375277757542989183227158610156647726607120613313175206467034383755945085074619928456178693858073971754650881316271697703633908701865532186727978253218668493640946005530985095184101788546521601366901941641317490046315940952093157199490339279357620315998234069697985564649803649132818301682311001671779920593713235138719500865587607331646700597094752912582540129646462772079391788862466369569047919714765447977813541668277111478764594147144160351837976046166884053549654728275003466826560579051078498989760322084892709522393496529359296801562781982291126031960109630144690708421076000444874119084425799735317342730878558653804834957278231470626858142786904358476345549887616391664547468287153474347249364035211625760374234541064222671829302957245242723674800063929058409524161169835019490814592427098345323894718729880363560059953363895059793835403341032896352355970737564997769004454910692362288668098806670129117532111482750581968563445527488734292862408985867683042088019175842018903460695653689827239128838843002594408034357097171106572286534325204846688884232252344309658090745054691059634660745249819965218885381759272531801361233998605207002565898228576888591755529632932231039494928312067690006300600373955185874199653484882897238784297705954998963666274843893168729313126147586250270388924343213248350007880596164310006528605318200794948840094843529423292682296112997400531070530546848613559700772162131899467858200741036423566671849689365649155268756001116545340253924337341296598910514574355014808039136692719923627027704613663116655235180837221728937989797161595696059408553298283240343098384255497406715277109988053758094014243471638819669018232673813741828878838183608589335407464873937808002824395961022230236543252703255548595741758648575585950872260621159002642882275876815960408567203961291920217613247428091686816023833256070286508900844977203520125875097438491094192005124202987645144682360938460200813073647730042420417979509775360691750967595640017894041792791730041738807433660381198561611366719194377135362072588404168635017416027211766255907771850854780157857496845800984632542595645887207156098140356138430275051856960632842611314397079321572136029446817436750404792513422336202870225317651840216312425468172061790149588268668664627022366477984216745632780413524987526153970020893823050681438699400286689023835792965430566966884766596059020922246692305084577722310779457207977256933786635860847424859016468001493447133713887710306622969370675140355895770681132102527368462548241789238325658907102319463490441248893410444398069722553750476228856029656456700159380941386022407541092078203782506363816794417391991663260785122527787885840749828429512441485897149702815009888427023204155684640653899252560620400272927128993640476821480314804437989882763885303155833884602791744370412707130728808607864136739883364856071308996462558026613273512726576025123682480639316601147880298296313857635796370527238366378907535350182184406686650476982618231276515883966647091982876123471913165465192847215145440226267952635760747068925116629019353405111011915916195273936867090848953567208388417958632287512286512718254861690902592652234968817227835445229695440601012661799642624548988432679622909542266641934008234063162605280691973308002153232317852050015742623301477558430896819422373143681047507210359325322445149800169959480462612689571151495354602954941070899082592976037052479829641677574999165145392349059088947431813007291346980006336859426529923579539893612917608965568029895401638545189431027359695789125137238170757058887757801346196568066692808184236493715409792732565287686277491809031639822284249894596086005843963462918194715437222920716458545005690601978189184159373715285956605413588936011885897408361135641670586878549642985452159175013464539560273392147754284346112126385539591201560332092852578560375649230139877366044552561432932201495778747499254145762320399207985363955968072481063606758242711829070768820915706442800084667151502520808800891212492213443168953579374803969686335360918567771878182157053171749722977708768187560067095864708816109635305602180581365972534568924162365536035926569900573907364225059779682496810366379770882898949751943986690137001176187096763828043649564685538453576123713087858036561434342728277018188942257421016940184348047014756810305919198777713781554581417797674893625997063115034262571471901726892981028459612446136687584789605687580405441416268246772555325659190259937596781620482933152628104238623022130216778518120208182146754415978335559381933114532493794454721523814547237884970403091798303493015369378942380155421658809510227358314823051667269820330792782676846884511649511540717478215619248292577281844011065896967348879321627622324952586580521887998095653217369865054474355652079818584800800555988932028593654031106962958558384276575642157799227856359607902555049698351445294199820056493504009684673467576548184069734577452559006990243285310780601990127139153326948697058522908697930510100274077611609423660074899383396713717448155177411781532759073110560960744404103207038900638795496823245643660360004957086435036226643004728468070203951701662642641909049597854390147275970974390108749566478205597249093085991389090391238739059233113321453255925207908402375650001315471488739292243531145447197096323883309991692706369264819553044049338343157032878847525664448552519133515463790462667003838795321913353318866624819588414121107997253777032366684968190993996621915774920339035607621639883710578584562649092089467774525174129091809638368073503315181833430441407512550988985332680540676904282337855989292306145586636465438069976121156114307085398298491223049202912389839941746024276262474782922383196465787239596928610629271232805348890441956447116938411780377233496050419824243923991756063891588684464646095549203225090029660649299173388547671339646530294912091474251436796630765841960822644890328232606344119982913478691736594421165075727425103199872319550306480445466739754524351400287717746594243804053513094144011401493061744162178878568837475204979113611120897204153225832897191218476565599712279692531136420786437450752948847355717054220402780085788365274064254406165362666719269756202477740707998136878045699695475067170360275434788464868468637285008493553779283295973759584580687920991898023405514546886959819255905073895038622786015601994282612120139764915658901710460140076694672906988270169387022277512855591905269761926013361555693320183076528292144812038719781722084210514686726190386685600840565800604426023396401836682065661625024728058299737054802264945067133401566179690018384687551491767945083814852230956262426430767007738238424483311266671542374928607113384770474367825980446100530668071506725000363260510408152677023973714093629780986413003256432098150974171354001636123395032668510867631753304799543625049090164384362894263237533489268140292874652325238648464480140193522749988959580243155957765088813681490129381314733567359148885478717114108207647380223970140043485964545041235132025947066369886740142392333387577534908121341748656635063764656859003385592947217628181484113228338545475922683529808674036406534764412464275026504164111846786213230675142022314777012076731166914597280328874329674547385003386633948066577962075090489464788357390978716690521848013384643376861107319265660331067160328158276822343994475648290191270193480671508001933501495280802166046414057252400464304909277186366664904391758555291556337679428808072776668348396201459237143225846901969899788303265741781827595780360008991100402795092520696837937592615866456888105811993016964378132727164715637482847270043313324252405333611072950170152771873936350517203730519613814055027465511463013174780562629851179904458142113303953059623538911113397398290840031281857557549958025704539368752611281577388033586747687194910290153572397280426906245747402556751038580235291395443280323544940065869979865010193344180437963282866547896027607853067343810732051859807971415565330891005523221067531296901856049404765308056318662504353837949831137560855657875213014132842258280747856986863654607378176854049836822638882982666026081062774470037125950030185424282857737048988044309814832831477742850424974015852287735911755878550758687165704691274758701044412204799429137288663025492273095563423422809131788083439997984684773190322125372756415667906018961281385086754963330373727661989298509450801871361287311705959270733285523926992487422095443459843136428140877077395966933949801339371162455909738158845058117059741536823985840614255858393746903998501041156132916923431629048914039792026686668793927207958422266831047524943886882605973646099718216561867063198715752618183519524523651329014405259983588781140838002846526010256493648424906537522390564006881552754155384633886738094385733896133482220995469440450250333992408522948774103925454634792672856442922756711095397309090424133708632572768789709389888787421312323258459468516797949609688179501460583194134751962721259996843787207112752909105916423501901635033622201030415289183922171427633606742884005146553387897428893988068108422289209786512709996767061886873727007836786435636181504204955597963705036488683967136800858075987889194569524145443202417881793996957548826047606850547538904976670883482655974373335454506106541416742791903515470072986256740870238140865788993330479586347665053759825217126413248038570489774563496741412240922325460161689665895443908642786901286405342356505438544729795287860327312122897367750071032377232289766626555011366805084567189063363270198907794654416228882103573923067970232468081084603713023543932414221839992404716822505345856086416345314999732756933086471016020658708749872473755642589100381946389487787337036819514008060130048609876608511980414780288400464855793715595627349119065749789460950326066338149810108178506625906836076422905474513254872334039349464606570338181994143568220995387013086791519350726339532080278472326833508188764051018401275046152436942508013283352321093955020573477063051331648508442114310226060355242038323601535372858721719758615867265568826970200795074819725989415165317268490003370350520388645858680710675150868794341535985263793110308403110382723969903074065859139006259911916104742373445275542727261229295029221927412102712974957837530845270113519230560677392532796505208051233678447228289822817695251153494648325073949285297776448366544327325267373368225896161644979168094017112458171314556538910330683564906979945178549998319625450411317484576833059175730334939183841165925131814529520873207617136021207726324402203234382830164619109732583843670436454464872430272316075261740464549078056574395195613344967556908916342492936874765979458006907999088865966226261508379886542558311507000726765509610147465906238830273708258333564451770256965726287335853252219835844715610017614237489456848622869140630065146946434202088428669621108766698281323753758684070731967846576032357267058594430099041903904672413470491798363650854460199472326517698509163409577447809303147994402487850658694160390276050739800340656121814137418882812659668554419664665490974921208407719719649098081615484592767419299971782492896207968067376040368717736812930161683118460474433827342934585903455113848818848142391297301592060943634266034474965643672893125808424690655718097416042252777879240219908438272262731419837874514804221609510719699988285275969455357702098987192262494961277961559431185712253461502984803813006835238500623313711418788906570351159531394814568475123218678248316876004330975694169865719602802079429947849309901592655099412875047966036534934941624985931900554959951931742261355089183052338592939939450341807389062496522482490857315159343464194155092842721110917852365401164667854249250380627367629767626156928196813546094528834446534770454588765448051531994278944357085260404363317580736609502555737733478591379272247317033590075945807174289409469331612692430350458335540981384702990799378559003120383925749132167277457584494163008667543808853449979464445649796260227297240439828102553014026414954052149556828433241794234678501790561124233505713342370871956912308389047347474960946525363300810697033803471873830873338667384413933894048401569290202386824513791374944020787822992154125962463638540704072360956826230676962110618312975230899827855199704387156837868164038446184472720671087029294593454010286605662256334709470461476425846416424564568120453715284966102634184091334958209225819571484940577589942974632742399561333271740707275562919744767277801275336189025751844841278926787719397034352234305956087783801640446875637528668093854803746029490199007228097487450881803892542204947849405638888717969917312947457983137444935777391358340028492432785924796032447868341568656384950554363937120929696371665933917040431058459405767005336386369004594745124140163081068024611954948558367493241048551560535844787606625734414898300798050694924404266719905723043749055077503169196808906837614370138290153417155296839646370728481631414323929306855445447127310119665234797947983209038051821819069849127628668611471701910598105357177033812825985076377429577362035645233725750706229888323135953311370053475052100356540103697983119571047124349135863569836584550992463866784091571402790215339896693803618491753339204852509096070003170699134655304763082710086267267047235129839423791994581276493644298748461882947584728703566821736720353731892862333195077410755301654741966919380805314361946038803355200612779573126525574918122298743389299701603687002952506902109636178015393350105225279159871907280314328699161827255222176299848290063920095238152994795058511533568273448603148260563308719964805594306791302024388467357470897594962551895785227895571118276458239615105703891364565232897949978209765061411689953504968423569479809771395222095454622539848205103704919752382422929849148897971844240986125073753241257074131173816748280868585937430915583931711937479820790742712249470135553334903148920497002251659411509137652588599168769996961967922558661685065488588819968806081618496233581533529637896637920141294917955544708502911457048441492311397883375854091300024824411473129126209128029531506268426845599567832368239998382450437766785445015794827909484320988425949941732309056130284169959482087710940911023903943914687601730944394429084659997247873343921738570372028393052196626303247004853802714577295626985906773710455593262765675237785990632626186438805292765144604353928953753870532077067859354821645208846766430343302132471854693026417679631812993241055895975022018046754514416699447144622067923185375819770166968313686602786859176220568296671156297675469031431937702183900176800769156116516067087879129422436989139394722049152818582230811409168007462949346804365069724584965956455824927272777278395893424920203807230044279397782878199635257637752086321047404753688561566740666392689290866573731493595305908708140426010252936805258249636826595197130080919920646348699152584002087305391791777888286766422759227249388736625507143925358206178374765550880211297220940335125380146332751103875046717012081615021828521825482733039565088649927025204228177458265060847677644205482214767540912648467961098786719848591900885996452499152984998232715210757170278971762173932518026668015236096354265038900233261207651868337737086176147395619604782386783187751804822658285787481120344819190391220838609600856681364753528729874498096411624159205321504843514745272092282921265710644859587705954746290378003997528416032147141068417509657394641534389480800230434650260101021379593397380086452816643049524020033817271164203732568537035362680293536974375364500925225876482773331493102034368162106285592669299341594746109343257873769446698150949840144168514880713231124871337131583933660048890252002682365222506423316510935998956004418478106651300487810512902974715597966376715131578799930877081080655670695782384171451815060195507505306146964907727605654500515132099872191918905407068453430710659868178131258010885966505512393393378082736416191918495531092839587803920945255403429757030322329257937516353139202933201409500383152461071118301321845977277028823074775189765813594405621742069550038502760376919216927929395077788151389259949191164333259641946351827223332549112157339966291896351981927112048356168972442182795843708310390034563265968562088365878974460220350647723345882570673234003946945567779956173948702091835527714695520536774196560904948986472258440422615479318082664224059431198777916698796622357442405633963226221894593076286029656508735128876350694424374968526806953680238808046124027340667372284535196332001477668134856268542117438204758724279278724677634474706966516491897927035252498067908627960657903039432869674199407035466373564039137451202409501577626852383990615606391659920449155691662942426764371745025797344408064214091090157266242646807905242231117077598109644002299285876700611748973334260926360033474028071165316020858772110332719907014427765636255025325633144979704503971634536274773869931987825798359269273810818628853338070242540557207096559633630981261532373628608180905707433701067391662999466481665923362604787530006979025731094652864560070626089471591803891697563925068880498621798530094034771331725749440866557485218241677905564392380847366290772448625277338511573410590728603948364723106712209104214159549867157076047172818461331108699195512275045578258602387574169519198069541335844408954936436945906644543989494630444155970654451887677942275614330892294474272763274215786761384875679405937170331204941148567253389675694794828106981121181810001104005592967462059534572593928100994359277185324809873701692102563777926055796447914022066871390973221228696485574784938933503401555910945519994012873830374258667688959276776801296798941921988177379757008935687906165553516287329308389550327645648371933725155142374721129167750045016973146028268735270914224493329247688093466882438101776573762695199728789230910382200153818395038181644605269595396472414984762731907852564735039108890825415840371312880398429266262377095585057850648947592190841703577535244839656835466169881877920519061681598495797170082542582040125285297211521938301429187380508313676144292239492058775068023279113478783375399943502659947111755047657337090446014463571269897054998069902899937383563214330237660154705159277092158503998140847167359685544584545976259389629452192214311629304082912236706019279020410937521039092239718427993472946277496859099812210479332281223692347196054141495376517092087403508519557836520045555920142912328964064818696286486489270227136743434153132259008551774387352235429240708969154872429636402385436407180323883358355000858466752075831128537214496693523882393769098154838426822705827769713578495782431465984135929878056566112082672965037488179656787653567347461437997803183037651604398873862399232150174799254469645661691998320216726530933207577305131134633111590900838721971298740726174908014450437042153741163348235421026935407856666685707772462766438696641827994461422116328217719376895831836826968685303252671236065042167423258485817857185795575591932597128045120912835179999453244766046914292370325434373937803385317392294346220943590418352822934900623904312896338663006906204971177758317381558933190830678998904887303558470089699485436404879874163124260898238500859539595247653815165492746244313938130844635434840218789681450739169734125478452746341511541402393904567276263791768530300633340099928319156297843060455998660436380919358205036978760584682327967839818734781412196905151331435194329270592095525418163041309288885288210948633317724736376721984716883607048508341915022692700588708517115459820671843188408061614401398721942880318513378749246702992178653305737990699048244153530899820429344193485728118004381907997732637312426469989117800817542158701658265484638270005079750266767704279041400747570432791245960639581945236687756585377558978467781994547367689369477678983356361135366177528122568964078926626481634683178286901832912884001770629433493190154318386543998282988517887279617727235948545530347418462302111052966436180780614648816101307455554881679033725345214251194112827507322338789216513605727321126459272913089400402088961394250609459840122156224018890431635211682172664820092120699734274429488522678414865643974549914571358020378560766454215027285885494516330146602007336120604107333599449880267202714336813265364510014680515963492556448839871663731042896059389369684653621870171388613525019504467084532581522435472437981213893165123059555430930171729169067909506653569581922769571367053818029996072761861097541394126715239247092894566803576462956600807985554167628935637618617604382380290585886467127963051031095722923215583590661896434757171753178727507817620338771554727554283988598009342159575503310331177986554618235704525926823548418960651101587046163653259652680649430996260637063618211091753140779855064460760905785162236850143526054680184193146234866318542199431111778397162401746316171700213329429349556064678100500953062123484604856001454473575649799520035192619820537469462644936858451466763864079540999188323470340508485312691768912997276346122418980492145934209481288707707852241314911826527518150490194037238934676183977618245558538746857194647634527709197087739763128642885342791629041988718740293228589007099071227375667390628219055301940073939388270163553999165590159418463689500813008026671614701163899337805899100994250790755783428741877163778239723005723706047403055730953367379111829229195764958960345605348533760803206017145156639929272245362441027505336947107496094495058910191188310090294087812427171210925692980065422764064620005460835258152271099070248477453991048479207574552990326697338963497091726361744236787775911600598109370989878351148529884461366820330859350800675392687155386873017937901095143143603774335277862442548280493343328967849494506229457973675196827690732057712681699137618989248946846687189341570271466955325729902059107939101462362077063688748110056571860376828844910976018094597511204878654231996886227634549997218291071299714416339136393866211125818815535885231563306913268697203453429979216919368028955195453385935990753270125833608973366606229583759489340671129872263393563621685127636939287449701142525150424696044558652316158534240058889156639392156975304440345879429974252291499050467242134017224750522734845842987255085394982869170652170353242018600630337798334719543144992535821389791468956266974376610361535916659175851555865355865537500440450023877661675843504984181303764871030924894825703207064430207838287938446622080653112532509384352431146846662583958357351781296393307159988464199481702135854626661577445754981143860272395803838265254490278474028527240933733206973451453335766981834773516072581539090601227777952642012573748393483502694659252675764728338602283144141954261637063427896014238302460032189189982580508930824939954863011895906435623348521435664543242666320268015078462464708988673564395092044410305093554011975215620345368676570297834400238764159525721863914706677360883269002014253096221916763326314432635817490260528661924710641151436406288334385254723138376536660896629520876262099714652631851897901704929126132235789432659241174822244540732296723595260460763371531175405779142628532840237280753003945982136104456100752377491433079015876629438483701827868908746912349559540085783377512009597388159621679784952755172349536921966290941763734406532208467809795449491233956530887196457890913662253963027509854458590162475826861415654845350611314369348639580995425661145071058679463860268308048017059927771004037506518346707769970317623546954821667481002328078165703623586752286867172249808094892664443912361412964525744182940511687614423473962814303771600072458178073347181865728275140722033065861126010005140756354402274999007563870439629805160500609371075448985660456757629672526398958113293676636275187307574973183628586126753376272972965527520928853695364379206331988370707019688180948020291175404457095260861285903136031627135272870905546652580505567921424791916531843708319535374908414191036529929155534626176470990702762724608462648914085063968087363294947465037321483524429503425404470295061463808810611186584316278680557800347226198715100789150186210829478201503916976742456286954410794549074094123459478038512575938328685083634952015496418735288951383938599407115352625367874921442938138107849876705788855149207974197094567759414358203949732598127773901893924987985617301063705287018712906087772857156439186226995161428028032916842303902882825852819138564443518847083524895150659646730917834687307453126702315696253700664434879393111400397929419707067014351770148768624924916848300470860891149285861300986721879410664804763943905225168530121609522378574199931566020976464724280387581697466066346637237380564874101908796513426198953940540305414166849983415931480195961502870878439140001394957581360106828727972578611332412531108386007334436974479439888954619360952149503973751604323467016549005748899964236252274886482571933116775740826121284809743385355098145651485478973199254863471534179587335537459108504696832612448794468565886356929567897979582324250837179611181750682556217918119607083606656857557057493820774158897122358791484830009396174554926123111890150013726534087046120933405025104320661928012371805648989438395735237397749360864167565040691044190655910579488133348342599058214590438471265918163786333409872588696313299598113653890800213052541726338180144412753009085548986512448046909775096244150552134843197951869583189357310276983510275266613248126763763484433643781809732443506881963072851972177867768161915153942288952434020506456717217903770551507419542258876664175953698799050952354460014659274074235282753263844423973906158356419553495814798225267410985739371664822617377206205401204975680982631661811502263241637556515493721157957064138611516449373982592168593169068151617339706253363239463283180352018325766792208269671765946087864894048263382496520322750990690447831885415283018386590670934481339199081480782889036481146560102545489271028627225675232022331404598145879496490459743781248842618705762301769140706804567749764936542208541326716147137192440742223311544123715717429633237337665494918006517197259816222070485114261891184958619754957690185603031071962770317418582998284305325334938087958112734174404262770953349182930037573554920450271211107759530226867264343133832646460962977284936432507048008729220047660850456186244009239004820285217980149243838691243144402086023465240355238180042087370574848140264816579603576761854565673478221847478555747578500331081627818962100935111763798502534135017004489415528243723565768352771899356291857289183646285667552634224471320833105888948369933123525351505053155525450137596344961983625210622260999864079274391498081466547733249222729503013549961430943702267024898274154363931673433736045918548098129240818830700059404148474508895306086938346397901848844984003342032973310818424628736273549589267604062815688816121391390513368121228667852862530756511532125266422537469154925859106126946498083916541404961628776533733956400955712634335583396342962231867981741222148233003627683846823672983515923734713452244186164159373604442384896981040744187647325670569338842267028374271182821240299046437815221315515892295428862834707893506801384380491210749620854742052551383524388458579473273061704486714968061829995880877987169530453056118095718883610395444104608859291336655835030549977255945780075649620074551596361394996490097810312446208563499904079916363135307211320858018482195312597419937261371075070127884466284917614433610179560335555125382567896141519198065276117567261522530767927511417505429521852329418888412178030476533964713087009965901253649525232012715884902524772222139763400480960331411667498827732396796268210797675386391025759650651616086935705901908227393694014725365885940793627966105996820733620851008719881401686133234361704171067117811960610124644310609765335834902562868802061351396436781054487061533917594979577100194042186933907685456798674508921990493662256600060148798946157830653643130324294961422176337622891138708448164773515527947496315012402074436148183856112778764740446122835886857840537976901491312595370651915973131100830896603487197887890405417396624753510412225054865083713079510914658121985989672881535107034844962042130390182677574191814622945887483404092602569557494128167764268997280088884016085107674271948065675622353773896779443853091318163843538558112691103733632027241280526854666446295423560322785200437971376933624759332774323361099620938664245522554940889013340491539164641639088169725657979016023872763653475295759751350076573395202674526960150335698697096456462005990652157587446374766655876693264118524797691637609132213211438089209515592579548908909004734192706444053259195026557415074793594996458257885348995608434742593462041665016531464367176141639646211217751573250904427589706282095407742180348276701337920639949882092375901570334392840021098903329805751744816579339015332838037893641809780311016438598904433749475432562434458693861653507947621650792098591960015231947316555188506845640525715596198166322780687259255936828759329459127432527286071947156257664520924646688427429392191115023579479152112058549346189020819604387428145655251088727794342802680211240376914298635999420761215791908171937073085885016861303343998726177692322935313779108727687051041665296369192643626237353721047046130263125191826598816011620891139214339875817279141590077432663923414582938010338193125812978940614342234677662642244323811400157246000303621116577034187513764517185380075829755944423172084588961614649234408953834795985158806130558817481897211115933297625460987848030457300087841926772478452172769758723582400112827444771029635911790318248683868383093650134998628980165791787857083028850499229268041460051793077166104497726371878282820393361754531878853831016403090494678721148008699398755294323070026046232684314798479719785084051567422067378657840110000678125138983309924122973516024275041039818103368661730517654511716551012419831510519713981424267961757749869780230466567022963744503371239465040080016709294215300708018567669941468543439993409356132454725372452655778586546894678524329675958254563936026506509041876797569580808446072829616376981691687574784061180837174521426068596072720430932272089071739329009982450469074414421570732116758689027178753610517537715710416454820014799774681632755661970834449446790444802777518854954564366485103222547706057435623360231067646728178790754010045148495110829396732313591597739221179789610156163062068057064824720178129795592926325497182426149933136908324201570741638207825451915437776212016251560189952119191828040488444926951043524202032174655781149126903864388167506506625175806883199598852481776979897890450396805022326264839610350349511577970064389755458745944362369277012806187105404007786892315925329550436491004817272488488046983186789973238649825808407563560140421156281209896678828084629801275658145875815199497353876322412905047054714275857706315899988225552586653023919816715926707647127589957787177816415420260224203521151312830673349855969395237353123766263162810035407445417576574702528610052404897464521191799627598695642754099623328754652641174915110191469811695221809216667741895952560219604390779883869558233221940639995617186696445900106808862657800664186878328628411123071813969200679994484548419852994455507145154324951216051021091562813352859735252693836171207112323711211200179375675302475813317857301718275679467502103720791506376017265828748249220931487603552137628850819470201127560895312429249737931102659076788302323902438293662355753154591605774021287639928616059120996263969016879376150561584943578979459901873936179739781342496574389838967600750235188518535775291812243275322234124653232184336658912703145347197482746791413389399450424766389732136304880040877784307682910814369198154173380533652584447069971257231223591610167593651817033076510788636851781166094760296461678724260073473128707272901754372451859779548952206608136115456576090705429459956457460426365981276499107199618425699836314235108096805850550983255460666081164812222679235511640820730095798095015159142998637347547686736907539735492658755794177321697604937929191427479386524832028319664381381563549396532571844774846153225770390228823561422542000241975936583335731479249880480481730654727539108475751011901575527502652060701882609446058737311421610162714531740661979448390052083581150198546649642925205236484459282273529508764263146333514143595935536030958755443438832805313511279277941704405733746932662940355245325391418488380367243377243980559271803815835928227960555172873400883498780750431448477577086024352529939598990497980108020706040075610786757915233367825028156825304199666579186231981337494815691048320598630444952312435854799928816984909530919156761155848645491482108545388890703598146125647548692377890447047064580731820346370391601012190577565526770957516781719454975789294403168323675651125872143293411746157621057887134806810163693128967512160319977412949409393141883615581640465200121718314863251839984624314866330119312434078985791178571632541240061891885655079629383244641644172912854152279984292818211933856857463328784238070122013655545411390538220397143657551835864897950893543648537280086258927558835989894734755022097835372712629799241657827806692404915527641280952851697016405205898897715456675521847894105195536081935942305067783852113004202368516134989472508595459619145887141225436754398913330797660596438944839067089502020180163940385804597452514172309792283283573064832753548130396681328516652291775357955769110909469155376329827641858662761208647934096584290294840391554915743805119734443999520354162833638458330283016397156198822513242498161076437015345918847849773348974950437381724078270462785635388425697980973894547618557665716665010628033367699778757158928041086202365517313266190601248473563765938772410211840258591424723294654855999059919829189473858655637645527960038091974762083008286570780552112429100540311074259454402241834188654682204917208975760556600932426048078502886349650476065157284165469672672511012205380864347341357555933040206991394016215050316751580812430509223732926621677077491803209685100448881459042332126658154116171759203840157242492767123026368971119924482084821849205853706715918099452472661467564157250993159433865828782965120938299711565872225013886862035563231591057944174578199245680532131008851479491200303841388738943870050950729097540677621543155537213792428968109628306859293085377131778305406170832272375518588746508084574586602212487400420472200869863761169067317778867575145135506138441107259778033761950423351380360085612745180108453166601791061361050154791169303828619797086214350958542819598149487816287794232531384040383800713597189496525974597022360843531013005027628768546995864548027870556198021828898518208973292091595833505352870948855714472786181769341577538661932111077764272766892416434538421998675036924633904755924912249719145789191467276301624437675367548446394875501731495446219057925677958936655646754531595908321814027126970379807701628329999972375520863430424849476194486912266823661923627759098394092028918546445368194257420488647621556636881841455839208714592303022376675871781186406682998139307303906207713930964138540813455905972071300415141781184524625445680771990650858099790869264630550533456140693205558117955571969949102946793308532858594849825507557968865258268446137918684713472774861750229245652122079811619168982071281115039657241641573415663995218435544529962392626226994077863867064014875959333349189954584014924089929351348407193933419979050981258739455430434888642533936470825733121681470954343332254424436931877894535439466488540148498437923614823085090295041123892461005237487279594410840564299231097986614177356125373532073231765437558473086055037867999776429605002702698686466353847763718810810371485726904542096407717963935078995362871792822632816602031566365126139100303756343031344819164659708425201990393432309372174778333451009536569403859883309656677267370699024332534008619627867414551539794813882109408775321203984346651092872533724534500849375380638925931641806288726196938180576613009776119768408255018122951020094792795703868334979496439159543345533795577390434551633968993921238769260079515105074668452333621555239513535198126247496425043277498132988455924686661553176023464247966991790610977349029256177296714230632243344146668226269584082342900716569173721135226258241093966926524114410280867270748834458521013310382622986591693912249733891705905612620692911327355825158303191717273622648677061683625544444582999696124948174959113388889229402456328595358958586341517624114724534258454780741548029837565785116279594029733446785418331311986536097278365275923908735479566685934005950877321051760980716078459525693488608831184435418559385280825935773302047942743849366638014091958445103281493811900674037303303685184516942720757396522007890233827965193443087467248914169217492186686075367205539319567269751277223256319975945108326515068374959521137681394984937676473456589734504502433602707493366651483587907487487192828513374572684388530967034302279610000017430961138210423179171679813534459920780634304159076835094614390854534795890262142750334071414420689968672022785804496573899781496498575836148001770876380168881075995217153347521795083761421031409321240080127690143696584674719084396502541821418162645106759710404682901589227600148136481661655236633217929213941353506154930499669521508031609018895711402582529581712714162908862647990570399257506180177921783746703655669960479767793853484358160520927730022996978426971015488392870611322790706867604533289054222115787968197837754122216628943432283356736880122715154035487239214618294645937407545748403951692236595309761716946189514699043332300861366709698952600023713563083068671175192985969461550478534466542390537652878174497059619649597289972892828106285662497118342935497928564045884373335253458639452803771546578916190674001682824467402959714514623443197369553901356480674727470568686067964196392236430643401845461162313537442680485829264473825777257622085266653990035332458990351110083928935652647724624676603742755622347994042953374534804837110824315339976367164247308783443894951213811046309247037577037718922988611650021268420058867459089409084906750243983016270394882363842872656932590418396861538590937114213239178763619744246431591336951144345162935433135929468251976050518486478064434398062703212493775387872787428639652627435670979139371265338050725016671261172775794785121280481992730829536672441004064289050199405428587495610128468622194620501827749809878831463886266536738883193471504133544318521170530578659825442612420770351657483740047768568854292677757781851384491093583709677932236328710750641907162125337125167795113030597742025535406376224420866253732193861190333101573209646253269348846897953638222800119297806365502617947823604747691436984817125041849507730445070004604884936173852748268525939729137228695373488407126157039624517315844628494455690295887288810768982134103244175688587318254842748767013393161677782919016220737739467037921740715857531929659836642318031982161893560656610265187219540119472150874998130711145999211240985553977243925758526632683832233302827522035559652152069435191534446320085293415701576612712377111560581654468406974901587556065552186901889653010194880603994154922821504604565208909829019512594999081156419154621653570609104616583420965339519070640741986906633222693206874525356258393446428072571538331261329583021792571635954444034592724124288412253610630149740506870443886735501096165498440015775172014101448175358883922989425906571819865551985740137899723543790431328932472470637077341436341343699296575291083835043229222896738978754040367721476939946404098932694366733680014033856141285513875699716065636017613102091987907641869064609901179058773736227627778210442160594834572219514671968613292211882262421329308133057553496749368558127759612398907305523979636774323758497809848422117132005503468943274003214420896874793422240225263739538032004626630947601515178286482450239814940973009084439754397157678740680260019399682570385393854634930241615012687461782215677635003347143310786273966045290061661864714613502146929763984045439767507716294969819743673029847283490846868597442302815606517543631894255338282776146802341714497484758135762760210178365851544482478308826669607946633998731232441853574483673971892902384985122079454235536883141186869936397079711358443184696841497162370510484080040871209431536027895299586385457902850962838452367197617337178328606044547576022954058896954223602434054671098741700395026867604013462567024641268007584629622926920418702231145599779167908634906036908143605770551710107191014081412396870586312460094442020492687783116931926431586086141898840755130296200447255194656306709163551736058200743858487832865763382076199397170505920584944877604076451617110141607892615402947378961424227638606571456364074127731884747384339624933827980092099057524521899012754931619065173819446260865910938657162663026510763951903159325351924458452523581069196350869903822645549981090842132087089012888385239544211746338186914833859923041304477548880597746724015878756567952939716341619420188319314580178786290358227493397993093564018786906948183160835892915431118017128539050690731521578101740696712307572457976893199963015091883029327958176269436495477540574174052756859090991779640280811899133200239690900050917831056053937012595859727378085283089480704711958124837327522272794947702755319270290127687692525204265897039649685920321891783053356446678351044103480986711024142427645181562785584225927962446226357640439715042211095629293026407335249719097756138631207855767165780360103240472831279105961347561313615559235337561433122809363358892438971848826895960191493279045258264026867176939037678796370737610912225849285506436073746030471687764898085602360072731381039922736585376502008370542560929154288705487337910382482467625560083800510564905855427943085092017425943267777016252322025876854719815274935995248636370222183663508860391374366688075681448554950267564180874853455975363752987011840989011309830905902290097822997978784278195273622348480242404680606047754685927014927223230910247772193093137049090180492793857909100224053683798295719118283798696369256792317513146931018047961486342456090633278760262586614395591044303641715678951546897666040928054347887311187910482705505196388724293256318319971596921872364437304211589780281693893837359421082669918588531984531443387845352142185105399329529516047308550707431676544180010665798472646783159098169062147380617369694999202193964463193811426269893131631628227974690864741640712806392347940405925326422946150961513581598745331616919618477048600725454455827475548139294440283379126093544191605284263910260637735686957025014585286000441758739354613693812825014316575787051924528293400038574710818612652245612295300923756060596007084675725055575420555189082974760662569110028128403748445108078761166514434524977652811708524769445311468636658018037571400915669523461117000403908267633019086014037684157814798624176004353575426341551215815469413823535846556411961374271662564153377891235154820535754275150969497771143588468706314076073857321510375038712423484433643595327185179358261643411567236154607458392099453008373090608916743942458101706132885015989193562410716614294064232296138489505800801126044043447738982082954207905304085961809440394315975818680150443511988412399174500735813417240080057947884546521778232399508205572056035937252428018838865882648256183594979661340740694814329218299445305149782899819844293691739933841769582802446613113458580600814144139462116449874692368047520786880806669460358199128358687999525372411976053540046713352807451962133327193063424655316762172012054964813028004154957668021742025873392540307080704229085632104189431360504654516120084578664112087828400431522300241187695590927017160556855348275255920176267641074530391525207884226302263182526423859822229198051912567595207508080853172485515566848666934318921246636776147914098688263413894613896055014695283896875889187503580015841815464500460254427535362554819851377460358191101943930562833600257126470164301623300189710778850620465015268793750603828565407674520532455713640214099001943368067273833204330244564717254359620099419198441014514387300073741144076882789354207347786769498192479421299537085980404925203736070534477092580537223467740825166048028857672557083741756440893886212536545217294259713621047244320559633295067884678348506173878604470948575444090784789404794867723068996661295087485597951240182864567197158644139875584465675282129205543010284238731702412875312683297706181202520815411581636226577627838685172944969585556051044100447239793545310837952464756589842594648138830145920149408897361743457481980616139050839149531605609326102274014444071965233168136084414344861298137868154496065770578992380286078813117088919252288104279728299103376879559970709531156625463134767570689111199285879872355145989099828677686475789473024946680625105506627529695923058307333876871147873108996844332864330249033565026595439916267742318668790591103791957861016237515204000283119636330020060640147476247745033955035199519396987480436896475718764685198514131790186973789260412666204904177272086055144414174190536023418157070338618343915406199573446258864697289531288094340076246091207602145160303594800395128378553199235415757102997413697164740852273935166976070416746845112324386288946619475427161797494754665615377364167378353004038570385137809144208013627403797007952614294539117663674851009732219371878535059302269574450984500184721612144892465448859716843344618008133840655034378708095119082961266523592232419768428700283701400812233218185226951966789289794279000960603844201339525557148541801636196185182143814377926490134224442147730735277562902765217113169702330474364675596901689175062350537502532783945705982239868408545523285069145660613154268786245280249015742488354538438201073933472037945851408408300629384630205009278351669517435623059855179802525854076898052718349095318528285786984504822706536849775342993014348712724260375209355837721152456566632808594013235093755826329612446705583172687139979650880583565753868793708541929176280333427670409891675082545139656585655494761744878015706168253036724060080350598146760030842154705005255644959586453939682270677386560644518631822697758078004416784295008068478110276786685933281090087480193054511627685495446904197995983579263169670975692799153858131921603064368791362429133232806167093184974525835828571830460378855569183747219363473802344531539571992810416858246183854019546578469757900264861643888585809948159962483918840438646827395753819397140652069360623229910312427713184269649683051527707621677495569244860329137538549764161478221397125315447937061825639926905216521996326651902545113162054139121931096776444317841019833222614208941252780755502121403003954533701445211192891811857508174662526823534150686872731578759039040819190763257191736827636430609534037556352487581015953939571065626657896176880607404539276670784514037085010411582738551879317960442224885279411895204842788580075039430480259220372936494820272450969579172147139207150829751250315222892465315953890276745164211521514670704688280196758721450594421360740452566672051466777643180936164074192915501477722685178703240882115597309505483609355206475098181607783477605929023110735873694977895153331396392028611476793725548443148396285889244134403037864734787966531438802336744723807407345654417065910007764268797355471332020950405093748776731411811019383269605436521818099280916630304544550654581020819067620753123871390996138699536585578192980844665540782905981201443291172422417323041427185852566289813561374603977203439986525265324939864318438622240738322686748385849623052371416651664462390754797560204412686830841772443223145018335437964544675896029942978094856479348133871674685872281143808033733198903164674758049601864954718609164832487613479614130215574923316232216888414630250201140565230821167829219461912142840441359537719571501154119931078301993618308794476901037956291310448303568596879644616113421952096437217385071849157436909467295267072743775795817145407791172422435200122302171552819983045140509708522700519741364291782782576368303744995320873940601452355138002587510082942123561870373435971706470150329707688069316574777724004285567653939286483184639025172540384859155530475041007847247815695024966916647789338341296774184441727213735007707564499951564289708508902102509110207126899402467219665358458063419055075927557262620578943255191379067840595813100131271995500059188104386921062750114699065996306426701260826979600071478923450737124247230907490045094558909394030880013017168844601773611161497416784596033911718991769033133037030756798265205002529375927581188896145435782435904693474298335399082375119555264935230017581821379858177146906623551596487541777421404591042241030054922732090790224698574435959586252776965885316736215843559572585325465922226560342317440737062350323378432526837829385810547254688813782704910882042741189160405824009612347367519289677752842117819852147708027215934965182122120204308750669376566912375296729389632914196511890777165291343299677180967233984865361277780253497204885938372647245201686195886881498470432220933238465470324579914044735971065306579842594185327340592494423099771352418103677541553768780978383376987753758951258702720994475172653280885396850836807668938307738954277542505145816555043468384044529736378207520469864283608940728324453150037099395145288072104318032522996145486679832939923199759877176816206381110633048536631392853025329312712740142213278936468531897359108265466854747956528225785924094538643704122972359017913963518739091298162316793032454232662993945078156176224069677224849125371598203051527891440745096585125923871523441111503006492300449669776301365834006809660926731625419278594930857774842116297622730748803588673341618290871811660602689425373029336960094716579210010806025698016667593176681287708104982864128341292103153305333985128217222734267808772296547462112359120949939627262201291323682828817279786770331112452182496239887132337800278016086066433604670399167650032437767786507085497264829133953296161141159915959706705048688732271588172393592635377374801732507911579011816850858937430589513405313706212157375509989288032296938617010606692435406637478422271183176467083988330273410277225520345659749507281878940603923356681496632310780059283928651429290891186343404902497310841831363221747430246754722426941840675477916312569590201146593771521327670922549750961061999382826010247915469681382889070523192233964856686362651730062571217828392603711385140966027836178094749202170258865080504906225747527236867585441140958178806163447336562423598964259434906788917341649650141629147710257669715697670874198347986443180547102113803718056463222964213064580206022025028970786214227308120202323668466657709198866237661393746140303288758064084959166978298777205698899152307541624925413849320917621149036499202220466696075021997295096870520661529717026013046950802789898517786380539178389741507673926902864115653052908119072273130686884146818959463233285350414338525356793243091147945500056264875156901704803815132420678876373412497808370222713137923891841837039729825890228507139437185175819979866736600158993500750478650417968652849523901847806301920581625741024257740965817856561068697484572207570355880713634071567287265694271845463281648489487494510195180010732180485446942081448131054073551791143792409154267619418902144399176151640620586541647663632052265986306830064652736725226392412969299316438937406115422914941979713142889593850167332824245991086473609133015640627134177713546682864546742607424732034762202107700635614056824324291686952163649760255294666958484530355038983732370893751040148877932575984863143526525725254539759645120659013389000149018429241859243694707728537127371827822046992605510376368842994130378536272785983428446984507140494141423140602976591838236422373133419097886693776664013463710957296641358305945244666270009603000813779789327428253365503335888642542136397856981598664100293729161143772048624811527572331609537189373682024620316221420273991242721454096673848798768816414877363998572285944521029620080318228571399630268878555457404911758834825578087417705866305855551222638303296771652797428019573132614145979886675160769575545241393377751423392797152273078876554854981331920441269439518254040062372235942775717259300683901419145239551827234392326031588644036671379648603739257031224795895721955233298190214921967756243199764668750241702882993236013545226223024637828537997208189248068321103894261098082127160003261082052695957617894728081193662284624250333316283714231285582216944180179075827320654712000319487754949940467230288545738609742796576529769910677003092724537119240799432334764078790583535441475363169259875021913607685699263321890258923277945846019762586462169521914377421145683134770009725488356949637770969867830441561923819924533134734560367497056795604768139862833492893874696946509090251540153436781316297703976470388642077718922416453512113713119862094240371066502393769036969268256553414255534238006015205608440941275949071660131396535015470543254239790170859245463004901577512332641515895888964008345004101083539840329373481372077165398576331434778267385908290145579014108687496369617823237243947545577607696045377691374563065110145632052199262698523010739372596952410706409423553925701601535828217240787629217111201304872670619350746643060573814735426245667739801573637087017241045776189263895835496519849502343403294483521859398784785516113921472050313295476187968469464392751438230497164408138316059250878770501567011982939276046103683253261104839146588484382878983587187294821645326401135396627276211364164565325786656092327644156388107148458618675783875230046311392539146790756335347630641583266735682381237167388714018332273711354674428743078813696712277443808641195744856565417407703238374166313049631409000119160268211302920083862794277016774118304896492316797293905271823632299528475590190943541157527121893076131941624909013064084566281934673218830054619070694680684347046332823136635162348318201808334266253320216838189176082457770382437970621661324558272125575719758617811172811126698263600214785326511874598263137890422153973517075962219102854869510179626813545783742905975992989623862539017956474430110651982955068581705169248320182909794671268639718042136268956609053957542374878789763228489349227459606528192897515141257336803001989877817916006952044551473959061516653002587299398859798204175569007483780258888610952949894218500729757956329687920154105193910572133088315741063264421531059594049039297189966226240652024856660776403832203554070540928288948129959891085930616066074152091224029233851684880685276709543210805482147607392891821511889846682394118149804121383122593277399693036440670116481863914350214025934442258900151358431328727826937107997295132751323926886106212247136054179067648279667175088094352962552566311475666265051705687082965976513677271154240898818363317047379241362096411807825034414469707201148333791918399846526038264165017163212609944968100858533730815393580445039522226988227794267585320376477476117432377286818307703175251659901755680118354540605768360054910785724509791545882905414760857727986577380906950066379337075808132965295281301054564623262419181550235322686676789453812101163307604679005537671413363388127216081358832600923432706653571092027737295562007444091048266460081551510285738576219699451182444658899803635893315976439600425929985983166436453142461022375051052480485787755310846614809801880680538416567433559011732052307931669580681191574610512646753690267680047791394065485896977535152435126031845812865926701428686539981067121618575638225341220999360260296768114255759820060074755997435212530826903949319979802164914585112502738505216482991844809736920395088630824959969261043377111002153871615526665747399200860106430443701848702340032023259675607284399925143027360595127814556309680760607820766841335872726411972897299352303996894444510245026660905836068396517764398117378100655144205346954364718595561202379268244690202587789732810191021969617307240318428056864570905947229075535421204725727168158343825071872378990165719692784836966207383409017624788694203167785380419916500209789575213197437088053904657069158012738374191813351276556249983895509989792837652685931371710185032302228512266904755151119239331714250153809773657891516466246004684189065701027450865850259925772913825524866710740162723782080867455257391057401344273996948199055041976369544768444076551554520962830771506462950015946674348031445828830230447950362254569314299664483537203494228851677196097009837080610976960796361458835782495017454733777876230491538578705964567830658698991929441406856576406640367257806607532489390323660257599436027843678733002098923087778374224293463603647863026879175418446805622331107905298083505239257494908102911080469393720402053286086265025236540052434351207253827173671117474644785265117214858964254669252715050852363471770003699466589400065980347811456851274031065523992014689212067732162636401381756039675297809622278602951904498650760918792791688720667594878879282250584301428060854158036245197258456008635821019042647673174972749146850358666962825542167589153816348430064944789903475403083917623891401978002757761195111043085752760047495545462470455425380158250560701534757264031257832918905810538514906530662233374528976924679271675545736511763084936716167916508796160330297581105716547299994684665674710660845515091069396050820447188297754675454155575293319460376142895689927623342820073481488525142750971890082838053534007238041782223926551440843445846063808341648962980086642491938904244574361814462535177288307141109332258478011320094306033738190502304604096230018869554207802728247391975135696335164419707844872922311515528173261581733938624064791879255585886767044827065119756274987679068904003204753540184878759011020367386848566282902969093527579868009862309922630786485223874508711556455676492892871269414103060123482969549380454285383149130123951325194814639493210737216652210163774874519997772491234248271629553731165785838933861156281059150313264143613686683466416538101446641600288139448528365987802536782063479483215621868499854064282222681788209285807346060742372339974627858568613189561105900646337107306322932708207277019984523402128565824845667322463558432709348708781649912707984506450287197854290214898773891930808555185121488182704969124742194677196827778253293830009453626112431047916341921716506404625506230006710326138584459767719807234262250941330097807687935130220548724787659550545746985560467936177463340018314934893803646538837035646381690115521681861672744813381364705507251194426311246506814951368094407806904945510690395343312711448742677592206684295596970048818821452842903092396397625482930502583116970701802455993885794354856832533658271996340390376715711278332424300822369626059005149109479301139228621531624229103362704569172045262757621074059379280390911317867091643248150562516903835843448917556142711780159691102480062063091134450071345462721089619570204275450424577205044804082296164589592530156456539227697100617005407077628010435676981207557439453057147819070079439340351605524439763427404948549280921006469998566028455766957484930579603836916239191419561723055875647315482652866553286889438505896900374978277117518819964308438132826736301156687818671019883972692414195986716007413098347639430608318889698540545942543890198199600604862251649275343846890669754363098997694979674963921088273629071626341469502074994553861730127191536801151394798525125436423500404058320054835336285053091588414758232138385795620055141386737787016492916063021803686228502729406831033762525229599665390033027473828542525280076154482115293767572711555070319289842524866356557459319952616013140867936376367652035012609855945476893567299730720759656772889722131950259541442753415609493328645085524814972371226186934647364456012720109765158848986966199770908355915152417736345959758137706096871832761714490072263041579137841299696683200307033070133628444409928657974727382652061357680737882774577464661181636604537333049172607647356471338449871899168184826347128314928763843124059624076864696047923785491965221998696179047573068068358474857125543139929983480288736898320766325280028078734139195433947719809241938117707776701495888536758131752774346279314547523661876935980052266934213785012533011177622395893859392033774360608482014833449793136519767296091637669953163186004032889898051104121629983538712950741268422869774643318026414012356844291664222306395327064800060679065784439427022264233460051249909232851179397531659528171528560389182439526704023114450352710758821249623150353431157458219142735328424281170388014394561925003971435289169343010607441750976009832345356324740776907208508435911714073637814618844922244508821688615394204108758234857048837141941594517747578774590543142581915474044169567663885863958331700438001928792289503614052908756102958389213265258904011777048643442517309664141542399740142522772412908901685630085073262615909838053991807069889729036864937346715313368606027491301492459750670072826701633016977090044825281095062241361975578261431588666724289904581853198516293192957237965634989036127458149984701060948586346229138532509168842351731520336948866040905120143318770332929941888850944725290985105459445072527495324486540884360418899230427080745911184298723719000397212441858508005718429773867557104976793375072978987148677958615773317369114492242663235673316568941802101361742849553117834784549827181954061422718879509703573713213795773517771329525512315968003212402432087201102373017951710247491892422855555903435496221038534370186211364753936320598996363354953944548688685642847553416489803480363351155138799172528926455478722325817864777454752167127316624379179981289698318245480876252019373876364168002945376108721974356627361708211614901869173195220225698778684935165672930694877234649596703305013963923060340528948599518351709314204441810801380519190611949597838543863615078201932781974093737942684593288271624439164078529572097206249301369730406247379581608331052012111623621071821235198285161585504206190258954825957980979995203161522484940376149237407592911995811357830137482685764489838238397185669029027140788214009522167812274564664694499858051403809451086575615421852119946705613306611021202194305575538513800714302044366665140922449812727491397714932198111367493683010123013432302743314350597845733960727015916954500055767774559209739040179839513712830514809903220212376134489434629284330742579296062074915456462356816639063048658405517591576468227429706016810773336608939683026624738256984514668967221954573664778767170846403740979108587927042772727974927038506491811679041976396765152111185960016530322754284373832335136913406728517722634167408020741024330953643072123946108855120657655282105107165177931472530625979567109661142181456258441993854195502619182520765227858336662842730222905438435371940761238817550423321740466291269988634007373339644031798802452750117761292057638004335970522153196642146880263124373363176796832374788753717250282898321547740931988859633325203492448590317178621908753088268098076946882957171183209200459261278065362988142312338031313138960214043627282126585334789088233008803948998819638636842891781513805808746075583416554548761991989587058432723009255718250820592268402701361389138735086894888030205311626443883743088157751920772076232206080233300187462981433936247812271056608263134390984115314153519636814528276026838724318717097544175332469352636844805242275461719684271174985824849714654674937600349454571659192695863393383260824655538773950777250872646528504212317609065812623724555954987426702030266695387916115949331128682184713382483010399460236260264208427050746864676653457853850165731269301186615149200871185932893907322187542734210342885570246264545948152015950022473531040381190570453087430453927869514523359700550433809866606317659244692735287935165369965996828497937701330593535329499325974924766929008000323586065794888406268937767115026240234509399812172056193908698951123885504677389020183586748928756161446030799007319125214722776665531483198437716781906552264236591923852240139607062433529304172904917512341345236744584681766626536493015531017298231215490321917139092946268117081059150666373753815984629459314547838648575263475062819645530575757630769321725391615271410789063434251180258637693370605395277984522102499999854720405949994134912616965700246242048071951228234573032652279164291596423600477036089527874553061419271410417768146173825368736266401882157307029326636518588649692886588682259211996044480934999680411831129006760948283102763459647131899929971461942252781974052849264469579816699960117366917061797717979753050180337869600960517277225880435226503788423471092549673651364161703798761976718699387645930856731679399711932865276876811570942786891364203888156552603506606798741510268787639864029564776886649713780827112210990698703424577410455639736437970172165617491908122182588249718100813830053601153080024772902963173720676367672650741774011360829182179414286539594890937562541179771123440986752101759914259821886449884850949946050138371201596199861218754247196523658728190724698657598652286615330428466786330854610847237053106090919024514104215371212796439976606805905112725129648901798287476384269636930698551214924374066825076056792583164248743134020995096730876907867462571644355290772751082053760818798285910966138880909427727615064138980762895582404279805682304731060432875423764329873331590065349785387913839389078345286080377150076271302914498800029344756206439737780208744762544682976432846294618359930290552646106185591191382767927830362729579900892817914680452691000882391103969682272499206144985806012575254677207268745644576346943310099487444083849973616694676704991157449776954553190319693261031778471606546899387549024792603786720178678064296346692167880215673363946020888352908366983446791689267085110407800988633898734946482961219846661128617271090059358597863714600050831406622951264271591609562494875907408158814888053693019761199823518958973887726485586518693913390287255241560051795021337206748595789360140343963572527736405240904079818025730330298591265326438537273842933910063652137851918553138571670945483775145153276966998958020945027482939723917036424559987760151549486815315969736025488021892729275799665265924199633238030088501391646603644953773196399979167657893947678696019824625676163935546388525000980985520685587210892832807179318802567660231249540821374561558147255546061526269410500145809372860508394821825986426648201472095259352394734891634984458055796868517011578698223420694334409043756935981321027717599812848427323156151430652999138275973079093814200260901368309446155152016208070954423222103407699234199202441256558665079796822441111645975610390121672899921237271867014196765522311808242118336500221596695365346051198632804268065484888007508946994458894557966110057024344628734888546999466696263119232503829950304098599501356725536405071454956180678301437791468144542499770273646116649131991240210551208025576277792453649305236098184184654216266613187259798660949215686019045068079247329347532700772202946394174235339286120695319073714135499746567953348006761497734170978212335814784017094474385106579715125332830400628695783867835796251106436684804853345831348704000590342691783030241127120254210424225032769823108317447926919394165070080706770539632314250720299661377489784818324244445735635049501916073509317224713305239824277099836498426406238778581304282806571734683828682295473890519048761903022059663568208784341218082023526490125711031370063596501138870165453297085807425035396299586085793127390937912605153225500006461158389235057475986502343978688550676645999108753753331705603494103625363744126360887813701024766541071915664771702182844617405063705869792981546692624293073531172286693363163728923197861346712537282786026322298825198816252145095938147736250996863232670374197480141829064925942713949762323680599353616829833917178219259207452985205908222566128644428164803536001491233902919954202219349370577254944993058237004630383416044768091508130622676074351892070955275715443411667444728089982721053058055981434039497427097450930668894161589209425193056320979613426927868861636438065528423728450796981197067281276299531292097085974916400217044627390694095871556693583422007679310189924813964707551893507506948061462331580936983838659140336169115436042232416442877470263793416995614389724955604673755293370626274559861800254378837457018999351844919994549861929180256825237717168536164951594180370061142765150233733308609079996426795620377913828341671477787338497952430301613061337591938619757703443639875488215962798689709135973309308275978834118643596106582236102985879372559413555594541622280698108978434172787243570375289372260858798126251865228185579829797365025583309529626999044825699029492624784646946127754935026178969113910053614448940016234503834544544678817634473292967920274547793395151364722299924390794083331304322487660068676074762836045636041795024612783263763142268865193460942225875490697188160296919364135580859137508319432762530636201913747401755813647233455341699991814002908702865461578361706322785538280063669549379072522422054262399401500780386762921944370561231671216391573354948257526520541005960780559340256212300969142318604812406647056000536023305142875662694059596868838608621530279424848290264329398794383131891744758614825487171365902743234747420057908466979896335346557846884890745363646633081565721539583381506487795626988376171469028487810685391879533310972022968714940645273700862731263464845738786303074178364052326664087027245003397773678540046192188952090772016211721097781834395594149848225365940168079057088032580161980864146505681207325575392518930593586536917330041525032614311231791025405185262042186948360298189361555378888933685474569847424352501851472561737009705980033875242334890088047428975344208496864549221331086224903731252113228545636377921984564565505761587622876223042782873388968771151322109930976234198435133265772106668930893601082790977644254935944570589952104466033027263748299675235899177700801518859787853944770833043041880630255112688850741109355202101821652287345166933285072352003348173864118682750033478957918524674119625593916311292999205998494806461184342521910003093063792709983235729751120209663473560443786145796711029035087951933317630529218939607192305493577537445598050336310388189421729154819913828589620201354237173503874306795174406663445534527951457216519675202869420022422946562941483032035567952801591351983867286553543503446579145307651942607616381508174851627597159478937411180643503347288804280704205104219888660017998579643141027579136757108449265046229820832106734635854248901653981275602218199231968305617335306443360749418738878715104476476944848268969268408308193387442036374739034049408909439182462644586069917933625092229346977412031161901541661525181985885825650170630965267445992074947108511935471003959999699670221276076011285709125043170179109509175798288165147995989822245654711123934109041581967017719345714312418385442034570614517485831007812223257253434964528695084780055678089198492340730119486333982346700255624531291953058696744774108644490238588200955952289268637129698349274596767214271884219230892609019813001329054733903156437744887084470384265100074136773665141147408136611630268469815343404368972570948521282604161117399353419713795128405160045070502826398824368340696202755249416143724164988781461363466744480325473161185979589257895775405596395964412764628678418991358078019477121189214384129387458025003082066634820865811715666565322358241791585380428514979442800936794412546189156641320866297835569195313135095678351381439543176851117284380387047088667464001591713062350379847799625797141775252781230204628605327683991510529210917675925781144470289343809433501500706228233614081123726294875599968594399790611334452750057780908345547186125645536942306212310959731365953501593159216963298890555305610070614439163274951452128961484904670310955952225008600875190872823757623543042654630459696958267568087363805484444127016795012820679027357479615410755374476203610590224758693312828091295942364009503118563880414730059606580730882107723742543539780865999587227895888321720291560490469293559850077571573976115822453291501389557311817582548731341622446108086370455028529349438835894969538655710896513862336272421943794237958473142688447276414927065263572463362934852913780797071418572011766960435173541982794137439880326169949719608468264339974726136176167529271038659151416633708310403684936392555737295327632410368021217247380095664925602437137879707910386683152092507313601828445851261821385130353893318563874491612419329288097789032229302556099579830728702584391625346068905945598380526917637095617678543992909059630955373518416506735477847330097096753393127983351275163978585703441026349414912056212482622063788516185891727958123003827655773272028249743407109180251810079271880167839813354365231151453600277413429549827034918758863895229451569403867137337257141607035187243854927740106047621669793309212986106999894198851680429495165116311002989683889420903606359638226969369205240511479190386648051373701309567133855889464000024577770079872322196796651491491992277429632723905143488640673653610341795472598415644811698396186273090192349979143268480393553562340525181693360475343380928456281034016388545866159052945018936040856864218407263369876212519514541144276514443560299574088249396166501538954871032236889896165423474144564818661692134892251146449681469791124040440561841839912092262686993970727740289151529322059061413923617406903095921274153096030381479202642254637904172954719445192233681670241183674911717155420924079886578708228699699814420044389528202850475828648460048384375128099412997292647831471997586151406662369322351505705648434656611380038308989728343611778177883237370826845020122733372784756798621897363130591496852712172103857358461886455709663937282558267614694930141237460625113309152907661927450946729794782576500220257556212040112695583369889449358105719583698520318051164566633021332451406513909535337996148502662905532055702639828369240948024588936825318961947173734736918710280394919679741130270504059052196430386298065781368682782807264015866169862994536825705869629035928434062837156957133117257261128920074997084652798226854919765742167757199211356371083438353855107553140880234122338765547021157155491281325714531170538621016192777877035657269800155201537703593981503026662072292986985133745574050875447465627668153102169427740547121595921374432726974457305043951697095206823923862954753057664823488729274808313132077255282330752124882320935478407698351995696838923185836053454333795848344179301749152033417311259993934401826209692798240750541024429444315819528516200135713549802626793468564141682736280477322755506452422607974043128795668987733186724151182836731078221191698279056035831473909212838329817597262697291019477042383688720267677755306706203099619396804761990883672293384484115416433907432800841695531680007736226038772274487890661133355493863329671813309315447240061097749488233904339678475963612113071276018375405242699775839578158123474044289438939611725571066967530465930288023644771782880654532250591830352411026047764679240069060479248331937095948868157681703599247939126960187055795059047507863774509224167817471280449407927914588904494673523333808269634118261751578399869854753419786698154374499683680852265471030993725569325656783594061549775323044704814654543526238191538316387264826129544804905868364356090227299006422101970079183847590410967562793704922252099342132475334280797047130856688040498494452831962772108816172181673056925677909864539961139076516860385229549365199456585467356428727062835518205083772375007055504681401498439418376928564200824879422733669413042640711011934408842122005993227105892736011073420445389121842896308347980222928285188976665230543287063369685611259175195877427344356507492881342085734893628239982911950874247651820369172142570256204569793776434032551071190999592400007335803044362653366326954502573030402482173522634076471637557813437660864367644242151075967193982661927616175932939557547877484646423323504979385101542456333208065496213417693339189807239720340879064004933015888897341432791296332521383150516167833628926856923582864692868192962696875369839602856851794559358311718796282054218153918714090583006828882605773949835855507804694710840009367496817836408989122704148294154028525106070528028560467676507700085837480525472224788879629862156112257878004748984652187639709130240874905282721091130316685105070037888159773080169439883842521704328472879579801037109295547915474976943534721806942368698588491552890364875753492505139089100388679452906240639719070850831940274846223276688218063843943383440106974963577160125918368097117760899687153320038662705971870194979758834082524053766762941203151877959356946368056933518606642319112599550445657811934935913172545097247031602367271170822645415714868954163610358807704869917811747556180345388665888942526653769197718339949191900057445710381268026931554815752581358320160180047955873404262031396332973109295836491631962829089017471150260548581650023838162281433966425834105251839823908710911904320093834144097427361136026562054576141371040478236043375808859973089446865737390320106849490387315836750856693476503930398901794530816387129612241514038997399957369432374474777699805558556091916824705927852420670720493267996060733648124079682218229772838679063713839821514352058269154670074379529011995720089641226656089073677589172767793535644002380675628942623449397161650098988694826526515209832327975688467337996229302509739186365437466056598267189882665313333833290928125924361637961870665404002194865299468898705143389650230101048359834038263219916018528901231171517929162140102665492907439074938828935714314621278073301225651013887300493173628241604338201127974032061337804182975156032919447367940870714052936200077107790743241742790710646226442710393464826798657627076368438280337901731886544385326204429476908609230011401832363459725965043405405298741403034643963042524050044936727899740669588408758162743428016190403183548427756915458171885173556379247965718876387797120843058454822128724438952354668870375228518289454449349835153400317188946861578746174610190216687810796211089755565037867356348897736118866491766492831389278808589348170553522537774002057357100762063358479235694419351164213678131131626975299413231183519186455472611097911685307654409698244066875898640514432362437806403238305764140555474546931840576080303849118295517134483008306386828406007613673799315898806991021750827832320404823617235670016214079356549947523641076424648113463603735171284504091611831004105656336332219321784591884920349691119721994321966463660096332449540638159121755374730300695959861448190729683965785205146658671741701806887178874343091278487234792723971080768481363316239362593408600552179476189342355714991807825487908079049452800981052285494670117798147950988367367549304096770633876345263698726528005964922455925429150947726787103353277021794967609370827654667186990414485349696383369711073643139603084565211127786989351073198870947742133459186516795418709990918800143750071075724735098968227781407681188291917925356839696233383934828135396294320644499148798417301491455884686141134074141837673791418041924024643826240822887756188207932540682449082664140002856959123301124690463400780974214578103649970945819822759509663379838576050711431217383465888903449731515444495837358435488070506701058463140728321828965430084587705734218015238671898776433137125645608814389680601176300005280554251027156481398308737320840297025753507085624950456432182778897286394336619422756440404823379584618445069959140946543053626197035860365373094240626536271005583736740937370675395970545425189794506325477856165765463073022041247218026159478821621083684109336170420254052899492829574004883402486432789879661655777176084936274738182866719170689237311589175412767319046986825326450818435590919482157714643879188814041039973308859475244103429718826108120184665407410247311796811379041724479580430432944462354302152963724337730768513688755583609800774617848489228431877562349958403720871260322195802826779851516636372889554016727847235696546036511522455296568152468666152061255285707045816763227553310375894959520348227422204900980288019319810825985256725808365055029629684214035412943059657040197660021687276636347393615485265046824569795038418316627287624939496445332049366395570553790212745281689573526985977391047100395892043082726497390766378352726673539328553077216048994131747251757340923874159454642858282702585414614069152963519145453093132342269071766805385323246622734337874190129603366987892299490851468752002782115310124386318355845217353521554314958294160610999747967413220711218405037123525670943905792666868015792630960239600536074701672906109120696218182751825812234160347304553745264057308553783393033486118582761762183929866494658758271877133348249527853027727523648600537231545541178540955327183633343302360340252799082063635177046738234534493177736284370025146191180820324216687455261901554577270382007043420059365364094617087060558545329444779924767045920021473839727696101858689058195601286214178607779123952037718582277150708552576765569218550083126644555048716060713757270227162698117944180020586382007746138741080572252095331931988221204648593846048064114237174761309187736786915913698756880932003043828188548744096572878767870168340441276444839861206470889697420695772371044943131791162262051536824826601859985226876667060664641028145821478674372771827102041623726426031209727892139585898672813757449377299440833915494804955699741412153927904193395093326915476935886492385352499494057466074583030066862053985285116768668701913798785878375457476859933068419130741795194787338475090617273582096103873014516920342029237376853607629215433601563957527517816464760086970521846987883093608202301075792975003235656276645510321503112487474812990973783602533595334294810952617632875537568647321329156829096764721619041619243365531039673943881692914825895883716314909217966789293394050167919320593932004345312697079599801800226665439139159008762290979764004823041995309759927265606192681958363729169990853409911503817990335328636578991784227348894627498716642355410897062885998058219053996600837187288269269856772188576571402388239892989385845982888995298920352289041296032502526154527576821017364418791624830337025901120131939987193487754913324591889744726912062716356007072449492804557936968400569416103190845755743310899574226898077952547537754232906102168048960528972030632548467174317050728770009509602812419796107853663949064174983361606921408671885718554489755003810154259706235606688374721961311407967452591481043844358136690124456228443642599306029507996066340782161877290054860154728821771285286704685630895715935092941671061499956815439439848315633192343325850265803976635385430524546763823231926753885299496094249127556768520636384846336102903147839250490894595420422353001555267101758357094446937605341840035314270800522086720686184721137460996401686700653970026381003295415236336923483730042621816038024829805343496586373028174292597292836349054022866327366958240628463415983925556079106178550183902462580428413758266908589821731710718032752376279837863670193058567768025294247074433064415050995474325772005473669535843853711905585827214734079740918023365514929853552956344176401216885494370193703632520416060131170379611663341050859881910920553309611636484618502390362508340041366708605552457029354006645104794014166347566154981264532537745962113206720023860864174433091509946164434023665644845827091752068186259161213926044456586670299712250465757046889521862052759659863999491318621418713610504236761732452388294533632002395217543887212144891125411337359088975720268022089540194948893130980239319142647409489503207618245687080264789234309033714047089657374434067329948098729118621934956118647736836410036427573094403214521033665035197805648535614755223289980029308275511474621511680166174580672609230285557737164881902986749706149756534651034513833891504659031233639262315594360640131918252304794939136781333669768279733463616655729866476015397862721644924923499535809543227249128977647454210897578685933452077884974796437413393823600194815159271563582763062917319719989023786149685915309493470606718646529064622832666841469595778337793375002414789538641645702813476827080007434102896711095315170566755430659570223333308318181479830783465345348514785872138094183152691426560022464563624490291631795174276470669028383833520432965661584310519815693508369965697507754385409089651373247851720539040825524244615801497159953098165115853554563623697725283689207365816436940647221213436681785956093428520394573339877297116173213100585362753371393138914625847820532419534109917197781192909985331031019485743761031924235737051648980204581554627690100586020313678513615837419762814163380508145171375737851813250335703820417422993143915606710115368656196728063680417229458399691522849802760583148990884455589495742140207688907901042732467008291221542571112174089725725035143667738222022861340277745308675120934744837870171743896448693702072201270692438794157618044889909479580125825486878021147956180082112716470150582794018218664078445914596868218935363620251566499006718216604588860145138190333368727762710471677346916461665495508892750574123217501896788894351025185933178516873420215790250066262864929504577820869728611690856872317944501585189749884244774947780494296064212552177709120502714680475419409302056911782961649761098793379048667248297807041056597896739995943068454419954371182116880314678407223986760512122320693621298408550537504259660100675121354472596608224144376034738864400814034264429523462907835320688227937979103024608397521847809350416337283841027100049645612036186206240546599010643494429393241299768625369361364481140350205365781061295865010246938990272689342415608947439385498451665055316968090621508254997681527464180247953868095906950968852347235769106223113561813814165623245488068467565736093392678836351415405125975566119885222902090410278096781584263058676130622443908919588480111536275385514418334212996055903342387562013144944786527754919038354881384524162183326145472322048094227592362921388444531297674130881363758880295803769769573102309627129700965437717908179302365672148052703182006060536587573560446424992151139513261942341295452090733419776275281301480972294699374901688791632502825622422042607155227049916076809986855352066096152413732009978268678976769457571786804139083235002274350796711596384403674151944158920450922397375368941473166063762896568802415034959736765512546139223047984803971143308149619201152477108647802554743029572389540955812539407077802929253584282661551624537835244519794471376698250022987526585648496595960977606052274502407963946171067604238381014203894836592384083255093586830037157205675884242463878654093970625789832303004702464936310011656991865525852008124706897303567004156836255284536532950791370170055489106951131761456791271000573263676873468691639968449027568203882247225719217807982810776687883484160485943506412499692670878759341700924518854419789377762525599048134697225112176635176130626605403311201967497024707012046328691870582872906662663082585539997986943684517780124964469179071433298444339299559494061519469478796006213943753350695873967332667248883998188993408164534911248771438413926731057640916057705758972293406786486997691902757094030833125573990884100815329171792497223164998953909291379668802671028026402977184539204694897277954255806745401226305358629266607901484589833624706678200845057743857998383445563363737598552860140732244010814058934683044511817730385548154329345079310752272441085809991349938133441933375334040004558201295557695126246892977553374211860122118012777338133337464154852569988345550140811368328962931545959311623303255357963398447034191963135385007571525587715939167588320330506096916822181001295220979916323506894960298817803993603478170783479449996908879849232932061046938081663228904605262162480661938269144030613764042773329027816585892702678054811328846345527517244578492786370696758489678902670677994332504085892844157754566166386403457224949490544753005764841082888054196681975726684327790173543913538254288891277619432694372962066155481171883056908893869503953904919750105212672394386679257095238001059661062322447802278482865298402647760054366796272285768280985277955486048259728888087470257816309203407371224905402891307666128429214633515746105247428975847548772279395388201296687913075054500580525717618873266370371968289077478296327966984658570185645002010676918489622986037102526494303141298492304624257016895605457710224610391560464787442893703290079455490055872469225651719298332148620551104509216367040373636730074178467930322602714402525842369149509492001442095314509982692219835416121242276414973283204409312346354034315498461533853621987376974960658513738375215644696990720281460541224552474991213006493390067702311714631282779977793402924180721460103388055775479883319267655448022583847999694232172592730828533392477943860109870105862314942803699181031311689947370406799227268635388871905147755431712081639801238492427593328000912811681006000660831459628614300174571764649646085712562825509264854584648435547762332678590546863185509324576716577117987017318933100881303820744754234845045564566076379417389108191398686485226758322549148799148441685323622191082909273408711517831655563643859224265605262174371207649633663353117509261629962956187495212335331245357290818927200964415611239002620284400676336867335728469313234739560965355259874484341413507510917666962915885801843383386438658697193796513125170765369303416372719580418584727254409764679807139864825184734716660008373675351224803333110239307524586788116993822615219687288411302903658355956492207592739927986708136187272057981106298965598853538951002840544877870911394071520628906127748763211177579973823775765671517304912818866466232983785901715731154026441319241587590890914553339472456543766926169603665669094292709282485473493660767891518445582142643997364456896182993249325015909123828919971115224833892019433174194653164800552089423365353261519044577337910443669793262209069385587390620875556161937615704037896976467580452545296567821194128906935042236884895183349334775713389129792524327621903341166408873272131034801159291037536995040093776544783794082785131319474015000270770694810828730517752445161644042867909779083945157281464384080014741872085410131402925255552628184726326779779256225785122532828600371382925972380831502607710883730099047107117798685181387691969391178829090437553654597726525514252387088120545028854692827364761531158358771918272097425340592946249160384450605153549314496939053438196160898016544460827145472730676238519640505014339170444498626025192666955669075259338293527233826562796171195079119165141235240917188706329313662838642941460489607203991116191588294360933653989708293396767663028437281332570545393275895159349520375162666526440041258695621598549577629088600971672127145850576733167572234459468541724395471031559135388618472038386713727908625247871970841651615444727575975530396580225663043773053631860288023930850222190745404759040299953656883776157425423100508183229299053038687530060931158371573315086720957246631494454815600715576905803741340133442180107955799302062657484421426009910853174373024891764603484192329307932023180989403721428349890183829216354889193322114967665975957870501297557601442223630883095247711724821143532568691351637887663340770922349258792267778112112689901574225039158735134588395413766670721161049444330179197217611666580588645382260720281555263647975809873049734601035490839772371565494344907802309994026196300387145859165928197752217589371003355192588640386678947347187033469533860170849460632053641492358021141232720868334023646103600273230574206745021136712728356869704133627582965709371410705690846916045055613610135866768706643689092836163775806647729486306124171944124876772119049929007876724327552177984944044007572239781823971953209449631462696799925985057542696663325821488662103297956208434642461762807899255189593901154043659990680874500793785048966494465943770831820457906565628509056551474492320849510481045362412437131466509443226136388500932540979922160468658425234030772232376276362321185296821875381332501931096996448687727813994235836324186263836477717408077684364948789676671351776770710339478918096401709754531010637874540667057753498872821982357302642515575678343977157982281320829050406773963977085756832802090070027534450943289274543209531798947792779519648648674587028393931417485508582244215468674154317551536514670655653270092917291364266399048239685695601901095550107359751582292345078640687189587670878443977274675950320938868322792942702209542958386110553698549092763859055876997944099906223407065428355742015464795075303622086822165560351240797878969640814633822563695662653921532031358714152931201965078856411776765203100648251091631292249486307989464881996956385394059677729393044587229370648063057471343672893305822613517860256965318813300822702918204207952590207134853592746862362346512862406834671981239150268315558709432067667463188550564678256464678116920480074723371218801622828201136677883244131915968735731996435229537024764818751567768503753304466050230290599169502409172494145801216397246647861155598967915009379681058994697946339996419008120823334787526535477269800738402116336194553210981566233781270955439848803290857014240307634643308213675496090362032956797302504097004358820842708648294829519529916661213427443254916354095805163909343675818175411425752701659852375720627455044425519249974158286350752171273761136554351876208357660985860175575770079864902551041468548327407138965308462694962547053268331786518115426756311302601951451749854141209068092145844959674161906772046088608167025779760213499735811891093550367882816137984572448738266255409868372650172191932550738149449408152940528998005808554122233008771293000973588144773051451085826381623508063694725995221585776299078688038868555033808038878897525824451784756926126781784842990338812357702472730135164252177808668040475465899604524956139552285029187913731094379188493134359727459191276209876967748218437807679497091564130036546271048959988919251652398739553534735429111173235722379828874167543403342496642095054950040629347635969842480870459776474032720276048359575027378186703861434505614644908015597097268810699635988622296815171273293108016260160411604083747757563650579692374973232639099411489155850899342645623568872460258127142852491485507757621626301202713979049998726440098096790509664926949776166386035707057629420687055170688521567471034882112420438515797567419603738730367076584758260268706771888115858501752756032659806253916454383359721817565677518332022275015912170267127358638146748174704521483157463353822698977954181756824397975367703100322357228563322254741803320645961837719064026253463546044435941917635489077248173926017149573294410740621133926924956787223897254217666528964621615772975529629398463806074421233427022829442466146532130269667317961573752102831932813235572872970938613473239013969419931717458990173920377038520144978472985844726872571451615871992600619318190345402463681377375722802156574898891999671560094147603168045149351632715967387031902687379511214627526426481057996729834773907150551051491087284386808653537492776563273765438038336686164899395371548843133485158560917636338183120469146891026433378497060020336557879296894226112814702488970161213869712438160686558457723148138152355617411194865513454195553356948854795588043531223801333457433326442988778829066458855744567472871127429465393892298182157561072609126554675262342272945863296313484997315000637521955746501519003856268357153855869405018296917010035532479501220578257869294157671473675748551764571722400713339993373486855070395672929782554528057352210377155617845450270369084366328164131504981413763180411608154785024616533919549014023977320464759402297228672329012483145962574840674516189364348987779078373260867377479020240170395028084809226129220325009387173709670127869288006160203752483232926071768326823712455593298426615420565198982648071039956639269224722333199516277783541115651477811736344272632936533813545577094091339032952604788982086593289803507572993374435140128688542141320320947649179897629657578035620180243519612390268407392056313232888383083481345834012222792055440303700082340501083901992003360904570712768070050219390499215358121972082944128805647459532201966842296934912262965480284490581594499065792628978424740882811839945438343170192079579544347393976833131121231864427418858896789037316130066164456457980659083564808736959845816340256513327719068134590071062371027907119775249079685042979237408706730281738706105276739718326407480794029178406175515151053472590495079754999215502619072076107641978863499035996815197231530533044388824227868068732875400012955408061586060661745289271631088426069631266916064504844873006574601120669960091710856309377130765191848048923843216439706080118006476408903288586786729505303149645570443956475975805596787612071188612035476521655565524626947722398600540654180954571333528473466561096588991900279948060618238072711401342740262262258271880741301090486940641466676522522284336020116336757413401692304988670861907762995635065461932249407206631911906185340181073921744455105510944366511753344780510701904581872194102609813279687718103383215447342897175911342242080329864323395997886217442652289423514416168381098121182982266535154578809695319943598937554538199916095222525852230366172314844305682193561024842597435704493956721206078462213689155196499491893712949350810611919011949023719347037824034833900924438584910158323917716404685139758412297354676103281456248527387707776462392851536390608644134989852523854455104742900783961596006778604470235202583333701133496953451117101998211489326748910303239078259504444593029952522975975365658414559778310175044129255278312001252796900125962505987340576574265881794806251985275394867741378762438088819842683923907370311236776082711860692899141236082443081684604344297286386547002295928757638623848449543424383293153846373394808261178451723379488153091303869661807777456570793927952602514442252544519771719211315453204489935106874388261200652452680127239546044507003428584900048533822132909024353482507541120196423618023297191512146653555057253403977910960587395820404082248255779532451177988300372933136610360674031010727908990814663591706055094328563016196150711039360629474376124426164210679462783551618246158797294703596548992056316340401798324886332317594388382005718326061016589511832679950625482797399868699703244172733933639452137125190195976164746884005973925160974875075525502828909914135852819102063450111107818989375443314165041545947772179968786237839326823006284714781165984166430105191093784399362528959864053803743717992910382389210485685318720206882244585808253395754545054458662767597993839205784672312807241425547217481494559552172790404932262210247810268860910602974091439711840196319637274289470172020419580399266979518739375311978551469945832492910845584828971673827351818743053623486989037155154811550111458499049295593723712586718195719377312630402422650948072499320845980402217838610447873886871628049418378396155459177952434846201105557782688063088683280272539697447626039761897613466313566384273794929469476771980399288269181221121723488392094259729533131945410561421437002945922557544179982216443095329800446199111135017270841723935421648332291656794451956090986622674379087693399628914037650568420869764836502298130315104094005918181619674178114340763677546525399173807671853223942775015522676259380011274291718007425945762706077396186022980642928908836235315200783474377069688754802525098263291296018520159121853486118758093529878102275385555803375831247891916385678542289123247108972130128421909653299608074323731199373905181886233503864835668595165078097743419034800973109628410093932415566962912950140359589147141892742287388176526037231909015594225106489062775187784472428632222038320944044062486583898254739159894853893949431288533006117223977150773973642419384599019144753941925332194838665869027975270563062981414217817811247636929312570556059317186470476816235620069576892618035698951984677472973514791331185955011077972252753023489188162697595538694048455315494539087707627295843101067029283475724667332975507429620281561610342704828490293809197259679642777300416902050065790825802644996984761379744209582604862609650629309952171404200325621383857997943046181835069775156821050290567826799380139192884127055099429047513663504458493769498194452252224465351323119434240831880997127278846750794402594016204456281377758498378736742714152178284194254454648805264892156116874518147755931147061513391919769198065843226719257665503531334993230591973626227341273598753807200092738182640902249995597895416177708402808999555773059023087849655693414537520030889151372172421202406234831366442728132605665097832924494297188376548259843350226032432522349356436998403315164619812039442338135822341926660609240360050608900058736424735781166909715693642912931995679435901918900418344990008135457118832205529158879971846604298522079065804076574509999598401940790011638177725605987369312550222777379051779603420638567223694154417235064800304397046217023658251082683323021594847752806821953175768111703821353956575090862993063948649678612055128239920727025962668789821151458297012707364387936518159639711520620038365996639441549701106108759661603159061206582747455426521717983736576683832432227269511390652084856861707273749882950148595882242096387710067988535958864523331436380965407841364348311555963399985740903433604678191667530251900436133775809920666749411249899135748441391350460041232338400016373528096898719023909516347536219346874523744686703642518738634595752663904043368181911012698085527667134668130341276579570774996974087589308536006210514748494496752704988638183533904482819868875379311271699341451089624601253131014380405723597530498402929856151117891635362093510266159312002769595531530785149975411558109602385148759616035943192530446002599709128783928364398654390083310521025378338061439724851318563726138241423573866445612488174039140329850044254066874834984670648087668871643103307940128415069767472557474075386648650833777026599597502896038546196466290451841731484292276407845695461294046185547634076763274645950968326465759308211369814483111517732557536515023412006903796987308146127752973295776754663082140784858172066007231883260908734214152415980551524766931372389451564170152469941326972696069236751949620905808040674994427271960373539680377828148316871903409904845637188046035045064420331228627978589756340867614725347329361665809013514617695106174259166422250969136752712443070680309735788750734765861786737207646901111903776330544379549972136927230483605053225487096547449817844751647702433331311318223225953139121074658376709302134558937512357522925822160819657989638622081265136354082543483771530196012830784475830160693487429161564315264556494946915626294422040788295537690228216057825192500881372954118770389008847589656428880619760485560470121712106714282961340965310701056395211568841797964840198150359439763612092330144244009418935272950441007184495940243427458954388266023002175972851240232112990621446899119252107452571671262715046688249144851227312606356736300015986070391252951859265395012773719211600313904843913326543250802911758200385846302338727825851474253409467057650835303599596681160782266252858422726847022472203240009986143655590702842337823327209826500011619911621254572314942498724055624317195350304342586923615693783618351336582503279513696083634016344086868419874876006443067440372590259952710860800526886374007956220932413801675718110390371551390366567272118153613734179475542979306789534951946056122182447227858394436296249898087964995168634298793681648590212821435367659881782562663099211095669276230985280171908267818449543123146567115498336026144005498502832824974826040639010896244347922260396889933767154452195011424596694469850820860843945922537971685916744253564225632532366768874599891168460069324516477642241084208094912296149760307436401951301932435347175626060356815318544870997130178137167161099272961008371847562624549741527804388854709710348281889871665973392611307026659987879184839966903430485824511366197067233803557785429112757668004781007841085394720032434212542955747157354407394200752701282393260753557144948840994843340588471615217917662505970109514769822628866056024837958226812669963302011638517179023702148896716645262268996678626819624317659594109085843012885527132008364833134764866535184641127219296188033491577139084608342477917126509630471882732571838244144015704548174438092193332247046180613666097310938149884369153696193918500560540205089272020821935947423572450331762083191652566821252925727209156767146237375634199633108642340020394838400843966390102247495892959770166585683301604622239846526390967135219429452395508616281846648479471284335666784864112134666863158415852499424960146588239820077469858617166855092441847377172962671627746072156826506723398253047713635961754398285778809479364408324019994315658896954092380728435984415114531317586800624892561960546374436540930047547131376377119491853153728764695522839412252513683436693551647660317033953291678660161467959687278697112469275987462159035492065954620588351709456015444571839352112948346991672998858525880834707789036958119033973295163290566075719412258830852572752552293485885025207991161663884497846185608460721653912327212826288347009047353865851316624622610619615418205997624362125539619229720086567524151963969749629089459449591661452029930860246622714132332722087465269876318032878276438701749970963744619176363351807353772294579314219976597710621176222168581798464789691748877571702375580555794467653971220242608727926416013323350352231764473242551664202248427751947351574455542603428726771264486280721385319576210010454130338069879909016394202058626497059865880442794224869084697061499609569613593334203653074460844651917501900884334519032309199822005959762881137053457614241689131292366938523857947661200776335230074164444419711104012831269452344459702989315840756970613703889445575415781564821848712398388397764541867017201428707118739198444069410108333424428845303411669421489659815368665770048569392422550622242793918449700015240750625599230804315848821597769252559582350409018026767556824788979007037874254422922128086360194432285760020356658677319061177261288151353948469136363816455438318232499053227984986510239917045152975397899047598817350923605864290803121426375278622079016993249920779432668669430086589187664965716794366442213700770032287911788203689719671950062342711305791101311841569878813330758677567113698749109370459928171159475624437234184817259027245204343372265491022807708679570197060088198893909505642915043249349477187108055566416831869700541890438851445076201246435676858024013189714296223047423818040874078401653661252436069390023190155612871842239847329105861914775975376634152339867844281248523108629394277508568933731424965714351216420671206453445927888879439199539850359298714814029780842312174162217007276236797784190811141356672858484933843310831978322443973252655424643902120682085463570837956886557259204334614782978591957764352536222746968771685217296853409524374184039441373082381596071411767801474109836051192192469868350800613256455352875044933999329679172403299495414333013974106256683363605099915040730077562309763337495960114242315096846847533157111558477547303722598515831515412362153014819565640882393380240039374784935973062326153541775998384389157841306122197361078781425349082084775373481889245273735976990584712495288175272556416367870297223183820633402916087082351154871960485012552642866607605023933968715108858996288048853187586195442387378170127931975283999990928290298568645485063657258953728185362902166071642935206722724800618000854064477969073286052130012685094792213265638757858580869915446813935039031987005563019524482015245889296017584971833783901818739771188137162007046567547983072676902923031095722378813738671514038190896335875120959353790884845256869076236937678533936388364862235596057641769053312888981487165752670869310291531002649496044825132835532584566498411110120934440021141766020953836389914094166700347749032435047623432123821900002856992132584853438136727192239559285897608990324628301334084015273018436285828659128964626632595087341106131746823941221137015546156553162872853917642405412170778678543465688974070012133722019751887515470124382483893549325906094716167175910178644834621589673399133964829397276580511812870277532447898686697037791041072126422592956448934205550263581554737645085660299436024908477272040857007530294006838351611889332717623899050479107227808641563127291232646343483115158195004319862772866087628799740497793880931999596838467940461809198789144806669527784238566278378051044406699417352585208366675265502531138041693642888532570269221601610244686776718579381686524815972597991219771256036998318816007107944159042028645971212533030423246351526208723403715806834189988824439861611829818338097698123617405980970437546786879018030151464877733343543117647148946615505530328307604965333771092865969792093655497089408442157279897077006024098530652267227973379762062544912384587878677748847508653020221809374182037223601718614363860893042784527739326087887332695409969419642874811016034262078187141380880968135988901976650669296234012403530556074990574924315650917741038401138004995946070567190488998248997836614295381024346126073408859706735599343114911953070387343338885836137774333588685933051127179694467177437238607024831019358590096973428721110800588319067229122526809278210198991805314328270133656775896267300697658407173780212471049251697621958809200559502243634928268592251048172440397586760429333936051073153864448630434146254781550202864949926659164497468931671945130859350289464763822605273442214936695713084938538932090403070015658986964497372830758864398188167642002417531274285835450858912784146225490087521050626237221453578238172411050849263106684884241506062531180052429844166246442751136931747250296860352289977878061635036333583196079084729249889912709762222678772874353725140671597424913737766681294736313532202845853873529553212611697541688551168250380913945483024413609478253078224307159804682645468189910898668015544890241561395535401678077537267744620671324378470453776053331272025499821956046625157019193733887744386300978485237497884379304786950709941744725390167171082694995026112559188685848613446265480784672670475890717501003278415187678685909011435737113915107446437799390759764245725683759984058351645829350036867408432735557026564112797472211866429705157694803280719583828161943991913598750692909180313029278929833381314322703701170166744787345884865565529312431140679906964294039192969953635218242858833517404084325202728006367640763505238006999336170646607268427685952031499660684336903675774476722427771140886452407840285268136133798616956672183279522779811149309456372880282608759436542438468003377385995415703638818333984058919720495663864653079834426514376900389139801116857054809604480978034743307278371394537152007007858576378666892584855481792677994650579484353076010219857121192731076996513749584738958552814760286765287841343525628406164904572516204311467531777709457102730522474327576627105226889479869320127146964112056654209214162854697202081560854943092272294028723050768757798457178094371423915009978930949157196386043504471375875282440358671383043383849667844500533353400614698623339276603577640823733313349021727195479254074193393480823388662995954674554637544442830239426549555007279005008580524828621866569820082472854219956202004119866204201228293534729748706713032408423968095795374498313114609340896153926315758317399561330422398749505860019905194084961080435342063319002574668822188918107827141500238893752975501970458090133905030435967338691122324481731761441301859887553473260406022210693166690912172659945244195953896058237535597669387700263877200299451412493050854077174271728043162406200440378902368389347023120749078756254161092813304452135287389602277953881384195484403998555899216421568644343698366308420540669999434743132338400122008038272311520068764593707833312694952792830869265497020869462914565997917563130491309541839301944551769508143067134367438181828972971159731723733535516498133846500224113301934542700670796205728167910760780793564807131560726248162568960988513217307357739070756295973242172627036971417166016856600477664415629451847782793317158769810073412980735388239442677760414398469939198999810849827116603232930819402712861862944702701166872912305878443583877265926007183589564117758014478103120429332050031357954450713043116549308641359219722848600468287563438995138782664152396585357721663206847375019916384926201929816486560437644330022623008879202085024477730180569103583284331752058945491306963583679643685249920727376125122763013829026133752662291772453076004879553948810009658335722704835150774159452048606868379699666832510364057318060114155634783793047122853293609456385869041479469763564027144182770613620875805257305059242713079029183133782075309014076170919446742915238074049855861560118175631296171375945096004888778424530065415817891171090611910105971741534213393885193092033601603438200190875435955484134372473209286928161344034064074038882140446834889584532606329543044918152576715182930979355946234965361103610990012067741682871920783255646106810077161741111233920411723708154543074286518241226167889700945874398430308059582189434501257386486017641306405525338445220069233578459019130807470472342751175725362535340606768532038299756518099311175683673799921948454608482829838881018359331630940523286807755530154501539495956976227075933415580292771749663670560628058235481946458271748945147378366884076638036831372309349368445778005082766292881371660903521764790024429914487232087903166528290264343909817154545180837887583906613638585639869819038229517984362076496964338838868009915704989202451653564423433748774468154165644789282044478537706630409202583630666804255741639520194707692232720674728600300625811241111920462295693693044834073973413801317073387416779888103540641077263202597630509904155345973078216852972133603710747940476842375455525636781344052076351509167640275981702401544980643517250424965566067102211201920334645599686808935766511653250830774323388627284601908190942008597166702630550194937536769007246385405600538440510376331348006945518235811069160864903272719678239391745613139935387368593741548218262229051664497587031015067842856381989348687048921386654298890427382540096013816914342027390740063428704147599520414281131216662782768699009784867170010310329460124401842047424827004896482585953698108319033902926436827925967122687423157652050530002917657776407025326492640256071595922297189715817987713024000660598393682265117989403883470320096633741089575217680792371403092720881267668425860407221794327663338246763275345876757362036797399527438310021489484570137343011051225581109454151949377871592504139699865744107617832235181494450862057727356086191008221692437413458210441278940723605630872893625918022892866966711673174544578822322671354362555480192384068802060124003991265751463232086597404046412105840576973465724104681238495403287050795731883445225857860041144926319916060125935704388438495109765659532005601549904106025523241021749679564709486790808391103601118220801678795259587995813244215484619553255072855564909138264028943993006246175905025970438346666420442083982829105615703566162938499720182645436368173995621415307797468592753773810897441835087462800820857281654900266634830679365687493414509491499010694315528438453237524628600290991299092253255811023238471401611330547359881030995157881882849731753033482482968144991509068498591369475886621322806720857952936914965991704873086800298077315382051695655175107668043980509973648393054340818847109635090282603911597233822748893311558251816065469658261317952990835995501327660852245354534485564632609552369998650154015601926233333041477683196899875633666064856094946086071762934244295210610116295204466272488583124125759937413130427736430095044608080842590361231777322515741948263235487402174891792888816685229839826857735245303338814012845005741772305558600953544031645205995942756525631888738088847709089099955892574808091690588467966999703476442834101999266002182719751417857500103437589713808946201507989387441790683302850669722936767223824260632518746695547357738783992268777729810538394864636629634609808198357708600365614896785805550490733945867038992838121320620947798051906443480866408790612858903616037894564508759316064783313625527511490127763699343009055646101559499035388327024092560803437170272912076201200102181923177802764531237864850166192343124068202632502737599656230773875497111149656735401606151477692267968531766169864101379199546716124876133219626715430593062937494006708533827724648299282821707370367549176548670253535488078243382027663926615598093011813685088979044704071246181923867895156965186874323657227182714355914145334632800900028548579700284963166631767449697931337582358522490325900408768078678980906754836967184750319240607747657551972569838934700510304927048037928651073233910778829150976778521041133234730917084219646952451626158158526571309649563696504673969152746638074773339594520664303927780203059594171894932969572249578167861754382779100213132569561538713500384071083995880551038885658316910477473257821499549671819915004480349495777797790835185140883636335938514034570244461582624403224834486245141645752146155752603208671030240554259018189815608004079891428629163554555012073399520106436116378021314388996957230897304170865547939150838191736745873103645944095178039322117567679479050595178718709265436986421516880793112049588421159064629837392110219523566532958470333509093264695751573627728905655281741483101633706293081058542754825712460982379710320332699277462060034919217261591150048314674639085241400607136325467164061889400767449960699764652276521799827517082382658788549494185636120426425164671391029171025494843534227425374062553363501963402772296423836364805129291031984401931799879229394262282242872693870224723698774520844142705630693126503422193150889947577924580238402171441132605037014100455623363411065491751588015112254134012353190292132051903644850943626760945525276214656064443151188555918274770410699177255655343609620318497938060972644902073797270289627911995494427118607075264459806611393291041425501996308369498025245552235932342287630889363059867156682915274774391982823488706894743873050823868434783272173463147959554863698508775507723375404744415463015301164974778642697207743354020904925543193372720621593495112652318465601751246925965218797786773166207394667178502297665637677192167371877245064078145654564458164009600635161595754047334412943110416728159594252961039258289964758889009271681077575924470029882426443630290817379221066724701481640483601359120783352265334060979335607252781494994676612495545367862856109085219706689387059084483447557687897978500242454740749611656801618506145963291142925080153267711864359591985625788087899029175516892801840017237418042616107276796386586425940388975374610223118809834694688399500728191432061333119390316634768458460895248469975457982745493838275502758591537481590065423394499149462949502802243785441082495851744850059832008030962205282497586819962362953229903156822674839247809406786663251694424116166855110599405003274545439768890710211980355086427722450629535401120966455850825620456833660072678301632089648905373207338547946964866597277337363487142311087613252080955512909616515343151878403130882440060598615700145713393734746364744885176193540251864949014616447602077540503071546735793968002286593234676800971815828185335817225539564115696768241259753190341080037462294266979093143800725999715091398618469808152960415727339082673382288783844816649404357902979407973000778761870362606387199207449740361144344956131352830796373133985631896247593890379279912244678446976411757063059296970317884894383582897000118179018037102613305427934039466244914012102485770881352089605775918521317250464110847457541288454274107014412535817234251434038838993258541487874095889595612370699704283135614172583327304443264386189520480971622562042990210495751125311264707066969146738410256280130793248126907041822938537333140830416894422362093590595248748436890755004720269260107035039410805242912778786667003342993910677979908420840193912558493852437184190223084624804392576007050196747977774501636013511491685364873550591003078012007076754178626116541046161199318640064918775147832410679842393825767668686181207670614485333459921853018084835788282698727779283542674188023321762336830861851167601610946463556476000338324130978639042243087514205756693660077329764862083411299882643116390574981076813382005251436943989652187373565871898740355927258400454012452139407658642782942432124388493881767896781948129518295830492949366068191334177828540245075763017520635472989341872775730423369964945131140104297431894732958899931588488471358487187588890975610234689888246238682938367881291726168996673524970649990083055569731654537937786942116695259562799383947474274553152679573331733240085640361976058935894014291950269181998530720698395757073694497120585262395229225724435186393312464057652555570981886489041215961553694923578438634204076591509257398112727549390603752685777473242453020403607131517738027963406979646043106291672859436750777972149246772160784645985208726878146166888515039802072271655519145539740607370832299924445422809020560602140411206830569110096617740688138228581506415405806253558928485205662999998985769358718520517506056035533793310723629531131139688969611134931988626171761160631278899109839875685372424860198106045331418485079956900695734239225171561181759293992227121158060131853313183626546276110617570467956175989186961915455880322935029814138945178785670823890871788876937537103176573921880790233143165300046585020546010347748690687603520233305568074098327260436356457835382884240284677294694506531247749774457905318294933931478163642714491406515203545948964419812201352765630978035939568695463363658640337421608635000154371378109382007463757783082788042077477601048345602410912330712836133578538662210788183556427279264108917709671426427354398559515194426066953604213736022645922498930148867116747390247859252415060927172808634066004183659784040304008083529289658159060085368932018914352840230653506342083227942130735756000248876084215927147345531146958746047500905867224352995292915588636838170869993253739994520822549265611611358003322127036764773565707804840169663494214450419190342156083479508155389037878689345025233555279658670539643134412156858735448795108620700646974196752128962518053650066380683200892242968856923816936329115936762525420958506100759894495353242100506438775706870175763978495395410951155755876048097658609535761126730646755602674712101142519943278155689037380347775725132163602457156026168312154001975275408641451300701975616911105721440180162563429817714990406850899427777703179936987201166874602149658654204117454511431699712648122360437399027631065829638731285940957833059471932181038711846276059458148258281272308247450477553783748453275070209589829615625046221562348220895666360895395829073117076973724350521626247117612434258327136267765372908761165042291206179434919888370491760770590928396671103118294908921887529544101252460941148999585556326348508183574792940147591106777007388140330138271285734530814464439064701483211444326495006866775146244592589445627641022168992485632591316837693854532458188946421145462806403448059323796882608343222044386782017832404206682064349298426911746376339884530923961413748208277469028225063592610669559735743005488173843249624622519921716362275037085783927319346045884976837424939636314221827046569295737881796258010938206233010840150770539502540943713684548970720294210420558376859963347678765036523591105845510473875535587798815033507207283098216438365481644021608512068928038800529867826205532263028871867807789468752056446476494633509817312410332404240646940762890512915350817939077333185240460702594592161574256634121486436265526124355844799309690817781626375327392022936500991690593879254063557266034416949830616804858020999714915808700872419010586797621950448476319249742019030465566155831039724980366746616695318783357018504521281318516552662430722686964906961954346385584206699534401673564108600954267797074842095046494783918768915318228139610024095975715913729019816390708911182425726206968483306825604984057201558636968860302315274238758442100279210291953948455388600651616844356070372996627578526211958473286150602771020790337016786331467171059639657413619756424064177601241344552316888154176821778903593420857763769782463210690516850153019878558911079761763532872609215267615143410275113579303104772493040658163664639863902496897655971012987597681050179190682103671401216378649186719965206705948372655080434105980591112004056131974202082311101249801513709593232949480207816725775644653768934564483936994712371092384469862626045911717400185106608418094873479187655670434368266592121276149497004195817685510891142548060274900116142286318932631246048455070863780723335826506746611326189339307320318486273214581991086503465467561253440626580283211701818564194935726702704206167123792139348768794781626628455399052544990460732139041570318469032191168082739120084315485430360537523621554708796915960363853726607875203732268736072281870358838339946942308273674980851900468120411100679466143452991946025226612655035140384243519004167198034570739974804124632769549685042250115144941354682403893082210558957511013260496420841281742189527463792611518179473100983393739004324852685132729525507518570366343805333504724951864591534895986109959467543441693823465974395263698510624297740069106041720077215964584728726142025865375027398010246578995920247365164349990213744240329457685553712409019211842354681289908679893773503076339153216178255174772338888229688522153832534184325853055446351750683955407765298207120312122407622017789161878090427778473055639824627530219821163002426701110199452981520117002764157987437436419839402364966628384456408891907344621076622612370981307785718934557748410136189271626099622276897815362384903577084121977556042529635108565680791272819580861519861972003080021548336341812759623623435981984881353125627978751660339303949935251604733562246236453836883497582525261021599694643610183468203064100952237361151266340910193254567355024825941934990603830185961169078682041484928548024335972420634724923918253234439049292951995551083161073724454763151185002924400017116042938147145170895640119479812885162301982096919956480899457938676006919466290768907229757705574655619586901374619959320706134027466261370612463467306154428836150425048908022746203393367851634282598580547891595831647725189402121795094726132907668996469689719401161575773201149681772468134829709882574967958868253301034187483794533282616990537704801937306812065470300843381654965101991457035700216009885197449863496904852170633954316985189783764798309105973165826435953907104642911536073954140177572712083301283206366077898782822947872768944114444654936110990771504676610954704765572827399438598289717688131455090224009450554641993700136086385994927259618470507342394944524868815648079866471152453597340192720187932445490938709863754583583774155533617732262185369806404741878699965048013477363527828767382745012610679098135722991110896558427304020583751877498473577136445296624063341435177107283620824528860843940601688083265875351392951579762657250989089514417501194472534921492511325483296046890098292280532999349732024643254061081070373504527495064251806528549985623432562313648959806428265018423484872299617342540919560738926702847322716608643748230777985527442693374007452789450875636819343941442999063964376124052527272619566677043519125094446451844076674778711059431595760795954282495123396070741804583011434877787721011338539144454261709708083286543727442064686097938173243769762449785611556490487016033007243842937825083096880797858629989226874242770774656115984411084847407978205437400331811176507664630732462598473538141428703507072253604435170520103193297978075264438887126035885998252222803465571510010585072445683051222897452546957062936424384286548154731141405610249238346533133977376264414966180847490751148981110165688840137622414397019100262231219649032277225695099449626951224670254184316898520726917929919972960364994149514874268677989119183829905319944376228404086484815687695575259393167827755442733957869194654734266357542677528719619920382069780366202025532020273984081636722838292309358421028374898437756753072349587623371369634955177703662359240907194273415449767991473277005063343883073959255474769175549206532361284503119271351479201592211713118390980084020929004273515966995839055209599234811493840133132615036611344519925586588653742896759488028197870527687796295756762880844910851828949090120477721378899203363113751477687545810597726668165759704708345538926558589270489256343854102284158324228649215274800948016868855683128039119667045888510501664228562413284787018912012666665530667552433278604109512161437597313231357783238367694955611510561660712079880265737819864425609130923056119982415555590810150730056766679521968435108910464901538547621601957084609569434915392900023477844722988860516736747692335359615723706226954390204817657414145197071571863093434054854550225542109948896530924559145254729393994853643083471522421792910372403578202302016387463408093073551681542213043093684769785601371492920363476095216022979109539669249795026703953869491236634771455125509649845857538532415132205310853133278323999033403932284038393568290538934060871490226848698487431862498017986657898729026499491877276083871894127438774807521984492742377961531942790753679739136544624361084018116487157848956139056496850570454928569710238932481949088358955126084738703259699992407116729216524753583429660293297241682440140242894595617701153964191899748225822747736569720190820940785058514335498726742767067832192796434384846242021160836683197857550531207807583335757900641698282114061825191606251506683894121413108736350920412807568817036510502289349072869152085860230605199083651410910355437629167544603220181722725406374316653726726420901061564290909884221116173255833800302889889612754371459374264811441076194171407171331704291217577151379728298825066887465647863538533555702208733237213450496960460020280593672187911290658496781822311258025766690394833063458451450727974848094472777425410206867640163687616026075277145773215888642844717656448796132338801472840484312913650587332846428152307940269867942685819394678734954072498402806649412871974290934020367617354743716859198700166280289367772869003245681281534323648173232698574525024595747953489326090910218110430297522979980282366099637942178727904926849291083344051532586396412173315344438823033488262880334868839848581767945848884601449410811942245186185297520213023392009216743467082605961414396639258921988483643527601957174082217951686315409736722339982634888715393208967381673817525527847638511453195823553194781110591218230752846679355236407576539917426121325618163462217104619294044383755975582607172213390729803397813302894599219588183903707949424454427989157795477748730165912433786334104350102209087517692670291642896130164052159453026597558120452533281697774085288366074121411474008371083691191233425276868724535629630696975964688901800221931023419022122373756390290421046618840565424438870606062793678834313832278055313516739474862952896168987615079855593582050051141696119086939785931988488724779031301924794481546364437533340395649618317243807110275704892865736236005585569281116271292393474752668731165429968393731627858522925963080615291332197206746697297528538287102494081798732562427304354178876199364294048310514152376572143975803368547346393062742298614797602961504861991566581382493587160823004857646259730196254630067219131961308788884970134133931243805827496918613104825633807022860467747346941494906741421423595040467232313995501200475019434315891600802301367412414977784273780953054398955624298323065505674216621557755230839889477691009131688285651627474862970737919963812002671687649254669937112407833955116195450862367353632663489348752436734471517787248686347883048283884876219791887365786849509092629015137752543203477191059795410582161848972669835011841725345463030878534354782520580983766969451685333499231747041062597929349912529237962304671945619640407646386117995205830418984748633843990145355731998836538832750751356218174332703127922983068497733423288916147139783453758159782887151281273300559363634254174305766435212180198709235889473024275250716064508839843200724008456832069043003562079427820024085855981714070282268632009083778532346715642924226242394711131981644682671037414871744442558877778706040420818501299857265757057929933230953759579771110089174210258232000630566725037130298504809495863018861272060127740435053109663061732632402908849882220014527578652109690070283187796830606546720591814002773856831481453188391416192630273772183034156615144779943332234005300270910952445971391277940298669578987347041174189705153271129390864273806169137018552005519632008471774849285545217125342775318036949266176522358581488211753477819207397225518669573910494294421107421369154420681256754984057689762124170226600625046779309148503406951686332020002017038828319353355383464164908367321074595813300750230412394219779896939957624955377236603288226668327530764496533222682460432691244926880055182042257803359376825466207823096406771822256177797973872378109161976742855763362643053652788630090512343550334531047182328440759562925531849538655871942064803459018860931640153462615341557546313931131987181235101179173775878306363589837837706620786975063696619080399331328965581612501125514734862592383440638447732866034100932969696860504723152824994172254019086139623333339766760084939887844601305059436603270430119234860679936533473976161606284475024315365428727313727661721033504981306568835636855432205740022605196745763641069297663890495743561750680494037937577148133088078912515862694712961827671290736828932051117668023646020859104319677689156470850765412349578848120120373682674533772117518706672623000493930799120293954979884084598037504103373188339613162150769578209888278191163177361830662461940812042800200428143389463069345237652864176421800876193581250651335890271756648171593658900352487954774513454303799794427807926548704339139588174098416998392180981785136089790168544717083911590557630858668829908304693724301039021152173893380944474657791054613419168577322113207820785601910038524901178832522242848369506648947690298196165883969989727923577713891922037083866294857859786450592689157490039952045642802247116629683026497190245754797758127640552600781004360975121010591178350448711473279778127126647412806050191559412293517616777060441743551500475148330662585318636320324960566719210878613890663222964217563479973736641325665284405162719539766533292593809342033616899230028175998137476221999400969473606305044002185592767323381562803478380622477997135015700943926278685117930549204945295874307851892627966090963049335309029372723060810589644764379696058767969432574093180776174091656008550007821941524675799549081561978776627988390073349436496400558387609841025363013715655278444966854221153772935341504234397753646080524175328617357550665932584144065854191421164152937533702996899454674414715674434669342129535525044763220173995007226988372061836359306740219773823404701187843522245230526758901237082700893021067721589499017158615226995671896002625820333525952779436083180132728707150795536150830769291735715814426946400539461379839487238557235333618948606134519559453005010482371161091928367784539153981331766457614800559683732817925704122969869483215071192478549759884259099182723717352091972037768054928774146445725307102679371155909634412904826240402165172403211960304408965178562632224306480853073689702993497901755931103361429304277146980114456004777561139209885363590748210124707987726437371480700194004436674033577144457528732999405367382418632942140747451656562452849929180572253066794204411231044373897259827535839876649509771145467568570774809738677134967805506656717193275041732902298902238194350755757052616196612085774267547026170559079929774913180483443382269145751642854078444444615381921851140827197164832412900880673881123465385594373984217390818363297183750803478879197256794379772588849446750093092310757548158453539046902372111394658846023674800354666589457527147827630459707165633337076521784883242757847092112606693155098164590974895116731268981619177301268222353854456255072794637888064514035707878899415349692742752468996219343658565766533461348926003042399402086121390627706999062886288511467561536927920993804513171761011040191991859324995325757632932710519380270569861928112571374869709299268848599656879455655379687609209982045964789679935673050293529564625455022662361831433804445229190498153034390206617854034526123806719827925604434866754248268345322375738397532313257695309426877658311583043874932802824985908477465793699238822275282960627534404881128949940681618649339044748368488295966992916235680728660818995484247650816997035942235557320207083135227466655630730092151199517015555124592215352151591371414955519072091727662690789527197707676039632344520254496494422150988167919507728309875443312649856818449255311971906072259436986855881945754850793665424196824843541663932929434992125369278897524711776391933996269789691842220819404322732712703087888789082487370404307788684596477708043770311341768449201533390441786914945688590620546779090533266391736473149417966315946220685572293022317138053887943975291857023244188448878499474195911711343247306029829006811282631869859111256653384575620628244694308879585394439618063814476484448605205772783807900883817582617754026462062986369134092678319038291531320467147419540253721033952106878190954934923773880671039199269461647156642806349141859452612395035921904078636480133750563302629860487872260453461553011356094816710364460048489430267960258061312836996089043571015403776318699004379176021387492777249846314241395292446550718588331085172689154030116573123650120036770251862275760701707074556591360465027125065237395037390713567614283698222287693099703876137709803483764988167088988299489963703908140358229762419031089100327250506095573168368169615634398308551203729057320043979275076354192898996637452029003950910093299119642925326803997734452227785122868617038682637114992987318516130012996654344074538291627288328742805943815589330204074858386524124556416637942357406768914341735298023546785270815725446938951337226652797557955654660068685556626321887936100810071555123289279715966370084605618884271729595037469477736726850369807238448112933455108348810732741127703789281588758515989615232690131180411938267870363310144369736447171562377854748065751045373555615130549576578580194364743903979074090829216925060224955246289756342431604015774802582661823608556402827814017798949319959840640593394778405314183906067905040422314089150236869745578008841682611558382801438868391208403767121171330427996695083703972370037091159739262649243027421802703066116383294875686612726249087799891750917558297994672349062279208449737731806290163468669304785065256530683148251178282776315234235748456277874762173200368186000673173095594454798260891516780200681130536126720821151350791366795856776353402487700602799345283565178346691415171699678261367432842906363877691884386739613077807587792069111562923424683641136039169736841806557247735153901884040527445699571322706919339334044283342654589582043058604164464059981892057978388656307744059732614378103601765133175601416405591814860064692878744932434030636321386326816045015398305027865739549420136196943870419016904975093833514862600371945004051903907096866132504358555273216124279697831701429127429360641045745329463861735819274977185808495951807704991380038581193744858273531721565157543298049799274525946021045348914440422324387229640059379110152737637363531473904883675660229059006630781749199025803591723668589586359600875875102299152789665907694726577675976838262261587273541906052883756807125810169460505936171209342576001757451293652314365926037832199019824323871547620900806461031710652423129534071247700282502743165491288296623930850892945631052671600727781405881124811411621396466337798702756650755943485954949614319437211603734605554317484567217097341496096491472727743456008957605952917357599482098206067103479420168672022236174751193800998742607570543579162786481545258275155796849590235461376295286700754792417412068097754786902452832094274527980282665427779156834838869070006778028309777096971621570001080148730516394707255478308112129120055089645034278487252008891762884728431446930171818070115968524355541063063725092959683143092033102123547734612362870819243177183005736210347318241031488615496961854889239144949984423737779175673685884621549533012461344065072218460589417820550421433648893232945506571788288867203474755386767108606198657723119544172568992819895747654924476595388361868657921855980880959599735463130572016695979653025638266282564477935624808733522630221212991506902895277025766605279662014078740122690461759598762258418157231207516269725833256079620397741607546011973198039039037717694355592343943020366777714932901976918048851085009595361962770239155638223210630685296908595258412744688626717716810223346274778856056320066728104410409955734656048927393141849024861012146632344727420498839412798595300631410665574951799290192742999952466805857339092691869775970074114050332781860887481301819661050420248148269762105757544390440304364342276516943183287142649691679950325725283081221445958587860219638931580199669294021725562792388577888240967215926111567622886036916788275393852706562434930815016124844991435997599931619108185536900561925308187070267472855914217025781349965756532641213707015848279442180867791597910284462514998542116440723154183908190222389318919920796038672631710943219054578775908603406282781609974065440862284244853519853035427074764334740931730463191256233078781119415670438665297267467607494532801953267498685933601409221511374105956339403919916666721187668066143636528783069967971468812315187483269915111382412530675773454826450097172172676686200937566207569957723304664893691947443511106965944795198719521150750028396675222435033854498189164353526332172932235055113913519368329463153659342302730356971233475139612948046100434873254848827898952038420706322969176785196354154245079956338013100703552343791225313319450705377005462253526198574771058835537778728203912017500967169550180277409171227977141580478598071938621755259213387817888610945459614509293089038460015311771323293708616227060772192630233941264516672802663753034320318778862211493451184525286684028527123889893927962335130889098276318275641047346788525199961987565611444353886058911466296952933901010299812634003640951348702975971112965967707617839775403727222105472662254800500890433354705897077326799932650758047149276089715412242960426481469382587892464415331368383702173293585623583263432720541581312506390446915809531473149068452130357419897580052423155842884459085651777216515665984276883175472840298375252139867219962861526732287125194147139793256284394270334705284470070277656290506192115227209288183702945059833991303641766048703746581178666038517322460791711264503699147289079336547019227413977817514514756023911845232967280656054513671258399518505478853885795764625210886751430433415344172908957588310130852787619128949036156257439614152025883675000866628062417676002647395658294045638586549819644876835035898567217265844260576879320421063539342341128334555778773448226172965109221928133370931242321022063280414464461142640530710146711900749632923101686980203887735440925092826838826583682194012752967462932012004738101048600487797645194157368470250426177982863715522364161406448611204105217023532976537998074678926274143658456556412840229870377204316389272320114310545531934993891368537812498324622857193179363283468031988618467814128929945319248840512961822752997987027790119730381126898748576510942353937409121265576355748732920441968611081996023891773531208678835479365338703724322375990631736542202196697519798196734042488872868575916484428226082697501002066743720622147399171127486204486681773737182520666232589553073346429129653834493595376066973912193539580326680827416531081834880561377163782614363382389061726978877601199563127051056563004069100037778534306627471379786385284817592595306087529018860452520433190185669419682797773063561557512747459387874021509006122316094754368516761768649273110839714961136787885020933867961953525644210832779039722561253712809769109410815908739845620075813768215137085503372185590340736222853034921535596345958039303691664021349696960744856378296033560142600644419049807560951337572016332225780079620115397763721805064922692877245985670471670465979099248756647292767846064967974182390506012450594975802696925335444971154407661829048017577322240604836896470618162234918628108332871463769037185958618361633843027593030225035264927065796185562499501076993290952802024756402489531790241878918381468196617383819829332879330934503157280123941577377732581922958929624517957545716649254109182855793354154254667846742456470714854526648742667315710302300152824743693114727257749408812462539652010250247842109633177911619931337065315020301285885128416260244749055869221967852414603881706543844309169671988760104966759476767569775069654008673982494789981992011295684164203429114683911743846623481987519456479698171141407211443414988410794808995556569519316844849915047350146006480015204553044299103737081727658858977029831074020159619505417551430765302690310439551013017404743093343912674772476260939480641542206704309163642837119844406076971565885330118671013371140379050393506130885514637436810289043247506251689764261198329127852099891902625233191419408443335865997952788587725734381224859361270930364458336176346168233441333579749138522431146772019933736735619703506122737987170467673948500935157882662454328749953064467252672709349497357817235190213680024817156435320227713403708029908241897129867264890701760171596904119394593312343288756251950395935507771556702503812631236372679634745137990197990205510420805507896751795584748204566952693506101101351521892599683516480694920243432932473336716095963861220587620768292273587561473737772231288132304486213191516534156762780582138109356789483394827123707556975121318911301711836197394313267315594752883378994199939070433993227738952817635667671918428474926228369177096947684795109682486556617798032714548416009379523176657798738035113358870653278082872546340329526720023656075307589525097243527800592371440370503562154136033065794994701832695383956140933211556371664165907456037063693803086171277335476116256632328533715435714155371187261969695264223744561853911857845912593589443312705411345644985867237810698945671313130399951210500816595777059025016436206336999287848475027344926461517111608379518777868605544558908876083387821922617896991364270153309233797906173685206907025380335496801007947164455525909236329660877218769093311519733880678254479444091393580209868049073315307113507316659466101051858608175941713391223912476157625075873554368370061966394815972475751273272808011758000601814912517536725986394978225598366235641788199325658871088440141074557275649025334626763571433934256329824013753578659761410222115980314583541895271982773411894432932181335011493173965030002989365230198298880094937234282971947623725861243465302815365310437101397762372362425808039145541136941566715434841713051063618035441742304919234531012166117814350106691497755465340136503580623750133969022071625873721600405234454018112867745286645003346780875036109054526169663980038820171354653193327618682622396638535881703775725510107185274273600184085724397355624212300506435352199123418271219305352078592512720716247109513916729505941607680353136934959229227754087473540459726210846052617543146882475934757123708266130174196981331494759402485127434953350348957596172381451318519502394181057337171669033994105134180929062372323711591212136259103023078278812326034504822040691027234983690557715357502568167983232285630661995709704778857806615231242073377531448850373978315720425608347107844247264935962657441087079588162429448715194080132074866424975359388601243202494026525658416957368357875987648445126460480756918443923844331936161809778705159870139385077292217150903288265058595312101985433469673181091795755254216928131598322794357021275115987883036053588759996433585086559061336966313879339750690857467789702310912606795382977853634453289556603847458662743340195176925174946948452395868223559004849773423593967045535171153136581111709114059807247213036581016025010645091445142645406006344853493400678977814283481920567590842720792600257116321554839249602159432786305352383404561648719518878673481702248760851091268701742477773622763722440743905136794549227153663963370443565556519042863827380714032000290919353981916831715643316975582417252916920103769949991259431271415363925306098869809672264440097055703746957382205733666398122561900714742716539614293585899797943824492301231781333403956351423554859273056811990870133950112086490164502493646590965417665203766388224456097446725179439169739842968230227274649855080765632686453756252000699766944501528263020311940053758554440183112287709857485063968752336740779957107110019184013593594791059859661753723649137566744728690090336795359416061891431844437715604415468454080473691096048698074276828986426189009476154786924245022018934664772609322397551531497491233850694633457617267796395676841495044843964754144197923132372441983510661764866232192252875657171932133282801976806532295774019309185670593185434950530319690671316337109252201972488314341328047469719150779049653742373529677628085342061049090903889967680152381489700608650298225168804324475704864854195673611614411904390378735681823700221675942168173191988171007583435161146345569106613968360242166343830550052179309882385792057029744346984829267961302785137307661369589689871031208112675734822450259098072448219368599186504172381146479551006066801918933004884120318698043615306476686795488253928072605790533491451191547286743911461747006838730496317691543621238604963653281921200009330328848258677195613221800702900943479243576539274757926590692838524607650647830045031824154055045921271631689349337759778775605866354406450203457458368282597791379872999600194168244421640933433560820415330793832255405421706352692340103508040064426766234736193640848889790286277345971244227768328589647939993906507998326014472169993165291522631470717339882914321521710131909060438311460267776414367109588510963210102500906578624950318381420391158695942595447802114608700552236234820904804101082581811233104541490137094706365440073727757502120484092564150790962967344471305102578573845018318702338211513442305612743246717199727687662195573703805449234568448775135529971167185649906102207463897144688386240227195894398049438676333814359935961529893460512866803410618028903950889454692152654558638317842598505328651371546700900348236772907056943471357669359677288872095047001404597234386031186437545620459584470845769621576288181299705335564045465285684646681566871557906232565461423675568512259837324794011396753052204181025200993715852823406899916401254000782150584058868362670997206639661215058452111892922826503905489167538518028605900277585225663440301555479549893529772643709875710067654876277303863933105261945925196942858232471810934177738968722678698280830122565079360528217304195097393477203114791090276792216475694389397584552536454925931836737603695530195233640305783314812732595859680266642740887391047054335336481146525109013773925767354856661276854206958109674827988640309628329587379665423906712051978242760766957567429968747549910836818332146538070787835424524866492040896517878558894254240388575198909058666430809585574466085713579587824120421857100911203167442550428214038124098552206749480428049440873821647833126264714806477260103240157932146614397137679600903061426248716872304107218786297925539375131906404279183905432360748113748711592087123398457462750425282821820132193944341014381151462239809520961054904007430242851016467071626134538792486497551042913182554750788002522529170373185472842547961851303716829815404137487936284346365918874486943263463922499754227395194906681333071611709017689468780088371630142692204453438898294831697717888260053972138216804504587927841719652509408092644272021610316493624117278898321279979471871846052105688260247405381995641661743106429841537191133226018945062542431045119155748495949898884733282178499358221627823459469325890442461659232533213261623224060539004624753656189606474091684969120056349792466763630045194587489952486038608179517529074335337710141543633318082411833054145079989410065102659054596535505295181125879959250712327824065593703012167330913483321453237164174767538251771958405599285959769177803460344104829740256998847136963758205100071809865470368794173613146543837591608677002390267153986163551175457658224052078606792271814851159015335585064423758512973800788727774477466746241974891825372148824900399698566055351318255806288181408788091658213266360280929057354664520231621188656669990863515904015708073997890094501749022969790319454142501570914375903558121664833337095461428854756376728010031457574571560178378827755431841453421758419453590493009771005582837498686191215218242841644111628716546578256314356157385249852159002778899114855958915920694756650962883909810986937945433751829799795251039971724238333288622865369698840166429008286687882932094102987984808389752431559651501685271940604987006634276147155478896102931835455672464624590506377506449471859522633086812519116628484776092104048378011089386244257807638432542394888800460668100014654161547697274514992724162227098708857262504339958615988494482242518488659979546865302674356192256150971875564935240402108272976053556531666735941369581601254064833971897253903413385062395660770518800976609188761857443454703852968816204475781903626711390334135122757111400211138995657018000259537635281670926726192173570371133034261055466697732041173414125015348062999300383683755277016098842845358895267411657332628448655476421098820692325314970540080328974103651755280930940777499779746714941736112795238327208166397591531751208652971185033953897140473924973866332046440748516967367797692091934639855782588150393911512309212550483031313756087569596377847519274487849907939104782919274783523041755982729163843494495484955107399723717689057775971235907514741322565954541265337690983520817491723558203649614220232397421020366835329871995123433947173358171390096553655403913212369134559644891915928898028157875438502053358728615924193065653193555939529632157657046763764382495814050877819946941191154383837460637264577551103119669381359758173333938500173507893313455923008136062188698306281819723880373368309168886268249180322542260315756960051355226564950651395240020867898002953791236582416042046066570998523581490086870614135235388468166987504762182838465137315934114991272838933063604246628850334878204281327760833726137953281174049427876305429544114257092118451619122846988324223732723830810820961228876915016138225939170221509338900573146288480963541865557757635810485257070711344665535817676498086631615492077947836542544122012620814615760066005156863194349678890397125059802032517521759664861712777517422934137669224601772397048622536827899681308652771316584336313334858964407876120474894084247990977916791262256088873374262331592041018393776686097431467159015033360660155585056990332155176516819508548224456013049909531648030742688284885923397324075500380075613271542413407449651133024946121072407058420082621978049302029611266933338504857362546315153620749217141438542579565942512339687041302238178601972390510394732250225998671655318779953113364951410738646113582973123277350985713616729916655863849489633477005254257901039850428985731674940391535748500876375103180636322540314084500720614263778556883626229364663896978136646966612550750263011832258057791727617678987281567491454179679353107221429184653470573531482761279975782323110038308252168619731969925620123444446218779953244842523203232588253362986379437077424007050283950339445011162143475127213373813847595104727771923689772496794808495437606830582916325531273372376310230584869921699627700481134205943883647004874828875127807997268732743868818764565583553124692309197722714458056938537184077980119031807113680355607989323636167180573001683127616188146609145077545154011894974316428765659782160617454314305255372461480039409493173768860311457849894171828446725521731354205018007302489727383916678478993230298635548699476792911688917142743123865141068594248237437971319056171967927008842852480328817408270037024302742497020026824140373489058510553115949308027036930587793851488779229665471329047971930343764643862832886976960697646811980907922177571650703454340208275421512084124154404305092008592958316445709280027090893188506046706458155377614572685247192093256850967960146013975013556818314121931528290274511397489293898150589851714208355586004378128809766448896030890658923675817378218492228847414223468050549787460928728366531339828663560552909303225645546539150041004853429742874893118189713028658542829389789755489932468142562182142219980472721033891720445580602886964179241145297824369637331065235673555671650766325477617051707725092254842850273156544963191676213133191751017516085791145172578534397456677709736158671043662473485239032821057627492428633994032097601186396527851618762524899241568997410426363134660036499195934825990504632813551011001577106192620478909672532676340145136616926142024597585337770379458318769348178384289740198961420695199179983139530915819825802014191800708097396469622721042199384098005005908809014331571296788335993974967502611984012882080109634950268343327668209512724624261563145960962402368775025609233615238368657219508520756791156351074526330404099855693708436916193977342387311917715458894600513009365668457596141905824047480318431117694157919571761264483009251250049788477977740859492760653356958967839210358613007689243186407860061772002997350341134711499682838646907489207134469406013123238333498108678310830294288985713913469014353524045628680895503454903829811555360735118667245826916156554682690603600591191693170454706085301895258176881935194714802539294147287127787756582601158119559385766832492536102723848221337153728751292400237124503627340269229696917705409538573351657601026231925112218620185437321402991269631854482247078241161368604264870963029314427502660159572695688596697263265846749585818361537418765396352109504997373164285191578288616912227872787639166278798290118791319729510213746516533252831457304346329396513498572082363619560580208813996073862817631018336935308636144607572924581463237189421844772036001858962948465229914479645702841853171056907317909560791090171448723010825475377475215733068629837265689527876696027641349176257524935899803903573715009688610562618687642572298213901838807336775848740442161937908650270485382599142502892527853664463001776901573638806464961214196090104458761094099681815062909369138336339774537844078429623692022667712416942529087627970187855423856723895706751590445501987586149979249429722013788564387292601000870794818197002301961744354956420786661790824736071294816868602516481656563841192231846319004217921490605240483845115133853963802730608507914357326342910927219657142106685255882305959423834398707150109340663533518314365931415365729819390586246619253181276456643283057289923035291396022841645368121771709002587899922218425040089754568406290791472288437615466090813309947779558437028951750416827664232130996304679133376029604702491595177647829085909840647300158582111595598726790999361761305625208690124076462581188077353410718395237366519206106829607997099411329493023446452932838728471206528297358135447250785379031321347213169784877435399749894430909594200164877626291860876778590650875149830856999431910518994204774311176330266353445925547746386219051890911686061326054580620879541013542506140217570434559523655583179225655904185686565657845973190922661741192696141833293189180316006280162816044749663461571566484993481431967839848467865325823613163640379772082859984324625494218509705467172453105181027352128651220466564023389524358461275987949168958703959215746303780962577821505441963710539211918914014516598944300928015773944541226946811850605031057088565128255408155489291157889116065841469577908813587581663058542057834878769455946698723380420844337448728905443304543014093635317340269467067849299267386863219310711097827547949849805691299453474588512658575723170705111284547017995964023695551987317926057138244048883821361985208606803724374932104092166563385606693491689121807139891114499508127847076923687940091465777719990608834376695458097643672126127684145638367170526307876663912984408267069119546803821250994983957753835437891784739995331896831230503492608816139551055916260205315813239993959825926536317310098908920342226944687954422343257837518437308747427124153542289208248733902700716955051917362184226587707268134731387726249040469455904157022031478833370388803661372532559406431288002318404434446224916900644334985307705536432265342334107597119102313501857575347151774184871445487745456230028974427602329622819226668528683728230839270857266267662614519579096622610826975500457497146348445502164396975500736242688854675706160116753716376949466379540864334907009508326296617259883160456297427186069618581717971776112674225502059217561086170756653440679955336690238844354068936931532141669402224252302382921958832526535082904700646085022849889601597062627477593479415563586104652454427490740062460985280382520767947664762915707140525246251382124343793917279072885737162644472104740413801539979419113844195021329501052167455824596015757308958037108223867272761308505876070067267790317759590559710809489100514011200032967454962574533917523724405167698024966816821523342951664841049824830936194436668957305041075744066126816008897138568289996141314410507046725087978410658419935656254570472725291460738172772281722551560271124906473657045665851340499429079170652706440157817154789818321705045971863157955024294467772016274749756838166362570810613649782321640604995952629782666240077687874323395776483588204013459573709794052301974032221889931846096761623476256556905864722202987801472450722709595482346535935835031508768055933376715973349390951023325123359753290643978801650755970015086302729608488748975837760959330792298608599553380877944145600287539150273592314556716439980856616497231484658382939716491907301147439677987707090258229999411638857039939536780513174527233626132565434334467261803244316777636891885209300993676565504424937124653556525125675585672976887825482845363876511413799276776655622122545307121547392873297792888206837358575831690211622222028202094526318774332809001128974301179502389790918139766487525062392229497496701616873100149866261859999325431921120948550513450100384893875766710333832311061020785819824231327160024820563847316228676345689770291380062393298518613571275480378339043506563522004111856400626790697668751530566589524789617048180601053289846332610784521356285780598531814412148383112799359722277744638897580909505952558176454386355981729497446553406635973738810027958712319499751786427653958378249284939060145009059279157396696997747044896099013266247146457721125306933795551660684606967507319713170499377671774957838072476936334966382976975603451399041893044517865517049597798328033632815344414917843973738296003618921684112197041995418234482516464311062380481091634284736860567026976572512472611944472127689135949651349774773785409887220380948839237645344804149922392549062423476163694291599424545395293921121945465410164204696527274590477617758015905101218151232350127263602912982088182402242016951154402963657875559459497521873636355349594949561585964316659166821138246403055521675711677724237269426369334794296103088141561752192701093085673739882626575207188767437643123148969540122231814945024209303198004216748516091149391881038844055221645994998903712540951104548464755232310259284564493814739326277559745650516270680207513301651489682412541578134669364940325090410303104782494379611649050567661326803842293622752946988520199718858005290016914662417741689563112492459687740246031419975234499968758139880755506551228670667014021865495949348807709299625843860948724584534525543885281646960568785050461220745285955322719674823154720024672962616063476712786236482574207069311299599502964587678221625843197375823004858177568502960204468326945710356954085558968439062560204278492649003980700975982056181151215313632931847329867519319056782433688124414364651259168153232653799859106616399508348678900521526773266319895354956080335273512056199247215813450065479626888067918927174047237602693932462435329546207661772168802118022823401769582342352880476177795019214730523595262343231254275714366178712100279429365817867450179400613385369646787532840800880881430335887601966594656332950360075253538342219332959639656944927305774054501448796900352454840293462322748251872357662955127924337481546174083187291033766033469652415294806407188051330818031707755596382620839594511424952766645573309310586432178693739146104276352981428702060162739810392449561426020893934350815991387180230728776693255864809548753088254824704590214010580880136869984605975814615151708110165287268024807229408777781152778611441214595897719303438802046233527506536457358597775535328477570747894467186645543504303380186301979245589241499015570960801495280734497000397584184076377737439319667905156676014800215585374200042523853647119250699328264101369337003989126881680697704478914689175377389766491922677359704133323285003375074922070274109775889412884538072731449045636357663302220398161606989727355665477034352223593462424290018021710164207288610104736245805493578149707632229624561905081497562443699861896084881589168719108663222862277607313239819773298082020011827691999853725094768292509702572740718430914916672468137965175504905912506271972315084227439588164401895840853460764366814108849593147488518652451618724934289048158448235548547692580354709021448268382605628694433954747002880282503256525293060466482542322637866566706750063401827369949003951920349213604002291838890162611312642746752712971720703691098889233967017383785702023753579474613367764717824946908622164066968294962244177391193990574544754778262162732153295484413563305041665935412766972138949165064145527634618965796445782733477912309044374579881758334098037977383955560121456735127500604536328950251566979735962112898579592847385369317394373419296235983998082008316057434744160077544977233316851280677659371987458744632646581776625047259507422298354302248517798989162773487526393744535343732582478535724644020116375667480891633068706318976068326989621964750014249040630372189272263509249227291037931864228118881924796336913249283482467679003768609863451211396398721003006446992062925120484561487162983853842918455226231971254481980675064571069839662174069646784180667317331998065686303916519006959260103970296150766112778048810585012072381705900371155131877626224680087541799159544409323428785779763146276973705932331488576801501389047032097880262653367475818010321768287986184476018536007216247281847938600945571036866005855914885207066930833716988826925267531891874861163273855045386099073562759662422898650231810145528704634776016147951182928217017543970392306171389771910812845215056296122621207955087463664986366915710172150645813857707116874229229370570477992398855362280242469453896253709115881314848440496336479342007406225671964466590171506164606032840348122696070245338921229375949085230745058612695220609666356347189665671079379818790899374143642076607532854904344277028516810412291090522036144036264902338422376266523204197897998838597563216553471165498380171757203361885789620522490383378680540156405089475363801188561575862261368807184251513115007372227620304412761179046571907445617721113806819739633965717368970197501761561765354831204238764214162524523786696730244894228101417819772844759816398987079234533729966566165577077249102873533674369844986563797238894642801911034542719068136928207324117571150687637223245190949110296413103563206760793812822320091077065718801862829321599041320308064475176012063642047877525222456477626806561278998594647690600150072500834351817890984681488592970251197562540877058199556312370015994521671368869362549697810036058706530231920389476404503900259373011270126337237659304233970644225319185865112424368753326606225266436828655996193654423528168477762678384898739089614339062915968177733020584127509369602347423912361894824315088752064314594224170545976600309299661414090923620955435919297754425924046809356052868888948511122010534541796657345154807111123581164178019222914364335926342777830085898837370936183193611492915744486996050139841029386875750828153341218724567158710633362601525913728477486564284476324742445519784937994075357335687593788286777509697044272803583976839238884836611794165601424166803707823940814329284222729942278818653262167901731493594390590696894443538004854471543888717714217033777935131857380087054041017218274359378599590942435527422700790261040959836329440248426218734785500855348248575348029448959579555300519736745282075290804449709993272716242940768309331372937768183536457644176738485917913496686894231685964540570944365769399458085868798373956625265959911791166859111687316604839231823503420522719825751652625560336433900455755293562776454678744673649620301236590073853776822250667815603872606453545287819567435765297451974042578425730307967643383246001544433932687195698847177165414704432087530275044317814027580254154109186766096764212337762641490727723027042887728716711643665675750673311798191022988336454634978899825971233675708808367804613357956398388835142493548752598427209183206664916313727020478532412926565972396258615077206567988356595219618158262594977618754595446394648061045143061536482065655414105768036520842792764699663907486479442596527816194260209219383232511639873247371257421470156946092282342905195181859388671515903421857226705839905107446717561688179045636473034235415004195953182821005974400935824139445656267123010318111242617780246347030692544474383874897903176215809041784145844664951300941522823000444104713286957936918417529890972259521921944854342054082593766024468742406921723784184600993986211921987840646756079093696460802326770310958244928526553260847691328172395653632887188301993669779876331548236338611449682379329343895833629899078334255235610766007427495199846436442605430899786965657664408142379138025439572985039392498990639685948797995041563155468765583237207310312831788786699814900882164427067479270286931497156446786570339945086508161484069176426495130645294866389927421577811742929765802263299068687210673476636703484262481080465878953237364422198556282557056667075385011629337527295619602171244659095542522084008701801695732890319228741189539032059522035989838129776257985587864561997541130845533900084339056170637820268945663495007721214174272180123160094411952414445326238975549802174132764804186509142689627946670118961146909095726517934549463642549887326072783737521866269407627152769646624749641236350394850395768877390037579530643284308934139609362122896724084371206864100402637701759590397269771667932596690722900503425903739458615457513023248613883502677506072314265536283651565192166123176294248798919821113391152221838547723254514310259193801947769962343858703854627644589289623728233828227997209108084533050932135370953098706432461802712359141114202439349334780623623799618695547778402921115276936259851918306686720013999614251887688257504534723077123227027137187747172097605907032856521557306415512110235727685841634317469897046874661286273638915976160752842329871666608232233957809038658973777168256874848913447746803539553531011921144872094508334955070333253285615709462874184261621173841830057194312835288820437290237486147133692525792980866589344090714339783801021219172338484962790781298277107283487046278009747765430618979166228217504394692525302956423396124999731551774083865007075088477945675178182522415142876631967969588425628037932019082760651424913028424092482991568194528258229423842611752268129739497228858189324520179503023190959398402040787542806181480788544282700546242034418449195153219972263654846411980857311371118703850841236883916038119785511812057521275481604880933769568137207032483874885881186328739016330331218265246435068545815621424879546227578994687942112025301574600362197160747480137440238711220385106586336464484933667953323961415265427874369717125986982239327550899146321120324306347876023223152596652826733088836681409069229351923525639897336018423059248232866733503489567301887686710975402667354369938614178545845991622379701221266751404027605906481576114455479452531163644915366979440322968412353329613290665751864153779474815607569604006649031962295289284704424708008775299807504451342083908488957495077914439343400267508301013498268025052404471023296606511128848866594132568766442697538580201016138449987865642112993673330912809064384930928590434265942365713014396642560111477925719095030651942933002606416007258478222244986050296316530829554358426388992736179274164640375583215514436792508270713545229242426864051999284839011537344984233010399916362952749837478392712703508708332611850521413948558296677714036533652879252570698533830959821624468528137623537677892133805027774665081694411304062773894136265785200599592276462602386241689135532794891289361601625320149026770517128174145952879975696176735756803118831516925074175366628242396616265461756072353143161152420715990971758348007436587757035860314588626581974484541628726788855416906456744436028148492944571638737062440243461487354065228293159817528142977463955212085367471749153050414865880653164724650724144262215908813393192300906518461442611633915531329285771950165108833189129949209771537731107262442156525313648336509584313291636844299055891467504273236935257846827402852247772464170517601801977992972909846529753636957656323721998039755885442991345978989449125759609919511205698887215358339341551814827303330681743106043271366748882463342969352376912397211684368532415793378078884909961336558099459136538968072167062957255319815242639982650576446145435016918318316886273279635955376394569975677340544873856864426668205518597111274638976724187941227996335808830641454029080870054685593717087258449788033479555949711434580107887325373707675601111588757024074123829855027998480575736461265705809970337065287421001612789192987973073581256112580607007684230106680425739329191849809918603573257587868858957971192055088471215411969723214005344073102409408468028541858026842163643878220477317474368515867254624438692874498055225843480426973816035331642634743879481497720614239252332262150585400254260623716832102273853066029845079960258047100336726611571902205472496663216402583264025668744814813122212390403083006146804479281938188169531503274127633934861391333242572072440316812140964063612880490944340600011991637554508524784930070532641409347208099160056733282569948532029520685129875911663682364617635752595999757680019465931296885343867127891958532695034192945759005683146995903372159839549331359343984866936103531456919061834452959634886470542013387364302065218550909710194827801784255848614027846701826116412940513483276711210498464228371505896404750904726993050762510574229333972561717655825831149946182223945532390040368792021830714670302596078528552038531143443390281433231395084038850498331796510876119047156461363678448479911910086357887487073354821016622294248721326423723520680369368944964822631881622373297172323302064951443460870177979142415172066394558649254159120509916754984490811701284082908361966049807416031132337291862553460903677355509590668666751241111746244033455212049176780294982015295218900038748546874164095139343031093824145121664688083528253963830999188260522289247530039158374275047173297713190694110998045852631080049193878955232829982340248011611700613090391807418870570102599641962794847256201458725298532349516900068735930884753500321048388029840668172437478468395685341378124607349824329797266766050868448589220049353271940837411575881834366588276459609460527388591732525031599843685373455289528365784162968114160122389382410545389132811436687896193233958217979482729381252689627646320507917924598209874234418552982822691140303322520722814593441866465453711443107545410942454831437355555925349600231262206591913116801473492291305089577430169976394685484022168147227245763617107869239596231528134797883778782630492576186554777638179198061798187092844873549582866628383226466114474630964234931097880840403146334755881679587411385316257851159006783045224671497736263436110619466253521739178456307352726701819912836304652074134508886263234350541921685169917796420929767806268168072510237708088981386407332272806046008690656774481748908487069740136902595394267102148337027265007158199384867365613828686243358999491785274335957446556262897731849975947834225057847748741662871678342043980514179408879492468163026846884540394628151189775852515164576346831172008617358628126852714384601760081272573222841378113474198940366524679921114639506200525188749217575191378015034749193528501952479749236251525527751826188125485267392779849025068282735017221991207731822048078849356136542809769575792645318070042238108387081302703297053015230422690905980173720711346357645081439423238492988090364390728355745068631240012297375557654818876078261653993223979623469259414020107435177917429074806898216089569768313238809007643623973494111925598002066775240225289527807730093888936323245807792345885192151522966352172252119757421970613779507910056696516266369537225158722354511767290058730389426149584549158160570043259242039785067933434179776581972017406471784893561301796354440536239972553199780676298577827754159703420587910317425159374568826592121249818084975979458392920209953595937879687923305055941756093777772979288895889253306551236185345213537001468715204528555859191947232438844040641371440456297539987558608987711531098612845834757157111028573716584202935490331584732782054764734234701984191883244523241887925960731598305478384339796915952279835475199123826015640572869914632194245812381719689672112602006226522824440170151370341508445093906939168638193327153243576013967913006269781744186174003610596050457648340720065698170774139353619931695192333189522972817727371037900508392752094528105770712497922942393735970314425590359493014859216077202490138296370682431211522838001655835403370576418581889719335629844529372444435448553434552624827732056355079619587675851466381257050800013903669534847348316589087036509569245283586958425614015778824877536230074423875370406178350949796027093181448728513038032440931592872081254901030186575590614854211982001397814893593921509461970126018276645960850652805166171766995527525725632973010049456794498488030495721014551908785633699882245937193030431550305994036506315898762352603671436764572213789971831591366374283433915115545018581255317835110075437396377873563851324989043320507095780490684968432695409266479983067489937988669296933305617234779655422716814258686661887338588483079682920835755636155292106565536493179881461034946826091300532090818739916244495916939571218316332153234665185967813402624974724953156748571747390122564543390744831323263626039305270080526707829682156468353451073316164555514373880570064811851488062746702855841804642102861755095755142506468395188086547675456268170117225907287863102090668881780063635556100590431785419337183723927301217364836819763212453747784384589148782753382523908454504293666596209265998943701718502432918075296115783528103012129543642745357830810589431290809924492900771915898003774594462326915421631008244611864479760712776666837994823277783150090218168110741143207630628155994444580895945896562433074203820923911524799455830856390707234069503895202605840212523429134078276578265862991188831126617090876117430074804763261101173655906890937959167903293807614979042560765085614643522397400918928640721448039653483182039573527629960680122666927206047215911363635081240606053048814406249375494416492405319774066677021760555595522523643163028920213044951450364093293040423419713721891136905187344312041460783423514267525004785891755927041909171649432578894616727961611655393218165243834946953003262797648926689263286669694985023862126207352364900634330335213088332009828417332644331339112213388484329363412794083488826477959904713197530396339826539812966109362438209752776879483753602321196428626995970837217750266008526539611859334460590944689588094589521098739014384323512685447275037247301899945182736231377230672936142394618908170325137709772688546590283876016395455512804882104477735648907402410296669277634184584122596888462227826101624063999778703728745220821236777955162522802432965657916173014300784008716136022030298887351073851285386713582252519282382408833357384490376064637133709689185397754030586234136532648348333750484269911525480274871917948818964194506737512981600057899108309453578467960663054988401331773379720477632116357608650174546447547634093854635609645311186241817312655844781778152111898596822377537843792371727863488174216259182171712412866499090603267629156339064493953913120304895195379225287873149655993699461809522170351799933329866624122873510454305895657116054065231258789924094977205855208562366384354236782556993684232318106316190419287537078251045753141972559659143222883599838630042355116741274126513487848512917230896849529463700849173904325190358926253051585030357768436036337821739706796813768165466827528515123680251852783511699070709975230445693079066411013073688988524929603393994623664045848121092405577605615469812031707515163136861357966287650161053742447883594302579316369059897562239581556194065658431153773531479964842715261866790505752407054888476703562893224156448491166229150743496550334722659362044655513756830243969243383112324764257654626416949134130405749108209454430508541415275999572039365022182310520339488806716934294066246015599724133430243404807283725121150910381595246872078359159827376772888058785019241257052773964187263109429829181452209370425780495426148616230597981371763803387978489641536776399706431775832829374916565406574994819310815297261962712944567540931572460170651968290691578585597272597857101190732407360232692280382157858891442404104331505011409693265619509169591791231498068626586168714661518507346574079365628697156799194866092842293594768027333337533915476248163919947363054169380190637996319761592962103965750519113628168891415741435623344211858275841480520736999573266146198740760125960435579010658372161426827540466941238401010791353343787297197979740592349466503383270666339332883372162156615434263890677704981185003126829047494598017155283777460121970053476800493791092383350810144789281475608429546217231467440021908528362374188470000917761630003539159682342843311275078301148624871135543692525145257519035124298584144466175421177311639859128372938002014840077989808230315673152204659157258115208319865380851476167229132287792337591385297832085985772943796170475514885057548591359123251547542654274037747761157513327960892011168811582633325177718858580037475394995322073483458980757668871714468575695979282765354131640707075763355334398350315869491678022099067093079960694783457785880219789541969430196592697863754882831373237802972602743452235803437387960202129742042230589173140692183600154677484425246997708045831623490317900642316595312826477758272160435898935354119531259277565221561751147306826539385693249613437703760609809045990456287061568025365335413613918763128617789886786824791897015833978167450442896661648682348869014122434616746296617607633382862720183769053351884798293274876257618948574138150351820278912975594570681998903824584964017257227354694000782772968736925075386650782010933839691544167174117907021875543633889808592420462043841406631914184021309550884432335119117952482014714806631716913052727717967874718545006107801374992021836529012952106126854056410012670534326082308042505086276837853294481196320115665550139312470042555422800936307447423444121986229058339640015697970929957196616838806793137722766068596108843085207601791962679059021453581798091763243254447173611958787967142220970427264460062034780419801460377654180847055439459224539898082143062761084534600381495979211927536281390830792241900396425010185911657623969324522492700640685357645273434945235466181048740333821736340090453005832670937102602106230943118255711113858613789159626727779047643497854145762882695840784630630118494454235719145326280149776805506483270444536555671477430253360492464472513069906465263072755050822136437306467332394167363440568026464239818865409364231275868994110404103392737713485075627984487406484133056214392385317095264446387000490865925227755800184269237956284442713393751833443805766356332595004547144665773355555758242091759296872937267335742466380965550789124663658479757667850288498141228326980025554345695624016465313167942732174887022644658457794516600507147744224630284056463087975465828636121468959999037861339792997350463700984711090870040834902065841310780748944935608256914101078034160058291768109813395588565148414090108853676019238370514050448954838771078166901809216400341714945261682708187796123821984633306277594797150642717295938227750925763508257731280452864066197634214726069226144346890572677238906320275543955848006129446679568798573014096088161178879693130998937649950275004614720093035752090836943889527884023035954140160327468953648633430110848698566558074676438444169324322299183379616324039066306215205304494839084818644170000691495942474774788547705831132979809549570827193688233568818085964966303177132635412872308690585700252717188070511468039286247724747063768290059987965054506218681528224851348495694758351108434775782780231396048747293693284455418419114934723939291446913676984332127776890898283055618787506567627653925784081540599612965777001736789180577101089003532809937064722751223308270393373574932799850868472884205522969593456996516178361168699422830176083999564891803229317532835701079024675291139139743664517521038159703957650550454604954298777759405061564189538828052559133744732112126912977691734339699554581259846021767258925642800273198760288152531425550850090717394946288344727523382714331573185901656009383358694327378434104504582203796070780971427435630629143262010363583010592515136400089840320846255864368990350279275954619815993158182259233477030329305248777637669346625046747253925335983618678588548543160228075610785319248954566195520885257773866043482574970950343044984056014055264569891349304372494455580197417298470944363100887578729686662797143645577606964384763405326823161180265280115346233840004148002849660456173874558163618306583541561723474902943058196685778115962664010444704965101431092476102525673110173722906046069732216787887145825789195466767240997704711450200280091970797100357110754534287605795625069810938865922166437307252404901615714751047201319038721107464223496064358444273230716583070921515501375218588167803381178595392793135338012491501999692586490280901084282891429731670259577832358552970242085730794526485468740398334537178242566958525702161556162518169451447791142439378884726275647925279252732651278519174445141926339850520769213724984965109515819520123145893243912298804309455224101800967557572551885623504933506647432472865957774651267104970522421459687949981072033662575269666469651349450117745860287499953703893263690153622088195626123000869462074675636548416110340874419871755172236618789126432528761468714027562234517890789230543839169437805100687425419555373297524984503107733831895364527240166033820369849856490127815193411564251801231504062832926188246644996167010506136311764018940647441649762799756278748077970591638392403639586222618751707335581483436182427905165335204163739697318806326157346212013371905902327457466281923622988126788066239525232129131590258078092277207089696773509675460309886107716052316900051053962626889647834018906799830526134319105188201940505761400805255069446015980578195931431761047163632330144265895074316944736743844777218911842470836590297442874444017502746153745841263791069648470496602060345830784947062533981457244263287410340776575331195952368918076983148293851256007693858247672228004495764569502544401006951340047890220259567901363714989943683940042597670877637754353442540622618221990895166733570992061651529068847357492499227303367720999183639385909481588841373493332355213203540846894866584606942380275939673947593137696830764063325732996303351285013697620311277547546433807272971417202587699021985473723481829618345762472797241097422750487523164865627132665340081480206580924721357663388726463285355411334713175189992477913008715672796180265378019709942865637387857571199346467855419401229238609752857849258366461981624182696672309844751862863769071393837454885071524866070772710343811040626285441401792490667411896416242217753599908602220574871733052918700184036471783947322283528012942280208392745929043019789032065601516490854490845372356601414396633464822257948597968037667682879481458232992881611289987147969801659464351050843778555200261724181451783206083222842188325611830307359100881129843675295499604251655529634535954111135898234369481768413069059529583844198443642319656001707616290579549025422356149229807250745414856850357176333522021699049600271087089589938833535900489289053821217410632957960945650164148453563189530763284871956768387008015630829003392058066063022710139463336939274088481199383444306077761935012716920170262673379510783630470681220519564876790275023619012982746705354726674760471196300174066614770744442520224533162601953370772755992862736550929925834344827911118933131104870765461945894575814387020804269578952429812939581380808435112995960612219017248890559503844683880281297578243515209184313058442696105786482876059052716962940268402331892376383549705360100711911946264688428401412414250740582072742659868976399466851706467326176572337976486389982607739328901560596967641513354999053189906357131143649658215701922251545497419438931244050088651703618748584640569522864102902644505611108394929808027116600886441481610834752934232315198045250215209457445248557639278971968054635331807345669080729669518859934156145523996128815647897918297422306221895039320187205578839602631955869074194975577451681685784856864112612856424575136630370461045860020186509362505532445980748798963273892994064650405052901259659341311150010388755774414901083115047199393606502104024576269832527833323772441924131909520344507337130798411608392388506570647558698814263406149026291129664122441092431591037834076355329301384366315360252342381224331599171048153681518059556771103214870460337270224235441219955914398257879133047509095453664810889976089569509868920677675075697590524421511974536968322495442226977744587463126325346530821251461245246143097225210987152727507207134550472328873146500913515451051337953864986479708443767851213488603335488958247347404184862500369413357594184887259738108387118054242364871313459136099390136438015826233183082269026621086486234714457744784907529206015328931319346993498899737351032028487415182495939053091403024205446314112895344375359389156140136331077159520174094977146498841399753944696179812243053760566099209874532010562075776228979278140865245214382943056935251620201322816661623501308825358541828261994543651092774935835839731707105129314338782244415944606563812286610978074722277110511265099273259602371489133576182373943384955511398307292169824412691083906150092763676166507589637926982849234601154442198720751539450302968253910990837053619893122653303629241990138466974399468222470254671619645284514316249161873927186222182955841029797211724975461578262919168465295151188628410023999231283990418063332617850268566914802812253552959400894651450271556109478699841964683307212391774274691285943923142605057047776369966202233621884315378337339701741906544350521946022681189927944496368492166658703426387117134993176776130319220819680516943528906611015810964636860203798994754906813590448542040933027588544844918454811599352409715088457850466497777464456682376920254356257444007135392370243614886374297417594264160053614973160891591162817086144827819838244712641395383069808929154408071189710936465965160492571222847577002590047152539326116954477047300818226270214401840930520872626059300409975993621726630882995606506413581278815674052292764372338186646772625925997335296530445537043925173844730715528412589302914525619702591030879579574263625887653324909552769083453389860460558982756779042010176804410842917597688655988090938966969039755710150268731099730805850934415341017717646636488938601165693245630730014455792331397850634281129735792453379505132892933137137279811565776203895972986897635327808014047762231501617223612847182767404828524304258714341455215427665559591454248016372205064373150770571058200213797583308875024489856681590128139376258706212864455067277119118467626621577478769012212397604727457515954730107860041127981292926815975713472869430742447585299535486507737560129254162367616661220101213322121346479665894498221968218256752140649935503922899956508501286633217291919478316397417253898914421212397328316768406285787812900227009124422053689748590334754194987036439102919855282677705692054047283367977564600853295786537640282985333370242484871246089304788870106834788769029169763345347924112243166825774796985607233696000911893080564169307313492290933991829055020032004449442261981402873757348896649988103420670458525192875196663906479565946786482203946583943270874966819311103765007159695966369391003324088636183562314675670088625075892317485198869035363770517544588911040147925926849010408985624513282901789897735921018514008422376295196916952643356408470972701671772389737871991462684967874888596913319491392059186582239806300694437751848274880045321676121100576141489970180149409811197791952418056486436912674253628799525099931802587539065038563504274860181091409153714097218135461859931917033089669757163778561677049487001611255707419493070582013052766210707080115292123330466866020437941178127380246337034971205701479144932506624675901542543524715148416346665871713440183454999625311201353727465415343849919395439153768325000365576587790000955383659213057755794952364990367363257680232096303628457366927344363015809349134144470028448087702927755721938043305011467000056395829684334325527550097358725315933529471535778054554958922423543120800919754920284703593593940975767006915384883783409561023495227572021802987752404671481173095768802438151816757935384055692886368936047180386203414842826398238138546221776927100246652075066650211114071511921586329827923644790379537386836315648561010093959837925332451802316489103954564131851783867727350766958638508961413840418617995753335039927331608199066910659556687107604599283956080692718340219038432964598558782351494505862963418176129096937394810513724045835918507869603507518214830475800378306580082278226347202418000670819876220821489712580306954929835255624482466689000196201838059660892824747056851163121579636366039046274768228372337881686051888790672084944756888103728457261071894438510580322449228683032990971759731979745498758443907689606884793979177103511648079458986039544676257155349046459215446930668161661556561570084974775640192429704022093988672111430861572766160507453845157983505371691132314058562481109060600888438017799797613734740122006606265556471084418795147299224406209457250462646498288225715004299404767701069043217750768654172771800067471651843321007587275265827666609555732178226064692538502148279909570151664660835832316179057582404765322568616794467300079621833743271472991289425274400507279907701918112801141010151762603062370537845300369127515041190260100348157667862824210454433148503727748601490414216374864954661003017951499924944274181215198208005259490812554322502563470782424305024811905257235073204018611659211485005533033742167187864926558080876951399210482886364325545747053427542353181457308209530224898443299514532538148192994868215174795322741552410369700730948954342416626408255049658797586643373368370658873428186689849922375954401331451127898884035493073494453131298147442554647152217954639799804877187170895927042792571909840686383256990608707339249573704079766747937239609443646136417746059391552446983531186466192474678348553397645287290268269969176064340774630346239940107814043087878058083612678566300059977859477236558272425307989438150341165191359474954124205964263688788920599177143031566454031153193507357318165257738867278425335897995412158272587266977548087026767608919748257900783438670987870251173407102247782248034496136118822521193808136432603456656052955089697520383522412800949588274190641090627499021406195774902525696906000788591847050837285433507430449516347289062019567307912326364987030707967113400912825337539557996987429779978056148321655450768589603221939093445790433465165293407980453455778865019384911759662477802479439940509935685523403220242008641433586236462231602392711762983537321148525035473386671790689773036976033696812648658453812446178468419673580184874576402999141287541767220296337213507110779681923787740327887101733844459984439033034311404597527451393214958568366118091690396396660643889742168893218074660276434543493393540683113530146630668555394765782068317857833554992628543898538651121529139777343505013936974252494006380515364969603420155225021693232904790114224754600995754492341799698734012381509329846108007505127612612567016117119735306020651988679979620672153441753737606778037533493227925277168126103790887935195243333405968518639788115743962166671329214134711549792935632916656028633117545473052517227350599726264606681267297639265983942284262472768805818759020029245515487730067974056786778250016870164304773623076003557271150340157125168652199191940775642224885846029654988201325099321825479675801301395235022033194921015210640870809053220102131618494216673974428666988357008538569778028128825061903834088730527836391748949558729228300227863280735280109314093750293747619290993117273836137688603902129911861800991074403895226622452894601155489139957539624011387256184007883867736694016423697509926779170726884425591971827039998028706368070829675365209786996832739838830348601326467645617340461310906420176241091873957549164877843718734727359638579819454718453200638854471549876736917149088390322874026991299246263789936156560610720696748107375412328980858374500445730652846841749745816879843647847741504910257197121924864321403318681177126841125246498556549563817416636560134531844134452936641419738782968489515402508165188795558820722224117370108085093436966860377299465229993114213931869526472328918221968631404837181384125940906878292951519265172371066622908326187951119644205650621073963350378848553227374493649701335980651098079745214125310312164257450780463287612354817085577334198755265061784581263783643950375556728168789224788861153627576196982135773347912810911558229271514141092165981353812850458858669681000306292246111156879855695674309765592656877661013559188343797215778686350464542184977821817616274457539746367737822906158731083460445051432423136450705678132436524080849521910398892614521689118320944608755622550552237016951449497982702529411304029237211305959374691387838426026578529061948202980264344705850197421123197454835862341969652962243137218476245453828795435463107688514970094870816970006055386005066124619201636416484459397178177770588894608475435344413613577369025017979028306247299626914591058141039532843828720965996456430468435791674642403813025110548432017983535050141147652811593148131522094161504909769703408532203050752503585702117975825609542280697741009315470439345789318528571924196065863390549216798612154427863726147868865996632233069615879052028785729409989421704585634215644836892952441244103048842634293336172921034993019346380796736925946662494464871330512809632684437962465631799032195970004203453104057763260645611796879091269600726271652823231139102975764566223617725639548258560819908686686802241192221974765521555720030416460146563091715380597932737867402760760270580707895488797216991981421580188102093327778615850309947934991863481444892232530286159810642702765653241719156584374219439397601942018892529211465007732177935362636820813937162352851812801406151406456550088516711217775528598842492149376318948516076750310003749545100278331580842735487253805082458556783905138940374043262786957199911446631687048630219072495046613131314000048384579063414901546354857766846626827618629599358233611245747553883861941246313611019514874546198050322756155640611993168757224680904224733478264967132581685806767710114916284774471337001075158881717699061969285452429864483372707422127265843344414767261319315886783096394367651312905554216245327030067402980185088726828949403059252848501628049921429768716250646821428498981921736415165201326309015184182945055978245713144253321580293718984960216690368869110652472867395646255512124087768811122448812175308123733541086038228730417881686433072815564575517120779609996444520303358876777680480027136769660374513615523011802489186960901403550790790178202547172216449325838589616570531720895887471972958337652891605719846791905510486801666331679459091035266494775557662797588954437755945726204571077609706170015484062390190930494850146347018108821268226636218504779174095275056389500238375609006763355101557583220565331536172887902189096228527309807598795973965587555008171591597583594489437504274113405000696006298530871505079059389087538461015555798869190133274773713354295600579641334823982888491751200530481727860149501298142135679050449372983796738930208095171566632567821789267581670794706076495489207972520257328901415506563356844899483642779984623763308922076074084197213712572718388339528087135340385763199860212211325898314251933750583582516089417925339439566334879334711757549953700623579154574327566591205500221933890490715072733914110585882204084202919033709575746883203835154367687372058353305630047489375719866923927761611832761604730776668510984945149859438830881299233819118552242724883423361143017268987123777259964488937474242948453998504138620711873406296251665946544702733844106261524191972016757334496067257974426077570028094150008003757212400735458199731201020787783199894315987752277992675917449713557749754765305350419706013508279886906944598394042533043550759871305959585247287934051553672268493567593705897277135794179824497177384695794857615599883502505464119453055057692589051059736229876425854485192435103547796693459976423858633153777966982187749994645313599773484386685478581087966635817321100399300751756543427690323945478434705028065700557331050480877584578821238203148316631464552840742771250027724742745063346987915283885049478279601248634249446687154035371132980828339732739367110261704124212446928171408967210127170999567544257721528318608628313676799536899941332416651052614606802160011664499164644806585404667519787074976701548276751770895910723642782633754760407851054919639449838295458543430040289361490430026614264307809459655861978662499803746611469536802331523043145500525057746215002874213650858735289984403944150233880291373631254494301811346392481456822832743448281089988198103912245116301310786311480776363829265602735475315384495754382632751833991574781635185130237958183692884752856454299655092461516520682012232755635309548160312821680030858578629670514557054928760359643057824538667283289223483807733437816054026506585225833727104624019200449997517837677521115493444895458789665280125938805941751584777891337125380873432488751461104512749684748663848876421899282680898891998615376577321136965342996568175518315142904355866640575371467924701717055113113595364488488418728054650079737149516722546013934638593137950203561109059489096776827961542216584420718732161606339108750166344942004049670794092481634454465455261948966878197311586040530875275461313645303180279596923385293462591569583729447218354865713234333084189718909775755730873153638409793304984020752753586491148862136511367112395293679554511133120316919287293043374045294757686912956564860454469489623654737874483853017426859004591109217744120829133091058559710373116954813706477267155974759930222231129618009450542349237211738282209852242000035119674844676682240166162596979315746786746256934550273096819312321100539782494281929457103489479706407763812982332986402034806517617122949832764260563765993758493673815976863783810735801467383837361142944291187503176507085879463444849668312470222800792405662089714932258991919054405334835915753842248062955926362207711810795884586013602170454733234239183963811675426511554842850137318775911482330203506646973745739335744095108500051602398160858128399328858433352990910290965718783672442161061965365018060201076316532273396853724145708989591070054471321585377180131973531821847130292999100443650535461520649188343392753130868819743490834029191566595365777734349005651664605126846319164690733031862368081524680671643098409718969003780946851212274515758886725017751528640270142291483183956236258278353943738777688183752010225828899047052859572501336698174893929785258909051208816539435127303213653724305811156840924204360407005194288188610591277347616660653545297403965839603433968665748238954355758812890689477683934064093490139175467228324804517056720548113417685663782414395667386410490700903065069742272075724458031085544708426849125633447779598695780265581014238990687399920024545680447438299673492373026397782192908337519548136044907133521736268175051010509959722075934234967715269157488461566999136924042283201015386753317863082431448681216411367257209722730397291603481519852052031813862693625115267091418972241160697409456624455678912548874481136886485273731838229591568983773843027613212345798267792818518053674331654530192503919010552813775456137214761020172480267633141884915920712398377878770623123510167430527111627515766056819688293088903612501350544519235975856146210657148989680064577227387564887631070934917109580005934940195065997528659223503275848410691587768493964854519894957808093047414349365883398178660405609623550635578260020219980515420036162187731887218336729907994107860166906432265669580048758677934984560465822469831613518720305990676376445299459969418173026992296818140481544424359192635199285518894702376681939741663264313009201353559534972598573154645492745880527127766655878462863698553588130195720154671775983801523537733780167643401894147040793097488351660679849095975941651031664112337902945329255705269387725473334232426789738954583709700015379068419544273452746109001524746792150423879546434836834089096870015731443216104767410901787833397583533243088719107877620793316638116389722203436014026237311475255604450818973508792857380830918189610444302768985040144329327653042181494674956300791149100286830185261480355250189599024662648050336387580660731049726488198736562885940453320587628749367891553638326101146698688911219495741793738653484632401080869889833355786009248002204339589018899039612660201515210155493186222536153178823322734143195584523112439723242431858998428433345572017522861925621383662113244843937558139191472460951298634062344218800916651818938208289771514929322879611588734891746882448466271510937271147423719182203745643167155483422411992788633734236230984854982186347932575748482510125316949367777913481487193352846915471409046551338264324243357106809530391768292369447040680321544576350975781378321799143856799915885278153178321489832088963185035739379970576219345700872854231178202715399444830385204684716935069995608049973248582106140550570166132650343146285573480579747646333660447166529772359455043524313038869973080824724795688715087410141805963817839753884172718828865787850052587571729732117855915435757792694258353550781626261266848561622277165739067277988921008852856007715933104625820092380863554756133676035132487514553029872402468476279769410437402835635147163185720796547901427508013272796906523739005304735466627018931799272561921946999384497794428860591491809106127523007554655192861981501959955746366018366182714692009020052344443582069794728409553213282062906231298945208073121098962928805458308588486815828146719090336018480335434492182102500023107883652374456503551717359735561008769472386343967249570480022102171992089431177649795190538688571597490491830090243894175931601856721079834476837089228189834959895397302500927022756259143156025427420547509723615752057503159523331271394091238007273607285653513604696614308507514437114567351357538387814019573793249201788838225353437821432626189413548706907114149976252380603392495260244284640915793000527262717089749882422249423781416088208588511955914656661528061496503603479096045034001565389991458662157413552992255682696410721554822316372269754111024131968964456774933240143292176059563080496533959158634391686265278720570660782066935089115741123820390696707470946850952355278432725947118333363286213040571614791021598687582694554178465063564887917003067724271866601114239217754841322794384957203286147739737772471987880915102646975137533400738574538402700237354420116128584008676611246776231792920795885940786454392623901240698449634766383223366918607496206923631852106449037093944699823137837133396670590856951955699400956255494507988407711571462663136620657053914281643802572852559158780330293950304750835128807616875508860011242355401994712808801120365520669930576835830470143486631908093449758732680451125666463736136154354113779118290174732191973452896165527330604172689089217909427748331401005362717154959371372150856791481347119781739717861311747948900091753898005442775728954846520661693439203274346167116928384477094920580173748835599755339682479055722376671567261403798770112978720274135387585271849319465977652182236154589941935610482104760045445770567994040540431499818563449730027146107440097775319457658335355877819203280859259010807877461767931246534001029812339933954471044450681442480434866149064822651871177650154205885524277536767884969528839026142807991032535271740085576026550166736662941921210850328408048616952999231065372612295007743041272648977559833704258548019330461611753821490238822290827625389201712210771204834659793421810220582321410662766496157777826902972941034516715335701683988303800202881429737936922528793028016652289237524359725439302325058420549347879450721105654814352397192341698308010718458945114447167866894488611507930359179711208921898278214561964572909247693706188263477655684367397517609617297497221688857344101880361346437863223497839118425403880482756123229244765303585613484428443732858063220059920077638562260199699911862334298714321567066428682606246979856742382716530752528286364440694296865385894261636009570459767390082962180611931872553712252304089205362485924509262992745284475969361406680613143807941976550957089606006718404330491528976995460602626745044756408674794454387543845638824619710629885303306217112808385439372283532186577504479135838706952493625466811790249484873777091042057674838721700828233183343494777733892432050374731378969106117490653269674307347212684875414547247446038230937756439437402569017723592588608233247176538983157518954025836054306828029907376916383369912426800707752197454835306446132868103742765849554907215585457237372317472823979459877034012607733557179350833018396673335559942568551860739827906628617153310526134526037096509716596186923312546558325957440298330941337728156343255122426395612002326107309573763921598906843138234055643775824372661704538348028172849861560512897933285243776271549410773662477951669776766050828285396943182629207261951386672372293039741432142498440026827008302475310544349355707511233828351850937543102830488130908792196477203496041050535259945149943397112427612219499024983164762339840443703301765025151243492334235110621234530104435725236419065553439989566796523563905750815109518593182429451208849399419774373385703422505563825367995983813417618117149690877471075761149113738739571370470138991920819279522816921634611631249636407442063814849449824036937224310256010614992513336883110151248351199243301108645544164336828787839963584335843771467070194909329910366691920055725509869854753646180042127476112078854924836398358599312927816609866391348300688556321148204872186982440506635992328562681821140430009599353964819373163651099322027468216551300283667567893294916541094626340332509546867958558664944002220580199161631664616118498209871082839196751421974444528749502988121331060853580181023773261406125882451871993161030582393486211274939304170409484246901432577790883097282977773687520598184603010595986947808864246131742343929796131946001488351607544039230001441517605103885041934103825646850441187509878079057654337277563372130792944805112098757287257659670320351142238510974643390912657454560627978549636941370372079091263573452945382522518258978320401977548240444025448275470863554636932897170281741291750497011676072894742087351521651455486307190112633153320041456762724587916064418137593942692392156221792765494705615922563324175574862771546474201486632021517750008634923269831309301371394366358934929801637392176148104519732718211793776788863263466893221368366802107343007933419531158449506439872538057255168799479404229408174370296828399807602608940018072751272331743212900938537501663181598789189942525647205872413000611129656845117601361592275289161707804004407120293238201529672550982664979040767055242644147335156907693117238418079770750492901173109317741329929432022675046154695117735399220166208321918930998878810730034238812004254203990078156319408741765553702336973485995469058768751918614037188277041585940295049927507140892303229820578612257202234644963842058602733334323021116293610939996759090450833382630774668295792000289882637750140774301031727116367882635372823941587212905615249399145940973639000982900400494431141028877816555019210869796835033754819081940380395620204799785080384945797162845292673271655536959237571592231582594579086507625728795725809423631090989381379499311109831316241738840889121784623472236625990794611905173943704310717335169160804068829887121402497287342924373853129087045087533217368951505046122360792716421840785127443382380408429675624446743183221945413767463508466736689390434994951937311304246611148966963915126459641496061643483099687276098822429173679452183558693338153343299620343957453007711277514147331814324607827929188959687702609308953672283194925408923328877361629494475373001405402901017745268381237674492423770505950373697022736629339380819030130931869342632419735701112247201559123324177713468107800947029302692610866370328078639675185990520529818942007990166416605884776865811007116285006045760226754166333922981717976400683695045218658801262371782886121206331164446650562169150303017349289403197870225698678556462237975763317860758887839726650531088521616257666097959840044258263710882381663842323199488168496254928337605998260150920343704011840559716633469387757483609486476075759544530372909052075507162748388970600195649569846408428846393194500693123234757438902884689236993477424773200900623931328008947068459654058501051521380550009804493749270078296188181619772272380910205948075975798602162933828301559975057728917743038631751531436597121817487085312639459885256069106630618810381462782406105910929413058383357780930303201281829085319905190770433340611681196021565192679960359857649303832655585171714198850184884857496457908269221173105504041053438064698098912049667789540720347274483163344036412886195360270274663087213039711599794012923833144148874869398010227361188642391575246522733932529217064143354975538250606258624961805834068256520713904625848385062585662435502497624562001464420881774396309055690315133065869704602008280664158282607471207960461322267364505775977501527397599799876880801183395191174540831857587295744494431161456061846849541214306345664651615826193274565560219276365239304173862156146668989680650235239916625907275738105540940019884656248792821058980744442665076084437510292878604196282778660268896178873593619575064475504121896350461446602062903472871306266910389967079710630245835360458794233720752166418617589371187803262842147710675722072525707425870186295614363559645031419253213890631979313668647996999339899927987558212069447405539857129348247367489180252917438151098910631813654490948242036702174282658080823086427273013053237717574660439789897176177860666785340031617940380214668064494590231384721483218716133234902833956169709364637263404352588079369328162884427898123860266548609771585494392744032946941351405559129400473353943182392485016970942387773456262846241670262986612444644355941792782041262534803171920897919986973938880966899325134635858913759290828202233452582621368798100149771385862108310085189925062309498830270911673005159502098625789600272365805089254957175441753885198241663099910525601263052663521512936070354484076185223863060519221963456407593046189683893236078678335022337658910521144296149895698626257733403272730870224517462715152376901736746417794384559002448734788858352889721852491265330962974384395983830870444956136939296366382126276413040412299973755966910958937262862398089431812957735543432012404231021644738819717268257703936313405405289313734544682925029541740532886616148647351971336157626653270054746387804147368177949026491746504632903629124762216061650446458426056152241266136938263562912392552944165035513510284316822492246952860054069319753409865025496632325560096153308805242032773846354865672628480400920873178526794995418996143211360116092850870513881116137358664222539594068804572955845933780718237176403046937743005101844192916212652287538311795867809430514327008395840625686540306454343812187532540565365702750380250231667314638140863291154168410608607306549502082862699999398501699245070635484103581759823357410704803081552858334983874217609252384027522385615388182795062310554671412256392004313439538843938288712443367502548160941379703426987167424529569801916669847276210593072166544721786744123159575093453738122974237118096381751865772292239566990604363095422858021063643112854630475483818059560580213111189056562597098624101462349021828194395531947564356652540545528020983606710882976162533206108914922226168988272619555684850832396558229545285521740262443391039198917523648517045133036614565299012520598708967424396814587324971684636648801073078895234921617789136193360086575396295709375952901389811027645687806798818249960558584489478176689128284307687393485089091886138048273516477177583236497561514249173448418015557320365912496340096543254899973603724290160428437466117994314883127841216566830491730429333927644610266790296062199322343850161960545239059002018554938878768627441837349545198024353704415244722745185183897558568380056141356555816575746173304415570840136676824845950189963512509071610253832809568949877356061052753574689831273995887391628504352923604784273446593861903766045788499482100415338340819914450263145526972282359002906444562955929230097700939223774811272475848828068348451120662155142433117530461509237181223111301812564576977996239318553604259695577675008048061607031216354399291465978899883563224722032872643919073607568635540231378892090173404540798820202189263302031225772613973451151103948705634882532406566237809525332536076530879682208058950414375562645238444332653452747200363396510831606071018045101933653890708969616188139252948359577566202126538521435439292466340322273168216446691217182277782050238939318707374911945979426437257308670887362161180335535528060570215727574099065493424709818915622731762774046299401150781987613399430514763001937979111048274423168930256213799003167700082565860107215401111113186730139675400121300524033093997265623460442711031219589350130594494534551751820207218289066160198115373334902954479618810384752913234327010965709242191607310731469597928786585370438269762010103330351995007258504182078495575021517076697801476646882143569454041673320475458851953908683689116636978205423296077163449235901742717632375018995511169346341946935803437786206742832008310229887083957045650566833476650615557861468050396259378144527051462952766517127319048525440427975687154050177350376604287933632262988809236072076662172062289053464117040616623096375242082941876200523752271100954411581822147220814132195600601064708571537943063335896405132406452719055258593498899102731439627086200780790368038712619870452538271883966723188148804896858641277243284032901182612190567226553553324780694762761527299277678382746428672781378209616342040921575274858558159317665888497830922586505238739475130430450300093286720558416576822146164325080304841813181351030198410047492788614059577892515236709689359813137252242685384991667612996212519396299784899422135970254229526188020969884997788884809278336881595555806961098150847710495069191433938064144275705931813002091791964676339198999377140938162532114113779150348804664105285149924905148554405971919291633549586419142815793352815305494580314741860946129766307914322193893268976160038381118891325870539099295157542932213361975642683917832404384096335072371636631068460078640171915002657068178665786010789580478705259637911978388710253143080428743426179116392247075610995851603334418951786703839085293422920912971600026049830529388171377572693343358017078216607091142028088065958224847166184252498255317419183097836220358576788059233413992999512581387831625686969147200674547271080900771509227802603765663009385039872854919516328508697580987403775271393675840809310134318868176183814428356620297879021136477469052230492710750807570398489879280977493344866035843648598428803354325435394530838218528356580430058162555200425659082585482810230715863458925674966570267436027176024550913988317245088020166710778368976189656544942667691693581397635324220752180037921983489036289869112858049210156098100557729269349136234163913522042762208261046657188782530369849118502984136430661696364398407775899063179500260182727392746852093778355821041899454193142707224885276081405182887760529673822405132637678113487834373732173404139430531473504702118161586674693530140906811823017675999542759034890188309863483763151419734061713904163791082142053746431441022711422799989468960759435194113050952215269353208929758727757769441009938630119555537121810721868163898679885076684725298376864160365930370496605061045847891799335110734163860959165733142150917391095995499628024227570430403468785587150234879741914639375520822047885721595524864838832083420568204286169161116625230680960857785794585419204592214249246143766063612214877157515700244865978386501848792751206016428360179037232457326514072655213802677079977064017951440564225306964659844475480531250239730812762332484510756035436411290762555024239274122891043687608529445063725665350549390590868553823098235429711329662056234858271099484658538276143973729929980072355207620764825793679041066840547113838699999839990715410904362849012826462343352443490132022903070116930316453603211927465239587841979500008826451460879928999556097403359646653203088420465881307955241097893285480603052156229408684387304568579422370916683028177856913731653926777664501871368502967746329706135717765345258860175195919398078379644974204089999748727397797949771001136828941633348635264549490825499783933672706455785224490542673758189012653378217191711510366827533168591107209769286600435091559963716502010367914849467380701707622269787944915833181289965108938685699378401717521088312713929684897873253813055813643628775220046327760940062314194431244332919762944085880772766479586399759725499778115088128104352414699877685556734160887908941544852254811633221238567858531196119322928447333618686493593978915135366733472376283756881658160202752621652390245527022606106410072927487074141293593764824952509703107299270033471401987133978070600482376637245799965224593010367879858320239743427966109664370757467127559682251910922442337963270051868323268133475710635796330402276676122142453782200974897431629824610963498678924029464332128472171152326024386878181621807737512922416623173916846541743291581199046031282804993218946968082119669180153415231305732520326497255701686452226559359638861063279228568171961753091728846440670116674305286286609511126526295998079936756032290830872376738968405988861957018054976019138378852937853726672954681128772013437648331411163030478994807705877838762675859140167053513055227600984888479974473431756290744283390960111110974624515643337106968797771844223285760619893913808762599075383190224397297926451210312283843401989470330016928938532677359938470566328685438400220022982052216017725976391315795463704821170489790597449100150635382582189399674186793734745947333084351895296957188235196828340077222376686425882912052005714487819564111918989269725329747550258036803266782730410043548458497829533876615454337436999198839913851715078616302170134474096551073042124027677546716724468312484528603876640058710767252194861187780552990218017508012618485838148262636229417896152168702688398115770302043534778453675436078989779235735564769552310756701188843566100606288084297931259283466008113657861925969745160639457081018966267409425530217154213633642288554329042638770483421939865480807356968980464463456287174873005171921589327203358243385903752995312364712373224938409051774473039976850624871628700786813218903572177654283229963331188319468924067770478678370989075251522597866356474010420401166640811968016600979285530939833171656752386514790016601026033092783556553200835285221741640299423126781464706896675588486411096622884717805931534975549821496211685012174486863176516335271391012607039986289081706156546809911622062763723433972454620671139628574303828478049664083489881385399668145766606861028640854009088775389714693263828335916644547657353532513408723729744105050390451714933596555624955897326745540449303864286912435275100502713323327478863281577471035039759671683252276867134684423663324941327231794895262693877488058518018243182353093446598051216217908318929449300317151618188507380543782626207973341231025299001255358810074562759854726282717747297432781151063120058723569996359433100791473280462529234220260062801788089582301606686888310725791682791290816386974977917295817189813931538958885029549889240054636075101774431649215056298574103009095488510363850601824147222607370786169281496873025674399766626545721344758520236591809303085185594991148276498662064120972554191533872701401575810244104413571035434743014917052781983260232981929433254526654855508730686966097011272233470285639950351667433358763411400889361776602745758985385900334018542015401403651756837456511987971386304949643191442699542432144322370794077823862319307217547306521109971412296224742488475547623019965128415666318319850531222469918565431359371018272285070917817139999298917149249413235351726185340582833470099485148087497778943282408433005830106797579606602734559336294158948247138904497353285389017173816888170353776022072378121621783909975351010875148029892495896820534570310863432886114881658403789304887657920807572053792925887943448752041917545575776451553731100896627685908436230208386126311779759159441915623054912080322018381633920281374502605592922954012819882102728040677661399606281808581417576227900675498949023067278788728185344540531511604848332917181225448218351235513330725432560248049577688059903559574582219849907812447377486291392971316699182913398284534687093094539069548729848762744616699119606457370256896936359942714286159190720120134939435100605034417303588282998612992924196469464280849614844559244891146250096841839493177595898872119698215522838311407427233765310200931335825613492981158562431502201366095415908500381597884362126208709785516401860398574429794890248623623628722278352779822129662802291035860170743261152142932076402841315417945944355614769752396694162982305199429585494407963611932039179512929829639598111734981666251615296060983946435469139765347330858145700440637351133742767675535788917924897665311779065334649462426888544655390220197318265992369716679012530534291477901313880335896713860564242454977236561083907317759455352750816953070281600406438420431723156376504823413539217210684740959708942428925709726782816552818190627768183576762769638592575124640265443734921575951763518808645518320841946898958850377618316137316216658001333156338867983275533655051972478403063378330772334271410220285417442432476810418785568292737695348061899038703913717025962763998229567951730137433144700481245778703363332153641723895423130611798607465942422787718810165418368273181067969996289157629743875429347207266254847130012055547909017287590490720497215536894610964966939654341947080596247290064975195400907730499241934722431064514022571151311668728351550593845770580331395808788659790891568720912457836413471479015553570820723500116819472487196032738062022858530053286981879736772366283734222685580686813401489144746191578939983908934245407946172770005337210501248978589676199064861569023849943806018902591796399995940455066616133012555968871603713610020827214469215393322704416225687916443449221152056727120912767467859657635806924275559100963766009614732006952578608427173153413402248986333373684480796264759401568839855034633954487353047343451978435420996598325136329098485833965085213993219164386258904947890856618988891744915831618109281822525262111504727485615809618527624902564386688777567822570464626650736609356546555640927850099130507365172601944935897269195484568012307376106771213009618807615048007833595249451670999352225000401572265555041194141863245553123615333164553839541182644591501255556249841094077336669630443212166667212672931135115998952642968745422518717123222756520868094409395866674237667799661544607155671025646982811362830416650257422597541512732929153378164648516485616897190093607374431938901534374026844075941459060288886851863049549591814060014793218797590596312492002189718308689824817104859386216835627184736954070889302839847882396956346913894248481212518676755141733797417130886883000092950040339707121649755890212479807064444781710706329135958095892139945562980322822918397045497639541125481004396896580475376886138695988330125140950562758311166613684661448411792017058229308624294193338460009504535551309752428847589033617281330536066680829681309642050326822872540079279552689398651244186141891569149779422646954417155040425428318429660461201161336612607009985380840761806989409095888490887527946113250366021708685706726660977707505802238467598497944034629159075906423636578600275688348511314082984931626022391656473291591699547214096234893547889437966347052217947878606085671286239235532069755625900659748115472465394040674118344835403127071010268116755718396325742244168585290828528532263791366198170138904446724753697062804551028424040509479872484363580387584487333755441432565319094397722840074239342125325754538270853733827783308215054515229521503319999843591421571785677788259579820720873549080531932036176317661039915857291192501718274595442341863537089891388287887279176027047743451049488300967123965032655473301114266226221786850167846820711132098785272668073608692929378600611830663148919355966353734750703658975967121857578978599564825386724450318528971736678661919013698076545210843740120229368584817021804620450809688657814592211746578276964399275218530140669444657126162261059430537662652877650357210448182215234664828481062755378836374287935279764695171103961203982994319723296199231443872976533652840774390482141791190843222580089954270476230387211368537835493332609408314801375789196154911161606827850994111228880425571736390458683539869794836179127735452645361132666324665000275511324965236187254453358403196446973867693231294455166432974578320251742661432884526746958763718476388516199606325795637722211766070823043146033543023953699798684318949942649310590617829839608582948753952319870761299859708788124450074516083650387924013712604018087781913815012889690472854523318155541921437158894426011551428233619722257566368913115848110188597295538995838558590447464037334078813077526585250224402576822140979310879925958374206143869787029452412416805560359561326058443531683398273566359536339885502023351993497414782951624911430012501966296282702611215700318316253382727384116036366824837769819427831614844449612309255827046399662153612332002633215916345935650506777221166166037326693942870979986911507509440120266414406555028711552391529185206845166083880981288980488713457201800907622056136288219279902081903841897856282915422246087874198462930172294202052324261559927764408176394185375875798604371904060500199964139219803836487833836057281424717000503813760109038618626581705878521697371219108462682618032289968095440151641376529366068591965542523981373214974071102368653572296041779312247695178818166267922229266786143245825565568791409090964633157608318368540979382342094923673107752775710894394511678304586636453292964608601259833714645565645019738157699765376455127104975430525418032729061468510840444452188768288282614873299000395129155881891805749063894181755513375705951053417725865755372642967538922402197026911544393520302907158560204143545857538610942688129224630212801414441562416006689384394212797823246019808414152101574687698502573372681420931563414710915375948825031133368768875139324188284188509942929684426227234455468497182496780311645596558749550643722901996831115567890925636985029052164421133262730335733559909641871016245402437808253164794915352243755710546462476203755572972353889043753306194682794511835326423063490922675320657163208850237414696399217158203878458892697665875770355300605220580428863291489323345341732721265527122441657851819000418885020552656978384128750937668227289541767555258177713370879528873510660532770108779830944006791489187409411488511972825512985148163150264172133866265322062806238298943258430792820649431116707147975385780740221957590657851486322066505762190434511051606256683107740144104798598694068272765807329703086086756825299536512197506582766237299476059658164845287435865696926800616525493501354993511440496273381971875200242595773039704648094649810203569904274722152788622073356528020105851797701069805105440429196549738942124456253503449015440860150231146830701113539819023923282200937596802312228186502216979467913463657630322994549439740593182070402031579083136402428009085883998462147160831895435473735235488708198095032192680837085633153415256991595950426747220793452860593173300456434165165753990970358644196485682035484433248034884957750380183758342547468492507583645192374920149218905627293014730801455408446877674277116431424467441639497707130550748240441564474447007738547577513968467478690808782449150136816663893390950345892783110477847681429519757785792531939864637933677706292512865015183723145222089959008684852347362225186013133231274478349136274873377682390733520754036308001936827031436302754276962159876845087451013613731700650006284738448884167360357917502911846597086567519661503431915295846890737756696169909421020867545399471055096261214154465898993849249061736785454854364458743279788037425671291306496099045622313573097844966878648237842726748814230654685771201323787497866606307446844600116097802069800134171553805879881606484778292299243922574426915166182693650757904891566519347128425921240999307382662057514858952995324623613294263810178237875320699524434116717698664361403743480400410795685014645824608371295581914432974870191217088803597797536266900191280433413056264517565428441741206015373093938840118993801339089137025049006312127240331232480735585930813550248187509306534907728624477714235706682024007561527092210463548882428680928740238302589549545289711123395592445573910163371968258020758536964843310684052873632912778662735163797460369270130273413556332499183004573978913411790124481975393009957493728975506950238691349886706302159377916591337029853949790365675510352736309599620313606608244870581049034239543557210653168856535234310899616104679172835971525839935100279828735404904402473804727598584508670177629878135887276557383431424243646337892237267526527626628234883894593499214573138071510483749777474939212220254130705367930684684153675088213177722183223391207084275724274420837712857920544839096806330055557820215326010212509745816588627258270863274214290824284662338001028612554686273060289071758217039715669372551996340352793792077470882695703314448264460765207888129836050662571782369536672706525064547868639344992372549177896990452434401637032065769829552921659862237531751046795256920800878313787383475261053025563136688399902207238009067893852630573755324250020699465241696956982294411926297794555852748936262029824738462693362704110699117254736977465702318187553994624393326512553043385597284100357670009528638109116666267998363715569336041757294241399536286248324531723421142871453048705592385689476232108591379400022869424724905463449118454711099122406166694521885861162648704067068623633844979527750465059987204680107815203943704165083428483731513732472829153759906571924536258969781834367755334761580791092667642226363441721751118064239469493860847593110613660953766196435474270359488274873324981735807013262989500624916551459570531772298832591967646647956577140832850064187785335652443776736255892177747203787364043672832925233777006806797885047493618467762529428054325973748544093221729470332752564659654338702011112056933905775768346909434094523943599877015600486240992017699327241876043929578967897024200956099055654377352307067046697384884548160645438046882356636808975892433737978335846858529002731737375184600615431263073325343328584820447817758132598588230821838188014770593269763345549296448583365996075385563980020040931269582860272725699097803157382968262395725320177949474662524348388082201938669094171028904592025295352864147077373412692158709259888248463401332714450646812162466996842959554092617810580806599119960366670751505762419529325043066540871526759295134617050741220842653619257383858206896529851720696665171933003846265762978364756608846409876983458795390300468591031492299094760495142333696283567905073683149772485724731884924608735498510049400383204825256598093113976492153136485264562526414961291284434010359415051598832358136298570796469640485138606651238707498826395280805295706751666175918892347971552017406705558440184679419563363164205356589141529858435328190196599631726739092091028239666588146457628414066185178696785260969740907796343958502014782049551554731475071844374930793993236959501429908730651457878370044423935174988804413937420010827593459495265197974757345108231537428387071591376604393705099997196557894417962723830054060855347864625997455595769330713309275709220697567845817663954861907898672091061122477134297624640663107306707797601017912222708879241684930079478574969290800167529699071657338995232323722268618082871903726031922239850686233078489204501819532047791415344892695876524776152937911826453312104135787851747844439861657340362948213961347751649663964090164292644012871248944374929278804715286741256984302865406244722519320340994973297209397533540495974092597790600052061387835319179132520721199949093735179564810592062679778932160363049514132171119028653057757891318671937518362283776074244869127720018789808423651545939340945359513559974309487396682397041903977477822931090926214668606811059899372456884351997386703912224845346440437019482093847677442521750240572070481933177673661447248816750040001266284391505430058949169962007456837467853683167097263415798153535908119705058747408032972848783118171139959683290486915745055577352522740758021503812134484186412866377304584419445400918244806092377315450526498617035515676623605802814389350667828458415029506188559829890279504042030052413949943316138972438297193184776348412314051890354894250379620603767824967825687058387698536571023320647013651605564251100708959576297098219638926555683517675280570920798872003539522306862351423517864389637278237364777084291092014926084053154100686281720194926491197053564103411766183313957458123551958669844354914604740465162200286389408972403339968664324501356694025916189626203432067040471519378377347035073687449767655731010307009269256235598324954322706389166104361842985966893241746071636267658805094027898659762614996447611548888606670330415803291159771121769425862197830665609393172576444756862388166651505486806656428450129141539547560509707063069014843332432747075940937419936918023313074937253097639284977315147399531279732217291658567915539271620499314926803083147952948537243982536188378350131139812942459541908261348123588978904483182819796815846609116841790151798131600977882525411953689172719701028497663695350278752232469816099444236001206481855403486989698620401536183717334923118870613962680326061648314854417545805916863968965046337724304467862765866231459027925822177831087717157425884544768963958183654814124893289232472548519828402444068253628193758588171345087555534132422544254928535028211832197412705569370870988309352105447343985571737279412664622720088018412622513030884112458554432556317661762788093807189189180589182106851009836888897424644724518201926752422738130785903431135941133203393969297491536319738561933262741952825628223803074683626228957953542519255914547197702161243926858762293219957543554164368696545991603674095344670251024899187220141913820715191917700481736337999828542402315391476252324741741398554676411851485391582336166008520486665873357017803069590649172383258224520992492885248459392724945972436832193394462315935584568576050526755451584717546134267237539915047652975967965625151593996786595298413020568573666854234677140728546060969828601921113448396213212995805842772825640912614243535834699153191882638700676509173043970735032445304561692371857689974663121930547289984299282413419766606750983376589989287375500003304191532127140157083852422754295034877896055848979761597806304066865486456155987566066811112432375081921123772309869764197792462629760499607837803027003037144390397248006641357033449503530847995482937727002446849574593585747779256819500359482747375654945169330866970489360020712584632705931211470484111391956796229158533767966679050562948458682855172275555360281009251249954736978888132881483054924943524240314228759251458431228718071815095652030954669379709772616567652547014590803921497882113591060670145541893604569197843461996576314062558614727751638468423168498821863567727818064308345514165470256769231471685110464021171115148744167490745950160219962026855606882049289391943768838726449854920736528447089403273865162968121165743178822427067210134581879705880468429440523222341083145192436918072680565307422253887904066091905663001201329439900092564860745230694525591997773456487179472006458164503327154078498648624785546714736954461641421699277635653780675408155262151754048518208741789603665772444752104943761430341647095711798049013587642282064031996789199729384197696553073819127125184481541980218259519952532598044059843351515185934814111836926403777048921377766594984551630913001932306255725649512146151585316213390266863373030605190375975251519836931395541192363271872624904108698244711674108488268164581278290029615761597874311199704697430372427364755048740510408174382051808440697811033706535755017082948061392978911076805080763531142762766066820672881283875726617392433111251770026776666821710346840226798593438900800285469046113710060195751753981649537442321810445131030876637678920187700408611004450170203995698371916083062232772927781923368057291890931689047466568949514197185325006085052260816958732405859536873055022030882441239124813628047658985021965402318726532367949360044355104235522624207777006259707977418375548970804681004225464740974114764728289927512159735171099783420626309259685075535409904178659061185845617306609175147726402487145103400005101729185042538317964698482304492803404313415816457018728796869556202715807034326386017747565016422116283481133284072055427903150496027553111947133823195332130507903192385217332107779796627819529682982317699264341503402679543247041601326656491248079123475351179948619313358581281476958648312852655320214145426246026599569278825470162075183920298438609556458926143391990632882944228533844710148746037757347428065938853183976169062443676911895396252922576792058084614065226370699659167603073768148233034617592300946626083876356464714685235574923741482154508271631323629307579872754807066098072499723126077667427260944626488779796454328635588598561050069584593052294320178166689402791003609098906036452575725155229509035052463443935046679558241891653082194168850425917542762125705358142909752504809113070229126477970281077002394659434614720128364096717270687964478092692501859626966481313366828835225509340897027703152197668636166365114461207472274924623394311527059046348609188214735061001002666184957658044129360713725260824518848156307768131769217043785739705441948565729293440370402555508551778054032198438081940054308928027086587434243001338842693937018672528844031628980180832271334019270652348909029087898725071727576882063016833017081742456464125890109010146282390634787437280172405016511110022497620426480779389720901653436384410288890089138698026249559658162301664059238526804166614324850282372294725916818486735073878714384664823402856020847892332874634397794112249851678321802135685002129650496287346514635124156207971041815732684634707715970631148335639703232558436983978037045359477993928366721192195018287443161964098082114605123722043243880828484771413872109938032305652722666719987503812359865961999811229499164256686407976387282708230848543468427914456325746848051775145332556108946603973788391171783437737524927947214613818082406314692864168086757808530421985287393620049371954815337965738678574647689830972740920354321437224916094525369097968614843122826976924724540387514334038263362363078754012802824037532786251538155260216417095292757756718023755622597100879278089470772656179497907491177075515061738044832100933493422088780600024136604218179833397325593024220309932497544849945470176646126802451279557629431915477805734803828308049625077836304738525893643125330124092032328252464221653304610521907625210828835011040679402621405151754993002279863118437800821992883255517236810447879100645643487830420741193106104216206663142787461663834589883442168617399502330709656323424811492244496823037855388193309129326719671967045377411257855856418852144344985915428465487581858007935152124153305048445380824337157086011962264753350026274299304318147673433502644196822905004430070289946912129402956268567625024740239085517860435764822909603395884759213857374583035264515556502583188270265902942246994567301138960008195992617330599530993940981524838391717683775428967426402132240596192244409012811927472760065718436343184331921638948863258206380521049374431544626094452578470206164960840810348321056561271298015757000786723227389713763913061628781720663558419224083400070872540072032899505582117655890080837220684611995544039147778929510222523253995658705331474530569826479944027995439403847889687346649066362801189469983396943085639541332434396365115113732746228850503683580066309601526225403786441097335638348033063614398907987396926176858641251139541246501249300325018552377604035146861921408845681788388347957280408398775340101520018622901893138660463969713788565323129619208317271134748459723631826504332910288196299101825029669131695628156191203422093052439437932247023736700409732412064258949089509567627386640975192931136575642130870741126022458881580318423449730020483156850417380145719952432644473841726343106982894728306147623966278297841099519206489894576455916127353789353826247079209040490654373728928315707370895357123459971854366140640547468690120520849425650016422887503568842145321521324902367634513977145994601499652330060536242756924723676800742921332963587880333202939063695872653734977680978659207354331504799045070850617381385228128664123368144844159538573868153539605753637190204392858035261744728939900912414569156714829826745034900019511139650916573711382641941728798065324633501254045108202818339394375807366650856681390604663703926831758032043991813484124077361283990572944885112727415575085182228179175632621093931996773854412057791293129031968904133475485310353096582731887776953300229858503456488770962913903055017653767997062812177981348891204761875573110951606529887101268937719382551326482150640217203950639355870500842062998669939556110970427961745575032345233923664779824499381086771860919147850213716118275576565024442170881608438268909760544062684196332542135307183501528074797697750064575573192356280710772229080400008932233186215469935442695271338819847391099988391319613319399047141567293999719188165378072652199272705623548494687632021358655180456451441605784964693844024343404521363021812732693543177215484950925484673522798807170748829129663991714698397304605772840838974072768077905503366683349484400286681437663927303822280218166688241992854310217682309584022569675289053560394269855810494862447973909031027667446172531040993220266696339699377879241508531364630787937062624502187504252010000647653038833620060880493671202799635154473390300505282773496502886578173474744401451347831409404113826602562358202525047355906036670402230866674967912193210097158621565778018044625108247083787492740264251140203307733382246827724558960302183806708698169330080688610575264439403940234120916641129956909785757308916522922302953970867811791190002522748545938734233085493189297474130655155051159293047910861642837741876257574663094020353650855038472233278154770606453263877969018876263198672150959657653875151233138418266441058849931891101838944959366683134100068888981206838860721831809488993159300892309610753502005386103417225542663737133379900261331331683546582507491815082608680710334498879625733053590490782807528832616485411879060086665254531687674099550706228259918989831450663166910563841344907059543613860859385148572675273338725037987083159422338498623101258768561113104753985127687838141742142688995601877909055850768012352325542290890780281570891543325286635399601402095373756930843194954787214167738804862099382805383512813477121945759649001695486962193262920973111246023933934949667757424181430276505762065513161995454030308988899950082789319421223264144222635945960857126713462987869206830387475573027120142763480250602118579721022737117507318590673261074554575262942865661518437882697963691880301942122156006809675633677203633693211105743770295066877885966880641908487890209450738212559856685600263083614516467027642521862425320572535300136676297867711076871181755427142040857816006485960196419987150502441244471147282747173416961905290627705574267433522224386844322209120805148331021321893196793909851741367948580098441732073111063210821869152408949782794923007919650045461837733797460292413812640558601445899771132310962258072704033015723709581104678195243415868752752283578283100685949066476525126722154021445348431991343131519503373026159186973477018592590600203250336708194930614493163052062953277207840276434090137268319712032791043581254971975949285679427191471254292737096279368748888712751341239681389176192032914090065036642613385982819725502057921914432129740749097037613187379650869099328259341898512954250832058042931110250712020537216152647170416617079407650037868628676573096390535678518307339521555245238555612549597721336914655342383706486355909673066012042913969866408155248417174337642687414906028893649254196493563980299227434396377619897501417037497787814135035232025061474295684608581720061035669408868272657331774621909303522020240498091107443537065781282534712620100623351727013479752320395407261846959806246750553113839249630907067800237485945335207403043396897055498177009029425862438703678284386749057332282228604109211313932501910214564096696114458296574444788146761998621494068269541200163104981045215698451943307474073054844586857517829340682426072856649952354212114507311039010555077644900968081346374203070974286516135538976083907198696793359119023385244262289609616244688240041686426797349074588339926957161075396643945885801301993467227408136271428161750959829067192314026503840405363789959537465925524966673848628473772877565797488403822127393588585017689572615062982363290356556622305942956875768852495130514974162730204977054487615408078607292473709041871908895328733968471165705985637825188742249916669421292793892869192617957167362258092651290435430121611719360059871408694859139362111568349795558286695850179136962430994505328445946912593678155608502707268473886260999796284443043046448441242884249245341202692357399868480106791980764109209175967001991867016539126065910170863850125560372005291386050255685399013917376084550366567205306975928290654943510038574946096135547091651678886388007741026858930412120902068881506251328922964267503871791532352116830564060577781526416407040944084232728983408683505620166247646848780814396729810008285788872788439273801116739607674931414751577847029209612424522053613417815251385314468372662485746135739494894443774615923457811825653998653962473831990045400075362457593137637432748745719390371728772830170945402664008254053648824547871067114508780449232924823916579052959937342562181370575134254888242714973016712393451949320845578457257077358420321294426877086624768764830290080616955984534370864837523065007713897297208056796071375859433848080589852797583896655309653465408974798595951421478534386857592737552269466408385902298081089864958632875143598160290263814531062115407089283978974855526065329316624374372464850725602427169543081931562300459352284191112024110938340962174466885475542700181441992561104091812630590655499169890262031581713379554821911763785225069623126803182362320743638859569677779753699232658577237776687017212074698487057072458348446361523415234803962078520840442527735320150596437080391607511071180866402704331535602709244865204409541358933324194134527580934612739459210353812454042369276461185551892573745595081339599616848215841805753886107307149378646725390164393200008632883805181400049394904734038735361194937397697647729437954065932288295662939284601450475437046621762653134781169353177841590429060866583431027626471068663181814136417564062617518820538908022366150708863437914306885136617786327226765518866796630666983898968406069964130841350327051677525849423113928035433662666503886804974540431757809259533032299919653324887699941533411808107897294293884235256935017034267094389664995114625647713857261086918751926164735756985617034789332806103228331109635006389167038210768960343154704742901994815879637837401519616597155897864877285044275027751293622709719320293554933233752675337362277590945179589725363162731565548735551087716438613362686616937063636102347891319868742582157502529239973568600275334082291191340476381073443968852929407142649386254160764503092019937167909331109201260079353395523481292841146363419848753699763772274679128780134370532236507326030055450701588219981916357750775654378633916775819870053440162785203966487686461919773358081234579540722962802537666883599109481815890776111893830509502594933017121752811441096973915895981434919746499388657619498620980425404401627370621022604386616844106374807709758143129552177735058355612001090290359612114066905403406000194484582417022901528531808132847386201453279658832164834933956069954995034708848041236809567566766788100084548687200916108986883454657955158172930169761816738764350504876143243123299546767221069698059644864438747877955327359890524227921873940553861901799335063964217238411486058166024434606476162617922716374929104610648394845681961281113125860519102693716853424336041782974127612623347663847462295033343482401895719557051689955048589659108780878025111014019844877240756782074988365789705956031548221234424089051762103431133630185094843827428313575061467159968740582907456732704480483300040788536411046590163392078678546231333908925544623709394310331219032352882253584583694434752088863494724576870518190196200679125726273535341586396200639743022989455185143831283340222709269663663106289188256211076081275362303642984398510962896466898648019961700743895842725327800844293525310915739897923887213554572100112401937789704434768032521400122430192858355869861746822665527822982924807039066164480968982536531797302718127105568810172138531035280083955498659916403270019364702674886055477399176200933087077101821451077498257043544713057845172598294857429474414014603342104051432502963897753365163266318519311196191834737677657375424310722281723703433348695199925043978299752881748933178020471077796718719925397202498368894930047233551144550604855189413103482327894748614385352716606420773130837706993120855175415928620992744462625862798851125199658688384400019995579543370759324689675197033735240870558871033603004572232450091906651162054904086415372738473372336949755218883276572838586404958572470252672228134741390396576923430964082249185163054523196613984714851995680010773971773149183163182365875861359567968009595185957462248620742788115082724961257064518759597109415499309390169408662847955795384856675717487484717085506333331125781996759571593740430845891640717308829174807935736257717790745084267509443331954985456443350707106130746350630601589845710975326138843431629560094318312336458878648532493557520691254508148045065312718670737140348287652733934827818449395824695722019603172961550079322542645571042725337105133758984436070273831366075044111887041271539632631279968011130962783329317984318222802011362728526964972639366529369996155401524729853019066988971359082015540848919263266440345370101624238480848955317515020400880177639133739747328906700398166582184963657366985009273220415047836467535678510555504768646768599315148644963207357835707580269441491260561978141452973512690433127368137343291884259217416180261582241256928233033404384695572766937738413165821632964593155292757950909285714362488900966875758037260524455661198279985822334641685621394962975813018710379399468347872680577559228862421207892884488550319419879165318379751378375206538676507441049459436673563266575110478631884437789139406050133316687448580698313312891389026330142121651930342218441559927286989480543574249137758467933099648362040479083180856367983872801736723909660689826272090882027135219049350253007562447556357846479116711207288415232976130570500268247341446181538439559484789108318419434352029426157812868966219817266421184940754685811240238221723702105806122379948732427144104214592641502287460487450095067979785355460928013859354801471871519335935152072838954235202390998761954686087122077130444632788087745570903443857883655263877907535457249399799370250201705213344366826021151601072955457201379057751257430942193250947518103275149945426625485787227317097904517945395465359492080243048406678888473170198272053370531566684973722466466540799336738576674131149203327672208125209196162062062953454397336816321801775896543983330138114657660000459815937499587425252854393368446473701530024190880293628099998625096052626134233253380213846988310959313888918968577722314059523518278582356025709574398553872024544182208863712146471343124404148112003192125586955171079384331995275053651184080318146058429467235618166555401073275557439980567784694294425321950066946999254313494735458481011054239866589295054801870073799033774673009885587631988806218767361725444874225875968220303134791051074192080198650629356910487517609119349374668507356321704735493341577268761515336697946787633014317741040122447803975413710889643598243702122331146630295273866870043232016020942609418823719131068595741485224543473089870941097034394063843083250443704867528842305042747856542045999032715244921041324621107004780451462733735852785153953461341124337517756356449749985726548209593065311015120101353621419024430978602023855213548736472460479094025423341500685031001764759545175124376288783345428234494011216785229187240251056823087786456819231035124746531448545158619518412675260891339681913858033792944143703646100693889859890804806118069573227213850272559422858848695770152854406783605273156933958765642295674102557283971715387521895240579434346140129202484829250866760732762375229521298041036030378764785770027996445932096547169913395674389620318933143561205046817682780716171693027101184159762289098819449045783501997003354009799518976082240490653143068200621433047100382446199609556565646620080119485631987915706141181624211473503421001025341125419456570819389388084880271836357694762844666126917562918788404103409261274026324233819405075058922001523667339825394870895533192334152343840197562754404602472348448406148837002243554230603436422197314214475543948751283490535895126722269637673974675188402110638581886746483049921122590276175084628810343082970112467075250446833005251610015791695648478393940131986233625033078697369276706419678092722850085879306584252175907088543562315937402803063337813237147441353757169447084772196231677531532151854775829741183143712583210253013580359743668239633949860188437805789310119926695373613764791594711655552314018782186897448502131414120361409306698276870229536262913762427519038741967463951283400596013314820518182533415386895406550869834517706650331015460451676362737277038485250641509815515774518468363569220893231848054402836859161885217760469903744318272370209238233600889916060895798202315805537134489910011208975727268137323166686990060139981123303304218695734243779657010602880951486254920114396694824501384066303494384451713603636354276663277142758795410194343214039440568680598042709508659243055484721797290935164502083271304069262776116751094815287163279148112304050856958196827318856686202015197873092293562283217582135810947246615888416109686985054178523174044329594499470492410823993696576167281889906874125927379881408854650481823160954054877927382685499370525083438049577415724450521259425010000365916144068924731255399518567174515378817427299039103255340777031910871782506600061636940133380965495710002514998909013519523053431166768239591936184289291317795096794485953922083222452926931554446882012974485609209818420515386324716422053171089248540028462524380473889800843184418643074506668696608997162224217688815948786918149552766533738530682247398423864858798654026289145919589618405435638570842278566099529554761347459964207554037146986437669871234985934226920616714841051499433218834415008060737489851882142033795792546572089883478602203278649570347250456888542856241966736346449104281688799783563298773948948536595150680869461700657118516725897006159022514713446997239461640229235934397360782522814293589675785033228477115843329256407419957783092972492569192688866672481818429729434113900256799096132633263046746093031772216061421280444099864337405561049427306010485161045383111799574710200649055938399049922383317314365578222844262172377229487734924195903069439738600032232247407618600425952964314803205221645232236569989995954998178996196788829216571206098256920195562005534025086459977352466251723463433817215271446501004467739747253084686080474260707219753621645398879812788206004557695578914106344789774299059149937862205471682497335623681902675278504569004807598691197472438497590979511077609479431364548276227794845335641681742878118143609799906294804879362804535861627128820431511230295160345307951091402645577960478629661565501677847310348552894421341833277351158668651030275145412540885467055528845588146213571863909150819469807228638124150828395223210646989399800684766757798025885143729560567654065741883725128897980165255376135237969876907754723816523644924671437010100569783149746501138701923236957470094769375750036003186939217241358767925144187670609490000049886957444651191221774126452902746676984187868159279130956552800072074437220936923903754334931809670838138004635024954678355738040206358573154772781215848597127116279600795069049116065567164498189266958116389069555524900850665508186456083081200522479810512565246108056977912214557268699394018762732532876451103082721074440573899079126047027168052968781778231306020240004056680553720157947174882539881870340452585096023308155850789401800404394111278122509840420941868166457252437987878382917494617485845088963565521275665917601558782518245720427053164571815774505985351192384740967831892663797344685999157117575607709785355473296588324550510916585030335780685061361709388553172095501711154425609663464641727513775415761250180772419812884015669246502508059442846480831818219081444052518176948531591297731715214034024318328491407584767315809729133311241358239966143707953771413581812842476694135297494754728951396403824032333927291035756094221112374681955816968880419816121790164974328406846715648914342886291777004684915362459393281873342835034914351575793042315848402488680035906630581697454156666379808329414522137453483718716294505475034174406664033772923889714278330464377331161411975265636641529619677958436423111853665326021168190410138920595930016723322960775414109581479032199294475185864205961144591281975045594512670768788309223627947497701031490815140896746402748760686353742805924673009991060756621275855207196716103547509829222003813324693825011007340180906648729943189996559925401730420613639356628900518765123352881208033998518534458453557564304697581613613751953045693672287656876568836130311180924222789257583557093968056895693048023440976849844136051149825825802003276639868463615820728735189946026448829733491871354954992374759025784221383886342148531275482907182579950955783127983346644725376681220663029811321421474159361931457302616714091801662005316630865358988163948600812801434821074585319001088034609504925122657896355933871734390755119326200799413204168352040228342456281020658550342884341711015120861463378793173310806873337561194047010742039031821195542223159561000416571920032372790255749317084213092754009894931223603962438610544179167838561432778556055261268276748761368010673677182267133167567108400920992736432108051766639376463543131835237800547030439831008239117980577901691193595738641447432903153602680770510293446728283450782243094187547787269675022363068709596869262466470268600625281415592556342854135273139736595806189453934823465686040517856925061776008050365437408819835716342209040916514140070111808469134138596988520470486566909954110540111965989301526340776040421070110472603404049217840486446399595370607483336615790349794727929879249905620313793499221948883426160398698013780975123610950385145551048714886875295212457674042014428426401077587635459415339292623569929226000591963114216033066796853662300194872748175841540468346371502419125684996884705613536183409799855248719035410416931159239502429646064240185590100846342705268368869509745104972968875991244243841228529904596735867328003189375050031160866121252229484581083856796336040795104755642255360445627712544245933633075439765117414260557259870779868987033519016612800659794155560195699386815777736528162866042408436232074096362615415647305793186378054405816924036251253011878035220136859752032901156628543338923493554505750564619220422743376606999057031052202385240754163675585863230105136268488211753631646332572922591835597219519853458201782473823150206348534099578403680581349163110443668399435630748387346112644145257853550830028728087486449549010526804097413022925416529332073183329395492190114822390219961743089697254242711506215868494956574273186771928176510042152809297119996825825077627632722897579308961339924224045130172873384975602259854831796808661842458276965187102666188203858741052648452377924125521354423107481615971124804932077784092199375421147262516305208895497635393993454272625343455060939204758248986022383449946924661409944233540228786289051777352617394853992286802397342878039199773619190751696535118174512685964816262745223776136646225975023301546316258897893996477987678405872218761435183715005597504803633348150265895297352139481406177196143566976554437540723146626334865388339154260572992103406419862600723506887872583183558699369999507783244568484071296133842715175475876150099345579665930285712972190651860561988648630818943053787517678266865231248462260355067004619078450821737003707826069443744171560904788569925422565753481068026020145597134323744628342952551507897829900288920550295587634811031718041687402497446385513211616844517774055324140794928894105483116651233796694616837901511305729468592313830234582184300272018067118662474208473029787728450905831540683125793157762201059931119445634555298112891358745892050873287131029261272160137989358983283852162665767857142128667771095489473198109537985245186726567859009078260406365299593822201326529796668277498683919604120897709065512168466022000553490318504334700087339150293693164802474547512136719505066355419717330673719805627184632448822486944693474957577421423052718492046896011225256245820389869975415828619133159149526174813948657784875990693939446154412907453055028951084311423656911108804370943403645836128983428840688833292835572161609000819298769261258508701206102055369675011936624066450574270734244915237762770588044277300370015847886654980959379593964568042755306194891474205846819445455314838647084226325120084894707435302417590619121431949362539465852234178143461984702875210815461153302189719929805378643466877625593130991726907560746560519940488621450008735931517967419410474677224661254370155336446264238938121983993590451907830045060924825639612385414344235369758487966205229986698669352020353317586451766772702675448633284858212140442292228877161212907057949506118251192134975034542201152767660450675674590249826180926829991778608554268710065323042488480986917340720521824177082305077715397862177134009004127657980042722433699060436463027828575919455112089676530864326307077617480994856889849300045954238405501584666283877384563247823422868029613209245942433317029633280124551756084989239769830457705880571152730112957461397156878928156163222306636170970564716965544221903317712141000108557778816531804890934066238177300980124178258294954211961101869165405784137289091011096127816981353444943427188475087337772775296887330901309519203041524420151999723306981804184135426277409537391944241338794871128042718510594518970653362554443852715515287382602814294626845481875294337898164959500648375671623030411139119009076265104930366845849192967912295846252568776228113971953064123780370566182375794488581470284709684452270944867326138202724163964193020876593707601260706900922230750766666645923414636327094843086861801670867870818186008758387452300168833689084984516868400880733730160177371861513614639791149803341758933356474421944825910888163173024335792330117902458298213229503582303108370169222456973162230307159002432266834932302343196664472142483944807848537411307678516487140859707124686179840740662920741151040835657877887619293690607322103582513379441398493095457386568766665231707519234698710089903488950757325427493117828659804636632571756441739014394715634224306973420436214506184395530186148074907664248792433621954035609426338248082083114388970022760999059505595031079704918996647978327545333938578648731072399969439189844880281916526502859426533467435728817479540286896475509407981959870347580169984204202859571213946594094864954845579582751860034829342554337562530431178435288717508722859689973962897957352669433859442875836039355384368227591816679640632662425276235615996155314267408676928139839327512290909761463240451933113000247738866330988126922967940489115567967782922668365337207591698307684917312998262273115944249280420430205779723356226782881101582092495895321842696772564737872547133629174322464408557935851033825966214645986667946736443634287615012344849923768423647836952718607998165349122727785728003885574217932262810694690190776585888136876400860519136079313906835155461100000694120656560165916890439782405890344025002493006601121163143425322308275281667943549243702894594425300122423273532304850585618733875071937520398177619461254253958525051887782007931112780457338798425646368618776496944790221865644551769938005843745562340346394768665455410897026379500182323876234297125479420642210979377273007793904373455428390410704831389442280406685799394866274449429979574953075971331014395179958104769450837245510708969257360205531140415132763989347458407001309804490324954354013080771839168067387790154944170373758300751774399148632676941120827886221622559200128799205867118367922791123347722514011462452541501938302659036346810943418631083522964302700738148813136094636280711075191489214139358281049860712931335776390475299376151705553396238418552087453105072863934499617372448683444627603260947412834495465420961887143697452891321427440044783817969886761732240577300607155065809768252618017706000531412343035730959626839327698136786424076723899501806289119025381234442937725704888947849256875743373050244342384140956519932005467196147806312789170977044175241819794626238674640657264002807837370213831610396416483932210018641478260696063745851054490079819150940682147936939859144876711194525109398690851278933396929788550014481081707718512744989869424565405040600333696576044467794880885158767419259650154515644393862921502001379878803001798192309790237092248574518735126662669095570683509699910005900529166006841541858489644063667340032988707547714901107844831495739781169746364836676921050218868082335363317458661938311744452669646171311186482756386919523452402761652726898155823999994353004737148563859926419615911768936396233288560072334227439894288720960118017492869184841516449574345334692030466361257127169620993545050183394703023767402028672376397720099454412441315685318108253620277035681616553347185713540480927683646554773652946493802244179953049507049071544593439676955462129376927310018590852703117900554421146645744111644750947353988283722286719902378417766711661392431276643187976160696782941991716261758317869889216030368111960895077718997654625133037228757709319212668794231661776137637008680609414801878707898788902057344431441683120570846846873924733898156483654265811176714390683649924168797304048904218680733455009860711830625905722040818199616230904451634781131249355310860109174065951826085630426184789608279203511406232597030472334282003597498855782168349255249387952943548189793687289688172843770788171095595202650010716537509313078317686262063936173889283440696997480503407115764649885179820007722426935333836091552681299228166187618545025549496980614411705143035714637766685536915911571918215084955454988352863265202074153771550239477913621265440443257288897175457537387728211576851050740851399188851227283294825754609472672559762307782635227947672415741283777728905125755603089457534857885898312663289070447550561828848029130466821003044785543134773759177314971888849912271212489614169506133074622165346446009754476743442283391992592286839199528958316416810560577266988763960960934405506533501124365870303398096908999546040551439995705533691010931297906627706185134317464981999539645689085594888064899288007890437672322003032278377753484566172878423355208466576425026007876850934965582469850112082104124697247222484613476065152963893741535057201621098108268506971871488831659081891747188596126614035875255900726101200605824081385611955609014615984883948128720821471806004109643717785398009024246675060001545012483444986126080707402010015429659835144230193908530547320180072861049985456083245083417745630613251935705984394038034605352020205865688412621419903030406779380933081797303392172757518593151252420890270000299774382896633865989534160091887363093207200487277845961233617051359438266401685792236943009459249117127209717670200254080836659871308798836284340888328526626995645910429960446647826284138913754765531343080851008720445460596157248436056559034532506017535601072932134784736733078175332730387075202935326831498001300190973766555282192699111437721028700780394177879184203294099986940772507587759133687825132071398995989484878278924087902898078561011705602345471191453706905139726071079448483719554277555435004080151174014273653493440745981917272611518111287042294661260075729306517017311744657316569754683386620632291774873588928139233436583364734577776933142279818124981049656288069380247131598968211719818291213075456772864135424823039142676069340266498230206185731274265286012981764470396702201357557778762334713354589509586898257700705583861660366689031662792219552702773608600413041260000726461380996478849814352185960147738892826484767601524589746931547944395815959429044285586031332853746939956523726745656909845828643105697796305146047314693219394407291788958348888833059669934213717265583798219327057847231967044435538994813241158656591010975400505044619605825760244125525826113614141143095775254306461294145517847885988595676895553933829674738804306399346918940207545295928811376533733513032972080005531546693757565120330240497449581366011882579996613898360138449986336291365250277632865313282167525189422004689012216806830490637320535660126694364166326780588922442442571013373478498676094300637599838398756305741806225598789372555583982363265249440961627343871575349533142070458639377722713189350122279508234026406201229433387671722117665847073540902443301855077010520697649324001948352500980938784624008640839054234156131530278978341913262990420072952677312148711441799943870909070571414560843432620120333501140324060612656377842046856306638662092721289546622843708287810421541240494014001752819284202019173953306552007132205414442912627049427484402749759493424252552271141075797343797756627746435485214614630323293375919516376741688831106055913346178056700437187103586968706839699177931219315187011166401161126446583888388219648709549511889919383126220038531361286031339235881391707041463264780970192241167261315278443005066059279307706262859066090224197204532390191896614247425404235440858274003265150633561571163843871644770497861516468119462442327833684169363867978117180707475230260824063884296334719818691439412522349092949214722935868247510758346472788923558870094159569588051341970025551936087092549757320686212556384619703205907939483430251641451992564503172045177236323058519851874011236366158008260335115637688133925851168807671168199312551237798361607600596566851073401064644929534753524061323252438930528622271057927129081365441164107571521994112621810609104950946838644746145748553432186205027339863227901992456949473203277411680331367114881420841644756296588323991820095430213614479851605545410042709657043374556225590423764684876572559099687367637767269034705177308116362076763329704539811409016027751722253562120514357946758765813281825939489341332936647937070049293113865338391737153431332481297342291187640261130854677364909188474383952310147368659861363236620948648126629577570684788226340539593312787273174487384882145798981648902843989901870075198150065714977574458436609311386782872404648669635921082069000777090109252608327979087128026818354100984017275354016773460003767417883875200325798842669527200409490524856254790051851148914907715826664787332076612066830177315548179798631340842613268717668828412861919306405085586799658906277450793476860446999968728650412578887412604487993582946751244012480597063884300488217774624062309741872207508216760545525712765246560623246160982405691385592337204037188224130593124679329741425729599717596217292141536474369262972918272451943539220487101698093176007504047312495191177598613339255817436741811456021013480228999841145967080630770238233139508108929413298323377136609992167911357501181408780925673742019485342547091578988518977954193851622626173312453013017625762486775546517494946965452635508099560493866650282947245019635907936149843600207410937620343463625118410987021437002834100204552994266985009324286216975872814428931974305237528164781585859515987024167598607051297486039652515100473813679952912549123977502553628271738436337361878820378756350122045575311211249554187434796276230254073932059028490875766569430219590708778515501600850593432003965976219353305253012169369197545742359580424566875685198738159839193070365005640758190563411107301464977098452719897337537970357978697001311646342454234529768556381728098893825265364753864182140801134799578421338016107891133822541143446475710373127692723027627994959540767373137755471652930512422775144752534469853680639304431022240366660286403952343875527313488268694099313698546651667910607679785950411463208347621912540440523298764996561753765865503879977137353299634532418648109380612149681220077491312918881470043240774862048261337442849579322113096270369858450185625961077179774680031994930262371282916222652986981904677877832328386283015064934499388698850613996511105214144554106455345282158294325959892436316639554416549469530832037291003831163274027382973730806391377038921709047601077153503942962689850046351401529729070637309690613425077267787447845310167493848178144473655550696013230788738023174315433724389061163139396966910174474312485538592299082842436268623946762460064096061924636650015537232809585751041385031389248471059610239323721379549140557612007305869511355847947368453996429018247500693941814067130985676891125990890391408096614601349946213867240815980012457031857931573251726695086585337121074379565707690010195174085447440854347224663686241394508242432853090073901863885036899631014536209306859992920550908874400935141556814315128229201327417068816203086364336130285307610480361727738221182234850200618159759159715880425057919046296660163794677823147279221454353522576892473245030059763730849744229844211821687612346245530314391943592187022905594867047514196418899367827081870167347231221869736252072205658915509729528377740446753868248801326371279709883710285168720963794033196484954889326537264848662989735001061785304324818730693517318606830196478429192876621943004016162038494096477649653024780310161801147614504212679491786416768165160384325831711320248971256605337126611524882900552671302501011376928937641814664995582154087952624330578701205391678861564504773140405423621822174423294515515401932597034955195206537507710660457200178365740250851191011534281477441468165250448653878230079848080616937264677274544146532225099236924093680122014889202463509188677939754070635141081319331350559972347397067436498546981748545087004679683350122055825905376838185030521714142277825842974311553118376647639774658836555550275450397420724118720900365678520382081005059074176908962536690612327890153495718509446042209874422010833614621724624428600686471322097964390316541597462643569028118315077368795103047155407616552112634187800172424417891605508354313425409008107374667020294490747719201144904682850583336951896521280223627800394021363539221629743873584015611334518567102287756925369253706630972755991396100496758025452769060308402559786533926274827234872687333329030273527440798087395760165346428666310918933232489777164062962921783980247548200021244547969478428583730904676506664507703161952908975919909511369265134571799948645686558296835794101310235409904198822321942339982819985281909051546462072272846573276419124781130373715512299449765739323245399135980818565729234685144341975706923233874616571738559411869460012803604323068700379442481336337084309538154824790144602523531916984921788060756152372094021848401941127944073708979972084512695715066942189551574573141904075828036363403206679279064169943113974092190436813309919132744196683269957818631393289906849558370802301119518075688765048666655977771752840292109196694502345600890697399844864153116158856101321286597191301670649418082908276262856074841938229775239517247995979306664079587511257141591425816341594244489101185486117995816890654651059172504727461202533406384584711179332885387461357035160027648107027516683890636693623354490466830763544664621269873658806813020438647268344368420232540314753031866949033598156670752055355415860762225945532334695882023180706410553866548127240348186390772522667649024331295121948690684469347627913289302171120757251071765572466376493188265543179556058489907217097937717672988300791004745442370559399421981317033227348253839953697478294555644357169283230788798303418010611791218603988763900334394849043279579266825876606217145152347971409915793925511983148361149591408349607004910532535026372465095523882371023211961604653362497028328618670900959885068792038124660209824704757856375628690296326541911983910555357689988766527038464092179498207669181272895469990098718624925785998599949459351847481852142256666395288715256635838080478984827649702543196492075328724070151404765884081474968641910832286567167016086270044400718783997515515737766894415447582843607832714500525688606294811045633888161977087012014556756937366054735596479604861386480680407930271907367350461709912862622189616086061707589847180105957261306300346450069118465367434925416969819897705658674768075447035564037330232609249091182011241926471747417086039562003572912511816174437405408449623846879402595541751310327235935652419059546414489588969462220497227240047063727775132623963866722391969858424501124744037835850014160476738394649530043362732178690048968234960851781703512142156457545572081554579226732903237175790288070004485307521649823695748651509768110514891378781434712790296710161122260349744978524123624855218430076218936762658112966299140031796190073042448921391305438282802219260466667969992767893821925854435433157893092808922385481439408508409961905171767967076822880005084863784824817175325071973407342237926207677069013923494607630884338224815747474612103253039480055350563054854247666939862347420802197783558272833397232557266227846921452342634539361169866107112948501698625590746533762780984131307884121323973715986663642132241951050886057999956622701547820234552451192104437630073947635527894860373003910968649183496732838366172640611384172870872127495155518021582615891812474745803992116243788623367258630635548232161121512924300364858681995069043742337269975410090930940994131671378066649665955726851517018274689410599961060017660821159334338754934077299955058712555347479743149465576893765399969246252105322600975434195031579410865418518574175229176337822460559937356651627063707787517386658869954424106567314134174222046720661245125052139375902022107156089848138043161117670319728906639199588589039925435342480534406115069481585155995020753326222169677586638994677311931466248570514650686005312700088386953867439438796055681957511406826820611084410362980269781428368310987226734927478395577368599671473704910295475095016477034617737062920793736352961749892422414214861664266729882388531763396399499335179680446603086305185294007207345225290307803487334729322940495289508616219752508904341253510438067787883206134444673522692937190608854464436257661358630935712672706082542788460647803267613591520618712633319128472428233168025440986673117405198344752075155859265555877477700281910262411577157558532235603513930027614546256737038052673605276875846613367221098813320163959283387693857201699904998388156877203548963747762301772991037408492619954820225519772072346562426867321889716549361170287754294496516817186880610776414964917709230135602398815845584939123619102454649886516181398825173892863829593781896720287764311601428982547084247495800343618646377795486403198823273914333555532767822947146376932820172355059818685625324130146939267017486473209445450909639182219009243056100890344099989669771278152014458764623353477282936257702643773060373098694038690804126261328554603127682210516192761487718150512675971097451564567592796387522981017575923187723523490402942019643729415564785743342890397590321004036129769526573545682375437648171129842923276369503534401407555398082609671781355338630854298427876731067593172986361483775455884438964165094082448815341369861536849782248316793650194567118682710549294471444426728460390166190731867117869245639942974391367543852125077107903214012006747003749167112014057062872046107393065888583380673861770566769559446601174247615298988991195720534295625771976316636467596793225208098288976840686678503062618932972169803739220603141863616821519528657940535831815933968273391078626409478156238317962024692521787658253813831467347807840690957876590989258594156862278630068770910774775050349626914260204101394027402499807331824576948742897814876332660105354203531887351939575108690804325492556901866074459726491380550839470153493884083135231110163838285175848696759472663572503532243411380714558139123196982989750196334153612848106601341754539210681656623059582717805034835634285491861808746622873627815212890378215602461695092204285176247505195256869572334709274707701013016328438386200606589015230684399652913384335607229179202539839900251048235728443948376083431090783168491075766446336563404601844635787939047166284579397336829752720453697471647455656905728061409888664102238578726222306893722275075481038325769467447484670373985480848917914244912361225210760612132520543436960884267124142651961714628592599775611756505431889108171812055233785179014531709658233655832793902973343334697311815377539892916413508830363837083435885678824726811927143094162132295614723021800344577717444806326032273110523326794780946219766230094624335892592601056950695631483766344577627968329043021509668435216616012624650119062264329942724069853865540766709164726266939702306745665540379932393072248562291621122684243820036345884340635931566603371736396383231557063216039722808861197665724676087526021914537427020278153756944415270143875635968102041052225754073859173128271193459335458341739885676951618659136210373704072260614990394281680292645059248100108095782464448183505084395227376318039539869141978420065297871925705973099495636978282329361540235097564334973819283257334311372695627017445563309717109413312517150694230932532856470988217858570025408483167111721167481467924046073738107903555780786810575233193686674505400740667853185841512574827023418844039886189768810994265925681117422161256394578387901299470656506837191226345009565133807661200331803402950417263655412059461764961054991945326449731917885028435276513151069743599741472620259743901889791025711027216902489186475154761139210803401117299819133971871814092029423864222360455794844987214930726198398310259599379402501429548705665327474659581495232202625672810304427636571998465003254226116990043175024926211471552591760085635730479968177701798334541751443376444946993648612641783832436950809933034277637490116219503471671779874165260535800657757416105668290197397075245174012612489885102663444330474918189823660830000467169986479666016411263235300595172879949507188761169234226792059418015387043526865517210766973443015526228930090970306855486620622408410682879646419464888330411593284152162406278842516788118918999109481148175560606447728020969060574123599883199790916622942557883968158588594231383554149479573743292015511364282172772890000549935461782740081656155755578071507977806059664018849378565738794407479441403093854100728256428928854482174113322011287769038817745997427128663785815869944434071289731355484903909793980637687517231101973887999672455611013811982951120382277765197019628229385585451658391457120848507654521593802218869038603806777790541501527814207147921620411390122710592459048289694335874881312942572589490616550727138125726571468891491307564832046219874308509000520870940155720281299352414091549108873624407074424439350236198816436229827502782826259736533229441063247994402917164936638434354932644160820934261697646607112713841421151187753626211832119545408357909425423760645180230033481418672682592728081843534795269904378171097834643123698081588469649097625879701784434785715886927840958951543138922319624825639258836730883949960398951411720523914153114164050693279883352345243334724393220910555272215163308356602832215206054664690843043147678860207403118632139647226318381729146119055263076674243782945518757078857173527697354135200304454708574512137721232988246000452443252851354031844763256235920572168808385998529631713288298558357452130743364874733316268019053160508308081944483880717190334141563823144861507789171752674714428583809252569336486033124278023166755890033025038176073689215168744407356509277579765309212046413880084692377004532954096610911707372710367119239776368681416114249639609849779033521605614157953082132591000469339389825777098047111094197424075407860853568607492415935465196363714330539862143822430156109854578014155841276581504179342853540831615149199668405986000186880538347268433058807762383185040707510717114873313510286884812227499398830602208292278491926590421322268476476448308076323725128095181908969992535169214951935159161956119542521610113875045620206118060750411191549805456183001592852623261614278221725854174505161849109832240796935282566500721792740023841479500873733503372015521867417329724575032263716955584545463427861890241343669795827784192170356990381474334108579836144126627525007324980375620876552708735298198714233455562754298818602458005955803087228563214001555667266147687815669694560404164604003036619289480600131033735982303778787635237478961288593230967723163696816494088351416489711243590033172316628373880359334996761349258137791146795955203462245968514740481475194021182647017402367511225061935171871156290836480230453465873563424798945988926782218021379564749317156629530866291815375386276036984683898088522863989953835519828112615044347803654319467330131961698000354634604050714192337684684248524460783942740725620557254043332262419501047949250827952249613960323384550095557721864003620655679643670167072573572532027810556336601481918433893642093145346646796018847430096107406776773516800912711435493155527199149740220989109820261142668069985201520827620603703923961621775162887728473789839895654984616091509374392376656973801822049390821602685182921417643451525847170428880217759303629818916233557699790166158076836524209557581745676870299898961895838409714647763452979429673872960331416112662166235896289297718856261915629890296772647732139070408961493045321367878389697934036545520528189038479911783381756942975266856137519794425558267700004878432094448288704776458171608482171526435656466662870460453346897093004842668018646620030549001752652116353701506103229125626904001572193886756052747914070049902137499048817286312705652602407348058755149365909611270131208846411482371575136770977011256705453079194311686314784149313148494070265115453449197766188362462159387429385788867363845921392192447584017158702858365774644050283054193541603203452221016510398801588548161798588637272621011852242982696431305390840189867262322698110447726349049330627332093194200597007252319077709568170687925513687106656874372280376504994411557666582702147593106059066134304115239632870863124428776498253953290912995124242468433897610513761173900711754982577779118887173431471777451656391939117232395811233017430867205227161220998106821929379962061648020793182987834251591703358491842357664413275526461217224563855020763979478587480374635153844958768010588328118229921468587483561282739516823752980068792118397721905475507535846290849961153331477355219842799384867273983487741111123320515438972370522712102800219264854818611820311426497885361490899113615966031010408178434081679470945716530441869302759035581046592724072399824980356906378205106040356477262224752516954467736041030460236390908765300231562159698943589497468613217616366288836618147966380535943378505184170105363271316460009968756276521578081972295069044968628493852114170485599545728246213064981693601963582792163489108528177319775629504032688526231703515191691331277336780045459302411580142880809415781299192866795485816080451129018682489296919065522461694501077862949850757021267192435699646979531499157018756152009827258824275730460084444759014508177831510488524934448340628521074855313117791472043137946886794525682025062827076980773221072232413286345603766996603939177709726440368515322166305381173189909820192085295543246400291063793374584465300117986766620061657994349559134962266632398254194809180378410653543568023099275693118099938350642966384839774785472670558635700803233526223606592852403379052954800008709780898646925961410342181830383101150249751754966030301902499812087665052589104709578821103072644038002885531594561187077027509741164453620912730645485005240361385327521943870092182241041093640781020793442936636063841728248793997579191834573100933769159170025767140203968082032199462713533806291349326288382177243863286087891234303356259303496805546957385287014901781698275976948849565783862193884068972819775719554275350788766584016005646185404327710075854841714979288877523983201084318748408500147420637727517490043971334434542612737923261676971831094749099953981471617167418569687621096614402473679258932510263990932733479622682246029462661384381271636458185129510017729425967218766736535557343755708196067586440628148083192022409074890066822469233549868949513969281242933679689126343415524855782503823446955487538477201692073515159444311370208684733081700801456355960999420695552280046334281570882339393203894999684971404107426543005141590579631508562200752317025663471025028510274693625653556962843046318114975632564983201972271868417447899528351444503132886445384311686708094672503656826703316177507353287530777714740523118055214597990353109339396648927273523819527932486447852777633974496544212418511992905470232869679088224054659165922223600884055460854902303327487318982729387934044069947335570703718197196045603781671481170654352274931066010622992861439941702063650691185469834436488575397853235772622045366234262892936965232803524791613682922610234775902261966511691660825364822285653940868973038308890124525934982126629115330029890734962166487378601229752397177941645270089499840948275922036362783666063408318915839085609800835289782990050992946038056506751673546994813040587814798122371027112049666930331599434090030238079493050233813003251857740458769826947731448209205386295777452181751291986008037001817118455390269360314527834484290184009111828932055511145386868787181245745187495678287220992710482442086415633478646221244551863162773583199630438016916614976363020782063336718792590663906870335392172471949992822375654518365132436717186028372643363934322214779519506603069117401900411202854067802827030870397535087576722252866603688540948230357802814791018475643144903432415109709898760395600124916094118245404185642720844320573816568070907802213375772307265375273645452003677935689823582676101793399594923203247935231869692079874942528247374110915129230239632139233986951416506410809548257822982286094231302559910302669658704199035366705453793725435264870374955024336392540801606683568478508552040807736285677039163459318262921822383059513148509461069003006829455606727239410535409031632036244706949037750284763075241535145510068479960041308971542531214979103961975690443457424346725020581765610427625447026524663145846173365493303263309584123802157738909287406129171268380929939543354079182885852964623224730226670874789253443632239844879208789043156313606823557088283488957968098615905693487999127756968544916613084286940325611705493323170245629490097387447338123471757299539216083356500152626655608171759390502253791739014117274225797294155901311629948319630919082100620923851386526112435015595076183800632624340960807273015395215191305098225166580464035614549487039721413507068627117623074297647301552394651112135669214953928223278544089303699286559659490431944170612730728666984002756902368348755518158519494554484998894027665593656700589618888497461232932853972176292948527707117122471031685358459366484021725255693335278090152172231774956417708388951313615629286590355046960355232943265507823263812170820628757216601759930411644784762551070338602617208945731337330883936083477503902892766434591740864712721148041022859204738089634963018633027113749974687999705335095639288484740777039564628656342954243436489548573156505193996624536961795224412101084921469940109305279331501411228079786070553231893815478681925598475159926323371386981758065954969431687016757643587666159737732168281252837955698444797454441498095781698895388426511148715098620302404047267945422606025887026311067905896130797118321831827108684072823485768635811361450868075798734901523414660698114929707828288000398706662067415512063427784527602275010933647774564791131383366656654128897833576902759514986562179665611184605374279996493539033160343641242631606359713235867659413881344073244135790190813911700377256757636890793213297216120951464518432335486115897954795186571937221847811264196263478903049461786130141938083691888913814259628623345976486955036864759383698045905722274884059037834964577316449716814886618582808659188219854411955137202804633521431146557336041293960094563391436897963533645016506502284724186803400253493188394990167990887131133008781367607355789494781018289885959407489037018880947526487310755713655288914329556139643370888694101101958420595273531341969182633677209268463559942912833863855696746156574307754744847922932237645162609131885187644738871355342102597765406661356556385409911295718047835027157283437832509567164103799374807012980693457870064120411551798765465075050561885601726233324226070045352408355913756898016315265820029615292891061217117757751178193881642555466631347008179178400354141799650858623505819291366403434750618758893329096013131054058794291559456041136134494113970922176830979779694420121921278438972864742200957154322371437814128989169834951385604837503268400857207823597256585944721102539410239464443990932139082456121209890524923221929269151311050428134400447066634030944785643910688926663553445545842958343500976141633301699322441704773725252563953663373262686265974495034101818909305853084462129121346749659210817818022409974146595055584379983570795908514200741889054243297323471871006841509918230256425088202170450958697211244707785754408077627191072308723844864743145899369616832081473413652794349364584427879035246281981159597602126288348312787925849215965997108973330468147635604400779159326872253548414373628417062010543854874354907200790459971131659635342502389287200521200333098182290047907425159471931003279738292396024331000528166197370073282140647707237434863844004587247321038876319016949081620668934092944784932578802455035621377836936199061951744316305843107808445793616874072515355791519060181256956654168912363114588409191467075997673157329831617900209965212969479482825254775358885467621055921662456205388226796570869655356368686166817818201506551207727069485264282619361410682434675655603697758904378026619340291729298280749690725099517932117623268028059102258170802191039619107692495040443417811723583861630462968268898075043288517568348831136554792218527990456783238589145298830437083257324361972353551705580562496806170690345573766195072513204983198124804044796455957448947816472181276892208333371657024477165796163912433130652005697422694559367677778748877765764915394955672360834474810763020410700636420239251505589522595893303749439750101601922260716505485336401387181406410198466023658559971083807111473681335419368415687316129113316669477592655597040872755375245361515794614423707970441656739116897693217852588762226236782559780497929258230545184150438135088089622784169039761424864658648245963194909693209688839298144459057575054165075741100464899188389861217243466121050792312736911501526072284843802965269720282348462372436464234568186802097150528576928865077488219705530449136364029157526059944455786939256097357548415053697675360222443202230520110924533178849589649380221637215337159013964311965969866622775781054413271468487581928394108303444985688548452995707606372000522081230849457052513139871654009055518836387941132217936660664567567953915587285064086940595844950127946847323355361280798418277965850375088936107855730340553718134472516540395466529891957467705432382435252787646833367859881422719065439887694642884151795685392519648825822271118628752964612155713217840653060977974750124954381986157998677619597445474567420185909467908311756416617618691038426224693338615491655697617885903077113807973469444927566509784231375413427118565451114854059560289929301804552607246982852554720045908704119644412529102590523805615555357253630167148494772871618188661485260803356964154651413242785272264855152510492716005154765282230163409246067737302482906688631161090986944085120622394971234143974924979565339912376368865414475980922060792794907848615468964032596213545940310124430255793603991937391692947208237592208311234850988163810449791795103235237436786314640633280643735821987705789613117515308435125554430170892338304125164419760403611665741092128535467708126205225829663456633413957571092388086064500014380020125021451597456592972850067305926334030188933512676708540780245407194366694273451760259107395551989227976992297312493796581033215909213914137093263592494220587497813961865655074476722893517579203095353173727269291688227555154036950233514936529025263037202588441864778719820593269288226271752023697469722229947854402086091339829061383382435302627847832685950399194156082688235915350623236918589718143117773576195491505629243864412641237773334484805928672302617287661916366237570741082371258724286338389041267800311450591006128048351573662986150624434555369284272316378537184163482422202533956785552934760611574721754623476129670208085964377335207416029404935748442105976596582810423714875104777868801367694921395260533290486338748457117691995494549821992213857716648116721669677425473849208830563047418785574789764846096641347537899676793637449809598136423138015610889408155041447893124281546453852696674328789061591236356400334245577656416664590787755436012937960678869366525348614691417616713762931836308707781066094507956953133108505321377613200374103039929710816300270964041830370267572305364089354422981893705008949924555566629392923003225457019362091214802127804894442551587838895393709386478886252092255612541037792988852301616319283680254705672626407165245822127401903892537949741916320465322312251032692622146523133096676177240863654170093445419388410161052947746479133728188390273583207110523728473967744169227463170656788110537706738758713315632167789266741854184565338696812891466910830140285201894192988690142733009149117664810866177804761242537593402382599198070353559393027332691944029266446706916978520418174155514343938973211947751230383604361799381196792453311701308758878508995882870068014887630400720772910549694678914460399524740809059685285894901733994300698297522744915688198404966721717381226941159877823549687963117524223745148611631889770908285190678356067303352782297552270638655952595230654190306122647742477724230754711138363682438377590351166921843292782406898422323059049958852669898961147209265306238911093682653176923106166573288581839563528310028309151077771459952375543085609398544032365702769630378063385099282909801166107714783838556854842020434821515836576149572526161878009673738538874779660120567999248860259801762824297862978959128966689662399446407295373141772092494824915305193426832313716536249214237550233212769403371841919686087725313051587832721899948939334889981385070727942178746844464319518587307490618321288108521364106923052138977526503813407073443203515477477007921246900300243588007565627259971569324656299547398306804027475279960312678694267411098012961559117604044515185101219974601520875716593133342859559524938064664130546227106471902240421101744485289090771534630695907551246904928460888862264454787468075022707718558253596885408724933240333179479665911920897890918043686610446777283168333535302972077530670829304826331238601212417877699858892469926779292195111092577819461392825767908612517064652101402459748452476994409560352799260746697032846256501200226989787974316769671997084417484648034466471785599415980690042856700692398583099094059345132425511611836314856087844215998387966126341282930943866342613512566394712217968553086137359153882118288835731718997311393159796670701508942107289326278659393647208673404980312012743312453263552805076512601071045343918703844402302262627652140687470669265226224993250915377745610978274249816197429449246593761532997022451503571707063755535760291259343379331796094366733212777620346189150658524108951514841579411028116054462727608158327592160254828594950927113895862975582395732647627679086165750363842051588473568900531664426084752409007834552063267367983499229232370633846338150675365471292953931153478491690206717509167705907317069458759597388096849742680584459341040594781298950900840215091167360317590816850492154044909078428864934146165359455617814572073999493319873501450869613475172266428569221232189690410755409018925083810955368209328788382331881939076857209758534809178687827791952340696979841061403170868058803439727902488257663283380758560833520292754317334533095935455303670970880305973635283129711800779105053920754985303927180821799963154240831684361963420254898898432345281033865783975178860499142082281177251859893231236013279794869600486690171610219529322186758783802919743815654743565761890440120630328067195101667858639958990199582568575237346442247608765469991861374085399752696056214823712019825701145328463368693659499897978270750632115244264455333351731701684701363618238702557293014190280473786449099856681932434866259767321518555099168668077597072740998998358196854834175290886082695830385506892155606134108865605394350494925503506203021494542550668011069686487879238696954761115860659145480572005147049068771277722705184272612764453838133281888346997485065890369872550568368962455912035487395517893303409442004264347171816758064422942980495697233806102270209634339153066152302736078703467629688782216171775533706529739385949417471885406014329271305815911124118848965623631443271192093554692751860019614674669777770875764916617538407609175600930066352071568931109350652898224419896159284097790518656592778732012987058860037725433498279423290349889389109895679732245311226708072997608336685456548970382427362774225580151305668264558360771754071036599145556710986735851526171766397957493927196794732537046530689523853071476173223430436978186014608807674740553911520751810764479168881448310575210429011365855708464761962183020065975816424719278680294570249244504081225691712335183060780847156621324753482389633817660430857696471488378027069195832361148216594752663752139793392222020038058401728997346524493757038943036452323270787052005022096649958892033703940338887717032364931906371209256708522873729499239383650573712803921552791587794261560196193076183218995996357734253568538161428026686883173095076111752823001951967703332921611859563259591556743814721957211891455552263787853108898914371375750177861788109431938963022243077693906590644391410182975606771056984462487378721225929576527414684011867866130612226154640807635155556793207635828675330984431923190617170293114365763325698964939798677218457243310906948319451228497733841731586590763673467400858917367875629550784531717430363128835347064793954431086678033836949770823930542766162248026524192640535817553769887846021207845876012538952087154085176998768351999319158737391698852745659940061671565816812387578307715989171008741291509176758503902501449422228975224517642667220376937867034563707041323110366312077608061320790829207293919761581853851394050435164567148774171342631435732905422686120229246258757220593415121074014445989653926311962277966141014104705253879244150421350890538986129420157103442405582663714999839585498669573386821692648776312352990422503406325379831119387826486137630262393782460003088301518483293432864125260211107020028916505883590805548694820884961783762393319429753842554867190855378810381579839667624644898922485608731287446979563394453327752313833823618268952834209921869644592483990757900619514580719275192461251942261407798185016493463734512670130141724213387619721871572227735980660599889009499921926847322849005688302251699404525073037544246947145783700439913848639031020435725068867329975135697523563446994051665718487380705536304004540221992912044789639515791088156596254305479230452030015717190964891033673248583019815997651000598867841987879406948071332149239484462354010901340969224226375717239752365934669216005059557726698959751225572910728494950667327602166893590815433276090134739965218277892376082295244291598118338940741155625318819085734244111047828200599296667446150695418208960686329281222980258505661737347151671699731785752071962221478107283409705982959597046120162017172391777375585275109114304347831345988945645925635813549780706753601943712524201464429550853201031795311474655378420546370132431211815274208756836663572970838953332769325382586891358101924149813499247696351292525495384022274343230806580493427241408386426167354212266844108003441125012675777950408386563192231061368745372246400985073058771006841543073798564029282713900188153036714738424693855421860311676190978869695295840377226357549474274091121847917485511216172667904397796910099287368833358872264564759482711793890738903734540987588606474975598606863683728196600367817225127944376880278335550878760481545262621066569761451438668735350984006821726693315035592631744933093942083718990176968359875095415627233899076802145188231862711473581363892540849492118704630943309489414082180251960211416035799758185423854129241422684420674780073020023718821865912519981264801911704891777245820060782326061736055327506578128636186379479539786171841031750948520079159804333495580770246781701333355187034243233245028530525216399095489067967282704064359565054093378569493433093721941885366269181999278181099629504921682377037488681990351973020476484738002977532775168332975247779171819737718801855186701510924093115280792874439709410807134608253830768319494296126744604871441853225404117002431457966112625717601901621065649290669355495405305319760463863769479904656518445263109148677248228453061674524252607645812023609492587921027959164241965028226422111217456662855727546106206215968634115865447626549512562321787960656984999434210284836020822969461504169009622775112078685488960487469554170050251363491992388051403465540479652969225063996523133552855136250870669647662014725567279935346688617647114740035982907257843284563232081156605015008756347600887251891761836022407696372876248631710097980714791673573599678486299262046498364277015173687874841053611730214480444545604702325759654543397106985168985256978846308334863165453043027930279563878047961532690148024142948787127698541311691963281625573533767454551440376928603783356322189460253602287677352872044900570752329438819317552048794767992382368209490956299606438965313367672435698365435925775702571041623836793747319314065030549217145801048528037542195291306120870695535717544464072105368769709212378519892833714841555777127323947050968694769974849626424918042815210550661578295260250493657150781315958624659228868368974412689583681717370022647370696200383554243626971716271691695038333050719625905343207033403111887538372327775082385909437701421140004490626185199280374535791699422767607743986935025530315792285268676408835112155207166029982920529324671786108750238152285180963659266643981652034677591452261263358460331992882889007464871026201990317473631204805667885358231743173521419729039189326179175013962986862071955575073489249939628133665465011304305032527989601491542540521407186124702839095952539259791180099456521431934566375518186912263400593248749186390008072222328966363243032961415163804474926043314825009779090479195304017206990815077799241094394974525004487448965832245856804854521823667404472757467925109917136400997075447977392043992862258272408074313221936969008269773217869623046499447741231631003225165808659018142860868138388551569557172412859639006019216675105037300887198632938799294908940977810552618797858625798428012382231215180305071604411121134074102851698215529320972910389579083680555562771296708826837091433178855152022837128465012911206558949413842216629094704396002763591093999121273269816424336472223718656613128776008097894770229332869944802940888683841745105145488379899789803243221670600788719314053755850204459244876702746217187354732372242951890237360565067034279353590691563387142524355258881165882619145137388770303383025344617306869755660227156779811972934627429986252563831323882654835650671255579348957949461461839281861603314515915022270051592303201757637375208872437690029951097652298947645130433184851325121928572242288056910924743741852015097113368123201987977472805843072563086059493206208397266756031944228359045837484255907232470685844021178462591853173073172823944624910263622153718724756295806520580581102550806585088606443322393367816954510817343409152727703843720391151103454652397462946931880984440447246635059959442795782831110202247443419103437732517124409383975946769168743598848629395796210570710096809629325108822439605587786011657073655738137685366247171353614215856558630151080295231930697533109098891845547483067361659612108667502035817750835166569885015325948569493315720096170980730297017649577453410867725797985865381293128802939252032094369485979076647303598792147155479819649107585740351858248229180091081410891212488786138600704769965210725603920267529051158556528226222713512654648910601065099454078765509346102035004505267874162783592036627171800759256010026699481359643401000640790981599855087202248102076999204329515702319855203964260861143917549177980516983926844450755750477758581716433343952964452790661283375830801624359512486592035809873498450372626709050579503555182299759797178982127552990516099821413588729143004933510724746312497306542226594866770036412759437448928050315221262536877757357966725506946459813917611392161187458776514371832853950093374498536913408158904542530464336689426080088027743067110675877330956243862021533288462808999628577060877196996453263959216611872244324401983548529001166566376257828013519958290575007078744958309857691199481266890618289468003413634345997976262574061844756517139409052604011523443214833785556519535984769290425718270651843641360657203664245037447974335406135555616061869570107961154146943810820927408005728217625379317042876006885341759447498013542787682186547734049463231267503335801884145684492296059046066626703283288634828936375293449346993136224410788730063119376353543565314761034856079680946850100721769501835948271380566804695021384240043194811686675205905888690290548905973602391287559428615269002474087332007620162872794331954607127723628243655971552842819655741007148996819028389670076317153197302456047230364645536860445649954014976479277845600501892569368338354498039243330647115404469069470802984107326616891526273036158943369221507303023199650087618695968904953317855297580256128976186146975101491793689130276062016287320606580831327605785275388366088403389459838527208247616016755305928730025286472281618295051939939039908153090450318386733797359759736699996250686491245023162382641083382630256483340734923661428777818299460821157406936488371434148048888183806070759863445556979704895099303384544860286102660456411089666196657984597822777808744129406472838186446184439398916307808874856462133806858421268125799061498189512294854091972408214911862482069684975883340683578905206392785522279088856424269416796882689222947486445129432579528388915268809574945536053194165567568450874998541881945796744883369909288994643571718441270017883228883875736753757617742199209810336553130461298990088807034764985426009148907713284971051198894204920430728092728533795007927886954215549367803092353282213682022542880013734863813096844599381320786875363799861343320107982358375710688933034852409749180276530343895758208751651732478199092734137274499703848291893170352310744188455770134085865381863182874447184363903533426107937235196189130693937982302454178692263478519716628924637048262786640490076099122132340986187522356296180158508970475161114383355918631186011898808968982478654346379296000845267501743213455172599978796252481265138686519422738322431863662042468624393593595235532062787547899787206406822366575126011984290839640830855646687880511020214408482111086755507376930399667962369002793185983517740238607241852358137210857743343241965611548430538992350821008357419732260520710781929343005365668301517009129973993099385159310516873846275131112241239666993490797386951538930343454106551205050729980718346687537293634810435104957134323716683029044947223247834683485673915214888976517543913936354030058347179568967332712616753176627508983524296882265532818545711055505245355806151912122218823105623844003151728556616738673303962274312383630412763208674322703113736945704791923408538327028086920252372798138616836818152580619538590557338705188301550853940738977574783662153778052173786103936200766534347346927705108229674646232861688054310405069491522420132329481953519724548044416699954466309999295125386289121178970288002376388974439418113518432158002144018483008490652641111484492700657122357674405989900575221093191834962373923408361489193379845808800878912654791975064227124363904972350164367150345409190298964357019191071375398659152697772449537210165243420570560692321223521764029466464514484882470357568105104042228291235200788771333875015550317686860756285489815590155359070227510645157277309707719195574005464044411088427955993649998204341804539230869480665851569710095565954441090858154506541084597798671651635872218467920432988382331668478439639424790835309227564946680117889265756786160958441841254767696311051450421619129041538332379759869196156404443997566408589297579348079805301814739346957655827599876779570362615802089280889715111029572409030966693691532304183227104600679421349900488448508931330763758514137955876302886909535514874806854796353772227007371729693453570207449052710866254116014442983527322711301243182181925053224954959505897120017304017582266324183995431443663757502170012220503695758093660314609977840880718702481659115573696097526065347901462491735916324648065281057317908687844414791694397086411570645494293140851303321493788832262015955566492433985665848953575509076866273332940732098545193387601429849802281220127146122729596436283267160656274965037940649552312864058102058120898852595244564996384606009446797765425214449282505911625474240426774336496753582563358894021726369856752475309046553465459741193218756218477190215989092310786352489318866577686741065984575339737829800851002338177518414483849239185095523013003509898405069880580045994448925280691643399333518188806267536789381808396010005273131218579859940053049816100237805702682097235247459938046343020732851511746115152075947485326088714082643449879485935469556153799330908386172499584244778045811542820641610771268957501186013566332388565856223663663314228174937363044819208409645239423770256866051093822933246608041200620695668116303406597195269334170889021291237316065035131638446227549465470541008443904442687751690985156161837719763322401209220256830781834350584552687473124148347093572112896608260790572882844491643626204635555878120189137487024655311458526974970288675363756369363900956035695569075286245627727113402520309496762212895112067925094692792835349787715266244816593010992369643235669146014782946222261303908986102288329951167765726511002816487338537008672196655257019949465525967518037115494297438473882226838748519990140535724675794706921661345665926274081506341224988661769585768321783269502456809041491081276885318260928961779005937478684328474696649204428037396039805387295496184574991407187156686887329737154276206285378590417730689617250781014419175272094209771839260682560534387834108085058982425684001264700153392771881358038827261806109883380011938952666527397199694731799532775729103960700260822766009095400045631616457376283112297896007374716460251861322370103379135913894787356961473356458787716227694396514450523130833127559826393949111327194877075530554982119618046969687176074015215031514030107534301614421675325364942016780149666508186696696332139311732012844145554969285657046785019400877029115353015943007586666522727608532111014657365451972325765347700663730548346264702627455588013336840451670919495442161091247294320753626683136831506284945549388074749209036938196627512619359998053983373049850982920700538960607794618473296033355955378614707250543735999901163600229059579717918803569643450103818209691995424188260579771119818816403213007569504532736519331122662315823755605869543496522127397323476867393692978695372810608283092792507147242416048958945372469877439933278709656488010084017112559026060704234614213541361656147127279735043387146617258310856633405263205668437281120947126980296111415458985494274776655644580120494053215451930210339276652334525826305582071086342401839694510225602006820946242094329691791728234082485746704238289086168612989889378148188144151468783727935864949839866346164930682516198748678707262672845065871657032612505629783082709060462680532875563982193425273592281692814335838037408229902271709341934435091030146277419438475588272481403937813263902110468103538043777521565728745692731191328350643885913846826832856941116366475327015668577804144282485915899228297344862468766184114146523887242202195769302151335518467240287042072115989209996342091977463906082685231036679309395368373242855203468707992728879959704020901202011167250631456495885658380888552342934651365957903004807394762764897317082652298552156478803285217831707946906928812264857762220831705356845282903916763838771096664903266726516985314953301301130208746782952319472728892398019611228265631400869761073027420924511467235777135158631266673714817713190698031273214479470805648999781543656162322076386027565990061078284166193493534483256140338279846245855070254258570309250188024577034955564952114275516420457173016734375360024582796523500752675727023694176989122287941839356657107915072357431784277425563749134876290044469662360141312365981246830217597759566668820185454796729012467338660651518548279326487224495494798333780997876001293128125180758155941483230696997474820470668546720957088234805856973417552112324609055061022325484560236306063369982326681216957965431117895579987651086255356904091561439518058982648530988201642516881057542175521644119395868746940735488484986988326632264034664544236277225647228604638276594777523359255557408283871107707472317300418659380241187467518892097571028103469032722581400867545975928120799356233796083740068104094343007315450235456889938113311225608805307068114416246647707556039662837541155747474952224651180474554131187077300490870253023770771482258196702877116776997523829970363632388486963158631117622329873779238468047416745831799561534877227869820907578343417958775580658959904859683025795038546547210435187323586275034868688746977106438884070460696560076380980399189096854085482697211015441676014115113381597787972472643714639507831542692623200510296778844064929341239613860646531629154032123393162335699696533470312795396944451162990918826810887048093334509667056982460010399704922694449651810777004712435270986182430240195568048115849185172034241227819881846242553444751737462338168326756425942771956220132689603648541275715196655873779251813465485502113767237837493117436610137270450443893196038486375637321860378038503692465543369374206560058760224572969788170718307620951497904302080577813446816490510950556019818171621802518528015258845191938097512273308921112412566184971994980452510675525858767336814569474055217340680747653235998722643072361724023849137945445737066117888660167858541406618477964176430344268220005373352962069028162120252060744971161505238704826071349967958662047726431786073117004273673818090898444751918825071821484964921420770400136377967551449920036471282646451065743920245775285032208340167147629395792201299404786850055232887156101978600204569219735823443586049905436134896770010298221893001293004692628161968031830470680211207161985657550853478276465055297829997118834756039778906803139491979627424999086581088876610545649257867595343979433829127540146666480915293312714377807614070198927565004020048774933071964956772381442196706222979393952817270611142530239134009074568626207889380738623924255879665208333050465006434094275753374275896013927133969054609183021548154197337356882320337494396789151187285540823585133963129868087723080026640810276316870224808692479291446230058631055661810376806300022125569017106011486262161755689312542546315943905289506627112017587134066354858043198337550893173683083789007672749925092983367209552754295682739857909553074941608992204265223521167255346621002464200547224150089098050923421837195615555643914877842701384543981821469276554576507295760733111267711898832393633028781942556710550173185938371755785118894934829752996560498090110490398511457460164592376611883667004049596276621170253874050491650737461545990691908796817696075161058603308839158721266273424587746717165809169670155576143507899052608930688065897012149816090125029866691629530171155418663121479842339260096044040450107660170198963455596280470284930702912302938247819788101319203067550245932145668376691984870998843778835015986825685820430844214840295761956663249270610599179280413869049022542121465370270204175349249253410137415803127827338953863273515483149591605188346202758360328420935787373411498590641277082467277708338295164013165948425105635478457801498235958623835597591789223540961435439507934162077810403793218044178295484656400126689078029848015451778434290045198517944165505421364726535108804820535660976514651627210041292914255461219262589817573365736490168040850850962730297843517565176866737820098803521582151207442982299151486714879347240562447491275301346028850783019971412438586538726364377182018241282558284133073408662366946121959146334502517699467896374534839561152174590472695751290989897939695553381252221085803708289839957028491355658649876360511782834443494274093934567702185718022446623770596077389892274414803019561356392673596922915579991495628493450100579980781598971747415210374762272984466248494529576268524751504461450689795335634499786301650622685348826496433475452262132685466115589451129460835672852800789532721835149685192330957719789493424172135287629077431953556812805589536021881870541953978506237570706804600588682930973855750976709064723639720539284658717496091263276574659144747444755675050754253663677132545419534631397491456138630610871728969324069833430557181389387979615729173512717831116549298611155430235129251330263991107216172193729176053281038624829755406658877258629982454810127057868635637858166470424359902686273510192941387178285709878835228546361974297819846068358983458519678754287975123350882091248336258960178257735771172331175143438841497101177875663124379237893209199138985959579200207742069517546593389237441296881876824643940517904429387829692934505670143713278507765295616030015460280961612229355843478468135308104318249812432125682783086605050121910525766023533535140560468184165292728038828390121804202036711558478043740843847910387954778560622820430736370623594469733466080115700145917833925566779447295270966208807110221640300589969808262029017737740068092880768847674337089774569249670903077171342164717303357455916276128951881573915130340553550674422530205167380282015205194980416120201341201220868796931507524084527127114463263397335030803891992642364406021245946071079243696306058584711778319545372020951534711385091153495949667478728045877137865028107756271501068734242714336004112020782760241765920878694209096511638132710200147437898648206707665995504407479974764341384680779058342525221129544712098891826162397648872854324444042080015116883519486131264225912208943444984232404307860080898859718101691422593135890195589090818176551521540095035661158627415778376924033936277661930835317246650204861872428744847824423797193132123847469930343295527689302140271139143071217601951731622257551809515731293273623749432486472042006182678809706300029655803558262689721403149494273028807994225656090736799935107390362578139227323425640059343386763472164517446044723828759296137322945919868287806988917241267006485404411962381447471018965513439377682718701257429624537024849007905038820873719874779945422370118626560494020171530010709213921526746140243604344710896086401952800399801720162056799507226229878414651849484405254770236728918361931100408364443936318093771246352261406965082154963331351963035223516138911368327504238929264020810428042866281863455600926146063423565527935841480698843604172823892786188405619821001421143485885358716086512898423239824393387935779619440627949436649791028546781073389371018192566923526709424941781329140305790858588159865716930345453340413966898658268025531579925018479378105564851040269851005260187814130226899853940733836660351686249111612172771081173015250779020763496402523668646237387886936651555164529583901977040930060962406966093539806966411447373691621049212157371247718518877457629769302169952909439373328615799863733990709219636671721004031933066728832871518808223487938787892616913934825276682161932464639520046543898776448803872813491820116621795324717392627513778108065041969930516548935675905881799317475329043828010843422881785340838901590079000657989756550553056842138448574522858883064768967846039842083225162686052322333829894540267428961346826357383895715535987271627816393344268470199002318301648198965933842783772916876152353272064805706190180018467572490644013501474417133595825289196901929448461011074930680602363578987192789852904942986412699773019116394507091191125223222638120349144950571737325772915642268625204832957936472958125553555051845957516990109027523162845859730146732398583705830425576631850413771152861206439718252079923374738496232415279042140283629260292685958686548464739860762195713776506518925167240757994700826226532356126455994274081732929805176617754685593954179645749647416935222415458661819078314553890600649352784651289690204928826972370570285504493151076463871406527555661775945321701127404581496739426179724870601377026016200961965099052162667451851167044969966637400201954228914295748450903710296328600106407537060885170234408393030767818970675060965184023465417611422629601127010330715166750911390671334328946091100512266078855752451594268564024735876245407513947074279989113731519616429110623948598332851562882378188296365535903068913558493044109202296840433922471464364418646365618706127032037947564145216137973027104699728506831482387055979260346657679315216318394996665799728669653390184267319138964043738610610186823906651085666126238983237667240695660118434711054664844360237747963140536249611773993643809558839355249451990053160360278104690534757104484499819442986592288644877512367436977115496527489274178706898501007011001232222474230084626863136591240315345868241120246788426597386881021494541106722294683459555381471472320283286416805653001025550645651760954374232114892698943274123035134659675493408822205024449205624765920011310791917387035465471377812221355080367048193618009999879093872376320236272143893856072973414867492274009460025411252553596034969753036563829092402351542419936215628764404775640877811511209455345416750677678416670515305238900859174275463397246225161090403738324980276371171774423755095391298917725856456983102321060767926738291383691116535395417529732849908987781083711252240845900543675086027069693008228251441358291512828786988120362364801320331423090478506176349865774522599008051052403967879211869066135518778212865828972971825296592838175180665765903628862726548445549438605152819296003355096106429908253443138312734140870739064682304077865529231200060075920402391786250240736026181879294856699763699093860554643169709138735747282135199210443612280887025783630500413420525460147947084891162559294293849853367010234423119583344187938663723353332185291797917477245871426645610603248036843237666449995802539786333152087766852750150212567333059520245734834192617494852461847777718409319962723231236957059203075966438706338392039271283456257168532571613515610287494119399142958083450740017293670864448854704542656147434292346007210623145371649474932402374728775475734190362323357866870856328076967772105672244574691064226067802409297130830565676374845216908158926018403014511412158294993414782682566219668798255758508555207368188225412562037338915447376506233133563351195900605975289591278958082476410140757132970155383358321526045193667999473869793373485773407762492574622219019013275476759451332246621433770732040921582081803368840639593614767977771699326465742148771379060256112008867043779940743728538293787746282281861667025997961017938789284770115162219515205234370088374521937101415798681923612112907962261576456574061484679295598435114432829136240517488192325012910533856887098234491495677793797604142692727157574108581105532383743415329467277101013190116810367525220794378910604362637168547359925980969616753073164123623309673398576697277741838785448028692093552139231992399649655952640133651680719507564372335979791532644875311131526663133722258034202424903778895133928398244627290480205815619869355385500143665143924218980281535108598423188962942334757143814731510265366656368708689604964043792624715821015555977411822960890265226218638829955359929571554911736346447169159435450613341934690240664232885826202041763632863931290883911766526439977213481451048606926591863407756736849372839744004192414104668159330217440215825190197219083455496838771992016735856251616789810035575250819408073874420083948726305255080966970531830790005068560132356570977219341502869235639958070866445305544439392079852835207342156389628939683560167307000694017284803901474108844343906642161931341005355678391869957369772814945748296802398903882539814656851930873762591836620016261719181681268843015462973832533650530222772623621456938648943594756295004576825888241879162754887318207135270990075010051019695132423098873724607068421769861557104387136925131070892156396856105253264070985599830130140267831864550677440021291743885930361857161470548762054465676988943162903722242041666258607028768057591420133927727077278328189566059925688446397779038566285532415742153952509311624492705916104812712780474076524867752000010409844115000169087207833558324399801757446933951632235734251000846978112059207073966549681968044510653382342104691764558669557628202110286841483224918713080202706724753472281128962136517080422299659741568985223205475865675567388848379779257850251024555539704527765182193902150350717815938714610095246149355254642377176720077419667028337696143516055105731489792885878758235500469310957339232710699307292247048339241385834365451328496577199136450274519166947621923322390032145780042382216329095854573562980616743807086760259033669450078990671450461475202048593488427628408960745955443151585036897218526873831822649207818154143476799392430940143957591352338568886051136589046043726137587674554136997398241260652850715316250192742839086281647361941446234209453438057033198213232657262355766172997717761295408879504316855841861586301676701252486582517775420449350474447874363661760853945011067359085239385557714820432095370832127263771789249954735994826541748779282124574909019072127429814481759199272929164233844555056474962983096105631116599280376988066104100073723923150712567408723217203217205916413548816094448976231793292866637388001444117667407580606979412856161580545971811145860521674700002918216807672074294409469241199058040967587421051138767101543966117459050865380692118065865468183117089777026373434884325462635103824686358023831931410923501040407027870818915910462753350600086433579226931108599082936127672308745059011855980501201042290546392325851058785237850974854309452051865078406764037996293082849611193826158424340984586922664673059362055647562656010706472559912638468978901558534714665106895277109131415970939728019553665716752897439200324883955174263419176922630648448204509423145545844225974999147326278326646702663660674963460048962430296680999519922119892801203856993526394350919814113246366157924199215808385409464398963664355665239231943468337502107189901823011420862718482288198310487189229959900023055299852259606149270607148428478529619276864826296401611479177875608637956916468307018435346690631086140754402005533899795348779966053994501543556038973112399283797986052540535724809202370585283466614218021879255892591440037693980703210796735296012658366485397980015334533004425548860373656124792339004214365870279857012664372515644959932993316504746923529736557491087096829148851864067329796652395663108466948112086372780592185535695201018507462887988140741678540904580444671242252283302481325331974288452539792349368779688402757980310947092960349306783659176728459575874340538598959104511539694332670877137131683212750877856800732691498918881463839646068685561401144248580247688642577330794405966908276013180956996169483092180783643444891967444984933342396943434293570315193627952512991382824760102181972228231298586643670610042120099578417411968938849180062642818238771265290489191687614307898357230507481404437014975543359866058431674232737421856902741830758941739123543999263167940037252244250249881626437965759511915219949006150568646651668167741391232275722910296819935664069148768517541403302627930478721724929530559036851510403658619641092305731335058179862838467975940593594777546645822274297991389862040301411316845498596935136069216901678651693840410104843019995256663653106058294753826221647402125251656430648824374316263603158733503801531492123443557162396220932555147970441898978071963099209379863749558553929624008521327013339531873965705926498257211731486296218992166077449507816178258146295905446253646007207501847346175926064130170141932398997407855076197166499701582764510967761103676184610718966775454298543762996291683723254390482666561995958245492639755637246072050006348059287307753943786722301089957535176927736497127690557694770592316499523239550207293482206299902750212206639783305851762578099154173100469071825248058315521533940273174174443774533179868298741577487916153091001323512885829593355867682119258257525949503332950602212820610062641352301138843037702465271336855745846707885256188748433133729671544020958632332889584408862631669766255869951999669040860202761819212657085460112835694567594074486399374623639520301390804710271803686362320214504357565840329559358544669991473391936583280407165029218589120514218945774872911410426243030747364692424642057215022438824218673307266865657927318478780474953645238780648600027260140687390828013057954580750842314167260584612623025851136763476349948131725408860201988803945499566664304737093122590766307745479138491897639335568075775096388052304777382297472854214576066490323305946400756731877143051860502339948388938131525679759622947833067636953483745851480505105365660271845762072392630635280916245866859914075161478509181420539007348370152912028559730616364618831903124246360663952605345402278603622513001659690123694765233595842427022840299898398603329751183335155187989046122335994792665293641977621975058290137121443760364370829319743546692564829500093559865192054250491048906977164435703821858253163119402836405148268072567602174355895803451485002744049205027210884441248446897464467736090462135790212976365037442935348569300824240000559203274225447030525825953238579554297809909630000743284033372921295240236744649355311869588999699822687440039302740815255550186315291844396356724936035522008074568944453053689727823353575811091434086955516273955759534748353499586495961654783307813680530197847362915889533132797027727615419384209026520101098939257798773233066581469360773016593667518348983886990608575014896585548810313810762764922513183412465358520800591632191117325735494538270875739281094776457091659101214601568473772770610141070020359096135828033227433911503220545011882975568928835812137029037663994905999051178155852928162947499061274932567387645460064592308592972595021205573861561028940852723869061329938856877021731952745652131492730591542474809277031915810144342963254091226366075350278665500603107767382316575412198541095771036633938203554772641198628102003908313852506876425908200432258940277205736659548557114387425283178429813884013988255296271903975207218941074788931766058042585524270590684186963469101269063702705728766414067605691715514275266703024060077761879020367716179102397165288124096582702344758874444279491520162019284211594424581803934738047015659287338240587167255301699004507754837836120754932917606066562840318704930216828908318343297519347649233134464788228532441472650523686185674915362460189739065041309018806871314947919530397318678153059503785347899107330099514064610875132045887430125762481902060261582950893063876299729638586349955923396152801301155244107331190802512693936383200877029384784842137612295090523039021858693248942102457237109116327833412591800792084386414142139831684728569445293565538068808213195759159283637288291780631096011840250870281203070715743252786902154407143619924488430438061163866491313176422034985023387903400955967753760250251649772685993825273475739249044026635278098514811003765725483976305724762359346386843646148033337568612872769902924037319490064480390273769497669883695931174091839368223828745413838242882894348049154479470940555398482340770417519198774711964680601930029818771925310420649937973892686712328915342153377816078584000750535547155030514482807565495676356742231467840419725589928150273912598008890439132652939738561112891271520461812888816639184978695385662131188807513403865096642566292565589135751945527934158315841110124171790237407250718184168853885455363395368791529779699114795267347169513189878863901503535397738502525153510500017740110973246710199776792746084124340642087466272636538850777354820182420300275027932048900722151720022150330833085508880574846429832667863640210861019974740093470092846393991334399989704100714585854324866986143880750547701432009960727812534399459848314284399612183479806663568816894328143909469232899006461017575366472163902253585009470155817674936681614998967672811386717070196991134428871673059793027802936858017172179845732483548453657420760750367934411699495878727854336064500937411413899322466790428718621341017027201352098751913635651723688972334493882358136414981486145359068478309328188609132177935839008619836367032133514874733732076625433444803747107880544752395053214512865801102316151937376105025799361945107490328542874456228356234898645759288732792788862724974242500007222855715444505475683331111809369696414175060316446044801410075302806173864884963313130194314820785491928638302803221994824540497013120033569956317736775119933972535184804008852503102959450368868509253171674625382917260762910202388166568399069977298983784405778478868235379621560910021588984308422668983792276736694944620859274712622999442237397635323129787716189759642356965426735179061961781350211327214273723893865792582053399322518449990044814365147885591085150208889308353204729821907376355572732020835396335362312877416590068613796544584955234585808523084263912551109920659326317289163355118016840260475896816104311703358435825468064693227508613566835282348949057795926818293504631834562532618354802990280764037625208876299277279661273531640848730740086349513852080139457779237471686556998904559988510641442510331159961524336000754001949896455891785346318942689093755653562598141214641974614494173411508885073647624850979084612726625470069453692538485018695171134836426945635887139010604942595773530649764339142771932762291633962646373002576040364716100516637509461260202381778789752372701139112829860716071771631824776923270997218447009345622790188706206464868255345818674875701273622968952804882266950951958749084233910020910853249455604129834155740481901835281406906931986764988594745658941217988515484688257835419245467116070601158265348324546667440971225079473074661873325156107277135444312620881854869780741842010218299749102398275277296174346451157111864405942556592800777589379912984446472211033460352053084432994126539955129817566654498256368666363765947170097354048241840663527939178859551490546154730590170951813495246587017236235891193080019996218172637312728898884390757216622804079089758080796471266683563682695816035560410104941609548496823983614901828030740164042727153876174720838466361426940994038048604890154202984686675422349289632587223632881064583011354387961755668571953547971992098563350128039348838707886661529173201305689174317641871859585690172780114419465250117832429539446916764005077178533297506168809964251311726251991119641159812184711648707094399319443583413911221635701536956007415195136131639068720186733334911768222155074691040496605656724226376369674010041836032171956343798462672619473125278922156439510857856872694052629052438700383473386540188772910206152363709173389994899095646222933861615934315698969128657117619175573144337200039327932479746402091724293024936533791494975192697301799718481320757075315179508590879267097854629612040623912319067798749430783442040570320996178936678504823847668354725427502562166742144442824430824017054633118892505851096345008392030182014085316184844548453379504582264628700948857642495520328316128346566865284571379666411910963790326869948832481575966864265542366157595260544985552767776384263426888094022049760646745189556079898323713216183885061350069964028109452373266185838391132661551040715485537099489327406031268058033256281706011155542686256092202184093893523200295767972527371457783603360301806583659613061996898460542716363965915819843390528407769170775119561304898214674074218840695180771108844337627993129093555258579616864559596166413159870325391525454186781768436760536281710851634925335299778813080954484691414831263157989218852722878859822696439865967594427045875487482348459356097774609475908816155405925555035234184107862570205830080473145960274329825901994580602971114540642248053327009953576489650355482329435399490316926351711725225216585937858124990834253713513026597423676720271141615764095407333745783776656951716740388191705227984411930580812212884330084093527916076660736579704362175823558606475181962801590296102097869653540599451000977563364111569167598390307977124427741551093124755870819993248155434501031746397774195597753695545973890518380739607825826428305878720186236089284582193416732318871613101426201727757180133481168711614636981103545557613393093921269168608729631268727161115624823331144050560462095271457316768675121226936427093894409911046684664913107426771205486580156894747581344797416611951896505789968521155750178003876620131472770023052444934876949836754144823337591143422932946780377552346560244494556892872419506981139815596381947387658062422921617083197248900417179164713466257246085835232620188152971888379135276293363710315081852282484121020569878946269019432600186148578798475556945668029975513978956760069110274093064203227286450383773720625078517699358625672462915509519366034134088646452416047442804697147137021336497010590148605697942186562871897524737880359086258714536138112660104735404638388685185800106939022166287520007602517954701775745413832941015772373571106930707283185294390115950697490813128346588254491863112046454024612002539878686099020587999934540353168179857007227317710876533623837858322216705880842067141701326098740191936657749638278677022373394321234337898586457883845405433422808916581011379967558308114243268271539965029590190375561200046706960994802767441161690376097218553176791557082472567326006021094311636318455388850997485428592506284832864264131136615522341591599413479431665053504377597015380496476666585843057099904939703877806517001602576797004542307831411494652118125646928903291370799238969055874100255887264041652856860202187776861374501103738450017319436239170074550390414229477603969644621598232024489733374098123130307204387190983106115703239086043079223939432215038335136614070604470579479466712743098554065809593864745566531822959339917948337452990695108436643689277963770356548301814049214618980191678886672183410991086883733152485809448664600907766741318155559496500938464224820492184566043787494107797176959312214532301786108181486496454089939767803121681782149160741625742572599909865860323426549789362523678545970002121919056330619966706935560672137564922585096810303210539750964079003268485228957306307473562783508313349756976867744865245334713985616445940624827460399676560701304931477384994136068389227748492511206574105590960608372114470590553530226679020098220366079881799236804005261967559528069606403811581721883717585254305269888550805171982778056624805752955333518421739118884183250391298424292121107006289602712787588847022859264394436989903806918522535932506187427165698699450813483559223877867963686678334705984721419609444347164129215726024059910492091432614797322495206575731616235793173678699073691017605718222949448863915234940054245903534355530314604979247648360385188776878621099682416817833143593003646930446332110646007685232008943661843006418219784973716894784200962897665348535115776577930501050706435058249964527752834766682330436761423191396178035143128267243170810942207235572471047919450919472593463784782476581855890888042068560050838554848665191979247092957052742022245308007883322061628003548414016544238411950108812240328085917184579488415615863069074936206845728298448209525259539500510719595547866060169067576961317637306191120393824700247131149449926875123483798890090801926908249338486981401020502480593887338459256720316668799195584417467209681086489852715502394319957826935137882577691931665345086102168593580000226388802416588951131826769836273397161570795295962375773602335761152808767616078925436315869310811520080391398029559841092152406995074111423469858192210158062380358835330129295455687008441538332673368797245489084449302092784802861885466352465020908948051264855497619795649181131321432131268983608446643286930745318442411375311261572730070691580347158874014226323367881248654702083926709818997360399467353958436751224200235359723930533971758320076177671306501271842614336512473553963808184408057309955809507466925031483677480448979979121508090950270508800738885346879470424520223305820884840843989111096586048384954629715070513316225193929616523706148676339491362937424698910534978379522035419119297785923401010146365380786902952499934515260930376876549858439354983850124548745982132455511369870262646749801020818848450269577220810975572339946480406498461764473589540024187747161897502963746683458011667072339034179327918437472473501937642406812647132315916340725985340401305894749605778562368518095523132131294649597872382887798578219257313169688398159628433336757972603710398253682088501201655957703182007947030217952498172227683650528612832951380987834388185290889035948462913876229431314608462138280650375354524334576919309638181098947528023047093848007973192559234628287772702817356928635279898364014759826040518857508601476639358020334437168586694708036682928018041848438747448318740445697015734186005653988295852274890343303072244197948777648997717635353137262119470080546359770710844359989320045816363269906781776744283471742846039356924987250919296671918219333994394364364877764872630180654718999222044374232369348262703625308043328291841396045908904223103770543659816994184247918005878178931243682815126218724543212410999022717351643756968902304169124232053551509492496847867731823192649176373445311858783083901683491284203377837892643615130107522565897702564194315656881990470332612049077592655225321671926588542616814486766578842981609340965960425376077970249570680109604808278446224958685813248877165737101788884094937169580616282182648557389493852836971098611697432830334462190080907995600475146367671692030678871826942511065180016673922287998195858864762209157067347581073919247558867022744260739848229471681436561660477989275847517534249770172571678705445147426760281020798246799576690520664051953326218081700671354596858172368116774796209948660874796068897510182439032776180911232447582367289126460433230531912052801789556808396053596381129899256051589048318977326655340205628139483297996538264997566273126993029581896978071427627187623176059860016736320935056835729804787014011820951583168183520699651604423217274963033634364298398109490259347681993347466476114618789942768667274573641788600913584319516573945781214597164819076025358433391419394487179273046666288396290913254122184996982827683017404446786983429192888894025320873803474560966746026784077898070274239571478161256996867924756349021370073949983916208800290266489873677454079648943301012010919318158796004808960511576046860429705877288582942772289578465183784879838601423222400981845646062713580256441767592937545986891892675467677199515239451807873926020111076017039285525367679982238555326847263802794373704095206307539231213856145277028921154626738937535846382169441172242689568366429281222989799130619030039289735268372600403631592307398785311508459006750251518859045429794155048562858971962792652905567478708142518011069647986260468428582231058060652909840215266712341587259054657591669104120528521542694662196087924591325381675923614613058865007318112940047178773353493354640778309217225571619370739258205834124556873970662848653224226792198934891809674295209840836645608332566803679457615450816688760237270229111731293500546607929885716445965702085752317202995634333305084034252377969538621753660400685072137272112064683265444981491525507381311080131400981729153415889673064090986129770108335137779142489767862541458324036638971873513941517539826334835513024483886984347044281813330131655024969584614115335192425048212610415914543629802238171377530549427236641995126635720891705609907308657742506081650304335822027470627326398061704138026359182032802503571247339292961304728278323900194218201736073545791301581542830799776878126696122139290181537570600948780226559219001443920487252841408047510910742253386739481528642074292165117898223648723421886648553544859735386610945661448573216394562147183297940617072355583679422932589972834737988824820374916398573565034023146859488714258137729618621067578305524886224863140709340305795656738888314309768181420546179873435990481584607775826678625954822656797309316107349850929310870911389256329003266977818247613636031429507230257620537931151049717898667501681422499585160606123402278743256290324561688672828877316348412609069748454102511335197735263533509177443281114655032585299921390671549210061291173465013836871289789436981168761633912633649038678149457408436207240829531160710325770838822510333220212594521052342810505948601979049111561006333585037200739438439143993767671875631369969767530458230306795557962141610569934222440700726543797733010896467909578796062235794563980843609380490630695576178822104119324904707794125968588259564542953802202003328262908957733485795640897048601486005790523255337086484409855181571297670569588058114483626300165370604000166669580180760520491133495291803621988019212411034494175491096782538277997496059023351065990803853485685256865714199900583827028709709016198227488396493968623509459976301459559668254708578364552762839029198624973275195504696257229438638245349253780636752210315047452458610301009382487030191357337566337392033974313000748496761247981500754463621398016361814633928661410179527358422373493057356202995764197686929036129766317842034800653784661628790245180327332761227629391357096481562233404414836212689620132578017205554179067397123912216494133864977944998254614657995715748729863463299270258279914091324307337695667178594298209984219640506384314143365639119153006420129965523003335295109415738006257759169036131494582237964048765495293031087393529383081087679382882043644930191465591748999493059964124577186495563036277062233211291939865872496483595402092459141667419808156362450244598686715835515177474787356560630391882028006562059569145637797958323590851849740699932808674293055957363391083505436418149815500475688595302694491692886065925377665053308366435950250703599287447420804917080446855301490519190214229731956116688846522546165900064512988318440904117791920105118759456693269019245679889828538265929173259427016570529515182087786350546349111504911556790622673967794197835401186372016314361840249736711247523205433618990726207159490917863612992265703857295848790722622010888981561160839613359977360333900606688461587495702676228540789240335544904465589319550216451684301152949609041602927101635998752028047669887882133955304112278579615760161493652631987463769089222841355555637379872068860649008631993473742575695240300464032022505038595049848861441446313481956321926002960043852342918261047430319985680904784928194930597798144517522009863531669484152794563670245110468768595127788871966101363000037617410887208750836321159930051141551696262507358839457045101221218903383918776758385102191399280757437022862127845687810455730687651920591850351130806787619006483210426168596214461216592259585851390156510453905372767353192012293800965716055756262864340625800025478327097154298657797839980959624280288085498890927563513328313492483748591231143471041369433684996395726116313699909375449507670492436672835746761325548395828170704171017864783810254545930352902556017330884312007611837809221618398786663000275888342872732910410331277622013455398081202828485647458880214529045959041032855845112579836282509665444876028834654954784107074206906400853098512645829677867504419509086307706731100825258124382537610462230311734880831092134536425753114045649508905280045543081380488269769492158073382314838562851615439985941344543501629271551772976350479566073421094806991707030124098865957019412456876634118249512416702586066947815588509513000015533204249151546736281280043778288160601883544697744403818895780288738295702837542296155419234460608547571432112270698549777051157515073236439721955331200626355046095702989085008516576251146908875616286022501554099972300705994530708121451900117414460694883626220391042058176818972279101733610592908280969764006282753618476251950062662914973188159365815438119857324448602410279542610531084829248354404980704077765397852660466254368801836412182765981041174324986954334859871331454689478922474217407775426461723372552918236287527735329327847402419918386739900375379474163583551980351789668315458443656499325679282531526033560536118316628368988161917401212223242730930810437857141749485728692620177307963202466524027113431719815465413805057706262158862775719305682446875092759637582748645876756582669586259810244264234020869429972019578736512228999726183050374518563856744777778677178848537047826794326698761273854009586618801545655807657092013760148697457362296106055278713343396418880633970991587226481121114273541310776541690425179877126767588283412267915216792284715059496228644461613470533357737028325849293769288691154577434312999690442149149386049433818182597952915322842337799917618935880802724574858024310150856951447889410205620491815954471667435101731764778577844395841419630215945796124325934149845153954692398575700978763493749088243838711290419701610236483938145774959257023579507993472975513344671178671851302601395549825347299833887754372215400415932425210707246685593076023548337803162573483857736832647820038736613829906279773815677539241472721374525692065425588636666235786155517417472458881464609993404754673828846275025636584500716369509741617470159846188658857225740702495059348428167613953648862324097130757052039580854879005085788534783426151679764384581040943034315313539846479481500996507310623259572794619977717228455233184188922174786387928032950388915469533872708285655679509490460091599555522243608503509488084569395748474198673346939857597849279322158240575061316480166681330579499649573452684257860113482818610286768934929650026379870668094638254560076497792882181505014192127548101011663795419126978633778257112775497455308955992833199776934923986186676191494745857544779559765802899230784934272843945775416647775113196172111296776047347263006197194148215672875642478137154985315512171703066220223207943694893607174625965081954368763550464611799901848132332614982357612723427111624603847396458828532499352320151199834126142333369748477063064324743682224186615050756477109503056489764335525652345900494767702192962705093193517608642419316980795432951336688643159987334198092501766280711652009047846574795559281198869839220893033039154667254662418447048393812320636895338466648806405471116347141477948374244146422647560821666029819527085709860166294697364231222495603023008494358128643223602910687175166766974090089016066918764046269953834705343331234575152480455482014459252391420462235052732552805639833969344325352889088191339408698857753105095466287168017247875729434749478832318206941738904594145287598415620234464948378316214160262778990361012710621947990268297670995178082284769758206263780112205897454065427640337285494765619649110703887050323454625561233786552915742124408482679673442208120285388174446972543851548757266821102748082121756067329068303003883285800619044288943080519413213756431371914260186654502662365384821910396938552845336703648394806961709281631098185871400724882657839686205086607853628031021588396583366297724195266093843357700617753199457359012331320197212800790403010000342723586396815401937766954793278225262035804459432668848713506891807770232898565173819289171219612776533322056617100078651492491126887017382668346170674148648170849131215651968289273045038854817014812951295628274045057546112768322506984897967237692340161293815136877129873877743452672423564190289786576243813425030351898297616479360950623761232136632175640456541720069954405465831646680357218898100128248358332937914255706190953170861470137031599944459214596157214601925581074997491193239761606613909834056654560132974946406298282826381123948014053679194640489829417369789070979452521491203975528961319562052138351291473228402227995071032920273313547568100999317440328957280690172101668260154224192776483566584512066662745064682502119825247755917514652006582405823532387421781360954756792288359467284125223927839984681716370553021738465768720690004319918286551631002426941397968572690876615528230785708135943046332568523801238322252710538967236121215448911623063656544460960423869250508148552308267005438639894561659455441038787450502249109043152770805585332732831233180439374183977295882120063479024104798066747578003610847761894679273339651686111173083626290440548762804286451874578284763463655539234525263328946209270455896906467905294533982926071335096120979095948677037548380684780561606255981278197984693585025953180649807866179796889129931412440239045826404730127606819221865911484016397608076859648007223546864836787021441470750511291555961235049583932132248137605138922410819277268491612335230406746980777846409006199309012830120879195488992005751800193818019900178296691539842025685640313331990289094847081950977698468460204355888044833204177165620600745142656345235812659695474663791770846727098061433357303584712470030505345619777022405763541174763809515749908826858221342329889993548031208578770816816522157232644964545392048255732552200320342728956168030771254936405362154681907074999151213371033795945391295775780952377581789350649461896814463367231333903984003577236636636814340263235619401977938728832637920000543245669825093108559680757225434272601482625685211505216942817341945140159317647482785300136433580212895481204541487370518861930770183086346417882570101451371001974091804140592109750177554955118507912319615146359205044207004379081295878595411459035754087163379277190495818122473316575953096330307023244714456118842605302125248832830846924434305869243417822395141056126051590755683103308984871931277918668947400119971196456947666379071915645663517451436807517772337823654389007055552498270973554075975872563390371575924721398642601520604410482036847515321574337784580736642767365759134659246776818738879346694176245592099289736187551615733850316801070540510484223143022224517097595028140215106443463954677792954453425506117160452825190583183095729522271666196928663783407999762627256150040626266208250360537269755677721122761342779926646277567272196953158424773486845464569564591333701561464048090964721956612089519204319429572762984123863920245033382696724439343572368991126859875033828724393291136658071431515758809995803521359775960737753355900473507879625918716501995221102550199451483370443668304764951945477780676431900290943213697673763722707435812495144884070550295702840544150299154032696949843026973947507059104397718373442262385988524489240225039810283528074514052576857533587585490417239135937995564352236821474893233134403319194798693190443175249684007909575294206447404836539390316470741230050981652008750714521125321225751967896289824657876130069703178208907369736658276983575500717902843364944636079975414930908956345192712389554717986207755849727576300385107830368448736443459126009211454437866668960989452913545018975957188149430182284847485006581488217137088723285222753725652900814932982049110439116549563740930360475575703519905452588939930527117772366967326465079861637937483602645235874064337086367432580588184045568678468100241304760925307879953068859666057596191939236098259883349192510313447287446247022755092790975238934821485537371250008866812134957790957909444903208681907220343355858041760366775947376982300857200107364109257643020771570434462700448281630131006582812361183909516715617660881870947592987017387634787390438374800578983784405701885274085884596877188902260760529349341761692619234627479968485843647792538248477185046282847541316986105326045786448274276278391190382351385544401700850510263035227786423100271944913988224628090753041933021650915621782660862505977334252980155194370149276152336326680294552871952206607833293253349154918955431315492427848009774672749644793595894441940312380715436352051357712631503690385237640446552991009481536685961966674645844283262298934883958421075888378648636800322438127418717241329746632638841082834389714479589797322323002501606803833536538116937498069362432167863712008419322127184692994974287629843516105226470026343411949885580138255083607114495005056546128773322272706106805537472079761177179552582960393827382816487929056411044828908739707891681562698398545632553183721477538494451605644622198696995896214747121194823973921656311696994973170260429542271028039103267113424277636255132991586690850950711536206783519275369819707462569056767105381883774250433618900447197060530152568491067089633237359011558687507399940373126823318238500723735379403667545861287722037536845019984096950302587435132713836230713166262684221917301294316551776498082816294514769371044392077520840525894716203018779900041455816158702156885539645790624681595717220444940874601911763837916346150014489842447276657180127994348212526936754669878941337339443568528291427099986739003231303181422778087015984977668264248977036516287342180373885202748061781962955965565269019384636673131867528204183308619424144968839545453664988512712871340827780413360355226375823355252209486565387601465527876311751830082341687590101773912605079776225008313915318364504375923716581443078502246029710069181921791986930897413789664139527550910169210995121072174032366141872261189724232114004095163600713233151098170614508724481519563916069110041915448308676016827195704494748150915032774673697964062266487814632156312760452642299193093159552244440200543997409285861953411011686930912258859463234796546966457484551014491860373807205236655062958987585557895043340817863434192305504309589100519518493375464238709116524443842340234500565908587674184828078288507722574302349552962247686271670216047308530332549367915823472324556912396817518859350211829344111991434345226028028491204506337316000566208598055216719104276581982815715544605387480294342479459285586331378495598403630664593020616676958162882235845924903153729028618013583648006107037657504440024947393730174220697188032454839045116619735744918880733010186927996591357908071986307728729196370026620404212339210971770656953151727795612084932915745877725202688847495698573028922838385986629037484901645672971972703384620184454146118628401969256391071755085941358044493207592494013563310754955567028935103865628422077193529335940705566936098654813152699586081153841825452058021950502214019449647977325420834392607551952082136273144824197195764438619575999263996193744879422598156421963271972943931773695084409364170363419285293866212063865619508650167995031830248658431209047598972435965411197037303617534515899090063529712176573623987371807207119194434849271472517394408211463590314353484973666363720690861352335940728667189933758039003130192345246346636193516795164160397092292509355844869738850670179027866165351042099353652706886126025088085107747376433317824406745888490470934396044325724563943630564496044078426248646490906624308678685710944972505786417281150787134359469557399146853788688486036344107060152603396962808274384559898389101212316904515448231915164388987447265354122406135188927191942078727415807940087479470657343054318773202926295005314705645753703286046484171281532471236721069898133602074491870556028011300683291751400754964433204811802003817009559897403646839576757121033889557211520389372104696025564208558886441823034588598716962652023147325974481410220712037914948862172792006482016104725954253111843171239998166085503346121005114409825777497325820570376537621261847031070067401483964671212248890560778273312066164940049548847484476015498507587748273224204164304626310108833279973453934116510364429696669494571308873135773123759074119167976535843651158069980695144237382601406656747579540939999153012024496023897392973134071969992545874684563759796402088671920935272757298108229992370012193379598759407162555333248608323195431305238483885277613152711665807617771914355468127227038470040990475221057298662768305543636099299062426895309654171671809373205457169638362073535730065982214705572560191562187405788215891051172164015241577904349328614033948019941988439710986587934142125226127722906336863451361172955517259392886029713894560855250785802795784310807434203969713772669427313450172595045277120504580249688051559480192003254305607100466070773816551568230383945382272254808943500414543539997125852972332344707717765006426221702594598667938540927841856977810597825777137572924862773053831498243368557148372112465039450257099477018426505183486713071608323001985342501043253761432475441690061606815349286676336112189306708627349985207905608520226080606351579268768438308925146035351269225548734704294937369621948686054332176113798083406672099115713881663998733963489629579784012036576143960991661255225447816676205324034206020798345722249918401663699016924950717934264566880672048299964543729338654469593181235766341244452212919385999833402958976034095303918860640359841897908186267297740817859579627950260734986092888914805223725559685714376813417053641170770202441443490425758683463117746710785261271962344688101800108503659337407217833412033506821261026332872585996254228598760168634140805249103310361837844293668216030898556052468415100647696458763237742981138510069737489042132071419112312461682251491445470805550776270628406751903032376918099451506855910148838425822886525053134373570905387589424486639629363215457252529386665908210195962282970725794303284160673323431868119331589796020536500265851423978028124846318724304832660637748871072434755159730688220257254068257269075694311668822953999541865497234857600502176437395678226545780229372532587226506835583590070001861147970705112196538862893092447630861504231647548406097769779409923312902690003554924396577757031440473402796215024028981456117074994534871829331720634535370646565918112947730326869164165573404241920441826750873601125941366529889071245251236352136877779063024484365418933962066776609451279381985687015963838488770872507457538517135140011989862639371457385814313880533630751689803794174156336061698808744795474115585873681010249550179544441728606291676762457313927141185620774471516480661029843798431657010582599703694555961190968461672721661797045030292627017880833775029865490367559968128530406346569622616917270105327294708366240745128790412945503394229157819744547599777529641548830444798046890868911284463386140649309429248596188402880102729132585678452728398381643250625817122917396072787447820634253370424003938875560937930832579852059337189431604637501817187558436853475815404269688411208394629928229143359781796841024674070043047626671140037801352789781622370307526780813044878821950955410515408308353106946505991658638874187922929146555159067396113896879733510375368608467478556007700439373263832611354431971017239818524525123836641672743089688223087613450321716105187585949247115028596660306973904261626612822378264719036757941948778756119966638789781541027959335468908947792660950320375204081139935220730244884122503804882303273525602461581545516808779865172814928557496139546633049266202443756806655949688472999425504092119768416653977627439609595222241823540547634021925185034018238654544858670660332543184084836250430059887325899581562971778469014175729652013967754019628301558459627921876380391882140181541373856582246543754526270952511704634472498955291625690548013173108655288998978744911289219855288185612478057124134421459662354467797259066891710032944187109903841685065834845295765588997754540679600513973357408905125737337175974635831079170710982031675959140383659481009535122889253349795109853235901372701165388955418792354863973648025016630817949467337833205581250578888565742451787635391206263822414079067966430874228507525105806743126198374785361273142434311779467205692368065610937116351427464405152926817050004157912884147661374043364108543904283434769942853625938867015447206503862104547072835656076586721842853987558955147205978905877125807078578871542879066371761359820668459273436040615371243334427762142103265345666884306781988052893187133037424140217988162300674493156409673988506556554966036732085427423383214859444543820081139268588459860642382716097399028789184965236266298220910144966662800505302157303237940121535733959102415616798007723370946228343394503146654271864938036728404635617893942071127036703246340840579086950480738522760307137200599707869797354920853404825352716132547674823580038155378621551360971058248636951428003995491194340217416179405898196932501056007657222698429051069763560646660186568356883511442936708292029732029692112698500191284876337229988934531487545960804138838071294592302766573261962921669655480737938896756354689783384606430571051484679608080642237457463780543405192183082572126363779999867560577665628992467362585877187886671894343938699280174903497374897699000326396390738710191490876965770332617753362462969950103490194588283819267175020298392107005269668201133060707058440554886061713259923364600224918977436918704132888366319369346276776435909486261673164087815792010112415209500985482155424465391781751282217814768162340269532866689655721647317801414194412922793621874816327564824538190475295419734283910620903285241056001423977453964762080627019660328752162129298555153170459815646279987431526649420838530239924973052865482558304369273289577312028305699802598101388799005348249965962992308093178712725013090075428957631535166377834848413367806955895242788399818722595370756250752932727920852921196158008817354899923016548532131019132723129953821604024661471644020457299381402110289726733617876101131996351497061586899824701396266043129230595682947345646575441271158752702965368147663602362980243585319243142676181966323519086790581781259329611399923584456533373223806670482387265447569561253492478136084873557673773539894352397576589163225118153329497059596278422451440979940096626249605153855775660910043173783984896245881553234577262129276494267797710766353060773990554567162513080492511027400057705075888641998498862507780208247665520593780544832799054279679238973712889482519285484002933296642624812554355983459625390653603019587533148373830423388693915520475928749035384279144088076832721301541739500511657509140596391103411293494880193851453657287580097567995533656246537763262272635739557787230971545716506295456815038401722533104342285815695148993313034318874360613160558128559516349924638555662456379546946121023657206502925694470568865010284155240082528988850162978321608511105574182808983801433012515976063791106770111185639760559676462182027244890745828366513083817272068490916589365945872470655671287120911002932123447839080451401089003869226442849537914556252856468856384852261172234561875493054944250841732493410807946193987320810012954578960674781307256583232008987409610690943488052660853733615955009446747013570816999755344124301600578561499934239742734309953806733810908434035924081378816378127438484400512232955597355738740548719395024463558636827262347160467131871608917387640716333496334506450780926826764853366924796889013720483280376935976220040432301951806434664526934576490242868792163526891161121418886183806603849774914236168272004268319802010767503233355356372307202351276891986689775144172772290690858321001614197168544670583766988198728059638185889019948540548940764315859514456479317016786774862338635872982819392746093184612855161256778098345083421380529224391126267215662671252204744190862658988959888891732166696879085021765507193276606401490458571990246263478004834258188906772752488647759890203552736082123347035495948557255796040527976633706938383843946706822832945999837727294190971151043810930620422422158871767215911362340428837902925733129800161023528909197259723561246609756958876755462177900699426303886425520020587912095860515034404684550279180169574224306410275746341603112435111841913468748598804076332954743016591271913513244409539608835652038914384114333143864490588145735643487894288705938999430184270725491972277633387807750601574589356727856487197464169760935585385336996102429411751969065816204834260973923405330668828629483977732479455337476996741622798456030178500907596707472731376433214328846732541262884283349130001801292414344751669780383325361122326651227847881587362250764714256686270140822726697138709990429568499468439978176015531510846273299762371315786919308428334395361696205789259477719829272527608368329150646464009878818158262698909516065672079275943851618829734503078425864693411483028794458056396406110937279133035654150615343673706211606490056471497232195869184357296742813796777121926881551545177649980345966423048994442352955735322315023905646703435322827638932676215570646269583341813374663792693942454158666579145829289957760716803964186936691617312265991619096507366216412946735278039732105853298930018233475500073021852253951675638143814871037141738734827593049061512864299751507244672288970453150465433205722065977533905831943931032963257551892905411628926918817907598710741532150602839976970268118513709953435504397765208872865900944107948478710234443435270850082680631221051184717630941701803586199224216541422348547838057071405653327445035816845659802658348894577288414992324188455201690434337325728000102953852950652627106736107223126789240529722848212218973556824545929615427945379502354130834003640229509136349407469786751171705960270117641187059637251950463664658117618983743432326726235553321428297255630368979402055233007308884222447834708831733037913280636759054060441148044692205220522123109707939302596624054631392564299664320175711953325986167080180950428258001103934222110219058234199370067309921568282200647059663693974548572355135427374170314693214795672059297871749994831406082181539579704226149312773026727004061106684348251985728403665375599690320913525676905152915904314498152948438383479867076945506565327285081362746021687473810834895995318462939717207512546636858750523801556574672196027288425454912289480076432071093929605042256402182111187060675896167288221948756523938380143215237875357187291549045072729583252264588375384794914760751958775583847169235510171845415069468819691469787020990144039845078929877880292419803486143379797292885761812427635922035109069015911689058868784041415008347567488921755958244104750640697809047403211222040776677521394040802536306149397552683912518528149550917114234424708852895473156467947240169196196344294661054311288254239665779889546442886556605066077935974886924043911708486543301436352551498957660736315586265019823593482968932956749198799448973798022055363021330247958682254802760586703948104116797071039941934972815305417254336007217078211782583199104392177019438144815149938341929856674402791283307141162623025370516339232310178924362648615363948641743714032317733268575743677241639662826147893686160801671349065013815841404579009888701911720002894842476826363017321434963367408313505304715722605964931186632524878079111239480126395765041515127295859867693709797159840114517392493982166122478184945293420951872269152425890054761926782668440706140202705459538323398096856292362860976182991489172626626420017215168927508358271481102886303836408341059655607777994622297967022907176387549948011508730413110006951836867196082946878403405256777033146980617149089933584641648150642127514956443379897000262848083684794432141295414907167409351775878642156068538078562874487837079638780583242508767392413087430739110970679035619590219680397698407736267394275205378319175641530965619072716606288149189486838246692939227345482755124796491010524642384458601780537370382164244106788526468155217678512644238854825985074554435940870557241905378626805754512663882961992056867956064865776796161282877606040509466156732623265686972101700931260312509904800854009173533289048722471074245605274126577189987318405038486350991245903267555013282025656846975541324245079343970125558930138542185401964412069238716682973537963606528336545345702228345745101473033882442568934291294575026201393000394192146128943374129738239260554943526471313894239538877770412965502273102174677273500513252146341953913963349330392403658468717946359457722497766803086880713869672069960310357449059953536018601860572690452872144960094084246542848564644207334832574895861321109401537580222520960660174628241524618698208635607687729384179841328594319705131677008703840504010920286944160179243672115068663992725157243909375249589839037468485134461235289134321312841792343915600999941196499387876845267223517602691976362488318123949401610440068668384666671534050491537236515432695449121196800094929917355145207106851558071105648014756939379083684617181627093931533436047117489119352578463991461176111282026894986290179136550930451439831129888332726380427431327091807292521575377408005041143601871642626294933979068039010707721927373270445682632811180577265794004799153585017909968916424958162710915831060867786008410285552959279216021996857720280279078746177064765477665925144558136155856404755280354985577603756421115696579718523584867670564534718460233635289222240260539323665770692245372506608769179741075980686356308205187953134765574505463638239522222589722696164777023204199920055158313279988933638517148803780709333393473941641686666741113181366737071448485808224396286608536900862457486424337174571549091219342358982798902327098283140294334427681719167770927332675184430504472819005960441486968024844620939010721554594444674991154880428014600357758509065866883353253246639258484197894295209729658235706405418202828436509802364177817547637937466366190008231629318180567027355605790881378767945546842231822069918787117908987136550504848734106489695879343381951126452009372729983499368679682331821921107536841858259270134090425995747930436771069961820738872981948121369464928682288425319630366396064028407239388037123696390463067029348893847731887414717146006363715095731168191665786557141529400396504490183590592572129886662238186621674663560505673181548308040631401251271834912423489293501781345069577575976271276235496878000901787145730219699445549823731282416386818174886700221727211962336021645755680689923572823614779324629630667899430425890498465116503417971544676177948173109663450437430879286331563245772133562922471680845279730128061413175490744043137280755852212832445697739927237957696544058348593764186546303786189755828030668262387186433649697326706150471285979109972433924126040134655153936523814579098712434727374902461990607922889636652737389264636344393022812630515981978319423692657219715518191180337441822745516691088626613313364786485596641796128718424851285880495297346650210437864718759716642338990542516584781535943136480149643573103320099553528407230102769257403439041897455861203881722142409628003177102619518619157378523000334701766486248290085304115674985798199816476480106571224331759696115702593420705859663732300825297337026719524627506844999326418665095259650960748060500077190149152946931745120882854931125121796107323013447553351838037992111127574944866602557576295885074283618501870491488656097702172095542985187397522598200645268152123775426480228249558844206828868616504240030454056685357357067827010619471094275342013380998990759721475050207461197390676499449698321669526513939563737504122183056812063935620162163173584937874565208611959257614910677970326263607774300670078402608025050953893142376858469139828400412769323754500096935424024809500889110186949217721621159465922735131545280323956929351596296063926699499149612523320220900297015539521270775251087034104758213878539827349422703115160168603162042748319065689701522108743230181367287171226761893073167427779330552113552174811588886942570928640952726047066327555761175798015218270027123642997387022551118360737543757762947885944888028378134256169835715922309255256740796187532929154270457991970457036690901859566911252684497299256597168170067099887752630890023154047076036639644377316240577514541586541582113384797021757785202454934294654636462502759101384681336571595389320558391870668016653723010978581101841990375160669149839887917149142724125622244194727516554969836090169926603709181621907160005249042293248076607343109344914638907340001674729494952217713406976396576921551277380928957430203139260804000036184848114038024704685205469788113163916506298839893675413349443031874966331414679604905133953227988726770052389539497584905712246770362971068789935699335530456865717845351633882977241946427780071729309534710890798899322308284835721212660110595026129029747359516480459092646144797739961165036127256686067148862373055662581768837329315467827800939485448901295067670063469396275380563682490416668184422013562235545140951350451554784006827777685473575960817955123926351051268556770751150506994672834528075154922108585327960527584362894416691113072767309076186582227271339008905982055472396278839047000705152104884607419286534105999991705185766637515116011136671201423617493510354045922173141882103165814460542185406407250152282614235429722167365074562332700702775819244262680020507889646134534008748283565706039003708707955839162563131772367567782067981297182445219420871425679615021670267549155507161531360072300004702984108880024329109364569486166974781960943462963941041906644216256252766127138398111684655256659475523688142321120048849718102666131245447184872220566386478776637188967619859781925054560898737895930388933474852660373270769576512609886238706133194255744591819218249806487860891867989483376698302892027234297755442641880529693343262259923795953880872431050275089532621274688850560652859545040463485194290222373386769428179945520843641643875203232302903404595020944059670027611307245112207702382494754163136512177671778611551059149100433737942826064766323302778129204848542280898673094545069187070021398779416801701971852158743568867790456100567295716106841611060360613077850716540892735044559380493603802790988185132185478061695345123742069628566575990923793348363917657969121912832239794272919634666507642580680305104056882327655001606816889029966918170138058541254916227862113711602715943890364617331257128207896686531589233120821844063120800686155530759802933432560622311091477079579423026025485746554711625512420478898751965056202724126709249990979925284537089092390955364928935264957411723101958449697358090687904833927519977423878231449354525165508584185518933502447266128256483067903602913778037727737083648672586032874440430347511694640172308525639185573034710020383826845050119743993269045201640480643898553750658866861060177018410139296325653746122800756796670454519116671772861648604302666465655064221921742819648051838562614120120953510697465474053879434571077174951470430977094674339557726483863492198310063146657993320300207797842628359039225179230519191457366789619090753820459741971992338622890348327263724247604666954632221853001407187180850615476242583929302685315008592445681970239041757998041201816821836431716203334982682836644358712839651105767287204176079185343608078723823368534867087162195554683517050201965523798722517399565304185905216330004029578762277690259549372788423406892758602290379671238075612643366416886836908005104498956646277290197279420442455117201910548519215741604979748890202719867295162323530231155281456278736862354436502164375162690141141724100929109412972444197792802384618867331832226657051307960581906825326763170662336638503705496035882027290009704432914086688248618126028696485426450238214430378031272086027649597927335333542645947539388432843795309363661240294831411196056621841630345310138205879955386184970605462628441802538310089392773699573711077045500660951849548136926448017290210873159478793528617483761964413496320954674607830720523514834474974402139823749867897657951297019826738479709182656004950577474665482960806261452487907737772118835174952778189690332112475224636069451989237064705733194482908412791502036155919882812304320134608870447321177177422018945879792054183988849345920758205430841172044322385657555140172731413319884672382477121604446099604403611172902453861510420860021882287505239234963378838028224999023823703725695786248337960179391318630848707002706774637724039775536214029467469834377595567098276972272352339605596705573838073781672107142920062012223550923230628364317597697564081387770848739084734970756031604434591191722909515309018081483840238498864203250213623444623845244353758265115381411182937798160506796392796225046072256434401095412986265421508002326024026191219931046644666101162414245329193531210137319289403710728681007391148709831844146105785522097520818659875472037663910666532096519693714456857251051296186670045782679548104600260478829567653243307803260583701299839072984715775012811597463984922452359009080120747018397685969324947489074087052328861454705999119141502239256437332743501600719161669841090992649296529686471231043789029737395452257282043780755417820835797264539887483717465024483896245801559947806316733712095157651010309625132972409895742319752388551701528221614325854139649369012703741824488974996500709695516091768148491357935851725132377753030119741595452561384831587350870922281620640040130067350255277144554896218440516743851362743604070780865350150176149233921919414826175515450502964725573599286700139887045200843087995399055129809001229918122277373743318010473068215427363030734180593941189362803842949213955170740775234916715841287454179126279440378127408148448552560433420729103581046793469186761365850178634704986252307357273224946457840122886448927573697231753025066698815736239349434921877092310978698217179033744160896509766163765922805168048642608938756139443478426195006152979670271594076494324154437952703424014237155766723184370353769925175292211585415375886978451003493160787372502227620034873928016660720807423904326486223267243301192374194413602713087771698990173920493601562380788803630304313914814088200715322527906226823465594955003196664191509909054884307908550478428621180612079082317271709543212381463679871599506461002887201753377756691707523228289456248024281061998938583066031926280343211559483248178849796563666284232103662015568322836921524182843920285841218474508719655330594572697200115376861353970442747661093283388782902541158978988626730626217799320537240689247504283773088553429291981086677604434869967793181600922579033324386540778144231399779890433777241330308150849815532893835034773619484815796953584243699069869230958587469852385943229514219329018586466762086293764117279152177419779556427407659468562888348205555648255389207136984765392989601454824692143444869275633507739538841888115992087546716091499287513582424769775503821286701997444581239368817220971697408588401563636877903733913974784504023649933827816923703063288872241643229376003824817068479833204098644859179578929750664264142247097281294834756710375211768959499333159128957149264827903211974806601190218912708995315621212470970927328053959718452184862313166193138338620916197763209819639020000366268681234757489575969056276867603738445721632592131163834351872186955098767319118832285457847033199836265307757105732359640668429490922302079760440504083098724019572787484064916224645228738028733581454447893008392378863259540092950152419659833926459597258492627285335583761216374367856686652346126226268514760557831325560446514678187959969320295578386220705135658470099865872540961204450575625797345134869884460615493751339027108349692150615845425734014859519997796060625342127230773092485436484271088816504352489257167783992033892684896801640901437924621060144629741022109850580048365585808976432733227952131024190324293084570839241656027649204718087789330928029803595968020781965521894447265319769720181821749050250522250185341227369447331918885041041011701856934756406825421746982392004307554838146552179188179496081511489026476152413701169558957399300980187059364386272522440291975363978241744810305428028990601729829810613396070154016414783507566264155717394567403878159783913051544196691507603468861158468101957625719857654512401320082430341910512245439938523972469315867903241739798109580724906909207339691891137673758439152410012691751287796440487674176335664636204851275080879492220633989884458122199385415444930582863460167145792771691081985326101380740110500121853934865090343048606263708519423642017351738088375936761041037643031514326175320581241420249605159842793974651667236064134553445262598642362214025179100376124833541966006649880548199567801846108741921842790181420952152572198904842470975004475658357492116873412616470945682224560280379442225197945523136923467859409325211405127655842272383703952797883506918377488807328350787963663857288351089721840426468636324361028446207992511376962158598869151938238530968886034261524957217665353681860244056881818614482559688075954970865913970666080689043360157614487108277965017205649112576950700041601477835721769716402881713697082317856191158140577205758152506719053331002816854029717736249527056124701597239518170232239286942561369566668027130206554675076878346361147033062313283117111173588955610216921909275998804351222316301561249711470562346391694210774491838654634601598437657607219033473299777320987454584620674506624975308439839482667076900847502442423884140681736778903907528582520766900965706408296745473138990731519394489979437266130951247724667114083949819017338010653689650845693905000015939080496947669766292611880609236331882746575068373939697731533781688957126878575159345954165335255112559098544035756181047684405624922032057497715612174140854767648211977700336533598007654062871438824464971503263802705956262956676625186328483331027693780671117405670753066119543323201656882771129734980548518847393736875929445479493546935227289476980783391522127280530661595445354924422603508645095735068736808782077134694517233036349042687749986972721617528671983572151872233477464383083519370495549716241019811450672049820355465410990460716919820709507601268408504704627588592631467140936551230469520053270009681636747454787015687338959974299408394105286622750552179621087514777951879843660860521136961831439247134868438850226473279918115370429254685501118777874300763033225196067911907589186752374457823672805474941732736199841804773342650940909046667879793917291152624088012007666551664662113991765819145141968433043033427573259239581086958924694211338530192472027530715257955187297399837088182506312883373299911354195558749583779166824596280413808870081064378248545965050395639540304763382126279370530006234679127984946467369362904136856784568825443108147494954772085498637576941646315246881051788435488158949847464608815633993673244154532803518313186844152387216809110588295839005889198573733199969177454226151917745037662152689905678982231536047874316703852399244185281971766409600912933203527547027477221289514753628815667417135449137637945333938795516188474823296128477737945838771665112532378652571109949112366923926772528367362351885128249410856143845956568823277218061803911129885564233388443019642655334169310849247585159017221790737085958164560638944209103885559971782288458305408559148619313775756924235642322550519348272022692767814776639887539248812708468629042096133765697894673090321712726236917463546071862498419894113234302205354331400791641466548273162276753827366587140447133882427635687162848092362957988056741557219399886506492637286442872363232410283455504783036608310126583989020221576784511942970913798753001719218331549875339239594282569844559208574399313089448370388258518398823904495836816440153418838793092347474652177763588193018612478336592592050796754880940982549675295270753590995538074639912466247811373297376693221063379865648689579962963989447349685464793564208838629605208699546066403669634713365406984095054224799817766293691124047820090999468133617832450202600862818008091698081771776833668023612506176646328411631397457907082952841000114768805386914224549460786401032911189651440046778360891811829977432068405207559135911127155099928565254949952397669347056888932074578372132121469240572695476398398032577716125546207972588786602943884737750827542038000664006151127146471570516531207449655418516458697147272438663441769510012327177204643983587313931444964717516614468549135317744879016377032096338079068612834813660431949663034022897754240329455536897103665017984950292448981003524287973492130878493799136140497779819176828961934963543564603071124148771421804591072636785734165387361208290972653095987249619350827060192915557461366575459647912440996569743852036682319772889554138244020529042529669291161293977521532516174669976585975419453987502447753430968233489548315985427968941897896533882665206844758197687103346163841645305440650595418269463462303436828878521118508828894531749870700190855719071227545983120209781959186244692757146819287387991690337763804900456511124920044050734074329984882813959769021026197200042475116630873727498395856642051218171829219123858491249651014738301662845566604766198559591948633561669731788630381742036330484320218398548163261489172956550670135433118821794071532834374812778605919893107786614740353010623414873364900360114957198870705372648467550649132775887918109577676674603502303219778058078086895618193396018532156461363671728699283097626607993793611549235552311041590510640396785817251136861386998430429249710257279922418938308519900451091174843139496592274266399395513354612952903013973008948688268391254852973469371371734872295970117146883923463137179540983543022624823402148569558796787631588246752289308429152052437433230941681776530442708108924611920594649867137679323437053757692304360092147881209921070375931875212586632886252851109975963125343390871315105914921556203656005529891987063959648591795637337727040677160309889320189827514544341060740308728467790677372296340745578816269941175724370699105711306950103092839931368088111984363369179178829595878538969521350475440877490334707624630440347192265442857694816400554917216431868389915717439069788147608252930510502704864854200946102252097557932855188487788851917900870675372501507518517849206388742844381794702977325621874951499736220682984864397521880516558137845555128117459407335868088430117043195511059574123778485838190503769855496404137086748921194586328457964526380322127822957103881079866232768971671758588072716163101809737540600722118197675430281363561019016790867724293517870606697841771706801564321332665139532010223545745035944911736864992943224464748673144113653663775873650022184656675504548183888297164373988075497277429397408576939697984642193393283501405053044011296046774360407541367462247221782531387884867740513788100542674227521226719299134866715903155230704916167045141185973477662481956320220291500825977292562999787604195818494084740422527686437412859998107731903087193735717978292293962699577229914184721768994499831636999564595052387664531850047010564768500683467955612196080482623104151388325377174244671575056560366405235992108621939274001445547267772967023318203553136430071768262415475665860398851235806866696288307482236034908645112139266877436495949012117892777527052288289467547775096747663817274069429849811099402837385745548107061847554280264578257025606492987713988961945673104566523577558919705581993538508839331713433611972300980754135976468783657913048714858232767386233709163037175454008228858388484780971253239493719394545122513581462846778275148662073696977561506165447970789803404622446294766029839474022083334215543780461698484387241753454015084037182798979248382975168246335562408139509713634305931653676117535434187586854681754347424481419516741361430270244958839219405659785531371970444540875020590730977235817123766126851655037070343651659163451203242588192491446850375972923388312018912814221850801704015344325514667181632360563258954816799290878015055840597577051694230943881442547182074795391922993330363419013438617022150199880324055881270260736783842711100085414495334550792671779529828339501946570916743219450662162185445854895182812966153177772155635124904566968700210856900028123215755386645570600276194634583442472353247319090272779052502383177429243124197683803521346329895900783686307074827002971510053103497408787804316885115852339234905821333495555498201242110955287330671532266841651524725977126760609608073015065304904864022565890938293375335140952133572710483177862324879789965125469113996125819434421628669913238506069473088105340511900147386755446143232204932777869227511392769299003487074017110014215168102089858336314460659864052576499467464589268221154935922793444543112721293525571763793695859242484239555542549130505097977841904936238465331802443303596062712959873230245906052365485433936294923865361443686322095210718418136155525990386865384540788860408279029911024790160846051965718004859876798429217705434702638728317239985494267034905795074663934627936235933382437236763241567484046485740871080014001742104180055346282918271024685225414369791899520179238361240558160642419560723109831392370693508635874081077461379495889264686066746653845759584925166189414952728517480745122636709554087410148519857909386433165121230105770000126885114011007355451703386131446849933697079730936495325890671183201392376020286066436689448247284657897947874988428550654992460947275635418744275854679154192077429804811821579779388919318208223926334034840647664363602754679548766524980889633765843456187210083058106893592003557573538191624074708011809139831651475095250535879913203989160862579920269111195727513271386676232310606560631650964182410981094887543070626014048764982707531042033963817899799649048755456292540956547421794605669280449323438514326413451522867032346946189668504528058783902311342803245583344485731947052865713087343814536759094194355740309788564105336390698739296861948599491146399510179931390722879694000956829552268807152010391574231858810738492153989530328141756296599733127295627660500681253706760300639884457169881706635415957499875430857603327160076306884142613152016504868649951779103179146663847327038781000431850194350447457163438261431565909268703202721783190212313654114406863068609717134752876289383552942382722241459627962752784950522866676736677623075701207774895544845985142466573580940342569629712486072015663592131860521058431087877311014351575136111640571327366806725706222272888207443019743209473012396103441914714589967674954021402450011037263108394838838412278931522578315271328139345686725826214030463762088947144778095417093120884154338574770874104399418744715777858502619421538479640929944402432781158602009422034992117275540499019352912634669386398414587837154447138722454451691988980645864423962716995981056352477931604805083090571695119571857408603595889810858669557832942008874286653028149083861126841900709400931000326175984425772969249619183487717788233752198212212006086145397380432823580945238271124017055751760411004649657403054025309976644448687953969397028966240153685513246137452059364868025524630769479983533082406581538304999163259910571131991546756261149500960335819776182430251183725605668220804902339987101109268112245187316303072033707659301862714318463370897938033657802408327445523999238034974721012828419189556549656884256682559158082988092396602494048407730141765507737003421982135320544131216238647775761257381197403685166493681819317182183422850311351300675237083652501051615679051367880267310220692359136925517609140816310063740255655859969413062636427811453912964547951624002764334843320384405730775999275929635804320117317829328973991916108556780756628054755227312168011581344672596091866050428434603191431434406500532789126108263094054995419845297942231146231066833373106554080777375500982306859229088867384015970039173934063809106519118665689548514767018621238527174016439053072986648114403945687272320839041624664394240813896006321051525431338356984609231900099708600751040873042203967552628546139776421613120106967048999726377916585191712530830130176813965677845538265779233852311791401348967436776759155603067718914098502272002205577987419164522424559958874488629131985210802003986543591752861613403810034742893135400902988652778687671351289308460033990415785806425658061054600028528282451035717683935737686859391949285478690725844877576681731440706722195720227595242456345635080152572380844616553697308006616582795168300524305136993869788517958630814146162696915117954644828176285650825173567550060084276267250466502486387794407880656528494966206303217677950144265206011868240447320786212551697635760977365052351492489042390808882274858093380607876119987187627697697394722754917224481086280422685167351190326530631714079494454899023054299176518430069265435751394250878006522470470778596525323038184639888842098218138335222917756920356239545835361812924354162941088610235777140803513519442138561854566061632491528859180857168850392755754522819462285072424772627321845686686184188328034601386392569528767872883739610705944832143266875030026218009163854219831234055091681582766440181078966035268513401064409775306587198711997013878892537015149809542667968316604383038590075552231068267283363090336551196471407304627128714375795928548345081234762639277725839968260823619848617685188125513372829139389906756587832036637433900796458269155250677945335321342598431810472984358574055475268017221295401585114979625289449541076993734526077121995309157900863126383151559822585845549416117525188844878781853262087247086701386653518419144800039125185367847703228207787925147018969780272433530866077197969813854576998511273413059342787449169482499756350334460755950154969006663003229431416652175929158498202510174090482764711637891162068373051969307145956441471653916828001904395487466006043623419863042854340218172233314382894236636178051847093626000021321394565836874047784914209099822995077521309932336148282651033668121572717058292730179548924513126205607532863841390689991368442626647162750753694583800355387448114184936945396366686904690296945017776163570079563981964675507877469433338462591765336518070375054346357839841547251030929645795682069734987341470079501561382773389410489400093980931146405564501993417502059494375297308720974559388736037266638227130252241858820512703158568664389031848864388106399912809810037469874857482793914062885068378872744551309326657678207093774232188908736389250026630728944333171692316035680985358851045837878108827486623068061473365515796065394300635126915202286856731752742362426247208673287864868975876933229469702322592975225650074193420721798267176202413677866003280088495606821816553617668982224763934908966667999163620115626801897521399629754154461572010984719706945211676170387249462950902986231023212548113193041452841919449383105068105471634053399556772036165928407883133783521060936572232922384329260516815591807273711037519192059925295752230556908253613410902960461750694375530188483758699524673224122847467817257729325902489831564870939263415463585124875293174506394058266338620829247161791893211010251560745383526394694274065579715402976668547832295836776885621884438690433730331719403798758491955350050698113504726876753649122886948077908321782369101681580798507185311714035833767463939193375021360230900639221498952000329476197514807913102847644896601356162165874915208573131275293893894966355217239493253713245150414721639469733710904224340929148131660422343867282772645392125424016051534799654576559876702317162394332018932150576294614175877209829448472677029854562263499461905769121734122051559696435899505496272489032067185799860876207581992220557348496085962502320228817108274683584274541651210478081584321753771614999400069604741097962291356763503701345999269069030089320883614163692018503524744603006684797892752101774748203035697260005249074139875481291419360863584425782585526569144171432527394784152013927127832535041003414661421315387350551070074474154298550215634311480753989173114050586520613436668452989733468892936715592954173055652015537407663235766798520183597148591660491310814695331036831421694634510658207975370640604531687342754766205698872623766412385047542080295014604206182049110866035902586571386671229589638819785212150859582395607950007245065243905690182870946566971540330185166641983876500718443240640817167604925402377981991530717984013750735474204849174563117043701204694749257386917074876858162943704789303420008204625634514404281926732048302404674761495079858398181429427298285784382566489353491739510956312415541275198843265151296853377106499699216960478923193082453621160286270989629950163560615182248324855588512629295916845318849299979801849870938901571669763520016978876966043490442952772468584883956740474645859638726169610580454178989613437745682194105307730152073347924142843185172513205891395552321194005275237719207777019498707976650686134385418427770699897837769051863230798967234077156682917628201293140386581049497953847175968198426571792358300658414327033874970591307576672360361552379047424632139186407696352027828086024697253485051027847462382754432752238981868900083153978326594553523766488792565690867594855758592024912940722280448924901871012272462933100848607736329498088222605502293035980030346055685480671730961312082403762969639368573829286013934356802320188983752556451942381391215346132496287127872180500454943293753524191397859229617691200723682244575537721743402824589478721788511069292210796427610044981882157526239586435491614590296304725468763317569877993939397660738483389373383954909196364381368635514764938993238761437772279961555582961375273063868080791019414298308374638713250617745287664559701531828967913150011682451687727984348092978754065515933525576831194012998267725975946883775758168079841930202962613903039733306691936505948231132065001472061236984314522111489028845182908564214176317966762530263774122202446571543148959016447866335948370977628461593627802028640302668703606199168863229697071728602224660257884326678476239646658247931331959057123168106571583219080464446756954010276474866583997803732973974821285037962557390986700289930466517701275028639193461631971856883472265080046324914783436181954385595406738334807239086916604798745661175212252440027510348031113573242888856804978984481230887523666938755567190867728279068303119449953949502433285443567202925447550625774307587460613387646822741513912772671000137800797928651310156238789322580198879822798234774089448669951762382165069604126292469819420364550315445903330454653501081126766669514894378786249460769898508708199005146156600919406217420942922321940897895596755445068218987157729485466284250670602852901675346772220690953514377527778236593342153578130907650073248291664004113468715449357001830075631796642348889038792108177156294750550208490062074310978310126436108957191047857183848707494215904731956843601266639787305200936374472085601449843834494373249019432153504237405042348896581618696527759645124201687991677209894878391601242146757111471610700273215302598215497258171866023857660666659283715054427820930864635784714013297810808717074980797576072311309590565221537592059205095686927005136485129168176924895695727663503639201061342178988017915107694785629872450527186906801333290518210896725278931769970959707439411295255166822431189088477493786251415016659229038784900530471247666636270965927000715350443190760558748198490639694228358159762368699727969754872839004734168946618214536501001512646740908973333111578801622987564800009856909212999645171889949228558737783691953610122837295459419953333063239501148529327837958722133081383565263656997309577918488920149686831388805842853749068853551835774761749647931191774894066271143792220804000386204596013037658334115619060528407416408801017644131325067254019097691134322409467081029826907818437990446053048545065856409994677978076458764417387403514980996670881687787844952650326537669809133827205685835460480248995420480793354538503008345860202612568724444020315511660505350435730982544361761353189134326173928360763602697561654432539724588357508797130055615489554331853908075001230886010623314426777280784055137551015540067039118497017024603027309262866478347897198640074783368996099983406390572959842543774062430355426546890911191207600446566099993691054294920743422537055997794033152604513784165658299783380753297226514457175992964126851913249843363035418616432696524992844749484739458868054339975342069653097229460843469320982690311092834304464501208983384547351888505824472975267600457800601357633115231217994214521265139790277872850550995492510005049175027366916406633964945293335924241160864036652720268793235060814249978334691558576627575582272213787576943190084951261724786073851923246840741763054060963738685606424272172205501412872083434620277520848182332408575736185533760179179473943378123214228143015293864735825024777985123499394650183866810885823812697764767343055751655009516923609364514798771430817130204060320399179800889859204336183887171967869381697898164381604684137836168070116351858792003554533329887545173832815058295136432829421985686328504282242576796668346966465428666126224315068973804535421175819356190462243373938018819583028314775911845661064807129274969550434463531650501100073241418051950976402003847137173594806721603775727894126194344174871252461433237269750541381317459886799077892306576484249521638746234660322832009678068237557077428897628871857684519782381516009351477864961675874964747200847592113750107034362180930789826813581040963154658059077725738247444462386368016349461755527521415511435214076425472093736030990162877282614338505027054129813219251761471911693920657883128656847139216301163483030154773170874364067098497673304428456621098044149682105846800735234950458356290213141515664123964382364730544441510240094422996073669938005922529671653736123572316688973479401848608352472438620007215685491534687168899933789167103501875462575118019042230200242481119567064675485245102783517372582824653205871989503023739348465065613523290943291493632730684483036876319865001129739863370124542562226731020839999750346773694024388177803589869165345845589366306344443204283386677778361888799017012811378603664429067134672130295881889629996397950799014945405171095030478900934211221499387385558549968933299575264601659218518848269593975925607522729800457917634245088164559560790980955591432709411560810868891831781223020685380687328596483068690256602402347860513322160197728425851721533052891540887691096990334441062415142125480747824737020466044605565304017780540875227306976085332052701641510612795568473251262085251886578871846581123472770608122070384508672825030100628699384072741060888035737260029897658855604532147416639927986466335743489068099837030117516097534985637249390643056398130132853595863018484963590962726326224620785946881889169057736134582724957759912588560089261733933583061939274076699834463991536986214958945760415600177125578065967977668038098317196829303090944413638532522042591294701958820321819462294820487782322267685887853987714315220260979120934228042303691371027793513836114500233666197700088041781715706925637759888716873270235164158605773259637478351429621120695982318924780771104425626988978441579493635752451989423723642965282376680141121988260064017994228115903290397467600218209689537724125730646416923382169137231866855827849828839994485140611349814659262955983721293108830573907932942655322349697670733661511509263702332010256902269544747759922954443345238746256862563778625441379733877739778880412824257075734362859065323576616038825484632418391665796739693777862758212606193892656053633197301257987832873151036445174748388015998699597830659362955547179736009464795269670534355455119915069449207328115195595345704343125142615756117557760671379975347818404976676929115057667378824936859676842035954991872338080815205318767611702542305436601453758910060718558944180727498209040721908864268114232899111970223135559437752602882741928507199874155434498064025621470249543701673997257720313805415594397874001507148237800557065527023978900219002076414246502828231216496573644806400356966489265473011558490383562108594522557539546309957946222062421774855215198540304039470055817962483408003799802615636815232415882482324466725476728332700860325303239013324210703707454413396640671648594103360591570774730311311296749683556894533921396342778186872724725046016535620689314069627320249667037762857300797265120656115788949534155612545840320772542035532971935479429965460451636586694912414295946483212363939981340079467624147851595029369773962752294955101976686148449274486783286811035605182521823531257115821542131593240667897996393189709048335238053122882381204996232305794263688410315372558936204142563375958691134909781334773429359430528258060060879987163753930853785260684876973126676636159638457876136329291205153012882986219719100913882999059255790490567281352975185160087241345487847310183758672052806469549615876918800689766733502577568550464058933202751619371878085982463074238262993436134119297888741188441693596913012829459833880464189193600339976967756106252422033787758080219429712402486278261606847618634952884570372548223107276035596578411129587264734592264197092388444896390215242114190013410634363267859794695741246952192060482546313469093109629014057266027744078918907838890355200879151289510947080060809653641865044818520671576058586303700961437465254302029437270109076812266147132145722222731004701731487200359479992695688272662097129202263243073880683109243931856909460133050790623524706796822558000267112037833427378858022357517009596149683275946053224131082375088034669593344857356690855210224254407996700544393100882420441301030958149414139998185714099997340317420574278072572470437918617443935382879440113292032932480562966943148006524203800633740938722896405422055719464308999693731513244699493700074814551398203479481973002373417201403549554471314392261936822367522335853154240662293853919236548697697062452974694862160766460047690349097743779649622790843339927702218032824455605764893636915578594455712929500940059824982264247078345616221234208336187820237179942573143717134657782169587372866883060266114845234537617423888276245308032395905385111627536348575492780287803047457439111695537989646560773966809824514365504102289321814431144709358447415206241875980973667110191381196346454032961702393291925155391358163002674158847310687906581536706702821459494886339471339185387928627960716215828579418598669205305141539975801983152846159318502789612686777775574996763765305893587719701741637954716633587993635945470757689721945034063565964595384119491818713691405384157900643692834308966301183840647081835309923800953867922976449434852263586106757601731796063593396094383211591716362663510258664932570303080244364964637515672436411715179824193170207921545579453731814752252778446636696053322212469302193389525070345871740786412014967548534175527117010955069666737345293464315538924812561927345482099348015519970006407137359492970766399726361954055171327332691515782794356936362711180771361012290640097766639098613152206788160989766369345219914877482884467741982491621723901931744254331480916274104193787956491081786199446707021188140435223657096988308060402188562992217178137132923134500906690592594187516624964632652757648556401613120471424399158921853842561033267209982285915679719257733193755990448478860633641695378273826109449719386650252695174375702890939481665140690795235924156858801839951122664511013454961960299877255269352673465038429286073478560585455805790478248362255976858817694349408037286349090754527179418929566674762744435157573835539525040446641028300630521217133441421631294806179602393866530267772431390506222392641639125993384242928312676743172805302810011348762385102132969780910461627269647602880310569082136410344739070644196904251449540268354117260822175464150596547217528042534906861060120079389473891636721399366954547809612883310122586957111445756896292266114079708427220474163789332728795735279369757575618717796892970273477610736486402738519446404903185123619840042741476752667048337682018047262850086777868182501648702429207986159866169512997893044215678786796514702365045996533146747117504096293090053872350032102169026204270397652963699919805148900403015264520182593902248295081167504286133535890412992924763794767712683147292855764601256251046117436194050092547618234005409042185703490811617526418420328740168307898858492335278647074563365082526646107012026674406045895126895563370254943059767457727262643696583329260804616939414347218278790452292821462544838878049983734555467894728090577012247279485440622966314410576918391223575518584352996963609269552417406867471899957611432762248159680069711230693933012585833297139356385776008884696891690221097082565626951880273871087173177460219540617097192655311665146380867239286083420756342831131977203587220052421375563324917533916552831667250219965396399636897272802917208422283707430347109626403020074738011298371399029694919923832158062595305932965071777734549361832209984448595473939574262660824498096418947495910958008684813023544287231923375252491948361427962620659879197145312119766915707527289688485206447840331490577939047764031380810272879898911382048380785119676834606994052536242753979885754986918625416203715339497837072498980709535537698982971462606410220120643870851748217488954722020754587164262212865254434655486848236944361893257504825179753202017788642515438094057326295559630390783260027698267014624353118695974745844463674915924823342442807244002149547349106602439067852830588204078795396807371055911124933670942073509215954278380706533313663715743977419092792535817288304671181749695187689384462482876504689478795304976739009307594514577973665660790761615640679049336520882203429857507929443764659537071315958336317051727953352014501183683499618293421570096800861968491967370978151997225192066468180973737791282778908310405645397831991275402039921994534164321370692078653729366308333535897936545999088845656323208908731437989180970965269662751007279856330951621639771078257558377487758447843131860588833405765287978452929414559404193675982745162200478786400363606993197364484291512275609363225184321805806049174393151220704198783038660246294400301295086945031442483112424975042428689872622767483464201262631554028893378174857170502333819859491257172539675477706582514638027237535859707061099439842804820075261024169505172871313069457872631920872386782469659903841170926028965018762610639174659828013115028302464131927508077604784450891837259164453725862312771146839860249451890573477020800425506636525841726894743895227204091059000446864475879254404926285171090525424331574137236223062593210280064015930456191500083803360755184822338209199942761935674553831963223407732523336027737203092575401378785267061416919057878855520897111197322575556944544736987684846979567710809501379040911381222090194364168324658541923436244533965094645573907383631110397709211412873299577498944339144438390675292835858302186223537037689175441773002637125773265042560393833250628929955360038886861386199692994737682757057220953690398997468401249665848834719934441421702312194087373618531748984112302172647954827052330799082539103598757215129176194204984325471661636977017324763168172855266038073575202773357768138831075563328851284012912716272133091389177979485761524283211592797720645929181031046302286123896729303523649037048135428639451843507063687277318231300890466722087242545946404990192168330862078480919240580121982910223192860432155860296905037741591923598453999141892061887532823865511102725264246623464111705434589329736012826112425540271219032994606388098914813717119100663841181329106789829101585452112425868418022004739374227884771965708758966136519728924437311147453231888663751425322127520491895078702820513166037668569633697866585453784648547710430222328898698949225007693879420563661494805836207968780406585426879272800517575146509221728224487660670641026119102723685133583722692797467505357423039221452265225896582618000510621359099611247483627699821491473446229539328920780409307377045530837250776120919170648310323674369262598539013906531237677860892795718873966272926745377209846863175283294242811343234920472514129379972946028480097633262279509719216474386772111742018042409880174505078087451058575987132790856791118452706424998855090762424555611299619320790214683435313549489699467787708497302725157926804927318974948174295113853312189624320416361046913466893930766607052291004309357688339437881850137024982891504790984149337515801358572415315356326073867764668185914730922165747117638096113826733236673388616344980359462144169163289089097617326283680415796345548445363837995110084141066674468513608709229846783117286608151151110749474804660964109999382976655084061080060578490035796775407203530621778552120244764128768962258724700693850752277684145662084956784613213111012730023842373206902682393443803188187694883737748755864502302750074478979775210636189133716352091771303293072589574217357796887939798296759340480698656371850832470622325016396756963656231373436248074464077130822515274678513899201660351914003165492937107144173070145155660975457910185583993410931836015708953867475624472320758770870544993371001046875934980622922073296790083573760843871028856818575216409285946168890444775744284309259478501441342104981430327767966441244456676203734354913802625936110932182745621520878192950366410145562825322855315344265805888512390951246705192716527741737410040930974472730627582637244729911138040838947344266606937845188926281319804175650011779571478907743773631446432818077996353149843177753612218186432141954293929846708619035570003326916047660114179474467763854992374146632970980519567792183172651169655484239575344782490441722341199734544947906846997073731421232016503381462124388837538370132304695881640027863590480100236523593904963972461427186420233939359682288188319834925357545165740549142392289214436829334811550191350449759483571480542570341042480668238603852020109441216630886809832483444250365373423207668097656941269487938886168675746765125185701185686019914856308475291404379584668647108963476796958591233233833820070278520651258510697758128373518934373624011008926962524256354076196984439830367015251943771715656569933387580970439522480476859375966721927878904150518920372674006894894186051168686600585200501033321466457972350894387815014699084138867853219950796185116317345832261463090795213790949571130955724777188831155306466872818881016739476352299821452846921907244511480292837883827450519799539741142836167013132696960643284167803387608473438533480305205551772109243646624670600752977150804778866743674362294914442654212893012721707103657908349868150865447676809295942671836488446693035472913894953157978098189985853791525846076750325359647167952260956879562799850869368903186843421905382881285288853871665834537572305820833227431168309325772944705477522430932352430492216904096486430007850281554426972656917088670758600143722644567209560469481396251287635965768751303362178262471704663078256889467667028089901980366878135332517932215966216762486119690720217379006273193087357530558930399198800089387534255562900042619600420369135347296000559388180759332940889967746119872837176748875464289099382819531614909922744281006029541932903541184546912091499954445089227001241278105538579958927888178095475170822857432004199120940750424129440919757249389240518378033665038710180233198991114576456388878890053115810451099190186197779854278476404689074876301248802071629294274868170539343993494726708460042618142869504236085758633498992453174620226519226713194300514706577849037925463216873915135443002173952177737928599422848092695442574458032288778896814089719075144390872089898506401570945562508957001231881802230403099472903710808810514114669149416775581997100644341291562782619768495461999490313509904701817144991572850653929044186938091351254732199125891685019686890657762792786396654149986784359561004541202381563572861186066573711810683368747310563909257456508751464930328899588270806868904647176565164379006772763932508182247583029904601237291458235735404974385205531345013375806995460609244070374906700696197203743471942410947820252012659799634016521295960495251831641091419964277679406467074543352929474741652953689736636411083534849822146402807774175549528905688042379279950896662684492261551398187287185210695817318223233085277592045379708095094096187085302014607977381055705288793203097271809449652319783543961956121076853799556926595933272833795067639095238054489115621706144585840718437693483421416398916436612386671708279133165341853142686497983337847528697370760758576683142887621697219203603860351914816969811198151551755591809243354593345175668190590038718620423932936458680625766734400543975217662198325317490050306283286853519301463819725230609088055381315348856104793908467701256265915001572872278042122793530657778478099056539458928100510821585891870195337112228195249600240681455347305206630926718818425943533713432394657665548401086226024623030265469215558162307163548864478637497662146506789159516554357187915370341308356541120119988219892653106725269159070060037419252091756203026122661837109227646677459396469832751684848716036412886534731041259540763801299219805508638574701961586920121953262266261213758318389298471139545406412188601297030594894922785303892197241277061600299971095085424771188417980999138714760040303539168508071735710032265631950265348537842689900952335534407837391664748541670513880159712557003281559246195591077768954450677959463351187040680004352351297917742045202080970949810679350981633835059268489844886723723120867994985003004489822164649753623907485878253154098157778369326915299574148180898944890373120549897253265721022854051020384226578736560721430317230995116881469080245908354818886078851270752381313909906735388272738864969357166672747324252379112611213119923007398381767670399104943110934745472534804406844045183108833411193319674893001161295007007108570287493165730229914227239644037773950627231085588858929940597287659908589201686787140917013697109673932198765755450257423787851769000383156889490318968259426685079885350283579073970327168051547155452544304501169337984759354800632227668745807956031526170771860252798798838301921667666816992684430799694401408894293786180580305413433247580031298038744114452687046339145826345353210398655499364557662773134917444632372159895351805586216640207722624875212012121191149160930510889638299791557676162480032674357714662671659590890501977455388063873356798294851912223595919594843576782057518144273426685187115638025082107028590781946625642769471669620805236664743786193137139937514116511420733564933458611192755831421362938437408751828011655414019750279426330962528920046225488661737019304188222592145945310962860214462919267218904150725844430444867736376458560337679063543211604314182052764032750457223550479642303300619470568859861053735686132864784545800976697369500450475337015305447772463592925099383407392631521912562525947234221915148320533006063994355147572091347815830803614619917706068820715384191210413225851056053531840187872165460021877957246381234726134193401280995371389469374706782422065070943382209582577298280387975272167501896283563202021897600412664380805454718848373424110945809094462788195991581812771083639048512797575334707946098195159118541653114274602564044897264562723960389123012023136690718750588403571709553687159350976623806277794295222184835616207336296397492181336661605915321973040440728157850035749758393350768269235539396531399221017071562948196700721082074902332985519314662672251106685510169603781894893303943245397754291041011189445427067061629097738837880791610994635889750101289738696757696036967740456750902764409786097859494989418515845009264093662679905820393635319885408456975619065153907478902277214858142754254333190038092757463372166828325168268529086298332161746414551321620718184931904509207720027032524291891298242499390910251181092714161446948063779549076228008605065436605719111139395019577873931526025800929837431196564754234296366716452296358092374732002806475065661810697904337226636368417518060478833724319878071320269687155006894972009915318554906131515224893279965755661194879271851213683965734555154900333653392595577576063570080028373627729500885919365359920113167211665910738610978698873605617586797465574661312408528558605208097961839539908192767584974885867612740640410917321616917403826992096579932393830096373627013576759961670882670926232078543540238912640124031219809906728275221370410303216378714098649400589041135720506196957289018937205799055325430381081883724716844762414096086389214544031543327078800552059997862241907581237817861322961431852559238762009716478471798008093460730876331514308141110615560570828009518127234329764807862840636866109893939732904285555474667523599510285175971357999564502494384743790123919977862796643317001429430226564262849639070954708905625784502579398475408531475780239463057276557622657134746541888869384347611899643954220795860026067383745772178335330457208840610004199256099925376217217783782469262882044432747700836502947732908926705147342484970116241799811824523805375371219738674421395167445439870499772969462879057782374465956020211777379515843768734685380858185797073582002638743792766021463177105224387722427456780167154395697927577147055259941620926981067072302312956060801040066298058043783116687018212225391399871523346076877639529996625975014361903276484349066743545566163766150998329171395736282379917098533735153399576034183350531753326234845529811258041101001511565831509463842024890443942744833066213545948688858981885057451897854396506461499350902587915679688646463766932860535460785541547357827353465838956842321320864772863170053983789011176858117594684462728466680075623384744080177934889966367869838827736584107489369552468998625231865974074508847562386073821465148968102689696128624604589587636292861836679397153066991974190684458306482005815876395582318136804698605431896215079027016335993040214403144671140165978422807606396531892237404805749478619093770602044994906141082550328920272914626400132218599128344645258353811507168613013781250329458954183827706423914955504167463148458886256517040098431422115459649030012482105822809751076986748521164722973994009699804546769504119741255994652514048740471711022227271949858596038574769001252545747899810110595115483911718717011174795774837683963878491961435863648935651093429885520839904162957805165958937223126216482859227284757303489886252583962164805796490985191168860262556958141137454262969095796177559460706936459726169203527663921341075519011494900112225121625295906121925819407781903497517282401729475768038220427765233952199957242420962288863711158747880304230651876640424831436657911749213720639515681379659776558939020766584285633096840574650219921224551964079087182086681868687519261600396211699324279663909140797243864454989095344533588222838962337084345627695473334277509240924260201654596703194894589570764434900374422588444241922761902560718882331012742005337366249397791126928111166657333514722359406014359287836430654505172790308073491381882085785355788300497203831202539389751131318322632140516763688983301555281124486367301609021216055688675813617200022235057937439495855998561013283172161828449578905090817558312323336743058241793350115746294730306300661532485315581231047806177003055461486216610065340406224836672743334483074178559820477006532996976733470208271032584148477814581318003517225839181173209163323965976891289804378299863735058369740658691485438531471244185515904825371843286789509878002456471606021938329478889466469082248086218305537631122317046107986257311889973220840925693742409123987698255525316294695322817495248589235982181281557810272720507081080717876586125087805244026683459424015931231440547564649036061454793976325601109714870866690994670676900118915217243508800822472947186168996829889021803037810709118363083337691566331911996577669176659746814423305589413583948849230132387571229338025045979980225079479155992028952129616318086021483413554232681707658036079044823758803868744883972828458612557159746980159096105978698673719397097289032634279468538158340413100862628320768301641853374469685460147664266851268999885424936688494613584460055439195148248672898882604701886427520963347738649011434051497448178809723504205751865967482190667203304641331169336678527018200977419238690103141768111099532045218073605679175005510549467842735723950489538951048317097818483980418047876572542381729451435535372494594501338116335057275821751550796991774744061187707492487195043994962272429054184189677647498821551873068569384581329545221635806777972606058388196937193169193158441372460020819270971164904777571378614735769875563227625851160045981547999851259768191732698440933153997964706857076758017845085463336723659836326244724526436829522162313058758683094166547831144929420988692932361603584140274464491830139823398259311514670563555466274751744354104467148495198745066375711386674090955474399630417577967745338209945267665562399794427268835109716621496237562382969158740204673050666186274170638772049866431977810433829944405167318969397445112052409607283003626967663183125629362438344137567835241129195077666318294193838943837017832057387769868880193002383951964761905655328592715467404866000359650174089921521345513879174588651101804052552982726378802701791971305448289510008788709971026137543491947832156724509195956825697304976960675864575478651708206909431275228268847023827054157115438212166698393644591167221358571703942943873661774929561883489027548247290609972548814063594165660581380155158758719778748445076545674252550804303708699351952301732547747741175364392421029150833908555713333871431188362638426863941554682375506949491898733212254379758708226400119964306434723732992996596518210592296252784635796683584968877475873986446714971433024777385074570196827197183379096066416885480139779500914612206356698806205064996039431059794932704949277438533780080941435382827256404064838768321810238589136273041859140515050659237278996310063493592017843826803788204472017212575615331211651961626346717069896193780522775927520070888143873570376768567138263762052787212128180887173676665698261636778998086691193624129945352158154304271468132087575149793689617543143541261813993680711679368089854292027270108442216746221834473210030733012205035804703486080079193562144357646838418577899580938167570841579073546947108777821477744919177861482249694904688236914364025758581774942062192386689703281826423890945381179080794505487851547174480555862389549215499432848727831976416325545548944343002353189088366491294621665190442580866726601556995209006845200105073005883392034568308191692762758842429046113444349020613228862798777946117641787142433456074704295729622448393172469543512964472024757451218528065099623977160979212851652735924993361733846826317425614479821217664358903189887759512155939705103503740870687226769939201834176650164727385461789066121301099928945332870275063903796651380377938227268558445534931432642289042805092453194346622329845159830567484622899917215473465348439305339591659691087379705783114098250321484452715847435791916387861496191597159730126673914747714162624662913674806590750201383474575607146281020869040822454779281658243797069434740473219756562777319956909953362519522184126299953647859321397825872591785614403510232760224582334681335844059950122115919675017604460401430959948067751759327793401726651864659393521036741093936104487609043380224908313418450410224678733831085928186842166851633864270182404961832421692561763506388109371747410102982494783259703496206142194396584795499564565247134543273031667869662309255310399947145059398878821848887473281845259188857626224479555850361813127740809612864429633916454635310893385767053437306973524123770733374031985218412331367198460385449579324967318723497769997720094638042415175626141514863087664581719877946946268700250682966580203796149067408527546414262488333638956877219104533604998317017572462809117218958539326348848622820776073268831839286912058414358491331151074206963199263673301421353436043872558324862284776960077287124125242659087312183459027023784713136061206458110459762433780721316125989593680852727938064475497317259065046447430224674423419047821353542279921890266064897240936313517459916326069456273756608148566749246840897421213422442498448463764225114655860392396323643785031242090161131082686098906551290927452895756154119353644727585879503614983424657705139426628092056466786758869022790687549987106860536583314282599156340966140116731885773616100640523634740254678684336114135927818650642918552564423398224570031837538258073700416096657922422914613010188442410244883313941938314242605569810621046166611582889927318696741413022802291673173198709023047661737837312629418839103527490052496864442121737929371212487384372132003321002037705073083029774283376770794028789034641243744586867625138707029059581349896575247748987539782396166093501970105559057460126789565684287462961846820180216641737373687185978824488667678538689747074979244631331488642716914234672608239938473099195598180533087110597472388536901234750461106990479709255710210793553691781153579899382603103729278628453077206672756249329552339676340050442995178259504543523622999213530007756746781339691098347993685971964071591467503250216770633516523447895617536473069272730380460478249484830494235781687808421426768838367719555991804540183468140772407376966078007890918491385292111957064073626264379006226036442235990383513479613704272935792607706218283940857962960070030801080569431693523995613472967299036490122098792683957748512894522872618957526156482042637978993334568070100224329965290329809486075520369272513521187968815552895353504520719048373474431808340141067328965382481347697131585901757960085065853836563368607204119936719899453439366072154766223001442360471905974561064312866721564607404643621389092626330081045064480669636235398783726318100589371267414426331654272023374601382242481678832385403708315189023893089551250581524324099191054428738117351785376914319480961980112192447573364152318145430369098763956588375601281138174904195492887865162002535713838964004958275436397273871958078837041034874141246612538048084537640825458292317694510229807460336364530477032580568217389131163485489120938100879129490227075348728017858650076708817183992651693267771543954393811868264535699169523490893875520021077379637764481677361040290218692397324337501235342358053435110566319259568304629092836294184182311876150167764193002979570354190429600321870897249031225056202849559836026978836160301650496606163978447284672344576230857760443990750982516962206833457227712375194539025756336254634211816765538326605107702316282615117135433665311283779713480435639481046103324836217243494404781647739390180191458695973830659474231517099465009223637925968638155800778806289784030053843604520325663321676902494666092712581271474361165052826896325304821277285867034241330097482382153817631102237615287058036252985320242189267666835035674455730608597362819093836078348470053110516944827131879274481358821393223749796149255455569151912681276383780448899075138582213643609886872934330700515310021228321393539648452235641298606459121049942136035243564237027586510851038712025858342835247907859953520201010719839525619056461939693920426103127309922902193304586099085362895749583376095394023060014311015322198379811737618202786475537574004690934158222670701042609026704457715275886649854134323923648463687567360786292504543915166352525282382961306464598938941700602023119456334206925082917148290368334995471641918555140490611374638313600775133656947335889192090545615335383145647256216696260862807492583424861238161411238705891672527419291909172857109887082538742973695500487228294637150294473096616370078541119504400449050843411912043282267965833692034595977471466579152609771530386080967896065102792848704728202360295503507773235230404166975560190503764100100683835736491100641634711074352517235863152559371860867483778684999864425667550254643985599143833105661880110002082412039550276809917646462771361319805642812380292354369768244280586777464368970722704980704473537156780293418396855734570962969181267289393074004844429135560949789567872285640811378831718258047785726060471456961276427982328927701080095848717591208787007917624388660394008231589887773779930885675309470956238683180906293283461885872682741415997618125861379982376849248480262218169086776484248960735842921370024335089088302025146378767630331662150039934896756076790167611068667068950843985301236902537033279817450010343079568067446810336358891183654872060738549068800292025220244574082268925923592808112064982430297958926092857928965324464010550321711377576286976405525060775907191585229872787755655486665483916513231353821908807666045394960452331748601349276729295658386409345205843568099288032613739065617107287490552608633973852236016948339177450829090294269879864936513880473140984457776395900507044343707728373401398066073857324320020982024890165894042677874239529464488852128735909198474250238628085402612620954555871225233430165461042718524852077482026304796614762649645300132990735942503482477116376359565910647190257033589347041882420467414963428048790918645203678478036681342560939710883329490849827339945828747604988082453319029487691262970598806545628629644764523284607157791576720210756001779401123858580887158330364268812599915015681281838888444092557871993321471225064202718818873676650068626036474076126548326523555946070426939375554830635168913025970156393577889718641127630268140970319862699731525689614553980411741343335847516746492278413215688403814534894848688254321009447273267177722651618567396667777542930382566933266811728862321350112474204039109433594299747349157997481443582546829465380450149386432201749712914112635832678285551424182912314281765233951780769858386059659335663408095173206138871746872900213683493185223563863046119477607907232079747734619513200270711356921033295103174203684044069454676062395548897015840828345367929115702209135565320491748599047805567185396356467015234167977839405577835756681760555761665751061219759134627154734933053341610147771353749321482887015680296762882331920670524476580320102076871548672373710043264759991646616638358325321605245065648693520423721102398595776711530984181683945734139638433664062013742514632379494703903988457103395933381866860031177016769308542420419863330769349149614483320072835420737011527071534037674778410704032601462344705663274102158340505218617433317591922683201408576757881750756955149869638494943889274104921377094308827170753426626771426551153076032560759961788928971788202881198002546961224430679804699424335616297747238795339555958244650315257478691078941268121518855682419377557296883450406838377269556089223475772429831824098878111921843202157836299021654940611908904568044934194306923116192757332565957143372424349884309200387144301320308075594397426221448635949251786042231030336779847660445234842627941007675479316166673085023383681565384819364387335500642206586363354431189728611902567783123076527217479744100090909973428199806794353784023808103236155289307139455294181089322792488712494885052060428401964827483122868270150579413513301638434879758889626030524987931926722974320395396597333224166824767725241620906536053607924507379208919565821666081187685672944299199174888250578152718621711675244861567942446122816277279283835319318810577613359190012937977144681549031190216758961618880235838393422346319039094061173596936046404951513876177110160354958214539697717519416580413064999742310767625988441663018227791513524952160080988791873548989313381839218819736717333646213846143547979254768017483961216788306615771381823794609159773173403975650329921230584024447245392684474728085072674893997522301272028047692225010968097677063875929334701246117247686590895957903720510788731009142481337772548313223686616907901605467665999452404709656614170969852952390277498546990666137598392891970847034172513140480090016643822135637341030342542544484654395788903166912766586367081099323917862002961753646742399008241486839355254379819508989203348057451595029505949125534728649670970490189896497003162362291046206891539322631709783249578765023866558301537719779069674549254673937622282535653816768886971932105769710652104578044773850639574828399712111667004763336962535957130864393230470323172343816289903579030400098501682965190726829599237543828904173250781655771226126786380072326066585141551975447644320606035755481235322059319587410254240223760727388613053781811621665587869425663791064961557450193716522874925481207570904015675882435731577898152220773325273988745951930090163344605889920011573815610466267867497204727076171612788966935017837701620062253180486373511415896132618508991485118685713152702145552271717875977560398735871168255207257988281992656999741356778881552802569770776045601087535980352172765936031031366101178342623178857912370379988652692480181378021156831891879086753145505917829010883243024754427462296796080179441516826443928735176574758051378173036379326524884839118445115026599548865598826494705412760227748210639598001712019277757471365452793443479768038032735092219798061367740943237083067188469926188458458337170072690788174922373018976434269889966355616125290254139079005087486403297318815804323123592924077792566185024575132665414171062742228070810467462895359010975275830218010692784573312850374218942358512807884929060075123433098876838036659687620218812082997205498451843006695542131553874630390905452562461662243531223210246642073318851490484054932131792096620123401271963515513104318789480071158837364296349339740131969352359566251989329425487005501087758185502277788072191586607671599377550105017322835190823662883271999568323941871379376514567947120383958950300170983989575087813377610438869367604204336902056171647344260443434132923653645353224150056889081198210643245328295901852241206778776733478739765917653891013486939563804635401450415089415438939882893318707326446010641551993572020597817354967053598946228505798184824158665530472997719097186003430641386285394670826852988286632687524492383035734194450039132001435726785020233611495973164386146196867523457611191931327649527245510428092950544534842802113440276990962347982183111989223907184928478703476703919978274057527750929724582889407684255761244940268312887786238880069620411009294026191982790093509343523928852726627004144705828752366972576608047889092703594848907242058500247416370847916998430390551731020225442671812164014489057802203819732906943857507063295852971670261588035144082973507959196801645156298093235327776074878176016690903663066938022708510577504019377691012999665658529424613382292217675495506174737832830497447355833281120231516376790767085522252038066655559276447274710905344659166136968534259520398668113988962948923162386186873916702668562147272796333770344313981230050408485213642767686516827393783824733009135173603621696885264136503545917742140854956379244213824479921195415179371205547425515573289124703057354128053542983892071451202158922828645866656936980132178842653152726828961593986618191690173216342196280727376087682159173181559348062696853709871687561133713029519268858851408389061146851032639437746425892291776758627041928485119033204051250101307906219147762145384694270305459818394060616374095239117903543758104711929152247464471621041337079529910362983450968807637052316667628634493268337466802206719687779559101721220493319082875087037730719835892161872894227557569388717496927796991727020891098854214166602354132860570547460363924664283880926778549228312523115664029302103432699474820072733999021879925694021790888802860212102861330226688066083961799104288331248936720853553211193587624469237967650145792507942310347371897470946844074653358019088143919161893430195651115291360703418293978069548534711277605871902215631331582136924032362242321957007764859220979781578109155706888434538611785082810291376477583854958022235096050966402673392031285293100926656191924406552788907259360163646926672040349175628384528689386910803754476309653156663502002921932313354748613350419377369625119856626925342717151157841582677859801978697437127646467363213999727155387578073923720246244830997219539009590366190727592289039014281006446650721664846996323532814097813263213228939585443577124469777007125588919588573689071421621559015156184732930067127125374249048726400342325359620067189318777460620645470143326189969065601178951854557424058478488673663256290410736542635374362324514322426463470662250691795244218278522173246016536887763492121037277645326989249184095360579337236966816728929652079272589054626146821014452079589581672532120644546524270865039203224189249596541570577145879918528513914090388285958698117078754672408289133753226122114581625015706476533414604625900156565361548601881595262633146728251448148505683894808653371802638491591651480696738565750091930294967255159850682207775305683614804446116240069425983550853645451570873986961247131030871309455886106631826721742956530613469808375419208748077933837352992042665930048491321358316076584203448234202778748171773262646910996922222775635453040542638939284988912109921550439291755593303906253631276968784098411092831402873405807916061734817292414984100383349841248380710972480823141438063779225258630933537183202428447813913219523750909615781953156263723061164633057057654643967703958821379265597367667046358293261087255080444511304784834429208125777340943349784377660516699864428351487679877226097689389158375009731707334550054316838918738541652588445354234049282674149403019885112699408837791971449790765665877680879117834940719597129846573937375197027546061729375152581006660450080357816993191700418327948755284286104762560381956671253044856767046799445513548885704473754679526104845907246514076400227057487876659722682963925718614223346328318273644688009045893441341940361940828932893277803683915434998999814315174852218378596168911020327482671155028588170253199673220852331137154757474106667751337471921316588161924578681825569697418703798516952014228569376924735602486599775687152413728483221767609303773394200588538455835038421568074560421531584510596673809354355453012298209657477372946292905467492432996730149099371378019720445838882028836102420484810608088517944319644218444584286988113411863350464069425645928001251665005436799489974014836182336935189715559199711978463617959037153626410821676198356704573908212172491292206316160348537821170978000511385076855300530091344713743480871041122689333937156574115264318699643752687585573318460226633340701777715028486864652071149492534302637946172332034088227704680802286049273712683182276863145423564368269724033838657292696896083903998354265893260724107993551099252590834065179291204965876665215862146511419190920995150246277043158518680482386165003855408180604096058110798642668990436437168964564760537291112307756778728485452174937246295086506730444963788728995001804904672698759105895477250190993267589837865996314601041775164723994655903216962293516040316826543639646771310891797261813413073491052306717674807373608602175543118897289436451097895983043418946555430656195505767016279324008111444970923057588230726975390567193730918301450739606059682945218245929159903137060240362552051982370715553197863410063178036560619474115967771992387643318839151203090437462735263550491915145235795542806849157478674263278758974068255875453980809976086886153545872877999554364212922369787258032847694571441027204808887639019224740585207869616522566964730574263474689249335792622691889845876429426123556691075481326639491921886504247459245566632851638615757357000337871601472787859953734457676537392291189473684304773072736611573504762681664153063536387019282053200317221172844653008935436752610898891206107382173893425033178355451380446257792552464775083512873061656132378321961948036455616508318889754549239608230347880136899046633029922959288397897188639179827669835455754848707397260891774709468010474407626048353046884464049947603848331915716116879420758399637464111894771989611031112518081949139933064686657891309746808370755049456213226288865261054240736587986455036053620283141190128343655115064089805965678713669439774453674205063579089676923662739522145597337124670496509432715501915557707016637436048045654394911247772439365700212344719124566104545695150468296272903241952392357370616199787186912759328727306051848918324465952623206396312797147667612578253909170388129501094766696984699371216313461448908651064506948675867872087202392710775756241737101868310421953344375898084937294667577475731387354917249499596050902403661297620510767701848460795913640741205014964121034970358553083830045430858212162934750759323545794979306696657634269941849406042225706419571714282213545047308705192093420139691554242469941394022270999752957479128780568076153805126767053662416964461355610222287994532353809165623866751058922061966896584040006707313028017430408462040726355318760796435604510989733138822301515842825907489581973445363213212186827217180952224980226107569776735670656601291670744212222431654999783613183186224543225887290559626837685039708014564384947117856533424110996682462068214080415000935396322278918039559669839177070534924432919398086204334988365334743949935866084799595365901816079073212858950326495004016039550872011949593367276764308521992762362759772406291913511959969510237626551855113714013351859642233178498601061766665552220744754214586777956911948856207721435840069012253491060558635493508119416551123028951694388029989487880093055523301720252864887054578609377281789640543366838436349509951771186732457218017370076644004907565891021630773508022768569115661499676625593243474346166123493819228810561841466004494126377548370454507840725816731468436920230597088804300204140392285735664989449765646986383028069403845361505905657758906854703458252521955935631903593866071120275706525928033831393985053639024355323332959830601793401332737706473450969727955854425681418663634946149398010692916334594182337999854039909545775169776187534380612908263928314651167034290000210525760557745904262059164288414962375378864350589458872771583448842090414556769623610861961423600277856454640740794368537808892983953992011880537302528375422796015524307573252359752576417771255226747943268781860142679904570733760915876779185535854895096257545947583604941249009788859167008781697124271920215201328589773415438554007782819793095556049576886189934654816957273704592865921896471426591827606446618942052842393770277295016796381105211685825188802014243563742478637695107733575781751837055521786553286446106027171719181957345435957437757686171238979161980211841303122895639553679687426572193369064198123466015918223303279496833652806840897685613193721651489743926841914006621597323073285564055288047619249292040242106118900305523122923974752283932726873098329340382861289311720884598331920665432005728429145745757128030459474710521925310908144310870067174719586363124439112794340655236233950092127242663632989807221499968183152481092022122082569733585510140345458939143651895515831310189246184295214769815583363938518615815472496051254072830945750239457725167905758200612185743693375150711230188851685971615105925104486617574330745884845627045551215571666719462187782836946793886597364159497544152213834977102695571396370340048746326679414109046615621582877855396272491433422908817929020977201243767011316480705620950348978570663631054246842240480986200705766221220316680098415215517933679565773711601709835892102424994468697873063610124776786986133893124864950407590123463715103758444681289168075513243625257654069944130063156797511136494825407270080297587610098490548172981975148065851653226577068662468249618023182838089954821795149439459491967942285306872110248310035401107156842142992195244361924814024407371269107212380932600492388585190660788265510498164620660167593561110661806809330611078539601090574359092797842888372700489689459865371546714707350262075488384174012138413954891273173327966510485726956474319322947060486992511136069205568996126023200457637490538661034415188763001647769613405085213069313660612847862166043112873510741814190471121423022681037604305204886390774877066640724771802098534249597989700231447171759502189198973974988181148711171918673573083638927265700701050320364376988947321043756022042932731132966631598794237636678692582923859855407947842756844840573829364405664668363800792248646661107674555284804623735707058536534061910573233634830884885424537107034384395577984714455070491855498381256021672741585421282076148989920337055249625519398365164363868306919217590852904128428328897327937951401694501523644275176174498495307018934787139458717217411312781837105258944169971040102048487957790867553972213967523828691435341329513530125788011046803853573019682027610048735950397345152163540465380141892826815014670018558472190633224060691723800186640151222659539810589178167048072386288835325218909863186068828142084811823491334622365779805023778944555851528998922566925663949648696590754554153347834202570438132432372683587322588536862902886724027646942729644397194304840319227463331568412835672276828842111253742678691760571164780144035189869027529562880433636872836001658161180367113673539087233346334324123268674195651955212014237954601065340376079073747087332020586145982910424663679042478368488804674187453191714255975612227746494402548251132958999238579716795339286170555735382663057452624802876733685573016111436650078207145076823632867562951221058723528907866258685176825986161163281102890545718059729472647821976019867449814734857964076639211343176989126710090293706496350968381814674868144038468317210448376883057448910312979109859976212853642505739331836584642619228817561239761401006308243083470081095363051290736823662583275137365181809661586552607155248931435973237952968643937653206027947760654098625197050960554964871117600696510507766850413768212667372910585715518734638721798297461716726322546032669569282893394496603950290074898592018225858317141942137645596412658008095514356827115398780783160834409253352910475958903068309931396900463569897644755878654620180178899072285183244004648174092135974298523773488503882505202435793889504757035331048346600153394824946026858277989831710260431217639515101250010934041880925959230355943787255779896271718177097755866635736284659309509118558618603219967118073425816440940336308292819478175758599186636208876194404108289270962036249027536195853180968126503517346044021135616545318559768705390759585881404426196144792857204284904203597086032708165370533079959667557693773950568607481005256412607632340167586011050888724977295127946309440176019005313997642287566029225544017693505602258800076834912190552188647932120984137648342241438280595285585515390303696124304993181010747893078851743099587548302699680988161042414250917632533047551737342976240832400812490770778989917716271823141931641315653529564507680874983804845081349826150580421896166191058368362373891167252461547965539045963356957292876539012387341202464276645622268338771291642308838576488869399333280882692522104764690475305547995366149418006703297605266181344030864737155781520555935709603013788613629149201150602358332807180982677997442234467663294325825732311071379200614008956088801115131772142118758701302107145792610365958056466830522471590657152792828326698956119613310350709230430885265541763379397199540189464189981411931783498777835465279431723350357102110735961803678494032736459987198834068191075945031184283321235042335295687017594341798588632068298601709390559835050432296323964052246604228600720880392699709170234386308238936786140334811687454436003978711170804525705476710791573430240932396903890161584459813780595439335419259118005733272811273367939967053323924806943862046702508636408330445741013579069997697498813707194376596720313897662714807536231553870824787369480651466098177056168865879133366656993729552297655023514789463936794712727268004433042845351817058026580065247848877941154580062805365423769793704533704332193949862870458849825441254308411333162738061685814714327844732856884087387401279393876958859709949710903564607727944864566576705224340483122279094306443189507297493349743275433316119811972893794363787395309108309838627451353127113646903070621261341304820910592329155781451754708014014934758669218759737797410919196410002176952445359453638831418084628283161758498076159588091949020749853528343170164729678819227569805831034974029279433668682282820181523917579738823320395339658246508437898932736801942134054823855357441226410274439739552083585644415535212105802580339268259306634799934399819198148795968027496514457186061289704629294543640278852143904755418057782195027773781000134787466708740168129479991736232638843498007173714583186988123143800572784313399840141666493566111572955859417648554023781033936743906875007860379587556812354017451599273273831144515683142087894283570630195259362947267486056858541323213861852519548532702816957657211646235200360526985618827579226017404438270308955560940741745972586717740535251985662942362348645311542804823588188235517583068192075201866606747289788116806273855744167424808671868912726635919554995619400324344647975875779860402806763327726893759424280189028174070606404237637006107789020557708680941233350655817903880910830210809343560744136653986241908461659809797418017676134737306716474022431557148743888287145872670509352378503902985398797255213667383530955554147592456989416234509615247577636034022590010857617172801147896906129730722227262538606971061746504596213936212817321611925340843933471802016546695885908576162189602335209733295388329356404930196226093693470741379292592014223699716839895881131801415122281103204907427030400935889112167241405825308064990958093925972555294986627194328999135422459491397103807955770357881488441452465868558088345361693107878672054783855014617326647048137079589603501018849494501200656249014295021139626148951473937885225079456501236445558907429600600068908284132585147032340884475761735495387754585553998177183575140478661450437157175883650205788663075896599231052737374694541735413027252594634531726552601086623562536367801696054308620941776693665340661327996671671547599563236793823280448357025942830637261571297486440076311744799577124407483152361793472298271008594669404489488120948215191906594936082757009123517922081815313569615244928030312168415788838114417468424322256858691428816079333922037166874966762588806592322071566133266698820718031106964542483865969673104905781567704499691034530838206203137934945317630124336901945152752351071752504682895431922434465466790807111531199280412180014829360243365122882322211188922793022990112027797784420101435459387383943307237979792851856292429914274583225656200838212412497125104567217871336304878478051552223450519829458025872531814816490672371103226709786031848341235360512457581483490463397363709383126750202564740623785095987179913496416546248515945856213286036013711275410682199092485974141510559747359627159560950428903047670659553389867233920192046784449947463963407492960854842678836418845792850693039258178337859018896897342459635674102585641813349198677636993507888496573507577538833694193736115250598933563623353314210783625528969445639039593835289845136669709414954742533574839760686156709033589447267990198949646356182094495958659154858009306187707839698871142059479657106123580737826990543814047749359088122980465946592558803661060202360347251272437786957913667274357641199587674103627908204656451354706212730366982310254768952846819312124086674036690705642560393531809454411064413219069901031045264837856685460725862507307665244867456401960270812460074819937988107998176073880565822915217315998402780911027533370258309872292718350114813691419952613130558493631242223632645147296273463193018874347281370537863836299551198645415766173337155740894956011870022594314669500638633822917427912183890943887006112961029574029870871131782310168531964293372947693788165546641907963508700469508995085949033778398822922187871236909802123555410303734969566819547724769596232561128768003511647108256861757941770803737856981371450349908536571483867486839888483332770573060422120321071920070913377948766416632387754944874158081900780589748181388229103162986245847449508803951656533386740441321468031652547769109739207523069553137566913301860647877841249860920810865242696388927845749278611343267296295446788909842130524618721133797717210777804892923037164242544697276342242907591658506767585644361810382438354635411722998317089833475019437058953621549019175829498625338125953402365612957116169450242407310329532500757139965736310268366898544888747788134765080034649768319202978563507407138200388931074348887219999365747847132155074138812737447369063044849035133050579177602164367170388784836933963314129751567247912394482632805329320631854003980163490051898718061607108757759150842935465528270658976229590678544567556544696687740997628545711069916230774288848268335782142054747641959150551005871618176402541354317974942735553181123811796255719429534783335121983642636505521030643826381669173894412492998835201110006957763453748250004078712311728974429360528895278220528884397752136958876333952196907373121716647204613869242132804250959445469869312714988878850492744465037937657126694874231308257715510319493084546811660031414741073503436158605305122355140424667618714250115607621899232153845789826708183268801103578221717702558899818488024212018126484426401413842664693007342096947318558570117499080675924168782081663432662522353287155236361468595398393421456981744499639517729455426673707491180395952039012666322827185044464719362257241834403817233873340827190080264359003197300444760931359067662986533120583422865133559108134600671839572557318620160792904383419679854152634824675889671992846918423754778399200166593267856755323176480823723628947708183964211328877368582890100442681694046360276562028696331333719989617177503419072100166645196801258625713321518436040024056421073254541080323067183088461244048031635171461866609400181387093440265212062895850969128313821560167976689459140125027497936386612483411618860091557664930923936847427231115798084739653987752762979036282784736441101382127525484207382432633860923186160833034354976848450586379979497090244564589256589407589576575038067074335588338951494153891955700869065199532250882001213700871516099253113276375794244404684075669724667891273680814381281867046178753632091805468601190705410672775293169660728548792018452981736636732488280448493997025328338383502199946461986884602685310057840624086621361656377196356172414309634341870292837210732327979506645642835837946991641951337568758063517465142137644344683846682928464705477422886431518240234631485011834321311571877141759598253194582207053036462170285930654511182089163447590054864989297620419578690409994289213012133975129291011179007276666035946530975221376690974430995993159821394385744504033747459158966557792501047626946280642827661230035101874282752728323424127994825031185819587404630725689499302521091998777132862035284112367873089229868528649278311711001547869494821501720677371999954439520194067886147535031723819043788987874594328105672183813175466493930574154396009108244848291743520819809224485163319560580963348174163121682309800753897807256640070786221105114817040355003995885200510286110084987954976213037773582434952806086689636702520532398192344129413118150479696794421428116475062897994483957251108402082398585451029572171741257528194275171832219443550690689749126340478949080026846657273909532218009161257138660271819338494869099160328298507673681465099673783672576740702874811797982997824365472055979912826368920756531693754783183990883500299000489081801656511695505941745094090458616692523910019125731153937386782214251454545149956879277884987830269241049916077793445925322557167498840875674997553236320291333651463290646403780668078403270331837148078033270452107782563559622844608636731271245909018547408386152188555837048340353259527244539180988986666588166235272849778678035032343277092887547191561076421472063771754599060688366504856855698978588766378678608107391620402219544675002465062076426147478009311688265294467568340968833431927868345570579899835745970628860442518707769240308700582895604023448677220058121204795415416659551247795873983300079918293990991722092834148261784978364562205459750172456677070793237378528546841146525302394058805418763104425197216810922222680917647860284878666244304729629753129518729251246609874602860917491385067166383470913405273295336850611466348145402025462752480350157967292091859985292822907010887785624640902407522075832577454607334290051845564162569755822339638059195669445044108730832229033222965499304421561236586264295421071021231795703851562254105507285006251210733513368906714695223960825015312040769518530881271393591915926055167694666402071863265502227271682201095876254478429958965743661918996412855153775198154654291924713125323499176440183627032812971270503612184314056863396296790947722426703392599221671240049424144549542465937321811907191276627011305905318523522025314767131032154643279163057533015543569987963596558649134467796900464453411104085539729499863642870003265147707068234170926406089769734913164345401763217059579330115989684453740037507410767172005494268041412530653818486410365123612856410046026972319691441242566721457517071861668547957164001320368195417404322914609122851024431738221543684205911825355016144037429348019605277438866825908890135230233155572146434729274588240670523896605095035694609781217191731171561160583828130518515947370568298722160978661587573569617312570884315541403267947444755368437409958496568630519437083737405865717428200375365336398390420551226571747779722486617734388991242065535940873713173927132428321313615922155928060314227250451307194254518559005707063910363450953796201340967484198675667108962651041430632584380940972983124670220944074772381269986628270416377197677048734485546356530472344104003627457682787809850050702821381925782035350426550273180551542104734827748348362944642541963433708611137888549328025598939745506165283832184007219891184366281583336778351568194294108274632206473664424229923716966638163794600076041459062441252577236105089621620756764414153306040535169039440231388401540185422350517197454028765355503539463067766277808821922332601396448035138125954529955005337661771852746448132190219272516288805503272874579530999375318839614325464683305010537343814784055053300454432473693021578659298566023790911595527302383392402759353775931005069502612491250142774120139047448809052936985196728631811697472361124428173287408596782065748342067438739315314772856973014461970939970362279994457185260142224191211058220599408734450606817341374698874308394175211646288510294716105563608828738679325064184568225019996253603077517042180449492401089277081427456094518751930037512851778854137986180557157719647316023808207958226755593712243965012202696043446811338099697942107908029267592754137044879318881121539519807313830721916936460579581258716636487472099065499405231798968564471329970813581485797299914980186241327013002469809772568188744089137076316081627196033639006688610452597714097701984235056260207993952555135206882773629066284337233077008613343922262046388152408057054400777959765907610901226432106916629832482544161189611771909837713127121297594802370470449078994141475331114911391080912987861795439278150869741007061779985084527671089231633916345228699478722233897151643875494929292225989449552977551894125852610229300109182767364557959134227178346635912082699002999811237338676690357539767724259632109846119879074614044375210795243810271892899670116754009907790145064466539731793367594995864482577665686071242732980668000637068312223491314040118684187713045878857073065110980067416896520600152403898327152503071806992715160453577713854717060432554344488892927260572757964475564691362694487903503367336613494962334574528256960101394272124325198877316147704199009044730285068292548177567548774042980752877556062325180048834948442058689602872618516409192357836194469597247707329813962153174906543331892214146847038694017775797417734970756152019746925722231146716791913892105370298866526173152527883446857894638018397990478890648073787767830366534853188917834578125776725428438793445693812831764173138549217435497243511509636124393229486573776538730729449135697771637139520640122815444354165473750166843596476187206203149999641821856873222427926333308503917217741028712964631833740340737124803071647471692185766696130897057492818065687973239584798769671579149294287305974082175822290471299554616293431835676695721801728664073494501288417324271668695385090099673455586982580134613625656298679649427294414906750003408303233573464585489886447952865706728034417546210845308643483352766528043951992346564833123707866059302979448536127998927270912216863252572525843705293304799559257652524271444965511314286077490215612372214692233362357434184920052531237024323580085689844575707218342411691987257566946665627868257518731310570482028648686213835094446346604288484789908826803754045031069374309254169961154722365842972466017193641033478968390472090406272515221379332558714598875188369899644520319919284833354749380683113594568808715914989846985334493420889070579161050508080479601577927501739255120937946215393900777335964435306592565902822769512766380798150654080343413664938647297495743363958064408799611622888605432521953064570103943688471967634354017174422399773560206824500926831025831123838253788839910705465469198083010290186908392972957960254277595454935321662300226941623577720054516535415832824242239726888193538753268132416183467056519717519308345411317810295551873641946554491261205292877447307490861273567652258587013171209078312562811601129850325925124521063361097054029952616769817311921145356731673656401695610189412436786606215905629271468408472536650479707959736933135080473684441932539685802944913401103395171456240979910177025275160803181400810983928563633382549520629124479810303000955983234233838453071301719639759027895308120758584004931659591089778633889200332987648342230044322757516711045865170147927329353314904015588499716059100153760061284369236392094380585845447230567343032422325743238422522121303276376189626451286514413801385149744119222585637248503865617917012416618646249756267582801991540791027134098780463969898725349464108066935923074531088435028681743177260011500727859624383906935352214173404910720946385598412958330025441345310234647513099459429840367949494059071332994908784877855080989276476864931365469884760034175678042107008081972280280907142617457334433847024484581241957333170821416231512342304649432946759815401329175138400536463210902738770709544336678842940877950156508791584136890979180575904392250750948990830748709187630890095497354658329851987530799559161433824812834911278423456264411019287381938607875941849750879520716718341770019058689437248721539685991979811963887047560827516505978866715036873240015776758041485821389890445876804253651711334800078123268153521942745172866572385485405786388307385590301214964140484583924286006396948060006332820028166606339390203240312288616501976489454736357336242148551629589819242896308231970563956463584870702471698986780039208823341571093219345404367108697736165905866743196935554407988325960355443987488691630532846166814832567779747346834388496524940162947537245678662366801980039962034330172313770487160168967869110775258678334433668195511293254292510074185855939013756212698415941682447960815263779986313470109485078557410288705517492362006298467670326746528837610378228674062694874351542898278464898729955267464380918634272866578506184231041846069911205680379273018973263831602710377107080253846210997659190347406762657971668527150417223193515757960349745464161621323197252492164009034391942208226253360818571649513382874160996202660631494396061091288028947109313878480675263780317673107095638772183037913065982788597366864149600629967498974998267165647322687762382825084576321940418117904262614839451820770662528075803072732287516501430667799333304334775018624200135872474550974550572063905990770865537689161192631917474371785321325501302439325581036347985430929960530911632506595929303781938508994389402200954819799589880881887740740524686449334686819113903897152063492644806554478575985223591913964538381218697379502035796779724193501806309505813855846701034402015209187849923819848545959966219804762883115230733195829810437549301363818361574730902540891176149081984081231757439623634416672561892467376347609755756147122289856433973448869289808445719700817620153513113564933379149022958265306778218255899899194926620183451031400238736711612065577083066259937770845955270148493554626092639476072051829047846414109659061010908470378097651190531251944643996940469582127770926746521916219188544849042378382846895606811356747215817824903556069397837592855175736050387006893907524573351648886509568737762707686163732410566287912022690902519744056671358797817212110935720387534869611189661733074509644042602556833750198618197164631775294988459768962898493115149797463357225413314756522158492924558025661217705351218839110503476519220270228575775909385819534288795255641538485467930505636355416635664505742989912263332164195171493711639270892238977459955501359569944315060960936938256538975667524599752334016077564145468281517849371783340855150162759010512026813548220256721465608696264985687729909430853032612281185094290736468654164122887846359149209842066823600228472412083813109016112462110784416307336027966971993166420579303984170556926012393267649993082144059720195848019496238192213454023069965383072988787828029591139737385738786726841223752317344089032896745328601036547586892211288665673510991516647983723655568560331305213200935442385558948964809315388141270755317692452179014656135408359380911158134083137280334846895920898051016239203864507137057148740268142681516037031521385440296108850022623426292835295655513501944861720739275098522821451937070185829447469193569016463467582076278158280713742534622088461282050507315948862813305348617980922925479484994727647705672670805038627155846314593773178920024422621713850218770119015873432881655680385841003199027485500104814055128601590948824901456268520397903680285898472899621061667285883040431632124220416294429854323825454375098356041870035702952291369925712793366267295514500564110787694696590684303932785189478466485528003831396908047311509639908737459985835015764223101250689404733878507079159036755628622576239536109389069804340080041665430971882355058598562317696059669101110135487970405714914222492144930191205365528277986489560776931787516624796138955591318306150029521301815559391097409521919821914708219224791952353633465826318264678099997166500117802781465153517323453387270070520268666575839886024947554489772908523241786744223525441263402371249650365240522180235531839549459187425504638415283024649827586654730133231317581121524273199880836313282480531885608815739447524456023518244672476081015605744553794248233776701853053856545120018554441240627388418251199289919755511034425610939338329825440957411485649503041470731329169789856305448281881685699284635476893837040268563739973162152915397185352802449585411611092242599358171348117638442681821408153989479958670633379851705479602386883084594969717625922620567402376473099944305378373355530196523438680467540801253797857276868551439544753201219818965552993875703990132362648912044467098460365354883874604188507859193977395142830847027527991214409418090998884740600541688199962188227458032194459828292749831151553577280743063987923434143495995281209027516549082549184764565752838550995836173853860349626370709593782051867655922420674624458619505258487022616869458431349048987249658937816373579417084056228638422081974435842321498359906578208603164674214387474877073615808343650770008948371309057124660345368460453972247683683409413797083413820396410429194447708680856315137800489938758164056141115491801977281508287767919912044519936522874368912217580372294461554293001574054504492446040199031781455284712485120759240691801376082658627483537514298863071146374479722310712779316252605696491165546579881387213011114401297886907034709645459185028764368927921121802704496493155964790390535483824918810371135144756306754034400289716343229666553005836249342022211906278140138264024702644435755277428655997117137247075592613188518281811725922042510332255672395267151866558464240709276552591737913241688275898018263932094557589906947938354069465841236612727067206281702157859247716549634183428057644945539571121608737277067099947660366304071248437057106867530205894106374103176516253877345217486060023965496799031498672087417814028455385673239332803116512234597990549905765805175261220971615755198816132826237489754824917994009272525467815181693970813045071648087811952855694264258582291013485679338687277921598361834189405185927524740346547090152679840655376871708517490677681397723231485329011038325743639232059078910852865630462440982865859575416012165116932988060614956754333018704329328675756002411612298874601123680966647858999674478687618201769629460718275472527945324193931569311343659289696390190656676468678593309192775763679568067036879776459856041847364120971770028067537481176400388840981462789403696116834100514660618907605838692619677835457750079153363855365121436931016378238378316545711318993148225518448428006295996114061851925631551425327446595936632200567782349968033120125875138244363883646890582767286980607887961855324819992645259839284362198731850052830762452391798110783620384407852850685365345218068936203981477360147424740663710569852166083954182286462104815267498148530624266345221973369053267391330011286223958866451058917316196641846763337358064202482964593698815372861819805486564373776079809416777252652818297811144477934468092124714996544112546606024911443937081828846830360494318932827656552094139465407688014264269253627820101286062087628910923873876347315560793407928558806274818108110307346596585081167276950835072833987740861188422929007726081252959116656073583094416783785701543560166788046672435770377138028654673916664037030575251079697975559781601425490290491022345867316798482690156508871827615577239644342854024384635814538472719439399937664719168292604167235750445562049052299035960164734386610664237996894223973333671819270255142646991980843982478953348105197888089314939942519127928861319367460163132925230944193350615693390310771474233721652750691696406646849508722901567366360836003096290790619882540229828194574311761757739892774881215125294928176939735651048739335759542203443494011542119950673669250428002780866220243140856483098280964841971453395662709502335693194783257701963511019058780457634352487177297601325456947945469967790656500779656243288423592867595900163167860752933578978479502116179087321002517085103882116798585343612823448820064686922453900315305844975961669816145421710455869572211815656995041217442422959277623283235214520933147425710543142126242556379379201515271175051329791263219532044391379360355308301718710271456660139961171800028280796366550079615002552042758166726617556971391143464358328192592180363070705787288753268565209408889281289114955665446810210585895902857845821031790920066385104322322014257409358056545951326872968976361918876906728136660416359483887991992475794287470055311272555737532670960325326533031954682279251318687541619627269848447888362535965148036154904349733606407534985642623822359802897233858574896209606819552752502258181907679383148240343831778148493133305905607155260835003241059039388056073235467329964620917595761340725217547758897817365309006448926734307231004333850403631755978225694791973682563413136582269030760991733126348374531011898927225880700280433086099272561545444059389226771383121847541968521426467171184491197315176980606789471232207884179917036205774209517791727113896717153271503754881584961463525888641027520427927085756500861772613230724643862772895965117883596718854989971157494987497277800389789369876949837256259608575867708295500581220179793179315953919959901595296715934089463942753149328410196712794681057702008367690489208020764995076748255639529051039154585757766652421122877916671152618503583439030386157005497680371866463798027762263212343994688278949160577670591514656172088724595991468898269372413029269088155152155753060792669602859305747362623779619108838513496072356039572266759738163934309743972896066784927541894130010830850097224503127242609678108630883459041830363039257494807349354508729538418477426238272489034990591027206081958732287276867229601744250096336914007001002191657483036633604834590099274150950485889434455113716955248238750735061175937863335023664826794921484041326051395104983529772798161411207510181689240979482455152932539682582403987793933036361719446232753485246571497833351949149090592433401037202484549352828989958536396139609017153506006318746209984669382826573071442875568507662554595013909921442467807762628757403612567118968190516874225800390385685365016290912151480670961452797176493476869146583563429554850802006568230214580932399050668877285592556626952244360718785585375973218112114632202812098976037124499564544425767213086862134493948846023289110871146820654917403017610395889610465103744438046899418344996558117664453547790231504800911425149573873607170348687180598800606963304524217252247260512817485194186797438388824446397621812239907523940961849956515681154017280318952599265598245997821399467692362226598601259203998738685569730570607969874415952852786888761399292897118442574732117754448240165223633530378633896195526121304497424435035205399258815157651131722009698404623242960145402437738627229032842693601222185196772836305622233156248829925796099724679234529177809293647197173012719810631782073601511476332785112419446915917907506146843275506563184596700357854964348868970870626124294833610737685045111376880869411357952206292094676906195179395049703596915990647751857061740565109654167931068519895684609758265117261978699349118847793217404486787024181432170131543205286204141442563938488745526331201211097512900360620336901813271180831483030842019639884710278496484181900681198496668528095192744447963206564125692847479920937685737151952554013555035341715964161326884132208919472153833699354796948679076597371667552222300705553098965663104365573494825154604590362405713038503536052378375111360503522757062067957848915261098484936455105312483420296822195848888587086099756613020032951988775578918078359587555798997950413890324418018998235872277258806483874777360124489382823673280727542797849664894277839150151283971815963205267814846480378823328434192547458559826747302562728608675960770984299381187282809780912881895461535202423317230063958248125167523076643700602810230040668027258670068346483615071519335088656011730520205625676455551266612678500971600701951604929771027418137911335763144825978243731638610991706286133081011838075842565366543117153169029080065791511414086851477893886096581755775017651285400494718125879501315922686120260772113059582679539158432734621373417045265404716535639204907965586335104646459773467674986078626651756033710644466276663915470880150819375951917833542988219171906275825743384192713036995165027256411689935211901779984105704301727936380816105791626949885354088023184722163026329209797447330348100619904691778198706132226539360194126775440798163984942454523557074775462776808052846417024469877868750734384989851534150106929980009927343363057726515012135202598851818941565182343112599532451860428296083305401144287856971762738407387110006121015752086608946276999670178218601385711667568530282521236379833033664107616838657895783776620415844909918612381348514573864996437228900381111729036932691542905028320269180555351613665866051416860625833347182706087477409642035027557720460495652337540507559550623521401433956472896488116285784342495100996198976178904522810100571349213036685221931395730099138232681267605142781419684345616172882790620975394583597769989995737639866128968868631552596139461035054562972358426754804531432779198193021973113468962721348101953981580138716883581422786158197101963884890053446095437082492396724619466654757531973223531715928167201359924201559209346071935331090905912729461061452115233069723880637874264795015754821917218531923209345016850970165001831704016684110039907592673654498614700921482849651136239291065244632404295279719093747631163184777192604095450297798448946821677560301672032340401248925763151341221930660360027270614172420424902162238932817045993702695460098450461033965773903873278729687764344951592889524464052248639999528601023308872892471655931785108859965613234722947969364338144980226753477951874463600304820735937938857919333648758177146290155601515336928524574237434086044445298122303298383421412286115760795013552759345888481440212600738675599880841321257861312580853395846036927239770442025294023145643007791332134360252445831805248011583805460314456264280710576035444663369917037893832706208782074944038954275875268531046783884867785234468731577027912505356740884888325639423816311857725899622459649462651831429311295849130322800994096894046384190005937459053109900270915426118087039748060546691083912633019238878404281659187995298346597644002602647109629792130966774856288411104740436021646980160466991097965282643250280427558510909705868838053795277228824260294116703839674375899479154621656012800365204172795124155485003027371106301150727328786357472666783045175103251947827328320371337977430404073931147198873935719789503091437466700423710133776551064820547781225992234417011011985534238079253450879041061608422955066518737579879883595226212563428935412926387912527756811236404345554174623755884029404257060120966080935464260456441720828675628094472768642995676077971726033297213072161738832582664355255746340504978521957351432412213989184961113277372654511358679987189109499388829103998824183380566495619849589714981934792071098175788252949146610132654922828268677492061201304675094100066739581338418915219457537674884827657157012005946277723174347787054835318035227600011351078451987739891449051648020295935571134010155203168802790400560814310853630368764298227669108663974362383021815081225615462802643521616972766227358118397263143056308271375642421916011907723124489031869359855008883432910945296838566662720546425742919042696068466720108177018280039137357749688668502332441792082159094756582941911076235037397245048248772540236360869286050431055512500281861887541580567282309230771977738149525355637347578444980261837718188933947018425275543015333219503714305339942419231325898820718247491133720899109037371996444974576111787070774644512732716644107058676844280214049530157865238966894685650381565609637635223933675436697759061887371176489883559855695598483567599817822510958499962200890725932052664042183200556358164901128603604765339248560524976199688174765150740544686724608481800304260316992330641312038452539668077928996788779489014519912197255451607328933581262340803782476297864001727238276788589802755840036386734337374130582222706686399581657622358488871190187351371835789328846258427675618699884033331002375718950919601422364333769056656058984202739537931082846136963617696062353795028726377724579682312167918939286723299898163315385641512005932703156856958643929834400009107242994463700811795833338295838098991463951253243535744583859816153400629061039215837074912261985192933254531404356017049768303713586504874359027892983604353772563518644799045317337205799852242381676076345229243159795445612216284439932448436194310983259679414298458811191071989432043756695250999480918111355757106819526981904619876678990469120699026366669939630548868352749262094265754163648887193820129216492313084152197213139129497532105709959315102946557522207350382027394744632024279875249192702292596672203316823057826472382113721698127517720897044560472006464975762858448270001301776842431461890582453462644455512913780887624689328964676237000101974092148958610190661151950153010241763751252347072170485426705668246357695269313540312071223759811309890617822149772779809463683986739968932123962082860597860614354656669134555762035883509677586274725709543908599669447282211358827324200522691961245880690061916808125605512191156583423305675942849017264219589307170487632813190919384670169432559976795140283188049112477553028626993203776233891655396116874883011064654626104503845643729880674171700562357179941422048896422532317132279161794023093715968387219457641127850054875917466166407633710176384611967128773016562061880768599325120959976090958138757327956097401443939890722589349535663587842868906808659264669372503829655138962383591519748702501663615814030026376127764926695665878423229110616316966536916193884429952204985634574719933045498892660452017496102977584177189699739421912128481202539797037088738293797655650846855132120329748068984613536299089884703414082543183629280613418340752701674859444673470347146743551063515153359423754440940757177707620942919139293723513472620045975957792066224315020552945292726391861746147958598117294415645859441366405749435020563860972744175524812682208406912315893317688077259895057670327082614351600965018816801793171527844654578607636934085722614999016619235994604116642902545584488980630394615363221187469957609399818963084653765062607877170352226238830422337397546178237835159632181967739142031791755619777168121930204129225505329031855749453449054629491386706453115375517599428055246468056837019502794118747836108766920620537233200370290657106371294301797276190324910270725931867972310477464769979715570638412533778554943351221248311066949885866545231331956258697574018408099929822981611682508985860403689208953295202207622485432737587520118443470846412069535705007626042131774118482227311443081276225630631955620127247175581359794689418662339380990529206349270242563343001846537873398578122879557158533682190181650271163954658849950444991219141480371009316924830197042836977191903778324457760830436544657375243398167164872190338352841973263658658135168044288959109936712300728451378466893731051009031983205265613151065527169757664681007380819606411898871519912055696591267164480498969039444530516837562478878034044228092106559281463573792865389383533083511270811186235271981991694884640544233305983036844265704328926889085509004470849944531550453297545902288890837649195490137598183502343564083085005341148461292944195191649104428431059292872052686426888512108254927246741522535668375728585007371889030506830705657579667992025541387325540933482648148123076114846582118888139807274633552144684809041263726411233314824426372936969441083608212352962395490648513449472125571833804572006742722626593924353111788085587138604591327853325314999482770247281039082205614200587911720862732476926698539135470554390886224655122112985428567806107130962588571001651227684516560528269370099172625849241144143682566763659840138334375155375618732317403846598086400511304696422112218204772098772551978296824150207210858584379411785390862781332707303218293237940204292489798285814443726135530992129571579955076117501784001980063886857256887509574912513927926631900506027315334010033255614179342833951767701227965026406638829741983358256209868470746368378616968430029570848358191770096612554251540991194937874766008024146593372679882129156781000528048911669448701197733234816587814522289352186076864601668447302205629906102501488737638308964612881994436471324703657860346370239719304451624121370708778233739561435094486964505788790509743616892670834456194119759592171585465848465309138139493189426069809284726639524148418167843653066420354280422321594540791807057559100552803842644368282064311583877088268099771206018530519847997603484130118240408536090812498914291877813454543612961806230778346183809920483540218481990906730704655468635819572088102630787113508483266875913364493168938199839863662144015348105643620259275836787838144170038238951258245094861453931952187595089151428403692376098281769223300982933597207322317033040779206870471465819055857746154916751052309758389659296970329576925106082590150677009401555047781597809700246069772872531201674607957171422875829815774340454290874828163677258328378640524461469562995099485417059785501710049285798329517877434254896371889406713465689682796928796764688056153430019211788732163051410673036474645317081031317908574926844554241348395052058914927870218155007064095072501545609723912618688428416752606333704570103721087010089557552244851493059128844064771557812958501449324306716098465056532130048987475308195526184825768509008184282983908418258399140841224923340438868698494742082274253019856144149714018786670078373588762503099843291275845759921806556391417738518609290627734717945437342261658829824505042250001106064482218110081019071211642004492667448631278113159948961781849264051869436966313558755021210959279363968054117079870472259444722195439723853044881043621432952061766785467292627884307635562886878376618772776512938797738528313864169060951145711318770127047346638517476948656848115911426022604113780691767383531959206657806501482751820436949223169585954535444923692553064899041057363884093018572592942878610948617711400238764877377180201669689203474392392772755788320250185068633800152147678005253486801384279663512256493448804663035650990362218060973407426560188717256612574675328008526186008794926659448079676460360031711657718006558074890812179815672490028698815786416023056122301615033741925687214162764093215959514387944813372584615825028905182265795945319973912820335473175662665659308255818445361721468569350945417506248769455728605479920463335154656502965111212529326810642720266410376488090675719611896471072802644516600459819947344653609349479720390417232277668747714426778805493516856650614202203072578810556061232347688307402011934145902744218655055892331154010788480928865483871225071853471323950778004914251437567330074474929563268326917675596654393798952281497763828377335961162217742361320325262256053829351584039666852950548308111324853040856698316205176963326969269928117623727578664262792254074278435999511378680166307016903931635067305898725947759970781240872338417192418265705313955771980652742903949542132198720074418733839697228344153255596016651671343666579218392895374480269944269597876996628555832663102096684387275398329963137121636522753791905818171466982726452544261587226252059321078362967465726377734815178453505383465567461075500228109642320760273400366451812889280421847766036184873782590933612133634653287371127545554189384842259925381148987898117740066009754462923368295792452992069206232074378850931251713172004443322467412326468762052004333234176554355196742485570486958524049412709075670962856503641808386587565883731026987481818200517580535365747038954968157732933276223733632836165584842345187337350128725503898195948462176228765186039852584333241103995390407514238707073736621537773742993228963363688607646158000550825151883240620535530704515536212236191944487375526026297934396313839826783268025620859833963048094610456558481523785548675045323164786514536328665891482108217255153328562336718246360179837600568894046929792004570769221217979127860474441128295665419586589108028796030239916606117029639866515369775802100295024882629239987124503803337843695940115309299779568364745406994361616042273269015806116697487874936269507310326677849998191314907019483607215948945248601000181716403637021880582246314695549813288090871840149868353349820807546050976998423272104919998471997663101324656073575814888184831110447840112149359849023369140091426909380538235977262869325430245431577723130068640642534305743944860992002486545324576182992625076374113320756466082831187394889157447045183735442746520341171315154644820050748860403205642340775979576940837784759677088987902465288527658917293517190057569863558149958657292584965959950515089202857168934521940834972224650758809368370800782121911555550745587099106990252365293420385801587628524574059845210544990217968540891020709852253825241923775482040510808357401253078307740747999481574980821458678732470764257273080042410351068027272363988617877242661490824088154178375361759733360792023303653011018453307389062307739705485565462134539393331454369973141309913135621980991153490854114677925779568157940081443966929933478872630938968430771314931766556412702273902411859018326153988670879699359352330188910966305483161953909054039895959470840761331024314000944844003877907446186646891038256890895583643791469651284148789207729050889936973415491537919093295865164415412399539649648331744742294927990946394777530360562967702600143259736842029322656629482596886937536872182581778084096307272055829534267978360220484561951274577440513535452557035254575483944367854877135719145684702984254007990674650532314605896674993105262003868115739439812271411568991911244581528077664793016399235183564789533187998926359648405663821501324922970399255111321448756887729411544476617324612764442391738092963675216372178864386623092267041091194042574757860260100357653916022401890273856987010259479515884608772031239487955581312988878244316669853990038497732890592556876956561362151774790803786623083929601094705226859056128691634830139430714803704115470630289726605935538370418903202575697512384456590525613378143479658891491160800685114896445659625680365649453458499593572007826994505362096218407613706329014056850501501048546207811031791416577798343439975596636929861307100979264287294516197250766715777355819586472209838599959972237732031236710150296479025977019830177367500372403476929388804760205482862843919331471690477673213020516952948258935835911515760375241623591709696456708506148709352891927474677944507983961415746616840960415956923774250221769814656046717426580669206578983616040175399832170516286623324114645817137413550718956679447564536216828025379850668206583037796467429368481790578471222554762413012847808666099013566627823209938727246887070192924438733259054025587419262213326594403393884299256827690552421931257305085622075932045829339531821972744777029320475570361193424852491760445765388219613416904149060933264466690766544951268199922937976835861166589612266637154635081202319662190525951357187684432763911804625798548489848246309157115240979481460841875307293700897227291513208728494371688626109169035369888149953933998900398599742778955634725380688645099776098103355401987624035012717760022631739243757915962734562806186352386210333310628199579355596532578517042157670594131926953388831909042887334375500323425063261892468510614001811958458657035251448376112515617363365107739591302022594175162353264820099330594927300314999491272715983624767296860353574956540656495916678245161917101012439308948867216149460673720713746886028169954394035864967479996606564163837236944451160100364199424610907633677234048659667311992666186935665961930182633673427633327340577552969049678461357135859116859817007180950556473679063714033371447339924210478456499545772192257809874790982882524156277685230713510201741717275649735000597539107966739386423010207548017971979587695354273357429871082872889807676191824481585447004895334685322281454701285423191971194136466440046927118362094561419267050120575312374150699991502820869226980113974914331904076726314045668513299944213321446340896366991386217751883395749799508267140263142389922350842742804989282666456548140985258755445662664210247386427962281668537745684781872601937336504727815407091880000640058610549169931695057273470801108445041406494196141689011597272334315376747842929819951193393554894562105327575592053273522116140911775131422622054682904243199753718629376340508600422568889936001862232257630732736175665894456310548582349033997584232200937202378530421583620833782682950969996965748900037338789531183603092608893430360261519998528912449830762245907666879585844847399032330994919879518479169323214769014884779151521390770945909470049590433521266871789461866475189394060204764565767272638360989639466053332379092188033715883258642958634443942769811570974765563647129949793015394768468432908367404488941272144683602725512847719074371276534995042856126780662066563044873298809366919021383203097298959870469565048756316775932726283523553952022808060411277133472033525397684463951520302898521311799058549733852919885894606655392764588252631687757736766643052131092276730427849247792254114257190593158121164475843107187324628153975526270998342372996226551752202071052175827704497384589322169505113218074782403449150275193081540258564632607807241786001043286517674324935490877463799379909142526803491193136003178907862064270076169461510808611176949004260674472703469198431139073542510039705649413158408609265229646645354787416010934926481839511326364553255280089159290171551080786374319127988554942436518347481295767910478406671770149589887641697168092492223847349909326450622083971276634409245171020539635082851467386783513560611637748015014442607318444851202193058606563816398648803355467618517979684487460695009209337719056577142199528236965967307161605171917541637131341490677297039478248466450573759062067317365442807527229580548752592604070539503708738078021363033866765948828943005526947196410774468592693318481193724786064349323284002879556587956722460120536652723708344627720541092491675702674992034684868304748094314061443861030297155108310431641362097788726001760930776519571551847655127810787318029966626547535229667758567879874020457669209242202536420986205288033077271479999565049130881258999975411685435148751316951537316344054559332143564353957851927298339409130271273290472448033976539002439627737621886882081220815335287422402060463072410347267653870840370099986549577672511039541751721986819544459681406406724693284061423444696097570645397004156598025883876459580969474867441049175647264501176094042112755849466895052810089011263206448705148615321272313566634474931486494130354597810761753571126373272690237409847174484236714689918762546041927662124858488866438307919374602706134658087157011801593172207873327447867748819949964799324089449843424434934188785006520000663663197140903469861718166630035200842887845489553326405427494069721715609842903413028939988405443171218103333982554361723449742218898443055838666224712278502438516437576409329291097002683300530835920821401369847781327219282896105550878832523743293644430295651978282530987650519656164975829077524228660558625668222915328005587762068496014931426881520906120474069362412434029854689467769883594304039781618393773811222987722333509978648415120984194126967249898228932032154813577450707763418615100479483621435673813524085967962769059449576702863500826537579884610397149624307253481898998998582355587116323382917321020436527484801068376134215997831659201795602822567237531970731090005177893958421717959280055312908300252403952894806054218731821738346302347288542073321052121715385004716853558781717210981116465873224466571621528248207358019420687150651220297653741640950226614293109482089193401727432968329405830028104365161336924387372169823671523760264181791928678525936881139923986043381454129686545350201567484683213705269041744925093451870689978912170936736651629253304016835156964812930166388710454473672604051167966462421144297229369890793667163359067863227513310649072120148405368717962511159618260688081666393044437988754545607326138466526358902830471278114100972805304358305657254473917575941079761082577904682916875110218537024396406765441740072223249428037466709524328364354485454841458041094842883229970531094924735890235459606109660943221090080545500712487969503546262405552826634896131421812721672314896321682989449143908129181594858418641951555301234305668567625334057781720104362759818227221952926285282021826309843317022948695187753389038790576079370234326479055262344366446693059894094733322886552759460692817287035153468119354370269827937861681321842594497864987829240671644593084294745379286519022957520670632949164405897790638935043077915483113567541903563531120596710915633117036666614343722392488459553799408989852519522515067396823285219489544394192935750758101388442594662635111005603717586295042921907349086198392791936920500140778261655995357228669414687359286452768776065669881872151094799865616363046528969828391451158164892776412628379605668254406802683825398839421028846742715329289203118998311009755418696506085357518571476360918788557393891033920452138944016941617079966068048042773526986122934637264397569245553067349798305566902128126901445550168368040882678866099269346489909516805445021284684130676132536957123742682718102531287375284046249708349956378644083815638341096693596258071768542234979610127510868232682351977493067596805427305500875139111520040863953228270127935633192866682115160923945599210685889577520109781956038727002801112480753769130631835210552213380938288577524532976688229312712387469466780583174401553887598703512281934750286272854078067039720265081317190777932408599669589858695416597150744934729179010761571676526559080687307520898960436427354463187861523428004905265018670500470008779434980153244799562992688233244678300653603636371762100525623305169623696827212287094310257469666949335186418100255735914742241690841748098478219970695741228255267589248231528600948834342991192906734565843316211257494333268499399917407053331623489846651378781985257288875943758433172275571015589779949709895430485024822157321979255628345127969596068841781208763262110904301605159570036710318946927656083430608554293536198930636221364827279074922272982732579898378743322654976274914179926585185447437618990442693963568823837833742261140405059526129421884807405269884138994444508290305553393355720515059349190035860233656711080940106989676430989966169313645869346450594162538820761130619421763567171879795858414078775496253088387856168494178517592227601349005555582226974824187800917261973704374250080950439843710152664038450680338966355642141007405954891922736376045327108762494675964298280340663570101738298557519433349667222456517666568299822688611402731403310492571840037946238644909680636378188079597519644155135252371649660951494266833347968753535371855999557483733642198848320764503458676015862917759410044837145654105715830016450098943005154447194501309168268849908679115728108208532204326868184381567920534772426974950941526322776159485276552704222411583851618159652890958444074665105888654416981368130683407125835780632626551726282257617744047510641449116426917357289743056172019005672724160451960806186534279823681445443339530801666838044326967008601095555025545404597560285572712857251779601285071797620606147973636980139381878917026381786593756239661084140149584923347838852038497708958217624459628418878290243323034582853342552537565079696965268539419080318082644517831633110669766483159845193061595661777159371350730416130528834228574151767878466295019523357636399978026081654266545442934980206342240105055908789595701845414360874245606575195288273718779850332225746509525075616577707345435212325221209694560414136449924595783451348001997281279529118776329462021270142942169730364232369044354818362339456779278449007812522231104936732052099665726112058932126016224775880057706952460479554040161114249070567175597345014556172298836506398912076422417712249397949485454709813635924891137092773376886621279954685490082734906727149357397402904758486454335213234809901990568794129694563621927240140210104226283144204681911393066796862158934760131556285647026737825014564040984424018805788875345282586634247298670748977647395854983462482614045009534693618347856756491186219133962392627128213664077975910523607997366135406959489542300652059737387534591572473456073722496734320382598682786516784008022383262434734110889571763080881289730832186944793280842199880642879416458153868540311289975996097350921091643101698966388796378691646540670697035813017521203764384848887906905824474448119687692503919445335524302263343692405999359148421430629399639760843675700160772476856785940503383250986589179259898662878491136020137900224930691825332338968166731576174297412672016902244527602165581752930656448977305857488277558819462692173032061684490064280831284547785029975036322629151739614253531762476920133716600821553517994517260942062168745059613771023577143187300868082253725723686902366173285356489846625209370550377212242853862299465430592880810564215201170858622872809997849445545061558610514737824988779573798818012298036347368128152957516012781741049382167006675093442157772716420120213621699727246141693666533624997902111875767180945372520863235617676583946062546617230852220551587257525065510395254352884645764702948513613902314208964119278829590252757830808633829570948730533386374795939624510938113713161081786736593946237665082809211600214958256649796484192756561541940821804290750350776566534558401648493288110246978938753940402287617440555013722293254487015372817076800845881376966165898279295401681343852911114199352064763531681169702651629837563308802117919540098790779507525611185374508739034532554023520076944224601188028379240898775889991899598279863021465932315616535464399236575904095683680151148791096211378784837156161655966928032942621682705139908350670328689408370768438056111172467414991168782406020460390319062543343136801301550358634886749321929392450735679596301111363700463687929859422214092744903146123459373280848838076544792862767662820309290169803028978683072841144294056362159437508463718193250698642846550768194582392632601107569063070017922002212205201090319323340918133021870797747972259359442133022549585262495773779576018055954736918710512953766198051825916241758044410023103188203325627527464701610613758576522775123868462312818153479572942554858493005489234670987336210761685872617468081279758953449349902124831472497825413703699884946606779522225965758596529787483361348291256827467069992720307253943597553755917522419312797009281017283161822065101618108226653702474612326969020488279047180006850653713610296601135935707901335996343583835776330696041807239952230389086648069905540100147010447211977225812954880972295660328000597325933102457728814176264923194206302758504804636872871434691202278094825509852705596471742205539497521403323169964461965846242709360497327264073742871275159535578100567057442158653543918647689599725348661472174580960834456865425791559640481494585068738809727941836189100066853750554779175609773326810500585465775082135269221514493247245901676453250810134982934646715561759281411287223103233734324666297542988867249493803289952702257864985546323122823337487903756715098446604995564860733755350129740245334590958446169460604725718139069452445696505865589296736285986576076037119075880271629072430440488061042509785018236413371962386803392163920900508617393219813021790170945604372808299218781020738899857741880241122034942315884972806936810786701416865004041102326349402792769549564970739748852219512720994197344915319409705063402145099061498486745062462120402103259726079262636636723750130184091517265404158341905419395870550380053669926178603216044223849250551031175049191621039816451810647321964657597603655550306937211182096818618436445615976069630559967882659917913894036015319497272156724668274257134450642041422369327517851259845128394588678128260977264000497175726057621051445086923177616968234860603094735223992625204862024878309130618335637257328821826817850285146491588900454164115552278910693419739163308040791092501128749221327052980921484327289024119812346363816795644597642052114953046195736214729862475073119778505697948505355795097864885203772616200808965672131985374636391316096333344157978106787730734930959016877804127439250289913978778832500234995744034562681369366847720490243713544024436687843647573543807479592856663938401524828066674223049003671576360443288551161099794096769767211768858673124533620379899083493720643702738830820356061552567900969675054953641717916199125661888589673660836054902681502023012212210416330530619035015290666354972207794034800817763768704365391339053884152273481498323278930029956421010230590308391092026115148315030632726842879402035924840471495346396259029511135022808454883484034072470996889768442376908427686284259674888768395004961932866673430016562213050164239882619034411363154289137178018761963312669880058930379279721805050666400404800766623054278036239090960228438667075921327614333290192989864998991750654350091139782980114793045664841436458149284295127552392410878297852408267368567730867756622838978330531316464041970202601944725602200149307041634673840424584614159581649054497544102200034054388844911286449107278874240527332404394325214309929035928406892092875646920864153917470439408679431372561621963016535624313158010199407301139542471531054678570713478911190355142013216732987950740482357421246721245446057339862542640897579919436746908901741500326910656285545994565532389542503584941584988614448713928462163710087016746499384158014421211057563538411364656973793433313145818378916232625261555707587710433293157685471495159686734145917559556214224200507066446215258714745312007554435822759066229096990155961270754940442649298471158182677855501342851968068673482834765974642594119696340404603795976354134705092692078600215925334413309949356223765062349586361623339026853524319126892252264235052920669573915996616315545196830200853516035612450921568251022930046917870284330874437683013704159339403090289680573496901368236623049609959345781101376817013541447850086596727105180608803747026659284963148552579938943410894942594616468817017121996583999616586284008578117321998567054524252263835088868456739133959999119214200600937614194291917431157180844500279025190546815312861834236084291965636142597186715022243699289341729926592468168431646844530279569027946164733300511270871670030018515773698721671194389252584778261330811958754333346172428604391311409411588105610637313346645995522712371470170702522980029375680068500297843665120439669973907783345658043015724776770907641020200108196051408870274056169289041598088525431074252556925823923014604450696968619566871235000657796988652459575170585119276376524609271216459921403237775827313452227146443886219253883251037149929955305597937985761938749689148876895040004568502183557785729479415410433342932260430363175535251086017352715602575700067413433596280694667580363187105944789732654441173616180007176706138358230616648294785066816285536146771933048308156407931026262351381205390790475624176307362111136896730933311285682065562886131771786305343551941394569550144244118784042764719060440927538290189173427389408819130121508692787637449614014178884999265017388408030419095661413654359961800705839401540550920552158326837434239194154780373382552330837476119101619096404614917086507380814347804708839474047390227090343140405373290583036100272398791049833002945475920762866684816432682604711135936688056232693314957756366255154774174597517635850393917678294109339442268573220764984419485214233819211332168447018014809141856001785246291486560138726604606644794309430876868843570210070134262870037484852501866961984293592445518464259678583798229303728395815537507174284903014616922733501935920846878545258070317693220187326045189751758999584104982156467622835809878118412226729248811830486654272920377162043067603658503691262621053639317017305097728582174217898301854734591180393099527133337415066615099336690337736948630406354114138456767605834365298820871270100781166857059000005135300598555789646849277490073991206609584677789510709317404804902230669992300733639102707536789351326677966968588952788761981645014561582423380120453420569696999457470396638199874032088568988290815242826291582316571269031351199576333818694204106901716867200629794291459069310495329570840148627238225163245082392468322932816221776032919682395490627811348768496909552614774452741785369643648560421820577792784555916443671865721797047803693248516907907734345810842058447082744628742878519377244669336542415319394520806066618229059210995842647723961639374413652892897042120244736126797615334433115067156357574914752958259694988472190836658188883845512656565885293598295059212187711338379790653989731412615274261398557512485092476572560320724672711246230019755320438403141959599386470010806809417304240972600355011250017976133235210128157375881531921728836614278223673879596902035301536657172117656200167185389011732740350908234575142608733052587556248649037779385137044694570046749171415112108486057266580269995423300313902818105062501903761722985195848014257444210279442493149007901962791604521553930341086382418486915770135176820205072049137974525976658570680662182460506994049004342447204776168680985740266947467504216114198743035972688408035838868409291526154658805645786901002030389711285956617527837562694639135923179670409369814564474121706434869398062617528172777571603224449885516722505169776454686580018838032952698202560746068485972110127249626068979552919031111412813199700882330501934570823515610445149748057201808948904989059877022765726330196470050590670187392023831859097791819893892209195942063500804490620501143051804457616872546164590964850076804369403299155583447129367671043022495187675721002391397824638771294512530400933952867616937178649053594952204385780740687421448990596715819269365651455958813163575763314404878937721702585777693787823836532514397952597023019250396659416684056030376027089032180488659433855482864212571505937586199415892302412746489387186358694350702967921014894264010422456980590122818944370803608924474438430894668704416514328392149978272025691356266937908708443926842591480358869416770632068771489628994813632205555030467837865873622263242514879285766444922130221408501298828464785471291478523786824005560329717588453240278375911043638815268802186384576512904672912776639801732769033343071742345415442655390989058181992144052335003840675968517703766358520089253424325585847343271607691519492511463168736231569106795100947310240473449055851111606567751780352536068407240743539474860231353483010497031108836315652620297927532879645959411284960216947910010440101451908155748370472706111920169941595707857862349840680299210829357683853087776529118586144273984490901338638670477170669656186805942410578478697301366784078862913662731233837170487563246024134209199870665816477966095953840243665460690523455618816480382878707916406876489603833720440151467959521993802830573191762267854697792434678702496332413671461604941298372850410225460158184031932223790832482367994050662648874410157610444494463054346400423939479428683520072610927036719685828217014775375626030216370013088011463951288604699208544737350329820513308480734050291297111728252639091580180996396530651329624776160695290204102618732469054483202264876599243100384076760907791886968129543886370237861975058951320302438431023616187701657722158801966661768464033507429705004784687107297658964380746631699709810902205075610730233954582302102465357555912189835705266696691282708615627010823180146005863345181630766075687304919220399606623563891918694920183921555385840558748715089622129574499790719454889581739397971752179354725945777372983008675656778349311926747959077197322955966304132829588874419978925302290914084397257734234883554991811239009891034334278315854017137952820701906163574047037126997662178533072599507953514494313742608646793530180444630735630305165997662300923738403389815830247811209945117701535131287596075459391327241413097077457491982177536136870993568545518463826237326824967439015659215941450005258760665547443112579030133743945276648829744479922984984049859518359434330717654511663031784257347264929844363053600966300245782662773348318739975657635010719257929650939112150417807128319093791040345534096660792989119475005950853077504622132121221427212073654677599109017438906396522575049876508311356125632883572502300997347472882493899077117671643774002634144200139188128352531444354571462781247706227814956401837268909349189829495298409134364242386441136018516649815332860230859609734066683129322364506928418236403551754353852240075435949814281837632518160789505624809865529167251074457703812628820079948620394386006541193546340444660319959852296755117641060770723135840713447078352502551928338273453865125734217062368752731845707120718829198106556818345188996865839448691777137447194016256734795162437276497906544483813465532948017658515432029985583526120788118768073521828436841476690838311419426786395603349759048459938252536685102234728556803281694642682557058440229383775457247728670651534889300762140327215200518641420850442194043544314825663865722175740939048982484783104126779421902199354413423551528973142958163032028163770246471405571264002662362602411912992448308328542857590511359755103030305206774259485703507727889720228815946938082798048285129773132726766501834703023370356171108759189509643707929473426629535743768825502398968308773102131670288590817325695162718088719169989648336665453903855446496008503911828650874780252373313352847192116895906327103441855639772183822212724008614607512034420125930099720589213119983657390606932573029529950671871685880889569252987341947689726160226483792239053094007220055503617930398875614952409920095662061447419252521913384283819651362541878266750543957076633529885682344477339614449362317501460167173717172936433513398614675491709852938624655800020050778275052495817710181388731312662215256429820615578134757875438706723974572271543764521776270583308256702994413989880966880571566452293159808177872681766906345290443825306797782655892969227025099884977966938709459200450551829287869598901817056833821614880547051067403951600339492482915531452503545864884187776288416434703649931936960627117420686072917593609405152612452474757306139373064435672865940113794987814308429014483737771446147262512954797864255986291486092071036086478223008286571692578070304652196324383238959290871840210385588897705726089669163875100679084967993020364748900889578432864844490663932579234374536325383591136266299252281146122283827469559115164213746204362706498664738117051873955050900230698773492932769514350857023622985115362731756571035685494680202551554544010481202868365229304606620993050540768109996202832792274379546027426248051845542851954226181431738991816092953221656814235074247753106398397841765971156486132041811281301093154808482605297059953106576860459248472836725927483765474077816821134180762395706349711748503313456078968692914838216827074905877907091521577610975368372314341815057551307873252360740521386773255238333245855279239280324201350402744365235596484593849769573262646671549109833274132950511474669824150738047897719597973481633779832614166819096869636197524269306071070251171125608940452641796813720156219740661318508697691968975967682384845257996273000462044177730332951740763052583537296234390464967586242607510782529454222737266798289581068737649235366859191066594635041762812795436252358086236069308456963905504034663578738148066499424737244865520024798455613502688787288365007546485472906082709430560180511989698098241494594066927258890541473276586271876596480032214632521369165130509140165147654779373938024194075907816105571725888251738913755612953183137070654391530138333590846349460029365613022537163826038116150400829444711023931853602720989441331218949649218260607578693097178276845361495790542910017303906996886737435176085126288831767762390945735563632146736253777708635515947183167528671107936568689135826702867487580607062046641781538748853142721248561272118531981701556070315714454298348225860802168012269159162318887554585601723312162539036786343577796040575875982767318105758642463888636233719612180940324270782706160996934792821909186226917575395150308504535067667778794847017419611791076743384638113355325347121780681078651494084194605361440350006499058702704062166749636112195330044229162667451878422179476899704002723508595801307756388833030869852410421554475113530642028808731606860870124121905712034536876794383891092697074552574193596397197438612890105911398919059649543877639324964043571835504640930177837266313836865521271559336454197855396517979855368065316919788193312521100234900633381380165635555991681766667710083537169631571287906709404998931984210647445271867914218697399987825580855089201128727361660736536124246196848996300764793715961404979297249752205829698403969636812519268026787617054806273079629519116692515311721949661422828114981162780748339178994087876703314553624366153579120122600169472385644146444601919996590616243920772869119115857439312335824876088816854542648820474059350166129171139610857668490815958546938577295773970964096774742927508756547373485355467731714950895370590243250810216547602535297472314096986947698505702087532249899430639915546050835578757419375153606869349146406034571551881778293786246913756541396831244681380168275558104319105274409180109019261624383738185973652747823164871301546854084001620841959830734676083777390997582799439381523558360614274543440204739020425336476471670689700614074797761220762471356480162972207375540479252165716024082294219598091701189431756049800392920694674601915093077957285527044440949987205218396392435450772614870246777332626878733122225104467455113811479186395156590704053171947276537270039507290733244299466018354564750238188111939249507144628806553152731124455759069348540644839507596132987624954711349636016324477915001262761665047377447235437608263150327001115739028479204772686495566094128606826948761310712870745810868901257487065855196919320600920968881251067771662312966376410374910197435334257778735382344919791053104190668880932660786653924718167869056386684489570811291347984606707787764632364432044667049607159313550899574101414240839907944185455940416853855750190635145171604031668480110760892667512294735953652636909478181158439820731955660363158697764129414493434906253400499642893139507768022062096909433390042686883274647475548044997239979963453898525734294521255781156746658542477918088490868014604765587306505468613997082948136670217821889460840733636716629694835002091291589068811942098973133724122976684868004449405370600546188504449586948586773444384207932389972562803075977582907315478947874836262473744809039514733572600558009316212699621604186312438136227847389454509477152575885216473752257273744289483335824766974769393423312022204324222373634664341265095158647277186728341267156679748198367636316218792415323585030511781481186987645203784620540986189472399234517725742862863340615799734009619112075667011126185387440266009679840517916428497699577012783365677273830734624452862018482777587696734489769813508379549887040653256997138428001429466012523836606999990614262128701324964032668706868812938751690569290032989574900938842351987745257185636327148030815576980790458358070706695019984897171016858547007945009427625230109175020474194688394848159170832386396504819819464619744796688097703366999064020837254924398469873590296698944339977385416245975962591189016349760753289291204588091924754725619182717330740669028450838841105253715200722468155984928795464444961536758406857823779767612639962227639679217392832688225863354785381931206723476511001693534328786951383254665441425749918950895818237194311664600349141111632750331581436966012640441928840632432827424398451990607419023564739020259187454634745251638627040013469941588445878704915424554020757353362598613514739518966891138230385690393307212926415641758364924337950908393033876679591845642177240364307728313269318600542890501426406110589719854726001352268740931940133451427950240602624161975380934058196727511839434371819674078513724733521475410194267869579684860950969998479213585271353736973621242630548959094820933299006520231377328939437134977361265827702514104026833942895363582113244825372476213873209391197911291361842543064722596199299623903228353806428644151357749561838707497736001248794125789620476385322940713817471767874066503337595221285634588400773174651919291745408237060646437045775174829683769340859897108303769715588690632671687735069750656107210258618752905257360675347022616561138908742737763961915582836611682274498916557995822537480376971984522158398788559705691872632497318573096598685275640519689972612013163432046980167626041548740109817190286374280560887553091571462610093249677246647511728611984761176827147474093054394520784044613205681261946219553215670265030061444095235780541259388773830229697611869668454267983359748666388660808187917221036877905577575075321910744088754750998544011185071531798224530780314482315170904933011634111957044313769394438846851364080904183475198672384121226672690362060969097843222267777234508823018993766009059497372992274560394259470968714722432622679292782767942903532214455859713978468468129840746510982757376585765326341279188061450529632194206196834431946544657463078447609576938036371663156296174326039036434034704202879098749405408946497281052329959255543297135221412128145053485044994055942270001953690262091432922964410161366917686501286696805569890970120716634596247669661062935602026353876846910168275657524320447215056115994464162948328895602753596590673877995881514029245975093948836053930057285365544812020403924641299643510499279261460668988632691219084667356840916203407955067349868600550167252751473614953737913441830478992782908941655550205703816177025999408002895068568829129508467835086532201174657781600386544308367582309535090902856361206337803941800940545598897836789547381471284924720968292434419250035690277675703443621849004483625278438911348630801011103513256622590117250364225339324924776601412055795467199862444547081963600539507822040672594514149679724712167898162360288127114529822202508065938007334825937889547690776144315518649738120636229606251760216570565111862943306046731626540733046089161232237849128366048857007074189924804523762315682334780251030312841993939314377241649186881443065483661321689402939460145884786155870420127447846028990314066597148636452674020397258136572526400566485477755667297829042766970076156349594143914178727077335125694133476887309630586689923495105656693695224027099633799273677599724833553455113697467566179686520452803935489139036907393226001899790155398438204039409104045537426080174686026608009560334782473707227462383005690169167470229067980146497968973391910792149465093699585048437936302371132644667078350614392775628762277977500120957096019500953307885190180326776436119336467819750766259123305846600910469568763322688802676354740914652652751161693781072357287353034795940610670867692395734341855529645969961384774400685319733471129877226945090869916465806309854679700875132856774419948117798497850511249586537559056437294835030206858506353526546769829080225597449037538393245346436241913153925977031219351687229708827199991186728927032391101917368390299534393077703836081750397979348737118595098596903766020429495689193775380269454439545219424935024524046650250570878076446777944687939454242381713138419993115418467939531153983363190179173657541253469049013091834135237243988124809064618306783444786578439837820410946161433103790115598779042300313945622174256914146412508667207876737297866787130706054782889690065121563200589284042332582588642342865024348021862427666620528648556098021565735652529212168970528510285295494751638001189728520161901322326495390919327906511487314288133090415305295077162178775525104905465026956745661774799879111684188463638712643870093348639561819570147238346989460179317596979658299373686264963321387228187117313299742808944869925418320290736289449811999918998703741196138870107344357350978769941258862219468869730727933137079033833427252232716961408494307202692808859796627200901041459704030807276824807924265422178225016234916268464810383456709853146727202334150472912865874612844215860754931386712883179339473879253174593676647481472241298539215345734588315341039757931865071729315607641086847059112573831161598781097737227009188992123384680062366631348146980483277691972671749694553893576169887813836853272829163269180862822766802765683703403145130432640576450271564937041825073337893462311689041228842960953030832143910113164078265719430415742522991996279016067219149869497177057210858276449219324383559346575118574501403605931624281840761867807016777872382950064839663072897911465387170374073296691552636325157605980556845742934223300305618776811367246396089248698869936134028072437585680504113067439827262326398264294200832464371184216481930326056772819108391506320432682410520235556758943074611836915226100021757460967711541731102782039208641247838676186030224487346269037080977323666763505711251814723464246544538628660316189654931516447417030686037016574926166930463217373444569402191056909101846090977371379960492977835355078905183603588172468202286902261021078909843397239223225313820116532366062531280679775243106025162654266071035601759776720860677008364450696781228380625184177157344428198917691727208223217552654850813883802866572688294661300727609363726046491088513775950579305045334378175533026941184186936727507488785705224744839591207465348027187726889932503726366351364892037137012633531426321081706616107622007390652374810441422885494421462169549631022962184315451592827481032539490520052309183661788318649854644162615455686533067580601943502521307652867860233794267570081513739620818072693640400587940461095863982792833865636771474145072877251955534053957343850135025151377022924596704690577022615847438607931351683300752581983178978328355299399406093419208598513712506628466803691885737095166853617242964646656867224873776977464027582491280317953162649699923350787777127369920474932839667644244705974901823406154360179897932807888560177445125107990771965894051496620043297192297001373589801506631384353079391205671738378341743277427207933376078241957182587070778502575345962028774809391959299546946607468058500252868428636422651534258658632586393507831956082418609413698948155930701511923994945852523348694195548867820156753323617899364114482885195514334402122576779330793228236264910494401453636749239740730792920885021537148013273447096033705237123326614330422109263848054150919211050848441344873362738514396770918123187228065090012216521000238833729948574283028850162167533554223322057998817875899569345104097684821665183307507642675924734907732507100811228210766640238533595526987925076228430378860248735307631666181282070324781470495868345089351149557818041226102957170714931692263880566884252325111509646162490625976618597943488711061649487782839307674985955562943235750807388022795861298945754484098141814613517623334478224103607887461522009779893741285698406280454992104038757666971795691940825145119913053878575187902326982272966755527078892387186713635286587882073282983986826736569105135451449922918342969763234236307306149421628924824440041722162956789975821736423085212094283107592516673527466205169870194509308965736300952807248790222540160775068655765746554620196390620430258812866128252757835493007783147960066165585871552985365316175063464774803748010459906365551622742893817376910648272618605114970816311680414120660611433945062412938877850501997091253079616951388857073384119652403162232395333171916159428697698966357309269348283957108033546921045458735987943782639977689174532166839912188012262426505265113542916579699825520549331461546601839930601289866788644772949405563891760843107588058311892981105505681065663076357955213713947246853550643756191386884017593181534934659852903998947399467707480295932395858047310241256745285323640300374992562498166240543255322408083829279896175960435565440839787931499770715143177743659073025493158406595197588461957494785020970730874727540977678937514607470011132839496054561629100485683224315219331159581186683499578011940473937682287758634763746371440839749815843176623496190896190997206546419628989859807658528722045348007436196731649093666464846722389800637616665553190151792544558817928760545099725313898605406036823582676383422447124053753203858060708841859757943621550223755265543905401261562406247094270429435825984087893103790636294762053756615960917674626093071382997274580035911075757318140165115269332678456939984564475862392499681022375527044414653709914105520011926508106681188991776338664810869620073565068563521642963675920343348439443162455129045508343202451831037383546716629911236598899857276860751795913938720090378411771867189087914926736124566502107586489922280480377907167020892129485906232511876347936699121129588436568749254927718577104811068915889733463980011191974235884054356539694449787480355774824082581647656499741053987163926492406827985684992527340183881895897899949869287243688266412457535598937352243545442244885226074132110563318396183107010610501138594859909510563456755015615885397096793367825070103581567078240973178980965314175325989513322341518704638191649346041699998684846191820667889992094703009479184842782090559876784625533755791453620477981793783988024356391092366974723882205927357861451801567396336601812597612817927004878708615877878972470493389445860003054657599316057673071310668725093275702583319934483798279876031995720233259004222560495484374624252811823135978427466647807409826940669947700670281952934741510121349521723809993558401278259311798735363070046833273144978639992616107735374004814856673967432898762958819786934632970111657581483299661551039235446810299396161130315100024239082972986170445799165050235188852895489329494766647650757890735516350145924072618757048452655297510321330802430148586873172973230920222683824782577029767467304608838714264900500354003917499065113849807229353440668012526129085065767654871127872984879557589208167997000422518774415181299158125041166731715867515760399015933659687589205386940701982202787593187762788977432172153641856412807197485710936888792845506698279586235370483257010194129328624902111069316765167334557588355426135804156392799113350499404863136495838379537687475763401631073182272198324633725210740721643255982330831814833924778799025671536093530923880420901313335996816599339186439826633284024601766143729572484640806005776674773054360624621209842616231827344385511391818217948894520442840444882804558172126480466927792965430746035227360018875792557609460503670547511232803272905386839437866458398236322699643292289150752252457719064827339769465597403490789323807877692619338547977102649400560674857087115378055160067983855585543184168487460029100511744429863408242959013497817944975183812977279024119275255761769120049336790541786746688021857941983502299086659988047495346546422037702277341038118936709886669434395808793564157495663885022943084668178620704065127659264032717378455958547741923871768442834607563633707511601938575176143940488755445245659749568976176944631243686584845532341878274829880869145411318784413247034213706549181953760560302461351625958338044340477175165800379430003061668799965355185863267686210541985129352303720198790908422809989260417478620278596604563482466990437268407365284608168182288142872438401663804104575304049260321940577256033014748145124269280368174996678838244124551414141873758687972771573683642496788048250650030561449215517559323221100120849140682392439494585725364981332494685078771428376165462223068873220990004524065881302711944615998303821414849267705663783452952366989765687833683020912158102318053390309291451478499832854072201388359239017192607953823121080452708600975721927132435931125174195945666972873153100259414686911719284938812374401539593088456908669141943766379888758440773516908098707983219136814795797854118851348023360389613040127384401410615619261954229918343892105846092568660304935235146418843879755705414931882574211075344660569737706540901295237959550527698788502463198294314848142291533662731279101239121560987373096565897544070114837749907478668603382220859937045228181579468307417316491363602865650650833265901744087213277116904644951316329532718741866495374699335295222688168312506430296643098369553206735896033613899546796283678210364119199635575122677610509690934330971304798629774705625671816032846554744981401703325330281514091398018908773542448414752291266799461379325052507824361238148089134442188261096442148975542522913353133900474469881568269297830162870662057537791076031280677332895902813305155203964111351567135394047421801444328117582541774161244094039364583793915564854521879187931117534955984494090800167836375373351409588479657108783417612573955140908147063072817448257699148186887136758832315726236680190031239449051392857828410183281452399008730169037996642757119056350393843567901713358388382483143535955050315542800243131924850566125681890135157456064842641728920647673574961137121312994626922211140437809402138407423525645715587731332129828416753201716380242857183791469292198699464388135604133296772660313171358536526233770842718604532504300828161714189465203235498225390264207258932182017478830912511035672662187286350569027851820417502408530973151382388065030883679018258612523912367120908888408782010852415618222198816605872436699586210848242888140901357131881833631894529181187778832687016664556826038310105120919422449225101372768331676683431818280693161138469971755953837859622338381255692363797875737296659102305664863005570097678471113223580745819325112880109377936854202130600674915171901426996981284728383333496834544928798950265065320779016686421105765225190776865773714087384823046815262109834088615484843143980412061936173946030414590955924115140034183609019162169263262198181284605931995530198542791093654502029151965660070345166312931811297956721073532719750096356988716826383342361184084170530392175907181233207054375821065307420811475639592081819290530720699247860379426979562517037688886942820954100686413410095983475229352938325256597764179579936465300715142015570488467807614850321313011703147487253022324383273804820024059856810085510709494177627718842011934903462137304048560017200207818390840754549616489123171673732062674918611871541911291266022962413047723512288981004005283632357014137716645395891296517819065137926703613915424010883923361597752741977652000569093511021523469236570913282687028211374699777816471214075046303787784354052625075541436490999524230222108680391891135958236865083466837986328396489486176628143422839760665468133884969067026279054191032660077525729480501696565303611086159809850255940097475532868732167897176543390178659111796485623290492304001626896633875473764898005055327911180728440464931955641291774385140914094531206244185965770199529730784558896184033730179531811593166162470493326429279333483375614849620521673598588332250772357621524304675814795043940979955588734638932326736449220949966777123263314451461959739738269808033562397540013834748070572997997570739712837122542648612395571657419482986671484157970763711093745785547407211357627971443525159403967105248985060364381739183005433368365306823965304823968979242326072810414452988791141854485346074063560251112228308224044620956516747637011597599060720912560419492051359245592548595434327192441282241541641219320008699292530032594997532914412271486725235234280505729548897067598751844384062026984915886602087745034371020840338253326931575145910206125685749631320360424608297578958139099169355628461139077333207618806468088924570736292286420051566838366460685197857006816693047137739603543832892145946840499534116860058258765674107473648910030866365193335401337884476942726438791080149668797205165355041007324301603542077084010234297156332887153464618710883055775123458749830453900857976404926020953111968077952750371132932335365013002000388115738503320011441756024860160474967414394589364680286878115417772143519483920622078311006759748091526343144954332570669020674542663513312651336198440952462118909896288193148496241204478494860624888842181685668756404943768785514670784378828081380386669454000745139021669747493824258131026762298811684431667779629129692219043936677081168636851909298619600864467054287546288613885009003413480880034183500780198868924647316275494496240689762600749696118877989465278482391493675428299801403465790869062761696800320586757950786267270874209485556960736278910775352925878679180435506721902889743602890626506702242343266118983076407685947539879721018747576855660131065253787978137373953514364953856783173803862532765228441924810100658143370127036532079833089144196881633665633322999870911669920909094718111437993378050380675410159156213112910769612647363198026643169558123781412606095439853229616888843744423916694897284870317776831246226452962655609043370607193714518836358011335739023160740275206721707310328558716573385480813021016756769929755538115697702262182710562362683103593418312529374074429609351751679536912732430955692733722013834187063247276623753022560374442053316672179581489119418974349163204456727835394530445166855671765989023124889919321172430359332439287907448746965824621621699028778993413894561599762950245654273769239863847773330642305237668801972755438097950674617097509714062489906865608846926273191227787840180129827378637279019074422850433390042849738727752674229695537428563977024657882895079925627400276939306545806640226131867486765283526201625260965639508895725461545244615879547478154085652062761309250460796239740988122572437204744509260724853369652079605194152129780388972229502821610592871359762501403266773954424398371995104080899690371447708059198175777910456057140129518678511915838385235334795567931549682896469403667685209749170856615060220074251626761206198388021661424218524350359251090458595112867194817739669022268448816199075773572659752834568990271343034342143739994116322989971631986509748696121273489291179352071554342409301970288972252694355650129925478350551489020606591026247654167443599706083415549761208886148579164962457534220604766697257689278258328727601205093331573387835815496852222372476289923865716858656419070820464413169130821447109151810051841989979649714812228887938920738251636170107043324155428249710930734052189211181771449746732132784150515059070622338525058716417794645112954679225385213796197650227014802450655534268604388030437957750365947499873919118342599396010418456719876859895528112278838056794929613770528499699968391508022220896462884935299464383552068540144837634698925611607633611315043297379471729172200201426886132732484474987345314556662868987081532303637134587801031742688663109608789927946387123815968710415173309772537906081250881105647485985191125702360916371988682561742792792612831387278504706174339325923810723181519717592489278246537413834093351700253206021117746548947324896069817602447403575526632185415763908574191439729206759314826206105629343838277333599160788058336156830805968598245253985449657346711159651869229873295075293548760208024455588396287299461372965693166643372317646048771327040037022630892078444845213412541301722773791735240922325886900242472951155321135455622215903506687966362942125230938379839922879141912167404936678493969522320473508149364872659359770756053940507291324380694492832361759232992974275972511886640100332883242036048990486906663441340597443823430813887948357399294353012133545663507717050689145974027211229971487719746436242378140671474566030872264965063674572730684685117001018231808429059713746936297087733261923656958568769701231226621158390496965951897112780822598873834178600942961914909278089714351550710736281358119405332560281509645314494873423095338401541463505880605888168034727836627723509065365371965642167740523823502305294937773017693565538856222342653353839671116687577599920865373116995543163069429831137658828499461795368614597517361043607900278244460369007631217853333895478914854999611435130674164429192527792370000586827748121354549884176153297274297473758154779561209773161301856437316508372502036311341736746209744923479657288968325891848015798412266625987318347559928922070475733879846973684738699259555548111105197821733405986119211934843029323077223449497198944661726795488714804283491884287366829469957679907729972354454113076812213714207267871513815893849809757114879778670075475225583081875430236675952198574870090831940249303261811743234846475039498395818295083043718764440679131187187298626469290069597624762517330002640867581476452403457039490021302931752177259879804552426786023206318289954367411408451165869179778018754158587451497770246099159209929114017176921407269179110832478450756925449346429291567050453548916697921492191434307497363188465287977465710842941730815473497581077545332725607834119599468612533822744535454188915980832113992206286258446873435193887766000690625637665365697159796482780008723594181643532888596874239805694099030155199700391393543437968067843512779110955910159414052420918128926590194997428976097659121247500257026975595681349395891585586837965963106693175124724283666580379861655841365651483774114820606803525354791346683961636594363931731394102067792757799122882842434042160519916847437806796598993393253844392251135275710849144617607550216336877642475724284708205901819072425837660471558909277530609913796018256034816361362995548348467978049550552975309800147176461490628438662386488699679562710815326804113652290316980718406914021658808053892848967216622723682250116956128518320288760415765821931741424848250315672234330844639843457470095162586726878268837389844351478454057919053308778623300752279148118739786072176859165361267092895742731989445871918859333210967915806409166758944182245497255433306474688622434169763477618288265569885143735313646425830567151313273791870620988996095157132025527986738951616333869231927823844707536591819133546052820605827865119494122742030255127685764526030308184191579226209400436045001215126897988649826654047341962295586944394377530983713099746912317570239873328310842168212817454759135969048839844173420337024757502822386919775917768193294287602146148336971921212377380560781807317563818726762075137449307484112413311417961448937991813880361918034779818830390690886850264888797739885605407253721456997144833387356655401252380536119915625462949928662790336320441410005733055489802464074392634261072655292631224947301849949079503174556205066236813363834524097745634488255129377533427732583161560674167213832371757526307141820447797986402696315012975769597540424840169498445435515318903890629892648586130507952160237610708287873146884457627416144870263533561947302822294373860404717573037929073343123656811402344316812619049058702087544373991109375503288166647801632153625757356610305629425348992061287092070987288082127366548641862386615028196219999660145805136300804966943093271355752303095551721252783003284872845759471547392020160085549302196244386833547110470415061881911529919611971530560575634795838624417016855864371300863147603794407098768095331942140073566962611986522651281044627295973002935336789332706810849502245444629463241546613884962692857191336502910241001504857143422773596079578516216710337452317526249884727663821959676059062817658481997245581446734462722242155038922690384235342236741293300781251584288367174398671094189104730705692276026124434297012181053739456257046369342705137247471505070491451555334501660724932591436360764418239012827290169189581045136870816304713676196004940954967248646286805878837058221982056957729414997737203300759346388947835913816677327110877458495402477108726567682503345424699808865129661570863504400023126120895641359309853198859528938700746375671620614149201555823722854106206424608678867560928651808910148200468346909292391253859300034975096528553802579259978007424889029283912085443278835630456446086375426103668399100874567541052514649647539004314175875767742598320451433137956983464726457112685986327666899008590553632991224355515358923197147149728241127464567980742992319490503849034631972416262911392371612873685183829886125725434344031542457829535625860442337225187883101171398710611990355846201322782334699041407130609575005697541093555352970777971938135666589446488942488314541812588692495684861399307517369471925883498102786911405535008031704494857681099916202202798300077545944848269092498468913765147316131090095875496757240113617989580656511588631041973669184739365962965283662015099499709956467887755828368429895407191867520278709181715807538436718357301456413963361966494870895484920090662638304560652679587886725889498075508795979464494658240963919900295467595628296881051348289927362082983968340088247810832753783233266245562512258057711088356259867040055817672673207803550581714165722525382872105367705063500909622282474565171111797193920770112722345946304971857539992895713963309344009826119758013854706955668744631329628619461584578952235545004410889729654631647820856961268312396736028918125468797930227822962752431365631578246981174573902227578580522123860041963523357495163307543602540474705405328734421956751623261112316405960582191886827536314877756449347190701460059707295630483458094411795508134577006642564250676869488009407358192853176195205215095206676183114712209536938680828303592205256967545181847565329493384026971102911857986244551296521647348152330695848902183813719251731900769040557478173942714947712527958112763639160131450336675385921710785023362810991774360725330586396394024274770100139780409517663112321048539474890081424575660889529468152371710952515610734128671890741966343630745338338957037650904809048233786918298832561672394943652671733930186472885858720973086418928959150435536117295048338552062808617406349060130095875865554231301290831999049110572992567525590791869553108852942968928987626070856468739137556396204776546829754498937728445711964671893355391065637037843948968608226905779354784137838016064768170564386773468680673372330569856572038935687919018419545982341853542065398445364399345423186546141418959689646313206239336708353007246104766634545041494036862928294545127982324536903194131405230562711588254097348890453981655823576684988183525701791963489751699183886692646138843755000835094847061315566724438449776743556410782258249512051012283810217022040599236062226017428581095258708166743303516364821317021530534849115604002536581958029437417353309171432269820782315948091928913110351058452140280813975828682339297497628108429770627346173105531812761374780517723184211953086806531535521037382433670013668117055771386961138086632846157903035829789165212112154202019408438759554275333604906455960856146375326816423655094192571947571223907981820968908119637184874986966073411817436578060443435146506787499490311749408779981427631246168119431654608073050166116540951857002724339408402330941244418172017776940292953624657414607798400989488580516278290402775547777218930287994427551443745945758796638286426703985904786771037610796916255920544833182568657263607205731603810057215728403028277179853537960049848561651207549458232970220466691433926538326637458468236683284020423435703517970868189155344757259338596367528358991650329759261705794339998119765523241216699041091600020231180932173578466646565729856719924674273771467830227396435464939250482564419110884249147898161523054595759690489452058687516344693559823730181396000732286608912224060397670319562540766218010002965941269503865360649383646733369436767832736391486524633330748366202485542039272578286822505028409726758561045339171464869814224668715262145792467064341332805015678584928831916110038380219441691780206964106018172230472617169538269558755384154189118868995150659776702284574748975914822648612607169802585526475248192299641097742862640663505895825226748966636662022809796936185055733106553188230710219137997942006006185032348716968296935564963147288436353539773492130133434608063848596080898883180479111522671954292441678436999654024463986005606235174444388123411281738885894994275242584232775216458991338677960722796345595097897355921323690462532352459919382648544074484238228722254927587777751190809036533369873007291299001993497846067946628160647831841925119162086965454606738097941048304182304214475815559085957027921921071275725820255342022990637308142055419026129046513387795895198662244919557206982542445167210382986125032055532905388606532727489277296225730860132546900559585935280631367024430812199812605288606842274209684183291726771859840831635953947698622047363047250384424625572047880650397429539940318238050694074716934364452468435230398813280635992250774240607068577320297984196001945251487657062571413888106438911846248453160395836044439720001104796192179532414762393554553853346190015696521131023695305602870342771933393034518106113828197358051752230146015422073078630288051475120219804419858059476869548800314876891737091272451713280191336112233358391454387333348272242870210977891466396495102353168675138901799122795047538603679013628160193447424814374975199603177361771203671665680180536773728869392460249627454018578500460532385527184703148867645470088251180598242489894479313808742927431189683966557226576121510807172893893286961898581470906219817677894190379448693684958631831130331298305757039178524219692233185623376451309551791051737889999108028805549814611994627111417761088751986118561504376926313291542849234692273369192615750808437779335617598944102377551837625311389161031797584984367752231643840822256644296897952675049032360191994556058303878918468102099937278750006107677465756516015197426366273471812446090209853737728043584256370620264721633005530408420400399252361023386163963662279718561752070565131666361069985785495984567547394871735235860949752274899374397169061865584742303370952928508158773635003697552099977795350950414185475241150645050743578450656683992693867625579156571554119213975431752815134436473203364152806163186242433243404029430157916610346955574245108105186469535943086781573502872760330905898275874115479157769602157539547392379971281518962369878852747128671159094389437464389271529018383459033237211499655756703277588723862702736287470070990972980263708689248589577202301796179664831749724705473067196699715247339893686255013389367540517556317685292218811123774732929748966126341344459041439082003113308291791203093756341594499252833017701325387851771621277903622791493323343013569853829949786037483744335210420689753228589803343357702782556268393708419745686609955220606760647619146281602695472080875197779900010815647871120982092102468883173162646130031155517200288274649244839767027416246166723567312396781698950849841204532609638588391049505363612520595700237031735344678265350783461146974133042134266747630626216574577408888788602376585293261929822936195637035338292030168906439493134664687467047186863293368162035016392449928803564332319010208380418471846257436598129085178286802646303376187196960266495113429258576915017388595060610086018121775549966979891276889824752146437374426143210653940386207190705975810821390668281355231107962678417798378876583163690914091674020826474759379409100335888895703264415643819523896029918611130453850769229597040342166356702124152212799002976400874818792739894317916393372673882169115348116219164791116700320620916984065208813897778482959459839018460128177635833323559104097916740086678963101720189858407129679042573408965640011183152325733195375942455602638259125033743372092480148916236431757621345071213987334439372526183772055142367005208325285454359715878386903027298025868429671705972140064166678521085547985586575535693212385015258123064052542355212599210042896931069382226468583274854438433062824375612121193771567314138122303141408034353025648732665680257734596938815170310047622242698877060788566745101694978424690278162559619227333044229069884515355649065427505808890753602176438184858337772028330485097421345325177186906190772426255523153581050957641884144207196904231479022626115122349012984292701501647659036100015359125063577787289063557454709350953635386215665411886236137473044223812203861551175518273783814073817643534086657360538125212336304685461510918262108834278764283319306741216568200799892359943746552173009359603723650492282592115345895530288735361156030495485709666046516134067060513642590293439374909450863945310978136809531733556248885945561616703703795112248747661058301164983539039372600548734834693771860803219482333893762595093838336976082623243037554264809674391162323662633494849625622052089815891793298121690803527683582642666364754718562808171181650592907715825888627121151023021082765045600288948868038059640966036568750634997765687053084516361880264563197179116749902457280607389389899919052296049074483930183751834644428405468396262870927080557454960627821093662323947255470759210947186041803255568678995094872421906013398562026744459626575506077001063895246400448604935067555061547163786009092800442600935132054991974808465923189252081562411017051548945271775059742841662860308232633849225708690729046037772563561471699582215283937990689792436636288625420660427412517288101601554052700728634192954825763310252942882701383961720051122480477767566861166627642758398602620618565728187914690747212851656582446887180035589217898052747530929220111611771806045347229278689960165690035150617249392734560731928091495515389470604910060368485645489105883370943368078065588663001146695498069918123024616926262808169549830548406050227637328162202188830460438593538991334728913373679843186957968118016558064739051003354905971105583124601116629422317143827208942233149948778734490409332877834244944185115743216769710342279891315202800723846685388648315702253205189431747473651122286856724712277791504279573444301689513015408279133133160756998507015411215434887368901429990327053869935809344428890294616270478555734472749553163800658536634781495082730317892390333160481965035423457710855089184921859855100178507506139531585662470216670282409010497926226136777703956932840324007470291588460902834106410176953579401974369788743251265506994234128391198755579295784060347228934862980765282263365896443492423136641511981799230114608590994938209355355663447685494910290783600303333401315966804355604330099582981651161662675366910220993573797757021037364353588859748808032674611341702790754342059657269845972892619785348583100814054911061494345534288466657747411680270399591401113334107729056135689043090676881175900912110338596569524658217376362360321466054039881112643430534670380338302900446484617139801735599640149110648290386537649819225135578514460489324801924620792240231635237711367218068429815786153653432191926388188202995045214772264826973514381109601161641610930818698218876224806830351618429837705551279618749911783997136767613864931675012072947549152550756757413226282953796351770108579514989093157124792514267971043124096097264737449433459777711166137840761386664862642283468090443838147737470589458085653938503856938345420594608298238868057229785038721435494491964868138659695296377630658167703833401956663738346012680697000863135829003334330529453408031459886565055780247744735318802425168434297504918545170196264622226371332479365945612113752736305917093028921771986383453719648517287858699365153224438809236155037254199987400681246320031948581518476692292318074997814655244406656554492042914194071111130254103555890511651290864395321598620442363414810816231666626037918321487493301673184862187376866671283922964670076890420569161717123977429224971340705131290133693219400247096433927064992873125378545131080093886850565594581795722610756282408810867945878558694161761235117064843971543762650639151929845154460608661269115878706589051898259860362389003389272403574844941685620818084527761819937902800384744405447953516270994103879930686514174060254385446741137676455613751629690246416256175203135490075668406961571409456829980667310605182813873826888313213413878108705239778771092414973012291097164097605414726624509431565598385502624035377286647114428391106612028159822278020721769439085595956821312649855201941988271487658746213446217362008133892122508661179435013495269579945256056768660612826936745724450398626529352546957632394990878267460661379381606931600450834845837626162002900092382522733462492395227782285660663763771038570139895001557969915556735221378304537515645734512813066638962249339925968058979026374543159279280222864390933319436889590344473630392672959266003840646420842267829712134456042244252213940151340609815357187461815323107853082401910404574862253589312246834267186930659725307166071420965005588731590735723962031907791662013848644386458917756967040972564251870116413910837247071578835769147283448358375690115055888371636521252227748885335830849604152489465122261304036679593268509990378971282682152742751653489832997607250631098443881633806580116952905082355520960271567894419672867379097566099003576014664408718480209522929071212987895522636669132800813630261451669955349255523906030765476407468429219870435210854764621826400994078734325910977271175328032620967389627155717873824048975227945216896496764883609184185487616110915026814125256756130589235133927699877166303264238703054281870720919000503126612175274804770823961400883279102430919003021407754246863755078829041825207018171693843692093473467675079171729663814926428976012981835624448662581986780480681847114200429145564407480519291677341747980165084454378249496908226719176224164600061867747106891438238594080660694813366474554219158287060966807016605290414575535946807419762151162821322105492654706169590692907857369444268582072446742376196807448067815067476029194583839593472645527622902108221114661048620425217464419039734676161051281684598031875198833921470993532167791379568557946754794177783299454612001951927310962563041859689058270307802485668713537781742341632063796980095401713064499373936842752751493545336206699808156709665631902317200782254709515102868140356855968129461862144497363494641482929962872851411442183544888330627519608787400492922743189701295281549206665179520948625185313228429874602154407554169612304988947244251447031506049393621807629160508664485233648314183775539763007941297016127386533594031655631055892497726191164097735691739218159970876512051574717748536355224666322237535532623119691731336027612085273026556423050174396711166022784907871728550763484715852703890198709158094061988012809764477437451896162396405509940328374696821332640206936144944464563351657772378181508535392159689485462611050370494160395250015170773559759627590804245284654388913296416425879044058722942901375322518458154444767850964997805763471826719217125618301275281156660409507813200676806766606120955277053869263379423794032875872181371189341899613884298615664273967071160878063437929014455158284620945142337463185167229609991905664863104421237349191673369868666013755327853069079270495345153724812792313635479211747659545709078414413892012892795375138445119140446838746839367776139419208638117249503016134435961821481706551004308155437941180846866153649359872804919726607120934022603463517677490311701862358579444528448697882981567487129126750280690499972563762053443689837008797247837389703400150573312846610608824442484828170130250352900455295027683687918692434650169923919022096397527260500305613054147431356173922646667224916716786161473123954504307381214981802281403776611015490364771314160488317892019157398173596044653040659168745805361312953639359299058302418826924499100063035262971273727422381967069600714155479143477193107848711970359564980721313617783532304818973673207044026964144001026185073146576675771691863560941151818670294167544391745812671044961843206626984893868694171190149517678121958052481968532322441270586637473128125222773170539086323168249071779904507103375741230653125376889429821594179888943144785005595041722286801302698890702729433203417454297400223294107391307098835572888978972496018506148353781711419845295395555839197015265408457420968932300411996407671074287041888798491678192069516745328343681921002954355942205206303508581209078939449842112199941203124897445948653864271094025434271232433329567688949593108994769384209136000014760367400228861635027334687802317266586469697968049196180153558268086277750483199842951645430155289662184406748751676604438847927657063405209050917007977480543301696994201808163436643445096114625915596174041168216266640045212057114024513528989192079899978939630154774045758230082212848822380725247894851247527224238858215027838666289908060307609969369933540017253714734763157636331129720802962832569849024288630665998407570066759784076657842911741926655597461047545952487830186563969811963775094883718367899081342735855800883205714223343446518291044598033473300454443720455855782903625591252965328750199887086469855288395063649121494155938108845936297658865873780123542808881953315885844177550860107306341184436967507357518059550843484523344334880596305192304683892683172531182878088588682059706402548043044766958968836853788716936447031358730246659086764053132704997801053272511294335612811181603140310134837141231552027181465321322503004314466596690336946011493207970264459256509643425465074893859154617910525053685879942980366920445043783167886541326771945278609995490424732317237979151975496254333187880867766518597845657881374175784396907860882464859843468155043529065136400633243927157114157189671902149178343482727711260903269373981144474543883933321235674672227154018449712125373299415097769141528412512602341262635883988605366768795488728024039222615422071464108149456762482608779065939825894191494618739858726782609466811645997302302227778865901122176711110861319957098853002253642693077749976118996287741640812612489019216021575341221452623246015407753156799607291792748142909129640445842706093644038445801397548264113923927432729857587446431070138299999995768725548139547663949378615859053007841039760909366652521734329708870147675173884685292316050964736468274049506640077591545099779637790196721384000221922616394496494645210781151992996275520707637555869778288199151620991942330227037321704493854782475158312274925776269177827181439082330766586259275545913210899440752539930847714233776521098023925622480941177992038738429987071193482987547996891140123739247338531461624420659495820247712650894758891401570896532930799467698867009484733186255212921466566942934907605712859267942135449345600384214463854169642543204027263245372687140335434155270780120782214911723412006711844921307537720758697027759808720530738305416436327890837986937935151311344337181470902356525038112243409131584006218531045571202791650416625191914455756139475219475513189548334535882274034330448277476266677244134025779315090542899691136695312744868389592479775120968886259240340891328513541370638456148708362001460390897668592152161616208668888721807153634030896865958945375029131691341854117950282882443326704002304305536025007723506819243869242942213148669655698042183215743189606417480058401682258002660267580922843595550772060668883407238016737362370338039271492287255491911543310209059421285795985905542064630248425262200247248781481579533158190539135242056769226747080447230632496274802099846087267423495427434901905267840305376295261159202888471769878732175259691615513670146434674167437639116827947970651409965863261882520169778062315080894013539513804034079310290004768986609296235658333638595301330373929971738931211127076257741375291971436465616545157449058376385440722207419287125562299393371840850447373452027554526910207176073029869903162972513554837183276628007380430651236120865953991043992587110612337801402218905846091053963190405640083922816841504370591421944711191299327155373955180007785876453015077746738522050461561236005625327023461422982333249591683226966885297469853085493012233572402025671364539008044796575711136067688395465582918351518539753331747518568729319558796417176932560944147420328766237898536816904713054023651792259180423845178126326133218368908003437705477759005966746005225348607426011357288010684310094899262424324394817217431788418353442329014228621874501333745479054065930942060490350678650077937696216048097130979234643669871001987280140711949594383983945083210441960196950760308067768217056764205305842471743382637982458120040231308471382157433966054550770746615560862283483142249717773049414334062420829044056373924516758614949847935201962459662348430909567030687527557507602887600197110634803200605733279405093198679575518215356283861970164746896278215729797942496310770806821030039736584161724964768071149672776359938223414611451689051554855113858305290925500642126502263464560061533100569086369182721435121828997129411734133564112589175358593498794221151815863690965037590568216893800466846740505042592993535909891997831812909594460689620808779174286211491334403621601089929438045633912825346656504410382510001583065058434340388412398135703757725384473312262655352891996120436904205333627969073417519876218324752724702226831799843359480015107893573082759690053458851409205367158654153221520717699336514456532001816162625000493218060855183095215607395462353455648444079137504856188477883481755495089838683874050885439877733783996885555846519841573608135947709162154168105834025025308682292290740367338146611366752360710809096307768109426118814828647328989495083491187679931612392945326808378666612589028634802065798438295496563452107653390499275845824071283981469504334119529675059302753187624446198067752029433794506544423990924381172500057595696227695040327477631723447417874844528225908615063168179265548141484876116029581915519235353454974188329352061776255408624866980206697993315038599087346493217863501892521507275607741146456185478054407282142871378438333215972373717159462178269173047158839798835572337769122599030612628851531449458909318889316765857696884581439246746935321133403676082942397670487627203042537349979230653299990124582731519575176857727055553048128793332789191896990571421001637947718373513590097004849868025283068191125249256203926445112621707824514302969342229730640981047394877980922101659442777013884816952449520509730201963129243171008986336456809863149308364913959892953227949562745239116221041297690768685933627581522295192301322297538593731656679408475207951899574746730636280352532270135954232588392615918136941062255035033015637536857206504614738434645604294893282704061563563199432621426442432415847330413396709083691582399863451944594639280485714740892525854302922813650269187962149290980836230835833377904123117395308090913245156657735681338449385878596630653399534931832869679654097689340867821777353858100579431484357136802062144832071602776120163963614868893487443413671546073469696725247645798670130355382311534211599589563335761417665481066343770038994719314346243567999977811159266388196996061305363723841441429001880058115897926591677131367584547381127432312320685526666872874227730003339551371188718094861374520650454731856551364945546123198500495586134467756375716257704669930232914518067187556559556819529309931198460047435035789358025742027054698561359636114286710930087835983783928220402467212477291178252274843598923837747383485289367317534064413777986588300413926202105143777822580143641442555225350998476476312134128010428930130559054701090017054654997780590288862269701922118994655568331624881460611792827056791213793551747300867513452912673521179424783105378955574449904261666866760019520844788852783472394211364608592406871724742480700270620258599824380427998332284332061872041644384556709466331651088737188415562438886510210722540973631209198448950978983685154382382347845477168691987399470924515414340989406852785024418111012422401447987947026880659725934170320693003276896856624028089126488552223683188513973795024813752862135066789909250091620302342672789235919313642060021998515555425476208846449508480365410399041694940789489146051657691359657794053835589630447598235001837941983028997928377569126733297117227396893204792318318812115489779431568446165070082289391946463995365955168724859405234526305862147019321273373994666914619778405788492685670422903819867575932883964950794655725553745622827898661676326242915091505659960458922346592155975009103429110557957493094573505541437200557812189585301370657616728874862019963209190210212861089781685482465557702966925462719521240950825397270306746461842207296294866237713697159437862551662540412733561758225252623033791439173090595913069477803249580933006247364544435268987886907564550754194032341069976932992928708307724738673049990382119514781428793251031083078234811800798931196340928054762909543497727210131907326854352159286342195866645816254258725416565946706024223630493882710714995343601099179101855397293027114185149521795373552844858220563634055376912464246820513813219944941480953008867350808179425440650869134574650500304351730434254577101082579518732103129076427995863109724809266295943828518513900488833060658102081620393248650194906094082658557180026021076878757862175953483917977578264261289428782478509952002920281204247302587737157521104383177992845486551255875313488101493440167679590411048980142793576392308662760942541944875282110882786999573566215350739452902315860678388661032431741891015090143461823411342231910673224342453895997753501051209537361314439575782651297281380457040080129033658084323474060353911258288367557509709399181246539172220885352070108443604571692952787677797572284580093939243547660171525529744896704230349637580024566019840929672937722634462749989535004973745227263966507046933194197376120857789236639388854671815790981639264033932641887200121957769671548999519479669683835031975560352685827464005791062104231114874288701877959301572724696719191000821357883457558128842725198535276058787000617521897163860460836154638512792624242085947117817234350829301667597942917441996520806862779167185252901229318517237000457412047022364363750248553338864860195291807001961821725633553277201392212531350634293396660278666103537258773885412929243206532773614600252794821193550119575893637314305643202084069655116085090102997911151027475987519422819030170967913025164022753670963061043290737034126718926334317257178019170799788463948406755265579157020334619504138256250454551019616387871712687067539728292954820316849167566590656087405414484963181256153019466238308589266554990371696108469201170066178911915370221506841505396004562708148299173914723424834923764101790122220311764374052537287118917431635378157701355112591767101991944981198768926522893088694914874806873013301953833179437174090820923509876518469369430231918836705146183959581776675664617592526899857330573904132571286466513263445104824449321332395866094493855792228112400140777209679825892870828627843011066053500358166958392400365462029242290205655666011185774933394447955609834892823016947106739750329901275239152129510218140662836566265774324954849048032163528091079877836976588917509070770288569860833667662135880578208748912446490138504111320718982334253109737241610396233429085021690953735552042018173363311842835113212984540737459370525398145836454942059576004363516536328822066738330841178852368821890945833840633523058814845006904670984155166912406735305187310697878946604483905494552548431426259905424230007769736812960617462305237975178163197943074222446160666231484036865473050208996154392984911727893589801996417605770452005421849322787733970224008110843121444158619790921487234943881375945841381024403635629497220717184430954618519574187579771679375580898747502162396591972484413025023140834853757406010500092376714646547097352522973222678372615556576654113735783774909599591236327429962903006002364215622233518464841211763010954669391297401840480980765392385729955468319441745769558878427006645864856600598746289734785522827947559747729935619415506066595443916329441632315393814378580546119287086304681496470375911108513942646228316160270931401314319435877120455841739019266424882072962191010278547894274354203764552857491542034148882198649188019502768916164475060926062319745230751981559784439538380154324886403275864548751017727577020508606181098966181572586488473146044240985170049806931093180362493151681698223982583258138121000491198809128175602834728181652402772910321948377425548551351916392194448525006930175057837474284679569579278114141356595766229005845316493108673646042980431131596698104038002275643389784910457770116778580631076774510692919070895758518668143852082806247815559501107220827406280614999986644040452237477282233794773836987187576237458946224678476534175574777639623835909858291688030543133468308170587277609610946319307063083147495038492486632685558873270641785020036437781217946149909938331254796863877203621752352473514754925699418958554570760855403413237988123213956027962213090148120509840373314616740881900565665156439155187452271684122401706927808967676068968743726958362876194654196218559876684297914974629516241248012696129500665139268381101675605626974955111582893092113167490033239682911471368863976291293102063032721441496134176954526136574470576600471773285131559128945507993687635183988842887744913880055365474914379082975388380942684994690834896099399782632445731577498892247413332318765945729949820072566828385214613944881095498624042830908133251030594531416230645448456373380616145624350284991680496232672413430674910088391331194897641838384963631967347011273618194953251324485476606175111622589665910329410776589825868037778282064738429748374576544045483120100074873159436602948828016524354379101897306731817890697964101741756488641773325830671929724224549198145349139961947324310199909791851558619936300338545319596541881865038627869675421249522297152599814348696812730550250556979763155398602434133277569790871341821801711524997673946470328652116273844774947165426508552252244847069619040721228684667829482943335955698556480703899958216549285692982202540546088110397250656404457867247060358722430675827208997536325120324687775453882702605416988615705995400537341635914921883144172765012257064764142890996781643992324160725151896506079477313499285324679706530621221380409763950381586397649530619633600722120802712369146597200021189726275752428970863107902611428111822499273177486287554487729587668081750955944883056914309563628264818161973706514291112858792671856678791886621053649960928744528453565988204061394847047003814180692122449528149858290808790798541494766827844886001508845209372007996861015926734853969832398063644170222530352635069284398100897205544031668616702471187819936969203924162668099675666870759381015466643802120395377425834372589771324767866307676488295523211701838130738502612026695985880731956862319838227760048192636178221635319488910381038329903455720590886570846572988457476967937852731018435973536300988531412830331450175517366294492866676639073735784963166410732223978809786756909144984624212577094336695909116337074127906053021259703885777511737711048554797562491890519264522351043238701128119203265180514800736882940665968732211790084712523381100611317405070282894295133311609435024672997333455383642868525890365055592677389349451616464995695328179197909566055319138006938529337970239396863576904031812052571494614434750952592543963306557607215686018821179029722554716393744302489854663407650576928717109434846379332845746789762238900338245402208017382153199756748425004286214742680821072021580576121305114428105340122231399262256750651809944874720523863035636448890581008971941463768635384680665483920582463817164827145747503384542749391777954575377023110919684186326876377617018306772188845030571465213471811862114115997504113316251760546905147858221125103274436189992299839769047094561683932522436416953800153590878772001898899776919339250758108206038993561037938715831506365648836315597018265045805811196463923624611548978870362084947513777223033940994980117854720873041227624095112955976120156956275286185393599765674956286932467334207120490215054360179332230687497029713941434019207649647167395709156954789595290279829498214008588040982501211287071190487090559498870184390558775740600431906561003769329807684665884520166823396366241194109413551701093856966573681995738368640524335126823342494073080188058354477497909041330481449910482293701687174157258748744762046614681175075081433908041305391052735463715064699841953256784726896053561425569278995257857993677545417130009545947137746906908676242581064486420863753590416592355807312053945915683124554021665250305836599964178396902469054322854761074432656661714512777857076943246183084402166406050446814315075753531608041589293626380867368089195344585639760218842900428631696200751493432772153335897998305760763634114104657465009073098345690075831772516555095537122919808919533895170726410382154570237427243012995295814407150329631884607445046756084780344358758679710772451168764358435777316811778635932255047004252276270676017102661927123590896505624023768726647156782124736815821307264684981187645022774281964913667976987940914101379512999837592015319771542573161079845818112710889150121317878208866179105375635528231297887901410901640309851591945418249722869425749293088483708758902596180393025770472942712295515326052553945049762262371725536759308721740070997993612993681106258146116153661099072666198807025814255178334006801846009915899519776437661821463644692790011443314223552144059758493195603543986137841234275854480357061942075313667363234526341804998439030570684182521854917118137535603866832236866132423850495796874575787375583881085560987542497293284391876797560545008892895020883420428134184267067740599782014031116745547143882266359924647293361766212598631129190199157750865974517078061135212409049744096628396647818561980701742627972504410550679715511027350705992001616878932440147465277249237658985374574211153692709760539457655721158499105396435127651345853105399352514026356021741921343789753567436343446964566571394469882560176165246710584540791234767625233093430499307946356961603368375089921505964548502306210325471408366534332930870632686202453334975307398219162906951918727503202019943353349657309488941049974286720895775727040762802740451733354362632486765629321796600739643160194967936176985258687585625169052609603233969580815663906790212960970208321452167534193451254782834796121474239177052594923853382282266891178106152113287505487811636273240131455609483284905804195205464987212698414012776971452542464815399957001074878599407666313524194443112212155628233133171257671127840367326432266166617113050766310793039453662562406042668900475033947787468360882876812320831617127941180414637311373355083479527850788705059380114404545484875337193886227762698675884309221736551610493582214524638209689931866898220564688630756920430605004442170642624068856650877675315186775881176956446910497753143484768263858839891577311509533695922824005240494971412163960803064547376714553128507933662726471648552051275054649118724012444133957510416898322552754746673959105042658802087340408283225934162113989450438069008837795379019599450978209848822348682141749401186544342094773672383411807641575205864439718513591346907500974711050107433678608308471045485828462248725064922563721336767594972533121656351747829405191934281536168738097298939938844652035537225314558403935883672958103679299181745068812697903086110615821909142465471758454989374056879622766316206677842647836065765308287761369889066696804203152550727165254460217721033668513822486928591358575285752089072686132915238395893606282780223609492486202155649553404541986000287003955781644249798434498438348455372945088608332291685288264954919968627340519500457877020426997066432240770374059554958930297595757145678231328743157445867013580744609892978396106164977414256378374050610064666234716025849286519776871663152016750381871738695050036577824112350944575596577904685537196535614230619528519684071636997175809592069143971500994268569562061904490513804885170061832643004552028977131890585294378261723664530605622942933862040855114325966470557790168130426813439515680932485725720879624974171808522839346978107842774213988277936420241907856431347714776477168903582456547133827158552803539123269694726438958280073716197589752382416850153297320026411242851262083159872497997721999907811163551833394602891961062780828801805773541817303407274183438660769705769102706142810969896982850553776853258638490768972505788092574574053856111367049957685510972073163333580992714454925274365947623758737418221326474142493416124084727304812215305032784146701469295402891799993843049966896147517689223221869511451761610824547366468991653175254541216559445574091889513995275117524346175441273007130387954769314530324242609456075657841064441166332556540902951423370036105119416569245686315636962846904691753228335182685952441513102586132728989363717817691046779589089033122207254410336984026369549470902820534542952411260161712512369432713123182699228276379584009497372230674087204586189309743310314650949570412616318915771750381937636398891539125573046842809644752292554813472511281974989041325729016769844519398260188479442995956152240771691533679687804897169552202153263802583898112709236054789839245286143253743941090922310062013413418906491294284742653530475888705801860977136966473179899991749729510344662392147301132046488174247870346141728124995226037821946035485765353473948410091053608138579292588638974731083940699765099551730183576150243066313376004327994281600703709639441644964525805904207014207812516537455119321178787997472484527362137884525510475435227138045780751562282055557734401208589102289397077152654043813594157674685344271849986741406632179774163457956664682473437319759948814485526349818206629762579450415524824309923434967887255608325862287792257946723937200689525767055979942632283108533584382277874802146495426969459228400613406442081947579401580434090546601196337374764917607716678115839185965357299462680482226156042107192814803645865200687357205084466929191894393593230873524866867537402321759465966433160459478600959024012918619152749264244553331984571565021437856302382026343612834681056678152920015813234887039708327319424414149329499037966643702468690082719573742640219796870688409531133283267951343510363253437531138746638402471542799863191419217915851698468045305404141046360964937089773393595999445350999904305031195183584651912219654011867783192992096289948294708910676675857866856860341451093850618302220490685721657967345029218563882369746690967768234328347569632378011867541964727627770622906170207444311472298475705175257804335921474666621293426149563082885924097691966137875130967829008617362354877549065695021863714239027817633103515185265063595494634057604923238103126523422660397545797606458911104277408771491428816801427586891132127101095947201464590615105586772998900224448539003109206129539952480593485720744727806049678990119715491492235569339475948568886587647205540484276088677038560209308656562345316865728837410014469227846133030671461515429181934111418965900828444649952394295816262299826195922746791851666484365107167213952120692197209113125984230490732925809024504320514740191567321156804173058698657118837836760343491137104072291802351331705620088700088356007377588707988704490987418068745798881956297742781873940792942576607287196131489601985821317660051399709427888550653377265734885104471442826762114988364667407234195547090772597475680699767410986575900610985947640571931130030834559180869741793533127431728670126502236058281715289305448799980832450491359472109284778711277285623219272066305302796914068322352333001381324212063426411801983584577855478025609519946858916738068941918156582185391685302622377825295577541349843217481538201667145070042504220842120491705356765165557550506334883987731323044077554753662740948386694085200074089185393219040917510939204432714054664556578983082945192199413394035307761914185451843432163324434266314238467609633471466786285036752293409983520702706595427867907420994314797267134982808751333080467700487125479337814135071098523297872572028943507937375645670488541435535678476731271905748121591543643066039514305217478007655853916999886569114990100937808821297275102024295310662897168189335517163701584356187874659878404962292482609859114060767987648978613379488126380626085336004146528668920303294731914145882325438750716656025453361401216479785955506907219167015533970545927201841093544345228180105416944084684872294539522431475185739085230171229373437102258739368140805175803897871334354216940690912529449425453981961354772539612426430805501157076638231433395551146935588340299643550178901600999830416613035858424828860700894831486150176252644747187873004566508580593025246024499350831815579182449935458551843620999555876731243568989548707603720570713699238309770368731441979030791049819126436445455047210688382000579433392079703821823570861601626339042552659431969203386364990269750876941257842291837497735505803513105931361349826568621729657499972637423675289992611076106145505286597258033403444797793159189027437038614016039680738399470391309482483341990111958105197860685059480332704207808030083852355894779900174593639950513592850479157194454433185354517859897270640901255663958807573082343576848542542514546894947403933341010984274967534384896153158837133604188793299665788984746547157918932460241666193316262778205686237707709830116216323280790760592101732919017326140942887325701421605151954552688440220017270728866274442880991760354042761294390150523201786713261958504447234906465942628611353827350428095705454304065391434952727752014923324067443242863176482431552176859443007792345423235336491405753249374065658889018029884225371018224521929036094423728616276510186463519482269490088384068889049121479707548182750466355116949873935342667480932270464176007844015574135973768301145857152232445536378326723355193145769937137616085238386724896577281932411256776523254483261190982438726688933338564849432782186351354578097550449461125322846206414503159812224682856386505494803157435659298209402654809898562760542668747899778295442682023361345510406719241221025199429393923113025892576136243681206785513033270545546392308785256349949479878008201400063379594324547978985959905523030158959249726619072170365003652510089225964689849941587611122315976192985934564366506860003476484923272910244999312276578477999883592656610927683403918286863379523881110099479260014619663181077670322352814833361640670999445720892167461429087715433274731265864244486285288516751267492843486590836394928724248675488203467246594244995949756934408997183870969810109335049946232539361372132600853669127342010449546873178481068360102944710068259312490230725666808463147395476108171505981588180487278062993936224816693564406728148417760133878757156719840979538514318942096647888469586451126760144079446652201752956423979566150483603690542125943341685722048412969844652750801195245394704627361536478781011650411876583467181447051360027887611788569393995387309292723066494761727006099025393884030544676269955897862977737681064959345546462933376623693094387596845113045142554926316370057448528151028009892620915963123906146928619501277709911670023187117652871562662513459851665150838408714610194129266689385301163555758197053413963134943468899684337556878782361024786977879498999885663647581480384241154881078580929209644509991665194767692803707261152916788394379698979766616456480087353179321479909636104820121673384016797122830228296142746608594905026881767033234423522423715434453770774991238395117180580477944925052488750260896734624642025247931752291577124179927447371250057769964684151334264635658375332526546584058322744007398346759836331339366738661215395783062554890089397600016105201726423677812648740519927018445136060228164250846117170245083752241660803719452599146675197936362225861267655388988583351015514982356939443660759352811153670514309376985555632853249066561010542094458395621267510561557972375774042795827611660721419004927970309657686992016259452330981293038830356153799557367352650085155572103009533673544126896029295717534251563078386216602602201421418825954513479681472965718457889303425069545443838411746121828507247557146675493503421817926781827074196938642117890474417070863669197966252509177165384140334876818548401507020807188091287364527765182031015029380554937512982412492950846545247398038410700349395058847380576693617069002159172005304996235284968286571076436399445107118729365921917348189522382302203423169377933604097929453588139906266767411136870012145996743295238835710635808902234899000289293904672755162771740567101723574360662788521626689107813853626645858677127451781596879805345543458580970498547968798606061131355576549675624161751352312993392392604962927746655923551367311467253932595025778164694170837315254194542994984706675367523654600194983042611564913391865182179774411296003159592591211233720661855732848243987973459532059303068804006886977377251837691526205569531031350445375082168178329811128696582025594729469745259907904204714839398557737729424681307290037152205395352251484277665160667523387812360296396138146110294227937034873003736510610054006311110795460808036159030338241082146326557782521237270447018112477721677743229968736987164598252520523035853660897635720660128205460517437210155037197083611525174564699339370180686641575667183600542168771399802381334710371063134443707014034470149963423844055737830952809296079983465008947132185736014671814899471510218270560908603378286876499010901710488115381169696081887823334854654346623389482724368846018801623594331422400152743861811969080001989907656356703325994131241066955324448019760764457498982296304790630079463196030062825330712119590965812238438971747936760319288024552561759040554633120773408097179463641099334174436614792981269678152307459963637609426654797254401472361376415647648823183374669689534556123203217343742277752937313255083282191633546833819443578902898338264813457614039484994775317566201366959258628845113073062548287007272774189031123096514376901772858253339294654415225302614835511962361213174332331454107020180279613350407248442882316653735898842803074879148630054139469675615098760990870051410771105874579593035262389071868035505841707224031282630895536520486478946472983131373943794623531231589959263632583350920177452498442509419853412456524398362740781122332985003822376959019251597436097253859792493251438463446073156694925382748320239506271340916950182600087866427697658982935430294760556466706990260829921979050056454977684341749037674208117767125837973597936594730083213416588630191804645068617067763484007810668387430936778040140398566605349003253898117751950726873571603475298132843117670038065533746757542930054473597825170254569822047807936396219041061334540853001328238015505068109354372518266337867845199774277345150294955219604253035416196177140386422563654700493372499627784473527807079634785180781961752677861733366087661040281490154572855905982152938042613130533149968677436426426025283632812814303040411451645086922043075334557630498040635432554481578110381381894146439313931465729115413405367594084771408342962408195777612940662529533011814335053659895941676596196578364725642866926758263584594073795330486390515077472384219181914400765636374106530280322110730993935159314842137407814485760429086094995734321254514010661697068679598853534338172956446901372858252448423716458841384270834619894867821120289727410085790501834244250227790698488158169811172422775862178661457603073185244748925350131802448569652351796329478569304331791646945801338289353856306988371965372654474232773731951965168197754083720366889499589300690385614232657298035295102632318697310227894085602706261104478859959404976661042344181866163652484490006871149666834758483356884432767706915711083900730800160171669093126895196760878561059222371676990846758193351944308705988702960373931946793134196194746070562003421418087702594314642110301547499743110563493370941030881980995439068556611483712054096859657222149174796887899043540562567190332042826019394957368233947921440937477245608526153822056334056185880163540388689120598527870718104416963738238359396205458109794854186115109076087032818633925129000971441039733942121667650350433119873142839036812778750794822619375313370367095031275194295068702557791827987511488955486087817333897571534858255239886818944128893767184091547140247146341941855123445078079854019762701188157147996684868596211159451389021329323892115652347779015214965655862052212682927877999255448089741536167374197711772430070127656368312728030208783244673411587417514037138060377892063427537085038355114329624211622517394635460899194597727408610001188907297836121836117040755033654424372668879510306395178634940226277572200878791223389638741903169688008367441950196298852766004033360920758796254945010784061550443497416674898736163177525120039796702851063211277045382405792206062677622603112901686073027774635663440272586449379756032006794095380620065118562337757936545885824428600836785650434624911816719085981107528461875042655382305253476011490911300780640825898130352895954923132821177422686300578060195644283935760345658908597978226910934435444812377410420327453469803164101946599134509351854704333410298147522018398921031933952103152682121504999557782387114776411457332154973050138081836254554756829085364655318162023261699409334351069582996514600083013788446362791444968036613215266371323174848663611165104244005890906701964690190648470686154605599135921134283803681674931982385111484572528307419336033235875449651569492694102074950535140867942518972981684891007364147622320247838016567310358349886685516743616717986315378146668781180033226759330539357443335621520689688439140154510746427258320843845086569842373168158688540677715520657506909851511125936701906797070985351730111324789872228212158406699604148953399926205785512167637852701092495597748197280179331554149510818668294006852738035072168204811332589775819140929982532335589388536135102918134861704233235561556194418603529007228080276506258556874531555632100052520361131951074924695879468159428773322598711668613564001835126949891572757628201836363655651412255568913628439559376981569287538052662238094905043905788970233752106009793047062624167753089344064385361278288342124861269809745729254420095044771166822237058096982912460728620996007361060113422404822892855843604935176700713507404452741667960785583064220298634834917082984738737053668037867083882983525194072187215971090756054026658933006310929084497478115839874329500437122056230424548445506695238741825581873525887470817079308400655181144913813470991738610431594100184304071716861701085940957024174915677364431045547423288719302357952576697594344614626465167151663896728489339970689541904712045619276918292255851340162533529239973044232182700179816089043097931001560918983839911743933945788599747152481510825216245996144308470741283103563954769787807855808786886241988850974714771018565837588416234946015848764738050166432537853072664451824662612309704277134831556750936225938947389296791995053543281064595721002710143100475095786703478277332365658788328179291266527945917795441776612107347422419461378591581211390433355528333160342940385192230212667555781827686288503367489906386238837118451074146985659997842042921979020973583264893738760323426759878483647904689850769910487490127690857093369654744471668851323984947126337584755493805075705795544078926121205454689868862460978397820791595884623098762217618530624508948972023841137963016207650756403367107004786957540498021803874253072429766413227690821842826143236581502034809979231731377026231708639900291940638802255450178564212904896378990375502617713367986972510165640076181292202843695564519568069594640705677933129032131811089298688651045893236129541864488635572743523644830822059034301391424097504673016475446903230579759409769785523240295415132135583886078081543360742274920142125079148848889211635580178826456306945492424213580830577088464336642050896210150840788236405310210166689277011046500599002795468352978589050887283392887686425976680553262176358714755140804450748176915423768476041276552401376393367005945880263011024256470994251460978319132299658929122191589185204572638554580003030782983646515730659679925572709171756826129534531852982274234477132465659274222431825243610165560971046126470548028996158399230105175958030813051889516865158355409557413981406102947537055087358526918960864013676174231912307040187496684975997592694242857508749485879219359820492597383912111819493217756891527290408739940519281477384793489677432531708382663815707112766213429032697964086246424914636030118021723475042137222756393358822744794701973342094509693000557050720540120335009694828547914528557306489932750685917799734353054010228556906195612777660998594010684697577609328944266142378482269206878049175558017114425081746025892205707591004957390492744508956560772696208024219109530715771547141414578915388902124713433213336201927567106051622781258866448785775771172479582146243930506600942323319234305418218367639336853276594394688148005055908253735311248831568218238391771977098852586406091997205375252827578494224513011355931163546710139558833201758646470388470409459072667305203292908463823956457426373835576365798242284457495478066608988714902974372535298399823151863671580884555407024592067287172310013935946224951274527158826368421819412626972251150560678736021904272163307192642689152157932076229176118667564653730478414902463376199957863731930852464757720192015296463658295187376734441055328420386992146129493507992578506041642355634010191247574499981399954543842502382493670817739168897267097647573848176817120946311828370076161396950078140328906146246683198110753097370445539086449362349956385279132745611973098426966071076877515509851280806511810059407670910075300928423071845209289126512715257416082183880481548664809353518557757723471845180305323926521708279617026432505521333655738226227951048548409901311600411867067788240519479275678950844915609477818714980421314175299273703197363244354192497167990116075659972864960479693426366649507687998365528276360545708421225944032825373410144105569447368987165787590995358357600720841453834776787146569078651117044831223543087914564138505975874536367573743768647860985211830990240029716239681649050799244547679994720207523943581487783273871974624106445878444756272053329030329865232154449613175924264932285958195085165799962712747215558173922081284576186050931150242096249957262023937710123667176700236144738157967548281897305693986906864556009597437070721067780936790411523586576639655299577766466204910452760981146129751427616366947370117469842019612189237045082382491251014662077250175173615253319135309888741400864673707094651697437223729519753150098923771971112165788092105893535700266552118151285214812573833251644782302354335703817702030568463185673762741160493597020904444170728001516675232735826931796223383607446608725791261436591522560882362003464243718183680202468020766672098013753398047085062897710893731350350705290527354634382846584117605834124837064434681534903514777537373964139597808538948722531970506527086815989280181228364125940381164054860532547595467166402114727944644463872817933968085441649549297368252585820034088315577359032613543193724300176299560125252848343360488235650005250634852895409010989535241621367524009779881331166255772370497168102318950381773796438693846315906192491256429554282826801246148251970847096026270918939499304124107525064085864313439523443053079593348242048200451217781915612116456329296692731736081452238526464335969294625771004999763048106009243072920919730912384047731097248201112488681342659458555075239860716186292287690530531262673197187372595288581522323196567376608320796157906018381829527442646055556588986057858456667368254487394999200130218066265226810006940625688369428116514594306240235589243889120119999660946687080963337932883381216561001071302760900225777172322094753668139310259774542265544135495003896503487873469096609138643342382588268664796430392737933135944194329120233545565401133490940580299038686705870589341824353597332112076877940469860643447160111719983381171115657076443255492060392164402835527609979798307621698671564804488172768091740074198522695210437436254989428063238100772221591760710220422341881124889049398179903664027740170531540092126880779632866784237049520081574805437494673766486660164961565992858723121972775919533290796386309775708157400956727956621911968998043652506427701906694382475002614521591158164815451221630412090927474152815055143396144748156732798799626672465714579585839388206596263994599534615824318742574199048605560979917832082390219085510851934434354651022053252384593185118666351152721779347089995010664343244370669390319719538872824371895944861968966948975594567638719207708922616338584105686144752372669586099035482063752024501818900942826118716113799317881488146645791457707751566220267056907541213801413848829331161926733263869050683526379781219978717146182867956576746519872905215148350516975058877575219140669783661631750532789481318513880299613636160722011411550381129466459316834517008454862163173372058456395833369185206421569442861023016429333413094609505932323655430507193327147206175940866803264336762470554446821464309952186255119189220001240193420444449201972907954065281291471985342689067079219804207071222285521789748288968556220447589163634409308549381936575695181235819914132532443429914298546683492414043323448383482701578047331397573003298806589779783543297694683357515995120616514696645901392878902050334126698359915643199651777739566341988912965799924886167224034536480437194439715078262816006892603237706992490755474672299249945753566340319510462235574823941084935828396439842126079484789228829576363976833403677557542951000771139401806989652741781299305562803727316821843185743644522050051253821128349917158171272255403836361029078448547245415629567648764082948061265206787621890958908991671106832984725157707348437876228308178043376501708266480788770323623585764413553664601786178650643571035913169250139417409239570114099691130023868712001829682313734787928601088905189121590484137818910848139990961743441659719484628057112567156642785144210529433204219839695975705771338729933144523411676514763532307582601573318592577567590343110521868161540472084793730030810794849526722778573024174297110076124309108927295662735476910809430010213652698759892961040072786668398400114126869846879245320774980608846975889456341238410709089440025544136960194844314299418153130857893265877876427269346435218618448788174177034802098880910559958718174784911228355014253501272738998398132138642173123985722726154960491147149255303288506070322938340732812909319351889929773303611822597806172868107916142483056802040935614893608014119132995215139787333762137299873163186080852572159947990142386771043117057110752476965439424559147526469874271381049382633123914290139434852254848114957024193464225984404078593424455507323949279209197113568458388040888668399302187754129010488103384627084035508360943816990912760292940507329256738702406728367981038025322956257663334718125843160571293175183567723336234709861232765622182924625849641729178674446089233500679224298684720024378203219597497548384006283385091696280048942635529506201037960856557001952909411463565826325385582328866387216886535879081033019161530603920411431978843036519593636919042497752200026597898210076586412482530633377606926469983632859549023409077162955450312351008330526612226317997971878392990716871305318566473643580260095695837903096241599519897270504958686219766277588641738855457412886250095954381369672959994790796654363483356287745678925611909570550019977519336138109701890458794389661362342361943626845429505192718951764581173793553110973973547838659516853661320998802409289618096828324270121256708688024370099936300794224027246261368983995791579704010403688666197381459976570980561535137444446048165042117750702037538084582865987754890101400952704411832086351452342430304047688402673695574751283766631541163510918663017855992170636161415690874961030162485806085100132407751055819497688578926575355199644895832786129058954010460344439715241701818288734164305988744935558462074991995385495681462570067854790798180944332634766032842765266337743765872683908879699396265139461437352034072710021983652741059443820309303487018437472337606445683002797491704721510072262599295462382368193562397674540252973741257635964820414780586436739172994866811826707700873569559323301734280133946808268904965261595623735374522300839910159185984801063154862765001438339433751874003555338141340112199507754937166729274108247822190715878373369059393419286301656782637948572331887045767163650678601010381649140497983493360886294120693837420797142208509327062901910322083239957288151980628755966285749982092124897669417205723706438878259282649566343926020501935360594313529324261805513655518639306372214345657881991822126414317089175745276804285268184069174818215576077494210489075515925424634074927630080958489046861998329679914820739405718848955085864869824089519159648472015395424672749765938155267997396945327307628104680974593150909009399527898326935004900514270859779871962503636432856357013343883217066862153259690511880633953841231601031691636322234372592687278773547974340725358315361714151891570045919234216238634188399963907035851289723099666960310254199973759938784768839492858916461189139637567465369299422647786027413482562785303690809895740151090732715276544053728659022973113394548084463405863709553775003452220909332711880041765496060837119639608654000093296097678475042112051143964833356131571847787785019800149189018530933438527659569317197092190491820280289821415356445855476997902080092064773781647622312009338241861374013871304367829244390024580683830027507679106030025742053403998938373236013430898156780980427164069683773709373643148566834366458751954027547041012154656785727157557724525765123384922025803293761493335218061713940443227914089709786008294510968556734734071644318263404262643055149736744505283988586815416794838716798752750431336728074957799879499505099547391089983313666507962350403125519889824793502176100154502006664352363606062106403236742374125414667399341822163481644270292236649929886323552742018133541489903015583401917549966570332851342773716741254998142404217409626700913206316430235787007514511690844391558097715795680638615527334484794528692680259247686733153008554752453291961283525377043692502646829718808663007711275660322213425272815864522146308421369232413494187077224220776721485183245316941896829803434760235095849539981590974410737557142741344310051671809942239699034531325642360106865198599208696896787545919012160598779662715052865950642414145142988564766861360665396112656707265032368013906492031088531074320507293391508905667454551889220832659382428828831055325525101114332788886481771487204695341831966143325320624934461877770933024589115554413163060302870255849588262516069301229653158509000771236001185532630941278549255229366982445730927294953317245804957442360665848665151747384968287580989405922243674438865058690556277405892549707059758452204166536980840877737537352384911605911742380923138186290057966705171922225900454652924472115219058304757114996558646936347836449963213190345337215568412990780377007489603602625178953706660077667636013825813317352999419320445498423247083571128078175890154257639485474659967743998464956520010828455664514031446014853328045480456426705050009923451582125586182982606883293215748859511764202434579652410692302739101989750863628854655055799845250306219989372961977464151407593738721202469575218444607319346989304536302526543436168282392579134174335596454713450890735854312616775493677832949516850544948675212675309000987361016584053592482203643754847123927776128419861039632347062455929064203168061426167752479139840440331723312419999191349878655973062570469683670707167937738264880354432735339039034264548539010233459313400650903590049878057897926590682488875710605342061683826819071466153611983551121804072022982939473319111343337365037852492698772611144052417131812011621503031425052988155968157977867843802631672577384264659885065401951927628090759096919515487589240750630107614417153852506163070880909860324583511192557629029695329648135509696245830078030620780395730408561648560950291380879848939535731005523158755740666166878728960371975525223522445399789204376516689824357487306809522717894180920591112609634012647986223335987218077382064717421463722071861920462903704430250157821600083565664068174397585671414577227796777561083959909681890162838788615437741542165054878609262861342790061178393907585348082074436704978712165918561762031120013156575276672541229967814717659598105314893099692959660537514642819291476881537256521435083090236757300464751875754118044036664163505719117629835803427655512210677385459527166653607363308277642445196102740746397045959766669252331233700589493627335269524695898934642351183334204292226602272604991174246882727112663821231571215502332696093763938670289050043852004188237733153331344656176946069036822704467482101111924943394931644047005708304563263440212887715211717401203669290761389185456648441628620167131424288465468487271686557936006004670686143685802614287497732328562495733775343798442560534807086524590392357274937758180157570097952014176136500741046091999719296019863385474766468158170775301967671412359776442002882494317133558954095255834454430368878546397563894051087374452518777662769821417923553119701193063387104140460951719005184430343734905691194529975670675439398015048966613170471778867948183622540308961387061484941388130166582494370288939144086930591292749672649286479184478814555317254051106667046250155303792085492496876821641078647894653610352500541552593048789059190108647133560475935036560530810357344134325420218991831304592842284917127211577894616552097831734669700892167015686516185231229153659328760932912660196964077311885965270411003458863485754186279351115556215588327827272722983416227994834995888793813296969000242549812972295922536977241512161493891279165948907527971729853253854514590302105354351551408689803434720255849940672292496899969875698489918250352367033137355144438460018211756477976542663381016371875093478118362078799918855303186671813766203101882491402458908273114521316070963764109718239619809870007639230033888158076535033416001952218334033490390472667130752967597144644779953478706836720573545832537481836806617580536545633447770341812039574125951031047073791896350913624071135556853331457299316823293590995159870143010983754283471981228656514427602872843170882599750554212193707715130075426788807979850598488321597601400227231403906369752333049505976729463514709191146504370648042283480533306585146940743526808433793349564438361842015859144519557164330485596325534096476174884857770871770529255912842385112330811259731973731699756107548940440881355869567595069129768700754993585539366650139374212760657485952533439212899406506313393869334753226228762037088835764644146728270284562988764151092639805081346905039291535906025489268151213509156238309049870279774796680990444570696774151476117249138081018899126879324274683366419161684896784143785615019481665005836526407339421625784791322455337033199896790061193785636202992199099597347220910370405473848445785842104046453884362556819304300499100242615135672880606420747845352309590147647902079891327761674947011143084268559244568208300326806415680607598602748879678288604766994525539054574269244198847727989938780241122780326502829042205287984022111754967570972335134895307975363015047171778777480085945684143018105824510169488573899451478452818033164418182216817405636710403392529483080858475295769450750043461081042046865334371985945960907738505693582565240200900772019371837744839661865897588007559872024625906077083970494195618849044474758564713726372132170550318255239949990747143663450461992011891501806390361677498975809720565364209984692124022458792455321860562708631547969305586546678185171459702034926730517213528196724929414740456594720050011006698415718487261807080346116464594992257896631356224815731806682317652680677045166004387552063660219455169149164217961736008763373258371817444330332297044785277328071296140385608320007347316431826993076277466259282126445553646729319693673329447497375153579541849925322358049234799013761423523763327389178005932229495256961643396551009445604258472642332887525093043380453602613754051208113940974399233126637451014617955475954913821406303084282950058352946294479159260312207869429281927472783776067989274922741648128703348514780571029239265562488397207378020134247673300628005793788454399127847172134808679923760755440325064423556487155502815059995470354244080718370604062750510682185975891567774621665017888824189420216416103284512430723939114230034329730283178926388037116376971484147301960736773974968854180441442129992123007066619318836284522991730573634272142704011964806850607337039711252829635012065561957864956238912574749081422919337975025688111660970908347277795596483901147658188182773894362704268137540216540037066997408491024303752791941936977961696821641214051679311045154644127891977658838954585422528733929928167068194275557972727566689328421618671456494649916512751444781758446134558697940825121481718518802049763985643560290211769969346905177663609874947026211061656769101762785560469434240405874110269378219461356812945340739939189323804632235678268703535767352401122796508325540104370257966351113565306721027309922740363050567720419971294595083038083740195624716563476796431190031196110208691201690762939114649319419455753584907642247684984404473087582040287214109218690234017515132689068013249737108845580274634261517178304893334614785378307800145341929315914937925026352677462366588360176413584315385044667427321457141427135393744678201996215006951866189280170450017276254816387637482399069718186746444620294577511508469595102544982255149841133907524544524929038825533379354831221428894788619216080567302053540480537367366418863111157870180122708297510043705316125117281259169598196772242972741893575659371058584654356230512495267952480980460802085025887752967598472985004702631516493213706621041144534597681848473796277358361342774801591844603512486078973522542462729917649455363687869489345944937210041695921676704004426202664327394244230976826877803507823302458809794998239158320607114474845699005604475703408405000162553619740299100073457249439995851821771238597279735760844724970864065490085610121280400978665538283952034774356189650091972457861115649691451882660841869388730945543800864349550206850844124436863744880791286781983751270941973640172188266118720063849375999735779879729264533607012636567988570165712383068178317214910722402818316140495239277115954878586274549042276771266025199841623064485067151977638113716716570456814459249046633229767780897859475108637279545911750519496759893348497638740264528201187539178557317389809254777792078729902744992070217641903235062594195328136547273861254936940334812351069015738543615634416738865743329635869409738072434455378532592899543482130292294130130574546870025914894367636103100228365652415519058350203778046025644630113513440039735596709919565091049378753254699657642678189116381385992504474840546649184312954736714262470060278207670804444892574192459628032838587236769273696204454095730869535940170428041502691198171358600801528364422419631140493156283818477464941562849674468606254705315594013638034826321062434159313556932984534973306213164614512592273541332629572845191464367543761116785927058191912488030224787017099396753801952411136425238276136495160821514580588809278969146061710036582467746210119568048060880787137951121930469361722836379184906497025523345339021220372678400753329914934659926304620608735285835218706705399508788273724722844842553586827795621480917585719375418949793960241483622196868074610262660689375959285911482622712780712282076334017577098830381416164380930107730778954031469156057080963292357329581593412515149253621188418634568207510152465363702147797492130683234443264171231846365787970121331285494808760124074010128698330048474458115388913594729117118865971671785404916876402431431408582517389460984282416385586424233763693874575088264941159861849549875257473833839493219160221852040638571640019324955381809185451068259792520668792018517780812757951152325513145249258109466069145880556084874767059652033694834106382395629003097947154209806478506902779078200707625218417321018653805261055828140453080957476347491307023055097229715593780905860515620061415359543780177624151191105087098404085039618151627738355092244241326839024173628104576440808981579282530346610975505918232422408578289761007768799759932229463519565751010187505286444833581754374082631896306709620391700331078287431656139488398157494266471586443096631507706920756865108346795196951994678813378466036334993436579198567540646308372217958540398739754587277972183204481058775521692205591974705110205891452804800462616433288287519115391222912298430185176345312064584049131342552749917014938773110410708054076868023931383017016289726160362530655764220316456040881830919034547223993243246372055401543053109590883301452306469163112678457366807563021990480355088724889431804954456691238755098039715887800913243830130763486296395818055836352406715397233639996489204987631740081109603012202960622638442386027586036957158585906742869876462846971411575897370685843640265616785920592764010498563379762526695156379625447300632886023578939582399002449661660661856480429155732342528952050165329889570650954528273473025269448954208315277769642151176124622973742068948879692689894530472205369232847622678445850997207332155184071388676329342625371382097431706229746360413400956689012373012101004560965669179249562471390551392985364378807273377857953301962659971738322310524564508646749077828817689688262151188158436937077751509533943669722280845379278968100924141950357378206267330060843872447454773346145756543826331251215193275425883218422252580253956998494531081001747801563247744706180212665172311725227345174646652591780031625569806257926836132120508567758755827656265823331350434773400799125753085033937984850089139246394139798091844556271861794437532802764095993566042315658185343591408683856733207938293817915405941475332204098361242937610693956247926945362353648822860016244608777742788897822214742382153404912305381092246675140642933867425597955273212638960049762226020950723832022781671366726560028891055078221384502455389260375568375913397668659401721036197628190832096462658891030235556774538921488906756771532073588857443684480960936846755173626982576577669660545742983171314580684974870055073385659003947853981849550659775211806618411707506597491356510049671748078515906916418014895824996825565934966970992535669091440088740365942119355177906757040363864995722567526792346669720545046058405155506365075113069252324859661256332411303894130561843305163587918695303335027797479099684303261809419406347595038859785887254565044021872272928319599056249337733210499547601098754470086626426631605734030972054363789549312962401055098697255548524115793727257178967032960585073425305208005928076633749231619558716959527423042036335099237115177304800579443867588993215733856227235390300646488649610305418357332120332940738047773211606870942719179350795367376986009801460627060583744194447925151479237117222461183114449063093296298412342505677035359245058508820451322845027869730150645584588882691480719165314853722945191010000116344472626240123997330434308156494329269545296533595238801562643327833158166606477777494963178930152192744781861044453753700084368546243465022015690087410226097935422265130881129151557173959897395921939544009742320300402690385284724704481599652714402513700974055055747523827365298771559911790626975601648154001886815242915620354696880973898063684085551524282374296597175825739946621224166423614311177687863339149628987364815920428887116274413526693695902144405581479876348564917057215806188691600094546155407024678975558878570807208979894480645084322176915882304103154683014438168260593286144746296316854011536084219832252140362081584896299072685271190300232682296902002617399985902993994420378648667689271994263095392501909809837699325486985226247695310557610841233463654803471005858988059825699743249372989430044349456599565005779217726354497901020376056911261323470531137860673400822725638758880097223381395064025156906285202843544222441848178422864949123165986049387834223981542493496321100431033881029844045973653058284962919446489229644052500932411586245961440691445493113484113743824763992613402284374052207071576878091845061709561021953713656014050580072573836434839775951119744776554238825432794968248676886846145315891854323941878028218695369014130892233104630911022595942164348915069830468760528780438152657131296716245526973879822126603880187763709375689406550523408137093734859708577639476374227526915257150309132274418480961768827588512905243767383215311686905737875784213315000924048291340990832865908863494921463794363624056877514793108146828894937242721483221213639173699590159583242888605385712741416371483117977929173012980008202714376989046602141432962921536407272068416812329091076921102035948951290319090492372667660720034771367726850739997982060810465498845694389758829193713623269531725343506426744995921767268584768124371044768249333611189726665564748491330454637180031485502985364333941116937936416746888423878077401656321054659901471283321453057967849915971484746079706892160753246676679574680404339804982884189750324399478385302169349525541143633478478137811672206874088356848741347522214927316017570888112530834376106292827153389043799711924421242981811547206081439875786645659326574203892273485916368709078711107080315423787409449143524026574782492264694910951539877581626234628934893171618180266568270115540297507075378260942820600049058271911592058230486466417168596067865628432628369265313467698344642965675874759521995415578537326133736604268552532558548722225002810388285467408249077354739411082236108972294572258877132689967115485625646153699854634576256996767488832475058481034916155441717108233663297951513533306570314795809350078337996463490987084311928313938710453441998353482349767952072564897886787385782827895050504288051643351846661361763424174236895605225789827754120099069193800146215010210177293202581911056395774722297509745677634283995891913756784162981562367422896358362898930099146466263641777761960980508764599232258940602524538295125138660504158406933750865994558321109480890513644940801860037827240091721470682304724000425324791541587741758505713943601770465663819710776972525901116513155631696677699159315479943700661807818924841528044078925210610310235219291772096272805250103654446832849700323256128463881864857903443301959058828199776784220986588784384856066516954767223822367843802011456615692491794624354045167922156640209335572259694986711157322285367471421298460602536946778507041870319152689413569077434228905848592577934472184750804093446271936204460467975118347425828958449785350627028537006893721394320879847724176192783561492987967890711152104828409631105430140560836011498018048753743509028806917956318600787673608162385442456342003241050289944793534091594444382088333716744064135647163533359129219030608134200839439413288814688984139851959106248820280079925266181076025299058879748992472359053478748707333714606741789515402831862897898746333850943369821211552315542772677110389361223119052593399035709059328116774538674539047743060573510046685228190499526048497285597412538260217326423223988100913593657460220001014652733248496603283158968548349867061329706365568473893726981887116713642026114582135015048103332814740314758649994272403860536032108360372299166153837864201920732183636351496314647823127993820598445901875128972025321005307387441696131375422464259809193213685288614961432389796325303768367474774054538465696732830476801563817037215522947480526099591401649735566079156087959455767801170541354717342038547649254597852738981270903007880483262779853842943969599003599103373480675861592043516546667657474033712246429667434651056237247814587361504866220108503847752224259326509869872965948863855411229741149294008815890714335592474208409798805590665424262095444373456878533217081630559968420217522724362392187201467731172702546726130895848750501723604851696278208517294197802569208366764164250426498481262589217378095417521420022065566067700579917957449754512772409848974194803240097339313600004599343818859617156381123171536524261503220599318857378747141117972488746761785405951083536986855153713592607405557547573830789422489707892324875975410485402450598533789217307030096913253802201579454235935780746264159534993791006385554483793993026028718454138333719606420085214219906983762394128849404910586770719411196556133405758951637553032707344215793816527802325720893938323928291371687005145464440889956559606298109924973495336215884290590303489095335565586434933400149167193380911883231955549445555926606174548565035061634110755902872422965829082909904396088713143116706470897194715708367914563185259735772206890539535571574670707627656505199180160675353017902782122006885104170555357901243962192853791604339970730581145495037100194327489669401719889004314232155562654658802984681195091272664475526264863461082837984927695783777048102734926122732364990341625518536887689378664679098606080734830724073732664387595514847850388470020781161848280815972644008157650263308666622860635075031611097315121175727301129661544065389921109034121541646827313177076586517330001337864324895092168927934973388201851706833701967019159081289115133845223555125337818138503759896857811221023636899829217436598377318596419456699687047578746884554871747283919846333414739192464394631183549592870540864786078949535849638812025013582744017007371666068249207350547315301369590207172670261971957226074783360293905714690647185939370072300631675291236993731754393194804610943090807315829182768466523189884796617213213812176573012519432619014449332148117258488240320325964730862822566514350664088521888726182290395248373520847331826656404929983557272049970311230592564681363391009034280149584306171098649104183148097933157215539868130850518972992578934280948058628908744871372528192703103240714742345274219043465317961183325769627542859923107145814648075921100768942406575987198342527960535627058073965278928074103482779170423735277693059269389555586854209060547584602478849357077474896166182746780052907116565012558991546630217266584750064479143780112261595366125644165797745138205857070850740977193762017278270685233400326286052564968960755095921905875685048498045882381519181072936692300990979776603410748467875120432833397534603999846885878619033384939836319214350118868331907486870217103179782266717665119451390329696835946179923056062927791551516897852234328920829657430799231312445875905158966983075911912033621006306636104602121357250667681670467171210615009457226581085192741106568538675732814584852438915018542390576366625030319877471480105908477258853225336773527678403595469773561349876173188680181484140479717065408975431785383505372493603992914968772490121157958771435474341650444388834261862879355736739410082408231415670743693419515015115728344353781963805548692732200113328985350031071267612299835202153103541031295635051886099820127722871445639425360657957203920626244496353641080996018568608661087211913430161642023182621004957279789750359840680012668909558546148193038201048549867161628937518831868399300998809649594706826247153899021148387209610934766131462660279804003449880045182873101494220894935417763681707637224265423861359558494168451240055312418964912223907917496480900652397533696816747875922555078178841801357304950711214698291330914035532118443379346314994423648078869690955459077406556253057440263764665535904089203575843048420883606187102784404454989025393499122544243865258953914449265017676747054185294690693598038939970787566107118075574867182288183383828234997921403607684408631417595388520787882033862054921114643217584818052861149827122627483595494693652985613449585896935667129001775243300525118572240992287877040185618977943880181275018373485372325873279304480778438683115709963342811483787706037261322699508150599373403874868345032025037295853587430451943096345952181549841718837791912254923400285453644838794770450145321490586280638818089613080778003425753114645989487129278972716290271856286037102582105516054153978572987705087706065154197503865328777147116378044734494119880218567962020247482307108351187369293242994138429654942603549310745611822646341822746602395793485088830477098404664778216838004898176318946433384342350215607249325951562960759338544580671119728660212987506142640999625906267911031845003939202614503296496660804013447844081349185470089163166872200701128585630874341836947586424981944795588588122216260092252179563568189337429800534882510001748028662189011042337355477169709130932609636118379167899129108333999630950802382182973869639405149780923310300188127036503193765429601814611104649804452592577926710445637760904983121013947873231291480085437900801353744989880418065195411176412130535409734729286201550487641681630843152663588123982367478256881376057746205176509215848767038231944667056683561481655893895793314094025602162873524580980426492543638151707044373038232299088610314513543668802922367931145130898243362609820881911273300364406188630501187789013243008708550105088226474854153503118933113803225610841031452713051102968562968597385884204794733247813738565964001197953611423338194215377469877291748066375710507959128320481784471361230857454480354041354754689697381872334426816265965780961799969681763122140656193767553582023557942506172987561066948546951628051342708437360579464926681724748511259500509027042354156597197303255439953020002131330259522264554951350163704602516140668701669223715573696565082774663593329549093854553907684747779977386246905787650651602195120491651132367667576339247419443139513040488776926897941933548094582565550250844961080323737232984169006138860079542757096776869808081534443800865054075174646385050491118873211636251498639903746804944449765619756486540941298900000860694471194672904768672489202088835689343391576529680704858749812871958180082520945929249122637284632507719471353465087969363668146048440235898886057916688931732553722787431359163474331274730593783170383788966719818561374956607798497656971584844515352200315357083855354401602930388536431719434854802787544647397654257232578302320806736968391253629666424369543002612434646833445489524497922740826093804797282725147614299116613856548855346303186235214110888280281508043890957246175135421357624617754669687808760702268323223884848864788133148049088117140147152665112922701591484056402398598136592013911860828581860361592587631770837307808333778729301475435394599831245729206270707045628548494629565216197892965908037080282764177238294546775339676590969724049332526302110882592205614858245467398159914172165463768996041209730755657516634881333215563872214193728937690586190772863423720716640781241793814773348511121595061591259130295684855373506913786577959652902883177094242062102541404054422098376300718289171250722134337726373998183922879493403570063596551778979242782931725270473884655928123429494946721271752063732931784403756268423052222695421279052807088789892898886041508995780932147017685651107975026513589735766839981806052266585291053883698632851637834719590649461106997715507385819546301033845492627559880076773078219017463630369576799543013149233789157797870625990968230607941300241144430112918463238733720152152101817198960874878038683849207163478983904086800814800724720336843218975505904810859713203452477024516554153022466213091477427477430100881601747806398656146210085384388279568576320792473799197094661744612914802045685060344766393665608420807966267495862292636652519141426467394592406820992940074124545845037087728470273210285206602980202543996630144787602082245714471269533192228470203502361769431389452044588328285508767569523243235301528794798433008477947102739717408951408586899497408535679237279573455348462134511474098295338155538726058202817523138917744740305033159917341848168566940516838264704141547871494798875073655073800922078258222073721452832728046562046586134894089695148496902210656214601892801717633603276371229340374835610986014674247605384620988863013973660281887043070801798373623982837614862859810306292492623140515989888150226664871541247321567945405502809219456057649627919501952825742836175797076690124367508585987807720019582561950507635183387508574590023957961692447811624297642995229875575137121818420859570673792508500201077436361865575950324615374516616238849547842992971991492815861576220725610529538925125963599647999455847504020163205875028363664484436519349018913457824465023168534787854001929190313661473725355125395314270264258368341440664485984929586940166273375587941418553013626631301771246118081311896533666037974958660451189107864895137964384761826178256501165715676402179617308023606481033831167762702172848916551747860813170994653404419777282550497758841399250973291937067451267552412292827402178654853603904420546364307234601356717061165651198104177465748370988199086433252811886757595274057543398880865692409304375119250890477056652589728969305775943755569361448486710847230846197070505229015843007372429690642602554549396019009789006035370178461599057999089539016382549247548539029833384663786356664842321484671600502967337735943747035646496853805943505089179491277760281058205212710717704885427583220710308905205631951890781542893308866758136559986146322022642639166220268623399312192250778507555835271964403006192645481136901714201549456868483815731825778272465011347293966817547165746673770649670978838099782886315402970423006868915615922685434190764164251408459424194940589792418647417012340019317888808220268915911536510357203927205279462453961831303926903145958431138562840553121965874924677123912044612208574036711105263336406983554900424197973048411852063176735922699249382860626428621636149353085053007329668447230670445133003225989021470194213513235145737034378670121845158907914097564360941186500368038335903658455769123159363622731243448111922939832120016969530618356182642715968124913042364617533047957000553679231479031343376567302669361781067126031056897350631734674854584034590589806849614691554458838911194273437471617506231372435398388735175684421537011007778297758252067053252724147755269958358573057870349352145385179396172457247623418617691564655710911567555229045661167519408052914057225978508428913034697761860530804819155918939864387265239131740858587187744153937449711538330119291789663282427155421631782524864799633189894619097007554184018510721993379792912254012149885920728250004276862335066972961345587508224136414597300155241207084822283824976482583322385971634168902259818674978474889307808557007093657109067073678540538810013235931905946497684188607636284795137791589190648824700583130758040113421878608591963764986703619120387072848540949334320535068022486664185139544048971307903267489394700682287391585355550244927649304753731681327216917704616451413531487119948135271908424659045514993341403681434339053829718801386243224711440133415814431063051780840709121682429683630149365315438273681412077071295358892488633402601104308595752275248695292493697505288145431390162552872175917894697053474198638046018472514080455466744620105930691317706910373890342267504811088246653960545061323888274951500999204268917105390534700572917497312900335819633622621821131081031556197450673369464925835481128132823698689414610202652050145294494600836675448741043442744090590129306248574603297299834086964281413325478761972306786294184580659770751487578065000501472770201818893040770299362192122656130912086003319223325913744078815154928856491048165482808405627918234531372837734507251208421420086132714265023970229008066131689963509110225709605193402338641947278858975141802864910748679909561663734259741378542969988752564322518400183557531097669562711274579699193664670516343995395180812780260776491265006109249690086187016985388551679770156715386457574038902052218578505554072342746764728876402068698653825118027125937465821491168232811740176733977740359171680629727926214063595854826960654473862533160464732215513454968546972484418705042126722970254341293177340360937924939259278392686321639735661411232263669423314259887948049367989064446214269720478825848652657901062244135453732917229382406884517910801309404760914817569440837211792572189055191455749971740877524084899283389119135225883995823355800902838743687816998066824355020562847878859504141639824422560113401635647525537326739918631054469673658394265787433356994446593207001847695454463904547179849166594054784916203243365972539324156506308370869092019619998850576410724760693395827813957408486908232942332869768809275389528475483640367561145527437001153698549931796099629733581092836536673442448822993859670547865322481405845976852167282727997658601657401147905775175981180161967292860922591057872022516102446330599437084253215920163980115337461515043395353284659747036989854188969611511449150156962846190683761543397673845873120248153143962082728410310108953200813894310715394278553187302391567195745996544707565356500922449011479555785360911360190666568584075006428222396864392568832679518374105319369600816399261108371182711777623624584333524785929368516875833735702146168437341211531913748919044035727198227860293347033700531878870847982112679041910978975210222901665746822981703301837691991230210948374627044860016278704337694751121737974309761950675292064574988600998865017246979549236130612969056807750776845066192418920554473210384915262734153688732790321538040075352510460614561976969889914798054705260094316270364368047867809349437505779497657014434574085221152396363453936457247376707207115923935875066075784067714906355718875295253892640361618841843012132205818149585918234197422834729408988800010661196098563974083812860231082921856048784424560591305493301305525705408843656159686795834321268104135542850793998947318075938153336860239402057956635811805529882979551232916701044603734437272781806281690774228525920339279896848085159826167563145351341412211011675778680064733870989886388522981100007751497046314731816251127278219756923311618420765659242114245813967626076005971043037727315140555256006720411703453901391264765546645814583262052240312509552051340721308015085530852655076053447503220589057441030055359485723373524244608219953978571727178974619190613760379591714945880953482259147185770436871632622378496080834506759870744837054361299917826611656956418496024911050965671627005159826441620449960329466016436883250008495358659625607216615575954775372032651256934618717223999533976889102336089791457913818270944559221914920593210296856770158284749110150550869996560320222080442410466688827962813757961087963121276256153169146695901428866887839882672641357074644681793341162352926286948095052505975703403450767134399419586156726562700602205245652437926386104807851961184758646664938463592382229921522961638471319562027661199243340550886235202331898265886339954619310728080717049726225845527964133978303283663461019886142962758538305190389614696207442959599944320955350257970074294211612560853810968734714281550741481671984566532655856611851215450927461654678975563936988448715630770085142810770958045739964059338558062159595721992734144348110591314822382908150039140304371367816721426813560655225291045917321074040874615414743652354463173537117888424961060693875328707609428711791424848482807481742026843667523556432527933167585500618353675221863342952146981365701660590073742807892261753399138710149080626034090706853968384770457942469411996920357086918908361810851353265922879669172310336651615391378530590563944657143824901524822934447568807643373360799571616911208417902397572031964236377392756446535568870362271015439290186236867757447448767626798381397864751554773239685195183858946049117759527822896254163481956139966419216182546113955089831843119811106913329278326728075614238057729008981420663812284911318473285731722860994257662910604732573841059529086803007044240380729914055201386698243248343222756247229984646022834900333714529376153323498470423581483709184975361533823333617772404451965242789775958115840560911419907006534395566765919251815753185599182126117236908554079364025829161072582031019842645169787000641459256064797777939866409304306742678784098911257348065887199661629857711502663578824390371150266057364049044996328028016094584304034119585906807028268959925681725289424691833671324400947849378731334049802731986223993072644149638401546364629214733667582724259882729133483237848242617205636149328163959131422486935844374537173324211203526396819032301700213375803121643813799087837378062580632450554594609998807694001713458143093896616348483245028898793494959265840116741509363096627459289745532659754283301604668238979597060168424158483203094044884288247700766781582245248870123274158941296248181101952790249891418081531859600579143799584899924991278865167070141831191407094000400532746166897341843296220225319063113592491675617741781158886195199316589592032865189774809962824841892402522554109514677212436625971341869513280559856501815389757200691734734123918686409313111609514376150612657034396336969792935619616576833106131115241204517144192260120193592459601228833030565108678468085286986192468164270895985306636898816180392372438688194245111445164888137928584965744966314309370240427118435410157661605161520801900959522470815909882821497819080696232212814265578137550843256436525823653017272356923347350192410137375207607212326922038670848744245880177072102146302848544858026881943915827465645248875113602137629626044775638286090430702594742261808104973743692571910517991269716623346567649354167903487472773283154029892988863826572351643792924450589850522839134317278145553083322616438079519491114509430289554855631708781340411754868580465138704116033650594843613229248872357992816077543891166400936656694716046429209451577674556696929049724803020586100088747239065474154276132228534133549844242686156496152753209227502276955755801973777429987583024416333346055632042306728122009293598137227747652595708492387135468099649228636065286970500011946988277862882159434919874293619882041903301986721228647561147660603537472770671742104836373658177233295650265185104411511084092603170998622625437189688166035257639958335599641637776713333596799533542983311100299893395411665360746651304741764494173584644748006425092874287652437265277139074391451922139515779912304456932165910822904228873793156563536666489548386769077487221287595568815886237966333573473448734845902597740256137443839397013735927968905077545176804501977127763657655051784180023025146624350773489037060835701884424670270209455873075841704839162853176701496740886459820247695254661639054585892794929405567277761639447637787482405497245761764553815712312555624935554717150192077745208714929431363447410377968910550906910872773254684846285814875923985684040617781418006840157705474303556145032551017049448692365087510381893050396845198341537137916053347593358945867085654507701128489491543630113037219429035360184374921003653278548412137830550627789701910983078646573267995677524471635882574461799218623101978833749585000494432282524088888102427793410952416811784404255375912244637496839987528996074068224632059129394659633258256615003921671557300218318135096184134879574116410865485854839728546557076433007210886542086879190330836961968358220250846759105174561340445000896884934527622387460899010527096168773855027945116841795629277231276098059011052254614014956211903402180053900225552102139433926526435305769072304895811274421731877285740743176461374377347745728142316265716417205615609850488516635459742352485463637526896043008899685757891026735252633758951196271167497030957752313379301937150571152274702257287994375292232179296733480688345596053609086282089535686572147452351898334956103234684882065181033759183289689049101935534851583342454253897229644641155802433636564219819865233282657638756999683596172116450856131082866988959166677958919361491117490696146353929294899043068764332891380528587900305210526546112509883393757149523098901709876817182989048611776785667805559541619823280065840705549441498397108399052211002038531392955498601924099435329345029168059257344677019851266085873720499193869314848380816130523624224703576920288294529880267740356816809811313525676267644699544124928315636748382005795687922157569671592743882552246557118382881006992444327076920216409974043794765702773371710057664759279768496185961538841006279493908208689981164204710077587332586552930796856584026891943407404687068605863996895533931506609966183101679000988864984251634389406181516656271443069855238290978576358261879342093349280096276561974289893683912036903836280977467875032134691536632711484987145172775049335586189140861966978338945472780479134680141666384070339705070955130419440180014797957535411146248747069009479763737558886546553807252326749791534411520404608384534790274386208174932950385218836972518484312587628164141566316088146129298522128248429044800754414494022712418409971038615408844539712942596079794992099986461435317432026946621420486512381612250379208736298503205009766281062392653684474195086716835989077021158618772324112724447809382315992771452913638628103023932802220554295374482248219552187823188514668323170159854869992047452470259517090006343710056508982993156945405004333458808103206825317109259506840493896472967360422919427264299409151891908501178250236774479458693234973818202227833397334103630509823567535911975150395531326228491387102144828353180396753074081369874589851099381724677427336532034123581247886354819754647467466215150008909622047797580120412060690988636755630339109954831878783166196179255544806429652927254888875501603663235759010519913135090038561714067523167532823579102173749564883057039938999872789545349947307212935537813249666766008488351966056366220522553953090942690295537328269935557494878238288877644959435610807620765947081261413173289826410873068639894153902362754921393760173664875727172515144251391736222085227615025214078727579510993421484703334061640838613683047720092740510661286722259275420519553023957936292286337425032536729000548323981773126327494087150290478440205418575555331746881220246334073627626894262516900463075763594432479295397387347619880614752098692164773946006301751413106532019301687015684112279376790179982115717328497684171806563618677069877404137871367958493605561521844952202174229532767980566013438629896327446359518652593079260879100256662780909356235206085472783744129784022815848861053047876092223406473575828304075808909949633897360126882024865344520078890931397679575734996254239425132371316554157349386407980726026300961671469733769145771205523944292414278892545149401930525179524258992527077605529748734148058166111158093074826723872966770151771462020006929487037551719921896980736881178700518928600647556440786889325058124777533073972747106283327721608564972126574251182499711910879655992032764316231730088394496533854855048247010836834093620001299399451340123784408707201807993339805365607170288889520892985379716653752429705869992783144433741866381001263787135523899208185457531174444558132342207217099041225913682751565344741187316862542541864439562165159158392818802659465098833146317522090795181028729575275496657018647044512352089146511171628097707618886266707724375335501759038245108674724988085247917779764937670640390228179797940862409446987232175767469107691183205830138001967149504072710134158539530407361317815766796192416432045722244657252755622229461585739166858258759865190236888477491441711870237118772892118993243148994732795962027696747702493039125384301459400922648924287099872966132033016237270115483875724170437012733521334210977627340286584585913749677941897306293614485241445683458879140786764222970090046380444811666921840858046811037727737606451341650522301895208717500585542509289157251087313546900826411887640996371582912607192024710459555778953183947716881161469801225440809458409285459109539324302442364024918995160214410228215715153385944662550320449040358226122697033377831064371157454128051953548760886182250706692202828366006217753360330767635570772259431327368189226601201541041405224971870252724248550380296493867653979422578425644499112420160644986136777945148270620288195322744149959112310066167055102902295006444038698476392710592251183362334787351086737219339221325118460607016145244276964594601477184795446841121847867759555518638858969527013498887727489821704642654849271729818103162212338862406103006359198077346294587771394920689358024615726894694803272182472429531680744355276813461570967005056384787032130985200568421375119353630685230465915630497500571192509698434767148356110699454429917819206970793833921794923195877632702565203371797764584088832956797051341793268304937872857325788993485535465737973000903184466093160356503184420074666633155891217696951720690096189703646398578415017296489405173321764661786721531408898015296970805945104045942290152058090387345130137723483987547422264096099359413431325275450677440279750788318555938647869803960496467405364672903916302859882150306541261204518614723136853154435173820230915615307013393488951295492517479255478396943513508330757995277056658307372925596669293828044272028723108929696499991274784033242771482359173923805193623364974507906014687770573112097680350041811808312970474124378331649505471845270502246091429179940262869027672791727239831750007727927282660407989927961190675472323879847632876445273221043099480746721016496234140586318505164906373458647855015177820297868288090438744740537506362903464029354646969432373762771384331225457090259300324995202801995212748746230606984280261785736310498647920138623696168121409230165585410026254649572236947912099411549482494966313728564914701052254274689526252963807900032616205123787897336876209256384777554433573945701627391470146836764897415017807203760329428077809998788609518676558671303113726767498081547655447058049820647070738921721466516759699809109148024840023524735391038333325498834477501959753398332437120174052274188090102905322160570783529619959094188579543717732865782861193969517751867998949454350662984288261050334527498350058962278504373834906547813520412547864501424239256126346823771652303374886027193857686679988113946171457045153309417531682795888622324005250977337655137618547608327102644326789070423659791844323563521384302726377051215527243445939933407970403710998426253126246067723150885063692743644967404100271745891649041945444178710263942708724760103144080376630509760031423203495696782341711327424164327994202545743778735772473943657738839662625100488292858290848180327541685388376773703315172815750528175767588185475480873231168450702369997419778451756019740896734938142381117142070846141173240176599933182723248142572642741538139351574479704684512349186890979345492260355308113831508507364167127858693552190122401132321049480796721785479991033838714921799595012043185563182996723002171701413172218317413955710811876181066215138096577781555174784016994149250854071119933815033460259867825600647922748002306837164234075168765604235479078844880083070778986117531680729076137206811346634870040740254257505349230285963063726718853848605927164469045121971480728369267864460813450374425442282634609322523551806117879399842679627288186569115284428537850653986520356904843055599744214518581659771741186777325885973864983225658063901114256323397850209618941775536469533129404443483803606214286790922859911973455629082147047855619574371817901061788572612577032187008220998131796856198203436812731316461794297268415950802636927580523534477198138598883641731942388782267697941915779768625936337416467514328573015939256664357264021203643227524198037501021083150385215567681017940805996136295782974817859394769075520733400116864103399377677399172020587713508231878961766327547689247067295715080147422337396464375179521615555101565451502979770610768989466663523114693226222907463982517992228115603859213425054365697450792111650717753681113134393308798124823684412176767803285677782163990152714283734290584180513032858672617460814929319096338555551288920783553953106366074340486406956627080750389385422347382339445558366061969364955571635510802769039577069559950866024187918906751137268793853559253257330985865995048494487965505649448204359405650940177587592821204501376402828750004913793954313941762981112172363008643399740207675061158619755100861986481495148468754899867788983009788831975706893251703942629496421690734188526306051237234280568470573172163845952738178674404150311912082090495193880144871858466657732149123341851526007338879979924159610470188410817911541993347599059687660525079029255691890744327935102593689655917021890170562064039815293345364169603228015468295398730686518511497970840517957772656638885362850392707939076305326264463916572369855490307236866793097025676300473372135352398352852056168044675020851748968359580679739236810769583208918158127524469298576083727642202119835577207477879274623682427443714248438696070000394423250282706885006725588943381443436771174362267431662830649516216274872801316162264441005399004792338361001822749597446755338781495867571265582414664276963606581273403218782793616980446943621920616646846359735488730399299245807198742139114237259195796614661755752309229463410743284307475645695388281711378445759882521505590711751691111943048338465699671075274553319866650702571377885211575916612017112930669427733735388325980152781637046564830569521874497733381269970172759472132232507731533247102894050728346036882099419855051706209045371595278704084327442757258711525850048840066443300650180361104172767255876338025805796737321644276853267476073847533646902161108403600591146349849523026385665866236700958843414911404682892314413099119782108528760533161111737959442746522548016011014234866095572631770195090533065309305919585951414371936194486682598306194619836786733876972943945554139961927307853754997121343415926065841184763398387247090873128372888164562933276628976354685560644607743195397634558724491566620393121741437374137906308307606359536972400334796310067665027783071875297514783614050840614954048492632201230186731842901956972237618358078755050033407654033520371831744389365854665180442426736602802907903576641747734552729369499757193337307410745892243160296991206691233323017488851363454928595260050597997161853899185272578729443515278792797535000758016714481497397281685758641817982400990672705613931145999909452872101026366136000334758298598550958747530857261011971011947427757442066301182552465165418402751945292768489528633011886756283859944162948394195930655168861550439038745606653692724107916504882109103659841663611094849820430534427607866597330568910490105901575270137044998395549718630372303918900454200562559298306993243704981549912310752149230373611575751919327670830693698786406454397004040678432758017754640587528271583276117053700803982436449676987916485638569654563242214079159570732438339427541094671163062947363491653568424039815294597979223540780305506898033874787953369898271048596552290552416075455870333132630165332439939443321825419019247395354170989023311216511986180667731615711828903396733637229224144494580752304253637304399887979495117045637231001276105038743010886101906616923827868983620914825803789707096293331653973291448601793831785677921120224199034431403189379823066083605283038794995964114157706628474434130369946611573987788435588599065508859918347408045696058935672989236028058641410873201090554459100717315349025499763326136663024463480865755623338827525447742467648702663252105028799525402369109755864009431105194810941639074557485884135371169585210253933819569776921960433901932328221414751123619121801771596930004198247512660662056268430945447803773591493849720240666687318202877382829961805882559303933992325809692532548306224257060466475769240399059581662723562199353179396516970768297174660840252307566987394941717105676912418210058002286988659801353917231362693345472954405564911032871636873763524223386604122397548141789272880365874602613144316554130702952161851121716472386353912812031131465462552761115305479398898074592729802148163681170765593448769152202959516193245589631027953539158735283466719984545818939371337777170573348579347874080814010283991819276984220384892527415561460777733735049164593016917296597118923103211647114530715010999464542748259706592675177403248158375869142791130695546662143270129396162876853874011451280810771139738654561406140671070584574269029925557623874461108229854058081289423522864668032923551477054515514685376561882026911288122681482617086925720284206209106116524777291015449488260286355892422436476470182015603083845132096711556514517591656990572462146702502674406459231498431666907543570996999138866044892123315283611048636546580582702422469925359694867186327858551325113236267330516830997977337632190165638587772272981357092319966765720897644416297146384538625805705036176361983794319246773163718825182231188125115729045977378915232937385517754689162376757218121609201937410183664884783422854157569129569021785565374713718874214178845543396706532323918822812578836488287800417463341524717700488567345048826922535669656349706460660848337491368664405969486914046205923255314461651284196202177879297500224275576287675731723790645893251568555889079814714319885839953373857946796143610276545583601344457382468522517465025316182326113944872912734301650271068074467359351489162305314540876280285818935369956608659560112433612681430388154253172449830925847851082052234215457442692801094455687699647893615431158643137128806168055038401434249876781979290741529608414533807157091114946979300826000311421106348718844151396138739069608926323911526029597300109641834717115325417739226758265973091829327156148939964279802046814334852925296047601855890563621457305328917790293376721626040107690496055934657059278245776131650842507094546897417239791024635120721051052211777523036311620370438053766430061913199079701414260050623530408140267717692785420772378022311701707526776921244198976909217320320783098014043208089991763569883715814077139102931665607785834439556440094948473160527838709266835494215155796764445668917155194125477613183057731048937407771408279084565489601511791502532406246675348796141667370455674805743937500362196219228881904353785329435612913756679786858550961910203842425872705110682541944222126091539084129258687553891443674818494378206807105168466639411030356447370106464616468864331782435200760159043052132125330504268848733812982177016600531244301848316485700197686303089017747628077497745068410520774133600154142552585792703335937617801992531641675843301683139708718647493525660653067833567204225413337598140902483428689133574034190676846863135984855540707416593262037448332568490541262875238150025496476691540026709503238536532769808931444521743286624637527885052807333966390393816022519556665257887868351580267182266790451373278869902290190884452671095732072095268536611789612852989441913340675596512712116541346021122247459072517288912900027563412628958511897252158513465884917244821247661563480731456881431817620642394883339656525369274138442527316201841210854377602344301084763708709822433385392094600912865560174955815511720857651542240231159890547280920694016950584286446569677730642673832559975189132693564162644651749236694046727381502068338138583415311212333496762901102968916741855688483039506563587865037848778683813579256806527327075572787737380334200843589720600716557933561050488185287797762370374584205471133059732060706524599123986640109361608157974804358241587893451272128130534249433181222630169862064231193109423443572728483370077179184815519012439880362521596883705433308353575704391532525087384701585329104341469548280316672978865853693321818442984431425133455157181218138968630402503982198184598381103067457493079890599251882193282909850187122605358673286429128322599455719474688087466701045586920226445600890240288937166717019640998048236917503388159415205751532900122270943836132307270226704009207170814218048672374709198152323894370787084139858728432771575232426250987660793329434884350271495404903618240894920721095326246890764118909462855119277680415152819994183184701061190388636631175020485592248004386987156417791218722375650051372142763487919477267932384153040942198514303522472557526779147109991546679083426416584303933902075284661203944842038951988286089980403224775397343953142710160698322556369959258728423598875512353668895565149248696780882359855948348252642030824820420905521685231233496763438542378980382012343221202684803482586732455294801481176693033095380120016955637248684027403536607335849288997561243263127518454106746729117716770982509196945800741757229958321300698580426329404779500305403504230957255305312433094503985280370802225696716450314121622175048013101636300889902294083416321373874847412955172708250868001029815881534827591067046295540681497838069569042441362082800485193064219423630672343900489931706074873999462443585222403539657903112519438526275106353061788365308798604087369420439074620355575341271192253855531278584265338617571406165262823551147916705601256379654138804569538096431044250535244490844986068079880102764710361045460527347059763137979256497620585743635731189873305129297326553130612821584356830995942466178788995775912929778633041081336731984431556991566319707384235832976879660401703143504757999050303945637475387653506975945590348285403240836663940381685032221128261966643284977286411060301346525311212345947999012984481444118347751074925663634712001836637891319508793236283660818174954950938584713603922360139786093683768906059088767959594439956058810533497979428885842652226950419726038955859673799928345726052692481184119467622482686891150836978605122252623866645390456915977592701844650535950574945628580078878265515701033042065396777436151016387534168037826416732952866583544795614644861108991173168926193103427457261749068577524533123403647236308296251767910769759599278265615641779156319340624231472810774472635396657255322365184609072307677136598683200653618600924467976230601085303412457697822953638348680183320604700445120107693925378857856443937957993032354820044282113305377741121677194552436317510480014396946626717015073767426844274640258646295366629681195079350013604956255636283866542320867152569553891743561046147171215520661239143914031825517833901498803122688523652754356840124530888656915446562626700669672665611315101450955380160436630789552792826905588488241711783642209399005964208482532493677348562611977968270870943242450797649701472048682781113397939275327008860567032469296157841107404214331109181915350882036367158383696742608211445608662486231264077063390808713000447145738434895761273336502233039867405428357505140298813975003116683741227089106652837397524844270318941158542871558119824532874881266296143823276415259322214040223358241897928406993005526916421361515280682723237594764731750792148985669401410070559315242358107112928184074596033490332341150912325900604142838832120281908919579911577393723137679058418492079686063672489688270318869671274539204190717448585823175529847119573849350549364598417451956138179707011005808521589702376928917047162708653666986534957631177381419468577613117524010720858762410677652159104500855625611097353037312489511593077311833984582845868859052754883172002719825238319734804159126178790299821395010699608314634783788451644794049315328552495315055432106938328846201877043064908703554145886086005709351732981592391446243255506483367553141498454523649981941911593812522711723480193466305740879928065471747630127722700965775086860704672685882521519589732377060597111566965928117649000393694670482859057308978281975227451443541867863285000529904536739507266302829291975686546566891022493316298434540297144341596897885152769303923329065582163274774690576914636885806233819227192882981537200373891644709162086614941922926053229747652542970935532114289799844291123219147925600010591550764103496958548940472546496999505034578615721818206143228432667806465158200128832790306032788785596537032986718021227938553634395318669796654302999885033653132177889416295307912852515919010642957758604691401511442567376329879085330386844448033445146889294384729708747125903106047827634715010405119748645652397617786841902561368787221497189066219157205605135376363566929325374246659835194209938433340902857442273154928232829542808754357029049904677455279552385883924231375105088439377550374898613679393459164710284555484766041095799369934855804073449420892761709280435130108715361385458134569961252968200793693593180298747720947547567369318939810131197787167718631790075279207176350341701119528945387791626364700568874901674259737996680995219359726104535602833020704172244060583516403827321332585179419468262990035487922575075444115552575600357026826654893255173307465744057462462171031361305303141106752459664323778399051663438333834126328881921549409356288891057179239214622014667313648947728537959378226683657922850847361494378846719456869068029816023987098985574370805725534419826445496432819988167912867544745123477905500854199554524328919131761344747928645007909540008476705281905001390684031326490031986577854913426943077688996165016972828574731971043141066836972823254599885362941218473459075983754480443270381378437906933652262884353492678099895411932089875641837220719438791026818547796325511437874858481057235943697360738028920362228938486419502183837001057815215417034553047950803797697604235158619874162072834638160678177286624464231753879824526436531423139963156524853552647025710064256541972042383953368331148327770594883687961553571533983754804045176578722249225763131932190546952097436389397140658672486754935289345630832419766395964678918981007408087567226530822644797078270586741223712579221952647934390575768925027744220223674571240306640200608368588675873715580850600378518133788652342024442556814835620716190286276441298102196662780250155342999447689229931052646027558471601148530630690099599175479441272650183611710465306208328559717430940617757173535318973097379180222142151590909544915897702079804402082603394727816509293357150949564125082897526815808634920888117636872049922238759035055133099054143231068785845506118463115361600810420986560250643706684736589490919370304111808009280685356875518785690199744581748488997925223814750798771257696231374721723447693165022007138495190343071058812434394160995226144713295300605085798589619305445912350944971383638173796004495361685224072190992117240019535899336330985605312376788926170675385680455906056146155332461702489360462466528187903933820387198085934126446242180166449680418823696151177157776952741470430816996522220733260123678470807164549435879382105056630631572491992863704469364381392329588667952615732030656228933568470237184852063992658680933224696268835822089110415228770480342945222920146863624820139716878254230074578269582137968124689694626720032552855067404681150559756898524644982557930421015072501929789255348839554308166385662107636398035943023181851992800069324628752648058086852597295089734532758295978192041393913946841976150858492228995325276958158424804313421181060802067142896329196919363318361458404167510188423861014712158556893595870538186595557451088380199331233264370818591518446733733266385811732424272272863734759526786901864945744952161688309427871522603527707330204363991398354584599329937979558658541975099022519635506308394973730395552963390401822053881262375459524420206743941812194885524018094425665373137768572297221440841843790237569735733899211976208874434702967048859753253187505260851517339333032922916445341658894236170679440196733601612824002779263750162257013644198896624018660418188826648377569237522250357069409310790123044259553080572706200690356145947208399944477231480671992517750397979724769450486059679951112335252658872558975540993896344453389363112985780863461522131132850399894043178967236139829904038573325324147924487544935766702676237665638054565890750823317535772511287321024111924494367371531976247544015654929949037101313287845899867051599786676975132606830264159031671416722850974510539356731173268332754949550420878943062519422660460178143222608386840747949194410275415570098868718929055356292145712688469462346505188804110195246520134476978466616576537777990380515922908332444838881236388777243089836440755914654114716064242906087605222501587429129747622763696045335892217050781989354354582845776550794534326431170878712074120647203032817497153206788850874166154920238733394416025356046659572332777871091234728128667283773006453930979284392038072937622550490905595937648214128104079379052096250200500117142930726739603376593155056896392757943567212299799947096588231415492600568028757986503761606892148037497300615692930100096545506211856206103759892468832596312911787492070711734615004081857440219396452995217855737491398528209190885252580305391038905456645180241819815263014429518401542537960964910448088243151334931051738455171222689375706213532766973458487794085867300905043143352794832875379600176755707584778759498407043542362182241166714329915316351420790399818844539108904142466308091481245331509414556485008708939114877635472603279009029122817710485229404217141561431482467743734771943857473650648567734899432128262710907375744784990735452457144234989820126108656520043405178708443436344154347294453470412182959983370635201586018748658372220150413549996025440170294105874614698755838318155865020903187873872659154065660249011922123185045005481815042310570806294713841219638185432424475224539189657515428277863494707749336825534121724404539325742633921344411035426287814846279221041867566905076228684374796013493375772263329935044399132901886731740573362673010750200848557940536529130911210029716392756965307623466410077544980103059632798932616636360111937013813220914035676903344697371308494766123715448845185086934292844581295539734843239337564498767491102033049618755702452054935433455183503426077879630340087891045915293210071024513550719117168175181858689589449560501891853147622524148192227704839896426569369847471418551747165100392579786132675138210964217597376134090858186941636978389253148643092511206089847561297924931541304262078880012530880883389996684802715809322141872044725815883280848288152493120050197024558022486402774063934327965150116533413476258161224588239785968729845312423355357728200851332024560199531228945571436032227879195391592557752399875363398029187801684284585059557486638929067282388124013708296708819451254715022375560711113900138448490477661445141681233756480493712132737923015791417579085000642230018442241677941269224060688520772107033517570274576382242481105377094523949146690181374982138740100035965246421810879080933049751023034320691069992603479403977345204305319400747931422370494060655815235130305279735685912345412133419593947899913812976724246437754792501472811953337557408711265882038287168597140460287124499249274804063006733822426347829793334922477598796984843303765193619456126878698903373008352949713657810713060678386302953101078352082973811476528153261296240080597558476890972247849370693949245378411380985596293264684429932355259449430038410450073123893760658955208889801290438999423999429238266005726456541316258968756621518348294060907386378213207411000923352942461527435883493506920283834755302334927916329237160685488201526555261230620608837100289948270991841558930052828935429498879705863994453136575762181058622997643904982311414845711449825059171503134542828729014499526791824314500004346342818682099077125836760688245930515240387008717617180322448138951325406863549040423979545712433763496666888706307108772350745399981353944670753857701170656158955459907723350348097056558333056904656498606263401577654366644951589112278460770429620973865759221689094163358955916738597213182946778489315874430733495276782326924723379215872738136538453191502887785393774003124401698155618925525979874700061456619858662505404933007414841283241313226195910665173219769087086033241245923439116641940798593110147749734712927064430898491100005317900092583326091473491758958511348692308591242772753882885516427782752922220925904399323514067784961890908461067734828278054684308221567397552576393971440185891443171986781625839113711206296445165807503687312521378293887676172137585223004417229203638299184010957570745872953958083471262380354621257007004368958552255501436155734136718351332988044953053836832105594191888411616538665991470187879718890711333709426748361498212804088639668567273422274650569935197123435042538370999094488040726605211824588379650927991139744792338618762972679513516662094500415990663397791506565617246764877319294198956451670380018104645433585817680984843493210460260055161830316411674333972391192431437533705868166301557563700186527629483159957160274408898827165091148533069955486921405041295204224236005098512703460164374701885272628305016654390868974746946620644457586729068958619724718170588882315281349951844173691686670940891429529032417895875506954135584202057970697788416067007639129783897006322749917472633552156083248699638115402711371804137241846236255382892354381819879684875984156674792809614771321822829982322093657397591643505049396790323418511563899740980552464855195152168277160377707077022425224439379009223987571448742272454351441502535672606987803001397469388428431421979808972598601395834427735016792209535127674725783869583718756511880834266717167118505215489610264979648169116993782732382490717085110579775753180065411817350964381442096914576289766423160154702591587605264436069341700826568891829956274705699372029005180240252761494215616573587733351028470794449627670486220926947415834341988985254240875611602066425712350991919852340523006408656400808713726690350592337745169329648210475737867214074410375093454470197418236606887351778284759662050381696117000974787104648192828991919719431702729613883725924795948876974204057694902430654410736256520546329848585861002830501642916385042194495581025079185116989196642682083242050475209375803613328214081069005742144276401712993231887526739942051829947444555445240643698285930747834701814470150672002408435246847604973509335304385450122110625471813134108030630839143901795468325228334168995211055996262545002423689581010006642245186352795415401943236626037951255463308661115336281374895456147336081275607597828617641234583191658448841788577309432169716265124157745224602630183271898718904233288213318759597479718700746745817634639907782204678178694196765782429074465505005705676315703414502692539494928729801501246145520356028407411736540006289977910289493320566828604111396415098823067364900789611447356846621320004592169020914946361430690182550151175897985275653748469008513343554717855976880065385114696946307169346545629190334850012813170968840993276125582191719733645899868373899299670314384105392852105706233198696499684455365181853002518086915844066943072918475992992750505369747120960991698485585161836860594560563045964858289582549235418784892703155312064584104383907063000551677487743653384344576393049193454687267951152926577361303189623456011937134061736124977050374780052469848954315637744452334512102625484355155724382972019604219622060996721861034078892013236845049909964856212807899340772547166644305840631102015872099520306858698656104645880359618992679426707469856905412692689792582629501938418317832619467110394217705513171318068259564185777445304595793812695393290101036055221431448688717834308956014021839717804804167275948344507656847974331699274164474266940022522450393034095898102720879927402069053876491983499803817706625629591728616413380045451149358758055007342396139220142519074360252346187973486592980516256402175350457399721934689583623596530417322212693690192975455040988898531254541317175976272802935828258840198369833173141274528478022453856379150716217776964889798076565189631274896952020626371218367790204013608690873222842089485656942869527041325087036307084424471502025853776647496577571353224420607835302592031703954030439118748122050228702919329431803328301545570583380728189854093007699652108244955822476972064108943635642566980502542151495957485935931808595261736126547886767728972702315625875111825833774667769213606497527035920745732366553946643210782693545393324079955657123383609522522073221704011393213868890016825331855902447128574688363398133039072871079821297067822035002185419332685286677107362577159458311751574257173854701253354693511043896697433002138427672900217953726734833307696675515678968178938679013111555376279415148002808784511313474722252761014108805343394726704649588009777579056739054922939901005595834624037628929420513034829274865227361348605266138767691660125565866126209510093932157050796957937909962137299880008394411474462175355944131168016869329269091076300744366016369585267266686945283013129804361575255098352997232984641939337241560961030980702601227142727462108323816470746534071099607581452337307047438615378215426191213496358566704905363459996299304805976280176305502082324644269257956711358006316600725864046109237609151565164356306864339637285204038771869022644873955721860212714279392846995142681030350146546145727259705904725307445167980165866062440175300329114787027203568718587435178136195503792031333426866810878179494039303357551226892156626438198712695106468656649927581011158840376895506258556541848697611892508727551877258493195132636672339679611902788618847880746321360615379743157844480870457608308212260398136483395971991982334875320871515696721111351549581554196334347606163245750370786010145155047668466262205220211679089092636768043585835722307835875017958254886551218760275397672994223925342942229680737250073759632131931076958885923255643157180415673383792571452286156964864522299148743119731708569528067564317678648284992453684534854515465093559017490267489528234368465411743951594749911569482575570514733686566107088935942387341563555700543735182676006349884893955231749760897452663150190500342682337777435485821559452362324645504402206717129105766549922412049903494190219401246517050897731549329030815156060695137357596887463004232467644054586391572083418345137889506623082237478481513037546028081302235916065657489619814439330535884133373119691245712921606817864066478757061507632255773299671875287933188495119335482526146808929614248530569408500752272502895036096831065317546206136193355314738372897861005313066285127518164391525666357741512909001293593273811585662589595771108951691214546583814027424415309690131101020659287100465501375491436045231780291481605462083078740931204780698993568049640200987534581877795261986828585108020572746423614380695887889409173964524039914853186601945043725255975816128726677820057166484021838585980415787571702215731720771160304692242887230518358115478592183820607590084385005359395527136337999756539827757537894390090462452142687364959854297322025381494455655758139151462262555876317317202243887505211689259172406235907454486880042948176491861082759018429197501782282118019103330867823208200597832457633846509506392275261350400464762519335080961068008050693591630041232441434675215049654170681869967062619121393507636005002634388879163838690023041858079662343542482144054595145592193824704080014098291965487142494524550747543007046751725113044225223414128460527164159548835738242693448976543445422119034482230566596242792519568242470687935151131921845039148486267391608701530488240693935902482002423052326926382736102572656880854167780192351786316219850044440301218659207083251395334458602968159401473995050349963331693428404307183653345948000226315735264326159816956064616235400111693368966085018336544163221236641173719101078429923129276026147309867374312998743711726730034980428321330881887326068585348910878049952154186236005188486901784432755182868415039278862171257456871057480821583428967342808890151836760194191466201729661868946294604824224228558497901385928066446705527292397962687544789364406049778529963285692988021117470603347867528708480480616392765133416178363434811829944033666665085999474818094863102160918536481672564585243405211143641929054192466882957933445996614008258851211605116933809950622627092878172461494157516515456706073126485488571339591853640479475266656526084985645246172866788239082710931857426644827728682382839884707085066330713299545901212053355290501972004216142964713363196394281377781633958391464082613898168385757544704943600584631604527651954143473342826004084813871788841105227830287429812790012973210974934249436408484147992462087820022283202560215118337008911652356189589985727376639594001941126347481686925577253907271053877528986622694976071497753665532930366813804830112810364249457571769145930279834261390943565397768972496835778662678893179374085996008033163913827253872046380496950136408555848112131891005350392871229503034084822393004772503079862962456961637845079267244564225156067316733783449323923768022841562499295875129033734832336768772832606809701378165214695286785474680375595660434160553216119822748898395364195425299824972828081473818020603252824389558618570798495869796600541175388146644952098393389359363208992472353323982594002382207288182801378697030525405928136037998623241926076018274312714398290575132564618199699777830894221578732406042448309486714247254868400148456168862376290595986108623773502272217868019915698906517215241260178563259129481590238012811236019989589756788772121152338727822421186729435645208547598150017423516785050159413314996246503584130268492492139319600311978142861108146548623429835216973777632364024716217824309045418272684906707022473179772360067514150240898782686361959003743012163419669215486141220380051331396759089561009646631823309009494054590600645378008248111418575378842313310938597928990766789402752721657432935165606730068365533767812247202211498725397096519654974487402184233990259422363803920823383670871729368437656599315523056037123303899340289630324865004977031288727853646335452187731149995410516289057454777969994182893228667088849642216660012508469537293862446737871062879105056219253510460792557408663563812445801662813070944507767095592186145691645017443633719493463925740779489159480314237639833379634555962995866745490919864757880650535779051340083496492480474779923122704833603199453421484477181136234334509153931748318122933224744365799586826052902481603005881575580698284747093017864271982058561920342028624818599414349470175938288887525214660634449091900176712091812892750991585688566456062479027480979177998462866371873155070018063778861148390199890892863232879863943118249652846458217970266512738099494843064348782170080657555441747745659763136722733102326964295597348351222901343362608821456248498345037017542205638430159274853403480478580303440288382501642146644720418191631628813503261354672811992371283933712004641297888654773496836510917728913392525068091430571249929939012901820167086717533387933403568000420655368174692218317622347684184735947832068142289635093875692413462351160291987596453719986114604250438294883799455478422617562893657464021706840071691191028704345588950893335440810808460296617752832851113407815031325195842552155310672778180284012707508015991090189349617289416710054528012367653050410493840860838182194770824738715687700387250275642935715013056705010936279911749797028730638817423460030100990828865536985330447158315144156406423888801857254492417096725741467419766288932392301386504254973244385316582173995571392164336654489552256342337862405997812951658314730266581027237565014964367087856264170875264191455378214804636046729993323693081676527123991702595668865817812880774533200372945283213845770063251665228376950754354297572175700119416122256418883623496259913959727050621799865030931511398691117423178747940525527175946755060657268412532981164164085370844591067428517700198504241920990677492807623528207439455231156588937347560912972325039415321291738256905848628709439444129847814631639423399483807180431194745994700277900135797136993043957554837255465468133662326830965826288970229971090921456253635229418057003543290186162038819554678729363603458368188580656834812329580879845899659525527664258604371742421091707435929605636100096658610858407245922137531780056011744195480762640338058294821630235104756292511707480077904128501925841410701388241212623788353769984662800931920696366589655796154112571459236765986158730283811556248483121346031050883575191018602708499569039058241116820938392801105929250266078478918666169911633987027198092017938333648151853563856097568317793429475926408876366314074807698258252074028690726886484331806059570349886782963467591480226084685045049253247148114788665451276406076328501524965808464164553362599794899584971082714050423238363444337482521962276643558152499574679186042908863505666036075620249189788365051421008315433776995961222976641661977995735470852160762149513644942871905839245613644947866085721198473346665431509437546009114094100461681922387360124845028212019312767704901321655248743938751858022257186244351767287552697978823507845153895585991233116039584699475916334383906280998106689928167867102664906701864999586306751313435631138811284267052964283658682612684951183205523579507620601297339504269426693221433904665744822429162704463341811122025791276828946941388182020118868740323572773325011394500643405349428940434936712902776275575242998856207323914817093945915974095050850837967526265831821022781009368547392638868364138990172090083690242104381583664124298352167335017456425793125435263560936855166470803853398368014205827619570091370696831556420151539468660138739323252841727656361236934966933749729825303589987309885769601167266572562905092488184982976983272466954052242315916233192489657231196132595985199594389830647636374031137701451457930237184157008243153520436583894856633709946989234388882029812876180479333191711531660916074608171238739900291882436880046706693915848399899996358163654484087477593549246973465380596561486612196965188413550345864411708418690882592313181850090778441245666642205163960917381207960598598758073866543913091958209615204052176009924024513085295244826465073830079182338510743676103167968815953038734259332869076947788876388764304419291054177293856624664216484302471411894688542095064629998422829572679096130520754096935191889846609019822405215902685705958505988237151358529447230854178033627876861641503243468082442964231104924962997248842527647907004148874091147019592711310752315794190962838546622605701472876608601245893132013862646249223124541760275353269836499952774164855529307067632856337318889176014030990451796041934882843072888332714543327731203202516209901960073183454601284153168020734989916575976209431319253289085262682186726720930701511169968748458857269816635956135826115689883911677654618769787439600742405985182170002758511491906974364820006948486972163123596687563850698520689747816474234397294474085999360525808515434449802459709385055628637306528081006569241106397371050109416201491031371618691093547806474937889880142316163932344958208042913864817504681140469094278998915202023220948732163501393535354859883905493689375244648264814299466736202430300417362547644164205377942634238178740809602355056780694633080355254343265836022919676803070945459909187521068552119362161913668371798751505763692338069686309343348409758464176115529020823449858469109253756914579043816270017302059146323765798308325385740941962316970117269805039249551182815579067385581431139242516985958037681937428583242633041153799953794234753020546248306265052104311910641059407253694675498108389483736875946191997184339907096222506127416295697246030851276323894094201767136031435597597184526956728293100455665300221904428816624836513443259209518194320107035563418765363978163035752660436665294697509254142460416312840921079269102202880253070100850893767517537877888237936706198340850301958607590128870403750805615764173958802131592209635473082059459463298231100009373327390923275297498335590694830544089444443529210124068263676906382673247494032010739432524526149723369411331956394930415770265976087623238765093616443685363326640498373348201244724039913216376564906850844939264273400300392386694735965271008268474586974444623084924483808875265928202044056879238765474662886813935661793351568670503615267621268791657143192254194891121781998951994975008712513549596742807311427793164262175028653337694317627742552235805097693364110483534890011949264215138433676170344180736205033698274433100277177563088476747569773230179093967038043807269255860982207959271539574484348557040662570341662613691029113839895468547043057655413009312363609412594208713361038991643833639278572012433590206866828671171740227229549634557185847389704613665565516821928013391543277188647670013578721313905675441589367787871853065281860417575689855117178784763160709764303512366808697277283445991142263522637407426228182848549452689800615945953033690958947678065930720989685067349145930105820583527481208443461037626884910586086070885295232882255818732295269549725396785913479663004252892604027872787569740054170187770565457404787614011737476650631696068004409210533681373949178107213935598948108507586668504063513699589800022198344934725828183215208580598006704015997385176159108655879581212131389518879211506196458607007024929212851105349735456100377375201341580496943451815302121234878411176182412841035743288979565888787001006301471921471797937824310603022600523577727326323491566654839498890099045976941224123499526632441128920708087105484152921440988471721003965707181831910359281762993904029020082331555033020430452707426509742770309516136526726673298985818025508481313257328903577633293718175211697433681943833842955776420444833973236747874026228883733010388660805891683160228298088324465654342704858241790493265008941311001617610948159151692817834083327544050377079111070106237369120508759044122804335551846568784374189376564355919734411166579959169730745277229977238125916144540171245917702796688016361222375195789312632603395878303092464532638562927470343939745653220540382368298891520325957580219178134810577608815056662409227137739764196415554560091402020713616933954287408449282896973774795752018981432406774246988496136809607558798501789122859397689578469565883148830684274776970466556341848109769156133100864320441219946860503037958046618668957287226725504424042508559788464499304745151137334570815954408743404463180488989908487361858773661540025484496459340173777170173188256427461931250611447042112225302006776778968319897327665153553932788994561921564388986391078128388943675009635050030242972872872498916097916796583302542808063204825903242623956599328497658372900389165584366314924788217685629887215005572660983902552794707682819408582619664771975916024515769396669067526345866295309862333851693631153040247180793490397632792251494906063519277162104553049501756005689274757729401751596913617648882118469502300334751414665394771604758515470165541393261084529494708554630929374412919395438448495733470609245792898422283815677273726570928507795443051051797258680049089244980855804772733774835233502147550538490993778491018745336159993717810993925940917808034852934274358936810325489800794278892616596980107397839014512132661737176690063121979341986441521848658774178168584799854914747038619446253471460770215574608374183155318218223858641264516502275943602503188500551593471138190841959076756745655064633898417321183437960525051511328474304208279824502512036707823049936966304244303497091262272540410290942111253138422187571861213082278660156810199721567358878228845857328194983086279090305770689926442938080799240491306842221075141378976508676262861942366263537107017743246958838046386523146122249870734287106946765233317742476275729511575459006294439026992563507141763163690555345237588074936183500142568290585622033903149703248370837651920863051758371620406123807550231295203921600960342155615838908755341678414327366469930435881032525843005668020790158817023315178641341322175942286410810358710889554544609477657369064321371781186326343858087457930688262734362859013376083091778417697324946367930458047108387360129785140719366617183552307558441446875164874516634517989731982769914704945025845850609240000185291590495353727402502005837707918568361223683790628508199712838846660421510265075318245517321367147340338150110761864417464646408610198280684166914402313780932449174036568815347375520323988615644755802299407500582220822662812423780852530924769641813226480710937977228101659923477109037684668165522094714275302905230012609571197927550313993129299646868712956747995181119028571879608342776362869182964039746496329974746388657564917714511073118126662207044211916357882942547723614974072855725088912299702651713266955375584565639824769973567548303537339246187135943750674959511374157210256125624773473528430583724908297742579975739606927161977963704031428374801030886247292272062617986758312480967512595011818215571528686891804403971702397282882910985454220961936371164024620598378226521978014000207058223819762647951337463592522313390516458244130069695625935225942361951078414914385894122981819776305328006162926088971895241316172190144340570733374880320213156428245138153148446069485995686346759928301662367621654262944807203492105481307765827982200649405365684201311789681293229838658291390577185550242061566707239026747258283919338048477323738561352186248016437556000293721142584779617459930474359146448196088575690558575370963682107157062192947223265342635413214999282496385429534506193461198000217926276619265175132675007659285410608782772081442363386955870446741328306646131001282214406939458479596444030405966819445253615670240915481092573965778544018068808245489601334304108489816070966624141600725081045532024017190466781603436821501671332944994467847563693252495362542742620778880231548131016284923457737778188971396578728253631707014091675798419074392668309082775987885468347585448308544641864818975083726662461384737162125718783266177750851657793468698344530543004569316927288003934259321386650727024534710236228677760990924140710405586730651415371808536330105778530100619846738200422720058251039315157479460227335983910161360944442473331307880375476088809085105682251077373995768028552377237039509209172754674186329295608247627336336683632204190788103310232883363418710349801574648986901513716416909171118804237789317158678637309062400518064547554368811744854509044627744419215869951050940416727151377541170392309982756846135214242305427969558780445821951424943168992168420620353643190952812713634895857874013305390625040611986075663210489159383198820728471470301402138403444319910213474948886604371846533660139651461286362316447874968253363841347521721137989304304611201395583320400130513627026616658985505303697475997805032178964921977390425759828836231403413394214870654497536579468826310042262077924976226256774976970541388368705584931737427283954802437549489065088102111310560748686945652968253710659373456126471327210668885420539299568622769294194710700033086575032346505344678873923126380918942822930939297664876026780529186971611893465843712719811094756884689279422147745163822396828372693851395105677057725172043230947610676631197861839813873604143395605374993593078644636452444790181493617771666968706314548425585853405641121784692784723354132942817793805407974079575840457198167796291899835697340903402985507761771217591372805733619837279272681120075577661032763971435344522714680503726785987973578961621100174365599002646171043127405236209493651329135649400411356651805308557263118996643844716276637803738507845143020461203513227604578845032503764156151055337870293294685470088819273267725061775814227162525742863802463160941688751624419477040895570812926277803742645474640941311426876855775500535765534857386938175268070176790109604087535657849027896158818391449198563589927589511935551963521250022387234642033020410726463695750387219698632748122027217480461980427626848422038756221522006973019232400045849822340914317699746473183770473323667322111945293821086718765320290687827912184552102204522983712235041822275637179940941977905888049971722645246612568943167651126256224214419008285104473133547373140229869644788050715447604917893741309244812073824983482722430202434381209279087121087538315828769803099929555733676299803967785719557087603022979785317739052854213442349201177707883137617576900825429273014879819384966494815376170424278104119768094280481314770004208576174367712871242923802868658389153046133214929913779943493544676985582369139661057876931500591435820625228438282641538648127872575202603190946588727680063779697223592884771596799347922514440819993460235083918643267693830334886373958060109345456254969101039162259334251417878586852524897346164221757035959225179893071321973268361786170365442347527812803720178023126374488979174207188136224259826338596919668731391143637740199005359315922532331487685967038203298305837130835684233642190330014572597624080969051438466850656624643172344826506294911777329383042843325364238552281513291135410832851999389450395949358413637661733351328918081894119285292738297670797952802826559668929692843292947949136028623031657407868568658328397947608855922587403092477022249024004456826939872592464243573108921646584980500332874088850766695945462371320095160380903551173924941757180779323685223795584805034123166884035051863236277578861157935112861435623006476002653388829383682618553445998322584126260729287022401848209019599683377816849173144389876088740340481835853973691018054062144661221137578150937546143463474089878807350681973718793405291099063829184885574344545755220005814032290066541440370736516985417688265568130112184241836255036717480830438455923905775585469641569059797861324940479427676370039488498771141430196847118062880318998389517611531021855793313721337496554136533350036729509004613165737872882256858679009029976215020956830614467580520048508762140463679519956240680219800699060356173636467299791622452197328988648814030369716895103353546880908678428957672989491333099075437869114740683875205789065085368641108829413225667905413080170196492412178240462035809012298008418492674130430778251730784757257881931139152458963080135179463094021750606361925122795396033040882235966950881553089656010387383504980238857545344501681784290010849435563183073598741947855160100576709445879916084755078256710508820022870786190058924397835406694676006426010203960040984954367881350625253801121751525552753751246655305602102834381700312900827018948262502133733800834908332883011746633439365192510589074788660244599050108226168611094648337370127802210291230756463105268706951419442544123426236779044298963504788646272646598990078193045968169511516952422533254322074578431026085120666985388776217403147360945010226105144481947738945037920914782955512936683038038778435099892737521163714085359753986190798370662524540752578131815906310545308582235358744415987338316336177857950520123144538087123801178082285430562642188104822208517070570220064138197412390659586786696851582698143910478272208142540836233349243920647267368081684569845444025146887813140379229993545859658066834140764575296321981521348014946098185122062092403336516791160414755969607513054900190856385939794061523290174768983902365689586901590048381551689563534380062979335914329533952689472174653052841159188785046978218794098204103569158139034763526510570360135048228992191654103054243832688770640075181846218341138080753697542720525456426021217583560798650719985057032780201073815105926962235532002465950353380710295632231048886569637121186351916831621049061146695583567219438262105266194883685378347789656815502567734507926239257461288345748457340041674233631842558363310654460720834089715270168046748503042708963214707022931115626730156777886126096926558894057887130517085083864793133806428066613832134579111632051653230893055776264338361407392710064818500700037494422171488738953034551072682332382953104083148609040546479738956434171846747970827490420689353845716801817427443592615410515766702547692330012069608963189798566142106985754378987027387974823200153487926146074825311612712577716645643990503759173179937042846414774026355879824186645266972968109633880037591780747199170523279292092645344865671496528327395621152910521744518253904028159337899802784820607967659006464417061035639358301723041257058034757683207184125782827972143565236896625932327552061279175360452475199958612977077401224921988485604405511983941518700729766186375998881122608669250081074974298576816597421612733694762680475971933077778815445911075163252235266725376187786623918644415213169728985508089792545606800107083012002928310370382433924025945820903182697266246869243537247325709371981911837210636992197945586697410340723364638493780917201150681348719452435037535573148365285093888395555669743271202395658118310000009909835599622509048151503464848301649520409594266722705518516341798717368930540718483122002927831548486109378832115224612034739339584032449978731719430471820826186744720523708672250033519018098878845399851759247076701182717692629903575212267849984784139536991767092667933540844420189804742489091240677181937246368483435168976453922358416275281505686505598049875995660651913887559804827334109065468643279998613880238720455684973043054146557831841326219922922078585915894618369668493458657044115209036144242119726822636371249327717522530303553828583476378872971988842491001360278845725106999252480475178417236484046627585668670605868331806883846906920469996905317401169123778717759911317231793993953162141039584134054041535161116368250006472175348958331377072020060614357850479886995375542208447825819706834755223688788134374325957686179116092450413324007440712842051188314444953471105661521545629176766379063725361178928228928483022589738779966351914600216030588348677738684658576505993562224674673675763878468199597256730518951720091790835864421121380337856192798750892140435933857638966494085925122052922673605242483923367718378941085470092431645543004279254785713565003759716767047146468548256327671449346258828465493280250929348765929014231036618288414036399926339628037199778403708703183688563170460136212537688179201512273961754692147631385572292928814633414760906879581702228363625298122656629361847862500004422474321090357598172625757333667578353248269256712643020457148670311336760796765005451827135261537406927301301818011751985407140036030247161139440523773846727339476005784933631771334954483713690571926797392110105671819562562616803758296224008354841209833642353338431302523724685057074669772654806680063246300339200398525500154214083776119231009479940445546175938214371321914641456857541190503591055122372699765519408030268221115407931773091049643840237414811506452757009132566753616290985091495519123668105263324779286760579166944057592438709284831349102182474926032557139951943175923619661724520778538912133547476148833506192355290019480761664194111752435173971187367772133407143393228968507509759684732165868822236177031818769486064036876630503851224863918645661489346007907698055644438322615653132071097066584132480277422721112315185653080867567678963420703697655649935517868086638335877461328974869971241329725606951105992956376309595440917047701257226641467164985380946969764409613798906722061298881038941950196986336242715375456418529050811836352564598021758698068284625406090162762438825587581479650808019599822443796327812239249609730764386341639673376362607268370233075691816319081696791776211767150369484615759342493790577530842344849471046959415010797358968958618879141033141242602910748337819236456515902175741721983481160105756581063031159508963692494057188275660442484584762081241087020019085215917346303115491439902610747525921562933178921893307630319397673804337404740122121628735515924857268304883513621290732947251789411086800859456303347962495566741249445945569182142440888999696112930123886804992116942417501759451933692654276768373365456755620788450635861561319874759591121071179527660311024595730979619092994655233880485884782526464719597003343218818679473436423409244867105634511575844778230785508964231427417752328278288587831875325979526798396140691557637140111509517849299985633957040976071982014959889125696571643505684271710198299054707110621815818426320740024686917925067397926384719461976404252005020773521786285657564589314841112981277493437626499814006947332595518485888862926391577188564093056615994953197842816723388733341193901164830869658255069036290890591978389970811675128820509750958317862224077513644355815111682178617716672127865764879470188409688097633155413363138778849434607416632155195795829703220981056066499200603979437123991251668593516754116267690746958032108014856488195224876080717100943290025182469556024184158363051517802090745941883870013906159691056736719953366729166189059710556675698533543076112602940378444987259098010325954194904581569425496686963311556218509071954000685115766743616713185508776461906154932810722190311099600806093349333386948832792094279139564561274971253299326696862562670132325443434453812527877137066503679720791290341292802395331670719705306750490922263787933609169931657330355943082545586684763009878752228442385983938959077358528861665308659934249890910523387369935973281750559334615374053933936907250651976266422777449821476211089940951730247531379853870495529736110808935717544711225282565813352617834931501494412341582275177646162715672808108053946766290161338855529163054416741554452373591464731676459911483507654534021874314467180739549723110585373318487577948466344104937622965479834777508060235073389953834842259889301146485220799271953198413200132811064268246442135034167344712351497510672002032368444002234200187393415582345484134871851541805733271038280257168845544694103436671032712868678729598818870518288772240630410440395435547701852220370353172979874468323853040301806404316682294774945716278290598434648279116942794808557334565305914992649666725791583430778873532882493500262375766204058469079950494792707019639510247930971589123618874214547319053513543203301088568281478028448241893614095995445084744755562240547336395924056416333483636743937647010424096930490815808261323746335991829415469080460298640079883135861419578486758022771294034458668235291006543659841183018504677012354120839956214105638293948330901676642600999020245049213497201294108779643093910138071873616825783168755885650250086059754303366006962955809668065259560371839226951126006115947192439686149045121172732577164433059484892318166919446211295370771609636697155732747749664912221747355959838065269793417708874234534073426472505350743949632899259998199523750001211191119766165540904088111745563140731290730653568031239426629069825303544587716708518886705698899784596878183054878141450559529562958920328647974429273693633583817377762179755649918626087491275691199441411209905773632370669600592473609709161738038447032953360741318672546430793950514146044280474284025686851582496590553428085562010135702538260741114470071220630547659443916325238735848843699742285826137252388615140514789651768237637588515722940962117902840277823918437627399377790262669615482273325098199712494004514712956628785637911005075550511341276417812436812899137068747068627227062007331732721315062936678100864364782577342719067022979499826410766900600391818577286323834619267509427286880516409548164393346792882645994723257663108799944894836553304857697466244074887895132042250641532770114970147565651614081375099049760917717052161778383565110465478712161251199967781968548379019257983740798667324230197942114408608484819245799045948184687189878226245821506824020838628656220942864144889040410373279505709187704771629255642311647797205155935749253586838599238100063626435545800236723876723566647898170517626072715852586333693766115285225740977360076289393051889770586478080837436904012796749853286417665985111607330105053982931082082273065266530327989964533023856866883481767606200435582395271243712068305444890070992260490420363111133827991330995234022608170116861488564294960138638470067149892984678928724056882249937254163934437486412220127963191024855760710393912899387814395396237445486468272964660003017463869359120505597698634422622978933365216698523026612020665850493077070315207953177143567668831842112897091644006738644720792483940317820310632041127678779115678702887528914326846710971141801381876753514206902569439255094498401968404017731904196000306441744458531680370892915008500153305050835676593410129617347991240181220911565327219708229528937706664209522168444261180127664039967755529413424472424836267752807638613511671579889673892168977526708405908432865215602643844550310352417680745496287075119933806139633340926220412438841421316137973106656566488793921824363333608615777247513698051489945119315774544412813776880827331598020074639512387413548931788282579797570315793796663626049196237317519122346385181933974647152376024502277411865117972527990070933158982664846593589264287859777642481097054076622283230307385608914927817579266604687027112244618021260844876887371084993344368699358924351874006672850786215704108105835809296695495818809403501839105163727809468624741316115636716321158397474696278749584162541554618489227932951039826615498844381390677124957088734939945630918595776963808736390409522364869722455563879579776837936446429430570252334827113446314256910919710252717519077864383476993905668878590525829793309322465377681019328210995581738452826652367864178150311346149271374267834275033738093929184488871017042604076609619022846021774880112706077730823163096499100139451065323912807209507166483650370305700367185324480375147396734772259141324428399104475722732474305639551897135499662320518164387140668818478689430538150691946649583019901638603128904766782345707807303685882733733471193179528254752522089664751363068711467974104751816792562777467465914898143868173193467635939423900291443024658573156761262376235136217132688443301807692636785331388758514302069483241977053361131984955797442856192830582704339094552940087371232127773163471426201279620917984826975833313880682056070708803863523811041398693694672642064971910819533134418002985302076600075941173119118198992248983141812783163573350434807413723882310684585876727890556492296664790822844755497241717891800652125103766556262292054001806577619459911101622060056633789582470920032055292410451109911346953192901990387481070746776164553479601917547461015316661128461741203284974041428001910511677071329026494529607027179457731213467195787586040442485963360489552118088809768101412910789360802972172331614309915984300816514479773717502206470232827807916172568894284220289300183187130373445206879326747909677629093403829264849893726533670824663698377957693813096833978124306114146914343967732382640049006600161854094725335084119447271723760556692547204033232724007956206806911532142066149473748267256108305098086662423366235691885459337563820617304315691834158654205720778912599050363870921291912648401478114605624067806139495486217968238559549052563047410072678507943409416559806663028555594860828174713718724936960849611054330899287579011058118238133352735941945042454044772155595566921815825945671605021192492280102256552777281926076197564490176065865494033414636667156091756505161664292456365939491848755298062238556930819411298537494843627785057287982827464138286307331251534114336563391956265266181565101967455359875624745155809416100940444211942788437020303369327969074150879478648688435411951906220791165057449371484280135871833604209557499583300216987860688823211786304220825133750939844104152656745293748526897724757088097709773668129410181661623600606205339612334532072362645877461814152946359105036430366883654064806694200358695041088653513664957292381493438861890445217085873477706490965189527284181186274595783433288097988211637483560742184729688244664789326768285815972823711208922105920222392796576303967468549552100204065830433051171071087797951977272810988658116172531796062996734170129696677220787456454153083071844572284219993885388778293917902408016753140350949450682104322910297099013626706559910069649565333990996919287149366638542737189816713445789187940384621694808916165544228880819878461054309382288007709224449172511791298206593192094121503675271121575259950158408493425188107247326258960973546540869097567493245230743214502057365572715716425609329692617837181844388933515036155561849344585079780886649542457915067706356944126324766827619143655504975158512928209264328224413392551778652052111358254477127732888662740376880933858714804300149221479200132063807750620835400105466637126487217774537792795558828884218870610094732814964053744675237300631821367707769947366650494454142738054779453340813282341759475906673877208989162773909747211054241042927346855216504750988815910994484136260026772299558953140210322801248347162698370127653094365995752630885335584665045474195922248469562690580507751216555649912990644307232787177102296274731883464563303720419450003708253804928757024887868346591356857289965931487229571687228417971648000545068612419476984624700839143970629134203679838960033084325700312077280735878759638945583690242907627063825663547785525308002133992014653996137009740518464323153171347062348219177791026358201784095026228052527102583870773152283761254811052420052866545776603014874626009556664305105534334717963488962058035083694720802501556959372966568993381707814452776947098768591371088358899926566673989264322585929959385658695798383557034978813630019048060247746180132199480565039612717619650760787362992186595907752913002702412531818151575333870900932397574284208680511369890506145351416888598748416921850695353164341546417874063480757161705965493170062672575166270591724756404118470973343432441649646903437550700876522954983320907861551847981109603796131774362954404174584200462407440472098960850012371860686984191653104301071898929743417547714061040523475690046667234766116432197371410075908303839474823258976043208394272969608301633723045066009999397093826119688878318782432645101398323094840036252848046575286034846737026089377929728126839939373060204419862045149938339745618571195914274293690217254048861572364608344300046845793499646445487843183623135307248442709285017423533537789021443033791234220352213469508946198828976139086787650400839642059923716564189933961926587270740685192089505132624258639261099197651518515011523235688234493151342085457859662251101813970882785926608681216954258978515218056403177909445280877300166959362745342967980758746389153958193145371916703209187801252533087566737096546733775221414201871916199093504225811455940976200530763190333037875366101809188811620434569366588430931046567356441389283651943772264003320943269647070247506157705549465218253783323454640980037445106998011598077143917465170513802678919855737013995208165878444009715178299268474004908142752022902829817347776744611766033904993340055480227874403940248962198918971771072763904885726743626226722432563487512687568905221247505826504660425977059740092242456871424809632786803573207582978604123027740272407272152126997850906004297380602798374460149629700952312701651333200835850016929325830502898818883028441658983125252169329377896532795807346150699352299497022328558631329379021852067979626653927230761427675760448722762910792225688968717970020736934607154490564382254593838183049768240535112191124961734743690429441286215222722293002971555057747337732456578728109117862197222129964735587380060451360931861577172652295503121625904253466993604854947971016304499584519963543303836604690065186136206467181319096840793470839033903420159073723521848354828618242371950285889116583781197256239102724613010518175686603261785717330375062985820459062695732342122580263040625043266618674660642027093063771579944168963333396898267629869370845408080024823733274006636818112238066822146154880070047815268998322749723344605884428609464366685795369585146650904749161149271068722746001280687070844334622296811035502295951672284599552925572538788964943451345089235946002958378806634932284871023812782578674021783561068372280750459777267518407896914218858265464110169407980395968705762258889399762576389314787207275620229045992215865861774947065543718209873303170847699499202775660759902720857952687600243080504727698408090283388985838756678946203391564367514004070994698147873838559843714370334964597184213270449216107558950310515867701752283049309749569629268698990599004485642701295073284066405913746810942267550983347404751974635069008387648380654688344253112699973242422217203477255935869111384459717814883383592002023199366057587081209848721238674949465900528631954656815493108375088055975068117210490189841817992357197666840551454003631587819977463679642088828712398126314918371612282327012210355957649997582994013820211827677185621224489461764236246628866178938188814638028387747910142418178284827317257806066169028897553960712818975297378758802012995299748599022218704863406185663435325825458284392348341024371677179515709546000600382354543914889207652977490592607673925422190460767218137118538980210766020643062158987251478264352795535550980354013232128040983367062019299712630866735659015409927323385147762140241436966668198495839629638022130890635572606532580738548414491620730953415550348829905663861609229809606220813118269970295887943239800301018408194538620780555187844822031150746592812862065991449230002954206652956691022324277555697681514013187514070205937944403656809555844964114411749914613980336345348745575537811716984199315918825873740289107903919487519660434225293954808076558094622783642452260624569341461613821180725338858860294449079391352420224735612425158757117643254831196250255449426166666199758061193684862599111229075288877474814267598835749314515227661443791596516770601001887484049602588046216347594669575532871879423975108442760267126547695248790851674778742474608711557825632453630295912026826770914714062598976620873003603256223588036502036706009359479004026784611208647769890533808223403068136722856259553070718561949494738571595302632288819414135652403434995523365327060596783189095080471239416927353247835162545371880933240031222653289625842349603791115596330766709778163345902810643221797069560421334635610796324992628759376816994030669376362511470040038950608120776998234118392816367579273654335329570271362412126143653786645837256127605164255565591628878242429506518757874194172608621721210119933695787861183132228221218101319107390156894285697514165385741204188920855892159596854661016420808556090971949159852605065898397196502188402694184702014801627303948269145938743835193641808701252637483952608280026920323553137249642944873026639089753538988034992089051901735098662273910155543020526690746295745490158676911896649434036914649023936037519027612533569176584133474053975635586928324074443311759449351154413077497363494566757507035964115121420140500636081012007515601474729881185334527741401414221933227479676668348133423208685485780697232243650616041596574372148081247120683586512673459007685678537573677557662746629942980402135393908005482730141190123001331500220656770753748510426151492572514059405602200398021626400592248670034279397050720290076835456384321732313973844962499136740798648135395768845619895514820299862087917485371779040316024382395467144127982207709305822259649292086977290078466551247023404943359574022464666307618676245393991176607993612003723355010666854009277514108263797859497215186904382467652387024753335331713067191422112109304876863600577580522920486171529929073525007100177073619813291851523927061077740641853456165415583511923928947706891497678107022961172550818478009764666215574484423530386218492958031394096421622189150158044022267274486599046223036869763003838357688203327790602783868870855776037503434680219649264979253033442594191234110279717404102351363000981274501654633545954687393191301833919497467553471372796832747827685204260429021465891798636626090633019272327214517571113310432317153435383260062864803230126446840685535807827933785196841742036049216730007373911179951666465069233683089043394757398453644921477546259750965198594754515574671504802760390367983474805793388419955305212351460591000708320711679857268738509818383926193800588312043080318783722673461767470626997017903937661142320673588664657088430303823040370388521855209060889992292853684368106323112046384943495432905406280181857504155894408278760323396060370996293053708536758415988627256348727730522737215766609469922272611044617114428484391924305374232109117169083243351400593522414990778319515391151381674296700028481853595024443787468263784963635570390953954294431740984146178622073309647673418337267155545493495653499530291856628841070015470537383331837261441295584446047508522914462963741559668514652799577921656525124953749300487658014283807085172149184399652872825722954254712650849214545548164595340406885839725380288300838364157181643543379982868231157677139315110962049053421594191826690419033753901651005097130434563317862676875609290737407243487463073765564547311369925710272100838926780770640666682362549174872514638446525114630266429396510075474303242239229328688178366704932711469078941747437325937276920319049693931693827443069695276829359292102834086068720611890703720997734483338766121456800484379454635709660541899074585089798252550865722285681546485202919862928011039795545202568140690337133120360284083755813800911878409050258515194067649584040451153808841991458956632797596650817690186557487812467735654492271359515375336771202578403248521820434944292495171355246508061673364307612445110372118173925070270847847143776796855242378777136423674163032939614766913016743791746702983742233934745330229229674832582248358645689145248984931793793487385010376307549687370613408611103428005090625296271775285386751401793822326648877135909344220274442100452039085759318486118958101917045809337861451535317142634896008741308807523030445569164573668362346949103945863149294203867598929090686245155945852344662801653925396850131543979613683256384541500823760799925874474495001442724698794165775659097006755135915071178779782009650140917053922746006021677313289625073102869450429217186414993993699249961976796971514796184403886313779311915761467688311336553609618628763060259182544875948642562651764895108865799547915950979283080838072595549850336243849561532511042540996124121560036460873918334190436337635820528016104897239887262151479654011698460032869895627770922259223745614679020094243280476009856499347337799325687260718751079071982726181096042926759826050477438615282483534017500943341279408745734558952807830910625310565257712572665826564966659445498166326897650689663114387829109673708138668239206179098620326014633055918545059291833116642811295738646011317687261930570324802258858946596308864112726691051103975646935398361935285835114895591424977756229554947180920794700793676706826408671384368837268222460250757384393432175034580197892351247038588401934757162562944750617394857862807027491892810696719936874411584927555051755981154453689180529590545817080054249737388223454832099414992900031278916160192697415348741960913514703899490889929976111268650474109540777500183054471540375069117776214221902484733986621588574927237065802594055858737491560993689358779548969183421920028653170351253539373308347780122300678369700327374982819452324704297350512480938317112865820263129804199560397023700859413641954761347378586653908807578156018385961241137500940757613196209556913407112187865710814972081102249794792415438632233354257909356143562874286628051824885722370266966856198662484949411807131742204642431121750167070256426895488007964498743975784569335652952445287769095067191820987693254343688238653689943052929575923163698507039404254581829964950881710302074657551899073288295565350905148397662775376280159318064577813950160024861406264534866248857183264956382673097054621528293085638432419095090495823634961577947637832186094929369538207264573164619947330891075063368713599898345287460128723209171542897176841885174263140933621470772945665462536818014907184668019007146252451458918504636748256327690826145186404395692115379648658516938419711470800073992837224069137817738819887703472212571890214916341922512599204854583787727360042188431244342802636844489324876699751372803838010081177385388636604366819426435421358446385340291117575030355854627214135764609938976133187775689319596842378255992679706512776561963128133861420017682346319983958719015742598681723388141448628990344943330847187377503558355592945353513607392082521631076147201670936087343815584462747660226429415508663559593008080485656937800803265227157117645466925591898880284914412704279368045645132415871861685575636795705559809477714151012933957799751220529250402089225786532411279929571942032470012307903908060404083996843305418212946794865580850943881402154700802197520006425392923735350461693429467594684832496509415343640871530916217375347018673179912762834267194670118812357064811769035702331215248076323568049074891388847392568642190460849970443741645396414739628690244674779625120115097163958753152578904436478188841390899734196223883204099931393732596939892193823630233168348376879856853530116112538802793769944114325110697012759522557620019818795523953858346331274524155604438888203086458601872695270699235869020275061548129752138362624154760348713736507242068018003046214577093782346760603591864120444185398697494827231917913121634194714484113633977820954295984250952076645104675384518628631154301162297499010239302782301596549093742607607436408127785445325786956814967232389252670095636744538803252877592707432509799867118668021555464088637453499594070380961861261482896193842739680695585318522848493965658348136530313286293635037443039905658848207773394417825499706449883360035476790520993450755255860661597440227350887057376446423640437538745734866653774739948686530799624158962058555040042708674442147140868289333848018134711750564982290614866363288293851443157441480238452085303704476527432007325170578819161292514994724315288744966354825001922834162911969938217033488225885972663709971524875856202126847567858542679236028740179921298758381802632843409265835343726071837940708728693250910623029653789594265996915344729832633201941653188960411312845594004249579587926063538222102746819346599262213511605961347779176441321734194493669174049433376936643435155902132546312938764172933765041559894422592810070463254393950614480790748924561695525703793748549805740378017253814919264089789020058012561807092217117349043726168480586890774369769475528344056015363458034845158010242081536261744137464421359658298534395378009929052519915693986537294550188748129742632465208440298356962921178003659217740855442973351032657004708777900553524934359060368055976785426900092268527944930160531653549479635816393003472425853055761914659844639637931945662468150727219090525187416139132225680152503873248298124739728016436884234167723878333870775361343871759390402566142195893120172676131960949334087444384948712780591334917031826529151848093620906949720290626054769768118800838333454398931276799895289070007885650291741645676013036373294743320043420697171369555857066545533131356711177352955780941462095805838764721037054094635247914932967001867557285066650098542711551358684193759080895977042761534989791293317791211205056544832538531322734348810695124497159482192999717477468332362843415381204534808343661649451264867716257483946239703069013451010900214687064172810110788512285698829804783597829301451263500636860192783182563579238377633724115026529075613424552298276827100373400345787336474219458131719812096153270331540796632405345948962103614003026159040874991108373900985267540838697231917918536297464067302531073302325063049513888452205349231437906765580399051271585511274345908712930960693626958574885702671381800290733246918436032470208725277195440206724532433025922562786445088935774298782274282066930785896472559601166466479311429670417000914646583029648177298049318834796709476561683258628556998679166446581796549928229011537560143903576112890555757253624220180870835145739884179320497807616487997710525326678225666311577026972421645235090980149229732601413311735223803244788177567628903403683565462951206098340245997601288837952907803555816045079490138082969796952814562869498032573777685458927498830340479284629181187307558087638779252242981914140734001157924325237983749982727746125354636680801784206600345100200907339920270699391635836997661470165940352502671041626961011984952645047411638514539490530031002105624110195413625849102896995162338787211847207183341608009565606901432027438516515620281938272933713940502751022741829196672770753032131707343254564901097235074437281092634216184812590929187931349953767387409438709754960362851706664080346277896909768118415422491846544809482024813209009484051586353516201120395541805418015813500387515021179842816759621292421200336508142889985704346789502237906989599264740238724439528043493506798212828828223524995487452234899747699380260682119395144070273417853056567404265435090105960729940403353536200290417285344286120864100448037497859946157042225263553499422136368954674356931891505847193716337748158698014415789162365205762473307476433349512299598211402062303547577289916381421680756227499200005718521052531756045577472246782881261930064411540472745123708676204065047391535497593494273763379533968939353861663506496843346171644818475569323612649778112856752556576236209758715459615118425864704419864812201614857809059188185081331752474123234905430591589725860284952341235771659104299240668497744928806978662242078501318528655907508300643935845736086991235729657027748062706615582614981041554241637068341456512185768832321569110706278283192905325792109863209341435944485031687771192899079275779467668472049980074847974733179635554870767703150188524118945894284896618463293909890652510678388795966422861208290604373716849100825065431576614919095137062029610157670413026695431821664500918673735587273829890454554715995569610078925067483663313844893170742936390001406104111750563148150150548425778383433931963165481298629213149832887381887284993412118578590160732547113841788736317657278251442019775024688954545613601990944455050340305414165569702492667720763455695597068190788858124486840851596583761852843814546353605249282720101348922567190134412624881282334044401732160100943283694730907881390368427053045409407471454768149494780267537814641059099383296220807180777592237071203010251168033947851104976789844159950105920975310128072835981402712962973855115239320959286721741887767517441900932532485332847995831066719652419699209462342466010752939146081933155253879421519183199974751813528758038851363395193699477127209473435370444161561332473055880098444318785716525538728527788009939186829245454081629320034058224491149697496719345096829948974971176326742718410233345900062163469048585004827888196707891043379548656474400223857453289951128270995572200290303593866171778096040970673265915800205894440510935487013026400788846906540877845984833371028171692482306574300096450445827479920363037677526872205832071407395299962036839744316503425753535559570901321381158052522397134820726699242893555189916816949748641334232882537284309448348624119576500911496565137422919195154839651950440234531839392920500407836842440539013705898591523512572735677852997526944382266614243907882713281512117320617744476624369169456430582092970311716644409057632087650759251935462841165030688386522038918335835705531601198458322106130229033284510431319672459458168501210319366467214193802041738150999326884726351030287050165007390237670939399749624414798074604817052958122528409722197121200037060466947411412740364982997850958606900379616036797812737287276522287925848714870739163171128717398014664926976739872283378013682445038797017904503899074965331126212835304121913872337234254774007373888641448948759811047201059694700134351365753214818825158788823941047832259003900601187051213894759181822512810262914808537030526829848726091731088720113214501743395801849245168752117165644468544461353184153762000600423895917422493339074966472301785171357358563443126086741666133744657208773437737363471523388389851914978379082609698759863212455293352195931291444606820776830039592391985782074097309105920604347881429738454197829685973042537978995129377051586536521316977648804466049377046106186455851268654034170664224700092845341904062926465802993146403317749675175799950468415030465551690390017430207038673515038188159943825329024726976952052954285320337534720942593568981967052307252087549471200864579118669349153258602805365530019892568643836273853123802187810591100033801593084846269554044157074409027959420000444875641722039854633738555763719760956759287040931636799489260950082559446596636160255194043060645289141645029958022462700649567657006986871323894784659503098412407724922663787270742127884863004140629063126500475369621777196025711044119938829114067735608151014484435187669580396803945869829662039060250196987264872148986330612916433922832723560861009712530058732485865661544797100810359388380029232223934641055407125030138320582192327156327218269601952324130107168060159635323148206298516324024469818257689820955802943570052596742404345955501389643411422739650881949634208038894360512976143389314954804343699633462442198593888275399733200023323677305962712656923583654596505086189462478307358969622550800022921934929550606268877076604849951588836462926665177543133605872743601100898667778165472856386044527889294121064513366867212317584155371647573657543291050305886906438808630860233134376472279434356693823497694236835021939425213704161485594593026512600552486210700233364601280241614462180643453156009486037077910029607471048796711716231837689782872457238695838991647519002140007948040220146363148554921376557676847073551929000341057102425043926995828561358577838156548520409712681435452960050750105565890988970631565869656099301560647858086651255217056360157078857127216843603613825870392832748054414989839619867570961143572015524899044585078487251974246097708101266323122136102415544760383569883637250759655476066809133372503262718638023126259313376604819813268787512992130812335356154921355077232989189306756395624247097423425030248927137234143997341677452657626542901911759930030593287160245012991303379143635418655683281566536028012230461243876917918720395688998636575968920991933740135005937590439071408791062509977468849925300486234550306358947977694209724475913664865149902132376067597404805233637361719224094029667395944021436177728045873709151379701675450509151488880940002239034557644610363518788791255745093791563462422074887319785079828758807861632651061023635699376309251936476895345543791304285854038185792084552709544751161814895024262245232818941632220980712625132416985751614264276600858536283989957616179814644114393146904335947421444850742902397415004644931909937845101583113261426737119710001622582695625628463965778592895325958288980783568656291546670011595354610606233381573433242814549741926583472884824113252917726736000271621527628711267962026665351027230523352884169654541124355469970447512079207239225212908464661252152123343647239665491552337236052239497054074811670525908821984860614875097960650687802342427628941749833006292765634999547779272399763400470756308994554446635425436362404513430098355658096196830021356388597596822132180263442248834304670520889870611137828823765534895757798476347727744313831892610088510051767911804941159890291506470889554285323195326590551699989425033468007313519905234513277560612608556818622753890573228667500600766834257282485078139431208718760809006218309293892306532803541315211486714719358580126634536956491084721031420227811117517269633995635950622192754321655863736123260211628475610849892711037493935468204065084282128443859983774865239038768170157862310670061455901683772291383195798785826377803738571352179077656675745040853873126700449813765487001464055167213492876578511534969980948294819722936002678867160744179246270946400296756282892534008294855564256697166330921944989744003527568670325258999567314693507793664782837202800590287497246843160109490704193910309860829557144201614635942836449935141056780725607075378480646606919837334248858068927348078371227980352148112176400352970178453410907556288587508930867382201070509208405767001353677552720395686110066835898201478310736124067189310105160982013627698331946124050850550931118601428282412253739602153426360853756969906296988364474389332468974096545336743238329075731974722509864002544111854183556284521204039525459941299599597738920815562351414458221370422691341279842923604119527072337171081506830832081960528214581300152590485159973766826762358061926843724592013362253267048628677559036062162175353291347901024464592243601382666797292763737201853743466906972856373459851263839671349088858043867549136862596417751231074660123613878312237555578427051732143075013873482189157430763556648713592675426956240049561230810562886955917997630205124287294041474218290650710611433948934536233771936475845567485509223328337086682308175849488585088701430620034210827573245765137616707915252273899688803080600480310998802113444587916757011224137579274706263675585056000033857766283473489906284997573861872498100143203719236418061516580002043069544907059079593142444578758349195606261604228695225085833706290225808838238064580587144046601097585968596713894942546289950112112715082629506351073423753907810306208757630838287552946102878886078311144824921662503816019886822178302898137222358672013026586699530774593683657543408040561760752363805911941139932250390913280298058592320836813463927133553321495090084000860900610180422664638477746152543333812367265539458496142025849209368499799170071741096582661958622856025555799816538582565377282039614456783272178401554785579618757779363327707656970837182482773065187271364326416268437367814965761246784823404779345645487491643051236461380460302791502432876386236885128600686326820431739449562093047294900059547825167344476739294650800892368620875767153064781087785779216369014463302550352028555316879264638277474104338153037998876026008970430416617562585076340907061221943057367543209671446757676249480736194720401477344177816008087738400330443909422218384958340291959054234825948975410898530108781504279597942293640231285068826063771227308739263402311177439137398230338755327750548387315544074629775285005800393429715991888558269143510777642042802373322348939917003768862218517285673453113788296003566150237908554023403776851386451935728912871721539125551420971818631049558924481178219075238896340999178317131172584569620993473664919479629526979554740386301199782450469342257998243713471912019885973723132241247813624493648314885899854268730356886542386196962328298455424182994635949923239698020778238786682908502980786509363361640251510715067826238103903427045305782641609882600416824165362773703297962354282742933006475389519222691290105895138729072337127980175150991270078724913478864739621867295408172229600539428529666723143910983489987111015308182253442666793051830426103739036493387894356813816218113512702364087943131826432972783412999926513899780135854147472800859301158003050759933373133042779990364239357157519688446047030879459734506746029771168999583945913333151243051185427000588263292074524962980173760366699346358687633787062853151048839779806755645677742589077048812827075677267120973351596915774598416262419961864323200279973280937659151215400572778564938795135360868905153461598454660135097810739367384250642316099284330367753095247161919119599294278069407113918161419776900723914808676083487789688009211190456034722983853456489177646154386405684522472728834518814484993297225040062288687442713080438719122508779276580201431618287072589689610207785092098012482361194717073217658104605173806293112275399292540676408086730545490525050480654804806066551467075835880610414722065939972327285405894615413295717261131320518930854299787044633987072048496459763359486698968480934311818902601128536206563226068920973498175073168404507639759520170291764956339996433196220700537118070384283431390385535230726626639487658174059299531723340180643835012384450344108773862051156681502367668582923491264034739119706143523943860772453877178315346036078435266072855608385350299818440366416444023667965539632536138225073927852565988111494695824107336362368401482370860329981886525337750664799540007212512809686706133498583024201171191790614660135727654872211549845564885854653499835964833569487193995156400111151975388350679679799622113002169992393824985921620360912619919047943330113504047621054865978657880074999110399837481988303079860361297918388947796705978513741289599424344158240402763263058502307041249592106732030621136404740337085142807022356786541082676366875973007645741269056111470323019645043326594604982180741806393600124125908638885496940994032951442275354413628726429829788299819198842509442658263107917990363221248403405235674658805713195300953494052433269161170415769028324543159688498256311153649752801952180435354526186383762683619010848756426466749032974549836773939971720991911315621585625618357302644650175179541248220875090712721068854921901975996076800928202768774789690121532852917480539435705225737329374658566371136560504722099445019965214641666655625785400282357489831442281971936073030739227379112892764983852765424285347122629235054510768475471777304909879782478126647725197668599486784799077418132251289310133404614870660629522523271219999885150494110867881918048572805455419222592025767489517046902551469769348619848485331002261413793700990502262441981817155537821480534849949462827835889488223113958869220715164367386217973781927186358351736246710415394423626645791709334554006960597868979656722972421334204864060313792199266039497821568934667569773736545145914192362483507714739946081156012806081752123965468218030726222390810695241862746219281817732574960503810137208977540556596715091006309805163619339292977870971979723296220009587308136450085424171934978608056993969836207015972714806021059334634420245804013947286953644439154425046335500726750841386638044218822452215767071809496404948237121642050429660079520567831424817447632444626397649391090287539304530122088600740953467706168205960796132330916861159870691393939361858559456816277179279688081465702954607781549354892933180170941757884727406499292954536266330829730265939543395321324569657574552338821630367207826235444241306957702718685212723052548073288841997172554717452599761095085182747056034698790168700019202216437075039102608813137056708108864572658285987980060318233273180444055305170454035026168403390228573286962460016280944887436706572347825691024081590394371730822454247931216309980322142180981493834543709299523802198273233462219946358302080755930469448728067325667404890532421687055049521586827285279001517254810572983180796723968830112807985352858474998416277622268068796295452243518932805753692710539092569279013520145940418363743533315079793056090444582572350921354904832605316203120103869559463468470364669610925594995887597174335772280707324995472704399668468678549481548547747139671631889078533257418643390150559276225372103330367102587625765025001411812397838219718238627675500191341920180007127767033485578062986172026764113455707622592724461622643154666447250085706105055467276183961364589866821582979822943397400373185439779455358042975899744339841911722859803525995686101177681305274394826489498504797766777029902417495426175212366757327748629669533293464460792235026763072413207366459794455327966207326451959280529569864568528884901743252653389924723384558133983878622743435085680641895150375861697454106144635737091653669268832720455838076949550242602500057111780503879230391782177521366579729393319519527877517800696900462947717336362901086990820411930605274909732639212585637775834605360876051823991597399128377373647749649090987916230951171781093674132027541669023618545982690219435827682512604275769413898570857672253977158410505910382102019237091400612500946974766629137088524997783077554360161627847148787894770677125008181451260688144805835159260654959381532341271600982172453956374728957293368375328140585062189705031991808117709874362295808645266021341861998625936464834788386999216643364846278799386471778098274203314679802715473618357926270254796335894647306276532149064331341850680713581518567647945631237847640685666484954851112800299060653725190957945972820019698718665573984236397986917027471107377081655985951108423867931014962406731121782533888179498993548745998014537029833387794887425564280280549266646296887299841055074626142914061653880427416484573245488948954331902080842062127720735230842677082076073485984355357522854577432931312814447726010492005667742565094469647815277621132638389076763499103313708471266160084691629906314032469419039772959616681417039072303853212292388460758932459260019098456786672486748323295578588477083730338055013077868714843308071408083688745946667880929535571604145728409946861471451608163179803299070311912753771252087764941859255255509598858096948535782886716317753624677918685355119664666057558013730900952645932654338911960346256175532931429085271690903262401183295071941619436534799675079505949953952496475800857032155059504039500407395846786149669856806022149213859804439333671801984611033870190135812030380658119320553212640360145734442614218229004280217075163401101242483339529283066316077288357441277496525626798665465672709697233839020131371269408182183034907483566031348421273257287549252901653105477471609353803986531358528222759981405806091570649043233316465445750112041492474676307693216238299668020670915055878841280160972217941420280273889752534447630652228406568310290039044906410212315888810848378895028809368408992499936285180555152126112412226376487675141224108106813596032331874528976625731038477301342124258057723390206720305628233802415548338486512182165268944964568860651027805674506904624969778026167769612071954578870467594947839656957486380676928728658558939624249995465056796609499193124597276334495589668741080155977773204722032626348002345698872448421836455274143452244885635250365542296174602779171545620868118851816454256047147919272176223681742272828497625228694078866383378678755781956129411715112999285111863012302315968613776980604826472245126288987073250829494710066017686807188225816825545122071194990737309431558344096856470165846443156004109180314845015456737991631671720201250544529500230679033750826486798395429446046866301868211539101711809461260096806981664384239687962663137328889066828959028083333824506766033417690113522751167518243471740207632056608962266358398310361940135490225370916623039874179939423399631694415090127043763119405097982939346682762545373975151041609877071072304727123000211997227229478759276209774494971828536943877077369527311624474283000790010709573316407655263896208929748484356106624014750299418623337957604187077936732547992791080066655568062292862784256336469933980570387997205356114192065223904645739206582645288771589312264459256516162282891093420511050367413192782109971247351209706851479967974994084867983365238747953534796292556780534801192850292581659850949513798271501661248058782851498345928933399589460198769208294802208486306645046080358470800566490292048707744506039656755356325627733152656949571431774747735903868378118838956187534677170045538450038612605215176411443327172032877686352071519842224460428713569709978862756085275619292769320342083888585668495601088657260749291270567597309679796552918399200877555668689493258998855930809560495629304559923637995571249329417367387515149225743477024835737329989829755747038046366324753384081884212239943437551500283026937290235137200887109826202232475910474213503845362782057949700924412467269361712389872731851854195497871061425652491246048564488279828478012100016883219470064987896742211725889218571423354372628404384550138269233036099832070013947952633720607259750490771074127137960189890113513899504720083708296566049628550342725386733589644756204419415485240914487098788817492754085792245696493860931382511403587230717275099020557134299896563533071579060096516771191388168539162858461403178943398626208270445724899127738635911591932499302942278437285686436620603170578212751508611350534223046609730153153172647864772922555711770981892841069763353412174569708312821881287725563081997843238949497608070079887134808296054535549456023960781553172927838375719974902985020036064178561176426663616299728271698979106147633626027956204183424125613897802418282522873590065576676899170560347032551915952345747316666569896985956763254404211966931394502810532519139588416909895816189001318449986387591469128576613669252562661710579070840214235907886245618052157575446454047364004446529187325456277912067810181391169295912031798574510104671138036416868405430939377511387619005263182687897324406906973926057975313213408862885565625954204807111063746566995951103176244563217988677535890467100944306454471421591198131934006977161486240377048533057160642536668018651587056777747346916763211266145003420748546205925638186328269600562131577528951409519927829723825574623693628979208062131197077065563500914843583233345142196437537076220414220391028046852905575075664398803693410450282012581692668778928364014415848007906254179447802258588260773616395257619031257590769648280217593644498516482722677276657608156235041183387062414691550836472261513231561433055161761705881185005513591934457813279326697745824808494120814275785556239639555558833416284649032578962779025964773277765175943472885842757432787849542435640993835157775140717793450288313657218801419313624896595939030442670206368863031423466572404439867036799310750863950703980050087051385736402107008138497524861531055404979775142297132929961587372195474477032380339663534005990258842074535776230802434034744026312324532925489945511655697707554127162133980701078252511189093718277367255025471848061800889558318306555211750866793677407795307758775887233372437909954788657831002795871267289662436574053373646596587035638843682102295239089805408830255962200923805618909770684030042635655040567791320601648571711307274574479356285157795531160645108411994253433208967774628238812383374615747606252024287352035625719326515623131898599999876041508289095875757338875610444013158659071016986574524801427072389064529933654132465060592727872823224461923540850755076217060852969557652935000665292098976080655215283752100443027025756315302714859666073022532914847466818211717166070108386916170803926108554561590583540005673543655282890351422527623084248271424878937131840659620317088049751653539116942840504754394965694757877677229453361105424005629558279284427975988510943584688112862613589450145725782336806758128107151144675644224333897823158832105076895388124240010475224591914050208326682111494893277984786565218449562201055576093483700839859414291600349477474350087201748041426327350182004775043066688214894212885558095385058858041549982045917401906198292432310502360552088898255473028028506664439525985535795768845926472976981033649487556979721737977903384994997088139834850310749360489222231011850473039961001099215703268844918134021482685457440649482670649190635478393392199156703222144097067858417438725514232644414131724396847268729619254969167350085880090079937363900574404601535379018232574897763468577359744766477608629121679114201989114587868027746368468588567186720441022417064941087987810072462099374906512550123470966611535875039192364085176273060691257838231491463108816941241951563412837254824216828299965933144259342844606702137653517466893327121954444248843421441857293192227395447485262323284295757759028037168918240078997814975834725997694353703749206367262840999667159112472747410553235638126901251148767218446817560179748391667460698205034716756754389847758279518729837479348951807101157294479938937307802465149040018608467969000266469562690565534081788344709194358610830099891813986528815713746602188239810384300300218939658096809361092865267513761024669987052605073596105485951063500160744452839273040627486433684476962327870198584707669844008744471432367078398308164987763540457006859586467794753992127932591491095457721588919411789219729177149645602570718696040553616544325271827811626249776118790905595240437423210684181777531039236922857311104292015189312245498168062182295898098105375966202815264660776294072786037583256154399873372229359846603032721552188137062350570201482298089373835378813137051038782438473840616706783053266260950497252314972710669016439744989284223020005492986471542331331281516036723800124537482200866621426107148662270554432788645986661303759728917893521937712173934132523480053279405942841510032043998749367458541854478400503425555600271659628251783779317915274383850531192504474113654163022193676143243433872625254827711646779550697229986211075743550154828448625592395203979822906506579313361298741428502613677449576791922909871783056842111935475964489723377659129000365982764955147581788764219718509543124194826607412995631478869690381448404742224854246472517477004929696183085721632628046695336109802496951843299978808119267065439505639815380992209396097025162208029657547000495168778561500977463237721143550533005281238301557356085616531910035164152925674840141164706468804071988652133140227900534229141759519838910295000726047879823625047144698975356017695616590411945152194829196483742631248417176521130780827773774771183901634222099462642155356103270300707792837660138406986602073965469998315239088878907770485248078356499264572902710031840541977790373565717447454996739843681388853768325686997983555959543005071250995420244376848528803040704692401092592075639650215014789785259439714015784093218906645282950323310639704298844039292713903245882693063520646308274745488553591447033270946233856740240384519371008114651751031710958711135822824818579441516083060530961242055109869819901740784881028007476944573569090103516387712725278029602944256313115539180625186029882833451101301004326705971130030526122542999389887959019811318589380381156862727915321629996282194202262513517272673930673787881640040344537191163905622691637343820573977604427917695920326203098815488008629743075252513978262467102876843569921697931133961075495279367305751954003780817440635439246490476934063324013616541269544447555352349422484398301632507925147671109612103501791987964576955791234596625940784091212643774426627258014496631949060635071050724589337229247498516313671763067418025998401663426535921760349317887735342580404388674454288060776465620449137363196856948395111328396675753476423425479329893832449654579621294921578438033692743593103818475847385630569091440170768052831479505432270845547520380670889113974485531494864554617693850123814517551235039467411761111595898822312869076448564977909941666024249078293919319195022727265955056048775600160422036738329149312613761152818382787842460407245759960763329970521650304635074214911302709647158442839389803506842040160530331627889394605726930708156220971998398578558555031161062374882577952473279319264085966604381956261729609351900092095960619184011304204213299712100481369849967931255701419976596014006916906210301251665746557025879838394264353207945745824776404692013164780677204846047768649403435407311529579955388889898704923716284873910721682612392649803045556211561339899626679058870508183762808695432458368787778545659433258175614108692542225191870666962099273221504716547791367594527519881289972493018649302058568319338259964929218472507098331918774832802690147840816699044705648286412741627331072671333106218179419155498163305023397153388104820349196736413101092565493762565059051500289620639379734090355696854706722553733739908128343107039028221982529351232348480537191623290470207376427777209834263339926573434865655183286327882387510430944221591965381317701659968572493500261221392430704596534176698173585257542169882521169487495266931387718640479724943204160623809829763574835488879292415980349213785966823914254104140445520281367370926632497737299067139582782415131161731277959030568558709692977741728097211296067801264489866009809060321917885378125343231572930785618905232342309207112968588083441097021398251289978079460619134370204618790708840532293384756722442320603930073977372191370227029418603755044072713617949144224337685941106303269434409723789190621001076337416338477038719782352012885463869121990131233011552304376628471271440145408143982445400826792556213375671814081360602580080502438300825008349323286753054501469864048293041381736224180862364026184967322034584528478743891363505837014600191542645492580548699583017007757454778742472682835230145157295157891862186897369845066847790340797526598482357899119666703139053117615520826669078583618193726130010104449203967386664429588023986305743597161526337396290536436395080318267705775862012925906705632286070606945173874951141190596844750181131047797311299487744285696534882296466286439001392062043767334087851351935646842455842659251876917063073544005248205798318095546849291823494893381996184824801542063359057959059113077875852419407922135088635921693271949017763502719287383815121563295790426851550668483745150856130014771143034987778263582655388542438405170097369309584831922966046530246866148386947844572603698767591992904361665523646849653715279441104048988699647938647250442297428052491941526309972895252736990830474142173835539962809001423901921930221624831633108185988583375218653668407694325973325262194095945144645627055374130961336696630401833601662709619439614948116038122131486062983966399556727287260651650114543137383596369044312257129353505048305984980430366963707724458680178571864555991503837392678412750478287365193053739071816622779119746969531542792679982519797256549414943616300324183675867009202411858656353349479374212078776615763410388313443289506500300528674177090658615666663548326743764886369844020981701960541003425094248705246813680675332381831091360120572117802619551900833449545263738519890367056337842700259263370551315257089386423132040009044869483799668751964936112642706256368910950435710792553206871504363656385053755462984017268583195313202305302214372743981747455492231991795462782540913342313189878773648421917939142155845420597414290770362720457310088683119434641352900798102197099175227965184113697523732868801312953168604478720588401400930411803056475679863276403477416260543953600920003211321584324503828889481385420907059268357700356909778635944039358744474218917395397084876139794209113659034854583229390306259671419882960099083050447455679619048692038708100382128540515784407863548686679160985520210089984341067448347208490201369688967830396171961376434660616606055821189680587734457577861509714473159115684079968894373679594549800828357035434921208138409984313576416603058447655484945978581262387049772226155663789623094484663839403901961925378683434389984976442374350633678239432228291667653892608813542406468124120740764840568054829030536695425082415863149165448328496949056435571843426063372809182723308784091267792720467715960648139722383094164331734050738654088087508696936512731857206857794361449100714561902691847156096533813725044041928740787748373944685760611051298785506405326050405721454090053896420003104370361267378750525619599248166912075463013126104113250702174852759198201254127209141186463561080725621330221473588425738349900711681913196786709594358494021180676818763847417974236022164749123802168294737527456388603088854679108038525067001576782071301421867483339502723954409092951960744747384937966865714779047251223006120664238906486745324246296887150315026942661873288543560129137327958972918803162126154543469645435912515290372029001894077933769923088772466359963940504343571127485056763725886371317755112504317409114776420372786272574664741440079303622492063515515215935746085716760502948363578103927432025531114737480341102702097743727947839519698375685675110806388094787820672413761942301719423763942459805219020953334073282881767638404310560534257993869120559435588148298279223229965919117269528107496381113081497561676089161473059211589561468723400766259658901992444634031984153434477913041039469775965098076127897489839217385630885680029214874578094032856839924880731754324351167122069261544108880524867293196397223742684720251487782943854119873024553277165163498516662647771465675373059240760903121704392485878199452603678593145805164136685738943033148343182558659249840179939780581422672880532280841536931069802866798905262111094894385167387035627089362749626587795018800074236943948608349230602684639032470273238173679801267648545180718784918886431674147233272555543836876270099939535932783587138139199258415834149817167818394019208066752030551050800218287967277049363889650554478680601148063004956289846059077136647077950896751144653706414612856531011559717362782875067700930753432852498108076208331565299796233413320904065835137684617698215883610632317158264612086605740131955640932629465944665924179814040634517153639029012635252472432617614933880586575542960323776991902621354941106302696765877848678434505557696549866465387228845998651827670777849343420020917489865665508313720641068967582711875409982837487662213830037609166881256502163562282183158969427996543013536395155528947181097845654576625323421601059084259714725146389784588396936282567649019938032159149887252383585876099403781053621811502434777300908001777883291416205824186818441975525144840536860675137409716593415416168620141139727106545069125607123458887846638885417625227554718054399174587604137167598787208110206607601846409331384406443258456684880383922620973038668967982262465122035330441390831413136055236979055244347365942412582832771072954266479150987393821263500527962819917869970360135997800645082601678149851519259794527664652615486066490389490083309270684253962989186887384835082145591870278977909174675086403353796106777856703023720610247394064249700867737281451188069592746436703060546599078337339374443916926642268640570490247997345451041476202296704748056010655354925652613884754532639132429888635160416909034222050718251530339971809380012808420270439787353244547859240727769148606905322179726973079405565796893490618475082831444170473569207553490218627009441188189282274170307493251943738730971749239707686355380928188750309513820360302599693328348071454253917571610079886980310960838647028145346890378901618162657828219198589824723198635264631280607626308689423271167273558213949741349220200055415851807810147904580666699163829041720731089376960021974336188879560617482744303958842783157350558759519775902232215352729691712345636563368167025020324795623660015311408809415006430902236386537259954532936442555280552293260408070036750316067824880559914767885136860643715888496724227982427207446064087035895092874045566480742410211230770687941919681630000158064133031121792499506487884793829908230280392662392710727699997547347491081134961344269784614191017912467357259104316674982201590212409913863177937360180495984949492344617735324563579390229569159298625051957390910479396253336569388775454502852075874821269535015552532116988404939140227206185661749369623343584399597115411720036064975300869120153134506335891510838539547325556989341407701800039825225734301859600453218540337999878262754102851216721302938363771544782156306599308016585729462190098117535222816651272833131332300323223943287586865975817688104041477466367723855930597215983805769894099710223468674714927260343607753894441215999727160273094995175397053510958220134851514401260353988362574984265529969632121313414664739081644888024181086560507571470583145271685099989536508089037734081434244205788784127170299477231276371518563896465084483549432501031972365065676273512050193528105355214674794665751520542240046643658460060134272030268172099188479752679591355593282724839912058990201242760807245510378939566544340857576470791515243432606631143971073692507439043603848265089598418866917578483169687126286160631329557477094994020448661342168218440614258271195586410316436202059036791614480180827924305063300430909811353435209842574370557550270706844692935346002098981685117522192302291778810992576542877204056067425704708396711078518084171616242473139864777681584042295211281960132622837122897035042213388942589609737031086271600309134280007571028779644605156995146888412387091892662060077614405647501915210335127273404449940052231807651059099951407932057321298135042187095615389598814366895693810033198134887836363158690183978735816508558058962964129014592249677825417347481642364395081916121762277199144291381126056452526949354162617117255546838215596494681289189675807228281277519176933108068073406436942279587218438377662198850765575086426376055207272482750284529048190364591525444097889467367953407141551693558583013965795491797264584870700372826195185280630049353594466197405855863620333652164066890086093090480582555964179576047742145502817614506599277720357778006380276683470655727890412170809303873603774420904941358015863814411101510221307877433827742721563122001586036031525718471686490581064117288982653370204139989815774210897646142538905086691290444300133297814799474035039605635601507324747940877399003601613432282874624797334366222251537426623565637768575955627685833542499165729448013055933246107921101587292301481812898249126660709298668110869133365422378457521533236791547419553301032945202305043595038900523019881336692874109097561043104209412696173837142700606630512388618286220490552882639492779569695982900582499145220455850292441342785018979565733920528762362285986354421407976756028476991695408482070856362490124343383434909300103661614318903607533914815104020790287191931776008321106889606036229882155425942347295803473993523934153018562915749947243400407562019832364055591873100596177196767563892404230863949889425001302788685772634148770700664395216984332951408620965854008336630619096917710287622369149013920203801030971116709718750381688254815877922144440046687857721359686973731506870145080291862364175585509531366959197396017844687743717495698358848408150264080304905427656613145447619946756190285959054008349332114780313872007435476501467523615834767272487755145484699941482060905167765709359673939072217827575015331145284175628703182512343073948630028143760833576377188594639506050972850421257108352758943563921218029450294822843535867437290195291382219198345962917380476552205750040996630829152163741093914137087243799433089414501413982895849061572068252482826263202597180560111286405224933801750402943839695902115969075721928242236738466674628571804045246062527941848111322836198796798619869930264149262454610885307594330589479948132268763086734045249662691573197193790432506112513277133155812590901059004802556842486232173858700947456603662342860079832676593653272369256068482757133612183059162546622655424852196656235370578792525124250592458007708223305231261241229197897144793737504328083489819035631011201761587122493207393371736257131800873290750587581131161020807082763071482179579007914189789358306862320837012761292849492477720876981682378280190465106215653982947503204984145286761741895245040443019141160297986429047100095971444040836895791689215666115482906560695743354882739430758885259322284172777770825595460377087990023108469369269563522403096993865641622213694167165128394548066517841597749000504649192423960179004783790064013126204018258567660935645897392277995252519718811777764141279236429156232235177537991638378022964316491016234533465335682464928349534713945815867102961793394489405371817324376235859382295232154704970154221886750435894589966610501242994249402101296180706217141726463816789967950017877068474895473136986415068701793886721756190686991279130856025346143603655964720598701443220879892127191228579084417762425646411514379093043260100910303203376668846662773431654590747606593480241554666335041893839943419213268230655431600750639455081200429717391357923708188466329196404727340787704632597178230066484629911143004178385664802045343285211373344907434653021938126428763329019285743930532885949030084687880650348476443217270398181046801823200679045168968812869313585941980694997916503343878823642381161495831302928981048653877496510523328178968802020669751116867821571654752612808714807937645878541819369471706844389752161866289832200072861379038367151681295458764607788365565982388800104621577216989472649717315092986998448876247828524728791134781659450089466585711324534074817296531997932139110452174815268063717691638405775027162536159076187676527558740322568420225345703415409767702013426947913822194759391136015058882595399656117109246502581066605488617797887279207541172634028277212302655131766079554350225472302554814061606559975856482233579409769374490859548185347594833785751206110402476549789526362741579748658740829317490016000337150581292268744523455123432146779571904621900707208376449516756652969011313510939649180042148733501016259478137941207378557086879950821107100881382369421211294112210299024421186451396105068117335836524861285930926790488917043951945680191524382258907353781190143098717665034334076295650867419009181686103404603565221195766996936807787709311687592577792367101356185557793404706354603301765539321050327844871752909550707446467975704713437439465203407225543133608063753337426329102828560731129109007718732794782705531485129099441914684271803946966633428421452839474985150381401950741905076762789949651583375273963350324538438181385235180540924107398966522640398357334916137398395815631472764139736516231028277474835165858255958629848564235220736379138190290909021606469785004555448591163973658438205433972344195247795411416840490022302403115953792171694446358511255402442576020045536571206518829119516733093199573848827576619549796248752249106684623787733637887244171784601215648889495561466508579271634438499335077974615122388768551509443023895084063614519281335188847758155233310124336981662890714644328497839137195616310646581244002829564828509420916470737740934791396561263507202169564884234828939530581117100499522540086386903796029089012882179977977142275932735331686429982406540558743488222830464823457193686381324222522459390639225628279338712507355114188563512282439002402588104288705459715280471806462498184051232926676901798243511196463993626927250043466772088456659372398383415144189011914399571104665163954027486328977675194958400550269624443357033300030814836925403276625299738708497458445719993022777778341688850259141301587795177255268683008796160948033917099117939392585396902945217726924142600730730395025965268893740225981186813668799484807335621694213983724529172216614999481599333721481961077727716069642976174885413217661609610290320742234180570198270479468085022934009002449688677536755184985266595038230456794776891766430779835114866859504799204735811777235351401890760037351041369748281361402095989231406280339643946040206860316040694511276319186189365385619669938028686276378438341838038481521370760519469843202798848710140061945736951321982387246592983802200873246040211870689939493771874956759595512246366123335880156099148013680869552354425574789957986415650671916263973076917488462375978108068962200103323444698122544814488686236290707058280647814168390775305455514998059794360059184278017522495082179609426641438383532377559265602333377811308917618369038774898216173841525902665665326834057077557807120315780500147903222007615371529627736005824707854189354099626457519809836485234522878503553545042923337313635162539085904562939205111856975457175602349058287054635371635003589199852362712245283066103969038346515027392038406007580252727320713819183500180805075730453199220726635051867258814127241936048139431688794235048019958933113160988024115261573746189154542464308291636083984360281993031570102629606634154380667129108416174415088350903456559464778301564957554169948984083176809184610628855316772714694521910996081921388396161495360084348142505944992411597617049118153483037094831784172520961757615251199755098059778670755070284845317029034461431012041670480106876702409477920671664899044012175327805637954604643827791127743365608169746069994387881659265922719576382127741612328350535012469376611385610641452703066417574688125078417131842182513206490919864226256741879287292193628847229678167910079260005320625303465908003432350047868329846805783601681434364308354335048858680010064034862991658582165320428823834288203799678908045415136979032413505713636489106545846555309106147483300332023959546628484086101520869579909841905977240920771931188100236718892499057108643010744737904359848605108747969386446929832087969610793457595863029171392398962088127157694729315021795625716615272389943681827143820105998952428722874256197553056341243907669764969772022325261455356437953886047924961510228097595072995634618090737958045270097914276631490153711746837592581259452846045078647876026201197582340107731972063678178216169163916301150901966155552553783681187235977251055667280119930054665650033382420512014647050450015084591633513434286488874219644305808260412373222797178667314229107766044332204836488955370629604129506856985193277703931889202237020518793658208511101177561341157771247028068421926025950733365595108573924838641757390843313051960562718598385181439412189211770703811094399803208615280826246479804752656821069113332339044665280406721033613669664370812769317556948882253895699924051289896926252805479184722565650084229723866246695754350887834028705515338253458425338257144109793694580653032250189102527521854736325594928903150049171274745794356772259074884692231861751971934515011944527972284376670540763728694414417363991443024945768711942236341946450679373068746543258194777442376005214302876952598127792131002681704468480907052010953640717983679332216006922453254732400792819344829990205465597527922735978815583054945272022479792318718105133005084132077828647240187174373696006686985945989730973971583904945121089616113873736494433010089593511640202182854421061295111710567803162565055128361285515936317198975238147975848433311276551298365166311453124835249003946573476340155815476705750878525661585393336419992286309257247548684667100702025853788080286801303545515387297883453849701154182807238741683841523094322818921767236426388970699978236743909294322916465352683465886813150317463063425588384369968148032764411874329966293834526243703100228080637298642635767758197252179765667292191528364059943424766694583221440418315368185289179525164744983906136981753914013824005191648295285952432873306046589488666603648382639897253870378522292033377807740547210985506354797313725567190833434651920579113914264147641732593121026618130773078804250684791294027514705296483958672213826614943547441479583286321969254193642098611599443585903785155216685311715306138526273872714611033383615569180907361819594902714319637352401904705880448326368618676938852784691255427791611467796332739435976672957294259537553534680518445685857339870934510161545760044444449740219950486537958957208187350123628544049539013582989633206244943870839417244113351112914833492533547642596711660410967016603384564197836457383602938816291995010207116164148289328535892418949311424885511285342372036383411670105069196965219133799483034231868043960455893179152477564695020945795948005048870745567508201303858229999889323597410615021480735556495877255527485382959769168909217823657033337454783092685707617486715921250510136255644743554249319137063351203857286752725902901698435743980255901243117851544090123743479008541547130135332437334632655651985626055332010162523823471414854501309817563996136856694538791096646872822834758743804027804090247280020298235530494288192040925736779397860100533294615814904797052634888380311953676678421669812515066146622521183913332007783021653369929827337024320705421014252015738139881918464258071965423434682511154596563870107410989043350138962041855532759373042759314864236624751851457490444035622355158259359769807918116403863884639144149151349903050973295780604006654886727341675259195821305792543879026600875879665451106737394795675245457066734820799113693477282072045176962470502996006838753449455218263819710272079025729665310446148106518167443773821556703821294212145904587760068892017821824305069946472858132621369426991569987689011635662534611228745831837970273788718395339037083469541860689125861909007226930333283123517565418071346546419962086536435954268346186082957229834780836992108723841320718327443267433120444953170335191517567676466590538036235992365181628826754879785525007957070664841895015502046889966044341768610228601152999882442935202327987769200924865788743953061389097769404458600206270964146883170628304567274140156580006929416834725255493984422471060436196623336485847471393247721145252364040888628727846718088670967131122915149349428223508554672054816569010225199595387223415236024992425778866695922435622571968168577463236781773688131916620607495124736955621548930565939124796814584056003099150932733412685904031610607898152451051309212291859008413090257293640766991026388741274859148971332435160763743325247353499670986565452561430615672490347653909012341752304155893412299482039420545722999448916719423006563512802491936544156848406530656168252651811850587155982344751655404946080638115739106279849311332334518983323781240010657312457987130303172499713001925397604986679610863783087289221796202481265635703982163207022085874604923158830597246296981629754137316929856840063260827556780825904259001480366644218838853674913016861297543478105979087526105878278380247559877579382530972134911235676794093290306873064224545422854805692747464979427386017022558485522537551080116242588145661897525062562516597050965212469974937914101115349120684847069162449088711153637828933543120670873855864641717124606460822547046718842192178436678673838142339256028876919355495393762323987991835605582836671218249611083536679738282878251571638968928167986137945742545251674431682750341901782441861906748144463309934009220859102962338272621183917550612325306426820608020212809540407600433232930967384635756920702418053655328867685800680675400765235335358613754638398074908034851691983298213865558928043949957885953474576745331970162934109663951736110336564415447103553979741370919840575969254093341536109638882916178137740135461632256323511340518406812720788381747529771267272013309494624527707238740593166992391808410903220880014110555789597901077365302716151932364726966019033073026048994500909790080031904850393423264956310756760428279550750367641115840482528863280243712534807271605340573008231483990698017948245131558435569666509256477048961265322622263010497069755713783134510514805461336775474766907817814189330475067441787001923507676479693481145630247339852365403382531588661111606227324144808262808132597183488594657087974417297013824228220868373835290118091738866315617303633968527244734675018231634355420890970648374080274648474656666550574801744550922307791477734336508298067472655088987492979208475695421504632326637329844658133149656896984666941486117320351035068493348610086783113508507268776143769999827059063202824801618419799689016728419695161268741296347437658477987590329619278984230144377407700896022416711371717799252485976409397955173223903598623852689019855424798749883380447123825320639665829549238235801543605436216641275129811945764003728567601861031300116232540179255844618832994883267022167511946409405737497253397386718884755710682070182024888720542433030692135122575616824286729172885694678561569638321705424223548689206611275115071559318765627166262063224295632238446795642759730944250585149198901308372503921878439010723996705393519286450386579683379069898749930600714004964548099702567144586918792810166497390157439151431220200298144123375247784907417006098656695293274344153427930511113081577936665406632683436620728470283988584078485637242201507961002182516506996344889673162656874711821763568245859732730307749431899723295963149383584798752089098620069101819162005479745386220931392791090726608718799595704951365534964662367652606237164545008992138503420153231694099981311796510173912119348874311755831678465443327207443580277010410348986446883469243767631756281252339955558654021153092274602222547563958032745438639795519884673697575719679517692128753330810697896073493196567732777526325895917266386521402104496876568280908937055598031126050566289898637536458547851498628313256702978558319953945394002513746614196416139638453669080711395591827664976296903942359259026555555983930695161029622485499068332927015782314147226302341317358546349312709966441978514960435519854709974056519155000744786175653839524357119838985933717529746487379822442792543668173657716192275492719668712655092492622744873273144218327339548928065552622233714277299599563208545060972416682798838301255912456856288795403355935544560400297126681885396920077239589289813048256956849551371548543592430969950499348517404151282343054051926128556742611499065469002714618809825902318313061032737945897195718593554557262100150505597619072419672687026698885278941500614967830990652702869806129668710970052089602855527440877278113964853424589556684204832080749940010204016860598154873493091757014554693515085466927443825563580109819042384759897816000064889429037047351226408409492839543296712709743197416839025375463688305004030684981219969914267305274020183143267084214259529808271609287992352854570300422184925276681886197878043554797435219124958926524502771048038486154939193303405981627078006331075136875785237395158287794034956360654265688224062740411308243141742844803741818807633094721986018311148130864414186140749745173579126370296189737622623814635739471895732758310825293677483026612691354807420494870627892470863279283584927821018833184684713334049985562886163921144045128626299655632359834371878558622926113281342625237456180095792926709875538697698110199126187058597872301173361131169790919704111199292263398538856452511860542711403309821999682527963668763721282267860013508754075387418192540745398599473473391900039014850708364575640620936371415123152922103894112873148206398125514390265659984316754380743181698925036372995325853279698258104112012070972991630175276715235436029501412408760173183827143435944468234990453835734399358392001448030638623182956812714962846929303579038354000747698053452791669731285681708795157294101819454241461725414747228572060129840137182666677088961134415512939061637977316406229835866894580167645572079288628764000100047819368449520640863775297561674595905450179483360722522785471247427978547004688807679751665587261279799996986556126399092241367666113112488927092710958318682259399073841486603515847226880117046939337704870018276043724732456104598611286802998765836145629722376705572510331236031875535698600128292180886612537850498378217099371026330917862548795498767346622131904710866771557177751473493735662086382256030412663899565671379725786031332733203637330977925996077101337795029922414831207756701476076545194804618634172982905468165785390362231451344034904072612706780810188457321790297552873415161527980000802148807746845182199552986846915302935331355322549610733982985060965833273738653751183635367308493110312234890433613583793663357073053807234442862722428546215856783959267328109504925641310247607133097897366685753923277033540904607041706158984213339000376575931547439024149418252087533685215079285851674868419035526656774112790743713789003342136954694067701126660402768743346293419711643114416724513897031601413406113944269877776592405593576244368733377158303276021517290806143930033520875546529413305145664812345589515979164882123961369642479044627480564632668123997178778906290759602116855411564272257314439946235878648930698175161429226581704789578873311351763555223095294384323396646892014293853882667837634062935197290223633580239778734166959203259475016267582967220332236199923681360567367500167909028310229855504869035331897820120662949057415568055055853333404760612245650635735737009843241355408132252439078042723934773229301764946079864232546424642564964256339387787471397386897532037427735507321367997442677444004317496784079277473649452745420860089279155755492722658170686334285259005465686968138138870874256526777271151721086482492918212272321771968140489068125961507312268981700121448749188755315912505338830637627236781859414183267258360882004658453143927360434099406122316854574291865798199912991785246681171253245215519764952029732771582257503556363626495982448125166502454091414671285290445444980881552779327196164481442073055439598040092317047539543309026499304618739934477841396319568412887996317142550069237557135546817809400567979092256964121513036953928888040394727815565436920933076601354006138712169130919520127529555091280645418093578334851357102813413180451061436319523502890269181789144066672537494151612100018449326239478312807472870824007330957832781379727411695887630857605202952556209199587701158314219492708765506816942654148934618116148209554505346007366661836773377587670700174785995310751866555799672729668138827564681007020250978850349198957073273426235343415321386715225381559345523787194990021431822307069505108601856281787839736307319858812018760960406200947107173274550984560251959299387422010305391207156334582319417262947656922292499004099695169906307772322705505967884890291713542584086117888478271672333116247463081249259329088495137092937358617585195734142755573682758030616212471214849288652098804091103932621446801791135949521461965738280703777109154074209341632674423561595998199687557176663512772910450547998219941604180509136485846814136286982515171320914758641087169931691615925297606194954008827125056815465030570001400028761384234066547518511140400643584131979064608547147972312392897850760928927152764234449064327333667169976714595760746914778213484210522841070405983741906624175726542031626382747413483330724432137562975432209849447945104506646843556499840940563168701077169877607333015041091659378000049868712346001226737645226716732954833119602080430622535042394156839518341051429884469265931776650947714307033782226719377039797233777650808689895766956639189740067797247936487915765638171137196597905298992031192521673442089491628692801201918200210116705341531303196286533534077484823641465620768706666343442268031342508902859140912747750668197862580425455156499423868593237681593018045930884699306280818909685597950260487820486560072565586061192783155491228209572360168885712947145910644416076558629025110330492686398902658352560072897597411355209403436414835077872924329009463877558339556488513038187975760307570600094743111198305946390339138062790822177197677112071574986993810579495274429770062779440716104788778854667519222044625832472975309179791227058104282205194374740206625730622283126280464021001951923250066011438604149156869015193332848819230043631532565760158709630958108267925057451809411132463209279968116051604127859807823615828588120902506985242697035198954046998766601866190534536037605875276723770328893684705763231670921397195276586671454885683487296993465346011180773952279675852789700974971249674880655270784442407225385122398159920515768950067185128276335817890323582396614971265984542525767074692419187675285306869514147969634087038426015441470950888857681819307034489321653627827763593222134215023965772473803062644643591116871859643136056813271083029924897029453778558649709891693213862065683387728412317128252746248906323384583584003980656815779857639819043940197987366671906010686480597564167096554493823722311053046340346397060936887511479243724317326779652097531302994122444140829603059364297284723087768925342112579984235276246467060859749641652316099732406395283941901208681472382962301483705247025549584385193625047168520220919686063901250865447983728050117332918582173676494923679824314032589624784839453543968240778584706801172482513221777422185844566689222850760213054033176702369466026317754847532419175134701455816582362564983972037823557845461457339464106834080433785162306754055088380461616365951386279609830226223713230556871568703237186393281606287540638982672085749758764478933514987874942789062731431744614719345224502071115808722801524864983738772478890271772081651753616198789787513967501257841556089439959361270719203946794198584114638708517132613822853950100820197454998326903120095046435837484050840724871795358795659334581383263911832430356109898107279250534268296815003686308704335091806245088235062045574667866491898957116132593286394887500154262311427387785029605442109026207222535796180683700498599593453438110354985863252718657563262799356160162181333108727496957220930046874474984618655626996694560825105386497626825813432651004982872514618287388234732410227286568834399596751204455925665194830343790419329560293921080570196514304299265436043462758861888178571151750743904090174562015005056192553547309247919511396431483715275387592122076519132482211806364594064234474102584325735920476770882125421189378835469986696917789350846050682085228004963301347066836269656002922790799197103958546839902569080055929715881567863385605872305149359000090901345727316963040913288693837348592130123532346024979520794033197381209592415689392549479192492797197960332518772242723231745270546826549288919682873046812638160933928457415245295032324972760611394096896514185614938623926995221802699071217633112208636716062974458229763418420757754646841787500613952066647379794003868812397261936297247905769028555167172599993644084566314484325288101520495114307869003143639871541939884821882547748977750921366384431584581303191130201483087422565479858340491448750232746140438585649281761184540267015366912135370769887182833675501646762637383457372694672618256429520605050169082247460924799684385338613884541713445000999778740957254337803285498143726461491129118976549781780870355408514726747383265513249863407757276668056602088544336419094417586419668416535208491979445011713266996545295827897728187822851853708122669276575046129283514052986472198951947067698662160480244420553659157944548540173216990958853982730085920629632911967627826294162716762258107839127586078392450599116748604669077573568606180695477349952263784475140231579690116011399341372472532643389873109546564533097246099777005510007971792396792116944254692116843919077588705856001292200317403270258980241680591266209109930391127255804804277795322767739287725463332441813234690279575895423430167607810128434107380007883690421247837978680691835055999835317515578975461010655032273077686961131258355016721953607801478261226436996491971776486246214973898919117207138637838033260706618375890151067216104489568774507060673524090066384052010022607903063498039781448080759269350988923298405710880522667956446210169609331383878027398076412661729133223159907489950191712346619981405636092008340980285043175395950185777004353385179976527106286475051399762445829265959342206094112757897351719886416551659265012053247678941333960010078106815469291064641681048395250717898619970091612485242588076528349349497604604556150833597537561425083366318900671671313655500087607554341743051849067027613219550089157123248271076910291900992755690543621662315383806440703905519754347491308648153885945355691823272334086372677363767807683435911569316420731485074080166724682218795025796901227791770279487393579358177447969083885153739638596374933229695776759181001849686021017516175516971406625015315864573906891412317950189474740122536084608155391773254183095829687797941736830651327703185371751957983940400138785953013650475151012793850254527141359323760814694815470358328767171248376667602197938887333787924134869610397837649375195658928609218359381059092714937825207163256987758399591381470244384182771608566408581580666082419621629219626217875732453343368397093507798242362235230082008908955343425182398327768782586132301934597440703270229996437468328098048593167231918434628811920880563820229923084624926337117434059370086724520893316935548241648048291015428690170047492483892037753731444521390603030698217152470832766636384693466955892484853670047462855193563679703353087497536713855287852160014657698445189507130473493412360849468328333934599162488000236247241434299816571282681706049887505907737861680925231328518570194450701461258906633051804264077419589599911213496884637101838538629668213324466554172176817181764693032810243146308575212768524251982222924819714017720543414207496792262739404722846630482095968767014728324354016756076776440161657545785384797461612863624150577023868310345632640484007571155431874215336292292147458734935567868099096418106191443743266566054481924599475005216038969702135941092256868101230252310058043062263114760799871891021662730067678798770536276600905171851110234907970169151707838535557688069256570976132806536073141460837578660145219708170669576699193721911270916158568159699386267384116414201601631574344763035751657961708343101944028164114692495362733770702886704842722316102609411793435192518554378560642348617819852064969298527840217556192868061002541060650492035792997479678380495618913816463559736726078040724892738084721070929826474683422027131386532168520600102424245842676698619592246505092342902138755659647098837553175675080848294185389465958500362246988140011535256717572255789181441077679718041162769965146881365244502080021591787136402010513746327440893057607980805348341190696867283411407590779102848774984775025289304496561174445015710170319061747321429855025485380926307163027059991027822598577171266375250497385864917344619238108533751002508179452753526609430442553279834591597241176643302797987216176151208863978535774825659107995746263193786717038294224950313089134962422995095874873031170445335313383514518627547624017950703131220735046619301967080316664222012114813619295040125225509513917863525564243667663086802873177933727696200940676868799374977236250152739640650633964469834664704533430607327504713858109257107928656823367876055247586699121160823317067556473095769978252134793873990398712673040566275459191075393562641418404009237801029004252469206467262170436767841209299292552559891487333837263510962881913040622994749483239480727124230532737796851351948815412491901416820252444940827326512197044252116158372062267270680421699102769758153592965535053741349752837368602601214373214807147630707978710200551562168612944543394919895968678995387084554588018600515447076453153574622613750633678847038378026174691583724230494199150790914202579117340622212009733163310565836329744034495088970020237080389072045866215213860706908456890413289383395723759887922894025795317228252086616498265868306325644535570574315231689836513805763785900744427628001535484715547375022398093623108506373734178915907153383930887945715847530329948473610709986219212798813939978184325911576561260339557683821679597123386882797601254091409521356439197419716890780980470763047594842608994187794322401912280910753201933088885378821978980986913732776497919643199140516277865584826948582879476259140295069439469675528593555265124999278015567359752420265476088496493321939859859413020231098299843582546938767221922088162584690168702600769449213775689491039268916891365696590608201961319612044729791437635119275877150070868512157159363811345355375281866970220160659208844217503096927247415920376639872427422799759601827031034470186859230624009093592719385678987852355610310496357515625072395189460649499361448448185981117575236352099566747533620289319036783423497207222143774065574208531942800581787362713982643234743838343785086593930024789121023624358667421843107020836412761391118365663729056776365451255310718283288235059037863592485993108354348669180635903786492769601258847499802554475363412918670033180936717226969470536401646277559996243448825651368583445751985494298434888920649024423835035124260356663470473438457586295870613173630135673620288511400619518472727812353358579967000467585126706627903480723820252354394248244997408017607974001795482880598391900451628879489352748639678162352568438233245106382401084705904078362017095531749449180280318808112368610881378277946926042104112456921761084608335338909689663608376568308612518889251377507553937542662089415773032073321164685171373539155108782214381320685292320079884630171709793882503080567603268451806929990930178189265813666509380733317217270354968501018212595850096306810058579876294703774120452726718287606286794382977386012823978085983613026517134175391116854406810664433161311698264333786157573370815087089397724005900790008383269651970928051195143884749296211959018844020078956765107187706887297483758728975201380082242645910225824052063608728878558197616988644973927232927787764871334023369132083064573550235859776765855780759371789850385006929858433407812441491327143449048298780676034765760576586158415308339294862937991043449319823162499611456104790557641170661813469490335993266909458580707021861366159536864632378808086422577251940699226694506759963592511585342093492816250191441709262979267630721806231959346844903904462489849923034656141690753817489940078317693320914551025474568265034230867406188856824343989674955775153866520230206125311167985508699220277787472015935379504943729346721288461768589475884023621464828961980877822713108851356218053823574861695346848680179737209788788180704469871800861801974058891245816286986168670911506131152334175479753368335471369158075104515187689874418224371252317787622989455585189721529844477692522656549433645885694433355581850042512104650891002384341523157356312581212162378456151535379347330346430988582795057313219830946875164080975210802180790283566777711947397806033195743658617141804738150423744779383403086362870879885281346701017110290490471722529905545042120181299428772195054737304002165813706686760324580098496767388160828094004385497725948787794466321371109687404361714384616569467351018593142459831498125914402173583427114859765357374202308625755477122545975395533748337874686889738452708631141211717928114792722583895261718441979427721210892827737380533856147938002342319637859707607757638640334595008402966013655909367080927158209892492903368304499279737417982116302138242587628314240199512367386268441340361369356737838857480402724023106627789201453380499321915575082218369941937828603596755855425595791044028372499647802188350873139546636707251840319748124158090439929627983701378114344208695806616413115030721882948189986772859708721183793229801417884300717656498312759658137176314034749127865593683350048455264579372694184187720823998569679471243589226332472143480827795631550518495477441613609440800928097385494704228346105761094146957478700548938319191999454531574741294774878773413807268683007687842997353598393729013442490136341692768458526431502010837607743865391692803968899187372971551483336363160124781532350129153616007025732895562684715150563216420299247340955130512850488485807743492356146290670203384002566019762748807322810896868424144954158960021592274594134099294177306755932040173430431883758827622828576094633737275320311159768204315791576175721731967092881544089975357513665562636751901901822967691373386872240881302647361480883195137689010756101144425383093008385333624669514038514836900282164646617049776544859397666813562984799182797640073553340378580154621167221009054211357941992711313402318817767530495563874601532007490396615923498148835115273851504077748654870679395904762283419520874220967128692501530096893802273708018228670856869105070251351270186698969663863178837092104655032930191954274759075169909405964538993406936684966986141880494323574114464083610096233470768298136882079642923663750686925221901060069059959169047156956282315533946170660870820891118615794250542572781096916113900348542603010981625820889142850011264376967327997246167726113296043358687297727800264747614601890377409855843460826034040751221450800230952411301093742105111284448192209187152915165130972152699742610232021326605520875972430886819525687620889772536034140312824846219688007641529507946357401998287030649495540834506275657546007043897045958343636558543902207279886786391224320249241489352786775741746778785393297453527561728951510547055455519323534535967805564528654744027138101866049060277010277311074187662173290783070214544899035450413860076710361371793330117799859428134797049538864509490257157386198919790887146268325190063145626335424030653330405801347239990393055457123237285051476666457711150293924245188126272709997057224824182275055049813267225055055312995344899543243691781190115764422003155513069299583293464067133656593252230124460212186809583527202696527952199571138364430886147904625604230684245565583848962788833002364189584462221012594946051690986156261667978927327374618172455822065761351783516487599225174902801935752910187997402680133151431525171536741185847329477458373212838887622336867596749552226601075947165536012908853450360135376328979758845798278957068810616506698054101121011896940617317551663634468205184644018452658346787262038524156986132649028367964821363877071378645397562359108308507021691483577116687371067872009859591400739801452380437213509878488144894144841019276405241308916057207183512165680484318457143742201926824787330685208719955971770448986667396522083337603344736792923371432030696323285869384244504472854132822246618728477531523519761204417168169737442253559083126886123939601797853171052802016676946787177848700416444287188527141575817361317189562976865081280022235742936675849127239047294719460524253187275999612957186749198321199958182384175848550095946042148878347971198531113720871926853321258738481040845447968162941891035271097774109728100000875151595675550886446984085567300244296086890574645099659946693864870770595049415364415395256260774026850415981408896233138678272581316715949131886861746829053203790281023640448892750334708705410416424142207022735242775098499784489895182222004015285005506872301032395640736958610943090231037779346510136360070245438480093953294610886707709021054638248745995753721493469385761743918070875009254097880664250471884832843039635220091146597836523310225303803658357199945808497340625415496781421798094851881062311662035785106705030288616838932490370939723203970834325707401947808598312592931797555992062414813015988214346056628348020457756830362271692041539904688739782385593605656656036403876713441361101681198444779039541034529854640078264226793129124697727319745221513866387497206413355270490798920808701309784022079649376687602115310442348178119566581583847914092683324217961186550368486867424900333755130407274322768419278949763503245998929271833875063546583389448985370365984263790634696987279254949150155739048225827011741467515042639733460425793462689233059687886167535148649436230789830791978640773945013171572601575301857714287336947362998722294859669180540276805126383068573981918137211064097289420586287376479702243928684938015596099240368533227426210193353419221891960390063612664706882257340763740531203052188848830772310089953915629943084873532227350179161024632676300851882045843991079094269390961177005220088677139165534852358277208602360134628909171540147239359463460249575102311524929855218204060853859419569075781978676005171899619730299843136338192467848082450862742006628495812385506121045862229151178641055137776112485172135173125526939855439570082685216475883815484111588445759277323245050683501624423290678207659039509200675360045035395367376016007405671381940957765498860976631467260159171482177461509913459220677646897298062946108372666440561961719853704505614882847497926340992614579097590269564212203787271653268773231182868693754345471299656067255386262780837283730032855571774081424634585969473782371619819151586887285648782603667867504660950806945234677257384615198556599264142919009499110698182826168528193174238052720562206774269163047399942468812610154654284091123312030936854315420359712144778726959612695915102958044896610192999301030411220498978071162572954750782867335914711239086876974199233923828949556997193271441187747285764128714017058572055368918701008017934535595440739390481233863828705159385378014802314708924688349322171217929768653426663078466676885719182599873136772549676467986020175040057561194755737376181851511631295688016460620985719379273508391827080208329587052448673484669293596020727801274924122528920473871081932254229525393837226850900020553885963202671076569572856775222985013547188660220375934309611398780902384217045181894999662588608810120723893307072874480282349740295148774332568915765661144236729208144363709279436117595886695607038945148359468928281626156980011305005351735652513655091256985448336801518960184176591276045916190384814616408000313228803102533048293458478845758172970667360140567764515680860549284090122901031277185073636559826439488932533173123561614847953086417286320282984575239446966319176331077336619019728151699398415904245338500251429417697587136066577145754102087123219550207271581387617176056040452525068130573614882033280900135091411386404848290692422186331671820766942706026997638803759915396660204478442236939206703068136471688181913120339529770739268045853212067311718488509383904579735091985306107761508742470963033178088692134278681422065615109462931358293212996706757388835851994490702002293154340711883684544708889985083142621183941903865301741349201013134662558039655531954487150099803443182835879701889863233682094786854679080753256369748292522256249801775967897271619548739024267584433982395966919084325219196941479796468620448220678966491652599920412706299419297510798888796575185403686589407801923100549009035572743375190768404193901970870480262732171123991612555974926416230110787604591533733912862817096003618117868579793378869838007439850613712736899026931162673211703039152330239560955665498663158515943042716556983691306447193170298553966345084331947522138148184178242087841467955947144462614497750345892094394622161477599312564454803809155217924113619528502563693805674913184067039650538350750647841518455075691611277904687465112796127291293990266174613097248784139880484564240696270145687361089648802257669103507080123661950438490580248770917594624641834507641119196179524725597493322962961353335382157832066492736713576660093763913181575026984264431835415736832269359719057099706108727096853645970025533495775317486590636577446317651885091079301254401539725861799828605609083359113323093216772230771511219680526810494655912980038080597249715959971135660443162085176012299015175275345040349547461891710996657751654104116792509250701212353608390591414934461778213108611307405818000111747234542708650820270741406593615383467998580505934730404812889357412885394032278072435303549204134737432249365048802587895644688922458446475884537054581368404459924443492289901070126923091058766501559863371058235502840686046290694257708409271592150072242882480505621959635398402024663972406911692057790673897281480072770302906340228891799508153626401535637708786692703762370705493532303528049670993788026130032974965510198556654047423874057851355831716423033592277780440099154609415591403218464054030422190405612665069519038048907736128670258286047264517596139018813750763232154055599295768516013165532489924946707262948179970889268677641574445786099000561904105372840079007892694344242304154062747395098886516812397305755805691796857312857174388158600868713649179547604601805049229798214920008058211493837288396034412495301024909544314047605683261869361070499950439205563457528702536989131941580794875558606957304504033595463202484905197404169574829355262963061466459824807672810715896442476215514831918038803510427598396035624789516758964622651874991874948299459208724706421749073341608750313923249998721191695001274386814128109257153868006048493703293290464409581648224645967288109893674107898542029982782884049624135759352708826272783082622085220972690194618685775329496302951141037503948653924563817564504921091359025689925031387064742881248817751364558677990888832868496729411425512498735237197272621921861467558430120385021151227482225955965590427767921122549457016657462483145959944920183919579786458895079284102881384994620328470475872154570838642049342101667266731597782535080465174805587815419961182704871971578541609268383326561850902045759386439486663442881136238960064209318450223364709765687879737202695524962725910977191928033745887488172057404976380142963937037069497170355803283112590095171274961046689457656609992763410932718379333120108153218762516157786455515297724819568441093230999000026640152782115043428825327073202441176387392818764178426331284804821997141955619082022030066190548988337120552005902239095866737966041467236673173293932431592373004574050806953932679369712029817300985974802976802854893574823522494717906241491180160410894330898611702955410158858922024746273622530496947080693611022547894377802782334618979755550991374306016905718374599389832943285796046113892691111034672765065204629187277107650477859246351882098299469009135572016445210819119686268126002260010489486943395650224114481044739677147212248977691967120767097478903441870344815861158611847940724943546291354329901180192966186051863448281552510727837125480083221907200416928400142217136282521327531175994603777260144747658722529994181374497601762361252588259679828941870424493853794897231495873457595088690320496598806377726002836504988483508832015404821381083540203712054551383385013978962556810229068511562053701188759499045647682398000529870794268713609845040569765775552190611806878816494284553946678873802336251585004111991085312121416692734217576901442139007422332026145601909972420871824249409465061867075616886766777163347018441701779181085222639378838306005190108009888962440070937059690005430403069792019728759760426981051464374169735046840285733184759895329742150029742757914652711837168663485508829617804824973265684949729035991791931669878989146601256555554121112922467908329786930680986519897112638905090945476022673201727855827160282767149670606586821157523187167090905133538158877021207698742886757442629295360859075216358880047118999945241684189369720238449390288572675236275618650454550586897141439560074389164272235714434414449947538763923114539708948065069596972164180618108722867024341085179964750392664364494418783657450224696172616749762189829317613724622011034737220781778566136012511976435714528818739478679082027561894969335233497049974982150060443018549576464731978155176150693843728273273085922748372646159080836635897324979798611951440819875277257287710855610582031271337352869783184391197638181597801679271273943831507983116438903366031794258093202344381592848670321865065619355922120326215470868225167561260781875521711853733084816554095639472303899530278047657837069277629071969918326541883570908861075241979313885404798131646393117255711759698651599008908501665944643102383691239988268059258385060871475892169689367003067893249513615212161316689454247535868552971233731065539837689857484575277896983263303749123633091022675452868740838701287934624495380553993058843257799544662992680564445379899393632969683718095849836925762308267866165329249950214714047999165230750283312872937084887786987618166584170149367703857214054348119146966975946377746125539438037405590569780149270115973281622582091155708068542594972110333324172684656911747762058524432699978515262090278598200851345876551397723513230701225489812208823666873297882412414932706232174348979812433641219547902121683049016452620433619662305359050858481688567971047505672523805862037818077132722726808983897553896732577062282614532376703813843925759584281397543719195046189557474191001882574482167499819520977453380272057018613505973072174223221086678873516943917916821026266233061284944355665092642552494616353189036451795110172797144451546334597848305822979340383299404553329780943241152433404159493944358951441822331819733721558106003328926389282960505356735661720404152689487647622284442314051505032616121187518894551552058445231823178000208755019585277215593714247728851795135685263711174226078528890984752798701664118856813694442774870816288100673476579111190978844995050498668745552277917725194271857782180635957853029701463533081872812027140583453129922240242449887983700343641870198327866427536069787233914921088077620976985708436607352361308270834713115303014177370582720025420999401944083876070577900992398045336117084904815821960557392052750239094100786355384886860333832277341975762947687251882678965829769756332737577051159787939281878405468045493822887437545204145367146705831259436314076791139537658759210010610375438773849619274395218766674229033260339161977298210230651497409607912396029745462410393992317136146044231178082072702138288275573412640872014895886725431115691955289597909282494658205154411024344053331092412341792041295496250319501348601324448791758459987624138197196063285446446852874800829452150847126148382352657313008265451641901504211393162311704952672249976682748356865754769140336872614650213878779485503992047304130168743075563087241698146296810104867575360924061601574083802634256371154298274762334223560125252105732876557307241532743573275663982168735089158331990216560993246164178914747778217504707781104613505031140182432884831612095744821593097324552629845755042080144631403411760721055867108475576245500328541591814577595699757796129251793952434474870514872085780580598681697223402328790913195999793440321171140394967983360388292665299055590851625568409384423571706503546429210366777788257245803635336376260558004601208013649115233489391051799066500514355887609573928778604257100548899437904655456659140795740661599832340372052985588965617675430862025374597028135763172225706563873328534643428989630051897656228546555294988632168499636028126530570320399577902185874293735219623190140028817697886210217374866107554867887425726190789543871576923045188684904367773906367924836830172004979791343118320704376638442314371716237969845459448715693248206416471938242297643425471528012897404980761965505201194358257720958631076736947294928142704817601880834134210364966397408703023831461985586065326783404541395055411465812593675002121123579628456843649608563715719413329417638612153029040755820661096371952525731726988382557519930893896531749674115282806316522742573161528904700556709306260136015985513250821928891504257720806019078713651533695856052739995284779586657154507615156575794433801826218287245153861737633004972774487509219227224613202225601842220899399253192871123957395258110617626940715091400978005276610449458117348538776702151623833527463271823670563707835775972822985244814085606904910645281708787597820756095118908574538954535414457284450277208866831813978058786199409793649045183534169624920385935489298278712037510059433435175271358298485957882102305184389143741426625251580645892879351129528349841263608856319208500316329485614623224903413713227742490255651293092180658262857878401716332102621615964360794681269213420276755271536151329481954774723846061248212904614643705810646530998157717180865359437204750340174155969036796162883092888409955934792360284638592947646378468497847718754544070794871715640805866249509878482324184268091672415359081710842972221928195021699391817952013328580697565321461583525715203060273891184440993756665156867566857285882312970782341973600545617354908390500788536019914662781954270327763067770940727605447763411102589918151838727952189805292382405167444243492525894753297310302376436427845243494561494364525788068441213569938410392017825419233194818529295645285587771024229859950119836915452652088266471424032724697750145889483722213675100690485924989843901299291298647046446034488164728275214314230938600099470518042925288120848571100547620590041711519972060539866843509688445078297541677029500326566265666930534604980828449106544528182677994700788843997456441667063730374544534431479750666465229569931944677806804252352702525238888737087344353887184458969514721234019723016458763485635490294826828857739560566689094689687337573474058789383595208450521446909826422374996582350990011632328333620477569975035631285551672835737784917142985615761299191338711029905355450287507330775695015108203988581605836647293610122699303858739136224004245905538212253279041980577220527582454259183487217148635860031610001473718885117210695143229181830743308031106718238744647046657905047342932310599246805337851557392449199619887912002278790688316653019144519270926005595815314258216205726866749644779117935829328831972600524017884029050900591742685531491403359239090821436218942805725942923882365583441967386456462316572942778556875152574910610057077010596130607327284549141648662882263894584469994192024081962000109332727579890798620381978878461538076352017332788942506533913353041185306616208405149511125429035723939763993079612034402862621942330026309066220808524687251406684686275606216896553509908207409573472922271757377709756233662133755310218545863034023616055910371155311311852394662038439801042280923990794533718418520743276241032340001926578253120602923601893159803944196259989330099622354962218448333002875375620571057725264195352771589698959991616512118948147931880678526199987836861324295205152295904611011589884538853413344880547516637071030998328141615001408685010386657310801978878789523908771896794472130376725825647680444424710600505725654934181963244982598626543457100049392175780447485674475038036341492475683477068826202650195011577888854044618697174826614442396874527593104620272690135055185522187334005094023037488802404564375195183429782462944103911957148124917277858251055726498994498218676152781822303319678174711298369465814047875479805535274143580496419549823706380450402391404919231575293932411063002331678530083854807560509954840088085985532602397756107379569113089607657518108202253762815823047704096210293819464514466850266917162962791724784482108802430882757438806759270998757497665944383325963134034019907264501663716142064486177226930068286524030411150829566471240785577748596651628457618990246823645472089680959210022816897341624627792799931275551364938483031913943153388514122346365907496804188307459144817466857581641340744490503145441407942870121553036384664297203513698556030285862634610340335949326399462694606044232927489896074256259296532073252110376497544904620757422598754837013082463826756569421670685422923583445455539946544222624299359727337725939018861279226509833509684051405390433013768817407664893256531314556148158848642607134948842030472523858456320645444451265421482055464032787767066626476249982156344553003908899517513825875346558539925670289637723701816361475957635063421375960528541559562148308007064863409964419661305828119965517521482397642817001092355546234428801111110251203954545306765097138561271258543277771041219139309834294831343872531119517427591987017070405125713569507119022645648698141351449456032050051034029054749823365481474453830100487185725016917734705955491665359369775635169167195186947056086116024263558921930695928403204731219670675001150284385534942084621951580646546722891702042669586438794532799474554074056953689633040144736331417776111900752974637164752263754760324196757007954595762478616020997050479517752259803951413644668880504603372386659049022892386244014137931849863887870181378736628042093571118621332199531276746445557580468213427440685483443834371247737089155586657335960038104007465912083787546950400391253508389456104036583653871766961642950850314645037040939382680440900583544090363915229733113204274969813426861902581086024912374502621426570155424405335366192813265188111840869285011380585628029788242603309629165882232909890554551496159411423433547470605741683593011220773718931722653070409005868774741869403005085906632404345758497410028290324339954061275076026905393226784506676341248464328661379085878151450411909490649037803846358586518384105341204600727736979340396276007148519342016071422874654976963879657845030530956911366392708753155393010639927787248168140361811297368244575658673726635289457744830931800928603328322952917287524147133355915315898774028960437486071923710192080873859631325885505691478909511457262608185889285158160646914948977070464752478015563899981679869765022130525843390299176079251272887674465173900890807798948008466107651754290810903188799650066635572892956469886988979697858536181310724542490314386474970563342670521091137515864346515745921047222543671194192278546054621462792568630882757562326188104453746871215956192444456719625533763958035865804024230532441498061477434433565861875679936541022032211202123374565017788344216628757043583344217084175282127435879827477376208036139980764319856331888787924874167596427300907618164062109523709667185236770969793330929355152318645709502791395174590664223667986228566140445777274047869714983692625085207631484110535471217699163151259462093909834281297924871636828988098397475295858492443667856654376577243382069177808437185468580747649598897172059854480959001255368599217490140595348803082737164278321857052495216251794759106115544401964047108263058205018750302461017754141658558484939449508766767487843101928569771719792279572272871989612272196277984183350476337201682083804123066848739259788206619925377724311796350540373039875990349396526144405944757562544388093971280071753065096805105892528067288446373912198975691938601457131115947664277662769173107786103211095095945192684930968987525275929629210534569558623054880650383047408252660428138305147702370742239037783507628326807356096324890764357898071269225206411207208034895189555240803175476519300643986778721747703466580035873059730037568784005198650592671176148901253224938041727777379934230161838885610620064145950860007270901074157173777779513441630142018339473118757977971468805109842312993223622770265969793445631941752890041749993675482657402780407040018387825486038485059998620049560219442816438902998940161626988736922266929664974524716371066648232082809381197337195723097317689959408950021661363018205174004314184414320054169447812570739917507074216618394767512708347607831822656974886596129196426328324296222792851585187638662689718503432659475729189747135832831579871939073597805050677234351180735054229349503779352025716046979400972071034063548998661765672415156349375129570047725567149812762234474018325790870473595134702030572212910587390761086794391395052382688576634132316930711688487152792725353521172927512874250258200372901502555903819605561667621901663697320754949636430849284851396796399702932965067662723356584492048012083753559619267796876790464889662234827736114453244661898947428857350410629589346873846432950644755796835792526953444081206754367763219877442613509409483907715035385901301699527078115265969056304224434870355466939296796456460829121629087938791759351145070958148163600919126543680005419394137498041006402515013192698119440810739701374710027361486864036526631843491773108610051265634919919094953691123011635233297874183748508744006412587840905851895109021189104854007763240308894333188348542387295282792541541008880089095533407658563742109089031120035675081455744576891996148706820542536759616676399607654185891955454382704438590123194529647442509907765571944579444575929941585758574991426401641325558762210980393844106607754550457806318117544835946788508709284556389164597751699793368640241674259440854884026961790540352995545202378390063981066924962012414131265867785366055895937236907074084066777696843231735616066715275019449115197513528588929465606258321511999331554786917633771068736184128348515584466055244318666578639997055461845112703429016188136076456083463850820738188400993900420729945374358864845654194962185677541672031256750097955694052934418379150294000110231305351941197031218381115528966385611498220664441821339501022478380626999890139948187035723695419541252064864654431946643105167717030681423442211026763768932557358832697355446456521697548904888691027855964548458200414161918704171837419042291177066914109189819712614771582039880821761074184193411137380663228988209566010012358065448345505155411885800774509587576611599471348708722640517284763052844683045022832862258182551619429658277702804900082304218666736647769253840471329737658520798771780311821648274458621810046479394150013288300771134827275168823385943743755046998013265453889505984632360904828734160571744585846074590471805823330406001475028438173341783233842901149613363474814697458011426123135344267717938968346586623453547302000836217744872379951101355549275753982723850426685000866516278203862603427661071888711087006013590082931410806608395017376781643840769387445475816341970755268825121562527685985296419721594052854915462916029087546275149542622440730326229241931828143522940942098535698605038805770085721613023599003083789995867779498303342038250447588874063203847640685166664894783594712065309016364852667472969016026710174706468095989862686396016057630238030355756498470168280058868764044427164605618106791480949522787122781832365654191759042038917522742045941179021760175278421759506614129782613793929412392871954246561065657291814383794184413786667363616494011850496891324331801654169042229927321331642451257536406109739638714987833915365482672334780238598265341917581543314885407063131044422765206727925100757852292295580185745556442408472748417649196965477512276430360720521676434455042222827577173566728236896699564342548622673157245396833592384551722042620814701454247648800225284376278996000313909635571093868077108511632418937719844979868549794490879629618459133672579826770511744280906988624238589069888826603961479061700168039616453275400045849869265832874055527771866965158882214224503792724975071150028459723852551036283918729202748353266399490120745724919289547051722979797170531456681740573238440580016906182445004829221911418463561714021103084121586994671461436630675337024599328865330964344564709642404292904639999805446851819716795799558348676884146788964403871029282909593800835194224075045549241009890431508323246189124145726071858299489708254432203637867616087412932166145190531294777499991374171094611227211036386429297133064580374864025924364579872749801817958099272663536602096876605210250308982928726910598351923829221082412138602357616626970751206198150797341326794178412764611336165739508657464241071802688410407262344880732710083533227140002400315538145370577232205355938276335572047207445174660749802521961709313311435639162839625041759082393117947624753064538612210020122124708095123822061161756251982561853321368573587294935233069528684901160193225659855738507024050542246544642555113772049231396805486107960916686568764545690760391348739096296953441900568189898679187822068376658725212719934408134093579901834291923574852003410221269592967795038081405652251246069280275080330203365586856409721615470067306148781818356720969527000637645346646973677692664351436195822578437927826525047832507175273695225148399750056783177072941585851399151395763340183010926171571388776304269160611034414069735950482650997948781937374861816207372692072348899189947507892082610626024737542547235651043259229105267268252647774824431945806326935109639356905749503752729532894058571172464294942425576763109842697973528548670265770299822216635246640544464662774295380106605877685056319090933898156411787914440238036102420619084417858186471227101249475927477045833808722518364707361971691256928878815316762517381209812707763478256160184917447941730763143082945247889580937796281334217309193506744014938716128202689533527680552768587849070608443072661952496859196344386136579987541352118226123743903584487606466211955096605966622795481798449322503732317392371414533862387718875489174144049458762942973853927049668813950585423854233227930181696842727136705360957484686410873717077349384558702675258410157405359318081744752966838367846416212305728958620488164522530325474504147325700273229193318127731443727622728515537003823607744891679260331116021419779324522378093112519502336008556823817016065420114492284515988431668529663251601391560585282508241101459204369103917732357079126066581053026828736876317462023111092170300202556461683804030850360689460910750487882443367967003535389597718947306503732975700089114071568238384616232457793454803221304252730837759223126177575697645033846043770412451271800615062902077524534421222910951084515275753353550452755439589838950428697794269371875549306046543140671755942826763077574883808311512909775199632707786851635652330162059582161269515715426735905854425259275864286571229456057822619072915347841485740404471667681175568610745810220780130963650214830730346231199270786270085481246558608814048568194563968657754249631898692002099031435348368825567868112238720927055175397339488820323509173888655247572591384512368690928070660743033693147495298633544523334701325760423768907105401100258390893415404527252841620824658192240233971922865622516884387819365962303653431907884933349873084465746457203897122546365740923305922185669368681364629371456802256235286886528368188378977445748195561770029662374793632138180113383096803638509594371878793015495147373029320021276670129380117706547207506060278207002122116915642157966383515218170569335926320438154377584883446285618926009051639025212624244342629292109390315300348073545540003941870298149140819918589043323533161208858326507086442812376294880877860776338555180983235145543267789530580475790262403658015495893445314399800151428049044179281127865225961079821643538258725340980963779989050301690841105962631226289430597906217516450994578938821709194947886154794976364051196186647645690295401730105429690448228970600581376127937841823333657996379020407117964999700945045853564856268236646918152478179841242043793892801921978914883816165754966025244120561097221855701873800925507120659638325523963062507025217895255077266273683294959512056305350357410195046265698864164292892552999584801827419171039611046659423318034366779319507324986707711950903574019994037285825980541808364913255618646314338858788472697671407084503507212184866098621690119426161102641932605793315752598829760207739708304816679170986176838928013861162310406851419675425401622211087486105720920222542977975839333459897518207187388609653037282934443432201958647713533198127461463022134854216166433420609662617058142636776618474911834369685552311375962474488946933015416681693780569841278401741656986238519318908428534904445140839903960278428932061989660740698170868261000114724665727242215856217356871299807654029945954184988660575901694204937523312438795208370695851895112830910369213100953064032105950058048705764721719805732110026856517373397835092752872724408817497144485019797746250536341638801988460300326349271251274377137713685531088767579676298791153471302506683542411724520772524089609746683665576569037297668566297068207068141761766295030533148031344995935098396060046764799870803086694480222136964399541910668140839914188726628463825694498834769898861926192898925573319055761588402598716781419359460624937024721625359329943462881237727840991975657187039964847798606809730839431697731318525455766531284267956411727542001107702090111257738380940730185938606342597092335443423945015260239419255132442677647316262872446950536254804640406887111559868881126889412854666578286203199098058323786752785149055672285393781318649973398672223270530818673024247015335624952462229770487181599003812442477305148664204264780439541010460195575332930344725040703482000079061614509935498297617597352501157130953838787022881251343382262633251381065394430625936714227310895787379596278866034320377095462129880229309860823185390521417945791425413414954377487645034686400349083931919158028437137717670491320280245917538278471972163300111379953116434129568341939770530715429377218311208596400726291818000862557539447330358986998670343953615796750252039766142803619932678951859832340436055455497535768406619596720866724846967488470916567559369767545787424536037758745333405949497612790034121085282998573557909970618074187015473777748767524401113870096042366580599618870452726708509048271849597492054922791882535516104906150958839276754951240219892882165178710958304219263291622269458641747520314307297928586155437434947086636541723433099167670711448718000574679413730688426984205532167861958997827839410232855243769660817545957683047785702879951737142457024577074374238670853084219594318649550392644856155343590634851353636293616971502672478679468755366850065487849803281612544697759186953460877841401259069716917968022046632744014569205842061329668389577027370710285256036301057330727584726829466195062048540544581038385968019446501544886353878435045588535902040928326058120470843878142728331186823265676174743178003390835430437831881265901858713155049337650347279243706685384593260365810380135735798694897367427469900639901105299620312367925576479433801997271619273934559650065418798733810819611215597843077635988909995434561736852702397778233051347355842299883703591558949847956811899605570495166115299482218163032578150072218252799477974158336825082169782740200985672382131614345874793529985632245828988125390501385879568792687223523305742500329845001907817623850321651359318102813875286538150369148199253421091462392500565621466808593010773253768265642685632015454581435056565632616077127194618073755685098302648825569566352415468925173922590391020955044466723034431763680586591503013237885642635844520178545990245996877391146851781911285310794890155646465165816607449478384595995506443678598229156926528341089029805619378928203483605415362562145694249257185584346218835034502813908682092590736065954963593575910201693141080394659864825102182713554150872793422455940388230144253482777223900581222275552572256122576658718003254016284916878625906598922703086034637737934623464371401563035650109075585130435697128702824678424477929831115806003418707412010818699593950652045729917614954238866487751785466378693281069332207468141202307493745035036380344380178156299892292064381247162777933711389803654980291563871506766293950712166350748557822219303687388049877482600612608364602387127851913576896771658001095861730505960145976558040954070011501667062754255318469807222747232109506701911945036460176575705351859835114300102764094789396494919952638170148600857602409315474871304107516261336252321119138993202743448242170317807465687076907881569832390784612682571011200694491849264440521330741356198396855930591226542999632213181739121520885972402405489205861446128626263721375159021762146171868481216564704075762317714928925439897847210106549971629030136870357396244923743976096515530488863172880380458180154499382778901779137679142874099814477128463340331403822834339402039373019342932207648990364935868339810985048572858925647015567947186772442905054704544932386123489711152077251566555524778905799685590978915848959538903131742439027840666651384509627519955440660996601220894984370411185048140535927987846363024836363104354402686279883204192696308078467613333133027561552760038961059170112201675087923803992238053210121532735948204478919266284821001228660523733409787468398931900685008239618218668897781735817150266406946679682394226399659859866963067774715204531645669383793462937288277639548695235009833105725503340822526337687193161491438247588209921505041390975953786679080801105098618753590303839039304254075783330850248273149221337731822691854149418251297631979068516870423551410339139471390559492777940790618002206256205771323938840979468523578455115263458869878897440491713551585330868126400508486459142863392125754974507329775572484419773421205577967702006162799813900643857520777963657431381797827943138763633897422358047772371434908653720679463885140392311562692177739563334644285434792859632142046042500007337769923537437598900692289304710756773967448324739640219950173166090296600997206197698956030105390576590655280674596797765984237519063409962086469277909634932829421948997682413035712138911557057101186354724435076128595048733490877779166732487066037968961015132087255542911310282506003181645073980264085601677762055798552872005898314446736098872975369981502418888615027955920499070724192953518573595565585934411992484812435367933272921401946217442602991047167369458172785247317657363975698331590149569001269234929619670972685881269835294055081637878656082405917732914451629017596409524662530357850107144578460477341342359952534082475440527379868249125587041808780244071562230867100612594288022445126406187674557763116445769405931569703147232561393007071050184555106230873596957943488887902194876363454051012233029435269089778792453888265616860921375896608593138154776616777589004802863471780217778107932611499008274102948669987251944116694594291084914784454956575471420318151063269935972478756686030897975367729988908218103453188305690649411997000690440284288753099880197096800341528615423517644214528579189319884824146228705402690882114951571731918675559451789068691766821761048719328863862451745558019914619962183833696862019896385288296185437872683659749253867013309653686186559299098203187222442090313028449995422854220351342340451698763760926575621972220304027142159609611551660218817056904072078419825157420178517065952520683039025532101140164201514308350682944919592527138004284433200716341379449238249071621204532493000305351773006254462985757964824071340683695439433426834525483527459177134767128247209084014375782933820752616366251073718149074272487022267774647996759717436881748152170668768761878472778767755621420492854124241375657790674015423321367959378622534376086796645910325436957699094319585749799768060577525674138848622450986236199584749904956241595843628475522112411286204652989177471237528761072305753090336217613212111219205617177720755137914525961321505059767462662985345619756173599472684828783293739129638533377183999775364347790074133771692754593276943185646811790733700208661153918216072527128038534839366339186784215356890725863329806322548066172864069384532890322228277940925991965525980380310211185288921389209803168099500615126165380548688506112056235724654265118118644388487611648055050963171728351580178448161079316922981010167266691054756021185327790733993413422714057209202595972074599024033408907024541733682649728170847263551318866220788686391203517429237181995002990331488710943550744112960098844630170494054516431116902663473056522085401991428478424359450986866678577707109657829142757748110231640484388152451985210521711528320938940926063480596681251865500013362442564661476040576354812085847791232121316022051884350260521732616531470975035845260964158978629068952557512543935317549546239288174201727803860453070022964133900212660373920897833464821016736835330766490899883613004629963124675990804569745532137405531540689383742782820225451731900549029781488553904802943091879804029420971731911004596001150426342939538230118921406104338176634806449557205534418902300796580259006006409932640008237148407971898621696132007031241806865508786041213441949966366439847178297779599348674758577775770029130365262375119628718869862482130514939469580431877373154591594145436755125946231974991820178516905913114747104716985641600149080203404239719725457404049408781002526615723504730385007979132292854482483827169162582942377561172865389505576760730905454736614877871592396025670988089221880627596548093482227454807670847535560751599183655318023176775310135225546013114233831203660491076273396041807965644858305713438409340598999656249215132238424129741067603625880719536916967785556283128042347577356171013915727449287742319566771739396345962455413286442539215024763827972861243574725243551303102864136025632568161869736429581249459741903351395244796511657112902243979820323343259582009945259520907865121812060864066749230409774528333885449073964543476507201882301700405594925019406913809792303353090746830574495690551886559591936361153105751396489710804791472932772331650618982212771476190869052777161480528722885317624495376109078324377901218858255633776398056931199372428128437176149900901803894678272863367855902063518769018319703449327975428739603957484020401831682979533186228100556699798331708273500234790239865199634550344991139488580205147112467851734817676161438270117868018192645143709360289008766302075089092040688286464429960367586549445177177135792913814438841141170703305804781279959533596957386438421103621905142104554427815471658018365650529191134787422870346284688511224291709615252699802700840972928730262579730884175198289774557994582661616170523109940770781864021349572208715720947832144750450460301111986089144424128027764176559157077105966807537895561627642345989339179034231680076898898609742669144120868737386334246637768341101314528163287547343126104906230578287546536279529319761450430114405215934620155109875795982270415932701630678758041054676817696411140350529300650840118900131646092111585118962069673714895977557868814217687820230275403358528307897117825949498877660948365187412233405052808473394993361596408908687477934293869723801982550118002707295307715148451959350699440779788482411967290466006772873853192558690729477708614974974151341964794253672340113411332507192663278675559417579682239482326601776573311996258659233007198290513753365482260273841398630429411400564505938554482633639236732901478979132360224064767256528013795289443421049794684370482147317486106085496367781736719210459300105301921515829863231423395891412702722151702029660284009959364578081844119892875422003376257801952883996544964239688854528979448294398200600761588738705593020485073038226731443341694181393450145353625902794006520939853101824358663684660230209848785852164732436000345357499864268167919367358276166871111342417019851529112881146942483724662535277093365826005593077703876757467080955847560662335653903340415882779975511089010385730245561700729573973333006525278823960302701238257165826782201886636363993877559265979134261738222630945619609327559271855123531151904784322502862762353088488192421631884602056861607282240941787685457964351240870699824026591502430691541557801076425974142292455220696244802257376257072853645952602187965818397738654387445658897688194631406731252130738720996982834557059540530673636721441176269704229566326913005881981005872753886544730256436949123630015225105962957669238518308094965488474072072336693772799166507784321691058031129750807840860653375748341779880569352826402151051908563404984029225135053590508815298780156381883002613525785892371333936793336900085241096080315622203768934402837567678285316689705589544251496438370264093822343838446910225710135129657412503811788320101001688974040846552564634172860112837984812390363048610731471117586472846303018593533170592826350989547970290988173756644981243554960548766167322923102503757149215323049938650643021843588496716159140026650867847084049290550052426960762749636906870664152489244460072788944711078334175344357604299276088583315526415772517091117504422589126369276357740700112792859421851813841773588869897540253717930831423797919228534682710072735878959269518159511257479971569861674694958005614070237319865130510896107504343271398295644515922486870191138391278458373945996710501488690181268461558729179624560478595384996018390113982240168395145950505011774807482506913941011919247156161273217840949267079450308917906154959469850336365451464000590914039415264097993400215080678243049825105575199716346810576570764914227274031503152328804959171100765881342816467386646212986814832570172202222240367878781613693501431542970990720344735210288848195774298391781445295649829344796236278907227898436563319217173336203489829550101081795097937532798531565017232526184530892916656083915607226007398263047132973574776803862548901152593114951340024017435794779729980121033923000043279498025792138740038762346120581657261524730776717900513949589009011572521059304249215503864096299066769813887300116840721911241609977578120770653133587859914728882807950106696237414358525920347052649046019605293186149816848887697111150591618582969864987239530469156572958827759493670847483638473745740356559104334700383621076730475762541610872168336039263650871963939710980506657283785556262807982070173763369781038291513090761556078926919022162733392650054577456414091130552466193927815164349402472500399875451172592097955184679085447713659771728472812642507462687279327140030703704531276735993817460243564064947231338670469993165036321180172577662748163740974537549174668543788723176972246052326316909138964041758070720257761789886794174271238571968001676614671036852454678975255730407705078242544011948120697644085750331294547091887487750692420047489712779882915014942479442846827331417133194385587541216962581430107512967614789791840532861195620712336692486383685709805415249267169943063607021657429794987344529626291133232292941384246372361968987100162405507570032125919816624467557106829544202840060023995646645926583112555356948273721695294683033065538722782668116908538982869413209968089114232840493176183353994235973619025053409281092193590871264126355682087178372342468479129419062962083456723703052992990015621081400495819896173729624608454548317116742870535487893370316643851909109234494678452886368331601332809052677418678008100858475003852208377764321601862306055944548540264727492278298626883862491371183859383943804238044543339009488106958561032363226686828542451138824891938328618619473853559947999465603752626391407109852349278973315572676587863189090750613171948899793136133563976064872872448313660878153632001332543043741874041523733216614150483685386480363776165252835427557143140957215401684799406399488870226087934166494961455772892113025095027620530773805053737160355233850933193808209296021629523497059070689678615492882675396818772101037387901752264592822190002938126142935249025675908687159427529306762341747556604063429104481723042212626967766087151957974658313817682433819230372656367564642614880355159510452528537288424025010409639127269563422492716722617722064870563734035026643102815389630871520609346161840693114697832235844952496124432097594882321532999959976471652828729185647398742078664198111406638255684070463828935069136258800563639186908982551101451794835764552671756402757544238205593245546470379722359951696631728742716558628781807879103365027733107698744561977700316907345688098949529584787667279302482240721954560996934054073365042801994126711352189444324015303820355601995889715204503126874669649072391346213641924086245064361688703280489441671505117449229273602736418621186295769191450330795182090330922048657923329183021973360758406020585865357833699735583964317315910420382305215219426524111320119603750203393048499182548259264740440542459157079409427775742108003159477577949484595953664815879559119465518964612043470290489439637336357814382117561478817596284542609253413886825506627721415775011038736057933616377322166456078917040025527082445257821155161603329269610270431825582661185452397190218836099608324581211850081017164567196414376950564077306382052302658170990833454725755097025881538212949276666593504177449132121406070946359966792109376721709796546029550920497006497468911813976622749417224897279308630673421920951787057060902025200921313977154226253689004026711647517606517931242286850477039608146428427007552155455642365013284208424528786756899976415472748050762467315367868692016182695664288711355931916709729171263065071674916282874040145321439783057896548093852076446960753233853854780468520969815325740723088019467623060404344258703771836668281945448783850153307393787779259447973315955503680460216651672421636579700252577859525359885405753002534989589429049053872988417186507518515559879134223261896051061949106994539025930944207389227108259118866503317547702976347707522726835357454707244367847914333703377229388158148753359990853386230789596208563570125497331802620802763595030015454034176151072440123496871422275108989277738883820621074935659356739166972101569943883520109616545212963377325402137352153086860415790124819985913824847240802195798591215476692564177490609909200586541647633131461415885126653948188084029310613153781979561495656772825713436812715257105216876776247730707389749524227787693036565121307610062180187121281144659173466550831767575989300465910735723447067516202614720555661965913275747869516391373702533932772160757561518952596087418536646635405703956063405456770967241556146559982221305865846903764496949370467834334266625181963920445254420675640362603078185946201632508182888804923974593567182126263102849915931692101858198357283956715399672377716412059089336682920065939982942176471525836220969799993247776772880975382552615645420833133880249367428877444084208792017770533354723067287605317580333100892928791470676027004555072912337612960515687102754784480296604659143574428493688012083573291928839404713862286098132016056054957699501794224209565714487650330521726849025597494966254712879246133749511984900497886692132198171529974547081053971369740844208732338425834164718949663096392052564053538566098196271654138971450410566162277706896015344533806850981963118952456616513423545689092643381389456359080236128395106678506727082578267769573604447704113163883149330927932398857601704748060069010847102355782528058958498304145523661578771751109987739277978633269539957706623552776340401148195891455754280949597576291630109165830504689939426398212558868218423595351096468575812271949370298358677135674942676884629868702956193155718614170210608308546611329286961709087217807896516696941864401769199607691507467293315311168501693357768070605301946168030522361433756978980885634558258934391792848315124326483552011646443110323995677833616862691574869433180438177629068293177792082628926533480128255529321245856870290586989603583238526911251699165373252393653050914813702955715057008191340508933187153738615231622167417549836976740058717478092370847138518518756493287178965224480591832458931780382388984376956521793274853335891676609348138082455720404951846232304110191147847090199229944547575302706097525694589245618862557111260054654381633189368427763980774959422914572643383241262900047569359042589139024375212505373084897545952368535615250693105742093465472919752096819245827054326545071959008884917867724498212685217309313646903605538515240558929089911599137433922586260477104947396607270212067416572150772487025771806512981076762169024842525882300285685864248157352813550369564458517964871711241451350727231095953946682572921655428788708868884133882636401236095929135693435290991116379635743252426215931262606532843056242153904182931197841911692420274043492799354483885752085742242539628685390674172991102914755509479349068886900490526297908599036405319429881030892445425573599693690737985948508220224692626092839807807563252799549263984488538340023356186872852679744114080880379050398136570795473464827069708019050389718293264950306178319144633691785549981192752279971357338932501061079979126631721037400608032481106256319098100081413273832874272372485525448511039770970267253679758582907223087710677234492731827023220844032270266241755331439526722580899153921868234169723494561292098282655952245292339136408193591675318256904026816601806488689304894022124144816689615435360396450484554642506235396548747134290771355215413753564717493239933294991889963134095823583688110650811609647388255376352813868892013417733856992483675344885723077558424400231533614287079927934736829681491232303119987097237562868358702192911670119102999496614614142696653565459211115648045889267772820810682280830547640006773356946445617654257058000721378669491999623208009100888691514782534002096866034898388380007659768751099783700459629795455825940762330065092288330014616271072508052268459603103278808883229860459428047363053405464598492263059569287229140769345150593795606697868367520021055909272981733829325050604857679858697773322426528766813478141740912261433021178432961330851994516990590207434194343075021237507682335092386271630939701411000698387901077449359603316226571919262721667840253490433784888922882171707598898818584651337212458172976520790592190077494818358507733282354593094491534614887168558465626155562704876913985985702888998230294148715616383491762264456738289499253347778651852937622401022272283371370653897347032464535411214965152753143670575285938136733119972764994823018864816162286282470840261233838065226505986923286949869809499861404029695430902082648612503881388140462233426793599961810082817981803947003033102387242881267309133132401603492524029587931598159045280329599812072647410915796699016669859592457573351133069204129721617737166830724376822987621622332816431401124126564781507999148145170768701398990476970880065501577952134941691823591758509083061548978338587805963959489567315866379351855846256253897026390612772116969093052228829112073083209208201984045219376815565696792525397976276366018519227212752999071570634763194690628967946793058435669708689827989402701712764070592816849683643787219329215842926021829473500026847830335508110546788190631370080523120827534037598556026733809137062973866890015162342391005637903146544105270025076806990473767116720764556785194593759218300993031235045489950037346991095969121234107196232965407802490946201468765760207824383311743946178324712904916688010856423808161804963897788561199482466713660307183955193767951600309179585908232191508531079488542765142782982846005942964097112268684433133216450241586458928749183708643392140178562504025406572836159910305840816767335679060389151424509696712542370070694128260572448668226545773038773383978277320025762828542429565683935820250748040825881127026231753269046241290257855768784772436976075075031764021659383677205596714030914309267693759932162536922630793668345541193075386929064629240022191551410721445406584268959896041036781538388889605293793059832081321563514879969211620934557199269769960917975390529958641180239707463541003295586010041597226814078493573125317737805787098578860385191337861836516651999421465009401947331055121547219683129219654704896492567324030236922341262713951070842712664381867948093005837464606731563426796231085907724674176060272277752264497222259260718374876895752230564808159501228648459277576553514921479989202796057433201877556177497400157812232931814810898540124147192666262714946522828938069490584499694724401189312107117269309972612886894419550626276126396346459087807118042891238100425949694322322338187528496634620209228917690553574793456024140996760159852070286062093200913110697775839779250425921904603311387460288809691090901006472019425411687852811808486633526130491447812514276756600511488726024919960742876541644349083226567360878467591207222916655694999122261636111683500273602899292621582138056582621358056997403646456622391125216855351879399332992520164491865288291442180392981682327209484490431364082170871304275164840388014610621575836181728598598011426056107501649538900583426107901962215345779350800861915856202631922007061335479386159700928694676581936948716938558320511629937546872526063748234976224672851274944177185779436025936536052083823335128272937512286725620447366374620992945774472907175579926219610148330288549537267535488527968424102732516161175665578104232817929171393648070931952271770878532296648770840337158725002370359130731948649860307352586230722304932814743817905876248486225061643351877805747046448365629224382308908222965683803909511067509068430653927825259861241779538702954073802224506339780330210290773881487289441754971831099001826124583933607141523842087345742661430144220552993695359507230941302739915303995784613314692138821309080974486474399483541950848588477012632081822547654168738815024698575372505642339555203752545713956599067327305604406982742821001174200531553031350072867544098223127859220183963009443559129127350948852894424186217909599964706042237680552612118750775850412304405764003221274135645307762251261077352977810335691239518868166248549144163377547796613443237651618880478054903795310554471704469398876953753526932891244345654316627571944843480413233592112907510193978117398198543991771854033996066051883326731509238536285148521330918935097416212731523729476789607051199997723410199669589935441715376165163550419226611796942274085629742735752042711027254171902150176879357902995967612918729034498548526659682840181229507573395153459122042287148266045391543083544745335806222493053461220910580818083530826383887484014181942093149416377228205304852774172484677050537760086396645282221707240127822415498077290174396540466042640903661233779940724076596308534231553370800234562998796133016304178873479753331760666334679047647018422068746416614100274791553566219528301905369740834557415095456020943720210466336948929838106435789553170551205802484617738839279692983887678642594098667408176135211938971780813997859461099359669289509030161538872816500296816552429906659063210691748144384943392675738298810419510022891900657282764329106491337221575321107610191980147120339388539657736708629615597123160446563031733370631994732965673301664889006851870981364186032331910446267273431104574341952231429394522675833771640812516784422079879427802101164819243178521291483479384812838283344468521475983801295722791486820610646478653748499255900088527413299626352091311193918479948217039137623495954915515009903824953493872576597688577226279817247736766359384960678880373352902972648903531514423513862719961125020548150444509791953504557164491384389414976944401946584976476741613517562903796600761585014356152483106881628518224865190272140893507917737984341964338127037112182120970614441746218861758022005119717928154397063515658254442277251158875947493065394803095878933958122795663500519747351248685709933190751693147478518417900524140531460288259483751930615902353154649410237840777300266323806868972681920125972041453723186574047171102940715444372950136865343912477644428657830342631018122327955193296209931865530076256291160585509190402531849447957400066357214890212788239059359530514045880878473194820530171749662678508128860235602872575026258002118967423107617296174208958271811067596500438638831565616198344870781057746256544072126303143278213568493646863251732568006900113069304999238710286038203736130783469859421442191118484177016579250011433176357586798855761255957387609141140761289744360493261723103783844844684455466428414627097387143344850242424701259100473321637059644737222029610504030530940790843897506039439967172206415711198814262619992454077515607174986326859267545585477606770735908187561749476860893164772174264122831105403916147145762326417339734561653006335952127519195125505656443984785406966136573832621189501148580749518045704291454770837567588725087695836350433105598144382718267465191325853533033590900073363282977562918322732593799040965761599504009642628709531593355595072503443345553766682766691684482403434715989426680623289172073768624862230731901973921430454638255556497810396753473324543187686552398762967644161531660518911080135196821498319562423999941936357958895717716929782079935697134707010262478499603024851980943897927499674429805307828088065627250340280344487448137741174315638413644295288523112774144658566990035872150569045833488793161518831802009023601287797893620924285928604331826006161124240938419220633022544852987972438089213958299162382441180204305163559961940935917516899819049790030500199373614381041086167245506579012820324907234979440630442209261838928482558316128076563374554185671819951150241669776915904912566959346887547607455258390393196109362718749946131475710252879077572620812123752530982286792118025275427694537359122617983054173034317427621773685157931195022364541422669098644003788324071526025333825324698892099320466711531784685051935482462621663657049022149103484069868276610761030484939369841245591094970090368017957388249914293203904752836540239331727963811734837242717642497601038556261391687862784767329934083997749201574094254627504218358028387346737933358907565045608429517741960104419687130018724490736317621104739286212094878045835577313044472487807536751547457048387863714841835347268491434827491504544510042347218223145566910068653483555696212739348210440896913949488874493840406421514206730775632513583517029574127363352585396957504343324045914539937178609994498192292625945666019300884541586878687727032733726119509238689432992877692841312804457983203010902412674747303659282211324405980337585130489551747216837514902020681753423988591408801514962100931268324985962089310125896330159124677072530230572500928986404225379593617315770873176063979394424803448093660736536731350288187186763539753107606023245268547259994270444509993758148316377847286491490968321058645185469837452924079130496888788951395932332490910548356000348818774655389971690817218366408908144303281457429970912643608344497949420758415699904448733819795652180574572231896813712351588512317965690515089854471960174905333784266361934178653764658345070144550753937081759651717731151113618653968170857784591911048876933138691477382378615603919116088175762670409733259898303566761627099113247784965071345420117324639359167877272841231077974766803695456920986442009995346414861246769691420194879410618336209651428317472415717761062807287676397303983615375662676619661066966512753409565871848752306586921076623377929315826542028098795083882953524156149636788464706755172131679013549283759302460656638577860098988815180701321573833648662691361133642092331848849892211328539504925474805311119315423470648484072272035129915693456120197200240223943416869959041451645695379353968550117596892582440080061281687235016754616701131290963344265777391143966228481570855009558322939010313445177392472668865067727002308084453011503941040904901077765370050917912423288276962175893957114407261380829088411583609501676199266356605906546932541852308108865698139608960988720256659725442650904595904713183754620115045865098163172920812262665419511610920637004047708925308682571395324608070486140569469053993378895524655912552513924080746451099989853039171103025289353965060100428802553739634348793562554704368723532924130473173153853082907398170392242933310577750888372757015419689237388481051145579631739969152603023200247692408253426994083951635190266654386357646926476840991111122571320812878961555792608893031392305936224008547476659408988828431406241660491747108536810605665498806511557807938952763160393965499580305450983806450299456514091431383400461984026666866748289746280691513499844504062554092362088821048791303042278516509861929747628044248917267198376327184607174932949474959284303443854285609836436523621952499896066394647168227968229613193170576386416910476323614955487015176925169708729720164460384891995218597853848656141976494304613690916166340099979221316082404736605855538574129272478012491519067045702567829946243267718186127892187125025578593681162119262348601721910862839873535199256780669403215893221572347070403055659757497008638368423389311224056506027215600885236228439873431476421525319370775472178305413569697040431741754524547044496447154775504965547253838359416165659868538679539621227029610999684175258834322865347328851689828599120738177585771324422386684917458977503933515707203017288430548306184810841952416378981746005202833890022272588883501302259920570764295712646962493268224422142209267840430886201490796313492302138856254971900010047552624406631555977713381750953218775769299151400379566828788441546320978062721668135287722573085750884455179883421581729873892248790551560605016342072933967162997574053417953887202034887788023848571045488772213756474758025417641645276277868627743281690581483772705456324809394316212390874710705026709708434435062979106407050797325081015404718445962613141297718174505218275413532813508931491807028574992045474250219434430983411944551181590224139216866762356771379495743714050869679429161692042316261728314165617037903490827864585536824157356112753865851852853795940001379716441980771237936051175797286723925559737273713248035120585080998779400264335681903264193842878245659703615404180601599836265677968234299482398760208829998822316723206950396513418444556660424618974622169926252503050344235846965703384302709652383271062497047683615900119644984017235178622874662998256639443472831899150351390509511119306045810480749730482343517519530327218726344595769937375486901999844762830695135603515800349403073647665939771051177382693548917908860242184953587187277317135229904395057834219719543051130536749192780568513552888377884960440470679652606037238741199321004612375050222421772340199544052137105897553721609966070113922333198664928002257431746386034403727817118007247929445467963533136345276337893003321707206472649159611110132994447059231178676050265791653382684362280133073101170925515242752685421558579558627971618413855268305097268126314800749423150085126293531362448017983851051383113734499395540601272366184931611978340948946630934841527252087619968041783245710090794294297177115617922058386695681882148601795255981044050161756468463153640689023314728851764950967740285036354015443925304133624796935735720641595495619917865295900587337404982947070815514407744395591054084480983076606624948632077495116802576749482314997365455086709036796629403738010151657323780911190447811176555150428873455732888340440308216806065682854041071090136572411976408622084376783240190806075632152985661091554458210604414198519128130738530259241888065880782741427255597831953291412805691992219482969362244573108799942425447695224355376051498686162836306192940040730595449579620872451627341940836236930082375129895168214276183985374588343400487006577983860777115750794487206978695020618595816163787184457562366451849836439723577725477833980894141142016873467082235548057160909886763071510066842925138935163141975297722918871099051783002351816139632713288931719637278525743308846647443292046008066093572506061337625224835833778557964827901674062797577086368326256396215616909169824730201395647165698801597002295308078138564918357771915403775994634006032401260090297459686597615144170979626192446370192437860142189322462764192746882736335828162786332105571656482438391245316479664903706688232451818747078466935529297118198836914938152013446948957167916855764697302316135274016366162702084120637508458038578748426692741068138736797635335191443243693878701485319395444778348153848363092217078763105173414274056153984391636987920195008971799984415883008333064145426056857053504146203679137270176597373547941972570919898616093358569822519740002419722903473812830317124380395327659542550578646903055796670987880890625261337723907565916217622384233832354317742374237914222655350686926034838020170761940340767093978777018389624026186823956933764672001946286607803575562063218835376588032930251108446326747359782647197870434039104253143428192863971125029186352512731636932641005953353713957186136292751511784984298920170854682104188831528605675720472434933683667325927987790297058744152213299021923712245079247341268813026302311186797937731706112214848378789204487358053642399910573909186410873087560083239055138634645128825955831319405398989578110739641988488733462467302653138045718029795620241238947363417364912596681901019519148496160889996732925175418139432330156112404405302556105957119784093957551631822180606149916255113017207909140934290046198808833064070352484384695329335292513430513462069964022506616446082466211531903118528507750558113787510594692623957665480773350415823120092541952930046749627261588260349650838968636024012436078448795120689262303501817158031522096656550227649622740107078341065454927073502530546445332866171971732323342686981634321296710701831913071072823942798729906052138515250685782907158143415384205121811355350876990757558391875688279615866723225113356435133925035867256558845240835480061149395994507180119924634688508725844860737131090968041467525296792887165924686685842907039120879266554131826272568615873267860954005487044514929133639071416658919823589029467902045555665608595166458549067560998439118457607672673419554099301205971134876751225591423293544993263301835828163759981350416100767514922410197356464056463966694338670795574253306773122300296388685922920036929720409045873238150757310179622128135609124745490016671457937183110044202327128586582456293608959052119048954100471906790540900624700041097150326851290972473826823137549116793055317113810097712697798109425500496395670584632143679245053160099291992324726508570499201961855408020359007061396529504478894350126424957358449520873824659359904142099952360867052320948205728389794804050442265692515445468950650997892402120776292149058386066910221567176654532638447079964321235542034519950527704893544147342863782132468974673062542768879019697076363637215013638086244593867993727636238859310283116793983137856765420165566658836597785123548006194251062883115532811261259241575180128841150057828832773989987149271488270185116478262590082741685846449546639921611105042951784142444746145752680113906220044755887583671741685046806974061801834260956993959932145379111533831929923111225871759607201721953212818054944655536982679058978708225529642613454590628571089593917084077804335608972506392505225441967357707176312082283603339727598382467668305708618084871006962128101362190505907744640388703243597077367822668493754638235772238347089682442673228129475952448648999821855540136085865367789257868189944132135395170218045490533426996527561528216809669554547913244156868096485032893568838893670600724541795892901606044755626967336887785450032160175289038799321734290145980502873816654591764908563200256975674382434438977740406269724531771571295298051532290381567802440241768416009810099510913029170269309673626702348563621890853560574645509457768480675485233007180289291855664023648447657007935553900044663741528674959160268852515494620012237997603822453689974636295483188926755050513003613337788171869588444312073315722822352224844380341042013325636813962572264020508704563923820453218104022222902177637054244673655768074021172792914595664075586560170164177952225098389675350861847072252738215420993468830425164890273316682432283689630613890239784838880745533065722531366579440949069805947490194033577588557657920375742313760787395574301293857810398027190324841067656804759138989486900059411273345335979058324986874642714616375131349890678033143729629324158232533339005811443824768207710961059495537195232634093684423334209153685896339707436818688590164677140896011638861972398691277872032691205907272792808942840667798416054533546461001109261303150014555176656198626565439273785761777063937811883003525542923142678558327787716603710541179566605251290510558723472757183021726684923264044790327426553991579084348575892983034470097884738946661999938973887649227825040622588113512899780865597803742775149199910092794179496702441284895626252959573999531096486642472981409121216814393884779886751781420571016150465299046006109232074575052500447606361740455124344650349527855305739989736863259333806551312372439836024494614117596782281144744418391206728005104801254038921521389339063709440592257379252559055426209817696879354120762336031366293868174904042110525731153070249504153001428252306389207843682723600096275729210999868305282612521209229252498282375782624853631318519199646695653927319201520218101589825645780232126820142747736455181363741817786559295351518796169874247998616192750446330494926658962435396698000093182469763630719853006858261464947764215116199106982525095754691333786325344311133615338169648392542195429642074002698935568982595357660766990217275023379189609537913615272176569693160273079161849601907750703498933879788154804616143359006715764949588110298396766841796844054755018137542671123184457504829091959516829210582679327842554472830711687480714179093030047156786367545198669870000676822929601006819992528997497898594884790930097581259250208823909161761709816702264143357637582714051123845903481744848867518392105048545662526075211998542393543405058226269079028616980831700458809470130593079018529053387970213338076549876580205712200933935623264224649859823336249221388434580992713135842542754632015566607016193842238897569356342867011035598860638870555627701665190291952499924285814240182373746392555869668999196240685115648916665996596859958109572227709275878758012868080887578861277687237246193543520847201902133216558048570771796709046255406515178339411444766774968292165317263917038249769409787286942899810448546877324011489105017245814723568857707760257949332548031069517298490766091074019024235352318395570763040372992399175842402057588822042469916317477854812762307708014088642005192625150291292201261822660283434097009619428598145277811555162770002042097900788423765841753474667727230708213620295187623418973926181574572254186288109219742923901682417419140364015196041582423313399293574122654573414687175227507824274945355933278223906250675505335768845555286028683371582282142667013739836505405861830981601269742026603947546652598640150939746233103853797868398707061078698085257633178099553245032613010205807466456254871366482122297792796056211705372915665252364178292886382577220858703022075246071820636973118982030038928750985967987826396644503706846669263663007531629810346947351258701181183152296916777568289923449361588226584297357530830089498701462364452405709116166342084876563639235254176524772646489888249901618969331198697949053993517930685588883948450110497947616395209039157094844895035264237215659724323679157268755024631790025292558686597713019442722577495240660379491746864615957264428488057050416261538590533561078461623147562041929353842797187974118533717422492861792728024609391395831140514480955471211103133063070042871309976990070218035994635871640346088232903550675294349022362867251756399191892523067766705427662760590304645199849121081509001062322382068244681671422986563417902991766773872150122138564135727562388134405889491158465982041439206773795257181740245398109007679754442188145608973806590034865585817669605412121796891252995818948437584693617373021859326234812359399151544094407274629340878482297577736663275073166587146587752646260766928817629567975458817723073834143953432846680885138529485383898893305488856449815291812907715173512648942309173717294075397046395978392859209598461766950715877071850088890059295681755388397436750245842820470764773828736375242978256321122577052504896701837268046817148584785178323834702302317683000668446928829287638977726328393003862655731056172158683946230770443522274268360400405490648071949235976516025061940786758653720721844125446734130209321937283733454430392890803578581991601288989795730373603165478275778055513595242732777914295723439628613335464169999549160768673523835699152900008591658952267612702866790653075181320538645340588672615447579294154389780516180299789985405273368277678106733110662699110839829674972697675916708522478646283301326845318457663040272382446494579466553587812291674645997378463654985510487130845411735425187553837098611311300661160723692776020940724475345976962472546120011459610436618964436522801026403644493481862977077536002609244755049742562300598394910709999098089183391241245874695565623106665860430093603495477089148591265962520791440262829332270542947555569668740013622222908726152852657122582499505050646244092717433105743103729971563230734118955098927608590684400025816365594797752980738603696169642140582311779339312799359278541872302185401478668513963784919084068742746574820967035440299192214902778923772461694072061142506460436095525924608680016537760501634716543434338763941677492229069254563204994073697601478804228715194884433782952700132796223647764709535949829632417338202732446883811927129685628743547148892679003337548761974217199566987114064132725588766468757008347772834896271947121081267190947032198016867379734976176553296629671244669424396714096374964125919592728301035603402158566431321732186589011461963567536847598643438723906454723280741457512258736244684472144482898374914530973818100330312883102377864827603085971555249097081678833576216386957734083051325323546765854216276536046651607128990938604560257872294174523221060783324967004725559675877350180806210920160972231984698219239449735439716972254749829904284743863027344646869646799036203995946184389693194777725674816527489826784492957155052685012060611752946892357059172468559834135430180257219009853122910664575310356305392950420890503978062695345312015154956818451695066782555879742974813784234504327020883975632051711084824906654611407759226072196250937032794362967227629737575402569313843218969641951151090772550177274647767125576834081575900726922091704277903938271645248995200259663132392469836623498117266597270006600593501330482588074812856065678062263734327061328180687603447499972448434813472270643294603040101265924171922450838859219464374349211880587987814875240744775273008874262604970342915721875534641181612900432347569730918424798147212957213144797031553176281333145256787935556025632412453843957196626226420000890381757311675044260534353350990337700694757622186645742914203499681055825146360625014117843775925261370552152099885389140832096465188773034571745421165893736497756977683562842401357091113348247657414224969842806582728460537366026666913948375013417919100818503338192551186205463465587958624847397429781141282635763348826116547668776600052236014327647503622190381853894891735156964347536889528945605072435269014794837016931537299469579143187947050045693340805067025872191050493355034786304416503244389071976486915017569716086743287126525519369168010303640228828294704446959770002910480645030536080243833977226253001126412032775599954276202859689473603412141494818558882820875201435662724500912486244058831723217088738490609788618524269032408426090133240461413376833379492155688584946896307916800722720665801716809241525952935211903264811271561148532802540310381690291338420157712906335312890471081557803682898279378169821365110443316417733760852856754757895371402969830438365353025633402068410028653656183877123726391228557845678511722687346443524457727829803967774356734469957500395756298243391618542027045116130952576660042954133459512580145675398262359423627829928114293917952060907009364203273133475402627463393317321653867226815416040056547799821610900220612062524015470952344240996617240047710328663866038029491008559714953658117465820047944925560028507446887870017197418110247961251027828541021089119402377210968314221094134878659229790298229350161206639779026600878526011967591938158055611483729199847970542662949312956846998949681923726301472429656049347166755094031297768603908926232184778418220175114004090620980512718289871608916241696811198883667135298447189951786581978668016729368634778352373367809027616245741266094926433567147853669551036677376345644306483047671992691280705683294955621698633245959109305929057975133457416529267220703096745730759429868949171348613383202150792107565222177778500562169451288666196073804178768969750461066878339182224589565198389902304661483620078647897538072543630820444358308240599785652822403563815762790414971984289229489242840007534234072924720406348688552228988905974145148536749856404495581995888261955472959087390109212652368580841565116469468213835490486377890917616746903200968877146949488577742837230262798557673948186172174679061473714282208818137894515679305072191766727277340850707711616418910397939159087122728802113290430386524445302632622355651953076452127223327962451424172856665654912098259417166758902769966951555697556433032044322278356093369159944265214495125675809517895303509666800492304080837285003761598334040297093659061819287533547928122557101070689576114835326919516313660347100270003602167570002099636152064949725868623429194970558773225052283456487480108891146372121963124180215446933141525248367455886952908766176722306909175526477191042513603065441828668069201212830762338877145437007182152631636413144094143313760345714917508647385868939455340700591734691837503882100447805421914096210249019332589407353321349639961645386808130392772460627695774528430771039351316555632181595002269398669048607481886232817433810217957308489906564295559686326040369477461422444024966857422041850608742002588639647257138656906339218083092001689295447175595290505045847605346741326907681751405433146947285115678445120010830056471771527834454348867446959773794776081244761503736929397277938690133106953116225962429486099822410507107491662718453003372207401244494511906375112853193924359670245520861335592912294954617720029467743608847582152968110890239891397583675961668086631944117873450251738607944795698115045431804330681523198387430064574073317622757410312512656497342475347155185467455714845173718261725520167566082692623061443614763441499517344710155112853185055222392012498953575279104185370250978871426341461932017017018743452853693521626709614546921597610309256953902079273037113095667685868163176910905423122869015758160755049983520670292675381337856411851450608429022431317954743515182251192919265413930165014727834607010503528353774816302259936441442639770767063615670597705322854392641499719028401090329610166617004869754652034028420964937415008742535612352737079634311795875788000209366530089003362965008568449441700818699956974202419445581931933016857099739045993047305972223644205469745328685026501022074543447160915188702236753252972022815889320053718078688918452259603577353838355810828224986252144262785890955951015309017170950302945400289404655486583672809720851833315311918374653745385299222305599830010436633890545613641779853305049541042136093979212017273268735726887070548190673983862546089305259738679769023205630449352588883062381469061862616391607509026034241265321069970085906216479858751807023697010939859854334743501038712372743195472502224661547048739955171300235321395292047194602712771112430168095244879417092431066075395716571262453914117581221551460163484514481663962674952411343400919403972981169279024945962347397047666257808094368382282990227400197516373252887419663964631055394651995459593909468470212552911546820036964418209426589009260146326491237677006689194481715288491420227340032894754265571448410411765645392626406048376124747039540500707920260714851394829154286724249685652889175011196993929551696038757435118640799008693435950937263322654584448603455716907850243098239915405869610616625272863139518223714352698433906071563967797043906354515362957148071064585247976398982528774034788951579105767977404276120137964441423181920424963034698333004033031696528314747281296977746440260573735789274366914713845928013447769863519199022756479979577857893043787595247602431841623502522937283099687601961536066590979170903503897999337457182353193007054842776347292606995455107627951638855491146828584459025255285131115203785371751282266686239788867674543666785247206622885723064977091336856151779407043850586906147626181021959578824358385198661870899994316202690879180817417619097790050228596634475817289787921684066261435644566164062105614582649141147750956907829801688021593053783000554494491592596019713758817567139909177590294616317239150353505108743609109933834841555539785785994250599056618177521825248987532297596267505547311582375399586938137354637287270154541167479401802246816663858625419047778840909747637381408458845502420159574410557343325237129747861528902207417443117562989224687854248602621297691191712368195159391041064903441106005265004763725580674616752295399960997087522316439792627731048372836479738384734771174727388206208219436203234905148373089453608690757329581714030733087349178355907764270439129410906115012366228043752886049239876611735810259780757184878367151580601550730662446706327042442364760313353702839455546847658902966159898321283620815221648750014552906369464383207420393197691709524187830282100259608569445785333934058942911369156208811202513616206775214931638335165231133136830138738487834571759112868054392144693769670172744097859789185747376158902724446189105993454232486624061920369582151994120253351955760278782663791181030988214319824881372196059364472124948100653559767474821093319153414828400477771029831097426267886093372319351650675307791063217871180710316714368347516726638283241924633138102671065322895941404606614352636926265649079097519514485264614844665297046989043966034976092971996255365180279888905190838720698059427569914417170419647532772659969042648453632205363661131118664656952996911299024773693379691265233564375096457494405019074573935784895651511981482067818518170890926058837753914535426537177230399510708197001579889068080295083665501236259831331309863410210078273033895198104244817907840878043896714342213900729209805639807388232667480550757676982865590112434877429164552804161841655444249955763207919954773066361723415463507717656352920256761050606281336694246879145017565282760012391053391491115688176424576013667587289038034940564305842094845673872268894899733074898494106856299146840558505663167870262600983827472644779851216051077481672631669635359523439016753830219690137665513210447190116297672544936890927894787761287875519458621850448117115199728665882256387726620516364901335414142842010623098112355354972635937183246384257894444673165279482263439787929636136914783910150205589140650584545024815670686305360081030396662686164871856070937032464198188307754087191877537291130556536371161641814132721555182230022198177677202521161741857939347339990218929483017661435658692666432328132534815466418096182474765762512438379546408290419260087858271118903226232935613340345022431336254675133682031139100663854303108324017844093701058186895273281078848770922016308690694245365739851638724410405478689363043463547690014715566824232872316689071305783112651158152072510864118090891391807395317531844743899509326404756759698877404377238594380405964174487450494656060106044904293341567885167954491290971081209747095626434326042237286827077140909218914100816687198710617132551945041314938368597437063369850686347456580011783110055703461235680097306143178173622704019639623047066289825483406080309890481878697801399941347604337070052240824853862619317020529500569289658397833533877873302234580673279202834877824687457361017547280885257319780356234269568067906793404127766895149128207072305156953746545871298316616234586914374526756400291432301013318956465152908472607497026681846803938584463459980124922497786883565535786623372298231797276937506482500543896944164786122123545567283232409527543990900703275131924258894761953474591361997585984454292204023571061662080512132937611476646004034501355145778950604369703847448241126023370729415828367041549076332997670392578818005870637835391446695442570233383235436037961286069366269271382479210367632862673248904662547685782187494580338364779433845568415469204630888392871575116891004470718561003966353329396773265079673724478891346159722578223021238564359086188998777772300814848429117009329716288381442451824474369530496054444288864781949455945324879681995942751226032408328201523834190271608130231127802357420783302524377634716333093581431780628036769326175108982575738507132428613510455267747394722469936344986089219629083237913541532738924366464722624750845450358466375555915984402758779026740738764268905139902542573146749915521674137787179927605511411476880388335633567316656290479961954709125986260330829340766230141178898026274811066710671897429077927827369464814457458411196198555907459829197065844493650489217487332359639889012171529670993922055667549182650761407181980464154886340728420972956718305406902705529338072783740650438155848991595701989801264342445783618305635582977017109917407650911090356618618963432155329019715822315311490188589072314122942420105053972430013974531173575647912972886364745291276256442337585285306419353794710071592614854455322861280664172118248018293119975221900874693156839818720265088251435074103147503993899346388556895684607903237279458950175093419617977736120661691692446360085170139877483677549946964148415872960988369550411715751968637095366087241464125590106994082633634638745181868854308398430521054446457263680225730690923837273133561477750171354636056533489717961655976711445502216700730303169532806262623238578208745102340356219993238528753516750318857686010357610581076150065506593766270986234926365884625587182176259286349934888930644260192350668550121555120776751579026529407502168274796529224250338509433639757514554359014807160023846498621840465936760137461879250129474836519706200391089117719165304527119940203053351764222319855337962236648278249613864393606456712689958942836700529609476654534833244566837562263624233993119658912995966498688769713975034884125536141045428031605494656422947520057584032177632761835538721951069154773388183542379890585277016417413608296526669459592267531840425226308483836648243378067455185181906190270448536832252523331633993532415801868755841620696234898906936019671607519106559655736698601913338060511502710248510594401798552253677418146583852060372353862827150714976022237256114669689566232208050003580343167923359742845593964455195464979916396892540393428862731360419488384831907305275244881742170170983006367909320903818809864989822533650226123738572582572536125160624581355548570602558973456396892327270992430731946388523494643854689412715381486306963263020061187218082867529076995517465535343352512227823954364884991074057614839105658786639920337079647802998503739661518457306260034256862502334227946290315846708201827341517626144147564408121685228550858609874273261286453025611051405747731396391965745287433926937503908322115689962950841760834016261303846053798778951201611540273251373869222100609987566840125926835923222542971920126310502809133856730568349367178794446029878808852207595164159352613940059415398210239515417756490870089824232747523203765390770195310611561002432667111181474246815157590106216271855413708898901581568313059722101115686806338380011517342880104536739750345445651239416907477128398685849778679054571569148673853977912997742519825795909027253297301644844057892192456960794712082596315116008152098788909169085912016100596904749646684431616500502460659720121737562554607080020898261263758490765832281258968324538852006254810876568228816555477434558513185586164593964411941542889707120666005023007667988187569965526269407427697029164032336899202441027828259686094393310602291402678651319970338275730218435369975789691494995220229002272996913039998141667455502273323909429443316030386292282911349218192666617513240464377898489738138037853097844257450848381525998244055150262609033348178448196938203314051649411179621758057446531713170866372462000900715332258386321979398156002623080362878194773146510646453780414533779878082040847004364538726637144712358987228967914391874319101162351829097700404626978670035195488909502433919713146045201710427833648470120418347304143932082307366836515215773644756481159654572987981343307819272322721262101256772922220665701982426453706994815397552572922725908839474495461134415234453546102349879585479662879264755389934887270135411209546992947643762340589845626206691287863445113575378682036284536122691045871016243922574069038588131496962635530374900320561637630397501399177694115199744415704585965266497521237964137245965512528596968055942329842531083038077931585420445146868447519269517341975433605941435732243774784308868336588017730435675006181807238780932247960734620133538675622241219283401661864086774747207931179200211042079188709972558809706242762815715218442146001048985742765435160096949646646348861460278209972419172923690323841956578009727894126196691377131959874206058592884745184374075972303335310248824589166749606499442851159349092981668924484688192213541270859897929126524932679095875230958586728819918672324677144156166431314647760106220635659836749023691652436473462742232604773100010854095261576540431986799579169966849100170200439251028470008715062239464528913720662432541375699927031522003138549119374395054886362997494940493958760011396462313087595379522910126370721576528162996987612114783114744287273225309484528756729528339521417307642840079052967449943736840015912721140411797376927715933779096538879419037625243855032842818546213285413926279771545501574660223121902753287342583938520050630142071324418297700831247354877050712101931036677392236525371980485077421145430856351732947668276920955461846680193959558213728590250633599259853635386348970154582932411677740039246257391038485010797029294151591086109791119999134364945119210893732034794375640084554302335771749829366675092283226230129260418852844551681163764004250688771371713829660654700815806917685013345025771435573674829489784118948987213934687759458464057762680613570046684995400215182763804338358157022402485252816710455871279963970212030806027186827786875783046494930055500611800430734867379707886693040250308893518375248897797712724241578585812631215831222739639116791651367592290928740173370232948842323811159905807956531416496213382159546150009177745612323566657764531491942855116379012527906187604473055930373954504926810850225883698397172768403995897921262326691126261315260436865787838563783528476922409041924616260150135750876691412824895536818983678834294669452752827823052562679810275896547952949633530780443755531187098010136291385819251634801756199994436538853449336339289746433103854948500856036403141145315511829037219216771288046919133838577486153368086242769963798062396820099816295326910894718840837380608396367201982253566061207821426677368904929482114351988168828898832539174379368079869490790963800964264952004726109125660162057805331893884240198152907151550112401671615523648542262193140240296508620394732264097335708003967824099088339747553747698281211039663740756513939032171088132455957816644682906834366532922250777289693036892458327510544610034048361383139054229666110008666224292173541640688954459684456140687744765951565205805879246403596411691296074326092999831775466139155193963237546563330405750692681334901902992960405655548022009686849213761893489719735182933533535165590631881692049229825858752770989166528204543230581841446408912148315793873595311453924080297559484611633717300396708497513850870014492777091432733763764409050703173574757669659405133069113477501233609441421754210355112663671440102671413286862235262004026644178418500746382000814100632289654730193992035885513391768494506517436165585485911934495579084921954843834065739653919837602038077774580404515130870424463994288078665368413411504186185550934977148347115646800722496102084805409283930921107774875321538305368319259274740379955213089129556169573346953653599723923621182556732901418276853696310047769368077010794083844431531346790119003426097274557431689578341905918434671982180265648790168987758756661951572855431112927780120295098599000077553471625849498886213485795414608677707236414350345056189049087192041400552823525192554680756201709843680873036469142348827672423166756712709888046042360637031370654015318486050591150726779465645773377224661700758271123825410732233724311908158514638448360330693755744704497443998249652544398939685704584157824329289578124589426526015502162608685189691459405320217488509442900961673375584536334525389385580712180717076573374907507127081218769638457845985481781376650963447082354246222643984538937121648212010541244513177734319033689237071744018069514055336312491948008665745157459298455508165031315587179915557923027856669088431752534432139308885344245606511635147305767284157940379383168443333883781641719565203796635778075377042712788568866409463548097198424523155400143239544813544277692748722615516397562806144393009203385330321041010419827511455351449633061353995187194671623384882774310743418154061675910007328471896182275310601749752708910825890355041952835918628606481736865487681081782383800812278055114220028515258572402084308822741742813601589086359622226390723399704054450787185335882871023969550349593201261581969659284084719780989952891554648016825976664769430624132614183656751346825046948839609173153358853204898487677111314447946504292618062944065641035510536839349856995098391226451034959800656490121786043708891311946477675064959383883383224343090934882041552074114081991979445993008593302330393300794692368411528853872333634919705950086559516523045575780671505949865309622882628794338948679673047832130164788225658112834046882715782163784296088272505993990121259008189788355335562931497038247386709550183206926538122868301108674357346176940664717614140284664513592845813647249242557987231010969330163937172265430705351459544468377286692406825992133853600202506701913668181240370679959036136304884624122623833942197460445304411306471198797864106391498997151939898914829747451525272893757052070404515596051532662113687988363611308536100572745208372457140113615742636518665273296295547121888581919288238966871504850069149795839777388659664886390050167710557956337681362888174495480052843478433658978773109431580500385684807963103126724791126290877381838682894908090029361220892474601423186055212842217233433506939897781217819967213493200119714968287096526584795176402826761202253059675970794822185562620032583681026864106354387560505033440259890068085056042753783509523216689862238549768939971113750597081390224654280300272424935176027924780689735430333747523206246053103080648681529038021542569439164271451971043799797649297360821487609255448800738931110487821320756507249177513262305423148491954573268740425950248837229406577818203668584362233615766242650037890058759509219196758466426834115841664491398785328974543935459782880391315614641697811820428627612579163654914843627558375929107490443170540911872142520689963355596890416459191858077077659863025579259128693443677264573009941992682203811375989956571736121269457303924898010475682383109003934564031396098705924485145182956311786185462781313255741339988294020902324902684826062308302336133912872897526526331017882897679092750720963676461187170449941787717188519089991936925259075594073421871209207789642408256178335364001267534927941403016174439469845693214096539662681291763698614733613201306932450969867403570352709483096537995398350515234124677040012216857479934771059215169660037477867502279010249226402660503018262257450557468552421863509858428650113055448504235803991876413839720152624819098787823623417236939490612714499163018212848049769523062220130239560734629344453339135814655136738490387440919103390327489942573472000499387972835181020943785608855391561537783127190756367408972732962803661266422012765630530749656233638033910522107204557302645103323515780037653873373325797914745070655315060638802595274153387171874186270436951714363611601817493585438798937130965304723525595303809867933383509599561134824104122972906325491591217843309238245526520775266691141324752149582040608975264290092014178771447018177946136921057840712167276254762755323149182946150615492229664277064063761677010097038504438317978088905049205277749181574367845394911089923384172760520710310268324947122272013537608293164341528287184307155454501388647030284975807813287516218672561975545927732805959022764903895768707880611869603289459526147635065798887912581382214682514204907609025482575962575027304143479067417605514550490814888891077571916126856753536792486376033729144601684765369263321911545730078750652119351881310508671812594567250933548860536309736573717160380172730936428988681986060941504782357648887586936753262136568807039007763978552981982695981927386052971975142333181638688815487001075693071551843675846265198447610559042265012960121554024010082440948492811800201834365249826495998869897586882612055112174676219455874686841846450434788450000695905053022212629932294835626122247925202067760461797374493150978321853635346635008781504611187892424131606501816969714063308195417033864902677269655109561173712684025105766369787272771536246633118774851462644652414044793265376519714169212876895307008224402957243760032879725818148829834816886901209042056173645733458035322225596551247082638459895732452358701019368545968846084859713271009871952763917535667871038349304000391822490174153666074350829856515095211689397566667878223004018521822432306502459354193994998904383398723475367542620946236000635115035765349780519060193315252088974987168273848586575063297311347832473624694133418009684257187479459487204760108139471174266706095990980579791486627945957512279929597282424746088387766662547864415396156980682448772157328865327115784930953893263145301435215133531322947240394340559654660442832026608456804501709294790001663427254323074801170009800489462274393195547872691087672318373541156812633060647658829237546145963502479727320180039695751659959180348540922481575532535569133255599874102897398133467036317866334638485099083416037797026443926088866382684974474187731564775346008868524342940538174985055570316260722931556760362181230489856418800340237531781947174206296619307367341291902082005639813056418653594356511479040052572394282366142979540078640950484602349170472513864407078843556924416783807474781235148032197379392353823381109753959500776422066634872760187701573378984964591932844195044891025256223786515386284678328733585023128434829093455504214780092021661678779849566652365123433968394514537807928078353797792487243911926514676834453088519954044618781051941824590106408395578082405094134865470128896228289993467628352685246981460527774842083307108533892444115864612226512715562667001561902009168259836717204173622882848232337901261263793680079160471785233061130289343247515797633611268448040117188155339519484258610789738931265116905856851052652658416353376792022069868771147006646401028084582909701394778723160493370681447592792557953387889819526231427680219637141501493684474012890341425200002310517423153781494449639770496923546300518400953074565004810890851563306532552619039753975328298828895589150799151660427521008030073405363640757151549128873642289874493055447058707945267592035043599359575733640917621025662561996532693940928211691446707442195160765526657569576091680034289527330369703876991282794915335617226949001696104303126017810441720667807252342119289994444549653596965204079419197051468448637330672991272203380119059517017909259804470074546729159597053154541575172429422273932157584731754666529146928746090822156779591571583317322453639712841740569707580158675087979955213734026801886136066389885450494704918168490178687959623644622522788321879103316966309937906514193980907916169912378537103744168510670193115687008188555560499246821514747564853161898714488829836090199382473412059175785244822563431873520813160363610725895647933008630581982881491124683038612046391417017863647446283636882634237541843540889735271499221081064911958221590656356444925224487158888726895355540559354051241881473971916233231969482061615296816482079613768486741470882275133514772208699938883955464496647897631763573265636235449512662640200199940012326354913688611306999523950972880698930968592048907298150461050652050467111792946806096299412385292078927188374823685599288759065790154506357875845229393851178852118681973283597601170427246715887787109156519651935502542503147247613193991506799723011564908715913079958956475301622234131008287042491516837352447156822518167204669202894889870460321130802256853235283404898811099775861116777310156716740956722091550306956394169989771152075838778849841288771651094410922435985795236147367277046709069240799088935539461287144295361224369690445711976818779115579926557142656928640571997355166796270601548646397399863690664640970594267765536671343581074890959853486789326109758717256916713630250703350612620636303207089015710077124508432486743902271539429236629301648567024266917495603645655475539469505658284290497628227746027277546709862045616564945868108129104084717577581872440865561204334488381998091649752887789676943993841599691440325814018501502591627407807569057428007117004138050795321526734730576393594748064363680755443386682539797712432628395555088100491493755762001390457427193445701463451808207748703161656472327570656100699952297505028954871314361424199719975589300744120852816606842196026988165298521163159121961263365569249303244831543759937279159154858738055409896452865372676928042761938899718567754149684526222452503635534030484796075043136139855946000665026994723310728240876160481272199117139817339545656752207624460123614005135478475305337451342354885924755261618164435324790418048786849767382749237114861692790895369642595753848907347016432336908170334762745769900433273211092686079513571815210899589009537529278775864347882244286332449991105139982157526886850611261141764947068158376817202278303088320983151687628787757879247071928837105036406913410633519672369261121051723654272506974144737395074542558864116914927707855600927133623583850130461909516429445626130045506693356189888559334021843000875546857529994440313583201370864187433616887368290424453729954432864454082080557600948353311251232105618863691556944246110971989002552592480259683327522704398664349868113838175263034937891559120901599195361174592255899496445769476106720895060859283853677598149903490118693823456233980478177373426192792214261996573586066047258397867917297525399031187530323992295957296900166870568422139756268490249406748690370690640186911715080085422103179338767925698863348462584096660706972077921582151168911776385555355632175291797179038729421750807477993223856393973673982505487656757840067533833249201012840838361279181806676018654132150500932709523124938043283330285438197786933918861481386615448847906026236727083840730041218336427244216272671710068035635531408030141566829257216958670566181461160415224291564958373873960334769050522082243050227066869411918915236624608640428246560854199898758120934701626307038145386449913121018769749416666351074534191870582820105050079773929482200886644215127128418656775495610252383218306343499297347198520736624339665107141277828958216999992777059938883412528564305201053596342434452099853265760224386465091063677222197692921697223126804717552037947179261813738777289610302901331115444758658085709718316083301399973403381457350470125729461344989897452037611222840172246171136717264447107724756576485631590035912790617987834860508729078694540820538176761261410398117633517105690927879464520056259154208279524654978246220221142299651294851406669143613754476708162853410231843770601045923354268159587129475882703897557201551504923691999036553582363389210008501331581027892304508138943126706499695260112901975515137468604003457339244252199807378604350036902909317935712625398841642722435873318531596077865696235895382169620757247386839162832660007693675454917481988599834753057269953111874744457897303096689752838776951299278120988356781082019158178141429872928571059026641441386842942164616712115858584474750138196321160822907179801255746611832290164138226345002839415171235405576479331673832649374157334766753014888796993921237643008141007763830084642706351692263232761535700739195137613393895676653440194574356779887805378565643203449816061746035260435882375258168128452716509860985432633946322150515168895156989979173659592780551083784061829959390726501085993411149745574052589718620517076805578082546694513809875690098691676408647491666214470763237390169605043199641324515028517735945909346324778835125238419703087926336141990552585362918950956459890599269456682822499290074922584472145923347010054215329114023010795858131967057745365619139397952700490017310698811681747021979214052449358601564556360169872788406759755781271485450992732799692425493456251702413551882712834592565954578910142004363509532825616852714579296109516582910340411309643410209433801674332947727515224930807695083793080609310428608459685493473418959330838516453787188887860807400181514533622242836770120963354230047255065747526473580713175268185453997511205925613651868022915824032465534331866985190317595608128083357313180343007309318959682636876187176417100066626398531271250512157526335967683045003453189880047255589445301298743145010137978333441574148123381584062754801982968183032330851986644324965213976351285130036756344508849428130918338834140097539854732180219972752212316450166068334076756422947533148667410062067501624755421192329041488498090537065173847346150000978348157117082705524833478831164581037180451048687458118607339910749423739799670907231974104602418891735474773057310853225344833471079560594364308718859168929010975005570016093362387384445586704863670780720680088430298178062181067988795877330213644822956833068090422535433264811670699564470832828143146366237382210099035302250596452701098266652858949132267029032735663542629001261153918059440158926078699319525006665190013466352666094382819154905937576692709368381216723548169530207950875327810023045269770415940416282885277310121411051156208553297742796168595281693230697128334847157242274405394226058279524817838107570547479277186071215936010895637045305182359364014914345241886060837838697225468097334834968614367299789202562042004314636053203485388820271013445241452830172816882230920598473830554770775326057679176229884803713516001160178328062378597360745171115703473025721175734364935654600727523025774361069631366474336765053759795107888178366461539304717868491802852071451820172218527886768866751159712291801195482983293958198200678446675174683681612235017791274097115748125695659661158778924363770230415710778164651040026750938914124934070697049150488562764753761232052363956222080100686786954428843107595963683472518947781846937004566896342814183530762209481437326107867191620003164546948981153165003901165279771150849135851488263325437248711722758607216278013478249811528559038012978557635612552484726143691422128091042822032897944349122210997869596665314903984078207782589938816532845500928386093480278538210152663405921857247811378924722357343644020918136964966654731530356720268598783858978283677854359890066187005512319730549636055953336165444972282281403325100823412214527981567900188997598054771095038814547020335675662812627377603058145741702331459562752778797741248567814491864339465904466608294203904248144883502883922162727371249079389496570986886458415240217121484814444304299040367073708944707513595858202210407086668063183518754057478382733234028265720846301432339111642451318149044962247235692395003483877710987824512962538029404915162177562523795261172992780784884635677844849457924169190999007171062973906090231272525329288736864681383657255820656047042727040124298389702145459273843882063524028171789578424318912282046806055920157818057590178680319208628413902488507413017319120122120024251875547146522067717856661321077819559105640926820945128526416192823209362512242312992100968919209574594062671578506690906820860924496294925957078764945261652979162302665316424283056441367153128964953118098328249191214252261471675904999604314917012237308960344489255327065023131550987248752852240766515852293502340515063033211613739164431322864683417543543195332052558797686040794860956763480238927396445228119820656895201817284806853895971433009719771889703084926613345509329081704641719283175751840663638759942105048663450964969359096953223669637168044750669112601317029349108231582649990859263938063901398915377821050657091226380032090190732511258873976037738752846644759281577613494199579326825878329652621973622115687989377440849409526501891015808124523561744159831810291159304785548265544289688334705394812626962169343428212300719099851559031297469685281829879930351721015573481096722712330579699575944036838614007555815297716895727576857401137675725022728158032159175283540469292549161435289604170843230213280732718983575501790471936590562921624258768792561748518741698174306905112121409389612040977173085844834789989892339170351202341516523222740763309308824516326936958327872500085956022672067973665811722921070113803531350179494988869033895628420452164466467042160973271389165480400248800529637978850631228167150514360888022911756599828056634464601141246423259881786853464078082307418786309891145369198356848372345002676279259481293948296947771835700653924046427039614666315069295464934457086739820601981557563243513021884536495508735421369963494277620277780657681140001748182627306189787207017184646642753183786247082145690773767216829529951237294794782437868910644985495640766426094251026083396777316844067152771881402514112784972553067711733202622696488767935547845892732589512654513259754912024059148711509997093503338297633894696762356754923586639547792583992078331662429198181203202367852968415416154471359814544151768114842016660536930625565501595526923907737606105853390894571675827277811999902691084950601871591596856022771892313120633900872469763266358918116761703591979553027459581077822924946602699216313733081086354944104505614669363446213337883103953701732476123027057223221584233753053932279386353805517631486662273059681906706398242386885898306307058130342423789992476767812963430177133201801031440336060709550166386034303363382532995709571082548745962700758010393083415565972193390941489080344077441992567076513986505437010811766461992324872230252340432006455715275676085761013945006951410849033929788526883663679962793893992405680340512982244641407270498381664625708310124252982648586897985330503934513587563007490776293581510724850543759457536401569607226427859696885330802272900592062859607110039037534252896437215357928526767237880109023272999620593049864558487562545413065839048374187228311634531081293064603933089192614489684694953674692016747995668579605894145777307974929982752526673090726238159866524916909942761676455953867571812202534994814421425184621487750778847743172723632526665118354526547580579801609752287228001003070023745818583364381825411669863318870311751530574360679812520157885890720104464795613580675821668801098669813002879587840914250999289136038765480673712920667319383554057976405951100200889681319257241758351701061624175460529613312167208377462269792394680388299174696275096758246875989169057474898335086813628054492085963027952446953939588989793226334931169119802260833222775336707449684653749504469285830708678823425933105715217760162910995718916783115045172614855110909732162602239195609866930687669813495328356078325873711204366082182645206994234398564330128602893845271412135332974934467032743489657169571001410250150068370941199071576361910915099671646018618255247886310195044676032246506421323644107443785901646504665966487819213460115962035691855944437571090713073099688520768202736611853316002552522186587029608666269844657729513365730421809361441706556451580129760752558143742029544287932891758413281871067272431074008020845888523149633125628118517838047305774206712811177984818307407169428741354338577501989783556951947537341737244692963525307623703116283745903147142860922972239767230583433533915405879403457611965624658162268931098983377597315917224288994819816787629253222440810452525106306536074976668608642445544943050562783451307980573880242859217048550434024172054764341634387263221927491455831620945482433461459978321535568575840572638542246539162524673219473993112070094712095715160853643137992766202886907970689705638210770948455345431295452763588561444791577834814439835217227545520341670398444065831831601127126464593593055691933143743461863689957906509330473468198130618382423709264061839534597073573964959855254058071530744609486286482181806281329869612995312664081424059556234810748920950098992665757312896076131300329284406014685556388475106689044964276614633743512007722492005521174138723555475754161268315116048281597472557026974590866763205058204052826294387020207680916719520816795425555988878256832710771408891148470528976820829344924197195627418996540811064280662602079219384136444128621169681975760762614902810933978944760000738513722107110052057047505369091780015594903605312139293877926625529812780228761189770667160310668051368888225929577825449373798387221642817694692723301720943411994045659605329666633470584512686072240342430586447111693031462588093851916803671132191778688475148593375248355433193785649734533590546009685323934793690274570826940244678722976030295694264702127791203936072309938150492092631891585236059295551170941858976791031969586484711403871619398510668848262579279022383974327334038637604204709395494735300952563701474417449097778291201931846518902643270583093401842316543423410417167557737923318437825952668962365529275004702293233228417375958382652095545331603022276258753085665729460909532771359994491750472853649566399361425422649833486845998397388115684906969454403977042263733284188499376936397116074569741893897166351988380310355338500610409310734508491699251208211895396377122661640520725412167106095908491651771218378606140262794561083416321649898144049569751171993818447921897507709831019199321958049627132368383863015577263801925507911084008882020042264418645609405673155773135292016101466422463975483354609902859589786685994995615445613820508640490734970816730277157379943458198472349082521913183496190133017478266212631730792902684744419037267521509275196530125355479083099067629611092482288546039869219779571521614610404566692497086875255636011435796107976500936324900009613481184614126174015313846829131968009453633208741894651810074244332850377870538056051841922175047591755941230095445791345349056208680691284650352304260314574390843640086889637834668589062773365775363065258913968105661892232238998127570624548473561321467911723852802628979775397539546400278818001401791447292848835275051669491278231634050158384637599239635321504300900309681908984137784927996371718725600483720378775128360184555127303962554095709573598410009268581038446024747668711451353493836752443465151889117827209710773359946235528203098472038319816281735432641145832130128557172485478132890123628170999570998322248867790635387721416717304581534306948690835284707177833913805626555095726118268083389062776443224700332920736273116608393676040100325737757057585128345112745223526087521656776846067910748094121743479177180951540551344685191788755882709047623655708963633350164844052798219515317742191847332590862625884453304033808857985920068499612154107387852450527874418585074655044754085570046719108511856637624822185821545013501131954278214544267706696948047132071707548178769605692879893519833038193656820581267222700622689303634428614350973707650014736506242542181186201725796497682744273470614669453345999646671161514240545822603282301392996115163532428374585633797024161411553935529953281430824699709089710223550463924324924283710727770704560623222980371025233778979104096887365042356153239899951030864169772503304002250831554785066209556260487277487843130129281161613090442788856123390954169964872807957640131179167008605954158859465206594612814936013831304748313980918208188552991310615126442741788905222228625962764630925747225230113240927341777882531211951914358966179411684524254503889126454514344759734452357578051132219187450838745741854526400547042029183060887703287187379683293678058115457803416384542385147738745874162466522251336219488675430917677239538513866746716820128191565093945324314119844743679386388777133875680576355106510364432090606824011117549762592523790326719634210146424019120932820440963253540729557131085781730810778734327820206204559745981877427320747863400686162308964349507885151394107566705906310387369571935921678221704254283090905402986297471773106082770594662784709262857532568366838328541411064070336624329734333767846246399594176942650331462034164401341378641731974738591750969300126971911834305287539389210045753807558072504627499364256316589385916112746716641102358210736632043521255349807938505385434591563376318349922760375056687159936735998972191429055651862133997020789319466367580635728586903730560034749046638940738148593401521790141123582187450902172099016718775489999870524620127264515062437398336484372002316486796886462713763191819495150966519397668368182833002474025437771465411492424528375105168081315460835647456329526846492234732208840581977594830071043927657233815247683894784345379519015754482610490248427954640349136202892692089692725995280721335801841242110294211742197124780539626011590121024812032996081571558444753216015091669778388211042805808634246148389616446023925103349997565410299255063823008429729923613051619259523368802268435266824295055787908587942148855011925707768585046479090767145738660041584752928221500916898516314042160786119465076890759215584689331424238002945653548219549930838912167553452492976971507602303067568529417134340435461852490305703279261103199852932457851460449247742146306017438014012822510814138249297327110391157710697495570700113534460114771611360863411387183196150288524636418199094752733761163468359951048354546672205740065652026421816650903003486037332882858564458205496973880025090366633343821214732073902288960150707362016284939171345565808585610361953658644699178412615404046860058888286363218933335653452735188291440343091052069616674664627513408502372867842458309018242977808377233462665544321781195786790839870635436170773657264458106864830556663878436166615375663994649188260955247846963321986561049752528465123889794383730867435006295879639643273485385080974935022138282538808735232019622470928195561443358757846700357409539521962580134647429622629197829393496476817086320093378367153654821658123024614472766325106248210636668074572778216258130931098924289484242933330555037028763919891971180234577580279496972573648919119770458973996088197400028555740977970346342185316353816355426278504224635717098379709185473841480227801915932757289447279513580809909827810733981461412917047986123906253147964266162616011076456524863878615018046711552964039033101036172013286974244191957925777592433497481850455449469466671072604861285938947176358412424220573214708009090306989110460892550389759571356866818875174667589097501517162646181283844800552673084876058996546103363346573891113103320644475103442814785656172895796072414161760656369486206035056332607865381780531027767098306309863769062671772206601413606727470545363866352759306997624332239853699440612688172142140984937244516994511368953124802658139075533590545640262878722535792146432170507204088392995650308808245760160320649798346601452499192386282782988099308960079364823390512440221067099588530088920014792514282917251827773491495348344392177889974099073632303680442754844462743922275826625126121219730074734419397172291060807044646125506555589848583705529254042370952684615132983747573301925072263574579235394521210536052954500395033159080219026170178497386127343511404689029160707444628088613370758080091037620101522946041671902609044316474999242153187488379671478713170753189027541936376219251259984638152958635763444096696417605115420287463961810106097060798552218568025056226463778457116538549355056041460931581325683406704179960167575195447188803906705853065565444799761142914552933065302533366920861126902077676336782515260227420233799588913063275277959338607581446009065030082618338300921865532721212863904287967068147821513236217439455150443080673952634702614263759159526635815910154079183274143815946200466007129366049364850685806011992793337768706887502154033509886707533120768330653935868569804334089764960250189149681532467594847959443254638653935201210228668735381643841396808367947319724855800490698328346001097060652270852938551039170311262986769423574704127756854044471626435848818133365222040705539560249087856806377143422290771104949843549852883987566013236998726029533006502941581771123488283103103682352686889294879056491893753891843389750453722302978764666381392209449607456467658220583863238567016239023237249144054288107540763495910733444131439004959735564977249927534676849227857889117472937514440350796139936701914791145818255874369608435449840961551257237916925857562470610320675278415266545041356991828788161451249905557088882497800790366093288489950183739809405901198545604255920171119611718096666254745407101743798241695265443040430644866115499978631758984965963999943545997751593744932389277686892944797978134049464780154083965297871471009552196096625265854846139948339898817556968566985262607841199678286346961281010841142551856929078524912718374920946013596369160572834111437498565113494305200811102737115780344057704326582506189301733209022978811487025431537798877394188476949035683599802521330073864320720321228735185122176149773430278820968405343085618071266125622687037910468522213321185111996560164959532169951528980380046225326543059620112976078093804700708253262944420907657116299070555438667412268175135420224365213121643870702102806148718860685577078604519610915591476929512831640256158143246576584372193925119640369483635047031518379751793774536086494380122043249439169938997761097443755355093460989445345892425466068303397531371886408282838680013005003219334421466423329195327586339087184894900931121995460929730575337512057136172057818667327499071839664809037157569470416747368057101862381057591528980870758761534287963367199506098000515084031692251987915598649101772112936621172449522965229289199405757755441914414694214281046017765431978538916600709758556176548418835885555899733143547104550814383935948596359257037038421021131029925459722642508220309762366599944507980294570418161685710532070484414142293674373730491295410354175510081330756822249954847166994391041233369758799100750723190761454540357672530379910865671493436221419359198157099395457169233482217879979256590697577287873506196182090933521864543527011459711745471944043277355599788948907926673691857915999123986640899154626152163334721743047228173214538989858736115366001693904859124402150756239679727553777415475857197860380414153391558951771898944540957399546650545257935614135026916994635841633788920768665838072535496953421273136665434515090053068799539288399860473630255247888094123267619415197060724274898161404424462626238737208581872599175682197501665650269392702365456942745211402683004747466163964678583622902240429608412682158544467061181641530464914549989491340666558132851859992872517050549187277151381918234584055331465510449543055266637258483094443575154217502503737486024041242030405401262167363934221857445394339319383484281995679315206556262074737654776121688893064201977350273485229526597592544886729029631826548971861963028156516275995242700237633811896284100359399255763755338148933858063475008676605708717653829093307384338763975694141393843132455830359173288593516194290299817662666790901298673779501148633664113177759409005568248445880916806243923783503061332015163387648433940147443840772619349448804804947335888348753625695845173193921010433961779917573462103597251667652150412026917943117481081462915460336398667156511862623457009262251210256367000440340730212518752200532375624230793142643817007182730756727426460987482846316953981209288161161131951482291431128532272493987370025384246755900279369769605435112942180801843204949428409713680882231131797879430327064150524778213650827620624524411588559068017659347874004150681714787378036524492030741541634153129675073696976737320159873711329774138921702799212731415832743113560900859227207340633344872877682052604807656578546039934038004154509382435706487193170047366561702130061227369821714197451970722178345226229280530607493334285987298676763074989768711629275884903900534596055486885576198916395868191364005577481655283385487618195301397894885678667719860003355242262991485487680035771014600928193259484450383088120346104971950029635941973346343686962018332180115513021238800112123777553190177547559896305218870246774067336096120950765882416705903429993559066925235846180831516868808591416983961458410725392795040987355095911696611485872362197999777258563531914708439553477364197828604162724207032805282211763612177574421090995551571299879563210752488400096975460253858659571893088631749029252770400786110846494542382609392355753062689600367323587048735940735610033561871025144027026234990045953641263177699851145789242678122023409460351076751709504391228423234541910119584926398638702163510094871442828466060920976768673503755146528331045580361507251492042440461593864721977257816497327899032580309572386654727148847530050333290012078324717238164184246133065276063573869842481219356843717569646832087636949481332432927037999812811135789419478017792883907935085867594134698272241832829724628934381637201596849454326748353322718195108685554593087476889827963386093505018594174923232714579414877986255901289480224658586503606120947587008338758583395192366582909780255577211476557363395745725932043216450509479488562665714888586014386774507572123969120739649466921007395961731889833948625939325513375374353846615997109268686106652225841447463674698218562432088418536872823823795964708707068788097228055658532989996448438030530368081628311217388997142000058810772387074017693333308529630221573629624883472907680613639045164771877777715811838297479367387933640224046727855303286912230100745923977644352448844146115608634195490111738690732696214286544298282749273137692189405035528047620075104060209744038293520974628598372820087636143218779465553273761544741770828407863149108592030344763297588830846399616693555788954177449383662840882035493405850379723708596579475256334574361589294753377036859963602468975183896359066119875149722034740550926046326191320357999247584291661125246933793317112947169965088722340520149655122293269315501159623248548450607455804080246810744305496302395425787396337060218031354632013154106878137409155657785445904033822620962285911498525992213791324054494530588467375218574278407991859596865096409947316012360306806577305714311508151555807819488104055803433137346367470259104990885306495368225760196992503417655079084420212773669492813889179572823750450651102815809063922656157486303938697179165764848431106452453032515557932499352212280190982676785044816472714191864239160502166997772587772180588062704269185079543439726999020815340425480858864819010387508806062073298944002798251959638057133750895841082686864763816872148174752577204789389838681450257715065951549607463641392844664671008554960655640251102116508412900612340630253665383297114028538444533882076601930686054578664820947363740162813254335347463999147478173793941220557976143456930284519508134656231137908249444696546336964875198094859487101119068731828586698146816272574857570474893762456702239633157102122139734393947384421314501143772622450031338933687750527066669011047860043147785544072720373612365965274780576406004659257183307036989076505769966136135909805876624998721010347351975299918052792432380129202031683627421679323457495299543496953601064026536146776382961837008765794900364189049252626189005938187031950059403470545498947007599893129411126300315581748113622784789858082548599281847685227637211877796898649680990797922871264290633869263919901197968483300555276225018988464566718319374503391608706619816127697786600981819222277235376980844418726326216266696325436408686744629222873231687967775320199723740238312457546883612289637325386945727666773690856948610261919784811565144417461589293417402328261758760749580360983714478744028313637294494703182679001258116984797335057543351987562325900195470700572608654871165837776508892814341154972788365001770007159775724994012356986681426164831566510094798457655877017119826185066374891130452716425306345901296061871342488535717894148963830534277886904621505920992214764412488488678098917456628632017241249433026521787754112852332993393808770457291381758472201484664360057197643645425410805054467989801233400662349297821372960543409671676234520384395875244316987536278291422762028301428825791184588900904998060586171430066753345507284716268407612745821893023482293483280112576731270662844133981874584705915252328002224186244971978713715765413887317627043773164042846849592498521549547672214095164825479910605659797568490685385512730837207866798484986605021518238316643191258435396810022993190273324498744690926055755682614551893591898483785444083060860948003355179063169891720079053070953296762351832009313777157359225067140889339423408276836845462070224874171217923780087722943924788223010153727421793026905777410970966788475033968320376775664666491064596263717213310914387181944246832200652691994956990209890779625965422043753232248665197559230548665285507519023866065712181893722276869507179782073773727684173944260409469172654274082009732750370823473504698315336428113739493340376346129859315068107575703929695756056090709184040734100726958450600083135033590500007408334786838004003733124492717751445913647187397666270896164902648787591949439375206400828284701510526621585472622379832184369751718598424345870366633703219948477347337366436151928579338204206194389553314855513817102309174530007373860456837111815517520400603714575069947045420867253088308829193206288763255900980490969321242279095710008177838167691510046700284104208500443092837335667887085004240502162764997008559076858491853922047434646381389922355960020885692848150966470127742810176220361300671077022034072913094358651914211064513384953312251785672603032742982189133471084844881895653152534388018675836452955309798022888999837070680929838392488603160282481181149952232614676132972032545565310799481635885985563766759131109059266591261275383438119623060328551851773517867463531636509753669830509044551147355802149210175536387540848550500182293242870478214918404856479781354680767162415870282092037934959790127326231156753737154084383766030280161159061383516224143803896943946095546138853201221830047028844581579439155396345350656831969701255160258059300765168357706661949595008442849070508853171664361720741992638838676728168610028545042422543921445012369091775101358766640067581591438030181134255315094423023477364790899132780083955269860290367302924812628983418474327569973318354703339102954414977540356031533526295237522536222964100748675989435212831518241881399232264901093484082929384467836377842919693911102933385592076260557162582022728876229175133447631634938793766592823866522152722786116563954426180573524003526313006414394979835399658002188979319655889985040898587724611164974458520050986499971048473431827967395938618095005677529650942572644055262694151411557464104470103310513520077159666276290760005257834139851640854922479209780611809934944977545431916994369259708532751991067484169702566503104078688381756107526088767031624607338186395289607598581544866230223493006577751663082688343858990564125331707676711498580266100673992138778707570720187446940997583592982404880878558208011666391207015152631196163575261551908906166260379771042812679427678281625186435295297321200037360964788127596963006188617380417468413651293125744733789115738452722853768331945654818525260055971310553090345352997004888039123998053238734849492402487569956624490086227127705349884170275288436141263908005762971111585032292988933618114809658370912312008346742450781751206585209404524406734477241111902723066862425018166565434634140244892859347200980621222470200544214102778375013383513253101069467214942231450753006122452070601519812654946660501919995249125610371437213491317330017972512051644098212778191052223230626317981570365104567413410520490244047448335448454023468784801477977202462476648238553881572506064694882553491640092614244052315223000854767780343334581670992811155091350415349409121520028609470280554871641762338173441777297732014198362660821595126562301849206464657215837139211756899840802651896195834644427131365865954195292144428948879349191183574791561967286057824062472822366480689750686186928128373147640380196983119513786320714901836060732643383045049725446788648704062358604726660628007639242321819175928143067206243123857823448825960775187569427672929757883750318771242159242558122793808753487811923515948904865286384822190557421845504813814621925097296302051967791583792436816095147949506189748333810030587937149036743744866963494375466934288219470647782716183831112416286527363449646409053597547028927283128500490144961916335567131916052867597372483787954950393809658856328625567979315877157671318168734082344999825469859345625488435637371212284076864875261002118277757054361688586037298092072360688924179799445775305234847827613450529087990677879088956532224519567770487135113164760410724543165508600069022637476082989611863003816832386969670586772216579584259996398330912542623685800176753036687348064603477877992674774214365438022591561043519912901205740758124645749137184844053814572971807716952474580796460152460437231008285477503611052456623461558956710891651114523158617455398288149855910136678598130509162198043463715131378663300849077432107495808444693396013041378992070994619333256472875520483483650620933473091926715174616459489163015178630855649671065109319232272390794760427635859733376197956335775846507591780758431637644295613444028613087654455265356343809982289388873716728119646752900123164894567630187655114459489070293393188422746841527241167339865718478421010546894140839065921049992030886486651795361357409810556696009924501725416203282462154654932837670843448265079685357849984341945061867951946783473885184161039127102119545942626130007744100688515798950397188687571552643048719069497100971747340403523333667042806670702406242416470599181125893768099766147384241138013899009974569941599820100147763786724252723810080610820761252116405515524621702528023883498511294393503552669694278181007708811976563407294747571589244411458437933942447997790759519240851280606354753788731821531789690625786735745560959061784487003272912025550489630391701938471280730194913517849986787326036434040273211880437239492242042008771128298107319641118797287386482947803997843736075599907670393774426727697563836009566241733432009522255445139348149030033231499214073918240782212681811055029403985646159266805526867934846386262358045573342828643511729431822808242954757813559949873278261097358841466984937378750916449363827582731540422566063991378830518643495108155154810458567785347730746106041425241030692605636995249640166719303979029597775983995551667231295840469169820606146334430303838748065142003378012406099044048536359185323326431901224296475816781250221598608050257546288009626970126322016481236958189153719299124570646166597631121069500930041618083960491587141322748444139403151412952958317726476474794476331555067348946358622227199866340246622097732185304395576873054197095114431542668249540517386372549118039336386917526435894908287830663096391445337850156322016391058417174544811698119258780017743510376851490606834291187793529558899382472024438200991505828452450771535382073058153441194886062356424363542638112963788595440011716887552467891431546184520815739270569393437504505498777429492136532853380900297038537333018938034008239021270738981277011813907289176681283286709581173659225721417289222924169101248474199593482904691890333973210469241212492674861222990530719286447182579716084232373064095678493059561950742725974624809266397040502188964059327357609051922217177690693819133953444581153268114332493453582497885512415633551152645184984500667046262331772673336624368217491040101491927097902553199192377473432163724678286384031061193013687844385653292829726002096852916232658106406806715735646282992536399395104785361062383933920171257694301709587870381470302028014479623258847290813031803646493833518128649128324912289215024216876834685229863676740881901435797248530430483701991887483406872216017019762444362389927325584264896517982169658059242850320581919509263036914205230306800064704603931105885788944721549721733985365173804273974741933298237902891505067415721573121821188679562862459897303656030888210999246147973474793449785809732707326512432002373065111243490183049346456377583068181136499043546891649931750421562246709561755896156495378078580583368227124500273066857703380081832813752689824241181044856763524818714029585720368603783757141019196886829525779819350055500667793222600229933524271172750880790210750916862738354352012472439606013349829080707576642932654200062067480448030081902950377109695123692907864972280286474242393303329335735891782011352513301969649454147808984887358529780747412881980751611165082375958248808557275112519472087799558662622454015595392938222722352194362698570116386365407495841990579517380402337960760718093948614295783161210101479862419752870848090433907696986170815687570089402738190420521954136408871546470934399838776762812435019050681170585373752694038388706771328420571454214512240352677037477036331004555760754039711208665167190617628282819697783013699032484451226424078416433522171480221754108386070197305442564865137114725828961712505312376675171491691772988331589238017543492095225077925557941591364263575568351054440851832626123660336294006047859763822661638072218120269687841053693177027388324485143843884727928019945515623191232697234386491518273059721320722131938030984709942329387117052725774689994845513483808614419107094295239823115482117923127034250386101001390060988813792471480448204147727453072204058333812460738421381677584799840116023940470540060144013286251455238375855414013491405984209895141780861364132665815655664947571840030435375247471617661887440939492862308031541227223485249246911052774187407527366655631206568167767077652118485022284861563290557089120045227170245732641718949642761821775574235045573542082098993838712947677540174417244735974724919093983087905748600305521205720366613320427311944284654722294182157312274362866859149664017101897099326794795346274335694953656254615228204345662400452239386450265377001716483967114844112335765198165641452194689305820283177159014113230088923662082151132718495090186383030708489694097253692781054352093384096108511597421680808563609759116288379503493153127979445138366448152327092291729247273669869553393731435347553321702500197603468222654354914774605848841274331956097143673931463704778055620147860177990504144400208720763073205224213139855346336493242678203985706662015481273643649432663773646984419319149673690603478251526948935686806952174961233021056702052095203179547691670914303018655743304439347966340373416228978476647464817023591675116369938399589213884847628001661546464825085083139069508171653775684649927111306192066036139002825735469835066454365618584879651310116970732208192390879704100645439561086237343833115409882972323034263841639014787919458926051211677913554334437032566007304878022141561358311809997162479911748780648477848505167201857203609563067176309089209846619513943026962771689430908422095226300413774008920979881166167666567426392626161040837060434310016675840942224993237084803796264668394135065584295536364774741129473339278597461035384823886587765140572391051652611415758578698573551612199156980145212572296292506377762993038238127498504936578361527661685823882324854317257379037196644879730777727422805996988643950573011132871069460868370590459271623338430573549799040134471358476045016830738961720691141799688521069773183308667606911328180441029918443798294516646361440769676952017129072840910864779717326453779957984913472060629725201287001869531348041458058533239399276365368425743651983785799873035215818212874482536340244791722377340248467397407669482073004895000710351485707464500284890641836322297870569817356652464667875371921797427335480833247626951523475144044760998271162602159102363632378139147101587839883998635922886713090050279990591336624494300015890062080099835852645925356427526262213296016796052298837251981140310340286449370496741108510715143819219223905811257567637355074294758943140210288745311045000232755905165389653105782882018778006717190305298575287203179465210440658772078856508031895140790909627797585379234898503913442829993250405841212755169971018993067044302827683790780178219088636572634929970110333884283944002531817900524936561973463047531445315409232242663527087386745903757318718469626154552147645664729771690397660393118354059422495179416338697363139089552585288954947322480876763993368293033792796716691496508581529387878196169776201228040428181506245981662011016708199882730576787472100778172223937951263939554423259483860857947853285203903385489848752198584180865715967574479913568247409723559630619692611829742671104988476782189989805484999072845345567479095174307931912344063808709603898964224558454233309732703215383444425255477660433197455073597625309120004425046354371667099828944627305002512782684282563000252134870262380220605173764684911251253686998867656704300502231726981392755529089464379936715785013021118497625530911198523628564796807499488930569498986264900998231276365595327091220335590812680056014293429243233992058206852621395297400204533677604301036316652412940313455310346836215175296843285738602934425210105254404545694041921089641997658074779270403894849330762723614006483692094945179169067357698866705778465343525643882109420282107174968220021410113174965183528590114134649244114220797702458738964851955573630348312748167523028878048695623592675540651683104690947782171875533114104770027390600315683791574745642873050495213370028311670698115473462532959096426340791729308840196088809802292957075804759093358065173385213160606762150831845905968326328454441237076705655564838567985754664263486628197521683280453741301757344867229905265662919232982442341844310331768533050832925606589589968168420603132976622267833386081785156343035603006304427973990058311549046441013712586230612126609419507008223926598062812972714969333896238827462039227387993957744353154001894737712704436639831736276756221632033355972781693892124868968428830008344558397769681003540259692274779231397978761084330195898411183434330520931987695003854799794035744480535886649951308686312558305828782581677781134653391378230068208040263739109610374328546078408332088773447039339322033693279356106359872216996229108256337644565707049954210890492835001409155324876313171551924582544586660413312236259967667184255347005233923605508167967537835529663172055392359379852579370139116136355794124638181677339778489038318820854127146164731349542271939890688421483932113690400124682320556127192223067024691938613234729772241528061215116091901664661980053633170899759721554867318629517514064497065244848367011235414528926293780097621971979200190653383799344511479849452559078388238474886007915278163842738211844033370032819176708476326999569150773636623290613543938643241169817922734629848158131019084259336323349100202647695165711558261819773691250237892733711821404256731738799006654993679865038375511053804265920229986560853104271169780471185852618067868125380366149295537715128245005909273053666950798571095869260276035965556382181871136550265461362230845321044020136250559036505616398782064710730691528006076507689940092731030594944043560715801903801231471844668240732960568331756763144370214458508317175100122081875914051326218051892870521808257917993931037710505180836353035755561612180730651335824536828483790251444876173197245715268702485051375042836050758926383595278509783634169886125453751111457794780028611827480810520698740315982829148432205608578071645710129658727993560593993501298259199733123640933468638598497447375902860172590207310710032242735628186440425535433682518175067891783321276980478403417845598261971148019081780262835023660645387796813480930603953793720780445507846124916836154591104239926434868594200584477123437944296356969680152161753672922956074621999081351903131350443203901712683808588714573159504130616420596974285407014568604675985306664792476640674211668456889454693355315608548606051672293263945714966744914111217736660559104414232084481088905124392565571131172060946474525658022752305472082368382734693048380472608697942740362438259862293793678685761327754998584060172969883860605301746466577469785368156316962754223997990094860291559202147958163618258526484430892096865357108880805715273702480368252034381707242948005378685904345466269658254529114147152935185453591887339089484267272632947287605716247505625782774322030563914503006085954697256960954759972852826565247383992218109155348826448918916589349912545928606429502089855537102486033265408929313446734096948731365735447020420670030116714989945824119917341555262253165352781623798581234175045501955405555796303154820325571910552774420441576637570250838027410574379741940997923713908230345624491754597780127133262818670180816142884644361733802806562388447194729230049852109040848766273266170486050960038771433958613162456729949029146376148194191342452089331448904677977036016037790487610652521315587342476487332685477107479121865276178796666833907719990614843989961098133768234226533221153738047085160125948324121675278340693262276483343346661803860672992623574617116209570579008160958153635526463969601345683382196936076355275890550476526686187533591535942405274169447449912696270077863375854505471763942775631119756743992783973657120522542147179909784456524352980167976889512977806731007358321558919679498550720308882519250528000074336670611446820780514932306368192997959021168168166084674118365501094073273263261701363475262688430966952784637530142993345437049573566660802748485426593125732464589848643973389332326902529528746785936846186645281177112878771177858535995587289669404429593739038107789073327944668285126612773892427126604291569148815377691598712400161636904409632824186937283516511217865394704523808416531918869676667750372619398459561877351764747078695517167317583071922770870240531300052516170523208697919810956224698013484459764182729329564842652461377070273054408942283335398871945785489355101463436392801172500167590455611024276980867094558843512984603668711225779682994308498032981847729943239575822372018936634041804571292289334133741313382285372492369239894615919652307461260380822404777928237699272253338267302553342994276766042646581848499677060827250147411067090517407398524661491407314177442915156798465949651693360449970167720868660517606118437666174239798865572196920197321019522905773849371351021170918585967973246345640369583942635958418751513364487248362488821928369866923582666874068277923705845847279865099505738263736623160438951906496130174795811758164925693930318388794790930307718324460109956661041804467389626588603066188150275098159638172710222904641183104953115150697013797056131009270409900069981879698635679700528461435563593012165479596647226090787289510224187667335187259762674618635107565586162871857803853163635532405814876081069047829986250233293933858538995872137361129756343352176917196668520399980072022664963257563179675187834589302502846932362009903471401222540818295766975316893636869692718375815692296821176714454564507290566946868038993622480501818233302302825909929200942599271349456342497282128388080254949093526017182391400401195200232385311733949994035174485789867895549587254435336750624764948262906324250942086802726867905105261120817970445596018444618805676288717744588281735931831772038428305445072118223703445002463964247655192526124983792105872628719720206846080837909228305012479294244089920440959295024630842954106062194277012090326802735888187175267736622317098511129980946628097771780542128089739876155618977509627555664835995472070026774156983148346741688851862232896652146952587004838100080887484769855965960368611377688057268143232618630228007873718450803972128447794653047898914622011458202112322278778693255805622985899433560138656393169346767477381103146402118688523478396301641915713005781966319930821227442468774459385156946804782361427467789956254421149533294788909907887762996955941584086158567974415658473875011723875042147413582931923823007402614342322254965113466284132246326031650813837913676250432654614202494860504899742964873953600771592335038439881662776615101754230507267451422432719257876924071381561529842846554714349468653952029931040011440759002834052152305066214692256689432944698622819204663736603177216118296896245199462878144562803498528028772859530012560650403087062817323924495255147194021993428086527361135230109673969973088523641631852715630259605773749410589580680056105615990361935559692637032202392549517966578390765699003473398166138399380325715895091112401241172291365781599137286965960199835532524473159799573306065365295135495544374530728089402552002272262349036327020418389224317929274680302124136695056747265851936678835393661019101411599884372636634498238685905164592738962674888695928267645049287985835548050460263562255329446883169587572065343509773892979584078916055881437597952372921127464942953270573920743610309430018352266413069169189779931482437418268265242962556910267218758805338708823857610479827300825914689147743805330518782487443577055297904710827517144713414966321204452554724331629031749470006965003065281820886250291678963472240600974373509215522921500608432777441659175580480296970541703422542101056234128517241636322902207207517041518971892100366229959727500326156871656478693576472452916740020267135435017853797343329111087567110479624538702799918190700603301079602948308055256211094533954235179157864133153663878042349618073614516251364447160763124685383388777407156806278966881741169243325563250327176357244461578143758111878500172221862642752107235333911984145638774803180066283064871870549399290348583439838548066886329392994475198760460546778056238072736754581766276929945180636497740909718804920996773505139356304245985684554111620153283620949524952070385302190838185109174369510387282103668508252846730260588435828678912771863797098655299730452520874887029434016789760973993446938944481137119519754870567765341200703606638736298459085228177396479368015994474682927647633035598078437692580117075639449204204277782605247780913812720736521775170527403232334132947913242525210242755147031856706494928367098431096184113123085362320632561745874621881480026477539715234752383681175208829600568828982478722407287316881652903313761611552695143775891022545007643639522861591095581043628442188851909511333169971885895989282344539331788060941339172022843534327156534462424938196660697509384212934653321368483659892115137644184468573634715961100264448401941943165051013676725137045078120550163254299653585970194768470861881494511798426105994258139512076600248826831696651489310471515386824525265763103193408857201004633763504702502716454033608531507644168075887425127214826957251780379541372535207963999033911366698452073665320577956897025244792810427360773053752334048562368955708565469753922238308707200837493467483182519181898512031177378778273074057600456175545598832536550264701198986115391734184280999990889380069362618399687090724006066881447696797623258982375290317750895926016628640291796175864656114132081548409726078198881189180022572742517629343186105547301654704978153329763381496477695235052496545869634353078149383742847815919193945096134131162060166745388262775192198031943390505819708965849385367590573880535249321784589537113856148070260378715865007185274860048113794983317094441089173754408766576621734143151315982245424599551869208478107509807853509898761829097928067422055966978689956036488627482697828662470938001713064020539747339965106184706148660274092503290419742552253130408365528442482684225382691571921661383689051254519058390494217986340196295492760937347146083923313311195411478976423125075384847401509504067061323774858075150638467442054133653598730593151280852134276573640005747833848865981530490381075440934497882269192923809658307555071006198502846350008369324654788895914941879999197195447437969838695668130264707877927978364533882989334094909864817220975325444028908186902685627325726758460602320479767066794912731915673304603709575578821665073651816744531669191403813186398001123570134128158732783724274960554856895710970353683794976959275721992268611594311356433246186311632456901665146578729374318176715820651965058064508152108102684993856249483628221681342742039767099258629699984321716986221887738498667800963595280324722654699443360324983701718262871953096180088853988519471414972556090619309289111122937938380077481610475672517265133880319653778943287772049049162352971221103358882119344150553778986950885149273890169299646591221347243428893749141166139616657058069208021439845629081478768909341143124291037531384028212494994958127019266875505051423027382598530817530634642211764972776114633725451484097508942966970638656821017958538895014542800372333847887034071559568460280311788528577903378495956166860095444899593365320830056420619752479422279715762824168003700873270192598874424610796305908448055118027020270790007705043877045306001043351710718289200660884973054994917484276821867581370231920095543944105018950746627841201521782239322991592920632373265252782521339642881520198103495735612395916909731659553577696448161740605890391268175487720968866144148869332379459437927151481595764200833984564650240673534221228661007975328112076570663099440686125489499719665928125709899998378064860829387764686826131095811075414525979596251552182817942749840357646617739542125181328323288574898422070574888596779209223805127303325868303074312830827004283501583722927155105477050960106582900842189875655602971104474186144171393694200517414222160042795922721512049492013420350609692345764866721050224777809453150626146136954228385976945943106443530324251524440170495213867943562129302560789687103804645320926112205461896046785652502053309999495759576029657483026656047130985747379752616894283991882273799710138425009394544726384786941127718825673036350934071769364875098752530933902183230348039065147604568595511959440334397897874134573559477433755961111003604045169072509053571184193983223940170725610025529714200908329448107726335098516475169632678792858837557708029075355333236439068254480414492135429041213183176686660162844434110021453905866825345976649527155705444366846189882531191766650045463690417687362213307611382904663484298662021483788150954613730517027819123806818312298042608357140803396350769611976253497158763001623240128243693442992007098264952460619849120139202121125533414823244060271980753724316376163906529280443360924096696442116883264860818012387411866051242554465226182360219515901777105821444057960631255850255912540168363270027768703371442032278767690677173855705102410647717978375363334929177576214532388396025759598707463731129589682418043715479608907152421813587790150668354892465239380345102000572111755487875259681730541606278458613238303885662772614936681158618093776144678118335765428938497452501151702631271339864128709584102674182382421223045330255369936661769225029305257401835164043444264612921108788667812435429734337557388453693369377954953250948761159514836801833571731238387234877238015727105084648652167600560192307319040759059771181824876833296306460436673345010209683264947710719954348226110120792715083156975381289013711560682913267186915659422718435954553093111475114631948949958092273144403673414393413650196270985274545712350577144296253707884554868304629482343462876625685774241453591047628937121262549932781777823573220828470926275432915736898447150562176307943880633292637054297555667497806431621775773748131971727852885793631742314123238177778080460086751480120387414010094805693139085116588315290937104204179129821215736815715915760274895053876232476827407675131844085334439621213317716198341066455636903265570650571705900140732060399067936682026111546136538022767659262363004779362858198024492252474691036434747931138811785333411760017958849323050048733343728418268110238936575810710231082465438330747201348889544346903737672511331662791510333634150281705298077920415725236840076687356687131867443977298124648736425410270020432752871062403635468357571199442631142662983523735624285158810041540965137035704886026319871486895910567186475707141314666763189516313822311443274871270049534343914116925833765019104206235047724275921018469066473298168450671056877589764465395041358092358515151571357041969560541184903948872774624506507475015807509747291032954041068177814885583355169064699001614837774278707592719345467192796698230104092776646951996227429560801145801435508271082746752930700844760215920118287082477151487228793801598208406280968226715599924841098007557961218342958502010182422332515811075350903117628955742785625382792158638442869911324716363119535683621177593522425908744062192534966559183268260028318989442842125963554325671391685398020296612087603885818539387510084914453323626313232206688895688940601125313748617987796261474513338793863541720358163852981770495566750226367488099663152380927101232422586025424129227857582620208784693873530299454250682021887743277895419264434475192228119912787250296716100036772110303043235956991573985479421207798478572497493011884227262106210292654268312190367442801003497529371862107137563467557370602791840470869303711835793823052688970058001734894947184582150262651558596178288376016539829494910179985895138800553470973494523240297803278390525398582533823482653215376884766162865183453204794897697554295533254531756278879188250930541532536103292456644390711125087057311819089171317397650061039291372504526698170373809430977991966134772886047226770536639161971916621954876701455623167516870497257127631523927041571781046097074320271429236727419230151867224551268777734601611005953139345769397853381809863889177678143218538103995350684489521469581995527390286729276681447473403321006742492592732624979534972258605970749983239892664117353915595543579379652068820833593644253196260577843549657915478848097451686388361262143024817559792992549252457228484526638379857140907551085910092970598310861368876722105360768265484493278278301291221402623655880026519639777326701854401361082956757771890241505544404298175263063617898432076659092324416248367875714497848282634739711792428609124344350707110044600128796639521923513850391156520299677241344488975775873054584545110405206818766577618863296615362182031971142862546759253122867807183076183394195938286652602945292396929032758700845445236018241544065154964433949368494696044620607277884670417270504648416849604669437910027460160726134703548043010893105768912282975339694572987533393868645468260259494652747527217647172346018716469382336832211161916223990663954717889222738664422205312075361843785674469882882375230409756867147773581556490026039398955013203244601840609236546326696830148036324310204484506005492236017544595940393126386061135285060241232318602043556092173771836189204309914427128484975496464011635470279033741028163392783482555277391530133281173466595424868186949245167821287034224965435865811367602988855266312344535103900028222457495536653163985680104186994867342760256921251190897722482402189431435094311346069339721838536834392731233572299277428999220642039255540096135125982500407966281075584183381886542957628564368505480408949510682420902613043629779473821902751001506537394607506748516234566592020165174430193921372313965013231585165819757723468269322490741189443875283581720340562441611373932836134675789387607275592016061277978742269392640543596295172831291462595202018838704475529196300061405403745094501857056137805419010064861622738116347946468619982145476439369166941729623938491077070553059730615909737150037525904334600334247887051094963667987632952831343963587433063466059078818123195977532013838593731687995174980938638326769128180474966491349906742124445176100776384829703295030143181483032344115855410695085786027966568612743978291448929032396617369043128126069586202575401277073562761379916228576680064122149345762497579489506611847349969726897505103022712505478731692013275092878239627245148460177654770390824979722005590172854137817864287958224512974338260306706415760935002252975562452226508546069951321785825463340017016634135317208343331429703679342826029085054970479019448677949790823165465775788043299432719056437508342627543928722038555419504947974712894059014398836676201644766831442097744088335926804934014012901590561939084921942243962271383439331400693084368984368880743731325055748728727473472815016865794126673041109260901849505908628892070318484556548946523036815857138984057233214184752620735638738041237925793832466286030911085737037337657378711439435892406753865669418105830658847893514603553650210839817657147757738945057376224151975304545355202989273579899066697382687932632707393355981114595584974230599595669171540908976366085664193973504080283325963603403602048156632299263356789448599366516753502600385054773720522404116477758638285115145853739269875040827838049599267483849793792237984587415931949160137240295179436699726003565757958147408407593902842144600066442139596742809447170050308211391550783967821943271277254068811250267512524220659477771662723341008007924704600766175528565424128208430435706702424117402111026544897788717718883310038474421271625061769686490843437846919885333644304287705336215020083535444970039219900607424020050084137035490078610919080141891104478691710136762562454429390662174907746763313821281655945867978913115697394806092674842405322260901356068965588075400104728784781374721504000002947986589699100286773480067526427954938039273000902411072425913573734366361246096757019348196544378866074272900877196020716601271842275011620578082553278826003261439164542206041967609624019163470938962096544404861595061770919846355922199984440477039577485382669296995915250163578712381804044815705129246365201962839081886475761726532678326268190086374353216092253503577781728980296993551779652503135520371512440715862446204759532005195852791405416045988906267657516341318382139658924825441930531841827987469706016606627141695856586672585524221561580467746392667088023503582018363852166179485198875194506481561971381946683562167556543055022801455092089709212475788528382754639953018493572356018483068619747708203574215355544047347536110485538999505026433785130709311127332248870383458694821988694391984677970174412431248189757572307528636266745318525439254623882015060294763950674542338092997893497619698736742772976241884651495905734084457779125456056870666419202614776958404449189490506188114932994112431190836469653561599102864103208618973895418499265486581967969787963087780441532947624696647676445371901474283442521647324160923555705735959057808608346629479359000097914971579839026819533506802623820655302764652165834748430651533283357595809111078218193479014689795650920912764413997478403089422858344814698051525293614727212501250867603249552733079942775526419752780241675135878888318332216035267533990967122659589920421188651685539832744904138607242372079654517446808770581305232145047064803125718057262546315628008180746917864979208936935066706312455142648209658283300757020735812984384462030777010387762103329593937321447091934566081670743568454296969827472397659236325816093667118938550417312300342367523136817180739652433367651024588241455161102887323767528668544461331921376159538756089835691420348758730371744659682703398974894651600812233919376671278564350256532517902581378674789245866573475457466198025774209445238200069129014094176371633908934176995912972501016751273018458692236579561298668882795198728734492087026619925830685523733866474207963964126553657109480036908370997945372931613518944325951257674079237530448072411071472212368526460424657470959885385864477450440799774582339902848001142945100297101144106409046833888902545264592413746850487355445315473482086380803934707599744865226620618555920456058218994988534224402308689769079114013488397820605011068999902923855970338449997988167306284948509450092322258283425620624764071287618271997947669149597957619137208878787835604298348722398310446997520827730296959757455869334216359689053402710809831441558271697686825954793431747426296137732700999976233868120518729265052742023399333438757574385497088159532153110283502490034698968971406755480392120440614437255471616599002747709388042043896042320724152212356879823591505894051633357886398170219751797384279591349665208932554101964163031454651788631900975238178554509786289129123151794590633774177550503137794469633368742730360426324968464136717464669309049908042639829142595312469486064488595029091538125896407945828100026246988579478486905217403395901664644561384998461441100994522749938190011307306786015616353576485731887380085944126626316532949886345075084536083936809437060013522287993043938438244729743211905173406997026763144992148278935824780576060761811666946152309622767003099466451064605720717297628076094083117864745451469705094886016969183560085372605128008266715035024743861042812421938154183451645606495930917609759493947309049837764757500646977462165534713601083457664907333440977649313635677179385446469129286583950608784515710948434195546674109289066927914093828079026526596827654609969019132677695977547530217168843495944390899865718183029888158688800067903908379222205944655909295252613164245221963351868914016089208249301601604377605761675576412357700096726324164791472349948169810137897690511765882160364367130396078624282002921251726038999331274683927616751492203187598216935461726062896676402398053309348761234400430334196487816565818385290362658631250664323503290045587460157051911462055353777250909641592965793734834524700252097283405845981809087310870469842832026430733748720325927131191296285834523687151937703030723572938131952848382360203752681460657834585588451582513481373004084008481878247999472453449366571901247508964704024279906662221518645558739624365972842942146411572286800150084648138933709591927725386292317308079868372234881662035044608558381360468494708886723101402551477077226453568762822832719379828674751372068543051651452422352875053192321540498330194188194903221599309180248811364951009712317728518181117210567441352056587649964130348321081146153674588599749932065273055739854307969133636997523520492219886957101127668516475296494542097177803187185527267125897888361226030320069544837937490356576343930813493259544639361462306963513189854424405072522341506832885952747727957131149773891095261705587688497987794125106235466388515235710770242880288967053156056375100133245045312573957762349513773221896682942355791252173610340736207389922828961820510594773692494619355670969783372004575685506264677215899068580808123240276127266838952207678895927261315385599364166247098167696530351930626863951814555380989452203729611247178358892385771267972565278207814650361705612052780069454388838253033253647788509142624533658205054669577573261965306909181166142665265325483666387496500310310072391284687102656408764723894005123657818140002795903878731269424189056942176299447448964297765198345460568385982546567107486988839652448878998720828491177286063572364097920954581440597184768280636371919537846709708002793678176813430935123955971269948334008596307513558907114178467149632047185172805125987751098736075696465101760402390678731790211996920473006245941529606126002170179341728023844496370663404640030044188407202928528891422467022349608599262907539020656887937165128255396685481111444120681071109407730836557868702672463228491285340183287481140051867634951687458940861620142929380182777036886506824144674008801232668835458883228265133730668209050322958569714750115210962527878124381176350491888176057715476790542506511562783848657570847409218459252107187551374398307783521877999465906052671906480672109683355709417357455675458963542101871912679976819071270112158495469829091950326012416222224288331420184740268720682100915343902507341568685132680408960441180885267454819376512478347758622697836996025746938782220386514547133796121312264036579886417099153111660818826083761661816179828472957271830623127693766787753723787722125595244888088742979684158747282439787367788993394288795149120575290532777129169607833971071768461886811957246954324849800261103215219926702704496180837069529370759465039170967529728440215934754312586157180960982942221135981446666148876963662648838837427012922851277560502825998160531674679212388967197998606894720946075696496298105520935298002642489581477107650588539402015936878586628218067750927910663579721794173946327834350209297803905188850249205296991601396613770313527531381416149243742218163514577898266794716048480322775990093298912409886447486444976977513333088146751790554602529204698126617511360003186061085601265184051092230761616316756464403443703123529539360650239864828758135949935629875752378734439670163300799535135747006713306786470433900351316143694319531062206680758607851106337243578797574956529050088779282971227885740028285923261039749491445335035060529917811291590089461363805606033581727619850982608361871898094712847264912255937193166452398960909969069577253928197385294711683617927578840268212001467413664110437551083889662624990678272359202307062922629586503085118043500656628232485755343551932232776499927616015371067886851933593734274737046193267514127108088468754692728508716687100746958655695331626656660215367188913666492855952814685604149672118876729026256913607661321151352227547782229214926168355089084979559131927832256872164752356609083955357792130539421806477842219663122195003660525499839363064285793142444791409710795736004861987115679461488155974268099797285987948516065989904201929117287927414566275345825061891681551084830703537059408295179265559170195745320295702373542151509504776043724426819787517083782022786998617493972471334336776880556217969172023735725911125400229315765553185972764990374581245902147035695603892760179922833905551759766530383765401238216301183410455501927826594073888274322665675470366094379287488170077713838556763906921663202460237258164084063062627060054100617680509827715869068222698832811510329705036213326732711769470714710012948738325800380551400838109629334836631319057616764622148129883404905538564246493762785351184085190656466216844433890418516841068330754346879593696335249897460762538087193944249872743138878839432460612745585378742096911496922193456339291365885940219491971912793776597534491723932510656214858125689492656184996955359680018804134479416400292117134812552286713696734511788836522054344494908010161210349870372883310182944978145714555319766579139077627233313541402010171519791400024520466595691652619718118335174220248027230547965813477686920493607761296392716973954530314614486679397048026301933145408928756436251399373840868097985472325071611160597645865587550498898074106820859155880490268091961263052887599884847581924737697085431510549196278321921224812231617813143521575709500091475440814038509546647009495114305394679913847455411755395991170447869060778008439839652675885736599733371140397274101039578993531031018739488852167637827704273590346490289279664453474692537678657454636847935154872197841394357365669586945674321788048534867022970725101730801111151715247615804983014750292324958085463393150017165818408253746320092160175063254549403627558874150092201817632385241118304576368206427648731146591413111870179519441256351540641636574037694934292590893674503104378811831972434203206229273130781231117191932565040282097044839209808242348207323669774909019548492610563099230238811329022538994273409438797608411355424943691435772450171184591901726303079193010451349595526188771547500947606602431580430761834782973652269031215755618815991541757427822064606917191583740760466223671576374665874668028245288443859449500511622281054738049282680060119270851471386749585439836634710335634910649516668401202314761931404448670776273740690763125192502101262279192199915627364038862061914107098022282211778145468019738811662354173231548834978335714603480734937719549805217239204570733797157293992414121230687197333580646161736783234018734308770957958056837014962119502452669997688430006618177586032891918139552654231500205710081081935049073461907468939143617197286926751651088498095546586366227434011074611191539538264221236861223028147543823327494117877804104422532704156051705489675965255755657617082477995483950756114939712297383620645005408207618012907816126502071401381359943082348557195541333025173747029291763465625858668900451173634516030220453334698991394606278923088602657304947941031066926444753971890018451477685175754272466814386649509625295371107558779412141616062002175781198014980221752235039534128999614648473474217398547230283872789207630411090030519380949382508980094205041284310317808238015798081632133886414317180438121351072106204175393169161231015684086484351130826559543218346873600667301684831548252188144289095826608973413722379216934266579516342859159207357026416945467737223264756830275447632499330646628713621012284462206808709983288114521932747537544458665702471361510836690135964019588853508832212143137832561441063990951810442723448355532338650937161384385362630509876316187390493440633396190990665523316968478063656892220134653419530476501316924491626910101597471146228145564840848148209652492804108461453072559043610518650761415539117913891911715985323792215831654168940326890041771303971959044139744483757614691518082740485323779314658138728224052764319406601508236765141935165382499446612050011669192490417356960039776763391036271743559463325347882011919686068654896486965219760471050023249477698042212802641115140744205933975119144727968705517614265992536070805587087446248615803137494341470576033033566430445217759210759706699024967138556861682947971804778351220014316498263201357591920820022415886701309751571100779726285889065365029623801495203875976914267085034234478922603605942013618734216790640606271459480115408281833546069252718776019686646349701443327265900505141650303917775777322677852780875772864883419822427132560228002427449241525145658995594356095328776898257997820573848820054926767166286853123542495919420571041192446090697860284909587787905416654503231944448314601018319561930158028043564271233472273717822529529697223195065162314123606802550778950719076845221287957616050270027232289636857466395031247178700919270788444504974758575813065262105148874609615255581253814582543637045376459356194303272119272426871070378322171960537157765782371163532877839856059168082053040363888399673420220067668115352073008246098190469588010425252570291385466427396608936948290881540251054733226731814549646135941892938723803723214780893237038276509675914388403080108154611607167350441403867315819013630197935214342683335086697787765247309371546855831303534616617681138729449681024856776301713672127539883523597717136435244893367629006063077677862301593973267001989352158395151939884126984933327238503597871546370534627358355240721911404526748570027388028179905649695382589185063949573596178661499110439486858080621835429966776041295277139448599206548860545045724206319660769056973485877021692301506723250396559867861644800288299192711060878544191910528334902570120562892625892776228089173551506038810971439132508511544790916989332213193312576095728650818402316376785586047765479797483500686851256624013381182017118017162738887308974855959714493982321613129476472763491108554920465407490600942522967409669937823887970334209984844820753143414870226388990191492820571746596815420216295069095634018409613901547980518230121657391244243679848041177651745068349596717892032945846458733138412664502224644613839118401782257797785330700737339248149420651260971950751887873252500404654614144852997990485219445509770480081461287406319031298768591966991964720474039401116375028325114023882990771379819857330438948448970687886499514237494157076823524381472222540691954897475272154354000458335900466541708276874207890606064481970314979229140414619022336642226245191443228358386931844311899626988453551298797891476702735840495426792906987516917977025945461980110136455994564656446046444351114183554572672453017396416103391312356791718484062330243324405903928212515462716145068410040664174944150487255185978364708922154957019079221115020327583804785546415497957587714843696202160385968106486649007209002418634894433841447883263247542016675327107616933126094576904089273560980393545907544829746723590933535269716264896313351792143038659002969232146723500951450473360978479174803378235676476311839631001111659608695359827807192450956123427591150504441674401492345978194214652715483439452918871781310075231056559528654998881704282569555771381594157339373644683257439096463675619919170382080325250220837901018045371698949198137352905747562939292375879753276199878735578069427060921482670617186979617925740835968413888987579088772305003806987503714492897168179077786254491398269082656492059894897307462592712756298136486302167497770714753673118229509407684715070015066174495422038467232627326999664908724719427619111988864460001348939795834368061682985010403582620186674481606166507232156616517221011519526487911987861471384957504107138693050956069266421418871772395345383088190628330893536103060492802045961982307191985408680071350027807759319075196695544087175326579974432933837058845157473940693766084815684383598987003831800466346865173779041977582260404694048425925354933529563819322552870839655959091726272806415612893388877793914162013936055180905949527959055729538634210658483454377168096911060805419549184121175296030476036488280507773338361357842624828032572667243181291045225288799117778169434027951738996571971326473685470576773488009617171391805574794081444797743082506235706826478438309671575372590621831495606551374210714071983541737167143435046064833138537655343534078010539640681435845057828126810618090843190731081718941795493895124118529340120678614021664869348254916681955079954994006081634286710003899723090207657167067490362942398319176124200810924963988475465234155346807418723919458709652858382490937481383043128412355195598493648971824300594387294960508673205510778146566501475572287028785504120188588771953152806524358701285459077469943280322015221620711775512708398341837668856066456522466185023088316223486687954977970144085381560942371193459509470710633412568021044067806006560684766089292675008884207742467366328626282194899307980685018953861310428967155518870504009424400697031235637152202419188288040537432474783632131309048704893933465740184706617936841154809273181460507999273652094293338121445334716356505381209839852353184674583276475291570507398657685660551904102400422658117875211813012393607518676266081978165428098885460186323102246481465821446823696635526758112649600467281007447678646464740387987078416795729545998044300480450562221556513308679239014945985134952219537900582724371333932746358175473781690307912108307602966392741170813812966622577770677077635603576696172072195871715691983409941450766086141638656911914220396115365773075870328936002746912971674866253673326127876383609288612234142992168991782909659284258589564539313339511564374680552591106016998210567511562876556402480547437327526904978337159000749582190385980865265143181711916907783078368406002141464208392019722445734465785535296169865190592783758022563069707048612105117952636642387124294378384750612278879867335014279486968610928169395905964527379855277080773692560380294906478557312464877716638800501524368105792860540550116037633037388530004740744244725217111589745347732521471791510647850666234135469184996103034337869743836912322059587828229419150576049451462036972892081581617622650766283439575714516905797296297133594494429798427266571801239109079381273448500183285978464960632996530759992311804089333356576824608196450706214356041826566762890888350463027960905551059297259209383651449207355161084438745926900347689844699503955560335112186648772638282780269327421536715250886000025877871708465742084733596200789356260927082820947127709585134506841427511927097651580464504513960872331923082198420547701819339387526076255758530719061242530807827662506196873180404393296682989996153255325776592522872537052999936633216574108161461919256852814343691801973794467957316383529559419398461093190015023490007220507631144066877460290509104951633916193602798291245651486131248316542045292469272238917317915091994328976480513880357859507364656586869977882040958782724501805241955931768977776851255740649580422293185664321110362909901756499997398082391076919443491139100392745145776672301794666148808253795625543380283822874704474812582016970923438554623621397514724060122368303145364566723367451715650169864043925449808604716102050892497257259784758548028872202196464972653221657768533451772834903949796838336769552899506885027988025469853931957258959209745040556624256881560823806956185876716279338054475586740779044684241001681832441825068460724125904131820325471937968968568117437464300096513965225568047742459288618209576449433005091537161259924506364184423116542543903252246087811869966253905765837538239217806602396489894733354203632977792249071138287705808542561445994950985946366418352374831095843232289678736394127049334183544982571412681431311771185978039575576068143452186344665287038370279294823792834866651272560881287588405645154502336265766271418615148490440388087312020065127527504136638765827519877857294078155157787097941896632264522305495612233451881279705997385712398562040603816394774163956070027115443942588115261139810214611110856091886741992256273381323690622057438784541118145416375895488668094031990303267616785269513806724881608135652747541658072057399117463709279107180033924452631349835854099348421649490224943419257565664882622977974422400485024684055222908209360101270902514599687379725295683097021138820352509946137219021439569064432516220956164810791812411508257480188894125300083503513024379486763791350953648359396789176164540888712823213244686600186144029449723012280862011503421392783897130461729526391485281726323563075897282362471008616859442303185640998034701306792948026469779553276503682498463606500360870761985235030848117833847984760187052926309547422303123125073936366441140888432278465625674028958255684304777383045578469566358470221455583149375683324285033980680163196094250329500258438226431146569409568017357645063363575303026849204083202374399185396400223109122775197120571684075773422789636160471964554647056224367052622231034895135618204455191336474425028478003250895068478756578072219329777532849332874902077718778126946847752898411207152150513883681093220813198707982262589018273356093309594853830248444310618397898858498734685982770766877655101672807803853773175208363632107080057863927452958165168514091493042039367771866616723688350637941153929360350028689879188465150218646209603354719544809676283369714852168789332028057295974726877161777487478951759477056031430581006263986256100117969138052635571275297284350545908403117033768199134533543934703691174326878860545723318460206767051539772286171776872979507384363631581937943928038970274754225690495957173966495968167585824244427273733184532178384403725017027087754749065335631026210411783481827803128317540991343110754890085525366866756356298922866378447359446792037786996640766733305330644411587877111863084954324910799797863807356080948987710384314458349186442721193201309359076042579514220961989806605609762185959573390561068137759007697309573898798484681652417815200935120781611770063606337462346659051559571195469661343619283598438441628710818927271623923215259037589463605060045384607089375859711782405721048545445056475323898056460525914146577021564347963934034284729689865565180450032429174826939584448053935014436575875811770746910567688094018492522654840980254155013064602740405384372324400370213657949608792605289285926889274102034461914420088785785643078450371692959903423862567151101059285259114730350980131338689408975397359338876334886509691136145800732789770597757287949991908360772259897549633742148442323248670968085574921706012572787162944758055747857476721863177397261501112740871508801740640843081247368427956472666010762946474984434192785573084240649660989867259056559655432673635406153441513421252516474780186005335662200269434490458029470569823009774438138861307832325227638746549021313896642232097947594385873234432325997363247086810158811007272601307847079945040600970205249033996268541012303154406086658385227433670672678191416901865869081928500978812039578290692565434591762371640595403028985057283055263688930094852765786597379584495524909197971862717973435227281511857953771168216670610495726921807572490899900695997878245157184598084026225801490519917080257130648299972872883808572011249776651131267581714636464009310243274247283288739247451294730920298894231118291114409633736459129620668870430493393851051286862563290639872839424951241552839855524531978184832007635939129387442623620055742301952999149923257542609150808255844653733585396797675170974444867883119435843732539899220905458739989206135267105890358034780431277681177197977687105150814755114748849345470186822661100325905460457262708312513913034591455459862636189021675532296940588959366485101749023409690048528406092554147918221809784719488778639699951367741495562196521220508792759915401248550436318191335972690852971560213229953090563752711468522147075943508297704039769391607189667953415830338189927974748898312084588477679648954593505346307546485961059013997389116054675681544597778842883525695774966999277946401633399864989834016434993868692537360093721866913359624525297903879885949607190570179448740133309672105111175534389122755260584746335415575106352411502637882980900527434849289814869188383964673108562294882955736547354979914826829103342704727897567408415853439647505293076840563219338845581333296724080336459586829095274737199938813810366434733688472329278590961856077028652327295435604244000165461507596303649752579040343035892346813902411478188660555982307242130325051904869431134776383852201571971889848508850889338546606559761646712990313008611308411062385004232650927831656252013752100650736291675621065113698393454124333140500646004009901928044524160599687513726400766805528031328597000607032203010442685454523822153951499753578660409197533144577697245210388648047597273593862268340674885736375716679322392503382175382697450704944363038317526614715574005527737642615695969100541867132291661441855882719584321227645894400599847650923678829640116521928071974558990298493429850450654997342118281247828953699126121936719304211752154099285289672096691836740146847646092302084028673128315663338030087754153360527285013458940475721796250282649961866675018399739856992743209439841145250157199993974526261962718417249606086080870374314937103507637578740082263523728632010712931159969379113664886628285621245432631434021697057736741031507303459351759951037101764833939663607813900456697553962692012367707371708364737680152076882044708528034134656277331528961179958009525953429195196338098146588738998012272676877274764308501664593371273348743982383969965354026384585735300872422496803323914406464134667971257855246418853936868746840043445004468875303383061334868822588607724052861973817873179334047411631785706052918319730062656404322112442701360874610769314014106833188373018915278208621859370279120664384644901710436878709568810643941853040672781020039611250047083357440601963430556525121478286530787024661271865313887061027540133105746442591817657266980305743934150964773030004829447134078792955833429939074545460070780988399264695500850394023242695385406556838381070304783102349414187089004971601174466490148679681778092112958525147923783506784020799907681957937880939070045093175145393153340857670079527892593930698432269210657931570020943101590364865283232036793325232278687140900791981225198960574632483978418535361026450400451828754782097357579294726788756619156626267643009325034496196212161698381982769556320759993495582515680969606970075623472427494014419562669027714905717226257740488465019404402892886922559909313113377644892021062568541566180892061381287685731181216340695879366273959416565273137964952276247911079231622858249456063706099924855664593447444488589420879244374381219443107446801971206509869529879650800274140180130511993154254059084091149417091816916194920280497325525635869190894568467811529733381068489555058243054516936412513677733520643659475825252177746598364890507328560710293828310558315349949132449184166302562953129131956712941929177492155479233967113318509538342212234460113942962201432467860474266632563673506306722011804343534221549599803854537820225669875723668723567527198075764525097700799506060461381318601532692406247123966692233267115378238424594300369128174074846752092902389725282736212898449926282368779498574488550983652163484497810111196620776936463626254291027887720281548476308375991886113691656971498078745389640615223241279260204682386768543178220712082086914228347332394409904151768720275463130289624816112275901380857079428754790431133837648546848369999179544002733122587300421815879317132448607060012406215333928682412336318573553499893770965471787708883144992072274986596433882080646702295032713826759261192414427228643721460256093272480598582071792694025682423403165109280660480785284997307769607145829585710352154492902425584782699010599147003254022503830633902600958146416554115113835197932660810717506326007335107373933460970295434217084529116808969225437358496744966696165953709278711051214848408338204157204057197791607563565744637859739551708491661214628868947462118664844258648633630594054121831747493461699743770205521530794667062222758388502056619734159202680381282280871414454902869952903402623126096446133752349978585097752796140476257737227117675829782296587539687574448234810189112974013965185348741072327596686210210263738494905677523018689754294665416338229590917538352140053903293945439860502719586528612807139425121715741887421649380904322975597203803647052097665098722521673268229489843267650466674782145509623737608913084692560086553952679588303463861774801218540220394749708651813048711190005740695000315029552453748783024094097907550325273378960774750410842889889758251897975653755331331063610107471292111810169054628449462936934378555204264934339571905037566891326147407999502746388301577467367877363981204797351417616914716172659416620891512138698001334757239224449741474577345042875404655505232456656239717277849238239895084193374289331569501202146667537304301941213222186573024776775213685168038199331484290963783464542809364948020246833931471278446910369098176488333023202287728620626289012415573291108289674835169512577662714899221372213011103292581232379095431606390385891394641612071567026306512255299188132865653504573049288442510566664336951724652000319271977928218107520929641748399596080665683678719238424040192106248029050927864449757596532143572231250670926644360424624519909300697431287557989314900855013301378010732925522742146051650232965444555456842413267491560014684570356403375867520115211205312231054004225807300969232359103213616248701396779070065824190710390990467645184978619708823764835998239722910072079502620604625251595964652714537126851947974565889620325033191651685112814723629884134245983044272780432963380914113693606929176730887145770447957466144229153515576088216392202038572860675597821196863730385110107078456151649322473138095182520910480441121480143671644930541855588736635940053045999069408986538474582419244021516021194126066615129293163221993240297194254252746271158020415783311796845270018229425031626463385997407001840161770501458961801682908544635336141695232919812531391796539540402601917556472508733269941852262671936004756168549994953121901093138550782145231455025504700997215705358565181150969521675676983265360320600866367224442716221835796092815051234107643515497711768918455873087374640677439144042121766995272617754067762009525705035331376786034745301238799817817418445058163398002316268984603675893321436636542002068722993134747106631925637662970417879077931723628896129684639381369211241687614408422768030496404053761601944913177783644211120054272145511035661056237514061607580440844505943616418295372442427189841695373348286771274210920223018721230696185349435008755489653132164483373797469088218789822123553021341927759622050069198017719135991969939903671146008236629544055067415695941716067504753156521857882709212810301560107967915671340162201097855799286552122646847864834740064424443098519817093991270910877433126570287090842979397996752162853621109219950409615628870032548114469612853220701190701420041193841752821286287194164109378762290710712281728316893428462572139013095829844849149949793590418748643491439968170326413098949220246354838287084603864281158107724722853459851347667610931814266894180242628749158361912660913170621273272228835590851977451840273748699970863528636244382667888980658831702122022392593152208431994444463287099571417486946783468030480803529100405982703415332548110714923732882994002020651486822114626431184765088202983424307403081254450971763278060335374405550682063885871757271898042448184538242241212099024070102486555879831484459657142692624575097691641158745853517190613068756892433050889832810288512226147696562161030461378374538614518693974465602359649642001600877316296677118383058211420418180190154394748257675990094364850460718039052776920761186325061448789672178541414831286960570740381690596267964285483015327591604653286157757548231263672453625023183637969269580735113939464352764568023659410364538971972472100590962227496919993249226512920104466096402540699503927754450487509490282141715078032206306847930962864460000475751460536394971970324494089594256202454170285047389373152412011105820073046026646998765814696529042784892825317701153543008393023722222735189752174939518179919156762164716071572565955839779831032939120907188699509611164151111879748842472301541084446541190802772377174947587867997354376256711670810533363790726915542029678789420003807460869734095515845839268925994295289817732095406519125675303699003429539965429841536952037582321388512205202737019688262565194193212318165975990088210007391805776912066930220155857524327015185818126696475148931721423738699928851945741724841091011291597357699331722674124256565928968215195514421730900942638060661177371373555197944856242115531230731257861832334751627659839252687570953871939583267259706331413668155905560680927987742597856164832677918041543789554021348262814338631973250930684316458686082985769745507008464304082127829051413931461193232269880611329542162214040899482730627982777022668845790710283120802890808375987287789437301211890684764686956859186809644659236108169094074673437012148252646820739047935103597073130333221198987218137093459708564114459196118919255953134945419838893766581954474070058707229330107484870375228905905236138348897036132655857213168589353544923690625138943628636881793253069494089746492937272566499377846424289443265498357570084542469789844725250395839504473901626430524679191588443959811357736359171079808065589259959327497319135725554368609120667671056978669355924013692625276949785097645966572021989293290552414750544656681399903428113071977640071955027809415362700897405704040795254393516249351068327251715788748099581853594658979495949156048598549810540972349525301110654206202083320372209811180653841037965159120328440033203249616023503226207810404641927156786758618308441878263227801415266758847371990209342843907886817672670600803753753758739810472435591275040011012089991609423270424703110073764115812488918536768803474388100498612040319869658668200893372602866799628482534755511071341040266065892114944306137917343498800514309317155817284390912146420292203871885480130473648860966385444532751824094423629572034904958123381395327969498043888375633059137599886177691981466181674458880610067494828789689992215764467742687043383775550194153102058164317377956846889988385483222087795097674583010857339601476641241201358680055754483943596936348954751896420023482178265136454931117993952608125183599363086228348609325384583719322983801787872586507292094691538266424673166586479461830487010567667161049380374012688466319030625333392211817282207205123190690613370751878304656423650288739184935188325722662565933849306216777497829419265437354734366885859573760152446955139125918403039671101273015422954078284967097952768319972097339256092946347940016216709810369323244315731713286741406495630112156734109127438572681892964662033083537394850358916074892123129260840167872711910342679268923260046118050616518732445618011321443842614046304681777113632196104061063619119928831857388748900925240029248965867218035449768562482888657009915898243049381308330935542303181660806233498629315438231005554107860810930854531235908521659783718454595184538341575195428717291007775890285156854783714103751705658151425425916678693292732346593190226494238453842744280847339873880043861021476898824963752011742023810905742243792748512456266219282783764617536949416832645215944071340319864082664345315182034606198874413367108133411959432893219953049585519863263434108318183790921840208458789439993338139349960349004740180312969233089362209612986305971566351006235333415817170040911550771557972069337469646052905827583576651558174203121438542121511261325041660831048732970783846242157175788319028856605867341886356285763550706653580357816975966506324563476826470904481809562649280842373378226449591980687436853586458536824399958799533540266773681649980725900053338912536602700782280766916804153021098346901998490748963100186119154678407684762185048806697027613135653620380883300275056858193682641009996910531849754697610312086192178208549582830050261016448389548004937937366307982440701083194174189651576625622652169549635042085673470016528688713044020617767192915724177188030568179012753647354786750633808314044338890080828588670175385874703358846319930351692124540904989204547137917982234201762133151870799002793241516839616544257641607959291697010355332231683082253204087582930338109723579507838518596599583757846981562620879855810738292490913790529328983344798340424905980496666068981970532714981668665776471744744906521427347518648406477379114271240392553011192194484165651489374376136180658573911909602131758650743098299554643595642997425860850025828654338499651975490317684955385331506533050420655747480921807806162948163907183331376083597923703803599102187954756053746653176909212689595684192354631751215208239544855804522267444103994827404595465440403775269017415529313064510311832334313843333061059276879073454804681831925983950657553690465723093420736847570641117587016822253521008539278159905376999290491504519096484044806884319513460281981157262901844602500850757965255831572660220477003604888145411588037344112793448019865951960561393190959938897663298366772984199425075658822999660478204004736799598432050103135369901974109914097958738562477609967708422267679225155662637374945116374300814137898666508267590918876564751179641395974057638185766363811655393408690636363680066492113757512156642772743787091137802082273424887909293223124421815409743936336601612820398044205386582344865182001579374353179018051678472032825529074250431909596241854516537772580917325485453720196221337554908007823437030155316760774362045521302247711348698049256205219765899681344388570082914662803014229434053465465652620082215170694860435740217283780289775434992151884138339587106215284427714063367745097430045637192887188448934747283889837051893693715570938560013876848793010658715721437829827867593598323670750657205676815548525623376961738819732954823697608231892638194770498995595301318250662580253210003279717910888837714885661928546399491625548307527661856322225409285091822819880840754496348337658128617021859674781142792627750463680970707576638901105413071612523088149293173639985022408070123279778983872377228720924186453192713212186149678718881446153566726632632118404760707278920815851056210374939581928153603121758446265452325480526739097602052134867858094228214563562150987194397655333313168061643004865231121562143603040245915751054285814294416313882994024848554884245957736895577949315206890767589840011386366826637319971970098846914386212490593948424761064038683402604739863538078121368113203357130277737175939060022770838346821191017098336529492569569713103243065513207594070990975341718843793166257216321220823601928241730853711477640350751924984997412897006607556723814089013616696496318173730253801904104850590323000117640938978493608214909651483192076696660073122205161070731812414180772181942102397125909390714483462807745866819595076721317744148352980752068958426908326453236185737252687206379358590346317111282122351758026271598090648181913338548256849277768153632825808897034877207116280416712578967301863429978826849656549100291278045038039410094402223419199867788575057005610920717597049871500138315538412593618491601915864331163710075269751030715389111229427399276636360235613633670590280027563189503075286244647811070365751458780155940936260002930551200545344254029537520018456011401362689116453968675480802937034538534457093752914666327162770395533491143822142260064564616456575798574378002235795894167626409327892738859456383570513921567468101985394237471810233872720062092451442327409274629042368175892764973920926049185191262856190053659592686406944566188470914993849990388497935831920174361067470236387612082795018970150108813864767543914940933277154323648921321469352198565629287476694853933936559802295459464482393613624539649429892194746835173534038794925357301507062168866931628692152985963647938253742217068511151879016324642343802384090559522861164281523575661384515218518842647927846202517728344363892237064776648190081707042151948200732757649763747508418282753791947603203415369676974226735930043648595446328181426883331921057442774679805463963918636747716654621833236064577991482231813315129045250909793324664574341281358107203059768517429061027699451058743420437525237926577387944123981855496757834064535368276008935790977167668737973311837748976021286073889924416374688174655352599089518672829362937678421790389685345601763447346729785585519079238634738642678260519489175916717276187747304140509297279652845921154464888136375897994082026732256740493663643239875519042674285556665190114548605351391167568546750201109138785728883234464161853877182458008624453361548356761155155625761392496986148067372739745763743721858677660904068930024698748068339948742927356431382412227718261634838787724477313841622796250801334122292268723167281143640484298327907131542076761274582499677664403915239002158889788397049046503142450151445633982012290102677960894585468869833633638262735851455218339761332560410630283597635883321430230546525894810010418420526032261820585189785988041873713667358124461027357395128612224986642406512065611140819369234677333079185331540207650503789497771377141315014901746267375815172711965437554039907407903548793270919953082062033335868513276867240139670351709159008810606540371513160362346394270590801704774014186002419051947192257242960359122535561557005329074568152347033838438533630532260781461645927817105846112035177956914576333731297982256498743381264977469189347944364021575119675210127305663571417692587697269996996241860474351803950855816525957344524180206160562929809315793725158177388886631895989803019959015358426252910778646960771967711477857415134503816741836854883559917397277616597602010909454972511033122973212539770374596518899201041163929029802047910272818171392699599503083599382373307890080935735580484637367274550240848482587936715581087945979233776683449655846276263732980278156792090736692355881606727643772741195611343218866047787454475209166732144321178500941685208929205116163745077347975725206813369463510342497914110632954207948212563893351291296172242810063699101727387547836643070824017416478733808551373036882621700858059650167051673555055204602275045229979705712083634261933943265129334003746288483877484416005606303324435571382775409070845149607700005260342590789285773879233789347739880290940391947176246167374357459509163213141099893576564211354207593515415599061057825097160448856712537249392618033924707360241002559905298971773605970843134522967049713757678253107112056864945389889419757918768210431734131117967939663870470684403503946109397791412746916333329678390269762910951310549192936318353102514976845782029789191092842079934113725894178984161623365883932541829385057108282157887781873998280782804108833534331184112405021367362383740226545746691579207572922641513938189218455814957477774445358669140284739497739611826763999118826591496721823602007260266352829641068806403637292879624716266975946927108170288642387076499555788321333602780515226031023751451191676491687374415355487552992628462334250701025252188375145048087198362783295776761718516340940033376049686325688595155044902721764366846882147133395393974877934046183179460520889364328952138219260270694242723397610090428921789718745299278335797834622986127510107886978519171443725839455452821548749108334392791549405289027228276972376131275697827215708100434886887940194219792076188731084250952248718758043409408895546689871421645668391351289298505325779436776715432926454236062284665830495639155298121403672993101667747152207650870751288005479142864213624991669628146790553565030339810207520048611616803508699350319434026629243285150399570929027060022767666061811844997176415922934853418108049106905687188515810608036949525624025547607221135062006352870279340784489801106119999914962908347702614448030718003656141559347296465894937274785631616244873252035437711726712622775833663202978657218556911226443357054184368466065057805494815045616448163467287479193646723837257123631848939344205170849788721493619290567431052847681942849698357065188201736775971777322292284852073103988836800748123736662429981218094763939326429986586163919339318433305682376806311003645027921289829336511005534315972524349580276881857383031867521076340330151752850934309426601702322978747940874646529333026035494453831003060893820147237241384298253654679562632449768713573474350711327422051971506282092589551255015276455115321067723545560830914735757383680421826064898018543875694812300302933242560398083940650296463304686499412885410457069430288484487411736567879643125746214192246338797318365642872726555598481674192681682951775663969468114093118258546070784798391201491978446506721955763369453006612284480534929837555141818391773619870254940675408012354408666798688780216411093033355930672116783679522091556384442079204831955658225294173269523506157703791211886535599617393073919266134302806727607639497289262425175214889519338353033614028507617214299225297998263947306398837490873869584360942676576477074036803122740198897211700927477262799823324479790114942384669873251454627091945451818983726351619754832777328232311495136729009353000442029304700088848748999361269359779971601808901174002808708953722376698958517288923840685108542052521978365887366508431281027036489258770070160002777322671146240723351153488367428664895331526520976781996995105387480189238137132353364329690447324086949088149103287281635330420116319408442932836652387847715152386826536465533852445461812791792474508777516511775881469444542166776812439523701583049819940625161039464853317589128810418409451677540993801345433699496810079792003520714654413275650192266198836358264590604331219057355895986170148210724677732774176830894155322636809280265667167960039873712788534917611155331883076306144561365673334656642007831237159302912263776751070056268177687843446228969865887503984293496330088764485369888057988707489788308568337767042092166975834057185234201358414511423692953534378350917252401752378495303852289205420995980106773180825607681649770368025466156909184823588825130884316395283217427286970660971403777135065482259157375386584510510318611607857422624732973174093522347691371396977218059453935909239887113104406398178140017628396073677220755214147066626117261594628655716746368389203049319409175139873728767594897846793932089372991191442346237271136576499857469468836076946200509940186300236374732587709705834958509791819463175673309569221115438884057482282996961506571705540338925498083796401260393212734912605077115269427791176682109528500118535959333476514483553594559692843628877017262548361826448037376230669590783137450898247862672677038643619418284655576056753129365285048260826923516118757260971672578405706018110072560455673272624948817954263904764187696252927994442366833034113358108074914293039278193376685210389579656222815129616392201540727777090756555841444973411010057524546129433277977131732807404635790036095861216003683211151513156499856857580041747708365446710011096248878524957419861464126479343973380485386583128161168826432396828600114795725576633634323168526368925667429399926851132496409761582452482469640102587258920363396910417760623985568061250380926655514024444165739708135257621567466135188890739328473973190798848608261017512346264697676206836286215375540984804511322876110069441709520035814664843197130235697268300892965101015497796944278696990489105199612107297458220659489423688192047088746199288737903069495504509514631328862301529085466872473282583165036653904909311433916195047860701151619850508857484567510685517582948277421852670198098094479528198179440164583980832532123398610639976921199552903335666772162896092687617246763518882436147558099549706554029416213025395471810745085801127254650539419148932349789248510338904848063776820800264675754328880379460053737837309146761262069111855086217212624904698152429066649593158730919496561406719250549173874014051994508382831510182173689422881002758435097056174766038073313224368033186807794168710268791984026343530882314141755092279510000468465489479187332643713793660950575073843797102638748370760170216186038762304406877438496216879518524732381292769989282311305494604043671662285867009095348760671250096632510804707963736613639246601841282712120529674135425835750038755451601848263364797786824272091152202374353018596885324685672136623116342565096712762341638993752200719657418831533995128884969171527737944651828601731032242258352394155008393156707523806456388496464815720673956268273659397144192235592294816939167713130251951068901536197331622029598162330443023378268179616248833218408100977940613957836398461756564220771518340807731918337133462507474647046723356183249624941793790055617696573928681711800123965773301345179121263921649423600931411520971577517584336375403007271324725248313427731872892817656691263907643722632906279997166380570432242514698664522034812392644559963485639879691969507218675561050665026591122422422840000761743368983856891103372674877636147441274683854870629268910756709216981694817562624377325520229813803590357093113410364492205163873319535694069935356721784724363593766882000800320817588504919373097840946804579686599673634909592457708148724721547398720516020973138355287923352182419147584889701467449027379796819719679313307520487245464647142904648144802055046887833114378817619746709690732357346600110595996544732229938219595181710716413629473298202689094271857180698404501354155786162402295403022009442990580682630275173321249708819611396140940760778401272131458280461917708388300579031653331144162390226970655024925262165557374891626274162858445887159269000690700577975409483301810526451825405626864369597854363812911916394494760051130487377435353586411947771734910425873084024074526549004565809913455391631855911702154171601687117611007199333263272258779513691291086534686528223822896575038761747644383653696660357448592814862180135931318569295182670854683753952611252233931129526978677173178321837596858618933504618789264751888739984298993973821980523986050572154203913287446337815066813303452165868647126177728916154302658613057963058658213813914064037853930597796507741259022764463491718040519504040820493586572864994561840735433768564513972043063811625241298365729666845016238738105018546917254711472144077108329464589488934361056579225215876048598763241081753977239916797771464392540929175954250468962718810206581869631503239417291140421780536365063709373060718605453229984438975599516383502814799704803261442579726519629412632840580749232410516053015328182548978828284758095502372758959015716576562466812336379676398296757230285885533782290653977833644956331915671972104297040217933847560563816097603634669516449071641775559271686281816659991445970926958363976619085255171165810043206113815035742467586240520632649774329374019402097983409139316403992435971987910124216819128707284478260843078552642578500225997880236208271750157796590089223592530900074998429238105753878313243691307627030868685959293140706510339134709982802125901242605723220947844535757028232478930450341184241435241207834882362696796834390402329368069742178397855799128687244679832645638585553518635932590271261143234511499754306377604896210848081963530351549112913649869536239151762150732827008400769654047686385232862579304799912453565075579626855286149947306393952591993997819381776395389057547211465730805028736456100944119965121049540956680673889681594505954694292673094359980673835883657598574311647061108032271704523842834052136466311636289931165333315872093821327138936871606364767776725353216198008016270942111289222957758650502010037953273874517312251340282917469270447553323326488636392677456698380180651577409770108388219761466088745339830507263237419769650168250695363470785509452261342393702213130818349310030108248471088486944186400701963260380323766420816750908887795770860265638460830880567596090169814811144968498439285472849212654282169961978922785749525524639792895089424973156877377914778837500183491549081786782868158586930266495894642242090257697688863252175525657528852686731418490296523189059869993023243906354860619991022684982391633571694816311270743520511893357868129670590125705049317187824701762912830929258406070794857127280788156341016039298324736332190114370779476462009177045171817815112275508439306538583357015151451641312170039779743701645257061663412642636393108418831251956835201475106515756156782604762895874376446924780669592129822181482132908388345586944120424923222039957024959700232674732590185039247140220032395416764811788095207060740796597181921146513656317794125246965125995265508814385263955876536017679267328548902215313959924013540820087190052748821293208189756604883175090916303361092967424894521297626118293317764503360785453709348087366339404350469290560474053868064153311657961689886800321771929445373343596026568402041417107940794896605395969632625948391052331089902870709335299337670402933142714870924308688278754449143328711044616209190336198924019517168463048363517349133157562727647030099019597364299007086774604666385975059251206458227310416325042129840042666371739040291419304437362005246203419048808500765293969858467213009909652358309665578111763531660228047131955761527768177458632397495334359103178996247285534904663419828174457559702734547495965457291897273142018811702914315525096750845109424957548467306570923680680303343878479712809936284995701289193166443915741382678027178177056348501799933515021876642094075910190151884242915140053369543671141568232956906079129636034809332630816115450960307616147189110010791428323111046827365263443727000482020478745481083311896710901215030827658674161349898592682800601061609978580966136915767699756973407938760096640954111923999686889465837506305470525146981963181867715110553222447151396213205100771555952740385670390453698788838943596991076900406851798426218735970058572018876180165584875910703877890076854646779712734996712350551947106352826879402843374062826664767081952671649478611408826555251480740818045308883670933319659104112583599631452212036507604777591031656013934461626726608339759668103954206952139863333601327222090773125668569466163961314633567211671502600350302530791617711466340504558970676944491327597597224986911363222539067776319876585414229358145569514422829030235798279846526432190756375242023914731532169356499305320909241527822926715913613379260977445743001371415924425148642937977993493064084649556427880995939879980811135187322892604271065106805327536973881103844383727065141861180627790304262796570504321074708217656921962766851274614940738217186641383848219168951547683658175090229199763433815891253920253916339169986058833629054443425475705661704983594157302283429184609220700808829825144804824746974040996258622072556115193707331434772479457034631654419591959510820927329486245331321114420571890534554873082456890686945630873333931263906459928282108798008668335620786549392618870588027132896664062725811587990078423505133831574427185421783015111732430248046050241184610293298373881539821943861897203443887752107136891992685722383305794203534616888995083252861927041348239817817250724306284998236349872190949374668251049379213308165020574310869954303625927617833285305032002706802879278696181076352040414719894708737870538698374813688673262581369441373175960612358155310110028767877664916943374837097557411299861618161435465520010351230070903129885063473525624065117736497840284068828371770873545083499707760073411965822264609523952426131801928329217611709194490106472308273905767882556288250376573663811809029319826535290032317309366540484956771374682849505841087360851348054050571784352676408618691887323619697611444215200262780150208929600096556069928728955974563372066369789426524024826815506548525760260440904105755624075826732563720375508847505409929726122829512432779179596765331334693094721862813742532906836303637219822511482502207450837335397812127536430243928189521915437907257805774195230866494069060467989997942158352608273798008824499279123607536280001937706620590487732462149040879768892428610347102606345865911947792498434131191332908934632884007161185773733701411105424262882516604015322118232225067992783207978083214289593000496018284843840793054133857991580858401723327598026765401781225298974606781938530414924760850187554793707738786168486251434157708693139579003445423080171636105767785037965319569016939229287278307169279612412551264870988086821165707819778439465626072208413047815658590380002766419746666740914167338588281580707279277993423955165110998961173471526237195187549129482994015970180325373378382696244345685460784995137308920694963196260548788277665857408001933368784027850222884454795325859561141132234795944083333644910262181859535065517544108085190163304134188511547622856845719198828284357909983892989451028885277202919189939574032253641840945211577312183327665672353855128838447117689915357141626577073125410481880702635626866849352233298969440882624483268864067084375552942247122765027933111228665947048717676156031495123306994580587738040924921293532379506312102484328285581013772749655869023820032740707338627612391650337808804227023528421157316802958539711752256438303400123959066212754782632026513828040346913486675914815058527246924696439564626122108414616987678177741126734613153963521761485894904058378054202618127925917844587521666950392022824976545605898640283516073164136145581059680751806534686834841312521527300241846599193068482806318775826821781084534461941380697442380059583810316522880890481626601950297539334915666010163854610875657301294420537668168313321487160474307738587695662093091095896212508087735384213458979689140489730318366672677408995640314672187746782825878384769725936960467025201852858643179263883768422192523132796340498211195597076527378725596514576218084213707187099222455680459839168629395504454517724101177988482068936433827882535341793583073996513701416613291454285716502138289904191112001338263349471637668913372198382906443640404740615150303607541361760239618464016818406713670930023461646851552143652392580884829029274460274566128717931924226862955960593621358580320260080410695136744038550399646073236854145666736742494077886854563563354901652521393910125202287999196341913976847680832407203178229828763686270487533596098013312848284947401408328525281643235549204110509282760915150609791318666115403421341356152182453700291838360024534329630785952840997531867468678974640876183788437359313313389981202395262450199486638478032528759182409516514926167154654046479687381937694708774020899042440862774268602144812193641079992397380111059897919220642779963796613007788380233274277054015262679804402985589100474702841491892814047145707206954779230350236752298097209276535012474540315830988940960699784389556236165778412846891799363816170346864639320396515727253039866783279339354411158523545649641500487642568561855066399351259206865384044755321765239775081241169689062231792325817414489205263080114670321775908256551931015483228090280105457692815904416904495736941257827589437782079640789713008384188230550845746226440248715415842130207765587254999383341645769654194802380536086970380028404581374843353529126203097309190089497340350041501187082575963597759429425546966230332974039241508118631016236425578208282419028187764654359093934054575900161047649421280456092504583834869316336070030386961542301162986676244105085640976112206902564612147530028225864654235185930505103685217805637525866023331021648594956629713329684363459759472765411790134814855323812257681254517923117095899866216249868081958666726242566057118579651453180242940895356340940343441290146139191689905617431817964641598570746332484440810376183860868328322492840802199199419185027838826724661587124247608255420009653794562090205781941550145119391660934086843153072104996529024878487078444241802484239269554395039414039083954673564601390062803294200497547995051396047212988962658502282538747978328629415417005942163963969961416691971200704839519125433925935916263140633417409288720465518769289710697540692788502130828316111201277496764021841240788232870224131045621213053941753292617363354093019785360829346276415518754917061534749532132289071759536167534727149640980968536312216730325902691675693810288483592624036867592158378798930905256577769818348638261634722078217192139270960220228959785405657488796505700036702814043969468541281976786474230523177740544566184500228372689753052436192337801759795070183976670275128694580998999171802539987482140316832649302126601009760722817325137366209337858695559618421696111853708847004452889815576473211927104820284619558718995045993587575652103134746913954689053272734915947228017007250621891664980862329256291684216199630329474963598755698128831591476290488915696684736504149086705749671930355543533807970491579373523790444846919366885086607051350389961805018039375913697676533737459908616812731199428832342824964048811636591515549453037182810964128061031227517138816055786820082483013449968422140699468651508821546439778376991898286225429395864026814426525614270068062960045469512450683579074234807528838039522252947176135746549098250771439372112643473699680747459165262299956614073601613411845577857012290687640953726202305120582191645743557580937513167545621950591990574845502319455020163294485223263273208105048530441949039139219884567350510058440695380162917002466286035788532600103566204623600978669045274465953511477846300713264406173014467023155441380223757683449455954607347970994087129198525824785496815445078861905069989673378486731456429678264514636573929312699419454506617491508703844401257412074281563048201962548304727712504084559288820499622870225047008103802713373786339425286133258294658860902679178311536845837474877619273667353000069549802298954605697651645687122797721774436027066549998189613868958711067535681228151196517578390194008115603293007992375918410391578511281460571870236341167672798001160940460000059847002749519429630482674792960487113704149314319488384786352943982909054350879827947868793357574428954048741428891101599131583682336131241185700473611751915709502368059894844511336848629155921661502490351864567967121138368418802251996460410617601639849070613543506248228791448416645225408528429883819255175044774485601403316806141979114965470260296942904898462789780808063673279509357348449143348178868960857634737144605752490570402060310195878606610924865490119897805104061506687175607036018886681682855370136546986527453194312509327599141906258102039627572412763357756780179183749838494743174951471258498570938028167223436776997510903761283047711046863761803075254723276257196010472567893119152682171004752465981044665896631458153267963047289235239675568912216160900859007922200920920719430624609593487793993885449178700725680616438889007790711158637286370444299672101794170298767253697644491507618789555304079412904404973486534512841171190426660819078316952634436177571116558277218501546581404926724924565310668457884927888462250390318119669027304287354901846683319475714402512363486369372625949414592846545491502458109289646547274132185583996860709892236251690462040191186627273364143452912235908558587840667779834673025850278506286603231977606155718398957075426272267562566835215734415553877735019620158963288348623663194781141315695177305030656345292429062962640422353199707066999986937186159178992312474651096315298255159868572655244797298112495981707521905938127399695336329153131398010520611538289980838383652955271958130655201256465800773788900972604657938346734021616960662304023573595119074360773963200051356881221993325500572833867709804004774829131838457071752598640149110588491743145227422890972126011632191643367374800741000431648675269732211015285786899737509712219604259401850033661563055408207694692662037867839838095097576886820611902055963254930013250911943056678778519273917152264777201815821457555043756643641205077366219381482801780991155172063824454402210544420085402419236837506845132857604473542102978889184375293600214079665002697377481826994690379655274129949111027926482186410227151216114499124910763439421688912989654178124090630653961090570785281278437778464608880940665675245244556880740939901706068256165780574314453333249633278793055884768458126564168457803045387818942647794891150636932139826024648531957641409544809073734122464542096609342118037174928201207827902453441494833292212743739325212626922579659863026038734372679957656359154901731459464650145605714383458487351009602997653050625511429606009290786861590602130386569638488161097783856544883936667965882046873250060975013285029482871940144708969140888657586904381571311876006052685897159760720525212839769582845697055827421024453492734298339158271630622462538940499992258538810376269267842535160880102807424131819745933687919017583549368926249909081695316419322629780643419997838386389216392760985708425661738947251376558981286180701252543937520975172356975125078207885223769625924219430108234714371867629907466799334735411393231796220825514939473085344939628101504337838052228053249867833183468504272405205196372232054925475567412326160499802678478199240724425433602070175613908858985712000797541918889548754853939559304464675451599881197218107716311727949752491139865103511351858459553417521964887118753427371445990300754027140898610017812833018969980497336933043243313393987353824314276281123736946551642518230754123399377794257198161493624972606364074612290202781140577006805956650943296305391521355309050990677497627515636704791581858387406459986363553328978599697929981124927252328529164381465106671145704761005887487011787928023119668656096088772033176302153776200649289972268119388450494038437316676898649169835025734074187127343242906571874802734404379805588943487853811794260801737611215402199206488044906984896274656868063822468692253340212304421848797323962754887650744824529476594074886268594098897381209500792965924089485337909724876696158898079701315620108755972910150394810883288655056832167385222061021037719107216239330875651718976948127483568143539050804105036126716101907760744738929459490122640845282482875021872309519654018087598493698817596798853126003915324823558833643425606323009786167793947164857870760352262179817653042889257919921347844008752754434401714480308793506108217768319876321560178539807957706005567767968031941813101169931021272213686894571911747301542868834742478427456042826956094311624611358991001079647400055591861670903297846457461096378335068796152745271998613867303331424845450951197361901017297063332155248773891018229645849838296360198188694821181121618871448559756539244811155769184879239299010369127100952161203924048602726434146795546388386928554914722590411591608213565335495790556791511782593410279636616749109930530797511586100285326104848432980701795707517094206649392581640074045412066200730265785122343935561048834618460088111076141389689849391707968953532972092327642111639433519539348266059884205542181883903804114299860581974686562071472384025352859796456180752117298484951090992977211212112793168120403742181999652274719577443976694809573985069518044985098128299440987000969699370302479460494696976092136754454543226108574880309648150118241332140639281874626196230016812390248876938024718847393643067889736421964307093763148048779828036120598886082505763536376370195354499725848414089214155538802881949523071956730401829253155355277854979599155698536407686095019352039188818505890811253534168369872427359484889797220070396514163755459446238796036483787988777989954013232449781071725694489336701500356713301354608262506837749521140203133184316063777591424754304808304197028837497713582610213525695219380809162629852562805880680165981698705743634664256018453434032153953233428114203995420461401326673405098374208216541982081812189429276647075257621442739063126742327404427733366158931960269866827575438091942346115329924322613578936659720235312502087964170763978415948344972210765917075095303658007391121210467723198759082110755684772660360503836587118081602612254580693344697002304055795001391467055921554023857480868993553803531010566425893454106439019719124664894968928635362816432053247397491020238234856419298923473240626967066701026873876693419116354674657072008062256659064889157084233868308157108120590097245188701688632538137278936290410589855048187644815214183304961745105815256034806688600582786213509432248145904975596249211800015350991508496744941229677032896624756916710856854925110184700040004761782712846857073496208812188229395838956420166871780903946770109569914335082257754218072206460382478143450927237158866832672993178172842582601733231753718817127725433871730422666951309614051419940933727934361730906566565055392382496141533453905930804828018930669989098787668833367173166229402726803143987268863721592889407656086665326202110063298834405438365120917817422804579493312348133518163273587274506013118449627979442012766123513771268110757376097601548059287972736263296223813146247873969679476684514667226887964991283174716480955061869803456905328900899228610572922961488314678113110283522235869241692623530115247620352378910037957075687349569239048662356338745215528830540961398607305594485735119293059989521472662243493248467569825948665053163550513235166946030188189633775152465886592034660506050713359741219521232502727143576248643386926216983203929319252969731294943994083738926058419927779638959156314343068625947317665268266501182835512416730280504970223214649175162933332900151930012237865055378332054605255302488428242391894154137072246677007716231052914434125581391789392211063735867919332382753412032781097360070889252745740392517653379670817687474361806983809340340463253287765415822378174229918759410996322777605377633805783090770425013391985412761420138938814740807431218991571077258540315572490931013832071276319320703569355128390665582782379784911338654144782015915991736141425049559242284484699299300009824600104932149566515692429818022240632803646943775441469796119279124029508801435586943104654711979477825408848054711562863187752383492416896226274164375561460599579919553593569598080351058585454910875787638998348521893087933941032481040184360649381957299390394395457320961564771151880774317740043431635044969856883280022070760250386560502998031065270385685405583651341962508641594703158102230812260147084612368937164269923918844132898126331128771421504242630578205569063238878712455337182199863215238115128709662039360341878071088292480380874100955257761794765229673192752021675950722235254370207249835126293272184220151537781157538347214835947100025421006084642747113580611671186155707358653774815987141077363733412463421920568796915153842879806696671285373560186600537236999320764716851678906359000489320237150143206771479930000433556922688104830194455223745385817512433124240518265247836986232081855306158687743270156716585452313535507251420598629551662853044587138867808165058606371692600913194432494628462747204315865127651516035089607505296459079936391067627983487938290716996229145332982142624489797508247495557216052552380813279490878156608805263680911542177700538836740728388205999085388213377512448937953790526120747328303547711975881969578329669014484736892439749795278607621458008861105269806014877098990617422440795859443639205655675517665904255763926902557475907950325947552084282954701042096236432409142158649595462516402589002801871502119540132628103751969167559531982336754638554883772003460452546476574368490367915203243755808025442635046430722064638748626555791321251319539785774466097423448937834569695526854018326571737479863431291835896189804837051513155972856963276163704530117029317064087357824498307936428486426222602756760895057562615070931500257873862886720157066933435798101828904406817008611588781349726222435578901267714458404969459063608815737689438125139942212517029516778489521801617303571801050658781117727499660814238359902216649453799574163338442341029105050407018654635262078063046801432778109216273487718964952937812167937393102184402552579498116799256774842171839838837260567356622843436333471845968742854382612864854467260576931434540554484218117207405552029191773658897989869140791345180160006030315401205004469570107483879085915698742360357280166552096671285478611088966332810199214430426166167019736589675566148715571293701201638891560222954359360037394787067194168818816019652918163217044711978463073138278301552502176595487740371527456474375703770153425054227334317028088125867593471939046570011826154904139985483567594128960580492799516179923560280740256177498719861415787847528402587140053970541924995443128863139929452493190921669814496739668613547599090701326500216975431226455596315809947346564753839272702375842341035055418367233896007112682203154408441845994975797360564042415509240104403718851265169663067946838861134703129968160269584030465945767189734848628923611850577030016162356237395754399224017260846308976127215375436036352337931977781838988640826579326233853186505614202328036151335361575475203413744466491525112821385440371751332313331859051108706406668208863638532482602427427837075539073400412977051602088633285749726191073703874623392574087012716548684153898084166983681319410277165705800143150168019966148267674867033219941780692656370544475811398693385443754127412424408185683169501098078640149388852342806932699491066061274527112947981309479884811659448025600934848983054140283969191352664160244035912544985609866540640634517373401533604071496256722947158002132609389547102388351005476972331481990492717129712984380254867561513311113519875618760946722328958542502313811297873118935037918232619057317295161788865843726366064973625783608780941654179435781226043531960268140867769489284256203945340262829338789485804120887734912079737210259587414250481536652092683317226251831523342734868762067808107266507235483530972208880510013296538554286613018263687515285762407274902244628845391437864367148716866668842488517190649648256709454124413221569168813935335723538907731245152779115125042914992447308493626771305173945425789738482746077768932901283454263973885996408117702176968091983146569913118552465797507423917350219925008353983857281444234253034096627727322607145271105924991186543098271010694265294894492705374525288000222436462605528417964655529479084251365228903955841258989930572274350484218484756298283880145334333827398940472748745480588442690988986855622900769162660085466411164860122515519316392643717657780695879384864726705179166092519813224032619876161458966413257119647168150926764388974643888466506226049922420429293908187105275005861496345842426846333281023375111579974545844429822274270573898533581904797607493681131878653355058825096501217570218387355843222001966186726110501186577766302779268503457428492834331679795045831285786816065549485134565990488505269650077162541675600293685728486642378429259133482219648528803266528289640254071231849712844636398650955216982453806513656455108762023318713366711062004564265961285818246855693026911817609925994148580759732624258626170775737526952070378409161065863691893315335932532272761359486365816854677484942970887089271031905900094148507824392370318217105107239549738662681184004625451346903178919809965014253058648228676909213917667516822016050998450098062536320838108088305755138627020082891367188134979919915643508996607267155821265430658802342836471137689208025601546676208954015492716295741543202790756426675758355576864614534348014469096311275380692713873468015193982430939637106835373921580366468079098955917344853703258136954285741708149202878852513009015152715689972292656666995972428808347543591991088966342321716569641126956160653796788521087759719026060736913712452955823228821335738309663117393506630855483904844689194558986705514416871416111539150423080625326465439520616407828048553751998457745491712962060826978987487710677451665264517915911988156054612673993699123002004665226371508233802221438613689365309065413094175399604800928950668037024109720062166848607058455933711070339338575099018875576209820831790581497260870601155554371706230722681242848408714926457018678723662235847152154157353056377706272626714102863053029225849446172655175218438491941827532179817547002960699193695611793396468691948013719933342353852994733153875324113079350379465675113952894257621255939090131927572538890401670744408669954194857359659003739941376428562591288365262728512951426658927684324276588192311289085456699891150180330294061588445556370294564370874238476445938950746486831211148686315548518726314443081965820991933590544179975498962130704389261796224293704713214381487203767701010657827448726101513663127658707859145632658241588409593948297725512802300326209135889831197583012435297922263903423221713668544451813914550670141292688446308535653864325910300276340573986493830529421681617613253956687036699595093310726369038420176758129028067026819962107321992506989494054878531525067749055384585729595279746506050775310282185331778489627414048639695079280808546387701389601618754959618240067279200753820597544316175976169815602277627285023143925155907792217870969451490885238321939681992169425070287514882697617192211228460516074078262101145279265342228861629840044309863816281463006226956460724817541540071276796764240616651092196469536817803948012873189196919255582346360379268017584959993702246344189623129883867651021259891586623188818439073303631602310044178099774799134877129091378949907756811095757605001346452010382485960113466261979907149348038152591027701176560342647924158547091593169879662313560692479939086307626573958507734251897321881221798396836970708078467651154116079005377839779266350342279908335678028292114102722974192628157646136104520361977423941458171518600559230141467948617513693322834535436869485943696951997943486216963953322604957822190766077825288848083501031768253106283658709662768916055185312609762770118347435444335818132507111964318659766038674073631220102483646165677350248849819907937053936928377644757380351300378924536143244295586906892805275017042846296219293021869611286861241380617053179624291807395915464653951680636677613856242104270211762458357057126238890908506924547040298708522730200323936523417063978560343392317961834963054532014903827635311192382667739492434678040039586231110089255692283708423881340723636658719800668280224118788034889075336273474045227920068548808505532776190176533039149697380763485631883442229056155770993226509401228620395068694059575926803705614907628608687816280197842233458797283554233448855151522697825550348694539429880141440545574918049694365085406716493127504108777749141562552915021030007194185676248360404171882475536633902487154103361491875881283186332368401022632926215949804659748892423068221927355476160000647528800768789703385389232581030040353966357195720666839755456922405001746903285591338343762129221165735926233257144211940355530979614181268261824351830609544337116338730157057604544755227938914755666560835097585379673870601428203972035203894030950666669210884451122254353909730622435225745347234924025201347219196640731694670540878422606086696080585789375705758607496149166268574487397680895620392588389266705959190759543003253692632648307413732853947232691090562060496672999879148994060113507782049591197001271275896014623507563013959657478333712839208819053282950139059888299593544856444271110001394158562132700457687656452299637111416933233542049390746252732796785063823636625083928575342432541805144175817223457917423520413166784337479205163142473336028161657024269142531176936040101822973906638822141295091146205835857057975919213928883580672045863251682875383050436030166003354401149249300746994203791745609377064346369899892345205895921582011603884797570800833609901782313676324057513561639560353596003973628700225013993185376725953045442143863584315609593735170381339151308942237358117732772443115255932084311953446800533340981901740456716780008125414904631860280479072296321693215336141246048655833310722617983167292614146461355113633495667775308568171125067696237856028578966770474146243956075174232918815700186736339693766504741628623884000023432037724272058094732685410567259925161991681616984545973437149363298921631015623226898213182742144968550163886016936816123194418524177729949920834156080769930377668482603218384737956095247428727600253596630255566035022043089606239080163162321594551710692043163463232951466141509936298696210167070446599758323791167298759637093345413596984557293466260383290997666034372043963957653334049549611211820817192862704057297139921048817083322584669729955751448171134040150629596454357520820613600941347331770796078973746489014226123865903018026691764987014021558967648482357481164528993952702718634996631572813815287028693739907429732562355138812344374645151572026941156218704496654006761176885257827049065302573682745056573732682585290096611373199703638973654732506060941991158919507914351857598819468984426037828003141846864464059317744287059080954491415183231554413102174315126870663146999572642357910075695541521895445105981017630556675573251034108786545050576000965266113587320826866541404882934501064483918041613639611577767646552712967631575021940688345569330472536114758837460218882599928739982420837341230312246498162777633839286526086732054117351624021654793003109389244565301653494200346737891543269570512665554979706194332081709990632111745727061920390748775145102404217035197891378479432433661932967255871260164430476267516151353641609025938961504564581545329618723484085468019154554157404293547532132441604992019061111073742319512117115951482314528285663453126860331370047466052261249304567431731028914819513087417502137728972927808254051433270626029676904328055320834122437898091462577724941693036398920283862837101544886757820553709689458801135606873881620859333544146433739272128792443370709866379952594339462092175499319486758106294145928002754858299811442859368938897823684341114304104659458044034343278932924569690620407148166845124427401493741452904908758207597046901003539590041519363892137857039437700684956440619982432693558110509763450756770575491080082968008763971051373006679939265042978394799045630796730769864950605075085132165544025037791205262640824807257690565104127194914430845379667759867857173018971031794154575094943002587122776257906114411604661247846418597966874483013550949265468254302974765899901408110445167140343134551123452058914155795626262226297613245706768816422979778787389602506436265096230311932126102422326074747402256488405529392170308003976398239679081237777731937085474209750989073689949657230338154624219474456116169190073762128443730579809835558123003677132912932525028998841954634174876596055435332882038540244368603767189131792520766938805016924663905726823194906276058890877557447646026372583361857350650955859093693347148002537603937373133781525780384180589742910177923779735118473583383794379924822844507520927945919140152051926888214417835593760796872338967827487870635862710048069366298991784805772290825023058633576638082355725683316453573116903915907383332617906890756770244753809232271249055200303080476359232971864921081144547336351614728603171836399617773883091121517696005047638800719316349241139512721044999844012984727803080053356691412029109093911298711567463213395592601479805894375437011370568577759606524457316971886970576538872152219868425428392489786724256406574312847748970833546509680996958297654695081229455396653260385155513178533127383946884125286400217408669425511837391249447957155672413720922923879278262764409095874895979461267290112607193293569930356709217809498799584495887377549528258569390106591463289040529387374028614851408502769387548459240367700601962717984880264426196507997530284083559739337695804930543229828812229387005307938113988267346121566093490869974190367337449412219620289911134343201287050567833558354646918948481065077910309075904372691402493728510916813526104250766473881109825173072807549006336342710944539969329302438062557510688013003878658661642209039249121323433817332705153219799865427768101348601133575363213430494964504027654389402933060724362430333243711030027751898108649491805495770511587199493488629463054403338522748749144560089869273645607236774629910740742285462788418176291355179560808665864918913713948941132835352952572582801834173784409243139555083143731209679425101499519708748977668321652222076091615496174590550240020516209256062780866338391871634943151676225452403802946780286165301561503099790043488583649353500831913904170080707286815769510546417147354826833447608327687913570371039882048078757513616490141764933606525516490525526103893908603288993688688748883348124857055892146454561719442704726725491674169650740421396428025629991101258306343485993848901212925431664925488814113740365267232166538467838805137654139270224307284295607731094788359655087982913901723284080019207539878873492114918748663835678162854710002827237603011747948224990775705894732134819477294712768756015792155366105424493894554852900219499658962124741255686061644455526629546553184368485861956036367416768020465609501010748916214785903846992317387936721364352817484380944218627304943387567772713674945260741154359482841403405315409875345258760235715839732658186743134441536542367949653461191804349696846113971065839911907628248328518020444108783767121201487312098435763818141971768110523251379381310816257589241079102657221328433527170300697041242705221364206132058696684606826092024542244660776671290092563417410851619702585413892992978456024718199294458478536084710818066655554820188216065113943308578691212483975154505587852406229888054131675507800360984205821643896253771166449101063535180520752628581624874084006375620045009643081347739090042682046483149999168619033210537390579109591393835897833339986616263318280565679519708556806528259041928756486693438769605416588194265873045275905491561769957059221550589878069499582762868102801600283190046140313915435901212753737280381916778570068049230040176474612625331921494084768963632603903584149870149706121817964963271590696831846080877312511262944129154697102990274373700557915960216138362330476847003442858827324851358866783915770178386499286181346773768334809483878517175828031212326472085296290873806990825439714215399303333887381084743436843148071661548678590306612648543957427796748589682902573522431395190845565201445778323259222870140808541980772136544523282602432971405463123470980937860011778417485223528252647415601581011730845980696702524025310502985088596757392561717259268826830830448030015190891714050577658963261410055716703125841506885097542780527501205482872911016850617900342124969721394274807982142815273113756110532266717398452669865522437271033110645034222884662982881616276601647311362288863102266302535343092063936124760984167742465381679991094084454338820672247282847887938528357825842537666584126064344748953757338912055467313953367975193166695627016978294252339337255551370033042417207338127931398077517323742978601172205414575676859731229047319824469946118533992096511341167022630495221150127896609679199683511868341129164859037039590919482840929708613790634961081438064355187226720879038727809644680235753535330723118566716430220619512161067973836692218969679780641845541147113378413694140090312030045318088514849991706501815425772300416636267572512448361133766325695167721795470198938116076019423457883069320636154273332190340053702168164287866732635237972993911990606231004468746119358933323676195809533283074605331587917699356918707545338646393445867177741303719002615318684372306937752469603461642803951233614296430056141653801227261415127920058701501213343988701873432224778947549697249432800611510389631179886971744797627814425914536484705863296889049749815078941906543712499509749339408399875452559603855844733475505658665922252901774490091796730885199378490185974337232212721101595341196958060006205735832159638360033397551015298398091921557207755763366802917781627915149746184011413422126475666093442998251587106208349285496423513362342837494417671240940973451378585165376152316268145947619648670579467784063864050251862519383054714093738123056662618368965092694565275283029784815090365740067972865376936758495197050654180414878906756845984614647612729047692652556345340793782167520079613455471855463558644272174603910521753021773396407673443978868501196425594374036519939569285646699133067543887547003664153424672402831332501849961323717571026526915476503566571304497461511235700638777357007141162996701502559084646538200399150375402191720943498219315225373002238586560957935512805880311114987555659095247877192839178942855565890845858605104827671945672793942194811717844688339760797584656291817153304700681762308300377888850347883046961558790209073511433723882571069471257535379565432665724811436791873574037894867326867179129518500251867606063610361965541839906524929104099524678843846835294809755275696233682763879715347272857328904707796912903278910967366911568735044746258569469378417088401388802437096783705916090482540292293139359365669391913785928231555635340260180893976817163912342107399022820348410226315564804033411289217457580157119729647628996448928168629345771065443995700293610944025859097124088097099240537623224139740117891671953661296646086972923753624782751282493774166716116029857666067936997536242683106631673784354832249331022590264954624226801416396454067006918659026628585412434231252036112280597479077892895892918782921876686685495222524130071190922281737417219732382939330829241742116326823344015051623116354969005772335211743485523334604641632316332362268480547646054618132509545529721933445684793895167427308565270648743627073494150970129948541982725529094947120730312120152639247558360338117441775826275110064267935528573203472446822359948155644268654747626450057103079907605283710513626772813481073307264889474179792614153767687414553274652292013190915350590570421538518807800024836172861397382875528420749354728335590123916114935393242394320116449645146638636923258236780858764551593388524085908438017479733031373708709810382959485480282883584223862753060856928753236882146603424576906892865173010419489690949742829501781523391796347862376868362059866861243796931345535044908258580637930016364907549031609039615142632850919704198188005319978848885941735917558034480671967017651135580525382654986108887768013385467267549626858761098316029086016371021139414864142832148777205456156400837777247340131861602893655312425298542213587651333597367760819477766700276929936132282971749289249714800048979653177169005186998467178946981459657302197572089227803524504295800358615298307546986088178430398838625164678685400836111387483642789460627533809135625571324345335813853801903137650977866743832985935167661250140011925364208681079717429866514800186353974094280389177131365883721797224563548152382796459262765825917181382197471481931989553969804461776571312657531374258444493334925880561517322567739494434490462450439243892979105750058893561949632639586291597635514564140811718700730801664887460276874176968357899801620517315190609320270973414946797183946886788094248631302018511784573059071459925842687131823859983140726475359892112841636765285475605926255866724277208207655071869469951880274043436524545617003928034364711974405053024215328499208156383170810275188329383324695640835211185378661981808574728352494084982355065872610549352523116320857809276998679326086455309838284301755718514420966203359466402361014429481470631705029369217772189432422042320919243093479323345301788051573198597655444138655860383472481682093641720354981504559883571481635347849535632273984739760389491572782306378574873279110362365423688830319683202635366568760620364294497154175777621746499018603051070382152543526160848148720696918184149419716975408397090583428898024422298949575411284379859909104222807617950195458465786513612186854433701950521557261393844843207617132838101303143092551523547000726325763181427172615397589071721213183808742492229654875127832950643646266310488203990921577109275082372950412698777694882213536572304698959011056970278632403251549544321263477870267595892610836822703375901807685750438164604837724779601677359529737559062413111418505845085263490696857876672881497122502816080514017735976460134338995973922044799934060913543756573136500106669180524415750948317018508165818607714873273480570590411021186763591889530376175343992528194420225467723529645401089342220115996227666588515463460745909994160831233468709677430985649000358518639546833698158167204148455598024875814627263158893213590627813213748178359009416735726106596884026781549474337318410127277608419779293605466984715733468654979541359956705145426819267606629773882729065572317937537417972620058733972910280396054134750838843936641408680960160851530204804964477723789605880857499973446771864157950672303140416001292252817972230123394905332349615244937981865683600021463876690249079106935659521995224915260860796786947166761099662709917836863946275360657847775175824112515903303052561048932488225177406203193859131024261771091696647432527988718719727240783306803231367455321962787855629476430822073240557166098988329700826768671795314526518966084930932062002530157277604004053075875779203991546156861860026282798495819945960739584874062637001146711009360748001352293672358403281508755003170355970404835781540522992491208503923248958869421872364693720319866846875734792879560329678784468084431962694692108841923070229283285503485020698585346744237755350748889807998944376469490846788569882075560487355765730307749796935549878204919819509201631744231597375003984829872467916592734936894967029387331544163768541040130985816402399746058510699802786321409091450971923149213312741588742952824880556040910195495293668379408097354505672398981748658774189159672149733499300860030768214400610168026333111011636572023346322033180835101437100906290566642686043473320440347257951141404759816837582083660015545292048293366612933440056061114190105443681932750393516554636179735452806737629011768835288206288054258324184291640672414343671950619986827278903341392653953687660823632097097006907442989377812537200093364872786869957474987998337859587718500052245127375407149552054722430785991808843620174451320996701240472322084029232842333914908950575132604583507098901020506898600075086810499703230666086942876330222596338672762967289702304871356711052118606499629556008655609918739593007995256930524517122394602214481792302903745900799665537870358290435512682569029862743318632393900058029316298346341366933198582065547551968013750437211474694231391737042275294438102464829279275343917056709466970099750352478946222469052556833685430609629918273852806651446344603910058162547343108283346357387774201857145524134292661102753229676024339642769282229687372412349304278389517647820718173646261946792450500560389300959777462041463043189602432221677568446901748098602759645595179880676371174152624875138367284430414205878508806469144404531432592336427919276471325641178081105083808217855828950510325247574485158170407077734195127576031752500612643525361373896467969830251936150098716493082310991128113341283880240381316064185992878427175825019553763121361105732071904281391752857030494646263616304025580946565697574381748953427411005544071737520826125875169859168932730593235359893336346125919383507059474081203747054597471817593025778337588707864651150750609622420658990670692370393195199370270169306642342473258017932158720685351893072980669739033404766153975080793575650298355106935605125206785232852282878511257071772786922078574910348305380689955473909200914303264835352723341791688794661248578906908880924227542974416413749561346329277981079558603343466072315349964110154180921311290938623820287664862292060250071872207948581994932662384601029520086332601583652476304224519557610972027959066970542539744018196598375512101857906579623782835583589387191111653670410168338439485226112691786464690575451137304280222672068672943918991998540349434177723023403678907357679853685878486375898754394275417858512285806309595764818099972161830659426799309619375275570068442964870596391216917315182059724650036497319152000701979333499512193579240142402865046109904430560560707829489006883842283223587617564039072060397327546969699860147764822981821233575915011183322159862293197583466390626588530646182335073017590033094429613569017186676825796705702123388177928025007154085595080208440525249180107282800994963195836118898388565578452228630017607528561823882460393704467794859355732985157601217342284260297683896205376928419038069283713237953410961531568964635297715283838716690925975637921611689072321009277958218766149473348808720724746905265174706959166932229951817679948350552934218051995688652438906167859041551503433178877152797938848400541508861233448408210214945254053139532259021670537550257174540511199743628974988899602620632145552325507257111511465511461354988196944858251325861622968540406246674775681339758901116546792722642561133141935230772339169721554578020157370714787190462157008936802915984917638415490788614234666965986190149777016579862010281111127936691080231309875065549307751711763940386053744941692136861056210006880545244400803728594863041135462160564257793845036355850514791714738934761686401274879859460556348679431650596001910094795522698630980847627355563215028070296661831515535265581156522058458338831011146520574313139387693155060053177048472881543793154935904835048645881856149249854020255690509818403873574874132825782181662010295531978194549416028571311809562127437071274419447566163093761345254755847887478897795571517815934568027907118026398469463029456568144701842410784627490494684072287932509570927785695763649844124863345605464688436412329415048176811258174083540439584890450973532478830037144354197520716363082602716592528944234891839548203733204702199028801640394300332730122477089759126149017183917838101101576565335158426466646277159727169310603717901851974049065130588726626329208226000371495898716025728518686601210314152793009396148699934937766939374214984449083047345824178836755851728491456241183908356409729597403188361875322464427569945853536765444347741121052363239611270794023689547190131787938888349083852070189763899336111077540171811969598319055824015813893990079586164790620747251540145744643834238248809658724758594113676234419618793524844905145668391104684794667621232023519960585409459033979186029356734488566279275591734650407602363550748924481373128219669341102638183884952783448637532210640409011896051014422827581685041610995218731777139867970358140539624429604508293450767863970672858419610727639116691888811149563825503304481336732993832002408034635301799096433350896219863590865425159443909141395448709739268514294096859797296760393611290743751896873676679140485076634833958116667783333208109769173531893925006082115233684118403507458769220999126647162952231831370738880388123441765742122771195501104023542313644660101676588465773527556476798033661133586749421687427680906588032622440894073903857234276691534299928771090066669820528849066976531749891090978599536656693841954425999832063521754356586935311489649264591911082343449319673900916670974300959832564945702038480352425970943419542978703768668445989563635085056285073407288555967210737275003791372509053587785435964386986663963927850906864725890714743496950916420174592064882508024664773385680350249694004700237813150982474786391472135198586516949912053080501724496981598055747895004210630647173703900600853292615787697618650763411399082279032727889588411143037227628452960207011231836478439332234801625113037267666759239003247597133597734088883110528196881722721301744618857185898540621516421752989951864490364659324311610793164379012340998423197366202284506680929861839848030876502612465014196652080476185601977602306673198082644687171082095581423489523510599618121638302107959310253738397165637180924397762623210035229710642095609204427279910049161139742540606453333129002621053988964454617355863238939508381755533465892796531807223457564784412262774372468764585812012782511479076441795883141821774320490568195940723052800785445240907294408052280093182254766969975894969339124999384636581638103738636508504292936299242841319294949312904828495794255579108503124823902202475072564368435227563610711749384004561134873816265006359376975241082278846311296956980212799826154651850087739808953324596570075861683888936899994424013243907786040956411678630880460597133460650096748546605472460992253667954849980993485274060568219395614966732903340224683483068256683403155760309100056028080599560075159069684359712570371640256292463838544359680677526187642175749643545335747787406472394230359240266906055202344316509106829872231461279243224704730535712763855419985160146521991062216052631048629776334791986102010436398909307402405946584534810418041253156828079971941097557787328371233790956991391399944653856882884876095904814340840873576572925725603505782152460265596290203356087766628191540137682427666907367092248040647944524183682827391837308142443829963294540785715768195110755534539063645580358281960350008454664131492114394100011600217002983347521791603070033802514689987555542845623346616876190838490622526407042220514702596739594857633298026322261398263262410548516488741395253040985722492126103439860338479954943006133441079799066010757342428137966262278000138332847411811200586240112232478172574909866541716098833747991245371083152991045724151258191436766604411975607730432045888167693129357277431296443174084630892367804958147172948956034094105062684490894011270105575969071067732800132053228830099439301521439439538180112247361838776429724602853247328759240742236573261817334318657105007862698527939342493463263813219681433942168818243717562816487121348408326450634072817160132834790831754913168151064383408947875521977080227045883784582316152067736809174943057752368514048300686618532010137695870178571007804318699456399084517794324286469166811364661200660601277443994388781676067646684213870741006539457894342254597288754023219411057726285455290357736247556668176838262865577820985053743499548868264839569323894718707734814881601926506828959606243659455006808107106141634469906892752802172775503597629750401942793519664405386033862713668640033545416460138825352991487668941913560503071807049470984544401590414917222372399544491002439148354559678207585156391007124486453364382505370224666722022532368805717805095258663795707038557727948922888445934908836891734535677237759161551343904769074352051586764914215953571698245230151684110964707612114393069493825026444086780511812324303128830765997935330440811528852367282602357000138342978113544542906820838434101501094679308604544561976439251632532753551185499678054703627932368036701232196778262083784864384561180424419301798566204555139598436407833625125235200564729239880094859287676699987937946126757757871100081775792502748942715544482031800314406388351824178695013579861044434998067434162212426980784714000915410448312116478274904868964742683300601658974595187977910884316717508249530119120711265861913226200923054488071132685426784779622716894506461068460950494802979598735857706490279051714052182027551316351768068773428439566909646891094980994622165982275549281440865511661578902125239232263574250801029743101731972805655598689804405128402109881922813403939884442693965058684370023233681506588985795923622169651155214279610596472285339387820013939412963588960896499484769650506818711186498945188256745739039918065100452182237941357939030754450585403193500646930987159810210796139379887290210834427667257439039992530949797626665231559777862225757527519037220022454782477080326389472871946404046745777862967237669350343289516181682495983597672458299140704502099013386976557381147546139670630462447321603976242611364153826447149614532839382775476645529679503121443750364693313104814054544505741985754120532113579602964270995647393343694765403594875668626691676910489971362331928241710874070597673308121249256085838998431806914751574992673086583897047710102413412484485833024264411767337696203926984658606983061569308949146118694536419952149017657128108717411749320228882351021532634926684208158757698567352867568641475597238935445358241275766934289361256155603848986582043352208093493797920643033028066734627954782170072799138748770599222765909923206640310172871022699903234110038440658034054256698112192994651337251266627834744194428988327991245395937690326007993106216196309764105183934309795121031703241000637255379224974105219465390802213116510916870398756469638110164343441631402886355129026658045020996798884256887103607816165420384516057652673961301213750410914222072510406896016891924958544237149584458124277263054846958433051986155261754610422481761049912971152474329111730175416202247131434480275074348887564556366626934388875956806793311741573523781529824331216843813039935704450218110278754219804330204718191830530847815295498087635177159925427155183988675906292687463934041353134987435433269171263753389722637770515347912537315612008674375262736342389292020140003502879321360862174819573172116017710968582746995513621279786529452442624293327554153973011964495531456098167854715420811910455565743259727318581843506382521076746067321309114179556500929613270075601513912393982509790409007468312819468689287268788943080603340543660846793490594793601236538992315604819532179894871398727457168908217632334866093002982853684671125388902654819006929024342239561610072165039135021721839935335509453347853116144997357914484907205943570286283076091874295157193704378701964323861365956759638990088938132391484994651154735167884778856374487816401133874062033498265113047883094354165484268775224900535201051721357763481634106106979693669592429092522962651422965707547122908000279765939068428027721696321614651789430786926373885347407169052824458091057313724489994145898684857586715341473146673186077482554990515733811464588962160269296912299732411093808763281448995034418313673420520275777482980192456140523955629526335485403466661256607025288006341671746941073303057099261998501882683426660980262790659527507801960947789680729048940814434481878301628263996978744528863644922399698829484439086304132689298209835147965623081237977478641375428477225004610270993585028930848470394314396124764470398840823266431335468086743879662197719773302019780990552460308375695741149466892263755525886375577104515476038434376564689425031883872767751161634005017245203207512254455710116048144083104032754994168404584015898079989056184013905172936203775013071847260950819517303148284494495453931829006430233518949505431943412440699209711389189233665269085579980107175033476103900457333026041876701335807717632393780752400704375195327387731613302734486811386542344473885510159424886201014790423331549898731158523918583674596953215181797267348701141840647913345435505197082314588008571644120819827997917170613197789990749837366871926838960911966871297727822567496741188989423371775951271584309745852929142647888556040680356885609053520304460199406588126820554200684047986100059512430264675493856305811519427838632708291310528168783911527896611867911814910127438130913062532015243775804448511240508332914857643070215164282624904675436613884423094093127090091906471907211148991392136695678504099797316022701926877888996172644126912902539173710478025863614335494734177925337923855642889571017074201942974569880746772323168794725292621890891828151103834973136633081865470996899555281728616811198236833515765646089385100893948125002379151819017993137486023828149786817257052354920415211583566213253482867360413745537657309349606507948582306142600010340480631043072125740819908249041388496164841823177806194475017905774051142245894719337476638166479063447864457605576389092130294206925893309534411993144657229342800235903224512051371190940344031717958265553611370674007078051207267332886449210209425823048964742356104141382411175390429563571094259867535533296570164954854660241258161383553672669129706274322601574693399859723459333065562528605863593391192306217642831748393888781020054448022629949144712479143445525653377960624339823705776942784874562869577665164307421794713452371856979094846312766517275165535409956240113036015206632547732687157950525640504451066236076490035578146851581209305509415103268675040868482190229243975784311530547871636946426823725855955508831960649843194690304114506841722179296381279984604947189423984083602095679990398109473815768375451856064450538813729321515957250700876843216110678539176028159686225535889804069934373898452985871875898576276447941847948279707781247010582354500854820719524725759774766166382025255784737611052419464643619392922279324766003735654370575926776457452155441685444351754903633276699996846017791955399667667372214435160617416625107577094191805046323722157557894424065700381976401259196793746823412047512808428719722377712385337084815301137997076623448766833921175404543575974127798473865490715878991437385513058266310668432360715671181946711450344044583836354375997234677609488462643284570771483980889910761159777412711292861307767613512609225607030221002217990627768690955972598876931580727249063554035060654292082947356285632528651405640835969402796318223232310146408046661969419542859156817034862542360753217186173354549379349579851964019446555195310518401496421675810568184667288518778466854202651391055683536484946640739529944910975385020516981086140861245106491744864740796598206755966234847847181461316547463234097780351572761595549302927776792018287102110675925886058093280601157322124809277351173312879239952554366038286867045143179781046275874437029753660431157804660462825125159756228209199900108241804863941821929594826311842064620734160476837554959037698829006419540294577743301136079493703235144851729158599161050189679541522974773389452760820625198099809061614138799638910344331806648473938708544538384754453370235894300456308048340940560937107339270395079461302305600465859052508322242761445740062697317229804677983156585581897526213702856231253077783842080315445287060241478544893322017865671372648072582734241928022087506795437895419126029096326881054017593262589905476544321769332434629103659489343677023210914263616071992465353598444599086237001138245377867238888083526006961832258739362184189777327649882116625047401259162382172410427843714530070667922374671502138797678465036119425273748078837660212265729289203271735396942541863559298782811998191974259895978257826383621160540009486800999883141977389631163486941802599771962963240689767999853606611115024793513760438890903434896633980690179748562019269921430315432170052411763586747762741912792090652925390967548417436298268982541487955201000266911591060897533304905526263214749103792091827581359456075195478094026384333967019968232394350164660924050975972334717101288625112387021407942788786079956360744013038264136202320658129009333071647819512738573577496451189738656836916184904281762218887266631313020011876430601935631231672893488308253316913115434027972976651343515780276560077533382573368975693175341749434157404164328895231451806907748159147434810249994619434461405955452279375130646575670454244799226467253962673611940857992323303496344316364171608061068856195613402270823030533753200311005463358515088790024590655815226813735621365078183910608515436397932806798952160579945753516656734021032628348458949281077875173248883259098781073364352144789253119588240271375573499911919402078392834119914068916761900183412643075078161336188012321220934452845980207627717342192004423825688992689062682317129678014105922023056610543753836282166901839661921527575263169906832630975026043140710210171187779132020619618919986315667416278718952804267829547655677085388345240479594180752373566324079747446409370632012880894876351204631554404816880220892008420612437873723567336547036263538865622243438478423106498304319304407696034092683089828633042132027375667852895849964790423741374120937781573507312762170868798847523471354869307669433809772445933707011197080583627598763878752318084186016949732646753910358045019136473969112621672774999835559699850692889124313575573570386199304628468732137939907950609841881907023862845442126474671693668559851416520671348595825571141408475758200824545865697018940121109682570370467877574621469284798886368335008592163188637226726998520715023823587253525482963473113408632335996693970932796352806184260940701960546808124172599362268373129326878444258219577171551690750971576857692196011112785390444941253511768478330383319261241087388081986078241869203626453882191520566588214343156573667172000350517674979636813599773568432625521264638422250295276041596544621740172838083295239241656804153441074295192057719746933501084633661329233302873004982534977723940725369454813747036382336210283804346896477859031690850867578728406612265155814048627407464156626638072093117504140818058226711849133066889906086146737985629325120848804226701735887621241169166370201119688778225354415780841669797330934777910091789735248733615965342250390370186508517719820698727875329410916168654072176344670931786958885278759703445982834309993034290457593170052815100890855453622523056107203767330441111506417575970555829008944325943205797540351829545237640026261811666156592325869193239330483016972815893381447432313494372380464740190779873994087343607848567603507048192623736701067902836522175334720067492132839592000699928645739807959665731058565270336405937822813483231103528296691907185261058587502833759687419642900557317522285891218832707864386708969201197201342989906974615397272752854407480646562554208995150224456490506771892486649351194179411427211789626625176098574494057414630388735561068383462277477062367262202894712549889801848168070234380064107006654409181496888337823181207157323346634435967923042122557976296755091100464615037921607583182646232155377922654873695839468181012662242539830851206407754556702015434475995701071568873266583896562386443003875382172469949094943585543239463365185414903829001507608321121829917603414897477550457461328851895011901271548806054467944665611875679990463268457616597897086100262831386526020351450949691047783588104345414557716434108365430475629651622504982689750646981769465060923584946501169396518665029142344451341106289011195269623830711272828581518378773708590607345312458516322532733765927073148354611632172541945552842974842897125330741603416934028400317651041317902508923051700322603141151974755443227039678135449714742442829483918401642648745644006364501522441412668783217603994737801951599361633384509625086684132150242333528649507230001474383015937135390909201843847694895039837377322890263733961722076759685659752356709212103397149611840986364115098500086057564075921477369329264416982494777556853969586950820238758761868265813704352850540632469498118240576095911639323933302909726446011014893753062921659915842574526316959566207658343781256598571143278479898836896051912131573618671354341825830060169408204582312623637518567419353139776372726873427524947389240072227637129731093817771983713750759499430178918339100943142708754953299890380541667994789966198612904514341972847922143232593747297000429011551942239255566777610414697396579283860057001948147100602869921727478461516895072763297692280053233846279831001976091908048997732333596306067427636477860238316394142712587331202716919202056447351823434352098893912928116095375815511578159747488232886519331440127873531719955933675558321170384950272452143897148856126084082800866722838459957108765984020551512354709333823359526054219328646964905819488867866928727593020206899681588188250517794814026384890467599665453969727513224792087247494925683613480885779294524825521588724738953740285735783829515645707558267008996838283402119919009394293249497219195357170735945112877173342656245825590145300128678531891924203839804602402651129098436167952000498868055457617362423156010089121468361665555552502035566841860872543735212033022347560328851376755543064894616990509370731611486244766818610446718725389331272894554472766159284878281855073440544290120489901669440073354781376133618075869256946679427025751384261339951902974096374924020358204332087114743685623218824773568825472428210753175131274926650045279137190771035037448604698802431351871531098524452343888435275877997196803223704350099808658399515856667725975990548478312797963665198393848296044113319009781850125906167754995577651255590572766084482900931704731168766231432087950177580292818617772195392484545894251097851522829490796595099169913436470704118210619317760439829805640850968187482112197761860157340363374553283431506867746678268888695871268729598300398782463462074692667169459964874752335771217044090990274981426301194709623180840296482785837248507952370859060036419733345375935690418772824402377174904816251984736701827770045232052627513119085916657366498348523795199631964996176587114306098714699924642298258453942700151962200591739881422741454874377841108396886559738572719065598942367449857605447204643838409627737666652182879280779124924094400375752227018909265057205753883123277634281725248506510477558375213526997075284116916087764968749449925354138476604314512947349363852370014538887679121368068684987265959861508380594049155485098460393948835892795597539726676909577042557751764471887780667319521959868215662772288861687163806530615661712439409270849547126574529270761866164544353663052528310110916063884742064212369655205579813201311374441258276368692164039923514867104982626227566523298424943475742233961772318521493249240125773470966241303390310557296605499484299309514161493776532837733584751070428955652528204432998756100586207770438795538571853715508120851532683697853509026618116397694547755427206959943641767723218176219332704762055494818125363923945653357669753581088954936590070139723907791292197476669720811204984213811293791348400792875412306925630885552261813618938135058368374977705736275479060029669859481683187845206677909072018178192439500433352003848394416034830537721301841736750788608657080003225376825054591343161011446025900672018017482910805781051770016803802535774735841943191117303519723056411371374733434182735106909383667762361777008984048263129290042081826427293077474323727089032709564969148174322335650502982812711888731082875428786381654722087708124387788038860073221672510079956863797924544316509794182239729515718006230125156699296607846934689466112428304173485142856453217689620215704442268178353667679861631607747000624870056883214921593312271010583575827194756119691536334366070802941270961918803797867142137700103341174935043541377456660247607159406949730914826640620822372889769550867667413174460978528513590750205484912191655003355094368972872036934620968123000497961647406187661014765092422252166665297824599671148079816715113194821638025245143082994546013475179422827641073354066322076177404760879328664537020189714541631584368263063709403060136199346234138652760228525602155465775965282172900379878355408936026483376323248383415250135661529951145898298395346407019426231691854535177793659643789520028913475511165881694273362707239755119724796319489433335077898700919815838324954980898256366942358982781946968210620303537028010171064566879691205538990559687247259189259950916531456731656456994049851614658535700232102509066983813413442306679955521104157593854736547906309993808958982239154400437061894804226884239034729086764958248344999728840065313445489282157328139488827500527389746002813436876129458444595692226921233226906856171621468573151394121375286016862648166040142040131045331298523693540894205308206889548297969572181583068530958228801588226063661766535614645621155093774004035652061848244638760441778369637331675127223795443302273411309187590908886983830606477945197044564869167511600126856686973342230340325401916010279038465319677831310456977776211198260716768156192487494697616120899210887158104125439629346614942220343806892296878103781070275559148268384660607823965125544980956632366255316425987755295532311308019195620018856066927524518715261552114626651302210247249261830453096595290461334107027323224534248709664301540659036656867667006706253356645317036625360987182131855434652942955311544573615734269039004877234267919122209125980284715482811366828606463536951288263088355399538140901981964727149614587084823100214724082818050846339486517348053931949062818575616530821871627442642779221616462088826659476938957586208189546866998594597755554237036687005246119112114637924164084278757586449774818610837724431357772003630970955908407674330906479205669274625406902276691405750111590540187427968497007931035356480871466413802933897956638508215985185572858165961836519733711952070616604812264454951035866459586367082080665005573412935708007514809910149028517151697221523663474811050094714375291095809257289991311029270775768484473085720542377121794540552891761429837059294063384331047213407992247325505070861093009402892180320079515756912501176473429126340568342179579575395008959425386087351263685594739375124990234894739031521329170349079637889215842892675249990185510949165352894029761529057177913219915070495274567289641744999578723268019077679091789700038863785372231435070420915803572225556757463480686900328360924072294905710049334147226036544825783211294521321964350419401336308156193736476771156732064361734952366607614808239115415509658148042571372513671660143774162229487045263925993548864225216948229950878372958673241403280575475969643857741726533429638110965853226300839748213872599748900951782670754896865204714003817399148387929417625155319059415133291165338773185049017222423403098938722371874324449500389985319015726471260548662568176893027494374830492516332851775741896397309164449788769479950184247483265798431050271715795108002347693130168529310346831436826363214186347085673498799662125294993842612033571733829109580038731426091191279082171041895185672678426647738566586587896156985846011287092648582403921492344049300785787404298850282403572498852898111376192134232503017207640972049290310879536927616350660973191233648253354820295293987643036478176867705334762856254344313301040023420533719521425442372715619833610055846385601063279324849088768541578564643106180192234772204898650861590034523142660530694236232763810109648519839186260149493057964481275723385852924422449160326527380139519700131202585582169890509777827206086682786294929150796026886060669684548823008395361527808252710855585990795527655658161614175093061724185808997293102049546604446758704171369410251065246310766717325422679046896364630786443878157400411000322167807671098582948863056563732615250633809905038043664078456788985554165024050380525670949662340815318127327345470737433802373682837177225086257072781500490468331464596807012993331110959833598846285014330290038789678810491490853363712488526684638138177729444016395450010911108755787518605485184735235349284352470619268501024653895985064245302104699428946800506154139628582540620280839311077934976843804281433587044430239396216308562563558241655029785259485910274871017232167765051408277421457340167138320465721569813219110416922379710213142623676149842084942927992514505778597964653966499458740118541978517053538222554231472297322424717243081341634382198036999304678658677607992503405307137715807990914339671495514301024290687739125696264258726516290992175979650728144724460172265984288946499173348277782517878755464159122000628179920174879056821559929493861700104737995966131109614477942187280171404269763684638809085693947527574921966994990171579681676515358313396483766891054700901453899571586090190837558944381141839908927978547042329717423626827575469955560454940089541331999681282320684611295932908317860065023156587743047604654388252054860346151913278830787752665305092126515332034332915782684579128536545205164425468568316690033671923733398316896182381189585791174238551184353851348165757179007228792994113568059728744923316861066427301303190005271396335462902935550443141609346870333072634465733365090799285906027220713473457109317265854208229558779794525400345188980553167676654149781518413413506205270729050172154010289785600105993495475038899188075256556097758966210663339187548270857249693424301641746280223469263764446284960100495537921072341000845460194158776619504658082989921103040355135271708308584717090665920558191398072244504007498155561191776125323921324493852320679250207627712505027616626506255482399114037055274323989711876582264070662263282569067766066909574556162200918010842840654231625316470428351929932276062163153779791933762648159424938079153682432350245899104574996910592366654914094980819463040557127605427604693447196565219421851204291227349510983782232460983163849342575289910960259424030991321986116585795589667689250891559438428992532046605226475192146262523851303080019273917781677384092865804916113446684894082599499522889257753708463216083027422220077608629883580543053903835605650529308322151573045650120431721620589319833469430832678364377336024683027354809540129474534541893630675744531672967852174369426261614370947082590938906609813101617489776383645029025498751916577901167643357557035295828327939711854324402110149885449139926027914690821455272681694389104158356600661536070609117473462636108996970850563954278232014100006451139017010536389375058403236728905002278981510279945264107292292183096180807113611158992353521547321035069142243694284507061509995067028697863528080000023205177362520310265566428181036805749063215537054773081686930782735064799877195097365536195414411322019069186560934091529651965396397818988058033619940083958377179603246953428377668529570884793677546979671282034863790393320924489401712673487356420998153826133827370309653231604501813226449862562726637118523206894797461759726861152081230506214149044751573506063836627447776555382317405428719380170203578793833661808108382966263583977668997291386711081222145518800784802715862039453628274348843996481178540865030792598920351948100976229767102032470664789318347185947358957976738138532487243340562780321478335361991441121194816495069203761261424808651570106558803899051267204769052712978581488091997043510249432571380174162928453065238460449067500839206689349614336537431607926513457187923577408534252668758147274317897148417058139210774886876511152493166223784985747798932833414955380047604601900668957210002474825501988533015904535203815731892604001675851619707387888815294194549752585130030692695118067618015025518866736946214641331545859703388119958953440801547134351290008530941818299213967122670033916298207913919247116514323939946178158202944380925701578194385359619831199724572333576330635623748986082563610013630070136807267602987320410340931579942817016353584836029366862122464801729963458531947186344465919511077209811460596819843094175580976390909545877656830042748998813955926885893235910949342613374821341174811833530310771172786761845551553109583649960062192074819230628659743898999257120252482986927915463148886532083539294444015713993908129849984458336148447760725182388757914551058507339918761527567159511513739713768569219519314720123231063051147353284542443388258478728344726021774294751632077896602056845616380961937416647405103201141890973499119418594256891291140926391236149658712273805628408068798479091206532689445695691630409520315352113782641243750612534971641217394810015656769575531284249788015858170390618476370622121408306729120186460013007301905815614231828419021392329213510408755591245512542039978718548742075685424617554444062701085168797211967440119210514111611500065813616053699749661418614469108058365661564673636334997455087229330042950024896942052371139799265364526837183708658179268088141080641960709769894373922956929233613565270445708830853724994376119049698579784633199401286801141040741199238097645580205290075083003559553708327215142925525495472733997538500558509934662804484152097164870283247653410475698871370121271259630414290856592899981988971624251582596240376743765205704912415542125164280273468889822258558776747093134925643124119084684084547958102062044137798898224177544188622273851971486905414504497872122611614919838092573382121767582704057284546955874241647534588595338242368220258282764112761386413313908289769545253153557494757355377287755697842036929453422812339840435218491637512156104453990635216637529146894366090956630138717108967307600229704543616703116474391574038001353693744824059214193163101859455241637894891534333067908141225038293287713248006866009727544878156179535872738319657122312640497953732687874265026437727859534818634447717296249356688605607501538291409490144468503889276967527484524192813218191131430811201042281654754152623483543959860071155198139720856888950737974426930985000831762690157082804181758069453159959647820185030634098738328640777822599312320810000793605835053331268816822932441377293503539278636926731040605068744344936416504829861438038118081092008595785102335235515509385267220350349713691585748095906837343893462691460761830315182486425765752047028021048886157597173281621737655266459877317379043315100968394143483612324782500632686174491249604568496672030174600918575119892979586416348767387426935065920633911931211216489088806997932721080704554617025914485788701040181212154207273342049201647303718449216916542267530790823960749562755730917794108275262615054320182951001213654968941336774681071869293570659087368558306266757303316322751650203530551811892446025634737194724562656908206699554970223089968852620748320351805420623640923289565490433123616885743920322444061519159118379498925233458827582002930080816486130417328347455648088819837049099326376809772060218477170107598198827878303137644488517051746964211682358560842876285297168429898231402718367027003148970844468166633603782188620884336271548509146297215987160223025370689142196210294680739919091958998944418470254242849338069346801752991423995917979881211389878401227290030435898083072088584349225219328105934848019781425813778392635612690734286874515364231005786247951590808472027054465171310400923231243022495358314023960532977083626948535756885351382169521370138269779752236237921685243565958459492818825509075863411626116066795089638914724900116892939020597071729684073126078870788690461229098545321177143405608583777439522767933502717932906289795739017885210538873111242551761521890858823055888373393527614472423319372802009350536665723289367450743053472233476598649865596242341720219887286922754816674512982005101783864309610875556310900391476471847283630151061775895942615874901357697284680006974388344813757066344787149265953471870568369988616288020856069957976417002345750565538602343832437441301217582111547368419825249592045094923818975196493959687973206928933090352503534327133141207944182403879754847411194139207720331989108801202392037000672682719725495532832676314857108905779716905016968348376199772247449102047195218034310971019101019371860424727284891990437545749817752838751124792562596453799601555531954899574945104516822447929156802296986233683435573325303108523886173695211791383763142258472139045194058736043198619915112092221314720217256771027511391492883379388185904362978162093170511601009947753144086097654158102905647459679108403987062000052633562916510196873303420710783604791873210985963922510563591859831267552259004831688507567857441691211316163298017957074233522694960983025245812789392131586349445333354223458439532140823987406177475811904281432878761794972431025387955448424790595133434288807833400181251723617952929321000274565076439198106112136145399095037514216489014361469831679842048195282686302021077071701583370619514434795625694878588314398302894170782849000435044135099996476824293429133285988344320705998885354793631308742933728400529693860217277159994338084245279085139087887718581173486727897174596730705216375554459032702064531563948062324748094715964707406135531524864229718353453662624920822556571155108671137172133814466335370112880428221452084792250237035010207403362123356045369102867557493737189935126184689758003358179778061218842939943650683592709809466176480461652348646766558690383796872495958637642448970208974291179616128937536198406859865791602184775715819421942967570350906416642795415527280344208388961970699575768922582002690912172687662198929797062808294703332162785139280900751390738792840981350810655579076544137600762921097783242527459427698138087938954617970157555370435121067546527118724459097669383373432862923251636821254367104913313767765929395885545792089946075823657127553172662557213814707483165926126147484905584889077751969527096799264680304884609592155035505887990244488159456744995429181455021441805596896842075430915801929188183889077969258623526309693264292620304584613296302821032054696445578153942044315126605245737874037480574908507961035601650539870300053431137874761719987300809558985694444716571053358915803998656991687967540707545039414550253442652071970724249851243836770650268454816556639905978041632788814143978936369118345579348556849885271390559765587657598511505154860432516792584844237960441062300862120402444445788638558749147202149067185667576631160147054803780745282101570932049460925251821762686887304022015843920340282608232378631156243038930328155756285987861504995288672134564408870700193892937683898439374271643921415130319635950078140542991323778308788252818646010391394954401530485085942091427131212525974835718424261488513348414966609845844074559175824412774492471475283218151372432417595159528136844889978799556812176988197866629798628186169745783396892330173050816458912794157310890734878019033660200716502565426916415592837236185110641304031260136666741754438258402957190918885665954096414827334581863306117933887983015458664900805271772904854058288440419727805013829173657723180804937560003427919042426654684074050116000116262052170545320028082649508786243139589359277108602534037488017584499454079297960523912271869174811551032264039184798372754233221798941328413051257609642461622722005526073595940817588704170273740107552117473320063405012731073469677316853487042734164332919770650515017889505311412157438522778845887950332099007328524140996889171299954992242830823208658916479786140460186736264335703778148611587514231516720384034040367875264549305204974080706950446733057570120348571701705486354751199564586504970732922343721758840649701476198567558032289743133613957206793257935495736213394937145576043220747362913655166031682763829488682267573663865356205851893413386173118111853041692824225983382349198399049712230382845949990040715380271512883523533336287876488915708509784165752758894976491596725420690994478129147417366715977578918127341924010796239412942588766750481528753520732251388572649620105768282175787643805205577442171058950018229691985889231547436447775181083073712885063466213283676685823905677796271287915559895724954223775888877551096848796555421362884698643611066740376795358172778757392283270520927236085518406566773036209845945373221258235409355422864208300402603524739960190898749584176703757001363425603458322582442759147876430664656300921032346097642563113075242507277946334172712383115431368776943477654843815171892460424264197989978212383045377326391140500364257660263641056664898244607007029324328642923321851352035810895744414513168396866988134195805471316144591335364420133943627924492970166189181062249183503847327604636715699734944551179466817456547774665553690629715534514865627230910948181074723292385665262213927217608980891848790842542906411828461738533100342161972669894710018730831330351784138715286852666932610720629300124039598655626132830830340525123398197866380675229789468724560935207947014644509369959886927199936651255228803774635427737832908569057173663613721171306668084928209674721320372520084305782099023813265268823971360548964385618195401574793195118897061322174198129069036740152313239829971633190166410900752942150726457305179775858204116934452060489589955965441625060668729816859611094388949581449320122246951493062516978128110044242897229082807170472950701595731555963562728901650130728489297670956929934759573556184061313509907664185706461611961709512695546497276857836025732402223205117630742032800573761404172002563766639373355021804566520403923162507542165345357061439770177877025069653315592474822712540053172648148289966695577425210631128855109326425243965272013736758640467961797181380378130552767299175316533681153617662042560629406959548252746819334100652171526643518840154771081116254828093002353279829016959185674170931875152794419189552388484721153881709285569571438599952061926738523307891692432855328675017519647219802895175048116298708697490052749273741170699577573199397447696607456886684270155275667064740683579636994579026830706454153644952631030465206091163837188552830031001450853874263860891349853297305251317553361596287800289807056076509911844738882933050735012502733492764899387573939365989146438230414320552951848162777964000813491721765422103840374279786453499017323765231036894733347974760307981743167260762784954438860608467912569507898144190933176275013014378168143909544338073709072686233688190303343544294657211105667354594001913150446698591160273183072670463593370351438399184289237986237692155795414330281918991318814428110415156972534112917339428903016796582171121848715790830131513020329404783366909089679359259237425678104387053701406339678656406640885658596814301766021977253005368950030072527036816011746158001843948220804058969973571583223260602245373442720265924456024043193880029985330852459638339511844634785746743416017016974638166504044565998311204413587620722566693229458849278502275083230216393304731811818995564397352537358806428072042163468032951349803070195039555395106173942942118929566648360048911567287585512388205594586292049925299874339098536550081358937241657719682862310261358360973500794675958522587257638908137624132662439256733843674888154818258255852183754877226348802086608969881136238722490854520285369954241766833354967411024575342674471688877779939820999605753134479463454379370710467132712701783223808504350226216515143686856436256192370486150203851163592500496110769972463734365384350694421720143923107857638415419502723295689248489746130294948008989139289856785940458584907553308872934698048257654923822792888637177662282370909585738856917954215708070614765205978476269606430368601546113286576155229175765668227122402098505098877259177741452167323182282874413520201514280069178935077413137981823826895144771032139978343040653168353186585349881147837011591505485969383803231422573877445696033123061704078089178619812283310510328461970817078869154296704135289225820581391274005038078842581692933970657002698222986278349400436590230736376155953095038903249418742212994988537900973219432461963646266606189623331232816254785481030226584136212531043651002424731932598704367020480593158657094844325793178480438572469544251410156218494107421434977040850476409519907882141604866559183346704073680493793435491858607897187821902221197749807519511546656867412037036894621404485176544804063526964288461735193328333009209733412389970492726807730370373330833934335068107437183534082971669445858732913014606842181761859681396508905676929933629498560904287473387920559964938548716420443962569742786420133541197842421014888454651333993983650768838987728769556407498355149879606737538130384657472883870661761780005815231726000575399908030335092919612049413850083361218492621925589125965887363096493224112585423368409062177958665890610973933034223613302181456223433877926643238408646406173839389495313739587069935698381236999777789139354003858999820355369956627837621731829883135980452111667009079950727651250842775968193446113792793239232572150515930728317036533692289728061053972214861828511324492739314239662677014149130279715737182869342135162220595869592896929235698927431948854363132640112494137765565431955219660320022543465991844165899170253656766233917300808728828025659603700351109593579427859814112542124897030075071662021571567984127398307733443815392126282935718119223642476251559245150313125562351865748277298060009022324653767733338810795220883245863572659546925954252993115013339044448056566097432077338645788875734128027735446284970197688175018510803715569586745198172789709717086944898990315221599015185330693741028188129650519573609040055493034946199606789193401219157289643000736713538113088685235009208930162363844048977613362674751300770600735957489982653683291775788036248596804822741767445511748481081837565870510728263688235594444845279393692471100490961865297440040750318593035842087718011724722610965721342195879405279498311878984158088214581067615512763991449337059621904399160799994828811344868115359767748225143965825732722745108565102297954146371664710101575481707922995389704163751275581358115804855207774186504781338017332988049541182030576876318624899465620504280571172731475315802628540003727377685882905033741045365361608070308939027325846811298438337876357018189493493847915354513281731193963438230923300562216803693050213887693015631572922280852377445217881197017730658115052342571166886937780763251783105650883511004233105450746604813765607921669733942352858792226164042714347775170805266581147702435884258704054666852853522024789936346764095789467522561802920475749927270787691975938905912741934958460267874369481929506215634539445353611291538589319281231111893219378641176647533038923079255247018605846854320259382230362495030379235352939573567648755301580140074233390668853810907293486422346040569294248738842737029524136205691669932289041613908125267633637955401237981799317041810109431409635676937434736651459121623189463071446686443376516513227315448494333551365157850598856691099338014750352027867869849935402994424387159092584329813105644070200976280137874426905762052995746686447563745442920744398791662125838660420546904904108885819427333708239142791011008972154695687111750116603703862514919180190612484980521242324234919463114588037923151568394006324764209889719529359851910202123022400979341801321030018356961304136329658244156700750659418655714886412181571800647736539554125501758713493038743650154904850248103386856737003489897309745379727181271860962176500240843487839411580221935184370409532423559270853258004759634584242942304479789202825173601855692387144378470656655888474948542920492478790594066758889387888720647783416561165614224827381174903787307979581234977034790274880394767924688377089056092151385082544467648399258939051662844839890327191119367161863576939919408799367447504737264690709252194447423647405772209832324767024909015856180993221988044254266919686820768702687862907204873227880919237906806733643808277070934838486687595101101518769310689032171436092874535569904052487441960163738385064338265333937024418374614813301093408897389181415772868685117281693067880441714190176944553747425582154141346479236154473230390340312322997074941633678837049283582089338838685222606723583199735994115329836330177735811624017755157436763893559193602360033315458986581971049208905884512618739308916599194453400305272011869202623603380046086073742893928150729479838038949767779951042175220407547989470812150531571150104083905709943714838204176586401595095798156106582300376655553567382131338450738389468669823675465996381517645741652234045804645161965720767264781453505132441431129328207583626742775453832411237600392707726409340540688230363346047718026963521785752123138444046784375729063588365213597028774659615709343042949793045256958024090704482763622038757003725617803351671787906239092844482812067333912100563053101710489892688213476231243873707230370534114060289830718018950550400327768287013501545249090125830488098197025673361945320621851460103618256720031224610602673137901462568235567047642303935454799263759853850135139829154839072229262101457800915065424817772940655721045726875892209045919504607547735116229105088722765168439358498280431048048600523085554211641111386973059195851910488986911310057268252447241585214947758787646998453424032784327665518888180777973626021501258498369475992216568535302969274048533080065914812210411688006690277899640225491760398531968795409798106308756979233298801053720283881142703908675715293444336760357833252242098774408702492847838647868320176735596147009555530348458404456490137782926202633533658448752744993882020431371728687642160720794595024181147438512319799859663862676776509016682622238275241991063110539588089116933757533121458740736529798728176954104386123283415867674280782658311827136749386295490764848155888487402339915469622489129125934810446180519007762809578392064388973672306628983677916570692542997983025328572031998788416350770891155435012339472678685984312541481355651877388949117984900798614815171135916873879747047706864703571325945534399747972792457849596733745022381444553045927935967648199905204909430108541448672630338192278598179669113930418000650716849074199981582664639115775203780472123269059358011573523806006113036396788562259143054652129695787040868433163755611798539596020296454098139498146836697352301970775880418411213089913326375033833597159845143691287829123289035959319378857897661554863877130719186621908980925037749420469935355471509473842432942456501929914353615005259497381542311506038613364275947469948492312775544701561357057807976784745777498704497607882993602105638862503766792900727339713826155486332352794245842696800463974591584877751289176662223988823463670807916459529900502311021612429056960360344662356679222998724314981167901844536268766381426491316318064885502291734367217689745244641336687763184323787061861487343110532053754057595973407641793111481056173388705241782274422448869480279658331046555269971807719074415189592550343628241306643775530207877346630166331237713886599677992689944950416241068116879473953617813715139818955800165570930158852002466921210174019353017280099394172039005975515598123247424609531449229619117546261130754233642804812436427618989702689386184899546522312906875496541164246859016459605251274667806565217085848675557979786924606768845587425445887655804170737960320501825074774273843274727316606710099106666397226351117904239498334907492173661471162007072589506139209865708941764635056741573087998778736813893204700741315024858289810515565141307330234439941064141643921475611110118286948309072648041254299926953085597329428527449133461092125881412724352294504673722481454368956058529489294618236414582391206540170109608480639874974040822985106096204262708300183675393639193949749095695619775975856833846493315519875179373329475397564547115245740286233282865424194996681327595126054935149857801527413593043218278368783274248402023867828388556103877693199909979862647409619642945516068071457664319667185338720415631964861563387474771806186009136074638881538848933319572096086368156891900176573803027116938324384253983834175195236840989454294979274372289925062979050412541470279968238283246360311406112900650375295233510946887099247605450581929952080098291824074349425203975426991094910334409533513386716137102232550084835459616207406286751257213570219541160490194574855312462403416758303407180479853625804746335059833511591452264011389304590136564548536869775115115865448279803240650191403423133773257388978851446582839285010357650588946907439186408791526143838752790837853092506039091169253591099222809155348504355120690771426475657676989045441818624325983936861696879170913399047498118722111814061440323508091076403966865039989287585604317637563662641617975134132846474094491424780476085232035513369247340186772539380945261534321806815774282563445921803190637523145400127094261407354034683991102080033861645438498249553605398932632082961723308609017538930558197233146006933652592622857231650003293230529350717499165068583232087147332134327387934892067732094915901163487261493932017044750148943150851623150639680837651861957955219425745134546384769219527453718247905702397821278436974934648890534076042825517407715434376107676836789935402520453970884952146588735343591869221517578918882079061897193258520525988098122477948260069391917223905007211668986540459297179092598516554678108098820005799894860035520057886311202216972312756961509459690655933429267738456871291450854262722303270343226007850383395005094594414570015160828902570764234331904667924980581719135442854687432249327931148867780343847662679700308367823644602917855195030807811806045353516709014921840048188519303272810348198933106941257355685331883625858121519044541779054373334751251192982956045514479915030605686445730469974014135548533466498058675206893509020980322158526617070012534853796217155304518829045634691705127279243488868805257887979566181349962457560059240601015049342667990039059294483483171139320261471033591346471214933653537252083751355685388314659943645846751026822405812561652780903393012488119997869809981283503790104337186739420650468902496246489377165824632911350854689212499360255995489070312390004901358942975773550693899796969839103672002000813520871269375919183226649168360904220575015836780430951094233852694624496062445536326648836076393415058721774776897105364511127242391550573645595903078368206972469017418428734642560238442162885424955182921120778123525737118863104151630798429175556110058318936367372669062192513345188132802173869851247486172914477037244621187055596162090843121745039850899974336444871263988642984044399996750995724201560839644393617619269218266683805597749334470689750393881974713253444978282458487020142055917721409496534770282676678208456855429975902405829733767601054804069996025978856566969094278169194587115608102569616193622097726895351091800657806467121531082397319312101864828976908052664451950062464545809208673755769560003165901839050842717338196159663480982273895758135775901117466718612881608910412861805187109896547711266446159617242016965309094292686433824632426409153919861757357219659544833314580916216999633494939309537215967172999533072811014793376913211088602748538192890783878350093600250333351049044715808333359614584005660047028225013306360733260876028872063777348154428135292355208758617701550989274180981761408354015057250368236639318602142421112595813149188475546706067610372836319742284785218905169019453590418786712225187625230210844143981704641652530139944340565550400621284905063802965065885297198580654583478102363360776215171767707091085825493504442713916507950547329343157416373743630591111862297096519364758928935533322893950924662571536567037114210064148933865603600287808947365408391555741978959235936379392842758677216926991960662195782150823190773170901041711755288837025547610222191697739080403763971341133750484280058096811681012057168305653126208381460968450255462356572399823269063389345354460340743411694729035234417701281738674700812221983416533970012332355418196801584760917485970262755020054459121027758849066595348423276301118986917585653629312762576552730847071303922757202940536743806358660250780274374373864383636751178631407656904950574403863224431030084581548295570326277385277523554960985601384887481192252984930282525312093585617444171254346552191589426539498581156399250785960773073627569152014659126323257997893701992465607696877416819257563390579803317671332739212841538046048796461739301098003331777920223001767432872545482463036540019079258159537289917460410383118129534671270319619613214504159970168049778270639495505752640977770853999100623240758045106136612199083273908494184307929266549601250551335139671740244087524551517546758266882822170867952047555512028415620996095284231928225924610606647230085649079025107603257683591780766462693140449715903539862128649106051121510862564383392822728708437749792817335368854486302962062965929358287717153403170100882444366438663740131725961282639350098747697043681231438535048875779625475399069783711585039724439407855274574590153110776542112094899007234454479019247793838265219926824414103857373610879257836293617150552827510268011545463798171913607303710679217118784655530963930278930181336950494814859649904894037875016676999256264959394259374165602573465320662574582368519125633019510159450870413273748316987675081801952144639150520392027458520774558825786642994795620903879419302813293624757103221520722096510886496014174000043284295311889679995044836367727450683625815402994470859172250430693582404903448557225061242686852598083500893395749790135381992267313238014945053424496867631055865023778246270510406930144358499395310360755216296354830827110081851496420514362827930415117651198420131334476090851984310018702309114798213402138347671474443235122286117348752015166609646583848206639843264217228994078523174077756734695559673745973741733662717132993406052464585739921582378396516653072685776565856136560417786907602527881806595994810656775301707945816255132125354236737773849417029721008341223829550721602619791044496915021690017208234364537421141974701897782647638377137153195589183506925285186969711448580595246321994124119828099030524731864439758851265045512856519395439656853339739401955077904460085797914828402965733647404594605124235919185587445226439034611718616490741859224413046512490068746094657801517165851017996474766275709287759853874944622499693098694621801845772699734029145830288819868687940860946088647838161645126079283641421388492887807426337886058737613371616988260203708923455337201587899097894311203842230467953298972081901623238720812137405048013591251683620279321743229005432887022914535592732742539019379889873879864129339434844348317478189480782548819707140803340714937852311117690071972216922377135209766942049429757427184595366345393691317679466178886569251460271334955193907861293536050086523227759036530703438220346438907975806372982919398416875248735633710096899777186226597670717496912676370718070724549430540654923739519280086459377322773884350657579758704347830233642702435592286512527495105686705303789050101623904361139488458178158533677591465789838427040195148203895996308571171065620587300936163204013250788379827689098738232075158259217870080960050583370280877381309148698016997226078742060840075342705517943435022345298817414758106995150345216642391392739587699880874534640220650193385248942710522841016657471674429807088829859076093656722718911746205475692090353595539054405154631255950282915176631688520221143916915235994389647992718271527635178343444601719910957725470469189607429528863902456015026619192717896527376573418062667962925442748839497882158914921126656508178034042761727399725835104484537065928631182974104052411919114958596978847215753042738727101572029867858427015540619004972241889527828131033244350997589862326747861656881447438822941059841625453062342306133633951172511262658960377963816957529816080899428598074907087781075378319779351325759542494161675435498812861330109752098132532140296256134280146366187068289128088352057632347394619544824387373285918050469040755730101228147924664360465286989572397437847914082303449652493301939541910273020338553154537308446526294403199263505830780832855223203149407361170408050169923004847958846776846506000141219332204850562567910939054518169660216399212002943762845586247482096911976522989904527237790831423599586946493695991528258552783566579693667621465138434599744278120558822320901499212215194267497521919386517839814203678761225472067914413600453715178471312926274253650296495399676157454560752656505499633172778063835831621439222081494473291850512603970158610181149425768431412171477034719211010729295851004850560707835134191583786992381324049999592330235607268604952943352287797525314642364609261747874237963715362631723759023137499981414972722463915497871972080642329300478890371923745578511244473212698498699262986277510889478051547381125765606696482321309636043277897428571398483435201730863626690581240249025509260445685239281660786658542850151522529468034286483973656327978231688119540623900814038140435827622992990470659903587875411854448922158531126853280270268005084435438613676366398258031606128281608905016320906126149465163061433893875828007406843206456299811026186338308711530687286500761130064915888788748389018947255585283830109018242016609511642238802710891950889280814134954774319025709922377506806366957990555058623341934723945976083650250783371684911650945046231147051054284547275024604751822675382866700309340222317731291005357043064558039166822121180425671816068546814655250909482573347885876637875890006128279306896926731815687039870185085468012999703743983754742730567409207557104012124022120008393054250119151584869330356270838547202173517749370843263739667953384321789984332590476965689115038376341398111427906839323997888010206608458388434092366989299381632625395630099429390106246680370007050636599400924220167155887701851122216335717023522459050690458766445769147940775958767864597973158497108087625735326023029883478817080459035850539082737293229319161188952025088642435075433783066401860825444172936565096115030033595942072197327715631347400858388818192199484870244700108554967198046698817277009594757415555944592775807494083278136384547286074246285135452680063489015587268487431774221151474080561654636672091165690094638227936009110300774334688192579484481073957560448732970110428870373788784831548312453515970485788364695450589429689404643614276777501988539563590793589723225966014663200385183578336776797592744625018757194537252536750815946938323867798438938670550950889335356414887965092223315617745845059581258319621105091177831913830080355895066142985626619476824716084313960158646419143015401296380460734675176493036084064725150025038667515320982755148064088689974960334585442257720625216267847910978414367323017924826950254826791012706473129134519156467307787512887909118412071520178721638421918996861011091612200721574401611157077459601643931211913749463492369313696519790050135247919123866386785681074632484286452576599344862088104046872847413292851032040732582755762108380162111131560669525255284092707185101342785916868482406426182842264271222577203592297541054824444243208573512135951088468758637487685571200903125361301091013209496204799153437896069868299079520331273297920046698991708329279096796556474594098818091513614926282325399407341760088672901144844113392982430978788368069817557379318190376440244614824390059648806226926742962020921070417868555470571886453847891841043678680549420521075772369438383275615758444804742812899498096471245556827573962397575726572300454998938093739799047816444500286842598932336591749558664026941966098606671555748275292871644662389814630994003612985042834569913750724376929831951633871158595102529047833919285693311349699878470567605090315715534876017971201358246382963753395079689153355446584842282982132494481155971681175004835226412799319936584930806789090112911507313355866069588350301993413553139586099163304481263439411830767479551377072352089840875660977096997255142774450344170252876700617274216066657851102866835731318918201340006367983379309631341187282513346625912360164369015707678275192915517205011047265758834925782413478012147579786245541581195122989243583430538644853594607642027056790142822173375185722538390144109268947926945679898490697811694352225190247098523235470442604213526343215811022346177689256786708773800111504799301449227314408080861692240628537933410313924224154875286226127030975227176436405543014384794557584586402776914324356671497402169344907018321590012353653598210301549737649383707129276796840743571648890831884016635267246490405651980687025139287665185759002155827076245403085509214885321218550500203375709046693102680006902620571082524811289354656591846686732040850536206174142657849593107625680218327761838260307675564842267697115661970768672358123539865743772402895944588997791671975502780273728253180691260067550459182569645100108526045848279269250342313596372407920190968379746695024007104548774755795207673305990252140215915434499266978411122617643967776604431654558410647340056463246058813513465373917199446306344540802004072663230225058258912671504307445458543497280452458029270826736260198739689104810806947752688625902692091443431152953638805598607651161061275991620403019493062111304136997079619458652383883615701999430147703398094590898516736540554152865515286719930096679827414964956862483004693850151761865102014888920857508726396766786659348556324981810682407887704780399006883569543665456969303453561569340044380128094425436016098375473829075147351769736039021078291275351983295012602729168518169555582786747382334384076796502937230130785736702344856076173819071934686873358298046297055103493078825370265351738744339545020183701613060144447294244588412589632116502693830995094951251259882128396885489880686915149625876957232937532910754967507556137725672611438679572084173669124493100440123473873966888164735471190791643817280550215312786519566793918545931758653359031844394143049696774832844960172621956931137209119032185293984855590999123097380340020224521169798186409822626863148251836696424131665449832177828115747150490544149422920520954594084803317600316763554963688250276339583291819879548037603708234273928440205738019225966864558019482900287895505943664440377222280523820015455086417388455872311460846205643195635746090909176882646998760079561978052831039196570420119007300229819914106407582057144065401503152922155329655088012918089521878279959736182572779012363899455836439387557563884357220902349012509587883015726422921378569011012071101672703864948120034863318163711417919908038459210002589901713569821567873632708247141668556581931690193005343348808331430614152352587527853299949482766415937184005162729553646435631850390191085146668395926302389785992503671158394484374020148253442716112002386104966270767326563784562415271220861391418851992565196116212822624706914272454412261412634472711204371702947464961976806374234978100648807217422339094307020295368095853432158629843646826279438864812811043645220211785918501820317641676595415779900082507829870305135301205387092168948856904022312371149360309934322747211015324228444424103671824525639876944006201869745860211639116758984276918605546889600302445879599613764524337623322635214558725155799224064602021001163102204699343863051824313314271387532312158654310432133510051320163533857553945454364821786865209300944706398702772037710239650001202175679639444885729541958649147103747977128931104711886135160226787650755476007883632294253326545415455003275464489525695403254970114039715831058909836312690270892476499942812498380594463184117393922001537927191488920659355253223373569050362064993558058109039445699019511140570350459249710439343959346359419813673072756213689392100095677435729301998392673396179715441667063237742878831666408453357628326273506198004815196445683094198044748205017829018565645560832385011490369670486969330604342942926684122403610692274122559349839452922069954542421979915477879039783838043083231401863385057198513165157298667324607422437334903490374941726390569280959746968626833996665598297079923304824789261829808027499542929239459108125138265242074016426509430659789250616472241044213197315410874049674914438904304629522969579108758286324294313713351384564012270556571057774784560243367831976641409466386375211539635413491687883690786737806756157646466604962670132257344609431820467165472395560566338260369324282681101170110002824815604670603477149924953401157651735972729409091037460549451714044428492425935606298865772708701015552650491497658416910662374190586723755444821320582382145590046261830752997665231719102131393666879588417524605518013434723647242691165392341131875991068245238042580481408801353727863928681438873469308690456409375013784873497285121700201913104308153219054101095328293633289908073123058017336019557670301303229465021733094289589067986251850037602939784696076214637584121151121220301724647844565864466906644789878395899130828984259623770172471788352067705202954897837188581231112314153672464108954213160169042510430388645519948387990012088311681570810696645048573597690375587200226348501393765469699365439585838677542321752699751586217434279170887707435362903564074014687958065499166922590252960949116287596888992764458822716809151107990597254605479226826206376606366887984931745183200216188083202838923361952127112428646430018755927296865357680128957026662255657719869530185371007564752981777140299627617343223348493230721859707661522726057891372025872391013464994773422099272619921477056166084181471674628218901727383462599112962386472676569078784005437006376320027184793782976962540440574280285538875493900304101816730183549263779313891444245084560331139123922915066646989563109098711729852904665870768088345573831184877805159581149356195453398125431725124296645589091091447688149387607520011504404267376107463827040519495676550152323382127922909510892665788337015353788967139010318066015343012604851789088518579179428584863993029290514266947001481100441853838169713041718118752545807212893119698060484135022769046058573355545425054051738096037526265460750341614479205519273077188497637927568874818077684523494464694925192853738392706736071612086991417684799593905891516669414288893565073279140734419177761771163801683938884208618874113568980886890236120064085336749885916893884637218432680567853852398782921907498667429536178480574195454866378717690787027398174225297115583492244548098574498413280355594359672738396356002122593910132109557021454836454856203682340477442683900253019295442811843138275420779962199023858070114907679234997675648561236423908129919634835741666341396891260605672010874829636132148741541660492649950686002290410472413575713588645900121670248434712687501434055204414014656504053381618795619989372959104601892874693195650102678578530895222761567306330667619605432754697773350534276062510591328499214190207255743295049891096677795983314931771397235055105231662388853200327052884455639489325570378931798553054591902053600825523490844218942343092880747464808978741153863044015225764662725728296371275708407073256887409106134916302710649082375215257710032952209241268024290012424266490204431501856374874810992665817967052803600817939759316848854491642262557048645917917420060471862081747158536485881875183578955686506067129785763841689704321992183980796279924526544178952740704084563107274178260410110357166821135886415609799217460288179008307247759054564864733924044766907158306266431752882149035375248634943932350024782919636254880528790234335920744416647294463606577349510007715467456710716102337764173542522660407550326330707720865410367245642164633511887049135934387049253465676090144068815473900179146495160435591787819253600714750129239179774776517689000972957139995169299629185878073260863060031793322722892015780603203946648733238832118858455475062641662511167387328795809617191928452690864787107406608489759431518685126618838075029196610302023210944240586610527845026049923227591906394982879540946834077275670987566482455080396462044810925581330887378993314625841008569957576824630337447334055248374647405999726926326706238278274599509273103322759495557049196951291324056239145223969852179059039166004262617977488389591562177347255824448871903320729298742117918923926281728241062245597806188855813800846614492870116965934097343976365016057887960144112961688309365737869564388583833020735191121483539081270131340107547617272634811390324761815383726465752273577320343188580307038156627249427681614722295573819612643503675691070957525910774086439266254462486668661035041218007933169582143423573609207368079717012771457557775266937141100135836019305500458448195443103711000664228059276622750122339210924379456301002421967790764682176457677806975617629947499139256141315531329262311294120852262929429986408846098227190278639060453742021279534483972692006720125114580914875013928151991014947902097041539475295693505723346815193018299968659717859821060234610562543098324883901832232080898462298450214638232584992097689583941416920117463963373615296026438166548632879268673019404737709607656573740441557997359494463597370532545941105244348580685053429760838253805988370050198608503315172953009894705359266167383701619282780558353497512616010936651767391010265974799685439576372357324398201974358139869749497502272316006128975980711707442318771142320611917882240637065496261601544157100202639064313769656525079540064580351177452191045472032168364437902246130181477817173943383687463853736646135670164662701463944905384567318625554348015054182477826971523686273889113123950241702885460554852239741159230563668997054696914063917358099014604842561229102006814714709027145377210377002260424590668985231628787200358618825261948496720414561083074869813104474066718997291480118050407234377065780901605094629797238594851893503154676254275404908501389892894304474334518909225070802257548570328954797021309867173135417098571300891683676927854012133346832190916801804862363566124442630307457285404662557037504284852409946402110509213578012812314454399361236104247066896839387862995202656885941912620452304957792794046498668833560352684986972724505222072197373638260281417114056265223538398988565084153041023222546793579207975889443610534053201384678476900281811628601218701593360190770976639563683533425553571488711040431840023684875660283265713436356204138369779045483293199504319446914842853970996218860113410342515910242932092952070536413150636429444853450702037158644640265873215781643613474197611515493850406712838588259570435528423537450463234371009431544570394907043785682036269588054432048520945887805842362187749060363415140755522285491135303461757950782529551474819529543945470947319565136970067734579867462587248467068201699038516781921329145216835080619921352607558367257166697025410447863301609089228362926275500998331245043171432290921748305959752018626921540359729503496059165312000665953650128196645028169266077295974680902872289187310599814854010900468366224122583753276109813398962599333479475079206142532569666900068909935345538827663879277122736677696072984204272471328328505857048580658232038118987605621638211997058613447808754285906799219627597312867962364887542767164424140640231560610355430368499400230210256120263314795772000392222015579877387659125181637811800439673381271218679694632804395703770535714994657180252631644668673377940711320735634057326024660598365427148191548148287268514562425649603800849748602997150548897781598876344799514057737238169539047215749885151573872083908808277260911853031712315167449957420840457161735530160423823148376877750731243757363838096911172865244077826722326062661657816738382710759260841466954494054347019389002038782942682871826259878479882512603921301432707395258256230014531725357704690765490659548892446932723902835231928492520400424131177330362114014678641154365410797579751786568982837418447056006978122080538243045438075353422899107411146409936564887435643498982489574319997365765502390296928735105197699971622965925270960742735962607316058178099808775452347957746952224579068147264883808388078645133681639756579765308568259377542493576582613661889751707799547013656068483692694721580816283727668103769221511937865755423421413498687218659356973454136761476078937580061155476639929442394249949780424963150275583050685041960915477334088325388022718090624059598133716025149032261792272836116783781066423732975462164374241141193232941110863557069947698113488864288552492315743202359405687571833320028060558880316846639459824716876477352174341225608713325906687745194178872893483529189256684571522240517018608543620657957800741032411182596402166891516180069651029979436719620956787574012322102313431378667276148542788709369087191398276800205016177614101432029163452291249084599892405339570827373585899196741542678374930552023695194956100575278608595771874870636361179850311104287666216299897269461451021660032887122520788485259099356372764056510407327084398759171073579417809258939858564684686282935710196942820627093614113199369736031364748005508279558874830138546603397159734108805040331855653417652390712036896079930389974321940585042017419258317408368076028020543525791435131725074479364226978523058800608815993533955689199308420170285928915428312475525978081123948049649436125907857959893288388029633762703450457492811087132453913674313099269373646307413615441711695674390422572127738856184610275249616544336809289917587068866817731643886682723976434304988157372887861847543363777161621907979914502042478685706976406471457591030632531305923647309118758553888194639024902883282389219004020687223400633607103031949855783594657360993402915751078510236315930317905969281651381879936025784355130140888949246043964094913297819771296665044588194156399009401306933366985901826340516616383273991394638422361929908183095412620080081364539585661907446833275348629091084280076692428323265853079711780820355050916048860244840873794105248047754856095663484123888284557798626768373548185886195167345999531563368882636007986100961588655879845504461558727551243688232489252706299733937034590885481485005325447647232363834210059144160523026726800798423946668613679743550441187193748878105844633517892187089545385839746738980907208815442346262580036174007142486130388732536377046947205942267160608899077192992662167355664005968331370725916989134278045728571211738259020382407575287179189487776664399014385821420879267443753678943830368423912857015860055192492305836064118702281574969012349217145737588058553148004057421265503432046827696932044252496914249875150390070691172977781673359543105685646248185539314701437323505753118629743575944364388350271921154013091356589712091917314197634850686816428017015483864043822471335781461444369073082389207064592560876593532510972222664114475374756107243481302615963459880204244120504881165224489198078471388105059659879612863061902441507520080280719063089987505640444084518953580263340950425673422979488812090427375442375547999801657875944221889162940608074737159402334966337849374247993559926467339202152556495249395858568974092416743026235539477715301315937750470963058034849218738951394551643285155034416552629984212847803114475764414817166840437319817356181967798654664248993507454052398359409802209978273668647615271350625987177270563231184603838394962982536523776107274341119709519291864100778123958823122121149124530654219756265630164096139317157378529607997952575858577022110830481881991967964439574095910995763289247966813300777168609174220897405530288210891849468787014678466396993411050851829577966207676918020996678589067628481048013296292170367683905439161137527769172724645704119563499641169453969753102865618112239189263496700354208079536516598136184943351702544846706472461558016447652429291860301502620192010026022693337407391248341921813114453408571228933181360403476986540027920541583566839016937796144264728118131279823765857592251630865781919575870120526449390235738076830869980380688574291101609224158586574859939639654137652343220856291585172767098627654617203410683449470719946935940193963836838595241914798636163151634410727588749353170974146694539721233782863729970036871043896021623777341755003361752349765091922014812498291017502844608823016208889057381997027732487160325215426901969065381060276152284466053697509182638919495098442240321828153507311231251999872883380982231350115746383175405168162604163584575703560371915665281473583870017356632253315122861952263062125724778273929287779344715787493299926779559810077009549068999867378973509589546599722782619771458348600737401864245068112455091373647228240236414447145024841013439253962174127895036107409656070251413993381594210477371188690051828870347687643013358682532953927290749759835121671674838146256634282025667519031526850681834085626508503459433026637891331386610782975100178517792517711496443100214308434294618465620249581281916679814467603819207237887148675765875685538545268749757225777217545990696295586786418428043574207019158962205914524053765928930204019141711551816319222620728395013465124612186768982968529216221524141386545465900858317230496627623434637397701433773345670973430108753411621441326550869659230264399905108536536015352524853949994822428654109948575543074371645116723849639933037771555895087093997706937455977194954980549040795084289970878746937386097619791674611431815119978287169798878835971828161003504612356427913319884909889784079639465391525606926586002423340275801621883014944148546893203054021008916964682623830972142933536592096306091332028349141184038674304338609891355006599173163321799565289351658952749772183909967210691681685579472108242758714353715567537161719947288677642794649242476109670871622081220171305829452778861056374353266868316649651793802680953653550836899599336615593118961454649808913420189873585325388447005449580803143191470966838448427664405315672343209055998620741854130858819375332070775096896003684186640383838839441627074993826263589008880030407655959293110252460508127612012453929988750645131128019299577957284330560293667003812552598606391863604362993428124215335034485907437889962412306399680797079994006184835823036214745283382130872514283325865747436532813072622294539208203024441798833327919206829830840004667126669371888774994538791152839616256034489379078887692886851978002322970741179427378115671609515763508598124146072288518971502003247956206517825803419690447377912722591970815257940136329002260732389686619259405137068943778808671213760451523981185345139027254606624649324329784960215632023730398284771285000156671196614287426918956414764656438309549443442200328576477575672460437192249110359129631438076545133361511334377214082314581579223488217533890806831526694858920686828163685241791594844206808748751587030754065058628827569021233359692096111135589757224247994544163943128028225520709265671428402859404721172742163075168836694585684766277554049432580002784301971868714477943117636226294972726973544504800380620595538253504969734789862130101390728444217034299199980931694452019081757680708734121606663080815520909427441584515133550154620144242267336201504820012259950973575850633477565322721288016368049209797845226851505584612686878794211879381239810155608560346467797358044784288305597106033043377810346376449461269741108504264442364323100489773915439481943076309349796544746940591433249328806508381287740454417247448616080425277208705313015878746041918148331859455675791640434730538032932394673960414638601621329759782295538311963026058983287066188791404310596774247625189441031531342921059722787255971402849523066150585007956813086766811028436866691334059059394342789551824526989809943147017393330288876865652301350522995886199043584187267424536651668718465085584585748912731542483417582656185738817024397745073518308758788933482539290203340502125703612580280767942304505588123984055444508766677733388333145106397838533600539318134372235836839805226615881041718985097721079548771572459002450459036020558679540429809740551115662839129145958082493793889711293940293711870512611017875309150410481914893416887347783811363030518733216791712520266214863494426868063414207899995295600180343440864549472670652437767268727937025810907197456276689735128602774199423317878384003108807183309893669656129005111239511959657582372187124385182473098543931338061667546805429107792388407991129665010541701740466925161674534753937532038495488574694052947262877771442282613444049397406137751145645645036746757968715576005837116073022412202998738338492258967818885705537495355769495965204721506111334314945022802278651198654397488015385232469018463770879684285401943500886417200465466447181050563379096442763632007933007059919552466697803731095587184859618025867099563014549676057423788847396431167775104666091523445898307106605246421600075085524503726749591828769010964374551644123031535896547225335093200173140191075588473205953479535107321189615157220965377386916499411340368662212759334683407269531554139656465359311621328009737661018307403569903514327298592059214608994373953740548745786562865200926818523096843921159365368273231964978383414880434276067380123925126747243720062640948753052972167235116629131715129460185614656334672664620201276236685740724130031061254245305135512012243810868253294329897577940314770844388266411157924589190765156310306604113762417156890278492319042846501765635612865138392620458411013057542982800048020244748949677520213925984537656844200667171610474401427591577102384598885463220062624690508646452160617628520627258167983013787204196988040642846552688565825546305401825674021310840123173881789540635565375345231543481081380866513711728772015644963456486107166435177850898978939659543071509126019907878066238693193711716083284315669062394063799521636095014064725856464197939102971155244652056025945671439440046301193780119852113729324957568111202862839396369373990940775787622133968499803238920508897918530296666906533740950933994264935255250165420456274303417751411451934233769852888676879627047468013667059577920128013767735962925515083570114624839231398910496991095422139035761176700485769706186942515991303763017885809916235969794586626529856327583245101734589534832124973349027687536645234390406686125279457733660697893121240962284734363548557616509746024236393469649825723366647507305182400540481842153271902778839782783220703025374604255558094149352565247846305528980864615800051742474140846360321791581269118139425249215432125915885549888629450076901402838784760693164553416676134024522569067463725348572127391434979793483593373756308954277687779232682858038726316258404274559352794265054524851500658277618674720213692287358081967578897400806787466246241032288202658514735102680999346494582976280925585057778932307000424624426729864886068053410756183648556211270774411685884016359665784924563483845650114688036727120541595591080155054329882650967526284916132800384522870966850400205430862556725769999246691362749670277841595695770858391468108079155659331114807083580333265372082929657934737055082862730036502985009742404500758900153865937505152652338455965591393003107787548292406092967086032470441514462597460884724388952490165647628222539599138957483666412645381058680342176412304276963681290128640149462902923264836547737744338980943479505065081426682003070917587671684856980235262394551573787408661651334221016249334765500956880555992872225527394097300148751061901736405660261960134474187823779437012923916381109739251277962489081478225770622911686756707688043802090743345546095701610562217163317127051049814443050825306521042237176351608293616339543003082125911237378559388058182280341111317348490842693372661950011669047804845120570320020593522403489506500684550801363770441655163102405271894340185516553695435055804536972937897885768740831154261963550757049336479386974049815590955281021742039071883677183752665101663863327398722426042023761359472453765922199578502816143281383226136968988526201291460345228925047669389454934787202763244102836945445140712124886066772049857275641709631908115851855077346271270480901495643546509546204752213141840224722543143240479533512231172297726069023840087520692112594451134235123059718717859996470098195882570642566430949568110871700575704669228850130485840052313377550067695796130800810053197496510637957030561150915318006460902572442408380252416753018686245264704425015122329369696281494770183551085776536863074405139811803262605577511919202720620332465631478565334791151807981390004623050135278659826403704544408026842424863729630085663858254889429544765451082937162181682310181367084223118806383939902849571812307660241062805040194291005238084545472808191957447657522450576028778996468395232673532252215382736995879073148806720465463890528433576678574313876026538539215557657301914618694642947105620727908729510609220772852635692141384842164792698787499695641202764926568864790169479311405106446486288989880931617459929927789851615490088923586957593943061332035007438871519885140693355732570914855093031246915316571635209943583188071879145962282470428553028370684794566933158179398547043997346071933864521083456801112573109910486829079608664351240694182636887937787364176939117132391061627930467089346889099349940096638063264176261546914985180572984578236700021089799545230829200026499847801925470078360319613198780746106979434838175293079802857145339829954181878072982422772330755761123270537417979377691174637557295230459969521572754310383503208110788518934387019009985330566823505282456547019643195758665147528367683860800166939942574096190161086640245382612457166624137669455551800987738764772479528062439583030289642459630494406672613737880423555028175023547877758237636133298781319031590524769059267375901705600692945960216156901673120362889980017120268401085794993459220470316798074095760352309063769551026101346413003517162461725564776491003552120354897774882466675095002222464314162910478402000246376713026892216189432265969766996771450787969259144725470112163526130146102291801139081651117718477372599332091238405234957880074765745719607127690535025743654242367454673846897066961443791118118585781577952533773789076772784292775225947417624182770283159388838962621060890934193015665196472376731029125892492200883529359344516466020870665525751345838620952578814636110508074343033205232434113737408238742136388963270327061378435609186648714060617327229367969034475554800336369114269368440876572461248850052305376457752704609567300678371333757293317719402103815826126571030364855421770510678624680346955912392268271289167547487432891092831807506423462663472502828849987299404770731251889189766245390439822192132631605721865150863359168259744578905257532311172089146975572018799619984576386841534944689981369298349348219606661341068466125612704951803135479508751738063440349266459168923681963689694364422238038636253154469479863099259968930188408195413741721288241868858089420000285892372646783392372306092896319017609940647464821099254363910895700469080140408469221072429577224253283206557044059634475651388819320798258753326400627642921722155344817256802747814991562149501483642591819077769744708866677071135861405302725553992879100105251703432776778868306911458966597406017935552988040707400428384106278218915815854745931969734848977414805824700200707432735329529920150002279688237763019955264981469932998211679972395944265310611649970673375854901837903259851365989810013918379263260650368792527378504408652989735066090286169686444040046464418180191388672883484947972509004987218282660619080746221835673022905736196680276992073961431728296926905444358797305071240625031800792764834432075446879227000580765097678478319206407880630663557932861288629198341688963756888045567133565301610250634061214208892006394367742071416112142623327109878886183632911120542023249239817324132147089317444834478091165147758297174265180522035602265889425082800623189037905209495371135319652730975010201759426412928605027644489881545751102644089975665297472902031656489098808478102734590756749350483337325498127778358027507061072780958650720749292872952488623825579791564914018882700244712641082974754862681608971025736290021056367733714239662560194052333035431496240245259269824859120482101180488274556483920797220335042656777752745094062221628370087384619261061532361326085538201092237438473765769581751781395709567247263055293902164072270702067541369720307551463949922090657291258096191693701420340375246290016010814931629239606914875096085929814585018618276984269344360858089262095578394596863521588298842479057647819610106492572018041101793636445562140314869800194827519491927356266143297656927282635074127949700648903688288840947938957782334192011746625309193653346641739913496215930140843699269330806700079508963962990547702473185414534496939625436243870627883378600334591106844974699985420763075392294371959399976771954090058454938270957438133438024502114658922444895042926025294274638374807666679151147985262140715439758794023817638594153514118698685143875131255449348204513400435746178474816572866669191190564059085605119727150008203765886843792671181854292868344098816897953283016071936282918423151226819154325872416239601838294418383658205792705369819788680886367552390077952221291446888267736582097197792268192949125629931638561359678847200538333089310528368414200203375072945816557669278170500204836587389533229672932713855985798751707885434668445066918307455731668655607797298187991685106396968299378819956758916017226858932783370916811234927483096718072853012670280457683309625781773191511542839083825405074363787160755839451228263193390832726176727450919965626431173758783798066267978731151504489189712428415434769559055461100194933724819466229157152711464364685327880583875677271006035735084223245709837669663986746319536819694442307303280498600690378981584814295922529627364628905499321197820047050046848663764086475136656967604226132835496177122968239441566748768987076954165566314742839245692295877259907871518759340842649746502382741293353515140690888719863484676044514677663287197488297426586104565447825556651624924817048438058559092701429627230503436775222884684632300061688998291749360217352504931630654949130668508853242638161834548899319066716211790257556009710724119456281781377463625752814419443015420812608777808192782360550191977391635791791010890917927868348689037061229869034755519405327960235194819771201042694077103202690746843971738445459102097617405422043240995287069280068748506095122321570296386716831139428119545956412819732800131962354199629289936733724706094644601664761878118680637570009707168985024336492603303837829486971156566056823589573922449421924087565516514465630468848510080707965825705770885245782881132821359795322062731717009402052267213703527959237268740590255337723539298539776002704476775814097373478231080777173109493636158318857180314102029109956752653589827297048929992182137256780193629161350066895303082012361112162870118463316933029018298461052446578538902682616782272054087646659664807575908099344026821565924373751054677641339148845808975915635830328740468332003301084570843362164046248277365426757801534569481072381419702197649621055674863533576337294500676251101782562815494086232791120600292408922793515753821833136255288920920434071342713213342097777053758582989408607426780809615478944031567398708299296522641653163852678651877671873848011576319782611280320972766396078390562827232295829445517826605400411009081639264408532560275772746078811013978429807139668474295154963882349606061193392057126268373831928082475408696888837412025106556644079675581350966665280213757889429976764178414985384250179943946258540688484758515667859141032280122616771898029413162079807846170360100365355926227424119319996189158684752929954220364843865770392724216891317721229153626296542388368142973988248607613063413127073006261186814091654629194704420468413117522662234294681822815263852662039009078515180953320856557613093077636223810498299801144569826405848021881754973120306655725597313246296362718509137981018879136372952901031124943595072464499161252814152183904968862902919839494668211231264331080911530445233976170163726068625786934188155456201060239197011928827952193509685166001742265203311833441123717801414198201545671538318435437375659839389991980040410974222785823423754988964372001695528690380555148240623193442363282202974850675827373779062652695492263647728902625805801924992532361126769684224683823549455549481516328225975136350065808603149394652541071815320400853486746739723938035934963878822383549009194634318678068070112530661954829350090824351662387007693777380371328597999212545148441430513717920744982180493713014664673932963740388866688751972592211088702849187453816365349755256886551737515891451672402764698415842996906685789954514980626075021137384341048586483199117032756056835047009214401173408240823626471671076231068389348770338664608631957025067619279249941985062307003658494837559543741711993737480489782072212118575827810689701351201676579477466707825326303435833754974569160468963587043189235677563470393996715421875619878535444049737269613841756825785060953397924230024672155019016114364156058986243110420285969631736629336864982179809068171102371420389972295522770579554364496772118353290500497969996088440474407266233635367959163487793097476151637608411447738465078132882436889148483438286485210735563867877859722397292297224025793072506575151721682113285615605789382789308831872672678943119891598289488925080236708265502491727027939585090320621338693116419614067219629290699026939738489567080362124132127707213262794619800402809961047524572538908005980047153764015117429043313399392830755466733001208168625054643075865190178630586410398232651406824135529470450354858429208862478194671645990672887994189449381665835727129569372039198019058369931501874092146430575098388841693140009787343883053235139282005069134804740214115732482879808407944939444212618495346033192715486738357371240955158665033134259499048014358263319731191301883246337048243096842424432234097810430370860710614035689067762555090605540838973260864357895118043975152937456245664273502894641736470982687407310557155920626915943616180039920003538452588603245948749176034637441874778539021588753916097341458155368098552551334520604403096683174749699020795785992820145077261388855254741963105283523917860042441708335904193889890568342334491453430604505502453931240569942128587969397855142746479009694495525805610143028036942987893199229899211066655029688824424907777882449462611578772608858446448332579560288648052737296093854694078320135815824142512270685528339753421752080052850698635470582878533322050813556468462018034938348135309410636049732127296486403939573402184328193572135455490652588702090776130580075521544803555240765934470158998293828731041660192848828444278833918845782789780315857723122965987045143170055948673920547314070792256730002317526752565373782443576118245094904872632432883665803996776404527144583464277174782640013695056623335794610435852032171771537897776556452727096039300990875737921377368961742615045361656839652920300622748925507008096133693394434982278150949582390695103428130645324427125070815732712557324751736892869024321515210113913682176264069702533467965623751486180849307693509819663046941905711655324197942451733700037073216343784487965023781121614275328524931333243853885381790607409113708772325125353388217639656206591635889247454328218803126560181333040759717799836912818175463515645577307282629832543279880159911898341259820662692338799370126023679302214993480690495197901742704973049147968820466694247918223677830187033334827002242005893343726630837515801455677935064232940725121220188624498618670803035469795432170100216344040821856482952287922003635960054388015416579905394735902314701559279741386772414868929540345356646089876173253822347132011091721278598937675661507038472856507564315932773729311837739769082152947490628770836161419847767273394592141934906191103201787457389058500593153971183558810691502333315387923955658034542953407904620974187657986267061667717955554145571394963164959160932910810834302095275216749464500982830921012527840539620334820291250503117100797419958604760742229542767972543053978208310308964152604449590076533996411601120868360268336454271483265989737763489590497508632883775202865656036648138378446623951594025032176362637545281801789924628967104093608205137564639012838530305638873630058750194367283453802435002935867561445573152310670784332477609139222903344138883043967339543114997480703203351209344882981867971308541024419241885282917495351925877643182180000606330837399023216947635624558607473000746693417546046024195514918159908077370337945847426708348105934958670451517772524400074632682441654690220942724842762311715766038001273482545016380773029596735924757092173584770061154504143614249522563937488658863861939806970630774819292976289788220809817369402727010014058995350433011321352025601005495237870430576746936737875787919778277963896832444073275314915001344271521544005416125207853117803262997446693064612911224533837331658704675409693039260746080745576272848052234496574925144245562718291797653822916446936197797037883620098945450997502960381796911886089502663392542746638876044910341607732717489986048807414836257478988967693950371345698511950679371666431404615500055673743790455800836811988084448569024091219827964812702607353888924815466961598391764721212573465909132833535494291697209179458077834362938185407694952386888587160390890277565178999438478526225696041098424782739387010075459436244553317283349423959748407730143891291337008156205455516878701883761649570565921239706659427331680307879335161716188177816587612004573047292259779453453961086927355547247348278396365381474617653621365816497278857449057083804651447846684705528052241020542390047637440091575669490081446532008609206227074011667137824271842094328527998023794647135044185925212243255913624217789471956447514662557169688557861533148971784960685857169150202426945236205076281866159456150232405737942550178673257525796867953955526210084413182011307454441901533933219082045275152912629084641638463063423114110918081672840855374306259265305358390044035075073834205275991516523479552635699576595014587382788333813668382908408626027120491184110801369547332453524609552672026770529517281242843607361867667582387002842004312177783733861514975016900968841691302619352130037889586846348156373484535038471253899103364814506976219847389032955126434296117295107394886607806775767474203149459581382144093477070544166471888124033290392233037148733488967155347507557765938799857134257794548175241933726262909235332516110963528500991103770264466022104656483227144502287989695724220513384291768905821958304493545597569148899732938937727788742453317339453569835687273771147757831530595575607939042758450217072324488108690576629010313510625675075249184031958271400024822347192548267391963294429427060811825402061803291356036232155099656255088770668229931531288655939245708491837522338333370197723832663776191791091074362566720626095307564516069147041459340828879147827052441812980451462333479342387191112199270105263655085486562663714701452897854180616533519399811155147642020634790042228782545578413028655250674957964974948145506730131727529150644696186668362185425580573122446937261041325261574244805776298039742613977775708559294974703082588370749453418001645299564732881720319625421479037251878747780638379140672521533257342862653639691340753398026353610555979432376571885955750090283981461171174642597681739779982541885854949780056197608005377882914495175989860376363191208369066488215496645386190416557752499695631908897552821118701431991519364988177402756026612946542501222939963445876463934380370966612554082188119997175791385201941835470449686819065707441341927390764824736886017458955899284030725619420900360341598703634106439215642043904310106568229684549431586386219389367865528404082540613422727912578549337255538274776939735149166002627325450533510428126550813137268457822583830061756015744060382637037939914827503464660526804948001491744581450086102094725560343660305351440311183352591888024736024330322852431936078225284330484759977243650301569901344116618144058618751662812600595857497331969982701965782784907705562238942020718304900830856443768616634496670784157405500035013764727531250041405923441324981586280208202843918870954436112680746282208833497538102796857317788591656815937268225568800395170581698174061044114692478341769396474053352482669385986517228166390798754504419090974468897763188888360087347210169873850013155336541096489576774307738168163584134398753106135062974604789103721304892094623019914216110654775455580278788376122751846313710001755037073061261715111452622094588211928772700529633498913784520670119076292094072603837667958924651366996479214149775798016156899606988360009962316828046241910380268426605316389320884028905548063465465495937303676226404797443677159738679942334338074367804671202691600389278474785031822907487295994357252137576285024033383598310941472858687454250091596804530687712744904165761551261406658074371468528711408751862617947375863664983104480181886521628216090603902801848616423608679406590278817492845193477595804997155513757572663171932097555631074622248151776452758269407937653354690130349004033631177954686427866302631903400757835299011318450676547529942699256200498020795162232026031563591746180715960689290746557398815915815862445422580831827151332849928210765536284677054641294929510565045700979079094633321347644603726646977566082607050646694298504670617679844553982019115943095263554296195452650176349347268418428928817342307011604777543396200416827516070949369422503672913891271011466544942637413170443660381208020211788225476995157527500236515028213587824453703010189966090835262003655745603479507571199648551676350962891478206291524621581165353513547495064236737517302421826766693828444770002337629271013629999614036322193277236931147175398140127135477627912236059217009959783702046519419692629568088238704869555211810134775875881609668821779267390217218621590740859623714441287222586349306899305655512515391338152393447240878193512154863731707426450707759132076819070103476794109425902501614193676073080643104655707625424161058672052276631490169841493823049801212421328192359478481634529529936971140459484955197038796067569665739943744263020458514355105793162196504808943380158048563767479327549349069325546624477384185269311969745254614674500331725153990267397703020522591908662224267552187506753824906667647024527030210108503069972405932379161488572857663687359872005229927432122013251306696876986743388930889433784356135151915304182349878149100948801665399046026175363850782368834004321220977791686266760832737242342746704323039828379655076987300376614402435899272018331476395663486534674260619653446543610746643602630142778990268956304169609852682480512969675089242622278313984550085515004364605941535043670611498856067528367971628456892898905389242829748071307815571773880513514424390248146329046842454261716356371149807133673449924414102271047165271079585972080145158689108132647805521303607001091001228480379147874899273004043490864856379937275921829908857267120349839573060688761325399587591748974344626371808313813405066185637992223883699128206818692600506875021515906348481659710256958249210464625177073541189048467062780531444797364924037347413252580983535069452295827075314640575846741141114006942657764551675118830293533095252734871858458950974582116152835559039196795126620580617218469439498691777841818988208770075563532080836629181155200148784443468873342416640008669187142064598384257601897980734882162878473593683221357154488602726498745167625668258448814666722036729429392328435291716139460560400915741271501218740623172537556150883552944100842522105846457574463895214599833283676705847244965537173071149510237599364475582198946502584687762163121274902738572317005578015333104865114107270364018441241389514334865701764089005509648894861116666835143767617850505777577345352450615859820451200734145124586263762394780879130657724191362298498514712274650911725764373419696307020210967566314287795966323579538426149861664758908502337809973269879010982522090060713523830400118628466603111361989396675284987661801262541297497247591374305089492621029985612507092135198013236980427979806578117486843322871174335079808461729858614713861745086187022707996872147642749789869656427271022141479185046622221244410594471207866732936477581367892526561569191178616038384929266837806027725424656657660964795866650301263583947870804217064487076417443248721129844669050587146045694877238998534485272771578580627238760736403545649873619824096898456980427423626042448132359727435686279897816307811215450631997051874877675221270107994192253428032519221436495772598970367199123695164819186808929903957486636319113914438653677276909932681189073168576001247654011673594871393386692493576866422375152441040243313009014118663509436967474985599076706025492150859248849171633952299631810157988650455503388041003828253875972238885105490315753009972011317565066954447895117676478272116401140099124672662007322971108373222707970491687341865915958286497824960888839445925884693435683945892386449955087975732231456313758530846295012495174247446113213053342435882996775694705450102446945985201268685020862145526526052985090752282561039867086078133885083944068179608234698833301770913529887225283799171232817767188935401016190234027589245438235265378246204638173486819910815966603630283928539388951678858484094224265065376718372939400669988026778890230272485924192456874973875621857441384953818401614847663865055545801537101922062858625771307661383334033404501027707659217831182556144796731111720058000755149839310880700651312990451803860780232592853941381296571416526358793146644610808553454650265974505267263875316554822837576059945624053971933680929246379486980998062841644172512666806764649299622415102069473367650889201315430544564765882385453199785928235525217191107293939797104694988882087492025025449012988545211061111778438216069233343503720429232456333398839127373165604491780103147874569027846622782108165399123156717117707122377637228257345007894531526098556998703656932238347179474798053782551220960137267406632947738840874723264663795293806760111678088345254178151291426314388084687723425536571576717304195465050166948602335867163092810747929071362826038787493378695400375729133013497362049997915226536283624917463096680028511626700759459525678836453692668970839827611817052108957698310599403965715746392921073775297401315701516555304955366434553978437472713519016563432197386686710720070435121507819390418436180265898517340711419184603166458937049819504484876632308533827615142339622963382691774290731176167390987773703618728545511434103964005031201973145844690454595487399148933307945757034988951102458356595312222609269880429768253926046533834723333518627395394994478867271051453351972925150254544614924241863436111891447747655966379607251506607777468185818795817713486277652052460893689703816269264756456789986900322356063624492352283881645830471459465987792042436071124055191442077926792935800704833782556739137341403378785121665666786152646694653640456524130719656144937425299342274452437209444783176127724447161210601923239141314172513369118634002140286169080732234386539768677878397303876072305951381082692141085002217660113891225948196639425084689509339323064986013181744613405253370239162391625927364127323299101230715472104414886427435523748310531765809855717580137611009275662562332300999060247199461512677049923473350866773592895328278665575324292953054491360816870055991115849584372537723241690344275668726975540973932552567393762538027928765026145838582176578964086433804150120107070886641872237257206192530606634976698916756921288115528614374459816473163245925653473875342525253889937821769272207810573512131228259093887179086337080225000199356900208606707277109297026403751918409984473029689820841552876998795560962127535973416819586628442887142869462811244089410659347023954255952363865897925500668221951357242825902803459918775299469237412390767485097521102322357162615392218837314363855415714788184990323894851728353873241072520251451155131945359446739118097840391128529484899509986258778632435911735201097624613766607282277790274984776074156854708796091327078528601172504513145159424028428190507009534087445971392040458219804399656357399907166784879439768896021102588376274364087594440386224019553876726278394739044467910052977756889463119041587773510310725502142597562879683111857197715429799940855246653931802900876680836612203773699650533777016222627224161337000207700395651216614203817653353879647014271297589127254425374932166324670695665277814195284020798838815149579550804399231862951704950392764633704910294056072279319677238241559410779259241208899226242628525696863399677974028468723997446203746973092409128771070943729776488590511035225619972640952331772353966052405708975636950867641331015316893782568222903777037747990897014862599172900242149798705260792545432554309586069758633904630746459588032753404233547594544372592304367076528881920369176741332820063892891779995779420664391273366499048088194714529093934540148677420313606446852804651592950622698156348062667279038327088771092774635250048008123063458164424226144687058084586944827863554611980131697744379972938847273631536577484697313267280973058617432844532155751907078484378380755868162394724298308987421505441862277716294126369947475066098390975218666852846366166861564567802803527014961091176004405488410568481486209770344139241084521036984212910311445621154615388543745233908564999774391178487413058868591037280613564785691702147419739334236352262102602479676972986053294302139075874426994547858212706721431525129177981161126044006780945623993881040534342800657406943030741692013827109287547754929153391604768853050451703372446006683442513853803795624560330971937869677175380742695151981764782136572418335303339356292499032138881873076383774957553690283315049584505023487984519047444998817249248800230209016944886369549665415902329236533473816579987505318190433780043885974005589563522810944848291347949790304020727500955429520496516725287075417388340795764645192599460561377942941772311147253801629795670279231232433541920972650268851390788261140028241171853306222367319349813886279510116875724490382065107361133924574934964110155541491927943809124300339089459177360856137932507080120111304239966783487785435307155446817563908008044385121658605153764615525573389747982875068919787427366460028611949927525557366420556308003130830342404217485284054789295137264572963602940366790578571419903542911613060037651427540751810669223652169214523684518292168860865112982028277551237688065260054416483524865557983103223754247750292311432601278788511985828688583587586462792040955651244391330621451110736120444583788042390288330547182098699920336303321999041526352539435355866657347056787087689860103906765593845111088065557682838067425860278026519865794218076191213620520513510384474497783891585339767516755201173671942453188522533677511077049753641003573708250268526402567883033274504548590766479497691598229540410084542076882552851254090217949538014227259717750128859425109223918754510473683761449188275528918586878609744135907209986603816041846461358081154547793193096789580037204004475023758298236265681791413375781040452570304237849526099009165985774378339870717248422763670326000843394746809187328581813994644032208168467281384921636454475163327074725018637325763675790249826944807267447868846449483983860961533495366763230034911562426426053196007196383481596107589397370730310913663968757321482255782884390539469038825431558449702109538812697507238729731621866925188412017780534653276070717032666448901618777846274033221161156088263384574543476294114767040746644030843147825344918268418593899901547147145944174334831253638034133397158817256521045722400765491526963518348833657653676306550000836251477196385914497044268567425501031786675518006223174012727330668234259700553446546232466740378171405795661780370479035247161946242618205046478646661373871805234260462374737144233670963918838853916147808211266458853905863731757810859934953117468307418676762129252894858919822086420557728922726557739201608000050000382957306136548884330558995785198636615112865524821993512859119871174656721470052582996308763831606408819179265020886542652508746749008598201075079810840556447085039565203420059154433368015883887020517441874743990588794585255838509109718198213450317355194858630814463132682930721691315196328902419295564824007799144894069034941569167364327875286687689978959500340825957590598466476356343730745205901166321167159260806377360322274417937870106392077044084104038797188394975917962750817019865443566706852269391587612480089630581134385765187805906293624574115476062464532667306294693500415959125359812556084056749550815782578840621664922534902286192669691280218918347872464826596348415758887738684198842290842527593897650621419892773301618415254350535548288887976204796634696803867251415257724244052146549508427880425718496170977819076126559064799557732538665077987496436457056235773315371509865985007101349448947555549401228638266395959807012994607646337341042931398809579597824800886183505423450552431291648788905787974235321725207565053433559378174966134461264520121916789893210029833843234772431293245789632843313838331020787639374585785716666012763343009666372418803150836375748377317926074650278708635010809821625101091829548689995282924900991937393381018518820820463972978623458256366942438138046579435259068602968966272601445145104517595355899536615395906658137394481636480677001527809122625341625324452047637222558293761848197622019532942890786292379288876683965997875298259516707430976404871238012066076074920551139717334300960552030478460476952276742074288459237651773635493366122825424905199353023791615735266890977491739657807982247419359592325409230317596859748359623041658497761846841901588870538360828193298932202147535924478524976168599868464149661314496236769895958276962436980626159217912869006711777063147923748748758465855784461099378704489767772214434728946402448088566422480587050214977619420553273503396653499339129186431371459227985730094473950150374382001503717676045630582188899355179790192881858991209667058009625282915260146133071716859111223216451522112866598357824281863686978758166187780885424216027667277482738496802692084606758343194231716094718659525592822467027587677887557952049592851128641769362324199993773562740117593992116444640129660908845094435148742260486678402536384780744937397220412110035539337751011474364073431221049149874894841186923497590138054118514737905022450264954150334177946519750731925575183925273675291923333338517011422227418696589293180939436130443367696904007881972242515716014898731314742947120759443653746215674567997151074885186872189066630894602694273367981838538723360716058709934496698169050629955350272982852981914936644215493929109018320849435736931648085724847217134721515115436779608674284493980454501362649110915184329312988434647957812749055926295042736147637611094151238128477015041144941837871138743199648665273773985294218847976840459920459187142490908305473280145920495695270093491669465851210872592844789597834843437366963033142863306280494500469828799529312337158816489804335191360710708043490170641865179644616599967277537169564436032909314901317969618471344186325242381996442873337008751825491779681516491798831459398894768202618699999636331372869547805187792875348064458809848965791839345282724678948474741748481718423183669594789824970794193485749906042051603338042926392326794763225744160463368588271659469967239652684980649135181381832272930430158122461905422184049470305564378828214542749437191862296625228614565385359018825917654243662267506664841686161357023461749042308365123528333993741569606653524330325159483629696409911884497463186251396330485413047917868696535045237123418518835185103989616345849312486263428595063603076075960007043681339510055915965069261511771393936812174157529450971302618684811187229601136590736615124964959658816649282778625816085034879699506233452261349634900405681519420110703317936367866553659113138614171591219429805812238573279153535304984151638933045963818624041817331988168884954824775611070288513606600097941052450253451031630689303825559422250680121638747327044365375606599122374864066850471285420623577277190991678426705201378694139843188065022890232762422770141097868929908398312649080853935231741633376407173258131911623952199141275248987996078111590844550693333232484555389537950668538443627543402687927481412086980036913767931882401299311055888866614316161796336997762920823516638392177814980958529691865061308363697071286028046919813056869431489183668033921575778621902538177657989065247848053702963025099081258275148786332273230370068586109008223397481058971171230211139312080194393028039917191971706128747566920370656280916034390298195543683244615790166283756980721977948264932129702977164091355782751301733156690500655727631385410464680312241287875651893570096286678522514618991143361714406379158274529466008072088259049208849648504254662625262394234336788400477776293695865947860262856321832574498649424337068328563891429950530369865793330500371792769088518179301434300628742787678505532312730033914558430093911768562072109078212698009370540213316904122627356057585755334904765609564313045844163152698879260292008914500254597800230010014868764066744845442370797752186898454073614433850933284247173763904516590199796784615421226998460783458252358954007667260640827418934250477476638003630492379155103820038068034556038808150025016867823096333406030793163694607897004889094423050740039455498955088588172248909432085303766414651644012626931186970015310373670892238891471093111923675538568658677868554236557828720081063057621958613061306152252492847401749163386299302194779976268141994609982903217187557309861131428002523234828339398052014268974532543721198444566484047743422736674433272258773394276880818789374501730588041996179701905100867129168964427977377419221779407767149699255785501704096007734416556793645530763188056600434422330023156023300812583821579051316612541397377224438236293339852379839179542762455148614982494801782230682070642919036706526819858953270787569711106340130302366643279611573559982977942825947286625961006291967280570180274076002357245833420015062095088604985082056324014714064693279705539659311835499575801011326582934378388339186916180718596800103356197538185076798258911863564854373010702604215678409149783692170656687773682626662210427953589460467856866842736706237536611448939352399189537710097844553417592120646838019927711048457494010224963521689707303494282225785450803947229923892135981764401998935682619781061819739081013508924990115538049878757066337523935364689891925587564210914446979009639513421169241183925418977872538199444650005081600585797301303880918140048612212731671958017432693336261974449894842599499218763406772326077729300345700720625249371350203997840488170696039338165206974012800556479779666454375455905757004595381645121285781873567332517688163361777853778888489179826000706729509183613313646365498241401669502877466144437088335352471108725061432930091942424852878453940771437146656174063185429086341685978967564333966574906271051071490822120336059356337754083822971324897876669524889409261636272900214349247808538705061499250832125043849972838207440928281974713454129937060041588680185224583845530697980796838753483800541595621919517258601608722602493927927457104977018344072550433952310115155310642258302384113210962880310084130697801215647598104448854042353172642809127487326037612513544914469563932323562216834982355349255718329144779972910920444130363585406505332604215459994624064544297435466563475570690002942888466829997282519376583715267630315045967753438287678340154828745219766316102685762091635324189034414925278006062572334824365346862379240196276543095556937789159539374691604458547145575810651728504657171932689135602442864744315737561986750697876153137692439064839923158547795581187591501031116325923384493797927624986819443480726956076299318219860013567396382564376873227676337679990876467707937488612466437765948332804662977725607755205785714814752829039806904070222171039809161379112305290596133135697668875055365527419383793686397005030606727619798772215234967616288715201386556977196909975757475121538630954099909171341400501478489601234176326408364634471543237902809072909362460247390953250575196999733101212931694935631512514806648407662130164230377912047561174970637841783666738495837693882034064282130784406901695457532868840217178291973735443561757995501802590981398265972075318540421055130670549062918258319707005910436601772633327950063562971378461561419584253424030612937989040356269798949994086159855222333637753108355623587304261226447099564781289672971442258391637206209637075645508425212616202348670816857031048063782505035361270442208976597281469629190266433428290379784466178243706789067851059784094714613163679508258019189374206453831130506624622852585972650758672007145200179751718876857645900473628269151092805930688909862302511934913992723241628459969568277039090287852845397155277513796459831865180669474662918976512995496255141635267591423987714548625189635054867676386913183047325678115087151000681386361007460699059731294895217208634725032278945920531919978256765290997392924953663042992184227210461243037505692670075715655310112637479473229399688611489736375198119636209457894166703361401983379504822061980631046001534615666646783723487772253303048732472206035084380816058696497135864215304367914433027471622729386822442890398592783708911774953688771889686910961993155072575878341946344935043621620598990954341680636411890845548257925996849397954796862916238059179321899028676002675850045505158281131286274674958842132213897402044920601782462519988036739386063471022481078006398639104534555478748936768186436635096768703436659479627482276329403023652233474789662498680183425101585137421388416773618644186996388098472397856605795058207348778818332392040807324633236308021081810741364165402371384515173687757257246487624285120263814781363628485511585944764945556912568982710475831682795245236708708368853557786362211196330482697144039480827892353080440927670351457805541972375887686929015708170088480914211150885535306179941037990601792061426860799497040267444440351794101763035926760961659148581451586458318692429437004938032602694687280538882356667235946002684526466920780457333391005026876415384959728671102550272319925870713096025458312864138613127127296981805227097281000653189098897646747471465536461766898003399728135741175497058790253441169280301478538284309700346868356727615256011180226525164879974651498167409261302157425039390209394589297202870804235128548110640274207337959909365194960084992523936842655632133382639624332533450280645287183732858568826824365619276734015486882540985262877585938896279266717092898285996977058498970533257276079956295418637374874497774763263730809567523352537291648341989799709529770206583381245718493193752210421278791059512586115606322604950315755567470371462482620865529478804738220864040997771326985186084835609466379640848492897577351659953013750367370564677913406717811090766066740368594921564821008013549584280048879469068571443375862639053330832992498816869155896620208247712975087552093441867932886875997674974148304570949690496258318896331258869917990620312905789382411322498436796838396081650913370376806076112147186988022263857855641068248193429652416364317354577214503622052787435131768506832751178788079523284627147420226640717397288852360462605943184868042933198890727103128831280857587126932233620695849569384171348307836108821022853014746333444214177424589041323017014963571339608011273361151863783375321271764830808238428025598275816998488344902758587467159400879194919471632226149255738231531797627820914330412662687890112100256705492239064723007497974591633222826224549891022100567626486280327685335186352353770846660019688193402725182125031878993445158201885990837086608238647740185371699980090129992474515124273594491761665141579765592485612156825939944549413704612038664928184462862868617914979133553569193884298850097052726551621994450666734361751789846061468582131086093551870243175495850823789341192364751196819352210241975782492522814821950685391291935362111059745736870330369556184551360095639248217198371458262262839294779267431874264481372757524090804744864447213460257467978194798483478506447212625579573933823778633875032201991421141169189076523670698278824775836527133532183072003372292422384665748161978101932045690084185232683269294692468767580263925591602581339817499560352631416315480469295023547185540544967698385735909769907109174461071328720439737142936456373148513465498865493478597307239780717754957500910875655636514983994393981625024325871705067517129122885089751074048077665450335543222525630392132305141661596077585045435800195412712278995379380924309786605266089479791588332127905328444784532096712309042859830818936120957065995743726338502125310400520926882588532887060955836670333401672863148223047534821205113231404210969447718378903092410852235131828668785047174982418169307927704775925555199817317426652588449680485389951082719113537245820181470395312849707163323495054057601153425343701873978936438462519497082425695215570931456140573548565804255213905118638675420273185462436796403696215427981255202235386861000412919092635075635579578069076595117664141043218274011345456651509000249664218274748416564018677032836105043566008653198611749558230879153372384039977484742863472604851575441850541209702450031789592861676175416858389931256163539250821419516206361197471517665005646796713801705932823085875659225243656453744870504045763922760592963082415029114003923993534171441066559065214895917774140073334094237260883513115369268168519814549890213287393965231892565228989628648141451600033638125707825447262500525283069456203522669658138477786628070424530705137441407013443217022766516027299342252690396529923495836193816182445928440838900250648982211178076928560162787345755782717403794829811467298352652748363869592205293455063485182477038103300685662358120567295194547819503952587629110594159853252142200131249004907814071333059632347177952880775757211259147984692837773784522973208016296305342311488788787214796426409482408343907075487618725504216556949315493622773182750254346575788755677725187046500389426140841082147827887103835745263256980925390743265296998379779347184320083453804671089343015059964749624577861767940323781041939074913629351627602497238562711454210559967447632950570454075874171166438592160977057383943289652209049361093133720565586514206014435326014849952145068797846943359884894005628489295503774533028013167826476218137033495584526492641093866463063382902607537026570831127015963138774826082489332273767503150349663662162880170258922595161655859089492158460947742236627718136031162020599017312604958440090861247541170439580324671228604529620526422968525343420970315539833010032144217538144305289569949836429359145584914307665985566370036517424375657271795744555409317370857146924440510667153675015295394904332355858047532907894536729306146887519033345708714344620887184796387921145281792804783256709508530949719444548770277131070604902530026218592710171013590647192045790195758533093810238150279581970107601137683572425115926596500006916756784734617239959543627192744869985497539133057965896359792162352035019513107952412738857107988336996726117405646477660199453894469448624795338899758893389902647591388181985726183526446604399660451733451611828822793098960334655519451999006095856694222650259500573592268034371612940026384697151267062925525304278693375782476891795209849173614360186808001709126604207147952365419494188861208166849999566064334788665874368852628565726903956508907570708561038092459908333070876474253090566886712583261789112784490462728701753799355378628735094606051684455724953017793919216123897712101975495796158331051954832632839815566635784028693658459693509369329214866909448402779816213456217553931054882214637120561335846645718464576892344685322900779364508408932995142055784692863476856705074078411895405949931536329085616646109031515878498684317724516623869409063903926514132696144418029046429211631447113859721331311854531089373887468057749915678169300309395959264695564601502002268665537641906122262333322115775091644487896240273548049352625727422254867452407040636348320205336291778926284348744035341598116416426254536188530069036713366497773292264157942194875404713214237925728510953748612426103834859166684600753849391369012865234947607270705742851000536581680463164271964608702905168842669080664863887941011305271720478864616759468924269717159338780255836444445612477002258933806669503466497608106760667926025579330710383015340739463597266715609520479689836936099333775074818201011363843883463592555423582190369687149090387676209428341716752559697695916734258528262939007880115816955645679606602788693054118929254460372164607466752434768350072091422789504057699453454316345347266459180982167135010850572963847329257449667925666168482366188836398961006283876971983276947536144837313572792280812896951705776653430237699321096500614279767273486277336950326919150882987575201275493260231460477970423042162645834035214413592389192746093320099741471079977438451255062029672822575226332344907878320560843775749010784684963450344765307465168893271465285072812633351672266070355074395204476723661979572135661365719204264628149061763999226194947374655278487311504701464496200837139991629744207330635854911880575228305334031387340660353808360969216427702808638401029579245326851256642853641833101983591653022898224824217736587529621234391752919122880961726121861592355166116571016881767449912749539955571837642932125503066695099850083637235721717744420921018109187375247608461605820242645614397708644102471754961200300694816195084114887890151335841793679944945494376480307854800580708707340238155434566493970062978386675584056714468798345981581649080454683983934609353035881506041507202345414594657428023765956991454855393803963415093398376895404205579067452406872931418839521008108481547639170015313589881720933967368879705855765508996973564840667239047514683480763805730924967292278987866770136075520442329980837933590574899951522187241055769573737944409713322633034140256232061250071803313343089418557715706544554673133889769100738894849240460792242886173663626646811407869049251990696777083737359005318411200047360059773337648007025024986878398306784789674602424223785604678927105537646346209369605910965715060588110640495106446082529921457798175579821862709198320720798403351414710584704134810986751821136617879705434858302021520529867628892301243393152336010502497617339758124607144588807175981104142141386910726378760976033412153883668472784488976503053741686405904186700445562639251760183243092651868791702372062530360030509237385644812120602563535845460486910406272237392073857779345253742161892677501315729846444609968112549302452743910016747318576837036948181677998944331875870553890983232917687737240697061835063538110004079962062901494778858480160856467883369956867798986083716932871961411638806114587373749267016874980875074079389509645190370974231012763176530660660955787282337923171650419462531358129181592762988522018125160255621426723464816464192666592715123821394448079370983360448973854292017831353008050382248470658363432667021634705020688413944838058263176894629374025425422481540061851695134390984386032145746403598441000862094452409939405836960488195465044324787626042326534426741524764746356242993432906551553907765143434881287641389292862310902109523955105228902622925658670396331456935250496322890783631350413606423265547724389036117873898555819381226230153736241868328787763163675480245070887181409566106893499152067918018148437169179543542426587313781345487377981486304538446317414074369776109683290685896111562742672592002658731693023349533481436341450451689884774414950628408995622266883135166727404336059405850507287989300515258339788652436486080917665105759804090868825120690140556198436673085465993737842095645689487512979536800514650464268987548931385146651817804428316852706964207610201719616483269276079152623955582744026153758641089315709238571629754823475702356933732167430830481108401287873474860514396214546684700366644774471982107429095156906857830182101025714404280066818221357592979672203792475431447940054984604799197166521277302208603631836326952216460251350837408057036753768759996365816062682124480084778293030510992600967156382845382478538521479973425092839579918753160998216891882121937166681567038344693618608753851517325956737758495173982970448414923719597909132384463871734807991107565235076755307401957824151343117341919503183108854431512156378395352692591781685487258297737714230972615944757932705540519403628157287886782761747988457187750463752512963090947684901927931238312408586907585773050372348872426247158252419296518027612999198794788626451745863736744485447375724629353716494878170788484579905732616130285783214147486192025026120619005828793331597260891278108236180879069099862991067986804470806291313088437826223592856271911161738711615403159538278799749517643946789040045693660721235483120898298178454425354339490415895634215147978348478469447856965025155186157622065127622069829793628537569749932306868853616511657255852082502059945443273742792921959266954640551894163722545634332256736308156946824506893838826560170581032563495229445202100916456331602125018885606875354946216367176752348029655249000874256422955446319886151360320812428415547674415512409747229300805236413964825032851042923215466501080415591877506479864977224823115461819347650816655744718291978244371792740782382140919957043469917334433281527162722849379458811766391652722268777170126005910796635131023425742161256038175460445919775792405846390111321836093788138072827887404229385844365413629422895212049827211534293664413507536795493723387037601173604081086578760220773668515132638106205102104022281469967112540487516634687496465468134540713723618786398970483461175978995996090135804904043912255395084281587130465121201601630140061525591131049264985523799918506615744516769617556993559109487175993370048831429045911376400446954446674799548169839910781578046422157836145123059167241748780550922129652807994128669360752839510880805122093210266020378581327736378997756226072491400634863245459017996885798190723380536909361787350542480878827689796387150372965317411717230765730002522707517083153680102127300793308773282580672500438900840808040355259363607828373099290538453016601029146133996754704291025338385103777329557815281010532246581833548120653325395554762487697811739901245383889172152880091587205411810602943178818243035469851174380074034740085590118467401612948012877771989608950264273236556198528049527443496654717771777887686869998446949203319310324489161483397875385698152557481341732417513476312001650659546237308913411015602678799715119205403777282813004288162286312145318624408211983024452010333868735250414664662076937879120354267954277397264544859699962906346939323266505226877457440786759086865389055342337391991500767565085085232373629400188457006400379018861286804177042578750550895195988082348947975981031709077974759479862044355071841181219418041707844069420669370407391887234159426568162915567277173150596384007846779370571945149208540836024820842459152891985041556266488670829164449141485311482464234628661997101216999011822565729852100773646666458943271696454057458798290423578571146501013722264342981728272792594793441645953687535346077783854343190433174571771373255570341935486799113561425145201994736628471005829157124753636737123323758127274270944588748158646501030878412109485767144761546946319928216559977252710466883009362777970317130675807287009072568258701503405651902458855797039568749721601953849713545322897229279014068179491910913520147998246747769967361732455051301033801701855241286500101102592090862150006104839518253300979729042409866009467773130591746226212637254748751114306246551395522182520322949628964977564460815746799246208740715814059145557943393571908558460399121696441877291417757025578163477188262863226614079861187026156405936139366623932845905391076273970192639107341063183430536916816713317746573285848539746972184352379800914430222863256447200591246890377315269516944901373520560413417446250701984719756689729899056270000429704645557676090867741378351402481718687112394725687660695384919259940457862831486792401326072576385205327658851948429307985970896503853965768453535796975685506168715788337838518272033609649094373910138926792610309850482895974777155608153125085584582454408369236153012344036212225855761185927227669107678202889946950330142844720054881043478852015329293314314240254058002642630412291621574352070203766864198728983996632771759904338867701485643506470470142555337579218240697674009786620612756074157377248948099699982249213635614452897553229716940097588533502048408475718078413104420712149721356333243087901089208823480291115344955337935160108934071230902399294005109429710956896316401516853103350481685776304369648670277710320388726434750888985705520596063986009988927335151008296506344125819377247362733353140836021690137861477859198180540987348477197618353259708301720466828007600985955069982347251081026370754451907511620812872639315241427269372560755276542212799508948427853706326217769782895341336286750420986831313957059872657162696446767191735174947169788563412949403445434763690136025330442423319107016679096714195901145323762925190308201952378791564132702776083428031216403671475845219546458880088157534875452144495006509110124937031729404138818146976249673122871593818419525637708557469621395272310841786386905150442518560503336479530833382662971461815162998548834170381703611932956806935298678958736973392053702094438231757422379686300121894361852668391466993464483997809939785106998543742005241253950825152588794825521321093735219648301299833845402609255512747288208334638820485902506931465212464644672620938515855033295266655757798473085912143780953894581655036679401708832458952052043622612268395798319594107603561148472033340762074784988002807241890958438388509578159088080517636549159204865117993684680686366686565741530277463791601681829919607205281932020495882416694238587912275590762546055970508087075795503512910253418526007333260492547579754774501475961425161913638735176915968189317948601315925789437529359634039415709721176023526829004019919942071315865075922774330335177344022532820477628924333044365128227683553556048050745299475961890467024533061463787294322842751463953904477881915525658382524279988104581824377504723096629870870776820270524554544720865969481411804374530211856864475310020543590482047945312543414592280570019759367513380163596421995764167851498763213240982608895358665438035729008725959994315624715623536581389691853535632328886617781237072127788056251817534687498237024686776825382796149803563428509301189297458335492909960836004254230577221772485062529885833632128567706676486214161003547719346894608585301503406109550712194711034103484594339978090163069329317351994819390957137073331239502816262940877898917539594079343052429496453842002553491175561467241860024994069377393413542416598737201571624746066325798685688308195840527484491974566136754445671087521107598584043104600263406068791659145262161338852057927808983090199388699916962350081688209461132961564337397234532992755587512160436264616851146536936284833094561381652221010623935487674063754191240080042613264136512949832099397321955245129194177182842122738889752829768291834817048841585285868654670460452242677519537740899851798521381795671235309233829886051132334349657418338202351042935524890196278130613924431300893712210749020507896497231615309729153139380328817173560852884139252518723480049868463975256732673251729242454208704249415799778476384070829685515548267455879444495261937951758965251973455331943972031397948563002020687908653154699659327260187670468058018684265633275411236566342512832624276496798399150203331175740062717837148643247360586544610587605164894740884920831022210486173128330403495404357113644763329127364013840890718204572140976002769637204861657937120909674471473194511787177334481032433321554203935162936861620372693259908871302608699633476311158771205016214811859853990608083134037769235651710757357067126298916648705835168751592255594901588653586041731645223583322095576984844499807316239442260890231789429324161870135161246587337792835648365637977180724865270977044583782692640419408389733548891270060296727379141789014604848177660802812661863028792777072613152208099577028549300701939552260918117330289075836440848629647804749107127187652775866450804193628064009945465362330793050754625165488192442281291404554244717676209565749820935596758803348627240057090343336001544997343613755128355421152652258694109879568757529855583169014211243546078280566125698368594184143636107460957466238682015330809947411286793154422718010239334770708269743474480305726352541976034935516731382500347246607003362347657721159611781766198215145046547231038063373507063158508444462701286811992429012973987377633802718421806492052683174802867732044542074916560144794577592383828377905455994552828677470976389533903452352762043259590031301570947343199416012458910226016643618485298466463610217335331142244409206208413615558397771523547486807017538624727351554114100504471094711670394982983337453153796717257101031636903450450684903184840998158086615209903043706535215282471423060307469033024402464932863941658981662568418518353556827406268201475097695488633924010013887644454407171082821953150477157016559225842024704341200068045517653052653323780366723041424642040938538666867896534583481407068736386587153150733182399476770746798356733263880019701895618805966194294144942370002716717158780043120815084385192575629253541589848137429921151519265905426826093581707069647867032959647050919443202932658251536535400370045169239827654092722052536844035997069889651652885627492049117793126707459462543050044286384679056804635779746203344825326254978572602245920363839376797565999107453870160137320740010441307379403106518813909603535602893757764172627024573517068181467516382786806194680075621789775759167736659149494509478584508807776903908721267522962537857188474334061829087097482381448390574970481540814779928983206388553757478451026348667938850422389686728302601457288679517227989433452349569377095296209037570667804177876187266117683040591780125076443521804640254141237863221805788074292454551393487887355472045410387299191693157342224309246756992176956748230470837149547669245398852315301219604329472110467301818982436453135239148685233952098488305758836930726054774929193414903757156982905618644810633873156931586937122127678383576868020754509128075052214185857663390115557995874277905620602289770802090734636384195826055274124677205865531858426374988597526343968340592780025661497052334643227569984581898050230768731133600694467718451488968811575686093446779775063275501334800627238487413333075800989488406755129705540457673504661572662413917406461221033490442999111343443205292629382594057523770312032112091626358568186014441293933949520919398671249890005262467448743823446414405958102276965788066671009627427966399816680039779341852187990782635967738832413053494195549748154790410985184267240544996704865991588456032042611399007141635790558790834131171684936454397882247452238269094416596899003285875688080263085367531927481758165544784138749334377843039968167788281098991940394680396813097141758184277120242649008010862073321483808257561948517656584068585021667169220472232906326270661052052082615149617927139270590231764735054021450486348744146776954422849987736088493703490433239416962302496306742419502865672991090829064159114648196511239983251111430615895042622514937798824517158713443162267565494903895899723372617994104690699895461804244881192060269592471234040829120327480039149899952543506429552545566589693714395864697582750671246046810508644643777695476376586326534848846490970743976944839372341203345459347351688782544383128157572250054862878101061710056818812859388376862640195457759098327830655277794233132000628796967552589600937086026653244027776750760204246205653977978806837877674894267107798674246446045901612233010168745545381656556497801661911379676034815254958410846343470829416464820018739915294398350813391097610976861137900755791933168719783012394113970474971433285705828321359986821917524212162791639521718898965580449721486316115979963355161374923531663907726195349031691801897605010558316417597570345905208966979370450612889985639356791673790057054557161873590355212986615638837748847322223103265318224940456834939541588459124481020318622993000288051968348531540777001715312746027168253705713544798050640043221312849233474839725133014324825898573775580764704670448140578474336376212928096510725480930082072264358614204708708038904339238288036652205537040240124808746817717045556709518021442735778265091183497136458279692221537187662845154130176149553389156812025319410940383888068873771117333272984969278905649924374058280588457338868463266915960225642723076965688576061117873457797923871287142467102815510944130885828174434931115939288875270833408293171698026836396905529587117015081716240184905810272511871517468975434733867295993481069911847433993338053688055322665126203717747190138125280946920235832987954668240139151903733659847258114999614679107273195431190555679977917529707288350705348376086273020730250988058008797640664586346575581275783124592329556253259657609585135205101411641279012876562853765908271598086021566080501669389836061653064943358906601516224285887180813065324131123955026722120144723261523784538210174286025572364711875180557927240436045246260999371408929289396214746574010510091615312987002882546378116568025643429749435799339809373647495170360921534572787019865007983784267892575533997761286754370204614640509940294654485259604432883279477255144291222430785419849858509118566722760449888156044289305684003155942658797061089801229295759084977865557583310510479093584053448089558602885525602851940219091235618289090606862477788227485778135501752994356615765663436955691284732890984434023738952341563264960219005141285000474997488419400988926487788633282857126325053545428271677383298901383894412542079625792445213727431379825863206516149993992643107643028012700123272401044186988649998600975654231865354388302426719354208305733925910819579078671478801407850949467225976674530556829078632346599786237112920614903706992527687763177189941071854483375719918753287573380497807624054014306695608719694305612671578798034108309885066103655831370370074118868861518201737059863044352586042476730639342284066739064605890253205368076846497889929865345751355733818502897624174058909852018842244518185758643539335239689863911484003765793083612822869981627466372558381988034669235020605105345063795319572034555663817061643704973738224708383791651026428173066081326931091665691743231283236830129102492975282514631069058800841310855140116819741697873029296682150543933603574535956653525332377114065272029721900007108467540161060126225069561524798477273045939430421395421344033899251146144657786341074528802018210272463077514492636071156888743958269616915943618414063155449449652996438238893701631459294793109398028014989367756911957768411434702976385803994973007328795127881739487786906789833584200532192606072620863498695232711209839566067490055835515982804549604059308870836577557158250697085352011380533176974055228112748974617010815066751832999141545979120793373230499908710166879460008065314163641743750239367872734445736323745292636108475235996767718615789304470780690752833641758293177427657412840270373515237084417828325288668549364907443028193586312757832678437672512084170413941296232738110148894161810484918751214092560265928873921602587535492801331807183159450932910271554505649575556905083298478653844097436586514326846010750796667693460492542372782137092437288622546487735608793410122186957032032908692664965936595529231837659486522112114772340884683406623015217927115159272644743574015953844510044701908154503233833715494763628654789754909315715679306812372013182628088109979296035559534269270821526567553834210542589221349189227421081897608562328676017707668356264366526058340864541616440450282161620168783861851224072744291810430905206628936193021108616664761930141499920487417719478904467031271422717791620025939897510542516385399120372268778047788491458412132382999426711877206272679917944497037023362878369146408289032721181950779289482302993713921054987405792158850335020503386612126347822335318308307646774290611726143981287948214675073473441767601176363946013028961891668483260316774685366033336953769232493287374892559438590912367220972593519261172372495168455424419420043237617277020819918211007182940739774707593911058250023959576022713680018563809040094368093996408380038847776573160595076746002030884013536937651753521894813848665462262163870614727026472802471070975890679312795061362696976450829294116449611528752284288837292082202982129790368300711159189632719215836535823562920753710563128007050710233504882922144085417517948601651473769211761130826343510855155319273623600481216750858590411940269105129062154748754692606887286411673179359818113062772693621653036424527396152933488353136765468094558078745474395574139630813068422751082514822275646835410112798096093222220419905041740147711978285236697317137134174009434240653624956539916927263918373196314505399883645197015493323360124473399488367004539106798349702578288268431601164291796810114089430244908193953813620257838273692099057441495324540111446590428338472702527221032311222557799949594209180371704509156655588368434917825157824724077061743808202506994110030640521905605484643534822615214295680395529479393048731669868959913990966466490270353563836265972524814261812096364726129757700677630628589914171822586600032158539693787409720305210617934382954971119343170634019499715825712875006161396640045028147806248198192801999934172820034287262028488629036091509308480675501506718306548257915734963441229232173635049442261448992771929593535660974349507405666754199979919668198440595557303691176550004038975506821965750562582818886074495975499214557003395449372310315080888046238064133906377982380958815337394319900964619138109193169249881193155454533005051597773508605734230761158962875726104165078360734647246845361716792149879582036584449768670636612155872266192220180873685205014262197530204882701946566698357971732087011469625380086408656703303211744105833344806974907801545451182579162587999955620857547898799990068433851398244160634819602934981059855229009183854168305411129524198340970418002974525956677821475962312221511847620681599141046935322491811353191637505577978449581856601159813418278864455739954103768250202906009804477029275612485191341397720603518497146375865871663759107520666312398421577402925597595079081382835970951727234619976298306798858983716777489180956541803985622302571624748679672418726687461274076573217204895650744833309659380080637584295780186735001592033718219257733628474315929556214061751427052610778450150874611462878418746821029002059187794656292637394643671958919150611130593451414887785193562900599786893432279095727856621168466459807490131023472144008112853383481351159232140143462866869268243805077346732746042354385106186561433175100446338914547107942745592133757657917024590414014890935717410585032222059594151437951239234226250971471786307666247329790548706110939934918335867183467840741419036149344076350812626711084515063379166149166835614267829838531344350984483782243554197445411742737854589678318686911124318712861459368232055074248268072786418129213548857414684195560066085487349430269867867104721711676487725309910690810917795685914593201936111961242634486515598472935429018625673494691629414258114318497386578708096901352562472072110738703757096876313515900866731564873986697337102826925671573903387366538391594649948757754848726857253772327712414229319966319039463084709361458835471320919238572470477094259266757620969772202297357156467291604830043393768249567034507360962284951714942792987148292592629413304128912647499737083104699390260860395897538067203890086434359324971004671234588957411697627766377420529103370212764917337437074142102576871860008898905826963489883107867882450884233461928353006852150323720228355333093120377078301055055935189039614363792269881218999456317704099688824449660940498128815050613744046790274724026919574884543591701409809719926774128993887379738212066757404539815152711454653500078645237503786553310994613176203985304193239043639602126137925931316631948851909853532157676854741788981199658610280441346987532824427364523416633108721711064161494651040539216724538156468386936968313889704370998738553855235351814352014890588424041309253447003951708998901890988004221162637862615254355872381214284429204576290802440214781894427338297122801832168139470653153137164064408816899986224127583998212321477673992844236255554704260980967820290781652840795229398889959288995166618873180459063988927479186412485165889991278693475097879801787419856228279156721667065683651906412417278277639909217065199794697582179089069479390230513104025971739980933871990660046419843797219558958528078197304847248514649855808383613888977929131636764043866851779053804767243517205430585254636174538805592975949613211631218016637588919108099946369904339357418133427527041462429472946054286277141864567016266488233195360087406879105489554559985457767466033062496091252294322555789664051999164300662950753227042471042540183866404476843081478451641685205775299708911546465769282052329208505606938045547003185429434019436180283954414446999099098314426671049998913014537762932740802104215507593855136270593254439578889796036593389449651548176411318399944252333073594890796616644046189810155337350023480073080265303632388467301108529408422408134841482325766907583553934161994238940505473177935433514933928086905293462023481212561999971468904434089141170263973161854366126195638903776691741170761376134406723419370020325951790311153229833718941109769328452707363464264554930890893509005256543354925292880438200512614957051149216532866222872503968150070426912505532074140572423182682571401637658536165894880332332809238928219637745571993310308942688305981679035588675783509420312093044582528677502986274193918250792371764747233067833649757080890179157101404116908114662837112511515256630931502609284920419327695109650721110741167840616367186005844432185405280984284590064274803498608052006917764721635239605808306024893272801316336492724978228969110951329058081641847333264068343024362620526015294731462392085493370834698584305987350400546741909300844957051101756818642962424209326810286033588006454910287195986766689838884619056965249691252055502797612643336270468290358082773376499421364241528194052604910654993331531801807821134320595702442774597049028603372570388755752679109428641446729920272795872962545985530109815865916940012450789827333545173788621524214012094000961896903901000248163648331724514353145486837899213959148461693685425066630262248441147037756807259101341891941227001331393415401055192376816466395856990673836019918097131008839965361445967707779084488338761438033675841495450602326895399932084395057307674305598525169954258738985500229833402077143304599454149889494285624505593181678783321531015348570435142283181102105075713623524914169307789261272312907968020887567891671516201397452123985895260191506046115283277631212563924966799473271553548239989209014755951781521636773792961265377344312380029607714656526545785019895581075656026665336443985378353375057009303125010797196918351454234894913322286112015687633867169929015699328530188618166134862558060597936869715302149832150429867727780341846410389531140982473458258082880007225208100520505911235630884864688304718744766040356668736134049256868267278027606257363439786329692090370947198097008141428692326872580972962496437783761128349309451148818044762714583097029376538142846008203987381323552523871106450316704649159036937696651468132254634683068235852708893443308319347827651506330906869510355344832327069855611470138440920225394577246999002582908352168321632142907057903700728169314672949620795944626600786657079794472441430232673158090992361168963754044025034367497003437355545970752673084762365881009018443917028209434131977897540135584002196434688463812394398125172800743080146919655997416005116230182425198387698791356536497666728134421840111939297438057788979755133305070022588828446490994779427448545659882531845872516898471386754123249778281308922514515391547826353732078141556702202779405986944605674584354861461468588486241999132575383693953051138770734250989664797207847866255509298287705354299595446851773929209519471252129696866430161729154677569787594451965961438943510150773393614865138269127381541949937041644895987116102368202108842301253381078474527191243473516447178539099903638982621330876958372235093510131392685299141947633606301795446424807047396271676126588683249414628863723159264347101830702250985504003184178873298492825112843033555555823628231391373723278520156380352813324405624506217827656699272791916034711926954050212478698663629798455957619897842168133256746291841403863820403404530867724879186891691846849847341916017596366989690013019782838702886723606187472831093787211758668092305101083780995751860279290125043015008519229524739436730965095623241637068585332746052286050827510562099548095795319566360790667431414673592745025700887231657900250887426688040142938760817118085980038398529795400808937194491120862537465095306204372604265878004264587178186743622603490880544365892887123650913741911721765251766036023017097413988169493296180854457921615488710560091965716720330067846093410069796400381901130094795530849556436636153042807897951822861436585781603997721680008503920020605855237615876425587681115381147268421390820995473962969522226721290525058676961816523495803370489910298265104385897285032465905589880020087333153050444843123100115272568693971704100335612868414672977822107919621885440947850179477218230905532036403003346976373978053767668893215028887937948383081033734147879231859773951031906219398272495257548202940347071459361759338991750105645567698690480058666545066876134444758918069293336594045315929763432547664882718402552395046311812252912351038034571441824039231909416366017338685363385142931418821045602208641369221711558628050730796421641086903279300546743668536177505830228575786615971297651217797194476242423400693724020310382877716218289686065126623164062096189754826087147960846462424016196659524203550186484757838319246222943582358436564996602742411299954887116054453923720833127542702004321648783738589410151979225220419197836967866254982330704990702863855918463117636305505183053819159066074500233234216189868259378575279462467878144102249431776736753460937892255125345312143751148860566983432950441666805322563401192359780021802601271725365584482381550015008466973572231870680230098882177287070532050148895862461441491718629915498481895681882812105097624189423899675233614871533613156725795517756727321079414090378347098119892489128222388114782054738438205698541235728190552980796925283379260052914435300594413291730364469784742798129506390921368465162240371450896448909376158968388082953002001096748776061881746272353258333185824053169662958850086888955555640592372937637249580340161075170045953553550897108381167013868064154601093352409807977143798829923420251350932777949441685885869127706263608635988464209059222137052034662830955637186176326983409441077196875361204032165690516971711754247857214784438392669942249295346637037633130710655203312713974151016836600093229029372652951400848266994515148613472538724988567043533314275682735891980407266895839332654170251950371150883435457554653337625698609454647663274401781459690643835037171846955439603224206434804783363383967620130428016894347843099105598057442517435905522384406926980040323441288491707469682411504143667574832010951116502466985572200533405911274918798699285782226804455191746194626378972282316256301762448629170720261092540276585851527672471804552212609959011328563541189105708948802895440740113750438162888494409699420686620751052875986115613343424954089685182544251700758856322233297228366554508785043291731365680531849184555329178494762584321009647434862320328780276083277997704939368957307115202364894313990075888434479315536538913405380307772979309622918399250319207670870369048739444773008606156369260713493586268362623510632999693259247147857190029756651460085731371308694924280376892471356004511536294881652206069664476556966073207679990423238506493816907127803295976254410702619438987274128744705088859047423313394573723249149412866518050171724833510666874001899819779165501260423956115400210836914612848322355782633658819154925371958207991289375250037781724189209107298439387767832672511010125490553111716272755919497990906268607990556411496169853869407773953557308909447974702500016108857742212198842726262544084463643227366450765120306571482352379257432019676908910593907903434930162000008109809438774542543709000964444298541372583672629497374793680615520548883736307927732500359980215309432077951923864640824077420205796168512563476373570132010739792996722405318298505900698479521521031945716556135456572814564983107097485914888233754665561491996643061378420023255976329824871399007823346153172212519372060707264006942645962834872621359297960917873000989917466797662259509736267031946629209179582696283555820534800282267747472015186695075279513250551979808328177366448294081331740395249951350091940517860864369169841643782633343362175748946081494917049830079706041710872866080699005527997996319086391275530745214165997461746110709883156582335691023837402329688054571800134474603856327846092393910186838102640417264594749736008950196890278289139990229682742710390950831384363503548085329134582766579145692717764010877252320757714088772641868350641643355783858279705075203236835461286792268560246509054468309110359298499205708221632245238484851347652119757026686123419063330171952604322181432219082227694502093265169641544383403765226656034794087856023572605668445073789987923488940659028760404005769392683052823619934738082334188326743278290722582643251329419995340220754465122645087288226777587442783492356713344455457939370635718677297850343263376809416795543378184129300390505881810007230257909345586372575543209570673359216515872855848263231441860701941802967087275161113734249611274018841744708394772093594821073933547753621410888635554621976628832845629876911582422431965375621545974875666415526780857172803356815499790729737199961580466709564369715497315981357827677542324859070054262214673097619143195132231263506780630245175818672052382739282706125330797296413745803264425207614755910282163387526035427314387578006994553067804639346255829149599853203792133491822808004972721906671741053423367711354144343179837656400165793343823530954506643043083855708402522608720437467775785551754926877276977074790140753293462062581939886129932518865508940585303825149260673627730421237268605712620617447119599571971980180664152486376610089159934207608735172535798102882589371013787087378085035985093037169872302726275509234587857172617382499996346134539633308315450725076462022047290274827734740449233281945748549217276226628233075463976932819934224790365227011729286284018336772861020343440748015202921829953785634094845647355225161698926270779234708968095029920303436375101172265003956703820155499995641642430880051547119975356664484080619365558587819147212857316525557083559640820518607306304681215999065812990689850886236942087673404839842451903741549915440669305875214284201694917566402881447736799322026241624627048897465489464864561725070025751718324845324610200988648014018809463171893894663739384390094183429148062537443826665971175927535591289347836581851336405074394230275081441032464010722748270054140023611677229960649321225841567659212581704993881988399452749531048159938810388615016926547055420938935957075433995573834952413837524932097497817432230607710948852843803802788381921678046492308138496229014372650341382175846497225261861244302851807602418508400275583044741126030454820312835834145501872068467872900853665330035912431801454629402912163421843614872259363791887347406660676668541693084406376338845030469512567021014356463976816966503972963864412897832152052420954348012891487479063352146884181438171421439162951936228489544069649261140327359024546881920984615537874583967912486633918265455803470913102484194320161689210990194949682047025855144216871533856232668775268537010662967913218965056390609467381092138090663928873316862676783157499244165078564877497610084872809860854749256678884051030518873486147946646535616646929926479175295636762325535166759867751217135956771330737310305283047281975764563820980346704608636713989963382502277271704391543950209578446958216648185089751736015272014143816641424235238326535218938332929634350704678589119008418235632588810363661243017184926487930334921526982593376017720454918790300406465920283035488789249862544052530355111362908754993352416350469110388559864251867272960076998051416570562056377774524612271938583171802894265488835031848468258566704285270959326715377475828509932881768202879424955876422393021818157982816917000247587943621907646465941036600391371822927675895500716345395003730149544558487973317688786021225400501461181164922855644152313654745128542560016142511502928195192097291666127009777405874333501127395370354576234447971533932509210802974879784889039617671106942721511681731422147553032827457757163534742260560326388493255739292447402821914173873245659970609640352376569574337901411792590696947849848932184092510384621656417022949014926355736651677851655148272620264354790088822062103503730966845123422972642667222414990224987201123011918267946523505543819627175455511829644015881171236663304592455568902720607547825916526796577049547920223096705288452868293031558697041347587950556701335134502484995249337501570247514983385678352776994442444225578169773224175487106859710624893142782674342163168518001829692249007686276080926284520291895910231547705076099958012446437891048812388315890855719456580737155619731046061520060481123871592715540716611398630169090665944247481694965018685806519225515111383226719583806827463517139660272516910298908526008207873419451162274400692970670401170802343307654708931035592632370100948354683193550676006591581231713832284586254923417505075517417501532434748543266455104655250684257047347948104746570793715370214011454897985862742433338879735494387172355633632464055819273601586799769584398308232904202197166753314893592942587927056328872865841846052006322300780947218307996306414773807599451360611807097977590439884324504587601872068622399345654149868266421240516817688975256844301478678820915248773631990035924303726977612509298581477441170501386566137426027552798042715676489572036323099494069826570570398219038076417947670479435218773201345703661865079699533989641206941832626592518635825971234520697307559388585797521509819500015711243372561755445393129745947122531936116354852613548187674243442742419498296490838889960919050510180389805520847376393762324523949001430698999833560842462847485493161562647309255169514658028607292505596200289157182191529708795006308643726449402811490578642133889279279336971533573754610267304826516499603879617816384464652565399629911960034357095561370207256428098585149904068817325311198138430201747108919469658818575460880053097786211295649319999994288418040323997250907519742892944526005972669841697590743555101797154275003935345332047685624586051487177407963018262437904912600197034964073956107686595059757264523821310094711068187297501632368279315351884657011806544464954056644674883444727407056562288361120936841366375732815794690646092152018137566974842071208773346206653260285786973540656665808145899489862479953854724353900964623781934344686795334845384373752206292695223115429384260936675789387956569411134755934592285810226575678993979358726963088027240147568870089093067575307788459575493720914416983392383887802450269033173230152061427634747862042309265384497743396638203268181917471141759169527984921443657497237728864408420864120048463228953516000340193352158343507188626471099322090702088252599441470066433160127744704842484376003058938495713949334595283258754893705675629019323322094850703544566444859692433882902329182918624245591246995817407088473445938102798557002336265536129974337338508452029124244798294740725274867620913755047408919036739021033943722285679429207504034365216289252210893198547625703662039995570170765233687498162868537905155822038359943940806214443621993723071897184197264974480620560807573300849235781580998461573595435337741156063943742970413660356459097193323733693871218559060936088781876815570913137960611095324000305552010956565634214796937751714895321047257131456852555102192067655489396105739374840854154384213433043267225760118090236969016197461669972151101414139110408040953417288040132592598979269632241691820722233747890638161337334792695032438300909307904702602703123065896942723709028677944249960702590629034876971845059075645897097091685177147503032538377917576584639987201667080538284138210533416219896300517286500959009194365276075940898184138222047620031347129432620619783024138118589203889164638907197481405651099301247842446773840907833719298656721523278889198192501077109995988346844781892693975394855497399255478851615272424159106347437020792771458828002335561559197695717843690647534543066480570841665180846340198543854307094223928342289838469167050910814817567185367643217553902589471380566626243639861509537491794109794551656569684478607980250322695456217368825652494657439520352707720385870049561880373037732056100208723672895749759686138966405224486170953305125755758626669738612779909713380632589875365610663986100546504330216960341953694869109861707967028512126393008082197784469623749073335852183133125280835081558559747479859217649963003139718881619422734456322270841475703721836222222510179302780753965575855570024393451898030596046858370472893726081036421889364654094248377912383194088852817721669894625166029065617102777300618654780726750475056635679732860886977061631936803850968663204605135098829711748233242771474376616093220071084401188408915510834986443790001584287078507924075247615038576759522895457815736660365102398282694677261879702745663730286887558526445892533356170299461018880981518570369721513175623851674215600669663190316365923287983145785125179589028980972662145569545003157607981529807296138016158366488555159064227187777600136103671842763140181525479169739784081405202753096788269766269613164764549864773808787495305505232343319769171306988724095518553146932667227615429653146051673389932564197521959985870815938952421895107676049614820813425145969287134956345882836206975635842167263131465251548056249893649354678551823017077637647421065780733896866595902964399165298441865599763727236917295773038172157239804541687484974845591683553306217397305196199968354133430172527707325165147580398662031880429447215878218489528349632897232347887399175944392839863277831916937200188571818204269163218984970101812294844481560578709993977035576304747387061238156019149011732471493148049562538182169162278662963694331637813226479767743603139712457404328099783739506592761701520762724438126089284810120817157109147192706099832098384669358590306348962633519486440688815755151204519509413201002419214857398532716407804306953426154194824302210609516340554630383096257011207857259078140755796484311937299350379790084695924625057291140351592616661803414972742324878476052852086952081930104366952812088992170297557263246839676712200908428422302380696350333172074557025898329303107684135850086649117034473695694127480538090886208211518467316097095267942822104562189379215934271882441712641395155397878668256904367454209278314712134926957690534129610089623756587723374782273804968788602043763289160375368988163812119612909912391845940930212396624294905882255283355747351574578121431936545045828173936540058569150601915842754382746223544004856891367398788659283877571669079066422848298454438834069350053420522814214773889304799604061643203322726521101562325758300045277180651965838053856604208500897699329338173713709025863555181210394554105758024747543628566802308342501223113585208565957793053667841740133134470645530331104967086368047491179504092030348995506225246942871222165291087743750233422978575900863690920561820626388301467452662873431455508553760209577740863431986044048232266551216489305772424290334935095839576302865616825585627331915114866080374154600510177028243334788952532698648161831546184505109032284924593367076033734207578885882835694487662025534138661361659860549912784261895698446258992187643174069464227152016010719284143328893066126086733643145009380260532666376421177119574764664952170687461350991838323632591571390369361173489240625934870450803706584643976174376419010097201551105543048449024197186936997339165485983708570574167467466407570132605188131039482247194114349228524544441736658913246956668560010127349319597948033316924358250447883670771125944078503221815781895160814810450770817662979333902504784921783625476969838125774690724405607003267497115818402040003226102738821338686942669547677583186795873632161930588501676328868138022550551081941393160506020475165262746541770800983566516543674847589253604752609021790767055624892211497363198228030833138646654099482211990795771520279141016464363104619253929217215332857879977690406715203868094511047802640986653714915917513422192079250760710385875667301887053039976542427158381915630260579923619941942907891847851422794188535173816794322531278185639450164326336447223011847345825039985555102878489308267365233666192305000316374241398864998253959344075102074877776351914307290354560674471621062090950471851248570668123095002271358038942469467182533237037492544968833620153057584070701361695283470492276582430595991165808923825764469384997112404113389933168165658026431635519806704531340614611708214813758559563159381238449128259044479899740538685412299298032792716443049810997454328005288554060268729277077821641783143334536960158000339636887123628983106834628753123946933510294006826607885533774659871620052874795003556539175947401643823774512014132180097806334167112166463483042525081299565947813683608022501662715792208122265505763610224893664780723123884905747876425998630990268902166979125142896690636177249730164927281039987729111912753029445374387839337774685325354944448225477684038764523226007313729264683822911843094408939979503077905084978310485093643173541575748965401570382459144410742181171284168925239476609871042939176038907056303843754535154037364311351536286879550900696470608918125270488172268581177848979368506844204745340116620281778433412452348488640992048611451589281220968026774849033816493302637510678707511423064235506940381022722855881127186995524297263330093614272429970531982346058260585653891286595382166269093284582892698151755104458044988461292032973715077283071644998626968023194962033641286350436321225407073880116494110100764480986766063792779497483842019712911317670717961986663302097017522279802545260038891953819186903926366954181648434721497479070408961432042551836216831726831584882395351330932530343874095961076300830484813248562207791262078300719560939030885333493146078426028008002789949091440075341840527213916492780898464776311768520255681572544472882258312432569112390477323389048445245143541358030312264027252904796215109408416513089648534313900081576246252380719488817351291316008671583729450822062122031845971401695500110245880294318693282024016156876308508594387504517862355400881786097853919591122139585597124527940556959860892236867371693209625438191744743421474037558005563963082381380452363992853317464707243089423527440073597509799919536232136967027945465780181328384284511545435408369826929001898149055283852089609057516918122007839321129321162892547437633806333981106551060168559264212596903546660186572569383798687343974406286476675575155528929149284006329156014993097606871097020435472964065666944710039338275686010394871931259247465580398273574120101886610091803005281766727427822167407943810703391684106653808674148905335299391581003077510773360109335938818901528950727576652016764300029447384921285719918185035848759429973631913005091502741382631814218064531690376620077516839445851445096237802952435607419549113203274683625283493404623917091281104256167592326792980750254605525665530365151115119770208086466134743051354916645855865951044661472426888845664839686623093491129275833674442651990586132867442138593501135113702980899549819327490069841077108962470770981961399528720601382145208874755332191520768729728247470052255646809564703263006605284026951096372658638504894882221957821304191023977964150869188094637939678003706680234835584228887208448601603479346502027002660493541509443854274157971292895060262354961493558891545958098223172698274500389595238171967493417402091683683861070183767890624042792338743150688621957948224785878711789379412713361498708464386321014273346533887598457919199307236318858335768252529371809059083166451370111808514647078405409997190308485050753592400060905011538885794727616774202721695569080098077750145466805910591165655214397497887436944850899822733466518916032557591912253034622736059334085068195362465012380825620243614020443369428966323001503068154178093882939414998532546457592035131635203055834273815165930739968718981408277355093802851662819403049711819370622368483230488159354123639185316839297906591010301128300795829297027541820378228030195348918096745892243268412673113695908814948822592997624039298472563346780932941074925418087347546419699170854596920684353165607914590054206176537655770323643466742204543962757525599624382738656670504152975235499118692262540853818938195271656371589633731500523259397222971135436427382835202803667004085977343284066664445203436216205542346868688011658963987271183800343793621971794955679250953694004626202993483258138911752196286147575868159036427622224735087319393383236104249840447478006995550948612644564596154285981517135232857566923214933260947766851532510444185970806435649277693984464477638026262462574590006430278660184261167797314033748137743271775731740818227361082863655947281917138966581766524124805734797521208830415255315119714949615537594440175573216047189902933142597469749534849326557689724500340538558405687385888980969958462817968228797978011812479252898518962895598596049494297121159032613547496285292590467069564489205032182685221258254460615772909254821088190983926492381844186302408008884899214009413448740248987443967466938335534063794431615252050721344824152965884070578179063115026664689416067153506975366753315109585434685318105569880265902603958434925669723386888560136786618246777713403308009395496941865867182306658935671196724516264898008463002908351382249198619236859899291843872642832967446468445488490175506608464112672074684546713013077140387349758595797117331531366774845070380302382610081178146899027250130008320968790317594404196584839693786980996918214154052267590157534231153424257765210156336646192347529220857243587209059971848158890873027695003144043392217206291197609443391811824062226179458590787167173557368376664760856682375561685138409221836213434003111554739118274495481328429216492882732124308809552190541092248437410780603954696748120732843621992017189433717884950813575477094594783854598463018816496667498531703343642680006629205286702695688207087767001166017337532905195597469122908478077890428000990650085961987211881921231733009454934468286974136206167288463405339055823611770280983120473824885098070715055479764648395009355937587923824009988129802612302418517812856574663104761856131866442355061863653774792430506986447482599062928096706815868800048195847242278035777268836272184173391542493016576126058638174830738095879253824069986335230320677861833429209274095935362237599610298457835001158104591387902074015731425645202998505320422494100071803256658536204556682120226381723438791690030493999551045728465324237398539460792188663566981390126769727840157259213274925411686382843411715482578829630427309079796188237333908174446892121817324104243512874739162968282932228516994107259787553068291532990069472853902684078264541303403956854576578531056799531841975438279736478508527574924179862681487841535950110058015876785679226853050672882095533867007800844126300658824823252860105139067457598027075533584304467355867826791612628897133461963356717225093177826591965701971732341554811458816131743787791497965554612404553877837413298887301996037735629723827348422290201839181537820767167930731110965935297423063790020034309591495669862114239011793644326098911542226724641461691874704660973586086811003551595862758465358820998028276448593843653723866141306704712083153463789436480832019910838619994794044545268830123551136027204033412809579223283542632818092049515423095164260472632230590869083937878061232868960569638749159003403222788236982801463678270545220298814089508766314322134677224205871755530046313808812783436574871894386790714535559343549645143183795824544839965777611061188598992678883338366644002869444714121209768539613339956441983741882769898825919289882372927918965540024185696906696327819667185924516114197658359961569032182638814762727425825189723428265794461577773840174057124562707382929242573535561010758702626731066091286057121542812793266523645329796800919974281693690493937270159382954178925281405455816622755014952599426880876444231651916924171665331717823711755321617773100780997967657243767621397362701614204306080741602930715248666226412623414792724034881368824542044913308921359089885762298622049571827995285917317505450556447928645710491611802948272089484665167112768244207496795304386517203085848126941421532989121990527597033226766923359637524524626323659227682959958890545489107780350721373045925270005871255858931065722481309838790899511422125844956155745068617492729749840460003191707628315958657173789945917914858269794688966088713894228664275004643582268292061568644275692154535035817019358466656455588508984029713314437653647559283006925117870127876080009339004983727638702888593317808064043790208062571227615359821239761983374550818793679923421318154984957622919660810660140377516418175607841383206992515066507646739195040264177387564373312848351722729863401614937789784425032639928312156036252415300351147036223178591146731188485944528023965197559450191202038686413313072763983042729767196914737116410737721460444301076390144390612369771238504370498320851412286645323786190568717134159719179879468898320534671957001080503784714978051942197530309720167149183968944422587358103113376807370906616200573309741433114415832012933494509209979753136566118472477862604005889471312815226719140375085144063391823603965130127297026478751697543844336781055859738575527056159850578606716150282801724020816693081902371232871027156328910773025846647693102677393118078165952070301430978572039191627023973273666212855358770604805744025835994900780932450211007535736148892955200054645795770331579588566650285780275689467762094195213711032112485266290519214109802436613089563229530740145018177475664951744455801273219640652260324520954090050075893850685521196531980779844522569834986661632603205212016443820527680364819764372221638571622877628906888086160995758757059567446008985718940155329592523859517040731445996595455246823991651004676803955158586306762004019049815650251373071678105920543138405308408440755917187475299249957250796728813387890320344406914936152128383870431278364084435262360529674614566453109464418879583749599425483031116983931320030697749491604392422184739861044954196151884962600527351277635973044690379138535796570439931877724566597898874874145149896113952601492466864402185125984792340114365506038092470939693270908720060581321243386802494941263287773180786957251724102324885819311320667184098202080488854878785562398570392675079211080409062975291671618519825392272244016857918855596944465154391370211830223083251745829866987570736518685505856011747626446394278486541975261202721806212453435035706668862483757176702725032455868234925441311621788550673708147073277905570442471674870112360784606344328824353959786381495475715074037069362413893631441096031655143959092416208221209187299045588890137372036719384193742333430530230506894095734393548863897016950053956813263132798296693308021120593054423008168029297028016999446682762902880377525248535444535931621420775111135231162922331417910475518224152859938798354260017899329607296536262322938784996867772970206378813104727598605561585592463272998843795898922630661235260810733709300917671712982983472600841910342834233072419423678795284590205909513748068399434028710687271394456247828025646029896596044573298118058439979541854268316801508777708731588829612720720478874977077353419610276570197085373823160889306688326318974169716841270773690723237509585259080760083800829980632938536550507365809202554294544112359412545418915572750990130652034829910758889081537177939233192357712593163843162539732528250948656851794723515237444243079353938757127517368517245795828133912813286456655264995995741286504137853551423403693683516939734822619130302707248761536639099706594328909768616463410236710561627984057271615767277518985885123956912970749753937069682964729006227498636356446785408463643437468100675396771369238249566403783027991666402105865512959120901532736421508020625429955521312657961384239184348764549190513551750004448060073029094705393608536923374534089126409493453401118961308071922549306940301660123849844483801003254519795873832874269867328657408723829112147271131138913357924273048389657387219535191093880993977656758597302213851530513184139551029562610559127085714298744626772101132194859308676868454361795565568371310957366122787194185223331925226474155544238759900059770965385707901501930785731103001828904622963671152825857248813668446304091986029391372787820285779952524778789931294847437464951408650810089562628187657502907446927421022453460297787126375593092510553917692588658545466134688277110100215079635780424535903744964722257813045138908050832800670788210476063659732100017521310979849727400483101091749410069829216888766998051171772712227431805049097477659941637152786922372038847947216143638537962397486177347361346410661322364354147132040704030282386909369026181878674173808289059036898917760789548681551980398185920654599627578493422846478071240547554206637970789840797872720869639827810019515435037543997042944084340941431251840506395087821300346291402248761759561998706506862784960131704579949517042307170556491787555165154885633146631673610088884338365775587624504870252749182588607428915658791793714727453714704803264037849911412624237996309273381964799352880320759668023500806478783393670427493410589868558210529363589246143075749714993744117750346398122618698242938857733178106617457255597687244452257035171276326557897630751204110420144134589534283285703106513655150727110296465379980698920909361615829556157369003421113497923270457325083976817048207043944003260603616478744557041615397768359721480146914016426014375151234603663520577068362937377873160464834634274446691020140495358191521639178790281640110400424387992388927154097660576422211140496571648370246491103123464239167361596745095291682977527199320291052670751777146220808896078801643137869734597079025458920988333870393092344571606781475889355463559206797391090509749440605660898030166054621348498087093749096121688327549230320120624636214103103024245973026438623975316932026987822084840112317364126564433060187420428621791704614954915536122758111319526001384263797390965383745869843527727989360822625579055281848606108819577623992126249365111888015122799718770875201905516483380100967760254601307908343107441226818131856187619229491402222122820244971048179475590129575809550586824909725433876108569654620425113609610394786649470799356030308666151238327006835757441888605815803681133913697961931495403753356787926186034643716624061341809164612639165497446542453509590060723829704894695608279772321522392643552609148584349555245966950990908784509370266211199600526325589500149685782702129540117890329094602615520122841145798065008526635041867133638542676071889098665695558252200234168525990371864445892961734558190302907273254947598558779460762927192306560353446369033316885881586250224376685142466886923333338877274261542927084398288377242211075645638585213010993462769706972333713269404588714921590222308653951216190840231834192177236743245481980813923847176826075775559715952532079750309124617413896468562625364346163004823220732849982221881597079031382389548125513419320042955959257950804406643085269348524733130432288048138482697186060283006798684964623021127250153968849336357945004470711565700136333701688697249159036805015925901697442370790933945966870990466473524737811513021395505634001067233323665695680198252448301265865000912961764722136536608419680079957563014862098276186364570091211005973701390467900041463462689573168106166370158273510982454315225899163486319133717283274522497055557073946353115609975508567817654003287443909754778049588503356655714377095692633846687534990143416474438000913565041763013472219940876670523368793404527917187599761348487950483819702453702283399309053941015437329449137409546247611565958842629603078741015814060410980545254963573800810856075514069090338430790445256972334611100284275703316133588823571204827358620590260454119948130759298838610246579638321809682751728151878921652104019868371900773487868553492021225560900870847571490256822878848625778794569164236358485084691731077557495585152542188543789910302287026377047777366529839014131975235317100803223863800418446354633100592017180069087702573323265743623109291556258666573436217421423165595825476720245878910313736736566433734836435067721461500187854152600819616211615453230716714168695985117815842068693377247794777809677434771976387312198701239274200907210595472704359611112388159306949021407348688074210010655473709494128180916332510784227043534195110862801891515246732088296950985638340075648378299020261618156521376123606086386698137741976175096436827536858470905147221096988239954904084407657890051442699513351364900766384651199779007646041347576685619350767899230887454428373178964512563860270204769906855470538665157923845243268921269748020885724320960784560989452608907470278648658166200407425269600127611572987901785675605892822028908321139582356491234506305756663650493848349150590588781977309123062797512030408112348155082184452983263097497931338415462172272618802691650040711340146771289653516133124714642646067684906692629888745804703106826777535475242355757396578332846896322342595474310064066196170090077039487281955638161962132133860476032841287048608320221217131225683143766226695419582557102719481119559319400073809129014605341995474260529662200138797145717183655635675361295809380253226688357432793147584379915739889514932090958411969257622116043444828317215555038963120108205539037072521660377355554054151408804033646321132605134100524154805366520289601618039545709229425808712196397455487598096527398777941829060340822683799832410583617935588439297406683893073275574530875044919427659239081133045890969553317832574043113745878124037638960638061059392561470043436116950767967727517455967977988888217809529715663723895713551058603018447096672375444364312899905464420780192896749015272703147290909860002925400514706345415995071122096173380366661461688834051803285296892614566038136306116543668550298073832449874297387818310752104155362410236426998005102773392990423228577856662021213253041579562428471632891368630017261456436189358097341852741973748862304230938512828078407106107453577873421487166168108380959359118624005641699457806414810203207878523939322415790893080255531233046104813843336886248768158850800455896950742556581512584716429205102787963735125777459280843256040401930463484378089142704300457777595334442358257250266211949510728412479203893934378325298264845782270547043371522859373408162907836759142775535766432649492027587991474497003349740500335039421721666592399037428814053029790021243554196794101556814820068359621055413637580554555499383598782388657920761952339526313195833641176753316767346081812470247474089533959013470094835211114610621301307470723153512887746958736530350886118280481451169385215042029156416801948318959578216835030061071148003302053335467328998136889828735863010046701441389428667098006198629657454400396535693891057849991769715699845468046205187568663195456794622990725248486531022368824989322342826983137541470271054863788658386645834473178838286082200581041101785453470346140983767244767382452673257792743754765489678809827543795008207448223794764522446464476603737435486865100682232033869452847019416155473744716757820180456277494516242644676513303471682675940910135157909835408681391055307334631934906887666560915942726736783668010845946161060045431361115597545993877648207505460422258435806988771976532641559919895931959118826979269899549946298976823507492800907011403776883898433693945245748264817188601847992323381037227059634741497043369115234660791684290549964348718456142300233140789761784765639620168168391381607066853572779489477088297650226460400105044574444590793110389522544245452597794315728539780848738581561914050068285787783506964384928942020661820822046072786096500477660203775053181783163877306130063235936074092507130934074106649580291777906474082153730255048914376126259025716497174519416626560846608606601076424559661227713019615463600896720002339212249285803274242786784359974036683587279386221123327786345877075206992217342195095998855483791790826145258748466050834467475435750796795609087437522082330476532860558752073285943849185512361580005596445252785873566671287252189514565915141877916520778330734567937595950697751275098150241827359519410460782487820049981856278561392469785238631102510774239992459090291558621816391308999074601125607588771969321845594743720372437747908545561627960821538560855512093155922149558950110031473929578631266169731789490551380979320560273764467848593453383986926570069055206379707362451568609312103274493438456636410963950536981350871932495672799341273939948308721189553987527967123253925106714012171125146112006571774832938978662670354031956817484305600786199226545710835304975934823873393206731948206198183146029020942728249041652761535576094200706098386784398510448881237132098851392261077341030269373540051510271533065217636587436517751325537888349701155695238718152715757949637129224750901760142723536971257169762053378242899081256543010877026644311582600336051507645567470458820844751951759471341488202669686493937312388656076308873476094049810984839547310852839152229716940678625345397056439121719683176428874546185104503746502788157296520054900500638622363508595118543237431249960385874527639000936455995706482723565653160777992603494518535192485463458158010244632544560953538036734616633450465727931703131617701842144487001687198842497451232869588047078465725589691765851451840793104629661884111544803195713325191059815985125946253863952562042587253789694821451666802834868955471176273827525515077205642958530533100943163214616526562692323300234593792109776407431852062021138143930304773520219787717146270514681030195642230534478404730277924615145326203066484738007428171563268428995646611605412705773937708008219544423907437029815859023292969273821168442004362762695638283998848460846376964043346735742670425409717689923182740584055469582953562455524294337900023606079965603562342637970591935506035037525061476653446980187250139310332838302483569268415805141629033454639140780832536527125262177403310441527836000364524304437784770083607590928798996399326466111800396392128117888691696103825821427222846674919312775087213663933578150077088333433295213311002310581845482921309074123313439374916729364851048313017558740994886474098193081897659086946987915428901014480912457619784801723109246690353193415207525380705283400106664496468037119307553796261127160991106105744477247332176924177657986658852441625844845264034003395581883192196095029826719346433070769902651810922237588925793328652803308765203752150283973707838868902908243975184757546478552848828105626294919259394223029020425233985724282768171201112994375597890090394325693170468339681594863055807780150820967836503496561724513605149511020729389023690820916415356661180397121438925194791592950049514400269006349351259522205178148671817829989008437826326229764799859297807788747187978907284836382629514591662619114724098027145843625960776016148491593501701859666094922765836685155557005793984185084347720064386694084265845410651709481284353312001683831697655545296007057490685805974305798098574985639697733843276485979686875595555925048566192676221764170389379881853762704326895788343342216666903856428981576227104741695194992846440505569360558509669496606581107288601739557235681779927390529495810189243061970618996801266845692046290695019325642913531671469913812465392879529350971251635202601839647447204644899794027868841364140475776305657273033022679968283641090121584218268210568212380671288933640456848680213431724912143432974841003489682376203424076408491857751737783353082032686101030186853839833877497825575203395340129638142169013602577499573489302446819424679007643419153328613109336666490996678772289145374239937564813937564622198206204628045595983975359596909789447138177675390459884082154047054322313536551904280969416639742817124248459086111702711052898227354161914131271214261242852887585011106053076426681021822974265683964617175627669128069338633449129777025115525963487299576695315116483567054874524001427842411335329056449186788455093222738895860448838398243163202017673911791975187828321246173912084219620397400011807438773066105991939405786067449719700712549275597391363058585825479454854559859813714703668692317491836461551392584357067168264520341702886701902171153485474035195578795286174524629958219293101920406047257289517613141384848682433980712457941429726173607759790025666080289022782199337320953990668248976788397066828952475845197690604241129004645979812550890517857045652956036197701775691052622491395390348779755515183924338753832758235543769019821104387425124565499316957320724684401012136328036539187199994128676643553460972434344045681671312280208012925690889139993412983344596520490595678763669676307562653776877213088451108066280348386325757091523502236399174067863572521021061683816694907094073459473663531304707661633445648719286566650129538793945221909420197651976682597010031595913661177462957103369877018437243738642215920465603585626805978036556209107709870610796888800213128271423636554853444923566116561932193376862415078267604295281623747861018553980437688561164723888664973982951050496148429387616378447674841580120406338667358516987978195625472374267211039545925386277799087624592954752855958466918549834498199729461717585088244314025960765863470703908222323554679106397688336500091884765882532969329638653314153121648239968584534365230936435625322150930845848870890464587060697876786621608503432921907846915333054150170321321622747053041425322703098487262838084516835625557875782263321632642177712551215167256088161453933477143456217435824066960995685486804437618406199964694205493160337682234199330828358674731613105367442246913899072589661274969302390518070229560195696404572494657404321551903262924826685985254452449882368234958864565115708830633611186823434388656625192640239241596640533152151203117354866261191057768042900489942031014406423668762317178808061725242206722155686750015481868234813067317663753280659752450900809624846294576642114763683190894330094063660778164344938869601447030060683273460912092035860212366826726824223192872103042850025631141848893955908547738605553695912330487838211073577077137436051845829828861987485040872663691174519530217627236134824867082298700310611677947550053411115846121720244838001311530268327520327821565202646801724348928855892645846539656491920247291485350410313484839878433730188946827297520996977446031321522305745525017965654387639201175305600358548074972365727854764798414771246666043435580215791048063349691015618814111602307556782611859608845917788433918953208291577956441236191401310111239956309323466864001790890678844969036933334488869803699554355554109725031326130120613928356291260202590428016044332725739422470908775005447064147287015592699593642875646158620577659218115045544442881977501410958283046365758124488703394140010242853202482083528359722751462806860350596578679415839647760195339313516322912831090926501658757719441122022172226393808403568350358389070640555460881024312064107115139322980521583255360103959184034739193553349454301060449294729880593035875482596582364488661627036352355647201167462420341799158338318577552503834728920965687861004461467155566503821233181117367713553208643409195283016864480120919146384442593079368383596434531130211249493112862890409880561212669443160010755870624347402023730817240594820195387392500609471398101977260232037480793701797942281166459031450971855565188909217038884337325606729910369152445881202125867412901384881424495863217999778059354675192785799771196224892926019098334169166832391968112014587484593890125940522541767677236546675524049806954496853782510784660314621288422785679365096130897648159924765075480528484487049873570106278119809490364462317478253303626991086040275643245473919435702804653737302858672916988565255336791369565915319911119373743631215167653564231838557110780567760531057869024183093484544144810154596779429713107478345556678263289794001814337490805664975641257933904453157490070283220883212861560590526645924961040255478010668208766350629542355882081980609543514618707920855684464802375198176888432006213661308350601838639737859599849317145248399371572147989511789861935933548542728370690206266443700256648813694253711919489128087909475860724564318327590004986580216546822265820832364480401474143366702272595956184391790943041760324059003034001428240135118703431515177442000077316654590998746656968864223490574983729226665150866792837231843811700783741097507969393959516977862112696075770224861239317922921908165360573023322024115659396108131874705774618369508371771862266137329627600694269499258976672989799321468829784890534482632190786286584759472613317793769016964484995406437287980670656188404209978169839670032427685126885574260567665069028552652154692518271294987497174345552078125514134855450933413990518863990000879156391679377514634935876848114445511380726566570696602667980774563441905480732589709724847988877710378032925956455981973353925624451761125337345409122907169248175862112085177070289878795290023238019314146586994177538639664330764303883960965492961931867115350062459471508086102115809917160839534955925388312094248789081492392583734727314025741836050960927988209793476358334268342207014244371140236572608858193534343125625674170096176402881627833106572199812918228013315499029753162469104772524883048617751469664823134881253166712570123305696620039626049119374905981917745513842185043501553497058170200031265561819797013953198070302649969289175963492031089119718251633108674661703304195241948810671574121327676197461081410492584398780765522075491466837639449746409618806598567070959961088413847445481741467678232562034870792859332865795814892597240165988899437180835779772149703488040308983702953113724002965528948318257296309550828123376722486160423956458930601063658244198923545176869583930417550363547719266973589951512429448851806725878772038899240760819486702799876248291378872513247404612163286826476204167437327401029327797809371939589141715744357685349809586614233775207654959309132237686613340207238494755394417288986008001089752342578607492895312325784930637782307103108683932811624604649176118702151009976413321262819788444263689283041766518929557954864459322139007487099552195794262423838656323237612011790139778298485896272725561717715765663043276517226326791425156556600317798007269865097758376266629708374466514971402406737940839151288698854933096678316457836668611765298865487205077584052333019215551204816628789379880784942659976301477381992964808291057054949395610437376705391844141223931654012118866578509458711220984011229698018038504928680714181614771790283247206863228503658551384956644263401041496264196425971297478408312493284012458930381346800546161066330286271584829556616469776752012631074939452859732041759239326170343586938018595786689496016973622376789684525235199981376246350072818787027718050047316336137809821811317732370036353555967952946945539741751018949938205073909155048881633657513338182660580544672935081580218906866676154792168316627055824550726349240323757617966674822258959950653753792680831340201923898605080180317968043207609414403172469641163410066583811859990708776603650412274179524051659057969106457206371804526762944350224753363033543170678416853044535312389783758844542465939773287724301477767879978547377864481680315603224942961658470234605998612271649310590805933449378935086434140883629106251588018253670783803721186961049874659531163354220901005543895148238196378133089333629430389328209782885871803144910833600526034156217857282264502997193812160342811984235325138099234798595955601561681611264402377045588607796896579140825118037590681060415760885382758054179418307856950796461023295035576529906118670779382741001448272612317454490533295145878227228119959291252350583788121350874839399807116309005590072547348901804507971334366906808442046100257923455109751793383357921275380637787238491189813888523967649843122206289550955251688868265230690193860799229037235579943314361851184275699439993319864878439127488746801556533519868196830827212018998328126237032758164823518456592951759426022959718291854710056311267923859845998363241691766778098252563687752182760701141600572545684466591274062426748902917713371859957036563305043211248360618267659495806077785163129183276788269849095835705076428592802003529027653197987370059103637724663344533231046291603237420326848903529678035700653215468383582656991068702512937609462990307209465708204042909011072563379692526420984615902164589565100383915729063077900826293364337439770382937912914375171022086338465022987529079828603811985159419342465498156525387913282920743087160070509672808710693178914722253491975346906012994043567131204395119916021186981328885268970204279419614378477268522582997618899893814188165116692883569609010573640754500584228266371140673955176566294977129056161658445462358484457504986711837444278207919223157107280256310213886614040682675892128667759533793148450441189292071189164445284004001825103969945896044606130830201526042522348694215535871308539077983790644652229188330259381786133374706434073651685626693023248463357425298050128267113540739695750888646854534232247581317229648921955381288742884916994617171912913390726868786577878891027086557330116940541734786135670667563454589887996404762282189637491873833294477467882218753663621057297982303854274404213152363156416994321962764649185710306677709772526705811878528876556806105501497746792333518663987210096524366302763179590979898939731406932896875841592002051161365702192393524346005102920232001997393591649399084294469295511601806849134166408205460320476517837586505672834557041845600006588758961447076161828608824414252195107493358568107389456038689286194829667059483585291032968736375481296362203112145484455500588207040815304253622320079323725578264783841592939377489159096137827014761400221656099397775584709867327899604794728474743643807997702893615425152682750176989734145924822524189231127721634145458864571466637236632703921960499467090118263808795968972100690632115096091723707674297771055106856399759464232033553044089687099749853282574625241146992282336121941986735722192414592817050835946401230292094552789940338352562376234111185691092562379684775309076814324011140029433089361245771488508276853388452784017314082023774237084337406371478088376864486293110474404482128434771094176567615144968313185130399121012009272351619142638603764851823218166412489436328583612228525918430621009760676603889981433926907659419595736947986145398288060437087175613857312091773590871764323202866952564789147028239828177319025565568982527428615980603689321560796239168423397919575121425329519706960629684958178682288810527720692130055781421478208500863551939950379247742875138958923959533580907182159282742528845570849289725350234805205093653161946114946554517282554854966099743234037783577957564524973649397981377069254767127691297462043662671065928455405072112543392524063138901102945933296236099461981572607975515247857551558279883543086252235515711164225742495920947576421280430847715513123850945818568451784521838500007191327418200256253318597525942203929887342058436125024135794251455871344644811225878073096008318676880054336121307983957453161050849509737931925102204750133249891576868898339421884708084198648229331225281206323534846999588845465740225299852478726944490715207068499687633861045396020722671782905230384766561147572515598275317749558481231299792505970146455496203308853382253364367570613043699395118021444739843137002370676872400875657784908997819428726252572633536853553670267407664426563890481099383959555054076114342226238678572883362251711719170899025270445071735785209305534837222317496620178505098362578384597280973412963200492270953774269748431203135842223949143967943662762008702420778240649011169505067460741612091682104934469350942952937425748722217192452885315354617716226827037351420514519859961911349638090241575992947335753514697793940352185713034453364277979433803944078963211339488452446870746382896165990064917577051899831779511878614106690374422682244089113178060141089442515448681773296464655423013264789928153072626253658779056343178062767733275348861411291073833272323993815849935450462280742825923414797112641374482144833290907145540740045542895447341488981469686177602824262336803657423515440434929928394663242574041626110774529096963201752155960885403232514138700704392135881947102162235018987263016498984926998043510760025946439594532791767545730947744762457925524972438243160860865016275940561077762743292342040003687117089832599248402226884000812587701452272694411480027625606903058064585099392878536412240293599697508430970248118463880557973574379739823294169822829453789056849737641306799897025575469705548659372185593579956156405337270347061262323785419326426869757330763382909068138841087991844657781763177800588128561675407703308981919658079867135101755993767234611736709401317203527072965496603632200366153940666355860641871810689207892415420097911507029396592092632804456932373424517857878869214997929388188830843308778251160451902135215118821627279232198787769147282420810356526055078462308695423089762185632352729172275970658050462562499875234653719960296942433566244092532897812362538511605938610173581720394752962413222526771756451689662424596041484187781883730853120570431965201880215654984390870525511971636391577947474465484623934772490121487277656234773064215107192056381320934846402502702511115616007364111842993770725877622128489391716266343644954583461118459176677256674037031246620263903584939894684025648473594609199487031461448305695233109592777103920622303248669303114011611426797652602915171996800004161817502050938767423417431720875266909099449040352719880979647034832778118746377433453761191470901549962745217731052835463320982229387630345559419992940252552847243478879908560108211049851319737745128635099803991064771503403707344425565787103164951951995203602193141247069549142815710242403329487700161200793356275656614283962627778478806076628856215439184125949864214828301024990122122315575472686770527074457902011972952293194101434789037648148535364119764341178138195660328639638181742700924549492048406299564009244852332480954056016738333351172248281477875995375316741763948524950237191263130842981443263384622138694814949195029415460390812016302436270580074358673664365519200692438636278269335562422996824827929510498119312713971725874609815972793078456633022347282818920270526889506959933483117028592435462300482576786472237700710064756425708489716949814900962183297254525918091257092359141724623829735570628005050107604478616241227547813760515533124370045761431559676868414208755665885852092713066114508769400457161560611407138896720870832152541071721184435030082555060739842343967942935588373296213454390188428813043434795698495351003138794973197403297187111927155073613713324125405576185823209135599768796079314295559529190765443387031106109349433927647820901161432951681565952585710838352770019788986854644736272581091490192728771255267655568136218444508871312998841033913329090435034647873858969861634548676013039667706859746966714826048771412736844096653782208192767254615953666256652455555978964426822623697846536314428858067207132076177177848223594686655650595022962057402377490705338426689943337963975511402502840014397053096392882755087558587008751355977778087841105208422680308946710115024819558953691147676550014919079517703473725216303858617067362703063326278542001291864000549344076042942523110299127479794453050940982917442077455094898905513868413125088361891594084321541611824543216253769083861476099014486542714067650388626861554063177292484066314425315310527578846864367242011614270144060553419125409203437690265818398790073437563121934116166934211236336310808701061191859048790897036507575751607534751371194940077705673711874998794197760479676594716924146911753404687127449787705872122820122947111048094356841587143941801138027425217239709132704525352823311782941430786295735231570894772586251944272298948876481775892624163510636400186251256356559423461762824262358709622800812280049274243632717817642276774815186651350630133539734371554152117479476627377391784975163837778096331642024081889356445052331804396173103792077824591655902124830999736701572574842708552449582588134816927544317505819336851830617976637774012732175828913133537765398631938077789118377283863270078698646526219075192754441290323354277826603189722587790432044884720154237557774581948182234780535795688863487626288600426496218635598403006647826839009263568964540099812878669253861466208651571665289412730959870527929288465938187785474691447278342414278802084884849982309654693162127955089913049060673360889411939050641494339458295901594802718315099894628637231317020246910985571185885437035893109252407907659286216488193896279410778296807530496024763645211972792813753234218936035730041008388746336691055970468479788432240556456025398746981421529668898150975414112673399330773775506822008941436488379333418592891217768670711045186719383194407756504812243317967711137816924668210199226029423032107531185036944077493972072765460446053831990989054141499145707803335967367320875557699112471042827849980786955242366468085430377847382600578197881259433742820696743232971391290426300446032292809794283521124827236929740823433713947883815475784132383748307887869614738439536291974152701797270796264722495490329904058294572051712048502619303411216765970562683300453840100118799311428592129980604358356781806895464664009161570634198672398382728249362521772446759984180801761025142344121065228690336200158284450179933014113234910450244944283129773680602228174457087956289548666616289710183018809694022206684253796947558604696308854462361509662028487208346707745966838641545035307768344997299210111881834865466101515085006987177461474793970865718709238973841961351455094575046458651451304406448753231821973846186977960568664693699048282296063772733812066068121674496341496194296979919620033238083647587029393437904798765188212010320856134022602817888766546977374042177724533935588251913038254565367072004639203969398011298923697442293430769977535414959755052352162904897631773655101515182157669345181990257584748835088209415452443718303947531265522872180327559667705689263874218512692206736418774030126130587115020226837612347257368514993800417503093476387188861682802794103946511705467675827027833388156238927336180031547710714858008107995930820269210616574687399448529790018830061785227246592864300632855112980218688181795469518547322439607930086669622466047848273562601448031828159222367301629633261328256416442453152169564155035796511615331680653571932904872772615520757661907673728930109480590674876542120700431603185961927621959324214742346357917991263462125231424496235469723659267559367509268928391566060566849847651449564037809920978899191874747999925001555432427410850123088878748142036177428742458480219404506448635203795902609072508984377812174429751691147862955128956833073458436456160873711158741124980859438783305081152206655310848859557878240842890935964705057115495079352583493589240242974256612626742308480176767590244003292029535928585627063268476538879180584608981729361619316250642370355783562815473924775171119699802815713347599458725232909647773599066719094036590012142657298408506455775950046393682857163644074495034589673617504422574945409272237605288644953916864135054135697129295033780530496286908925978221096188861438695492541675024363291451549838313227691141923141537178098950396006585253977852893730877919400774331127053563232723709138470082705849672154822091805640672696529097787730204715952579047141374618046510707864432333916990664009121694691670772266048147595351716379796068767695766960578765137382162355025396936757760379882555247607638560735216093377299441258406711212733460999989792486820438660526355142539548062591023584484876405317138564199039574259180866086617117742749820768568891529264802422105681251094699802650292738341730020078240826244348092260094184934173056416633548803583268597768349056780677580206348839959863009902816278380712880447754318065510095315309935021356305759434934182339385433665757003733335182077299433709477262572063780480211070684885441060403156439035399544013587291020393577890697071918824142643665970238727739625787091309282750274980007978362709977660566440709536935856408786719811476389819389063783546560590287396909144637747977684037363761586739786414028410837295661236829290779200895230015705632800501415617688426406143970655580197510656681387182849919062878202390911911053498573357706759820987441984788877988055301729396211647497329145682195906149465149949281765236189008698318129663403371306737231077266781316471306964888968410846177993337725410449316728926562704313717413154645542948884699070468450859095740387216744221040139748320366932861957069880658226348648562674516573774561445550234214904689219535852299215472389221298339667846306757876420264137842207199868550446471553440378643611274677218413897775629959266623057362531304198768935950104193312884684979957414697650448057410097775262605139280493158293305553951348175202191254280438147532959489052242829006701335007432708204538264288783149584425568349771762993820829324324810820770123786490908774435938119816728783261912420072147141354374603847369818071889181087288655513486830862159084195343395416712166547890928258485897272097275230456295412219056561037060715403683270038382785171185867493467433178886723407271182762957418744715125407252340929271963646776958685445631510388050098315452472015850030387578580717021793931717039885153998380011079993026361786719204918028102280379305061369122056206356959510661839237676664437436965905547335557469328202060095721205407096261903578214796432564058404765297564578132354215464610401436941828801145760760929897126237533279364251462428449739058266313763817126263560797064974706204348092210073360844943822941319962841352805168870536294474594811262876768323109909698899359642179065893986568865797116524479777870302283763179488064512036281055280786536128425763731754199033737040684285039700596188854281323405809879998365024029649394696457178222654215749403678850526158895268354289922639946154327770730027426675446329835650332987019552562700773873963848747802817672031550407678787275004988380613619087787389635047888636379896131881380882851865872538726522873126665292874816450134936317910821480575353136852133286705130484801553903853293401087889315055349858411438897460289538813750633168479153782731424639279674992128319568681004331497706051560549776879753933916272436814075625734119964048130465905231950460771946590074222738144418083453799656395304874592026911163641035974575947126889938237918725106532509771151325708101296244338949659509429143192364138500956023885003495763722205061771709373446797170864979296345273659978646498057618072549234303039488223085975508104647756811107501928107026662743783412202175500298332794638694970633683346046282975648962739703471515079668669955930801307897455566806175683639489675785104537932706506704165222391260144716085399753542643945575640026092079504188233361909325329432032136624595141653197905436243210630139491253564278842733439895583221779945386249009475554521113199980557416349196970892738202907550755075306703283465625809455275816871696091527177227524828890627822290221629429381121764956299463011965535859252464500706357811456488322634246657032830676423642852949003796828684515058634061368666982175247647281586443610911678586115385851389028350165380257823400711141360853189592198343588571761302849286546885031538385496911599218889791688426681138326514035812854634714022533335517785325522549019224307234181157951503912580986584282624037747915484192265951068980197759575761795101567698723118829224303486333474964176671176708364130410753868277283678102597156266822067507966589227834907199425191064427614465919633002481157794682243557914213832196303250686522398636025142303588989674375674400410037989151399772518543206933232380737095376883832641122324934014078381678320051979181487188642402323965677964777431806332986693512715916397799853912993797718086076594677637930964604290704327871613534614942086987017527629365055423346154041274169423119936093998926373010462155427290471886013098604658712231992942312637256957430573689151047005920360270436576527310809571319266115234445207905384515151910293307449220796867620850972583928587067430653707820294847087348480656831697497224552258691337374008351248402135126239468676338024412247919519205824845470574208551139429941696750347742970481141682406821899648158871029570690539359800975144956753825396524083188254848443724489928075420054819576355948210095392916033617168367111406801349629733771637011819380490562213476321504233591418473079617332473578673500502645141449550200870589724174497722912631945111790561455387803687527162359944273355476626432021485115290206096610789520820746052593558797475087686297085847411638307834651217482459117881381370246558768667998676973623340958987905800731736981121625985200244062553121572844794621208671260325140593914361140022742450002512143674517552571961388667687588359036172752824223789677995326565020496549096854372598853097620776405521759204667172443351595332183358059236766341699789791359529795876954754808305420717736211808444944107817384513383057495777391888698266416712791815996919241828876331538023153042487668148442072754655941110620790700823754925523125960291793780816116495067681141809925592576722718031281880385087163843303700104911244709547966710884999540642058161199282011337684056480457807516265709216153832971439861414364085743316361413860292568054705987609308804888891979144894573463473417276718301889371375049772468499358043717573376307270662958669487324980822193577894082290534929512471468567038252543904674681396516675584238264999411664442306395861984975881474066947601138056711139359264215280665694510006884884053784515692554847570744810856656838398107823582327083958437188792737109065734445423643343637394949269612400889121277131541972680811269394695059068119044318956985623514917562863173119763833930098064636739747335190552428004138804768459481287777309083457485301701786920822225324188749676504836071844216029778681268130131621850960488034018625442056634245531514008928850494186053418172507087108793938051180728975998831474023159295125504919240761387424506127432069156383483295269349061807508729015792304761229944364162012500913593612314984731185228346768901598785739688826135291669244482055191738423860031806443186224698825866074318570140978101351732212491194836188999124629348564864143226437540772917794620173987391265465142029970078096983576857656910655551474172059590290873610728369668012868063142299157559568061242382008678022507078702231334061274229234357454758188145598675248962637308248614998010248067534218854748601231555674747831741484941086870572536538124511187911656725506031349920841995721175760033620609709302853926391249693590401949558537725379921713612268348662806714879259046346917062301334210273060840624602163677202988555948969883419922547580100685046721483504281036975225254416823682374195667064926461462000752069204751486997096227897222667549969222233959242614056124999281159455634159074299674874005965593377204542386882315884021142001944576130164118969425614007214624877160151898026825126860860808998486350292602503497100542248091958292495837181096030885597991577994569344191499143502733641681984539849026401160898233433706003608819127873909100811962853590953035497010173561458973316915919475853518412916452051679572547769362715689087248304163779130424639379966662394681865004927531127389776849539853033101056100933989665154253374876285979953759544908457122326981425317093938894559569281260907409575518437933009410629600821153666090545073546904989620663075510303337319464631934043058342538699051400026578983222036894829559106366039120701274600437640454588831857834783766761967668915463503677967437099269248606878609150754024243032021921592413631393777615244886809605345751800601104955093136707534849736163963314355035494645361293716946802119644689357470105875745610374296942489879680055232683652798434693780099473472354596144710534058742670387399243936985217133697021131610644962127696182708010197875056618743847162471663843797706392351686550139156499989166057323609293320093983414084405405729016515575373830345014781650428559976558357952336086837184839620257159552213115181873741463505991300104033748175424982348931797520442671014443466717048764137114723456206131003814501144968141175260765459753164293543508640954398138994872712585153448391817076406268405794770809259144512352780888561693455952314959913636495158716884183123803223663562911595294641837429931262477458461307192274056468825072804008514712027020872485387971788786891778566618365825624090497854221820888317957659211728102841933814479256820834395071564486879265694375863068286357838492730569991846940196473830807800953245285297380303446177152767076842785316867187891589564340159489356087760780569197460765647393110774196086556471677896856270823648164512012127246329820680341221088315000899635654393463745729577600852350609843729024671213382533178376805112092906210606419146824985207268647931016292920276349452616780155022912407210698426049763700283908192836235111739545416874884545598337529237420490659744491911807483951920713062603291934806469202979024921290383659055159854088789625590872419369002436389025057758521901916661073882867229936104801458274248199405396538608077786072775369249179524069379267598894705809732296970367807413533905193911729619163667475328208619671638106482679430867017165292223882216178580885708822755287508501058093117372704670753749873717910560601266171753453484061242419274499652840378730525946341032310008331045352799659295037721488722753308260050111346329771141507972281306023965886441799399711751940032104978018281371459362664303758940746791409590647806927903903017063382074379920821248000316960473766308221689927849159054603838236199043656165180107877876875130496135813987168492784049334462563008020887718637093130951117985005890238067845513556344543873762588419083864185440323268690717375000353058831571544799807598724398499489840008851629250711647085034350879104377818630071781595927353480108636247883435773026556341070135131102231175572031335861294466834914592559646223155816501307437201252717987262678341716123920836623100173002944133593010437509807578261085844749849894086794131467700145869288442501404851603117032428985875258204206472320924817004162145232237864555769375844765162028065378962692569836458179976950811863977326717967945895259935831198946536346702665589541263091797757102350250825068338230817025841794879403158171742033300472766128324881704048345753530755859976463046498413563707479174623555423278664972791531125337766221608397258958121194175851863286228906479625544243068916430093280516201907298023230782847933889596751272296914371721884717974394975473549327335503750564725332577035676282914775907527045288755928769463149151221706426136507900394464918834774527636649813365998950849122352750889424569699612997284616864056874079684362195809845550183020890548183672921692546405543599639746711227727787698231900480544004893363366872031626787395047183897223974440037153171867292399295314633421742677828521418323036995579512067106066013497985230982026355581299801772408962625441766809362582070224965124120510612906556112342739178217087397385117146981459702272663362779275366777381530866486399507528116689241722369779768439152675651013566301031670821956254909882912918464784321965315675802150523269389443401253691023957971468019733028567894875165169546035433404400628537209760766500734640605735411280779206386682674600342170200180659193812427913357043694158873732256508553130082303670730245181108024971052875223986668503811726394358011444973749390085958280016479440993041773807757908255852516590857966099277630290720933580897494180568860595418564051756678777460087289973728240659348832082066483615623350847391911193216140913459914274529744779137941106420607886333986015732330031264827332702450635226833761305335601132928335134143041196925960936562214364153345635381185823800742383905948482143025596297497397558486100135915436046437334788477169687127878439936986504332304235820364470560875436230275803629171340385606908347817827931683820594477945420959154013036010971668551263048145988824149133041963035505555437998391699650995385556187745669545072291350961027031947306694128492644968520175812232144181957977980456396679519500686763215001294074223434186636442202633630110250346929208151293186473259633087645256068525069373211861612947099814654441683473192366331364040092128046052059749697982334334015256835067084744688122632655784764347864170728319360288297251053109043717731280767134696567859808591089626975988692232914390859570683232198381253606279937701306076777574061957593672299687129719689904568342619280782587588534532428656871093142891917551513123465034392921567130605078340426578827569294215594512283299594471841924346691231670085551506866614933138166238567783911618970282730729778957563234586744605397554876997805226945861591957085622495492695334662877209793138268605074131503987839540498691864812112939521493631602672459684976045148668497599219554446956821980329714483308091757066371099254822541547431359698152801436207187640950370215714041221782296361593452034660739949789185339304292687988245618307011021003796362283457426755006713020663167159119691406431428987832871013564299648271523367700182349192837336332536631112844996848150516942301286420324263993764480317497941475320695318493283198646258858057257935381430218017415937665678341252841894194699956020589381658419336389596825990503271920861192114086810680759574545184218352409784517104795195207149761745026206224298051395092954984371704763146470726528449757509590127613184883249390746198726066343876301895532993027855727313486101445102327972241069566880855210974102426442328229484628758818861574583325953762522678090278790223419067480525019605565000125102033930589426497640451658815660422901265672661907629277418655533195720458324644590943811723425409268271126731474020548650356230760501016192226491198273837830682020167335932614173433280626136390545058902926001749190837071394193848114291530260571745417010525268970749622055276848819711788989139464551735358199603792368847270387113055306658403028153404116158684959166171182774741068402298994562897378271828606980661223591851476838180426776344776777133399351125314206501011890731563114270430016872028021500782224775254706353614468232142855931285157626219268010625160864544070565237608309617862802823385608530959214314033602424635167718395281515559971504133796114138499186291264542154294885489154114574493380511283566282486984242885962699087894390808584501942493824863847931962856786639100982760289431686388935591037788121663445377105928682497378193444140858526165039475682834921056382990468454185440733081188083120955211217560077977540782180134156235655491599949042156073498156115561692936720909443323605575032146964353744256434785930406887189098416634346983658132628655833436256619073247692020097361509482916098531331855043800551957621786749896858624963834136970514329956214341572655510406744565082822785557180980675145764520021039610160144777085498689139576231136215804817877247926152658729969943077776146284015713405248430158357618819105704442037341298927370851940433258069318154527676003683270352830158800917844627352413988872528386454323110062374702236853638777624239315157124232086732853825907555183647496557676975002094708675538931391778085259961921117715165428525501469290049213578025311685164582666081056509745890262789386648523609626700463437851050699693388011521987997953523433262757759857648395389850572262453677172414305675551132390708320965791812742068143427079237113050110680660940092598133264582688201180432551083205645586122670856908104585363141817674846365961056139093849482582975114768828818849345318646606186585556553716940814684547506383545276093332891739358831050568698045201594764266794673871738721292459200288157213982739612701129842200069330399497400050065733852135561974869997901224138840606502831103483450230407819681910488861004767519810810123383634223752507251585689686349723113831232889946357938195632160361928211760658379324800272233590709956825965345599837142966711736019204359831623121148325498296130873102932695618867479764755117470101464210994890149374987059992769467840065984912152661898022010857293923112365316433401602133638176575775163396983163127459785000856259594211612119704486522592421265290344776394679142216553288356395561446997768824460872569437779590285587325256706061544934186024722514757095564531207179263063547423693661819666665656251688424551141723282463323928420264021870258522969831147395657423723520724621578211696788656460971480410267050898776643530512507879753625033356748022502985453466620485423044602721008166475536811226457148159389384358602163505706535453084822176738530400283954643574400427768835645984003803732306322349284000072779576770653866243500125612436974269294594457924222933455069646899505607017175353891991784298790013495897853351543005337426023012494567211332292762519801434883187448416348205028057737628970567738014002111774268685340991135317379124238257432137958327884002430361514856922430912530005958497800171911438382575231739347631402155336919510134212821435708039014119627702166685057929417346021549122161395843367461478860259935948964613983191167132518657853662294457454280498101981458768713186353743534321170215001308886787077158423535061038509456160978905642775560562304430466545046505963498469571426252289536965288702148813276980472953646611187524251280696626644180411200289994603228866122243673565775736203268458293919539117097149400724598952665886267814579514991498653077729431953473386138286183694000088170568025757701039266355569386637358043701956115143959039370645453628606708353411259235402279966848483187550948135570708302018245260164473148107939305552520289010287421949987904953174474947023075644023855628140905549693882432890264345031333205534463912022104328095433205646353122069563754748574252967768584410542465172219662461945920763311885472659510747330629119913614463471662576155879268843026545513709849372322478458241550331755448470622879550970240321236436305880553954094198902708290867562865636655052464356536509363345797359749117741237276508116167728473783902812305593260826546202292324243071759704242654923984740081564948103206063285248283687586548446895606772170223644126670437462267408521309401915358832081268118974356548410126555880630157376344869350248369005245626004792186886990057385582275556509287734947724677658221433083916559014485372545000292485734978150084697050748751770802029784860099293789353160934390502492209498885757429323287022882687418161883603408105892671322525693184737370848678758268263942147965704974367305682092613540675403895286051168700539889364856447478635829565349786069924969308265935361577134488110816703285776534035706997135866603860614320762787554479404607475206501195315578956065987271262521810427942169272828517158040578148968686003986305630722313767446362839405974460043348251460382902309044164459291788251824910856189772881521123394947991986165125154165628656054326731255876758902115830918287466366908304067670523554318195173281012526315161495811005617707440618023537739587489809573976072151742968434849418981173604443410012490452733236467585063263200240323808524569397764037796840406716531028589112281795855507941271652413959756080336800233906142393678811300607269292545202463141714409361341653191848278242105183953051535715557576321978413056056187675346232580878466223718313497803897962840487197572005397075383110917498760025007451275619228000934026991083199661300570212020686681635946111719180931202285276566457211763787460872297008515857015313317658644990291252574043470165174373367673244457412005916396867052341488749033993502745956364292962764482538714083417710448149201472387017296682579177735640260907946216385529792570671162063176531962523093885541530900752569785631884985180636567307730926201966686342935638226392702606070366032382406766461032599960911432366956727349811518457145634370128953530374517084334340945295397966208241187291848873295843371721304488904699140823855516165879552717181187464896732476208886427764055346950401589737062262009634886529574198419246046725056053171483551451551564027070699087095483055843063559213781890216432309396692948788967481166895445468474256967546489424825605988076219430801421584283364829335784935884782900833034255180382377152131369781812345429913728476060438653255618990480388257967003668730831063507212934080003641059578166952765862798863367570337868034585238893512680882645533721655478657841324387440379314461348692449979335195968463306829447413233944106967639825161535567666222946312415384942930944133319152686712419447126151261539590715498016104667347996643233038856524449798683073216975606890788749507774653101628398591235933162712445606088884399225837147685837537517852655699283492143040373447511602530552509224764806821536547743988596544198410866025043105197848421585806961593579352423589497265756602959168875514278800807141714874793453792931690727607006860671729003890509215935999778141000300704362841560823827858580915032511523291844040008113576772230556904071668308463422714178556172756803102114471364139266653222912923296176066108581510113485874382247465225876951751224300842852610859738380458437730565809040310712944872923063577407567686274425014348052966441069050977120656456276533471687449986891127301044903890231225023383779264017525071328408028112468400273781321025642862878937122468603307557407148490252460241389630175041653877940124112602105966724538045936423050872911286328576148004974366830787867508376658475464097842583398607116200576036529217590935177816904387179296854786756844392683138587046981075131229746852998991500777181061204828564683957587673666931351856125190978838346121184215046698823981080099639416502536969410561261903355025060095283292485620602242383358341833147114587645729225127193133755233093505315631780788923779613542590214013511244952805225570679779843553901160581562657078810138767978134374826310899430391678234315894150742351272892471395319234462138669167767879977510415725749282877481610385846628716188967151239783221551161226103385681706729378780554393329119679989190436193493388240091555139043563891811669675016221619217653428929871768900948310058206538568774475523575090795998402639349750386017819584757342214906328033754112211374293468155019660635048673606160154319367987537997660910390957758709571436220555096925310009169112521645702805620395893337935469609288322393540661432852267770017342849129700616613618317914821343196803743309291256426958338957840307412860942658974920773706175368426098879921214191129903596063942082238211297581551606113593218260931011094025210294305103491458099587299539869775604160068776003619105484190581659903407462187854594134523413110742602680137782774335041961009365756025136947311026794605686663198778834441339956154334583520796963417013275065569184894204748938960831704461569538759973574647858325372843476614388771153926892554268887725881333905485856007951426169716373235984809082916874985280019478731343293603325820995746284266436999460675221660177663812541944207455714179259763722571039029218290500016353564995813486531585202558176836611390293571179615478392281586002302532158537031387381726897156392087164076467683725527051116099959756037095089716337454964868227829550454844538160523273841669138787333296098311433359728680406344232540082533347140991516618524952267336202877029727804191286273559256006867534453391765587676287068981252871751729240804505608575673478554320311042811749438764968428766369476101832147578189955672046987097800904819851811433314908589491643225142893515587125014561402394462199801868280601453268131076968310481671656624060776641519338206199527915632549447018367400930557469578381062757654716181181576761234154268196969476546529987654718306575387556869438959363687878780878708459795246435680126184119819374971550622854332652729847024458397421273056608417178781114395849716621187462768312899660299381217808955221267349803390020780708292319117425544327907207501949626436429053736765881920232112235957839584094117432687596528505397923456522881729619450128862769987368854935310599875571315126916789346773277530228749297635058628772114867228938728074299320198239936969918465287320045614796119500117677965521068903773735329043526244333827992323607027187359332769667688822521625335172489002058170457039299642599887904265762341791766958437511873380139072663773593088480497917272366169563778251729947655228748103636172020539273972791501968432621712246082950878563618472875472101533445852825157184553896560901148409050703729756413331501162134232517224050274671396887629215593456366380611327961895978258725008794393458832197393913541018704215180760063690635210072865991986608013248867751848187661036453653352016406422680925290625927133090113999385647701506478864095909661689810850414954700248242123023712607599229883169574319725237974313087437292541548866757263264189409700921683318775794918745877812497198681746248025411770907630101954222099969774884697591315885470691433055901625529527739171837013894526662723597126475855369186194644946959298293626652078935879625027593829976098537314424584863977107212208396045434036831685340720162326723047975996973043573083755125814036532327016107944389990602186130831660181309636029101633300837885357408071129103027424110809563275042744455091861472246868093177788197075065479395299793937647746333977756339073792004925478282984555801380166827626443514285584161339769868258242008478620354841296241082415222928766654606592291141621775589803909488992596363656989174806647140075171115892719085887100246982431517231894830515929941145428250615779298336445805344697892078855425244746300356923393173701114985076704675754961625694379702121812477796536859267731324593525921979948146186283229471581110162903358327566930379463840016212677101655804557880470628262627245466316702276791378879837177747055184067272743499145639265503366225637796797383649512770819797589741236568095236806855102329797046842419692300921704784887227755771574404193238163837453287255218520222387393914038942090265314764849052740605281051727643858896972233696667054196128614908149443126229271618514883410003209129720982395782491246604665151226680421273693737637490270816363510678607668165718667865675715068756028525436170303521326452510628246990160513162234695020395802687544175300672905948648816790800646087269530925598924934871465218713292651022486927180033014967222978039684155263334589689411730170079347440157607097650304654122569101303980933553890706207089652588757089406002864705282861420143637103926034662939431390573446385298282420182324796293009036991977462237309041133571277279322761682604809888057493441832846216706306773458931573151157959401105725432554009511442785852852292633282735798234963327260098568466206654273841173250235368173084444255016330771990087271866890591438691399509700916689943682106139342034404605124228079332778737228977166349072408054924464262660235942243943229149499321182195057222568664395466603332073332868612088028789449379167469557441524494862357012996154767197959341343179423466586606827363777374987808932104959112157140684942337832667203266828257797722815737415816396916077883355597596571107938628277930023862579490015118616635005041803528166599807251897610545139667953935316462519606056448632425726912780820608114887305860687210291463792078820695917700491186038314012819132662869041008970505261338201640075180464112974798230735517984534803672379422785655605514777710931021253947157336548072278192821149154955898080176007081987350279119992136066514678237186763912016135422793069191727126403747587386062364358130247714490879837594107318182491886467471644436526089426661586430668414119775396226187013032150983019254214472996885597009246269654275138931196485971425932987372480078048331280629610001582952875100685999993943154266921961072804183414402123303336872882293888580610930652845305899568668137169104703578909824484904715198092563025855491706344115934626071876745624461910464150738461020143265951856205357888415529149618769853958405245762188448069682265620502413363452390650628309532143227040468281655289861457052633744090490565505090641873656058499208306831983012627561686153587798311344996051522993736629598922924536296795682195569889545050170505020582232204396932285585614717153033962321835266401165467199972162933656074520683312197261643660736513589261338162690275985097579543454485020238539359181995318401639405324065091714007260406424201557923734649507464030825230781730055403814168115850298881849069847209580905484857082711740843752169589692021082130686588575488346005362237397206706962591050553049863923821749573822187399359995736218108596547852492103800224179186702600591821591755343547388870359878951733589173891899627579552106385547844202324771927544910377306043772993996419032693829278916174739052670107217536063525746185822046823911014519266103261435916295100010564985225674139727861301455766923295521175494317688417625076018282301778882669260849831638794923274191838920668517632004489769089889542261584721786024298591990218209329713196267203995235278458571750558028062991936200825938284067940181237559134408457708159425469056011080550613558898800073711323020773347865436024058057659854517781460450622105809529625613655218279928230149878328972534106615185199795797150070705198208757726580992364810406150688272626823876922277625089377922314331920591137657726958403019017048188595659666290503629354225526935039628369740532219628148006225535593547440928463002639658942184574297046218039927738683313055524308271625010356128153590096775008657758820245062336310439164536257211748909692060696382413603289082381746927633377696056416986238537073541515825569529293684950397143707026391948605445965521384575775648238632425698507412836751565448632319577682101864222373529029063174065507434597797070884891574542118662981920032966209144195607530803564677548368598808199642811094106205015578160036334578990989572991690889361659009166453845794503121068929271604196813293829685648828889038270400056370250864116467210335073901183005638657942711641577751590689190049743135160487394492908148217646273810222183215115174494270118988622402985316741266142848980410361289826290080667507247419014332732321245297542831148003533021474935706456219625553068404481645193402123063143679299414820482936351459644643180250926917783174429800288878641512384633700517787432308325390455346616369676056854890398236323022751727601021780596183139726135056402166930930265499221473561811120483899548746606414328909769276660883661620169470882564279359267328857722863255282391584148745144890779600226357058791800202101613156734253322301173787528082472754460577499285164700012623543347344954966787048765227769871483843648048395602373421926244379823377349824269260565742537632736808199455154278837505226545099681667243376208407016374127010107569362756983568657027804232167147631205097001036044264099416304483621337931787521466283203808743318383745856852330023612050221981699786650713550680729372912962651526798435177533426918970675220613234025733680632076932167956096192971901754079544769922527986981623982217159583799863627786118535942993106647712104651392947055225546138491291735861538809040564757755368155218649365044863367927109069655887031102556617605095108049847874527894471868539545431004872760137479395053188646557591087840797471523746915666093754672148359268629901055736354304167896778583536915205122224216263933184225264376575137444373518289611228730246041579668390788333138432326775164173653159307461247939619519305317952085825841294430347978236053663339288640557663342553458079870859531001343251595641156524621939683651303679817785948202290845083670036702540283930530476856290925372277272371945858916920937152062814237429101231298303493701990158285912794329351084786710983528191147177050689388726886116546426610525300373315071669557559132901307021779826492523875760245763111630408342483130824672890546759241408370916061755662161252594834414172491718004168923912777952746637924199377081770869654195830007651224511636035721518918527961397530435040681923244501304358737830273064646057939015891747662114719667156999530759349494622502804189596969262019409187760428017626415538090534036040323333854724411489731252359890680928443450115125733009458416476864510288020440014744017951563657236831345256024496227603303835985644419123750225242879653366288741171234033306770272926943368769387252171948294726234270994210144754017870878017067397176764755787267449460409624327020390625698647338033285965957814677895476394267105345066755742688589213892274482452614557108572726697906281569669198801920054898212558931102178378351381465964610798776627056069456572927370451104853221422762351353532855037868275681196749671626388074044030985584484236315272761052423681390266368894645967986401693743226528034594427293063874462169227304330024479768679888477705704069484023086964875252943940099887873534192371497709740581725902071568939007661794126728982885251404843246174315852548114432263329678144264747948188208190231467847117284364193881129942389802476942929743843887232722912644250150869813879578075737113070053939598854547115245419577886206349982512999075451216615615736989821431014989711146093518600348598975737315042720473299442875000234017447140623370312741920168558593553516314471648353000679406112913804840193031286575737947207234642258002751520838891596349762824787717471318375474423751187556904376639979084329087381815428375964997926258974313138778807809995442383897849099860431566416495118643643544933503919392183676342975152754163048432920037432436304287782783229038308929273170901082969276450868185528926360467463113802891525763741103345949317709089635143032907383212021681547286008263851420108354508772408212674461937695027586833752826542971984617389160697363813679230213339592900496740550096528150663108952742860988817055367042026244542264437826080177490076854487281722119326195491041183478730812629622525405789992156096597360128520900318985180122398665516727990107028816190367394229063798194794566128641485919707427476888425186565812719958119482861043745106894609297185292794084140086728773283379017214443413491885551051328195753190540649765871998849910030877253587683333390206302417847062419748334284781923100992026268646751871495404671653773789570902281397244327785384031127746467061129907305608436483369915099039614688776247054158252451931494358007711166580293247502188234041618645080026444847551059840604374058950333281711353628401463683172458188155809606317557955235147074082557254322202000316326406651162950806613230123116553458831333072514397883391265327031860055392834325279596651420944160113788664555479256509793757891581399771313143097245518540031438074664169283450706900879612814103321873221887354734682914172786792132396766488051488041368534364336971231182769826672416166096973480379407550073367706971894989105056327330258700152067944726835676538139199557215035331833362065917138078460782723322755609012710611059593318468219143923450938814145583692324843875092329071307051263606704734506198294527670406405943231624684502530643169357944904281212076793745443734689374602127961777415843753971678011966131777993166416979931378396772656700497629271875921205848694274054974505034128313043393726718195459998363910522470107396409440499212806850031282583180332786888650819109409374952703307086776410762242838974232873375240311649366893406584874724817878747046771867789581546493773237430054232620690601958743656456143878084935999901966730095522206809673462503524144877640028231529315683128343851245708781733299527088060066137298062106359312613777518111610254035817132012949968242426100273329036676868224241360333432948017973791853662265835738116364859012425462504404126647783911930169560392171465900904282811100725391174820882727625435540289775456704669164559296576764050098208081721976689688498022459453500538437849271155916339578272354982447031549681655236014054072459025934955289652296592358564880058075454917049149636069416376386293087541704260762698281448564761551216672851320738510235129211691844367627602926707127189179688243231577646629583968925237155103207128374727879741340334181484163280561660369385765817040513096933247159999426142900013683815067768521874104787773907004358003533302981922560715142852049252484255245333260187431315749741742361899589085869930451115454226087881443985344233248895894392742789372791104796172822899187142155867558109757806131730726116935924362205736790707580014334229113390490693850207350443592477718738877089180661937876683997942651792522997914353395175873725620687030545883303365745518008837917488811341178081439090925513387618162638171637315843347627681291175379099878364430570230940860160179885072649201947643928142298944457487421282769883388122869058131964838156117754886418908263182392902620726325298137378880236487822071461410809566473601034370024110157065352199378320377202979775349556525300807418976036020823690598105553993771897627991515156060267320125694763568862694380513605740995136726137478856892409360406946743854556765093567051233666789035556105959559587070495827435372561190084077652348827450403752709378121722578456164237505835138012908720658495990664897828324550881569885933401300563049893784900343413738025419721436700550070714287763298321309411292029623937125797953179786948996275434399603856066317921435688016826338606524398988438810883911769433691453758399520075707269454154587750832496699873140612482135414549941184711512144152079657729707083099468904433136323227768195485923259957187077058810810081562164540690852902094142919410453170470557228783572939194070414739921745185211622707860128811501102140139893497209680120609031647574400202028504760310508479120552907516300050625853264619393297661701871757313677288259821332166175681367881892837389855081488339146645970835358233474247714278762973283009293332355197672296779425516362076895873415255553432310551401288957083306686000208705048214377248957310070101760528253435232987995340593738986471091016220811079632591349170413377517471161041365350166807835638692303957129349541607499739940245100818997462593121929560397972244431602096790889510418585993087615619519525560474627339061243076622769513069662968813625091874249229870402145024703090359311671269257349310502182491769158836424587624846995941635413113033497239655032664445639869496751817496920621720957755420800850041042092661015459061400131523391932391219456783425202273620129994409988796591945141506072141160991050383070459008878320967224795652364836654493473410211543768573629613614899845861053049751135259983741577507563571195807469835523190509363192146616856210724715063710101743194919681662875009697618891174578474816361945925480638711567461266957697278883911360739412142257978618764690335318931683750344238226778384103446832815714553950064074290249821713063994892977742269154647394978040944383893585484842666701588097152550224193959597013602505464420037169938234754388877736652731270265382000141563141427274674218769429040248094834577658776264211363471975644315144494378170616831455505758819700451558688578352277309155852925529993111268041471231777712725758500170678623219732698674285612786295613947537405755041553285249390222134115430139040235615815848977940510909746964592502125398698137692206159428730550901631701379108313600574437649466533540137613593079650900963523744592682599083503296269439723169494204446469333855298191586499303896337646013368874761757757719337526701164916335491325699499575161319071853302098676077945785691287074714903243920913345573157203866850340283965797453692843660777403712151540110385857192946393842691244157641844976021479030017806939469969427538641800380966575156910808047239866721355851213187769453208524363891154442433230434982538356181256442909917527652117765066888394982325418488648111578932936119026931675875828983870786015785536551618533066189861618137428346542270677823222772910388328548378157360215538183738957473416990127643690966942042107317721296512807509966122648784289239345271167101342093554315621997229783522965585532091923153891574357993498357335188341158752340676300003833211831335316213420855648316583418801739641538867696340600022379047118180704903856323710136977014774461008405794155746194135824177855560923014652188313283640781989736101445750196430959453435212411340412125131435167583705858959936828824057278430753618636072042404820441973775941856578069260202005415498401752210859142477677000132765444393325394024779220459864368157997166055845515011393703176980080268656811369667136904954159964798688464280557277709837205492560088592062945705115003196705213225747749518210452526439150223629542447834523034699777197473031679510449647019956973840550314835636447246831369143205605371693443524770423416984171733437619979007149438263032095187725866887785441090451194683211429958599554138848264376659085967766910510781101893908501326086097969560591918506427750279499593090039667532540076919264599614573592939395005759880939359401984400950822164417610973587548046853018763930895267892839755661358251818972664354747324724651799247803393507875373748629017982135125119654794453940057902005975196929363723549678245686190040117543597219228444572898826475968915455166342558730956731483759654423893510453086768934285583597905263887482555253324256017230347475657921481087903443056880662030356288447423604893928198330013104576684182794661637134758894997931666817059414750325511452520543705667928153335690431157826942091235747177372063883176526348243278904582476668811279221264596555582304361126749737468542280073440999269066671752701723354095695789099607297270501878928674424107272699544808105109789139892099761120203395692931767938336890449082632691387554213340070261629279564897665902184634985498913508973832713051308387887223118356628454288236292812640902789762848263651690592941312721210022658767046757659035105336354166791126918885596164306123113023122314236076957345650431814972265225173178493098809908363350274744972802474932844979519598570821940152278267741899701706642901152605820594532949183654713490035580509525789332328923661372481804331518691019071822879758525340349263337317476988024583251240839397962671477848110704760721639845884782762346960327338056674776792511162329122595428791181181374643799689838184974328561223021609853743323658556741803106477466068319628284213778504114943740489316885373036460173930400683486469544840509390807372820357990472656159064010898867004886652994717158790377112580800811808189312677345585905373845045007777223043079206354738192860986252632532819189529730503223291033378399167582547647263844332913186964594813631213690090077317559223247463799138644153299130839157372016136756441713592386579438417243220886032069111048292729036759581745211359649915606278277596871569814643845262984963401049771725275732676622963884496240237748215372910440530374485233348917026517214247926197898224461026867108069738109563108332535903541659742122094421354928497452832685855053344460226044115458989488444679455364833575606337275755499035465271762443140209998374113476632151622791541015812712042315580186207036821840713197702543072304666335366213223458540780840798144728721546663005735784235042252098202065437184615563815469212785397249756877597978203572096574381408573781035390596169648908968757671815573181345163284985851982467851050434075347572990041499263411486718211359012874755559726902832383145494430868558601864881567472704578349757332332448050840962958854327426145444939573048744626302460458501243876704868088424226524626500419665410374406937587547434065600593611475337854902015182508345144530865307011332922599107016510030689574170084455534875155625916794050726918011337881064327648354582337003750713560281627159129790011862536917454031885623844317242757944019176518564634391237233854466544771174007413816154321540598513173924777159536223762104657013231985128386869854046555948749404761419230061279416213451558189589821341972192388237138179447036607764381261336852749871240527438278240937604077128501317410497192441066412219455741237518410880937676775735956360815348366057757350316406933574219878531660986182030024341997594705373920368148578603997676629576559712930874334448830997743532087760203439626665847517901487770602184036332421955163335008286092443286366651377376971818415156648066404339504342457733087800832765632837887721651687442370809852796132429894883403041601080312794792650135693691377732407922226970502347339631642315098478176567849932570423997799179415636509447539199734073872265690585288726130300316457129347083454536159692234542242831338630615998926834812892342784174550767728057122468785527119025733372502040963996665924115169117665826366504560093392605147263911475290060511286048620459756422036565019639567235614799329446572845741173804718486003565587479480776654067994533110649215776419628248034012060287254302178422007618256491285624634876401808945395856632248607075113038871863510089585308668131147143463064236859288459879812533078587563307903528737689617362627925451352461475265021350452799384496622349975525878638004011912107076236410844282549010300581546138786322146108536903800014842014698054083551121216700157266711601106395666870228766945497786155923469731523386332275206234266924187658621825721776832677732407284758562421207976580324617734757075715659609969746568178605519526424753304886142843924845809615341704807987116877472179477981063289865117901777123663614420770104449798267290010265235789531480213009768438838454496730842756694996631304518481033785354369999123158613719939780717195998003625102450804880095908797369897516728733941092568751712842927127742891126073762087594808964152421059484654699668187661748955501246402856264571938597320881097860130549476077375408323366328430166796705121544530722787785134864295336300303083922396488420068148912629349878614100406897970759544860104992758747357046174633729109835471176340357328867293505549230160293509749002884116406917980029517800913593034671282605227691375912551387577207129127730227114874919650123457130174673802306915038232602024150810037910963858555801973480250681192349493569961591201889489688618875975854139518156277863672807755803085630910994492456344170948480136485273283197170068124806407213858801175931189068644245213565243625344185354373216863070955747437997444853549816041799427140208254134070304596221482304728008938782363904390445818596417741977711600436716534023912720674973790754760432127542647862989757049598145634268821691311090893712337537152454636653536912463325580755541573666283536533643552802563201805843073249858972638244426889339018567126911216650865446322687812823225117319118116160592795538623649079212639957352929240661822241711113950149132489793653349612656091148208466205544946695916877071105131529658325545319949124297926246264966353142428386597351625568039590561997425006801814690301043715810469900274894899890658113404670234811086525368890145284953293591571007208549280523167029038971293977516347161697120470730921733588206095834274327120413279846514846977843060774190637056725822129863093026135683033038686299189235011230463476024843457406276573264220984560544964022062704270888849857819145499192014547394450892433978539963653441573450356732750459348728652601036917534785607627498246761756866105657968052033499183171676901997948539938019614181865926303719032905592028352099695941181051651021144307161225762205378305701697389040001286834741191972186634835570343788231036465796816545299953667502521936846996342572864244163976209170555490772110023492440993326143664102676936504146599588302647215977638704883496046883073403613531212603529094533282647274231225355705133906315559233569993150464654191923752459245398426515741504241367312354172160695360516822964910980119713670193175137988751692155239568138474105964725491073438253420123165039121230712067720732761401389515934454556685177325577377469271377978791077588808317146658889799671078247667311081371139625017310419549096577863706062506485744972172938364141304258635063096818473047421301498868956741115097411345282620680351039757108581512051895582260194221342833331900447834013501482242068619452970686187857737542380514057972056989310059524218819173517162222325420772171676087806788060946682639770023770131111080446655315515668365621795204354493510601620509438037490178243055608585761648543377801274577927824642977792924954465888187857169551831399891826478219116158330267558107661165079580813224938942183079329895975721733820514688621617379440471255366440837437136178768153870050595237197849023228855611794071695208570506034411940208804079885942186786036250570623988305183754467556871016070608164272468162022430881426061801396898284741114578224057848552539303319316213967432721261965919087796674408535118223624735138729421679843223176498540184740770483940039236151715169113359151629875361818501081317653603396186201974360621198902432378687998283681815187771980602858907277342764917381122603254825425246464592329928542452932255454530164281077218973353712384682292577231403562583180566256571607219076604280480999484354595661512852810095992048546738780526279050443238228263911760692079794757501544830703764082673351789479348100966315490519330726080298049669337341994561941483375867569942702901187132567095587819402709673432622926919450810524644068959772742442677506463668712845162041241816654734575960551812014960996652544704782548645821533732340856826710233462898355925500784240699671188058137463715046969040084572720143329450258070761745431283697058007528436069236512425150823902417103873251134662018354355675050319444203349981938304502347178146172179867007235707515841575495213178007167860130389568468122856974407628151860719903212827049543091358045562369610011977448499170390465206053812240450586482393369239281377975896170388194829121099206261583435735633574482702927099001617785208096364629349088656526927479430926876447446661912436411716493143425740772376244698654426036562839994205791010468149520006646903560300980019263416256005895078928404037167400920177556743303948910303995902239985795446512133628493087585239377235146089785273937593688140499478884914900834866258826991835538250847721312233712459423590469891215796488321876918777048017526263050576444966979158256975079497606720494331681357285783799154330774213167310546074606257013511137281404494661270730322754453732506194588461302670980336386742788438197103659290171596265879438357789261488661384848516533192786930572170008993533751371306522489365364717260630789701204848986240922488546889383246877073529997242547001521011547102830662513907623030339085691445641589609952125355629878586012512158507089401717402738026099073838865464055222929113434945302845905018064809266706192209030974967073651594059883081688782389417061863040048544977953483951758028484060053628327103470430710550644680027169832906474753567887877811383090313833839337534547030251810505972089161812932455988854256525338206113303845812412961004241277416060827259828346909016237948190086013420054788996410680974720959398077479757603074855160821389526711023567260610858684932305423636224246513125429144879006982619607611329601109677045270444434035161795460308290467913286320555441937198755886841328439082787646140141501472028448275706140716827098374638842634930527303864788379735650315236312581264797186989204952794373740686742393770846461618570379781794313772589789152931060278104836535968806319427063847475204333338499590823577123382274427040079176607464444010385116511782605508175647526963928409721423161786755181385183873413099097740496392996999842509743364613881696707275555204086004114703160460772426953590055094616216917660138697577053562201467314399921003778187368650619632607964554625927198177031699697464180395512609584250932550732269552984301166187843533741107149390101781781836642314372410830113216906225084611181447691490362364471048011186530272907652092605964934236010258962200766546706001772263131334542184891690530685977824079952025323419121774075047512735659919907925737156966798840356627778574047778173357164388991537687304348954504659122719932925469521098819830601572469155647582332403534206087261584397379994289414311397596365564815863492320733180546137618720922020379350087480825775169266798676799562137516364731032157391609564501954365723444620776072724660858928481940367166703586046592353163156129970883960653248403790620493764035286247252723297587386396067787758057174020940530389348040666402808716839436766062936960104439545460269726746522756987748970930714596389111856493010654863319507685205458579295400988510624593559521643304114746995450317730173421494397110564780240070399029743958050406075469566173316588240232874327232608704825749052330752042132991688488123731977730249644781340995933131923459289862532906680085279079858876764241188203356922874341066992671817210850028637446913324543925257589602837091381271526913091108334567332369249806331322405720459616575115334530592555675399253224506907394445910561285258409834651327346151311463520551681198841408176581304037927437490243777176117772086800649848713001049708803416492017413877741489059159738864868044687259122122712414989812274580712183986996446323524123043403893438005734520940074167921422361995962220250846054666231451056809702961430029379760546747090432701891075885804200741719655972521661610178547266347503836876854468041431936692748415114450131663665751948033773780018700905812971195071565908115858811357274350307981668783311900766687956313496543065754117500507757535198688159769111293772330580992404502124624309524662665088424120992389432779774097129163332041523619793268798552219282228565877593390910169118216433601829669724761832811402121409867215698446334643354257243543739701199240197409506021923407678435618335307865150505067540520591313238384727673629601068698486628274488769933463679068529540343004364871312476298049386754051127032158375649305393908472436445647935922459131689237393528658490677496870074160857120856743296207428753843524990198197933850063026914319788402459436108670764892915515142666351862824137296880562526724367813255675200239201182219129109827216291141736525063364043582340580977861429548504036834476901986096541910015854538779660071721765341497176587766731027976332560119256424066356336735803347276424800014847878420675781898619051856826974450772544544850510781426102344674720359528473944280706021022410786090070577764023467260308962114844180228029947387731249199389246843004060707410507689833583705893462418129915668413058063016736049391213393053217587882832196886932999733841384357392912097335883278655490193380456828211401230395792332043250527595783553565619816042050729243349767005375982734490644069936443611087276294040085520888354442217838417812375403327038496488107493195090973999815131207886543904382578870969047802135791338937081772023791525586926301999246651834769242183546457386182618433401838196835605959336212551671428447864253921714035524550045932624718333068088721801128325043631069827857726921704029703597919263945719831221776777687381419129645858882063804192396625920657173059645563065914726547017565703941101668616331783551964026933164530803126721534842377968022095261040634246508789853307570401643402728271581448701268061298623043936066662204471597250954999181843675217634500643329514268778564181795095366430439133052883229733399005080277927370641419967845441492953109930005278073118998748427832807453880131787072864556036351363980543904443498135080773017359445404569707966182134050579245376845508942823794002314328286571155269553640094010397979718320502203113296243361560362711912624835302201049828028337014095753012736948094874629031561236146004592025176465200674763469211210963874562433834992629619754022812106994355345142427096580471925923547139532210371139721384589092421500497410634607352938311346284952079932610188365765745846866575565008959248208372485225930869976381130485519675981670209941652715699429116900936872664214498766100658273761547123601472965115112688854040224126691682374642065358987455123090983916554815650596389859074090252924221230692917342714009430899400537861100640090779326536038162534130076242510076705857737379980398796674528015527375422895551638009951079665632389608067817293898234127196853587762983833230513076242257761152896394651309048236639675403594144272953849777639364960785117902419699545090272542529500257864002862829917483914626003885867938332276813406766866579159949235988369610059354359001981363904609894817829065408637318054463571596749718993816785124961471909392717096336591806442130246889388072025281123539431200988676175724311696023408797004130417206772335850217084337857683850936237710128678915315497100940192311368648918763310561799561491852032900984224469458921038135529439653114222622034111571869609072907526464907779628762273107503953200200805462647565635439821722983178334331346775606623020662977605065505385757007596952426283966166996161549480963165043284994399780190898213118546700203267888636245352805657451722840272843278328702603541235414502939721836914958684819603174305064573620119987813920338903138119960935564808984436833132051949367967671272689428041247003561389310680313189392283991896847212509017683370396004029224010499471939397597456254610185887484320380621202644191591381338957977194175020182635078609551924844994100261268275942564657221446085478021557518165134950045469760905172327281210146069118757696139170281390448508836198194621813478794804216697805895440435863969888706080118611053082141768229056151256558530391010652211927095633870113721363337973047419615363593337775985261911903866428121763241617979677095600863181198152109947201590846613853038800047063277215893617878878769048659922997445284793162370818416897401851903413637516406559227451283674944342547888938040215256326613203568417619503098180573069380769862307013414891195902005267394595663364821274973099175384126569032341341559015359598097169545807934485539153687728246814301537723293555369139769289965123307280894668093553150042648503133875261964697956457864298133639542127575101899386495613428372593074565352333241001920121351757451062499835119086732437241964405822745973756945828518647503327886995638853476246877403053104146946232696953908798752647767781268393477807650810504009214899129652752113067143583294818076019695547310692116147171469774409412898130159518230382761490382621183628130404644227427583806152195381637123065081902807202712117980064799897622705610775919287858533907826519748087043384754844709635973058377326216625673028955413820994532758056614684417825999785055910151460332519386156104235854616233744513378044872266024040203798084133736417610772994846309393840481421229254819762445095096561654148790624088185468192768668548301849280435706134543636953842841552349088751770833294970280517293015448271158123718534007240660601533235070518120596375183349294911715244206105314922483324354488431959856186735972541890879923345248748870238478558734984425476273373874191495692627084794727782128088702196965239577288001079948628649003318941215721862756532518923570904817442412914211217043456726125846430036045263525139574118270616321104995365196553188819633290058634993670056751155683213536274407184994527875593451122439931648230567144061962158427555089453358108753572529642015297663342489866987739701837448559042019345251262542619182744414372573490448470000270532944987030364469471263539318257956979993330317548634951083136749271413748414073962398044901375858281376217663661384132077653496831741917084020026780426743014825601133221524006396911699262024028863257548142494251649894798898686920754763178732933802608844143827932154625968103425034971064121617939026370783297566541335094804525678362835314527905559322989154445381231776692876355301750083229163243639944918241314428736594971670137262994166427281045908164179731523739204897049117595471156436840046765106898790378045920611718865669263959311107654110159515100929555033508217866567334853624878719351866961544599465282251799461827593339258133540192125885959023160181470765007064190654799528331988640573586322820611961764676563555316095903498536319167037379359299616128113689640012593355011735318287630034865130824826109525209029354798827831200834412952323770722306955464668580622262306847602642169291157494828450250477854139858465681568589569191571634941641980797361108411105647390403566618171782315093594079468821012995973387405017481684637147445625553499250334684908040680060147713164587377801529378511598052297566943380323009419188112410711665837810025836547027967455278921355297297465061711387088700492817396613194964842988961422416704872208628084573056480828065801754947896721659644301481004900835057998389064299891356103574174794416183826944368592959067567770153948683844483079554788525410962337316531521254465913085370775157873634455139476087733374937368069560960397971156583841514090591203835965531610899618464556064244853067319135539881741494346625267743409597864966810471315061943988968315214601592354210833012595842161493281053286160482322481700056686288820953257550433546335910649299849768837905025963875446698711712235939057129082479468665602259221755756584269976477640810473786626145723238959853332571640064472563056679750376758803291092974863336669413966916291146870240719077909134760068413619093106202388171185743058893099434958733586787609834508104615396943237663338923114222360902976786940554789656357772538260581351798572890247568504903637476175672258902963344835509567399304688012389921624214694319175696926874971140023503261835365987575885684480256368194252826949858914845842396384024140146282105673558216680400099830062708953518306513665959062659042326925039376400810089131777443917871139922136069583734469173997351145725019852172462819433822002110111282176067543054454729717550145932411977590212577885679266234840659919284131469665482218288002294416210988188883074430170419317188660248431315944508927085116928338428163738536983384090737717133452190524179128592003240670190565100291341739623068801837720298337424046718240590510730924169392072430738006149809655916400688134159580769966820684802640848076835935969132391804205649467263121608685182460117492375918024604949282200365292238855630216868685209969843627404787993770054785197879434388925427781432916645629091330203414423215919121985986484500179160321568449913794944767541572584533987846257366808771309595615942988342034515357923090347294778409745880086891921519047784712545906863129701832325520402749207847503990666806690958846669130728050404772294110767411692728131814486730183579822035597588395898440404143686258981091520248546904426620353951340862748111678109393376232380151914996954618136235821632901073768251915225827860098236215332010188232703219155399829549269073054192032897789690588257232964949728063697560530432638414110982361084135050703147619074802862818218112996994950455687406486438884137413744687537153785357754560460590547204772434958975354257421347778238733949245654454480211547341571563028070352028957027789549856235212726404759966360922115793106466813120892065189947145808271232103140001656078061314651155539497496440013644701051049290551352750805716273941466681410647324966936498569223453499702677836641819206966608006413989921515882029266367574919674019638830256840731496061698188593863598037026092403171349827165562007851086552408485381169862013660724705328142844805066089401156629966876151130754727289731253359575489588704462733731571022264873774509128500682166256240134249517801144003257492654116429285562452770469133904163095290308602606588576398145453272760698716723688408732155303748650566473342464320782802911648392782298826857679760852170535920747809351934703058719139638704010716198344075899155102612433892676330350675559341356056299931372311008556852106815716920494924708710063731804673588698579765199856617328811800180917405457153908530348395653775074589345619827535566070669246244230257915589226395510283591914146217565343619131814568935008137812209724016457740970445771686287595647130699848784409360701955085549516443528489120580135440017263980581901070703566809440350758285133076209099084640829209337917483301774833479590014416131032686437122483169829288149052070079859204799090617617787169419064344405243023543216469977949696485150410846823461554170739191525973822502312309094865337895361041629488743564727181979845258714890228982369367444542635701291107701816669882033082443161182453088135016520484171207633345288541560092799222159653735569060062082796013198124802891837235752141225992231564153480213765320185540056828716456298011865191028377133724725103609193309813887909910685144161464757698925894190702104646713833074940365063998364303922921168551702134110310705424133368936903216804694166510130118307013159598406192788812722391688532999036686341409810440522811221951581254761707777422191830776947106624863961600138439015344969900658942655313609471826199648415855260126186807713073602928330896487375787985869312510352554643946961401429492102800533457225653926459635387807607746059898928241494854868306926478486541425441027876875101198769683195654895787141952388587208665573280796535413113541993468786040230735220510294802139815632548596824185029457208848348045905169569352524475531139948744602419179657516320245378537817260045986787320760643788749011215363902889450951985163274127203265313000229617490837868444208622375483361058138640865906907530789328531661701403185148133107655659146233024596634557671566116337215409635807846726924448050601682945895554265805988491118756957335045444293829163952466386473502224515573119997366234128306061774805034835886918227740761300990061135307693630560064765627126276127541215804364926490334464027489270433400075983592897366481540276668348810483468534290650473521394947821176082236608057365368497892173596941972195441145008842382202295716921053402369751519261219893439792584139807480886394039048146352332021288400052869874603424181858884965005781038804168704125047830475080313894108012150433895009347664610827963086226126172426931743818857558690971191596959097730220235961860393973025518386835658716812274581688000825415828158937478836599404664763963635741664970021398502959267409618546806093029827176569183391925138416333061635539721774118954141372941661649248737787472611384382150296112426190898273161876699145268398709938228934845939560744518035484166478723415398554931934088188465745441827763995135334412299488407671759774231122574376116034274003197641479771299301050818905832418680627849104960333416320115127366363396661217383569862150968332460100901186032985698203986116566071244647328678969378716925434219572595795544663563262833921051058305012156528411233742879920855119320319159117845011364967538219423566326439005431899917972854518479025205033385665523770733371860857866016954294472108497880946909856195309145223882127580667833333876506911810004214295253868658891494635917345707427284572870113674848874897204081036783561391829418285513655760610855331527897678669553044058926893390808053934179379535457872892898096145682980086845828066313512603529065835481099920330489589523204839495205274775511458153176224032938804781938295513171227802029641026518062939724341136649091402570690238568222159713140775446355666288357665934838852328151850284694957328657388243160434875742508545893421274989773558266021398254390623280030157620570166040105286024188638729817892934138597677184442086766420607385010151436014298770512422735763515316071523752941488723306546022578847932828876665134979642332571052335133462407286591896157079899765019330680322343192120056047711816753919217045507308898211371786985706996179640793635322865351412759105631973181113924849111606189714625592815912570923300169434450328129975547105891984981837114164131115189755552054669139153222598187758005347258485231438646600197214669913071758547162168454391094270509209904344779363927702018568166931539162814792689846583939596784961950871810189134649096946781814662681547397036751823481036330214768740824819466077715829944249155912225608578553701547025430583170231773976915187049569523894775004020148638456332616011257080808945799454366984862892242660163924541398478602161659397859267596201764934554896927526668314899290986123171884996911032960758255948997547362849974734535642418765640878533152753110020202115241738283207194670467427749670597511887346091546300793904351650701748159176479228179255078858707195443692903786703442816276235288552795520078321890992906817640537063243551325345111612952157333626133436283253867923076041069924842841613227619236959672976011139095555508451522537684430585405646141862742540016594828245301750335935896025480240598175797153490309981307865722975645866576333931109452833021629188684566430496360151531870413426645269001369079934158544834270333202231828482928985101848624913637020654252211757496405120288910503786478253695981394588156610849438167987306531719613654482610461540678661517072596577639340889623201133453649240062219039850255630415193610177188108671889825702257106272166708334572857118165504665921199127298319688784318594581051527877815747128071753987034266911227969008257884020363683404880376217990443774686806829301085013770351377659877245081145023293418846369126564534884491168185745681125692749587717874295362539533486199281435345488851651591214883216597676723864176814727142754277882975177066953266048386712855297054297306687745352851067578233905423281317669251966303815904439218468840306976407546439155009985571069845341624388442674221046134002898018687545327002659524614485007976148208906373761353259736316045157763145663326694121796700991283436778111278866426727949976668854900261107503215676379315909187038875670019143302040170293361220685724067921684151390090867300755323128341501338105678540047787492119084397613579554475507848208005343334815536684769135890842969726740914449497294642138188679863825671145782797794512272075792204027674795706449637347829810591175840010449057199711207945961256575052376631245502662973215151005704712640229869562448241367997867920227770089586813766460133885461539651453271210714967645074357236081910892106207313920599280704306698964796970599607657477563945012388209372064488446051867205057805213360583016416642834375579151325784383717502027621818652642434105661081596479541804994656412110507891660094976524735237087041300835814011811435853677130573940487165085991879567342034358698269898516620879597640284023555139427868348197733016209170481050276608848148735327417537258499517872956761322461659640663072359502854012907247657630423979082441297213187196608058603876806360508979158230473162250098013959973753695561242100363135319537190550573193793465123461823465810215567125970034030879690280063530639367010790318631072269362149568032185856691863828837717598123447060084998483120758756129864154850424409242741065512785095511366841030026094367297674300133792042193559216264038375468664960046496438363332709224674241051578733632541882855770686681539921214569513210314036538204139608014841981593706066298282488149142815213584932952171173948329016984623127616220139629709179411861363124513220222923780530673225138176062086751526287427135702024499577562207810665212025045960147135259748338432276932630687272571967200365964567022380110044594473458007843284306733126378268211438564580125328744008192425554603189481708038652356360337261245297073039232139040244728660992242877347823506601886206550560051053260105894577369487223992282463814292345101018157979340436605191508574922794836039625117280445521080791568951339023558030377336771584055512651953287384795184665250741608427309070940394529985035903557225346703661372155774691178916087112533642682078216125946843237853314877992445921153239348772942393015943354625024036380454085146958464513791735214950414873621113339964738876617441914908808745881405839340452698228711456360298368870375876704009166671638899201432862666287281857031146742750640074718291059174275004105075813720133684176837872253453346444130546086960687566331645505220218117927371489999834211754547862911206015715143359920574676345845250400345972278088736291381705720728131632797206090422290762488918237209563143859926785707311584764376126331128874824165549844332870679924735826111350790771305521291705113216973891695531444984180714492853002285053181395067613384361828677042789586550440817166772375482754495026104807321506161959230770392375996067286941532916031460977082457968839056844767786513654348044203228182112168983436385211655863038136627383687482746088034573580427983850376398336500409482224933549875255682866707500396776265974648096848579677051134467849922919502410702888168342908614980433765692930746632396148516231986023337874638178369903151472725330219313044494515379508353784219425287700884027371950719140779804020339990766026493755232685950758111772638919861894095843272123167258785119435736593241179220223715512479724146054869004503921451625995012393973004185587787469897014354016635775295268378762813879331589336692977673333776043169136733663844060153992468894844834238077708767639469076333313758414134868848299946672305267395674430485153709926743428951837067667320467269357276768344555758412712771049953730036226839878645577077854906428813095989327796437727190011236996994887707678867961201521872587051770168790147290823928357569700619623824356959999872938758447604097066167217127466003339520254574084791886982468162303460082338413765968216625580169124997249423333560259140084435152286858517011003951853119572163340970262938998613820352180684569072547922388159817492182319034190022963166002121606661822821686621336647535929608154679371932541378293250497388821094025910045526969961353238260189287948235603304321453181380642654960463559794305802092764467364054127798391945659689409197947346272657864319970566453404473783220579099337086288171969513228163576874782248164550681199347109733104124664958344588395924264506263009323944276834855002419407486466946924139185131988842885260501274616467459629535622058985882766714349805529042744067896464541396144363881871370494687412061734615297301862171513699134241734890575401813957747479658290034112216757182383195278823283914962779622086474521121221652466179715907093635583155163544643702562485046993665536968661221555878428348847437039145322579983994589361613194550971793796156345395789036447751181962295031779320306652072947612815065084185422569000207448305773963525291421968308230840063662647474255441769710467818372988745677478121445945796743320050027148306569255682717431226319797240081786768076782570647553793371677823228586881564401216925052810047084369360652547073493566838914145695193004420424655569370657607889075114252241947785489059107055328394496657999527705541489613324765202688256255867461517556915845915377213781798374235771044180794714473258971376977503023080572249372500804552944554433699422320381131178105848378672776651632405022954937612904540456464959490048262109657355646081670093904946618963652556142076741854271768167668907066810451041334554876068204712700900385062476157664781968585323730568850984471473742112034055808872791523477024233194085268623422785276274032845122844134437680779334286731380892398329761941818046837172954195424899209896918821154364956046559255850115842142117242076287545224425637091480028878824084518349346975260458570575095612026835130057320891164470898657550627119587287046697885876039904098789742654445937911257331824959261127144596049553356556208620530221201469963339807564504561056915802822912195610497026522282918848003910610794745857893799008492832206447958407167328377649364200742336714058467118210651283875227500269990223555196558066645632297248587190228038449557797975788201528915121451215402847057792797074369527550350910851444688050280038238917541717244410651165410665612620004178767842796618643232438911473625046044432975678298728845307293849245585399380067843386896680727997533808825461720054399585762713574498934397726034152355146978577728123830394647759322616239180027248795159607131947989255610492719501384885030166898390255042714809484455795565126454004247511643511798759979137194774307849255559776275299204941056752135664932497718946690159912171830498314357670867705789004633082986422898727889904651112846265973985154422528710699936532810277426977140359539802331640045606500694110308364746310914026348349823467391724857584039440984600492711749547531967012628340736352253835475942379953615701964803670245381777277313385009027978461774573308950778135889505949719733146145196077587128146316840535870286166656283829913187075802902359017880465043688302596382511641969291911130253920785092653700364610003350215682285983902812743048475054059315498534538906211442788550956427477900225906155343478556968972982135585793262363262881959340118823762509371890386456226946076105015713755178908837895323599855835848308390677629785351560827380235983334101941680935656560048900374160503648209942094414670845040665512502650788797014807741166641685930932943496093493173979704181596642186109506997646278166551313339318682396549668477061426074351315095769449807611361733592150870239131398912173533502948406986824397036360188787961898299789081306874153095082436577597404693145239196650334495073908920301162804005393936095625619767197807142409186025593439924391476363617751538552727383447888448306791813499873160192831558353770829825782045639131312545047466716032561405801600539583008428221448732537099275040867382296002808551205793067318101582076523769605832138369542464083369011145927028083983186120147996658932959562176741784088834640439874862277789760654144310500406501109823757507553116933252709396296244600410272719820695290372542521419438972693777807787907581998045745417297490542688906984632015157728724904004378320375880172261763271103440969619965303357079774361821091711871375530588985508042660547425754672644658946608642588818769384289986734020762087774853937298220396822912958006554202018537216851132480185391233799138425014788007366712716543090036244496954757954176146967224645717855751465138621247784584617010948157772698985934900737037553987874805773731937244586035180074384630984130718492854183548275081943052205605573006608317230403276668955879350713807174003218346717429773725394249445375139617670702900284711376112469503770989589569665228307635445902338980499439565273649610948425990004413826164092688263280596186758482659374028762614952105898274900258929388724597129437173005117713461498363724207661719145359346520325816337262802342252652910264118642226064058628896893069143359759755753696782387774493770748086140776046835780069299476430483190527713736312156899611605474198166410866991419405608965315886856274650326145926976543869765080750971486852506612825369421638119850706451300138234597697565067242889704895991976457251071549233033394535750894744857272036181232521531638192434771389364977697289852674647725535572436246821648312524875894163329433335219899510109668246109147315344842336519218412892069454476974622129918305168268501799268415426504399442081452814879526698478513801728275586549618650856366356345184768433436042927773569459343136017036900731150330595417964120178041694231499211429948332356052173404439552490555167714719967216336974229600726469315363612063804636323897207920885273244918246977136042718308108442992385576512580454789536012327680204621751813744760983290923447929381143912445654757647074859481556667141110118744349743699865345025857206095604809733878949615575063353747336608049000999421756877287224521629605811316388713532691239016532620608344170653607501617470120312240333079572413813988143608040983111446773734452895040013356860834412056292347187307266560720646310021807724504858037499592748257038864278339800842961612089663450064470571814853150514061568208378521322475897513412881016877864118737401367835340765902429202700761172859106872517714257340392515736954551175643774207872881287275994748977423781910321876212375003717881976071950929266068914842440525880400667603172208655675073554630243166313495675029111524645652010963530007988883236170349141293493456244472995447243971580898883736966789831171019605777112276853907223980398859415335723664400411209635364216521176483337019433552065488591682345769824878923342232793254505548388950470375919342441259159404257821075976366182403246170657660512828440822479850950794335216693882781707125556724204920355036151588688162665768635118953051752505663715167815826560099782415228351612181629557112801484765127769298729246256357466959329273852919564738691884667051252013935924139637651719893529107778585643725023819998192084500324543991986773406403413262524606344617197008016517334123624095484258655766803995973175841416248311918688863846094139362886835177186142452763449700265648413361603945586538532507654094090445826940369044103533138677657561495471227241872363056552657310756667919448529162326223359015593995338384691350237167339348385765856330151316542325824757213509793249672643445745882620205671113170223805883325374112114658823967952525035494613639013729517137486510933831472225819027472859150739861539241722989435065344902629720239089725886712568727905431651506862106975411399004063553223085169976980919952151315811460169715245147117576531438577030320932401711973144036090899925999905484918744398455701476362002299383443031067029267215762624674347879530037205841509923847596232748703321982131203636279378437840724422393224910312015700909019434800342420493464860720170720579714734748571210831374535885728179056082931967939362930844929095971947504500241858031973762829148160202038041117611529551616301568698259582344789884506944373746672889089937087712625753429580139535529617675659834758521005377325067799784622454163616020992668669606212393496886547238675810179276700460620229574447296838310521318394788860663480966362175583220156955499985626569213909379054755796197472879477631650239983253214723992438837922297081620698746589451581531646378788765688080793075325633026604524145681077122610319647523246364353813311245174864115457815931618684425824807516378744768676744422106250784800090603984441930599561037820608139009666969336321921704986051265091525635071477141304234319273541995331649766397485157400037075575414356050595287941364019933493482614542011956451921985041148673164492862943736768991027606514235157305931851113757722176360410158874545994415780027083305197319857733361855919736368525221573813140244438799784497012697615441173552621819655439384301429568279746212127036123409376192553973474546843707383806226343315020356123349198095856296081742779418675217919178851839956226043154526384749070609204215040507827338026273323365627340004998310962398193629417606932914203333390899294807716904447445873522168252958496985958139213085565124871252967016144731349405712779654685983296404322667318931722480935142756804767448599275339194537832939806351939461175785017318474980547973105175069318901935280842818687593530027090008778709952772926587110041138978269465765060144749035522391018995867364582317518274698030390512112266996210789208693784536587182018863437679470216089949364790067489838203107410344304556313314213914826634321619839845639790623740464498887188737860983034942969385908396529577944459938011786670240900007061715604331748630646329475082197975944966936165307457145398132684503962226489149457852466329194787698392694276451345870902272410366933200437525363859598553012531634006682341170211735950641152295288252275348891830144227455845024866932132996981680892247443904351302304114626230658468523699655285110198154804610960850796347611288370995949700255899544334639166557513913495415709307180063731601950903800587056355502854971657381125291064835474416982706203173066163898409527475137369537063783797605164483744892847159540128330470610739187768882794659230802087190161931443981135974756944740650245501937922454440462961223067726163506202960170538111143299308185035477491600105019996438353333022815520634947315232529427573307097535942989340363632627759045310598929209099957721475042591603334115041901885155488596525858637872461003227365394314575042940789053494380631703189501152572600485446358720488309484216594729252381220380677096708558224492354647015523869318504132825242867245382740622829955045235966032777625532265231679713697782849783774451753972310528345459049123219197419687961291648361751666966715699852421471344815260905162279849153122756434026054292484892546694114039352320708773285388308696880457816964021345769250449411449950543308611485659980815580917317420011461735071548613896547956309421430154870809443401554455402530919450591113393691464242644759597556256255065211058351785721402480088470138350886544562561528530168568362659874290989535444838888930231620972398509514143694583914735087750192846003877720357737196127808578218588903830857787387557782858572591019071595379059051658120857787661403372955589950666512439093478862312000532889649220976717828237028353745562429002169316078766955413699787318926614020703524728711464405219915566479342140934955854653363475657059175256500414870129444371118929234191120721250576862875051118136627987660280229912090553073991295492129453337755500290790993294640481234291836866038445761279145409996277337589529658611769435066076819676940599044783898801693016121614027363574408584279912151636557601919196060851472661897969858204824677132938276679558494770676168935251357017419015813376533528859974558056921065278640730949744395484493887904734093028038301555424373422736607664628106709971553233914870120092838428921395448136645306581001309059361557694993174810638227004867936050868552950397803954050878228295906988495388777455218347662448772451478710494349546179341382776109811652313956585146826700721397901661554790593116907767593335545481963741018177019577078750604772623559390786151846438835023313946471422934669706681867941349605785710250345126045882472370831586315602264533195251875259407415452811716348180686467446046319068453995416904393952439118848825272577442940750256219573856643158240807845641460007448680251296368305654375136304937005038097623638817262148573725895195197227224625681226012193303728238381487409210217445047025439874561774855163416922949045795036698823023696737765729624750005551458671902428577776435708636363770630488288276285873167912032232798619064277799212935735150536976800618050856044908990776456255425001804679817365857249103135086179536484026896539434369009262923702869055344800238160316841441747589141907432384620888767435367462033679377453885044710863447363480741805170069292187155026922295224634510789113221545243461604095057359616446958647087620066414098366793986662346079149731739859268297687305571953628516401786290249321829774771622921538329961345469402354766383843016563892357384920227079332539430241747837581674708468704317034754404102332909468967371084718277767174768178071048519179468580422662421312543106294600401272983758280383942362225765150916223926088367772391987653485229995323361985057848115385141579708174741900604458720622676816995681183654573823538037538523663277304307849531210532192279059095320572503441733049012324226544103445594792402604752561805113332755657206228985819815613399005032489022340451896961901307887600380008237342082165623392216494083676401444040517050186108317768526787438567499484747803803235871040553450884698173057973352165224629504118225387565053168845020024182315166485170008561224121812501928971583545582183018607506214692374928586817753298510086320483787219385458640854254548391670462414571159436280554622392887759797376963073541859433742922596054752423326192516784592267803245026494611142032060259367124495641988577722213436749832853655090427007667208407692235968361099809189771746413742430721937705436010587296930744161049745475205288673409994128517698485429352925996795068467562623577853843397361094978455531790043327947012593061341102832171783053659682901824088687294922934936643766708450472320438940610658067795709360616532503520496889596737291905680728718745463723523715935345545488759938156477014939202755477436594560280300432711424807492582921466522789239066737005524854572191919809973754248756302171589287300115752404341677207971347364419322302187312614687190548526860092337665187874528605693063261893536517011682240893687035718354013335659245634891800230610508518290959233398915926689330710092616102840538604517763918127273681545540707749512629929219730608006421135659005806389854942952539344834584538975040768609903219182382410425416313994271979723302463205415309696578386308619653728945916295021637622434573010133833262707675166847657787607691343150702831439319368890562270323374305188423549202221349554461963264563034889277054896432125532010456381984048355646967657189816822446590787072490331764007840390214955027862066512689323143141281201231755871569506375011101067845503284936605141382345825458025514906595767820063965720637611131335230508184220336301834226467034765278251545888630031716018690595876112121542120761681728505176331012306773723356701529761643660732698514927578699034059765131642559148646935971019487469554100226495392420540016542396279527829253527012877647684621804487100340065511100070826525706632433169824180104088317343376076941645331522893121100720558115140080922867748869200450993459036518572590609169092627027263971489301556595724502798722797439806334859896547329526059474534027345218837911010060213063652465291434446525025720163915379061024857362263914516055037867088092334397687104538828436755370257790135293584986510707168883983899808737677421174910318053866578049084066522416383641493269675068299267143127741032090267800257045685518768503637156877333238817091469373145301645892131816070027336877619139781133387980776144192981394449612325306117524446863397130182802063125610613496824068782027919356619827428413556855813618137363984797897703706754230541039702804699736039198686417118634622913158479623515094419748261663612358487145311307566326707558615612327237865224310889094889958958626472933902968848292432763579605557953902194486504494006907102442658934395081595255665638847422620369623172197753559014776780777853776976118759822684538533409969594911882630758683669678781265453062841363481818452614859876462003323759231184186395523079349799565153105684999847439974169553667520264506303322129923085455580422573508298925984512992450228632500822544752040807659944518270045875209480246925900594641890563607020161797398386683550903892291334979440828129507899768920290784898239758058745655915575474547345782205770563535381703198386852706375630887040230279081712880263598438306597946838327643324026824634538708459686214524996879841009607533921318410014664007038094785576888952309479909642579753655740963066091483133400939765021338991482542816526490357686065492871429543975399907292743879164473122345951628499922051191335902429075255445207930355125017010832655645055316736966269705637500003290836467849320866452097430388261033059734534807763485138538550803696397122693823956153740550007554681131479906774170320089400325915527341535384132317101917543179774706868122366993846948844696302529826621213131404943564463387664164746545896762065768542833879647945810959840157929069846687907484534118739812121645996858303698808769369090531497552880820115632266684984503154354918701061368003499365539153551190457795341744231282870446716803131715196440388718517142676460797733360852756408609965068926396532948931760478006341312144801213795890819987098513435695284480872107868607506974575474133997299984796849549751351255432449539645111674736878438671186698292598708439710554343817956741826994308995331383629580261229506561734379764247427791324766362616958477514857916386311251055217085455983571744676928573790336580483070059132427196317861671875533701070298168591373317359680425857765311244531923742809347047998796981056356742175556144739479702816304641755405254054789562189387532053995929559125525738397029365965428795929104628547752693161291177548800923352595354106053742763957621484332437149116847687462652117960956695886861574157483849353325206213257695764495897739728271646432962584020598616510281748363150727310814026695108770739281268229507715678474022348687570535183537672271882470692300217647688915679842834387275402501341872935291717854758945590451975280543383741350356833564019394677547735153885534881698071103956412559575828930310628641817113280484903628223394232874471216419655207225714894226368407379251870621229746807996198866802202530316283225328652418117093679042711828463878617471111512686744904020270357068475878825470222502363852714704549619140631759843056318462342590443884414102961273116185543694381329580728535762674916638310314311183440216288710055316392217912646435327404074783458608998599824283203042114527176540247936584754571619728906210494343311144039403426183659457647989867350796207252798707405348156837940960457468469855318913506649375208291587561759049016501073572463664265738995915242638673331411665609704216458746616131999872835395202025425600549107667355614317594861969506036211432870248721428056834362518885275156948481173245919459816570844206682053824914589895711739698157169792500414746873068853135127474297750209172441795283662543886726777175511084566068225409926625407826763875071159386545938453266585662031472129274282795940526113536743587001858980892289020249107793766000321715659861651751176954658439535838832051649173986941067292675003683543394393183169402919089316590540365851170429875787763784374130137158045797496699675132368686164749893391983383376403386875866630260658788136894089990013570091164831543615907256781855224128020310690772046590813604941109499858542719023203065516840968826544092125469639608973904986307089635395503865547833990437383387133108233590082182702040314773236807283013145951624033658753477235657847399561732998267378217835714493908487167968383600174373731661259041894551913682856579312611155031322236329664849122126016987904751421753201097802652723902653628877055585961060313249963392403162927787994784984023652550860730102047981303533380221073860590521118868017056659714582831998532276008852131421813681839388999000558153620549813035796109649226622145897938927436775477698587101741151158226633972079029509405022586655739703021846706990115062884081907990105254883615942181783640033470095727773038775417030388525644566925436806863319036479933681948189282102444615734932280239846582369347715705821635960476935849388525984241299977925036359435228744154585837096895943253226397225063675631112963438289798381582096747117125959127830682109176019560837102699293058060905471294815564755121773638246985084473128297729412057004985945661703706630612405157281029250926900721640334058924773559327717576537468894644908531651806137350957120881070529838750006134181829876092358170971846442539668894548084507633982617657253024799661530312164740218633934811132353452830342153792386306160360338841524821207135154829392128025423684178069384852404349042843694431069286752523043805882613646241041607986096965259135795801704486693038572732622097266662438024501278125109882454031900166069937914899765537461158135035760347192005742363542586278774013496397877050072674846319736483221682760366397555358869979223824923455395905371623305193273358105533301223243345438912179971527023178811691895203995830251919229524330123990509408871744180850164240635316897891250056565196070796181495596099808424026829682615575763044054624638801386363574139668232606938276847312338510225137166247595228897384115371659863661055484946587025157169961774008977625085086802762313815379038402971682140035794777250159336608189982277623602042278201696312030453779956154402974296557591015045549422528232386975618864610233914612836515579753238422942485403518937075301093423418418437523029059723293459081566475198121248248634068516382555526743885279139354822683346726351110202719269045117517231286624934588354387131235823080470206609683304885763991105851087881866563172943966587465059385002195343676195635353156116931879763593727448297841342190986357483490250772452423274090710261173341482854343682186918646479262446843509229134644365752046697476044533879764756275022287495450588944156504718703255010009137231732412654830520513210984623445015260668552547557298019798190444425103197761262738208313121618596580705844360370022888890264813041165292941910015760843974411449453167737282720699059780594756953542218661374882413599283765916128109507084220515336421105216795076057273535062540656007017469163397308047006646438028557262295745545457905758421317971954917898536160103556796472063957311740567822162784511359710068717675698611197630719451796880444934686949662023033279380158680799273521540148961313270585197942707930521342877163252368657180387150822274559313684246608518090146535942495802110159564139648103526854041639298915755951301804144969336569669223794409616560240835082667141973108751308304350427682230016879150528967941789425735672738295540624390717446110046682237068372096727254330773603994096424174374140644896788373107853961370793097545611426643805372211819135223163148160395898139778692798621495706449309737658920051024057352035953167430589424499460970350480071432523144102964856607564141929884569951337425246046157415680531628624351925123203074349192984127687108250390341399933983630955820524485507152245955541587683114628941645576124313907848301969391677030563129692069544013065153706585764510867223832316216775659247834475954255685259579139076088240393363491299096756279697841176061378726905556942547565906208913813256641844311956154564613303069334171453699704619504550055157865070641794865208664418093541683454187105986981481745457854717190934597916582661370850825782553862984963111356150275455689135739804657441094556335399525371684632676551955854991324579208765102589891033401374264445290029896711810334883657025555084860071840331271869336520105723364415494569515266168645570923875565105324763716612907089639385177104980421553650102336016713644753753940386402649563770685402764231761700949463399060562578571840006615532245807350102348083770635718142678267468047877589213707057117377852100798473881760983848743654497396330185768358064966959031221211161586769492875247685819915406526369515908981545174883603739314197248777653470653965389484382679683372196893256478024630056886542838513957080280828023184351098662214630422529882805325833112005029116880490020601212869405672375247196763615356518395569467138909956148032222325908000164822935564776240029207298084057728663443760336524040812367021958943598025816800817270639230666084341258807373501382150164425974373999747907753112086558793562151645373651057327894129986626523450778045278757435069542517690830016603032679241242196817642714471471464870441545606865037056036273503221352909548963864246692498339655151968327348416386247049254292760739426015830735881645138167369994085262598235036794590561371881230199255785409171387858798152759746901465417789576161683160587644593784866033549373186156894143073190961403442594872164303227264361248975149352722835392494453870262562535594209947284866941808199687990168065134440703038040798023420417126234678985154832794179476369316968802650139557877529862345877772625700129483773621001845898018900094038900143989689284887546564516932667348854116528566052444272831816393446574581463627291189749258851704169747547976458491232443087178000637833683685331570549004042313893300370848201421738992479986532745274405510567282008796320990230692903871718011818239348021262570761583744241694805458850560366902181290666778949024711145463514130796089469377099765488113066095017986713232686957565029655886753702612425725888106828992513456954626512577560118697220793795956732736715120808390384681925277267578525903670980068173064704077452297465039943626886326192647798900878013438270908797645640084322652322084237814252471263426965858805135574872654731367264977592162070165224141703848298333864646589613760336520702638448557901068349686013403062924943304914364201109840818563443096442904882214862007037221335301640469296509940644361469684465290877484508524192559098028293827974911685298818147410286291394804728657659779619575981585381677100725775516777627264779776620490747600155286562993807165685517699339206045707947734612168544954832896610429693273253326757564923595899008921952007030256171511042932760196651891191677121266810690877122013052158210856079913245918405825857155753117265211975673289826757935193485279246568781235312193798615220612539948648134253420680873674289994691845237410366445926147383091140724056638190537714838202615406836722896456761190909909961387510723539788488729142914688155657589460897678254835591794600682278765355633864369228326052390280195298634027905513504835643012584533176947592146521603210315341473641692737894046434329137307367309713640030106477542520907179829924946457439409051466630268150413731024069532225673848440434290914182772221615273434200451586125536286989428221632386653071525488482573921186196827133910653406848478626566911107234041752293151980231124114456202642217705023708143533210663079386287516124190602784437831228417556343028484081529475253482370100388789212000296362384753684690151016649221195480320078725097561075031979230712412365764149610891135190954595337295295287858999919126983522007935398260005495288940976913595244088077449967440182674696400553807378939846535956145138041878235950058287609735584526582808041485082475188650443258903578982854708334426731669291095792971933954464921811891157673628611130561602805404252696175658407110886079333239668914128719238307448721489303255665988169013929836337144922957640959452366311916992108155160720162948698382643096958397223057988271750892482700087992552072605712689685247710821914854147228122908218089458401479108570645188687000985137882880547935411689147762155810017390692286795462329591548213010433974803106843904715304234543739254526088929644473687940356082252169091691723355608628524431138850796069106002787662115228010853291239405691037788932687794727560898148752638186788223729917228606540000690598196684101126228850740262989319903234688245653852032106683135290806243014002991487184723376275360949065527149080160055115783781211357558511390728567498876641259784362090783142829689641421991867136930005584749356206551209586435907347580980489258289882799934987415654037213157069873510662892136775194234391065494204905766939631819216514376085755153989220175112717171505619530244198886993335711838994860125745370282712727673428649090276149361016814117723026116999201172947840577398764995365427865941131740025837144291720330605176772979346995097833389281801573553418079830457893621183540405041208344432971912418979350957456074839194598524499607917054984518361560110041955678739809921626408424492383461943323854864045953131149060854400792377356885095139384037277652322884076773073464726712627012889050605938634333919919084925273371839394319369457719045177809078377994935991954585728242173425126520943148917029137668864797431644892470391856778425258656744836859494983162389535506835341239662074620249215187663507106383004430861641090316960880595674637213775174832261779929410933586363237521795877622680328383395225388169694497641173750689643078382173829696812343750586966955338308842131004822291268048397648344472629156643992778619044174125378553381271407189770519477680807907876731039197701822067607488808039962495121536226513929783274529744087180807814473009692025665430494394856843828323011469853301731666247205790343610933216292876673969722038805707465651072364244850368382721411464243040957040257124090150111399366531949778954053331051663869218821534961699432533462871567064208578708112358678773421424934210813233200111701276396600500997842866087027799500057812983474093333919389594687525891675020108865046858584901681809733403584638258190869121437981967072992349790454607670381943104926809476427059707908387565760143785411153648373586907740626681545492370287537919365022737001659318647134062944178016805670431548023584523522968681327450886352064558331486828101513373279279740321778519017160856670366481946174002921081758275732916398096442871722004628617319603320022288803459489070107178600334434208856683231477393730990435155978096346569680199714085731430875364056953364302904420198330704783375191546353311022469514441294274678358124272896291108816504273050294338643720843926939749131028058115803557114699781005254689591805110585013747371250428632479529025676499889333695088541269031739028579762833941408501639925482309743023439600187907381947617144698495945139042357406640708111038786054037301511226548986724501333296371214419789802359697150486608117148374142854623369308666642333553877306416758887197008210726233272899552277077675228472788001602896220744317871936161689582946615154126566210676247347280419269282107813942571537435894053774358523703332713702391631676841576434136807900304234148966259609916937637026206330325126676410075282158875518080875146629313387266123181493940112676401445919210380609756531161554085926846670964075288401704829458985268625676326920605724135764975239599568371645811065003782715623498719378999293951185088885734452090376662273547518576670959166872773442422510228999789566801093675501471986736651347096704848847870700342852012687283558196036490285611733800465694513599793996649877508196771993742909324102751485766930208190032088122297203533366960338653057025539105970537711202591506277683978301040823507343846596636010137194481795151974110868618029968655886312159726516821641589829594433244238666906247421346706772743565844337542153832513030839724848428105130288463816230898322054605248887377422509847963317378112922716667658249054348009757173908306109459240240075600885432667904767401342241559194866529587342264245099912434056977730493779765269997657476295297126081310635545306653705823176373550159386705773091086702856194060938567367391075429698672298392232788303566029309607895389950133903520508991533749306834791159074842008232774162660029721094838454456162243609404414586374600088151888481539440152346858794794071300257493489484824829037553699736097407964348416467000400008804341173088180797976055905779031641570727973581318498384604029164134167169062992047668222962656572127547685615192475767083534210481946921960828486441567483096303374953436340243224928817567621586606572645723680519754757891431171639267359236151066810021306020177924724307492684804791002991147005601417815638354657173025605105876037477910323235114577675254287769363690541121077060329273683769808467490022304736463442404967948408261379785403241918297865067206625005125336206786209142198028985206123348007683341942900074093817693067979781448191735935795048922885210492439663948027731191992466603027407541611178358889612420423782253709364967466516387518310059813597705668234551048721447752760210352043268542299051814924876755710245079336896426535029069941778948803152537151639150354803606680971643110507157524958153341989783248911723684716155504172190105898704340047511130861362274996302312440015644554020108729059207408149260334177273863428649720942822766353158276227028750739174047296391286310308798868898493338607158719017711959709563265009761707159417653554662744496271274503640635261715821962912215764426322743378076395177699606260622175276274394226550315307393169998009899849026818583344421003702804483140146227793172435157835689516379264165286431331372686760090564807927285806800399500273029280772033089709715087191192858210160629411181583129360995089627765834699656854800883923025433430672159209082145692962138578988942331377440370682251652810806074584596592028727503464936971196943731630835445393411237897400021375107304215953862669816445647472741831759153539301462798493574745782962720157930845789805221621743154205190617753010720231154676251462018971294286823727688671123341247946613603390126385611363552106550695424004841431157238977980764214062847403629206889706678568942265842391553970079504139376116173579452322639841028786150629212719409430150445147140157164706827835731332790754388015181536490464964582420171563225147176235994458442518964905678319025489784945901334202235875809564479600062516321522323112325883461266239853626328761661945985931748300151540871328590350507459315223037500762935022643480511831199833368652538938703943877277449144207706814264665035969187155048085465980879581748701026153042471571966241758958970244333981599787198426195665746008390787618325736861060174987774408706075148404654151152166851134467500269837393524492964021862869453945834676176993036705161274531673640687563157620459277255570898855578476421951895651192354678390368349065705822191085971849328547486983297411013492337084552803856765567881222317740043283453855048363243802550645524706651258342594065828547106861298656051328908499700874153460846517805228453878195654648641289122567445663152949284531821901508087919068607927486942264313190497079762305262718179818668879537200982560511010831299687978711023598592772801808474973971525134462581067996959674463675701778064317711057237730094826033121744279445234788485486963301295651678477372840951028216391469531689472628230717083440767538584665887405648559367783904192466648237474332044476475209889631134609938927912845278189120324384167626075715230822157133871417943043142512640946117243291074263986133847883854416506690111499410007389169088549504576027538185933631961638318872772546006483475233117914413140213351750170722662597201900298609913615303873697481742851717798180289847565870269309469045098635085966702256559202710166409822507973714227060045592013314594749089084597518060854840617565626141432614973159931101897927585210773466989614314015241016723186204278421779422108019176374577549657882720503960726855734903818994407541407855783083856781875882005794355464579256527175090630735215758335880160741138528002939926724099023122521039552383678237109997263224779571175640284691432912374452890365377344561654157642446983586132462709715153571757915477348773844231495370144943070994633768958883153633333090394974899022172281481033309330893536682407827279070000593929996794151059939974146681198689545474788453195071307760856276072081702408426253417062854055156156437474771333918867262856603110994092642951775016767775173564937580112474710872703560580311523875026705556408354140451951744947079891166697268945338364605993627462362654580381602834586704685537865998171982544173592226783672742481028393857027737734439540465518171913071710917026714937254108359147940074693889303720889284369175118183751456068026471692739459767863108374959232571083075354184371870566417108734197211571896805849716727039115654687546126164851577995932000238870016546310767444049642294436961002651755779386569812365669972756308493679314884363660036365162510465076272664744791012985884949861812610717973683888107273950120478048942427100092494056672294135895833038688713364662060005101969768606869872551383734335875973122062324365940314268747464817423236649433985305899922087716175726957540588201882963553853717356859104361375811330288175220245680308879212706706232955412374904302791889729120078557302501496723264658327215817101236958419962783993627815969341731832899573190691435959532657194088946374632584014992760697703471683617544360822008773874090734917925461208413202598926124152822150811838813318085021319555619267344884771290626025095505568067665759364266366983964887592011539564956535741971018924728681935764064099701198390341386998610968232656099499018936425682508751666423293632417857840825279821913863658929521395258281254506073172077195036535188000775395020357428568472540674865893957249079729974846574149038614964278549856940187100201832797435696584060647569906538070891028938995036213117292811518597985618970741281747884406215068895240767718642996085225493046237265362804611837631470512379742610361749990800371760807804682526121715045321157450535426505109250254803243461978595360398545369059654165139718735792598643094425665018803722604071371532325855823607611182299189937338240595331116180518401879577427544711564990302175452748927406148707153961643586284832253833446740919724072375334264874543279951813956281440272050970580626898239271640741137020805322839849527102452712804558245801988571616149380769241911267121542438194503853779690667320922651455040205458321830368647258705054744824446882878850413811064144313710963819692833191191418389613830253516692442501598065894394788638398561935045668326752223962121555016652578062049078323517099063738984191276320688976051632219785225496279808546542878250789799852523911925097536939809906380762016258857603270717463649176231438346163796596575425791367060911491419823268770599073413630828891552289129559974175736915494348337671564392519399011118151292238038408849389320173293959499297223864362960687379132822077077384558701886199034520289688705832667867910259194338976632227544338073376491656459754713663587067749188557259789886882448785440762575005740238944291220289429729800738275867495713157779594014109796609190777688131778915597046646710364251878905136276719491611192519199519406555428936295576910444305893236392242962401011171168315335646133151191477259900857780621846742412959790807437887657051085999558866742789211792766996014346412155090466207880852993332618400488374562243156211894125282223269661851495230695785425893784224162116548118432882216201506804785410912091886337009415047021496209722599907575749331891386582164831790545381066104797528871322332898476738758644297519235609790007752008261100220687859651104375924117124132611994141575185708291389248740245890085572402863488522526892509449208165748991649254364052458902940875713341694599980409283579221085100603432102029048145555632609851016214422898103793204015485614640095921545743432445394666406356372394298537325766926092560327414140632507860088462873660202889607805567638005472629046166247964083169273641765331575375750167682867724993598817008001272251417863767036091420433022421666440146754676950673815148555195800574476846882918347646667711284491873455166767392641553678645019065723163929556392276624207253700724166562812778980856405935101411491917682533344862948809475568749602174576274133220011720583745262721330273105731940402648729200625514651290134998348638699353689775128749852457476118836553181914530470126993565903999310874106284391861395587807077344124612193430226813954246824171659496889272277135001719202864333413680733434026014215770289668354138340347407150469858486093801590624877713754882607788901601725594337627150564593187008204109753254399149501345023837160820767945542187674328336814717867908492904694774393957281753786185220132604462956690585039741122608725404839716093067720737279585707534307933941885797643877767592366668887016558205799368394446396333912388257001547531866502085964664876445735923951592857269382177540788233619167122704474814595006107265456426147003506357005392490550352796624792047482615538706195649222556028895412877254705005599017239954138577437137614177753544274089135463363450271785635952318075354849501458149828256324495752121818750605273613304043153202358318389303253687829083398725941582162174946989606360954771997950818646781528950171147233165463400572725459270979171171552156278906069006451213275386540357175733293613607990491535208351432790396139319926910593211385565943878774261511217836665418398542106325490473898451525658838875364677180583522330325026026103918809173523609808908160973699753180726166188750089169430344163670133743403792071811999579427506411460308187494552908194381654434878275857022425991878532176273747957858373476832015532287545672259964052069535837861731996037133422646310880773220236452646893483400024409223324754551210193936848053392458562758319041096112764010921093901901159305197745654718048575180160898349291189042528016080940462697264489633270960945002267622230929109852139098253846699507025860170390961194647422505864295089473452982334060352064992846015476070092502133223098065734278901793596460780011219700550482963254263267692184227044237465946142300239006799500337690704293022583446314507392698413813814586044667982041177749445870050943846605086154413293793909905781734440511534238613366349320685313245353925465122567186446171286952399454480469444817932506950761791956359384726151187387070691635775223361360062847233820155623917218827532150753094153922066662617136995820363534215836890044528051691550882833381438396751458638772254123691166220238989287178133411524874700915521035336915408114526188483433848986803988432333701404954630904745256213749183634859806927496013989818693034582507699396402588093381308490927330431803192016192391250371826079134704240026509198827916277085292052943300791161350599564329615602864253365186525773253787321394699168471971185147312764251321973804850491408431015795459670327582968275517290940396225549461192246217363186253278173320270877405188723949790201963539353300827497804690623178297273891316863522912496069880686613046183961045685116176238206142955272824896670443237002511823246770629231187255607636792814180223085826798935124787390107953628819268165425561930429897790123735586996679771604828455001060844155899609764629845096768571761542299232142168037131167709864971515960630436156278767136337846070634332520908574117092435013875197394893760664896410288667671077280265260197522595493468388820341461473922151776053519576367332050412508639722072398378913463371243595005163834013410650988710316883480066203627358735934484842550509003146094714471734485013501235284667724643619821620255196794605265003624643198246093773355751276933198817880695369577822091865907983355085923932549304470013989664426135026020361625592299875907634524002090298126373879207676446390897254012397926065554427014913248926818403264209463153585581595939766318184388456834747815928323761243246630947960341351850305143587899789809425789944749667702199179567221144492203492574719222094521074838131498671434612107050680957248257721175262019508845806998663684142527216569743318247810226662893847013056344927380034203364610127069021644488090644598347512874096558267822566524322523555059367388514500872004848757967918172068144860600539050806691307442712254965738101837041555228463519558353329558017476615426938927316976354293852258764926084926393439114658657688073107030207373763409306472219135312722541667129439355401775251557208485188619564793357974996406265739250511699164472735331291641086680812078956425516674690839903996250693206204718175168183855883127417450706880949307507609595314601499197018937246767990315510483870762958222597567927732828509726373944002169608539259469340317824959997468149598629670883431846719500861707087488665556050837655648310137589115508208911677257120599828790916519470447043984515049391448859861567846515669535327516413769553927061541162422570311238590957884431343803789254832825239709446235341985483286556879654295358968047548054920526492749072988896720421768000007636182436103235193236054904302864023726617699988650385583169490353426591151038331741078787534939806917145216586776930539741611270854891094134598479900788411545526539261526540024607091787170414853721636879621628205260523225994719120638885220512244066725799153363157674490000009784629254358906079743047988264932096396833739935573877582709089629496351230096565502538093174476163709242515315558264875150764691195865707590981379755435959779187547115357314052979972281038216754721058481022499814212995903935333408810194221017463641580879409000394841479341820446719104131276289684299086688638013049467963357746364910787452933444487049719263808712822450308994614116360830861764083497424694005037975296787926509588944504536699707576767930426956904815780137514346583441612620768406814353606639216390583562348151409463844272446849776025959486620244835188524994147890240534301259015335900366491682956682274218250794282480537522639735726473619664570036284099409713979662283727698691775591705703845076585340272138571986804416393624414001651755966276477686114158944309965595753838385315194516689545525571431234253411583806211655057121662841412267254426630018258918354089514704305376189602827807261467297808712921839865927731264029962800248685170825352262484141652256015092048094143096802969713406159973171545550627910342488271159075944216984637026768003880103064235483041267383160583079787209563415414151051392125893736711837121446543171227529849317215445057368643593001956383903084615233308794947597229293050289541617276878348692237712727784167988236862025469656680373111919291618864932126663030302563314666254772155209290034777544879911352410303303931925463567278023361903643930293930782103393821598297363445936698329929863920540444154824580818823974338536461229203937049478999639148919246225611445443761059131778589349165765145060489882552765892484376873631742020716790283882494004567886808748748837676399533277705678259364667333282022676347089114528927272593533154163752686399984060781356530368296335770880976059971160348701291676934666944512203457427635667429025261715803496097661013261003728154571961712824645857389002838114192545805292591531667829664623933543490690169428990401123838393656761810429460682842847320975967424545466183380232058861999340792230401406485370142115446244774427648258453430331645650488584439020011495429584736242553425845105297787625841949437384598727463098605877530123110933814178343038144264157729757942510439027418544248898711758734183804803742842218675250374207480663704576335765121957383659555444377394667230786635468155106881406688586139130170848531676128167368542677571033398121331081156063629189904744134315058176690318069183941644298524338973553484748118039740188466486933479381479140431900512579595099117168285270548868588794758355992791778259481650591765400597412234487081970108873894843809508975662156876566117458554967917277675680233847755170269448782051903890258927017549917635950944089127933342431999067549807202278678308739462094317340857175416153527509133968082148982380903083718160427485963770750106239391555415859986733595854404071440472592443394738063443857534977144825616643641479307798344152880102349326088064377415172020727976072043308544119946851812066245863274358073663979576514026905365588764886387985188198487456384510016890041533545015064344891436833273223288033601300976191214842490168485704143541584392725189413729486467003693722523377848101419711252836159928194564045500440556435597402538783750063926415662595253814953332902103873011249380051866775474746295599047866220617430104096587196764175655704476483134700010305106953055614845756297571138822823183383674701522236017537723279517949054643597525896849017477393296084391552070677544598883110799303529411647123008016166902889762534478478308126881425733759120001454401727074210871210229032930664771573733311509278173649520029765983072683872259059536122801659821964095757736575410993789374847919781877461670931821893211460084062443254798186840853700599952776297139112532968860463737873588208881529500085082957745346713471692100428859855553831433835237880634779213403753776888571907787459357488683680019594130634540028592280063445637614508624037050965966853872646900268191596253120727154261866071367392563308157836674039844334350357876760565108557698646901416936361965854199984137943995138300891246289692534785728989749546350198570792798172187852490014144167330856430422200040031687907151913072642492124120800945878770954645658766809974009069654878209429245774444997874639249894399008665107353685791002565555919071044111432370537534012742278186970532340406049630901656698177754989982854999503127928130055347670063797009930817486988120956141822280076129588802098431101317054863705159390196528071666128209205567528286400155971082295446259325689416965504163676003467271057473663053745037588339905592114350352326880043685383420187062824926100197977535214700547497648663967487549208230123980842992585344395893129575622763961061930658807929091822375667810004238198122527380195106697308458930161997571566931255336359968813247627210502343482427108460015035647100427605713048190001537375473218138830556128572713124094809406992839310581936464923437909498220912370998092640499923892311012367439031441080802783195105743207306440336034806352736941297424921558128648102222475510167524347726877417798403804181381662288854622384138069389727859186605842547578361225490403606993461164779501503839312714908698914512346453654232245878903580617120862846776466769396494846272269405061992754587321797493804150201896217325154254194073095350112066408162312076185335038925742905983246199706764543826173569012315223418520382144620646336361656142235772846000096764050799450511273650970124168607228499458955632494819641785868614027246624236592001928787973213384629410359089919923200101213186915038208930737086562537218024708552820121678049009837748315149953722349194175058401138000258864169174932128493829696002658702193622847173341107938519329812866738194328027274153388030575567956443116909903126450502507175931409689354277299433427746113491353309003177675949961166425351838509810422573485863311104943686421120664645601395174481930353794064180824353575895539162477374419297374752522352885927529429296822617060875294230394845537320733680385338152332484004147317222858903178807393318045216275880360660315222151752778315419277303097763244595437865598647488566926691528409418626392365548552639065961739887283986019974249592534610266026162271084791322628928029146963158030589825399470078626907560393285760634094943068974808656969421577302762314329176390880865788584643516786492281486268815841095444287363407851666159311377202574501330541828831118093965983391341181863529174740216098776916521581516788929142738734156346529178788608543598549873858640984188747553755700382446776688063324854944179486393279387011127686561229440602532587923103439878840026367208152929365765753896936268815287148532133018214568319224056045606681499693044536525766086328021782742525539742782269591418461986056325718917645652518574124139423765204188869109740791448252025250391397717097506509769449080923081962047466191279007239709681077602618161739066991309273742932984559571438401560467218324009015575806846041284438665458558726347075290500977420923635752758743243509714267423564070065461098096373010376420365237188469750378909812599626498738521825157722585232505762136283866291895094871875638825030713581214999789440319763583849380241002222905307791795802414550435290797519840870881162248550118357272281788082789409894626931104967525645345864245142194173134209494714923332154560596536557788269887620026674483851930689730080615343608762246746951907005473669991822663998158458541503771307386449564742692340446322709642920996186781324440571364983621094270011419874566320275859803047200973169214707085446999980237854233066481838780864713124276865532570025185127079486195459007301410934517601367693482091553328768458494311254966655931427200061154561115028196699189900969291612034795113392921283832485075271476845357842275313645625786629267502214625058816442546288110859205669794119166396589248841305219261919005721649665926222570396014545122977799226967935273285984613400950386026154371652593423968415512133783069339715527003382955173777436059441855335314995868354072206387819153469229033864398073301667217746280063901405895138031767828604429958719290903094718723425975270834295892437291871183292249603281624504954900951064970152570382112194875016466936136565482754102763766691082611812596180316309059850479049241895397541077318884480690591485305416780562805988028000305217128125083166442505090847618451430858588345227690665692425454738785492451966822892750250592403590543782473624167956115931483132459841069589434724423676704900551921981053383886150310559522817942284199831395415227765071285440982190388687875403173703163886404322704696310887316436572370589369496012813168003843922338530386966321171931631833495919266221497100114326555696903299749826212149464987696311688081833797005204567706996298205859784536559630864376459668027499059632777293330241590913427924347011565938165201123611542525694096657454769901646427850324022856130378712213386211049565579591354234116566800266172104572538166395244085170896577524541013790469027445049298914327446338306236152625565709684200814768901622043941838379171818363332673320639759708783990670221257213930917341638933088589115054125075756668631735320904952077533591749452243459967780558450532517589503946382478632913109488183854889224595882327350274120602761385840070633130296476176818478982669445408383685897230949937804086237938196975305995197011871187773897590151767451565893191714948715771212833521473802254121208706429851424201415421867872381025017001125272178468535888585995971917186102247739756964006357739660254911288221069137004362351501602029174889904616294537415716192386404572410078839283473710899981044434898827489869485316897272969795352798517572864476052120632050263116431446365646488949260357779736906930553783952983815134121946298025911032802471854370876085049826716481354885423691901987899153576719358186490846749340355556613228103860242117051481238558515909809180895203591829339942423331826088306509591977177256858292812586100973515709343658603393286509545054070501849764480218676901726911261231645761098297007482898148103840891326780116517606133043927200822925452612480974112594546186859511920304779671447017351074062471398753772927284670103410467661590763233956983814301235311758664844891525959284153869806684840593345746805923108192279277767659091255578843860599573112675436277504207395898743025826651190467575488640030196817284987735925476187422901346832706073512979485694428305900376990069982864655635208681486517757184712607668161702607086408227560710398305339139385188793935097292778671721781085420621167632056229514176607376119165965451842449036822772466276283492805725235878973990758879498273500524284555302550600096796717524426674896995446416921016471643839427106686510868005431846278805998294272211362944582565277483482139447529252666965992732717435520543998310903056421093846352657427103005692928927156859042874091701896550535338907839322740940221741588139357648464620024237321024713678401969610034411453027400601667174770559356114622370221811315364373332733109004943572525361087621614061482926095403373828663630554266706645795575462452319869734511341903390128499821522373187563048416315936709756797310871087725161676598541798280411687295970863168017083506016676011438190809772162080315497753751744301575275963874432044686726344414365429957779889524447485951695282480666279609239468915450307791682806910105360957512480889062550248132759772566618379018024132750443664665865700931858219268018113615369813942314556865847603888391494664499242659032175658903625653285895926566442016427943056346856695301574337562399639489685297231352378717789595167882609075197696942272323883250105508158397578689470989636823528783504127518217314387497997954667159776310692007571205744198650270455306020151066416048150093249241962131947461134874298644922509841368694919184991074100418276943970885110244366130087693593633972311484582373031576479747001725407037735457857853855401660730909992456726382458373927674718025980428487181596245279002114289125127244403648337897237067665072021229337013396145685796292838095413015103789115120241142533817100412065231009880389643075465489299298771233931128790878053357616978251169984624065092838428928557973314385779938609944374968876761463349285843537295024323092745265175514293494308420277138084319284050989864313730777640816020456470908454014217833263520027693004607145173063162518919766342531684774345002582952973126465319515800742607750350400993597755696888661124956904388930554663174178130673114467433318327885960784018247737806257529876836238225556699186056051255636020573766125342808813237355217990287381609375473362676556496833685620671000022642291962185889363910989947183884067015747697583132831177738837833471611633431196139229590978205972030205940845982026571204602949331537305295498796076872731403116599939053305730946801401495693433945341468635047675284323484316909422576341784609425918995947856671469288011728129482593108972345379866580997509361072370312749568317051341601004443602361543015045663097875860928736852666999408014828806090777444444067685522735748755670471007030867950441894772361961566412501261020732454860213523794543583842539936576236725398033419687755393341082474918360711694465628175016214869013306157154680111176670887876154184644429820913383327458338528388937208171674661150393368599889879679064090419927845631481198411626508726751425272588965864176538511671499203385617164842627871536658806507339061481313571479897254631337460859979133370224278012691316889720692757484534056010218341600789622284561507894471609373478438204653153042639566002276316459788535604680586336588047882437484315189563890151705744419176488507710664439159204771987190359830746144964628836598121373789487305557259137411773444771183797486720377432504235575361030845279171045140511084733018486990076003995565542296754561281464416524536428836909909984113613685188897353446056275769696002089335082101806432211023097453075535072330633573410890631324976719953612653820248108568161600011803489031559522582311491305694272061455205609981075392129195843499930267863929537126681781108947815242549620482013654618667500998251615489764711148964601824673386263262458231140413928351296662067056526222422917220236177385945687735507933644033418748411941737938644202177094483080799270331085639607796070580204385017470446402427899525791297178120816610119656988430578896121064488092708050293326010032922973076260089714970637793560858207317066518032726549897329192519227548520725931993684445575283426490160680527490326642559019001338327598965276621562633061485268616463521634762983190552945431282535284202015355469242975456478529135962150755771499148075221431411199612319483610423614854917828342007931763848580344944047169694874070113270792012264144599375862537487723858021152018850952893399204521866326744016505261761265504592979059324440074757987661124484674994267916729120625620795772921819432888800712360855724372027410018037775526138449278933003691863301763239088145707915522776585364026681091806002639990247038351478236947628577153043856969267837485471410583331288154876920762602828146394364410424427253697780389536331852346547128994639414484439059217635306585307717477320909396849954026201540623972127651594180352624037124530242467442497059816160604527576025054356487118143280108405998194233592439554438684544955585892205942005235597993311569303614504163062714547546095539158909698997402021353111784911267095621661336378651959543533786302720624590289248825892429694763412363679829735814897018154693848709193133924232965889636768557157596706483776882349160918661638902913949485852625115925430243307579000939828544040985742819827559707222933818139849185386099280663690038875547433861465572726564705807807104742896964383929838095668466590557166182120291186988458370494733659625713291528299924333178854817510193373784610846586013906052561635751797931863511090166252848238694678278712259539538588256654852566372325592019496890572193498848532006153020086885503706858879981635952005567401710079344072823987502318616661063626949156449284204185828639658917340042255162306484112172399934703807639160173052511386324135100000554047257917759214632489678590883499017009520560308178623242251120133348591205922599416958849369585651478273359516947784139169166841058520755813525555191148107775420079109388827672715367399352329077255420731841281386151358381099140864288337211801477498979679317810650442648141436878226013176973357244372753370897987870510177384042304730082653689914449750192056508795899931832330834703154845682223549703312469887268593168740841248757888994980795609402974364440267780639326740691147935100705287598947202266693511524033480110315054799315125680421190675379554856990174212764343353281099966819161353014358177574898555197685277318617915251532930826648645906970927629705949043378501833238429428390094661359362184330382942823182101094909910778670495269851020915909937967098931414736027167453543119076908420464517820314479809782156650465595385020764343302221877446526512294621763704787410443574336286744377582930306632808276525712330477653463683968098710600898639411290453681518055772887126930006986557807172807939989391004022514839562025259224865184309382113965113921434902167216508854271997333651656809603349934553191758456038457371693525375894975249429787792644307808927239483674034652361729367368766701837475909416798383275280280485907440316342131914680148632128060098854640252065193755981733523069754546055164015582486493235488192374538229377951885381008451541259949917874905257483377861318591811921998465320726787581807318108340712915821896895953735808402882252200115916540024281776582571569775479226142488111744104753647094690257087361113258490024073893443854734509064869185141588198403635967112910046744679454258310927039013023846550339814316035611030778875499978744807028853638260599280505033996295477943262697269459289155024503612143954133164648768943721571452633574023011012819216379473507029281154777904791057191346640264545644687115105760217557087848758734087549742026445980175884935638956554846585428961164405368986593107817738261889795680364920980892730093132225118953657083736362153722949365697290318247401731781724995173967657236534548829170608873158672588499127501478569783474598620185301055660746776538574332538712171028226545714968346021137107701461016110157583776393709658317181627925407728859386268608344255660156340080744144262863714233103657100483858832636664200942703770894623783354735202602714143842435637780800038534618850294148549456108247286165500847533770541390896654277418484168275115619990410311188971403049722301912310438186146564652845274695872094895551525312752599621085995996575358234176542113051909288666305538605167201877005447723308709294688124210832861265299616370722222689289940082703290718209159067974630241518269460849956278879431651069485788180788890511826800446735148459908931583363734558618887124688742354050475601851948597616962455748586412165443789196715358507434373562024422268840943752395507690592743878688557201570591675871367257036493654810576551058893473055801757943342100596701570940752537671194599895367854561177384550504527131934342324346168421805230983182701829270627251632445375330956384676131007947209039912342672411327155304568973034428754288818007072623166218616701388880364059532720000086852631234421587575155113072410649202092920749209964763395431854321467074817039781402282180322655038549702709941481245611984462085250161776768755153380933356262035588889861524991852789855196698396693551763325675128155826047339152571896576951420256189692570343150544394952078926825367285971273430966008518662652912092381307633350997515763190701838443948526354318110228637061740010377162725236913208877259287670596516038776859982258319096951525816049498978360108936425800508312164064035118925237163917247532193842716340257602163242538200923567386100882128603428596928540619971764341922909722636461753282898380938235846531864990423740989850150610966957386389540683679046900535956228162559580390145486611828015687816353629184535234991393027892123012792841866071699458922331174787019659957750309540307342889595535557565830110825063593676315299052070749180135014226705131718289310626631639935207005118126111910074633637034758536243578614870726669380102159219967553269592637775494881320062475890985622547823617295405606913673759820271335217811905958384693420994716906831742126619115506122684362321683158161764875372441073738273421921756083796002105651135350368594762468481898235866353965994090223939902434322186101711199654087143008426467437613398454859556823536454545616568973514560642637234969526044199562263717279737789139639932412966459408817749461667855577158840909069246540618956283647828426036218448444194654181842102295490251495594453419681159371624150752030864423880322444331271702202028067448687452892598799795167696449513964417279169215051892613109329472798591649036822651903428903719435074748729432536088258740860033930238636454829986800299286128523053130207139401920215662389270159087140461321684184126091408658484765912407432859709643697266975667606851765262343035729267603047966963507143774581251203542412422086542032358486386710115371404086011500052646425486609343599996132799119929377571321961344911954039873715758712452714768730168987984725528071907755442005230177389456802077378124216426838897051949528342073650473566357182088994152212262284633135797845169391617110092459233590868957584205653398009701392102493942375464664574555920316383008058702084141504084223624026676976905800444445497240658876538720034905634957017041290167094179465647682386983065694891679984402652153175177178655046289174454328038243141872697260523949790226861028355022078169337116349974137770150195232443531443008217781117600554920999109277690700117505313522656235062736362051729160356967441763059005187319492241478274110302025426754567563972871965026066401987972678066438055824699823888745255196335820861726382245043925429280700851935124126777813653958197439002211904895939617651715535959672058926191850215967829831921729159898308075104888414619387627727430432911606972876943351311139649248120445580412247406882397336469796901969676449315761672522023223637182553515032523321912720317657512959244895611772887681822306544773286972899540605564142816854907311940688461845975385555129490709532589987992172991353698976553182863851046885775151472826390602466770658617004003800718227123296104409402988906092897264167546541292144537872065105937573026499992435406920143117912959817368125122080593510966888059068190331113487751342059472322436760482082164872971891173436868552619890986606261098780536660231347469190600518892494103944347914785445111986507830921431559881011463798639315725175683102533633689389759260670548586175958049528653296583350493980591304926203112370329499886327377306584778975138013845311149421177584363818836205763532218419805840360312501390210088298986988185645994931108893063753522113327467481678869065789910868712618719811316646808032758109001135544614953130410358826278271804009603014396057504208325793045497603912330974519502804612462313152773103743637739175101007732084457445543718429645236326546849647483633545084829362016878222454064544851205153569937030305674159550772167760967996426562025944723806872281533217143357844052596400748731443965071402670157038969452785842969856081168769647762073399748913642965331810928230647765493714640758150715859148919918292223834808098998852516741066482420901320510542587920347230987971874644183303753342075111896408034598961007216432547942652929490830012920667358158321795805176109639826051745197837656477440233473277616960400830236739266807275033941928464880587441951438465140814590265538882536275478186523441714200323453650282923864261554387273286848151114409393045215894215107849623527483515684186365698358169709903687018906982502028881156115480957732102552708606128976862556415962846480331067171273394449237012077040374562276033312608570842189621528704795876591985898892299094030954198215024177500943733179237828442398367081292076147595700362442891055302724088479596510565617250156263321539216839004399573429622009739463823957477707664943124203418433273005972870909643416498756780503584370554539849300312629639768656349471388787875044089707776752138647974866841849382394299728976878567043418889518494159344615130384635733622238225019769295702809031479700192607652197797944293711093792865356711104211687555914144797327758494180877943032430125100809473510454037515645776279574808785056375989168798374792298716586369454077997377438508544012772154049965213530175560124723724221843676422862016934624722443572977401331260789706673509026977161421099480467417183401467340974645018168204318354025929475286800406155040370239238871965666578802343984087157773840717822918215962276909830100084058391801365479735370110880542070590716337671163717789394500070227147092676600659405575194412513955697763102680874380823924422634185208217180100807800801127519353890703706602878575765208598712202592332476201470697626700072743523075426334264144613473200756841667083033277592314355466836823033449938219540264238210609676563575073511190485448160061992724765465559435118234530969184176637545207668013365007415008086631249064407675721340993706675031710069857369826927218263788202319068154820680719200640355908751963122649281384233724642056986225917114005894803532951980674291142984072115558829744615406033239334143067226210109637922187496650839300512811179612512491944801528906546343835727233676478218411543935513116706753646880221906841607444550079560641388687765651697048600628820164351144109279130264414694711440694052622536373762665349756209952340326492482449501564205617864918386773200521079087392256234659035655987830794656900806628641316111654171345100318852575935058395510437942474348312304044550987260091569189934258914667016343946243495109781523064991943054704655262877249434388114838490662861385527376289174417846143351747755676752651948514917975397454318541907186894154735981290753751182670727198340895349295286659362863457508342773195020777180483187666115670721372106630828505905527107865412150732428166114639230963264492651908036628584621324628508721964085272441862031097942405638533176570668866815434023228153120181818012028188320442507047027998079686985721611738699350099144115750856730880427872682325545896346429599182343253481414757645422426153326073781139584571485901071376209369364884329597997817354300762501072052282210304361779160158671135472054535328738867842244786888265977928693490389313616528828212332155690941465725123220874096380727312666062971784688356947805467716059011826049185830594015280894065738279112079990642090978025098158286683905260895350681411311783550561630463623051519158383957033656810495073871098138863729167272517998689035264681439967172943837409418086287813363501514557455630460013653747311247881606907549108117103122835220939455179878001278723818280280436784441099021774753480511238379966131959260735401381420850969849511641114485693712621281216423577144596976264709418740250999169940009408072881044445591890434491393078760354808778955035827163565359141917920442983877470367234735485194103380204262354305865094415127118809349967155359525544096547827338072880126515885244340042167291326837755747931628593987662287176453104201044463416482824304987641926111219738371682775450485476062219974083924507163999666185215311221266866514790100418872135935001758970393959066761774094319390937771834507647578390353159651705559643483257761979857664383128929581489992219330699028701291859561229824270016749754418838078719140403149777548453291575201943783533699436933604679766617190699432786155131389991871662406317426031734962668699864871006215621376958968371452614214465802678272559232406622371217320944329785882630610065841829403356925473753696350602457226724999100218962296170494384730561454795268476425206411458867894837106037168285716874694099611819258651331337781404065914711839291235394591184002295467504191093719241467540550396958049834214043766257847389623623210872398116224612011189219522724752676681551514010559885825648777182983459857375043498401832747079325671582322433624467747983828793318444003904761042929370921679156692137131962316021048406614203892553367927613754447998237127956235084277364864533588749381523539507250065757954377239624689372386376045767032568967888845228362242973472728962770027996360254457100450182234977142664672899589352630596970063572401003886063613065419662257567643563625861742361282769154341508563165569678270291853270074146594934735571185342283075891474607457121622375914382130957403825436809105699582866959916414940928890322872688304028737466643644949606369297592895566038160711274592151372636536009327084007960197151153793330469022529383096393883703110125638324549074359528740412687781950429871060141402658348795849460387258294683370984890590266759605378426733323659343649972027660776941001022769194172604066303393661150220842527692604525662261466021309112155047732091021085643646289832168968073672082495328917135605989721847620611827359957140237955522840328242417627137169114314389969921052931495495382426190891809626696577763121425726142894980804572293437939269457852462744139469624453845133591102344521195408941049534500630309123559594734644413932552247257600142011732335566780597253066212867478043818233797133223219108720385497766520040677452295987830119684734266301767765233347879827301915489738083948187814037507052080868645028415780362213550630616755950489460056374853724059104599444739540280046568085834812209900131260854760133534560947307604469074030240796485112766116316698228987242936297046913505249257903693871810114557056383341757180155468028476237131048711477076964568995180942174742188566295718480215408636029003789242291749125881012721109383828916808497892106267627325110797404925405161471597801657853338733737835302768444682894890491421430786496365759204290208179236016019782959288907101049013715015873875498029059774909761012757290706435646428388507974896129670183260407496992941231340229098353936973293664804266181823272694034978534870360735770781272302831620439653408191604493825690379301878334663926753294466383246800558147898926892281025506032487453091523566473122801374812745846662768263063398860235926004146549093401779723893569611279673824425087927684372492453032447709244050283940102925612965029203649061865996585341017438049741567483885038757772293384728433230780535740127902636463229529954616086702158512721649588263513140615830486684683890787705376121806553142837670340080546168670926857126780856328096810561623429895148734245664180037279376678105234769982896424070000925870866191409984104944146761835920820012877304029315671278152594744466449356895413441741752415027686442598576670512930898899858567962842484393037114912298461807341276915610888212939689903189669529436040893594562832104358552446352035682053538604393600625785550254938085798421350412440268917628387777021997923756974245285747425437380256191523560429079517624522008680376042872552715194358551158992218174511555645885628718606283941120950362278921516655947397943782714261484522589976635058378603860819785894501459319210749928673024699802577726882456498582329484815420059153523430474015098897272641902136468876133999428289199122790157374803331684283605632951591301954758426116908840131453080053865089342733166293774724061085845553509072494172817838086777238662109563650997872692484392364069910426030366626988840021351450379600699397370612469987781520848698887289160071222673388438277357467308922044478558847529242505257452281231566560556237532637617071731893442375823578200983359678273950064692029923828627399993580320875545333885684989709446074630550702692809844336831899781924394898526567584559105633070431964251405305974011930713201393278129930070551263221027097199325981005836689912372709829218124718118615955488216618561366134026221933883387470630276248718881811664831036313594889337949186446859180185674890605407958967599284083784407298622730107383438915762690312153839174341389201364114417729014402587380233579108262088732950345407438012713285776510330065048006292675895505678551473256301471469603840854218408974299257370032930607054963646436700216036183111156343891805443193710628234445922262446018092331408820500811350301822070863273812352119891350888204799065812328437256763170327199699720289984739604467022167214959518992707600921064362493116269145974655648591095361040268887580322985086020518694555205014330897800875858873636942279791580695756626510743846856556199383727711816609096472029165441947377918622892982187290042188635649719054976457259160200131447508755398964271883013074772148124653298962905827943179088273543636013274482032052533931151510795678736773742106757651162293804744300033142531204593901771451357461264877712701512014199795758990022559632029970056580595030854964287387478345012580183353804590537536752274427256460888069672067140140773624831916149074718147247179362237432522227117047980208944897641908177440575815371230495975664750961136239528800212697735312361328353150829677962175419975646292361896136021853730029634942494370033970937542214109708073336693842100876355146109897296931960259302768048336688724379907367220700161806900739338011706396872278216178229520891363563306107017658556963736546757927193050856708154781778308854521437304939811385253692852646144764046959970046643564179267919606280877245003252380125078374917776727186793713084106783685178821033703852981155029839674722903475214437554392843454906773832909114543226207988999877145055093091331565953148497674892043352349951820821342125778871953923769416715723348628387560917213302388709998851929455981565910810900413706140073819847781000737128323920963349831411703991362780089722514081014209825733924778518542128053064430703120326502711438677084408892327282949259509984141834155640537436533557673478395678070818999265985196148053061040452392124787953936245364851798364532471863364175504078185970138886725575214956042471355537308797181079743067943730809898579233119424081560502189828262481203470306789133898284941179286066047997484252411180947565940828730227517137827661664758035649524069493481435502717188467268103075676206040050085251207271948635699747664555680829986554943293575753401279947474837519457141520011985851297927687235523132998976490900024548011394399078578947739483394985868123492976625582862229150714776723271066235438181695393972534686363345413508331625288089617952453982593591273115745827119831949187067356992127973898206250661928967332231316243448537596559505149450299309501483851732753565783612397340306756516631508350697159161765301320216234248299976172420207450673838495070410465341254221690580371496095635937115110091303157033606514214720525483057777357707899285829290390181873419530682916454415150238381136779979893146257597948160327986086160092415142727247407410445304510757194412165694123706954722551703717900278548867642117055023251028331867285801321493454118318298343417313680218189169453777372937991385794423352687076235639231226654361491921083772057634650027281283367414453727521509471093418627063689637400556174331717803103037496725935567607257541635696227824322445595488604274092365556501938077449845317630819649117853727862498000751496851396769654819557038228560361311733056986289535360002332992741663211628864417426080050052660228892298345963430520111739608645376698466144669068558162317027644030138811826089652672354057444205024533959316866267002111270774574513966017308652353384338321374196552158672393687701674780515886957176096399272973694929053247174881915883343896415317154509844890130283910040038797262633909907895605334622755118255984980256584748211884738853502918991817547945480671202741498875277992229426645021579144308138893359000638749202970764408309785278049719494086152588975540357481989814027574952807625658685671039322211518028110270565198282367473084295782115413343481201799027870053493888594550243979922642457279488198147882672453000379660993995895601590757481496002015069884525101253721463098522950952808644199352478906227056319793021301608606140078573978546835564235869666463660758090880552355361764964843447870960141853647191625721360666455581089839539477961405658450758232688162384359039213118349661326413072206982698523662839600435344586528794649862202842260686040094593251694490669776091595193883933822903214549173543796160022245947962602944302308944970123276906402927771080448212018764785615422057786138326293583775401863226098642958242226205063115823478102008657673428024351500935801986600823754884086666325531689908435880577201844265018078241892993499256696490855193957341133609628617980503203097661342689232943287574844743538818833209437933715720188056508613410953997898803733510608675221455595366613862857286637907841321469941468955067769373534630958652965482026030472078964847608887973762332842881198734153270547338703792713897331965134084292919331181391248769436723566101975709598969487768184703349748137846558684746400860775504428614769152122655302164158012550064767207179194815947159808552534892171187577162355798525886632279413853935236903361410346849632126753140197985079645912930152446233995733792582836843359804847910207732855079019724562294185096333635234862361048109920512837310291334607107187586199345521648188342461876328223218632113103503828698889693163768512541476467709014726016694296357814806736250213502542739160845738881979432663693339714166246540894727607743674672364293527462139612274546912495840304070742656912725393194761772646102789234651572321492049810163148761876666555685532696848518779554078754368986974695123019091517053144955012677472909291837368548072579511144616710522575402548454008467308809000513412731106331352932387488253829072728296787148514331262671608405779661218353059859253992808964013495483809466347328854199515789205955761161001062855716664188066373283330129720745002807304201988593442696717359208796049567008741407989287287139821895521626755632830116209783498380940090666182792585671141371091122110538460606403567329306699355518317084413122619447218809090582753022851657618284306460399269484310859751595875555797934399410266968459804025422542735902367858771771094022183949257518748550074242565097936240879969579234168781014874601625631863265689548146805627216816516778799742263079715100869933922382055500018092880870374579002746887280026154828637680883520690208601227906001784198193323450890124453962086551211686060569149675999758122651761925078235173670548153628440576830165667349333546759478524231087248747129559029984234990536541428113065830274380708871234353675447174265262595977951964641775118807952924320560766355743975642648083081515934028466551315236540658226206121107067254261703659370024864466525821888852363548251624659077722517837430767810543820677171917520619484169772975788106221541074315352941050950649335237078505699895326433121713632504686282680835349136874488683215401813512366399883978782469617112847031325923378528654590103350626210026538166352447667144252518421536390816429358648194931211231235018732531190419379983923826807379557626471863805990779642534476163034957326152596417319417424258725941477341923020207380649125897286993102460460001202785777700282688798938161473511605077814729459397041906968119063979324285551858272208911835708545306718353538104923924834039543623186358852901331288729823922503253418880711769653376657329786196349253531925152309804638024920648404031904543996650151341454163667562107191570117516179257325480824489052822258160763580496112362659651722866033827155515443826103262143960282973065317889426693592107224173218119969040399702297349800540235309046287889756531909202873840612825297290112958910113149920724127437307882243000428181476675555433379221055702591086850008127992100360120700168753040036932851919767386088348318238007517526600628723234564626022114726609923634296991476520768200736904912288973357629153203435362130675190543257943399461617457373610606239771149196163476294224737058837992927398405274066269272792006870110081874325272671949370431692485000988697607770374107340931193450339282425512194438657117455268328590683864221031234255341940660377758689308368176798299754527556425673831375749468836617577363829877457656439900873930993175828589982325512430322132244094562574731482607232160970237872470682511365371680864391396171954943034458663307044453966778820564753645576680891195628209970123282508865608825845151081445826999737238919065214019572775160299355505739595814564668426952709628102209061959616592570133262406552258254895714483835636539334387194375690910170862462117531527361387578186656201761267692033278284685420792115834210093230597417663028370199869133197101363848266939184451398158545603839272904583737439532853594855608798990081319470660319923089317600266246370298157475238621257354160352941138059090744493934743448106254847510423427286603783037370361407650988796288247675701897317589337956562296236256889667228527246222596033170436234417481643555312433685126317030631764821613294313139733525530746544914452534904158402969290477478366337686916319350423272210642715974097639255109318832562746723804801738642921035390855957503322757419792505638567309098508279351187354279516269760934627625048825835863761293847590501525896704982559696972812099325319843209141391098884309527567835319965786544494537222925394972346730728742485695829662002902117391484895813840638911178025006812671877460808285091633945817042669769097980276660441630847825508842382365613170995679469305928869482839632729472968020482237635062379210519656660384851887450628179863177968303526072033023448774257034713283604518133696601270144542956797357208574899814380233454500012536961696082529690101771270960716417467967778044555065144793315033195645024815106890154068259445155523417978267156262796361930813372371794676932927361565438934061865499288761237571802800599435081803245837911606448549451254656548343208276449627612029572383834752494068342651825928005142567958293605382026454025873524228119285675712574115377005346257404966341343065505163181222655654688993845479013987671621802281272630161740782432778387416899068463918921150314572817317901010484238855157333888583646791669284161979221271682538168844255078354974915471643376533348780958299673007288674523353627190458081899176629002972059862940041297149613205081097550603553368719682095351864224456034367314562941924240601321280213609168676432269081832207856607727454122878324237717807814631585477492815941932702199459799080716835888492471438648368977490578995633708222286294960013509929637797982236671556577493158177237039333985347852869427939370886511630910076059864973480776980219234111431726838211142576762832845485372744038472037418222746811001365319145036357289360416966165320001825548335437503835731647990614504732600154732313173363822398318601336232444793735022572088338811506736578269229417215570143789290082763845783758185979332356949745515594299903753542632670159541542896501090247187662023332934875679935283526060003006835293340924180822458183230601508574474929901626886434609958098407886690592271168835830409622170946126460065084347481284474722518856741554800388749268129528633252281710322367404322131342888349434809110146595218794876439050326911734921426795417264297505790203256732957982088177527321918342741497155538105450749076423201015943092156436540866090265636055294382180131059096605297647967717302683228579436163300807706490208770276807441894995276555861026701806392142158519641293068547147760113553164622906857240520121801576939067923229772279848683866909725825918678811456395436678534747339419521984385409578469722474905362376319850934612225122157093621652452376685766124796239659697173917861364045817760298730320535279010079486995352473655005742951023986078996950004129313425664083658050701199995301257227623707767607778394100257879644142502861241272428129022189077736038928127091515513142202955045566158347879655972321469187064162828477571204417340055280896634274540289128234194457521494708647497795586093178762146464853030369671796693753917409273025191038798173373057172917110949387040966952459766825388927084002674260292742403113049606904328907303650327219604686241103938948311582684282750628831125725038235730144281568537814020421672949205065310605922030348879239198963513695974472105058667252643828114627995908631339610627025639521277262418010397637275434994494086539095456838780871921390382327095686942422938777126152412674358793749329713010694561737733105464143506026751613804727247248894854850061635955684627120212950547415392452891739842975689432846669386804563832698758266376322501488305164736881629128730166407330879284784968913971680284480984072145681422955759659387906095521453119245213831936508231708620044362257027786536490227130083376193496233529181199272638907193209837533181258247801098249906680468493710356964843565749314973020142226706012908523001550686785843589020559125921264586480336612473726251986065907681961837288569761607056627155185806515027454097028632429728846782318804945570657815466285011512665916413680229746568109846368978573936119401602202758183738432494873565863920034927719810250291980460724586715885741242043844903265792360463861465721061066702079283535856137802673173554045897644284184333258173720322412364783501179461618869885424803833874845559024718133265468883386089398131529993696369410133790480851331814444781959487141617830058596831505602062851446410589764826982039172311616398460708784231180006705191492100612987921084982201164635289317279063327792824869677175719173061208797273321147354363207455261411061874822713701546466751649633624129828540323645335008794801158608135878909883222028881176776167396782130036179193789337958222419909682832820302721967710762829098166218124561720340657285862403830834847842781755616766249557084943393300322852751367979555242116438919555502235127977539749854527837772373271388162876340429414625450688024176732603513042683619620086601394491046313826252772840421344745493018424189300405476312617757612160011324332819294276976785539664672204175441842403257551833131042059277539375856214110515531398803600790604694204671034477104415939292100434444044892830082148728831771472422754304352455188154116892565311173035741578884086082496789925170813695484066459813462315503098022327895558608870888579360276495243201422161310910447838045111525863656516086853586776021717850203513097205972002747220981447594474647649974462134802445216971172525245379529656170736400137338813556395370343792074036110514674642816812336499431629981546181772289173602326461818598032615248005822749382904321860537791012285435506799839241415841008784236313142716871375715947031874759567917314619416092011762254927438928745694225246674535832210223683176315212195609011179686145260429867521252363715459113923492009339789152565137597294435790023078582608208613312906500951530466933730807635813259856338247507620939664973591104746382299809800310060003462040856715594071350961189583422642904254054122394651100907063308734485033784967909049617211331891560723262234181079948776302440945301844771606159798764656412718517207810065342047096239669833367941272505682542252741501685049966848341869649107983116685497300392773956351826214326992600201909549999120348238880324361903711197324979091874028024604558191420632056170541543809472564229689463624129384705676776063111463675619574186017691523387322252002735443175776297342798694178604971833297149101406488662859520461755800248764749191590923236345280261519762915746547923972256619125680211188703657297300258015991482925110163331221277573577706193508817257824068614655643493979924254769733085489402338274317317466235737801837647429314338835845475369084106335925517659399902091683870380014034811307893315306191315090137519742226600852773353952326292600681812785356218222039143103287630499937685565906690118165614222971870465467041399187202902132269072224852007423326994105279441410366461729855890429226904277320404396568306547772178153859717327688868459515686197382840989670725830276900621605551033853744672828935616494847550574592276101685875393677667062234490639979806901961374168361833991944963403015467936467105865062367234854178678245472497002687270242311463832491992498185459887839791053371368324396702854332195570406214719448083142686154655263931908390395065547600401123119452222213264018218903342858122459459699581690552577953474300948432372085553057475015755819597035070523099396030567617118684701905570400459333317623066557010476662984514392194787507770012533351781564208089359563500320420271576979072026602732505584252980929171798429674156269330470113594566998932260808954353825851836991298486507696661715994486595075493401828220378707279432923169614655960945549884997211050682820939757304429078422414000643922003628766603089707196873305910513788848689819401435201759434097806157799938151790013298350511284042464532266853241247590495279807173593022127867091838352315060023240021811420358440684050468636149779144276115867156190468134071586736836015735355334031340022854976044569054992332181303272647127613317178381668598260047427856019701718871949405179381238706219962017757088556665453219334290118235841502963518516260982541912139486575642647177772006094762711580123308117643899404507292445353471865750580562363180484267483874034384133920518295620665229158727661992613501612917506649497838583313329036335844307308862290420519183022881515180946699351723408817407114251736910103960579980121799666327633235648706562601274911020162638014652645770994604394936178876517055729284912170333322457997808088217569048570411716647815778254088704389263484068092383132538379163899970210885282701384033994286853234738738391530610359910940623347907691380263174281589463816265144558912625989590109701413283944349238340768633502242892590335199489170384449431975634119009810188927347358632011954663565928083240735452063303002987380275926161289096949677527427410654507483742834038395923786667054630005072963918852397609980036110741281196684249926372546754813124132666245374482023494274549011620785228793718528066759851584142551823775071684475640810604425554582061768630684100714552522541643610509109445727908769836516718802502342900302128020849808646065348953960465815607079422963729757897643900990177047571568774400677429328604207862088032252188195078824161048964551347219111538995929216329443365235610857309884104161626248315661822849560413520030636632926223638844054468905982857670666319985692082094954624883854233019980113115360789515466740315122860549913130086880653875812761627384126976180421730505433966041400277892322018983277700994607186615482924686097927040704757956636823473164183912309766331108100767346024036107192219467406093592647856841056261670513838964577293470248903222425118435433644940898888660824376107857620834820828852935999208514254707689575951666354160441834624006705068912101672303108096115915261232427118781733182849649172934383305246244863076044134427802424014293365537106427732941583318266782234592392031285019664699735676972436051568889349606517164380641059098693736530377047592623302221167238708551132049682275297801055370709033973185428706562129398287987024313124751772794338738154460784113818949669761321349973052523764647358548797218750831390422884165228542283604562652609986796666646828180638961770622998273073053218510153770986417155505036034773958080142466458820875216742662947157408720630612166041242738574213040375097734273524138768231012017120210719253973530747002038450360456783506293042179781196122657054499434989565358181865900797414606625088439340308016084820760003900111945305530624522705631829290472182278733649109233461786048931659620540224414830639447302134003337913264810047298112752543570847207599832205057547725058865574785203725202539523685870037946648252515748636591331880341229346209165905696173641856937006530582073004364253405656146751061475523623764552554274314884566074514193395918039897871258120260608184405200495703022855101716508532148578731196984583125315145887922597001833319023428399300051531429890794047743253117007105059402347336249452996956243619962171403084999684369100996265842590111390251712665116344102102982275298518988667992657555413683982280475390952996897147619380233330255844994795843921323710064557170615123876817608321895178297326790905634399325558061066870181241473606096561265806817429789210927134830848594300045354651594614561841804179616975988955069647421841253691536291243346615155430394488972841352610764802019036213282349506065147779993567394504359475666498599342560965201696196032111813895393605302882788207408109846261725103358711284985970113952980157765587385387254489665926972768189126305093678593641279237717289781220653930960316794378583157233421755400203760494706721852521663545234184043675524261827062644010949860449405662867531599724824366847119546870854647456851450395193314804631384243896825542422768535155293245576966836286485102279444006944719222796495935410436815689891992574524908974193271744167673227986612353382079371523712535482143326867699898942355750379094380603223512981778596299122152224260181005104490156392118398655907934395623697968159938045510686582596360496585446264080346913012275392857710441994641623836777440987691773808444453747892534703755146692504674900534208625470286549416399055925322114253745271921800724679961083870745369893746000568014451689776874837635587299858437165377616046061049786342522359290014407107626148217370697479106693838273551126843947695146699832917283248250626718352363221956533496622369095470009967155026032050509737103191163253006830431241612889050619082654303059607424411655308539138954191236286504304543098870173410266969600735757846912564959151215317541118641840744759716621004347932654514196894928955713479629974610873630491011797211746683138739594353634068494292866427805709953546431365225670300575490253468246101325130659782955548484214402793697300255358145488154184616387046631803917142595774496338102077850997848057929051498234885793471009555777610746056333014194531472665306564512333557057367408944909710445991451001662472968878745943791897775348690887072115097861806549185288782373504452877464732866176270496514432628568234715153032280675166918546665528464809975122446213928885780260395895257267695192743325241242074351070957342948905241371500277312497815038336928808038842409750317348596532648711072392589204159203631501369948327421309488702860020976249198246921419869352089956271517015773555463027557335167663069019738835212503039720787735647017431567317910643626910596663464061378168290883946357572880058651754309545705974499936506789484357883927659113112003108828072993313569073933622419453142788790142300215900012603198999259723184379047756281045950948108410050150079473406997729019527878204453417431150874673604527856921541675578346026232736969529510273682398904145756089378117414303619457338681922501551205536092314623916566970814440498505762091091845187982999666334843689204750364200673482451192312712318757277083571119245016973909793481482075166075197066014623546043540408743768328069278887086960038468123474047388054474055180298012662384060223799991996654281551947137783388455572035884667035268643129355273655272119868655060945184698745434367935707720728502442075655673281667992189175767218251244261670654826943458415047167027753383167227825556124972017837333237975238725628261913445247850323181549809509606533900636331634826289386698228788486518364940623674077909321114281436647068399295631878851328876033129638553776257041402673151144470647156920665829146578840099159606382614087880725268310449200714609248199384691543970170500733318803829785342983110801169366368872679020288535342132887996939891351068010402569015299081811935085356400685104889344896647730258511261294249458288655563752202304090932880556344720219904209758715031295195520558738567971023512693784526400772214767802551514988436988581977203065232150172377476062477423072963460257995246147085539812923319670620171006820169476270080583754116464516983473887164609356529548034433664993836150205221061768661344078382365734093804358179354735615609778201563810300001479133806483587908602326245166459839664985583400614572210563648957572418010718019135281102141501185807425518082175155189304719342623078140573748378433175336364610813469059265909804808486995905103090047007958086985118072748007692361867910437424044240643938828320565641622339915719649264312846268144853952384053064348023095622074082062106255572339326876344607217794661930126254476018693491744258316560717669555559553368427482006689789237573340035417344841875699332664386775064555319622431245435205222811141540115801406956321960071759441040199766251100521663742483562355638790368386905594715827853482673811417005539152962961564401898613106134679538519432340225284378722425610006112962347495590921085712547175603379235824075553051113788724440944307337562634704792486938587263109878861892819377920398449900209139152087394736779244095471880733973664120874012332229223954243980808797481452670092142686327236065265013316438969146609528099709278877064999600631137538873188110446073869785122780609105886576737057757691563005853060001341430612274928456930667744456854179672945867136364296652659662272017011642438935911098844769195992599310123779722728190347454441645242362317572225710029170060600532026982847030676341395844497486362509327404617005772292310453905073169742703646610592684723744349627347244470771008767369083193976838201709516762324863077194274071109419055134172580959362357427667474551910613924422750054563038338350651464448486757547608186593793962649902335527820330429913997051974234450884023686096462548144346195900501654252427281595727669046588447950435471867794826312983948287344903288258744336892663974949986520329028616060907307304289825423514793124133456584515129073246596211962709604063749999198622109634947757996265693449782049547791193282730305348526286360594878880745290263846607083041691135198479730546918825820795340050568943769165554836314384939747955402953495909893890030236333841140546100085443374533097777889534900821652593393337681926317526289235917867296498175383721541187001499044711257930035547183649321074627852419405937675936144095623005678058971190143487224926056492930606797856882198557145011617542675661975981085917786498662236821747722390737280784854078321344707886796943325928245316739920413801436702051660268341873850534517937254996502903637831981863377434524038115646029650744706321270646011958399748757294998003063993408713685545643084335631454773822996440039820613401816838852124758885235535935466582491015622125272874461998586997537927649260074344100125715330419696215515552209272969763735143339790913257383068282576846344824280349293478646918136838117592547442556454471616849604895162829845495999370175473513141917350848724739556438810997485571321523014599109168074692801280462745434953827879165073646053691755565918628472252959414091779438489374543143833160001057751309295084976458104441362585500906452880811271777449264013927662457923086693940732561128398106949397437521695943750617547087291191007850972983754753970991076906974078927002344424635623832374307443909697770822655986444052084038388093239243481177928254111628947729975097601921675079354170962734058589437409934930094280712157624988048929199022892686111859981829367866670966562928415490557702806858398337458748249850877347464393263394065060611612047227666022293954697552758858502509741913710877878846801446676223326711267593155789390382931171783868106775976815142669687368598458623413050648865811630897797517704369807453534150515290995746287542747547906470807331990783220441813103646057513471555924409310571593463907664182439271864069041418315148422582984096995183405848904450281991948888866754014224653985723149385335934814745230269202166181118978017303530215013536029564596829470586303686250463856478103682790173639921723368313255704639399294006290631377944745578727086490405940760788059918761340092011437683284657800572121028288112772402152243866545984766146438486330590657243615837784169280897906886750877684155817418117735334994872831087296071545039238929948826774981979655878700403675613404771271150861502040982782161159024025214389768864585623453680540499616877389252197633564418675095410467640400497067727056132810582451435165919142353292070471511607875070535357249870754385743784073616626724435900129240402376609783434988752972276664959711041605938263167000934351044653169046500184600348610421942377213923080447495365697291359496323829119137469956300718071383156404708329349592805373256418391489433344469998633361642212044562565734119261508461658556303225424636340303607686978642344440426369088026833798762828097988815226271456828051846157211011258771025826869441513282954172562229738279776374365359947708138873032572392296801813800111985622809323982926491830219822793341495139942875110579204320909530656465750852078556244721446508895944777715918501510774889605195101780656779851118250817053216824257260138106549687550348693711397546876205847471544802792788153604096971726865387628512176024701758048930782891719939368615433614253849011780142293692981064130688911654353720715552864161985481366245937567957209751548389722338701532805749580123997639415730515451337818379425379800613509464414553766323200740137043037737189330652737129496455307291022710048200945965414122591614672388509354086641331486727076899780571490680971836686946263563829166100688770590248518713202894081301280904617437259907166535169851134349874724128120744409221009777759795653421889350919460661942756302699032463131654458004302889046430483899972564563819630608775653686348729800177238969579848272773818104121253986998362994971217626852424284770330317636690192446110444665513707099376053711404220045345553963980608796171487516693414756806503281533506339858691421765991632125442070431737898221933481851731824445230641882819698506351355872348138100927383856516023785606951981113385788031948404618161309824385648947908460815784793654496059963292334050423938045120373123476005506487360747645342115204158019633330698732783518658495848488041392434467654859250941622968325213367106585858192650990151479539061615643218432910012740111334629078326224955081938928256921517108269276628235459372111875337603500948148283314227101898247206071222680507732473415012628113488472980752020718972472691637373706217461753321895574081364174634961980141882083240276308043799406440462541891065580686048060423051435120886872753033390883744369225733400865694123287919609809483773711286219513990421262865431621976669609141948172462493994112675479991843398732910010464692575526626882015053594143366809313469530295966186096249759753794677565285889028425536100571664225212074019072509299193492430464321082282998878323848824021448899946067184321278853586273909192242245308171198977340338911273820772650643788306802938173514770391781648362584280620974856581500425796416621657143295165459662508618901528432828578846613920804653551987170895839229920001612900506290659288738357569309308687353318587851053578476810627444772119323275763314638462939947114998720934259566821059500141159717970597252084246497910580714443866301711230470360552214964672513115516245561278299657424890085952642837600295888054068515816410581699200745857482514165855960694494217203995055630518548641083901560479173000286609476606889822026592031025279186016526886815294549008298278644820131871705954753869735480430203024897732157081720206263395408891692843659422862525033274362918787683901805846206042696292167183806223605906350354054365047086355374175005117920379508449026557300374219701524766167305212511028504524376239580019816997761664515161600666132154299103762996608344237069465797071358360695603680680836505428382966284241996132973354757572387116403012590176815508700576070079001442833628754011349226818367119093110275304939670621615957060243723294659844440798222790274255813823239341752076182469378104036793471662487871545896044682980647191334270776684580148585847375630013643648058229527095017199089320354125274755246952182652787541571020008506555318879552767788705945661508551605059579005316351698162838891013417618376499364875439221932041290449983467094300308979989880336638131896556673336105393860746769709399699271399790745337508617334939667290275253111521354548714285622576320097826026352977780578990271332039672977621531346843727324583932771043881342122393280989377105917063441369116040864493249020474947901919487988291846494548483259516763738668480844823252086170386743822209733435345640965866184127659746232877813868658404373440511792767566597241181098868191990081851534378395822810698758174264110041102246770988268822511602438070852185752403717992545891929724856315190025391506214851305973846702395428244133426390427838420940334212065009385456785254881925841585463579306753338418801066202556945793144933674807475033361444522306894945594422002956976632240511066921678477777114405231168855402001015544225959796945708031336698047806042727869717254198728464093350789795960368053316200020471997021256575412912960438663213232710694180373289591402791382194174909587948762055102590542366576003566049061408510640628836160737267066157117088189491209586475691773177299465830737063594589352307021878812445604610061847527672725701610332141653877748570388301921480591989114816144294163662488859026827479943702002032225020463027577136470052238802683615658524246412897337966727294161588825530860411366195967849294110196135273336971216335364443136971306934071047392375592956923056186937290704082519283575690689134644576906115620611604212797466436024307240665300156802921043158834046686969207720853210080598562276514152230317598854794883813164588163776824152281735729855516084431784985681170761104551548792167404726608820574094547084823415140029069718766642680035530913400711146731688820205629315421240074943104637854218761941169087375597020221985502069200755443744077818222337155040208005964946264593078827515778734418408603582276207837938642328039900850359968536843958506540790555144059964222269971464625888339456198251734011794537961901343345984856680524984827822421021018612017971706277762229920377914620419575000703653333074770279973402602911972434485017100826938046168231580740464734680552663927405764125236243171579102273816715585422912433937937365597352138244841416020633255067817195228129006789746752233232028745406547687987779867722258663723060184175244520605743659008126458815032409668912637163121666005568667912808711279174821012716277713539806121109327401428243329643527887896668399041891444688523372578536598274349375461932284757308761947977803492640503534007504724096802893724893783951753734788872386989249108676493687288766717417936561864846192974886553448207363399633111238227029629705407211090224242176850024597504840735826184582679200670251100004224388232403040728541731210425037052274968388595171165430170664049405103073374225025641080457939367414275218143807718024770931437520850762659252296356234771522636001512772441741501284686032248000481825671388561215683748902628575000629040629884843430751910728140600950522272698420555303103959328784352694191823049506144221350116604681914936270630536232231575673505269538280061300561261647035941609015347268229563587429473708791235094765472692448531738351812134590791817970888727817062033732812955689448364774227367008331758172828865911607148040712221774617835811015623774920015649268098869879281551004513043427359450077849435258315643622947823035429224973341461719749603235499297792815258836960205768842684140609315644770612487643517281402037969135134078547288623209563169000256516550337136987025597446693039290716874371584485006222117071831948340476132751728863024931010218105184397837224350564439977297260557815511356388279687318109576421430573649970153986116541640512148847086125740565212518605129362290228667260337340030012449712491184482609630543137875005451871289274498008968609835476011384500088887884381829202037241105026922423492352845869567469521448528716898365443688709884339328572172968893213610995067180906654868817150567023176482259350291636794106872332238489940744282114130695332486391003711187249679217347178930458957192703972519539912180194947717348291261314183333469103531327839266685612481517555020651771414454545156307247084689051663940558953204927942209725339623794999031891680749091862090294284857440914765371997353218009953482643490061141214887253460154915780984932850485036379123909032035650357732298695111450369387641956060502297312823782806814645970510531456843007098810934915448983053418625576180778477014329113045004202118362546434535443902197948106113533656266052080580130233239936126152639216447086883425263292430026291569493943311639275713062083536723474241657967461426301430944083173494088436487303367682518248575276738152317362678819434092465867263889026015092738336206223850231480233638834616317387483592135435242038388796566434612102617790810825675585861860785810763310671700398900383009167490189672482754683741572185882062559085847194079666270842436661612211091422766474710186579897486523300203778123668589412791739711634774762154677079882042272400632793241287865240342888789764539468227762860361676086941424749922938383670159786582551821467629806006157443169575193665904796837528721462195475930743249639228333852714054723602447827276264581680474651952607851017554612729218379085813419947987273242346794029803559293464127550240580693229251797345314739142559145434166063225940620251197962735703849679577129458118751121841366224740341174820305060984136346106333496388960239661012592606285900105703889045175703197519126686831484192195324637686400041916806388950317905088336811446761736775510434464133002466878858294500556511873457253534554491885201989994248719617846464115823265502181099387883762444139103389071525582294147785330474876647782691504545290273785455269989430475391263902260931234459875611487927701395866335114740813339622043475275122664521806507109935479489287441868598962389398299548998182642799694938635617798062691230697509681199582079660087131701902034311377688605533502109320087604609203018790825824511334424462755249786989963116801877174643150904672006092785327675359937943188233519909054963894357376459832527960431749753435093927973261118382295967153045406029133848834930668995588214812160302078298691051897802677640771856321622867294318613870064453324540932774140077315079458614915435405270291583838398860300795450554430884451649682484496137312192714590175919782810494415206054420544257021857739889660439180469294904338482485001665934237037009234579604636728132006450002057141241640992894837432658013685822070605483872953991953967029057559810959208541554075871748400321679453342836094431688376945863412684466618726165383010735423420082566314448628620158891873563010366310920413745936874388804346440576463202430295483179459120803411863943259265541263930915680244416830318662761073740323675955323012091911317737558559923830199562320644221310951800468666104956598431251369549275115772486199841427639390550745532000543102058358621169804274872113019230650505829528408176370610905963744213369132377111141560680553647585578558563732630891965546741507616479345554451428997536750872765327194801429973150177367231258324518222312998043829068122944160541741065481985835079261929955373510426259312048931081149766273741061625115368796421244474277051842573410921645310887343158650184899420214127091037429446073674636429103757060127362766363862727248410550174782190326116842139392451263516962737252152876944000889207572090574691445049197702421342522497102921724201494519322953643900026928000531884428083733837880866619392978898990157403489313818686943589366070932649660740614160981401592213376134694585138248079801073917715614350913514933809235047948846532038279814379060422870498410979888187410151731174231571199871361255903233434134114585487054456276400728363832673632573833712132750874243819615388349109025625437111097525780171236461110137658333965077316233870927550852346402471755764645291493168442944061174290482125327761191107298582479493560435809706733610513083611660177713150891236260594507847641544859547165382027848664262211543348502781201148198756463149525086590870169031366068404633797055927422781975421822663407198535187720338947508862511413442419667047999486621725378204009134791343863544781752247010954175421749160259178661837561053832136541845290619540516081318362377914342090187636212731080540887030424225494507813858408657746345621537151429706925907945474695593664655429275791766894963369837423513416639117630897366877844157043667238108965395848549438151859289099565294315761722277829031934159434909277023402056906603674708125861536811962903904549416086757914053437549442790920092820256602640348993292631982489048391560889012670001364692062199211534779447891918182171879408822740077624964234468446773048664930307023554871174683556134635933254590422747962662190202465428652455650242639544088214930676491261600355533610887263193030936750366739858360518183406361699331995378737530368202412128550298785393412870124431211839491927674425569410118962529108240653648686321698653725796477903891033707167057046638060641505911875552782210800313766965811843360203096938002105953443182645845284001078987586125412241492994604011096640298269552124067643704085415202661096571682428153583699763581706043328015697379279626995447524664752201982303008743961790341880465654100193736131511219099789563637183760062664627220975006371986881340947256574749752347937519243890692160432868205588092844894740020564551625849223742472474212884666692056459505727378150301868777726748225483870460087728772394097525281851811624068553196326691345283506149649153118809914999491592017173386066050093750225387502524751256446828261309500476872207163490712800138859581129829641299186519310714252663948911849939744522202955701245305817712053922931119434303620964285266492039451206783603007224926979298712655493742590505194265449325244524394432440836722338677811449035895660409879417350336749142610692981339673436744800371129116952558355410638162996337093472613150120540239375376155706667274524780681966416596798016816507352579315562339387079208032854971323460899609141495840308266568511665209342945612423266244883239652848378180660728109958853243428520390178643596967004154179154839249512131246904627204512469274307202075729496887124606693963830004238217857605189925839869633583135825838258721844599401353709823144855929915708727382118218920086093510327632494145884057789392602715659694084781508789064809230992141521349930906666389588625056363076699842665558355642828152152305292122666304781075098332688227661728040693375198906659680304164267355215291411373597866567791561087884383476653096085514971020281485440103374500137560172265199611145413125703135999608078276458516834784013381999833590005328354235734764265022213718954469533729107202617703327878532765624774889676436018216614919378776036364057244631742519821601006391929757615679651996083966063454153137227412997161836514271720654428051899345555220157113049322019777573882651326037040047804179598006625555552414918426221394018878798652124311024617445911800520562046145546624361839730964648848790220752898277926612282667497233721875470665205514632431929292524206813859951634263890425599132243001576624213062135366140740601310200726319288345832114646862337762762344118609792167228340802574768311712725510929652604865850832739433036296893104326730739409755329372131576639034810937220869795846519695834148879530966633923882834521478857078150884527224856668505876830600012336612980358048730582264057005017578618241709450728448680554673622237707058091591494141201156548538193467109753544982734328243283120067085370631236169854474137748691907940718186271283450231551384443960891715836399138854312462006209847520968264163784286148357057072388690279988105047812937835252640904991046487137808678718611103751836266817396865388786129324772377387004921814833640395623910406052009886070731436467177816272690305818287177182408717750169618577794775141719681408126604539715866191636479887324902349710885950742630339418445219243324401585404039104103266754951131876635885359220496286817873690343669357828047912755918260461539744422026617906260002726627394396712547811901625292244244586204081360873024622966395915248939174349620883335600699004684859527793710841386734020357325996578484252464270106051872881606986692025359535120434050236604800761682934259779612611694394660729935923919127334457120533108069688587056887184894571221263106693408608859530142263584212920730176706377566413965157274010515348966985093538138722318765495933010168234920559016338053741370363266299978000282440270386481539267664907705640708298389522489074128358143058624751734399537488682758489793325354530835656720222903901231924193335639247623150931782667921267565664058305028176368705052957353823355375905661072731657286131593520681866263699161675860064935483166210450895763266786607919392631589126123630613801565643844039561582610629286037083018067247467453576377259841892080978326297689550811363648833111926979381338337585913940327358221324434112543091256286811724585951545176239513585253992730599072906684748627339190491491088544765531579108963599476011461491631888687982009089039830338537704456418214951519380401360162947458414013248071577571631866756227683622743539909149655278762861421433439980347820365645024475540507273154132771650693100006430439325133830199319481894950317287875638033589710245947114546957236094419900598240455147736016731004327040309266824807125921804102561930449272545307308970669336651352211661470612904933450742054852746203529822006011923756115543911489966512883824511153394075370409432587357928901090933444885200692889554324645945354842280253237426729304779510565087597509552085457398753909937420121067468128210134171336432024045549080788349091825664134233849215452831351178827865626894953394415265953385642937570866001883122615446295498228253262025651280820577179743106441839904153546344772574571140822636458807590239553926762043437736184348184866754848143536102857260231718675906403052522585148048033723508573579453281390406203573588856327637481708301463741925509225153303631459885375014919506348322388542351501704375373050527730083983012171291038229999582940953054568003952611265884844897406697625639601860563417915409215672609543040079875896823044526665823222969101394377331942543309687121399914434412277902918637718366726870408465762534251170514112191529855375730853122159932676542331210183091500296701089632100805231663578310777346963979779064027732007203856837695401421224659499686005070430920381248803706543425469714454828686373917035219933576489824621915773521157062239666120078979664699834720006415490117841539741061264515411622892756825523198208653722366995672694416378841317834637374594890252497725469428902589994799788665850922673652511165383796678275944662483873296301917621958901423521527781561902151030180234101176841076597950351377402194817654533993135732921957661534902908354573021781010275935853686595560245808659206048756315749515075831937254520123694673075819901216455189525821725090951398535244065365125381719098444367392817364894000046478357538812057880269143463069668174420027752939191327915162827621497448993905627276284611515696275319846165932731643958942926434180675625545634828271194887623193146251169797897951760814902054379543800675219294660247047972956437865626487637648192891506754045327770510479571905882370748087635251244318486915474403813319339802160805348555332163386204263875628473148405001782378762011278308933032225910489876316713917966807918083172922622691683416182217209274166429830361050675018441400259526601542738563903030499063230827815446295804622999941147460465024298779532180040446011446210740360480755997870186592372476406187138928493617086025188556987521193066114535204007879829788686655934349574444364524355014492532020169926842983357412286887007624936323254813383862457713324541964116104096119062227431092357285742511728397964636192023578624231785873248443023400315710109297829692854707766792054193586098558486550632179558047910940180973244774249295859316273090053124283303516089150364861467642340382834262991132470203432882264848881517806417126078997717624284427510181677104278328994578251944053390777835672894580636932447846027927227353359468687956194300796312666568317750398314711150376807812174283616538628433907191744503286652261000917378765284736005997110053987972045555927666578311566548659971699070072461972868174235530569818768400182593547967733646248004123473877854186597794178246970965603387208505677266220337049550875231646607544825970777548033996170465065202016972885939022985318397901824617898685690940729614478666386567762932647922098678378578850677454421976556099300607282746482606569215684593745563334651153169524178861333141266475302359199975725745196424752258406884779276214118518766512961315273629276763127954064072767476971250429049156555736096005594072778563528169662888467823716954463581985667624962783531083899792347696961465153137052344588394194779461218735157895379873771447269490780562485310776517159648265242956642225350010973094347760261325371743349507191489969786071785388802694298833006914927621468039378706361023043494310002647397183936817334629265577182353504353762242422813162137726436444828576196375493748063606222915641078942502727755826931285579053127534301933812678473445848628444412660070360341075569089315211756960497381492656359249382903857224889417992438815868872774453512834004253929263128149502291570774936964497418686417990077770452984785185712840659417184260920602392617717832263265058366047409830683592876413220996066707828877002124912827695993054568839620841154709120513432020652344331488726234158872517529811992452245257258362095602485955357896752038966117516470176701782130379513412194254410064826821563513872890468689055112138121358776758850489942215600728310541126175298303485253336384073389544157353783466608912277561303489727858448921364588466724638863382420668858631905701729866598238638618863489381544177491777565823048073821294603511940308842069270975235923821695385044122685422614246641320100404542569566966805723357606769917988308035429120527709026605106611277016189367239897596285603439153600022727942152471823736339114833233678102684652628929201179183224150430332187411961569496390699168794657249335253894900484224167312608310967346825256035489412425238781535968847955743394535925744002124308629891440690098427789968565020626182476068905704479372955413929163777952080930170017612450928320115199633691731612171115371190779610413985714522848786397527436330804868862840966923642098245768186125857175469452815071592473989273041043952114373447867016061586718345943695812213028940929952496620331610604677600892611613239399476038902756049634470595167870489752411519492989791818618182817912359243441446814684591090554777524594046578366555898035811982041031607921426413143734793095847663659765631475032917064878856538591471881237806901051117578535384064794866545562109071578912268975493312378820551630084504082008834759344313758139833832328135155284917600308744550764253503736595327188900375233799907550818848386232548487120567732976035306282575432006378327775934109686344211690723319016303502231193640309508918040501059632506342826754614399932073310936867891896328853505857742312643023581648489768386918735691113974409437936772896943141755153781001200832542623233626611212714161195492811255239468599647129001234970096165532371488469800393522496153949855670891140523462395574395223545946364032879440497814370769685734950499138875413330168872012669014061566044008582973062201047547131502984291549293912931645747695610410335172977522304671296015468179624338624030682229931915769151399404956131981266536643648517943062425592649216865906622425830513922190873517910088208034651512373927466038908653787848633825865444657093507165362196324505790356229942973608181570950550435117512480096956055859640306764704865046577363909899766810232654828371627703438611152120332341433198183487488327239837574494716550208916592760442415363975018855267022429870521660344954717494638977982748797607248059983342016084235945979026547175588655887961238259677150306600402127468780587566976062541813889641569540380086981709463260500188921207052392886431761814674140281377062945620127140463448358395870156338807447651449314579036727994870278049343734273435262719560977385501377883931819581034988918915826206141226875765453966669181031475521096017307604481408250869842426588787259021415021810782550595843594550157841664909037322684265258809654025009916724909455839470171692716944664516921867238916445364417784173597648553134415215182793128151006989949694467513711731609790685153190015744940244632353124314248035582363091931988510445554583757701093751856456388243924273203181324460350349558310938175730499309501394671740747828617965772801299588981155947628096728042660079263400821058095950843778880994600329840331662742994376758296401795352513738929379590264062738041274623765789613472400477072104368063621051153406178041858404724016157390835923542364335792620424287684548810777276085708301415808870041839111527999568368539247493934003121484251762293328058641628258967903572710286628273155284658948318749686092568696458240334874786210137070397792611244090037624414083175504290960942021436550939369202829822823252486702700851532275128303764536667531538649764092841470672409638391974964690995614557920258030907735374513415935355738622669875515166385069821716755300678970843310065232498309918138720828204091744102275844922477696763025782599069535274905905618653890907180776357173104192172466783427230941499220565071158132840786711755152790935894127477418696270942134325808034994800923144528874883143834555758060696107491681871078947826889836687029864650186989480272651145922594480462747213441400134189293853086787220046028405787787692146574765975731722966080155266531899072627598497764738961421216823836367187263029966403595021647323413757815142567289738901607827703705545438698972694682798017770559552512047078240373171193895045722130202713432479103489888475725030862870777758653115958484253009662991607883492831153284122112157916948489731545268971628597714754871164745919194482345132789997533694343547034555393567563698168561346024048826634444458150187373681534554126169836740595408528343515228180156124155899948528669954324157166970528110647117641630961223001099074693915222999621294355811163029626362461166353458880748537730049268706361642268000001423125456957863753614501345193342797574227849913717848358842608932951020913481406191463512612697421719549836858228779580785805435320586096584385830458776663162799728091864944964473669760313032229411173054480447264794291051852715871141898420413606491357321458537043908995131527131389561180357708234371842949725300431449984228123776860359595922240476781899625527768366421644026658221651106595915444505381875415435879428676123284856952898515119875567846419479730327737691483437549086018250114798672032386376554132932085608387224796323533451221535158915119077863398642670453604335577794446795120839502077687240291032514874142974204844204817064921342752934569840341974740945520939007678962694495232035208902235026111354397127945763117308880374773452713757208511447127737938187712319532331828518092045962419680485445340388435000763003517717061321347986286395090565633317306043446434920196811506052418909530095275505619538705409271861940874106723921227835441241199219242475404099396760585198276694246674488906078104864697697228165914861831633073812999938564983076563313282495343122881717069212868461950229699924028537818746959302241407484043713796080416312437710166536533386626515089911571230655875791084899176166567508760984501910836473437537513458989431987964667752436442433723059451249219691212542868390004544205637263146946276659955693925173512301659264152687141950265943299799228370405469600767715388700555624500479132036023296166146814079572943709468388626314522133789274198427229417342436728005281220824801876549323293756665954997963461697930766104676428923614292019835229018659551447027140438656806981498361726377649273456152987450159054667015943548191672069089955596363717583577241914165213466529670681588773508347056366607359288544426133689603686107405159168893216366612248138097003578008225583295319654236190201630873288985043236164236341832009945363624488278063512191975261761151545302285555182564390799754542325603682120664861524244226107467387563725616739174732047131919094381814641134187772076230206113384073457667653732988621710943063727523260037921453441382109253351837960745000086212716343322408851353103901513101011452995352283365993682534122201003856889579023939012018990337104823607272355280851714710825943830032762413382400016358194430095709611637993118636563136333800205695224333171267250101632127921919791696252498814047407192812996574054479705303115432780426753708504259684387305605967787692951394578854406546174600433628672643073583080094126748026382405831006205004784074013447179693645080775767994503739332177150428831815383814292948469182689284103260690256678571003011719354047496174611914958039991499486018312477357130749220091542680493596338483028899268336933906475396930862237442722368872674643583172664020298079832587097330426053592301675654541356143116387835915242962968048673120639181285738124916348662380804300772827776874204932915464457600973789526680035790778139979418772162611238757051817569717044620164501053720237626546177605062967188955167531507464260661278646878875667039682345246687093800176098373243251164940178689577733864555976744264862253302240403154053842243995576933095632318370545279591998032710534149778909237249141571253593394589118584800789239429105938848239462711038224858077887801416915570695863094981318470749860127647850186602895356474568285850445576780837132535117084725670425245403913062943274916777159726096261794417229999912875600113118813326372922778439144014293520094283454287859954732411264005918230042029286923786799923342063662764031591643383368436458657891904260693383746325612933285157330656259592649469510298880094637250406509225286233880809212115463480700229913241383053339509791123132357161194689851068622082353795336906210248526755768214992167083769436016745872890460587361434405817628487619336975822625788129932974903917058764139484796163804954571713676654382930622809732328244407485762756002776253149947015019226943515438613677701390084855281887223488025488170222622779942315231437178622112316537068076851728764514470613921315618753402329147492547916314244204439850695165080341235288297950527915687462774041320006556002043858802619820083238412556621210525244571679664226850361053989501080593562843874012408813220909847171000646325767547107200983400760677055312577672896133772241159888041520455273349730392218768690361411539211800204874974386739414268174154262891533095480146915334722259726727172488612002995222816461428767546289317826270746081293845217723595702299973833238731665306816007975095637566889790903474108402796029169163044375957350039035728147168392842888656785920722485104371338130633142869139433238557025068556434828680515050336369880038952528600601136772343838108845744944675663053290138021192779313319265311494509781250820981888356404470309329051154413406928492284038491884856830673477860717097714962006608419058068950541357666946092403882731310094577747485844699745033177338582114523477387055551265708837239099942922014452021441061192393429729145660180194646615199106926363599422027500074567802128518583992777219289536350681701294816822812469318744177736225628432827809066847387752406395367449239229171598183517825033616790775987419594669852074673306160913852103794915703665159273037461848773774315616245060241443245830110189079322088774030621293250353387661662732828689744397266592570404478465458221761054654076250989435884817541570923275949533893874177861869168103855995268459354215473508047721024917324248318999431042684595291864277539166626117768847778768306813815809995612567637706657558133566376974319048320137012504584358237078816486252494867722909113051616313693149799804210505969124790657253684954454012899028350858840521638787648976187024215662546748130661673829970035139188101287870336613802363590530461915144517289833692748046235183567720430972604180984112466884018075710064121840305667674599202931266832338951963329760340557499456052387228908081060141306133602129342099736963428275470290810548526721856356056702151086777619404550074508874398770285094133009754869835760603116957929428442307435768012968987853799745049432616515079601598882062683514800520728793671498700201693673787868954082858961220192714732061019340480310472315854190682037643631884472441196925518402209677262584463424863837952416929597853498629365568280891363484060000931892792497881353634053636942534946081929820734431770990937560623253709571010434098020073758338386472576054392407934087355910762703764023294714281489338928419650444245512145071416192582041327882083719122939742780774301410187988844558921843503899236272864781109635465873201115733376796633019985851103743772363522316422025857481836348086439102212003625144369348636785123438442093105758560534922849021464851357986551732856478932325702859530731842733121397863361403082962971135313410083604851771221690629943703269823436502844450430012351686752298283086776153695499116158223935418126202050221157547154429987264525337485005445998128245864632433575188870023837383345955663013625869501900329244222354629793441160694164566598094119631971819238205974337421181758970049579702842257304693567178531879512896120989758193400867712125512055188361796732931167000942526736653175221077162023427627236037721175515380984319065390262563873324106209642188860495902164160075717944786082166577723017222431961316529645790614064971914192343860095181027362060976208061970489202291502073162341044319089700806253751396377742058154665639148640390359188611107570374657752354064522701185841521992070588639816266156864302407281836506042184779858520521298596778855506172818515143887982026774580404467133770270800749862095875288776693557390343548313235863148910142333185918580819534553661810972205015438182881022510608951348469655489530227668711798341403482517475232411640439115037976449251698705626691698244110287973576689616499212287914230725816104962388395447049390078504961979466343097389465812786678664827668007590357797374835075831863668486731903990749848182833041945919630077016185924163994740774454749129772973146561423683813756454267863353569828588911787823038545539479194815529292375132198328516893528054377087391396741391232068913242658699723324449579336901610693281483075631452971347330664711321260073660717561588918734490198501640979723185280449777955768072256073366718886203681874865957297662415843644863019988446832699435963634554605392706034650587122556877003554410987087652478404863627679362883471642790057929654521667938008250219205035434770477917689661151763405216817054332924391556077072129198787427245861448304281118945218234920091363606099012136863443185517831820220566714293297060707281097723814763186411601239381426373435213743786932179056092439702348343344812513415393430336277695867946284193992066847703241564957386472875760287719467076525624716872904171835178618625126444454769379282810999617392373623891542049134465381219435483844007119907495139211214371873009202895794110247987820018486702608377999441220972153601409762430085963994885230871937081957951246505708897919391377120932725300226137410859561459999595835627344742454850025353601767231575547786396525808819225693094912743187628798079607952181229349232874459329903569269940454802756194484831860217299404790645473730292010079043105961031195368015195206587515836380375902149457506298700083324660364149172619930265484496429299457559364610350074460691270172251471159619862365865706436247413114557978541606743625674178202980765814642185354778883988657327900604442836040067283186938306520100679212308474830041187807619795633457700000305179229893312866449563835746863084128955051179675365803401051302348645633909222962049209051043190212785453990565147165004529962664837232423378839454995066293503682956730064601093663672857987420040972546619072933374760089381788285514005071048883990166388405480665832712958925493770798566198511167156391501092985020216550009892686686723922329829257126969969839850922938364839797721996376336877113832574236641046980264213135927804485189804350357874120011980616314397863183071985279865612196246907441532779417680745633130026673720907845894889811256788659839251872255231339803661377596943142855788608260469716982589019541359349960160520758701623868900266933214884139339722891423535218096240887316846020953475132487271227962619982020058821933213984933378100555079925835463185988944379873333197442697681111333208190397759026199248223290346429196179383101875461431661516995010778740276882138996554385422335376237044096522579915039464079410516601491776551225021801620926574152447864647947862271031628806583996970663716569928072391078016135434224135681089932396170176095253426129769428912706224333472712699560033103868713783648020639466518811587900330442004639123002421590296229584058265547973776044709958656318494628165653450122718205464158970512798575183108223510991519807045927086323073489615348255845162944306774254231024428031211511502691500280325013863905766999565072009578665612439533267211145829910090110216339029524785744551032078947150803084625948274871334593329536981341672614369692295769099335251240717303136601832764534652266864492592757820290605689880030842427463178692246360634609270526502759433710104149182402464647169588799156684266596709878580859667282923083746099299694062238232488827702811306931440510698698352701818609504384384276665772771846668993931951553217793196461652085982629796138035264181723835426163994911063588437649735531789881475100306105712802281890453541053253206221389832214204820741279377416839075266261198409498897729712382306255306215552528045566095408977748654117085388300347255146562363514029377121185749757820514994644810882533904182694875674391334821782643364926481512883328623604735177909156124799348715768938053757224573176283574656417380691702530031162482946735122597632768839786472750250319830833932883234808488579090845273801817560161394033912563320704834354938762925911750038417764013717155959626014437854255424142478857847557919845139137898933601667007293174328083742848081704055929381755823541716720507324685983246981109117823836688575490707834618514095272347858539366787963580000577032944481347715205943105753567584705400806886528333170592529720308118145240760048614758517695394794928641584103584790995462200615657920237506332509336851002031010466879025893849010961334902020314869366115875257837475055430171404140552013617017874120378876856701217602415034693165328098133337367561374208706898956049493229201253516516057938257262719946988247521650679238912314424750860749840485387415434985216749289429480727878405276652988023115726089606840863990541006856667704200337962217007828616584582224994080522968352360892082316887380057331465544065548431106348991683454052932603334059344017919051763476807956100779216554859036719886646700106218722387226061119630390364627218065194891077135519041401021247223399072570981779785074741522221735949651609375564147486613148329297459263048028249547992828703638683270206560734910071645666884931497013833118529712398519113585345344804804209438823532301569243511981393844580014323254609618495145503940021980467217966284981064465944276495192477162592347237880787486371397089607583660716616122101817050856110927274336743250650419045167090803364487874184356512120130836341470665686872454051967934236319335997644986156007792718080368185023493263013375805655759978226792642633311303474218735168660166635787478090303319107025834070333822565021977815108678320536169581721453411252037507971271811863522492339388001963866094896734728435322825967157850282772367618334306534739025217861423423316610865850900072305684014047164471587510698256275939497908750099364347680935352255673966608094149541505269597760252165873547646754545180996119804389856888620378308860284197002918900677991961805683784855781785963127961375189044724963217587919384859242652720387972607314495121438550460090468524366911715984030888571084846470558376708383630941225977422414404035480759480800777573168360019554553306373795091043564807170334596728391313210502046994165693156883921893659477681740955668418754142554522985627513321711774226290068541459935805761666598002464974713942548948308952594687899223144186231360084255024472306809957314827658428043280513321314104598849277335246708609495289206017877855714234157527069182854237207841192335647859279910487685149252342577262413918023483943251525239730632347015524945768320105287132113807463650629995192231517039428042882707475404581750125470890555203059459923470650201766056319669562425959178878536958080624801240889915755359749132934401357037540781289311485049537957689571181034380061801476407918815153618062021391373797404949870159459460031482393555284274127004932638785270431745380983610897041744222110064550589669452409408414963852248484830086571862067977236074605943438266238867401110444971994949177564689868089176487517255619807517560777234601314563862017480437689425840491534751838109300589991603826139963633023911604007814795553109634027546572738248866004617654858470071276709475548189964935184007388695959046410091401254066104717177628005224599179519544803109302367730829284962688800900161572213873892010655064872302353210736092861531394211024918633474811183673555359623951840378760519350721467298094668981013775623203977778513425741928254624159721313023430606201781374073147630399082683632920647990690082219792168155459210479879435268076753045303256993339939913193479543936368297609288542201239206922034413306489336031913047522657041184570760403641201169763581040473703670809121117869460535389736379451931209703557741089600933096084713575283501695024300610053813820212913748702857860076160750496943543895162966717951340134273488295153222357734570983240594068892064207920605722114728068025824698412047064561489940110294153338704999572686399272820703454796673443276569665631396782083346481375591220530942923992357965476659477979169081188762197867083865173017668467976910945758489332494843838618941560890101156103440649190800856240597765838947001566542845482446184826447569776293647940668753383071081965304363065595932252512640436325316930664832443579168496460054934304968999468692942777573298786613646462507186234764631633643114318488923202434797830485904957061794248433743184982710940361507369604640654993907588212694199996747827181911355400359011679442716768959791457417895639195499277887097321882621854841627258559956291347068526900463460014636566829546268042222105637051802185286652282375490365250144073862955367142961575387504929607892135801856323369068739222842526421250501659397865687124989807307197862271355439462104474688284057646468404018804363420283213777019474503965768309691690282393926657962628088279884470405486748991231909580272074472879422373391801817007203000570157159040734350987981758558638885013403501282732569737956104809937573668854889842133518747798858022679745965901590179046297876889743222615485049659382825920843905245849968334713929836649975282869259486322917838925543818392661532963715940367290949973203859131180623007943339345755561759034936063623527816465360298385652686645024194334196351970564412356877057809849128056538267384886947491669073201301820724346235615034606823402226491393197733011986754827338544730856021869966607606049975483602840310087118188131347091965412641394785933734595384651541343008019510663557704243099989713770757857552902728789625665807248990058794191519026800833675828414406808780609979999082558360628016360351947730554664404631695574946026607882935985593247896828730801160774436882501541021920151013317901784885143794411572446903580801119138157537798256774364828005662250445573462706019181476485984707573827095329523403397304035651692017127088915137493704247861195064213411552632332203630269459250027771592709866867399178678400287541293904018723090602086548118417338962356467204431354064168702730553933514343403836129633332336342025473053077362049481060538224690764713303403951082742343407626198778103156628833157956473865320195773062337532879447763144729224985096682295450914060951140565423996613471233230726087737490884000199322805530658689116297712234338223805279349675181138390509653267144286372044571450776048708039722913922543825898141478478623585092706315263500932487094209072204796545211882946967326656119641385784524265181363021447384677199657812770789762195386051920347167968336808915916185546940900234060122389709672891174603777294401393846013227389122329860257715286300032232601551714760730599108257137490688780822142558538298322228681526957737041471680985236519261174701043978386982373848549865034769910534051612933834672757836272149960639638010546810890754397128954180404174382171023745957038065585413448757811171131013267273362915358909366167390282640739804054473726497755527396967469133491557169012942311461066777772430539764516228532425278671900380395749106119703601378971769038909643370182034712304456882755733402673402910884750506674676260748470169694588328049065231870567661230791880440492086176745144237767835056534610040420425462938308611283809128995079610574067422220033728832682236845142446536691362469259312213969907936773974839743563834239835494683063830135516891037936835036859506472199943826957390852114197304726105144925597264702869577486352462351380338670071375757021356608703344977724086027576783090012230607264664564578288704114925946769582058252332656653244940844118143226298737609591539967907119718854539151151983866528986468805405175203611381967034253243144120924890851851554662961158665724907068174856495776121472058255112054531021772712576730587884307318218180515347258003886297690574796186263597542219167604374237683758848479393222837983489622096979346574879701372969009423762506694782255589769255660667383505765084668814282944953647950133704207846345254431420393597361600903684155565142007912590426029973509283057383931283483068041150432089681935840839367720446592605461632037543985967284248340951036963398543897540467617086043313232173723857772440961471945772157116947734912700882054889808290893548031131200662277145963332049142852953603442238701153124647438033488324726163889548846770116272758567056541957204960219811648486681345358982888865533597225728200250501751212972187958840350236490290304508252438950177303351193063861859653110610646490549349167920227024344304749702569215602699308622818473793121247528595110567786986592208598068051372758439941169721219885347687064022655108928782869298922474852908971468204318674667785082529471096263851586426410426148763369781181401504119142474839257176742591178075171218711809837707410219928636381192970580387047327699717634504327021233645900993028727827382650151367841495978406727855464103552063750093084634183605758045365341443486635364066345024720616890042888483524172436378234262182125447202721711190324406919897727557394483239144803763321993045271588439677497819549203882566528554412809325028773349315881792479218570616874842101277436355502883481956395051398821732892275663393042772514238925640944520808165403082978744506460952546369956819467238198389284830179841170647112927210382940905744848118115320998637464638343692330439425347558716048265175442057329499084329232769494802340528967704986891926919936014119490978206648641143777717823058533520193461528444878088243172708148457379735006432283312976961876986279586893805886729786400918540940322713530895220780662083646155687607524145687408870732251985181788645840381001098899679803993161232846302274241867616455476041298912021082376475712508376287644886037837021011813121662339502416053823654969995455242984807279091631957890034503947137373911618679992765177121311828051549992277179545479551946642457424058889616518238066847343030884675514027461769272826490956045053455448748108932195284327574148815837941714002392833572319785762659683902509614752545684656965583615619759973756271104772084568494562360007200780490586312094230885310518926739923985663818589745764240411496752240370543544387174560007880580039846174755876122592967059514667553193059810104526377409732945544209536982149725442188822062685598676554084534972044595745250761683437219270501313542823797374070801662079103607304516641501470373088230343267517376241206173060756380712144415877150177418769203833098402652550850154891388071324856561279230656741116473448132762157190371409593129040612275343867830030873709641234196868095130426656612154806255926415850356388998928365876088979480191168950349007526155531304185241333188045239643888856512556550499008669837160393008828759276496806612939659834478961468135319028136876562575167240028799765337929842762343015735720455042648318643572195159285639043998366126136581211711131720819163317296606768059755460482094556349195636565163290591016916274780950671478450346598468303569751307191310059462943583655103460101496229382438223410700170389446366244714398472032752752681084619114436755659179929490413157681988588060346274641057079797000768484935065058327089552278578546987594880329454457929895609322816576196176577243209381716310393387743371291460574352183356298629041607493800238563699752542618099009091643766106442695387837105365071696213799572310249031790459446554470139561007750025055813678086556487016272034746409594255265376915406576174922206930568008099877675402231438850103356469952014412968536559396023432270114916601101209256314560902122481754050852271258495609270942461985967374650186025307214891203221730510421830711329421434666589661119250190371325293896158994936600623682282409931517856157646475528125900599285151562355562428804376423415210147201676836668415240221913048986682997916649128691853448363287793171586281932975459643338061905273390966462063474042805434566882507843359024737154388491194497388673388782747284153601682643843087798276362657016793147150390825464280031682972350047404073112580294382045784002525452683136445994888666934304525626588682523232845225424590696739898621639854275400820507476914945317864697042595919870926774478669022036564201516576419469572291481815158706119705071628729386979181101625643332461680551839659088316660974387751372874236082223143379699000324693784536888534758215449164786961731358226449231572117924272759767696717759716428021258992745232075756413219086612316199347312840441036017011235779554988676087945790770505400643746428489218343756351809724769141236679416233730914337500917316929742329580173386998222800705395967353358450764428802203452882764722743735195516417000318260389626000605690968350921534368495480339305749013029624824343177084391091676319785614703872291999248617428629573522842981341755479395065863674035884476961605262631688125130000007766838283960174913201328960402712586614350680587686732139369131898933637893485365234183030058024810147205271289197268446995949369490899741179641415830381897903799221699309159626636415433909801911983600441908899707414748500582830589555872553134553970199468486330296295594893384606656431819892971803982899899807120989943569263599895388098151773072962805201498856039944610282576348962855592060023637436559935282325583132956835728626761860796359021679545037265302524421389593807019294651096930382126704339297921969194155661806330280958208177263238006382968772151416201399537842480273715332772065928507779893086125620804775392536127628290616376008648008725826414420818689862494882475841614767215603470611275956384268679105340299405432368342023427901647461023807747861534382923506856871091478236792138092057159876625577574246058320030482971504091997039809399069461180024487963042071012104077536074851444050531177291593316448599673008470364860055825276672589579983441830641328662921288895882112152756221887211841479080915708640983461763832524464102586799274268928959024691296108903603514235626005964742542262550905455412562464559110924762802723777769346442675124484334314587595555256031790980915382376441455546202922619516889943252040697722931984668576940127647873492493547896635989890090464459698959314378908419753484035647013097252893211947898502881439968367203353606194968554363353465715213002457415797251320971285886243768121892757519232321407710129179733646586755075971964137106120100215446768488638071892145242106152185868269910355667185476148741186323420249521874806580067037417811170274723616823072823009480251391594899265753417457522918796209033528538297143147915635664691743844545493059425867861361993180247858964001820766626474676123440031185646253423483703365847591433593032666717271025976478007715136856351023132761303725799566010252529974406455678428548113669569134672843493438520923726479477042823272846326222069453086420307966140902707324126271980228985807057636091539254897493149401083429117691641542930190712307109791759387366134035738256908857252946219108288190904616665346537756516378059894680575310465389773955047110047499971520654754102499988280892936310955275950748513261375725857474371639088002637797594827066439712721249743628695419216852511706234445360574814969867896147608572577925119325179223577590439259362573941588655486417265206507166821596412918697243769300519243128940551645924493830164958424688748180152612512581552842199993958577528448334564789584802824093558253961756061926513306040644568000738626656200078015364325960805746626956849879419554161702366820326016354522277773151224545908339616085044175212365291104023409762498091776184532629294142158702981092262241302469241843831583628902855390196942832121427848522742734926814338947329637124791470610902105203554531560796052323000922481527677547380515933855879659346539934350964998534814580566813873273487245437763592601429938100551388323091667967206321183294360826170472755994981780644161698397149503912362870500943098396322399036222047234533754182514529362729794873884923525967295057080177045756350228778822303362473452157817250552549938724434781495126462375672128117729815551743509241151236248399143077662037012433415032388874117728036337123852642928144862663740094341404133708435681017650778528403115279011084271262280152925482597569963012729043916913753958306841438033339901093522549437243754505594167037703655578730520518014916183268575342336534240006704506431993329929441519475894374645820435787932381622469601082796606414946098903079636781039768202096380382050663157453020527333815444217869476045610895609928186032294879118915597377932254854238582854752338810721074357845023091358465797711377189436867834718130635100749365999742441252737075009737011334842204967681665178436839163980352369257761612153814074355442992996192287118558653503460831109574656898517172345456560760138757541012249375867722242520185063220868969641278022665352607757838126605059695285949266805750602473176344520326326722181759844888325898850607871318673664702378641077915601073527869461133199922550756680375474625689026527163457605747316469883178361066911583221789298398443058175875191015734077320968166187132596850154715307383193893472970307828825139407761229007066907406591695326354280308530926940404072070840001788503809525045125693529539425028174789888719813888197367469289008405788630929983351191620942881320696841494240284539221283340655406776710234804534349844083727059284849464723921829809831863086345919732522002166464386736571697447827598318511320807476910976740207614400590389441110138861899779555956504050385252174610852808172986982857190672129809442061176641382623140616319673047733976014115409673775966818999013060238159059827468600202055789235954476532431364804876014921155272696245098031623196856476533501060369261551847091009117728891198011055165327580441520300745628604561998827145651239417211945187000788259060881855339001800939737291919217902474831763167802921026618986568947758393380789182796047847458574538109030245677684047441941380289430485701718769987148841213148612253682546231696572988983520792705683112339900144286642230575483507875437437725959128680929187675625380185159674655330430186310736287819850844729621245006659265529913235967898265266049871607757435519237268684438312096453164670196503584580497445902095795525394773356699216296994604807015435434304890698381001037523854294313668424675441668394711529972175788274844836892918547786458362706004881361681102188324281603736506576946774706784958138894879845706933687946461126472080950655836710340136260357524187663556726539072380632029430824372784940715168653661054811887907620764362897604958890660360291704201348760626399402511778473618681358194643697702415076129079298212858887904713814065343042603021511750497832025151599074664553276089136167146231004340711834377549335175467768824443149601136757981395948832505199397543937798933225266793040224557494755836867246776940863959391685112753109244390096035794335142224952668147866180098396533279453843010399110790498186296387370729292223920674093351587933888186366720584500561738729701691310556613496844268627827260632277584308701597521671790739391203668440454906742069646082552851014980600002523801762717644991413356281426977640500053136093756095165835599458444240316372236105068329704798467385587727858549790243777562966056728825367083224340550491705702868128319533854526067694612609987985560406832014934460671931185712249818319707346724388094677287194588393208078478535921699069466913088646451249120155274029907302606871062099925172344726701578151094999355712131497074468868177311362523014218283849709497436717124000420576530285902780839160826133846078173061792670599041868438119223228898145619894086690123044424799534469773213459895067759054935168206184375767014959066708193284537794555756395175005572274726015665063553764430739779817473975145113833660334070147622141541256554517012182080452375164023483353992349091276096723284780925424280192832605133198639724278071240779378143292149828076568917536102508935594103956609315490429799747003356282132885957390403054958051846467584193138221692076144375821377389360608898691345215228434568766828845495840352775743298358560788194073408184369809473990558830297814643579644003916944224866614625921505740387970443191575321365738227371101767536413555833915416551851832741911598549487653049479782076295683580465997004959053203616922853388902265383188144517299500922228140833437520795656929447651007264242239274773190929110615937217371146660335962844851817006086129481549652575978899589372176122879113443764464831049092046003637461947144356191413532669883225359322593796778512146887737305789988049063205479793731808228708241232922299505326853493449928647378098186227972169250746116357340717400221467795793467665966827772335498904430376947032712094975047419076479414613324761211655755747164574101049170441019845223451319121259956827147238095136725817613870981868741638777758620349272071732584313075739206999738503828891008002288652436624077597726355429937790638422960475726329634832687315359233788199826700628448051054742781485704094311923692666965221259967622354060427135628634329309769583396640931974971561882793814406811359052577533105464033361982093982877676730316771560241906737897039953086477957146972896540160449712450940843861383273461752202021937629276486833197258822402289536690667739253546648651857213832729870593778453420904527804065240628872220677393436396766408304866157202043766423674297138901781797852554843599470826805315052958628577254193644165107737454929835512525315040204070279673485588442143357144531010106011474397121700686428468522328101226204817464236837961525861429322457242666718617331981870562032473240736601559706758175926242388661343757873392092412631786477499081041003573853179459202803544350828032156224543508358691856707205645998624435910539886076322142424677978497554376236210167631868188296782378933338489635780298090870482860649380354458518974999160736260275085078119256487026738848974481519680067628879320764449225116302195676758074785576941783072361668211324404535126241497615297978447099235626062240426057628395701415850210164872843568202738092968397332791027092559150902125391264729764838599359355232554445551339594952876559206090546487026660498756937181023345768613516925948531070308467474326318334826107558679910129664281299417978883372729214705135235215147131651639750539671381392047051658610904753313210419874760762592989169915039776435614888203312403065318515627242321748666109798102325151035664294853638060056240610037063908564341777143143692752216048090842952445516243999552832831527849936568996824895594309405534971967620719451120925715630720928795125548649198846065033990938114968120462051125661023834233041535973807863495490119040263528171284514542689538759113453299605263319670710786264792630247404844835612587756865265360294211045282522008217422123037594198875948525251853660454240511803784520337225982416023096583503645039505809342698107814677121494786459746959645439299101170780952489050334379456269594187430448655200278348618396366674697406783082678093386037688548060134164795129115189847987670846400154086683075291554031987992402463168206147790446439509912049414907539747356215919549849685917449272567269200369899142117838988785154766923392089677211539338783918832628033798776097948770666289487232329060461313559376419595578779216917503293363775930364000825172049503844121781041005075169447288447272897862503071836861739712870471753752741011334960549765053313873210591168292547517524916955266912975180118735501655140397017001673796491103179043957566725659562879908893081871748147880367110395116274024872097624157161397275277127949281354872847773401128166358489459363813084593306668254664668336687034362694053994538129817051410287581781472061902789981177820477519942832443729166872476189475313735565331167346003092881016513773096657687899010115281515463844330497538527493342090297400617660883599763479933741137784373236121338658545225373361446892063368133027820401338889369979260115118528744102244706110039471786114623938589467446800112796746929245424724341357915448646091256810036901189113900454876174985296813778482267337970042265979086403150444201597560118998406967470325120242416485467073275620199801408981691235509367485760685909912915665055843409573812711663375258903948612593816367162794158207806318198359525414487265388653515483119188471599663614216164822444238004571416078400568462231722458806848112073600632770702316114485667739677479216093604181937026752821224193391161125134297820296444969388596298464874473054895756290343716465841030197991073353679406006885456009912375426849493185288087018596056247231825361845411052310641701996290721467060558481058741036143081675791625875189009598113420187651423522681739815822678554955779801730959602649670496515945900988753550515434160411230734188013318739976867872829990722810967744887157143166062511974450960514600285050256771441988142103420494331481274114385390260421751060559914626704255501484496643401908456882616908941780004339396678976598768712075984623536033706918800998897840689363435768053060623824049424522911417391400319556126127804566477060078058413956434948185819603491471361150273167729484507354493346459712849703333156144845337828600624206994063497465372366721993217654306511532698620360894338672235319387070132763877797889686936951943899303512420246882411449077222612120804803285302779873878728734016186685133628051420579256589849767095362800095184398902188019603851582708985122569982104968068098481898088929398177215953612722420723643275073808961982738203020697169321039502048219318665062557066048525055005861324652057618755755182393703424274607780401857833604280579703199511100683018803765911476832164074339216872309336690395355298918280564817702917874223456540866666133590946725025266204922045257209332760585816193489574874361432695572039063912918097762758805991020128839808054963053609163486374449886255053290626065753154799032069583265270394460735917105458553405391946492188289360215785984386877323259072151290421077635161630975927366027952607186821425071806041335648468232540957227047722375925053999572440494779131161278234079138138683704079878823889727553713653479695545656807295460925688419880326408430713726241045043631344137069353734590051416543944298674187454323828702866652516749203878980045101793924397364288117864500083195191105611520284624093442765842247482627038773132322044964226435353884208572858960814244459297960455613895859131196659212991633991242378204807689456073189222588019961764430295260489769255553161722712842672651010854215324735752645206053300730979432532537731875048137099085312719748134101208180868647467303817996247781078619202874685217612300013918585040742058910460267572937099208935052287005252018334704253538551819356642710090662050857020230147018688055834265242735920256177909743754260507360792450436573255036068347216123531007024525609156070053720720516946634450255397634026359721868268514755147528874554914458111271573726115393495272922111648658960579676013163287719544399714566134799253551662792987714259398147140348458815830694624700254137533392983830194709542741431929279246651152321278654779410154413800998503645524111070975983288275729409941274036402981098150453092175615199200620579319211450731697145714094839444840069428409140119559679768388250494788215807244851320591704332440312739099904630226369586645692334265556517233070221263230837861091872733702706431944244542671300617201042793374695658066168640077950283574000184529842024884006350142951920723986299491346001359160993802364828587525276383509470503267189169864178282033851491379796620241438277740009572296727351260192782603041735704907689112000662974976789436812070195809322844136567796677884074045334943089337956718452731984620313139662828283344704660344114009522361672486834811136446015399005095408091886795141329081058608839632693573126313602702285176175897118078197312000007226632086848064721303343323530027160895494649555354937366282803079393203535449404201740548801120630137130847223045939436956273749775097563868602109740178533109228891318940909687371643873713629195145646281433571087144499300737404851811325257164587350106349124716403017930662345074547585811245836837489984645059601404240073497197429623226075853349142826639810846362857464325083944045165397423128121631259923759943762874941028748065587225419162262676862378332736819657313093954364500655070433661360380176096379438488731336268183463010868355551981851374127478778270850674613878041562192852031999594300863641821646113318909541655813099977314596625708822649321853132890530827205600880955151461277178136046338407264905012628517237680878228574380770371754216364210855342202526912898914037977487777996857006226570657059128616654975709134884163167736573996496758121191163622701502678370998447014012417583134632987872746561297980421686512590384548961843070605374150336499798625814493793620656199216152424888494040005128087867892275980946493744473998886411222504664960166387611769888398692657054278452515287619463914288495516559306020697586075239414576362078402292737224595221365059888138711812251810360995665208821253102800413481397208002421087449178619348825890730659822680025980333266224395424902232570821580888836921051110623834286644834567178524174174768962712638677494585979274006206335968159252080605536223115643840499195349015569752765917186415135315111971837290987402165463321973405903860855585395779153449928068181905292725109906116132646550373247149717918646380266442387603605956981635625152707960554803488876491749091664315310738731753115661367226225530084326919786040087821288608729005269359844823486800384339516187608637269752207673276821575425981418702914981234610642744428288749340753353437071289727821429157387535075771213651826676816588868732132544716268339832803014000074672410452673347915529379265066049115572151737819883830674242050601018484414641110178509041896074401123771676005242261981815743174050296569096898689528787759451409798153779206954678571196046988625562632428724961210322678661980692565566530781905459759505801721328528587660773192035494129569748648140656563823676154508412130311565113633913259164568796667207802790747163928373050550848579658706657723686170561425290400329178528891516723534313847098034447056736145205295603429635629948632435342648352676435676953490220723678958506212928445805286658318967063079367287618826744276809533478954418819364052170052876934252585063673408560496036770869165554188465921800010317107927191038105651384222042761025548885633129055322501522894862282085433179687136894733062079820481906733611088091710058192430686205296332518701064168095287280971614687039806476146251349999030905948355445445228520480217273210563019986344865610172945708845426866112504148303749888270930023416125600403861916446987112701113287411073271190922632423331008290764085597551902573615254593333079654685397275992765355045562971992989577882816960307970204462047290539300948708378180325633978485933557142475550348844673040639141186281888008256656552201268805229130164122959082668112005356897555415197447011148361024163652876215277451348120626044452608052734363281053796777623653086296172191117475175368246400316292256013018080380020963655493763126084073035658803829232920170826906142349176802524908932180511129786546602701077557458471024638749807817249915733380370626763248520487037973926069397720620500659967307059297411116318276723671453125624514701613989002033133712478778435434182815969503091945851665321448114935476926809022110394073574346229088063999549489671475377417938121214017185573335452330691067573321476859540126877302105512346296766656690430081170776667062739819287009357866488025718722574870344726929225591976471170827734764438741856557127242643276805652891369853652748046014631823015151988285856826462316953663400991362418442575035717978132147964259297881779744715496664050929415377368463242604225510553396931458078999275771246910944903746989983971443034086098806973106694418742907045562967355414181906377875014630281184198874825004823901550161435584210591203101050327063968114097103534760536159086446918784817654814320806789660790031857837449609880590952963849115536270197232317189740219519635999004655965602933546912134882758163742238807794656724612393788217208009268444463450623491616051984295289648383062017598918703712093552792073894112930311767691381789499358825411248037441094532354735511422260569732868673773372687947291517171925585723075607819655313359331578683736719798250248118219195348058243265190078401435598181498770944265346071378285167245083825330086298093575787127707198021207997628017713130756171850289385172777394411944132852115992375712507519821443231260853555264014066655853091404850137885665410803057813616495182700191505891593059839252354396536585798731285966452886258587599186877350364947051098225630668020473195351997186954948467885379494806941719510942601876275439428979838170011635168050568865128733619826570761445635996514300635819137413101851075654161943198075575637892976581201538209461240153456258544016064274597262937762619960620791829185279039196574805096843290724755832151453677238386464533560501346297783813403039910842192080680013035072339344315529319322048211635654203417533189252247663772198470423282882291692839494420265384578427212487050212642919581024998834080265778529640805102332840493235067542558452052230593987971780907824537005013030950861720198968670873222095305365074023928647829008608736819115312792185611757537910828999271499839490789425830610740165318447722182357054592959825295341130482924731725544925019283744665567717521114772397351904894980510316201627258930379619685189019296358333602224155970450940336537481219411408414549973780579273836452218543971966930154490871411562108378410978122606926393666747908247375272331655549389059753602971741543024505004030088745842360404612010787109110858694316694545870869125558705036317579524504016964187676493423646845907778791721119807098114325290735029609848197441005482453844072448730026891632517780542037088090822093710001420773540724757823592677244270988069040115088924667531338756909757230540127066146307456125193793795231789534530851521354965772039262496548228035572793579538565854778056802998134084465262118016020179486240103982914861625881427438049511110880951603496008054294993804877765531903357148911754635161428289119704729895424184393379616650543293416175090146809784645037404147319429868916960437500685194519875902240981451318739691514290621858360704869351926430387376906590869448482041866309523494985880685777713825580906552969683420893721326267829060458128770298182829892684037609798815238365937673241037837392156072686865096515989308140853152720282230852044294673766224532064835674645534293844786921654240659575734871504752961627578247462509206514701225350107550643294304860390767947162415957310599377000131386850636323630595484843669581824559342898330424036993299489263603345155279932291182793644639727657872695001762002636530549414570993973281854105289417439225228707182470729705488136550731886919567593392581684006894055989777543489616064929411994429050862708836931516833310317511523063612369940800719076048464504027567771959562941065082642090011008347760008585539164561580640560652202836524833379455122645694922020756013655268588757253847788245120555387118210273780839631459162044214705358715346307616259778857237620573544080067053441998693925755498467023897729690083768863740763014831289252974081424149823618133979300218000033609145549874572356846120047816393049435629806950548770028384794943409396395780218538158104802537996145278858576173629875213283650331769948980244943776225849666958267546216160964574812773065859064634201057871790981965099935670472559370330555112801384443919613409982745212531987677986125692984611838448888693010386957590681497650543672618101962751501628536203505228795680805791428556730938484850181238638610056109430019701896015641070361518770092155464569111702320955930905861054151216444140092927795514525822732966625814156708218674563278894285742533141652984447011247203720407038322919082654289619150201782664889396596346854657373848944692082168350422773429372959629241935209091907960669384327047033589550057497949914205617064022508526434626365676223038101358360462386190519676091587412701204553690077792516203786034990087410125194985628466228870147750362330067997770835778772602672601624543141986038330463966683728292365837586857424459817086434583699811161451357258066743107114291052447645424428190217830346597928338109425742677912016592970925471502034771573520942533587223301455105694472309565701558402331890642376399473892449913058072720450110107249851582608242168423214635989137772850245370011334533442756696570079246772284307101946013945326052207261871891912109860171698819628903661944112206187974090910683587024360474492218211159277363247713369348943166836181412672606029005614323007419865006677489923057544503958728196533825735537671501837822476209597127145238092160235466244405572338690626102832609231013565536800035030988229012722280757809232544475463461217220181655711189904077435544537415397386189835215532588294163211965489309236696678745967716415337275414303219828786715179489820482560250044430940791589812000279257905937534837309914255805116564614259446580228715367182500526716307279887426892987064140053722151840891275457814613002441653768960693786732674536282404397333701382919453538642958791904365834724800685998706940979409186534362722389275686241673026226967866077080774263765634317097135255833840829020226932503617191684779564282016511998696064988076107792178713285538261655680442842015298711811609707793027954226595962079557934323886620501983872128722148694939542157885285586217682764818987960952302624755150630100110407758173612984313644271693906136392078373477922692289626739283391448693932391584829477404901522954565775320114536984649571012671782072887732335549868086218179780360199807357336234093125214096622975866265668409965649158596360815126772159742857263676638524668290416754652786546044001801015533584355912112850571778179230439107976626216239658832542006707384254323236622808612000762107617475061278292646547199293782817775584815571493033717600957560189951057191599239138940467337114378834666099064879867450803681040037839923214065885599321464954535126669470431561039400775667131324127368449022684055090315412237123649896791929966727252283491638520547560646048301486485024282869094782678027095306026600933126881691888372525483203732622582164253145958597435603342481386911290883856834386616283197840379911677227543503592514430331974161892863477820304072670402536443480938303379910551841909721483484126400636888938816974565909802507885443304952555635508488980486978713010485370222948374408491252341588654201828164402207908341906254379286781998369078570979432948302419200858717601236413456360565211947262839516872944066293657825312439742432285376903889786795977379890386225252155729570125777725202644066904092985132973861234274235359139528012061686162053984610410713162281368120024757128292853714313214329951375542652181115178308046617383782783289073420161599562672448924169241570408371521106380149818728977939977894030019847272961449447156883724744786912846024947603762274645093368000439271745063776519309305708427328670995070299925482509012577185633864522446109951834965277848166269738934589821444914773924360427148688584902963414651698931317388167248409217659790812007354691635315297503574647767209462567030774152055672023726675603564873412697895223545533572366880999357593365765255655024537947908325707035236406505024582546879962234023203223178598181133264448786809297707939971658821220079045548999191712253821705955742215837895710368641844572070881567354003586874276088688107243345661729051679673103668935265958462647216896134501201493698005765878413643458522729995378186170916315934553430979228023341372651892946497361964872520588975668748952698700680256134476310039758557245464264564448402953901618600653830542320586051659875240356668479543186335382762516362460781202232831828969593486704652258289325215908635294941567942159218158463914726128786084779804328681046607171537548058699220023805666468897913895914929197373830893124628532474355960947455857886507326946507225621218491171348246464719566058714298803220136840154620106188049864796720520759770290871322653733601316751882233716559437582874311266336539704154598960914874476976957815980369402897222920102743683130522392129430145692487775235067057885567775596025633496947867883304428455789324651867181138159544517322148975019120438781953327803700375410525872651040481370512473176159745469717519106448150696894741807774246473946093763720400510594821511163581092173275872326614595635019539700501122244326351525935025796180379321332676002571036351088278011288770849071768105479065719782343681353291350951576771748871109614265603748978538820672998286343718240523246359233098015090283862862775883065265892798974791460715243312395193950317945962799525502923271179263746888410271299756475931404377135781504772434615292705706579048718989811471900935199932178574270374065344281661947041083950690348993902792240589208076023726416790856504713555118101544988292666289304072787114793065838828718027616232505603086518451794807159727953517850573926427676087616083291228736704147718382972754006396386220662988096868562116297160560957882296920041366218744954464189720637612361910545219287123707645848871536487785673987690984284271405222005977430747435281967267173651016554421632392096151730821484879757013390934072587503649948933471504259749547345242217267100748042019055753461150443605405610238500403334634806191864798931727180936451857113030077927760562195686119982136562010427295069566533625405598793293577756433000894411761366466736924904775630234150209550401275398343942812853271943339508087531096442918330751196299018402114939300727493830663793178055489884870277537026387868122939027382534260306047329266540749372496141906884125305340753831963136757818176953099641171909859059435320646107257094779505487785223201034101722516154393539235925372538760861383431017553706977290876230489067934111544287381849257665339891433479647309190134165890797407962783949036247721349834248259594047674568420236329775342005591611589602417846145518090693723931705756452424215621990659610499816430740755681411027646361084392465665831655551570349741802643447176073874687589389676996606166148463993313982038519709261074486416980326327947059753970891048321420289585263012198900664079093003099909186100741510821979927671943017194896795972027974583171208063507767214300510511518670774246362169791328387039002317129872259122343611590809672928709805617063554488362504754920551585688501517803356492483946531563073773240343652138334301723569883494410181492330859276625055320132959433519691905482585990521890497572568515838178045616806479830692922488870906649381058885485866643087021582596210435769455256820797964394409990685747384918100694762812373183766031061687795461468993632342396369744226336401611172348732757954862662710271483080947236695340253996524047660807077822577998441723333192555917182771915553952205092943068638774801948966832447446467488253505590323069606648669253082364116908660384268644626011753906313952048217126942896874148728335029712358985907814455203560340512632986572925722287373097512066803218152766367098160381429136981161091392160157360438480481011194775118182308811576332611128444964062913677434948453730048430173457005996781929398314351566563940392998508304537847636108971893099953747749633077057693758339790486200072705766876682895030043193888526969992272952161748970453261533182057800240488077765736730024883547882513732271669636733161740563135107394792122966328597401638207287228347709336317179713312772500066228773422904232905459228942823074154867562445271542219307729097317942515214159662308461174123988323797686499318818294011011731314811934760708767525646464523060692918900624183040874762608176573043389883820496324767549586010556003650193078033840266253472885849968873203421618856664438192095011007525716173044318761903955498300544651870338010472253757459632784373818796248393008028752282039389639701366941532104186612095925704811688883433096243915941158065594834065369355521802681305708829323686417865715284526342167430448601591268191299276372769221599199317493378864743007674817907540514125879945891796221439329144213818686823025956278449820920954857110530932521200681392797503572120021553133258493115868727307395089009036579920649002727600166720089111264030181972215658688102696381140918326082915996481492228846784549880817632088595845661724605764014024052921258630822269926246689350506791437981277158410422045100144656043652129422133390339307182136175821682221767402809991033509471191042800802336514560727529997384951771990563030940690519816513015659284477892423944499404258662764353333045173402118448884035434336101695931633619899238037677610836615393555026069750854262985219852491888220426969853381464198377833605907895593444110078362375688079862248407505080151163129547786741504142676017402094656366132697339169769305852401304111306477438815078819483932748038318634478952487171601720951251669236113313371650821516760385109569701271091686799269087010603391176759092355363030065720661985930436231322295230356348582729720689299155646157511006560458565817654035492002936202202963099188176498896410037536775224582656753599845163513597248118178797144862002364214332315830805249993494424009184517080049250136687887668022334718658143518299738228952096720255821104224669175509183339507234790103452153262825878152747429428637021958134050468047647868330900142627210043645164497352975610664691931600413884426299278348518941520725348902266896908456470426669245111283344129025235831974561894994024435696959043823554853351457297932225242499011360635334922619912102965373041765554800257442937321600039115667807586299406712161073482972225311546467000528652206924271335975012111817559253226103180399732990249461067614909772538146527708544337323971291545321585481518246137459624899751259652655092505988613022049010179821543442208563225587238950060492251782911098493215562887794146266004853848887126215969883209101608800864666703158658285599956725978504590651031222394226548494574279179213127929043134070298902306441699113020236646185909113783696807036850069612733195509133503313361927052869700100105202615286517816200680174769413613128182399044409336963942002827868878996993653825302762762889506948731554373534626092814439804848182693455778692544281377498139882366825540010718098137277993268573247228511031757443818459568892291633172514822618180276345555715970429377317212943912090988771292757452798337997366909321752739539390762646849826360953256256477933174449460767048749923228016200976807990051639866057053596807729080847948772993902600863341800843633602988576771267184752296687830787484452461128720980553555916079209395295190599178197864155814438642981915672445358214009647868197219372115891327891093112215312268062140567379829449814662680751984804842345513442232576326890452921308530092212760675936956038292035739688430178744543124689901627265703580358438933004402114159823708897297087123470494306558786676319148690761945775120541291227587368160060942091892751456812902910412387554025053522185081077672491086713002552057399980825121726475277683498723664158439559162814490611245060856776739076079780480974653050270327317266944944067317101268224316999725363491759857459411929640946871913946438651372908316923103231150009639933595548481496572439367406506197799407709754096220249534092777049012990835205128641158678994226482659600996656619640951252883626892159756410008173396477147291068959782945477744421821188764300318384946198412729853969160123379352545166758507980074024609720003594291956779384694730370827127818054743969224824182310639174747990259734439008033317001684895983718718764941916594532966844168207436303295423438210592165955812043824201821919203490846891127648017940543946898030905131456267159031539732524837536226258635633135984891998088212743997409350504944236227164733694202827823612500417783859362440527494519802764797727722396512777822764601251824568453966973322264587728571944155837960326763098294762439853534062625611328194557600171587665355215059984168887995363413093936600618075290613866045748597366011301318485592926656121294028383164885640885773928771960500325433189923563097591429441478118173988635510220689143582448817011345233459732912849888395739564074234132804142292775709949380966512747816973365825513496941535284456094516926572195107013132747237306182677885413406666054278747681355783206909084689341850580286090776307493487914927897403549851808883907463045577520272237314161648007522589640185651358356947792998474701234778040042860836065546564204498207247573634040055849875379614006482147614306058953310759680360743394291153997558041263107790060574817621658230662261607102133428168226618183997803576074500182099905652269619505553697462933267328180989600310087656070008172822951840565801887637876838315291998978033825129469186656846429742075467933175347587465782557552183963956622809640074418519726156320413928140354530227051070249087730503531427249076223241404115457493668329797602838968015265037076221722991542386578073851948595158196874545196507998124743223010170785938786077139446775073379839402899248113325500112499854412128902320704238370651211824475985354140163573841824562460894745041357195334418820245043461600330976795411255052510090371478250246054789342012128979991210778391553253682306678791297274364633316612393504748546135362126513786621064611710832280438547226528116289240289531269165458987283553079898530449997061896000423100431410447946688434719088438769576025208637670642854152922886171471706013881314958158323886739422825008282202033179665724350197816305240835029316972656008190542971974436269332687881081902675002581613746508736600118517687848800371493936641197494603020825611207124787418453474716131206236073317982712222322854854921232845285564306578115791332100231452565722301963490776999581586835910854162889853294532439582356542107505890052308295954555307386446522448816985480149538987752969963560342190173760189872854973870873544357334598598749390677053307401554634677348750894832992736998104178835616347466395022215894458319818056873607453794418252368436212724990389218508094700099040927363224446211098324420611793097727133520894404914940308975217349296183297933669793759155993900403439593836498142630333010998717437130341739857393521366265044986017327310828687805505012757797319636088238818231184206954535118572497144258847037503822312110342988734062797301955602321008529953019779438186261810572910578718956235978610237687790741141935098651927499442483330530438165408964180913695740487205255950149730517512824081242181971011773545955886822149372313548791921926594361840796860016318085245340810965959073481654341581435280186546374224592381453661937521010555333307672412881885332063738091733292809085170995459508611929234622121930800703138088737666770221874631739454555418993850066931966703755085995534474864174077011066896422543828181491378726088019190580353715382936806960465802474521987240429777307474094268536991350637827410950516908248914061596740784057268868988846010552316642685880189443759123167800707533320737310554520680189593768708122259762309716068943371411364398739354071985987251561972368055407925311021455019441249720349155697770498612743798155103820311529520515857710592481781512846292370068445381578294283985645467876533486928255339736027687154166923114489109143106475472032525517129121094480574639068786708668889247088210698018434925152489376923703170815479956331947136180119026288617946976571658277481860212875047752118557990575892932112106992206838070250273872198856614211263628691236439317213987508876853279055821911354758813823278937120886440799321315092308303640278037635330643177027726290660473359306285423545768881375869283717091997126281559187847267799499846430134918622825315418928814589338393980394657180176237417691152379317172091693599594844953471014559671340280611624649082244544292979240400856840658571442967743376112960334717431948193120597535088944172499522650132179801830979721764671959918090156412811913951346192139369139288027218326115567206077569074013144956957858611166754637011522934808039299939561018187238971615855471575131663845225050384114191210066608984650166112728122047327019549473701900930434937255448488139289288018298219742237868641258631430487115383415915053955001083923337632705554957210010890776711966430357520588507713052196455828693910942747533402997435529790855786994868866126201840433253851722309296290496114825010389378762318518823579459889295749459307264778382160976365776473307358295901107713178138795306499757655935448405166614692814836954970330307406366037695576593687475603899532759245386547838859929500580190858141482421182371234658584007365194594112203010318458082342504788402839808549426210181012470907282116026461471535611979055235263842004155306305456407049544565803164883843667869806240319069233211462414473664570235721309804782432512160407746901349911273232092655474998010227945768633204140916546959649850122205520726672300231443241624300306352863313037002863024999097280709869864212076807461587719385156520613780663245481786087638706726018804329286437113274062626461879760531588795864314149092098592130129833461291523129400649126850803958331744192713612282385273865742111673812493522119294606442541239466634363861358054086641353896623458481931522183217649086061742857083029808383196940289528883447445541788543987084169083662823440556440027882756598816726365144378971253313350651357427374487558663457208910917711940166556448389095654196208344138353001318299624911211350347372648730106790794905130988683969355307046816310075368428105048776781491509495659922347077347050612064898149293837128379853889609946171000947843975835008929751181801715846953178293377542667921685841889340852318200577438870451879525930183987564616211656941052529668436682845676594435642323462800191384971923160380272153653800440964397172347125734282690099860522409752553690421909277634066534877983984662386362288081459079398944947034813691190679458222986000617962127276753339055882034503028734877307757705967125288755383822566697185395827549964692821993105852698990417204618377401864725551646782649317800368868009858762838776314923269860491187292007639097565204720115401378074749250234857783987624256668573086711376984630512607257039536867646478672760652427174043867278515353833763155301324174582830650302867128077102010195481756354518583118136605757405210325943941431895884298559094157033855171771953390765245811036817844594819458705690932530907452993308110359328819174423845780543714645150902319776222278745500101054861234132332010711621260175696770477921388225133949327402169479922433339657971309874608427988852574398888421891373323437094918542505649655915502918079013996895303276189792699362443998555613279957019862557876266649352380281033887572722347449393387343278438521071338556765832424103721704013423996518261129766380321797724260281126131378050455752541952719515415998077817116257901596457066943107938311979463573226481704916439156811188668126468665163153804386910293664234255090415285161271659799170964406728073120997820018022319947172569881262584637873262111218173607587503627006865724836798389656590100981096885958645447234330573294025173673198484820353467342247460348043146678763102707694877918347489981038844064201276007801778697785018867612832986220043344416579023692048433531686516986064475144598918813228035000673087795091317137593177818586658833055743489156179037571710638969623619657383688527240562002846523039972012634591758056989712879175209219709886939413772860761040798871137666494035525992678714328263777952686118381386296083741738356044321831144808587710462189792237590213852643846065664199572763732476917593763939601384092090815875318985010577841114896096272366659855632235299957633455599448118105819469249084280685248564703442924441875597832167978582508208010704061868787466862690584344467488671096852353013170278012366158508537813891566989931836109438517590211052845121987185457027409179961080129721287282741350892448561009376636763079490731094242396798688717660335380742356644662531993484719475092448839412818146503197620950981911098188609029828903821324915135910153051760281326713276447939232621533809956882387113190151227945431721288944545005094896590390654785858732757920417386014975020486940947136201513507734953635501726922904135342647225602476137355297028863718594352601905530712873835148439555470483581496350505983565521506244502732981927797710063675781285512131768312711128870352499297846445473738230636120801132026459948645164913537149724150699805847694664364607429635785179441123601654910247649770949891226603066490804487459168367005065849251264087511509790626627321796140202930445242484379204197488779964836057112435419165176275509145286315722932288334925940652669760974062688917826432810052560321760282883082264510507263526129517133612094685865257285443059786702028610490603198138419998895595335098687447566486625585325705665913908306724772933849597308107506439224631213352696883796282575798414608341171051718374578735062694686639773338153637497705734363485759583908497672554619099060554174482564463608708390048618426643361545755687194240224231562287744331531743779872699763141159370221956811640645025838994461399654660336528919446824962857044899417641302801280224253287912927825719572426646326835023676493500749992480119204870042146693416276174708181283743542847703912021298515984564629748157091139183183756668225991463223683461366079205894358514144574082426344178908067050562831822313790385103334964674851784422338455295351187063087568141355220456271086020864852882741945761356639134623732633121403257842936005230434070431566167037186048435136093529291430731855049151693145894607324106253197415604165780468197000698006765014876128017852147683054570441862487198827896483188697690200784469547510736248196023674027031674776377508133708360536348654836623682755821218077405518593648739668384683128950992017870519811534951609302768239869410866651739425682767626351266841785859179567539184229364057864042159196318854542980387848175986527442212138911986511602138885269180258053838150347744530574964926998186320171204375180765652256968432909160588817096176749151527705410718323840203196151447154634134176006866962934879704286658080697616122180983129281802309771028608510805382608380470562998589144396509778302318175329502721409940774314468997678041179503857717418449118316912223051049180056387434854173240179524404948784191387234885723263287204399266218416757324892420349350615901890250102012608284444575874822330667023178998724993593024244120342315050614423472025182857788979588360661042700201201675433761991733809075339354809194703129012533640979097816437686311386820052944271299476409223844052978075280137273049852222236913896318565707026275065513387853120371376895017019149813902718260965605423843221249878182663813829622580696574779465652847010505959943905100512660459186599225305380050163663126850530533164726234039701305108648783670482435353340018022650136840036078430517852283881303542559702974939453992871082392426309076120949709874200659001127041863807669253955356461668948394091008482809759410887723304789359716150998510494748790959722289638787057494842357322081963889516769094574141706802627868483121355022004577679942843569595612688935390007709419035240112770208909678773083605603515083216785050678003238021810588441617721506587441321076000368790641720972978337822299178113181059348692044692765317451674839003558700146725084468884531190103840973081186930529426313769868670079511911424820682483681309607212715695294440549267468694868420147848704758307369961172638594600814614483717199924206118894581550225006582364044116902312205686767537094199938051778366160354089454469418471834440475319506349623919904511875063975492170617810212843453185865461989582735333854093635289706633715987272600658409359098800451496100793501454983868485712354996976888120380848204286360602335061592072473453169917140604101558203319713290585421460649600932761524320664836646388159803340319227074701897019637456047516563772619003147936519900365017343487705709509285596004628811606339911939025929927590272767169480293628301094462551768521751034618297460710832441322279142391924389219425832585425934405972407161526894247534505918579153521633305410827574691514657978182367395560686499568284083343484193057817703579503582627801005549252579360235656090538760242414443214042969050262090887480863376255214839277227589948800881317333125422735480526257019586417440798119920958233361023622825679233981958970520232190310901333214120144577673703183096245119336503344188805855530876525842420219752707998767065948946333985053744054571507643930527463423810158949054303765861188474669907397636374879159037349263736234518460826100467895426885072301146637789201244284846442972762250313805164451485892472903565635105217911406125916776474241980305074589975003070402778057640292670085273500740310424148285579896321707941105254671658980604837211376226460814859483702752657565245047412048130863490639603981485054548429946316219837774328149283404297955509467183525959336323365769661032155544893048725405425699000421430252181279647272154196060467306414110674289777494635736288281900010526104752474054711665302485468285014743223014192924791468514668630990750157100771413028446001316362759299247531226565777728604795878542463774464368995292192162316289809952315751494286358990704611380605644956237403171553820462434348279053610202804946268748874465502561003835855761153093626063822456432243697706461972500475645486445216842364668978086145883171720331411358195974519600351062440067531598786367910815466588390342912900294190275011621568479962073813719155167764551030353471470447172370168643058470333256697673515182917230765170480790996359951986336520222400223163483265199931854248488137712972873943312867189502522568187859341196975540220703887281232762422204592050730283351211381998986490456329680587850320929415404349555338679668659167328220356042578041180766332056017213478701245376581124295301531133782373027735965447067981322755412599912488624659206772520543800069664508133430020607213705706748044721286219797343855668727646229980379028844684616124032874252084639020028892737079650687617958830745452078876301187610505692871930054589760736092903233989058405165024034446955203062868042866800238272019742505516062912645369504873969009928106729552023969752254329221405246908707424324248171336374535808727225071209662960904142001857791147867013326679174032608997764512888577354142140036799897898048773318004569774894756446140820230425735092649547593639410094279276917706908388247898072839239721144072174147303451765186104648400928738253679912555020369247559598217049900368233996931638219319252233106846336949262964501860983850652888481143618659378184390712234706096518397983468936718671230782593948230322816140530891452061551491562177313885807964948857542143259022673688794986224678145084249155175732817105015005238954505230704512500660007319746782128826357088032982488056474514261751311259892353176359159002422334214415483939264271480269268917806755748342209377419418821528275354830744268312788294214944022510471892342088787791446300202341067308871018971956090372628032582013687693563114360738167458374433507662173539595138565921203883024800293682857471813906218045575491273502220265136535765332855479754032174517455395037868660318578051059152995644112191466848561822666824964201001577109400017014628643918399683899664862338410017764765093833839022766308912473531666717398578172077512280734358837164141929809420639697232164631858383661737526332882808873858764709498824770083826875079951124849712744217503696261314937638070151461522413278039980137210231184327028182557892726010160784882162745577982967704163152800649965447284448290153743230414113310172849115684900956355642091368184270113132503200621828873323445336991133614265593295583118163160495697253306111082046789579532953472661253004602882277509188650935794433429920941863045917980436763503828718474319218181953817985470473617290047080406008510304654703118667562976073578935792214063214336000898711313198909823967846935050534446677455129461746262720133901564385864234119714070181051547055218577625504871317388062022082387643016267136428283145772005563478534084460885135151570621679936401336366358373942068014899647818888897437179388882386291976958266035494972581927161221972450802694369012866577062197178999783413504746472852233957006966073693361810339407338950943509523784958059114012592702350152479270174266962486069454592569399833789577517564687583435350903671329360169750646385829201983809844537631022076465419724117036881117868089873564199038701153543994748697310768032026101353699203204652162473917980045760638360447420053884713166815280211343430506262663311281839421051955479287004652800290507771978604556054416972477943190006016879964314756157199964215850622832105372014927268090452352613450574434293429871462154742935275322520129463537802131305282496330917011929249382336284191787589066177727475688271425970858034333560195463146846104470741536413248279671118375596372561330947642465187886858954045321995873777048394516564286733751407767770326694180513052037548797099337546936924990910601022893603279164139888483234263943047745246627070199866080454528321113191387738394153271506495845368037482841989324888345255242494826089245310136626114686993765052091501002592400244996419438904693882564134814009392034947927331680151795217060878459863498551145310054191366848567327087525256953657287806959026028971447805862303318137540095628020637819945197129787153284108490138324905266188178091827222603137902306346637455285586708550757059545164047811290524818483140426483532395024506298541222276754154175772660298822885222308581112614374933865351825714586804154850854900404222944760447868148891773108319587383558428485257631622651891365515675572485634044213285885676848711100292029931573080440797390443076286391095055335901733163974744867233686458197921667725980153925415289095974811406426998063795384462157849288858509939206374294888863459325113597351514768089500596114481655185902432751743143335672473396614631024106965530969907139122148947359364262521292070729192638405816284818134146175275540257595783547368925682927586234855253623812291287310338784581977186741761237205721127169413376996384860038612515237249774272793723653532762055467663068108089821659844424608029191872079053021253420698235385350676418534280020378162955487871128109466013014293644245903235080190761505196527833398741350805430633616455686515862014350557297306722133906369940195942827325906462294755946234298933137985362299966537066871933714788007606432672306415489833897096500523265935575583609159882289277360328858448618579240582211396725625452039964769476731604705772021676043677912315167618858908029785958016136064898898889923927175799509566160573753769656335433114090063728026340674705841173278604023789147199329080305150453552870233785507689800954550607451989390015245968300551742473018937862435877054371711758166931829327098097425615019531125001631090134017739800072557389281982899795932975767261862775588172941349631355129740567181358951421424410924446775917161052926168501733371877076977304677993043028320774180948095020896203641815061139573130732546624030251779220642616228649163380257439010475783111956358787206230503110987050813826342624445464816760430225501175785847770511064125618480151312389428668010408102694243078775311535567905172460493696119348444388701287007179178131840914298711947170001774581949760835991886442062702079224190204938133665741729889962116111116743897821888373645897913498183295380425896958567324112415037651021425685455282165502034511641835589469838720253907425188645682380925277487490298035986784293447253940675856050619127282148211579941721924271096602424240874615815942910657594274661390733698097626509233591677492683817637360632087951391844050243656555872715969408902545370730742062611436176063245291364266902270724244956187324665723138836537180008454194667767162342521436421501108510529332120760910344768458778060530354792849904158376321251485718794481800881300985930588770490531849061258729930473664877665875693036729185242999821808076266925745523495407605630854113378797023214994325954205744467410735400173190384494705155862754933261515535936146750764033475531682809022877116720136597749727642020565757369049869204174912757205825860837402572771520549695979385559354729964663540840676163586303268093468270770093008494356112135103306062195731163353623052565471606859099115904364715434334379028120900752793079228894764036386250912551214693642119437992087737230859398385755768089758527024664096974810737266251565250317699553840285533530669451413477829057158285456876941847025393354308164620303802637665481929399812548809475362467673310804333710233789315151939672031725553240863168097723380070642857320663645865902205843600770136121153818654117479053770179894881335667758278644542167660268336210970342201600867621182928573092301318269901776972407261831816439629373987767123700760526254594419828528038211147479794741578164787524995606240496984964848316462901330443048620454733044975592390147449522342083785514247860537722574025885777179592232402835005395761278586014829493562394094985453604463251636428036758627212860813081271717018876265541929975028492561385744637246405190203573281751615030679303973431221676653366400416724431154256018742218226768974216558359941557047129596290424466744717207597909133171685597950224720949278860177039870153293376271883057796763501373156655413048218843842195095415045025829071463407090592758496802715594757654537493960373981951446286121089340490921662545961926685614239780923985277864091475697061424932982565482399478213913560497971244584824340712330257622125456683529493295462681608346574151912125953962841898115312920358143095704734892189427765421291462686267851509013223824108591937800778227290315812620469647458275433928192973572648568093821287061761491609127009184439198126277076611128324099430101332500492051560829636234647533528762620988695382778717181496759625118039700794699733567713821406864699083996084408420321254151088323417041808584334441212466696418325289596614879204293579610573555763861375805844633353796380511837737301951637476308233022467950978165327546209841824355028542498878344882471865088828427965704370613824838849038733679056057973474356442488536928794628015259378567235037339648530306258293909619992673147474307322548332622110543092541132779471089046555857027382094233124412040592417965770813909262966410116299160382295316144053191812132195727200476070716777227161023834192175712203982176829101765000750552282975622063264800450518991204133665631742669517923417200267379051308559986745982663212674213839277019982228144104686559069546939100680681330216342092648049035534209305815258405912017684876973734019925925035619051831520696779435302734953463777700934467689419932081252217285728054161419502783753208458468431947052936790972691576671083525494823475384275379949300550076365898028071571521696595084586724532004316519427895936870352844305217994202100231596203750617155739501871682906972566953526074139949253008192284752501825161690330035681395074036129402954212791934444866828793967552860532364408504757329501922546397389580706484163434834010777639548122662724461741734972958511441635492894792498442769313266393957280690747590041774670164636216091274778066331914292665758199024508139550202514639960341881268736169513112523490516046447319695569221225397423700002464987418050686472883500272285501005537565735741278265222609230581252954031482213319792051531830238911268301717766841727965195076010041289182796836108625018191202435051405357180297830388682662440658198820462425888999539672162109151147116396982124136559160082219888210305128100457977830228177988097954108441956267279997898036982420430404588130462405135787134833351524388354213037869747380906070860038131817038989931377886329850362188993045062000611469225302393249156036479063552290650059828993195469307819605740797303278927801528784005263590406447295669106819454630849262056642269650592208403873649327588807946999696918829174107477520233526068170764077352464680154134154830252732113658407532710705210727610283058456963436231675452786847525207714403130444067443195626923550066035653859088929851164571573954021174072424431515848142152189311716651873035884120095707080383142899426848052892193385669180200290800456235233550596131210865626875388032821313801584908867313657729533642560947694087726220605395896450279286329160396319976080021281764374684719515524983895969457407925993576932891641031944483962907615860161029609421943240703782665706655419561371698580362771185358643775309088852055505905338545969309541789979135386236332510500406953036227435038024494206878889055766206516112020118500926491802465207280402654292116780962666218793227819295800775731535198058343504597347833979996296013484143077996663303412588648297745685982566422799569428620948395911886525102355687514104497191096395036038568537062495267614985744650451283168510591773353308403357712598457038633259717674596036528138890850388203910959890600785343872099419780894075597406991224132827025190627351733970581431094106734323224394764924748603616444491753783716365469645658707052474356822871531569742556873798901612527783500433678636163220343097724241233379112426728252156452449812115635264708385877077695752592861588789472860708184212974618740678963519417350890695931911412866746264200374961452629936430046665742228815219457987529442205275859085047790541446448698015497567815382328324664738730655073298435154988515193980473848538000983671322378637946787144916712050823982126904959057579565839409809821340926045803453290693741805552523974495718926123933847305898732398340808685539489772435490818394618825179773997281732910879487633567817130411257887585848996142358984570575956024128593245595993161160673788219865529931809939513465941264579829556332742378590613798997318182330869418151609544449424135381518723260974209342137203045625420439496541934447658446114413086572846806911840174218715712458321221117575709129276680073296886409811568503366800471412534853365797708381177045297391896950571815861118249481247776536087097955563232149162403869493873886310426854344978509801411305130217292894649756831426489067993954357886322228915953132314403594405283980424647050251757415803395360458554454484167900149721683660927495248738129678453623855315592403900428771997417792417715253159634123631439203845091630178190913776405249693166101894926270997478842653125001149244052538656688534009917851440724837196958500846321442129205586527319963611134730119650243107277327682339896606142215998579462040178828534650333213385612434051471693941750581582161619446980207965161734053409433591815470445914977821783092929909082336487459553191434495897906700600853092788579395830325316956792087611117703837669629702728235209778726457025451263581006474951551287491068586795439460781824301162739866845074455672530867731984746516993001878674786565444745483124410760956175519906278582716281548711247959948629232742716218873498678742709826957759262555003368008856701792054246787397953901032821709298407394640031690999010992617270995730320167104125856774373930443476751688331310523499283400993428345913059639254499457527645252554653338675896348130806011568636587110219614012088953278848076371569706228722153158686524773970753675740067539270916102033849455874176159271372892601162881263187562509674410867108927911644584150181363012783985370749224744787361347396347962616492345876725474516755167514099758472803498838406435466277776155382299984467729804902428985424250847660719195225166598088775988006877061859071697861773477084774928357687381771104437787679102553982705077436482505571869043413798368261885657259584901496636383013136435134144641893393198267327950890118552139283839366933352869762834240314306446733186417498063742275561602705446951712191656752404833669537428403978491963780902545746580893487514114576016936974074234278140803920317539399910368186890905433572029406807123459763592404786427046054474664276185078860767038544943869233851230014343484499645060242768761460119980213727644552949975727439080060149406314049144806379537773345939107321465864933606847545127605107149387245143694468923732867212128970082435338806550561522724923770643129578225509204695215150998149101889230947701837581988554131352863652779139381109307705756263952450654485896288709104163955129998701308703026551649429999578335466353546926829856007231849786721271507872601186323591874859786147215394806379918404646577388814822451637227268169800768172407502768808112447059880103368226815447087903851915513256464183582673852430083644115948297890162501292272013539141989354745291794257756885368161233909120295207528693649988165286446907103273827031462527715995614243100668735202254226319527999779853503250685193706360559056714888277414922882110891814812925341173946657391554716242157381334940302515012384607430653221092696189775197791096697369315613254768205420819790525674808014148195870027349793595235633378071850304872114320493570857607513386723753108226764267378664129489140467636366335478798767341953969832002547461094268562215283916794197710899024381687994683343636764219929828090060895824673531787150625342919415337844063108121169762549975622160485249952974020211520925413017043063411172623859958087009839137818422719960893593793006460922192911579385315085301934593511443604864846660054913104341250826960942844146519469960299393658803641378830919211413168827186330724842191634565870034973455628582901961400610368545619717672851843639343373354493168538413516744395609931784919974686135674952487334753141766665780989726458100691868226253384251299642393358831966704848510112648329562400458865101821736466249352275515144551230653390801497900799078033242459358237872361847069498045062982027969732815001036096406150788487099471237006933173654663775128424569899227904300374580948137224690484782397958205496404666589255428646312074132861472165879003522637890769747448777326274320422446125294622122655947600431670582689181082228054866058067272144354814980003182781455881228226237249845687810611098181110419446187622856373073864992894858096596742856411447394862994252704267836116395482493677532405238643558192449730456498014006985306079650683819164767949918904254336737257224691818639953027655382897150535240964600964441750169859277385333853297276064308026408587270191313758197299192373978023295986488745276828036742074856818001288743478625263303471386159064701132559171532687226963869239218862039895832862955574447076687815578247270790395905543171913571300116378043873008238600737332114661229818349357385644029928392426354796128410869897030358438761761655943552198975771940512656279814464168036128882954487604318619514821812378848776320825977695164439151578948959938826105309921956237909227974684408826148461495291440688882644356831628704011809343678473403978270647914129756184812668084403539066645446923718688355442671683520528391162253557672594310472562329130370646674683409956232925153476613354967808795130606623070672560132059251960030061228679037772955726929204689937550581263929991443727242875089869064284788624959279115055117268191542903721209239962314085082713835052285922495737359985658658143670275971716328548541339110779756814093762796468851255313014897123749867195367239497400709866702353701403399458507602727950194135328343846054064478177288301167923690188417761507958725100927505227551768562238277791950898673351506737586504624494156774117916367952189950176800082912299608379682401234813482105257808146101974545289603464630951332957248834020187985502731576408287909893085835193536439381071439099300990241155476445414396682880205857514449674971233645686696029037055682018591209519546293501491639984142770671987707177757512401313203240403277322792407199370691488871167307835655586940169106269172238048002918347930938755271971542721480599320476201575366259839818295170876326188034419412315382287793383564525855063094283478074106715244571345524016274744000098482426464285964960167340571366114261924665427092809466969484416035437420339019243704683576125137760028290486252511686096828081899119585202068935027150009841613619748125566936069330812349355307376487878414168030232020781128694874916718598308650102353106019887097407821511626282617473467144819246280653779961407749112785336851555780199662799000498255508902108255415675940086537609953270639408341738765752081217731371906951974916754586565384896323021133887738929872186752949474813001671854913460261061023628835227939845262164407208317502892687210578290964522396494207144480906801135292232894022542781473049107812399149687088407048703910666550058469833246187756599350297945560372597752960949034194849781181724972963762479286338254052914640344786406261280291623072086081947317636568322529915908229353601596799135667406085415891995445161369670727883401997411942296523996446055217107628173559059459920283639117470611591999012204902416275174023202711172429565193787885702070381732290872528260588909556008657562810763974248394902808077163981460770108040174268341253010455398010418676922705556364904798022118280444879140037731175480568056364666812097901000669398653142889157264412600750411617869840037062641717253475496321116054620134991272496057761905629660728325352601752552225891442229071994356038058014175142814776229499562924486668307608685954120290568837734194304676530069247740796731599859974839252721082614291150154821934642754375888987989792671761555929712603964450833829649049779743551835743110345929105664599425981673261258698704561013793628895375507125256686408248425306030042380043273670281002134935902428997745006539773990807884979008407206977803905153793709244276312766884696304033609912899770119044460433488323645415193129498441776983485569661922415264975007381681775413517695054339658994921538213987740509950332498447198338119478135073650635444086412472851956508230331793896585412700640784815995214835118330237586210923898189583149943024724851874216070763847834484240837842467204021465187458141457780554884348178221824764318106433098665206381874902980846264102622647638245360154396341402729486883921770766795745726498956364330243009872785329783075700695800508129946162270494406905854227849735538089412304723753702992565054587495277088990421429015023154919097921740444610861149610523262714989160768643198794510162463374272596892560928540676074645832219443450239468708761988188333440286689074703900719132968561514460139121913534045147873520115677919638882426396569939823106419245470589652922855685583255713708458524871241065471103513402935314520983960946075723099789085407185712579945541050899877429967501412050242320565245874387887933800590784830976119053205340395216218546003002838964938027571129976592082478690173469193543332495471877640523939607001182231753763846629043265350765317142291465068942241138677867137231181129826340946217414726432184020182842817721531729918659796433550463072091872640502832022110421228817637613308566707346085679339067825316020346285601729929646146520755204770418865197684704250311492906218644226945372055764227846967407707041538419895712697460221588546318341385316589884007158266176450290788688417160245133330958500878235325969804489110997402045442443368814318575451820032110252905193592248651757596465507706553048821524173824443042103250527329767555059213785533924557037228158014194210960799624371073422595639271333151589432535543983350659922585430448481464358708606281753968945248511442997219400766769097151671987784327499699405077617671144337911507162701751781470626659557626724317802755417502174906307130890612665826417872449026489719136433165194373432228665918516962721491995181003754709505671646126946802760607086898630198809222914503600469332307047377816013037050094711327681433504060852115768757927131054989345815970573428339951109333220301592240665952468521460085503920450517547911097893062134711504444301613244655332310813119551542578649228326090373415453010463538421510504812693733714926831533625986952658626657215198902232371485124975099641792372445531273658882304615438733080885307585245290683759224225404544153692956269128230616732257313798142411922851214517883199729486124062608754038384410525805787844706315619183097461402181998479781083518228257702132568813889397611346776135229715237762762001684094279597224164557484632813702887287326958288204172299044433917485470593428682916156301486359123098430585491097152220735120671914049694793255047288240750290517239569565949378642987366698103861239638507560337169647390393627167189864723824514026481341213298783757541158042372195769772363851755581919525398256686411775922764809211448775348939569301562510344301573304152849846422077229752515796780553821004213260907801309087020962815928861299312672741612926573661414207769902164001667209508981705113568601618674953330099549434191054354112445530836723977868297648635740717729437453483525719546666823294847428313282798027285326198553242999054580106309591311227241075073329294009342573974451394967698956630290276780100242874699454420676817224360797059353651482611556892309252606049957300336253082571372976170309358845594845755687457731703509018607039917051322898400844012332636640459949822292133034365968805597620334978224813576115846058062534486985542817589990537564456140788554353429896252481092335536612448625494165733815393247080770039001670297837059622383461676450898425587986924198823334156931105583179557675647873999611625470775179639489054541218144997157851366234266784795498055341430892604775859106529817302333815783790461957588556603502974042531651384571725930721010511311753675471967457428679473739786348673196370423158246822126959943980532708415087689110637737569614956215251459049072896799684631227874119259169147557034819161129231565458019726616244025368627509959572005093702033718014986463925748899876139713081876220250387045536918089573855603250198445770378188469814389231631772388074096155779999129403363323649227720282485494935149093325208485678298785493465633148313686021222725852864593390608682953698468048902362888723111745823950259505867935852143832466019590290991514488700249248925819503478062279140440901397408177279655059167096024382832127262235412534361915617177168875650743887270899856568520552949247481055416009616781066578755593301595102895131820214301656017931436947093953620213984961400418393329302363273020909774181791026144396873098464789399724442755157545139769950752158295397346954132231683883084045937298293412030467679749501921454661409421628373767168971872129242059003395684625231457339399768039105411734949195204262405899014763123817619260625287552624052186969128236967312720964723874476049700096829921128280635013589824211808448899138686668581672561387365408888292025100961404575964315157919604709909914742932144155028637110172500982063720552243996498959115986681293428368007961247891575035744373137874173209120292775131760218898964846459041496096934238495903524030617951176131522799520165456375351336654084949024582069456963684321372442186179278031325106928664708217336897396043582448932210569831880022579098493393543950165859234737622579932735327979205719930247494799791609475412286892003422556292907849083046435688864304962392156718883984395023263556419073898072002151919445339539835912567963021477123552671821269278945591519652853619496728625992813681366226575306106674282964956012517496979310508837152503851797227385120606407439573834322087535966017509817476855638979034828665607581347878228053166003871899358228868136128264437756231689565777596094700651129991658977844492473026029438853756735582965206260044088855547979569476650494573811011244645118250807071208911040352004973550354269218748455073576972820978205890802521329077136098475187039962905598466794939235227399734051734562629583503925651650376161757407716497511211455407231722932242038666139918630003740859427932064939563140707850634139202392377670777901152825900681710004005541307990148626390730548254650285629941904228021987973346659318784433422079007175947405352465418560355275998299675610998997180961880205885746832488710590239660316894803114831744872171597391567982286307679938688769592762972109297021233793199234936340773539981766009745080017170986216648289755928649333795871316838550117312366489000870954124120772067205524152095533737748063010136910956765498110407685135003836365663436760380551680369420325674069101952118201345360423173881026547146997789715139001920865834044124318189361138062867747231222912614748028510066463928159722101080531324893198258846343481990635859862385268019624191834807407501369272440929151409698317702462714043263921660424027808478128397102323263371718858428089979654954331947557617210247137345670622687799840803968086950139667999395195738022433901039990355340334863964230480905104034360307545200608556253216533036919085609043779796501211992890586982534516822194329764211190354248712558507410774041975591647747653727600459562809296580428554987308075736073264962351180914745273147924018756278740845039777798969233547824927431003163434472436496955222305676902922939614659185301583641011771811409977641691193511438522593632418513191692096507235301574058952859355980373364167002042538724542001382803263969980385840344896473474631495891863669679123853907366811039924390549393406118123687541633983982790638803271270346083515145086148191139071031501886192640911101034372065224361036965123426420028957848933428868822935392987139887977127482043112518892033738541072815835667190643948931299945174220083409097212152700638339077082902512037390319460141428388554001007246259707059792461341860201605783837618555079716550965338011661322883652098072109502175541792439895002453134810945638612410881677545741350392313881359970795895860785902384413530820914771593447533426292122818983520920418403633876219743479275720334497864601969990843266597439694079565072457063969214817118169190669458899252936178360964455018110111971572066186674240591964269459687203128689726077317409909696562514487995099282812990818090611582358258807053070099290931336951268289567695172996929866553505374465609000592434111430277935260423768095608020269676175846243886471630755413021209561967421322190813333046137194826785778965931507905060913169536160553209423936205813812098830563849316987669699649830120339626880487418539248724412235547554610896092008954747734987966556321312969820167771573472206604828468650918519280708127510067373718812874403019339628630485966197531683880910287289186435779405598294583865449274154623466023475034845535386933092944354481283065320299976845079536439570387243130324156526936725922456509366731163686098504428871754173842762093151727685012066004617793271290620748594819533274431935632581254091556416534188747497545013041884602907243552783690042170238787643785739354418257767802956315676693503677108223617510760930783866222315933737023192221627867120295825391525991099580911009336768457251652830998169349962729584609869288714405011473390021208409933981460847779310351304176462807262080466982244174045897139184309783373234913007081124355171837230871020164036831681211941129998306043704867780086698834889092732448670550610153266339458561696862745157753084147230247221155875746241502592792216668198930067476441070598555591621700852947106260745605496990996872403606559528513835981878474629838368290666721596102482577841755238210423408721933332337389043750752977849567491633127968219164033373982395193381076277167287493865368734839866159061031916988506637786362742021923605849479595070023520769993958733892535636354746819673215038474114515024258060972285873710367908937132901919245018362466185781319619413148443988665298408331555781548688472253226007562006643195351891796145500204129859227591591323126973906488121161043781727432667170594982900600624188748842161803103662297829935168323373523467683535962378499429354240558841990266765483618506263908205544409889091120064802990300521393146634605034231003680170288473772334601446264875411165428859157600305951769507009625744356843302242517056657164442630789711447121230258092110715052045791772877629570881845103702271030871200867432371389227742815534463671175510914791562028535684767888509402271727599654795924029086924186202142741069431706754155356450817396222326910521917958804333254280064987095811309333506400618876216764776197703449262500802282890260885932960250021624893623364076729942870442422004876248037316652974307556089139780422411736104016029346440923528300162921370641667109279972842358062542859568740075232786497234969925495816105360352820497678833354021173039268042026366650031388630752333687754702564459188011901741380977585780496957337714747652642724891725839765066482317498431401619846099767466559298796273518033746792304113255530103194103734622374588899491406552394393576114835935990667004786886158758258647061172596249993492311198401265276150255771402699013648692276279046647428789724101223357378082828397675304015406200744779784894306577622343218986146707021242856324639079555518989347988245882420634186158886948030441373525104468114784611003138751496194060907164221444665471510344069239018133452788418443977107803256944986484585855459723751583360240641824655386288927544414837530054520684279803881370830003772276726765839097962483208092897482415902899951150673294014808528355985812829114836479439747220337577484152364842660520811822173325314901318130229433697080816522081960056191286601096676879410268051783906466054052645587530502810317501463931160651316053156763263145490943793064222014338146796230246132685946472338489530902529659292339276956549584905861756333023179805520834161070809758234875128937889533859684580391508845904370240943458407622790101242197945053539785961867852863218474391655460138945901216009588713906874509247067513733739223017902858003015368746571796909044685672236597068726279514159987325104351854717699390682135303551942288294907547862198071774278383939877160955224491151065007511416479831709056900700362467037617831705657309708370165925767773738492546326030350864634889694161702397387454689354149716492359732464301768662153863778523917267810671989345207214069214291490309116576290580301952032958502558725071592683264858044788206081557596759841187451176570365582921323243987161747009262615921740434883781422102390602693146910945527891373352068919726116758701864890515053728900465661042059770138427506655900251539537374890458225028303253622969105648504758379000150683676617662299302396803433420955597742886987360651876750643146026719511321829812102993218353938127315837238155981942654165677750645751848377258063106135456017031279720011091061790390781810394499599661727528494514415106369045424176368936315098486508371291166502229053647580847441182169249089494306801802824576350104839332578071736348022110234086920726659373443244349586465350721067299911670483924641158697255042733931306179958734468684041685307844739132934508770090482005991247697237093183233361753845680724223092594728597238984633989168655537230088009729548086353443717242741978432011889501972938044078922857138906243045857817018328851416747540472554257165666449824205511664941140809274626205855515394313368063694178020860916134466765541635890936693341659752586916109891945393824968573791385550617576822255616737029853721079721084421382972757867974667919921049689648761023051380399915400870716001453080720735742206138306906990371653466966019207799159042523729066713316966648531344702759324942223226263527094353122153762346045806444830598961674553058563693918377815133574716447736476804075821318788884745378373295964160879076117647761668432014529347516968720723427531426516806036138065800839762697145471107565145573875350995287852211804262520222513747430147901241593232786726742827329442012673538901856267412320190950651042803708654206457226419300739081388132627333391278357118289135357423507782079481888792510787002690585130332937827494182550412044477965865654861584062239526017402546256993582274463209006617964259908378414965492320008236447611777232555734234627395833764417631134009251317629531386167922507334410605538017358904440177059769946805657257132941495254531543212605674617639794397333154718299504856926852221476506454449929316307885137609653583682221955407951430551816879430468595053774575273564327403744871970216679309702082906075231567658452524279618551836561924388484693124432761834368245954438980806885563604217142392412985562230758750473479601349642237823725459917156298127945857389942215239797975055669579848425506733344670090102362790712091773332805504912501736285041076972131520706336440733364338549743714511926849117498633455640198126050398752740309341414841563546325827722989631010342279256540724277543067657595268869184933179951765476078825412596154013505849955171217025723859145401450266808481613757394546459588893266538864015230000919505439093779452976213231677244181734222639156888349798563648369859000831222596377568755643267415878829699310195006972954459936656929748322464901542626490930740620560748262574995683741330457653863407404624427092434867768255542959793448180741771687460040809218278585504645010908166554496100363023519863549184981477424568512587282981795589955795911000516466726892532198615353482663460064232445967529320544292707903546422256853915739201933286632638392364296279967419859960833872001336327464989814446627472988895635099637382334856350929950320767318691029295189500923157850962109438181621944854150554509939443133029666568510136545120032101297387094790158515689159466036215507920713474148057610056745860635869789411353147377762274799334088828744323586604161301056653232522764833846423758663326087226236155478211821814731675465364222758416480553884201427263522694731810814083904873289421569975579775501658184679565452140563182634643349195712427313610029130695104643288803208649971271475932139280236325333112404426807803249703093483568224573455579538239505474687766250077042999510288614126209461033469069739497554759980330550764861735359732758831699757561933215585050795837819626588124076298299918952919738465035946022110651805984469442386913736498581818340488332773039417134044605652161987397096126433365604212422034866069741787534193760346905793836272253921818510919260423941583169585276097393630085867431381951159061195154072597117719288955813170195091671373716874468294622860605047717080914084823116032491482016607868601015664934913985842848996299547965894842057991239811621745745914315683707377127901593522275684395023114417237752028918551513900890323115012973023369271038494878027362245284229429938580492635541159455110493152324665054648933628780042615564368523247722738038628024957459330154650578392311440487029694345434466745359914226431102609686555229275337522469206386965952761419794249716545963774534257378635208136991142663992999191862374751574156133163659227992924243659063441782882425710542719019781764755367241292171046306449303784643217323062279610565647336423707134196953791900829637900348237993190521348299049034766277941733874465918027919856429710482594000038170045485822812323895390076338656397670199661596837589574865978398144859331833943366407027906317650395056927125353680942949750378950449139235028075424377841402587722410595192373415436916816145588582654195958402930680530994570240839958050241415778271688767656441881205371441370433424674763449751023499612299426969326396729873720455390110374138428719444521826190567353714359162769848673178698893131819410441246544951529808341223518572014743100123096321638125279584144623666103302970136342906411125379185798434121741974447547521459028017537158749634469257060287769767391586169820620208194661054388113377717427075365182739640715130847193610692834181065334467175412958399195004794689099965331731928330080216767104772110114735076181060940121844325876653111963585709164509333101880424089729377536917609152552697353461397506144234428829644097937293831828773075501026557708997651900872193007025354258184975415558107708077798737563276734337976096465889280389602275244963088223604665558511715217445405381989901730208526963450675188257138402517351347518901118772723724061761058100052145857283465257501068540604115589877335085597854160788339988867147745449449855657374428267613801003139055539812845591168425017919204649657636608620182982761188971331131784770620135069016365575223577604632400257577597917535688127597773180873491217031218999164190660045608179228804643822610093608997755106861537615604977426545622699058113249440682240615427781852973379777541571197895101201031647965325092188708823036351252950296944851899065744780366061183761095992539281752668442528399717391816327094914140305466683063684369732553274292277140598714229154272037701325232803789202730274994208759873397207244891807462679095926630591274583016427543870382903468333326882277602157833038987691448844157801730242104237638672171903725884009451303102101955492839265516195140691478164185088911945187701843409604773833219334411085243945252169905437848596533372116060523408391987146957733555939093018946527388624103133175502539548762337648190784265327620364944566025506178198673229845158915690822773493840963990722402802842147735564256644844990674402961842132545378985282856264782555241992926893805521260439997913641330521859133742510270821787674614398159138090352837392376331257335142475653980712786933867372187624994574714852847015524512132921332453449621347874372515210113850149279532039275885827117563264648502115287900311067723718817233437230433439250721556859157426970092620359256582967122156337602233215585270881128586835911895796154600416523455757797909294439767625467216580583220980539121621079123467263491339969017654036750877067923143944295774327306577319012451858698479342654320955271349096921182319490192084284811283848468553448718137146075406783557716310263357876980538968440435546215473455263079949365239717793688455076447165111206957708047566141662715304714375517163594056062840906679230868660515775081777595878014153661881838423427071987357800385318167098944417947571474237997450883024319779283699296364391513414708463709012123736272335371996418128871256304217662163364287410230500466375582402909811753049866891051434253873223963974880184110015152384632182904809642172917625240171252402219970218421794141033091133703263732795714379917329828625889042747047587298750690520172616336828223422525282045214237165598716440351575291615876890944825100530727915855596924577414119033229994733712935272398822423044716316009783526195753883717147424084477630911143257469356164004348011329621400325875572708196732169544972637298539723971802897873641396289808167707165854685019953676283965527156026208959534433540805022534899373534411347951530802546026673287059163492083093615996718134351771383755997882126341854074590233715406743745968357300931756564389713619737315009272596428850249404427829875755093788882927235025401978820203664598080496666084326925304155277687214177619852254457410834331630710047811987330586043823232532822639625273050220031572952210766740327907657324634403130731037529272018309544929118294306716341259963020086760676073739658078193422731311862215913272637336495149085355567317679561704363239261321491359588823503528173275294141768956558586614237451057106779031728512261747621384417388792929699593651595333205774641426285885371984488491482530649414828182035138560087463152998822363462746191348035452331944777894227838889727180050636690406480793341116791438292239356842040936358272050501675501992944936014743721435069718324002809733111277332383296197929474029886479730735519435002072457846104328570315662654795654365913964724115653727561957443166629798190592025974957417804690369108338421492282247211957379519330329900398375647152646524158494306121587913046647738693693082057572990550775965520578434527710398092345673056360350869764990233661241867452080095391443764013356800278675992847985561442456287636741608784684364654626569406820318770628914243646610938994245098020038045633647371324313760700097421973108657015923144944649798707081007822312714024266011428583678954834884514967126086537065733928342421462988124479238156246170206349348537511166267400932244656872360119525241869779037549931346100414049915884503977461643023017842668693653467952542666771631164309714595619157057031578962736663462493123925544703759293585920029751919073911298527466757746626265654801405595818189419489397670431954149378816685841586224418232168446002291112499367997803570011330983721732738599935035749485488759520205212075142946578130434363741895874268359787879967084331850208098841784796212878363936296944519095044888336530410137355752811933368352909759987015465797913146596184519087876909427921119550543127690719979470022011354461812400575394870726045870312067521103441012561502203071405041243184220857244554540010583801194158529768206829552989658322254762198288475372783334008512284403927035315873664223831915678202728665090233381376954269600549542234590248528052136683866324436489713016309845042456337196776720794770557002692854963281333112975724442632528293714707223769350751440480161105859710507258035111085080482636497209144653919120523810767371366539953972053602892941522249685627606334869185208217196792453431218824586824203119089024878665353521104001242995828793840582542442077275922761492719174740079385857105842310976282032434264445698678882262597114935615780706649907964675134718729199669001134925146570054474851154421486662252979832880951851378807468395068761100744582840060267827278142730071076666381803126139784914290185975377459746629400217788100868482629481282542536776717953098510056583238949438496767612310015078777125134495561238848657914440488817848487994541059311199936967488598200775306825490621539288041199744308154954842293636829844158841177770470954068699204391346205266178732919743269148915785886723081889429278669534113282608360867661025028195274591927167900489087053444759735929763501079071966486728858885625015281438578215086150271768474329384494356752263431465252961693396746491384101388836195539673171946157041520278916086130931682669409312142091650044637863198943066646487595278935245830260713880437129710392785223298918105699195526856355728989722569045449827607617434057101649114301084723481780220317942201574389779896843720253843306556120005196495762073950020644425441945252406992488487004691196851353393641438545863876354358824012547855230793782089438118615649237129140620374386667960923496193469486606642416944133410866569315094413901196976627669385987655530400933246725367332240748226900046293857805826169818566995289745077499153193144508967651545201284353197798430129080077654367091182222837887538958515402418708804170209656465105149971735134058813459139238233311559157962163277308772131136630808007944638018156714985621800357153110535624647100536064802524459289659983380385671879627457716008651111395644256038093197277619798936153953131399151101258679263975380656918493185933050112448674784613128234311861462519532965343622736382466835269458699205642194487635275009569322249604877937516604319174137372904705012682417516343067755728514607634135784104025421150122919686741047930966681571261523413001353415166911252651407980038127222916236460513460895591730304803478122573197688684301506141453854713738363129681088321319499167888778691823423624495568882958399036048415638573597311551034016265400558176749768585308201246694808692853308162636773468532840868295348065272785239097487235649682593307526922784294308945117456833483455132401815351722392150327314070251844060143172151130989743581455854699582426317427464908185362152597647329991606529266644280641770417925918967275700764703828964766818095586467006699090016980092985296382096426107360389978591908745098132872803157752910321284057469625289618461561738752666062955489990673324414269124447868757607384768472326291737027292944484849709523665313668615038870425510996511648031335458789928489219650333213331116219414062607319810965751611417543230421019583754051783393750418957008586918394863658081480412743814272528824717365121642669891720083135111159173897008802414135227561528275887846343220564262735557466497254921092603714547864715960288480973298798242228229893570738245293954581884829157723089618445208718784728706850564258490712706004827506433777969550168775500961965032062638616793362242638348661882382362478738220132510233571603982605080718070726937441987680920008216964527867682821834385417402410998585081814227937153300430257422182815312009608310809957583183429673357138122581796375658469269011676602870917165871955352180675148377448006162815177686648432454369439666635168624049430247865488587496647573974347843021216650460235123560817683188425747011108774971639708631296956915424974180581052518564946160522909083599318636096144196893199292692891842652901009706600857030519031560778024862710469617943921017810319442138195360847267042099331361863621045069076774690332662351052241810507112660423391789871779742936212917764999065933637270412300098341285335555560687875234406787463316154718494631410385776281162454382825664221223159220656417895246920854669676413366811125993844760943598310293012445534352873336918739104284374122735607194873495736462827791141326732513223532486886090213427573179794002166397620152433619358267483645048223999134085470476373383172389982995680708657505304876452837221493290322350885766406351570603562105979235350032421143267828900112304077368247981954975271664902353299363138200698369081099788541589656300161883981092322216211433674488771543169037603383904072251054469418828646622692662480415068030036891202129617711286816313048215683120985592230855797992825116179257213108215642208576912245343057251285931053005282648628751212004289379461996379385414499464662792500198836148794754469969305809012397137325653621883038829175322029881379431867013798444083719509636759028655714139326557525968955161768328573545178120106077361965414677045911138725027788868375576514307909567185421097471155823706287759207335786794475163317956702452398509457175902209787384504759823365918972816209873482163655732238599847028122875383358008672777797648371930706670199358208065920577293169839231413220254503818264009982821208510801238869089436227898941107732616994027996927535467895860472098907482893981535079496497546451135544384779231257485590123099226456843955125226908515946015020024779565555654031982925369445838406017339002780164152690647339709901142102569014639934506085679864666823900581716590522371795537335618492699216949161386664074233692909777506937290033552196480783500317316147144460878118582344952230181351895910905360223322722757871365116239691268014908993379977917222812227708662818096475866140038830209527856341864762424541656049525297355487893245176592279937160399457237361244983779497493022056078227138368652183492043614435141631469086300871389326741233340628823529984078070807020925856055521968670893621041177672836640776022574977893850576327237762296609897018862951636243896578912125767841182160328744062473206190372462622050146216415590531530648774491562162309859627633060436144857011262779604993782562824989643906810961017319425752750032946033322391367867564189924853011461383126339133951105560602295375074022431017642400625959091553574956754219679756853392901180314138791536631683140531068756540295809359794428790532782564538745677175919651793081749828666702681864390788161523250305007330492162370908391278807439820449215622837115144061234700238784653742391666286330650180410273042692223037525872317049327896498717119937893846230346814290624857365464155292524155855715060792241510716255685364589519435418968329811451485235537886328181500802322644935797141298587172118402303728974393261544055896491709222982713262183105132731008295642370481247636508881589171293716373073438890045527346636845377748531466080798558257903804396949193559687195957804252958661808201877701002322476727858476474068546049661893086473944778989928707667356046955554046909860825821028964130338714423555454826152776422154747594175986128763042638287036820541164995854113381041768412262921374983888308594006732865997308077697874153718903077041660942725625518048254022859958784885167288448053020621522881777040807168504394205880901838174062042437024973987672237894120914333043713597827447952566909265862770455930864741381862776907684114247840927440793288911104140802075800535325281758823454654691136297785095361074694087622923319062865660565164450194988105527148800221636539755560820284270216989170156947071966070271491563405167373101819630203832655837833743635734634691829456845701620877726997005377852498162302424639282439074518206507095692765082166246642931254323629278880471000152924619886351841350061136207129776552296859519875449841696954310587144036024665303282031712686703358910476886577040664670687287204270476661156362428237854037531961235328256286842661678421676186948955503150805904155285335171340817135064943459787835126965168522107886680020484173600087875020028055658272412847031742877154366696822044857155275904581482246740959579767170556683059258104987497620628953103057999630594788621779690359187590795251568593477870797550875847045061792679873301931001872795153869570150684650218217550546617547889707701722921232050875079314745063342658487554767660007846842126972773071635127874625001932449446118922637281857815126406307216303314420034861837859865593575602671794988672709461694124418649312236292035247811254683333555639466554890397338773893478948759802118701824129969940985822360268955838799745227221179750431291364685791660554790531885466726881438005638014412283814900963651685452233338011065062381813856762906786185420552999327791426846275722572848517404961524263270616688782283383814764144737274697032079670522275895413148598641044594627413704828271190237004968014336921053787993417351454579396416481500602946327099811433747972445451633687001325097231838183840871440317187367208056813818499858375188416383458333587716491894269331585916529751346325863128591080992698505836941132956606814848997161370710587928081214358270843732984538805100661222665640073269233532837131970562891292647769905571103790024679480980868243414885470557752280005218953364299127600125617123889728635801581428982655202010388573964372834929208422691450115358729548039106466299108885547255669238424299722280270649240362976942997937977766294803280713403616975098023830069894773792084049300147947263765497506586576232636503968503864651961430099660417046908112855772781647737919181760152424054423572258794084082144237785883923216448623146226763696645625605711342179240604576419489267302236244414748030712606114283898045199697851173671301981145300825057891335996401297088134966343786406071850067028057304413403494378550291625352773431893206606255208359920913596691997631053511209357076127238094154163328028782772012301920053705868218669974501793403673616024596112536165145180344141481296012397915633297348791996500964389381796275352489109578180661554808275431401911481789934466096949577064193392508278181202968801566289699353646788337146190937397529401741766425517335747870946560525760390359188935786893201194354568055082734604745576568710519315225441586789470920698359789043542431689283011516204804358338366535563786043582310071146982272046569089318372587683870772652800436283397882097148296536854420875480748890268315225566243246447524311583853952851671077204106511833494296508461812754034280857730959880013422436844166985297327730533747381736144776399384264653118207036834802934646861469464312075991368883697589676934343561349311022301826728412884451197878409956049951843270658620107611177295823913862664347960906525595484208378589544143432394686825989301369713001251475114548268840052278796868018132885185410121940400138792148813100943299357446245051308758570644988143782241063204906768505943322297112563603236730277428833420098886249925685946722840351358172656264594499196226953384748808661113567916466751963056176606478671799624285769168154873898221533877186786484006661645033493067967668759329052208869201241132949703209663816508703250913520065329711367661311742715554404036302564152133609161976380834371560855999259086293027781722359915335069009283513623569172259917726331978755196152593971979873982549162530295966978777243847968649643251323660681154194274143309168097787091207029638176667284104694691483977970898124393306334864468484076455778041126205209637891255107573195673968055835427109983629848960840369779477427735458137188647281346315539937403044786865582442354786147430720933937491990109505158338890477985404307520781825569811179158189950603941671325180528987827624994582395784849067077736564824494230162729448081148169086397791583706347623273588022618739984040390635347364990626200891448466328076090502392033737109307260354734631768230996918872387302842865760812916723730736203910577721262988664694340693218676948205731044853162589169260990891030529294770802357101428105820239597416643141672997844611697343569694823485849386480455747628246727131827029039725794791276099224965953078585791291163312924093297107564867547487439128242605079781605172003863387462210582796046596419200440447253551370054906299020961929563142525942783292559509815959916708930543554975150839377665975524234758886052830748438650225497277455777534990593726612135272587464564404283937245597541833266108769617196322054151984000314496800871187152787573743680819246475211318588285780460623617151014949796050577849967460276076276608204835372505445422665792322993928632176395942041050087478462148030902885096995255534448136250234791007042685155297496499346962022822150490863745040879304363669835022867138000390224169161727967976428833287627268799995688744185744884350074496653426837372043349600466786178174992754041833716412919515054529070464078463579917343928926536514506553419731072293852095828524962299441088575932126152510140586489839759035100543752815161888589003418785438019390130421127636131098879379598818675365938852598716274089909762208942211360588677016022595940449922633235577449363873309497953160305397982610868717054276311766165130101207421790096624093010092576266732311293685838695912732734710623200000692241148782829219954971035683675657442912444168571557884948671581778588460129772607081115034989154601305500026169294000405268622416004269550813625320135550394140310143575532906922385820478181363080500302762228374309522182222128243688334650295116327013718035854302893139769129963111084766901452998513127303938786603702504499966143165647863281546025180285714756018702030017430460432432189261611344689729067318684773517072966783063010221901182279550046729687582058549024391535749192941407525719754605264391865536692650713211204320078767364719748411856959524794344322875789088683439006671020929373394477699239121913200983031668697369063668435603439452123332656856811427488161638609009217499909809158514902224022998601580376739088899570781079643821975910502056900940845402044565206502902667737229402862095651215665595814322765423630713302636207251588023293082563644483079392516081037815363732583727912484044210272274605056653340797688646768856657087029709799724087263780020105733611212773538899015371733783644443917668781709802444189798522833704783430981857609796179218546038621242820002635198255116261983773276627117521055225936333537579691170130488306238069473798147191958171109538296083955542809545029957304075281066475594440423069623554663010059624891293051576121051657713455352694108821570334482704322104590387754029982651965600718518261092651031386226284711140216749263113076311654860431253764618020739720775787363018780812612141599998115103563604191755352226772857951206085238757510668251732411021791484408406493520807042542928489571716325222066561335439818266645321758485757605260596606134625348708387700781434551790108295353754009567743560511759735009745065576805516713622183951740507393354374731588143078732548336528820046364913460098513214813601442036719775555026457729135064509264762482466362946589331839671298600829373030251750121185278398491592086010988419994792515583185623641129023287076016897160868276792042105200571613494339105663730972192635140253660093058159301239827208142439451859603208546491319194860285255940806287946780009787104526558965004668725922676674667367229194487607817569121667737576163315239010859639327461444910041509421579300785048962372723068482226558498202129841661763824118001020753626318447607264320227063524837559690154502377786808631710910556359073816038886259253697546732228399278815541781849240284808401545127105022879111869569031178365467042087549358720160296078829540785878459806499206551709420869931458478854907123338687143310602637370660377519198108298716535748418258768257378728833791738110217160979699035420626430634676151925343381056780763829021312181293212003263205622980400275614345071025274602488031287751832347197018342555550179150080146310884758534555551816470794630570066504776930900919331200446388625267950237667975591971358764916042947553141995409275373039110381954643511253833760686368113421351008301471761838199291993951533187002699347727666024207398349476700925696478999592430242968776019604546866536989641564401536488999819981027645497014921801695839748295741266412884669343619335417855914902959483801661438719589955080333764244741987010585651618136572776898705682161944289057370853388007362727521891391239589398081101444050882231159775670638896570170676575302711902962671973525151137954896275431437227564459281700283746870252454970162368885880390576960644352022678600720998460660444152397146850565122968196748588835547638139599460023219075192000726477408402334694670108469127796846217847278312400508046425159314558447270753844414663259034424777122197966251241686095902627055282729704112304075031964741521783363201694988293213858784860715576545071688955761233761645486146647606438755140322457108391509526172239980919506632308029960069367132060784868644657077235158790976125307676484513688254955768049566615869170740717494379632164359542811558502882045416387515164493716010237806710670071464208067800864310996513604911245017122341651215668624246099005905935638802586879392675114537925084002152465480195031912989793213955754611006784642632542476487275251017275282884732418065673562045151585012853013914026168315351923466642062893092682229336281756212995056751803143355150758426977213326734773839581875191795631195990401625868593798470140444279452895049867790510457738231689613647340984929361200583548455535081900722518381928692177239345500566836488941261189562638813536217843966903002058351427410263609360235268257073526516098146719181430640507253925509876592023783111167085309249193123530016940099181524998314287695596824237725094658686290713301218286068966529182663545386879053638975078164481802970290469034432426098329950281141792196501565281411026622146540331805677900369111854571101958450123186292275074087959126521597098231513462381517410671208155295337192998187243993280527522170654214505330243463818129263934319434876694723077219897532238849327436752493222104500291712583851157210231667476378836245987593971210675231686946193680080148443542751420919042798682282997923897712361418646142412126005878892556889395880545487719569477216449872802353197584033624381099437332647026681496174706270032553505407928636455317800423268395616843174847785065642442930678603848033587904137429702532718136291189552936834549880333945060714203486387395249220138555691993050398723499640870084569519332110902381388091705493491131755790852355897237308263673293536236829800233329540490115407047089777597457338464601090416924706503219696430785309697134293225204305245185416047824607089942540878671014763458312853661041740174833677458113053066448595645995767729911106382145473164830235303408794941094186109605613970244372948059906841109224217205995533894110251298958194445142814058599796574802419187175146905023959075933343720304622912821819603355045560765545315993183970141672779516763649999751670205127886529200973647342468440164004726759939320234849960335163531744329374558272411945770984137289085775819633239234487129038900703974446714224376553954248228861225111907645406558485015141364677094281941870066535913851158750113094312464128073427137864319898596908702259851313227279337903104379244560230001217187889179115087960429265490744381969304424176159411579802091936900470941532802927835017029810919877600830283154739999313322390206786971523063388083445103032752688279575586602775382184851492588317061856186092657704763624414404600104755780121101903058914608758918617295738348749083925058387054574451839579528767463746533205287563771013596693567498251808310974358634621286588967363941917354797219140811448656304543739729805992866606248162856463550822158943222904272154158467577304661977994020773521564429275293240558808025329435431355628653220567548077837655757972510152377196680278412313536118152862073577944254809521033552489743000624133265560175032963829036483620776127533217858729349818962887459764787980974699470200916905021609868644129216579535666275893479624873915789391118293499970040356807413948492783655532365198002645239113595559302651066566117648722777837803700613219494081406746388022398705747393330333620287279602996666645793084016722849678578922200846697118590388904868592220759590078128336579511899276425749394255829738772985648391502610074183169807128828527461463994406496317147746339347080964537960546974769007867549457208684844890861041225872547890848082513250751914394324190313289939231799126668215538477564482156308505366277445800160914981301834293153769346141938020104628441281235589263267952050729495858946536292073009784203218944738077200479390433839741137022439172396454760647570560159103623337752600660361801731246395185091745021223098531907151786915678298468827057881455833406373444097085667871553298120810958849218291577240013218339862313799796456041531824620388109133620188258733675481763133056655522096427619215639761138677405744909165743951651295830019279086552992430655096337663498319733371620352202937152582100695728960452233035782538854604191940535254259779619353536066903186714455920265596596775879129667380170988634916921077162909795216472119622691030492893305048282271948869488124901246804111066927630387443021712802725015443400070623825967005820126376680011870855455829051798854143688105191940112981822430600871868771760007663342485391477016117152350483999114172340725878770660718653907095815577319532772208460774433168212143839253829283405546132013934278111256320640136115211988061500348698457247734820319013225480269655863109805495711414167516093005689027434175588167943925760172620592510811209529198703633509513928199902117331348917971399070750436572009829064330016408184336038101545554315238409989286696324056423887110431514075960893334399239873608570239346255666203989134113187649163758402676175636048328947172727481669919379823093908443399858298200972191463416027425707187335993160017210423841224108822030660103106999530972833784896526581280766499031765629968551702829221565189950932177536148518129161521808121562921243281019573511178908625878973217273913035740542952010278948536543329117885742793992706028761630710087585402328604709728251291292810308422858604935072638595740798133032232134429926778543608631358127020057210412309386074982704428686756885221116498081872320868213496487992104965580865317399842118960309513721451578485515209902059167253581547160737781681447775961613731678199733082581614999420953310601305560011651885088547537609398089824401593936977577659550847758232299355540124486446672830481456698524868725413084085479325663775262836913344987102126782247937382852939311243477418643633666299013915526447915621777211151659567113152225977632333026572821317047435186420631684952608711430704291650587656741299640269081605451589403205024870633233303952884044813517841216815414364701248622868739444307149680487352593883572333894604184629814113516533820022477059190690714471668704630263407441279754525415704566651220133326849121123765759120224928904942857945827676589672372331564465100906473723552001797596106053409879277347621922329331694963395797528573695249400707143027754890914994250825068052820971997184973984313096641051465998518431175373110697306658424966807003074706898193731865750004685722939771613606010900272639326007492052372339933694014036182175894359617317080782212529486932525946592321497736910199775623195591318546796833878626002977890663885359049504554728062669871996602651540202464970124233167903295629961044453558069995845711010465479010763510604904629100269908523212051903632741151481387370052587672937052387333284926183945212377012521823030502514989374501013162198146113808364117449301309804793741086063533137586544695001869008725812651800367498635647751729254863937673586817340855387627011127633447924143261300217381252712179953890724032927259007203868263879353007261123816662368122949519739334338939750112863297594189244829500208738172685942162518256128817056610919253955335697676617947059212998210479660003800734055654995576361832562208174087690160058611345943805586497381606587127420368175266712267184619493942176029498663361581041167266175738713909867402145298883514272933462406848844275975428260601809862227285355579057113386677799825841973437110261550974321620079576367811163721110482881331509549257336962086408236174752214534782577258791041690326110520758644069350923602230898328153919767793726989484407472065895568345624404847926224394518405915265075818077374242426624846106635587936829519858571903554197845989625502947502136126950370016320661959139078118038565387226335213567333479518985535783122008385886835022138940133526904084544737567611510238552304507582767624338034046122856561820509998526132236466699039691636164177045906447816902058488609771340532250915417850345150253144483054641814831452867803054193530703198503581321640958655801858641882621862866338344023927037646341748748913614051248437504973292201085751173699197978478500296704965321569637749020915669775202241251589854637318569078923214790005156183431071991236855219867458381287769296600606262195040858336257132873026265935840311837707574147085453673295127997646060451354524095582191349062053710516449538496521062887417591076236701122062088496132933527029302389243001269992395065642321014488143179212306781899495151739110645300896290827133773853793418018861000765597774113099514854879348103617725005916100172786825864668411202556525996295533619247296750914172718485783558770709715600236763098638766798582383438678157102829189935784187085398855509641937189671313995033344106254039342766296137803788414232339738023984869367060377088753782393884334156220092793356578105577205226414284814460068115405547408018320636006719716173318194821078970390777347313560714558190533455463363371196418054912379115149514549461449470123084983939877761085786238188580485252211294780850107449092773992646667287559278382494800710005740513069402287665180058568901136776939590721643301692613910556069680516367079123482501226094121721366686064778534859309729448066486489205949351189663244281301129889959196102474098941522382876812365485192582299041469537539948392100685193242437501063516656740677209671720060719112195137261011523694708441583822126858720952966319861116904937650292542210532385210451855469656796538218576324504758556162096880889765529199521951325656266525754443235136335042643419538086170601498860139485584627006974164138208903780031054460594902219952853682482104271733130134681998790951530018995750221813088675824316040101597874360942232188377084382658838929237629191553680998724762798791642780177116555853142622470652464772274045822442060660127823875790992172059210834528990404704632302748924988683115073639599088115821631413157598688025508855710523135582211204561992780020562263332100150798568253880920173954337166132259406421070087201534358748352349284739362778138888160922337127365238019465150810436266163761802120652371376259048953049701883952301887275818669331308441736889345744911726679456795572626324993193769787736847573078990975239573810084339561861619679921357057371347578729782224827511560832750641250698961739356845176636596205648811040348381825099392486581294774298734741565041660300319836601836347794346999690281052409292655066762564227227731843110847227124083116779976984694321580954825468128230119358057139183000401918445812764492781752373467409598264909499219845661058131807798544303732075226304814177758700467060879418967963875898004368728567253528328828382069910206919700907652034823257173788947988170272411752888374168604828824211235118951283984220154676303102058075631027909742449587884226587789478064745493510875900792657526287608003336721261928270161660746549628108690461053788365366889576315220994629436394253098980485487022328070704982822806654060875339073527303963319869559400309783571304531926500814345308930249997648214273602569911144810218620509667954752399026615548751052467989590613666022898291798174261091152004400754499193310312397177153105251124725105288342696288155246386974380006334269401865139363783919357620839135235843453718919117698192204819622339599661578311540732576046454903742844072560860502231265682723290688942445610758167625057452745606529116960772092630791439875876006105928179269620853154714442184265843753519033338437899178353205818572136004592000138133993544302273860626187649753546306864981671092652455664923875885026134829889162833557607563912037367494921368210792347800429970402459794636633424476779603651269136358099921786243207520838938113256649310246620889200823699380569222551761429946006700527720948924917842375604842740564352852844420381996721818802883126690712539379081050633829607404960009364750601616789317835645382697527268288608247563883208857655819817095183370091523444657028157790304968968352535819498391112706906610433538615818252525238711475382955070721370908515576317647166675743560845284330841216582436030649967053772179566251921085748568820944570759045471540164470286745048856164599395510296428872313966103645458653616661561282724407829148090121584883927437256731759934599832095889650549280122096612536843120409605828130559118632679012386764728377205922882904292917721839528540758379866398185812952714835996257565663052160567080326741415759195135549551311846028268297179316415883217531136127945672258583680810816931255406031413660551078283793067464583647157696973653043516711014037315667977043941176685636410335293926673558279257650303513374863951002897707169606824057048904986891523148781491715960699618795587652198994013669677613604492685589746828261700392073933121547053712382953299400961015955408983921552381547971565912891523393764591928390211809983443914298156398522127883860130640317164131506029559852450851006472489146309335708738855207957749271895469408512292829061348374482125157181268072156209637161363370818076116705734113922700121175336532767281929666788277026038386259766185879622085625033315767923206373879975686990669042754617939558597668319968210738558117428926640148509832436829633593505443160609804583430405587896273915547171119603930968658625464094532162280230987507970718865704198354450598357153565736158638904705509231854372941908700384761515836791981531585455499528866544554497410135706439120969321145275852526624030605945382086934124566319854390341781213466462083472977965919560598221049491686655582110375295273747813035859826678779128256344277874414870849725040079827690452022520019833242666426282937712681635946302851538456004344748819326320849691773102262339750423308078665099952029807380047970784312056423889144469341352386067040216660861323268168202445255766048254300565425933041463722583321213921031649235628225587879124618318285336273112668237449194085933592465112139185191570047954749333043159533578681881326031209340113658505613633491176570204099361681543636712176508848764142012658629204304527314765722709172842467575086509178072022899464844322971020639842592385197942167831511258009132430823595560333390486996807817933216769741375646582482798483197308844419341744789054127268059691533309658794351097233688907483560377374714130226788723390308142903135666700478330431166572585395057826299030195805907802448219427382817612021963284660839782275019814237110938394034992433339807423524034161033241537905940290423562762977235720553893598287080803008740079068431708216260300444898802491754374823602508217255102473201331377349259020502240455066810910885242567844003724681871995514302180490036418213105965693429182651837603859902800614258684898901863315459514952977065906677574497720765958471667793748883771081550987854201987015503458841468422104733986127583552596723019102080672126753417790542456079181208345038214008129590014392326972395065579251822687417171868087388733734233649902026394506790941798041189579261148486793056913922620241443123327294575415621875349720187434409952932770615721924533181569258387993521328755194731726355148404467462628245629994584737145231320233338137008142027964103001878170178628739400793376294821428284997051103582682818564266722136306102039680127004190116627716600335658517374689176519862871530755677828582930148937499039321360107257827243547960572375222183750503283563412154910213933430708473890894368697494380524147121642276255734241660768462283775566728990048711475723616259886341258430601192385195476421982447637248817801159914448326614424108996546468629801490983169559858896622805884556724243134532529772966068331822788853994930820652946933808072668744041085252565987122249801152773079240612813345484630072775414347733701801307036944683904759304725588851895627903316472616764357713782467982858998774984675991819317390099315538701583103884276427539966309497701738284338999951512847710020393599084401405484262563092843946540605824340635914983273624439905022098230721592437402558727096697952813934637363338385177376228943423819611469891685504908761603707270354478149492504564942457977109318976195691280336913744320900458442517304779804079573704547827153965845902513085967887406326184105907550859409964018596274888592781427449873609921148733287698722706105957184741796695610165102231979828904736536136146673234643254808552037905206615042356904702710552901239746788784242914157964095749198234913663644242345836634418031873020176668927694866355920148055226886742807825429005637942386955059850985411330270672339226980762132957138348493419975118148386646757839282823136440382716767731040023495033594492470644290128130791092448730640245085420421611032086838494338478797029136463313215211843957176522248499392843840349128428983966847117198558278779747084879861070125054161350058691653706683625315197838684236577507236382581979239822840957161697450027274889222645878859439196696549687518031591692118036514505858365443588338493298686845975534451552470346851298491437623446945510082332656657852713318728441036150102515596515359502948342470879348571238895521397665267537890451047180216671306371914078581376309869063321503235554832656401073089179009750628350440928328381093416318942270657804483237368882385466517469968200017844515263200005286832561790488791726094797453061416624240755784069002156934088472784192477484131707157863513927539532946897667451105379794222616873488644699205772249330031193213702118974686374448216153273745391728984295548595388872053266957724236257415626381965726932138836555641709159112035506317022845326436243257373334490254048564510068299409264742227145027426262476454185465976593788136433975101558699916109348863735988450225659553920973049461650258926853189248366351660551766587475440299218325425028892077146541456197658303056750832816824842655073491579410670383647697117968729027773775148113534791569874913158188043849172203718029593821908218047936895586773262652434027278480965268127451527900683512515149533844505357020019593813069292912156298245969553402311944224097126628116644921360092638702054382326079764133230240357370776413410603381678230515734097177210148500505118939111835382925980159822749272084132418165367103162939400122012797315959413871941376024031432738408554134101599861218850196110097837964016065353426204292196128962246756693916726805383451154398157942309084775337549451948589514846332887647857581194089376075709941709444182833136854518927447320730149892394152952675000489842539435009651406490863013753630786540694362270979096790318352444171446509112645245536619191081014752896581800914621376014535959961879527181630957890793078417485536830569665767638588889741724939423519129590205591281585144604772368775447630283660930121159619788268760650436907706700318389295854365025455531554082403092675668503402812938930007206025559999436246854610780745650920326558961305737185361260876657391069417995025396090054465346897565215066779783065326224967956456114061416196504515051148028171338325968890699908313821709365994672453525302785598441996319108943587109846601484146604019858608164483856127434890809544872169007669484312932497426586969277260950446826375982182629400977128764559136185171255950566240574432677081555723278267515965667963990340090200207835258201495922435042574594087652620284454282288957675515670089411950996580385184410025234704938230329110929410359384849777323965877938929682397778720863251452279245142682530406088873898516967075908899631023185229180011661437047120047403686646633307045154076121332067203303617353829776133885674922992035613639250900173219588135856095550848739548403872998695652617650692170695785594406803121261123209383196128419233703288076627704968897366042470563370386644408112485236751583715639583043124793992404307434233979248773984987279473430830947615312408724951095942434406308206439403280275744897379619036358700747311709293531656519003781755358663338081754889710175668577821323111777136268771713404293544532591925851202851668987934681253171562780982091508088865654386430706467486192703879394765315516677287569180664935005577923411446411675886678559447130727905404112560122675762648224679354206548029785433417372674194196327269173335895361728214715266199573251249551497376524992733628349137848959146296532189757302682366075252059945254862169480523845161082553853138957552539322204434313607335370324064131224235693281762436018015274830204241308603616674129041841901404064233738615413739048170561187991708265035891866254760528989598936546373636917897695060360015375396202217580088512599481376205792344224623290547091579794529448666557769421966189717944892338290079082353261647901116197104065582393906812181175274948233815408880037380855610755714077896100975440495277218642050142608470497034278374328918889662745867066087503618056420752123276176172679444198494332260261998764869979798779813622198923724275134279296664397419426336916447325723572763396295405873936398923579649588635008668930369890820795757909759381261769631514074961009385184433083881243845222594397164199112073731437957395234069352576023741778829569640689869263531362371360621891140177002266324544952429168110289981928557661185877734873247786370606969453586159655742002730855442188652826945985089049131334451205316115732707503586345035689389089845573352881807282065633715610789705976582480150498138850593204172508078919854978272501527215714397581255666463974755504019743783850381988604244478843358092515320022593741966843920970079314383994981913872527204944389900150011330327825131193228671673372748443837213872401895224680991289105396580028944404327804694511787661196377714873196130057536957378334405726047553899551207588340293714356633205979268887563469507911836378712414999686783422416201471587460951838078680075288362169390866474828393082875632172927127957339417085007663082042810251215522572742998238609832873248848628417760393296820343740101654447344938443985960507772913059829292915725572089561737996944385135493692541459909674714241456001331384487572009198057343260190295853763756661623332339177111365488596294008507773929796811086347675973211922907670830913543080236797424280276032719255318746236775752992880789070999876849070192569727115821553438116919225819094353289162074415743789900608885340547621731723657389671445565116039561062093625498075301686822198156127438808174803809969526256331711839126166490408928314251180533335292073526609201329839992325530355458654189751023570773926905239127979604558861716809977828210130027380217414221437829198183888154166534175688989216362339612225299332075290616450811521262018362120819145508832062473077328313769433590173050066265012118156825628545589228921848073309433559570732187683393629350662167965738687156774900685074509490877649012089803941161569546820066933996848058315662307156852479336933359426158909016160080377448616863759102150204722890867235352352191894680981063583249352716960697630081650338042479870007556070258438220005630179495890546118769065809637890996988654393538976608468957505439485662129472615966951987747317361480284924580408787696292889481937321827020649464199339904448883058156110525815360893918260496848027122631523400301616829381688677832546608682037108373973430070639445546916425022641295905313614113583627529407629748657593551262767099037315084786181191207728350121805919300381070973272630559840399251578357021344602750220022810424281997386932487935368010579645244379960200903123226952097346825945594825979146612538489290262650731614663102463397325537996930595719962498483023080787939676568877304128365171453094682273083164037418467806061585735741329054272602677450406894015837703416018128248466499618823588569210001202920492254181905043684714159061978007948899497380452879480678333506870185304919599901718857271249865386314741011726766156956763811750121532188453076268374724310624259150606951151662122958617268930843962736320028132669135163715762942703194122039831586997033118547964739452054692449265372911469670116372241780297856480698846077945013392013606063450899654930196328177662182728030393739276144323914594248110955683559355052837716861651926026621890117734340197689629331432367619990322597136791375627584490022434608762389129726771164703151609686413342184101864723284717753478140735718095128361306983695312418355815222078034105568679883082551437753757786483132540815211489419209896865202324737112187994234722624572949115735717707180372302592794772933919656414692360181418089315028230762567840964157107144680174325112903764197834441635782612386877815225335343816216876557876017318624454039936531244073588666666602308766936345659130201042851844860793450375831112165160920495484581949643438016309378090724691474415644876508917163871363242078083371697568243447077224952002834693450880480043541008560956954959735329285678518843106673622426134634212496348431378565367633138115127383593567025580640688753824868535245902352682662454783133318131760905233074725886561851061676415501599417975264609503427326810800735138227247439167412286921478122396005904490240751107431395030834626340587560940852891953789291531172054989179991228617227134958155516589387142736510542482285551124737398403973436221962840851939428585642190595494199590173395359293120206638169483202878476784401004397500707392810325420294000915544103140259368738670222552159016133550159573796275797534701927377042618043912010937519997164829494121186826460391021552809876868185714785785159779864738910848223812672593720115115557501618048554716278635194428547620200914773504619772794893230059627089249560745980032740453585272712557013685454094026705638750285844389895949126998273504377044564332298111096622391079674461584251191263206459271571396167690155207779254233162179958066865484453740583349393622988759682069043822618375548089950873067362727953222152439200987918385914623151820251665515188463588941283509286544569691980181401465475404581219527444680789385085877024062817279756756989113521522794807797539217983077547439471280796940959571857901174121281688773401276821662263423639504700817534519481071530003751108633937309770834776478351157435922698388422219116807913532210471011556381354041799665650905506597663245755047916307293748465695039547859374841058418060277679973906291199181503815441852460840435186697916702158035257141458024796265160076047224486028168830316897828873920750566264524560979874540454092950766805626093204002950771268174912030023770093255898957615986143543199878651242003948214633774437618902812734298435698212914122132767052704000436789969268445321616973633002576566618924076911645068739547833603509388690518694093982822060898667230936040409979180639855492403491650496001087727163714630209898654036582678462417784347120641324047884010937319827748101375514934456977638118416729388244742231853591725815498518120237535231660872410272818874594490156080352261719687184617503440653692634019249822803648268582183550764052594558533207929453412106559963712872532538331254799612211959730510102731578347465359866872930379382413765930399882191034463263503634273479069820562031464456185439936225694946037969686539171936422783060094190295432056044164033970453992808186932834820468540132773303319500929808113105642306939439270214430447681816502507218250437104945872464271026744336736339808236074499156526315225038395177194108096507967317056522852394414905366753083385975774689759386637106971797681595185890014997943318982981172726218704869507544580131819512613300874214405578642331934414942488372514167785536755252918149515188525127605986050525550208462807962389471200268060510691395302310926857713812804512094213983541335330214813274389120848333533808348785380832926361594566881083879849961549613759724898061851896332012271033852832839902932691265734053003925975937302085494881799911640336587173518135274436716060474470376565662100027440122616504979032081019096453334578015807333381627110292728710334065472420832132581442782314985988915460587957619180515744723897170375923010895232995695809953335662592799219262263501530911352566083210793593067339479350282633411744299494295713630419385581520704197840294583643659065915557234675968661078776170571094727720560135974080253016642901452000402002930717944389239957054916084522860994891999711792184253203067863659528148922783053229042457436286640051550461146229299082617066900099494282039017980770594292893624825797425765524379642029377153862273251527924183053063498164322340262182208871141086251902825361740362685884756931347902193405658256389609332654079493384225901878047531086411586402552855265881055633119859303172484291182589807090983441489846830136458695858045794998515211090368749235129216178226245459202512367908103515219140784614077125131621524456885900139584798362919858426152315025823916564383640580432157777996859492328825028041025304189141069888951472124145591456532151206233033555318177804866624443606605432426177658987874456750000117131508625520200879662739320900148727573935499196278010711876287824807539875868602490006899993811180833136339466608730667910904841169041697753579899289461787149951097866458545706674985055932642808926368071092788021151231444472453425479109120907267800850021212155186381345025723045203915967201446272582229466965482887314478348250406746772983195940792902420800869071708442049203027989847841017820626760128254570680243899226259804025006303395256425329779437772107389708275175045129052789960212267372907079385523082333618024084287803685865923663491235852647308109886069802083503112136698743380545558398296761996595224257723802528709292350471182122384229676942970421907422555186631965958310858490997848885836655382504163803553116997697247681500499758466921576335591373098582345047835752275815536774283649082380818777677327061044954840964060871708493810047663184739274028561174221381624884856431808324363309560094354340255791494723210282017335619930863354062633429062366434225612274661843256479670879462567456582474928795222684942986873577017314869163931787887995446085295560223686235973143955531994752186251100433815280919277310225036954930875155102517519959954375005573240092447587338623705087076382519168654380288187304391906783398928698672913468384231092296285331295434969731107000845174336866592611373346589750283000632716957865482300739859858629298047100645200793819559591183349771618037136195391025620876797840379196176425089385058512213814446723605632691553621662350156980476201462170776892555196383599445998895375747389609855685719880938793331642639752422868665971698855022710696950911047185939736645366843165321622047971682141076937737563604379295398840705403051377246308046066303585227019025683389885781922225114000497379964697507701197602237217209835997250343829671015275118017575820035801836200769733672591578569574650329988518191068421359227995607094996674461588410112245573424682562519739681916431242155198765860586795545141353982197121373252733344001282529583121352160083635325493705602711874425676411462050382632349288676372688380401295231259020439377516226290192334702988809506645910877568344964200806098829234827989996297109340237101928495966181047361404051115485684435141268057448051684340342519832325189930429254431177265421726987038190880131808975957908729318764780815486029936818033079369947062851879478694161724701885683075227436274508034430033238454204838199972414855767652807303070196093424200388583288037755937121943497907748485083621507924052852480556775388598930947638189483847347208671463756652566773278621207710302488910204386429120206369044230445514836819674209189128684547299756644283227070081043604867299321967971090238542626303444321189723866643964825671759165306979419964714924694663103789477572970965241342185428370156224679020443751496244160617042055426809103863177533203455778660075879961906734574748374998544607835214993917404224428760754416687597086288888381529251830014052241859714242280845092842888846471817305305175114326338362395233985887655528004867747101303804007633643535881624083465186839681794470781820748751258990965241026087509182497454636078203636733166164427718938896522273225823122055492133091627194712806839920784481539564883095874444979310469727533634327069662632130945323784435029705267271942317619251753486773127347371384126466290652213716859933478554590592183668816651191222117829803269260972054663457000960639920430570362194504987320669969326363891363024229827100766715336760981640046158364915161996351187809201959409226175046335247529019568174641546071022288338053968561307256613773908211916473841886281507030307009296719117615936312918696097287065834798510379347265736638997427913819456130003968828959531831803568279044892115282866691073902561649362407245626192019331804642866351148646722894793525614918200471115228432410981183979873004730398589751374995049206452685436829592871938454012582592684678480112534357739840266415925922768147239009461489148591472896803213180431412084938872758350505392542214578498947009875871118874488225924606577418696994488129975631982831225124084485414326621129738510858277711936988950219113851241931643632289764572549989647820356981918011929205850005572179595587794982874486108961390287246316329682606980634549678947410007666258224485812849081000479524173844056922600700006143670642284004259351027921905904925213487698938891064741058182341823337230926787264162432432412755194905287917971720262482595306574047958769319524488713875924558564737657871881778331108334532483992640802027743207779172176722400316295476006668614468985703584652373617881484204030824637497567358554041385393108116862750128296883082025438115691487598634298560050087299196213211606368797325059789236724225812503020006132713930402247039644638416208582995314140870875780798280685170164972789428410969687230942271137234428857473496659683300329284119730181457028734156006951933770272507619094169490560632533200358036145610922929223268634140810566672942536495446853051582647250403679579421061359538703343128152086607782347269003054880972965788041921853975337381887347643996744123570177126030422103874916940692565662586171669535095396781832058402013920140920983429532907310449870565275493319677279972461463058820442489623088089966027426653474649655110921959083366270858000639076052869946930335511447429919455989451288840126131671419166988739863596704539582875154393575117646445642228403391867214326089434980080023442677419327330087924130407032223964691750317670998080870012946258662084671836474223844119407932386658318547842721039792203042101758387425740224131485184242994369497381341474119347178844214974436563858791130310623727850946196647246313726301505629581889924916439667229528433352333522444512834511646214435483568250087401775524031855694727328230556601932618222157874199331684019818755221238232434599465229065968102524789048230578790078515563855576992126498797287485808100827058589505397399468718241186061772505054223852928447085166759096186131466864716145648502230669832282760114623587417972605021288312178822168254203196801391137270146715664805420892250668811401817436316260597122121710202051734089751823603265406660212843003215230228467576861849756518707688166027590580103278838330820498262485886709119100257668816643516343804419905292264295329698479036411212253409513510702921316528220954238556183845047615029632073273243714224552985497037885709128160235210553071052143320002465603723365524759269378923521469506054483584380585279680211568110748227405238686251138997775375613355769680537676568408286041771932644508524381589672056011639796980707011252303584314283019259211825825952624982988811301730298353826120857218850939941500497706724181384421123583635695383637391397459928710893412525312258215303965900070317896549288772589214418854137630827481725941792210118904693383417009041008708338373252593680250955761865239561438536301898678755379440959236299276537239203848026801820389137153724281379810184867066487761146801706136134724874320887993993091280530379377891840643307315689851702506344962089394154966426154331010468317065739939042966912118117302818369632700740615616183237659857677612333474387917188817047387101628454103609057136977386267751222993203415761114128170154717330689581380852997404266400976816831325085958863255513627908830311046628346843647223062572183216692880494548106244514360957064483571945809284875856558471572383696665589122315301947673105526744289792060942564943519349259955137500107473149217631818442283987927938986017045178072702919020374202870813227738405302225150506677377252794652784207164789526949338433515751497279396212298132873195753084393340183165541341883405256770689443237527442924372434775526271906006992023074494048829175836862172025565708824042563271151955693237276820116631772017138663215215240776843778052304120391635467793730977834204603738905652725100230121467585135839049429389650007162527985515757797554532016454347338164542589427038376171433665327508037658164132169602758783062874512459918470900873142847165458639593025232153337071455861435660111955167319205496927829481063414813475902203719317703725789125944963106306035663435404015325075606562884509238623875923780169485527728815702635542945187212576326929420722136907786136719511647326831952061801551245908880821615371722062103728258836914866501514735370862988841629852757656636063053826394340820704153546748827129792154208532961970251240365978183525991111258874469935160734316179213038735850868245935956435365124176158342046130614219053436729680242531510990044325872135019374718473250235279545604408580588376019232409876549261818937771816606360853880675419512267584729359031326103063140013833382658767830247342437932161603807848175634350524313351617427570880247120314214949552786961974222756692538908987149369998191079594149847305299317879710665615882414554785215604086735498774886845430047937875691026994724290144164043065588626219984145185478397769028493306396602046691289211650961325678172139704931433484037890088474372710377973991643310694501982732511622077765272442044994436112153004460115358635077514415653588790761765234404495800321783696686059071137946992584249930836916204767789242531990237865295772742862912762436006206028131291010489393346375057581973911205922193387204345345059697139222641876318339375714323684858791620457131783693683287585673710240406055241303333319697998830710442800401662351580465382841015545345904241087215068040771272826644606043826100694019958996157446399287125776048980060065021740655917749933781164089106153109828975101223069534237612950745522707569742358224050557088593660296570258816057453396957099687090837036683572442976827863770346064835491559378049279802199577894308798431541853435120105550079429170576030956848916122856630449984504547590017889945650258126375334421521468181296498927459934554524464032385691507522222828216958868661034863800394343963778736723839283553647158674674957787808717637458941597794174118558785781204691524035177023169006713930702086174406408299599129952179092480889541337350237174132253737947932350320241857867918043526805505324383092210055719324783501099881778149175806645554423917430370198857395490247354484162897184716422407924678411886535190350225173411674950781566528752170038756825840790444050834255356265055210603096916230137609767040575760129924807775363363889100884977061751715098258205596089733250460219247967029864505135339925811581760490581628235618557343450540481349627570195042112831706672392368060248777163847507578811901308925144311534579645951971386003783656493535584263868828668815125884820276534194121264651881244111663854059148008046152133962452865631708654048125509968577453866543226765257114486401491003529011434188582389294416297528558402965395138571467628369107453933347224206970685519124714716076963604694536526233254371479755772835121300059216492104677979830367687710106692238814731277992986761469927418038634033693950894368387591622085423151625640620845379761643397928968741335412627582656168575516296124611055240787646660206264396091977702962630335642633336676725843160173224850304496511735813765535018777256949526656932007509605901497697125631881751771351345060137021823319922903581972470119743443236169584642938147173799617970637844747631400862144591017275384821382282851492089652099340723494035591096762901479621391303003444808559171328309573267403862437631041273356834169022439763138461443131156983780536484880012310596807710856747155646571249751286167462251265830832970832828408908938416443818558898468162774262615307934519671244956057590400893344050659736284731370152286175251920655742775815899480924614854061848119981129097874437223252064264271029571152788756149667340720619018616244079985118213207066973252384669967084338239263432431999814215715695240849005709398088766314745290744531484335569546743991254708467496241197056473426343389181851378095587347125458554396547431291163465921674084824612092289093969028746469152630245055059092421088694015518815531515337628884177324326597416034871071183367003375820315455863835877979801752773193403266253803808107666331750437947560604523722789672804173110170464374204124906079358736386272950336500426410043532331759969205733875794387243655151150254058754421001182873362970800580135282159082234861685503181438360669449599516527542802039781823433613041024791934298019373747099319738875027724416141405415569706754001083477445550302117669708045118627037948661875908655017333961829603921376029928439272782068970201083905202198440601805354536375839880064804775808303553603652887730654295786705445371576790597247710278532249593209776098326548902066193959197774068088295339470856049960548854016371127462602313391719751235040545529834439763096527424222765681427152266383947405030786473225623862726037388407519144828352071784120827801216016967904033194092368960610770706510039804945450375859195253481487251777248721406616394834895936918386916766128332949911203979978829508413584054080718524586747497685568591538747109384988463584518128875984368461480749292342974971751357899912000152056732858247074742827696994705595525314256835957493068159298820171113869025646715201502369641250085491260534007725110344755705434266777540201506769580734773215577735159042091086028165432415178896714599652768690874740195309493082921134769360225430589634665271093427436189274251582364745278977197914992088525628125714968874677774111253903344255960182951853014077654070425288846694558437498146821845601632721874108300205112212940318979526044259900434227195810770087475773412952574866491023107020230901249111931582947865252188093737812006485140064897831606347580078242031294612644439354878404034376547037293246221329947558205853049230210455893388063063452547806325207936433273190545367244833666444470574092514332490185315855220415826629730546444772023770477579278505342909601681097852695149849390895993562797108579246101985190786439588103699229256762336787831827105535727833507361816622090865909232368850921560993400068838575460953279218948577117851234478907954613484153840147226110176127092131378544293270066683199474084610824395029422731715105900320990811048471028155575183731324470568621932188231314198222905921684214682452426114472497094869205678761383679625355000221242256260570763726210125168922051376177255750413058505936062172808703304541174934080204883306890616140088430227115041871928145945732054893657165274947422125491971166401936123282743905983263464546569741296718328927768474948457314884691822190350917827451562906146021364894243141683091481528616202494255516399300187932320368079456661404532299379232860628643687932471095546619231211487336899548504711529030167656389378693726094957758812581525436717685803150953929757285301478257481857488385598208849823061716613500908664768577078908560274292423517293000320228649224066790495114607281677146920377921956418020436942106207958076745757869141406344040111305882263469962234690236924573802944077299743816746293832828042519494794420016527967558074183241850040660316826043481453864058876199334474965015885667475834246486086001537365764979647420617287497439288548915266023461611561485690493138551230818801840166674293407237345427039380289108882803385763562534003365815245826298139238648527963630413989258097638262836106952169773809959298538656400978156998163183808640755730332652962725878763166741834838654865080310864719240849695251632216316791009863385385071982303113040033135270305310233914009057051515176993101050131868194519239807029528563385105376954056282830211653565208749272683967890358196177337177173387598693339803393414725552090336347919884944004623762673230635936289291877096406594491262006039904471450465871389833187673563892467930136872383554043816858358116748431492104851114220943357245670154399065142725772543956361627187762893374006975333114535451213493681552176597182442205820001472001836452414656835036326847616938231577318879358439104365356743261739266104438878672636826061518659358600921642738083325673020212894957872464279652141691327533695960248662142931414914908329132102018301862620105733988857637653725157217075971035547678762074108986035762081188488250384751461932331040382310198736065751579049549857908356584517897883900207270178525951815635388689319820716450691368884901121034844592089603183295666123666195104871943813308100752902222967142290983080780082866801654486700678517141252750302774356470818673961473164271108783730728323777259513423332135780805922231942639225724186270117862363676309189608670202360372067547306861258047553664582960556917621084820919771708674457212161247740128499070716151480521636775270389619246170274629844196924471969915642910248416478416067112646189839410638187109787406685075531959130395664818504322936575814909611168607694144690329153989728928127585020805226858034926096227519125873218936196045771205042119677531994099984142680475508969048859662802906670907363888485867459814984502914190185453313740373656150701154767008815367200338813594199548438228131562783591565004846724758485004773903004328922556242719113826232253496001912178781945693809479164944409834179973462606029311530426317856979810222051911012976480621768884344737710281775263417693209339456536714193534092577991987383764224360788004983937137054011707216164828079845211661660021533316481339586361534817252225652983134512252190199930659655540253439787491163350470899505137026986421976064225581988241571860171724674479808587345200892525959328856625665187888305994271036503328728740674132997961524678293056268842497588234358671353248773955678553711203816640506516693906488876206298791842851240590056966039614992579654876896763412721570778482065013209894528611992246956137025989858254286400396078502837772794699509519967211829620840048280403818415879695887109788311865762437484236150998599894992790779482821326261935334875080276031958740155856492763519742480383503709835879866866087584373600140984151147327915970323750330118509744612376594118548135617505381209456871307956312566170469413639962263029266034652649241632110144492381050025891924274025339109198292933717964856539455376659120452667332996721617144403822836295549867457839397712360854451131087727757762622732435537325880104256785749452969688355699743557273019614064984640995269665366109356414994733504664678690349949942854409800817512616263853870927704158050543056402137032636030349805963574675368276481549062233696959212715048449409381837110949625214185653582689755778155084432639376504316219524927456792953074538927456544719883163207306156814484686656417436423169540715829272335811190937349155676363934088970722383310918614343941602575866103505737799234220443709776781250369367235341718078677275014410095354421359120621285034824877482889374755149521089756353947119798092336859552720460796721068998011591519001199147705500516151354985760123958887297336636770370409654380622131045968423472407377424202609460630505149207227452595275986984453442588327496140854292937834590047570912850680735404485384936154595979994691854559001543596126213856874864450425294597626264433468612099860984145323013411413870358973235591909197253789737700734406697221692239084877714952511582618175395968184811269963108736873791263046340874662689097407473188448425477444826828429956830730933646248903102858192193951795732241665141171432747786301687433378669634082821953856106059919789876912598682091085280674356344403494732680406571446551770812951679673466764956688166533739212524751803745755544622220351578604933975044835082048185376468580106855267198200505887441345968241732124248995249262738520169901069356064160601081700194117469314800006162426878266901313177414241246614313424695275524025781873123317503964325760754810172690583772271512985123467867463511195255229500693686233625986996987876897047362326282437517448091270885295946033690407839660123314987462244528595233216319990530054122618655980345604188702167046389230403502660782065143391954305074167990990457526206496540938812758623488106089250419046635232363958476818204601011738494259074021433346016713333810243839778946245766085694709857212373532624145332471322438525607706759920483362337998357556380287107898482838300533075877007021187391727345426319442910537407714977501161495334955430707559564488414733682202936978256839039677586496737561370425456557463924877429409406249996400424305708301618918985593441309255253516878586070364405445078941727749010638803307071849712584772796174630619252951872110034703372644277547774185138679414538616831762460217941054556190450869620353281789745111896861955430189801715755079724982501232479341775924716535018211320020990771014073786369302465405115529858106808768130260506939081021489004413330209956798717966857011256646572498237515923487520928991731913166015261416379518812780945266854379368008738962049813491459569448788305218603736873474977281489137056694270651070212559675213968631636166574467889822864779130474516656631259608348074649053160778906207539466890070504066812952171906851797289952667498345015454862036823195679775805255052877798689043277091864214804248599876851735538733840830025586538040241940455170339013352078398102758234771364642889379766053779091874152090781454738912115928216899663459675114603495522588711981324290292812671929966290614068922238829898170445998335571849736698100962290824607573584184736287028162076457883338759473356764279417785048558365217211304021556719184462279474439001612428310483121798018472368000361029374533899276411930157197969925570508008214051313660208732124107923593446416662426896453618630917789503779754913714409602088613764620885754504529997309492837635404760803233120253668773271269070240599101282028418722464398254169182283930521626548147664098668535747003929883785879651483971852447378611241277442279589406400750297695685310060186312009779829007883256184149223131381377537452419891636212594276436211039653346965861042494652136394525367740403303294542701740183216849468644101588735617861301055196450313706184337946683646229852987450483777173911921101648731110327745325997220727463422954719455353394707551185341768773475090136848386715785060260524505497518338697646899637203119171410897263079689092063932289757604660527311832766764981822459245105502611115833370024916612295292356231587416636553613461034250888994553312154784848794475803691766988319097573367497332115455406884260948344493253355811520294829581856391747956433725769477255432949084698027132236381281677836301870784714131689825842812235513115865509287492543170053424559238383776404005895182531205800605352691855365783399276051829444142439775075014356831969593504279192111404733803785959874137455634865686276778977761221036095112203132224231085945261260905980504531244918785505076741053065542077162027737383375520962800622514298722048588902749844840750411524873774861259549974492276785981884671468042066422811546660504540821745195186180126318285698281546100354585212438770200364808927549784952837289277965285943067469909951309820355502943128742344428281857442542256532922300967721809156078478599590471536438789067302488368453746003716566996436008863011221538062037153000326973488060358400889994376511305820133043517891449172174082920873749689525335503939714770797520494564784802912575993421445667898651900406383803233894671634645461221438306602054336945612093621856637825506181892172146208472543364069144373959055179807446627481835120747251826765421687700396105824990180088527647392644704006173216917213201484934958097338089649593153969990973090655568209284222428969392372833395380272429765622664107051521947868017848649948980962835624734804547203972785589913676612414527951165393546525268211476226858203484215944697495923627190248983861286228109222613540208764917781467800701218620736733025482046317515350286187620511715816434624576238246833090798940230350012134479080080093206518775087099972692836892450017771896240349523499281918652520280211264972467694143638026064457216868206091532016564809223983040209181514750797098434520036284906413160414660517316391318117398212306015382708992664883278894516698269980126593552458565553271232456546745992884129878278684934345374659805556380862845190964744843838874395729231064419752382741319665131992331502924388436206272465713762560022325813976452166581255700767129858019316472941468743673690349171056454029375125226580634002645062613697563023926632028270127736777706879917903261455746228859480008584418023042802720760744511319073749628578012925980895259608706152044184908182233267249741405283427717361891192071546075300237409777889897714179464778580560445271673697450030966005447348855974307110207931310939566067792731796429704963282904285882744250969985242696443495044266763439508579145812264247466221641226853875846787454940103668175443391283010743704920741661361395969465072464005703399892379230579220137197788595802725788843259302469386084891699186307090505857150552292291499574847773221464014593210873299957903498244772711056936006399391194977980306310848707589698263241491322974283356638168735331560002635766286633875189001108301345939347262674236642104934871811345042052648448561953372204276275123114034673754790953648702174323907826395682367436800818308573128171100883178866663571896784250679408573885146151451177806373246147917960564925623026333645832898911443034244913887724420945100971177693285069621009347535152216625687927111631998205145414416114608934163491603219118685234520121840592833380156822325862378718373531433803916059595658692248933214408030977857953540740624157080448979970697022725063775238280388357701604054532827691746583728394406092570468851624422097453174430208249152026571750404076230365551913620940863911196127522826172764628073813071341388104269492092596271393596454259789697377588298589606652309823244443124678906804346174478520100276303836568978523135166948281584886699972493974702004546630615963681213571433790494883668943445451511318563762292857310810691946353340047104406883122659292581171672185703115465821747339143443011376350434476496315349933778893283810639778012721388686960349432872065287485136937680156317165371887409511840798901376613914405857805291337210600874322557745059464117069081383666053603746126919000356880630184007862474496307073704649588554459639373996356911607593301448485643228256335066743182148888171326315774775824390304206543624276892176309076686268101614621285701945134173707222453790749533179189783219346509048998015239394102685074142149796815159795396672065987304205486067081956463634089259541312412180418456821312019429762444367987954801587763058229327212478459502918041856001013229309297107210997649249458472234305019177041488162375964925525348343853791175584699030469914700207749056403044934538322737373166260201479158530894150448648774679789172285648745152555012324693210558953924363721225373562575475464826763023762957571771794846068700974342530011922379260783294391737939381863243130551509117547825963410378611974650525755911411800297454953677865821855520371464748865786531582819047908973804052856650088333523441807322871188084399102459827248020119793368305992958370664324522153003401917888708650628571768795513765667007724902649676268983094607175612903332827869536878217984873811311595344908239831670525817826055018061490736406774888230013537273533778159034480941253304488427837451147357095221531568831559545173732803374229094795765078788584138381498246644654241732428679678459108976478189614671274013698798982944683980559041395620577832830178455352927616748018350750456112395414411065466269587119469451899642502886494389520094800350928850714133331227662610507583746760546715153572544154319909105461096837996892669525629268569625062626267032967812460631974080916124199877386033533978721966331698245789033383568221277356488559767828761388220268386306772680636052782413991758426881221076395286095671052773497846635408571436409792686019582341216644446777085103184612368681388435619691684879048212361034832278627190831508788905034590546355754721646151346739341029476855228899685200313562288015902939974621250330999761032981444264859085116599997888674568854008781628746942140011777938713785296764012739243172139605632505642615962656018920886891764161322131216238241977508731649090646204745274552853900440178197751726642484098116048737205843539209428369466812895697552248154581457520348080583208804402267846195954340456615133266784485614439108029070046525559581968498742700319745906810715273559198033740128862004152032077800831888098270486264870029691555388600408375496326491694631025330228181201129772978426731569432471866539919842403751205928741564587954974443455607725835241505319838287613480770457009426599862889434134676999615404627216043637432685345646871136173156533670485427722197106853673739259020431942576212129473697857160901270906900537840426063995109057115847079557185907893316508531556666385689967577801217976247747843105499166419216786679203257473255389619236836397503583166601130713150396694893369745198907329189678619156316112916565919156949119827762140262137358788492245249691648146137930957104676896637283553919219783418431069804400195717914676479676361857832367849718403732489136075058416394723010613724701893877958751549941826517389229287554973092886981957684358052530971846548767790891750647311375343812147532853919121341767823400559227893528184061887042986866816331485620756421786987985009842044238541092641197863733738822486650775817431333210767743284348517692920919936022540607376131095892475792576963682612616889942591689691821433343830174643668168446984143831329102421244501348462156644323454442412961970380365230804101457559038426097271358570622103349130885571278179291114939388954766190402504621511641059205098581941962219511905580561058892642403292574169032968173786503705433753614134663330082399671587781908713624840023578600496426024961690596397174584907725573390859021612030712578747250684852032115410759090984108584788689735864689686645643229714016836366021854084981406553820426739819149908530725275828263324738186024623092691309056407449739828667584545224870488791287717218215428024641216910278612906487993458423735171948706142781087618434494900353880821646878816385371616367319899768493046286558748369736657131225448193090503668437692794365505467586752504940622650769068488101308695918493636695267721831266802971520656601280838249114717663504389583416729053671883766885669519967683353350149918547107358909678169479097459226920850926319205492431754549948735876030883268053708963378274205560939347997747290313412189500584394489604658514739019915054964396541343587061111588615073413968898764042857321677138934517728445630621660486148615672471138438806424451680509172358888961652101303646500838491303894599284040039701148026222594027954039728574836961317096980467764529930391963900782051480150309857866789525054934458841726213252518583530887702263752727742001152197644281353401157913648525691941018683349179241620031845790216375516325673833947523735530939533644508139519810489027365838114410952616984574271261107670283504063718443807455581171849956419840920200008479379848335664375604451630626476266815162562410255294327070690479950073808202462397707345520310772558202602604346809367823988683729274643142952540045163026932716727512510928292855746539036601100934758048455060565287434570898900963915960779638658993619187680930383360608465327734631285246930144588158262669253901404306946150050166426666189529017648956648579379196664025933416283607900114503897225962558723231001069041137543799782247647540569416906211185793524412049239193471756709244935098481477431802794984646940425762904941707449010673564638860166253399498917834050807802345576621925874998213627517684950240886889422861542079366491947272280752851856170403065732974349831589567521095636456002786130096094340742575736379459982831004160467543411117675526079617394802726590846469416255284579093297149527592481797739754747495448471670363817149523972528137527348070064653416175053375717360466182432275168434000471858931675250334238953230113112289591295486536335837124401384708319169964277541786945798594589155439971650997780707785322423351699770781890981501429506599723296837776129220931871090841440946344847930800791908729523180107348602564536761456187335672766648725724665384827329433222573204572041478910479652847554819236944217316784051538958773548520732090005796604928256559209684292608903073212964422871836901435741342168040609131392792761774864935018875569975436263401513199331996102205596526979735632215219824654331748033929205447703773259237584381847597705344910663959213000913903267092649312885591909944156054313377668015707245357661994036812300403425401211373161374606705221916543050010079954656468482236903487112398947760622659717643437066076764900648000270468838740536905390154573612985902484427693639916934887021919363273407470436861817589968920471384258956274803041647131961268390102689951140699421763616108190338494484200632939870438495073010609207962579867827647440240162011681254801935470484835147348552770749376010302711415307312849042002183690762229346187965674489119606272393433766343411665920755602943830683975047073491114542726331385682027485751816920159768694154355894246818685235709814243584621502958272946884628262007355088394962066729782141602781944311426430903420619915825361311557402452104163852502774380597421786765825639088742587568163729197555109620333805139047559326742652503054941657194488748952406835165020959879286813635750984242791024405596764571726440951220995999194871157892780028604022691014803664183993981358654943614115458148251897937758188666791777858054236587985737823600804675692252229862526937980802741023091465310774235124747586925580365714564730907426647017150132268110107229650810300990173702684092907608712047878584868628809506721867779108990047796572080030382301070048521677351820708932499136984098323270839436894064095494315851690327892883895410486032644232937589023696494878140920134859832468988216949054453775912768247103697355767427150241163239042231689598438011656016355931576624002142656672807378615604696760615949660359986744754474044167581719936210689898680329406253420289151072883987018077192447350064596117673013851345200095423271766993702313596326978276894926606837761318217620247693074346403130232315094547274619436750360221494111607240424064205718108519962003310404579394190725748416517031932771322861115768481350978218744833573358631039170448487527909722783803580169840102039117154265316486436807251209762898493142616974574207962732826134204270798737685980350315519548337699106574509529028922790832265880293029606748884393056425297195872899612005319427778360570915250008236922147560280933721861417735964396193591116611618965127160170513049411845837051145675622374969947106579759537325868134238802743519147141566877405103359573119104146965247409320713765652841591966194714035841259442864273802721261570495826601938077158829054142494298424556471336628088220674213152772405195466462837668251332580014920334227216334139583786863876980431832333563127694469049276671464517852975006701567006212584055686423849047446165215436413443850942226839309329695714043340835873332408811615762438670593040951806392295790270474519195207781106315922505132056678525566801352262636452745338097014029406560279497889522462193876590270931047873652598420128850421802651990984317168363838904656052300378266086799820734643377242490316734597733128548304083769890748263078064986623613586499648293290990352981202688727566002662657381931760017446402773257740429887159844666243667765770221013915995544867999821421468577287690992546143239826172088799314500150887249719303308517397309744004536116823026759210305080765960113594808265772647294215720295924959598452766087407151140941229106727429397529854334870245712521544717596140176266845148908148019324573452066718836210097509155175019808312131535532430982297674003895708231307731629709027521242719638043045598374692293479531398822990972195490649638831849089240410884676498270776462747565429271395160259408915231776897962091316182534609770468327617857595023955350748340782496210264048072187512425058377881464701063163457098177253809070521139813306039271401730730504384574777397887057697269291540576504113333861591122576184057211240906060067986246621079673993493317701251459038615015170485217055490624857792138849231027296330688838225678453088706703005302288597834627548922969819473716985662948642814753556778399682106396125973231101061853850917505478547905095098902906334881748878863023258857195713359497466019016737391483955520002744492277198262773823745573683542635226897793824526887353570064383723574833266142742858021919026856562796496171191765986943964962112679598059970449020754864846822006077230694685629607359950567543005198032987883061871655182312219733806052569953883544631481357905588632134086382545829675119022079415525891558503748784293513525322473383110572678826453250403609907983728896502750411577480913642799030671774004181829717857977554038228848005292959836293341793609588552701005846345374326917745416632637071176803343955992415643131452823623746497217912802381696410990423299198690520331805488139456449550231974196109165272105953671075699020842286247292332931916778243615982416096871928607675535817878726025199150805841426284684074403707386161223241415264480233139728059058776220889862516412879373215898867395421493064146050680317596600427422933835814211981846708031758090661564030938876422736756110880978328606327417828387041817185272345048508061928575757254011267106120020022019045432681345629470270519931165792955723696810446825082483016210216144502480781308445191156622879578300484462194264818967050165660119063193423807941020345014732391723531636111047171418281273629207704036665450741008279241097856977252548973313012386121731624426668498145298307624003036672255187140801439221617918957170374536679818508691423263463423694210905429412444305476936248095652172308392923092986093648405416565088390970903143823537769400490472800175102067863919567915988837178206062126354098203046585657134769917097460360811163516830731450758596774735920632402956090674957941983161276444461559136945139408477200585396152973580410473862526981655863969757757883809967088743979358366970445098543101835905100871223371031654388664497663238755794107156199686121953728439388575903022005651184051762449415723475976225749973364325731908118320030051943568705763503924111254227092022425853166265443022918792475182798611505798411111018766088104206819193856747948384312046792230513625820543361412610824786705809754631655734329721366096282819547579892647384497834612846602285743077592851724070598769728613073939809646410411890766098238533816600654404458725666202753639156866880692266534666320349400937463245509364153123473011693805107203059757118360281113595140691764688093527473363863514246948126358519337190139455954316122272416549175808175758129871026244955484174733078461355900514811907371245098999605348080703853267028983944072094577727781322851350535393906848855800718908932455858248884251625645507591341919117984736721955947963203475536260983503471659572696905069968834000139457628104443322748114319207026582277315669228454773530993934189016398223302980350034687844649830348764632948347251083044296688730172987211072462782236737042829345542119462887977091961314613775476018330559517205375433864944473716572223787491504419027082678533726101330952892481688992457858607721521347242687810380089852113321855923974906329421938076318163517731815630054768340296062024244308583353559742788550544380496415456543080104271550253638619081743058690936862012259114268669318504808387446483086648018290893193279737136795889176229779436298143940818338187811851799794750402954772777711060439798765128874627482120244734690218511228570881599984566492379755804508245979981520209789745974862064577631068068414435113899716156183118154984747244516979371760078360795899702077471514622792111322823314730803731148676299305953216118039545994207794407830397420753423508940407585216796850752252189104782533899549132881014691891767845720628262111176243963603871895601567713712151555881635230880797006130042581129802934156133965371432586701998595761365654800800232162678068621768165843804108687883746532726092618407632451639568438888063282744388599046367411325965723597024485584718962902217885372689926860354086138922433537705119356469352328656960179419713128664049149250289455447436365099406759873893118146513921392305043191404219891921923020293759243679646145377589031166849953616909668751247807266268508130875689719147300289982571290466417841344519739647987426529024875380285510003322975106342064693601938280480152914584353882288195155670046624297792465119332371940504500144078882820401206429681961452657673824327663957758837181394819120993643698955669915928836849249523565821682108034381301754903436910461345601695221243951399126183354082949547749449388078896879238410282039044977372128983767234618914445951579375969318475021861563406418152847993698381941273409840227208319060080043764805259163082843675858625311334272490689165738139865268185726774810967218206105521185381360100472717210872249192350163011929125923429193875706690756222874778429269730832759026219040065740108436627631950635977297100805409107246874023312173792014126792825674553524773104195401442543957772198849386388690424727458655613056684325500288707569383496156346444701093736425841834055903717122335246058842267740097084368428452736381096341669343244182765324955343096914896981782907033441059426148894722548441289897975997974905772910054009114274551419997141938299574213703792819766107340172245431487891714965405502856185508705399794293435066202754029164417921885111065363198303641612585245959757171847649493733141857113355028359896725649160214358369552437087877761143630255384036355967388535476179285880153904730768731381642290979057782359236349107600715084856614920085284343778555814471195533857945566069941326430462507098957464352108301995160881181326700714660956391843033299844875797062060591664091464642357715162886739711241651564239819281746728070452380836728917892488578007340936332133630661065127348108257388647942817052589218572733900508505404381536414330078502677938833414953640199224457132133561899174680147893923564038616342209025009508852321684905517973947686681082474186426381058463088712701710317405232139916594519783192471602207917872823906312524547277994324345424185062220279536753077082109328399457433782683413923796054321135880244740096997284947290608438162152849791177836044711401722070928154762627053184459798228649967549727329893154184169196701510128323959069321226031133211097856242064573139999718241433736870502997903778890330424311812591576645499816703190944690324662933459501309193401571810046452911238389165573449116001247453041179219675317323995457207066872766705448230258653314427465611251733977653932720457617959805458274490007847443712103799328257153895931901617162460846992437044524812303786637893828509444228170087930578715255123968157702634696582019492485631633222349431367297797814204883925690258503380721496387021862717266293171974516915929274896928606593036800065128120724634559962055084350441900459577028903975638775919139513525835231621856504010807028879488045734646837365752724941044077358610284792190883172184475445959841739538011037784383547918134985234349871547001266012553861806044542636908046871707729659367248054583195404889695860478866204849234187152840752429620324052218076225313199286007956778358578485472099159882863032102657131743429616024473445533765219178782356420213639214043329593724984608035062280547966145217717470639320839828974562189393570990180205737091360447776884496559110108796258077826563023615530910034417736585865284321642889400142801819088964689889027728299358207025659243173397139402647562263892494774161730385198645554141200918014061997400120520345679036316588973671758302164797098273106352397255627046394709657098012817489697007167020127406279499600254552828529789802878186780112793120812766359754989307738427809175368340327212414255525893665954812814049714705841201464321488058867888731681713656184417559446206478593605703751870234734303827551861279325791656314878258317084030600157861961967540916688042715622125991765465750075094674035063584159144623872433776918776363363780296755341856197931112454337378914702724513695172357675234906771666902661259704516417739731916456267855317685621271318376966699522348751516978393616788309079603934924181659835489153603142088078172376961882327934330812031848079631132605261587556755435119496741963561138148055995667934108104799900268205692242210525069640942184342711053049259267573284169570415467466472017974262032107507089665775962866379586139114317933098254680068102508080927679000202781865441774490137666054053566436182933451671693976996741876570995656457406237191396561759304809176331233005014432365639317893420611854128260597711494457346693085974065095161243060383036694521455178044306617015174683543769669830077598472237254534462806269324801151440436242691204045545356418324501206343405140415800145414255187601601340338927100137734301569425656892941877405935196456833040390124611375557301315771829077001654058823779997467884226848023386983217459400842423588890948250807467136671757454487329062455082174215579918223936116684066806671967305612955376759278225600117360209278914598535758118146611192917477420629700735909965269236282011382115132666024566662734261827340315219861749093049564284944067059014408421734913483827357591477833895285020033871153727884046734019535081507056540892385743973065200069367379458776245631859714120014407229023517059263082760924402916578275620278106496566627200103094255346328396393422554767839140502755480658198384388988263451895702463814907640139220656548810063640359912741701344536633918256868863528567891205320549966337031063083386244877418418772539655167342733289555034395110516250645950281938597952636956050949831306853022763927458895245646940991023347873261342311845721191363687417748632765716560663256395255148406293190284223247553817350930073166787090683337591675142775014264727564937083467567320909569137956596777610395567660175902236482504540279085160512811646919534502036019450336380509706355435414940958777871784863971210181063828372518069699763048898809882912891887061602734659318711815184077458762273750013133974329464613177894199214419391252098949218131516564127025451990364768404960591939618015837198282557431917471831220749599544478344573433061851997976119337696369316005118060693974963105255911963949252522785584467901753500401731692170538996875788234179389085625938094161539318659717232226146029227530571118215455657381774571113180779187316758558739325809487723972140575446064412786584886936552697632902266256618419529868567178638126713477167863923377851666882295886965907472195456498570338238801757933419178215002394018822630890952412687480051368538625462751901459959418674454677293467090274148824205192621284818917116276939475398151119141808980491892159501657104619373466721047602910154672136109173472748335824173180420202508709186898101385014011466954206107482518816205732561129876268116356199796947598920932306627606328641804660335129767748142762462475570956720789420176917478553245386302452838448959865621949679803491055785017195423678103251454065201713898692011494689124388630866814770377046222695294227047355137918729386677189489645549633405873822955551896978697576904621266578023926930417481118892214469508492964747096864821030724867531801415886141358461341183306663738115513350392322881348480459366793438569458250671937240024801055102720861756212110042245953605971899813348167425180995481144587508938670629067329510102363568064773958474827679431093991211604596157840094929377790943654292459242717759865844306551291396950955008367392032538079959773439512646396375645703634060501033574376358718705711800518752499939373318375633173641794465312005450775485923532871748556900977720935492821642625679953081022245788387094311784860138045934533062423473472951025987111541025041908241821253919445775626311377171976651791823589298666756316316411615180079552383137923314751922549675779779473373566501727979726338322166709003640336408383074715851425438683900774267317251249645208712434898652492959242771376520591081571426666388166391348525045628182159197744617084019496572461574256026035014036687890062250542285967181459024087170157704957360424912257870756866959065946269144555577141390037438116155479873397161761786267549035665817282063402993067516116114580593832291676461755016738625631627429206780162185950852094341490633236282191391988592437309028778536210347557655608812465279458028601471800183037476516752122400903276910641038464511599350616441251910098380760141045263710749337930257861452736889097879345749954237867044488901797356501706739784158159543367487770438548668713413382360038156911130821527907456932902319282062421528595083187277875217724658836621286261541757540632155821804607886567856175517674586569184813942376838359267992014414095314978591318564215189647819092360997129961600853856606808513256645688449799489787387756227024107197695452610411341715756313901239184252938615123978930971158316854124225390166909948044834898018588429579977023667844632984878458872588929290761890804267210429641642357919264966229761295054542858063511347894474514674422194403640605762560006392923717555604191311276937408270624830125716681269505330793307136930764688020118901591303069902788657702531948725234690146104890782755119642306614907725962992356758455480467499274467099754242484505684891683285416847394950794223337508693893701677568101223125880024795534929396323425621025353453571060648383256315883159719627166808785483109875735582802404626829933862610048491591674543978925679102318633632638047839484505672511037182218564165391301571803248208753748989836869378860059553877424974241024935060199998137537622873839240891096217465010101643422810134934811226201982422220214666492558908661499749201627840667376138823848779081791288246352596897696152564459394205274851220322691217893832289592561272889869978804826837879520032294418542565547267560243634724947892760844857912980715422461713355907657972240739806345273706305695069239456675536795959508701936672564870422969646884313787193959528782783959064979705627235193810591209842101134631083381624377291933014920908450996182395899856195512316547810119660181251372052375055502256989727709970491154997973418255032587424460069823978157469259627437334687375285568384195143249113760140764231532522231900960788539469454871092226632340151572126279728557832870728626028880777483651877608541233867735832307310950002335643606869912533575438618722012494703700706360333293277587692768817275708872388298217611222265781970102938797104869138303912316934998294747594027715801004248850346521772264262556968860296033192600056039031802303261102285281577419676724709874945329409536448519271930837576358135055021622870994762466985434829140015565688782706229017244720262844303733016679250140511158645635571407131377473091511114515360706919954484371473740106208890142301526688682567383434434707153811279359852349217767086424654404618364512977381817537619584614809396000308599090972024767628419382758344564019534162775573221722662914449453444547233560064448158558791960160936921484450378291969269073764958545054551456264848722387223058079728536243694988174742142621231272689114525638537594194223870997017156519823572969696662107757402717431956733921506240639207563573278971229904719072332544400514488908433320690537852955156323620201860650817720760724738428677098280760541398029926163668122414154438384896450040837101979420034034944115506439481598670636513068990024428414821561487226430800602469768584207319032491733998673969546845450698292032382037355457118249764251754377824625610072580686569236514085501213545790390973427068418743019653001364265061003035215779644228462198401152137924157589224481275380463241426295010724866889417428150511641463908388888410132268196658047277664318797077471611339151564228048422061443512038936027883936027975679132380507170026187406903450092299500095273456754524194010014400600319505512029153530674811856636211537961896889167376801574435296315413006628662414612468247885163547192314275329096883589912050239014671412543568305347499931125237195134889281185948319615832081163907887652502446354027209545497750121632949160338237628601321206917166279700056158522573919900053415565069791854338092608400704237425206777072575890250507922500340228958782649870012934261856646133442085111644657329126134955337089098993051734973584305925693973630166486669676163641678623092645432862963032172362975488883575362791109608301245208145848263173897844777010766336373752559133551020105350802602813931180175944616513186677935482889367511952418690575132047949219692543080843201114592687200945411755357342054387732321025013759509419996484970250444189486466620140216052222568037551236569244154383377216252682208994619780615466863486932200117473470557896695570613410083590344864447337361057528532569286646573593256421583444942471069930729635822153182032332300061598867725974683686110541443975303989939719300839837419004078337243079709051435527428865390277219614390007080948722994645836360971166930683277631253735534391593974504927040042620376953220434458541330017940813902868608727753790673405233338821711983956583852303167544614503743789717708866023559548631204773224994850452682655004829861386851300093898901436213033395400713836557867735883004349795149068801194695356453002597985042702325275993387897104059086809508085359481667473128758148762056124569224471950475310462919264098390349562080660057161279945869705354343873946641990139439763791395606479963243084073360507964981554040687898052048580555269482137148102852402216647427157127268287470101428173451663330178520289102348724592558593629550959398398972530044831942918453709628042136669251787783540994246016261224979201757476924255325327306535011818212703654786861954883067164921633086868899718434266676993108748188714836633783567803877878731400600758029873783686041119526094113942349451848580988734162154888822597792746510703356786803028382128008709195700050806377072079421860957482548167152371387083130515988909948337775466528025544206467143877782519701125309139314644004632976023650069133857126767601754175140553709443176252807139993630099621016348813832418981451228893015526979320320508032004222280609548007635130649263160631922578246804579016614163775798263240962842698714945806412622610730809662418501407324115641549031546047007323248166810916232935587125534500401283917629674356827048276786525249985087417998845793412612550087344383851937620339164652918249030358200413012118987387991737574848470928817650951409312223695672658325467328497154244156242784196951389780885875696587688059981034983423143688301304248648222096553992803776555255056294920773676679541396855113874698176696500293860465407359218289245401018649689058052595734778940168409387954320291119313551210600521258450976708068410247850212046103678137738558313903842961433266876029754680344601063770267509911586853760116975017684156893754358320300091797079747356573639939970435954099303183901665104743206870500955257964652930749810875926623017210876732442634521468454411645899059200502741279284059711220016199733585498367024905466817935383074199112979631422330505230971844142626899026252200405656305517084778134863460652824198288453160859476316047098959347091046897569690629942157513946068570781095009610974157506414304759748906501796936460265073701998872581306327852213525162126475275122367617575047303311017582592212367305654168463900625167124520861479035250282511934730984984687233321421915877495183354041097826726785946348458612180562271708713007974670082261604001249694316167275810663938817496022634142577832167750238050887260744056819539772076956821189078394374893271836690515361784445051812356571169324742496596567148996244900203250152329742817114182127823060679034164682411017143226691633458102243224886781284105402015657657876019806358077782393624507852162988627386325725840136755044135022274367567078841983750496548778924081992969369430388186305905543614436192696219481979060492368198649149266500769714886461689341774604275400222870515567762331929377054939765334289244321866128287813741251130849337943133455767850009088299450395045007220976736261670634777307320751739643049763821766307187603584557534187762377380463939303596430360918153634373418310877654449455258266395890718994821416696695612864689050460643832957207475269734216956289785054376707040595509253079935903014064083137104824232502680944890589317069406362418327635381956289345703718552126580599953630846655322399267906221133073981952641221625822785682570625409397312690991668296856592570312522385141016326270258238876496519578232064677236812889847180729531331081315431355523584045549592801667708535553481753697950835949262260119414054468654388601462038527981910886986949416386473114826458159023601447050232810023114981448014473155674637322859211252112521276955760010609406247424426604413481066391190982443468401676896880549512627129914233659177639617891936929027679653758996872304733486485936689963582123001428530663173035155255801305719712095754765349083568127512848494952043125981281330764684268158130049820772498577962788577898710078476449665843387120974412358600840792234081412977254245790515642881195090023518869014399929271420782349109825399866983754554019777593907951115973194488137866458997693419668550659280632353717458191553202712637005450792536127432445836152926449564149774819591264688950029936346073275057265113453672963989283324158630776829529794379161361003570769983532831342878583753330866830663373044532104242963165425115386864756996546793336971174022207037882885423354597224766965765200477141226563138241351085143327941921179112542018000339172123995712202399966199120254963970564918389539331681318890119262887892171389868041850715104446964330713686500908420607240447480335464695809382341555684526814945787665359348469240289343140086316378171128903075302274856741129742314702800637812644847285784378302578439409064504246113697932479339783090490697937366621930979797413087449007176065402576245027448370250690207215182889658435263461299472961002818464008910607283851524115582573735949294696579867136772081606876321773237620373010962266280939319803376590703102767440227024023350794943131678119528886876119750521475132209005552237448357074406946774727388497067918374923066246958959932317222097251802826374568751938160341265571463932568725069570378705211584139056146576260735959861279872775026211178604810322956693529764870494507238162661145099436563267217782225377921643179858589443943056128857981348472889783110438539084140272218267747576557654374743070212399174306471854930652619949192187507877785574170840527892337636511917680955751154946487464926600293235444781622282058710470426661525041073207327141598965134560406966193017709262750984118134077284440482429521181342990904747303739434368980054005399996919801261039857171766372179574932447150620170981840960710204724608704264678433489704229859665103494517505780103984685188128438317335732232657023934270195885050004874461240880766416220829132048626173758318223204018576359764591761039056789987938733805594366837001839929673894652712097569736801525755514221508236286071582397286125154228464683381452084501005802197399802834163852622648142961998020282496140530506498577109194628632500382161431902365139529703534038220886016017547085470355918464317181145466948442748853657703173601681694690590590582169058842463795243924705597194565571881293270110045513318831537970931637840834352231555892381061366902792584369190613609357314508633439530201750810063896404170459535967918391489644186383865262176275587693902712920362105620663815431250752196698029382888853303653178189029631476010369543726814504222136231697322078481613195077972899745297226338218347251303957562976340078160357818791155435142615450805335224941249510554536813737587964403305513975977316692985425845058497895509196055027127082687369648014608501025107393124080808969191466340995598329643253441961195129919931342285725453372801803607425337067378201681227310632400703691822294221455020269008304691117178668397871767542834268417947869576996298745011575386484557765146803692900443633408549127326548697285478773249658451399720302697501355042471517958503604871597500792587837875533744667224098577400239975319224337677842366446846868411999508371895291243518940754167828392930612660262453153634525914330865998450132087628914282252659941324134288352416807968295063769914004271908078076530834380873530360758633777811301807790867404182713487796461598992900882553272079664501747443165428853339367205395913485409542622718072521115308302593123116872359038976597013763154759079098954155551445267924409240355924027795224469079429895751967409816705002829030505625049252162664483319741040035154282204699221394591619422779984548032924467533181795301493455161068851713511611028923735735959350605401766723325557998152343280605135731897842055399166038288728107305542978739528822665554575219917166260260991913068989441460309275062217500973293307485172668911964280559174700032855303144049484222082486041210265406020923994485900654458676269030876487810544087795831679743661208714491401150781530616367373233696760508603715037979351252485652609989531504085047190832756018360544627002599794796601065888427853535363738264690460482665202402097109058290085306847605948167931699178549679608544210395551459792756286177312399953314398352265654174785268231469814055562409371223360827387205219052370445027866124142183691494371950861467843024901881410097000872074673606627412586098533072640377616829186694260191753545880037119137125599488427905314553992611866935766504441935804442476578812471008588402880410294601451028892217197509639602195267421012632742719702517570105522048131974884226706545792910237267328938669133634883438174938572794074841598547172155480095134725540462630348677085518529998005335325345753501017163236339229914772109691250047413822275091974259075424343383834503306468983142730141114894739397506152904138419379751083510756826069660837080021193875558327953855484104479834943077622629171805542471851544534498197821983114768538527016038983151669542853510014101283978598371725504718805849130742016739865209585967023475823784297476395461144037095045673534133284822712426118780321347896159482551712150675342990120000867153531397180235774465189637099073341153725814137004904064664633815871804405912517674771861035406147528145011250116328288946068964247225571176565495253486950419824183322881187573018217838330340037477031452004953052336084610372355829005768437524444521347970306348994845025212689555347783742768422633349666327859950756007441448838386118768210436354687711877233662936459197082090128322794490215238911773244222500984312938891968200549894419687670486707462719357325989550271054136226153826617937292466274644729668549202317948617244079180318112657891452602984146300178826747398256501364990643474495720468808699976492212090963993463218832386785445098140371028896360572733351261178974224348707183939296645752452696890955442912023496120417706709373335099509330182011460482569021748555369471676378317944352537101322791140552795551461814450239324593305156751852935728516969059242867028595959459142744879039349466168140632806606097822654843479490461794968745203552080488692739935127778030853481752515069803701855425969777410520077604451778911547305616017315421006413470005464987664024822281787277709493717375312174596981570613914075066785817844355071416876749139703857327664484889290177095269156831007046568710096024334581647227070324204192637833619556980196084597705195278140260696559542048046351661908772738899180683777408972394186080412157473157230463877325511385360996148227477555944523163643647602997421502299527008543757829126788783909072039974775711794990986448756616142059424774695494345022238549629682882310326522086675577649024773148955419124991381024014441671286968381263340168172598190100131187141786203226217816876305280617407227022118376972852755441298303454079725345952759565545080056885785477398371851417433395836893890444267947533036742150654136872234082523589894895963442423058846151066874551636071231187861571682256588141500478776943942721610105144528777819625048048544830145805736745509914296175683185328211436733979906517103946120932340037474507814679565173623955427670799206736417567909181521694364796414319927977846990893760980379239557156676279591515049557789992954879331935931234154068949188768106252732546721712730790577583886045115553485718996102167958791068677652577873832611848810214197010556394489579453560977311189289241621640122387972468547222169715097003156980965277367951876763209983978398057185598478301247573286613639560124874973766198290720630476550463565633083947992581034235588658199954878555055143130055646822718248574168974858155585517598292781202826868510286493273510652727886644931216384989683906435239053312396558747787623207739411728438730984881316610336563165635392243370582424447956961331483853982914019372762602496394695790490206582484946789949433750781479733958510810194233778773839573294055707081709538985171639171092858995687681613342235553500773913232280561505370270651082134863613519364289369978964542601205242312461076091643269274634819158583889324782424200981806547800301572663990179175574790837223177594177778978086597081753816067660220926530990607914349643324848075353880941659485916067998972225580292485117932071765087449318554634116589068478265733936609952378494678902871306082674896065543222593985006459493865449965070473033434348208469315557539654287477611172711228157483024026128916924373889607918555632899163123707412658577628755202163104605938739873698389096490527102855351474651106723939859143733241975752893845479455018132837195101599747295470358219803401087847424104383202765336898203738425217517523232314465951882928650467630127046784516648558887227387990912597862424043158882414474072728439598977295168244537910870802435341805257012359952253944824342085532131047983181824052934012084806289494978545992092611042874677682722822110689973803159140916876070333129702242482352722849122687040478484469243148404115238654223743772654963098706838276117969370995425990902326365218898740737055072340580177826500349619346296854147292821695919609889216040015437691068640624665743462899757336433548512536916940952545051096415233129305441286028862091162985762643477306812499771227933141415611213339013018408338291784419736283811075144618976878116750161866993359858412785863221528043305036571141858822431104299842500607743267680939612696751786383590355779163557370725785783021090248822671862568246472637864608128912405813220784064207208151511826949375809322515061576449989317036725932259281388246218814607045727281202230966080874145960904672192443527876840242435386132521963378178677552285516797083472667230629646710013619035058867882962824462770456928357621027994283758873700847949759589822804884579687182257007563004727254705148095670142242052529440704287882157677627769149670368672658896899519380584950878841428760767655363581442255225173981663560698493509075968265952804662359277321379862674755160030761511196899481000480618457608124880684590262004899824101546151860923678956195426624422714668268165938066799148939527996522129356146142477301267507336155922930475283863305119140016053558525964464252554436619046123405236143921396268975975629262587118981793326292545386622964955554005332900348042677816838545266123967013622762341448184324776602733925423568130831488132873948487287574592883230011247652297650830252098943064858513540627606650447091987735679634431529771878134625138960386626027407117160421908157127447351701827469261629717483426223734681048032286764485841548546844599177636950656819059884415452471518587748509523262429016055618681325573440300072146190253928636793756602236590692056449496345326542764918683465654508072720151870795397428953757177167932910621961575303911939419120089656153212936237529447852740039965205587032232169729559781675107091390524226250580960764701748523987511112180387891672273258949683810217357170955733947924658885541531099643341408406948196155574413262246725408522567595976572412237255844180285708459264450827901326276674763704818224306211211156075764007709973504443391372458354902493564935884572413361564164710679998552781464368395931965266891450694081418634171106386806602923920733252899476243627376407494644881729615427373892370128132360972425627061864006794266281268287922436375160051607429677401577358572113016147087135751977332773058229285452874108966268872437280376299224864708253454940201414293912924954885491864129748081621727241319285859650405185695828242604633647067124012004677878693784870781305562931527376695111782452776750273540446716402924249617996651571717481384078852731123191105687789666715682687314229174895023061786184807040961620257619211152263380408699654365307397337904874675949258216774042832932001839887233275258921225946224696683848005329902523282462461340320790380823982449177848734913177699399608165653581974924602147203670605717668840470868131917792004878265038063056303827169480355815205287191238159830301559822691277691401988682955828057002519448195102851508161465278190558912414831243046595387849783805465891875133011562823303481662295774771642596851156067456910912810351008717061771210346186474580569083331120228272290288837839492337191048705233203838621951884189674407218450768300883880111678420281661018425784102972378621724491413099038441542103372641650119788434417805647265160487495058992719178529472305452793220068200426445211428412831620706542499456235327039717034142239828475113940995402235537670835907148682206517619237730574720198984480277918540762536336852796146054865533329333215441700459337081401052144469742342343327731767341589088684806723750350995084772120697822521518885543102967171359474668356566873296772706241199555221921685547170464983968822913812101266744685624462527405387586078779744139353359182025257435114009607852041473255702672317708802919133771827758359855803608921928051903149478647878437380353411033064283842186352903391050061329156951020188640752844890892127325712843466848407391812017869095840549551095047755279152414866811025467522463817542860031933366860180978551269946315647967654229925086992613784907134493256100374000750055076201807306862573152662827796232127054206991906784309180902889728665708442168133469144471552222865405857832600843925252498138987682372352470195509094369822574161844967295903275345269310265048539610692458169445049978497998524239622696051150279780895296295104197788920489165010609707739220057755118129559762092552881072864056954402134646990220519640717021210631313723060365717550199535132453951731094269158828345804475394133569905221580432331366928207813878098963690774271215502093127396149345135269686770749610008167064504866758819774860693269675669580941324340706925366151766263127469879689296508039610220912760189175807484708624271679512291895323954902291405434496098464094014763456171071611049385429031377246787136555957674869041943942350499815150535723659566562886474228223908950007380768043536855365999957625578842412949688452218907962729442128411368107939725026508457812699072964266005003100797245140260939202158034803817521772909688181058410099487066158109517286104531924955935145383765336095276452342588464119260838301001691193594138012287908618691430509178790630255832774142826394920709512987591026793478822574734950787817029898893466087338873795045705062655739795053714509706477930741628956457407337536380912074786395156312834439323642281450171384810921901337247118813954140859539041801148591790832292863062780371482585465547817094015166828826431188263602185540046089240750765294937967671831280644229229783504155360670911380751922910887906719177577136951092793084382184959432363264919055650425228584096635317832085558800663099575363716586660511970439782313354691367097245787629181482300831532868361866378888906468155075625661680443950152641668494237836209556617604337960809065171679982422811308552212081667797725606005313542797892280713873334221280946339853182658079879821798438791399234689714105867044860089913043037569513199160922464000765823322189497906815859901151058964544500016084697591462547935868848749347106937747420619684766520195278444000304953265317676715005589672920288092184200117833978847149884634256734669791500755452561289719654617634623258570866634853548626041048482663113195966221881237581761762719710523891748411108985005041652131786919456511665856518687425164104375423467804605782798511505795040219283434819584273537604308568911816298064765558272794256470961330071387882391091200239704130736757579645367492755470702541945003902269074317897717342275002811786130353846795163593909843255205781767709968529208019389437831712041338162296802817322678904384268190546120911245370128536840837175317331194674160302008069796276642283497533862873859865128354095469664054722053552515312091023413821090904857516964895865073252531943707962894054750716987270160002909115008218060796148434791858587020390245561666328692453853520463536726505740725094900704363985142969903400271107719229082668333799392886099154377906938182460256835271740455666004027852031979707723196645074664155901569456863167440482118247318495716221071751721325335549040076477573374825315199221621653484125105129494209573220408769452319172113023986306759195333160820286720223219719010036961538519826888369076085113388995951591884348624624126156855045315664850983817029182130870616917996558986808662727515187413451110985711258174889261993055542442524508716543553486711222253994750815779195987700844932509287090152186977263805345878416806169274369572206268514387428603573005567891366642526382917191367373972298786242291230781241374032109016399635355088741202543544685528378361313609561330083405979669955738219115184206131801988324383477844995378531020204328845934147318369804292961106854721349523267301381132869201234593562365178203097688502941071254421857791467860656865013204488831035594017180684809177109530962419011630403911516355605306740335273818143746876371377075407869017582419797777217812561115590492305506050496456638988251835912986887249961679910677756618830718490882584683258240065275830810469375828845581817220688417149435421971071067322758095075863443300898319631929728058041219982508039609168650245160238653571528333774358100974052215865802213960705279712048975654112676991397408044445079300024771201010936173453776720428306063143585703099378004116809668464879820038370135543792897211179356119316066290371872549179932506835527543742812572298209049109561527343014195761298188260035029084489137335881974845285790530348215098340491144973768422949121040082443059329108890252713492223797389843709753670155364096836985389323996062653624267926146843757285730946722693407757218098091191985235034574992588757488905331322092305404059290996728948631968838557871013479934094567534385121889549821794578270181651827634551458219460153003951317467102230041009005399447626141255012755780713176562141810014908646010055816374381895506914911282591839644862004583752187747542058073861069469120799250973373725930091653242078769159981805127234360886658772629451360392438450414484796371018143364793188774290182350906473259949685734010461723601640040183210849710139901091431080735976183801621237338637808648480284257174896075102767634671047677849547538144704990287053410867051407320770212898180596909275784371395668989078066122156750742569226968710188174833601481947429756069293515607114491292554929295777844022203492349727208163701235517570482672488265633128844153037414371070827017769969420227859259902769346584879794036249620131865057770893968413622629859620167193739697015759385569333505334059984967519904793115840231065332366575621623729646605142697219158145362798583882891361014369266682428463254013293344337530629984860213600622576548403347225305873828011511234375485996578286920839070240188775332687551394207162199665185777001274183562934176445269924542445339903672241422771574660090720561674270868356851334068852074975451346605897612940674686522162459903486444710751890237142828090375253834253900741400053480262692172469162548037277968983912956929037804255822250665559474573263413953225495501179434294277128385644791078937805910746222547902079353719586324566173023219966755269042886448872196267320723603032404116287038894440899057713408342217878803922132857601061116264436223134286566693367857367602644865048543241248875801403716235895739523944306528111829557625083258038321778721691798319830995418860440308037591252615442424106040849711907788809631270230914692450751327418020088777658123632035829551845095954230290530958913117497124907657667541924450892783810624067053997025601316110893389653075823755867111925388892717138928072108571745063103840130126225334806978116463864765206255697674873508773830883355180347102448252485236753622278294611405474583060858886177346649825274488842362785007361481082799282851682710587729682347682861696655862849643704608721403953253689447185751567125715368757112207158657124905565690335626295096825943961781573120535436970422586254500216430708446735946053347924926101321475497812227640764046587105569171800764480792882029615942985339463355322884222629069815954288855046625059708999685113803040025329527157566702826277886942683760295183494280707204077981080356901330445264948807553914640853078546060663787389066611127895639095113066010617315060304600909128262081631444862488785057426293433751669477882330039099691337480937095100369835384853237014050829375637825022439743394396830707910806188768870885394382292226763994356645729432362556937044056899944579501277630809242814740548802836666124062494535437427660398173703597573598653012711850761584718990866173980320320539150032382021378163493598595834024452249912147905224373574743467770452745985376793549976223475426069771593826195732890784694266110392608249590772109167707488198704177634238043274158018670598457042618555682854250380463619813900206515980068190623048471577083879462534825240470045527415006375158059828795221544198592994918184277464313726512497473188738920963089800655416451959212719672552327852777641909871673813589611348173873633073703567504295612130017474934981358272789566797154900671998461965044781771234834534066594095387392599094929328765588687131154717853684342403274968738463273405952344490565984620304812386575815602209441483407000416359657933423818146946094986817574725832723558247361440179543680504597430872843330823281157117803716883395149098238817738041475624209640446227534866390964921326458533568928402011171092275495048425766119956740071206367302643494916002783145901922146667290339081858187176993425332896046121489883968552507772328247494356904862066178557991299978632492647965832120103460877360047083880065451562152966851310051778487244374258142120884593161210758503085477915056784025759639084914998541842823129080261808407649445315157501353610590238475169859911275319006064152195611651701149688849235877571732881297097820585362880733331316497767309005154642394232170155530992125848699335227549162038489903957952495946532254710600015441127240076689573396321233881384151791807380226995776832129181183477598506750579804862258835194046699989812652448060470987179561850327263642162943779319753387594096541371635351104424564697739749645649568355624647068910934908692487949473953977035591367074081113974446930394192077349017670566393116897621057995924189042563653108485052589475688912056104852708727342922420844552978811380584417247768355130809402322787361507296424571989401447370108200729024886289893383872576694923805953216427695402598005481176259623513410059133801506411264854944216014678707408531057459360345273481603323238213628242264223101075124618136019373594101169813719870874962739538503874941757180807217672523239364355455647062227170548424554617163842683789039626893849236133187326435886818218373829131067000405941205276408668389140567344575381917038025943992381876395326022757977559829178010265929472870752800142903735336932600672491460100823672916636984810574212470684533955693896622458550391656838357692740451124891136427004424857481177979217825831098480421984706277394015208742017590290668475206189778930151527939047879470612229081714542970524808384947151510897228624687516156317627675344579215220398695581078134396747868048240277454355558516832499680531188418419368357481048058748835957391265714558656798782526635413781057385264421330156187538970853236740835808223222789917130007276867219138894569549624619286919159988623440012946909525671732861070693168739782436255740239404467137192659068369890785317986085242945294555533583177794371744635634617858646166342708101650669949123589769508706713001952526923755705751195089166611259816235932686354439700047620124948542558700459285692380241594784249513443039511513182615716224814043152724509905645685069870254463264774812246788716134121466552298499777728896962736048973210593390608736789161906501233516356895451631839327160123805505667864870626922685653195798330193576571693357666398608475549764174642880884395632298881279539764971157046184232974905744904627244563697101155665079732033336142916059820958643882886757383860728878981359827862646851930155769805141321381995581927204163277228390763302634994276986898952438444575990740528471501758816447378203020398197196439650858369144156935922469512411589664522354101120689155599995801098428538492245202898562676838964337669493369468034284466771104530991053978554813030922433671884196436275226668632938308958662376345190352182340444793704170869069028022578810894110947495616033386115596113342239527812469264106698332894734463898143207983121477110632462580407877147195519673879165706953293410555151139090005358411916293779313281816580845933577738377368967393245070833973270199307506169097720130223616095654184812416405687300942708142498166072088147739196068952885956815777764357028694230805380922973023085721332672023595566421789461023460389584371433808017421542758352322798748049466405487507546926361717758873901180875411791242508811875144228213484767325234279991471375312233460272056950026931535276915635833185745975325271787573151152651597158924263530782354313407335861701075864927022366747169411151149343554319168449117445391662710455634997260070041372064339216645350743348229738213500913511745187152067202131094021579033396211158934154466356686416264006135095789459237586478129590421399227686219109038081547393009346309086854748410312495325679092211215294500661379906240938155770008665067148849164358078273225722410857842498504621248187960898549955964879933180419652166114275344762021112412147581079145423613149962530700010766180319275152281575429470946301483814645052740267095617415807442003633497636202002980714580511847944124414413227161047488147802033508669938103898618198133052282853591725369922091004060389998429069479782626664052498759303648288109782969212043815532315877425423229641126043668073689321172186685330139217315697661744974738033360472473043172093632117847403312840830785658229590909543507792513111169217527205953301686637575678086580540585677751397923425052212635872555427205875173438992057393083937342355354844821461576638962963315797608294356620079765473927308129964115393319436079309157649639715803785502592304363337959070381029007269750332535547477407188118867717225424014645372050849875763408854043038557988938280255220351047852546470072842530236838658186456454945399208697867823941873907101575777377413098256482891884858961616533942240894000808952127385878807085461483890903122488819213012396653174376545770499078877118314265040331860764157080960647476540029568621865055593869946233740302264827158019264465950815726404668879413313200781851482162873890080476752789087637799303874804918682248268393899209936114065198897952093245063963098447992933160669581549930549728180503051563940641831324343786063952909611698333619967333401322905423882025802173884060833804548466030880696218227287066674437493711110641551308023427513685864210474718478572958862629103685456375562015542990560145166591436243466795102791315486466051441382754050283180648884983094487196184273168793285572378058876003875479061915135175428726801182499838860629704474926970108357770505813889276556713442180966862043280299284424149347726570546037950674532639974481752683351855354612031879829992436216303926475106614559390962475551958170081911504906722760000449045681239825207761515794879471014426751078527218135665262312427375959987651911398581806653540142358087183859151870429838835565559582390802093213329598048897069439233175774024576057085526499811237830760142378195174582925128704869023643695413672010305835542765803609505084663192709270197091853705669453154714746884985966847931478390097083070697533617533898986404408052558028638974864443864697311236155304202874085050132291713202342574688896992131522780728426333604337731509325894098738086875359528600360068888529404842313210016880853157333279966550483422288634502281808153949766378877692809233763132782330478443513738509285412112469499527480529577285194447345047871668412316396930011221461160514306408901639754037735833090184131068821585531548515836582373709648863026203966853014661384563422728489420062944576856274328442202799520975569251008237052122280658230895113912555253119608381587247432668064874810842440937747749311920228055889398771113912746608649465888600912102051146537860537327002337786442473768990747335311157078964115485486543589334532657096530977874803258005675910114731753513697498626839344061671000333989039404159879054086996002581683947394720905915816007856094766337568260770070363397174244367767400755256154914536603672270289513407651558466540218031614565784305182658741574735249463916594672876858330213535349910584747691560521335858789380162893936885446455326689126220904793826867314357746988874974510987237241377619450100241849531613675827353066679332724261716737876520531534408398499238015018153689666091831822728074379063845825521948939938179744588264054252233345091628859867293040589922225686240348070574096805049985625573331207469424740189979183474861307716218924700069604210001206648852153638322963583781748653360529150509987413880196660584913203026702101258358404217313152106957332571020435823325735718057333811010463210952248346405237398949849075375783971382710693612082939196295846899336355827055960135590320502069946840647283109358204854858402689259705221814655441642477185533558443231056581330782699693455999729808277276725033822671878327797860121697090975576123738892480735057188071770395451677091145971538453773778632110339965126943312996738731574260873324223259349355880708425721293152136422085439058651510253056242730616028720568537336669639073051989280110228130322384492236769730311463549886175014639033066122734641133569936851697673787201303901819338248153076472318463029714233668155492236778850202208345890320115985429114078035850513758883260254819474114556349919696378204247816857941366066281133437758299417763439365130581593727800960673803042361178200950571065396189346563931372569029084004025836155803842301159734602606343467265413426128078980036088973228514855248019348019349606141505174572024041554074529403353465193709719212099330211011299819468633244361403284176834053799800464647922253188471485250852470136026066499996158479204620276696175654240377345883304469274711280090615341251074824208801946159268415159445787346509050696907169247269920079243427929602347703415706384305388988606681020246667194887695363526934901516559545125105396382311273681311631271712773588686964280568727487518654468235953316745668827058849705826827399485022496353988677139344036427052160830172824749936701738885221250415769290303244881141432139354748297696441739896417608860964263569580688496781008551444844038197276448671555727103308138844167501724991243184706524078109556175687060766864815010900486408562433369161017813775074246601884957454679460804754091731717450360388026980619007461460714899781365076803028617821904593261110034554879348208636719984449410222390888581421482187879926040422809210150678940821542993778326258096021366932697698678261299077886043124581231792411566825563034328592480142181299805184592515032733874461517072462750514995078222362436855610712216444072177750227407571560958487295024494951701531475304351132579126466959518196303414844864398375792967918083422381941048281036970693377671925513998486995427596211817368645359135830069226076612297050377187618120814859544690280255891203629734658525266638018468980342413624712697439863322046194482755838298653918351849534636125030235401251047087372874793981927975769593438370554323289925431652770045217440207705600527321937516807623109075923140620739306829749324640564094353315683667929149715873062785713583521766667561935042952794351577858448646628465689204689320825703640336456712314390789133650591574784340886987441784632823817941193635306112516732186799508623841491998531558570798775152190375562536351218513423560370242338549767695259513539626775700610117293695542433640695696485713746035151294927607922714109683942546132957267828128949363866683080688873847797998546061609047510745178790046663210290241082701678259039688363258569349611271688413312521825488085365180679970809453551044970160267238275988647380072274488411402348668097152926072660418741440682622359366946282543556778816893744543304205089605004299069603289582858231877093714772363204114377732143582248742664258864144583670188865666095482671141483818267072067384312221627373480901196029774871864728274049980649080429712570165483258626926784761388158738927589183139960039443499108849912125706217699451567595852060162506700697856967651868900361600446295866012257296060093284850622187607321559313860559628954149199140134542294398858117432099301582031285692131945924865648905430785398241003258538494413828986250757950623349724687227647433357777804326370603133178019357204672578556098866925438694646249406545757699532377747581043547788940361671720916868200249629775516011040796001593480751881243190092066489349173929974649108917515977733489594636047092501285599573850541328684433456039606164845697573665896372032300118042840259350311017539073913753032158180480717946646919742683956083591710053373667194891809000139094254385235064125189337816592004847100086666579918594605554009180600293222707671808116387626039733339035671373010383770693117782457566585137082626589161175442216399271320871150500607373271444165460302357696321780196600295803849101802119945824373353881860702952293875221871793963827449755573912401969860428759095332967675175623425732624306295112234289819430397946312365284683309226348510902379610147077731364102892558036190394751557923538335807875187697304414416284466220369092418451258222008173704048999218071880847491412128771199288333507130234383523606095039764263367883823308149400553329869000151103425183274931912819449778781218693679181948454590219797346596492314022836535528565052988553287382403272606257289779646016998688847115714767031718903708197818693091016310874430170570063640447572084868985868192418799060623979326709333432523411705821434181861067630122375245519320775408563915356938248260480900354900691410502759578493617892720892391322353335304373535445097426576088046924151915812620990896739249757172310399405852720763702084297168546831345453195717870641307426548251403182056168783445724954771917577055873122995550874673369992667011960954311657831926615766723218499793756521365079150810766418604327800702222354429030306423704669862620787212899400135318767118641333173927828679970531849617330339727136831957768331104703308233004706916012515438095882373199079246434344682555061698338645171579110522610334744575276999133948217889244368595926610016328002238874605370179936403834995188994755911702638835709102044365515809516690861625035442338291503061255870309421788309848082188567883074887235676813358502042635970033046598015512383351597755090122928163605096829467289305026788677447227357220105680017967083942084439946974673622383036144736487051034754001269059506446038604642401427451597857404006951625150420150794736164929785863742022578736455771678930625720201169849580103047014636931866632365131701048188997990366201038588895923278974307644552572959241290138069608192334837447786233100275797734406846956613468668336975532982074579984911610493784501299902490066101684020980674846971427864802509651689886919196620687750342697396581151342159766795558339267900900334138530638682458593137754087560237015877685201319905814381321878473094855772269121974209784162833840303407624861941369403115117227276395747540175728374675191731938516016876780535518213807599300497653725642725466391173796427394356316317912353598226444760284915127658123679853852454431067151530202607088548031307125992631540451763215209197132946215735241649416122182726852286142442886782545045550080709391113390921591528141830619417288981533435582551897582529212376910702940084477849730869282596636134882254836671151172605749376043888292773737778782105796208812792501619778443067154220016467016976030177640805255137265672475534991651767047871517247050611061624456763465305836135830677225351599161506385485824001182344461124225484334443181386287531164620640755117144755627556677497333872400590785157958863645206941891537444076645841269896549643430457593033092348264583925752399709972837296191821932744515340652314350568056771340344692010795460427544463696992434454430111663761212110386998285703269171886221545643369022219717239841268047560757050504867765475455425729588170297030246433158985260525282874159096022463782633878538124002675126094588762845405634704736499974274041204112819294958233509614705383772868875719988156317474208489906167051006210347686380139500422934334875530723919498997001580828128123559871388380516744388719310219408522490082394745516784974660561641352843939353984318859846423260006812918767101613100651596481321838465926062173672112698011212720053325135291961647163358172070484094843970397461232239143922406546186472917401542142592251504196937676650583636927735057922033307041299151603419443232201261650095254673859892910247214094854882115885651768999630177848764507750125529990807983407587604186427621981099971208913746404189276968279355526647119138257313614505303022645680624647711246704877603124780922052736788500600925930806089723634865121354438105173298326168261429018229620852267666789410324906952479254030308828672652204930553156210897741358225067507316720877248944112179493959768842394863042000831592731534755056238228919868098404055220847152195925538964306566922919407219751443111492500798470737165147068473462168508587635060220140307908796980474875525857139163453752120038610056954086208811745668421951022535811924561294941057480258513372490471980774272904541410554573384897618110544815193215685524073767680002673107823270270555266494906421779303784553397831045552272583152571532625570787083286945323762035113831636515862599100494500157012427404369155000007032943436899751820143374627697720104416963619664203300084625891326943512402238555288126743945103679693690367921122514921056226762054953217054645914392784272224637919547081774323447704535765961963215057034795333099698672013655701516150127917015777198508377898722742097411441969039827451083241840716703547948370124392677788815787567520164723623354297821010023143874470432142213697415927093710129766553635620245382436249484495696174227489347670844796256789558989149598339595452451921410512833013407147219954045131759125595579893645900924390691700298536873575204519353145125909216776468550580422348345065551206989971742148046838169239410718403940876036858531606674593779736833155495691857485295767492550591713008079058141202660043790082012716697537315009786950763802506186435911559239119921821887084578553119527998648090690883493718111345731614059992100417950944855409394662139416294049798575594843575242047549405795919938183512918685820501147740357751642557758378008691203926740760052423901133857127039586718126929881100289958616667225565071291711105385837847128244765909793381132963560565435978290440705898104786396227476830343528686045070326163221996189815817727550537408531440509544433824205397578083688351416726852992865697380618085845797904635960260319634092844778851738771784362339561128151720854085943968829686792158051026340736030714090400173541109767816309338629492897851771750752300983981244341910916246329805913640201201682921315284048587200027893316827663988136764452613803423621891825103985942360680415732396921062514629274309585661279292160048449457899548646375743663916004331669566572542217354748785051684303462794436683334218201004962167171251858262056269947617050971806191345433484056436859357849576028133218042413925174209978523413545014564200500676697275819225739047674025827625301786090203364754424643770087063506322014828737292605761698841469728094336985559862333507435670545208282186687821868698347813534276407992472744315648477226015568442838466523219212851867695092829535903468226034739132988263452469287456135326098023387930198395200507673922287851680594589702100327983890749955126457724830529277684690100649200855610017975432656359459217258885257293301513262410411984244021184436275261483718006252555555618671263639213610976097370959058282219828761629377070182282072203789550075618686988307246554456514810553057147598278366190713775206069146026903285247804556720184168796631683500256118327568501321839903688568209253053927083029159958001782733601466979863396917378867683650981382716428137226683181368012139372362883772714301707615126834822369556017817686752454328069748647680821063021976493972864648204941620030273627467054997504086809557188280107541266749585105387052351202381641801887906454477112336216162126110002794999023634718897402462760170119141669822918397669958807678927367965648893914278380013735519258992265000251380704993023311214920045735606180643700992908916483943345887533357868966127380842994866604481436749733252584605607821420391333114965886797762106693467458258452420095390721421711701764109341988727079588671572353125158831125609031890918289829643872164366218899202386245553155156798906047396047133212354598568356300731634400381255308900219731141436412980330773012574191786904309455415367433084862006250285144828120828331497594179204732980061308018033047151910082348218627656851826884898399635834017080570480288252982482450052734044237513225522502642575345936344586147093047012082277340690401166324459829544090888541823098608286392007081006653784456732175430492423395236000268164255369975089627489673767760203669826607167102735148710836111711469377548091886336422107405846513162153305045122637734450847476735493256369462245242191700174562278630781040955605009077746664805315299292382682084239058412612566871411527801003852473541176109152234457749960946636276430208988561094063038101405450514776057336868183640364898371727352524965428591133312884750454643394039056597046219062527873138794438011111237265098028839073553135966577620628714350585623669789393396776952169672251889814186750760949939392414549127201168346105136886433813020605893714079458453096788058006059767144408936932261135419308502059948235577488259240157280048383795108398904371960211682877581336343708333864931005911534138334578285101471598608224021696135312201284562984093846667219724799527554616935490552377126729545053840527997068125662259638586355663155963981567283197980087120367385216976522492062876580344418366873978464513087187558446525123258370550820001276512213372667582203579437113162564388080034892724894379664814483358163686436372073678080598308099040090283553909446956477738512779079330695286109525776983761809370788436699168205347921437339513965261925832796900941524316955238298465228276154743707664335014274056549435712661393435446631221486642453868563462237691950967926186397254908539472040747278992386867209658672016267547339294465483385164209609281214672359903785879670985613916627153143449231265800176851024734569205059212981559001418180767470160428537523064077595119596960229860572879195547217386112836028410553697428770648334681408051157946268642367374232338500152990671274835023416092657533613941521993330015166364831787208813997899413658603277473799037306841879022854756407149637551218484269053964476305888434755122033694293395899328625900419104666204490766095993117446216209744032616376596382486429748977528938253791047131147073814671330140504942399667097779781056815761479955670463263002327324906368307025424916287479475058708000675231062437215735604907359991008061555152575991228168803701445680728282947395692553590982143995741599637585183844915182242103028918669937835733298315998579717252470773372166250801445283817432623217880480454219533137704149472644675780095334615325922614703958572406836508719525432843983808562870695192499208238188970840094656551589646884186346970644499210575915902077539367803641358277967734681312403436544558999793588313619930957792760404317881323010386804574922835847835888267695886761947006693583318484718978602216582033146957220166806861721504246249202587981179156353841641779477963210776107575827215342581872337665087392775176544143635374169360953223357712632768365247231039793323612175517816248202638960162285137172702153562504859512964801099646865654551078082579959135136306900293249290391036821217609854958944189274439943251550946224927318624108784731376419505739402275274727610041018260527595024836078166255517396064796159603997553054378648483878017516884643391134259951045451672023663255308651216005914212679565964631175598041540347549668202407400592383339492913190771651168125357507741979908491386471453576714269681286801060931292202963242051732604846583134631266192369611282395087253548727308435368124464301197928948631381106182437842192089904279659704999753860760777907730674661781128518537081004681030216812702152832432639506404653295032412753958142442751873734356809840275106475887835409337878616733791725651708245465446307887748081255764431150528478810993181439842608597404741967826304476053740948871152908416192458189463518376781735208467599338122880689863581687141233546417383411274650889247987316761041532771644512185362553995391100292050553148243305982556720751076446936875737147191251522000543728756377721877478234527636949706564041155067234753748634441448636158068764220371120504236599784886275759768838931062326407963700366175613299978056119469000463163043491566261481411907055591665603551770745375752093629619653532155672159017188520793719758521361980667669123135731538552759761201371451221913144354443260821679195411337626522556306940895581829409125641116973522876097331356562426927500294034562983056739358838148601364354702230219469900349188049691077051156690171735708005834941221769786412488126725911886297952520633676014092512560603929325893570801049195842845634966760209029762829719291534880205733725944993327025594404341510207662641886425429245220029384037041237336030054042597807423417227913708594430311835785127179841281876439849993617023313308943212896182943351003658542828973294532967013113153994176290416696560376926732337365906662729161944093259674835320560264540984409059621900759920824171434375862579449079475566065159275750275132071049609355976609366519858132692488747102122577533662744246963696935069937156560281995577156680451543221415704997875416561522984801853240735512744541838515295710007929183445542311050100909996276177486274376334229718711094525221984736020284706923930620983010055125057722522801454194972416789967377091877362477923561053763361242778311416783493425176853140624865598828627229274917211207979422621155516398464931001382424577757022995374186517218526636482899682878976181671512911553810706594637542280235330403810145294238792591755905494117643823565935095635347870592777662965836766332583426933297048955896710640580807264965236807100689440529083818927822074401815660740501393707353251990152002144855802348663531829644066302471284843373501072284153071604820718953767579451621975788183272537827799400803301997258070987393167716808509742741018663248719465783217223985217544460501534572314319822667362226199304711969124858523886883779633009766185709440882566613260888658617213711167555355357549798289665540715140798546099042060668359545226607607540016849308652021507889482768308950740766201215571698551338506373374975803625405849213278758739740601764116780490568248773373311971368991393759169222894626526313207422920113347849803068584859473125453279926254048052279452139052450164817432808344514395538363966816910989688731445218105817501675974908085011475062895410844465206196059586828912562242330730744394626046726964269123910837446926210956654455900231182384440062700097886711785223523376021048160142339631808197025933285658682026747047724833780635782620531028439616100542672386528118633364895857721996163369159021333870479887569312355629997632517634373138737235242349423218085697497745428239185107181525099834660988230830132409286957204613743828338983129336296224003422533316698330867676141313648374464566381583564737704443083427174096331502371861189816712519605813435894095922238264028739484801897226867789328233598028534079319060550643794190606253452239194064267554498317343367680481660029226969367575949088973607651037641707512030114131608876993501384421590525429409726990104475942415340134564557036026113930928599327941298148875509267654132888804029096276649509702180616157934479578833838491801509200859771816537138682591869085073568856363756980573180346859726713837382445589681352430418410819987476973447510796116669276247968415821353768783993834672986078440810598929227554245133353976314198043407956711254164988298051133264715439992675702677824491790986069002283741083676155319453419035937324161603769117145565798572732113587600503836401744582150370793805183025731020092468385076398650923536467792871249014115740276506294503667387499042693218590352186916358750295759727921134058503377089457557044479521450754965402800227990852666988609334460639995172549043603193175088812564231404139355600194850520764014168495709008298856667033884968088120720526723344102078640148922780633887673438761071646968315931054173036241871057053649741216230951444178174833815266120560397877574226208922833809450249226375345831495178870011361869418637495586407374365852015751330183057070590115495902488191475711530846125392934431813730600987792034647022956433819391291423877135023976429963852227483033748376051700851025258734741234835500775388930805913269232599403480938244291865899482115038623972104623606764857626859097093013065106139838604358959107317605483857522639870069073116945608668285959936199627564490086799435027758633719244610700087784455679768900744027692524942551121447635432036669311460455227171892539002765860286054957803476848543220530303447362486418455413003540134419782320354426299898010945113008021579684514525036711138637433699717163312528579088989989742643845915435527690926336731068124795925300636561466634743018537704783647945914115824842491093891187499086575335485583753560692432121061241551024223390658210360269741147118091435760967590060682598450793804824822126252421109728568258094997456221865794704741165741915692155741509026403556540733489753968836496692762089437177683759783377409698336187336300654412479100960934650720019321069457070871782174665529772504538679064475071918724248109234170168919193820024832610434774462066239661710716031377432442112927529952807905348590088585396596428465380512456824701251738042294478999781015620020210390738878581033593573790175935312101270022985287615578933146983127834966705929525280538842617790318099960460876606582173257595663459936062792115231745654343716402966366591222354573723146409187868479749082819656783816433968883772623504548229783012253297977278431194460883649361303709182867336403977287866523599923334560412317581225781742932048478286300762685944094136520092036976286609056079811344025983941807606437294804993227141777187710780588737754454527343912311476214438544600327743858019669402719573053976148473554704997079467296361121895975813452126343770409386246929326485319204568239955502481166089750599835374996095436304471072076094143797591766019958012930189237202577547279214061110572901322340332277489997192166844014315463709294485540647007353121699621412045801080527698414367443006655768484444656355745111323158819333944308372264296936340917498317211716781419828414231773062495565376463892246209584133232947012512138243167704470476227946699544641255270943796896791003179515721094021511184964885944429737353994657701634804765784798609560176502715296200236950581136875545635956018414333273284472599691255410963613729625644148124047979995095947796141548805546794584784103084817715297055273940514387311117389793225377535438853176474933820477434809197573289438325395611778710875675893031604905893763762932348056718361292545011335758473332371182047100692922429553183777805187651746054286768184993267644973019010565836358777731007096842134778145794399848959349960600685172471155032385508878157432983368706353460534825219386506398408537430266206248009845978796795649673895960188688053672880857285235991842846458284172069850080549004845724035488249561585086209679585839938701583662109066713553514919605086968440139833828911738368836527807298189553727065685871800528188401753736222148319432328176278795606818060851969124825360517848783894893440682811557790124422835538117799270016440437689602785062216142920001814043788712298067278885790703790263253138668596908549432934889904258177944392764800545463903822359741318863961157708491785565462191004550737652566939022892295087882103500054437074252717315898386545333864425864708626255968675122719762441193543880517976420156825993531131886358198277746548579893984626154829614187358933373907462762325798167017381185559716805725324193708771882481171018677585953888504786318799024147183523158355251679591265071279178927054948574129598720686184659639822384132838774830985200629212265035292091609881832272358004561500761769635439302719293087098782269323810954054025990365678084322314359079087034657810125595100857522392737321305458072794978867249761054795796243099377575692998673208445965853640124656095357972114437719265176677133682365205165376200765920833558033686396257046386705840387932107532455069874868017456911199655572448486100237169232711542626688622305202472995618128379576063007649168194830115760873241104339877287282532674619732206453939540108758714841409580659357457961401289500834751040424455567212522203299630447528717676363390985966738703739397599309983237560403039298642977293273915103143149530553064480468270318588314908581521030009332389752820704433552046981672139665821479183296723391459746468075959181153698926009041331443012551733325996754844121242929293251589965500844080811526405728882485762596994398840773815260615546272376920648751675070370723080125648488101177647765876954340893007442338427690164692808157707419141263523669793860340573540878978534381080205010876948447356627942613653958444794444839877468521388954152699533286218662543867841389699056124827114001275956378395987802441109703471375387760457776246502958356658044495305346469173022302942377024668741038287401252476136452771665255748257898244408358941234904199773389037133303249154807728405095436961508690589532056115948446256757953807233315474222281800917284686556277751400831613472844605012714409671671758446000586053987118278385850021775650497508920554116729737990923792475747698797742135034738152662186657103690535146431420770285324548675220648067777060897317820885030144272505783485194202335698133425812034320823761376722228980441313145862900848511254345656775296847160630556922956333550880706986485672932845174474558571549308144007829104934139733263361541668685650802157287058939739766886313363818691975108290492532482104651488083156350950892623931746184287338185577813276844539519014155497042260663497663920850472479996950012938239426229410123932281178015806778150955152253951992911832439656165084622740514429468681157908581031647261780923988722008947958129276893760723955838396160892005025144049748544189929953925699551396263840436172001653747333148648142846628346739520023474705414921697429435206126456014238732230157238924646424572694080431230722945924180339223195095158020916777293215115394726982421261167211483954248036627018883761047871108432519501999535110675494255936155712403056170381844740062340568841036714503111654969474140197939905084196569566706727903567775255456277658414947674426575554194057447737361976241479280069811291341643108821471649545995692283473788881375945641544922841364235545903959702366429786722250751230606058301047906252311639417543604567822256230066888997372056407852402760302835271223269614398118853557804577025111028780522669122212617293606214982073900567611546859648398691363541737330614996650498397136565115900553740735480344197039862129176845789391666068096458060041754188680730045044162370054719918670152488391329343538354466894590821903204566633976040564536494220655767465004319827329088941494353590536883466566129015637072612452188276678559544866111792646133558602513985442433244047646082630989961010904701422217662516614625691501359072948923207654855853860730809320819900202175908466053575320144765130730923916540973485225536396077679922429697111986298157928481279808564535255116705118210112930580771747122082632022280192166271864085927153526917108957270035108143793823174932689222927273427816850638863413368573455505544103248716122170290593456980387745142686462028068853768326503877281668203829102254421133197321633038295876776159801555550818548024491197532788687880273300574465538295737638198015718882191133006814513781989300935067684119081387207339718625743436631653039207335563937730052853712765853191699996209787136409983600366053040077093172728317704042864806967852219879120983968519807941922965311104753672556268035416425919267239750783446607700908353139248652173311901261889151179471277003883218604448622333191016266062164776296141499941835292400253033031135366812105777553521002998091238260027513143040809202435677266689178224130444787502376221063767993639068879981155281997874268352232925920145873535950040989728947863295871741418964494695920033359856098301387312058431450133326331510390607625648246324165524223447349333928868264003887857737479468394089951816045075497657750513076452866966132066248165401881931543143756700201871356859469302482457437734255931504031961514980351508075825471427571397637189115703320396688464481038236625952572784669823604094544301824798921441473649163022676541040891163421513622451036345509370394924976805958392914729656137666632603613925657359878388771885694499115472828861045135071753407857982631536512393446801595949019486673151387354542092010869647577032699811048428498338911519940360094463029056504135219763485305436850421064082959511673887866091505177943789964013391095562040952378936667271174128216876576996844583051993876536086442484695501895318918533485810429201220221473728676824453789378874588916531221890088076348226371676413540243902807449669804536230471161656815861944291273102795518891166465006039531231433935963165121865965767922311442769427546724267661396313250736468039947946994182872055858503753989944735370168378016652286271934375775249831299566821795077674550226957485262242404326117051236247075261087867915509013967971047932037349504542552810984178267412998734773160397060421550168531135790900058970995694326927609864718624789674293324526644192754666266438651149216965663886969795254579226669483506451510541214285230976157374853864055218524663726105194901682067614353197493805626850031310576030224200315815367930408748504825861362638258524906387009895458227567527800203899793967210422125081211078205393116663225732556231393836403271197694570478466852051458170294104605684026026048269349128209972778343727139497165325240941912420951013571404616053619429427287394349685621559583690814330434979379498896918218637637226110141023683453944594279637527411629582026368027046045801531118765691375003376578833337749385720632289763684862520454766420769553022200714720692513916984354504015521677396012592947240039304301400745652207251224856026807465339417886257703544541702278216633313357835934186171632923580087852444060220371426457480171178867860867246289199065886266675060605548300614607784852054383203350809938837055153131129903317114365586949459618872390881800990699127565584499072630593003315921433777015354020732174095274933176692779012304873836752247176177403503882000632549617499517262624170360330760697719456333040719850669849945638996057400223903042806363262348234574384495102454894632082460391335336462037735915943463274953190708773796522433909614932617864248683371417930989371305328190712036841902274143919766421051938420043561569071037126700134630733435397590792039163071827890667714273728021267355831647413605626638646279898934374212899651048387555303225900769665080560404238130368816520092184073830848909944440237031277512315940074079065782749127703246337962724534296585096721918950874906129674695349454823170622691891061982717387679497172295964761409302395616192275670818614611184651635684807216432513115442503929701669697736120666878723419125179800416024012060032366780982624938901847278700791407354099440188147565286451596228413587669367937353789192894963414368821560677747198584275945921197978607742519013627238600341211568327649506885532205947758143326307199871354427043153126693199806292849658908488721162139349916241179240663316311446217770602216213563775400105798534105398568430060782465953506068377543781823758418260546911517864154939505853415616136239031010467911215216231497162905014643978465275731941859746584808302987517150986337865212661421297131463369510908866509297063101900539249449732034391596046897553992880209973682236685009139177359546148644153052392999153901028155696721999649119663453856803669677937205455352328011727284747375484495666193570836452502369378821651592078478317815178293861862933171889063515728909933155517917117144300537518115279483110625509007724834702975363255853001867837208649224441346838204562992317760076309703380560456795863305292971964615895876715158289559895599988263179691026705198964246675708292616986093355427422539436745582656983400512986063742283632557693309883979412722403791897095713953454084901024775930538139895022615983702820798849382303528326619970925187602613150889190633920885542427638250766754457353803724445464224199824841476307207387305393156392910714546755372756866505154342568801956360703708896911269593970762088582049141702602552232511648019780809773842281824626684187640996043060759192830308897121209701744668269873643414798491271078304982352955320776921662652520386871033144508491150586606864356339319975317745481998768370013958404501943433489376441343484080086202824645011347858700549513848877529985545867450564365492792942010699827787997757008020836986976156731140258269907255049711720222406821306273939447279086600668389297281086132633750190552730406921237659884428385338990899364428989294002783623398218968547182230725929038746547722805642652026624062883908892599956140498834053495694379420915622503918979710220122808814825833064080478636926720331276543943546161944088386863648344630773998680048313800667841347952344201638785583437057757107593237538410124049911584497752627961168345768658779995268945910432406237784385809328199009945316945877274756424558338482574357599245844376408229080978524183187785965576842314595357355812400606505712615343758152051382084955280851639901253435772213169335194186625964268157892619483046379451083248857518764251301584653128971234742232056489850385314552894679541600549874575513689238886173511515807375655898872019603197397033115508822026896010418890743567330986029014459798485233639020748713326627578020957672606650696104010650527707374096390321049388276862652553307759286532361872317280006874978516261265498016321378928279269077936019681220731041007685477765002067535467049854098169677157195825307740960912051845121049359038983461786704487046290403028657818929020176582867462336038159379167375375298753372564320284071227325284414327596193000775554767563045261804204340456483670110960670277619157160045131481087378454624141389359910006864204896343554843908722423809832461160820952246092362156321015549679323063560679182622779014360797836302846325866473491943171583701617878653296207857665676030776175436275792368341351108006137897242453828719895027125200173361872714721809602973375872880227419675979535569679319346393171515167438260453475367121846541498501136345674573174260152254774592420203157300036074858741977028489009633847402101868232433349792840516823121563066508396360959897299978296499742911015604503433413557054410404799180532191702090214387441842292505820102438870848308010414019478439196670853269444865686986005602314790563814656967081641797433273080856892967882592795674777823896898212580840240736184175555353088915893198911746338663275307829636304439995163484598708918898054377468554395250900097087232105291695731720933041412893759295314076980116166071886012378803435281961801394397999250916007391227153810764262021280669748868371683673208755587962981858075616195484190506615168392356271533367844305386977698171162470977446300663333763865686897177092625211250444100858669351727665630311399474553431207373672616942178680632443912976108398967190570992839677860190100045796903545125191920849051493370802273001806085037888468810626135092890469867380707886011116036229977946912307302778772894854489384805492086934174627449784547164434313454073168860269792535779133729328638754235927000082537617096137502304756624686408675289531877280330403262001319831444660345195905242781424222383394644912595576694075626670989221148462863422722808508856839413480282602271625064739170544516940570753126904787495081396375225079425806462446619750293060594049627068828855440750018498967535786677753659470957443787649888603346369001658985733225495503842892569114503381357461465997972605491915825785021848723208994837619751934369175152624858908350359788730578635022656348639483126372476820549927029750541916688244834277087850975904131552013046967825908415214608904883694900102335567520230354992752201780521526695368583108889899762955260321693358196219218168063292852578046432162792488066756229066168453513443463550349808288552295515772964151945290039583483592379403065336637328483859813747199769481341803249742995575203733512055340369363602320013523584266483114519022214024638422526016673473323450931494432631721605853469873845268083084777521551817050613800758852924780240277572277697748995366603362381510840132524055057428599429767539734550743809807877164781860892793961552207393528870010684200501655240090351644688991205058636747892139409132820718032535836938824874450017481928578050960453335609675629121230232434051901997329074203469749692155022850469116953552356212192649346016443014473739482740774107877478476077258071826327077235927226636749789260960410939583239775114012314252002885017634375696743044777285888198463525300245457890257385232812717047248296729829345431249503336776604844528980936824612288542423272475929154360846021393989484287680700822920763788314777505702564720627056366450095939209068934136119322069751150869144871887748433967108681921575619272897187699036769525205305783293980004542489228570494545441808320549268064242194068333729187848621845217892189635440893613751667484939071593781242438962309967848883786985972002900032248067166319855567391208635182245034223773672345418945159442539019181983386820111746579798960527614385789617714848520402824930957867110872105779020023224333197844656833000172433276847940586728729223369425509474833290740840556990412899867891228067059744149606580239754814432948319115032693395335025865597002233059824440067116924653879339962575327457274218918195938764178250793527813834018850438456724377055776272843900116256063669055051828253972722150982056001861797642352908436627001461934368248096886566746143040351987669816451536228811228142991037607379647218244033285026395952832565909449099701417475760384551875117519445737683991299728911592138030248894253013680181887482217801546592291909170316598206120520912390124131067043763480275739052962457238275875175563629299046055724713060200148091276524431095456386405048637876370758502635028197238115380143179063617193155320698197083688753276725471323451126322794092244676766973578636284380479642559052507870007399595106908349361401948903312547115409849226424428460231492184014900806349358891046492737392066026277456890089320082989731704405815337988761259268150278630846400116711305881212092790805901314002850021463767441977684392414818258300889042335707751932077898860680927865332581148239245035855168867222093963650468857690207005687725010723686425752018613052988377842602715107209183277609413814968171234221733209015689004474467008617874614960378522039087428355269566356065246426256887311733592806093027692871759412013909290940749080995034816878906975566157605603979616682064192204109059449907893896779999049297563269291472543830810045829067053400360013745266709979534871545607963507681549067771750877805018665771654247442726790618712745507171835633485104293714736936587610769518616060455201485615911998760341069756953271933669406489325694150637575614454666484891267493517598100927976487652613539836858840595974964571108945838650173043986429219599005229758582522664614896863395860406064254999344602054593771917151044154134669683761858677914093351946866701767064685865945895792775137888166282100244043109952630908425715307958275314963721884318016028604396545574716751763792863632245438305728812799351577152434239948894514006478043779768706726434573021481542593312594104099051533123520178296969921611877794056620708130816041114992843027830865312111945213315859636454710994722071935289093365658510494767612901829558757187890017904819047168627199897340206032004726650162452846952432506452569606754943344842976214739722616435072524464845178554594384052640672207868307531159340733931772844105002205931976128383511615810331670056569019775759461579220047435570308558461905383496481423233906061571982742512039894413610922747242671832346762802628468303546695354350972948793138909699036854675404365988103319213576966306010433815139203035423657229639506706066862812048289170815377449300320403540615321439549847050671752914607770685209921035276040571959840388736115041867962594160364228776611905779292188126859196909024589001954734855242551887000736572639702029188235999800299851139484162781632157744082469361347849833833746328014482175459008945294739956721188694647659530662290997750963914495832522628410092191521725075710152485166909635237773007380976233777543211858860598820124902240441387470725389017866958723528427511213602209600100031162439318516687647439862667976939260461246052414583036602187518701968305708202078166233089340344604286816992403507930509897911506348284777870463831683525283928079687047733590844380657464329688224378821762436265136691035660694715994023774194196557662594937525823432556614413550238074559895349988599381660709188386468840341625503949280520509393363027358229964987229686545215105292411905821947042468948946292129538107834772292587322870160656528655697881922368146318688273845505402769517497130390511181303329703114766514033906104996240119342207404560367746362267816146927178930838442414046174413438259836168433963070454233931425723114306644138763889606731619218723265889990489328313720764943639217312564646084617063449064582062122111988677346260808738115412229502377563465619823331878857124554083615477325790967959913646184156148766841204982741043575900914069535914347634777036861571964936152896301144388970474705355606962279788389733076545253978106791415983272485620276907229957481211909648683469462320340516972146826325034988549854117732828652599984080685440585288640876667361822580360787606744270644965910349516293834417468566387560325028668625827496665003700395604697992219924485764777367713114475891832142089097812529557869940130940883064224503286431696012184649372320605326332370011774687594228181916873055130588703936269779962995219676788362771073171744870240761157855613160447089356635356898181112584221874291071622100977273959071023479145642548224641599581877373802412315535125918553340724666517142295484666028958405925644145582444307851089919149557557900578470304605145432935359148018492739255722063872363956839656972909769699834924848727780662667416807665184915600644205211979539514717111036669633334520391048429178516901803221863897302094158480047347424118211252667339891996315732916807728767195991662856409397309821899027862326449009653149994791905498045438462844346837872047319496454740085434535441060494866722373432107871134958811609238612536850964020876981497447249608201470135664442330449683760945458946578231416534740479669505470570916391309142553007739475367289858489168956307771621183228598231943916571992182095826993361507520208904461563514439870496243298079632361175717545554799700648825799948823806049437364888482759452319164822670778469420135255287258482184516564807240360040373652934871770847486800049358996285975556596449590858865904217618936638604194132600496373940133148391636213166019737913611531906082243447954068466884064709855226595763232570711719798823116910835645547060875140178825310134889627060449283571930493152922646678300553377442955618996082475675308597040428234617977426481059857117191616164041007767809447367471203294003664205669736787616872083801765440105466615377469488334788843592693598942997197354357239164741673714134774324211667309939088056938785634059876122374840826363011789318546499115529357557885475042618684536580293690521030233756882577298673439324532776217170980686519387701635573900790992987783228019317924008346358715385405142934753961854826599315890605550892392098803523242198756694016067846096078839644079473783487861147782589502343392504788074314484832220496393189838167506699293380655475961565341581806292243428519752532379587716717044362992859807283806757574376119177759335466898084351179701831555942775378681396168691833732451108239227789596219735610029696682617648911647289277616533215616290222850121493538347506641963425140706426685476899524088940544480295550251669244230191141326278590459247880723891569101709796184350992919568466241921909724975766436253301700153847210684178768795918388866859491729220206847150868775411309580848254753865766926951850305688997599341595223250851889231781935142727356144494453446778359201983227795866561552641309235395367024620455605319509573069950244099131814188920884271042160673695269439936694321186188698710585834881522409029779053468226877503131907097574247118132646952366418483892006204691902228916453573116572751596314361593931834366178623234676965728385194483835440981341407043573321792502960061381620594997427456496216044627931451511493848778954839667608126383164137054745456446727364034920548355025182253237119069400126542422365911638270555365446599396271453110580983783625095345684448045900185933850408116445583120586653367421689565879457806144330903672443199941627093147527497097405073560509298318615200580222297336078781244497568334843531980387641017216212196789982231473060780648557950116103564535405152119860562844276105778874299873363098375927580618895217976644019357969364911621708878833225414062986929474251096079824080968098530246431923687588635756315244611688819918683588075129123356777436861437415423570475596992375133057966171376660339805019129831947648995642825894042519481957550898860445710128264275198869786484810131680992014761838968897504154023572415377719759564756017205898579544811271510793492542532007232106998297333449825152856287372986310322151836286463743778997846511926013349080719550541114895194690379029947637780441975391034237662459639259772907024156545593840470153787418785362326441065156435808193607152537804406090569380875054347539836134627599560246079013601915040780455046530004440477688019786718883411120526198036490158875913147362733758147760159487744456899608341332482628382426772181266543190701473683857833676855061886513841667964932950341704659870898878960310471742477330828192302611153194953819963276610863355557954839792069588124081339973694035099563513278168386140293940098490816447382984314682730267490817471991161137036049765314922753629169783666364400473217333251464622757306543649134120377474707743497909067763890902584443671493310032309145295578685518666128362087837924484203215147240167024459732734529616457315347621065649219024997319779587191372185766584655635678004293981467004486400076296114694752883250488029412305099286815290719057207976631347008287688019270974737174526347220466984237839266003734977824406284649623768581167387008584242328016567070513971224899390372042363506407792478773665606872330988805789351034304593740333572312392238708026519867954700322377342902454448044822509353163628446943420739390599299185637644900208170803624459386595652525888104922501980627057096829846150038508099116718620175026712168704066464142738958175513536502285742720961760056111621068399870243791226448702837963523456965489753059532557252568715010660790388324265326877649054297769594279918336991974358964108937421113586612304718495560396303980573770131101550787517246569102945639406323373797042182393624694257171247790889498163112800556723562130389585660351799884598185381796331773400657238213014879765720015143768615265953396088245329428830415071007243998661703433276196294698675358126292896926999495987734865246719664678762744959376717109913962769562447415766736589946938972905703179027845070772777799069905908018132483836010839027276107761580993981399574093101234737931328672500343740130926842308775820516279831345558534453562529321376436712176828139762311968834599995895202819908675712340119912303745090406965842157480310529202700413801086057237191047945680525629658516087116286606531248470697801927518196436411140750126939112242071379902407321197732115618938273656421321221696036775694112367630164840464805131746582625623604858262877203487886971172658396950596418563726404585030865982067841880141241961028142998673900383998652279302083034190519811626238777886823914169681106552221061569693277288071614621240054221456544717003755520560262574292305281584215634378479243481433206941452135202087991857223836581020659672575439369578553237469886843120288107142504142268267334545661816184589386194052191581920843017044092155246954984762128530696187576469087578772521555398195376226845698957349743090942498115892371852929053559130377883723871107369320075992467390177700115203920003403668580029704126558898618713196245516408854983367887685445658389540749180194278770120985435372375810635490085374729746668456197742272279717896680637492203964599579070151238899017840266056424960215156039042168999990873842075951713654884316669086664503922414854688897759845555533430912393157605802243551589658570723303094080943844600631341159294170086361795660852089647473525031325815239285407906528949293593285698330556961805867211264459041537502528963358178694547858847563230040861119642613883035247798228954127915965791876187083978831460540720785126436835312308951854444008480290345392760858846373728941432284926700561240617843432899728691696534465325954980412581877203780604670104437809174776064723138796576940653354938767769455976396083684175808102418387070128209810309928505717409499837651443844180640210100945533647772739226245361625274201376750563396221607240980276360072870783770466854190371674035329430721399247440888244224254006236990680737073456067846799387167504546277781929130422809728729844784268114235325334790601928309566204395388667657005420435537859695354802521162334315996017653628798958301997851118715429256503562665542591214098208867802942354030988258875679895949626687302617693468044330732721684999320201675230374706767307838844841397034493053437647775432944778963895461343571427831417570444582043851087282397519377377196424065527590251460869071367031212582454854598655659636029779015761292345089472424536901313734099819868447654745991220738982521022135284506172096200428696036676539852958235832608590231737589027397407738817418508162930980450366477198221912434614045152063779734791445277172057237924988654061390571695774048437380465581364152592551295357928749895290633710269943543190561920475395663361965099345129813641821808592354085905582110639800297487208582086711345096115408334566036367906088810223404697528938674654990915049710804090148383683532692210968713480334215168702543153665549923937620557914274896907017691970380621853078358169040664595481978430551276193788141435836060421753655998729765452685825274923515502095435268017257019439208708570733105885604120392864852559974972327163968525587860876715657186004323948917778930017758823143600248591579926738499879552868749119067802336751085710068003684698414525205333415554026365418875766530963787048930328455118513132206874437680067784926745707995174800378387458910609622390693418126780769767117035955463210224868221957040361250142002591809402898409685000815538917923100190725682299921658138189551863141763712530063162221232261155480472984439851866220921298157864021199158401899043539971229926232646250323745739336071694671318679386365842649059546268989206798191406647808954370648357424806111058536599630099121437099891522713739636193508656915134431771517648030036869799351175550410885814171148031695887317513261900912141907224745350125495020665242012820248150755046177277555229371375470832074054188806722067619878314006782242205862773120824840968526394203545506742855290964854694753994674312860030718623484184475946020609359339808527692461292132434058600143384158673305097346252948570662204641706298439392523341135370639720059101643405591909817488113888807782847690014416310395473911062807771603612653580589501596318653186507675959359321196838480816428283814842131562086441144067231829663432236352340618627130718072558034013968843306212508325556619747946115864856468573902601431448806026437364361682043787167040758713021854911931588882264317195617642005437089481417494097156940301495398471596611710037809273046153256306646000047130986215665196924708013503368671669898238223073215024906208333092289916606746380457137230838844525932499434868382216562617682609888760924160262219262516227379272414453284420363668660628803672780232117916017643016312874502776736066446970448700562103687240097385072508855390279530956270262111047838260276425751839849201138246262218995732790806148063520600919255279999361265313240921097946509523531747635796758182769077760667979102213149199257912467744490244190413678988535160974587407613760999616786093938929870259914041145012254296963536519139372915350764710779246364226024017768844952993191044605204999101213672230106663657897992033260209788633843123337921498842961154695549752080905840284751135547721167360685315255988722378530115425953927224099692559958081612603000976066252326887027943435388617192057618705100472480628549005424063296208353913088710099701500905124303187984158783963491558566945777985736435914638486480088708215688246506726849670197984482523248601479078400491639002098158208354049348290492011688346297983266091854031930847351591911195172174075202765815962579827893467048923420683667802401150362234145652063927918112915665697694383705333626398910971187269409355842336253211337340047152742498470127494326556410031096450203112414916477678261258578542796124486280603892763045273846501499011568890424047117524189133662714174536448493414161375661809960934260921800968864973277377952174746611242945647544442660808380709370718629202361486956061696537120760538009874379734733508717333389563203734547778014645860298278767786006920716544169656839499984379234852437087600157235011743513927535947225491333474790927261557253361966043061637939360690054352965666055832920556394797028030705213625712021182117093953051619438437766859185801012732584356957694775136530087581069746197620724640529052496859364369934298068825862374824923779492958149882893117967733140427436547607116460534214604129052976667042911518656936415816776762114074750232166232739530849724281209581533186793658239695698536338400534666134520961623761664037750799682618662533280012993611814640849939702944927113921230247571385372792190593181540681985916299068065152461335135864645413845427328246307623262129241481695100162229275522417177332739086365301759755700406141894804605502956761024434532676923427997146068379311561052631070559269982696210545217834124766702217237453428851688338307266966114041725434413358781722311788406058536714115575642666094129702812616190977927306892290305441505050374080853743227105823706055955381486106635346623551418619181222633343934477978226137579981163965622468944581673442907263375354115754631702521426000899848577704480474234403156202827816206271308229834402198860115347482208279917318106160205760692901200244214659950191099722407154246557260709201507151482387982012320264788525667189967359846008109631164998204768324943907019541952313147660554986662944844236639674120557856960392959410967988876735865335869367973447901103643708112631730999260178124699647001889929345582737705914795004960497327277433400937739454227657346286204728589828650418919294144070149493866806400632122792147494938376495957583964503535065345021843152973921204202447029718778041105679875784643502402902340803957132987907827707807611339158052959927381065809205646872903464194424884346668765945007006103595337876448644491041477426248596207915968689756661508092882654430321461342568877707865091767831563669679338271394969776475543959585604306681991189323706613355635775548403528899256852217601598570838472888400566383431189322239740763813878278029457704763061198503566978580378593204834194449580333638587506274724704243543501317321654561924057780598952075375674836083307888243507084443373479864739602932747379747032003913619183587226391618162641317352666018751819756263670843819516188770560230499776507987191009356909334451465817671762994910447939102440152570292748465935092516230838420864283850441631422847857500252748151831642545409012936224003971384028813780976566776644258451578236927384958264165553881025947219384352229015060925257401694772607909578260943144678228836953994443163505899411233062114864553764486689277990510985053460244153503181109745616083903457724784553263396285975760387184824368085352877858606577642934926538084727938575615725123053629079740159036265929625817663206422518877044010337036213003261333398927333524526187335771823023339195790023218481552962923212451350682455021849919072424860880843728844849577689126637127179139096556911419826513758524122166923444062902396203304796185017071892033602420124753495524924330998027576487021533684448159004964672486161023779340047265323496448482669130893920447635837165022777722445577056712213693637908796095521721411706474828677859012718367458608866047377484227391827062907454856492371022499120120297905528845969037510839593465024544935137912189430661777858158349833392489739524816007942258065516060856679142840283832891708074446378848734573185636671955269937081131626581502160223574737849501216706172500372061543108728291278188633590372765107198849840940817673485346252791210155457358366448854922139026699189231853046339950950171990551082582234811837823475921593255391952259781784678609975077738597986518904490226630745934723985317245214130770306572036827116405323382859118387165104873147901469187414404056713518662220891094384954333004747214281603870779647714418148447085935513798347597551964321929097099643415906284865584938051494285611169462911236605080298784763854673855222340311090908600969334542587799724053166747138440433182625658064614604584674649023427851287008066658034721315586706903454668294251310258222914518784792586187732703686825862143138718346965487384786053303569622319743287908787792916254679140904359170766575266105508773897459109688073440674809114948511351023871956699485569453745050320276497447787796604063016044224777537156024498524301085590294528540400587704467459281596071891534168044033382567924841082666499302056865118335681011660015267493883682796481553348333466709902704613014238429552849664147512426384541121005327303017316383119841700101483455737614926118781437241402884570246501257533093930879635460432221214115847423115757982443743832713149561649208024589386831232540614208474142944301041298930098122165593254480447700169856947541530906119011859602354787666416439956720185194347088466642129595967164208103699454454682590242282341627673899107733357325962948958563048144466102640846808380598808214738781276134708121643246885419579816415444768022007053288980266660909155726377250027966368880215839967788762388368321585606092021540327165437276227320030520999737261212941307647291677436997767075288033146637094342887818909550456057595146697332595412944832099284309093105173004112746874447469409674607673098114052958179256287198788912711672634099520438873083078584151603117159267643764326917663012462674742389976737149949769776507355620758767303399102516381776702343070856344691243977333762953301956288316280586813661685713809766078695923942336640694947032786064031999655854208391505677608916793752420791831956853368779267448582147975629308178171604733285653804262897254596062529594935706249670413021972452856119896393464927235961069366396000701652776198721672409380438226021643800386791183775404649888185473706839807831325745795631619470196377902207802066897598045885364208635158529095516781193353002811442285440928881858188135430925366869492208102300855549255072666031116220563886638021410437373345615006172394136695800379085407050127987437339193218706386856902846784533713163390629410816725027360803359778828706837744254875902445061367127017865906055811562203353958720510608883855985488737465531587558774629531910369041781885919335377051672836340104076133689396228715743878436447667692903131783667217624334495965430559694021553802722163101023548147957721038169942160170753246675477738731991337630030773646006843028939453703321529961274372095004749381330290512773498173132672883787867502909399712152105339439681434946732111387815262059898114977691756327984940798174664717086221082576309143436618394976561545113160606075837828019495419695986979255462092816726818491296745097051829348326818897384978542852786192442530302193784985913467081405485176758200202722204665916912190810000993095820224162960083493248990942659562281587220412956415967076783224665603797885893918261417118750199382068918470179649735900821719869285978637544496021989778161298603042027899397590150468687203267847033430372057067049428415426648369850559530095812790536116411306980247781072692556054707094755449934633845232681138183608826104341161259013437576419006674440550064920596849687682533350808431351421460620820631518723714605577103726751675958826787270622147716147650283025934022714156656109240878754101702478596592872308375932534055863893316709355076644403946697045320689616037293296067817993957005380260145196061248591436549360997016486272639779354705052096941359630481461290789529319134290112227569404328530905448051860193657693249022318358344881794358724590857674443811089240020056760258944922782659926297214936093918595893071725155413517923362242995269604439880511846326175031456952828037827877143238121916105213862797154945738846060292627510590883798946350794167247912161293620205993986287944830588305280986233571270319801837451938740174001009880055914867082204799817530781079075710170061085843346432990228740075864905571930474057942318260201457611033225567800443619022605365297495303722319595993278114413659208286465345729358460752736134436474763871365589850128881737725220358861984937053097256029743180683841516048944680262512079007847087073075560820038870174496506680229674130989207607365161764333339565757292376907872087910684423251924385768825935707418878912936252645819038513409065648119176257693323373558571130713776176270772451092907332468679522503178529013686366406996511560575998767250886124590015570622205516540519716485323131859490204968084563625980401157879258934875268913157597361952346414479809818062122116304037689936818358219345646972517714730087684018443485813776927860983135645476440352247052366830232783192536199220519878565823255673487847019838660631773274194900360230215315644206673203318572884916212180855511874836491174319452298411176468533012251559193290252774873970594192616620770316108856530266980356457342191812074935334115074256309352132220108424690988005591990479985957309742047104040397333701003621967438382534795303118789640868586128802030073666160976201120232852392225534984815878940388744953497128020939277175267848149493199156601108909961498512167464984744412602262464443473741099198467272965568432982353802259179230501202413100066191396059486708555618372008037691950067016687163327382616165608343197196007826378740684550373906993958475108956626055249702066096848532069584310843883828687704799294951593632271780674642347397268569921942275474377396756233677263893028718529244692551496281343814424331357835237217997585416185435434385305479742451882567394288689094047074338150491556309070888482040850598733883409066060337458526626015918117244105010060669194518514082888117932252710842683478948643205862236996333399159696702310430027273651048932258334370509894576772628952971405353432604726949207088635288249600632273001659892754404125858782717031455278570113666420206449503940222216254322659311321701198841670999945543062429224801571072112328734617716762931582472679579569795272593071965061145555896034686813526810277682035230959648848498525156604654502194138164542003510362314015657127438223681477746912301108378275152804970262872206674151173770510085603567619236327953045243513720883525961954917190624737213062403691432915413445937251594588686436438283893645697471791876304804950176165671343058626937525430127830320581022499298952391532233125514802463288360512339597231108924005901216149978914825758645524343384204666012208155657461722095488783988919578528042804662435867948659632628401686423619757219737108837607573568816213646561005225090987202335981404132168844657460277934170663540377676374992407838417599223397955057261151771413050992755140997541205799728684618555967878075927802928062011281541320031949806728878508588142155202201456542419945456905809984760249612090904593605174566905475073618105596462116315125636667419796204229269969700421880975879930197247045307879224620558700713678675429987534891099891638579649696640037896464059082205548921497179345870532181014881182478105047996132752060390396988833388564547312289267136045192604540414430306983816073729310082588973711094247652348362831473454142103325009076254396217747568320299122736210905012217289393816791995438983531142325774842465100442263694497453300300726941664305347441697834301017989570515753797218194521038859518613226173580536595563872269057996304827763407291865808992943865777746470665707497697008883259242617452386267818505974567366753851612100594191346892122102186719885721184714565655644375062805207181309184928388274055668655161984847752106808232580511329980129383934133935420669197235858925288795837322129531793057053685784524798586744113876380684021573154679601867336675644550769590421362154354415672340556342351898383889244581582963263719919805841816863470709925374272310272332076582986701071585414297159827078247064482275771454108654073063530280485107452118295603476956507195964208772250861906454752618959499024321221469003354154177728091435496967310329505177057050018421952309894169555890008020412991355891131504160790322270058185952313033404057626258678904241868237844933646366955566985080184442668091649218797403700345567070355907978016348427256140973900391273567073147964395153907317120648845440605755576278020612767967240185480888034957537152345746824538101702882207501729770939572227289301224532737085967581536536422495112418034350626572843076910766741872587506049163261906525310220126566117911674237024533423139344728697226016559387062969055767701635910841714559043275051548192987825721655183308281562534524265008447249566339330889090896183892503862690933477819134629631617039527592130916221993646432068222899619314517355448394551012292429580253102978321085669856758773409170033996939410051983163314569338152330885300167465115314419497803109961752605848939674619762168232816780780730113284087258991257113590037458147546524036841119817083536796905174024749829675719643794300238740947896455569758222095204305642344680473360833818208648521955872488522064515731255642061248750271976362938895897856686122193579696592062826404866666893763752987719349145378232048421937302485512328146325566450671657297756126834946323794267077691461561003523601010131104245986641897483405801757023274060006192716606232842885763120823098627579570974423663969993313612839309226164134538233236495596672176217940389028174424857921459730803874464830132055627154241433499607078535796829102405218189159195692761361495182527987279237454927598005428547001688986076227801735450407213233692720755656786589085646474711775211834452950544233819633180389099081929334836928377683222368360941954234170827502250806467315635329942585320466547388359982289392799124055883809835217878236978563055825849283467780394664269953063512380772815588409126840441567266716029779021020145265034495960599587371587417085738159294831757062492329200973800970684675121449228959968815574017664700127643288298658171581184060889373522972219841285038569585036279624888903278376211171686595312844657612466072151460323511491318837127039750751618309780769332233975289039181091533801004241403650734255958506366798962769184956193250051166780502402416077844875363340310121517266464151910183118392401066944937943688324693035756117658684754368061180591747929760012655438325764206908736522511617136212567949376047509856222031906373999099394829020370174145280489080852719135424025736688996176528484038069355337133111428718859132613159728298869687783629858848379041504188087585489813656291943168420353633469443680804984983486789339299519155097612305184845860317170364217798055929106686005373393496249025884592874699991594250172998990525011822009758650828217640447645095723703972807431235597318882850991280506268014828767755362978193654788172451322296474751798773518207141734180661750837848303843082169660016548525636326270543566771066824857515529275929515599429845802627968686460469950470951074425545432491234440037080499202198262890369730931218703477581555130708609222807134266862648059857805865329155502112716579119432410297457035235566469020291825347263083498269955249592094066134195445083354326120055219417579751086529795457329448253493709995083331960859284246044440011161881499915812558331700793128306470846807525118705543622545354560887027307474068421928416814409231331246230358868565292337248568500732903239925886162534677374994951211233465802945800781566930648630850638713455941110534125582095515259529310685108251165024024014748283869753905961759668427227028611777234071321882445120535192032292753625940919156936155080646162732815197355887022369624976333141950404871162401668773115914605210698166078687719249314887255477485473561622227259420666650083751248848628176150164863453158133467189422415431109153164209370213284713466246150416183516279077672160523711587630683592231818047226476940411924035277380427624438801511004130539094556088347150156100950756947063745185483710981264646455506030904277484360011863685556383735284926593569487998748458057911033506364681729300029573245621575580333629018401090385448824363252144629155749972171030788328997344233438942035926633146047272046410326306621300619183371028702569631791693889351701834974025312071011882142879471063001575437217012459116447474034788599390915866651767294603929209261225088104069745350292090515877339187283292519081124434787531734320096876540110676550869651106038496591132467451219944615547865153587052344660630510471442204133821615255898413891895718939718050149638962152200861951637308210485569510899168993584346835528442628260328741413058666513188235600232209339091587875900283727279882266240101438257940518837792326488309548273841403898957772627995405833409852304254018763222541860711302419554205704202327661491372319424625605582726996593566461924746110821763541602484103774470303812644372618091756213081138161508133452681012277550768990924105812808606183693709638790893925971473530382064256361172067717371522236389224806434034961188807973437201384624654599726640929352419715603564037161899272571450954927654204821063672545087475619755312756391249755926084235568069442772293003124136834916903921588325611602839355346320277131874115669911647302571769812942343555900239433447574337995036214912722512567998203946702264198375273062352745656977178092460994269549914534259549327590095785581684649324028071245420928823273541705826334568138356655830902832481392032195547594495610856967440020206450316250149849467592042236197727793377166965676000844183730040257340319460904607919729442010357863716822282150763964799939602321859304773879480387813375894747210589579310106693427804389301912473963188813574562638245260932256692535513722724558971034593160273806251017924491487007566666877748197714172225154225677348811365432431845827877103614020347637841389862589242913452953683878506684952305627290927999469992528230712175284123289673121553549026360448988257821226821855661455638557250005423649308216090660014224527490241733694795508507592798094696524426982495661212223961251917869104208731243600941711598530844789941406384997464305028736749398102684066818250251907023883022360862650412063501397570613901427819080957900230448365447708201736951166138166650623472688827497206329420811580929090901923811533291199795759757369153701043425587447719421571502151591043341198868537457269096585362479091299059005872277770897742586807400997583123552257558726975273764003335101592840237142018894279425965891086162032221290051191904142349831399547791626511526834148377804078520953186882209672603033794795944310566634874541694084273007718167614458210033417981492187933497019259987229572053320071617729854759808650066827800831495478487610743520736965883335508827942251864728943146817819785605875290213242828461468425467725122612355644517795163223185930178431294714053611510772240286194526231296693289127898639433236772911307283219448461471709706694152159630192804292068471385702794058023199674725458814514367102877173683667475315411782633997829661156198227810702579160252491544838047784326258926586959769086319608604371159126547283625187374725091628647853768725198529031398227291266233086182037408889808536331153649872982772842432651908829853556629096931038299812961487918004695857209349613872783657834595484881447814503869151723460519829591308544582084972415325706849873961199002920748177569178943367509574825069021252288290318427669600551935349326873849347828545851598372784285012624445939410718977480897513186865721660041491968766154768830526634212156736257935205875734498514140139373080938476512390236886008514446654318151350428839908488966061266693574448770890283233135287845646103169476622720776098617896787368985636232956485625612366527805579442236595090766966894118566832818389478661482469026124248697180349122214892724891836108018384599495251556284672081364201704654367665246995371639251515140312784565899806119055373870947822143304248224147511613010388847250235029685879337707650311836683089016556182012508875907545281735388188156262952052147085637792962527947295174486667292442097969672518841835872587253989799164431300832492459577615755772726244358665073323786366248240208244446976463304670971195352563955199952553553895298076990341415067973514522398645207249691821285462006184321001448058998081317556538601347924199825153541415100976389530785472280650243001330365691033930781394563211888963849406441646914183834001392333026463259177203019288159580765885353410955266079154448861345020352425982460594560133909908209491737890665783357478616378354270424073031702565453699258652850284653524529422686579538413772054231174629064213852914948309169585046679369069640990482993387631757988330405481314139180841823642119949288754940900499602633115459949383194706303857584355487544541505776305996200674302923778075860485583322468473177239893572901473744042367295980755042542896550171101643917730980696308674791666277957319158877701158729039719892515895042143111069163487279059465051833628966084190409318194099554342002613157606153918369482002672077361310434110622322979989530771006513819975694190148978763166056721955871378639418933390723432718856240357022746955794439566631149853433850993841680462796865382622360049331866540695946757794738689371235065729613093478488391723089845798219064678225706020378757573900313191637317069067975549101131584797892299955429158547005083851570269450435734343699882266514548133296649727595384971950070161953145397652082329813789831077368421021748881855583103708923322637254515902008590523942342966387274733675025599869929891044419935350172663320102248760881285446854035580105415477888872912955980561518512449198015567428016801109365682753540994310518596488703418607611531655378261570918448564430245117892180306151612407916900512332351107038378263896678646594920027200787454459776843832349734499144851177575177433129267947041215464961558192128338535084508635681683360510169847988981680104250443601095379978850274883017735359349742886526538365353035043774008641430485245509179581572242190164793401672250703549019614086945748842350626870450975050453579923000088193373764876422607836012086277167519098862985800958175568717094112238681203973414852279536570684576915332425459827940646241830898463124732794740379190918489728446430182577976774362099688788041626059994130382310426513876172731230286843442093789288019261203627551051813599724559520946850349544641976165793542861449825501527776532202589757223136279949734034140269959980489057980092937833582709134235661916415866685720725738238211660505786323908354553968335660290673281460795230100278957289918595517106688668866699006734113375854951006976412646639089162060203054546209989583003513053528255186473236740708912492646652289240051704004795902334587352064129328515840328752648422239272612971563628487131430691933282215469663880175586443600194163476058079600627636787883199294527254126935701269937192781910244386970129090577852038610151667299536837747690950543318652170569555349524000322021390585278155427289509437694018747449077125723298414571698854064900565548051583976927007098802176913290757121179849293606293616096539686708250851020029443815040552496529912490787008676436102808439072145642517126329536331979250745866250394261389866661217144163615453052271229752758953624191616795048025368479760989335292710998115352598895885208080219063243538798227822820791086100855109482743249633678026081157332576017966218947117998867561021094850139455924280668958943702813144871549905375722073685561674999458841768148024970069522761164211398798944863993150863558544544795874713915250567528708826482867134570400321447016647489445827285866681286252822274456825567802733746023296870846113277939876007268043681281670189663431254190373627349741336942827025749606274712085744159776806450439650875713390598823199826607488419205437787752496188916745175863880452243841130453426629612907501412160017496743122543971173211290862242788346753019445357939177106134495642944062164259498966068948369645744652679737322668664807158150847893202353882032208237917075996139178399821460521271394441209453498644993448603934156018230881987641510966282517055071773224154868566701546232955819182665462062060529183285074349332009486227084206833282606975829856124568103832675256848799592276510563979268842464109219180557188925638425226490155266100100081809926085666607084339618942637566745668014429470260644410082641596082617778567057438364519428044648717755794237054267962221309648215308018311799126651032201319787194450720378467492773182145271130196032274339513262505857222131627120081355821172815923456466415049057777140035212447312711428701872461094490545822633933112722085795965199287038254958553301673325898579596849673876032383950535372376371051006332838460422657981007019842105604875695495386582507628197272527532703822240708765562862930089931285563481882969688472815965283011814221701654226273329656742428617523960103764836220797062835058930022489167152344213347230291421648841797452864478523931560972112987966009459476258800102614548718621159289149515000463983185298347345926769573214252328518832530339831282859473775057593815927051672802435580973936017046749677948470984170273686426967695988473039331253639984369060038873857921556745177965641958837239548736165267503082641637495985497637637778637431016471542365733092260009348700764899385605514100641850461065175255463268669901853243895190251316399293961246453577295177721951061731925992844367777601033063855751765697191710178252845217048402738011764127208089033325124470297402413989783564510737969476611197350004117665118527385721362046468589038521727853823718354681520624248173843853032227800568367414203827103794582131527399584119290915601972138394493845008664778627566370015845267370147863026742113311883320547253176540272703630344583307615532905426793762683183861528607789942465085192939706754647473690128544880175877546254341085362375375263745433311087767331014469696555517370005786752916465002762586087628631052837784079665543970228112253958249907044200702080234561817099001394882074855300812739385473554774938469467786029517608605213802765335797480840680602297092695479101710897802462697939431636371904506505606901060152549340510572858580127185693469700878626684924168103857088598321524409467425564315221521401008196212607285228825100173059006012147736736651267669285865835419121831872329546867647028615237440927763732133309405412235787564103699062397836538245724268011676322674981367847348698133477659523165159987086580157283399815217526557265848162161143496354015968700427676061895846420815047929055361097334393134086207334829983497938368241583863591263948143665743817918638141879917773467180822649504781806860421765642100155736767824023233906066208960000891429617304094784756262448177195815460045327802519335790846549908300898459313206205985541381832950489570602690343238511309227340711820427494091044712858536772568445606060860959716269440974246916469116436635123075625743925211020872635760004477137601728603865792890171392644515625580013818818571474339955907812269175102136135794802309686620611656526627850429689069363733959561010871314239707032140376504790708785492363564463554590089973160477753811326256300814666706450097644774257723084900013232560108667022611826060780673541710806098870058361523303583296671971394103271741409511257006805489301588966323981331277370857330395981837777161432002455416335766408484472107009790172891585068185571936253959950113948783271992555381899442145855929780757276938509616487888667321623960334702584803788743707307737953399757906444394893265357684298709122085950777381614590308827937521832545188765465416264511206383680871341171084253168055803400294944425114071713282840396863990832333733340847952184635872337045238381791575337627169595414667355559243600995984511605293210600994391673312416811151984728648181355531040056600676175048430714154703169354265171440371818308783092799483385231927834261965248844174413003320254634602181928848250178292458595823162623825534782206218491447745120611015225232155608563900687412197383054047568228389194004067805317237453664060051497966748330651890656025826365678693226075861703348806827955523793019344347205598522611864656504028502272991135090902520525718127664549040367057461727725683627893150244885145027455011018621348089279240885019012497090942672454776892301280102926469124304501762594244431583754804500835878409417036072631979959902103562202043079902009289244574960384446803745001406172794159124447465050542711189173838811445874450240345212320574201671786213929501861649901943532604137377611306072189397746486187226286146933747810448469445823756199763795764118309204067885251213133167478792211168437155321176763753595106222041267332467329277959775189966552032436079469462247904194762392148198082716172005314857958316739244440066992354946581509290632469229837286435739334796609640663356098225800445548606008384358314031579272895781309493560852268575645384839612712827513519547558899720854555523045869914510478980458602266851196412299818048470783010184172949161332281865435002589466477007616257403767394920816106275418228047958625537213255920443107622254958684326559315519604774138531472538906478616546741601373519273316069386932146553689701653018971144197827949621374276425867375741179719438452228554093817915933888870405567679456877610519829739154973974279627639759490146191612714898548842488198071791288381986241502048230452385852425109593141100709950061066247218719679497477906445986274202862723231871214293398021958167473594497160399989760809743972537003627434239358249859822825007057806613770465882394367411389235438330279280127996885137400932581387957833975021607868522428483338289334007015449311806548629631727310954828921847810516490610440181679160911125857731124847081939180467604125959735917642040136256799774153348599087213429465173519860979323774682712722181716854378746876045791130139044477960225765335390748457867500815130819349297570146016904296069225702829316484299873470669418905026533715464019365685641351018055412221877059820543530161993544878292920961922962996424345733301191686048151805182612419510897593262950402669244151252015947485721597985679010426365618121378111554654286248777599394507454856435816789139859526836009793453815567951624837558000368037710788073830491772755200520933851375613012778672481598995978691483818746252593789069203925057613167879632043263944612210779474694781396091573388706761238368371846021805960302993556890805392434858118819056317792042320038649739771550472435907887935920640841361468391065841031773735049142679822355154805444258750177221150436878696010027901727462688086465150494850812987450777521395110639879574262556167318464634126909521504335278322691257016785546646136564029764679614185204657800353026378051384884222287123746773102250450756250237998470903712745927466578219207188381771081252872636353618372656118593850158032501496001461288302848972947334668910129556484639846704432992135865547018753700156191390905166504027500801835694362343884774201232095219678834098950408016242498755648240545922830396894044419771871327067921544182359699111589792201101672187716031325362519853086515759976160541045490233967965538900898339722108847737307730042434354448956423340627515107435993281011359736251431397931953234997027148848378831577327511014118894140664241533738647602056288739204397130376293978692198587227845882939746578090582222232841599757265452384294595832338410795468821678628739851652346294867557600292556280197249614812042442862473470962312821723200128571419400413269969626973885520005153304491962515258167616604353941866963579174579941919959157634921769860142228900413625174821576627155310466383541310060005512879264552641614257826585359551681485777427610334355888882279405316274626610586438874759997725463338716698623745952027013543047632108007008989940051866388465891890083321187360045059162481699231406668044075686348933064539954705097936414411378014907739675996633791849819709715428326038729834423672977292131328229957799980411608047061017565142749344978751152199094383320377621344263412750407903753360534519568803678188299345267701781786264993331751140041108175080029081822053936677377736140113064255712013092209655503488351486653709475801413724226081250133297913325309723476155180019082587279202530074442128561181155659208737615528900306861085727880901181090974199730093483398122103891597736423685845401372549791677403636660294467598533118919324350652739750488050337686873530718912886234933214127572531350009107281545579263094470998449199357812193398962365933612022801830348155207582637327449207735218887788699694026232349629841173473788792221280006050561885065797787542442270244695380135523366144525863959875834496823380559378473241642583438040195203485967214221780153601157897813195874521615438094827670093046562617829612938058934624453783731087121229166484014213834668706758905067781535908769002606169306334330741314116756837460486369104926091164150235491767526532052165257454495296494326339353127372287213326065827196177151787503432417461825308064381855284906876605974684386945824937371211961293874687927028573222992222362332483447718880422858530687666133378372049007552161518761450127511564902457239188847020475889457379293054163477115158165526804078815831504083745393380958391320396452048931440211476614722688693095243138971277763260716433952392797436546150578196110223834480564930623315847900465600021527632403562144980998991620988025637061894769533799572219055623450960332367750066710228443148052471858488809004326172142591413835198084762391928029712368396730149917505088250517894514939396420117943971142418315374804537430787700779005460212560407628996879280231881486498275020051119672496669676553928067194090166064534176448373613772863928275257252951925846471773103720056752275184220086506742351857309821515834420538009502436443987518978696986039386017256890469649286384929869636798046643978563236557410623933085431114693903694471053152189193894280756898385704065990863158176141272209753717775386797456569056248163758697193879756059197801421241083969280062586152676108056158170580131627085050600148185365227504529800582298078721348700550779711431005509543675642860459509833245504635333300606589766731314505983120257734069334842339878862767815390087137622254511065031995700488808507213296316844449818109234989714727374368109673266821844916172391378569971072346006443207094542582850047115153419034181684233605984417428093167211242870553445330693434627640034692201730107805012044781581195094299444679523453767844599482609087623446375654567702135034446017810380725690999209276930091028686313235568350494691521885193265256685327241820507221523347187661349930753273407398431524056968971708527314121688894710490808940613048342796840569353085993776868861318811988349704679165830737477644217588927083940859136674572549631631299974354689241989919994979186639945080482269567856669923299184977096347575220142197380778937014941609413359967156972096218650133558340720560186467949777183105275285659448385107680883093719921518612149553347995664415871878373533750231984647897386390003184144358143338435433060078567729833039659547878345276670981749333816879318723186853139589331067594225329587689702352691931630584954453460329674249676818790462901586879908026585037190008503578730908788276374632270535818129460292659616578608035385115464207756716758431940673833692721684185821176186648746841221231980468716461353977557459965024972880945623133029756908388528019423508652534040957708319872956412603968730074945748919101937322654872952213005930998823950910783089703325906385474063818349836071677244286800279655567887919792238581297841018727991433671686407075467813046637459832404392954534729740048212108447350613650137253980120157442441226169449489168302893417558148342569195567302029858990812231414175393294868266628503349583157784181660546155905309180466873901062514960513457922925183530001946409428522871395347587909067568615065878168971982471747299403881146751916331195453991667443102496229247825022586119423519598270598893457533345006755653939120219193502927511556648445057095024060028562263215941424182253536329969163937333952982197392109226118010326829724994181431837015308998537740809054411418258238971167664675728931672399650049912292923392987132857446227588443960338207214836755907706974869950397531162809886699680457995397377082573896774164038065004333278938253196170071641522355121558141917613379685059632859763127247053579321926870920978041596027136313963649964162112767104278612460740742921372690938422121651154736489776052999723056514774682420579427599352866625069751293952592915227448895562990085872141521149881039203330291086322315010536360888738195129272793939494652223679767130079612699077377897889731877029500132743795078042508018122559800204240487672239555416199180856258671489585096494412499901067354097796678367748424124945618846530369645184025822929109010359457392675903287632280852463949213640802432637594767136168910339282035309053605360190248959371583473893041884515630677382432026961624544770921245481634007580870864456689315667006140060963694006845038412592129141332333706138080291910574185872878055399857670923328231768546395496499134450290991352871240534097480656714452602040178629608137504737313342648345118694778820256954689935785988194352987412814984011994799589810366693437431624060035817764685752701593654123846568349050800426538536979085028942613502447904505766287934687155462369775333994611034378045289996433840072695643533977310428917620915254980092010407993773288199297862564151123173751082526710175401699273089514047631947240772474415785093374970190714030394329824443997779671956249019356361456845220409151766621188598420011465454915981212179452740939400948981599610049252992389055739875869612420179290804308762353979317986103480224634767191174948287737659202509547230649756920860517992589185131805508300914379906496856608779282341644710005477043922578920214654938629108991307943534390003861660240498654976496829855532700137857442073823441817537444299540683295145841246047427133957753491229102894662610862273071424799963479135245955747438481853848325190294008932874595713057008961134823233876181290232698291733271309743111801028800518908981605311416905064701582944139424053533678057447199424249166533661781509214399115504381361999098536484486172677498851592828164603778885485904804352542975512631278771180421343307051851526857241612392701783467455126356012380576389119677959015758916078420677948783847157063343901205014131887724401324531032104903207392789902364162357231812108451238846563373621827932638490263338564185927346247483372679650666723677974483063933573404936919411226977956863530440301154419964212948529557019569842906350421440135349562561640903371903862134601014389278406844859984139487130595929719175447865425519461855302454288208303149158978062083865195007644313576928531338878805760052366247319065807026372453635441654811495630844374701869884875670254750842436881926483262397027490184630230309781491478462965058141704059296482738707704211280029403123776663552854907055591948118631530311224962333419736579341875336908693228690269295121585548850067219014467000584005586265532013858659050563655110979700657125773443918803153606236035262485649875533047596489103833430807114861779127399500500454276413093117276608866472009941227838551718114072125743900134969647296182706844903237046810413696792827332781522630753108978919127451180548295164069888119973527455541728138264423264005227129310810912387129420353964762124434126878164151861883033629717289064141488033856129246068639536241831629056094249627839342746686837455433514563895207603861840062960620118893760627236285165586496403507543992290214374234117639173109828554745668850151581402141677714943866064171215198996837823770319684017531693696750263014335926963353885376646447189153822936686288439013394147410902635255172999202969496174737974461301066729162185471759723157207561135901593838964763258595557264596918426864737460399237321636103172603276390193731549777913317652090362198497361125265059174130919728210064115978478262336654336140499416196989920754525533963218729598786278781059804341561998019156065044697547758428903676604828944204851775262601571023073415797881391118390252664244871480853829265299703515620875753609371367863645103725056960786675934392256963385010704532993313039405641533631012493601467810088106107960453359314335548078046239684103163683215183078109040749425879588808521628816299833699078578122424155929960890186550730125232615870841244758054453856763061691424227169726450971462317799584088803486996116778514008187973673136517400579788123995605489573062079886366872684805384358072338415243272835982761149858601754792125390357345951069385703229519511123027930102276528090713411371633645172978590066372738285995029347984095350364566909602007397388628200147843255368879014325218007718242184557544609527823729938999100064825037385861949174822162933253470226401522928669449887316859153879896987917806369138957455398128177873221666951245180897365094038181166501803338654963211528294925099265287110063761708409115493464231278236877928574006416051138193067887580680968010869066242570081737607806513325329438475164713919610278730636569984360911786583647260380868986567259956831136477744445692441104058691532743162920790567491370784355132862694663801623182182859053264068377476636255207956284993640275881172754368135952884102651681296959903492991559831381054688681470312563005226841192927021268032138559002764491806019443166159549043534040765806473234580044472537052303354848608389780172864916840354513316609090708968694264055026412956533992675262518039433329056731146776016653118899012019765985584912194096786236792410757069670547686229209727601241362711663460264962388262921900931003747075897685751519317510253164769634130893227818425894756516020128612777844046652443704699028476745239915517925102031903765496833330152002700508633407058077421445674585985670670844658249611868598443568585426742351290689211902468682819965993908698346250363139193096899719126351557582423231945133208694955128072938083724719167066910781513101613513668273931444851568513043692841242944238221956021960342754972614522318104556078637349355392801051804725935718089399620933027927404181246752455536896204130247166160874793168299973479000214414467451541261522652373463603812639253020134841836265891915495879247507246089576078809069848211427896963062525345098789635379417106999573068440960665281792903166971883757784749133428747526961053439262423888273709624190559087096781920594419051495684016175630349841582571602928319122937783259060939172294144336660943256680602542621027752633509778162948242243976205745337279150430360861376442134150320515928552744190479365489441359162724419557699984035913761977868691584385579982923491148205973140115159721743048048610817822799404093897203951414245355017860905755285794564409455008562294052793265779230877446293673591755223270545393682802997641553612446398514874158136600965905506984366492854488903557010745612058832218382079735044767387622150559215105490650446127621976902933193179541616383205994695334510462776280771341800430364695662870718337930655338162265761109582878591026357226202565567163318747735847006180311076130748683490662949948051758359747341234284802628273331820041351412628021002403686229952644017165699538345391143037915505505021962479910444256119108042016321056708259138419779986605343188483862168390392713055492514877385815774832741116946955612038991782280628507266464665062322300561188297898142092687717567758132725980453819481180824033787758626055133168365446263264034208209655991851597264753349536080090610149421240888332245080461047997457299291621473725554532731607695542696952586659367673661522951165589169633827652383611803498985711338043936159564807799455002160709328057854922464733713231581323526120368654656493338610110456093997881083490770168615571096195774181090707314395917336027866282703259748094092944167613981387228375351578567172706703563467726049365921490773173283703948637151544381842123617533219380556199088142543749498478536665238903913315718323854446143843276733924449016791550622442103974029155926524330461637006371341680081531819209326446788319561251269384997432704223331073804831652365821886404583677184743165270060559739686799466627049063313552469235020575654541055110519226364685940198749980399820610665944646957913883530865326346228043573464154609760888774936751570271769676620033977228525048439668959616614248680197535167959901110326134948704520411790295732235196613609613166022373875668095557006521985520561472733589135082908577492286050788819036500270331157241963603770435954463841382264253693353964520945390716417895505850422949681773392489774946584329722083032042766221784302616851442796652258081377782321694300452887343077620892287449903505930719142756803512213650114860824138620554332641100994825112987199694762167390290924403745034466393099950625485161227411394952875088720118334109410568127777192334111604999305397736049348091547280643397868837570012523334431872141766434705102548766818747147165671606964196762703914465238450496530906024674756839312212295667494359804137648997723880504432266177709931227143176712562867129452255143992701992807953007958147051131780824090153463117708715541398146901288938548594822190691251868689845860322394035434789836598405276568947085716040470980487156354025583339494735369607349659975268796545035488380833065283613260219215260306255085710180474104081574410635711049349897663522022566332231355926081906981670607035092263328741872296590686597054684852139760261209903823031921576458301477159342733534251827815024498741267620764765501288396814571188750390823789744351197775402353928375721496716889829414397559957936593710428128426411416727887671274150634895376714902516459477330149590743511218082128375714631456195357587426525073801895862972372279041617956342428228708431522768790405683506661753551953070796875463285493154113117121700570887037967323074788315253664757000018683054980728728172134769576908155476764559406415005982305770396017258733554870089224042346820424847529339351535992035550428773656724639418564533723836181455356495837607486312285469797822487550682378315601819260312926772766242625860385956917955648841794611946073469496908517888786347456129274685660267819721649018759458695760070816719089336793997368318080253004667346400101559662900917493684417508004851140638536111043831363827344404240878116042853309400131117957461692431288742997019610916387598891850641663935288893449135914318202384628407829337146175878633796080106903164563613521810494489106893371538226855523385178239061974875240340151587305630278651771525182178233233620535194181862481526882758174082880790908900026228025076934808538331344981737800902378580928625548990633821429918619146610551798834276153543401829802625956981818411700997891280027421126998001196027320399215199533184782772403896407137446514462979184176412431246072307772949980331425241114555226558835334980418782337126540113271509735390587700893211403667134446359518303225472499163758457692852753982428196462318726388351390343254902556739454688669133180043667068984660156858674368215214923947470128217530188704659741965791277731755097214533485744789330062667466451540974432083851544516638936133398223504573582280568974070312078538121213558930703395835613407808130397657414720293379821673588616407681156050274798310207185580386153064145760691012461222508679226680208756907808569570627975126320503022306583549382546143636730172265932194707028753248386132048392876762993726973970069339633884038736675274590644867585938031059714049379001176512394419475655830724155775840346526964433923312351525861601528144366007681438643445143008882587754311636588071151056115857449007554350170186151401129524436260111282238776122328138375359567638713830188865964254033654031367568372787186236101676572991754594265741023175340228417084346881681045824896097359615243964077282769312749292238607095782144013129509083187787106476490684613442547098154160464325358559550506956411926063724231433632269449691329710524314673438483697203498430605709917351435307587657736505823117669447861045212150202787621157977261856502319103652191724169368118451865208375117999099064823811639704520461961601847452347837888645562990302977168097503769004296031431172815351406085278473530116801347911064357458476146308607467724052573288373854431824963669784884076718831707780250787333374839796720387064850540048406952883620961573264444067740775641406439891736678567365027993085941094538740817649334632386743878820579797623950062884282485912919824453934104166915717833518428401835877811797612428461352441848658274784138513416456018635522987501248699988765044936051331396428730929632381863786970658500652167945591401903060040865385539847671443683841115353825818059340338191151840654035247591056373739970260687518987078475785402956310526518689501747664342871448354580281932774152083023654779619374904719101287080880207630844546068904263024385616876619160024306716409377626084112090303394269301567503788491997953818752847525340393240901208009759512071920200259760516702689892232959472941304417043850667035380427020858196509885186146984603910913315414061469585948154170853294726777286115258560833789314564594183259568355742324398892868349645928855135077047960119990034018434716991219843787391416504210547463534456635342408082855182529326027397583941290843544314742521775410005651718568176831328134885726973897201244783779582958659467422759281421631861128392056967177781373396814199357589311181545362662053449822647928821459820094840971950315446252490074751922869608641186039578634721395725559285793056829743172026484460250125407987654316509289381789424681216731684703900219780022438282060421935405839250399776756789226061887898000328517142595227191606600626467723372351198060164366957432855828858503450419028450473014274891483696797825504874420849176310120620468456539782014854857525509127295361491874404757637565384806057037186501692507785057020786662211329654675204132840712627133218085674457074099474136669453417543014410539579567050355432723835245716693176567066217318777476193698123479210247239290715795779239785476805147259122683328444101688645748543484991797329683029125899573817499758718177694744520386202465394172797399029224030961286300846176504919298247246119804611563870749932532739910637714200012451364008205931938353455792562311645344375408573766306725985864336782060524595667314860901483899013752147593285664512429282948560950044168070043142080161708350878223620599349862421338405274607725492113578859573441686499371895062249183710491042765286149507982629407187608843410401386890764566292737244342189759436209131513139080881493814631718370622547739618039239558923385760958085041875976045309223107750302066627845453842458479907739770877568852099775442778092788691771555784532811592079270242440498503152339829903246713010968343809829140574997343692630913744525927531087518598147859257968135324133824612981601119738855203458067540311624135226757556188933221566459845004246582929221911186532222942697397756996805462757346535752248494859101985403777768721924072479880873976125040703030136531128647411340357845083749570241207624590835986346017764961251325769525028679090103333043133542554189213360184959315860056980738256930135762226956618425845728292220902989880397726671483257372225248089246340270603270091890683031863397239120542588323362276417226360653006757128980189214180703873271958623393734037125669119990180328685341402533872564337724006434287793172293096336238717184387521917106548499840446742129726103552514965298216339186627595133159017974047441246155565363675365553069613970810069467667421091453442868934715660280513478187768330096664779093426373864072212332108942416135134532693122659177078789519643969621827276371000479021778353401198806606672748345265080615789004111984205919073252838949894615668332487419558158851262381231899363371094393821105444432326349171495702948962796843229876923257764522837768757426084476315831237762193353484499914524033216785978873703572325178255171377559153517453474276634212133283803610248801598791780865913612587514535929550585155442670017515806894261814340767352799150057782773185777475614384357680036213278647889876356743506408231962808910172043618129662311602923010252601239529697258722400082497617772250519317055432268345956249940724635088112425608000183285042918486886283855921230498604250059356340190226132531699227133541983059932193963753369747872695680659608990434071537204386040596923325961564929506963961226120742686865968037472113352947758416238933309875562755672421749369291143601525822537401880653445583584891559758084395522805944989487216619201337607964334021681057728888770465193454952645737240166335631102841682098385043816790514195465004743948136857720899570325469797743315005093220339001794253859928348450310774231146603402992233775719532601712812600295516166211878101255557971953156489633221164528063185481875542105990720965915801435865149536180219964591961167634405144242625885234695864490680666970781490617427419982402969298613420698276790797336543379232567045754048570163778449823235613752973677943570705319882256220681303350581672330218209837838389306330383807902704428994048585011492257370971789609886161139886316801927565936758912050828930931217025240012154452478315661235051890589590573365207081846301410186102335993447301135320860488865606869312316762164783461953030726011558457357498687647062589852707502448893260124502741083638005012772277505023707351619980703913263109074007095328578567148120175567720103280112576675112915452919853039156811939267298485050775133816087323510518764374063334084878383781174999637653681857077373417860469577779049258204501165764395095334119113387439276749130686918302207574067952894608205951744792903324053725018603073541324128754043340310651486862431155958975300447835044120387010461482928371444033528938299493706442414032899708568491187466114493879916771578042687197697121525969547761524890510348257331302599874950282808616654727368067928117695230127548075250581783104477970400853991337759739814096402609754142022493194924225353164259813017162984218657265908804402621277186632120094723506037127705200955643014124120089798700643429742068158373367021584345722163643183184794197569921953846588268495309310120258382751699005110812930188648880006498869228935970969765907893931381390552584538614864939368695540421576052085962092301897507607172190506146183482293788876958921400666004883144873254239720515305109776358962022386765744577212356951559816267281214074788876301715073529629192500441863408074327067419014179755890697803343119206111933657885443994240320504896439008931152425310938683309257255418714309104119686013442911804201208287845889213008982771882113987113044842590229266372901617415353917587253967827605801226393448585886779489130761436481522489297090856550367677163597817137181995373119898123935917045803881877393131349460644045688496643026192944587387139009727580570971231636291589517200578842785402103347880871860987113123698016243920870974932168084841338220499781035386623022673397778167266316948699712245623465167383251754762522135399743495097017135024833498582765466579112099549883997501014584974402744961973205805371123353348771600034471875193969740167220274119446833156985177782924166901823442873615087577609486254355535078337184382963562806226756907671293885283496265160295823496647707877683545309496597233563195946439523454403644727495725317467790229276659282037467730545968025447923206486149275041168908309624312125510106762873631646635974703247768285696174167956279514404375797514445936253956041348168361806593799371764964285435586094894072911635751526909086225652253608887358206906580658796790264424345359020749970274748861756579131398816614607465736744602660448685726786412494893333063083602809985230336896997588483941404706060601236045850905228742642594149699564058599415994233041619825518920618739010848019542453968642491123305697384143776546223314833891351477985021891188399317830942432583494430070148400248926210652439729184412078001612346026187821227826011972408488713476896289107697672064011591445211928429398544709469477181850839396781817809350397407631640438951395153672714643424714306370188761732226283128772244146335794100308617475955932885484405431041103296704832458575534159537313642804248373547858330094921652354692986804282760768334794251457043375389252053169241735079252521652744504930429544899780694824168531334758203957703163536888890867836033558836178032935789876429796993505348707883011552409351714970907013391413890153643289592487673113446974081052071844382291594240380301510476081997956889927279128556745628900346516625263409398006212557347016650688865705227093899084794237447845010263534270516189536286427126368227561364548783536764221290910507450175649301825469276610164526192039836525507099974822605344802044200038024866460879881281523404850129903423359801237319093213567214291665335754434291334472109179480874079949613428802607498031944436787758049079267601287799346734669011168535938966472264968342395732444461025786354464105135579911442058752209853547943596191159562459277488813107056170659980547564389510570824083408751452712550015569423550293763682787334078187337476420557958113788635464538060935721649452412587369480294130539214999826930218292246577035221494372784208259828359173856510130261347261204352100468573800281329350377235018000083619662575444848717771488980704432046825738214148697321488078112826884746052023165129262033579666149443596047330215826389427365457822382088219590999254804013656804869567594093810203620231851915735939207981266120950602405958269551300941110174578072319019285392365185911421077629004242652861643932903424240489523092593494121005974602903392263121241369926236926878457514165426209563593188576497302175948135637357621217137932544467197547648573279438661716364005679951070214135859317818844070104938300293498369887790150422994711837047464406488470141560209583502358116116264162401856446144687179958423021702529125891857648021794698163874218006499278682467074208374190614636157273915172715024669365754531990416971164457756905583921188851789579126001932262404423240148167487875016784909054391873446306480700895705257805359185719294384601474357941619621514521009758171029739446367238124334790487702323963289079443236137165849258672505373285021038640427884173368414553326661644879874628060784287192109041917933496546753847772131283631920491483204736996506033374705979380525791901627245627614614462074594683852013527075252062819753657079056640982278874246595687908004304850975829912503466645739131721684859844604402250666811045791947479176870503005320148174661134246678966081938693628620335889764992048762340094128973456383450340184105271256726107300935111545789590423452452696618638147660741217253675474279250011904486250543529086760964183360190327803185297714451272170019718513602417069024276901974666882041591536804712676074258199999591567559844628867292248634730965705697638652610109981072108798937736849575264200327809527492779410168392406165418347359703849758287229161672348454208816206555022975816168222270587050882949448763176516384709769228766666928026491824497867191894345620622384628872574810347393216898989146355560135973224037100938012402545856440435325026934260221178361941490481517734598877407200287221073449953752962052984199797490159910093892441444160132771442322328810566122791369084976117733198554065665914545927892374464893350431996312597593493323788853634405778477584484973903256523796859962546548196009975007670984568454399413872926816857620453037848088168139066699981417610270712048311581882511565967183042926592440786641309806946566876024248532742720380212220377241638650128077014169059182349231588054619129846370743251365815663038367681185441709814347489460773918716748932306233096589619992639588720014268474044651876143008398781983196782373794027457297695189864833811923721120734774687638525213939350874891955885039364242997015506645958346927273692316943040918975825588784681194505313050722880133435294859876690850101181314095962954818873131319123501512986927334970503001402434055801062976239940962329655490656959453490030701990653471925333963301368501957577039153191826487732271045965956881382204957922882273736557294391581962021830506224142883600169054977859870414087962382931346196204100589900222104361736066888541416437487898169998907224049117733300014891593737683078680235560335292877369949655258507168556819884018096470901836646916709344974571726636830491493431924098751997310939337886037939342256851259899069154965049758339017108800754771948601472475050994891199275702864151073957370889484938665899875105940300985090740069156503428030025962496946980394438068221170463284792919572480441656297520503099883344230251114671496930700288864887529249981191501977812389294421342141421939453147204047189685329194169785926239551267892423078624749247283449970908734927618074854586739138673921062042340865730458341194704307652260568367603924859100095205002722199357200602771838835421631699355770371746389734480380068578389270344539413126998016269486376355888267207447848936710226808882065715640304034554719409265881610997652352260313402782174596978233834392560173371000431229002914184277932064296801840240699674440141313348354393429624651053228308768664305586252762736878077247834710300443741169335234096445581844456141081617763700054420605006656622223789688212076129829063530607006809214843166472435191612021490081846483067174544102687203370132266239478139740652826876260785298809601636502299656718493487312857970677159129306743029720611878071538300673747057629542935666211423257512477741781957171682778848293393893970587222399516861943532491386756464644909892716046319728956971502365005741988166165325424022137463930322468474659863528739903461796137071728434791928400617938578116413119860380060469552546579769335287761144612602420639967597798264852821778851744022183932428777897674868886717771835061894415658356107990717368336339283077189239172811809147689226278014291115424258156928785717670093416374273107464541836763693308120474789056887892907701716923674587895151950543005907303567173913579268621245768527274357122942856676852116783180258102961187770167588778580382142718553202884240945287511408607657082528468223684907109869577812212919080153022166173838850346944814633370595239056939591638415086680323748717372541768698204081203787683991349708614992433046519837346538308796349566120102955374842908434271880737477160784682975831545489286163739354371882258940478847325965718936826786854475394157204703905222277522829744983866584171028624847343208763838925567086769255435443407515896619145614885319286675783308802385916434581382691266702871138285192545247800427769408006522443772556316059546455275495237838141333151019226528075466202394945852398453909744819789079671551063734990135314270446416918407404590725505438084131420216708404031544920161721834955246867268930494470978768182024246846595229503585785991661005487586050732770055591681297444959581629990679265864329682298774090222297088133378166022980125611127068085294629344771454053152338735126189114062570751473236607211386833155836770421806015126267458914255960772935553576505284260536632394058751031877673625503610064904213078174680609718818808122043781873103849327253829479504438543523524969346977920812909971227628760983760341939009591076590299149551153950238500721566566728592493120455874962242056565466899916105402238472478380085214855627402905263280569326972646543214261592865047908312106223156835911587492472669416497050883224143888845616457855248641655314299488855345850986271354675711186895854976942935763570045883189552772887249010080526899290314162642977917012368661703495696786404444631867814627725223102716306847110726628596379507925610951232425122070327272219410155924544785808616439043015903677223017090536834242114423825970364864622667766032150616912937837512524702094602287451686310252592146618921686004785034394005583115182835342217320698245394612958677133441365819769811784523566182273575583849796277660218321046265971175910229630233935695832666488774953082003337357744899013739778569162399847241694444138178649048017940296460698559249831335268191557790036840834362024253506309263839060144637165475505820101944650547547730163146140854512720767896528565113660268919981788005240279859791146979442585098384827962380304466832005161202416598223471523582631033617445141119503200137602097102752751287808564972944952306954727201246878288788376838661505869432529205288839218447969930416833295211222624977439886208941730277140005492070873370170398388408871867921130718990171366742466345649743607986800080595364380594037005035656132225989189883551193182840784961789960987541044807979744273835570329768421266408387408212726430171348616601994116254369976211564759690679239758794877504373716287382842298705859424094895104197502965343518276988870396089292708140105783530202229320815880283077335002533439008918517709494065333012456567729997108262539958536289125730004928778106611371213639569404848335588556496193579663489258254425749618797906937803487261394879367406432963104409894690733818602099665345671485517586473995373067246341074304559827684035642683863782495184872976542355988599536865224480207715651046288077947372909026812402601454511109551830072967003429628018382173563483516785523883684383052201870645371519284034300924717569932787031848750689646169583782983358110947342396885590820957706889952504681841835328660776875340119834052296584143147536399509553957583803782643673280841848129048787365490747724909301414755728968944476225285781733863995818950691931747841668838950275728150654366549403147693462376265901874095966887129750968146688242137240753328390556896428436723316333452803790279322010141780333168796850836511751435496194368647855240577877185438667633476331546659088794792273688048064505204335181023872209446827136001421935438164257328862560679437361237147417142684779009493270722801513114914863753812989058770479241942942986653602183173282142190599458938373437144821360260855892181955731209631110661583890879466930745113710003644678107821576429428958799147497981261331438841715047937934792969982650302672821287904599364449219150609951397219809109361043011918954185068182718788500929763824650415405789301989657319396520206483670234454144900970212402205338250989948665449158772253992861702041120231188149083232714397013002809125013398428094262670982540462923552240095722056336878570129897489041076161012024963182007159246439113234626812599211742877949798912225873591495415854974061535882608185132076321985404581470605993083778893079136818428175460328751174629934771852263164794712336442115929045422662465145502393309376715307634955175572787895799663096526532474241451105014148981659677604169327175671376519811652824380368198251103736481936455604660777635105771967748705675570950627683775435848328157889514122465425948524398608160542404700720027861038584501636564312766201604999149188695826426802632970598437546433896370854982155398051840000354227093944716280390965169650335489276154284253639952870756385727883651601076559981009780192496026448488951862211810709544965674602991954512861801340409390154373081591590758254322182343312249642954343586654643981996594395544620065604249497553292146672752151583188127644724113097960447484465377864170750164944359858599607034444990037735901512931325189693333832845643905005295719501866999594440448268798901621357451447492948628227235993150206574621278591405587863851987566719702915596384392291295485493982221291880969663684110748251622521698212014984759992023840011901248663789789916190671263023385345705059521027233894100134775783180819031703071491599029376586374714780802376454861544319262781006822027110222077760754390482181803082916177700009187766358197405704374711616434235653851025488322407564073593858974671391544576768211239168565076261927766140988949172132447650320238793348734551145440503552283965916556697060181242578976372051050371355029677399417746159548074631443232939763284814025409246797415355410686129404724059708790017786539492311800227154947580136670994447617500933467408173197404691870872104774055852267562331277098896187440055930597146517944600587977629008994249376102059773515255127497548099639941797245158952538757246782846505182845963578804754079991766656006423509685618096237186790155635424806819257644113493640430361412336843266364924894458441326232218449260239529317621434579155410673305099906096316849255894537746252844389380100166729089201484774948069714683122937069889467573002656030647633771651772504825771615147998737508410420825159082552616338756745606806691502810933619343342415228134030002876521379259050639713222156651516183847789774694806507108266499768133778217775173721128106204334675249854620834951957287965524540022854930504384697776001303539294893034598276687576830153348546494993956336785824082099748163612292173933378924519675917685358131117792459485802636289209639721302340254539724746572943217375861949513037510988058639294381718997290293460403762087547098513472582104651493934908908001337270933120951203739975860581415715590216121085399601726845012805760154595794381317640260380756134629919846046526928632549645678492159400684196530185922084469148489163692360721127202124953598357213815277876977867109396945775824386894260091836658579562359254197074810042016453714559069643148916998813016203671106097339062875272299187201040105109338722751862705911669772583709992390335304545474308796526265476651906543025410060191432469354929375142331690942305965012971073227953206042940971321160760960569934603011267567234078151397870822446323776733093651436329659934122435199845277222206131609806367408343222779938528743639492891382656171190532436906599400315914519860213801840015441660293403796205369869467341804406917268748718152316663874274619632904700728412844095937123280980981484332871001114610531339422858814500542280546951819975538127625985313886378949513041864079319476611744001763351795341103483506549587198932754026755313476106213355828733708288706879451795866441927987477311156459898605132536854554122810965317670339131211046743291619240607843106861723932659175939124599586311727070825098006059403191669564364920757179171826894090081957450180531737288474432101290693389842666367958462300871702487945303093263808269292585332969500694196816899262836495250786168152245727869257208729126984382311958457070770320498576729674437353504152463746967601945751652480249114485210170247632505999852390994043572334577648277281617354919472618096677699519879385982050326292702929288536221440650514817223165700382143028159532446958181240603241435706738226877895374995220402704958246122923544223693378633445315373200554286642837541713128250454097046796914490563868260027206161360451559558590903547071738128142102966597563352684397526984300001631617748804435823669353200294760260831023549712474525724509492818851232633924990361472083396805654722318675166856589994507332919052672377978715131695461613845324750475653705881901285824119798300502241834748680572219691358787892184668240932540866795224333769989493696973768479023461283857667990284014305715736958155780781076258346956214818840294336057990288907560688839188656118783295564458123017877001841215149337639885509550478902012483676869929850907737039658713661148105499293550961043480892350435078886985630055895874453760563863201146094544105403293633708278009914985232215731090443367392377870240423763985607189684559524741279407102718040743890927026684291399392591491217616553555595059459099603034014142604776028771885641722135847866584303776813472248975700419641524705576218314358636166354151592927987936852541604685453963757185765055792122362171377822389617149234291244475309039682373703025536560976812335470186683008995521709568517359873422449822502214183856397250656434100484072356776591145722574010722186658930173087286529095223677880575511589571897966043761874410298301055271642702861242478366539411889573667596553951676589645424100343245567231676273646708907585264289917753156720856736777052157206186352615385674478802080444752690050146299119480623198378368920093327214228652167418702756891182331838515641169546096222071889352834958422035108159737947280446254077617343633067847652502902844394246097926833746571113651160388008848517471116938125024529393893442891457087404617249721298280284886637556221093124428067983081086478346122645362461795852063225181654224347296725140607403959535542767478073716038267228625761662265741080135592059893058129619116724772959871950431521427230723823542587184048696278655950345161459577521395203600070715163728896847853733724071959936425282553330614749286362743036796723677368948318792689454295148850528662141983624452537525594159822229106373301623980814101072452370238936772871865316495121690606995210693780660281596003423033626562848999741798628056061851241747464654249940913337175846829741369004187554083396393551025119965272208328332576311300470223685016917002766002455222745195984102199702086617226839021882746379158457619253422166213344510183124741248818116950400441645122272427967164270494942801128742328881941452997379451213849449180469130926275680538113707514088934036233771229040610947281188204500601346643010663860598885562823095505044601562986343890424352331996111530263006734517874041766781640405211534285701405005132965623660327406371205286274577868783501997208191456546351943621306311553956114510218482006945120589913853007491115846722201363632038131142486231506646667599263427947338773743057039515674723415570094255626187085465862037586519172925328895852538639131119797675317465016371118430800619798090795039102212179028738249638522177791222799380880365507259572995469197653493243689020612572068100215572026417892350037485252035625123686292636445107717375353872815734909675808890456673090408371283433981691528612712243465602317336452391420266053438637899696172044626398788177929431813286857209123205469566728539805952764627510673377720287125323916823476841976591321716807369544739882944227011786105298600267844782133191710888215735459928303439721485510359304550455402913045173312764579501311955431572275146492612514740626065940912137685244152872853111483586506133323546046542002049172822653376765655707972027849506361535289445026070034743755269986904208180927578538879763873589342079232473301641143342130080371528984494478820439058857845460705659306235553745168333738785566822253065128446586477231403239086257618294956962726992972804355177803603725199327019868832309616563790548001916552268814538124416842763352369349610658749230966152778313972231429233494113235924931332883653116458140874808535116266171267840232028323997445922641008132132019029896807802683473427325420367282796063865147107102546240792070323735889888423590586244793236781753602159868036976071454165114491653923990266683141525388159600469719737801989601423701651629730099715337500274105055483689313097112787838906716404169795924557410725483601659888707000404583589962859489962482095575971613782134383875493773120704332443856256980412651263891201069281198887499289203885214253800021188915513098017733523708270988943108848701403776953594365074686336272224161215131706254915272446163315747516665264989457591646869093271037684676942572918217694744362519677527821387067286662283967988810535758375419983661895563868483537011658201801112631335248386433558285434448000275305686612184215371329899512086322857583463123753062171911391353145949053214606970046564163795884440959789654208239416884046977218921992459845216189440878922247167104180206624309459827163370655354435929758505139964319349393304688552445058610473205451507582976015147266908654352165823846117231011823965505828905758537215524667762214139224938453386922892560375104299302350312017928710683466269993642482297661051042083298027945540519872581627816000015621785338380886434929311670915820850510959816198235744687954909691151725581359145865737412588969421123871747205875204323093596125637947820769972915241868155094881259356570910651353269667033004282149339127808222930736209212758217798296452767272266376195902133294547790087923358548263711343733833819681790840029300789178076492065831465608724265185501403229082974322873288286404108836423749618181104069335078845125324579092542890372415020687989333615578552126034565769899345185065622958809543800389022976393250400053517225942670419426656407193223880337534894838816738572245937289957160812057780304040779401976405193813790129412686286310467434195836825279328214470086962678740703172321082232777401943061731469235594681400252313882007282491081933470847340241667362346166313945969889455837092150625749558356569516927339233965794613864750580399904188630858804140137118519101737262489178260339687512985988114766543037791535211338352151410332842650906512942001757670807966961945155730129707966876960956044380718418948079866697693369540479487341777646569171516779193720556222361155483124755057970152155657067970970303347858953822257771073452898104104019531258657480259034808314763584355305584256690615748970269091558964538099589469953384017360760668896833334392408030538411837977168519383248656301195126601439056584891953047420704964576762950134269784309660772990843378039000378776705532120898187564070439118461159712160849106485550821879189253976131931937111505502448197509877476047511038030205946869722142215369644053642053300044029208475955559433722632939724678259853641895040476786582663868602947990521316070155669573900366330276813325126175693930815454841503996788533794935138592821285870648604657325523375457893906852983807340677905797081260842574422540798426255402316906094030256688914150200293616719686795533849466790334639287022179314289932564841914326389135270517445572135738777101151853795487233044463982906386301076904768016816734095978239273827466070117747128702870513697298385675206073756682273334595128438794115874336915940559655689495330488997732150588030152015331717835596834300110551822396769522770160465993576967547139569133271140206181428821580127482443289685385339842418048570759464901407555373538081438651397076811803816998448490173622621413329931463989845639131604945743441301169402085949274934689259321668207533640372990442653821238523015098633896323985242430322844970361943650176037407774804924133396170727818729745500733726711493063112222862777163011158204909076249668885512799225638407242875043112424484530871238823816825537326053992303749848257831810578379808632000283470593952232261175555172522113408920126640211268889775954323505022559598556560109398553810313125722366165618988834869149988578799750295220619264811135421598653280121802814107568871798589039717616734360785935238411283175303678590167279268350017391297803561178593653246953533763212114988649110100137936899487515739175567033566406371818045684680909664149706229676748514265499991737304236913578418659062498589756279863538632158408271736930430857877417881009199077389252525424988980810457512341011043940998698374606093874458095087822803928380805454043377299219338412088064267174380160763571743230968127868936177314999678943954855362226625294930883911589317046554194419397186863943004694721113108865322716433222684400486087806265030076923845664440709217573534406681920919163685775244463020926426587246281268356361153094618727677992891794141243554158106380907738709347299874508415365458574396245528697037813043570226770222515167407882817887563814466443887905933430003474448962131134156631908294783673474210953259122205209355849116524073962369906698972466815400285717219634678928882812589049124137152769350109769577565635203972908378344992968524057630927086104899407037455573367362184802629332526585882664987268731778754603159486751790796229973763664585837344769558979034754132474716289014815024701459408874934142593956200233024939161664550909301892489613300213708516226084949730561447258768002052922453561566480917281025421997165025604472475882883162284000433823472086375870576506259882220030922243076019995023482780532304424707318427274083080041058325267053050109385562759632778535574302471474278918187373259434029456668143970989128987680119303661680291087843888594671371530308040826278065575107194893853993687113004350906666877980511388564132258709522169410159710788505400974945721951683183898792267980001595016291196056240692060912198285531481457594421849071380550686615203514210121850183518095743408128788436611939237877609801157069094020538073116141757214365832739309930608631005126731310610830476177022739578773717290908211667078361702944655916594043033287399942000681715300290295294275880920575971771559681070182795341848087980152605571574981609821115407631867244778587471707284422541135827838124269364163932815753730071352629585894094940171289700324035791343829880240156316281107042591131640320138156366709152065603357990599349423534981651030116710276927394266467952099268521214799988345800622750708035535437537212228798504502527841317623323164195997113436094414158570404943168047789749859302320231002793928724319586731003392552651260415210673302243113163415260524077523147890592539623546226946972796596425438962227541786165446299523601910122894110153572984322918094330287082350458340732742637963606934170506424355880397670254113520987752573794925331733825720822045885665109952311750342114358242595993464884844323451026233482604580833334570643307166296177078398777422404977215535125291445457750546235174740026012791113856540858245777535433897255874103687895725455271137867947578639337873677458160053797236988596967884355809986709628676431873904368072828875080590516819970865398051935382848305683804517325899244961188754220047328074600991381815860733804306637792967690805739586188855801550964997860638309193161256764250178590059600582441820201589812781481016670416218141081393110773709512513149166871400057387388242050018597902487647589224286211093001573314804800410631564888700073894778037820663640267754273567227584381519196766752492802230826725832871847146425330411984842425940019716513415345744564937391255859909355394268492404721547865771213801561673519369145363550532689749876495734097474750616595379321341470004420417680626875719947597155249631001951567560973958008781376111587790918163147890227409795586123635080852486170774066559117734834505338335159733830791661264961500142629684327670653356305407327714739949264792219348533042874477669793351547614182220489305461580563800365847808079010532555127334703945684731728513594682514160620365469496039252030097132574298876815602178150418997756273758760539522864550776894886082628321255026389065084583647697530520056951302546285331784747522363309524955428964990585666977613822351725900487862372273372623710795126513267958705266771041976211968188450701210358580825282608357966551417092809863844091795654561787421667741158516691276841063563211185025064770675334849326636719945540582971686541144800340633184330281343491613346196312514411006353463118715349293407518196437481095861477249998794587283826884180444131356417318504997213156067324821217185366706644898475654215609570590333586068444968202796629089847055976141477159289663677295675809109449464521820323393613494920383448347452505094098985777885793929414454818172909766384377145534717510165784008710357533608652700330331579835574493309144652749843071262470415177976864655016118265936737304528784620069081487104875980010860523397928730232794394714154663869777900204595824133174754222843838131287582668899417208979621585697423401991482213339932767121819522186238958378228659519661060889524885041435896050878358867094630104611962864106627349970978943379528386344564144904565126263437639526753503097892108989369254123229741857734681488186447435886647254836839920881144046565228679463672157545008955649739345783845616187706372605025813788698494725783461398136725261499157670617732624934810793612945391740217849287882465435971837062679369345674565714384193605262038440026005933396765790847527797362979901481804818966326565030530714314790760997011209473302363596255659659172264302531664402026877472694969022730432947861746876799857054095885875205566854057236069119115563617610211878081305023705690846455915889010590023999210083714866031218075387935474504135297540056554753510275871038308637314874905496263213805862605857786098781213971470037781945912026824722348318535443162452061924252905522528109788434794025974285701204919605422852124034569855186599389669632054547961834629497271459472777629725770104470182459734806069691042960578732524161490335740173857109000443097420853322856222595998340840763427690751362399705246926865050860515951286025689394390094029604611920381813387418652209546704857596675367071649981327511097986273349871576182159630236034027609953291541578920506796760669210509315776811317186901174112979561427663201792042516209403231388300554644956817924110178324078863057475152303650693888909628040574558168794818424699149068454608612361511939758153017734572217653807638409138836660205846463365677217950906155379426541974604557570326405668108425340449979662294601680776934004530202720057568788895797103585758824929666368821785006910303277761546658707389709836065540593496200238243710678891838507802208513733566818848206484542036531363330139176647690838074809863925967507303727053452358081767810500556554198501466408654948100651837251117501791563305098511939982215777259196686683599499729742517037296365029770730858456745822481430920110859622515944170248393787280410481214211108842763035192607748905007165364272851427819965371717412594371296973911863780661232181860927933200602116815220220258406429919551358325265829204656562527449465994293545700083204700387938294748171980248880974428592770865405667497094159782809040847091582487845948224025330465140329666820112828292941722443036674229463587071934483043775241721226039553431575060552913847521921742636583559339018770810774884092040858405464675446745929905821592529870144642660087462922738150126716512903968738955758910779901894049379671545899879705877635979648324203033525475390401653524560102926840793021403745981163509372954678865231648342208846819336760713393642319148649484210438310417108338280126230714088330284627987728526213026385355887164690931210623675930493918773231314233659923780206210074303869927332265975872786344437248014558117467875549089870501017295516297051648713057689848690836503279175632301803939958220357328826152062823434690974565947231110753213690341861291405627923338922848342306365174676301846756147598623492649400919380985415106384407509312311323453333516621512712832792659043072965674782069999833236683241296512941257790772341533626902450270083959233971502816191797974587178824754083926763671012769744378628650639017206202097703686051724561546643674084448501528073093210303930834637928103952519195286313392293337464881727589008878795646506348299166032274682956640690304807705831761909300178014779183385900015203996483350500457948641030873871970163811041551170306235637397696776030233501590407887833643832482371754749225379659015001312845310898261692452195489135179894725268866409996644283930919559757495859308470720087766662450294109732218479700660650294267771474821978351965794615626505845760572197129804442335074876821001859592935495175553654810757054999512151991108541156694798603675460492318967037948008272867166764400680186398422730851274429097014669820212025827479689009395131475712431123176270106063302063646387106190673927876704128869532202475817027176135776405260584059091939792236807575349436252261700994970740224117446259542394246236239605668395419610128559012626131258798966737935682100707185336127574831585181877451237093730505391102957935142044878807203871888187355381325774527205804199120061789243562108266652545879153921415983733644936743654878616244972795867123382675176728392002173379810305419853822643940824162249071374881328978474225219996403378394088310370822960721974554521053494581377513693653484001672161005401108877125657078557467103281281305619059801974844805442347241677729821001637972239504336739723584558541817823555125402324248943105192541489445947376585923796085846617754215458987684319107518907501204204910100344248571229641499799354986895591904687464770044064500853874572242292292455566672297031140320996154277266121608145113993180869767951272264510227344720527980816229296294767778242109331368552907644652309943407268662857031344831848385163756872615912393173951888989023036752055268321630320051366830130618881204322848263102848651875209187008659422438356079931958832533177237525485202248029192528184003449571033822508783066007961752737752431314441419825439919393236869525313383649681370184541631334104474877384932969946957258169703336620801318109273591546452067577669107360371711910345899425255039774618236971578153834906765709836589182940422528172646095885095442550065727225133232278288508234707256469660192373595930790986606004471054971951937025002386480256284572951009081484493639132108722019212016096354357601253119555747886442833272466612942797617350456710083379080471203830775651687053488663903049305131023379150708690541376306928931439064152863096102032359697854199360094413100042795808962044635751823211794400314007730916873857291811628852627481273958530705657983539562848202027104504079330740845324476351233946552232037062032370760534938482746328722959358312791894074355174663316067254975582759233721928921176795670652373597447582375910959137277221090213478097358606524468602082414151879061615890090201385501720900324830178820750610511765418322953602703319076719950765660040279728046226016259153655234918833668398267618361755242733037683764110086120286268214266063297841161335222838393373529475217956539055849704708272042694059237283809955524834927949889884231264886219071990305292502889051883680500313042207180842003140181169243815833409591668531556416481251144900022865954606322448417901664323999826451007841745807419142576443865286956591987045575137483251116798344706335237133003108912683939113766174910297398964292266681537828638986953691168572281467218290732791772036219606100669870446504258957253939711244695182857827229977487999241259796957315082519199714131015608564565350412970444513504423480223414788012492119506816948631655196539946029684721070667347213016665531558065170981392664707729374434660237304151947014653278713148514153534396406029561716013396233165559546303005071882924908833880688854065314190960177945774696847699558730086306621687092115190541501169951152091357399728374344429940813287801233479230399200503340739656503973082107353416239531239270560272793767858609271149999674228501483590241930966752883718644732362381708283687516212586570365624958409790464663107745132114043635978445416829760968101340989629416839827242402792070464952291294356457833884952340733016872339936423185551846357275980323795771625992481731954591669885195283391705622390318004810881814584026478613322033234984008241796639651437727048097377932651566437336149177944673874503543570642851183446632224019495639777486258989037841787252000547710222830151929679337203328569418429091633274073030663814598869638877819760914476352087760507202026802082929225945249799816272852818540425250491033286853331186232809389152938946889865765290028451261682240838054218554887463458437799224215128798125524580283304314804296183638636330544860179156630550165326997379897592194372806665813434186206766598665606829333744654662362169784269815089127785995501869890500341780695881023323611243763918820390145053027711854106649044905842215125791342797697822459095779989844117698801100011366384617931427220643898561800344015068227826670896503258568317657915628620262030031842382941658496115978769094448371723914296824881682777262907077642743243537235803986863337352975524414017167291044283082397174676701992829729353876272029731793104015897784414401693997227942241415091601809413903812819931016410428096617080542682848748426141068026575766376189811756901537364479921914277333786925175912225569153550082661732997294434909263349827688513627687389861295870548587286529858710168942861185810591803771542193463140694076232893018864917726371448415216363542934537491396098191390551382650857242519558225440409966097863652220691431984320792552162285087051328279169071380124761657477937568387625651056631479134721771704964795559625236240028821929871727997366304619041823511718390838070266151339983943486928331497934799656665361773538940905030996751081555158670513184058375961026167606169243841965130896422769894388120898620691990414469336071894906094880674943915882144337458310552482699356479910952074740079873335039517196865897602794262182964500499544677815266685796962522422646224109778163555394661341614889659356544648789874682373170727355158768816076949444748192650640972632818189277074234640331749559546082559712103880897138772857551532746897136602795203198546354392719943866599259089836482636543668465627713421327511700378820441695367980735955092351170685790039963525056052157779638856329402370394473414185564699142182694673362980490578448199619247488476150845501851655370768077385252596547521119881886448143709412365343426091579028103141021002603304945931696341327487095616783699676242054494700709931317492524034982651081885467238034466085407238793071954171455638017823840262505720766130756608671388899778133450212227519023710164496884813764697299290578726044741093061719792055877339355740094293482749807768744010806765201295460305380288274740985863073766839409821808671381443692784768240023414159650910217853941450491809390845176614562677272515976247583535978470051847920382305963113103069145567392206446580561199559847299005972041209678965166777049807741228913199456679994085242900820215687074638918888678101679405223683106841181150481445440544890894912843299092258560325407628126488187072709799554258033279329487817794090863860571805383792608975481166048652573271053269750312800738474329289613784882114197291517424361265083197298082222269367959511260625148096608689542801484439281891174299949571033519595853220016383455028885923035073016526955271985838788137806125127093024833396575546087171721005223858456521327579068241481040347800739185144557950098949226091848565122955814561280566611061214026816855815712639903661715599726510367683914866101625568187879015443363974572633231586651190697543294971481375842729920682120509707977802002971635823321557382702993343274911683156423809781891989273428355760405628357718352907373369076511969786095488777958247464476495928361052217567607496232447246557164933725498663382374044569525583766190729704568943361257393639640836775659756804903798651210996121693360025437971857908498847125540773119695615650686597777052040259707763885250176373989651554624904242820939081252506356225661972248319363867011115875455052669021571486952154906430179658666439112023112045410867802114974857052139156300139575045368879812258083976414464332755864774626601926055098024628134304948715408245458926292273646074740230969356224758262202559478424930449547604346058099509060790449523075424492298232814250517397056959680304102842988702075854965540528730854990853818030863037498249292474067860994848527602698254779931096632638141812288180261876442853414518070885065215300026584785154342066093867531117655702767614105242709920626106361045367266924864216595366782225668945703837326218845114134762293397938959606315857346625115149692660730032036982373811169593926992751636612063802650364273159736287768419518605090753274958706492428065477521061167562518354802101876799084548653882001852956288061908640032571657855128406483783479153759323198679362763106596730690913651235043056336560819622223325016265324000037741800492032412436208532024789685371631170520371246650760230458335701102932291972338345405280745901140845235679361237602443831183611273451158493049017430948280120355123931327758825999315395012084126125504413334090348359555398006864790750282347044271551304000820499516615080104876960129520174930332639835522606635095070478589670979688696307712307085762971537660982625510145939046067246529611613231398114504774488337999993819819074342754985090015015075937093323400224806308147677702642561215647154304368732750772894276569984289142634827448114678201816023572213737180470874303979344335845347985363624852146242727415281016010482663397232388846390586034091287962228700153785308862812116842010005197422474524960243975147006609979605966633722964334244830736981155529709463062169285211725469439354500264855247628657950130788240440614282449692405498126483017218300535088708560773275085663983668824100365410218870207757786185523846607434948478556652445047544620140143842590468922650328699267891717561275147058181698935368362386935574503819241024776801258028589833332294984898021787582096683823197653502596753982497779729887924902870673777798221836234463930638008319194806797084878576556995295403603179938508063020979413576168319074169154927834637821899497208781004466374510722710163797168522819800801373184123471983198655502529591053831166195901243177517094751424810091767205530457667936011945054697928332895175663299294812970661836922338568906623678640051578462726362020938183607401760390561000778699580912688309474816019345423539066001188011485984790782211923269004631122399193749400100915458553353819622951864104361285539304900368641021708530961413177564012894307915699100593497282352434132169019052342449276563021805549438788296048783959808854636679300668554988595243188488206517002573180999507369394252471756837564714927281523418850852723994961951068002818492125405695984007308827771825244411911835443315745259732011218683508618960388964386114410915678187263844343657575687639379457983394483019751484602716095429454561535666179632705829129837889770283205463563421254956935269143189958908793052609208868172744406209237289061417872682801982336568917841970782946197029550934639797130873148590077567526799319283226853675648425887639927908671759179994516840005533141611287550433392046566105529397826057995013904756934448895743794708158441686579394788660270333496661967919124054109389801326381732048942998882969465484811416565516865878757692531549585967558548666554275440273251338241945196425491468248531284558344417694700057632131477115698897646566324258868189778473289001252294796304604170736615043409699635251606576243225148695650001924500250313020190821146324120153145370321964247541024976582637406829632529584773102784101773239629674603677489537222706527519696025684361965118127023063298566870792042740574711855229324941546524419546043891676402393015632174697736296511884637140525315205211759876311066250486726925536483364008309497092530844843280896387350269491153163137074357958751833687322276169604808086580973161910471625992542009852707946824441136465837935109014575852358725870952141585308580115219966947088206451598548209990142039573304319004390759115424806001104402984471060200017573753808329496915822488385639256591763791457206568143886026045068436792262892034321356836094459920332513577079457517857425582536982662564250786462161942930615734013455744083975714457783869440069440077730768495250196875411597270699088676343795982726985343206694962468155976006429962083383565869876884816205642768066235872941118996885094456499617829799075603361523205844073230322411557501639625883837730842765573517506521793235519113527358681664478195210911436897132653338408603791871734309398306653363709561995707095602389388465955321729636906283320430338925758969093383269174843037592155445548464029204919087042094759772441010925632855559034472521881887391020804141042802632775934628743803795017612800604218158569095144949715327998812967023955429619815444482372527126755833817922145738849949268359806507166535213510877656371633943169483935022397841520025352835542865067581849127606710583731217609871113029538838594294206038471426103090526517142384526721708907802859837537429430604285187492008033261668872651469007192153838635034060099185261019139154892656115327192506629827640529106884618814519372384011914676818101964296306729323302421594884897162384252554774010208942732302070991989376883973449038435398422967059701309818489177166983662641701517907174205992268494504852671623973293106214714076266807599363829246978869211785522782473313243654307813033019010358475317366460175156818617722494592144929031383454898977759361383884044323168451091628358833236354297429826278643416111563742486395408848112750660212254168637896712393372365751341190880710108320520999015096485142978319695128458941124103102079682510597161101816847535562746566575854918132561981075940242616531316217365836056458202535760116585181056754736468374332333686800562063716154200183956232192595996721993169974435474529481997372320017242055967514341114914826971735181739013595005656987556485602525750701832040473442995843608908534437845750980220853102795337993485574395054482042764358131514762494319674759327235794679563897000274573060914792150673055871528226798631447927273396261698912042209765458189586422156801058569620672430299736519523089656334834480540192742677655336700910600989372764378255841370464984744406834244582668865258288983062941930095280105603657139204223566101854301399192616244497633705563310048731238995081007113275869175587246001274570242065503551853825683603722402857760821026945454652728855612777965033298444944886508918644730231332438467641336910973297747891665958300859957446818555373135086843810320349916425440892547109578732670598455159085102913319110208214912890930277849158761029189912952117975552399282695526961705035536518673466342608088362956861897460530964479103985493968882032645206570355748809098838620345065199169450932861337984353423716870399522013105858040619551378883174502011053756583542294429509776939204070282960704090242442692497733449226648820163227831068196828852241862737114464247525665696695278793863125191996839014322113817652403220691576740770122286146901091542880436092164771678413006758033554825556261186504514815841965973504766325203011259407862073732780453886919029157513226330688707173344437119839855769527420748836595727955067263896140054358731530523728211256116482049044387372444691324234488622866485314925956695719665133491595609217625643606278539220061253509486104885770126083379151192549212815833021421269159921746737487927494060188430440682966133843230835546279744635081424525067096270407495662351778056264505360193910720225170791526913929884272100945476079248282546262729690948593678143137491201575561194812455240589727227619796994722054947656611377348834689260521116057000384860069932863504099784240697090201224340799288875255583034454139082046910176518133391112290224483524657816128131978007300998679140956580981412363712204081863564898909858064141842856005049691644036637105772856898901286338384911871439057107562451894650200946519814504589986889331895825161109165910900522534861411378964725016928539357754152901083405179501620842762311934311660979127397926836353040424813176499321718007711585449727753001216092965267091152677821054003618291305159747442452301420643469780099405818489011228928145738739932040727813084666740690852085211550009969543196751983170068770807683391511882458342086651752173014106230754771850582652892599949127291234803163674671227171593114128444294263704404580602431309004956367384197458514046444315377689958992388623000932105978792104693619702744057045732376022974644730546857175986702609835167286296226204928503222339513207625264522957387188699580589261275861869734080968473933598257112658776601802189566799732658455039227848071741047945919243807963301561193181787967599324443980585990085050895419562048191311764177434328083538194175081257523839595788953187010203144915674233636411794715171273831042730531572840580314156164706549018884131840066236501864079255084408201844303515117088043793461009504657967278145475107559912225659303429987779826960242161494521667746865592433066211131014463604281748042823234807338572131318835290888810372420574392540468760833794514045056828077003903946510544169597351877247570917083994320749398813669663638354846452013736714763351970638777130777050963371480397825149252208546791217150171603789918229577945727196049705717224139210526416281319656183031985707471863001344345750402605852340076647495511327696546930984994822106359736614193185358907604528827065379478826124159746411318876927148115405243651124774617049678850835879057645115775636274068879713348917652536461987194116858106429232202125736888685179814121252589079775410779924569376181324298143591645134133410115645120059372972872466151754191820389758305599965537938650402458458815147003077782958619492255808640014294792933789667785207999205583855714564888663368199933158522933099196921814653400428309175354734050886702440495091157154563241250791289240456875653074373186032754848682710377175571019648563423313555838561206770643387751882767512708798260683104409856840916253741147489509701302638700499962899324940979439137072851251673820305729121573686776081546423626417776510363596375386101398724239607233030781251024731845569825935330086602210045229783492283241614856824155176583193008172178246312534652798503865683180887167253305094642136954920129825390650935632052615782915243572057766479307747702088662302709372384544306448249993694349371346453946065234108484330779492156987291976771266473211839518899155569210960244635781561252554977255877031281776272924168590446161486957425191152387440506509440116209677409055117308041799695099143310779480775172763905410152101868031526499386900479568643333189935818832554321639170873329552687723252741388329859131918692883960619539875892181591194638803427742015204805020761770764378934630428313991593353533859575009556646261807916249927373511864026155048352073965883867150501752395836991782511642458787522592929138645072210901868596641082311294112332427394288011030797359792878832778246544388253035349286359446947263615963715234436748909700613378169164932006174219185563112395417847214581334169558641171894328180118515040846479135277733851328157095003451576017059601513869183873860543408384696176600733692947711512678989679396688864481382734090031598616177229143386849084763211855532628445656954614165206782594497601517622542493312671934487371167208148647134834404578580663366396771712160000303918237275923691437573020392317575171877058754314799006216998383406735532469556455719617013516659469345540031463991634814157321007966941863205344884433611466234249771403260047738022793965491265483325991741049073636940895702648616378798887948199776292395397879506552722000024993030415646756427648415776098915619372149951715002742621333382103580668133366891717847017645830862234088839699250399613505660971972300118898784621594820849157119210717010398082446844260345995541430141407493648910876684008695488088730811333569260616914743355366300105161024639838275164685247473007078900368972008566956262454318967364042747026146773932794050652943543844774626310091519453344349528727139118432845917069507863294853290013142925797868688336264332322179454955026902709769559937190516836100629881344029142239816143540176069642351235664237744266972364957201423297100749309813519579334662825337933925337336371497493293760873651243630044601999682975784236183181572140847594054224404984038772195205121927870157519157784407799362771794191888584999662885585990736767267848044752839934531033535427138421110233767986271181545739259093204744663543134746835455466787021697411503309082078155722860267734086193438719092693818377206117648387380275248937783832993166891017556417653657245605763915397412572459176699969317087696891714803100971680799260690010754646035876267561167939385747666575970076566090351450478459713427488604857894430466522105089798732400716706309026398402520783221156591891167676550492278773394142471701241018421246187301973497845624185598264186406138278232321928815670870662491379131245743808251125519801430207548223594515111800472482158737799947423019200422552304089216137043386972038156476600907837447031953095533548059419004748234130563557966559107501526262501904921573998747866152270044831799070447181250634147382511377898594223628798815615004638562578099256817481806528513643979376485741727909324483082268106947626331905544197095793620626519028255663262225603855175344030056716728519856014748618948603541410292015894843823081672255533732901340965088931697475924302709642354729658036693698914243926921540628649390489332835033422870549422229296471459554127622046973593379811973435067575328085697636174762059271433801047740820313719734427799842747029418177573428939126439357972912304545265066858609527746895176616913254226587329824970182183306766194870603928016269332783355075281341523902939594539359696124041213750715636817635200554973332849060504818451034176357959305074250983663650343887604020172372284105361196324678078139949865412809457105121832168507593269959010441325256047167808448513198160182197292015423768002871111672178355839040538335478654866000873374901091231935506877605086794433895944843331954420943144963206055225983885620481690145732269402681309159568843985022761477240040550479840584029458257497900278286695012217615184773528263291524358542546981087567829988416534914836903000803510551525686408908520304913468384565354826544068402729909318104827824591797289196545034143052013663241804917629894337913163913510336923034989400674055845521108736385734766396096028205087256334132449651826343501488169745826770520375152236818750167920542565711257130340367442092695433287872540944013084030545095084697567822260967794785385336073121011160749404275093873034953682853484181877404180760025311854358712756739850331374330612751105796300409825553544636442403288246217703999967328218992282546376383123321580475059853110317907835388506844364104225332309555173893732574690209668640188504833552569031377788858484342772947548975421192154158341333332885453957646111367326521676873455141104819750193773105572172679322979212798396786268327569827852633071878527329999695905247976604853450802090051076674336608368714149408750481018674122958701802622489052521267226017274681738809996672473818415485857909324238201763722857135401726655347475855762627592089387229490090636289259078924884558530107080563037296421155252380831101054057108788123213058306127870953907327597110370429674219417118495601820780816047288650572724557053286592162432514158496552084867790149558174387079449884288132706090479264212361214637780536457298874762399736236152490432092357248449337217743999287564143369504248169537103998425908178042297619229267028852526014383532479397120501735842488279883734064644739102660270366268276389976185885467730295503850716833277281302628922402105429143047848817070559710721666546146901951325574057949409663099200167655781946903753859935798046942145722028724237219622963691809301281003486693838560188099887385275600673561662284419548424775489957790952187091083968158472257317360561875169810176797964978756260325254969911930917350740067581852407412866857514020205138551557667730460397892765768649109719953650345509266434386456046826577063240267509706809688324851846618786517917190722399101229105809226956398986778199659976939576666079419431833470477814724412498514069869567792314195506013231143270835695261687440015306625426119417276530090890177494166165042734783886219710145780987917302265047993631914357320827213621489937608816763179653945244861985237310091033898950819945317880972731841828657336378782492482880011062505196834424230277636376272100127674636959677019237952449527389029260562400977440421677794118637112622741099998444482010122853984994877815884989244502051798988406693917852774619813303248798291058848163699203570846773185587010448299053422499588111555766472669631647340351524647620544783613136497209313643950309050667867186535773542234019414311584198105930265153869337545853939227259105024801073096810766804836212760608100087642358989218126233005692193796495961700793681429376618835471583594930118929071719602978118085715507412808732760782113662943327475976972969109022074743306435397478131687751990238733331733574732091868189119065732075920995578103607430285843396733150925766516615013837443500673462609271021203032116142094705422635094637167972227999787310590980635895682050361814749018793321373922606967075284776088825370162160722298304776249553646253858583027836304377387513664172774084192718434456010416050026366747975721582583578525436927841600944248490833562488140125650097242982930340776985070220499561426177316709639759201718096953719005274697000459763821871492954843750773170204337368903513513208713856951504167112060185447937863011745383878978765636982602680987453769819966442591609588812849495806431656137584530112843655766603029541503908486303189306473475831948056924237871491888386177433848696711247444201127518810985793109365863050529845293958118695968171770320899533060239352117452287371554123729858930228274280774269062146214699532322900342266942173045074095527924075872926611058978668469693716910725483991024056897521634212769609393685650790427462228103875025683976600823269354505784859826566292987341167093466981188469049174020035533730780657002450491014878534257793754448226995932822797997261389700871310583459418295883700782048628583509604658701672833096975551421845115333291554952630886643130887128655942180486233475894590046504356371313552029206543583914661268552584965050589331562743858466110419750314380175464802238202946343446739484649912735751502602534294823143889539214930644061584572290588022625590018318292961106250000034441616022291958424415186393919767163939508656442112371380887335621650458667256609012312918068955397121812181019732653696486478854756928751268519171632092753923513608990186821070021940009326490233650071887648241163955777446923669420712657494842691558268735699906968640967675102882651018508434459570372133623937614053542688565626509678378984433473589997900551984916024473909082404227729616315984327828873585337132272176047986284774931872011530746347744952834939205554504373107186174961399841115293278799434873026894987976322138064739664238443540266204785986982610593893266059929303703483660641822557296304286589357247817508437503245290337525416520071418165180757737632107037587834459091968911074940676875261302222639284972665520472215362038256660471822155467635031294092397976582326618647815001637600342349308976898036663288356582579276288143480608734414949223682300334162401230231088210244488195150272037868828144553704449200938224875752481060736469385732330773689800123613518123698945792611460243384670712014361073688775414053295905727239223869873299786254684273363178268746144230161096313544896932388029332543198026781288116007312047367209227188559752346773687572713539777553740385288794491585668506835093367895750397563163454921791435332363583537511795388428789896273902271150795794036010815980286243602387651710101139326795748602348272663267851457998450377798497663213775646717381527595686434145603910695071494033858556951897112275303269765036055711655525391287874892694461891574283314778922607384306181153881132852972927070671236423972531773856518565203767368594066301316773685544216310178227866606261397932702303054376350178618559756189989034016713850541854092776179473829100155380284452413546500156166910913748180739986847988958955143778447722379611654117068310848648875964131012374165241725860946072488583630048358355040145013161235380626761771765893200022482760726924661361126423639140142763082798675412268022711381050478308758903156634613448758562101976995627831975543867217595436648723102648568807872636727968954169168137170863736970788642200921693443921514938086459807344782336258039422359212303613123522501795891264550928852582796876424366169197139355959146072811462686767250793768868334455952498808183750649589608651970296671621210928831825568010939381954287098903508585966620339157572825118709209007436594681108196800808409916572022186064447928280278638672924632436775167604583126024867663749929640426065197228241344087383119638935822612726908029218081478135774428515615508490985502014057151880285986833232478816495879340699259776919210457611000765676328944070974335190809224703396196397037336636994775885074470717663108891560001258081072966872801413551459325559346784138086519057377144351145212742149616943420769106322473280307310658353107597920305954803251848113838114923871317695525611450516688109934189850188134616411758913615074633322290035994380554286037566665003722991192359059803660498426323407719204802009533140830020975499779971153278572670711334535328703228675024954685961664211354445770072603053361370086723018718220406447177470215806835359870220762954631198530618573780010185029332846524269495007644732952114704120561272850910704399618605976772675644599082525142538335841406242314772455009622798858889597259230361752106270310608328860106501285956590628443046499947999489848323417859500026656340289806310720920331576513720006482533571085138668051615801769057111507771374568845100142328417141229505881597685933352440296190885876148780496895370054388235651578590786806953676958378589122528299512153424604176695169086089544700870698193135340110973224846314687875934841764007307975448830002401227176567771022527985141999950053257457886294794563925052753834960671457576981282584096440016032446974253545015687831735414985882231163476693211037555727242913173625349580707067908272024206200025183038216006778313295769686694230069750145656963056053849320647715168240747586009602329579211609266801930805444349285367075139875195613295093751468121519316798856851332117482461329949121270130218721753979884718777689234433924778623051347416813833921085229585134283351108813587143281777678808250705240620847510451459033350887233900738460734614802391786094229974965886523276022965158593889337365596059066332859049877502095097897986522494537700378092709442909948425304642587361825142553687376448963085472877573355045905593578001242425661042142256109600550126436713053146548403658350792936824019380669399753592156040298787242074381156352246097563405500652378331446051852981891436289284104939347994437420634082223834603876309606534343983395855966195590069519267624971966157418014451105794665283699669282563056663491838483137267695199137952605686156037106537573635362313381894818216087567714435577998549373654171928576329120263470489695563008382254568798426960895880092886098373271066037525892783745087618818397752899678204959910893518601139259000448319236947795898195794354332828261252266453075307748713676273170651389198169132833025471439285052248628666713697934908404180439728015835317130760194171863061975441870747034406113163020967600323660711185860723803435947327101508186402591814443554663700385606337332591066492407690258930495447005305949461926196143277956381040770275794003453912759847080270207597316792049345234356259109154954912216553395498680922559231393144887598241491451881214321197594749348148407797796922558848278830403710626532409822391740925822827399404193173738801210697776247284331427309058060037051476619384643047037735787746290418799323228550413423133988661972569139929232719904390186266683758075384762835693289726051531335900792871524562634064505217716930194960738543033396182162694801928716698263849370061822814667388426528534993073072364601887869786390179643462395887930713570095706290833495986772877045108257619794868709765852545868242386486851456040873221597899564701783733702003908280387853827556823875740041780571621169565298335530398198976908716098450113043230578970696088492421119386756498479607192528680870634219956486643348008519238950022365154305596569148984774688505486160111293231366421038097133296505144093528267843150920193070533014808901077554424449689917863817044807148478924792001033242109915676448574722971227679737673171301313787190767801345029368204631667697314054015596438811915805565524161216995683925808757764792335701202633140503538810561804404095426038013315960648056585186133654210167374851308514925914276531949095632375557629271059297618826409866647236497069386329983581799692018429697725002189511226118343180699350536648687381162286469556360476971044202566635782296897578450637492184904941492450946821768660268317812648824308016326692177927275188429806818076352109398550959181522180800619639870783971738447773702162767069949599554323421939540267074266161245734944593936665243619841456197997452806966768220432212970057242889908640642316018918833387779291198961004436561658209741572175461489005745765230041732093526907664898271022991379810525060129698471372580709908237152004625133944594707183840378067001857423808003332934979505194503104464296617597604365273116607224603901761903019384336041838324571012693691681999776344014913777276345632686218641003701873342004745000708523667573922798794749858805052109399297053662875999254570076864848055276809610212428953095037038473139714158073994695197317615077038341820432090107517878297177366549612157013697867025091072647233011055072205597347434920925393382095767633455275405661842368847153456664832036944053455743332228513048113436894510459506951978841852432286951891349208321054712499083309934507748890482163704156968701602484815020189703039592216071244356279057409046236587747527253363362058647186133937370184053611574973402473394381170131773780163054335111775024992336214058659304439312969904650185209381113900116762712936259440410378302751112742401575170249145645534356592446907785968222416129563814925468329255940055244123700752212036987940912105983310932384491570136410661080164265438832479531006924593145217241080038924003518681234170289399865891377877541235879727344565657080558182970096769459570813687277627084042055798031300042526613766171291015655125549955375183072946326543421729309144205522363445409943685221897361143457973564362141302714286808014354814288095389648156215816934410787855982986468207499536824598689200796939912282486893050737565896765195893122789651721389106770094171959470543135513312628077018336134436126116440530849363157087291834317462322585800768335649547713178351258268997808828868654350501898731105944193921188955739479904664831877667106851476437254938896784754416281878979875921860695001106973275388582914842930690004503078952068175651243351597934677115045301522369729801810357326238540737789526755133924933151015086629080509755829453377453245611778317441282540994512685999399018257861481126523168646989549158962942473259532838854241656880010361617199956136171315061426965714734069896131239987046793162242991909838667019590333532379699079439407610184909377028621056181420708882987682810911959630566273677841357943642932343003064997041155240797427665998904115962681050461337458222063119305321508925499303282113992113663723785932111309627948265165635986285852538274686235702974824731395522278469893437692809306796707178461079388030656273887911447021190120611758558992794633805238234498609811405426767137621165499402979653874339061986141606816351299664974767613563437835839420693675980549783950879453496499657616869795394526052893798476369609947163713782067245793718904401617170669820991858162098405463342724672228509324657310127570197371291128926941331927745630514720160868865514009190134238320858598759636134857069241489123809169566631595154389805613499496398980794165173461241740373456806774566426648789264541478289281904385314114838345105725859833203766350481576832481827007498002316474976744779245489250825298572706151473883192240812303779097026597236419660135653816761596051078714921939031769775954051213230191358725667812584261203288385235720249757783094444615419058922824881660799861329219862538084707705786481439132033641518972410149175837909977651282136322650305822409784398173693576971720622381854600509371753881884184138417562503198399627935650147604452738916672362670330994564607365192681415151750356888218900847922963338821654317032115692287030982661846742143290680988354875861762118735813857571692634126405623987899118838769076347659490380709786209161034531700516787031604685325537595469396692661121540710952591239488948545610465065181640508768430846782229269034371015053277877168934635861325950673679396726807887578536601191808519900075529168378319733674299770074992656202950877532844672331425652800808418940336331176786550528874826806593515957462386015154622671066431391449952026259818854018574491500501618982835786941915932157136697984706908807661206378623107811974068814303567349438449017448320954542072145587058031800696071434922268942550883029852735819971706119428211917715144380396727324498772174553748518134857350074533883179073566607886104395814007842658272483304057780883150676047283281025909600469277074562655233951220496132287172870770132058236925114773277133820329373143813963973643265388240543241419848459671341341944840963578697109904449990069315892608523956344943961390549300596086569469390940959067131124593976860660133439971857392447274142893983095353217728322546470315969953527476898423803017773142498689645032004229512544821145526464838484873413278952199184186546119809296057598837870912183464179589717768800783478187009511821760160896882548907311611232136826593877543679348818226858996826142793327213733328494686810700456150134209640425903383695701357817135397284453855993957985006711554353438770992221182347178727213860207825972536113482603681093951946551261482619361655593590821382350746389292750391681257862792908308438550499385157291843563481873659323096519015936998965160549873503215577881392983272204589390591622270031625684711373741898474845286325522625222187180929869057384164404609680579530004278157410694379043917477426748389652315797339040318938943455735412518427739672641588988019715171363320777945082974817285323437218454644901324198456778499819026620417443137944681792713956655181533965024887266607985962008851789936488205697108796709149523735092985669024023533585477652090036253617274973264614762213279529686927399677323622630473807337779139941143239488818502562369889259304691468299119258834106290419689235382034009679969758077150908095030560051110386922688271495616229301575048579757626430872654749006489773222536077207668323639315808730815816529598080595776879355478203291502662563385900550084994412291965423366629740478832794516081693500820087303111325402411045035022229521348228130413965008210589986007798016767672791921826738651965679447263889168944272186031184753833096685446565423910034399202161140070731328452491637114927711383124921498832564537754949850349997115507100535852627779923688674445361263370517334352683530542685615833550216951259013803567555454096426965931307027460858837520881036892679145818396333882230762150759115824137069905825856158075346900270625043129281811412122605377316692125907317768062310001955771787343602193844145522954079105820265257744303521847986549898009367064708592977555698917156989585419569417745772569540141627621999371612784760334600696744991427219707587309500054681491217382731982453535947531499390635626509349787631001477244776540928215040267082906513342480747728248119260416228559635682630102510111925693821194330949644824067046848386548633568208157329063658865428542043294465432111417053345063616389978758238850382265141478250573086435177534352231511976669330687357080280110884827888115336767443310728994404518155108350450832722477115785130806782853372684406070396313497675978285991040312286578849622776273891610662278902659326268215804190112215666723881823282741532542401709783793391767579600009286509376772579840253979805730884500014828729992574138526579771327720764013744339144001598201409356580699889697079425291608443249394271245761541892432481125066013671738826628874740803290412696827400704475962320841867629585177371758385272916946405362538256221502754279453248071371832364412561112408696151955598779464721557114158362210037796025037866436892976755929557637518570534918477328928295669329138420587192870852021717463805758924518514226348693385144006461264333594105011214630655284262810492208384349873876123043212567605670824930667197583660629192272887575468995207629323853627296481134381103485358459977208897503121067375409182814045035063734503552346073669042128851400393730521251741212159181217327294431685737179409577951858767489606356555570583294989512144178458355657557336930119400171252129124897446530470638113272484258394452374319611229045590958935868793938113482147386545025161374405748050898721211569960700185683557108359928707883590918072663531854155071381227419221728565381457140586349586335765373350811004200356710221839702699078721410117063466622126686632558242217412816392627651435203442028647389290008874946633477878064428468625203384451816542491974086807769791929635004048243980018958365286104587449169497939429143436270585749759724913860512542743676107639739795526416738288887985279398307832436552617651048152314672651959190371044719058541100401102334997804758928750875631786420548288224178495861391614047020638432851087980449154499644798106933807865497453679580268833503876722478428760782222974470179847233841079183405316471982591132428826734020689425520108007041266076479387785232540882771539583572997739342084692142518376488163128057495386455353320787900237906255943845611283413347112699333607823960426536085761022409468117342134707454918584458754217831077037415394434381339152005256845374984030104635104468862911855380904298277754307250356910372773062129513775039102829193949005418974420315159665685806158749807779334256948128758685721112505809745125379415746728080750927709405067523282979807248840339065920530276628608336926128382512970390052722752834849751118702041823151011620403445124241427842584624484317579831988526418268071836127056531643546736310632312569057078063650282959219176637719886314682975179417010918843890251333903755285785594050351278091779098452098422742146654806930672789122924266032664046770600683952071548531641644403703981425872417887883262867819681164481457161266876583566557187251372158448134557524771085126057221138865640946916197607022959945434179129496853262305274896666761764221785115503848083016131254398732959992096935828519765608876209735944845480301577796553222622693779490913648449866761066020150145511236035256373172966577697853948504286003981889101432673406135954738523312999828274599115482318199224037602288521213880360420207164264475785906993262925251197389341086396696550344625632706827345661067052297571026743000781736633498533820491116908579125839110140692214835884181741481591684369984387326107504256130262692970925071200866247201519687333529258554836235661153402110686474817931533344702674294018527227562432504481814085933964342486045832496945130275089271497384456341602200162660535924837307344672537944645503265209924693770027448534382574586167952822611750265685073898435892557299971676913990253570573852765210090832807837146894530692931280341766218486125629529909931193892971801191198249858460165624929244920302276427650408347478126616462822405342502566877863496822188927735673152780789194073367898334702191702374723224566314813472180484998676225733460348554252634835394915864226570272879894561239546949980074714443588835313853087226298978879367938841053031661363526152356700066621622575427650745423308410863266769579506184130338631120340299330841305400022478325085654745899616241295408641987335451292080716302557927311524066739474843986236260974669976569894622818965463938157548452571827128929988221420344073260923050632364491042133850862382836352193133911682193996864287955018424233267841136133603439027820529141775815478564825701451076272363091297183560942380066911591626184977444601534407884092725434092510320492739437457122450826680098678232431018616964153157692595074283093587577207795509208146504775969611196876066621364275449706025489079335787765141341247996049242900461853540276895120948655023535805304320894628610765634726377594004788346406344394967304893712779419583224142443229548353216025423017221395532138328109943511609529936923251249080281627803882321332086348572176785576869258624958223044621808452384134792992177609062970303145104425295151890276681110800295460244503318975145890564074776207016077756677788586163981334331720403119860372119621058095128691157576398779035343256261974392973555789174958458256882189882468472368230084471880740091891218425841448075563303414566974206778272875388936674481035080966464638543001444563023529584407088747955751023773077482251363999255534687061440969782953571854766571463587214121640160826189951860580336765194467451980720643180348421238139290725423868519556232087357314326329980912441121512862267033629583900122925928602724973096028797688206928672989615585132906848137927379083279299875364893064260660612049604633752791438560338860999811888408988313881880779411670062523189656340243666536866619321371166330645011396267461329594609707734056647891747528629080645973385123191676985232598003708314628800483450100748807971526037215922249733390376808955708101593047717602596937796204993258817777207604368690046134539762963316062094627449513698173126595243867474019594543092411739325496203473765037237533953105678085177386367512945326625277984288130010996583892451270959414154915686933247916562057168021433962209352653082110393107696762574557042703340618503954893664892093613600843399836344702879981295658815480745891021827802426635729177257828091015800386129720152801632236546338788206837615040205191809776513333898034593345848094547658421518845258656682074530223939873018054154880757173887634852013675831074039475248597735910481076915566074326042917692577169175422253436485294019360969973776831043336483848159851326618074637598696695315884535596395753843280682706569725258108935902847460885331650321314518681857910347237386056045159191868189298864153357285179270651470114679541150364066231746620589762269076278551989286002462019930930054410776936513824802183437492212719991070920018144611307840525864632673926959347543363400704558993549648849549340511740062780082213015719432332734079780008885605204290585705872497037852587424835616543238302915746376281192014608289686771448313304561177740067122605258663269351003159992615775815748392311499729398175361699572924246784629170172470756492781088786703358006119366666730787577654953116118300073410029147781110228174528186479584051590741294716255227209485323562770553423611324414085873502628977842069552658871527690169168724157152495730092365939341281776738620833004331208547466031904257326133533216980892850724267046794770374489767239716992784438636337899257875227519027949369938689073353224206751923614185563542388020858214704360812428597901368436112786968177493014252357021386740907844947734651685514365758383645533357781659848420224054908925972362566772299557164469185742484346245991835182670146982590521042141061771892174422972859484855954251951714225580293301138475725269975693087888527990510097207469630881226481612579264896270276808535946438502379012655991867345429761707115911839200356923188917482307181259448250650444267864171709190512892933219605677214897221946610666616750610543315278760433653083186047318101372763780833623992136344979231131232060746261311003074049727730824695381013028278316772793034217437764815249078990988418955982482387357138392838523616280815810935422267091398501450454017572309387316917659573674738114469092004260689093517560836440892696202868333348214328158940589913771732747478410171642891641158631442169456593220559175021329474596758259791414258739019322897556151421752630609519108676090355868400642376797713387158150831216006690998821807599897891591208798520862897011675891626110664923711810358712982582335145035185435975643118846706768973628743112730266012639712145061129659340615442799035970993044727413773097669267463193333459917172104365898578185641138191623319972357715696678385699647291779159421129888128014324785266728948081782371421975535085367378915367307613964962769789080836492830142385001494149931112470162507686144422825633045463125107121701752932373102954390101310247039529967899329915541621076350946825946542557262535925326028284510079481205229692572836082790266551232143124257825318688384813647033866707633914806036321536261026692696073759228747920243563743764876223645775060813636588085654567066351141427654274718339388116459880464859573070003908389333143226011934134333869110247832327197897502919847399406126688311224236958766958199437065437703099686166317739861567325343494193146250859247782689160911594846136229358604594492821985515853716725391548283409057892346468918855246528813134432851810704549716110584224540820133589332043520103577406531434811152089990557247460407711048029939405318838311770503694016165177947364181195930580019851523785092069181415394058401725670354289283454590722499321131726765227513919152837460284933407618061159566326770025608563643159124500345785850078219941847296771706394367432015452721714271202302787838837459440618425552573050559833940423881358712835663755888516915410610146415932765528162784422326370269978869763038093832403921913779547362231431105197045147383789317243583675558498197394812799724879829094973544004642321084625492701134485014587628617799682270170741513886810887327646689550913798382543857505068905260943410053506380003549224733216348811976460742823090156037384977929225420504947912916114875106486842691895163257660883669131928331527919722431794396474327425662017646498100457025815331774022280013511292800304297293639563358606536006237733848509817419773837073151166187024923665981800932045508714660219259898178369962455692636271149494022076526998775509847899747609859797712009663316905067510050155544647807014058092865333490112108503294004999806312895823814779071272313309535890903662221134607068305389245464270979384506805581784328804601705557321883257773161512135243104423937927607008488440477360875434507978186671513195817558695606934402080312930601075889701838584917805124754030741993112068338519506189868956843356184474123289334374714857951610765255218825801955155693007389636965654599922589221694914441849009435856334128128982964693605379585721788055723348940289915097658613355043080686539472028829791414642067135791681056140304657529984880383915772373229834973840847221523674858171598213566752320542710843242003102666473045512084695508428238557467118800407422801205431720087152514861845414946823760266857692009615646798174360932354545236768248112687243271044261714693728863236594624590393827531905633109592773943102277114331508738266185552009838319992066308874186360203794840374835191606775600913589791705050645377422084336147042361688652936990206688235776232408384421388366130477506459664143544141418853756690246772010496364712141622519310433180034536192875471523756520023654845749248182866881952073144976022554637488622822910122901712426004369697965317458715126307536567839027530897771339573792109442612328379239199255270148843224354719365776563560422925979080873451357126465648340487455805772338216267908362121558378914439220944567198515225319975285350023408789120090955771894660598773557647860732183246501596216315230083355625319445527619932980581382313390924490225691004591066052040931783754888359622440033815980424787333698044088515664625257901391232463934555869567991579017382209028794627365754799057151146558936411765303110895592487980717853920655209120125689161802441259174338573525123282004547264823167500140356817800593420733551966120217700552012354776562758730416782722237216889190024674216928385947577765164658527394288448215891945550074857179529655609093350583568501699185804046171134267935434472486656227432013780509688832575992462403465213150649990024007388943308023356887474417058713880708671022127990130189610734302258814696074990915435969607139060636957264423179658924192443278616215836291207535237341594260511389983642150324401417082078424374098072532525300422366839950845574158431853173640173820979397766112125888563635394396213969455885012793878597513666233693900071959367249950896333908222324511402239863959990048736621459705265370136849492503071634127137158753183453299601981939612451712301784913837451779371375775824671938700218082176307273798474063615361154332392696391988022501859754555321023497266744397611471091703220866646703817586317452746244721465883603286408324045922454410467598836108105709527199996825545237880973268698155134626583034427513222354672460603851676306463330883899269755649170224870082956213613072223361142418089335516755039969801539932713962344763453522153005933851975224435332905428743887663919240628679241257492338679529027698518190737436016692480170125753797033578823337645526779048400511996229076116222814316972298430158673193596941404115063307176197722347579957500259214141227197897251912309781450439508222683405294888829255359274379748812336506007118371771187594393367564204631648063266775645749075608340319534284408280799303192762036827181092929005782572978353824325188850997494288250908887029484668875191560873579437051410104795963054598929751387579668954501406779534346565182094377382676106624139439387521771079429526772138227656953448318819276219508254006828234400681998046953250092642153780260031505760162791578722437501775075787177331272508881113547675363026074769812543399965592832423997423262153017968687166924721412716455374557430436797093919402334363517339313526297871286074830403346703444716190474794264097794784334524030863213373128917464816342580749505902409293636831687077033796077836952119228721118922586315090995456361034782696121435523624833519858609643124461176257043146558637033741323138494652895269007513352902320414117308723000509427368150643494216273959209085038952591414543040045255343565382651262760729012624327076647022867508197722954352557262828115978303876342572678603582543549138845565165742135264257027931886504525517551451213712685977608330243424183298401205260827760979047050971679370554831036558999519113345033339917459821435138340114581438574752714806228429066934374511511288635741276663086340329383809513129394227701554562550355002201923696690295392431685226606792975287803725594055311552071457808492641384366009295119210927293872473377300806119903154906772065711722638276949347656375611709377525199236464777671248666866498026277840987955807895580603870271251463614429388545774930377096429635003624477219610769486546525334380724840895775428148910373166029568019568029532575803577159142083298866919764688223635285562260409749627150442130781974743678313537425006936152369527982982618157121998474995832359812598218133272759264767758987999415735715836193471403083771270379307158884324799957411616641030734977043242300050768052567141644416417742747430645749356208586610039534159532964133165102689821410146784734704785653384552437432903056642833468241000654569596182651502302532792496310595096618089850099677213662188896858471188969541076485581306101991354609765414295613593026426343742266979791436919047177213183341888859019839588515017085784270965155196986155413679011518897294167927363331752625045492208550815724768204856139681255267063674101882494681188211257253087439552420823948306723458779189824904929665673424075481891452112748535559924871700783238879540473974046047748211046743714537575879635416975321810208380067590834893972522037848649544102882475318396331428240782710785105222479660105701444403395254450010662265285627232738379433916543875234781989369205056624716565613269366119179528307182374046317150386163466725167121106774007430348530472657296267513028905436601140033118280181351237467587242271293587775147438752378886386375497894020633273786144358785148663785449820453323367575225073602224967887549864364553020397647171482239785222063765595181676769743827255924765935177974928721209171198131831912851922581425186606969011339945651762850578763355933344987632886443186730221728089588668239178414623947739432045521612261630686511385645441482126556772590644658846898460098042722074585135741674589311333049915275989082360912002092461575292093042217416595989275891181826107992652744300970513179803585702095613009465455389104763719156438112270104950727284699964359790925547200118598489060314831383747457610827344338435052763947533108491221149071147112368912549754076450875668967525978895461843499847667702707455561296306487042415227939777628892653023811714565286687355625157444689103793011883124644169535855075133381363440235725067023674519441476284534158237166034860373447123402550765609272277469646941686824198052065309667556620161176081715248035273497878181714286731459526127461811230255713264416510406558972575045043738348355927441659928165623057009285954420752597630945809522146452633273234686170980081146918630584395920854293493722153827422539478565170845786763788213296602606487965897859606489160371455704595911716880698953177679645367318256859470637226178616706903939878481608727594593503053454800606925971547367060553704840535758486873874113573823358205681368465525965932236152605552030354467413502171508470960681335120856617893742463173362141292765191530515972087140160191931521935530749454086496388005204822365551319599759317780218361582017591252709282470467638528960950197813762202370640269834132460133266075974228552469006629821699275231460350794790670177287123398171797164439342977147589262807133162984222019249683082013694550969087293808616672548059364222840423207559982838764200715998916137667184904926892756705027734772903129840121121130166810936891627184256372477932095652776479040454601135601353004842839514129106450848638131628874838859284694203027032737511250041950628126478564413730142441090059189286690658410706668026730956653678466067448461380533227914513384438109871246600113627065140601968999285201598293881990572402801943297660129318831520038691020887960769765668469112775093985343758422492176469849846507517575925169494647427831965706134521718969592492785980948947852011392102039185964931100748802242141512467009754041560180795412550511753290340409841027867624992296859031629161421808793258496285112573273718146188423831325304163902641921609115556056080804548770703820627343777995870050357094768589078531948353248492106406488215193439321666286924648977654543429010271470286841670168747818407123336557414173362895421021547879193269641639496190661740866611573406726441362679465979521180186741872714561325402854420604568586556682730705730337125824036684155463889691293077653938691928729362989720838401225219991264529553345522745674075387408864525964037063216948982979986949854170850235018046742026821195554619100030754239948011653105210491693069493575838235373166805869340658163833516250931206196019105400287167344079647183837510144256095599727661089433267635350258397950285484948145448767406737918251188783219904986310572875642369935051248859074837306778392013055204292999668931935397744331190451807789900968350336567110710210820266966433177776220838564017629460348987279638949964513376539441800703722929428708886368176828240964427058058695030325599038499479504857166704504859331629326117032297015883959339354741675520582766616038879286918660218260223155048539517485495453910887965984751369547820292221292082325271232988020581244626525452347999154621001569231273650450583093456640872475860364212331227401711539663488820498505689266693476704327416980795761382365579642435063172040443512162297245488021981307090366934756785951929330742033304704804922202875149544183688556625728504699315846067786101301261785350069591954296730256319139727704189905281301331302407162081506697527029178814510790753394412370357160203577883230032009789259753694307343104264124171405518049635984202840440640524802584996854729554934356050329594850249798539279021480616355367843082199870342834283910130858341972309094778404317783479755224319607798896777718798673563566603579159253212524525884208115165324096441282249039376420096542695645710335362709794109832955378294661930490769844220995130837220622771991585003696454724986648211148036257096250107717003153668645459415225689506090215932525114614332782008969783988691484856613220186625775268221959610779177157459229625875372402935402816763641234640516068494410008844443191984147978268368617376725574589534229941518332260605049724311138753885034107500368399558758828334070566095822952775799240712415082921819630121181544095910634552068793184438784579744176462089535325189260103165901433363114278255727850125862766095754988136248685268116656122694049490078838676989400221229315377948051421213197396717577676555444306307319743790548747056022378684658431185561909843667615131251743806244438098480932498729787999184482977088154997906945478260939650592568593830696146784352657966513748730307957934343828333349391873684748270827231706385780573006391030943141285680504813682247425883192810491150778482104587850335652496357951361014073060145329554951219301599139729560584197295051301055812659940945134228845359696433073547401995934262322472632876751194534435455461552513235178788659766441653536557373240307968981442807190694876129125364641286289500857191902501192634010786807514271142293732754591330104109182248225366486276982548145163035393592743647740045602549010639689347167819879336312783285161531545095104581070346960157580216409380123199549773955583235451174339837975071390577371648489769486680346069030751282716130546948664063222425505627512666552171251563875393300977786489190876875990823574350321075249626936545428232816118712228665238419705421092240646566138235749048344920139059531387256478292877797887486124263745211325910648718696634064262375231277637825204110568540449701515457801538986533664701855985513788235936110950259008405849929589228196804388126285810520598489222646912387914784750908341835930477030973245742408514386106133017283760439349791712622938364485913883435150332291260515366027875244713741372061880552007186030223630513071294004112940002008065904580054503517699605217150875236730828794063736384694597478001798005244099075211619786227697819405917409028422142628607309366427068637406586647869623728886793340065781092241818696107794462767139396322955047027068214492706725971467619367592672519056876158163065933523316670965540736674267716984100398671726560514552576895407306337974216425780950696003715449624403369268064305410729702025733367384549694445105060126077547915230626673419701431609246960680401924040770240191567387270983774592712022169109577070890726612674413526918778164596725359560694818968475097820660042562209573084161534754314715289154470082791524497422101035836136987151641042900660384628277451448504160583087542989012981107688502366267190095042833108040990938125349759723346717150696996808036325694939071301058751040881440205114624454018212527749953213407771535456417750747669707378279005245957110361705294180667733502228057025095685284212439946313890859004440022396850023875826099170015144755732689695292997337263875572759220157233238547138626472383498364580035905087387672409936974630960669496789253337761652963423412605409566530108938670185034248222399705122768178826133411966200168601283999595310817893557641677894408782248893572854900776569976678057541889829855048513632147188001009503576961902795903038891855506607467142830359930610278377585695774109786803966328641695636453991113338845220618291383800719733573947609548443059177864114013177081655680706339707323248100242679674373363377333452344182843664266758107062314645805551297802491596434236538262944853202942167864104202608138321707078902566749669271362184908779282905901154993252467165037028174644351493724992773666080005946195892509322347547752448259530113659525540485459890087798566269986023796726968386006091092539253456300522592299488849120800351064020592277575455366290840711838216645889015929509723973704079401009753434038998949751313114747902208273581589217150258346095222588041323300418472864487837091553906192238715904497015309465479416443937260457887356034533043746773045376088689766543393246910598113669252691905304177779096610762906886611110902765613390433705060590348118727734867486928071585459433945091883329716782805018582068877249427450901980704249851148013672057128850022238297366128264376867070371639085658316488769250465248914092098115357328305601422994117837938268082232689497658089791367915586955058155242042376426476786218432490993079424648376208792547153100329018191275357037176733961660915401787584147453872577438213487266205859231601574342837803486132701670049115451315851309737375054216146912124866967022410010039653938214884002345416907917953100436110736480073634185832578181504111950433537051336745457142130421943384404961038418513785034605856632459538627776198904012777468029876007963584995650410628318881821673601566503246658665737247925204239603730821824863174177428655687205456591363298919455623962708244286703899408372657202281102040027993066195070069892009223833894957821092213052675691495591017865446683713032016456486742341031632334472457753997758327737221362088653978349520589458951666713480143751827258894946270033492095829438462016789084365820805213891848034770030799422774046632219160229692603499347819263445858225190773637417407419865105798226356395591243899161136868026350326458099567111439110262264311403811928153509240543110982867333103540075056095302903788392147600300972664300753367418545963422349747884916388322265549913895089153394819414619941936635812915962772239426552558282325027870056477742952064420553284779897136343251097758916289012868892434560809236739891224632726368922554540062272915707532080841321039806373374784273030849794105865044944836275108823185180589866436307525749790538185471966105046929979503432913295098482700027993078368597313317446904769326406478209334322749648607476280972820327786903776590595901094499469304292371130237852897044009701024366216292215263235383267716249013897141008976437676176618084326667327721509724962063860572753471478684758337495903598905522094620966301619249877125783100004017231948423199810279227036505217894041373114175182536282626838260832961779558131962673044336976188937268603498026265625001123371162700551607748211262764319895486959063150472510062316765249706957487970131941465783232733928852065800775954339163705083217951910876708833793078181520848414928903581117480658205598319112763246286164192765694048451015548730149077093750143135994923376242643433448458763126815291284098996108450914332889650651210716812687047119410469471128276633538510333888982185346854859203908072977001243098051039776093389082581651527226855051050382956162134286055649007810479374029026754375246885397826690152645139891479528508263623459436966247940896241160192026754139386067042242685509469552658538004839775596958131713953255507984235294958501127832778194794496197970081667912998126052482174702827014156760400725025532926724183467722867687443261575277383892960861287589394482662642860287793892535597080741922948150459948501059623975550970525530647928790263821960137945402716209274210134135627769690415297989665899999747338259460925702477731461892090528977545387619022023209081153741256329360732708371408691389530780608670863166054797851649198902294490757689591244601743439842882977290412642582378309371429675878588142046204006434922547180114922424293021205318022271752224689847013703760038982113874509339965452924391645091397809577669338161511442735514114344770009397816301122620151987930336455405474272620064554733290286297558711177354616900082728536072063105647984808267421877710286428593084553620410427344726887829246164218488505719816292071770703444990735764535184106213314255701561014034501825869704598349435940020056223663243278558717426172870402638692553699798646368267529779411052769913170190079197083551610622664799022847308659510806103849444396627166232288745100958073799743631266441979665568171342681422774810722660261788231745949707957687238892678056165225543259513365709104248041605449223709196019530489450113251094145678269786682893500302429879063356176305996568238363999658907493401308161802624196912822273817800080728956061322314344363166006483369141098347184083458565367947837131640307174726647866284598747867465994865067918710261353685604395782875461075928899690330919983444045407624123021899360506632882737428862745637888596378877565100282822718443370115558206094726623648048296577794554260043782679276533317502733713218967758389806111312881188376419068891331307487215175917555532412289790036899181152477586815708353967431384945571603746737130515214313016344261242526515799302066222110843028283211090539651484635595771325745036736627542184348723314126092869292138415504587284707131486094474909847630585231192873004761343603846356386714364492396096937458390081164892342035905358927672328270567050973120351655580927817048594622875991489805085335123612570954005065478471085326033886866150294430773390470048766309918834481080892437473467559149608532606157893057133119551183826266209825088104896130367059238123848806924769973502373811358967028073544695234715800661739350527049469287803093551432666991478830309519090968951841767694535544114655196309504915775696729218429453064199963087969830970375680957714388137395209610544602313115585889721771820559453326621344758362953909595649528332037437397117046174415355223088080830009005988193339715855612124424359042316931502793762130979329403690995458680417921157363901284237173490483197029935027730643362850634508438224116635633775501878522753226931433529476278790736937230141907417937482008844580770103251468477804791628903128045669172081860043579202330142262436897136213658769275879516174251874462455262770715358842754936235660597072420061133577489065587763403856122987741378649096925094352697449502703095022118987563822769196028441763637286861098160385421363022222441731091364253001473659542124339529155682843257550369793533494042212172268567023880057441659919394379349673790841058955487495352286412051928329544538550461335547395241929098689873010202723497821830082071522255417907274525427064121465487404284242785969331469621531973215639027530732178984190515167298483993757772935203045638787593998811715742681580395043409276188581433575156470377037871688748847966472313439258049740696973314796527821069973386181286702204985290179532839777764296609904180392479055792681235288491868993111008047490545486019080253486770343797070151114877962888832389758868785862202196214151539177534402810083663530302171274003906865235821359052787750210824124647125046951201889808931313708787352120934001676921481940333473506972824432678770884178556725822405911502413106001867297015835394860717849889909787278413144747326176731673771778757577675970278340611126091332429417268117265670943103520478204485827371190195387757437152304917821893987796746304133658820030247129610385004767762414582783262698526585768859055125680646882077958604440757589445906181918843832639211670702928910430724631837532721960147135856616849630530674830367687481332566220216673057173516947159931353461468942885647309910905949772569323075820822004444269448210734403092814606481412724336029851580139102298905479826335134775388752792316955164145233778071872257690885698194587617919779772960549047782116877684423754981612386110754785018352638903938067452392365878637570026212959751500010113938801312668583116517853844163062619526287220724963107439610174210195391832694630915025759146062510552759751944934427990618918573026536425545474227985849805255188405903945461995864644498424249406752199839597213852058551630465261339455890830143012028750619721443306348661718468762014207588339943546359861996280718826280443846219159635726155493534459894511577085227503341786881409208939235635609259229016501224351097016063176264816964954781645272028729901858536941195220878059252818030607740329971300624410694156787254220691530679174482964351415050444989467292824161995207509763476235693281495256099204245074128238981200475900274414322465209545200468442950619781296346269509047480800454050781322851751900680175005752344879537615680830872810552921994782914705692934696067313356936643514330682585144054374400635445727074464818345312873788459871784296679393981458401781775175563199918408337753633532174355503306491533811264462740827406026057819603993114919185178366951510425792673046420643726891165015338753466112122580122949972578955281707209332383178602754370351518523070736583549421465404841997940184816504268230403461705243027931873068025314037562663388762800900402896064975835900100048795625741933864120632823891645801477281708689781534847353373011848223689405736289824598915414311737209362497128120391634069832814009690099388007810132812034963142357675803433282600918542942516007035401992763804210033529961596034723668338092951090764695717635562885113270875664187568930865272103645134378641512587223786311085705285598436185383647739456283480157732372624213636143568811403252119302077826027209061379137268701920326461599785597693663845546493106680931684814086764717702050248282119666087672149745918763163596624923022010437469325304032427452074413162229969465680658585765211062581298352682476302804966185470995462359775452015757354846235380950443333489561307512902489452435205483827062195987424905207404307919359331867948221774194426033475314934989943084869527151229771186728160529105257717445347004605342837906178914253466432132508842609200039177776294281001656882573383544313948382926791424355699976452138086366775982885949038060853522720432540989896930227660815859362570126048226143137244593599944575209202872010577785579294062363038099632938111872430605079000415007114912125485114752462460715030065930924025511024097848677197977384353376684419663142213213399955773107716983826965400448167806133844613794768083190509981677357632214224734940339964184060200358485584443457455424504532862866563534258189202316691842873965335409810754584000235995953018618618931265741636757407436190023325327165570395177807288970921249502002947757253794009194816410070066327735568973720743857535244814534456627056174222289047085991259861760236288550946993074168125693810372808834066536958104568396933209192564451681974408775286178783133095259830405103405130610157634124115229597308242075801392622301086013159407120666270694011600171200533111143694539855360372098631924237444056745628238485638296202901381632971714545208683025894507272888569583201808970110101820501288809873450457664430547539309745061415780042015749395734285640207915320898287335165270771074392197359254701752535815445508884349949756695207539895427252203153867450295998628347084417747284329113027166365542472174501124074690678155744995881101829641159643685183990018869576913529949485220054676384589633937292108061819658453727372424799307900720333064490893683886688574396563877324762106661674383255261723669105803846242616940212073980128804216876294314234417753728385305487567324984973118495344275879473509719836235572810928440207439064757686947865463637327134838221295487920623607135569840539509876528439455461597843675972069765583143759724471109627968746333649971035950357893584742596725787652365105780464827027057283123634584537278014829854501008709206803965021772476891371091051591663356845003551675444180993146999586289317073849483093803531601452870595619897197765717471572435259634524556679304549184175153249694387386822374341517663662426778221827484534629517094262510427805245249300812351631091451672059545011252631630624861102480730342696775200663970410892371213121405615622045434210401048516547457775467146780956714939366060658712720612953920014995646609542575461683531194126323152106472087638100759080344526236937550702760551824122309628246777819335970129415145565959368916769902645980692193176096350242485337821707134497858502004399706255647979750821977131417933557587379458114173357429315448918666779098019890912933002432232294943481763786800301053462680786179596420846706829094933077595869025027411152520017319223495145782952513953632089938511460315112591172861304917059516979071565059444378784695129887056298807739893076586392747383780974783113837880102382067152431247787242073036494846219203842947267514145665685176281923936022818666768530578897654531618688807198933384130214823182413406843789374858885653232912481579683058541502081081365669613062497256778834279403078650428583370295697790236619033339911974261921257563399145855199495654395477906613255947612282722107896538381127250474746665489459728256956896484843772301136681747157078020801584386003887756320120312723986882974809211311224063444510312729780588884223508316643973861832356431486915162896213425671935596413599865071492064833462237035655566639209569167496397522348846340960615073008540173648208811033061354696433171871902138266838684478624548797984355288169309065353544621849205302345307870470169154129331024387094487863065565393138753036640107504786355350513355410629156886760334891725790961347689842990248457016677372759572801521645101758180595349803197842688962751598077626703016589721967321002447898458464048280273787769833059523081024682136750170385536227528089251936520835518389237152238717464298149137949955767315239415799703055603670935217228022333568564481372950465492386165346655859953418256824961639880049743908747294334028101351794995778688762101290942738049945031408556801311054642543769498209306663376613126398200276359114497749911714430503968718635621866591326369284382637789462142817893361891788484589604425254433579316108494359248104070920749795002199908872573341759437250603772246765419056991761694277383737893127902132794994941456778111372520410506733466686249307791380259981617471822973132559757066146521653941038812215560481272972367413346592181037484847598584067066025850103433626995130113328719915313905089391344727936637931454918027819057159389958038179868655826997042785183729779609629576457614920084446396792034921344923476318665992556143323941377938442261141406649901287992763115700336357380324375177887065461825101185648640443402925062228095468394345188157717090291325274488897241307553072836155025018221933804098382732379418372399967432375191760384275489767434627944496137308829711933311822405947208058500272782811569417209719511916118186545064946430836265092095381881795071159477247459548382087035560236569199326956884201374834897622113700419576620994447852597553651728627004817487140408242743426582459269120152017946701226755822548289899506112158459246801146526004637923137321116039098720871109069673684602308909672676524091374214835612906500309365026560387359878561313401917675562259042444895325079616866002224821388060131250029999391762035552639977727872052188805572781557459603871752075407346311843067301744620217105868892406214468229508387916284774075008692869652842016974960345682076186891584995751315890109194013672602278116098791079890871459465653349843357150512556130112459104815161891677500755448213824406609494719004721297967894562259552164756822861902727762526654327387267700114458597573203920399324288063357775816335163687117814011856497439574490429498646579123625667197416118619208180747072809445665720421224209916932146545113889145251730679806492102060025184785595676060388257893862496187812692588590050906490230853801548160983187011376617155331980476442151055910761609169085856477056783142774122717232266990209882628086117654789766182600634373279006779745977439868286755624400139101310088403593928177103650055513725703871595790041089175347945960407279775012570678655936206942957744417129237043739397615150008943204435334032720577663061163610106719122033119421320229870985313404664214159327325040873470138948888215473790305876372492380982417998770627243789325619864193201550727788500090749622226994602087075345557108988124600008629530059569748398254529014457172364794671114408374915355808499486178003395686482176157547797063603254836952274268014509409759509478299623876330454857479291363817813116037670360902938890108373608469184272250843686873141617936607211549618285859970388225608057859326899265540357605713772335842864283082620741820750466681308788058833086345137211891592326158525156949495161433376376759657939904838045752367942408750295268168593130590432871959915518466789888322902458404682850032582342390965501360985072549753997598415789593385142905516019227361138210788637322847165897223014743180223071423235179633025009852654580657183192341856958973770423381212497830535244654411193563037970858179394416304914443265944770135999913399406061810082668754812522935593823284022503237546306984057647359565233373807166931503362778806456578538489574544202393042982002827201178588917616288776620616623837830579284318577087204335629718126918477421782606547672874306927529335067760611426020244980002920210777249682821997051941738791943446497922652042902442970010580662642381524139459839059127574059830921200048143505063450225613911752367482192401471656395534886319844944283359944193955187376186774167123142830910174708831876998236044348169474350006590127449765415472938417120546087923244313231660841848036665845362579886109211542767778134986310410476709228444341579670400179130457344439362801190913103084957438375109824780445530412991420710191298906273960202638380257451751929703614861114221769321432025704590708163980168539675084820798397585209717889445875764055386742600204213062647506361843744964880695346204139206981828757708888651170380873885274973777261045713534347055945954696125449365637221188182608499842064111302528933483624577179431448923436844739988986269027108037556935204657383820078143587504312849302167962823820316739578947517783252671373592138199742277252305165346122901491195351366539331249516920755577630545239189486881003036907540056582301451147735191106352429125827284071062968253906254585033703698042330709401243555374171697899787315658740584674901744562497908720418523596856351157878628952611904790551697530873915642865653262426668479331058780308706921584852345439845565253213077631171134614402919051405458332686248024289119694378469278457907566239232068922339264213976320541851464584496428063002675032201497412107226385999621879854871899734688262867997843412622144236963183603408117330809341871018007325301428732572760581604506480781061920439279735574867217970559067353566387906505725693879102291672951288733330637118373963277609000213072397775899711559261728270549226370474972983036429551260966014225090692386497520805340959236055791330806059948395546982136049011150191987388895793865190300460193255821402606001047958252119706670203028679467616873517982366382984514176754565213064727975510681876182624964990003931338180103061981920340284576897595370256586034612276847849104934241921853777170253034893133094511852313959018681452380559063444370899711696148406178132982801740288621375569089730969237667044640294130614917823959081464978555775546960285044923474367686689244920248654675921654663471116414905498967647637284758707840928331383820689338100438698018618239900772156601834314314145356699084449065012888619619989624953968587150974869159873433289274260461309092450120021947381896072513058790892390519081029685091662007451649105566827756439717416599343593317822780587573434514320364688765954724411885966895803941927492002919651458231359210320689307043565790376953866187791508978321512602019895370690925270241314596296656321145340851243925274566176473848463421686141595064816340922614355065330567558866634106516035852805227672138267126109628289209492599114824043144535238359970021689251847951658918902501529809113958965072732678283739750505562821838615881820545999412849302482898682984869931573771381287036709725053796130784519240891526421612443221504130201358930872206991812395193837400035183281136073241157294564761105143425239288839715410765396360743832851584594818139759116808005315106177051513462709873589646083139706831055955096916947769970926552808389386819609917745645721361200131421603660537674666151733250595495269488462924266787303519506794726503849913415489373047011667011235334374099620702907311150960503248299367243555578757406065845427338685707092991574272906101710018982108944718221647930778518948452541088281466449664474451362519587365290953726588124786932434120744624720433193539735084612942948364725148885723743291011281024853715481405802235764535814834051209206145284903724507154742734228143044248838870950094167727483607554495134636616927721033949597299634336670777016271336409819425376173385142454816958264146413575686964815346070026474167336641022842631589123735076210585685976839403136264543132460533459499695054529066131967497019756340285219607474079978949142663527630754000497366277450285515411670231976678638445382942244850120368415515144379074903296460202321232754661496951463676158717001561203411045414900115862477726760554159710934728492346093062017051989072264783685390168779608712399394064006021819587891941717966425741544735831347733275676541122600040763651694491832720559227147664054193592796189690650305109449495163886906092226587550696792761762888000492939446716571815202491100389141862447539774945067099288255430489225615688744734888003258200555580149534284192278093335171650298770174350925874663326204661505804069994836868461159522360416250301200836393535738501824141259972391576864494882582526018142951345233729418384110528853809943345145694503014185517805516756684425957585989518271262143048568434216040079193087743912251832640689103034601171201221515439863373791489636903043106105135163553352759606149875287340087963719921262656197917315569757797094632005848476490445964145658043502107601026379148739792370805094097672361685674831598718490113110387715586537808099328107439755767978600862464225651763028838259948777221320060388900766563797073043930256942883619917167925704998423987825505932570587973121970754914659118938196293936989371568822908625214321705969781372120578968985042775330183146602215214494030769939161131093076406453062408363766351419167535942365414018680246701673089924292505573900608226638009965602384413499882954203096844255791419166734506717843226785978991927010935321639089880957506397206817221327486622585402736592654838767971053984683264060373240560765051164547943194214867734066196953492378846475772721868875665177455451050429305245331288939323120827078871717793785718691004038816293214756031572007088722166173475368505300644855308628145168053911935631493492104051412322812485655419028719599896709022239297298974528153001638037910554949386516699614520288634592621212259200959872179679667048254322196749107957734921719296601063668655648187687538843700355036563078970340626451618245465926225723060609790818980909892580735328705198145400591895272135384999816732990737704889846489310559170992906129508442132392754767701728405726849317907759059494751805560476611698966476550108427334740720826185800965714817280235169052992099687808778176129336807176446334179904856841855304548455954122834628644169712741642031095308870268411141730717094117543679238681938142916340843664528469350473042531048175715611114014809009249685146358929563186215279548156768890027947992991746111830905352316676490767268761950475817875165184573901671585305342057295429478901936373097567829364829141485796006531749244571013069677367850428053206467602043285944892840030924910231343613481379317505284872469200623597958217391558394517217682283216015577755925293106560854231850451427045954097624185224559095131049559688235520041493974802300378857152999633508327770715200839762769171948668508789676307370458769112950410868967020753668533644968827422968448515102538878261191939079082500618177658234253485126278196487611138100461003152726385492060596101238954558038168347426607529377503274226998542651915186785756147346703663459943205949534745705538742408859454674709720488971809266170765480525563512697634157072505335614988373088913439699451743020475305761891898547365929979669412754331216654023863152334986081290407335183472997787173936392191421119381963759425549626126221867584032833510185834227752870758893347962854336742676427604981464168662280467429343915262868878387142274719889819839616082107500458637366488350342483187339853570867901151102740747552050462858134885146924258075056007297626720991836543848818460545449834350981575930821674031372424566585729786081502612726889700311116278202421341417272236403478976888464539622726804584786675593986034116234055586639582213770888729789156812382167990856109290354145460352583672272580382659972167295682732308425502119739066541891593454642494607595249008960996974385920132317948325719169711964944066152936634386032074757982656722675392276878141418402540740072370548220781829039158017542025739789132564907990622668503158378164173558378258875611109223790569425043850588300990821857120132077273103867887494545224242494393184941469548266500367188068982680639032592260987407825993878142054861996843772998037628729255002883330669436109989511272028036761604103874524312351345964514368936757827805606339183671157029543525989231142068508086073296206381756674359624007391226811052577891575631088290824191389770987549779166577691197883231899946124849433986700008547216984824792665789587696955791144397360165116131632498155979450563793159949047590355722500004325765529128935097543400231767295474648008786919200102465272939178199019211245721838280787913885633068322636648066312787458017382597068285602923830337064353750123918815126478965121804524588915153371085087815122695006559312218202789474353169211847712217035635518731837073091695958943911787019661314058348828721850933139538976103798372012070045822128838133827032839658355725343197906232582280194283500920299684199918017094229357392218331596087841538346216078052921696023549217786478489209213506176587836439481707440443954291013494715573866578267942152662897717280989238894954506982563561393797854743848017115667979558970752433909596535171022202984010189450741163097462370098671766605006450292920278139978049834100403660034672884037827254007158767575479207820680266629795776808818053020232913358859437285450482868443054908275285012928692955208531794561129002046231520153446437896393058161597587395213326903575119494498434154276247066090397543763670972518219954149201077257675354100531781854733825365231843422220766543230831606671540088945430703070120966114528306290699361732006145577212055190825475256813625254722047433876686846078699433371973164596668101495358870661749907543538676495062687817028672480388596125396120004864319238430771199611903520458948528710197384059125652757941053273805303278147287826462147844424599321057575522377154158502045655085693611396242658365962523148741465793071195265063284361956095972543033490444170251286186657976185883514157565200383137116167682649856029719870151096677440997188598871111856819203778592066685793952968365861198768577166477979391657076242070274738320788488210948352144026399229778199444845518317110436385206919672036538633333449704626376431920999230600746086728423122113394779259806775587486731207612767122855158090543995855197434417894146789525677701418423221180713094777148473381436827788883965564681434825111195077389126018868785593350788688630551732823878312717614021893874897058354880378980742207339443127901442512787966943565120641223509218965153985657827612532835137633588038576515602349592256134134933945092076128012050932003816978568527150133146853757433728403157601461472945243270422672719698908183375077521572509738930259139298652877396241331179953291073634692752672707339103929587294808641486059622990846066572182742449691176718281763577435450641910817317034325402615048510721598659647633822779539043779793372039633755946198791889068200180725545555834968964889097848633499895090012079520016417553760142378209044124990101751965339699783107176375784578225242104805615852402393932777143657993970357567266309761099514576166227619533236012923181637933080003956419129526026832165288449049777448980548345168865485100776185624380884838917167144158013331797737756127380329220651793640987954139905246139797233006739637097782548226166621787820223681781566938291005326089394335169226270075100887192836314625867189643931212046757331732586434435757369629158978973960380754079435434394389375812394796626738395274523326203647368997234963606088180846706783926628619761174545004099311565009201209430770218024685686353766686865606444249909537383325898779549452807294603994103913779470257883678170173861685598810075914276850247517195503344766835969988240035234137541156383238363092030557078807920625974947730326999821331413843893846663971573923828736651208102806506178131594521973870156053339301051016200714369738471379660785477830962472864808713989203312081017314220565922690533314537670889080854592033969183353531195559130468070085081879130343789130933322695523267415123910170302831211038453965586942751096956353075150107290682845488699733430645659514218772717467090267539156946923966583204288811008262427186729277766844705232188829082336164210796110909808596251086996646071903477019180351942396355095171959555127005222054984752413674552987727823512188454164685617827432816068130299577915846937164294020166131302655712526266626898379081810251740983009526368059455962853587757058348365302507754581669940419783293509209183091933280021379442978528503058732149475112187589641670215846595325017950760031656046128311705626767199352989413868731395923533973865486924353092475102105502295633007291384896495501968766176149048038495863231466295235232760512199964577452026856143352553023825305114586829565867975041046915863794779803974975161557118115562062116784980410637835864866500257358992027138521752551395822909670052968908236367976682437734589235289472822003574382599688931687348861964379269443923071774068703099097433102009244274676192789133560367610232946240261570723455699332616825528092206673504652873190447281227899666881374095970071095965704900529719709398285354102976377054104434994463751436785135418567617661055313684286457416594102588891604070580100071850471098331785959306347725194066087354383694365637765794421678525943858922975038009706560645538343645294499527554960162518728505956330232776074351179241878115834443403603272258032433148155428801515857918066046512176545578434073132186542497696992900390908535919508740238611658374111074566713069145019609635004905768080011168085952865303772360056984454852356928157135208322571351540489733400003711131663070899014940469897122999300692224339184632351221293778208448684964342934958953064477849167951306698310310846157472554031628025650078677027931666367920355493363589739777491693183765715603100915842551337446562065491607952313954212160048902162368349315451615371915502677543480630858395236659078777224989400922020472566900118177973738639189962346317127271766429247863593579410510561642678462185314833786854272551887639776343666038616150589404856113580890220337200081837909677966586252384862633284214850334926479441822859291309286153952770043759797274783214902841219054188039996710560328678740166483646850548047965953335604047293367457749246833263394194360459533342549318938348421393454114689404389099165485633029848816759549192284596840368340687537557824369466493932035166197874651712840559223612778382653839471308473607101548441153402377943911095094253819812986456770104224414951388467251010322726463028580265949755838693738411630947389137939964005044950499442996026303982271633725469387031888678319056241332444066517241883687660211329011743380924668465088351370419996345151588944155811337089676336960070253235863399053338093426226787321029065750499672315182253085389021329672903686764758082401612428669646421856266228335629233633071058753434817672775817297203587120457767994853913612538037658298536997541272788649512641858807878764655795588605852899259296109138341194248141209803473145318530659080667623419638074750393732726403565889850864968049232240679853793297546458270609295596888125619103615972661253063876174894444099582161387109767352892232363158433986724401874124621361250299161283490943217114459123817603324448447721602859353369908829460518413087653647848248573531954744946345658827499647632514826181232189913941869208427624791129693707788446656310334965183971694285129006482338754914455764011773376104589361124761822979446157633017122120042912676601599119208055353200062497046172085176836924564583406312192876811895375842656985122577933913797258093594730922016816677888278068461896450082155925216017285779188787273055797215234428117408840938712045236845943800216252832344748424997977251437025690857997155460817039985121481158358043823550272770412757459139110674062594324117770890936385356011782193667205688283544719886053794315525912120880050775606868434650486537850366399012875024587957223782628006497937726623937678846683693258617545199670169050611257840460816369747217451938088029847695815159149082501715327039400165591298142194818849395478293408494911687034785959012088719761368928166791105660406057341117805729776335740682586056465833289896211329742313119185865155995353448550552932911049823503919804689522733778667772309570345817801392185306861025258129966605145846841264168642715185504874169029995664634874229408146106748662079192818447034973003958182565209554437038766978018448668486556393447036065935360421975014996213822807410766779991214862063058483249136968198111970171394900966540462427211630425709221608678799199033606127084658012780487620284523581700707258848901282861673235839168658698618591278359666177684878764806090564946941966656185750325906567837176006607530798118355891446635566813815928178504993313499491635094872425291097155278456692540553410583487760333406114717024376514342845060915802183672854685297484171152563229132710211411217099613270768458411697549312214106961017861061059375681047471957822193363478021873547222136796167149958009736302161457479203071396437790714426883862291968607351328241348224885474165554439761817030699157769361451725463397416072727709137470774312369159644953028125231315018960614580536928594932843668125111448600127464886558677604389708383664922604812794648724509698312081312807475101761343177622992095094279791039635159541007384137203748117421450860297331463569650612656179690976703647163316435276298228136813525386843886109256748489675383269716299874167162309479479404243892118413713456724659557978481868231005545186412865990292802646467075367199299601067016456518130678046298184465635393832708873328554486257802793845377770238101627343862430966520966229090226933137969885658710301618726277267425507685346528882489999573196472823769346936280372725441972768092039675149236633590023403077332915464017193372194920536852862407815868573524987452344040558464778978352589797369457710767528575005471565124784404113405708286849516725707300469958335803270391560568361358542355082845240514601946460251817749516209267250075755500292830683883558269531430088946112994972998144292443478763142955992599051839224836179282938591219973851271555725891600645103992378334575976289793030102166091446133871092496288457689108244244200864974129303355699211896828929066651289739300128805285364628818615465669645026854256098660431809240782110567453742708088332947753861385862042776187694894047977093006244601065696501519231708505286058628597221334757083845861746147500219027695220975216132410449213745140661987359034325078388434645254012404924357294705744109783153711223559997007217934670993319553786705212829967648410004691225206239811764649159197634378637199168152752181938392572309057772587697109772391674375720090243770600166009136332760609899439414844905249195146212382960765984934217957482767165751564493107871576035973505525416108469407377501535471752438456963786112302095397606957924280856837619418608270553016592817186009656620766422051034066240630764653004774230964139444606915060599676777080327194400694954185391181148484096727456511575287664431568388178248540030515836218608905869315396076685587512571726747856711345620151094622938526980413284155090623428637342551899432972477878404199978963783663712377220372440182597481356592087091897912769249585609164889249542889982137857617753420296788429078021258466143934226332079009963302633174708367758935498964631778659644676309451037258529045172163247253383874907435549960836980261137886745354656270240774928673606007632586720840314933865430460259913985574193355964844860398565425520505124330292557762436491514481447467657270818976976107236146728947126310227858955647495971640907469956724566378973166527182303779193325388244297551799842831327785185220370382681399910985014211019436372431497683952025421276100728673554121125136486856038992567236174143670238474503391748420983444551897577332694957844063254811492286812242014474726866890217899529509888264189682954730648480149279154174732455106305508394764089120715900490344865686947120407106217175811579784747811830176288271397932476776654502134859975749297117098651965964956155984249262753262864796127048345346179129705126931431515914148278312346835855643773146244079041197170916417132055036757476315257090359671304322363954306376067006864549843466769235833147186953969041051470060756565950459727658942451676586724910902408861474249491866240370435069826849311466528345281262531277265561190231919627197519551514833937092768768690127661708218623812438725524072279632807262201495714018128415951742274326343703885165995053113938572062735643943853733512105569517278004856344050479593662834714347822143062326003876696311920804168814602196387877463049290388950002477167117483707029570921973601845770905536148242809520440413164952723618888630933588172760534050521361814236590122638077964989607565736486307458600972633744196581421878149740263309630031494432027840294309191044973867977433332150323380888089530682134215224553677516242553560082188658442096819898860106227689498804159702750491219372862788631506553618005881308149642867887788530081567271667803972778204392116360005706671427031913886495305094568611015983366795680328461876539030578314815289720827146381329989590679383985312531399744632313433191220835645671600437808603091000807092720405319154016595964769038418845690407067573267555580463220870765190541810094255913591069958503275506910797026960349983399658027984839239055783455263854340453336649981212636236697908324643050685270999454661865914663850743441889710447945340062515078372196075303657550466457584023124674433454650304848298228300800289343062376222929414540603994845273104208505889727690686271925789608027544022639217601371216110691562321440945642658993996972086826804478415414005568136363739539410790241623141388135059341792605812138321348343178619455504282546587063628040332377456649717117080137227328257806158113139359974404434219529362671358421864616108642396667713353760310423813389150996909838766925123007563418441769810169281360280897135838853153374153463143878262687504490914472544690895032632576327257371298158179255925635382447560086676156108856655016966299343421234869045718369435668998510637173239136023995450423261196385270244630314098958755234730793917169632738155492340214702212144778042253563378579221604525705909900813228638879011425183880202592007315064087911422632696457673270618916665949623924383484038325338454718654470790782107748594974912989296395181019507327654333981766988904447345484785739746449754225251687406166046102563476304077763698132235619155868117677530244680010393048407829884905222350149391548553523270014572338101658096938132699899038676630308212223811805168702813405296946980825978395711612390367709790124030550413955461097956058764222126345150407439768419400918196091803460338418583736646031278625493997157341658237772338748260738054045300487580067059937040814399228224456883265571455174396209186664990269823410333002809388033107770060954947304450334888667163279708762888345692453537626340708404440549275798162815427557472558003113700439578941534906987118993362800617171475207941417736136179364473875300005080229045717302395658235452965528721691820458591587076663226313279537845717182655465985451476080197107336940017900249267165251827672221124557452349345605848825681405763670258594749516905252393024069190543064074481810377505184764009378998794055456874064847914826854763435370678621766100856896562061596697752713156539239124564051399736380689820526058098858470749310556517289880220431115001823539785509500734956406795271253176444919067098211774082875914530967619359215663803844945546676282065180741867753692354093406943288621569857102323237208880973133828026037834149482746240247985987355937106100494129469806125467849694371756291084917638991772489542702285423415803624952265672815538685751836429902916129949560642082460837427702701382697462763799864935492756710920449151712096414689940393076433349525280012840375143167793344698804855450428462699266668158338534255626575388552741744062208035999050456209646548651518167758027264186654464748086481153802333189790462640174217509305515093683848419416779477493218633009755258749334979829177633979807088575646130768882120451841930951943298421460545341964150549179715312492733551729097878155165115802859954185795546890222293419909508588233316505680757055110151650596456244425396174756110264182740110608291471634612476322062420713377943888833704702466314666304647155446755776429341706536371541285122368317278534670765432835950693096363245712908555154542879271420527357039895716562622653113648886087994803499234280842104097296597992394074692632319654849151972114962439005753457642172201697932469927423240390405467059210110734343210687454159998764542930669440049449213294717636831749225728609832050871720069497336471049067396580212381246285404736942423456886061693537540144364190995473303273374533147972756273078237074613688131235253851168242934838965522849737693641813512053120161583442139004653698718344479335215471532458743710456422565266807698469182014611731513282311022834319992280862417914353039284604365596703984862679625669139562219955558683401123630839032058478794513389955091753930041784363800678924572794782308935632795220726523770419294407393359133153726559248837710166114772013913896822878916511993210888642988870160159883933320316170260789519881375594205903499908137329216597961156088126746909994202682438171770180084306206497998113079024736168843448544989106564775063074452229653177227036613397596542551555584548971571456220684880185945405810198709845019920823927922132662573115280588664617188239219876841739732158486226666476534847679859944112816090483081268874641368152838457365743653277286882664880920815435731073653207164836150734660708919678835997181485512620272207178078275654099792458092087477433442168665529963123053971523022980579999719715415467547077728495122682135024606235371360573531504608718194449088606702601248332729737081613660186731523533202016908593640307111743048027669679713804974048207267506003294597590725865668776055101598304491663480120858568234613001778784797981336015657008847170268739536512822671190073691222511011786577452240624986732558155790260908383879621557477883059619864344264243635450767613101732517295668700875332024544220463333338102255823162046578335250427717205014779182199546271229656870009320548460471784379296883708113494444714869145292145687369941546906101810834849804676344093606987880979215115641957403757590361925766498164474712538412055620240905684794668710138667630794023764876424399765174697879097949270712252165491416879340754347579582580011092511859346670274745070802093010489863368130938151557930158912008447012758042836203410141040912192135832381336818617499985156277985190145607351498484863347946994811199680288098123298837278517418454700238389524059952052663487932771015469807369290992471339899025937946208570447519602326785399475829536057184543860927416257739709368679171176743351028855973952778278486164799844300140301227023484793565661634704056363348188205733525266875727720216589547539958282726117815258336430296235438050186386962699323271165716184716363991730283785020869966963910092669410347553755942964030225414438994546901982890656612225830166467697124751822786175091160458836626528629307974333667580718460242872630276633351313780847759277404305086851679403143039038775937513999658809374964235852970371236427424917323311691753018319405817821550582347811487424668123090663816632716458353734276142255078173559408928907798991885021593511838188848850536688346154003704590391573986914278521005850351850659267944897340833951558915365123836042101015242367946847318597211488595382520669324426782630169688692799371938926562458009044117740871658731013485431042875763954915736439522857846413037749480267489718702675463341748657904007710902533691395462379019254699108311569211090001926540416610639976915717058881196073292133500737783732023045297812344005884689610977600866004229202966138764923773577011939182608632312031763327671118761713394748793485604112504037175306565865652013585574371539216386849616321572349081767144128287621006035970905457716262998905497336900448681969612993230583101987511319137383181619751019352939070364720225961505614275885981522340738292000127247313329044414489952618336744259185573913518777895600307038327276693921032560197793900468613530094575716957147591070537889581155707079145486971925700139654510192774619626195479246134669485440671359032744317856627263547029891342538496540726487450075533526261437733092974473434854194797793818778214609199370543047495418897466491584703100917199213029561933916855251910932581604871239028373650126452943114133108664567696634600524735770493962603923439650336058747123158307804213342130711841499970966674075514254678216943767136248406647318117435396441907932696935829621463992684937982579811166298664254075286463192466630013851229851346703247775671922793231464360162429772206987591871899893793392429592426592192394095316558333307932658558991513366511952681306267303646712719198962708122272828703202996062537644702040424601698176826748482467710245088490029996932275625375188349417708079552762634719956483604309811550767729147373701612953777171214302118746363530856108320217077901444211020069089246439164013499674638456906878119188101860594030043961434582350138841493269315685180341907523015857167202013996567100913911903363442360517666327528027385486241547353834137141254491397609183553945252436541393653517567100869214314740328041406032903265201128929064200766528725338965798151199325364106103599153663017361641483814241725909905636234645427599421092424153716115744636357256891830840501520090259279815220738626202458909091530634399530537189310050056081067388228689895757064903739312827944436770675870334861394687558427133696211340705317138785077324380886846561871668134362309102186961254993991625937783443234186138599943201412856147561842929927760463728879988373460057534914396624000040333128156731495056682493512797476443162484855026515814626432017551553757371770079865572475969933658122813374575587024964614936501902578149561281645851316441543066376313939146914559245807117643125523066951008671137603514224485168415694150579353631389522734396195660281416663453977942176903607866531389528508080537239021519061399318277378902594582399749475248063329024293490352935469173194817702629910308991742851721607301117197422512319818080443924784959098246368401315589881594656008143375592890024052469941421705149205011680861282354131118717817838625955934047391141342419967657082289692686708896490208346702470792068258584568039703762570995108321643427438665037410253745318963980791897742101175674710509810254168681483874806493711359199447104849056877140027276546047222677602346159368705088386302715208639843139809806815345729950602140889219783910638345262677235841992649785547337488273859415481223796452127211967326274150305234177844413373421814669917919896632510219966800690283891299556389967694002089603051881992125273788845752036212561364762795619011991687396249717947599685694110962653937885631957449913223197068602540093204502061258352461303719234807785701691994180972078264113847685108364732744395587982683583613065154054040905897543304599868096201835548573983378553089646968296090302296687033075179609550357385483979101897697284481531192071685739233182068914954066618273076859292519484473454643542961851576014148679260270625675871835232295514454870008631070711422228940898995905866823861825000778293098331298025907242371037420630871120930636957870569184485020016565201372869917051313042416604554824278892846305991577512505417666672622850643654704696939966983268622241974573993344408234668550859365920436183648194608907460144654044073383203966100580563207633721087944006104438691268520962740305971177342369172972163748065438505853122228592742671819048166221800228003974745273121350787098462200805864078910870497933949545604431742358146054049158220645092354025426315017517795769068167114661513179965516514856802506098243349272119138777002448558604774713204588418072745759873141540341279693147970459430016947359920405442593303059421084489114149131312156722970064167222532384710702863584057853170540164164446996257161144009457004585942544219105711473793118411010659377512034965802826534021998665276809560099304855830573244582740139774610178164082823859440894206167294805314291881076026181164680399734933737437086410347847794776847606543247031747862144071851570062866343855494955528456642160510498632667938911092391626422373251080753838637996980107388007692051694030108512353430257675790698583604200341305752541008978394272745071156517301362830704888588072483002813290219751762545521101411083579438262518070265322407146112711213405467894830152185445275391163851769787458023887751575584490484907550469936314395734993519564666851933653692912687516675602342251545972783321532868647574881796278520529154368403731527744397136853334036564225211267756388567677692501160371632188358227429419790602796592014294161900420369005478303483846822736827761747026283754859352336866140242071907966667803991557839757790254437674154714231553445724191065376677214902523566335616895821653579989378815968029669915909569548815165821672529239790254085704791717433174733221053654809806780720630554063904106139903731558526898586563424948176448124270580969674130980257750635634160913703347671724380074282487515481451890621455457490058203715092736592952709313587488951409245223193630366839092425192574321868588868162691093934624527608995312961412401878774558829362918381197916279073072419389578527627371892358702527858296301441649548778915651598480734900440265432925166352294976568635632868762081102455403568859685753821019280225345315968759716396477642097169850364868716118666532065001786474907911742291975969931143082772328996886607198987855050086698736724655801817732466546533872529497776678703738851725725446953689399052703384077407188189699782513532569103859937148463957003597254361114205972587184710007057052030671033240728817074481191941854624059560016491851637626981744848580809075283893217133966407853378909101886906003838176005214053593264875613457231627282600106308501211397014780467811573808329771715854625604836632653120311822027121244512338131515871876357583669364295740609290311435960108010057355476432634472143719098993045389275772402372600836945539637808592845516763432444881403581118511304575935010298693937474513775420350091468068168271932797795545561190068652055148160098429354681962696578131099215742650318152192848132554292531571710268581893023876634181713698647794565414701788297908885627809860099261499889278331294611262586564454295985133361080391383865740712381406442140714582534039989122520719685690636604282494952580230515584827881405751431737505919816810978489099107400255954676863716627162911700086479963475857798744882652670072049547707199113875785440277739795196991086891504820291462752927197600967643424430036479585465316319777008250874916889679179400559688203026972451647508423996705193631267857846266768383696599660954551017261011578731466117265762122991236597622595522631748290434726940246643540807234441693408484106650916496864663139479552088082612230646214561609048679787076875862446377017459359042305336034976159605432276046688580865998914645054381080309097275021684820165098376389089910933755939961107760208610055737164832049595372361883389982513893287684972300226052565651254379568277912524479300563841044505793590802523712380838374717683240799640842049777858517005939015906168244604768719870581514873146515845568226408592533785785514628124808921085581563134760223830186492537905287548060742852031051757616342722683174574352006949342446331098745931788319341097981567123029968398704100242795521524293017472303148809279677841326393451385405740684520608833352396951645595038079545544986907465136828947470499807099540897813240623403016842193351734761716087014522890043322880405302826774892803840226815979718932982997569498568000662201676533957145252358229422362131149943854192686500686289162062307995505753772191274900092873738685466102356511120770165601025817055491419645905075928106352458825626123476762751531850255457016235976426077136723525765571520952871849531847887342015627033642696786997690329273602321874881613220129345137251198792821980399193570994084972129581970189841434726105501834135831752315016664114784562811898672318377870491177002008069854094637777958595064684530762879676513586879121035388773478528390777217672481629063413204612318664548377022656425367589579392210397886225627755479575362324111580336580491134763256904533096188810059426868833422048565734509433940082461639659782608685052390707020249573841082546779699534803429309793995805097672146580625706052286910078092147797039698371338731767347664658525011723452528899661728942820640399251332995337622085992670735251829547672187223593184077211835413639755425557164748282872358088706778050047753668072040163291903593867120106956947758909579306622026177256554694354387309041649843199968486140889394602104453604791123452541948610699300363386113354403399487770194069150901276233556529641713606580084523622622454937284578581092118156113049779239060070580238850543853932881073124051800675202759669996070395023526779006796568795984115513066081571313964499469562324943979078318749715897707413391047420074594530595697221552437742315325395462991487388334680365315144843605521680614265507513004834373963365535453736498019823313863087521423327591832296017521662183127454533390315913344463744839674868753727665533330888833635660233706642522012440666206173896147894202997892752184759906032128198605402055085157327987514455411656042005010974956247875273564697666973324363170362302309839175120200997712120198551915000276834222251758989448903147882879751087564001014797227999820397044819305413955127768746882992027805108624799269198409435429639182952000658921728737073228198730904613666471472768985886018232415497718909283418503832103676255266869385406774271198255705397621986310572821334387676882679572755630825166550471036543219342844841408702113338555318880821167749157400261785673462991339314076218210987523882009301772920757172833143926002174060095201686941243094368752591825479022335787700430832890030407624519329717123200606310627294133206638793892114359036004770954042377335030611342725334283589795447805830941067889496086639927839818206990087184657102132940432685171564813043416541306715090404970088803792105859273945958005281588567622819457357737829464640647047353492151060297458266243333571227628773631500497239865951052722592896109381868403577284432893633684370011419633881965294197961100818815954232230755154745148604461500538465495868414163021493125865915183494621086017816865373160754644241915948047221685768239274806064395868242473436913285202918864579915484748998687628771095987131376050888584054254144184161049721845530358966475992444506809334128899893347060111226093342659427683394134413553012821712131110668689757105101472683761367527445101460046465173866545557581618357000595798297984502844253370941683452182744912343331369071068475698598925636693958857813433514518131166137321499520271174280674014539289036698597658508618501915896007289886229817978364871458341118317118272438433241244767755544381165663874569855402740298209293809280602224141332415948454403457645401293199246503298703328653795010231101234837210720530867106835252126652965219916297500571479296041308016393979184016503607787039671006868355367111931231829642436837386376760017024976642056768535359791328945437671424430469303354685694585236476786736728103431107365664028457752648882716370748564674865157972777088867260160728634080986044628761389780040596872252086918037862941682066495975645356527827648818066384862795483321287680590781115455114444524785477009781938802807058414887210159518057872976562544254371278850459634286740955327671432824205936890411434425058900089453699424023525503269428561103866634081140324349019764495702830283567889589573330465844697142582681843407767534755408552239709880372700201008231504698650080097735277443911745342438033601351598381026849908271049343655084749049801715605582306259820074558112691705965538739529622941948644919461332192759298805140845791384503022660029562082005354571962916558877155875614499412736332553796141977708226301225533417953792887391480770860505770625833305864334576459345838503406482570978683457752498192090966360841138197290615771252885442482570495637539391032677799277704507866971360835028580171771306803326383048840469759385588167446564001911569411258837127350129358858140398951046033936355404681095060794171942938022944284050026678676213898292572747896719944586115240686169790432797415061971369898240931765903523495193536226086316830332691276559747003094427086154098590097569813264090817615967531819297014402040759011672668639844631460238971951809053865663756468069353481995552992924849482028462480960731275826129819149612223630156947004249097407596343215028297358115474797100134759024990382544014017530551571151611133908764048425852491982021373219647281124992746685319263638168200431700639446849578067100884546076533862859620749922845384523096637308477301770093688766570431741894418434340094432714725535132149130471795623925007428886753483350868994557727355666511252121673037489149588037691990575193645069111283130892268805602743046612298745727613840911398907773371294754469663781557663945760738955592125957276173021463285089872908581564972188723889971091759917673671783239635248718842014277734425888220194975796424899616778842427377591179739184881006398443616731040044473756369917750967943179703774261407176896738218536566972777974119659071788627526757443427074693280119433993023820297531487630218591295704480710243521634303520077863909096786375087871405454816628788470601403917222702640315628449229649265398241887119281472861800883246971328132714656423477135397794767191213860223961639046258783494233115487598449084636627092910048510682294163690763935428651991139569685586146273711336272270325235691649015887748833383693613034075282483863581674226916423407929634059441011637235694507982530767534571038033802834670077357465422528730400033019268535409784876762294782176104092643316161945316510971220499370829542036431016233768780081284587928968394565748733250069702065252636615172655711328584489537081870962717845161066906653344548577898864692459183955346767774827001188256600106864511283876881315660940331491447404789516239365308369785545618089724732345598581246251044155353840175576494571019060235954165971581790438680676334225421275276291540151915448346209566156546285587065021698710719395389192545723912460970823344426079946172018028042869759074906927491451587171250883333457246943805007723332027908191496048507110611500840230713665114438220047712239663269358673943493578298276094404391089902286525095156269975611830192019941820656716597328060638852670846600451015284263809631280769317302374943359297275413004518441979170194073944663593213350265185615456150180814624878532787300198743769982892828350504453394639144850030789748566150663689806581643203948166096387442206647851117641606347842971415194396323464659631526789310889062257391583546340532791398809832887651894653558141355639780413281131350298623729721283805294883631052098856821991121789349966421386790419733814317879974399847864385017881390777368350425010574754670989417825872775687982970689331611643814684213953615148652955815463098040412434984836307368697794449706567755050545458656224925384357313037396951447342905768459672598113913274788860146301943469521154439266239523046492849815064274468867974249304885152820127093482073144083701819240526285331485675663642614567311045397809373728075910340577592987399388507060088924048589828670002354640602414524378029839134979350502191266689715246220344203215863517068457147662720098316855186627855812441438061364393480559534055275491516487494550388197315001322570855662793084641586311444435403758337963220368556067968912009053111480109504174097516910010001898582129120373579645941434369162588347295742403337102976808039913100328165660004262439141381691028859911776065749761302375600051894852759060555584891368551549596880809460259823462715965894594642031639794795514959484496439385127817677066949278477095420697192168669199318717499731911155835122388733095670921158600624514862418896093682980127672062465111806633172666931972789839969574654628051451727685862872867573762074965269563295635156117767162946021672365568782447703091420000046357897124495400703655259702839135787921675556740005128446285103101914978288115950848231226738138979232768021578481432512771851863740546333565499640398880287636843424724748528983049085724671411364023083290327460004594483726557664037540854651471633530140467417862262983290509918683668127829600429904052106845281452304260213737776473284226301015177423566295974530947388703063307500054089998155346761170148534938490835957322560123271926329934767202973106104178117575614237435805929585449522332852674596478297841875981680240484918569468860727275045092477346441379234951626132861999660967895189335208455109663291457811053778956722353428624100517897928285129673175487678801140306502977269417665731000241511911402740424746835955872240151835975274962708277057812094415868992051414793889312303884895263413727964352252985076036529498981399700614805344741842238287297546332230533455460409984519933727628860172769688671567880504120467136057560601028492853450148038458413881343551555357988701249000315266601715191562870054365560450183225415443101288715387829867247534324447041870166329910822258448936247919004704917806987833979743368884008536084602347425593119208784436352308818674612530441451974918505519721147082919554725969306794221410479053568984498008615867182095984271177400996797768366200724954705329963033524056518519118187099863800742010454607872481541559030394087051781429070926030111312725251956241735942623326335580767655465446899039201114846884747784965959188122119911941674426119431421745529544025744019602511705233392235457030004044125490712531347712595093256937664758560413987660085381718982954546573730960397834080752671629670302400416845401429362370249564697441342270693032455095909552309034861251707776967423656742906899702162491112306789726968514287711960854857728929052584228170734602826878247059645724465429829052385359612211981523134035905035108807152153447224490639614084994211299886795035702097455070424339443091185154899202553712480084856434385462702068234245778200036685202889299187434780141632623954605409590046331865490292255048680038639847994518919491390834424423463643243496990760318601507193216297066492071542374803244155104187960377300050610657032561808151717935434214898272927306625821808129658536865131129505707048531842630043500238691225681857704014221453314214774436959347379129443229686221685346359358186798478126274922030502547776119426053832656969899863939339431571731510597894829761408339410800807210279159382500501740522374914691961150265517577265337498787228615015251792096507035072987622681267719600463482828008529904841641145171996427027228594561299577543630760826814429010437629097331280454313465266744871483135343786644057894438272001841715556868405162787864822460293717458600556722296712887709046815003377939257841122201679567304511653978243699231505875298154584795623488815872205888024804069844509517681365236730815068241992952967385376474074974571672102851530898372639093921928780339729041685293713739550041436973174407489972981913106934647972830935425352523955252391596869715323240488901683203026454021019707674347172605888755807839068263744821753323096823169900434467370398954428082702365521269112978212199864811142846294120083895081138390444435944051333544968922778005200208423046991840265973832133925978049531033585970717243147018895950250968931529556974867898038131569658406660289933347224679171841406402796171974957712810065206334777916131113399245640580056026579596685103631774826745361585908517532160856559732218336946853062163677389169062884067290503832951026485123849369074417170542401318981102609775878298041458347053810836613306219518412047318154944809173425772828247859876451504763055416602243115874341601496728195050598323500867447040207955898173196253524544024015723134313695999576209561108053662503231265098273310884630088457897459660151625067608306781995458775648976951646496344678039749901506628409749981636879233796044884433541254308740973187322015196782132361526777604363872941774651242755400796288683318948532041066924808684053524156000734333499480985066492940987315159465381693154406747554292583379879190054847675069183445173807077597236889458548035866022257827487726673285226577468232657600904162694740718653844039046080565339097890795445758662162243033527359988035779639636103576752617914336373273394531278346510679369698661665951338837640509414404713659859865142563572987118265881939495179173210132899765962240269112960131959307538193965586781407689484325213074504668667418507628924275819203220916743760885664298622576955242795937856526063758953850872067889609747839003562992989158158119824097010230315599961161102310663494764696935887606664835755344871919814762217690737403940729439704345990506164469797507139932056852720539105737102010363979567296014659658155225069287941118337970544995818190231381424001665055486992887145906929399214382446977015866076792826306332995771773202443877872283449738013166329649861687103757334056668709492677121438383578914456045080974282958733698376686316274902544321712651059700979614966798841584230555566440846864186332652421420869514347652635287971408556934738681931679861528224473021943885848471893349696772571302999375589483330628574619670448586280740831033044584344528465687948664508722631154295143608624539160414270036454018019632426154683575770202161782786243729419905768941971549951800535338074092212761947903672273176505103153398646638942998808435588690087323912750838411328314493099399362399295920935650489971571664643287191673667425571084333673329322843023394683812848639640486392734244869639820942398739376102161791805954639454778230448843427637198904745102924867849509340290178583755230759551846814583623378229673161870402448484046819320817363585589332110543443988745402073226649500379463762698521315974867245154986944399273573774758201409076548549765287354103407902080159775414057165695590421521649422956903551315335030497621438669994018135352965750099270382484571861917394668484236150946672190829970577266101113620463569386125316359244750544366661882362106941280874631817522394579783474639815768996989933333307288700063953292137058873974630561682558248618718292094293413853703869324252870269175238098077353964156755247237125396964386832946224659487016714905778239016053843143823670165748747692628010588199548247991358032106397857345940689785720410541493859369692893027050092599572000522371580096725315186968397994773506940583193941827134771757953826045234130671761450133708653989119571828610333646562783578370315257094096138407357604303228570124573388625142943821925969595389224799247705019378995161263528459029774848919848102086953197032851513509770505164487764881459164714552341356993445616594459137015171259423360705761815539137216801916996027162734295401688136955269810152529954742819290231198456186301082793222885270465239431143866654506475562835293520837847920519608293910996957687677032657658930537905672245149114453100450008426809406743537281614169963307003974162232988786326663583726131538787954816516006163788746497478915699454749219031408976380267943847841811523950300101723405326194659867460826607126297434113276542176267708896135231413172345117056345462335399614600372825736704574648716323372360841805820045503581045162850483281745855345670606829336844895650534177580641526187153984814537368421503329039854750983754547816328546392498921533893636756415622241773040605782130506204734865936859765795517334896160683320767572028476969550531837056669427036498436552613612700332782078756352832266294261985728854936019794894727360220774518083011542796841710603457541950628561351040599503256618866911615170785862893004292018869544406470837990322501103491986286195778055898360108595362499701652238743677641422604599110106061626151272071448176466937060702932245259123622422775888750699639340249955120767468239161990881706379105292766646079634371184832047968137222916405660633235332450375352136212618321214405943925707745349700333477542257612588146979049849677504994680594110879949978267154435594353444023441614041227015569284799267293873481155521042675341536673463701259029003065299091374408066223561761657586135795842591366310202308712442118447427378564016551512232064623847589979577405967364960566767283991979750320087773105870877111508981968040865096344758381859229865267713750792504879209595297970732111902540387731952612317663492216456595086327732129633466034584274024173589326551195753210183991662539188052228682994203788225796250536948662388391333538352905017574004953756361001993627262635344388158967526052653298145407492924422614442152013715516199898077567602055892514308137221912036572560389845946018365756768355881963866411263847973368048502359666019328984478476398172469986380679319878329329657439088882355895632585668090421864834871073446078096171680825794002933064383331112142394149078184529511610439948132065982207460146592228331166600636018756220523434032392038811319461486420006995590783846252180430402817823450880233761614199060288706535954044511308136234299380882333469622493726467136953642392511986919571436897152208813281986148475057972441460483730761769853948640359069712101263760349489567190691553719557380115005212594679122613076191481413179657307881548047407861714684378054029073178317806442031463798183690713946455792572353661351399290884151140575747428096874853935003421675409579719509221982475402721908965552893010548419961568149455301720535297035096679501819300060235541876656193900682469930828902645246439434958681820058203843698590480123776989586041746499971361247366706231639128861357672873169244905095326558944691618761504616874136099443800146964703047431733198184021687887708606822830901308250678275056094837443186486682831228967417211249976289586237636904687820684398574700129693075052304975673701879623443887552349498130309818539410852878349291552510930860756341696824289528189696885725122948758238960850187770082140489242481504346355597850220188362722617152907782297873381282417233751179688424014158386435126223466369377857516171813801009726696110401424462885280541880782676934589413646821189500660748487869573572264659552649511340443506470852154348521172433450516387857998024959615452361035173809728645161726709864341719349843710707800510330966643242628505821128181535849298669723285885377163031377770707893769710333125430767779298153012279276705463172060287753813424396666873570968251948346439254628068150329146928138788184440062382789361738961314736302332055581359181197600414802754991539660698765254051010668356906315694056807916976931712838324663535197925038173067281377619353491022566886687143069353683013626200726858694079226999875969813610384003005829744246988288509297628818473110354639361133467647986032297047577990119901545308189756722224442788334455234181551674351101299355612816240527441658925583407631659384782596023696084863786331337101049380326328673319831513827398953007775228119045490676513138425672761981939883475707788056692315396020619608117990679235748658799148420410526632322164555522997718227131400358955229277362182001547657502326571269344754508683360762741190383017624732893626240361948899241459431348195081673401854578950145518389972066793837001569307534160543900652708530455283070087761008419483363600213966376048142943700725757155158855769874814125390436666552380589449261351186780845838254505038440778879841442674109276847323340335666510120275225332505702615930914347893830221386432767267684051623399520194724555839592851597196336430423343687063931068830593382998666709364991092740992166468192340866621021498763845974701012828482228801808859826731600514641866633065549900738679092242262318593815357527246132802490102328632267902162622329598018717969177144491836608994671691895990568915870133889658552164298045014517442715373375640702405179117607201627315250222167133433672355847071686524583572581447231722228421892631346295071838398100853217298394211973139741005716103127345448682069983183004471182188327708546676769005567286825380619365023965714358282411001192245314520505843689497066425960361248588682619823906574520053701844793292688371811489070113267343545183677623742798360692585513602933557127667503933203638476588347746630368476260868544157181363069672897616526402631334452416687274116419059478637724695817589997379078239645148775470326249614006273684830937663722037125905624771862218006776102129661889446160446916547592036038086811591794509478481250008179796421559936877007153015315494722916254959198546649554119304984746598040797594001004468148499435219124769946217605690480779480171100340592514872752400089613448471343144030460213335233398494904861668573045887396467408359808954508840130407021027381721822335901929456228024204723448293435322107755811175907107568122220182623354663853976215728873163513963236199987670883454259572637382841195869336467482662065085815456189663356078082655672251982654704026943871050639428061965581195720638938100933782890739358014644065587679287815953988523357210152823182025165166439848553091783963207914124637702162583896870467790546304145678950525602631648453220213416574582413159016421778486389256903524024753151733401334107679250665675367033588344429978219272077532404989962768044460201261197070743826719604624678111364879404336270969950691673899452915869499749611853315725655348436437228697610995797620174086829130040302602479171453746932995066331752554796471483576860180543131524308559258789946242983079235384964211523496497379887346329092864389062579297627335317389830794562444826001437266306267149078395348181624479178318235098450443572661227081197560990822124131843032206291070248008817722588286301059645257823975012608997539846353884334091468981425118054513571666666973459715592728949721921118159185049180579024573406258776489593954061876521414698293442297885349314258064173929285723804900153084591985766581070813625025100205982069842436229915319651775957533652964646625074194157015548393334368557412314839431151065638688262317384373824616002861938130203865929173181502885454643747254950562550427644193052158975955898161204496470497180398580439389487597519359317686265307823774651349290679394231459855364806639893321339156772054163845764841011307670177129479115199656443427515989721614248355116794623345734032846764404264558147361283293851877275772438825369277597583770825017045166095382163616422557845607178051196735426598294544302811483886184385759071275874017788161288889143222579835104750777988296785963462989972178803734675807377878118368619906778762146326015794892014033438987568729954727698617554720021973723468375415178527940883224885420126661280083652827864288529075910969997718636389413405547800103216904620357140342197503788158778396467216948071145302591587443899835430080776156438411274883743571282222357083048365640733591166615039829105641530024565764148655602849959593123444110063641990099134141893669111732472570022382402978252853422251422824013827865555980451608843494647454717883393841522757219531952161770100300099180020284350269501405164152867764093310887998339654798770454560457240101019141599445695302536657053033363682072814321269060422066068382933595783060555778790836826545279087424331684242462707957200241489916655034439012041764994538972466078953578222462724517598910249908636590081451753158585407990289239513147981458865553562373988050343806147056282645762083129500805261759214390732484785642412382174950836010694890020590705687600931585779634082078531883558102987039326100053842866715695207282158000520907959830657640962613809875903520943712376526209267410972207349773187889739122489253859435514791035829201353445093195760504584071546106228047588256560406201726604605130663002656007105973729781351640217438304045012774682868882845687278982599682773433512169740318850183965621874205621468453317104384787341338384866818846175626225719124425439424927494002813675338478128617493956448392836253928209999089231613502592729211942284587620664146604405080653874948391702908532915277694866356203318567392768605808382495553732308225776459837066458825423415304148408213634875335854978637819273724154208955482288779236876903842210968871457531389974179202030042832592995298113252003572940856442981874232230972616964608146074999060150221643125953661944375330595096803826400509354966969411794122732444239870927560080591619598901289540984707799596298902733660937866680255793443232854467440835578572579536958325554918241880470124391470588381593435312177199819050858357735938498114720941787112553767780957318202402179144475907647914309351810395475796824595817414477920144077838277187131156731208428749303246974338621626071851708546509262479533312018175191761125427034902274145790107797246322570676387157351436635875070591818958178303296267096410483813016241689120885995057146236190259259105109071980145004275438725929903622377711364881042223971776400767750036564079348809346284837448173006369192923295559845587335602248483947904176085043009097986869680404573838686264909402547248497970371631511132556495998048574233986663113621369155381889621651672690731614241290649443923911097074860402250879491672913814721334715402631781808665410238718138482760138799052832585855148923758144213587167265477465671086533178960915423386762408898803616053404970531455994543651042737238332153373712520382201580268319405745750065905572288596397968615976700226530485905249436777319346935435715884408251662450274905745837742857493084499354447702170496229817226837407427074543451725177884037748768311097923612758382731874420271510378528709881176255666811388244606320989538878092277280906471041620068547403118499344184398158832316899671031924219812023248421426231383064612168613599890358197233989415425590251998703979751683884043168590735529652809099030568382654151672326443884344702271923561221810498903092745502960229382720159031078651577076023144066658223119891821389640147065915187866511576155399809960319419933247311634655316994823321093745614956463489258894507225677733346890436257220396771521065749012292495848540784950570388708554080892983475185278504854695698758732749820813142472016024939912017367723509852511010556368912451600101576065280683554878396952503140931800377005102388123854496524047019423439104000252025195311717845556039894087294966722678170029427327635733217592890125907101870926412026259384875133802187915993424963254071737467063353706829907868504922258261368944959730621755401709192740545358841634081627643396778611218442695059173818946705754725861981670486739657127151803236437857892803541681992328861359081234537602274869421081439872982521657469197203285947884035028325044341178420897295540338068027869263070686063931622449157507800293667729859726982947628067650771703053666563769788978871567444164345325663023160383613475130068838930834682751962667613402641344771292199457913778348968497654885374177185072795868207188975046377653677863974520252529015030514516120240253941028405483907248175575356249980238401258061850472693352916660920603033062238962671406544910854239046936643021678088519320725835391649045620572002691119908593137186069595268384934976266753332002595761425136787114541390735578974447134126808197917088497665409643229540314260353717823991527878755118279872498776208056484137768199823239404233745708952021765602155303906711535191325282614753818214829796579260600255721206163462099836755168042232031779502549590983145847838196352561242832374634386868055775166115266280283334313785357301428759403112276146304366946461369129618717570855916020160901607158654156227381762868121162859644074483710389132972028029851591751700248503653549808244941742665941131122349840270858158389591241704822136934715486056397520306957079589313621036940049721530988302953933559173574691569543186728873584265071750938689877780063581046595807388983108178560438487182197252605790839192172999773992628125690403807383203396056554401570085887180026558798648528551362652141098762704173318931872257092464024319365637407615689923031589616965023508497086433007048948669304256323531058367842567779831299353276213894789431414872304763645875122071887315981015482884764487260096525013835983192083445359983073127251512740210052623815966588760095217956909181904765740169491981357242796269813071549742335187471957394612589018595463685548171723261280965360169554143394874267997821348721809687887654810310471624120994967038765469650730024399727027174123136587360754838677220698318168580252922815616267388595748019714143093490060416536447045810609887023576933671783293009217883789728368403323935993969760462510410552523795452024524957552902772785730955415627079112598603641265700014095684961262251184645953079955317586437604820249917281332627842308124232041820030038392886778958656806120740934499024742509042809535437925196083050487956197276184239400789920669433193966799340834890767153539648631180265185429959185613779962279326802447018948140439259831209634675830205081618752602904541398132417807652398748518215892453228808085889410736822130983124210845420272824481246974620012253904908582443867177137755124391069231676536262149377723065588823722894521402280479206266976672104458272078652700666777826363527262069369240407076563448711084704127854716862634416813841414461182592545020163912459467958910142749705420775280275251787243141547072236605178297413954867610271891313812427768847061662190064235485740261535549819281331444116766289216219625947768463948874132828824599319663356388748316806739763565226686047435540672790941302012752881559504327923413706510036354275018500742369311203382809241040708182663014608864461263112256602832058367350921236093765545906817657959961786399069977265758731477514042947486805792470086423753063074872754009422889778444558289493478588350920387234968454331154266974380527940585360282137898662757383967260173217347070331395908742502499888487287564763505044138686004760878534497784129706108425361193928048343444061958483478202672876680324836986096315602484030805217555275357689336346749154590798249833338237373302807357411369245772888357000156001752780826158162649540439370200249828975481375669537104890458755695710825806735790733946813466680810501160710665399861031636892269443772451881106841938136069144715925083418456605338360488306528484715608758248663072266340006524039819969332073881082356358331456329773726467683992183341932238421547462978656209041279989402471496572728508615362249384614221091758961161758176427905168401655288711520853667542124047263748252835091291375178346552208404391687457823845132771841355910059945426964231515039140218625201306395953981924229991886693364843790682157311994076431340725807831994175487908919633292641337301336109312134885647399842696486875702858513479436220127630999575479620808664525974033100332562929043255574577822098069645937799520274760391503778294092179875766291127818648470136906484658436241923583297459331680752212663160235087949253216509871188643962910538342761099792920191166511862518563914362152055887445749995116044660641327831467289374569005519673481447044990420380516993626839453900293303342904154753746405067285397877570568271213262921325963266224551092925750025411260803638557684679514354768420866242209397209905589842850155457623310618054797705445900258291912370016287158082078603433512066447483630778555422276141401433618245039413781966071271824840654972191983684497403378264215156804383260856665175287084661569469144237413081752365913555391994147519248508211867925984662270987357257438725036333982177774645482987192125412615047079350163191389137354704916701442225761708005121657989603238061209571880175419206819115082295144468021724723292601756804518913129689617519916087633603441870310306190141206132103112478996945301298720640994099792461068456286326580098757625092079862612590251072889414951774388326804201417539864305616595736881126741853910923808810858745469652757314332462356989271637189993775153594190960357659249148607340079519532530105922189731121685562699747163423037206299932141858114689737657871214750696952856122515530013401257220406013620058624257969173994192618179707690258410170819932734095532384709543311197777552370528053095832616250274539123900020127084105320617318125614942373257417911317217919251754017260869095635828290302888375670447127996732319044784245062469475120620848948013154092674698899666942842233116497116328001004524055412067895458052811545542932261671039274991345304487603552721727858602655196092575173605438908951405428392605544517720394802341032567319550888919398790810017382036403180309537240799731092421660724847123002202683739028909849332791475349528254363404205836546144300936255106490513625328560103370002408157962219748197696714376604928363520408790302875407780330787552573099311160026909389887446508336411574310578830195689022028880633768496445960717053109566758891287738484314343116255431857629826805280306206718545036380302969318301714902387866040127504303107800073266652059428420778827186366619683944241904531163361400972729073820268760051879916582383640636468874893494692600934135717157580727260242307390783313342132100820024805193552027394558124438909759823700622113931197353706830935860233274155932548451450329576861912295516368153950654801067982692722928691903479094680660753045301593898984015736217023414640388788825597184829968721055095961909871603398739836022206454617865269533182018689883499317387102383855870038837434912823797951468582147081447309251031030202594689506944020058387023597264086689992110885270523635816710038395546114643114109875890707026970393864192424131595173514979137548895345765232025395801851593369164990499913229675249152639974210747325386959587295762276792185537535969727623249018705496447396019830479824333128231579969890256471281312401885047138324501535082866332665766016393966721193872995330215416071704630948608418266787903272273771446554943434346420592721816922251785949628982213986977239059413874712145861230436212147652445008731034589772578208755771324182405102905662293974818961978269216484388721642990151129093994021732227594556754357240424147162430209870414335686584639808899413056206938095596654779186342877610650203042566894979031909750565044567168055226258833605342115587252938610009916452852193230930885788210841054775602447837941360495798108164160628526858594354570308645148569484714821113495095743169598008030672400044077025504512474237059455683148870830081417918435435013735413461968285676781773013927950441021251405698113836686086375889177433473459871473418767667195916756195124476580080516630952529499579602407780400649239244356219757101446723694795581804785111628174207624566932630082004566466724353230538931652807015782208542272034284744188150508720738543196445761332821867343246831222002924646052595403377897012380816310037475173013923461648996704312807350889503129003094337531516234102055355356561294687422657794352578805060918871040940030473543492884416771577717304298439138802655305063683004739644317808384363372752105046535814350188625010342296134130588897371658885998568202106956234500953796074168751709697821907066744243035161024524586779008421223229664133359488774460270606887994974145547908424821475454858617414760322041862476845431781911886094240929773561611635996997747004741639463898274670779082942737363583340278850711769000818707036143791930208246236582691262737775763058548976840903955512199714480207888210999518257277439956293844310874444230541639458930694969207315093530698044309153585146920749997318422099175530142375072382694398446569371622409527048809179656898059470706949933294987179768095875118954661802786098749672545744566587758130210302361569420647523362056442396178118396240974241270170212572131011757476513923824438270195973424843644281376265118250850852462058574946663885111198993117768507296316730877905482447141529274765039677437343121677651971627180226167329070527145514303799180940598472710019118595272295241139385617449755431776294983620942043972909962564026739588897641983114174344832818533933932851053635842818235705492221996725902837290606982622491375335747401105433153031066772405654406165162205292773134746836440912020052856518712347301211641358714146985311543824919296618924458920355036326903697530074214957530708018081504416876744486221860101002954917417697064851064858299829813532100270184318197650190978169458770665683936221203385698971160632717498304009279799499986651938386156383700096711820598257482158119353055207092395451420513843351970078578774708865227309527316904775423863452499980212179333896251219325911657434129357103896672666081288134547881351170839761543524990418001638355893745992638890690032074713691848661597181664323360316040598498768370761404803545402156033091139304405203045408873346624098913405835649517092827148601580395126571337976704335736541440026665591790917166524728582020074283842540210654128785204604247759403785348138770249563239143873852605400800231803081152743598154122790610294923349593602781041898221471284062644730729148494508821799919385263681374814942241344092389092745889087599133750855240959138201254857805029542529409824473531905685159955754792621875452524960883776646628931027259268995981293746674820963676823695287818101037955302779274104819273758293151145036458785150369359134653112311673861521801502622820246247141866089006972456433662177310674669007787602277492185012402528376700963188815577143110766450338045522620320451494337430884268284283373466128648781369603384893822203919752610556135679141521733647118191196855713256712300358819209501100999033411276879323225826565982281669833598026723591939396365522009106710887931269645354691680675795880627297232196672775911512259137727378388728501787407564750185500419288335497601792587654798968451189411577487936141375571563435862566404136066844704425490944707378526355810531489887882439007080124330796449194826549792752431312806538659461050738909972596974750855971344795905230612858376581922688717854134693989943495197433350301432687604148777696122105682061119813152680209003064549223456819606551972864854666487126376931706696391820286599589927197451134158060222819092510524066939826792242301091302255059860633146497927624208124243332579275379635090146927684260066420759794850567610000118716689496711784981680761161955240459817863753389624396949453666167605955826423901591748795516309352289843239296110851589437631065186944148814228288926570161855275337171790024225655594156714115293640573151271170320126455053609745498922722394068413750139617927296218695612727548027498633155765711123357823292259936609571148519620928673157510027445758581431723161655566508020538585307242467743061482638241007740198821034825225280745658500559637160168037045776863062180765931736746042983500513101465763276026436585832923571889965950676289292225846994100443084666862836715276440687334983693267290073354009618184561949713378458991136188947297055426199938382747532306930192742383886137310065164811120578336721107372869575336304021174678721381075417137966214249738136411775078238570090091497640336549084775434486122471228700908033085175480332311729764675775704165026538053802930876288891913739296430546923279729681597576439207029524490115306031537577631362370123929081375582793256180667669386498102968824810604639386333780261744537405615027980229991905989697221630419946749843764647862975446877251779356355704313102104124725072500401434427198434991457386866749309914558929319165950203323733177580695454185995379773135534844953962193651522074092996369605106030229196230933743420901405754986308652124690056471371849257431975895169701718197014221958887403194648733173280439548590437958226402777430548431533901550638967106601182733684718486363103195249551669394537668299365913907399419925579795165292877151534107015614315368347200698487979099853986427555210379910128842256098567665562579012343345352235012954514184807837208324483676434011637329425563348217711913782886650886698360772774996442664225864314045317778045434982876774318894148930965848236928842160232932622764425808708803603292522473524727270923698263149741363823609793081863016857412832373450401210484499270762255102224302846193473992879945090061733689363587985203690791630195789055833333026281452818350195787091434131223217151434766505280392732159837890131682270630988804536964014758881215446037500736632823510306837256183098827820160649170332901799494820076989981553723110476801128013118571356028425397480600557389129236878700162554392642676361595499829783972751193406409290589108570603612155320431258286714675403389970488901019448413067536352403961039250199785506074169549834702779600775691842047568698218320163400042499083820927711097959862037127086187534389220797209458172108020949791181151507927507567568532003570899224615411935651498699293967382685879542859138473265115959946714883502653535658400897584647797086692960400558972518636148094962721485725018415725881566184811749014123577899704376666067920827417374701884082148404138545653048783929581350550493606125563469917035753631548597936058506582358340960795966598374635017258100205868234875210997309268456067791722233530553202848512590919593395537537188833112959972585683626073078457437652525993970560285749027004160746632028786860237681150129708799926744713585950602994935315479305337783416351685777701314139406848870995358631744403107992912412823179721674462601710317530793219230715454972299815224370918679543276715627143500938946541879667003405165006984018789660673191499570267876071028482632931271125492914693913140093975874941880640367687835373072004485204078326380251965856103790113370463474373136356365848759604829116677486462049290607888576373915540205441752884650426681082095144574826711916879023012310668021931271844338844336107334271820707889774379851122235636387915442482329645443213592639192052248157424650303692952062252707754070538741318392461143035915581643366930671332265774444714688399679438469976579989773505251422037088661111368283658000801757713226314187537744810412727941616482833752888118906518691232937716784732859357434734403884641306286401859915080408581420222074012519616186323297597434720927301326688722808433145942971306155419923152972959054922554389012262458656989914500044440818765716157501326584181022853078560169848442113742668651733807055670183663431905861098603210396553808451503334978368122849603070815084967640146581566819803643725885789847369415178564566818230722012115272503046502892151913755893434390411178284317426341286877590273529766805567760609879127708633956677870414055350815055008424515554395537033803361842355045264662065820430810319535931200455893415246439210881592117698456464982462787596557205737849035121656477771153993148766533304420547868494435038524179777655819694298011904802815181997916577525434983322693970646752609846492126711015989731332226115169055191654027451220365614365421861533186741951449827201227642027214034431392756836371640008947601998648432654789131794756476374217946066910938263525872692579258622624291752479757043829240362939923778298071051172035445999996925928323110773173950662158717727376175533420483848004518639927134032954899586216631058300411656035966656911993185223250530237398059080009866111794110759249350632700363104215903800568858856512640360536667788820754731756745622882832716519451258442786786588134696237142598830984890906753953860849110720965572807425647833687966770833430468544833120021773002387815239873892765988963636697927020393095063885260668465953547517747576964487339154773026534601080528916091449497893209170498592104005960130591528915863347149885829342597128599350251231809104054259752907189714903045226107022797724721841918113260332530375975131266041993790372843272764381291487488263808167097128900772693048392460842729820185345988268968067878363873565779049403092059642722696204912537651369521479532876161034071719057162439576369666916239693591622055701855843947606343826428153054773966940737038723124972337743195344799092553345661815139297422686298449495742839014835821253177052321333989278402684165252000306754835505835726065154936196604376661748680841489017181358332987505795872785017949846002138400841331506166765841783573024717568834800693149790003254178018162545955583813354577850232693893622495438684338458475988850024576728022359563429834336612548336490259997831111598027425527776776709346670902724754999594376277129142200885011019115383696724435388656768027679683235145572602575147573651099095614037594691072714810051197554861700116160967081126741053746858232321981103488716493236323569411933504970712509498551200253268413363914336062057234325870722024945702927855142078773377394707038253406317462331501337018237109312174780548809365801612141894058964985704522536331060055616103844036094645811088312439001085490528693445521552762005646389820475808261539870720234489592207377838114683600541868790172123294458014150219751399806652418319460355456975177255387094764170210824965373105231508150992745537858903367635125529461289344776540691665416651338693602500668066626910017029076692561430626516525352615438316650388613008859312973443182879806053984771045530392039917229586584455784186113767661208465351528073113954349647863818361726302245644980209674561362452873835799706035554828145657296400287408292178838706964106674246642262176848476362027567882848444852459809830253917025228843354185884093093856981836644835699484744886893851630201786243895905022976008781435766926663365208197606885471302129213565069517170724299521406900237750125115029358662860239082034686724479258378635105537316256713043823905201785078240766793146048553347224745519355859312739201236094178879989750068397955105397005933939462064797636503678406695001593062422502418629508226965590310925465794708170021596697667084098729170522234165593546664836107818657988865580330377999356029192024111962881980113133031573407878923302482431752819001256397890903019921028212392942283458013739494090039121455543614857508031517576320275526855093457847323718016943045430178403517842935822023101568740337826754928635890358822198862662317376473041777683308412993991925212195989382706677021055035082036640556206915088437231806492508750503569869683891276063503565442026365498064299896390741463501107767008250099797054248866782955844464778030425002053498798981342559280604571552450793164928471762590172069410145203210567851897135303469972924119431971325993304335247251816384602005310008084997728962769473950224442819031458189567560923559789244804713984265585212346251910220514976665142943392510270914800848963848607969435765806892052080452847726151730757005515618730847384282856805570605522151601805828094410902689596951375757057723113966502029127217422662771883376505289066772530039381984038875575354856742337338540294491138892222420702131950324206401028322621128125763214125592715338498736106691893197798481579808366500754250728833957984325147074018428910752725616485108956021822364996063475020569877840466705341265470276741768719298372437196972061259751910544256397001029398691468696487789864277416909701929549980333727075522589990546597115249973177427206285465951592071702333473525363996715495346871814402046978084897020619610662477013198825874575511048840869117126733015556982836463701692178368383100015141599657377209287285704564313244755019667583109975818598680923483497664236078424850208330263757841372887433943149129395139019334637833134506438894993844491494902587612565681596017899871303938799653542658917635482868182187437676873929476244068019904643879096145226881131906809948083393427879019757631320183269412879908833961888108716055223671732118539766322988638791421478735525720260889530252165365437839239424537408215909971277955122370544313366478549629741583133811615098392463327079174482561300597128307301446182408642431294655955020043973307091743335866613931316470932242264143234163274870063039324836978259990987571467435414622058326554218683029129632361680539896033817976771172127748579617492106733442777010974607131404386752137206247371516544652525014568294581790208310872731541724735918016388734623495389520937550191703619534808538477751029199909499627920366795103699509566984171664238181824698380702731478698331426013958701819810688884098265217349258083932843660345801754611892086093785229236632841938805058211868028350354720847635540924244426320552202294342112084389932207839565924653090357954685426201210595759021693421633338033480993142034872031074669688893570766721988604717768390330721781869634308378228131975914330452279090691884724857432618298332557037675827353393450613573534253834991290964721175135805314117409375872781291479961403713702717727262305408460988508059677944216325151496967668773263908399043502046983455878540959981883513633952869800929822715325483673156946838968819211428677551277876597875792656541550995011643916713859591424204184327452750131504488124051171156022560141836844385076703959444270025529130284997190853772135099969755652807461546775262163509465508980014302455511011530473962305472803488681464250834300774044235648345832799551989692695940827281155088021625266089352580347566861475698214274210726351939982692781895713613459513986684492631673119965814459076305868514470401803315544300041119636485778954256953656128305177566546956882412823000357485218027618207045259190560392221836732973656403588639711871732446967350792014326904177705150466681255359246955603573150440094136534975736369975859672597494538092474741591888047927575653071579116276383088214552332947247605954946212299681522593423858794907759546137657067944082043809742990823642709502989939539578416067950416253672047926472369699603854366121862695065007480081881716131144072630395940008029365317955330070461359623043743514881946307581332139088772949559268803074361726444762414883257358779783169723358668256552715655607031163510719907326791951083199484279668978781845482006005595330113065183898261213319711977174296492945132034555828361240084153055973607458794755401283492143206388047648189038950905054340388041603795603889534594866515208420728601344792448825199915124958880600106016124818537819502486798564976088841436072757263262742612990580338963297854937077891007051959962101282801708166773200066174316844578058403109782757127198078092831021997540739550568856873297530127957307959989142229353071240623176954392052749366223762959514349373695493051165852426171977166374190950223850058608333391478188453818525897001196087848813607958063703133847254633857627831806841811840846744410092785323429678688157404606182274373724479331910912753002147391135915171690084332502962521407834774164288651098729285947145435291248491569493929952247283013788436614632414801311890940727913627062265391667466340980254618087165149515589319961093973896099768976286429373988577762442473488209931512518844874310160458887760931919687712243148240545449232654921830935147243598132537555605468624632492964471893447104305650619211392952416258989610061988178611611625165029199487760866726014861920082414023157361418078784008192083145075482822043662339742201405373320934581299535735153507203909255155308941005165729065493070041146808621014285206420007845779241996156442124993468884096714542525205557519443239441649225327285677339906918522399844021584941447506537864367530300093587522439385723152724048312605404368087630714380222546127445712315680244142915893575465706117313339761969908489809129105596051209998552045965703517312950247862102072863481582476761377389724066614649036017875676774769389426745222887793960239190703081436000790496151534926598111925150416667237540145562317230635390298942890926512805398699522717092275003115878223224166956995625251302326036524184574161209780206707501818517635087262211725203847840167460698741573545046141844634626531525588173385655451152255551143007430222752825981009746382237686721449844004961667568820900155644503825126531957686773330111384001395463259502166999894688813567619040803787030016394081939134978965918118385676425805112446851917836070941206336307425677891552257394318481708698380017151714445542988762947762641233463062364198394029198050562616128326881425185475218029587900899425764060655270313432380716880358217691940709338903077534869407422316752163813511884292813654683164174886568973129019574231187512088423596936183222834469414170971578480776751321688129099223225453499483011594881646724358339369344346201441084158568006039925494094549637916241238833491971964615853203500557332399112243898976269046639674302197752067549351125060505301261518540707515714731246252002826778461598391804842747552359567058951840254464440833742563338076006412061719723545916256597803728549632556005974135224557664684163836738982498671830093078122832743095724122375749935922881391256396802582073322208300477510333290615140104634431221457160142911500436756056889349591519358327056064549574722173045497551408654646677260488211489572645968869124113355140836281258617544595430248864718659686354658155824667394716655388869367063470023492529297877255397620789439761579825873325386636169373653525235725532082578147186142711358334517134350139323186787417449432667702328690631657293763308428691957971698918811877731453305563015005175142831600190195695296316755732676554599940384874180527838569167554475842946838784969665332313652427284023489830542555252144994102458442405369988131526428030076422547853072289261146661017176048496125625051709657755930671709558294385647822781182445931722987522774391931738372762065690683669162156368156705694132110529309710382258616077553921964781528405618459568258601676516379458873721581484510872986056680153194845351887745750911827034527957828984093898710454638306944159080925582651147975835383241079874194113971165166622862320556625780663488781014908038549665838642308481017906750881011554022646521355541392227213306848998432360235295594441782059847044832053654328777106083695070074629473914827793274381404988948845135079114365743443558432607550409522447366156773418151527729200848461114917620890341336078020764782843938423438741315596884595232136277568620196582010586461812597000369450599463833541486007725017587450604695520531441997327776844783850800317733206350363831908796757300940735139998764667308679541465358048887730926151743013752995056848249343455132804287446939672137892540076567923783781779795423298814632942473665879387989742859432144660684362023502662302978424222285293966917889176000837698511604602742813810815296582648081502674889111835197589113988083298916729134545947487095723124929375240072605217773633427215408561112329362505039273585829918992618410675916604565887123061230411830781687499337251430601119050153290514748788583278438076224697573088778809315765475744691706806220911352274928714274410803136277144345758091229790564633602608671702512617569548325506695145090703873837379392149688231055722491494431635716872528698813141999204386318781407420941902288260702240846025133853889993169996929311636392801148816096155886463563305162726748647200651889340497246635021507868841246688424203898358510268927747919842519436718739186269865311208777089070318286348084729133492248906770574142353002119955069743485019119611038709486679896959047404018756924602597106431874069221962282020093774692840103383195274002610977214898387471913574676320896962436732893634425340286716348223583324699625885733734841692179471258063616088408545518550589272705697339729503262275413755162891754443688126647368196739800798513951886413417347852590051232068610614006886414331596104486086104941165936494279201444729373922905239603790409344074473947418073339927996965456282336885675128557908123427831906150052757859739342274096778987150747108046868100896924700356327567970046875591676203972237050150233947134663408742349680574695853028416803329021189492620972536014483556748821043636107503002224737921235713931461326006616080223422232808564509415817171769912772640741005021589441981229510348760014481347182697848163707289399871856681601427332539115529083641774102943282382691189987045747224396032772644538523241636269883543759917669907797445880490071233353294854873470649046818394756445929085653053208843784116289688848201319550900500212006506735140517640565788336078811849961881095582806757066281472650449368627853994889690486504551166516230289209493786741957195925047666744998634867612868933723414540761879008626812770632191462342570729433044230533916884552296208993618133503498285360298448891948736096205564707525977190794809974887164415359490150110886015189211473267025605271995379589082542138222366927751755356908803633331442932939616890249851286774886866850655448719448968103009107050624782292214881069693812107022856195422480564511474988824934819743706914667979425184384460341904599860345857676177493176017371273842779560433494870263877771073714355288203984195201419415124641434006357522409793776946673243630346563727649334731547364685176139174108578167705298691418589238172377270217086231688361105647699161076414670362420857375916754174738023564227968039870110646926184208022312138712581077418957712546349953828660545683964999552016187747469179423627874423857681685913154873722823247297710105237163730938331415390305894465953504998587171516912650659766291624870581242773015538322488666279277893917543431865668835137848849666438165802730676434361906876740106689918678303993715228900969773380059845092976292860434528531293159604409483275462440047369067670444560484980611676851530742385085435108402146920968462229704951936337738345758065271080163288298448354274880907224007088808778458245189959812526138393091676394776342687413742709684154495350923686453838202417070025970221833882598795021317617852482308838863511876838051278572805228397498006356374172748554257922262460145040516297549107561630862126825963650044695312944893791112177397294741713095784752355415133563651352180793113247627302833006893707264216320477146811511239841728666524254125221779119568414391696862124789297897267627833211638552859060254533470256006992141657392559649840864303725026320509999159509295571383188725277240315696965789136315358840981925455129266696130709020842478710132592417646225207302287178384586419507675074158599333963098501499065263290612576291142401153493866489007645092942277285571590792396583809983372400015508703582137175896098528881753098306596950290031021550659171680068457049095857083577876104825860718169685870285330819322870136449468076297747680389047391181767319331345539181135328926863341143649646424518205112404382914755639468663435058367802457445336112822278965995381749473552982876943981818690486695538032347034372131494655221026395610527794270303218084719313389805626239724851372496262068852065238578124721605014542152943587012402054600977677316378307148633311554374884724728681969926229415995107352174021405908854678930432829693747675446500169572842852149846563010773252187103996159751916625315994919913839192775824831459605660042594087753192349618898822277210724148842970820986468256283836898734817106305818818173589238576302140959634377851736804000652632347781148822021505040689474342694732909980453143207001468989467210449411286628382697461348293505447749238532102861139460677462612662165088977504748672008871353617172316283588095836381082325770665406784717331252436484654843725941629278972387167100940164679698636691930204339887959096017576744847637231831322553530666739510657417511076182196368620318209993804217927610493122392502706533881595127365216692380580195545149189279046730636092205760063450321195431122221500489006325371972956340111247048025328275676761318791399782666453968987304662270706337312586686054496057108779337395654286058542166940830106529840721225100604094399516589836052093965507552000520383751876549381933977670883012682948460877464734865110496576670582761123960957504410653755757968460394889512229620785713302265618893079976683065834219356818265922014546680884700763563552688729148769819672933423817184765594278603703380959709076617875630825336858460122793200495204983041613558930929072982413715399923888984718455550526830668891972026452666004457396855183395481594516293796853289402121012081421054175014743930890647244406791169291997754439354763787208964647484486049686808495640854108801065619917892609632101580072131402151776132196562646399404393676186179215039137177812816863500343082416632910951561888906207699748672257336934702116421528188336530772522876641160380831828260684408617655992173192378671551280196445786712136760537919881714734704774483694758465878642784915252304593523191743056763295457786108323989073533145568122005737167711856648202167460984919946735345630630828559445426881881148051063672591517378838219009731687682011376129335964342724615484421314989815128603735774468378286466469936054034494263049957948529561891155216999605885402081922653326351213170902272682586008476717956281274465540479438460156451059274958976320069899981110010583928779207025481566121945739976068799598809119279726752702487193927378998375364896711781068423032680433770532749925990250994357248152600851968481979162473110087176276368356497127353940729810186206938940853687140323944344354822306251556075252170233184122099878572931751043210037763098883745785147524870288978706781736908659832134314477290085783653109286231731191778313891123356261254260811213613853201988625894931740485118039620700207803170936203156313504892502685282214660889559133079041277390408737215091793922935266124096662166525361900227603552667272558724500019342204655353701481187407471472968737444617171515941994186892288486523061151409473731968489180185948641436469520841641459140850162074654652779764147342733907015433967635764795989540175733211281114479071533173672499269420180760260154000364608647171463255906953785989435078500657719127250881124500539406627255003384800939663366843597758975545593469199109962329957434468492437303007274087520676795386424632633870922228915179645647857164312661897570047320102348953629889262377994248242837453184259434015878450514563647729146178787863052678593835757645690255766859072438398264021794014913446491451520038450626666263533898988905197037623167732272656592783598613801288654816607825738798278906015733238086665557450316516353976589065135639433740985386064986911302648784589223625029430875700069755164496507637677380115634916576189574538523265443279963429987543592538220806666061395536173460351865002483010646669025681525013385112572890463096385116496714731678439279218062895355351667319183001435803405075322960342839797808976050286845428836500440364556820163659982145104132534481962028255779299094363971194168757565420925233432682511880167442157717986138085251051789146804907947793196581259589570225375524667176092227958939032742841611099777808303671338824714922735134504220684186929407864501454000466844381148403550869463913565849651843766891386123238855766238274178736504177144959850049360686291496463791219562596447457318262554154149648598876911307296264503071238256896166879937813044104187674887554588731267817449638670098795096502411934699143406693822097332499751736045309766030380215356461438721949783265297096775213592215728140873732900720726108587304668624875078270647436199258691436959160620034587458072842366919135821475646376719013809511090181820029067578552116318736021027174126049546504833126786858641444993071271730583297529784033666991083975558247814863694435047551830107811611356792559016686394669631140901997028475882329414148803519515412882866621786812672414667139602600752061818868261247884570626940336734138343320612504223753258882886065226236081800138498863661616613916490823583481938494424072064074409574780477989784867554743290390297064268455191726094722585235007652149022653038857894351313363411747132467851835354672264482044694852785857522042292497676035081875624276226039411314301578565601125130242780680204622621320068456543328632332543904310999575302265952779876622499093588940573991847854336130775408570453101269442188154510581330103316984441846121852266829119046884725728827435608713250795186870666953707514874454833128760398707628128052979687875292986602503796255911252271261138342423077333602945942856981260932047400276533286152589741940548709797705352009234726367662233943111658670626486726416881210890020375846271500292732079868761047609177013440030188205081156876897157304679713691961948896530369178632103975886698321838069454628036163805801886646748280484445343621440809523484019250792132187445864929551889765891669668958721719890689254357777212130649907582480981820734313013080696721748259764016739988307603677005427400559441273728114784750608315978954613916848138167395215710038364980412117306519083476976567915200368145607297854968057407552268569587475343150519257508618659637564763906435767547627861700017780800702033441254012489420012275973174518255391266696488672171777472460471919732799831820238041215015952734103053468010360613628544894338843930562427766528236875981557176705343283739163228148016218594283307215013366318734947344796930108087564794538651495349269299952104567144726769778490907904119532340581250766728461377804502578885575368889340266884837883204133093732743841926618174157620804562244765206211212083005179446480764036675136841942660733648888822095957764002725356745392535297919718779779893762579119374020294515690517539030714373761249106412915345491389868821368798093633362485189252773212702732942242441782538902391915351278446158767924951712286519036078416654347762707488184616194594014817000693711521747035724892730895719776737669202076628209822771390074889003429551516538420662103641907303294271818126923801647480319464448349551438700092406825179716738296272058199395352080097074979311903512062446679966700559312321340016052970929758833974983580760427250124950936705657838689830744400603625601760032448850222044502568186120599607584526031192019069704573668218943541866687322745495284957495931482735941426308201429528466831178024158654251250335920508376235075416542848754659762293959034002769180692841651428479386398712391206430115072141533982692347004843964046792773451799740989296723062786344706942236601642909207284527330792397310337102721954579761433698205182229689325389658557403977001815914896563951247415479127196927423307726666069135263989910638424216944896362499498318500246526714434363240444081283766579651132941705603381755211347999877785930249257865703666512121086197642625162473594882830481158352585465014744969985838913271382437999011406873050580266889353306517584989064637254644558510328841032297129390619612224380122293437786259932791565576850629440233020860548689168431541712663161670290592079365061260978167896675208007685013513576843992222972397248454020960443284839352534500602625088481435632479597858934654292089473426260886664250919176218069677485873551899445343530130350806905982369340303522043031921634458196146263208013876062512358503870894078093255999880215817048319707008066132330611302956338833402896833232414414558995400580005559456000322351824168266840801355559434223370301930771225329185373994534069448712074983443597329181130747836968528670261469192958016411622237533189751085932272033472168679057014856783368953440222528972587321971889435486381656098641839438618060523859569525671441214465024196082020119220388601393434135489368651971320654362345828115970378348144571482505698471219589602703958263427086011204737536228563151300001257707271051475558919263115924496648866627917508959471644636474581535483099923108772091891373612289921600205957240532538720397729813144364349357506271128981958003796893378674828496878397520381550917556646714923660966161505429998074607997698877393200861481105616971837010663622026286569499105076989484719235312424679705670566969254141427195538609304501111547066870588225656918445642018560174225999503402225688178458148487253467585841575893597588628736640199528350823913767245326996783874193817725911211625066261176561224966059017690645925166337150564790001709856711410898056279944933544180347644542924142553833728224515401709396551178056486843875626861268129056800388329602869751857950666106903464581090843522256711646780377097132936284721290747162084947017704326634290133150003706131026042006323914153692135766210506062883220883318937431545769003479191111679935070669175994054224227915353705605900868183679606141073090264016925508348997364463845427020547148316565371799984490213159057798394801901628345381112361640951233484888926093982844838407299546186113111597817117868424711785498146330070565303829805318122859927179741455897745846210057730037748802059376589823430148723894147027816247634800526877246493043661296410139890811560737462269979923846565359196062431263966847419369815527864674680767662626644917256672281064191248819845550600505124359423438407800576749479842886901614291066879475812993809517606293295444256385609258380241500433698987265179327899472339550212132058823101101937202771700839852372490550686403054872274397247809345593592062983488473914508517810961638646409462601972904331245163007326066182487286803398236963579660627098541726327071925498171997405894996789526669820122616095474832844990925656086899269999898552115129813681330348513903468290155578475042838877647294687374178678845609507902783660124014767186800317601043955981362019572757439366004302028474901069264849224198416189755950049416256498049026925350938249749632261070021915373079702455953081195071171049315952318673907805299075773187118759582004935587350349484993139865093519822230292274763907578527281195610777284992776550083370706168149603311405679293126299524988420956446394958901890991560105663345533349091569125153313615763085369155062262552889379106186411878050536290360066339300251031579560074176023181486590437115658228031117057291209997455987678646898528829479958740395156075482658227216702481739234199334684474736815504264987096921671400403903516887007152062992166355902833875499772100558665443554528501676534577498083351785318586704597178475556255164674360306464774223257307386019506962004354652159340819644665715040566516621366339205754478184481081813558255969790576682351382963482597493619163078939734180386141471962112197933387490329650678896317186433232911353322775107710090774686306053622597257096646943847916249115825677403732264756599452597910872762027331786463166178368344186100669283783301678969985054561257521554259565342080456765973366423437396945334277772373474451474600027876732535568350036072907549740483789940532039726942623639037495157040854943138166321171857372254864353017590884683772134300956505330080777387976846637616938217581823999012410222245610997419528824174352904041955470823014642170693649072147006547998730295468102694560848501845337197824752452718307495480819669251541437257818350851336991889202326651755984001447284424630949836104725759563224903641756766837811476930714679026618284565009420026689378757718623311688152981269305471559083736447417283200823618703147686475846810091994740506682094088465479986079175526978147145695164517387885399689912532257941017746130590388554913216498502650818089967551730231501083530132719414134533225532042548911824671600721826346382918668265136931293789356503589253554696849240222893209088998494495602688436098290249511650558474129274152967424429743815529635596846881682240331326462482598838196591632398419109095168452848432398026279410637805052284934067177473307230609580978804291181051265746687865353116941902365863142909865886083326089067529168279539857992738105720410187218200334720052207461432943452180151140977234739056154965531795437447577222094512883083572995065922449448567056093337357351760677143555598413464978150156753748588724358294171002223637253047557824551445453570097524762150655977012433377141774438559432122984669031195947109407009641936774642536618805601335147178680873914297849220044821903347925626863941883898908284236000766107030287735078713160197723527850113738452218198101663785613994700971979517191517320911666860686899634190995686183954194542225832389942443422474378471546724180136643675029084263918282292051563807565932870360736279637944300399753781725859105699245971557111913970182345551095413060317296892255572889966574676828025247794715206433174590836153956510204124206639057718925275295532954022499266644125986180615884894156693156033471150282942018560355853671243211338733904000736624213359562437328895578346364594471374159232017759142114965680211196913810379648298915185384707389106700471327406826546158128737613563624194100328027555193010909441213724682405927970748138858587883020027848651083702461344702365431518682486594016244299135568099673900982228674196980036298137546829711325869551319417043476960205959292210652702388710506503417415842860407396627689432532721946660126508276273768067731033579105046052082555761113332401587221017371583439972826278256532223199973504968286443820138351793613010173905944274674404249888411305748583229877295565477347892169246934378208428325005417935259965773639522655295230683255215584096697030117273319891059097747770881627682364459873729872187807559998700548556599101041403378188048177221787366086145344160997708298330058847093764010565688487091330691780467084843565968320215242290735436818474731916975144024541741896141529386551764281453085343485479700999460327173227274974343355682492808641340971919245926292151517756870479309116976276955154375355245577252228678988519944695410195082186889749307432641167256854777769797014708922418396431888622883218039586511305790608553099107376416752613957906331184269955271513270269949214119624333756367821658605309171136213987149225378746345249834009484390038116061287501195517762953344578810339341593612410479041401002610227383725173497510513234096527727384710267610617181169962262661652017436075628898136370213638464818047530303158786588692705907992449744979795720751113742013572332558114921782505509655413152488168187892971029111628320022794531743880391934329570288289252399693127662908354398652268279005378141695243303504948729994462880494815748093988708818432289946768013422487187043648705556166069579556596765599607331633934263502219237089770103075224643488272512326066293353654391456285630651836356402967583631685111551276978689128846201180755412421749257364541072399359244997609585153827027802207336078117567911394229642459436825544314723697781478771650108026109450398190559215587317798304269576616708094905167432066320108613987785050356396740701547963190156032660664118572751916626084985152160980973326841968373347586941163082650970783334649626443873138328763478649752340525309580038435883924412428187892291070836577119400764135697738539522691631137277803219132711650649407673371861571858928301650261351547951794712079995110487082007421558012010195150856946216975843406331557977745745809383223178952892753544614694716761690006091976877527494883407003107152189665542016692672109994639474688410679510675314367766883911533492235770760494333990761358027944303022226506412395500310030032684210321488718294415080908077342942267747349354891429041189779260374981974263793641416479180744680470098442005961223668657082074502538417387481620135461778252609387405930877515694880200153386391740663960436590460596288722953382342379549490930208644511385668000001769804601148753462855475504045815690915617625577651337475069647176244051017386134645256305136330631531837027537156836339363735009414490471831185689824871154976436308038092721607074295902718580666403257572217344408173683417921814932721488952027445375260615159362417013094045338117993834188266572743558633754597828956233821861769077111379132152780879656309023164406051113614130409400016662104746716238303441806801552704161180057574037712727405693263696874445773364502161792245362488879451128190101821209104651786797056600160397959157416853684424297794731702562430987676014214427495983005659831205374257350399251826558672533951632231094228602461460246004148767956923919349370345809757032424945071809832783935815069923420376272678732912502659127057993157562522553006140305457045638593745522610696895351802230523237941149626236494070395827012129102497642556296168019074230673691147656581793353808220903852740639106739796137185324815009052491764883305481590980924272661041957649011828180526709997791080489553823798402025464805715322417853053896237452339681631261314478962826993789419428917415095844869367046476901874892977404625446232630166460190696488135737055646553195634598188743626391203597377201452726781868685179229422403444479450420071302264335345126310036519807508425955791614077382702907927594026871170734140992654531378581402548570273235684831041105468801790236720569494118327920675842334141039399278464248919074568197594665313192013136087183489533487031052206898343156786182752280934208381734612341779140780655266489913690434056792189466825842294274645123779330609337291138314148217010837440638851439467202288120954034583274199331258258399727800511368283165757641478993164488417387590834861659712689307839124881530705076050827884764382514504705215124919451033116558081420256699228007431433269041973536725537545376430070084192507986033551785269217916279915678504266344297580459148149438248891752167328317424819588573237300301032821052845047953100712272411727509306450249397523082959833673071116414501113242933130990875992660660804221911317198984804593068082282303547426919707398526743234261791305744414124488034589206175622928412843834194541767162435717125093873216365206468250703268477088815214212649040451709468784722468811360252509915093375062888672295585383551981269278652340850428311254091636081611031080853928504788777847896080825884843677692658310470770723033456902865354457527869042751238472276720338628432349660199480844438068337050746157942428937664322725947982871191792781344094579120469788797920289934244123398082327580101546224556112800709468640450928529119132102595281759174476082938474530961734650604496952622340781096700442201469004579069466920907916780907939849595415276858264293682969458592414977980838918938637637738206512191671540550095125825165039123351182112828646166893601408104196913259514020643775759838000540859576865562491123255703682482959969063276435031219317282921187781534778114785367866296394394880782200846112178256104253497213686073491297488343349643716143073198509781460209220360889517361507218429415165739447344164523332815373248852680484997014298353255037526603695077626094320601306328195652606868507018742975061498923119074990605268286317598598866882477317521344629428143316270554583410257242154544044998310555032405335264506795654798727303815603307051035809401102867209916418792456258632807954900605727646533305730235664763776844285848275012749075336159188174780960928203009880869104876819397942758960352204521777344381374959268386358171574659519393015880718210035023872552487950367176428346645107811283836787347873112084942104400820022813651209280771045249188532271028785909847281229351879888407973277922758323024623854141221428215046706870929737243972994769431347905198276546455511076311607527679355342967991115924134703046718762460922908135278767269769516093449025046415222947984738806925729886602190731926924949138282194225786880803440861569271913088446033933118075345051099021386251549353749900553458127503060030883177911110553128618937674821205066748553463462398084104927674209897749640733311387349738791963693003780188645051745845617429807537949939246230108569282554085558441988804695877498677477742159823315388050595263583676980576408337137987732059097753370130668850244119621316250010129997666965388683198058890511466197899909854488261099999438902011809356753969904820798918143728991035643271455058047204291089660422360432996213640086114009996706930615998976395190585627653629781441621285266012055821698256568547539034229617431567796052774586439275239700730207996609579829808862704876851484991663491152215713232333453049533898474679091144743158959204469581633737616782441350955596205276772174675222681724295673951502957464697152670669360508286045329264796275622051082884450758917286507460174448981660659752159376610892592397482643177223348754400496492786431923769708733284967228249964790220237135653006935429466312852241454195225841318846680057230292720759017782413592307898723323634757724076335462730224900391042512696319768428655890596748626200026162110251398411288591402621592616191542313694023176336559636550766973363208160265592438925763333889454844949326308657984810639319941328606554643146159346254057364542736843747556939819959479952222719911941627703513878541538930499527860866866949109667276243595494703427145378369876031302989080706517786561128995303539859612164189442042879970335565101196064923391366590704212830051042169028246062485982025117288829480478866204966791370064156278751390907810389093687505222656672420736375523155242519803991719091551283649624243011442860491908868164756606705823085348890963060316660725099984494802192767217378013814972984230861275251781331438873313135231872410846848413990164037597931161334437504227480381001930622560767131387577525587930346308271579989994791800924325771358738252227203806534942999120063635173433429905896169274423943789570459983716278142697388042448325563503598857726864788731460542360138650285352241072127667251638804369011896221636145839622910370357934956050205139508446040901718306270260306084418484492289614892640599956922828972146289906015843901717716723341842348663566499920443583406411040650700864266749438558118360880996574490011845629622656968470951432061618929884165394924300904228181207334918355374989850634137638258352786529739534969083282022257296193922385452133542902066665515021735124095767099819587324824328863939029577729838105704064462283004804625274239958200027397054716922990130264408352127831403771499787828287043914842384996403590181202616318398439235621787490673275613101660393112314371709390878991782944934713647111417128213258142364381476287697939858432945523701434524700528696589603976495887979210310534013169111117425192443146735592508989769185688770706807591857397087328546813808996634166214850906231789110994698103182879727908220530476005444891428693671748588070398283624488409283043853993572514553456664194187357860370538579766981848135953530230395048274069445576371324863221277413189246370107753460954868026698105239296890076500975218740017930109599763407058354278001961572423157811041626102115552994756958942209089313183732914368757126569096822114133485288083764040294747031578388566859457581784572208797961626816201072401839981567624613734391017514656865742808135974642261050362002901536304332171776818186907416316925023635198317929378278253593301359814562097491217783946951884342544245663772420077200714722288233911855351386489497417985849822069888227216103227273317282567176416006301452231568893015874108538045691910838431294900078023731856406541386288002624971109349753769184194550373128480067681296732521764008059481481440742920073690783609370502248104763889590790459426762667458626212826119039452292687728841058505837381861392066159451064902519549505711075315504304046063789052874035029573790322191898023739221606941664057186970375247157701770218859954589115944703487938537234512971840506684458373225439148895048135126596849182062846230663390372198106926447534899261104109272345835804350779678258527867569289510155090517632384116988989764323059944963632066794210181691758946958876066862798879148960160709176514032612999596236665762520664352757632082139374716516789711659247068274514498738644558885443377831235860025495367247782608789048769342292846873437706089963288018717592268908552540921058183153610390356470086587287678496219159821154640238682179777341215524868996819517008284298389938871414230930868281335771545350854439431922781859733545953722114470870110423077127590633238346756230859514613470643873966866441504451643528883369322139837695903159030319115627996712306067109746097023274017857040812948524835120385713311921339749338339125421017654676787625836594810918606410019651056361149585884436549411821938712824783081815085366914392978479620198832025959625340836324377563394639528618196230232899392279660678107107448045043659209832244696506170547435817753553856095600996490309590029201314278650904468422698902110228717644994168876170093773002534881267411057379311466835407437182629584091188514587538692355051682228025669012728663955117376175787608991624442804437366531765779457559429660277838607064071815973308067529057462549547054764268175422120157262796920620487302953461934167537504782215560973764490868656154650724710301250288677650491332483299465750173293225727617749014229421772686757339349505502571897106860907573464626913508485101776901677033874077714083959933036632552436551360426201130066547157414606192815369576161013080775317639390054391778453990649386310908829822753898167835652991488465498646822661831678020886174278484487562732603659423188727323432819543070972301052630342739635744029068449044006646476910977419695172953478799469445249273111194759705194150510770717339674202669706648081403850011797115524443779044944840794087473498557893735436079097292653827825573445177948803220162881294918411025928071779547172417807075732844232665167774799335856287599257835787676610214251030523970501879705847166233031106961187430632187041148456128346700822984365018371842533904877956211488200260614544096502990402967669824311187128287903801447719506794700048695350248208754036213557841777026265914131354742541358889715094030265830604212081678046842270932778909025246077190003241429367425338484317766765703418803908719626451199260794624804082464756602317469344746178920242668714509038845283045537093860699424125890493851364869529879640124654802337829258263714473755023417277273840649575032810904294150067769430894650724735132331400184791514005072639780200553500669957259892412442231129530117732482171415591454273007792725133226153290157428307867764684942633898702016812862684391217216873604676797956967656335610439188351208980859476286213730299396727731623769531325181118332766023283399092246762803393733132430328548589736417955892837899383011690191716321910526380468046824500995704607639828352152547721256823438699766169906933884069867469182291156194014406295610010168373257483106806424029473880986291537436954762528205060807220837490526078012018175149230396972340449412928348584044795534879632096870270791262253341879242493548019540108069773297067318468656475566067564532445057749889066355028793704637461201827355844788915996386091553584904873712954990997254928468910686144662582816053500407480078238720035024880359814290287195585369484972815356825496442912844209559371571315208374270335598056756613086490122668942265335489006109580325373274435273567864910021617143816865967376892335498501280028517204596721076034996699595632680356039364879808872771427524657070436327036697481341599371841429502381472625266151548548813472827124698443283805278493511461156387124905953359070369263975768551170536948883800235912482733809650442003921600627372629878397069110901466843672541366895619482698339650959711933243609032518377450319609258630567826225989472281101196249443195311193169386905501723267218661315066231185524971224568605482106653660134220621557684262845703126782342191954944382353885738745761714716058658699704821841228551895708219254469178794840429498863521316919132953922184151842426463339220817998088228871764604023429130437056072869576049177811966197925157242775291041210656094240738813252302411672291105496629283223148917411228223334737731563103249433160319745230653169483374466725861155448658145203570687983788741458029254555180736044867229331833873091665070864948084715140633137840707315915383842919074538413650171069078045756013299549374794577672519900126912820562778570161437683120973396457938903901144856023274995703259726126535980220559087741906012592285069377880267026247937331562549663131055359861490117317105693135709654651175917595578558941867599825499091384953882417292336025177729229900817466847571595440864206619605300197546547931493697544158012197113378147995478025992775467203477391736669158554942822179525072383479670975037251825504223435195573737143699896139544150300740318673509938642602153130869361556592901016565523340519196541520155628391287368917335303405221987664059562155240015352017602490990508789023452631729401406428812719747915497191354557196946655048636154488780536048757891359676500381174599599971223297306835497235449442848772327059261478871460756190800613384592744146721467759822074483928932162620522766288440281185514380035768135107750224596411189406187222716523035680789928641283354667110956195087994463137693472408316536831286252585008653967626493563694173834266290359716934266579847490743814101078610102006923123513931765303640282202669503118044706882327560111229947571704575757055727205725165185228149915325799858807277439296302274902333134608389336265440142844672983946703056104908787168191456350421472673231286636390732248412968779872802888787215872987759278450976145740755574539693006554851215379279091740014663358843386685628162129955192745120616295759719767434837648599222782676896677354651784216760293264245678588027881787449486553852399539038889326908385231238018210649583266505759325506592305972378662066497341455257082617564751326073788841765898887730745810264335195730354810168513691978498003643611759647527836547254683185864683966474371726766013349254772904515742721801719155678049407681172562289260224869932196663876691711505716508245628372319582067706408822958529298081533623653038846581601159592592201931357243740271583203352164115542610387326076292372591404329254074773382001534841259500874365886356225358143184471789780724646474380699173112473268159838886648757448570013324223501793641931124102317910842071438348737139729357030200282294218379684054415076372634225192834549576357615464033738448161437751171833557956075721708274093497099164120200669271625178953336899189342966019855807854050321466182909009973186217852893616909081923440528202938799159920272164084425861040650488610561451395422998692503084955693604333688946905216611640920296760234254278076023267404515882327706863505482191911366933135273388840790781391229989977608101038023275649852266210824518255241129126385826728254084796751265699377195682172907073337518837036295187996927158967674393403715950939367446404002646768449106139522424809899769680714787000581506832146042880773677788997203064930321136259434592266663368244933544638631064487634975674619021168564417158359642319436451236643228589029132560411839839268410030960307495796424462938139258878179982041540615188118103168754069424082614255917659831228279721114833289250736146819052594022531954305733187972376793238624776050140070246699887416136879955376903661789871570911849926049382141538793807195802456321156010200730341663053774455424906816945751880668111026998260558499338017162576290676447451694960337667520485874709079932140625770599711272218576668506977492369290638004816274847060619905073501230006152026081614114344533276529357694077663569178352920788430311622648900810813564643962482181289402872901215937988046400052490546291382360824618868246391436156476598348799438141962615548323989809978400226122986588346650592853711419177963024315396904796087306974012614921858458284114468178114998609197793626356723909995547851483788123292734547763981484216087596804570300816724525852116118443191257472222044400155049627613054569299775762024175105109413211953606119214076016340090656465360272962210727983001626584218798710530838676531426461718728462501548387902187043609212443971854375602654848890515695225100594513796913393780350490838129222841702508122560411874850036115482790215114151883684896091697855392722252640942141209620246327082304176750242683364944831261194714258341831275731551395981709250733239011710827966320309186955140178847666035377176715943072334573655382764011081928050032193186232536016272749155572256337835958842661030133045988247183166890952993746756232762113759392642978969623107882363786452605279036707980014812121028551913296262631314323568239649630860053105011486606849124294936579396300356381646624907573624933043653616440403568613375919563056230482354020687771736957174421606754999601107654528638653448506478071478144168713639781469970781173366903166490196779310752869485033611835325459789768694110571149537845527010385627015173312717850856180167139259546603864326368962327330906320789337605884043035219636926690680074588047535229668741833409921128894547788288034818178725988834630388574197197014584978071111267882346823717813413158515031082678736334962172224447221025116396006879386039837900204634571385210635302127439008876754895335847108763407946521828147112059028798535269577960094510072510142307597292676788237781639236261974719935220315327076865203719488865888412811058601082560145162997092970872128158644155168630315932552894587696701402339533714783942288292234577798682954068135937490375781951163828738986716891629763388105237385522748975331908404012100171763780318895723657050387567883231329316685414809989794069316496611932799463998615745172543443170065839962658039390474647266208488547996087794376249039370191943771120760745319945508529278887673104590385600457651616065429106697625206900178650985389915931285653899765898624687156014339907187088853261222104452637014610218268692377657267307705535253100666701661644530806657393721926885837122343089828492761044982191042334881334328463888600887806411252833630257373531496279618257461059935884852014602445343162148047373613089642042775540650692244861412327930473035184758630035683390473160532799466417297517545117951421715880883668782320603089915216856853062284708486949588546565235530435158484383528134634493601981578544668789629374675730305039638672918709001505645711185678958201060949537132701212761289355251496574995489402832476087304701238145186005602986145219060605458193274165542783856293805260555255028301824522532219638807407703593779695652326236854941236162437455673158876010163634239554615832769041894291457719600905690679301974147014876086466330774036227470126458507980340935720656974061667777415145306340429160701486125743338178900477061315864248351905967216224012242396937732568927276174499037158992368556537946743657918341411876164407557377304925860903050272502613053347397385834902593388216494047780362982359633461765020834652620287939802900024423114821631534965461129534967061447198100983827390196805186431469480017354181824257159658286732157915682168176703564912692876623886341413765050678300628123447936101516304173064104992979774619444457494116735735473221811382951711768991803359175135745623930512060661762609413419938555579769337410416644637791551506934973002085372696211332154315724972657312128199026288669213533461169174394873399854939559771833994896884195677214235903663709308983586083202591046144790868524568848985619632440992076082417101262952409919088445873915102808592766025273204413177660445161888355756045547243544638130754566482992739971310302374841770952252319196128865618959103313590951612211940016098599995900671716679430604324532718063310563850720973177787130243212644555136591966680982678786731147295709875933526839387255709499267718708343755218833297204736776343115139621053984194297760387036934430948009344949976278452146980755150412712302594021952930082541150182881168789462355711665103604898670098713994866791257413349509674676416152700909506347993953139710232964038730625284627741152751829839247336023665036840867512552009418426412473469831451131797740441256463503516613148023604300729699054012292382951833107887297149131615120132918692039820562835584458434643625481166638252841206178162319577666343856750214048381886881707301163248058187956326291337211313637769647907514710329863880162548249541969850514367118492179058167950348958556615501490676387234679415956992904350793848228297674796750767329093239944948763389526115567993290571315420969309169287569765078171978894253263173605792480130760027860290149570194737140788251053500398558504128349420687984832803523107022477292382801605594988183593996523593826045810001957083347637137907270699188148696287611154102845403639923402764154657191074913853591019971903605183378049454412894312746151455787810842652971120015762154456798072588015308720954403326349531381351004067343802594031244675956624877175175283121016184359850533844430388005782836286476211375695197413554528185142575359790901831739666357482312762595188190679075879967739026049033623065824210996609369340375830822447989162667550787597553565992927811697516808423007300503114792545350991507793272014810577578947962540232309503254362502714859798325300608356781474688337393975906478553698786885329788337067631819950745425399880512583770993413188574954887399390353731775573835779155129631409322833882229332693739329210984099987461415412838908612948018363540450863808739626455386594960263434279475905141591120046545789267104830043038343642753120047390090498042638699047476376289591908131928129154144909053336948232251054392336509782882835930408715767202975327498716206355390216191991474720951885666598078939784741848116644785816927691418797242055633568222247968406830624932367264241540391694485100366643641129724455339705708043583300708548629853046054470619394240414413706277992764199856701442797043819806465495143189910664674597419367839731677434270000246409181778998038514825772544257177341401017133946398065155380292833384040674166610007885106662948068530127603827447784252382573312774773360328989536773867469022673588207308916880779797520306415548162425002914987680389353243456812357463889739523234488304850989695546241655611788026310667748593630689986727240582905412371705968378108829943784919094404208090972334015629554963668543854957336453169657675101846457947901071193853743295389924223851759806226443968175964437074906830958948230986448309344424547373562753490900632714204201845028991801749045016621568544069406604850153833635230058356346509616797603619364862198335746523175109194416187432244084237127270737642684838713890133388440958413017536771284939613363561923073445277973841217331205735394439745394691647532545711067938352953001202245633650463339608967216979309553492495298772939008518261566916076546716111250681898225022955093493968286542243021955060078424151539719977802103721922404565585583927215119324047969381495810639024358650473061147033510970650022856263759840181263944945162037776262435402968540624817748211894794908200106234037608013515316739102381765661796550042426293308058357941565881661454253277926585119035065953172679155119446390557434121476133070208830755094664881668810568124329257818750029774533684030805106589682701817471893300462952681071850234220962399225517884383773855011819205058809874516107552445264187484631263983276531680239109326845224741606921989464908754658491581172175326568527377536740212040057304861398480867394634420807006484868463371505440970422424450860699854484278284497497221559701595951220643193287381389712070014140724337627079683187184578301358682079908867109975911134517665350498596126125321798878506730425036124508371822825925379709431007918013906893781852521687406971627728010146378077744697750098212021919656564358629206252683886641289995636600544043353917598789040928102713061606467521737078504887727281884171525786200731654263658905732266106937519550694118691152311032198205449606839234964667301379648910179123789427532851848892246443317104994511253068412378505940813987588800089526031519295125919502799237808598940850578342083999246929627914792715757970290921182514208058018920273429737435321172854503313660273469864364787606525858581344290274185038291833673053305108977368614484083209401587550221419616961087598104575867808525979719534466299170621702678139919412615382180219544341277161577360724602993899448638134160274426962467745708211254573235030070070077947609573828595320451161598564465731326170821263493711255375654613628756548664447651025077754737107523935147919119551420406626516032367730091839805134598099690008297629359797805965966688677642241796714796198474081623272120199996021966433608838029428315927441166212245086943794191926667181150521951130072309769143269586338160930572280797681576685411813459341616782172730094111640525486544290471687357582734485389305749982244769863517508069904851935153776204558999326515533411648965393761774664381754937635144488521315542052011743714903566509969435632711923646479666183228038580390903504804145773296959502723092714942306704731001008555849249704659219071644209028323518249567878998698269968884048766025512911861761706698023895531108791728231476693846367843212816892571710376798054350402907218780894336492728216811713613304927272098280769334956494116146166274146516294450368719908296695572780293470332066486044925651033431698123101690183701836230313869412946853309007092846947874264591855895755161621483721958950043557535066016306046232426442229583288245140719490240996919315599247450163870336085008500360633401674008173670008615514520194899995366575467941427762267145423078391807726787249286957953924242229891701020616340517631797064141630284546666393301001615675313726849922192088933636520827534183666798547713603391364940032164780406244546142828311443857315621928673382249180801952532778156139960629239647517128592572006222098094922114243043798995425037224365275584418752417693027411486130412481817598874096732056171170294916084473144720699086018136069462720576024696655331370673694594122569317713345769986724205488551818122689920740222075102394330634596975655343129312439779543768836034769211036071258525987611180151653458795401708865742621378091660465189250809471608341705506456214231148352199563580836428211637061875756719591163226311755303222396089338986765228995775132495681260064017920386909029032578189115137238951612125551097971449181104117633613641257001805983970469305644314688564055781327012873003841313900462110559363629809566403195007822353982807419714228340145392695274378457828478674814574953742074090673815441515249758764713415674149296534886265202210343481742607050215188055150164358487517647232401037313101341201828292620642361685282565700188876201343302494673467711065719132585168823854643002546715128300332146333802411193667498771399968886796549337743238245224059543444251972844719284762824441838172014523780791067310016021256420049426785471857069666809875089164273477395385809406030435325905825196106428180899810413043977009430627663257822653572420744800852658030060543613262180446743363151985834680560520030361698803546901289932861964180625187359958559707305124874847704226113739572486537413548477738171213038762091671366556706716966879762415382685769082051871691365903926584858574696379249107638864872330623079921532490624710346977792920385663668564672555530957872031595852031526949397410794157783335206777650546303135794296571183589952316443691628853638214698870450315675244208862354121743659313678973659474946982065747023618739535574015947935736062662399264245985432315521842070898882964844365472228036082793765062193841384753689557357220230648964969806913752599196517333897780005348431845254371775438158269535022569042021939960185521428504783138480556579526525051398263155584962119373505803241131048423059259550103044576047421697357993263390733341242677719488960692688831571074914110655497480830080259188524983850320036521111130464746600971831581528466321089895641146140517850937521305321933128738270408068883163318503131253489990560960964380459974600164146647514195284792410038778023026171499002577173597076555064756884913224610638857204879687259856948257426712791823153908595502116918665270479745015376760454444906278870847461298346178245073800222201582853548865388022730467797235216195342818893147703216844734332819374127835227062959841191241797220522768790120928738692306886168533958177867456389029677524702085508342338476754938737251633214149686319380853057027831062303673101102326450053640677114510674988706933740652583770244922165211438268850102851987783551869383770933256417393438830025270667454658864242491842540778487837849898904296170960804199028725343053375097745459437081820242136646440356257068969041710133084180402633439512348167497679590177330759224150918455585980982414034709206009371348990136288035873712436463305118793549035819732528103703666558515860457372026236323083554734920636452737310429705739349164670981972932521877520015994949409342768097816672110255947706065462740339309340346230142036364831001081259114831741347490850602296495543029438447184151541458844498731089557627244407340484867316951124385593358176219106283602839468790691312927328031249671291695252649762293222833234222960628711584455874394754420323001759792688100422657031576301617319098778870032246512490006342116556513749354248044545020480478472837059063093768230468755424753152661018384567264481371177349511884901448327024226438122628733568097145244807010371786336020399112941532934596712226790095348771304960602918709402272937653173463226309454010336797162724105417781674059989471336298491083149143032429390590718922567557366718270417872359077024162592797155031510761117783738660490803471867379182241385531868745259192594794328706093869585345324798282673416375640741262361746331114359188351763216760250332005291465456344453761904468359124024785517772619151349450258433040269377585392451135797148352268955953976809723789185442006748017060112270602587715167382195687605447699637550003545941786655418173071615982204155531573867806396013295654932410701293164009588494154524783072217132102209658578162379492614767902589787855089248868654457600357084629715201196697699852117489803914508938261449358893815178153803562258843574517223419960640226650991598537317720668718444228403638390729077059369135549721636254466300371326199698925398213464139349026977784532037140020139565159168171342365852418344273825235004769701220182280105074013480182227386709351037723318216633777831543094691600050913285376204342617311616437320485192278611055803154492918302492947583541895454743848991919839507230402686299520449443118537152376020153245207522936026006131636136427489042381890976696432175402723185418341234920923746557687892712277438472128979975707697526637335468955076538573191527136530751515334669582613728382031601576017230264273283072665968615991482331346979201100445019720129289772964668014552523203668387100055783603422984835686260443604076401670293090399464055666919407202899582418298055148810550202463942156627012053527385901985753390115272378012780652856451415952428674953830997919371794368860378167154964960670075998735918309722112843338006672959458976510570906762378319159853737812701819223166447917199792411981641974330684964337376518973218022121661025222672827261085852488419400673747554566671007160339293398853265746711076612033299520932453778343968868372004000024104289673039505278498487013698349281810929648486525396925260895063567745687636555954586896374486750720015702283467029747015844374305970507454160282742925326224046120041174944546122120408818652857440527432379501807832340277065941015628845826792631263200107666846190458785388684531731631656422878435816057302119853191019056209176518734108385295013431487347621380098056057628134881974531503799028147046397030134902152015053966081453487808363034459028925105879564946409424391678867242762653943132019875864763769663144575902459315867632767309313115614569726082163686648963851434555472403781654486615380824927470272732267831816084298048070976898109756458392873234211440555391593516693179701106340612376702809171038425220907496101349595620756137096416461298395908458798968129239724583626374049917071349832606607430095871858111889589055617579420580135121940645941486270845926537942328124450803347712005253422290463729559769044890725956106872167220940667124007081245428490957134221160805681295126296340140126334508673352308813971768457575091611451416920413279963126786885959631782869272971351033062390987739709852743722039861929585056496617657308938246675274338555681946500186449464564811242965882950393144822966264573425642634759741246378878892710023041324401736970847075952181322948145687674266534289365249006647243199910117568308471152422297222169966499414546287411842875306279530401936177228401418877868738752597327230821478584433369929812625811942744932378721817979391245653352848287692963502374262371767851893392026539021723855213697108223846834273799036636915129554359112447140654168374359287292112802746928006097312002694145832990180629568635389677735494454891125495689462118173672027426415629179481685893932670978624547134482896838107964211538779200527654560147702703625786993084384487875878275114343036210199770833971811847318927094865909474979137696046797098323997361681327729790291588968393744260599230997878472296282818951576420988398924845560417312622974488488775365427424545866444869741943091373434351973590730600471712427870129218022422553497324828553448296778532515008393179420397151530153080194135532110937045055930746386655275316691418854962291603753660667386401764346374059420933009459555074344770164145300501578270556434274793051978422474485767438985120814113344926404220361802136898621705171063664642870841459953871364016940565674010971451895980506477806110805549702816654340837265182797767507697921391701920069024934803375805987495907377597293323858008912084499961003920482945356979163188718386260915433277671641374785415815394376918446210866936049825711136772811680177993362930986246033272954359868996126592102857575923279167917987846796857962301139940358841585591105634328072591034815972846145182226280499607912192174505232196948781208990188701521250438234063474701019285900051613941839408901775005848068145272588279529370727463369553957365402675171780069611379708786642306642145804442594565823779714666948951855985449005150337230706695108829535123824760793963827972181216270122572928289716060289109750891703344171492487456131610230401944060163260802379693219564873422607075931453867550506978161139204276559841325643348263369798208935992019973362005132066665798606590619404526548293269356789233139579080270731275666028524619159100463261213480309695668047214614700807482922526433334884177231113875321108090204284484821964172784525236256909322309358869949042990250264617389201918145773821808624857173702804976434895385503485529393493035391489285062883862985740995334232643921527793115121068442368597441584836210215391917543192971218889516416846787972588804412216135202192053735262142757146958389061124141599356312321358350377039831647445726347009817585982093275974643273062465858935129609029255224304404196647061776333537863177182291452145690832498215763755809131730881953000765618896263003607641907681804364401997057068447084238629417358540213619380376195498936859405140185135201877329280710975968762886900509274494563905122162687664991726891928495749840651075789898194441217098641798230297954041454906316472144552942150499976356460377255021778216580532306554239546042202049740556268345783024740327340988634696644983279688787643428194536385181312735074715772406375192454383938563572559015760908554023922246180955277506254821681727366511896397238076403042490999883336025860065393846958896521650176833848680238732249380175318272552669899604985433194381006827855747801607470209174130980448190382293421413659461551031568617380384460803247752610494215160881292650299930544004994562231915055226796971122843091967749954460319721420154512277447251068482008207662243433484942310606246033524511210158429239803091281009369468758787414842887716315192756139313277159627595322004464327319437581011360572813523254642389202649993235746261365640719242340760604824422179149863786310722110199584990686704134832806991229502483686229904875424140794444713972462339233620374089081133719666753414097414109947118499229342295191383337749145072137745370754577273073145596283315997006583930729090050494570236265446509484906592679838613858458292117803809744783406053897270848549350260921853209941819276048858324147501557104174219205627342257433498715605944335322515348825338418797385763101071225490007502612416203368048495716291908802605179167512797863898666152054444295500093730279509530384880106271911836690474128660774785562143851442624448684025355202074921325472079226975227129436288035573814906556318561366983192534621523893946347617186339739613367498535124077657884962522576250567209164418073481555740804188333479064470435482459788623911607239247763695044981814739964673550218827856826537500352315626795093503888637055165066107550072410284912506125077438734046202575167872416162821905750443746102707781333904950987189057901317669622183456394674238149998410345828528782517318305353281764333206031764065057500711881546089880024739229241072441201561366339556468529660747930324468128195171807168113823159620887105036364383395872579900508546461747679897983614399919532289033118107999081247464270864886548176760524799408280303354128557197900559664075484052411632576439033797636608948219959991731174702058299912097685520391830362590732827096406990016880250631000870346387007231028993514216111047484567435480040642411189600215980605678849348217214700556368570683731972661295732468679953166341892330892898088311689907390377045397847226304444699727293468623028292907058938381940793442351086605002960812046926196238754844044294746883423297708077712475344450938119507788350962487433377563837719785354924589371850681600848103959152859449986995263034233416733704434900937379356779241590010866146426290235338062970027683307273759033710636773215461139919244360722034783086337669066564151948858981888916668944445154846666280208472198375080589086343941681013148072911526697056266349328211898892597589124931209700188186121175622108957617588111003697243810529980108977350299526718655775897857587860410781238823108881082984334968054188281010213313279224878790169478717966596684630090521860908191181731441597920747081533548860400611190226886693913202351475995390899420468209827618925108615082793371881617551002023206759199086597322117156592658395384011985892516300961158384229344620912261233851948257718894200249552104308421853029616265842733078401479738256826755525537628102793349657994903020203433754676648891250761111435187791354111228739571308886583354077328118813141778599008229738223365145314588066855836395712169159235840940744793853693049848064424268339021258324808763268414584663645236025780103295984883955387984646334564853330606235627803928840538044729496412744898316150523368625595530843534034928350435747516868631739599610578620239029358475053166866985208213780593659010235616592733116367384216541751099301379484496670755799335559592820199971144905685191072036690748917264039197334345445953440852066333919775257656318412957062960133265586080485104678378400066358763257084848355531428873191838654540333673588617953792996937401270587629461287393639437937272978559810415011505253826332315150566702677972520447331925527442996863342522842067725150829294533362239320638127340664981817048362052780714865953043750450474940545744443419883917997439757796075244520548731668273397164176550121898853138453805384994730940925346504367197317490553820202011455303545557620537491330774279918852563446587558265231843563188825658128102630757072457472926180068410774248054730700865649038997155950833694135087334387274476682835875554976624776392816810360299247109921745430339120191018652100928535632690155469688078759731441634707418620603453672970418411500364102654777650608478280029104923383706072252432534153754166499010629835079028993578072052952663346372545175079086459032969865602832884489441796900567205645649043570074146333067966203798792615500604931224456791099364210725656215437306125544708384073557258466244188547564861188476016516388136982896400023666487413375198218097643665328083838280815666104294799249936148670540888144980728880649693359595993890517257623977135940492682219666436302618524513102597667898938349255464396443736911749111770700192617051337248957028708672677725604095586303766237788352611648855408191786119949056654650833221527499287748681655224237687881494217843739654897723821448302424020606146024294743490816831638473031891694395847271772941391897216847042840087734622000241055596311554584950166073889783284642687804689944903159839226296194756443807893866169979152027556603020514338417425880146453384018590168381675399735148181561836478068427031939802250603647241615689217740603498678175246102429934609005028709047559121944260014143488914896933191912804849456796383066363245556398902501547623653550419595803045534920990918901619329239350066027261884671480487117848504291978997927139691177160798345655381317147971598948934196984265026701842217523291116672910075301700323824260881196595191896625864206981146581521943904010933019377808812161599943203623728954375459978112391772079383254032335275241427712028936696831444750141545298296466098425525954253725462930690352054646697500351516353220270549786400740911863063963642685451177674580755225664293577382957883087111740076161106966905774525512216332223642042748980904557223679165764138399274191704906363501203916670717936445476763518215769664653287730711866262424082769058293990893530259195639752661170401509642647273206810716493464042416825724463328330489630033167446370062432439014068351483217481684581377984867889790553852079312599569931146579174057139687709896796429953689851777117226808774696647095500698351807603072197692317879711172789551799746147975825741177274628438783373542380365839356918004828746983823536536962222604612086140230310075896113041069411989811727007648519826596663769384960681070357560201858217575015411422110582954811219142375881036822715655118226736787176370831204210331646444194837175141799852075547084116040017906752354599131259348522404224197676438967881067740859796068426077276163604412572792107727561163047546158707124891839449512044700424791540892270173607326226759250271795746188131391755136042569711671564375853687444160909400005267903049854464879191586364482025079250083493643097924039173213912606146943580130636799769822615005138175532585141976423194916482260453677270058890415939824581099039672306102466761142311730703184229960144868220610225337316812014438668937825798598224160234981268326754119126493016501702696678771971981245967051193058841846617666950511437177303596190752140136546192610239112001169184952994179393512044371363268576679239283493584945458137779130687572515330274354077158193789414963178711467256487643546964268163445373919601733527272545044306461379533104241224259058517288133335838289909592093380476998859684423552786522710230148185300724348726329101836669944684817576332609011493886459872909666474783310549874165274896447905168821036634067640138118643257961859016595962596580881014594226203017186877080841172491117248930107499812123969811831749029154285161932442270794738140131750308097486930633668264906128939548227345494980573899549640001606934451790890880292905535500153388286874401871804224596527542154631738136058079385668331744027858331074290553407637507729956941005536974702148286707901552261854772861820022863595983810115688712734920258446019124451406932972376442433340525524223522036899595288533221276763109841691337995654347430403915739791380860987823329646565832001221166319411196259652399218959512542964670805091205280447163120997186018669479117606962514161092834044029790582401095694731656063781339476590013363071679750353982661238200311973912218132001550034197965925740160758200771179101231230929245679451234720488672703193928981191123694486609639826266641559476324827797612803146798947577387573154366480639958811103083384391278633473871449251378518799754727825309609318727789733955646736326483366192213532498711727299341298528638273097279001494129228505993605810681621231393767677617317474170895274549303068477238470719972727495894346862554118879489150848245014216473505566646689105471553972183673708112461314862192617408316700920637856031619838843906897918982347393266206339245513022627501146817717775004552792888315592762350571445449437673289196336400484939990662883992985896382630447809244979686969534196884853720617078889568790823351493790599621220123021514676206453474158689207644689521062561520012985637573149033095056549390527056452798621028547295368883780154865994414825679081383485835020740623815194485677712298115305757653479812404173401717922160178127805802629705062372176277396012587015379192762639834181883262132570566546195295760436203968927828497585262575748238106426821005702488733896966297437909087188260183459224245954798018198849298420975928434486899696451249406711136671405837216618986344907518375663441418020223343289957998291364291533657283022238306393129550308741781379779008367106836888105386630330599400917674320594893665853037484904702423257043032878060784739065336554743347352542084912427084004644828065878390419338059968791711994706596507731266483675531271961499214860954811188953563900484970237499589328703367495893866610386843762848066796611610828733714376403667524162329294304815037771627843714750750696175943764891344256959815628930275670234088464109441773715287974813774259325568771681348887050774410713417500597332649873602138793312633972199344363849361168601197304730159216315923742251639258261129063369937022300706088447271665270645993653240539957809842376628093374087572627418980091748269146364051632467193094029648767673968867464449960875884210642462101529508904249610404158595939411760654863387729916111284220178011061870804094745923292757365015956133521767867944807894930118212564298597484387929852051668444121731380831325103950627610445389770772033638611817225072710246233238528383675901451842712539397197103849457794428414698014754533494371743880505689422642312112574027532431943897240957163702651162831692275561424101746751087109215977477462420345245265746727751994635530926988050599186004507440093527486106441881134948356202670650790623717961750471588124825870427897028081311362739185887907055793382618612992561263401675521379286133341079549365978364167078552688198899430967145116124982980831018123298175725598799853081997425347009914906195901587645813984286158283209841316100962002822748395466920281500897729197970175264972422884072006702516605271239966916624484769358917317766688059472444973963960336866852793699219457004910834463392621886259480074529549344142657906353344506781174949395488265143489197333188735964636005912906696051210394221389722779939243152323653402455249490552441479334064540879949635819431176024794895636365749429288532231371226338355332298880385623828420965783233472899995355413136198743887524358025906463943852690808119147566145013709549327779689081144754765032912611148797946342954258551845629584688681192049981477928596411360664976874390357724747632537425589292766707926339488443021395513892461920637925333867265618248106840346575052087790080062247306653301467066639666913767505903342297156148988916443344511216410710362259980687250041436500817777275442889606263124702571721963642649218518442195936064234293035378414687734322890732195213833625812173263309051154437008043191398669571652414963189829916924604502114366328009446918483808890660225830403390014712620725557196477761192124602782609766335101544675644301630466568488702367108941574685306626961315073499856045192142406970829572986733696850933199981375802407809710121334151736220229476153607050504481395199673189710430980376170036481609581194179147781733285380173049266852520258327999126252740915901383340907270667174054553667542002344324056190208436344564365188748588290175513006761863885974535782544183063918357673116062099083229358016464487926323920786216199045882054541940121386233740603749852341341389007868090837901627464848924199362033779409972721855406635259335552018453177955998966044650984384378833686817424710223010551968478901710956436305567852773014223068789113681089443238977605210355014825275388448442724324995146222164129290740037177397287398301883708884211161090278234804923472756907872264503779309277032339912444644641452022978178219820511100618557223258750285066784448123957840961242216033376070599249432370902404628967943553188245893123439185432096368026682075408405678368179846728995181177627229765664230754687230655538207036674074677142684735934397012257926918222734459106555695910009116673455132285997550362091651414582438664186279825576038623203442466333570584909199639102555799545395163625427864408910799866140030566967688331551210977784242534174764338175376323578334262040622566343053436968084451749895356306661997609977509451009037183810303466637594035978551672734070835894313504156152615540605942038378094424104999674324424846022632879844803879215458800884399322881850354821244717735906905657897276965997404848763579394679739094259069058086889428491107119195743538482762948697506987562719195334998591119941332075513005636101829231555535879419664296705965402764798966113102465928801192310750296315565288692823618336143934320597283470274957733535975907061022751498191344735388618647228543226741108030928255995533273616764721078796187441899417020588775580127081417073341595674832214851595949263188079488945962331670747321667082379989886792480051858138319054154911480683963624249501709453742717071961821485456298728917826756753088989864726499002059885260577394584447917504694757892895777335383746966527570935147042931972426674834508173997200688148987232754425384155501346745897262693358546830602048189721930394296813228515130149760383483439407174162071757468338187807153490119463352272927086507347836731855646005595153001527293030707520023495864449887387974084040826473400505759559001494755639262566211742367608644632134243773357914151975969254459216764845792888614185560919806832986699279311071726119253182413338551047586140568719689280666730110871969578013293823400496015502590693057332369507793658602112104238878860056350945473504684136887540728559080862873573745777872373271954844637024161402810395707483725084995300429197650258376309052433237612821743248698023919075668239431660985385025400000644943777375322827319787321818216298990898692722506040052038077607664446692263793510564387325095155487751063780323692540968968462092981695311527035362412861962989783723527065805977393072561884735971034815763301785912921238433991127854993244408835631784034226292584040240974359366508767176065649740573231342134034892864939392873553721543832217525571270634547376962851705772676419866285496537451415601197593332201542733777413111861413091093923464113848734857224537883814016334611322942433161087372432274310713203749365011878408254469883894581967231057563340172802065434767900537015363873189639871774594232031825859259723299660112910827508312582851961909845000170805380183807265567505607982029321135690966636862542580527361922863762091197569037003780778938783373585428479323827595329592329134569416444736851583443282477203520469994054409496583706110212484077424566025820326098193469785864260359225323837989703909639616532611381166698563185554572864883607948691258276786268803525480455547671986609481037866662838043730538944771463298871760658553850577812965148093455391293049539320204609685884582698807256043218200771036682982637690846011786540748636672383652220062357744401948401623554013427393949383859821653552740454000049221273383771349057550808844337987039091331067288600157425397125620954578241603191989924451032050059961543143529487299238291819124646713596634576808540797980873676925355562828272868668614873195260611259063192489693525336432401094864507249726218123392480041666743210562459844381956746884038955299444227928611883805873622608724067696884849129661164854037156485759465921719331302909643256973877958138434206433648078762132987196092940830000758149769708113965412033731650117494085551369588545155513504230167599801720694819736948099803597678517026155261833540392194926793661154160409844765628648517954074407884588483601433998335577042496219596388895959112153947989611051814538577120679909345340495099836462695073135981038808645249241498337483327364946122999790053290306872279435318545428563916703057685793807925857476112342502790588271494630063103725303857976900264605427600066239610618203658588184302334618675561439943395069859627517857773308474230273245232686932059552401474659238330055221056676503419914263192083376965241936934370075753235473445487664741447848042269577983862188850252463453671639648347624886218975081686290115888346297493050647659969543565790018675180044592566477306330500527669064361216233008848528278376616310903099414840796644881497910405395726137617886297445903356420841303606800840168962218756449305522873923858107708742151594832744182436655304106519140561589656152575714413659820924531970015440253371266056876555913358178472402669898872369614865136623795014332751186343878877734518554040857937238232480497262754029102998599845884327965651597893281626693444360962078972591734285250491512679153063547093407481691158995070065413343846301761114914467217136903911115495162714465339372650155540359951708879678939661409279719419980786278231357726326885538450854482696897738074588419813969405362291895737453876884033653938842996710519757761479916764034346621137185982326269762946979179085471462143724886869702407202961817575728787142307207690464137498741313510554174614920792465248914820809944631426453196018561955411464735810538905945481167935434477850858968338937825050617426189367146652617487372069777589560474324290011108110880120279314275289305096348280022716461120868556971071462545738711583443576275830292910446584348985574635643111303154162690664034521711614101539194855081026203449923373800034483207693011436976853546638446856807268886416587289842380136564560943146788353669227314275558506004793985679956439420827375033791544802222624009192231094684058330448024403394864915646356984918194534381280124189531411721831149627928989575761483015568497321829184629741052763983216874437763330414290070193434333275195192589612758933445828872851838118472746574458262491151733097327153910839523777025162016250554961149720431794957926679982149508871240027287442920904690983082003434603306985244016705060694730541977670733524990571176676636271431308244073494249616820991094298791696539725628237444506450485619925128710675360999275373556412836732833926367478459491916677789348082992458677071408067591162036380568057664764862151439904133363438640011332657094434764936786018152111571431537490689725653020783888917474778036739993878611201017986729142922395865484879627452227986759254118184697952017429074482481122245922361484353722107014874839470167107988971370656264985385671336154678668121167704041070288913824059625482383403556755718914756245554111279423771110852001748649949989956896845076301454975588999875011974311262993750881719046394371422326186317906052449746337666954665978345798998644877551329353380607743729319104165560951515826284971823839004647297405797609692487501606069243822646527950429680655078300279724351368031417617685630251034441412426010835239435823840337867639021870151286211255757109701734791942734553812021126241710543062479794895533873406921118834267430771601423812613750360835174048351460934545677578725604148366929746289262865563012375861756293197431702399331399202198684704168657286594910752258948275962861832051638400718131345622395460887065950495847087973179244283207612075701848595900466005038276717451380856851049652471331221027705205946089890488920187398405526698594462230771060675974507245125779683711193376602858588796395674733547655584917791697136486672612725146548228890115542365691044856556406922145917781822809613354891388824026470717443284553760914766250084402032882216763126973958243114973758450735364105575327879931138170111480956019119775375112925094344298442211985995578404277209523197048741894065996475551326894919038520873433365913041022836092492990749860194596740074623691916259112048754971538233234766542946681302161064580684981978506645655909487817109836738225264360165497522566918959884611297635824639287111922339359827412104930989084403438474296081432901220107390734878065191029692981184127895733478348078955852914287549936879343152036015901358102228093951907507742279004657418730260055548365832614566247015657147979828704563416412993389165261420218467363258959404081425523984264195348352960480067234614735783761995427343007923882139461840566066732905720749971198520974564791244503739399779663023995813669260532396830444312888642510935878683969258066558570157110726643888450079936778259366259116549362037255138958324701805420389783780209072908181405084089800389483515644709695592421913237616042128543426875791376727679494317984785269166431220139925463895653221198855380246931585302305274829451273261204435536989375922514510262611033643753227712297236774119658645833774435602906972226765545338554082356231920050853301251298683808284164074900587492730491026134166517841246335864337545935397515176863647981418510532151799272626551150261050416619064986581713409777993408105928033595532178978257757241958849660668892129078890958297920876260004990441324951506174102750387390698093686913516584337881955234287147980178097991291332310435629145194958777714864969007201020055064969048954943877208759763345988927532984242496729265983699274822862794451000285178221542640817435738755203141252890002869090217387273206759858343973665280768421254315231483172754970091218276322705746961893712110945122519578274402751081810823295483908837230269859225978928167270603253624197304349806982859670860441359198795956785714379448471444245429803122410840947422477076581343282983422236992896729766867095304561709293979619999177288366724264705087127661140952204032863349114563144718560203629911001221130852596533086755354641574554768636098370838612472480914593759606804766506284238569882171432773391638807512045240536379961734675155830537683788163625784156471254040615211592081817025949517985296460311569751122465846864428010322351008106273755559218068586642502818373704579392486250673724234989009917367514125577699610039079182123259310768651384001554381420360109442705105763251234434731128717696552715230743180744549250353837145510557929736300120081446256912716482874917662492178858993796825424386596953984878423422018972404779762974995981527731118452905887825724602692395436849155826660271559564012597293127184652353756106821709122977136449017246632158352705219932310770195478242476509041581446128875676025018691108968908226609190889103833950259150320210951158310745968065529099220361885104134348100602615889927231934420222634634900996729842079219274171675304822593955754824260738940258113224256142493040052379142368135719532553880395850510784700244377539860142383009517941437091157905448328064985721661182853046393530237543858983168798271093598854638602117386644598881353706985453507159774800765729995673607130113888645629164133218157870797167111236733786695942420410882037847264610729371823285692061780458097352270988016893450370634802248845226481931259569580745967627499875034987282988876442566694441313154197703708776439552172077438131422728363727129961430673956942005632229875100673779019151942771224313100856696825476430740659808827351553689016982838325684972280830924466350745484836842470903628876360064642238961037158692800374770685734685777947310717616763007806367533009684643911532494273741899529218597228562736152861104980941613202547844144245270004722847594978942047745743454924566207444352728690355214886552519086844839798645454688132084250860569786202233874774652064063984539675787037113313230913426591776486196162528491427578852892896482199712963209393251620372320365991721650014894066908682589734852862622969549396877285057102291795874935572534938002025646280640820945197533419324254869593635396882861941794219896108320245168391741984332559674368549363164574234851193807470909500999659068005280582180738199504846373318104060365428099667635508112373565680230910629032181090650410502933924318996132581464921998513991246932613459990254895752477768386278399316554629448869588187081574091487169083897078428459388653049039910611927252384097978649229235249140324137175183793406120518508054186478473314013920832104306867294037374911077826213820084703580757155292775077025196625912601974280747783124139634456238856213467362370018048157864460757769909194433896372447702921702396911882148988123256912504202879707108139287479364415919540359143471815511105079870646467601959504301731429418854696474306671308212110827378797940539885762087460079701652261767585056958531045528481023655111327319445820451758386289444882560365911642308086632714652780211875570246674150929697065084085112812834691698852376486841933738406587675034378432490037053486092775686411122099446632221775904630612415135758558945172101365078566635320013219773553514177272476154235801738874377443200445655667449570018813300007362034294015115394719245404530904069620536398318157546858504099079380403314871280525501945821300427674505814414789196623107648996178201668224399142078175665213094923345428552495262481971659384057419262714700065551813599691746571244214664558228047331136954496793592617918649498591236248509136767854758570488457327979694573989640298454748641701902769911153159609361822508931928722577035821612358047979524700273406899251056973604705327091980819442374671383475839998562436903719560693030476638909381536004742778386358319999688543073979750753776589028507746628422009590271283155465608653697914309593683096860651834491344317639084117254882218333230689864941299907108908572570151016527741756194588629134697028935694825582746253579123900588467170549437639209601842968820018362770126898695527815983190702120271254372982087211012392793265326717631565073861065530258866026663682161695793422568914144659586203295669274778508282051822069614046328762329746990040941342882318423888167660936344094165499279864629514444336888775007823448814502442553830387956906057957311057867284971180049621941792560180549402843766510604684122648940499823467763383845436571426859942085335426112777925685395717262074295896448275752743408452996931125570205936201063832315466225190791931890097430961633404316635443537739703940032534352444850425929722775448873919934382536796192232181925602358771666278997273814635694528533490187520938176273578194062370688050860005100000575203012933868319247027840582609608126252746191473825443879340356572678964346662856812555094551293776396164897855693684870254377462742926120649679533062512491639115201134704316038227992672183270606492131647338297512073131143103088764786074918354415841998525918971255258033590104898912514381846450990277116822125978160669422949828608512065468671169549952043787622003439417854486263905048941371069940668208805977210398206972609979624954908034621954285595345124676718629950762836915065845697100889741293644028236617948496791536919295354172785060869420038650774840318223016766631703206250355084423229061929262196826151506218952318816617899496147861493418279311541835524806872173695001286101166407402615093534106404299683818166490343191872636820025224881504057002395041908065471344267200926622148599724062366945862595402892853873814512294841454120347426989300815088567358299867962444434280930262279398331033676140411888752345851688697714102160007516852015369146159209630651508742164935717961174001634620049471082826304875504764440773569045486620658331654061278896367050834251001826877168022875620100910865148268598606327179167920322386175790267404434247768978000144831331151739077486595656197429437375935471158968297678999621215427770983625382658754863494855338898051690244332278489141965238722027765918423216706391648924906710445331473463162151350972953758497183028477973388192273963661714443881536815642680747156007305752252702153395206373023407868159107025001974286307401074795250975913830603328630386572921123211924373991581544108406635349254654721773256143054436738632359364076182793428697137384216074367254095578187580001346303010534017533730596643613518581648421517846985888381783958080736477334196502512702117832084863842987762906592556072334067235096736969027882655415679824331142737141844334370534117499255915226162941480461042630872274934645933823243710260897989010397844062652768391686443225106204336992614184365230746730677110909580811953519120091332082594684229078284954926442941442031511873225175173915057179693483581036954673232069597993994294974099622664942134510328121375274644166334593768020289661939679174453481463962677419628678273989905775365282184815082266761162590889040047150684849302552689813610075246352680398350940795035792380203770743648763439661327559928325482140027291194478411978608789338608625881039806603978498718534197971895358695359803904697379035086021294383486768213639234044225465017600405437739388289866518170745182807461585908452202519933219029638281361518356645968644134426285858082103689124992235964055070927125414110835057778807145722056197380694665461609900960096873314173644938605644739978174468697085613777766180583471916470978632902342759406864313978854532586248983367250446749673795877545208920533499567256675921212105223309297019773541601064643488069691726672827674886269709277132263761638639388403059119374115996077754285202003502004042622511686916006490633974899696816546835260674600539676187121131465217532244856058128712757704014451820061978138478360272258101312006897537440657530593218659335315733630874820418100267716436088759376814560591721749695606435036793529817577858213140474059269407691678385506017175519140927663665400807068149974255002092255933542103786070816911984995381832546117247330637809506794287809949153507494596688738509533742103923868230159508004595845177762661955504707065253503630222929862790184501612112919091937149830704553760600222252807344184449048775871764481426995134309361029304499738855975717546606866643374253178789313854552102256803808041089912867196898598156977303466945623339442180109654946343191137828190964775486354783976012395867805324550561992400243795490793467606910405487483377881684089903311768886323754060316141990172422005325610055927020200810045990939824799991012464895847765978781704255024163634252032910487884613021126806033065122725301351094110132911773951761471634726934728167295070760696603277276293580800810241304021441303500967747835933382314647507129468871618411002756467291163880311191177751760593608822575514293237565271943597008039430954496341657340164981197150807813067459990461375135915942785928234182605660591576757775167583450593295110085478996792919417354229270599658861671576279744783111331308171346259783176250829546452956957909571420403282425509160500401975343475838035694754375033890750731058694013887696166246118756225013791336432004408503158857468710417539844840496498469105090124914414470965391280077684093551060581266229327305419086609068775883605746483375241884382156358949511639774782762214179988592586185912167873691914521070584898929020729025043902570800000340941470194700693409063063484159688717017266477255177521859754718350239861128203978677406653627322900027173695473533400742703543309462318173947763492727401337280560118335496626721520233177944371703334441070146624912113753049129308974825004862531321604174321047520352953335684557712833236709906649087473725762297995587947552474574868089458535509168505153957664614610274656739527390358874710934845237339293491365700288586100354395777441222148531615119552406184969586257312465008313560959629967065287552843176144828061401524976735421118632494548866037082847883121389456441508185559820381117069554690387489721879445760340606665980904771560537716844333463493081183419681955477957140553928187166832618611856329308771229000466803875878271937005739444030375292913526302352406006471631413105814322619936216864842331636858312281268842185783158329609376806109998965335812738488148811787976512475774452541240746296080224429494207358502719571000693940643415962424754960308538500058460341471117847085122255153067994978493545765958143438095071919983760471870228121163688078359781401400741769196931192825898750224972318565239445857224841156555957732406558881071598178654378703120918766125584925098375760123165646872345384412773808969117407001051573109668422967338570827080230103026472033587299898337254018402875860678055449864703766435025734060683285638530591247443846741875962003418850394486153868092825213873190552026742031401827328861471188624044131477513077500177742996907515224872722935719540098310869970364829712791733762968012412454575680882752804622768157093016664730502949805024130669828980521836373247974961145734934393971111575574511005773101409823251000689244714493263297077568698873452958372069046415489140102197842674995536911533465138738656335476352600936446251779323759788359341659283108686725016380188812181110485841588923738575459831857443639234336330867912063666174191686874914689079800000221186436124838402419008861233775890606952447684085711296476769328794664023315205986719467542199983243321787324912788200650431972707270755768022607756805669836499438906415960477032358901444607980353260667095859785786559494967120587025161574792637188579139306130899337583580865608276481458180235913982046114879486559199958453561397386159804201116068888578379463326807522809618102798554335801185976398330300572316752594776834304546932765778963097371845709797458012716445761695648628641240098605676688116403449884392732064321980131427479430101834871037643815522295464141270788075532289477853370853198969483099507552366242631103284919057603991181231539307108305504794801578703204185856646309874897843678078638253229694787908716194355636769378935844499405447253611447027165209929298803743631471178597329615137063047908252763598351340587498694107024288615381635496022655151445405261310782644325604919202633703423462654966093656426705368794243647051321892302916732326963020312451018978981228028457705191359293342828106824492360508310135508162619521053906688896615238791640865581560124678482390037103605111861756495000753091481291734654174838295535964131341720599989734811566908007755342601422323306370832610193192742654248877460846459569620482908195401651418957884220964125568302473193167932552033806858588835274191043999832456936386648491993173007855973043870351245452628977792823171762081192691246272189733792355165276761670731324347919553439720805155421107891713783777474329846684447560000954983927549128410451255977661509883906161512695160400039708982451187103329716673522831639147527187397330413013900918505068158218192239913839004690692087756490247557458541731505014911559320865581878880461994924559927843763532364010170624395374287246073904780792606246151286929522203733621817453469923078015274096249099947463437763079127160312649023726779506909409249079561139859264784450248069586355648876703726820497756491174474405436548914128155830476004883369999288141098639292837624768487850441710154557523897756271094590770237746572476728134123352110385701678464761368206898859559036124197755708221011819491893318305727073984714401325695737817507655541347209732056748325013177074070680169486316606306089808681932796167815707343722752058137488775530893036886141777257900752110857296658154493569425369157826154948013457764198446760552548983244668346947152164028015750010552308400406167361733059911621007284470398130021348566402486849088040172181427497856086137862999299905098579124791157057829376829204512910813306736403189932642727360442169174342165169135087049641138515356068652749866170675224985080939476065927912422205759689311249694070362275177331006702961786950109553996656462060314608008389609476051362203420209914313102866661929821502894947113133014404945712931558540223542519862515166794200305091879551889704761957294612784124021614751343881833108640957066851244241545792327245394118575888001650358469848682730978488223023163055295453983832829812301416144104850497082650842341135038969886779110166909967934290867732419922357129724868496676884301375744908879456543056564802198703269069122558986758048217368359757445517920333618636461189338140285388043129272124075397736673034827784716429518414538565985607806283100401131986350314635435002861711947785531716150659362505097455865792213597143015780156379920960630489482840910500152828262561706593309332228346501981477783731518920482595412367814917182714040443599173496412978649212576107350431480913411605159116238009514346824758137203889625434217197184081457211994909609534840757204683190333247604230944011983630906787119920578760104713344316836579519956095444400013540057621538283057911180296538562001813691485496964439315891656208111360169702574336181113270379553547023844750922025879775262511942688756749005254281432139049373596300393524779446547922507617812812096066460182410798198031605114325165405887054633470044829648958112900925296545680592728412478891598702925869620503941398454066782545135816719520141228963235266113468206279804597912241285547090581082417474146883123986899123556289043665790346954174480382540593606888779901269271691059138206801295868621704774569906950699669972003466119094767291546463306114990231380886361118769592703267495824616758946073847553890966702496887662078911402783579858071969411429157780726126165298880491907338965054166840007464459505997967721230507642025582944546719638577792724520140789587679801566378089241053880018743286582239535704063410751970984646847875362987627606370368883509754847400558931213426827740593332178518580806844797214497399363635789678007401745995435487831816893862337885037821084458460473054057043817912776502780255572027504956258928536542342680250699976405737306800240380265390948220528154147955972293335077348066887879496835804466355529371290305717752697811963549215193185303578964268693719861397427078533931040579451723897592276284448343143497166453339845128572827508638865190604077127110098491943486986164985230347185691589312759962539226583039418535993377148081279298953672546306307376880264002922307387322639155207653250739367256439550253349324524644201523851960330013948091979387923262198761082713363169477616729121672713342230714757053828927510120299343847303030205731247266828510005004471465707749115307310743026803994754536144151380933046329085774149979703785218069767486961163295247770028963993713208715337578284064879491963117730092411055382046701167335660100837015657303620812100988658852700954026582253190346131107174890491111932940120359563142903919076652999620800742482438149245245779489370351167639406471197960482963030284906883466686819823208735186025288416177103747644262831014384504956580033635019181500028463911854558502510315503767031486510831244759117869573798963003604113746105879202505221713782804643018553608824338831885272247834067437826893989084368956472411905172749887504225250049306916662524439245133273800202714582979043546442235951677407318382912490520018989783831150158724729562906776080341735016318963238539420015096296313517406272298622356870952986426245533650494122514390102815673855320822297281446265442379675305287330487727283964163842795605619801622295727480887203527278073560333186912072940912251846734073529153964841071132851121975465118151131910386143724408023210902559473495905344942349096980827233437033043999410113948589539033613103451533575396908089365525468718879368803580453826211734188919019151643175861064327414437964074127323333393146561451108019490566625840382521377788978998674933411446928273839244679162954528556830597901866279405725851572154024009592766511863061976050223820891322851614247226179854658638829027162159815975556466974807550864472150078535664899603022930824406202125707293328611582664918946967940226094310348014929657664286680671912868582049538197770351971056883369490850074958674529888685780741417945610573831071584916125483688142867976842039724449427864273068745647406842961534970393866075547935237525930305885288698495444406987035623676169719207974937376042836662196075022829007410677221863671617243822334027921489438834507074009123547526650462818042026259994498335942246472778766237482373887584388867782286288975901837305702358916930078649437902873693505147271579059164281966347936288486350241174002333225913359056030766236261919490903616419144329613225517144064451119263327940065526863277341013792356675295553121429761914984716169036966081284067805180183448333775261068185418030301076055107402759310237939752643238725728636535230641895823266207754019780462879387735660937400852139369172031252783873463640181996666091700365789019717950264675573778776074253517061776094831266781344107229418625068522859535259767139308341200668924265964949438287543386598678272715091128302708926257765025592185454058281836925951285796492897588015018452384609541271341674252968294058967322414859648131295110633220457689012662793882039039546248350548662539088655991546207185739783828096684199976311289573488634353965314313095655648338593896303879229405131211471373776329938353720084788251762188204355672918427653167337136586350419440783000558057676135092737333098849325442679821980626281468087330918973617773682862535095800525935009354598238279659488565217500927900108692994051474323173135421668827417976865640717171341852049658192676880962896496340193937085813434355506096316755485865807433766615966549092746178671149114865308315767157765667192830182144238307802963260075655216460482683987254635942365787983450989321290962578572817007676176994041662083812410803574710529959878897465389759962750145499912588990107412363597596478832203783881870185942382003187334216943232502235998540067972689056298308201560436963431072323919542674994077017284654695670456691149151099595906658529733207058431123894982570142816262082593345831454825563547533733657898996756110262740186648765050513932854035222119715414328566184052540202591965616622143818956664444320059677671723514733979572528298360795956882784964698758728192125000775614529863920382319604895128486307344544426610288396391659103887731848282622439208801098178846629162430449460682863545016839194688988860075117615828562864717372688314633255967090090265930097623044627261376910382548904032419048191004630990435449286192734150588428124896626889753902819054098696195485250477698564611455784168170523356014427731494023268700442068598466955913314492023750977586310403510293638054324421577153471727284137137391937032074015934004101740115984416012305879242121217921223249473487928843698684230916705347068813922836314609851159367606460821587560767579878961573744871755976062855745711732575998937316722857123464652521878926723820214939191726772886716155985682469635817888724537209100728519755216259123536278396661873862280676096558871042439636279450188038819982967172125876664528372144975655861204955504834697190993364567404318464332342518272197750238478791162887005120373528647383521864199457863162709184188212797081926944562650140325863627544655403214513497569892119588894248967507324648138269131717561561644489131129838528658208785814241540825440415079600346759145546623141824358574831008700484955788223388264101928429146660230727211059647597108262974545211379309454381871939805336824071800757832335812487489120399280214885798362098630697449976348740646834494994796318318045104047577230797588267181163648929593195557887411140111002459048861024913770995269311971633625595188867933740527531678040862379853337271561253697902938653486061793460489939627189179948232380388851111438526030497684812446016372179108656749691782824383080269195688223368531103700642715902337424395097071648159838995504421800323177456150896077647913146995431378255524333199585559024289576200189648384200905714018904309643919021842880131943694112321699541595027876795200466068350111999460420974221685240363821165833494257990968358262955602516569734471339330395043881487666190216731491555877493926708384679012367153123786696201003901361013103278431446721539584992300153007800256897163256955651687017149197126895165279971350541900921675368051117561431318736449147802226800795172062644253678550417932315982049437931438972601366910677821539836938756535341120477657273068658722786905719566230409896964742509142639063740121867676690473008610784586845991475065761053890204375770913918791048509935028719570439875366738504303826105030446531668923328972864740054409857859708946453509116920811752182863494553636058140587278085338667335876719043116217672575155315965438089500827127919697698770679535935405053620049888680750287033123939230602482989576285146906550657756948625176945233846391277627920898419906554374906708194386345933380157511610360990413671612961283911244368692631192059138293175639601290999379020353708537572790337946212968512305197872487413026943979129528899449389264057728049796848006894974386267720030076209679414170992107096782646774992002534071271263095416276510475083288721246567416169039159570715071838801529043851544440390182655424874168222497005164425002198947630032629142437334965785112413571683955849486650308834939239159876845467457954096912631262140120686502098053338757563073991604499587816100876191735466433741349621642432629053075865999308062016083748047989354391472276526166534977039632135020858495281633737837498624305427500241700598537515797200534621258071202241894884317416362492576263991791422162654969089313554449198984270657488943482600397314307018553816765895838644983086298207071477257169079528667270763365530570610539695677135703472924589734242633778333897832773478296744141483949014796778552258957673967557388649559899025884703107654133333226347962406314634965383686171718672273813503491958058958403182382639484765239347118485912438657820883726118461453689412704649471205119955427008023280724526763943855584301046846729566472489537974733177404296292494367411194224469810056698384320690238313473052489894848177503046964062284797357251746574762809593296794017837082835814300757168861852297686629268367396608010104235190747028258571826232086818339621327498568383351535347113091734405585621495928356763906910009802203301421469214445813474179614365659714070972558882265748329942179610786329943170518716033054394288659144654585253382196085149379490898380694390620691773657374076554894075384173841463582472112527026881141293906188267841662092593726599971662030474093636428272841906529371512479942686311926619837980095548562839927344716509797720651689010991510788648095267669754796498038231431035774651961769793185289919940381460676829633137986608242524955608233389797040823910237698749107124727228086920758084936858837184655045638069711905809886904654649944670786065108145887124971947496210287929788594942873891661880500415600673758938903362552643722334570957788484385986130582021716256443088532074801926389044474213775973188533019828239784173103856885091949872431914710454318160450872026397125409797524843831617572738344821421107968176363687212761861957858427695908182866127332136636161978710834896187241554477021255165730651843467187087062728290339823869668192913704830987592890426451321717986157498208725358045799019052014765936899447258660979427712405222858565480209351021571052472780728095207368873812049972717611227935279471454263986690284326797127079610679944394741952505429025807406496639393591906521088412233454616559522067984159367651057989171366426300391999893471562569342770662129992594847041781818054650435572815424210460825367395253197521637574649774782870889665795491867985298683392891710136635137622815838904249292684598319380027921831553021307473631725359529402336306092901664021484530127320045720052040629666006331245836149329054712275638352085905923620304252452193454635141373631701138061389743189782091493826994698492428584680466086380369023799223938679584578825205629958191898329912526157752006776165324000766387827739011449410813327245981115376064276006776386709083700995555299234363686967787661193349671962758575765674748909167380497978786991179592192431609090503582195978380447792255069351122077818019254095766578153847921118008656959512437347431690327487107398525271623634542423054064517754543807789876999950719028140055526412646223065581667816206204151937960268882913746576020823907046100449470789333056041909368552172916226657215004577831432959273016837055864807729365449103997041799654559815523174360525746015099116569629752713234900895235249389298987896631103977115820348551534583274744911073862275921657966947462837369839474743248635448069615925951687979516621101140156811626321117057844923654133802013882253164561596895225735053684805892909202076156271809418275234641173249599212007280155428752807976045352225554628244950573586142358914018085118347568140754557051688427968424319990449040510571960744601942668061494026667170931554031050344176436645701854692126088525770622681838904813305790120562733519758229215572207502561374775078699025951481479601630279926362413372656957608399940280742309051632210058114430891237907822918983472652373294620546630692995151824949577734116135203608699420391880787204412509037039544648196505784618982101267308901335190836955488033406889920367292211792735335982242726648678666884878647258026291617347620844139230565731463815646626529462216760303006237237530339339840261901500568819335486927444965702340031596776757013997228948364498412134136692310877678083771904669443769683631198156106115344499737751316976100415349180475986322396995969765920578270491651449262468897794933448551510049634975093489458325070710690678826962351708775796360572824058730987173602432341058508094103602770677496022702384173850281453411892517986555807087110724616917120629855265666136837067669043997095472299018601199878037850108943671912887624196349682812996271032900942570984947726627395215685332876311388608349503962678041252259415949342942074607465250223243617806162330617460967901471430689288585107528676215269014902934580517862198814176871978861260275165276630464101756376646485381154501239418743441874313649299798220616783819815404090336554518027736170684406207667065031798124666872715895773844676899197898948850253744462786238540077628212259179394837830798771522581912020125054914548786413180634289336801787857825188229036564367549380464316255568608303142361675354287812336793927852685592619817017867705341582438260102452460414431656506940910670936454967428920758232143042472325979183576736277545977848675929960923452885897270651212097024829248060189515152046114965800941311874818837765063361857991700734430297688356311080648223966797645027266859744148468557170320122963004397156080595461483500039895470863843057323956305997265653613847819762334122135906188313072384347944847275993520975921397277998451567110448106512897095013446520883089703042411669858307308154471207197823166982322232323789563493107132328782600502815566849446387483179779792336336824800854646119628628893945891432882374285886282787458180746318489795537101722541250255611474161998500950408766324310865989796809569175123200214136666710331048204360652274853752968324237074490229725615777869634775269221712873060364665260997022135339643270486099026290544294644264520461678515836744584897900178082585411032881102595094298515509067934627909273892462139102759122376979693819063090498964910472850111750800773257079572211153061420083251943771874203219485930127834051337896730785972214912597930604844328624820163686432572096060232301669971660961400970091347457744457829769185183674305490695302180907680048881746011977107976838588642812394961614278512652763258400603084282089929226782190689532352070243388992917348914090917740164259880559568830624815526440382157799826496447600458531889149163267831238054364018355796212564560778729003519640521045754074222275279410356346509020890842112532122285933272490346386764780773481417025370489671875633983334598933201470907591740692374805087879829904536896795456036283501352730307975917646907052106276328872646107987705072312830528314805165929905350949650573904366408704077230338458370640361629854670605108036774123751205831245984780819440476788564125459518846346584934301398054513457205785804235207527601931000437860535216302736846741587003731818990347500440018874273773944611831223697931106451188480788186919199035073225877127058537007528648074898742413321997384678406095313598813041533950153970491093296685689298470315971439777570722125520187588510515734151603481445627564085585173284777133620106786316203833565382000731323128549378034819063363347374022955955930479417832387816549150698255757597920830176017573660166309901417277485404315049453445810246803127004710238140302837315729497990922313487313363075271702503700905067222732419673807579752068877782400986574870926210389337601598757840175929413410240976771374964712117080979570799705136966057433766165285516582775270581152510552323413116688488812490201660609015532195524274736082353364202268936409516786782193979050897839616387089146482726181477500129309893325318542434707695254182071209453034419474986049740994188540062129644714459771123060386911763715206257489094222231548100978519458952794760496089206944058485084835041686469271434474474482220486561256205383974602254950938730868671905409027699273793611773619741127876691421716337595766249277633912388115329010356617488585849709871641305370376282171344657888758734510200333608377380148560744588852803387365001847105239681795865547745571143179120147040371607296318385940543961208129535931072319306022306388480998064314728859679740479453248521242477626967312095238777279419867493742064988837889799272897087655617374772153726144786032171155587632764327777365874363719455620216949326025310318813079137852673477454896466457406523650002241364637917727478939254832740261756300073463571641085712227819704770802579266344781029731328025363823526175132224813487980702869189654205741479261300275054966988027443586838773820203361926686294206000898810759871067270323056817018389115247777534777880307003028040365467305742035426861436657711109307657671095668026030740121452721700969135674155669216039665320180711271977903506313703195559663290402970092390955729165356471492494714629885619112702705285500606907270203003869988145499825750643560443185768090575968961039120677877009509647266994144154961772593344447584235713968527415502451217250180539910967171839536877192786888724004612243938646698972137575017586223557803815603506166322050822970427994826290131753913668741164151627846907162151533914750775004814949634796773793267764672946927708024852240881659050039532297161390243462455953146179034449599729817118287147634366865086179527484934927907328695735926570884138746110769097505582093042311740322908962238816311614402270657763846997300067964756544180850887810414393630378569571294089589804042453978775047476565323988336060979266805964117640031156517279519651945446263264887589277484662415237340186868347853474661040208974158547933262024840939663694546904398048795516507612313888463310752627002991144090849909104983219323445818955461544582686279262791550190301911585441774398826357102881468847566645609827263479006932174127121905077280697584052085103188134791570153375456980741968656879125587078208118446681304858912540951777745697172478770697599023838443037116224068617491078753768299302407131076721821398418705363189214222742431576844408681256817833330763659135886644262795510407273928709627507234234794829046758126142002969553255390283065770506682579979062382431972444752972319962189075026777942307432798794646845049510975281006290996482980700225013170589352435874430521481833276712901741255863906955896401534235841018310049268581117248261774206563335031062141088275356029621566135563337903585249133593699696915449348265401470780686896593762357168554630725972478918850262210798377059337491919966170222051872342471236278034858726478089537376999114626992753973580049705825719880969329814289870992404857934828268446401481541446013187993995416882928914061291237042102239975485434836644479976929031375513954124971382399823478166136599055179456655360494076928104256445003626259484655956920551301260534970808043092046447955454272199302615634515209582642689184206563577549689446380286306311720061416408381850021483383947430724285809408841784423996425419430640035962347851384650731728298771688995540573522959735813196230544488943520850140630721396247642142906182049596025579513537095844784429866747888878687699615699198610812794551841037203017568830012172214677251156297718550962710385039111491077070343547425289578118508411031385854136272374106516804085702442119224860716541875594172588909425494974827521311169724299962549754065531214329490896780352247712811646962277604115305923000005236159137228138268230240612080511714950322100411866589463474227844950593776148542876144610063169186898691159414696080152883306079488391139485216109492245801018777083620454080606732620877455097874645490263484936364899683496827282797421092502491548689272438770430367824471544367409223652929832111152507272250870956268582683005732784262449284469393713014156236005012209213568352835661045466872503251741259287925519761679485616423418657321998401215669961138420133685405213790445016245859758540878286492438792155153977408145645289426000474307234450284112074592717331008867498013624136451811674056211419267829921087942914897335252615822842116268770931485178769961698710638470804124471615699302100333263195783132266169624024146075735912059307299366328681639084783069509029617224630086426286811199511511152894977635012815793214938233617908623229118097670022595548853966209353334240519008128193613448971152195288546005874082258879799271149423154933158978897553716729071180608212486094873065002936368047684120090703350271956691276637911514787458554034441922867013121512076138875533243851326355820199084373189929218618640869411862907990578491137986316141554228176749246723922011432758365654637011145534924879528815747466571472265782047021702108207494961455478128533854452485042431683612912394083094702357318838338697366821730860236435713623760410688952723548855453993502335960293093796427692140554638224710759114568179088948277648805416644500867156496846834333353554806722770921445186129439083078164414485408984544639641535398285868011382066591196060788919633364068939964306570898320491019573621797563588879711938351765433929544291071891427745137389463240588903528692129924351027841789122056840347746067032640669432279207907109235654772760007878494475940517056183126388596550616515556859844346095215600071128259986328644402555625254541964488167785321098290775753360187181904493060632217840193369318722330175450682651581436205173248925227291833356213220214555377321860147030259997138945132997441933454427471720328261761998314625948383512030089866043905559932632757476092413822266014631236012039641019220936149985311559271595521501002899039291391229042955688525047243016243130541798602651071092820323854474906441503443209320622943518333801259060327153645213009496776600332315146803460673287909398373437233588471457378625765660859257590486193488431128142886658461865762978729461657187828935161887102374672631070929286674040461138345720291044892979504411355898451687059921990181059655397368214564335876222806440655023973118779967496270081840687917169019750992594465552721905121300019680797259357404307777611116770702662130985610564730449603731842161288371812819837618466072902618186153752349485150969576613835730100805996128302198862673866347851923756820711373017155572375661841202178053669202561942028955113832597048161267301177761040629302867676831002950978174532994661138948520754900298426090364882030715118663231259293861064770967630346246861691596618783783521044672029230364256423011432679095620009446105481763484892259422715965932908661423737864419772746336153234629733779862868593568979187421248048970050859169033062012576863477493960563848676940168370121343129659500492030439627534165716734690621509042685355369764431757527053948622815744659582070510245754694329248330793009910907248799377859380474893534133031229068391494140817540451450913950487861856492459198050928239920088898607219441582653942296784449566671853085030357871771503134891205478328550536245565735640984349229450632197341633139294164934496320352861123481018925142308475779814572661961576358661547953071584476907626483198210212444649662838825346343501829840275352646964813801117030170797807004567016365598020660704896124664847536520919739189008257698749082748944208629239076327622431296000153505261512124829667143960610402771932104112701537709982160187141690597560220575937914879633622905443379477133647005604948840902572143827844134157115369550456069291321578143745323822315192586804993198626188419117956122165688151900884456190870108540962722392280891711577895574209402652405669965680123351624039161814892831842430081821085247946041942512082492949107021106895211700092902803577220369599488653259227019387840965382174721224198681412050837384155677219484450369225902000564160373329667181288838937737473878546302135259960295861770177251677484855752388247060916311814121403042967357423513315808294972791691585633855445706872083676408032076069614621055033359302725496839611692073603048973506710551355553247021208901595157693321197097261279062053161950588562687966731280792134506437514024455051398802916707345081954576487208324532725602332812064875351167819172684767712864068997811503085259891877952053428064333459341562608198206464855096960160844785396292046468295463042981705662231270943857639327164049632291869109461455234686650234430388716949291081626528968095739006187817324458356741119573385347655685367827626043238725519688438294621633920527750146170994775297752322180210252017335113799581721858532886185086656901533398325149383148853663125273542487770649049597744216827084832891586028130791240157861202821671882661518223219359273830791949709326594767865199215429220052952479785319827136051537966300080553633633422417829448470883356758844698342639615165711537654739091630893703091016893737381243912220600867694989732138544236790699306197662024267136786025986412946994605734897588187945214679741674873508898638639673037454924052051458043336715729893212268955232729901109065590376505808636577441026963912094160890328872923834130566581264386386410004304565084642634171781197152582577086773754331300719513909491413848034827747028169219598055144304506458625772553249546859834120260172556499928568613785817774819637440269441463390836051211441090761646536051363772575882483339149858432281624351502512635000488700355490751602844693151182614764892555371135810477416784561884525906439303570338316172447586865789863087182178893038125439267410688285317246498056315642543404881963755434315053322849834198953201747429868121334036343890808822429891341222247836944727656435634406464041108909258317472882115894945159405749414142438703720554782338448267737369201799623972135650265018467025741486183337314777391342228062808956363896849818122741107445508271227054551337545490895120812284796002122865179880525961974653511059775668538105927158130565516514726197429326840185857235750959309907980159055894603111191180751009754395533929748937597398622710893287865857550926266322217929091098487136411014397782328102776862819370063749929710059220776306522740560323230362662954312411324421293568915505872457459548412594340032564872838304506289448783639374535579944936793314214620415867513627316712909160177772071372133745400291383616217287940570621316737252056749166204453980094271674699279461573373659378765122389294412392572515946081594962291111713375480071684085161456152724417278602155553944096182199558449702384409563255267446425092329919982901938669215997475953659443738373766580476961333660001883099620233420304899122676898551365949079660395556975299220471322152158633438712517792664512400508936024858868156885640638563887422136332878070094498718266316096423948094655492939020693069705347185489012735602700645822916723304469297717329650109379563545364364363460224878399956842685676463170265800866802840860074735937518908846627518692685427126403637825735739418941475784307861353455035024574934690749807239263344288190520298288812032619637604271381410070511251204071988312048069865457049049879903764405394786664430272760436140874579167762885800133708237857135945600632117391698739366735013757542675300786775096718900678688808762186705367934836840709173107038624254770954035538894291710472722702437140311999864080040352541468660073855710633892089587451792430110976691162558247203218787718143797586224434488135194785322221226023171415546455573921661855660574128701840735231645875746301670856143998128955571964353363680438010184968615642134855354613498941467841314190382113897125695408874473465113463033329845197231083763390658102905453294617010695333477690491528823346140261315923862783969419493751449829566721723506951936625868400262946822073022719977002862312226742695150888540774805952888644518853198425810634712109044067796258471065026540627038908560845415564932189296337946322733915215104042467634647873712985780048412709836212785050694581861524741956384761032179569774443275275417173401541807856755224962652301745715501486489643468047221817868144911272942817613545121631807332241586325001576708123977915602346500646118155261319751535153284325656717220910674853627881463262747074821114697429627787264264088397983993552027603936386660222836187561041555661168404906273561354541868469417743287164406992264608426196043808723387310134500077596395811866069091943590393483198948900253070437414849004534906545893364648571099638795974086019443769479820117794301461453138644215418676625904543255733806344408977293579796328135563376516252877471437172215028750881036347090614111928189498218907536049164236787154010786995472222222258000860219770615987820891859514961451801223797055157726828216133616542830294112660044809833035594354887512304603154468180822691615129160399609458356598085605602772469244024309579452109722114901809533839251560901322717504795821443947738962672452552371211977655621924935575780619837619486625878785073342884458047271446376071353186050057708577459741338732422388715897679820803714927263168996575823960088827740650730264505555777286318243289428669386035144787011182217332349755592052785936818209642263230803339181092626548237813475996324208343076513953984969999977211404986954109543041577598240651785062960076410683471179056782768320484024951547436202443238523361948123462811860885464185362892260891609489697776690808551645537809448835179749060713874379649155984031039425767286469838703174438803026885557502031998640799405393381562390955736003763751402694976981437780346731191618004655627980821933806913529167902414818427633564236277978568210803254429588638782849253956616972472696258926231879459287587454379619845890807588368881913294571979819687512385164010616576307555657155835518973585182290078037807923071001229477006919979413017100634275808960319580274507042077384732968124910021173234118035363201278180459194126122427503871210570677250149147977872080835674392463559017012470160453835697000471733684940619413099864546096909235842808000278683990303167386463694783422543647197021738380356631845106512085404442133845002769628305215794559356544404284337057641342232343568736006289537772064930608029229841687649069822593043290643980422984001631313510578754638999382396646906992474213180089633642212724858420073567701753342140994036366791692062108690732125161674187236695473226850085534285683117078181853272323206839001980258815104930831695935806855588842315025948645471515695643991601708287614407785562579136269829147317701736413022867265475308895573148567414665890883370674820943973823906503120459823759053731102716456184399895673786053308438950379271132104250031939910019223891305793254643302203664222784824557802700230595229531579607844900888451654507540702110940372616069232811907920256937711700110157075146515390272066839285952448367788762348089164846026478693403039514577316233141623357193224881957276974529040070132407184592790134106412865759190590354646160675738751146397279862784466378545412407722359982164199066277013932094696747486979513007666178607218708202413711923680658478040201173218748391252408617875762399891210768181178353905429665246608682969502522388298087847711656158202919162573713486298284258809981921069612179474752742728411315684073129734603220771780558322975155107931173507484586721001424876145236645896152897493225098686866838664983431143240870916027242606176526532477047633397189127165723681904666662383097205292860280510513525784970930811059279280598027261944143209904221942131106940257709936452989423851367542815989868010132699465042297154298556986400840403552764267510800792664678855331830012018766131041974747378164788811004199026638808390923935665985130615353493299937502936829878458761494676354231524048105828306353194076418673906924860349565877181841427245904935885924574432396067464081078899976538998054537312303131472250226540360610673057969282031039272978807041835811311534737627646920031804095203125506705313109613776077840875607423982017684076828634263930209961886925816176653548549060943160351678635691376054791820672232224405033542463675946895485708327365733543134920528382336948678101163611657588214487352831072864043996358025114869569906554392913356561473679915440762961595486981300843426640898531096169019347158791215316730273796002935037413589746315778926938356557935581190122362625131241281121633877320815534205381816655725578654851668699677231944692383112132040007479365751102471845101873603913789040753119637298581348551303439723189214558757987629722903583525142432189228223542588065069347635775975189587329768770757603918192307142557964174671323495206130083580749065903534854790213580958227277183750758650662547362547790845033578499274949772786072214655947638381903542501983542196335721501776751036223614590623895165241769040485561971685480541956829772451464975021345415876026362182633718169240178100626774196106217367684498361974244639879003536611929489129019787890355546285129001254019741236234338284026500513885352458756506162431317628663383051085216538235218648630910171492005030135131283037275545033041303749709874478276049291666715221197868584081432129767928742487069727179878941200462385347285831843826937408234873064955488747585347930517101683043959914457063606001251627865313545830966386220399773991401905974525463117144279565538368964657565852566263223716896899706800361322552148021904250499113713650818505042741940194681560195946588696524181897170306206740971957820214754709959552651077561749486345412604616719891204393874026986815940469124656557955285761446832956795891799459656081615487540589126136682399867390252291941269140580995253694732698137675493936192426055138438229891364664317869952664266302631749860871504329663470241191060637396815807922055720846708745754401446230880048608110463116771967199316474559070805540490265261909440224882431908783737260026274297606935084115532343675684603904562203291340780815827965750745419063912811516941439913199986326093205402566230305545958358471792657344978573885091438906212293906489499795583006302719490257602272092596311755097476927916288183974961071441134747267592363798853118588240025578349440415318142815875508617234421439982456432973233181603427451164371746912614670135308446375191079656440719419323263431755573752454169120461184616425813208498496703688978912434699781761188183015857498534161113734693538048683229345663912183139808282704193600847166305391489700133542781302098877234068808986216593759115722790179608173720651908040931612162858459509194357987527294251997641522763450109976556213063505257481087980815590563056203905632541102060788191856030891100819738448638852363506726279226356050418781483740852210998451484233031290767719655230507062471802274800654078881676843081408479431606627431624809057394489452870972079773344755371662346916086999451955457027690333623365730757617244339550609447548889379810381956675539462197416903657506662546400538353318807496813901946735026075949642417007073664671245644290528258481896960432308161320115612396484989980099831619264953750881499495421075730433916602542589529702907044967626154211194640534381678064904275900593163179098534825921095986160119419211727322611624763013410981691587152000820874438712531296567648307585098565458204651237375466558758618785817411960617282161995482669883002693804444219110201539571213226327159943853773575467303161149289376679768426427815282545453176297195480380895174117463750289741897561928119890187179328699780786447463375118791165008556554670163525430796294187125940088839854040808301432986882355151553520697366803118923547094951846614435319662005617606104830372696544291835559933658568382207853036153484524517135433771087622488026168689134331982040110558224951374674288730116992298281559136349540156846723138012255281867855325905533931648615959517979718322046281105921014995295763969990176626399781356636191190860074239434366110909362895720980737755928192196166924890686299657823037345249123708084246632731223577623271985707732625325326030451090181632131275589885514083391494842031375231471260360274833604084810218813973359951137518088807556765801686055687628372914217595146828176661883084569532214327453904080118014942480283595089812141318494890023288954982170232898606094622609952403936196877288342724692100546800834549406501044532016589520574255847109538136880725120576688117398772717470907170983490101465576462884657623301794782058392572494765998413552285366222325149456762700891717539542089733411305842876459665429620645258495331378643634377049486483822720147197005270871651930944087779242397050969575338186686826225089453426363090881770089145624922837165434763596439053696960366536777663254723377738772794812307765263953506796773965320715274230541306761892998325611865808363686540436267014854441349213991666862204326482765203438338406092729312664632347423975601790478676339905516464481438096050965317608145425162887188925957419479811002897285227975339961921899000681847464405422637273657325102599779520858060403069240904929906152216112227549119037506379889110636849507086590987354807105957829104037941501081913297052381945724703847514503077505186344529886786692291398072553085318129756899904493895094378252643701070859720328638316732468357911484408605642147551735567302608205531337000110439753708980853493178510905490437686136885854099578780188893946134951738524705663925351146573017935254951660851149660556271201372261962638970183392628874642911252013910590024811650222158044133795387198268894599388811232594111142303151130518113247830974795420465720443251291181375720819206758200414135048651353348978130088205386842615873187719619822194079479332110144458294605383118183451515729048984067055785139185275818854556574848186780652425493467659988660666200668167003492411913838278331888616063945983034474397486053978995039830307941064459957857483230733284521667585608860439557274639227962843534046096080164137427202809215181108974692173120909755600150100607181843933482614689374949419795251409410516710616949974239657997385459026748189078150276176846982808857593979445697478579330191423970251089927001852597595788435298577311572132067297524698768297796548397931593136849017487839552676496522183049261872324316871253263826746835564540737396835341349470355915750562313994088199417533635464222559782108674410013626612343464601788422152939716088003729940120271771511275590144870683536521276151109453490228795463898210211141389178164352301748930006493794697070683363283379059293622048372217559865319908902578782752772907314267224956737112089242977030627589647463392051898591665780687410557834680534481402970510421524086162271791992048530813059973102094179666670680665350476484661562279569663700554583714422956088365275987460960347957235658687309778668329876457704317040571235199874952992028699296719001873352025427990248373245662328539983884341311929312624759408460076776504591826381846667716108865204893418893290192872271182285736682917571399551342197646130326741462396181151323592275220316528957508383720001336221014520200000338350365021967913274728760443788126484263109634463569409445298668850386850482368361614595753281554945172937415598453326983215483973977562355773688779914625867364034285164171746652732622188384357908849757808373404479706064183743638646500232265111674824138081505985283663516281563947756064327673418061107863469967182671021452052920744430626371611080416153933939334757107454801391394359603075603094680151151517987320879264932343169867296879600570230876109436697839683245819329356204570384231044337380631797878817799063506325079633062438750815538314699116756498998604068779276888177267785558448320290577500098505101778411729101945627738267435654540298529221056223688776291646714438466393475827380805610822762702221433010589393269665625684399624103043691959390047242069951794305541712804152696680327594339729992057567465465016699805314860332002013049231830819630436046414055212974229488207378892989604794466738838320853867650754718798927613820750285996552769153674370072820259578827158131922503184940707645548221054414379548994153828185714206867745469234243404334589359161975733287877719108296032022178343184778810586799248236175210029640889222844327402733924191430738684263406648947575451653658116158231802579279201279247452746614267617800459986693197207577904985244262633938393682626978135449066531716607114023979245367489312225895041377233106802470285542641532236825548823894070931153687930691642300163629637019249085408770152857605894000350131018209377605470391315766860584095568711281497833337715966084208013387289620306756623042149235415054574222153130167330002842350129029280665558228607305199914821767124901063826176729706701231156648691436715878456675648092526401702193380857439899762951016792254314559190493818169289400296855734674425936354643097374836831763095623563613547518227922331544554084641322158271424646083314068477427408595130526538639252970918782213841692123970509104523629503963495505690016559723743030919466417929457086331092771759267834068126796696835774180430195800933587235297705822705407898698636728661976591781967524889218301739625788199135926707565432087081316390653659353547949669436508299096530032895687603668028018804846585635049609485726877937580491463152362778698049573403751459380629690525036321867827240258849335106805878766826047533327871790070717141271921702726691883671287600892918394895442023529579023874789144168905135819719898637044130345611651457229354582430124747859735815639249607873414907664834798681753136809679335747919026503149149155239062947692405095563295631612311585402925950730480569455592462039884102526620625514255343253838851846862513845144956872512133148937744062409133998223348880539767261781716234424569102685167267583985299049504463470663598593354293460475966454533461416928642953844369292969966264946923779685150647262943657936609228689921042312682113381673738326831644397655357028669274173050924419079788679070588428667095145567264277658306093750162234912127758994119687795967093158944895772934933478230743472495135941726047757697055273162724714839504991310902632998482041372027169884457247200591514161634513414621736432474398470108605226810646897912549708448801909165140992141165536834224500442845563017106767563386574614921091737944284844834616242101068613042963580392656660288085808062138326148534521447881064469871333489189592502486062602522165680499242016855098717885929586829215399777025855993254368466673634244746655155034178590616642483422115000435157229296549352079528537648792541195712587790925375384907579971639174484708860941886288897860128309402244347724321358656168533613410611366284432028015307812234287966446867030182047238866733576827470401992522875729329298641393144362308565470819537403992892043613016066322119797807772907352899010000853871600725979497618428089146654735639063572415866655911497845700859265857730035251126961668954100213251112202359107209395904444071389764857983298676150256618639561530116478152050157167482923922472826862285989813524006605914425589422497389077747616156906152002236497567407571098341743219358924329716187106611070668216081132215348254561876118336675303843978576990812298142748407478914113481075081438413019074335902508813669304683099905900549380622572646702923323254719096992366528167051618973524081813849936292359795083291777277478471749259915868116927154532459985299870034884829946509454932515381556094454244280867816944440173982935823570357681433029030292421947935751920754228473393894418774120660555532714957495306263349549731078737582854463345849218105452518117737423441566930378453360161246421791129557901441388273797935677279706894801043618045668675316200017658109256755952448042552503772737206911418165499016143945748503577101541837063893549068095875651932030043369933929123401282222125787800216136727532241339436565645698697524505632876862086784693780828715077004188363859700987830965675763878361341466789603450623819743945168597272874973009450061473088068011384538738581485715882014039575203225058888679355221934413288026858116332313607438081818116397287229653409583912249214503148879370892384356081849521450055812303210225375262548306578623661990601001319556241435891518871402898637623373933171277048345384527347010404127909883166057214129112105860700535327110834418433004413006264693605398939117754653754340552391712239514813424796055585275904910981424917745812334049116359409202284121840004077747110719163516013257896687008470382388175364738170385096798143657803823412814052519300834367937504766755850795723888528461581705845324953071924426765372834648053249674169439465304487593372332012813366411985193311983038413268888011771735138460394627608754811356141776591237266796480627035838442876797418953068664931619897086919594428309133770810374394904872532854890415492368197805105370590846745187713960041634794986056005537813068237251801889655036806844452289727602449632701785619464158489087162989359254529904001537392664419406919982026776816067221988658143279700802561091730029019695357930413048659871711101723144401603806965172710792195529369988806168555882645823685766765794940976625578460539850586146353867389993072231363771972102865310625640768573230775460942997467058864281491561919328004102155451524395258747235995759614731245790110601303851376291075125626939770899790356933106871291670684091396327972272870465595651739416992165105963152499690842072434148453253647798866846930464603504402552614404094571259726140353778162058284309971151095044472016004779583340151387962749569728639200163114474393305474656866080123713299952866722203884145386937766908679218549396512095052084269243842160287227861019026479104069753316508029596578350849446985757288732420847030418976107487182132614499815738826324389264639422331889861341618355878520947367953909368541267813108433786500543491357996142849188211678985595824847453130335802414777817719095478006311260348944231389813738624192800618898579220478758560187462314753859569363228031384202144821478680934367511283317623289174411421379537244131524589519304984828724255875213269469928315194491004629743037399066114041191600599056273587785138002428509865189596575589092579780225430157040283180518180762620528108538933794168525800685847527630971381702199650307073638047116597590646363361439041764709683465312488453026772469495296292213654293915498232696886452156266015456034896998684263225817513181154348150400096004974406932510688510436560251097006999148892142016997360303046875012344652279142793869456776832833169811451653766181995788930360594455206050620507723591722675898971363396614955870583983547737432336206347178857033211035490085613804318710815354521724736355807767988348038229281649877176801147124468428356245248338313164184648531218535839408835873132416594618261454949832151217797697367116408979983326083955899554412586648448720589346249453999203655474913229798669739471512391097059142642542378420271558304307150800296786941457608651385262010370714498358359462524288788938930280449766090622535425926306842009517749203811410620650110188071766557982436709615696157000082301407934349323977974314361221233964015798073628819544766866859385980724343436397009793820937309508878924537095201127526808438825619092528918003849236636418248608748488731934080605817177154131019050398134978120082759511886886929055276122629623453018436155240035486060183405327906664646967791346717865833310195561455760791399922459359284427614762456046762048429912843531514014515698635298303191677935181883146596874958041671822866330859141912718734480984762995976190428955131035687504252256653992471990160997753358430481094963629314001601387698044001139390278755370357523957789328355314651466091608894601830758373272442750555744933138761850597096808534813197795349402561123453548229295212418566833593979340939290085078303921711721333290710320632479391009533278133061496107954515109777925948810768202659098795299178999086785066676413692560565252976660959310494611915599842906631659710202937683907685787015377344159281346978930647202795880345031154345026622367180706556413760797082436241795589691196587602211952429288017679969200281835963236667164422610508375878234355656178273945589403672154015317603600190814996522539488989919152334978469436434076863686364274359817062930319862064849201514986084672132302416380461570569200444204462966200838379698651266545323901610322140227206059833159787219947935433537245589829135745213481313692547844147172838005173563579472205642885914243347657971045982489684626160225520771034599527184726162512135072387562316212966073179787189239444637463478143752227155489830951043033689873897434435137771442409544164527271757576549511916863664797332756354884494295232866715983373184981666976195060449929374476849619625594117168637029619802707130659888575449855857578268014437188212867589034241127015957946670163162271704169099797980178537570677698498298601135895162440200224291520993250903599530381221775845936638157123079020721857388933607580976389327677600932113002745452971634758624657931017808174387175459322646091156525475130676079912050404603168169492911034066329319495370605681440562078226905053450358201757657275760106987207893113361326317322180400585491295309533749391866573305759206968584650571922659676934699955682730380580457371750220756146357799525255063258671394984665472262199601531406157799492010476869969226988243231716843285076397584749738193892099611010087089071593705341311566803927514754468057977183646236841269240390663459194912429266813803657551060675960025967535809992537821709853738453188562533960144346883078091037100609127657700593841545800929910952305955718779802981878163082256092300344633277827934366531712841859941469711845877112259284576230679319320166417732172201942865315221125439590230582508195515799176939930550288181847139061562122411188170759570400551876061919749761347828001372927236442373295183523743396764561673877749625866394552413145236990913947943060476521059481369101010290088876957547357571400245428344686543515007137711860789991743243972701346871125485940277617810287200579241795262507521211155668704555420088645755740126479147128033703734973026692618762251809425999823059422193519695255097432886188853362349432834228105046711684162807861869617479996775409403933400012790672308444414928417696667918010832672903396847730395121301258367618282169603187695290739616626592756252405542504694249572851275976013066093189656515743531869476262776459598238077142828202027108340197049852954044623966223379131633112342396521196287038861746661578525023823395669915706413054448962819578621828994995780776778412935884102349119423983339140787487253720147914343632591664279317425070353519473396226753361029996436006944742107029791925811613573748600555732286221573917910344769450923308899452953667566336676795824519675411169654423103817157753340473354863729277206878714677699360645673482403146816170345210909384696025913603777205885334392823553160432459210709788486930030099927863993829343263765426322225060329779917513119938838908444160558785463971100874415279717137720284370217981276321191942862069274538393255224589859977683034726955926034749419397482121583539324121834772536039257005493576672269331061060879294261302070525202704297112435552674928914790256625428391236826316950124539608203566656415758149139527896704531761227052863902196789563694333952396402519271187264819755294629477695568104200733116173566394203744254316026023004710479324857990183745518360501110903368991467919825331265764183791625238060536364145938695240540786057364946978219298726507184724852758255845132884003653752021272540106638690289531108768271231572237690370907164149330926412017811480661058200876370076870181007552644306593886442802851307415445685572119642819263218682031518793282469318881426987057367138202978229296665333007290751755511911165891543621811471123227571974888124668009059999370728858582856134478785097011807344780553100352365610055570797043247167403148427815620967617327980192733101232530239118906606736504027895922571218302017116956586604699464773681482656614051717282586744727144136594779937665159717428311484545339200221988378322151878658323883639327987336458973830295533909952540181548903235224659197593933925659544935059378285527829080742287438784704493401090424387419977357621784875595472564855202837365119019591287939475282335370419892565781442572986858162027022825922590111017152638252095113850723519667012843020125234263412626416334799690278252849763447328332071229898842472255926535833973270077617742648162440987810206985228054371335536547315659222089349476023897096131221115972866000392917142879419651938864443547459550413087503642662816194635521859661057628271397918744754327654888099663220455725897818610877548745811956693111105112900353205900350766661741728411924564541632561514723793282848688465146742529565477015088015498465366264333357500283762960925009586884406782403963373822525256730673823082383108900865228819779288669504723649462986823481445608445097391226903283755393695750243672116171012790279930966344867541552190670070114974092797806617840412729120485174716780414913717988271015263419142178709330880765851294382869252233337843957887490866558002262740248123784357512041696974019105097553981441584528234091673609461337885059426030930230831757936363906012185683461242644998256950425041289193571749827660400562331022667988110661712247960619678693035885410529643951083967428172310081055829674783019879858585504084164361437567384832993579393086385946171797130366250039036331240593594662689188807111799699338438736449063985602076594881655519876610468413224554443401026451363365259178540041814026609148086635403147863624772778045930286419025304274210743836433287595851744058269739694222134430293977124073915850565596054377926481220935228073320817471305125325542510933637819707911441199440489713912454976091082343060604710907606607713807211770340349182274215376098412229454097826858472630390440127797974741045353710404982597102055443223224423025808644091364057454061713321989816363950460438610813713539810046909234909908724213516682968262624087671742668846584250068349322472761863387684714460571749114118848504723324282986342745919464772870960145084544551402673760184336067893505562269010190764272592579349145079709241463500228193099247879009359539696224834307811191430793618437493560487859329240675803978982318676423979859777562594896253113042565643780924655994139508303218541122659353310482361764977708616116184319512186976933384451640911747211393223751002962000690267648862127862365033051496932193538712271501769314805929188907284238921164884294920590225278313672727769357044792238634491060073249696685824917776200619000770439425862322803328034068288166724414103898819791050448817802330424230226161787930874261529490500495973632111589830591820563169269797723284602171590060941127112143043436495730369117418909896172650794900540354746154644425135955409754968106828602633153724619348028050872643129672741864848256446095010431298923419966209292762963672880078898289098856927036493518517150593397495168209492790488190168861919721837228173313649233809929698761247797728494097778781495430040778414341936735793218146093479952477585833138739006363485016655194968698407936209982172516362953302269476399118469429087041140781337560189865353885035605437626698321718964556749549148570896172662375000129795464596107146065957344963489293070784632556611594318671198272054793857920748051340653807580548049732072528659599270110471124660309442532491080801252735705314498717846205063027470883118665498586371074841097243882798121654069280703001951221512894154350172149521293781039247801721299354663019177774064034515527668013965477444029185909394350564269435539107126341859880085419453615111140700026767570577883120985409034674924072169619310597109546147562171470748360836210788134527729148624191745938391979438070801665334370907467270253004609090053143776308974990812738358635694472929089067240805052560175417397083962357966417220174451310058964294974451914161625418388984710656750719957472993172674719955523749333620497465715240637263205055722543189111928201031277067972255417886296143247075607252035496205125812529797347970405878490932322480337694116520401877354877215063022653891873577280204160945298067583416509010609947671124568472564223449977721118885348769829612909732468198798496515126761392655926191015736829793872694710009944429650156298125993601031463765537872945892486436495011373250940602568194062651723897397245885524266171079942402204976666020075520530527618913443239854443808989014219836614868854088326417432360205796012990275481717822622805745958589284089376575357557607269263433049078931500464639513807542632990969918678471204544482584123817620943937372347117414341153560903720127315518565730515637936690918392265618198904452735409635749402929309970452886327332248482209928385879160139789249368922319453076683415288017325784736201920743835857513360962662131271199231860673951096778843391777698624084097133092128578583022642810623320069158092188626579763179790317934385633657375560743025063999090138783215927033998806363272068827496631280158434702237945370621009193208456455846841764112826660717153857825392898569167680271010643728069014894640413704393373356877524283420572039429694162707104369225828188132001255007379429360251751677668437208415007545429611082559149626938040339532844336539523922458327087345179943548034600736951088973763850981813571802165139889434289322488991344894819413108897184450471344514646152572638834261075783149551939849776983090710917149854862898117712888081488189600723746845840955342250796713608681247526749903250597306986909594885015806786376531249091240642245652800454442266120365601371853693743343444139436219557954827348942347736926963769211422680434854467293148004079858697256920428267877950869021001663388452871646323699007855587846433908384032924791097479515782722007581819420541654243999678591160902905095059155741259394944466284043362540025747530579235983290311348420163063175867840234789646016929301870490725427809734623472874313476265478636687715211249624419538353731060566239629390699192782010200350619530303876731308754772816709344342674656327009503615658900170435087905326947572709647480078785626062484783306611320185341391780593565183825544523530270351333929382343043622893004543358858784042646572501799733125753880132291296437708623922488934492226752064189487607002483999016862742918304831417059330474372847143718088011784686892546889045205533121894309222498316127825547438763647947808285048801019944319562417822534408283435919473222989444848249259916518615397709307040878091575270303502093109629841081406802077051166064811688756466379298414651479886213821140802023583138219691086951536778817781827082552176320019516376640788298870940405079601801809587971712435758106115917010514520313825024582492016824903114737199386852238270320129580259703074786009516190441884058334656960360021849455415127927736452297965114128475929540209412368725761202266505538425264104144223887725355692877995378801573354417250143296278163862503766385708197198879982392222114802148688843029010188698117467318706971386715071185962113006222461165365034805998498186387939990152232510117877736330846285933317629574620524767592375232799062783549003373846881827688476176976705366169057493336055013197887853742977903085577345442660817001447748126118331311194203177995647388188148754205739963393060162156406570745067305179159129177322833510528661853431199467836636080627128577279397460897371243521851594275581285528884344049273723508541023195197987879379845948980636806893480133646064232944886738026329113050252778793237284272367557516792912012081857872442697351454902049969393665761499607089156508673381073269319655447167597118113840832545558054833885744447065722834486711898099342620888178566164760864998359736135656102299002170434784255085279900022434348951070612727623979553554556865045757628926985682476710822446954304635604216650124575748918410623854437428375724310402827370030405989327613554100253745540209781962812366237555884014839362171524567868257579650533684580981761456168225956435153337366582419967712152944227834001981502749879481175372061480738903037299634725309252181697018922110892370912268523251991912590774003813751146993526376725835659992900678704521944126417468860149187703907322306747251536438728749151691128278889377925116087944537283716395327419645686626358743269370554702011340862813720558513747774580238574133488441898994383568402760214840543922774364584843358219589293176838737037714278701909679551588497024524926627706532201576763395227058122834534575000094142088294733494830485457395844416380676568725819720107405638765080206276880845306941623158352628947698381193445036307567870365412409231174995087623243483574327737257977381902077501591363507687801472719895374546078484513058996511675364252189299010984403281020395917030343825830758437492932097923253538317202320497862222099393086276628144399114254793164759943654235380938009703299518187414603634575960692638369914281954155019665461819520469253204535858567227230775237760692979527506165092997021235872057622662265725901436216654100834335924098472427323540563458857132224808669384688541726202525247588304807549759181790553119481528948253444656448168800073999233161802590655622108785810225871204432067348869999848862069556694182767074343062325600443527698033780440001112786372155820830465684965854986154298832626960674101598144005825693282955088798784739023220631380374352356669626418936301024016688927382301160031583393164701352701257856388228561580972828097467117217273811218090382837968487328755496759966339621549265375292011278190653991071972086619531651794910237727485867186722430974474235703198697772358365961930453234944406172007763693002060400127720081559943694235865404331780935615102028701088997997832808449931946980843499488580249522011543753670772587472815902246478773365314319439138656961482276568837566656239829411417297820985278196215764233752129552455665690029402962690623479697146577421154814353105235744228072782890964518734994880664371420239735332360013519806903858782636022040773663301658079503900330780240736104521792050269526071930564068720878619837656341533991318814231009457965479896586911599055417219760609119915472248550486305015426778815692092242464328515948713368695010923196134763905047305817809369408426823827710354797928210064156465686778211030225087717975778711120631396608233628394654598460638991992145853476550861752975696333519745544148083638429251628060651550552490132139444640198356563376925061602084294186816141831432896626509412165582900363909038910991855201643418135217169120791551456714525099497033331627028940597848239093926696424008533016718665166342156794967848840478772458964973774139620130717630254378848484333512766890652934707829525467662952698671945172544388278763724761829931377722867610066901203933882425335424353644970990862112965135897897112583317279153282525083693334222406799694294811929190294503151856148011205062004898913669677698639598581627471151351885512848765190571071235915869975648644133179567621514881666821430322645357136266151668750337255272982111807636713592575959328279879261387345916624595228981039946006358132959031475980667188549851956095649412815436098510350171504140038928206608725586049815191858862480199156945015095885827713364927412041695164928815061502468798930735860113426589177175477036661659139901908873828705353344421426852672377061918224900658067102075584818598805243341083498440272152148642116745738600494409023272083644864745714449938800992233869032905408371897902387360917543100616011302949576653942204396945013231253767097444122043925723920284679588402983568617011353448022135407571069990096737358157308037891676605854310299982082518677379124866412380198933149620740078515371051560280712948922965038271801386281311310565867519736305327362812825559525952702565042238570656705334259446674220266480495910649165775118568819919610279637733507341074247478026995562868936982233842195441383629444169950395663990748519166163899039609737466805247838479027528121510675727310173888649692113894268337561667474886129597326037686910831778500906765815558790415596499915982361920126022901833059639880063304060987100196426736568889845488903187543027235277404154751878785707226358782271980996541630199865729078212944024019893224216362613781389854594620132680446449577143770041363159855288679169561379382801253018759958657586228944506347510302386562543834881754039138116352872731217979589099093752183579348909783233370131465250574848675272635939202782793225843452122416130272988545589323215722902767272555543556739996954139748495546429757668123642787220576277635668287042202433795683532062393145204436342869795028132273626055165036164924457364710396655056593394894379993208536444615674125525371685646898979953214153565324236841662928530016082114308809268044672548781885168430172785855971092988350063633271001286790293351252170436536766042743288539493613694604689291561515346355845732350383992208613195722603047131150775686565788044428204961658916200724010360931410846609292957186119639518826238000206782033429186207134162741041286777587167072701707425528156706033463438043761884949756058128426269171594203679250025265543236697772140932317421734061880092618180478870131460182493405096239065393098605676464501454227618777774578916704354502257280190387949811757414729581783312965310130227598125172178819750975824011451734053858247649108066271912062238298037408554826424646712313613690928100288786936170307981563108145564696492487251371163943646309764644248304370802337514604456061645741136812568925203178910187230023260032252730994536730657513616546426508895830644039344561386141233011435757327456532877972900745000789450285733430423781848427211893199707071519324679315844255945316656770289901248497392604961529378018527553686656248343561591267014793601478206329618870283488736467995922690746093954782691722023642423208660632178818785398763607804577273971803051344083223337447104137871579812790383549553251555324440787506964617929950796487492283607877634639108637017550802477389270790235513941902370819991964164620449972933640767701952242315967009115474367013448829205234185724511495403700797641165496098161000782196740437847706837438716827234630306999870834150921193357340843959088195442917528220506909753491578226834640243469338630704097159999179806847570272319683996409515785388436358094648865461482831842616921449793793551939403559544330169568820309350933192441099166542020466422302471583716365059058573183308279701415063360945134810280465515133609370353880835043463805746488728910962660538856697864760936405009861322806151528042150924855268085641565635037672971604789236204860766851544157353992980256560819741323620727919114566778288309176951245883790135078071295041074534269898093488590761405488413874531907956887171886102496909711669257195907337455092788446518625117074587126557257922338445646551666313265458301272037229509593410891437263114441931902943434409041587664712987059273472097908405236816301374691344161160732898825956130592826330552720202968923901407396332537772816967982423187700336670232764524262147863323901474733881767722868284038240426514376933937208659838702948373264929277143296889773872196753274841345982533653584785144358450261759296007242311664730402583437100796422699521714469570253782096766502554365631550895778210278758927791182643087803760197801699069256746887655609568460621468279518308362078332600507491979966653448371831745967335074106152585291447589536630914877138783806321232119928989722858463482600407683879894357423160471106291389226109763354905605946130136294801300601394014426409056106516333962935191696938693068714209137203401913510800406708397800070825211546049088287638286467151531841996035867736848996326384543752796297897512539668204667464141211967134698873285764245158402678633529975118126089863305897193966963036180967962643873379593782549345246622946425371112043919220434358951817547517365129611803790185965059954244281805871492067360073554171591494135908915056923949552917260900658076695045481554223482030262243849048361309066265471192029017281229895918724087087974195533957672104447923677696645697610070740129181265665602448683587682571307538195188533769651287512529680005056052439723351093537206386110872135868602338431682471289351494779624064515196329952674806128518924615960268772822527252347042257928396057864585212177130001577654865211069853709966688751313533961661030520382886107357610940850712208354389263927521397376370983842802018286954715879227930483596857766777915091951474415429914498861186566339945871471883103193242542826662689619725733604050760909782142088563701211772078476830336201237009777202717327279391385709468886769606226323766084369506195855046333039868024840155778937501922455465002489894288811863556833445345137267157795450808228768339531089807912423879439077058958511748800063904430670635882135976376986236967872727722932695534911904822107634986955238130488643514322643363328555461324003302833095386277265489322938928691679805708769590886744948040618447332010683457947030521215663051155016643423664039292515585028332030673909206464163709729980029815674194540897809512543673347156819390567431847003887124328706965407889269670748105919262646416616466827672158068572576204844101801509165447533536964653434863168971658369797324458211089434051785426246099795822944645942138517887437364802731466054751049674945452700258612127337820790918802967301550212913618655193579154613614890551854443592449103006842860486043455994192163235033456304854379640387815289201759884629546548895458789495315182170220062637975598715874166948823957112609656954448404396278134914667907974852896913980690931912983173221774590978144877816597184023947513638168638694825539898930971224801202977651296857906968323535507548718769663572431195232974486938673845882975875017472996449858533045034557196767896236519883293802760970768610570324874240459825058137761188626862165943917645266974718036344442299487162301618118901413583751029561496861205831817494749688344309869177216096754673149725712885104011951893566581550404040919273318058244681066609877830640544213824350873969130121875969943069989485710288753022966111111107148408230994932307696541655826827486143481215654428949464275985621339079817748065574201563676851896611981279091529688602021100464755634708249205176955540943426230277606240258339564288267173585103690174764093194697533553169998041385219828486602712364881541117705660908129653380956426206217734751037312580415025268175184089540770463741025183308664527071357781524002263296329228386618281053435137825278979068396470186081175306874754451089333474107210414738851381105607169144577856290001104907103410336189322089649098620569921040955649395965615332216533672069047370925896865517392614194250696415682350874595471373201938973404230140716718042865400885648758471784812407049332500547384880292824970373387143341638885405852564272106093862069510155738429589314490872310776553655159490162430174462588993795467642758088839086197524636777572225670360776890358521963132477112027560361482073565344363212261053631995400309061381663190552634705041020866977023991187273938542452961638083104590242875771560069737742836243071277271598552312330902611643486534257014291289457478764264001685954199945844245891424097246445374035358448113078690758850185480828966352983133885845729965987080221395747167930017729546941906350929828798840307783676487966378542442235856299985090315154259901217072161809359236507894200081988199270884067186146144010675762705492295948232458263331946387166274797987141504206509303670158150515197645170108793473155391048472953317013282963529126159297816544190289958500384071797010124724552177061066225446103319195189870937160606708668783722976707074793225004364464823589168534854610827151235102523935525137224989314210397550727672919401129516260959124476623789753873421033697216233382945850377038964010398915999484268911504136041053587766546432765966768931748489781819003655725197559358561559227226122548988781139329363271077371148501665577458035699455565686918113098099689807155278238537986273433442431538932679913330609833874540233721359368887331956567518676469866174947837627546833091490104485040910217717515540843358102245746767512668101465890692056407907733189892164063031908146012991143214592291387514196308636203412909438868278932329920629787053416152940425018898339358393745382358770432984947012045484637478672349959071875226074678017180100069939544217750109279687164016447101240223709336397329274761769113533291760459910572811167854632048328269975747023034544672233007174767206417083251280451975956398390282055936888756451468408010703411147389925920062411852185541014465364766485070114221511102196967634376596555276561874312077197804017357384801045084457000829863005427431092366884797173000601881588670627106201972311742522918339188528405726010798379367851560763249626273943547157784110089369449839946483842787696329600821044520302661131423227434292666427621053720488853922846511685098918670573876493369878048967725040371323790730676248373775581497690326768556203872293706253523383548553707994656719595283966358445864537278922715183726395704291040425856623557823718849923049775253546200838960529046322129754306426652503977281333594175955529746079698649935184643980031263730347685561322458541357081071252541499417214296229767208954935170832197021522172886282690277559903628331230773484725663301591368630752977058571303578201668518034126224744733473818818628075128822510210820028228023965852078838140601916290315716199910018983869580376566581093115622054797394616603976090797447991457148719113112812484628006300623342550423293049597391192564377053827430800984185882484745058158174461233794840053660861352373948424991159158538494778527744869721926465845898667256977634276985579173969509953817564793570353938202979862275061711875588599809798898533476997882689684090462495035221262353286927757102650094889991109412698890953635599811832078914298861864155620732363945877073246066112375827853311889737021217280602688138384757656128754140589597441741498264243392340249003339163755996617994868201199173228270361453330611414229937505057487909920756175547597999403378622205590476923151820302915526045807820621720749950387294530421641520224581545375173396129007191486318453787452772889889363291114352886086741404952198807806856332999904529606534689127282116435212513092254509254318330904972015323955527433620277068970775841213756229411138700183564035339768784246876598986287266592355359749994434025305211359258603941185718602094438890283397683660295145575851995460063602200566590741974012019127949980841444879366674939827579978193662975434483742820681199913348945942055875139652957611502834080077368878472531091525363368983897742769791721755147595872173292585959284231899410376633635003054144063100087145767961064645050001201226768663734718154891774004918622356898672834554565113011001375188297675569061222147520645269289200302874211987139705962596677218479091113266553760489333207469607590017463390058947495324709143034393256889635749889685604546714731785404556514816667115116961994884426669910088290402345603251788746485198288438244626049659271845323322607008287573154831317808712799419299125545092876265683118259447681318437433160877652097266366307688552433190337739269233658241874442904936814012916298113381243155788807319390460579728751024648976986935257526986542086957218151105407564277343328959582959130289234404022970964234082378674376088873407655639542149922716441696673004364660946296995534902212198317303620683033676909096269190680612830826949687388308852487366539261667517426496319875125467014264939328246531486987769227925623806848921822407637092517303124547246068777775489870953111693766081248974916203877722848469127817508165577995554912373260919346409523933711008359092249439138752287398825989679629994966327230378991764609904658704564596050840387081890616209345743585287073491636419819509468293276531420722116196640968182615635434693591006811298643510502455760057607815622877063154983134532657651089695036255077850619848148476005327130621156318156652651760657731256316748264553371873222316153879107082713093891078924083754968221179310408015302392143115105729138771872312615708121848856087855624361685724376402418546852004229115816179376274973769897400063431031297772807963315482196818646819173947877408352136516102901749065910415850356688582813007776012022388744983828444099966483795033484834663069258281823015633493024687797859768160538148800454002733873462125131012956077568877924866439215480367690517028693716819623940178597221546499300445597061815554779171968410329196938254247519292472299832718948411137802252105854461968393940962366196160840798354390519252337132809603410201072827694511378518569201261827336301777223617362291370472436675968549614323570419287337836373306922784316674421276259034194618723556343267613577447999637756193500608884796597996031465613734618997158869574909117205346748562442719568065924646879502627756412534334614162093510802916070242726914851069262036303378668231661625066025548860564442774994293648853735294573626417960305397559048852512547658778322241495790632756337645821160392977596135609139761387770875290707364889787720217260154374634417456146550815396511837564997878858275475228867452750828343559873924174271203474393460563601646949007282608315942657295747734123687087559560685695907422777599900573993177442420062426130924110341544694589375485817287448590609565409792277263591583029821433680185504515135655848697277542086767561094336049890372112987738364523529779432710919410272090140227014923708814838081772719707320674519036061588182118828573216196397355033385702959014479746323036645106961162210250357751013653899378800668055599466026547974066380111098934098182658246567705169370790666228426794534859868377459779638840364172291912927617609620239721977999437136051504521814514368877689367236563586267266039482225619758961544444156179768428497833438168065472315211984466036262899439410573720645045756961181564184982874203390358257288873469125785278509530904037973936069070715042509524525396020267831062874037607708795449096701886816677600083757880278185130407872693730959703580309549636358379159599321202481361426943747379692864746132145675122498045737664873562058019674490330633962297941085625315026566991550583338553173078892043721816844432134976526073149462082962256560092812277445303580346799883977052438198252559446865012017737973894728624376719911120521539250148494130162534487925441057043866641079435550225036929131552524617177265116965945384774691185072547523596356610235204203170583823570762872903123089251059167961848102078845048793307031228599538127491249753054987275191623985823890274059901188816088837961144597490391385640087039568882088488854054367406991399934974686863115282206251309319395828893365063711288086804624426617977450954612491953811540515638398312756398822078591925612435473454481137337685137706281344313432021813025010175617362691469842100783847090532986566973917501669311061295883332917044419909968524596310255566023976944685055968587541694130123702118733792343107061867413393937246467514260292497433671066687827695199252385366662095189963498451532210880353294533620851688515845227047459222082881507245323924410245815048540054419914152050764229459360154987495816895278670553862428656846240896422158829684836569341857916360527240164604782848684675246271163100660800525757048222018423569210511166711739404753244161629905186372148211549230463643831089732677519048734643247717368980475438470510421430899259744583537543527512338832104712099699280053129178947848080189272762021899537995517994430078839470480466609441727805644153760890030012158809595281946358698628400344815948906537315969151209331535064626552582165639729771412205537701589335858772732086286823162508492968015378226364414535712833789509004996553372803753534985434892864150446370193077730066182432766377523225033970228111357094191603825366936787049532538959160293812523679273185540862388023537922156602649495955616433740072779447095552995955751672203746422734122165712966478695734146050048603647117566874342109321814600684969042376288738136989278426763712983140007545686881350424121815421348316640740591342330415576802601532380258653168078705385464573005637938302011300804388739992579941696717002364860407781580098467984505852476709183971092108484584997385772246899827191263069247348476479690189536041640127550122064840507389600441556154777619498210248446900496805536056586206081606118118243566373201139819031162743111260307817193013498858852292829985984679130842750188957561222905136973996174199133706049905513409066151856315284637214402727627100208153887627913901074209969070960025318406857632325077534381117804293954287376871204365984369746183694389228649589113771644267423394027168845587451104744328871852618037995402737716730697670290580500995469743435564392448810501719528403517672573675023305577253365220947189321014744521669837067909509109925368949348594517408292174346856467644912002971292747898434527739325080230800005579843094335157864664506730337921658948779423421794691307466916176914671174994618016422499667173087588923854237457604761229637974241020604230466238633424810355373564780942232982175823644965691122665538682257127008202922518477976841522521430979940447415654761066422422320173757066522343661922395276805908510781301584436486746408715052672502192518591559692249952007420655559458664138405280029759669232684081855361207787383001849293678796349278333038930139295807176881202052624563565458683438854683366514655173965735193272199013805813566946952861750154097265061129374973389503657220635339920386225626306840992310845824648284394461184534385159391667245338263644845054898399405998052885164591298001322839377433186164754358508472987882706921115218701960568843733799753693606818629729331518576658792923108299392943770647391341854485162826764051538920409944458928922298544474030807489155945865960539945947162726414915323742594847588274364909168275807565124607576592499117639871064472317584254413866086515775125006028653384896103588463791018189598625518406260364227393312296265215492527198907627484147493389799112268127985234128349914792158735030980944821281887746880899803180005744327362235030163245668202268423034458547829846133922103907578809646705284113279281483030519398389442097669554259297523154636230526929827545644216774820994137163960199444773858772156809702684226530789679657367405313402849439400624619671786254020298143059377709774892358020053660206819872313835433064106694210261512205680814715542626443696197188786731513484814451814434924232644706711481182272830367768188073904585499699418143211400101273095470660583965276268198539485058984696806828924229689715572124876190267334600606570162890197647938251958930872020442554097786609320445864090694929795399423305052340831817054416857413913753136007075841379110678671873081968095658113824569254638701702741626807808579319253947962492779622719916524154438218261614740614244376771706391627710321546417159755010438300473361725430030311985351670323715863715486005894158213612827921310722746828862475449587498206928406229818207120102229196627496389880474104996367809943842700469737927660282287495161473486271819933081689886848793782059453986957681376535995313695028832219588268543090911843237268908873342463618887909798391371660710115402225894217973357924673650049714296166977633402578728401232126432738955746029632007132019879747220177260380000968554036171347671710550812981026679230059619243269121075274656435504266917644766715938424377200669244655200135784548669713945721843306686534955941689603600840816136846751461347511709516346597191876885592238620518109299807143748301674575538889468726550747091560980560063949442821789707900159243284790532790508871638284135695738065715680352893772267861497726138302898621424238651524006599885526841649540626178594715066705277330500902289245984357714821859800464401876636514964381444168664942444434295719334549601203441606540329483399708592925659140147961542126415235757540031771080792928230133107050896855280346746075817489493041730227716677938324146032951097563021857540171228015639471103951567565149503018352897643326837542604080531046831718475999441459774524915311649842514081193751409868474727552361035212123159294642462213669537104383348488723742480907205946005724172400561391187172296472242797946181176977230963200192543364334446529780980920909975603037326931992382294668692465676373178914949529251904868284076233640385834955732058435621215391316258738054355797238656596805698540500172639877076990269394019209983143723355231085301881828370532948512224753861234481900362093348040597577610022464988838638672415587479998936395762945627142158672016016282011363081714385232724981216048492241359232448752319773526237894114564162435880840508036147676576916934179619344579119315377570039741927822744877937056732813556694998459308039149746203681164171307466880300255229107845243250631093746057997653793803843770469275642796413403215949158397666338032185549234609535799068743509843124706049492319348164423256917611971838409186041221316288701601509801420945593293678603512305752730942694367081746987261049104655280159755587546669979375233950098409089278350313241989364846591382250433518482447229886450226271450653148269032763591415358377944479044244954415207636056486608044473995441458723616284610449810625350454718755876472283872694881704888861696902855346594072136383089851257967450158887337591233001796330762257451709773613537637236470829433047487314872628995905122735899569377460433661038625182779778108991096929590151030659904626387323518537573898380367951712532639591083720717834415419552627413855857292539728242148026164577085163993707945894720989314102699183678641268567622487332792353857412257597481394623986723424191003398658867126341049442053908917830037147470062940293267436089175824731220225887580878607898481634164387326263581877607401622944177254668864751652805991442409586359339311148350355138217935120949402770329415067130491194412261484827821897386364718868656207826005775455193875333420185885133646856696750898161497796457070989235027831543740271395482268420826944360786748056961044864816903418793519215678351299634355213856239539654899967646193743249626954997821536787182894135710603320709947409650080398062811650922778470348076150926704262136338253127869779720633348704381995474926580698456498263967901711399953934192818466073286690937814930376898297935692090245551159038333233256590685965944091338868648754934267292866805754113967820134664627080564764268789175263792968454161112785621506962040562784922217005974552854678698889560102432043426880962584002569478019368073654246190737851265553638788526521314301038731794216183174681231863608498121340796274939654828447759618821322485877248660411510695076813407512153711693518243145813080612782621366472721794909765943268458747481237160774139581014570692575960079687420500905449878800052328552858590515602633749721089746495011872283504991943865285562130440110524506447690131004356109901443141642528199832913289185484234885747818327024281649065844338788277687545952787983139736594532498738432174500893610105525299835410512191181697120020506057006422552607962857563955420226536734934770696647504385372697893007339262963784060563748308949174760428077408012613338432782732524942343611690014563898150343247304462766215333796472279983666869586839918885192577601346603555455206969940543311845496048400548227174630740732345095328499001388104521622178409054697147682489978370068762625783943106889493316850216868098563966727114885501413902159288617682886888106838408435955748959247114966432025415177024261657257622554243757203988359827937738072716123487192732417165309104174600225615640540013254236265581980377247022313105067036472684372569977535937050213689985452675218796431416154448771723555866348504973205044388502178704018198832224418016596301372934901725768838951162221567511038231254750615046151861111669071361956344867289595093777779454466600784878302234467672400609528417297541433845176214058511521564856975606163587306169603776494481694804061019825092900720254664083233728999385719529141308132582148061771655409317120272953469234518546898465757809810060580860242902200456702329487099176055268208778165530813980329973630239873507944728301522809937263205626716350891205762438410277116481485526410456434068486348982949335263002366430611411453149154651461403407811178418293352148863501615954783081069803520299637943587069637737617749966411841623662046594838625120447068121861696440415896888330918378362651730138638762674439633923256444139513024293811369520072095819740417172223783879459562589734886855114470997969684747745222519768794961912983817986598888358590420943284344289674931230674418639680819921426306098348763739649802888435817204986677006499741011482903066318312191925207940235135134851625588353135799696195995071381055667128596779449210677329966864464425389672198872320453806003390439681696626200144098071450289135075159289799393391549841521144932430720960481389886095059036217285438429933109348529729250687886271023841865169847856292538216501501901841849022933699777434385755254998292213428283849219521548922906103112909094763752719085371743341148953787965811004497035850791823847662681594793521253072034282186971942502699672562173448934187902064513063102594354260713383139169609737544689634007724179279776390211121105853503025974404267713165919796060587111809348799112526620988993637426005640070662024742955534332162432665317312107163985946134859267105203479272142606544763036693601855909774542944133346809829984014956529503804943643054670472028564479409578270206406650090318313298374594578028010008257484403054351181914594631874848040108031641294915949416929922839837414680537053487638406578787616475004282102690896168869375664637965746702978028473812978662302676999869230353630256586925228989067713674918911124076431206174258462190739265908491318019055864526430939357380089056464932840739248361250966135166276672070181908465762849180640858035518185297131000087606581658899961525366405763787837340040989531002803488433601019459469008444984302270846514681096532159728927340144289843832080952849579298569790996388111323191270169910137333090453187674538510230036361785171865529371949051179998739376347108141401355409847527394766527508701594000735430167308374113201610825333587715678328740650143769915689621832675131175981839522616440521996100864859755363382314780389539500997178101956796545360516571132390785431070063450572333305457569435581591098904469517951577771844515306111665150675453149522010927819638660101085029372658398904391502158759807240340794426309682456926667421976040061546656036967875312363181678032160266015981001453991123493150110428617008844816705195715223491388867747093944769051946537096157598948041474629548229264583460194925083126137171988320798173618001758118782004599223350548025117313988695554706859323684254381765104217084911376067490761182288039496716059318717851420702795393261864084167087573338971358788873890490907727425647834590159220777759381237705695968880489348182625167947538375362032091089311110090021535348452031568801717146251545244041487857966255899749053134040868269413067335506262525355990452243462039034500052430084229031183204960493812090039349165368683394506452250090528370047074525182449259450404285783773543620401542950780854809468800593163529831961144739380686675029151260388275308763034949036056790419652539145100058784988344766700838212972496489413402836780786190785476395917239431593864276352476801114079528208911767277014915801603453622012462886500049563734872549960446758971764240996662359048242901871440648303766987454063818926723696220725432528879562988830074950864033916847438220209800439625479716550891319032094481274641882804257394590184508201636516484589909292103031216606292730219587570488467826075594412526981056499889383843713864148960071016851978462825285036418191734533737509242866240821697116745293779187873314529193763306519967304315567275821702288695294947564265199434879095284872250326003965604854196429696072784754193270551237435366248493901066848712614123193521818694017125814898112110503273684596848848141241885434223681508339272054568235256544958927825261105956330487645047837952476891696413819749448530649163886307006127545252168824551580970586230647077812023705628147712810811440871448574647494911958430336028576714963386734706683319546389047757056878040380068228114875678833520056611107849795318839158793137275138722418270624816297535329712241349897133629913068009412357589730906366535891559788548466727735844065225992511358330208238677459666951560616938373572690667375641876198882991229543396636470620262687397596962873499308749653028508776544833577632881297863931418034839589923565894130060347166781581881147494010232842095886928208617892641173626823862003199552440889758060749729482658525900899089797217363168609106721174822430278113143629318538892024736719132005111152033731514200984670103644205835529710957346847222466787929290343928675723142225634712806271360188997600042587152183182395835299175296926671057234369672563356187594120165498350971167300711576562554308527078344786764225966821073007889940942705201791284383417876416537099618637311624156666531173410267935006375571516570286903791290760141108942503493552999438836867814515795303955382253440120672722067075296978665338573839669743034353907562848035218974934067428153173252865083031657728874737965601189206588912470547916025295672581631766421856374928487605858589489299865191919368914793091879220051052147002444425339893792115343725300874337146656960497010509638098687154989241502288973091081263056256159939370110787430611482898114697885321668435366619187962639743379816111200866063102235353102938344706486344988148389267229394979674541130289118058652625238783928587726255845351596469032599506157979774418369721868487864719875191391636964095616127399653327418275635376622161510534755873925373657619752278277813060842100294249013901428193119208003966134338016068112937078299329122602080959467993966515683201509167704335932141040116600181841268635050210942832335865088895251075392938895792351575307650727378007408122436893739447122769400631974261716030750633818313357447339033964931282622992288330173815525354383670724057727504989098002188733918059400034523393905624016946282874765645308257600957175931908339334082641048755194256350457674865399045830730696966151959141903332479123748699691623314903079719898211951586577942120256762154617554089735530089954510118260679683965164253771873658493922196835336927918846004646984859024140769235166786449793105516979162634374092132124394329146671739913440201571358204079806250158626684572783349852374479627467384871106394617336865412173723507900580670572042054770238136372093804398118528687354895989046654493335816529242173709740881888018457088801375018109940825747343884510183460540283647027416386170598077169273757625443332867199968826650620918163974991225021214175915923214038811851987233770415394227174894640647470748139265501700796784928217107511473092429551846968257977502557174657601336275719074312539919631568278357677974294375105166883490631757142465387117900066625691325387042690826618747059539769631623486523798858926255287577457612879250514672660087069423637446210557245483547887262400973493923970253459323657050146836813763500814406382105490895009069047707679933845507542483809367156509985403242880223836453339797079036564778773497361725266213689162878089510030855600153030712359050857047923207065454277648802369574579081863315926767106501902984971391387466551861700828481574540107958752885054166550668305218116596096196717726686345508015669420175170575938607636348800394400703439172652467072447951028010281370357302246847699958787391756003563910233889133681127858610409273590549843908712551216066882399175815813289476700137833897900856616861563865142343569513597349627438844127031956404647690107431103391357692395738112082208815427765732489713513592771698747930000469716149361459421851054775399326220838719172336107734410708392326886787828194061433924988715382876038952647364096644335482099909727780296866542454019623834103194524556695993817440003653174442621702494690896075738296303165967194771906172826838763638776734518874100695420770880208962128086802239311485078525058125343955596964728287360226811743882780223004282682164638615319937146018194470637381438482757995526373325849950529556996991102687757316082670155486866069555645758596549935970016159363612842910120664363873443819423462779588354153457587340433584332638548965547724700323642737480813397801262296412574975329118827844789594533495805160681825258166605777776506211673184532831976920090049481799246173192248625791563938686179313393876392159493098835956246078516360456051276172808161527125750669598036120996214715987646718760936217018490812187214588559672128518530651258699637354073084567269665927943181218269881584486681764731472421689184785969254207965620789886551515207032627239403737193502675639992567591569172921973612960411092817991252227771635714025190873438683254399433391675312052656636127348195197920128007550465135624328517138599869067550156432769663845812128953528724869485884092155034044174161571441162440806497484956162753962284630145943198761833768165200784208434440284891097397094293900659553718690432422214931184438495328462804767892747012543594758849726572494109411079516085602411369314989245207169740466750804852492226352194222562522286344105634710809060755788350959527624857215832039765758382352458330715639120642119204604672720026163211619757875468623147090369437999609060822757068955073208942164964562888090744107246425588625803233130311319019223596123944796943389218992598143894318922770019332388646085540265908863969464611177665804995296778381902431269094402966539245157812136133056343196205485984817235549455756912485114850560186553352712390095350854804306111988055137254664627380791311506912867219871239634962018781074076368620287395589202663843914591307645817921438634104408289869375580581395763590832556522503357460846452038201272363325542217289437761400485181820644431827612708447366727115374019842457678604813892345329129904017721162279571472738675942693772125125455279878467956470832023235840212763161048790614331894486834953694293327240432032345723015321789382321396091737339755700443917532537434790215924784732473580420690654931930484975032701444185061141927630415955956222245317746191683649351869171983343068100603615533469548076372172227705841733388101159355424638723250336869224008344735159413604562158465531751768191600925103159101925339944502733823405690489894362494774030187484593896376530354856614330402656892629351405600205117449387820260103402750725136130361458724732184344748002822543735745956385001605055390721173976123540611396585424617258766147483915020153715299779139055424480438033162725779796511175609432150166251851106079243824293070002815465400541402769876856947938092096324920861379565747989095106920282913844531940036536232780907742150677961027602313042809693101944981632275248460790575158032791067287590844615032220075407476742655967822109141275966616014734961891217886845445452770673296764726459025888170126574377663576335532628924441279101765354377785342929489415976509367970545718551978089892039377520318637416455818865576074941483172224657401551847029197772809287390981930617871738730671681697776978565561854862727378665401532174823952163639974629172459389908831029502041482633561846170078173037001035175595062784096331900322131952554242996935349479866510628379014786757566225742422147328500007027390882589135647676328529778208992349935342424115561715206498582158547642667281529663390530586606065738426560034302998510887837705901099220891344571989105629884797670051897095635652943920354749458944125655393042980155785126300755216130921609132548016660261807366781339032211338582327281896238304889296379555695394305289489658512203720723073454531012577130498894413723684130678847028375992717147318927155595607212835121826265309487593108251067560506349503274379454242576738525867033462868256103098017694386121824248439103947162900223489364877471049585978975921532203749926040339508882585256617167720050641102678844884907513768631509038777019764938733286515337003280744970356846327162040261902361551715473818464997793356980701344213271496034527924948743818103251460793117801364775493231657758587568123087262804988878024953556854476284872293848890929699900567660887721877018735151536028550572932599868450327245937563224953667679088972692490382762559224366121341337096602491659465044066895987371609435987081249093184696904204053202803475244541199882816427175851954367547226982358201086953062982128938657239265356930023775436549928975294942252514689346843986223103949253950015701456750949709915203171231008104662219704895753357075615501933820222365655261254556816426900934178243581186019971628638819843097578236081281194112254113307845099872643340547679120489162584077107770351507124964975145587361336423190022516829919923415254658017558065280872080955529550721017686240466687897084605367436757486394262236094365645197189175031622862740137068133193725102082853608835594319795786028068157783625895167412105937032610167639957030888291869498348994653531878853835290733720933404054412935352402515575568000146052977939240865032263304999685735714069142663925727674187623102245787941083562091517096117086551876229581219728881291054659344609671054492627007488614483406758816294222701734208152317094006677201088343585278928649120078343831743578500361832632188274700405552081349221773311140139137163517814297201420569663121514045940409368683528777535991584233311487952004438835414667533997321772358664840371162742742336494046199621442305308149611749516928404667844343745309488860920517416770916367160065290368991071166644260984896238710697319392615605481815449567172446847382638144143354121536346294918629504206301830449615444872837251513073027268286169432333713165869392385189561371250275045578788028710850248902538702242681778284359970977424221141528894079605091310740722162555109402178574723530623437465801381209431269074577029778589950166777448387652192652302335938758540904057262324869551375557428288225242429008734382188708950175911350813574126694626589096401634529778794740883100513731902607090026862681512082875606248106939465891207649853205475695343674072150128244136048249164572161142965427667592135056047745945656402322505888598150359738375245208746044809079916978401063585459315648615090462525993050129492119730890052960568054226007028486044021754954280590311693765417542471411536903191861119297064010719389645032088852863913397455133236500346832850836817253398872281596924897248192066965487810662985098427483320716029335128295174384872394883016043650934093079179908679846161823891501649708255406361679641742412984290568921377249532501164769405939460372137726664741371981168669576492542965445664832824687785985770024307346166797742707411306139068063012430462568582274375623029779039819418237892729559787366430247940725484401844871759043102236795927716943054090140567458082997366344292188921388531071845477353001210480839427690657369627512030732976171555727222095386652848343115153909437913379471256462141510108762402059584030501650065385286943540691129440462356212009051611748585982360663983717230068616709599073334677645248795743920184181003180517690163734798112028229316275680680231503550564165326943792119319276410575424297834862540583095503521920367284534022928171397522775560709134365857084215530122225058882126993371636288319412880152423736448358723745025947057518353094419790102047065894235690574650460180706633007884962179697178142576204540019213957254258725222381950513024121865412555445352303750892919188382878718499812641010825821901672056591269311841001657193140305553198394938846534143595819589285042144321572605764397922017689253780006768119521279305682016156185533761087948469910958688417914996840591517365286466725928007635403734010182136033701885331167331663337874146977474967752832667047591009171792299555369126802519190042289644797674997224004496856025789772866739209528566489392104395091556837798635033389830894897588776117668561681219293857475744766757343109119081088306073609455869443651101393516997714164614326269395269270343976807977731710027106523992777705216670806344592314964537650578033012766261383830700926009488174294644102186708313566447167789454214907580683107832409391441198914788493567973603711467894601872244542071210770779091206787534785234645302616211678597996913582479194251645776897505377512872383856947429314098119749549260609883147030992566818822622551464977431571838439341355054127040481569467846171996001091257100264403568868037738914186563877518696137669365481851460666546755878424673561990749007358653761217741515318841856430983368655561658100134660239391058650303732118111899640116416478183343373217243614322632386226031068723930635351182270987217801848306961996418420825338442582029076592202939653118992172856841838277373732681139240270315087922935943648619425797572499432897353973228400741782584482573990682634299906292754342100681874389014059576811562463538597608495605277643584079331427097787330582321280974756594984971347682224857183551701026225183330666547330739484939361744660671730427083036644894468916322217899091772557586730330959965347191108894299316176585772324456877642276848004849395386974156715138730947213149467666364974446474713837918677845905863112708262616775661338939189792245024730830446948635966305418647035411146065566581734245211390563105671963951689864785389043951799332559282630586103271203809754920306375068671800178575429162356152255108671823292662543877432381558286425090880959309052017312649931960341694444054568243336744369852125774054387233471016405127108703059232161100300490119336392500774439097430076521690035395780336986403597705666991092866318361613922027988327848993053523540061893110463895637425005601251578997467514866645084293553933017712969242163357418456385810107000326277555187991424046829609683307204451170074359806142394597921120551307398900541441550450413576878279890803115269721600032059113504724145180440663218522109635324762525864642168985756440578905982513691599240099186659126221773868962242109040507607324804411635406198297619191084616760146635189042336256155957309392723207690005738404401511238531331191891437452625421221738539524316867559525760802532543831432036084040211366989146430269095025400692616535593967568228256831962406999697516962585356889266241431374369587283783908451592076215177242510160093346680348769792242459658533176292807419113483778261087498554366256951965227285784658249705988491132285843182448083797779077823293460826025073464659878997699764484325308470538509735286488713256907186117670534011774377493205673972966322219286819529444859318994079085197694639742134092628259467212201934887195766379197703979269295135008833106362975732598376302972725600838377166497768122116050151208572069471815396963815912948850749908084004041441604076105375316440159360118978048975318741215710080840588931024030228341846156406446221415317933393076749103636809171918516925273864086352900333797232167725674403324206204244256895745374912974684665047083892909668610709569168379348609935863725015789071262208314208207619728290446928105349051269152980308981416041775924960843745760741718332702676608010727053218435942535874488463136932159070083997572884734785353781086938219181136523414687308448439113498701738824071751968848417759518756566185370305781140994986077634940800202010326293450799357361294343106192195175274184072031570229947146678229689995603658857662730685465087900257126749523380000023674708134639098913396541743620678089851807519618343912357135433550944795242089544113852099419975317882074660686304838824987332976471462652038633780239612843176645417443401907903040647723776430772515944731570135577115585382815582335655899161022148231743612542728360508413105478414316516546975905529875205127539913267944418733831648880945532304332181799593447787706180195347752226770554885186664223486165074491454480660417733359718969110940175605767113874088374925331981520743354919952028405142817889472453701952863272351533387383977883792040403080239197619075888196151545487251152806106859402155387974329327747320459440163932254586694663981359953335712438268729234937728298904021025542656059686076158525276320333780917165462542972097241887119750434661095051032246594314527856258914519117977629070069729869691531793169382982262366518360742912041933673866165591376697168404912057126934802821706950798076514124492911455558568175547715943806529331547219184583808933545922155450821096883942679577573003894177522445992050046529169613679503797490692660561441680728373703183132141110818692232155456677269553026516146935111676106324633244474249269169071085732444338823577184745465106795917854640736541464183201048144671867537646215116553432954289449485715949555890466268203000272143823828371832833533169054522522787311084452871401584642040900082181592147165133260398219921246832704640909399849167874434107998205509404844012702231499550094499220527785394974739468407787478814924697653664417631000115890684896608371946048416115217775926665018542726203741803136592435837431181445007768187033348018834775801423626690509717095707724548887892534742986641964055607121759218689200050768095898850553773993301999924181986903335083326842333877877255333522647897976936009020782868255590829119053571997910633348365679643812010013901641944683208498921319932084745078711960751744465876178633629421138967321725351690625729757579974879235256718287270789337455637208233763112079595153669091917756094758964840711449271669224383028423890055971560356271690092882699858007895547158213609649892615484156704364610232478535794119290214062315504000251104550442519050458048420375085646342693794553599146608193741968471605473630699620773583413491734103154683713836334962469876612049439648263908107350036073237144413745301683671511147557560859226930893488579778386913813726919390416085436066167023305369287581144160949570605734041377939286967930085118645595689112693463553219628329173686669417997757609415714092536847373789829735571373502679490900320048851814478489477685272389362746219990388629619163096248558093553537597512061199670383907976148607337922882258461261824563076397840532904549759441147958754894303370572775423890458161190572976233903885223157772583292622765515108962395553785223115832506725524561448493019937875123839378067159076342273719573372915586217370286892081247829846079441875613002162730841141438037208589529524326561879570582880201314609093754105546202752893313186207740612746939371658758899646415985921569786083449319417557583673608863316983331271722340327061312316648600943774344388341091062715904387532748343077823826747924787046220142561069231867879510463372803349217941146917780736988791463822735549300718762483094261694310067679239326932520210898844153712766561315757623229700842658180936563889215997592602639905401277953456978710982068765106644554038879157601254391118447238774239942808830137858580266536564180980734378734737427497439172886127627984660821009717796676639812770243988202722379310917531746018088067753394649340554064331688417083515295065104584205381482490715033791855630382675603529526218782890914224777667003001561100279592270742069422372461454020718481198995646518901142462838141743399944894218708253464058990194321281718455591079815398756314900141644321420433298766299826164403113516909283850811063854039896536071128879614808157528006101588038318675308225895444538946255768736492770917989878302877792749048042451368372705483973728690399693650184541961494446728289046824561890007747906719171008126098962788315200332420811543865469831260080157912871374089983241120776937164984957442262733778241826777709761412472119421158659316843167420909975686620320394229559870825406073459956175453313655117966143233857952032887158391005328790589530127915773864724798854312596913028575426028473523195533822626542043422159264553105126673787938361131744649211391249413581794098166633943681376554763481363967828760617047274694615525988413055106598781450068716711298666871402582091091092190725364918483237562358486651502608060524029166147086606773235403473580668461731772856178362391451676648851052300109974545386169894077055718926952201634763686848656603978325221829687422581483921385517598444792083822798520288752213843887122328449554200734692221531774711897830099404641401821391712153536201045348765564887581428960281902803520458216124825041727429643654870216912387117290750046604800053786379632721860343429490460712045826004886002105373066613266806616826017082852775769836043395697106873166130005593063047635289612954411767196223359941515600094844584310208033248768356936570134563833661167422480495018837110427433325600717070724579020382314228675942602904153162119335498034336754813826511133118653902328194503944569659220346871990586369809276020159033720960113174339810343540314888962067635568384522986830437120980791233519118525958615438255219844389618229815523012176379045487331080627341939120814478528665031961218665523797977774464497024159616387708502178609975687246536584779555426056586095156056676847578669986060921342312017225810173532036686535534186588667335549527474320522204827152675198136912333423395520048977360075480396765707391060362658943350609282287244999029192783200149718417807021770193192412425690975752867652575335748607018227707437398522611479425651792444136582263819739869014064887011272605183178589087503747732771047360923046622506217670328883698154602592976743262103487060656995450267603485131557000691874180798411037709608993228632377636069449053482421797750028685169747087658485381168939755857510453188865043410359279813321007927278241037643967777215694659922094144880060132545447951004163165064479334237612333765219355071458179984757479468064371947503828567527853780612273943149464451006518019131826701867867610283394355207685210706732553231736952651078469564979912273240638215133429261817688140060584434747460691007408086980796081311538252974293877432440303502941456521714508868528304800651721748929663508920681526469960669884535522709667986438141810777678068005920548949258096166056522193561011945387720355554750151452385210987713219341830442825859915391362496644718194098867315456636585467438749003977302755365775143298917476578634425889195331290081536811234445223616160427330450904066216490299312633792273800421178089707734172128945959424783339807571754907093577097455106694806066964130944724509191698438867527178863596302306731796013818809816071131530101745761487040899443598780096460113033762683084595897498719884064505588319063772621317157696838164048767410865095554738401659888147495532398605978320952991168334099152136614189219227559198244506434276086372574946489115958492439938039695184176293521249948088153553788132161727728170728525035298147951299304962923367303027260875457106442292075100990340403063130045268601743395447815755480561183412508181414889088968121226462149623840494701991205841587355191856793649402043368613102904945471613090165290831720066354372491609132678087711727549696973930963725368306244322481010934515266489850032192694845445338672337879872438064213333999395672999329799304557649982764869755317377870928089295655395701033344321413663987048008280204177370739641242111583095576498324103596843506106767592071638655338596443905286157749664663973425875908840556791825687100451379277484611349404505228622218363457365916053872437375543382028247206441650405779285783472409813408660119966755502817232133594556473873978064828658694791725274678964161518947196565059109606472415541010564894647301975804058643076334493974510325933853219357537417215944368122496809892735457203303422020689319616668252259888019225594772986907789494360017879052687279584299897689835844900417111573644689538215246669957025409269101711284392396660015784642036646173422192533987270303666327971875774118034472613039322402585162839811275176016262711285636229513030868043367090171731599991946514908113528676033610933908676376095964580585023391237269471910739281322451481821373815887591922566848578594699773062402633745868330620769884763899756004674550634835696781257818772563043269976482934456063966469262120968327568511305170384799019820589043800352925396871646687387228719194300767000556859040623598548569522547770933586306340853875154270596763261842755139202065731858745939084565929707221261364693835010994388549000077893335724494206995018606789643039528189830245879592951865988086911364052450875475724218009636045113227666953895876825591067522056291229318063386477172660047237991030527609460989038132384651340140706999656847091991216520122236707959913249909523045781066974543144631465421450528342034756145898223065134767662184027326094798115130717855372417502557961367558180591565499860307748378722130578832964297779883647387246634441836347848561035673696543041095718840718878097403617899917031799145068139225792742692862872056122276587975978443342980421879265595189364678519357005048523983243773222244917075189581781688547892023660669166720259497114127945653429865230929758424044749437350776165756152013338518305862575743370618361977876588694002579877010443214203267958545018957279767884044307497021043962593269368782802381264982484649473039761139603208180808489143154456000124643477924847424359827379872846930833497039775286040508659268385181161840505473740648639141497122373866366458078607432658308903809735978316711617739467941448492090923884148102160194987778663403628440940178009976244589432438128383425874510786361217909773080748802012579484671019760287900373289549945075964569542208874398667329821252715992386288229955045576790414129356042421233934934756362570471662280024325230037679746589641714992794664945499712012453234221914688748513932461669900382331837275724400391548217960513329872610360069665370205488903145264250597526808773797168984592472024200657282694021093778153120475398123944727179807014897264867732665254089236285509336861063170431922974680236645714914270720673302120970637485022760818746672605147449926497663002139968612284387835179099928910322717458584246285816716323392027731231046319152423901914297158105374472238533344355237045388398567992041315924650352034891994723292466267577815462161875225772790731297036486726425636139448566868954185860791656479724453976955958813482085400208137838895063826433137441244308755560695784614242625418575675432269207183209909233769119397904203044858793511032561760556575348247928199645173603027584113956200977632866188197919969964765168230801360464338545957819516879680682454074300161969097037948994227039700516590553699741499625517267192626176836029431301208721681996706188184276761730795488508475087742202067947677878980340042263094690163866506100005503584804283946836267689613618548172141276111084373508799910279110592968889057080492782839014420885825632961351800033499476799433933446423917635800891782643623920547503612509204135116841586262246231490975080938537258869485839209170952368892892237802210252608762493659665252989928269411123039603597188902605504401756312058082416144557089669430935059716544645188464896073946527568625958383420947725166699702881326718001199806687542764487123249996177931939947184877504154159102024308239050414606574719231939420215235378829208675226170029459388858948492300058652568901938800119896428222532301375961883101929264200638925541649570493478741082298663499018360371110114534030010110680235351780291708988398435072108425727667444229418492768344137698549352969028883411223864475402053721671903703292942244044322310088344668778235587161666977059340087372971710778579126138090338150578005222542294644660712397458445370790160286955131660910473160949637116617132671198920406534735199503082630397142544327160137426506638320579079427041152251678483471388883162899486753866657778160186326277878813005085179600807797821408836334501463889509613010673892956938445212445174864853619841551320202117250067237529912963339023126202469124358242878383305933329886600267116766774368075278336395490132920254672502690702243704614032054582816363320520270386139295895137461049866503001693419651263313392751712834674116308631316240086611107024451209671153946718602701303661963042798856115143749565961863604430547678096878146862008939625226281271417730767625136515873483176408801394788099871097758510904932390422961482800753414209498289223480491499793353596282955957706297504026421583234190790811480242596690883843342237772892306241119203745707743875984298956691124191296405545397211660604982291895880832592119373432119610359574139542322691019875162448576758426299546733676964409628082774845295248602456138849458098827712276174259238871013581563116013950802719294459384556433061707203724709702816420793259890748680894125875069905201236050765989843819885808261401502872926511616497759272725806864102668219381169471450350605071352964932055640806313704393156311389101587042916655586332968791836641978896283067636635264993945458432688576031805896830772082064728509115888346948174468657007563428815889123934216108681801942783533752689801528134882673203607483001420318423302879756112433624355776466676460060491823208041159514901562007494960958235268985657730990000927132778333686835131087686621256855384473353975209878290974312120771613484861900391049544639914248129964165245446516459245201414195430804293524871641508289324124336246426813235273430424445739300671737297942327651484238163607205724303314982187669124503383419208977496906689774370551925697839609155856509444428415520573569907760617070766033990511815748117241961366977573784497231322638028345992859392103256095052966088568904305604023127279506076530925586546351491344543973408094293366357544069213851171341988822187141640567755050995945789611251998266951790148089765609018314447884664260917571661625798085467805623236797691699642127268963981896185132894115321864564995190404682405706677082156061208284712036672853869008864960346167989352115690188604401805725682605957561548030837452888619899151018124945977604331329263905821819142797256800817383296500418989202069529720687703887777845365750719235998675991416477692286693325164074961077631873430133886718664877746870075061176620166054972093475383383550863744506935217701752949362426465105843496441034263125669040892854451032975622565084685299658156596856805648257697012529034476047206102843716280433259687934157867274460949779321021045764647115371492751242585692453775142190391873468718563854458840517086512421150308443146603573788019922945944527572115597619790957922781865055705346178874775734390239881508011182428115599281629244309305862660178732432910886821488475842460265143094514180755654834660271974949582537215868018018351409217643444068399463541273086112885140015320507809991044621885279472216396771642736237285526623722985699558835978415581859539681406767374532583402839210299609033624461590012903544355801821013645991659386022396506373650698177227805773074757100079535177950772986464429642336736218004847877398583593075603065237405737276947406638406816632534069236478203839611345626197318776769362714680970159475086275021180606988756104753891843915157045708557169074268743098626399518237819104574335036536477973318087555396404134838060827861504262891502749019201933932463281095065148449715245453026528653553937973349125312562024358080896025533729254608356583277707434692494486023417792037191136114983933080418755661564688940538938749107996757993767921999580478724366091390563643705856840240968256593119861694265236786737811043182631618967841838197323469107288535138606731368865405032014731816481599731104685479223949121668619978442215549764824812120040848359945970906791176854414786311881547588276241439469151052429342236797912351108022589831866712849551518933844190930028020921479632023294416736623345781160673455649382573935675648601549429430909569122509245115200051736673926749303551299264933553067466151863507708308641689748090140444716243156904102742597993407579364744909541694584271961521983975519805158744535254896976479664505565953905971913129275983956527145930122677460861952703809406804265527052298610839303052241294073745884132505794932044610251914717781468166548480896534616879035094328494671744374263617144819721006394106576862230972334413496220265120917390749081916982020629626971211128930020305527796008769582754313784359199512025001570332222351356258432586894591946502702104837710639416533425329401321546706271452003249508763154864158823095958506684390588798953964285208907880628347844115412560441194675093502397663896996146946159612692842399863749092708113029988863688043512526334037659139476707162659537747582955457064532867880568259691665800652193483922686321436895631616892145867298550056601524701094801414234458656189126523237708406944389275862051544865976681182778554415348837603612238358168904537065213990608711235501600445565365578634776215811608532267146219034638826215105675990032691298544201552803410806210200322304634486379998338264139014059904970146996805491060461257774769329798697657199830445581355428167321096737472305534157307033102551114581715736754138481832374734461401603573880561270944339621187818775179730326489212804140529968869499006949627608018253326773287347379690638125358112266736078137863054238268999907065005078638689588774530991218757402079430691264162760371536719046134313788776880847090380633571282151524756285399043248681896361323109273801298395587855635394078018599641653884507727489917196752304174203713541733787538411224975700488144672846085765605538502059546355327929922000062667703916196660820802833394547113811752180646304302000059570486936881968463426374197710117822251475590662770578422244025706251075266062764618398280837760779769211529258317379303543372112130943697256199064088724599036893624202787599056419079982721336591281674933631260229780403358995292165626651394055346104447950061098314385858293011284082059461856585702092893029190164202531372027321271313685901973092355146825225246274888980296721668719320486397973625441419708883031186251900474405460316170366380622348694580769986429204981531575608071057492507672819472140543231223595447863776361127791800150659120009078198096393033617795232847531684141654790500166441255513178867160801777167117934021273516403576794328611179537731154055279997787521960328886940966209686632142564482377253656177820045371908000352531662312105182852983354119226548416573637088167576775130753622451312399721436249188828562688155557762736030853075482799018076517122273170718608955477477951603320961096978149537781031691759456487300564453698430796878739761163414330005680084148425657169073071667567480989695299101796335009775613781120026423071906884091505260886332952769318858013413018082654871212662965660134555984453371838008580933151275972196069512650352180204622389783328784038489099434313990239021928354352652188728403104237098405223268378869012113169236530266304786280313663824104045276438399288914104517825433933145206781423056063549471276531233514022825710480763846492797278502798874052307424598917022197304343822136222781667126453702875437087573063869947219113003976640777636310401356276922381624316794732088579816061776411100855923227929246684267333737313907651464103178556479962572560453274458604674132057980782897240848009692227493238572709592265366665495355060296579835491915380196989534490475804373538716992269402685405751480793286650736042501542553236722380162468505048705516854970272273339802258912189747990669688015576948097809890431518530356836605926557950631287346869959896000540397573195975862422942940970233908957701168209888258528947892548169537548065813834184401962852597846974949334124176533870665027905221231409177349128197840243550829481640567682901984356280381229950895794789704252046131860728100361311389033893509340231246952023359829633376732796368685871146883577521831825600887707884009953815102414718493285863088361444124642703541427184411875002274632360817007883631481708994012688460372299859636778320960476247309639132523632104663923892887737954808019818968548076666906635186090281579047950243270194048115921007584003376257102205195794353410181737160868780784038898649754980029957753574424159807488029517401710235159192585012982128146241501374860129990357659881040119801046208161623800668769238849669697673729857340771663806164909410162386837647524785490760967552779158552784700629295916753277903729069733292997276902138941096759896355005837499487547424040495297506842928554180645995701356036118746720949093015987639999461541160359261023412544754913602760443397862267849850403121385960456915139103611144122546375132030464737610683903696827100931651788812977229983674197539866934802700650898666442402289863691201899377230171949271030739729143645326371323137648037311600892232316373497281989197647315888552152388446749654946962970047143374944686561661247075379891570840563512630887189782355256056674284587463130433161949660644476754071990798355577920740900234677136260910134508995697076462294459480157902594431358800714579664878303911933207151532492116279368938460411991025508081731647346777451049164615837590809303614360620860351872223588817531100734912533194986452850118360360965133174034846478437226480789787371712497396022155853849815231108629547832272398069805027034086175749155984239353934653153689702933011154691180851504036708110147351186675840561621526628829125222182636733437433373862145894672990287601775517122704517798907811849324588951596635554977857377579948276909384619451310957470661877416315811831370127493119683564659480877086804178414582857788637831514418332078431555654271569843963345079236103601462142606218376021255910882188614348405104726538850476087063019593459003602124536916554701499182544701500290897925463877665805604910508265639586101136923851776807473630716210453041272716423941941690310848470970142170080922545750990381566927433809214030731340090841262765642059619068065416967924187471032656670053884428260561036877763463953160579086485397330581286596957503814796011978663292908609706476286950994092689470496427273651951447188128925585771111227010378926202173372034506743917584790784847362124864941375023646843390112980240902186704288214349507346716048935141985380443216270282653496716170183687518533177719691489181275763076774132271864233566281960650090559577566374014003533313125300584597887038471336755549133848773733804666419981737382826487633590645139658487076198810553242409027563610742103373749489385872843908815840256984499413610173024757021741684539864773405761682071161417630142081510136340358378050176445079942691277129409506192187322171733391069779499301561714248741951877101389240018799566116303261130347021701393812375330622046323652225543814697335952432050340328152798734712800927493151520168220009804304603564274254229329517271011361180301377416084117528941681166689447863684620193720485981030684675309166332476131508065164543013272961066150936532123085016355783490071569127799067443817971329018644899889465525316302137637588497970204814726360663048572010938769084466129584122597707717691410456814844242746005625867920408700126199775031690338920726817048923039567934000648153335195515542310659337312291007784870662562963844679644762716137844431055104617768897989270143479783991495469795669693833981004974009526296954685204257957618511135207376308153446609868947244360869941161631114610006795364581054211917211871203437293293512931360781206997486601885092743767201756883582346365168183754193381353732850105248469119842217689990148491413892607304024100492153824779129584130620731695916731925614197034917798748066761650205741140060610461763337640578513066200383150789280025396834570720890051074592444123003237690389700939661553707568219302033923875984065898718832654987446579684350312765071443182626449739959608553216190341000224389348855705103343704157734596010652692271956475219799399712934196449831624376947165546141712063578842844428044140165037590731574519900469780759305962412952363409701936599723917025011940826638815979044624497616932274924861623996488980403241773468804885395910006054152912645728763229824191565026976367889549137276018189286426510581098278830343236710784112294755213657746004182414935456957038477627492702904683869515174014316904349718222825877599150961097136156502083593280075230380221503424830966926649583302418178934425997508261878056610363035794715914015039255484094257664797732561927283358009661655165740421868481013876749093314390589066697604459044415776000022226345838798632623183846524034572761660938606404268324053705393307646535087191428299646225301229076652364410084804981008823428121273711272949303328715464518958330184205555836896384521773642941633752364269240567315524968653159021238316866885770693133327775544142604483925643093164267309561286540925514772417444440493246408066642879037968661439472109951116913815324862398934106614427395220144550381949060557589891989033240749245819051063909664496320767896809212832879026785753320032087744937525964352571037458262938553187039023553288753196099420351492451423684153120480804800576381082269506024703232177272630796649198341840088572425610896219819197679248501969558714007484467131336942372718567601495938921138315419792269388607635565853674880092858311347733320058315242184224807049517777342616695704087708992706720123073330351624330402168335521060026966588789223982659426184168003979037945759556807454766550964680926572744825376035764031633777587221700652075411192574884157381753288244222707743045135064757743724212031857498438869070240601712221292779718526417433868509365101565286610813573642234390230209490231961828698507840504183786339580479768830593717650512647354168192798121139062213988098087265240093260646084781639171125716146527396574356041559921475277893452534919168400899227737519672736118708994580303523593537859822688454492695023080600334379979556957266931697325462921186135308658767979905016545638274851186124480508948713757065593406454989739765481037763218693375649337563290442852811500896529498603715816084663185735948633110566664972176354110901386006545969086802043731817063778758000622467291134425941904901014737685978972483077488978554232018230644354430331726602785416916951627199873264831512500654255088733666211899685612633329144618128463959473195814878360632690806405782198389532000916111104114305890903403512951693207513993979152980762040657799233969594580741404270893662034837520298530886332632027892478534447456883213002688960316567783028901524192499555888339725167511209637700486162918604638651022093727457792420474718609697102926097031569732269181741359137928417797632254388652080116025554907231695349453447428777390520108691714981817245610441003245290356920586987174215051158744898606209367776906827471867627456324489070314440444027588308798492451668813240360295551749653569228301672688553874177860571772531185339557000700869668807412522702195835032939486098755454260559621516584839041502518202082577375626811551972726476972862398882016370802983384313499724559974054650852498972232104440595823992837843215280940539130065453528010551879133164618048495426159494192383300583158227938491334066041037720547621609142524522509835691905105716877378785048806364953453311733086447428803449291214291932189736277905057974998237778180643641956842914731904176685900035017818975245093540448177448688321003978870328023168386559898253305325316550426694750600161517295706169299500738438841074284762138963884726455411463308831918225774413309445651036731044214615953878992715826734104113452781392302226281498390420037927972663799753158084418229495585284923607347861372938916101212170028347377879638315930488368480683248861687446203106328788772736053832839214259075186858756438101516090221523056999097353457693406837853774428308747882774693336592878345454322338878632902449848795517999672149204382608931056588057349137701753951351195788215880971885613311799326792240497617520128171381167236389850284091969583101360358724751262991964884852693130789718943259529343861548233430404406537424783598096049153758951191468994749361682163447635874753430816731624514812286727191783634263893989685541143182892634367332068155830243751345277498366601003152027841109181898769253070910312073564665488075449071615292814367667825316522422050437024061948706800715858301587342537191893586168808000496830839195674551716748129965164139777334454162150882817700165769554243714116044668324155580503245949243732438005584363826504305564636076833224214654621314709325710598460770438545630446481256919663022062196940899991960569930232569036198484820984650011183704292408091978194210514667267064714614024459456760304657591762037596612405981848025736756155473988632644256548754096279654574625817815630763830897640347516656166312396008574484513231804034015192683939516029215987095072732030070407489361514545234352588129353977839631675190011387435992470990159170915592793814570686748385883579615307363693895506308232532511575986145688410426837978169844493957727940438393481907897098373091789638274727882164206772172597315821153599459480833620200267644349885637947872634479896994827352318176428272728664732954609873678323378533124881922127175366412088020029790402275973192879948072680639745571506719879530778820424412428208644589185890124309316143092224755675549561818567460203519183480904720844846509488381582432109389882557843421628008103362754204854557805777366989033731710217455238569710056033832829520748836976357655582259045389205000067164872628847822753288310309261524804662203962646388703269815147682571406357244034304291312595706917428093452441334981296963160716935339824778462913832001513474417695259703159318550579335183826107501658114072001623684432488827253647115692500548243518082175983004283207635119633076992212716191281058851293532653923085031986835469470170305109891000560882817590065075401131771725467063284601139217637188908263180262533168727807264348782952119587540448321691683660801423801707220316934692365165706548646274443162606585541817960422913826265089058347367564504691358172706428316760951611510783313664029011928326588933748153035924539292901459707069733320707747260345402277583674485672733747969999257449180003149874327489263128766385967722980450349946964877958955330441700769121729034524748127669494784794397472491921926774233005543820964234276155591215951239533025179775504572516917552058670278651296904227791837330373148953764390095916452437591985242404360867495440236657847324514825551132430533054302936104979900075910456217318915550665180875670140689242308783494193120949321498633275146474834976379019227450360876344266832206268803467851665673865959546569143116122773175947996711589683591391705181772436540864394521366397918061288897581947491787991978858615792877885139117601726167517145508711920715143182120816332571902117605402424490249029886259657503987372398372465685277807620842890654784868151950995617510380805395699636124582057628098420573552339133661144201159479312816143801647908664611252521240255248902337013680872695338523616557816391974401456240967581167273690887466617918297241609943629460566323787643315800004754220689005182256289792997257348650329535368979670348323303099250184404985249932406188031048406352851893388414368336680956781230797583566138076583080876404029367797620844707848571096953811448588841053958833333222877463562407286173767983671043371899255135607027667021685390303733618288640748365618109601435874014862116801044735831557657341221551130576493457750254905201478198502112723152700247864051665642405701782400409706432603757606787641649681788544217623738551781322390518984712883404491141935931899902005520032612999717424205456833679001137411344958158988738059641457222385866383710794374584177420115278934005092236249375827832176984489236603538137013840599028888858114773077501021739536272025050507037540853750433755060000712855083971557186048022092938006324578758716856652459044684593403813736820474014573308879076008489581206536837546778112474399871094492340834678239138004428065259721513332977470944025427566334939925300891168555197198263459890802080114103933630495468624689795251464634271062259810253465103400721698886467910408094763665016027923022987430877244366687288255858208862275159139892196038797243569941562970995490043524365144622045383408056465218069126988815731187132587499835801635056803686705112881754666962355333809798465140720975376510543914670929912110448403610486549780436347040956143415579938197483599589410544971051681540638908898158317678762760862008188039882395908256708475707743785765698115880430992588544525642106515789075918817879623195478498340985594033599157880544772274290482078132215070703383469545395747354880545970543808205084134083311911185406104211816556030568894475461715583252670806201181600787839665784719409262117048493105041795420609246194566808568432995283453643891961172233214448533708189126212496741618454575578601552433564519242598512595506623662562098948902686950746931870363890531688435657743158620799527022988064362591752723413077546617473381739050298677776804233769960739358657686086464017077368636552589663927181659985277559693960557646472711616642398378421077474084062199585397722321898160174408406791352715446563880800543367441152370201728362289763742244585902611495049826533629749713936747988372368451889220676213186192722380878512995285692420249218527637626213116010268159142253944796378114366011489469299140849528106172991504246648715492131039773304523463989611933977988636609376337995392832833938929250883475741405797852857707337110568733177178948871540156954070670924127137548809133792507539842725636330202811077968622037507852251725435404401706150617317564060371015774694656333506008849932560420838909271302594539678808675459439635426317190541601236279588440709272599232642375839441120111161552334219725824802916830524568356628373945657939102835913920051346818350758391787847933718565610721174886958206186645278265391199443141506486155339523139152333888489330206081456937639263159375030937950908849085220917429249900866721328655730634377529224675718766694694267920613404905170614351792113604891858115567334573781823460549805144378994473822418458381547804133014530250870043157403740996930369249510579181967824663851395343432393747653923137938334441839653853425601806422692038786085094720306989249813238598592949824766220163261170023472014404633262052193731800126722646700414816440962571700853767261660504379869471945095084272584409271443648707139765168911740970063548598536797509272664190988116428991363536953569724298966978234929439509755284550738411298256882370263638178394414015332022501693386306196810964937903724925694467161726820768927491114918106162916880840015653589260996827201101140530575239061613664146342697102404864172730014218347108840702185127681527876468591619869712703497193273686955861393400628663079412423437316006549286908351302158639489540414704430882394906309561078483849689771639296251276553911094210901958770262826305023401823558578322872489959487568008643663204294032671666535341969619755231094211938269096425765099543418878695382627877902658499761376259198806214212954134688964693338572701100250092591616530779025595934105645359421777564086581489409433635486122767476458082293532215557476778976844882336534153182784061732166726880776599429034757096608921446669355870306049105974213006201678988369463375182280797215829852171034621258086798802310071909637668495927380907338852793868951442965749027310873029315078339493894755502484742850101904542361928360570962249789115838735668285741237609505244218306862093087848692335432520862592382434334515551459519734223199083443661702058130971216730583989725811406354454764032898008599988405317502513358053502111462949608799371399794665847271387049415448186879723615972069848437634537559008303383911142838334014597502871031286696215000952950831463724210322122687492734714994548715940993906601343305500244030811232535335490466689213132113676209185696743491925298144584357714155575617547343193959263434342586333763475252581695089023474893492967367619677681632738853623836071344843580059520232740011967658125395028298667050224620861756139707410890268252695244798770800177700086519102706106754567813685231899655860613681782661889634741097058126022337241257854538095672283507919179220744347708390698219995427054862272689593408949888278868674855118124216071696782110080774279865255619385324624197352286937054678382671704570970414105439128203193832968305052585875456187194766121932525820392459265083617524847554382383840884122714999363809656550668960540905854794683335315448721865799748066313275691269384419419913155373822185955974655573722643505491534680941184944464475205590559287284549961248738537357259263743854093678169816569424241604462209863816783864603767128277562905027527897364754598644791357287192713976102465656522437725778362244822701657506055856499174353225544818856653022367979970343781876491320911589751974015012465691544262742025602514739534798150600676140468159312419644575050185979030076648973233095588751901728811378861218100620642338206753573228246210663874546103679163397582635492861368874359617489689502112368603774219858448389992213262202825910391683942689792767280359209649280917407147810955840916793325837190041293358524477650504272134851476929056932142636417305858234742918692044925870535246586758904787800141855617027011512510978174063687493445705285500197611218650790547504744948637399164942233052540980770944370566865455712529961064125568903537434218661798500916496213847240831278920524212556149785408729968488389459461963769965254601009686981888688940695309111140475370356607411811458844520894349666964344373679747384236508309722228658674517362441329008523398965122689610878229071294962496683503017253591914956669664908577356017462481471897151944697408312401033988640422255988427623455825383333822991589507029036429685615047458078177707377906024067502852041741440947994471233462646996262074789839893759852899019143046673608860623566046585755418334318507839244156758707780114352770096792286938355392666442331849032478529471199491671641757233701711598957305094189779888466302274441516216374540571060449113964265232249543084831250143417546057139487291173512930280560252594263251329531924448990348472502236741888071210743298810321552368709767749840532335412145547090361200783502863284363524995204054078899353422254301941082897276543021539491968968849795022717391844401577667042702699637917208964868873210587729871789580142042246215951058434881910830283418030333587973884344809080219667446300012413558874262446456230049476803768923320080769681451142614777762561761684898580730643061336838983469275181810247672770652192434779469978913463185828339230735873745371281988024569410221329582766410525700946315469996991503877700123209549925841487726003299249831944416001018694986174043796791734113320948143675003364273318797872356019193938204664173905592710540720843277593651136483702263698586833429579628295350031264623840356704455155384897251052233450657913124479660525063636858170058856813786067588078501584955496654755982824268421688553056447550152663051318382928387106054551072363619510275410143414613477736964001370046927794431740250278819999578925879385593045235642192942276384607947426364211508041447778552304226800790101166441744457745842298862081031313260461272893111671980193923038304478505299162515293815377955021400095869067739767973142109985431391349470298363411575941937414678883868802481496801389931931780849127453395614171255068930222814936962499351098708115725468478420404313744394450290736716701923820506198550208589334136364518215468465990287152465059956764801279453958951578978058862533080397972567111279289887431366117126217379481033836180830556516792759314498746284067151283737985523913517274926108966360293306568921026817111535922655947388844345482738113972507327863339912319491907431668602199335777044172892363276398461978871511563025978678776843915483620513782715698281101053442316507587064984219054842165057632203764261650104586863809874506556960470510286827246446354940554414933578061099437186988207540415291106799133988125922258954378020218839576352160309663756726475258364764088834158372306978391732766871818968162852142685023210361291989571430206314592848033479054162542738705544982198192344729356529872033438976851463204631140244100878454804345753900937595427162661757707975573362827006602114497088957728683118122049092372092192462830045683854882385459068201745468277048432093923505729327308099111139402073485870755089017621865794056517008374116809778578146249123554482640982329735862096570614611405202134124636707810857160496848566859012032529077324529401643248954134147045826802629142963777849018398277702847333351561089694959012039455201573307758532115082711833514265885272228007318088181485190991515264384149819065680309829610061637153285828012927674682317193584397709012723330637869567867499324017147000235711985681255298822142292075105206851504573526437106487252413703138181434493290087409113372934694010686938676132707696512276092224270672005761456730661869298592735260528944574855309232482716864988336814270457266458866635292791904889053265454051717819626973794638422720137175910907038753652189728727353607218261636970075140476864800840351245176683004437482673558789224370407518489671281542005537113219145101307124526913476723812157248144239979279097905762123058762106586173218777852701898952680719075806235887158508681276278617715827161035473318539350981093276648780436517137402085315935590059450027280817629393149390100326219714720043956691506140058169080388628637759363716750855408924562283847278832974006475398683157901719979113353742489680921642103151386398426806629636876777206952400872534489905079212258469225938353652664920409611393008374777479324383677378035190539329336326460415180950857883907713375764471892292428720054196968798845186043626809295401949673619032600478287374037309807091464801678141555618209405110800071330768384653565159562863877232930856946772894213584369604591801351950508256660012554293653823931284680335112841822691849823768795440046939474971772184586798473510773527154197325027222192467322095890232601646366115184200659357313259896129834864968751503651372847102444222491922575044692768089283864574368184490813115380445686832989031313043947586197201071306931831191152169061362976136539651692624882122408668169952653803319206987324854742663762784239525890773624548290719546264175711447967858503909182629452697918945029135663880792288016527612181694815821903120995642625305949202469783984179625932197235402860264944067240320569708482123326571282665352188938713537556168735594434900941705949660053480034138630642369763058807131722807947713013995189271012278211316987052804498536896685484953099540787009131726925542513908716104936466683002006036010868871317380885577104018260400709348890731526977970108968743491193037746850212201543251364233146458102940445687450198014091274468037259179903250213674470011511908849485524150665065932404036446810786814833897975208751432736579724714640880242650424732042783684725054567906173814651827290181033466207957747659971849836524190556942054920280817709649115511932189860311676402476729107297938244830080902151059509347131581192624334708901865361469490580970446087391327098094381084973074962086660939525468483687181319011444906581872715630070747283088062653587474447065784426888252103626087915069864041388063631718354736445718908429672552304900401821138384121875125907029568502756419571171511350792965046280225416917534569433192042350818163721085572505735287862947835822594962156761856605912692900231637114400911651848606240971806201190101342022734025056212793515907876492052062173192082621376853173962417123917829585223117008156342636245626100797943429081249330534447137511978990189537833944576632206336565120649817461852668442958608532280215629120668771322906356962440499277112248083253061042938451926178607537813660050026450696127030713201178148850641022291604748587535292191361789655380198854558104553130448853483951313244935814298827605272061694084016931016469412276294487895159849478349434982180201598680679849271126643831560126961519028894561251329928335306815534050058788940837728776626940846785636183732797555686849574629300307677101804431101883385031897854780092946147991138325534177111623245760913725394009212378661382908637511932455537079774171428898517038971250380574609032803694929540872614895012292762838408039479777650286579279142104415867601250048001737462140674862859809261991715516641307276490395740706272101771273212414675009273903753656838439240635599574787680741547865892522041413303311841498133792640303108093501651541253169528685505155000380103498987078906207673499725482639794782417558782063434443727990243838489714161158953830080479994407648574777150491685214561541723716819904076645411985833170913366088119161234305179897638476101474550823654716749790176062733068646039104124275806619548019137127074566709742698315821042030747657820393333428396571130123637118575744031828719319063660809076726486038435795362464366978653047501636661971392519775851741964062191530442695577497234661335640579401548343954967689190945408796400969092161409960960862062263182541891943323472981465023194578244418273622869620428306452519169165247790060224694494524375909249802440905117602826437579615991129781857477292060909699157335210183294974268363115691324187381413069449472561747176506135186347574853056978709328599755802455906222958784944341812496432244409665218126847720864975000061139104581589331245372538487442579481300737975972013180073800363954278661614119163249289004112880777600787538661446524377052459718878847372641797377975360254042301995808982548846868441771805271833563508498444895969096480002298111470089065029792378641026183751691848056502451075958703321506520084864215208484733034490206791521713340651127614523100034657944354254770431807060603623566576826206728822674104626272274959960953586347685608353351242180773135952101726487200062356118593794518089503071903657515058812449096709625176875625420684356219039660736504520175467907313935125667795997411965528277462370173098948431451772607683134910390239485045233331015438629447795073437110880095117306981397848404047888968083212617392254472461205190317200761999378846153483712165219094842524685123706866097588127369993516670875803571851931308630906285475499132103358626444467899083928622749751799777578385062277708732250180859075728396538897783627080257470556796699637962267262759855742995161000296557703658162302152319647844943845971552097932230586379238158004702423412354259799842961752236273805452119063904625475548786658910148135308958901654951280336430709524743302054725678751239138089263678847749198141495442386033017831718798313600630619383125515761819496234902956346167059618615891937487383866740296726500053977703670033518196349086132122039609749732708320784868342703534309101342296585233994519010795786219186819871673823314444096200270252916796291447703749883834234973114184426153446615735678299951256334913436245056448750078075019475478176310976779791160416519950960769447782678627924026214543362070498150445304486861780412350112819337393665490897003421006353661737764906619286160516908261636165661884968952817121930963077922904226334763304632449694484951902988502476227765459981848984754271141184131648375320890672874151194670073724034927805102640488489194400111561600368024633337267593960536285670062138121223999369366435877085394369700734622228864124961720385336619195731690629377341840611399995118369839776343324029334802997709707412026166374238565994932940473830758893972110891510375027700026918615719188003546642001027928933869141013609088584799932143751618498547023704658941390619795712434693256154600168920086875714611338533579976902584440431853886045678203507626680379785756890559712584889118342783176133849024096581207448741260727180667054682499880499674320859597395775134345729248065646684598052184133313360487129190856512274032012210657078374299598006311820377497474863491119275308832758214578530086070690116265293300122058630243937082980552341401188995056813240791915138503429507672220133617578333649139855114311367582480114774506801013112812345453859754670394115647276449190002181387194645067756166887102662745093378592067250009605805669223924052150154165353890069787232607403646187374440238473376097146508231490371286622873446907514237853486396241904594627188561976482293715475311001821508461417954505547903265029449576860201992387597227595730801428296756412562048779767585540693846074694037402778622580094030116831267468385799129518721758476142129389389705425225965723274784801497630117109396818557760845601304203187191042074196104169390405676663738163355200455973595452528203902300971534541972482821075969327051727545549655927803303618933768295595308213176791936239545721645651471463638426494806850912243973860388001462393428874403318436648191825413227092733394852151026586144252863068490444691944409626121471223948834576300870862674044038414792961746300579696437415728040146615135963206249331789197305128692562816968056503765745540771063295291874784587743094305397210504645102820936919723347816570898777426765651862034165894646540648184918997367392703298742923468182182637018174962033567542682143044367309609237360080494836454897390741713959691160219429810822346979224869703227623109982260358469577206455561739857459423306124604155140577364738340778606317378064470189003489925888973664691375403501639733059775297464299278233784633470892646695485349844888545827510054849198323416549522017766365611600983792772686243835438973227020572643549098207500804147523304460918693493436306335059622759165499970911509388165854997912285752966504950491786081165948017780838061370370281360158220273299814907404640322587035053213857491894148747397442240784148065183109555192016129616442360367810333130025354339225747028837028912591941317282647855430783584084535268113934244711698321251168438580845042577612214467571789053218787052253687364140630847515004723358513492632308056453595200158273863968435776215783519163143741072676193989602820474865728433399776492645570373062818261955715145501957698953667226125006717564467091553580997683417931333325688797951127404429853824698893751384655364572629886468451960667769523424303824120006441870469265766274634547871814021339768594618612684432801070440127477792317935797333034423360551511653440208015094569271084194910355151438725349317147257364738754808440313579411115360966836055801335263729442136410477076282335083231358617938175436902481303001240524963220617506225532232840431841543667767770876593253759269932485511027002571358082675287208025378485121081975488985696476636127501593826753633375671095410044613326905223957786224014711489955463096702812867610457923589744716142622361211455620454117074272091969240929845544567027592786102089406263519743980708354772539151341975430364811253828371777325202882324745576034251063115515296197406495391734101552516078233893619658845599438555884354699278503605064046359685451531586089421610759942148819845425472330125046461384871296968407905667724354178012634199801955860028895306738252486407378776414423239069932152480560675492821242423390527141357514924965724484599404003479932122433039855898902226899425166735172168620751093711336005730040155280479442471070568488592296891822791483443363148831394289142401374166526861768258733886530113894068174828199039052310257378367393663668869477096102191355382720615349151958894754470588357936706179236927647476493064067932256754221778361959748844511609728166123564236907296799266411245954828105301365508500710823599287577537941765339783192912298230720723215843093368091955293498098325818725890773801073371463809859255377816274593422105590905760719426242213640664288962454893660097950788293903389489358664645062916548224569036363116238901024008846061512462591411400377304114341588949332437450220266999074581667900776888844092539286223395202436336950725303198207995452908131173232739641400668521787046617943582773306667743470575954657633162728337365348618367634572684269000716034855505821040276933247676059892156686776029197403813798232025504715944396705780201781604691803353246890628858904465625240948344293511857744891138101211976971249701081871813118985645300499500706500817943092095069447504380469464972888734881705809924215200408475715265940071484878933062423303938075132787088705087472193033091328377396432188087264290496120549523426686534735338184722696563948135482262135256521534213120356914271841958408803546036251913383563582377585319100313969476373908265866742207476803401482796530884813037788187353957033116070342433956501890683938283577913263012066152433029069090406992827030397234032535298035875477250540844702153627249157075558626805724292918296111266360675827233636224894626038570537335549734371238829012059246795500251881800969483651691351704268400470985762889808422095152623993995334939444380823990533562106168519692618900834477053815643740211730204819828691122881898358709555171184820190834891463528817724789076966871484053377386024207241487156201036491317619062902358164624318968308965721693814702994743343146902859405171840341897077609065508754796019734980819226666330406553642720276894826331137031577385331169212063456755667053747214630993397652750064491660244064287734607694988206494750533514370551029964822790098886019280803547933443096379935009264058517208806948706750494614731897690196270003438571660504715458576072042556383507021352214507672701415844358192799165957314875895399783548711247077760573716526800739146129197837352207972359702448535110633127032561702939984519678110345352384946184107633383384530523667455432986727024806592434472751473612098924205014048776127808867869289292473097168447345465206084999574188859376663451755211138113114120760511282042624862199294449371300012050184755449157198958631301025068505483928740724222033347570581842617204466033597621684006800340251668767091686051989833511695998469129082829320486212322632454378562025894702593193359670583377121769161452218858295707394472720029010502615235416070163617650483541749660069676045528840880812362508094947944356146998522961464865619894946891018971615965035744491076697722315045509867500566906026044890787013550859781502481046854199979952062777064677294571173306032688330714125204557629492585882338062625828824259627565689091292529185087598409778380815539813258314104761353409332170884964846698996265035710006015193301607625957536463913560659221003359514628644618483611847559027595864031111669286834908733563770254078280087297172868698533243802071503999051443931128269795485750137168509941131969215514971524153456266142815398744269590492594565880801030701059787383046649169781573248084924800058233611375854146101831160735957036552321441507654377483715976485935776635994784417805174336425463639751406274492302563215399502867652907061037422937464478547624807751440867273737107895436400061428071139072974422869738745480532384869251528941644628715138021449198199973910120129136837341872986914958145681766350200515893369775631537839549790377085317807710719851720001295716831926538248834257188254598073329686811170602407815869918355762144202104411991693981451483813582944977794050212541730906408258568622365454899163161161799946843710813147467491929447830372274151609963296336445251836437207572266049743125217291698361368279702691520077386273321531681428145047182135342287606989632527028067258491309525037006435519150970824144302474082226593097211027910762482050846223006178308300979420762017644253827095383921139985046813126440281189606833323448216269660633086514168512660715504804660456866759136715411463325424368548494641436747452523034321361417183576956656384260196783327670759655640643196973139002683084184525895452141853767829274775193781617785459382444529041103189699963380842665577818433240613846771256564813020286327637195646226049287726527539444178961274702049771520276849590300648912773539314006105504385959914635587125216460634169621809178922097834811311777313446253616004944774701342517147725072001445662333599152657181443914238352016603578319210190144269883471873271817101484570672791772303169050055743999428081480215554463270258360801400520846270867792827775842909040832846441530657387632676846071191455649346760199742121127554768812094589413692822476606607359037079840953649016980415478613319501861414951482608809610275692833731572439390363452484890024301170294152272636909996365240828644700339516853363188464987687789190922641051153800359124195968339476747272140253785691933408955125617796529117844836069960559576581139875255435287108111491261003078270610890660116619692918273500673474425214178705098000187454179322849564379218700423334788591486490933160668802560022372455747459603603562744966519731191387338541145394725342491756613603227736179079190147715760219853195104094792862103554554974691532366564804696651373824838333256143704030282955660144600306493122251743832422652201662438787358955024831610935389369169258282000560618799031060314494593373612452791899415486013196055796174698059944133417641713431325508378402456656113903255698662395704203534974515328228490630298587816688304020388602985698526748034947278002255651087380324848048349800377145584270037707686829843463109433976745283986704269423959622324628902198701558167991512237098857010823884298332726626653686787238296501960895186159239918777399406764452054046820250839491789614239776979739782402101887556562207154850458832594758331455932570769619398602901701633939103509185743655792417053169912348728001374926971221696645292991578019805248468601219746041134570579480612673754454666074450706796058483682048255202571374212789451629766987690688868191410706430120759734646054744131711619658349194345448253954435054625188136440105282910975376589584397002044963119485018470458163789035887621320157559130941403864971510958396343575248598107628229403792716145277550617695619412992312641816573718228593766207916380238107278778906066967962415805804968549805753342184045595753201932016981554152505601731289739301255462013930930864772934050832693085710128257467007948008266754852910897522925254330917754839707863482253967759987905901841609986520436214934764061217195280093063888228376069221414634883516407381714738270980002248538925653648333363766080335817169029101781566345930472437930399423700746134834663925581532390204393733650187797934757865111921688433381171236186095038734856938826989821659293837899383246689727763737624878809148376186220216037861685217136874393428667044323837724817064842517457555659779353967942305517804950024495303460542219113913448069814118140228638010551042497937247606116970421025849196611689864768884675736326993800262231899888524002652050441863901528737196714147042444302503525938292051376784662007323571612796256453575863310944865207011435407657577981553533486147115250086412967354834051910620694523489870343814873091889651208846106315721628101303477536678701678242885567345883952460065462091033686556295857839827277080537648534463813777796590172684431622693310378096219468577042246194362334835794247175918267915648666333172342234648117053215706808131608707684128437229790020891714764542715552980647199549543297217303404028539124314092414950600946297566519044168628005454515324871043209938188475452987659483899919814178051968587625693303146893514249598401385670857662320884530752997180308022575825838214400662435122744622022551703392211349737612633177605386207880901808305943260658155618928337845053872508504517358232829775519923351666701803969625931132546311949117143769947506935911330962774096293709962486683268436072533167974224249336374723028464256284308000912867936885526004163284927248832088298064602818572993726162151109100687668896428772462443566030321249348767582006055464779498716251757557680361100022924764851760561473511579006517252638759803111298648874126886855203820122381970510192098960592253370441313166187352273365690018065100937942409243972421387860693021033610336972148888375882933170289181380034158341098684540358786939276659665116919609069619342662964115571819685388009677288598555097325246070550327923181594887817097277673356943675040814358742566929994427037821735761070132224630801504113637287004449819537756333959480482415711674440078746023665211177550312618179639366246062057651796687982523779809407185324551982905938448521585672209349316406140207340002213387518891197732540045494281390476360034299190028294388547371434746068757324594041030679247716202272861499745007607277582530755035289478335099802227198091344199667173673834794021788988719174190986581803812229032321400877025854994110093054914538739616687166671823110357842171396033281027652822271067291160701614875641616466814757690047281343424389964769658599752681252488481524182627490105996529791979349809536057424397781592008863464215482475190601948433655347529611692465517173003750742352467058534025034130347129529087726398296875087715785147240695924278397708961309775851463456219377205740291112144097072642415306397960523995315555844997860849629548177653823525254000292602981846052276309207054739797210804895261352721377781834498383176342169847445299749532940268329107277556876195249958755845694883342594438058636904198488481691276805629065310407223771048792178706575210269784708477482998808997790496175988261291599055514041451292865905496779995008242560611980595828447209658591519371541323859160975760210164202868841078329426250868851282883480093769420621304697918275942687641073474701216219670814097404803130517875917903768274691439593234523565336741860255119820979914419067303917639385966846646353536251998049323320392584453867803807354318649727194240488628927209353034332982318821161063122566601239823488748845122295422355141419089855671623418098561327822966489508306340161143977080660030090818239003220682464283419548314269314852814255198806840666802902199586373201401827007262725801280484010798020915830109855512126258752825069789958999116062347060911304419549060642060641651891693442855883656432610404913192709191601179033547292706484146859647032496261271046781213259927188096673078559684956507601877341070461090594387975098556461157461913380645774292272227514611786056336567774465480283445067397556665010726313305529928715256481532511595836114577112925418740176649778060805739207974714150880218064440805834667553019446220689541613630041775302838703400872352494423495960256706208261777805389820155523368398536149410928575600695808442970567884375003403142427103482355132095351307128908830108754071248796579151586796773838102569901320398889949405669441876231110902785860948085502883300265084470408559608868154057001292060270680874889716043132761941344831598291208379695423955942713980658638152761947218168678567725659571692030353168974950479245183865595153621596834706443490421712612822875581336464821232987654984209224793940319702604983619174340739984502547534445672504142518548243875042974561875600700398853095551720610352903176459393674479752983083939075824204065170253006668269422160496529715815569313901048472514984166010663031942848720803486024955854700418895365978022678765175758162780606054750469216921049325998206008700627507490952325306090290569818574105517294641116400889358602949174243431347425259065954033675040689190063797948232680519733562868878134597417422082281666135792049089120186717315685220491878769038813894106140688870659682930070547907952845554567860409131577238023618333735723354975988800426143944807839024420290600070961150482701757694454977173801096187401276381269498294280444588649513867746960686118267467630236170997862814119836865587897664404208167827714997579102160597718493174120840603898966915802544465528729771122007241577644089713782769927845300886805884101725308375213385739863928331353075322063485996053079189018891517154559283585704427136451319104402182469406805808566289139495881878869548826862750305422371262160956364527227561074802567379667812820610660924967905455163009464437153682693259579504376778222894462581900086855712158693960034252216258489743810870329391797604188496975417550717243655817678277255373272097436746767207850768263746629609703112520379110313624052360881623441049674570219572682581177253293459951389187528538962973959489698033716434337385583951892961973910812914660782694536157784076025700617687984317052815897250965621047767394326765662753357866512074716886221020362993827877954156266934247172335303307025718093157651232895044965648264902643862913531259689287815744772600771175486246479649149779279888708099855609918429868428665368444672331436328298826748541210813581867322990160031945611916788410336552755991790401223102474626657848916753552340523463959377138079300441024106668463932140812510768176319294879921055675824451441112644215042593973423801875985880338144271327762754061225557074727576871320840908451439869396513219871854893258763693663805633657837391061855082577830697349139089348498688940856282400047733440676610894739659501873643462621660549621436943747247879859291200234313014962119884428947884526275997186546291278441260601439953799148021696389071590730764529020409860655408289119519109628231830924842533647881008141983780804866648807439465851069142619121858291968629233530992044768698838839574108768636592585593415731207965645420263315312835273916780534737221329605230384315377707119876045115477020364518938160818969873818314263353414513587267487389545918313945627290715277444846376978470578711860451114749427511765868385409449385574733375287894482280687762882209102394555891457546387781333705096212587405779031855156080492026244295478163672025852833483814726368255885903286027950201756641940563637872080310254075328970270022210874842578805406082465609834619591337059075771364406121225325223313399480911744637937732828870502974215864082150830353868205257643767377709992552104592785948510866325446421737139255265032494697116312796191717891668170215326585563919341846317309906412778367953187185894261435098781105097302201523481755418893137002693745490844520110782918270470864522052641318954751169427928650870299846023170626715742653739869414808560338860780850365589273502226536849926601969539550427602856324186493076494300241618313639298204183018439910481888208886626712442136114352008237513559832264460411955802915898503344693744640350724491676947997907790855291973971498672348737888844280621246486691218815915907343535347225005674464629539170563645503717980713951084090013154007353258501570035167696192892980745231211976451292250131452232492506297920465365871401834745294884124355638089104032525076024544147352052242698352222576969151278084788809943469452558314913480623551359146943109496625316272515284357904992467323228321177903709621892175546238063053702513730457488833259833347972337783910314073125173926133577917836950825356224045042911094283612377985655803029253570471335562680231975543182661822850216431143311275838921334884233148727225864735226438884699611162195419762803091800884732655639194445744679671466576740422400034060189901814277885873796781249522121060314388034983868615320447785808553927109169708837777247392830907317698806970967882302727966421727760104267040404930164155033957784876492504080459067260165624958124193660825900122152375254476158179337790484095537764859146253152743439851521831611986824493091586534951012352682902140410443585551184090954554769770596230350921711630526683545714456364436069084379031257367387587898903349698910226776426178234699358130999845548466181230895916824060449294090090928431175549079103062799482210058072265458681598496259343548089163894180136132794972593967880836507107072524722126766270464343484072660150948846979467898801543102062920618987288668330081072007298032748948461670359433679670696099899104010378298809048438520334145944099524478967339842123323701781255426763173346183222526221272256663603577912879455136806351087976519740040910164918118608510549994931803727397291369682839204196713760834263999344571212247949945331504665037150408412909714487019642127494948733921895393430550925665943231245575021584102725663875651512408966000711379428946601473105439089736556868470875996994123241978683374394419736347182555565213525049687712828143591551033031769578770671782044599110119468685374966368419422568938562666455899745216586355391106767419291057531404535769701506401760680724203711188291480304588778736425911897353516053363528340063073623720370765208335977006589747224452022126699575868318066727326914967505467889998207220552797404103206846384354670977485170367338841020452571724006309744368918143024739653418140931286546649640801525989834035944601504076890423158623173042145210211824708276820197799382623351165417892200090909780162475708885918479988972741918211722120904352000077283258281802505638101487152636822535488924320047185443815993972897540264827327592328513109013011433720027897850778275961095058922246735321951379240512018242145176747173522738600443707962710380043432624090641768326450858111540210845716251541906141313924189397215375977955398329968209153140386614974586268059979901228642457179287432075840955917011526212920622518264311502398401725466987921304913653894345473519712829039743332216953095441058551763824601376492658819090358305886440490023381238067265646864176257845359700569519615064331340035821690477160109166235469785144827602893531368927038305086805873206204574953769008743826786402730794377716979476850071133559492892155352746379464110955235612318414723517017709405118366710971519357697993742564962185055100310310341574007607776598231762562108150248699549749081076870808019891357062243469852185811916342975197803851550276534410227054858695497696573302606815242376592443701145840476264298654722582296109650529966135881712148969580996403323411602276214366382076272023247326828301945700953806235033060143319552099151830254050807104425932327816862066398141618551651901673807505830019025004499064993092406534162135991567063154141037731376593497807741473307851257947954143854441512998630368633642246722330637178742167195840430727852321391758964976550003850147750865985976131435187741013883304016200372942099499753907094774788669377111580666936531482629323343913639986443885519675408365052015278206120380289494714296359892052781753365429720612687125035053748107705818826760740242697232307330658928423607448249882674746100145880772766458699207063644833984265536348388757904023247623844141573476381266482803697709863787257136433769407153360025276500633290633201945598721163714986102535578610742503274100020573957457901056912667886582272634158019307473497633892547211719142750683626332049670520584975053768708662530904306525869367049748236661304858859953995472743398695501836044247051414186126154183607582734297396405315452119048294218183095946746379300154370436116472531939103599305611811077143976199537941105915741535243532919881793123052760791397892122350040855589445283762231530569813563515139060081320693836239342631625278371202722215248109695538471973996285736425648200484713353328208873889591455034281807817559055810493262108290499011045950437381773830379642875763362787654880162517500001567630664432090019504787824394284663800106754976575642549822353573347417025076835743060790372684400701967776676383598043580231677360976560523074906289879784070390941146213533700790022414821371464065482657292107323137607931453270743805374001680171869094313156004505914883204733060817640553724762014800664554920553453815782983458202052572706789871711018789289186933287215576395346201576572627485637219560539304475456087659488942161480011146283569559670392560389936660463327532386481408399998777091177275721566678050958696179877751876242559165712590939049492334587749727668332414077142587685847915612760609914178862515048845226836124142193062239308515368231401045462904115840230107794204596879319800564334868527378827935453354731315227144178687170518626278625852795991502204771290958147560638595411640924689761619904675319934250422692465892039708800141858622825714830765123019000543459338073885499007611871295462292599816935347481719280727252066014449376593014257939596146080462176171760786940293257405243032077600530431730444565971757310951910027647102823072151221118527527468968559586701569730010418364031868075825442045599580884354390495440932880657292634938784700060264252369387737298784820679946322295066957452237371560989872048446862153754656684651783571740707698452106835213004675208789083626106103056810192837134509292655819528182584637025464634707935604388312878754466484141066229187374399640498726920590183124543570167303046278788507372844819843752040225378690342785555775843350837602201249201212171687953682991263944232856783423131672574364854361191169326921736470308817991306688756023105662294084445302051095435248090872921164746805316338140082298298501564149488390829025214095534548964379894624438757766630673096917878233384302053741692961084471250599695850019567494823401078919903538948072459625501840292964383799938042679329161483112456843968219630879395696338728234009994950661023912278361102974077042327885707798749683988659504152101297800180583184444193062869447772655286123927357971494495131221878968254123627630838123454436721585902102348718708209513572056541040708781475115437703716648148446581992340707039343229524481085233993990211014447381572780494940736958840244342289252041551738795516617270020698181891375877738779748906432406815159954776047759619854089004533551631080113168296675643201245275815670722239878521214769470017787608731698437112217528407837395685082713567907663055209856296925441668845669323105663535412730721837427018167707513301521816222971671389329150409647075067190917916470121848167838554688502645732337915313779711014159558564566226278803769014625827940144025963376309690336478522737100064382873822654103726882185720750645369449192684031781196182753960393131757952805392715819249642366219318222536965115371261798691437829375881279733181827447513421574363945206762278853669537602455877823208953557744961282739777162663099534335814621706146890147166243993065736094845043844540001743733897082978469109985696171863267733014612650265738358976077889936485554930888773498278207201461501950106820845697765807115872820078539435352628741842250215412646719760531262571747813706651990231360323823485963150024352103235888212198078493383153841237301321315001029005849757179217884433723581945205711975349942711209022465245864029068436024064449288571542715856829629925179783604708296513552705008234380904143119846427038170438264848934491707415031858163034143540145672185972319957260029818306604248195015817787367000315694808021204810851482696730626200878703074331804791521206520168101924414559312031401846423954918805930969478361190848684083636272077172024865314943481940800894350350862629004805200305009772781823994604599265503182887307659863760818938500530319912126734477324098988618839734966703504991287117088664397579694491875221941349158605752995076777095002371467959187068228705599213704838129158717142949751017427350554009516704548128851204439709456461665382492376310354289072797449257284740601875928020122512875011699248597572242207812255395697236037176501163081023631386381281207632689529799993577929698661465175412797580550651279049575725743636815330658804732498287394211535862984818083271664693938217283166923778657710410031115766450691634370365331694301527461203174795191595577239542820470061439862991722862666204116129160252225586641288024334361763426581403133954608889866917882291339236663195009097080983687468631374239484523577558562216963564072455688924847267977088960973168115860097741209495037365833819561299504554449216316923409263347705842067557809209701110885135451460232504955173641166171202248626969092102169213715444963900585767094539271647688019086894604702435274526515798471056401239435240660889823033753553772254935858656770968727614175656981195430768661212662038151104576124302699142070225431061742450428642415064227626924507046392662688799994184723906718225240435521643991235139288729286290247100077474130704669136443832438075858108104202676158766716274182827982169605042462983160703734719197139238155418022718923914191980022800853331748519816284304405107012421083590363503855057827965787802934535580930365010914018150631942030712129772891321997321427822037939823604317978026938129615772837010784536863385114384849609114324150917541260085663844704969806141672146228183466300159248123496978595244698928527796686251955376497873310141923220480697667390700856126605533462278482863424141177880405164494191813552568401838104665306195744985658572817916703635582447411319938360108500917384557045235427007063593087747910447234510710985219633060110773623285826734599677018736194742265184198952278950892453121072512899499721456672575412484401471546544873406582392988043001664822670177835986620051780125385652344492412670811504332372039944068143791287124274687653253875513988916348038660386685634489190799579658744479188145020358755030756533824535326649868972139212731282290889963697776190046157859367260384730489260933501348864404095609206953361566853873200220480314355921960608837127293187938107590847325716699753568266926337924591993611257754106652360374007797345638512294609956917215973717696521699924522466516311592691039042314655183361230476094486282959419656817449352038539303164392456111192246542199888916526081845516926346236242756602320456554421526680179201703213220577047253980607969998857637034733873765166285902088448689087611787156020047925363677651682224234313755497472692113657612764238600484911249108890649485791573053061613529844928956672763546996099802057680893090581108784040102952774195329879012788005819564124774876070478213781508797182232885724095368476501436923533516051506794484566921316361969673416588038677407448500226676895251836508186217182484274660483786653606929048076766986069144514420691478414528312842999373493757254211077104376772212265889314244505328200370106404817448956175651694038630953812265932398512616293256256852381460512196504961952149831779397468244946191102131609908694422311377665838569023494899114962878036396747726556999964639053141902641121719316988595032419604048112046206196616672271830437573127436346611180495475039248750169977547704579986719096964496049145416649848003683964886532651213238777386698838840124943201146029348628151226039341926387439649911236457281576521728126384538459701094785458351786723258050292990002586534270191181050649182669540345894814214602679438402277319967158821094709496130935074859889017554820312025312805621703165405609040614128523539499462920311171109472861623004188648592990167094128661066371407193782276507024182528702818498166068677957895236984146889689297132387419186862063497201153877805497007098484123962891831879263672739440252435904904327406716079454317929829274023184189830489955530793562624453863222012290882351773518563475229154647199611505686403374819712592029167686724065697326260062855123308339372280957834369554595896958109983044802886506539997177727723365451586642187066694895192702384361528418884874467998416954165885660807843436630902433289224972872469870850931737530347308411449760063365827765256931789571311787120148338849588174369652368571728157207892187430630342397487643088434235235667758061935288319589212505089554914833171960954670511296691372430929498225213498906338602092753102121340108070666751914965044022440704241523955859806904175913791228471877113002846173259615889937459420471492149386537477063403877642265410343023395127294195202725125644154963805470946805784938206493089631952400758888139145719306550850530623377859201881257974835817832360157212965570699681082564722179472342507583130619060370466306999063657063609636891778342612873128315354623400434234445851181347568819669404238278237128364012214723585238595428425462796124142940499570406084969244736179756188547122454690190809574255871603701741589864454083986020832352789723140070496146985175969157802546946277228747600838726290630810581845040329012905046192869025864682432481736787626199450181512871748916363067128099805572002231432290262822356893457305167605279793740243637976010634064558673098928941286679830719248979130673313562692956786271230499728434395986620766159878461428121958863639107515226945143072215153909462702071522024842491012191351079110192225219782739160035199170774658593525117232948804566464144177911320242340399670851253662828128786110661802957415971871544055293275843906468539314706504299897519588377398014396893805108856663862350490055298908100626049933709471615577329498079024304391608798111703158219513754797961550483896979034138170659493829236533781916629878316873780290167347426530410741625893409190342227610975411912078552296865533357650139682079622228750302326061459538419096867821864675541887753839730393689934990457530111850836594565955250004517611343316072753159696180535921190268812454869967344293333100373694903837654516862200075745550020121284065739094336183323973111266048014550097772780762713326989060002911082715430311693712605933267194444886833666626323318043824714939047195438357396765636123716814739180829569545386521122521860580056006296341375890450571519131505697505408122012188045904765188051525698462232916310245191788228940725396306540153214912980223540141825400019590032376775055988578916744766013721801469118757038247198019162874307214788942230686104383840918901054749030708016811829770724256205749377881432134177538861857123296574432920854487222087458816353453384452235062310217656662219919671108653958914298639862762533372993520348006281917348998003725017848715170241837915737222260495958501927530069844808248863003133102946831220786001862207170014818775312271064668381827661207454035456738628580635858294501305486306865455017663906970859542128160287313335950068561697172683917748709514471726727934671544253310108414210370066883962625526840059215905481571893898437820956820859918523429785203286454844581796988109117353366662151151817259904850513041224587298024884587060910111347465419210746463298185139074011565075784420081867972755122409994171533029008526662208465335276140068438221169839632390745392293823373634841491735831445275195618795371432007482256240675376560806817936288406863827126837471765272900236631701362558647614304691019509951290410872955380325046929327459480056292516840480164058309433483296886125110212416085857775716679042388589170725235684101948741160800308916571860289882798859196315647830098004664628977057180492034116366876145691700503901148626084657798444158056765671868607752434861187351015369726386779221089714775065485137871074587366735299825906462694319072089854745093282904634383267948344960892720835709299111816008593121882644317625744220274530967575383703821883278655695775278586161570662591914335290433274999801642282987114799566550312359708105995103116356735659304705816199874829002192283592905935152568626621955446525675606577816728219480105561928738870771038389513967966670261215196268247542451470878456592937507185034212474539426985745252104853798078327330925141582659703641253914686716354248864014353434647132946354272082997329540114944366736744852785572788355409796835294998810352666327272872471779000961719173259321173163056058040285158992002298555289517990684783941876924865977736144765720034377473048550872972924539805145645504239046564964151977504666799415111192969673910423342395845084580240434697172843539084842057634870652602712951097115982720475355687230154312821058735641606504738172807385709528361073625412080299946702803448669110300303073389109650740342769367019114184849848746403836155918877588894811391060731325239088187697190590183775015915165408989195342640485379442199737003627354420729681791058665317873360067433979548556213634628808787810311517911265956837656281709293948906064325529359890160203194106031689012052424215441956249696888413279027159595825999400994881703189368390326905272678627584458433637471688081078737718333178783022094259984710710165421713419797976018691182406887915779160209142365540500466202968050040595769445476204298995172572371349968528960390997637249769477880316829833397286352522434312256094162148521276106001810412370345186692524679634447375240939822557783239726277404547958872536650026656916725152316597207693775207346681285216572777178986890346385724832864027962740349850521336453786910327774123630247406349695698675848169304124096159890695857385362006668125358542633001997722507943952729657345594062018816940795492710900416008027736510607539536934009099156247906317837459435988351164052704526467188777014265182738300370234325191997285594206909324451276786922287772846040494322837687301205406663300207236417179152635940270432610568193621089148712704728005444114300899476467527160681022918523171683968326681918239733059973187206325005615298525417951260579803626185154469793430893535879805108919143337169739820853222248324635606437303800150619567146185605167973940026429313551719288769576405335457772267701247826471353134265801437260069654479494523373829916783053114154038950668061151842720432056467908786300842772633004270950550684844388621187007058260836178899068372331747135605329145506822179239286747487767580506022367176909026015718733313148881275776299154819164558482567042274271655060369216077493224736400528563161209272095853600684255968916571472612190744775297818855661684541248335961849412430780300423620200292533996136521228319273700620190266037990649969511459444335649333698596512843967662950443762655206038653560504950269657634257500276730845028304848869639315099001170293426427718889793260591356495686680963708360051568021009433868356463637221118339095509178801991761580215770818767401943584372477623047430627555530635846522136098639686901834889259021143755485037769019491687573624413131997446545147687098862091210534120379389052869782107795287761224423248077413762180644345690363767467529813613294502840836832408334214900914783967287473673634476065965402744651872496212386852321546234179135528941127528759370848334354480326365112642770740441633788881854613430732716852484178547107870408357955353422345565562777477190984095183325044880843767542702519229148838454800415800293389293945247026852906129432446499473936430440421867010042408563527732013186842816972944835732619834134633634435187619993613913804879676641951589050634263139416869346083477001711250274730184693212324594541277884537756837278241005262728607247201402402651533613062199336435552980112769809614248423963572443850453812715309530250904253732543591360803270957882506944034691644816963926315381413478460448783848785739642139789441043977195147558079824745464546373553966244463282279561707188402809308260654654246424297780085516863682209048704880549889895901743842145943005817492626267710061074400774986633083824569553612082745193566213722184032341693282253876328256321188759981592151225545248911754657439916737665750485964479420786474586822438372214061131689053337554634445313339427114622863892924351299360413900907804309813810777205749846937293936534526811420595079999885147814685072158805296299602434722457758404206822450994306864937472484585266534866467574450790172403748121623841167760141756716291480541331551178895429853288929707914384922085076222707714407357182775666422193596162914098468602579348387478602863072588560984804363521953945907357583914221436416637317983090208689464631740802697559929374930364874729830202680123178132760266393213025838037201481138056109213693650523829119635769484040013532740422949765101655712974835041813232083708321367459583811611417098629566764282526849176818216184173264112909002874787920508519432076127924307551778062481011433251321230674017612722194510364466890038897363712714282669702882792964150953079435303737026066796483472536803166803681505287665880329662453749611674853147164702724571352949226352221503901736579951205481346618806268035828539480756462161736263756020656538504527027136497983039183874585543289825182235315903058432268510019435955062233481490871016346443015281938886722436734772502195210772730156347628025512429506833014965930406528525433807473504260575679702712800620409387033259175365101227184127394443888263851639839115448048554649267677610836714829506703583024795670328202503572493097847272562815828636682218151576645289040422428823968252950456524539243456620027565413518121911876561353571681342424751702392515645269498355050820571700453542938489079714688704134020900567600871471205105309125951128969277164150932217933913079174309355915703913760830032917453222804225372411334286345915266974978129717472970403675862804138972940788651641978431254652375990562936811467759997300486303767774428481952993303491923929988393066460187558520275615968889783716505033444815726894471177706705916446081208733594322225952345845043093077963188700072212155771197309747516286184491160492245621165907309414818447970977843896549050642678595154945415889132641649253980406465402416790706664662896279066993536395136684980075873860910884577619020544434306976081764201482305040695735130444619413672136779167127111410553235758974523887368064413174336774872780259810616571197268493782693032274162725855345287185214267520387650147028065829127842430721636204469849043665677150667552472575458641423382333744514241724670531227160093991780045558337225838846811238669294941800531668451070536207060057205666876435985089492960366452954574089305373227634676465095959453843710750745013456975560237147612337334017009085387131277799503636324716251608323033262271685803996424144387275375031038672106268830963225194330575493933455952285304503821940484712015959735475399926473871348290232393946581143038971534767689318505396024959508782409595589996575361000333188610803443228059085225225474263141429551096594430272135697229891165611874306256498276972976255038887305855402741286699277913984303587586050571274319218084119298819189368011343279035295283493837223151512302837726833655464535990476581716817895189485288482258057740954114729786583472242855616684876277984727159500804248425710895659860857540951882135386001909564691063810596650206415657653654847229878849250392921711549007126965797154074003232588210996934159264097756599160478073194704479128583930852253229703547563548283869803352680257131254610620624830573417426865871792053700956827063721561331919946028405201461626354133430839915064375595770497618837431075369836494731114702107858571693563994899798852411546515919913303287037498666333345859540150635586427809634795460331915093095961011510018762453745875986365029950941416192161440390031388954280824026185519950456095858858809906347509976095013265719699680809331562928578984149954821820597403227495083188804375894793338423746129608358905567582648107922345181737714282879662827511214805966873966840264255596484738776072776913586876229621057202390777039586636947141597463385278883865144941439095462721582698266810846960768719788258260895156488193764761755634275345729407330561138528702491840745492547182437224442268548417588157219618952085735893167971235904554426640059560047260871708164074439363694839703288090793564212499218893018284402955039455780192910011854385021334898413104241572506649747987926943440276652866368611880755618141306215519103700003515319734096046949334448863171483972271951181745789012903354950854994791206513266941875115024802190398645722489387952301139133722304514643441376023331337934240616789523118871411502658008421257342290827385722200613773140231632619984615171865239560255021882123744039196224679673079271762605117321731795237284577309025414626626314427608216830849958746505908668858508838749674580686890692899705985930254389266644027819639745315358323619106763608747072249183121957850699348303766943115811179347119284254768090825937834892731134425906699589964400650834862516225813818689662755191946295158324877611619532376423789143113097922727756619733295619773817639069777262542247336171568073372578820170408982083252385517980560560827208995592107090746951677514725357063061166054654448344990726676212607192122135571102026637634259221909368383963913071046562503021726259650051046405207546931579164955106312515963773333368635223361796960801266455384687213432190070716538286465539863232708656358907787384583299023777523768604846019320395932959352870980769490821552785248088317880269227296371667415048014456017369694753043219757859481306247381922803818504140290413778491288646592021858552927654959315658121219716094341944711395010365165250794880550970234967100621671619567536044663663997244159945783641134828280036275195812915920206437767396485985117944657197792022429327885996521805336293868479313709785281116865909378281203943822969359333492567142066628528814498862041522602737311581882247068842512554974345217073122030162273232639562906040632598630893002036719749647417337138840346971363990905576633205244308431227253785421680127009435511757562881887743776286103357140014681231623681350937612048522626035955032607936610110070881596799969138703600076789850606102979688997938591838075437416634214712345711250666777610799244773325204247119435457529064190643220244383743972135330644912100171073012861346648855394988016766590893477527861287012818145385136911423648888849107896541837649031082123218993542272184221592316545908536846287308932999834548144276979823577835339976754454674367788791578803965106528670321523903455629152316245851160120936907752947998506129580481424346844197941378242748902418409875140885029176935352094530438648590916774772350250657659609800707556945263644286958108697785641446852427921982337987918333682409240143993024367459406744097279682070602595546173424985163683199000801290948387346830621233578833620164429753125504875489534324791868259391792201175804222360049910029140790266082084829587913150524501235932503257423901792015694860426766838389842147620426270155277433119188496981465940960933272016502411409742595811937583484022630993314445270256327347391401982714996046670474142168284918158091841140751417384080748413841967372797424849692493124609874379768631086208186001808353135232234315950984923832196772496088659122465364668291733533771777783614035377662020667058012776676050139800352474503365295856808439300216120369757503952586991984336035628944074804384439825545378339702676356545636378094156414641208258021031352856879605920354863724379466560720195742585988621650682601244157504635335744547160163175133560493881723375152332719463532759864438196814208247621438507350859669649924954243889032754796171438667591762888775957412809858752024219082188499429547922938735866250894665111679634005651269717200012144861745406669628959323158520498913635741098277682312088438425212343000407961875482595347201313886243950826959855300736304296424181761166890460751378644984077065423718732076188346782569118270441290581466495892923275416020041808068970318849000322050509107140811754832891348210067522670888061070416252648478420426984234070164769091843535171061528954709324333031560217869340363655302207965219601658410239786387853430731073627860961620454008931776431503827667928637661271081434213004626899645293645700933601526995121033984310693666423118918142964402621735142675791753831694573318327326924557792254829501514120043813169862163849672050593975125354151054099685722654491734578188582864766353070762929119483421187168529190254796065361011937529933377155677867940226137174637170919146695726146592621437017271270661356820236164864884690930180599212008334985898988602583281738601672509481609835838085360114105430749128453953781906014353540215655315122312344234541128114498488764684578338237177174697611194193902991665530202482453400116810911487677283448273412371279029101549562568391234928903420076752401139981112054810330690183209883691230200497268232796657258079359070488696685022030413037783505908355160301623642136088557072653939662428957398493861644944232381442571145694847882362984448514710459481488895082438865795243724808695366693901102654154858002115095619661827873816906998087456349066980053577966350453644320590292520449004754044462886967256077327385914999395335250031804358546520348758610617261556411554621661291257825442289352986993079674833337031942468409324634662353868660659587513576345056106268838850985162481958234429099120095748410417425158643916780296431861888393296855125964981677560823189737259332191933739180033638032139990320015393293431652697884318992060237835764961309683360757840045606666072419081529873105488574775736700678348375614626510549841236296674423555943798686903241500228801514923657173993510596573820660818620708642069869417535864806030071040249207896646600798809109109371330086433556076189870890868978056982053165267430029284100788226889891898546165284842803568152100382577588855503101887596522646973347032155414338870562095880292430758991608381047812512588148139409240193766306497065229059817507130876431680142062558811903651240499903613952726274345706574218480778101536794999723003239567732379365983982634320944118545991342539836420461092590195606912780853059416567349882645339502862324727937158200301077366881055241988720985897358942766626861117850888631173021692814583774519621171832317833758834743723396503123944774203335086380367739067504323890728154733555653902068970225834242235781308993515512929398339612305989166537758825604113405859939710215875589516411712333806091314261634078501400353238383922656454053688641346622289591578403738986906061649226007165055353173902719015789149008353708878766302652208554758827578386640194102291463758493744743135933100338935116495686083961629571507611268732616016105453655763627858667400667365967147557323918499685614851480402260976024856193189905764821553118883945261961901339471144281663492844126925243113406633844124428055176326006819455985299213623017255838206888001798866634274696763460478681021072608783226169027027436608356501522606659119218934299833149170330812883143263473608469607539295562173791956759955464642382385679419921065771564401394110816146098594646830772806890162630017579645943339872267741410143291784127058323627652778441940745308343538039845651396495850544249328816163379460703342446907740739849754992190791320931815705315765969885611055387185441453512612812370306020197053160980494937663433600746834918921300465475580343591308497595988924826195061956985704637987920254942714725259779655004823890384014027534347864063464698252046490294589433761948444100781476726108153636904492848057259679311791126105732065773376309366466033839199912211372449469591346635920887462199917814676852957409285432930725126404534474809779247350174595574004303517460494836382532598169594065522661802955313925910450363355809362255651647804064237226749078513793753103054535017413687160352198268809174237793616856641412811104699765279749849374262447842584089360585511209728429469069630652234259380642758502364827697905899546287230667928882781617826117908015294950393047375844579378049203139976444642012928485779040107096247504240921267474573787496320254496894604991095835312989387316393081085567464153709048096771192233022739727104076201791049581637529118581186798673165170220660982858667219758601076116785313830693133408021482454023027012732047933555583327497556201091171997703629143631257064754967097138138817479939901312617118097991328236034908430747639980256497555331262318490607847624608490152869509788593222185248290767964301925605276026465895843435672354344535516245462143581765526892214913967935926721826068721704786030076131242480004286269197468098253679478715654025597891659266827190650344387089696059852471394830771878135027541669730360423121115377120376284755572726072883740758463096667655148088685617240093136950063285924897321897279387249038201077100798534984938072571788716819127386151540576742575341569675682757276459949779572367259314060679522265437206006154739780578975789807455952036810507967640873642486294272611307303273555317074863133424106890974580574654976654337533476828050502028765599972218002151011996048829854808402623798437584057746758757500340367429789595402516025962469741197802081553222272570875582473484697781409589003972095278610865712957907946647951039488494131850471509821102125919252228080012371244193494270729476495215052974003484205178535543958056274656487717279732279357135773826214595271040817411726783381479603634143457371668549759719448804496315522592184511111815223781255872328349338556053311677736360846117349462834237103479798230009899253909367847057087810562082416324950573507070877457686135597725062629595726106436064244097595628301525672871956195994562293172677758382520038384771286171378990665768534658214540482366696877154301299364934225688369236474438371207717511504264113244120084973787914202820135573534616361000842762273607938330042130296330806745724583401025202659991408114899227293620741732489935493780781868477755634762940339535078180390351682734079660197627509607585451162543117828410792236855216119718901752204182663307273034058677735144755348491709708807877748281434227936145979723218717540607902138655578137350491743594634119472553569664851995771724191000285683395806457732851247016524480910662356499206177760117939272133304559108748437819679005271862983041593791912337717556429619497700317213296520248792219390211401410479267438507666981322968398165055309457732583623224180594959051610735651955046998808546618910255848247938779557935542994558821438884307801066478152351425284402089744992075791201517092616545503499861081216751952576683067544884488671859720375994601223308718993159188777408854489397360803674919463307392034513712049143846867103835711070662642095061400602355132558018942844471980112344312355237905473586909570035303129129736221671669445343672554223085965108942315611496715538223963602466660460647706472035070307924329260052807933784155131213093942255111010002091829173719511270734877159631021490167680708664415028359538633655961613065926132625362689917672350818416495010046575709324231080979222069071773300464888371892480887051140408389759238684463673384935767192074507617788459885695622894472387476970305818590413230539591515884320489779717482286944134860168948190138640601391854420727202382182867275018738267748543920333223771065923417298882900089963795459266478522358614661042491319749265244698191248208571657397305459171195861650589873962472751142650293386846251783196348207156722357554298056353983223597999486161576769218175100664279440739441376739086525296812839191791143738043305763327119019780966615413245064219330968748305283081040244664897261012834521503538744807054829826986669866624336506787695322908926021731846505610724759730593618395713747294531972375180764664395716643267981350518329279555332226029719489540672688769125469489118853503276810288084917143716113459305309901522939283976713174916225059005439913405982971893993022577372019413564215615413216296642617605780017764974627461669343028897424246075076338704751213783776805692188839779591158370598236151245901776044732280344875283702019266541733852806320885968334125077347707557013112045476452089992955400359776581449743408354975697553074037842140260471688619608856925951012975555535882667296078887292534543926837479912728312734852639086444935665592550423048774499239960564859236345776310221459271279200720828112778102106889048473195402524034218003258917477004193110818905435245006570330635579777862033995910082175167033705060720932482170195920861313329877323096851276171492603060379994869932677555505529047299026042743493070570176327947815756892942743868995798868497015378575559505317281351817909232769498809816879943732244688688658523385935833292039559783057544894954422625927623911594989649741938739891051603494802133839242831716150311604835318647507630762688956245730667647045702711057854242646165321779475499964963754103625539506099909475389094991719330816921173162499963832183488700737605281593786452556432344086325157985645870375284241743123545327789125855605050699006112731761167269235465562510720272209710382140233279878050288780422645143203973189249013304917832905752564796619732265921431677996955746491719394055520286648787450668763590492026179854269870523101038693003304366675258598909027505995387937225763762968890195037355757932005596461270184304859127205784171963585461502435176094521496879060637827087776629881829088546812647305523841513594129974470339732924279967930876806343584207647433073107780922221498812632000032372849118723441719050301732757313002450690894267091155258973083291895347529366004566840095922071804397211134281507008544521466545346018497499249317457579222954582499497548911994829026029668184616021357771645619131882995712590141138892239797926649716828210048744672233240927025584430035582485696584387840307431107033314391297914252257341373455574858980964605024215390923090981061228381609359709032253156110640684932872749271898772722665608699255129061089209198400586161805006353202279846988655899431968355434579740622744615707497517285686803037350322107980662786744847389376225177244182242341602457009572227981281046535247751403468748774582272416932333161114741959245368718109818663653105736220396260283430880673763403258845392079617695715201282094491973850182904494631460622975405739379589893398172846000986431808572163670306723017960533870878449278266492541621712669557154460229898783651856201841445567627684163206602246204287367742133514675261469317438595582204419256269470688345740020176835653492801742108514911482953997663543997139926672116366396258851535589666063530044203065923326308679799221093861368760852192988503508862251511632356029172612963605102688881275095998625607618141688133014984983089255650102392653533874448363817048682502348372304687366688256461020648803967433578432924122926672109460578577852135633684712333409483387698047747057274018516939825125502473365433105996579190842348501905852553056383123380906056586230700381378685915029200183631414041356602500344240049151603822828669861152379847114172272444037205979078186000464119295768929108633991737561620929724439366189372647097687105012716453445484216456128868987576466734928245595716270062233739125456704951151878086851371250917296437237664292269936290259778324626777031825117856892088042230795929001367178511805341569693481725299606243902898199630831388295435040966094510309155192698558474982193357829405055200704087348122950981486843440564503629702328188684911017820076935393353779889767811560376767327538409252154641775031513448508560918122981294529177821208571296922298144578527523273790307453710643055344754149470588890995334838254098879261631691052736265272588679453635816226839730732124717823835823145391727660863236694143438503914920928557729026858797926594052416688662078316814999298059090429077446106071912262136483754558268019741676698003895745767618309425425354750023735739436603064224676933375970781357889455817454373639074425684603482653526745266645906380243916374923886267453921261861815567192689184795778597793297886750409583194501197503282118713996322812350114701615056206162007923035425603245545209982231624216931729911795734644285415780947237655338012972205110371289685127046796958592662933681832380145384576000300079565029257743019800011579381565483772443984977154828447423096984483418969356341945684956189358582543117648143222837524339180309965086897340165472319042244540141364090192958032864998555665037841465641503644518693157276276527671480640422192224998076042108101269554662472985342266663633563733738747547043403228785927688903937165428445237969845786508467343636817785985003694224271336330958381340767737359992930519626998027370894256644139761664688638349032027572950862858371510579983411608709900113136605360310224551131898548372060659293355625515350768931401854014721812888254881195591870750031961613781581765438911978740851467539006016924834919797298410232276287159780335520285628719687100715224885915117728936778317764962488059880295361420955291771661366773890573576861576111618832842371018780526338343331535250815722338884240252494633447969716826798457546687028503134995775668920344554140179040019905450599750814715454655907682694687188871179714736965371595665916427667551452466288969560908612660725033632584925313439421188234522585979713719528526888538560383395398388586123426418915426831066575775651578417870893955232303852341783317067846235249087405135479592282494484808451797027312907187118396938079772502933190645536599978813706512867033819952509724350504464046842900501944571011065660743035591039192195381449164711490458412167823882699178108791242874110229288382608313843314665634134853132246446042603851240704975339414171023411841620066276794046876633760597567596090171520730196638190216034179770425863410618400773181099825885212293607515497257189982696198344029834764931488375966620536692031463583124266914217811433528683012279076300042793579735820489025324357267529168983434769055774492576233720243837873832568906272202400280875929909810097016876333251542517211096094609958864916263412025432440566278866472458753156440112973097548197354724289804991673929990161547503112127265535628816287942726525696348275763055743675852293062959495247589877996836117897275029548568424748345447008257110205087563526962747082270532519196751647778505351584425774458243712809187215149051478771036232330427355332517099433801659114900845565238094369203095568349040685616382853653519902755812542888370952254817963816505615563498009470680033914859062227252918785127574842654138949514064270285743504403809461064200615701202504178918753637249265701867536867334939191811477572900544835021095091294477230760258753886280550373049924308385775362304800055685326936137937032572538747799113729720576961500433095492050733914471663025913488600232612155537680372328855486234168166034777461980644835903885738050860777374673054230949916025920480762500223158012933916685297959329983776903859701362684903826379808548534447117201648110863667061072305088314823228612897705085078371595100253589390221034631684278548224804712756352716652721200066753046438105557793761559050201125478934206260836704390184510428634911339118233485615692728985647420071158493029053341923922560966293101759294915113304069682385808672320298691512250323829949016890764145076870298576890809160566041589989411345099627906192540122456760238047945864919181323807689088787049442802347687827252670479876243030972258020710374235454330301006045317700848560333141327139349575679907500978290657335260424983436430174506176241756386790827357188666560821276274424489673155172402940997952754485893316961767871126091572891367101878699858948561218224690572710391089037317869328491531637222538252841747154338040310810055484287077559805471994796805093678641974979142656807542035625980781571529215448750294951018411522629702696138442078398618015631455441851134888898095533124280408445081254108678632381862145977055993965997566811463983439533986492426091639668404923116365258512738917130390032091517290055343855950431687939170454076265923878958336090017444291187574597304981695271753435329531085563915632269144000441806268135401972466270752251526563124890457679259622067305737083448034597116588550497993042068070495345625472198559950276589181532896502583752360038822141440507957600924965976919589518491218406820163282183004722718378622820725645700543590747862868874225080953994467710620247571184083138877308013544542527308553813519841931010948926731459092706888861628747248854153083119872304840628865536484665303782185491377535152320516478899228028170007669772858324856184930080889856119435749449196325238009766612241022779188776819546053502783375533445400424376543663537073939100521839583107118148038355700922742785625106351150779073181662089677311813550925002617972648811478613149800084292912376158737160422070109838713303878577083604835861881270131980058132724402028543234886476479326308535575056560749878443786126447618070788794507161632105835927431110391490010979330127654187989948579261852249148872133371161480878971529047954861016630819179502716273804135989259964026260070281758674954048176606827552577032106659016011993356342137457691436028258617988140518173354944697942127207867550088870627171178989271885447090101019238098396805580581572279413597673359836396572436498962246087635218489423748305376905322695456212912507261986928529653370386477482242175785232008608982535995478459920599529833799515550441605120343674751791086059494981886496520952301431211630075411977631994830369769401085801705208054358331943206478630440656734568692620269551899147570029223434097136812412905653588298868360151247102757128855374987242036907878416913327166675976590834314067118980216808868678109426701327766704067947913920663913992930650005768581907981854384607251436878662009639063778785112365954116730499430000743434284684820968740808706229565615287507448607656392466996017204858749066233904193711391221814527560656847820870565968337892366564324927440005367721564449310490337927809400185154089191756956742755557979142577991824371858204420083715607393957561449424279733042822476380511651960595940802373041245446405304064306331601584060388187608555128325033575475956187839019890424814570489351926097251173167359002601368074761148048050127671220403526829898510739610387162549015234257823410950955161905714750497672374516278013705913123665774635653328616807484377494684861988469596928893803857855055382519322551788090657773218392845574431149303778445143246986808048374525642514607942994702618797540878787215802692805237582208185865835068674491058951952294091844776874579697255540939654460466166943590251684590154320022491399846117426771554112354857490159304786941470360011953408894885071615475360690912561542156036346186061612603707212149640340667954541670891820183009265578620839432485894124011469185216633655525719671899504359501305721196795424488977967473881101216956932251585059766966709814041972187903455238593165785772830030673308147640839657524852520752635736860563706398659395990367232469867491718881639995371506299281238847304345679430696030656547403098983275867092672598308635586286426137992022262089464929280149884078995259238334988773313442149898635405419850112783405021512143500094352109187947363584713691303828812662735728385363806297379182962910663085566737564018680423914114463752779776468582525952286964868236766176906580414524718885326103940523031376303249299476136154452158591935558908883346125719713642669522359402201280666592431584424774693744227563474099882886237282771050107256175053889925408189080319718885758337445852289594395339898658514777567416781818249379484335282879401209964678960614925606224662691632556165105342457721548838976813092401421554740392617186223181945999085890871320987019546456268922056812979620186669435012628163739027257029803152219490417011339474433278908000278299423696462408465648892452823755652584323216127405794033656059741345836409355813125121983816012718108158015476561151227643031445756712449211370675805674277567364535427953343507957667637965842331379890216160412381957652567023588247421063925491590796675758993217331792203700038026192737950311243432294789829353614917133807481022443684224820674782939334443118125006708615290411195940482895066399964529111451190025432757671632881715584976989671948033994002635436357358556417443941291942041325275293984135660008345607548432705274336389697694163746382560012077571822837614934924921362612861266325444556355762466719670982550984038832272332652279498118343533089950651016863018173768922706509441480386491396669210201390468201788157204715399093846598965231945769224646264857319951876614201673069540868654457145120192852881173873663267084466626410257612043087853270385511357606985360658136151659490941226750040991937948591058804228026633363814084202034924849567806379745915048829478484652410505654643132988707288478855249385940070624080456341419306726400207048652451009203653688785353370175727869450159752123133659461493613517862418423356860505893785974670450876921708744574744054441421836502062063572470213090183978923119293841502908717119563335500760546036922762322411788767960775576581480133445126801434710866074438812793014352621434858735739674885787686764439375504416552243620802651094581412753554346011449337505483501611808603413178469229763162724856204386035069385085693614517539616322781153342635341490448897481417581398460927552120018863081428085730541552437632409959152848900467048842777523806586745822941179192180542940936736982412919817435347209197733770711304433646144063153469025908052667091216044259540718334424022916175353422104724538155686458206582564463462128781356990918934891431192544319510659322312041261685111706463051359055544330144864952705699000049833524792300795890615822030709386445901983599015276043743375024165429362439458437464994454278345228134365326972403046318083632804984254640668067653180919190945886429340395811958953870063161724665164974621644509722352272145025302724028479212178030376132841108375648429181759379835903036078723677184195294206990980400194254657487068668324940013830257588662862779361477418179300132590683568376618857983191784697718538064035925153887743741564591690525257005185152300126397592934907556682964964360119539625102515310055074511441378578266036326809581807438586774177588519860408863521335386425669396474219664723328845836424383783616028246050767702514313820625978573590551786873798004168076866177768478926127087175573153707272122953855488509388548054886137400924366419801034338433465077210758551476700932927569520081732917404423160433883966269578310488421348023238826721920304867015788370146120460301201726238652190673611226050257533604851031667193729427234823436130336589795032715498407671846600900342085405231034352537505020579932584292423660053474700153676401961713404099816237143486584997073699569004914408983178531008282173454235283464641145586344558894734049599297126662478288396462301586391010051975019159120576671887097080723429483946835307380440778583762070240750239742498321646010415910558813121196505897891762420017996398808156638552084794833689334427828305882464419646266650477366961547466817665578231093504077501741125137713068529045168755558963459760439783620704260267817098160581221364379973911473012233306202734192495744186498307963634782302828566604722832325143631045966978510692660540518310062489332108269781741343604772059255604158825123108054606967963656421437924156492908358032449794714837015767154064863254246943626948506373171364970219864868864986312158399475076493821423881190918424076006682422419098984971729024616836633651781004826601007337076643682755266337938694666688668208874316905463504693435475030687757011601976879824511096336176195961106705948967369379034636857182142564622464245031469460456295782751721999540182009031758756838993292697875494621050862847994741652363621733593058259026726698746224693497073759850568110506565126409603874308993411601669624970550259450813495382498606277375989918649772430800790063347296543356611703634883244157977153256925986968338195669976276802543554321148540526356058286618989151896143575081098486276698600793033259216554303636416706247816617529950886274814707592857407558266666373041615280639108438261987747281803826396197895128445050671930192948787421280115169691428040186861125464541309932249587478652555204891098182773940081488764870512685955395102631889657718324126784606582479183389953894986560066755946643898394341838308801020103468027690665900061565635615047805732447299250826988036263093534184287644638577497565124389038462153841059470584813128483125997311272090223977178036307184574146873884795141797125166233747034640716795855617236075423801878358356910848820564036359778603961107081193707280477350502438825120997856363172745341268048358111053604214752663093032544302238263632716011122659152217037350812668742696323266826406669962868106653573768604912550603130654422493232476675153565418454350250437430887702938212345378696734507354672964476854962883102424224185742154638642358893579309299778812028785752770535885768059536291348188607012909580301719241632090736074320244041437351165595048895537096508979202090697005367914854487881583902835068783880891229902691733951615982431040559517119133640365671929998356827339026191923512866478757705856508267203181614588188268579046718206642215657657156999053589453167454316340825209311986665660421751371703703775503677281854737602371021182674232501314876955015530581681229634488725699035967711170671462100368928348384764463522240385377945115995333284659569652576032254112667022158600616066680258513888577812120774426191606267225644652397811655270574110647871907666347458276910803518614536675622708178471712046897727699713757822126698308771652180301096907001409361165829794988535743134767865297694986229687633770602911460505935595756568594055960414577502022098586433399955575591143845808314652883774251527931550376877690286515877377437001019410689719135986622012105693181087406401230473402631307195650035309126907831431865767942035652055126142380600825808541094186859155126787032619357573598067110736235101632706032399210539885832046558982503099015093159732215796792456319171191387849866490332171682706153766992215067730532549381694277546116634478184271729372253433490717597828728939259517725824819217278564373346460192150140109830473061618688352810800962680188010229530867264132305543830739640951089188507779152825008783229888813117919050103703418850746954780373778067468273296648051674841668770326378688358154384468585489190969538474807620148206558466372138395055079476709285983873901171820135145334086248661157954575522884724279537024547658188782580675409727324646742286709761868299387469187419477022799265923309908357084987995276371485331983595851148347520782469536188900586543964877418565593625753702835336180656717274576103428591898898202811237982609420435722087514837165768465932841377110096498324132009663948909267786882575214903904373644713248946680709199069917940793897048379533251095237616668854546866903423458893706494211133232789366925449220846840850958726787446500396196459138904680334375077886536537969238679085765234460224373918412266165935547650135700694965211068944535809434936847788124896253395597898159694526765918987906880489549925226955273937953322149670517586785665348035372565435422276166055079091918022113394308103249648531330180784758896662636354608346692845512875376368664502223908133399513405348166837596728962745338813279154831186795828205908279576888998430519734934103445263588236437747583912654810263544558904866383894983700053132386448024707041612628188957303153922497493104690616618823246208533012433646778648493374414856724998993648252836754581471385509873312966618720113399858931803663959230965675417444339534654978526947238936335094057406201567536409755775836806943883677514514838185183599609675568470024368966622126373654135299900694042483607621046449861413296864445730333813889536916122174035595795851314951622124722261465672176328616784091917614556109036036266626894851838224100785222278927380998883912017413259804691364709973093371978138456398418230260608571486701640033952957811739401642205431295922795278911905072438742706136788047498181683439273855581935448018404626634670068248639645632390010160726235748276222281516268949025417249320269272399466407953422632531833275807995151762003899552444230000549148559558588030022597059305518515247364464916012076842954113804269552232347878744213836036285046957194163653112151058815867062305240512665366428184300085800863155020944802566212860270906368712565182034263257104042670174146769157147593234929769870219800283094472581699066278805021200037576276586835331365061232802568205955090795616617368627250451903676627451976044825680721529766842791864463374989879796885737190759722635630239899567500436280086698700739448589283907184144457361074179308366662020853010607744551924402638366161674656246936844238450516084813295548585677871641165179766641992238978043230880102208319633901599449502898874011018411573204960823282359730734947865512174078913360954426933675321183025092981862882056010119119904836592436465596563039932462254533307671254094007053014891942662593720627604435198620632112586333913689552133066871028997073835763692900165522060733412789356496985988355368941653206394808839512335916568091066869753166110354077334823147025523405457457517247245767692000135896708570831099890090539156813137834794087464898734015815489234602777088244188275766787064079907889757871211543346497994009689739806666306590726050672130861851249579050594777160929817581638113388683247067503368321469376912874448656115495393010503001033359293302489253469490735018730500502860521321742486908250046811176436454020871410055738392333054694923650320619736311160465638993707357770183246782350507141536141101256559572884425733377783430511285160880017128940214167992686329747070825424267578320394196979201919892831075065156141073245932433796129466327163464871924672863962034119901567334780898183625994648024918198925410805673918711250049753900107090158033926963819269701850169197280092077118812853603495117702539422859235147887284954674433499909665362565592108513541320245269980648264006558007470911312817774611195434477469376464835614323672819222297828459317803296348987071315920586723930448639526300451805338628139050843415084874562553458172963134544623743770073952987260175678527252648582087245135535999245366170923849531535847086257503033296748621640937501956749331251676557644235711948514056547599569718951390661578736528165841880172553057590817068278165637955572872613110615820942309375762541515828111746553286693144031375562743093268989523787229005583810957373864451907380023914385848817451508011941269748183693655420220528250534332821174728638325369353146413781987149553027052536423983290131359670251545994920081972344621020930410855063171466761817987606783978957097942716683818111262584500311459062762218778064745627340081109619480267596250939407550894228588458374467736444366322503104728750003515075284446418906500758231882171978989123544053286821897202266186590534390447984803473507256194973290512065159152619362311384472072525605340488073539398317777203847131362234380005652472459717333632602920873048578475435033798305729706466331018385569098079080706538618432515716350628928193654267941975628202889128954194074326067139529028609073424992499330530289513221144979199207186587443878562584201199193733305824542241454190334478807157909677274228686449247420161989100250562583190197316396579223060163079082190402843586563975991587047548576359802093675435708379605376965190544974081486220735580386843415505014080780771307513569779093458985961238734927653201942554729418394936201603119138886957819035891691204940723675650244376892843429169181917848181963252679711907768889115728991864182155188107208134975386917815688582116674311946959010827054924056618116828612908802972683149843429812817935021685566479393771560566713482927399500158683662103009365725777416246053621775673766855333783510027863356719229213812469548665376547846730324107128914992424084345307026324202069228930220517127022442837722781586333049266964553575227787970293730414710079998029329377851423364314315340987053478869110602160589619193472530085999482021605224947717054819583293190100569843695300878444974040061802321635592366993669280231360723946926060774954449779793729569663888541729358067520567374339844500026289492989103673789660435306754978014763388297206157188760952982031797260450155208545831475997299169051689361564542770109897596600895757296168079633648048908007677082782312399793543474371966985158422036814771787079376347312232719993811726590693561338033324269059796135758009995886831929712186846401430854427294355586619480519092483177836316704888438211488232092034648229244173512548517104519588978653573593573878103419039771398904481290899011578879750490045248840415974498722134783838961815376832441046682835390768651795965571966854526465643431307498370672764094304617315470147369962658960730116978623737209547738407343031892360323037907653797690295527547952820275934786126757725847094523093354232870845433871783078894137020054427589766076829164045082450298219333008058232747640037901170261623161092040481810656852019264651384275200992692035248354614987988792039746323119365412825698183045943034422705708256031083091364863400805290861137462731435033560532986556389820621017691366334566629829942798042658962873798921862560936743199230568323066535790795584355886832868332289194309288271818881933556639069359557279623427366002299069149513250755965765674000106031823570064850510695613786563330501802677607905859307696648803983817740522732427974618912354329520832010326213724735089863548964408571608243528905329295482535361883075492047179629474019110159282610788239146832430548282244294955383242516243112650684621975479660807265555956697956406736461465366382913437180919590209933048785919073280502697042701264779681309381284832466795971321807464509838933562970892689325975621203336798577600952930645685092857338626398208956510146958751066104187303930549868752031699801754190742582136683780472023186418601965878677014488349246881171665697053634718674116036710057116733532499187451221379342346565579305588968786861218191077862046209617371627185072073986583045246927932086823348199906328004922468429088272070663633769018325465265328121115792125878696244143315908774705405335538656416969683280863853415733505721157930933443190493802525565015623266962468337160451670059128729029818239061897990378749230860543250843015226354809898825395206543154856779909533494423256874635021062046385891182301610918589671862548997155924446444774967572485014367502288921801786325466089700282784705311213579222507276827366205176712868926939099227194953193135226188113113478786874239662045844751310888682638516740626995220712899719397187399153280600186244987953102665379170718797845359718978098336282183342782566358455221943251705131840577212090848868493054763028564893631976089996960535183976917367680946698026194279883058174531015099482393008833454120280722744771309272837551956994372861751780744468121000507444722612886699964529594229662894102253175784707100143389726487547711515283223500789961349139191868814232287567053815325049441324900248989738777297415421575010355333033410184644012940097079229350030186279217138234513567059144366966624861479319564117174940031888754492897573624938728647891975244784002656869276738630627429503656208490984261885903793947439498967996313294223318940669787051912977066737654676640915138906863222537055728031614230040521111670705930969456525570649924769202419054449516960003940566518515478758464619709646285419098726048823348947097057984010582072221240942489221855812916899141399958662746898052530356936846033888365174510632739168320101849353483146511670792738081969242114209651192658770157556272907163233173626958854721595693190256724058189499647760599896368048577813244896572453721643680447299891530699271093756705415909652122731928568964685485918823970853119527138949481792947876182520206169827458719861101414507428949986490361893325780554692721132566884915516505567686350648230357946102561865772884622211804352161681980226186627967753270772820504736377346189641834071906081155822046537821864031801752625082119574295542046942492781700550346647586469145698708834633007823993180349803816335485559125615498332970850954595988033992426499765614006646643826643555255992886886972471108929247438760689633315886678495250071688284351740867778019495799724746722804996438471175049429371548546817404848132700039357059095021887428421012299049770483252518707327666938335793989027254513555979709912845246063742146809732637401463291314447211468641064635648878835522884064520585514944902807320258781844331235841013962585750356680553546181116193522460937220247560326007953523871992795196882189006665802923043178955539837181567807578048167023954141630778593234267186220355036191864936483281869723636550175802488559181118123759350727444544411227379369715907272107882022503960936539150989220088859222604868139305356854216996801170994067392947725362547233001407542936887857931243079406628906192004178143987473451260659552959746536240363751557662605572999691229349312943887544776092800962027732598245026309680076870415378062542723321415955137192547305667181629236210337390739646568590422224683355262081677462939322674695151157188197405208695915053830419340964251215775652822036012153915293382143255894121234035621307528431065180466256048722557970433157444858036212033246294168490833909344271831484672269483036253704973597471017842841010382421314339218990382732903265201560526393277403326848266946744273030164209014483109079576066018409695066268309223851569854130774504487852860457630611415156999332279412117463322212126180490723813651727015221539718202600255442347513402459173009259605700147926122833838463392582681068185513404236069430352716941528969272103331084375260545876243477865393180277107817254130919182074873286483761295635192995592493737590914256534944985862032206424316064232098103965990263916519228431840427087772702548148438084988507335192980653844494178640245240072961743901167602105621346605453139207181147648225368176609145764827881334642705658797447083022782436254612601023586894161557065318719920319341112189150516419484811537556805863622189220044591669590976626128153281188191074373189136698265885720061976575611192156838695941208572759628506879216167819838248660047011879027007948639983054251215969861190580269757180438327735644190961654004309514886732417147657486249825532760276717864764422170396654903037753202503144308981453134176238191050393868045576237673304563509900766271846085326649251017214150584931166521697990949000389190793199497325908321757216993190579994137429802632483473059115459887751222749226806822978171496441628635159942716733655693701809159074837776040731430142299303625258699985349023750070892306385440198886889040668106965690307870420251464770276583788988964132001114300576463157052151016236841595624345074413038781240677175129024944989559980007118880559897614470517416542240116094592731181844766364489075621977672651337416083319482100509817784083840420152214939085969917091271844780268853927874811205752098386866156646597825201880004567435773203428461496147086710183993466900440503019304852819249638078727131439343273646989431847129656903576484546740485596039537607371947930384108764538316569352693262304683562038252624159905923881826639171769082021960615536873508458330206685907326570666593183961076425990062660761360965325007483384103059467974792274739044305674264734819158111412513507376726875900536391954903298507891189502926643478051070061249991724095890883735842533362282747199170439889462956894330068506530288455759776956392945423367371151884168216987940443838744489992658067606604171963831947929332766670773089002398162312643768389969053543882714720545432191615089810070629630127342855400231430898438836119439943756980434186983651856456441045213802817802527645838053900932829498629843803735497941609067354748669465378920875048935371005011478665041075463032705985503811374199727431538834889112805471607567256576047601721286349788548942450546205756721149867081113309908252955510505471042273884617164585868658728633210723180751675341198280907364673646964212363150507151151974680659208416458161608576070032125864140186742378497936332678009189872942358589151600547390983919735960888996712365590645471408956782222016769921044896918996767653202146843570009615261838699510507459097338954054307721140384742799708837150399931336984101509839906730136554428072469194305711842377416948389271723180825858797464321366641631933956560358132308531366472771991172934250139701503297580955127527279549280916976524989115116360035459090697332154143982879973076856678629353973744377577729335159657066851743724903699775197730377241734757487873184402863898519876052354851657912869058313914543896655910209570708660381232517739929830731392975186419698541979342253935542159953930270188654335542304723422690637586393286231302909232129773804962659205441711109507773463746307037054499721829256143205127796291929783272585286660890403873494699666582285519981867773639239009041709407492224701187814765705247978603575077730182311039840377035718837327008684205877001680594726099199090478690318230288357089408167319923280799473406621427403465672730424284801161595160581842374468991806983707987028201930174340731090146686219339941089457002497768931265173393694599090349658816921108696121664040809496001987512864660040406575745385774572177092457547367807364205621486948553803117119633543315727803550572923541093942020032335950481425262772781626410861732750744907469464446079556812630270904244780760031243086042715707617823400557354428459503099076783420513439500244492861703964604619448931524188349112695358220433345659313778545227014667768253472360579826022922927506263541653478417928504806002981035020971385587443402776988189835220517478341258680415819122468595928325237131336938795507090771811913609473759872283162038832265218672858637614519517724251271786493113763307436654041814089559363554048214658531995704847128850313394726614796073378284190692596301583467476771465321152765277013865383115014554724305105760526233208178913602399326798944014954105608065151486665562443850611394675775093215753036352229090008124224936265382672111183765357130718746381012163841692346377817147131344951287605287230497067142451171387356613106584789321741065832829281904000100875338621533051355782631699834163854593016686636365160216882813612382603183406955504280030836762745324317835061984328422324480942345689135182473130170769755374545974383628136413534793187755163007270905321751727146154837254165124909319730513902912179859389800397892023331178505691680460192994486397293300335728844163835871404179553114163051452620217394975619142818399960664015271955883344997730344809236318072595507918343659540499863682645647700113285669839240666775851864510073025482602113198166955102591343266619918845015868541459236063688816199841426316010068584725785378176537645645967948208458850139586866403021969762426692582631464199099261635746270018532080971351227463648977644606818515890720411318286584468073424429912682617449016278043186036506731021799494149653441815315726659977558622809884525224363741031529032826954173998179479404177182141318119588388513769209340982787831872609796367384644252437953143715983342084612911749285885341239059978668153686412255172268731638352161733271021055726822630869239439960377311829185975278791524789564541148725638945558838059207380746545054304180589949683233315089929221436000978089509719533726973394413616321209214799740393134362467994811850834956170782729001053512927628081540902108328833557047101123525703761416086725434477414755516028587616798911020937871953126185475645027896107498846220097491223310206224623797061877938442350066093028023373693855597077537665048919610189349700083836314916111046133750573146995088068757757636910483804018475122856803723564291312525053466497715112342355575919870140918599169075269318499049360820624921784386360409691229624687447467225282005115664255722042766841814256568014001929290592771846707802765723073988192362013053356271616289475256429673003762077759508350753656396335875212206815430115035421974875804938937599044817214290001741904526781591386509145318339842380269794737302163708329025725068320682231427684319654899337179974834056594051890741515651608878848245862357772828199886481797857311806988534669757616518618038297812846793910753139430808537890907995334316545352241737836728771145858640490854341085858729697503039542901724189697431121889189290343920810725627951562094227398640447933767151620479152643949722704182127923276191351690584012516692603883690097431136944611111804424280228405474573494413459187864620721567992064548940443530993135117235563091104090402602509967174875785246485772081892944683350762849060372457410839600701703275253162706060770158602661617379278222650768209692733977110941339986881799935233247889539692439825231607830958411449550348764760242265149672734584558816461874795913597513651575695243117828516463865675235212363242266058151029533771174112446537527419343810977134399859551303987887843180826519491353784987711685934288617687437106439231756963862315963515555645555717273721124916572810511743937315970041834962410352675793563734786474966197858895258613594832644049090349474945379043334676931217752019886553300065645327708941770095666432445773028979137358900422112115491825983391579787506534442249373089114002407428090121067157198654546797861181131181914290130664097090303943884999876927262413099575157721403147007047183583201871100956306455087311169046584139180329790055931635413678172474600692782202864082340465438193628238379767299715391307720115189824246884906631223600794413932848312741355657109512739438206191651479682680468550332083876676435012320847563636308926944954896686691988516422059547658468100689981874714407904188211092532290450872566576599040858717187093940265208869647199857390107288539928462611779362886419428870332160542176813518958853272494311108107296191636442309109832241313653042725561686154715735243127116389237472593096863465854866659765473073907288501109788657920958588245607533467908303227240351040361521866388025320552204451492297385090404938250289017530176229281374586223793889319757950875602130083820840759082906722232884718439922861885823433186609693468310855319219692934593722594879598533099163075812358809827066705715196702062203074234439059369344319763818714193120341699899832024356879116708965757015908402844665094344207583932255884651684635246946018783937400368382681141048120756289041462929816399929765853190853368808199569554475763452114191141646170094069838366314097617003401202581672139832264571404351802970814415885961318962198111608764350843704039852605405625925356389946489646185913320566620045965835230677682658424343315817115405229399476961245663438406056348075038241664755598970368236820585381674317223532725192126491996035671165820828351978526764073566618250628881161559464431991465550232984927196863575322450323267712004187892408318587770476581183169503209647273602746346463781798456351767491041038763155874868148387625311584172185458920388462194407085577208095765548254401349411968812702320437369741734224994146755854057505248971442487723967774164823307965169514716514959158209382027365105500328655086538412973472611761048451445839291107796127880819684164540730418639127029559170504426350379104739680418179522682883452397009229642442871826470464889116767436627410628848610538169870685405911676738035667841947037810930355972276083089067934990859958249245178848871808708526395330149676780605813802170714044804338654872305467858888771253710372690653614314926460874279908687790327797903039976591808288847947669994664377911600366761181128614663100880377607551726401756617792570589694773522777989288007938315010972668490637566287002992281609084052378110156198226083303473925388216057390320036482501023613552008522603659447115443577694463782710674131927179214884084435007180106831180961807834075394677723752878868511059760453840108282136892954743570649069391094312028572789054779382454590418754622295692362800461306754770204027574151252648201639930527735362263825784369142311879195482595222273147757137004449482566998357829621217309743005137017492121458915934122031824363590380105585573264851813877385997859897041740223297092999412659701307777430483849846341579021089674272794897826640992462806769175317446354923237681578283601821494765699949337993425875884451042567116487958274198951977600834360338299983608205665445750295660362801765891454858044431493033408104893101478118290011229036291341498203646169652761789519987609520726815146379934156052506517414649736010681259507144727461316339200846785344674605849270494663779362577893119017999688482045514912216867013760175947373548814121956060170025571106830360110068048738102930591766927035716650798450035339287496918055189336648363789826995461778189738923724587448326661507153811421016016736216739784617420535107498399309425688353745432107394462997180351454473223932139099645214270668970449461296147413960966786247279414606402737165694522687904126717538057373840382912929654981068493467215874622998625960066619883898225686077196688717882541157547387078849807558129949303696582775666329833727866564657473316444932469151436002942078357289683187810174341385901142081594362928870816828922964029706449486837524709371046097649294627739783070289239337149034376998934559307697303027551243906926533675972642953239286958376859496931979882762885217343526970778349022290585033876901577279663753141077109228087919277741848875240754227522001094034306924572144979359017307357911733258979146008494202567171684414709323805399935921712454333248474779739879411237057190465432317200748141387227124297149105230795486207517565090006944185092870431767984440627576846676286788892988225863922618795352170558123315434414141572769805975377087571039362041706992018799978965146598715189518753712227197723612673556506635279374495886406691877001048552839982864969330744313616686976657451956418767350780693683630418890852285579948571332274415439121156506194827869438992135140379826063386409434905061693154721581860833960574870576238425363200807493662183799471919702802690320893948357460484778784238292681736526730873108961140733631541701481514474333658306410254751633582285764082759741333376834569132507419891202421912933750547620954266602203689084809330091610242430920909968054081143855666554294701406632673456953159838325325955508498636964152610890471162251222444261211019935944671762897202652377538491473348757845075537699281627239998617751853743322450427854305259160740519919952035426781836446819381027333550310818681751521624152500150683337728340191140504174559255036109812784126994899726292197470820888132618785531301251703767626530352272340185243258639540448913237425943732060219928504792592181155750787476054005255320837494091901004404694016793287788058077735682195310501897401605977745825086391647985616784635381097317892417352994157671816533667394909717876885059921354252230763819484840516088546489496955106383857489244129580858643506961883113332742127666242339624263299165313216546327340596814818572440236771100210473720610391841554934941457655178859065811033551423960827721944554027900513620063097102783288954722440279231705192737207020961677502904101172677117082248937230156504898720474468753645074185394243348408780389730874140826062386218994647816823969984495407891965297783566105374446346218618291503819330352651562943248009863627182082935829348615567447914357388393285551814152767843729850417223093421382160220916768832474866847121158746198620497200563689302023514628004415592614531850843319546561803609526732520928124167719125769821745215929315994229242488225725668662027559708667445866840678749560569427038307240144575287159599756255747900768569453415676976152428924316411808631222275333028312532146579065029918425231782631083624190224035107464078343824174148401331097742163814366203846629688434887042851429417967492400367631937634640594062634036063122848757583263018251084004503641512528476575083859641058549256195174526109967106452255927720435831721069605761469482781422857236363543870968922013168363389172356542362594039856070227466532146916121657362218984613424873755236622838123563165785166577415523794185109151143155459750501711841801863672837985232096641988765843389935296589952285913690633593572571974251119212777106749223590188645400495004802280572647055715379573688907396249210247186877167218569948725858755352109344007237978982316536371648907080803355213058409489977291239718196881511664568480820641190735260201505785463005116002058351414389978119872776829363446250419761360514723674543052558458440108677921531403891575499509046953553564471434529149333119934071134161592033005578512994563969371754517087538482548448841146061436761749421001754874732537335699481162775014311398209649828165911364660755538632020450881218702919381958641786814968643680997300501218953225376223693896788338682978267540576585711793604024701582370166143046663318771302716559929115959125888266496898203083499045620695298602233902345422941982364833846900530999204824051336215676254874781100388894806099993127378580821354931703069943274543628382871582996157775068322428261971258095900995222841143736943777426825022438988488138908314848589164334518137937142177992035665785262367800071163039718602622217348607966859838226550764652081992154134714507653335585781996740885019155120652389176640075143916614294659447201693521008480139604663079994116296001979581854051189167889125864898552555201594108225282769650968771357555599906932632268881332785576204950819621049314604290807211275345088800881112475464041344003008836171844753075128821610379564007648422447662954060456936756163192473635244300946127803479048267417090787029587323555560792229018771072824742404836750036386843824222884325364404623798876856316955378962325829745736043833966620809479772958391296951386839707924053526086248746946050000971977878774104044941795861317013762921584514727090128097650642925012034456436411207799435571783689239395805618941011439722817983550727057336851749852076971332198753989874481330316214621932974594369846320242220727381186569768209606530619964064782658202490813689957451498939558563910010424607789055704896219438353979839032945618602467951359870074291055671087135593208052634391855800763814731335207522590303693829821059880894540677184038498626493409325781493180295775686364139325053402155699311170639322831979695779440547713190896640153789520316527249676933272463465347663780301504943215831404646459619808575352556184992643904537481119978831689224964265354940322631939179158567168672286478055629815923488916445369267291985791276587300620544794349226281842822656630061858788623208225906465143624987673161457245485840144998289882316175793953420951159825054501107084386035624837352581467742515630805929200019298570823338998225195185342339023206999871630477778320543642271533783692284716197234870226177079377110506524701084819198521615109036858263445874965118266517922855002265524352521436037783546518750529827985725406913241800500145816225264043524491330831338988444585170860748202428693659761024521535906974586717026820247616684876801783612382072443022518838159794426780808873506384356004831249912921713567664594473493630233202740927971856379323852194516881247581759363561455256271369021339552602284826165792587823645830606016736129545170078051382958649631047057253585125170787468018988465650176340880385337109859425755350302728180133497025066741504470004318314124470793847229958004885120798631041276405105177745820650789777280811210703834949052717014588490512079636004556980389257887990532757301031003088576003931078179833446401546190954094312679182418511735787534287386654004810620087158259758682718324393209356939602050964773925108052050859769833715617335165421117132530113181151486734548679588880481636336831162426209437140177080824057235155834760983563568210965775837637709170123958184901476751354211908146371039759102713660265828660830694300062047024501885147441236408603428686696916775811836251182348409820007254676158863629404143995295832443116230646308266265958260567659694767195943426340130471238932164425091035253766105183011984157787137287044071204524375813440304455067422415222264894060040495589439285128771774120106779584023800116592959798693166709911123968278237469254367981467502651311341000816413984857433877863517965432531038758167545212316132603702054743101580309357482500540412349196604287489337771035516082848455206435216341700043253540053299809666667993979305730645958338956406008324749064765513155700988873618981163220726659156938879872277110025431898639158216905542118756878102169284309961471958536814834779892510483671071338532538537004973019535993435520997065660119378051152901627189211275661793539071477745442839985727889384180584841512771499565669965977769499322887291934568309708748305965472921883417879503946829188618804072684446265873008181701668311593981975266719698559048021485768103994888670397521152881658128603124315565164568714302579628924965857046466784337176245831685997391819708998323145865142404429568237048652856494988612347111412408154746724931635007941394145362924596690522826131627854258204042372419473640103385792547402517416649257378260239409359580755084536130304709063656437185701944361006008454877835737073339157795682363991521960388301331697499657752702550951188163402525689532023994433814048097705703070954099602197935463949748693175329515849458907807652041518904712623320932562847311061279557591054661922909557992962929908190261873315634649505008319566711023282423502969403315799769959421077595295893815793789279202090544299981018969355202927622611111101729866369195963181063432752403178499294928263582495201457458721689519266464127189907064180568891397724268487729442710968081339951300556763911593106925840865298106489531411179542578749758551352025934315459647012293788523178319948925178284814225377812320173163333582088838685443772196877134286920757454872532070606748622009875760494011695555787376462720117789201680152527261753755131260739299345502901517828597001248092087662357211560922717908115402325680761316098580420542948505522111298721649787915588637460433713579523297111798358263895050000572800218289382650120129534094982401068537721334663905673531359863351008112806377444854312182492928414058814071186605622955306464982164380911272271739415816745562552108649392799552253732150205021493141152172739322264485697272800738591472928353791678415154015545769509299672952828208520994741490679995745234188895900548889433115600524631246449317260689850707753668172308591592621522011218244301889409217997633641468098734807217765292145406122995461229768297394074153809490066136738103286584432611615985074474911200120688597059131388911255279354929380725981357803835404995259626525397922500712031664845554363344931699695538089435831787397093035651378284220705328393550886158079028699669087527335754295659177716238800946558924277940207439709499496056920555629300536491315470810412574708199315108811036797849011758265167293348352887791914308570365625065688470059484614287016220620600040976468615430225025275047380485709029451091828803475759395096791833634483736208712913712125806327071009088184096355390889309034739533324862270303539642355478291849773320615258080965671810863166161295261620417134503190360739580483819572694789097147528747491860114512501032451065838994470268882499991117507887318030092319986403135814689342055529333556567580369434381052671741979078806469658574346611041338584641871455294211768367899577913748473632360525003343505518478696176105562726511459243668953545043186350483983453379852717074790604614700717542047991187443124816037467409783605698151557590447309698222850102520434182206421097063261494513742254259275419159718454543506010045521404544270048282812731255295347322587769154888209581943945054203456000426390686449605899915353481959040693748359249127968947501435994931110588973443531778960379878809771042784394479207624921915806365128587816406904176430313285494191373535251650027790087537410590867723810664657611161152977361783360448319926750595434155206214911449340485858409547106517921989338030564758664594332830190960469207710527276281107013129916661488254260898154364675317852996864030326401855088081745077965312849132287684117595675509728053878223075594834207339807329801921264776585035433853525586522220193953424591103719218022438572915591085862604170056033450384462556265210071604884293458119520822818949502126105785524073219260996660562046759374714316537524309506147706432262032291003777144911060668294814913031530488831020428616618433328204427866198070009544769847975042682701205905896091862145838458859955129954598030323028519594387542580520366913640414279894760613952570864255859023532790046969135703533397897333356256923986055287133998887419356738934898586410001175990040897065072330693167974366812841952726989152214459049679732081606438633120744990544003522751163745595823079506407835464823844647610264712291188347837014683561357940641729691817879824144752282201110353687350528084836026445994154938550330536771870359579695721942173788391767281685808041871212355886441461218747392560224839154603302645271810810503537662630577970159623483680136197711433732482958253167114135979731075045266415003879115958062860178992729580638585450255703327908580435308247014668430791634280704148140540055670190741741998966359629003055278136022490134557251354940228986468904496507472741689187541515198024351390456573321255893417615132931988765458713828134748082756081559750621623558259080170199699504160317728192672660537435165163570622366078117272126846825004884800558603545868594797586540455042739904113364887678185124116352412182774980162700898297368131378857509473930843698830000617368093020315811178493241354782796193578537049719875692304222446573875818164318053207576184635938246740735775414858076737676741585758090912263167357205881975516711929948631474759637986365573718928826616303392146234162619377953291569143632855381677814048601900083007889236115738696895410755821824864654898029807678090242498706543777771226875814547342316579825848628530521330012374533341535649429376777314406387505329245756062256953100279960082009066801279458459596414243815025469344879942830471295728184377635081940419209244091957702332359238291088715459074124398643267360900773304621501423092811460710551429357098858395366778452520601297575917477389020067931479207413796472172389949803170303817724102275719219940878350906979802248873627850866928623654920500009422974946062202700763891256298554078465205969614729770028202005719665257088798471635235120839509782170332057141968709019657704620130225322998506322418050782396685220055326077094662973744522745369698935201715401770966328747704198129302081682808934545339437623073591659492197259684306094720538288162391078672251102013126342131428418353878009074521751765246638741472935781809014117166991783797007547195760628249473164480882418446170814303849108530611383251045242924058524626965714589762544501311072776615888344709354091550967612452632245639308419854474252736874950096321074754017405523519164050600153141402412477318436266401608986604665439285330743363936416880362369501729710610915316722552871241636811724507938134854128268481901507639393049160711866775181973361184063921260974869749530118288982267012513793576030658243283487056331252665807574424525871390855712401156278192186437646619061539430434939410706606483562961208664132237693761902897419860376690607984288303226994088783319317184929860189061687279429466825788122977510168497346470716730100685265103364676432740447846207803706359656859113684067072830632461055519440933811153168623452296948133236911515078239824833583203864666289022937180325191941592495661506719808755562486303033870854731041069698506503267937343661404355581891341771017340569482516336986098515588990239552949366245897111530194298573224728829846971431731642668268368628722161396615385495654472438462506481446738184136631712525376861194220749400914674880763258491250387607100648261339222948357121601540107147163462859549058243492624049653620300509527503305098120508355769156030093187660265304455744249103622723569587205431359216824112633517482839778515835192054173213932861751223750869179965468801656967113872205196451529109389323017961700363763744562578778393601718816973476667826789517158739638342093042726150400841826003127792369555405107278393501102546548871064588251047022026917102507154612954109172897818176013179440761837633358547862513355630806945830075222514641081345644892841538168411098155798754554181827922737350384749700288548265284741406834797279223140812379345476513461627118985009890070361891985258156027456682275717556725668153662564777856133469179144442217166130556119624045943536948243331719519863360052269922766233926710059628692095239799425984191320717950370321651574235574763927614469684861553310037273514775260970421684415621243038173667125536894059460681832787053286302590484510416792025759245870482972102305840348597060514347994782599918323426535148980849091821237868059627757081437152269742105367822766592988603428728837585890327668938687421021529183182553480492379028702979819496597194662400211618022984261209413708473921234815117274028784733032699845731688466281367309110302528447315647563233352665194842102286454643715386678134784794688858856374238459482651782487855932459840264565932409524325037264023370206710481808268995475052932339271039442846873521246227539887733918597546177657473942086216274707931758439978210037881549642762687147120118595093025901732328829101817995702309127829515582480279363120946160019982922637402952434653566974542036404810009255611975110153632386127745703386623070524320231912148859086215370862782073157088614935266374176856427644756140287819022073018497250717821335334127505872536370661938718615996261946621841690034290856155850158221671215235484892776194000092910406707396552660298640267717767076064947735600564351969665613164138313801961304666257540456115221304242448739049557849675183062531711526229720602597440822545076586304267744389688655764791391145255990509781532979067021279804852026124479961651370643344409962483641359977490057203678735227870753717246991295085596492120670653203977186007527560477530585674487638821385199315702888966802743759949136067313900791970614787453714553623766135528868700193690784075969041041487794508672159741783461232559163208694622272276431226640560785512938667729058571105083486124683108521628962161075256693314362312276373843725000267552412235273033952249741890810235450644523593136667950305333139020342468190622821744924589526655860509244028557803333334798797502498280482804433311663935023584497759471659221346393586588013901244005529092659479851859520437694659560866008827993539724701450598933823311390760800283614782941234830916273893111431928638361746551798887188199401558082713090039906856135393015344646717760244534267394821075657951280258725918840139688750000949527112425440458652707172125187630957721810598299355504597591806015841873774726534467521578154349687815387620385692135746016659374196397740641754814398931842573833941150163555920273340780881399787503266701086599012617532694868959202454751776125831804227136561609252006271142033106686737423383082995425420660194204556462574332187161153891062752689640195985189778791586701660513052226400402640485316328835239973931217837342079382213802081233213302829182612013005840576803528725388264410985528037685914960542576173191912320773836140394422611908499931642645068241228564526441579660231293131034923620551405340403923745078346818611375696313887553487388497303924375963012085608732786373004980292827510822199309561965803009999230230294445897493072081002511308164344215942340267955853453908756525790222028301823251591791321802664703458263289987363642952556377432585274257118195346959384556369258031355356818846959135613403852815875123309745766954121414391381718002641981311513626537881456143846298177356530284438038538551589510210942666276339840949003448919011814885780032344035758247313597570836052222253896092843166061299770856891632279857116919283323110111887746373291061605999848842426029951801145059863029562333471716790985367907092210740813825816506133791412505942451232793013082413777309087494215606832018971814996141857064832747116609845498361527552935770405432412399530129332987232956430987413999423107257447734367382007047404240729627418500808209302324848341163239192367100954891057742824179637228191150340945758797787696276642551615236866382747497211417215122888369114301770397154593933859133426267123310552971628167076639149218883642631401674171742428318268160922094712838749121792928359045656655299708505853650364794243304632070014260344798159841800192959930792553998744097349330626807089919642683518491142763593127430922649790150310253597525748379058957051850639959447933353286746842911590205767628265055911157106460554327168234207167800400784812177451510550646836989948852673378927954227644165035913969515842207641695872090782445955633647049380625072778659338258552081473482769359763680505419890761845624783180931657256698269137027503788708733147940732465646224538168238294093317106764201534446533950859378219748263068918007831389094692991120724186521161593645512502779659770545401858644969450101653084178419917288333745981271291899950091950852420314644092517456338366783947968566684164346764453126440849809194592286254160854923847794288738337268522696654432608020609583762279582455931997475990929539890092984616279697593490731355750838401396541560715916276067205547479267953368775982773407707103711478016912685936450413850710949134496112634145266632737180817030251637871286085810476214095684293856279556615496137654636774338371790080582250643523128478439669095388954445954447814198712194145107166939060179849864585015443212237306760777015164750217082219643576262434051403686175088547736591542168686224377945433374469093066340751354435068806709905176534907251070310363525230091063384676275195834632576998717443763788625119127968972239998215104356446074139482257490259037571036110436820710707597176977731939367431618097884002886708071588390848706805780188443398253165445818324408905402162029907712801137899960577448417152781594800967030440195008987794804984383633187387220934520649686551014889991095417592172868453465572492227505285262228007451875330964459427627724927828145619606524287160632369653490853111675309862307897198224440688493706335373175516277100314082232756180283829824697719264722748198544102061983331289918329977972520129956172226757740135360273324044656704016161202282688208241295607869706177558122450038073018784251265649780489956488971701008773899742641155941934981059035130612739693365950825003973598971714995755679041549656404614675143876923081617655256326413675048777621538074859551067523489563993982069633076910267758856302939676450117118458936658774659618138324695934526685895720021785357120613798450170790835058126968180593146355907800267133296358100016615718783818150156732107543251148163906293613001159651856607434303906770077218006883387810038479204878379694185836051224368501172870266103975308570228253141161874579988015815427911170873979786894048016508226522735160371705719513161086764029277537373609443916027680484288702598613957777332635611946772443283213992086597548330174910324581933132329057296315166869920576024038219005325171642532972355006400392090701757360059954202368131984755178238414815248315203699610222427368742112442947029829735271405194746278527774632706475736589289423827625984938133934034501930968317871693615601992415036894288219847003694173281780566544823981214538783726128900843480428027100912686326447340991497892470261388352840070347551434774153282979066617633698774194067654130504795624726720099961292267339131141008825317928000204201069752211791901873455075735346613314616924088318357168668724255936168131497669689902084938711443183099037502408838071465318904179470856411137489891484352889996594943988851251685735933039825671664603086528878711452710434746505072184874648236635892546942925257353083982974326233271984478968505242090748735924846921667842247165963815633584382321290101223363521715443910987728036649985086313506314342106793026673293308107957752991623429650516747294255364592594230489648599398626010255175470336134525742018846982502992356212301956228191424839698184334058083176980970055502691694794032965840580746642417900828077493412602022432140761655391032763408615494991576169727869461404445294108468395806953182628401427577442260213994258968948714111875310712559431522154359086282062718978457923650130842164900368181176886768503646367713900691540621772150369605985852449279888620225378173978136461268779213511846286722987474393068406030487392696257908631455040780921813014633378144633647580556645843313451396136765783113524302692934787862179106038608805819065475314858402184775430294595458660280671695225245424406644121151770132943465999849268795432213005855809236194988184612535146641979444907837475442672667768780898349485630476429752569645065625419506071799446004796900755654331592252557232424748117258180919072897206075468296766867989300388332694693576183666596247114806259134490015894103412529479999327887070694841254955195552541110717438850110965025227883119492007429446281760751605079782009491965754906915376596194146745398362238005830372856207276648078925756880593230220944640835002069763111858047195328428388402990701198930535223340659110543865072173470435191938845476077021028342790095013230905725072573883063342275818166055080581869171527477806048717824235524968398921476863288569849160972068759412402770274897679715034244156990526703300952225985296397617551369734579846650758213626465492300449626541877462328335976931587520612553315629515634761425661974190361851994107392749010331443437238507706940687420665429412433439957533064711811606088583663976051926788316770113668127270112192740325916384714050422603343121815260205147058438252104133501999075886345435424212709756607220397427219024162745948242171571889172866175258154927543098829777807685757613404428910836151904856734374063839406717703135440173169141621463526515429156904439523225758174394344882189874571236820570491767517652905691350012764981164040085693681577761811089768269826064957088804305997433037133945329093434975841930650550176488799436561231717435636064864493174270547400790577212484570967822639458448108361626575773968500589943194268895801497771743346512467253838867952600774721568160371493673969604757249217874049394955575813912691860285540335434149279893932766035284209113028132180181273097865775395676634972100080801495676239774932013524425025736488829945845488479304820275048795420240313307846003933377056918754283286900386935008884919003296294593515363806243902917781258448734753345756699462887447088630548188741486681247189806719135071548310340609031758544920000951886721132504678169839031401784471007115248140934220751512011403633416162882285496848442394499251175542105560579297933417765413953972673387852532042123237676918431989788517713833415857858839416494522295709504991749092660587125790635938708630356359881074428270852757399964355041100662323633037363330175472984893229078600128472797644823728419340421011013179459622788419846420831232878956489435731275579318056098340068919902633584434578417888647173162002282917926260951237521794546624206660398302172969825743210044444878284134315102312897619766405091674440204140915866850408149240337153594664651107269149080196292977326328111120990056972637039324778892510897206510616930788474248765783742276916665533375107787926236628478472789548825001458955554570379560433055646786484550823297010508566398935129056669065214883504686331736644196354025514935751343879110983284030743152414702113478888945891845035007459415010520678743838593834718341215549955470225701264780466213036252799284432353840437739608385519732764687980289450186712364460108208373064085680083077576880055622396544183759341313659711406764884459404262343495838467151487734038112646300474602265922821765484042626023388839930422898189771161115667958309886686592783253388885085042954895287598002876811550036330354232326294099941434716026002586290192405046580255800464604518523399391290307994711525169667603378900179392237717040233049594972118778686487310573434441389900326322943556592858551770973131852514027857693903684621486743840265809302762255360068198472514311572934464435475465235527716212350156808376053905929492385200721157944967982025225444160688019034808948204473458591290380691442811626022774029151277512603710074677610433099472639006577769145687312468179357492821364848018529458226000410370913788547599154314419934339369750093422232878241565141870816354171137241984354608849011885262280486715249170291492367819579366426678975161422281176393273105217948137147489247781524914106911545243668377071985834865423258050571836527147402742055060339274729625499159163280121989544378124253659055665819868902976998640248538861811655372131577577901994596142481465148618924607527455970540431505795932647797695644372895563627759249284628339872197688159134376771056959138610070735887114444428582828645720685154779383021800014540433379381487246952470389783347360356320517848411316650842501480507786676360231928720071495149680275281077049650764403388778302317101053039666349128462160845839880947351681421867088787394365143019215029916154304843851221847052209390987914312036332474293945841265178480806366302076478679235229518336187474554056206490165524489154620301907749730115488435735873151393389089251420331717146159992038934027840388500366864375623000213632107632876905436762472757047330904472475898425689223073760371739146592321050095347049029525117697633128220185744870822158290361364779243691547640188172480729477710132694557775164624007313069822573658302473245033026894020008120621909631647231834276830215284795434399880067587270300239250944410516632174997969744342096429980020891475967455599593774165526283505161922557287629769586008745283260028151779131055551028449822807794900525158903531673463682832617248592646903634594998375389258932214405539834153985965046147481283958183272427742185577750311197823361591537210860997978603612383371734252773280344459978371220062824569168427196881986326111771386683432825766270134193306055872883777954135843337950500816396011772727943582244562778037257273325377676716875420004393409158408605918164309099310185835647428880926382535008447314535731060923294650381564276507213104620527562794981708943291571812026155409467227446558840056256767922956089504139134097368649688222973147309878785747501572105790874097889565594406108985435871477950956405923146986906965941381279477415577847577940109591462642982512728065360255481380377323244651232719540951387789828325736715509986180165465105274328618877510679769404444473021076997005856828694044172935911523321429594012665709450741566442041938066214751218231933156878385243876677491130457321899370601241367787564183932772967386747123819900969173274593991332776809183250426056358334904275088690740700646656463470385029752784664215302012329713236465388528220511841271551235671702616144748653241155496271247081301980830783370380396873932585701654052118373908663080570774704728470822860016062310410505653875537428279147271841042311176942012825205220760209860354996237794576369932210318724890146589830178680746839765658456793749216713810876691284626925371104562463962073487620235919835827155399959274654644474669568129424800824364419335430518194920125091479093447470299246381772745945348281152457627268999972231392593663182698033331425835897442618543176353118370613330302649664056288843429786215889273155568967096157486889080355893744140878042377685426561090671931735041748557226793963044590336581804581653543240557113338911553352404250442894049483300124922873044655502830968033679883832214281200827306519329333152212416812865762060200863310984455449478896202843034752829808623855918902617730909946402010837576123774055613812018449764393424223295992798011024832086300659162736504681362168502841934789565443846403907816864292105183809150129496745589951392138036024417556265811765341526697576492116528999044407235381261732083566160242854021491269085198504195248745382262761995474845398549100735270379027195503648058232502015322525625089650387996586005520760005149265846142003148511529982422357491029701228327578065895591071281197685816624409316718638517576887864847195360803401648997190170220247249671490990212547851429728351440420257797452675813237191529393930017499706053592927161816781663879965376817920486005803875715006526175925509549613839252205810329927195830314499957916716521946659281297212287762317460708543998245741987933437489571302928695721841494626310841456232466230110600229649687562387109704513674391180269684694156786354748936359656298563015991296135458786602937753369738287230264677822178816647854306368945458565829346141683555285825891238750983087389572830564333474280522184605585871621574856065279713538624186210463447547736211668628821248769504401486143767670990980574946744900299765530847920901943412091422031825314886589829682374189623851356117793184226295675980318540646927130681546845943331302067268494237417063157514253792925524118550129154834320761271498603835756245831512697142449061004986565335985384811779623977951737733957053622423003928365100179863014703129507950479687777263062214683983047979853863733336878273528403535681607890602744438364707016573677662023825776367295009167220816476887239805098823674922793370990127757257351765635553014215088591303367849491906590562865654649040734957879997720935398469155196695256697424385933745529795228573858772165172664598124991832036023608077066898572575915088735459905094615881371156474159321009400428798759546859312027832255975934692249828055052769854160856287753928111225031066540377844526031389842525483239379849013201013021374643826362346086488572983180283673116649180175803024709128610732578510719354454768647772952967622086172393773165604830300968264854587938137449420629913304858636877712645215083591412283785105418915843500299748357090674047425927224797818001134474490018135933331245067772361469320008909672849230161147222065481414578635541423231299607039220745625467730482656394962447748349467686464876353548869632335374009739727198117869066350646335237297638053697679910623937086535910484509101975805217942910203589335851448615054125751232255842249682607745052623342989818794425002251671753246278273022428386593568027460456857585232999350345765219195737726880996610681419933903192922195519203683232115619501013444380051261402783936976847108519799377210761372126862632392087666457087003944711930721663624183706567292000407921679105803324993199940863733081449871129968636650871458933424898599290561621356706319731344738885124037609904531384078227290806912333195940986712769456592549839500911090542342704691469069346184299256411587694434496498389880729773976734955563678605345636721174199462112031466122938787866529561502502063303895185572648203603168613923759327916057349660625008688386689977897892092078469698723336388564541564795788872483301900443661461988343750836125682462826055990548078711267897064636345640170047201620983912071820111409084421119494188206979698201866269353533676790392388630296963926960313080894424299159301094193556526660719843766458926944179053909104597654240791999268296057490279950476235502278621517628929105321991358094516016449978439149520811163040619228542044842120774660286932656524285738245294067298261612134369140693135389935837751432477052833541728221038727490151115366121025953044007831547172553139742135947647046626246795099902955454357183237820436875759640456899666298813103105257307546152683529653442483030397166506440954838663464879327535871045139305895770126131861499669555732110394584078162449742107221928052124641118534486543573388426702346059001928287894558459106043152213528594335535347028251973696517988645415442537809030288976710552991175458139764078894130433873673959440265648846867416269772542649368012218324561587679896667628322641227664293466053172698675706935669130101719515119469997078174920772859980057511165446404606809918688832009167662398998832195765208010069090555967259085453835009491134070612096989545407938481097182941660385400114074366978252600297971897257590703013242243605766408053906172715393358907403964131394280175872427520731941482062126759049557765855461698426046309691069365043926750738707502409349846005166978782847664910207909645075774953818651524948599668913891788840090394338861219333550707934656568108977141130811968573344864310667055909828668336028853191608655697554938414106698598563960215375210059808463510908582298670548121354879862040953043237727476581543536192059216922285255570806603613949105052912936476564627643476048951643671301106228742019444561072676903133392840931572961779936749296979793433720740292377038054876116702948924920480329423125419174462685108172721107887144462772063331540846894858199764161952324316781501893903874702732738268859370934594522700467947692657052386525922426529194886116402828246464019141916411077818522540870478472931086116109668593436160626639493549960434102255789157410054488491357220494505338452023005934341444244769813799959575487429344643186516698697067543703930415372908333053742716746888619210920601535457035953988489066680581696771203270588503984337472637959932666747510355257507402437514806758428023855123283481639598676674662172806796358466349340507130651952940212541994489363353123874006779836135371372104097385494077057766188505410468748178164134402698577346879931733091936469775749354872937256020243276312355161962761209661094659771094820060208695025874789115867104250030016498966697933805561416378240791511422124724061298018730592608553002620245622097089871982295213590730682121111307953749974546038280115892828879688859551772433558531442588339934349810677469869874227166963231685141601054584183020338935926376574911645385241314032962932373004818912624170663805677988686580138368288310381997026113090520415431086019954489828486821641009492074466838208466852917677756608032442620615045153763924088899120641241284228157533182164544339569675074176622836886149005375538766476919341359354390405605229582782651061242330072154807515388374604858052236675688369319136242909457200941153979105135669394741710958675923501923534475814867028010081633775765628641473577011909637434927722301662281682832462689395473910088636032281259032488525772898301466602305010111137926267012847139751629584208492219741952048504682323115166129922534774657487379804474917384600561212988855877555799739313212372906096086598929175721895332454915876117042404073781013008661483517508882065760479052250202887435192488288899628689888095867562060909025993316272262300727265280216939498022695735077461667090435559127479041916866996459795372117021749616272247903304151023317275238935027865948109059786372650420366285997344072750654631211523142027960195250100230827841496695556824699402595816316688753312985562133612723484306615943734593496127255662875457565408937697374045342212398211099423821069857417104444598981452955657776382630897913302777631205697503767418868673560806635678599624972016228986622919390648171962707851627415455919164293121028222311630781943658604765745537512220749550618908985178481107981498100786699047384667705580398684723005787746779318058320339470739841350981233352410545055556858094805189909232651258063897318187002898398894505554593722323865132433780296845896905357752976851626483067451972439923516806879404786247624597913715198201480705043822822928256756812298553908312614579131161489129736073226306911864511735008424191115707343758293186057978937363078771088898503470541093261206328075780324630894896445856964999729864225916713843271992159554180986731176301712842352828251775944956712825011342129868850680166599117153417792685213250987988014831293787414064763447225183337270309814181709069603248385106804378689256503742147974408283747263047400492577270340593117766612049970219526203685956614607548780009403052427071182225192962213499751077079244168589895235041434976275428460833306667003339046509976962668430343766625925436093739697003016880329904231466271319786801524413814157496172817385864067854830547257909889575637987375841573376745881425714301732600759140475568860302085355255731970564756111260293326889020643658307262210968676120668003598058766331454843657477859502101017521782947489707820248789311305636941998477669088902345041792695288517699973235046773975137238110560875163554388172233532846958213560236356799590319527016749473833148178830980932095087463564274690026372159974037171025875213850595485240365237776167907251044062996471992597597430172044689441211692945921388638538840333218522627126535753864603271893779995719468591704562896338704310393303725407519830952563875545968716596846698624519090838495186266978661493082974652298251691698304209541080054215576028026160663035001707098328848002938558303440867132586910676917329537546182275332610939913053106348326953553169581217245869572650906865641818861160192236492030303379154724207765410751392753396784401975671608858808446417453825819814168777173411590693199505252204963387952624217412814332601569845115153045767089297840633518105056908731831669640470661229385001322116406778810843868590232976052353274549212139566869733127541510042999261241025534067034045118760150710994835015823004753781944493586814718981635129467424123407635879439593661410612075357070795176088703306009637444125760900230382363005687632845928567881356530053393263323098073476253243722165734163154016551288564054645709906209265059430449558535497187244089356988946829683247420658388732121116141646721022196565760841595150637779862998965939384983474633861734793875424785280087608441277443351970034843198228975737291470129080060713107858069781971372959443017781887839000614007250025806674872459171947930660220337422699806508304639646392270106974984518455121124251660393139103078144860302997515827210546595424818667168850195747237132225677754766620490480406723545111030477849110837433018867877743430329766937301351595813014619246592114525457201436243834135723553104181410669374097553455050088731655498644650273443553742516371006361532887927833415287487542492856339467794799689352369138430069156395493440325896639282949888236820954763436752291961815658758316557888235937078823360429413534760049862079882020293685795307785175181518061966440340335855727749284757432093860366810252302839246374836320624013006688362829316064104790487534012156078695646911960894713444150509646429851361512772748227070776262484561174018448432348613026436942460181066915105005017735630268439051355316576517107376269808179260186109928290133506539038904566295761556904181339688452846567408946461955230631381919401692525023469303556397326581008217852716964127776192422763019378004190785123794062555640404652401671288027785306217486895491360710567064716274813493481828092579662281960006717690022823462511999591862706753186750621091710524571984356966600854973958604067350381461125344530948540422461366626838682834511128497639456412493482721495723541196253385132072754619167611832614134508484181313979257035809117961579967144378286825278029221033873254833831354304541406550237412476744561961079241446994805945551749816954817398313862790222584902326092100317349297880960554186137350627287667044429024041588744161500537128361781530798967504281020079344854696141179872219823575138812020640789085503186596757300102695452247978635333330396662711615370322666993534317148090735185362444194098025741496996885846746379369476516210289503311603050836064665994454601037586883449871626754637525439251604681791159377148058354850829825796649023932307913993289179074652709176599502787897079731867220504448529585590629935165827813631804625101518310852307193488774111982913649280474348629942451877616596503757173522696373039868090728310701895362569110458994020715615326947718761743071672958996277008558152717381142106270130082245970508469651978028411775544915666496442195420794268329191424559944412566214743119104149406060006666033845426381764889108627620039612791355702101680997271858853982981846975857893702752979974879709858656977614745706010351928389005258395185605727113705543319494006359308017772222164891874807721629128259392399931903660074658486579821587148026452539358307494789234653520748687302828099398245167151150241776348140035909061778304905429583709548877728466975175268616799611848027241371426708002317716916143276736458975466426927993130720398286022614011946502315580372944782544244294741238781951052645169099925291640892733746087215289855468550829668374674664377725860880686072931934560848627295948658677002865697495091789968209148196896144541939515889947962037301632156501054098598286627872090733593681568682218753108754064014776295634221063156674098927922192091422949616802566332146909384645866062707310260618813441930924619274349507421394138355604344193517163942017218740673389506218163470370210728892586645581190952716293345722754669842277977499616830493655440385772575331783904695115381159726743086802418895537407655925013618146937284489019900923637317270837056049182938619179531774143209890302694746814627981524468049430952711698694233735213662349906395500325586476443558557115756096804754287180513724121440837822785678543114787030945165543034223359028126320255641621863569639229421742846714268133141431411350872868961098272526568769677708550945330216559533253573394384710340071073644810020513448426239443171324810022085309882247601808481158738606191880208327850387617162016119864936121745518902577845113904348029134851599664668405850847977356700836532508987559897845695387768816914282533019359048665475725890921335647042539453254959671123952042250767062468104636214404788933403211614688259025625577348988451683492706044386557519557343486863709856447880219507039469730711736249168748454383133606397552383502227265368060500971279391092478979665367060155436854029304959157413165537589469494930585250948740504225159362961113714818674154153316014775819260207122882641823984221964300122346790873928307753602962378004182650647876091032605951019578655801923345079029751635453633696284656697055131237038444874299235961618523406639208990733280449649383136600718793842020566293040680250362946137058413499571476868471984547451965767170154673284075993226211965678606564330042459277786648916208660194569217453147013884925673616868714087090031373330479784818726544466368761050342329550755233345644286847411919943825876520744308010527123124658427177952731791149538583319017029376611757472193135863209751005057612337140663506751989579725170965181123575635064410552205171040931659192187868677688371489713740526306519651336527520480851488527030371932824375044743994222639696805011970375848493292413578312867718948244465006492162883670231441121890876861006561511188932407610638037038428465018454948975013453771863057280920306804107090520491328721754565766345442250708425271461759320931100063402698131504869787076811904171957695720100039131009873058105131680327695526386251794624189952378076430876211271010631601506466569661216062957072201267713403358352702327557017142431689948845027555334622435190669830259870301618471161199701432714799983245127227950787206064991969710711645367777333388491520682573341318731823344439712769473447135218496050698839591537752618003073069313221501253470003380093508591110237530804033764286851970666539425652510134383687900402793700051771138069521197266268411585214262689891741088862858971384720746991951163525544566561668585753171477455319721789895299222023346290756599025127902692275389139658585883889108651495629907914507863985333077601768636499055432609473269760845459686847244101012510183933257311499967336271282051587055465899265749274567077066270700524765294501279521062402008253758589243536352934535357442863433915903844072888041051912081141843190083857993605842070003768369813675457396974581998321293777053866530446180022075510329155654458581982424999832739356899949610033008132837807494924220456227780359236482260521118154086281232068583104542757768658428467874905553133077691206702991865557377298313895230736646661691457884031860478505309177660149266632529389255481818595046263656154723340851966791641384822779740874134153376337453480941664772196157755510896331604800221972518955347086377240510347027933094434746436278009868817821474797623484615897661286902365431526073178346703109544192892967444967818101728153409933486616686415660645895980891947828165674279160792748868698603144212435749478022415356993900814465969258112835209576014337095408196102780054479084670308000802893726509042100366723194495178252834899531300510594356935358028339779329642829682939077303196869101132145695205945433034236382703797858273618244039849507628138091297100182246878917752904786157562713590729852381527771899838459008053213372919740665298379947761625349730928391579099866350196302349972032043602773411554221381421052447941175894872620225204038042605747537096319641245054958330351977460357341426751325601763123344354291199587459728672746556767598175241768776261734335883534954662631700586793088830462265230584688739485653364965950197170832434007273395768011405262909071822055356655313729701119693258088849071996986624047690235206888163813630122157663703010737410511340466157474953555417767937966562077092260161518763380309501300724631717960171511721392120883683561414230630993813843923672075744201105674374392221393585141147866341982298095095817643984770197482669687082628181808454324151003249125558233624626956227806940123387252615521366775417193232630114403794983497158528005347326809903996203486083324929662348392332234208233205913452717580885926586326222956753136282040644993310013259414034855382600365092525431803709278255525183633358811508820243976739706966767621418482285484579683976754954131080638068129395146354696454091136853461094631355142619288580562355927059491809880365373652823805380159933646312978769778038711663887389142557786634738420317436523908685152471223418994298260958480311732914809996870798576724896151939132721341120708928513984534082206487308226236067522997353133423179715429370251083626871839172425589451715827565994491579611563153389006186847250974297027622669258056636630152968212239287673231274867508177502597827941086452729241485858745626351813338217341706949534989534593514201932615300784455163325595629813732269747262050243484827835798276787557263546940986587488893594545629538279401509987522316301816796860932305250828206917891494125781507162395362869339557719289077151293725390858804552261165958145138619459576643744820674724636098209236701832499128514145786275218156563881126739601607716564450246824943462882357236953635640850027732097120934921800169234315562398494660005434846217268885392564737457164802344405867165637600069374046494213020715148023329501019492675323720219205740450649914798358756188803978397882734117203929463084405617209147186597552963438312412223701547056399430108193844087546039262596110838860046748639340674650576542678386111058642760520049435145962576716786499535117733500060581215064700259059871826594452927895406532270599016449210034294227657230528421999387097143867385261591104919446160280637134814717490638838059300437185371973178262024093648067247008500364113113888468486053674993083471911992451978263369860470212370311439697897291623705828509589675681884317178818659224741530180482195669482033681383074153974877908299612384262495998381425598596749054301707777130614099946490960327627772278381256847052770865862403297001785007508917257684285407367233768081817286853173896884690277715699068608408084700023562220255938174358408865676789444931662649697563852344990558441643493615373185844024382401369034483160856505690825525266436555589497891178694724920384987767865376645738430326072763405119027539283450425245606171768944457988356340103254056103318776546612477683595455538274189534525886899857284483534967306506136856975466435335392260654219808843131931196280144520296901342439956514582191053597034609997961599424643323731311112550102679594287154585741574761370188950988058157287249621218112546791572725564196612226460442987066883090423563893363561161606092479756508005639226125284322975177187426989802844897907236376538193763427186027701254828516977255084094076411072004793161453317763814539984674972039327542535940398151444587333631355374345244675350411713209756076919296430056054838145258256414741502270601798089152716386558606879490461293707009731163631778089292437981781377146252938736254133297551272048408599688040257785495488505649671479849040558449577228385662329374450798054293942388149049462774445940780431107276696165961004406367608927802922187911189365399240745951005499788378478398791612639721159176190201907264187124980191433947006586583403603491263323575964935377261058310465873176952705076277853910516410728022791229222012165181510749801327388657430214786893467574564112482226125318433158650089041864163947302192127840158785110948693142722758735966362768551448633743511769828216218667698744133657791743329044527798917554613927417985903522036554295570587398599967369275180085824992686161725290694475912970404033698390375748745669985219256716887484478390991495336117450426015928863005403838074162444630322307317646413217672592419814405180222202453519876355278972500823931692996749975092030466179216806786243735800020107680900309129406273505858210463445177074580717961758114788942892997939405849615923175953090039247265405957577234216925883698597882534890154324242968055818158195011511398741856070417723576365273724931070311239796651981973635665998427418358990278511002758840374850712841239138682567678377318282613912390010811503326860838847593216452213363809813762531314820740602007811186202415429917593437349363778197602939043686030200727406950293816086680733681287997065192269951022124417467345956868651490460872181255780732306068559614722168189869779998854974989298363163206560293228152368763940770840056875274748110662974491676117652889722656183457042288538830853310989173030667068533379810623184274062247737967591399423992813127517853811785183939123171166926922478767550599444822396714121734359562900908892552100629387792953130568278048305894353954354356727869170047218377540957892905984530140135966051091435352866811680331602178068843046869021709303132340212451180819743890397703207905876281980814024480711001938211353124443005797346497845254676524058281962897578086143197482582236745916054822610193416590625505794519363104658728136304621906509141546502320967715770633924319613324463579956940180525996458421724425388631853009674989360859915921117061599717274463628363272556796964801746633074616728125512857572291227086918234780824368940193836338619198391494499267121451724809654211857815106659743843293265770747622139499055615720243919311406970864103952264636851900803586712366014596941831273493708189705390267056704274562018431345393160668980862131957380151133538347401441632710792438632476904711947207464653035245631721321135570417153705762445224099493327226442676184406209020606598733239049017093331944302273497927512981653832168868863587031693180695651915887374715646827886644274352118054297203621310396021534475037084214501359928973450477911307077410768958429071817784276421941845639122771243864943762581711911198657357823279595267208887210934753190569367843199836999109311404792642984156017535394308865363355579565858938241017080062720095714820358878604392697348081002473498095174802642443392550542614890377573333618438388354054051085239315398414886969297180104339483191484276427372257631691582488265329027908263393022081554202547436885069209989763399173568189472361578360292309108142302465086318674984420998583402867645277806060534605020741531202037162181358305402929753348757033227176245453778527566199819583425497309380828800848276423722355855570558941255057117403443033467698478647075513575909636166072614259967242943964646324386316379959588252569051146374764062387815989800912580526247257116402947886510106057613143746983639922492272214509139491255101882463856991276045359789309057778982204108244096253729270307923517038529315052557124636378726302674559827580030650233543523763353348829404862481636369927086511834400654230716428495185368157820967611633084323532864721193033411874141166663129432465271811930298326545383808791580859271499005360277199921212171808704049695973139912817691745056559672776300713412086704313878846080003721761936937765649473301038317479111440624162323994569585237909646727854275381133460121198097501073823292448204986563690668883115813763883528972854932291882888145776266473796227627485868902963084445499865456437411724423070814663791259854211223842708321916963805620819440943792907342773807840869853360610526320121372306783417433952911219086161007592977736618374993327754010210878734124143395380838419818611379001053019929457634787463378791631335809353243076405566484307234672696294437948482716940988249041425564159432002828220470126807098355952053654870654756703696346543986641867178671833282337905985035868590597834683526558578299780045347873108202845784862480289786115929677972110774452949265543106414163899144782152953653169990804350986488417848353917829581498546753897041465617678816909095355553722988089013552046835679734071149178050238950573907590994426600921433153365133776750654979090438802584472133031433823235704895262283078118776485488735287045000571944323939053339885953670590524262998825563133655400239535212162433513436084730260006906153525439496727146808063378290434899100161328979496649416336113691495935613081923679887330672361881552664227455216090938635166104697486922152844893612359624001590218445532109130184691770315830169698502878916230501453341562974644539624609295948300736113995107774451945352543230451811798739664552676254251977860175810376017154623957373820113682920907784229227120745803773631100042380179250985440062919632107028807098864601815307140845696391139187695259440736071242657208555483257075423568977269370823368031908744121067776463097170428469805833322578466220767167172189537528076751831846576463547276931427109602041642392325749652913807420776732711960056062984209342250340942008132537080283844617287590066859244185603470001218476134227804399473918569439919210508462616657088441054462762677305763990000502207124617802748206908523567244465065200990668751494394329131534840134767878739923793671984555911877579550437929369337891102575311768535832653604214111456914483198401475868762883888412743139218171496954007649586257552249924211843770065917469067325957037984021787355529813526734787789225209495917008864293120308857671184239777220680066458249717316094541856723359254071919846006189798929709879230018870864053610956292534346016054755118742433986758314652968842514201484823175714708073742025806099946112963235240662849297055774733785657741814961570432063219417521248150589053894969421649069567145463460631021352389608828281119219607730164831883085574480528141951107854611294592522220797535736301777312836334067653794677010884133516371578717536619584351063613744458614993435069845673054894719765497073705793400543979662915401009760276084951867664533177295708486019473067420620550314613980015198487804026191125133673611834997061021526822972423942210606064510050407258664841805203088996508445234807116293462538444558992497468688484122960457356598189188650494319336534047669303838396331778756433277461374410057939605255166814546761911670297360160656063611932538013418525857178543876103569110633137134037048697909657913885084558369397952326993966142843059385419498626937128200935847141639100745293731169721948745452599324550767254156128928492399311242664356019215570295730243702338708828715687610620473237625454186189299415189937916204743500041512016676956664408037443378073615603729413172387876932189827230090961134027427091232240491305787363944704510958927862012038673732842332000248087029869192649560222252103138568716844800427077316718381237288778208805335812246992935002091676177076571696436700252063894096014109534445376659622460047224231551465953172348370220264339622362113429702790695196317372332560702833562949194224776065574416105788986513865654737395204395648370209030042488317119719996859515942939649543984445202665964952627943237092436139386042292000675736063111797432739145071641547579661279321919529188896146146912256156853807042225084469285716405983775108209503064851543311898041761899562559090818018050881564760442588945863065009674270204737289240590983310298494769424667758668947591291081574312653662290777020885488363891897229860634594897663401320511065029647255512829268740513955665059784969823620137240032469179333458442960551986191735458357293370536978426037215977858816160926073544860741748231271528668471919382987346729341430744248520989432297937418589718076575179459883904081473934749871565903225379418316188818373115804712997428324406870033242070144588416913167446408914911000215544460938351332150224532170640299732543644353949067524017515154390129343982485169542678141510104477828527855602478320819479572961006022847626455122162403370982769515084823024525752872342581783458192544342951343272640354344312262245827869363125066731511347354177283635327217241448607284338309264053800081422594763212626585856509534148301884056598951479429982299419107335089718907756916178629163041191137536209587166723221655361345999127417595841864750130894142281120617640721317803883222988387597480396500789821315169235237727751872637838586427375904658441682021272822138835454273514043360629359625967886758583715283264582188170436156196855529069880553816483633263672516814182363546427969665288490834137790047705402597645800039377037625613270044029046520935531034508777970370885509621392122737366587570799450291020902623175679858603740592294179435725149815347973198015320999895793728569942645801861186956266081729871467343701690896201000847208011524117933980896763409119932897471174967371610572250482478349805509525157065535774406755377118950736116412622261691909369810008071169306228285628201450482758578431595532730838068609542515416769966977662021200328070712386520629157433729158285457298840598908232905682260779380409194967891911695474939080285716043938632942720717026459358316884034768651964765682018805382748226368400000369712812212225315791266152400193811755989658063196605004609618768064361370741306920908887125254534032201435452975947312057106474765786350449073588720358404930297729805854872606166157085980858365325610624745757806092432516375198681872437964319295711173675947973880726095843635671653087458231251768274084514672418272794670040581623081263756925849344577854531553975963538729258713335495280497740185591753396189762033496293303616319570660241749580302254845287236297955316068966187372197314307599016553420470501530898643123377540148425191520744636519896760353781856873966560506577844308511866881233653654701614328900978471057241622024512386689440560409673173457683360701840373566661124970580441565598997210504954560164476992677327841440339842676594434562759233665739653936215732363987302189900631061318023383130284466632053062656235396994597841182239630154961679723470163644335639017995117570113763188045084295595662779560871811869978392677159969333027821573135435918106856823214490214973760285427913703712283720728018448414501593115111865407584219444188249461826054295473603845329811384142069756404933431558494190339539878402983769164811485869258800869605522624405102359622968310255078328356172057333082593958197934276613730673272527573061267998491796521132210940771655140291384141957124121451759687892563083836144205551149115773901153086456329942300625228645030951306898480922360368024803194933684206460827082313360174190238229759770075145873705726148855326765891760399962463323402198100683609245707014178492020560090361761501838640500099004945456145296256738031403640169232878769247274869246340534586674774072996450984344457116988281665252506961513136302779806123378391888206837403093897534884028841738061926868188511221150930055772673301540080001539984900953674887236164596533847787245557310373650569950289282290765105543369311641948653154060601465974993336644920115235555861251258628355886723478121578693130928519723042571553070920921890425839303478181491288994479440086428446404796621387624512123674429194299969891442032141617409446231417904880683083656393263377265949847120592675921715784996444211672690546096161139454247593740835475435217602098276600501511631088513133673162417661052480921519951553702796765231569795887805278400606539462758347103055575662980822135299665687183647582697759955524796825634220630989758583161216875838300727312224964146309322274729652521637934868806611603410939088790781118669310211279918754219137274791464018203911481749769177050714898634304600040121215623189738505049333605749736975109079059068108563849122226295706515090294529009748115122527190729466431645470006192954406972433528291615367538323261444446106240074646264216258873631387855012177448555925645602501279324889943818056230039480351109085998171427452966073691382360456160295199877165100146426966547282760691324459038630209045549431039488375752267513089395301740118587438717136843364118509567534709727734246785724003999643691914439469263631475838914941073660208694505306494514139700832171251841931514690012573321666787255053403147154936966450074045602382696108690245711985745778627323179798094477992587474905475767253909267096940922912454071372598832165536675932983864035133653080131315615044035032453343475262774997064452292048971370877086562222031292906558558797778044138884420886925735915645153042750534646463820107233059740780124979061302421606876461833138215553111954207454415131907833083984351015239368305016463473103895582400480895906826356019691823271102099668331217786870292102463819843418470003067599805857636049448985522029739105222117313195766677738412314465951116629611958474696602064264083215628341912527645634880045301101952909828678753493025370567353332108387590646422810252663130771023176853201545709019466498406975691073895168016406239082230565128233903825804707316193282335701954084174345704232084501553215983761702757335809085754175933985521457463924101924163031894626173126216972724995856510188299529153879795548053428490573131260749047338732313986958509959314132310479673497155596736574891063444337577629758379675445823709741155357629734307182040319009122851501264836525679503645508993265984635549359269733362527256226518853456679475360166151729024984208410021424257213621223068987992722391457064943675563477331937014969055203026562195228123849621949915829228957912338235697950836015630000091945007294418405719940989204389443800751507774743112625790917289464934853097481553174259081146040641671583696270559609214892551196137646692701734188417135515747290429162191867585119064188631861887974974580419248394830821124955283844631626062846118018818212466360717324430491662064083211444894285718623321720911717209789931491453742947774950753449079424302587969052168895572993773747286299322084419708419787464859428253781265173219406373403241352375989346310832070082665773598771018141795874028727785476444287181735503748070163983590283076122240939759844827774904214920017963392620253326332370935176434843293494850685199270914545770810973901682009632265369077484709137715035838962295363304408473895145362322525581730940848777315403291803306776096139490826215385931851659948260214007012960169778435839071691140713656315498883975665263510066598616745231544313222015875110752932316472474593152553364549045744582178370733993809634500795862564351894785894843980275266856967199624432786930971433895410032890628550198988611274081588217064271861159109582748975636049856776955619305528657474575957900555658872315943736982209381254646889643802887529401453408144638131422071191725661617529552298019434375717765112887685638228409377809540271939755881961777346562263737031553508274860778447802835348668242929104110741427353802828546305178453283918316295888624274552090190444562229865198353249994177479097747751690719990292179078514750673544395954863156719408386437808069798910158192815234525145157620712853990005405800684511326439496895839041817138043444211518638511996873300014483062282270200437465123269310349254350269249562009919436258783449795538584215688357719173413693014824413423760188139346775611126081210248829083030474204255068434419786759876447871824901255257001558151848110784444815270362154307407814769586053048351670958505422202960789261285582160826984176624517805739475156249797116726433553538007270587456105660269438471056934355943489730886108166537763464576830337778725672468086290798753962705002916467318777291484230237299954929971540294511190653035243524947695708974562766163051597838762009872012292765104833193717606492444819463351858785243208251664252727405873560562804495629259739822356131881813755350431543003349219467001816505748142180290222412267333981026169297501383302628582386842850659177474687715894994536092630521059671973445623410385863718665868731365477800114102845511461128126378125559194298153084966709000667773812929183434670285802081590580045378674310305208697983046562587932721079095922892881859038661945270587253226682580988673463971956757115803383849957610366448853845232746087087650719830037117176039907220335727745117661454715085165227442946832034124117260158257941082791454113647708714554330261498735945838373062265523007406840049966632755583703116021936375310136987219737474746338284037443647616011569624411378438675033439273054728015515106161658525142233581020104506464751803112105679302594550346970250520322392816005971870301385822449264600717496344814483932551904146504018327877207432984490304990778505987647369359326155866003416116673351961510558683742003446874990415195496839578061844360069460450438239042691021677527470675729830362367919676360047904718818306917668692316767024574665792791667934094635748066638472654285542969824763426678891953853724409645377239624893322931019590291895230032807145696486589317215861350811505975361575207116059888029230097062247071815605003787830096307039808391117445112333494144711041792496524478292470903608733707187325465816561289432436627541969242442119526482405352946849659360516357168989213214106061906431267595520690248730932977617108999258811769277314714874576463346432841733380562051749015141618428105447020379379303491244343066584622024883473957482315366890430523898077481628895095945462154782658807537179998954551788829520404011720205375431544117972492128093708208745041619787727106811436704394378422032928903277265256337941628688093193430799492266394444355864869239150812484082624582581595320413178593531693063355597183191537982149504893263882176546867017984344602269894586771330322988535500506910485273508868975846361532117766857680251185033686724587261683795181569876160142311143822185585737113278975784968656134704755157455623278122949063420736000922190658914841961946360820772415434894013469803145753020068868796893647284508494886249819765055316784568708667801424984152973630987361267245085070274946564723161577903306627640338917370006234497798411523609307682988329108884319875232055236867395472837746384034150070468635431530069186099416281294110133991794758064785219134469896039642338327874604032490443963887018359660031797312785700625798446833573382896896821303973869435627312654870943412204109934269866386350303195366417802398846503144302526478292788238974878203723176288135013922423913366916242391929897913481871421564952838827747281401672255065329790709357803615700348699029774899642146007980040714004742481230374136114067542070133751562572099694317330126273072836412781485657557801492704956731561531382914471826523501252535511217952469387929327119560014613774259395242250572431631353032687325760631724243972270081118035381671641556592809505526089404680085158809390921828273321121870281657494913654136790608732770058717802077685400499627581877597556335542054888650048853375895930701179874594825689159127994090772865279546589747445644959809033397290108056927902714932156527800166599995466774839425941099348588267236156092659216223349659194227021714528549775940205019593517878168078926540031848118757172435955458283607563475127924991984601568375966890940323931899359645643431672841613293594702190936335960270365504188950437083742955416750682001579265284368967991849919095000855613419725210203744701889770458672551798887228935497492902977922670214992555802910694996050378229272918379083972658730483238541918872212982076641212418304621424926774025424983358729846017190921321220382970638863959725438629278894454525672380444320270460901958662021045542567703506292086557412868582353080463876350970460122774138684892555973033322459832295949871947942534870915241515460970711436928358640876274915805321687089505850019988817992122064775182509822073412582276221480709852074837305860880696382657765818754332798671248138396750234080318556673454394008088024301752522172895951748814586306426852556410233560098012633315042175375250163490437062362241659957351098057241566808109876650978749699788284792704369988204467358246726376454230179796573044213540468032725123064804659787196676508737061853897183233216450580630918784703973499478212709204327105833133521129641757145465571091417078964093976170623870652382166998052648172645804885815311792161504978013554097615898177927124587581414504328199590583873163265468494329114800609490676111197916148416955123963840210512929781747216615158775597976716471244792403249473566704469203768036331351314227637908641922454344442764643005753802976395813114821055306406359506721522122568719533830355311235270945477279651812895205597038186260371142880486803835207811187182250122889965768942882356201128888557949078714185086163445651402004666859073867598078278912005834415036127460592860430323769430939554388182947645644316903374194248629831327023993856177479733516467354912945948500930460375725023452441968723811753507790775672156755082020880419036420564031023523602257106679012430061977960376368691200063585731793967089588258294913013077800703883473670588987022406611506176439078311685456570192625120879733059405241690323254988414480723389793780836071463651631677030160258507022351939803982418893344375549830939126808486468352615214613671025183603816617027444666968945648527930745610236235818981574554118580748103232854508715207158760778795110918535523328281137025247382499077677462463688409583368550063150009458600547192725383124650171807283178813396755326860769173913623338227217981576627654454376126524197173229295657700832333257053095695551732896443263858788428728626506531423211420459744954492125202456721100435348847183848613818126361102795606354986956417167879709834287941179652640703913261744959345146478897971710350743688246235141435536226722906676364288897449037991623076977174748463891698874281780546484240376391092136057832658652150419549670204715270563657569264365183833004940976228130697363594183756819747010356027977684069317119908351971918892030927680926212816691966670136942039304599043903543847111354450095558893575793621432548169774934971633706941069652105319573405362413478620351234285508009783104042950247687966502565429925092179300915326070168241940571395269979050989572620825996699912574182972259308800877809892072658539491362747615241304259613267203371545164739337848447488510724341050678156116385470817337304553580856953987522284563073023451885461095886421631491995918064837605381796560414908566165186556405536039131109010967417232429638227472373062614779224728381223125747476731370657964402139484893175865417795052606621601711957614646971221579399783571657343565639357565982083130480387712568739398017062375955743811829970636784194982938665022855729613631320460921892258507673054307776734847574361089972460571320719078631521671598927488414989015747147201229046676770806375384556187504459897307962733666431888740233715214485804466498866503842229826625673563448604985652920791644669233129334404299811982253074819096448788709803464313801499243023262584157800587472346054591279714344454661280202609141091687876373875520226704896478706199727831726688322193958737759144542696077258967386781133464561938235990094207218399201245026713943398322133833303032036395911471374653162161314557672687280369468698367190309877513781413605007829213480414179930002599693305398144618256450714311515874024119835578455066640609619054315902775977487804969638134378087667684813794215556822181149332846954205473564350926266000616489767123810180118592116314052450264882439978333401937912111717935912381067193533873514341605258816121556420698550009092424708977331116358799992761772085120590942635349078654147026065888661420038005118724851980898246366770824586803165745606626904567689381328872874144786364025045821310569301615602948097667584963469344837819669733958965124283428479403593511311890308313573931534544624704912797279188678254558233246957687002970961100980807202361324128543420647166756558684343020019780330975019526031077037716015868007901955667316661479858527163809180130236988458321087897652341525700963984229652620814674263916028723037815318293835533037666554566600876358447519736633164601318457692187221140572431316690075036212796860918042253104849455989541102336064210264570463645848653857448725595860565084361828122281890120903218055006996436706566320421612842304178343937743924253615711048538521651087524822378568368589189257705090639832797651837112486635548903138724432977146117600225054825095378660317535440538353064652924692107291410878855680087915282699750348754276004602033931416267005400618054420035446257430439962630453915269396346216891244180572723541890032138746697182490944642704809544931887028501594082920048604970589416328589866878892193102970479519225971495117668847015518549608814508893623634500760714125225236749855208727628282743086454947180192047140780846553587954771258530771711050531390491091038466890891522810713658879065453383851745508024135946421472626031587516496498849810922727076514895827515618448234715669458278305978633302043867259692386655835397857695913145945639310488495513479371159825682835998791179490590237040486442869323391350520833626923426536364598833215178357673118313651393384920254555106808311097758198577709977069345482837671554048056849301271498488290353085188864486462696022027425789889414612323183885024251299840793921713686313415161348159372590384320086303256794867410280974637361576423166235564848783996505730303308689773310927912535292230293159658690794770202169791945614375697240321058189218999398610028100104675335353049429365871472262131426278485951467985858830007490521968372878172626061709579275950531755632076867985170498908591684225879537392693355404658709640911767845238245262539532617165665068493270309847145357440254918597880177585488631380142153494669324458011771760376900074411784878344336004262682876673112870965732839113891171402020513311600467419432485013431116308012893442847296864055341406793265339135627402831009582367621908087787829722763904806576453758149837448043349097008543632329804657851248587574726973863803326254722448782514080469996848968607750247114901542932681870548888221613281631140521274925453324558433172905667323954932840637668712778325195936831645921427528805178192798010665847797116356262892422944126842477842976093769690702807682513617078480652887196477336080170397859592970421491799589869981401924871804309914188205441837028137178937208413923625966907000381599170114596691511991738766059077266854361817789450418367876154507739223558024603234337640032060204165430325380320021595263003992229398175110624455476636793097293873328028308109648776423023604711013385441208741713202801516220426483450670831473714235657679528310774650160265155016445361322641280671251626836673858985742076936889787649400138205509739385366898321064656902246228288504643548965598361888667211580250486979256026072443021034803623781832826794021466084011196532593492679810640317141710843965588516030149966840607741033367047858178644133560804909891193374545658796514969930040714899290082535510889168979651670740321785839183042813656518506937197567821294923788606804742149606427405715638611830033634438606170024676071647287264156262347947460139610628981815855899469292640118887150337833226214370757131211927007481921339406653831477009114868540622036798190520695140971729017994449075805658230207405228006271515320954883026300042519338359820866869512136865284796453701206347323512368290196812245398427807636574714708985739276816923908696921399430617215734884819855341846052513037607107943089493232130229148338719138157524224117080325968736867832124139615472496875818268218690931351827838777306769110663515147262735275532433638267551670307474780582480802171839887792672504311429567007674774219684069259293723561534283626243269475259007883141594403637621229194260366880996233909094833435966728232019792197645490832296808612984535384849750398682800228287429732483838841514531282437706444978546645283011339166347327324775242479035979901755470065942163329568389771517130868020984628755508351923362148317750444719288939312227923120683567969067358500516788894270668048484329468947739989741023014065366384695761960170297889150064489897619635541778259078946704622533710471368007939513655598575561806372806144731052558062530792533918233794281643604050377426943810067843637097257000493594710776405510525528773112743700599890820887029420782389568037632953146540982896296155173351971958801196296693680253237867679353350744324360397519887974384928449223786517156297551285181201959584485102363504934518303060416176561452450703595463592972290281345928016195825671731987684708892506620331070759245474072180419817034165146767333587361388323879577220021008652742514655923661396405513438856857887411246517565881207470304488773808514182326420112655654559831032084328720476789804787732851512395706389549754796760030987701457652247607946094317028975583277343648074351189484499929178098428255711851014820474857137382576343566275983714496428172764005447175425010200847726150495811949442705580027495826659123456178621886218636877527591788642975394239366643773585227810991308100818505119746674638908343696018337431695675634438687716561790616277399803228114371240627629460943386239873259179237702975014662710474988110569907222112273717212353622950208470997371550455401717691989451195026847973384916575373480767791245144645361066644747017178756528448365938511781092227066144952447635062425021422212621392400682512730834274316260025539910502520145163380887440019694721585507707053384659393480642752184822387245778599106468798785619735651611173093994358394721516049327604871295453269709435907395146848455793578619809946674289585120207739957155211580890364600193573269346964425506768783486671542199299360095974301204584753763151039632873914934567183644663265941215309269697403760073178800399141819712329584537023968840469038224708268499281182135730670617331574863952041580973725553547532841489289544261151296798664275436993878012209231312025094289172102726444397397540891756558458511391773261120358094520963833452836845000672608387413311178797829878304035255221443025732499003294493182949000479654383655369338018659078061479095732730912440048767264790742602844110266039978834899470709094281157131738599923545039704911207554830077198889685285231829343253083831229871550193978744861757510938827899561364835674570943037336648000670093196472016072877750568018405816215441778365267404365028225535068451171591200023618509964394237947093257049801167419644337558840072685143847475572416573916642548890906082729918962103690885363705504297894656346259870024042509651660208986699501346819814813503071718849993963469556249125807454210015211945633132767947215811955941849239215334202884872310558767495474867305118693829095121495417717925548069498141860647809782792758932838672087972311718936175720793128957491092358609414704890032834364399204505049444684363957308061503150286364284230065155102471622061333129244930208003271898634701026299458283904325514710837756402272983812878259825477976851280070458689180760876514868406593458153268494753392298243149515694824656551759676981667766194060381315187911499907498219018245706278852900427620955132043258541837037022757266592506524256639640369657719765053277530600057413427145310792820473753380550135460882674754807422507556804051750178795380421675690761814234172839022253961591909527744509446949941852673037910210239240434159339485219525013141938351107637258117838474583870555677622012284038896828946655310140496490832004584141265672502857610783631633244060283040747087533759550185535147144646590657365875658173472494978842875221095268186730078954145960284710373896940844978739431087615434243558551475394218899108238878883191988894707116775609129427264954546637608553644359632660336400855991656581685207081743082437310242748999690680501484654943400408292894631683601057590956393830153170364659969769909742159988071824993727361937237188258504552851467016401365230333518850212269195071776816679368014632463279161454854364665265938553171964772418459063719494546164917667650415366391845600950172031764759558214026932913063301308331391428091008138797455029911765396409066545612924361517744905579571261648953400502143333945882957840806850549467197032213446621102363584726072603143420081150833784195978627552611145639361583249764992023759872699292478522482432004956129911253619819498597698404669165558709660980258016052267965330617665816894843036528398263974712686591977467685768286372591742633354558347767356365385962807276221076746850139521128887382168690459643613322237381935431859598255563435679086027217896219770468498226001148335239295542300922688350962660636689987018052041075962569785384765286228418684293732376234583337818068600066499815367236126167105911735700072750399472722539316453923612611084182092887948989045374890888152502411621599077072671628714018847779976000464809618004821220889373788804289488233610881096497120594398163845881682943465238439983338220716915481983478305749538834763911069122617493907539906879021909496965575013570750268323416327733482761363714801320817308198451257088491774432204774658188299800803411104960999915676620003230426989015064717429169138442545971517741178010823445304412058669189778071894746447569978292461839138178473699784663363854671273320683038669588201222869874608168767913177990687668712768366279172311822660249607259189610394665219766074426444890223034300195624924843513901489968061344447814793801235227360158808855703866091692133784758410022472451861347265714029679772965794535835832788507360854859976217930487000283735786862516662414602025623293473852669603660738727789206020282139943380367570793796420236989300261853350346372256145832501350882761840142970072301073335401657425105735556584288045457844089573766054919508453679304050953683539347955286337057144586317232770682047291676027557316977048653327004370899788960134300125690029333670355549707480718999134321465088632948273385873771248342937410749483349585266431484219542929468457328382504217133324473820254346130607730422158348622707992949219843129483286887524858194896289458387068387730798269524712329204844923379741867568515187166351440068778942055697354330834300541143850968322146638612874992481239869133269661173308180916442124326510711829889883738348943186003373743748074577772094438893561623951488022876269718097586888792262286897194885987885632420272584000852377742810761718572623773326083010771498513501969141587760329545197126553618419372934316019447501956764635534047761997846300257795839003840692068233295331140932345787716376708768405627567940743524047303630576955168631195673788035502281721669123926215913498961397815599195524418467260479445402857032991033064996191670344629917715681776406355588049675551441064974979672427032220231737806256825438553787513924507642413391756691808634771839121194913096951030182667532167949301991347192659007483314390268703781485847407638841222858591715899819233339210861566219846241904711504470020418452119044381331876023437113087359143518138526897419332249862564425303152445651999397647091806027511877936067213537206320789381760764809916420125762991077731488200025929625429373475959428882437950239556049262384269593091497408207022678939978708436585694093350509398036804388445294138444130518327015187813227563450991815873131736783719363887082263688114041047838097512229440568988384548221802154482806865834520788708222746108885484803899574234659837170062895147527017530174906639979199164915891409622033493443412613783672793459045615803906458239847612819975314217611622778536418565827327435091219899721307868863065328410144262060042422095309277323267615312388003940565293851758411695488992037174289831764394854762810022097500017780905396424458065071634887818834799570161171337924291079174243031886987974474344797480644627249401528972519318241787633497738958073930843319197624629517098688564961759919584563462167003450362939366840132502208435817085899907356412182082164535252794115086262652301371208882293926654140682367071820970548604382136410623108115362406157502373737062457432103674703107289553369523572069664382779925375397044710996383369591686102420249292357547586373012152270045987512979028592304041414755950294632674336767946198854199735498433412516106199441254877883507052460798518705329997143181018410712692325804261028028092688970417055914168093202361534651203871968955063598749841418902465580767856559179398015940414999968221782777403353007880414489099470102250081531096016517625280718568498022730143037171411177041105418388980554010717057859968889605030162792105546949429753989615901610311329354128047089513096703897536797759905514794918273520523294597607502589747052949048704803776111159312736220519462379346292258027440291522920059759115831752181587112533960432769851062943823484521242939791533430310945176741334189644601109975796918643874260068629713029207993755516864106070839279052492048268273799056304236738074092051168381637149036378451560102511385978007178659526159324363378937986138340091788714227341554858154977114763966692760076547052316496252947813161933803438670762695723141470807606373320838646942399982611805793096274211094568474206622837088092819521977274443959725918907626302075774429767340005901041360304237322741039421423776787363208158711494499185016688135285119885319586916238262464142461918024645994955983347193047644978459226581644035384664135594761781972419306932235557886561429514691998036889539669254137694730530596422918057752278625611153194871424702020866364485234432974882451073640832638290922068173776452613452081939729336014101028470381971342479694228025299225966031376993788453367817861098049793322446958955994430066336806375774763608610962913153479899875787511532857512258388674420810269014868974973849344715028526249919343041500863976162134800598243741387858608612555570503899441200484724052397836535511140735310894379407519834374279445116469284743271765451597467919944017588184566827742774620927358526736116907551487786082894991414434680714443404871730812129747364050027139090253399001069965920017417040104826189326788446301901668963011352576975234905584248390292081982593549626110227797661625343928145927185247122372350327099408578511171736790833370850363399659071697819234446914675788947605539800125105540280031723065601464281580823174338455905787764403033756698867474741629306285233358211785361648702607077606126174502590955990128724638853799398677954765449415965124068876005313856882588637333962411133375930013815334414658286451356059025871977996049210219866193807170085596005382360368864492080836736687867234449695473827267931235436431864867039266743077231795670698109540925841024711086591154462795249268391375423677745230634740283053777042604215329405783729696348091174174658028529280904641324016515616109430403709927031411160547737643308428865613393596582604470666314214700966416561970873367070040406989134028860288865408542328567146496207601201676448412885051350109048595302955774401068797687232060588929078431890078969639561410278457371975258555966510278804820613467325099564981051412883418202854319545466485723760253789898919924254948041206796403504698212078226838086854148973917040054526517953074035445510225671884209526045737939499369329665100710921391096435428768632656795944169986856517904083802288964188525808100096572644062015505269390042093432829178371746873601681425499699361103826596337801229433010180912717402227219834187373159639008774275059248743045958397333662566740153379363790990863196682629756519388361648427092958272140514997045960297545734107353657557144930009884763810378213697446962361118534682428910797942410589553773913932850101762710773015914198622805858891907759664477183257674558745526573053744053691836918446869485863464805075231496692815288568747142240344070282816427414953758872350802479820482621368613367438425730656356798665751151221818495978180893823045013129651745178626009117639406315820087841963984261571709785165202718920088057332260451044131551395056040161900538032113920880567108109593429289060574983819612797858484676470740255022058800558249621647753643057855927244650722856758082925402750028317115510451508998014735352516216285612053213362567102592783218240798643371991097340243430782569442207598055880092189007878960716880896884051743455372273695073560265982314788427417591395728159812248484440086170836766369251308492791825413509828126801578793345480092954090698513410392273148196183487813479717262036225957219841687398881694044503740009007745871129004437640596429190701604505057138570185155945629893222806859648633849809020437120557886048626595284009287953598627929974739749370228268514474909648843352303958811097183741312098078363872365772317472301812809798365761574669727218585912725286480161779675947960234757441728477790691999377931433572508228491897959927677024990287603597348291838814990923403189388138439129238188600140547882725212603134371663002300352289103007223555941464734070221823934836564692919789005858923506396373068525496706113799354068690794690928741276065208385608269391273539873973857986763012661941308019214779071278502927405967308867705452704468469303559738604776723806808956370037051905459520928952386409740411099516488502227277396752800476181552128085623655061319526670473840617402000009073482297483973886658014679997335010104723193472151072813035717370880119162545294156406645793096793691347250041256194722669378893546343223588036220897274357338968306926288071140722577517767117232001347773514708762115196045446925286958323572867365351112337977737250226242403711323616447938961331276241696745042905093140454985250285593338604944090822810489812375430974793705765292251389540256572109504038577295321728309884390813181311476699327739218315195438752703470683943286508340759112638113186032212758834398319303815751646541644412980849233281657548686073688537153867955920155769069916552743391871703549487349684137828193996908181649251210494868606940059315848375264905504751848980857587354929727497771613823859966946561363500066098311148896579845200917986579926833911257600900479085132440997571535507931129312218893954552816571360585160855243497726251925236590327804529248038240389075504066010550345305335458776024676216494121396434836974301054449465554634905552899637582369847736898876057996573660797292508883872406768250865560898076640151228938431812718876877938094982273087525649705032032354472314599320250958437601199430361775468572696553781449364086473423015263612111561750367502202049503023272907231930495736102845646823035120519364527604141009472729707992782271463991629109397741323222903733083043000790562100078473210708483247652611697724738956894162445773418355728919879705357823031941130002951429290348250407796533986933542186048377686239970600904685781560544375085759366279113436833131735897268968902398124327859458727351089560847833489228685579013236336877083728751975233370931030436393792969456382808660445881253253684847885809323607400753725390747976892321336113761392466760564626526373173503746142229602118946233165564561871116141789248115564746546773642278833127771380219058454501870561034192607398459800585065225238966465236565315491437893801783833928496896469415339046994920541231096820793853953822323776978456793845106751217384761721414959875449555625248255984195825868931896103543136764550224828428912678761207025434814335945289896588260601143562185054087770842595483752203423919184638236782090753259749359491080758236946925774159077443622449630576264001249128318991639060162154933105254394155584142956184236745195253717495160004907408203054655633225517393180776847854254177262701288301928495828066574235296112336861610684568459770064065012692305294698341802948456931957936714012004333334783672372329988603674094413203402875876256510088477176745359257518029850295061253066141848943151548403951657540572867134232098287059229532240990616899832434281754440442548940844108730331396140615615405735104411541163529765162282095535942476694147256057952999121274037984948523889544791977061637599719365567889417983926582514914523923578293901036423406172570139589970684795064699013775798621206372859646169026647637691943306752097375007267883424257662763723833422783558960602750053539867497225972729704632718995319650730776618801016202112833240144068969750643166362498325152826511710169204267919592393043811769938693188844993616849597036147514220381631019470536709259884244252872497030690544616926573333593688374053030686856094826275467236386793506534798956732337055207796860968452746236741709618802386673343426820334115862601511726158439557447418607629446903475073529346468684106550555963397943888743671715687934453704471997884450922990934432038864749069555080162836530011989408180394127813818833033039412181635407635959292754796600861140466752680402007545722387704437781612894942347427746084414336677857858666434891172412335088217355142910059167054038169150686497776210791614766666053047036888871724182241660091548776122310614534872125676411166019677842275307878884833871146503991476935828539477738833120973467996570381514751765861933910092653130831292507260529965071168425683633278949041274174654677461433170635029557985198128719647368016564093825070150736127649850352827791011247135544265725767856382764673649595279564195227725739653922916438922714965090008616664911429567136028446494318273808697931405592077736375782461410275362592117329258506517524787885906512401397885034667859682833485369156683473579775478657687450582055222736595552166773404672082171264603187208157879496469931616641999173383679594622196846992447393230161887538019959579974178627545715996676208431160626895560648440042589001992098258459275706759534095710702396944024006156062164804965549031214081283891731452674291526373359077594260601378907097807910807163327112248175729788033883265399059152631068332159556906506650231723127190060936009150860837924722603984331980651672639519156527304687682615956590074908211368976197120069700017239880148747107569039026591825102990791874701055390849751917860525806635344166706131062294101899855956157238696934473297557802978716278014086782474049568717792399819325793857141796868290281615937900872182296736558563305023440912108537442907984757256022935645268653114715254712751563317644527014428095826939871438613172109508262192532990697124791298479909448756142083993051890294750345600211895015963458244704524728384276293699469480564310083103651481367929365308496682548314076747413071622761361685372038167836307122671007049062717302654393312881139066839110754907177682772779042316428055519504563021230165110571865262232530679910935892700535553275273725739361686560098038063162979570228559893229917615494842320478650298200243379371196864246137080008737415072844440731346642379232163332081067079377677192223986397162369101303706783703211321418608445794132493991855413699622791566124056712415436421758025117544137833476419287263969723445240766340978974500969443616013823857974389609712572239597887675957650868123186814435240942718538809131998696677236961280580056979467591338612561975427540611140698726367806865273340064963823978869815149262048030646825017305478235837270068513049414821694294397041886966206910407551175479170441711638448636000723593422479551407119768336618595208002108033125097128413654007725113206815656451936605513690746869364182854836467711123593440191750953685903934149489642546908696466406345490898427021495068060672994839617992782402502945996952241416600332672440686114661215299628577980739688751908270292665797887605226153721692159274468615000377519338801612423204911169503871413852161601821779174550461492894004213659112688638570798072795608555990856868662059927274956664622249718549738791201301068070054859343847779296080541183513093926265181352153391083750918766646839127025668737283769778607069170856530623194616802067576087979675935392398614361959838577476914458555772323506179508911660770016996222818257096886770725655079693524875070342349308128810893940684433680370050813341868602734278769565160929385135498201129451695626799059198410218548050116829095507459882122502660362566215867753578848101246043114262112052412954146778041082175232464901816673309745579620218494831637001523782126999862779683941337022051534019416729240052727728780588318802167561032778696158887429931391778366100616009043786397448919410171785781872807601111833225018950046773259950847161275315023513446410687193926967774973748932780198335398355344817472839277228480455648361399619938944147812019644456279417502235411886053510899379934105164100782134107589686292757014438486565155957523486037392152900918762525508501629368572565050233751847385515682751488922201595832376276656256233105167721714139359830364855294510647883835497744832879934826133214824282408545631439588102705280667077806167210494002909627003259181319781737204671117117213177980178466154879929009838036460275067822390258314712633483295650186343530474141285507130256600172265277367555224320216394566237443597633869811129624581196186049682896870766246394169633500238190014923286122665289321230614879844084966861403711741112091817928578233955486773064348245561953308956944503886065823881048280563355648016258361544753838633243264492206934502292482042324603852386463355286506030513901521553882659223266847532963567994977699785450151027279498489406214453517235495980813470015270022140709280049899171747713237914430469807275408997672919185564532340257985591057989275397288041656947359294883071689608634977506709638768687213177310225108121359915106685801566234699499748139175838726714459794158074519050210089172508499325162192811168402925038062020296173756535136447486092260444639096371734867528196629915764807870986606746643661787910053304961330522801370831088598593091008587754229597232289012900280636235217933867799109672919552514020382642098673399841273704916520283994075420358999736032774185353657462864811582597716209588536427071222780933647910250953869641677869796332315941975529482767709236485314266377069033852703269798833568877641750089823375791950745173225213560899918589105226818962458417345426141354479145398452252202005646444226454919600623100313681333293621516258057108025116422235294935962119182040360847110705918215312512290336408628235885123357470298314750671695128389808393091987331651476296875092497626462135697417210081611372427660015542237131055205196510257515724642505021858429846107159336216586231797339571950280894725645894087649873204662416920649237646971142423121493234444272168686341094890099249026658029441608117429932777868337424678114110118033674844592369547936787752507554770324287747340697722457929040643460525395585704363204533368351882605884592353848732664784644465438985848768866361468856311846035214251526467552864415270895048278874768517407678497502994538028125580836908548305239084302793278474303016415815552238498174413488792202220554431278427349204153569643962253915838681086714279186052653330964847210641421719322709662734931084699517168812221991590461194650482951644214609345604103426892482261553404685092450005416382389656473183111003515497255934382455406352562432993765242107428205338031069989331384921248869484517076791779150835508678588830050654653613377052391416981723448412830290035751120411019857104393535246039773677637575104460883054316683013444281847553062817339937535315203231090931918179055924945772619031733609896318068652344306721851004289556681342864162861929155229510525291655640510866569747511441080823632676929082348254937647074006940581011959076074534189932867199303901389822370896280126676681431697108360369140153127819255305240827921287955426600556722278316180937981528146288740190419190430668638390491714969539860791430736234892807997776550989855579964853662876195673468003935278316079060902832595956372072445576761406143629007267222567677318749797045851457224317532035662717470134226773177879299131296052735753956615279124279090096417513347497357747667336057987154938095791670441778280950918827509176185152912265134975907624797420266441910394653268682647193174501290607178785288709739621129669045223926552554125574501377197728849304272101862771127832931523617691306148551964998553206951384553568265516821775212344697281300095934967838800325855575784562734604565480862794164982435504537918509721674539770395323087667960304880408471025270891714540832379494747676226461764987935836418575559239083985222622644969701004074300687244657247118858297728963382268985889246449421685615976086609541687765848889653843272032249660571006570575175791465740728659944249970983756884379945111879698924265646123179663301416451688338217572731848679329606794503573724438186403535147797198627829555034039397507994678314475051562470743588083785503395491069898584731309250665190548834447826117700465665697480020417419293095810565329135787755574320560916015134046890923469692939913547436958118027471694945438551245964544585011566486703944160934501722655454183570465947905678369592548393200637839174610462546918427719428959516284005345433380078566504083297967226130783268871042819463123346353895041182744054870980138912200185711008719824137824688092770888595529755912237908984738719074790042670920761543734331281083561108924095633709846316051178736333758363649926383475368625728355193037601346553308557296170186270831792963980887145604239620698626303383722735868614256155493886996227889585710554655541207973889149718606130214531886922117430455707839065925877714980718476094212391649655918917428312199773364905339111535549008998368107470136721508040143376419840591567606870732239154355665669128828162379069706825052917630985657811704915087228989941129351277914522086887611077689784046045339638114704954808693805115118851975110312514185084992815410204854000594370175544902013124085384282956630264117154768406552003649378997948397678335762254591152026661896739029447344938583906010987819888414756836460108863761451308052768561948394554374788948564725547001532373318558545250140792386592991828653437838540489154470587685603854860607915653061035622278742079857774189753777622665924482213111712782823756115298255681118270090401126835148492793558676522054592920340459883950737060211565967962956170009765104612524026076650154424299884092780884764578951709910421244566721169977361445627496880337296086100014492270172544944051792954045873128368264270197386941440611979247414634233925165742284837504471198924911401290655536655505467256022906050806740710526322475699629968574112083910089751381743572681010687447911330829071936452577050807656634654782246694510455270368808030327879408597330064077674468521095285190153169606058487394955955075863739381907190447842605250232052124438512009794539675995200212265465625603636509442300868345019127044790004014822049930252870008672318771438945500528642392175754138573581818480419447175414787318966950758524408610185049843501356896675264908129180735657349109577892437092358852800216722155276994782692861515513725912090435857032255394909234885499530503394710699693413758809761453492598384949402230988960402981720232257761154473586335625825271464844556027878382124428019578161355195751222018779095768031638358157525411601553884203208989625670665496829756230925335659439235461082611135935870876964387962059684764903393982190097603188617324339071672000390363908561632821465565982319090279326906292645466069687309781278702383399439886851848202830171439724787440592155592159142511838572894945363412403123751463971431468573792025750245578605863360729513488234108587493474508100261304484290147727810584741687242697596329172855747120255794596005075036777699562418423865134329474826381432105181590020308062098745999841048229180858611900025685476101700377913564168593892399761529501292654657512567983141722878726797643411665988866693803982433363033320261375255659121604759028287871395098147696162078647830501718472673859858394837203947371037467112358048400603293536861415077587044339501811882450251591707441918576884476819856442733797489644857269035087740943496971313814961945537057303403645468309915738765605552016878414122050803011136052476775859383825556502427490627002857267163689789770621257130333749982423303170661476911017747264324918403404767016400054433347176944985119755485608681429833137726258223643039647144533790063869546962480006232576321309726071698816319416483876751374279411981983487676499900975608448990524792706009146040437032826572112881924725020491519528244767588397723994466519134046516908555872326625431277005926828238899315134538990849488033684004002664759317092283387458383820634224154979628678732927509083564331678219908702767115574175731147081423052166753874944806676199758039288129466388569278343366665802878362932027371373139703617783920719076275794205077710788350864572754647007913713200799976286480982148328291961792553237613390122228268918464610978651765452946425235069933198451706090668821465678786223614519908431928314988651946805342958452318924576154156226424050375788498671492437497714703299545273705612570533576171398507157119195721037257453516298002749993206103072008771186653198670222688619700526211533417523711838901173169906188743954576327011494758517989048707458913855099569264330898099067852380137615933873799474135473524153414222273061441796087444487243613792642524741837015558035666501172589077527805496531504505410300114187191807665605901822268256929504491784438485953201958989234386350746561427472682779931578944785251095126750698942096024017048583927706634451146703966169950183810310425413960896720587062671702949803073596614207673228407263758520797559653096742896717381586333112325965921592092563344829925167978371484693163985030762921664693462551841716629393568922358125215658569345503025505031016170091750086302646494752351431067891423088005037394916572370193475340664834849165145822244263094711828969917174307085085716862830648065206263880495769118327076970491946398417745664879315775082601353865561882825142847166417913781218715192500618623519887015338945081483963359771823682732347427389260071087323042302601818682533312716810283431681816342425079642375554241130441062854049114033845131889471603183845634215133396493459589747488211930495603396000220554097078474189331913660100590766461548957282373574028322427545303617735109671619890714653130070460550013302063809820236844193040957838027647059331515985827557138858668374007525412104529450716361317588413268543531194202585039886357345099850736430997380101450662953350712692650568472354312949755677007030905025652429761214750095333658035798737955773934617701812266567759558213971423864346944361836001006372976556769325449302326660733635914985703459256009509258148710049520544559558744379925585270244655740718425844763656049082793490488580983489764792700754537533382115045208203547049266038876881067054438605846987199888982125126690967828184758036198950292878299464081963602423396805743098049353830832457359648175590789981321559508857336415271928977923141306831330035598319261604018506612963204260810023621463398717187689768452524837213799853872129931857323381024144202263082122998760083755055673270039007399193407373226033812534820699264923741227123834136875140966694181864045624297144374827763559957566923631752459652149663115220742447958803491035283627306704652080339552941902463391794846180301318527571886554052283270705092969960685145067378199075396527039886776276846135122955152362535682797849390427126884283572132175772140276113314666707103308726947979121316673287647006397212986013446360022399888950303305444994116906009460825061332283218370672526935554423422344385980262733273924000973825177264558988095849001101192145628708986278109065966744017072938278197075711964322545100669162672494770422331959652557684323959586376774272605500243167960062808946466572930697982549879632061958311145710542600722326565161859588779631958740484537433074149887037186666829813377862346444743346697667869716994107079060701684371258342707608245995071642114802390784483963670561146547438372690921616115757314444014107686202661497482569506767215996985755682524746049305728477150925774319239837564718319101382932234807899905184847477987708602422506741228077928746488992009074825314431882995316127508916940423421614324511943660527667224193558531917124525680063066215325113283382797000983163760632743584401923590420376807281270189153123143745451421115036250322317950752122293609497361658261252852820156236271814150348493213846625843430197193453300110657167022078336991113764403971220779125047262610358875512724745581491020882138715515232386479141613292750336040687722628739831971471160992239556915962225291793013311969533547387046245517277934611099110240780693358965274763102623170798827506476919739824984838475952112616356056283151936621462320906983347906544844504095960227583611179740362252714101922475846647591927674381747534354094201641872826221855964721728677232144413435824458237257423684937370145535609643294796652860022621635360673004524626371946882296435446027027143155746077806931617420754320084057402862484252132570481988725265120853159909344007865769291130624414839385024584737505070954868634186881424517314023757872125792560300886653426466773482828821493694454921779528807949171094528607060389522827711721662049402717581754895854766873503513046168999489642100494826467727503098703492181459226102703762796957001685427215882664070330714676715275441075579511469728068567644758402872276804646959563269340313680378047364140914049682165912933665856665178956591812267565975691176678971391598416446583341167567220770545857410507776601496477993820743520501963535528030093115850850364621342871286178871762516601152366752471530619966048902140889236786899958906862580499689574963211363696218813869179520878005153521701571764717598785004759604726637427384545134440817667096237461484699525248079852559305074815888084344961094348123981043598898203738647434155635030935854812076009493509199787860649181954837968480648125572449309589877619355128583854951905327699121881607562737610456302041239619068699442881266491760828791265182188546583832181226562063028021602111732768334700098050008701078881584120737220854269598211832839301133111990461701761021264988690407076991640261659335566257997762128322642181126311921408509028020496675876589746456970219800890783458633830900128952215049777645802627794081013471856878775892909340206419543262239218887870714963440299279609901367425638310092973932534404887837641032590877672165947201579061592667209435907573748307477420238459072437344065190110576845237359956275588636110460397119131746937014459053816914235041776036220476040388446036402783765439681170532300989446521498084617827926209770170441717253310943153691974857237598174553963269675076835507428918063204350837932499160164213536391802951575405104459900078125979855951206345275600563713698767055142121168249370238767067200625593582990251569372644561248445889270920559850801821533735738941704192631865796357633608084061581477995693387751661468675400056508992945658458271907650123530849229665068744782687609902612578183376494842901050000951656644880363005786497043451301595971171412099118651578906615944204800636397437643013767267829432411456065947389596506721377519822832423087325697737099320354561431875079953962794704982933111050993084506475150578845081579941691972465260104516730096046421878321295862534486713124404277509888886884485359013665210720326709129832511493892714367536358827995713934169940099898739197993935842397089496238635745558070743425419630828464275803517426247508760756675996772533428925214786334818380027951966835291116138666082014032373846649457406704715240628378981694752223798708765887410524877194193968049800447532091936877147511693606756279106585875081299778515784294856715850763313689574106596526087810687007949490089208802989925045827134828857300775110086774495830559686684312155798345189992071590611807775479662446652857059889613319318217958740915813967328715953291100851776220041375351638095389079084066691030895728220643864133887578692209913291158449609400299015748453710477929531852287279938105263196782311602691369329679680201043768699720885694430981445709017191786030474210023645247785728618052002434994102333150694030492083383119645839968213970245729938042991763951668584300350744461603979959327008585359050630233561461545536712639803966451205565602151325338271271894459404211922147374002361893493775433292425984709963473454644081614882586965463498612379616943386581778704214442032870410171815928419856932046896394515189891470551232228010023181199193414196892735889581437613211480940511990683991066795282723960521151538190164259584032921868790397563742132025314925618620805625372747615608627024845487497716227849120178743200551811884261370735974932567717452223133533679663128395310148404932437624443581351467746860060765552077457069815353819175393944377402614904942546353080268999181002467975815350139848870342534747859798505836047011719677637574224610410415332029454613050497850734215367903642696828436319259679308463111502731000496350583043400326334856391379846875699508547509891397721676759694252436589618779545466207226252097141162765548599897869938252832435509465446242499750122766603011780896247874128140614453220391079029664984821012980136006931858233998265867936012679197494434774724787339688485035300037306981720628510178326001416865787494879267151049378939830049322826073634456168829672017074704182939032536932949568862047678037442329236661890351890404294811754770437575776843373643322891168555202268509316122255552748568115303786758873334974485284240806570390156083449490502243554573303539629395554075728779783172150982839902241140053715027775842651284146731877214926084880483295576415792031299104637180025483101018765567261872622586442499667669634024512665032978890086931281026290128125837297283596271487355734281669136795646546028828924032207152640618750501885164387047280978732403297610790853286988437188277260305743497294874971935354396506605092945026801299952120596271765954101735126902620978367547453770047762409881258548233750001129341185180232075453234147217669312147122804539004619480494392191603943356146815020231765096294529137425372291872278297379689577538364457616048191538203830909608657472747732238643596207096446991974155538418525450627275875903962218123545698098596928053999300448735381877208027367046880921891759505434258649555128214777269715362950618149745928295372346481560254892316217107161997805955060332723015999327900146173260926490506017610269613852580581210474795813717320319845069505793619211194297583831803312333589592909734100499634118703349402685532161664314238774663510077747733723115505316274156062637870177867827785965246193507040128852907389691479716575573822743603932998877493610172883676535763916254224427855737272728892839586320094202643495046862185672141126261102287417652712250193711558328663008965015761289544979298070913419085070251704381588404040209625914105477812718968068936995671199198547711068808248945953423783327413185197421582909600927141741385897255413068107822986364066005142233203458547547079669730894516972020698107571900667229540282165495222971222627147482988525662971420991560991278550553573287875619078158293015565039829773881272430650433801656300188645592446202686571948422497323874427503786940976375319162175475342811752517561335930043821971698575465942352674649192229696672829022660413107694687606711496354177706697997102004077635201993185984282884404696356372248186894256073304241283234513927531015303701378327363717281534252055094515344313608356203127968419721815047681969491383548141952552424970199805222016679835106670782027612881867698721169228721651837944402302811743506630117972104363058417087420244471742630096492793273735286048168430235596284683976435852290644874107342709754770323173379768860951357416462243959512737425527847332168781012079694316993995826840833737903847579562059444667224872534570039753578276848299944672300142466222801576522720174582343586823847882350278299734780171324065348356852317275283008864910645190569080030809815471241997606979106145582062123951354780523362429606290199240443711040129974879347991084871732550441432900472227374418955245085851474283084238582554910757466439390209187919501333257535171193818785983589311053786716655516425381335705860442734396622865116114662629577753096438027637422008444049971742868721266717922728404658648022140881746745400424557239588305903474281930174084847273430560744534163001115230648419672088767182636773386871537525601981061102952147900523028902327051417858288646824462314281126898531982328391552432849163091709848836176126495677830232657460252760693989499344817354306448916740520777305105563903286960494432409894913599938695204581553618076422950179722427839272881233455139726082525034161818685707083663609058297688133414578113315142104487029289231756683280208247975317024747774868551372643874551157223905596711217792023559672135431842113933221015172142655606863352641475617581843111380449034751725748560703409698327028157303108487228361994451630038196741005958945147580889385031362474835709303030973284217781561016438238880169281765047049021481350028458848209592033602094371186131735956579636857704524852510390876873452496112595624357597961217267144356605979754097261280815263588053453714962916217626336658502029922037170863991624923401435157625537896662653927586256133213026191056131304018262674203438443315708792426565177067469946323580903180065485020753132405284211927850721849209730906645265405059935755335979881530082677287465567422017422581981739518102719176430389154636271780716353832870294612663019378945164528335284009470179059341108252540228442309196872550062434320635571510657776128420523732094139288382372772255238594918143643040388834006294825580337042679999876363290353326654761553761178375877942281087477676699509143853326604900949559579239086200438643668406296593376505825170994950417031920098944292957887029702051831304959963841750870006823696238281152182006674740810256865411396372296834378505182256900363353388664076285531334639443561185251934362847520417200587207403859623545273440425405430716843930150666990415276112942488159672097295007077151398645039681078207220490156312133534238309551161885665120166368721102062091956685253106299452054341953666720232576712893619125945391145362376174329218636631244874024889781514643627006656760687907127154848860409780484979182333759076137635708707752355385363311398076849527861405665016269460776476322899498133749891304020459889416530717839531084581615866458803228765842077858079621963955722446481366512765297655733258882289677343713959741304790868343803865738552491825895372803219553305915515236516109953023509139956013702618485912978018161655522168618906395798471906486724421195068071628354685753833900569321384797444644649405795166764546666357566708769423932632216273876270533525707102983701168640924685984623895562007780696868941617227439775608643831354984996710481050387540129057118908624286967396314483094145096299177374889050422366493198899801190623142988644014950234345370486300991146061627878711288720873794448600352595426868351239794901978625693751357754692741335666831054675687712155237288409535002832509212061137216841245056809985849023586430486763720990274012804705787450915053672519023073611190715444216708681610481354757972157395045487357385979836376677427167858735679356112382115871227428608484979771740431376007849159594793028699489360438396150984783170110394314336546419823950003687423567459043394204788271692580523893569656085335722350061301859844997299433154135904378788869938766109106011526758044872328262848212007238299125609843962112388630385679582597079674396855978886384606716229119935520810065539084702861663218721681106002345454384955371192303114844775503117181455156436408623412393676717548133195515656232708981459015904035827729654600197990907548059029459629177279963795363229481354979378719002563998585190438232979065504013517429166680247748398082135032650958199173397203158641468021082942251939409437521489728511431416158711548586281685120431484240893377578928072702185545566943288918043284693645532505724727911977302259103625816617831195327372554287654431516342352397587311104458211138889736812734174350031202566675851127454057980254065417512233336653687996949066591105413255418502991975135369294491049276430911970849646849227956939704350435935184505628076682943539159525522118281965913071420716650729333695670302188830533231233515666091949068333240258189712556528941652196521188493087258404160548984249074737753873920027559145236100179045642948033589703399970403753041675501737200765974432180363652774146178629229634000332651253800898727523117249976145268647059372665550945635569293562957167241310855788992280485316452186359296599993870867511893855132199461184611162533084658917934377766901951535567202914760296880306209902851087188379856949549208266948362098475378509914197291353095941588668628128844819848154938461489047223959194816056364763543993050933528519940185552789841236429189902943739871580461700401517986413210842936204173910763627630726808297899423779053520297603001066305274443074406648734634039337784304421463434918899594582266536398493870352234073490776215127840309187876187073416667924227641464057830604191326957346717653282621453037210042515760481166349772842368957927933979776639019540060785860008345095932882673872968185604405235493869067366255610598000577211521469270203446388738322706403585785756012620603863683472299627676395669834205998143019275249235322171716256053336749263694069416997838692010384275173022761562332309346250516994084717049797057733939454076296375962009083132371940915142796632091177139319652905221183181621831505726713385795845284304862243173024029036210174620088631480640630342020103099217127394915940818791308217274730436694092866151588353808499966533561361457946153015841038071781277759532209180050740748215520412809368231456976305189756233398500346651642960425195189253428188184956686065008782651254913757587141626521376101407225316902236789713508927355093603550620214539164276485529758393806836649724531717226369621397361715165980133548497151724886159312393726588990620462458792032471372861619114187370224537290384216462499122608546180798495525204709184332932359436695518077782528463790145942947615389229328006706180259415492343438062896529251794756985657962565195936425055626397393605957167615063963134513402764353167974541356861264047141048070606324248298215384379339990584307068570380909016484628340186064506505844558413041384688481324312195203475766026060412330799886739632346731933305506847026920611697034908691034525055680060053212370639274234641095864591330349409669898694459005735990638581816259133922352619891731968268970512118847485137809562464078836149353234638801648768599546224754518085240020413557062033658701319141078463712904010128981834742582774047675285602040484221147157481531860318393288163420134309102413387752604959586208562374625886077738726147975792770669147828888581310337702166248380802585658424984260969962080726762751357352398705596745183314327356622080649751648070960435961275634359864571010650277933908275450958760788418525887735545841486879793158503326120780573653916130367340084435550915949599553411743131188391538752680503325864998935389460066886597836508405722802901962312877981891493118223051944325535556537804277712382250990148594851582102891259666682665373956470737426547033524288365724489012756156395075922165170152309121721314118515812284428733694271274147086167041989485431602272899000871179474829698515054425974792022766387015499052885312646122057053707919064472691529931572203058575332542433836198230317115316194304625904616820513899435090099069755845993057850055850619051764991203145131642726119273029891430289485740435116339368216253668248876364671728884848476745936797403477498542685752412971423635041471636030675116270779430011477879967414199565704667290490954571458946287864929153715059059936296459026014777820557183327354922239551083867118489702182697059059325778295040940019902770157461628528571649423802739736778984039077929537227979310062298489787130361025904190435920386405994296590703140427697109534260704726582316875731738290870814868701697301535110351965361773893776270477382878177958468672103866294196213253323199812693345363743755192423745032140764027978220974832199053685325943576196391342580776484014898404258888658407996872013293872073729964092122948404022396997191698189906565155837314813523606451232547465630963076253544606051314156057029859999305567481389054134996433790560359023780332474764356004893990523576361913126426145319196118911145313927306616456218589985931770001562565615346030357378350327777374866117091991282619457832296707557101491669876256359893416547274427727770657282424925173225926660230592824762610890069093468127380060545311468437710366169747055191129185860859418589301578460647108046624035661867908203124770763532802348495366190020884430703341007747493570691241580397695655131511244259279434581365867851198718032690445939523863517128806675308604143836500533013491003571338325760623837221853317621369412900371779467034496611914113139812960582539685579452711614730875909777081329479377751611879686492709589071808543857681587918783478199081231246714070260980724413789119370919977744713259130158768575317239168573893149574645980143342144391933655568598246778479727084106759592769844079421463250365461509971660306959421085499516561220874356491926547397608404815529269687992560573758141677962301600910588571444151785548022218481578738327547568639298609727958017462031095358853973236470329962583356236935656396669232156916484910969296178587611406056749032274321335956528122527529715797583603316128118866898750007675548963477893604492305037705478418990497823716512709278843960434794035942117762936451349221176857631416258386624053248187568982038181425822278922927704985557560059783451900399015306566184846095110857734518103520057501521286304024691451820794555037447153108458883247695383165125004112765516451896054992616709065871536829360045796165977978095730241447373611440011310907271227225252415356547321597868760243922448371443386749120963049503123209850377150882943524951393051141814269166714805613415146882313249051659207625885215453138753244482194014173859779678420010232096372585029272758483017850913281662969877482145175014890616845435750952236578136846633408316392507982160069617078260650014965851881197688366527243023301320388932490879887207984881049415782420190281160184427009664957162683994955137131399386212003184321310211877022496138289409458851183595864925308568932908514323414948425702978845042313935053054805761389684493469709947723152883765082177952890435261652410544788703291216317637994965740531761024364503914079186623102208226622559832066913947575851564567454204858444844390305757634172607321478074774433344832764792850615114873072072872896633396838439662735177054623642331285975233573397456814731061042838739697712428919410175127376366615937769495510945087900720800645012334875076959910170738646833994072080188019741708941071196653516574181781504133113029887495393752196964789589583834672247886809689238224801900753110973124494243714066051451935592347734966120119590198963986790460287787273090625306047875451797501714117934188111767292193897873941349774500084147565430947429985108593796590005011042520652737531085088538082723991022188653631931093280096346875017328563210338905475891689753302370472868187919843534061044916271693988950797362387097165374636873543133696332671054066246438858787939498348458417341429994238109252077079099641757366110238631183014478263943385942242803237302768460622216477966404463004979903319293465012453023156749062738750106307032675934182891338133500856980031954799456004365001363684829781608009872423016365925179041278452614340154701973428550838031686912855385866791331078574759226088060008690164135250427612541822415304054794744394021521635182493631985744607455137869203249396260648040100650260906191206371119585215985319559988463322188233807870589504924070434367028360659369303150734157350839428527333823853098925949701030033306333450709364140166285164774915304802508155889307904982483263157946353323119151370758386723770617839478070564898463894624664473287933506967291243569974990297159205251855686325057055078701767882472573192878800400654512662901351827493114624947170160409065315959042766094941253289753294741756674879482558225584048515928150946284189862335834730764554704851814130880444670303245449442205747724031119420453334963491478689565714670621879844321658516661062840001674813066907470145139954499038039524834428135526362657850291381483527697016013921831764524160718019011703125633678453346806182569857860702624217791250623296245508618212067297844612263368124749568755210684752854800210507561055107194664160208726093805653044708269412926141039465573407069055574028217849217979845902202761918496537482304384471527252937066353673686468965901172746232640961575429309674985100312836623274860716071302971952544695457206867783396700099370971498765571814172253711836934590125726898227956351804981860838323426894936951472810075221142158640473010399213202053028017169049342003936554881381190669217345199486945454714847186232305750442553357695271563349077166988106724672946720411235868733864104815573548851063205194925938417346335526872010956731882232198190974193901584063713575368136322401561642661669553814795374755943292861141815267692463859082307836016784671612975535356985842136590221503590112072687545542022102111579117742929335694031328831329120576291544093370474916926155381383917748316055716719589430184850022255945298056852316640145102757045533948683687918115326669866258381998459797943445647574404182321468848083633955649572872895954570420120199115740401879610576626590098338429417389635142045906108001242624276847943706015214945003561553629504079741506420566235030486013249423302330746004229465496059936594733033557367489073628290366943532938943148243400602593181505261229777169461762445286434410447430392072108362587536428840519744166427579618408601494363059226725371550840698171318819908204629286303992472865731074621127395403095751585323955637547436475406759451292561627282122448179247755776048909694026630023645915832186867476048524138317941612671578302607249012370060112320204929643681346718356516302383310803791339535207057601909695904623883028437387970553019231788913644224740113795413841382343353444362514625167304825163601140806575593092168670806364365097597593082593388926020348612695937232068931232506748775114033802115333453485424338452274621982409720271657790869691430173656191314108160842795940736696912285887970604234199669168931265371469702563036476985103275901540862521930774182729799950617605287906989397017936085317184941108973390972436185447995323966689467768436849153654934364011791148577727424377156306557206467653551941536371893838119671338076672891015213935887276501024356248576959925823983586291444331497777793799862488946553037173596905712679970803677858076987440914544998739492086114060734835976411141637087979270467595295524810787798709334435349043594870381610682912738055290239528771226054789485716794328634948679223404483085807586886877131818358749180372637598176924186668505187077337737015056447524089667481995294403280784160432697968106709105335661922088977914057900060746167091439899876683223331962323411358363170515017746929864179103978598400974027410786913059738935292645325993332912301433490562007240547001716892872420455176891697656824686019339710655677979465171236684944685693110825323605767000553805143841297666110869050758978666610297025498451752060066412784803504712362691305305500341557807736837124759394379375900815188923305457212422068924261935622648290871489671206264543277039054046040502287638113989112439036206946415430896447255306512455668440836377943946347804994953918046093370595087816195209623409743575877860156922529752127023506027894502959819586912224242094273862546720652270308194767218330544245971998046866168034554295189495984346052025089949384298033623996097567763255089416413314412245536622342153809404519999166666869499207919216082575671475995662658946236649979402526846813400787476308754038019206103647444403497380560018220534007719126050370944397018292993302023231072986468783585767260255048581101378304850016743572596777865145223290444458455282446397391548564670020151039558931356880790453622900528476912438034278287781358216467308465295564972444477140521421284988609160525454967728833980573361727824321703189283376056466279816630667130405662695097496977778556230269365140074642486597740489651265201249311773860803056611261741237095969983547116859174286043729805725180660866471196007235583315468177130124297894720875793026249829382494245591128469029142482201765560077990034254306320333989835588971548141939998467326852395463272080695419869501956548370320150913018954978211522490030606248059113651202878637593587055695956270803829983796183291278478031351895975829021276355333373501714002388107967889989504149385021034865747271073874549289648153944162223521970851598381637659435538441925825646014559259944340937692442976995740376594886906988275580120745065684578560254212279987171602085430089518664137501831037608358876481446164934001120288039346403517318687843143700263207736104519495635162771212700422451448130932610684771957971092273159667376078576487685024055305391964723043586918331357345377953629709133133603733135671249011203810737214658517693192814809354873142657785337706999715901059118704190976635017402832800876984352245915069314789675668768764734499911313672432367653925969729302505746271065532841843598392819964611684744979299736736480430052165500685528012229158537685717545141967519800240531622526227546714730849349797558388475592110893537720981946263292867893699921095145988426561446311013477125197327580854927455385032322424408761266130743849376769543679541796720479415088281766202482618054591043686391923185885160338047473076631928817372735534416947133265514957434789472820353101949522756745764076484730750515178631157188884802979197932887732199959817643691983004473219287579223087565355137235078010917137727016213397391791293506246329862520497295326928429878625633501769597106980851616325533765830051394611087894147531673101041282438519434988816862902957459300206398033357709414307935446061860425459400537175503876349130733522387393921565505287910985809801061905772188683715971798806137702206821541549542467284012770543091950599871347620211891816182315893047165813508108510958640308912553250625368526326321524437171415832169702920505523644992847445521919911072216567149293018932230286162654339548173934768843071688102245962974617020321900327583268658224811181901390007313085107771010562480817228403699955336855498198048991414869468666713469806010435999523117796912680375918468711057094056576963531741022181457998063687057666602222392151798545485427153480776238827047135162495632074602705719089461973397352924563073954726229868545083990324431927745411877671176295885147238842617117251426019784512295764063871610106479155944683023145679687389952306549593418355247129861795745212016409616236706724543318871562684305066529571822094943972154489473471903794823504401235398188773899173779949630795040655324765944949293929303758756206691948944477623982193390117811481079509660144352495484648752469884964951357177934606216101047783172716840555495674572232163760332934301225757602999138237027872108528979302034470649419607911632191855164366149032038410235935306990437794855260153431900383551459266228517931927335189233351303173733121981157184618090075499232993641421478366050987519166374976550671159497700449269198393335366097739638634542728686583907242020714655803537155643416196802845650280730256755609204590244546362813934683318874740270570231590464479301976516014299196338820271264357020524684415897061632765883101501289704844301238874370431465749226585203659661961708023028795724993018355952929152663024967239601885699279866129826528401142256562064321501200672691392241677115740449644056794466665679057489409399915548605478376680865327860963572042334742771612168032117076761505631636461862726572424332552559208351401301682363941883773651034363883788887693503843565674688854261462163480872892570729690500505088856102687897059935703744867286257869442098870967281422190500900016904107634607646629947186707304003308389244457867728948382540228175796144579420502373916408108154354290367734043545663745881694635426154492561697973137464739957544362892328041760552519278851406644744122660754065703733732239401650720581487256178171653057547836810778771277513319322876906307844725580323133668794153506458984781820177927761519739846009535125794206762911146044151118159171870703327230410186593793679265990107795836914163899984332422336569652072186771978855316995755871783208193502556492480050431415977938199624799954801267531972768342937615857140632817164553359481368699128196782166001432016401016177255665387263533241949209781422461488860981964064162661797740442077488963517858720408085889588814168432260994481430550828808043514380864322794959089060248285067832510811511336928497075926090448433001574803480544427787951385349920090616362792845296997414636715924365204370010911002602988390999996564902747828886728674069317992546498453349938514512155929153128758685389374121018375813730616867197494220798085239238579676759374934864922089240040270785168844095960014738873637761920871439467649084835243911145305670313675693736096406517237436017217058477657060437788820742541086958032295836301300415540896472948115350682113647523271264199207650991421009608285750836977676015246899373096477956190765383510210178561336924993617469877928617452904383522096342410368389309826842284318236672823170736010142632528062879700076027404412424044699559771797188816902322525535934714423629361581503080935887388466608313094612268465549247186784156735386741251759079147796100232512113281614156533665718739896567708748573625259112357643332233770845828828625644069853884073358027142246452096668927026588299124266764269111648777109285038266629568207964680805103518336306177083702693099154595762515791896861841617762322452998637514272495123029625297127795468306396175104553243860975837666406706446091659328411519973592563544646928277934316082293188745080991613276284024443906871936864568217297455080511061872529178024498368921798903012714425760977756828781745676799034194401129186598476601789457128039995969356354145609678896186505221255664093993769001033097178202804579392264594596415654705386692725713849191679465342496288037734605231721926273798334777009370391766155984219881171992231339493808224960840287530436224399175403352400397320128445736701184927477544919293321643934457154908733354753527320967560303589152836412745030684817072084919938686102516301863280866104196705484727692633988725344481790700578749730430458734506270627384977331826082087727468119929421301413082326896911233263004654636872851373475964638368580673459561909629784693252468344566925861218792486720511342240357527589020906528693502643736628949769958070943951237531311690212211180409697047484699749210772421159344562279783573008597271955202330315631081306377780729689649861513814991504716308948868040880321231897529096614964308819996312589331796371880690316812268751271084411192418675473511001374272197412716961475309258640542632484238283472030267262877968047996397593858880895660096526260908185631817649495383891669097158229216320114207185165316152315541549436167667501076123735739307798620756753374546032776773166221664038260051182685736554443330504390672746636902421867736975370052481833436535869230040798762266689913747578747968388420576440234006029318678535142629748958230218669319814426987798429918120033111628478148094917722858179287334634245524768788751677409047656389206685380653155530668221908573723537287187458620889433336972903461073309856455594884303965103859441590398021447732101744234028818944460876896330014398178710232575818875690134732891288313911963783516441982669850640553644526627128864142495281221296155308099225627380172386116193927565337091319985958480007335726658927752700374243745801840746744529660823575080657270266516098216083948576155154231986849892610601387069952087645234032425053684536275123890299806044812654157942150464045056569195861190174779093857195984539574615327687428703505071407509863762984836743721296971406469826967817812904952343853492956055792459729724423957066823528836611351700453975547834113184034973600136023812838829368667100139325329442601319786709250796631002343559574970380051138866322457501541212001262208694754104521963136861762408021469761571723173868556357353761605394355579241922909595981111561605536521591097553409256892006907061497317741649690379595365594734269516071613883109597838996330732059193345951401157581003595697727573269655390109479265622111865391504549410249595643349241035675533066078125538163922043351377738549318096380583469615245128551890352780435410122983422037520476004863234747589247287716224077630830499256118447025100525669503806976726326810765060700639171822840235113769559033428417504612986430148656704646480511024972054938649159499898668493313321260935999420328048755217346749852009303685489620094315951046500578081545220253381141548413740505150503201814865178173336185210322733337966325533150805411673697190079969901831259116309463544258796736145171460415877680148906058641204797571570792964150762154915362718011687586494294853103380879779928806994082788396108718652955405525919606335772201442316633546689037756571315274944882267210328662521622595657074271772799578871473643751707119972702939409442195183902840916186845356442202939730291692831178439923267373850835203060250450110124866425508171353122062876823971434605150933501323746931622390954852216398118718911088858714918343169597019912980636465845100795277026089501659385823939054879365982311740005383069801396093767473249576726438954653409018989061972855107120131244847049752378656048435343699699679454540570571228213248107631149492689379516906914097436989471943459892305006522140138327643171030493368467963524141334481466284358349485726748756572068752938502181809760900246315564888550793343166436305917432731009172114472844985721348214216074495826343789175265174893862505191254864345998668906650592256901945952758307623628037970078745717030659867527284219396514975230567221892960670598445076677352064109857329516815743023853337142333012582079075840662311953759697508855690371172131247024908814389614798965990795802074294199591920793061579285288631494939327740688977607015137217356695944377127126034769145936852496282928872601432796524490784348497640264494444053472447966236661011812097424437057521330361835998088263814361203698382639888784612229095590439369187993874300010989334284048004216826617458835765132295305005438775873723443427773454290102416904927557271249692583876471359993872570544332920321820652663205122189193926769203555427372906895838808803129836776781701168840778121696339286075009126527514795780255179572150183138130640021889544806046307299375327402377756797737299848360096984264010185427649199550973789357427006181673351056270190210077959335042054972897707983151390615219475721867280914342499693590269424963752830469763596720141598603619201375911397559972572237266887236690454803439636718979611758590854444577575265002345373524818800279408092009499844311966727639446824200454031651575919920591449075357082553253151914658310980795555693444489115963251474918237868135800304813389070701463024795934435267733779603452667866649877445069930098576528000912516935038905907549189702158851817210428779265969776276901365303604820801898578451829174291043925046435832630323896708747032081830227018758816073060811170627578636431223019698877076360417593907519419708683296879342138335452882024509939549371334516119060756563746377593056308398130769234272151251698112168161734560790553728275175525781539244802013733851230043145880181767278861394565386487552352465628199918384852947777286597578978926519882707422478231488526365730590858217628457783200113715170753132772948250297874038099849692604322618383858037878131414632420046188496655183683741880018021785361542245354605701747961040317283206970370661761169118740587531136634903585269219014998258199467495667687081048629496467516071384738143669402233480656044788838364344386443717374153413053332942902250002572582750959434231021786007269241734384681296008947820359259169550378223811565983342683312662276686720023772544894040183839958074971447258293158930163340550298473475137991207323152724163265966576819141595139333564014520566805961204845805178201557960961800706044546468106763736738366928490284898400722971615148759245967701636588562886831352299409378818637908589530163878923967091191380209019955333627785749232349306431411494738447218380233750136746350048991236990261299242256723683391068380380926090176361069251978866137601597868515438455504794973735391924622775567725739828374268820401429810220296305020646787942363689689392535909420492328203854130055465231890028253529125697360372688894522626048641488981318931479052338284850714178083698873447299753576583542331450458218804617030142109005317162314215645007372549577957911915471545788281155344448233498867916020726497664997400536302429792804202524124117831175114791144829737681624672717981110370986816381398527869868593081772206798115405783029071539276847407410887222795214353060461316314230631353879529850625804452822943871051665996052539693511912958041408171105720165185976409212478496351064648447233032595509397731036948142630636059225651949001391855159819720064056303541904634638140425945397361058284012006369077141841766502600178523280131153414348882465580145524560648365254109198815390992450526644065753061194168962364758537721426292273660387194330315180710266034960801844288118547069546265696779656388926288829623670155022568892527513811815297330594224352254926650228183840241197187232581760789117012038450025896545787357818848247883292476053015437734712900689361393737396258000132415937484359660367424151393527222654199433880679979534545519307608492384072162506823205771034080257675095110872270605497661970817083000778248566526785510725146997192696824207904825624758914749251967628192439071577614788297782992256020354021369232439503101075108133579962804410606710650701843928755311614583593527321752026016083415632701230776630467878364634815896819156234555506348338542009278794906821911026521073473759778271874231950531581701600582859543787734464811250586313458805523187786186648598107060228961721173662320385505195849217810223300871399793181208333873473908614334804967213587971828570740302943612870556198170455056404212045557327283307883461815700997153518600469182794368880137013096944817263000584103051488518537175297918250392758366999397921276376026548544759443287391902341588853638570788260897889988762197710384056714589716109742583176680715746908774481620926102208674161208075839968483596052724249481733102449119040826036652740312639440350501685705389620231392223003736075598511328673325261563355361659374345835397698718343125602103914091800691277162991917904170322252476537755845265720126467790431143558025022756055400201208528002426240705372940525809720675042384721548148191842217959803094793510863508432718067308580526964631856243479336525783995848517900152046532387338251473442533663817125451594986070217506890667720786292208324828695108561141795746700618308744084895983258721656219129673507893878960183954856953207927740386368329796076928481707572496754217600660802180783502879002399546150774685447829041785218741355644329723595039616891582377730326784579676665862865519873896050859203523268833478435649400169247256701050342632219102124292432710991136400024004874695339458031317308212888477092594940794493994775773204913707954125260098819831922541447779941036527316831050493969023459344334495748067130276879008767088386485734457482473063306630496516792474362916390839498028920906229442630456761488055634582740757549053275084697812415791955092842987820734834555548335468188554493484071290917319681744505810910577649357406392126658514711930409452368216175965685544708054797677704761676320694075766372790479708129028935244983036734768318532005144601795003688996792466235213852737529656684695138386147408706724417356579836185686865982802363554212204231190018418947344524437250646896259255537562671222482252931207798573720343427599632951152056750593955913267739520572035747288156663428952796089010024027587021783467380149395174553133645381287090761965942239949727265689241246176849820958321669239845754575421737533397317874994127020274282304196058567809879724556308844331532794287077615870799266217169819071027518311609994062724843195783575980029346738195979618079996174067986095317983470435612706391115220273298417023649904599133418820957692849864123088962495942099622872977650045075782678706193603099194313748645023328575653035796208294595264025100564562911671617562522436440679669275592227999739246000520839676922414577700539853655155010480424071370026599940910492343931560379715318737058988476551926089159975148949849878387804570891832078001810110491241844342689721784173166660647468836567812374766467340673836411591244119549073561333946347921056092791748286270517783030846379034151378408081809177946640506571962720637176818535526492594393357873669261505019588851604753803762676077375548599859274192921863467416580572089991579577195266329981810318115115150536657340382141931067953283190674040961255340002275839273166611749718432245579956736150974375083851828204624956516969368249353428642490906723004242951078443650090035946693714595274842207987915775667369983071602651846600669055779868591111620697341251370491088867102735618384355255435110036959858190412578221371595370106048519881199810485265959329774680648028083466432364691422137696922154001021128638507607690317489901563936606893581408883510632065062138460839719105261899984199281857798227555727535461878382064343900508186617809616318405364743568398059265377278306360877667926422774467408534626718251399026685160646319825334063827118672261425049514297161769881705287153354583347506768061524387417680645547643396769657414812167528347614155043650720287153232505573949346059138419195764772555946943679385241113273524543801156374575779073364501076602058738912141025098857810404348540595144575415471687612160331945635752745187522321492631228414873498250078892092034120913292481822656007838787700672294477068194802168111550366846709583611925023111784287281764201308047548046797483381130513297986314354032174008996619011728135657989000792881658900155171466925258007356304059971113980490866442149063737802459584598094309798937344595969858264168919969888446629616960714072589969287365309476262067419412390785825983992565746181264823405474826438402176407316416475086397334393980270786566480874419278793933108030133394011441585611476702458183716708932944259282957459131248373399094915962939284457495108690768422146902078056755891156832733204174629903476451997917589718021671053563830706333545100733482365638792953735264048763550306433447621868215115092890952963268386296992890743784098230999587395104907357586460178952600396712111261934030155758115265314308017773783696356154276656029599469257269540391305725004921842465967604980089940761744859729034540177944140046801556092199999108708959896745349696028270969183556070007910488408067764083743935443725548744265373981361371114107661918695501698406600009188427271864856537362938093274225531166893209937029161824435124837473982516472669132193323590500570416800183205968017323255097233260316314578046590208057293159809125521294222267530055537769754782482031504713649130581462928117702690693529984253904771927208360961549790290495370075768299553235024145373707015160654250863258169275255186801430336549172120215076230057554872823287526941625079802992230915409858056343835025912746333884256370592314635544696698908511579799345362750721811516319204775057026403106558059539873615779925225434654299135162304921061276461990143236126366589855412887194369455285067491995325290668774004976098543797770278881502438728976401142934551472749212809470658633707494622942458054072667680950726758675727117381083523624230800931247103844263240818932440335594902936080112951018174186773015986787762143117574622898991544049783338106645869018767485232859546242873443452727104184524338132109547217594212917478937454382980711885137590414617662443620616967136378107390591479700118459058063661307270036296005663698394245813721464159068577575389735837532596942971316526298172960556013520393145654215837538078351462343827260992569669088753877987951826247202895251212162175398160865070657516865719160641691838043173827930456988150201176894354839499903193406798321360865458777297040238465664806432668347462115991197170998096915537113583425459662741486445813931697713186472916708208267565790531062379507906809219329687125194633773135935208852627600264955019528259455112395976508011366289896691689263744234972639109339037554813592945602860014589907484505256748936057578568277152386510500550935988656376142975524075017592584136139694075486486887742774284191813927780951124156604304358276335548637448991927728608540546669889675239879538025731178852890169113883939043757483812064192238993632434595700891573837841607702066987215255652916753948221104500969435159804390579770137220556392754740264504589465629705405268977830456893534682235025903879181945026748142828903887144430744486337343892711757497730706942533550548314213273766289759993655848170893730140576972053804157182929835358100810704995908860483341078623198379895468169001509254973049657130647406908935277123295623365551667567479358243821578688949984690805076513828240387040153826031894977218217460380163074579451811606476480997070163775613087467642542815195013904525837534641600320533313165632210971944713107765436981703918989233056242773975322552240766032344243292045166068221891676368724660749013352691237316400691641679727601522374352887557770806013884935227895633181543237780144068622340135053405212375490044328800668069839616629365416780002422676938179648897011466711158433336992783959675618991726184355980652083791002209816150679287552325979683053003242679722629605140454655565151459143619022218525917685812816013102665255030251316741259626365571231273535137652289913509138138610675741572443815533900111970656514722319980120910091980453819641127993283138962191365211985119518856908715625854162138874969058978971665156799143962852510739776325943282439693422127119784251903969663506455831006164288707771553114873805095503755575303630206151186308278978783164226043051985235571589693199060391773677834228998496649254329136167600118334381208032943861159061131133580284026115103650814702069191618734287120746411345798484177679891245434244455362962601612516521333246419139603016013875592971536487708526568819828561200444400524029244435684862222588827155140189750342206334424981833606962907381212956523668712943630809418228349166726137201199511707280597211176677684481349329710851041380775500088693951148841256738521089746052588768616968439729932431754353565575500786774040912864562482848178080673764430572043746766786007677709084170888780077077075986572697069085923428317441634685972081488102474783104264983639015307981450675807510646272666827131297935407303585989824543732913855662600668712284972116516409359078869156396941881511119693172419102905755557683596177350174356381514025411380872607017346454051284471544442377687142353792058270329189980635576754771630533117605211242066559498678167052766717719657192872737354241926107657486092036241217381403462819395957399027764848415905482066734006224847466606915199499699036604980612392532898208413645480517632831743897887517843147447888111808341710109560972959250808998638272250961512222136000696622725544540258012178598442699389466783337420766997599070087026712512564819429789100257568802391886276903119358903676548984610950159713003045501134007254913125717192204390255669481363751520460130470866461437793085886728098965425724637567304056576861614109425925650383355813439811235081207095541975504875532736778821025017868847353767358275972320346508977438642164157483550231384862638368469551486444791250575698096330579168815674984057569783043441703022023299203618307592112906448992071069677085329475105524674913502505164311689216750604068166920160820893337685585067775285259414278538975789146786559546148180954925145678964922633063166143052841679418472470881916800997980146928018572603956451688299694880381849934546988326229984752576294519991260745878736607962188764845223046246488188920081519874286840382669981618793716801313244147074181326359292674052339344027510305749197592668107568256027864093610505232742377628159124953725633342486646272707392578186152150310680377637662551415176818909844030613105462156899221843206251147331883532017424466241769222016148951755004678784370303629588671204786432700404665777326908877267897279385121384275313778359186934695562982790276891070659804749491653056715225294856099497172660451740712193669537296985829110123959875620335055514330946406117698603270241607083879128278626921591505197513473469865428169260544593088041381733606583352025907029294478778357320116397938623783692522994003351602321636636256041177490434533429264991458153914783482915074934680822374514372228468924696462384712181820330744863333218528462717052713675625189777776111962649917564881007948228756296002198365403091496017170153307933146068087978279569636017715817542312912053009998693028340328796614296115465792816053642469451197964869458506978620371572096336479756345833039265832935137258141602326614234273815392592908199492096325906365575842722865867950023730857774220983970874817250098624013012210779413177027268023856293001126428976831924873602146308105791831931764361576233743213131582279733877352208344685195929604619776378581139253142967727861608954018438283043622810697282456762438474613693541687057654858943412815333014498846679860949638613972189139182767656635145912414845525903215275534373052382967586974556783458423403246011608025761278350466792829453777738484025656158572801684106402367728849714332377235305847901663100605139419620946586606879158211662231566018001773103241828588402302552544873503688393918302771857542184586517125861505141567125745438037865316015379403858030343235636114017278216793741127830814952810126340197329977779399069636607272414921027811838703595745051172137550560935222695991967948462524437540817889550063441458196167399962694588224666057532634604652928714578762423180710264735397473102314040034733884533724682618541941921992673379308953907013902754514005059255925939148519064672210014998565717138647949082464912573270591536468026966684849709658391496206188990957042849649012815793501162688783089581206412651488585480714125797281845318583145581333576723501998768810678766006159994307028181098732059774590907628770391679958744378671495575925660904256493867973920294790212671316438841262736628225882177296675732152943662714014389344074205517896472819126198034556918074942735179824140874790837162202775401856782504138892101306952084181919832137456643499465535858764542344392231776736585589506825967796288847895375187653983637392259061142727473528350255410427688507443766913093381789660114462461450420146405072439132771510411607419769238868562565013127979985889064681415422681971682186688335659344042573368688762305035189265629796808673318570607118582985643397434369939837726083947418422235909783437981103088871673550789293498162184203439562236526839455640076609552082982432288602671910341584114450099908889683845612386123173520631838831653101438754737559065649944261242751990443525160102323083086434690020617248619166038117760893225929712009726727412447406865050749585429083881838985802459198669596175878568716408369014482552243374141092694236350674135827789452130431195988415299299863676766883285986183916150169564883895599913547810800568424409870467106396259353822623595957295775930832987461270647756990467279591714579838377810304750100997593213235559289928542897105204887180172017762214467611582881348401160237774299716551593530725686683305105149643753331442448236031435353815723677901386886945599027281521553099911838575889841337114219014287944796893247065209426346505653552354648085673205256814026171282333711010019095182529450791654222786093882778941513315629853725318786264677512525529364704809744987250776515420608713918539676599814403119629841637626518632798658164999779028089049663075101862784162536573681696578337730946501969716981386938167130767295944497866182800950328234651656442635586710169218987480866911388277988385318204417241422179697046532633470330690238761789043051566434296590991175517172819639916155783517201131018336890216147461632652572235708336430077453353546678365626161472190692149562502232170168410357144327516055285353130742363832248670931184512829016256362007296972970670069574959581636571212066340040152841093760749446584133364055889306208740120929262049296191493427939197337916889920933943459940148889877986615959313918445304827662000634461587264301835277545803247369019676550405326493556232642578116412537747388535134324279822429097636777704826563110601807209629448249349790567416939158803233874498419441981249607420911805661403090990100705488988528928005833320922353575931085355760223664238382742430667753362403690060939960890507953122399655983652205022012119852087854341654824447479531078441881850519134086910489675759505567096288901503213783112678080617078044415053504165659046676670803709075399320893151302126547974499552831145896530631697513312748524706895282193211382913719630986987370820980591087363278510354601391747740021563666328858877086797078110350054314486990267996031445667578666740367431551075228006174168410244167470423998414291382061249291917357954967110203788815923795420785236937974285905529785951816468407763098824384978495312557706041778833912793113464554900187717865757685657243407808303836865737149642694807521957205779745229604036086107068721992344175439237845477187164717459588766398705066679608483830791782190065855457113750222557320073282524558002920714409427371988819484334816460877172758446149638306792714109251371789240612374437760380193950827225782097054825191149824962937711155226840903968650533478658449004688884199866778726977945178844825157731658007275603531643683736147694265505748227005875382011037626596702500667203393072005060029191105888292249119258437404908790138906832271411336094187078523395207536557353536334131014347059825528232995486782661485669046530531140505571384701263329993674376971295721593011674063328163267490796276287479297161861195188883619429779655641477184750741649948563937681335104300814778393693280217719319468259599949724872425949816381028822096870332487836091746895728098702610709203671804212759399360405324804176246303805357307412223590525430405012901804847393777346352377045226049827008422715039666879216513631501831236241891599717771146170166624376027080245695691364143507351521352993965325668662837769286232456155532560130748502872312434680470493535775623232810579939985289132146126311480915142710743553395730535087196398999940294574078016014773605697325759315331962183423872729563915667525478620185395178385872207571602146771940003873232726721460804839785888399512074255113877565276646510964456557002780716072247492243633324947945283001960811646274146974473412167772829413380690775883564217043621723730048646655610129124243979680269459449435693423867537863709547731936353679049502768460576057123554447429820888194381534804186709423504988116344028572627978776665985960882788800292755127158790818035902034107054947404101480613727023441145039196480588732613141086183841368264326375607859965783660126327735900907548206034599548162597114220713309414137794185618479528027505155937675537673665321132060418532703651778721791438782418114955545872283904326303523625540158045818464825061240048187173904528467448945374386752509969148940391777395480161137230869622399500569725532897952101368061564075454498637653287094750597123473954583086901992769214340197477116509460392804274251474131339118848797164118407103461197017819741446944657056710027125979775775904131048539186400818542812849071190169597498094690749653657619860952772006360440438014491226093153147206716011363176443991866508091689170369605781210280626541353759463951065933159282578926007178930758391954215850303321286133844608287249516872641884348597634437069997914064621674626935165316289474890843487614726068103681107223121880500500235605052784194027127752544700174112203979674825370640831864345914108262930918103581721900420611054665186080476547201790549411951370445910807089327281901098559322611503927085271366972822582773460418469110968911437227980463642709637335471496815620808554464008675979316142266447375352920403966423224082026789430627681139663545500728976126073840692525418498901358812858987801394887639801340834760823481906914991070663298981930856853844378882781062994685779625301057419628051386764724263757274820357091635960683599455057364357031490265453802876372306099371546759934140774084618975053940901671977328728600732304059080610323138556548263021476265192694148324434286524062215736754604057788053020569250949115062494891700952901864219871753960486009217055055843736694471674084797339462186000738178986495934011692893652178850954811548596883389915451528440590522532430840125597997308308206059245593165022874643421844568736485359590861180943158620271402372878258948338491015479173585631329847147836186490690271346940982600691840850861023476893696005305197453756465696190889950689907598235051110034690477394685066989692029867646233803621371790716333200834168379903658967750090666827154504670661502555626258861532187658412509054568411170469448084555706657308655557240162077946242708932864304669780054266640298879374484724576109448804818667313415563451137983599457499981240293192691079702084995425824698412882520048142026117447307121029287210385999852511844583813753550068486915267820284301642902437269377508781291879454001570261654157597181575571338383262942740676319597086549428722759839050263315717609723292615979127067489077587703767318684830152496176233414892192266376902569447473409436724036267757535187879960401354662834849369018280187246411547464171258438389474383641922691999526297913038143316291993728698774503880975028909150377594485976710197582015506022827470284085126973442278875296210584700211513814593131322303289265746488592496352237841053567928799985298915050308919316357807765316852639978133150621032417467991347821715337358582738232127910794281504883073599662047192154164576961523553674762847246872497890077775421582729792956121018889962324474618845487650430629874732939928452760748434374322148810307308767218400512992424112701270045028482074447321145522605460334492309119445704093596138353976831160448696262926900182663142978402408981420132145480527751662921076177035464474335846560982866587347143538007020826929842841956406692906128272945762863203436448414379723751595752093889775902390563648764366098029743319806958209360836571769533897659771673110723201662168718003659913126658075466067096430044664776754866659858212345187315695831494827273303186334908206206747202234247367543555981370663395946844959117740169455556748255037908366174404636711894269756208244279648581835998732515955734443442600375962069614549151476774669307385624562077724550495601925492209384234552646485477765353064046703570574121802352103619451599740181971187714293991366661788492055063698906799931374424053163433135813725119874272210701370817653071067941414898389284793398829449783838339526009205604368359985076687745816591307322117118847376586072039863942891694101976958676569055488226418057288003768095916394567061968049506257684226512024932643369611509593379207587661530236396336135659034068375407618656760285436142384149452163606567635415244408905982596009019384275368836868784474512881827470067507794097379147740863722462761092274558337710506274130555645670730512077254200564854726235732261590721522562900657728985707649449322991353624600828820078121030103906959015712553574799356701693096650936504057463060583803181977891622624992245424117713842080191961475047480921519405407242235429704962432376548833281330102865544656485503353244918390687512024233546648468990480439625092504000401251676613431603643927068684340350144538632504260864408974209432779219796000610307119414707703022896514466122767963208991574229725387899736849380747043860921269250707417986660726044513908348371974102149652598318426331846300429709108334044463609037047281034623829310922379747240642021803866061686294187712895142337322001046514172590751373494177485541253354281423099254032236599944341317790194202042278431945477631792108271222085258145832656639124930305398621522538114266989859403313041240324946099908365281801175576027065333735169617691807695708198076218192733345740884125887195359091870051610352089577812328651030246713203452175745081847446435543044346907772538861377415869993790050842014376998307937193035277897527818827431205808544611350131344549722325710530322492175987831643224197393779796638449234820993293720363190173852884981500034666453000414874089161776072071683795410763699464586393676516164425926719149451996677956854245890560325514726703602816908742095249551758295478205732851290054447339363553482468184995328976890795362589530410060331883310881325174405726241235389201696562562245273004747155064218831686225576763965723460803930850531885423303071753676546034028192343906644860025694425978704879637828671148371568467389507961384074355439386397959712742438300629070088915938174340360598228185039779153056567754070230027363812789601074212701111234177025610687139337383844769692840663402650671912280169520907766426506927091457205658954453247963060747350272593596327042077642297263995109671306998987235712245341674883127845628951651338140190789349408136955462615054166027697863638944387016925973451070251377665389699135982527880730225479913129510717396152263225607386498730225373861255644453162870052556110961405634727100799203791572694863123084700925204208703581930123975431644416766207936121284553815278584345000560419622414176181482563557837971116952284985889957210520331888692012069497061992784110436252353387676313097311039920586233638306182582276482013847640634602992045106331198406294616798724875482947784966812794031879855281635283417323053297158419578876997693554355507653867555319641541109456327137070678601386998200673475615223552569993608941415163725550037853497751932649428435769552028301284278811012052188770148782992323778258665470103841215509844717013342243484429439959942650705014808913342530970511214316300201603529405371071039796169089522406505403865969646268798561481999898321999246839138427716649477141631694330187963838192418469609392269249867018807693117251617470298742941352091048343112612906395342069837038655348402506222496362780063064471964284687437103561637888889859792514335054948808671323178694936345348451149415258961123299391407242389242220622726852943714368682174719471245700079287664361359072386448177476956615926559356194582382304906745338524587503503693409059613465485913611012173042005818588111447565832108104116272565776894637201566856104799319173969908611338673239219502020385242568979703268798349749173522165196072483036098608947718864379243666538118715136840099908997316552479590772964637392478126083960888703793930977202358149873792669013608403758903520977320360768690939521417975118108109425396712554393098004557259769278474277430254640142317565033503373291579943267935518108837865783203086707396619614149083698101925414249352339647675845691296528493442894038188325979071564363410638335445361959511586770145767851128667904688119065265254785196651023652323566251589753800994658170147978931544564642872556390254015216951664273466253993165812749665600200314706102121999537729312577408681677394824809938087128123790789410959033836499957914825471607398223165601537536090102949130866703371864511458093709678882815155925805576388383660999032696105754371909759281359336247426585573368976929433838481607242584286335507322218813184156263999812468662767691111745620693578196604406890790429741108035565186471803136562776299998748056857561298006721988869316224846096672279010593348399725615049020289770599949372151088066398315812017951315107889616882990391418132763495224695617652917638614328858922349339702660556304428842573075576247590941646759941285995904673123193446012118312191869019784475320780310654071508403314274232977727372286876274141519381670772493126632119559762945022608841702753251978754937979847598253244196485456744863374399604382930623018662395885750500261416449613742697352291130637676477087316837302087699969558461853824951027809027770430493229622749626783195738242016662950020929616878913303610914056917345048674764781095521875825107700631393438407315885125109286836685628748241731374290912160106387496273567241631089554643327320737114847777219121702328057520951475824173302985371405097532620993499354409709261731875908200749847527274253939320795221653718304679018629549488190919556500524455645991081720327551280328120767498631381791823110323653670096952487290240184082645994320674763035452513520013542745235048029475570693344055595725422315160371928743743303513595222281465400130197954327707807502156851766296114887202201317324397463737256038079355365081130170336581272671989558967076474149974027504532273553721818647279590957889408976703147174668542335826711142630460205253324594752236301832036647188669915087500655776691513586897056730364996466458841045898821083098304410161419503954558895240929935896975230467615469100598042595218619328272326166717091705831901238347189976123898232266095810619566658443687408552579807467100866717379264706166215613072698932547256623529496557051263888676119544375083392207207001452326266087888853783357893491677335652395924108817059911917208778136054568730904788971125116375982592327852379008332890025812982973546978552194187948689470283924239440885767059588619947076233471755067996241246903499869654566980969166584582583652611980577552020732072768612917839347872011041670775706543474222112977838808520702453419635891848571315956685559846342217909657149791369555488647336264776643463961478715072062263823003656536959215099262676540234885353924483430202340168037800301412338074366551775710038254488222200643095330860630638598049748073760263200623279253958030141525084180949096454710048109398111479691551126549203325751906209628928750229059983941584891611725638918438532242020606434653193859954628818063770044066993157915738060627904971468637392615613935195357565188507801150700309104498111474905109906243342993688107175642235233459268734267536022093807715456442216360131817197341704303549391448106084589069138825002710340411850185835224486247173294256703628526931006946075229561896806747587414639278285783231083447840779278120318468041456311465107633718169710495806940542762331724263731213332721335548712093078550385971518592507971192080040238006965834153517807718809348158647418932909278357624615859215906909696942941815034754038434435124053871502238660869517022519517263785602456016673880617397025914270702148063055926010058632623928722467962280962306875058022944273521686267931399771763056378597904332998959013167653510564676090941416484884796356950566023873383042953630034545671332666683692374197783665311648766910131096930278281029643168455430162505170293359079755206518925270979302034093201596780378727823623902301982088154693577172876938038438756752773731479195934559293180925699477903803215118779733916048900837510103913512149383667261261080877258812324852677355613507380426366555765010553223380045275345792510157040180053032111506590255512615269400879373049533599421285805945104872765524097176536387591341356778755484018002523403796473178165634274624715058590949080623978009881961257425279662419724575222844767111699323937790887794974816663719942325510788317802535250940484663410024962712427716369654965454995381454008716250513962353503161718044168743599505813410347982767142000302321961287119847250803570677461063926220057714529778627460829814377988008283485664006486060402626139065848695262568269802143826072775950901278581079223875683008703211348111416279176987922502008450125281293420198884268458632235099401759316052886068187207452071908943802019856160094627912514511759497199117211513230783169872771372986186286864257375090056554162989651451977412022777851160367148234153281436085562603235595606597202720124309900516131891600807077049138750790943667558235719308896057050395065114555923188509236422798621159603513577964238025967979065214588942518048115139862121143360712353341684422074694746869728098138661691056688540122660298289546127984282171819523556250345562942150516110048797916940415486947459875491675237797880236497748853731059180191599158888714323743118280253285844898526215884406154413652760979698798483637137066186055690826313330778140965757946383947127569623121977811363734675374862190379645078036746325052184122412961446655235977190695745157358521769189419121059954748528960633237033577010496059418804536015002274751230314352743221021268535607987286345561011661043852987367043126427659287674369090701407120832065284558490436870821572901373945089067372773724679896247653081154872596972061183288185586742188521217985414530193109501534680591432802595034192879288473007045403462749415113496102764684120622065566797882495864042651706406551557942192206133518806381262472280093883477871165537855073466939762533583501643177728430787057373230905791265635824590079729198742642203301278376880357823849844075971024585094115975439044677863073075415472682154301770650526074349121746564561768454630201908823140930728437234324296630663714243309370844400966084967766470738338796456576535496698793997543655102146319487508836444308742351370701233196441841444378420718713645072575828678620279084290630376614508890038946935882735367817763528994457624463222921259013546989859924600412966241415601923698895371711128691458158924624799516989483634849946700342336840154817396381476040218592400583603796699560902732242669038898393369608589313746991916072530700977517063434853371884126874720867500531946078047772447085242262110745391482303639189553103292133246925049663297518087059351178326222454452452462576037525501486482501686071889709121523811360136508332037814467616814970243606202356107429109013781190726910494003440688483540223363127731460412258852837627604290614995977858924245173308187928723857938697162238834655238124763309558871864581974577334943552684575373940890390505323234927531318600621749571936303284487653201979124883298993587388822306488756098184345638968485481549239140500401311816405927615660727897157812945675131078783756482006501875299068812481274369577670540582721493342487345531138589330363490024447973928016931126987207457873584611672491929478333197485399896697110064961545724025145899663645685713890831556000620454948916247708163096650827369343441955616992220036460128158897950159584359843515644023505404671399727155280583548914584637127593942027330289728751503333691720030717772958383626324008039353969209743024725329378067015547172377838844368094556513825118628631406052348011819033909138001875101966941201106743807011319370946240489423346509458044592304254456052029934952739511403761749723879293985087691257703318702568814549569002559992299680145188060321321073091848563857975040063610069931550345860895015299438362107003943215421574987211839482511426092359546924264452543886187442003217102174607733566202335474468377565127405251525287395160630849754161609085756524033767348715266258252973344652450718726581602773980206835013824706807907249909802324763360673872398761058678982407322667521938362324165165056070984673505016569378496947021568794733394158298156525342319145069630544458376834063084495239271570247229692678894808100022773335454484130069425623966087794022327840686426493336867602130222321337538071077783976503210109401907841720319984950287166924349959058827931036584675487577402124257196573419589692866329322503581024206121444586255671995201472950138595104825252554080510394694920504002457009600297737322958501825792805663156278434912249366575542185275840194845309316205539269668430437710115900638662024385367114385620410939194865654821028344633379792149714843365530861407094327520868899149077358932054621855242786554077624269365794012805848494037758726295880311578948654691413649621799199918145856479556549905071259801011558142098111926536905991180318191766566803662623591273528668933629348493741438658710435651475293798174208099245650334532641794129310218912843086839248558147533815433598261127915533453190590947047737779741625625454222898327459434474442325352230481369925247871417365477119297432228777526430690868567098350012030355493024830325927846647728081523020038144674091481966935100560156916277771847894457006780141230672706391458743636480544117262144752649808450050172573509129122976142621234684938080425439630800240392033097077312864546923313157611232971812164651913048184250381877565647615696354943867826492884594642212932275431510010590113266097062646096282782583636238321976185433839808860730538231517812043886242151821339813142277559497091995888062854139018741550998773599262395314531571798825788342840953713048147211232955131576687017234772806244085333460665584828762479057698937389651447826514903450302892150111647954199938039374652469868271797992838550239753249873155208247934076996026241023793237212487653396291045853496711818059458284418333189131426168113212618480445526532986706033878362922142078359697743228530551611629506826505025074549030274388162722606831838452856695040509915776082113933301841478474274931144761478102275849630020711725077828035585359512533561447621473877277806634757380361730906387229538562148946354314216301369910378695726882112783623498687467530839441753633355449093951249408723542365116212362237880181945737568193625186415985887053155406408911897788306996276385579920910792770470390942943309888820999690853209750208922795823245382914819788433103504778759757953885189110598256793653997176198971088366826747067602894328819156476437297271975661681481524520700779277355392992767767243157297708364826085484061146821012583029658427973878698220934189750942861930415192338370065574857002072586736284536773212992272789338084325015127625162286537887682604584925301640634210696526849471977233510173624384226322026154709643606221162797852362512776940105021305875821954580285694393985706864734778995176169186640939239046118508634631456298220954348566875680213132841398735598419229043233189845687157531717068913784856734438902553682940927072743828649522096630360727822281684227440948941575565437552868542238952443932408228642120814022450485160700468683149698522715556455891295762447048992250135133270269349391089260576183411715330253017379535646254879995659666671816652887319094385157366350791537704719675422008991631585058130016928171004632971693278372214994608404306847137865842467692264487700816808868215578835279895900017301748315907604132381500658542313235871643145879780244518917740032219690842488318726284381460446004343698292782849650264767725951704344166800735401283401403768499259663040957769054343428392225083037344180322788514588986655264118307802622269200735562572887378718764367508068413277937234892032209087952369194009519268001319408648572634797666869769402206847053157531531282477148621972299418687219170503277081016732201555174099916321009137766232440831219702545209571831982839231176189349828081218426063766554490352788881038159618484751810108790392712835461493155784822468546607255623074664933374986270506269846770003807591612817399992109349968614057067760860436408152834982886269689992709290449360141979064083812559277506767787359692728110307103441307983458425520859483342238760349809595002460431354227914722341856247552219135990098919869212424320304287469006206556033444927021529566649136780025849457100324692254922358781390169666680574601561984013789143576355824553329661186863811798328371066316203270258937609052226343575076442783591009076134460402919541331888481411967808872204519207917254418386913144780326706734113252275533048847555340604856531440310247518816792356611537973985786206894165662495869571978935136928584290813881382994416287639929025968202914184736110740648409509744821310525125517065104111411021702266467533694450191383144083009298195141313258262432311585803828894244359976516974875993664262804929195780244957148520020054256487203901959216749857084701468732862418245545974225853282698723115475229285024054571801948255305746820011023465310643077116930873511650286977042206046225178531620125185019793955404537584508309313919818285773938779725512240687971506699783817182459672537914728331088098146457334654608715573960915064493503740150547483855370847393315383873109640849961581684511685407840365647068861634192225647993701594646065291832071608313805871302885312794383511660821168388906489489181653806972065554613854681330848122947975635821601178843337364322398466121947216830416461061446649630801727629406825705442113592239088748769427560273277725586157151490876008436584076861441165837448887861515472918923117262768762864438856554959230985634427734563180322886541187626394409092600692692882558671917266422922649196776496365544130432775127762509860280659385308687361785383783766339873793691848198984771773479102923533441223337944856147652492097088774272518133034977695345159014330238665510765009633034364924134622797573075167201153410023295228443644690537861137612240134425602020121542534649159137515896553552100380267672538056910415244892787106073549174349777450784351622588192769134921602232149561573645890950633772427603532627543128402898833017556501186956517125085883570199711504745766868662417161324020532477363099484318633337387731735850042837663330063791693332144108535958211451212742060607038166259534559273379964630621569374056216316474861320595451053024171646542137259775442844543115760193535654641116623123796885498357141511295652772458878102912632318703811296450647642439567993542843373861720284072949971473606840959489981675500283016169456136799072059358166950270782246152223467385581238967993141436205002684178139236191601653717674082767319263134766765327373318379698378947076057428661646418458762446784235223910540799311993132212815837060143475137972214181359985589327877829905865567935595971886744727745214042941265955997491757642921270580577059069017076839353055824190590490444475155260930206775322209397459284793564546240127568459155299223192031253647942467372304576653665178887845357402322333610133005546943479971061901694011429857765593794954015179483227468819718159649721062502442384653644704623067251483270819020437439275304193896261553080501854092596383950024650992718389652140592326437245651473354628500890508216665500360185619597818592118918561257290548746580349320466998751495395206014360987149916898203254209782778874574260081651700944876679617465328480591374633220521322554712245202235223347685197146230025935587611281438378979239698200966730713908868933033942782100183588043974489560424557409928811232579957900414321886856743730401842776664462783615052127674896393654782957347122067048565689347726057319586768400388705462054793889045731047024792801943801620144278704112718144969426567346446297577373540187071231968822121689924032719370142048862060919456571863315560613623822263007391197028233620254982376697931053626638839429544899820849089097020413431801768266021709724520981691641826427402146456743259515112526783838973353384249143797389749798062563935651925713734346102200902559574799854587381466520234946106619804165775522853225191639392040553665503921216563804372039088947022565395288338316167819829741886482384664072524626494450372032657653985111362371966549848845222921021206637068375152403096822193325239829041346974965011169497603925779070847920918612892718757477993674044086225196204977682989022900285890154767310862255166760788276733475720239057662131518600518986784091786828188548053266804304989330748607860950822001007233611326251705823869021487917923170838163315175945709125720253665905856719636812029195208543899410543284622763954959196262094609764751125186757279762084144184264320137394873031215986066334627424620135976276497196153492175604683219013912940917451272202189691471149361869530472419072060837525826815530263322160583519419505891001876420549107621889943499517785759629302945700978776004597648710208840971890115646045549235083188787749615292555259177366491024392862567301091891557191452447589893786385712617320439325666421159691575272904713712939246004391986761022592952062230970461880125213850553385505680687916360227337550617161592776478007028240389022667177528468417338137315617969296911950209256541981986037814446536913772917059595658281068843096485005379659747941600739398379759475023953884000208052626541174151231374923350713350718844807769517359920912442190780123995108829201415933555849243450200524673025047562623553658972063176759584069164913799329653719820029162772924313187362696205396049357729989339780378103299884143905161833530925538908778907584333559571206353897516309457510673552069393746654424598254777410101225145315054656264331727664440299350258159898409934923514863628108101539009547442286353505975385133142016561455496997744825058694467062106872713316798378234516971622649655338550054730999935595504429261043847436246263496634823554301332910725898305975883518404424857296488158026681875455432474803641826250752648529871160279189430680641938730164137979459533358540744581453785470673356370248927202882533797927539658016454952601283018884198964405061573392449066867124677574546446931686028661727979889021770433666273464933803412102019425274283030353017085720132536084791705274074094095926905840217164987927109056212784230597458974154738788233260121320424691339051278676450841784831643699274267893441157852468795442853793765170952498222966142031676454575294894812421377380371709409145319335202687642577227223759738771684919790193555572122355974780360460718208229983663341397313597044078161544063595507355370954627865991664818028692604372254174436220696257117446183629980701672622926721533640164030707422524851584918411251799283994575130331758083912932993692915264728988435085530134703077649220045644862352888737924319496513386750830968413698106952641099744960574779763412998880422105941430097565411602050913580002452853916846420069972078313791368240985214359733387895537237291246921279222098932229004453230975002027859421585922640885765813172635231862538593477644558390779519194654974303328316609413659731400754206332304719189855438665500345971916213100079914933059744687036899699659922188448398301354289559760274254675257983583359328274415123119328731715711597923715998263924432431052579199762576126000117052238387411765017196066316628732211677694916147326729474232801990615099255441944518210132478711149072319112419898708111725433309901369483012638082935601161222907265071244810762447694839114305828708676939208575683668397251368498365405821267747637829914157918012894498894980487810918429302099269689204377477879637389310339377273466059380246571824097412712519434755672704966444072417847919382712915723791534864179816868786424163061855917642727353778719437264044067047301774443580016117673583747722209605584441263210023150320397304342492532244782594646805884246021946786708194137305779047985860889894973908515232156760149075623777771219921266436884131360504147457706572073768594805370659937535677601396846561132680252938629123885112871548811792988005113641502217724207089725115608750343338135970321848425003566443411898226984018735675234097160119665911516439918540341332221106393498586806734092454621486539692480546524795990495802371011012543416088100910980249294593768072230582635966196754356863720379514543311890099091391522271648129701892843554591049936389492949465454737931162837568632162977032700640562963675003737314799994599448633322378339073082078227467384531530351123700019536541462546911082245900499336003638670380632051163412156683920092941471681608579852745005500977283179088549530378829028673942066447653825498359059023384431587241421037633110559342940045873141205052464527412916809867084844149830525242653243595893467479476043571399957726514797811941597877840739246179817401304466894275886842290656771181946514337878565565350478913032502939425163966460343587897996898084879789012818134453673229730111674912707528147236088301126792360320494018790078612238999013949050717296439765500420758988142049843619758576908778801040002499844292862516861215834247256964123691620996849531459109240593460259044602089357960549648925152773233911123021113603580607982024536231728083222700824358038248977942586127261874758060826139247375939910527847151569219450040106248672613149858005567224941195211793982458415303581581060949368882891319886216920334944852411255789170750054848870029765637752581307369320983435826790198987085618875499160318810227369812962140773309352254677897754829649465049185769667621068554540945445319804618496915114359607427548068475714788863888850692083928973684324613975224225324704529299164980626084107211331669824944915025064890859349317830991448534644895428713665961063861051542908333102353132043737438170236366679616505669218874617275095070685911586117068205368002495507412824041356632117959017675979366889471721225407480303991462181435437629176244771104014421640773496200198820039059153160645645241886214052724468500483439759353402534209455946251986333491546757007654817192153671877443820560945534771061436143556485410622765800751538053024451175292999873975372186843233123070621000433309563151617228279988385361289470943012371625955701110280624433758582841773867811175775530159404705011305997924854898025395643774903058562393514567950736025053612942913283070966994043640563374396887961936653013046044428392544837141539704892742851114016702374888173454859073375075722856681274798103258783758005848535507858745375868463853818136785708710864501395452363537158229954462481444092286770114453208777759371550316561706274550094553450082138515808798656551838537997247742540331301575913539956986764732646007104187370831711161228572937941975470770429511352465347921138382998183524383108054495216884735992055761720126504619159959731385932570001441439617476641727734560639906466415910287716234688903381682929060614036599403103563504608949824300703026872112635840024882195211094148287515091597360145676696526730006248160406891032883663469452399483082346895669528431699981873395874969659592732936161649470134966836988562318437888848503536783461566400654458520479126780811590201496651705358223848669267759785057805832532653817479426377759044237622485365469504805850173545227865106111839951656295769017508144078738419080479617133740361183568290897173874593302730790166567393502903128113014121100691824895380700145023212215826881953361921468140307590438650106429910525206246871446695883861921928249599117603439882641583354417528655041502829919312400263398383804948531169310786635489025567854320919474311947967093600906735493678068693240869793931506767286682136736755161012484436736441277726856345591767376444378854505490108236979773403635754523438242146751028106004727524317763347116085434723090912971707598142075956471153481974758835511262590804171731221749959698726379353002186438809426730660865275163934829638193496746508867725189167673314612960686872512174728673881594786013124720337074951330343982945386625165793601391556399581789834646475604299602303923798284809313500478027715272894536310592127224843387879311162464127044758403002548791895179127912103881657849732115767357746252973253503084636668397318884085093691615676809029719895090289976867044162257305062388010029314500448342458149215002094215967204284660281653158994842995027501995508880902522001349988098117276580110219251664857387436429136047561999405581112138346384896579023694149609597383990697639212568176547662507339617579158413809603612534983126413504249508920805816078098371059820816074411246449579968693991915783474706816983793747716572187736341071975792149328853413294955151161931859991207863455370463806458385749453410661471690287174103931677394252878724288754262487811670319953256242584771194341899143616605531768472350321063496774512618362914282412144024843495107739648783454493208950579571035497981008880442138092751434486890179397700994552941041088817005353729014966323017770754144943396322291927216533087471393295942422241728799509128040317711610364479048616954710562518736030167198199523275083835638306630530351626040979435681684077966398113649189901132976538229707273768419505939596735364081920522178246274313335759960113575735219630726690917308468030658653748671796614000179446382976413901061337182679061752440509494785340983777377379476614162865765420860271760024488389848965917709004950417374974830327521719806224454594689800026057594954740652254330251102721126657712456928684422908892459272979834189019507182008275597469836390434611632170366509869448239652652837792051250411262313037957782718661863244716024219356793435220390785198368343383376117892975815152712863461177134417530069528539879681850786311750512772076520752066767589046813641058367485582484464964366475298547021714172112464419202756042438938669650554794521233108456888557495671791256775279888074280900317146159091141876642683524661402409455195252861544879649865161751582812103196820828210320633590432086237736485670592847646771674327898409384631564786750985220555546178507917515755557246007163157833337581953368962167022611953247153337543993742751344865131659980208467008019731114243789728403193341570318445527664018393691461067375611355302150839848198045761953327182447745684491358938840464588145108752919205427597427651210277220516476815236417372446552685082697098479344964003061389976551002986147690760030893663295168701473406301601788581171627019557410405909971765100443458941243098282659386586417274689244600340790183571384211854134483337077136642866239588747568323184766981558777440383326889422004320233575743859201708273701509169225771213338154422509424822306650662376128446368411005889058341285047964735534436282130206636760215493354098581685646832064443936667771364850515036026215846041409778752313741861002447706733278609726502166328319791519045244923098811338206553528292975414937263446227201060262496378441820779662978005859761571982737237931924393305381869845374603951717233619392130806006250214765321545590965898244980522972698544150832872386913789378280378064352669024343645040980724156845439677606255263649896250619935971226232753168702878365623447545150197388219900222270301592399424781852076297612131589446640327663488348487921464586098142794161554672571125195257713779506499183157564170415155384408027903247049560448806470648167770708488238474026882152415514682414930243752722382384374367523363245910834445693488306223296979530554181417246025143129073251989550320439500850098278467721764341601323238276331456026412438942649444121174317591824468562135945046167250628683245731539564136723363779219574697729106535600182652059558106780232155364926236095408692579280797127326507324172638309292440430989173714124526647823845978313283616403779463482669544324322230831275572737459692972128940011787782290142887931968366220051691417306097772982292982585603167376485780996534480096658628229261060106883168623003436338126551210308962321333514404050338653783980230463851640614887171015876556312448095489794493038810272608954811529826010270451478800720435736575363373130386828837211828525069388918759365321262642437192226992419294344173472083876706934060058609701545245634073371396935006227938459016753743838261660500335005526723126055658256907813433893924266645175187863572634995959766326451960085098887186443920516904343738984868532300445313433551759916484946637825371114926205973971580892476821742526424508422904301592349967368264837676231164181033655318202364080063978354102018280391335964199423067846814762702899785391492469242219387983569633656376165367532296225366448395041253191203248628032471994675838520104207978985277430810257094683152296474805663997089556178570050728344301903713659838588028771356289442720687762379773561563324429230264119996713340197410480508245681649328456499007982670856107349326585583951021975507132425931427836939730216167643338948832676577198413738999116317456101235763801079580319492931765025394735870523271294210693839910797130851862608195278585293861573021172210827368402819832262579775177501527698318602243057303833746651549734112480921446080282259773213935421634673593636932660546923533614278366341373790195177237399078051957438879818690125237334633563808253596493844626427928070333303782284677474467985090338151141627778514920900154721138441693702583975729954328099198659619497954453800345910974040970801214547282477129816886913665895679224606310868306427527186058758338900761542248002211142240022480472556241541287908605492447365940089056738174575665293683743558997931679392774714986674668749211611360378946128980416635077953893530222566838619839704264580797262006571399733118748377410030238129508901463409755471759001080536823428785474951735870619087419048658187203318050918335090450371580654468520758153161783857504928429445396514013624998885706750230172171111006644241698740072478537621516038308417487161649195062810020621924088589651795032604621862626831909080637618183475383823004190930802910321283413553359715322257255226729099095611465073606703956980491949427427982009845488187199193828437205934439479372086472526066866642838325216288463635952658676904497040864274812293447715942287623508161468428568458765014345057910397109039496283426677767762809373055381927828330896654988723739111105667018267066456997831389120417418310693839737846482742964960199877212544767076290453563502009657759895293802360124002001190193594283752195431305612984387363321817935724703222626013198882408559425998187048182380560474934342912053692879319254834625783929483805456616985236032740986668585551407878248646505229845575966897598575884583677417848936555404202399583870343189609049335947395753156555278930604098333073421755303689548106285807330424300250466295958653935009628867411016604774939226762831374884966260488907035472059223078746897454912343794889895505162249577958579589079617599541080990475075954621263072242623776365317731349775596408677089607132848556527144221058781123145214659101178270199396702756765784466832154139634354445821459107252325477878702548738591775089406943895622214735581402129532025686582615148621364976969109865659740379043937255838114487966196714975709136930086088639443812572326831249408307734568136200497413000557442728473220688052942743413604249305024253375912255850023044929777774147243861783159059662605655967456182046830255823665480818849001994077948935630330715721917190124126919526800643617163004532406383841470986308131332328228175463308854195351956915693346919590931000366030425430050548289606492912665781771664860690944639951816168249461603238017073678871927074987042916125962362349201905147967938076657089449465142510166942395436282552154066377268900047315524703316265894677636342784005731255966876350978033597162433252643370531238549816661736825662201089243447870235955404983178764801167027896189837822975000117074733162280127111974618528811404203023015335326676685882070260399901257700518113728936107420714824950904105324059529692914435350942499477662548494467268297951019862363269479415360091703216215538376277384270949873744808636723351373369685622417070582839129485767919045289738748231248913017824909620560652253489298326905498708886607843018182574891956944583943643232203166002491642406485596920608835373526611358411028706970149646341070589209821405630500997524018547141329379299989619830773828195979701776095968077786447309565996787933062763937242666858592914452184230763221564088258846656248671293369627320464431886299982904648629575601718555299411340485316838811527286591768875726838270466694886080951859495042093796765029420013122055925265403167142119689593244689241197574295724405127599394192760266376354160318759071579207248575033748196315226662263583684407267827944549717678847695471001804343376631876056634917632865004019736335213991913940426419525702730383880869008511145529537787519224523105185528738698067757330289518531252303699089906851457296203351320341503217202254236581841231383025826669528017098179156238192678453386083111825713252909772785035798892230337452059337521819920930219455626344470916959072649639323021217005905337311763261236823913889372151167004780000102745423906339834136921265567938456897727292799528394767759326598385167682336396678446008967228241647991353375309048526299634562234626016460932855503164275700624672414966225607924455414924441499410553368979157422382778375094388450777101955209612037440816563767736333609136589020103237395729678222334695257627515296543378037386140523739047777886884346075028802174817399462549926881828118932963859457013470116236285702732922456330130316756589252497391298567137991072210320618318765835507990171468207367010733584111305282113022944368265387035812846352400671966267017376273102930510721001463157032133826574764130799138328537574084910987166968573168924202780517523159169451885561102370218774728617476481750875717024017592219580561589724736496196065091249097845164398321256833855278533830491766480056704022024123706769926721766138261859408886408131750883685544897132126967771402121527922116301342719307038443447570134532275985493158793036183315607303800686719269285895796968171945515700058993694311181516468506252410035021790049225198445429090260312136829028553267129848019497621260184678119220522025718446330156492937699319367476665266325036800797320932384751953942699421773321803626837020990015600233700705977414879769668006728174543296989476725406387662311366386259593899641600739923875855987852218891797515307844285399266818917562834815553349639932731276911625865662620844338257610699460939563725296912520470751765930116379370203426684614224753177966377973918757614592911189801850897730149037635948366853993604164181583042163253346679013761060179736487008380834874839383716306062219956360806533382318181274530256823810244194115115683894368415352370348954879907914237819850591333109944685733589600926837114258253038081009573066320227959538364401955931731066042625272138178111524204835557298207742007206336587182494621926863877739495547996919571636305095884189570522881620767393596815225298919479064765914673938122890695414751207759032215273271499729747266144304488994283980804118299754608675537786543804325339925354503434212534326281616716925437616240428196533486374955316485318855323842447166223451298746212167569923884303857131239094172721984815948542838056312152530041067118676419979252148816034490496244989507068917321637814470437080689665007197092872604224681683569465900744661965643924553793841156457534954851015086980497533244677567755973246937441691888111787979038692486887980450322762211864977134412067744760737150481241141634229299461182546991872252551120835900095211393198858625180586628858802833262843945674961722963209274143292649936833854071349649650996946202367345250272775789246930415090476013588134891233432114753230202594033658231789175193884509611584712749828457455668002519181616900407620853944948654382377134569669531466522685645391478696739408370162949266640491320838596090282035557586791431670073118960201398112017596509565263300153873028153115150748260673418476421889655316417984590739710823146108160183810018824376384676529441341839584536061603238088339973038149853106295307686615373715290777392320195043357954779985059816673573086146925749157842693926041501778779317109094339380049900238141110003595505558320730840952223435732273414343220283699655912182097496548700884058137867929233272169008179817042427961550864162712240800529740736837929499041463968448190820491217554907788624405536847883665975330593279782543414220265038079099132177636580640229545537928509224356548860494130661806626409885642938061163833264605055093036708882006715491566466024840693448216898974792370177310715465266695921626979290214882867319484986373130447530722536909223937937003408195861376652254539877005885951345440969200501025231051754177208321238188217751184412555126274091561761176098232036835002011165554972068800456553713961164625062002606805391305493264971254096188151129319491708410106834895382642995935253085603293418834177058261383752569560333183278414549474440248815311926435642920118604797801609366410386955937560723185173690803301403145685069065341329845580125922481810710244909885086345951424616475113836944943273908130417655432736635200173482713923212907468407702089343240624898904877253588568657884489762661303245966465482609351488048842669109309577457900042867755138546462653896547966138620726060899902083680163729134767627047755255315506318552241577933075791697611029556983085364300986386187757146069772616129011904708601039436081514928876123165976372835805258202469287742051118006012565131492241110695234898025468580507529160822888967485020858790094601586914057302321410497571330873542865236644356797514832835299373629699016883136436020143720916516872681810683174582312386952477180642046514935297380431016158387807761385239847140496673659686181365476338412628712101830479854651369864952251124848777485310219305628581520932435124017527093152580829667805406472844092079334654187478773813888317804096027329549287768707375132760325630393334533975650989524738878251951750662154530385765942440905962710836592528077689367709955785279117486760531489569758661742388473940088175824862875690096357748142473163412003402221732047887765540427962448632657481648802200109985870513456897724248723700684282326600928014883544235807544465558879768010109018627332790094108267262562274670507283959921793836536260157701120398344527499141836112485105972907904911195208570657801552934042043634404894914370311373155260211955152195078808291602059726534778323371683249693219773447013588321907143218864581357810268597293453373777523152737018070774378243297002308305539103449187547865271479114981670434646084144594091724849198393385240051176326183186265945743703232310050584270570954207651287779159641221671429111360016718963928736484064943778150264193910513816571474223225494234743870912789132504108264211631712537685523526300177244110516941637333154954201675606380775372452043306642088916666009906655137064442295849791734686165564093050948037694384311065596250118363641095263017533754377221886723329816102312219078557039793514725408035741738482483179910741256219377844295882171055443575218966472512698900257538478412116306471887387225750688955005515455423735257218588826630466289659292412970715622974948695532399437385314680900468177154664469114435789909704009664846101788569051402641543423019191261009508529700422547199296329291311803751729360908890071567378723171997281657842756629342302789889897813072783817091914075038675410565493938645273107932904451004453633128426491664529673535434033671749916176468872842516517904273452195054266328218423027800536352004753009697308290806447564147817087541435019190699008449139890924455534790043629502548508451991650907933660670683518392576311156567975676551386359501100043775591072180170077916301231093004562221842246843159251122718783579898154866856397513671417520409095034574343674697533713168708879985238089797750506871639954628374600772778523433102044456400841386323621547669976422922183161550866170709232452813847897287154508595510269716030022550778734994531189167377574114903999876385955029562728799142867424411289146596093156109993889578450837518936496455998018478117082218732559796488996043193913839680609073530795895318749233894731326006885473731651357405565423908418003829434401407307789444484358006420559212191303381524015959483987371816148187438355182335838739685379172837900592503010910484733959944838209430974194042709593128210003342629196516167412721811838885371518414060263310292065611458145105795954087236355186373507403793554419646198609374808617477591028371353024208782936160357234732045207228216785649604446682799202651359463586579543763378669005574407338456091142345944331018881147657487090853440983593468984691346573064697448514760700798699742849313703221049603495129300797418225676872591257404976262904781907635469925650586180094067531457103708871614791696327675235075608771060214050782402765450753885316298560209547658429965257582100682885662516046054482412692630382331009528775010580454966157766202552978319226497445231794117432281401907727518666969989233631285239552508232364143883393796303963467312709287880677962996271058703740117215030083054150709666694017679932424457360203460501739534079546175376951054369360224572471753281388075717911465488064929391881935110794143438091637317535897957153115300005566116415556415191377452605789699863175258867537876045121426881176890660420608906170258022465116002455229107725472399122418595192635368938750208097397475908744585546111039695208516544613795214215478224361136813765365862711669120186537008515962256430231877621084833555746058791743029553854879610639828211539457144591266715870419665798989989527461800343680102225997451608606215317762842872506245379387231094399856317829295116177706100586843747982609134204320527299509892888228429693063169120313687240212591355775278760893055918859976401424078682295538530825633037343490889644168714367814738032267605944419565905358924779309945962327170479231400945945817320759980624417285173613720951809967155605310925934296170244294420012240345055481133017911853800087906021535535311012117847632096721561313156999771121982241291638183532354833374219117218405484236623133950119448491880963726228164494071738210976377737675798449459787453271794374418760078141919883646931906816601542539206965023820352781846765301528902428085435600615199834630672063312410370312391234116387271377499308760024770847692948851965193430752457335318823963612101192045401642435981597573220620526362208293418942173374483630600187941941065367326005413801385140138323972368507304273214915057856280231509711897277653777910640147807035759298162309960958208688916278530662515525917329430581593091351552007194563101602718655880830271948314152189781971235909366273995044663863188523441014157925446814043681776599530526396067465821756240847997945956614495077324812097330234532719769510500376150943291883602144717823588823709665720777855651577786511261889210853023444392807729506535165995899482653670135213870440490460719971838325471768592176072621567622464530242510418394449015931199371104704483698303326503556769801756938309152576749952593016416052198417459469545440578060919563575313671672790017797979277464998706025875710693620575109819491022129212330573388741340609710249660690302882677970596449858482471939679607347238737374139516377051856917525732902117624189383353365651147641787898492785794354606227124262378120214514616470195675045054360510857320831750906569705678543785066333462512080927457160735882687096367391021901670582707314991673449502884260485419967901547560293370208616789039023378472994537387810127779694359706707401939748436753109736538757542928896807112612916037802364383824699235103940710318325231627620959368083503495805398651821213525286540373954460456786740697661503570620531656449635904870669281235461131812233517947572593375998173885227319003865332747574284098035910681133404419336744575695198664238278247458870540492509529728809920160550400973452737356343164596828124955788000867182938724630342778752922425829327722853619576663780435062968602184404803653535830825534963550006176708223124337194373920138949142715844946864318918202399354577011765647786926139029510229390623057704547907383363091062669052203000393537437968253257487685973396996295683486344133390182013689435000450935918396874543909619726280088448470682877140652562242607939182584963876167140435382728517178515932381967678139695936587668743359014293494700258167463095938688685161673674406935590739287584894057854834201053117529585955133461161797551617591970115239316545966045292686380435567270889106933596802100157662063341765927115514394090505049080820683144753767741446627934886628263594018565608565832068432645491902182795484930316105581133755031893203899211656154417640803820345270523053156808912762398143705790302317963419457050519586284240234813920464506677916555324792858999212138854822238717294162610472207667648534463792664381445676388120062714900483008995695264255324921869283166616933527072814928167819546325425583950921753558250869904925438769723375154912204203412460140958215148548948592166554603806500854398863941576419393555248190550912936442579060720116740188629062314928366679083216817805248553736876741140036540999037279277298082500553409139084614808259970874513173763452965556637745171295598430246249079803906542893260127445178010196742552530152725391485073612852087050526728158603851695066739143051129081295160811965447607439582686918859842696822714451808840948140919424016285260970311363346555605128562338930899027912336495241158094981261546971447237124297279838266121704916677003263267663138350851766890575301101689149045334797648543881509691710112488607591242994125127057792637649375148818073372591414365900734971845221481690523319434120549842374950530833191474445507422393711658263297183915953589894380380610808837162072393115818082296719518254724398252986707801104824155682092340138581569784336654340231194427032237834052725009399921613095948639851579743308412926821699911033641501237157453201773847389503602697432992737731657950253207003073188233299162559907291613811004477356736418195267573984525057049570245973473607140852370028826153817613681805667363834745932039841913753002874038153527476439221980684271024554226485820846373053153836442240428098166385438960815868344531799539713985567264362966260255504584756611476605996161175471256744207185197420199700334913053441964851790793914619173349088469777153499515336108925971370966441289390490951942566630116931278976169741714008177026049446576364316308465079074574852756493082358240146668775503835824519470491275437124060100939132027623149187456859655806645126736870855256595395879337167049734414586632993912776138917561094199128154323916056412351198586077400738889821995163448544115220334961942248978194940485270042165571556485969970892467282505359156267952402941473798128117313174654858567759682590793309783233132384263207010497804730617181348629186014517338027713775233583381887923173832798880587466001915590999279444777324708040202852763186241666617087230768587152337993489211501728501374676907336076670774691447898437607969995769172442472879598851351512963863261007012048393026840677580668827812879198682392956352719374659543150831138698510803089207907246887408964121911862903882589161386590546386772204996344062081707722508461307946140179171796801919629100255877245345980137359383410628275054640522161635827588774307513940027664819723777534440885290749158167532193108590964460169632860312019776382058381753486985364511544451141825456976725065848102308193132473478755403805050829832810215686638304081903157743556104626637689209793903868416409865150676732299263508803509868840108174254183497169284436585420806351122252626342011362535881386943322869353873334178016968132569671940337728282892084702854741753108331746930739776746618182805836374439940156145918186138462165826349580029134110614125218046545118251066103168170191464097402198875954658512814704005778780603696221557912298570993280135442352124867126052788946052153975325853690806817252239361985683085292761654841749185420115672646760049464909981529918123522600900456869287527674998928588556264474175567964403946374683843580725368059160049220371914895102974878735889018658381358281855669769861725769986341221399203830144932394491241524493380456287116483846633701583344064376754841625707961172250921770037989356609645712591842735693593366342346669896258424533013406267443518191981905752785487365961740378646937522521515944907577886516671900167833092164688956870964211549719569143075597088050325077859814875925979601549897597485661511715598768724172105029635552118293158999279438193164208247115633795604954911023052136861627137246714733041097126147117820697033336712529183718637645804782071262044465715517131521391298209151058554928211606478738262032310665271443108480767418899335104294525246882642388438425171179952004197868776811637923878639400212338461972848386514639493512057173644211665423779784612954365232925549307830381531558229798694988460002286999771536610660685443394718370728466294910510952728571435423570855685108858293741695089929132698670946353255662490681597910696386675579895437895668360396872755033690339161899586208836981599879393438796006045994865361908861554107117660446915304778342730082702878053592156398082143097351234276005538165725777402604066372944922129739024811185309790779008743590017520882867755657559393582844471089281907123658084844165915956893728145701825805255277645874186462719513973540094089387429016734199137961342437120610264819791794528027735961808820334306779212476158934335685841178446414790403733588551778887259427472862279569973936074176437957352601940081513090428608536493289115417783068121517407745588634652111404806215264921272211775946933696808905825987323075707164836369846380057893439889656992947557067893979567649519227631752057923440236478755729383674421594390388359611019443757250678062454359453640756414744718167464539196438922621500204805726206663266225526938063980053644664061219486274605568456931210555194699174250202963419344517465327208265917698805555172186740036675346768802132445455008270153716341405172398532504655293677865070203341399135983699455934934954431803323068157073339949436421780611418246495221050639023949453867703298022560158737288404003298011874445653623903445767159031748539613717534918490799628832549175985629669539306930776201761538227125153013690475882304893984341994513566319141675572205046115512136499759177007748161583091369485239123698756518696735168011254794528787908112595553964445625469089401192716542112788080292942542185595113866241007057553838392391339845720854677793855615022192315652219882823524480813631490385439577607064332433603529416484198124996051991885418975889321901046117078759512741352947237995796790236314470712357867109791230094323822984629911956455865856933839009404018675509369869471850673262309976323491747120835993909000431241267781114437615636401611593244994387202592667533168815216760048334837439432195288066833693168448259209465952735594592685001589836556415888833143667310121769935256308071510711506554909644857437064510893514861476814772166421254779548452082120076582949815519558367739256569587672501978851863498896750578368115758789712124366552497491231296948518524777185763805217981564579567715098235041664633991069836328849491082101370885669068137208809856379040774352288959554977842235137314668279477567668507624283176798329571859955329315881319028354098070204149429310908097419086688549498251936894347727812371945382767353700543079472349399913700566567084457667382203179406722613406377213126518399256615875228820957075027587981428062234600820896953746726344856069324161264613883126527777657414100514523767308265426508974132691904121736689866479786460710949933865750998087887740081435472687724068789544752649188073920084752649870159490823349708442783771053598626080320256270574011231822904846153932898589221990680814593522776908054668477734252433454058404462776017800106157088668853800071447209095676439762803591567203054699457062255464269799661757307116954791201635923852940705953067031133769896497843752954021177383969630671562187058898403215437323817894967245582466594152843555837973139830861444254206678942008692217948983210395487281708184535908368225995955706344594043516880662327267930531582508394149246531198017672292725222808444658373228613590724601134799682201155810841065439503792205695205487598136048113488017976305045025366114382777821852659443240061491640824161647900044540421036526516398921861681228593591960142095981963459644810397289554656932719056005373175663383981343555319873470518108926069284141145466478037079207834154061148836681879273031705103502683459658747365711316246935508784939636294895038589383899424026646016321873438095227924461754671965739192760545892265046979006267848827380692529687865584895541839391783853026467371851832084832101745781854867255815273242034109953699035914533439039474684896881229905507028794721065472975265095440423208938223716283300296373202305955077999616016634163904942952565391672059271445934977055501775880621088747063329421999978111695380583497580830741571417468839740503785331163270518156350517011729708385159546284661711417134086436293376910456597720187155783231277289137005548210337183469497208024291126594842037919623557206024620379554900659049088389614321200166859898363834147516391759452710378523568859410137030931307223687541184569584626448555376303893566692705283091526401065430966510511659703814513443139934151425303134187355606943482728436899870452648859145059024584558309466158418274443130092912559834013986673782332494058210840509289094948344633612966401961362803919227054746251039904913094746565398281575029385241283859369652085543708342565856610887941315954158601667542841075128528622646648191503480981641409057478802437322056085513045010080308436206004232793536658379841179934535025653993323616827786081752664674999058995368266462007710794636026176189478608632468731734380458365111662893487772205179380162192529446878117770174465371348240228669729109290733615524908439393555418722688029050257992776248717962250289263137837734970370466331576410022887498177813549201575030193785023145980074794492120487013695568693341615719741508164402920172961135586169681095205709451290977432045956135264074029613455330163321829506213586947154784967355351602103886363277887276212003834807149304255494195691569501741868491834836921797555390315358022786116674112123744558035038874035181997499856144981594720106039131950579577882262718199139485084412134682876255321644237868664061689222259027025956682468850317562618587225939434693945740782816552874028576356062748628218812056183753578630150997839153132310645303143311201618826147324218064826026519783738445848306321794958595830363388837735498052111762789687126673552979215908907611408904700974262585006422438729490453691858661646580482872904966401095795491780458122032484893637448101712590689631483908467060339979988477898125936374210907379405009317442122779093973923504693237249811458869906803968778450906839127103815809400164299965077263264963800015152858279755232563898688616267074965883587609621865729152737717917276341520922833260670859150673641992751740811421952278013111725404977504633396050282189996099607300956284247532780275717770792148639718702600848594700059475859709674812340009503095987097981518063683315775853299758213068612269812785349281295771900009344978707956030174752550798517890374578412434056674442626197895596778830595944520197611238922797057121020305793531302997628104122064355260684515840403701051834721101981183798331305357498417879424349058722062538110269015068279982297279888201637364930966449955892676149023491429086714277920758503255343213899337163309621426637602955144974050720906539132436035112021611641342578894105258277615018228444181279017046004221726342583479364149300402305971998699908588667706375072731146544127715658739173099549494437074895785003046294271253775193812475428922998655220122605222101485217187099314922061791098589415202024668354129277071581817186854056918732242463903179391004054017228554238699603563341604369501404278840990969838371246135476756197408383337515837052188086051204345481062156711290443728014363316468613743487335207755132637479629336283452883640949549735274315574022484367871159312016610840644080784367965018897534346287125750918757839471551640020872790221502779620703009970701885201013088957151598172329770504805577916069744610336158379665473147402514428264791599685545989110753662403876372436834912119090096416700078956953757190820123338546343766185170559485778268525197799962059657303216126602237592950924786016817889587927438298459036571705519211313458320541600565626593040014918468425777353775453617129425728167776582742345923806948437171511680227706948006022374847314606772197717067765495547389427638546357762570821965373102261272419224206423834934864757651587017807802785202685011374384812777813098000687358555334462703932004950444451115226487719364280517958242875015002588216906748465657016690795423766918905275147900674951338057481112041295037721621134772631376005312272144791727394048554044644266914691598004771242697073832590627593378467760752668834356525549908637639922268044204978745983192368384966201474278566473212718593991464027887653905262607603831635384924802075100083947233678665709310052201749638086249596960724834539376293755977301365000955043343567209115243099917407386391605122255952336357371180778538802212874173802441741633972109529878351812914085409554247954142199551976345363611832804426034113369256175617517555090289686962657521989930096385490849037993801516753770571043436624869611411636743171832304960351222279924851438333232272472014294932654634725204842419809972066365338002826519785719617808157563944109038608056864738633099086965723995415905461839875092698985656259790026330091658169540058033263795055438645268660402812802860518070647641536447446546061544839771169983334772893869116242388422077689330126243184356933584903369121975503187741871071146815353868748603216709660387321466510303474485315195365729725694784127659145628683511909765577930111110556819199831765135093847376793506870291666554897260723785203821784354556304036052661049971800525006298903246189012243330298671587426508945550102988685696720262327981155340685246923805756246945974096951994085101120083509862762640728258758494779107608117287526702145722155036903872415063463975217974429905595914672697288697309051684306755517751552084946672403666813654523379860754974320801288453921356624510655744070504573815773124973457644962883536187066473615079690608253464838015029509987977164352557891575807811993054871079601769712036584911650505188237974655611182423112831867986378712710752047125589555279778621656137104210868831656888269698459469650218676207840432570663099459636653505727115808259553676301783131090597900246728270170302155677887264678448724467900293991154186887496825222333898441519203703517446281373512332179749090999668232122565017927114022692419621994392600435962112040902591719503960763189201033872166281034698390952225172118390737132615501967669158495868983671775732343284224053918676097829184511348087721677602263224655805639575563947509873365645672573569932564568831955535595472342270478609756249866820046180883311138973971016940860501951271882126134836751235691986309104594861538448725779289966294034715943752400805442803189674210071128270643713326663033888881138117780354859326187868357004448833921506538385286125492537959305324517252898701132601217983881756460906839830214498419007046546280640800199221062938904789828077421794751287723015986142831400407802531007435522244461445113356274782900881105227185429345813663709680781720014496391460314310739808613312055761611677404758472874545735957996363053285260162369816332900440358042857352969232545046838242055240213867302040229335551550396686346490439128346843711276657738708303964069647280760357826519464254402032217998863042008358745564398200874641988596541383562752127983439080099912252883393972119985208666688718310107677669679672070559963563742531257550757230605521838760381318502025444198967810890097556472869795014559917639262221929517931977152371549331973127279549440609849871717966452609115608763950101334187283885654873959177626300755824056928584161214974518590652344768184900681173185708579817670633145247718889188700483801476689614430764991235295189400963754381099825369093581210488639084789794324489313577489493548615530166355385337327708751689493442395814262004553813684060274771748429359235364768916946411977476089011321087849605404688827729562753486089235778805300771236440117802947682977045978563478791972884854594685469661240771176616378942476125074376458536615751205189498509328027097776889636456443322953550902131775687104725507903224264589523078910167209234168107772047180239902867754564338874603981757793085581986443238143082254799989510559944675829608726507679945634438219028232944563416843626252095798445996495973215887693225834833313858557841372496052698077218856261370154283357701078200022119094412248341093354931069229213080192028237168887047463069412901321001404876772149686441567842899637381700978400062505937338049619021525609847464816108529664324518894337148822326011487270256196156866944988293576653289247213631995556992992606753913240433586954791835345362413894162185215738435609162360233904061044847191325712301410086041343544776585537000208146390811064644162896832890570645788362007998455096169409847910485766968288275745156737316125236432923439630718467330072045958142000632053655174657779182881827311067987475737038753055190536378337851811873169528933584874340804765891485172405740704914525431731825435020780400128319078157625192215375744004353875493854287017096308276315829737301352717234330956968851116590413555824631404177002593451955298758744894831600514265316553788511558212928197092485200569685882858539726036295411513810569808346364153871897940087760715946176637618662734257784838280574169527306199281170182987881654177621109275598318831062706441285807845862089476055131756836755005857240636968135286087968717839642597053388897572736861085063162851156937236652923862110704676706540797124261965258972123926229298877434897701104644537212445097712536602879396769970680058023918803701706130971231790897507233851629440086894911126040377663278760674082152963928949885110119050421814541685685076788135857137302260156184130193032275789534102878655992786224280985893444749139300100701758172919070112620569664433610389053061040070183396351374799103503797382148817474684746489338003364619401998597644813587244354617541271867252134377650207270939567263312656549405623163456788733492140162311723119534991361397022846897418123617378223700797432775987231222848151861082640620534602927490302448735929497833499890914924496562848813749593247840069899782089361941524805780806432731452937661270605589048521005860317213789388661163583691095639193385634266763045493870101481969184394024775994574737202035598332939884667261204259625685135204162645766436585325264618987268322747853092710326765413482787239214667886790867603379932681718541832344267738956110986747447467192187567183013085630903460520149733927548088988006389464454807582744413440296858245912823739753019636214656960603917307263855560691378715971650105019571058114997348972194688093092527761350328683104847602066457890418216563638188060793904402172734350920535490320884258614075514949321028038962080977321661773691677983679184193195172032465122339582350942383121226746654457081274122917798724941918359409400600233496195364768563821248646667725456733579022415478549923872385570927628802441643697501345655528145507664605898547507752255847483471618818057224170961090120983502251114042263159769184533302272239866383255833310367012304148340888737406226554238416822325772882405855280310299641087593133258454035267639736918532801267169760850890891807966325012524865154209553772006500635694517552851623949355105187990396190816127429485986162303875085053264290756098087700039607969307937561217168109434112886662456530036206126035821941667635399455707384464081376166796447729327898264714929657798634307522789661946480646664615634890279719511063391007698295569397763191811461788942871753710431013782260715381627503773272698306187495110361992889566105180055573265191304340981755002234976419936750305340461304876920078330976593605214678562512145712503108968032914346025162471676392019754429552927087035201586977566970630819777810571618649713857005317281626808502327320100760383119950686572987976190429415042354772917874119602461847041106611636796396046054796169764766588730051907313128717314102326935384057775135620498268176703016701244624634508324187722206772686285398781383955008503897467812727034428246495840499904439216463401659751538237251867093136030027513794418234120300694177251157878022150045260360382333342176537387702837059520704263560914476949908894480019950512235241989220775852290833940511728562744582594338537671763956889671436553182465047606515499056069268008238864187732146327592521304015263880932303014306008166540199733718230512277470951275340958422515640928411150276438424832253364351214446127052193550739757555264662660563018353764595908161498922798588354339084347295855483741823657494300471311640323937236749878448542438946575538156974037499290004834208626085800157401260364912390177149494536754154521842038867585935159057568176926765782249024427432628685592999889057465301433519996107705984738481200792034987101391072177312061489524209209713412938899820591249382021694478960982019066038554460986984667370498189997671712042223035940079939349133679424320226379040608703144090538804579195433618115108253331631365552570634134146119581517258801410520979954081387791925076360312454890623990863787928759520972624716167693042230077551482100372299305665138472077647695630175843271570495873611760402248818366533488111451139867221579057825185491091094820919043746562306906842191749300948714770043017208448267518307347769058693584329002257375715444575107459148794169328511179197374895767743539313050883510236207343213786537159598759878220241739914699387324934443351531850384940476439070025914833521738324574261313871587452260547468562023613338002334702664249611737569801006056669272424365527181037342286232168818557487170772405114237535885273857950601221793688895696922778601569722239454212278405596105067661236118389382196674326293348158284672078094078583830018420916673010275117906735491783413062983356346852574183434942342023311126398285459867474990120295187793927757313276956126968390490692250737707776289652565656659440514767590301299071056451701165553208829129420679532719419030561899715307856974435774420141133666853374115153719800467108353867477548150069175285491283064350126121904332110294251096440110837879678403172653189106687432159090927586867039447141525735482422950665879204974046080966847534585340627872732565308157456270647445675110718798924965920107217930530608262237141961296198059384289121602797088628787911441685298938349379011263736739239851870015592989947899792220326468207671015088513697791888854715880594326258375653726308138545778444579901339679793502307869039015927231415817946421240576225114615677433445136363840660171767492875793678797901482725135211389056562889996641114347734059915833499778896474682464245000747643143325019132264474543139216474611820844752775369469306700306802070782390708793445902527757792031827756380413189941973395901480644601452077765328297937461429258775557697920263616269802934701541488354906967849896191433507116705357111870499426293600617274112710349937888322797042380711308555241627746194459670442898085781351239676325760586645565923115284444284281323775565352713136422075077048304627274011364328387235134430686848075275028317380596968504532100571867769680134787253027297114547980074978046420328874685378992983091889670859846623983868204948123414054106039466276147862324180637662446116842486014283710241687514744509273740206259940045858583079317240611701751791809723334506582760859691133473642411343878460496591635509721783137951685405728458442890647556921308801336596895579444551251881117121827947068411035814857505618088711282165276099725461013398147548825077499171146475465421380537976168841692252766970904069768325474590099826064933443508975706088996596935515535119993938233023039969537114952802944595277036846483822291639527458856450047620220508029417679151977842351425597186897203556086273243272881484505038900987765476886044932443427833230193171325479475310016074626310590113949189198599088017072453052803334344854747134203292014327108726510050937076116220319805780837194274798765141486928019427291550544363195104976648400395140862291605097263167266886424323655324612722236431065561457435943856443469233639313589858094191373649867088554036744324861522133063072969117584045239343970375182317729234717364021168543178630867522224521329307935532126047488319254084336968234408632292590370441411563885205200810927124919315056025699695182091286169724620138320749534646739625930451139785031386838567484439968915291590382242015153943284798073459436263771250943455879708116226799733730810467810410510321449066432656618662952864447639237497524442422949456749837985628926142109438744331064480917672515144360238465615622546220547995195256127713772808477539540791021254816395108500637316045340291438732227981880727249658267441910931827163138704695045797642076813711984867532616366389844870806281750300905495529490678973278653085160713362115400868497889100474327331906007270645541477197555218794026571867930702413069449465359195587377114166496678831749014191349375185805211661653223424825211371587733374693025130582666975191175805843143763914460658468836131739532958476041009272016489629707374717864945623450999252058745967733058514343745700229888874387424635366626381654395994398874701085583435716076753453248725201254211475472299685462854087320305432707305706330486163510417343621111757505301809196981603184059495163159082988634848777318935132720286544368643005427027751505693279847837704302788497577011170352659118032980023047709538602623008539985013544007472484114917159373294057163923862755259491397859693654663925271736821275411739986805705183787719107698365370112589334829445579222754380102003136215075963466274790417462636544427981061582888273579702225595320263822042127469657344552365062806351489671773226202975336268031597124754078228744178913415385654866832353799901827166131780454501049117767308020388885598078316959574243485947959966625230966785164416698753733455941055240317135733783673791797414460034040819931807604708094314192474696988872292145460263600477626968255078467226763667049679475270960583507333420107289503001376891248137621840750278702563487480745955261922519598441325511453567776988781447810047083720627211770979175513049819020537074305466901277014020444846824442807778968692652762628407659376180589205362355892578924996071163315073770008638074622082858585107671077371591106609846256507109444615012781312074340472598009027750035145907068573029495033683539603943784145040250565549731176746687927699320711899575578390236418310415291428894679740343574425178506400974728691552625395502242702780343927601929067445142485350644469136520300100378048383956125797098814379925602601577327050668625687493444491138564566119287000513066010298247581686408047393278297057579237111324183212267194812466033879989095940657279616489989741382931858207148470860136047784665924626970541722018185351115948535898093991033954076171403847475342334496051807662488529471613606170467422806597130092111974766565415272228516645776308068189524700785208328037918304766563834661571599797918603067158933822132571260496589735615233393412948136490308085443893925071124238255840512009339284252483591729929804627558558971740727778490772140010012715985390607304216557886432915059984756572296263891799966206917897444806015832092183307037365403799008395722189566768307538802092508605282234096072569568903695079188611105547574312792149121884615077294765044123687911906199073597658904427363100459168013904249516274151650643960295406629231961646533668695755644015462540783069792256073327112095733528978485103559890873423586512588721859747782457300986614492183484404697961369151198510895843455690661681422497981081770293626789856934899762407123560401569024096262327365049184169939908209844070656172763715751249539670839471979703822983038887979314738106546531307690684734952380401559935488003576458231377531604149947142582336820951703734653892636602661205168349750702691631721667759235863060067371595299810046677598846960841827011264465760839373906389209346607894807751303432308260718759346125392272086524388054421248670260377065758454950880336930364270150226862253523729659192702327949426979663625111466100396839240568188097128591715475052385035292415506818639404494128626617268581028075252042876262381182329111407813066017473769294304060155829315945624448222410425133140673650454825364227812541409616771302123513809284523642760323535604714974876022226518215046386202326799799359108058312967167275695681516915517965448482465129409750018886951632459850334591984522764014980481507215324797371230275159038070561948219585550679481394394639800844647118776369673965880197835939075388319497835571185813066994607154977912252374081041916314453438256629689111374404425032020017610166793588130380059459705988301192250019557071177117362997065449206172566601672989089539908813458980653183900287157071642888738089998199508984810172916227796256408041698123844105364566546613232943889551361962841723395381917236927993200036460603938134440741430544165637965702726012160646441219122346590116738369962929121333400475906818767089845710775296836191991384026403530153420846710311409788558838775274943677212444505764789655544345242074696371915035969289536548513194776681345261830731595854410522307817136376176519302238058908918483662325331399666215313408053857301224692492611281466777632768444758400651033065227210784128437126399379163350372858074807859088822820029581013032218616565920373854222478707921587239262604331380707110899832480608712817992738888990187713225372232926445383753521782083788745976506216836146915739271786801503667419352286490543924397873563059409955424155686887814014349219893924007795695677852712243546415867534610704359593429555642040022860793654571495385493231222420761482093009411006808123933573818097202811368492063773396514588619239833940149750732943749658088795255648021174690584754602531585495861460066371815465014313643060799451123123037764683990348472597520294868406469534465929620935288542699504425522553900707069629459791624697333899339833710287229269642001674862332661121388328748449638045113886164747643058561807807242202895309022150923656199679230487940013207778415390027525430225236016422138711453362241683197144391254708031358834770383714146826261907524885430420838291506399823622766288490006810077454051595668489497981980049837252333461995199410749206514009257832573109789776546583131746738386595960589995854117105866131486505630923992867720813639912419753753556227194114694495578230784246665262970778642481153467419083760041948471236797171864700402503977622595194963911846221288307339599234843040461674378469252507136918527066187159344197423143633337517899478180050364068890400550792330098522017667167270067738618920089474364103675339118903057659282789892316560351669109153138635470056287733144707446307364115630233995708965555972897864146112124618681096421205611749262681238130037535090377723333684840501109606252262950784865686645543162303041566319604402752830142281011770416932065392452859760672486131023902827410686418343455169481774842872934530288543466691521400436949506172863953802029832091479914848539313824684576369484821980802112594171032763187179873080031414889461397261382161099856386088076533163106904260139975763126646277061321252843102505060753956489533792519855265511967953001244315728974469590933049817388605286110917290880494106318650713413277954260501951042127717367917051895085369513812674514711564096335103305592489175655770475003342828570729676834123364019086861528286827119725501908378059514527884482654082064691144672713075597796880532482926682540338619172402741791891170448755837943513881895300511738963531407575392468333915670470811901243015949889519656351344172781647104433240241488784322306872460642696206074478442329171727945838398985255016685651443077209578482347358606988848829739301385392461119796472873024115069153694151694133322669158987195547629877785227868676194720248051555931941653833741997781630071827423303543052999550965715807836396410015280280833543038705766454575363545797070777704900927868158612635221266521999035227478327975470877188540059552641311018914310231362464034447759943587512067622032424978472474072728899411877939633118213039029874534800258068091786551776349522555661579528923077521645417035523129149159969940869717707400195520429230879417695281116921714962630693016804633554065152533753717181100899810455168591442542767387162761342332648474085767056181279050322306247076037957822440122601785553493184939228741830825233446181943385737214505513932644241051499136467723689652970219018556230209301080972804575804154616518941810746687869482606000181124473209341556125354523043842246810319364923113658807859004702710194091296002376983537593280337839831325276677509881445973509895143285791901365077058376237115431546158604815431197518549836525559188443289620384517632299373513593101177717033797325836761271335810595607063013415796044200636294037079762736559616483351337702751906799362920827004581389567127894169463275054694841902046594963164491952123223750376259482133883231569985010325174057676053071325001776822235863269202085054262540984184603436492450313841560488328770771058520159846670218611712192537673099085972220949221182448063272942263812599956729856315324274527255385110391211562943789778535197885600424550964695361879291088252049197747290823437679226260788235202734440191172734298271686539452477051230215461979978767649636441633842692998635615758365505473759157512431110769634473003223372000443740684032338816649053712513151387035878159776175614803262877646182588818987724226741298256663305413255891574352614806411771162896098504277939314013787368974950516164701039172063484710077543548248220583825992284388110962942340884038794509352735357218097126015300134486886384724479424524445149948605822064010468372611323650717261923350642724067511711985434917953623104380558731426515134800305761175351667822668803454407694952596231508311650694771104065534835203903464177706438854693909585145785735210465769434707191702593477466848295084576218462229245931363188304533088024245937540823627125471309178475346529121199755788930237630582945110166515203649372783721763224994848508028756767027883352095615190245722569723241864369909439008908200583088129610026143216850251398938686333068681129345444459137229295126476524904576540781893156843062403942814378073846624355253081418208643151591348612487130964844073648970680741905256125476701794506779699583660276868740887748797145815930480874562102407904894496165122658197130465857613691963278835773616371876425390749822312918477538843514030208815704379671429294173481362553568236462042086685780487718396811271199711173362958276344668134356390345656684689389428738645226683709670291207757672112526698506366047312629703126533717988004210481436912560022460284028148135719964049110920015431609432068499563930560863205116354843061032956683432210443500715868874007900469632233211023487903892282413014983441599336456702409689449152064942253954741007329975851216406835110344868232964753068204385738555820995474608643180651769214865745897972862698814555860614181042027172090790242260571764892269501990721479792351690504857305462678982588414927482581145303888591915977374646646917972563661512646031619181256387556425632906955844883138445941831009363693437704869857870940981564991847916209842872065939404351422444183956022014636627318071118816620180312200658064521021746528053680903271382826255594562233386104703363815571117857065552387761442570502009408180979347595732565026815660111481600361143834530718505093455480346740981282101395912861283761068524416772053237859347591660828690190086654851931198088263226317181934972320937629347573720837867952585027864431562570174873656069890542262389049747950860940774316221469422853860033785603420298194290380082096174314478345494444723246305693230769379322225026834642021006743940885593131757036398422796549251350996315597498661062931391764484525014061384483290078603554030654831793803544621879299115805991760743979016846073205190182026696908858146102680722513129978500845260837278052560009380673726811751774840270677508812230962390350286706777158681196704848934061787130789173715780136622696436826908881478994121733494494606719124900359355277080114264375172885637662369604456780903374009234912075949080251114392146726082083564622463758139688982294726229077880831988971395303209902797907041522680515590390060906927311908199272170956349128277274991572845294523270580990354335866527426644671689848518917202194320360846653065917417695830666962158307619480272657815469064646680141161211647057724475268340401357864200619600975479923600118828012452464096614368686038084957062533698144221454011906148412950240586345143692210556879116986205893836293818359429165611534359697204384120771785523454009101225292783441256109625678997532076434697773391791902866459593768744324259675881189082771755247779057047194423054254095280054246161933385197301206717363298269165612088425349456383387666659183143678077400180354422225267384234613848243116710106895106510750148077533189898311833892668328157188377629642650916090524546475113417281802836077795296478470336739515752349309028753607942035072239449791593966927013475257237097116034100222903162133729328062816635754984182837625716814920012946644751017721097853499696831937523873278382848625344079296023489445973708961731233482353120895745329946763403879442346224786286442420239484353396150573077560602615168150258346478132215200302131090170200346676762456904621350643031205410458918095254901421329738316729855712574113989665561035893755181277814928435145203057734766641860629833885797309761974964918618837686391604473580664842224798350294609807251201306381866919678330372086164175050632751930397601284378881609425587731508380610144688637745055911792336469684261208770840962380183172391109000698957708683725615170965453106695131702165216507823634342554202429635868329109967804159280103659327862977274815035830791773461536637511707576701949750674630615941215072621219140054846981877186943905198056212417095758392856532762110539166769470295757071259136779077835846747553888099873385281452985231242684425030327940029478191787792362721432550341890800687878770850795281179029485189002746510180280289918311138502961278284372501679139401772332583399349428747353131633630807418041300510996775362013289170818692975881007263018144284956739965363547174544456589347445944657373975221420216544855355215309733548792233410083604592428803314967985779045627324778615952449386314317618794446739283508423846436135569756761325151670159500599985290429481562505489760828912679191754554329215614881524096000032276762921119001736085047108515239667033174744249895722067372361692857019978977613014751793482626922736238805453713267768204678636144757461338356939467626894653780373317707090995852441454259204975470013005118122394988891941823118500994859584708831008032648094164622404459694156047100944615978882658213852880729628236592345148385989167528178719699328705819220399897671245082953236136189580126426198221212505647825412655368969532889724197998438116863328837438040762140136306225956454977541995681940780862912583800032782631935426235923350716638150925604983779423802685465978387707482209949689070146784741680804753669102541913907765359644513303111277010589258687421099247409155352915760833565781964809271534448492016417447497377724101936920140413492002525980887835700284793048473391756798459237236885650729480999249630267336336399023875443911467971252820240689207252344872783118164943036496327824817174221727796641189625151912589850413273593212238239087831417436032822851878472884863452933649120834224854184023039364785499347799465827080224997837437043251851985721094950764726183775163838446945785244395135236099363911644296951075907056612474524758251140950806127916063628322447036653530720232083502777987698808206473942932014261227558167137236156233673250194849730755807188007505078147097515865469804522872355264116625009085983083432987918280184455404772872871336222844882154388970991856354188192397657203611470152418286186772795097133254242042164081729983036668038443844658247888921124078127010704697364415797102442879634428789908287922111504671817135259120493196185796213890033573640659986199201085131734624559987430488022989686530661297118962124030483423637256011753914474066483774146963911999852757047514149091466838062725762564414150285128572917130526379077796068033721428145826437345444009556848199074062257200996745586266114376977395464032715668194637241060551042982065214072211770024015380396284761117742794946831945432925513285676957899353678265596617598352032118932361642613916943999441457035287950280734387855177684253951767816375928416833599030491289360791392388683382841853459884598362495495791046584726252902292765753345363724105004552526022090839007081253278896209942326453763170481288540372926709570379528091070493445223731295128804301495914102705721150304655346969664798741619535235005918460336223302374855952014073483317231822295532520985542536678847584449451540746780967862207015529934216470495003231656455897080842154689182658165289990535308022527730012297067025570009405910890370419253953684037842869199443926739133299516561179454995097546305750960686853021484421064983306879146557197307413806767149333249345608501345851281313527618502609145993465827877989269179309598994743558345890126279393471287558343828746248575874618535281467978837347630663376539982297485571316843322430820586046891411452120486721436459100955233608976249995896594434557347386673305300760497584432361665847490030653978815896388737624005619007947960726793939041959010138026569835389537329681859699373353686237720200069867085342324973694419196999050714054295368193559300165497553301133657501578865430017233386745866454320252883752698101824784993785022264391558537820434614143797449436685787753055760375395923097901546696964412074448206928723947518625668608650871964674903759577062198784479303579865137184338736283545649282165848330045872952707951097935938618981652283507869302812086413891797144041005353166845582826715340824140522107117434942912344669317190174554086961581587570808101750457180275634849329475775716668334092532827439181062873754648227998524139954646060543068956906271373145300148152431160953961046958704863251630368730302861062621859807514132976588047379880413132355434806329479511097526624756555857615234734508454246057198641771322673311275501983656284424114132310869613959851030955236794266879672112139258627578442487413660393723212442832476927428294879684760116706724969544209389789508566587508673726732236237230452800524484803169604949644474728064764307054932571524067189004934846387842882076807962095119668723142203125440891614457719179496027687060102172731865005237878397851007537117316735679731648829410375340217939403052870341265086044893411457141557544449584626231606396639952482087301117777110856799123433595030105987766581141776900297557033582582697182308753491331614991574867041913103975971641766950084699390858887332957179617788872571547859137963046187449637399250573169854668297635341634121070405857598795840329714736317504183367980739252204998496933419842259243515551984398957066698087193711573107679623563444288125558026605534320627403425243954203925510362194811410868721125768964266731872282433078649334979848734517977126644452441974424919891402351927661026204889454652007523942956971492722433589376766840412366149735161748309173385638668487807069196505020075462235725579498771598456016548051298677094733447421181987725345812460742917892916505683087606928393537484855837015536271596896958536788482506528553652302722079022122199538096183780365054713738910066770859099515688753605161538879924652028427952588673856866121375448707496267512414763030628833721865658211645418324763751223284949049888825144489832260410351749445067629902051835764865479643232947690626597525260659053378717861171384793254452124728625245549553820393104929442898127299457246285985273258666827992616083658939142298432097560278527459924147658545397068978026096873638513039763588172027762657124113573591957891269902970354415229211344192303496591313109067774332114948050951895234665905981991776090091883054185383465542489495503747248822602962195203397819653149993669350920636977547735961953986713486500652754541108972591896783094035674562598460360441810180637094945842007276639651546860402179022532451702982734411072845901294857845225322820938763738152997300141623166486386320641612677470592485107741591446411102235572827042377119374798611490061069697976067285196478939329496648942592939861541880656363892293493836583207836692424770946530183578431001517967066543942027606000175322322114102779276725861063242740440530569953349147352694407930405691773918990267411930813080548657187205715369642466059335598337593356411707310971310081282910266975017102731098999620887863086550971376370955446641699348702752806368853587382067822610547916017809014327525584570092912905122313154153169000124992106484897726778200950939201408825786842865740850975746448976809296735227627893535505604832676099686678337419835785169775442620962675810112118060358090814205532398113549988231642399686485184705798899601047673939899535367998747876117764302281044485066419384308695953415349811685741198449196278914048187873405098484647924105332215761008397170368995299948983886254318997959758026170052499777237096378437847452849801034750764535667261595400175620047862603328096740003013809676000426963876734129463944861403239986490215490826673335779870003204419101373573551230429794164385471379947691956459938077387120979572712875655496000079312796062544969366581374239888657634296422188778129298217784773465372278597747451453224360413496656460090875634736490974066920191504858322214575573423920194710316072680623181897150441441812295615031462043491813504969174014605224690800632892609563539767782810419730879606538993417184747403810647531028799000145281551874763844618356758020219305656457427237451536305587354992715568553509181085314987573080765430141267216407599509858588255456077861224940579866033449525172778277834614612343405316564736155811157708928854391203662607833441032933626947089095995872463752886490256664552554871937886392006134632410933068252667938481970833285497541699679824312475832866242641119038591009560106214190945098704734147644450832709901877592542577814495330986987400387628288349205837095885270211600341163894280569242720300890800180790243096391408984437405502693983075660796133580878141571191327436226180856922587527564687118871745396812601337847930383925244280360995726866496555053595805616916625941046380726349745832463084331168789557566498542903110336748979908944129232573070255883614443313164850704825513224204780182271426826423006330397099729922066556310646693846104311587793036498105017203598792424604653011316821807369190919337731304515988337537418657085632953127195814672379992190412928561893789340016137096983442663199252087724529836858349746294952541655965739565440649114472446708508586766343853723030939236098881555807640052590043191454434156571293563681682751809371683635283306152374809785201457068992238369027002115499485483343555901276713654444176815742122214445310138592324713702659889916055634677142824820080206271878011953588904138724080443395796663023698256743204689545264298509538765828734626894837443628190799700911289640790440285052246961557742305568472914023477034401257857175542568847481952415053904561888982518150334377450631253381690350813959132523358129981856038315643821604298733238121624084567057103835613176344165056225118805874280391511967407979164814760784361002851022055569746316232921094630731127021318095296229127383892700107972006335105954599170150574194992150487178474383532542226362749440603261601167286003643410146164260063602315657664696385479222993011357422755726556050129747618918432388491265169780591295358866368072854929705348536618594282452229990322409269923454672735894656513302910334012767815665420620206397017208714264231073756297337052824902730550998270851733696230987504689402563777912988658302439696451015481163066813888864172514138280178500270379517911649548126571277524428256495638314061288232836839788423412154995072406622346278791781348698518973868321736730984629330063332838443151327691981652816119299580675752846624897591244838811134121183996521148740057333240103183533146219822594194381669452784538256716402301355994519484210753908959284641613888674960123405229983866634860213298639717763806355015715307909853472514107611006793828254748691517361288271811540459799146928352166126482074498504224592973284154440921003895662232986772237780283272019353290326845878256155233862647788780016328123653088258283197087546829467742419109740500759920162038587236071242643497514556585907501860343847078128544878559560996932114501201928924602850515580032286944014699380476094075418597216606528748670906751656693236465750182140830526794255067268961529399507513546318472207677299941961995979844806036987222824640928803367718557190266402020744665503385653487487677021565805016868129791514498315966966179088011921828950169998563113240105751747725428219643087084342548609403709594936470723257894873079883836416214178855312979986980614620749682441020856473514950573871307739565754926046444336355602110846629232833485784095724759332989051318230121528273804185457966454299401889690852364502229907646398212982993279724340962867942057353403855736676733705456840351759986412729672659045687663459087528994987977829118358453096049751043885982829849200360429642307638534277067646577677108943617536433292388293682485460837788731799816549411305682438815465886300951250606080255203056726174357220428965244481173293936129698785986591149952861315071057018106938638713395452133024462849943542366377494169781788445130858168008930042608168490961973401534987586897372809736033671769327193536985163505340422233434348236872985957708336798329852492179238004805236193880888497139354266851360957049002784513787135219922704316999834852930031950382470659721177307461235504010742348029064327526311805044615824916024881376705181121937033196668894827840972668160190650146306569305608237778465947432577045257594301727730135376213138097013377687167461434756862431913940064408294293795311807185536443682516197828018643395491840020509572865064092412473281483937047007224338088508407183159096121507525068969979237139930582740086791743107960037707898938345563585288961714161678237099704648738903040423354520979956037455028403396185870399970880069369300254776132303789497583509326884247098222077362740334213228238935902225145697328243769652754609976374702614267620202982963257811834263390300960941911286850882278369101091234959013500227226738825354448984303640168977103423825517138508170341524980575377063195542655101746843650451297189375520415617455163615078806924965208072659094135335739095439218207803697743434787209733871246613914472757543122609034278646059915289255840236708301816735194493168092789455106282743931807677559145013065890864349863499869468944945235380290416909451501262099511613609500866930442366711718743464161449947052633393322958801549787002919769221766341397808219381780356097163365092280344599084651858990840239329759298223993171667039349708298337780767927870669832437480811281633379066046267861220089175752943504285610432202283293974588849595970932730988579517212657120025520901606486118169158636577084814136841506274267685822976863351514206364390546665573971452777937638319291032635078451671898156054673686284599779568060880416795772263429951015193580629459769490084239614434739051891665410664717038014263020425254145104593170451748499745838873762457872701618190168460618553532604015170782854037971622050317368938953322936252912178377106154166528056082609873312901558126513726066941496579477204431338821512999567611195314780032158574030334024788884960313513286406666820581260402937266533333514831665955999384439316161638083632364878245505552000635774550883417333417622581510140791023237649605375545702981162033059807781295941152184919900066245479800645959079853826188918492563639526045996709678990857235345537711606607818452359906724180809763985315782510977887643780689506565010284102711358975087387979800213013571358376550780434818280700733449666312888764760812235205862636294675482242089320673271274763392220682136711941648676960273371075815407918448646019744348484686766075965423925824223285741599299435146144695867393675617018032675216060169030942245174432990298894529541046817482445882830540057369704518639986983303643683330869072590725922868830030881176288809333825083592525528323558350602926335079965434215980727662729678558958394606171337272549954684352043400721271005720337330105200249551830641842100481994169328112420564589590853583574345513540860584257446063788266720829649407512975286442324452799288956718134253748794246156218171983005766693328004637281360963998560470396386084683723057389159111000005804313413404929312415903907145715715399384440961552536407753242534741585846357128900821518087127160602914008250656217302121315739204799555320069190867231438067386410176726786783842369181980184561814345511828068228048094121690618183328943140932041937879754678845709418720447943935376456187608386708280628022265660781042612364665652875554684991332736814027865713738411580608859292603206139000202667414005320966963750346921900524709495489344711837325529888440787905037142385859797252971880653248201145337340310527087851530948772363077088794099985040717288664462429030601481629988530796076466816863588898243038045395921051913748040540949934971092481485255966077268581931296816634845873370241949817868251328347305688730547246776849362764469643992421314811771850400292372894038071466459340623556425636933850141263428885046485046941208062265157225062366929991982589251204122744814101221759933470088753728522327054082290962604254911044197854708989808819597020071107048956550949431441611144235792212506721256780710263289757490755545864678606613366924384137471877750719476748972096540868020904384009236885946874096511723607854208309127402657597756407946683665018828929125733739122650703311781882505548992691974834932763926172753370121741315788497262819149484979802417888084164799449176837328535799005427198064802636752115389394221813474724779599352604737130864176401609780455486151623082094068246885065971424179747801915118984230518937837822729563653663835182742032864347440462109639774103098193649072228747640722837806234214382010355396296324714434472264436062094383516419610242812361376336681661297956966933360417638296133179698276641168094904079644468425474165441363756815582486433001831412859805653253705055829472007171595728580953572240122940721734406240688222117336702464751913061643216252737669425421773099346511597234526652829869780812590569172134798149781398716133761343664948245550834115964996095697801702812573804947394758502968501199205690360446071963340431895196391109065239011822107898249518725310757588152245583764616594587794330839379145430842880380493398320072973844973761838918527951556684599027529733861130089321595221390079008072658708595565164614255582143714439926126805870041142212963702606753523444268507974031183897933867215136228589702148584249721251416826078839887314284530382881258022449117850289984844708772759406194068238932235957840658545916872732419611418122854001052073287785585136159751665568996855224838774493914948266096676225765643890453113718275473477245763606529056468034066858923504478232379298750131034478134230057286295868150196703245866655039357708141531293676774338264289987726024915813334829328458849948390824036365858812049007567339931744787285378562984630831384417309890129158157286264150358379211491359411766924322697477661068459761435749955214715424445178230529066177394850775393307570026949383507211008171837771912081692270112797421313701921103789093808269335362119335336364973409387783059087263129031894359078572029535558040577896590617197375194355030837498861613306189671372736471899829921367492096025716794306776400609379960899716789754302994420297770600556957167951901327493336505099898547251194336080310719800412713688191470781374767891826254278336237672366037531476756808167768448047623952963080410472152346647207044058541116825464869482283924753990422036514105117832054875255188120327868396843352995569819159869210800000234647073536659802483102371081180974047193396838358702115862715078180689690505754604657211477341932899904638127453007109376895431886639979660116305408468891614609804467380214256504294110086835951947456471283895002805370746489968327991125005524231807935746696630835813681366670482978139687225066035249864001029078974136765174051387454714939765672491131161277393357979536065455334380121981942886813682950162414389507659182322432256260060677705556390584978462599968835925008881795691585967879193652715329818187977154465735735700308007169901386429404524873090993362767701146461326127309335773166023931745104508036308061932493045196717782454368553988598093729910601459387493912009565306608707667271966638182569989548512138023533320682605564512213699537941585528584532387691060657979203327562881277873536754048956167074029011695585999676919666533237968633195479170821264679858129569523098213458063967516186243124598488428960711007797217338276741907321233566574739391529709565253996675048177094011266099505687270489542448328282920262827824697259625272156847432528435646397167204229798226355706006539290066442754892636790652242807908917242277399259209603613304101262088929092302706069513206794888400307433254680635629721817257092435673638098566616994728897265582770718372186194415162705801727767923395330281296915561511326374367989084598376901326042052677220739708862341694775079887265679382427213044161504469924707448332623068944727328870818204058431258872568048109621764190887214410809289552374659531497185968869603169675254529986227361329788797430905840734521376585039205978152361878014246878065571448764341544271007094424652982591467867455072897538011827766412076600477514286737160830515460828329986716728508730940901672857797522328105245305892649360964032737594053146225884621396254397767110256951820976613584763577878862123353087256981771003451600276232237934674452341641830790502739303336140813413246728338555958909990383100382939990582372906897937591426945405012646464185596098129320974152043814986664185378486807785211311599727264475401758354817210260039265352365380608478983061498900167137267302755014770492692954265506816462637967536248150170867951036246694477852875205361391905877872598096141244560320394699519912290436526119377617522272600744216096498628102998242802923080115897711304150074223973375723336826420219737849515948077488617622149690174825601731323499129828964098945899122500114120708111593862621906408268329419294678352093003040307869285796296689814897135445060405420311608768544576171990541253808297163637326342916161859691540728716765863057133537215478690863329016728208602272101321551003974482213199578960647271394787156562466242325775263467606526926895398202294170768925529860229937928280234688451875601420417864026691895701916671531636255875110249005661836892662306902324722345725570223786682961755830398477134311647618821528640146474754032777680785546782397147862943562514426749651467425768181822279165243231352019177832584112298176423801022243105700278476680826962095245672065384143797899344023798004762134076799247658642712665472744608255464162459179884882106991875344915209462153645883900740932036003254966459660582471710723912489321023580430401717273642910050912191279521206717170700502014833656782898554540324200026145280154134928825609237490979734099191546289671148435483422005292182145112804011870555195789634153378857917521534240133133775611015977048024995238274997518884019625032045450749891242154116439699016258323181832598153673688700678069323441445700321471136831540349917684610444300143686408701372013033991674342601071276567216150186460645840970395984797102200372234345519655523711807564457129111950444093381387073221214407308064689170633775123484129951673537758814883469266000123205640420863365079106088292925186515910436721460005838248906661411634245504793919810983490656528223666149972650879523678864796323570199860322295276647569000586079751046649707185076085208121153539415746288522473854491855746173770382405112844041639059056169882435370697192247010683787953682571299032843503321337705844362812355480927993035144396708362017170411762179146607906783979492141212915398433731474072742056610339759870564539034183556893153553684230030844236831023542527952350232782325806893314468414281698600245071769928426815934548891151132047483143995866382138597893024245128724382779140952382634346702500710826196005651583773571525003006588975269806899846225415812441132678584633303524936267181082669282444712677865860821261576251185253099097745262598847005172676269433635761960692369761871904404585883605999466350186886176823652594418820325312111226843028313134169123804124821011344262232930434864900265091107345063342121095278678276113110554619480088410424139094663534522147812865852732694032144825244815238582379612441435593647134460182241782059622202094026044686128516123490535118539483456187741290720295569062644561205384802674122614140673212202100608669883936261522208778798445607349557404881727226504410388052818469121744000881570854901820290624879134221718784774557568560009725511578657872874718892669845392840632743818477572395951490773321662259741872056764069758931765845042514391953457752248729175825251637363635737673418118546884096024827914545752738807473647979844487354854820786683167055900363755656896333838785321281886624461922354095162484619850236317435762535288390006663544655938765288648232368176250760880062589326748858749065933372495207878373375036439742317689645484501960003316720055584590352304821865162969486975287097830495354788488788126460401014391970398600058701451059765179917607931999799828602014850857889329406263477630552664512780711740985276516976322935724058734057340610681882399146944200661882484218367648354480415771064227069653349347087258265709410314503442407176027704702180212741342390937201211376376143605812178116620600969576460867939504049791098530393245869001544627577427878059753526879857450185191025831039031186458085468563095481270219259497975617332164058424841701224708842208954987584463386161902350564314895706626181935340048287207660140989238428580566900066973921351488973464536882336811481116307276018131446962788278484580582082549626616983623741030520707294460204517757698675381255159535317212042524709754077071745465268932745781179386867400440313136119091211549426931341263984731428853901659529527722708634791551860270070898781957445774078380647305811587699883272437676412485451525603661891146839687150496799951189310735340741083795873914960684449525170595395390847400363527925205945570122993508802043081367726424754570132631410500216769420723295738559061906689531985874145566882024570304521859086264795380481873707153549554496973815685155564732974966052586291869962481263045975616267311741520692411632524629692826023818957305788822064932606494391270065651451128140308736053660452768356928753275939390128707536287604879562053407252222995436492377545242365442637543130605588353378478000931675790049473474764217865000318272930088306666261698353805052724694545962904696933706406939635585523156184457907602332651652585404034561405095822367370292898739860571893095353707544216950849187961911503641778065507330736804869241392616124441626474094980250880200713095282456793395196653398079135550254184749741803885831571101296821602516386841006927696667870735726232545529627729368137718905694675400613057234103773795985795686072651751446131094713035547382506442012768243561453487881354967417573908037808453972435235572380032049241694088362642667365384607341943753371963621253712427196476952855503457862282004981415348321194532764864555854403908182553277759528872280036070480890225428410419035808474199445453482967103689708421483569415132321626727723055239437297962428862935737347420258166481371882190860473134766342555059096773716805445041068117632692172922549879055530559682533124639983247023189011523313619427773213354612361891896520686885609580626731607344279438399817553256610415607147248612259043877526948443342797934355834505653322915556679095166485393652338612526946092393746454609899605472225640057643418873810985599499212270939601331401924239794018409963453335632106384059175670567158166875500492943337830102935113571000285105174072088708842292035972898495617422616726284629563969209941358363288755023236902712342938919260810320952375891606308624214577811459497446127163464935683903959251777701919614262175834535828435685191403664837052406743404980963817785530327004223111968475483499264204182895184926802675724148336645442197952397839128458921033808939551855062468292946314526610759514745699856630414298730029187914082473967209997400526504354901967835440092968870000419807221087901202717655987628640810047752917666432116918694998979171891268670267249885900195825846634401949736662185968925917167470375245684777750535834368863122262301658579199848713851206486109671761035215575677073302113762422186528902375511986696889988584851872713216844836946513253529420654062654324708118673559519081762028795398732245661193863551281459659734318134577959332722491020228854251430596056709447016391880955971670637394231490648296504991637892293264804182334770500979876835503696908217512634634211769090884996006553495248356811569273641470325528675460673589869574413171090772637418884789756542082062452748153350368701102535357242050722617002234085372306134158581423805528515525368688714998233009785706417948629585415212431815782337565108366845544864149547373214168544992308650105066048612236207069411564627209815553750877575316489684928254256940591925403785368424643809475748846916619067151060693807687539061249282075440163725520169352224430624656465684910316487837712983829011959379682835024587697701525412863906392425629032939905176133230048612602263322910005232897497775703035810477698883735561033449654411724335409814670968560679756457305553116128345703705116478704977714589358001753428116949909962487220561611514577455609686862168709419034399499975494215459715980015977401157995189670164501616507608613094554311321516232571240593436784890537679979777942568383908039682227766189529260114006543154144994553762215976051356720107280713320985938609274271970132111312902191507326963935381084808940858435994398822464279874949204886015623554047866340250270078975344469646816046249604700147345654542426552904107271356129903138847681597554032852860448828207636240950612907416167582216516933790619786440654949315950739724679888808178250204818564758450307477479384056084956558496248791911850092623799597787588978255209052709640835371792510500067962792159729784246296181827147628180709991423143715629902399552437505146833490280777535939136029748156017267351157674006092028768378245208970465258262771878455229946758461093646922437446696164582989463139762102796106913314625392967334728789555327266241189638575107695738235774840427156395633587317455047216910261146991445475297761694395915725670872570033584368189296174296532510828389596387761691319217951926472610225706992117642419637287478413983755836505570308998727335392601172495795596046703189995673104379113770482286576385260060142659383200518817757012565785294510841226330662535461143887753955002489232863291032825972732397967707774991666217799832538232125944223787565814495492032500778991796274295816853762278177104977195907162634338066816562851048406236484631896275388054506427724633786853298837801416011749942105776341239958108379658965520378922692224439435656614917260587679377375265628964716975239327208573301291111053308995649127039070489790525618411242294742984083310690959010273837650561836251549865907316492905169287295885824826269238086787164518666071041055562987595094339917688284249238377741082344995871288712877136013118543749734401834015968876714652729366957660110067292475354838057201080320980493738129423337553867311379074756942404403472035492681403902815347034918214028456140793661176248832206545346198453021491385364739071945610885292429978938335654142631398541741549666504439488152119173062854694281179746023284163814077579450724089456296196227214791269020543408918748201147263824691429659937414106331454917668928380590651974866440266039848980696790127437241977964393584382117982859656357076123604316675203391930004519614436164528058242184910105147906606622606958945927935029264230635118490340432661855582660891177210924813380633653553692246692654858564387271758540246661079294605757497379636068311009275169279675679436455997435906638786289322179271607027276105349294344763822038307554604038605887984075998176421897951397751015211667289742074891311496426517106723212677361814298141775609278955856347734110785133222216883451374995624662315382459324201894142986785970434938663386297996267976631739908814260276086424915878812928102455506491436906339020326639534496000922866751970076541270428291626754043009307521699744072647323097969701073227043009407936202454566544102763342070263914859712061119887854809981827364764192620944722487865390675655819285690008947900434486986507303442923095512750109772507070427489653229418165746962092625639253172765968907827866286584371454610204287860512082291349095732532045074732185521676673656026348435458211246489616085196535572298557570677149078812158727933975358718441578533183279940609730348442799067735328784846133302901742058809047745241666321909073240868952716125794208651901948551463513670939993232703662446761108675741011761117252759790402309170553010925235218805579125553576763580071924447839604505170521179953132242549753012581838068551902690327451851213502275838298251050831806493720173534785423315664570240306452918781897454001079707522292924002115469681854821984948016308282292598446116538404926898149139913283954454889631309389236784512104650383267879625082231758279105520963369426249340400006116944570997986773556409040539859021775227617790880624772877146551136273931469757323711443541445746414280667793318197118358630917713292360457585920830446542059067325570838048735686885603527459766324885156457225373951549113555407107368338460823598073035453572709745498262387202112457011204201198958298492309733365266402861982478369872152799767412751786302925065316840700741561276119325699550893866660695241767521961855983232973806570485818660718898504870154213620686256278527511610334533781446747150026019565208133227121919835561853434921163865751912505627128103995177952366775095360858890161646783047637426853359126756274173928683558770666622494201015551660361224717459617801960246039479064336596826225351957572923085406331096664245563605301870949849439296730459275261108363211382883316846154860082745419283151450280473040183776054840209403476636142896961616645411108676195376953737391280401742532871384344606945095708202865153899240997586990213226640486425914133649235856887405211892088589326138646142515356147267841681414191389512917553981310412930817329887533814971555126819297030107117752602259691603955006542108856561690048950917466783639700345863396291001915415043637310815714712916029652329259748747403000514218763545366879178905886653693701478671624663691028901340018832004865641509160285828225169824422244866164278921277225586905413945716621085041026285853213446031555719657491786541113935702962002081880955738523021237601373170618010013383812073140953915528124202851263736536864355612818587406286976820933319016650521212603803746579331938858905554258504695001148349003951379016908232993807648258635935726603888354344536392034762974125781432952731655911885142157163405412558088433924737410833991977846240973544649632073242222814276831701867570073826825000142503037645152602960136607123492820296699587853365884672036705835363319131354869427937644412857475232480084104032553175905026504815427355052494586349943352722636063252345579329586942631090452244381843984156602748274703352783920235367971983156598136399496313602226183234700409065764725643886662472027433017086092020572755783031670071536481507707669253894353299050994488157410781467248569905609030489134007060285289692804016968213130394184801471091953933131932889864521554403548166901535255232564983300217352649250225143130417646104901586983409819946364622248064047678422436874028374576941881766701312415693766166768198608688728200272324274352359189327422334133074805786575743602929851186399756592275638311468649523532478086845414214571889604322240278823005340763408459210249191220009853703312888869654781074469737753230816433611468355603689476708580115207076292104440291235637118064478518740247926951565977431784536961834754831263305776152855877215894056744857868746147419698358324698693670471127315260002571480284352219175145974685991055040685501585926325962753806475177848254643636475509186082656033964647730886649223594682530321022231434900668243521413589687941750299449526390794201942852963438904788107443292690032457413767473956476213100709746868065741605075317035844166779500756673595149318479726015006810172710782046986669072263534702392551530595211948751583787212290703561931946219665774007894927883092114968885724386489312795399566245085254144176939354578045966701462886969029863233617041540483710360272294173320309961878518370952333243059117993183223947218268816753234098310612953199114872276973777210036742042915886640868974422171476678642237269680647068951144315504593510510287176538392439078184953925480937697822022357186484552494416710327493499008255024091617515007329942423810317881121289419578079694274896550349442185792493053471314758728497199110362469903664038930525914257218130987683488030828415630593165465561260495652843700222056177600305422536863045646176102030475689408344375798354850877654912685420893165550856689115255439407845611954536629271079495061236196724776050117389019679022191850028936102980699394195296886728311038321226509061143926754313934890249718510095172424622884981145833729338263174273108118682567073065043387186470068099307243852740584071550934791730826927338040641571213846840868191995880778585637824230012784289649824287572611616392485008942312893625448628954142155402002279480795723453116384910751889161996128665208993037100245401367185907863008911103293696162468463066558733002762187969109630009679712796399251195131597142095045480082761119111679467741606433819267701223019984510216056694007207331800724842563598323087353727588769796376373030135113636755852413408647781482234687980089675106286419322671269793328650722617312559817977788186678160534272851393383832697800935562793331766359533130308586361355929816703979987430674221398564702975335734570703453673391649639064140358786536428924173224852326147150176686163211888194151995674795484614339351405427831262687942835590616048266040875720576318886676843267549571142827807520111144806128906960315096809877762283564894836523078744774246876382829332387942568923268569503687409480869489965430383752261560699644571990082315967694876332136910335907079120913875193816487915123936113190960389043905220663853093801326424193293043719804152495577575168345884250270733117409462440319116550629085494945593287099640415649882015021558451383192751177116383765353544313421738738542095695707511521302995106384578013788120430479190985016775868225679271991965470645730717162717525019149061839022707366849812573159344119994917640656450970916160939207567683148475783113418337425404826215746453341947197998098822530999468462461696418008071761018447055700197689192632794598255547121390484103975554007935028168959865618347968030666460066396058038637712368837386691074438038078875368231369894377156392450913138958858044819237098316233190747638659028972349643047274985960633506604531203493417280345136227727289197565811168551950373018185126346770912778436793654295150802324147691123705094604318783590582897740317959863776556224928714068812895946679838017076415491237321315276947679158823966905820789768916985609985009476376542693786586096491496278988289171303923297420444707834700312877567386432522238017759991291120243012559065740486941674826642232601307967630841974676912604421959462895158626408679356929069776266955057831726791122206501370354751259247844447166346028474328532041773223336547682120887205256283309659320185399809218187767471550479960932584808737603394318999852530758375608377445724429468151161590032591213452709219532522137397139486958553231016060047186696241081353080097280058394195958926044255999914388293331278934415324681715097698033826391482266609737197069384193675158753143602949791067127893831908408784418418336795990892308788370163577198905561159690086868870033053141700137546759252117239228194040609497768081238429172097681826721264544420821700368955586481402524150723661496654462707590786270800476324766404804821367338433342805697514022385461402078073787617181063636618879977032751709252598518409706625569974359544720398778194533930611758735273519405983812130566407938996672437318376643041772736292750746693367900914407833495027142519776455734883368612285072443494405328109009968424629651099672129298334799345459675165617959363094489615511826676633274399940178122393709173966742848608911197269161340069313982103401424777518307489581769660596311154779645563816964331454099315023315518714019910020952592628759648023763601174680018929141340456696333292162021601891001368781733337742273445997345049975968723336168607513610452336358421168122625576713973924344255348871953207920526736546896609833954912613622096405345530816891840043014306539600603901907723958182940008861655219804574755527646907647124942106208549654729449804499397034755809198750157844947882639558457042123042073291691779205728565032872618187087728642143913589776111599264432073132155221381850987964362356046916189327936824136866002755876795981474032085641394220484553615754005525717086927607709988288066675488248518783665664421601213930550762293592937459399851017636867903251768483419799457854328824365379693116825981291217074761483210702362963980446706237968011676391228935606193320890184096482973465212130194588738955451662558788626596158197273892596441741045235342230428162735525357703102704602627666254065723402302858587675421815750673252124675297946383038063490282930266237025726714116761774508324519363104277564268414709723071967057938415376856188170370215579425274271082057712313947763864690367119382449761860992949776200413168446349294576106554616755377979592507367284065366998224708849598953158351170526512369873465050723353537482190629791305014463577358069039813126926046144251219179502335072371809387301478017980255699688852403747138010651397390871115893259819507887026846935260199780771330304855255385110389885453769120393189390163754195645216095193730135670591461759727625412904415129396054220731929820556777257735778831769988914550172042391451067337941985719858965072456310189256170986479378350043192285075160618280938000147791969868597401937918600375730842247440926150810978945015517279057648089947902051139730863199561380683411215000573194394996592620492311777295742887776409575288145182384826750863023324451454534222496025273296058323307840504940016776624263973218187016250894269358538328906658643898877996666344041484491426424051272571000224438853630380480227324839551479412103782249818026440673979170070686558415176832479162711597538365993158651795001931597736503932849274425593157070968767761444226441469585694964295119489558969011208326848853883705783751263688765528592362073744811367951277786019039529755301153257693701400556088728777346913779278067056015135448818933839181761982289937896099753725757643254569873746390536065414496770384895474500162182492791804859174726848687661489243834276096968562053773094518790528441952244974912035029851616944744243342071335130042163209701859809375011155402908101865587439882651845075451174806671085646412494245743632528911527288842666534517621322549979282377502275463694598321114063407763377802572709097122483441664094459731231972827744129249068132218534489742973978356507141831733598837500125172177755086725565914967571773657800211949666931540425339886811621471905594151167088510345480602187196225402098466154985931276542664889528679591884101232255465064085072555980315527195320884581007475975439916188465140646209406520199874755496728105002033604611814858936935242507256197633759476370504302019151422185129226334165727538336630905637410186413198735233565473739450567559233815031195714306911686580754410263343639571952774311239805244741995622079930073793138893657312453299368778893430402638438166587855659531174367876429676410833986415103863718862806888599610728926316829483853836609954703015501716024899634955772520488258720151935282072931174834004233402020350886672488704288546737046800620393803297431418763428561982735934132393483727811358553923510538907803077211203743527109820777169869632811792133254786073834577425016769804006094146325642924783276904305024493928794681282403003465869267854155963958900637975305719468585555114064829737514588598804707603723403533332483667706487015240646873542797952007626044777072950579790361581978184777489035869482802775729928318133563934277091424020144641615676900285010925024596078706843836273704677321716881857085059289681548395106827397265117295893925172249892435272018564628873191120362918337547998332608894849935520016141285782586602764640760421120552513036628033076121952858117274074097983422270121291671878574876294715654829099887444896387189039567523644914845019066112902727578993051960961054272663915589420724268656202611973339279421561102425704661698133874939705217645629799884283777791564405524183305352320139265307950009006870052509987001379152298088007421981477119863268802586781108526053157292599813252010032636948802724832028356584933629383735930299573744532263320501752665066324723588781901210062638509270579484705273160719217491121155439904630580762980237699684678446029476504850480463059495240016496488835075972246754468019000434129240050362512808299835249312699089883782990992850853798453201981589712102754473723203594525350795289308087336718771255515684868096534703609293427121647597043237708054957509278078752069010590199678153220144853281550191703343609560086521972223591496966179527685588166661070690197859580827235464283512303363409294634542786116242396063858739893810281421587938045571193965303447568655956983115499018011959229147526070624684754810981940206428815697793005409648364862442000512500610731189604767339702084378440792623765418119948771085396818090816386398582180917559698918045384904329858805699343895374536337717352221542444083389762137721049540468062434885577709663739242976118135526404325981299868718705788078903966012022582978349508270126636493177995306924955354031522943260005359171397375491905929828884982928852900034616955545329315111516165647343328509892480867302311946094910005939930761967617362487943790868578802885614308870027447558397059172804896142854110041719636356936599987587201737812987367848976393273454088648159181211171218536411814465954805236027744232374829682933508928889445247342787657227189223716850297259822819240095009981163593220085042149670420831458302541204007472406063984430523581378820993389529205127975235231924480758144898778383301983063077006904714789164179017719420911508908043965508437243810926723758530963666727699520049560190969552885161983809396564481045990556405481075291381844339254765014022960644489178842115125960680168912161794477791535418892183792802145939672582936551503962274045736207460134875478678123024279648099310638611223576467625691806217723128197400706447465694371390207340188707277156180048994331642479023046766003378619502230654691050440302409949074109842150932672539277797721318329936901779651866900768649260016613234354088429957616921401350774146517455842470841445223200511058402845854421492947262217439677192750349727090104031219086251023992809567179506532285905675511373506321220933190446365021790414659159086602371923808251115481347202837225095171826057298603217196749331237188301179437043098992238211752542492521113037389063187497803708832015255649530567741141449573994854112402481104211011227414317687458437031191663635326814027071322371861325304862842725014680699929300436576202165597448146228699868700316120103063247547434484109412973559982622346537614820098814557530636621392209903568708184347708458110938845932735594456829329047088805273693362386543466060930428881975965918419075468527008739790996343965978420279920889287718148931375819735525205836489955550334377090203979421011060830888867991316524086853282327186817706424482548200998813310282700039551165372384919768350404619238593516354885747588356694888134652342802174250528445598040672606850535251207543685515956741915841218790436054559919719137715517520093015905605644850701585709819568944444911165193333737613395391090275499930210809657372719304599264967120169778063920954996802170689884888188103826455045123695100420739683285803377741062657270529596245893824365627122365062783599243962720403435422606843049481552947857070633125623985377849023007621783721330970252636765592018831216222223633811544092306377490958003242308452906653815201510884046938845699424039833075466008818510122672515854568498400612931715253662390050167790302601559820062021086009193677023668240592334647060477618108155294780235557918081274644374868690460943344033084354126912079741766397754681711896655361575586048888669350842237344341239544308674827827363475707188468827901365820386805995886611215077188479120569302270730881937086606915445177784526205731702337579893663170872663092121667427421513508466412901149952450207130783259231643014288184825947696232552366106121399383943657589795420298440463664107871595165507947397317326994668129652367540546434744408593773517241572269932810719444875796805580940491221381897152614940206463793386025698088727081266010597483506693668286102792796591934455502518156370732032793166749538166348832940065435871630392111964329491848430178358087777543094858356146734460978247818067101962341335047658754671617038148271098493958165891620830452537825624505820742511673297581569249210920303078217999227430205389918873555023358803629351700065167117454498143824277970823454192436852871433805887683594408527012327805997152723287570682271570843616542507421765265394757511028122315483627273456966256324082130316775967853876587004704463120538378049744024681267351375274447151337154852208597797032778350548797158442205101118225190970654067652602687079024395886129053992947056038782927570959625282229565370534609718723756062122772743102883007597356791813113647355199631073783667837177108590815125830736019540381957221864055567227216610259516480943354761383814012322824433987141154118995801602678141450532464527170350632153887548982894371872286251493690366588816932582434349762362662510891101490432217803194633480068669956805369330554034380874415093163611611848569637347994577486217578795933447292202936077742147585337553059129111130934860747981805427375853519862288048772254385654925734294378783561751775351537485389667386762838856481786229117768477658056796482156949217663566198843114968815563312663034990655777200966595761880552204082285214089408377970903829813133886214475305893270544271768280805875902295392926020303075121365537032348035055387345394874351539330986409276958732586895972113348452266082925017724373061816942281269273650626680883820017654044958477406761390342258729423871945341589545791754441371592068228611997947111369941484235869350158072497467688261110785461301665038957326330952970166085356142075748584336167894558676623507931565235227081043784868362300127082163138444429112657933242945182750865937260935880169090500196204647858923765630481576342403285504630288452725753889919621438951216271184917564773589639052043177188088731997263596647521807043100502321953960255216514321964944611653193808136935810092964516561228789118776886172440057397891798560465842883519744375802037531265482006648379013732980080527649145201093638561478912975675780261768741627700644169678253540770524738073937282388783314563804362288906584080213238927762382048418767626701796533901631318072807527725815386416557411536583421411481906737109423584805328352042463450072998979949760073049729711795864842217716007629984960564357542666986620912964788815617998749455771157978543516986659427517183368589826447159341949848997239596423379577055583292518773865199423638228646352262665130468893943436776805660101025076217675120968513027908524858780957003180612207563868621271929609957121349212793583173955736945439274184043646893914639267380290028453957678634240391825093720855469190397875592378120481805570881033896622631616774264216152268545609977617051483054618332779017025053474852373501571038646891843737738830173383202944348966830688480572108500624482418485982340424470492157578075133763949764030652919051981417696454135804862230433439836351161487952127220944310284174169216840060049815362263486836372570806306269225678424432816331299514615272803546238581272791376674952819036120943241698965432991094481108284828707719606040606657391655727426127264896237996913864435377387277087102672722170270384835678129809946367134287088729693979165969836249755234817276562563691437594585695958820616065693998259221340102997793375211974602401756581471520541316268263448992276440021526618817089150342640889757103130720898669800947616615085963746785351769330418010140594815546216711471435847391581920476293033470951524399283094116875279612587682962520937207585697276099605756124042917226560194757293367294663638799857803617219073917713387952584207819461329063003164715149986544057161254088334188778494306448096844281091500923366257800155972498393626638705943177331653997954624027505478769597519314761792869248005395383636838745968703839263774160055537332803561742941566959619042962830868407981650243414271642917522959251706480250087350691521537565756678588702471248438192272757307735415273789003955117344390036736590575152383402944002265262832736984177655513009559605948838924646580530305787089560419874165104740867822846182144169893414165308686652665274805350518166305382143441054962463240122892056369264101719071232866672406368092544372334489294243095753887133285362313230021043003740548332618182053099856739042115132592516856666557656315961159606290134910873896698169098555854145090196938077347658824662995005477945086699589028862593940742178341774287914157923467558552690101810276009574052329516810007182834056398377646926324889102193438554063470765048996108288234639665427289226931384693129020792923507287330372698472526337452828705683946808095356170260999841805426642012402519334099998105169867271082420369458359145456093759413189789796149610770770445642347560762216602271196337541726266842030452182473505161516757134758151227798019142809987787008410313841204710795109366501930085625972558115561637433923974559044223734302200895719882196743797773667109127665639351938018368138796886724038965086254185042647939526261124456241261844439396465488743105677552354053308751436051824824234391534003897523201605706827339515301830581103247894219667021754445456818541646040953746679001857698811324881522294629102953521806306648675273133688291602753321466532266767009637110021583098651586050966472302821156207240535584426729950413148576336693323298588466546606658594663083479876165818644687567045313587576799724282704421679044100751629600855332056693647877864557107731420723343061543327899781055221822475167155619139836868231550123140796344857083663391172212782721045735534930655945064134171347986373344071928548797580703382788279223293899342804388406140214996362047539543137795920521607415280014186733019642782160486927562948654487378079171033663251172623211779798483688111099259913655043480208870802703539318543586134107202624122308441843306655523271197009808370958672206720062854391843587575679925616639858874229030094125567657464575523829777305949359537084759582235103551799338627054177467130896861555090181262136430879497354413561356407462535470541709149308844468246202401618280572294043798269868112940056050736657947962612131672176435118144190345776187268760270175142081257755374500547021081499092824772652228878855072421021896293055428085682097069262915724971645171177956980709392425571717900136360471117672403745252191087193520127759913069039852747607232912471031923113635414947956018459563273910666988783554834833684556299150367680888516218902177249058761698953564452579698602861044389676962997288872942895234065301105734637906403773751366368842398557186591774361988724908865755477753562795986883053245018695106267167019044277971978717949630990356101719126613415688516070696223072344935430915514683671768643460025326834849102996505878025914429323888171144565344671845794941884757772943715456724844425164151610747611598784934540786743049531946548110638468169398361250895932296491266462248689432701685807501371928730095688062241470108025128994228101531684949685634826919656943012700633301647301443086512955991757934619211353066642011114547912205952349796172115934357795264463259282512927429027635574329408829968295393478878987669745938054143174521047908643988187158189939931990011691046398344110878180838714416042772794295018733244211065036174680024619029127199074710415614453685802730013324187758835888630649200582216476792697566248909960912722161058803990893185060938906466368431315801398200442270610088194703602672246605702186066709410684264466973339592995260905463003827205752327882285001961776484560174313940722969775953277237840890380909029689299230368878912255431320822823951462544252518046158332717664134967655708081795590651373629987801466353988896508492859814186745570115946833523227420615904998031982731012567453890935559606958909238733282688255879551479802512934731909834449986720725549623348077794261892075083102405828734516298132074010522661049214051943235129549091436638099305735518836467317458087716105309077534187007176938626890622051279696844615602319491249310161606850732281185222730384718532828392101967612039736664501812520450566185935090317625885592246176208015482948056565885284409194154745139933070316142419299812107582852729882834164116254534807627843002256825609986146282355203728206196398831262774732211634029642981775584931387752282957238193226621176283482463671350045578344782135238957948841127903805382980298462289384845179174263080025099553862252226313010120066176671154444199413102251458869440361378991920009976150814158220870656810564762796888238716899139378650921642618927744617565334400509097263441481017220100953862310995114428925012177904345171866310425551547855927389184396312468953329763638502366541308429397028684093658732146997586423782151904512470598860751881267885784338468073842337877913327718163826619978425195500507654558543333236639203695106075809812156937465409555781538251147664587594330053765088199017143235264788112499188370316598662003779201771284671621479219796301522060283279326311442692355476911325079295102646157949361776604449975765872324571202038975141411102975506525272681272465820729623415995967625843525138610737336157425746246114280149110577360191655116969086089528719427286516986483103639764464523268832400180401476799078579541762562285421066832970983461602940704082477121399106445080704507730887471293455677048664912810536644384985908135077927893187176305876698265836990016858943745507791552254720096300810653234193318090777171464626715740364654826539618743661628466984751578548311541464769157042079675104847800142108839851162738565745828416568603856214326118217354954044813796267675874654779675320267271110784820416885785640053969267134014582486324906640896162404146852438423055497287123942702940511253024128685192157655221755207909502307571995291905493885933594353130224811943256928545545976213705618570018921603464893270907723079894812999924618261635855694957416042587597770554495445410328295936624114264729880534981763637075699554248500879188644464895507772976072453722467130633961628246891159898512119932897835520817886878407102920722012328781471293655039278004305725503306961830863010549870440624079698371599313617298239952860734091475739835310275588654796415080329182744534570858137423305294162743867928387257656546549851910111319052829355281207238940502964052956257123703098054491028897402425754324684180350776069909516329367762557056519663634715527758208072660069673189449319695792177977630652170083931232352754782585717347640761943942454016047748681060748603015715762678502276485649443009690532315244069692116644213464327420617501699646631085191463051910028709898330795394909493541205431835549583320031693855450518027977645251936303562559431329438923357014544096035255313257856116871131119958150365138200471231915259839070200351758249810507854370025143126383817268562150970096467417906223488473564857596958816140873580422533775668289655691562005125811278012876660585548961647248469659031454768847413655115572810283539496735117949546435762382236215237968616790635656904257293521381013336637363658332595796947084172581724958496664629266001505997001695636185141887272695082579732165375805398356453078574740581578585594426831846375137092918975281798262335855245863631837694292933988919739793453221180837522921322404572962790121390396186135073677566630335677383128263913460997556730568382247749466530071874983366229401157482480387545015009006906018139762490528791010441091874304525799168478280151237019562000425179408853024685317581897347773042198781849853439566321365876315520159794582055778129599339421330135595440135712593580257297143864855509591412462182575434301131805208410758377103393481511547842979531302742207014483825699495202920635660855794005891492820234409950737084757459831357089492589098173954149255236985627758969094535122223217297167436564684616061180332765989090517663739124750487620592982063486115545027360798544875201581526337118259124099196787968524121552395961752708151156954524228036029438505058965229397170697999878508296998576377072288765622397344479132613184126934494554399885179523900307272642474560255839007952209905124153394854936948956070849971507794209821581279939999943922190423758634971195023567849089673595167318853850157769999733442641360249844018492706482916447738355486987636131405738850862442019790536000474128715586773786214438710921994095198992522868748490135399708409830971691821184702878398993273899457002715838134904083015906722419854164881074602892401350554568506050212807492739389200084075622955818429487486597174644215392565472369664057082499753426302878074038995605184422575539313285146605957593763923255496474627006126151559540752337795945761206342265909593299569166906869679928686466700966912567810862886347278289085582522212346859066973113255092337819338362176006628454743118736825870103285778366174280694871050563330340251313392711969168791286201723677718538381307574581152797948690303324517810175521945637852978423660984772593718183637161827947769811984219909262155778566445111939331706107766478344742385686621625104777702616762494037054333439774210159023089946602354379323925530435423482418759502393597198247742863879911545389616712508353523738011288272620150741061865192365364742714656390751743367489673926927318241477953735569270315923914964388073970830548524682338853345496097729232519243772977255287826229479566638714504265348023290202332662318486837663567369722259487018536647467079422428034160643791325583774960644343566643501600388226214774858401908635341517388601195657786097908118694973111560545231143514228021068526332918451391042002216231362475864373382132504694744877636555349818111815300672834893146630331635836036909095316505654621771561899400387707343070777200584490468185162509165002571037422094495435234746377830556117200259851993733038410863089887651222307606590338860060819426269685667309059482838014293828235658264285770726701698840986844314662987025759348769046741198052532504197558039557724224787679398404874170646237358307394348846040958271688714072036341041804956216005354770407117422047681838445669035679001106362658009921754119446346678697037204149334962635665813297345214718415293461002144772444801366922626442060361879156368252478759283686332173156583665877356157393413365802306252729042054467878025972808916879160874719905542423675320691817879733193291285651575897084650846759065572217279066270118712899679876725743870290012921457936547440515050768674475582487391753344791745120004064524923684421674437975895325589378087906154246899957096695673084500639852584856082989115098569473197935238015130424552816543680615720393723656049970709853756527351176405679960776995147501512063334403091231554079606011604759165637665273923635428433442424036355206284256364983139554608361198754800520703348763721741255840826222444588213153728840626253014853039225870553358068695907337381600888648755855876272862352655313737996287416899335979917374215788839618542910558581881843494420844835985177523747520206775216193207460560050930782569180011580398857897940844049068103943314589523288879147128962974674472224762104958957473921852885565867535928058852749287506967301050342326179729903778253243246422465274070221948186363562807622140617611479780224180866102846405315146767207386294664427300841131354966143765086346984373636769415202440196499527052222939377568027821358913081011842674421702033322323491176273677876605800807359590233670112389629315654196957514121950607011917595015903825150410374510309731003825680573381203499730691039260360560410650295617171840107624008108559474143379079503355878017342868369202476190384282253324485805343701922603578601203724774930743160354555518643220346265380775277193700648782104232163648668585380784764020567448128875803406873374316070958633876115189187329350234274178229884519622106764857670630576941720511942827269914816119646560763424355905437168143471667007128766683638278906072850047734142129934395667822051533749226508047948346823771857754830165094721840821392012535109887218870522284053930149853636402774749260427420942753585899816865851805436597871693770728374922243919480134515752128493134839748304666397023206686183849143108510967102972026024090563986567268984405983443901081373128107693109317830503255411491962364362700154747230980524526994540427536491937685127214945015700218906837399562927392978424005456318304602730376237522904295516043993664812704990063017756316318734281550904873392500988646367612370853483858054920633770053664389837488218431438548133217683817538035789854886071318557917371300200545883849766897675637497093996215672348535989339167658049957627666402870003585380279196832273611586125778697849226035517010289890463588489460732962517427724705477276152233358932039719593506772473526653287436328917372967013583922850663414994177199334648481280225785965654570418381857906468204968961236278569901356167388499850787915441485136276063049225131022684992974084262323451466321608086983135854559353283084306165154105987640831222222904162234958618022988987817996824957929375305936843925472775916025839487973976179481830246319462511995997507348101575026652954509983903644484630162537804996086386000227281959173690530214777170115954871343869637343469284552681536561670088800065752795576451915827775396896307197214012467333242638075929358021527790026521388097543837440051130951241927706634127678317655705817590175160481544567818727931819392425621448418503685302682994992611483085009537165959684166594828092318282197988213508819590023222806005944478021317201539483779909983877340138139405629797124593667433925261290179499100807905791521878327276362670954714451109733118431338071121638271200497960441220742995677040549881583461763215913868373654077511333544157997743989283671002281114856475807002203789349994613333423657129640666100917460449286806781287539930853607742793217522177624758131612186572408891494962831323928690955638414795258848843576850582102096242085040821492328536993798544860110432825327402647356392834688989943343890069375715675547050957168631259505152986519901173095786448543998740575770953288267064998855638579860344865055066094544668307249907235759931530445335953269945151322675084724201552534908880069164017850762083349388233108385480235370372864031724107544851499726511342683774463873077140871501591552575223720282108472262777368028755402238264085460798717378594102443127678221079754538117483001930254608596565819149038361502477813122211935515751276174801343239731656098592663711546658759551054596962085816402405069042426474192651401851482172028573122631066212406512049997312981617500850751789377955594087323485553701703815225279182552793235170366761100797352511545415583788056415800557726912913764176063823724152548861929987080827338930160299005694847554938714956148144296786768456934244122962266915596394731539220987271386325116594586942479000201991953165323325678872160546108694389692528166887457851905763535073123949055922209645308803435517545674672556566034754009111170501718753552053533810119744462560698744878565088535069404733284730726499751934165653386889359065649727247384397850634818185279915896164614256741336728982618722608689211087896901157581913701516643466160506011862922839759033220568704503018157761467792044481294974571762031620012113910166744284051489153564945124596458666423322239092771185591077755571243276022686347421522802295102335316258167797593157801492578648971263093078829822420734492030295416923467707315123988498240229914256714979676623134761556988695541738299670112612699224514574799207591384666045210289256892573160619393857548685930496189300533000426836450573892117460639462891410498911657646253804976844124428074472233001770902921119981770945320123931202580072981206069850915009120394357664960970875537546618596859299545041016170590227807175289510614108644803032665875302114565969321902271895600825065209952684785083365494463860622625118568108482598946090083541165335496795387199561266957615378962355504561741526752891187636691208229863642507974362689685324124344582820107288601428392332317048270012538713861837638996821329210354652367520496222227808673166377928487362836417148841415643311104845266028333244612719951280558679497812814674010869681622184464407601794125381394633686173129288711725421002730767377013257282363594832941584922366176847614062913595325816070941070477460707741226755966280582540266543671036418740590506714014725473265708239590649171190500081634838769253924457666681721471651999025470620730340319786043781390682249849820421781102868911142846040289222385116783492784316124247510406293421480068071796725926387175322192292311474772444439682312875099810488372515585175599567607018199147165440174506330211561352949213293687963010737375944418494651753201740362226713790954606476494811793601586008149737129219313319521288367189716789154170665288199497418658263705135834164335349145224925211290124233585262174398933355788105737021365760970026987340225949756740989067687829012998771443053672301837315051591891428956943911614674429434849864406722988423514227092527900489725267840730896114964562137265861079967230166519409904712667609636884190975498121520618658387136379716346869497589112177878686004868677096932223008423205605608628364240746087058997930416186753749842467911768831887487233244211764011103546561059599084592560729719757792809325898370097503591168970334850781474822084091008276226187468360549406064287183864114309226652701124202501219819588064866469773123401190947812906785683187166841818223318846182040217381201043878595481261085904510790802444524164968082717026983222976926661432263169222467223068148764356755209513193870245300241577309200467634515521873725828974666030886245396606541522686797304870396677577935134417116455623255967494498005478054809935437932803932374636901582461910404253186887175685581076523923725238779477093624556039984475003189540640303657311529145772629961611768381485663009176969733770458591813568160602335159736525260068546544939155917409141022600730247266310543003585098463886689176131683077337171380751033166579205389649531992677564968633109814359904166688908837309990574611749177287951161431959546455733453949675445049797564521265177414411149984915216937449116730407282675955740474225270174061296749155097550852540891381867317143413846164402338195771533233632107305687144648420264561667882423559200083433538360032862724374873452050014362571744483162852208619392708298110839960697362704986508042259674098289287753077135993272820554672267000730625177588649537103244597865605506700212064984096885510568021010549878112835377088963037448100355893293225183346991563021577420346501219484872840082707362844137815237702136797902004254090727078580420890383893560598076734821707536870327662999886465696131872721707528389176999723907357053195471582062509038164249859948592032724790222857010386083078699967344966585272012364311374238391669987830866400832504501004143136620864126889930810034028569818500782752967664557734187826979714869817310393323412201959060047423552910941494439703434416696874436328211191373039888920088256241282914529086814941736775455777864590277638645672336626197161067530134802236161265688132049161801253903932510768434388051499093517299679421844042366997983618646075795914758607048878487174090414312652751174811948238252815799128231334020160289950307985963698177553332926382131205583116492519065340599464085524785132411063351473442391161487731538770187460519932635527083127349565172016944776104896442204147806305562057543086548040361180581809883974935244546440233403972201124983370709914899697018430143100672883539662995659904314310343605478444348074622304222413788869548980055137475691094422828018916567361285047715247387555575308274842795241004669346935255568634443518084415606027777286522204549138928548308090466084317271804024037509666089754615412265988862724770958401841799910386461486508379112158566395518497423059780853918371298293194523173869060747618333286464335090453681244808419630176905240106521701549266729250648799344761022521210620525612481238181061288758911750035312664350597325161583270288159062557833237262069621468675123429959063436636926784126965601144829827158822600385660013972001972963912099045365305950388151856858307858065465138876478711649256440725911192405595646704108234130126379791830499770231418721225987028687830561799305863066977554258440042748317191108911431714580173130158296730346796592064657849983698334085636074560742928749971031240254162790338929455009357682682934649469473046663718485333544167088606151387484158847552788941383904557206281735563735284877882577901322620307238025087178742135952431505583167346278845838536998631083905894417998407851891307453145966733545744858040020807953960311559267446678371796420968031943501199390446930783969611182446307473823262147159801944776532717619713098663458758493778884869120149186501670558681882473753900146303247151848895754185286758040984943704152214712201320847758322407493111402112020735757517179898051992198007779258131314377633092787438941284697513340701900561158917442364373488940673476585093784956923332274203333511195615462413394896143721246962332547249619095280499047926814097183041431893875935709026539911750408934552065466784738977512796156207342238279470572927238367209902668580751628362228602304203901165161096998302346537063431772362750869885466455539162526261618920847171419788438468553852177624390044960265303966960028464665187178418422491847673021053470393233972592051127880323869996348445966537449652318143649755961090196569623609527117861141159768007871084051696298980632764759250338820682009313307475728957267514165272710377229529080694426314506707992710265411262278305386085921337551402853195079243559261686916417322825829641291769701080058220983965347120321230849250134899789493679520923341587241141972138149480067885549801773357854247500778055119506115962285806817705169920266893498340888071375963864905583631485706696123521485079757116378774721240376962615858639756019408797536940086593159962004779575678100699725716071003966752475457484686618346296668777763772646755585073314949738699151802211999572727717090898807538214676187177889389697212089670324397782485002971479727464537283486035642747317200095280866175855397997028500912135442328779600734945993075884254966034594809240412627602705411124584973169886580287961663016171334869976127364306762228701239660236643873693066061361074983632403799135052864493532995779216496260942482732753735543466334053955206199178460125893746626828955777309005283006006926032343488625560416613073899660548995592501727416457149731575669880148431868948247589339874385047973871894535012039102408446830848083524043740860638833469946371790028579410275563666463628190762338559141121642352890357396011507847740697746018792803667490405470562481191039165682853852417887392137464633340509855189539412125156584017299839559345049620426945691590864905965010091185118220623202821725691305048331912322580957803057396029737706989869215001580635119181823318996665595857109320676406965838457250653343266985546469149719160551425926348500120327041667758295038123145210418968118758793836958684420555676107367222310039652979278386708483397660274248019920054564423361347696199070014534983586142764525019419518367351109125217102313158579232266220443742595287920251835067661765965671470091173333862742219622246425115056320116661484868086922144514035531730549168787922111276218822095841070053872949651012524509257896878005665730556326412052142079090127809045489230565568511824066770869260793190137252327523903716984206205773247076398089593025379154155531761144399442900527216963853576244886816874189031160296503890356059846735439327344570670757049860864299159180443831316710850833693399020548447675739760510112022561016137094231688742418501343363569079064891196893077428267075788313414374733077322017587117866611557362324007242282230454251292823507715233386685381459813799188796926943383076722340862735291504941532411444961608048612561870489686072190488335171832702345467259132305544390532122428826593042564764481021076527067461355549498679935296515793710644692847509632815327224014376201995214535471960496085084473871148680140584684376215848139731281636349203375087627710373545997150435589086920486931858153401271059147067004274815481078356345569394722394353102712995302440511476656133188181247447091701885285163282252484006758144942224776872212232069285095969996265711412697249384882832024103903416579037620383233288221077417244976229748253217739473530531047744326334414179690692070546495093722655251734158813159381853556374869287663508994424464145473629232026912230321535800261887457779511713976540079227307330305895119244146678839274694362499025958041960453609550364270858926718478579414264095259444345149231306325224656392829186741146280822582480077802026497137723552514877919244979674146657011707094294168295308361232807329045507852244488033773223118649590715423795574300227849364595222076594180450041805843006976562150947108778910011700026672293864063920877968177687007819181640283621991970811556335928019804305539625338235290300627893362344103610717460310781150268311133703834060155017771885311204134663043401372405785390893168929844850983516783429300552217497877408468857740997385188139569517817416277692163427204975070245335156085233369896474650675536375013411770561675083555788097204933268789088635659596352597900473587619959993901899633521213776150440968545887418182624223875095360382814239395436202166763995413494730217690880121719782286376464174723263537460862430520042575206227581622671707690201237895281938285425046027219059734940397503321115027971374751711441888924744866808099512199127973638993431720906178458828383383219265523131489621127207125432404413414913349954254110878692785967362959045870993562542853819225657627439893721449740037760916269080351305529355794451506150133376885362941174661883547028117773386542286303904097553257949939602217619858090957891343899441228328586680715579580857042047501993265034499448975000139654399383574854204018101003275142696348290718303341624641064325380167100962063854167262239003207204525694372747388681526403730815283389966084466742340057260440276434940192262235281324748782721843568199330292347500121518939367984656943504272404471693573956014335664684396890768582309511397483314606927510047040597167664590768935267701001612273198376047600856517729715536717438566773361487351207751737123886810145088049901503156782571134774422495743651557026777659187041621114214197690763444755600217362090718615159486299873784519216713793561803041129744267605690587389802499881052144706681155533506913096515579923022106311687542644976174381942445607168903836692579569694469850421742908317087511451433041979356518252721563039565113457871073366158235334064505761093514279120062887076204875082069691454801620926656959150933856061360955463840947063938680037644416511028958585983423522126403187395687160900353123984505143334668683270478335695416439742981668160244081046746804813883958693456932953304973648586802395844945302976339561021568293437862916545172444582651429922064177597942632417816400278952246306980365074843098999375711749464410925011763044624739438989737343622163364180443957023883849280184349639533745886863385497104324022713017417102912253552229454045848666405668765515759403697159761181070655911008779352235525700425663344443477752462270972516159323209843991205223091828949625093204238426777345252537119375065579762526830997202330133882358656875640327921482996403441180912343650855650276279994855685150409430285545155902365537501495709704815602317508150646483815058847115429853620855626993634334176140414342101098359470253155679330731602135011320709583716108998807321996607523452395672382820283488943020278426422864797600317049811789779843065903000785156642708770862183169777169564810889820098834911307292180558124963267079733423766415310536218329592518258730801353747251097432054921288258382129550408119324594427921457825622176958062585816613447435477804752962070937729191846151705264670421978802910561097978175619695134916992263489588374417910485314501537848033575342046260642184186591196302593614211681774177641987351123020078669618568015285473893309422964439985735748674832313263754972944661616734161933511043627283235720578460593154788699236821458730159877462802736323908866942012090893120459756646058608522934848533796259026096644885183188942234845240078314657343039450043808440168383054757344182227814653425039359653461647027293355916127129489994817783547347470802465829442537219199148245763192245932597358217509617604311044736501017169171232798837007718157833158520105751313004077579415945595156518359209876836949453715343962024280032664009370746376120206084951225243045542032486326817955860427636414046560701048572316079350991845041173214283609184461347749520210327388144965519417525411264706664315108702448227376299442625479874783271524721125179470286244035999794017575379848312421938708544323044233537897184951192653760292635303220589314071017350110329327725709404924046554178194593696150924360054804667555826106642119868347263929885440792979021650970398659327516781021487032300436439870912921557102519398541775513161172231207757423933561149050440795987675968913303831966323022967512632064914992640676028957847598583685283682437349607628801299388561019102080936082261332098871113573445530304370016326593663749216427604624229233332303433999730105907605411945345821819463359150960756927368821217992374593145555129299510404059707250743966685793342606605680401212060284200961816059456273116350361193076100822322536603086689166458832383968238056276064976037796600389594418221481291772902481665912015650071945972821820678822023942621270798265611283770886309726605974126922340363683339670231246952685023949565302225876410538904538955817690521796661097939539463574833931272209054671700018622691737660785920518443657686780134323973980663108637921803573479997724831454753161456704683716657349289622927608057656977167755736344454805253580570695449540537053932344478406164874140407507530260095713893180872140547595877693937341997928658354359524628804166328101369973471970490325531502441620353075734523594329591160560445699189493862430470798111234255722100890576122915604558374085157452283729794679278360566918177374349098099919395549017444934503158272274199396230471220071355443989264101608743465682254732778903304285368796038808348120979429021730383153898636190982875467055057138195605465088790276776383840032042828737626388792923076678010211901547367196450058075685986830987091554487861015915876726149314836464169923422312714002701067629962774923423270628093661853974641662983321818995967538141573952728785947385578554352297333146565655965075095823611029684494178237926306445104436310149483767079638662138676766292184244167754403102171957816385196273090037613062457893386603351203630714865756051329893122554852640900447330352627619683851911531974798328298942819798560167996036451761976829540212319141098052856193215265565677861063454492767171857156516960396149600693068111692225652891350469952302550227136681198619691329738713816830307138251635799352599061220421688790412093392148135056164807693908451932794250276629596227104932549013090805288709690033147020379473505150375798536695565601748669985674264821064369082026917628972378724898504289898879650786508403270547366042969168128732610050441831562000631411198959727066118237105234286911466602759844065620344751826931581055175468295795006198071132847985349220289192403433497833817940594853853551553670982882776877268399757117058578682864482091044048708074055381120865978066377035089797230619290013668293802738395919734693028607087730861424037746037348730983400410754024423188042537360959438334333527811071275627118900238382734789412072490727536453516698277794093344178722036049197043558566121278449020732873141837317035545856449770627163593445407496042334198113027264238125678096385190882120847623271677553528836860394378838231310329282651618711574074892862922979774195672325399292138501953138266190720168956046754683126407246569835633036562049258660523337047922097676076581422986094734634043206319075789632932135516369944659158784582309358801317523234795096537783313984694169355260463995569150166183617019136611499651188781356763732382090039352794927466934705598821097016465552275427760656505756773709640117941313786925475385069432236589746496579657721688527721027011998140135448715690538476153160783742115274245323107034968589061695250955437144304271832748619101091986512796184658337437461629987239671505721383389112879182576783708130887172905926846143962798832417633132901777981977370885246617353850672559142007699937838802077364761730891824151355659159455450877381008330650360728714931297116104466133751144656971079088672793736555371787042940104153645466723182299676726169821445935433675675682738536058919802930900668382252283584911235454891655541149670441401477261564617986631187290273806838346006945250511940272555091697557830573732532608444490418448916450268959313818958755937206399944730923652819028812030651849274536858821894857075341345551442101902388520693040952370322848631294533710260676501063224698376174517272136309941539868931507961239422440871280933481164133925743568984875285999279818588864109124972977411439948093911397168525764945489343291082725204549171637596888872312045717150437170582205196763281329943799854839596362769301851948473271894267817320177029862557637923546656563121550806487554757797516227727803169903853303189300192608771835570088886255958487416207236226741197085986814364289376006475141862638762429547061090458670834250962084751734696252083523080577702133503849016546323019786047455539879043653547668239198975485787389898480692883674176547486724038053005886483883392443017653960866757149001003705177168117172347516689364392765710210097756493266114301513386054959850670931354146624218882172238353344622392860216972452864310678653304897686059680747198396687507164320620333926812965737439427247991567716464170484682897327483584512820708181604134995839079343450661542465428525870399462125123398434042721768039905352055203541342743670486161196442419755230631625691672521939961252678997395776651457627898784414894084291493783007395482164181027134657495431632924489633188775009914016629176813646513945254655349000591073537088845958403574437765897719587513827698749056002893894385997038160316100060253795609713399457563645675616278686756206413601556349741210688557166475755449282403441414446465866488348976996984254679769503473727593031797486811115681733056188874511360021228057956593266729388475814839090092141209242272167897985794059914395395798409347587323937583011263688027530448188929462858226199299499879887097565467798052470392175427119061261964286115693439784367881682249589272433970000096522248264885241066953149127398932627787563312315498379803417696775803388004189111146851741406086515178810347564980772231909066768208227285596730993808608277300815945066545865575322107183251165937936968532417651275926968052210788340755926260376522573684869945674562082836865629983636864319025894545617901499973375644370883803840576675102645757469581257060624589282586713951821586679006253402806681089517052795408269700371397072577283788145862042098954106682513085744413892344765873592570638363845543153498824495550750401151668596952735524894289148099570739678818014676041049159740084352097635752117833136718821374170799086352802391301392713803240068570422697052753626226922270033807510831744142698123363727753647257498342269106230840768682623748911921117901235827900868304814904633686740279848729433113167075947703218529334081204689008924234428170900666314988949096860856100384385261966935731698912575941054302342332022808378835497175742583439494388379560871479185325090873048827789926795595151065279354942535030795996472221336514798439281000717694257971741324704198045221244023144553072318999948972589444224893487103339610978182630037411211810945000656050261390747497272229699617962342265694705041137367653051437666030869750471500482609420547475520598018089011622793996929605956036830633617186346892499804262193457629374298937020456140686387071676057173437740042399408033301010045323795414180246132572482689916060682565136681961321853638835205200255458992595773768142737970843406151014034702896033200427192344902665346130493679103960563466496352691170230570876361138134921663220460183788291257083329152768621003129421640533160334693525671009540811506767390687246004694853924458216230180802654079257132766831109621073957990695012849958623078738010451036614770449835138036111300196520955180728846185318144405686517403426205002066645898120116152376515801635694058996698707593851340056239010418546564959553938435699192956937299106513994564212337583727118317081050308315140443813490016527643230261900394805511579049902679414595620140294872850287307933346187582616753817086588969740473084978506651441562507419258063571459725796701194484244609863541042431574144493229882808926977390631288368681982756747892829054014307017214685415682346549557503446370634542050245822859676168107392918151706395377499765035016899306305703992595843393984303764721435391630419498835070488881013790643471555607508489787019059018457850725572717827853815211081127530422029594600678104676986611657210876921563352316671391377439136223842482555829691243934620431567785326344446233109960824744447957369479183074688556209226946292472686725049270726956439206643874742184631453245558650638410804601688994300007367133727007286713831026109502100131621527589741373751157621482680730397604412952259093751541054148968182753091366535737600781919107335245792158889578117592361784881878703432260160111469906206824054523278524984649258596129945005184604935874524358818579524172886815312403098594567801446064881089097385931121554339928244121843829985629636915201778222483543533458373500801018077482169571256832016453333400678635383508400265250524120906612818643799669917610886542133459481132856426898406821265783296639305735706263100352842566120933683361888195061454994304374074082993823421045200445232249189527506828815409758890189123734550518687446419559053227882064046059431424718264275978208344066394638049244954455664753467165910122102162338400800229135455284739760378366828999957177065176826163088536079645424608564028491423564197167931420373679123103261542162336265922471015664814455681051764455292396752597418803815506086614814664936310082623746115072192852444923659061039287176187247793146412215273082931381680885108994577349351011640380158959291981423186334275165635304677662900254786803315260280933791892890936570766058378866678343040698526414341268839444146556422442035989587641168899136542574673167340030755175044118337014419203496462472723696814765626692059027797210496731889459832017142191305784724328686755741871649855298494952460974240619486461059334568998855980631329828492223154499838592191093443448276880241238263045796663453911488768842684269391873700002982544247028112086389262158646784803734206555404214516632176904229402875393808183244317218232583961436065147737012305763544834565041442643579152891582794015252748455370370994058726387165561777009031256949002275342382673544830993035968138290394168495348097437281166350892266747113394469949761677131549247278285475142475302974686195925949193899345897552569925535388942823557119833068653082546264615092358989607311503260609857867534082881884695145793293893344890160179556065598017523242651390063324104370616261922608238904370867122157638891564151767749220577015428422085600962399564151315614741220972809626700814562033177705114496972959450929858576368330434304375970327562043737603076142130793304034694338875158948967536276611416431992914146894335938232214662209614820070929456785418332857553883750420906518075668778484671684211661839686574846955645348071025936431694190370030247234501954916471762663873530029728549178583368208525786330571315866424924848407152603872926099041643428312256225800858941500335867674530680715788051060708258411570846755952153134951815545587377970221609500435165921907563433026800351183571204890971616815336212592761066366164234908877634639268031855742004787474911084320178788805656112290605460199734614212594046724546931541328489727005235059109991642238232644377469982947746256764911073664656742865071409073185047078877869581611696440406603297973809660240935937689252604348647149098815877087734853454899263353960642234261740486321739024064321035995327449740398994542162397136850224282010215320848790446006838447565332485799042756693059942342457025821327003244265876357773006084808560893790700574447428387796835735949384508206478133133301493210052241470666762958794028925344346336551246891048817902037069290958413858737949094579425963720833001305314653177546769291298816278523331980538254152980675557731448018246952311154236761411880020976499167779669317942574491538795153035863573293799377309211603796009880352569492468434993614981766814268334340390363706026613951271561471427783893048544057503261900948247111422977968597161458567075365128668250311882774869818736602596699459113220293415032748881039588410653339364401719294131397145507596956410238078660176559656621732512633262797749739166107501607889560878507654043101316505533702977248774758368897402813566984217027900946735454606333986589266754975412482275921209516603723655715982751416591770438692802608930807789553779016678515134158750730988668179924544879717711855388078158032647633506301277774847363034510068839291813332914642637759473516349136097606138969976457730339134126977678023260978281050867560926565424004211790560722351806569764899854085613785024460426084884367004477338784253933032804899616164926042202751266539408713645902186927002404608812403291376746064690264101593476723624041603135385521438819138292164960445410697912057731870488013260866778572032189764334247923469340289083964291173122056213809091681738690577240453064348225923318040180718939530590900185275930306304533761527641198636263397533603095703527212403743580622412594672498410834356361796441053470308991411662116929507544323946485804452925436320319205632423088938880510722778484158502700202510447113744192037896133808420196986569804523322801212025520601162948295877930363664894434775827469656502167577595493182989556058765420712366488338484238167151159316402937011237561996536648763852139346789179855347318007451962080127787234795030194626986755857844652151054953424617048191410545385454907378930458068867824608047976627396223619105057441717985580466698827406281594042287528041417959519267910986004872056018042782916152216771783499267032706584356479993458743914605346463365817973260706140534781913674516603001670485811549061956445714474603914715529100754246265377516066140603524837266216831537664957644800816835950951209587273946237973794869199920170383611113961687200197212437175755970012742802166220476764643477211897122955646521768804743768812542276334279421149185787538080874729155154047513166471665366192718831787829789884007290812405588528622980320852473260394164505308561474788139337207960308411505489545836657546458811719345516189292794431166014523222247494408620776870485626033759372165505948375091113060759154309236028917365325388723402458152332021341124616376694474961736863481019928788245073580341545887610056009612835029020221413262255312505019371999681919000884647799672655226275087171608110842647727295028649315618385603945492689555804585813742084288266697067091463942424570545614786280340106064663327825766273720945097547762498014473003139747295292397379265767757641064449523058202344343428043796824030457554469927119450647795582439802583477946206014365740757259152504913643518624651511418248985763389405574335912781204396430295337579718190345218998189286851099517460987420053461746511467394745521653055569549795256738411832963010242158692203601941496795539155254336375589618257720962700913471246113099358401634148068317667396508790814357227688675829648247937980667402128084563819802893707446910339405739542355497238414916348071356543518512284953078732005140438389179688381585073732805689845053363581821657195539205756431505856731595864921937915081805334343823938941532382276656973133084116788092513151679097833922114934952347198872008999233404643162784534432151798060615966254266813703996183490236358881289429642656447894357181406715875426975111208236028874214900092164577886288470239597572401214344846707102727840757701591878584525957332524241707228003270878891483554598035780443465799181107394435496856224678650831472299106116059804474484753172496069122808098354763872764465615490061962141880017441125294203291187547309090539250160557967447507262202645706504189696100070973366791633680256086945578315785232568390181567597303974811521628640403431345126503181616021778406126389302677572107328142926862794688958143601563308363311659132263657288617109514093893392438300854803349902604776688780600659834098388557207092023831636022452267669009431812618291142869243071347136072733790521507480244720199705043110403735060994337272812116044197171810427302179672891026013092077797709488954663747454441220564577180862717500708997657841111054991192398901417682658927496980673141640655937024263760147249152291142423420548882994347556185708469252145189539830473238587065700873790629483766431551406389271147271492564511528378546248612810672504640603221598984956898541757821053142754262727859755587640595667815856169997089367928409920128547479397701796711205333293304523230528188369410141353667803615987049188560136135014703186545833290511165051228713391849174309741273445390249642114378417703416251870791302195211646603754962220569526624166852422400035606655992324391219867232005008613590240781321768116301500480297281655137756575296736408281742937229754495870661165512963450773922571779558831940229371855879818740261577609104973126038718052423636529145424288043522939544890737842024262014612255001272281795575157404664699501119456117528898810748829603338715477970929663383919772079916829315792413355324121249572530549041604053066998738882223051101307619138407162471925170326165661582124661044572838368852971112496590473157499497014181537058699426891127705824702308937498626672506108476265632890230471940188193526971343189623650839239146653573624919627133502384346187571161422692783205992086496495884263967296070002574647672169360649409622011329155411986186467463057630424861079411614218478280490017976748409871597785471782061142072996420822874003680527862742239307382823372846157644750947414674277674396291694701316391913738017671626322182544422005197792087697719830875397975057859559854112229707523733434085526634226872834271412061075001566827329087139149317575584465946795010616149403304269353364870852535183865880685031464756745238714694155475192176410872265215224471990467644603990153393803959851531279576965719828282993873338408202647626522207779657832403436067842394608404070766695609333479854989013607656682378310734923741235364697375491459725444944216702929418727833562593647207901782534582268167010757817008385252797365167829345336870357551642083597891251587666168816533689267430468510115664389371551607240872746043746150100205174491204295148917279716042623120204658904213785928513134565348926234587147233256069720419363427857179716215295973406154106595019713087794863878960494867963510690614905451706304349549382457988772806803014776196011684792251903581109095402716935387537585315924961278775743859678179462660520844354169104143557419867041646978671393720550470301892619504374916838011994928199563003895385144836686539499471218576576364822027394234206584619714503313165309490686689822490116243161695246618961799176521563615394132822110406346604445411081865236924585398352510756953052535436220144035504171044724503435330366981359285190591776055164577641957906692443838414471798663316631438250496318250480540956780539812444583994073846424859460528281715911037879599435183432312738882321594259165916792646000511979291296749211048242832028589917381220378750434745361156241378673243069676154176038250699636893684160614471621294017602248075962771855599408967873248497322804787670882087059172407300874470199774297377660181851095506283856995002016040191186358002074737683939978533070309452697572914038199532098805199617869001078933433982125521690288488669579095351434668126930294435169067696406566615386039026728762033905786442766720073135320138651474155792961899367354703181235633340981658898904800218383305927277844633808584812082066364582412345992267155466668526245378554273500643602608844559240170940289128454434056329421068692329303280419253316497803147760268941007082612887443376212350968707355289107509253040307420549590591915163684766240038924745979891471900793833123737679504836815680576338171522399487143588526880147272520288265870635502021177604305334993128070890669250930664067771436129572744612529213548237405276531268287929211495907861266341638579668981522426308044599642479566929392455437894097912216918986068167839327171081850556344426382369384062713757423748150606578834943810425439717601697915373621793216470889533495333020942471572388540713792723464846463012669201098480733242523230308183594271220307755152461707852498804964200381261204243737137352916041830001635210976474202854355500227037624533901336670552978356237477047161223853347787331616902573785699080234128839012632139517097041312950472277967685330733033837438749426608449000955521635262318673485699257534702539661403009533437184706994549808477145819014995205670571714752174100955049895301098873660912562009734546110759482185141593169746294668422993491512278172655712801270344649867003292232215070291970511454669379210645215896819889534563712841564647011283652080016861930997705513658408268967848012347081382541983601543707206851165822271944352126692053178761083750361970446121897122313825569983402395743044066855900404176023639615147612595751324205429603544100464348912629438881434321624693792018944595713951284354041354426282628264126097862038663898099437372586478231291057013948140689682030462809188857628409528440086696971533346677269989380562701559950800213825852546671891619559922849262034183011558715076402704514187160220799686832808875778639995967895791291849362844966574386800229705368048035998598419990946084125441149434801099774054061559480709496592685592714351853123287280642979615836994215112269542980053341013743520800774377356043536211931089896811543698577733930160970049440104653404404046399372491775407063581989221991045069020757968818938743256480386320573404755484201585632344894995827837093363581987863325036821866166499951696354056450972468743733797570226839087425323038083980573141287341433706780762854610578872052294705768444416277562598592343268339991518270132942412704072196222008399341675783025067647760516614159787544916696785723934000556724116973420596238455684276654521076180592291474627402452425016717910199678886144617714020243802858828736742264729246739699705581482549597316822019198448780302362564365603035338808993941857293586522630538041040420243198540315672134396670884910322630332492062278316191910402448368311654269296315691462365458655618470040962049228091986658150481491293040990003635647634144560656412404497671107251298968868855352116774105949554010886820186684701263879724083078194932759089986156979439100734590295460184615811856676574717163791664485231601402366394979330789045730586720214592092888989746313603122578981491436261817205710762324310250247267961815216175592556902351661465045610843124163608949361157828941191559793698156410985043598540042048869821129876688776983301405952977435295354773738207281941875947670380493389072248871050044355991403034096753114251392178355688895086612384808394860313238172222742445612107592846868644269238437228972412903553859569955995242555990051306817221548305934213352303287503814861978251155187307946350550249096489642197647394041642992549357254482024837160064499186398535415489793253938969094045262014616169301089400345254836005327245971068454654021863738078544057332061088240716735940179142367415857025026701224348450474699881229713194344921010261181000622387734379600327792437938203012470332801139301757233299914490438804063809405530142002021628194464669842575237317548853646654011370985142426140733682732815990239558960177804702289889372629475470266589536156276583072183092034300356440568839756225628498872667641333215196235019087413558698075432307357215438066682194862792238360554814430778550002826930743132680469115955945367310895635504853696922459061932039333352816551819725879604034921855199268192910621931229042848389665501140566183773030915278167004731404931112448517941679892490659607012461247829460250515622546154026042981153863227918316352728968199358244638565757226172247861516675546056237057584787303259952449409814297012997570101980903906749052294885170846178673699047951730513075316274555081859486991619030794316902486754445698364621619152198766431836291642721129439446853058932120368066081901992381820631709885982945217682833942228761841640929553474204275438518221386916686676762031536921461796762553681848156213455545002574943666731921542550348362895985078287794340222955779088042942933813251176710213046484496824826295462465747737169337973819796264923969381743199109288660143433353262465317221742048844611841057635527587858133007077114518881231792902579194750767375616680199516396618147992480471871137370441002058646207323395569201050283068498378284328149839739630132339714837559793447936344397205517582236211113723341170602719902271884841648071421904057046315407417406038934161082277512597520754494068043034986657463756007587821209341594509220293401132213015461287956749475827944395966150455441718525467701878489348670596929418451725585488178567072572171826330583768630304873038910843078845389807452764007840649326556768553231457701553541356702436530623257758098345872215341694770319886451895537243719954073123319388893682729844080200072958333727403317068299338042433586805102378698536612608439027465915674076083702305207199848145064413143043219594408791159977541658638839963277841152790459555266767547443871002994539061537992733324959841296317143485012816149301878673322786523951801716987563290784728938165140926771810229810688410325068494596875142416777891453755100540882505876956456526237322694475607727465646816920208464966409901995571935225330835820485575708288901228195516481236704958309191278782504399173449242761643038800588521632012016618917995137247649463942132451929054586838549100885014728517334197588260476446135734258162924497116908111146768599087999670687848078919122380935922331813791184382915570479514609994659503617087286106192564211696968035740903180162599779240887499893036155851695941881968192558489452744324777183990655027212424775945020803421894539090995221482019389054890145372670558693420331702225619857668789024950977656832467715191634322396193013084296022657665573105588313300556027004974348010995684186513695880002539524609140948397337712453621598512248380351335738649762624448323548982885473934914004575097671926524456892065816981748887645215587997368227883208928091185047329766150244403945480451130650058328938762146647341827341194857510038840521736669017387972659093296132390496883513611720905880293381246443963502022772003556547687429255070241105711349172940311870250395823026441558354291174554253544826035142736779271581908053132989827217675730364098035024713414243575795269346088934248844251220680474833217809578992310793984824465717500411456440312050814468300737250268658629941520842674151897282128761731864495619542231111800156722951612085967497587728649821025808034356554751094851122478700297640878868185850945422484418311562067238070190088005809731831383983451545395764095157458249720615039594786869699547308278946731152825226468122230991819019627348401093828561198433978545770227308167974000865134789222273711555653052848466762719705938353369007815363562078538236309295092480735059676316238970459005234925865972470510944713408526893480977941168233819494827286834572241457858606137760383279792148822990295413279718176176954297620040059289177585903738859375518083613718679745918210008861859941558741075604226457543734725150092670115747873480258247589018832196027305358589282866552111343366366858714140653256534526236028602902204776269223327174000424061428588440612031575317741646076215607455885494237749984790789135808501143339490005611274667945910140239308526549838195649091770975630397500171804251915507238559688224692389850756776351216969170323697880326077657915009566583230521781071875561887011229660869705410130432010792026895816464026571534874289903581109979352181161427142381871238522048915566211211448916277905468027940647847572444034688743677400394855910803219160250781976835967281050572968084120783362306649452961858826109584283240694636710989290038017261604198967618940795507887701057392765021480883143160338700051896760145369247964412229789669828169519142607892174365336676260363843633156194029679758499829610403732021854538293179944568370239029979793407037466550276401020882180366308266142509312520095240405116982309463555685622379492460642190031524642883370600921185225795618261295331856990697800896349200874316925401790025965573176227242607674191258538203506784473998824838078157328589462714856497497166576406327175332000261308998847593148929728904987722938882844101462964078375201112085133091458780497891600743288901255626001874306345232327308293691656068283966382295549926909629457642382584131109702880615142477499560121224401302346336312605558442627988501638915591254410751356177474104965531560538250052582811465481219338519053543878374357221910575883345491898182499820647605340306919428880007235621941858758252071466241434914485968911632530753112564944312409633159520597711510925660745105088791490684902844610976616745683628856979911761454336997382959392342110347187312015204581756938493561368312049451661570551857168771254250437909358123951503098148429286842147373846488720168983484726812638366576710105270076252944978472424916245475430613293806393794086588770559407822962149516612159177910900908338667598418448445374555876050697917518095171392851613700412836380040738236194394084448096666119471559161299333587473411159223318580149274830415417292148089155027839459765211622480793204806631785705024566654252473648805992350427968370466995737845989574068271427440337864251054713113839698784484798976397090544731889287220163411615014558213085093781685446718355411223622398978270245602473265659661757314620647179126400145665001253578077526496879216599734073230056102902490932877648172552082710999006585937483766392999171520470972207891825213186766182319128228814996724255835743700168295226029121648644850623763563731996255970745840897043409197440560799418843183281467553724947700561141562358043059192628938073303789867961541659216192803691580168026112753622888462210570998826785646534467669680389243928866842186325059905365796561105468752462386356625652974974214011490455602841085844863455776611216293051080607115910568511368377729068584204988810925756095407592402893563889147906077871804257135904844709527793633545437159276289913878267699550692770854968968126968678434263833488058166937301457536599646538923405821539740865029158677108688575988329542890957633622900271409591530120226363040696253069019262523452374293888725511898655973077241589699857654464270939658303742521129406397906556095030019333593193021538565519142354887861730369951213845619887876301004404607546381291807746261648463777599760513256074397029026747501148200351481131776578518027932614113847454441452591078054243897335845897843420006036994161600335397965942465549170074124443550511112502690576276839977869649694558215080654588737994890289907491557840263024772535705694918607975736841388710439515286423907844054230320459794458586365679820088744998491192194942311909326550252330114995590940811171109583956815564339497046974247651237218498296541114277978230569337868758126026050206322281578299997858324421489196462778373014337041943302075289285118589849688030718024170458579145438201417349822749436963146343144231723903894181658794834741607564626756318260921869258357167911058933176271926975835739450197582670671069570354067412871733927601635045401057333647078885506670686642232912675590253387032899141392606603665457968147035685252636857438694136814928150525314148622010505902633225001183440739113813531115848967348044605088991840195142641544490117188480660239620769970772857941841861205699828918579378875837839176193655943835657681931211410404971124600207365048977752824028781040011632971314549485853395038839669974843321661945830834386450552579287697317214521621306932745778856759473481078897793729658276467595106575495850644659751665425050534849890856230258047978501641396418829095791588435967514963641147500194830466604791494862504465389264608542270989882090660607084275572495594169943345346144217554877405536287115115789346853881593463088309800959795328725623020181732984225528924736826368514588670643917156604178090317005438472213196102176858843455759681434917408711135940849356068421259094945714765955370640576958619873534302466554445748017329593142790235280333916706990069009712609700433390438726217409119125626243427288972858351578260939180208001310748506229100670316307058057577327371558553855907263021981007905104775603800166742486992576354300240554310685794636421362140619177596831662172172542216306987633424218015720023493952694837317111009068709540776642945729259275644959345654083344904228315020994439957765099028664249048430957679906604381233675864333174888623896627042092584598055538858808756696694701389920230128487056455713131597249208087031012275422614640694273217507273634094481451827360612820456025104782835964232868707636308188040132450788577554141951761966568297784686536685380099079340520851661084234804820983324821882936526814461541677480476241947818396112078500801046925805368778280487812290062948202574346485594232961706223054466690547894371785500626566428060441111001331403765256412103247651328425977295320912695040910206925106748393798111180470001068367610860620804485801501056992019734907025279491643146946442851915448043158460769163959653155196720761596907193570721464667316571148185413588165978151821032515281387146082087985346342861455495782953672836153950318564250860496173735851292118867668798316464450307917343826179313203499067215712876514381184701910602690859050221730779626828571219730753821527352359930281872948480414857042014886657412507476535966945328557094297332619053368532591600626863386309720856566880934558660592166600000735422116814296649471703713919856066490930163196099938912857593275604475128129583003867149311184544566610526336999241874741704725431740917970821602768569534227954354977795682653631606558577424207326011122372742257880611674022288671730980599410695797885749248846049285764126786819164397215313318920986611760024256112444171933234298202250355097523688707216380569751017191253646769106752104624169239816270457771635112470028438216911616353840451078959695965191315049163593856509225010047162909850204708861624667114624862402321180945134859332427083240388199361970766182272224587182024873044882008014749284913206785838667131936618423535118720796518437835351957033002833893924356310453665277954585774711640415769249624650711306069418102106519232017536183781236971277557962257302510384012173707495867507851054672972855637427862944044628154233961469542467829057808850222991956273136213589873727652851228083243998540553582128183706500612108950650884047129516647481925111824988684618424674833164468723733610041908853138660000638906179339274857448889159037966240841196744248108679235217143319943226414263528382121705316784167564143548218668160187675441271690958105449084002138299239937194799042674126574841476859725935069875564594152124117185363287736278893454281974789264240025575134967594505351511886565709479596949884024113901607813054989116765541024514587796459487411921543313280000132183998945788909537099174398596896821867751642578843322684230953775251913290165406130052397475865385018156982754713719996893393154522101663908374905876127512477001501717684648799758542011771021182265242868186175881503117626179427499026253792077922196330852918781884969334914985697611517057485560218525301870423430694632090059055393310145143051891167629413781877949192315881237496390610349774835186692407725304264591013902651616815150890700979840933758788657100185741137864868912726299000417392386588257925409064476083395888189559469462274523802684166022098709577494608753307813399313521322716539068415465773700684191748348366742822507448837179282513875019606919290579263975385438098255601068620100427255047199956847437157928598448931415837736009570875418296922222817774203553188967720213850802787726207465931732082358502321287390665854844436090100162278896867504753244168726948403616225818436075342766065114451766651900947299455277418592397569764952029233731773617025023622639889172308219236534997120188767037219058396672147420699874483683656115357377635883626098381480918325101840415732623126170932489539254174777524342404418715230404715659296840421341659954025098167955894143705827927252511138654709597739184525489208780909698574178047187830570647480859075078689815150428676365916672745146419829284279440757870590102659845958094458850571857306010327468469145512569403840027144763567415158446638491818398145715497583018956221718976280448747889322981275975659473818562060226719835535093173950904722117626429512148103934767896310789690074059653452804096842694851556602688063907444285721433996245177424809874125688572656063428180574680619669451490108485833513878053591082070960710026800300570083317458536719530576979939158036395392235527604048144304882437391702249948462660013487377643156779086079538816022876059541101082467276313090065021131757819987548377588531956647308515360352301035186005067901243762947005313117647697198160883990283374451991783669342199652756198028316695176775146026453338874413817627747829716130545676032927578661260734357415670173324065458513655773267294120965392521267184843596455609314471287157421035191628651432828673840821918139296846720789152522545743459632329577129517631275064302635943259632841166085960204953319958126061665213522539483702811047454322332623218572045740057674486606426015614461401987451086958482311824229348744368145911950786677512658406611556105928368339451214642751640046004254819014108479752906540602945328773099142394035360697709691484777036695801583499742682962973711529006110859386133859550065995614196248282992711918376009145731592167898591808763256604145529080024184937047920584223425537816034859761535880047715214680664780677673910769988234148256180604350027092756972654082334608136428864480134137472106852098156691603947878237888058185112856563383300679448714070560371093343511063203476689501289648469464962553273398666410836274382298077057642540643522801713054621335858780277034890936090816173641994919335524885399543536463958113709747617023611946566581598203246019652738320570096509140902046612461818910239651113221260357930915950606882565573639605882969661747906821095329849734392835745864594932628954999941733265502286114519670055749163090363107491678644691855603936954854760360743807828760915967664938749812603606162990660431645821579751003713764221355096581367895131620171004778651795314051049326481351298551531129403255911847329402238719657948084819905830868312599587531996447040613621495895032539862692011752078837747372333098941171899953078977596509083293018779734456340755256953447622756059391994204203268419593187044139466363450878332999135326112213577359849855143530267943952117103039896888208226262275851521173264268850542996835176872861139242362017081258274464909251973660067731196272813230933057971548360241640726128462741190466799042688163994553737070475659781625840298861365590556956402121835727839672585111108568799802433374211592287489769703877076183871243722392450814597060559934325275761218308500198240302383793674839919922628761795784506391346682938403947656406753014720004337945272481554980069181871975545798306046818105295563903399632706661289335008991605073860586906850399467338883508064518860265288546137220533858032916268935496969168056538275634227489186506344912180268769253067219565212533288993972313311071176900482090687907260051820239524654139875957878886110984903475615732379810822305193458387556927522531140965833567370304944506789603351233419311653190598689436691829739816391255462016930579807414635053192670872151034523764189160846512046022508119191997497995501883321317466588929379072944435800782671423411766917840286425181107866059326043422502081610522927942017854580233474659459662703719513113879099047002028305467796592454725337319332026849882466389473060824739375698437678525796878412929290101597862732483945504237751746559116674642720966680300857974242207632332647732860020607111569760840176321756058498094323040310752059417534327859254777441735003390448777883262578464195911082008258717882459494502610184064639121992469611341676362872126879231694770104362201292245659387870375321670159794855121534261669078685109699592101133264105310710175452546789644609224749556799851223246416620030414579953301983761618156169982178711700190307180150586037090910857210522596595826179327214098633599944891335556953042487989773046893502962832165637220954162773818242178490138648857969727849181791798125452353389958792782605438635605669232092986468862438648895822185192594416608140261184754261069504854479822166470057429690490191824127376957613245929685229095877385038179698267191630684407030882755772176984322293828036214844840562861464932989125970835411888749308271451586175523269935398771739381521130154828175254723666263380400904542199484056153103372841868378660684723948653119416294961796123759867194660565182858696586224350047236267935289391976195370930377831695212747082655496539795222740137172957363550784428596307154985055180669852726863477004369497575602340951059483297486763286443703096776503216560847125221093367046643992919681117720283821971254949699591496914511271867483732029769935143925137674278433166028052855310194523284000353469492956374027004005562748094025473096842332085337648751920812947642814008554035391584754089680570335034350958633057226655749027315106297753357484474101112674035543776621230190264125114664533189105498819675773958386958263955997775094640146256859655321542620554280779651643542703203345201691363286774242604263523675207027102828246069598220383619213742524201228063350465958069509661542490916033201683695649294645065400687132965657546425996556396053455699699550946589561364843282588391996582620794549670546345154256825694665132348508208620756747464856598556378244258514851151487646404697172403463829994558228102022029379910659976498418060856052004492216151624779294296038390834014831283886441560190921377063272311540442130779255572432013803796052628821317387331658380623449253040934204261523120157956589663027459154862851071563415967619457280865665713473965829223132561417020691676493210953748288430269449872787474551890071640733528204659137620715161331758265589826386260258671446184805047487214854759512521580580972533094480994520963535789328142236573093589170204880371584498211853537996600608475396070610823048649824005912144572950190268864816314339143949170486624530793962592099636967817133576129316559980399477761502487966112876705914818648607584609807571859043698970475879681344471397419604226513353911543913446743486489481046848994214536469824528089808259151399447132734309365068527008798004228479041707352355619638409535035581042927076482196992632317099126529193955006630342634173132560246341089582559552483597228194795476098467964180235840218301090523306013399865510537603641160038624348113299214525186777902174794749518330961307770306498938485200522754037956133353825703439554725359748118936488639627497766503913335950217856136163782066732139258676239424204426376827305692043779581889603366572549904202452907489552841952013606152691327625747619151218531194038851231782004306412803814438712280608052336170748845286992541252272047374486501376324492772342622762372433488460095976247155900797182922653636233813224000908597400314891437643085082652669216154787905904849385563566157915126008837062200480367211203599117096406875894070561098374900472891775310360153670925664179427972956279205072568475917319074331037314319290769123493716386470835064653046552249314532065670143402556997004640501651410790224115672822295610089794801167496199485728990013786301376980017814024844607916708928163853998392734619179234168371254574905722998570044529032725316530774437627203176253278938382099038558227976158634502820155404940683579991149407572087345382881105623163329088626452985962132308789953059619141221086217545881072326472385844920974348950674824734325605079970031760417075180519597979737548013056876329783959166449232093245660184203603461818689644521442214322625476316221569830273205976262806032852024071013431702763434128365119586726687503326560609069672721146473775615957015193817374701924718195058454259948565478591482925976182178508144828998389210856676174937656199034840033956044296448105981885331897374833610135271399886115050305390630691502384433181398294571539233452345711524293246972922621425704953981273428417517946400840637345620780464573002541456055603245577793658711275012431743756055331579201331684059180748928772929950436693090614271784287202686505484751377056819067971188721286610764841962472323535777200684288871869881184040272030900417834765825906590788847521060592522047955591218708955499228914341699133096052503738294244771131215708367000521464780894402330276157970094674703521028340374656102367098582244817439998624277686988223809783019252646062996738221272819764705278901205193061633831812210306520625787584277158624026410220765318860021017817133117399475493009666210251571981501922596373080415422644548264548039836146582109146460143652428750325610999555503892303731611694353408663471261868591095861306580626814013918903573666049672824792208008017732743305285918600824242085856210387959230227166571276086679787916310999103938667945573835555365119204254523768793036535491526970948716276767094087116193004865279907322339787338424103308271782054451215785761864899204215447565065966086209792139507373940387466700045285276601493759559761089098632796899753022386774594118324564441806208407892288077980904303148554306962874530025834348097940916349655045772479761692369567264271683371941308039146762442277209854973886361201011367009502965279741820828393067060125657596327330902010103501196002031072674492799816028537884405933560449624549101692455667980984857140322178860759633079398185866424088204207145217258737755395491108612780662070648997177791448863865566331850278267322045696347102598828205341511915303074701044391230577540774429120053819712534370641847510604087863088683988917271386684992385132466504613251861055554995780923351447002493691658385835329895657437553202033694096034357702518871406848535158227982383092306359400721868101079590502815529323280346776850084544426907481516116664125068380855732719930561566485844752954818536239626036974302719042836864031344772409661803707484342387894760577250741399899171362134493075220438344452875372538177294644868886190664991847199276897493387964185243606615340452364913233723268685345109095611965096075505014736386835688887565429697855043525637284312303683448019962448288054038859334108927627006946231858823915875142754883110037148362385047818846746211287760427778341315528174277269649587524247764328528370610295120257691437030209125475056122126011213710301813772736901177381611546104860255927937424295250924653695870853284244527814659658577059800428786057136010987546760579947485967074471377082441744280644627010696670908389583822530738312593593615112423704500706354095859062094231020038883070970482078167398731787885692305241671010910833664616259123631366223106890366526647317254090834083063274040406150646815966110448171850492203231263894882396773971788640425478726295515301293750143255519997906350184482529879116468425389809268280613837864057710254426803628592979469784401086599991002006782621447952718590767914552891355073846432180545548493884796434401033651069948430121099260075803214514676739732009090022676493636502593743669729960536863640129995790463175984532449020727698847789045279071421914657652182971389241799112081159249497891928669754367221406089768688933588533663078898266727249444272021749067585119338252784022643038871650821078553648862164441853151166866732806819725570058297970928213877459603556971382957079075213366101519691697705024917080264566957487304130999107759021121687807122525180593514070173874626560420477923769255848945577071929045989461017002053758835728150176608517609461419374597112430264823878283472368192586468398293187289840789118562335508030396843757227814729033189520477243321148508789331205163455439147926367962136892819671658087996207834692628860140373735688021834685220921183246655504363816632811561926780464474513533944115831025691307794723323622646544119934738281623665605625807845776481766021342512488331279986074406537423695290836918680191008814757018053754672988432765289610291954827891290898251808488753474749829772332959098733132625744850749315110168003565868906783573764847751353757717328616822818810932064188112625910400840849923910144870525572572833743080691501492563808303445248234998860384022332754362069421069929094645709393602568665070778495626876062145798975443198737514427208638889372748674845757764535130661972761751778786236835133260268847382637232863276068850065474851306137477930618804235753502320127160590840614914655639354155321862692500927964322081018956458974558265038787519653466092929956418101386102575014264955784145559436613135783218989420688410130121262169969268974086775619851224317468613694773337597763213273030395224357167328887308282237908920253154552628631836867674823411867600858846621316745966189881440357908470332243183705497174292872383601541550968128899671944832256594080742475979945343334563625694522865750248225870792159082161375691904866588210597222007269673158918191258544529622881907862279911551334526886052868788353421453655874986926655813392245563037805831967772952389675541271296747863959655561779635170504914626159404486098123741260371002811974824309061875523849090639181023640034313132732005851947063341133956381745310919835814838010325667519210400917378452272904445756244428948594583661887916803592217333914102429257916054866873984088447974375999793515987035069187010220947937104422229767217757608757232774748234691300529867964977530856026702000896288526911276592938962122588246742498354102504716446022509842148784865257052032403479719926393602397908391869208922052656186283012103835244988950850987755951727728206585500768477343218503798624327835452112957120789535241874763680738475117045472244932597594145840129407892158333294637690080999483529452931372303547322798520816218663650482945496902469811683179042711203080745259797815968388230431651387656265131530734866666872243690151297453026112543315688870882297053454793036413603356718304829497432727615490868253649886097833373469608761964307900707438864897195145102947255660866653054504168387273765901572746006616399118309140662761229863760155367507745668107189029693577863647016701736202923846582455237481888787248028424080571081390658083010834488310539598162853316155965802408726389247994117653081850445854792038731409371754799805578409732830688373954842930050707277753605124322860477534619542928732224232135753225381724193936160477498033426064451637305237526689268143770435344251785072239996098976218060669698656749038396163988944852551159610874257228773651539989497360910278835871330078692751913794433123303464076407522134625623911137062528696934120197205624973373883162578309680036603903880172818305313930230509553814219038736951898105712055845889889415483918363620149187858814071546805996500073401670900914622294187039752947782670186377234429074308073133306297307372094937169597666407798215003993992584244264682481983640774439686819714463815595813911058086608531841026763198773217104390031928926745989524556993201875870980678721318456487171303054192876880559050573767655118797639970931624389193048455350473234928773020437871842109360984098033583820413759409079943867632236482763158585409251870225913204520594453759706639259205357741967435649354772672704905581292591374881644872019725259757931978000081443607693283566251533033519233436130194883731806138246259532344474429019854968447564625389177796969607124110160812893163169567155521278628744162405821358643498793819741685239212639351027448771905577789978412468016876172807932876959454218700896362015303255449228443444523914941089393661548979193977717953851929669851907010495275527581097644425762752893097230427582322510358770495782469800119186556183604513995988059833093230798896463529356237066064890810707704260422285285116138567857705655409012489836360059717066324073892480359904069138271305017851269904031495053932567994949248843572878568918406471277902024330823155884185356457028589110389110573238742330690187217945282673543087896003266281819629257549826065275689239220047648125034133198214138186478547074418066810040552933112000559134073534990602492001432744358191080778686102297189385317626750726947949880192340604929345676439729107162457581647300697917839500277298984690299466920497349143320873896943893134880976872425275989288228734371762571052028130566990233549130385758479779120151306554980713225367861094449427030167263119220459667391096137137987242639903122678110013027434538141784066396277246088184719933469625745747165727654455160781881923024497810937635341543892283552203308020611276093777664601379587761927630876764937568314105687998897325868408061319030772518681310199830341649949728265114587901630089841370764720695355213864638185717802520751506187578503887398095755060548962285850041911195313427812435139033594770266535098777128329733322121456885276900930185416846339326942409389750863603702577783725353875444249097223832508697136268048223972554554694724074888896923375681155820479380932898773093962096273034275711628389039538974630430754127346937178800730581516782392518493447540721494478402020508390679854125469562565232788421510798012231944147880130007589620788802584216466249319534923911676422332485117870314789544441202120874676131184771766298875623876417924040304767047160022573786409857456391382464121539986665073912527378940013208929046180650470732266832007447780484793960249845048499551943688952909297462116559706969417050729396074787707906093727793693366034561748758284859544800730490858009798429879170114995346403438198481151333435146689349216278755176997796757227850160159259096411504645184939293137740428766571766774938878046307989173769510616804998521434723748710323707261134505206362857196824261307238869064238348606261309691019003008605595655509152253975443864690715518578487904370911673341264647743067207304132923878560582846146114871711957906530193902201284361354381289900781807221973522164273530964243476281688323894777954225038173018669542040895291772584636186791180965742991112130505415172775300549519136597260843141534999619428721137662774932974506429575061519057620510360146790133441388425291236826391488874670698592570212040008949545057434537500466645325946608426858709244986759744045873976452205493459770272517511718669566198931316750920974771887525669180530430931037298799386756220282634660034587894569898111952282518851893704765854684468346834454900090824444723424037387617961045195482939796480471626400693119489128823175357550850711068880848107759792173569319285140201336232651149903399181029345934562050350227185506955656099564536797390838068037197551797232150145061941902419298754860637823656869965786924114634856670138857020234693568482453339520119716005373376354101385651124025780577784249184470419545383810217975133469902663663081969786939965410739632919319198255813806400978440465297691194003167287373829155549599807016178916742407943740537673395709685659808235227769481423131999588106772460037911325160556987844345559025254902713755882963622049600407107425656158406365712420310346163832556445753254890530099175133418927114107516580840305010366910833947668340014745952715341191524188736249732169876629295194942381279849722180931834930643677215452476484475442687334025988741956586559442905420578428025681497636964847479418208350403727457057301887755282778003945518231379877840053023450975416301720842706459726205225888175489394328255245563290418190401786188037968836088615868247700469665040658650498939365435200038156994077704323391219757567785502156316392750196473383027353224136072091228938140107230143862739089451178016800287156381554089179622656038639453552994240834378878176460141633853118786730064513386937282314686811255859374028343406769272838113968572371886664839063477981926050074461918940628364153157334909717769313886082574757212390933245340278280639891033132790972513612843571558415418766514414868137541235484212361255290765228338674776004899428894804187655130759162951556865563318403783305044996841567103677411701995863011933767734514142403949777980873141654622606288037198733368788660551770095864751416945280896405497485647571636644315238624202031868993745886159349446372345218146207018695061847838774981085862567828949070399639795441734593892236178832869725020645958596457370361135097062457226209959710197850897305110613011933151245448064256024287528985677482311597614549662134035322403376513758651748513831557427709498800407851157713221675058255657194064787916683503195268762725133490535837393335938459819353157517607230279832728294979253495558565926945076581922826879287604631770840212103173307521172136930556921531110505175208886454087363180995982228820372680777967110389735766417367534543850232905082889814103626986772643649654362080327342600206244907510943468816159803063769129296107706134255189737550421687590100693349403416362909030434674308548370769617933959096597655549573685883357458062241810830675226504691020591300568311327899179811592794312159233648537648171957604929557368983570552480328884064932779468458102264967549905420667725224305237202697059534802267400893555629382793624478307648020546031826388108137264262941048460648625663075007231282588275943052498196521798801736109553439409997735272983824461362753949450812263055920001288467834304148917075570307476424961383262918854648799297306823188293129559411093001039696462137586803569644218595512155610297712913707868671654143585247867754758597541612013530479716791943219229097720650797221739533625050370391225311719896835062264442504512029140871108705700310668625527984854150591096838070123878408937817592369998375004389334523285627304753003212964963966587997691545878037342081685076979478145330439087343332965262166173662313985897860365645073790871465553422090495982689670452132331178333414548983775536253436433439171579216565615370473314929668088288488529880677071616744820828587067998086788655298845289096201172819188225715924146765286882123994672423847037062512136441657336709133075256446741237345213992814092942064798801295736830003482645457033251851785085269108893369952240980923180424364265831588907616204139574983410611630835961675311752998358058685500282681841070275781140577073063979777045343424121545866675676795063776593133744869360235920981871256858699542246977571098839111324341835674042180019395989222600526600133134491586199798790247084267182611536193905562934065890568376781634666015546985602305257823770657850652694115940917444960170111225155676879951519575701523798385046458255223280819155086882912264998287137000251517729619180734196443053399478585957229740681083482416341408604302182979207851759691965639548072085976176479772352473175246756790903065335924359464226868133210886205130946224205746231102435872705175687167632564678895687447144460468805160809950944106104246976908452516931090801382073167460460204505859436152962310003615624268344517329154107198539648396279747112726325425723770767064140964920057866307716931815904457423697327956478182128586614543562375325256925767863171361233828391115952890490530722507028903840672214535405250693238565121131160767660509539019082255656804224187513685079970397338395546884501120216516575239797705435424854961626376106428247522407439187133995810655914535486172741263677846209611745968561777443481199506226766566781930354592986223813403719803927177553651555418365926911196134372763083874568996763734216075261449657412082649287212394989254396881605788067491329775791221831212058611535931315121085189055486812218310431987406198636253090565842735462855370117294113127141402269749798502395570802185247581310549946757595958210040832526358260992586225869744559408195751266115806021458846627687081185189310869325078639759886662279331409827983400567584294422587840041394483490655903833023119170677301601534567696772029866351091621578501319887006332456407494039805005421983961837946790665504334098274901363708347081736501407424325459978871638456783249048196756376217466121261375045499523323919550005348931290637169116733346483172669488816203643954815980471409403132031421810534134341723260205389466393270137061639275228380647134111695329886485449480439155535121195445546153434577587217147777498687006748833621082161595848615160155118908597592614253474337875984120378654709692884369273765017178938595750129870655462601033246967360603788870648103814248208731341379475653715413278588302009834325463540564047099048363905684079494093585120665170751125361389591152389777099334356167702080631811689782260340117024405627103495424723746640902865354772521058506480289470238815586247354605842037326055085343676521448829195305532792123939218222174844395482122609167088069796880993935615201021144356876386830863107029486233954188151559994326785368188488799485880777937847171137229569099976024649323157762122474386992099280437098570955872059659512572469873287696441023657502961961918567895821049299024609113828190675007479893146505653451646408697064674599348496647287974863594540449695191262880774265763394731992119538712799756076646661472049496476834188902699627532553949457593563177961926815304745625459329530351832388879407893897098552726454732124252796519194881407036875183055953337539394648633608853637047349371470709452469936572896910879956065879500474080250082181524655382289971045834784198480850280582626187622645682709057528507029320548434549079760975857774167629023062132635286490195859980535835744573910741501845392690916415850733619837971579503948940416833899496655460087653068068209694401239823648856702470536381565803711850280710639475507523761087573847942373901178120287412544331354990904240801539762562823005840553702624379931435454547224331539250052359527458875825274264077925845761934805811519448206304591823076079212536229611721053449979240765504235309369981603882522840965856228342268024880612181998971097583970866916140374674743770237719825543746571281259398912145796724668739576404129584067854235479634729469515780796178629476215025192231662849660006192295771714860138533957017493280741530217279790326681508796960964648447975594246871455807626288928219164750643582839160079447143097651089957072640533506688831623910947096433325958896814058090182077355089604244401882799571486830966663446589803319610600580199059043808776617528279672066967987181662414179060017395772042129925371230978426856219945195441502560939552844857199605659504792028138778856642063923792224268160911279883057515064563486136981449272074433191416338553797059603546856123145266227572940238549831769908590811135606030698148195502973409207566785422233791758672359420764589112863473324456700880584115912457412045153922880059257892505492052413451892088922847607474342150672181119724857416938710887087366247267769524767040184515186414069527526401393446340452658341792258551828026399150087506960305630874445187907662743037210969990593692717652954862874150566517731598010387383368055409805689868849977962945724465314625324633051847882720248989627803586774564932533861357454867223719012082056589906111268115816670161576906155551887101599581930017044094614159191140530335421890275536065782489932154336590786612676125290296230587358721666868940611453536019045383801122883374870514776955500177838887295933510591042561359208249037721622905990907231878399249834753159091503694859485784029159573224525980062090651561807778922033147620275429108211734115797055516597286980614454346839301056002770542218022990003479866136793209847222988999798282656245864054251200887221661329781720841331121310112930290250135072140631785203013132327942545201903685531137599956929659586655054700697308880508451966628752590519870732044171171435324736718078432656392221875653107587862967882155201031785065196077698290816251234571299825971362066926564682796758857778293940542717636983387390411812607689491936692948121516500845626981292508769917960792326439475445733321436612222413953854667233158042818020091784771792729273137155303384860199415533487602846105788702540765148981349036710364851542299847893645500709847588991625771882889917456721222735294534114810951642248608263670905064635374692528929931675279303351918649542544352731700649886266118933300180574112858854558549504280576704943033704703335430373978803706693403212352477720718167043204624641378206943319796121610709430861386364379138304841009572062907026506474335515645713854633916310644976131763166974950442595683197922156572334380345319150394691588253151099589685176585130713142757295381426582289711192423101029473101509482446254089217771588339009825423867928680855680033876470961877362860685830565091320263983356614102171597342760245099347477933453514786470184351611493013468503381071940045306098566894827776635478395921106979224296535171567056126208245327612074328948456377998932091064259860352156314584619484715263919443915097835039973636562840021965643127557674816018196774003966945480730559729463449079509617085822656893364044476443103157434859010897663612674556277691729158827746044018257497098645338998939313451484581769932065705668486185789247893178301989499884651626101716294764752347613717794218809729883281812004424636919308845347509102019762929607384389390798162737420352553271808114284565316794720604128682907905509921356965372197090998810451843692210065096052218172767474633522264513550996162249610430618702106175360313176776115314239766382338625202651537130102041415577023772807605641428643829290455226395337836843559017301856196521570055313818180744498273858005368867006450896394308937334845886070194061126706929788410797931601123735472012347014710683399471839497876755757773739741590673410651973395096532155947376992723351704998550579415415896203059232082969095756878019981419770920215551001057318225415646996423695316206735019953834050936671822191824890294815503676871386729663006145038650337271847294446194474305350764499814611935635207940458538104056090962868174777497010672141334337353290554887623954586421486722239703689405413563331213389130528927213400117394105776784187527070957585839293020079660066077135069787641348310458602710405379235161765512241106287504859958800295965473157812242036594305654226826880072513856579218836890857738605659253723304704265554579967887698796822826253233971726355635013457366148706216026492566903370944593068551512473076818277170917243568596513840226027673713598868485003582811756580757163784557432703743420397502553089487136926225822512424615472054671630506858371450839925983708022015453828900669765778352710127072539403939901472291185671130552414060857311770172571146586475488420189916019092834069267080375298410372001367431381696841219922992068111971989643858658034624446493377993307597937174814280233674138198083291470241768741411989532305093723360760638597064358909374975479543293482347151256630041882503785513895134152605760889619906727558462361056764219448245859419966824549938105289778378835638913917451694005930244737161618332182359821023882796820535643048333364914020148701928316079612847220969579200200505507763849219478799582974443714314389884804497582712947489567641108617516239563866337632947114234998347324786925141733380776998260411635501080493528633830569136511154689445559453227972879516148779153399171252501370484599523926484609967010496406503904759132146055996254524467144393430803791637657402379076235587314569321741164382665942331987739882791894296903848126570177723968085350346199246490601420976043385638435302962562555828904314713046547327682047833143530117010059952880867734456693553239041128508607638001436969434056199145047140378394639841163074781101233537188315461315539510590574563593809594824338931590100540961559714130024071952467284311808737131709338973804136695589660303618574579561697329358305400072186153629889032753446699233122908764202442809700668406655633197552111627668215304413761911935190136676274607051865960302691286513963394574472492493833901616693349342851734287665712589959394903257492595693514778070677011738760749199020806643225453522476418783213728794571691506781082110134012281193049168622044155062443356131198292368675186328574943655231882350166094855452678048972916832004345233666226639869103012131408763828117470202940800241072679252000529484660029501275894919406903567597340689637934098950378280567739112682277848426475147708602619373747688814568042659840963613331888623648445116051715745441084479280654584453932056048110816878789527423334915092461790988165977267116521351878416498901167880213011179034661857959954252217725242715086269724959212203948919427122137862040028127423078039989168955769483635267958640294106600745064282304583611480308094094771807984361568001866698073055464791362805157009123123203114947045183749798012225475979228060478725641282979584829569849364033209422992410552491523521927619551696485328652038598601494130489757867731084091939781242380333769994513861817032685504127608656372225561210726686643118376517477108669521411201559422543109306673953163231092839115134638038226869059614402570155391778259326777921154404696528104493287552681188655228278009784795968167423313357496653744274736059150545039555828663341942153340609377399043148748324214949805329164767331988690329410954797880291068369792921467993126715801678226435037138249704069276699674092615132149473781569002692603145945166631265321812305914843097396181864670297190707041025801945600181014143810976155406595382716956463030581026586491315070153988787892445636168317565835167315183631154075880277523535646837080887860996292380987634012054760205250288383424853745720853891392173539582883068823910380182787923975573946735187281094042351197195878522983250627008864451528195536841240921699518824733404380634991769797309536626147316977135609113827227252229198182042281676256166070142936913529412854342569685236991206137003220770431529790464631441696985137708102597228286682465859799119094546924696094465338284135748085003304447262469651509959149429077554185708568999228434387871488253169452736148833158151211902826243094848161095347048755730069711249844217960766952292141600166178284348795972203683760287228378883813546934382701173783373547353892805346297912653813315876790179482905801372189783245939030630303276170626538594135231498481086578437871037385939514298219111965604251589935343443843263210683634175682791101541876006842479997535258539864237547730986750853566528624010153685146073618825113857804954777343907040305844014924637325731852116644575293727717666374982447388496838612725976126033739507653940993527491241802464866389503100460927464369497072578051106480235577057729889021104931285387389564131710556835599247501625578824055333946346968187601656666196619391398194623675287534366852177700125311259790156140330488713794263147436760887509411617150565140222838378044699688231488443020129837076764278829612999328625335208633478418878361395859995797821597914693415300340560183966651661880844079902186569575155067195527729596773705738620525007718580841988370314089885678892834111712361695802016578336364417929966483278518189730301676833895140432759785107019428542271457591156401843129937567216520292475923368196591873551149591260918290990185095976534981364162243205286670200604508077437473319536689860552515727839992574664682755061179461086324875403034935359160699393491996123910958351577802689946257105553444671655200720882730334686796484074010333962835235752455555156137109704073596909764915523254704370863286329534900566785990639947312681736457853921461081496902999079813724559863589862972842075285631071950991936409638357050474391759961348629410858904597562748417419136249390940421761548265881367008986931806236841038578413624544350284739262560815745373253715650506769105669708231546808978961399450062952324982454093673510893755183850599743540256254069388607498981181157228741923984116770370567783684095264641307424563882698636841109837790401275383000119249851470606133786115326156039530180905385307617037072221289109915634179711951642704027628048025995266287441571328462440610645741989298801912790364188546491454854111230311897352479961526290062504374475355968250684890201700867070125405109260467265667105237856459783376486042957384943718594722747674564908323740085767224626930184756363479568394764828633638752600786953217084615037430395459012467769347298780941243957370157557133036416067272856942634468774480284184271167398104290919647359641871472899794197810546520769811745905921056032527458053281826789556783497268694117907486247009482153380885013041425753443166372357237449053351418653254006256029808143531681679502067256221557918935940336972243608618037688859666798889891117435962992651658747719043085467522892860587960512150807257394144559705622675200128306003233046392297817061016123252782825040143230463179069478226155403435904068015734807696309978722264913500960160579849049619370154246693608094090287197234542827874549777274040161640133394715811960551305449557968639393105830259092211147736250154857445768277978997498740769727225598707723143598993121819150254367954965229294260376139264534677936765619713884158264204987647626140017401404082090729620959801279794408511483293166714093112350880198717462000150860664773385720696016188487515835640649527919367509651191559296655902662486934702722241836333192217517594643034633034058971060088279733287666643794439424143095366502806188525662651157840987244119921092110285520985869059792282589068784688870856150139233190880811347642868936442553950688459819496891976055676998569797986347419287105861774756202393945589229223600003781174312225329371378003830312083068878378901333126930698410931728633932293368084347340622316479035721157542030736051463982683908615961275305324455929845577893375764795889144065726432332518416833548057746801954600649556810954948746567407772586887089813832773723812447495072626062097492642949891272069298101336655608448499793320304093641600517828507330174500728753974502516738331898962963627572794729838777644240058030534454016115189157946846404372244396556149205682797072020063347669694952186198969838451773035480964219201897239180849135027025274760927577394964296538565560416904535108732094780383642086956109866041562261924076100142762921273364596703744084889931682192837705340546703764438457421390119240884951866023764607957309123682081783078632465154083792817141188080618046695395219410910055075396959277479520707490328224932557686907341234098136301729153299544467041526713764528031954744730614515440665773922302943820545148316890725212459185720053906288861635878460619020915228057273018500701516389334409307711005295060146076280159575635271854973568279583037439666815759868701634911099300677035314245406551997021257215870421403506219955808351689863656989361215917802617898998920583825320837131126730373115423252516949238481163436410275283161298845360632469712347672846906000218236771565483931788910658663814500126056680818432330151707049963666081482243826012423792418278809403681720969548975810910133521191358155288514681187175011742611092833123888897191754112138751165204147922271917567384844818119460577852368335252316727459638816958167787396444645137704330230948232695193857238676325018169997572929369612579796379466001558630342982282481442844505906779994478633277347832445249882250062348741235864496252099937350982805544824544298149428263740356885208977844514706180706611322892642241061412991204979112350383160338598805731460517445317110115499187215512967176583663021634007253956153578903277626460549990161808341798885960014161988028383626922542206220006510869698836827624493065800934992229632486276019266032270826361276122145631493200979780063399176484572060606768512871167308778396529846878165137303379660536038420936927734837387661046838513562475192317845775327276517201510867479802774366823922196248825219432509534454885883153583711411076234705620126112591767373896082016052747005728554625196908466036876573932811223806943660658934857488085270061243198039298093527328702070480211336675364354591044416841570719458898148751483789232357405588393849102967549344718304451502066609192926458070828442504832102433530808811699244516350545747706341054027849171749880525437844520761066142263328917571308342310306353346372670672467870203504897672041869535833077558859045845634244835377282346367448496008337281266910560491582519019785111893870982486977756561254015496891647778015126577844740750769973908159786646449855104431298209265814169977176621358051497277442990068808797272402912131643269862998807480050648970140249802325869713504838138708335309783735919428889540286003582371532179337862926932520724382880139609015330973321771466821719761611970550618256390580663915055116422800733331472785117003019247126151437135150333590485429911894727728291619140051898050107515964290780258982110518635760181829950153899500830956425719573412690202256646070127466597901870245658350410376155258819356810342535282511538653572115671464694649251054573162136065501346789039712071347043138339521500412593724392734311511461108643501138522878669438354919778583878167145054633726045003136933097828132141003820666989015116852851999526590326118098796258199416480388765982743240559297098915610249652834117844035436180762791972335965676475711885704924908860323613454708915683139156369684979363758953404405634073962440348713307735648610307697530410145781256596512136193746442229788683726212685171427907820186867667389384456041728789267642509522234055282404034772359946654368076089276654538811573361217691774063786772595670487074568997768696393871072423535183531745243561412297574237850966048411933273475814931427951131357580841509409943436638656766635617476021747860320281875816809975906287007202663104165666161467929779604469048093739573122357441243581288372629399523659443958321107487803478509854851455506862441293881963625732124449583452277647631391260547871734994922734886529120461582512112540067363506011312092015087448673082205829326071372633521596971994833979771797244318933787733372896723789069429864912917590649337585680644821005646992660574824550069792538978028781967164408353510142532150979283166673856862907628899908036778065077476838196734104349929826576753735676403705340892515802975709891798323918541755708304888681894639453959091503125412377727213697139296109224413900808336356902926382328362923127663579219481406113955981824763230533418822582096933115560226503518886358578066945045486059669159858637528292097846016689366136068865057331402851262804874032775762497862248700244888144044400764475404982285910016933780443377816891793702266776144394250396439816169551878928413405811497510367464529822749961351711420011683416319677920676279690130006912692562467183432655298032434948519221207093719081470779531406399631441693128418332729903105557318983709057740257315473646547117714586039599198361799588667292502205885260756900308388423845254414584677935011308653960974194866040212295399370030601077268883306409276225183187997661275895672946449414436232149582952970661027692228052739228892765878012507017376437846982148304518559473893821216687925734663145243653091113672104534470995155352740897941181429810186259977940711377367072559544126123851458230127011421513282396374688485067638265591402700856140385782267709412242559444049201245554951034469975042391227930850429190221368587439232318641182799656076777761215767959102905466717788711730080168935049461667889894153407448344670938069377617614352418581249203992105850706871504361108243503489027631626935758208664898403051302011655667893495792798919695613247583099082983297332538871884426260003837393383543870566496239412262255147440875147869916889751249852746408458393912827607237050052176945172723585529496718617768744309536117343906598946467990551283971961605790681758429135618256125571875238804594820766664477003168172003356499790622102572230734457342973637119174903697446799211506984468851332665031863544019040723271790737036582869348217363190696178105799966004839724770664896831610590041572770227792040874785491926649308817489140414115273187699595689861602363183840393559343404134331761961194606407342512790131648490789984535043410247493013041448262144297926529924200234820358282206284108024430087616825919285016840178988646009210518240994788020874007880599139413509343002236390827319256922573844095098441323063656689097076835420236175450304599587856735120173538570863798385322930251625016095257146514263482522153412698636816477946198522726583434314329842983179368367828254045073380131401109148503102757545159327536817994914075181312157601864675207820603921189243056364898354621190780356962349329109034254491849509526298868190922957998608462409109738080776111142193461524872681391054775733451430685222188574342454311958668273564411610584578296306826919889852873725705224503642893020253730239354463617758281138485214276994841842833169799572753384708121458819509241406579055470070459928945811394276902498521591556569194155922771327289853215558287774249038406085280032546665030537804090640980063663897436393171348492387503385492682212311031563852424540899545275303351407019658394545716345009580422498316019050558869091226823964921434877309940214588207262279937426162595925094663284952417107708586157986304927739688040757351034885703634186210236618334383869737600659811392778732315030538380647427281585322978204105060400167459660312216764324836666095767731933889138277827920010175047748011544586027584850030780388622065335788904831181261816826547368096943218898839252480011557990668699590915920214316210818405067790082212321261815721378136822080002133850463518570659807039053520386850197982890902463365532332355398979139392987644275428724801350499680035002379780296492359735474398057542938908916211438732781874794220617152522742429229938116685677183514443482065569683573230202046631660069519648876574718440381859090419037917287871435660894605030099821288945144185273613564287116429619868648097881741702335478725020063282105778210200172104243522658870136282145902338226311575102307367450690797421085785569499215553888198684163736233147481931928051321131484447430552204655128677553459440356833935075715768377148196393427905774572459716801757861927362396596786740312223564698585709381528267830193830436484621714865858551472902401669603812104225251190064870931189418101632227887688756209936103163839846388571656119073573271098034625657215110900726278486385171304248373074024795279560805117043416509532264534879862087858886096341730495629246236085896939423053661837878176886577437938004008835666641718092205942395337592673258919696448686518246721439743950339275871463541225982451172408091137549615709421961066871375026474798230680074537298104509919936115490408752810124732649951398645229672822361705462558295600599223952065333906922678343046584831317439753769452774678199313865147390975676554041524085978377963637766653642059389777006052942445785040362179570638994392774820628539824227137926369187167251929777104333395604862395812110914256979621768538722912946421749825100065555820869668543302450511403407279163906341824695870661033502231481456304374372216573330358955518003687317432743050674194030126386939228371961735374378951928175607363384674565487097238423576328629410934651821051289960747363808972760918027990344457847596632216395422161401244112537720084832420330735398842150026066489387055282840325403505011552856389243402947310632500618534630919555504389473766156217918578969082400390539082073673190664633127300473755809176191854167014883512197715892168184113166343170334040616654959685220924125365416168298089100911429809321326533420274759505345904492925065362048257934424621735907568487594127888038315379226674620166344357725390335076804249356863066997078479110600369455444151601771577391077159475172489594301264927326403676374518144642259282263709219547581389498365018663689344275701923248963087520260178315859422660047205232878240961688686119724302284865028212099088751173201322591076389586140289783856070314652890094088557474677640981129658225360999818991977485888867787494415167718152372725994477936309001172232408783112077209810092087515186301546645736741398707840074902007981999791081341200351615020991327478534274256636561415111112330578590024694514057434355060990684838379035132247566454727265490768643113070614664236426251081928358320101810411961376303088836696432038333564832864259603252057739244568033133278790536166996905891061338080674021839081737247533486953693631238865622885004114800123195349794088175154159227479524125609195778992639959600669575430438381595447858926454239611667180846909089132828235160851559587646169333059365736127321305537105543677157214675621702197634644112493890268872752132093557651437389787968273775358386409912194294364279522102187634541256321726378969008492112589624663081048009239557592259421563596444914320737734764659549683366893146141152364467374535394670420144662300109257817440712443564252743083313143708217029324767495504639796981023312108447034116374433790721012715254616710478021150469051314115348617380123815353037202846742935143276057441760933785808720027563425360246605035758145720140676859081779637346599842318634848825424361789072405690155662118795186744975865940729187658751002032893896681929717638414341302715777388428100054302520883766709852862370128434281678100288423154697204374436874234449601843324235589309829180938317364182500238719170260471898251232411858965866638939932335502621194095815646523810966278160380612945549921836956711644631239178886583820316720101278966118296935059369046669983657271497862515372046536410743290459843115860355627087875051100684214816201865022374001312621169844980535808043598641894677655374982584467903831936069611387693905424998407533156830544643029416196805531871806470049585263624106910153350326196090588114598872366043458637247590098021369936087834486170038037813541178051219908714971646904922579145120959152809164145528309722885755780953585435411185359225856895766212914473131460949826673610433198292869250396356122497963551475023738779646885031536859361104033584019452142199305386917904406976469908816668470089251516493514720541753118724433266327745562095307851012016897284263991711445982001770176972429185161590793128342638083256440933878050565230868811676913450610106051046169117611353679040017570362611825333021491974597294318228087466318008187332979231921977812382247333111221605091790447574838659340085928148735037477794358639699714790530968243119333369524755180238708485891014403993601629976255818622751001580535722204617363769760602591138414356833432771206548754377721369602445860073465733118965450713913566978489447235787815279899800599834001734934484357758126265588092783506826466658911843778032672888633850001614414118206389302799402972336709423155295668691140180148448125417490507795339830641627424682996346465941237870699554742285473225799138245220979316683501554489087375781638998581128350861689742275694961351549560163553371836377626471019935107492793501240793616412960160842150719242733754218403257301310902049348526205379377995458530434289180160310493041091424656558479437269197974658179740202812009915445571769574411941214561056063744970342959134496472924702084414153242275921314384904674421363411058734612344196068981910808713058299902938894269760051775808107640205262999641091340632648287352388576997599490173290661317677468585065462780934133913861551746181541354044574441628024128862698140795567431363767518014077343315880616733970996593641265075130330685002980268482089483794175302266098525633811793474685236514784811634889240799980810358781284152481132676770213051818337033222018322038561807817258310776343490860512005621152484164319518769432341170148569159989602692672899062074026625240909695064157207591425745407381494295748922513190376187052816348248474633655850322707452150663678173365904456416854556541621008721738837393990647150294424948835530278697232546363406824518216746466102186524550636428557537906394564201179799476015663312720772729446857823918850578353917338131178643195629789145952446815581357382839386378763543193742244841535893668392545137887216038912780231904316327254517453312577997065188776247122590417733854502439611971246252127803352639937917321825661179095352417370574513854958011108131450775021349126097911255403594376382492302218484070446765229722339148664297601097165760209391569306925551360411596404871141197879283730257043795911102827517781255440585732698488822091644649657802231908580700438100357413224351566671981393789925398545571734103800515767031711498021949271985046662223732868621409499683987859695358886320226800013209744406816456504881415590983353490997344961438086904900935316220992990126423975144534960123124869552414535332981476392879745740418213060284407391582328524318837519050769320972209552018616363404795185845012026884376218083694164988150340667230099781474189734147333196516243449601138906617811297341852516410446385172975061583891112039812135495348515071824033475321406652098521696934933215105964473658767079157534264196913521399073955458759336791146572489695484711251559549481649088146782689815539723933431803137109819495445499141842314733857377939310311995520528785762549543835780636320871228361369652782893765533216000175285628281000710251277019513695456341704129125958687220887940008959644974683773258895741256808917886888149478701461961297680281538650706483465868567331885925057951518133078219196014860516955420096697563595137801824489206241532592596027086625796057540397496090523312477256976428733032720509794580308561646401296439027862109157514113241414546107097467372151260019295306045347580785923715927755229021598045387687740276564754032269067594208021777146888930025251832206735767644609007126740856170448930980756567241951790930062639468772734335186306990178352337309903646714447110064075388585593941654845496598799521763509041532423117044727287764276809011948581775614980847986697907312926155183720756646885956290121474301219651152240314595655939716095625198359638672550819965156950290821998009511868889791066869058537802410735314694752120409678396013328903708005144714588096799033128620946548615031824433360850145806399977750639780111592271139622905651340110483704801982672908449203870505938355344554602676918744560449049665085483727012042972128865513555632680847101446730172688427135311445259318815458789330829495596832922333497605461391620822795875718453584685557165273546142467885062383709922454881265951784134205946629230100647051052002389877788377490454432092509346857801001047818805821805499098090266170226245801648688665235358039202623249645636187681487880773875912164351450784524707229726032100895768114269323058119387296471797888645258911178032415881647673794788230375946043127955521830703261255911689771556858742126073584957570100081800191051373576138697776151700933912390038949364968961620398754015539142642653804916085591252525427822391325611686145097375973083118308999625085804896031028078669661489988790437683792042569243125643459607691058298883205280240880216560633634387491177317836983175044146738681113516975663023354705797256220598198298615364491747375762600542429382685326957214618322909329116285285991155678765869367134257548158831912990398837703393820140154387247641323758991903684248903980491195700113040795665528299648922454870508510647115013366614788747792010667994347891669072149184177139274825595198343973592786684511175966149558936983877097312572740954549387803290833138643433115329610330744547368231625025270058681001137378851363920659516546063419513657243330876362123645741615149513791701962319251752736256418583603584047770301204905231442925471349293307605529834975812545187010247004274343042917208141524347611291979382002188384500661193633687744046126101442963243389304283302459957907759873438405158010370887319440161724434522671475044807516570231342567171186768590205471888098266084572630393108702942602488304954338948557346866813055119032846355158268893316656107187673805458501089267272466461674242403819563657134726975716647439420381664472459268449265387553219495997169794806822126717857829961068349777275378437043724703725997882876939054026900381677129064217976096355354363570015122294279087186480747207895319285945351761992922353481736587566269807045304777992493804153793636437188873203051022438626552098337158299649392144114773349559638162504351514526403018498923117993549086770072083004067113435944832193971957827840052476167357928021167952326973513803895315468161743547870715065759960913631190873335970924875688810164872386271955122848650448598623239952219584466433775123352993520311310261099781285677430347814074516492890974175456390594366857846908750694632947029813520490865051534211202613288497162358686462493686913966142772261812394189706435210648856706761710313241594210611063687387420428008448712802584849339672574338144915966188199137136505835184974516123860704916218841720172828597599115865001454204249114854932490040110221579734287218355377550535728733628271982052842855461997240004032176029665306385907425484772784774060813669756658030338534534974600503350296137079135093638495333693539837498730882358859149678548478577077520110312429194500780465700858558925925750436812792749409506517265893502477691643037057687046468556417183317646236767599432990502547890230799810025126413249846714581483150433781505176630465860138854192517773654342536656927356719235886682556484375143377950761652322296506650028561039563296198900712325600388928431842101181523939461423146718124627685569484421670978783054216567705497534523924177491211777634909593592937631247657866809304818385508031949280443584720325597065420193940023100412300246810064506663902182809160749389787861729223845619166812251016692807866835334709563066422819828907226371324579190790062664911634467673840820422527780801437901013637730513534005689768731735370205187537935144005700418659154707398052294121714604516166362966970417856263401424349012460698736908705567322661321631071383050208791045411036136518867356969566630592940067134473866651779312429222018601979349514845296732501099908712327903559767013292420031090751569494428890893806981113293334598576327156492335784695199992715166996498747443246000659928549455835428735698148265862547890180331251864359102463772792503065302729057933564483148529077007507771401529097842925517297423332477066071387530663167005717736299288748301030944978632536315853055387214787510430752493660134599024542449354122081473459316636171864936841988005263829040416961507264841782034690694884756392474181156504439091303039192415181675908638831042343069210252565626876439244952992661750950519960396289473703053313254133706434085234603949635097379673700936817937836755004278351597256581866171862311145070764240920026891585885921609441639227599626384038900364064603848390256197438937260341918643317145290512247199072696576900156134730960653180727764642170138768317941855833674146660729874207847220781311158249688000891402132619572132271383064282242792091925928015271929598099057740827256314626595899727821346896760691511199010409069720240160748088805966956247422635534916991220848349027457131874730874830858393300902286518876856728126707817675157573499313242831301568644918933800088531507087396104456203721582988582575671344398625145925753626700566214388847207320206403495481683013713655871444181199256252189267188897899494596890646786228391960495831792230734532989126283259227539527156805975632396426297507868192884100361081784486303417947384787680102608109605120066894957868538009263004818550667207204459749492791140614744886138257363544151975405585761879574395422554874033724415794655342224990979159085957977270362904958861320666899587151338919187069670909687951686396708964711256200513353853800349177475649582968153617248773102517812091299336891557730336849252668304275737800365452990926469363751105060933482710840041108717477500966660029259465023574524465939602798097036717378900064347472278789768036447966555243688312005155181639211736908448717200292544790750152553443540504566402205718239136117852402922788262777197292277585355030197168330590632938111575176306990765405054734567164894978695017961827097897164791565784565133948496018012899843785226554696613976398185080550661430127992441603728884489839500064030625198731867430087345874219155883891907726577748276371718139924763867991164241564300681197565845819952858520491774785779154799173376498335731027727875527191630913549121693602798720106412302389431874616832753415510079621496368590852202445848580986491464337174442380530645554446725461648405263577463502034024070102905810790012540323590923069372027432161376204391497886623851152829577461720903718265766678457871147874828362024087416640391351675050463379510548458346485663617386605328116513634821238601049005793910284116727388354142989815722626169838604473256493750179643689989015601518139369418344460494467042496671428003921727319327098990679755839110156014949796891013439147155450230716078760153511564523142830441632541498269451747661528690000793526388996802021496782220493575717565105885761762149993539806165937670082175417932092526950949133292716957417575060248069290942064262438550623172135300589541003873788812803747875601619162394745905926977219106431071803210887101213318118053463192661507550985690009928785239105864371545898519668437138086943557010592975599148833057981151343962378709857905435689181762593465461073516515422566627985255373433376435887324745410919831182137461587719688160064264005578228332348682038799723889501452473096817394884201507603424913163401463418140456891050791147515291619355394087406776973146487305031882071354220851137163910990923249458558376288284286733515562582685230859783281203088556523787823377386216606707603022586752128002692522577850260309510366444573671628283187343641096879190552877111149511906778905831538837954568271736838108016102662250636403146880627099999876217730300738171794053777969230867656973071922050107479925140655569224228320659555972882794752662779379053141440946565963792523972068628073922458305744034111567522131850594021251041322166276816249118740321334735930849636107283466788026093076702420451406384844688293394761764569347767341348140972798642965922522676402697520129605245853030022489500526808647183157272361915261299499309435950036248493486103455995834536665777464943817363382631223011419865462733905316174755092198359892938731166351321600529816543896585094992181918653411683954025255919272963653912182613744160748949529957071423134253386439719879308420366592810482050775469283894275550949708889220347447792942964727718637359173576208623842334106844131801313620340717400605653646097806040241409733570588854064644488444263738659635764489605748188152176628493115553777321615545429648909354435011442930842952327066992631475560764608368157963041149544461987993819997747123406824952826091298071207521160471104800664308903732031482712521305626011761289269700746956737970569259250688688630161357355813662127120768814166400971705664538696714898967467799192461981605241768731181866852230123168720897750556799413475112239359098392338708693735422234807594492522985994013466105943655555182575518972573685884765519176575772364823910630308075834329362946361696589357807447230831988647026962423186127219091012163901389845995448212139281846250282474769565698392698575002588135353203633443442875012564287722340431956272443923565982407223145248864828221265205666834016715345334827699940540975466687585703096903876855365755756193130576941106859710990663385385453011040541165089646893769811705965104323206448819461370697331010877646946092125102726514051197161455765393606891799698897846898019632558562058272970774218574153974459181639029030055160947290953847401199011289481877188603958102553683043841208372841661660472682219040276322131437852338439906496639658364594817575359094218731421370128429325078392975624373048847323199492649874052225010594566689811003290870689442170252819227102945044881899651989199464974906145545134532567576742410464369301526545469298928328870469864437163725892437196093319987920131599476627473155888896589890980336809792763895653909412794164286911075006847889507791209328231114468651111805647612934535145578096761883871319827782832799468086974244591884619833673562485536268167433742997770068040122665343863905740920509667909307829522123262405492474320128243886851981691007272834280448287222293840343945693146920269311037370904288794361176021808257356272186210346075217823454067972259304664579424822789848169618518492087487156396373258803450718345541821101368094475738325727340075814131047419498468791711091117692334773702144871498161723754175883717823324608926156796399183434324677475856731585279783235344141763205260462586770756463879128383127597795904036467505320092738878527147378611273706389907885930452411290820764055440817002771448099948176876748011822019641565336939822885775883357226378448363497578135823057080823829382807065538926475795390744873792211408700749528581872957463273152106337637323012839824756827523877590415611256899388240247510578788540904460833577694868436014320046069056749694002855967132703931661996304979755738817578959288082484310460286113279550499954599432477753184734971192729897527197549123607197335736159734600436446081264324554211170758906010083192795935547648751598322573848626247438225704091449475549054299303256103993339063131700780425461021084122757731770944804164862529521982408739826107555542558935111951304699374850559172170974307256279197886172696134285734656428065639642022667548751456881992691090297945046396700322916053149566596526038824320425623944722933701548443955936022445470790592863928330458854133589025242009538659272610936619975021023959923427723799787374506219291772352851862232357648424335069543015245918239349084877272529080407279290034340093437977906529551004157790637016638650477396429287492378177904413730253854144558998657007519887840098959622589709447602916961564515583074710770825293144183388904120635437305986001562673589840079390556175291676301199742067691630816471666920370958025196311763230250457122019905747213324592658998595939865315802390351256116501877354096696228865998700186210799282697339996933776093130904677038794837124053358955201812660497704685980525896130176200211346514897570383326342004006410286868742209286482686504099446917259557129885355430508446489350285826329044601068128505745433427747980869165527905210076882202897948249064340679030145462721868306850033302560696586255641609964799417967549461779739725020350943168174010510288095911184882098395925895457121168572313686784922369221366414794858144066261645716530095091567614680583765291723098853787176986028023750655474099993308014121597433527689608723144079118712724559413282286951662087351014735596229619672523707141233868862656727923345121907867467160326043339663950038840973671345262391572181189320054965984503995054007705726694715315718601258322641675685736366906146101245527522228786845983096287142824026437775035633418138985100370695936763584390893825844717004106054951612610691711981441778791603288974496897251859479607701079580042064064314325897366237541878681977038782478163103055528656857140635269922994129037680559174181192218927263682405243568565865463443231580124451631827243780009692847183689236954704506638452045814275368689918440509183118443454373003808026821488227730565996987571279877709320180324319129657626699317643587283613505164984266670076203957858862804257981581583011938761881343620319650341110621141384145041821610675750703381718382495826523617253600414888503217804204157616064014539885939534787084135997017344248523713405900273543706630201360126464868276832352888151408100682943889418974721513194603403474675632322665968737954680492910701542224829726909510394110483568716862414828290880119645709107606137721804239586193352690265351069167274267256766019821303520898612561274399286873252354915717193727435520532352499107376337819161752257729787406038037259451913507178499473710666592232824303273266666568774100282705768188574007532005756722986389541108080135690607872990184405113758498541096197813484232104974262246877924964362154055513237095994527707687643200832212324617165697294545768815168444908024073315576343180523655079406387789249026382669472264353610241401194744012667570134106395809623938799570250370608483138352891845390410269053150345676975911600581163977780983410310721529257286229594376169879340712237497242076811932962758835429028530690686685633614035357744720037875054487954682570391625287582170243910068583081276731542825866821304176327506823415753024360471422652030700668600018199500639881009800732475500373167577211353686227377792493767475517209338985620860363264366462552606922487815623133253319415190271187818627237765113820979039574593694177242761526998978518166050101690119447038846035724922163790511984468500800781310897746865549478404573654885353541440327023671149165287163036327464185610937051159436223649748583157213605309965860333330744726179319816653450587320071804638753581385998691337740122379425081319239863374005330450783785141327934068255124751779310096253013565098360888533221050365206197159128213487347500483537778596208172124203336771986190243138562621305928775973928396578007721935177617882249794960135301050342263713625607522845736024721087873897525413389050158355362229690905484179319379732917483666593508059152375211788285930140839247359686990894670414905472082572544896663700235388622394189928035549376314829456895349130841873301856521418867047589794537971803723390327595473117763482503656469474279276745373151303985249942261497820768471193120108804084098562116166326107255682825489700726151755699873013626530089116125960604799500423810472858171098471075915669781469057126600614755179075227057297115021078671620409949717392568384467628074428266421287893373468080543985243801467952707599811964312365645678372089387017365461970722614999072071656509046062869786683492237991155884954680628303778362664199907325979394626426644597380423310646099122226580714523398724790014272441230835942145491422051443002533952497695549260285964545295694111719894145876055445844653324645125923501896826215433127777854112586513353012237817134846896884345420798382865355007625138286176045295707719757350648004399115389779394500860273932031560701504755112156761835670038969808006543401274095790315180972568101777740119312014141155002828346756517363902007431821693913478118266585824912605113513655418099146511395996313561154112299988176441843383980905669013468704402720242826174122508372959748998523293346699273964279261089207774064506295191000918462952524863311629972886589452128788086918232679262080913742449605360782896250477713369604617303520804031371475042144321041105501885555447660324425867626891615328487750691119652766296371613140859505147279584757308072809462735874266359823010830336358162255413049352694292763592047872765303783257640282763647428888853661963183078896945435097199882446189608505715385402042160702828784701674850011484971044174051045129895122598932458281921027730272976531542155102400611335314795143149126626396121009990310997639280675362482828035555755940213555863006425328102208057319503427441932448401421437357281372841031575844303978146820991036284489163828597745809606526316397176705234653399918419312959631748760877416501179320142914894496915834892209228754182894777343363989855757968910404954726523426500369554967642755653525171030328814658491866117775725209206893073811280620069056517355147352228535001951217064439917712387615570651433137143792868147245768441930683323527316676307620123495038421829274168849038609718791705458422448952266447152395579230088883662945415501197196796999110200864658687657042355899253848963789557085371402625222230061482351691194175763507291872731496578018785290949067360983526285162038796657193176401784076317202724219825572171785563845588839989630482189413946950267738846142167066024092397450533372504880715210982792639192754804355011740827009728162081603722552722567997185385540599204417491521830133920815479022795484178853547925990272647544520482620307079825179923504753795887420732675787280484217613582309926826146854070482879838652490407825080188717578542964117814054243855944549933049267370935835142749338251576457351855847384095421525350980470128105308149828948029681481153204416133678529937635221806641384418868357135603966790764575386293937382421551347937701846206701878950117042447264473613039029896490513668699047221317717926477874794320786872022814608315705351852694156863746088394230850669218453035861734198637143936849384393299144647565091417807423411601572782867435389975270119414159259361138809167665237323172026900804137414077118711761583211667769467560753519859017660647775521691987292090935810013611822115967476541036217284216464875511188990867494237107160749820155356324137035129444134781663613637673662800224760619205361034331035892459379400423248528414654467489600851427575617027839612510694423029934913511441291796233549259347411769384708886419835530977461022216219870090704223533184422735141655329088281480857250199869090242039041590585776697683454070113014894553835241931388179602025060002836788876511836440998893679534974796180681784681825407531948552657955747031021674961553689770691624102148406586357615065030774015146809187521353534112577323159183861902186426267347654691973102760073060943055374462583839433579875462792738099468107566638244231759808715130160429145361466507723631560494702655326221644819474237202209322201487229734157832736093610364656359412763395802907991581447630606686306618234385693398629853645024250348720698017040202643612596826728642367434575502173209757531502033678052354565254578338329389100674228532219568702864399673949112317304282349486996641935541970512123912840129455343604674667594596143477477107284490314075564728906089608663422347760554394057908226111302718825629165240583560143651096046937248164148611455328631046306158718228168649117095803486921166129762585045895870301791109943181272982194316023748633738224930419947058025073191794346488394156363240543322282673568358982459623080017404906195034390418410963762025434024567398870335722825232161721377790879273453146854204060098737365096034326194692849713270165518596118563942061933003535581137112815515157186003695792035016989650563785339582051748493393615912529581675524051450905827733449901169202224490742886891112184667723989383400401985670961080282293880375717227716192196273715245823032320885341128941921980780667622892689957484951594877527349155452200962823752669685437576168328754455432483757178005266579656602014559416388774957851742939401034660354937424820237004714773052235487502986315502890484698816027151645848019745062704921646653450347895038615786818544177365740085928584524320687168197547477402615335491672133539383350810661542578138082125101583622477186133747473169772635623184626534442915533367965089168223008430979189198499007229364945266851466919498388713934540718615512277447547358032308058075717921892756435302409276893156864478067899690832041901098603824444301338679453781980708235309185374450601923001042928845338583147205735044371635001099440207077439065085701628019713695340251377634726636914979040331710682140114295679595206103774349668729503974298607213659731492259774446457476109887940325069397096289250837414128649347570946547176930536279353155648007108163169382141431347758860570775293151438877256821078534138746484777678545070424111900498588063038804088277955621318268571658853984892469501595612994034685180540595130038543027028431104120195425441245715671734362163609528814438106929081873670590269607381203650202627898797912063442472181821741532248631077159600436677419427222090188770638800915287081369029006581888586888788513007820772129711583023454229565189657560588238399256967469091260508777709597395149630814785517447380433503682812296422024683687097979784192378225542424175894808877481974869382906100314086532893232065912738662216607814814779440498465459735398331095062964170237744784122495289860193414022656072044968872969223675515863097748192807791062720658242445263366536831499853247839541390854573468464215377190968851329758222585000990981599697615391733614317366963496904847391571862529606629669417991540607443923029577338028341833172286477998855046037478691730119610079894734453946340712585293400533311525174859869926050823472956960355117803251661843767040057388621589503706797931891786632051391343930347788752980464941698089520898448521230632252911075825929485659302617583705145179823535848074756936916906056060848575136865606217726243410652314925154768502996251964040711565872811798090999572615079812815324780341839391916544871224829842955609263719962587683090906055969466927377162928763681442385851494544403655916954515511514115378299549816012580866838713914903526129165598039779046636748270310850214285922149718631443804058613654511796668316327148193327193905848999489189347417513869748515760153396461978373118663370573514030176926864447354343845140913169709535024000451903394951683234044673343315049150073586823593175833467002262316696231913180908949424055281806340323955424811774079821023081541585252575751830918126501293843894556706739180766345180661177410221356354395801162664646400027394267480152218070617384639483907801059253039332650102614448906867718272882571865310189471727231749829478270104617051347754618082500347978984639828381303065387055190980795744545651050235384738997071782100539511688000666230430768929119941053474145268377715200748379169497384254912695135300310582033298412284218192260394965453168321361647844103715026543733827764382191927136336132501191050598941120009792799038866451882445739600961325452236570563498935172221553879573989500401634059022878829232329544365463934217629165854142956763740035290553371478765005886194857430044153757501372847653106007483016489522962902964927330691324335399485748514461943601049314100039433493699659590789788749002623680225750379761563145668229302710517840268165424590101077806836531531259214077401975378805545024904674868324012763446156197911262502473890394723222328944130481195031428455555955341062191431177385819553852841083656623928274748498368209243142571074969283409105971373728569026364639984787235140009599278628004004141180147670430979828343750292632912194779493501523234377854172199520486484092889679810795705901191493576025523840300905419337573145598990681237679187002226218363038589220043176355199464697251199438649152963687357857608036654542863314982688735705948554233400691767333032599672846033449967442626951113305960392378652158030577303643649359272554986208965591062964968213388756603889462288242245934728719165146531409279215930187649506717042380648756992640211806108012387329327663003807310378353537823520636079156716211618056121700140967285086237954927589342138517361579196540813921818520766642940097366699275801427443771634706508339132045480463840546541622894703587746149294436039964398782719045405244778518502736917919445502604906538666018215991218150285980955672551909887687739729446201085766088283759438247151156942503342269690349027919991291381432451903028146180120562726857771339962811045181591380005614249205732221701245732803533618136818157242669158594772784716319911186845815980509560557080550978631904794500954920062207431617986364012476181346986179950298565032548404101873436093075204517072875939691639560526754461984104724864299142548447907205098262702628428740317279347813388979034062719769181257116042815101289421356548089420031211047539976370645122202346537649635216423751943803838004908736559401551226699704051319658038800939822191496737145727698055968940218716863463910997879625852542399941110456968000957629822094251280564885676620246929239434534929059583881029864178824413896639810518443351701845263907276468501911309868781469551769042943525643770150879806904978820875342919412143391586567265367594147359935236867666242626502140207123571736856488485478637671838453502757739881534783491241492554434305753521664548283746737241267447771478096977637150799938830902312789237726070639265968502519827753412675305030314737151413485990791464076207059983848233122309367933374217652469448561066489866541443086834250682142213492923466251829786828405527976850932203165536771826233539595913041988078030700044125326336207543064003744849637368516118845846194287346273360970636502176924651753714745980588144931930243827869371661164876134654204560760032940730029831893208853921968463526065008542928743778277904761819958390161962764300127546023824201748951707113680182585119026884895248044249722242302339044564387064837716575201799873623696600294651561926414877471333711189384527052885856786197797020567353628801945626427838243887422021155150546086606908910335881611877754329643660202323029355373275120718125268471697426014747664452459797835429068587762405585491064482389357471954046992178229344854464109495960878355382897702539178885803116282797249771823789388288142864007052108622840474950602145246343061059700659687154100581174988877464115820337816189744995966792152842084563279246782731265572383514545576471398219480031499085731768544386941303937565504879911437996720488992779824924734433605349687293804781930507486981976855442219615689498464415897781199541625127144758837183313120580900715092015006802200725977159275352391081240147564136075502726937745359908488953885410930779253760681717518564814429216206982501717594212324308515562723618475481668362324014215581462748535064453483009755415981356170722265756778342463832187670224388941521850809962048571055565426625635956752752651315759390640907425444923346093280768124161001324954013392689313632854573243152458196638032832552172445559288583696403438543961957486414225277142762674946910565307685645166633061156812565592842585372952393319495771256472644140345927164044110489882816484797332442616341690018524617032313412914365907030860040761572035885745886557912336874980785741509661334848757473350127546369366399537188138355439637395745882566626976653525098976866288433008431253798168403993813357097608629523473761229390195690366252786308029948075479870145146673195961537922569383910894558177507965407903390795623012566019144821446591256692736481126856122823643184759232140687604253137183663122552245635910539589355766649027612203004739920480955790020483716818388126741563260724150377649833693432964688251699583278710138119593466583887878869857508416409759927267613436911094491557465539911793776461327847632723859417786081008620055170256035368502811034859303447967702845632980074105163940019146322360317013106098703308595185113478363266217934180277208562014738305336787160302068483418163463074579007620314889531271735889906458622313648193932174785169513485622344757830525758131755497981154538971126003013224794706783836581081356080958499364354523566198152913488294650923299732845630972778984324086958537073009345712907761597121468008545651995133791996982841592386807091762714859289034053810940045342374215287367103368387815105482363399203052769757368035751772143544225702879418596885291376973320258318442253317330771404416684863177946419412960699503044223175532369536992806338256755915666381558998453461230091188793478989074042552138575178790460861579361136124970047032465172121605479660773960849327597336350078280314943736130294997617718905119195794733636703222858572303561756163601854349467575335917569611689193600332552984619714892505818681930114405471516133542551573521506366488731689710389462562385748542100911603692831462694942098006014759704846423725182396485996051825847985333086080807099886281726903772104171921758371858153385950785220370855356633272327149690076996636082270495507767022486431288125908405508441033427542259702017371550275030829770151171129609550813918314749777054457590390269026806358698268560801920098860192461421907051204044181490687183606526102426269054047483901440630123661999381437325250144569288780546727244194436996171627758925678006550627814276919055296830566166054887978519225951333210368711603640404687445643425996383898814235159238630522140980638422157426424075875632544875639011349104298450345051638207269275923439966576560715041117747419996980518100540749001491710534054899387859834905630377348849131581306596344716126348166282006459942145281209576062359602514909253554540697572622875041987631065443881530463277643223444652535238488053869802262438845234433115565697183117773776343499266158221208326515309213879123661048630055835385854465374059915014821899477059313346225541098796756007474373213106551865306501996920456944026015066592089757223437133953257878965889119474057053618597144969863379825056077943723289633713570259048212242827733893313817719989778718810928789509567153243847534243524357208848072103421133094016396967903686068688410991568523273152827364366328261497160840360587903554161277056002397043965108347056341049261342306725491101820109977790120629547057887830779450462863178337889965608991470703079424606439199757939454094743951161059865731105212911524869687888973141528450445135874050861980211322902308813631926121715350557580875745615656296984293734150711267489133928714611877215248793743599449348027594811938302848413417286530442925923454821777356763395176404313311025467918527789541857085279790035861333618786736441645411664584338423034721817478460016681475734751435267758241809513075702239349882740260480851232269776972112652960241350019268689535680935208223509853182789723845440740449565148044639574141194023925318814846322723753131699330977980350530047396904993695859285654952767096774732347602717092708635559073508056509561500237346585429789659058028765115892734154061432204273340361923487308292842034245304597307523388728269759639806469042251557450600632493509110355582125536260179646896626644088898748090850437953410685589319251498610682180105249416350085916669718492140742632217437396985447153941208780231493786777429655325852883725671973794912745233046390463146061856195386522991619734793738633433390065792589947874253845924982529083562524907912408439591382010026808135843207530930755549102507159114880421932290686710633804746228952344800104177549127043686604261677844144247241218593723452782711630277962563318718310734451514389152941171289650210125354454444748117104456022461692436760766815765355354330352908351520287485843877659328078710445476109470432646562355145144182555655176251727960055808221822804047487174681479413645128263792404592254030623383775912110196029317498272503574769364113635284931061526193765021354513535754183022162662357322895142186407630786894266471547350838547897902926078694724129193985232820098458675897513705514894844066468082281021283799152453126515460882771875920477730448039969771498617747105635239059840715423753339513758392734883650843209031183385040614862107755112832376776826095974668317797426832326307032566638103699581865910419183229744052837731427736772623352123430511239502164116313757635826822327802096763872897039475980681579544918752421855167489325905846137711402927931642909964011022568688503464167260139734012945608495268364096476163715809592244104188799533891897440127204993103158819039725182091289519746180509681798045445305114839955100385747975141820731024388121793491029363057645160626346777736053371723073912756388824315437951572776915263362909990578519646160290781996663887325793497628795918416030923325448378601749531594000496251588597950795287556977533752117256208450050103218726589836088673369095198996575630188920196580090085457144260778423602051863114808144732666039914033767869301903647962262979582754200653123289295220804247019423449470175171167387218207929814390861651427504995116611319030377281969236627497963946994405683929682508112537702926521579665386743399458614092358358600619924269761963536353773795303654189450195090638629994753408941538206114509621820635043510379870917215504028760608068267922509105401300994307063915818217932376410539174279349301016730552895901233544139349340246735259287659721060048355908109597943338466715283341565780369799122976281055208091667488276524307044008206153163782772971201343861929654144314772348336210556217135923970597065787762308824863385899301472169533417308096316185124361992556071565934500453426000514843107513325282918712353565205052432379949898056408137797025281196930550700663431607248851048960522456961622519941595304843168546113037773959512468923051336909501287366210077985322261885513023709772165784636289672883383249799297576569750238285388224817886044423656899965890597766996699055935958564595942640343976081326330410017346433624303084759271777016168276558272346215909877875667643333594002639861817126986288867284137730980703545167290579258595089622478360745097623601129857670911334792652152246313300147172268962877146195963091476769339348340496022048310024392844131639554192951408164641851044054547829097441074871017283384786875275154376204333731288816690503074262285151772716729039480068905622708301064903482194688185652010677003074232923872174046505819022008088808600849994000652784387767249211497489301116994821320909037690676130294178774333851979522953883929394729842573843269527742878928427501502635607992189042837724857755402254481904344032245429252508217860596063032714737596564856749753859428188820336905488228099388804030162711893970632010314427181300164765108323426001017347018319319002396144790572578777762971296358421688444446319641887217674533201822036597826376576182489693942671112848461603229555381015006682999957985376142271123074958868049203181692356798841336403413380430560707581248605268916204413808842487685176635191968855592347103231039206116306649197955397958984967338883111747787600707648278321493123079922502106919525704188309359973807821411651143095211385053489606851589304504023836927987483365924312188271318624543240102930898513417413735209701179061441518458319852338893492054601719018043255941054635462200404627333698319164710267452256053462859536660137160501429024271896000893346032714170967980697123152346948793693363254514312501554547683317193344777878718128066182377229806101712763631514726133431387978689390472881281861587491085826798110200206677305887326157982473588096740321811284664907883696365444556662154730898176967763967153726216492928856091213383958173565759680141730783373643842066518727927836288508797304817384876270512978958501515477553649218190902417554409052772353162157987849333057499064384035058628926218787443764109272943086876839129406539152705410083331079309348126395239178492027879715280810205004064303858754907519063739378667249179201767856727431456062715301335029909845643484544156841112647583691909353233532305358691912984531397123724623469693979591802622431003015501989344873993525493537064169645083521132202867033283683989075682547681413291369237342701994000603876582645085126563003257234630347638432303063633800908350611135756553758121290513519435991386052321282973077653841893548520276814245389852267867863813582461722412972734416777095192448888766950004062489405480541897101171282069796950333335618225881885763331902248601549014902570697259252075463737003892707779698856682476460739423604123403930303736961442417443853603281351765650746038362674152815122524408150713713004577813195255259261855608328001885615958351658456624020769723577672926937251840213671953882348811528396276004060582282944444752307183775454522423575561301583730428852653006585603684256475355376794887175240420273768743571780838203662169607148226405611757182088233255796605378845006272010045482054037065355069589424649019248522626291189187132640586939128868708000099312652775568925539397804507111024601648875592256867898364090755095990977990935216692908488908767342936279669196991492098571572366634427256235823735103972038992032841043982542845399765619884118158719887558833019909650430852491226566700809399763144885113410458610785007154168291717838420404649309321000314237266844452533311437028587052845093943216540488712819535752743081406798725864994675636788715237405140201685078238032574988709404404664324807264712761846371079331954301423800883492227937913399069278752964260093924303985122107644551108001231049383329943248423211831428417964960737410790469847147759419601129531104919663063480086438729233665991247371494536686548711308412357640628753849853015592089124674274525297868051940581131485499296818772108916884765824463547771657766845096482643619620660493847287272580325082686453208184448490628666730049052890070437282433402621952104268401440625784820947104174670989122960302038924944299301570031445780112279662292642124685336571846375533901989140709298327460635312561640442878843689998192405030702916862938145198769198976352048974406763014953388637505015048369593059490122563755282263825930391262770737848174409230231663782933355739372950291871386329245135527030246786128453365836632185919564096229248695815869458682715172100855566809935219502565045418236881805008458111091969252543359958660457638387167795058698036868630685559356664551229639729231999615883694342433115233591735771947989351442557238311131763945937392003373734963082113854663476565505958154532665515533491837073741227955077466317256102250495112080112977712195116786125733619821313188461347391245163861360641006114647023212117839278682119570009084281909905807690897967370312773700791953876104637119093855379827248262197242691945547611889352453527673479746154865788406875998389316353317120096178103913589141734306181375834033159861767759882325878634943814605497847170966830790573763807481806434104561471857936349145120713892108610691593843826217824222348712479224925936029828680794695150727287830883031258280372965460507035841631539398572908376298013531717119319146234929366366727113569203071226088934244204087320914304625150895579800786729128610919432809374082442873127540642878239270205815471394511430663491234571160439554359249181734060059260639169366338367291011535347942521438052664165681393734255932174737400717584901914278401467375599528285629716996815262871025979949895632332491336169560270326258091939375218558825844526202154691794422622607152249745809591840887976174630275434145243543079229746933622618756676414788201293071997942029694910956192568219434915650550446594375661070314634579259906685682457487863712200755838182458568985445518503013847815620964157417581702866037763415747099534798343653590402459333981143554125475529803379286272012382696278731152327697732549584916451398140092114383290266852216652642280214432021837876523317775080164655507166147569099934969671889468682673378730093130964433868465069180341671784500962192863559053352301599458350506912141974429735882454521824659966777856500833121369904708959090163318755335671485635511054167636184428144904914187395329863793226693536144713189841039142314033432674971023571343727583253415368514132862639278156731545624881337533445821145805773531784664273294167390087734499543423700333638167199744904272197320289541213583323712074941474109206992233234053000348234915772468847693023083134156938391376540972182974175210789787420674876646569414941259484028039645201539076579345723873774630239007207831750575160715191184631028006094007017760899465074072556302313946701075120123947740279723825263229946972640042490930732174460416993164381464566139660294786033985182894879658485985955577101568382257590254664688842046550642945395540175118207206031295618612498300472027111226379945885783727076215879221889545908895818519471986365155943014792234921915771715693882794785793151548809272700305590619950456711878817497419658132065611346380802086035973295892591306031143776290959883532282263737478319086955882834257804762896719373659525258917874721564230120681584519677020127607600761434892723484965786765758150289005118131625671445067209416932497970232431546394876483244889030603995763760075104587565828909358303802206283512804984781213585617675650045472771584263493704286126853052216235169101169411126506301427236623634405146525475331896588509894731390631001834497726245428080781490971319480008452219212160669188628408141792253939938766400663288077287978643550250482489399138219798250862106794350950356075006621389822034220546869481860881323538263115370228294525474264609209658940378305065435356620611819961509392400004575062642213093408575871863999420618129005289161350454272250398347845959628282486684842422512671536921973125615227358626152464205790076410317144137551467264661416085257050381723804729972690218226767420066744131339960756582996741028774769327440850524993860867671588987855952636796969716734418627703328559699053868873332179977292149669930921686715710573113734702831918434391982860923404248877046926368422994030330014327411617151153373767129544795646170297614509999835016183293421455347788935481227945975811000403112503448327526954495037212749374061549958271210651587833123952532391196839511329199507752007153594579899771147436574391771974021774997800850365135297558429439547398097225416465459115386481953551420520183463230429931070743098728331184724952022099314568884529522595750971409113326331619155923559971536921210989802284289785922983749067034893764761136541798061262200758204055962049334248323947652223330787997913780017206281351601034095440685386046842658600372908253807232240424067036428992252543276929488794538091363411627886939450082986995987420480449181390505526692895497668337824750894741846868642533298175537381816015782390751942752338937512176676661028598805740710626234625321238691257106416406407285250942657946109925414164956663599358007137768307249969926944910748380596160715338824999699819685155116329719581483669807885944812290548400852629894917576703432400317718706823142597455900161191627550174831664251806990339800326165963667025583997197203796786353160200498497885126929273354893103639298520134683396906806344697282838081185606126622604046114504035865296599421249443196185871714099635964031566371307212170491995087740341751262896043058900950581300211831225452234431568836094090278412941066138015093099125397291426374744931234136551623898158769046699336292263977174600815737779359900607725009951101028678395078576414761213948604906872410150620998411080706827119133986945549402738335695000631841550602742897587524160537730825049943548219597058982066827043479001373473552595411470906944410582855849873921107052588492334743238694711347622213253423748787821282174137485676997145714662708869871175765963222533833304964909506011107984561069020792569800100340017640941462882056316753739344265509459585065928293973609476287655123666730325066663304371313899267433343654968299553469026426372975242820511664154059015891227299096326519204838927778670491179978995321934800857030263854118630620983768003556014993143925285262960039559475943151429818852198371318858014010330155591696602194058841374892668974325287940438620260911234509062505938020745800937497583295019035096400955065225989368482639250360249816630602474305128096816912175847837193842612064510271989038416745882634267024381984893970452907589125944000331517268454458995343403886244320186278572938965992516361921470292285000922727450059525363811425058174927349111522953563155978375391407501287669913588747717404512194857063899838061698732373511357757867763478320509968334292111385470631404826791136235725430023610536976676134850087688096273006623870605972165992017266268330531716278506055441876440393037103943237853702091370503570732360458202854431669200363446728382497106339435921704851939100012353010689110617039453565500519146660541151250975349271978224509065705588430612943634169113457860665905078772510203521676151632179921609439271221088647057948304823591961614998276715214202792019791307065096652575810569998229075366874330695433419568258246984381205737667257184216655973993951910115677033506205262642763896015116091397924057120583743458911923868520631263740521382719263564887959436104570066016583838876081798070263780732548233337660132752793789299637368031036853045414753212928018659775765958591294570574867971552276233534022103667831879045225984739281986776802557188300756968281216288752341212016161321297122878929447294788237496714154508234040239568615905317441424761164874544045576621258364809670152889188428255239189913243179054075964069343149941615571237906620445364399990091112154575150215337261302445227904566777239125237738542553018997862948595729652680734347289595976199228024928871428939355322843372293405487928607703744010975221341776135482408175634237014894894572023801137643258679520997228869979934727635785777094379276864271631244906559027300007801143049644442278248118165139432597571212800727530522758074823884554248542220550067700071211590464439257680100004709755700676088952849842847758412171012771847617166542287605292242346273974777657272213950788301079196757112828485343834841506923812743339820096138261119664569066406789112888582553071835820234064198088207520133716201985067593269239794648471007266293280733360529017535133267971628848310138474148093082442392061375867640593731303211376199872959762609537648150835896226620086054567048959109320611401328039836023010445973919989848910529875729999229274243369365392334143817751559822759229148784237589324697727497405745140833280738429655247057421474291203300630715817272711393699298317434801928428876683590152078295086230870624910768784934390730389246426100951036344766896997834553732416442394281473495228168255807199312790020506543310275876690391117635423396122232102380186356778165434402915585375353045115114832198009835238736125299320184774245829443937365658743034862961330586876048577187934034792162472010078562062635293995435477040776187954423019047350342371251823453619204858333605097918142035287141125512752298330233249566566696084288776302858541892124066774249766994263824832217061583329460847325561575775902853862505716498207280682492329279144056503123110382196432287675041380750987763073349290399183953137915679611091686767919385007630674019595179839917067435271223291387936458512900453562288809171772220967361768341647454260422456298691306270621631633082864843159000103346382436132591593481763938363607360366076422857102936957775819068748559394112796966938405410676924442174381714122423064376740878313302776274400192226766854520077815047366717248565234410290779554194219004738376172008823224724904539622431699165997912721962109716966339042162713933569265882992274398680138924724124981748130127787962221702000003174414061572145845740968639660819472873318307399874327739986524110681480258309642059700021398348428154108946536356253482534541220739517689179643482619645501502923852302981235410876418445660140286128050428754456946092102375771944096439402366635760210228386377640603859877741118135636950983594914961214561255956208313710412658785921517375044857949034028102200628411353159732869182899641594777448542040518811453628984754458406640760935290929278442371882281842805703553926542388416360229807460420771481864062881029027248589182491031937665174429501024688669811251903614794133886142154479302309418803633861793409842142115022058010764293267289487193458277980684504255849332504772105676691576993306255646487809826898735806478058166508408200518025478730275338175352373746090238292508328789069723560915613544753409850341148428531253079757006154227571829907406725031711886978637535609174445621491954435411970490325599190325779721423902380077302851707082955940809303401461494457196609373761173121841229790905311087658623288789790915593822818420027405699220634453530911165526121459954412538682814278419066247443028393740914187499393871003765080610720705677544220565077184082017206130961237507152896463617253393301521116962592310277843993580815668300292425465602548763815908835985073967845554697662110742087373939920559765716553835825556064545852739319896394653164526649451869747519955365257111535930410301320451857388243173517253652290095861402122414841000681808010068433475323475861309131157034901015189119932831460358211649138906452947285718642747818555983349007705254075115126732247143930523213957186951597987410982620642294136405506444565007782655096202251596046832303210497274507277008503308709090376729770755215182108302434824229698471965730083223642873323218328848172963020838327353967571142957344351643086781003361755886579403740623787190552364908105910287749185522371080604250227899281427819636131951740770723103950370063365106159474700612667583897069398941412554310059955820693786087707717377483433630706378316246572716572234949825992286723949207702786919297373588997901016621907288900215667608856792599436111152727426998816456704269431148421903398031795478284370190410707248950020358806950649487016483959252130051541758334032463696993026369543007907200130630858702984238903125712397768633712848986218712933118908618155152445059933490219681018146701543403787868495744114540866796062527761777415387573015649388217349880844268730434861816185307929917978582197115832619894989646613320916776279538418183707492787374122861949445047436942527439183642780986618330499482460206925014017793093705141784398525566914311456116338519833659205424923439919262069271157351659947400608602551676235719240321327896538566971514404440853404672035625503645168974708641898946181725926191012806817021015982865282133523238162807253936613389133118004198942529609059838511280797199564289607760865991198867117556227610542283454436131492831403180442687012416156640301086086386613605303152539963044442045024508114232152598824537153804032984585735604137422210765681743402518347531314977156714567591934487467392297203029218966811558575383615870861257263953278002722176747919082753605480603970224885581809641109033588939270063691700625103655504524911665141061888877837916123343508345696837549599012731092943264616272851802740812264345897892846292726093078782108829388469238954084364579491422299102925509811590063136922167592405344137690255266710710659256447691037224930086844158568483685894773452925855479859491911546585162014296250711419277326579957486955032908051819533015522375161906526349009122680824809345040200529172028481148082351010650191125090016213206438876852787645979107175438643227247996519139185481744290747279133663071382828013686131955054358512386487309943730198722198585008566035063125612972315995466113120675851987034844219037225433150568485573144979428186887871358409809745341151905568098158477564293419060518764276587287829604405837159965321572074710870941066238553207828728378156990531859810911838716822779060402302411061902815350523018417266784009329133574784437295309778115866993352209912892206172780949725885474037702570701754829503253928353705226643296250929538981317329863526702017132674070712533751595456580149325212844285744181438962207631838641494131604686422009796767701072592960680719756406288990183246818045530187887828180857480619857226553562152717642077657161921726988723007704608723512560956003778475337218379981614144035460707645947608761468112236616554596647752455857486228933215027924367949459578567429137391499434935063535690932569914714725178616043169305774198788431671678527485732045216728579885280228254772222873616263777533398825668766297712911727730816722065366458372506133270729588242535078246666639587395594254578942630641406677414541245187892918080183065140740766673725457720728586308431606752806182195762653883296916565109400070102417996763386488841713209745299030814868226244630145095146035796465927290388344364906073278911534326092198032069082422287454856382928550398193768976865045453282243987623591244064876407861293486757256674812381838796887199239235785663754236538647977553604185191824553890927834220797425632607266219238269476040862715163988240668857229301701990492449014519092602342080451408531665898312693199347290086278045806031242145679160008987738845396584387780515858941459797151157193100997021907161374129648983637696470262000534220460484816418567227185360520863760444404729769863111600575860497824344904023835522967857941344699513520068971963659162077120735990242277207067658547101166482301194475227030102949620376944606639078602827667631938415303810972126535410596316355018857914287459372019379207547757807210931475426902730455444707777038170547960594894535912563759539635087374438993384877883900559850346605152837402034032731478578573687555670035470292493682539744213966921715653274473203454954545909912631681998485368298238500128341732363467010530344460771483009198233416211217750982176333761301023238402931034200451954158347561003798725115633862874213305387653863595534305606472420007606624247882555750357153729589373906625220837057255620608041554972344386940177481476065864652291917841815657892064048037753456642049782242568764588953113300054897901022261645553830483287281255237698598954496974827158783187439222523325620867203987834791643058099642035121382514301567450676397915564035378821999880786398208350675675726409015994121567937044635047025363399523919204754249662521696916932184269380307287610500459558346402573608622430794153243727625845588330792241224885880913950745545194823151415225269584052275227246788954098435585065570141458214944320625696409438410640545124801724234020692599769935168343575982270311255422081200830602282369414538721526290884098504452694899159957997251556512091140683506238478959456598427468780991824739295880955598314389554197044987877145049382293900743183388028535764010725648423801366723373479813824743984221936312006167777554686187771070360498167673255277382117035091358833560351919895179509164536993283558352116753664687391764218523540998359191641405463650209189050829550106943335453818197654179130468537269458747997274004702828374965712841196518676634686119658182441600355825813372816361903913606745359025758951618863050825265659625633935921536151159979648292589275939624689464332062781541703182729539930826883243076751068417529863526394945736809016330642302002133153802731026650862030198930478229486695811320549443308735857283980513599652324752717511431939810196024891960919981103177443958211467351771121810909522243755424387903369915387732120620477736271422116674618714518281489726116506381226782482005567004055676881062990834073453905020383782009828929995602637606396910353552669303677984090649861650302115068131396803177440683570533110277465892752459174333813316006145763832797183580490556422929926167136759198792619642031765169170185967685835989991213057564882979643826347161433394860863214511838375048034136996529682200950883482311650872386685569781004700572019581092497708642910524254550678534221225624608251289210410456491019600742142134562287086050834380021071770428966173742819595384502605236217499294178389988889280709276033441528758102761163463682201325434211529288204690678481943635830742883927939414878332517684517138304191324420904074791998072826668313191592019553960057359115415225153278037713478079583753775218965195244387883592606985231912834212699205360151673300755750949790962390704728449177646162003529956001534273741675737580488188225848823153068333585384504455210656629640458304404054671717627827834081636927811760380574870535003635963760928268801576384631472300711677471379814267311091645291210400894281326539800412540922107246388037859461487362621804831337324351022626934778516597983060578163637511493489583758402353840079153816495700448150987591406647363720738270165508995884376196144605533484718967456118109741445085713665334009726648368079771833576283281635005702806963733149829297587486039309293462387159064440651243798848176098671591454883358318757001987939754664693684519100852765335446117894190122606845544081492478332325041059072906019442102336313659898184390082989220745937734495639250289566792791399086286404916658298449955480775707256613228419957172027412882595737426521589282504843440100520937700697849109504419752035085111829047256179445609301399326606057330243077919028830657940131212382881700028700025380309265337653283146942988740073248615788970750160761990659775693621958714877472135299698747636514682649654064565430462244860991436633724090954291148946026206352373715279297245239360967981806299345726577960877727546425600066805763331275614264949806878855898400598920755281223331119492561096710374315143778736965734253814053909085551567311733814431518378590970288358259317183189537968113185120621881408520264887230666350621431543575044566323087995209613780143443110587106188635501234190663527595445766667706726252896740496762755423961343139250143338541623715916426103312425712101776674347593577987316551737411297078775584576768189279153871585534490139966640917546120129219408171501347245391497068610464265783829371551213267068357442643757719502625723638206043415447085848750143141866984374370424771663170127793588441913729886304057953632276664472275459746794994540246302309364275276434578191838378065585433621823562511976871703554257700160745390870997534901704110960579632088928881631708237823747993441068820602142834142183682002727385286670761639466499324439531367595883288000814604347745166019721246880902780685655887834648990363476105193390132061635803870377177804140070987795862827312077424777906414804734900331975755915112890116191983055692491025762019648570952920826710893359961377566144627857597140318155311565109984415657554353779687426467640610691868432884261987186727856381755034384865842574879320775476823705220387134940230383845419034333356640919231351186598388442194173412711424718402517309806644510459706215793194943774625207081248555385417330809881265651746161569108570774190674552701875070370321898170896836901340882667868077678280605690738755634979507773185966413966886972094689076470088379455396309376342528242830733899108863780313520330402281517020531261178346018372134974985265667896966723950710139769411718661599623199496410533843473642583523731023461977080384073722847439776312141767462038174895918025727590450030122119943767288493638328771541100597658028517815443103433288712412720693758884369667522791983180518689961316106934279179032568816643467650755691391195307125477604799729630439352571442566213355319304336515102857453362849828878848270191797537484981320578470102230033339326992968817558754270375277098457938605436242993825664630823060367774911600439799918083861370790107282807234999422562355658528517637706063100472895701554046139355841833070046378950702848310029020252454560594748456100850008173548716770254227380673144632792489903663723203440808659571333910183870913392656045241674156391858925359922028705523801220455698151831957853992569182020271957064937237901282760255754749260685505642538491083338903804445188116460686836733433411180837477394457334133839883705734206897230561460888560476575277978672358778082708795906418760539559402389248110184392653113427042043078576303134413944568360731334857938307506446604989195567470117823922619527684351344625840943826385892029795387225085636863586768721674779728452119177652326833402343585797417469963763342788652903745935604705149532446977660419476485095323136804610472848315624289555697900540446659578406200062289799054118709874871431920522114779128756925577277354151986552696547889243522295694622274499652090901820898322654436310320341489774213647382101697850991268648557658004449542078383913657486664056877266659861381410947779860460722082517426302474736624475340177907755924074664833390014037911796106757313448874035957652847298179622252082007066166780637462592025867116891048175485801034414472772251072922153516150966034334530317135239638677904488663665049974083132156073125404802153038869181234484331299732698732799800358377677151424507990231522456760574228800771404788883919385281304896904482752831822559187764501944862562823407655815556404992399874463381393024619858718632229815949935448917677031177235621323679023249272233062770307883500101829574132607504665642498786606525724969730497374386615074295780961870609185211642894019044223277628011973169413167571880171640006039873658783078244058126204280812763414870089862132729764206158312807820699345759492109446070430616185731808872088605912802171703087245086911666372554822670067582586985314992181683141806954224010296614621239792181133494159145890948919788398307583186765966835324842419702705753302215496233143985793882566988727322860600536725883562413249699722010022190495870698064849874237293954591244746870697603960533069086142848808427270762128134834211276309354334277326434347597786614011734280411096680470870180200409953349928259997049227855767997208745675355087475742717710068092496127352630915047867265360046349789867606877364926171305259341800756942907496905142475395260627181378385439584952865564512129874007545049692325802257597531628742909935217137340536313162746875297605138359056819501869486157485341547476291523197324875984410841511974849697165512259006197127505592439113632251089062369225495194607634158672547541067322009383512762100666647162391870739324990918201443571616842720591545972375427535006624751579614005486599457500947412740185245791642668825626780516735407213178381897735079466292144615260462326269733990211550160587315009698735623525010165721259699720680237675404053661421397230342556129065816435309697828334968067805161229531474774671568206779401101824988168569929698033069800921627080502399860777526870480479782219308764271214598311502320913313349579116899485196363223103218551330900257734364269611649213466680480711952726590544634614169515816969066506174776888952242886087183709036305558828709228366623917665666452367832331153449723121427941653253212068215337431772687750160761057006009281434007450718591026781411566486276163747190414058408074790266811867266683990701324497112290087205502650973089582798853711753828243474528952050219416751201193380760979944589308165343179879563414710218145700019294893958961050282110701284869827665893111402100208447393361811695299204057489331272038123360951094211055890416679540910524697448309218666438540446609644517712703459368074993396109645823113918324757558392329374266770767934999529828867558955402109259397865332574107884059894583830862298694080527265399805590874481486492727441037583157498889495134547202222995544268770747068431781287496623555380949437657149849868678644572943821389074551265608025763299878741085140296979371111950984164419899773247699045876079217466082819045058152185195262286931399502044682608241688547439869509077455426104015375790780400774959501838877740869052232521621751647042832620070117815068514204818976100961332503758774323394713703411465892274930025575235536440413197277147267682195067318347024380595083332455070422333401359939869190296148001093673782709828511398330989365820773914711049257909826765283420101696567931710979414339516046839353121579233289662912313279240858800413495219265032565277293031935495467997955476815106235658457526920720858555895648827837538428175869969788030594233713359809249470864876547631488468275177139985014775566592323961544603633060908764217766661659899305004558213714244316764587324098202950347462652006309486781314657808212604216005740297323830999366482919127093111775375221553061361399880575387362117022305092486337918239840798061123384877962301794774515734147171657639125545636931173692760411860102427811885186797294713303071993053490648465421709998685371692412891629681267299764033626030093284697862548221509333013906865928236530115625366250571640356997860262946254090905896733322529297402843314198043432958126278751333196530996943938049323001908272078387799032895807282592803092511306417944333632054627556427976434038498580740401194043562639478324917435566155595097352213111974886295413910512732535592577169420801348878448567817809286980275946773318450940133227611222923330792330620092313302361706092230138169503773685191726499012130222910244806528079484251780183205219904474864363101430118308510127211618294660780611638515347309143262575848286779740048753750475219604980176945631250555378933310916878050316958815441291275038849658142796568519213021174847909783793623504237992133889988393089564257111851357299283512809409461313433239835362200003437732173515817002847143241696846138872902530701831497188275651730905635374860977227381156161660540006360597933451477925057904037574814316598797064443476176254691719562718611960271264159497413989475206240724703787591765631230062660491773104974012730460239837741184546890267637915444260358009975050482734090800225965021030404566686680024114777937198417935091627522692492791216914553828184680699850575052898123319543052994876097362442917447394564502708436475179545166701501203810170796780298727646486448591021886795041141521711360653120380077488462426962969167243203577924419874748960234910975793250034315393192967924682899168004722650900817060308469145318300932369414600063835919489069368921936643020045698232931545131119197815319041037100078242222030232297497477113235085402665934005775308454003865922240304562582493669594604857807962572376065081774139141633925010621279918336119983225911420369526345757753790041980602434729842114105965883049892042469361763996272983611597562809196615835314541901529361434185990427658814588207423645735420773761487488546528169223572998856844275245397108192587984983309442779133699510029812682163543661888143477605564543618169336744091115670984367322472277205311766453371099148596513247869407001955761051099704425633698951786180824726135007911797943552624473707066387926322905795931582605394739846512550625405967033757576548886039785819176087586573128193257014874644845310509327475980462149925014194059932284116217654554935886262479290567173638340124720662690882928014528749103823124299946222720300515983876831727667545495864957949623083270106277399799856848993266915220028590073390777904619686795555554632321735252337326205965415247274893653269247880013093060691023050955114857368203342183790846710052705394049869970055542210074520430217809517389231081547020766268434679944542079448699666279026294169041175218701706269273100650451738285071774108533789954490685492913014889243808318353225282235046093574367748519640979284590119920655487274400651936099604730614475605266602124147677875628776706466232740134592257459190250694954210804120179957493901890847049173930975872434463070210614540731109592878792572344226995744228274570674475093245154130435738265761212405529647090539930448315042349472143399922615294480916928737604496161025242765663346513703239211118760207801749152318767420285994203211131717350974437064070712725282075508790627429719477592601675946008377809822894558888284215341702206688091115332904996444273956215482689051462572973451412338867214030867788389885951693693153373417710064600438253521267990099845080981098634343737647006641408192514027625976177004400948511447684066706748934929413015919297636504615001903873133596951716662824881924264364579741283535942888639699844093276531760500399832502363332732782789512736312096472627960180830889430028396665165456517803896241715011401156599690752287253194365224820834129644903589999369941336026916442888847602243584581535257372207679008350456307139913389286618824205242377515109951360833911742652812295679712158957241630232554928330033214182937942599869792473206693911309204615032734002981684757427135483433281378988744509865308040277867559555265838351043011860178010625670112345207624661448209135793239997670486040425613402744910034893234643436664355027919878121336179047894044796917695479280788298888963164200767098147349829288125818467052705303780869541741375660001482126753077995865751825074713145342266944628547555530862739279378861501232573544974805382282869686580463389671840323955297761299123613216044951697429939663816029737931020876825054780050277440553214228354108971932355468960563081802677210766861696570681837605014422674962242769476589415356116143498167466893154442003110899319658580694694541228848086540298991504664533617235913236381380488495225940158578874474456190219107013440666303051857068569968908665188147065321649852223346523380685154319177852925410797049724855157688087812915146428185593636766601794125068011739067977870545918227497265508403165529213096450440264812881123628069066885460862336146040586513787518885470479472414612644437400237054321195012274969657583879567962017458519039610102851984266115355336335011413301882153189281841835799324359990494491346448366535594404872370407956837651383764964043332439941928201718424972865707260614859403643375959844578803079851258103390889735595479971177779807002875701131263444653041119780029170202553318474800909819667793328977298323868900722344114438361420550067750761246456903004593612747981436772226656681179722167957038669106725084846389765926189061708012568756679168129758231563657491351820300818431492468898820649213579379707880867721440845678546977899929494896984474513080916058582263057490732654303257473910385575511611995728924775711129539058482384596574323771356537049637252111482899132850276115828447948352272067788648307521449150811905732500424271202281363895333685403601682547761105498053082071617584699328633113449701350718506058475614523272271607455302387455869972191880104723381513950935266597909086498286187992704335100063055522602758361059866807346906711566230677101480976491876882688031984222111214300335123767917161305464921114002938299136453535830276244171630494939476765692834563295297243446961844298354326695400845026540230066332613153457477724647208947249135951774069461460379781597387345822833040158224796390447606441669877240207833820402618884793163154638528332857449489290399728967958492436943424865895230290272966387083926920611368619086224852738607396298279047227422613336239594422503819343084602400074945293386800383602330779134552115584813601554684531491649982495492886657306420077132371986126164569293700997252994603051282014782349724521583587836447207472469964046300817054110967005290470062760793704284086739385544590991083211519516745150273387899922524378173922711578427568655346592031492326624322498464575793016711068894554414969549137104084667063083829334913857203681134069644780330470455978832647413761314418702804567811745549271155696310540286792679939727235696967394363524541720440291752882448021010206006351351240534404424288237498206507415641612587055220608730116939794173052281985194295089565515289523999407654418662012854480251860384372994841523881637009042174431808683939678631498996760135510777047267278415766748182604596852391051278873061136636753640878681270111192282585013648337553038642197152690702426903538163553311753058638864895736140632537437914143783184449220653450091527151762568758366522162770816225758313282386898262152987800059177826519040259948900395689642700623950208482967934406294015135756851785261210045776610575542970711296782267944695029255943391915329588183249733953338518147851576166701754475336912925405857296256864054554081708296988239223804707578510688743404868996599986792227123618329795541679264904596123998402709294806373286413159123673311373062143233782972610363266126178026442800269389416145301738967573954891231841538684772751486556760637397412807783964849735996301923310982485664315848546326974632214596429573497355732842388406808387317828954911812254881895937352854407085737314020798530389353414374708038533951388856262633745717036951428538644831332678740381873677953197956676505543079990240430702052047843681464920083773919884078182752391131504768818183549466650219774904499340915737115385885079031885864659909394670471310137953477240957303164059995567900320510668462170788294306132097296893414766742891907529874559225721844352721870528122911480302940012880114846069546957424201729688193560826853090132555820558793866282870878988461701415924192943307899534587745205464893988578672496921697565738412092343056945151779471364742585946839209540707277597139180823109370122813991385662604364897406252915416453017890528219239924207636626315287193711694646889062189653345631148579305756891910297629322458780507164295734988859567348445966450622240383155044555755163084697049403000685158049219821470705426195325580076465778135960740978013868837971998934121195720951347971894999370867239284037818045487528194175602401450424373598940968468047537296982261486388533569135104994876778138119880320030322371168005211701837386584421246085293967435344922086747211756750590552570593476851261019449146396328938331612692698059482818280758559233043134584018755873591148318511104681689119153800199804082489561370231676434701697030324883673399955150842867217885722052953780472243664362404268257142546631469055638195711373513312647295027799591757175047304493665266064548565472542140104984278894813408881651625537157910854393065236759095835691631664889774538974200779411529654267560029533358928235737459412443680928708164433608327573051068400277453429440863931570438997732885766978752989408848777844417664190414335533290850235100394179469081031597145301839807326455836387147044532121777400213332885205814297868669909423001192250346882600411238479656310963826954609469723685049625145612963960695016896217174568682459184726670376596421135928729464087530616204297598109457877838864142624611333714825721627367149094750879406848745387667599904917923887658344854837825058388855102788255187287689730190857009079111007102703375227165936842650174177540906889301672828446095013031535988586100751578758523944544911535644443537961156974118597859677949879316600395388994296297971978408392937942504816250731091035417615430549594561478102270434563624390917120647018912397204789247446503658779681976243458052599460405301481775081501763359063015859774180492694054514617651280826694431871854735570298137905621248613368867725152050472523106547930493129445542763756734112032206483213732718813864277797214344921289084168924990268226709156889459434038332251809340878154414982271571126271512234213225235030831084469481841755924549904376893682052354927456974595516446864958275611500377318328591385014186225255368823603451444756149532711666357966507922799587176009178245104608579095437569596950110676140923175420396711786495896815371467071192128386686241767874835239741290251418515647363038401949504885103983253927144301436513401945097709100129422358044580455470320185047620225081621581941557853485182460622741815174924381730300992829242723087994650246624580633881033594002895671472457687862861050892572130029681517605711496538002730544318144840588295253645236063804772790903803952276348155031308083893892703925621782966468370026283624801513120429215317311243517592038810832447492277318408843647649596927432168769346891234724039861278412566779538204725779763916398969589370160366924771796960084145549539969806795638944017432835085257267187641159785054797985864489035051323163946083495723393344133622859305668849363933974364314902773355020943043607666783610689884485502260150260317667242998901031291136026395245334934914035962934367022848630260019650611470308945636087178967476478523917646666624738399691753815070216852125916858660803660584268312549671443489455425541232282219399560749373513413420400829991474173567506987331561360036064367384895219540811626439865247258864718248401834465743394316309854062160876798908228267484684175625791878302526679070797228687888790882012920153787224541737711333168885317102159819729259417471503978314392074583003038535103910454239186308669489972697059006578257733523231163164804905605839324770416390740017623569487065121096924132659897559444702039382270680823079367392802385602870529139325979434516767506170531513904310279275852418501557975250084407771485053088963250024124586710717928346005238689409672623940823792328174025721624502989946667787972420458053219882773980323638849293210347711531036105358129900870783136654847138938688622219301480666403922203795602675025074366508790766230253103801766450325587019848613785621610435308922629503060073519871497521719101946225352233531305009516036588353070206464724200162178121755662908235472350373598137042179290024738394607794098115051994614814069116507021451208581524026352390267057561302597636357236698776740154957798125771732293488811205083653030544385524413991481392634498793659529054400495184132419341176848619584002945026828538089124438493020642911536984823644945545866939725366351159296412956095439101574334009884437863111612537894575073407112634130162234661585625279065528732858368336305001484433654092397594054026375073703539375183461624409354498706247996566955709251959061828842444610026934299466572431397124079152323750802979697260901645669277676943798128988509602965961692428766190127772214028222553448024638509029626621917052965443123080920553536350653299635816603179909546697733473617462833157632885374411755837115860519527195686446427956745832088187248630757360448168672874951021188814015699396249069123199765931732841141059421943659793040941846892656147101837413472307853295018105165271543794635973742567229895939771885885362600786974727412643364141537997413237888981335856470291151576052774713957522769432393898567340364259179327933799396939039499616860633035649775493302572634890075733749390806025634283545480648425368293009141960805345020685826380834937968684673558149050025078328890845371752640931136742442413074601581160609982685570436289703360952292075881754712476534597423578248318162351111034893278376555822840630005895615934957428992656465606299577396968034151933808556625001893688857877321656977398196263133883734086826907304412917018511812921203415252021203844109792698780926200162599129254683747612393499437691240632678958143783257352530866050715787629542813054984517135975432364168134617010161734163348505120222304751022928175135153168971700847424322418551217084318216694000878971247133263281397761514352854511573587625970288492462023651241085780993425036039478488790013046433697426290334955732272100560609981726009694813600236894853822879175831348245752288773380329512207037144551315129704695942875230777265125781950772478084309386113825458302648284871834618378648912414366488333390133706560844042538347203350343593173341579523171577586055485726229257129169224777595420113231987563746769561101886520699996253961486748361029824088184097222165867920135548577624485263526196105917838877960543846960408408422071617117826947557862423626852455498008484011576508192239679363331348912495858770062260314128841590728132687739368137734132705965507190477448805141941965374161464733121305148777060691370843465710324793780439694499491708269076159436195235923916721111088930331662503492607151942735613541870229828737520699666854990176295645816872676246371088177238463829298679700199837061861950042175557813910330289419445548322980347076784485564481708117844537491538363784081316391419888954780049314158480832507621461694037136900226197923801370830220664667132026424911501303240335275166463123910372551454544921619296630465626996672504998224054471122157341171138652426857569975752165773281634090465760743992746655858922392094452319248819321569213331447161551334628156908591222082656731186796189863964612697047670042379188633841681931515817461405995590648810471501109549067078859477474220282063998616142074123817520167149125318131493419828695415226695447186350721643903563863291415088037847190831769329292747995281661816174781842459402362237829364374864117714844043648957665761975365198103335476250832224314413472615788599329401103139349569538841261530760660241061401233742918776805078529991044959433264398185738874254186764805444922360260259389798287320262040458229713174163621705133360192806769985522012200343217416217521536238137776119078881764988624039223770963409888864967212622037935323750025809306161125199051161776687254616595795097071164465098342679864656996390983067316055906425213087775095828595908278984683612387077292282403939201533136530962137331075830688692965539503604662569051920643769807936109938308112028222939441128971609288345054455853231113892579614756563424970266359988904874749211070627947925767686269106385229187064322518999127542360045165429590267966424327634378480806291171259774117292679110409229251585821809382168841501529986267782409735016747635305584036176632623702562992382801916176665545575722322367078206353439966085648990217351634936331914998849248318785924193459280706304257710892553709253984496979747304674770063093369471617216675118780513753389069783512973773825134162397810234054023140836426892332288379066460983249293769079382331181637889730247584304830540190850085552577088714893123833412054909213517893437608939396950231549143219308356259369544365143865968350374803544351100484617844124434307129783581369837421906256086001647850291555355980916582781925043240149642577698443408467052943956737225306665402624051662037091003218834787821047471741029851937596483816321384380674757554674624740982435345826192038855603085471423595009062676953037982957465829771264669727403730227881211955978216590669446258827452090143216893398422476424932586211800671106424558236751692264706508424699782264213446664102399389396381616851334386351536458136543597457728343359974826475078843372046246709034124381994519871659091326541516886057947565776890432806338197544855155221970096826736009344047392624713336752311293777156235701508297679930090462635805427953352997941152339353109925175463778914811603555043161482118343815313900093872181362090824116349636544300324687527530218966263871982266080593078818608380637690414240933095910510280365159233094553505853231555520021821544366662251334770483755704969551093849869699662832356704693575674418471397448904136722276558029705008876391568564552884335083574874633934055251761471879251903491755323654021570547312615709486344628957934604308419144824915072086015433678630387330071082730193412819477485373637125577434014515189813999125797404444806407089334293308247449935953960199701117724020536071575933686568495087544637597338351569209560356804119422332472918003096974737541328040441311273229188151368016996059917230243942186803847923506420729693792441408842311842055292357227511646355505887668786988900985831478918152890297283765333452532274342569105849209851592434180098161696433457783228427535517982862142843335420001442833172644147649740461478063771713466607600589565965300291478678368405431034075175791028250376152496151415288519075450582662835208102922487616083928780663667317837417526552760873098909044264654762125223814973982992871249114545731488830773193038759326962293466472418860350079218835163251626089749895140590934223331770062457731036664967331734352186841746458971054470050828098272663020402357155256972442858808232231079486006577742070681936226206158630507541067125212753044772605959080986620684713888151507991583192288169723852398860250905611692473017174183200246926330950658667467140470099123631779847422198527509285363933940244268509378639529590275239074158529025783026177503222930324895175402801351056270270051952074027741385823788603387405975321969769118680767979792165263526193028995311402924947844459001213373266880985342572641275447787785158748287162214991591903644581646709877008994387194806597634850534226869997705333989710403343718995482081882730714852766057209045267396479368270260474519845404125846392036281272289382900905971369672835021889810630369269396905745218380393338815216760631561623343101460621764093803026080728212315022714308901721204179517685774019465939579537828507587150831511217485461368022142826082240921386922830689911670830362182837503953270211506517463458250699874188831617139943735923154815150210829410024546868291163503429827491289269714848362637457884714312586425229783109747285914414308333790668186994209210467016115125396701118655428216764837165059180065749805699975223414888718681391686392862551517882418196461111940967662532829931297174821940540635265747493994912925956930804541559033350867149687576508286919430829480502086596419394145080348734525748367931167342506947447932445236180728335415925115438620639148597152879068659272948298519098806101935206892370832986313012410088045552914989705268781538985553618900134195626155741627042766388651619585864168298577939906800679361182006886216849753916440247677729430936002265145346618061640008536332693544281950155520988169261642697870436245608452846587869528740273180163431345774742909725971829530934686617525331834943544385880638525877954014481524057055738762163055199591317394874531505132538614765190437877091920802551321744900503611649487893206435740662367949521474007184250038723108214231831240868290562320151954371998897137980903279631975714279957053248732788891998957141749714124696927294484729877307488951952584865367530006094701477690554196313227378752725662262500896882158611914020598890779306864929113900389294573305855005406223578506650246571356889960835974771898084905435478249489935611846330203303781503235425509063065256102825295873254460523463681913049170620300224177326223123805617076765803492980775916931624497132504655812986604968772375163027581332593926074402397253457827833969280881845344735726321074459518145828314738445055682383055992333566782986770648742515388502330177285369244151731451153965036341639724302803125111845900664925162435988087097289067704963275236232730365869091216133531072933313520382343926069917193598851932136456281007211715513188764405842462331094888562023833082975629202522555332627128747170082114613092287560931888532233563148385249760258113223097669381046102442593638100212419700052224266686141058803928478456512060653367236797080763986836844904742308604138829356813317841378570117957588204777024834054645145567095764434595231854869847347200748845531988727257564077088060473532687010094639139005487236665917455413407732610764667120224393443390934424963991752384365147330016234612183451369281332492023734091535087612804881366184922022156719403945896611549982006238692639733297152106871543796246921026236326103475269848578238100329745950590825550650533482747257269624116975997384363451785348620585430102757065251868588290147447264345859957471508337995500532075048425078622791662219606798725401425767472009572152076921299883368697663181564547265272390695334528439206063723379753875563932421320354214043687324869299637341920696060777516091353221455774871720275958604720646385906951580102082514152523427751573871909859694082133836964448322251359959436019277785057762939373296465652788645545745722515124756092029444406039951939200012850536351231036078709088143242066973683764927125396435867635527541963386506709456875183755869092026472893605442140924605007479197705707759709433515334018780821657030319339226095762267507054090886698864723695207309603680255320182204575160931664070323528935207456252609684566162300507271749302110309967190930952721309574667481002787422551056580884189571740970289749616266124958434766039172019995099047646549754310045550291409454681193901515955054372215420740920366749360681972839974642530468262405668875778747000154248450019294687949942743006033767891551084811177429478910164591378161714066656329643632219254821223507211652848337877230284527734525851230207173975264380299105470281991685517539170251430833682033679182138063487169513305479298464277431895817075753635725020995524837468374582667971635147008476511456551824913604612984588789298589496111913353360395548242372557547246238006627356420217540827414274773005998323173902758593139575603495788075153957984514833441099862264629431537718318027299371912703314598673991517864353120466346509894140898295250345426591031183313376166180581801381164992430011112544664847398587127882678898768239554465865148149822179946802249908282218741318044555887230459391306436744663076109107906631165319071395782012544996262691113053685101531088559125373946530656535915754750229053353427218920876737810967217965729721330278896699583665101417552178801510019061119815333496174729803977332526042194471184196511723411864423821413913370388062421711592783522816304494431306194814499404956145076064970903578579630626274219756220946055652509117037447128378327183554968261572337854587823296654310054473102288858252225592641386239856524563277298084754451415609004089398058298490812264338478990546418155659888759864181529741289047216067949087382717182595975818031854877875582774078316950690131572770252144141254088928299836385079442035201206189257716370588914886954283687164100364813326222766576492707142715240975053366958720776319171827522279470851327574028045917671128373915077644456281048932183962928488595040098640018560086759589756840308644170359080834388223681659079383839834421661444488447030747673606499913415073320129614850076436220826972531556842223113282954187305426107919790165902280266326571857866067314386509262943900067143247488627090056275159198999679125270980204091606519366190160159310537938309101936968798832858882156193584371327872233802440597291083591172176340618060972724428985486655290903183357652078398963522366308356287763660155470426651191086128417157951491078210542192537441903501139001247546709752470701833097937996167978187354013873556469870012241212841501861098645181648857908100731813937988378458840271812083685158194478139571697483186198095904548867836220845491674295667290136844551019906832265789348283649917443024187578396905632828881753439909398710176061031626175719128953376431177036566842107245993971414707196448505270419596647227378143557785026477419363210821325748646333419047838806577269355951847257366227658241571815543032077607871607660481757372742450332054128488357840800345915330015599573219243093112932657993867343269190255364761234982736397584684472830504440546516198940247178108348011504374095033181999105714972634373312343962768105243536717875416315528437020815818033443910384399041484578064269427881767037448385246859613636099793922270780629015071014113778344285284713927529908798575707576482758406254985121355469765868553764912120011761434016671718138821435025008229461637334519911241021902910253853287494399412640915156320514187441291020262526473226389622304014243603721219861576330518573381326964922700736547429032000891578685529099971433619969586287134211862260834303820967601913410590983389083950339434223638983016921156822063452916912131741327080297703063567583893345679954840275218001745881317713878230218913198611716336790733874494689480340613493238037328589265137554805597045524963569469867878114104418294983211451435135112640459114474814125555956360131653826265340255086901208763722090074983090475687482972929170247704333781115675621614575776190662202995312480683291252956931540939957758506883721056344380646666594117276938010301304578491808773708941082285243911563989191742344049385982036530863747384235383831417370294614811659441365056709032887076013753965215438696052941693053272711039982261905354893697673142051949354048077141310538687558769666542751298859495348086422440971834353881560075755677427773929718385502492953552395691663137910454166657573001094975322690815654829890440041954790620813242222778091769722912770204267109582833816003235909332895454220995855086251190655367539491383851174001048108713925170712859758138306137199517569676986133533053374204360773493309752256571739687086181775756369231893302215125739595045264557352472994548288014732236327127064877563726504290151896700547845901823378741884216059078464777025892130545448477867632543597482062903623836249592820314853084234353488168559918145682258302782846644596635489317910196398681789784412443175573495824745499160950542481376254681960167750710300919543789115598212973926874399825247210391472407188035943617667855996270075777221733960835751408560921695864228316169315745109642822516395198806638769176560429285724039395498591127803134848476997309668500665096157801832649181231233693970406934652117522663027777611330677389260338416008935088095386493158902070779496841412780670648597168445238971457232638710962355717007923588998631207650838839824602960138302145301280637600881194638829533512360672110130366462916493439055298863361151551556126950050830037375806009219737905277454526900323836381067678537697257968888382984934900509063884252469960451917538292001935130943213870358229231403287268982783495428144064221335920031252601816462306388605100822178265200484653139350786612880135599798933986324324850252531995186336954182727396159788405806211918370970379225344874500408241348881128501041788914609642307937992900934324942774180470812737817044206075653733925299306272037165861563190095279168439448264462491931932845744131271194742674797157721437306148341296097547977257384817312855107900413494801033344453987999476292669994902224146136631232609071903630294601281123939079180186070406393722537209763637536843311953620043964096412269676800600186211018458651178070543958573906448382201464506524781808262331927029754927505648578660112050403540225364415979081557988971468963908735959489608010459517083791806101613224607448636765707397713826059956275627517283954452972203378977995665266844120457207277487906026931703900211576348875251769434356556523347211670655128574461482918837520330236436339711282651415449188216328477265312231918190526585858879402206172124510490727704419116525898548324093062430173014686470328872740464646797822545681733784195994912514723200370071497179944312795344674451076320403968127803592179702573136110095771038376375474248941875391696650623995261239060769725762154043628226279975108418209623062293415777180675489456486639454385037049959813329213935712677027914683750531729140042067087433168452056651328264074490889609924770020531536066633830091353011226824029647625090930366238763326078094902167780858985129957613383175060622350355199897406363336825043720270739966421907367551572779107981805794173712385724416501967942750821156371745189971281382365207741707335421225827149599364501480764180622445999419274649159254096310777044503003992376790076491707718193715760825289913601890819293116921181709442648856145401152775786918920188854033369109230708735221684036952752047672288045847911348971243114370915217013790342497894780203464734742686344244709206479886397979208508526331471697697541626650298351900552091886438750549897304344389053951906136201559107853298203550067633019686622883616818748994925151197096829328055392073199178307476017948778686868841515823496440625859518712710646804207617786451163294498696551299922717686116323362732093092776890768212774333583763713217753912605540086749138475001633926474056853641272954499971420645570077456505476221282925433171040508887041498339207525959454939565041604084801618674926489545432461312331961902957864497412151476726665492986621740363852885284143929736209989762097544029144204922977634928793567522789288834693037512239185602763991525147712965898294389349789581129820817436676696623028885491565927114968264045099094860536467974740147640720417245564259148885728629417280088328961605186089893614339186707991735391163378392894542281443539761392678424500209787729874323276766758495207326006666088951939216312782253048766492719535423831478862819618519649277693456382083444645813841302430194167956337585948404462660895651195524458552328575188493606103854717673261231196100538515509373273531238462606491345608164299492734153217004625079684784033657165011271457395006303907977306313890548381590511183957944713508588050335320763523688246298118848481579187259894225710961035452307010371651046998856732811475734987656012280985794984954877692445041632087846472815747794634399092753817139197767285609806172758815179067461007877974855142139027977851600480560706086932312400213064410290342949094636335852054279197691244384869682677349678199853053075205331436442643525940291140942656076574597750396204491969790793389929868374874204109882476306285806538343774561864312110511428272875720496596571862593835887822244509012401264247229296348588916972608273965261236140082758994999646011191424592954972673257880312941419927027838851539848147710826885093246603755971872563978271291285097173967329651799537246803411264025995826508761415271932340133188875378632101931339645583231394997718373296285494179856089493445691381750354092975425469256135867200099056269245915920598731931337073932375250411118840208955487169907258160686137049629557258282139301717525934771800654546947486137369436001480802821742791515256554557262748652417673772786067514571918747506337221492333845710989035929572569191173651766050524921612996878822933616553103721258664999033339307461848615912547136773055442481342832565877111718255290570362962125135997135282951124453826849272316826075635691008091568561985651764122921470443464035950861777718336453209219440250729226447308077807324101280319657165825908839319127966427684394314704359706964047120016415448734648832614156076511274984005241761812924519272975678744542495038823237062124285848534204686825126099178249497384222613177161759829340250358221017925346873867432769743767252976703113911322188625811821298201725412768527367964613691653195468874322778644895950226525572288125888927842718569203956009395407757785179175284316521087247993677869757291490769952558552127637289057183821254088063446729278697845647215471248204277225474686227410079787619960840812669673363419866081576526213440998089004315243848941489476248978779884889304348447006524171209331651805955549472002168949429723104944172500609593509264931696097325607383236128222210602544092675894302016437300300613110474088590237265791735557798340871425434403117626115420738295091950087419979745245530977686807960140714761330589145605377672409387541143960414135742506946215688276482506063235608399084393387324923352936186751506843267582603305683504456303272065587642949563958064246919823965365281997931156358982455234731752299244566127004897798720732303432419024563029288881114153796658064863222584812115148854904365276731660066723237827192291889147317263649845460005622620568767190183584204687421635345923980914540335949366214278902185155657303418118500354803436173546447657728292771623373756238501857560103252883789746293546014811948881292822032806949684531445392900476933274496715416676891015167695806740846820347964665869101661759441773852330228713176263860207713195548909975226319786687018216415283007024846572664204589687377469798651642028134887166844201861285760476341332784617816506005345999562400493616631108752196756347770537908203956608906220130482569007144651861087599419054851829695704069886810851196966144082500585841128525975282676949625401001453689594586689693585475088087987167432640659705994882251175510749181117372928039674134827838741464235614752570369195454252437690944064814513178045199658909086772115544143132161931523754519708241747137323003929234013256853302680900392749920387902321388598148556108380794549045487049656086682059621178946698624502062257241892829795175566633144781172502227570714818652994345324447396949794402919621280996503419498415251127399177720300558357365732911334252572678376470317533376026452215237868451031517217352953330203461385142601997547805312278746352889387013451248336694553483852630051201337956009858423378660583078706738072432956134829995509294291186160985944470210902032691214109439577983434334088209446592165099553644251131621517674615619987081285034129557538291928885595839091531654290041822105457205915728995936259958012749472745611998466300770605023897486277165468469832942866732690055966326553919606358446114831071859387001509370237231608783445134253830690221303601954524020898536128406323378745427284977987306625111672198290148410857406925887179252870440129248899787198724222104339857095838394874259248773625703491398572502524991583366620812910834927455790778419712621492332042565888855585765158217204772197324303826512402014502281225111313375893992591523823615675233046500004713614079263044163052525332832911060798993089657640919711969149453210978837827090261517962165733427832993632630002228411088152611152322287280436501757852781106383262270828197204847317486415893633260375102981901739329088614903313606037552215451244995800406304720924149847774120580613150385252050453278143356245216675421594938991982628107516940280042657365094407981864268105255225875425157683032419625478596112964058962137058415289532284504425608412983012826544584936204815742626901112276494364453869212856615637066248148487159139861856366994631752595657852224779329015075290564684531208579637564423211933074942338943281366415101383220446124751140603871627105495348299069066870419354634468113765208996981679090997854983270518395565535805415092058239036069559436498694912249660074855120553857728142768630100427093940901592204238370543587340804935989003999129423903952049669239298907117093687490138098346748918439403739165244689769279796928332330646383169890845054656109182051336322141067767223109698122295954804149237744302116056483184980210308138261375712601594383610914110617167899082997532850852788224658858237411299746299118529209330229797787362202636454828024143693274617211766571353409027456749759524005404639663207802933258812872290340374497089284123146483615122991742236292776125750685923307546048724276097161659100910445120573871663408159259228067142504198265131951688306549631683380783759007006843222518866860149327989780087998470152582347297482195202357514247885032640549382229259420359199211650926673130640597990802136246822887517242308339332174430754463227538021400079416270381210542997488313404541286272007373579532151167374232460766061453554630570979212272939031983386148045314086489568481230346998047190131685914095211733703551341158031759945328591704583909738436576462888460105570334173436970915561962151142486253796052572189055563353515361559293200366836669012857274271460382117729726915753840048202759698087623757198744104450760319511876955005965257603965135079920224783214954268471660523480127374946689006184210118312571634349694322230967606301583182790458011582392604168720968881863588298264321987876849693605431735679850485228493399398348754902381046533640087059973651345683310112884686688010835256390776000304306760953527656554402413018240352831765295447649654865609142094545963488739352811701360843459627864273325138734740831299917252317512418000336926415462818264374734413490991247288282736003963711035630257148192471079688070739509310778985456923286206918186991750583750369295595922877090000375122870529930334912925241567889671106040577866139850939437838258954689057721927847114155405357016230105887418959457576576130205265558709791086627004748431370317349350766709174959631554084313393794491998429411803969552643804169521611124668465891653314406085935290523634533746591589646120355959798844102741477720931631818192487894128594955385372941473365899506923872998863792670401076178672924319104419829764705457086984072879399564179694364989350387532148286351765380362600787539999497379787162463893202589542732387095108898750848673133020226489696507280587920933975805887448438762179272030098232682445153875672056019431119914758990372273567231990797934588347916596174113181317130719809320706652944298385737510055470010043778453629869747285042501151510745965949202739827848233895506310559802616567470746719658677768699700354129515457310220766621879597008531088810483510369670098948368023841171008846456774569697242043885218996626142468151273574347096108748772355959216480190014971320382755056089961216173811983267137274153504293681844807681782082573641431188258197122430411013112931409657309483801315933255009946278218041819336917612103634445643177417656989246842864127412642216256284471031939348991903102699626138454477205396218874079310442333875338010700552240337161802959332913267250039234471659038226788256111742024649530256939070967991286683660009874259555877921115772756537241544678731470670243431368267406022502953452103646135987902875030582828581571324440485319172377095178771695456675095745085245260195354010687888672979847337240713152205496227113416651680270943759346911474527207184923665603498321877660306125193132889438231883978822872125134245775560991936197255958000126172165044846551424933735837152362901399803439402113662202053568709199363618544150776152595882622398106054243975514176580843581943684192841104832208024841916963143682998288050184701854870900742969239457784618913020938540674427431314597197085907549211962127874579744446189941230769294835114293268958921152535645391855794302273463371677214535744616886473219138840517169503995125950908958687848492044129914573153182572859323045915184451254158518227781898390792485457172579098321870388612256382260089832264985897791706117570899583641658330569559884773164190142153462288133388637246959048494969257897756630774059184629270774452730241634241408515370591982581747110226192096694361401951135360541363481525667956829712545001115471113713454168628127910572331714343706276598872222607618954610687105000867529797220257873425519037142933183292004917062887532168114390892459761329465720742608115902763490068218186615632371784416111375488259015964313591454007181855277148588042353021012257037196417915285169209659894940014458638788464897774561789230249626696484776518526523989051791652016848071419355431350652927261636601888359254120360512244599409418904477414982986842625941154543074020072727003923934983947539703641205416227832939990520185587585294130808007427008312283855675969562007594011745696946517221105530534303909946027807383674939260660489858537730743635105721856538793270512938852851762612939834908348768442361999974033654247830718215810653369967187757904053503715475521332596901236383416292740258197661353900182079798518283028428501364515898333088061973820601407210964511196451639791582337818200313853305112790104181071287498712640027569842263219903330516776173855702879329878898926518211102407694442009860929364142999291831386801517996476819351804061812919679611311736382320777072516509820298263274755579149235911600985085487449394870743449384586994279606975312030866519229856540524685185775689373175275454268493755497707291883758076321823758745240700737832641285251887181523585137677715185795651059201840541295930731911881728098211483337962606529118878019960149640495362120990887472649053257986968452770423345995546015855229670773265182266128052726559007977423088117842531569161221748574231835310260255700975064989836819461757641683516700937114274092174123549506863414173187441692555053409592217901625089415384539529551607832046591743562938621692422001118106302466587941196481467154454976946503979163919639502198593085894320752130401943440995602823011662997867824265898162589715368386088350510199727355353053383374327671314565534690762224417523302358882322975682189072551949441070156503884055454469800478881801909082444632441907276060367685230171699055547502040363446526255306157950706232314914647308264582860304928949298278119039152964938101886773603805923140046902358614708567397569530580571727136303150619871082324860530237611692152798658898746884198806600898044343421420534449163892919825873981079310238838807688919634405734260320445025238448783377563686758542745994839107350770532357479793501806193451265321885591098574839109969667882069334285756264331871339271655476917139209986188992179290073727188753607375613953790831493991425389318066116637334512042523845307140601632955848574041421075443600055492562649016543664873792195326536865928012087158410358003759663701864201064874891243559659696195670723135693702409459878887324208539356948017667998910829177678611981278129993161677050751084435444081832094505142586730420595978681576242103270245467790789807893921995072797438860274345327455432513143410713355648959342072735049133795758300854317947111346206053327094355333071796405316588167292457037785483057043262703472220353609328086576412419130430248715250918896795068533357334824488213895262644212667108078349971627185989601447876347894658464244488047184387823179563287474401510118530273589489262695296261268533518164827465388867914363557946813417427546383225606192741318737872757879604290615216263139468241471671541764766295731492496136828886011430212544734786294180371271802972229862428065572843986559578700329506598700811322795550298455949402050583578974407194651095622139000771912399589647221447991377923823985901614784177722637262032443723468493605232044111366355766205247623029860813334602371967663035206957045350965111821054323298798892340514413573619075155891629603486942737094551661858104020156001550621008156432295215618931573467814429870639149720964837782983150774407983869267489357888863288192840899669540256763295467597075522545345407787666471002602345454352118653225437520058939141737492901991438042784682666491712684332870490071542843969048503520287173847632941046172860213201671210340247367775032307630313115795400278115315079294765900687449358587342805960924015181631841312078648532011346905596544564895820067721176592645092436966654670249897897512858028248334930957085278872381282721152878943867492379036783831368588523341043066807534954351962076037736117025902050958378786482341139116193403857528010988328825398703296427945673497062471719914251824004777396192113459495274972506510869080857706459119351895543146259477762430679789404400466997975869982120367949946845623204617506592060498330125262071217997558333658650186018561132637111322026619113711441169784751369140515320840716811268886492396745939361616423889256288852555745771680619804077817920885316953157233428440377542423789417756124980697888505154196311854613116494811746614513993959810350844669994936878643219259801466896870187065661813334388549444109818478119874299264753701153623961438151006962883348271543125462580939921480353712085004285045542497199550164577752427864401854189973935104007803722332697773024441826985728152712595831238187324990275418462559973237598470227292218417330469253041967048140877297428917799868936692933990580982886057086422804558052843373051714373832161247573488202421554458604596993786582734689346508274628817317351368574182945182710237545398380106783468754083035154430027277926760680998533767485519344230262710367482062308625432569104691692787956945222892887948187038685931455111368615408071267243433144517600448786918533920065727664909508011914122715112252741264191772054198556927867940498552143536805512849599152633496664639187147214591325559864260519577667392916641095692228945956758606254252052889409567322453332642436072396543643292476411128993093314480754311331948272442796704802147620634417317049375911524894488657313988974159655557747437034311170893318908572125714997101063959024617508516843119706631297697307779808002690592599945023158311765087333122016458484842524952055920848583923114054200657639980219654417974951336543544412041126599378450807254808391213554850141652751772443830046026214029451538486818644378307884506188826980482213265701956981039053250122785241716469695750924468755882400420136606042149370410976321255329133970058045250774437524845266971422285137133947307370353926634456497324302801994521966573695083378877230902070483913632566170737220291898889081035705875291078767320858937941807649189210343197107984429149372140964115189307795103004651270090207264680425131681562082886202060966498238688031465988541311578766184477982515477493048462733127930087651792431091495374185763669043475972929007256042400216379106221565149799014617681461828484538177462075346314533840261546526171313829108376661485994769151741869877785147672587838281096468175008087959003517791817126789274572541123257378078526640334992187733224988733169970255501200792096160669352575513791076082776384236361785120615723010708237494116290855181368755970238318240416282217944623716312634797268630330278991413855967328759940419306213243860640814343236093986105551941976849949394240916463549336055259709161130632604143784562564311270813255829899259368260182025340960789235170289343544977198604511633333045104063246847644054794164351916756218761096507726932897130381573918267867095648211200312722359001574040769076692267438439970176545795539528545363569678716360711830366430390771306451575501852495254153052536420342481382177131473644226205354929471846689022914905055103021572873648987276117907567500297875522747554612919083885224689590772017048064449663038332303759186717308658791342537792455189988078358418922863455623416344940753300437581780129604580154625878482003103649304716895636504792780544975355010784079923026828755146258135784030140654465807955138034527727832440699243867387510977399747822118348568715337730477580705583095291338941977378853744132846095109346297363575377950880842240208324726632496902472681025339037685309958493870853821659047284702873054860503291771121186776601672084314086702615676171389392453236317435658581352270382667945154331265443876811851742385178381416472307215505516936075283683830411135685694432915504663282131726582802893578340177208472054065827426039334028478985221178759721158854525169719569802441598562916534432597613288173000315766491470424477194167129987521627079202756859708056250494484036116649690511513795957355099172025015038047300372123394666805900574393332368636732893288945575400826684844055045874036564108782039761807074271884019528137525646533136336451662053082343915181964536718651028323182601004353150402262373938703697081697187139135759426557957332845477669864899886114906317941284326228366352386674179244404142004427187286410679704839273553744676304957725077836021739178490443258008851760489864261911654274589061165832153555688237450336912895032905389260540591471611552246610056608087061437560387255794130120693520822959202313235350257320003373001862137287652976818322420474843910276141314418840692772348501805238708535204862510154429538467477836360340971598788523511294616474724829096664371421672853341658321112108590950936065100566226667842774698999829990475947613864505841576963850732354348214434649870187403073988942015502531531864803013392394063193871996702764311831155382810108238197532359787062461311070726366636269188450828729915551768132631350331338890167059272768670211189921043477835241999111179379290949746048319844388568107677589193847938910461058511969976780962779467027779921975856827555371889700011620291685191607089741409109526603540716214930410370829771397572255405783232779923185926145417743729576231089927156739672446218451505968338188248696387680976373594230034137807811968416155719971703321211282459777803976079227233552338105716303138316175589637358926899942938187342763992976200178153553750560806916384838090033180258374942466263063843365299678794451876659945759197623045177776459059230375229332788034575460432736889765895739480122347682133515899633867898325803670483341313702698542179386917262216562800908606221149464743784671110553363562406994869728348749357234067497775738274869911299666973812692647716689469398075056908308087653063554242742114614651258960486618659063081142243659075796793297828208583321740336323838816858813584896453874892036429527226039770273419154272364338611702146280510153554772678817375669588592916348077031994319661264023258987173261453131549340630569027274815332821209225085269062212868867822637825305653622435914394111811729683842045129628511917754804295169195068312663500939582413121020632698286492242373876593586923985183197139464575129639887093691658444644004704146551232748640773728664822032526354902849022009315100091064647737038911741591758451365312165161759265041826478389336305791971482465942029508761806737505941280412705324010387942315276469211192558997397668967238312309074691244535863039766576284175371800905841640089962029378580943940376686875995732625592624808867381805316791289655253382744285674095965694044229200960444440522166484610730330734367869023617623192656922103776162617759134937809930623747329003362136960614458903736463537777600541710685315721421858410361102301837508721911922527116263183497509329668950812074314902377698776996065410484978471836801613596302462846050327215975218056287021660409621429032756092041130467047698233706336932770665966807793702180436264667025538414152656247586927778076388354532996372191792252747154268513660874465144263926124910269770805775721068173718420748395480197691047693441632784523124578742615550056901605866966113943805678089675139274021647315890154105563466901988035059102542679131015704165860519477653032836413282005249083966264784228799729835805260394860570828884349152175234465541417613731793501037087739711286559175631153118081085185105303718819964943643353886537764446867207593179032425181203111857546928055142610516900746008788566082031660308675439583095844092348662083264572923010223436768393790314353860517313460074620382308319553818522857484024587730153901810889273060257922568220819475698266791743504970294207147524755293666225816632990513831027648230808312004645443524568538393014333694173856015427166206511414713635270113696973751320283489316562556644930746680195310237395071558377159344041123190098843287486447299638673385284407972819966448061155255474948641767786981385464936134561553570574571959044030093368081633739418286635780746769400070198002549175620343034411830108587777370164432264168431628970648296590881707344899387454391533389394522781449144289657738285696313513108101818113321175157503519914995888043540911816785971024563182135286047037797408028100188061302849620417299805031163271865706906328109546396775774605397441803170259468556133045847683881583767345773229541554981089442417577401271660053040670318042815428499611891779452914888438200975547118468704181864369615443931377319674399330158895678227382505509043368183609173887845235113508049851618741958826663529525375156201189227574526474015399648408049353876005339432591272398791984604368373043764407982074377522006746679022023670193853320307233083785383777203848487996377480460250718519797857896005738595842387274706306007837147881350451515920451201404191629375024998811123192755323925548132783316819760154483052540876405052271461804590318266281209568230769846890477885826706477517785885290693673896647864904104733731833965657579312493365291992133244239305174681117555364913249056853698256065171527880947409500348790085434933543849262661218122585942117294644791879771159307376718914167946930999989173010827492848760993036921445244892671335500360949483912137551263528205570782074356938702731554511476311000546566538967370755452781390151446777262588835131200110194176866027812434393759967832923166840087404051491680139708978367852903640901822818770699270982353013856730044420267555110699439696378839147332617565404266545526959151644581731401726992049760897340480405958009021306325526266580023941474740279006936811693449138973859121561325725821337511982561336054780081622947001952341500185037426883125168631855870854069187203727841502839684065196076056790808354945633032428852607767239125992010053670791383819461510214001338935900980752651993076108141274998224805212791443737470715682713698361274591868430642878423173152939822892318233238708438764014649609194545184471114421869458776049526233916900073329708369165371239807216911656696418552929150129791184950040355188372320824426182159774243290228790872022914016765693980331563769508880114485143177761260378335784509711334251909039634249475166398165429150262697593195831438671945279927402506563329379626578752761306518108772188644169143721464978535645623149566617844362951259081228135759449332788879087812367410519222790405047247967154715202098448973476668297216338857150162298580435344026132911555764079123568746037079129049615833971459588753658774673054570233935592183968669030368426415895085593012429908659072788901541001606794813060506989553073857690305056375909803768963177044602471594374564282004793921813183690119390353049557605781637327609770126663558276556880245529831351163211130340325628347459533921656461216584605723792151231954278852739352586576027762338289656164686806535030458564797732772092236254583231240342992477906008039176815358531086667155759973666740144849730952745689328166649440935725869631010892248331920686620381250588948264132226098695652837755431516281605985994084101448865771970158387194421106634630773288288983274651441904394693029122644376839048630974228439200295781326509116445155709883863643577255982331264881834937544684395033860447558202016069808085765856468478516015808764507497438420038760204104475209577662878162915285668607329360883928159187999017378177928811468550260097911289263958404500952071415377805282369106476727056079259148717537345795856725857166523852704282498436662445843652674031637289894581925430519991937165182794809849652415566426480052388979828933399774322156084150776770806611134819003179124204179919955485636445189118407691205607679230266465379398696220592037719412315560692541128127850468081052629698619782214910356825529141075515749374940203804373267450239871857111621722344402629091381870851771027038987434534136259301110789534466450370130297792704775314691641062601136366358662890954281966527197713969234809642270210893716897668119540178000213288588131605828436030016010197686102094505290475650081076603553279851959897229114235993476577088295839718616919665077316484921611280450690881522409782964726792296587839090788805368134292110598450121336014396537822850476494696892039883081758134149858924857290264696231338034112774341423662380535787525614477760091315093053164070521642629688069873251761079799884625899044692559358938968771689241652337036744853213255419232709628297222936964466222411487233364142193045598993178201748960104671882462805616659398980476056594247325786172452006201329229692967770598947922783902474853151597285886951429495737080078509186471329829062325800678047476332834579510389822781740697965603587650207730642710851690373014348565778179709310666289172483204738313965715513829629666563674022097300445555931189064787495285333420042128752294735349342746802921883622490664412572590653723664460472859124489522486655475901478055731268974136569725630090465183286824715271924959107849922552570730476247664450389820733111541924394337198864511112890497323164801076863682962721322672201845458007344317115187281528894096977819545747594383337830694439214253524872523180091407353000268977574948236300222163833646258525300820455095609451907916982880511576835951441264779343280538465203001828604197929856716436082494554145768013190844925866035599946337880859049628552609755292103988484951620026702085984103858400247110969617542674084034762957455908158445849667602852711506790561567931405477181624709000241143706170415892755780275399571593918265831982399558891454763930412569190166782227144753985583175546364832234657074020096150227645321848879002170459969677502166973398180434569300541512448775997519847302461600390124034469986298743751685156534218176034293769323840103311982328408810518501829445009268209300018623362929167918889090447925201793536807408620723623853580770825566165258988741587563379750663010517133657931584873643224902571563200942033043071724298904089050814398715110294768654527538602520125446579934481726457855206050255731394196801373502542884310176510858960639782072137667717985778182253800221606400770677116115615833964028317167848658315370986102471116976015230364710894263794204750971244058172352627963832333131669040931265110489619275257105024307862469813748652212330907936734819043740500413098541340962190132936199974526029108694709465945715033518758827374077463088539229808146764585756675783306036215723321951061859710265522080713860041374951840815297389571679350928182689136093665348264318550578919131918058469866780027126530847826507657750185455027852439823964113363874124350297387503885762956228502215290225350505143517865420069183676781840528866688241300925806780779181767501545453252459535470997381748399626758276521632399024732091813392157977765195512200895193375601429240342148706195784995944775492940836185084783555625897253226180955767180305211512146282235966905835004254193950513645827824553058896270479870987739614091362158519227126637042812242121154346746091870732524669833202734561754017279235582224731635646409382452281815000855599865945178476026607041319231584076539385029746574592770695468070233092914701193391204615588755125291353919673675756021532481390501933683943352332874150847465171252374916822358036984864995479403428456052362474356292581822350985126683314022000496476325604066848364091735587426596865368171879401118653571737257193609536651418537328534812968389733440646202791701740051071606580862358074312675124755601403275887404630089753457102610720969860461953272353467142733285650298593132986726891139049456152365980062921725092196683290271038587737149813817621851325044072827833903614810566812002776028325270724695114900125220694371662835347854142736895180726876797096999098233581221741063648303607571806264156052541125828991705566314124329948749970649851629020871465082360882087586568671513473207415225240332397960731905804064832093477669374679396067950585640656524635597604895048837373769028982342024502065662049304065269900728574561690582958785749272521571774719110864042669392206592629518549408190987592041802213986000272149497285694986182567031248693586240247131024220422770249134092224842970794411607407736836783615756677387562819665664345064779468417226027650946402216494717982606585555720457129934109637925539473118719491562926233232906816740777736329595436256396525191073374653880148951876766290530102274963884525269346757750279612933476554025222021100603960630164294069989899137053161651642644363227161409517400661739537791986279187008145351777269895185894810059055130531543800115044358269992727414608906709105148930162528954574896420620270623799000434189107706457487823873428579252486302964497505658914313459010446207371744440771594231315423858784700754213003872275661880400009522254956508980769816098607693710268398448602001180662251297780347901135556675419979572448480640283381422874154826269854427733552741649654395732570470455875485229677300315080515328734243770568656493497057692848324283836701837932796351779549895223775762181763132302406180353421914118221671462703968312139255777340268442473950744206290094255980825591304511826760286213998343719312477370858634328877468588840903814210794238070106667661398878518606780813035411348244681525970042973986984092602565571365182829313580294165096153209150409776455231388415539133381066618975256155204943905214392797521728087372418266887424293136254257747488125083036946297283057617993134592577102422426914814642160310005009922081423847663706137957408877872722967743699774955026145950479228590281137131839576619602091330216197018336812375820513962201575370237690289884343622440850366938910547639597158097124085253337806851375726050474454504610612058583751968406888074190925883227938499217138670461623331168539727617793761064103176900214592200247582520424953082139966450163249904608662048202759281413526166548465648417235694015724580895850741507283442695324387256801132283144268084085429547258033221071310026253883419267914612429232534610140918296380345048714512609470869800614106609353954653124001765403494660577177123982246384667708852239067139524751464239449752467271105926025221706190048489856299174901289354887943877475620009999762124699179746945476210075199756919303336620737453477432984781459043964895068636585880426197550412431968059329077941612144952710217633207476894522205917505993863409951103565361742999388442274779427024624160815317519985085383259428696804929224299556121993405352544474693979990957811751247011359944727681550933797694289437042779063847401163323038380682160045465388940438013946933252602406839552723100509534861428104400132260023616515025385639227303010360358487303390969678602316394893913305876273460406928764951213902434280866158505976918821122421501035370578168317053464002017663085315098308198086527737657333881469554689008096310940631140734241946293954497022302955847253305373446442767363698143544263771061922147567641752596226223444951843413199783313695766735067818537495514990636620482622215500235743304040109980767348069610779993855796497010360769761860671281631352687873358335226764632327672268918335404571896335262922658121237423255757426273628005698937693948697638082206072674759035556762475051404971461779471137103102682821219610438796172012960603941125235124359695876084407790994575350957093699193603906706691567896281804256329333637953321181519755794052556815986872654358619563565394633602769032128469950589021688369885592920232153781960479466318855495712482513842737268394988366727223841438393494824020777683336905569335275116783645458887085487538302959973387827081395173770890821273572155365250917936164174176916014778392211490651219817482063217284591619309824830324415997437007135406090814170094259905316591934770133944887454487004195835825373767144143104821546508586303350474023998031276720742018451251752928656763480085275001257707343918352469428191076566815320250460891253375211750913656395743321709924092854842720031073671613293716318923698096630351530609325364703401511350815096029744767463461939266483254943324835740214069924820286654133579397591030176312633314668482990264999098442296940401784656950269369286410208184006227646961566418308370754576566291125905876922258308673753045928702641084893726064803036241600076308688741120094327406088996864950644959047723157386746792857347750109521133171868391513975810270642563493704685795394731921270481765748811601616545962935938738406496733988396496956862162799048596230555206777048637846862094877776721811838280067103274520516034947740482574982368000021295076890767658417313687018935834433798140475732728516339176133695363528219722290024986317797906168612840032700364691212649623851842797108285871228912688231092600829785613611588357203947618208450847569354644473453558013875261867325771722007698709683200997405719073122082948655120449949821627725434483454254826143319708467859373083083391784197424403584296255624043647132449889634167850529650169785045969051494879461452908364739535262680755946051198582011360188326230380048471132010731835006836903296707048938700895561826307919440374858842203283764239029688108915866876713007002222153490056712308962961735756433697250837829353212107898549259813125406321117727439222856797093216241878585683052869200458147548195347065580632010896745214145814432598134195512948925684998195964206328990153323339063939905547244171693510415156305693547234416053124401888816350821314063711819432841139061935914412417350372037066351383108526018206168402218504321754732246432770592609187964917557067419700461343891594650340388879311657709575088693595087844514023402384185079568357452858794396580360972422685787994445869895852932537887629894264126475918655056632213205912275604570429789747977571400434582659526674359852406886019050201798319895696004625284465783850625116726114972273070866852396462897943921655805424134162340378054922366312326973563297579139314728609220648102579712947715433896503060211218918323670263323100406397733782551487702871992157272787892817522533769875622931859347316533554320027444689208500270802638577369551293034062954056952314957838740983050985149755281788764286757399728019479132733849018683428470407148771468844085600658260071332592887286664753768184749020527364589945700577318652933255426999516942005792640981542436017491734691252000220470866740914797705130550715625993660958395949576587503646548186940979782337535316108750135865413680673963194676969826068507912846204777143629398192238214769259440908808651927472186863628155538404569013801680578952629659538546502077205332518559170965623637979815218178154296791230057122447012573743385481063967554909664031747646338001238551384807164168772217584431083705126354268311769917373921182440232523329487569127709198476014071437811915387254145710560373619148892689217925527968549346856485035201645471889650564369341182033423339777184354415868351133945821479930098855663055826111722775303451627917212811933635572897356989538023336186870054608884221729520672172773530046208868886321114473263866321407758861077098799148548345326827410687008444424890013609737377131601834542914992873944854705846442602523481570546059925797739825097978855989335380080236774902328364845933846153773943427377716765543241169949812661335421530505738374523648730522225665789347415499291181433563154600440290400296472583444879243127644025883221452464834993996661868728482556890386823874688727498200242026507148438784756855636775926377870254519708624404050823758699077857836090885027561265065489315605565554124162054998694848382708086920146384663524255336302609377481908633531835218595898333656125153587167906759845195510777395015333077363510089371763073404439562700160950839232490994536314175740032953408653953651215142424561321445815295953317258756478949027168694611469354822918673218279914508652328621002669929882613166448651023856803828409810048150332150123106760859962154953407609354125893280341500904996811760212344540701286312882939565762062899238436184656004050419793410014951067343574028057514965130277360428102190800258464194656441987652948542522782471411181434541381368274336313704742358487857689795019004469253075912490119776607477585501646912837108375743469944267301476401905058989955817648228970988069297651319367414634851809410269501023690044833300873809597199479807186262144286597340604971957674990064164276326703154533318621980838309286549144560977436132059074876238033207211455875304895599070382558023166359573478871212962447533203705394712097542196080688754122349851976198772588575848674878946202764406401749797605488206223625409269176973527612487331558744992090290373144729182900531630486261594154247267433179539983683423400052370788151939839263370349594707338539446667352587029509932656037053708000404675794828899586397542759135247846773690771617116837354229973700016713506054630346874178896354004875200234083340673668249690956379021124531807467991999656956378643979304312775978280324643991488788157612665050339900065214895496264588044231421508427136875793773796967372019789512514636633545399048962804767287497509081532822906945236681826994475029833764464511703365664725985177404550805402427762235211276051253828502680905597313686091905973990870660551301336359024550716427793133437729388889607200189933613249061329569320969975801662013133724703873100950275516919232007929358892224163134556145147906866641133569857107995595132156911083698805949272301276038758811550179159334459193502699224881608484609617662635296523754622671579485141235988633490928955053664506993906671496291414144631241338297617320975590363651158680939574342061003645819216766555152682381063586369832640929027729826089339012031558584632778015961939881423433973996579532944434853620537159914651068927311889769351454632990926558600384432592294145266726497893375017952875079856266689592459009742410562789116938015485217906468156881354222276261523519710371454842222580651547978753054282423952571898053411477079226814879394866544390858152510390408729103558821329202965952297974638736430965249291562749726517584480680169716368549896623606032323252492160393093873034069309058021297903704736414175505267471679768868417387714801039218726222589977839797180714454980893022932344879824239385082280972327815341372623527290531615975873627713596305505100446479511832867155915118499897184918271926475480598195770874431120490115610251674342517650205782922775211615228887369991686228537737507500669410770565519091954208166181667893733604476937433547127677274645824431735494833141359910712650259444501608433021785104611081434930928712475141033601497097666933890802487412866801897056979181682439593924938490035571018331841731391194403070804391522090273822230480063909266724357440087668582823832282700262285797511644123920909381467856191473765831130673958639661001017653151942887788248051984869646411834032540735298903235761901926853266527071838292079934061247961068696004854995109426650721750582873929910088979132319774688889569608688076842743555142141635250660265636636179797285297677890460007682488101340265163402661509039028806728107691850313016415980208243316832833330360372989855446511774763547012019567976347010499444926733198672403288799568917020631954600716630668024939373289724454817667934421851789762471981350437363065932986859138511503960552076588437772036393536287685448836122533665884903459306091983126617446424695799105046203999568539756952773810047996698822660308220067719994470623269061661461833258845114966964791456261369521405472602247955545764315129409268973881141617411718259544129703561942164907186463954783919363471206672580506592203984243387835996876554382311481509085590696085029260713784634342935709421000088531220168170070209976116059488968287931361984192492223655740109690120910670051502753203064866666931642865637804184419640541999541450238091156066300886864004721888604254018583665315590812659447180664697585309084269909017521016709161884659601381649731399680410936127690334206329052385776262495543902157634502279819595597713601706536069761528503924483072164777168221159850473774858649380434556475153513021513853985493765397157390375976913435653394224810350773951960044502421531062170382613899928028501796070315811911441067624029717608536466358391951557888613398071366130334382114193076386486247608042544640178291320013543612605286977411960900918014196052920536869394617511297933174707432989077564073044964937851514538809115652329327138493524182299693287187709447103953159840765019146051441826181309988087117273008124935317454091291362188393737619133468604214893054498741054334381616817210908469814522700252282764378599257829887291952216360547138028962829477788467045388598368330764797180242234792853280373800895265550880425425546928089278497687939982547273852111008426167939681713664499437375269441843448074913996351505914680428206613612483985938440721503001566773015164726673827436630501647174685483847830844549912770609984050995057534591960817338857950696253649511173977177813112036506173203552490731646616814722664870414898233204571876906782179541010353431734912257742045435697316243501509771222218207283019944149272882710436527480384939181381641602705053583243705609307814277176890904208764495802348393717443135590103763267397094703896057063782878474545654843617347691558707470617020293897032806037771511601361198002780172897742297856204575727064116632017512657430186705681457492740782167469952423016127081747051254229662906732844881232042210480278531600483606301287545309483802642862838852305801498113886793138657584205916454545289837268098578793694185074517821558332574921505029035496913013557900038932631491725550616414564082054344777047013080329644218285637630410010783675378186453871500079425134079630332608242626816900518503622906775399111129068244135627659879387990583058327252372515648332369130443968063129058568961020302721424274642109154681488450443635793055366973060882144468693144478379530845690239616760483777440366616279564516558307618839099930066748357744112926858338923748784403343453326200252630686559803283575883487660110250482026610091628674608607548938295539604060171009316672014687950686048352665038373470930648528705374590373768777600950608700231145229752621876076934269721457358388672544608632167199053416717324672635378200566440304024046067915912200694763084138777617514536194710787295983213462882900138225102669792046445375148914206783259638790349839353421498332179038504872444283908032327505545548213287223824567021654432430870646752657255140622889020775116843074707268115277064099108745488488355069904054864592942117515376138012147716324445531871787884112657287784698106162160073023632489540112753471383739044001486737991526978983423754572680932957361503515590288429375412352636886926551963290708869490126523549963462939635371983483222348808671098049741855831174576332794618278230354149271379237838284780160041531352077317122746512441180016588630473031069133232731709881455467273193681559761052467067558059212910433293791744147114483234522139086166667140999111173805737315721004910334296564761083621610524635893365915063071216768465671297071848327079248262320529132813708233844396808701524297182738702695383634942111589082026711177208035218354158988780029632316227272038317647560069825031150257826115475643821769909752028002121151840186342169810718981657136032461433040463189626695414833984746340249260813148461492306990094289567430652693775787986318674051029535264646593246280109542376304776077357405811314258605899672174079423428943546025483118901180232844545770446408078197808996408948081895357207243305751737661007463366871078126532220577725814801471175055634576138300126187922849021230521619632168755680983855142739950833386788768617193305955804673648401085215592333520778495548969590108041070232983833174777982326486831189912746256536131525978603047469987670806812793994538053373147457085080347067759314548546516843016473453842628306425109701210353452708567829568100779097949290988224162065848416738489111576732689647026188094339773673904107945099302249513996816508650162217665260671236123871207428763060643604305421504323619673632127470894055647750857317605100573314792173126780480307774907875362651861514725123408875706152683138877119579919830391763982067954635826855746428570241696032775459915050950373305200947512168173805925395648905078173716475089057419772179884382596151511324747693412992052150892808300182827867333089071852736095347987966159296268054975544644402098244344442887774540002430070108954734060015272046630016662350512684258694201828522208053533958457681682669271825397622809648478759338845091772790148800590695247173851458559590386343400571559021372598956373006705515396127206398156403813175640606906791364322579703339568973381102593688677814733428140101481669534723296472124377484090342360765410662742269016715674045095303353078238464422154987719983681894532234486105167143800735978190330596819381364960563833012834152514252274037077794922422868233894166696038692191986922802474474825438954740239736356308297791738457943250922320551364362271929817163315067778709310031677558616798141670194604635543766563206342645329770552309006999085065367549203963242430445544835810423210552033658192873122122277131958919634064072883187604464784590011492683313659507611588885743732900586884674817004650359376521645464554306133009670718051420525310578600283878476627042045467541106476859686742613001752477274478610644042751594674033620572956921948871994541912479089285149991781957222025043785536603278492218465045025403769054514875440083309116614774387750417864112412875969649689457558288845341659485313755997435979698432370033487147456234729354204695251895234931799349890864314373073340731028242782036112982343219800116070730517948583824249942048566089010451638077879457435903200670956550378706218133758834698127132108196326521581108305092973529400396031066663286364414940435985356826009947642337789602348950903820366483564671395726974495140362053419633008186859027868778345576356564922956711461808044322199667279853817965996824883869982972183348872868536614163731879126374992892750232758332661283932338841696046607715135582492203999426303603180251184827362357343362520106473309088495890688063368881861661055627713574416511097119533316120324396815259113078799595385178552020384972698205480329282519274604717305178536290173228350659146922819793694298512326836641788317127263324811637894111380151041962344775832827112657346197392070957174907038873778990402369983938041987418379986331568541472506117694011410125872692469386366221753481064205354883350638629992352288809566909259880935770337905761810377967248304848746588857652670938820678329111957094363651731270514832192634541492483791278003780322137107072673185306497874798813711152719870379904140708393730027326770722316010072050467075790297999208702196397337561701848899827495710889624327747212463452180142809003822717580751402596830808540412612612492641636354919030100921771123641571888641376164475499660616823155558520775301139062563304511606860211160036328853774314588649399886876555916687241264503110818648935437638904174173565210935810551177853082092216855219594745249116069383353225843596718374549158631275249698990353407238034442331774296691957593625182042123531230916088107597813403192190662064520412964935450642863877627800470135429198855473009809828247537193055846064214407840816652381011839023570095055466239218377861541107537872018414661976708166427539420497297739243699006210819312114269378455314471213808319476075759228993745994926777021741813009337803224452560905066666636920910582431922664596079591261094109937321359942769062430353068321710669922674350271448573444134398850296676189240728826914111609382474056222888590748942936949740737730411442504644344284717562674133832781204705408015992473035924820356481057745510798793564418905700425546279877994155445703195094060492999634566407766641415317031889187692069009989884854625977796514071942750591228908831042115771299658198202730456332997675691389455164778005255764756235840741801033463274512059522363042618800564349865660697689570308588358067685689692986283281333680127481438867757946523539878775046187919668324244431906072890028898716515518152190348195579285029352694781612668563136303084553617139358965309535451392089179079911670219748284209933239389530906350937578494644972624788092931605390851478406466255376973077747599351758953187695172247311631887927030264127571763242869077867506738152200269845417891625800690958645682499977146679911677546157266936012257796508282731770917555186986728298751563168746090338855928978761703865706608045137158310117787462371661423691987958375097605966787617850426526865961173504461068834134398075676802026797044574481029662969329237184628183138140998626431281899809839164025084592002100097672897055330760354920546785151061585465360070433622400029754265921957790913858306028340773847156792190372074386427755605390975707396973838675021269773034841588857493052658916835471199139236351045314796624070237274636211205432073388727574897146931472098693970515071185789660448576627532796353407795374848594094842550429140946026701764122672606290066200575866917392209024264508198212825373991144710076753193401685189819611833006512846797562005861216729904937945576270632508016177144051259366580355744069947967650685668699470176645527318395138746589351172120061494167396595174628917276013537085127708694668824767780732993051226960134951656251592877077370179021828110994421803757112038557795718386372971604836176756573079518339434108095198870237102286586285333319075808298802535866754375011318411973263106308842922837579496674897446524799910917363123319343368106214295239052887147090814163062924816018267123427701970457745729739918454353109438042977677639450929968070367678137161671906411208749494847958984650704959725406608130360704697266763545750907789325702558387327124541505465410130369798100170727271061664692275539484067742328023344623379697900209856447546325693607906278773822124115046231095183195892128472458008010856387134546423207947060348189401691343474608316292044071056195414244768259473772153684770952998081069995417680130753369587467207061825165418426056459454302709496462608206955441979450578555154467500755167529925098598431299984019020351061547431315128821479934598363125350696094900923117910533219486047307967680556032979817041110302309625935607164372609635199577033859504795641891133318170294774188139793116853152366254260798519539578973595311866953845962729332600635747898397459152622750984890921029501081535324880005297458215679858946998974392735167343448173436354726374328447322957928419287380292015162949781885251059473026252329271173044046251640854386406456490330003800169628268292390821670512696592615041761093451538441579092678911176995678605634766530366168928167780637297583674624746573112790142411029523471034142197530552639387530059515821906237320567416956126344051946755913950874480671963653138554343754528386000921082620204330320599524901061517395080857969428925762933146445089766297561980650417334974063480526322669550371253138294017532155141277245257514585283908639850218266540640636708275351622674627047712434920635320522251521859976581648789747334653363921536059376690537383551706597613893335909808524699759055275562464132184769967511486770910336972738887111274041120085133078309959572100996372884630397733636406462089058018160822726614403348466513655129664360316942406007428102952773338415468470099076062788941763517119693978578047408612497063424272737521884240257700338203469675712911049487700820508833310267585085509980804026000315124553590315156053188649572355872574131612223475656334480053503565620542423232109805012876871274352405684726913345045343791065546400145608588218769977806671566488478496466272521539787567612730750559902065177280578099347831585685513932004210424276784357332134649375749672606737128049747737495740888378867324096378173125954014484505170155087003627028556516453486305130662240979968696276476581127680594200086593514125581640788700687293180496695311366609689152896788667661770704865079489546541799249451514159076827825715363046038706172645744195316087666040965668936691710651752137785336665492421619120578422542487660331976963429314946722803742825942762466843137250363226812355128132237758473001257028579189935142762921412478064759517783454085381465872392875863579375939730019737755938779157617299397272457064861326928296264199573153896682726415206851512731231086036204687252697765432079540948714279168920852948751217760458812173369371783064541401095538256797161252754747744553362449719979757152610362248352949965796399106000859864529519271129938533948849919361803726699349286948390083681620234731710547661199933626953971294687870941300874296501779370536577127764024506152933063343240104484367353668030872080729337885876537067931762034248557903209435951563364779452290305258342477325328027091840494637546198508126087163916944648646397937123886662651407581837727978961892718177154940398786291763335449982563368365411475874798955030097253279935271300304803017215593337751099231293553212220290192515671148993876557416063299745351424282612066411132703641853511169519293926849394555650203971769282436440776081042602045579498713105288423632427374764513661130359557994738247751619276908226044992361023230544581094127417059689174141982082001814499613601079487185945917846759395904965756138707357948995598911332481898002718962669403941887249198974389347060293432959578225114663970452970594206576877238359272059070165914402634032420447186827286876001108525515645660919116370259308001398240955089481424790839015801613773598506100571661611052431586325277041432377561341543353702276477315467548907018357965048231191744072171459232751674498522562843091361728097697283664046965191207203947593716657485844059317874875569500231762019960076691154526494196834306517666841901736274441921416372745197544377248464416101470197604185344082284692655138836839636839302791975045689760371067139598407743811421063809748067555174807910073289861674504140413538613564232063829837658365890055445857228316919585757894637327557463739352804365422602174283643712337178472921940669555465473940410963757823903233893441149667289956737284051295607325898393949878632339729104918392246721444018656820922132651218800245725004460607699473646548226014732559320686051400555486712093386545637549108072649278172998141234046797457785087532542490051800604212219867477713750658972129983785113005594179444298164084039174343749962577986054744154133277996113823405904770741733735770734770623891815731527753168225599861769398210718043825565942933936023388516379907280835652301997558909296396040466274861682146311464557995274926551887556003394848571762309589615631878577136190566791464443285737543801679714998183031788732601641429116310890743774383553860465657876843134152859566557426692707131006350745119925573149614448699286157376166391685727619984615437169814649674521439629211473262748744605802623903027518323157186541937530833539346989440842276382126156647792524132537033487911040329880378722396164825865833325239614349344278435212156868113136358392485857905488850816175684972513612400158558057565235515897076958210948413542089631641297077209338766573215759042124952194453209648461269166192130668096899986468397297382801206704216716562503435829987715288715367529267387107107483754418504592589940415560794470515631991666251924123979126392586572093031510666570352642222112541232044006386087431343168984083675881231480970882154607533000820146406297424605434367801784181199110514470107945169103447119832314063051425435460368245332460159004145909002572140757288394564034245975554549846250947079535334506997460346754990312710410478759711864707684687682084243817055824410818095889779294453028450460243981959007831030967842873120355857607141502406632538975549485528804275763322213869997750026378740099435480509554712672807402185423722629770061521860290709215218811443003138639507950083523562341962185489830349669627339896252113285032655554356092037488280303235903219384358537041036076041922430319729979996804546693820135479809594253603678125588801259833894947055816824246200664337424478592217979552527724348436090402744729344819126536368294051591554143446742629951251970286511117443380042013741426858529769007184381641379592643219563250155348938228716115411027089725462347518342175536001649762047897605823907455789538164656185911041581711707368249105340130660096390815380633490921771232331427690509467839730796768833262174276887921822440332892808468627574777801545932876075637101169432261612637455078794995233098903863643074735588391586817712533484481759120748008748525687589199543188729299751112095449600286186753806364377012977203468907180007528714644179410914224384450356577134514598552718831945258656286830400953253703596849553952915144910711770067893729415517474576749139093023885568261254979883954987608375293987682085324140776071050580844120417998248737874167300043949843750989205787692968272486407467293506998268584668863982088721957072060134677068647137883796028540177106879056642029852954962557652444920073417319676204699849450345272776939547912852719557618172429959037602421404439301279557767386006883377340617484974016970601035856786755002228329725306727205934818168061464595942338569096167853045491110828232991970229395937563553948491156953259806695045691588967891788880358937059998300929884678704192839263661339976915905649700226422222274581703241282409623261215289603621923797052231864494607518398311040964580892691254965855563292717302133957058740871902314157452135011232648463691158583442442588623746816685046771085836332534443659854050392001357916774265193023012926836536128428097454256697099266104131862394174930341230703810474673708722958705294654076527833215578275803516511377042677639596013398410830696241393142205932550879554515261432511186830595276094172280117085789869704453439489718164814622923784583009749651820379275876694511794818741504935483984081224820252633256999988520059987825704309373188395704354882248417127820180418032786939644206034620332434925612566584293692860659033353025028798404995922347605356066590804876554145830156454746536164799146872300642071379231155769075362350855424973169850013796474931349008182469270453081918787079376759356792288614063998452512208979952976429003590096587547030011561482351706508702206903427281464840837315071098246487063894915794071693527085736452284633634175267031763398496657177126803499682704319299394462623855431514492600305264304791160708735757973513153494964905948648080046497666711638550844928955115241144780111207734506604969147203147465399564913990595298578284071450737034884029528638369179676679819037609863779451147712575770618663771438380902390322377906219895639861258622843468205163889137008279453703622937945550954633130441394846779935476165262740725141373626421561563366122047894627523033803371226240423906954681661935988675388543788761274447040270278182835079474284817495199387030793423329071524156319473097472051060931706589093458060480688156853813551579450798867836622787610920951254135366375443314721028030895813796950207055783628337728624102086463769665835166046707274089451453078857158229228716806540188158913915660376980995376021932063072246129324199256960563629110663091130225597722901517946898910220231195115182726212519345482434411387783630238519262674750111824185605997698472866222076334648960950974553031147610774692522500965009219296477643042255705717590803475562123999558940691651655080366382082377379907804696474018015632037990238584229774628302292063484701220382177888725607560193242842479589677970353469748066956272051230466136538451162116707899547191666606972703554981877848388653714534820319370330445797494010821849592712097172223624937613648140958792904546048892663951129856844146491030547494335005744834238747697389739296684952126136608748878977419843763003584214671454228318591146450522520181993223225499522949221542806974977062498457374267247134133180469587697907378549703324151763516540140225704989798981181284752713647770012334857735877008863706471625014516884556248583165033037902414111104769854938884832807528453803016060243825685567780401771967850242622798468352130442935017687118866774112115429674523248491590084765656548937937801409358531763613698570614023420225385568650004263010239597547649259749853079114403309507328952848366203436972064348096457443581136211706188654172113689737562351551863494434360394688464071672876264722236537986048655912747748667510343075235085248517990802449817149132542672690167722655918181527342012551337003415269179409890984682213021712971709559998456166509409171946764194701862471768206980254312117758579754712784175279274248509347171501102341724443384384072654396496624528091183751707185337568053957946283536058990086319149512600602703974125465132959003444091626460221133096034735028316335213615654973311090588713141074579731957801394642442304404770252081456077214722409805466330255723077569922721646402318534120782187622661664940531237793820787147412413574129750200766653470532610684391996855254304604735841120324877231635119127577206183434748002100560742952908020702310629003322105480627503097121103382359621961988248479001462076165560716973048635341241771379073122544312923105725882757502396440296027071512032387207873941515790372434239712019218630148090522473459919340975076486697148265814680508777542778876568214776517791297463704328062129859987744307109308035233423177620984594191158887466672122516437982161533868868493739150710187878478230038878003982547314523894779312531727422951625266463041792258501502861464927710056439124296170755749726912089836757969186081566263917337131443076396506446191875026358707793443490405535345534780020014781550345215345645780223549899757623579435268993535036446168265044248589656885024516290870886164441624648927418903873330224275293324795940500183353990842520741290306402503153786942156987343197973759994155617700670366030107090530590596765887757780023565668496369053643528391818960836761053046893452562440479583563802237776226879203514110071508710040721280537602931187647387342821725772174278342459788954538012456224949068488586280944224091726875032251057018568772000782270930229390831037909457564451955165509691777904567967448101050557155106350109655141310161372500502999467757357396105006728662003882805661646909051464232614142362193216133027606265712236233185931826544193034213939266807706267592546808897039488316557106447363983614315769478724121724249937024424170646233632083699250609936119074848449475240303861364534035291590168665824608144621897197155155041375833021932762451856347113129473546399203877973897125420712745481579218330416902737542825667198998445376531894161306861481323476830632136270332171535677122733181282019335381606594095042919688180677590095244801815424647305785982994483550161512908068905977935351203160499588802537933811850661830071793023802629565623485854994370944378993608931255615268969845040496366389752510504014933660629325504510251151538844588383220851349035319472176419599880534443567591404814127485045275081030030882564519085959482087180850725932130310049901338510717109117646989124087322581967694056315965153992774468169796635183566086130916817147001967205042176257407708434989663494083908692315131457911711518202676428338976535684811579936422852618991229589370452315198555869145403856578005550431595498154345148919956283622874331408774977525809404443119688302108993137469714840095541804497640310967064002347784067282840848757711046213026148124814724827015843115617699138996207001658158211459449798823012959397210951583113622868299409120070000182908832615298129259157782801149222409253737015612416103305354686648499138347867695894850768604012261498205606610658623387595872003551681564600288710428568449117738209336125182550881020432122595492681322846909283375067036286827892930933894658061311125350803799574472966230803913667436789107504685670556333763730582946188868944834368413203674095949646827637987082673612990549069354632663627199235545814301538649074321777408295040365662496162072007997039348493513458328626064502201468644148692928842541210723839525409942462003775741786395843317941716985184514388122140925373561417886228607732158775499718032580774562616200765929182088011667113245999883442315658774183111175625546352389222160892513965878344717539008500532317874527193634932295290309406070768962319628240002049992450022406777540786584599522603736534102406691609396678860954022735647087835486716207603982937870861710336989096352596620247816866466056397983406201528858215850794159407716368357077529455575332765086616555576429035464352336326621486111562375732301373123505960595946686902341462318358776667896372601577485375037036949992830402795273997398023114960129471991777126103251275365298835978046360203958212031640901051654090916560524770939374233115845408967982702389195561165445306972282580024971262920185747142176185107729629752216648881068574337891659864744470418221158613302417080586558284883527868131349070309865736662274217200192049311481190714263834087711297150780841835729885701689039759968332321687893807024084227108699827598093176171690385449378798316220896212189175097474960303996853490533504527247394664778875140159259286796436013991738975022788578140861131960090886977916406802460335376162216330271930090901740483870632194971035503367003320687785742440963423713697759304188325783648008522820204836809526411367279965239498423271158147961056825490721770082651647861108895258551392466349698578623575619667085816011778859387355304226265811957726458134626016367795584082162753138922475545817600729677069694607623168764435680362967935617597029469020836460303934341090050156518038591332338649989572991540239008530707376376453923488612995481870463103855290801277519334786566758786556657442738844564799545937644499149886341075708117941038122586290822487343929378564056238931303111227703378430530275374376411441907322910612413901491975387308618524481603184617161659342145095781547314796942599005997161157977884188415734634347457168633614219246350390169991116350985321110893039687976736273271763632185712089988767755870409378409093568338183867545127179212587743270306433415751267974650116329340939851640363027386791710614161689942202687902186685926615143200114220413328860714692991715152481187343582277257781099909858394472092165314974632622632248265524060524917409634932341432551769969609879793796767121307287309774952464010342973775712319865649901785966541195479667896115120115991963628947662260971233486635558011408101086501141264057267354495262710183540042086115311626143611054916806273288369147492663903358137271599056977683343813295170095023457945587322500452282864022572675904658359594908584010557747779625120896781712961028596871526874415645822819112715347127239167829992664397301104106275447139645483066045204803553288109414042686927178349017300611228333000134659745710513909874659907298651409633767999996676890782657430505572385499296403973131975020942565523911868755425791101340822166750914833108678403848988136556781303684992550853132794589465334963058420560070407239032989787219931099742248234725463794182057014433549602036563235361277036902223887610962599262874228009758814671231523624221971804564038626199242508899407474905497755541319141918403524238620615078408871361473892055455483775694689671950742080024768027920827652959492583815606588241604083336542621324232021857166400608966236472133733129769667426983559919163949157068769647481590561489327747261078792289501498455169201835761226165538810340714416493322895656111694013921487434208285062579105428066780088410281996565609729006776033986673353919309155807163385099093411226576995176907360242167026780420953952679727261650582774507529837210779239295739834374801535193727617551009560922151864727136724143957252818444713335231222809474424888364433668895657274718810407831641156444904324898982505787299982877218272776494686248865672845118494361879732218712385164967993111881204603347605508088267514087324264004508027448429082583371315649390022177182159940870032673693083725214305444792082155160891480108154241554090490308685207978158737435437780929034207146648173488597393226556871223273655885867349238329113403064858029405296252334545224636357775605239362815309291851421216176012845568555774464820852981724772265781339279355017378981449697114775430524932917719645637791241912314028770656497053116639463502771716612559461820802877494042612124549703121688153713945566799111451160448175641664883390993017663210988805493275660871334462771320355481393162739206393864561573053348754327522657396683231155551930605136752764472259278108237885509788518303477158161292695271363598310506678435570138275480313945791776774015750495958462097868066003241607041115556911478283151082359717899800029533895333116330685577022219915671379725917360069401095171343360333121579174181338020671217185263824049233451057903530332589024487883431698432658345843243566919869166556364502745835746621349148390848801038262455844689274479488962576991059718185478885325140919960719908664554211563111198360461137410216484103447297860898212358801981455274926069516598262292670976913365046835009508475562293227917349050854780134155631032253568389304588896308577878311794214913181157934924050332085385043233591070058107272085702782582158533601475494207076850487456213588966277996830496144359080723752018275763908955987950211905510515864116271483856068267877889216123649254009412962067243902148222483139856264404841310283780962415326354333232135168533826103472163998368303638402346376373050009298477074786157250951222786117915178213574159820386900238393300308123620997188551160330734562547953454894209935903266257332173652335268633861253971027079940669945447128504894346684866105666584633794498668725190756066629286653166673645533096449998889383439178483226607856885195930647931674588670070795515181748669537327767279325346877488064608541279856661081447677426416409332531151188926982392732599958274500462900219900892211442635651363487844425633761298897907030378950333621495467105888566115655263486541645071144446365549691285365672123097798752973221815280670873070958515042911395662841450193226806368311373448611147770347990249264882042813936172609205430202990347736387159931784284973281875472626899068832602295929519061418713793538019981736197256913595223275871185169018885465627121999923734450263988985702181245051176659953875104669539636216534062567639026677522626315348500123859779486179816515678625215693873720678114085211096044909745586282358552484949677695725160808611062610857284114548467176075475307399171200093257486585809164541604102749200956043000085631514327923228966171376222861138375161247767930791520234911046863087705899621620473157653684211072689556345099093131040806067253310540019771171353109351814845725437114088375148808968599471575649110824098633613597853009872542577507038190581829333456198622148692833148281525999426690018493112498799292351820784306950174884307572164944766480764112513852177132944189537226343319582942244724875594912424890702511626578844123138747894287851639586355672790540608325310592750212546326417850466733463752278693452982699484204880616680137740159318908935151146719311087142667312801992492525029941391852566837982194491473039603934249825455593202252360575758028950971641240950598023351345195574208607439208318726272950320422787973886266895720386131984200304222689152462725662379037064815234580782263075062386772261969252741563478059857048394799580377133036658149713579546723603899909967467240852608597613643405972319771667977377856681331252348721304181704828372027122507895611329792648635882073583526131157161515291267145345795523853170520722328611427801656375415093331798613675287998619855117948526700467835961122727786175215599319012117354609559118227871478910265020241306557920912094123686618278464391423874038492381595806928656282818115463000690617436678227758163540960517415720676420425429425202635955186598565895452311834902786297888437710081044039928332406319305858533627617045826196516073706435483331068871355636008663692282821772644466762051987240855079527417742434245119519060129357827824394086901253404882362060055921443448621035161554507012464610898948920663108280413792247352912031618099192108075930790504309391627642163673950332027088693008112783477234539777495057037699125809692977953566538131712766574342919504969970921583906925812663336002270355537806397363969302097240594018143059294647269542575354800571995925024489626022001368896345351436918239253013397702068685691389910872851002678163777114967350842092536810011842459539891116346107321878171269140871819972342529533167595866973915117986627609251190261937199978370019347805277999966406412891317003161487609996911598530088658707031129155687464179992946619034410428208359668876477452146062174684145252571532708181898140110745903367024638239870167822421468002480394106632250636687569924005069506420431495362295186772839983127122415351628743264208210411260080199177137723081242366181593789505738369129594067832560515671351761624703598651030200548446670554021018745300519643587862133161378503466632223661670407359923413058953270428403776870533055458772028968141680769099190315796995140793664828236381626218894008032372549217837868069310375953049894112581344251509472945265160612808363631284210400258608660358602408031523949702354406466799509253319881478018527892461761776233796602112115438321361058368418598379289425545766660689053744024315155668450317605383868010674227189246999675566409938378557659424148600563019758441771011201930662293579340407927094661651863289056411918418975912200749789211816973630951135263396169265477633454325227787804953097312173325676855695397888805598005925864990083125140124957232905291480644793304449179043838146925619548431621430819502450652721020693024180176257155211221846730057941579726227508757964828900229012171709459078230388387256113565286605966877695379515176374792701058248552461020039763953487273667852031715610666616764900676619784525340061701551353770009755346481528979723660139746126795884651618142824658018651852596058529128329083337827775508227216007769429071348732122388612422198614992603042702673595846951256912305674437528103996328753766469773499214808554815363879429707617427525013920453240228979257079976352254075136752471809659031733984130296877252837244565308596384168299576454963264211489232604702053855479711258591785293060413840825433117794626591407105476271177445151633162908698131603868834495033891048664770257198898909297984388796468259759240087144105022647912124926753502683847684520611396311383753490684617135331311148109596481131958324717314488723356173151869616092835592793339818873442475925702471990062180749112634692970838496826560736808181956115039389421174451652833646740789425043626855180225620464645565037112103750892807172209830424703835390750585379098583225669595530460396361195868195669948635518479640570739783791796645312380548054257551955956019884784862349340306247832585631818511172391830916733513098145961853312617117601469183313862804816635241684984998579048613448838938291547736920725676602193790666675721480644919363807805229046776870626189232519995312954567593607715247043763099823282255881459270506451090038429728681224956422029545047792553664961369918572839712254903317911700014204091692641815213219337608825499463120868341046073681968435147215096703684946300661141934892661827711960527095186525350826619507772699605681763861463466565189551250315689347109008900987412079725275206001982556206652218895906783444028196770937335286657265407064665836342759147912475283948023931471976121295787590339460361573051267693226233394257634502161515837499387077171437051717680383273410029183492509938157674940581335339133864760360501346526537062448190072645097752732403602029163195715634103178411447678390146052588401072063804759545440486116686952378089939780262335989765159887924815087636931255347119295955115557452274368411898032199438692683960428858060651254854883041794789769894539125771910823326204568086418125827927741880328000319083648220998022336840691911475029007768714448720563888125836289863610066847714796266355892495755854858487288808810567354354586516996914155369997719623265825047857306324004688091800369116548441845195571542790787400270870737448826757371442212742947593935647654438405506386572975427755549334454971379982652340708727401285270555013974954457142326445518895548317030465224134460475271119833976112527694202108025313706636373766951899375038937212979785792915138115489506202175035194568868016037679951446502699924216651999709648044884997178932512385521665281577377785794690580304805737995660268944886703803447809449632781614393829835646061025893649364693333142436959393192244083808232173964501601310882570466198361811296961306624905106844200269053190331387559709645801306649203084081425347002577003181254027961502888915134802473010363807515741988337080384118922626858679587990900204178385629358064598472164357029915828432231357210398433882835798601025068258217028363356185470991829468798235051204032609308062984298914237592265539359325967003193218337725526311268535504293925797022346498158078678531943028097468186155146864120509222327861010952407016446321352421365642278098135643473425950740497881765875940669743385790435514722953563913173816055042736484877314722778250369339536880107269869614581278052637099646478690543511836389538110601178959283399305213966417991346312947769977411425056042513221870361337057544520143418509942194919453022739471299220511219489396963815504704616734376980809843429085203783958471724749151446492259142903647595520538518398511415950902563219216200144273437517363279434829319160543723512784986395844140042620562144838975528726560857700238019553665142780194635896451448781270398963719143843592867639329971998786832783488876732219893147844410348480229427277405681976490525812945376509310929609282665413760703728099601163729549123793512483400331661481387664016682303247572154016779144259052595011196830541027551138111363671919365710307273678912314782968903904723915839608746494137651559955966606716943504737203706682685180989968930053919925222933518531328927355882124882298745334597903037357709428946458059652763406433894653843301498232749273223694901048549294604517031268169264888531835439499283114895122966442198738879169737781088179905261555274370128462185005624367151685766924472787457942660401795150986409639458411466631338039898578146519943418352600327394797432479725992507611239248238959112168484863313434820218499682320273269361986365697543253697159625768741655004957505941795756165807088907191127721665178726463320781262289124172670964005837344206923535201871434753440803285972022930342339744076893437007963514777650736502901832876658907399796273681701543689168800022272480819456896441312934287240821630013859789413737780612889557281659452383930898013361998734629844128446698124423095393971747650928261417362734282832099617116004669896303795938732026111265099766025883667616251203985922428141115891588081339801338549396275780159671980098883601098569962286660172126656050130925826854678684788172884452040462935293988337470060165695690260725299804716292788664419767700085362202064533594692632508568166618367117861522886366144536335511170011160195386752047091067715903067428003391965076965138744495611352456380385590581581310856142129508819118771327665545652090043539576475483839505493168026874098972610914011293816701358427111313396841442525622596148942478218392813911482322925450727821036428587444706723993285240987013649551222554099143006075387550562313032382030213856640575564891924233434033371260925155126434381461357004380502386833965139245761421174035289754432809651864772203664508469661809494933937925027484263610645440848644269681762364649686925543929675290975750767285132363933563063820731132155219469236726192835935802680539907227760397143566192794760714162128973434973502728811897059589286366359958777341091788800228585308893147614926394615661753827526282006216118853791177512194550946577584990675791846849859012533948622303681022770347071800822840761102733484437964597629998081088223267795659599298927736572683980335185886039237845728370814417097126894844021097210669283378558335533115023584487274501388130088790034039662639459785252783740806378490244810165591445673103182699175527894705951099854523984446791854271795930144842379849842406296497013758772425820124738235315966358487312314293416253700950554266123154076120688448240112119803827525320537144993002087852390332821996187594198739047647961395953147311253991457707339989199741126949937694808015626383695237155584216309598095509848613826197550782402670292989061988133028454849463303735920201791867040327890949455835437683820706841712122364785404328634541274988164618009004983539694535611633499537178945021295005621208774065044810551936368438261243145050566241913817938959302742683946340053530716965335155060482656647089230656956272633708976306075319414003033728672835407002161198558871446975673339138680649356593135878244453720971646253770563701431420909823755567116624688142935486980877280342611673568904938296271330267828229625910427462912464605983178758070125405913956799071154847864315996247335333565390927586998435619075052353797981435840162414685017106625816053061756017482177207723733045812645942652937061029265819684592156984641391401536347465508103831897590390353363667016213707917336134741045065197270449185075100762400913268192018948976526904885097465828110557464287784168310938067498662850354958853211209015051626855974407004120036595129709061268314367506211526306747431323192005776103404085145992458818906115377657984174394484798021715018346620130953527365975348377870539480847510226437129450652580813476830834416993036045485446553560988400586786036171642704127448634708563143009017886701297355577436211454934728244282219347083855888522130472696184070111483869850344407594707345164071326518921979890443667156020960667349214956732305521819670817020605374393589422185225470292138029092103936300236834370769886855052746924216884529446935995588429421021537929728084495179043907777308439821241305434125924858257853356167307461071747009817248191249703443830980708333389652075031864592566849753202048415371953882745280400674815542724504910195295990470177303800399526636394822952374908727244862984611691923175559777436356959269298146838676852885022861824149459360794018127344536891664600800916784788418392674493997974695357223848061254338327615034780066954424340191550076759858991835010667782368239161315375119584433088481304988270128970691382092905529978653306619944695852492127501897852501813353402622284140488370824087758625541767776191469348502101556869160112478480487981960578437790851471122845057643248623281144037323164002474435907621277015315442601470654324705312754906176886190793867091011836035829577019490617979444105088969535433210631461348645358047106036347439391717193783948256437157734139722216320010441776508126756851406414712033467927124543289684524470080917609031081482813497104945004378871715834347071747004409902519141080837113704990925321002966367971209447779233946074739506329421078484089413795389449109750786907116633887765413040211289760407180491998126805290183030803319429539426119719092107206914804188076463488472446816996378809738391832026270453526322012536834209901414197612725272881113676557562726570495134996167630464641530467118574421650299090752919542207830608107617949955601605300450623975439966636072361393485916309794448299013688372981970611968240854912236942395506859038393193533741271914479272124647984453748379930917520742472512540970747363021094187906870826394837555901112448457223195275717183426057993991448236832246028159559777362377203587075441263328054649454115968162370923294968424517042406869724819500415221683839160552744801009596094187901957752831773296503663411469569264485184208879316870776124878606922115832517745070796790538610527275293981814846876935899122309262294922997146543027668968121050546910040462242016955790949840153303271287627818318595564547544557503759906531251410264224613252594001177146731277746422735090076969630267623037490197740539930171308840996391115146078459176761766712253239996838767112721461906276703622278984923967569732702514245525465028631510055677667636075142896600427291333280931700628504997661143271962992660176712530023171382244532498006941175282365949970242977173421229159815215937177029590041628876527178832816935431232319065122235915134631175314020002405629268362023339485836154575499201676411402426441836631090943792420400676240453113047751287963049618142654785439649335396155737211785032107018384875360052454327629874997918804852600563907137756093873369485736257030428761002133394810713219138484414573641473911932211048006730149966660530598768500276315929058280609408325554101463926424533372518996066241885045029794818174495525463285287339554352125686301151739021713588417892107272391877388967041168186890068908962279840249162583190619299067646104889351320831851673654819597884233353149194446672539605640425935808906830644301855462022603634752594669973906885840801752135876809106457564080564691550470677903124173361189816727837974023529306461387556645953157313162374804399623875644692625551625647215633159281887238302385868126925097033660483346220768105048078099710820300749539718850077219306784094649282470608714323833073779748471995261215337864298413042443333821928129927685112857363781721277609737345066941240628857886133960892261092672659731490774631649338038811931519393271932172063256257161432919119833340052128331987219141222698169473325451968856827291990239117862879621352731945888471528034988748286167594624971042092399174242762508486865301660097018700161413770438481906627604490798398896115640768647768752570080134419348414245586264022093109061728438249224862389698754008047846025179095640305086778523758861180392880517651740351361444707343525779078135345225760960046893623901581991787569128996465832990328757776265490248491066417889137974029234299005232794799671803889893167638080483639549821674985960308938773674143030336056443603473836512608231645920989179037757646126362187398458700253402789978569722036369874061685720361722966310260372824239111880848302505883093104024736573680133571971142700621804628018677138087713039507093279340708121257103009799110002545896354039041445130485448679423075463015970412676897502801633590209372831043225500358443292605665598437567666380238946080856123102901665180926617348769327656129240328855889577076152761473736596465518010424210769275206807702953482652364041493828927020089078244631665698535022147047976261553351944690140073723304569791609580041295237029297670966387262647202031519680614397584248151551823411528943035525086640066855668948553311608418068089674406856183747367411534804621509766586348267323150496651887375855103647492850853571077851068662822482693369439246855146851142207001616717431304468909445134836343171331567893126218983782564381402466052593912295111191544030350791937239241132056084701795053800054274450985830306614861358320460606680480471563446431689013763532362700326693636274432585185455409495836489142148231940968890356289169935359735474661499938733253735566829404197616477594074199988701451638716213754597005832555178195386004765658349805112265881847734991657459568804165489937386971665024780185010019344612683959629899009239392215412819359584267894667716404839629378828606128894530654151291295862675946677031385548579081183098897392730280269651889411953927593700977517545237743850387139658495407125567683739227257001170121293804098510605525962847436748642144381984536655247396811884757641896837368407153942481147331668819329800379215211756897049552064922472317152191440828390509235686401697016982724070527390177722966380924545582124520169147593480556721142681160211939747244823439971725390347017650508443997723443958519505976624542224720802559761004826158945819410677423289485975085509618128286482881314249203002085081725132430890450950583742425962213027574067527686552543132150813749802953599780515671107036660923870661823958541605749968946140598050346777716815278342962272201076702059454835387043636998819022361366154799777612868858426958407832792169348430282043632417113143184370938383999831822681891902539330032860626913179128221793404521209063555251993553052490826307920997741669769193331094832583316239318609824961731884877114941632784580051993956126503658839257731148639580843595376123454374048906650517717468730788981930219631606703418914446707077154068307000523731317474490516233210706029242553360120081898758334133683339492259694219784920385301018794950188558874068440143936140963923157726676650739804547919867148900387951385262358187603968572418183665838265196116151389711619263796228204797644319753177409172765797655097423869865320681862039773021265611251962338987748694810548827916816853205646642058035488057250986671342503128586131778474863397528182908367805826930136716141009339316240478750411977043142819312523624171774629297022496235519166630203092871257064360407332000404337308974963640550750572730228385669884836555272472785909932364439357626774294118914177514619238619155955246936871559080811622510636037442201363392902693806080667491432315991483315084638338089074072592473780681930063542414693408448524859395946756248723584210783993491777580585348272527999900242252423214375967856567583614053938023994194504554128805936389437290348646086240580467294550174707456129912696095359740011695451409416169155835571931542096032424702795360309750903754992570663702454744750814033579048850516796991929702689590168874446910340263442325078409715674905716957614965016173945804012591720814192534494044377617938005318101345881024032998732509910620571197411094757064329853945638945825430572997158301548989865133109762449825384019022387921863855747311314187801490405370171618327736515898110804816372093478268793719259228770652071060633185819030548044986509610715757939640206902100976312531846752729400446880600783130078390016253534672328727791533414583295054844089101791958770644196837690224001710531699327986520143034231463877683552106989217242380529030747352750829807729521081037654939044200597291124033048560746186266384603130039549522491725383512939076223292239078328013577010461428182862483074448704425524276045194844153551814938992332902380147454270608439867960147644160587218315797151249462244050123803258973103411400141567693102738190897989745554778481567965420830169733526822015073503957212052850619312108727928660656672666133377860353444894487469911427315766558508184341187833641180932479546950763846175909189690994332822334853584702454122249100418775766401308957326205931542287852379582812954159128984841333791771536232423427817132993873334352377403207025286412243604023063620036795081423353066321733852814105116371161186129031040156808165465511824202940079542712969265887937952900629860923255163024851416298569795446353756881103764754676904132488952898288855195321525690903970575875216084559687487489332181225185977645024708664907763650065902619211566910907451444453529298831363512972959474016508254178293672822355058347126284800587844826908658763324518021727261847510611867073025058888998882686802944680577007297891755844202944811866666467985275777342089693775343389663199958544845754384391976402651856470792816989156890305991015949779843788387752927090256902271445196749758430143956745062545030361615545812824801982577269661402057181654263049384710808588234460990421875510886613708245193676272026209607002474864457585950409440907670816932014169050694794130031974011411337258145793063799972820472963452481123302992697340912385091467947035169308845966240640007881924194990669108102354918252723103906507785062328865565677714716512976189386300712196864307101374616879900818573656277466784536440796094854670348137546348829273992535306067320787923360817472535545769221772967380294593922292390211705845662306980853865475700110237730712330248595017282734746959054167796389189227465916410121832531430002770681671996575835611911908661544780646407111103109196447018736465474758549767739619658629707289231414015509355560947678935800767537832971253011171722609297360669705076437777672528987065551466126613099879644936301023045502516700584727475088125311970706303673358884542423096589090237911927722849649188266912425271954959346689820973784831119527367870428537143384901530377572231741795085172581790028086453863049608193610524054749024741692880433032357357810597831270566613298539015817758587863163761477699527065333720607258971478678312139548730940813737524518209770070511730804856454379425426160665870685682056189260950284989502509858072555689158136672380100203464985138216682730008898259709592054113728888472991278249106764037561951969017614284862103899906536512214458764892906856573713363085911534500130177527018698568452041014152290989097909988995459346289378688478192499293895691901232908129088416464029042856434642385646001352185008827062047202924694289561315351080464846888165791283249779948488397106214336800637443539749978609716438070498126411879361683202600006621517452573122118793602625999956513005415156581442350290060684758605663092701681374333988235765689099840209559032277087094730547783003636346984352170873274092898261283926093652765809726531931216038321619820397857471932331973720447077232028598618061629341932139923880404853685755004339441586890766400790563377528414371980627771120401560117396563212357511219382129238775875506108330247632864921231241160233510822993908814674336702299073788711704237112733389256582321066503969251704770907594948521764470441851532505925160827534883964735589611534020641150887423918948270198164145263134265209084012477618873117607146439863332989788510994452133629371449897787967961433614233173559100104067883550350184970947066203382405251109728943604511516731070095405093612310072185349182842753627470999874953752772651559190001233394911897547130027654744135307362468576420184183562483025214095678585586718589160904648755261472048000237732550906281653202136090310989044005888899096048757842209669945024211708727809499010881672367465690157502710561946028011073545889903676431120037527820213018334741827325748794154116863661499628131210877566101840988387043097480610995400340660946093433010707209894155817886353927693309972816798553964676698994560972898207120010194300014053451385122244847691774395197164630050139172512937413450804079486886337754228103144197592572410323540761737629548023650892337971742618874521783206411079018054881586916109799246437360571956374578478319471972123565186591708864526120082569479322829421726974886582400441484550849613925989002484494864350921050367012499206765894353786878273121912929907504178338131325005133088644558985045017841182725896688329860326461553810448182226871473554496500399822500038909340679283489003634574078653572320558035833618778731707978604382176016204624690046462091556172759647915953644336408974254416901569552447618814162024746964205134571793332665102279914449286515038387330899791019436142612563961129001092470477474196000635364232323055245414405299024667230507275479852432119762348680680220638568366092121306411379249706044564682576931922993243225851725619469386372005014112178153402170230435029474467734527745193717046050329849421531920723717444692299514380745612530424340022104945315117386975967989535353769229216616913819506281238479891826339303688362671452188398760978183142241527711683286342419433981463378820998949037043910721235535522764533755779849805874320957591405668727202030136760039496722005325413293731844829905189703145820021709048881044500876325912437340310153839637308737304652010863466992142315460087234558595334476308311100487889604886282771437485481355415533573629130193387721268994081681395016298121499518044526063591949556495661093690938988810805580977813273867418544187120455164982513468631049854907620911908273822190314160013062130666603031764401445085871823305023435425107963137779650058031968083171248135365973805761604264839871541186408316350005081427884680305001508908154341995951370790981525836385764656387409088219928145983109045763064480325075466947523297015657502648028860517430277253546156081260577836477348724829134764967749331853158367913550271519250782078707739946983682503554375105418930525914907613992082732374224415859308443763589472116225969523229778916503896640414431227396514669944047057811640786143402103864204005686448071087168230095884212136108645536132344389380837819605021892682430835517367698464256605529469396512707345319395128331778274923363925488839426377359016257423726218941796428391014232416207237676766930323372106215486365962859642092940525051571666608480217679988550149053595187234401131981290193350651907451112899104454977032834676054758245123751488777543175439166307887040770321880459839077103693079945474539278955785237126095957174606358010823673418047948252017244934995226108750372530004722880274860130089340994474206137749909537828590639714571177332269927412675694017128851157542865817275931302257948207151751509913647833472942005961084615594278286560491643069850108331461063384238788985034841739145031981062938969931810237764115113441859711897899632860912013969351031028931585171613404434030535401419957239163701089271496487341045785916694792799167913640235565819707958099665223905311276419048964705684963012547248608951419378001415377166859248727525350400155915951493330885899891111764026280521479231075231102644562365268537223328313622194625166548985987420707308233030318325039701328504139503429968658855616919734733751101861209410151117142551339832781805807914362290339632866614064192158952571793215233140305978944946317878364970756555473365068279622644434878508965948332560958720759536075319168840641194512224790863145947034058575359067460517907577177329015566350272244644216728160868283794131843336302198897576190771535819926927263039784990756743969143977317917807692005778343985198648279141745063971584198135345337691269588002006520709036643073446393531222161903257095384653833704770222586048164373960682955594096814645309036014796382469138690723084490473321663019683848052679472889180717782654258919379391423441575005241033333024860820734355809073881721678461810695301748221593947761237257602799391064567312400580746045585528682522506789618169096861557283703765394117225341881446660093174801191373344972517925161903373651969670790377710285614482342718423281850195186824983454686672484488984295228712141655177607834246123487836818474919407726989652675713000305022453377931749608402779605899330803815994798948131483616581292300710705477738278690835881610540497398461767615847313820552565941502878097219263749161798396479575231699618437908158972718196520626987244350766997444503496934904742142633930624368134198915801901774032269383505989911879255644701924353898401018855844561235154766443810321924338658013905488467771599482743304608046492436983341014278473052932003502823175425486796669404699182899165874341690599762429896688672786023598096540783676813737811339345412231629481630382557651318568663922706413221632166939346994194452876024211136358098925729496015950671670204181629354057694578675901158462274310963956030720901975697621830389150146546930595458862405752342579033715085562339868502392828661563469398439238659349797959200256947130762245002278051575280812565027436040187625469454573284745630613486711389539405843718450032554732741968140599660605444857525717498070117840898831317035922942213641636542525937494718386872980339878019875325172689360566148020178381417186272295643759577077873976128673628244012571259345275816181821664028795082793111771505003588311880786564272662540143435654314753504489689071000015392312319989326549444940997797606761605029263512980034488928597599261550624536228933087377002076315403915205250817002963698597342813995164567521408876358906616644133074260705252975556110370657676919312767261425091881249775997734397695222269830389394978775599215548991471927329603819193611743966553079303507314515498629014229837300249471351591386806579612700813060058315859837339862487489641776777779730462234872873135968508952007018409435994691455474728665757452811456224954658987393986867121495027855450841314567687850205763453642891146321405849862866649624357069822792735294798464002441301254548529363856141973239060669580973206737598759992464944098590294808410176965190776532525951417105903020781271568318858546545491312101836430077894178096126765900936742550960778965056727194519194961901597548344027464197340300405180663301310312712071914197151987337749587764901100490920814818065421948780258106978087246593208284630939750418584007331430125820610610732157123439364353088314737183111570756678712240032381628149742563248799182925209827367561552299603655428298614157895765669614013259486297506773232216601106744214096196271532590698344887882904753704438170402197948429952835302444136362699325811565255794443103894540702508670084272199378481563264245519131517165458175901692155190683706837749469454388555708324881097528546186930701115573559421451037066997093644408577147746651822717561490492052076905761106107469250660930977973210951904554990789217076409204021359121075781152388666221872614474436485309881182863952900969304110416405385897883800463106865449717651370423412765306264882140359625399174965728403214871683289420657010731965224447997372193466560886660856040820873953808598656548059929673318853880343814106607574098545416573569426900617358238145444222293360052948066915517216306458850622810631106119010099933764642411549578917466557154397929622057020240113231957487527940551190768474308007870042750349162126811886980761692109943102112119368143996412139797625226031193164033957544362742308925393601170475742606815463320898140778043189294601231360170985817829551162836745496341734651106828593821834591157933791956437224101560327299542427809530761223015816758696329526473401850414904985964464594394753857706729420324182066880689664896133125059676008218498231968526987103625968951560857319381108595092356724736926024360554907299141395138861160109122729319266443221838509138340800166139259624767886635979405287826904001335405762558625909081194702677114318741539970271401889518824227210992774539298179805294135687987944888384386292906656748171759841194258559219639671456013128220942693307388685942533722563803397782483822267905472660328153798298704979988129691252957792678278822254152395547992775399387364923302926768666610157788894790655462729049944345088567166817905423929331633301250421049733653990689301562314647008240902002895168315202820190243134620017748101009714147537140590682777428152007629243397327767813692726865052511898007850628024512494595576770334759316574135122177475876676289860678522116897416554049666751891967977715323084041187569429962838389833960284436174026527765773379593079396250248431906923331235216843264844151621698212549663345155806960148421161136711141786668296752651596643018748062852795733130022352941507766195987011680118230240731677280311509167426154413545252371712004146245854849650428955850282590432656889548429321485757101198971822247157879898510367298962577203507082438184794389131568770355942662533712976346335330653774466540650589732382478015588106163788021285509823147023981569136762350660173711655428765924966126870408175925856829538052345379819628103714566795024985303399125033351733687060181413150499001711310138803790905003517334807900181795156224119457194368222761059673194867247833324905555518395983756121246983113419030179185870629560065116966239087499939853571106181241494908436332845470945128247115099646196977238459333651127817804808595546361179344866283468468274877942972612989104362779894172257766636439478605869475767283485344018586706663372895808797240419387711394715686864748771403942711486873963868477168405658836608764480864326516612305906417364715784507169396111605367313268142673272980816857833138441640308007822689475739908875579879695110628782337218637180982099917670212050166974553552137920054493062885358560881827637192014024552072657870777392824314842609074766099988904836634090271438151128695963233384744735315242999890925195564420222111407509694582259291000100232750747186195671153327526101143113665054654116404126445485668297156582550941498809741944908640753808094422126086411077912576164893565492326513614010568747201883398193601736306782582128276489815751337537269569403035304209094949012197241358617624389636318783225724828165051361718315166819153694289064754678641968194797564213308668600805023673774108396239883085493838034487051627559442518472826222581138294881036173500308989967471376196671814012952972465177304515253641191390317571401014696753529198357349820683371539604181533583962088873299698851041616697366303359580242158943000199526961440161977247054611290771112992647527184854841626259010137495645227313077048679390909045199762955439188060834160336958502124064739620613196716818608527701757247740963885344398826369183818326927218844678961535789257519720678190327150742081412991246979813735227217508582751924187264105516295479412074624754235857989493230174862543903299816204604032897658636254910464080290271672977924612336022268028358375291622808820615876753488831805660857053577114949461008885422156215458864058234620196495770820306837733965292116517644653128229985010097309491474090072680149776449066023074620649350148358152050899990782103301214990272837563904207333067646154463190503291645937814175089426977612208143049778929245591538892047553415240409040903321726861388414345017345434344759702310357123694946173115695477377261227510445597405128038248591377976039976216684835677013516468461072527595875186554674235527908064170445574111970579668011847433987105753755932824135631483344065925043157521646797110555101144983820761264198843346780981820399267212764383131484281488216823864200346109464258922048421941401187236369573543960210422384166345322352047438915288886478556794223577373778832648145822765112094207184508684073537607696231719848566023116119461733105684390757426735030827096586696683929265232102246747209220267830866247549466485116061074186949165456916496003187947098557010031470642004043953777963522452885033219708960591513844170570250532974507837107232975859031627765333092284977745016042031920540458869100585564498672535001162025496916995415630533214528109436226819115618790808732603092632724758719993986153401174238101999791990258769405299949297487128084183109046499398064003187356860291759610973727229557695488385262383289750676376202052487817114045253998790113229178576956898877449988805582742942554289333560516776617530004096708022348371048791000197405471702687069863772139015318642991428162039496528118592576680412835194969437588464325092488966808422892694066362268900472499670254817668833759168093210732813340037621413270319129413049174015615421726392128382800039586243004351100231552124801947373231051446800414801174120308120563711529381731448332005582722567961829771384709758973645424605224212065633598311006508400725793406255087154740607735885871075468745985057534892729890501132419902651789119499875865779337684791668331671480504264298424364390919496642872845782140063360978427235585992830423000675856135061095370937745659977102228277326437701250087960730531161068724717509901801763196316463286638255740093149656912736196770567124007199322937470505273071358406315613188409217641009078978878165258431974048148593062682040763530743464916953634223027289229715296304863760847737519222608084982568321604047420498697394820745201090747791886558479715023657758098519183157410851645128774375599027609150487020691709241886221344209696521068981551131092118691343205286547847731121799945756130647822800563868154504814257424324788978696197649105497668760053799815113712175834095271446953130338330407744868793334378331886997858471470418317921128905398759298374357370383920083793365063979028490353638880672801440895991823384472364859309246919447394387472398805784074842752593978504194334480408449589251644862560438987155175173315416627184509246818835845004120403185134029481105056507922475732569346969732631437181736950061644081089062239935027028115717927440887907262508774395872541109009108356077865877760312994746601810226847483225017957291799080418970828738891434424241049448350984249012432942926574873428019184958549393007603002570216587982305112465030335458566017231303761202049060273566071560929149605926594167215178764011632391547806816004142411337867680560754225285913194829028271978843678018607915038667787291872318046185799283460993863087669219387311181132297196644733507191082703137982359079639586213657460395808967959336666017363282257801228596041811918500167811441790190599680120692629864661792081459757482708605209261321501613875170172895131377806844723211549820237286675403358980210061600174728587864026275738656893814780137417805230714110873379605230468270561491258682022854597278438656660744716593466072121571578766464548634518609547450775577935977305358922666900710984461425702410276480688958945553185998348684419604580598051994610874860087735888693703246517934567536338632737695519006523180118535811140106127434181604588852477674833132278370677779378541287547157882337188522961852532773762326916186399544560212547908659724292454937112908243794844112092583397609035871725618878196065494643749160939015769912768927706228258983221805383495509798990484555547926774955847610641709641157984893253398077407375622612855101362743120244377572103098252200662934405605218923750581322017244563693963687156528930939543483705314004780394567090411265643831497328719526753451722142824357320636681849410625752853688644188704216405732632250217807342400271490231589674476438098116047401836080646186862212782633492152596413238492632067255059657089645632776721034065862719073530388753348724750610925630566123128035478944037753137049565115346644878215623411639889664309236365129637138139795851067215108594559240046655110161317723965240324255878211161332495415075590084858804418971240954965030063483560229265792637498493512939610913268856024453345798742335461543386359703689293508053083957996034593739723242592614549054287629526254980838938081450777001057044375899593986690972283745244613834432016937177695505451980395297832756431652715327412622646050623708505696114133870178604109956725596821828940612998953888767258699442369866334771760911332766927683263989837857433577295587607042968850070628302787905328081180550085541055417313571934818748566626807108559292596716422391020157792685018667788786780659544157214392089787664304114427528776538344980604776173296636157518155181292908053972277092629020139044307170097138829554536385664280614237226432346213083937463740633244798598131155242174231672263199865159075648004592998360674832500668249020256732144377239766527136922709353149821992895058752164283052115792478792555947486455936121972285649939632794848161637414728914631680632342825520976063852925697327373980042034251192845687248997067384450435229489840412301931335502400377794099992847964510716754894365726190340934816567257920539459919655173100402061776548145371422330747623906051019657647556414358414401922903301766694020560399842071087735408470453793917158911258566399385019335061700890989511396001885800512599049895600007483671352742125658144707171218842531109246440068536254401218373883342598261549121043873596860879662117106149528488318649070247376377164691260384012609678076384526221871835312100757124809011347193172558269510905659348512765253727295750408566508056407981579805532868684522626387314452489305760079476219502195664768131244778507191844131245941378682640299922908879551689988508390527577826255160301635025877624036731801500476116623462477079212614834325985188065718292614351097307994922662618422763218701312447667185875864484326514258604009799918470289343143937245951533998693061374678663957839207370436618617047870122679531402804711042253824957425374814817208434440770092672161306287833387575192013946939972455376421388923785760056718230300275565990146464116923947250335887220022503672859742832376549912541318323073052089051526525830455744953840892089789333355188782988124109337836776402539067330121812634860033084598987273018715754188100727669257751794661456210793986261022126538970076161073866010601341606812243327397883944059348462907491174986147589047868737937716730606013563436956604657901733573711200085011060269659964266855484360166509261684703657649451154448624156678529681100931030869070003949774607876721829695142554906695185882641162091015023926052418152853827952307752166951767341213560797146713562181897921526500642651719390760689827930786290644890540357846178911595961671179569196759900085371449770408677407299080916119161953923022743850259959107884791499706513091311962791155338268074288423867165125239333752606456124192540292092118938227701209040950336099040837376611339622742104805318425514061649164875770561851165814178034603492718511695734074912422265277272671174898305855760235869317481376222807298135676666850187547214827088194430008304511826398300279421771232559155948786074835840958923746276995706409817144469334452982694343776658921932596100906195487675447835347952414281768673163242438682456600948210903255589510538722472829442410582547647442413067064641737600083059708626171121714796634930901634260760372536116347811235325014489940383887783586459654081254751676483849214925866313817184894961464283858410657706289688210420370056933477687542001435120094411877646833679447177316508181364787375550128511905869082552468373893278101630353512561755808667656256016407659714012235302443768185959171498218059512573445377535260776126770738969679850646021696480810177242191308340388100428682369056962426589121881549440818958314767706308933777730649011220198883097812422467196965707989557313664302066240595533714541092891445590445499443972894635000816652837868657146431417564301893847946134564314673567128377999765184351455051434785940623002372936948662764436610916595468379695075145795183661414689863834760402562340816229595946077118438705240308925482506352873062831639211947984194472436440977795189482577779814921441884136060276184173574649833202910127514712181869479473750450520367518992078906365775174814613779785923705403198290828440649115790974027646631942202634419375850848171057376757937808957697608192479971689058181321906308171825604494824751786939836328221223497735086547966295407772123109700973009769437699736810409733134091998323581014568071330084021097952127554595040852018901739526106673815974080781894670490838865360766294249288054647395071817439788796013890984493927285886842837185156026449867447846299801657821871413441614088120594184786278883059904663249714416412895522659376367624097427713603155331632237760186310673060044806387637404379042710604025991116119334313928694620345050957577792681992675524184741423060388640157070265654785838585675211208855707513909334002521816112375834190552023144794028313844870254221115277418103725652080295517389224760888767616042181180250721018745702873706959649089868571595514394309754651339647668558798494269646027198637221989234297944746290974685707512855330462755226126262559590967917548506701681936763796780945803002415784018490122954369960958203119394556707981216645194787581684278281799264285216691990186771628179942813394280782707117662409531226525857778382036348609256333510162500760518703381046480539608347399944494124866991799863122035746545205650861651605575452368441216157300620895987282917196980456950195050355904482215116726602379731611677680969393770375943649259239614725137016276022548520127764321444129548291030519105910363812038336041248340359210676127558125575757903897202234584189242026372710649094360917989678197336051016171191998732055988268620683493111367198865265997378081673582109545127705621883078870633903171179749471197026643915574038308550248077282223851654158969028991133941178179797299833740676024801352868723762024112730332612626913262344703482475140225243205682870172324004231876357477248481427259300098106690204421500280802612847387651614419222496676694218719889493608328665600470563427692179279347322817007179887338587885662038728915419359045491113336824094547604794400485092013384953648062097675903407707522872762951449025317247398354953624506124104795549569633725996291288351881187160556094835969723403188108055377028378327244707621820809070285133707841616421974871664750157018098226999779760714299992629344207436537151923228360622031403725561835923344618500011331323460398452088015470494875721524768360907513285345537342542658957739626671401852596517291032780713958868527801294193358924918836830679683848758953221561169620881976856785508946693324294214096862594660427511458262889499287839078656254258110844727781481639135984287586994157853397392237387461375817176281096097847459608452676755260022242521568807045748660708051688603277647497426790789353205247208074046238351093333739168037591285250313895564801788836634936897792371991963231037330920683160063399050454657438950858266425401541868503747286413274188508281952663325859398049002836166442538744880214072260212095555124749204223432828038300123614067321323451741719898799502376249915067685267156853447094521499350235980978038388914697313017910926705765500947935121775336245852501194696318039836481139034009473962893837314070313050607015541406624153912725588604086805730558551190752056122442696502125633663507715425584256118295491402675716659979520131269633094517563531699356968330000848223019747433814303856760282608470750185823539376472290713664797328030274740582123090579238170469768071686326665544019495664730663505424165130343732588641460891471939430465597182166464251667880333528101676934642633077251994286038140306170895838894934818877351463308279938067828988604039904935243235242484760926155897087445794291678472059959425661732862647974510925381845561879582185159967613150865994018470831201261135252547915044933172179190531666446267993446321560813568651354561337622231369524287157924335317217142974602692657260747849262057421041373531599448947550417574304601479239523094428411036078321612270269242080057922559096789115531175523849107222175773369588238209742860178396209578940580029287745384945560355183969880175313473329986583554869068354134436053797915771806240523209749221227340238154486604297635234859672264608058819268488638447599386938024300978050985047247750904633631456118672238231115409512984121181116756782137794835771755697983311453125000933781574081545487150179648192478427592088651031719362888384426848420900108176162184446385044326420646735580375868602384632748037966848548068986596198538642304184327935818706972806845603047783644709389841196293843517904182593091260853689786839916942987892935848317063493849979301965351657122616041311415295700275391321891665668772909743998799699827278469769144967037002176015022878057913192229774889627777491005699661834759652910478563137418858270804958294033844374881272122993347509548585267985360744297883229250878525511491511761379107254094521472553715305893283618943429141667226943630563029643080660272511516418810558623870218384199202289171829322207275026188413110400603847420229723711208402402173336219763049057942284325515924387237696202060030695782173527301330926861503336235496932696727517228760847884813537702672803421237400488091500207282124068177767436471286512809962823282576412777739889753385477516668400461291582674265784715306531169483425428964340152186426038808663268595199092664237086277570043059003528929582729572918889863926070069104510424785435624003065640565138393802954595543383638360134704283298828306700253497033040836127465614794699103098867066104759582111368994803547417139343841686951880123011253844991022782220487098599743450215232527345495297901247838388324831813091998848977838816634564752042406565172323982346747593844400118945945136505745008581769433806063351462163633312005117772861149827827751508324590744773021049866067041553219122931103093319219394582847853330683330618977010057613554731906527345558180627477662553905670217853675441451631830339460420035521874749011106453181192025089917118405892079912351849362169525320665526990558942287287635267061197173997971791569153679023864842348607100692735295505432594962150582003841671480894003407005776469804403230401029156170254395993899511818516817630590472630082730217607924842267765259432259758895845698434933181396058417456409709774792326492158533289360399092995743417288978019163984255511610336653934634390039227051807940019706782508987231191243689102349125930282879143148394688478993604993043162518677269624756433645072649838915534868832597134610404254706598072778041935054110857103410126226309551678015228574251339438315654243555000080622310007030202859303705067061738928167262620145957109651745973633432870922914237429078438016504105148666381862211007898621218455301890849662395656114033476696488701684286635639699154955519419794406047067428790290780362323552661521057211139934173053595885803617772030798942403529478613337588564602036716358426989890032339082965296531448971812286457855422920125957264485900553580147334109972078562650538876881582646075766973114745328693112035667128372355475102350762624530959392264106216514731517935646390118068005375192402177306724090673231986938070546358057824119127397633582763648290512637184503078487373348008938949423074895271438533947843060223809263446008213371061983722278075079385440803404478485259666285617478284868046205176039385694622857121776841916774673848594695312186415698937028940053587750057807265316837964045931235897318769414836997791039956950344881254608057650755983924748084274454682240876411687719996972136581200574260782844672298522548291572757057058285046761473439810625131478127897420074038867180978461062574520935597815327945288011857915285316098150720971252542194450570790886109309910759664079808297693354504980415667661508412752714949165942137029592111448067341013426809010096067086669276659277073260143580707592090945818385656630864122370443763997234228719215476556936168751143617632199458724859527922705970980797519112628268267889563805727843659438859758150936781389494718336291096620948478270796056722036853740448458215143366664419501283216506808041403733301093511020438456517496245057714492975321181390722872541507235148727842197605758701773514537929178605919101283844188288844673776892075375464712843610498770351257961395298900464112589545853805709309823769321446755747995065621407021181006621009621989719949570931812724068775787782022890288157335959432757186308005342281605660070420438488733665385248028366353876857650769663907627684384476920626991234350939882372379990987390689014615975941306998491749511127330323392643348514762413106754023117734561676500147620924338229312766244115260615519457602540755602751249313375886885667799516179219288541583465791883025236466608303765820167138480212694467905031798135651730730640459240454613952610796896211268807984688554655628421002168856385399298063169421540776608228991317611732658312617850816675065909423535413466409790308582729039141962235409703477157595280237667713148149800181686454071998421199566856610718194856588596302264713270482926785940862881684669280671613042225643485903281518211380075579206671213015391659706642543656452281946091291564095394708212535095315807699113008111770445063761765270322638067418372616495211290163931529092666082229321877544426528363338897183909782808218478712353399076231138039850850955313252472518610577199792969161634822100722830563356455114427764039668348499732730811202480039022551610915608635035071588877890082122975678048262667882237460367611919213389363905469590829998686458513865407753303738305039994749824161021970399873840036361843932569861742414319065711439710109698391073546687490176385878714219326456496905794849102955600573362158104705137352586321241790307291935502012383500296491366691404527535227850737001690825590535197077856126899231392993745378210980864495773107709133286194352242489544383423003937447851581233277560612004657984504686610345835557513556249443918346162646767223137462968043987886794772366939911330703664359473992737492410259015378234463675841833358711805785660700752393475580122245482822974995565363396331852519060917974533672377273529230073392294302879963172548223980220350369679164422914873846199901319354022340526233041905312354693801501243225184799931342388558445411224331422017069747392624567452659134907771450179907967336233846890723735464854024265880108704712825000427089495155071805513111152565411107045610348574162348990222141816752651786105927429705513058433755821323674788653475249606142566918811338086124057361326275005479195471618708839583914677464754479544448412155284825484183802122539090611493052339242347191266889123542154933415446452474669029416772190556531846062740836418697435037837601707023154225797650842963843922081738704489296057710465670557128442230109164247930682066550808889385192635495090950319355278523751765099790520432795310328694388256775608212650057487514476749238854382281877543792749655355021661875571988778585174718882774256351066302486589548262097532362370078155419294122580543654007903632230283265072344847545616557708102568891402290198139248437863126110475979352533464076549263207340016356755368892399625078344641036737272855110934862503761416722629952876447607845339537603138676386101875981037742829070244350277504836126989284176370320588719724702980812413941496955620720224266682831031635731144464203753904081867689487230744620624944230494015335470315930844882769699895451418351362731413962641801797687658577102861688301703619224172809135632781951598176481683820140805556825876756908893666045047705755349634774163656506986451296807725620478013020746120234950681564786090587574173629872693150119295969600627485442473472142314000818250488709411218272197834870030851879095986959557486005864343909371995842184981631531986741417367645758736986898883565040833058774235119807255475613470010877113677694007917387165808465696344334950043853705134555853692390864120929238660681362252110334325605210560968685769289720897784865238364459467925734055452867655704896602126621737133605377075699934008654586341439031047770282157364823528636586233225564956793788347377889575823140049134889241341562250142249207736867050588333596151056652430167313262131828991207879847349870080556816652194132213419879056346237843609937453439958387004976711854209709681352358336424194895843783194897319257729755930827552558192420780635118572379061860260186418397320828898239648454069445509223593166233770372133009402820605377742024790447926203880370899079916837836337725910229800663270590440687033219597975533949948882993530289614998346800326970382105085676018467773593456120342613205899074603970679421154276632820408218241521920136055775079309885047738878601888273729550493245311524438443405255220687217309652500009953051926582343330089187973926588174088801190410861305056376999312900939429560152314114025371767089096912421886238774592045230440495594472178139228194401105678690712341921909377605781183545398530239443020660533940919199674986510553468962057770839363469318574348415720048034630406229267360210115255067068749325786234373012584525172473407405162522283790968041366135193039203418189463987261245078210968562400772965866067270041774067113068725576543844097568541300224388953571610501910976212679868232928051959893963818676181690022571081944832025417536771951908930359567493991877688893009219793870014642910787560480568928410212885126639908399915802462898470833321097451874602067296341011274694952814422729560458209881036160283556143814901837182656890937801139409701617109306004167956299951807421015684601629884013753877000846774988703117856488568369717873596646034970717244415518505618687266274618918365106182696370794925897456216550342088644970688910700768507544894624240251760735411524375199433547594873838765121590864503582680390076837794239431043044894565718961392571676731147526201454451388544139248424612586982286621887705658948129244369721562657456734434590721829151793260950475487439692373281442289148508165114936923510209654754953852322021587475980782952094176325725951765130390143546111522583698350524437692407921472928307794074812633501767583373859617158228925662879270514513636601082141893680627847451571534620961899659608928065174648842178777055103879512494341072983779197381054426147571780182265125752162735395687798332859296864615636207327154171100130236655022651270112694070964596439581682776959990847403149897590518283062407094881412603911530511805619386552997687057172128128149975367393285600413922909019276414592525218839155824034070863899256594462743457827054615271581102179932688942158630790379506437703168910600087601488028768751433595870310150704215333970485294867228777034091152660929845542723750568533498642824110186291446118434281651364150227640895560224974009574697664879069908379097865683337941254392631927866472849402393471100239129328566643364583643419767341221080222943796136158026893801790574334071986959066953617036245332168998432428699448729689176549331563278185089903992529192162349433063312640013732140887826754743583498149514283132847573452768241007740307639456675655638589996183079339065391605381090309626251104652114857208700951437519528987570669395548745000354473853530598862954695927955016963900829690502660853999301793062811465262908846297372056409243867070608778411718859245567846001936286887671378826968961737970788189347920820592113688477458599281973131210322460670204085527205109842425729092066038012329893657108655651875435255816914254597143768624903384668090353041738556952951270263773929578849544611523428468174852033066036287373347469721911688200167426118016337628217500174151564784193606288300899652072911645628304988129618682255410936706266886458018205151264157970172064239195095190581213107910571493085174015520555458627592267602211203194231911450842174335731106203688397678547539245281681252952959335785528800374383348345692299998117893322748297029931615478867772603288635013081836466600060671851260677895567048565391568797222788662119898126351289248109708451946553751875982541270343734305132687206730514343215381137560601833411964130052522668696731449562860252379151255731456673755804531075658401729860748544041836313802566370626785032016988573139957682923594094104239357052831797491975308024718287636048406528555124099291326609567606929032291730503525610605663832375578908054075949939234124830776701723296424368977978513363023551400315481724762807330105812701369082571062251512990197496308863148091920638660614222013663721738727164699366124136441079987232743538775128616055197729542568512598873247386202986948447693439561353486549037304506512330765469903118400223801267620360758824934943190327476792569204123860501344270246210333370112740840675179110641748707023756711462631279198030699415928215413928434793721230460515269668382505805880094631029066811824113743545681854376107432498248308501148069638511682508537553544033957946512505877241891018716757293657442564245473230979949002123268841140256502333006195564120705448012384184921585724661887716873697215163099786842667229183926934423445842958201585369857429825378053420196079723169560526476041082982750233983965039352279788004315275757417687236203512467759435521142786448998678634033635975814613865611183855916215171882176211709378627477931520833441632544570979870332269847347484166139257447886197051169392925805753908525236585366238123173851410887529119699715108584008490329185227211428186562687791117924640198116548715860652234354577747888928023314748384557267536456599385770446490328514156001791468512554403612884292046707831494487679573430198825183313524185166504235203212769417590540600116589868713937576923924206333694943807301643782920963026851088673054841485618403025062568467478870417831350158307904904376939916474167485940620614386634490303864090052078375397352017014594793247212704934392329812176659382890507431558030143363174778665399767357134861820858452843689181334475151616577444288946527210387592468398451125375968293044190942182378589648427509870230920058381744238260309808441831374729717482842109672376317079241302982903645118568128121109073361913495806340128299465614511253562301652673329843663153371622949478151512229265365427095378726042370345755469940974221138597336525043939967706034661914347790402445277364790897769990223440823244887397391116743455523442970321613081882930448095791862925410771644633061981640114545320324409364600361917777203745981692823986015242861305111367336325490751219752782889310475146105646239812625638810361941800467288158662537848418818378018409318389664533446728148999910066177669317735326777308680925047429130697800392087937417983031298302072821365212969909944933759481273653469876600418917437651998987991476262776135291474564069640214832288020249131774538352676060320953508830832940254454533678230210398529323189982560169259593617434051097920602861514705124940280824113361130920115986488165711873691213940632025648071654312388493550430395658256601791619020358463408166925521557322516091088750759695491881846037754243068751393499908325757005026673284031678463389840591048920990663786022829764249266751576428793514344621672756826672531156944711246773128217622477402693298501632355889262940823801660276924906489419092235299452095246248195174020185120987155384333925742218609847374333571615914442455148257457058403239404121173475212984861479278431722365281385434337738515762911036015459759385132646119026220795439758101092244495916903010036310543993554971209427874726195370862876451195914824630669600976036697645399173636694439533549217833417824229312036471691763443217480100558884324171161407614692671910872957899832603678681857914866428755991115763304628395791792598479460526417627712379413591140613681369781328731589435411050684444926686510794126644516760099357177371322676038942671575864886350470368528046639025620838007510328590250676518467222926560875542529166609785388172941098113149926138327882830723597137079169292512769597938097060415521281771104048684391470690714942599250273557596728952068184180808386390470835521031198997196013760164995243058202826498399617769344742823920327524330495652772688666923286093217802678369005285727338078591970702022298428011371999922169346396587763765887271172974349481146293406758007236103624574045309107621000450184263295750993513385874281380710556463412337627522371728121782661425996665958324845813321175508634635802314738709254915310589188743630761147073394343584933312500957751061032597148972422035641677697322529080059542166723015311597672500634066196642320913873341207220285979994818649186213691960823312718285030517748815964637153419080047869758353897552292132994190991362267972522567470447831152469916337713065253868113937654447779877517949318854305223780828274814815152502510700077338698554858341715070132884718594468759740123861082591635304524702370684732498885962978613612600746431298145761592118057638984260103704231806008442446258518945974436086264839136931236968287149235046970464195975784675131137687833127063634798754970654395344839793243164827569950813538805978555220571560179830978029734756782395137196058963235057325723260993982535691409031207012931764682582236746462603171331349330566532556506403557046268058717344640768444375498296473748502390257410613561824294094435111930584891091841192291231738575133668060151486690645087014042361998648171219970321213231972634949102837085729969374841048714496651011013177113320317358942768559700577348476838850138794072021909914101700835121210417549435423359632900304009160887422276897640374228579204453560615912603407500186027500490501791345212696597498967883514445375571149200502262679276766038443653813372361423636495550535582698009795312650895820216863267554866670904465561558486578961186310858935775649172662612468433232207082262138619770613771375158034964700579727649158510901025628933912010320640390597097889832377831920812189326373892298945654171481457212238158905727926496681921035123292121055196510421181152679399223811685172223435058689725886900792988106644925562434951137246822792075097956805437592927725603858000098368928772418972292382634028592871254219782081973810293292633391191051636108070430663666481223096523469561138782999030234136497497770647515921634045228399612617130608212798527561862343911626578733226808127577100252110328584708127225664459565074711981068670706722034711002094080217858960447785161849506220893472623171856863836820610625502172576360718500274658709729223270380923785975406989376169087414735167947164730856338319609791206009223914010353994384330232020473222831181119689763563772891488916719406279905917898730468948501540906457553861563660026314240835866699355290424381352673632900098083083688864955979266368040035927125135929384666419239094254642145290465592693974010887816229571420950580575664688835015077911324972532860992200968853304204586002768580919129184310495820082152392449006785626811659781208058262458827406535124142480394445085820272498572505185639021631891135670318887097895833907375490825327206153932021868024318238095477115349972240098394635995338189167711716041354083438610817379968208385602493672845634100564653036314819641253210860022974095915325661011486786074306047157135918259428004782133413077459308799631317202512307964201439325874864736597318225279693588319493288771669530132128733736626227407237528437166310438288936281213620478836612641090026473628824469580987185261989583219596793421103324464181016356944417864588585142756385320013201691009724930397925613484984367641469396202347595182223332277529701475026776879044591212567250885310285184015225890203300989449872311579706463084753860923207466948782744111470232381639831527947356972096521251823686847442612015575808776332532414204774866096124753834770943589806158012850996029117067259450509274582550551732415307702223613542897418182182768709982101954289598025529899459198022427609741904755476961053044564215785299897703500633390823581606063230963171618448522567473480078240008818596642573729345458575691615886295156854565843165122351789693251776155214679240138941744815072452687477968598503559875801373282674186206983320759035872883488031242875532816371288003205286093563524154348736274728764371165518971230022358389270302720891982856335982605905242430072797744785026806628559008564358295122057385366978554369102600823304121144047612105840335946951011245591733116642453502444433255320943103076865388701975222399084807669514877567763967342157256339999915920039475685456273385084083165968879733084982006052325266736494035969590451840199196634311770441601218116024650318214822064851765155499621335487469620881526330126668047949253617964101902131513043109283316074166616842871413271780951461578066171458296956501602345724395015076413224963587449458416113976779325436771493021206755934916490999499813841341222154395437144629701926212844872547855285891589130480054059565803594567045025072918742759251081270896592176334438987853041606193205044957841127102418771650974083968324898925955934780791234762446703115595663692937091373284541583119779680781478282673513815827267189130455382673707503289310115364267163564715012446031071045660838243030581649963536004338089023942841776728600305780690813238960584319702237559030909756688662911681681379205319890734038204757160117896811253678056785576985885383613657380183328899571417927717576773866054618039952443954458231490248217124380424938606289237873210711729823763015128328850209464609660198627949775970733405311096817789421202639366677879179967230204870992459011249715841570724096843403247168767655441482576418505368671277501988360737224306083888497679907143328147904269063626565576537278398474565005658582860399604767532050472435788346218151916253679430396415496423817185177083204970199002396050527008432067809373464986159564543485240123455833114724004667275100601201560849897949903835952714405105498518780460798971104798426302810179335835398737606567013112314158368054803208544959517163005628845695184077252466372774934861684301365585707894181533488346955671362013670372465781716472357551915040294620931358937626573825565950731561989717575614098712379291002813090133527266583691814515668673630083186055489774244606317655411309865933972216407650726485877165452952322094601194144267071898208363051786473579139249370751415748226423632686440349225348187380994115368692820849309314874081640992563657200025819085121311151000677994425947460821462797265676794244668763228114544142187217194531965018550232811747522418277459902552874447379500785952608368448228687061247391837841641557444716965561564355767314791533634461052907502973619071654217562908341039499267495060467385950655326700842926013720449721242742915878575277774131197095756091882662118883011021336698031678742598110243802929307797021987042027715949652848967933532461202076920412346855056940878592984050748931821104410899633121631597129080857957065495881892005743754739193449147617175942192228325067113927055337140484540111697643492357759576913177474045344499119854833590767734469164566370333781139886654812556953280314654736521689483764983466979862710142399269903722227460149113532577522465739697218860937526253883564976837647501578482076582623097961228577375887435333610691201097952884149831559412017122480841100562311310901916022093277074206418996703188322916877992983809559350353003553241957400173829909912317114637472290474318877295113918479379026792521625369106649281561508605250782890905397187887335380200054905563699165294580379265637574839824668654287567019227608427537158973808734059052483371405357990322247574154563781569436847670684646638347036774419411445311351478307800320394801569087734920699758247957526403658573270182000545685905531457912403954020195642211184074422671753834076467444721702077822551426898495821506166294884796201960105543615754079351904343744749218412847718883478646643559625502912501380457956480487245458311734268603958466544524048471049305211480668710268053484376321495907867345637855967330417881979043950825989015388521773828961513527059730152148780120970000625397045421868718397621825520056199073974814247919389462597611250977709610440163653050403596905750475557085422506384394560815339053305013396634175056871985714873655818281819750590493465971584088253611034167508507168995168016954502725464705629074318478575833090062092428038851433566996592585648936754696395595729232116333380641703787123926370426694616331224170220928589040676464354482712709498330630772604033613659317301876983947526439868868916998945462646900928849058728972157544231991812329503450804955749269815850370176956781762959075691307810283095125146658163619872436837050240948452646841828263029666115307124109220454265146001171347447504606989782034599861738521026108962340885538774829973874116684922382207446355772186397747571998995895999822797399104695059894451692267171399273207433233047029110089601433301046609898173206730761969826948580389565282508787081355555308864842672103353290497180846949839970894380686741539062962713467991683280468193560292360323002024684636995793206153509171087722229317158612511800004165957742371219212561312885522289929022859156855437856461598618324088139185828591760572060595158444159533298247456806360944808477540910369630024230855708879121042450073715391558487778657398251261122861800814054966317482202315504839532350306539025075522377730483340395767182180670442491299143775842157613368308551884680969297604089789128325036077432384562382500833481913764559351079380538694396227887698341314381966966311428820558081832157765296892208789456921311432773934407159649276385619306328992196712476167910926222138609224030896169122538807477496108935897172109371349243089808664584670843184239334808455733439555073091991330852916847741507911715851369066121455391746924993508326368281239890299466617935881101289055093323643897511149853967316904300844927064620290066324887244899677575392220435689737030192254055145773642273017890498077145352145066085002175109829298111791990172265064073277114502995698224228075992488542711861096952068954377875994288898836595648174538751797730816327443392241148130866148952838124130483130764867944937880241370681595445526448429450054327898245581488925334242111494805882519889237958465684509976677070430836180684623701866498081986715620369311413965103790423570619139763073680207506460197110136574871899014457747134468500090223488077901634889448972401871398924902110930611815224557600380640720868808865981698286289586066913715124181820336259145750337945004977306198196422092247043329823630439986722069641906162324580040262152182924787627294649979473696349422864867053563308451565109606600671308821466326881261857405572294085133888040125814643395362017906466001628902628687612049538490149920714590768718171521930843022291325836023730317711920658832579581299614411006667015178183618999059457635789311377209750343424818612340716253956214463555079839653593439080129841198046112635939556212480666936993292946335883734634158274292099817990184522262391805334371909048181834303779205716706519005467908120455097910131722096814511582775419025546323644607529251506823289269130254284860290250764447902634042851331065140306731422057016087741752959778259058921628126378482280547196331327852977889838637491054674001231179658761202970744335808472044878835828056755341497591029666200721616021904873516088874188119228669133863706049261242225444313064788031060777022886710322398501400801366194799536363062127017391930679320562594492739407604826720186776559081338015231231014933883475319971216889610130874025437535615977226105472900822294937651220081475502615910997847231625802174409968143792917022711146122582476982103140858258144830655446727041510036919623278519685347414404907053925272154564158418096653765726561916012800690640365279324726054610041753611835364271155493080545282697891610806066202197577436700614664769156964694629373693396664864036033997926795715850498604036833338131916399907589903538097819352274006153686075330778255657726853859526720367462131625036656690404087008850035208786236541199764426361422952113404874633522008235786857526312239131871502508217754784738641542942729831470877168653936826733877455260648327976486999975173385064706705584676880788436756137031461670289802850380277324559191007458010116746801112584067055740904171302632642251481805802510149867569247133636328880394372575718452974043493702095401981357960304655269953537374269091304376122204965934654034708871627714112145304848734498723639210104305324012935697169626452615942790882954917127495140724619160056699485798393561816412614677993503828077447710079300893722670791830146951841411429204289574151480712819526499755113992813330539731783838182585999348254249919250673714880511715933001103878358805334272547411944488914317716021174382976896581110525249981076097185519334306841614351073001216227307082901631777293196551452120936941934031896638465182227473563286866700779980495896154099556966000872209270158533976073039456766850679462415556079505880797121511036915112359765427568514599211767629871576411349986530177243133723197011977647631821193370047122250521386950888500006593802093733117259347602848891900961133852344940490226685008173082066200336917601092375529944181043885255268052442013972662766119318258223797802574879750842236047386089151958051900809462043651353998760540269845571957608617681822497359519452423500553236902166227347494194189695646511808827915766242374187588803794080534298154782813429703690861727311454764447356633581338722790148845407589780614722570113342986581500558488748923093041357270569405404280763267665746728839055031714662954578717869704743884354665283509194550644400981608068149940385002692090835868505182716956209279803591782391748588904438930420143413598731492818370726312599074772090880586213681322266842768870359156407408725215640514848035783156725731480263256379095984411107511286868997573041161585836480026066855516678137214523187303001432955503513581513580085673741380441546169776371231464240056837035333746282704499576792366382148134876773560476909133664960697147319887955285887164925667602628518482972542466034617982114032064911608989328498388518422354270655402415664253870985847260531339030787365386894534527889510136251525221147608635623279427095411945755509425045227378040048121140314557997276011265091422680462961486361848210380322811591631862945557816471947369147244863269205912921825595594657753708211616709035762973354839373328023922935377828745360287892074546037638010107476011263607902205082016350629489256344583121901951527798927358596653368899405968343472762047299831308630701152388700566195626655004049453599624770096973485723932026903196486234605433945373263578955084837137028583125487066296964853787732442193678125818131296045148796608086328444132752801125798416810315764108277392003364433575825405787081494262419389262552132138704312833552958582405699375186637865429266510353207964876088917201613547693343249258253539132442156474437251619935262782978705530399503674900643130656313645422725239467917741939589597261004284097589134291647386586050116749211636124112391669542201463122678436042399202792800160087483215697284938960987382041758791619374141546474086821833211388934922775492155802540651323792108507342869735284269868538958148714850094544196964252004282545468297433822645928007645839838959084059241157544954952568585910707875234961994907301343289974635635441158901752890597318980358579896686217891060812076278523433981242623080890068017321836227405925103959684031609397863898296181900500324882540103710990225670774821093193337710807374622327618620835840208501686853934142138571792361154628079816972091367858188929220702962800868971676973924973139714587696262662409897359939163962734693118749894351787781082725575229416949762383331139130320745691938711339725847183489574638702205445134390036713470302351801381662134451603275464313417397288024207639160946944412340908448750162633917040184500389967636662746699537507372972974110213603312937709369251313912367565873978461311756453176938870355889051549463403490665659346148572405638360455832411593542002198991139267536846154306221926486196961323357207579373776264991288800952888972906116339656736269535934981842923197010111831381624064853744565058136004659354974988589845364124587349325662069956317311287588476294631878734326209615331335638827826191624067681568552118954118524154153949137424304562581398835646736524562764582699272217170678586437924335935342186229923169107337540743953800179334377609078935829830706856570300209724468205568231882911791612474824282291411508234862039344780312139973003507035926779415239540525764382952366243499539555635601096376935702072597311313818154228426672564635352553030107819670997005040648322152261938338376916041053446529738701897469868148661070676047916501241826856909495635475032727209266342578319034556492991505390269306779763921975191358194262784580746388961292350684651836947250750731155919650195400981125263194409682000142665582302181904189623904084981968319014944674487519556665856934563795866674476561144467776500243955111584827999899089985121633843186736376310218955522915349568448287117968748868060964896573118801778569718514392426687596093883216145000268307850076834596601118439443669627333845430622955769386112865702552605913238268538127708162753084355204320022091369097181620553333180597128695753212501535412486366900828981742648028774630302337628521646808858436228983143241393591805350514039223254863716555290728968969332779213046125753064604579359802409782503988749426574482052768231377140241896680215929725880840005917582304995741642209585351100422068735420391730830773238656514087323011021825607023844002753687715819024418493270203169757762082840779611510054491220010169489360678525370709899323639151590358876362900191434016175069699656589943836213172402405024840296369864543399596120014550613546906002830532626004120375163577327615376409493591658303678204467580848186086400901507797078995403864106290586214350263407038573198674126470325601467712671877447825359710842393894262865328231539596754458451201384870454862116632060133119953374414142820602644454457005479353723953128670481962455160482601352148144476668889167467991609223386219218466505665576696622224346226963751045717866460790766867071855724132191407521194083333345008761395733355036138992958737706929576324082256422356605345207967093172304748805436470992766605056321607410906517815708296414805995141309370351211000148621739448406736373781176381588579402007671581315404858101075524646622992564466181042726094231781277650358630780198478353200789712870349257722171838468125729515153656030233272274760772379704399593259749969430089054929036083629055188971425567948921663781247018510668520804677864726424173524580688796932141212680513245394375025198512267505500336373129451289791042366167218199168714913145220178610072930896370354674134419609443931970687984831486030763821064704994889294814422032485881682635218295179341725706666445103050938244040074280936269912018157842613438276055496092878185813621005074451453050278709780301881575991743281929229557705540951215575760712464499306307710731753762292854580119181146517943364064564054757107552456918695353208483475165000498322174507038421082522177628878663463103769248820936904347013911203039368457472617538042426410650645909808008757495435660594737435124454551166610676912246740780330062059816258351030105602167858115247666219556474992697060288117790549090794166232319825060012895141027054826507456327765346836271324837352148823929331577651728639328262018343234876936224809849585395177803291372576742095713496906034079693263349003162249924036934190417945153841173278791098470755240336760878905176551207995669398753385568855689717395540539704046616920113282247025005261300456384421375261244497994581860995053671367604743823198514196606699093948370505240283252348849822337601049601692554042777324549538404029522169318395557644039642036683608313295013871130401480314244476202697084224409098555244444420171994821852453401836763001434913308682687375469551872468921253515282947721436959989584638627687077799218342873534347350752980202595531154671344132732898302908977194472301363239442801199980717083397288042064195457633372728821499499815840954535794339249644617136733352876266593827957477149077200315068617949921203131159420552223248323352906581824918619177599422417477922225799175362540192371284285304486101494935108975954269718765626307397649562234751348335092460345993559031210493513854040598437474467976887524583242735219428176855145385276345684554948088272779468914721683801799599821188042676609863776150589785702224920688905003270916369294495705245433930136657457626061578601003225992951526824611855580310660446738647709878143739713414580657818522659649586863668195887514071525997681116919420105843708623479202823039071391247290428583432735760943454286778051064330163399029059705537281044951985514957548778680095264742143591604639186033955995108476738936366018192060950864676426823093094753424716302556273891209088096999170846104231479244517793215316858613732578245949643966128743665613211336026342519410905020147117738796006647501408155380871560330066199972910799445582020464490096495904260166632068156988825673337125947887339358585812366563232866710422371022926021913387976978641523726324119492225276993122826065607480978278811054026772431319693111062016118550630542825174768827752341355489809954014260239148342315337907199832573318874852052321125215744304486926089619203194415615061911768622466331147109292069479478354590516556261026711049524080536802962957562793217496844096901675207337735111294127236110420439089712514951001973803474125169043563237945577538424251320325476099235243697841262101899991066934280474919254152133138114627733402092972385729829097120079836352240016252751807473278104960671514976561615372415943875754023816051829400656249219175707307698715236074334586135382133805865508177394263654443309339111121787897322964043741791608399465082626229962155693074683862591871533050984780441860307412852277174752281394326641770431562658624165416490149956765580247975859547421501117518435783065500498142003502682604515392312080129244059558761826344209444314811709187993377976028473160213848208155573244546259842170730232032481783736197054334490367033062399651925379182997924923151214616684005415566249869148030816580388795580167476112522896752549680008088286989143824574207789910244515534958379361360541135880371532250606860377384668896450791788223745807570132763085928931828930762069397963171963593850340919370054781003757373027720720518164520576221131668275127775777812018749875468451070127029924213329822716386021772417454816452948007512784093015152349527344871120506573434450316818486853384437504075976317327465119408269474367794549658659025796465629535392109336376214225677940657285139669442723639858633682968998101222620180650142698142469033009747138521423915485437144215679126811259180106275420577881054178614587615590456198541995510384605700774364103734047344862107966204058838315073532088496055622053491473165897869002896656208314829465081753042681446694669396831234843761318414723633105710011870143496564004914421830969398535625613300753267835768946918489469336123836904739303059199044533813438939139854093464081744316479957165222997342867030105632474420845029033331770476888821268575089264181036901801963364345370329113538323702563556958775254604043229438998832310231617515269399536237419602764116527025427196338027705217541666284090194881861450130160668228788052393482727729678248859284869135623361989630652355564034359755502717105753583823748655855083509927614678606338748134426772314557454141034644377685199338517959197077832667710998536365928034291194620560112662169187543272360235671960169112220969297871361353018917549162696151330302951121627622321987134689365674682831854228965010532087171248701981787280226375891871088377215772574212532536293629575451058811367808223213337478051368642930539581495733143027425346574647114059330776092527615188557687784313107083161665306068135641879345079417617304301858141573566270537236061617114751048378127968043736324577130181076360445382337208980817239998762836118512231364879748739284998925691373835624863565831356242250722024192411661563485934040146309330853135833053017263006133195811698673038063206761500285721859835934803933154226076841280234658733821941127279880597680274159960016502293995992109303274954875576427805051239059958776532299300428228544508302659656832946579382136684897355173808390714100113356257067651546693814571625505407997778341051057492641705022971829793175535258713711162995608398398538871262892858156650951924885060380393922825549391771664949669855072203332177735557072212408063441026503900857535819954566042286916767810433147267209044123205288423529329569152322189693311011477487471407427800942228799371207592159394566233605920317197026576763511823090699983048488040335612767072132462825241915290298734728362442747661358524344026265468754632768284025032005232343130114941786675718752175041105628107176949459593065252773524184501532837624454738632461894503871356084124252016037476627320251114214392107219248252765283938254225395457808116035737531997821251296015818415869696006809701492435093649423091840406137537479033058770201094772476955836826234079881562549808414472111833348694934766727074990459250612844854941495715547857474463035147617936752836172958991625335215658058761272140219154744666042675242124068698214330953814073801986797719292795921050158982489283687029985723212022703930686109330728671242005072913504247926994030961200202132886375430272735468225947531755320842014787134611110123427578825613827016521675798730891651754673203781485322582271865993329576803369439597830318639448198839132811170884345943505788343454580616093445338794379262816324039261951581882843646761939981988517105670116670324436903153361148320934806970060086842663414454131310168635582145172576079449947700193841257900940089654744419555256231911917424217416811198962226375267534159022137950466674539485738900271944857219173587665402251454234691110270433959561259031286137241055147016652055842521891209901237212246429233319583991116442858550637760853005469195704899359931615790180257553030445975314277844895970426954062043175034184194189694751947983036707238021199550691055029769574442974138976215100456546217165859278831692503100258045285489563857439023769629155622932390833824437282525518685589275501389989957111437904494693909522360520256879020620721720033671515923559507146448107851169512425740692800506051846554837566937098323149464033200046197022070135444906051394028099815979861112005560408527106782167235225413674846764371672780405116850014103898737082134829371187909107584543690166829610561257474894840309669727910716319660959756533765716114556567588427402604814988092444262336591144077665153120808962832377725547253101238408485329944306683717943899881933020913273850072893661705702978722363725693012591020428336900872336039280281374515858020954268404010786330865436477043925816115819627103936997620237548073765386484462946097951025516836862038227587983166288883350768881507384417200003006430804265828770112405748621129600778923069967305173282526322820875277924076534967025908974047939084379619652029752410001171577453386686936265258092172575209965725929418587704257736938383233046299599082545098851663434178999790731764872646041826724554078499728793900990685350210598453465003661872887609904914216969625021739417657948342436782002270057320866780307707830985977260329059032678984088706468415496473991372023099772334533325763679817360408412430465094745270089314067221508595795620156414439428492614962467987017667584728213085107549483549235324256031443874356920329166961590317571240243978102872725865441942156270885036474935025864057894548457892784542390527474526187303703815000236944887599030214242750907734918850792869796885954407269089399024837599174405792604700350926830145874308635990549476397019510992840464794038199041381309389152074146790628341833998132707490276177205740419359202048677507918131958256914163695252563190050882039422927158487579541791688751629001359033293248936212010177267551785841394885427003512817778321309535799813152305110863707305739444784528594317189768437000792535237302970581230163824860626954290955305984961508752928923311583670809790731167761474272312189394731207528583250839165600804247392691769828211345595995268046073311168464839078317237896016866923151505177544899453164437658561838000831797984676025378228273362713270024265980913610688949598100943576985385454234720897063789461866446298627855482211417769211968680880626950915450899810773603054533310742609418767728541714307773653557220244691322026259657565233155943288116313944587179080002652828384004854082423567701236666589366727228847741027644341316820639799223891391894376476358138053952510737992845156038303259709758685072272474565819985802074161927725782194993593631255329601044402923740332250622265929699065261690143653237013479076710428195374043047829475700150839472214152530554983236511150446395426201288718528062070421967695191130201308839288869342351575042532206636662243017664402046874059780294526174498825854910255547885558547168750408844866074275514118548260209257700705505071851613233686563288502010648530744830376284090925808808529584595527485371283131360005504027663906941102654802916016419628131613304830159701658786829298922336632288367590511475597893176280572041926331339193570071371797679226010190339372849132110576442155704878493027323456498014281272203425999765024451334961124415619640909743891580787230370725185310101416173843357007101128159757232656826590007639098333432830746761156700006207153316125452797585140181139744247772675789778174205193960381755608223843678442530481985726392592904118804878634607787947513155547846432281754536939125539721816068545306701148922395494377987165934565911571401129600621343047372281828706362673479425117966464402576792557816689523156734054868514918913487920834659737671621226506057576461644134558914681732354886147506997858611081342439553690323168269095412554705661884414083215392004470070171444118974462961128005734116805498089622482465806699515323421394678775856291467335294255075641501596266106104315043455880657762205128244471478322665575410135481896623321957193557011860166242117800522540363199552158991603113133333350759685774499644918494354795886135952902962465225462398299903678273697976747241440457297538409678052285621870540306351227209842380434364681044760784526509092091623701169707062567175372134877805260929891549984238444562467810716921710401828048515414798528873795051751907245133283514381576084114042146354277250853101256874777601118504583592469377469643103290394975110448781996280971196892531742636714129301298866092284274821280245067218007731403750427908633609319507609470435918317733322128990938454585679430514533596470009635431799819454908271546146561305743933377669471610185952970410770081804249014189038621456305907951951485444069177092409033780150450764735484879547078519289342864108176104422009997245369361176909777621909786032151223271597438387097067777325671752188817741662230435673958153553482118390881220389922873089776999636038407609613070578402371433092642991691963616593856530867544662893624339679897109683991066045618197561035869593790094735829455597138467273415463684197025543642806604803439770881146158911046308916756267799697457773392296481017718205905013745802126022168313751274646053679035942604828389666434215659804781453269406996531232308710702870577083040460555185148504806418017546787531788902237411231988062482166485965161911457075924090529637376241140903516438417262163751823515689229988783313790291204166179376628522466586506411646514206809367260463509422950773483695038009236834641408965887598517333358736803781087480464631443340334380415027977725270136659986481629583879368390195987089675004820709488434979083514105741285469735906065080694104641826351517362162224807726141887305385340577549452548236465127203520335553457779104754329418343802009640626827264397448222376176189850943640273766479848473299305845843557424779330537804830280226150089193539121095106947381799543422247466938882519185740038900934235565624139055728820564808269769543155705661558617709463990096094456875419954134399548362155567978152327129794311943127036905910147000734370431320899968149641748646257116620888439802877132345321737746545115418982529344377336694775080646746434456440048370654020219620348742619054823599558102511847888161746181554252934596574185899085711689200677700551603966824768279243643657275438870592327007204581015453107916485261112436699341593593545718076225476528513332374856778187157417770982022153479162335473086926990326495271788765492748818853121861538558328666193534543612126687093168923948103150962790301850210596503924477723054784841565217739940083824120494214778465575554017930769981304001186954824039400900478646550900312288407874420657857775275254485256011585844232009215973398900619905494611096896858894716957591506025539124385707183287661458589676530787960895554271045481999119898521101724194578335202438013648609489227771979346667246674042215777918591975082890743880735770390332600924034606586602710511406229548412378448696149939715262671678976539507650700122289447411307457982500415601226307860684943627088296514589277968117600704439102794286029800174063886920495795224123703729516956814841319482062617612150094377130033983308423008664215299886490756454988492301795705238300397712429747511996691905472476368836465251483687187628032941462312827519669058286461232412113219194058555210359066788818090793143720549149508723564487019483063988251761423813385304852668443009955694662410737482752185501355701845585266638061880970911985109151148438279666030024502417114285616411951109538055460107399546944100982022243876367523320955098363379594255030327046192499455022920738251057424615261580239356510651528970855931870592353179715912145055400899950869128821383128994515542574467236536662471864945883687600631928499220929674394659445750855754457972954114165943688748130946204507917420007451950549097842874031530960490023168258485474955987372187400440216636635410034105709214605905446900222371517081652533903573153900117335920530484408855842075014438984847070187301109639329179174697340173838278527394167327215908760990344616249234293512261454721524682618572536049623442154851049186199886059620214108247338721929512704489010537156468104944363869713880318641353021024813864752328037826932362404042395457822823875063848093429761908654162257589004025875015683958182113179873912773687452542065897954410606610520959925614058733649934802943218264180158954604125476266882589886757607881055237494791226869352865923624021237347716493669698041509088496163686900670124379022960397608606663815055586438284535610285000844294889452841618329967431913721071830743018547664418083171264007021982375875258279893108838855131840203317828070493183103840602183898767945497289176503859357722856779554512412049547535678884649201956963263184675601205758883753328883106663078455356003666685477792626048670551513323583981154960324049183512918811518791246516411991985618754299579017519724569310927767289157018281326629952376376890469159255873336745611305187368129042066587271309791856147806552758582322977603416920535037005511201133957001732933039906597918868524980037957377021501270334999136574956516781304839616888283854807728338159034043754826654237423013134580153508222935127723518465372491335941911188762187447210075739586091702128274572339107344137047283543724881462143680373836286469218194406257434187058959251740031208682791134875128407387878944750071288525836379751628922942310322973204335064212496518021903029539223956935268688389373270110592685393464894107309170145360297198321751781081584586725401671998065108161152964293138517613505257274786622386923625922118270613438636845424375638221752756397260651983844573650368859780462058111389305786647984576238373942041890895543282146835261598260188688952243267245798144879082177949851831626815201394381839379104459511236714549022935303108564227066837958372139878634978677912761919303385620632718844372000513672330820238194363428590219463748294179103231510751660936198282739853823295509293702875179170720855985431451594305036355876273103510420131452601604901353158345139209539900018812918343742603264895889195435763667087964318496643134226179186896238599064818877986387746416288423228834205041925117432216408296946596543585349803578729501533378001217883537622058847944525831196134842202193410511792932336221415121856710758573829059654604109185064471705426348563432290097206362552928853391873961484412044663212634167948689544015624434449086366411761908572275778916675802110018001809790193763691984754985267256903484745984388770979119676711745082151812947352497776901045784384652505182642100911725207397572898298635919543933048915985413702131157443979101763664334964903766550313855613486045081863443971988929349208126722702098602821283554230524596422191765441575770654094923476458714379142379978117652676894151672770681242472188102761072357104371353608855243282047585514287264505176910489789193615141628581319311476829803735385259021198795048869349946693589348155174021534742277738549342790984320029354772290942497275608346079266505105537336875314885963239917909569306621682549690618690220006673628107367013272750198608370380606412427066100623979897613601052743690973645706337072269496976119578466588583432727173849963452880806100019214059308757673382857306834072479313152968390065058990356054987541005749877412555103165383245580221527241840387845883675229275633486402340775940249394839362846979158090057327787114976545740271764335043349065316170791927654485905035295074199973904526397887988991250588155388276901003029922450366408746841959268209744006777582849518899422018485652493638562133287480847769475811555952120482877854260051866573626168243744761979291321921473299688705826264043736870239933955732061682319250411546990035232904185259964071130563116217973340278653566637433487803717245118214797689220079470866413087143197566521832777633479672491618232311316770165561373065241215711714165873163388042942438265769552282497067393939992158338506424578300984095665803019801099174789801997099404973998971839220285460894374490663125036869880938872306126569663194414755053866760051622368585495518227893170618029988406446779870812928733828691678004484292154497065412062228097855896323046448632603485504951107989319946809914788016308491046104270117356070427092634378094461293977037814424642813165167364075372791017280474279849470438965812428201648652246436913615991487226685593275422546525011291937764358137487274930008461675022885218960152168120741490325116780158601986566155630339304645070722919116024973030965651663857918993141509293640753277252666730193906808891519677650891617757434962276779918363443711994927296189043332312919875195223707101049083957343910270887359096581791552917885480647809797417820334747846551464948059206142737811676036204027047065580230219317858832487785923085027411360105762458141081240793066843108681635491520496765272806247832767089924848556308906011520496376452115029430390629410396426192798024339922344384672467104268024891046820496427728035005469370058439943845883875466781016747894977541197572432210619626853411641285761839805861772002449168964925658575434827750321939788698138342580420326236479317723047195344525292004778147418331677382818550494491761267425380550059677384422832037574477836055495238454831078553801530661170339028592331403850872533211463448698301379206895283927964008452326981614925488974312585483528359743917797994768094181703441478926592998219487430074279919894981925181569780060121793486073277780656393964100809444137145939976515797725695567570187152401292673438633192488581031294886837068986869650146668656815184962047004891717986088102328740329659393710292410860686665797650440465347091973793630109618682310486236434258443347866294824382319125083894974874357036151497963619868186689001590921508418174676671331499575083014965930631223569108650122837766231844765032423022533530702334275433807774973948259676870363976535746817380274609713069418219516741661835995908640598408527108611770067369030885757948491631773801259184119884381039057019213938023859873023337213655263683575515374158974624585357808677800051381244354440184325467842864533884027060463704791188626317228113203564029173919931509269946275912022697675825763322596114961743696349436290388584970788998602318045902426681712758665179537169371913360060010882336841285372771187095199258427383987035122231952000507898224771769089966691453533900193939267547332889004339269516481986091972723077493594190407469150500123082067024995511289475435047884737385766321045433919955634065980368779587842590896114859047316799353594691788462030664695806383326420915423788121702666397312873331116870954608271431398382306426901168794632861824036310828325452029076173831117754849426539127576921383040028539221891839320018470435563686259223965654119209963250856367471863938360174120033121577677949827412618644696328727497058866752326546180300472030026558980314055041273722780477806365065004976312325361238825966339733321374471265370577855842272627949889352740487636897192118685468288469749292298997863421573919553761115870842931925906509390733660192070609909223857543306091855480628298561932099557791704056332324978500063693245393604588282239604961486635591584355008900263285438371021648569015310454739963896376956007284963588324381237301193412887380181170822544976633564530972771371675507036866670285040036175259036354543403296902391799984858994212728925846321128403324562710308856346066979171835047163035280913986716422984402554785716109228915674471278324064051017300058489025388371159669205405394537439803140664556682215144500166940650669096474025813559285431605428107851467663445391194067825067063549367624566419460777049491496000936662940184494580910050613470753995442893918436688808522938370620425214597121884943083236784070586327959362256806241104404852069634070664466010302231438186946372265688670199765492398342728677390040426404215165578489384186014088793409237459576694051395163954507310208169074933422366576847434295645388390152672183244893376839427414501795151297468311620859823273397118252155730739841139518859957603020067024910215026674696510722109253098998252381476936219959600405277509563234120670113201397467278345844023559673327762028268907416649234261666178300153235052292842237535864184514382675119217635831981721784667529940875458303266755233375593495204371204178617983287608834467136299442043771535492543064755905138073335399151914740209601147455173358169278337585772654353363337698670177445105972222018085854439213526737562291933388146926973012704419132504442364298857942111357269340127183758066812287121896309661350508820402732974577969024884424832631247381953452761045059264703067253328802826076289560360378897676267221095118512798795799030492442169952361245157575072056131453368403160619599963245011221499611959641376234419279011364621379219950679710605768726119087291209246912153942865453149710775710145321005699032591894333509214051986672049708446509598525623298086044647367627452925940244396962640740996727424545328064827150185381043293914626676168586848126273938847962942027381163778680071088189040985898531340244108144499754291934049143445804777573622047055269322410519194393923140043135596547769476536255256679214178282711523066431372710501336258413142651190384566604803386798109249314683633552485983547911478299474927862732366163342660212770594298031366921122529049096992436269793083501127613975330222593252992467031454222996180496785893510223571499885628496511943024038906009401570195904992404443604741155820730688982895055995407802509385698827789645188096074097141981101029653178095054905329802475957546133465218436906433592772490411967714325193540054145174057052488936133955840785486605062011236612530227416412282340531796529889982828615337061670502154710985034995625866998129367111252455469236207086817891002350560740599824602617999793497385314136105069918962006759337355751570938252148020353990714147308844326764050769109471513250420368206718428251414295584350395576471916891008571623894753269501036999342612309814346299473534270920004870452373558694319214802778106019591040843069912032515986371148681439166008897171218112718315489679924522940888754409690592159700469051475729379612207029596359070052148432326637185194809540764923058901307060131535995777426735783551967808263954516331317788820469072020896851956485567266129602251027320722397226134989216436651638224207669308659716241010516668659996234138224549538632363879550795385142899464969144571366465139689776326334322368507528781255216255489977239388553330833709943762679254424877997680865151784284798930549408985723960476588798540542751821113780690281311594009015896015374125746270892463390653259766999578982630625327064984579731460048304904643027470041863511599523555747348862724275383617883883723010398277382062210623003511772752673981481125330689396073913546869324291577865820502947676062645953034352367376664014472897204199426125143340916611916626808333287095217033381148669826153263608076489438524042853747602352178460451713558738948692361685561996771775216948439368581848471593860031629357170132461153254181989272314000045073063995096198677143533222938711976236661596736815056893830908905206146654280708945512195512198982932996896678055650829187639753260493875402880684731009010451779174968139346413428245714764353231172106980657264026705412838262370689775821092693683382619122864909531927058171319652729146978229791202601052953457412278875481025040031704066086653367758074443318803957653427971740669270669108946201822056926561403873335088497051235382779429586256364636542327877623728900564702984915571465182762981255431973921436198643331655857323775112384895672366258858684838878469554068976861368317572548711318904223832996929172732049304771829027826271133095260788227911768359073831009040479271113926117964511606092823824343414002672260894002399936863172619764865034842867447917872627557828297345220266211954986297566338829567756576236450686064743283493895657252471106082280330711929130089202375873227808306462030381039744590496081104949778393890694595364775377856051893746461201937496700831325198211703108493882410589423386067250711532730799043133964559819231881391731321139348084827168927287338023976676524534131080899689876528884462142229490235935403695446090761998399927058505359083176537265562909187482959172953062364705123931629441389781480533268017251852607922656402652001716610267103721597767310257908765191675400977088725544267183398587089648790718806287491105118287028649386276143380825764522294822324300352383942226133438221924628473902717905339538082501196440200414222136632466114154693352947578377126416696528472531138384492049550422873558039099715081952163883376685813260899241616170782911973736714424719935582424523659925936755408941908788089471328804608444746408997333044419973468753518048301440477946496008415025733779487173675119591166870268050811133064942603369591236144827911606444069376346568217661488092738034775866525822082997340075976570966979333895775863970255217495861423595253221383587006054086381631424316681451665236302124072114643340296286076406755354145661520668442128123968004611510256138407224948186884467675348980088034679802045336053123683903798523994586481838436136237687409974523524750743644265830288106424798345834027798220988937118112272772499946942722695012217013569449664336711521149278177202006143144136537618252099016189094235632452838792848851771571899814468058472395174298628743517989242694810381531937486594981973958497403158599777447664437408448325593687425718273324627586067545058882145336804660745333562974427635422341557776722519315442527280653861882922194371086387696627477357692944708654744683936297002140227089303130938057796437377347435674421979770949980519668954081312344009680771099605635062281773156703884607194214615455799088955824029773858429907931685992278806036066685263131725421239258268432864164139250509430561999045503328219917869362571066076261923131990249050489808666267385369296045819851247091108730922107439948236425639675248941902993538170363718728930974036754261534523328955099474980378584932270332949154170361522339049803222328403948798423528017892189776058305161034329566339106328526287243740360850861991720892390194789713388347667728758649555613783069928126015564607328275920199696021397889142719986826669533339390184872143688326767428339612631252098134011862099890823733490909313972095134890660740440323052920919429047039987645028910694123819411957452556325675954466017424995604444907938064121988972031422603174207324860175251068425588872514529828339221831004202164597072637830269298688375976312652026310679250879256260805546171724763232332942871836326386613430618075015313463098850595608521824015301031182268874631203051306023677082168516016490111596913433945582527018355666134305980018970624275991442476180950226092405960721107269391788022466845105667310287155383499908053652945735793479651230018257780657325354361846454694816446352659728273905408068954883230566917158430008159638239606662012822587166897809350914688278374534951699921934433455223856522572610870352880990500239226992308953483154233273850545905187847429520919378698227747856590269824926739836376755251130826668339472576824384780691448686637900695911325312950275798092851814324950258384598552535693064469375911566175884200532339937162994972468201473866557056804310752940777872021403329647567673360994891095327656410750368620698719690906899718175506247139137555889394998546085559092047373013479671744762826070635155818087707673085255569084350350969362597109269125417400496143268584180108670674480083351425471995440092092637545134143854844443238520875270377092447750906474328675294787497146902403483810087504472249760552787596604321890782942898797619142992900696503454410217257130621381679886688259476198168224636950236358596740322807709014677745608558156563763831912030952601425454244261960010565865446061568013165620933635570232427096028866465147359077520805446991017564619729028379487717373837626687166290862044966712237353251602757309922465651210196440047977151835094351029243466076596552462764387362326022223657863858150411764646916314369426841294924389180442958119484664399297373749089520363243844041864802936151678026468953685128572031055536841242572080851624686030670072998668780302529263082470362724255626703402294818569205307256174382982794486276805198072026783510307164751933937331669439220826615963629094826679673980058952137487758619817289216888435350904694946890606817342384190019398848594592730275055005651588028542471537775994294162195220080494489461416159785866060584979072239330195702096352053460956977040404111987188240240214842989868518042611850842108890634760840534988741909080972726523290642735673163309516692246737575870724933917274701241684586918319805594014036877789464952137359422492670059892473753102170643404956178356588285771583815093481392856459415618621924321017237181463973304875149165904260299219802352885143076478551897046640090646368393176823061374272722666494199789306214006171065884483712978836792527196701918605154539661971745912874231338249307199087006884549634705461297073634127106327614677396937998523824364318910639942415645250940906257106491715756348147750097456616970500973671975402080452280950678104107094672083930247447364086391468205195423871168454800138000184049542349131366134915935853616826859752033492289917382941127221654670873329781259020763466098654885613723517471590617575393286137970113717378936593956445729923403609516639232021681388015579214584048003078451394481089845295947010748275271500574205145834705148022366940558963283938307459993651086062437729794582800223051391921463590666966631695471939255457719590429247011799822023706732010271563525258902010630213526324931034859721327101443559378557438207732751426906714276601888327332053528057515942922546520059972429901064141277809379356191778522931347501166749221578348547057009902227504548790002673738216326090958405709737870010230483890842896478373057318630498528121179020535330935455828250420700110302611386012917281355781153043503030220792802469085376553746637243593961140876139242305568872202868251112868565278864821624301203632025146998576334713242149257432426722680475730695297473370931010937223680355500805222971678452157343923621276756485243521383097611116577814647457863081623700488669275643414517625279967107948940657147857311655825826110462322354707928944426372620860228810633247070781053896933476861635392024631145621847298634418708186746577845087158308532806359140833826798893616872755076279939567369938651549994667217427483808351028984987673984506422103476160096561280637203246586267086749771830606344507937640859541455774195746994989268560200848792724483677309746983462223636252882413514714617951692982151534537765722301772613310414169385005109665426667182854716448178781675621154292944581876094025904814630007000929737300756875770219940969158000422750214694230711730361084508103174097142380023124150415450922343655777567293626712109138527191719578840423776464440865283779749296169282258380804197330494476127292327722535022537632389036659098641177609251567584304806178940178357514424893472135377668103887092305732989492648044004384581519244964707493226235083393867137922757124969938489888635860604311016726581927588139037815073168584939486451230297729624152523782619619089693914069155586156424497240200296857272815913096328009459322245267215587284409151596786730159332086227843522902824536354210307157275735704686750987759605005861157194710125302651445638015512166439497138231151248143015106790518701921291121535650038838990861679605053098588503328639456124461114402297958931585843389046975100773247205031185809026374268640497029995735591891894860695238312437473655809526858133635772797508351302263064874751157363804898489722620283226256694557838566442283204887858342254323627634920727571966899859438101940563757104423136270589708762357359017394233301294755126432556764100028710833817342629878211700050329827721215153842305990312039316483237776520101197530186876611893803792176948145505909730541867058005129415027074796370506072720755594483017014632596759428554313509593292376206554689859365256034639718246645917174011278078420476518152336707045457848558115203454462148640293192748488062540893760303039363755076017713749480472160190905658276232966889884207474906131126460267869048284994077728918950223053173564160236092858660092879222806213578603836950815757586146742762504379514210045089760341007403482095908303566590207665546269612948310911911998446627053971987135220625918524960555658805734136775630859254342484999448641724593389905687949357717675154525340450993445503939273750658445684827959214525382867100106810676471007030882756556806735446205281684850080352728124060039727996303048163500055146846073530363327901107832336230670865597818383414359213919828293856587518287143940755411478017281274896758356939188691781153730748691465612881253420983288877472789710265202665061402293212964499096470979817892333141060871736958687844522380253847773590392286849034185392159083835939622027843426158556896656368187720166011102079997049088768267758910978332397558919132468402464210444118404788707012258661419844188684768615471516697643030019199711702701112868512482590780614639191882655680862073195517293059867033055806072495634069615198222469159895673853387723801455447646058540834035305565876252064358998247197718468944914312248631034697011083665092509359446430292156264546853233977925766340442306787829531944111429902642894394159321061472208647263444188310465784865081269346471892062889391775914245459336193724881973680777517674510514718508833760963067230541710245541600521382398226895708958743212097158619334879193458039734189321998753290241917117940610185840987027810156460535910388480668988921714087859398087701050901931259613099840601418214888098299272256748676299517766067548776386402496434249100442288616492055745564518343534099413289385168958780578726857629471313140608515770065113644806273358239416057508617006492706327034975289616915982057416378888668075645898251810057440698503658040216409534165224812936419293205415527153885374889759960586616573494360967919389064503986963639245032720245053902631925514749073036131872084435776705106699312011798652329692912996260327994014170685991996246930923626348060676685178326615865031753748523861635841355521116176856006467234783666638509000790775837877073907595563960503603824121100101558677418810243338068750393197860113936532061746138908327380519114471317391765585741398856422902751356311236125159669639015520240323334433361947145564398358871528237304865802162983918194812967679811717587634966845390023647434932645438403196910904134477346978452608303141147315529381475369384551788358780466948810924937583129308924561641074009926257678385368455115381836101614215289189233007035586751434659896116553510620053900960340797542379108040077373724483316973122622669105534835266521048316547254576504587707331321472123485401196442690473083501361125436780984862859393034200436287402319925073216690943581740369289636255726566277946852688972806428666538669591034372455361317387918575347739599992469398895723342259682574848636514090343642288279026982630214889149074400581654280532564257585798496645623965065900436282536046360930530862268937421689805953092308189209107240406572623607945065701628026768585374497918619522386856095973337616693937766748007367651552452289757011639065213005118808290012504135895052634396317659611424699537125353658044051113368673364340930650416737428648883215916752981882618372341487477591690996118958878280395324854358317077775608834246820874751916322409680597431825582347790977421005835485871702062319480849896489364609604836042168300284660051017693961332267230514162627432308909706854607175929935506359322238047336238298132628377221224322186201233529101346458137127420812068050703231824146677834306916174896570514025614933841658080160206693687262924176522036371064338886794783458372089491192151993978631342298336425045265320870161966317363420973214062465617552636140558445516512321779014174632589088965273823064502774691005271718548937616203217591410398647804603536883965644043937375135518823157584100343529941491834621829561787993043020923804578564496289302637865321912621024261432148043836482360463511553497081189609361927447491304500844135569806003923613082821126819183777855333416073995882497020960234301626688673185981547464182677500558538511389540366066657875745540215022500902549810237176356237997726855895473700075997615210937908413016713059968779539509165857159053081186312276622316470362613370894116963904607614863366412282009961225547823454806411005580679233568091841600359061729275526539935939510191238028137075994965918524341792250422878593865867215132016446488791004287752936001548390632489799759630083652026289547176265386968203489702365544740758843572350572430189424467262226480150890334012230016184307848739654581010341398260236314739139646810222908606754382964870421076863274424984628987133076909581769734536356448277322927136377881627864587330565860980514311232080605696601605277134512439527582561871063722807227680997772639476436514373995193277248599671460232989605050591276090544981501925288509410633646124124291009658587709966743464925587508305010188661611530476066728559625038672439920543843246669142759715559660501482633798183555324577268744262839312604143007822522063435139394392324217852640657403162706173267576657327674059612049555619324846850997853391861069762122352656393211580109357882298246914913513679560476997118252154476820190765567517389743453798091842362542505468836602916809753158534831389376325259582178990108250900602732874795594022433289886146555196616470750427717782757289720489368517608427137030215486929896726738294887427091448321838193488072578871360275195413603836655771720490023430963449991177430426128644976689261809642688938185245604442159293347872782251733995978024932939205962493746898371595779266143781852589551945626875381499808770335279135382338021924381703018274247174988660224176231165566367151382115022873380905117892796649806161887527942521997724996343042760254388650938549994461279444142259541422186154862510734465316703898513208891141361425120882366080564262119023028653379926820451937952297158380395340973101883844735851674644386291341444773476990095649605105556856790200522692198903152328332943749557630389012258262026228189258958357813112870869674455246447683257267547478164167045667569341532220971501848129066898258476463027066477298375611402779749481913776399482545108274345229138420481721918662875621870787083995418177198829594651727224534755730165189118986088271521070653091821535312414438118870598089851319484937777692941114160687548993551936607831811608463321556794766191290231960998784673602558374779723770813569200463975426072781420388708321938977317554970691668124967887962782416484683209877437153352405503572747988367045478574554580737752389840410614755267788132920425443890648217285589125103922560237046069012661031640908574065950115165541172808438311474590708003741930824012815755997892135183080402531749040314289244060683813365686320034825675132340167241575401864825526651608577635855480345635736762831751744943213354875103494988239446784880509443099533847018259300678753126534764161153902640985384835438130127947563105111932739295679281481085826627144545080362845734727554010662338085049494772775697740202785907016744880671520408131989316533263752925547708784832188844544714185456718259923818577606127624959025519994673879537744623195205378361847685673793992364724977269040255265170074919554815541274425946890761113697606076326356375813375562881623171435271290697897601707873665853470867088358738706047898225401546175649797917385311570782709430325410636046730665547748188653274551097932229792259922029710284965714241465410425837988610593245906580798427690008809343957116093962047330537470294947309062533241152381536101838154442955870979610209366422486510836736119560278667964912276497345824376118997127356764905694819746135340891333842459957442845962656297421433473399106371683430628751008862920595168236901681717570803420611719759578150147494578191483882456593769394690783515481818578226550303585363816623966570605684774560994989898298621988073032330218033934568215916551199501863150112621523258594653581407406552769448055309651493047435378423814240601566217472294621360859637765619916061829248453374562502549375434942899659768964447111435219548525292457789866785650538536870812066191755108954573217086812600979954330359851878960030899236784474387823988164301651363612934701029149672933547096506845284497955246819743255701902682821762001438726842439167394357771789437153866907161545113999962531622400233506358270230934618639162050895792501127176488283309084746372968457859689954589018667928257446199431196656896735714978694191076966211016852491642714512587755316982925651045668861519477873832642072865805629454823873995241635665361012190900967885071254111315041176800390942283468096477575112873045581902083267407182463600143122660807638534523783083738859515033079064757334303327668591955582536344528929347481590821229565627580701784798167343536693423149585198271075299034037761498272366864914659651778917775985424234416177931203150356917749573011285647096686985860450238408096919398276101850831830925418922983711107606225538920626832773860182747797832278501516731892014640232136002294719391237384032845902672262924387669787729320675750421592277513145426520365702940060054027416916429598784413359718520041854960975133154862693144440004943433286291412029625745308682615342453307057937533610091972861721004337875214507609046895642232754396705497131200230972363115785958832069288804055085307762142704949995013461912018131675759417273105710133066824996817439410178240776533532774816574767693070239615478339791823926813503228370502735016442859200393487014566430072965572940283383728844745240594335823192773873423816672818733530580937637296883736817967982602511331321129833118284528442473351920194098051285671595453126080086720192566430973659833033144461383899197682234000094249491881057958556878464983398725870795523315166543449101730640348445772856109750248252255586852910157306328199899122512800615742340458382873152579439129437996600153784371948780063935874626543653205578155077161267044237513506754514522730607103450433023510029910448989841367112266119667374850610722536574244571180054763013634115097259878607965764734005834971523418866130537262180715620947032761864661574068413959186940412390362619967261396694457106019706738499733444629032034065264857961344158774144205964021446838308140667536884735084114859208612725173688189609473213910880666711330876441276186131325743876519178636168569892136618397706496397571379152221284480870892692194532136215560008616291659302106773219329698737087743405385167624312868844581894590060409911588559839173920684233262331837147213436783840437569067319574290522567754470096317079260056370616413460614306858923928920273599033653256780261973886111726301100480406756487006056252278062750815711896893291041880482426366486149610349265998502184886159905806110552006247131965403391526492812147977117991625566701962891767600169604902964215741688284779378350405994956652195624953564958881626619401978816036481503060233023719034926906814627256209211690637695302302167859130508391589219515196158363605049320378751686368335149925738458983783009892276358629211759368561818621776760423110953425885583492903724826528421667475213160167991148817484560267531693760800716014802578616422365388430450978068927098448306126599207826003983149265571402178029281476704096754500929966304919801280091048476287775594545271988484644080035862102796269308886386230953599650065315270881494196824097502379992809902732442734316484635327283483721977012621406144063595767825930215356978448841715773242938108895642172478618074463825882819770718662724964353481037770261204314655245713893010172602328425600471393190222048773509588093196252500441273963143475232620036903842429585347735385319860682788918521696646327326227136319278061229230920109316897035433909215548340086594479694440104824310271915715988419877009174500488342954660834258809805456497648005555148260476262975022625444041899010802132297646252026337730232305136914995836526457000775510058700894494877516242248605758334224705443701549612636203789549581304024592825069214966777078148462383529026425185594697728598680748979346536492708432594064703483765698541215152324072907234617470556278524089320948758275107937656709733652506724669047827308579111014055407220296800151681311779416037745929532932754154689929870874246015849759358501255602021948372194413599086798597974816222288613554818852606413212315711020440684728723268824895802570901098167273362399689824209865631926468697307804587711601839663106589646389085853908306392045776156029023225328763014431529228575750257176990142491747130988894509976227393902323647238308197269540744579934959011962731674874085199286555556318569999715587057816831041454122373119487415705215928995544938738003973638592565577101252837937024346243090805854859623744826069508433499644391625463296119981158662262485894317249938928859130043057898429679982093008175231425636125474929885182908649564981993136384953148633295012796237440993374721450356244144769423142251795350850400479078595202173281755024070160812737630173723097733868731281637159079258495269887364528282989844685209696251881601695617427149654279153527548647454185119111501065797878569078964263257816474347387452691121974033552629231413574408507588993696364491853766444525438783955007469268361901530396017419959216606696181584909841465437092110802843669330496317842167935991420773097144318289410968513356988568416431034819907233741487945855166151406815621158643173570282099602541936397932687181721092517462994776616918482303505212192358767670037767049533954413201648126050081716229554857733638267552945774339652427754044373216256674648795498636805947187912870197905286792130457415442451642232129176455319826062313462233231523419630508591960031475160886917201365051030743694487846741561335018424912655614881060779317357163793092669603160631140191661737195025433738309604408759662012631956392340750356082166528331561571490061196177478383921969545257777443607729832367804935514668318369819877736800840149832982408632866345237924365248692477269085306052659325721609599375488775663151378997747791103010803507605833627907782906880448069772333128923989311930344509853322248738406374467029654237265150621195015394051532533091973949767102321300550356706135594428437868409117696504367056423897996843924121948697285064691829406467955617527296401151682446399959654237802855836454372794304046284328398244450901787226440788096816270273278166039193337263437088005922053248898281905918225829004099772353848076670149172199188135318849059216935824299084934023653661520436628553186979942172134682927731781082197945263342371910531081451367577704910931086953648814634064612798102843375998557716707294268821785378410143443479580591159907991040027899399306480672599874162599230117172068954209483052300429294440283969564249609595013461282609529704278466201961025823989452729448302067475056292779598459305901628154569835404796618084256660064746332923001876780204195593343616311265515984872182524739728444760045906382405110719128911715150733601485989091864004001630710742658097413873232392907087172728281314871593909664720543877818789372480660294719094864735909312011281806394867617982295015228153605057879660627797474950915803072756665308394334751450257913556492335021859587510014062226564383394507646476812591954443665057614640842065956607870918837002652409980342987523517677912866469845919559586186585836154726943750529677717774933766362545979554999702067241698134596827064636570599005861024616033901598441579891397741674814991337180858498474573421008764065540437617688919150869114353470791945753192694947685203373225330764046768543451360783394153439428478480739505577945980758366669885177885953582991807689345215823181408874388564044026141574260212886000577263704802087285909593396570567404970887051106352014113666675762404971791484717330269774863812420302441649934514535986857647732867371983325549525055142081007449913745772247001113822041737843846651289648208848926198316167925903288865926074844079407568737841608559055149703151225135849177391985506656902102601773893852625937029914221974653525282780546900636504747420757492821148906089568952813335919653105063134890184987917220167772524759190536631066468545081723784407727244684703877911069228188048642223738242217631154924273172842820204103743741646547504861108728184733401918225987395890315930467478040262187521610511607266479327227371314755805433464703138042451594345739840354260477883034524021156186634594003506901321347014646232649104835591293799270301319983699685006198225285741575587163840451758223090890942839067411064305190035160248533964038801418962112873934346710037541332329856663454482739455830504183330118759725201823757468359425859196354855498124267668298959134872209987397901441248689293052342460004296848113599661376402468184612007096148660621039310413950648875314219773981947398294317103077004876444016892551441155530127856383332941058265168358941007938295266667943283790778785773014782250977810742462798217581047870782681489773936720524825204247334888498912056108836794595613048903520533702455805740199214170327881665108689537260775771399985857906193407157684198059291043554193292499223488197403862853923665826470006611544193320327713149827062302653801130809230549051908110896702317337950100276135223896432098101421892672722036841875530675270049809882223235377624338014815334742432043471084490409442644718713844789196477842816802745972005072815730340726574496510710628521984859618918402540788974057092625577108375270051611392878388642708527985706194222413486145101195951012214859042728392880980265483662811072311220552698515794384857010550048919424183099939658925379428110765850455603117217044296836728370723683365597015469622461063974251870236746726404281190776895028036295316320741704537768684339880124619243749406296868121265745873512804344693154877110766847703886867921343159567731371249820493293014688028999360675791053265905626135111297533800178397847301145296595352288122710207934693635230741584115115289061393435059090779979873116072876863562568535850865173675808010443992154193557447995714980521985111876043969847052491473341901038886134069272955048237950534616174786246673633537036701103484622202409019913619586211621322095236713659671226892658180734653432662848456458789890266579247210340754154316990516865199452570837706981663239596926133956912521112976658655654466242272052821444694079235647818190388053101478086099317958946259357357683022259136130439237084064223838742894067763545093004504102085366690007395938883952566584665620544387567447085171387709258914644290611122142429301628083613721668403168768460585860261410352199105252338176775428534328749968678362912832319521037776437066380512929113414693245051988588034485240441629471930055089242267679844585267500636653372339671231653505484147191147596312328058854555407443496635773934748767006839322129825391253567949470597971466721615784464753005871120683115599667618895912023034705517315744469683911186152890325240837987689840658494526791273086084767288915083933098684945021583436418951990015191956003700014289779929686866090638825578949731580680919964970526406605942085015042845046547774277235396438796437066894745679933999200552027335817437780444457354282405520140597476241534939125246278682182727771930856112658019676318179152989105276190575334033417287831365446296395969741181905540347036344865467711126740464186541246197928825059717840990422221121790291410220724704106530272698614912465221058185020012368075262005417454781809447065941346640458077977049872163404043714855635498339011077639493284127244592940890331213483663210355560024080310187707818320138287280391682114741536941560906316682024328409803669975692950023664255309223663117376945283360992793469427746944642800022385558709082090393568020235535074363683096772552614208601574635988758243341516541155183913592632520983936759869042099449484086159563807223295142626155986171548932868006384099269301157391154770347460961332538175550502567970153824036746241022028023340529383328266566459404427375618586694966309629547886548435364792657091965583391606307096927287174795557833514041187538175785916245023567821361985497758975887679930429651152668347455026295587249175953065431835873463146929569288600564760173716915881828885603068930882853899831683854611179171086313397461824650361733283337588495320289289648234486793550294684972885840552184142672774570628916974451022226202548504667449030890211542172115060418249847893150992056242415661341094369988280313740561768421598057589345573484304401795298054186943698541246216345000868701740368079181176811816466702358192192701765334223753620526052962774390610310662856271210297778681436226547030396091380892448929172405701034431006291967933214963413105083476026524374814558857555230090781527502257761158267574455122556176907718955482450701399532503026616312081711068217275683299768819899955482179741232029869473164353616828895181943083843191820722690701207250673393697086434152579293506014816974750632751270850588325212436776277073988824901780327245111208937617363460948354850224179013795312109824444409071954083190131973365059857109942992597488056654840884211248764172708972362219648979833499692010946883629487652286754499391394722799849354168032515731287170772782032103837584614585345174412211305260531702063698694416115240818176853471912136592628192627883313005471143982671759175463985485087708874907449574928529666886703261548032024556140593608470943162685387739664171598255506842465932636555081873945827707344269763928155642369349970385851132125016259374861564985517858329686139517945152027649208657407471666604155699659265681639625291212952612968273884707364216394328202179169957440706960946066395671565761649177377578322948226019668169411563192860653334798330777591147041003263057219595006228597892151622708534702497032524741750604400476236028950193329231399863104234598825221680494710138864119216803763533148920501892990424371083774932884725741321597337406293103836236303538944867197293425395634030901420257189181428933350942566419463650334308413803594878191277042087657259108763105800028711896350032783010607459820152016933143436725860404412909634676102782712767373908565876157132568621966724530086972867730505834216587607960821322440726140363576379658160089020471345668797059448087994891542527597470944682972265869937647065366588500444607082377220083610088759474152832376901953431311336975547971401837379834193239639709463472531949459931562086186251638602660631544369572093709700339034577130937778621581802970023132732206641419365323169449060253544881635333390828438954164202797671050380267770317654577302974473597132894894532433933793289080777018774811781746950840474855679828180858498305744403228575526806744679434000717568973429920086962011524237190223790835188889608177792644495652306508618714942017502080675403663929979682523058865692753257504004218358935113776560070599392398773907285999932774434522540353875227580070321410150584864977350602885807372067378297174590588722551020231665362405483575937165456958875123348275922868185252784065297428328865171557506402492493996318448737412986920328783502849035854135403838373463635745369974299200479371871746427322470848673600511276067759856179786125185304593914186584636793278159541496575598817482058800084666908298734653684821572373404281441579578814988125033476119297585669674486435507474439475237945015696524689259924754833443300452788573397563115854309840014931544007945563146573656532966144819013172656298152314694994762740361182736516258650946949135338199928192255920499793895100993950683451331907500554973742596945793977654972635587808373136414580017838721912733364803374845443551339063872898275458424710712672321669695355234090903670431025182287714066577340404186937719001030921767124384946367684916743139171641514688251248920492996939807857423188393575580452592630924067569609130205131901745377017643447635900515382620422955821118633828503793439588982770549737175797353486888908643237291137336940363978809753575326412421777291246705330264014575579468178210745728506923335318670260033888104190687724900426734321760201783327954712857842087993899837425013217635075174725401452138492913034402779991271071173185100037001595995056637978842695435190409236121015936734020940096287465291608538016594547923445670926841579361125577469415133224090510176547102663062636498270075771199150347845616181528911130940247786912637143280682759485007372401414614764033550833704170864929596556368569259195350095534587723251872241303663606613090819148341813873319800151829595015362220213353021923295261703725710477087485580641123238562085205425944043340988012965996564556548518065230380951269898576327950916157384391350498739004592469146785509897167285660596521228439855484764214706916478870725576934472132125431290871329735232629262794144298151588908123970225116866274049354643648330211100864442132180984075092295884744512795167485711752757175541281495511494980813419204019668605704011879647125236068027759639058923040130392467697125833121003858930242690681893916349601474332235759075229737331728432856708973728901752574494980941559044265033892623543664192834926329594686380050432156247713865721523908275515718786254655089779101733815766833126220676049503026530895754399316632707967054646629268992150555804762365464233932926730623578354191021106370477905569648511310267793646372690516704350463416921962720349006480729592438363776787610846312016374457883694485665753061537744701329978797604172677852018533263789184007058681176806808932601289218638581628910228628941234644706109490454804824859393564731788682958023138224389465202754778755176991462540995658053352524510266059201136881855458709120899766516271676577836590382538506692765420287923384167612720862335614546287727681676036228168504497722713097507496104974986531794159936341799487892449894405562976439589252792222510060769901835795999582544379908579316718384921790904378117098071361680264707128820051541850931550606806814865170989032376586349399875422305523447782670900980469789793465615215900784216744235008123668602882177488333898029926750270679497216733369974284240251686847290748746986714070215902985857829176044755252717458642952675749202708363258714058047329331780030476306073417797353719346112749516975934446912443998638527137355163605710777252375040520840814234615825828534332967387197299713196263252312117994077430790104203422061547923185853476879377158288976492592065541510777027333293602493146530549393858606174705098511875488232122956632656328283370709309071810020642185138048061865617347373679822133936110774913390588431461582410037242037619444063209072800715501031598257690200083859809053962613566774359607027351545451940920449669452378928299689702343301495614806593732788771707603601839224569821714518512673529612262019619663604505109038395715106750881486901774110457885958788734985937424716210333278812601048674820814558581080824014344291451930318525660550899101466539042919700114551712845493693750280477749699167035660106904923033028083887170924822902685372123519855387580242882261909589020743075219200870542848102062243494535924595131497458736767146375876241985226318489128344712698970387351623198084461028133009436479395448910365669996389769955908389844356545949806669644184718019791343195529913467775613517188564214217584591105593790691571799324355075338748153203549200597365658601207254635371637816576147904630452784844561236388216941261923093661106980893799566162116399314718412991521374491746834383144313756234405966266346449953828258343159426152231958466054116664723335136490096352350318965194261170029340264332900628375658229890058066450952591016125394391534314978804632869204292503451158637166951927355273627002491626396085405838279885823105448681542302259452286087878827327594805847526820197499997360944512495325225718355897646995644685538356336869672896200964329932065696470511030134738280509856325906495574857210134888857185142034753179673555919822111042000973929259881976555709557776138209177919274742711463752106157803230739421593329475032407205006345560427145745981766416187273332162825909305798520721786364215756419116911109468730402983422260275257907465997157538302562982763996073281166424841281941813607356480228234135459335032935791156252191037005020291900820103000603465655909805262765882815623982815768888894318522506741824377156536810221921950953797470287436893987976215098725769516178631226448812547690576673579691062550529460998154249170568959118470393246522306775677694935086538772946779356247967729669066915706830696908078190563498019592188119143418158608910945509693952956723981114015430679342448010576615354474787316617832742366632722209965908599607580392355580904959698743312607904579212006251636625628162621176373114311453760174819420046647191949871364275632569394348140285344526424058818408402155271867420984875362229166580571035104967261455118117424038726966689628266108997920917347674410207847022544413981139008771952176586994156997852606107095370904553876214339542587241567301014621244783441129709458715070859775453870771729292056222926971413145622780106656038700545372414004015895940696503757266837380051702444072827712104884856926249910304502768908090958444459955231776971793480463101165771522044039382161022839302905400688852577068385190538306474629077544586339052146651595754090994930665606636190509479128847354244798282274717436317057830531810725716217550281489599699360696237118572273833932866655218654705544384071307221415304279062210919431531437054660256249557954923789830712435047140776261337603633844746371005405172239589230589922336452255270408485428862996071754100109587661065305297888461165070932423807869024725854547056791499005116765197647526709395067918984293568860973953452334981481929650690756787086846817528738547347633176953284461435686322880393008953264158287396675536415063094592576874087577260919009692514563011005787558741142575391142725851240915662952813903148409661028923119385390932022788763932584276680492751393621879873558921524856855030024860089405371970011991366596194659005971770089515653382548400280543257161946097852249121601898021848891508304515384206731124557306351033504956064648816227428553973990507102941160564892062318150173720138573292035208921886883368152703854321595849264471217677618531019842687517283249029368234038973631884671546766326354805119823062414609217961874281352868128117014585688562224513886664816148521078297411717403194083074026608617013188847021941538977656380425471218582119939071410592286976170105460028878720714804840280814741630645522492897199492195483578031700286895516376864931214734176882668481632037370550774524472440728446783912617080017187898438404172731507750292619719426043656690476941036414679586297023208657924853251274292321593509846824965233124620249047746976431726702962175143467174049592237248321779110425701308890790234826214007052310915454982920941721457580354041404259938856963477554545532858058289694894073425706431023259159124279196227788390218030468277983049266943332214686924908750991162048917087703308838465986371358751841185139267526623248738081107172084536569005640856840571828297589949480454208195893069697623408200495154263042421401574387742885482088983067154138673456576652367031686922081302059249842652111181614654953014075403464888885008076987794716899270672748976086318126678484901339466414216648860567397946128002003285005045826715543186649929541786206023375935867696013950203233232305370883248163466759022921183339738434221106469002726879737362195231411853368342950618284769804566501018773441928873671735811707673110365499261411803205627437554540041764763760624478153016243433590660479074171397202804198710180205504184789901296931719025965804317943493854210016627021029544773004606266180436532846178795386554579077500701591121105059764884447805701314187025911299911496705111823500364695489430491956239151623361989651105156385077008793529487815110380540290138178391620964074120325208952458847639625081950754907318366134188756978345194116861456435769861273445137153400059323616672846056199647993330169552712900906634241113082117675868388584390810433035057619856064622602797829043233001493195302764060395353115124183722910582307395579424781753018320271335111900851407825515568157267227003206462992131278034679486860472762017812540959026992815183848540075140811196831049053358668539470113150454716397559195756076803568197122653011625913318558789931861757636175063614468018417130629090763571891942203218902301794553541343620409425737966955527693260844610243294350500396692746701455225746617214878073808650162232353648181271051329729224329579059142378553277371240168582030297380781502658909673698602304221329727850288465950050900752871674326468184512588036925140587191487630404764653663015763103136044442223526720360921502387326168088554944459297941531471735994613785342654533681795359070466727893256311666355094431257303649541584290281571010075110740634541389840942389815537761522278224193229983115894462804538204935198018442343522381342190628186543301421535587842442981053997849388337620093218898900789257855683193055311316635957835675117868894938618535236166030362506937580036897449634874682682586914852645653260862151472493602391948787052017722820134472166914212707840094028694641812217873363483332698693445877095161209780087969614851093630964500728832077213338869263425958228911606818990453051105857914248024353638730987365074132015030029915342480778909076251882210935447002150782053461282350135868500494551875835178603113002258670390225791252147019076236031300552170544404956951642507635129129037315967141277802863987608868210953946317585838773971419159951733020696473821830997902959476637732458226976232467373417807079497453974244980333296024880224348135655560095485344191753080531236709303588445179025374250693237555791076372346743211465991287872954266235555472526129331811033078378469129838459173203694398962696675312238341981645941362048737115974570976945625677263296416311425786050866713634765202658301534031415671534211193881650773684956327482844923583771898284538801766872735852331471508930633470762180451576132349399060964360571470882032656666957857736106044650972187801469526599709072729382274119269325489834939642272697655634879462301903305994118564752044428697396234714546935674778639911886000931463974545309398002928608437844504717306428634226362550709963166044988644656469573702946457059217801922735139907006421997354264080596567468180312522282110194105343468311793728065787007520735893682951604959612068316561976620367424937233584835029515861743337018641542337569811436667487305604685901474390598688466856442555727052371811353349082594450683100924952425226076945364939477298463917574055645117033124056463968256900048078017878798292658865697433277054584388405350993622265220996504290249250822819760423582647331078755397133369501633757784752447055582909669215714515121170804632483799533056568592090653202415550849048011746851412378868370010700871934183885593830344472099727655599260422829673878046724566695600727319762695373422110024060308095366531637001043525491500749476168017732400717534235907504877669962709825533145874032009975345371839582648857390953811863123976371881431088217884536445915085057787745717243716177031363466317099444051785463964390357191191075842765389553724268032861320179332506770919519353410291833032241947983733478505610936660104076537136137738142661233680281068889172809427038734058814268302063438109561758724452937213491232861799338953043719466257709659902523497193498442427095923600616871936922106331908876417257657941354077095472551741878755072032939307335871860866568662786510624518297193888136694934838914934121963287750946953571736159619673866267449667235400027565969415339765878719206926042786228843275430986678602729127399134978726489985280260329709098496292382413996583184153116970463383682592800544517650552981106480512343993179865985160673404547501580925268647423897244153873973111355332593852854765968846136890277627145904006038914557911908028142417992103337347891678123862006755300262002823859603914109280090612815505298928658386040167251856508487629766182133414412596682274788633021544108515783762282700043227653258030022897967946535166330281904097889742953228886615734332454809021930885834833095617717821523526804639486541415191311584757565681589359200819814977939881005007031061907395077163883987412019159046043783687908573315258500550514361777370625302627440970720087808980026505838663090796207265849462836898879742895940565053536509534531360996618725270064100696929044612555948834388852083940611541031464619175497435240653666837669639586306651448710218543864603083549488964430070848157966142612840983935431233035049123565561947705245229538740002613919543124610989455843152816547067708488217661540847419073929209048704096964026001277208810463502444998348682431515875210230473747529582537518959553979024735437792319771125994809268692201258496034354321872496113786779529591086615143362141346124334317526753007651866462048129904435212900609621213611365647083764189466084755689087219859413646666502870291216778164349776829604701672451858020466660619566726568121152153320821128750164042695152284548669206421000472721226948497604769984249235195583876031983558442987504942397850177260141891863397556210041841262971906707897507116783911873009399595458226916666504849931549451623461831629746276973698283896141346764010469611552776916882546445465584566921280885015923746865958495702225635583857988141475976768481625549194297740348512465826784625135568686923068113051940144652143281532078816716515242191991986425226220216048716053930322081286463626913521625883998077656427317016834639715935826466232148265589550616246354377059671471695898998975299512379841045043594266829631805609189498299957747493726414281343002156583717169853376546546119198935260259451385545458648171100572737329113715149600635547147423152421175392516383432749991711014640642277339953554496989188292868112544091138847084760639269275518324294418689043626969651671822732585098506687254114342736177867611165250245941151017445147787884317255262415536069942255930439013574548864750189626547305147550585902885560903384838785562346115624415647479876955207782974863785511562866231550324640225173948767443719208509114075326920005170871954109747458101574621977421392648285870587343156868725784467675620575352781168520222679178794436742496904434171184539217197020041072647642051431835162681485742186184236402348939497895625666865242661760365573183126037523975537002247801860455480902797403381125239246443784015560976576725370912034238776886152695004123285171665651140626105945092484045075060654872397651987933013120512014895979689158757752918834406547855274357430022954004184854997127473590936131981721206494421154753951985966366873794894364489637333179261971936512978761067023106039331979572683938708897246830129027053216820661769221214731949946842414665621045484849717106030704187480387487487936630089261105190336519309019067684595914875120454713591955306581451498932583023177602252796134824526421270522208771632284355084235102663980014300270252704434448998184994164073058970274823259840407200746336537830410341544641105755842103940616416119691735316582411717761314656199079291017962248525421901261485296771066388384316814098072260631321993545342471959202970188729333858874257020737064092192610751294432119397092557871417688887555309378725366930930774582602729681593857449667451599371090051755879922424921756877327806540420060399196319280304521559280041002658172485873178664092615604959761865941230215877080578432105580198946094338665544827909311942153528898812979062870865421280198727283435213018943954847969400266991082211524589033122465055144919229697010148485501856883753712700420305245624079291198323215843106878481946147500639556471587810733189536961588677940331532484951921200236638233956970528193713670570382747155447165464724507394687534699637619333883454943143939771108079215187139725075523609069390455409269779619441694897604124337980205664197188736305401934944339152342672911121256782819181319958486703008379506125018367267159114221377000525457098591743994060198010704780529702033649791452024126348472989829584079613902667785611603150163781827452551130469812465802619460711293308390090132553420540635326574483959645478998203063045323704555504332855936800077516825042337638529430901445738092838241821971722856063456350580566800443768634596136545330835732133858046276223793643954102607578939096005902162801676918308660273750561013383355040036000325968058023328917857813584029663431227942958048075860982048117812266264943507414312888180803727415850004365541551769022670137138627744782698327274930628969288677656295692088699571261254992107393544165518198244713126519904835055709685892172904661184486706834233737733342971369562467567391664991256548871756655721917943310010527495272193584010327283372168824425529552614380571267537349999397271288134266892848626384799145746159541525848932472680724737408833310673095989713432666143277336844065284658060348949126921155393209358620970725691366619127106149783791902172205904545439233753459998260046189786329837852287946728222663455907961790864960146915799931912624644655223397729393444187481518841513790595032330231192579933928405873083508192355383149157284213803334499751889665619548218329800463029767308857089897518574014839633719108029292627163396419726306271490739854567901968657848227321373540200633761819656969374100376011195045768505680558003899086822036835832928023861353038268029746899926576569515123661824292275372499599424310054858185110407398891882303720814170159830179976960839241835423131193576829598812457707385717990698096555989607799325549728404018345921355405245186600625940338469645565899374220808771880089290645434873784075410043818475196950018184836529794261559433270726244576951471455813438129995055963185317475848428870392893999154110316909633604816715592003763593819552201249451364206740004001749450289909577307181893913142644241126398102892059322220418393656479794405331025307682585220585675651999168386591054067684969152203174752529830761455720209901102419989260712569594681222907827718473543669905329917311095517203113360302446939585395991161005224825359843457948374094173586934603112726147882555280742330578304280654320371272391077940541165993601766899668866435423509861175705524690932036145101085223070802059032609360797844496537668414577533491571240824707846826995362283057510128086508686200995424047060306812776255826716365884789978049840652400218582261952058901169223442938083439544521104398262647166052711316185868903737479836379295293233209099302423583646643217998635186574135332614223139376808926795215234070560325937957180590283408885245488809174049752866170025564609022867603531833544132818113336730048942503493237962889911434759239369353927317854871941499593395143079788889027988753322083688833900372703565413826279649675445281477590369074989080698382098379685062043022081170953565755008338743560333287038819644879950798851475751220010068092654498951437375715660044347118427966933284436982868577197508658530350818642948960584877896713232161559300148673592038337276657096816525300255617396433332132815247116396362675364536154450855154051163295920047008359864613044549954862193599405877954965627647518555870352632141891622435213292256630340952701696704484636601245383644454802911517528628879713558332558489234149331915685634296862178805297868308249521866855658097431144752032823363533762264565032369494291199715935389325076285154159791991267696117677703483070381115396667281724676733926454004076381387948797626040649693342043919566561743507246287617620927373996894909897218662544424251362707378333501653617354123444951964311521822408116210799160296583207725010210791917219138615209972410578051450380773045754813874164255105296160213518685163072939094157217983925390940635465256310354394896276560711660442964558910246337431667953106725365863325596741243665054134026952549279867250254480852771761700230574574977996224832667306094834126321268730399816786989541182891814333903472509187258278566251636653514658378526232480214545118240429542177348517747083159808459360238135019677871617187161265556823556261610103690952223322320354001395437319511916100906848438240961344565677995976770154701707315451904601835804173914924481305020051838231079934663491120016180979884086452298440101469656085026140289365197874195789244557877990138167808053226469396091617312562597304249163980675951118809045949749394274597134951414306156292067626660335411807163120629069540019574279339573296322662367825950116699129492138635816708224257462539477826559673292155525306232814968022042488626678178984488390402982449780803710284370476821838677510315965734022833822087040576604929619791341713191694734818148118382666425601552899165923765818700686214548987045859243575933090213858835133407207062815906295226563283336097596953186055415326463386708664618758053208685048048146476586560454272496944851051258949859394616710321725906433589411064604269144639984681961702309012421803555650837695237176946347155135365263859423295589839313929657916735845621811323255756413258652231811086056933379525761873643169417899410837096299685336121869785691037825210055445764468039798570252176122823108081978094135600652237992131682907744808159388709353097337282799719839851955330388120404591289820355018262509606947089720182873255626492001162070228572288944085831512717861573205992713139184456012532410379406898371394361860109764940127957049816489840497301055956235262562338819489507603666911780352911592955347669152667455778054918990777957133134500258017525934689151026922766436934866068348834930769477923276683651197251192795487585883298238320503034628378072898891227587465868959140842867657154756140273760853146869551329416787310712390426049335421829385204115606876504343286162354314171073976801472794200494405802473855200688261221232081118691150803618733261816332625801414289328923449850208334510772049034294516202994536567629949314783734030679008686049059361772615350017332767397664783965240780643361770970336328275473802460206204133568221311752509214793716110041834035404619176935648929071795590649682977525679611717813733208890538662374874478271072243346893905883214764133964298035263258322664200857153850211037817963773139494846878614151976097547498029562240758614839005019573098959704160011391812094623398906912858099797886888438487590387343110859361494271313267375456985855581732155191901276000003505956084687654911948479656025716436087151375753094388359373715312111064545358229721714707649475368653795204407429793269513004053633100527114542922546773287718411083274746432366029880689072432034717356330487132495694281594552663423074774143071442339777126222822304677747253992477103561419052205224403589725883457471079821915267928015533191247601647872658227180315259078963703704649801129528651375443031357479797263252838541429145661812970325996713121803825823385001215496744571955919474096712515768964858346613444086989671935334647886776378121409232740447185465975074001262639738990447375923452416587634216654180196291862781478980009770122513083585863466540593597399558511836208314165067001161125267502101240190931980396956562784804073730958362726923779745687605827937903556376114666773984956203242794249671119853948286934687652337192904579744044737333661416801619354643448780092692829592884477583240676229119502352233621675050970466155929051765525796331636819821251423164139084962297358374246949718746900524884185304574084631961962617514644607124801113703436705733026609046625979496946605294909619436961197725490317161087452482099959655809695550413976445892012927415169864660581631761185898069478178690351345479829698810395243583024236049848831864684048359854342055256076516355436878124419781936400307554690570532121469142082041985227203102531477794190068957061274994169102108989131784769609843759217254225274685621478563772586801523993440659129908208869110091343821683108214811741034915075911293774221462810324080118357109611414143311556023137992410760220028536757692568674825156912165272175516834197890970628527524545059950410843851769212926099322372562723955545712896509247144330993574333135283882859406369851938020580329555422573909808620863732145029163945154282781411827311380077415102031835869070105624249607388480398297648338123673903881629884209232810867502535701637438902934934706063585439402901067909618147451491067368674641847263746565445463468909576981095349172212550673441961642420619078013098373824286680027002639279194415033879462649137714316658965534476551039976504729829058591643840097866800232814525965414684457414831647124614376129330938469018234881395974075656626632879708747345945670393067784525079560565133798977975797834697987694302970716424493172208665137940791095310361338929154015127611473265186211031460337896798851738461293734261212813497287466758332932437405039459588232408757082573100815054331861707160725042508243632755549963768584579849095526143538863788561054916698156327400844604346830226850836469028301155580416078307049299890119500805032293750231503752931320444032213973810928065045762183467506178959654218296993342010192260633803311532140953215510281529359274509106390229583619900306835884629152132500398101823803301135156145629108260997648744517185038591412130278172725382008311599854490842994889334369417136339061119940034492997359268494340889017924214589679918602669752107373495527772321158118855910241173675561961502760768178018573635737488115126190603782083080689840767353875396358585983279615192458360347236752929174500401088282964331096647642353962973262971718606875521108726989757464519706933742790377591461233066383112195864517021351030534614967170777950566683440538288283968258424922369443360742575499598210265343253126300158658781797995242913031045201828972486276490324916157929951983085526775618023865736909621427918595986005509757870952064142290302281211785166966474511120448753118146469642920703677490563476136679271035095478167210030052867972860729229096702874935313715222785822880610026637831229052980606684610861656694718044276092874329859861823325245695997366459908344370489729486597730445324803058142745633522862409852604520438091367225895038592999788402453199393935682073462316740816973896760005517407297682869916920331543650313764118229098486608033254827246173741379865999301241986331119332782887477749408078460802564114566011897727820068001122610170790393726545145838823393187475438120707400367977858384475812517464827318274657225108228107976127663920594768425551995200660754123912390937041277147266905106188893112497657212304968024609472783469540500696855524400299175144377659745977330122244560874833358367120423776993422701310924884773083777947049263389510531553480314523124122877923673704090251135119686944105478491874838918281734430229702249415278545015325516871614508651768146811960148870236896002462498237231889277969574781874597428118953693432441126867263232390582544439148642321321062077665148054051051223724647292071894004484762112512708930506636394357702868199068362716851601036232212260114777478161544208043286791597746423375362395183530405399490763863392234424729979384235477691948935147253350027980380719677826825268536935649486523475253550727567929163883696454157823159503162039798292888486590620645590653585692515568069374429385021853331417913596361982055645182409004258907905608203612091099874149872777340717155668434674319142365656149868245628096046800327107517246169784483229326164466638933452694942851289678226908932012021217810281805625464170821801911884784235259639963063797382705248385148521293263383087216197328058742927182338070074650148816925276349240665771116491127028815843876522345331319828403319703785456630920507940399761164625305809125326286718028917903734548435926188169491385456490476688342708702509927301734302185842236299720163316130448640379388718370943277537214754027355506118076095329087687996592146177589708968896348630175181133864447000134240174508583716794529902559885168196328186169810099551952919313127114478449284686395581170059868182386150027309169316531983781903164100706280186537926578524780956398871264888850501184717453924396385130651150170505908289584367569340106877930896770869099731797415069783629285271995499168585492992263962733158299027042390539473754341971632692613539090610522269111915602852494117294759446949279780107019186662763602929580655740914017019515249564073047029019022263793368783905264947873587859350500488894426236295534391641177548752940184280046908632451343316667232320677176014295210547149317899258113284160038509133405855043409611554973038924883272890280857682231265601376261778125893605400549097227024648541048456736971212531310085478576463432111473263521289528703993151205852505376624231016050031419367141859149524983832037371107398618918146605904435576139862360591611222642857120165514043197042799951005660506687972920917778845626456027696819109271204889569393780853139885472204270940708706832807477885013643232770392591875297711616798818648576668525826448943346732580245629227315894961806933966905064261642985017829707584061234515171314362576748824544487413140105753374075979343357420153451034032641933639397596851804966970958339753837267770156286217673337241205134788546863907801916326368190616198233651851950722304745522777518283947156060149805165325109193321398094538687386584025537846806492538549449327164273955952638170414785228245971460125809337440258249615598910595594599745836246484199399539068394282340754356314364586770420842365345654791177379248388351900413730460229876638453590941005525325065754261583756599044765605740315964916202436301218724822827970475050965768486302805164766484086726396649352853682842810224412908107080479753307801959405822044791583941182034347669943458856241770819077370613301122003542090059760186575913605403770068194453008025004734920306582328226889898122969222743126938709215221485648801260407367571906173902143362138737265541864134606775631000952947870560140256261770612918871576189536916856620989866483162442666196920185559278759820420500147425910788090596845242733674896808641655792971003853851367241601947790143260040022195254511441742089972549004260397110725852795918017004001247560456948475140312665908317149471454556925728112012788641931536482087685841401241699687541460706648395403832183112671830630656464400842616447564918078707927625317779882077996751364306009523869100130543354348232558431615563894202273271171018024364088905176784732810181468560852183657976589100220777543788549059716990345654160632201592589940078996178716001506559544173047011305804942098142291413624695091571997485662611474277552536911725533669634510345007992266784016306117163219942880510050264649898636454022791529755940389421483466573310247557615505090151791055584174761995195528315417953341244928532033874382994639092434526409173605520149037904334411503348043815188825430597184446844641666585969470018002649599504962444165838219628523144298506695379014104423647818660386392792089114400663097949825542646593487693389007205530256731197360239344824746466494767913588937934725973225319098611197105241328610962834718689518422914032315034571462706786886414042553391957267061433287795716927404154553014311362816188734521286781437838133463467026569086533955241175478354108298480606627624458412519373928054814593572195384494506853353177231162161929383070312695289661467581863029084976591988849794769488402051177514482661497282332078289442122901242753236323413380431352128422116730833527424216809460495772172130323653207785694041732243185356315136606255894563370932655722436160030350660828512639568904807100196331374212804376074641630070439260900486690635936808756897682325285980219784951582838565252040499802954766547971751073767667511849793769138342898481043807540776933449718905187830409949183189021382157482697342644441155244638341562241901030250123857344615436848586428563393392579676551470567715411284601192984578910566522959326270321738249251368409336515738478075843918361642635266150666017730189108878198560924402938277164147729675402358034459377862690765966628749352557533898046607466225319526176825789301507202696926759014475357597825302231376927303007971737256000412014790302467127891572439017647386249787049804296659603069065127637646546830259266561916655430838449932523899042840478642447363861795789527142290587810246584809652718753868353141579190904728730565373108536559795444359920260118916075554769341858843204878276262090256811015413169716589204115934431863605508909007789405022095774795352042605370292673014473337767986812647992122710863301001581642609187023463826255127391786045633011370458291570541198296772696848393181089489641605353565493342248083002369865980582825906590148382121246183998799383442785147488493945712386465292383412342798912284190825115956177647482919905595846769341667371969348722691894908588069920363636963555834546357650920863374684995148895482265010053343305691760350349114853812467667206697908601476496013304550169761079800814196590116175369904702027404592655435977680572810669715292352333039908759321166088740142919081845304187862879443735129527275849384169353912329061901645589074803341431962668599146228742859059206656633091355539940328335435445358009323016284337493001328299901294306104881637331391999138495909093493468641296996053178304857656383673061983765409778842500760150219662943630040228249238631086366225253772439147798621656476627673863785571442389027825331347666757505402349799668257026809515797721223322057763804939462062688953669483302314150514160422530681205520310224015324755626384143997864591711246879365312378065191172776940670899017969541782081497317594797125171907497422729423444365273054001573132596258861531946722310797210594420785139555527242663963039733873307651505764657564581068169482377973602255989874243593232833256851598194408025985917700275487167194598714319843939817334154694291184728360929964401320525957327790123477809465551203599756699918502886102387867717855258145587158177612297179715544914862578703901986363077106411686702156998481732422574058914639550062233173405896514466073300161540234933258533121134116265100075552783224098922119113705416375422493235640232424806780595922215927335960859514501580455491354530658343786091174327068538552542705949867120114771098074566425889906876461940433643320947995525591104685625930076719678878858813780126361328920562488772710979083254331691066684208750313752644842528891340270106453683285985078432541055935329739382324628237497250938755581945589010546587462575479487883945462078753480150916770359954035398018856718582443141777121236099296995703946996559113184736741469669167044884916553535194168660875800588061648239987860713958037175731997821178308533994554826594402024653939628114372317398087769000361214523638587402258252796711896266225639393661572952155571262065242477823594368804439956751496643764824096342297058543253146533901169825151047700288899015402925267764459410915945051405588205287723686341611480779699630703661388750293974222765491704850044498398075870129191148477844275291157185818983849498994050938218109759289920692725230765240403549768533979110483524448482110678451366867679651336580187761458738501919865230915834784284596833247287601948822423470987432530833225687924668652816124470826216813216140666084909057671869360528828777605910365808855405970786716281078135916886860377152032590457372786047682243208471851664269715291036167100088675414980688465035082641917935331773926846020329459177597045477905450886188279277783790137906514108743669233369699265109166608366138558197876529546536114660451513432337868472773088177267133932478576263732217361245119109461455788396410787166689049547992389270056401298883407277946013952624923570633572416565004956856255801162510373922036838972096413180048594691765890412505904329338062725047378430067715889459747264265459146867544197311054049311386128451963036108358977061534536005883874910666296783819494170889668729213687630723160962178470308225914836738012911022103841610178019597740954517987007029540456246297939988722050715118386322776487653953565532338212329545371485133456836519124167845354767466512019444862456840673690837382979524472984796192670916179132820205220872324786534669035144287564316202919231396828688809215802973469891639301797043584009318895494354160450332178488865337653790941765808129126572464878013446260421201749862799182953204268226940690068894440394935516466043546386473425503325453667071115093693948330092006612262948211973743505935755749632721511738279359723530953566751457220728763978050403132544125159609780552792119287917149023681278174151963845293420670647787417798710877725841750336360320107275010400435845888609561790238072150348149791224377462418741795859071344027163734938044150344668235991829849540841790993927872703663904913050001335595882960187024623847993884390523006670989055299742357949180884676569565533842975193248938771105572958264152798043188471545295327078287199754459001169986175372397306874674619268192543450779259412197299912739214119069332157606522818526920599783603949178430007714709124357671136641954568994981767144541962360480236357382527646250206576799070050585333004485326439075926486987995625290437719975466353617672522468580616985816907647097573576677617629891972948856609452303921989249201286350511809060179185548829848652409085204731621307712216961311425412433009024909821857820090772989650064262860946060787099622289623208978720022214840456998990781251890571339194842489404905693688860397721891483171945932826607743949202843265754206301967683794609371634869741006702917032161792301456569685552444675845079782127014616177496237451210430733534437513927178714225436449245179706103787888331772389400217726271251222687795610744686434593062913346298955244301068921164003521745831664893517921441469038782606098390171189165058371808077020661270067495538499906244487595127650858373353123403165869407136620706400187903612569343481431838275200048966391189481573617343813618152209607307865791778301073075571128085405133874199618046197011836636423087682810711126064976802843471087385400578898470605462971765632297712759374925740223737379527914175035128774165749670820480628245941791638905327382847315031178994262221934227625564830044261732792850816077507318663789543482247067106710387819799804011147351953008264241715095600505532897527356639729227711036531496087998637340148386894426524730675624725546135620144566192953012932179337778108719480787625738890238375485648486004811654252254687553901536064671437763754627787302287474183645093839726293866952808180126781959663465174457685527683218271290472345895483177358781514555674386524672333021344697905652656661134690419262490738170616643229700156915631271820990359695248052238549697975536598770970065411772438429062323923699549087142935731327822739740262864743711527458887426051153701646647377895171899621039427451425382586224869843425943161411224936845739920910100183445856595264520096584992401339286405752118667565282944862728398619780278421257626811290760787863292133745831011528288659501967565477966267603184411871422988811668253411823310452694899148099866018637018989718476945440973696387045754747880542671993119917000974668028058983809380364330367351875614201583918562603392187400383537700005626210499742205348090152871101348416207735979014229356998660362593256222611266522007712677020751026694685859272158075166099330276364246129369057253729642301043700573652535407555382253299449705032124249269651625871273138506617308686844626763961386287995155293022899649487026196220607641903672302909540884228705689090150525233816455982039743753312283480112524661531189465465505317590553789470746821998775707720261624972017766999445950198560951811217344638166030212223718941936252731447594065515569818640617326940829195310037950740739929927533996473547773846911745846808191716509113692364173953579182314712708895968480489359802553374480182489245582380528425414378184224770915887861230997566081111303142732307947295064187431945893858590651574974306133828653184918553318136355362248080468232015845407062223248010759678413466610008435144374922870883722676929649213915678948003990173028745243281700546745589171059752672215305139860695569138279672208547166238888765507829044601711002905093829554179579908204165246017525161771751036046554082599567458790890243198251105693614736028610891097927443054657907390744435590302172042297164102231732838319356874645733834673634651563779878203535865397822745040285650252570648322190342188965681896361978705015078946874526668366389969782389629420343634479692707612194292494249137751139339426064581989961048218160429950434858726555780561409167720413687825451015500549126681554229524992495846008166092152407930656974152159087548121783036243678865698177939108954564160217150432308524923839690010439914999873244707667659356203292180870996929352867031298175724632096400933625450487923851719522961611405287248327177110541649838211960590317143163272575812995195899142363732797791705066023087466088695354795712148582472393840239098528246891520449607021251299641361971195788662272805041513799955618232887923585865594351306590742447865337463103234575774350049229485238013606648402184705123448663832876591668752897652964844613324895790133207494883737340808284809638210302888736552884667455673376815335984859242287311631558723989293345116734390545145048715451202790337726897669903568084126798276298297664223001682851865008059261066123974177984947992835814183849247750132039824769365839856668037665081811298081985841396325785215471425271787511547974527724836984261387620562369809281001418817890752740238936659163852967396210109665371085154013162474614768500215607997397925548584596934176660644563420036969746201664877639430701970147952332987374893580132826918388686749793314187365998602441749963612162756631122678557262077560512569065905323229833018170816075990681472777231659631204062148010310035017062581321440171607973694155462277152217193375412681310714159292165629116838753452242997451268343572353299079527019094691009704131751281028121333394596268409761829418865094629002617232469832740221007803789799424735579956224483498425849859185100602455036844268225718780008709787348549021211965533140258176129270895775999711767776283383466749991607791101446325948754808934248396642091794105408957471425854760266823066450908905364906204935527968190567914585889853091451834471725112026587992289692202531435050742861574104811026544588071147504477255998524357222150508143678559943546617973026818369002134631623858036553279711120330108425815738443341821435595527275671609234843579834075805108428899528908098563519182140241995956270937492761482211073361983088991183837407066941017434375377524990729402743830450617200596405164244924975073303038376564971233541929483278586935562782542346842525294833540071560314854469384880719382457300716125824614973092456373173145746217780972655961308338128642648691497792675855754535227520931178953863863411608242416342654951356972435148134146747485108855192075661394299210278140432918576734758611423466617119483189831579610246573595996644519446121373525582724590718700130396722761625977113452146041479614220010202247829748582072618798581356484543293053639157765537708468697645946463017080571879636578767888484936373470421165916019409767427983250869453908798641944743749580652058438369408230017316394712853600786408094590605549953743675668943711569560982859137390133537651840259705983880558512022176664773031500443028823564632513741472171490152301114054515459130083542661337465867362904255072863037016666258194255178047097236389826860760425908350845977801679389344589098935708676954203038350228770233034193461389931622118565276362036005369833755943801629170500191105605751383776908996372424800307285643558528196381473684324342490567712468727453041575562826444468627717223521144337896743402687374930819935620293642085891547756211743111371416259482731634586005001597789345972456917529080965731933734718678800472033057967163238374630347340130075310077291032482700705437241896178517126637588016770071281880824519702466733037095215935823231307178422445091936804276104603747270658882060770400796415521622030058752722254671939498534986916251458832301429613605351902445448263596354078802034136715680292840722061652413248498380109970199280490803530499641953658129880078672024623150390639571472431209384604304964745463402295064529744138817256597203021121615263280886034257959687450556295102613506517952402423099280621554309586284973207832300560573017425967516833570191872429594221663940979425817171595177215976839714997106554209932681777192748574332035300059774290269369107691249799863073823296445614173898645117175967037328826694792420070347322498177510226310180608953382740499698213794152350890077555287768676809538484381689120713530392388889680671609826293744673227995779431213565070704909905726876433853323384870448654714641803037843347325485282063553588725858292673848683318678712249060354564400226244351018660353213525512811058280195607855208031394000144044260107388102906508572975654513677685501023418651110497866832020626523337252932948223557788207783822975542604616803678888520160728724079394287614968041422291649604711202327459517744440990812864116361908156790065767375273254150038992707395732124425177612149405331647302047119617464048336659105757646124243445974398233404896224609730245867276762879400294001254414496600192659420258458702090945892146319706046255297426652001564314345442118898019785322346579803881792873094076089519743864957592520328385965929791667402428361766153457157518196768836633598079440701412479013094938101615200624868276583447302720853415615722924533627541700626382064281096079121578142204011918265819077720474021406073431019656939776772105436512221113128043230294702107942113922055891619663845686739554178387943791506228489189569938553044564864056391001180936221308873106201741344014527206188589299982193652489226223793103977909196806693501577669776372894411570016475766531866628112610861930385299124411003312601601740301321323516480280829989263454276733653913587444405828586829355243897988641412196686797824772047962557125014502131411504234690094865156999405334250590107966944139961191967696747523318608356854530990210776342998121682944556227593692909244133735203103347604686013650236678888353067727038770306113896954065576084430558979819521755975354208867310799160090132247068677958604590651243247942977702369636790518437514931365747796091095039497492299167148100928746144617609112260990173078396109449010497267116261918888157998414025289032926825400377405622965147710270809373098419626332884434445945754474062502284578880539960737840809173564767680752572219489230861454228511589440096257414078067990314228745305565147010439210355454997617139202326075115140606815138061586202519160664424014144017879404235820572641332130226101012755355593101744522531355377999286310493315922102250916913630062993810678198117850590191424749925412261873684572160314645231111999485866892061007002533475349683766663272053304511023664995111938772986644620670491248614982508610473213668370010449632234488086700500362552820771158850063113114619117379308564550947782805123510353206046169669858155951903936210738319640900659879243630332875090608679014969887016898069122578311931347441025638898472841609067026743665949135791727985989997788959037306461432395023547260193830369062060878839417538011660686817046987741924292052974927734458553024537121113454887175711642772820126882530745398022695978523258875502229061887613184874931205190725315582696069281497587572874916589370787204883345113926848794758960991968147528534963905721799988067372556106297167094868045272040264761094679602150748268753065528523105648280744430599114935420522384450336795673835218622027534431524102433936747833718534455009747669502161294387051517735027752832966896540158479647966177884180782394348714940548958970665899563451373908362487332597113522134984291673522560884292576460022366967069310402845546419488435143642743875093853746240130018429703810114619967566624393109409238333946791768468866121564672493213941406851567521729779107633733926748815669027563344429895817149634799092247675324622125148177548732177001227079475061161099456382459090164194100775795037744177026152322373449449197298228230390544225931312093695693650393450308221868115384992798847087900022663249505453001655355555002640092071186170921227538204663971393492962622299060968450396415411358936457139390976138450744884296371616878001609572779024612138529485546505655667556556785395198045333790984462963156060883566796378164279606203425196059405403086312630861551428339097116485320226398293966472833283818010936523090875149442059678117187889549981902769006680795306635617785061685613177575201426421175789254299803149187627172832729337100254054677239400905203795963772150596470918192238818368016239464080534319958991848387345168010912812284853245068174394758744007502185023653181589810660474182989156023617341191187915431064250491488971713238848450775669768653585485254014823008421052290374015983228754884912436780808085055672616986939173678145267386944635941482903151660141021936404548247363488552393255557551135500928604210855810201617328298519321064443390162696820020875538786358548589448620135940169267881986444563232404382672710624927404453063971534277506223560725159074132158681523035307871121317202850083474929003398308672652352049301221585311771977290152821207654661408744758199554343805055526202877687408838649284972307314965574182888264095277678954428646826594782166756337475426491577037719712938379716620048733763126798515351980535005635368296025187741240434956560538457082385289852765351033323289710872359030170714065732023429158663655212021051495400552909989289095425127344958514564477818196779384604109843898547184909558192180972601569360472001347713960886426830274507448240672915988447190823261472487112135684919402871607430070712822665565746303749307053143974168362694518206792458603164014752966759992303735604083832920513609638328799487770334433159435592619406449271321199317459694590679162088019997044438419641199318236093378526516825571944704819291333500197741204046815146286519076990715343643635132611420251936251436504492775461522321896728040516899450002603859655012455552962470934922548454249438312281033087944794812375482573506235081798546376495149674302838452659591393019616506076080134535870118659654056958997577654296573766927641317026732157794550513486743076813057973017972726865303192291075726071584150784445759722914544894818034458028634949258505276449796090912857557436729767425778144779468198291738972844710340419384811778569960389109497553091568901014509002313765063367982663256514257492993422393269122126588691709544630476839593253507675225564878211909736555008266187135929025206491962688514288597429058904446711512692467705137320864067124288889013889156565167707618635151172570534090280767068246630281277122384987097498060382688350387754217876389252073277361614911116505914468170911299484168262628641185671224697441127546039574164213234328637847576147725567914013504753801925228646412162436803359202020397538487895887565727985547431703419068073997044614696618080504906144905472151877735249096422539664417171966586663617182599036978142243144597913442251152492892069574233517196141007727094041362971693819934367286377197052643777687996051664854661060292870966003206290507675797622676708342567605837990363686605790592534423444734970712754353776473615605974383786657723836458551357566723664913301927825267795511385406826176119863454649937957009622958610907595244390645960812191202869296598237009556963672796552347544391161236074926351281575594231420838679332991753668273409769415857692134805809593408389403695618966110871553864037012464855084327560643846147777156833356329219815173875571811785194641299924377262719171197180806257892813519314903484938242761752298226782107183443386976794299035373541036768292473739605996863474490591178099606066303560774352920705291674211493917524412800319549428018254680736298571075036868210016353310129229821507190504794240676412334269196422834923147900876735142105237193079679283164210163869498054109693400527665846912031695296431578349483694119896877071459726391880903903710125725403132778053809146668829182329352857235630962939179781412132622720438765522095688148231423229082014164029152983768593058092848834611469435932485464798925642858225775820618504103916914554828686789096973301928714884704919367638624890290119714106530195339862456058496015681809749726519040199653608453916205427458280822506637362812221005353812612236205968911328712357101660328229657677811608097223752826537090583985296341090568432697023007980227334803416161759849180064094920891499536135128034367284951231588247796829331064799408305497578036757026887196197312010488463698311174420979203182889025430277089892524269770445615187443451595616507902137546802660122082523442795589032632913415948521448841781301113246342816924450670369742430931293519284679961324926616773185756990005263884010602662440902118915924368731668978769094409323234317070016830275124289159790019380677669047212350166370633923838345678476270513369585595180112371846187852084118037930290048867804367236912100680289258043190766688121349848154929612246725794042656420430034381019353216578052326615247908767744488236461546642881230023822253715204273666421748996571335273500994361061250826821154569816918688610334863360856004752453176288210242861222729203068416169086937657667155971704214563488689865930234723833405329096916798188198206841117171619735824524988480149489943131735843044947734595055564484005879692783045098325889369043883324899210361211137042326108107720118224726525691657053998016371316128436272423874442241712657057992997904488159381876903009099860860737547080911112350338305161533440286418519157529662332659029776031304748002053094833313355959367231369846182412713638613921198930021904631122203142866739265736513626559200387251781491055749537959157980470186191835656388551484801213923267092542123520518261405669249694245718571049595903669433358995238738144095779614864574264559366968990274428465139326294259220418939768376584034808404055155832958844050236051772164019162505245596000747077149860656520666201087494258752664594164523883054134743385800938390384505071933331148926021418454220607101807312222627548778750833049866149809720829159382262340695473639533110856551948687145316521220452416949515207737123600722192127999808570415116684100698952184419256068418140051070653798017527969350919290756670540494985217991637817527217725424601236537621026551617747849164843478912362597061480193557480661471945069184797748898949055693581337624112756775371439220945584855830948158516038582941398733779559464767610573312145205847359032918860100705572707243136189204946868945451213065089267575856625567162968078070722074011379008046663682865300315282944836049462752969381714703559967036585865751751661762463420588582729897796254691141952937850040627116999155776086972494106545608459501773335830363730802915094869225409929742676412635531266487189716330103526847170277755649915206559768339563766106687745983642539130137636281183233867540391785674553326064828607668204574458599556503691903238381855916027555805625678567908157918069791877410414115600799766392090109921294049423110967598682111168754073115144910081886896459729444009519253524610129705562809466953923638265673414022176347434251463131566667799661728777143279600322325550935025166176596438226578439002932624532274044844301379392906124245688040447411691136876174349288049591043070646617927997249810019295897153052890076298804545625872366950769895121024918339675160592823739444316146359534345950018924264598066536497064920374429800773600042934320319635590597327946084703350130693954466235602614676971773372695658840346562224578752403244587577349239677757080239728882637902292668874749015259157756025631968942626587940776741216770695082240833205201530804887195420334514641060628070355691728468786691763586400729932926638970393770589338933156223529877048913020692934150869594676175604049259500519085088001995122604002770060367397496041028029640011013972815015430361076070383341811953700743776629201134494156009189738161579155117547348368645008952571823716623822921239516635793813354693558181296720783412555521654342061607529168625530400939038729075748380967174098307148486162040734981096475793669468919026173086165579627838940487420810939103953760726184059367633507610114046458417383576559276812919688854524449626011527476116050404460916324348949826079238178485103962528142726381052333241562371297504614566473548177277527638925471131952107193637740623434254049459627386828011122685644207424893689551753337446252780526361501484149999376285324202919805756627599138501593401546701465243926232354271153730012731674734591278938863533808655270617497690927934058416990676003092784176567209707589598871259997330074136990673278724330581435338053240442349488873566279712060888465593136664677738252955479183817915959303941349199495681356701542980137557480966441178230136911275707906347040057371806812824957592059455822092801096661501319317964040360446871665656523897364188747815206204837013043334347402460755539596630809008373711034866620257918228084984788443496552834635832643253974434714679578214094842322297684985833097208593222596945359673757280058053465280253060634753376962648504869320807013765228928280424711828185597670163649122802804194152503612593789697256302525967914372371607320879428161886077290430634680424500823897669640842171583931139729595399224975046564376491090362013732645600166861618544339859910565996507427780180549841953603954981559572260418487113626318813694393932492321017949025948837136330478282898731470747383803182224503343240932210132997829495448940053562273944501664663599243911823776637844871430126003131178593830948242320292280504147968780727900492880449928288983847072479281068005186482908449608786139665778640649875158724711573287452232552115188913293686995421776542035096792102284017540623246266503133675993844331470858104875781815994177121329857959837149177247021299067355195671604533302721304228484832438258350966129985416292058689899067225435547313184240529167661683115458544808653749113977274876770905276234580710133465265476380701096008185340873980499925104666431246968386576290473398444849908098572569245832659194174830306305454199743578480895111036675559007589973561865508433611782259191527143178590723437357248494974004172718663945116761477386519643096711429404695321118895930487663665124788971131307945961981846127175382498144258581801335505756114130720344559280114507533623689077600498760156654226243062444969213029944327572505742571323870073726815043137782582996404072490266164874006067948443607809165480341074728693545230963232104883086413817180210232103947174870005134129405989990514125198237595920415374914721403472978548879145559125252820717183207194720330107023876665068691107930711242197242042829386765961959673485635253991354484887947898851852125512591383572530835917634802182547081248625682264765117511751262925793008483462584412545459259506685549916026439914905345029715839940193119548107379327671761388249746234386113906374019285724642457876577705450108313282915106108254968688314461507293207326545455219771693620131760151036312098849889737698053452065126965574787848257981156559270715177340850210229319974226938563865702308153982284830548852563932531900863954417191714266466469307767873339424495717427615206971703748799868839568944454670886102012866825729732886544345616045454569578218480228942368756958152020706320486664057270897026307799237447634963979247379600189087274083257140471116273891792333022373128140811288208832614040185451355432189961233737758113906923122603846606243423762653522092268374146600434748766814718345345897943313129822875541222075856962347579720257206825496246803480577751999902920569032529866264034419783305160818050440620694163172675854339764040547425284870885593669404497267456486294127573604234196796775575069773030989091830488841871111121904872532849583287467333754017853869842984489732800356744484556231438831703900074322350496086906497887058578590470731991133969213110165987693579232040531902521710873454398468431923403360720073272134718777025028166896862992534149909914894971792433894948016862178430068695106779683964028111519055469534337680159729030776772908566554925370278715214208841296026074204122934751956759920380685205384365275998727639357146774360724572495582273094642491082529756815828339686598960127485588906394418896322958053908383418966679193614130044175387194885604424373270355659810604244260916934015138198384674605185040509349493858115828013185527575108145587167606936501378840300074838459874348944930720105301960476765873424696033121193481354134916389946545632080332131305678492682493659030634237997673453890261130920587555572328078696257724495556774773918022960101003928703056774969831517447137878401706278089685867972709054125270155512989792040675998737376019863178241422218077729641465781896030691047631412452012380052293314202332546126752997365432086883208240366317513749037082775120656547089192646155743547300398200018280971006017908440954226304514319197691399148906073868148641440215273504989216577943612318979420359008826075538811128646026369473112496364494813285110392584272892721996618469064563778540656907743707793108485520145025020551912019887622850209213651231492311118474742284906171596758918661560591083837548258302534341584452255535863491060389284079145512341774686991172356136562630133641404137562074910420053164650427801289115396975907388868025717039709566034657715575105607275204879957391855994367616540433656011652976989217373736843948190963840993138451701864445024752981850924533192761506067617746151743580176472705518051453215774609192564451244373531843726143026407846303918228747182699510617571262185527822634593210765253540525770345733363668934727000505748380846927657384668325036844386015470460091211239288054869468508863694938031353615315824769333700741689417549805774452026888273505156603088591042541552958072901667234435371640578758589351358968161318708147357709801193666809911209903348067593064430535581729499307382805629018112245787837909815344425919579815108890577921917459188285706554081080876059923701318682289263497403052959543958570540170380817867415662954411973406994928729188678719336199734902415536262935379007667905086429486375683178118056942261717222898649758630250990106775920340246730634088717116982317730398372160621176886924864767636361512874664358753460286468709188778150642729464382986172068057203325482287706567400331299269663973175257411763439493149029940128124136416691557689429395370555192425709788056466273979863498008069379302542851171226482330656630887191380495675931491221585739008526576557857021512205777418857097680786854310413612086746901648312103163525069174111789224945818591679863583480513086550743629832762157430490999613835213079947354766098869954275630638796557694087534918103823521479824710998078389077258322184823357927639122222455638382837109626299494448432190417525244947844291728320857087804196270663054936994921092189893885444773422196839248610103531184084186477975191162831130337098877226622442383276103672111531774099757784787406310414923897418552715396923180318193855461920661595274800035154872510504548828897958584008030258217081052289844575099031485186180976987861620893661533383010167327103503039117660837222671362186426720801853086609004603764996254345368724598659149447604472774130925950368636318364670261430702127486585856682920492923931212900340060708259154962616131219828982525185848648837956301021068421516563857679070074799220877095372467085125697727715477423312644498862380247655282862731565218885769743858418811372595824310853018404876118531381548979198363063332327103736182923324137842000678733854011398564204724860387951588533615376998644682890580905732623140907979229510790282653708131841886202464795793849302971431724839759269214657174805815897299367717966635081786846432932186820675929313972332552032469945258234616791706959377976968372273104163400798711001959070256682726800385770317520581162268927297260848780796127939772503011574314682016342516396584019747797393848106570782056482648740100022498982242127819865429487843532868049362032050834504011681877221556878191493827399499106230613288851639981555857281425436154725498544226368543423413083139059693058822589851296058452164738127057034325038775196434565310428662249956881872739906391262743932976272232538391923296731682910818299798523191983041266651611890946557598617007110592874001893025265477371070327824471741546540426544035854972637428722467866220990622196985967481023689144239646086506160582818824129246635470889332197479665011257378096787738518157040863886629738705090969008382260290910290457920518409813200591577155722769398222575954439751314558415148603769931942405716666455814909941722095276149388493064199842928983416910501978620545039372760851919685677121317025277508929709578572997546917710598888964749640574816038605077485826768432913810282943874622524233255552721208140621599942013259730681416685611922184612618939935699679420798154116147719164404802473163498163709641175462083470158338640358033344820511233804915629408228111901499008626229456240348275042986205359935182131878536025533001987099309573626449369313315703616449777279314975502537665316200125574262518702064160762713324076299083325660012030133076291935081103994518812131065194978845263679605153431130594408643174026898465102947189984211173478441727828863971022109704946138841059011346965172025522515628157108234042666488884635180872773212942068367065791417274610650405559388264841575715469926788856131999245554693425760857201711666951378070980253551736560966160984234090530409549382675847039081476577217044057763076353688440186302070425080309988662761417540886742582502350794494562725694817650897106969849820222755917099126303713847424214380926332128733569401221357315911222134947081562169854712614909186366846550116145976079436316028453697955862500425068634438876912707067631178039768503933252770931457232088060458112210108897698258164686038335685758095283183180718120378186305376402191690042672219731489168434096642527361628898719730349877331421216584015441730746376107213469649679315126900715837539199582618348177089181571391044481300884767577777153230660837498740295183897585398056445533758379064847486703662376090998029453173946758576615929900034188384742783780492121419431085588621879335691874827865805831314360963845136419491664475459320675758588822158289074116070819442384929905308660438476843088050640823756866851999797977321756444770890253423978555059343234567080122455400087455938167190808872573886446594006017671892540663487874123815034737967241806601057349507068974022714748803621900515008742954250086461214410224333085242365171563149136643120249579510377722224205485469012729551248262347974854065811940713871742877772369876648913196250553300210595920861700866515818191015936982326290475595301978578971714148681663267498222647974723706545340572315394430520521620850530824679501843264872472829476647934302408638689078827663011822539286140448000856662111942660692142981707249118854034833268105105149320252220248486290573562800202264301660751628689151140779939637385407495339991248237679750368722154049060333378892582758775528227061006981456772237929973782873830177448876772814797232061062990172516298883189339089793636142758756614490576224481241401859027913820534519956675342258004514724339179289489269941271439281699412050663520420549028437917147703835800679962915870976132979577871462376036133397036665590830117051231046302290264913922322577264258790459857318345758128990966422332895471465527528159119873423708130885351753640556188245429637656443605069433965202615539798668215915284509771655009135298747164299705225705684079223758153614089888910363749795782400424129555427010257001162531813767404451260806274549638733377412924153240314745252542266070447531411565901717696583429995934978833391320453216782173266642955344233401874590461176987633970278099619025352257368805074433386321294703479952549565313614682475623026005639260560753503904908941109932908842828073207838776802766449541893325536862150377988151824662330887469961114854533203889668845569000513999230731227401138618814153957175376007799227113523529292478264058066711127147379630723318373242425081515542377020452552301503919120521215375054860079591718720847234574498198034301815688525262349050118043570524544955215545351795442334775187927975386481617180258650698817344018568535633007645352516785902454312627848903291286367724109461571749704291260331742576008267563900142071857195275917744721262898883785628553484809403742359281373922444479278671081077252903065436428456018851174737311613870461330323294021044867503413207078669201729042385982400622924951874668996662478191292409520190372673301198474521234229439259247538424817525661707832299185363608038679368319915963334476961743729323968777597242982480137485969798761105659005735693756424065586121345785932966800991903494825263183135593647118801397261981352276456314235553677721783647239723538784566142177159781379424249179332647546218254458216907314544174533855863458350210906551145175820131894396966563772968671221709561260468964326798092947961531511117577623949759766142049714103474635733693557840173790000534723954410187378546198315575721112558308914713535991679803996556803708252624498013377791779989156382841275816575941309618508648536946697178333096042531974329107819383029333561248867791225221688294545925909206256421877953608497331425982258686798798863759469233809921801535496711905835497505103416867336486342257595311181846667788845803379457607341222767996299988827998640846819038583151087705392955655366220632471051737241827216374341116540189271037839565118978463638903285747514108561626001914050170799204650790173503862023395503474529941839713316273829508653566407074228499792363595290689669605419356457258109295234591521943513502696915870902701257897437303423637466789907886454388490814259535855897104093032401877227572668396628182357051901733372703224299405123702253927542964688647420907700564997494516188724000566770910262277647292014898722171826923194841264276638138274539051704842782173215076645769315306050986253611596029860005288852894190848414971457487312985366582698608837774766653888746702687687211650129664083205688414900351900795648046542984693583503907017410744448648471461698053888277080128659023297582672577164185077399018047553696258038250968559965194954786201708295270759026427117750569262504394950142956974091529703833008507223401873659507335506138157593774058536587184378136046494739214516854851036793765947892738843694368143747506837939598763442169080013230028769064989444450260866613139393038122999663609965795204659858789957702483363431188836058566811276904257979437500976243962417721917845303259484935181910609307105603987726527979097504746539622005041790202399553409362324767382579253728134032905385592527017402219378152169707476417209801487791429142921727172351006493628651362821310083815373628670352682483797673746248519836984294403096811471308336333412063487046959418578847621532073543785079546067642433605893838619488160039331596080667782863916269082493172817567784789657259841732630271240910706251484764760615880621227328256483012613797446711482396148220217532673074738099083304793437905856127774184148148961092053812553911194871780495080713268590124330815215583223436894638634881273288386996379552198748186027480615429985845459931633494613539009642325252303471856648150210730881154455827979562200837497231233476182283876133689310733883746516197298309427531580486960753810956127907900008511564480733709720166815497022805631273889345627143957425118390905174554764288200562703062256980723369814709820981952183796900425548517922562997373556358005485790086101076546240011494004819379385983682075576177672332828438721007824536404042486906453893979838620911314007979150956399219707257987334093328503492597527737563528350307689318994781391648462227171651701860461901363344698014690022319613191596751656911849333736025234524354875796215821003696789502133538919808339825528184444107636184989490193956814465719970508995099691361544211037902995900585548484875558253055906314295038296389978063969262164546930928488996346865831343360560491113486987737369169812757124274022724023860639490092886973442546603905260326635063499243389653793299309166877638799039097922397165695069409928939924168345307449869468810319638902910851173230593540404708395227020311052743856664421494818732334918477801571057677207244344283958239006111524270737393859791132606133936732118008653943707753355104247689180558261963802615575001480693792379228042080423006214766394936662594499428086732608105484794788158290462676331906938846581664598516572418306702282179680388779237998503436439941122517899499781884200127623657501340110490116251917785328071105119892778732137610596614474739273044099534479942501466216488848174394952307708414532002727414692073449663542747860750641704668681439366624531146718557863616826531374030045683056879828722352885550890052658806817150530788037031026135064680481643879440889597765116511791008511018784941093744397018398364807461476305855268774644982879303282078906242983653713190679874530678439330192411792120468578007497545303831644678217255494777180967207397892383391253216147561910587341379140776228595296001288334741052908354435137135338769950794138527962306684198160585233498315877419964730133729633703168711318553935452311616259727826796009010192328921533677228596798892387354056086156113995270297381423608680617692443160862640791983646895446719397139523207082462124650265896968203824561750796713878613797731974625333332075563139609716407704191208599855972156507043041449524133628547872524338822485578036319437266003021964141266871813876302195205036272417388501173195552385139435969709205336538721853309605015857840075454926626225957988843811895967020388472268580849082557253661170678971333898781106806014004798685391869186990149408838477570481062813770517449792671541731187058127475433401553542294132106803465585881638890327617010107927100287552097921655978883855878170193454936310921982887298830981363409846621489982537622015447601909845464351651910962759754389051151789865080953693915021138681825076329706359361964121528424339492319701580907423202193168009229119751119397317963506816518196565614182757621664492122000929806228648381637150984452877267796519025942752589839426861966442571132946742518062277907477336028560673131430831685413141145820178235997880767981302050900503984301947529392523166229348402748589212294196100869618932509870153020938301401617933213608664583856380144905495502534404740162372210209369993237487804903302661149111108813203113831210068061011477792409704125475962231953277269392555719517641897198369041618280152318714897723933255689890549993185625567986204302914861438855145448763443318192779754311160703611851234439581111210528541356910968108902698988544095667861213501293066531739923980752150769919465743635453751207514226103316173492017018873080625410366813284732167900786824288741264698230518144471459363952133988420319024335544044181729985662450641471516234060339512710965683521465031258666295598344302996290532153750372521232551757718115216660764616855209170150047501826258963040820384807228269345787455228876266812830934165511759797979824158474889524044239438254557377340834529831892460077296880160503507759499738961766034544612392687691333088778336264810421404093549692768260619220316388738156972695529942679431776833190860801559169917930554038193045181318316881281143569147905724634738155223800775611849925906419022876634590588225542721572742595378438107966129168740780750018597656483010756197787249738674836523112145083497106898210472568543789383839233925933525880107374629981707243413497607830686938052196751976625576685869260334588628835341269967059113972434490401554494139124229811084949878094695838649797924075555122896043163218738763472803449157336983008459268249111724031378417945050231583390679944848539761603505590581988675562152723017743516270721720606860732525864275221322136070916848563544196165575778624802258164826793146184874210082979612304471163651688520874286696729213942093664557504927706972548540430058322920945567079862994137837170668398295781882500791120489363515042455396572446602364451596713342370069846192517763644779482465157612036060567468732639649205349189091382540248442288347245688948448377389662378430235625323382673933342154886445238499876703357241045298335008499624952212006537372510807797358259633399453110692538722230434417614865892011521846927121577709126539379936675853442774163230842903562424152522162394100354851735675165357252848812512254837574814087847179995543531111605448487032609255676165638670352244320461881277481977613736637226636718758324041587889356163478654259922113082177284895531770015686710927955585461847776477115799159237353879163818454743538215993698594941207822555921891968864324640601441598169991836609551637836215406074090967478507927062773073842842954856827544852362663978034793534509986912106385137791625036970156405669970709329757013969499945439216417918592369021462144499130490307550005959600930390603302708013491672001281351984884359962067649886209650037435539215912635373615634413552196702437562552440677271846161012715843378194312609848766233690414869920742184835222171308736571130274743825253980945728384293874003818289370687694419272929813608416687866866865029895429619895505174494565415008473092078233866747146318051192932447740978086981839330783483456737931445553512779654765551803634587452952149595039023180895675061661081640518480939739246055916662904651084074539994339181381343042575107157791884696547751290317528361523567451096461319151866082478460631407414999754793801800574781605186240817408854154410401583817444239613640028966350249496702322935186959944255994140934456888500696371354387113156523245393176126452525949613059388675312366926402903413993647219031553277665266101437595170244239739167705136113702498536279891924030371527077665798750872662506876169263903542361935385677149625057476126300064424096601461095879992347851018189595310040027058380718226404882325790256028737149819758133136902336606362007622007095713263472913521578392770981979818203901743992371618683866744946579753254023339357787297306058971133160707667483091880769066311581729527231385531516406369729637759641082156205708498432024208244111611833319870364289786884837045691725874316703791673427722755500540087321275888661686579807872052256172372943052724967459394109399991219629596207895750364863551638221965760713645980405305589428839944349541137702428184833916622737800038662200459533387897188314633620591788631977590737714311493487668120205173482008409737803948925473158058758971021413171672075107659795626325804733724800792624071525654301457413796300641053456314549534604337072157691107487907777898470283401311196085895139100418043754712984170528269875207292411575565441242912579429189904489319210098773107556566944710713424268458805346449277206751230631475415923631725697685995224155122662856833889836233252732246763822139674267057367995584217207128562994160611393424441450484424651739829149056413099472797290627978654315878191274181624553755230288173818083606906463964064035790408606373225199615850457391416217912988632256594701108285787138281638594124332661344076361287332791140466642509656815639520012580106616190303228393895035270363299527498755711324249531805209385987107292013944480993455805297625150448321701552403877213281214675474581166552242691153147587493870227542173091727699955072256610916299368400073856041762797016174577963680850945769095347872093370140614017492286716619000745764086355592759990601516070916835676798218017976511933274413019829357140299964218486022299235653396436564622729742151135744144876169010959456393174044803933622873441294717494147462426973899031090529569785401383381200894165897481632328197451892630937681011976009683550875522979061818899938881172339992664396120744025575234147592051963537383277257698596076426555465934929762341239762879607386274389785521797270215391110610413861308498907351308378269210044884325708486121202182861471559117998364185572390200809067536303771816122833605997802906462993861364722189910793432120094154303344923706631358100964161990347863537880454007902609210130829521965388808108802773958245851334123140321009193791574713491651817890594778770513834868510957426175532233610933362287558470729322701430663436555576207837118157597746168330395600970028973542204705557273985695653110100802448813752906649308350293974848978028353300641341337028942591677572939059947315720027100977971831434890014012419268823416473380654817066529484725036229451527207889144795207095290877312218426282362902207105147269257887849567065986593587213032506611362184774582105993446126850313901339249556292621503891166015666288857760368333931377928400254051288716109626684994870952263832689852965361781511900672404124409529183568127973770932940787027076107076123565046427460110158737893961867059783549103050387858843593043375042323180519129906136608549751217147102163223234589279627205314745258644669196452154239994167892002095039427776503522485819014631287672727802351730221865872035319517187221366504926741287148622874270879901541594686121783487362374823335959608962535591134298373279270905769178991565480951657474759967610864030414535191874253141541127607497808386059668384931740481932323294383147192631046305890444449429824171290522557718233713811717207918538313809798140805923390486084561232294281121295498224930672498007628612069144407795214486020435971365711170844426452694822282002773132833295353401031011788359856453728453513105720445274736418752379708948828073231324703277619318852622305201133163904144778411999320035052641246570624086852965619782487053065753554414084618016546271723943274931635820182316559664252583237695804080263832725560115854692951371293258700378330987318281974476702308989832839631163901257954213089157295260651284299368698113858214567580138151916474294315175662109261326052975628648067337698676266541824494020293870027383564879138179307347661363809438801368105271170640005206664699681017003395190766850390535655793959868625616370835174322619359201867697958788358516091431044551381108044829334339411692917447986097940564901781016463255990435894978316462484024426580048999589559918939238005330094133007810981822790688398102914454097566908830591055934298631116104872539842727621711070386062814126735127852890182418398924521102215454240765453935671020675777784827597676470855735664051032466258464766385706271096126235954929663458331401019042647205601824579221646912213314491763142980627352631312967745764448244400101257411084489002289883292766932506309399941056801318757952817659982265434431026615938762515844799958444601378462430652329935079502297801992949028320752850122870550016713373800161277569654218840388091154789062816806832543252889444963832572636536508119993329078820327818975538755374857226807024312271947246519599100722733743022585640146234279435136605143286584289722605579245588734589853502614619874288212623111104468328693439015980946431839046641447302118858538061197945334876341839266240153913304892469348268862608518135766744586115914008010681967281383833278852948075803204069635082486989525923933751144596615942496020721294772331565756378793992830055132403805672347354101485605904142885926611986817299535637166688589541228891645798582442171341853363110675076358238869573828398466890069926232728503543393154262992763153209179160132846221102022881663371397712441356709361883846122957149065616350898291612876190487661071576220949148285478068588603381677317796829528592104672226973359765734753341353481509296623671438781214285589718395809550994453240315279955977926088486091969778865658130651836200817508909804797579507963079150325838858547517967324256944284381165259917793203566439168261508655733792622768539449587423016979406746087877164067225742373922645870250760905259825490355766674920381356680618955641348946690539668637909877012738513157936415620323695616749634520512479727928546964366421605643571435801955042582354442654568871484503498929391664350388189343088497938733251527411234226888058152559812562213558874054755474081861545495204893058814501740001223589897157573391701037146912147755620872749876709418758695372343201512117708792469016572489537960114761233257157985540504862319937243986910586302094964564035018182817467436501112296606698636439780605260481970879924044334344096960189299547461524588291700847692833766904658643260355694649898067776179443238615227450955501906155191228118990188543035684979991569110999269897941594272495486116355471467763352037816688398032550798879336391636400986973951212290608055120036925905129464927140468685811239308097159773076169768382729462325119609149073222193345761448380695194314909228539344727353221565759730141219758245536047762212313687862209224763539222490428617878488484653429796765662853070122651044336732179318708127753733632760823335077601683541435123362991397868283737158415966331205863751569730022701679605373334714134164829816963023567285928304060677667747915702881759354572759570188638906694127712091611559542890585231767795875488331516679846843767939261021781274115314453871955612882402322036192097956685771512422030475031889478355209961490771244952924142385788285895041752506783950154925321658273879796116047765235853733285550794345023040599549511962659575754370729066890488826334006054465121263113871439788107265261117471555044296965307668111010912882133528129319284267842061062185542657770592792155138314892983205349641643825323146107326545198401239695393234458261845167167323716712944813181576099187297514964072636797432876667664340489018575237954373711936911994266547850654021530208346475646886661038815445199822213151551095558866031140514485802182341886837349509526748654511113637383783682926338348788993795491349492213975111248148199500626968223757794008145743995891221641780567681082418306992553554822160871035571034984128300572156998034226298978650282694578920631416726575765463023793300361584508230375842326764810650614921265205801085249719697299339734069211769759073117445505635474531241536634148787188684500300077217937476856601804516620153112763737736780999076392461185795509555956289091244461779612723156948233549930087160261401173971706744344858271458854118792468091116622488463587696732800603063476258620787787159995108158342110183020276813455826709936125519624662529170526708555227652108130562115417495211687610483624358046359108839741484386597531092079263617394989336464719574052834825536751169238249579747027046862348098714157535588703156396895839961603490722943550683051639921440526056604243857262714850871848993831913964263923455943435993380628143458699639954246934078937533291989532513949481866046404879438701323937920195857756808210371676781551370979570128209700724151709838040195730454343089062001874190425620367907981121607649505938414552089695424644414933577992241902224724165411911753406431945620487131129774468506285941740855480268102536360384122291425724428217077602208579568111648544591550336036428474497108432748327320351315832379640500953352848412945386053031203648234282110509319578184483565681610510608725844731269520534631158840436472071876466295428688904091442664037020410319875087063282575968258795871693571935439448497313224270325446373090288371789739320323429612529236054016222887547880949833959520482274574841346519906384802663057174199171716404151753823495902541125410757738988139710729609133062588575214654823952552400779908452678578437405754943635850350873249205042831871535507270124783423212280614372116164741604731751340178351924315450066609365353305554587037690013754519427996482023550686040999561625035373580778632608238567879983242277476067260262892206146119805588100401803752376697567850472647036534520346570619665715165741660051089186193146965632380329511360774086770846153584040102444389957195964540702167472422391486112408683499166056307630542431164859626912449784485192896448961583602852649940669612347395383361471052068246796791521779983010058914453873505458864355690318852028580441135113977060926237808736097891157050033877648714496660701860223871802549608346427887687165515813044741244963081866874741318764780988902333102393680423821720135196776303907140452681345227835108844256426281458770382243022454984113717946848879519008857200138864483306259214462119318876895864694358219928579028530631372085463605604959966283790863067059033449949987050909294102024137954058086992532178524550516791997798166571230370898092255000341324358808675469413973408958731835095380328421943267253174688391943313074660940051874205879642666906005235547838874314814235585796140674320710767097566631815593767379449906343547239436289314356838503565841602458780785129586493505010667070246637222493117316140942527386409965650958528223555685722236993742378265795662427668942847511122432706577296976459637811209213573026716207001431075638163605590280116556966901785688716394464858118536757228778256795710781518280472114080849509910523532135904657211708658230553641142180995314432026160532766869678674546959368190340127191865384601733705535968885880140412535035535764011049370233206889898775584895664607551772493205168675780917446965728160504915150725634425519412031766321110554191336886298805435017802241492054277300222879405852084340003317688765483015291082451949691812296361113763808251095054589323955712281377683104293199570785958262647838515532843478516181645329660111451311609703464685407969005296614607660405659965861891182838369869179277008867741632553255020238819777219125887685597340910254264011135493293170020711202975024901294260617596568962962482637562413187957359570962807279551912203133200160520193175898685505637932850116158550688738695160468490101926137996019924740213631929723143642100618549677470443200738262982820901689291771855319517086699287682943781574343424567575595366664539950300890406172954018532074140946656706993145448942334940118251721638228480196530976346877577892694565184696050231417172447390418218578261313154449530809151949543713565519498987611822826614325944353673670243410260484988473122435674107790833050126339979745019496383406632703473234354415530921978541814981634020362051860301946291612935399843510507276500334035057223472057096007348890059755870361198063455210800915695732745494139468490654116408591482444493252336008844233844306118791247939477686478723986600570326424410494352143099517561667375623237811555690816884335830640859740622488986882097917344963613464042442207355758812772588092493619797953865385980405447995233263551508624957686221095490562226134730821024508973017012637474780366276565365903295329991588053940042327688959505171910601469029442732395853993092601418179903662290764584459497379942572595562596729279932979824263204176173220546212862986878446516396853644593582086282975759824331703829992356472251967734208960402504622965356982062891144205834656237916780786875201396777191130325920059182830430501166276157384385830844568399828067254039456189315298819892659253457883253765378401902136491638367112458836244175572091765330836030169302965003420380136991815881336663358576246926443981210193957575889720658983504275176860282605137803458350098441357412005680059909290481433093480963044293678188109771885085843717127648173451961012090094088110223600629702645970980092174716094324732088687521135463452942714793877550487712370702022425800590976947025679543093343632515543040103823024772277079420789886747603602625707490906335497290652353524886608132013429432937074370489901101011318094579598315815781327088088989647675231059283442440942781372282258079728418187859188861960325673603210096236270519957684969127671193158731935233549932839378416125257421015105784109981651878061749029825090825739126418226791935853061684954085305042851855465378318743381101579070556439056188773810682629184178871364840285904459693287007378075630504829909659700048319297531203398988172704544621179311211430396464737456318769486391819338205037055032069337292855414838665190413310582418186754602673377257943807850133704606338485846206067386624851670320400133585954195539166030263887318424568869918067904397593017164720616419269852379786131445850032111282618582648498560495961109556220440904743108565244328752437361129488928027215146703348462473050911805315390391375058609980726839659420971220580691197532346895685070280173314687058811813614595603247082078058995847636313323651747820678904143110064084498648536330205360012301112146217189980617939598193793211074718404340530368454823957990756608575841516919473521494815406006883184586047836723416095538974968431047043179918453965291684493258545324955131491146465188702693887079075745975177464626643349898146226271442388097164411375528933918163007601042102482441189779033792692172189731361111878178327226735387308357469758078934787490472102307108426371002012062170413998788969988675768752110821335980583623411078865427545608293557240123354828095970228129403205108471539999210333731795918773204700225281717229722204894237861313991401527037614671167879844362845035928543603078334134446257557853138721284717644888643403023921622413409105320262864645715367247137664041048770206494159142437379984504592174038852840880721436232094758424229682730712273410801834442167130585091624067141044534008950711239741645337826361189819651768250892313769034930862567755451848871716258584725657347455003557005968714884055823206605954225994559457642162855384249312931691143186489092922012912559759821153584582754043986675050973196515166214164365208082537112266845169890701905227628214473494896272639242412074961833575599044697587020110931570467890717605078157374253655643788928048736989483249772488526796105530209862458707479135780360733323901742479013478245820050428523460127385205262438943202345135220798376837985488262438173374978283581398530603701694670897212126194255752153565212042213200072253993530925651626218021686114246254182758102755560715747266580403660674987494394710072262586258522422256891959771330376208368711916139653057434960375592313207841254248719804450144612683347758164947683520309390351007770994178552411402289419006457394496298160934214463036431333983574935844879607126864062205972361435611728360021679704759519199816759841237542228364209641644482418475442645618907408244537891914162386041307913538789489208339016517210031500814585054588053056130418315285366930407429484177778019053868278465419995581197296113818498776618530015406438977211551447541919049888048637525452333836156071566328240982993375717725810648600845261471833185264423687434743897082804533213226076556584110986583511619750804591213459882113322479421387069332821225508147116979062580974039052267918947028925721937086860823264207277846591965782739039984163137584537007465382829814459980205044202281848081889652775666910314184261450067356260944087451590945010887371086536173900142125728940190209997823495387277328286297147064879220624475746170749670522031440873143159736301260405191329438534406535495125806406832649499430891782599775517547111607398055217427912349309723672539910414997315321015941411939992897001319757456690049355562842526229139153946175536399128734383590656807335788947825803706667552064370617769000169702151259465287880315440523647650540646245981865054433612276499016506732864631958933585002217971821911317452426455874059267802204820452048354619049262643009223106439088949423581902673227273991552688156910376756111013944639655712152794359597855320192772125979371405480894012193376478155429459352996550421660236444128716439861619563578358772657056116987551174022537997795919705666275079772229088421734950293717353841693689023900415310211974351249208542923213279152030337199070372723941434979303669299383874583024769253998134506425548670947688647349089819048677651385424590922918738969514369612066417266322607999488116976588133415416186149494644437512096681080375953909135537874494032497472321274810549510245437010588706103405994416738346722026490874484213811227863325989184103038297887501052991264609656588110098293881897899359620632641752437097197872517967773313318789228171316381036648107037271203870369532401929986545212328831198408765497577129767824591379367443561307656703024526906332292818403073980558685807998246075186933087779921946700989263642481953298656668496924695807514544234360989283346971367019570954624625273790372139414612625359091071345273934918448405707997176561334010486553566168735736235831072432175959701384133431083933326775228608974943109797655750017576510585951189595654316829501570645336988687426801331813458739765134499132289916647617291542152620417965098075692390292927633601880532519126985404046135939677226719452827474747113823196141872955023120556459747298228871040654681145869155029590279016768342782779691196936749825801096761405950312801281746253212686562731559821088897221026591114043389066237734654248000386893343488024997682445122192135267535715258264776733345626609784701132661041598292019554154070383484809891740817098901369748852630169258352578634950490711042587119526823707614606648053735529450330485258601591961912644491367597374231607692270193596140974168095835449578243989161001500997898022708687726869915554960281109097514881677331818117156026293264352590319900228572176272658205274383772160820119903865203746339386810389764931600056120647248906986030737432991370251802966199417200286361945684296984756018153280068195050579000925867048750283491503834897815852867174789038737375742641501155156330664894721002457724286292915802383688163803591547331070348934453951062050782529491671496665595718917017907328971725588057724182691139725937912996240321930134940702589621441264145257752115348647523593597651850440601136495601647199205619636919960655138348313311628145109655983293066410965089912242473966277057585104862235191329326001892081737692574709960502012075003947462252626578688423577427745353478462383403857125645936141638062104151270759220236493322324648279432447485574808628963386353676744145130716572557990601776638950382779347331023056446049922703679360792778887526130429009334966557937908862645509454539440633075075998281838550903459643081834618061522423919277121689439355580728315516930774819268166241213661285927352848951526077237711039668595172980202399927477353184937654483073751462202134186757103918303179005510177676440922296195789883386987047363447512195001217274969511014558870845644176070646805239230908951241691776651358352442146147563158756289190498516994830242203071827773935542791385300211031061817669474056377347332725008116299553989574283539378341388116544312591405571756173081457981614382599042194533976777989384434482099519084589997072828256067530533877306664963049871652869444910531706535859271487374114873352723212073250933881569207804806215655279002463321511128599821717809874745734310255969489057869763305714329930927099752353928219566855757258057757971463634123371522466547796548407280017840301932004560649737732647756177914422154503282352367526343249071497239360179939092394726851823506154625979785014644865357375564086512852300353573802061146213225622317116668062116633582170683362648615234326172074884819013743507755959313182624862727684100054288513706797636486005979108102029691886665581347202112625817245019778773850898449224881976435766244911440961948448881157287513093209218041076500330654791019788694368166985632893951223040896083916828087221720158328630671604483617442554022266602252931270231257522219992477172608174852367941683251931398237310622096137748764536232677149728170243629956560795850054175200588093379387219707192811410290506903187923346748140828639991753304742213235853107452278841014916007742687335588732470404114677889176849806338763543862843633939785820589978845328625373570471991736352896432507320113758841164881811358999383522502431142462810198799312816890424698824708653862325224290203391363062529081188145194850909977903064624552469743231743756459392667862090289858933071653452143854116214452876147736406972857323767884698606898273515127551081050709731073871292239742106127302811798412367886732777002271517961804671267570915154866787997860531750498645203074113168731709789137659847151431155421249717125586190733767297086994867573180267046534892487091272197573270401821162667266324373878924559484437166708268010731747445214953440935366086106356621564142974312436187584278899390420412475342280248135511859511496686134992306520900344049849122238906775122214722030605568260909559089156785783073125620806285786736997979043619681778856847187218392854194209557553491047771391434116336234600314135688213726761549627389465599511431042744794585127865106004709733583436055293792315786037292984053571483744403230024378769091665845407442239403678231921064798129906883845042039503918887802389238518046519712607655013721750753730373901197372949392583684086596305401437273174325763537280584835616342691627801234088862716709905652659866209754692876332809528696702985926830855737403985793302036219597319357972929518783081298890942509826796015934826337618038088200232458394496181166533181708629019821139242170663142427488872001763187176413655840992581172943141975656382657596398627930615140052520277961297559779879526365870990599249201075120090947956194187578624013073604551589478999219403883996256468253782340024333855949824097720272189759245816719240821396931775116581910149138140117599816887412355693221653597348157248381712271656102146524246300510080396882814359418194368176571795128676941029079864723387124721314477162679075336228957245522662040865267041707631574917008695474933497643161405501474515431512008838074774892993852621882568288480480119828707900385735384749529941973811359393430270707483398792229609537668751486952824162169016913351861470525752356040096062701169878774712162234426503941876492752289959012475132233000949899496510362279107392607657235845170183308623145930764658703865346087932812957830616994952404385487139862885234015938232352113981964489114172694627986361874737671463546757601422524602670748425585832234423951596355762018629387415589757377654824033841447404257324042400583362658945927029371836700724825520175962594647675025981058007498953127069876346344697430532309688312729449772737195595899001724496206836107285083142097578371743940016480051646012541733469672644184043735547392518827165839699280010089035062337620586178377101584471303443205224667968573646909581927790123002548936646524612886648368564378384549430289877125600654577430008698434604687512908365652265340437978735490812161891150157774021562877181307838326878458740325514262831946743715121840184105526346449557704160486041216046875739958302278560729937276054655700552495144170753234869002920891062661966322146836704915281927897265456383507903877123944961217494580873800677267649516572464447046120227015350062636749971094498292361930836615595594556634302254802970751054627992374131377457712857459755274584151672236262732886375201822210233962069290061840845859289288800125926019466689304858632184123167083821065290613736987663056034995563331780490371819194880017786193792767452336490076774482954008828100536947868427740558777603059580740120646922198053419860680486039198974201781660281769057106615718565031788988874939939199495668528752088263370685196832786714706605029134503108414643820380580515779240508668063521206585520451226977096287048445684157176212524273723582612264257065005893955748204826905809618072856006171734585527938296803506944357513980338519572583398643102231440635297676970338651450458007013721412433717894617914342672483063933011970733231558879856997206519569672379855816923137773459065894156166056884469588456179959423140905091134045618842411251701635791969595086868846558862654822953094134383516634852143569144694594991983999749748789728843723820166860376646413027014744965585820451564449405329298049860408981732088507835262385568959355390417490599481374840105544518305650041915216638197946702012563547284525239838328698115712720297772368582249189060960989238713527706856018856058766422424881725313252215796593822752946420912341489445089677621886571566795891122740723784221425834926066998753036901528699670705016723859968662372348764866224496143663510692486182449836263754794990909627902387266413803983281043035108918873517884168262939490845759635921387013630504833873950042000876207200512625967421134671207493902392762637467301467699055916950593862491718390983827773872991699499314680771160084166112828347361670801855407849781583220031635677567892231606744528312397208296377500309301457502745219354405764390364181151734481531559942137970308549904785179788634816626857805968270709519044675854166385793144759764376351516427569484936172054214232714392447286602451562197724164335514653816911211625636429955454162732988648355962739495959896123300205015010355720331090480692934706530925301834882083990126673105056307475267269475094641005397428641638751338316352191335270819461770722383050508632930082958936467289167051729912163824719534743636062942169653133162905870469025265638769136175372823687464162770522404180851274546876226552351831045553526000749363584317574330481175464523343134396577490363640567989363213413246281449703637637267640610512344772512429138898106158044562658740138831745194277822882199418773048157570691221668223453806415940085529258948882598187745325462446444069809095983319195142757360495874402714761258536849926353997870332540882078647556851891387720518975546961967629965432924391031562034898756131708433785717502511457543718190712926197022871798247508742732610105201705650391625212023968749064819784518771234616454861017949251259788875456513549555484801152748993440438745041993373447864363643527934665661565883075374991217356385328796843104636272433645195517640595182593317474536468454341927438955406285339676473905118703475927350318260966389681251024512109046180886582224340956243782761284563597210831516995769152688394666251938420541805574251321734014888168115026587098118022454136888235399568200016818744425660167956347816393059215080439915934766363089186981631473672941789006842078261827106552939684435504958217390055236493877558232498196851549774231495176491982080207077068447389159137452788847919841707640633651509670703885666134628289798774996849517356873079617107687261046487449540754665645618494346292922936746661188841510177821545288229879413447055042733956393910324614389042894965348333090500722038925347124738245202174369725904902506630140251837188429219488581624575466468332375500864908249832333737870513036444553253770155449643841986725384278198588727207875745718498849358610915497150058397295710705917717194330909232943288444414221013213351994124661778626510936511442537899046939620171415418583872491667986702041693956741532694957017698635160683025136204433766662146358351872171010279615670540860057583517348186852485152767492162192975579528600255784929905226179138065240154673849423142216000389556682170307085042529920504309397795891118345883632348775567525657200051587007960525484939887974524164185033565846730409442879572210960944551107869276112460533926928050521297666161742722881667264681370119992152419267193903028359155716741509786034029314805995133995962532678941661837610954857794556692872643712987892798536087882031211797456283624081492724731232362239871231105940253224262032076261483468208786883239432743508946911065955457512631287961186290071373090370817508172387919247803795011169788296599121249656680392594689850501463688572494547990889626501744224542689830277145424291665727048171484142786321423309329781744073932187533264871961105608247716668958963610710071270860095165584991130993323909789260838295120717701344387850971617705575461101418485786252707262232473978568070354941129923335603439011412005950086333296648250749281262251526457221670208108330185417663446581037564477081804986098803972123542026503224921946412809001659128261373624334596115054574436995825770613823242326355528316750858898144404822809749585436127485039750843747635431370122723391221830337644146503245340274475866150886717778012976272009515581427969181771000768415735434950906420827653427564134376046240128056532058084240636816451534814108202143902093686435666675260998562906774801118043639978790450264497761069671130759185433761635819350316958821613861932278045380126008763180410483249353010587858189310363085678952462461384801681295729514133925581853689296505265596776228098079121006058953950254291650219093230272950413840943022712206065736383666672917229995202591139798609093653329683434122767755879446008883814079709994372435350136870606700416938665423453019959250585189169142035660721636328468698418259115064137134486306552560026781681295750419693264125059401823581082077607572479090496595200736507370175706159861261674960829496202028263338975118153329741293358954941340905991139018246940830381391318537695157408159251195956759705553639876014677710788739868191747938950383978646380577693908584222006525177993329360344725618291805625572333599375978739620846573889628170414875704855516772088767872768739889269282092303324100857767909221234321295821304230570133797834638203554948307370384778314668953534965271345942901556110966117224075039519121262939041436655261918201492073115381453390365506205285704015855643369297914887626774171219980520264521624116218157014080154513875332477978944901900605169154604848542724103464103761261260429517441360520869727933340808713963915576939211758654465500925744685868849409751823558330506156866107013090848235839811451787290256158051113359578107317460363400956723416464114005799770476678022535856944058693802455104379116387957123048115114257384452716252783949023554661419792973894953664587743442490006006623111758346141837729818234920766931772016289047360771389887602459988164853179998197621425628678288529009763950821683875655916867761671440238200714352619659817052895487249625012731488628307091546496191604703895533563913618791490981874938897715071524799266242840761360136139107732458654736388035507043300269420415581342136969929440233446743655534805674676603167886953592503045803031618096134783383963875871120732947743430028094504185806172592180652403729344826836854319735686890527024285375454232415926974211135151312758590373704792636803377719517621915811629330123058130590815759313475778426242564936720462669448115099988390053889587902562302153608341413694255949380670866171576241044851756718391992381354643694030974451131525248363036408961916210171699060803185216853952372488393264156365630433284161185138954279381970994679813596477160506532144909135388076835638273582228407848104914104035418982598500670268455615760535180174168767509782276667721065359775084054248068573304616146772845527664122588678298399296878315820260919783619284897173047957023839515161846187683549589721260771578375062973083116362387075039039489048781059949318528423613671211405750785081396918627293627226166737500536887000002738894750044809193116348966060495107784136140188832629115811698126015157543504703320539524688492923088129065361007432072927550362370911008244477328759376185909108937834966126917883155347349614657980960137313904382314459291031077364038744400829400611398037547741594536251387066371765181336302773639156903337362876646850727184858817614675277035532472793345384479551493012776543776369046581481627104018913576802552168482775206208206521094308941089634492424771628335974819102936079823547179898143847995401954468157272602308460066653455715838194053485213650563733355628611726405376310855764340657187033581615348273624810160859602589496819091905355481207569952180451419256947463039458933391957943947468777582426097020557205233602008063509234990199824195956940923237559161281588611792713553840348025165644624090396171371151248323976636595939648729049914642795110356222218296359343840977261759996075586415484128780196723769715913504570623856105119516421705266559736685257945189910383112456535021757617504564866384274626791563888184009119977253347118143198174391857505820812301552890792439319022606454145065010246633112186984614090554198992240479184541580868923780436233051270693152186385596357933893912872074586884729373827182304033123493813659427497394186806753548051140768233550567646514554152039287605256576295647086800576731324348705642944003001009717211908254293335988529767347281361758761298727338429980481393088126728688603232463500798048773126807083244708559884694233764964102406395064031386602260675452668173564344473361808357598883274413485672771480820240288402106290116286050546175654904177083246182221451729955794795558279493899675414358470672502558011656426148695813529172648342187106941795620637750997698910451218152004702350495398415928945747372574091222417691868457470095961360878331757763289199070942261660016551250866170464178261618661294561911295371084785885829970185924891948706757748167122325457954195342321715378644638080088355847063489336851201957033916360266582582356205402163417299777022982440614259258557265642664042677853885843607726229580364685522538349768076880602065281628728297386919027246979316149422588985947133505233072377125433768160013308974888313664260989765871898222528417512724888218847181779089736128420431457133269211992161557746588076634693237661346436592912745122421420550564455955002977587237177927636811258228030799271202196301999306939481770494621929342152666522794005860985301914950261600101831972147274385705489470511286447518634313525114775883807756330908606173805754692927921353040863380271278816938942539409166585137208988121056346215318578233519340071085879171623101253066722685578012873309780181419419218797352783621945891794758437026623409333440694604467728633950017434990866931458774145767227235117970152509879147170269416284535842693243901785587132308805698135009192270900984550455080054186429412975736039018801777460936115320751242867744342865040602002441462453450236115881020954086884764135542862726099022292656940886436329858455756309557185374758085677622887338946468765535084758774561786285909498758888356796343978846033096660864282970268874781870878843595417743851245447745149277085868395988266924711953143871991253316224882817086786386519780324538321424431260317066963304592315988563593141927196978897770811166798631613113560925025675890592794991910113303935725625772747205251080693384553978943070782217357317187585154965254630029388670372872423864458235834943429038115205443938786027040139332556517165807614238532732040815033032836775176733365065925118765046914338834829660628575501874185234943860542155150569095779110163004463601125547777965518429423659485849484662639909345371896239793652312061311183594397147361685772299316555582330968074283700143005520118855992590671918050464435895315491044750615772070602317657211089660301720634952635993016111367158030510353104612516408081944195375804100488255342122145930774565409294976960976207439197638826597193638106317816901819121938246098354358917731568058056760928888150924458090815773747352803678384161272257910513363409434343663959379073322076298495766894564960501862848064372805208865117626500044089635331425854023618249506710644344159327476955368494073697107255016113843091230162739153056132008987836468819424950123541481016339822344121461848145672793331268767190566870380982431007182529149728784881424823924582589571202361994598916375411840303577457021386544936408646908986762493554276191848008976109189584531724286443196295680652399327592711474866914067881190471248413778150530222705465740278496460200869423041330501015322775057070781477080914478615067593423703337570426225281427499795517106065001362149120177477449074527825419906955643262364688685290295944763318747350880797046668428540265801711095494064999377333439885998309372269082058503452321352916548102735727502732570014179817302359802852876268946413614576582617662185339855800389733909741562591760330285602889815233461685620852524894462276629091698401330539649717195401574252060159556267968256545952706108501883560165424693698130709496143663407288068887834302363444161154550500934372004849591402147075968918779404234635256865964166195572609146716154714631646598259076848054013017088480773938245662936442272992165439411267544681177621614808485451265965773322816241897363979966143570708539081139106191182127493284608719489099672303367813683023218685342456210582016773630819968210873375119125087018071663814589635738495396339270841691334004194536100835598113780471572456423046472187499327478693580774653112754673039259283347683036183217907001562814887729039893300289992686865627580040513325648914436173369179558875673760476013438236524166498613639216400244688948563404834468517202037498344766006791014112202583748609422723591826860459057542448521327109121522953748129741175311915116395509438601382045789897705647156012067430470787834296511568751599989802148391415650900368512465963303774725908810885280269216961774605241990470616037113262162500009725028300302551060426126265122881496335654124499192850241225310512835967316370133983925595105669560676427231016364885417362175839484047575238069327428631035593659684823881452070518592619267836606380326848696035232111731775565121380720832176217470968105243767162343688104514513355003267850030531080388844796420650864646965596600758207000966145296799672533772285865062442389569387391562691652214169688924931265221852138676284489228658047599737100020424799876924664768164120644752355870903709862434567969656475218284512268773943436980212588685416994076345890084533737135682238439427389811800330387935405996531209060307778879091287254362755751350197081273774312397563256344920201255719009967730222566682190534137742263930113904086382963030127071901275573840875063741365453364815375751675998518720830821722161172349182843177010530830096815986396349346878488457608717302521704817330702296581472546810613645117396966040803841019883985848144732407426338227155474336750930720562168225895547900557704331401663440499553591218438957238286716131682156590639211225063445745337731945026821383035224755095954887795980992987917307041115995517270631656903020505549954110187191902538029176510289843645166257446111564544052482408684354421172079824823410151041393333829591421983639407672882624337021309866128141588676810861403753059816288458610955769106825487621843334311051932872914299461707138638150225114144063054510229848076798548876100716016352260413912734283855384641606021398847924651763487738588955397286602846708312696392456522501747062237685988925757972793458505596224592606497742141630392434011532105624162840319199436148553163004083411145287323849327749859287153924587536432192772075815338755898581265340750074246171251306100391007827020724918807162395468166019678071044642158158829621567909954970992599314915876619486761558052078295159990395359681039854438150491816696250269598651981125544035732910198557936889639316795750319170264184502556169704136597426544178668636097759212582293918362078131525051837494052353154965325334161226306902409996263696105434887313711875081985474150680234330843117197049191342487018540318587809716322224571013162708228855721707155023332209985892487635599285911430580478516239537192911188825973904621430864645159814153900243356734951343730101051989217992552621780793214183312617150434348543983117229074207604401562975225128788397279768871570407207181554206630936977733709483305640928760006051177711699866554035974393289626956961272587531345648473524658578809914293879623898805987916899014206369564128143050610606969347157516024481094341923664135376269333046869698558356165496848667623099355209434307449939272788874276165971838327152162188036767990621756060135124165128124261922483843118627281334726860227050891989294526333678402635725669576848697090633971092654595243896576865608223381627782279805372837839597707620384250264216625304331153973326965292045164929720125150254900331777734021693237419222341273452316378974915155726456802188087864503130738641708326047031081539649424150285069597179974233935488892694229363794512786647575536825448072201983622551724405685759044404255954958263864130349885651895876879870367233263606508959642859299502220663917159882845281641057683389993623231813750217071181957153874781329514944232051170605824285615102620586284583359204605361658208094527167529903917641923953916382183426577334341563002939236524151505337733114242848489937565949947695573248189231325093482018370402538691331407862597303400169354887582920842936798674137978653215963480224626051087532806485915668348174301109939812030885927096831135012513110201572116934073925226671568135737742755496299572745941229166391639112866362075869642448996652923653705424327996287163106792954394986197777897073551952794811796313386717149552820474857477266520951947389116561970380360774479321995076060847875516385384254468967875697053042079126977477964219002130204641851997647200382572520746895483341434510102714481108471609676977116197280992570882127115133581584588128681566386528199880487897881208957847613077128942115206889797364770314118771554132979806638997547615766959375744943077003163677048423211612326539018835881622254659402354651023230676024753121164176523795653821414462239201237924614156757030846712951693795414796617921243901466297241845331111077149525311175427776046514965736384514854471467185583394755969477634919741637755432675405439664234325178538738566221421764728671878318668694649380511205054595985188312656559813055393105214962946506537811260726676872149668562468453397662498539288390057908621968811473039446143474695200459657736678766210578836694650513087264107804150768931232564005670926537262451130734401384022310219224352556371339706201719048909443789404516271409921116448582329253586818604924783318669244726822286641756522855069180523464884549891399909979663440075301727520432700180736589751451004130864677879325028017440843112060928980749326891721769223190556523523347884406021070650266178906662650864362579733578109538402294478518312000021392016315705806954054229461775408971510911848479327544954501019451815990274707159188234099063702986712429218251902825757534131762654440213010668393745324499550399516991969687902230935108208096095208360469005986011821096497000248034162010924976263107208675624541747657506151484101457353588898592142621441843104985626006655610736344468327699916761624306217909086104484820417652196623163447347919312867643642120832326133322281951403240311610916993412222026616364979846263952625872093520856307614050395605206585593221267892628864910471806344286723752400728590660932082757980695978503936850628043413755562480548334525101717041657522418751198546271647935727352047765964642828938415742484856980188453628440147624373629307224160574772019827605686305485023892787622889199937262314686678306634188776679423317201426938540250020788175923005378026847651255742502869068453241762133188306348241072830302631448430035994374246392873176644158397384550034778928157569661369676828454730328926973080694303769772485198954831315237329527388200573808215573441073210216083725836675521788418388555699447478753821882450451173043406719346439883791038432609819175096194724286772315271257583714034110246877986710163873317823074861886354478251883833756928885509674042436172117060911072144197394596415655392754718676150308077253179537292134737730408357564130133336938060649107948966214049134135489876452263476866575028745069094281773683602718655902134798045216614016973654676419047603566836850706370266851555209637003189925948336273284107014909981117482300217768861816184020767607876939818590228249554587184136363903432467808173080736127034343396833189593102976874313693079565534063459473162518425762189672163262017254144632997673078818221453676888089608306275843316255850790421618997481352967836073745003760474624566473362568221300746866242651919233070424169991351130076980852160190912202368904729674777674553620696013722161061258800272097287494100863275072199686548808908276344029546666883133377056777025180154887015661552097485606872379071322851239400004956296562429889958598706133323983435259498100359587709362628452795765591575434607382334408643804807294196029567773219278451227683845558738944013318658469992168252087497300178255318426539404249446974358835984056598025762745182354337509411353494081287724368754754616279492611121883314995604024763624930240936907586764163238470538022814621235941080565449326069165033841302548861483316585825839281223746094854174258523974044343644747238036603082070949616641206701263586879025245093324421171190173067066108045479241948126523829141858133545654201374171079401547270058850786412644266376271380236607708805619437896147634851424375154235208068386338124157368224657733798582682251666858936906946598366800612501554388144391871134004399114238817296307588323600051724315152417160782256789383099484687243518944052367980877437192555869440776279008183261225469322119357639614265870165780387168059906886584100029558957410493791634390304824996916532248403992962474806513198458376897428082817588905999256402522455399974702288718423154286359553614713693220487218152813774383016896269938410317530632128457849225862859426892427102903927086987556599370698596328900128105319334518467660758732601536176401276982129253861816679405448483373669863711610190818298634359934396766866027058908054658714815352987539240825652362627750606365279683732068954848528420377187188772918668605682196264518748505121680812444592280408386881000834804114965814619166098617008339100587310046248053417900728667656123506193641328488545172432735373038100636959907459188433801640915008927489262935021860157985377034264140451711060591351540492900079865496119025992559079649292670829438608989547786637370847796927510759395225085619702294121156735812649520663965862833152467568529280151800907585174996342674161317750935591200073813959215339162004690276344956797694529567175786564237806961246714867213732284569227964498227999797615649247132748190106502924739763212472073628359656064602101796492771593827776880504909896855285797151771090241352141612886698053409459951215226617535425683995885400647928024671177348528861169410913587357437532996899945478308272395241678333137095661773791976512161891525338182373345342576533974496282166270648484533079034461159658564028754369912843017727244071594649612603336823397057583045380913680613892224132261548626264607841489439755935416207883978730151877073986769617085371688348958459652722613635201560649141616465357416220055983808993320356912992078077789090890953177487081094169994280358114342989991388403817970936445270013015213881875326299742645671018416269224429438667453109817550450860430625276129511418259824565085912550533140877162355557130124998800897684284130959338131410158224406509920449441310065158455558043545442881901112023899156617333194679724685101938748358073337013130594679766938931456303684553219643733496112520564554497077242865078804296798975820005055003553209589032991740174224208217415765461534114359072508850377592902630475262259628845632166397864352302046300985141918924246792494556674711296506331822569985334838283082087688632655697842317779950625630550755201806593735305600262107720215299169241940392511427325096475695590230778761267062976222441002932858405421082438655701562855847094942712741701484501713868003375605575494367812514770407740125354219517397737449440159405030530621908976294418991439628987269959591882777794330197244518723027291041176759769244877424820539863174528159579575090644536945282480538280346036900920577069703008576856048246542615318970126152359378272150646400599365416058667865739515945996406048854728243512152200855777957487058775272999632399597286390137954266681834240499167791192248397663107919920766445067665488385685259606440895326492453758406209272861072045108037164046262581355318280038716086876105454119475532456536996869810167478586039431453194438254798122684786954943048410361131961639825658420356257106561569866186035250027443404329312636003669165353887226381972513054493997566008983053989040189224458776701606478142732533251064970723910638646902873904631434037570832804602980711938491426481256389079335370035409867004945217603825607909707398918161956947952570783365133873797736168833031820098248748706731151152474934563240202089128379361945376482822465413563135322813903904035389368590122156264503076643580745020780686296415174251810531103280362996661752166205394932626216320074473027954316120325056433797584638998645293750305067475645388341083305566967551670840992447886188152864836391481002659729532913456711026697587835312069186503477482951562557350810530479777328903736541986137406062818316920749219277422706913632058960740800776406329062805407974403332632489394030617224589402126777772575416980836248760434388788517105067531596249615652164611606176130188796021597208558009068607847380857344512813317541980311757855901061333941581900307890191058585605412791117912755821143955644275443844005860318975163008702063819363085016270128264367742857258945413880690244393584838162211232736982717708629164988669756583116227183391533254726827101678996993644064777660630936854407677160371771644648505879299672213116592557082461374906894991791422096471783375917747404170269449921657336627907585107380541845561963874608205991523415768204556719052684650424232214186863881922899665771942614036423142475285600315432238089497171470525302562921641772282412650530456848811807062612899701221519011861551250661826334804990151306634217367873589803642231139438561975702634061481149190158371389268516805829160206729767506736435489366938159750002033232131944229818593324327732833894775914067087502333590504784668380608340205486893530987368255204317800825562939034547722600540003351043173469887467949179263555110852120960968622868179988467601817238883005110365465550541067501491276756898868007093852632755822709063347609466322258906024942901453138903971829796756038278552803665666808786475810950288983064354344368247352112270041132215908536036221384450144145068079910247892504228979968060389491237632747936611121764907959459244949367075270830287084001744509306421782217578878454445940488221411146200121692802577959483768950859311962340783589434605055516825683074191225419879132216030856625821483114804367212940687481427046152420069698837692791201579610985325151179554141881654618460720103843678209752194720517595007937539406654146173423701833347558100368451370086156060889286911975761100166829000250571933990304554467835126338557826954043180090396598826506344546063389595143509885188442795550884941286759260705512028767614484569340118883891029089044578716202086202673932869999129570867609909650599449164343717550165958908217427856077278197462265794049335895252167851364892212347808279319571372806016792175612540508741959494964430566117429296568986613625904230379051353839915867097917328217751629428618966071673970505598939577963161587289012596624514529701447069913027738688319418524920341307432057382631681153193889786776390993406935435836694371416628220511601577425187151968529996434468279431520853141392050107707804599538841237499964933599268100803098100122956637129408208446426061781077024412017684810566438263251688636813692893241694403201375899249709980496078484654673471720350315915190834887150565908639447964340781263042966306582082457107437261176313017875038517381418964584787416096350547584254179398116929858862709176101455345056836522822193619242818103098729683992100049286773355721654190505527834864249700132966732909255149700889452801064043057668663417553142155430900723642775785713508691531789375150616906128653662194209194752261060652031150866331856134667786864415662915575640894842561481817479191046255800139538500810821528146091999005518999243144019345605849003347126323002609490389549759294340963057779593230891127539397298826851589017289126748990440045365458908109474959947720819982458839411946921845450572660854441897245783452208562740470676174576450487179366136401126287293464393561866258195918496542203192610858280707358511027784739490764283173722593933980081180217131474480074548279284568889810872526720775182447925565040948321117770681264277642187641107621678994751475079189434206085163850788292239086949310917029364980304639815406185838148609964339934908456995023714159898687492913668174533915161622338671190428590577975259194180532101583467765863044984589750506639317711173994098806778175963781623247072138309552342102036588427925286194977318866622734192066574408632856302511347918656848956022063147147027368471581108908483861415875224657364137032546229754893502684150804658877101466300324638408186907537667978122883792502229960334037952284443228747227890306774800214584945290667047244911075836450234081375242077863535277034469123118251179088089506245591668595887717510291909398650856347891298284317407107394860554712466705445395680260707550226461922397231034984881685321592438158318643012616981309119933887888003090005390072368455642868447658245539822395416555233834191722503003618052107515208456664222177909181963070765324241490836249435887019650829571585129660352122196967377762596329442803770848257965838993978947783968302832217862184768071143216231315463789392749396268690716820223894489202476693970681837548246115791977727257761937929143043567911291444633129617613140901356217864105927918276208026997339344718850876257252092573321527387465311711055721840021516204082118227866929955987142311776636552183546476156919902714518780306371562762398474972496584285452365793440824610896562201335443673270790586102377932691042008037499604789830137528260569790279746990106028894172342297059713636841177065323475392726604750984815008745932416044966496496788426728464939007705375392641315350230625500556970112017090162654701270491179619597937232641233683608276389569971815320295340871847787306441845850222464395984684767249371247429197734838869550299056509347822962304359762312375568576377755514222148644086777542726631132796414446458599623246167610281498217840557598314508330130303130649272884636572585905677120861266340670087168137892698818996148701723710739477414807268036688623343166521163307845964804778154879708571404497019392946762229213542513821833486827843390220472624253756074912036716248703165791508109453469650074280413752976921892554863505810953997796383635770746249738730386718130451366934529602796073349823160025633918730263856348960888501864081173609006023630303119069409966429017214671839486830954774582148544913034443821340555082283988000124037968963626964732955629787517527788071091070765755500757166682691926230059475108990111218384479164552509784652502441655353401173505928276586095678565306439631039517644529557910378444899572722873202683804168926242951980686673469383105083210927690824990193385538268379629557053372511044465285199173919487716377882968794280192352160492929410625777124468503191832568573400990127431970247799141240962881712237094217583418397160891793911078246023015917004388378966154469574891401514416951382138017911788840162037656001351099176376312692130582104989196266221350825755824668198560934502647357285259531619307903406363441825006910595786616295105168804881204693465546158789450831469000959307108800141040426912707161991977896199541090469412389387271745571502509736843465924715891550756125744256200084757037782393323121878843716968466845441648478660914063814895669024662964728326969390345928662731688894682910808055728194015053614827280748729164160028503096667190901148573330266041817262913072831346820845415121111504463321633414782332219250754391488250453979815091945847727059978712832033484321623443983827560329782785193363252308312695172832607974506066731475110927081015414272113760377537606795268098363766387523116148714080980220361031979442835711449513903157028772166388494625028630492852972239046284273741305224323510696974671723715651089388270903596112501016893402642690354002030809848866954055293048644968895244453108237364430769333873181686658051073718550088396368833660060542599493364291958197274504814109230572901308681292921968044665143737061362504755570291911583509199747016476729932190826838491033377710381488862470878137694799539525703225921622945308887483828333162645798553828610816936529419704972810101340015889932955458684528637320183120974115574857105931039913301494695802624481339209550091684253668401008517539365239886009649660508054063663449090499347120292869736204683198506886755033537002587174198074808225998893037274979460119976624302913346784610664996341463507665559390158460634446974546450720906037015743598622562965536461424690774489912342840690621036826672788923441519231628109810774232854532303220619062316928449885070038236384711578826428896678408047505570061354344002255680230383572435699754618862984005471423340677117503817263621913104328307089836825124459426070093395432741483020165732333638653284196143412898627934925646707542230271111643023806180604435843791823955579203840557550152486529217363664803558497968493101437327809121829052966200406245697619649736784231119082558818283903239292031745590129713238370321777626364687711871932907298777337712960640926010244428650137290195155972081691271457586833247142487272751115244742550965111786187324173162168845092906888994157488393751030884829134092523521094435429466787539622039474617644282445694977511851802126718901391884692132056292140656115417844069849056159617028637009089169656962714597882961855615571014943074107481862894513805500004588680382125789201657553097084339711151458958889589361131897172250234578176361825165753475337824975414058161928276103621964059242985855194734552953651719974299573973627429236229236425637317924143086636883878138949835219976576999549541654918338702742390185293649257169226649056334985835158263994808584726499231259205411926247021534706985153861822018668554465729437194048314060984639592497795723084047230967039649439179033856381167731649675668732203895087833714510133386513641472414072447902487370459497262909678477815777009600561429785862536774043832682879597873575701208426861620378894657277972219916645678382607567550400636913804331050691805295156905338676312719426798768122201329964729690464157766591912915602420630097457550258751995488283786259817424461805652133955277485602798974049106588183724450709769035706041155192641722296652222109843711615373979819061720565929113942365188857403293587828828270433760601963897042317837824630025593033270291320717464239123531991935430009537801581128517755851592080495611306402626055830843413565980810146645410789183378035517337660709555261004889376205231182577667655913303568768323264093137306514594071182018897434568868943716908600138718608033847941106796739624800197409744157177720463553239677853520259610021665677587005373712984756586871513997091792474706844907753031531165495086753826692910354277076826948856814528766398156373384088399106326899272917481708726040975708050656850231982728599754912879817107551749744165370246058627038175647717366019889291038447340631667699379582291442982261409251047533380251640580555706266133589269427516534021666334663503135973224768491014863172463796669330202285323123057401800933528306647312177204188624742320050295306527574764572807283540831335594637400020468355287450318751993198933819251154419416364673136102015963054255682040351244673332436285746803790423101043432955244756678566532662374255554473986932606975702511549864816811341519578760984086886277079110128816009484250828930697167575145910141424467283803406500227998936487694614391268323458227708343005474715654047749767915299505021684196451732303562665718541182776607731381472125925477998252540752713316751334819376763167708603271903080038299504679295871564916087015758347711700001622138110916685337265062064507012782644943086066996630916106011767291604718907905064757816771103735022593675911194540027030570974472314592954036826007025596783023594505060730815647720469998442215876942414967166138150977618676846097010812889948882068670765558426288015590531923938076947143478452342014311509904711371058122496532100428128702940832443244278295534916342081216540042563088309387837434027103176219507111502755697872734353148869904699823175801268083258004290540500203629809936849823692000590749390776209560504909828243084439354853193133941478759120269911519723275299974345794311196926973404229566478629355406122497683111310664283381156699747155390116652262135065014368629929836178182057290642878102895614357392397450965281477737154453821455729924829336463784768925273357936745619177479964500162634876834392487860866926778284182700279455949493127899291680839815273083569776823405885290302324531922689498245531505204404038648991887411222410073882640863726051340336823518391002003853170618270985356675150015751060761159277054939327371509592306824443799350708266856806461886849897881591423460281581623813595603778359422340917038347339926165796604760913767524164527442354695112910481355279929302291358100868154671741643544444543951319617176678874598116130730241965140530002674201818141686691842016014933567055598037296264865138760597541879632015058496364573789352572319604436895193725793740537309442603736596339749563209745962349038289742226539258555703214008521358870717436862743487029776269840600216078253178943329597265664518420118934746412011391972875035134398469484938113435901816288535059854822767582871083542077366719319574061248130986583926128549877272727981155931132385997236985260584044292278996334619613899865700685929236118356321931117851337064896890598460025700054587356917106732018912149098982291294883496445550501516491060599153169777075071809759433596428588910149202541266368637778894420570156348692597049436196991706968369573244387749958849806337752790940969140425369918756128010101998659232010031524510664532659731729599405856098320174722641153209196995779015769128576610804351081287264870607126363499614132725618984521531099791670081506949274489866491290856850830936031299239538557742900548432041051440813428068655956907069600044843227094425986239933099900701788127160002015901406217460727966227240550329067478770221459980209409343832690157474819672013547391503391533759519601071225735697080971577266450521522948592493728700140357200992453913030943569270254727723476245300806727271572451782917821052873620115310310471813050608819821051973347875164568627340998095105624416512116228930794412245971428686608330509223389086842417456148544907241961928263481982695012709465166941997680911472076800259848591982695832048319261695264330251111198591918587776067252323950294918571395238947064684098274555870352781560005930207003561261690824663007289840944457749579428537431080576259923355589382867381447754464451488841024540670095084985060758860694217336086698511052940187205690636077525700767584721469543450211220326674395134304174405066773300870720321642996859967361662302711754163120741484014877258747352924861438057287217045810772019051408318129998910341828353499796793344397697876489849872795258501968688556565487150471303548777796943505136722338229615256866586454300468239147212021391244383744315317355974114446559424907815878687244001252665004666383840554077454604790033356040160989251520168416383982610886827851071248264888181314092755708697447297647171065985126325134358993517777837252131219891935041919855276569985880860425181889008032457365727880854888725345509543782040952731017857346064527794098293781418534197340685579302274161965470302149084384816385998371272439447998189557924360433769331362136742771325235056825795700922378170920609903343477600525549732955820388849540145790602943046754160679876283002071988174733452286529918023317233664029074365379436065040745043666560637968424633050078006353205703974533153398864444251164381259952894840205254984559743893776360463573408150105141422548977033254947498018099791246074992364027516056569672179954000137267343900772035370935542461907949458707792480756142747568422427720672859975378612097991975594120988570245322020515010643732050139900896747873074439423441696580704056240425010745141693700377543868547802181827095488000868902814518693247605931845488990072844333226107421809897984414270787970947805458365328265798458476028089053447743382407152014678217014405962878507911589632664487204302299406915930856433531520978008917295220896858303424154876752881456419254007999373474332913670901400188777347648704680757540054869066247740208973557723236885967478467085372126848364625264928433363417466554090807010201983101496758670862711979311523692709192480300769278824810517469641645412545502285204040199132549467027335773353259594533366143160480475970417313373854962498952209429071472228896742536426402114500970682885169741722320025582525490109951574106418279411410192619451648364507369376656683386615618676687902815120363154593212686314409367608803477728564606626295383071573856165211281089421176903149321218322687366806049987036615020185222028846691545830343952309994312342753600913303373812810258782715622644081103770963890659250913950152362689382527764251967798037306828890908050904868327139311638011929042076268481640077569257413345848759665617865091624543502239283658307038798222708422213802787129634744957520617893603088200492506930624911202223803371724640108812036876882427345735592902593747992624171772582668540481347903036333268657947707722784899649240411784594648764889132569494840332467523403907446325494648634445799222651617694142572161719376710286294192847772892250910625402441914395423230839581790427360746753694988449595003268533887965386305807169427531425717725496406807728955000948737656833057364194640276008136320790621537224577281413394586337926765282049642204170937740727303994863221531578951586848347201243968062402587146268799409751739355181026111473643522519988417525232753746317567121108326925181973422641127468790281075973070643601972320549799994941596182812154956293537572081123152008039189107514348055066226962756220030532852607888648173908585473289065879061001169365274327577494819262188347734947190216430160540304738703237672751201567854027686136312690007622763812593041369593284918914719127402178259802798019467909924181259650989400774353070373049016524485705337535256596396417736034483514157733240194789984607122664584783404611577915050101739828199787675787777118601215923807695016586389468228130059275783379234503690630779739303168698794356112508603393913288018349243991942502113829960931418636850442924263795908840259568927009696376686481646863858896021364276488254838830581005915066379204272261098060623611356142799754021235623419382984754572271242986064367144583729744539724496252758980553953069754958961219049161485556845608360022542879909506609903391697333188344131734958599830973346169314978016166730312576627915694669997768760962190766490533122094164787751408344254269695578402794350661034301436769697038104193547884157882964926328502385241208582750750999803910929120599117122059874092311174822846178199984254752884566402162367310536901359367657432551199059224691241557218713381047568711496924511771306202162783752010761007409696013953366587763342962960244324852445341687880694554389093395884774238785785877126979785678045993695582786340080764866968971129296471542173486951219083808350365709241683069641081893287349367983012230188377164919125936000419988173470453309080201460442431221183702416339580262288477479921247620120699030127079440300186524423409525639884840921078247550407811701904199545729617567323928466416736193408133538556944611908853184286853455959481133784508390486765363679717000903175348312804579196133803188787173888043497575523808174914717719049465086473735420207795056892579144338501237775189159252641135006979387834670722411279664839700522274141228691826416197860966327020904189698906138793653618521655658213723162131099505397509984964284890312638790316011998395328428700100050731460177970385251743133422867959416485501446612665737141432601771510858342002775297453044371379029024856419180282580151568056868049217011857448144242468504094910273458146909771988281136511095324874822694024676738708554415681195792335597289758247463922122524278410997334895664696950653504195015142864082332784419214173673621543832810414055932265982900061063036558618948598928343083355125325264687615829794944689624848616383936797850296112719349314786530446500458494427906166242051547902713156051234317899608216004744059283782590934314895314665576974959038769251221502695576705041581673860838008032295444883625921057963225285410921543386003447224301801956971411545027293156979477990014527991964405371144905383148556253356638314183239901995906019484827633378628178877978975627457894359711868749503728227706639260524385052650865466350224616509169184618839369162341926925389321866842907547346772976073194074600534754718359398336253403002386604148677955265810438945321379376137037782337178830765883955374145659541926801305905722841622398618036236261428836887931434662718904493789565464097733685731540185719097905071245909864869274833277956284472840924965507125951021913675514177139100055818081272629627458268372446806398091840821026274987631181897285910726790760613368359970194340571180564523177329710344135315892406317843004587196767483996657241677958454198724347120131867455980074706897988690282366388425334377666222276220101513573496348449720682704922007410209475729357516359719361132119789039981658467869758871422241616619255535844029107865633263873813989082092038238276148117526397810638247856910396927489728012986906599239647496999269071696537585694698852583442637705503712080034621688540150183349326181388663099973037586791959791303282495974677946653123374076730610029917164931631650727371280991770503096665164872143142408709344880272502179606630957983668639034988559309846153984719419851699736694100688654242994673447947087669336094210172897380442174166509556491110798834695238932099733228839734692843962701176080029805768831517634081927640678459524166092618988118285371343690089885612674778756353583867211271318661109187408628941987050552113824642194588295207938019417956229054188422757980198582575723202196237517123491230648333728423947140634363034110484984517289344857409531325609124459850539562861666544911374006683339233555272106082552638469291624145316335259334653929665768644711785775847075739359000692599298086367497839534492990784435327471346190104059692315909348190315300717753064559608327305065577850280667523104439283572633169504331358933275671080693363168610290333686886008903234288506885175918201025523842339857604197580659514349051268308961361544985583546071748394651193385316042448605996578123189670387771769109282925882604595142016922946942026584450336714077357317530349838171514983032210352779709959771792453029018018115294760570620843830492360441117111912178973565533658786139958855160971349868716604490048404187104856796913012381583593712289406929773263873993420803497503632905990565166137664009378690585885809229025075507447444649542387713279787474037697954195760575530423451154410942521486019190046212849666125795497892688085065866512068168358130901224974366153965110817594638126894822837439509115340260872037823217478346429254258903457933931092310517541055524116394158834817055141386545572028944139975762123139895005497555208130505724381250306291709479951801745446980081777834941831526939895367456583262317343556607365988564492604964822012838568993748643815202157903188689062200364354866164024284522032524602281080879691553651267514183803863255407466637691125430807221911718734669572245169498333663115157874657732415365226502029646419190776780697929650556272184214654011976793008967861914820275126443967246944914281914596461620432502277003672923624661304049782760653414356209710371108526562134944871100611893569469650302842737360656986412330984895274562666346101231134719729408868340745140950936046240879374052241901727650344623110695563699333507515906901958428845391768657437743628727797294034037903869510682332418761284660730537356637143911364996870308670778200398146030441017261994187770966603107474412982781576076304333543151176441698969974394442311803691184123546963922603142214012834272057832983110964447126592568043875544669326052288908912344843015562816115284759384117888825814565353222392344190685794633013502618575286444790412392328510287963471598949327962893249149716694188306694338415994853423262945606747762943700683152084092136443535664407758862611465235146328203851291942427415146659866932552937876578496398428795144255335862617837274852897389907911919330582851443939358527117149834954461302474198888753428228019363486258380899187165083152927626254501461189165428120642292447937811477540090798885552818136020205653864837412059643328439480502979588286987878812470685220484345112346455361383009168212519081341899840585319903123103439513118432028678793709158766650681085723071781462713073896641118771692853508584896132361566573738189317117018366220179042508547342945663367600612994355356579642947765628136711357465691213745516297306118066982088405723106089081704127871516989337302032833055549272036146552670030314886723759994077466143445466724593026011536369395125897974691791150525093596176942752392950590854877294536798055828093151995447905008682248750909373395513519168792544812663290878342417431559052633226824284103490807547174237477597799361627740478366938018834587473756914957477648667180746664748300284009472240889399539417572168278223766957297110941724004147104017871940585285028014878830437419412661068896077238960306576966518419337403879336954160731433367566895779397164575434770425285563876017029326078675340740628856694594780054854959265404525626840348260370827808951067016632352779882140248380664026063754418820842990530974764825102935595951581472542261311939703315276128813022126140498654976958398727418022107443909240865227034668396974129755511363440110469332380628381616248318393861066467934568385336405835336709519868972726113226489877877296985025386716873357977305482191345523004979112265824039218439553207917861656385615271273811819187359619876965178176173641911549909773510866032000201931518863315662200314057364511656482719491344440724289792434715652434940694424002059801138420913879248183384028528252669092198993402129368142449723837368365897636746677121103835685928538308927934852820871582720727007858750129720352970922121048209145883888727539883891820060768192536100942525619422504607849795311324762220821745327916030628417378852069349681972764851951451349437072690979966327396246665131989689992129021782336317239531836262634434734743024491046048510108645582115786401483483622576974138697917813069210121504599865229511434146668959565710282774204775494055486898238604645531491789076171967770198040946807811748913233561614611011633891402787040745684920904409511218535001938591353140895184290897281518685302392991198072631029567482751320696986337918123404557258405965976795311893880677929532200178790381950389829727082765021822299866029484335131891341756251146918202142429379794120278790259982451681783134963438033409296631527316117064658590482410247232254024670642567409212106992537667096631615320277067117058351971110947866481217915053966332252385836739830095701900594691735421404673890724234524492111570588455092191685006653249894555377265742749793204098024839949862392943817200740394464492792410449276358053439671760966034063810712492677451750099514065785867395696978306205390141300424144035563933815545188906036429470454031454017381433515793177923377285862231173027153080223909269840457806242937897920174280218375025609957435457301320323603826739130059353964994494762394280358664659231960464055497036592740680253695013873385681557586544788995457513149220060413924006029246142069315573551384549965150573070358078523444347123452493891077902024045757625611157338953685513156623746617422362668670889319139657964677023930416934123769631717673626890793810656262516853075573182886336927313461254208066359745368041257796904732491426430433308203783102461941116344498836053582266793276074658018661387967020411011311091907943014377302929599009804720426647153841568920615487774457346138339648892351916140558337823870119119443710191999980384639440832182232828296357934450989428920496521748342053897824352058679770268723181185479643994132742486222937991361274057939947156164601124934928170562551057362345869650034249058994336517391164897903962518324604460919580230627643699423807450674825033019035044534704012365590136404249007017437870782879197866160026233480074628192935334411241232941098431586537432481761125812833071041922929729186790243056773227461129659794283079289724043348938553957865186494733194743847636185184458790878917008352322381938290590124459326414669372235270378176423760717529390776125284149194250754697872322992871044393644273827682336787136917186278341821440962983544767871757882613538582669238507181063653166129974961865537898758354764691655766162685974369327132850225049366000718867388165060551493230965317568112263914672968521110325407654594150111795215064866673101523211591302505053911176802383320159541484875548289837710837804001854872473736350960258795586486481527744407235725361405381562814741953368120148551271261915857600417274481812230654226333281323421633182627671144989624129288279997609538995790264191423941402760504529077290971408116643179964524606628044642412778276989773785632414680967426222046115021374919256921023572945312795852201576437953512541803073572731997570136498474312609799161514363141633923927738136875589739916263445416921455444741337108581378573799603843561368539935344509882020543754394088290234162882618896439799173619898795267713187358815022214377776316936478602527154368660756884193542873927139224958643791417605829748666345010048772738147844088498711823913594271523330702349531900398453822843863573866931035627588905777285066565930112011032112477750070581448288183879263125022942931221850435130373379131116104519252482459254366918218115058641465164306013237784518535719312912081577900246303675741134298894443793755957355606025077241577563846285192323568895011954754138981365886119561405355177627903549666700551707677082181758765408024157129476747819638853753973082628422213034721837752699325048593542168108656502003970152644044284413642869254495416518904564665216815033876394603695682590337418270587035956568524972564514969919168956678816123241773874202887949180911458028084273926821810762764603895478634372272981082108924745892621193238199873028543801104877156582484043351696802528583638834881100225430774949210099485734036896553722878726856898445449594606106902787219778553306312910235157543997996540150478677212306747894853949430338898742900484978976851697988204687260840098786203492999454978731211074108684236309933240948894128645402363558948364368015885816155614171943938183123633207313900700490089263758598494806027701932724493079206757908935901623608345214596541117814129450652067687076863886087267646370235785051384546785989078352632258218136247250829595525533625935645690576185685167915732596112830217999143884860578002101274477949576904257644623320076731447938738226147479984447912974840056094108104470640902364382239624085817848276007605221000747179335112164961165161291937347437208072379741762714414652540507328471374479343822639097119082586507962869007377960033296217612445346729858903700729384483016571977575278222856946626468180500699451972225078893236730652801722583772399570000590301777831507150583230193418072221217050604758203340636186322698829927842699905723053619640174496787720304780574328459372652893597973545691533943273191074079625054002004563030282412907351505728769690390317178213899284777213476866072368455437305375140330908038081788307107871471680204846815302261967096810052945303648503381342926245783081173671290047637390873893268377129387258982053006491904226813776507210656865765566484844866109558418899659651890429464355038659850704063649974671523464576307624463175421678611809642736003224774403439526009876780374469277831268566053169715825056605220472043638298660098823152039039850101804792467160067087157249105666556444501613880833186231434714381258930826377247078922640168112695595222850622278160230603133868668984331555088211656942940302563292433434307512522273265495321728553587586956781410700002085406014876721968035238634499419222537304910963185463581191093205148971729545546568037985292135626666871072038115528719718405699872404029874565139605432049010832793404563114845498134793763718197742483474033992890132852368971717719756054112851223783384071335176161860261165887282460870083524978480595625894014047590806696961366833281964671604932658512019669259075139262067459533135757957201336132016391639387466078172722788008215483316163178361889391121730959066023856172054334182021083782994983302125471636411565229053501988668879369553487432783149467218552459788308439079333003870918637472650172211169157561177202243726261237866355951821743764471424316837641263337572079594502845906849369447629153386069380089755423585301384181776038556720199420140129803942654464793965681747499615724076244343625538525002112759094552630782634411436440212362548506169093115299135514269299401960308364091603168201536169913418341601913328225855082912195723785971483334939461720570509406835788641329780218621649368278143775407879511675360629926211742860242813785582647218499136004829587268295182130051617703820545418513735584475425578740433511648608921383295255764008221901688796907412397184674215972981603076018363127270380233366776052003391416901736681126252720914922001000573279693369553093149985165070552650086302129689264687510137341707599014496628804282692793307715174024633558921664606883350606384918487120182963500213689487571440048025652596452042243509566381368574297334427559507729917456545191747892950220756337905283235939109885957616363307438972175635754858256536785223330592524367194950688853165278937167988671128023270914049849240477741300340581771292489806824593295554156158014623322681044493184979539695384019510771146725219411786718503053606116826104799886839774308154444518031904478628346453817539935629833384189652454975325339959350806214992146301596801445225010002701555025502845270177743988122364257247060603914393790957895743208116456375318795734490829424227085705132748988764046705464882971307830540630032111545469879139164283288435510311514959662046950919120542556377806469804064428301876295691190670232654052612315091873739948574314470914469373895095808555864131321225602440060436348282999340741254980239934710290922942370199612447486305009663140889087659205033907964180239794643095945837477380120073899039786187830506672037731099578890667655011326223050405814202692818143657809999112012143229519640444934836088892320373497022725747561425772767650620707156874296354371033609161940686192375458460976895809651828930524165268345165719749808591247901783226734215100218685294915054051233418587011638854283931215274077909716397751705355479821624544106557005473635624894817397977450175698139335855876554694213723944025125755683150413696296743808659080630822205150276488390963104349281589729142693186791523279590089296578817444017045245350035389429397226161476635837645939826756994477791845810616845046428482055595622642474765780236125303019156255198089208529532402966276935320467156654467158594079424216350622115551541857555785138287163342913626886888449010624168473534272506755876136160549699809056318539105780521141985999767606134936138795737084584433496381986860250792172588529304357624005862926771014748303404767380657316764415357867353989782653230288966872396210690335452604698734888168495346118984042879770697662272647410799555284564316263682825299860880367826802298009460434178265367751960920399120834464809008766349608927934655817037517949726682205159513525598555863430523346678920061367779514552079504292806740545833024889592759376299959828845898307225205585929521256698055343983293145589393684370649818009591264246999440798301421405499947594983766168037093724277504846515405468275245224660909640150859408931476829772813679027255738538765788804329477106365685096570842663280090590675822968780984924886505129973314026243009353726194427679831786627910606791539642500783779241449807363555212569096044261137449934770173542541898613282481716256091070019336095614999800559731710687757750771220265521271100513935082722799472252558418902945325751508338630900461013423167521510879512812811891841491907397205381943814417293084586101816055155990473433280676280664532257530523057329569545184503392248654651194761115126039126416006333459842265833606733419156840036393241591072662321557791091353316631203986463634963327221379551509778633585519131639156774160397624343487097711508392793373799972953888154451135195730969574461375280399043060358652655076082228449127535045816084819648260002168219625276282788765513604119507353879725710710775994528147601528336060341725711616290937884457745882322606024830215420948558311161936197265264204410360053220689576376028385173906084803867865485376671006491974571498626560362326927274136148466955263634079691214604490540105419005245261674226480127553457825917970485794456619083819226730402748247339463952733271956546838714379046164513650417491895586927931417564592605168192212036077838412900008855168915620591962063293868037167543527443406516520693907975385535076211762947140147142799851673098914952749507959071619242016683330940704993901430830034822696527751035309300397753911892312784389450571915083602170298665205059973626468789522556525466791832025362002347916984311018307297763034880008700524363079410534473876538561675817713772317810359850770632960159649982445902660156660237094264938532357788246918243222612939295398886165887840905510663534446915945191260732364220541399666993209948656057828225716782824005942505601388457769700693368443623770305563653960566188377831217792884965899132580933475252451987573327743856484290988631683949150707060157376681754554910277290735062545994348783924261290334304932267430915110546887055512879167447497524400964982359816750155451147781617353992966367007040496777514027592240632738328055923740159072735364357506580604405595567544335268912386057502628239564817614513782338071609164640647718787886410799645730937629257197836043671339355354916352652325419145630278530488411296094248442129346998061554399401296022091426458359630719441950867573965924558341320704143744367715346021103866155713302617651659956902096311599971518503922761829355898690932908231444314863965734013208747643812561152774037977586038035960629991901340781773330798368911572251992640815738121473452480970083557080963787913097889894530299429754087203307619851411236051114438362437387802988083654778738988737501068718111626284619973205422696695968992693741392432745719420951531829965627920288629300878632987165575328116527979578358527948558186981809366482013846415882989686480635331365507100558457301429983158183557539807704352219581509254312632061827253528753989359057296103585978314234064046226407430262757926304371272588486262357185699805077974252201943335740436087839563996796853420713576836480861760711488609405229169906068928882552090571055787219555631041167362991832163785400383432943459729582565278615940413946059486709501399895600365455289926128337911073265379590506923791280794358586727917551400778844614626054765440965326953652348732745902720103645111681052351659667430731004611543441526481579574660221650489755728434512349203743296233168783370622627666795663920751778549268450888947767776424317746554122498009767306529388843632525289087313408456864931169199489237425616252325577532364702569874930256851285507915366804286833856031227711877261959687467796945981487585823396706754770892146537247523142574239506081864594727621989535458983346294480650274534684551834734723195121706383315103210197370063512613040040668209160942051867677988842390786839672512672902249052747286437614119124949435318769204897125965787553731282718785577528341953996534094414386174853655196430463357971388340655782721292547766256145935726471153475155043909767466553768375510583966439912029582493791470905056689366797284206183515197910377651046951227818007518075821127637015204416859648671481018880543973796670367150814944987782227054370462665975497336315360561893941346785890008063348766827185531116618517628696048802165011791177362050163107033690957994458993132305035737033160256172928382194121570346449937878837910027409159488726864751274560070271733453796853168005037202415774405977524896330496865558689648871715495757841147968186096689745394317040488044121409828008688802537442914339208924630538123891564994011066744307554922835175216579021232741770926538091435274224596052945233518087611525970480737573392291501731348590643062158971665805837687221934406237633396985447300474192180173193445732372335498674280177324795588510672600555536287340721290677115352021293368558295087487241636880235431907331701587376582246681759231380293495333993581209399475289442287922041042754880302968303183805151183534775178467651779756658375034872756184531702798971150091197236212960408714470237820184841858892324633302597490647340506570847498382666768529415215305229654391547784081846738639081932800674129537895225133464349515111207471697641767800233404577743739924179884876491938999514132564489530375410497157784685566719648463944968102621875148922645499562662931196190248474498046152612398787858163073974845395459900302080885895010583891998790063338739575054347404841385259226832548786156433156262131200682191436767389249106242316393650058790543456999173350006421889019739590881600805980145570451969708048920730535327249314143841462668315928616922879346632617306143133246257335695362787866721134027509343371654873752899250570124347830107366750780020482164196675022931866408838092998363528948004649965421730379360576319790483817695080644642389228099466083583119061428146437723747031285621521586565754126143816013236491688225625224473099976622761058557614068595677997039325829901811674177975444376837358630441459387678734998369057211266130418851275395966919954602134410309577113667813429240406409037905353989904977988888745693800533647974702169018938559732994074762971117855183628576147480062731277030933692997422720114855376063810532861714523206992554396567271518083590074278375883158186869436904690612191349532973359209727264113385781467426850130026701721413893095526039292770384452458975600176971008548555033083209882689749361020035593167255684534818829587189120084093318847473456248260689221599163334927885039424241578140168804848952187098908976574768676653763257205756943305542909557543147763156180367053918362592312529779771738505640416355893780101246736018355713434966188557982430939261030645395155535123891190545947024571235846064775729409139158368035489240620232902254056509132930461831301606261419009250697735662191537046868345810018842162441254628048656290061819934101849471602098740525271215764344648845281480005219279137728293783669924817867356420775293266378661186854050120198112811669868325421152956650729200552080318778898723654415339466767736563932241720861375578140381350564015723105718289046607237014278516618350999672408108763012320354113934431474214902560090351789177627358656940189657677169336236027833165363640999486325154846603668699312118195735500728812188533233273166756866349581497876416548300352629862124501889350779215737626233006971584725421882949519635083190208803287959021484855962614416172852399432279162172011419340405603736322649743567987800989389715603366355014865751462903086549874011130260962236753357355053523704767732565980731920397108471046246785158634046050443231333112715198757216368972913556569150468034599776650875995587979091527156086563932304009419233411418638253964213638769491379347867413086780361586119654905194932976134101801495471534511949861191532505139920510454727638303183001071457092618129166870084023737829047625567917112196793839825031196987593232069382915545122506331290507058598848713116352576653586102734679609306897934292311464830293173174901169251389239113332809818271824339333989364263420845178109227571191046776554923917374001419853996710725370925778056864146183486645713782648924790790589637494643482144701639874854534980015332244605703287913817523516162877905513738299168539350491963322188496672784567828826253925879548783394890988392295599575234312778348012841168112026525456614259726197853037453282671434395827063677462391315152302703038840468769052066185529247645625285076786816650903520627840155526305632992963490386104963202868491547973949169557479879554141053013934230326385132975128237155139289845164265055102262136358128260330760500779896663330453707986830115174148160092826072078005338537346860036547457902753595703364663943392987314440333210051944803867618430025774872126051791519361848149052908264235235001134266635853549327230873890935802739881833289617538215814633459164349618765480371181466947705141102898444970548636424023102028608128421756745948797416079069710454145282424754836851862274797127657772423431308322849034962830178347957997560282898606088130195396731969979790478285364289027532684050006042530476637208315731784632801394049680857947583647488289657486319037954179282136449580630735521224945000882186917719297518556928480883238985823903351880507131230217831370879032873900427454656298679885376743806796710596460421687245278297019320057430798106774387367270403540305812894604082851343063198054803717027945897406469186314930644312567321713740691055210964814630121894711425331272178654250635354071791378311841693790390076947300816795938633520708136786802917274284925026584182920607959241831079456094071844567472603254475915236701335739457071443707269759023054510414517139176680236641332762134326395655870968734339509505006010608358049651810858817567260890724106478803576086018014579456690285027203009777125749427500726069499502760062384914510248049072011839578679434811137100370579984632308897822085043542330961106104569868234459943535888558230103424864866955097205183023095870615362705019946220685329349422621108673651642153020478202599907379005296214766033656165649175769050723782628735813905937835324735051878701492777047184340404381164445830851664410251165925734475308376913026744716183283255599979775166096708670837476716115341454114455833632488136221320694594232133508269980990896820823804291960946006078792881987934911517918517160108832655016847130265097217486392507057178186231000088077256844443726860974967055730309244920870617947290029349555568203062515978989129709687039012706369232568222024899907654741030444501237713933628328508654501266160534364624562114481322810488692222091483577217775870293458370183468456151472204331827677743656093845677734390209674977687903370039136376425862859522418155862088920924481514321668463500931042790506697902513060831539928215723283932989066455524135967231779752064604654773045903693312266893666914524390971649826656474691088691611409650987512684589545673547804676415724606719547831046047353185296936161611580190098983637082321950775509780431655813407569337879541337665043480067752818772271262943792550784539508942794838838187568512870585715562600103680238164796498183652079303839741805745108255029410191519418871401435504780382767426229812836158186291075463044446021666262720185003637242396079588709288190928640542037882530120487734786643167070505003613549171654656054545030682072271625935260823109337889326461786138561257050307381089331568622369110367394975867288148313388451703610533360994203875327987042560273422249397852365800837189061910174188429006554495410091611368577836146923318694926076810638404820775610292084301418385934455245887155427584525927084081378260061263809537772716565042942534146016406315058548482720343860199634176750835309246511466521365031635773432577890376890528227429131488609737789180087842143140630787745467940190925921616210077392977331414009919692825689067302894394716317510479436073515034589648983946329959701339428999684124919805578202704601066263564932051782541531824764991522775010645278836041986333617215042240403948254854887817265150427302474517510313673470804161175435776085823539798770113962536491070329077831482013640016657978352534111057448145910657876725951093040512000295771243039381667628809391655308127374533563894310760850591062717280608671473238573894515855623714950413053511162526127258603091603971268788082579195536852120925834688359191933332779785036646338149898979053696437095622187679266867627981100819780146053043043097397229068801862674871169575420995721982786734750520745694440115990087289309130008669787662122652937589645347035573219946973215562400680790153660308037511881865536555524719824851862093588817854013419993668571501802217073340386009679623948013240144789477257320655685502158894400176236753044652490372950359946709141277345307956238649273506824597869018486635657023186443004645402034394213525031279113811880579017001434266872378096194548346518872273975311215098474974370007734303140424930459098407037588738180177285392857281397988235101909181058829695647683962136382132745610836600699708506698253967790502123628993898767390153826542602256345276972304520353252838312622476911911576862886180028126544437403067563455118915185771502289050428952386807775386988469461624476586149584540265086312953152812247221068770063931650657270976713715595178188925870820682137314467742313546662099963468280102100587320396034986491514890950409620988325864833430488730656899914691679597515671387725046898964323514923939275359229353969607388113668409776794292149152796546492195131413319367486660010914223213014279237048760339178453847256551170933706056914338694669596981995809177714438123116078374589996123381763449773037731730487175398127850785154619512628549245368620665485788633458932727702277357090800623577063525437642054663862156883011982302697232353618965245693561777741989457289485191004593526092878835377890978417508812431511892343337209426328033413620445619426388454100673240037855620145353888715253945421399042775482666038265601908572453089421307450782544252012208458234512671201092184027747540938582089391928388288735597617368147958846293355665735308566156720124597209399376212608615611327655860002924757705764544014276498217762300727318431806600382039089019667575585354738353405327480986452971246707670319602343351733499420458884888763413718498457504268680556879793102423633179968881022130012771515813022403868722476166441221113877590748582664158567396973669726634475218033703724635888758794522321674616826890793685475858351695317453536263179892642705045834471757116523348969238932658761306137330813322435704822724546684389743453124024347853612149728676332076038581109978471915462254684033101103742866140813648624769030007253482613021837793785206656960651441276310207273231179758470058296674007576799250782051983169788671022518025990662237031314554286035547170656863521315489064335271328150981467389531781531539698332600611070109633602948256776012657831987777995197158681757906494325154798875349611944545844979512225717610474296306990874616311207568756792078044949124638069844988455548562924477913255714046361231535187247405985062380168985044832714419798835566710189556543848788007009680580394947759028262782411059209118208222041383428616177404184032066775942817389625622173069198969145906239434583031618636632868158436891736437065349316018868491080733187623153745505039788398582461164744784807399984837515989045607870852715965344287390778403629410882711900357442962269855803336627997508477854171940499594356210409261773028099065029499878932220599437186382612401852853760914921125805627554613720335350770774959310297569747442597844924932974714972444605325362091570973902415676926416369772458148386489920535298906609252410889707275257813740770559803132768991401515538900855893131116604322925319778052919516955345885241404624506516247122784231344740590318954638469784699521437349619781679161700983632048281006309993783434546789928940341421455013982194382856983530027540935776251308803054078568601450557694506707205048712791774441628118396578569265540395408741054683603362264268440162663785779180175368995348419846658189057524090218884830890353937511726548246002422727589634543332855548330684599705186675518226718791040900577099796147122926645820419785152758923744637902634983956736200536291354848103129372024095145065303039455352051872511781568579558547187642426722122244030119815874005356626769265993271740838718713409827100914707686345786688202666896509106894469843701162993293199877401305486732057922153627119544472097371390775403882901951777915741215389513553435616769044128488515359400795261899342660829020820371361221038197545059703683032273637981054434210248392081525453252893719760937393078149436870915684956699539775095046680292841125992811334682528404519280682034295307358510820299104049480261430273072510856626823202352368755213898952766501062250481886615460328654607294119695452485741601737251039239112463492850686643908172316118688613997727400493924821029482126020241721488608640391379410093569872816108304552602916649673978218185965614018635652189870295042976965554637876610003445219139684722990005099663872919673819955994881808014573642663447044897779669839105633853326601208825935191993333923862135920980003016057946259590509687013658970247668214950618239210706001653591044045825181043848138830576944727795549891624563882957092541996933060274439006207677740662277552216068292440299538469789662981794234751830315738015740903404839847692751958448417770429330479402068594014864936410392427991899701947026057052481719903349605377465342886386344968168188331984630291682109984767125447330730735059277956785924955227828224423511299251349260620502888670413798532226048487547332354850604201705737793838914114678651514810573165993968710044559467899168539140084912591261879273836133612790386466926784096956854735395079986898022343521792903285921591917810049844415351244027736813921346789178189359889919426659965217855942234256581324687519545409230233895170239923851882489141125100337377781728099541741323681777715680659135511821301727946101520374921367026404320159317003321966670923920358525380238319815056447246353590631493431392310379367911477917477881163761536256533817368429034409944803492134126096198770976554101139862705799593570779631167366274016105108579641779203028080952148924451905068646126442888633989051658661928924433224628691999154963904727166652033880736098013339231096938504603653096759591342039396177916814438372247986935582372714627517383322371772826579433940756849858074526577759687000249564545792761542882538575972045836562293229348582040487038872039182470616076252817843481942935278286712719443346268161680950010608940393757026957096053664949095953587778870484850547726659904463255647508287317818113227974596839442630413479727826720449730043477830996149084205088620821455156801648064680969479585771690243935200342929124435118704882594864959184827754138566191744042558263852639329781981900210054569095185706742245571518882802942058752240112476970865583524272065041968984100090798926256863588079892810593373723808012479392725298761291475009828718640457871947085791708083274421127985344909747353287758891912419820651594838717343074197041364153438567394328009291434027982287337906992016006250145743764898378909186627901463581252151009496005226680242914697154204174626936352239294686664509343455015999361171711434612969081286996304272387353625077470429059946740875413683774832367627518647543828182277430889649023462910024610480453391214922052808922011584294866666145264812080687400138248305051477275056317325418502271400880107765525527923554375564732068002661789074713620347737773511157371731014652044593401004707830036836362578507466995213356782867555735327573495193510638001922740073008161380458448411207190090793032602661471805975376155632058569790781200228453519297124705990266612939533387941464292545780373420617903768752265778150387816770560800359753444377178017930830581114437852636302775685230609501026135654086124726582496134689082982302893609985362816824945344874085933024095822650915336881328349427200356910591433310470368002061763470558089997530837403529561006262611203823179973182994791234768746881238728816959434712370654063239782646786269740544690164191781395119173423097588795738399899348580991668484330925765602596952974553230230550845024183987864558647150191434686804865411766527381291334386098682134675120229827211136973598861765138062453667941165311987555016801682229331013940644556354044531827448940099545259638392005210583596978504106268795988269894024493546220531545656652423935211812874939259234841644349590112059550239352209186338475321011300602333220928910731066055040830024877218601826179545362684298884003867362146633110680606241485792153907918086569404452625886481252438198177342326581242774132702538015000231399176688765891988953351460243725604879748595961987110486956541376977748145369923284088147686745809540152207742017814190480640889575073036852380052666226190745676560427642143016529534470333129139591713351917965906857913753844171829715526541405806856468845616202773924711528559995901102155144418630794045684452325123615937580143784346287693143927149313305055071372739556985625027374146705170801651575524141671062350438813964799676403971113122470702734833443749537826392770672116627616634104514801129260312433709319123847289872418807210816597399915775729403717911049353136946645152181682405106878180042663011157908426960124799363184360582904234283057117026598641990148707605807109072639246876881183777158201335475181128786648963020366852481340756759043371367054202035913152412359935207187914274967635470786604716740466643535237562431987911499459398627768674128514739709156984844397446412862864435842456964971764352725410159043021218604645226309561183684303626195475357759865620936813723274481729905475570240854600731082576388248248877460102341171794841534698828236722937801854292988001790717346711019827763586151972775182208015976744515000875186699245106044592315188865284878594756824998601546029995939697560627846978287123238175214455149942677992022092007939828810800413820429715018124449340389650275228690839540079044118081803565150283870269033557028479711430595496407354541874240864444129820126285710006547502898384480542790216527423114433472146627281990916052984917887097124556580463614266474986651234640637951347666524631379529163061300860560223678123071278364433577550626657275455339176407011852680708412265494510972325721254759721087615016081683517448406725076135168802659299531195128079150279133664095490216283722293669023027226005923911611194948210879749654586896289559239676520490773312320924245685122423759406765126409136324504291073121762162665305194839996348178049350972190888468958499159167305760829033535614948475540450485824403834251308209820752623168318362036407477640989049569080989366855076005254559191995878944187530501758296374937795712990392216712322499034757178582780251698285047159903542392832536807011400219940083510017894018679851113670315529806902574733427754945288923938531722811547437054312420736765899072164412508016213206128018145871130691507861556074158874224434994216590070483524337095074367680576559162953212179447906837877681887310884430912771956114550478188924682837960996607299117775465510763518144044082138117068430177871093232119564737471419022086965254768131896483182432397845913450108680803719707306760796208457268995221448650366315530323754656088293732473575869236844334198181201856816479494426770344502116254164628772538774929727672401164077066844989441708244891925466677452073618342916201089565596451136614185055176593596772601987349069982877097839482360906262684217456495885494794450537185257641966695091019325778752170778940866834701366342373689799245852834149797421432134688664420059352321792348865409456993870476735187404977262659454623808939752545240114022707322149867986332778677677709378324520950355849601190480626130193849720452164619813183061738905991519887188252683710184066593848722912508764906961928481362357545641005939490929694398792787080268336172144274730942260316939840404505917928667970035539577795117955418749063845767100937411351384752941917689806031131765567732705717223401820486788346188083558187460844218274137835250308663769024875072322632050077945388999711646092746496638865680339513565845273312460160305223221777424421010064342070819740245876366449907827776116147949634936623759048924317263132064663079076346411308964848428149652600776435438073174559166343392141009088123899952886202056983118488568846098906951318447105122283828179261596874415931483706311409177113024688690022532655113695108662016445059883019395923242226515904146909786439768623528136830172705173002767190883951581186152054992473460187983688528562300177456765667370944686152029695380343587566213062259800131222495907543972581458073388161338397021031441986272780759505095042761007145081834874419032744192534146384413507150834417973494212843130344824897502145616884542677339015664970559958430006384047230166687105375205728920230666752830348366712558543011202366841256295138030062206080459532845525703472550221332114369660106386366172693693459789000395233812423741397388101978657046220143636570220833286579532224449687855494647713128482714051941547772526218973463099111902969574739977857389689507140698248738325684931402820464444662110272571758215128300231636276953295775719732866376176895762180995797350614576026489253759551867595428855699626848943401248620658147249819393098929417421491928503239485340991750626153972831040154269238295269450166706253808767273041412544237753858651684211008152332141393662118519547623807473363369931293572577482952912049586278136260982599147420388194024996529976662941249857976713571506457842256190819215872995303422933985577322001537120534306200762775731330408129031899102037588129404394899897056283573861362439522503680992140866565413976796910602057447411157961641779684996760868246458003689385241523546128255445633996062761843812085671659569056354493934433839131019588540364336693560518459381453750667072401538769742748116091653416421698034817820677411723111184027198852293571300148723728069075204672279572972517613073304528590391060819617633196344795807439932293737415865891252019496509185430178297057323927734519239771735068790306921373312287553205959274394310268200377224789629752036520139252643854295298868507533863075953576847545790980091168070771884358463909420886713840597345616139799849171366400608882316605884599946881329376705704153141120354637138041101500818658907405965730308765640619632724624040956244911340520880173707102267174792390840562382959662286728986769307952264445774719354814236516260884354640996899545387843803541696819791521774353081928918412311017966601924183426222409793444136957370041848053566043562758627553971207616325208068672368426791916568816847460915569547663127180470352028883002677928931170909662450592855518094247267443741440415479732766172592091887851897013640341250512588218121595242820858522039773528620606566087027265115788838096260795761413899642832169522549097731190540301822029885442154595267105590907797182551169125780107338535027700975763324782258290202193497603063242911080557946917340437156258860268044532454257685955637916557435228667636969750509912183976918715324698269385638685465853616343258528239950439200643119023404920801923870858271995529259123810014874835057193434581333917838259170408227600137711120226943730798978624951126717264061281539034783373307462506188965639995704233798267751618145882020724993074659235734243494424088858839349148840022281070259783708215475151113151793800358281079685695767018165449567681319338108851788753891854311486592472026929559996155095811745561246291526983653261346439846292986323417174387312981765996441366039503682594716676361502015121592021902063081132114342226244028400949990583166474209075036892425513457932877557434052257163037300506129342571064562899700273119626325270476667213934826595003184790975580460621427738723799399012743909743092852235335351457400239092923558480439367719492443941788341094108089480042756784709928937302377850841024566007946502487265079299501712465368444818273063350828111093753151101994940330118111619355307836433233950112144225471375749710225667121751871355257353786252074567354905420362817421159212589845134234495495094067122922248550083597103482844346562687168060295963735885197991407899515485183922874524937128999651718275684944348385334171566250533274299392077116359236532319363299937451040400371910589412999666599384849615365608533078154118985803884702621121962610595423734018221332014899171733481766806472357176745786240611714720789390486726962143783797641629591210118289528473153234715463106757388301678874291586134213454453663758292439691434825280696737009065606262613905260254322917941013100106580420391814820481326473527180056042704344759868279119208389289589235522374159540820474665606247720656362783091046555785809965281316859163320425639598232482633379314085493394455754667916796108155143068426325061953140530655296605004122028806527914868269212923946651711897884096436956159749303746209240611464619492562828068469038223107211149153758040191606258764022036188858729491760658268322039411988718330789906346905475059733853022544806084836580255511642538278585303787604080949508761797170087549473333294783378915888717788636496150940262992925551107138357215978918733046799059917214675953581057176957261384808881808446517554985778732822595789539022485563696940903911186614296406528528321828896527632332835232424686479532491939479287165800829174504334398591924176997957552915584086550381700421051684775096800999814003383424181080970433408244135717002002765182281089284995780528408418937791520898765722192384172931036559953493891381420785048254843731301159084689651814493892284393051274444701889774361692047161870236094755254459374833132313457137776449026374947592127135736447265772340053506338209509842024945043551532675433889584258814872192220707718458654922741798082909028733274795242878943484526738246842224069380643658116958378645987649653845850376887968181831818878070024308144389746224838661018929825351803410401268514166630880169979784234887232967933961117549670499962270066414772011202878869326387692915087451503151040011606467565367677195704935990431855494456377320935874003303015476930702355505088269275291889453354510145670991989861723905887905803034556650067341916467765782807465919302325498836974025327803942480768604777150907790849663676845612965745497670183195651261967836908307533513242720166808028132289337116278851124607945717018424565520931035150527977664636785680382193377310628194524247944723633445411162844356148320979191493501127819314279851685295219402177851869072074535998515474067267041249317237745501942554811158657038653935366334743995455373771935402457186836293155453470198558386236748291817263140730199464736150418246810051425594625636740256109063391483284906890891077318907219068476672745649510084223039627959750518924023320273903669094859641434477017174285496314045798137129495161645012586167138248250682400969652428967362259270571473739240398437514946457623139330237518256906619218265141998160653883052011581521864552215350771980411483137205264510880573001015826980616353453821752554698397718943739611865280811367849280596458559717810509351051818233672549081083346513321570288654491342281481001531308736950575825201090208075916618479957421555895193128932875586485055713596026406523593878022735571758750892671882250718104102468165423673355413150395547067944824480427157950613176367442718578728395568201920940330543571822603219299300040720460871262927306865659389995143566940113522508534866320360060715964725760576197143491936058701871851012069864675032902209008023978962210154253306860661253413698957852540284263336753962877707034975965110234070629051079439776553354140642210005996322425982672663990206963312273494660241848668650655262833671038400117886752468337127475643518101059208308815490314990041084107189283078064757468683985043249853999683638375845722173253107980526392853331410997132574887573454911162425951708537408551358910669808100182002803629992537743327635213917807521218334875248922949807197476493688343683162150597409911748791966861497784138177885146706271717494579606162528328655958079928845605915442494321313004134333249488044668899936871389341892332428340930697285565590445225083545715775950894926807071722502681008165548118895731119875562830172707588808272747755736446199617209905413875902667310522887405460353051981772953288606509632402535291439834475919383992918856187600535290508292781572376871385561948197948148592237209981144439657751758752106258381367640129520495193830215644318698555382369098046072543581415239265508096055030277957078986326857058062846743480349740074728844430836939853244271281135405670762485747749979549652742986392552607907140698450279638020968552041715271930048685302562872667146948872305425419233595757242335511654611074289045670888882408556318938245877377820621670417731698890092876226723376930001863142651575136179859653490428888864288328728054522672406275624440010547251783718757807140457336171606930160065174983638023272666166051356041582850063246924295157180358048724932774499457872938009103651330558528707195866864509328488114287166648382426943984029335848269829766030236939783800478732887272182443410864033090119097750760576272442895649957683788000986649906472901317620195220308438878407712253819675129349175225965121406119222178954459228350864633646081800674421610497555270817326673262380898939475810051465660106230127683594586028436633905755428185828665706541969759859799242093308908039981618379239598202897721988040085625470962985894227055505141231002126404441040062693256152786387480250353866370656148365361423359393987062540572337095524321992822323498444208243385812047733385666131514217117253464959519920068068979864866472457567657676222258969254160092128569859460920898077923114096361851328848513011275499190363530442844370673517384066553185154286078577466318292318940765641629809117840043402717486020727549412291885255984768600235998342161302240564073178239737652506360293255731466839464188016625993536411410226071346141827522482152882647479287425835114985242855017368754500089810139340563820525654835892447815026922234957543268307761710428206887216925609026903633193776502485941386703223218113417537010956292426581404679485642432896444424412012206835682835255727974067725494862663823506667837467383627586089398445785839343791906676725555918345056729326808782408625652383779622894340189183837637338289292159440432626609543979392963587229155436781152547283650221464139728665561409013841574721671954163326125098131415938530002870276525174421588593725630652551778764625366377482895230898522263906110589172200342342405288525218579669876018909715794109994887654354185481282643501074118687115955563320801928898473210142672726914000383027833054163249894151240609210771819768865099559107166371590781131233684003118520918996044818872506853725927864474162667809235828612201010065705635615126719350514625234768287124221004350831367723047672347865924707765209351188724492950102727907341899438209101355546738922505208376883347929651977259582902740676532712656938052701164394369400146465107072213488266171977378446821592021438446863723648491262920984129371355846105681287853056624506649187864651384464339963359190861310817922705704417104713451201001390638682726111441899274093706407776418762127318277162079827307414121882313400205533623159820665948011944177451915156351193245777039705080068854862609504828943378463316678680665461336702186291451960034132916302021736044710298970739325742210870861374571594057983633886790142096272232774703798708904721462710939248821535123790196292437700795233696532350322717245696009191421691827386886725577908397352963551205567471706545567161409628933487127165420118789118645353669019154932492053508526573557074418893254105100298563728481920870424188774253947690911086897693096461151081485264691043031389123590141538596432653361944053036545897365459873673739506163641444790965504788472235103912624945403518497787218576789075017209861331388361327508016965318516432303171935328575947351975518860406179408233132107010726998239329441926093399881408281362635716725644096524432229248434240530474231283697076535346623716595385021246270753794470863761702352111793601457195570201844354432773493729624781897481546941728888506695807439818394412442006515014371303687440191918577931581025093484952132219076558066360382325428189293700316585417750496578200712997663124799329796683215882045369521886252401095583348132291020666477127471683311887724731323286139772855062865723512468651958429634753628584623286589723742303431520400906347038326422385464433303972275595873532749683898598313071743021647589497631407972339822738501141909551746446483117978804175592673031273688165837759590661829035214999174672613983702528590903535050820569705624207677849860320106717007448131996256266843363778753224683928206256585114094980976175677065095179617309621149232491679577082415610552593656493264919621732228790459832603456449678224704876704024045710430247373741134784565351591322398794926917696805664832148712723280788879076327245745918800026373403606795981295653652018483211978611042393498048334166575493382961367705467846053437348847421540078005872285167730813677350664174995720703180162098921717157503087981302273204223523594048413358860488487022534823471708186291623401833577711267967246037167556481212494897468960856516333199977990986995549802215183386306768465661231053883809653644452643573527743220304826244163681901369952175366058667025516989602314856558035287069911322952923628176392916338478478764473234929264080162645849664551741643040920322774766383015835247554672805598963211693112174726083727222178133697191935509628615192714226847077393450275677889354808616293569398284315339756480930737599269996796169991181829631708583392782651933223897317585553459837146664840951465575447664698165130721525375707353211315505767929539086650403432957775853404089944350085063957069725086634709917147584381994626814051088155024223265703820725893763179003185888576877219640633200012449254067855587310035645792080151723763880687106528992846875586137728136393446185951111918317108443317591655862659093841377954934555066208149080591698184589025417220375252681479728351376562885489166996659178797159160618993117996506349172876060380894664257961804510605082707526284364521589383950411054736595092158759842749631019544260710407792677423693647539026493946585318610129026663325339549094242333901522963080798529790249764823457588828740927202301788942488638418744444220867814189013584248147943935244089127081120607106611352136630063965763074507300200937687016266686484515857419386097277887152356635943023141329817630057165347973696560028144958855938164471912583809473661448818417935410796847049546264779620269509519247175450356162732270034548923905186059878642376630814546455858277015874841077991892402371948876186831574911375576556233622044730309065728840915559527967393527154254455299322848410918929454154205280346234503819494902743910362994198807333846734018851008318004340365869208430826314162339002459544589576918790498204448070143148570506923766611622454366508101317138937898204649639951099689262231479781326764289675266438877397949734027991480152971520614314027051708601482130942721425117988622750581957891236901334650666794376234643892960442174507705381817053023207445130355079964173851431325322885667568157007687198849041803288558285609920853626212201252481612329314819603341388249343530795426278389585044632578233473026739858151203635434275784330612212058841991160275655978830723174663830795660223531660202369334792151411324784935707000740551224304677783961484107227458680327568677500935517240474303639264666652412383417133855879102707055831935626516251400875756523774559629117372166332176704379118884422408402315095968379376243492169180312430943314001360435097828016258673148603250333196567671476864098819035650381540738553576192696405060921874632081840735499671368063644807318393337571724716893619804026021955473374278963308827355502130773237689139206682208727249527849951206344232948309196051138437408874136285292690596330500192398454358710537208614515719332131337433027225836773525742064451679852143825137671750438508613488821160971100613163095274220349912970451350483790550740899279127858032661931617382254721839923110392998971763306564072917717291386771340940190331371969737696553807447915153321100051927060267461492338408827440887351064618206125391705031693104544589086635958189203862258814320598754337756401227070105471429164841442999443131194546787099212112978769802145775756740096915927275730680787669520169771024819677102974565655972218889758743289281666381356019318884349199201661089313136059328362833590783272921915033307398294927369810181910585787855790539305095938390709612709498548543906073033191025522567169620546676312254174771645152196888146643990465035347987555189178229199960716145994643616397097088385431646625851227551142026388929287475227801995427836616111878783748256048820564584494401870479975025608288075504152921406364764182331732846007872632597017932775679974127022979168448898524485441759926156685167600581799021367014178710707058250072083806141937811589898128555699197485046293588744674082384388448230803639191405943384977000062339165533939514632582952380655312281371712595637527398159541807347844681866395808241868607851680041833559480266109441990168172182534045920904690392097367314478154809988792477760824200794839260493991020103996622745071740701720300815964953252961611380420750864759218733904262329448673107133814233986059435150962188981961805045478650257612815274456471904033256529352532528954143636789703077392212449312975781677064430587907771454031502414045153912599339882371582801771367558185643528412475962830783332800110059649621161745377963539059349561471157337398435389554250651145733397342328482753395699317679026569099937661258137438461320372070944911478881421313711261234763374551886895389541314695883370827764097013851677049008739096754714966348203142680090911523480357923076054339713390861724399941031153020301161471164079843898654264813748320382133548692873796208933263243324979887587354871485201994706793496739871527807147306599129147833065716909749551274403895504631935544351578763937843962651112073248776241447492560610986737040618120108291878676694124485317411651916412549265998465081239152570953555999567283616511816353097417660783885391315304187978365978444685479539917885210493650805448166073780375395339056875882130393256220023913177700885330751807552888915764029601787628592931452231360567402821361124532121335774366066915749183403838862833725420245871501135286592169810414808507736965286601406296790201160753024352003667168886413840555752987085078632866698023623292530663555497514704864718732091133865495573305065128747232631826372732858297904100506994087766409572511244564516757545302749752137367992560073555858492212557342274707500199221642381297369776730962025506494497998320154915880048348423919358927638640169456666969376099580985050818312262705687918518844349668016959359985487067090600542203237106353518615946960183447710569959179166794936303556878825366465825947998444301125571279375371811850635230521907679651832670717762978822564059826141260138230658087026266646633961912471033849462545970964873715403807916212844410371600777189762072692393059895668160348809797174765242142838996623075840374251241133968927464750923298459380373887522662236794878749964261647692405620366533373276328204044898353009530179410164531394879349886269734605705567219027170537906955117354790357626402595832544745176021817223344299770601602638842809045650313767056031366628524235404657553704345866802925501806351529667824005470336883405970285413075426807349578890361226271225985254090066487354983693273541203624826884708683108867417343014789511307991196672391309263392643263236344063388952390079116045192189435604577572386709765776833365065681539816895027737961546552980593884700013564057969814108404953965277021878652998648371967844642855523571415042294787357216079666727471577129872455987853983967402654941288424637468278412177960915451466464537288374834687851006198664840433355242389259789379802535027918691983494305278723511902868093733634292377520822549475184834045662457796759258521259352276594276311602471684129515882111718538687783514904597292307905300199121233064551751705706520252005480214255646000356382780945180184589835549439395867822260350090567043242788522025795698209525102503498018929133984863591370626421163838816683347682469751834069301794911955202927395055075196979006328577434616528547575212358769028103704426757253902170570571591270577996717546342369280027276586664912804915243294859261298564649567816762865991014325804953238149503958811366530282052534269253488086442691272342615650280342646702644454678344901353262002815050200175730748609037710577121170647222829572782420791128805846616912422938558059064290605095335219072482481165913429138439936617944646187564607706667540802529659231554163958429104236880850474584400945845328157956324536060816660456881945143895119251564543422783675142430569606066267652293393198687159530300722771423440390095802667804046169163916054385398525486796426690484235873968496154033244385901418495492845250953322321478205078535339369213975830726930142125255183863866324795262089412901775336360494588323686245702761872279990307551012511684243730945821535439195514703998950949491510170513522681479589073927596626656279805569880470838437256369265568251038297765455185071901133966356118847141296443046313505925425125377001523800128299699687614447304783692809666394959365330498459920266405366379046429648752244321409698578591976306260931507333964416739225617860031991953700866854825135105426908207916833421427824342420555613129954103494462326335863360092335182869450691081116913316865784687454208860474656331985208846539364567078429479638115832427254757861386775618634895739784894737399314222763177461475845415064566966477017320850316105543996606552625453246475933709932571869331068817259843676960179505133040430650625210942527344468170344136512324264627249428891303295198232578765300179402208887293331379939870818832162926567234760520129120903175478911956858446320280087162051477230248743668647279656738729212945568498425862957651637311448877672461688367087917516492164693792880026526980159677113269372642690552108476587647998676832224591942715843116165882959473343383859973494787056250961988419199980012688217377032072374543544950713727260330633436126897511792174704230474880801261289799675077964472414472029992977661577410236268502207234158901939807189722014268274392829829051401594067818419863705881236692680891367815050075566484909107457790803900590013775824846798953539479013808295435730827493586269024104353696631447652785922451125198258381851019538266114845697059211961234457817725138780852263119005317352231899862915591841569661526860023066903114709495323344852526785931112271653754900219617717760010820825675340794153363342059370784224515258549359799974231972502384365577866448136667392805489787450892756431710609175100938244793852205528002368644300092872650364092043125944830178193784569851683560986794974516966695359705387368808699202656542036678907756169404994299947934751796829182294869328225860470316853922596980210539845148759107695606637078634387199029326183464424181408813908684991349271282696949673425749697085164265942542644716320605084206506638795764641461970394821775127873577585014692160494875740779784732675369278341307566591055840077899427930723148407786632419857559318977543116218277246352275658372757270417399548268043748007806102102532756090610347215210305069697267506515018444499377887360630492145735058070758484672603564546920539242032258582202180222492409470694040516138054701633715322686914911531149813261345718436391984811865991887210883557675219251412878932088171460649043721446123535277854871565555896334727937300794786107972239546374146161829146352251896262148010948373160450860029872490265493733614534377654363053317865053380747277790627134678273196394400037925821311379734544629455678254573005954486579199419064554888730154787179187905863906887480609508862873997232859784151340873288940764605576829641137476966631677547968540564205445108581028180791548638680773810826318638518311316254313513754166133243871986890272529226226394557854827890400225001523917676070758798484330538437307600636822594675817445544956316418914030884424546014592676297600795806938096184186391411280363234021253530924401292092686604395045674392813094865354043007935945862889054085010157041498227865107929280908336465378073386874262517380863406999463822851121198125582520471459045349095559693026862862097308079215371737910852564957925541657308236958641746083388501547547637356255769291344796735874302111101454341917790415106366937896990408696776076353904012073873347756196012509921133237566843729570662010217634510814465779762174855439608197474670977494679075255630944792320581813774715281309367882483881593541888202155263685027437680923284398971598950985247376720593621188582195269254725419260473467654129039045244089703724502239761381782107949866594124306887187521193072187180940402112369120624903533852919400054382930835980605427352009409809238432648644912350373538291311527973880409466704596256461596612760104706116810150455362884130534565004131347712042765193701858296680996030008269690869247142153032883906468523344017848096847367130616208324466833872820011901159532241184938689047309632615089811690481906095192865229914195977927529491595529394184012682496671430035392047886475355707330167305200064030764321466608354174061386616427030942939238155689897611629471067210894448752763558510590706090831156089755024676965859855635516932881310342115847180398657894158074822537538487424329641051859328930295618371123255666286223550310299559091629488588528527117778371857760520047167168154447325482955661034862059615269422270525377393647382670190147990169813508345094186148292418982259326402861634581979306384511911783391421955963448633629404107268236000378839845868481974668840501190144014646293628725763093302332826958672545672519813883903559408622407242773012460729311926744190844279519449845194113377458224277777467294128492808244741521693154824464099147742591796805005692764493738716993086103787401974739736789539797564966107489147500803137784355662030517275864981488735134459472749118030985771668890358159231294840041178360565010672288877501988083813381223644675208823241572630185030064243711518766936739849659152226675357988700204890293105570968383865386220066844347955573702917286083169954866660685226566513778290015058488259878117065579652579553678038078922134127493237310841059785979167149791343665251785079505696384676348313784409012358282157413958552979036603834352878044323206851800692735152483405412277384818961263275620401837881718914270815824633123100691069959748062113941935196909579244954390294846305986468427616425653536718518609081853823561421653721750104457772199272744397749574942293080957233921521644279678206948407180383062813031790245775387867052407269509810046494023371310689351913898994334393439782297169156009508553412542251277653120509405401448401220550216261527761373694675288008284855503744538015358372870266543457270413526444466019824889832238604089602162321752748263218188884216510129680465823190952699105753492087133904757398053850236153109191012547837998661648340004466865082505343250055704907461403475737108365426222678730106116422144840026305366979906879051191709625897178098059064306311767199356730336714796200129019640155507418092434527940641312445847428045964849617640407742745429007108131579243374886752496618380261337478424744168940362626549101990557283545710087860654626924573135743721788685579437996892853171201773092942560632563094374402983067961070293099496555512288768383385384500456424541890052296899801227671764251922944369699599980517674706717377922374071126381009559954145321104476610170391441145746138934814804285575381830164498621660105567928882082490874691782608435674295583186044429257844721575466874370270651149216385204344806590215221355426182444036190480347913070520666506962447515203834060352350617035840199895080719826789280142307690543523483950250811931444781205424266243324471551506517435429575271872285852284831185117015240256765123567748193612127615672475702126431304236643801216351862752468661755404739521586382123785578971780754071291709769221182899020549289954522860234959232853526307675838991626389249106070585459692305693707349567354165539867837679195413035826615367830083759878480320711697845870944940223712446321955070525366549809569270309393369353277369447051168408387696713015533117066245905796668108629825376522074976751534091119256390644002355771294249630647572217655608598313083968058217246426074135097804698874524998284580922283024553678762622743361344496483234061119393360904501769787506952438237060620982065404117325345242878682280916972006532245279882515547236746851509514953682542279233377653811767393116202430394261561327625772911450640748086818835487523021956632372979301103839902356157494262302449771991299238802947708203110466256914888125020149373088201371097810500740523909167671215165062422025386121968725547496796186233426367013959941890116102975769569443479437261894804580731726234262472440102704623705774300181116706502273922362213148495702456091770135657989077423575994906466324376262469195374419888887902545210608215532369671168196545010450565712262243729667479312008593004368843431170648143041906938687860923245029401799550799524752716099154568868513054300771130073698877954833821803463230547187686422168950647573641100499870188273990546017873215342558463228776671945896434330771832191826473517282007185202031456623602652722384710395297177850972460884766839492571745171883434147177884899838957448510149315981660793816420931125423093667896415725252886623758529963778118255500876991895385109051279330447865542007380083209707823682783482278161350136846645476044938014275973672797909503881632955958969382980705464042819707992648646127024759881236543704968745979763662627239259615336833207018922949698709338568860985333933193140645682773469199686142751392324583591595669301637703304166602463171547263728337125135557405605303862242199436316769113269701779041560590962934277146414260017340623970351650911007805287856898714659433362587306227383549396567264656499850845093590875449576062010070758951901528210320405803604534207682729451353590919335238418032396267324158796308966739658623075423178108946758645038835634399407987315209136807961464152946126244707958490596318881742315893744463382479183985881466513950397009695763057348379932632240207012280166983579041196491249903007586350690880859729157223124730111985936240309738954018371513608924788909134281631814148618949915280312322618012143207044479557383917225262231507336479986777584948719415777961663505759156988892429666008715602361408105550190817627171120812468199047994372281989717308123332604043489962713922552494306077638524278762576121562720692990944229542938482989340204422162493292603511271751915178295647205754664779061706365507689014372411278127737205048300309675957883172118514909253038482703639067335036663240009899302154786886281263981423798972408191474301347246816682086325776916746811818145770032013930884692072299504763100043527628067959187087946837251509598055735185293413290228160670407925663323767267092432390839056086749832068956461220356261342963409967053637560183498832893674539428807674158116808085852957994972378763816884160321197726247359145111104265874331802567184969763952651570210506616548743653776667084950471998448306136977861849628406816959113620814965510209624773570851329003106744022260075005857822293354139792581757486197280732973124150870729196115084723847937190846928403816206739626781503794819996657259245289302240035632910978312948523040921862540624245438057794155743725655820001927161885449638426121621801890608367409845828593480194956243492403152885747271901748697586457475922439334354811297709799731504964072903948994199560948790238466059606960341657771095619392618839818645286335016429782910754091928993710444998150923882866721937382505214171741443934511694908506590823723507898944117696557991506376446352431041139096541936965591674295918242315332216123790851212576357809412896432409733202109103996896145000508239433980933886647924564188157007087349743949008150057899349461795355070169262880359577290409952598567406943282975363899885781089666315657002092341458006387654551299406906321775879029341713909954076287097101906254685817127749620244772636006922414988205758891399965472655051041354455027796291911138672359232807365454746092585496664000234175341410176033404500930193785795591044716893750017409946786077722600525854270233723543486098247792053756127716503616277175995513246990322172808017454286810277255858017731953438445812226916185852445666904522354646624333239356101218649079514895910152055613498309333723746542430913662438430652697911116603745059916342306035097903324630515509009907481557351397393586576037537062108437192249742528220658286990750061986863656185718562502097271596332831745060344113012894135111093107957241889865540928734367541302058440763695250571338451358109760492183500040299281326651224584561823530385834614655084841528995605487275635815095410976201163308652934919887193223326219607090820768940792701406970232080943962359449913672063582450024504912580202663142101032595515297365870931386129766079552567217079317348814197372672976961796132648121390041846793460340487547592656942614532834480606777695509355800802624003113502088746414380158515436435965122015975719751615934975855349124375945881220720782730189704916368490198009902347639698260171750517461853649445484885701717315751575722847672329491493843187260130724106869625224842745870403315377117754259458817672382413541785086846230696293821574985367022498467700334434870152720772428681376158376406763805172319653206553502932135411510194483483039678879877280444899216197190956574903253312510290024486147720287959105792229300458865148456156176416385041934398875629406761212240401960471220320442411272187064337072175049332129226027450842078368573874971276692278801499524787862044327203118355975309636792566256627211572581239864641105154713965121017441986229622419667934183227384920192363982099583888758564150996634832724220284016871544318164422663097201942507093302430430533995176004507611535198914937347315683034145651968627607717302899603777552737306422806570409360933251533391701907039226885693515276610626154654599662036058941253033266080082502471497086068310202841121993878120416498216467002043179536863379707163648059232120145376523965351484104999846880295688761109932595175022817246077490607290432335951614696663635895690644477384444732176750745841986859187248242533049458197765948737427131386888801014938581897193997290970032917537753256761787897507924108397008744055313399847430542602946331832430716749959837108149322247896353666534059636026127326910346477824115090166522568611082149942849980584982975612208390688157075142396836722936478956179005549571608229707582092515098255811605339242119165787007920733043354409617140609033199449197862377678765321043078718338850744737754708123866671570566994037583618146764444398408593270523119222094638896722491539731722725885239155698789228879962061563989056103550564343699686792109604244141170448793859897389404469271382721826591542628846022312858431093820034100710011266995862068156301325851963326459707199371265348374786686749615433769894239359081390633339444314109109419304550633875979110379010945961108886769908100630068246370608479142485550233179946792495618163802942029100620448604109985116310216289667307264082490590422542205649806352140159464556876108269644507955319225182578719959403673260666906826833257335763661003715388157523655576009022032373659410535155292141198617533058596401355088299550646104952191197949918074983045408046495403757698292858605625467465474045815494652163090847764306611803167171435446178157418185323852537414434704916588932471987404433306475880851106423231549063984737685999473253352667014803519570984775174855124964056447236922444513152467712468697197760907837366146395664931085260626464332643712628142802896802676074142142110170378273883741534915406354217712697853937182799250171055897161981280906800773430418630708093432197182665408588382860139915448257299140916637748069472251547469645255626606892399290725897664815174757808756373367765088051516543604123632420746995536233182750787230387508628595943688957421715600807920051358632756111678983808206537866886159688974406320523229931497738576020354583755670132323398056852181300663685100961686411496756824174153400215399133217803222654505741559505830935644983970495527218024684846484985519959598590925510932504736387065939867771163703907576882245825804083614729168336721055037292913670335088051492590159304116246506444912564481132186650591867059180156274003796842248538582108114374912530894505473930026594892320635981064729551245154964441175870468498470472240450495482108794831075304391489948960538942787222514572116602987956894696173670595739457963130687673412312072976630584921435340832616283147464431191123209540937891489074474535890251352057516964428498935953483138542434780794981922767779834379906400727397536483662520904351602281552839531914044412005228824410448300188484006435279023670417496965845790269117601826562121749822345199156752443134500511729957634924240328205180902196940296248253475340360140904972139661541419295479031967969404653267945456932460313913570139705948153040291470343837228385682952644767418456960348629354112137410827747095688092120602861873150913792232385327763965519667969852886891038363168623302936607580020709627651106907629323909194644357097203287210056966660801208526871901547875317653161674461059153848052662917869517471746316164527850180112520272930435166167332363216593173591512821298278988997276003449936041234785944239381856982895628748283201587376934859939898872489338188410914336001257114848899742226521228469348263355590543928256406034821418094082427339539808259828916638643420055951313220827381592785576001957453037496381310659320553169268902697491242426170307445774191237876560989704278036117261207864821030928355870775755738730122653116931827441687855873670184745705575274381274432151026201592569521632826017179002252622117069976616069853384727428922853548888408230885848326503557706049656554643673350630666230468583844736048431783199311084242857120444217679369338564444880138599549279107762128345372531019478318682808017601531716558095353414116216031614206539383297877307169396684929635417820366676346619395812004292937764865563512445346019195073491366215742361548768528784247710374371032179560982888430842425559325903988264664447576150748666368358919978601020382945289088690286374912095755033942202554596477115044281047726114854908340054362554409778770952660956519921063801896521144912949988469788528838582321470712926931308246949064309291702233501204405880013331488291861300060623006922011929837439291374175100653159030411490905101003757626363807596168912117663629625311930332623863966082642723555068126624046915589302893709387598995822519812460310826141504556617669689217698404753044656554371970261145517339469223261936008511566382756347163847748523930290201564809651703376448099443150338508294224589281675176757700621925225016601953192913756874747411007422658982044625875316531321029456751309984147242461718684062043479531925336842677311328516506397431439571183481271567114985682681559705106367235949967966530814979780091414921060049047620912095375946746955276888412767088552786082846531150145374495285978955286029685616870454460989121250641747258601088210999298205150996738054470069150354568341173949055148374004529612119959067423466792466591730964346227584383895718098821590223522908893690003547225814541194577167544157170417910483961597760087776558193872058225913722958507463964865804732174716670600881789474395890844445070812750569602562962576415583044648132472323597706076752840444761235641781927391075576862174408712606976992053782165953834022765245422043198830478392176520819685137798155122410909551473676882350680618300785555193148734371831121702067506603840112433251587112946534313755829485737966484403676947472599158257904293066712762181673218238815116699151048660109521367447882188054061799790722444670154662973754317631937047520510209486389485250228669961976446426892231284918490062908327648740443487778802241720138384075359540637744464025139500221609205630757452761796755424094010882855299263023289363398651397259875603491059686137846279179158137460032270845933621954299039380632598001569857274795850234494536975141638299718988857729260160283471452760633494558002169489002055337913617050936884619946097215377577602441614894954384233983972630449829421666288447411327958254446767243071400914109250800999446194055110329803280955847281549560462228671855662611144674197171323411861038276365721458140240813007677684135174833944392877167795640127353482375383596801610492400975700854840083953804220466154694323756427415275812250006077040339852846512540155685030293370932087456538158742976925137687135070208507885192496952248770234431833755947755522217353367256179237042785763272681325120606980015122676869195122700190885529851117843955218488772434932878915727431946069229951451748917493179007519220542060809610847483830886134941359571132341420128497856650621678960738473352771645389235416713541523702351657922315483407343150893096645473387182591091499121793073947017786314191481206674554304446682766888828463179439537305000477251417588420669565361655740352780004062638058253370803272819231759686046952693202082316585518560593699941176584929378985615119029931589956066683838325890785976354512488032223715285291836892708121239607456775076226992712472805331414585506968064237530285026248786872490962801974722381470488079565645761851939581407765602174382411837939419246755865369676969577750096919297494403351626532198772015385328709512198380458054578312073336793855029983760608621080750619817782563150735854390003857560393755015424227561470301368529498662482103779340425510763033008567584076518815622310364258246749274307004545686535698485178859571138607798912656097910876967618645086318692177933281786786117635888589508359664030160430656928494048749933240917526923006796120233093471446754435412217513754670614652124503004297430522272466013326395472387656859008846283672238645347744063769500044677414344194473639211380638924629368627944525210133697087251617627278299948320310202644577839156573659635021927394813324259377925159985318353246942055699077342180255606185700995002646821020081739802654671282950625332452863207221293426450729587504697857313504033156595094941353118262166894530934366188379381327926245965284886585156241519369697857923979705014341095192508893062553146730625863734560879719108299642153116394763427202868919335790467979857912177869219309742870349535716174861320798385224962700207654005435374507033075317276961674892293678478584625930436543973516147226160394807699572641140526704731553190631658292164404103061765191989915663438756802206591851157394143249721272560085183509208398686741844499885416820505511465624962410503941796664384706046693659831582369612487552692157627636673933314899847416701683318608757251448888985215100212043495668613767998008017288400876078258295305463922181388318849839326084608304097163288474944794916901820393144260273190905987391627670299850910362829867491703504690410534338857594387976355529962087721149235110753628801354208993181281309538844606299153379450139114177698010752878857099709598115639096097097774493403062500367781193202235821832236144202314469463887633470439881172863970640755221245690240056001341299517833028466477535426496386678021442558745446650861776403785940097267957449640665337569635398478019030483497607760311703054415643846694650583218919870301235599042924631973995027561867346054519791446622251206592553251263928267161595082640635044138817907994386301591038135156359775127815683622152162206340246615829478240387819633198714705382587621415794485120254013970468697446129760481654690896334439322765918401132745526830470439032907227871401322467094586582917266755897019496242965310596658655640873837189287220362472859359521591772243624073611465840903547884081945774780951714725669590296476946140310067018413898000248922668279122439453480575965792867459708341776698028914800555435945063191336218671686646009078140990255264045555104251167649640377267159834456491762147998884873281319267225687281790013369035613019552257143656093397214605076314299489843567090667265650841435803916892476796201477095918875441693116990569345789111820792554937873656066756197194788020505328357226702336332419795392780695016804004297355427763075512367162654712348903336766107165303370531353641249899768532128280077572835401118742997120257613513558471822620206756913318574910503907847145788250863589264390918777514672608362055900947939343467411212353082845995591983384924081378230895797781809994180050354130477278611712501531073824226854136802094936334657817789634605578056151633488044020325252908874294441945653129274574379872216432204268175728040895433132015668015332091517826844013723472450349636302574927058161203463489019254856706465160406185251208381222969150528076414525519641398655022598876005136664462930876368199928346544132043274897857265914287428918331761185390742884758910044722587708053842687934750691832421520473467791206972276157186428181357787306977614194175148093523656433432183089990118130149179952598244019626527526565375039850467534488180251137727770816666940893135286963277884814879920081563981198164912232528276781797200799362143994966351320410153000955745002349130489715933672697874257916744480157272510004914794277589651405707504999463322083622876508803629474241676469992464944554922937924444983614169880967223083685476699879606056075790428630262198874691760596356615945581397266535241993853415294650124067295811221340997206769284456605501932313241195017090643689629464954096751716390898898003117411813566034496033485448868470025301257854895251474894917856921132186265811787984930534892677402620729743949450981076195849066961093208694074000599654022658638555882097793118911854192930123993934843426575960078732295861829736990646046669457384808639772975289775500439932334167666111078859532970574096889087735006196869496723504629764839815534534947039372165656543753762854732705772942300063896668867193871438399562305166811728566533790243882409985551625109424402313346654506629393371962689514385533561266239134766703435866219044850683022925671313546928089163765210361019073508926018595407725922167463764870266506813038932979224177267423621080662096241276363460583527177892708209559271855085971283103305385206047576549027953247560062525547358487615545657349773568695053327411403477372251861503872099108074104379978799638801398583205338494777469263814964101987666605197011634575389214253374352275756569367751084536509357673714106969851042297795401613294592684006218605437262665364972767228547189484073803430320557237106315039964118339965050265761283649552210950671897287202647151249486909025110643649813668433082976648470014512160401260031144967131589793526178682431301968879717023955876447600256474348053503409669458083166870748374637633923646223433283612682330175728184461709466358839120688134212267583152758813508385267841872676078253911805836937042194655222318280739528863159541824006242331561584085725849147885356486928511062345763950071917365008059446087598387638912476695403536321160330818732139430790287008266261542406368161029395076773169290942136543716315431943871926393364333614741668075545076786459781336632468978843956520433589418010117947665850651550840633656100816503089585483417094809346122255620141308923890792783330125339530068982018299622150732455016900949532927844313336219981778843981961834669170844719094704938294635373459589353974608864356905633766856231219432112077014796024980136708678398701413102754265668082657562864234572810530962815256121799921804713952746846564440966506889561635312395105014432708989415063093481248867530419177940660254368356312048630386424678646230450190326538510780676261246148156869201570066417923562316350841347818250076473714010697183613403104852952529849889749548892427971420358420078637918066685622144463214000611861971940719346595840696751095888970700842789077833616859234646305883518326141651360325984044409826058670706671891897076346049910292491294452045298228109333621969109454222119178736276475735099436714585342181268292965165527235101814304877866781780751765605089029387986306658526607316510730877365210784763020308553171240800161577245059091472083690604863262479652422876796821026785934820633021007876512401713822907688277816925077519146605783173745349874597987857261753936800249964351455725058243367423126264843561967388078709546253774294615845192290320163360283273591937445021047469496564395481714614414481588894781835973573323510931147045645179821915398956549264329515192930066691620242736981063640575741401985806911124947165363907193055425829186656533934518861460622310811977413162201831185142805060790468572323845873227748533105161624157982207491228744024253070981249295048832323492793390864743249473664770737891716965641691157849197105628101349028322803562135487674513464931255087215814957195788784974305054730893430673096793858982968146781429201226192294969619569358331201381676061201425851927786558931469268145986765831916762585637852516735063908149985155159873823397642958133628562649943633722231995479940100811919026402391994709686554063100823518390537921501635107565119023233899973969302302151047367117886684038847536814756849236981889401910731261918717318524714268556620981737430954347182806498883800469268548335007511548300982158245956839759288739413783601554180732770914160694443626240961631989729933574509676722149514367548771496792031098326001264034276403369699941051535289589973119815233772045880657346551516856403253718857471091128682150824061233003149520729472580949353016927749026479368572026044137459559926679013405051431972693639195477491258909622119106885079342517568890703015914550655970092148923399622183999258785523956240034258503315818690602190885242593716546296970187132855788816093045836675919518461523651974420579114637341220194762745098313612685572305198213742182154746298980523274672569643371406807921289484157017789189622647668131952143164562109763524195777595013920456392272380104207283125382895265743261191604226672701650523531769544233786488432559023913882499267737505873458270149096593895160079441611803607010890951815040670775775633049544708870816087927011929394300385488581913460142414663459914335689972466823196369631873574701642249205509724635258861101902657386099425957925080175895763030009091848904970160007918772513871842791403253764971541648199290486215562829137518354206122942342930625136816682702923437369312538262301683459087130478076977045328797647896756148812504108425361715398166512027656418341868937523783993999331992373004730095189431424764134116951963130056512526384811851570117036778071072713216969706597475015753037405273216222609745630512630097226486647902151575002831584768578217370875397403782906595956857932396992592653306447615024029868723820102339666857711849564621244212639777543411349827008158170336607714053091388418647966205154057973117746883360865043610540015050853288607190949371101087253555010442367935822200954282083870169662076243899660117738101919187491327139498556266613133491272286857297223925479134555516879367015874219545778632404349110785825275017243040787145041404529015227843184939345011741767641620524784765771968760693178268358512454445495397699657934601314678769984814286447428299103191190878470492057355295105605139536190032456134117566244887922943766596443631857755809462872044275961497129783691470040526276217519937952328477925464056421382139104759176767359809588211682527008288285205301552401218654048865269452585136175554811954871865679483242016090575691039775019931468628651734948968886438029033436816396679982201445145169723532250973829465671345307064581527408681833602248248564668490123101652535618451191936278178609235127200021148362455491853033680320240545344551332416284332806009119816177845419588961173196617659137202114504818903538964629845779152568999975729079328228433506740747367050386998599613403074064316624648373402694406359760026740572554322568832605211808613683417652447093766585073245597000888546638752376727264637162384168197313926647763939438285628119202508184347241699926814278194155027713350420361652748926783873141460942595108328509267529659761790650926706262033831449110498534407215391383794696366811702156908078814971384422330773453905399929366368722967133104901253878907474898301741319144582026542746578846688983147098737048583910638631043240448911942689802903368513528375075438729612180424438544139085043150921926593170771417518623704097061072502470449188019725588418630396726846412827586141285779058385032242037264092041217285599878972799103793287793760856643505499835286073793283482109711022315718900337116552542423043577346540239204467218340704248371377563863855823419079077901101295507065719601177825340519848406293417960451460560615634474994770214441290539966304120118915780240024276400735429252154246096818545378440980784884700084341136719251871054822163565725140909041972961852368934966558445760865755530419554985617970443045598191227964466634398254632847599526427586640383615699051348245428028048977977192051487680421462058506973186672442219809975870498397001338729179680792511321071095169861060653876114690595560017321551050685795681207507901259317536272697386765037398004620707968251631518044045812413394514613404060940950865701765804283001993685973434776916559011388478814777182827641807494475725415107138335523862606321733415569704340005759624796267600064494879806923767400372379837335322734603997487853018177173864829601031198487841937005661441468400195831334214600871569457974733916590726776366247057240355074491127423835804213114647854328323002898111691531519681765180701387347775370790352285219020713527692176780868500164094882157599465525070633974621016395682523037230509155856572306778427159269851360008097220700326137157308036428959961811869178707933353515912256567269669671183731192298852528170207590010418391556298200085115172898540320481960314399973274636101928786271597842341774004575344938249341934344712162665723400986366369841822731076881867816577285868562492346424577644644593920881196454258309833953991380787094769544527563932812745503361253458545783067769385686658330257831003025692847162672602676297602016870958740238682998604973114348868802631342473854722166813112026342584803777603686731583976543639503005381740834629080026946266294827304955139532156562640226758810797825990506699111237669437787128948376862887512564808064952870626081838644218354330760964386560826994025329862586527919810604202702615142295294389705578100318258710525826557730617554685877924351090341870252396239807781736809445000543637196848253193243578008344052207802754973039116956527575712126137149390802209167359796917104476846371754106636364341161515629110907338730327323570589860534138250255492554951684849879219156188455291515886087817825369048980387608464751982681725801821099147363251449011316827477888040754925343411221751556272447366697171890011333375478039183981425885339699750710497168741053240529144013275173242205168903213072688254610597844207673111851364849786739383932518871532320995022038219020957017582856423172347297419632217341259751874990782974536069848164673550652261128838632273866280306842230077283871711847814542366003777980177872220696470367138181600661925327660944680196223488798437186896429182726047104877976992805508489260418171087568311656061910984951721871965493273707519727833991717699627374073929432208014572183992224392123288360306991713367799384682535088919167672750481042601174929521410881773047752230867529907759598090342467987761037566218120364635670667058888466145445911711757138685960626052965016196771262702713149393863535456191955362723112911932739251581181490964781461156168291765867114822201966159475696764705005346601489942655807590345692344678652019673430541773682999536962335117058099337321029530942129714202939699299108339948837537937894701205911287585185770966749820157969159211825170619870618088203659760783519054224086752672057736156173342761958611843260859472915658347508749946345771151905068885557678520239016574276335562182858400429428331431317027897154784455977567013326016721793534849146301995415763743358658815853417104239379254892953137350338356093480336007191113894002659777948204063330568133734720597117547001975495346464848066471074218512031830701283660899366449997260630052743001645250526725653792260945420767037539278533701044274583418878233672393371078672215837755440490411745742887852152367882685412891761842623927925893128776961383912374282987075991681265979315596677988385832579621192460822526058451870070704164215828697712458293571597078994698947298346337877539374660537919826528233577143272311185652366112134800652211874250331088117973705903686517961221058707202737949119940858078276751229367153828713926899205105407749526170895865325225834674957723244746898420937918986966336615348433633206246509954326505106979744354972987663846959874934471681163849424422185713252230129421710109186026276806535725984065751147478255814294166300722700857004939532949418790984315457987561027316436016233636200335235986159039585590873625085993655787402637777250369051122518086194256221969388353848032214475839550966966426793461369487054050305361208808609710697844778098164024251527050245256343095715052586991057756659135924068599787079677853166982918751677177681538649204988608508179435175304312266514636611795206320183809623172513636433035034418311896370529030551722833426174264031789974959789473075056205397910729004578002455155713912332770645122229046514441331705765826226034841455757503608386908579320429420791111901461074679887000338698368153364331751070789017614186410922421294905118939802216920402461030266352300537626100214117520407344654029297359679642408551122505466806082393843310456698047449083081966559964133880309487181616224399910126847687997676263379232665438711261110955973319382646177526096030590464234862220761296296492145157174572040577451331849410370948568353761544205364891145930671372029757290578656898432177667649233692133586557703054071266658372812550938055323534721564328724707555626895720157861716197331501830135643931206643125297244382866020203135914805901354880773638664866857922737904803933414814026361775615360113842937858348143101792710166280850734035791005070957159581151079332120673338087871940526606672030945746510588667434036425030365696318981783697597713707285645654191528445698754723875650545841825810727480336513225635590964131343381220377675485871901320038627167106148023427082165578590732670427551537674844558454471261748087956562844524021223066669914120989322564842652810812263049100524550882944047260691250612265690366460247493697877413240677592233079700389395130322413487016622776153324859045066508973195713501336604621321897740372211086450190105437262412102809388988171518128970840887321710606590674362808166336662741066663891288414742494712918206322522128477415597256203361107629240429555145528323956789425386106281600329597052543823804730441220451745593638109820679428559861482267947008102423795847163267295653632111508553170122882249341322259907865822424057592585237096523657870572531413228917168452746433291521289560754752192478469588231741748427304489274469701428976147080978767243035055239424849205008657022854712401363103432986386472708923304931726233435580049309422877267309172795825103532382600721714923617313065670730501684300607903640344374679718453950370034213129856468490705123606209455956331220496385362529932390053343682799113863396334067314850779003425706122850579553678635390625224319491982998390672261435431580836352013032882406153879073770387099814227951038079904507103587983658541062481698632832275227784647935885002059497811348311813422825059460341395946615561338668418426750241169773530028933887195153364964938819693234661725443162317709511468900246216452887509322478958372650435824935730845031531730034322878474357189045382529251439261210108475022986607742441291371104400486940578056622311258301485407605136379645410800458518421648378139602149906669845006268608087498204553312075424668021836351982235099736651679413860694722814076142418275458174866351074891368321055498317122664241986340452004571878996803896632627616142450543942471611977148873485296383222120648541031150375032751747196170179446013142198010566789724611657534231975776592458684886328619494451969473050677666927917332289462993693124870155465433235263137552388447523480774445347008416468083877094130560450079206527720475948625258680580794085229829828624278553957068439796433188870631301357463920703755975736421980534924565397188918703927251822613926933947049470361762485154451884508888880074774674218081472565902323433463391695039756500544000896234555664887182035721705953234453901652842782197516305939089283675118394303376084311217270888370374334841775676828118009261575416851558624501251738526913965864310903275161554363362050769081340852531958386355840967505422678005404681582914811943074159165200837966728089654419534416511749249830180078358972953744300744230896275094535047222266233568610505874297359533581814879770331883206099977027896097762519332159459702306669334002964706892328421790400613134720590844671081318542521595879186902890857436187686870681033890605294230283427497764119658732235266308079497970553629440926981539388894601310079247669910334220152378388716848647209807540598331765080707564645059348167077609641148210827891847422160771850760321066179335556827951252959965782018839412626997768482382777189927654998016337363058676966701850313834859467186508285093599493696096443166069417342250725720631618919838133962151663120252768883492348991292820177940559044425431440177754866692935651333460256701491695684726694370861882239136636756642191657046402379097864845141545434983229083085571664273372867676517665466999702778372211065395997477589723164964683228485754034941026919616718686831071651407156372283506379199363764154870979256448726632627145025533209659090748581206394989507067928368784446423829928287271410104149679533133495354972966253990751884620128772862366273899133345492578501857203718049287525304829863484825449084750135790739960241711805984678968360086916257996196354052175975215657217652502318211839871122846395420712992620910716524257139644019760464898156844524357354590073116639884753287334506912610998970798695251591262375487904565323478766056279481911001522055615397475914722287362394191804100671738981321967644251148847050381404248346679762089037125303525053291633999621838686377303467064654439642181820537885104040037264518195538456573256146999752010064366591907474206435204694040956877459296160961353915477989918827640748689174488568156385607846148933691086025009594179476539785965212600690169381803599939384509382034310645319836353756304234775489487602239067498616544776290387068176767306066498279061696202991165980620155614040523761202318575241765889181534554428936101064682267098840491073817604031579453362727050574798364640665057602057887925821977542911991225064962751828577811524875382348279645392491977718934799177815047110604928086161635035056016467320818691764415237772366710150322271443770069012307133510676291016179514123854742059807836117128562710211553622157020249822563820805937764114422220171901291290317835266219311736782508945093190274751793280627675903227707203439721536255892419255212351965682449995573026428517234938018495412158639799147775186470923521254436353084769529094851143621521696635169914361898402779955399618167458450234869067953774903278443892773802636663305493227823425423081311405583903858019907669928014225174725299101253328846680737815205967453241292447864957301715230637809865093884425078680993868247394653469402875796344626700535788053118845146515676894281922618917965457843854126738574428514550148470353586098255840260889758389978681002231770321556323469060794066515008446905827444388189198525649831924049262379083185736952758793598899213771591604675313900133997489645818463778685138488129249234723322146339108930170520965366993522658995696265635341475926284693090293818799032230106021868775231251758122745381892995922780561068688045954233761819263350492659934589733664746839369895719242780095138686224525569188745780022062933428520424081804052181256196396132707681894215936907304523788206804110524671805496167180036592753953076091906874701972979608676564250553388730362408581265357768749831006291329795278567838277096161542500922951248745554618954473423818405854359266000431745088933457300739233534745788850292121360803318807240214866806707665148692132598142379523824610998227636732395952345841814201582528416063640731867249519469191378274891184907455661085318673137225395767084246524475331588076457293940663133189793485879996680772483775106857529259837521102275012529265565490347542192181936837056184460069925126533364975984459288092880443830079826422473399241097224136206806375972074649670753761925789785161392571344923672590218793208362563560896238541208035320578930604486088867416159383615767286389381850331102131263626038119279845585492751600518474087925294756014769503041283025112032459531564493032962791717576517941462942297670148331582103695063384646432141951383479048807080967621858178168923606324309919583397976101741693704489382235274340183973641442769680659286916115555983710642890756993664012555028354103046607877425561200610138288304706885465242170915132171634582245327293819455623393976318789925353750830125364772592943785197131978993879021011965511806375003570506892921490454154048022764714231321456116718726686268073365205853391254517836668151952750149015394228489262060042748463085358576003745601171379352850173973846513290062537070857142715112512931114887807599903433421772276556412030585200500937042761198191826066722004137444564726178592054912573615924200577271005544419763309928817501729438228217352265677678523037278416627906047189796966351161002754355405807623632836666795676374909014224166837115296854472720660908067616220303210698656173877354441533198623422504216291452148259399703181161237497563001740260414507758451215992209628354613334005204600935540558721672875632325331770454160727899318227685789079998297946798700929807500147888328422812696805543098937325223563959275429306467583500026785824836901389819164521588000645668398105306632230288200495595176715826631084596492517738163673849917133587655572562142156333102894735062406730898152645328874475893527736008618386207074807400577292619721175941148713742419842165365883450822895325637785144595908386506494934455552948340393712717141367116946577962397251370215687224088780012044804209869991563119551437593644938377584564841063496913126406192003551150935785734693854207184526253496127319175145930125685058024285451371249346440551390776965316481712534725214117254431168849849421936559525500907199621844507126567778052192097479469802562011053190615496685074351806464104621274810546502369423509126492553652527717978105216776321537397778038627175790581087272623946045687259545658991125387842008480850352807618166650005742981665647829392408388066302704737767729529743751991113267634279662646703616423788181222240919454606115845941895043165150303224529135137064907332952403687172918239716494485436573168238259706576251529151961668344142529514803118687023377393622970339155988422076841102993830269045696876360762373944780986237853165491662101242994458621962127567783805553053644443107610683162660780498330027477561621639243116208022985090852081207762373382469711967959408957655638353520753993763145434207596606618837322800904889502055835627316443919664504498573425970644873021983194482438951559087747267464570814186602158977885556889464820050904014592810082195003616848677680139172217234291062545398511996302533266133089114563885095421720249209696752473824593674608783651855653115899618112576794377822423950369475105444303931448886816549372369924118417047167586241863977494316137670170524466925070334334406703829988096486945259436389608572399991028809611989136656409101532228300704387041181991982726509144677594974537794915957137835595530255168434793046932707986327629242852136729262115737381986460515390424791791275176411349509035193028628016101872949898793493439039811795093128499447202845511319481294299263331481470569397732934565000089670869034374595950696817331607274128218764536329108624073870073666723835669429086706738718578833632292848515644274846542392378735371536714225821313447176824003007784794891879049291187789519894137412712453863516070523163693685504102919432630027431901662049060071875242589148194373971593002685704437454587009216247858070860186653189076471415139064295248465583464578100083823099144892812593430465654995920748844303248339540365498384413608653543744508340309914387491994866277649495652472481334194284171317250533624702887532494877376849663102845228426007588481175676423295447053432531401546325706787883502123185367589597643966490703583156341176135711020733895687550067731164474013463467314029926890761538918166465651322148958011721818725375635363681179890515234492350591240214796294734397335681841009742846058203148088512945950886019780426704306787422913289068478086144680243697525990985757212345124084385359577792141962071411200818046477511170073395678142754882318627919993537360519751385091460218152396149797508427338377309450353010644997850011576338417098877372090673636821564090711449604257573262060844682139306140191203319134374952798355942095343089581527912184998531547373240375374464657849958284970465639139872054000050604000263323708733078134675354338547095990413788431141830643929289285056872954146207888093801611439088003127496235945130170407548443826063913836515983166839402585499645244848241981178756415858663313651247427503080930713448054397856714797807590343921298567675815573447352765249179262472616896348408289108061320406012605103179467424297504697045265633850950916243628446940568416894040463673383129091708876787649379439008968398413749266592581988939425990408229066265870030860189796426862984576135910585650430239117080046419393057484468148304503375130642871654668172982027244851974406103242409370350428580403275806753607106263535269549302381113923264009840162302948759767447944672443723030308996887212516544172632543797339593473048785194755319095898217219839750580624593882014336401696276801737153914781339986247362415879160531325654821717152862115490598509856249186617004672388382004593613503338366508340296339218542831452650139467255792349311386144633840019301148134993362325754599494114642065435458867545550998973851889234271127893584019767628348949490626654352441832244697520463943596925188063685409288246317552895196761433285758876075094322004359448388626406015957250223783411085880043465842272305848178354501931459320432672927274528947354575153799242258392391736871237774697622621352585186599047989733882749996224283028890335185680857043763036200798092839710400720965915502560541175925316227816501905492842061866831447720776693296337408900625567909836468058779437518583906025226386734105140046613755356687258575450589335926616162241417438709345729847876767477252570142001371805704529726245099631182104756905990129940793961331526610048851613828623904550866375606445743242811007325120894069672287650487597247585491245354048865471563108691231247119993908323930293141179323270472603270322650230613804831703860264327253988108632650045414456639019081181299802719112212558293109151638587856882582093675157701065270024286553958750405679278059218782609905139537518382741571000955239748417714047304747576266848862744504249452113747407208238911705307012436632783525955195989459203972084134179277572350690683206841303068585876971633078568608403469867535241651181787394205741980845776290464085833734465996291988810777370199184353883361478981329180713852679927013821400212652241452697944038655832884413374670389386456269736767205879672901090102187834796906694563840496374983340912007943530046309171098201028398674777841829553178353368118422828303445542713717853457976739372814436188064662141584008209697340671142712362987408872384173418055753171382183701566351169482966800340633145848286042764680413657525051394799401023207309812279843570735292547905465008737605318687838715975990929620703234882831113336776528520420613165376212909436112907747113640210170358262905020485375532903639456935302890486549278408784323951521297179398713509252355647718883175839232356726342186759961300905256474511188354796226501740005382309946604828249783922719607070011019411065223742235876498075640690806471631621837093193341747790254069246485683679160935885863986438909125029929711516198945626269747978257122920143686063532187325552758443249675599584159646984148397727426638203134482570477045730534036112845530548194327518578858595764145209466523761055962517068824282753092726893039725202531013150016582020396493132843376873645998234545160047711021272899188000834403030967458742411789891615302624794444411880120936451869420454440932790376689988178999256670732452937577597892638733781880945556303758191311512472025372687709165049512917205990378227623615661180416883440719319933967407795268507445307583086753997872912711425876304106958752566368018421744381769570086333621509747537959425838728603034747147029252714151131717252472841567271155003329432319687162285664643864142519931839230549257111678747240585233365744622335674274002760604543928476161935268644998948209923961646515826034819878475173250635954491942545759683273675979650911478331978734559362282557242134947029518549970249542003890904043399305217839719257511327627715486894666557266498789593299506060083706540175270462638730195572562169191089627635153711057466571262601652282542784608149337808390341917921492576284058521163365758667111565780843021655190738496020968173795346062894916704690373067584756065296098421918585903572170852573648312046983168068569829432769112856192867627224733500074362599403457445678124268546803410194354556722542248406307915529302900885419994145667056286376527757533173539006955919570584947780123781999283534889284639568181185991439579896622835934022018788118129916123116734479822991735386923726248933100507294197564982701597620660956457693209708931861552443687972042770056077707917288071006121553505194564201732068337195707060940578338635555760866147328692575759555867118438381236904947251337705977571856532199273874974465913156354204569492643106753563042628568580563977814695394384923334895066076648392106071582081607927277880639136290348346496346837074518410302207429358584962442660036759326923652179707668908755547865160042459037910909640364707466337834086519185841799832951593162882128546210741265591128789270549339213629703297024358747443229547029936000748972343578877908690272118220292296111814872834135864556789807236843595379173377356088751996373379062326936460342184981685342115479446259758250706297810819890344506767126550905811352666318124496343978924010557048994486173017531234022681883061328003561734805793516288130383903788155505399213014766499042831419918348577301386859619262975501685631846643362433301408228575391350504090946712032715526293013500014510340547522447112404599844732027346858336259650134448737269616109423810705696465828795790831263374391874821588153893875536224673837183416237299266734241105525773028880070446219008381814589723036295783417168884257900912610046598689942765691110294897045660225872340113816935372178518232891957273192303192785032906793842578884647394223377827393235436602585736331049528324571338294538461823196357086540140997542874351828593014417957893337344253076817246762915397858065435819902873328980558407672443081782482641579492269623397664970854013215891388880138705387477402423407352809553088767420022989818882207839132196684961356865229077517938655571812371435725531558412549810545314953290379592096735859702972355301967498566709282004236090966891981331120170317735011370214777731344653695214206254712730528821172343251180291632584662997652921329454797271844608537217479394849014713830805537066869642500760199669892192819599432088887760791527745386265511284467417833861623447588265964325546558270895702062428035340659534450816549407852439837498564511592413765588055398225968882718978777697875736205651681537947855724142081508059555483054516219533893156582962186988540372180448314580568937118117224832911982670547779075531399737745738803194011470005656220827664296330261361180417617323854118352468818901381163664628611212969314703585537512284823961795060379271673333396529300336281785723995164293541467121525714031430538409186222929342163454801379404705983881591220393765479288862769175015531721415570270533401520509964035848954263779071202992206929001101600200887707308689697639631013615429905111857409220096687011489348803467367123225429849205339009978153105800165679258675201676816945893233858686584630950286188173917161841434576717298859146804646034545691088123469255933421613760079031768944872922781923716297168653812569151411490584865734213575544042738053694685208253587581772335415231762705591860428353592399834628676029467975662031521347543407928158603519632284678848981892120106813478639100101603872242094790012594281500727607902669677936829389079961483838126733248173374037633642319576000412928241042963577597067887203630348043012927508553045410462712022016889737001950163647045764501434164626329291584813507656813719129618943362475682067377340660164685743104691657963541612385061609110201375921705982897693124558467912039608428246150596544374722507204919245736835254483901906060258543666064277575487112789361389811169002896679400615564670368726474466912910075050821055170742571412821629847655896675115711782348226839959107125475065594250262251285885660084244523820292318670632997267737978830256606214021258512569345006818549953515972254146274965084448282662315733336318912921484314588066897508750645836385302305902852639667404143318545210690706087810179284719385788323705065113944702438155687940065705978073043131799533177792050413999901976883686124929862450641138643377708332331103487753495907093980346203117832034647296377322343071160371778601347209079740911323284676806432974077242584834277823356171047228744520958241348516365819755607248351511280146807071414608267879807160179230587099517123523898452037492914421343580818235662292316720880768962386938528176046630243541191412765128524973394540382848805347153689688450442572331825295986643181904749165304985627343481929942832705025476898522194911863312228938296207970790831398304550166352074454397661639932467269638642632381308241849523651107485886668987449083335467146154187817814484941655720511573852656778381388587606296325334839740223224262515819398362228287196037241687253066644798403925885822245876254220116046877004915748837078085583979789967389460155640579862467490031803633299017036160870360546297860965174311949879290203668778056583973418279040511558634341428283189794980079673938005311807715058460331178103161333048317813371226184858722086412638936473973797061478963577320688911577890634942021021014961438351977750683154072869899950820873397956116943954184870271259019856051065180052312326004166672906266130612468275346586629589555589463902521409018076622853690839341900468630081163151316320745858503972093068794672796176828657690205047565664787512133235190835026699178586775180676558940049940801786944011287423936418900549766601567320785703508319922937604619073245310581679849015423350841041704706732881838103823188140133275375634415512196983656153908450916974180190283601932067609630104217797190884722966428368221328303034183190007685910248773972147447794232290936377171204399252399181757801767280600631526470394201616329516396636510706738604892663558237668312807352459020672092493348317444661709934769403369990368607310457352459958791286105532827167842309194099592110024425945801925758085363542083249523662385480681836040066611195447009007745944317234975187534422504060039440819957525143737296954776549448135854299602830662033992975032207896023970379966840504283535142820591595882030366562740234742443764601579540629224523400452221437224617481021936852751886176868395220591053252240523050872484869793746693031091187408713567891553702915666321053192635764968027242286211635711529652247632933429568046193337589126430164631504712539115252536605397507742518893098449574214884436280811708900192816854196145239256701231121089796758321795611453026271954445407136002154196300863480729989025810448408335330296398113527003265245440062175947186872153886749785661550295402788599429766803118139067517375639138756175853710107558549691133923856239290104253272980497390894863160357067450072113613506385246984885664434636774531257727966060056424113042135641282525549572983922262105312792947061072823180654567744459226625132822545824449399981970536108857588483102860604545482865707528850622170487020186779179194828164310419890837596585931653964466858391049322511620665103319420238347996366461977165161145987620585795363149660623346957802839028285340516213266257451267095428955306141866314028555734564543346733687666177460939409034611720831177338786140676185946183337078674963123089683879838387077825924793318344221521705087658313517217428698827072082560774805086664557694304782636460134105488337116292506372691471649791046247455409122898003900628194254703993281959973612671521951966605506327125376640330383649768434996620796976844779481532268311726748534868811655174418169185034244705221767864075113324223639867968349691311985150648425854349182725463254161467537044925527747610889969105284283753747444335929406184164005664196813252868624994680673360509728349321473924506425508513958512966123287860998094446762104342766164630910210157583152915933369149999188922815044237135737696503468264599103422452239367523338832722490823981372901059034606925595789193015699162568015035634241132396149225381150487794239264890721665691829514468251508526472975256743507600816880538950554446990187567326277488601260100079535385159272750082453281559838620791552494214742249819912013757403908696875935024613959928363117400910711697034987914688463718396830987334597455345147676526878100437223054165520906091213818161315306141133467486634345767548033741713356933214838097102660969817575280655808820526395210709602193309951073812682796525869483189532114963699438814728368666192846028368607541244824774398568144551518667556192119851936468739722412022483222613969605052929300432960774655666459607362857185909102053379676176538071559766901806557708871947885002113958574964848084143690931845480758658242688124130620368107998182811535143655182096646737321622684414019584415730409949787557167282856141087616106585053303834402943517726066036629770852810406055734317728771201886654365149783381081647861783726263080925954734042694811067269374580922375681828748988657658783620800758944685185159449522210701867421762615277722032265752337015281744972164319845649679982094198504451352964557015311274995387072152428969395186945780349920004247232847732935158086552668069282902546887550644359876401039250712388096759372615110155860273213187950411670529071514247333349349755183053333863313780877870218863539715591630152096076943352362516274248111230005615256533338719721662759052290927115933633285603237793206143864661211038383038298024271578883899073160866240845446682000555437608128836112901746661928360666391799874558960952847662473015984048840200544851319402397804307221693430521262232102926563171522801473317050296491613118535664925398107933096431496908730639190892077880738501121003521046412054015415773573844345955768705575288518087707639399449610098906420205837395903617353488952445770736581346033186662191499811436372390785722936819589367282025292010572919743634819077396794501861154393815493742200771665035003399270468600921746014834178910669569134094545710980546559854944819382523835699144342853568981602677208490977577105193130737569215672018746027806870155104248401989383454843476677354684294679120566717639587675209309611239527626708622424018413076896039583883162825494672070377806110099133078317221975380655598780382950406458035494900206990510407855212196851247562030278028908693565593931990515298633441389550997850354774395417899859121292671759759177946345583630783793051063654233826597125348541935941210376508819236336911214798785501509041812896025420613466167899697349586269421125977903897003066241527079531263652069253622618525295584554073805180082350442650559847723132219586462689950905275043353810170749039718707649414001066795770299974023011847715984368883355164753713275701694521240497077937127104646898669514376680130975201192663132574612038884074714794709516172211288726485469829732492523677079845034949259696052337032109781780531157035872769846632502194720843584914231557817302001149381849446579173716902657005889585397551999028407023855347285141057780935660807601876461818700392608110417427740802669633410023021973383866147220596801125963231208033263753784386808599088218197546490105886290382452328828340697701935365543204568652547848163950015314097404863135131419072976390023881258625512177036721243750933336983960999139653495079927393106159244066954797525627828746454161317392710094022857021582909927217223519784134308918224528536349204766280500784360595996874856736378695711743632578287310349772406097510948695342312592472551290331569934360824710018104722779001058997846720274315722344938942364488859634907945499642801444223792233914795070254772194885650803512846289022673064402194723221114978058853943709225236773027927243417490657048449038679357873236066645052625684763764707375356206748732864702780902183054391316728027855630896744530109315045044002843199271783458161460977180478794597344499411451720243596302409895777052645723820160012875492569775336005952483587449575908022873410515119899717476863523618423059051057722844649520427879568710863548263870788773854133606062277703126131783238810167930602808377498631742723039163445072104111519810400970400406784045237456735328731435654294193956880619959905480360349247488680939492822890081207500491103850804679367409309360638777446255483753808451243925963406750116142195288772769449329503910363095562180331635113359298780989409621818351835854842819988517120924262009593560022688836069945593023487036903098611815802040881961367834846634592989351810740943829040664701034553215359388857135640231304916719649983440087194494946126756051094967770573683231766674542009776116801405043185202104409120179366147781463944683052687473192830982903261605268677473985592908319948790626852745323874020432763932854212745808449620257281034428668587060687538351503434279074778679508791330905982738749090957695435541865721665101476602111538792960677311269157789912295128681903236271447553167594462029595707921973824946206840458906750959555885396735749185163598453710600593551281714899614406610386716935808018416607340517207529951462368936204047773715290272223796059088280175681829609950055916607172192212000821007312427486792676165516657459740883604515751049795509398267992004351742737360415789070423502452549640152996425374255190745694338587097545208794421890883166750344695588329248164157415557918225031829965190609714351300113393525214543002652681253331002001923491740043795678204354837969656264732534603082709791511990617740577319533099258633321437256225689264741396680176110182311498338110661104031962264866044711092264930177256016900614272192718534063875761767183008958592715541161638337579533771274394022036290251145316041147547042752809812964712396653999548227235813391698620178454197548115515011664142504963079230074971109953924901211866904687895829242372622789784541067630608619096027916432001847896541956469942432822269371697566160129009349237542135333375856619004960085198515225753093086927764225422065604073457072358511325371263034549134346360355578534148723898508663829481243213752045140542160755808014079151737860297179229691813952139483646503104911838979246988311561258205976143888568466941206777004608513194946906103563095992787326965772742620498579353222536732008583977552679226142639909582877425141992613547009740444652188594097088197199854071168691029649632267230463099693561444056258709777320951743311063159877757538821145109422267929316306995720479720316449784371357589477448421120926784565744030724668833809906467914322913000123687837372522911562753382546876123514257713913148885567416700313343015852925500767812301096488191341335819366400058242576928110986326393872879618440868923949291967743456548108689854176803594156953080029465895806368775904196734129103751873090789798191674820208775491507725307873949085198483952688714859927172606276680463953256956866427776262840332128802229109235074411606581882419276306025862733354591496619133212100209480036468283724695636702963304382894079913463213877472926290489832812444375001658081526575226392616995634298044685142121839724471171372758832132390021891122687523116327756242223814591947047529395486357358665510347079334488307989986351136298721573053645648911873624970165626488418770467250429137153279370354623163054734558785637403334255076331698235308423810727456466017644379156681975986370912496571673595352534578476595524876846749126071485010325520846386139062091674672117776552263318430025042070523124115306362079981021312125780898378544539791668150779993915857761920248420532368665257776932556448780416240935027122011424837794521179167853038704748404154040803800634366175769510337975742047290041254183180361684175152107749658806029245973554464905004647174876336739022284403795026847561951824243716135085788266446041153298277443384981702902730642787043728804812180963849641285948250747292206092009261061247312232721302389686386561758037129607573358733266410730350411995996292219588832530490251752831388335869300046583854508666283031363897567725861875041245269195486900038864973882112937242623124139373029795199816409024356218977175988195494703467597259379896039225755326022100023564100171354151031898187025876025976927122049343980870864638678502104365523766748850433579758998729731242636551044758444653438813031988406162607285741178293562715714900715272514666130196802632850235537056921020654141454880190539605296850080316148659855591703499564385935604162768964156158949906896640947693936760987494107973472818594349547912582654934773057942563550528882393079665793716391186253240344946481195407309266956028726912529808823882435350297214737735167462980074046961066952064551884336100673872804901752797272462615642846358832680133884604767351441729681666859522252377136275179611217249576971649154595728433913572795016283666313907266455137130020113292336573125201721631895337864124436724865143727421950428901673068405263190210208547763233469863634167822894776785222688605951212140922766003493393917864365864507893008061279810363802826500027503905054722637711929133475083343869536366915795452740560467627536413505443937705061763923107774172317084118655746739845018165893574223228905910990217000218134446398283667568035769241221796279816024244729454720330912301783387539199973055601838931637757292525468564636987405303718625320973582461840106825976279090854783732974707902872091607376972671098061343905700721070691429117060671740185752070548123107379776974410638808481733729133630862947876058801332147348675257405354107047964553824296140120061154227786819503953987851025486370705370228217130849602630766176135145812045825513042007159476168273330900277482853347859051111760851498327959141557654497218506389899182706584547078387798206273502331283852067583266040404649360579133089769035777174257953652649286968948383730809532764213576330595190229094394960216488003221963779768805081460933888558810705237180807121739968972355018343726467589187874444234074528445038532567059092974981212410226904204887897750475151567875072993891059990321947631742538386156270741296976605693975125283714685605263137520245267727395450390303030295535133403133555762230837084842334611377436746103291363567563929480205448085502546165686950450559103398651313714797609662548706964473507184041940097839480092982725026398611030550123034330540492645918545465452617353329841041296718279027030911222112366170473439397592627886224785645310593807319188149429140547970286310237014999518992042558553396077898043835588836970452499985811633366245839231479486869020360131293110551705130992446324059752617126523911239806093498316988608190311994488234727675066891991365914242798766367466593336758094426970737085140287068158118749011691201633691537199775494838171772354675586201174398030365465537408766605329385519048694054660690412364845274449854973410977857956787412021004797689923908715996378273180417774603716608810304384673509760453047233422519451635396221787208726825724463765224050193419083671251877630237767596344317209721367386922301057765737381083697270985183775895339886445219807018901746845287126042927807078069105452695841847506198334577939099881554101496404136749403767986142994243315453181284549925410778446552430827172501485912252370497089322857331105814338967097394499412717837260915878878843184952693006741042330864438043435965135022879097350079610193457884449786946701676898479354640113035072062482316591482947542659040735838850378991044557960838008159474673854382452578882663316412773105021601075138721278505074008079630819917507337402653728163656987469208678251651823971690182941632432388296269797372147407058460245785187390354874130175078680201615218330630172668434549169610319248090582724775094268585016111692288256564886259934590303982883145667568582436793528714740918479034911201986736681699944727659464564494964848726587406262813634884981154865005237020898473849402571336262690291564840430811876589180429093234716576786264313200380958504039906801459366621291805001057139805693525473200124536534785331912076161234542523257818073409828593371790188460221044347153180804627190181058945973489495233572686730068989126937223699663195121380316414965346199738564508588732904267924069508190584071301388149311851622066775059149399575436196331579703907536775742698443138192406434080035900490790415310650264174882393366202266106439672931875425260430700428105763842445553027760351367051986575092364155402139698440163227827280704827173404103672974640013439128961472005088315863510539637342997861267290384254280930522215992638858717709846662713091955854876017637285153656379240409030870712420685925819225571236265337769458293517733950213937732945575665858770029248483619324745470732636620557791703609116172478072714856694958442968758442939283754338170511312865522823124178008508559147829923623827466893248390248004594243697211903228421289691193289323136881871373854014831440468473948656984719666498459143799302192921394559877771652057494468150658403468747310528370917134539329954462939980807079335919722442372913497870798846878366891969607621878733845502842186761737925983352534385821795449079026812402540637874688127602004665496839823956614011553651242410811617518673043221462225604288369557959114023052901515272635497491432423128660064420587233785063430190259351534692568963706873838138671782048795068578378969786743455523262816011579369569043343706953621759017400628703542054080134290104390891611866946322724523673494024057109985033123645320877496599242875336796086923882289126154240171862650397265873346446278147543647047364520353338997794730556255614030739038402992680097381480879341738688241206835567267481901684901512019103483091132565249015616370957469810716196937103958274331948654064334687393449404082605462923283219204208863958387250077664447956892136245014900845854343437578963263140534729911633491389539702787940491360575365697122899858775258817642194222764169240211028712310727931326716545408151457608955011144643958861520178665663247084535170253831424953083010497546814946057639447046594355945714081269758040912041134860554630390033069352328875417141585346475578337937304590162016661337921399934595165537790463088227076730326436654203236898887599714548174997079880458194690037092675929072900286688165623728788050785586306840762794228101805541374100725099926213644729414653921246115291110994819562384014887070497190849714736000887743362138006381746843808502148638126707154712250197208811487885915544316751028331648787494123177948082515019967517999858648682200081949108902700383557749429946925699351363278294869753451373625082094116619083045561221727486193282195254529500806303210708768229857210412238522134272036339964071828783761465149949806854236795725600605813810494425474946792107971671230958643186122266954684758130991227671863322568512099006637954177694908623207199969519984970958605822395819356834412861342129060022386705980629687244427103380987743390838309340702827964271552201516805691009858109285574746660859708022050440815232573184754858986623307662213772457014637476283306638669381267859786377507119103335915483025928758031741238648931998521129339012930409590053422737220552716959477352111808949035970050706501733255434286122994067294369581339832846218633228016476093241804818460570728758887293684871979354192599306297639899677585116091769330832037988647384203102333325511825445650973188865451012802052174410884235882456148678444298572189785302323637048219667950072381978005120576416363732451174881318288935935997975265271284090677140541327208460856366671239458597425713473806260987120095049947697698205020673401916239171729164002672985785395120667920558755978140815240971492330796864680338041809669109778975103562579044810599810604758647927277534184582728779476549003138933700719838069279775855824217833524006967702092122261552980334154375125125049065019179439038358100373953505154063642491476340782601616747388331153741016965832915237074020121244191161845203203453332046390283883467861932797505687623639478392997666508700853778924883065114643073972557823826888686673419769313596137132317877228324889148935850119697134598696214353708811275162876376654260168149829191801389951597976925687603394612102258476814369542950263595442467330346760332886933550110174300414885808645919752907198376536275327758416786118709500635247332137611524662443874512916656889034191576846798092880977406831638432753138197826074288275526415490793712992979889183841566752554228940464512361292846019186267213383210601218252434530744313773262097017572780508894875527094972495062430983486172236239092811514710040167608348885015311906406453027849832477749892699702750679670017800758752629812906696097280884217952930136613278656270214179796528686090848329317193836850958108675305090471054827564855544082617583232975033312911736100604758092763004992967598054072818828196596914688934206297323945870139310078505027756889908054162255065857967781867609106895032831230186945684159454473559328951616460975843600328507735439051365031681390463744380761089616975103782770424908229756486495070548806344977505792939278084104646849218063022539148509519833573844980422288896799461661988522718856059632916047686868798016313758046455755033440020739352253356797973531355478747542615078663131083364501353181265842748720375498858745055090450002578605823546539379677145779671333089030323429802325741555505435830518495904077499972310381837479997034543611208387750835804974955036754622588750294582115334094620450318025567486677235875381589056010757826965295776005191568373237700113093330369513854285866519889085380008976730105680499965272127721207260134429850637503317074942124575476997719760823921858525972402068906036725483097654021043533664969172324810941216830763131164306546149563169230504716808289740815600684960272705966337075595059455744002630734226690519354785898969579356006468351026966949207331413457666114356313505405297051862825729079464746242363675704141149218310111292649642086193802991943438098141715836526708229906229101347168622155732858465854657071480877960056434324620606753921409884812531805899547938511586691157229475012848501098503824104977760636923276785256643223649977541547064423610068655629026124812830133833115571197650566210138069266660784774716513851347072681245198428461995832384511791932446428352823026714843106859382983242825791039512657897926737988018661521510453469677913126991505191519337574843259637674422515993658039791415243702926457848615013714972448247178713638746729789207138652716588050054818903207364697979080269573130410992803189411993720249034298981952563963702477858416638977205625340261175054228104142408654663026534004704931075472956961072597490505204717965312998454476932148582303859613118246594812673462939745151137109289321844334671110816263421897260305202835445710680088873711256961657730755993770483386739403989285118834018876258741543210482429966013180410483745176002267239629579306778985285956584124315185928629811857447874805252681256361475450628043867055390035749852546316715422236819833953199983764405113482340923784215293121829526961779647761868353405086419086456100199257305073640928427721424438069614946911093536705429249454572360420707155913144192631345027918984031837796601109649121584180723072412784874501090118411419011880031515064685651537933435316754425155265316503223322979174355404337050407023452780401531547850406041394387593714897709207887679908158052778221985525465981442831451663287338035589628566075680301488881166752839215006550973868593668098166835578894745480878850974823186783333380096742898717464898953746212972920056034946413582693780579978181310404152228872128898433575584108002795403687795995561682270549752373535482747834396902314045526949881511367854247397392933925413481107738718893194527390149542534459655942857584162989648428332844764706553393668456915476580929416288263374043157748153050488677448558969587157147217456943945424670082357640682011560108306885689718988616462871937085902125337208949707757474378939395642998202731906930768623904359064051749239150740146775352763739318011016754092910747886588642059200772343151201598190780303364394613065825516941961022930190704758537173690105449668724333558580874042130479305229531290863921696201830152450629409098455097337572895942599463162777064253866343316213616996004883175598786788715451888497515594061613303204201763894858488634250274532206945053796012456148798989793634276288931853687528023653460110048531644466357801233171958426959402523061944318373435054983681402597990578284176754574998596570052996029487635603441926914387872549055502318801054515795490376148455199223509745348457917824941794420736442637618896538880063006025621037845607727788171430221762170299096514421585272807292488791389042321349311757732899575024757829987897750785119380840419985421507522669494597632288005379410428591855451802077426550075469689607870270171701243645200432476351812673111161444147949404462435741109871196325305354004481097388001449757392807146466275556247032450432870497263271164358720519149286165318173653107686302747378507759072604491259251198480045877478271727884722093966925746962541188061536388969574393222519936900978609797218620598438341997455607823579724267717266537847509330757801071950437297340152329881757942895320241167346820278740676000729052803314927309055385863472894833308215183565315763730863742393168772934545096193275992449540420480730847232757296036950855133834386114045587490911338330414567524423194178639279508509962287895168923086112609298651066739881548190589262828620978511100336343330914361263565004113732771846070144981782270910493685747926468718624753716271074725180176403795351129165060052161436788676261277531940536728183380222138625553605967920091208375926898888850226835952594402085965564964642710172980445377235972110698610518574805091766183710800707715941413510339023713459906093762889756415678495482617122656509832741887339453724892256821850102922852751900610240854118268325816604819662654684920532006294803633010908408138718509792502364924658222620409771055565369600847594443477895974718653782570281661720438037969882758041371936109482182221380404934343660175277921198366643159129022353027033978381933745949097480511795843766905894370123326637615566561206374189187343609584393778180597850736960584081766084164399186475704943309730937521930203430837876692637234283710922522883000719749991348491336682168367454359127429100597630732821721377222002127984932234375092926132439903019525543654494168110160014388313130162849812844040215387826188754016506926983508432377046477483485667344464209649669125179036074618000965215616827500475680246556865722703225587284761914338956415298421327906148082458757919655847977926093076078082033848842739378759538186641652284196068798225829948491864260320497342136641837739055671681002887042882471807378340486959985787242611504653264852846656941175666992032410778352064604982414302300896344922671218363384650670694370413685493387271831656210774410955551964741165096178042090422021867851463547440527832965271466135728058208211707267615630218068548349329069847678712948959248387825399554268186646850305966992128176872024719064306179660853872810247627430918813355149166910795951210167989337290622466816503273535375727901515009602684034552311335842355449322370127194788606344519779261249331176297000097406864132314370959643313453920373036705240333847513370109859030597178148100911865143000965888591494346246662439503800872817246542814008702595361822056723525936111139841591441868169241802234098004438236040418182903226557679293153350804452529163491084193133461735535127835610320802442714914300070947669148694348499038196470648681226506647055447971111488409643022728243127371912935829257649778210715697682360874865323632126884749250617446228916236589615892469138937980212014238245833534275922840872112938790262864204594386573604212685773718209774052067579470327330642904683757717584973453651325700012055508627591848551281595402916470853400538181475964725218439175939062105543095182353544727888145122751511164898171534857496059851081446734330280967017351247377415945221377838850693670210931666885045458319151250175900024657496592527488657110016453037212423101966074467934758981385215284201197702891886681253676668915372798890564477614367247330576036824248265885473497891355372287730325811634546177959792747496787342767427104546389535327464520466426539814763070947864424500130662182276181326033359288069288328573613635193492140442003491368490728671309515257884693817369379136535551802022307906673082551616338673208188774626478695904299012164966452360320722237804699830541176664658478902887510183745251181716261390618719442299173134874118164902872021055561732744123399785301553445079240390028675421573807085388552643985134141104616818269220038440632761924362097138945988263422629003154989389329765055758823600429732915093977571725187348304775251985864974794073712015632737240281459499763351805762459701354706671010241686828735692060608134645286786425952836671471922479820612796604255194500455156649005032570446341126687356742420074148703941766829011715495552867223472065882733558029257243513672917409549423671171062963333939421766585800520956755386804974810808043085245366644065422109160348521872465095580159006485300952447718263663201943389092366907975102451486426616323845804974779755036118500141842726236835684460414272998121125509937903228523067355098258316503547488144762886604478175674224346948103912109982265522273375916828486970751341552243678710155503583382547805813736351084854988937111911399212801441095434374230995313053918774644989979155426182094296576971004712362789316158924899716006463343975754628117908644054249282556091394349698055360609050478703944351688948947498788916964602007004039784152817524131538292526409348152018945848712140004232824041968932808372163788458928734078720179845537063075039469081683740873223177632645793477923299438890207462612048971457856759966387280914927732277697372898134516280896673603203762625761181760288094384027646949416746672591861007276304310636983208860578995528813527253669335518597722608750058556368556055070441722078214256798387649612551903407465845016900985169784578390623906948623557143735989619225450427302707602437465323244599007112747435868350148760161530074734486767923458098944070518421339615461454925879865955856572379117505691632664472851288077195636134266292621381289821385176714456757938560290631616396614119151181954482871381998946226255543135392962402830986201037200731770303300195915268127443455145103850892364402121007421655624104150797247172427885128165968281779133657406872128005027679342451326316401480915689738674810567958664774965435442155113534049764021594505141199661872756956807589205216246657843131794472202807941524971240836140069922628585426755623417512556615338852815735048495492199496562292014030017771662252328810083372339658317760451006739772276389797811962290347981907485950489471313472474108839514454945427804450617232403655020448095621493341487798650281407766159263733109037800424646963213644620540763380973166985817596441544082017770554147363480596967946862608184700883325550597781663797856976954581076782679604241737897660007689813853031176798436496331395891450611814684067230358796454316965259133270008541818321373388044540228698822590638714186954975467807326720613303391814962715843719219155518662613174128239832949662940310827322602659907679768452686391503357148040419788630492509561818837684140645564673630169069973125383622834443214070351644243323683533890778371279278699067444382379192775780247255101227091360937004019934325914719350520283229583671295187101993945406884441856961765127403494513373900065753097560651322465955704242171320715134805364543888716123700935621775893218617304484566908774384241219132655547235456622204102387265689758195997262366391455281628068499519610381235093137865659858181332331917083207060526168399395638432219949012473369274358510163509908542956368392649163939642387995855428502765882150897574778889929990946618962610330350531344790402142540942116471113474270900103187457427932729546768969287049293994433346915859122208709456782621482600279263566154659470209237645594960176520738499156707520286866382123905607752778021442889444332640161323976903697302883920436396636846976333002492211636264412812646344310025376336887095795596372235678454422618869455280916629135625892804896077865911395706200179539936236692733611291200309189633678530488992863620708277333748143144481112796077958300345771972728977077107686162253781435747943150827141176977890434263435113450005735258168389570786634384050545177783320763061663621036073403747698423323680872921676396534971891353609127980819017578358618911360836742734449248768573041668576428548034825466453243748926394752822417588377642129062843593728827698971919951799118129164617376831147723426389433920706770404858361719783489028594538639257085637661917279581560374470497604936332817062041223350996727484614221247085394929500890183571610487127548144661025753526396542883277306448437870159854968889183704498680295410839371642852018720877670150600949827245208406686324061773121382123328760437083797522148508973780894234197930668798381542236559163753449856071691528773350618241300301420718238244467125475121073198138778644718903020706446051608356530408129483399940261541028702601420310489931641310903805872360881016101107834098287159742323384770784272140900649876693884115227846628658495500950097557355430204999113904152963779039964046410767281981172125166731459864630189226884174110527946572179292564368600104261921234445965807149854139133559359864717486411396520476858545510689391489514508951745946813759820174583666880199985341568303832487409130907732143426035881600299220432499969619294566183355858760940030692931522437224032684850648542770876002678989814769893811794986504181985398645756729767698194633283737324187975514259861998261180550799994718800326737930434289879170598886762561128423963105861193567264849020050032886723088808597445554855370014270634304802083187436654570339674766827953825829054031230515839288820283723642480687601193656243104731439280551210787857012421706446086914343893259941715716976126408897502532148408514664628457507843374545925926138233035950238244295464036114238629545324336501136067783144978999582410096916984133546672207024141404122494966117761618993690372333648880090390110700304417351478007467926247828796931073036938014292223284584888821009500957196934546450755026877203417721922605571775087249068886489358687859700601125572700940280685146980715539025388037308952244594002923916178962174589172946217886367678969027117869807551855563400457447324803595088096570544376298053834013630465803310974877558721380468001974852281354909899416887876403146878792397059830910695786156367820603370694605948845690419656438977242168867358676008508172091933076042981642224658308938824787584187525990877759437636943907786178464410946181592972097070187268035174305850585667465881240547702289588697178278903495340381586946995391388409264862813702543328875644713582377831876248914974049125566999604432402725688463526468892484560231069909099234049037242739776839075375999941291930494902905234958446005405152533632924094072923363151267035206035353436266342619125940321044328670944127353365287561802541185058762562150742042060893554173461951605493747954029954970011327740088325384739598196779613328443252681062190320317511442882023445750670997002475771819439671188242865757976612945317311689630417271691754068467479000639593748872857837441892010311909306743598526162662630358125645517173562298599979256652008897625303294107008343178950905169274863731552798622285240709154209880525289527457925757612877052641578482812087141263369182351073854719590862322283508983139073897898700944224151059100494178547337005695170063871706965767543532499403758593664250989679646426036055303514964655592857595179867667490053016067854231602617787326856980934628752193945827707378671385054284865720905318769030063554674278687316904697405349529633314275069873907700538763474701387625256515732675416436426302675104909026443891438665542989311153596746307472002318587711602028106210273761618635939287297297597176330360860950169858588223242722576623990203491632908496781896720745698586355999001535094255476572282069258939796289707243590378379320297923609864555558678168330938311071467843455521153400821024988209044018778895399431998775614166658418586132121208792394941184035041514523041713054102227832905311542345806527631962745842190742920180549980052167118927865456623439025670551048817768927185159211913844306773874672618356136145481195952286908649922141023194897106844720509715772557592774846447080288981613045551480027856479465032084835830260660865427363492322130102814081115427276740757115620457946939801815854508645668791124870151146621509592232859853966117885298257174086384734752257324372045394885819256590083033941172615826454703366013976412416463136555725168547809852916892743430702817946702789425446177038294290741517996920862809819436373096700123149271246030801676926276469947112262479813808818328479285360552543353277855710307521244299633399647084133836567519426304576395017470526623230680114348386822616800895968413775669682705049725415977129676839771953079623457661873438540750178112418843658727721958375871577600151688214546218714266645245985733270883980228257971505532207761309906930032063140351820039486850295626914895080743612287821192239179381413202418581111852796609923450531192006203690188812869165523765076808944802508930276484773529525955113391919771017238848064793935851133069254974063374774593492158337200848018143008262772580745024739127148048312465574059967723562184102970007137655889604496699983720891779125383401216573925035744678784913786787445779388961656188396557032990682245843873077760402808179417981384465535809357007457706336232420037091625398872038260916078113340078538184232471027027312139445103744005600790831864006136311376281157495044309632753127443085201759802983360230693497855943982254000441634261090331627675757362983144209353648204924092398953913136594721131469998642630843190840821446576954500146796288525157486269804121509413038124397571351374066684554167317429651544138460000177853789984516470388193947591277540365474479361522946480168467969433709045954306396904114158345551576500553333126707290593324954489528309673016535136062438564840561108764958285447329275775657512068376594796090393076923340649424499440977455024680341803046858108958696234422694612469983327354178061393798451542339738895405781336998376704137637766126183695741972611621500443941441522665616588614224695950927186290488163042743946069019855211723662449967005175576373948332702104831923262898171179842279115907371316905733159344445741831906975743386918300553875960753255394695203357473225126379389218565820179108885758472622208787112533648087030327552579159693252850239988289365287346945840194884845153239787661868236038247284314734839927295328247810682852304025454104686514314418476652651563073722469224381914757368862809329242882933972590716152862971520150657680553228927401761081848071065932167169625343651862089316320999142255988717623565133718160288979191452711290958940685376012155492000373016416171820877578664856449916885638515238499844589534498754830747974348025337248446412665922578694811178701212783433636576138957789650373014638806154375910004783936197283179879769523284042968766051384778018414265710542067591831733691222202991718900401038564292509552371603065377929863006473667805441371644330370389435495605994131996482420948556632375090905973208633226455191628731675914406057903445463088020673149078277715859560880834220905816858428504378555503973156734418167573411183673719185747050794167361465287992097091913806367511043483717829666786133092857558616183132715976755873318062936541499352522159674447746734554542640448485870464608385406878152322612904953538470275884841575824949864890331995863593365633226301124841184231335626695349502867921131892237600187593282686927485257282595697437622020321475056206815418913204680559942470433585532789319185563334526488751704107596533815024614418554686624851842379575427203683471357158460534212985182486679811398539756143541542603338461731082512603539993132291600989540567276715641914313055099683947274942445050604178588098558174607833622484243790172650110390722280606142183070202199256440280245078495741397054122396958669831057748598246636308129537973582034450246657400930479304561464551214009854155321093541115695635051417682379092549519076905820700848274096837152111436152749943087362546034505501703337603687411964443671801260533403736371039192361195723061835254174062506191728857107743695044632637596831973220997260102903905238114076136480596338207915389838687186509589431843852168415247974712703629761598713679333579505246416629243590978212596253519119758122250368423398349293767934289538484401222378890691691707179883660034832927755093103480017351340809624529696895163676212283643189340413725336825106168407155280316962320960070213511787257892977582160722231809390165330263680403779014697464335929948224986109339420043718331252373654142649250619677935929131981078535939499579207903478200449370462626464891271320344846142231031211854230706442205403620204542592653928617828168707489390922173855261295746195530478979144862056224593950289523863431571750500418583635202050495881868024351665195932146444630258456807876230063258647982305796181364974670248049698647388627535255445401988821387155412577883258629448882100066634268062085096131903114116419398054660657732714728286677831911449699893510506663529448599829893646647473142904466783739703756390872691533574477700407407701702824414638166673699936958961299048958942286193897299144313657602579432201115680661921945977340997238724420621499558925849051961531364836676596982962668458048793062982577196404220414241342143355348146680550204220968755472784099297063255493101566303521727204504488055311838712325594879144734744781394910169598323407396452196297756739125363923746039559466395921315615806293154534891683400646418674670118020384469533546218352577311317943983112015725909513566499294518165982674003779692656483544239408498028783332167975468809816568537724933966096687488170175390230944205441421040667320745299142598204702182172579528682079037503871316108979714919770594643265699893155603292668792003388248507340935353964617448690654485416701073163743680385644855762081971644280188631176621687013162807485726611198935948485007678418710458789432046064451429831247883889757105282054096935452958988828398213053112947323438671459082024436034223412191376017159797738733927589475408838208478094200808364216361932237252925653479873043204062464386351223775689779826381603088340325161340265121378905706309379857117732336220115746675773692393387818403341133544813957763685851068675783466558174979827691796351186155550419969037302495488316828091446529138575172130894646303911479337711120772912146854622538949198012709776131537173292780932638595535915078563437951995252445105369235314584473445692008445835999449469560088479936469520896627114798269334857528871496047178951218549241066101223652035102785201997046458719749004698016942635829442129690383550611939469112961889272773035157290847651385442061351005043184188186140600150907246593632913123665881145887375246650712946566786783910123044576424000448817827968773456430228712593747370534838592296074675632785969646991952772396191234426893103093745504268604247864832303068203171705705329376967843751078767966399791119145954281277415418168153452311929403060726147025517102804200013289198985914015238391577892890346815951767643846852226288842248433167599113037912946468992477592528604042080365465048626256235184872057105612257082432402363418252375757516821071562317298153491420173477420348784728716957483394003977435142715458812952841268700830847812793803671081857106494806835085961046414199107549711539892975878965094044994041734019069662377736788280291569733468696965589543849944196379530024583758539142181857328406620202685153970766114023986503679918521537787594310028158479049495088408588207708351419902031165331078187904739616532783808616947720051016849374684734337469555807499337431025072397091614986258672111008636589928351331358830136269000375916054158921764635127326974764752868753158935891432874294520508569754799529555142859429076632673383881427078224185364410848078445543485274596942008900730195672183380964562303007338173412095832437358124814057086898579854567513184308409281974982650235796946916434667539197998960545315998387188587452127164233274723156678730945976579309775131560724017557467714303509041275692090772965726546806254353666393671762931982441880232745594508216091776512341100479882226664969573370710845561465165136958556644493836956416049491857556178242465116079981128596272905586665689802668974595043260441545581057334111551470833650179698530124625199388568196293189767046215995613835971779513127427469986231878586323411407385880914708024826648668489200655868991361751443303304963781621811728981228717559725428175571286759532461058513877138874026395181536358348011950057052180567411445347815321456531063743671378412859991289282842718231715401186282281631869587728931177615992475600031856640669865070356457591147178687788569938245368651510372627688063022230956682351078563287533957297273478114342777377867747290705019946582739521476504910738310369649355811708475852700386541385235183783658268929244558265124915487576135291933780543615072025948511589349188715326204609478148352962898084618886124048653645607574379772861574998943142850854438182674249688245973552082687852647412011082562503520378028022841017373544876567633575764698705424302334718360309892591693501726171881780420647794223043208569934518899531725514377135379055458072047489391622416446924877712918585128283487051986316290619801889421036791128888480814914637632507492351043382382837513166955209820831371491972143762540620959017606107740132249076569916267145735207304758510907258214068837495916776687488810244773943246663409261776748738419355871975047544955161919223434088252725874630844179640900063235307385595861192583562667934978538307898591667691620998767502213174055423232606313360027360220732730263391595889819503669697091899035721966984012704767817556133695947807380368054802796239217642435728642024051022699350633511249958823154227606642395460732333875809446078704786215719978209696280200227248639486187564016682779422381633259074168412221567624596538351434477726288710427602196812567468223572764445710617923151003891274764644361839673215796611194262063853190057009461349470934314769101169581726732174961981912303957021126838929675069991187500599532426199936896460344284838114675124883586398285449741341469378800496784286831120267386948074972033758759984896083345631737747683871070003637531668783013326600789491875247039472632617964824749944133219627462744297784284563363264725245432042707096537142762775807415213677586993129015329102927364578559434777110612993474023958309800927575804575588427462988982426111986231420651779434204989100741566465299041803540978239956301832675708100526520334125859721971668074129807557236049330765579385622864481989298634715220065313052526301240095357759081764584836168826784118179199654109358136673830526674361564631755445461871757099669544153869540514832128809643346458805911495128081480572717242072932075713192790971088931082472547201976584964216646372884527236723743360403490663892633395065928802636278238957864522239264853643903538732269162787159186568225810668729251896094389830135043414667681581877623668163870069003963274001779070674100271472013927036009961420299458817603406051437213962054396037823145358560749513933335228128414687774823356914571679159300223189052703369632293486290943299054729654796364156910659497130410287380889306922857692778534316767205412068088413869849258781859307359829173397181289306125867518925426110086528746133551711534468962703831691295155935248380868082323953435438778430647892410155696848276132188160001683118639722399048901716957296924958909238673529096565290001480370963231918358577302458067367282906346445315602675360954886146014105861768029534397302441612049369621614479280733303485772395651187101836013784348391699246921038931388837057625933353107331996845033468819328296968941344945555121803573266778197554092493824806489986811341216598686278122703767312552030414614710144710917788134543907694036303481563788935985444685284391915528192898946482528674698894301876166655082853418723755520483351146528245425440303630641191055573304693566276909711133395883410231440709541116766201940742852240949772745290483997022423303233829259417315561254440578545781661750504141564614012120104041777999252570812670486683953681714107913539960153023784195192194706409113577331618123008602974360179707626129473002557757919841536417686909109584668774491396998842771638009946953387757286162757135749006600188940031204069301133374933700473223395380916372306832863305270984720453752240570461667149161498951455231424648128536975377539173536406180736671344535918625031263196744690020138974180525515233658636231707503497839232726535324594674568193170995697335197648732002487013993942995374892690459048907489765638467855102271042086914942086407257985153488931672976096750893212603330237587639739369540199661031887755853535144702110401538934695508167708205788867269640701840399828124753069607714530788368464060053845384638319570784251194654268636694596881424966105137276173916221607957513693554681034102507100845291566869445507211383064511749016080119337667441674372108951647497065240473285150864665210568622912523559526859205183391578434861707386975717370140394763517067346833300678758103012680492424409404667306402219276408395080059436696253295251139499815358611667797382839740407208280254405121496194176743489286534337520747416874504525618319441559541852022982459504177821035958122208206300386556941209216693877257716379988739040499205718027487363244502494119576858014405413279105509529845906679797922787332621676308544363796662034165993926317017148942390890110302484395653266962058320822600962172466283490496889201054405487083007504843648591652244096994433434817125747236947406847485560505701642403866902131390339408143840894954994863257363191750013431325201743626528164380530278931154791049044795998279701350438481868465412801639943303930348373115386577969345393965786819390867489452666154777321813785218553808644017070004996561679441785794704351668444692529248809095530939950136964439955920241030354231191762955318055366385277638637240904756527814440141948195723416273217236540605279769003314604038265109027436428976872225699941836064490425529950038682659602728785875633341134892031931743766759216962005881881824030295466467287834914485019317757089738737907764305968375561653245016656438904154617742400105680687620681048018378757626687042668814623495511469949854232920696570321892380883936570906551349762253098093391503358695843130782853081352829867286281943760592533705644977317957141204455713930781362062500072999658977065443926339040946320970213142427470128585431288560142539676284109180342452661132190079541282611302761449309422755415407342315164695039123202258933752330434381336128518659703128215521380448236768887637474032969028828765011457461590046980983675277508193006731007639380478514949822031203452479437880727295085756250651111439562391291774010614111345042254045687297520195662535224686508608894884609837381571336276258178654820582471692898977758685072606615827382374895502951891648527154748017873915779645921629329443101026968092730719580221237438845625102516985429208697879122372831750267085185934535362853032323820853298621709354036788141990504306479195057207495441428577065693207939627292030582380361372833709174830467367029843385903510957553122891684767069084761676395212705782224368776191208612438575444738272264986420234324936027460765112298545822769737233004870917579814784133410824151024693118421616884424468111274285532300196628124551279648833041672725549656243406957445675905768626295544039790992094752326669120546820210232249496673923486283871513799485690040277533589296071539195985736971664671237775874391422902861937303183011086479652126917868555807034659670949374273362854876800075800043153073156895123890726973055302607379095998304473722302909142192510878478749963242651693402566447132824223118076186669798919768255298222450193664324286341982415399241375002684695401511763192065128532739402757635356997163890202306518185470069142928310219018264026251910314602339026995494072989666664132732529776983879436162725995384642445398912888568466280608053651372149934837221217018193562558925316142382403395093036111675897556160213966141601590073135306401836580633542199189748008073443136478664779749581069031249867199341966529682549991343391188240351943607088125042646852092124880429980105023144921966943536437418484386083823813664489066363824808472942404634295716160674033273539370347321638723467196794934283341114662309789319355009324719240914912143364047588157161515591368330460141872923884709606792080625584320594318062182165007108220969318937249039636182788074870859995745330902132411325046939699114951829183321290705133428754034781976054700081953905797533147259432493204992810879332309451907479429970903773558339913084814214138220016622861193600379296277607290931903285827812262657482256598896657408157078957825829836448334001875700339130908734795403436349438267294813163170371361376005703777474961280098193697989587396689433426004152337023053079951319392385454080060928081009098359943937919166071623971809983403615066736570712144467648633564931719391201832708345587674059619262045542198099474754419271843705988941022767811071866486547253857578302884586190205963552913970703449247013114697092552490533791989617326182186046316861355769198188318857374183460958449090147440052906164693311525819392546530597056662494016470813360794298668514629323255782172893073598367648174587959155330421934263638390341623791258351910064612805760636745956355317532930346419749845258810277394882408990702961271882061815428700475834006843603964394719217009285044208010812726667163959387646813489144393583474523172627592910447637644669674447130557630400337436506129105526320872848217484634608825963288975299684835564168239295560471978639833456931398383445765374744363203296873913441757835322417181906060269014767833553437792342441401704273337254960659504957510007008881036042338583775210076160424363119660204367118709677000928380828111770996978112614512939236698713444434796282581443706184544113366617454350885867597273491445066628981637869521401223365944963888739672582358991584524686794926624840631985244947620878731051717801290619477723359333665590002387176952194286832055914593479042617169916570105209553440774388732365040192946289835167324475530878358743064073813750159399006136947248384045305199724472724100987596853976331050935921384505798066195668717589777002407110352854751726228833865425218503712392511826477329732211527051289230820875341979016133189164582534386185267466943611704579639843210879116898613985406960832957397164280147630540409313802937141690287270621318107731438573090367484992534651162643268637431453212597420032747299331380122688678171550722543837300314933541536953998775000832503305675995109113522408237026937096835132218571400799271103726883428238860779528065176957478906379781531338128236987985545352118882288563858321086707836890840375432327927438716361498456407212019939834926255645140021286813319321365433940355835834242930588251815152895577137466480881361629677517823682876683997728130329562089434854579236828681512489170574304260159422130525587216502067317839135247817511334636420102823757181309091848186611153814676815869090455216838088306420298952788121448624022672495202059039812535351145070856657713647057026090593867158116939973352335398992931339667468711894219985446641205558335719005063196757811743709336427347217478522889019627430978426617729582658438635409314175074240311560317368051883760946153689037447393446849478101662876734404072421772378389399806880487642130459011489365632253260180886598277298938838758777608622257068982233378327769008365194016108134977352473807289909712481602066613625433696943850724609718212730255086507912963101199590797739865723093306051472909598057660567899511245730583941519483913138319965652260663492528754662153294092357491469377709371123211408963822768208997455918529404314341780184915228023413883164700916448409874782717277477086362967980511260728012399094426823651554267720923262808105238313791105639894260960052027653084698930905338075369173440053732720019966658192765084828993324665316511768456336786946308781730260578560063460563556755212663744667398402056602630175454823539777723890540859632626286269000202084668218662611040979354946805881038329867425529000365446050635385781129558277675309922061090068378223025707321189775912270733915608281862928001858138410716467080885227006208435418412662320263685575506472918686556707092114208391492225585526897185315320780964080862334201324639033020513935415609139226753503080064138297605522500507795503630754110903499801449389415240679668593376737902711397892058745083930113045071523612842180706840617868917867717370927626270352736028917344655463489465133479872788101815157409442724464172020031355827157346937477390507594365385745009200731010922497539529771306688533526377506104603833133484577991562577626494513346452238779409909256868024652520045786191273422075776665210327021881779378923286278589413165552253993271229790499100250219018936710338211599477266579549042912155335849020060495972925821577813654250851767014139200715905864323141262146398267375343424309912755507933088002906157901480718323779958548684320527242126919015643818777739234094349422222267775485425318316030628947808743958102293015551351629596827054640517183803525703620429579237888217317390703608657674103810201522905742929502588693377994802914175042921139430455516358924500249432464132808239241050487236176330985627117999111386977842662555838040683717295248243862680567509594688910925109884160617182556984557275807991543314695814245650741910898318730288355041545409637359019799936331703957260001704457398832591213869535718506158508356254239370397905966742617772614121267845455324108322850040759474820729387631919807927464587916641717714820881723013431018897037330212471354679782599155830854820419004248210378746314237226723785780181839990658998718635389064581418408254657398697495844518637243448109620016059727655564877657849632746846968474879259248794402943332865056074865532291194545728467197279928087092121091316979409732424177041082633735057120840268478814031146936071977444033820143574052937200859496928956846477546375580267222888334837203042046951302269987320876497435702104826960500896937878106546163968071334802977714525795580859425668400377584150563787339874539526499307919300835404692578689841345016937862167967457834256335913195641248409181088431240716340263763053778953236031547131674411219939706568318043668244726194332349323102624495978413382170999990582737632279124917626619139390553304385147402623877064444707355594750255281384180599300508983951477237066893098933928217264179969371587146911034675092613879618142593733677991745892412296877561917613493325159908243063858646756664547755968314384902906815942824603060552701577516119564166188993012219413005330080886196505501045033832265396164582978153031578894328635235660011616475726307801095571669032721040641793809570704306623590562055216774850424908753527197419362536986391094910245808196002858538435471556836528659437271082498847640986207086815301080220451181730431400626391983225717051497119452621715205730843357625707503830386001605371184782669569566880943247092022621207420657203968307976471014869200672680231616738468565399047134234915570880962628002556557396934648548620954637006592818101609805199617227461542897066467103022788616384939424970693179307415440605234570403255217565192556015420970899156272539967011984740891794197018761948807412010364220881112386955224716735865260092867059976611030676101723311193760251301183248954085450179095432958695937232333662925379160173769857234020345650027226340517884398564639888647940454022531923505096398284721400529363105886464200834533441296307042724866918139616772873590854997311797644328560956911812105464330896946184819180571842856559587298592776566315530669440755469588955373223013273169099371043411247091622339530240881003766481177273248074681562858912758012959655821814026609570316652680051908134819002144095087972970407015318579065696851181259463866446436900141784015315302019370918553120542692439712203919874553098994627012378860233741209710226367505411534655646468191677960401350224225278569487372499582777310579687256837672840533448740009699681505479646721588424678587541451492871628316838802123688156734177213564843475101664409881416169320894336100175372206148962267028057300172661943038186571809812610763364182260947773034844581205975068906312873257398022063169348850292460861972819285756338468774159239265747876747555578623459761988934962274244006352598037666840948289260469327862003971065482593943351141877679019114647554169466340831814865314236775044599976600573270975518506000384834499987528628780948682617985778827514507779652009847107119774348136478321292069158567046099532113513215319041810628396357377997418149227830806836007732518292669027459099560486638703418379982410588709683844803134408132993230787719270290782096348820033387102035502712423674863144110483236797923935570021432946671971220407733782435884970950757943936688490904839160085434344856078442193331435484637431708076322662663699634663402138779264699699224099467341913125466935984300654513304675375855130351771594887862561254544612102587658914030804579946640152630028695867989284849805444522230739275870619415153802467033491269051364658489329022948820354217081515103719004115950272914476204436470636882662364159424298404131430929429069032455178769022491446620014402987883057639636080537591012235534274267380061874352268608691209624197069552320830840906182778904231352814234472905959628702192407908222250336242118400202418237307480240318311833830126024148503810690945245370635301430454475277669511969354029849896014325221700041740635573898585324169562062724884185915307818356817048447893873981909153058546137225668114865520404212868283612438763791594753889223328216691227337159529609843462705662137659814248262554605703444430042011370135123004657270307317833213934846583651807665317755575111365242743793495982637042291476959903188172103392319427519548784096766030481889441774108253657949207330245081452228630733331031920923777638729323955113261411470759973259847295003052287897699981719308695127180194342060529958602050500736536394204265275962102542416959568911594272322328096857414285073384553111078049423902696852609903471001113168717208171198924624461670630665702083846749860211620661809604208614472667733477646564094178242127219735324489523729727527778610415808641454081882860103094681738743353546050303463825687466502240862214249621929532473744760432452519346516144621239987933321363126786135191898905320050676441227778083303161382688575975308711711846940175817414280594440769815645459194938933482695180967623723255514872800827250302638735961061977148244964470208712450794639468440342683858488424098526445392345478253212049714833588794215470321188896540768864579608497663242568328321288170798067948368576136853994871279030911810775971641882838456554271313739987663691321567229737823549247319747783302958598403573827750007693711853060341644292968710897231589281412972168961053550049565934294942382618748434534613524111443125263479285307338272606601339207250107751753410250245798824681374845836178270573281747889171906281828744498500338909905535391098516959451550347626194450384435066126273201346334131212887480416555257161342946733592551083888464472514534320811608506742527793307206194365888836003002002766832383252892252833057341921647582654227227617084469527569649213287488766263891612975079402559128898258677060757103727994413107443986128219668301474002451787285156495224790686210131459166760530444544966683656107343808484281976871974296289087234589812405653091881975423042467655841236301602857698445612885650909426668433041245248651869978547237869824283199048675680539566473002374225691304212813186150789149208930184965682089789376567583926338773527805767895149771054725881971137697390724332001978471543989663472875882008469026561636659121693130282882297890569567862955841971967747851301275333804696801870018722986766397913747935357614430002705197158247139903976020631560118666424559734740730870331924605891590460587414190338403558864192699924140287534869318230635846736962559792640081514025321883969096099877132045212627157202435186534504008029226910341087262606952440044551294573454232967414910969108181067772507940145622244974483917721707238162951764165671271760066298180598626948215832098482858223796329672902201945721517317376917671625124358103389326182106133610838066185954110933581415630240315283719798396484516507102509453754891385735385989079708502290664190100778400492236450782211535686217039765399010362804870080023796225850601939297801799124503505782161388772764039311758756936226332931668504292597549282804738714909101682736019576188886570055404136911448346816798568625685054249201660254764301155065894865828405764148430048902949555364158257647691643115376668113977295170325486387927460676787475240376744457181947680597433233371916218144284052648911384383571930171150832902072516580853945647953952523963132212823237231792320769496713432806353006489493992425016812149173271083522189881332760881799975954145739575834373077891875772483687820194116059062004508538772234351021529625065588202140247839399082524898599612423939791947957136653840563226162689045934000122765142007966280449193861821631180067521479977875567529730081665902087680546638461533979780788401700389028701101605002173060090493445445917672169312452670931433214848011849905228064323555407576222255307957434732191806385822606590274064293060182195705488465720952660936821170868572987496698301129831232989883000850597387867768749650408875261201421818964922358692535002571025547074557364008416937370315733114153716119038828247764328472782630722474943390996056487408877749527068777814097352405418082362976080918314621112801770820295226890756585458387149490857951659577032391279344698487523776179318867867127030740443352491972836158687502002307030057979955915840908257817038606685404663683803254613237957648922310066927940740368080763740638683093526108907672593575191780635174680122258270665056102059040638736542542435836016167204369554049626653389534746523978002741837704854524508666778216230659561023887173778335076556671568555416141526290320998020256846552703966398091321029877774393490988234910200136444399251533451996505336164639183185946778852110958664245677511772566756457774746860940914949450814474823739371567109366774046614560943473930138172687585830407279840209276950153045394892836993113570161313778938889623145358830545880729332342816418116129790484272554759739903261169270970708208420817896654042908930421637677396611738826070882433729265497746851235505098485862512717662773386906940656908372386047185071464027816699345732309856600824742397842030346022231526014111826766253876811277298219029883402930344856240037339806828989721548481564344698457068793715867543674062896096963418382068155983963414168470527610429885480770824362165818533585750856175587979539077069796538906102327406509783728754174983302742397369999649701755849237181565421683617177058561554984421697884147905875837557274227201300169732454659604225877782107986988077818298473308923281147321801951888117863636120034237815413791615960411458008068280648274241041473697443559079436681096914259676824717584813481399258918005634501432023426140768113661104223882131005449627255210461825510260213690443970949794255903479464140759359162954236083090456400901091651484970588355626865452907067845021882884016617656321472384315341641040470077175045323058259251726211934889828853393833914516078351287119214775537912583952470570427722082864385843428728640634702434273532449187884761909682815623226657975770974928843194109552148315409972783916202530642608380638329803201476618517535609240674226115278741496822676803184946954510736278092411566838162486429681136127530507052529738706225945658584602446503672584223720000773973965667290489804421533923157320735498841312866950116466180055356704561008472674270115780754459411376544694645831229783235186010826597110349884405921277421830825950072060108146542331139965290057614914293755710824114329774486413648721994306988539938712949490770579967958169437254916168413361148556531334443513094722515795721375413707388171633141004130159396588788259183798413401184380889115165068524513910384248130636686881856259999883682628008617958360023301479739241995300491784845970008572686328096328322886010594795957322077544067922678024198668169272226483625279477208581596537049838724564518161472482889252053581362642976069489820061839576168973737270324695794717007910130976491268170822128925319999752343415782896762619433866525762031039502393690912572653923211177295366068602909899153828473332071466788635029018185458189339743524223878645214104487005850336976209817490123678189441144294056399006243933633753793052709779385063356460660798866237116408148610432766808751600830552439648249770234473761350479339540865957121064872865426264418080352571595236358450518716972052287074701733779101252031559646944545228070067411025016258400806413090473807965271874094244296155734110623323860052476562874309410133137581477686365961275049919608555722363832234997615417142873581029489590814909700120292888584716821695801426755521423171170535990745782166500177929770257311593195207417537641559115287530943081813673105751203779458539033356274709787523174439051621332426381947594100768672511956698806786290234390447214262276477023057820401823725672307747786793334922518375787218739716746344040083928273322255434126558650379621567988303037401132418308510106561355046195659983380377840879425599356909720179012871162330749343106561744342052281295693766274287484460370345097736937568651488716710019592344250893304696058894853341006743001886830884616502058411075878313800572800043463545722875001848177429409260017881162822855497738957263622559508520143268546139381277740640038527466198465612187875233548748273118564116936887157953834920854254533869065709554631205960484634411026121657078603538746808154532980991929379930276038761183508485979967290015994931694129612593216337322731474191003043753283806547300664756156503241192459633228720770455987447675686573210352126842889972436410536971426399375604940586142296848970859239145085942634619129506582918679010913833278327584713725728595786396524086339524751483378891615107104932943804717480772361662936101041794050413550087221600753471327523250526188043486759602271172673292754589013493292957455753532686833318535924731195931522118809681650574712467397182603080136701631323945703197209993288094944893204638224649336732061284440051094693639122597227344969952958056896407496490239981857592756507685963992501810970070454837478387178850402208214556280028049732500880811390246594055576439493932184039443969825794982991656843796548079225972134374303797816906521560139191355198508667060002297769266849478771888529734748316087286590481783403607165915685845992753063132186486918176535135477696683442364539856799306085596668221843283935086384848467981435681200727943775126410830963017149403060593847588952123189262800543361216890978668964203461656082447163023494208329201120524945307063336054705151075458157651049361650987464284594607335310397303382552959673726023678155454889363491308234709098968770579605704994902050845756999835149850625252593682788585994760950971580845800330959526781635233999904029773945741800654152559308446482626799477359311949636945305341458610410680252160504328832068922866123917354228420760955582565162054490013264957983018640926630859217999866191121374220684975933384600406357868597954265387249202049822271023173369011138538785851208249218252778356868338897764125619238171969294483815802934647814288860776021938259493131498505297836548647032280492927915185770773453921337434342990962388172087430373469150269934972924327460190779857065125427352507355074146593499798649386759440771860725587136358753602004326914174459376324191090131242275398419358690268991409690129189731328451780407661254845892729372454269035887948657993410633682735899603616148234868912121945932532286907918591978519735505090192159672101920131859062181935390537522024624228077919836047962683883912546635546212921705128354637315104665536504565718948148892534744522566916644646450449703128643538500761405888812969859360319426788968210170145807723108436875447955838374560862369816344087153088270204809906320635221564667187304420392370095380099508750740140194567235334745652980393193315552698582439698080009090351239890852680979927382911627490781426084374953673279425466398633881447512009436710057124743054412429792616632382138468554207759249521759242326479086946751389172786125509098307397411344755378747189336699257073107165516374531979558381102163922972123359016758726490816490152360076556768944546580719506524783434017107404872360795933308294939404303044429453035307653975586783639429959099798678515613983672487795887924107141520010792970134409673154612231381897608368856608451455664437699508528647858403311827503828177920276569306701719892143983279003201228044421507615305322162382896160632165732613422515854637859403850190352227912422940956963410792481550601011889286307396286892601431011011931057063155553381994612166126665871307894944336860133569115966533224058830013880704645188046907290878110882471229144263227777445044125945097165588034592029456101185755856972894516939960392803288370556769993839063548713803564583916619238939658028248573545463228007568556647793241771529631255226840264240774913948910836567206988105418403895608428527134706459146035121699994799355166113871642714961064187871517349613946242569898725422154465494134516726556517427374231358405728080561153141946128421077321445328338038567421757172025525945869654861613483175976924227178158888313738571696657181585764328403692415901887012661640060528986675091103791222684203454346484367578068930912783743799629965437100122097427986545888412412122583575129196016299889637194570219715151229577384356055560366849836806002666579582230542424081753359828047289154738637908333494518276469704529009467437362294017559253565376643908990158390844998206803499556864636072495898596719189016540033711714992759353247171248599182548204883457158850433017500434553733158604268272078558208095428354700666539483571455963983372224269648207702811607440129287024427253938826335865854388692105812699976828189676818179977604365104817119072144395488222185911753865924562612046818814467513931467982918140740631359711540430196242675498667837749819157357530294780024846502212352556181285899435751404641709140698192225082014051011817254842261122607514219145972332070239684193959933697786210226172043925654055075319634714108634787293875375035414306935534820291945765787549544154346579162858833519691816784776963895096660182861262964463429994170441075915575171716378279863960757752554988452011459244490017683316745676273419637163982646089246108599345592771105310176236575069283010712224091919050852260414359660761590036509711697190879191159182331790217682649672364039933469305660735974148327866917418137411870024257910252870896657482668002784159943712434373313010786371144580213301108135194306845797566258515150066868725363818432035043975312046820687425781603258002032623837426382526573763291862717270989621871194802282279892688253545355594623969881076250097192507550346126524736799154124931566196661863732898340101142060446863699985307283340322682971377539267451713408719818402247020386251330143664471558641255623388431725007914325187906510388624372728561506046986917089313083649749783156425810636866399906518752699963888175927782776341867232506213673171141687065580868480868107553707909029665885159392980404567727319655201785148846456612665829763720448587798758121800227528556750449399576329363624617045698908011906178159245592571995050241814923762504846472177538065791247736461268227685808560702187781321883058540683099609488816566676401853337767823530805735191731928575741855325971122486739899538657297330954230878414926325660152619579970819888980481873769465790731422340338065110739468307882408789808222018575145671507544130286475727340788784564658714218408597575232561827198410627807173902636040247282119549320986999255301570442058910511924891675976121309327438024016602478131595888989753561861082593433389498789675666229073768143614551664271714717973966109793352563528077182324977988872060187182328697091433215840382458645572341175455831351460923506031547871821073586036536427505424364270362338987703504540086306208301877102747080664204981679252375002201458311882888659087869173674200713789529705421478406052443319427394136502258561738237824090309668209280952586951753370837827761186607353412720951849099009519329446374377511016633820848369258434188027175282968077287981507847826868614626513348500117531981166597210487635196246179874847750227750906952950255493764097671943815179214756226958162921717347845812691419026558898698952878566403723548924125583486930850282804432785423543556179897834810891577277086448493030808670864112681002056859306215912276615263078445238005331544568461362458771579283940413264616464963779152317831125359865413808591311158592177437043652850744881832678707221221027226402736780282392517626340704498745997256296245004637557024817407545652291020188662470561919396925555786529641053979797224689344543696886453460232522391621719787184372033012049407712116713918746807795414531826472221558871838821529078571160082560306128145769419862169561591113149819008302091570919076214523648328417998210814956240716337250436980213595574869770248888019666290222239703257929443197656200190927053568681368071630320120581424466310949923313375215385328928672458019931804117486944201409630988836496555952120859449747890828835244475174897699119039865711109871039453225606163953489117368210357654911925507112165896176748642879338288154159005702954534959298185609867533254271937437886695549062254681006529095716627920649687155676427987905032132592283340036996841529343950225465901309736580494165026373883191876617175006152862636837003220441423786577145042925526595970276556227228535464859202596722407496378299529890404867410392288969924933146930711446045668196053478371368312102442660853949975840252887131971080507612754773203685061586615403911192078537699200878803725667460831646318369141823622326919201810341348909293810982252574826294951820167930524327543683113261420994885570695897407260662735414111319814855176053943210545185384143380420752276734639680466351350309131396491065370596156637195648964593740578104711657708433642233397806600720592322694366063500338197518230968197300849799563448019027265295745286042203206638625555189489926644201474114990881322266713436950062901107218718045453684365892932414232878870655443219222237088588055172885139256310277290209498628260553515034043678923834862935394158861521415977771483963929567390394458043174667465267378720229662011035418175506235465227011056614357631242964022440540738769728637001164233089950240763716362521906284441766041334225134377493526001944362479562328422857896352579335685565744645400933323786328425815744033403523490715559576079975798174511220108248867105818851385561911029980525178818177565025589723951725048133499452081635682981822680449281658481377307428445617151027865346152187801635687631762019244325191341991987678479650805174835557887522262421543661950352179860018872184360638050552614162408930768401986619221145183376128082343064760072955634232853615353005432458600491774558249587689478973575000355756487824357682360836466676238564229514489803491059331208107996548541871519269729372908083838609092346197092359418456049559070880774522048949627741385141101772244781385763817688918702628570396342043781564459289592375896120430273121347956480355371762401094310524476072534636869612920094088603813019712986241962329653660949994242353377422015988632654995905321256219155781857503075701218214590107943186042051998782933677221696171668040542659446382600543661998379258442770566654268538975858993303430240814185083373371968143030930171486626972783141315523854992979495898354059053841717112836843588460736184645208695795242436799561981830908162256719165773056607606545733062132818475825018639292485249486153281718957426647548168388462413748363048415860673559605716775718156606490220472569683053233673824471394009431766098143199188362091032582653099898492692709012406821615298504511784635030870404766384119383825450426550438029081343648786778044019365593157178196195880015180696877884766361104294663475588628413697865232401666381415669932515246152878350975909328702845080449375677916836089686007422854692452217951938389607372409225168119794602342248992334395834372173820551881363124698220528352186000384623363745111448491542396354020150523706248993947028526434083508639612065783346261860057467126710600199897904290522989843121834701714975787307007272003090520361056634668176409838258337612128089130340155018831812065796803063900813550205672560513832325161893701285283567361469522697230478522340636118387043585711347545431983943194165613301219649709090588572078055022672680986680834683011738508428389494452081560190179871033077018709679191463565724827411694406394984529424796146658105993389404735959808009000081223677205812329753599946805321798249462630652262486732654984402471409110573739353293932713854481535907952569398403500082046989468272350072199104001834655847086011896579565175552312441255057724979117690441143259748068203603704947824246261629628181365934712774166344203970675107597412247980915756824247694974365719536276030910341077076459518320279193209331977610733321664006017841199412588946460042623159877724608438505596547657017730604144703938121292979763842744431157183788429764943040534633779408384176372977820251140755818211779095751579358897211601683241453181763698047160371030858843342942347089141747410326322882383808516819114837155940564364215889583425400882381530667292269581825703716731918653224731736501299282771393066143282804602176746422972797937414109821107164494190102295275832091285448834952975948826646551794367405249065520591404641306693757721206595724212226841028554269118414051625629169669902832673121354903634709789148908033220783205038190576590009363680328007440534041197116131711187017191066015289715814156057830496934804981361297067413594136752402883317262493277054081873676130745843781109466033131984517730465329083759866031111348985256566958797925348646776993242383334626467085079483752053492792552173251499145188391882065165754386357831958199491191401678725503911981987053524892393237748420240571444236543104094151331881598198005074458721825269152261384635434676495380055030702254589025994585554703510486556218479674429680179925134836856081355577812384691008140485587046040141654712842764178661717189294381637619050259284045491448950022211952547563671543176671172633118822097586092414415872476546947519730394495678106360408895691175345492500562843786899522133606414024942080566327508209052174194543042994593153711419092885820038723514646429130556178716963487237629962049255446516563377242582783762637961368734341751484166574962888926669308813053728041863912421242057624236297265160825223799950416983084465470455761613911063657747528454095750986828301496895154434749956013236543797148306115450254045027627530613432447974392910211387849595826393837525620032846872423383906972131103911927199977123231227077654010783355346367096602354909883475339177819498401847434060671454340239181452865621225545481730148718915222023354831961827467185674538742478545988768374748242342400265495794124213976435195608240122767771585689645643424824584753969339915040599675545601634777332938082190001574825154208473185981284973430826908679826077196960809700418266353822706500059986721447426660141292720599815565666118270147286920833257608360512840017312680986978341951800302506630319405469879555618792434264262992702634294016404925454418254167123809533850827523394885891784098600860161972420098766349367373025251798520938385468180541458746330577384903968945145495622962405198393948419843914871249472472516163417130666025925643699810009160966415014869200925776629408474604628364289571798578103404204307780876332599720070972679229034774965271151938856445078688485762258659765288424043336443627212017837915434241740240775359645637458394354984281338004394490512249603658553046677622077165992679572530709063834244370623626841542534372748038983331874494076642804178009642664061222984474799204857002792094003815033604938122931800577109163166107483639806771617385129022522235373003817850283381369653718713909656714344495502056162858535808511774012432372020871667896322902128117026189941944349594320795882244255176265649193015303728699497309478070100446528162381309424130292986791230820717974379234731087334411232424467393886920999073572438944933724603424025793339482999800264067028991170290553672648725788421374195384429297736121186946221380993027331173115655098276433676360314073531370071424255285178966417826362456137535760606414440295332719013970361535498767155111692953885625490449739554628479155982704444192526048219243365439966165542722832366128583490408939658091667642483240886132755989129262805488340637648150970777133052836166954676918048403505744934557472442429565430670730283448256244411180409416577747373785869051657271834617482305130450120603786928868114919117237315480871431492675307733826758638958545694243473353240553135043723231606562672182517428834470126515689228529422015514135127705091480947173256485993395491097101767818032495872071640823588918627356261141996589459413490539153172163560380792649008741447074040701187296091573170423113772185879116556448752191693990556101516844898663727849081224382065571448487096701656428530171097424804785847577250644379269754012273566269931641543756968558865541155025172627680143472159449460412995528706110541531693899565733473797270020104394054293513879668995391055537437971697389404730775241969050112005733765991719050655562950906444599761629785730608866035857881205128717240051125886944885658690091245194796150010396387480190638414903670442935957796080014285317784959744951437572674748520476020694175048981274356567808848646634943807713176545881215432986919119242559888127714264510399466164182845876073271615637628240286261346557335022875182089741374313941536095811950873997390418498965597617689694354265731638127462633843647921959427380596365566247744604436891311673757448007492186024042528670396419515230172824992171822112053574300107116090607752302171010017073946678725604170581515990389080279103498578235627531869172964723544088838066692983224266507312932022413007264298587711226299655319584805467043597486046411112257004825607952635878136212942786520221413257754849217586062724153173638080832148188244481469028230054751703213121504682390837514479317500315612811835736484361627817959546487514010327720065988489492694570813997564113043595120222084007665439838216942120773327121952636346472696678842448522323508761405128179026538067866802509411661273665829502346297860402903274355501041956992716607455374663020549041639866424064667256228825048982496527259935208580959103478401943869846479726279980389072862335024570677995885766478943417439954542701254346995240566406933324263192738508236696683660433864278286658378716830902573034850796984905223296192948408223463104991167848140507478115884529173877796067302601843687132057060688037883001815722593112080612148853377696513003196826462301564004273649090664672184308076411698082747604564473447281023013073479504117400752104568310436715368187389286804418477580361405049206853816225520040493028180084569254071151709008852746370636266839695857383498325106942192087627329712210276680127125908941363704109314577808552041139437108408374478019893760637233753415207168134474549711333528920683513288555609297509361236935801685777717866595070588502681984410803479196126033452568932601870905365373284943751694896397757032612530085588141658539574976726243229446122990145301128957343479357956019603200869406489535482239921709528860247675799518195954063545383225636313806752822564124388948455427619119887809646571688171456801878347518384031560825247652113267323308812196051870752770399585421638673986693009834257373983228682249883551491279429409633724591576326557865157023577655099660066484433729789722259930425961219887843338221825885874943087409830448674785205461716881972822233294804386517674435410574279561264088401169676522825924416395470614451395101955012194354056145150390690213632071438907461815641230115982353711283811474262073405283040563566213531921379081353107294219647499371406209553801133044611385047033944002759474732014565398675841657025925462048085037932284141520370328768747311649477934893796700889769239649187157742326804875318692977244175357618884600451229351954632449359530593739425897327313908044212332228088250096435427643881206966259132196856301263315962852831444360556435958487801062085590464126279380552252433154650020483634769359684755775420271699607019682336124411458645416240708593912767959584922130834462284980646755803398524846834076605949669692525672495001332072302579102917849845438804262467340793424285880885350900473937410562885653777946807887202816793499609196182292146195832964693245551989157159950105024916156795354981384906388345334376779316930867157430526442300941420568866425871584827893466128269940823842594884191094134820852047461600401838206233576924595403885148029722178972870256575096616893624191883950626109639988039147098424476125123390713290727462514286466562759870114015883706608616003621319394697534899265140928903249449038504232732105674065572783648474141240838688020863498702885723082237001658526690933331221121722050020028084806272825484744594947203641333837877001721753410485515002201087979347776041480268695385142626082837336927704405959021278645767931060028877563220233857786649544253926838647893062500567782624071633742810315580873078389538019492549396191337020281820813949691377346840017705236723903083106774156838500150474956549866875605930454607616973320248359747210157136859216074207021676469532005198089415435172655485271427911817709957675179018774514038201132571068257549274078163895033764550923862673059456754125903010935366724526974431841017710293995118861453035134451015835834415616333062833749993562969130709637860781654253842801659634417261813035259210458618726506873090629603830389380218340086750443657670324398281219786575738922379857942474574216982067255944871565089865029093685376249638494959850843744922534658241944292626438177226097549150211596862039876676426791995571004957042269327622758665984457241828228314259257687299862441817181818831432823986991965137413365850380389116223383429142111609652091777256856874211873247659172888678996152914085735399278583831742182217642934375197476706091464744379607793571285217005203278454030920973788394772701841858758476661776595794371183333153665070242846632447794999850481669861193236076469200530508234056202777062974687085379982146504260954234577008726678220619219964809726867974091808569988588802007288536150211930861665148388581240482917610095457401967421206429250884905083550237502422264535824619696802531712627924669036815716302309870740113205187980336316832171857179724033450070343322979684986242928032069682844142632721487895632857573626229290448575659496892192558010038692433445647653667852531591387210089322221170789479211558011731813825801736545822312015886665320894925725636762881705626337456610883228068874596635587389611892385483138485228069887441847443107257143192614954832900567129353937113341137960078518648056330625894257108946576433310998685446051882579287647847582626273404560273481138444187352650760209229963453175779965351525041886710871535155329170602829561313190977102645505090214693867990439007256797328273593634961637255390927844844228818769161295340667619956013376691603904780007975423294197585054731291237206338163233127462063502435781287126767630060235295245191224149864276622739834503838855216605401852541463362546550219626768609505076261598093654504496348791254411832563849275756165862412931115920979503391445015947358350994853533894026896178833400694919036187150364809702244352297232314529328615484999234591032251269671024706831824406158261648519566016253778594090535890252492240390642047867819246562668299500802717018812535221128247155654448386912270296034375868069265571438569018838159712341185181300942173300387841611481690621710526523743727550218550222274508750979726567942652026754686603403487118817083002337924954053315554951948990232605748241822346095778818486145100531995905898318820442545038956269221096611803640256091275797504963170113404061849926142269855080897281472628165430944738350256536714097171568822389443896258983173871261307963589746143904242883040653270798126011580593961311323758473978175335843398586466054260872831335995794012202333056757999670391314570428337052890183319326180595467814196916585172313676643719460268640027861182939998127602250639064206354253303819418891061559649474512008227940120364173969468928637233348814456582436746797514681230368683776541313059509379721556468845992621730805795630466212809070933201478209676330083979610437480132356240230371668242743449397457160057192689058686215316382138322020857599969574880488735454042568505892291701999349869445298352787140663155360856804526826642769121834828414858983720040407612582524281772741190017550399767763815707746495620189648209928181072566326415238839762342357210874279778290268649911224020349163996347371691025897493324752629608204269319186225393842731744333059057544770176827877169364602385956266699337761255223770159224301568663793928635322758353634458352869057424070216014052143569451742590496975586887127561707610121075244304558448928890946098742196014475768833740687223364913670740880650141000855163569544068615171945098240308531639500550761844945189937080214151640351888359208495876990907386464138047778948657291031308596442980664061689750485441381963660478428918777677774192481428687748447894375127938202404760641315038475930258311889826570047752036969150807680500504036900665485382775203415602250967669877820168146572837515791814094110952760447642973118969271804532375629109308550653102588415062562987225146896568073731671741134891495731882430412222990602830012425931999749310212228383937664840850634890963092533677650376858207012323408544027199951515561691156583305691465784928634172201968144310160363306449856749830420543819840229458045740650120184077973091993401639280916087813470819064182898075882076122567741676095087093223481471020404403771222497251189388281643382914887666691160431007566765699286405185906566171510912661794041254472221428685263345366758491324296900565781552055757383410095976807348350086665665088668806267441803658661792459105465912104321306698735192111428453655046281316601678991037346286928112312577075192150224511016646115978081212343044755112452678671535112884702327406710504718458787717169775014581060629657015231633556597852270259502749734313612536302783065749415828014911354794332798727993716225622903285573078089678081621760357898963511883002061438820774015288239248575857113864415851477191719592545598871458981281377143483478674799863919155940753752777843603464012623114429323580032793430429977341167722654656308601969576906783315023217847321775479021011993423110444840124179930248798248080632824067787358999356327753897999165382988584730734316562522837716833048523289545575944291379232954662949579965931223721514649603699648642300875492924382562872746581325776202895839259541956993865390142682988128279849181712888742899254943887091700898708364626923254987638930568060959499793838241284500334497550647355843882946657484933043668714372110700326026682630854344165331123236100692500136760895314721426223206814487600726765812467626089370701110403893814214424476680217080800825513481939935580049006221496533066128633798872329878628620262699392709719988467685309055610167374266066750383432814288336712092754659879489417413845297661679147526654502652150478448466472353316107878673003051164345124027002733205804538465675735475816542077036789171054418377369328199969373510817673709400150713576627085979585946884693200132193332294725265302932369654221223724422806178380662175514261415412714707249812151899532912109960353885160409743795240655866842822536493703292268513580783711999199616472037997696117700627845049242665537797442422501649322770058813224390269540119241388319713818017107253769818690054092718963931982539919080022545751593743284227327226056373531093274780945089511198997126330514667548322261930928348183927880568484295290791593727296108723595220581965659536087937367252451763686166063336348892945090083864564547522663110760835070985059463654443765758596654471189553916266165321511757232666087842307349962168778380263391076851070542893771695267825649573091329851138190214131777115582183003506251884655597533172451600397919581259875631680699971525340382202066894746954336716134658595164608667192434101169341340145145387563254551191190469108092533200177121890184761702113080796112345392488779211464806529509788424052792707224092187067220938929640411988982994374671760799847342236444838283269109157166281191797676066395304120169518246180686483180477417491541620429569330423426718009815039476301028454443222549911304102283698298664835402277832505626405013888565375911158701065352003635990172627543626341878561177064119895074429330521489630660477184545919524469041817801420589124169776545107352088416692884961341072670493971124008268552751877856785040191220985812007709995579529253163992161175137963479049936340951619394643825361875431787262249800738893813219219757891780808762182082493147967916394813601786487615674994857217284648760727244502804636868595184592288415606717718567765318467767266258766857949567599272801808296187907524979455003829200187679772635360135339681565129642910051018930241140244384807172746924751307702682717751088017078206209964976409775480873980814325606027900165964458050907202714199332209237974612679071237178155334096027406105728817653790852603613133553696946752648034777746224068079703296276658066614035580008834022167110419159868132131412202561229503689383874007656738268225412296104502891606807979289763790744154797374018063666374425036705062872052484686926783357535031161008519282012557714754953323310291686898746305105378352913593632503049466776443159642996103447602010306673808280471690387591810031622778196963450820034776878994242505909950549887423697483484470947999197090941041690572805043553986623235193758425530937899608743730375530353970784419985642576894708882347966888408671115993995287248076029712478411301161939751202834922067512109646829934129533258351737509827578351299486026229338068424593373020847242582308571759221646951506511093903188260774764435194056721805772559136090326792665396331853366915539251201295466089052382158426971919580643697799982858545597390811535082075236715566341724542761299457928501483836263963552272715490154503774437805596119770202881313223114987416360786822924810926296692864607919797148252410034278050120626063139403891288851136029919520259249945375718120247601641045149138172970667890736118277978753789971899745271175926484298754351251317639646952763696303735349912378113599441914450077826073095237759188042195162232954434265527920714784007364336716459125092568813794416992716339180899034332805862421390333998338550194325871141245124046680080471710583838864057145895423052109067166111987512315672864111764083854837179408778883144254369205512653383862069011987080980077765216293838666096823991526246959193156863224390358118261573751561901643022693618943723673077194285413474036888431828003636559509401933304428682565185992621657957925695114410058616865291857901019698587086256822099427427581067809736111208425606514159745386330024897075247532444127092259835413945037692754263651937596140956883242177871096172057152655696010083438563028677772365258337718366423483516022382126896871243411413849220401672179275828700149350446854934155314776181602509140270660543363606208705123239404689674214709684751654637405526303211345458742830054554334434343563850944064955077261056193405714956351284441584821419570160327424141716313204015039261715260605826482240919691755762208659995185891926933356031317437397303881199477098264541377735587667918410042518753738119706110781739711378848843950802538283349852629497282510974632594022943388624102182009026341769769648165915563930278768610857595811533336324842981883651218858043762451594567950432060905301587580067477913780538787526987528949836995628631849960741847504155233356282310532596107373672008966562136341195734584452826236576072749594113629410977949280002005694123187358526327995235095310240328420337699388768265264276776214012227154732863075924607112443451121244254487122422009639386207206353181212307387246517274438069598375530254307894453645527071324456022386412779321407806280793923966880161059002668614724233170612279360358041605926281255879079610187133747334593171846610852240861838403906461941807533957055342358896954379810628426266790861973243281018741798553038432090092131189509933094739518658793777050096723961410090122105072060905916162852610913931378207468309515604847877987620633448479679121357736028849089851951993116422813503885700317752189742239900448893175486448696073704229778202060474688896719700180100885361807927371512437166425567929337877357122024796042032425742758203228699848134698931565695556171820379840015125234853516979955599022332197480757706622177445326146845781489407714254049095448765710744586799204788957565380060600885412705205842617054313365350604363807269898746160418619119632655094705850848712024655850253948457182519701652733390775473092419405052994904086188158349250846668107569727161285880273024977361178274260446547599796573005150880743990559957900430516308935313063877137434230280763134248331853351882342218815097475158730020189270415862923759012924917443422379709483502226454421916711375161010117772895631576641333469089778465765552088008872737050636398541061714591729079110460436448772926591328675864660154281713510318691362606495647847947782307907494278617594846802685881758517085203229577493578584155583070554603962105685650906250896632412864890080096433106831201497763857982382322632391029006797113477912142690131829970739503605471401061141083262610471686215691152359359882960964771260790509135904823595076764827189796894510670470576042023119499960970881743665878385414353271510907481666330527361326996956087964469328811457689595900369455132321591641484719387977530326543883760333147565807428941953488740603457624749545260505530410003868252705291996809416679975751966661484853309608798180604074037932229577755474938229279395483023969140212803490279902882084127090237510373971698015868098483089432754669094112707979990500396167750251577177815952920691052840032608555339582922609790151285925408315663633166838843353195774791941273783554135328317503421344851122193588733130446627790534401016025556924548381560319454050512386969212315192806189385565515813205308866978446983542691992390827819361961961389800316076824164652097591136753629204859998578224122783256785410030090471997957694942927332696488119538692777665298649888953907437895470556604167507817249244543545699996510623471527285611060858191663841344174834620511084552612004581158774549710084101235034556251056620567166302358786806316545760106915916188236478369955886596790138883630255278013231800405235286006811335448876292193006735764304497924619481157005185105237617356094978742122418627599444727907494145104296354778137682899181414636730857571674237477659467551968009601339790113624152146814145346128957934309163370571781209010991843201772223381119666586928150448930117431371460049688851903117197017044245221570935926716983412427537590271631036862948884502094942719110129833478827863921352313005593473429223293377721858098439980431458213934242516329509367430727604838787834444284396074275056348516530711333887449147540966637933045020618463605630512204478407356773092866050382818582930434415670673905764181179672771151635887353181977197976315474105572420363857617155461318340956480779027006925748600785282123618547287484454855917980106102130533255521740723432126099156783948022957767762190663076179956842394471437352084059460141455768180853565558873500275136061079315450904962562102358224116572480646467580398688917410074772025542647235313281440725518856011286157169317802315932615446343683134730328434705454765164909982492968058370718123825137215151484808216491612437790303868771517774249004222355497251163526506337802029222043046699346331709204016915060479522761805803508016392395944274833139667038281198245882547412627523650549151538185883352487600560707478527777336563822866249924401800501739004505280147052012183666364606346515149609813946947253540759415122343143326140504966210356601853758115093898770159747683178012484154025716267694165888393843966534344186343504209338489811449161502980617383262123364519090735996008681893501437490819790090921916076152790640520558551085431919843547415240006357342902762619485702500391067812445062156130784722675755773531522352180943108086170736665701994158784270064770519017802167636925020236983771088559104130375128499963887396591068841225573347255801085754768311895819676941695095657190998079796148177770264948865140639572787424742755900514646142449258355960216975282548158735767383551513147579169498190284005584603495303227202347403760246862247610583041464597789409431331440528537987959227336755407832791353921319952408473678253378857461372367519620007457930939884429910883059286908397996121364515668376828379215282355098599704758719493673041675413890238609387293162159266865240753542443590427485911009707859608622056462689546976310155423861509713018798531025724353803703449893482316234393837716249534005720005771956124940735449797269988280627116744247695755439849411984234236305954438786347875195754429123678325491262049070843717148195299021761953205051761006391411498874893572255668206132173177206712394342166607616438610049060332221764582081008926908308908086982022640377373331856647569800966923824991290956197451523130060085584879140505581252061015672657002710515993054250595371657437101293276308655888552875468896202351864700770490342031239536994873815885422855505442654370373267679039185042317049787955366944316642203452075505590259788373030625271908647647980293883873584824486449527693009224366659353668795814743264149388368969623486713321180246431753011932306988570179137870958483579402120771936287302422530387955487480392161897167053508879958425503611377762983946729114195915016908913386176154502456318418227247561930213254875906434574259678924303656542377862982226935058473744311052001214777865677907932801124038546743547234216454950499063741417648342342836407716064864829840454700268075805781112639706601609111781285493588710683995900826642747434733160773125303737093278987850505577795650205417151007135358365020818268869837625416638361475032813309665666431158431175030747968855953414199632199896888882016536095990122944755345023048302823484211131663387439743764704930996993058892719157310204390147634961321723223792993862913948021127706159870847391219813044808478897997839072978595910831833765588598168401291320070128032313881715168027928000662200648095109198616803609078844590479169421963886321539957547228754712680418090541666621818822321570414710037179637337448501789653474662225219706689211248263423059919113343799150787717290117963119349580031586111456526870868527165517995161536288663160427614098309255367867739225120623623522441751422033687932975204128418527396223878798254454264338945161293755582063103104168049218457189716651704790897756857977308550420712961624032705735603233611548600207942619387941021581333845181693473647451853956155627409845356982750240943525712396559350280814441658117979133225568619996600855916097444235358391893666485697230951249014267695579392901000011704424383448320625869119302177520386549362715964951723458145851546911947447158687913040515087936569852617951535741169803695460862645491826301477167751359904970930436436241270515041903908062883754250583674525546738885295578166052526369266398665122187676147117787504466888577935710952070106554629919893962929764979290936687020123077640101280351477274199496981113359611434445530968965312457748708290795942527372510982744673389772160015801248713882113720532041486639249549348634363097050477033556569245621403857889008646082826066213294315759598772740296586189261335865639153536113992540794171644249814744170010254266642560015503572075998122444056490628813528004111178446095401265180256632720110590297586972258184377941341896075539960253511215361208686277427239251341420186126410718308888074634363688868325284117587737890608271435106081123652094374713294237896500041703622797888831328606932602424913615377267464958327711213479821063145356197629774542788009831636521105311505406720408487480893353093166824974383015295006576088205787301607769309114500514633401322044422791176218578118136081356592150649526554870054456664233366434399233147169657877295677761801064402541632804270042740650645183523782831297356670855336786420207830461261235677991192480519018039243373737080473078452980873496250570178900071540628148695362335694695780927413184395884356850305580772216749581242035079677828542398948209727330649787679080575991551314151655491248348895372683164826407440964191529312322854480500087590329877310096002111875374449784926721929161197839289805885990599568686251687822876564538868345989291341823245143557966537865958270769914759006431977341301358076033317594920591350042166594478121567160649844263518977731609689174802487227571418441942588962005572784728211892604688762114655672156523962328066153978349031450125354779172596140761108990423226083522943633972534181287716928630827116232653067285098133321632939179436752861405795755512462023727917663877794099457372482999784164391310539642727059045954657090976219231295088268090370044031735410933513802782534391190702545100062167615171795715616171219870129479738220811284200712337288964643393251523950243653264533935886169524311089713224398284680107327234270947482186427212987043856221046965284838223829954053930342388695838442044224544406345734336711916284752189031061667440284315103719431284169694047961099609987075871322824335452668034129702232522274279555251442814063931742576845077119494579163660816741403632344368723309052759024844188286936500162427041890039855176669374135199855578923078737610316164611367158163260621429065710310710439586074933404568298774159391427604607252237765720268100144269119747509918003534124717891322588758417143046808117519099460183101822860214433527557122558169942311974679785952508521475297962058178816850072824965125657496227989518386495129949229857869620328211996108664281623026730553477739229293637479836486600178932093489657609556693303171911654528727834957469357282235171516640263307050734714022393039781252256624556073150198708835464555333672604852767620761251697996333820449893578415326452062624763588579448460668332491683330299077868963565493979260720867956679800761961316053027807810389923625496844449435745662234486005072198909491477761778610836741278336545566159656550769688679722733075399706267862871546949033588725165625308549774736827762840055059877286381242268961649775388571477777797036977871783837426091722937621847497553679381865404453148516206581454417443724741066317364065491793268516658390308383331016110286722185930775630602166914256315488993382947212276719142236642094624689274902172031514966827112047501036888322060419334264023201408427565763899816132915507805995999386504500338151275993428575085461088571287303793890751040543488821329712422849503500846320212606453762592094584239713802151582610531701684341569852595595714371708546685814220837393788264841708300802513083521937232893016646882417924125510669412699317602601307868636996207557324311145434093585931396483256102295036349951118371265283338769646688988710729752669147268483555334279143603449683928346325471702798501097772188419170369118735749182364069401907157395623974395448998676481130365287523357855448043531564944016423357325700968650565513350144280256034161264191703502184495982295658904321476908302995876498601321213630847165229590557826924410015631429376502254150818599741417479050261842602792696070200552168749744533371241351066505772873132456779337355826894345736670901829952768927510872015061359382918583729404402735990769153642302152111488509801544402590562202403305680506224047217752887481905494997680475953427868051291948047885734342417847453648063058243754737346604418238425472188944877603669054941478901526503198341484841943618667739651167481201339585098368869611112751875095667523525839735417430048485541305760130469152967443856876908424405735999875598416388585761407229030860914343454361654868375003597299481571254089889428669931275770243843441476521637007094902525347867361923563620808175058738158070644964323639132037416429901558310361095128153788796668901187102500897826248641738913080028776253387492016603944284463350843005728407972935486056118669277451291670337837632664229602305481150489903264210306176200794138060011854725723446026251801124974501021110465056057393870228005786724053565296034498153171524188091667092465959270052126675235439054808748863491690140878078075711104915365199454552047679782418735165669969870681684633191074639903074468982992150629592473502102070386060589711741929877297561425595815591185427706787278801701570534097822103002107868798358703992292007558385426612344519831896273092312064176192978490895579971338363610883253699925957569129517011559894919705738417869426823748190634037311248500615253682319974132520008702390701369953328049674923904627594965457805343992016820000294045681401752836810614883603250894197066702863295451042651094839488560600369082134764629508698689880846543940795866853953029169462002754781322518052279056041337236496427723419157716930183596320579532233145690375120930885374466485787542463602443033617892025884894612578379855768340333312373833222709633887300362968771521745370721040819163791276188516836567861206948223812521654916955371797762175822615920370825473699105913808314152045619619116099607346262201293073108156716400101976962490228305555716101111429741013156760315232730945167239672692451254586392559860011664282583466344289690434102483783380845105513262286889803856008690561109112071931702611699965607109787081305104900184317244213376067896341245710710805262314483313989341474557652982827789255093366925841828674389263550023173406752072314278121499343320563344583769684386777956689632742059258390629218423505122716652393183835584370739129512290872660408571745067037741902008901602265967211315772799945118228418437605139120427411524136886465182848554408338329532919304114217426538025851509599626320575798899620088988180660346528114641558520209564552874818701871303273274613819938690588491344214932332159377942568404351112992702662602154776596467167485779532902799637821492252203841911668344370005358842105639306079058238056633148289460800016409083304172393530276715024739200610938116333750698507971802659047672413323056913582047931479811624433014735113664986119199109372858351424657894231285328748143662382328061858120745213959052527212849704593261678718903357365547835791967165683702492232233343483617982209382799493802782547353769409612440363735028093873830472597195031980868711829047143044410731897943258096403037204667960005726879687048688436159951298052900611576056556545465576206232294371975991274345055414513487602382725481494027343983202307670697249306139435708187570492422374511889332610369020132210591000128494563445278337755216941804680120068313730323384632853247028403719924727793194137984555553626212650994451844825318457728199832966927204319369542987760949654471087625878053693858820816306640958207147988466636745910225203752601501990510268683385314521182370507401499831964749883695729930543977228445843931957555594903815665166227972365999405255305220533567784602682204927480022701369417364670659719209497283004725194840420154352999045467417441419489197325234628529892374098149245281516925991051785624709275318324355002335221347258406423972738130332421292160253648885175874867459991361665593171018742730159204755963549723158895781964231001784959547940970988977137539272512675245155789829936289405912457561958396130164762744443284671926460546568133462897884842262875891311929679148941480047060367586175942283447777917553227357312927467751896081669910775721275241767490248808046465538811196651604428362844954009337497915239696199903078630975154196258666097036792806380787418211366422029035709032727190870085536880122637757194833259733059647227572810492188870617369820908247666249193965941393393819359279156407499088332337361639134008168119466905038657235809970259818221272174656019135863263430260850711887057855351792880853599982748408270673537133528344442238876425502102669225312361049282431991202484838945839676169470124001038074283798132028290879827716349658614674424836145267264865940234960677113162655673136715177465203733931023698579252478132911582023047577851754625394445853702553606488217434863891257538533452688950091234106379465559161384745218976643153219156914635845236561646182611473685116514416759991458515760063211212999450082589098556609464007077934798242754879020229348530768636596232363509298461154042839378034023173256808100763907727589663206677933199480552778278541477725982554122727912030618065398221703034464104615167917320352664712564964534420659531675808460323783817833771670466405116193852720597673604433485772150001628830997860328831712386845774471768397172521206346614496815070654980709432533180366396660173417082783530840333458524859806992683151117044848410238333635593965125088370105925683201134833666059197814192555650890740753427771942871201639209672498469954678405900920767177784663209210767009202213357127321027390199682388114170994511889492780991715135586010028345884554388547611872275794980724612494139109058174483684510217319919624460293705239566749384365987398097434323585277527751039639625157703745072362140588735878786155753725297006817589025849760420062911481933225202063328911513490712364207972458828482041222933003994265514319131976967718668611733254291931778636476121981517001563048476491818499145144443647284954296788515085907494557437822472742957557126798535085537075821199003442241474909395174902297081346090231659037409176141912504848900597866158997252965780584632906257641168152603094413809553105767731675970392995905684181944580600177260357497576371577128402423904692548840393016888543998940147347473263774611216440562854466060031167766236523113226855565616182182600133439100739750394016841542009664552353209848965850492926357759958905676361851497083140661866338403667349515423271624985861835888883627107979923147860497593811721877260590948926692515489631858835566519089503522705450898308683474431356940240915430795667538182882636513028239583920804282804269285099839656325299552359346546911414603079974115213698802257957314187311330363879043515450205777629672885138339504067171630310805476511534519697815518400668565892054660314249980165072272461983776676654740415185571884290515192766648082089218010331843218780950072404098053990471056522137602975909255347066451347450008122596333505429681243545007228327560014923296692595814305840311283542891426159739656141871245940971342389784726582790953364490156236783286559451491150516529413177321716061242617557083447638679209977612451085691333639763468669350193231533534603962605123453541210350266455072742221705078928666856039478890926868261060726427050618177152472715776361750337139721655371571800362606928258464429573840825559842809404968326189344036659790053763210164368628754389092418550261982040888824858219867143417392772580315026830638679754365065529629032164936207600270100928159994305613630233525953407644985172275264481464776242429978920271341600329848410799772359886521062529262611966254781521578350157320989057088802241527371154447634767164174835400973530786191807884234185945673380905610269905561703731074624649605833897598835480138322977259364878031899526997171454023288614190053449566135785259240920901206643950333310667719299544737517255773501304890337712861058758684816902786153287738900698411568496461452493177381798661958059856779592940909535073050769105783052197170094185837049593634980045881182201891564553529594735459037129513536946946427722786773196522177117759505100641782876415959944229478983364952855884237458401245400633608328155949684514235885962913321197107905719124357266380112407232556485381455970599723886438752079911570157923907357534847646062907524628682223646338066744821856728871443036777130006518418656768680346348592994036709399337208173065880999362228717819821436994223239937158679229061089584373980013292513659073072080334205038376959329450354572417244465419122506735891507357818370846920962805221919725901723776172186582285638778993221633349533926855422320324299311251139064935407994339591199083150735914061666650031807249966258044817319021004592338367676322094431582313206165563971326014027928077305229201335939497549020543849777918675144836080855598808200694409831630791583229736198026171875542616004373019904171752656283890361386988962891715345362539725268723348214445718583339817741549384349079230008618285960111441723164708210945942538431185399849838106122343947977336732322833857528536839808008491437382427444604231812553017276171598697164826385956891875639423288656611785338780864742405162989676421869012805427663158918695619806116007601731977534307579827545787887156202447346285520838036202160850575378627418937060816283525545586607225935711979087360647288517252944655891062472053999987777622924728944796158572861150433907898576643793271349638384365042071244742346976685978937797601633037605958221929975846930407879996994429621830877540753930613544632293550270039654743830885341859162840301754231795739784644828481450046911836801077812894855054564585865258757179748201012420391861854873975653586386211688375380761536901830331783428739143148338521948857135623871124687789062019501198455831832952492574436651473698040000514749644968216135884632370847621603212593567817284296826226473224709155759299555408320270867159164652056868954408822061158654067469210783905521883483769746678671626788432609245438081832227679865358330816878426264553928772288262438479970649888182512018755820187860224997859797245996735054517070685826386668310350803974272438216234820666472485534883084379753015736887542037353172535926962699441191484894465300149115041261690755442245217562982142127958406768301421259150633216282058677485822316756055916155998581935866802538493579950828176978137097040515120637413158761217666866930112007522470325160960539103131727041064994419671591862712863184671809569868531744928469541357838295511630737216661194374113590793600762563510832608943815011427174230918766394360936107204867658385358412291500701191070067949465244412935688199484975465545212674659394117663615969206519560012965942012032346262434401179108953433502144014136516861241637897037969957742803685954449257738027049046141861597139424510292998445645233753273157046122189893456756528918529613593312879784148559072971594818780203095804559519463404207896124983671739867539405813454983912594646206310557780950412363185555776989224015199506000615126143614398864501082064808994514332521442117151514065714628467037435946516318996660593498984421694354051275275877976150768223763634994433202242478709025014868615684025943704929096362886797570943943468934271338155065824486964098997610531049300731197546510847234125878220581112660941869085222780998531547354439283205190522918637932249740961576655757392284330133453827920014006886721596146388778439046442729321608238884461171022595795790449149048395974615833814867963097519004071386055557777105240355713143865770191769191327019772023762246004103788730169920466115254653110996059576527968791248488427792630954637872376920006516212873882650651047231676795567076751142794577064663292806448038686144151400179610146753560921888113975956791374068534586538448849545419299369804214226819301570063964026937137595850568445304021922287546450559121490183869997229911480018298397894980999568590003368364798282832973268314066971938552799466348957006154030655072675907045988932503914121463363160064094630388398434244167184090232104054720165179959408070836442086489407971669280812485022025811576158112447544268904810315050836458490777284787610978583981375921691629614610445296628201971410385990091157019088716468808187016039093481498686309963089812095439250234602111545860345049327702926710771537626137801075785725569349113693719994505539119972573612903666407840917663024560015372696700654777099127752272315438748939712306870100873375410054508153766468829234087856204292273625473309767730012692324734283818586303144625274813854627009829333412758796718635258067357306047598487285585454196294449629888182149118347356699009379328371055983565898345300458170010053397296331690350291400022487114051647767696113667524679285504818673025507974053412629422901803103825654233360398297315789255001195695158488525249025498108408193723309610870806078416199047644562025493684973446486516497342528690951663432341487352923583261519743881096117131103335047379996982409270507099773959688900335325618431225904168438530097634666863386526080642266923743078139273746552473185719570814542648237078748201287551724399211667168956241577828546264452420485951816031294261390521533298287899849397870426088091866689196932632441276056665896188211698052522488290721234018216663130526708479461650042106126215351279270661424673949602425206963796081050034819686569313196557993026109508281989161869857152418736711145428274412857720738394202786844582650977362611008681420424972549800420094938298275942767154233198952855309998447412119354870291456110216422734846784655989218724708853977632046624099639715899963424462203540232969261887026545707833368639722693057161517436284219888597006928264120780064931348384368242620723177285449195866174512018347282970565462205912869849080614117522752052132484062694946050816686765220189196533192341609153596754934057075149570469456955742645727427139185424416149322813068619093534930993541281692926028960037738718731643958918126626483045551974423932503511346486449443126915113854787788980969682905174255456725658559347744493171423008289406868057002517791937996385270893575621370372256156835239533187539926411962872541512927071945835319786492988901720109037179855304111472246154593286816293980530966909035398520429400448577177692461444370936408755698515054279306381677513379381529080495717657231553254732033383572306855326998573140146228047897240227731113827204792368884667858476272904713289344057380989330767719416583890674836225036063207762410038313905778488334361393926219067704296051495987066882513040970911795217559849496242002064339590338160710454392937359807981711127395808179558267920351702402007647102369724658776798699096332302766366113384466137306125776960887009532038819453357559498018969555495718476888722594400868889249693984762077639886430256739395245145813157063378674928573424692359177043188807037788588621642656718451115784739955755996003257556247815772837273659222351883828544915792851175375259007870972889252421150040600414014467765406139394475594926988249681038282158197651609615154594091052848746999407602604312569105246385581000305843441394772425756078829405382190700835956585982763452473423715964456733593697305305643112785113772563875471737113123478248112158423245282583192951217763146253973253399769054191225328820996903043692397243147653139254879506467419676326022862452216062156604394437407762213824941377838218466193157179553432136486677179598727535644727796832126614870623174815878083218789523192492493930985742578539375166653602332996420337453075561015641221957501856698283974250971211548253429107277242250380017212598304956182668927229592339569509634613213427854891215804589036897060188254172136692444879340191133789473301298003326260145153817954125429943354888195076497904297066398400701904701271202853027438092977063608748284632501200924824768569174073318119934514782907975054084363511804463383283020826820426566493838144412915638228780579925507028902677614241076934912433387380889035013981623704283910050580130229716199958482744099062745203139794794733697784804912679812848936041113232924189612399330814101419648911648529396300434177679630373035928076699693425938175537806120381365204679945299827431797409440558056288114290995745353215160199359736655280428333146540743678140707157629903119567161847487094004196368769955501394389503381923554655603981180238738765097349272454862042619409455002477637984686989013603696233608790289267392367357206256341986764902863897347222269496584407537755705620416534009533941876288984942650053654466125820693132166282253990808417230027344893142795621655276196150113076915318635479889623986913522348153796358253920074061133640088000246340208404445115940989173798311800164911315972493259786371872610257786297330502062870899304049611451670536342539882576633121691652821023918231168530884865889488847099290428887342937598732293887321914518421124124179693338622792752911960774665316229588408199698467194035942085127660506362465236227154230978214648787422254921094857235600744272582922055615954456524582657675655947029707781187261455391047045049771563312742957955678900691491295296267891461823485984722900210884365754011945329715229629182039108859294191851701141440624642472940355992976947837881325893970166275719533526220385693794057961713355631726821736771101305361667118939579871965728200401246577831885919356620126988854423805186772613452206120464740542577806461939594859414351596323782117370117402056048389029128003804679876965794482939735169553295538696030788154412801470084653860421620186279958257182336909337416048650735747743799153807776371385744545194504370865278118809206494535424384482603711926346546168453252932247805132505335901333897823553565194964100491420886400258760532802118612796203402542113732170162083381943478959362569607347495997595522861114300516146493246520572868664458304408450009844450631727099515634422028923379262528128007149055650811061381432898971567616635018156596218372227340134887594845493172333240189245551801776474663247163218857888417546146500737607786605998734107372399017956173926725412641183558543396422964663130130106487655992042054637870814854887586285444690894526535892210106746527619388517110674725981625503599129614061126221811142344576503426354018068446509322167353472223975362083336624648667784326156660409008404664519893576052066627368123128895881386369447103663129052032043980861099059272597377631921884145232612892033129929218864075257759733835840033481468035877861026965215628683715463447943984096162380079424965523827507193927196046319980537031395121370358899911652851093281593589502881884146288414671153490745277001007117039780477012836478360326958233807062648115564438268294094630241208163800132850753278393913655624875043165586670415221408994213815249405857911921654336216317609783251397614782184240831375068092644418762324767518108084773733101994230965780468365126565010231480449881007666969131569470075141360156651588982921632274923204565853381629875981551413556668605904738844372061085670412026725263978885155375567781419487604517584138080326629960545439721166418902355913201959434940136051248255638915446779694764795927854240128037512847266377648896226992753749756573593525029231108746727609422612242023777623227998964159482302748332918805271226443452005108524769299558403782681487779551985575958654658054807156231735504101060246011683944579731963426835973003931232857969135181583267399620856573141475506426109672602115160447139536498629930487112027597619094387384842182351757821484742092274475919059343436066425257073812420841806745217888661703687655951798429124756985736613681558077984738931611244613394873890828681780149477875064521265923091248428441293783705657764175651504622563629529369095041024354411058431123854468403004472564900285955155681702041140832802923293453252834425410364977604634384959830035870445831296163592507412856976958097797191108152248269630320308373706021433609957511607388886771518492456217474611792870590821200416169541350177600231855910966143930533104512123305139872056827113606372300531461617836699168918436707892298621549850979720838588535509412539403340284104316347643230220780871027046677860451001051407538339077149914587129532959329742479202537909601361509581503542289634800735008356599463200819299078563642137935170218954838858948787623886170278808828550116254104774551858174745989398146081415547376979650442295807475941741942567235618300221908421069792264422142013894297005509146472391911139000869267954164368200512449424457185701937442866020084970478433868717557170538270855047769556213389006183079608972231123625556254741439555975257003584973521075220433727765448651409341169318766142616000980910795064997557594492736649351730466509973592618843631865068487773480715861684033329329140856854856707643051746111321275012999848311086128456759941030160536643366714061527982702159537774497674515082373953149863972493663242681886802336269588740968058608092459617716037473700782733514150175783322313912943857453114824706885180971548339539603195038872912003994633397904593850428430173926228498913425043121677324462546727160892236400725856629453005819522560619675361211846056629296635125917172933181353083312311474653831687386729746001045317696045245984997658106327941658559410247040258869548844060393193221876565406760140178635455912897980660115259528466839079726754928150816716981108491918555509608773114517159882011370533819834026946865583313507099881044287948713778784195147796543889984339700380362863884072687030220497440006721045777841577318559684250306276229914737977395903108430341230133496574166350113516038748078326865423586246427896318902165565842402188405367207592212410646643117554478859542688186886006769566220640923293226329873460153032979613554210054691578959525790625293721548807894776546902571652076920464594761357359352593483041578571424587034642419419171270086856925187367169386309963759108331087617989654925808059281661046099568564030812419264035099862515312873088463244138166457232916758930080104760392079845662046599687115683994894085322244753498888250252121345026737373445172851339835224588987619399876633384889161629132756591781622088281872725885942915769086093785658440452185516807889493075829251803216798598697069157454976516326333811756779265794079185814959469623296439719733538055022175090742979136866252972374159657250228060473353806252566022551178316029230592846932910696806014498473631585601648041982294223639287767273739568064695352056080064735730711132013675466710156312158290776837057221893301951500919735747370517677460490070775663125799848915827265502500806542379031926263549263656680991148216250676206601426197626382675788408733119905831463361132546387907085656695136005496376321175599868285367659582647118806963108233459014177839665529039903997004559307897660388372988178372056201974061506000912166535172748143078291480696215592147314065355492993089947823403171543529421626866379243669888875257990406209031963612260739810853262128822537370698476115929860946095322298016304120381762051331346380461949841862610168020056364665342201122987714286823109865148608087968952870863570975561758175069758934791302422025393040052839425474511213278370642601762186603905363826893598450033997790361205046075948451826967765899841329705518916526907903294209964068189481959015078517599517243125757248385240172780178463912808268787122409162772301655633977779012849405345842430196722287904419662953030710348468129440927346440649405389080273061658815349207293080400431555124973181723336334817084028682379677883876840305402160690271217203771311831466035143986890565264620541029580074994807431998658749558650028404519005514236512707187833350116054489046102756877680452562764021630588738687598270532531860216942641806027845598007873128632092707223750995043340367205662462269502572494587953999923456909050760051685551138389187591475472189892697033916008722342801016634394206715095990872807101284668496580648577585016229513679950106871689349408910704827054600561499444118386889250900351924898595272802656877399379564367515431506806455151181689394076209370614659915303004920046064685307081610729458319446400782906886213418930045349380967238505784502492640670013983369585377821049278917162778370707318845630140922168719364848165514923202616771846126347319164522224506307672163961876353835862943419992599981538882396663587967591782301403228718566738052996760543703512933886139104619764889170144334024728742371221965301000347394126545790241275535877329502628790091990292306770840316290653163105608698127374002182878958378760827111821130634918409993038690720560386608390117945485237787109588417593280643415533721319890708942324640225452460449406944608748328001932767685402849896110731460567503042985666916259714423932290124128299504237884887416574994574368944909535580689555191840157836431705460141345039318384967900776568509430443732976805334733705675210612299918906812785450587951817942528643953990175426777772935692800331562627791699108750642112282668446163473373142991478906635908035010548274133688037740775548025636354044138421045098989666224739259946553443842995790512935508409617246793592300370819834933609837873434381229858512488666970629317181657195501893168535558064075884764974866939718653099903574446686878044417884773995285970615689485760021166127583067134096043294844173950912159925250027403325639299826688262331704527816169463684336558915834615170006479347861692008643730273882293651499090639490020620541784108573794050888203215084848724567622314948464010767520138084676115114300333825691247907685907719438804151497938676674185593425879345559939926032003366964232533470219387134182462917904587182864883400747417057955835191145261068382406268224481700762448590158777227311295478715759737199234443068021927754249210604660467406737618684182766824220850686463481313569621144194874089715053193386664607765103932224762133229833381818832313279616251936396407615854196332319642041993979604902501622934485736780848589691208398826663327193201096233408169420706538128949966471313439021717254761088136328803566922241510123820182127093265913277140676690401582430673542399442377926551220065457397704953830713377995330588658403277766642270853593173107746010179387052966893765205690727371052050540633338145633829854827566465735263773704481763059556794192451321259849991760515670014946364642308901145206303696871189102861888382829163233277004614730252703885839144887227701050395975589910138692592932828546529980241018022829873172165016672432036841825199423123941540141486120618578039089715892039442968957649698019718063202668428441677115730383342605706995780022387792471717211944929250756090219390365026450235940109498861088729581633224572171509968737572722370007033175116475893958450724383622151236087237599813853127322036495265174752570036394155849718991740711976475957947096245060075139345977359248864799088579299587333364277646275231452369541165865757623413293302232978049579902649802712001789860487512562643466888239595477322355248679306780366390614461050711965959464979459876650298217139114768342713213329004752032995417058901520260492611192199304370010858835266689196288426991330832696258958800778084185534845229600358165623701964015517753079623594626900278534973189093695771745303251140933347198122344427114375226788116264553084456544218491095629691816995583593742623679195586335572631858050655580764708604288704892859855459587893898070871192910386739868733840365863708229513548703697458279443560678239176172426802946666324170387208234762865374629752078204600949160405197560512906640646861651444341150388773239456100548208187461501346349322400895336832694652330117852970209079609451819182541795840143679061143664559337181587950667176271860419432510435845743640990074924052622019345634880069981946794189038707253595732181342963088030721600317021808478316755223666423022048316367175337383634380962761617710532208787603909231109115139003647804630604179365163135288967779415473355798441479697766793114857905704880385778640335338917609421639266414581218725709109418428122584418899653978234977640423964273444068777042062376887173909671207671248699641178544059058727816107186255381654295028271901584571126064854987089198050330245702194275969835578017959014380095913378518132996667621285027860265443917623367611098769821695701955889661187835791484707575782598412798677744643191660977844846381892244226018615073358503559108625837929511730763245669762949564445423437548364885996888547580562408455839444142201967521968035250339787787625084273869087101724414818815348736449683673792727453888282418221177233748986284716415040081437955614026376078003663082687082139054316547663763054704425243447722292680271470208761116255606945683845333289868151633060416459687331612650597604379598478592271913368094758731339281606286898614655376016476080345553718864964768405355787146614461133916127085808251625418519158934247462886593378612725427869486869470046274249218919619845241116711663112057304904762652563084045315593084297021629790100297612732066148766983765939790354325549068587510386296333564024091372746495637631788817481715797687735169015144995845306616370488574319122117060766289224306783107814402145881964782953143334749631840255107568560472510119347136050761500941108345302771795512224532380945767484490479266740162350950390523955807465980230391412757595240943734431676337121581692282024971109538668180288265009594517499450828756788756659611276697166303376142649117629272709531263689574828029310611779391134968818878611526430273441036778038671469715150427108572621227274985434387978911614572971353904579773592564931552313382659671790992896083645811347009221892300413084558210853011166579300425185736753947786526690665378163627847370713671316616142280775422550123603172991276165410092177805506697637006291250388186416588514000324443089204802894432330002956987586966682867837142650872586825406905528557680887466594127694360518302870642148335410852163957343871535825478164039209361057911850209212044989744349790447572943052385857847024013480683353716801432433036597149697573878226904227809174390123082421657082510188228631631962846369237788026505552131488902746606068355833919503688075909744265497389146850097550320713947338627057050984704478856548198392054775903709885429899828682937025471465964811765377603463146350077367258886824153957769672320490805247272700838593253683199928045426032756541614826510515161753781655434707796309053842964545100998520361918083428740569443678922369071390940155503396334313715790653685027319301593847271116998168315832924900788865752561161393909997353065742377906193072512314946048694798760145073586595484154417659821714387301634795432202093500426761447368213413051607786866554591662107329587226864283811235722610661591282508169587884799763548680446613598783717146660251691034204122717732902188391157454883160678160244652386290179588860574353354139046076551130992306208283062921676248626263583534479554325337408894945510342285535326601793196951681520094179046356055894658219173214923639405676424456493066332553226628945887496392562483115696196001628135873636465965191209133123478142159413121081872255185216571469655319056951174203071819235585307163926506326852660890748422558240900633379839365280400646383847234374853993678910758095715187648797344985815741484816658623530049236465626013274079836035009092983834024293417514455033611789460369660341629127789655055774318991554093821092122693188039994238165614044342196795182431057900158144444511281414191321222406581361900248443558350133638085862364730514242769397418415327645628942591961972778729870367775875102215644292215443556136724279417494305013605551331214522486856732922380062404547923008637138037823745954673148978871349134035081541464398491134684683192846080701957495842348844857320546919497498475079993946035304249026555243533518940741980216585294347982077283450992288881793885964530802878411809681162624165764407478407532758864585834556380931893547793838760840258933447023090522727732979680291024286498554584431855079676981654373181628716571677040615326769835139342448497148592890154064096321627960210144719180004171424833421791413995908111356057494015940006021576946141789399730352006760266025339953726653937354101701806614357897728363878768710554160226333612867456382926092444759956624238747439992611401539160936096444014586764209436087106022473933805590909346455324400275090187643301100149397159710018825999514532119611020982196465177137098054639545778361795429700163961314252095425442862277788083973709785565122093868356417472583079689448340571119946240257754685750939725510434519994343333065117833420582658782208806232662428216410126001679843350586757724249260933209589399107897560522223062238290257614749888083660944421733630249135884490969218770378299857125662689046431073869976653703636522759671388173673716718541473102882410436886418249045811660047696417025975319185216590934722779612463902985773737351773553957055997980536795830873180954209402269850134539392030672745230747953467794006748317787232979665760475427087987895673133471882820698560965252679861318964693060376878083970783258938883028476999707538177852057745672427722419132804491857434741205995463667767940352616297133620757186815017968587113439758707576575218893500436187213866812299742802155230743632216647814067665793438610727880356593882406023425914094788281279736652698181750980095579686834536921673953235383309407799355796033905716766404703110010087730778534505042225609378493299105193226357067602081729977674428673844683248267583594629291936737033907956476372333775919003722456441114606595115351312538175216482164993360989469246573994913454972445316500313957346466678200080493332506516762349244836917223193680982476681276376146659598754284662966940251993432279656933983248908416337642677581439781976810162574080720117576047113903631325566750776169478217159838662393037093921349819325908683169071655456679166487753938679979750296081311962983707095451521882052371244850865610090282599323669692364612544093284864820604279794845729617221042442392386893710243119534141325515764257583972552605171522381857631463452505435878655859448475752418814738938186744330996806316736671443865360956572421106405737275278095422280761418461887624587195946094198043700457586141104676743342503507441523578604431939967854701815240342142294738908455072259030143395833300661725046855016975244693641280524590259747934030866608461516137722968596329846276602056414242260408023039987368716346446592908611587765554291399806493449259472103759129922062588498210543070915498841813529465108805011232587178347846493273261261555378296908311138683709507250066092407950000616283606075575591195137191178773879471851923866146931819678239720242398186613559420973961303534833653096817360024507483462555385083554819377691657057277246234072460829650632564589220751683644946046037475437056261782354517857747076263948304186104228150893323697097082446399134480198780772628137450355987763819404876691467852012697041947797581308089222229134662118060162089668396044492948903478987245591835786636858489203294406947907159938930685484288167086252770159781748673434398315531358789606887311136999302992645088454806533245326497375873983457558255282900483092883968274945345721464047883766245161535301619818111512577432729838175869132523515943697604329835771219551125502160906039448348409039568313787096691219454924697542876993023655133120454080060831424024931973862942613073328421277483338338870215055231673178495734175816261814515735441274865677373762400690503942143630672001285606046941524762483007511732983969425975733050683451559224920669650535003813813695062801035710937390266527579537762117938973092665404072986855148072715272180676332638032831393006051537382989564432993600550339624494620209165606647098760227723933271540392405144220846117938092219436925524748014256987842827305422665649938383026816005462230711562571547051446771533852621963085277933940463245300323568442279313908503058345718130473002962456370129068781965784200613749897823703183674510837909166035149259224942330608953796537890278859932647390544646150872358285392309532344136253584091207216737822619989103702957727298438410975577808655458606197387868461224266726653408685877450410751829456695729057436010601824951301292591398783916025028417742716604301970920904745325158331256391064373309948385588478983050361868878767193849571885666374256560325129166142980649422052350088276404582845176194821689135064875714506434333029178568375011933362390854357594699388154253303147218353898143500076760952204422221538779916105587473659539018995431203802903523950727207710123905811869003297361576245331024743990388012254593569506724437830567131412462590560871583899953085535449244711312131001283216933801656668367408673897246203807601262755472154249359618545860643586663959058245670266007627852985707840682863738649153401877834961516356780958968698029793589511448789559516886165277423909150509599494804340036486888810045201752807430570012092294535352937848864867343874038682267812833442314487911345101719562239182584799198341412876063298125295150094333947965607137963970869373488824725479224969196920879321194763134474045916937879714175986084085993927964923085607449684548105646050580432682178162169670589242880232380079324812136577953765414863412600314290959080903522846146692472678723792370233995624795823705765502365738010584168056408779199998789596245756929815942055896440417107604909524238687619903658503286896314542899261798345564924407039227385993151349323453036733715772311625138618544969057980255211480346207556251774627407737477776341124957820825489564337644726381990223908265316532409674278154397497967566187587724748020487513455331433649544044764056216665217844710230034772377849630006503996349954591119671669319499226113656630191190358094500023387966653191936156175789634493163689785376212536367696742075025833048771300323669874856624395534612026996963913349470455574823517414944146451570472952136878759530409019252483502969997335375597222453800232340412554594420171245797791257740238971915691956025913640292958604515942784234352006982200145397948459488345680429384802410410010135018864316655224336436943907670325572317903313763666875673433691734715991969329240942393974564066836982311297895267543317105451585074056941454120836343672318149398521696969877466305000667515072605393724199381941309520640611426258253676068100078866489468457571772698419894318225973998409519876712568338443326521726691871337910265426302251609476359189648960802590686670104820674161644615103641884063759778796456488011500667750729825390978215892569207934297447774267798529262148247381472069061537711123728012074771166096408884375606528094310208864297059601301075354518609863383115194052044576584489910806024454012233394647000018208208908753581221234343107858286611164352481108521005073660073783400262264103720012563089467960209522151707028204508703719077890509994050779885216792466151682134015470633649077046961623621767016346347915246146552201560069701442727870200052280212280085125199154466199710858893466157946432090986556171952073790396551672412554240009633261994191549590925552231031837626792570538302801331617922675691119774222910116129708675989498889265824404929473995448309015379270455627461345242856548028002558213480182277824003832530244007034815424785977179361903765283731699126892220443852318568260742561608810190202840597106438769237012478099737112443618550083292256643861197461285661711179677238917958498257323482920780895752908878702665427183673698492372885916680912872813498362170393800092964157995112377570216677096444992973628386843332571120622459832602430343994765767172481803640723344271094803171356733400252777224305063509542372845550510615857996480253474557035472077013061105835605588476300007073327805439571920300994301167272165526737582744719327773159080877292676850614493616910392424370308648479875385922039616659120643676935131111589147899421552684648505911373649498178012455791495687816733144338132005221087563138974624941663815234223647094461776250762506874613606570760772019227297384648723618851993380243127335343434722893096371335464603810834312700674771157308253907410368929896055277643766715375564754984458702277636402999479670267443027661498016995764106535965183152114352344322689763626872847684943341799816957054636077870144425600100329763665804713532519982315562055145157334862322378376760853364745288396857645130352901842894651346325962082189137704644079691136566417785940617595399655813695569454119186592284025064920383748300997848639994545768742795408696473052082821016111891064544879466246641746585771964126316885501058955716497206428892172830649833808108036848649779246767728571566862701744517779055913126467093832547842089009039044791418426243190392664678362284224426229817663226282680535510458515198372700497598420830036775710528695368244171426117798206319518212967920514426550844300408409530505601810623403958081858547258717582324073104631009560683453471365588442732957785998115075587297463731039223909325111762097209750065984760245873910224601277972528676350247433439989061767761481956629311516994769576822664942516872664135397065880204908482046503509169396540695411520530391039791048440061140289484831770561840550003356615927253377906630637048298610730721517998944261230695075817903861859393967683419810659858740313238278272392973809337432258927242452546931846575991627302320958381804961316392203494208186288771724632468387408776407361101842232222677622679855683540282205029623824684820455732134300621580111146268962082861925126599766070422001535432314385243205964168737580203960009654009556562295593047614485819675717824049278446687093958324992118399359536073668739275827499808566952395322046229928517915148189689069212766644606479286734894081052668685711013678467518419942782362834140271218450246139219413337969966142095265179908417691064720076005189308072613985429406857830678548959990916227686885525866597846001864254466436927696095051810248409175061623589813631077068080285263405868783438453258614461702131331586514554217203087648391624062842643191789264048635433876793284211481516227357566336403224937653935050224898802676121719265346930435706657779616012884692899436647961839826400602609980226552546662583643287798150582948007522539527245625399571687426351271081601649728800151926368115999254418972776478615801922318993193100061191151252474883610896580901331856501620759972736296065895998563003704776330841977049828792095020309814675734173187994748447058402201229939309903370113140489618434320013620650103308470551919964812048494158968661730663106906340116712413571876655264135676225240881037577380843394694892589557227707933133822438276897067126804330716299608567016996742772368919647654532255587926582724691032125296776876135364131153134736819736214185532272093422700262993564808232121088518766314609854064723666229725834360291905349009253887588249417172648010055275578107767784288938561069043377413863369908397364401122709139319376798370957955212830632009289308399966876963719734679645214735373679250337883398673374199774470345486184912826617083287910691753193214882191625577770167523869626776940651963477604986059625145225907233912728241149137333391182906633229905331241737520735170413967251055809813431047550885858487497493223921152454203754394290929130059285339424228087656179082109510118663532243767938949614664499138183785629194849102431322312475272034064016195313182379715969995477208045901255804477414349443490512246074851600044125574275911356854551939133871384851988953274744761281625323750235580129603177785262237180479004880940758169148165482807732017308375431967701095117308201568986895745095397691242423850769987683990597463057092198057864028482583909578923262223017395850065753305223056087089565803777711748295405349742552027022293067858929158631459672259807315208497368453864424590393187153112167416231617441304329347879731100378275487440199253737341654174995738147507512064717133558129317334343274441889038769379564894716432869572645023075558855016238797378315518446155869136195593389733508310529352697687830365991978132835164990043313197879486561960255847753191869092629176586212266617389049517861379429016936480552721436797700295295705949767035600761610010747059357955884435198809086673658919062891192737812602967697829850131393751210173127192688730118073984260539058432057862208712916457524084027474138937896839261819163964536535482014218463089081960159493135325587229181122077318354594292513107329385536328232598923959483227300397165236846408279426705798066409751053776711036480926505409479490493165268269958089154344805403786142491531946062377429545847060602121510106312706649589346824399111891394743166493306098732178831985099378938759297603021451726660833300535288355021880216571340131786161516780888325963894877379734887503028982651032658430278228293005155807396897460594387657934615978750469881243760513707666856080279014158207542172204888489664810674802222928304673847199519679764747597466507446907415222870082796718213724860124355380778018143304166970891724253992028846874101269264459353589529792427989718024286557018938871032495553993299730149331755063649172657515169040161433085884864440419695850370416721284359257258651330031298488735791658333240752151415914504772024840396016621125894822963753849691776554117949281741766406524897050804485965382434663472841011036935110071186234635090616004633310164461032468416316584912050849147821600277607563877329802677783395501632748988763151694684602132714871322196873013134658154880918450509490478244502346724778160748975519064025759893177049023578457118777767223901168778441732816203859465499829268689816866147460633875728139495519002328260223058845122760535040445889459388648636248250799153941236030244454727190481405811734130511240683153397125670283444325185475670349661335317643563381540523645921964113745600984025691222007091201528892231604918814146742009873906853342900577922460164377574650955788697417540427258808138355232124087153216897740863186902810508489721902397827670751507346112478187550416069914483618622848405288352857555671965477820242360041340652833142187130205697165813782510125659064424399910643853782800698546456376285474934258620331112891282310610278357985292822929539911085799191099317934253039913330341961530203356864386288370594237884292807482346811816012230919976707225769547593976636457997135721021823339887649499932011091800781528176599145336459453807261002498150325240197047789389347242936257762142298349629512124161427747202238841659930219591753542908032910117073816046238020881523161208826604111226725566154392867251479124254028976406989368532747040637419345354585231062964126969761944419987584808654428258897472967840843902907198483754047844672039601454734158537763411866543331173334619255683872374628049454021682801010569893794382264431552483340277314571311744884744192267229921567373051745358294048112981667466711761836742002747157509027087091578677690446277572919132434998852920352383109412506310891801851470543154676799414567571883871181146533815168182268670386946454341539700654794916739175859449531367341850275918951727848541111548634045456508046858737243878905238757268374944771051509712331820826350114477604539275552895502115036379504315443068509083800046402719715938117677363367539054151883629040556552373225526989218646748431102791374237893462737095694684610302154218934484786516355579297416332087618301845134317230434562731648856251289506824536985784025752931292118999914296975167164488434766991961886879109190036469299453863163601895858750961672301566755234389387301316993226324381601219817358528956865682832497352705744700260242218090640993313629528904508636249540594594554624312539086197005053373943856683993299987625091033208695409326498549407612153807779797678457635703215980267608539382712791473072861665102197489748113789875240921535101027213731727440076859943295246382602654218746438785213257329186524654783307562301494205377873120159874629270316089156085782093265943824167793051842138858090430655872524823287962591430555942106032166668191979245981312536962651154515326913477265799575530400381852466720880195881033194167707679306809129871747038086497800171864725063890749880477983884778623366041017212617383752917114085870044054041412078202576750544753515429982617436558950368118014197879558049614679675882365916766214801072042190383804032385723043066734904138303642806992734690986485976800980981845736954411204984672293441252043221665492651223026530903442742487196539965878121607951671019793606458608177789721458932774683811678922680150277405527949383580406092499910790023759551982615386245661366818487631801522951904771686057539647151297129152780112759148500663022452624683615414918961121325903657573951982504570865455091869265817614893240647831230611525961417721067669756484883879855400512401016318689790782779582656688425595937826459567248341620883912150450759606774968631259974724204220088842913894428302932741087668711992985502003380641676898417474311493241644468337513869679038848143343177420918821216802388471922624282237549919358716474738504144031267854353456533269172987479107147419196446276926957786763987252201581299664604852811699894549653612608824821267616553700603759838379476682015628504241597275623770727015372603127748566289131360206675976948608947688900174738308449698555425113693074018626403990827234622362432245014343334493642823033214170976176873843193722362364010435832935757373021659082657406241016477532464276346391812148274706471678140726479653099378735061644638642912322552558127021532174205780751298239323448024780722596206487249464655168739622969914353663334807754868282242835337382181686000871480600369758423417978300617143920536042229391914569008821861190272881258615648788361406863723911045820920504177944745372110705913931489773046253660838096689367429532986788074477419451397360702879301548896977091801017644909251856702000844273984296608038795990123340311746155995059342144919092890021085855519845459751342816278152514598976714678462810988658461130154111705832549669798077877393607299302683411066925605583039950867777977881935095619390174914510213056758476701212335353139782842600273175008034922219652763436180922128319783478512548005022037773728482785321778925223061109244850386752848872036921839736095160239801720001432641026395617088433931419912845399872673703718764082749228510579579581517192712590517195112088838952726770714704371927829947283722875598016400428429985327827678997685322344799115427739084503242407461621832870200324557670518282499142253559111299611449885024067723984373574708237092649032624267261357704614940117300276862326700296424514149551033456686472233771084930610174046629774809348493181805066489019351339367590748080448628730438283422513778408964772019394629634438547203318821742227202085505403044697571891448904534918048987621421642744607719276683445333237002633158257296353822764530287649246371888121026194852299113365001726031846469223019268002809284790352271686982110744188555999653153160638903925054060996418643413878367557452931201467683271669382086386488760109396101505393511177108105042132480653882560408695643170220742941175095130154249764151268040932442851424907610505873026983003964486440487347536258333396892292986531894571459079620244385366065091432501400421576016554943244729248742284343119167538919970690161234198366833994247997573353282761632584657022985630204349358801728765710999680384858307843864372611532068614674318367712103322916466078190835642276737797508145658482453026602679795427492667818507689212402330602331268471585161769852144764522368375687321784104298152176918255423929562257817454842822144336653975835711709350532983443791853283673377792248320683933498249210632928633055585126490097547488853018757951197215177219172952181923501409347952356766506966440906157552880073376895818662083491937620421864436088290413731772095858332693252886608153432728253478573786622477270184792743272027874747804928736137212614514489287578041414427792776502390917581778908697909281452880416586762687040501731339686617335303535153040838538511404145063520450179624783004627438252987068898938028094358856710108258385270288568479930989579482979945918698930590541772933743767617417891651642663012730166493643836121806033412633114192374081521666892150152684255162822020589029841184740438617521188900985613391530381913395534672777364262731131466484482738793129630805380381187184355923773033995015659256987241952401706271085233116373833042575152690707108436501308147409333791423304160098064542590268929662501522497058838566057892431442727141218465743389404514912351410600105005484894001098957336971419407137006494048191875475793329738978181972892018840681152144287690798453230831072031033730840263529225515576156403141267953214061128091499476720429053298916197150789789939635676902653995541125570532523716330424481651768275658992191367245226954556691950846253108158269479337768019602806134875082482376166867264691227115694518592833183909912052980413785939216623049030122974858274148075431745453448089441950298158034824649351898247596721901453853409516073560137759877538670707707511226624763274015834560467218458550010667603454466928121599075778903193073630313224179509679159528691780535923981328904090634888535852394567727498968431029571049321944152111302445842829242638629399290183086124757155895850912883676614886391159502676456024688702530815650577437059159711034868216066649152271739444456996100124082793273085471362871130795479204556766119933180320550916718546806561433643061332069428325253077859999956405517992133688689166233311146784291237375741261003449643321153044859073052668408544269426404550485144242974866699491510794829505339747949944426879701358021171165614995071510280262643109150148661385644375214168463342725740574731117931859134142448847616864140890123021120907001484552089920450202426856311544307904660685344692166172422682184682204767692044401748328743452526918142804492459120260966749375628933320020821480314678054283164574759441642766268899361606823394246432605589780099159696607281403490266851165644913510410651893843461820510860748502212565562166613615119031041220199152203745205547589650041535450924139255741354065484234348963473576288062516533321663210770646541270511044466598850820349896466682614902598040313044188180202689511636848698404108585997220792439681222756243227293000904027239068821632031808886287071516952500287962726010390368448888300611121550299853044629417300557555622893107578611989863681496565326614279199504112746601731041726537271746808987369533516115770575356362951300112714498899521068564932854752788168245360259372195112940890264047789955974456047527121105707397570020361623466499680141984638532506173239524075880049520928225278407786729311802324684377996644321474216505985409995831550396995007928918557379890648778687207968779937392252521706632708660096460249206436174839139913401977742780923339210205689270338496587886548073922457506181213581879557631742912753046837736145539587676687111816962587771559742801098381020795278172114596828894573565445419879848430539068949613579470951871396307059790037036102332286469244787622401511266392905031088397236891918907597817355745546348958624744778299081219145749700444199626745120989822886048435757848441033849253290033341102485176022860253548090860380870954986876240929558668370670823209149490130205679544339332115311781336294363381996398335325456312774024894073468464405938649170953571247013558551479415693206100347270597120937669759640932742392170864808299313937413992056082536736742627096225689249888174785878258402729949785369507428267675756437354248960542681064556230518346082621170411517005789957597358739561140980733076401890736829737445406850781286919640727447649001264528336646451052026634123399229827604943575058246306713315828663996483738560128602128674740932855702712708352327996831413395876901098249384851562814795514816508245943652249512182159283736356110123758910845497901009116376746252531408524040086479337257135617434855200117906881983234625630057937171337853998123392826325191371343237488107901016698809822281059146876881035040357254321264880235292051337275473058546353440769807516742495252692948614149267521385883745331544951634040097390458492580969464502752714682585027189152758516184060649773606164593367774272651541129775304406127943478493578307869961570758354198887291436997099660381678138456361922374405757141017898063731543739542690064089057101973539898053518742030902569773170437744219771856143117976342788132455631295049543757622205004902359254753065157260240840600273043386739375248924112592433656199854863071187096359243336270126822354923437968436587953707787924284554762109882707746327765962699367704987256960036457014927232367445778005469772074686748863566660314551753388547321778597950646372508943488328535053454372279859287660346022494544326366436589122726984403720621050636493444855200061100575806181120913604618976034922570228793283622146709474403041295861209338661710881667439731576515269608839664558936448026173043825854727555763397628418965276653313573957637020208243271719916527586407702230553061511143704247617133951042464608169319370790275740490413756866602353966134934441217276480567683916546970735342494642061665067623484379011514058210631851990530418612107493915051221869704167075904773034818121707545891411892152934994654206318501537274021045826259839666177627803626344215259510430023477410455799102328447146726981838229888371087619113380055819504525540351619768222100402041093873306291581737014692417247725708225959172784139952414975251904623200946774553062817265417144607214029630182556330663962205796730816904827047808401257204605829272448689514572419782508567776048633531507176344534702323450328977219161216825716852932143397926351793451572234752785345889381140485892447933458629759306498626938252077977677331077276397885771956395535720951079718027862075394633319534577551285348567083852632182181076628025180582353411351549922852485089288265875790069248128811697594121524566118529454797091110458636852460654310400198868590860989325708409652402390783251347412150170725527342009713895557528477031738330005959819880189009934366164091668413755963352159224182028562228511009383215780149840277979409541967102263732983256405049216838492533798864957698110039199472334503593890302417053650934377269647130999096268463604580380401504337998417954071470163206576874836239778036835976126808841684673540590012030337306704373863047956402312001962428530199883546637012852517175324623088822106192080092724282399604528421080008999908724387434823338478569013487032238104652107516158942764472611121886058206020163236677898277948777705493150093819458818053347221303676233717643546123543515357824096055170143727312701111955217845194354594108240756843841089823015578817433211554119339119824099741869355425178808703812041122848814677350733424479278802894630793343524686693365338320842244494582429909808526882107015277759532795852375222172145617503181802578388306451590056273970803099475671068740622379869044572280101566184050872619737048824199746810832385402454596149622873185328065416325003148551019846277266509144169181830822148075268085846867973713007938413368974549463573615275731958291835137461794181592946040806456314363294757726144818346633396592116840847073169341450413128502483891741619702148101540293865627249217163430711414905138003321829132619205780071036903256615237900734466978236711285074692846357056360971309916757657500397694327966831212174358985453600628124907900948848716926677015883853981139645233960232414881875118598985611932763627631476446178682475598948838289584967674426060032709585802263784479065898111267605657956914930186158984820156288352545648285047438533426411353607711074606603095619196907335565428828123638847656257415774965118928808194503745276296511575823841723062470327540402763619927653634549886944406031316800894594566330675165415929333918907052907334866540092966309897350887093528567156030879385521917064326975763224199406253509337059277950565731268210256144242337168760156478915377376762656605993527357057408186615306391505164854925281413159564537443403079499788584601886244746739418548549622458458858038417742354946320816976508490993288941728520813205769445406225912715187056893417441476784675994958966625313060487005766082033822786045577363527448893241289432401488650422380707135425812425374471364534507078165802739466957251037605512845568816527967553871907137172068244277817580013489973966201235077241634741092164350264742985580930852985794261517761593280895337024875156904331812576450859262765682770118744482761409942951892249177359319027405948177579254777734472775533413334400204018164139451153444251869692298499754877491715807052536881829384120172542152127095760891648391834698526784153764959257838398261853420885161141291814341880723624379075488605191821509766610966620865898123523946972779499125718850893542923228226392495869265016412687312474656603133276460529912022909429061497454470768408219572775192124115797644932315959968982515944867113493278184356264087348930282043875223660590076890101965816881022206454470128360153118238688676914161864576168480272324511536170259876510231254838367554077390751626240223674178420868454374513942409405722941114028610709706479110314389295832347199057000448100276626915688809624629355975005773003568984045243209696424778763023261930280733193508206120848355050034071965051695643291970979417886916066210086701163643915738471513311743494084563517861440958287642386927807894550789281359932899569600616682925830400199569306135956338247377124270358954480807043950345412650521920280462437124932262675371755200234618216383047026310710857102208394169967925912610070225556967818318097115437423722927533799637970612856349720117609055583620926814873426037448184130489044490763747036415934748519329311529298488601891462173944827507808058131503572524256030680367648056268711929147622504963433679635179998961804544751586262625975435456688869628106338637196183695890566265018285948261662705975839240936414243788417879888104220157571342615116984064731141487953687751198513072901727804674908999708388062217813886920021588170335221856856927756450807158886649494229734795453607950940477033351594595368080401440676652668306324338078769574098051865263399275099004532671194517908527082317154211445055628299184596782499190588529401993477858773802687121436068409425836607394480698911016165487412254702256967710024993185670180148103887679790914569207125994975254106536695734751491108577936753257259884480201143416573882197054527398969132695511351070739302978729425733002547643752763523347008903304070143491296836211144981261146756422670080156643870497867449341186191301463586148561814951608944305925483743473928953378565411603018824014820750034564114774206413205455301208072916275618283917145486311073190989226490799715377166591630129610323348199478472433314939931704795474237576212682879940156566308883346175559777742482762820978342668613821140751264669399855811887310594517903563617155138539155423631839616114232504608404337013106370973800162978839669342912056799053827132280726698162658748462562517681773333276852407092698078589344478455737631420791836078596897293657951957583734207135828127088932727191646153257324711647927145055639687455216682232848539323689644989262793585095947950430655899327061864157363592293467443060889273747018407392185246777777333333261304517717981335172590948174991712039206414457922068083362243452757619870411710630778723940914651805867456053915389415550013349692009126253153127015681657195949619046864402735503560986716278953965307760153220912492359880333619975380822207803371833912726877809849972588683394878220139397397765217512014211498961051207555839238673738286313533785767602934410132937440241225301195344207906621046654266682225315692094041196368644493748059914729422223059966463576721405051339846708608539559996175758739244032724073639019576478185745413428361145674140646733583775832600925115908596295640193287546592392164740209766569100489406182676135929996114459285741707204487004257847764151095393777751196417018911832980068147807635350515685089551688565414227150915744154091332620811831693323756238153758438089243825915445232042598587369200174911203663456188380128600788812688665575595445053489452775288285700068435511661399564688342645143717316970056725215501301662876202462960469002907299684631552582938677326824462224598423794251046218349881222806097673453016449221747335514844524549171104098949820084199441005795315689283539194120347156673078924209199709573595583741193255690331515620847434016887919611420881460909245365951608969468253738429354816709684469477481367447195788184698800134068054987287607094795161676010952173181855991176431643789226232235086029830919983173530917536071712668929641109849942956517796936660646340029476133114828074928942416770342945263310096699285023435273552321341559462117244329350407006002733774182980235960239544369411357519319089794625444145120868879956339444316349345345259038972402802466266844951598846542213769708280075732550602623162167773562374847008008151395539372434103699105873624436255615559537782024262957039660121325833375833123866475329429161675264227074872323782013846743557803929463811362187844241090552407987870494271150406784461716554782701457386696805685053975564531902046799240735564833633690175732878286663318453298407545461427247514082484556062708239474283352897456917824894397745139439054109176801854084153108569040577077925833697426425106687353155298797155872959564087079866190331962575386017814849817138242706065984569993987336285464303850473959881623501662780267074307198500927102820493295763617158004672091906827152632425511516275319353104463150885201283118712962096121231008283295963929480525085666747733275191120728811758530867204196433361395619262742264104712352337829925819051725618416107599410891240173131386594431663094880606452275900406007351495455403899740747443919695627663941092983582082402881280996305561757816100394986240420511528154751226948599625486941457090498952712926268486616808512797157659946551073599569950730169650708779334432532717694925443972846183955277271235038494972428451512080676908198822379922053020717825485738933438358078347439267436752693553336171800283501443441355700599392628148715400950516638160199869807596445314388123758209679657873230239579462000247931482560428126513804490848623789583410574121417053239738271286675146510917803206281043433557875938846484074820418120478293542537826682394121673544843128835352561644818333522739509960028757083180538245627245791199870268391882196536628332390660875608027381746082075339885177195390676327645546298091004293570544397162789544347647983199165227926088052971165478332129770920948372481005537471072439379139785020023181623493825982159411497922301572461634026219204531861309793811557878300695983163289191659355409309286082711228965423087319514372188482562922921912529311352497748442967363711664269548449176663562725333476277712567234577114022533743655124460575649573867025591026880051245098601469702721373038503256219031561756105233558318829514137711838985130431867084954015839594585992237760388687378494700147626656910798969819139855470587253534129661615022260446074857036428721653314090555906829955288902357346971022722596420007843269994417733604301098965932092838800291997627515476290786356524376293082956100191339680860430734574345963245482809697603420925315868572126744185862772767521457259042454761406500227430766990138927383189316823371681402395364831553760643641536621685550885076069684700183290665973361750552421351152978120836238756500423162198654340125029611663583913610799009855415756569183054097887827436378071404183268085023843748202878993880593882499062236153849279624640585664365716148131816581894550838346464862059876776375341998819491942882638779767994332738812156680062051126637504143139023664111366054342970395402917747402431174663488899825751728111038026479272880295353165573927223540565109859820199162246675671789868229693868548238265854326874849323545811206273993809010682065189222182646712934752255890390909094207936052002584609527931920863958558423456478910909726672158135481407315011106279755141801074817506709585556646937758385678606192689590582787625196468261411587742424823450805690222619323489661628493366178816111129532555472588376597990837616826676086303058022520700685311403136036336840871549980571060811808754698161371134102415414102221516184387538421985640567773419836987079972975328499532315544322211378040951276825145451234132067635076221809003729543821028353996951353479848331704636367048584570909685153715625655813687124255990987263572720797212472222090534173426423115572149895282095494781647286759223742985645376088231293802168272972762048078264107673898927766137469233355489625684977429720703279490784890284398636271428571767365796906588541274931965083649592648750143757643363008672984969317151634733160882623640350737646258556706557537265817221523150232177036101726986628919409207817597933630337820977570508566219051412669438846501454504817575449027549904501579515349001785153910651196760247287034952340358885066137939701813082097639160529139844942791123691303449241709272214657419773757440858056240144511602318567328997292016712608776507158222471349392778340249913628990018991110889119952050034082060958844386793865496464595250355548528467137894938803754869581795085959068283613109041896018671106473493495513622267370006327451644672815931613978707415177394072467713232955765570241890536088666244958934702753017380496524762883296039171039380804893885177145398887304805723006004143120251371207630130713711262606406050383949841299865947791074828635989536504557491337830230979709536566486056330512146814804057082755514574361893486348386578928737033502462712183774725671726119583827440260306005424899538958745829612287378171237540098914181712059378150963564236594237037506814628356149106955812422879775128822050498946501286664183437506724386574432347840522360499149985944367029841250301308058431964721804960166348046573400425843503120994079835918355135154379740370403758167088252731494943636286519383102954318652767869495083626538997225658430726468140719695897000235825568042087314438305384400085674813162106367968002204893566352209382371826698623963749655283506738914095271855925220146712627824966456549842748291674908879865602115123266816633163386327739089176523958941441940748425108579688962287036285934022795598443094113152272013180699670755840608147812268982507481459819792983607607173945476372384868253122281983430763500979757317396394808907314445317703138992055067842175219816023911755673892096788688143122248564668688373193771802824593627184972258491229172647915268333174206562721170097788450047536165609707706983651767375050345028931564205796307645276325313018374280172881509525928320508359044174599141004299466860221521466787371439088406059842309823797239862726882572398967355536893587149766845825857887159346462466692958950747727788558181944959364904556074361803248815888901805212393409135848923926169654382139717122511151010602586141946495687679274572168035738927634558275474286964623084888989728952097414589860356016887080488448849948057482390956782071310097372495115507740183596928059600223233992435596641151409971690563204614328975817818827008744001831398128435497728923351005929106731559907512135052176557968529734300771635177184881240775936430492972920566702184032450084945832742904988523251416883346157386333714470363549771829458673580073475576193167973307245545151807179041669847061670544806272723064804632161167654132224769214394304799100208145738369880499824544927248462495562391749866441572095208984739190699659254331523257573974289142717509442550475451281884738834248938820138333360239130385466641956182636677697477582890319375634617801984536848662066974224750219432719488192552739274953534251452065166514275661773171670369616883222271646107549406540174359397304019353487636562457590263532523953254585184260655581047157290775582726247588019644372642892347972464268201695902867768251351128610316551074079747724692890960294325161987401687422992497763279606544397116753882209695304681904088206076754957617421468198195493314953832038038697048782403496379963538475383546823946722553310364761829704288547413062972911949512753380595323561989290291065286097650187217771663045633497575402981604471456692643570118966071447256098220937350993902376303383000931945224085393252666083870833720383506509794841589010857531120172364395602084834577706532518181644378837859134552257170114338227549156233644826643059382227338244980353764100167647372908638057514165366651909694840886739945992851149647192809107548131352953884192633088527837172823069981493280390309095324745414496342043681988987455010758423574354221313144458129934171484673441545158352382059463745778249931969103675436673586491166181419576592660733262897991784962968890137030047771556217914805915431054523086228914902402233914157557355730581042676711278429917233552652375888530358756049807537555637120072028473663452846410296591652065600925229419935925962359939626123316835205050372972321265655084907513765897517882418046044441263271809327000999334974204360863411181790954182774268482010905008659059358900753776109489417345470962418226621538828649179926054022356595283122126605473506397980922896782039041013232495092973394499529973973012582390345665605330946944044030451649371502925760211524055161922862704676978952732427867135900058632842510612256681877910388130892890427950967375771728180201538587431551723305020897382373123007737931825039176437750935058569706170926014416261049296360291406259727298802197057841635799211818723571912871087180459884093161315217144304228259664201752404694905086388612602207648411446972291762227043008887993904614402559210655828852751455226054332978644771948551888057438484616145123543532374356328285548662622859091607663063269747225047522941676202579501137993937535304732932855619383425872372799606238711771095201504899912885481395851860319417914694422904978480230161478937843107359557552777287718665360135095112428621636023060149302216785417655773389083302745857898963615951680610550321556805112171087645634097521717914701742746285717368107769153604855680859429914466759230524189157143053755583637974002563126063757320506072221045664494306122150868749245722768818928063546714247656815408221755935998924366799134614460670246380841712720114678019491328887398817531367046615755536531719469797003249348386381208516315687401561962711816601106221642285808819287407397227771162429352738277196950441589918080404767153618778875903566868729241277945373892237148851785541278541713168078432424473229334526678708177279795338966876154934183859075361674029946641832505963671381609821592790273649680030421694968106845167384053371875181055072713752944972929994991696918542296567184093333509894139352149809196674632495019288490373407575019126618554862898866952123986100294688228178269509200137706499205973621480765431748923561639677169508744298235401860328623110524454622560022607573381831326864053174745340370253837985774716918527199745650498761022400048657317672687174201347243546720386408319478124527693979862038113224123158315974579906413631154273704173771485076684382509773491240004043063003536686330930119387258056608954106870730708041169630502738900344694388360795740052178214886900215194501069745692466532605391196551528915248391352142682961524859970266391265060881261132592397778500720019651530569896025524318850193511691598470196186131491369055590998282821823170521506107334087654065362964983877800939762121899459713423311179003690488094049413937471587555112308939150455808912352200801788853585583226922554951318568343877823067254913422817426077267449099958347733069962397452340512208652785795224862921292771381145307404913333790705563632868306250297153295707725047691666120677487107639058907681853955189869755645333966045503257205374083368984436240329147366781690492767018367792458903801758421885660829583473214252910129583386885938441186459561028187839192001738424194460341977779351839899044231135409084688799302490361293369822237232813999711457804902112226412080290768232938022060425045151365312817620705522412275774971910852409737224021139282540265739230970164412085160035341744285788662080545976194042677337144882466121086987435459616681773298534641166401945785894049103424469650429827539618750225404636943546131657021968760951140509529448826229584654910371082666185857374424532882508705949710977135800692535289856908927733026117614737421680843680546902022688986100767767624173609555929221502372021536962869197808125595026792511753555551823348065528823534436702630551353245111745861788892515036539484257170528856285629330156439861528531889069757944804409075725790082750936663350430280837416116187695881877912425649048407494665638446247681498695299096366251211258956597074097152735300966565366024069712513209290283722796524095920766122551536155941035420062896254418671733556443241611006535676967918615841038513979594405224738040294547009318654367353838506532522743294076162625421267209299708700269845485772444775465583573619702597422719569934947872565202488072082921024327479286314526235874125279039025665465238857336664817244458838451839614608066755185680889550973781296088181305522073767049497943766314511098538500038906543935879739937703744045786452046114743815310005725456159740909694523618599011715259156452610891279044272167665470210996797509319058771763991164340987236669122832055285162937186323763815883247891092639087094295040843485301874955286118961978603141660240070837043251150531389538785909776843990678491758679822545185466267111999798340350518753384197664086030635015599508735921128213134374604511519404767672119216277706906935004087746239982395182286611509316139695405891240138684506714829910793957822206685275954127724235675609233026734861791898124823298808429976502575269214719962356962776223329991994897404970494455417422169686662062752627847647084769592410404310751051699883730089893734039001400000804496284514142052032990190661389940156979324810354329847176547864201848194450409565538752187535573613144100275671465872364654091628084048856314892908038574028903718019245918727375917122240576582304172360879048666892180514246777964567646933244126746541103167557697506817249911101884281457766719654537521116311425954772547065266684869248246866019589646934894815362406125374673437726902940122254439136552528996541480965207842787733930968628646678176592571492218691978005442665315488925787779682785642544158219847897807554808786780451661414827067751882464439953219888840980364988275428356344945559198965604648452715494885948390937620011769417419422623625763304182116598688928630877178795788196342563330281980263759371080420636233950628222194150519903858881064449749151104835738712501547595687715311508351360103321865260105882571939053723693396870071880045658208527650789447083956208776882209629598213719270168961810697935360850898847897730214103562452109467679324094061793527952413087726470214739411460283301996156769868402788595356685549825362933574497874093451623073486163115355076527328464918490012407769345844557895733769570881461379595836080761266000753395453066370022203444891881512831417717225716178703556711990994242499299062593291490107850344937892492707365571625638114150751295278833043838390309891044463669226823925246447483741919381156209032676268573073721341635132803316036443443101112247671086162139465386234910518703148718478666999810968334909199377238337604416914042755288642054689321388475946568029456847959332578928611636324968165302929660021889275609833976134082543716241292555694330371096288616535036717440693100902203740479049233057765820636490366942990808281878512441932753599371381348970659409773774828278991536961231880864045810017708799608283814570938937055773473618098091550678167962087272370209242323595954372586978798968998477626788021701066624492055645828652053255332161186828785881088234960805865362987434115794562408539852694484844956789834443777310921928035423045529175773731365281879120684363682256651342232388002400740096660922710088595256089617725068352748996081342080536347942016730228950793834532624653482364447959978523719980932828541953245028480706248282512582164139402385411035563666842733841594020514918433527579837275953949849502066705937868830293398065850847604969042449424485948818858564632239700331098764444026529421452875221683510838541046489482691649283722116951815083554549737498305263566331958992645846568834490284932436312315544625868669571867039547352352610963783407798059844316540394600280517140465992714459828802894047546809843510633985443605013670107458385908760672488867570759765544734572331685517492139052349946236836406569063815799057172827662785048334657940584482834761770191614978844737350549341366157471774291422740817121724274684241279552048005982960809632106093993672622239525537653824611854081954302939307547117159041189746128037237775778923078236851109613493070228758346522098098553484013751688900760897621827743604963046199829023779893879864766315058370433618753384828135074873923226059639018326513012119537522490616378621220186429172528802447794144915657588011012512418394960042936108930300039121937637546961397796991952293237774452191179111414525920196615445805765170777461742036361989339494868550729457174318717253644812347054760050846120951308258696758996793419371658884699974764822868298476462725339745094883356406818347055298249939412516936506624042464606830690138172342932773282262258804008728928488334160919713472024154862748959125896721409326274225562563981750159103115972150738095636316489144038352960614616314489245532026167580262857190284691354081940643087644579570446880963917342656626966469807261453400647560078858304490620889350639908292940767127353671352996542000116338161731721699167584204496276675047121391743935448082139729996511829867193005014501063642518764980491393623697171529861928023997548523659168617865171659867554444560685559390716589069175525188130723638386288443741167453534723798162309335205276214872826699548955345670953235635994451407172826868036112742711101760683103324305749434889088682986033903727670186747020936463646591333577849584773557725488367141420944283457130536303159109735322768767919831590661713821289055102198170842418593685653647100598063114131716050444041049308334436290671260570436707342062236921684490070233239336764279787620752588024529694587510864490813098302879340609666934006434884022241704652068352911104747101794066702771694734442870920797520757080642527716567424255510928872330443298979984345656636735820393806288821386603767084478106146000812560723354436193114235449015115381368629484821649214323957247469109978942461026105394591022205041529627942730789608997736732561704457845654142768370064306117137723929137190574610532989947867300371085289980829567804583070046124524174364513361949448997024992964393832437304902929417651719377249676463454687274081482118337847543661275255776631423259854033752616257630531361865997560219587327228816786114791904489333128612197488658237706107334507376017513356114627252535148488092115761220092202680265607257154813466028819966078938968327150452281352221941353553139476864696520942745156576309162597953728569423999089586061216912072851169456517765623918278953722056548452930533094934481386295592911412918311602379598209986009293931781929183727586927742650063881522949627731365561909193782597894444800594207215473802446035545361108366463507642489264411001093850377728810764490555235145803353320780110156407667270077813441283195531682965009718712469242116183131686999105839110249425986355957791183538525070803772404684330572550303648000303757896006444638587372282379933392978896700915848582786980143644330629271736126729693470379665995080911621930373484841651007720082272054651858622239178850401464406749132235690003595056775973528861518455313328292047551748711780481700849328286561736302405507351883084781090693990174952089009676177216677801438682806846637815766112081300546366891510741581811058204817588196689096368309264281158033653068753376608804871037818757179810113943463878169937164971825037112352157114755232083029939193334853644596297427282885843140435825243381194286757474343856139663139375002992177694625447105656528686061785117928749958883139872146987951360279334937250307258724555600895494357175865291413114551007400650594906171643825863084380170401604618614335817173423648496335365759003073207269862531170010516695058881386876274278171553849766224837874522432385531610699164250746682314299261140932410869307215345858656291727533365685285220256147974897168040352026184645780720488444936965097721565368967809186327786962727951573231612438038695227494509852675932202771026239468715798079621573258324409774426030799081408952787911632655471558407822842386648263267363740217303291120688736980046860311529084355987171120607620932096888268717871553572571247714074422872552406385891837407392974027676682620978123605045045513642337536727432845884949885408288259231359563275605523288340833551158988930471126736987261911599871375882208568480575127954022176500453676293982011933958839725939159924605504365468447661798509406984885491863260947844033822060696925438023651858745212521647647709383761089591404186959754116465879070867607829347334464270888661738065304770360664481580137364281563792416009602958442750837886899568059409541252171918151206300785741333385965601916489939648532623759821636542673988036439848299171579498661667605868901120619428944615300937161448721394976983443012045079215012305654557759862802903982692157801034992880174948236493922399995314005678260633550400011307546337120306307086262282633243499183590477206994182928000894575206714823291191663284367822883630176080169478559008086798031346047782128222609299401923921712166989063443726333423716437424979606155043732823849751335864446109507410373394456617505400362338064528585137523817361412637507045974173848881824340854028894080151158881018132449363283094967095789281518845037589874896497017514629135246472790092462431651704068329311495632166204633722470714454111110684375694215271880818673233925125518141250708099854795079042262193015876108296889177244128156217082566678374754395151458294188410678801549423070759577840935351729670855732794419234291844800866764317061495943642833865106883464872718566302565479965650079552853298387479013523847026809916859222857097626320993545179825337190083376771415735154526226990205163146355206299590896470350448789035724085057817972357853241187844171364828107227778048158283942880909148841225697791793600580897154626590872834872578007465389510145346004381785410742899065433425981525990927665572082224223638245854505088437000445263428404483489403750816265238589939715771343227148659775949071070278819057144093920096899809424882328803724468836343901264487570342646036461178146651026512523101099625765435150222258391524428740175254991153236613586626633067200946048124245354533821569755477676530471670126014933759569551181291835297812023543248542590972384005118805034972818134893569650182580071495659398180980164193640186905742935152989462943395879100953090287184455667840417893378998300420504412835694266617115167235071195506077153497533953967734393279362003034261535783600006821084109834154007678257513429279006795073299047031653765656601819416566543078883038235266187134008731258199866496607083387317957183820124843931648894904813033779565399922194715954626721489600593937698103670096197241778155075766432962182477839409183470775639602992353326711284139003105262353525600853871326946694721156238643532442838943770868532937880391814379036513540887833219173404797919036012452942779117715944730981723167427709217597517258278067700537762086092173998735557570261397129265937366820511341741829131158433270312670186561879878203543734082194261305501372956753429673017806814876577219754288756015518543715621291008320708370579050197515846486493991447093067426971220786890716714861643460198184260373053018006065615330918491115281183245388107318582447960914282318422701919812654901953189813520235128374754624789694329767835954169161747080867452527836788649343882121793380843521950030130743539895724348824251413223275539928347050374310300325601020794766976906040683399138819655756644069784131214003830954896999207600861723269720650055376079006514501088482352977303819408891250969794284736347739050738413340358078237553921521301688475766154859836838326593497382319371404804337296117952811595363947998544206359627317118270062236433796770047019077180386422439996974609724375916461048029784666324765362794581196267016077674167758689236519133644235935744906274272214562920440090517216653881476961863461595344997194984933520688908765263308995904778754566576225898858820950380199618938699086351918583053628154098319498687023863844799374573727168008307513428948744175705377243251435896387395250142950081727618246000736362508972875334083566161520433622829586842410548866515460029850739238646385603694930731917414818194539819976091187531964629447505779976378323250749134426696213930096525509086353479797047266059393693327036503344211476439632438765943821629841566805534753991516467477226818065959470470179078738580006075732220335096691202118650307475316062714015833434283099651746603161216654780294419869950797362956303153836290109027538116116567684029607124412370941299367164583662788541516703481874774724721586967928103339735939365154331625853138455314770862832219769698471561095273823537126769025550884813829910964941663316908968124908867904106890602681778415667348099802415690780257483146014121345444712603185576510819657669684778879726742998019447972903207013981093342895718404352910794597276794500680559012871714876526214263141859881938076926400415345207089155337267134188247050555709929046959120661267791673349295376564904152734127790089691899217917781557021931754467907919347016870349303877906626374119547671158432452509119588700416800650905938625515133988248820734520575569356596377102473553426635572784835912362442428326596851839338843163311331219700440170334664594615542839367881791421414331748385824136470329208474572199454736483669879798111621982550067658838561417304956062427420751227816038818106771483058228205640454503896426611699914140876682175078607500632941180213074287125544427316470667412392482088110821551667825549871590162473144579122348663911426693718435623793500525595770699443934670634464611135712840634425456995272895426515166336077020227095799882835492343435016421212277647067764640806316553872843512950057161501882525672113935273141230097602118494935719884800518352544859459839067581093487559666489472059351553561861104387643882728355928372005196006970314569224795568429824641403590284948171385700625275130036788367567566236371596669964093430806415148143715666533795181927922188287514081430362611264313943530625407102542700924471268110599212298982803024052051215679659948325496030051525204375998090468762503275775053603007736415902211553597631785604290148816632535473860158906990479339917358335873135447325747048368889586711109133408784924254809868060256055816312430306479653530881225032142393587339827689694356567363786465728528595086166270417592146980849231139254235310631780098650139095090483104933318550918499368299306812323640631288808957366899979503333439036324816239491122348862697183817212152712838951948511466573608245946986537968722870945261074896771735194343838204478976168121430768018287799174705013354655187394804676477240735506702648805500519194545203850811473929590090614143952994706156898665246625142623197387684381339083776873513668953640438516645431178470209199026474512018218458116463565145993124597575864134509115593340390089355694557060832632077452444385098329476418106516431857912285245753972741756501862969039383130676652891979527176445480121348680935919001391869391072429202662092631229836615668852888204871057521922212931338332903819719861749457293437577350294027521130895432173584132819547607378395009189879216961276018441211621175181003029229977329585660409007003789921488648276338796120115445855219852884351402024622650838509255017383819289979490206227946793325484196832359094569268315029718674314499052581643294748799151153143759822349673276319836116063454137529713668003713661615245140798606714267952649769895064879718591978441804229224712116722528141923106534638695296264305633862003021676878758992446387725613527161361780935432613966368912669359304082390742821907021568562934800228068793541706178116504235678939322304307885196457745745749693495192238745848445745865389203687790709420719589807062589952679081091617350371186206415418229439044829851717943494864545042513824730560981514794956962921688952339676384244294266242071477872936743484773694412492029309671494792087191792289000505761888739501218737667743393461983438942774334991482719872310067315924394865121115338621057927146249945264159970042385226292178534129160631631686188578132180312821076225060055936786836870653196076929533868961022012209992657515966500849527720195595142282665662307216879681348609445868767298982545437183021145725632151041757966663702371692107809929688266858041570072983947494639871128486285416871920150257733379302241703367004375529424355996353862532837324573529188392972570678972708006638214444917745022846907972251575248619489539460991834479114822482140928744972532590167021019431388879910320929846973268847306248552513178675113591649082965117998732496222423503228667337726857741093120916023917013128988522935400337943044596828050931659040127978852846676805462274796594378214663362391727179110001769706041473321574187431722551129573412400948287649543851522374469811122115536951477370850693844221331618409307314024984705631725832948843151489337814844352880086812163635406251195563369302816788105423241395231645427568583268768829613881083206423682282339998273556800869239110198921970974707942007849865574107422848226649548349959094130844073032827277417082367217727973615502443372053794288751311442130095116203477223931738938270578107920598707992864724381674289959333404872507484830991412945566686349353152415847293386375724180866052786584506387239072086791773632814837668271699574332561209038277083173512826785465546259927298835833234388834917596699306532637901462998021910449088631530331362191201197204628741839864880150266262413638403910109566554861911795263291636979193745618359266994034782039418840742194104706915063199112243551464600246469059596158870134285493665280744899235433173839991335755702148702999361281077868208518275926714599957730626717675182785730797814795914509216898258434565014118515184033038600178118514899616062107858218173979893281061790425344929477974033176662083651912990910348516630429227058008145052047607815730894484026745523610869702891514567875478072719189332215080246672718909842407024112361702380948907042068795804969732679601986448002029347779765870381879080739152203136899805691857070649073339952840590785898268475586168677789160543001077431948582104104440598834831299368184162217960417285987862152527515068221655771661068241437602689275716135454754844022786656152126646968734487995795405897164455184007546190827552926964174984207659402259097013759062016441358427142947487074639289716011306356411483178670649132562756733374291089622146024381150987426273184290691417238710290552573513067758191409378832582013072180118056010905156181348126474545354586195681584292089719431621499734162858347980943111723550660952044510307673318047672122070463910846533240273160797319758631875369853479788911116322354912034876957781072860364418015424767512232669332251229298797437016979384550105156442509296916400405577206678434458278256028151044757939680885099246408358709479652985018071654445871613809069659229957303552711668916562011871832489139612066715794915751350596257295664076906972964291714910408168021719659926235162472720798183913259903554800091470839778599153261833976743792458834303586178334505390430636183264103345811430159221788812998828876736105445890922133858715351148747693961017509075719597243191427637184695209218960490054517476162472783795738668179056872207676102804263470202765754939543608868990616322756459122312901221288862296989604842375528284850266561273989814322649970600702068246947457542489003778547956757315688879385541001716260147437298580077180258243900201366873014565382820644988722989060791343766133143703772772726238389506377742934205747377385563666494738657675317733506690892817254607885270219117216590493697752555276147585376593442324622174560732110460423760492444465360213116797059477835985398211731300325760910701438662247666868536016574697238138581136164410209969215133029292151110592650736504744284530953639978887260918241453556643435663352804221740440975601321822646038945826196819354193498305688232550853785860424578666280115878359528738097908222504832267731212100282373578578880466829136409149622549525744480244740042176988624409085592729674490720581316968165134733346595787766055248863515372497078084443500288253468870918113280578087981944539581219948338195316956784087327763715563776307943519122828210398767724995066531872779180663898210263895980930734104218896100680089971058502834533213578982361155500703167814975339442431572387261055219088237702889349918484191431467260756486448721109312257608837349441067600610134085093294717400701932753228937588530079538333069585594189553456292164052005236822379911274316095452708442296110649508190577088763898662497468371355425501752238533981003581346198028148397410271870559638154450747679631597233755819320017584492028539293351174038588482506605995621301305726353352720904161791692568378475513196475044032206311603862044647169478901329489476259529978263403301903361855560095817964200493271491171704089971104516712148007543337297600184406192418559632455599817980075824603499904534828663980956939703402611147137449804522606116486199600952948810215360826822196928124896738395162521861137274787262052556561186383463573288123557190991575429944344388956765653260552713476720625973696926363798358602477328528976255724682129714712777795345740451997490146275018878598866079663309755143937525747658313409689520966085561172953471246937220544126053002783416780897198632226110264704858483703621324916865236500619903903186725285641198204061241170726077783706915013708851663908129509116416152084101480266993805041684773314744574328759792846227840793539580580691418103004807230440110280324634645447977072665543051774917755004413270419855558905072992144173380090121368929806257452570884255630250929930928006754480440737666825933335716914155783962479320541582606846361657152834904757013990695562510773598926646702469677246140311129240908775084313498133681610391344585300540616627001049733550359503196130720470242274057080767946977264693360202911517607018494496462502909249323580353932344739588543098850843608396529873475157857575199620798390113377511955141996546495984514358951889914812735889522688577767958740699059030030862978534278800350006191357889097241092614694127857946585138009103662401689047187650362842441042492171556310426213143871435126359088852568201395192775681356607232825977126293051921656228097156298083559154856862404297465484822229866279943259025287471633798647562770489134613276824396711068847158066712307969692675665744497022105969634413469912056644960520838265923912201480599043496151814048414439495165817267130590493693296678664061333502364981693811117086730051843172596472595651442212180038973054438988854819928198332407076322006936855298215241099412466755056399323179313851787983333352178143841949094017700169152900425040023233212262482778924737523205621867957548732225380648571568019904324784713504279134367118527714202433540598107096794268711715719443666535367093682166212678048440277987117429555026204981443750678989000987780935502500325569957031896980024321441604346128487787867734257185597472136376382129015050274951898424674237990583337507142112418142384753134541589834649419883043050608842074704838508809759009357082198750380709454535564195399611515696775387792818322434378785830610390952279716282267904603473248523201919637941624965825326171850407144429127213900137770941689123957106445920479929374004417072928433533785548608909213747706213145645658620863507364044572314028459117941706946114998645807872601212854379261148094310362570903429618588153150644110750802472834087343232169229774549598003355549155999104558341497820585530262588869368214366520482870749170445078637330891685982554113749700591868515246158149350186122358639921431634739615524028598499281158844189208521549890389800610003766317810406998566560230529635573462560544895259514572684260060823202226047992399607773861715269294268836307315342334987369898627646044986865149973223452064799434069509992164976391746375983933095715644645737646106535302879649140949151047841787370311578752058971398671699715514211958398261228171842890723017335399654369880124794456562271126897827311717392087602852625256734997733198037597145224994017831723013998989541891490876767198998718027753978966320048930577954081394988172957509702710476461709283673546442147562555402844194178649163281879142180292969335378444551512988690223230916531222158781553384493655429636680198121903366008242647082939298386615187508193998817486748070620043085438078629907466134089880404014535196688435068230544013300564330844308181175105217588378555885155488451965069364710645856565904072072996813501739422583877136143095226347956709372414162592199338973160313830261257425626595638061892565791660965413487406514901275770779262045854610473395445715281594117493297276905174503949478422224565762760207656979876795064988644652686163846873606199224437114723589957506333781131716215389959752425825939208080096198056039508096378031452054318429135284273838015303486628738792046805167972439837972423522141031482705404646073321193152900293674078894144670124664923461853795738443909570620045210865503322146066752447897501759383561781730546361933139923591880967040001711994936124505800457696785456447075576825233353532038508201525439551534164030780141312164924527138731301676165645660909299640203596457937647654593117320140807228584670636975700838175051636358939819310099838607564223104904476327789585321240130735485288074505379514801579425695727719854295408629511697439210743247900870357250680793757367104786026322416298290526878343949066009196768153837824337825966267333914049879112285586120596717757352212975111130013552856311308980328904546555168807053935949601017406024690074637895821931138922870123864123384653943161407666261010893519932238959204128827820666344851456930271472261072228937082253778733038136474491390524374900122291668458779777153879703759623491251242413778013500124740017867482384947164141884617577508039265972296502066831392276667546436577809348227523152696804411053858845934981059561814448802401305012916565168326385095342823953254536781640721315972041208260256600954177233585281953020372854160938973476089219387871185081337970738116568404394161462949003183596863080406269504141583242729563406506767801764822956031427318284937681500432051920085771202252842702532144004178989575018168332135239566503161722350761073616854702918402872223590405756645893659941803460656589263789252008449669726811621087261288639785919784955362775541079572394054825770287328240628019358631839355478112753624132465389720110395751889671108661642947536587487187254661384764044312508004690994031023569545711659617575715697463600448054708967701670432156388932288352100306031278506309715938774493052960007680169699707781530625218914361146114112199833455487420840987770693142286597369965255833369954934878447896931501512937061555257081003717705586272055914661599330259982482213198883440863172109675050862049440314520771117031599069295505078334656859200369285428589308263577441950544486183200865764084796345943495661477126502857631827597400514674929232428455208557589331989322543808258977586656750141814162506786322725883166556694812500686289735322285285680157361085663589987215390722019715914902363807106680629721552421478360486617551764399291477906071594644271852218358824957479314764618326378709914867395446539948697710566013231455871806424887858335080573659581268126777096490035687831593459983938820235054797533139657426130155943977889661973555176599616947449708774633955070966041820691318462301129753074347320705669841745911522264823834683542385722125425345205980189176544914928780540549195562056797891082623869056008313906157221981531579706512637155971008388009960015785120481055859344715941839378175629215772199503152987334337023619297005990311452778784482623477610230927334221902189171384922559382964575031920084845778914600322014317668300298198235365466268369199735439434277332655120083527017958533384438339747326456876332823399510598614056867115924271310497381335974058135603851820338337220495367242433925802743329405405398941353619746787350198344058776124951914602985873992305272744118222410703712497893238317494150235587829153649397619352144019911050080052092569592394568630985152799292849338999994265069909710401703238007886444309018154638350364161860227950799506142240438462677954685979147413005128552305661958985910707110355505979662171655136827886391808978194356320847598165284498532012983974703279497063003413995931565514490237561311169484561493139519023642561136543494966864000398895511424044013469639356139968212797910505405927068063439694370046897048437078844431043189441909153090093551015089384584963458094706478261312956746513898698572179798004117761910653310538393755385925505699952909599965173305319930825254635187052789778840196902871992854928963237088422651736043915769384231906268793833345410724063082231280938697831591460879254082738096538209042228484715477257675730724887395851603760283732380202824420128979422844119331091375343331926026847375725899588441893103662477934080447400022107400908979341094660754671100651905939812008354697511256168507136298827710360896360677722791914882884057283394239527503557841951943391868660519922720013494870601606541949525040119576753038184012802753837310630575980498965752705391678654896162773181240834906753498854576587029284176825865065394897681784371663140161780962351454571155674003182736452329264544467597638085173585065438553793515677615357406946424691615143765414953399913460939143751847526238462527209057652306144922958754499425444834879953960017327013515484572175742307474630662915361869614729447100306615270900071094939320029357363795889329110019984240288564077142241374179619854465376216256680482653400598509483464763827229007129459284165738516075160069185883604107964926377964858348450314165472266493175638931545143196607143520522111421133363233010081577447686234146583078906233059394932153446527071437968705099902478503121666150358698742769233775264873487520047679177676590941957407139629895770665594707722396064530635873484122546803330259045979654009138112624354365305620956755906407663753834313161699792792678281304420842558303160423040328744113874634946475866127350617473181549155158499922305306545436927227824943091308530245464900010422548798258336290449942398026221838614905792539155113008131861081820864618968192723773389734183855581282068028795407221340604153407045881650937256127400221236602667560498598680440981088589545089325077267913420773629925251467265812237402419228447819267261249140808210266514375109958523285031628629218428390817813174669141181352748040054352900025306295400137553140586408038799036652507218290486924065415771154471572829192925205311859067753565964768344854119494195433398392406335134329666909079899826692760383222411754106588377855730011538697927509257973810831951386513271571428254403992844278726582901116499888396466045650939388462432425419186342408528209118688576088629588583608406346014274650888348203883209865057520672442290048924497086158914159331005115997379768879881015027870492633988815989547682850599764871026277617834935883547666835296275327843810938117540785416154362405116372545117357096999773044600247933911235886908113424432740466331363508018376978021921004955504806178161878226835627407750530543985001122231518615869948846869728091957550015585915502079998217514505255626522674426475431701912070771039228576548359605563073615398598661608162401484481394554389713835072568488660656242388921250850141895118511548029904637118826758034619993406030709685200425597062343582095172906485608748441702370101595458605740070429862420069539020190492774134641329712123422391035604328899320624172081849212425009927736923708614641452328027779119489681789133440855152002472642616687686865695682409623605047333430253774166284097823396229257315943020243891568592993333443815523389831772464166675559399183852952157412570912593004069407516366246401117949305775565832334110152658862000000441118492677206808322910894250830056048165856168528769788266183000844721061101982386753226102451285891421179091690987399880875424714988399858127101606782463812608109183907627611225262518015675864602486879852404805770070702350390876611789321146053127439587866199052241003009341597966357938468260626729553104899289843256811761605873799262125382845826313340545915908361834924825784439776548255168408390749938859024203897945608860351394207657221037629508997275406346450146465600181396366200744165605435553500209064367256921420730212941761533291451468614782807064712503598134012577567530752771701003173949747541033655989638634761262539127652198731550841724022860570927022204237099802749581607143944548646750699278352434332290289552736808786970522345685053452107265012291436699653063341968517349112976305073605295238260416855195632012028568951160415186330939864698810609107250466971509271390346326133611054914650818579814651454583118233108050461821126170455764329628393096072954027032347660140494955057118841989576256098614819224764324999737393547943712325141882988020960642583816029367175192674204604867410590552315031971158006298132940246124249422323781927989056033047845823824690996231327333429065582377862074368481234066047917594736661944234773097981196524359209316550710822172488602147199866380481796294812879657104871264927649265815134844504267363973481155641450994181478251918083495395818716853710080917362976488291661301430219083934595773080984040646787281730832213327872060142930024686199201973197130065120710291343222134406934347365317345429038864730497170077069658925989101921955133404785410007572370906529134604642080720228383663950934930365783041420901417341629907472871701396004919646162270020202278707595057897194167617879763640750232027152871198118371584102306760319258529899148223609550581245089541585625263622162353840296831579013394352666938966986427179735314475724499123148119747934995533410504024515640002869720525726978821425931572838735806502667485440292214314217739388215941185072368935179234056446102342926157804259803460623715018179006390163631238000610277804970046444970003865761554722685092818237655434086121766024806337761400846112639917316599477265070781912556236602867680380225963019171530608773372930258967367166654235927601365948206539308121151313270588063128687378091008065541523638893407659331724969955602561246697610806651554584956273212049688569545971058074715196291977168723658778535350732499130883727923219574745546001212909723256956255263172338359211063605708720623169707096017603383672551798226329674384362041971115995208420896955264950867763513247926677344603516854577493963619336653522529819352507165836977310725610588304101115662870693553860961708167719839056940850809237839318417873959388334686046554562638498070351167915792777274083764525184659569184175436097038853056476966358074674960731968239447522422321277305531218531632344672118059430393952291418263426853079651961711674615868381168873105594083180891680851487793377372880471897799663178264272801055958120951172142039324717141236948828989573688352853927480697260311866969456956085952707335892539937931645785102871405376583330510910454578826712741196205470317101160921054322061684517350333237203221299750699392336543419693118226115199062168742187892918317829686912092754264671610024496468992701947809339644837576246031890241004632311074666661979994791803724626781623757479200889151264609540259145440104555688132320577257001758892552272718264598193049173329755730285792008770548600416880555666675167721525311691526128233631805622392982148768286255421086574975536985628222528144255204667558751445512665120521355565709444308653394052030859961333617040991785436323605117182091396197728161886225249825879314792990214683104879632339194650159972564835176108019085309821731130698788260850794192402186474949089573914464351177699221979411673450680638428958356381550611595950436047871640153628896154463718353787987632788121252680948163172709921172040501294547656303840531698525519960718289130453542932311820261761882005939111546512202724765759125381896110360831901711734782489977154367439213849028453024236482933680241673202184953868261187241431953683151921087632041932045522825267142671945694001021539185801285837362347582238356647991054745886459577974883536148974081596779596546575142549349159476681671119455763037171647640576483589047468290318371697267535878963514106974150406381215782457778334598022283034468698191268413071016162892671031194341533139484231362837420556357942718731690176748173484064292051971655887146666503163992210964456781724822977240655495504361796156279540634566357205461871732483819808004682461109429535963265470800955443547345609832669604090140803849953376730123417123175591052421045785008050042642822823787515691248557781222031671412863608486048037401981311886506609407196265680945613668936467785512976732061359123087988205215540233489371740793501875447764491466071744133123589346127301802125845348090851239209396279483231943749094640603705422444383393407822080092085048888812580154099900790804380891470537814690024571381999277079106627856120971846149718575148042661634245609415972064176275648042372807888893142118854534671361801870246379993532988601284260190836221005977434371873147850696081363159005645119337685910852779680519419446323719028655802980114449378716198799745023337300346958909389779558096321545002939259519504312131052169698614385465116368088038883078693275823156073286293004795250657871509914825978987969635179546715140073578095839861532009031269189119823020460792873180608358237674294080379497499826849862353337582498919853738044166682135188003233457471286127434942582606874291117897772828653359504714407606685982147195800038217464476062056964496492918304558813919230851892947471899458862536680196263216147352728469564088139477621527834998945223538057225007605746770481627093166993922108744371209820166330468816997921188197457594265267322001464046921497596441766636487466883812170643664147688840197920075116363559750709479776777583602492125891265137650694266579624054086505804798597325513823511070630955173824732905042455520902390079291136494629030877315272513498006654745286154139014723930740095819677391325357843962335697660965619692181239112144308286009826347197010281795935512060318187735174966832040481635223150226805380228638981410647219288037131480426931783927898321927616433746690598953417444599415394889628822071726035794500709050449948786313944415240680700302047123485215245934257622850925779388718562663490853517979721150334551097418773957794367806709109293419447141058297660938779751697785300505457248467657760403214452210133178569183286550861705309521959351464706452521374631986321181381854103435619162286612891262431091939009688395097545544791966335034521858455075890985037328170316810121560012691175617139136553912416336449609625502526943137795882021700009429609452000801625817844700812698034358820621998205727581206370483465839204125743164034574573505932042144860672797630952006118199950934382309003455201054380143546116915917019454957702564414140839854135796311581472164474319468816667095298192718439830200077926882351780682939790837486293984350049808055990852460634510416368067472928067425827673853495463758746562098214003972640894913223940485621292660601299702372986645366478260816169591424078549760631220572163653056951516790495003378437318447839662825066292553060175909149148876119412851716093915012154473655036701762138770935614251311121411841082210101860427726873580317509664361260459210068218630871767352535843688919368099849427598389720411299275974116814836485921038511799593849415637310314466010806392771268838437208034968853130913978252060720876018485393677987132729172041665550164292739352068656292806370204348590899370391315207859475488296115884481241913707361652899885002182397377373466533713097401789799120588486740140622035547786002861292239196160226989591508510979236193980981795351878664991342144433727467148169849496602114718940998760243274121423427066542634897871486691167907452446875742466512420350408498190473530716834087756438879681915635961258022863542355342945655652093826322752768994135446790745662402387615422749055303529495891552056118941485821296734209081386888112261515271695850300565326992924207603084129524324595497326836265373506917510050405279649696119392938820533509132637592082415273084972479231133728208381663634208224036341254813879663488633829147933907578304659820820936339129373911025308338862679806543913063656665518512265834775493073803361021085180263820596161247380742145508868305720860359178301469327435197008854287811801896521396718557654270271470411782564281351080605861511849636231401470659332666054648663336612031474082989810295826774737951558728756195430545591113506057376018818595739985438893403931066251896445157366824334758816407473993056667337382321641044617774156304932508468095092118786661568614586443306252993517113510577739540819758856369268417131934290612965452936413745450616088658784988093866010547430195898980638242578898532945402702364355155925356883096232027505485587663884721875558779816555708074065417450906781955118948475853910098645267522928240564975538423266210840808687234063607285505050630951139347270605996541807501478921137022389285289968881356823892090021809076737442987902478577034547216673130754949513402551825449023467434062811567085203198716524161241818553397182870931822121321652259419142226598789362309268311442551951763593474977625227928499777745858515636996517937089389078160070876928363620019146964433936786481535299010110770798987063239675118274278443171395919831643829035912189365007537108835799408777424873546794615500246840681976678757077628822469677941513329902193525919356485127213079283367024043282149645389529764695401630503527059098914253833543854076912045169529428197820743698080239065353725193844453913135944322979748483912219715516193387396601381827189493838285023562080483622019101223597652444830858161788928171152218681908865506845268832615138756752904258459488499802291265051403957581660803186459975145025876236469152374222793467694489225040031721029006372193738102493393195063497412801247438762340504527014283418069867939415599794909697635706691048384766615783480800010969718114493795907777002861207556033060518533218352899196556058130460317269996241834651028270035296851843752533506316619798423315109432335591642696583471371628003586561471406677441656982410567479117308382804099129791811271047366127557301004988554514995204254616819649836821081186047371332342995718133396846481115556159362991355044208104012736943440862951710988934298402736690832178203459786213438478819194894533576435249683759842952388074540091168581011448674090322982362997375021414069665959570733859899670173381589051921047296398811493051192539142844499206568318281992054570456975177723779274310016214016216127026651774394176291054528756301804507835015537665045844400520674247313056324886861405152851152663299464097166929121967230781520022739109531602535220298897303059792350625582255260334234110258285542109229755416197353357545555148648188764775020357374546126636988089612992306223275262124965089805959371290460793880524627314277941743417765738163201894395397911878721624026422869940850205609418751004682281601303698313405264673430458522454764683331734920390155887686065915966985943343738934247882337291692968895982635793882831569538560443102897598936362220134228903169239395103419821156369889948204368530001532213665244872905536614226339890775951424241312510525751473763929540382935951369778762777944015149478727974820418379411651212608658145748684954249342946261822158684104312272444500641825631768827545552899531158825306883825245197061804534811519723147131279480990248880795381808972837452288118522039278258746595608841646283768312275207590848824020989567789356094798180740870973524635674094082971011023688073665488584476413188241256802136144208312877234849418164053443119562569599668391074247854555100698470061843229291597536145504941353019210686912843464295804703005026434944927254233703127362854627735428724200974971827246445534614455484315325594082168438809217211766060361916129767644953680283645888668287061752033066300181478504774896323507984837110480465248061453568211154700256575485985524276344222526498424488539636223966392865887907155735669209937869341752694130467581137076947786958838091650199184269399377980935411004215226738864173103217621703363300177260074028771733018071197863775264479941754316359607579332848931430657937986843661713828383278009269085036502860464665179490223513629952264921781142923085253467595280257670555689469421149893724264349358391257314392824766308649634527669699352736105346764449325408685348129651679528569993797408600983255136400123002717687927208787687513595908858319852124616589695905309281434962672981698508905448052370776636481332676231076252192527149270586671240451363310470453482327958613581094831502191660729127242935553136913270827870363553484052740193315369031272607228763882971095069565761746912404300819018085187325708367970783597662469724831302032955230542444869108617309501888466736133233579230203626015072890389959782735789564623983160750335786506703245292417512994041795818067867591058079438747646174482630584418033160325284731090702522476963373803910338650542090795727410991982227051793653824849593612987541937978239418226332713046673229823024445725580517572363992290290142917350739840779134935245909711001034091318043226170001943741403305580561495938624731667865102807395714979079131660798155227528686712306438600319036819329884566951779052530789736884507561850490505882824084758183961303691167330495541865997690737838670273309260307824569912584715798184962036702118104295655929611074719564620687121732716340536221955564252012442724105476967978322556904684888320431886242784090233226188795214980234732594512620184966767719582111685767610260246117975603731742589831530211223369815570551932669991673426424163544944412655001229296021954130624918411867314301628854279740435458011480423951660380796243937737823806582977004421851626295542955514615025350907714780235804557418345804992432346769486972242508381822818895459596653825577363532030124753632335490276288037980011301251430960074884229536451609150352133729167624080115706895466227269965388688911679557958131032190437957206177194456946220760083160759739175779562605328248896716607746976441658362155196613414507441301150317956640146299885692440510688606990062852762565997181327682127003971423540781501196690304803951590755013505329931912346904527275468923324324431806415532056149273062010410573949866649232331934078559146216687533690017390997114807693732774836872490563008865622720960749482921802652357155929848400459694372197510055836099408508358429797391067529499232422468917187106556179761575665697692185207449336951143865852868417131775925027105126595640831049251510880428059652309297549183686536646110462341220582575796187051747684907628753617509482042407162544089429500594866364908752567283467225140996413721170548486816729173172715762831320696495916544223586396811173081652333450486555761526116990825399382625719480431966380422093561225585538118788541827831816738269924236822958947263456247965119768448449068627145207454792648125125953229261234480413697841136449373838953602965443876488001909805927577226017556146103785832578025168016132429160176433043244034048050977254575927139255997819011971890480518118265054235318290200435382454813053821855411448427541886039971984967566497588245114440910257260716617827930533618690119993306603146732387997773067487075726185239243414315888911851864386572436828970031204287819863391597335966547715188556468738178538813143168667351996193121313913438022174034611646717502085809574419130659674165115636340369811402570191813667120415012037743922420088480401303978400810336261024922003522911699961900736714163415980299137018778385840888835226725647154949655307272925733041798550650844040932897682262661299727507731134547422881723238722400929812049005459915224489973229372773865388148349030307352452537359450595836938525510243398278166189298782765628019894220084107788157260825722762178897663261455059221753920230545815370607193054610111845825991828986316648257725635598330255625189213335594329472199601973486150537965166717539951839065288002700903218289969969426541219974047948662650104072790002285826778498961662037873468699317463137372161080597068177910821247727940913607351770924274579569562910263290930477026019411276401014543260176596202370722560097292904115822491236715427868724229361150601597236966757204818527546780360328386943772301239646155451973578493155183156856893351138519658778761918048416302601313912732445237413094067423472111316070399699204542559633890651265248952922507776803289481718016213201643276816924166531504837831286685661493392321875644594210191174769716184756835627957445813908238676994970147402130255021682073519003348550324743652017297690836489351347941545206213359927217610230519264340033315163959082783270000174679195936137845726127999508300917158770756972306018488287727807876637672575542498836914624563664660088776808019586901171687046406704444183243487462598844390509420817625939373597445887942142070951793179203017270721937105789784371347585503135005174436875341687113716570498776842825545521579771010546192666036066912627419554027173452885843035054507261916376147253231259140284573444910061151001235709583921448167188585590195104053411696100352254554582204302898887510220199728684737345966768870299961227633728663756317978243162384590876721276619078697196137535799820217956075999010704600387956654050957031578738187119783147082768936256084863938364420378017786315989239943049632363530643919915368042993913987758795830555834508822905802847922523378081093584971001041308285556210238919990759335926152913305142164610392297014246123147083508860138517458169589557264033384979278004273135108542597442265813409120468324897969341563874176804307581168513305601061203806618006466035110133068079711177733054755465813205941748224683668577731977949145469989662425777626188432243832709673353235002054952179492311981334537785022316969167835979076709314038741984915952503064357496913156646550594481955194222195545538917751980809818727612753493845105433307107874909845043618728064667265758503816182128676434027643929740751856537143308978338750883143157519520452036281523657976024610537657688841007506298169197488184841744458963725684916343793852792196017712535301360724132975001332849721410597348108186419796378452152744518284607482094529965331819416446901184434879122130503045568319491521928596823790361969043758156648857284363908714984222023283799216608204890490584922761555810923047579758065819543095174936457841500126139868507076558612151035318868446793732542322198835766357554420293547645103035896135818424491214897534904197049838277958055179194498757741998924660344237382135192419477103299080649317152916309532742644307971895253952167579044484696270515317977664621339963376707192841711948986310857647196643019870878119854165788952993979087863144893864298429176296643156731238879739969988696102533559630583271223379486787607237301352726613864079344894633615967133192187628358377324908717541685223377088302982230810312315052519299709724963690228832056626342886603989456253527643816740902211224012168370906114812916562232671465829460543996393644838112023202559738336611706698438640050745928425565773063149523972085618681320808101459509386127327117668251685443543345283688380779909006540773085433472345652999025933667083477224342519962293748507426272985533470636740669025739071030337945051178323135838884136556901720000190628209115090884210077798896811401388822371941111826916259449863432078622668298361926597049454421500654151864759972705669001958738988128135061135762054144136602842712590718616489894386404559098313376274662328880023117178386511528246478836470846282618523239960481142157819640601741614603504399952052570618473745559365506972553691295114348469964103357841400170858485596557760987772391004892425643297150504144039803250200310978025162771630779306329552762256286523125733913224155968854586471392891724428232296463280997260790881025047719174056354622407656660775036455300243430749583731441206895549078545470141905088977777685062860095893129976447479565942081623658620571000917653400409425438283965892491821987908773264349659486575753164691042324854873267152692314391915431924415158265832412117510553332700945566788961262403664442966195506600549124796639334062103534656880873251183712304087618160712464063290935802453663962180016710274997098605783516503882218640677844847075460998877053988919044197794839088779793229511213097217509429250178354881845357793257528154168362030659079768757438258304416309905404400760336178635739026071168217474295738564985673328003107781667838856818614812724035668548551326214829540159066658907488672126593005767096386830289388459560869252358104090451242227428559629721325513190244675704676688687802102513869674586050686236206506166558949825736982260174788232625592061467977622743319606628540604465725129426658357486143454712655134130083913175795031801685499612990119076555914230341662426947893126962152824731134849030135590578028754968320686081896438533546368988394061924014518098155577085359086084832109810975599119528090123118403822954980618688955225899216135404072657598351770553388932205956170954821263233664482190218331861995118994228148858245224262077428457491456412190295241771522051245770956076573782837352824298687777985365653046776987630817003119049296461934670563572154648029753640034803934322532413652559642112190635105216417126577562095526501516919843690530209704630466357944769429037055648411642163403979463615994260968553745981841435997501261354605385706486118054284949181171644578824291059785673862689292191473026080657285691683468784207293695720225905279126412312525400581416210222500128452028361003899795038698429701563563195290625487331094826878311289452923346316708973986234126175085276732938598794190495446726354064044017768405426742648865476336288765422003894812824367909406825859041549999205290389961795912801592847525790226974998817806846238527236678584153319192405728880678605450571650220326396411391616489556822963367027449671500885672187716764172834327671998278956001123602469296215568079134469790639044566579800018418437017651217645067355306553535918722433842662993306301514952057379810072680647089938833650295358228913090740708881013193178463831278957995113104723721593208892589659376491718029663166268884499350215625662975370976448381560632568917723534607237823093137851034984473256459176449971096587474451533873056772905899821511328193761055632395443856976759125586965518851754036188349663686540835687120993829361321591588528849271005860413734025632379072494688163656945264668087192636311611742136874451376417264429807342372938068739557989763272432111097467225520455436990126193090120562829589576598500461389328260860135659442205889136727765249803592075176037935767729295560446161820032225985787594676121134746698310180358729074607267407063946916701354812737217228972802530987748136309850418421458730664703150312283034367445102825519311533773642270214819637558376297977715116054792350510173540841813423887388532959281809536220401230987336225960381391818103974481965991282885102955724131238152561100211977551879868696242081708635664702428150772737216771624181798326856327351914042328455549602876527324542033923798741615024922723556376087032782280330949043704267890643315956506905125306848404017302986338465222006388238019548007502497208211255985704580847406567226740741123559601252600059386460051339402643802996878828817815887078528687189477095261751699904293566247904447450473358264893397190212935859200229309258131336084956866987998032329213336190699869642696796841734540838565788895807527378506768993906351335937092110462190065728223153925895703165094250970509004741827771727864418097674980920666232259559836307006967887496438866686051552926704070913969267710150948082410811479054964160921846402306783714799583548747201669989552726728175052199492563141574846401446519601499223008167146197009261031077858561989739366702570877194326218791376394482768768621841027097456877906946747003631695008062659482326709796636116103345334339121276418781420031503912265433351162567604438544033159343448896629580037036000762010410947441273787202357237922720507077756972755277702160120024759635440463753480338322962814198158247006536756053423729564312396325672159613958024307324904605371056940352037217855431008565108870226345920090195958720577991747658804778517622138063699992039783020627331862556675827268747795354417943026546345249928609850546067872256491305543555527505485801354665185123087290659431605072764824240844937520727336843129681406779974808147202457351791308745967585694193280492781886869063456276361981140576274700091453598706329868272577836583098039162253137682660173959833620313576175588379579762573895379306961091024549178373703830324074671115096660785804446643549214313027350199795462905775499677020483241815523174562818653508817254988419688724154294850586118334128878762059279820335743819405803062558897415915453564180984642438317830653357566558166764569942188882115206566421024018949886507232071566749036970153524723783338994424088402843706343189149963890000423561364998573190639918579224632085312281883542456655785558815141398933670827936307064771622804957603444869330833568884975898294497337357442473011474246681259435929573517552203407811845207066827715141891582278911937274552547674464596662571894268798037978737890344510987634082735773243668642283213515957376731602811957653766455061573859249277104385145376700188400417316811001359044664940159830356746594824136693568969542598097487708341369210601922789130817985995172839865459573202547913257660630476248547027359496139176141653207102180169335749665372071331946703462737055827859847067353923612669049961184013762028275278570491357318989078240912915758061047297104649041277926609892190862042314734314231568559863692841375148192070092788537241955443703706574110708966897049260782582240947644250196239736953877701589031124527619014613580546182930060464965673053489538924564785315566961655181908425119069630287526272182164951074673908429853624219438534906126468659215502174252008804868792965067286357403176922843234110780700932839046459315101444954022733582846914265150308301100824246553800403482232002694491368258769110784682012390271475210730019114129343146560724373376677592000616977636996967253412475066869458949015238058510115351605929495631484709492418696938930381509120928678634599498391968953207125652550647169075628512671912159754663520895785106294828949760221980908459617014215029192633862271914273833044175788820535315334628425677917395789019520581316164044570124684661093845140529441431096521457066403967516012911052700171786423196794191750947862310201747682252173050675503496699612951797707488765232479070668614603174619029134120190528221301550492831023924313597200969467105548465634146662619508432478311389721309569611294182819902808924569944054972791033254150771596859327049384171846868095617323054803739996491778848553812840222760000938003575609006641554137577730395818836422378565092342355459673257421979494521803338434792279516161276069008487376270562492032835813114184904829580362840335680702885481758201817119914254878886623715882182931534670295607157909540136259883857759996190847550912119790250185284175653086560722045882022364296048240049191873871235735618606484723315414685586997914661207624350774254970741959060256020065601105309036378479162634336717035902917178916109540848438855402184865418187556427343353145364231556881871444543872963781807277784449115102331780138940779422197104252414285098766091005753772656114791635329227780318949985908874260736125935883037891071108524555289008499756826275907194503898556191594462446365609166671067791782884246256096670436195661354994590488443169744849923365847726934916757101883802236765463064935872603744492344726547704616579261124161397184272650931237410690076421372285619065264967180717952069091805364676655990679010695021704146815459506312372260516056579597705628985912627732642791125508148466486370242892605666139717711237631251781401786319365559895214250739450544327418520875723114350449429887633367703537037243337190976777140855122932563672661751200242960454940125485177776881809548103966245944792024953871385010794670826866172207786940834878512880869019573962756518590651907151223344567246840851073097620311056460024564489503964545604614658613490783570737504575860546890957739855259582146646568382101459365858710231037604690387210441600891097100999952209681334478616545661199305570896472823429539985129473842621521753435975251241606964052685425323927595990549406609204551484273473076496755369184063933944326564608626058039808714824474286830633892162689800990034746960437788568243259437273377721695899088118167784365441085406856616123825740392536107969702252986234226217215429192470520739193832998796642244394677024584798954566999567781431037420366775299058580560956226214916090115841392208807249066169906629470501077002498527901141758462476013517862403060123892676593142359257909321664868793643665452653680843013725293820198770326219509710975204194758364464701146784928696651941576928259650764150135503590102351940447480666452858250086750973326216106269711045659817184546619132720516793575748093094467222213170676428865785225660115802899843280488690921504919455668182203745723858217665730731236535178356110649636964899545454203068941958708800488482471227654078308894210368353786285332298033054759938757411339651394332328310760254218544401395697541788874979712922547669613216253024733130362383182530140551712812457945762223574496350174685576260679531304407406438025059071461556714951692655752909104702506216339707543473112710997034646429383996624222446683802084599809321353057770676069574347143537301628056617436303739251790496717778794084383741546824985866498210135355501851182511170142707457479497672030920717216191441292168805335599377138379419987990553114333059287699889145100407325220710037196923111189595248919735050610868666649448183856821701330932965942602886646231291795231836662115978677512473779309212203125226349209536808285949923066451181573794991016821215439970476836834274343490492552308312228449100420627899359573862908018586261546622529020821770107147796685647540353642037134583698922206427636056184051036590592219543025660364175521488920493366663729740426112350341383847666142535853406208471882114716179066235905743913500808754878950261363694443082177933296722049974712253689334536099535937105936986630868419998546975180762506118064145256574494486465707933767092002206320065368245933081546846957576710165067384631960032777516779035521649577431879044560039875197435940290702110790703904227282076860056997648430020432645992413272519136721209310245250759088068841477713326460959965643034554433104520125588737721532437640045836667827840127660468802320617330426839371761052213780420099851282853568505476095110064081455191899562434970294004118976158353367261521872652406300770785839095300235134151455972885448309640636690384217720272439770723577212815687496120332334014661524074888672311803369575361275798027075086709522989030105265987009695521459327502333838466290545866162032877501569683905709785068777965159093293799243653391293832580357500268919721890228211223593144183774532335401619764199210712860148313669117315793132411891580230106937074681200041452849896469098008380549093128144366664608352524196374521365000768719530934232867999350952610349027196245837667349032247641187601763919925654060736432248860187484494275020132116045014069312091202298335029763115834110539047022918504221478623377646504540649660379682888195068417290195767854520925272683763598434317625336388325923861123236095358060231397781085450922210628104334410558706195053731500152286163671611021204931095245598555720908612024867172705394298822321292636665144577125356736053304711323763183894195365889728685177002402769873586783549984178766978974380070686327616752391402301636576757021062162137521631794066416544558479182115456862170155500921687152513469676986629656931068161437499561847071799774572913881406850895421380697418204548720492405114965561341745200497770226123944542681753147814807183644554890687418701940718301061164622487496415065518657856559231185523400564785299678334410083963617623751039311448800768085671747959214749924957818121768037095164233849521388739940241061694450247329540906380390862595787166328189110006197970958330205164318751878774787429059333456916831477431109310995055369163587149767175831341864504388468949320073578515705793223874512768527921362139762876900702468033281217669859496006598738091232513187102049505768743005779755760889973567779621601180533856517989513070239306667247523677106373681104284649881329718255031678252371588528056350802706319787600499086555298346105009504877239232996515451456025509923875298101093377655237342349594436413720859455274061343055671045167417965786471815151681953954302600308363756381244506835835183673753156128476685898306410715579008727181294416553476707887518064906848965758607183139482375946738519376005833976129281334585660440797733716762854077954276052631117765022283266257864387881192667599822035066876726296662359542871241583017771572881681881189921439189538278850510319365453915556980884325979120057985731426759050163705960554886388831287651458360319518436154289862053983410526575615332677089223876043107950413715539575382350959258485268971061823441992585359323689543520478998784520017067125334324933238729412487320367750568771029468319346619068358181041216332098653897094031549676048780632805657838142969193952260383582956215810880913033622864461924818034929099041542952549881862102083431126063686158493289698290349209144410721919373218464283322177562384454370607173845059515598018232511388765231745276427453875763180049985161796678852075823048136585927120789578909944939194957251094108410686268710425488476076850787336278351909606752135579156870716835978275522082143713050261719613229148571349362121081431594478339918661797400638581883266017753188080553312595803055799468177393678017508617081175382241246578902929396954887816784054354291889908028337771172749307994603126604718779488893787857865323594558726284856282500078571139316419897458118877423447323937336378314002797458891728012002189820388024401101417603704993017571366278221358178698686715859407923819854845473751855791497825358195589511603062599677414932091647098700148120971936083081846961613979115285475576806732605706817417135154650522166981262749468796730285889079902488305405117587814067400822998454843503604122313535529528510266045539212679286845469956991265664236400439290233996714766301584328724829375777324938848180699505731723252398291441644885626955020005148080956890514355985150404228238024629176034344551166567942037059611393479948814606299762477116671138180524963188477705655448077614727354384484038123556876073125816921550609009679721311299893728310384463402740509650967330795379107982667778801968153711121689966345014943573072325678114549129881202320873117495143213063096331454084166457625344754771944507218245906582267719635815108257727856401994231395163994228804655774868354541808674900879913478928906346633960676501896356392507487646026782928313988310040350216266086135292925762473185459325238672318888927780264380491376320631490848612581400742494515130260438867136795331908504253893332880595035276364834191248597330995632730764020978478638009543718715113799815072292023021581137434120647670189867483044822481395592496670220518143485662193013069805726063207388248721480729121729073165819859417592502983273281137944607874918669507700555604980458178085523550092473635564696628131894394677243412725545552329620533639939038682561482137535292155440450999888393613377894881617600492190328070647897106509584530648014507696736516219235062364388935663354774054614551891330015695839741239233639836288527861530257098681397111801858706973798697995596760545363405361579621903060774274510706491097436615498346023971033872951618064044618203211268710942436020556718125934666685534586128223953879747738192341668853623762455139171874391858147507911444945434344450895981915432373333018925071226284520896007184481705035752153350728262420989785371186310710211940767994653325494524117810256138031386881501755600959318521170762911395648775471405479120863115436613106165475805100999248186207313070151161094767397603555933684841697692351498837596277025717908229426978328052394274559092246266854376906800030817731024204669372909928998562118276476114561213198889073332460530980311597023691961595658488628661528065209226989826705340445045422412888635879992261552701890900073195977449424269682617584648080144879041157936612825854521805586455197955947764242764558010030586445074138449996410686955416083560720197825187894730291969818511374217507335705251118678836546247683871176290415316167094543242257698577491906551896089253255547141379586291342751220238935257135997758790371057992068340821342157484132740964739083301493582309206927086623315345758050280186142124653796409247757080345432356667473214012996082113345004482947533593096735048620470105754262541024410586389302058178493014471777740642857370687227544567689775398196384956424527578207299740856054717349463154490193427956063352632438417457785745651533931919218785785392892646401477420115163447487842124858126109796058668315123619086029842217991094970100428699411250963937081210027313897783859736682119617680072137030050556353142531397797973815215297134651985704092211346996063454067865510377728586441375875186868127176336383054389269673691728402939951735294604797325168775433848198352801437030389745351744913386705960412192815891272464478120012951386041484848959303164853609480194121262872959043158043567226066668318290279542894413158192883412523254364656767483462816857029674450101583899470449833728911994885211065778691216890903345756689761516995899311037305849126496696778745600686474710693263454044966800469568139123280570670752393479935118622624821127730701621446752806908639223850412698230369960648066713923069976111353693875665876654444634448368367126125559122808221507551227828433139533192771577916135197094583373563748115043601418541717159407754199789436789271123820468702042037841304274890087902220996891032908268084248502509509489293264972504037762401116454155952800087434004889663066614922439504462804455530996359466348140119077180032606783582563710477978807796009950960447529197393526398502886788629405873703220653448390760370229757843329038846107696633742748006515465999739134708788364878199906646633350986239697492231186095826354145668128324129001903818278415465294695432535671263802797326667995876706834546298703362275573098421657077293303721656990764310197263219416111553494109203130819018877257011431797159886039377805884582082570850340679129637488244455685042177974676309002311781656135806451284409298157869263981680523850191902438038920738062325061074100396159334485422950317090581410819661944580460794475252228045294776507983653745299605768402376569102442624883175809055337333922298017499503670705703652126647584882864465472454591542139846210859477609512279280967834106334551367189669055515208195183680345680844170842951326014439770239316828005176357806487810558510468993818573879837821768047662880836522406478712677308050277578541004350415359153358798352476579474612408632928746168084704933341904039984599130050813642731759473330561704749652388269379310475803562676200406984918869811975527629185646066630139136981240511302868825774025132642136200721021118951716254793631265389520437204589869098524441536688461411241004065433742467018742507747105891981807835196179160310347482601874166394800545810652707651139159201455860194080023696770114277858407794774370819413068499362522576427983983313803243845040533601162933472569189033960548887755231393808572405812416739486550093374370448530413294530622101490730724479121307412023871651236043299729385245694602825224761872220470729053240865278439400277158268870086003425558548293673294064186845130815978626673102728604960812820018947453242611498582113796158782802311215244211645543193956108598791027448839619585970272799046866258669079734856449502974736282300707539113011290337858068652806421178537860436120754938330547295699488213173842514358692817294601029741731654699532486456334603259091637908370058918800471926940026543165705229180634140219057181619644883724249172084030207196479489832162730895891419623635661499426823543810499835496583801174328214966375453547288546597832293564842601167695496010806713548748360041527829593301726716517342276559862037621892453368495643424431577135903164195294107411440822762724613390079238758683159739758830366219301294369087689969067180675582009218840627386879388068864641641105985372143337756346384585313317269836610518460958761001604780981314138766269053626177810007683428827857514064129515894420055097543713162881776584515688280113260656378073605147363106694526312711370749963476482444200162200852549163620705619080266797362713736207315489680635800910412619406628548354851191734542045831089018085292168290330095081968167508731730143288427057937241738863265321100323963917686582585503477280592694566179337881399728143777744049942796196268553632100463476442363487098561167588510330920523269175017988197068861984141982075327431811575372848816101993513530048838010882205320406044841966864028230461972818503656670762450962892880464917804291770546619255710919680563986005925549074511169085865562351321100806444235649827614688238628962126748472968067848635700869158710579248708343930145898930806527036548788773004968693236847034085120202222177146388806215549390043729247741433984749316144141260705467089043923073196918314749697290200587167210063173253880984638918607222370832358338424655223983707017487411009690403442010389327856894259054247015275050415723772955847830209766183999784880871524826707536857413007628863063658204516554591059001925335440861349361818690270567814707562955353167245930337503371626143449689596072957472483136865133723061246400271370507267427106058948880441057841076730678843196953851378929076745513728054235473828153185075194037708026206810267432878668331974773581688088208607587178070967881645781792261491383511045294577328047044220199962685478400676075738894824516916685055525847067247022628062439988317071024902071693275205408131435441481327033285466832401855464520684407445138263184764470608071826524284708613911394366920265602033121819106428781444867635730318311711322964362208842201413220843131394198318391693036998331935071178299257163285894391529943692246824588527094261713567582856609425961319585931097204423687545506305787017437948493981657321153522572744044769841993625491328617421001119377778595384715098789830861386700497973294266233934282275178975931799199366803166649318025022977444848117591757020595988112270768755695957771509436937006551606417840238281345444796035065799918383386554565685692934331035217481523735379113268013179574169733088012521393619182891272094092606467159373010639134737133254219550220911006455114774221681650882743900092646559179532298293390690330226425344364726043866434826361271215497272082002990321330609959994183046658019019863405922096987444593524379941910168002023821276832949669841047883904337970299241488856858240236541530514735515837792714777877140733263434261103073230981120692074086271648764893046543363127171818891190612491641155628148688769352909065524646010038193886707813143542534547985367370539075121023649867440118662324083099060750240769556312862258957358672127042080164325841821587786364502377078619743309762129597626013912011104502114424073913266615300628340862422537832853501647534147032657644105301784169754033127544533500196776194093378774137591339266667718834418267297290581541042968240732364303662649046127511021781833814852008466192153522733186392980822386468272382900757167114280890977192112882855296821843408044256386391084295150450561493078593931401485323716121986237556073186702028644424986317736745443075344993723721515327625422397126719988430311123334850925467163525250394873782092145836597016025163850445779289630450653537635339253920134485087572469324481329009846206226398053873791862703603113893476134549491002102611783225588572867605654628319438592563589717916411640389630721756429829226566642698219579637403993328419645582440798317724393372733660782038146248036284736893242808411837846381463273300124672814845137531720246248978229131330825112159359949186386145715872291908401160839933946226182182919603847347612418936045634531622994232443889363697806868730419201440687688163382367582300784057748890230662277350642692810817518739092558129540236234384988275527314065589370525147125696075609008277076484416480962316639950709535264913750919230672843280696363409981270372891318954951846542915354483624801167959372239273776485782092190705272120474211319994748955472381252099034701189964843765345093337421618952539436121667279952172386394469182867992358772022945668994346834054382416093840615968319994226608337119281560650885840460014944694897338549596522294483191016300934122709565089774826062136976345783554138252526261057557778886978266571283502790902945068344089146772897445338359434765014652412800313933601127403082388702033648135614928330038598956527140388937672070905701625439909868796650424939808966968941421694897099893284956624562068802130603839094351622524002409269749357093965675550259262411135614796601721770942964718867869714677029147470065982021763448895305230418432729058604307903289260929970277325349634700706223699876881910952347048626695245939871478080152691734508869870304055702239674325749707821752240201183090708276256747361216262762449548539214860451861942566783960469590507683173028388870146312992962973894617270587503115877312171389774654950192541484497114753905053794789428895582562516622348490630438623846325367753217609575973087027393717566424970968272371440865556821280039370202901615104797562118731901425444562254555642298714419196855239681326935524087055933060583798195666357758954032821689124824193142139018047071513764641575084383125725834587601250445654118928644856963341437668268351709574104380854668341066485931325407966582096246428112743219522401801257984203682380379964892910407722825150166948016868623716125235821149077915544655709046325057950089007764308239841054185105619840516162487078895730893679292598885990521023338698782428611033717225409856837420473999538863252387014058330592368933595546062074437827671371696862695556813120969283574361618459947632516842319553758970831772639894440828942518372289769630828473906380512471447558702644522532110290880051760666420049420191611618565091217459809842078540085055216315901888424715394970142613465846226092551582473365842932713249731913498579969230476893279624349292363637373448413019128666761553830382800686924610496452347285519794382140483563715453338158851859431942248724470231638491785167806035439146140899319552864176299879049313485113214743078409704787890539104889928536618756959760885005728329429379455850389691380332882163515799773327411368498376928446428907342619333122413574709854905031960594650771278684767665825849843095473344498415992977218967720800300107444468909924934695194144108913800038964001680979982126467249354277039491196095228875855273088257263161125072403093208157436628823614105514175038551840435550352155348517873713408518693058280870863017514437665691987656997695242926696473681719041101738358253693137753254867408173644850152708079406570167041789146112425620278146460059726005462176879505994696185225938247822190268638357988604055420606840665316590404654824916648556095288716675757414235526153135892369573900784612747472116506384028475224983742852077885447335887325368255482102525853711072424885237182318952453031938016922378162677512722222025300150361302143074364364118867836320983930153881873106171400161323087238433674529849423887932484556969571216964018232328613865202715297145315276963683068662418590693334303135261747374132685205780601216004211332649425013489878520532012719796429438216198301065203172957437319530891771322170013963486450634731357579440436757698269866207710043495716454084590353127400210392740687492653621582846146762506093380199126360682044036743928019084707433800145897268224069048523810521542621513020146841403242495938759733709061465331964976663974030555659312104005858424029564029055874344882911057215694334374469294480760323276930519524634704295872295038699109901622611373035230020061524451347568219608566035082759778913073231903120839550554528039173038841310204652669037966127743538411664222911125002181299055943102050263321762232157047841224509689557748898841463164797062068250124762273519964221562001639315580155074917636929680783290187549364933514678798307885860508951157993108721438548758790355527035183438193033920314060929339087732541611240448935741495380214011491957060691823209256379198580989858217907105957901801061229158627100034440688082817549987656024512751227151491588632060077067492259662328854682091118127461438990564961213249602568688561220151228980593756476306029597929856899954683586382673567613597954441117252315407467070763977646518265040283147109764962977582592137756613398936779821342250533188734398948291524523168678965219098628166406570967708307330975497274137385796719710334303527562091082446917383002151820072920369940587332160964505593807062976718417303349025190549200724412030972685847454667010845069012044958983012481855266161320099241419293201823868793427781095008544000947086029360804271661012001195796622409123437441745234527862888648248811492078741640498730886449137048591802816780639448059534806636589341554160907451708107934664984696544070726923061306769752501632449197439056943307554311029466004211415853861462582585562488968881584214667669630598649309147081033661259275378772900973204963733609237969284079153790709695616011502627549967256935785289307670571776340439712946213162616462291850514053460288697677229288171411956623531586069404509017293579801831569003834204838458871990792100537296748782207111828954077170343047516122472146039355263998753510783368805191191718752081647820645008188201800064563010178149980599409974368055006184980197768940577673832526532712209835404700283049622501073918610440399931156756711763710151870505429641932865277302049226130297448476985934619658776589704289717664301334887954962303823523122103492333904439209274619750935792191652785027411686983171526989683822606337825077796706306740529996928549760462555479609463878220621231738990997871794699957060812417382371885400590043455807429145183325396769511246037442980977565396150287147671335615798844314185738586915125862602203434089553672773251341884986413763913008078387342266684591637171834786105800711160076997621719377463761102881596862729052857806805796280220873604847508735597701611847198826563913067049581117611777298296801159264316714862789341888944471213430064265751999710313547423114104008371413485235257369621417804168443361320030206962076504603428679573579723228493706303969890227601900954727714104558985094846298462905112725178065499981335886714045096641627572697913807335274206212214633525959877237015405983906339480032110862326634206017714287000606004350448689852718131791721515168542465816545082564501320206665998752622272777633317726467488008024802625880823424949873919027316355442600111320415959245192274394037100510165503344739486855203254322874958886450883604557330376418433649373230159975161903501580218707012456036048084741260441573042709846578274657185183149432442391760862655991729488653135738952486071398712340949552103226807886608466459115285171015770192236521371744977767332083454450737275716691113510345647459597955472374488580517825288891563012193681401325220449962884609917755512079415638126467850977429039506058975704358596018915365698818518941932375349608377143323896558685883799854134463308330831373062265064873884375986461567397941929909659495559386916143817022857897639918284687874861905241638497668284096014937955694145433050358611282858612592513827739892468353896109900844848820099426400107409544780123742274307319177293709628443152679877697728548822721965378501236388640443739139500360498861891602602043663107289329555235905576776089884291544402455582965603593601320798702472590593089266637529544498657016849604536899937595131239755360476894545678577129795347129486547232096338291589332908049617415793695807568989585633749386876999659902073816295924822503121271592556061792946558619009050149185242259306233932244958570791179960037244253285947274186658406006560511236475275059678124992968141842387121396331942082496241579536039687499131488377062990880717870000096403218483490833752154947554973454961143291787321477845358839308964026186690309894096202567681558316091387005352042699528822277274846204262212976516975875994186255296673177381107201208025317311974290572072434170721017106499653015639312186344776363765528499835777203867730589714366409593160116930938796555241600543714513339496001155210000970889752943130942775913103547385890411416036841821942342644213896803308096912145093191451109438272607980545436431032679461758849979751425821626177740739822752368582354856464068808925709844758176448361166317958486699581790715958139030709541218097257601064049298046749345095858405268146150317579284693046589494840291599538221213857419251766176820436741397878051966107492879083019366778622169616575615608656071897502758516741005063436761828404283049291401004713169578268619173157198984362698118048527212253792831428042579336995839984046294548544404806086154322980356179543569827844990654156603290349850088679551701335767323786746973465185606043013060108358028588658009955683068835631911695446985245614820216155354156178119642872225761324537749807263006279689296743868405750100671695815593636379865423155231192141877832382050452085544437988676455999117913216121648108457154380455575966182534024947385344636885929421458895658880634675328361169890160877283682811025776341113843649215295673065884186838563763149950793697496059505989617631787118132525699446654050072007698021584854686443607463158103626858490899531277204709632102213690832874612595134915858041134576421218822392542679607928521109381536328982192145545581324928364125722077648556209805485160607773413633682501835662036202404700930489111645187524451521771398075572701985709547892460480291407160551524684671050182953577868033854605358639613061346524288559024690585408635355900340305825208332697447174090723332062677003737070065660180819594874758803679371505277630463142600769430877358699458831544204184157598555337740768587448438692439106501171256477692114169909833469555244559470304804971915169619700947322327607045484967373152570452011094490184796103956943132456169054410546856561125042451860724362634209398579856504418415724045569212681525124338964655504980228328316274805705826990601825179780253322298918141098496354641043903336937719332561770187716939893722971530294112098598198963351902184573295639447875986232378901939635598383195812238312467503063694593035994232082134912164352720425162711622139780764640217491073062720195225274000488628303420625611243099378838074729252154924957181687422123089589757291534716454403458224775437570885670055174798888493997029843117309094780363853479596731895224265121038205276371681221060660774670010466142950635741207897689048801066494308391084896790658477428123936410825341858999433574746444309800024564342455610162904799432621439434298021345401201546326608652639839404334724479984382226042327856273621651009271745832006236538544215993450389127096839298495996173671494683477785633933054553452512025178848335331111956376587794942918075095380957536818460410013737520779366901382983999272884029502448788227326258593996968246037288042089724143532965311268529092446311712961041723075157316484846963901793789636450675906843212483105758912724321724805185301285557304584112728993661622955946176268971105392518897789630635490812280263236338891292397449238942846483790581219602159703739075939964031685907140209227426467253584294094384231066090231516386942035685805405691435000322148721852190099085052929758286230110719568198429240039645389623601950299655374849147310553787919366143968911703824502426815774171450403158091925472740271318050576225591527865691190107683432717585557315957565211927567241558937585566355561768745056864384684187505750587250087843267778622849556748869381008770752741255150340221263365373140824693981674483661193857050738271144774779745370747863614567310544393296247536809526142520758111155389590721682166970615917105321923344854904748748973553959959193203024186868344056988893519641840851474508845744662189634834722604499492512022725374662147394836323344084723703540958522054724617576288962108466230890408294786848441333310402039845673344278648806635583669997930011283110794387523352704769028174143059504956344750574832825945934326785446626585968943131355131314846997432742850976247457354016856742844890274244492220901676449823818284228696939961553780856769655990891996748034994018403456706527499959472380388174405984441802170860857880059723712539798577592410565648348795778735879813035577778249839864311088894315193048216138278273125676124758545417425540936613041768225999200231853845636830918149342692608798724252401028596803646689064035971173620034246618914207303094973961164775233490205780081298883251125478954234294811077330424065097587725877958788220756364466936816557004150041877497018932036982723466842668884821169624522661928482344830649003053713378543291716791285488752016914689073310023032173500865060871175439787946402258185586765497496802317140360814676750709412251617784206370529539533333374730024179560233326912963610874235481503497988160413506530508486910726711587605420955156159079000290444069654533280436339460695627896184482292650535243573433925119244208594299646569175381422132275082014838936584918209989424139874046555885515914574042337358472144548919774707775403447570891642649248427780765123126597860097806896456767731479098925408431414691348545522366097153337727368550916422650431914122979014331275763222490462420429674230542674473684675279726900474012020058553161701309107053147868770174798011127596721234036187795805370286112029882643667457666490866486445689204517551874540506680819353708456146707765016801707998547397518533088661630266035518725537141915823726129897564488198581277479519815645018008240760608602614633039573884668090276388395371061610862236308232598111677245466186333213332106659071060953794358467939260598072085128189520847881300678618423910807485774072672245011808741458359617703202464642193510568168407331764142564890424416292384134183343941347286302921825318025010100088670279637896527324666093433246207374952961687861951674444197352892342236377817513947949704669713470522666419690311579441682527233209540544621031907894647511417939004137739426133796248150848663682940875891770620720153598011188054519641190746237383043598493783474679173182600597139911942451842494444413461153646845454511323529168791020146808663285714750451904332079878519204256557089026075696070555192758614498908397165320932105293512719257326996678635154212364270403779623780824327528700988946709081087350538042398130585124226817104280635996111901481399015993171494398960756984107086963735610787866671581824648397703699435954151346831641595004596197033639849911951670355971003066227000561528537592037336022967656819725942128465948100649334554917886233233593450282557089268302208755154635087938798187394279993673844845492446494197313627861000407666864025867745990807857853759210981926517458192941189098323235317528521132426868351615373252565663447125270592158789212990563461446230119071989166953056592825465757978413955486847750440782717665855866450142277778285679844356969967665322037956100816302859546432256022594499129879632897134464955929791129453285972644790505241345371855176341787225755895219084058101643657416962382431894950190957107314499768453960682063070371079662930078651653375604005390326022477128089005800302109200724850000783683575532590943443312664968262614917326596996894085436615550742912309552567600334327404376703034273156947436125713832976170567714315168965886075515539631124251303117962205556226927710632585606552466684047591210128519359472827073100363755218445584988448759176161802693708659896221013169240874626202020831459447920226211712256050390100757212498512605993523313536291020872917240548642134577111746954083152653706133468163887169489040331031737015262828094101239743884795915716748852351983159294140282577791751715867974110305457548346844737331929923210207874335818284212384426324852839874782290091400357363231429027696065497608841744499952840147454443944135272328031801862772382410336092098795687762438896823117695740774555331599977402750384080689297119272082060766526722273352458646929595477634810431470277587472961758934745689597013176306316837929111497292692143073106467193218965487699439902215293940434635395438230369961170543113067464902477028028513399962407360638294977134207511350920753335149388551500028779462817832057516428158229228550970040018652136657612010297846665527425379069510641080598935233827427245245019249496941809052009357246255231221429508632341750523154466567569936936404151274051671208152793245697568347030434423959694556863505024891623402327612828678271681278789448147196155247738166463732686723802104615576269907176810354032641854165665693864666564740614693601392988281468789351721552797923475513593713870438692426575855807887116431287883664325083439574286837085102674994857400561794495561810963003739790479697576870919453988043336723362803393958421430364893884913130455319064005389465167802620020585842900374794076136317103344043219266416185516403989874427769151380758734156988159698568773592326042946594213877650798675822792210036255489866298164440649634478370542420150008180945175884339458396479544505395164299274159737197044970139052043185231615339913169360818117585603467460651935354448630972579132341171088990929728203104994206158456433848930768039115193981304200515664845960705750222129505469551391937924992357194616234492985908776993561531769048357035707550336019032583927324026606663017011011233217183760490147926249676377743047367923128653374663952668159339231556338495143718156674258062374053009610122737445913091189187282424730518411575350348732399277134130317743245293923244454824544767681329747570722665038941783060858367843522056301462186293341965650528042553180991123868504348425830508816833045388837559215614910667200599642016157243448420953374438542321895685553218319490563600717662091442932049309920096086156013805608159664663293550242614155884459622817124771572978802929592629510009829114543367362159946537904172809317942893655654193011874934659247220687879010679822610323316131233676937958208429861910195957251125083699339052313775372148974312464142682101070217723890782448230858899182268254326306692815678537219592357435595293812111514492878426253853028110999642047133742235312490846110266447086790959387118068470823681387267514202066664814645795063268933816416393071460742646745716000570603409307918040387426842579140928493753969749812629494582099754519008167092895992736248263175205694196400887579439699940827080180685743232641840825746232762369062325077889664767444731452934494059703238834857899716626214446768370270109425463975251103550047432813284266321786654704572535070008138688864535412480185839436464011280144140571191853868444658267122973918668481092843342086057215631180385968072099327008775170321820809129726443812335671894996206206849091574079449829310595493522726926598898835427537964618576717024536352242580959137597744502861876731473667757606766414949056199970462636769868703928166628455713884029213287652032841774628796853521701185187081120617785905322062955509840656812298866157864482006809524251459122926914064099992438640434780377961378090426317522530163359400408809212390865131558476297325708119087416490253281054923860671206868278048681451524700324263436942246384337759719398382104007979129384462651790231265881251006513197230272199643240956506820810047078432478237343375578926586743880408781526320834839817254685057394858978920892108090810611860982416309288237341607917957698316995681564607657784635496936761395717510676420818655410510194232543549871873696470409218764142208730475881581502281262220010911584659277645823251404386766822984060300808271327067237649173929869557708703342231668731406121042855307812736825675694971739813877761988262471792614792745893591107819298921338265999163704530014726624151305109841687170542614839921903555331839008327766408294800733569494109203946955331262419167781681856649345085604366151263555306353228242087543563545319657894813074745468725748686582630540129366628259638099536783949378261568344120098197103464206413114166970477599675145079451511716370216487397941540615572734832860721119862495271465389299896460529909572372282788254343557848648990216373647463680485880795417495497471127050456764171283948275014226823379297671374604654135448335118213261873652607862112008191368253092721333161482418334760905139340500906949538470970433898326208081291477752821859179130623404927226373893798448627488310650104655780680750412039533325823467003070736969114787535773823010742671890075815267892276149398800892661897844774206295964733311075396864078399551068471974306420896642991255165598772542364847901979994002877551136008924234632988955412738417313736768042428371618916921405897581587429060916063635065982509900324407213236057394192113611294836335422203796127364775483887885729570885743327900483672591535756999179558437328724109090062121694601000626626274826333933240235097286917699925547901341799028722976728246930525670624088289148232447193104510227254303311314705749726548065179618511937195585251188809546288570372826668918940306631342255991368136729305222791660559090557824501474445430901241798969047189717620251050814479826647448011996834285620109559764160413049078174180162171051529929655839618640972468812187306849133108683056838097904741476017233027334986954553564456513473364863903873809127579066952286284581678005995069813387930711736446783438061537144043905596716082817317864102138682103253780078077429707695192528189551943003495617036866373716393629423054192394477679143739346726777219645601671982152554492619031897668590280244401402892485001237657767511521567135391538370038412643722817857170169498520944572490516374350565086409852364476727101942403289727380448235266468794316185280323624756069490523540756957019393024458192121389367040507641255789816154886270073105705646367367494449677056344556529573439931558517904457804629021553881689019845745755580104872566175302916276121601550651942759011462663215304374134016580347715073881453082059226387705000814330328501608655862588304471789321522874100480334673160741113723598747882449554433436964905454657691176774726670624935020279496267221391204149660012239261053449919325760450553225114599274674947284474219599644641061934397568521286780020314050928546578549625567633040112001044501959369103340869820626905959701035935177321414528777698793537178714328125858670571882582913017559370311079942799605334543036907059192443842857462213628753493356146847526338506677946733052808424562647030353566209458247430068822946249593760322511782513156974837704435806085747639831181872835171171599850477606775966381412009063629184173435813260445113582842736466809375949113169399424071428600157343119162712085871073718748407141344466115228446896341000994034212802023056492034552422693627157145547065097903689263362108745639881626504029382230777973914565302447583030088711682497907199555911256177624030964074713088639992971181639783005550652209058320160945539610958355671082138315711992432753681253014924838898160001371833109137268691417526882771172423836374009598998360901046360955420608493322588612425661327837547988592687043114754219638693837447701284018333612478921259698737281600601179397104752217287063671056796798102188956474536012345669836993681775597760242220145541961920581836816632315631198801283533345644225936256321222119462483167508922535545537342571161281911583440646089768594756123371938109279726295179010603934043399347635160687680016323459705258471335489051977837397030475096006555009519364180985149271000587999126002755374555285779457698327420012968243300464207898898427033309003065503591435439009508081342556903357886679664869342140774473783162904080812421239288313088259819578368834558624689312393945773054862647551428495240952237352497747243670506104813200648067228428216124144568314671996735893938076517299468280897266673430855506533639846377260084645041886377344176171871849805611649754815009314900769075459831229005444814131660638332826950396335020431702286695492992367961166932038768287621012203604522530521891090545125850020748692064181746110496767822199134247217047145175088779749084547617765988740015438578258087921745376996749737641879827765565187005754810563518218391237398284987361809619374089080561182263303269198954652222218169116964995848962173436120962944187026174709542472984231672353199792700716299280204117272909270052618299167513104865606176093999448567477077821716201623800427241918279027710541670503914815297339963344445678086863809075703753648331173655567792275113031449707912059781532527239104752922948929071545131313295777545207229912875573279339892512626625731732172145933296577162446567878922858255214029065817905689165090233266721415445544969325209214840639444395611783859204787628490985615807170075528859544858910358069784823070683900959965959786813647640000881734538981655992729405142262693280534638896547244023002343407276905110590776058883148301758897791175868316527926105799516793180851056735040535057679328463477343688354371051187403256199999012259126668368738226289332460808188946256185645730314956180329486563086516968833609335724773880956263492156989554407206109738622355756526776109145364843282215194788864214773128575782274950258868338723426491460939009030705430431452438221631892343180721085695889371376958967533741500940936193291005591717068910735435759322892324097077921746791545788430802160181841881100249349639341791239095026722973331219644753560558502512835115226817633834371090751796748008694402191256023260218618750245427497371781757610332682922076732410333800562342505986990302091371024253908616303736132278757852146575633851558852275009854736276473213964358516840857664803988355947889378820378947041809575971455134487768260672689329119784467552772771245848267419494553963069558857563127506048819121302972068592431452166338490847444224168237336276650461775443083843969181235655265708086362380877909871955570125595413122577509786655482547969072734364532939711208071351812318226063282348729313622772798281922131466693880387393098063709493783896093509231546414545738935963222676574534243857981168108651001473849432688727461246643073744634280105698816264284934005635495469913212325387779334550670404770193992179170988730635384556477340538537888113283855036484101437870553686882895685413389679055960713316379531497459634969265502410566342255987163360431327612420140833602113352124520236118591274477137260294163436409082034176389771215205551699158651166699045933701360422491308048172450844625349770529751899861705360985614819189068560584864991608148506484679232504671314307873021671626075694777824267819497855362278887099510893648913347297080942982041451559384956051341996976257395706675531417001062059167644787178647814550857825054807003695732568299700121650141388089280716176387349668902436137180963938095577265990901295074548231632780226312281557459785312417352891104393123121714580974026060056987555388418382562994001416815514088554173001974870781772087379212289780843518144276643952905319247541373906272209302316640158132601310107485003686014259789010934381034235517498839976045729481445373375626172829450777729018105080520059233432955103165504697021294564935728592049833079247728013328356156570253009108875695546230846175758883484407325724983582715203721052309467725125490507275002945705715241110366321679852353779145799289950888593956587969877375863064159245565901028655787725669530460989469790425177879882113352346942963125895380081284395653817172138065868901011683701496369438127275721546313666851796465165792767772697700616691470566955530734759547589802756443817820388716387499299387834716753241100040441967969342248001984821128411957523038536977235445660998154301596724719643770943125273608641559577653417694596744826780623928195044148678831311187292763705355777982012385861394913836571395388603870805458069059518510421360309434171750191607807148718866202527139992683635175867814809555612613295917047825305898327096183746373490153742544708609788982279790245453337388468693201179516883545910626907107431140801558581436299160726991013578864929755907052382681765883103598982775543764620156310351717288616556673171884813761618000287704059615114526560031482964960473288140798850832557591321180034710713680607813136946343071932318875983507445408237686704998961330405162801501452843788207349941572197649839584126561393078263850239178495560858422463672993093932067121946978689407180056719580538429835391661086592231019687816064037518479176913816042917267749570779031603554554265326428877804553796692181064051774611823516198795719333005291647913691953228324967348642407344771657740991871735842134070045393568272807414053567235568270515494848595264710499095302601727094409422474258515385540906598443093274936414528979072877511445767277188872766544205822232929167922079687334500750501735265639939717503303506640545171373125175578470391612192864418333816280175595863648896833490399840326918856049672901944663872979361908293300836857192413266766113244705843049504660867719446114753846852285004628094515588626397092471055930222745475271482132110598820018740014431818651338168564074194657567069602255645308937292696102837421895159120996072948656942432271612381935821116045623473531946286519697117501536616186828636594145268436731387387508977675193432338218015279998147626409351921840192164602506160851859069215825414021929335300285918148020620577919745375229237523279012771033500887793983906076022122084186536845925828507652919914591002379391162075658480123176469810356722374463118082970030631925763499926861881305127473698036465706369397243837628630996942547445958159026720427372077478131607086958423460600689287081525963493297860261914096405073038129816793399302568832179664444400601148312446988399644526703725715982435768171316760197896485038690839122997943538862643773113584273582723553381323888426243428273642941024739790846684962619619604385761841212649276129697288683311588037821613375782892167729211040926249944522146875354168372285058974118781465991497434349719335751461494960603843930822539948975834390775276979762476620551976021261531915935897672738818375276808370260698098985119935240787980590154160820924543318220373372910434329704163467710335425873426218303819578025297345005645783595698222779315354641445634960265693966811285788766228976248506678778561549609198616411857568268202561428342627624236989867749205994409221667055811638780947783382856585679798332247450589929476911251106314222266571148982741666960906398796236386738023006524292380059901000404503512367918612669599537420732733131675495752749040751641901053804590341973067287382416732646536993876965141064440107698617731868514677762770601807236107333398146153560232845188951033654611122366468460218466797954729689566562172422653489840172305614899177860566773175720224900413687907862847393910735939235044320620203442851597015461919389015319006894260472813539609394269693419106131279332495631820323422865902064255285804294233537815721707801564796959972756056295242066211066176149607184907030750235166472180746407640248445655619100984725699418217194147081244663344466313037133662644771918919045897751413900626568750151472915620679455782790186037278840828506001216035866034912161163236958241188344503019543693517617334088915075696181440815902513439635726103990158945358704639493945526475181570279068199726161401573207073415346179021684484970785956351314747073449300998541835471989780680304454000463158485338963641831673716650197183725291359224526041519154105587124723263356900969338589360986608410282173151203669642224700500302664058526336106756602132785149163925744830347139099768673780779924971826722115313967838083949381443916836424925993942209790149863099473480097944286514869492231358279696696518778800484392488537588875933793632037784402180819967609835289946134457214365690396208407122576135021394877872031680344491985572735672521633351507618053878459979455170331959994012626008212676956625796980221521475291340315926027671496293849195417902325495526761368469972263106490229785214964592838793492040098160225766444879943983103557818140822522011359229404341719412671697925602510614197647899520294473268217148326392849733612670834028417475926218535760488502646741681766814931631113882770217909534920284110543911358097213717055750585001544454849656665660893304383721465683861158801161517264692197871901785225717843400192981753416376327582554526516012451252972528435918329582139332886614121651782724859824231984633852067255418032647758670623171318612212058537157893373422370380835261803822104467317912492794517263183783457792691153361941988043579942078233984911143730100931435585783497411250385608230874968726161037928114208673194712362497731509612932445794523081304364828564623719266927339254033870794839466855140100201694444346677882229863858792234501904449614473958301097370764137423115702887775444845131358032306768356004811367351644357336970849968106187478101529618429356241049800272400528591255965884513970718279958983505556855374819881273773970971470102627390609347279070288924511972296957424706582741980527824106474680370047411980480142572743914211710517931520432526142535298187601435522600899913222254728820828124800601785300848517365521444258652496223028273758670181426724290446165868640465300779518236386168218233441366963320438341518566887405137247406289113108562038015440453833522648786131082692684907523481940253036828608033004991399303450581585926318952452399840473929236300405831952650076596616364856336993004532599756934376001591735720927299205920150963105215287390592836472154261235489743328212816281443856398153769338069061073390792156463312157156115481060757276041217354471867692342475908317521997926170577560340810770583396674118249567881500027026139726102353557039551365012627342390474167451348041826788668610116513291483877653829930769817693093165325448829184978823405248759528691264702299903884886181015901028579956827625725506504792558180081807735677777067971605790947738063895092473971325545630321079568491428057202411351087861912091914041267913440499120499025460068100693861794944622423040202746613626349638467509022644174214079757267001962664022849083850489744773700399410978225782357131863071336713789892442565179585581778641147969087773629964402587049198263095812160261988631740948869160403118431735263261068995187532853739175315958186720876081630542936953746581981582670102628663730262686965859907254500418195213447282770561180200811157228971601582996215376365395302162236598644259385036375451809042946298055916981546685902424881206109894054421580111630156838793118216100757458770902061233389476521763206488710165283108851437362013368102585540419433374568106137592912594518133727031657669680947143044394471950342240607622127000161750675480210760046316771718936379120940247594276324617501530174522478092458518524713235227222366200051729809788692520178903463366838442862719386404994220431359236550272222751788828302343429203493365023990404760529382350829973296703117720443753386123366116458414390487711430754767956428541623425916790564702622126565665235272526680660033091619275341771882076168712612454586684148144996514949940913650332684659819916096090830473376747804174823997987592719301071031439622873008751123259486842941092752024472027149213108241518163244532219761135641223611387497551485309202210968012394044576503642542948468525410962611423020448449737639168626322725180384675028001415390313459672831727631239688297882609830523548288876819252658507439060516118914239255704538789246796208709769125734883941519989909485756484195450129137476290969222962179747885779530405699914961223757948532993882402666164866519358383252179898330649707754799458746546152142785160803265706702564902168180573646093480533064289233111638098851123156109190572095574249291922199482414253322159141564723578282774238542559834732626199604596752421012525448030473328616429691060540880778263996179057027919059641732793004510074871315438894548879750999849365901650251107348305133632591162059395753026712544868430729197450827387269823763003415005647951113401462962170099174333947422772273668544382576060085531422522416609170356272098239231936215434222525878646039673667935874204194672072833317429911919486578470960735644463834822014218535656891931392039045670978439063708076692215436866108913703416494309799625482733649754891931359452673768476164051258113630627503009488735964627692589490115201719913371464358615933311028774971451387381084182555648758152834289420213367021253544343460975367780944283139855110916696019776263188660095085803489391104949601462541754839086602855698901327112631226588401274050985644515655505513962781586487059210138173273122483354942935202365783338918800279516854974010021753167232776074005414185752649000594784545305624946649464278339996976140520166723824133335795209166320483862282495607971786209320171216170989136090790329167286120495926053405282554963319757802750400070745012079713043975727023999974295173982184545125642026834365401150052652674679066173271072606239391241177631569414238672492060424291400806383945383085963535008374193573224980660003718420326234522011555422157091225909900669494616704800016935400937802202304441045869023276929232611961486258523561198946985528844491080311809919617467797356663428888878702455218803152326160696121844775956370537595051297680064891737766693640348590486919403282350280585472624579648150066861506076623504368507816503564423646486806505473643514887350002200137560147470911240202833939959422433862760778689636709939724548506918074383367677139389558338145441604126699707968626154545406401283212937634019501467188861764242079792359179736761612688510771593435546153019181051044879838873426508849876387986414652316343366533363903296112631352766940896270447544291195257019060103875287668713126051572633755928477457516687776778262832981821101209961230095969057768211694562749687291976488516483243016007049304403377359178783450983616658863156527521021278737428465257703831764312411938496751212693238551867481044992341255036558167377564858318712042524243641795314572979349050271704778017013627109726630539289082166825502500133713984179540427261685531242640918050666853859938229967807598115417425526883589226871145531413803264794714251735794976206634102506151791986975478568841249021909552786494057463439689626887373496755764875672625879621976682162034580428430941065123999329999953855753711845847721450999378618311934306585459868293871658581964033864251235719454144458652273881079728868761619038683423052870691309046892252395056671135400188725286462465984689069581337909824950009948444639336440086156743795842796672182821589776644956670121532161494488500965215003712537177541475807597999876411737956075732019065435464126722139211894660699206810100720074286537199094089263900342364141347563156238058055994513880008962813472938708377234953246104826160754206867310438657376596626613069701081949090077686617020683255286552163090215129667749158620351076124569550769022571788873159615664386636949582481543340479072533024009265901835484192541046649692124922651813268215833167063670197777345550395192483853510299060595823936354096970419519843567956508920473662883840294662501834295548232493585386743682255422794300843610084243476297535001877715519707875512880284938751319748118981512827207748750272930993321371450745890019604985466514225655034419749779163347932029799016758234610892474200320030302392014890866641092363392039999858142212081113564292532506325423912704874213620054283394008054941453053212025238278416436404361243759969466702028051714569159786381524857031754125438269845528541786749071940157788802986088520597605415483482320902654930419825310155263001335015091802830851479308251154750824087971751071825334375152114002775005587042765968551162245630618720342950070573764066653821250588969208452331809530693027498376648511180630022039489362694988220088762640359770763016875860462322291420746426197043208867816387344937486696101945271058012079064782250157908304101785537746554087683218731509101471058156346698176816792073213687299796330778275811406081874407553846374732171032485783988047768295228648970733091534752251729256723350038134183634423505441953369142837041824776601285500873085995086537052125137093048386575468538213622026416171121877086771658188267697598531714337937721217482066748090743577569814627974818348555420184030836077882976337945053382012701927293908879365885476333959606690516417058283393402511295137014233981845641951601185074384274139317866580354501432024368108873423304035937907284308624493831766467204660235066621039220175307472902696035447260080747688051726942535663302282037320638568202759280067652166340098597791892480363172591065944369954843094613878232289227850029183239597920729624195285344321328596286394446449433880518848851708974583978084935271820784871873256095576608515725002732687252632423495645118399501737781975026854629997555911383094137663427532129842522043483296457421328125110565394696152535857784101968702563690189205161535994250355062732612816188048046712029725248969062925767833991258858177678255814829500691252038480045375808855269205549011363175726036980643555466755864222109333626317370186684070944895411698113166272770327834671892971487361683283989782742996164617737527981298440061565203693084659467834622831521516407934940524217312102923298716069837800981195160136824669199065463358619162012397163283815152105783540836653206092843978614338800789877767177773255222696346548621837736508029287657931330538736412323393786244037520726525569711036845030557997401167549111881946933482050763703716907659641506246733372452875678923083874738737334112446171831016417533651173508729393440406082485487998525875712827916138400733778587010181729558689781655477882912731978493939291291407227012273286489553314406850143612658613465187821467163205770299749533516110798546103352165236115101801378914627341491408525944049694988709423114904640243603885912089437678854053065000990105542970909131838899451894224658727566368759268288453197444991540592056139729254393342170165090852360797949750639783757153737813289715034653643331584028716094526714333165450356478114069496638446986075901896536968561240297581685684673160432826113947645975599382518993935165640164822733143172018746438193518728882526516030192787402553239599263601909018537671031806112518903221961692138714975177330315542147461472976407035290915891479382294527977720193348148597068014338049320312224555146932093955047757960353944647877316640255149534839006743876637284837248348112245786353436118353483550080174849076718901029561575457909825888435068420935106454787947907991884921256444097776298903876705643862880025613250296562342718232338342204039363522056643734952732500714927628464801349696248545008493113637962150068670686476969315262007901035254793898325536553865515628754069001451172431181066226375927624615585270326592648899001823966698082363449514976556592337902445268511112673976142346309337436788109678658578249834535773079438584998549252089931863310900108396064796347367474140782696975999102800062952995110868460444685702410619085751246470049803865328880946004133340548822066206650012697597261569833888677773360914719935328189910577079013245220798534914638801480979014935514371171833882621199228239341958384816327287097304549686011949228405491236824883801426686228305501672140790341595143619245101344369500786504093468622019867892714421793513030871716641279356557724640644791793122904870584320566062708165130538314720143976524952075885318489720686952891638672668305148354429425858311560347576962283455511085172550305714939401327161071348683031221884196518228957325278678046229993513730536544371726580861821434285114598022923019164813316659148322605168889785484328025330571569975615767671044843498228143008552288591267552155076145937409813832092092179732128422492056389207708437593333118342143492722316664098844909964505229225509092257934958019301815848170078202738624870601944343310305027438108091531048649263857978993969658408453456923776532813157657841718731528105036806007473165933128630170451528429344877943261557201830804080044197129504300203938764004273291886239382774955187092334980453213402847514608625042836380075913575454094521318911011461330898105624133850917896591440897833109984471274762240590470108327175231338060265622830678764190036253624714143082295877742702398941062785805853282233852281292577110322136794075149636793835474258558862430011188206437476881962969094225631800723691280810793066862730156776194448842443896255385219921322350864285991734976818804379178393032819775678016398859578706043498364380760298875468274936238127345987265877268474177468001340002008457140981347697569291645369718316365211222373435981618339897948229541173966381052356337085427906746993989968120578488866756446692234226121274715629009721053316173909015093220325294620233393593541347392612134455480168822833546119792441807375142902172787989498377757672234337464342017868752481861449871525791194981021119649105895588031827104048919438143991143895775395251581721720554305621373150397099079563933421557858159380980355955280109997959893279341211401386533137662585223968338780853864102059484653871251061211627041557046023688409766764706474258340464131148498259860571279434874346178283114271052591464927531272228493902804348896382991972239808859479530578551356670965147351359018377229386614499494991677746667591294662124697827638543420219817424680601164735818356706875363481218151808912468360674362993048026634332920224519690969775983833557062767422182611234156998559244443642828522854017713398463847419458797914692623696780746696559663579046671070174163139606417256175703049407991352194418444140735029198387165209231083748113004459930182688890834380814745066063188714560161466035244108995050467067053260692560015019783889538394790534176375553088862172977645272328851048523013088387721716768131648683572025073149841791321668269920010442051712299445064064009645395361689985785616643704698438722430972409732737125168880697867159920123319895743625949341887381983711819607827337842640968236085350114282201535113084627893127480271895316567861591663818350269355752238942803515256621846209041240039354271352567494975971805898588502704254913637085610856027477133296797752877151490753434343913103813392657426845901282528260792840824278659752542818835426926468366921200771082710967306113933868500205724323749092083073397716006685262716024228021390603053936594335259961925864970729599460802311755988418467010354735812794043744642842690028568468536890072536908371776884680515330913835861716863187684513933063737004143484021046931738198497001378433542209921306467676197985842773164452000837257305165330296997621656594459373822156332609116800855334549141403534862064966809323368937846559922116108744968049885592385964480882057454120321618358379519940520036518130068640757540101467136651473196907607952417662660887945750013655822600133613770917339167727490560321954539029763052916131000305596328880770655283063967310058414701579178819452864178026801688406752188557802448156295110164668548600081096145305493353417692312255734673853753777363475235444859086236804869047638785969901464699837950916670650548180003748497706389068001498993928161260246453350624256599537272529458112641388270525875424479376420432251907801162260097920292820593330171919158469082052563269740519818301544326881682286534836347973933704350316500054904204645397517234811388235827682283824946753814388255836639181714967476594270135730109943397765880491158751556462114575120632549272524369928252171868514058695651221597735808927713933065707560999534714285476814038657450108016876424582955059378933925435036241922934465294286965042126569252541770500526988268761274245159664135403447560440210673426686147655004420098867681888027890285109961522105455457724301014956713592153855179865316463559924898955647895743992593720855677589599067254958154735406499272477748285749458290396579326422362488147344122110745625753202028052221576602334219814182424400360967211242904038350981895681500793424122112984669270336732910756873482532895435476734815045058706895711260747959527451049180729428351001932420825295018399217180433399908063896906722337548809642307311828400770613211234689063170322899282974861873315871672201692208846391559753513898506054086990517561123684432549253840294018441591543754456801860989766953909359167324358428860264160847324159900543493467463670074656910852713895902215006852168888632339475028781220517387753044691958241852054424661262366303607164059011150903887682321519570137494486624784512182948903862131621559064325578820910551456174234495349643195026421916908406986505758586603009103226640553541718963128194427506175609130974134759274914982491315730025594720228174635724076124457968010057016258517549725986405087369722589835814662375513677378697496657117854203765080424283389556094426582106867255654180250872460757418947824248252293335857492303177712415476214322118522890645790093121172052928820593259304920073622626803787998500252946650659617867776645119154145397542182848209236253204663959453924697542525175080233467528261969399581580781627482998234378645414855946411855729046719083320818239011922416235963040829486362706588973553266708255971948912819643832458861535342592473323112660051946952590356462617508469721554014622298558254204245625246315694689642890004861593692723551653136897949830392507261536319652972049461309219900439779858674470492069088705637325620801976935222759806431653446234724324277818425677029105875588012288204593828176928743880375376988983082025964702915148113487112726330518650399524462978969186573549226383806158899530312231698206411260160815810024614303176609849552709722878010721359057384194929135176635407494817771958660646097888118185312954801877647727815216903750138449296076297164003759821023622143337917493824402602071188246533166024523541862874833434266528571146828935889472094866908262754555220187574422971583722949226908141461364597262746591796119162599244966951990470857652800760757140421713604263814222791635649869095649136193447717578443907817400836489888674654727898045062291590224649137366720559861212173482949175614772703422414853476263407103970570767303888765319950073870898311832226732208887863925200870694131876171203040143047659708288235172603219239520205813599261071191554455031680313306602292275215568525757964953429707592093752057677308041894466538338652168104800599801156421520440793469388578156880010345863860769179539511040373533161863232007114852068582672291638491368420268176797542761696002716238856925034561525548281107586458200024206319981543913628300321725135959038468544156833382385894853831807605884930307331519727633171749675403797294588608472714370422940122621490701272492184346210919647401787610250616387224730272649460742896521041682479328744555565977953631672379561439113985095936300833235768624357279297717647595322346235252094697728082142199176623254921470610602759140130629258679436322852171571595352548013014663575747377809515452814523972834019361838400555770349333822096302103642242630931526726541788850109099365102031468062092934554058184925511144235277465580480251240610695585454798812677765667751494543179391631702853908589604706338587531901396731609697348952646359199638132937494732302354022267150517655641954644665024780390783617084125547154876290038359905226285104887247744018695835229451595520758887489938782129053901564433459673868877182121488635795549614973246354592617488413131561245550119827502027555775663919185819001137472997417855297115459782742180445674123605440403951231332137682857550709753916182579323612236583607362646095954574502515721624220349566386615754205520400839196304266595640901134684630623272917560118942018855226569523299557029322614521399019800617499866887717122555906583996017220133214614123086179226921539970831816326500516148123435805526059873486193559003174433416159242757700972607977221693315578467944545421371175619923399247440207074448004015747683782923659145161138706879401571435626751353394096121550166535969154572969015103680197029519567354651426660662931832283372081139490828822510695852542259660052655839187368940056868290886283406692916215814958277185791024680377551494857823469944831650897845058357450344776660060741555378120300830337377065756740567950587322343133508725295517862710050863221424610332297912534793828525804088270695053551556680664283748867859492677059164550100506904328461777026992744844035814744285479752443074448436402535018913446444915918908803150409651392393816997118153743495808249189948293282536627702762577104455998915145381705367628414392137797933239038065725506076431502934261242679887035821076562386859251721878016339091680208249876834945228727974672986834625505604219880034179741642416698451734325803963366077282188943985301299149975293077160096980879238715287409878212524378456959985227135570055259569837799824828972468089959311002161987664712251120366586333334192493975059442473035166305930527621908196005784450044948798651969377389745034524267385455301596138379213650082888413727220733977356786226187246151142211260625618574069291236465814082784646755489775786738119871640935759895104083253943147028431825986065066676405106366693855080898892632817047789951244992085629905367129547676647295548499591154903571607022507968257747635634020817823657191927397946601677247355437686029483648587543361284669703365039619378591555651066197387799014720328569986437039965070332992386678166142203485487172839441663742282816018373596720293273319338764387685949330354953352219922514447886488703751342330036796007983617073134319267978805592837330408051814483538468158790705351646917234531331129548780541987009811138776746231061077415265694811330098310267012668352035279520613505076743897208243409222464962413292847013624924405531610310064793173893217807032969241098874828166299275484355874846573164867543599865043502309267254688460220869677619417533248813761288840485731264683608915212583255040667826868745027306526109641924759312800546500025166881826353851570776241389668216006588080799511525275939668477412418097971925048710233546328221358076966895541570912981041307109891040084100149749043320396590518148101170574471491431874905288706723506308346253766023219276206905686116086712708748838133268374968287794886316396994090121268166912282549613201499474469626686902460361207277285487562629591218204058384886669635674810039379765118638971853082610156263905430280090437104223610898518925757408217191125648877345544372406882361585339510635361364051475201976275417213781658497245831271267047545736425079853378412551503676076904129367121623306927331878387849067790401135766056049034991352099195983820404495194228660442499455380479156693277484256255009717826834313185258688473137006327255056708562095049947081830745813668430785694373645433402249087828214595063566419247732183782942516146537947277060883941908533697359623850937596337506091184243957286377053689493662076561177219465148509127999184738660524327362117219858641639573918882871141796415633107233654814602988577341066095777854802190480271377854395449732785045665715679980003602512632745535326510109839667250746941735044529907694885030843005963884116811107554973338994046392268605939169093772656026729902784761165080595061093057895934205029325356002297770898996625673557799140063314373922763065441221268732901606623978742928856085947020890330773132214063898941854071355968398029027109483573605832560441642838604718564340228923992053712102738006101565896750739804676826745529949664299022528454507970043051665593590532952846441109466184912857020860592291751977853608627038186969566458345751039939426928281460403201768383595326125418225520331884661359006057832535628076672307409816791421968330709207906801737615303704943957448583403905165127317743587589132673524908276914597658660873344302572570837712252410335130557593969234905693913330685749956429480891135430092781618088041694022502942313862807463095454676766858580943475624890406694938301114967599594363399079466246304385486995815194725060283837413676790637123424288037985792165100657473635910126112729289093451358890683648347006886275461434910453496284275811298926259459085916345821507200220159100753759547612023159177409313577503553305726006555708556261412037577582296096031692363620074624215678637649875469955041719853484252977813384794455699288055053202802795637710755438573218379795246016772970826645698842090396115598729690640540578894769392898260576041278498757905019246454857729469708260860195507085030079731413336227249534041484020708329915759768514201869883585733520865448699936224126868191192798936335025991484196232057847248875843322645144881878252123176546725639256188790718138519083115874219824769647975749931032375361433564441232611233133584729286568452362510402596250553497541173073460816243991504403392316322843457999905884129130205010676632868473395878269068884615515442527699987390808805379932343798703911689412922421762780268298131535855039579242486483040729927314382451088439260587361623315723574253802813832140336929231678794818448334872561164687035581395820317799748174358509563849540441738872827350610137435228214134259417705374011930863417836284304409361258549790777194849635748251892016589696505987856112313063299318260913119555952997255998378904877147558673099516436510264775587701990344026368113190211209258367057745533062533957963959051608055133045793734443568745824772451868323642654230870074895851002361588122938313518397899276827067280121484287061201107780233829695101493616135787325492560553347772905969280244058952651265600418314656559848037576285341486655945332251855523196715648413155073757326724975372800830007950646819410231989634221099558947815677650427646956885468463076752065661466010307736796418309066358686975780363606434512805937502168198561292262207208844559511601853167159637507773333224935727286766209318000348405362194597267877914617715139407238071241064945320548194065718263920428995207871909045289815815991449246404556865093921773855085920457021424513249876442249784917099622315652868209552790197756762748895120991454072968114273703421522120449084006985448264780522128748198133185504663303494847393376238253293335328680471475092253662387357816421809389831880638908522814477972239913442913770154261491500439219970969105453673122326530446091172537981526788039227529895966747712285836464813019350094462096949043511370553407154625272787959675020121448370774093621166291405692831011021266793814488985427306744289607940254672561871571021531838007473946645775988540519572815985755083354612458844486629343215142901357742244082791843411333509370428716125905694124477114635265923702986491448278928218200838875952829873039587627312762485467626920096241247422398246961297420741226984186091669230195265749762796960831425941308282400985326246633042370223226935931239159625913534292434960693488311367997965358725007836384671780681094435742023975219295841561339054264315293878653452006350348801416175244558590702298361673128185134848761359825180015475194210016529072443286174126804725798887543893004695638133264765629527641568869784053180085340749601979970996517303343573964597197301178138848622240833023273552086573226009314231013399946794245909142948538134679135845384168282953809054707883284303322711009704671860190971813868239164650234678756615013411026576040764627974374048975728387207096048003906235122489209296249485297123739011247488053625515526778457617455311585995959477625559888653861003655715116155229799039106830016138576307164918976212850903564586899816125788417601890510661777254098207260393915912361534306989987510364868339273739526393574071889771134002423552258994006019287392836157766259421537757944739480655620902762636468525183671368199426431484340501290288358407152709906203800213041262720220692753090031938771307925454010652006335356452913297508281638003426846321931174507237076234621741783194220986982889866565374314731093378377959275192630282450658371364857885982498803781724602008170783323317191244118229889930699235405197464096367217128091091646011215971642546102557084767126919061558703407257124498766865960165594347509131078352007782918607969568367130198849842203247339157210822108164375366460899823376120138026203565885791076154396215465060101074991346842051445329904560011484398795264711779045977579553850431706231378661001840183237743317502067509866953501336778622484896699085689821903124381671414344022328591481887214157744209834198661762209102270744778726819576235831236259386635600394079951257209083289487885448567227771818775847383088771634421248662128063975633482900580815625558853854702284534494364942679756441814757946103661223798439632703091098653560853606949344870879396988876272603995613323299424458299033217786524885847349161289229510874732745583383850477180621901818651317459034266774737567180134942863186440750347041278298783852585075324377276772668938641592359147288481168064740311530257286440707888037542548690216278482074366248228434645268470469595205364788721948942533366043427833230879206759229614670464820026385816335825940161767670129089234245375566536945165258836082229164512433217147334302739811447971897036119101410736205492245163030321598594879246300092522045143350864708078052503048883598895556749167827225596454438786822441369790200552413879397371006429758371842618290151402293324165837215887162047165299055705794227982981572776169166637537525500552624504369219766084339092585862862514935654871436902235271104587207072877626607605916693408020629348720836477570127357671505271049855108511681743792789475745728932984435688646951068950720641834101783807177141601855099411866942242640998657680618634932974538386607998363219449765904905972047859734473300348652370580790847526543367455386863603384234733311581865796358442961466436153808186173140308925974779619326037197055609935694544374460466289160086684422421804011753631176780324315286335845247721100405604892732524564190626396236863590851027696000100561308712234487967859965288318480520546317071028690201449742994558061347789372737996497436267961377612523680654986935945141250897072626350756339630717121687992946199278986142916931563538212013266603858218881805917378694458154468166019868798052156835671730473280536555467110473452759432339861281140568238977967182773027649500357330110415175185545882212074108158936525578153859631731336780571294801325650525715228387293743967894430338334686304522459145654255598879904245407536689966810595936924197724283028721614293236162497490558945541029050893471443901278026285539723914164118371392202102586603076142676055560950404573144184657474982595841490578592688627649613755473672453499231839648598306409194600047606591283698444111293728219501704343389032165275017365259801657260312033771295932852774993383876470479425103260645330893921452655565675478397532313943084734275819367620659279206833488935069804190966901719763498263848843442104609519579710862158827869535276966122116382711093865764106517343024373893324456316389010580816447847869977735623600743743457625576510403288045124124628972553571040659848180282658432501478973869381839743072849255952124322903864325740768347160388393782643028576036376373904028888055631360082266808479233503289704103008031094926647450123892355243766366824005890665785918690401405498521785173355448997976736350338278871306826651589461713521632220542852314361313367385253029202872481090352441144619487739955589972493182014221592728741272179628178260477442210467512625945639070948267676767209970031085733472167332519162334076136562093539122627364795907169032362702806017061920602979588006088491014564315850015732481521251719890458628963518500624816789610783411359485502044077633452219726014886575692767968106263874486895299042313883621386027263075319873784128039819615791603063069051076467143750138490068375623827903262983351992523449815838849817663500649656602501003489213129221848014993059025724326227086973933290912275941824733800658580664144285395318860378201866303390690656757328816683635806383651699543052257341910401746645302382919458605038881594158937642730213465150700764904271225731306752372397872179657843848574101242433720700564924641579244881741516719517832029325514024129649759140979522668449902266171114075706204222520920552766203668760920912595467152331842559831910884040897185053293545366899325341571227930378162678986243602906227324002689756117319377689257278251464539475197367258231290546057065744156192617997496119645392122120629236531768853219292337579926518180422666688697377586851076290206139191053536135391262254352586010353256611859485953515240247691283027005021148910520562834006971560089144657429325452680998788098864200467195890345990599480540193535341494440514816300085996303151770169426537744006360557680340144942499134842659372716007972201921884926929733382624802552869090453766790493306842636901805154516389609056659869871419910905563375900655148282546861276168583532849449822500595170312703346917948034922373857747942277530530475090001453768974824969137135316481036865750251544386360022175973021484141172156801302846300682497392076901542961823770035057907220613990255933870017057349635852979794215200984747592684311823044507006322367103873474277573934825446217462644466930180511179708716743073463981468816998602621413009014580747660021961961325685906111527361418658014543243910687239917971664200971749090789227174303708309385254879539029196012141967392006143909860102911625212501117819434292073877352466589146607336092228587474551653421746521253552817648607453919512223751681094596024006522623832129694042035288679302486825849911222871579308864348721087776462551532527006573326262489651032859497142284033042171086703388904934013010310577094398422850285827920821882036801060426960269615975183910447497561595810914774343817966269725254711560533011348479869140209672634591553240647572863283972010552231464039921774788219711560041091994143700846418854273594925102744068470100265715590631539077303947017979527116152904480234850272903794165511262672730415199246485118240494766111448228602171700155725171668676710527380447775756823310376898425910837282904099276349857396998471862952343997847972329642829708961190649699423792072727696413107700071073111223800267375907142308072683402363298429999604161225518231376987078654064922697375958756551025872369745255980064512448911687329194705372486232244054687497783109946284145653688359349534921777233040205334511916134700693375129182844021908880046887735543128966752632976585126480591521557388609403604733540586911829342319183290049699993512592775050099311911761046945418425825749750865228990011982288984485227292940931883668279556042956244988661381605930310988817163871866909357417371256574779790980587549470799497019537605767151199296857318870233777446454971780763073242844469490181225694526842847558048303345077584498546663209712480950133129024752106485232634978672683197565720395626526791668674792620025910214363163490925143340116133760571341805296521500848854601946266760123070277004303618425247396588547063397971222197547536845856707866051245282932583782113836221134627771374555695664356708512165453706500955708770353737522171894184607674384234905474368137085998783674298463384729846671239186189430442659999298544806706565504006337900982995619385648677547039982166729504082894291081496760716904583205203695255409476977393060362048214725081114882291591473448825748711963674426714640668562305450343656549811581172979963604774197947316417031912845985048384664991553265260402833990410711746593553118268865243801959271844432741430428957517093653483347580712843004294032739050075942539739997658214567960711765453370705019626212326867032587798555367682007083159362461317244440078567702310191900288864669250679880669708196901156435352310799919954074822051845492100345623218444878891390415669384760864765429879721487132293900785678213441844944522070144215189436615308295320192505717348331957453994300945118266299360332916848488153156772336150971609554426085923808831905480968947303510369476161302166311517546722627970520820612586047069891667637167657523815768859600174332414245288854115434479444489931478741272790054387786153191628803388010309524830994366806164528930751441652429994416185793908805263160396294698872941081194464902726322893901334663912031376816790873880733840504424467015029905679900477953755585154570215212378610705275275482752879577254333502163095345526820952331511013961036895803618090102959575775462710380153578621752648273884854914385220069906678491438571761424711577445366440519983301474244657755595245785804051397870581571259922231043250393408275650170969479739520965201428707120794536001427023027983638778214301667324321886643779170457271530354932955066841195495076220145632448268721772392880794153408598474146018433297345514260638929583839719332919258571956899818438301748027547950193672263088203482721201003970926637587496777733037710723459971314922470388059429282839991859261865396709112657353854462224652503297407310108466804645769636207853582642158965792854004221619573767098919852145853719263078137304509027768716305572133217174481349659214697840368090470320145108574209098302892204331984153695559754775279402147697736473026485404697706885881205979720403801376770995532769600537593142005810908738795072967582617421654263401791659126609175647932921345544654592400562179825889181267799108436409314834186989187935199451145201927469819797774508568059630770297364355235954917826333006567470771104334300994376311223433585662139694246013495699605204893879603233850521885714997067947020085851889446639018425710528118680994097821474243159083534040662630343877021750162488030515281891581765998164722110597342525816980409116043573147602870020628724350754218123778858590121367376389683105476718580967268708016999996932114885916276020578182224644635443982127993239588779896897924618801974241880665844312982555705732821374022916557230574677253841246173230310873256318519336792350183472279621701964775749912298593515613588582244864595036360397157299605157291682610408496859587744913321275317823752302887329920200427383260436222595047573326567131052905084511983925756670902215571609992444325149725961306816029702206779956385969493052379207685604944514113791460246657453343484547788875566327667748903501675740077234998136681395709654877634561694585534212390784828721888404013032565073287368648307274378391269235131974709884042456476051756183243403306124304180768198176381615644206583986065179074969211842650114741732275562037884186697015151768250800688256761365684004925323722916458599786225399241265692459044838633669896870769538587421881006324771067919847709723082529361749773163639683683805367610847023246343761960090359711681926236603136466546188833411516924037089958235394721766510391935036946971551289190145026051190385586252730430662535834214290934700314423394693937054550271530757400582030708220348327394411315052487754293043922877133272843843687214283175332484145643426638404097858812043927775846920520837880110863123938271221959721226301838187327301437619479278497871817415277155095877806829269877932260421527896504362347824286398123021188703537914429412397460544815547496808322923631364790153155893077657727395424401697773641332684187889936509592320530315760619904011283123963709320854846346200252613832251078677268800993262331404134110980836182350447631370868362586324154370499719305912523024262991979824422879725723889468912690206134606908431666362789454742089356904613449433028405999290665819486505715791130967463294595994773643585645915627340794286734566346934588392186042742781082399931421902239278341691756142979795858131899349519240050239463811462183932572524229063048364504283449509272575896121071540125658194835095201722308372178270072940110760776514387701660689390464575000452864319501139179752926339828610006706273724168110915429477237089877849244951407904296498218272419617208528111921823007469796205191723254877966940814693114558567943945660731083924792675376094606673801351507546648287496558780153991349025443681803729951799298563292891626632527079552063312347694485339877498294836228234977070411915389254963288968247381678179917519202509589793350836910131874141391756260238957958847673880249678258849501997542342312510832706786416813470141961828215420939605754082950600751225619238570519458220053683478783721300936197899838721500019431874221466497154746990513442746226748315224045615244565796396211039871128059607058159490194026232339071068792948038529371853973933391679911427202819712325387689079902458610797059607831368821077314193669219498348778308710100020938118812236611437967010822320704984639438744138379098313526872949322965926734384631109653771560054446145608180637672721179635677473316884709207077410758005660501959306914168683323421478705386702032131476223856194489083470752573952941310627405632490976337770165274113299813481244077349913579706153990971369721087731032466962955042615079267974031521420783281045975839040210402252777945539830386460048820151679823247592043146735910077221458092158398365872930351897259335522588937379658654972427689331498375850939241117634752439289476801786089572914858393090526478632986788068989346149273655048891955580922191431073832083931221006378847735889574274275427696617549322104225879583215088379314537471519858047718114258668343814077844251605263451177464413804070620931188044959023874827930212938292119398505428299944924975942546012033661535407856450745020237881942198983025112399583371831463441314596442172696285369877436428567403880163880112649588275093590995306025910218467084247508115345116375964125688116402737880655370117652113943088061199390614056675380497032695538224449975602482407483000539825367671077524457129287110124164526703284307616526841772657518788933257593187638734655647503363553577074418846279096125531435232444119518039882359964546877750704226177932188487662810386258815301542636262469194790880472087624129231789098872085361956219888396232768382181508042737903704126378881627966668706969894737531495121522018089891171360700188425807107662184932291517248105121432980008549240501856970732365096355098858790102325096131929856229339825087228130111220405088752291552537036226116050152230373162505409191752032721421888412990308250277372296605925299262644745990851969872061637343618373961224530515037567704904307069721880981185150145382367731252732332830509430100687933713294071514225892197031038413088794495976217283588188267167925936913909414819630647618791125282433069106964373834244192105838578231918128530758377138832751092270822778240966662690916897295560124001523148233157971220614216567502209114198056967841026176192160866937823393938246770702826963318346873951488577077877367001573643838097382182279368844945852265054627113255223704385352411882982107160643868318839456337064480106055005078697443810774410920004341204651916773960836039015952046966470825009118621790930962226680959847445963174748693627879585924520172278271832279811508105450759075539924842761595843833156619698269715891715315466020450636326521661220028590203014293324284984990877657865417985318480845576993812879409724747620485233482859751886189934763241682580230302820789459781621749982550052909964813847110435721007771827541328903459629594430275085698314807119481518135362038402786074753712424661245892077063775929814253690579166338572771760911203638273253890923235809009709447325145118085090216780651650930827743044486190563545053115169374831377968463373709700139973351349026660209268831822628369569179831130994404385541159359350083700317904164653546713164639160802361032934711733884941637250205769409028076353378501200411921587081381240040877080477477841489450634385816735706103341236379297559377305040704608353086762877856564219769610019395418025728605687384887723467839380816178513964518721531321525604018396802956463282429222678033730072157426178719527290724482724666611646596798360108084227386057790475248450988057821881681060738920949695491083009008370388995716480948537413556907691643083049038498677739573586300453410535055095702163492847825822400506860919596778696096060690088436154446240319913254421584840942016219380633952314676069012492456850132650844487236939008661275708519040201740442540462883426894698864951457200331421043045435804709647280635869702012058516713522064673487837210254279289091123929461027216884879279171550498093237338965992619647223076768862608681315682587458345784596184787786759320816943559931668712238949876793478370507112023707934711091071854496907128784088781881332127915159884954676493343295192773714810749450373123357994098707346061295544679117847205987636219330178373828799452170007273274516008599321594925484433004355671229899797072564301994442917613053897848572605369397885333916074613270183228172809702100663104106929940585518112887487864870852725029068716590178125869918583938569117643983818599015323782460897127980415886273784617698954956292209499753810280413442551553119996868475249845962868453606940648224231170733996181589571300318955078893062219093121214030088124367694918984139931064400773918526461314675613497541552975903350134215117836743861970371630602951387284155751520288418993614010568280418275265658237161496274544371804502297207602745990481175323768947884205599079753840203753672977476126130636339939580122536006610418817317215255153926642015241241556406136543584331941318568942231047348293990581895536209572530020653525654408208563906772673449089644887735625405841549614375149779562137092823397733978691188174953253717079300551843682650252751920856748684202272871014500843170253396149293705338613151031331813826238221660618805670749840536003472475180241510999477396780157545923330954669377366188601377730086296741869337637711863111465061785449152017144427336731587223250154508157684126666952917164821318975008409100256855695654170730011932652523774908499000982365082743932513724824185038618118740112692351572055079423493704951614152417988502669854192584404633886787980617230822952114715230418058401048457029402740645624363137301344997373686651418624581700965260872813805331441956038283282228907027492183877432728988671208041812769096379362327697747948478826595242238327660948207575794487360100400828914793115443831613765549614164207926856158019982185134222740972627113586741964378917205067725625168339466849836069778744667689600998318661270199018272076168471032911043381741882257696144875724589237928462239464814679179223454209234580202862916532508648732723114951946909366183436156857940304767834977312922302508942034322466401850043385908399795798317273261183191240857118794241805882902441331329200485818906154504462145978183770704701697817778979693882399186204587863298319639657820142273361809408142048959607982435621129029518214793092838993132401641068325422029747745257974214858181355408398661527296523108043373980211461888715969030188487761540327726158534556050053166039589432153789751344388271664330327819571675449973928492927454336851972323510292381020344136695073984762102389103002040157292306670478916768126249880067736614727073647748606179634920192191129159159973041296016003471650772926984255481631642705228780426807093404859106386317891535882521151300332104057559434589885874927221673879261988618019882617605362590919511157696361110432460966784338586111285735896258753180539060522243534802086000299273716298083961498230800451255274442602415315224051521532953974304028113821439190963977283672582239614354809947260574757852447520388282264031894391469066585888087102688588069906119100399711605269350550521175431366366205361824050406558579173581750871422471866901307078021568991034066184532051723046714540852502743515740987311861175512735198694300927838814999520027997233451760513818744255756904447316247157304671715355793232468376650780428991734993282250443174885317424315021827909720013470058392835388627552451691609658445397582905496671904578865018376866224520758756973080471270728038908116424848224277728577758749298943625046786490829360533470044657386192507847622192547183786813336292814421665161384902393880106793156274084679870105501229962925465240899120999512709054291356248923532133409709420946879100090435361959923863466859253827318552337800544135664765194128933316033261459299337046322759011515255003616446139436824710014906654182671971143101643362646160819357148077022074201022487206544130740668776916847681238735440295523780400826239839255316373710293695722429687853747655168215020883981739255148038337371798555407051791256282165085303193433995301448779851742500966801530113026876501909507881765376766027729839561788340504368111861052166833834658803179594581612281437656569778007575626594484277874455100221665778140963923486253969378827860809693188284505046940126332583664587921479537316405198169203124791359869098015212246854763000074062479505503465012182642191808923215661150595491238064160164026754434946514445256643943102387276665885952620466974989468790160057666005085688878429816386114857991280994123166095009590029158492112550059692066022893152389121259599309730710525024414787012968895523972675826968270992887418339619498978011221768641730358564170727394613373369180634948841468792294654388657714737997342807136332702143012758146107753028529761487218705380419760523278549314097144594737939770120717595767712970508748999204385113460889160410726369759178183126494248851888896421358855317280735669504768866640301578220559167569276264455203857379264375428996031667590498862696189659832813611875060382201960057219555710967129933176175708715039421857130024669530194935595918587374567300249421159364754645903125617558681134734867690909563583500494842709866762027873347280536844845043074934784727392219963320207111318844145327277639186405603361519239519412294081617734539565516828625740250245389695667000350018687122845698587348499127654246631748837899398716069234679511563726564065201109123460590688456126678588242829292877339533880547455788420900544039351501257888186289757932534465916158286348228939973173651817776396091607075612344968732474782848969286939503705429629774569334222171002777038394280749403031864428237373894330298949946884286589142878302384435021022620037875155579055734274463057428529301839674276004293780631618882970157771372565524316671458609254341217092981897749890153697651634911060007434845445556542875231641605407301792647687380693159304284571394801542321000911270240044461193541118077042318403858024285061096419222594814768080015912042278154358408651319714949777252627797651591109904691054051728920479552112440171967861731553836347263976820171368946768731585732053519589484403926879684407751440128381787869361068627732870536036512308947630709383630277341507510722601479890420514428209718462461207907904818914700669731360840301274657557308454531538044501690889992177227281696397797294696640503845503928256181893983923336243395308200943955870386770294509487196437930294669089950116882661279977989915156226258746283102757371198549852495009479607627350552337037059240548561135919297660653812644043667710059170785434364774719136937298796654279493595173588431689537638027622277431210198261551156397609605930745240785107582533538673545192797844019643613129120767725081749720074415565917135851919933266562426417394372558917643967491008812643453320938591977256819407160659234507737685451332722136057415819588094540906298196225281198846716848224230898374874793913130048661504172854789733228982521816634492243069344735982196406176382758764908946672800109893114356422364041154555813754105053571789141792469380277697578991917440841753126597896618466360497478618582267805742511309969063320235362161781190478063669900792401095726440141928084827234564741678508197496014392767153339168828570812224817051005095724629839084114471818044957138838038637361565008693737142579747814469321339670848036470222539355116486653256400019927704565051615065653741696688665243366577528940742878905652373655593608867349248185947135441871194741034653671025984200988965015991126799726215297465650197802343187565989606293802065874334905674262036645521539295201136147454766721445180055382591404799828126679884380307073087658841659377516100762102322257622896509695956078130177636394376031636408243948426424245897396164315530369344101180396322075685957576173226273214957212441164111272356046137895760296819084954775556768688883903045803760001664591218846258944056246915721968318365882555421588690952286209098276230241818979612884464464979278259747311603680406865582722613327688096724694342761401974618926321859060770784958769351255465624434621899470394043872154496654459695837759955088613184874529810709040274744925118224515168877216561565287370475525532527156871937431726255756874183211730153481619425918350996721141165050528407537202690859167290854152202626529468513783747441831314680043483074267902032302254008764609112088412472181934494619987241555335544880846577460584548238656556316438291862515884581802080020269553054166539622908133455312551963699558269282428007033121014599839367764187543986932921392977373204774339987913079400848801505319428454579553396887799013208711502314606570183093823410643190321015775133186165099798552642855196935005930459258153591573141567804434949521077774381210356643964657506408019307643301878465285365975863530590329118410465195248454336919879562457991974460278917515180837553405944813255108161115671202226164539981613089906692267874065940180524345380224365936395251003801014482404591224543061981587605917948727866702067520699244646029501336803917309374623965254622524221381847246622371923672835676382171063915425370245901723123806511911888882683019970014547584498729922073946016026111649893436467820826594517466779266810040007205556775740722962587285386637232798345069870874425227963284001840791971689984672894019334512329235117422825160606187694434430978330843294689462944467726550099990411845207869223137366356145621446151509244411981567746638751362824088259451984831599020181134776892479859224818299411091244319517942620261500599037969350677270264067666386495951562508718255326070129264537323713081765176003431247375623181586455313631939412958938067649256573032439487633522774439019032914593651861981930858906780779751538083810944938704553405225188031979223090284382383290140359635805028317265358035107455413029108495142980204268503672541869490436791818872960945097761945397634766322114700405502638480665453538006533960323479788475913854662248143756053938149247051632059677761280025223758629854169811344936306060279437358514555148235864768638731722681275893458686030979275260669472706875546910805549078753703145171059377533455754990344818826617471926882195863199617181757395707959866798275867330567397363848015877627109264608951076610112632897378532323189152315848565614317560204662349653207310264046134707716516763793938704677478745147581800060213279672974457910799076627418969586235442839052412701467451466035770997190574176624520188821041440733953547001238590677546650438644581940257226154969135246406913008268441392533872523810432814719502062485906747591693875618180328913810799719145191276939135387061026982622808934891834729228754402374252119484766996132315066312570816619319386349199107250663961861562795122319162899437238721528525772754460146970280235262649916703463282288818280176940380561156980086738647265765363658822111773288462336981377756639598644599147302136209808364569612443590441394019247190762909478108260147084398241664522649838778389051834827190542006916036866763143977706709598873959844305425323562029712979718893003857879181324514793085191081803200553141325713174617190984827436154972971863103399747216745442276701537683130901285738198354391011130894833775861132366764123307755206162102211242365077706115840405633859985408310479412710288727808259659336548658596213919116595502908768790567345419761265527383252929517739629765209618508346413003565657562449700417509375801856866093031312658516597550074470194953610057369122829699231458703386948780742788547312452364392561146642933199238759829111385468803486593965133148402657644768916402334907614109300092988878019240334963647967172705883482299744347689663801621388910615659568591183494765962279844751598909315195667764853732093800967881540284237503201516133026612499001126998427446992379777949975126953937199642217386582055695492083715002992866452562520656366646424845256447582627221390428774530859319063805723311626685234487022904548837836085855353139422277764561933951336744025217313092583195765739358778190298973063636539221312924872969007495561795850882959625784598424722772673806892024025441366938643897185063723436700990029849786398946053560084641858677780502587677951397588045038992010141628682573686509159278108424240698317977415420199824585600503945768730888624735779605329371593012164690062024028807491730136725568363983741361152515122171998759949508488138581990018392616909846238545978173350218322371733899963378068559243840576333163549299362503851695852611331634894682627667056788526931596870193885542560504990702947252732334255714059781176763498194426809130120518502173974102905742901681809559916449668202215794359653318972809718000145864125535526004077086607237821432406063988380896276195760582819074322300649889977158479273849013041935987972356678322959006479036083375640499032259283863738454130846936903429832263268961209325114503476837024656616762538329877836411742476763895287858668679348686352743186671016659255828580037466062403704289205789116068276199129513395571925243325346851672823930941573046796486424986738760642454256562829060328073323236280881972385925115034338952406049054611171732381953211222978631549826385628221843066382437147848420314504546176623220123245951259509702822967951300652936285360475520203278708175527798127400213583114271668935968879780625074528090803806727233095655557613505339217402227050611957028083751224180673360294273457567401476093465380239760548376459903374873330527410826460984516423745881555045134813611409447333470588816744909984389578921957482307453136795733322707013004688244945408260441927750090007824108997567022859347023863563405132569377552497466320064379416464718710913338906890772521616233529629290239451751643529999924771665195871187032963179487301405400537163325000121827001828947674160696596955195345668941853733960125140530357568672550077726931077399775767930642767924200547295619545011481543233292827415856156601939306995921127477431075711554067105616570075269980823989742425649346812218813688222808864139395083731561092223820461333026232582836540560476128101108693986993705065999191396778079285255744916522952914721950399408826554989393610940540686435368462989874299162379651845582909289545182645603577396136421462646706138276476522348033606922739746253536676347196749943834872887783806319966336999257527866844638118566424912176572504053127556630003724321060131395319316082600755670628796624318408659481204449256640506993854306686502774107797250927712183713479639257537612474153546120443005162755709910906862228538374522275901301269553824074288993801805654000184247585186330771167049501736614249795578961312004468376973769785165977695339092073740073776290394106685618598783252434432270332529904774829247156209301732506781664748254387958648495026687141894327358986401738143723956969079499859695693681317656509121334361867830145321392181080875989855118552472469628043257197914596212390086145492259628950315337899641247387375472217596871842558197911344728332701576702308408391348091115212781661658074515350639177276053277593796800788224760329652768451181541663129435693639130673121661766819869545296400511938441626439489852983697622466348620067287214331576624739896001291115667891311437924309941465783470130418815255082842196517053732027638794257584144882983228956919774454784392021527903282219614850592710279280558730276882076174031424891089334803357759223924051976910691761140819750808252874053865712620380875477021075037209141865926765298697705357459865955059296168805351421477913134014894240109968117875950027378232048014561653967029952934914953338631363717151464970164638016972564574939636537202641964864757191595162189575716301094258869424256776115949039888524041482353622545281093208930996585418573315010391970490082034074769688090797892821036126879111180208581772226190024447250474867420271233314120995800935865107659008120054399969320791071715000873066809479724521336277190250413413820112236975102447538156102383532943604148892596992933999982140165668146206117261801723553020568007744730104938813003657240956080322460085281927470133788520791730979346306846848155864606434666694161797444991964859385787647400558422216747666266615514096642905793675142895561364532592513272115456024509163486166087883976431681306349674331313699054918629099995887856509696398311004301664608337758458947847083798775068483451158315432558214101907007208628145363094544626642239172089083647820802583071206317559513864701692361863827370063356655987491137750322748023262228646732115786869968249621501885212608496121662121459934854045206200622399923926296843074234158741889932614214799049911745085650782552314362284430293644986157324309275291809600695458134034104815504300725795688018647250772341251984458552955356947919504252182602234752315483635294596977032242391224425905533596142520370702869069134571569414404136357085242701417528320501782737732039343304015919370797800023911841072014437840881063548114553904363447595024995039408845278622724534200391490326112750409989786980244176971321444365878934535334719868111492069404497109148607037367312493005240306711149762701563417003109068902912274321479711156116513021514420660656947429320296397595396152368615759733940460724358553478824483154001979249240090074631024033051806071382480012835642643466665097462395191487690202317127992899897853976795752411094528846944425368695463423623190698660187997486103923516364576314320428417499603276954648729082282245977337159461946352505245761079020895328085793361467260565677073486804968106124526195630027788932501680554015178233291495325797869441940389407454460986121283848446726002782452099979996702430679677345033192283712527582370705989845395514598316372308510904651397974515093233274988624458433072691687438590590259813705254462739666573135910042577817698329788771336543181867245057982147205746222754994694444083925573932409439327970421467802813053514232403366123577605754514657339148922563144949586367072101571665690134389131959636207204928090402682842150399879756532382668914670024076820678265478680307598032370852968575169100451151280905200676945216224350260178087480281697601045274071196697974974121312751683071748231122085510972789439356531887667444056330973051092672584284120089171799976397147962418187421769730517031377928244693274546017343467075224750794191404169823562704577372350736777099665695928060417552744069136845585945941627893980476691503607563740893963373691261106664151365229601897153455399537270486571998243783714347274656989927634972425657097351660405416516708320152801446921297248911703944045784220889776068614966570933137373822894866760237491070918008016559336770414911828438491432122380296673501984715558856970513962969278718388913293926625485361894357011740451973459385204087039299096126656029397654549920343553199633986217126275233104760922628945541672762085066722268584925531282605050028071126716110634431092782763883862111798695546012864828249025414407868156948415838082823978929367475126739809873191971000918411173169518524079217837215735804869456147740464895981380692772805957786658745912924342345518274236481201038418572859723454732796552579316996959170714875664106808396949874297056572775909630176593103475077707948281229946955519738890048213429851112113585418009503737734268511908010029200830823485746779619021825754028624447559987752951440587575567516859331638728098550248564312207231271981256981359389231564694516865641309655830851377032198593524824675149622289298726420460102861041091638062296098413473542803804062778283001074557846932187065642692008400580282412178822018823078760910322582337972449300524386407909793842843665264324998097000937932227253031274393759866265879057689808624264033524166221036873088345742001759062205300682349879733882658087637586652027072737903464908083179719029651268791649149938205201025983388099113721217237473814745640759375222156290531392574710831540701244151805759793246545255570099286106541288751708387462377050615742996411812550658438046229838081247695805247699949446315503236737842931670829657937520556354409717792851431156065778126777293459854817618194254659401863708292524526581740240443531390451204739577115272668241680650541985445702125983150132225595410377001824028584542241879158791138226179683172830129301322774671616520866224598506639735295182607643402563935786110992276417205594018760153403100488206105768183461092571779394962572595056562385338341012169956041840770598445420310376404683337576816859306446823144764212648661955694815330151557670954863009701208135087915115758936011701008317906928903073140635390741873486343343355430659512028189210978465021323232552793907226088425246253003265600575579196375642500734381355255689382436803240512743613912983148339484854884432689209071477279391677705894010718802669595699049830512341605938458112135413915636334549709919740664234084002242430395795688533827089213403397898927043596142205533671360275946276104105045298751187866612636501881964738723215074357872505334942411192832097581171229073315228814562002429726461332148927965944035288099252819065267090238395714122943504908925337678694852012153268209255252037452439659623106248479895972116464115133339345650216351390458747630300830348754486504639974757097280537639260281313433509533068726718630879842164299420792106078672824100447869338850015711289182265934626324633664700777543268649578720971152378868962725972213287442984942432953568071956174038835334542125773239135901561694990206861313998032642126418416737567847550101083555933079992325348079911654588832092639275643322185433316966903317183606036455880333956931957425727484642078433466841688605291387920388270285332938594611851833319074472772716703868458835621962985152906960255401458064666720472921501293952118462575054733690801772604763304561125573034921873109960809432127900688652944726943716911302938833230710672546981455005992242758853810746165700499305003158560094345819848844114983106504395695339867107065969295726263167072079390331054979478291123170245334418116511686420096133180454291709020505852717516399866778126663409840347908345462683245874036170445795747240669813030883816344829969699700001157449932778539251886567365900785428686085629861570249574349453167658630175632218331946688776013129074775459332714920504164387092491259695839529290224373997754370613583415150524944150625252643606687661263002935733895720621187489553490898005282649224461535543588426553081850729934973198705047337165481231647636657214606273537248454522891968143099904250922128496298525568779871257826002220513855563739537892946923177454472822805552846862267042870871799680927195366186793461747014473291127122902986753548344122071942151797452175707504324586658629351357857031866211454790414399668975860410360486633873239247996028140028375793173621878704090132138093341475975662388046766826516862544620083066359455109201695255458063485363928670132874261114791631328752294109269224072033982834173445815613938083129524158086800593537509746652311749636385808642700232674235859303664215532053316697789083171760699986568574862048499934196990808081655372681973954538884994862113884675430841542641226865081694564294646137536831461801096307937289762664805746097499518962096836240889183316104225527484342542975865826787457482719090005581790520864937474529328220055923299801976359149013121673884908491348286151360697826760130060097649352148250499210039592585409279291137884250875174211285347094711218005141570652063553517593125474544025495470172179880998045568474522424842863795588572490694547118610619512128767128335011805294859342981215791697569176633399632058239973429205859386256251196220644962919272465224671750028948323832107576851706309369215724458217148030047789723644315247042424977286368993651810689694522309913374799330498878796608155482425619408574885276003066170452686161254020388107866684353284849707397436304468949758251643770151774436708699723575728487530596297797234934216165369834871915018758600032210193830332192354539221095859586704130291422623058237066570520916204337712440365488959313051057224217119722456299601358993736619797413785304887495340381638433845779010507244977377656154239652449656087485818653790003138784730237077140232797175975998808135789048019042236564581401518497081809999320144716307572033293450938839914291043285159848077765826037681052802921317323928481210482060740568739767208307302762498627614095640445865611954251939845104800815217761221613778892390630274712705644086171622877726013830251191890217408504265856762270486914373428663864294226897254366588711615510496128219576525553244416978699287936583532531222338770881504627430571132794637735379430299905464937723941612471557400093589303462459889537748302251726888572461710373512230662280791284742884595621679110462097640568612694463232334122215921624675957844709631530673109907509153773005471566976709344816394323110467400487083608887328405537970199421886667166494871020206848297770866291845453597631741945840436210057213868193771979994074323280010325176173856904301250055979086357919374396003873753244252542916247704910338155991773487612748033357409106886841881209007078566125625805362965159618186090031992010130993557570057147744674177153850923966416444914954220193449808711220446536964453298490310357843406899159746835560882361491896724668680375306257524799570864522946136511134599975552769948107236415841884046201204743584352448633444117700772168150761211433625195703282699174063457378864956427644512868405034146053907123644242275011016109475699096929461467385785186320269002883764142320378886982571275116945471700409022592056463004474337648518249613934845652106404137450687144517581195328642390179594629820406054359818869786259599188072703559490463901824973970247923835014689763934859359791107333015901579962846273040986643058807217603491824951403134805444823516072978627339430910193508042524816829024418041935443572089532949655342387213426481758381109068564397480413065077465927959958761906799491976833963987944842600785160090288180854977996218023397660780781706772811018842214126490667501437795660799315451316332819752680210479140349114153127482277975328466861099718837951095410507359407316038326438066905590773772899724047875858664213181179986522992800700844581520370090875633702556969782575856502981349851546982726956515964979941088676665492943301761446480429012543780104692489263029250546554610107254815483262215084428367022318579196108320420734438422209419101344754858824800540670086138714178261348674825326182870714857799123695291876682868941755844989917802397722420834160423501462970912025293925267770954075650038971267057498669119197402203833259859224089060141437344125336257530537715783545965193151574312785736845469108319678518358194256037408086888969913221833195890889897693178016289086250740328270478325955311836000380188661701869812962459203481316528868149565205813965190830097145866810618686823595600434949786410708119607644376767088556351149836760367951871041654846064652859103786204077706837974876651062477509491551241396340165619379092116027696626956457159950590292015139741887645283885954113788203373194730353734774972486368612748261780808812442082643348425524214748012121730656655047138434977631159129977754637365474583846310681916769163619651613591563466355331373180277060508361187301012627395560894000183440290349801131952772540104998141609692178719288922652098799569390178343295241000737631046587791926638815305157637894641484988422742265844807958017475990502119793035670301022880820763249227607064594907911954488328022604549676016181012869302934152482791654631817304941347293731373241366870757583974333930982196650369260441945840877075247593277799916552158151575832273707600404745495235600606983319156612102506147932602233784980425567544398154980720552197944224739826902631453303625908350032635747451602661477745367006097675374694190937159141650478528365912748263893466433573127642606955847078945250946911303107041165697038490471500810288752954432963845084508476013060001567425848334210459651206149171010105797679920224570294244440077057359892082148539551188645661753992713425229850197579072357072351101886354122123499287354798073557151528347774933036767172854853801589819521584620256939045121130798079912199509657389462071569604622223398847579384294744058522207430448438077875745171224087261566885133729688860159092570963896497718175549739176700673089705312071184163030552591012154334014124203034413825054926051857931466182883053218045913496544243434159681118111048983403185052605135393534057348200256551827010255582568812292084306573101346749644897200868182637185108498485191869788187061188619438330210420533687923223500517628600869007650600579588772783797895322209699901435820359881047985720208305355789611384368040684938875273755080120454724373842968562462291087771994718639797300172672764208788364937314969056612225402070895134252318435507884450429927048345520882010134514870075268275742587171871258299380594810885133404501299934346378846421568749153036369694980898132874988255177576016546405024112458143439309997282088523745446589194118592642714563040053379792475862351666456485857184238611665939982947513047503814067772409993105413571918085702020348930435484994100296189333932191380629511914434818814121689430748044740857343467839063428552255651208027564728214228024082088483818163794531452719327973875783699692223898528142124835960852807185681685521548465316256935051943014798892527332824718144631069701070428158790629135305016569236233013537964621278910230563985799345435928345241130947395899077326296750410085223138202762333413522741609203477481301940225834056303293704499939485705052212070060880727702305995456230003658468820334334786572583390702392199040089090232128078074995398358348470171601438578576335947333817525598364873160772441434610882133279262821653030546378023662552805441887029328733116729150673985218372817429504333537551304932652897742841067724527012353298656173769179081322106247142553754267854643231683108889654641001352030695796924981519146532076075568560609834247058009453401846247683855635693644646107279430289402634271303362338765093691239665008349239348357967402376669939403439650442666748493432257490667785693096507960023325645351252400193054384675764452147692613691918999314771277406636277153819007199356507849989987197284703230972039428904901508175105586330648973097464986099071900023388298779646916751495942761552797420400165976617091147451273801317650471782781986261743813520222151145727142025605349472800943304555767816962880857249677586951587634834477497081699084623940892984701724216328816649000294879016013391125550912374954207769381659569086215348860377035155781888447523833041267124214345491548670211233206512924789230625875805866772081637138789490813031546872054008971847497738373962837051095671180990847688077267487344029577840763914101096528327530775886682658786875337747077137678216340800041437096328051591520535909232447350083988001672514286725801917585981666767686182536080307782657979965428354748450475412468590854580428399574173104179165322398271442277408558180121574455827461279667150118323931235954601066147710570019757677059389722973286733293812249322691914193987436245201193112204275491210772188147753387063414097331273780184559920635099016411498310141672809867505019767453950635367840021658584649196361737333772899284489371012243404140768359146501356115209499819303417789534197387658981524854037820074387022052405286671787549282831471392117501516408822549583576192699876137941892671526923858476322022509973522492427729101608468719202077113714258782557817010931842939339606344410111497494399475395055996380718398863544305113392807631078569299282197131089983819765337248319902588194915005996015966404132268570435669144589676921551844965728803098679858593924782616456213021247759466404284292166011752217251691989458069783736763094847643787863131880109550259781436917407766084120078329502316655841747013830282636612590805011253361852572700964860348936878144782070077123280976456988504963058911575908797870842827632155380747350073935331230304031318733826184693090737268771510491461079972451012870344261970803340826474487671801290322601796078146330168372621297982179778376652665640800956378097014910853419360710966489541917580379180453689825740602204556356426978497459126922355304108880788788840222171821138705043658623066308041497703255713309698657628109101844640912731248171204520330908569124224494991225168955862495243647008469647078214670213490042106890904658966967410004724241540684224101144501023839120151192521322208607095018670248999620559154118872678357339434852636142528034820534572625287251019798309834358243322024950365032829795844977678692816036518540954909107588352273017368898671933091424264798330862355153556391843007519465096205429295015299809389483894216771863402302945673096265569410532355112322409115938746224932619227369320559711481984704137028211447963241904423557457410091347704809983229538483926154500566849697074851882965335599835449081739203341527835520671586465469512854207484317457277465514242373763448035763059693186235357936572930857387779151627426697491728725100659782651169753704747705394118859434217617649861229053191799986105962847055779742572504072742592216672029111740290519837337051892389768725212974363014786253243723615506232574163833474039357020202586674063630296346095336474825742075882377004578322409283643361716775883748834937562031086876629485183510664201887848537138435377856161851731411168764430119185380422197380753507199419234644145244776970043317286655656953616348209571303877158695568082151157687758356011114994328166767657581320981501320892090556503885345577659177525590352541573336989674582699298223560551313914926322016130056012185077329310361120507301049024255434231471590413333782693346288169127975802282049023581812673612476399032598531874637616513641421745240092029529607156317557863242335230769893731954588815458063543987297522261051261318868225277507842662260931956355123361089543451954563169596347555329101700444502374361727101365711702709682844431346514919220810022065490098666223815191824668453094822458186889588538304861276164766684522873939479602274028407865784234239518769680774557029272470456671923401473993351731770276486161640911491348150243220518899080356609064847530701091836657023015773052755703617388134611489312797097720397629431148007304138461806416030667621183963232653706008373184548314163750948120701053976523957667097332080424860996515632774810663454114066448157665635657556065081150547646652457185320400808280866108702823516824033015465467588310273349571499050622136934122381154140846180162307489390040415871087327017641922632347433519948236245488566760404408398868677842178401866443479570118999433672747466673717274194372759560766309010178453125513859656714321540507127762033842039710447445155167415149742959948294222824310966203916590816423365886281606464102940450312677781497427213256919539897548608190966685462548121268817124825079225027134462531221178433550257663195651653880602199451786310980809421843071632750980616180684673911653176581599747989809641924071306393311839168364096217079091872464898463504350779656299340549109621686219073835958976172631970995317681888080939242740593820612249137559390948209255511011263400411680501623177231509348894551337637051753981603427728792843705296299819474061942714530002409360559220673973548527562604960974021966138559434355802928046120582694009603873994805696270362985609311171270396686260189835121895026096381637952830076883438664600616293653542308720818956906595187054084455284892930689465979292883642844357205877775298453673500270452943067281152707472265697634184527085827085052850790490512269464033071531411529932958464369192667571218491996969040134912664346100224289571205897944107035009650054808734533499467065411769899925181609482368607066143447310204524239095444845265027175169723076374530894856530031206560465292726084731057711135628975614368070413932211033677410115603614908912608479605178194655150152600908452427453700576165797443896871628713608980769899095731433852929264164223220330096558792186979346799405107599382985825940124030965309202209431648128214921024436116001066916369535937872873664319985051405795586280504625640121449076858544123057554884031697826269315369733257602997362056171486435356208003778338708250214235422769967481934103992200448966889546746157016594868464878785571180712739145092732200029614959482602870374430133583137178957597261075393403588551148934866388457748408584124232215948928096786637020098687824181417191019126215733669236054977521709959866594547592324412165942744246117184041893261519616221834656648481747129638731587203341879389232932875128585504524021724322176960237319739858629051135705035852387718112758916982654072903104674940580193514781400908293734826166306096392426527101739888637062225341296419309836178876394327510327221757501479877699700840852556042918245631868873484767804633813085759206486973992715325505656183151721506671325338520706277830744013254855249818882428510900545154646293223304833660078972199196513665379538805297764136468692030162530241732209467824296622361792190430099297850741256680241938682189048775348284862047065262696028422140468527076593473316820387297059647874572320067794663175466831723284852117583919449012971841892915043800611181755622643668289792488939235302465819353590259184954394694565813233133120533512741036631713689201542922088208437421983479279973892724578051145371307095214005949496099669505092908146143389831180049973916730327087823150477170289293883786480584460892398152578573986491524324053035774769442476979831510751730722869776964666365956523657977277091613430937309855496900212790894510034155683758497877154865329367145358271497269502946697566327009090662383597181851269593482596475899786870708352886592102778515487663160275513405092792693997432586674701244065599814616886485402286195599842647995082903175232095404896708678437346091428034555289670115885735168769576520097815887830481223583364561941264022756127053808987394840291945930222439012689090822247326593890183331451629010874963924784179742808594299802187799195384963572129433660829522707130025013129979755311695721272078026132861417167156298917484103781428847916813939129658408913514841310750437117046263639170042533921806865696799694198154493728946418327445075486814150694981392872305873103045180475807851931460755768437678956751759002343694320025993941360343878386706157805479485136751327255470593872243892156658239282534752588494402975176186890509446277789285084320296477028960034174734467933456932353372944621467181458786575988026107150212708621270527417173736484661682362388431532480016690266764749781749444945874672924998567037479776873409660962238276648128851397720643828934388406403687683111868485405437032007911621496768783575992272645474809072596700764502217844458670396604080057255142386542295111319016784804164945468283338689657098576992551731610833169035049846085108847519577886237987533301869450545172843517659898289613876066063611627624694065715858304900627473071538394682715058702611015828803854587406286491067097808998678516484949679813688248496418856588079629361770688375115347897687663480183011307257995126065140507720154259089034410626135667922813603401354119361629347820622421673744976621936450573045949034572427861483498422975882298275663062710853675592443092572697866878984300704032511394321635548686799715846535666372443710218840490011556486832485417709013751179369522872773357757825680864376897741106499845194041337144621061181712160950637333270620718473079613211254607356227727059462205561802444334923734939491521931349897253848765495481751272209158108531248981398080441949624240332562676477463632608716910903487164444650896443086473447222729218510503562506393117904235211399377630887028717077786956154404609120724152786296232478797479673250602770673917307967286243436901462370452793616004273834467343607268103013099699041289941101420287710611578976758470858052640560677140059438127195357211383570198731272003639241652217010501355898046633961799439697824083730587031585964860516161700679063536898596910520446584973296147275528328040566920378424150787824172760238333015299170059749119009094115229784022237807523496986777562849722799994728719852754446216404001658440635803482953686287309267403758318933200339268662102159204968343313132389082207035669106009603870195847248695669811065669142227128099782331396468165565284783669945389196613327715284368532617126328180257420941868813002869191668794207318779473455122426265256495873712271971720530059563953526221594197801201335751959821485064562136960047649861634777673670318644416197142888783984626856773079979609521615090847748277847490284223485363682987827445291442153450118002826208984525277228131744457188343253098118052818207846240796375492417270268015228047905488948839051333887945650567483845077776964650476554957980049193229274043875235066378781163679289553068226734134702793163375788680957963777367272552550087380064239554924626960507287248037806642485108976218830863423848767858722792680475113645281425936183267038216465667209946070064536679903785919823581089627119124676623263255899008435981590362463103096872343132417321010851338712544529674265554824346657276661471059264125917168173655608697469863876362111189978725573549097816780713573886343940482543604716383376838993976002985717222207694625263393834093050026627953994091904556189585831054217190221951073267893884296887125409650789879456253282101983125888211116506003326105725345344689833877958593319469190437871880777633109330847066275611062869133468245877012470287897473548246035545961297109909762018776331581578542555187194027822544054417923914185073879488594868269712206622286423928552662897140468768421956392377504303073748703049362978638318479947238347954054017250792336574972162878959487228821351849144919427504008809115093767804750389711715698758951040402105989931634046463972492203575978088048345196464581165769826634655729072568844726248204097192044277583141644648128080684280774469613568507793722645370367219763672206463984425345704274414234569873900668462125583134681230603124338453997872561482122444761800730686587791924306556604510144681608470411298668880809082036386606763822117420882091524313324371981142684577985471900987654248497501641780267318948551564750746414446182667009348894441407412754842902296199403825382069868667367337425495613817889413559183075828446751907484172674437117292999981569608729067829326530070538022113026492386375006360629161986525650243624063884068868400951315383712869508319750699393324330531819820520929800940022961412789329935906201985213014055637799041163660544752814792920387877618181103218939322588565212999945861738023808868355855945266712849378880030995641722018462349047687524091419543212221254567832532438332789645645230793140603371456661951057143504439925668256824594313399087198377361754203115012657725975732196454219783174863127687777810444841237066319791401897836437692102085623249465467655419820606889987309483920848993746383944632155026267633219114984637625593726780158342316795825221608094109617138753458656479955581209168520079265696369525620962058512363242827400396543164780838831402256780962471309762735030156285925508210702423792034464830033748155010678242808916986770135048258410629212528683880024531398098046149256904323275001619459657249443283073816739941941238210632833835325372891681852491920139361620568347225682914636142676415925089835597504035834173247032107971152554198622786403276152153278531082431087104263557222058231093032738201493216110706210824210403003702077237138171383118879881033817385816176995404724208501894888722567726747503981188658685123032565589292747560089260898352639903206586350397768354578706172731059356253321224339063088061529899056984064912094708269939267518190628306655261732449712082997226391306326944621069277789982791018535096885372182120509108002489344240085234395812261304815285744288181087760692637536947718572245865331478403406945151743968745075798375068941015229408044346162304033293157055465405538581359636348282741033006421498652329518123588525804358406757565990184283681512441395486983986109813837007443927302104655712276043418814726458033482825766446263102039196148396062890989001545637436464985940127609503525005389627269116182617889591281551438305525887282416851379308819784072505724713722124346450273021152437712280090146674213876974652720431765391617573458764150084496760056823035949366189075436309708087295283482919498327593490152127111386744306847053832290655383614846812783386544358367746987507940926947894295242169538389824959925023431832756726931282569288348866727230889204595382422007058936606089265828731380724648379563289363715830071803031392163181710759686913610973208754774631360705493022407291989740994086436612061367426855908740688074512322599514886316251789718617010174459708954501504075821895468139732961800688845415154642674401854578279165561917520183444079087578500738907040923394693880808342277840315296632015023566774535926935420360936685529799580260615709570650120067248426136026569194054613835585331381050524630839464970147086827431247909934982735403632032265113044573903154838169889210595077717486329408709074777315317626749964079057548758040279434236204621400278554425932081871358819693362202104316835274149571498463905694273719008408019076738019273811841050816450335785348850413019015834347910968551141512362209798624013389723817282733930124970705461353827680659070088283474329119438561486554714908403564826382252203251958086150131297737989677158723065139808169027253973047548929216487733195721738502942605855341657166723911759845209331019737693934255205365655489142410717268741928741364233280523688775070025973002582346104298872201269411646855263032880246639357995914826738180822589711084787385893887481552840360333033857208266234635598643390271776270055772238798592618622367666911117263830550419189098029891686957559769464854158830097595120356506535928070302385842092689787576112310363466391763994825339949678908968588946902896246949968775213849246170843754844755278163096179296562917975881186808467479663210635291163433887926537314563265821007765974496276033874562037930146917922953067757175546021849039517988388032493669606971265999451838024587227134836904833613084503801105165225989383158166695860498968213742020357177775887704872130672109766612348054936531202642226412439013247000002874211900754931651611393453734803025327500000063011273924378908978603968634679860893547934352435579903656284484596713218339720533447143026438380816787063455738268245247076605872983669110674271656309672720693829945936349083895215567569420605911706438905959463324736498747758483073677007890673319354214092090886113672136917033304674838995228694596868996696198493508004325749098975973058003993018759831898132758825038562781259446651359516267751289725553892964112899234081781525808419759110022041758557018243627704941055751874930158062771084311164037085164922283015555027282126794735156297711866700556499994351820697987276036965605766999726461436428619927599356283149019985491557951038319743939359190242075910455050984062879435230235269489893948922346660865466190169692913445636243943704062135076833481889696764689690639190736634737716845675970961658434213821396547822112247552275314229655188856504498469732564753338878114417662562134876132238616086740564452235982048312820371773855958869320565813518490110124493127284759449764900759941826512457869436174453833877562941394784073226324849180421502809127008940727683810972001852919354122305444391287710538384431382394143883295194909268161297376853425745770641545153060406936817177624588413088372011457766910062579373355515855193784579248329610920417547427547945249073356922445172915809982237802672777108331457958388236365868498513835324055069745573833490871458963114291184173063430708172994401219467826000914884428085850835662734059529428190176887231273707139469490631118434883786810855096147477864766945112870485340691021261515972870860710978698650157943136370810496639347605098395589266102698294044129049719394273924104876135534333912564230958079583595650687036308582788559195212435064034725175833550021432402815121050261431449392636689438256279119672714404216283236781299025925957116146634742503566406392827113266342206657003121774109255429869410585649778943620726016223317482400716711603621833825673374375742657074436227063157539228535168618988080070435490451291480771099231877583574565229257723704463624764801127321527273540438968163386824557570686546459615054837174237665611472410663043385727772310120968052499972235713434283705042387603303471621171120452452116639234109577508027554827696088299011038795745431147169513692195124339199431676349081225047536900418420204115566030731773719176852084606127512230341203475314683620468134377529749473135599372471097522399143152293663800142690237872692897246057983867923041220506973355610758814124094793002697034479496120522674716924862298030458321687121180084306790783675320534995217389745689992935083954714658007976227925424394263076304189258548885245377327108920372577236649581764933077629940913671862247039186276407867362307800664357360864627988326991280196374852436250352838929531352547878159962584631631034252173639174518620798648749177328634583630618991223272163747520212568593285498836602694493994085697466585563598442763283675154470489771423827235529517930602954799791311595737027443793565836085012107273940827424394482927303263018146364041948405859975065801221420080807400292007464346543741295110399260873924660578134893563990930629507810515864703404064440810139862972242854135190769673107948233998172987519548572000888779209517122111944958237386797125804850496113505412355401017978856057447224001579272645717665907443014845718132363030587998014494959103769792296507835072612169769838351284674357898017164636483698702049991585180175972429625036283721992856156091035131917941444452191854436145978951173886185943741831631725189379285094388932592061073141269238137247233181397294786044109275910459858373543225020974965127238197674614460899332334092488553412215038985206780960482320255945494778851840905931428945785922569747923050804927124326971067282461884161706247580857917446206343595207170559945710061189963397878899373211090863035907222312150809926816810977110260578984570829752485325109331429094605161732293376700463704349260146316651217005811045020209285212731187685149734318894119865359551427019397954629320818333842754220844590117346505475215753561504525666135466737108798635406773404381842809524638339861870637530598965722266276941936480786609449187736702594094141807592501075611066708887412446189530950254323597395036498391702714027180176774570770209223340787119394827516233306636040189419364176427919115131424604356215130940009172483102181507916225954714896959323335980823300702634405157021408510113832802159153551136275940126209168468408390454354741676916965330598425901164431917564918238706434539268435497799210161964182905095531610719475172211583013689285097198066684957516841124107368442067965955428519945060265801523804032354912434062695872802406949053253243930741323104084888405300604374615200323303198399896875307078527894421173481582392806020637046049022276293222860957240120739530858575386279352047532845770423339703073436263658271180189999430934482898510336438067602592154076688113253660993272631015440012600967281182869383369547264190165449093039980058864592982138345925735895890460817013700989094635163167443912745291584713269613300575112535356317279986937415864796652622256059131538084079443324005926040814788478924883817684652728447194074499976703332741153174266019854263597698206983796496969021862812498007686037263217130396539160608287254612965848600498267975318678832861604019252135825934646533875842296313225712326480046625254009427876918986685581987893185335560172172142406996653370562913425171417220579421453806942151449363786780856329837155553108420311074270709442432343760137685270469840090254538664389656894613231101493830323458285771803981339270969925978236276002690594522315805513659394404692119419375327102889408596361119292704665717152586069734786252302411377345566539345737143735750815280617817884780534656186443207748489879229179646793224269833102968531561353645792542265554073670165466919229961177441894074180398051596794017907388892061036926348096060703968097313248893999344199497567763619519410400085836389857610550813489251708643894369496267009537074438874150922210076072016472361734392004245328274004485479778391052972114245329454250966023875248810496441012012602328251593906626299393755941153012490322399418955755299177089719970340744312566624497494244593377476878965907459530409828948910025941341540470465898991175753322479135367562811174572828103395558392891705041740503847056111228235205809922689890202213986010945611623625257998706171977107642077610974967663006458358352166120003663414214064704439492601889721712945060360803288205524837562250445911732816037094693734261846261668284961102742117646043118654027468702240805199933704077411627046795836519377746501324215280190202951677247052300332439528031615340949519442410479270528069976384400755008230175527338705979812595873672453157859311387018287814090063301644015101717554233472371075859524588242355090608830122632014972921517376932917508433769228513837535041783788460827062231878670177062940429639791551462732739028167473227501495999751948458181465776192262268335580645924254743590310497091357859511318551982176182221630868351268611629033673571320891975421456260904654889536377291593862277786208766083325347539856396568454585992869059679240266594151097402833370364617395221938236669711427354339869368526238821189783335192003089595832258104703054243829958175963152361175159775117694250037278370362564877575087287651019161412545926475589846935939392496789622308958615767673303938411277040866508639496528773247403759431388852554440541457722936534627474929936681454507666716173338283227538364900416300310810170644629923601465954141550837224271889514331054369489312440469526511468802386710905512650304561883354157713539189177293852471774833777365210047608855063182518283783410406894160736613663023775121361806261546790852478588663438256744804815008001214977180838802767992852228222320512797234773026823179222144855244908612142724498335270501494482808621827690615634168134781330746244555313028014459735016839707748444857007455796373518153486379085809423673502786152879501693969726696459406127022759371126659467491005249303155162353530219961366360048205292192404118802679816739022721604112543566127321432988866687018850169631198294923336762407261895024909734083022471540752963736257485751766887693565270136290234622031896743228720379642031009834747188517780681479776235171861054010652323271142859356628593383562222673767775066845629127729212420759696541965838482258710128022028326343569027283624464442441512846442935096026611083285629938178598601539508125636248283471156584266423510608374082053157545391594358699731930592754503829440744185047739473191705814487373799114175626663204664269050241984350538701900347258042367518702367642877578972481395082856310686513330847957102356652944948301288053481495377193707617842163897699342153346190153450056065341332017856554351520937375518280750395925205249064909490108172707376388371423315859595991666062047069989967562782034843010251763674939259660953273515781500191627265369272430606722531204862068513487764546039621346282383906276527999249112571364097441575001801817601384724029798385547266535415953943228041235045844090712576533391288200981479806770774211390890383082233375254708572842472178228826993026226899247211735911626994222513873830312157301824169378091661430982860120733803550229464607627896988005835951250969427294567170993592271875302597133367061819071825560206180393655242453256373773973429707899157838636647135440353562549044260293141408243094697883214282730951945102858327620545354368035575259598664256962898189005082628221539053870162773341206573487956803188950690121160869400142330796808981363142147518179986849355026707785925528143563961524667935771471802898290594517259823112414717445101897119655778170068251373638360148287183882025081053832302117145282956946567466696641299236919136033531266964315314282251921260472294470467464611832129056587088152397529106817201460885626362612548356786558078256112558590955203262047101534971154997848265472553619000826931712152604741410576327495360979715805841581063858685391170747752308239520891092481999657978656312342482102416420675301080623569597624130373639283904636598537294902924520780949564453210463883698559442405771222259164222647219832950895042479346557094644520176913734870195105673108327927029566494710073192730486567705878531120645113094703899082393429509722618090748389915462465693738866257453515019788380385140018040064991448201885912695241851164123455912684067697683723329428279038560252349264796975707793934950941853463779382260383311103360870735659997394797426150134408592325608914883444585176311475400331387611419146838570953165554539040761618402818819884961766323672514538554916523845605862836897385770413264580952569225384873876350264444371870476047727510585857430115886921750979460889391750039810386199147990816675432242777008663483415533670514316734321101975572294735742715036024461991756515862203954426561436282427327190839344287594536016539074889204585006913809972838408388128174458846737990947643010009224534378189494697924795724310996691475614435683150154350560899192496697486636161344684037400987973973969635096601827704854312204000926602459643890971644737274790562297075398022399352149169198036150687685920213849170007627117949900322198735900166669562845410832658261046974469925875098373189243824832282785217233687323315031578528676361841301469709739705857568796297180282489029973914775713130164473303225021742281717286958867524398468138127866032032830042293931035794342550363547599160529791571550274574502559154850384580866166793039758678897873075390761990002029391015034296773456862720193631603059298726470260755561389930937671654356031282004899120852459314582347319812998638486890565140969929319718992961951710280552733970184153129163316545880255182224269941502076907626943933804103766995848887107841513873385861540240998224369335476826045337634312808513234598802794288440017582944688167028375015017796932787373306936842095990386960989772474287880563871215197322631482988419736923794529555641180710052843799929581824078647989127980402444680498550049320104686056942491032539986332741691415073128754207876123278108763365401818215804555393553223706055970266637591107830946988993923716156256699916516682352361025451884354348559949436763862374769206329136294884050371153443150414772049315773697234620055528116667264314967884865624906755884120283503764106913705850192936722935319822306077970043710780614426360085146323261135363688702462843287264812140816379223397885162896980503597919454101176629696093225529620911235672060716153688802409925041027923984754118592143779341025468550399466699219031333344968622240850895280601005559693254783645704892948464899011076295485547058347896814580473964391549376937654156053890820122859303094164286907244995334137281047992212847472220906521260519080217816553290970381042059970017231734874417615202110060119864374433679297517208562431180417485714295281716625366814209150293532033749669319730326471508651472157770428232845062236019798813669030720776080208395803931723868911893945433579550782494732198655036991047887660893617275170665467286534281294079631941449554331890624164582706363709986786843604030677502727990239396155168372393134680830667867064985781045282856745611582123413222441994499754717205983098619474552498534205588322141808695374773858146591517334809328719695633462366842672976883955994021620178752889462361652733159882738202544110339857612509928490656262871289815347228417689195126060878209773800494295964208289016546984065161889193783346560240303845278120795909736093543746906889305721379541927624885010021718335641131244744565920681420661216495846615667138054334002200616893279774769425953767822739628157433356852423079818883948322506592340890603155998088684219714993707615993212179311084357092697653140718254057595735335446000044350920797965984910840854674995472643042299621052440310736646022094894730735854829701216368213346500253647427039763056279917989975827201985229666596060222661519119654118728392103870123237984454734467678416162224901276465775537559763351718245144192405880774155000776701775093173615900325726943449885982660219783036106585879135056085236594388914167570670244025254044032578197862605083538169789576572278654816292809741073656280869383179199626410547914896073318462426216716462168127578449057105017790687108565827223995306422148190828655862992553236127554467491012258439750315574295145310990306468817573306549577036149713863543246207866565526106061458854391463061759589165035796512352629271709401240560219898706928736951117511560470900890463255761458719251548662086035801817387646452679719433305959074477375626157778523449021594661070135828682073282490652191236512918709688530227719926294949131256138451829410897829257747623137110836998620399161086005998805590340265808922334810680294350799972913723457990971141581181933711273544901664899313587520457498585199855723307262391919069657508024998027314552410097478459491107402317542256229891452910761653022274585634305719027658965968001108453355767553381960557218760860451036788681254666332900496027596304914121419055626119373126963386677275536391956058918797104392852654782719462361224024941157581869167779370427813575404551465222132126269715387033444503529304552011043577110833793664066640344393333448120386008668567129396390266362256806261478404485029059551412233932558477000264237850717190912908964605328663155959919555400472966184028325189218240360581619022458693087517123875734689520807715937833796535543293417859365615131809656860782822789275528995143924648279288030140111682337992987163600076360258617365128504946032940926261856622016811456067139036202181176470724510267934679005074904358277800053868401324569425661066839691709282582352419185075899802279791329972035949773891511914738924556747889001293619296755498531459861619931294363777418835204903553296987539805451715619178165709204072672298678127264138103662034422857901577538753911493532036135360912947857474838114128174265060079687125142684840912550630410380906056847621594481306863269158470013874320574327926361612362005480256877098684575813100986465187339066095244304532737678993055993414967022179295247587420829704341987289806667075317407448104153590238851037975640030122991722657154823124249110172168461681578598702445172101683030881072992530979752387178297052606104996289445518970386641346927403291542930704788339873163722298586662367865006261852832758289344536090950749491851777072884591233543996721760991657365624693877706466298891488683633668857272205855315275319997371569435654044083615998713674911416874054636263508571692427929038356448100090724166838987653668029788480597820551068140391490423986060158440197139453489433456561169977737227069030996276139976690036897963641087196761271961066462110485928626001719312195552389690861357057633872142909120216559286908691330910145663569973013854911719535851742874936310012311256836276606090251655621798778613519804463359040086056465232037181028737367515360272453868473982520856652509994136300595817141293493362955981457600038658882370448532746743195042966023715905886799372447249705094804525813680200139428321078106618102911536742375601265120494047534308119521690126626942975310036090867717948388493793295346181746248633463364711274723968037211661423148633039928324778499728980158633588649933396042349865403641400411626579487682310413141918797105283287535249728532553792100551336875866898934772357756894256237809242451509890387695289336382978050884281259269238306671940701387297608300614323090614608469359857059035815500878994223727303096940980844081110606413910221107945860675363034384495829842063519723705153508856925793667222813666441426543807260482558903365386646444989396011528716418643644296597671970196146594774530215574670294018346239102176775709159488378090248908830087826008404312754985785098997364030857755404496029787383468188113180269625328124344492708483797075292259170354142259246054821199373584290546958548688295002366313623013323149919564708245464401165980556854217922753918269451087359739838187860801586782803330729041333160874028993185570387693670589347287318319986104414748015448470559969594757334971566150056291425345584083255926568460114352393933689532347819776526415410757933566819949963040175399616139927235942968185018428601788678944231944375024955381715953382434489664727583374472875381010308308739548121971118664160739024816546374351385317164144934860023240448217242939810922205201694093460240021686448461958182042800274355363759190827237494744249843159583306599510935495631090158211968416095786552843809929253648897771849081705893809963708885555185838116598674127557863200839954755508709140375695309884948536060428653957961161212838976575742917428958774000703218597562365277008128847396684126233341873940194512628439640368046358697298853864798903624133936777328995579286826573580911004580410195766861618005863280575845928367332575310936232143915593249625070754604276813528816740707375288223025752615088457288627324839049834483503070571556828129195951446715031365629815671656302972189027168222698398440246681435188661115788059009248457899349603699765799342343543068223278687957521819807180220013271333816635624393527046814058420832043163796183558280352776225348444421069222292290385335762296237606008158380100077350785102248699903342639239194849290248874238409506737566078288253156554611819508371969565064937567986014280221236491760156780863045512954705121949853989087951530800723573315214504125296064511253426999961249056545104920744636995663147709164239690921490312149724748638680744665819864720411714082257198967192059740988937027101833944349779460375582795146343690910360638137512491728454183728579448115198093701599644720773355975221321468250260602619600834016784464736922500903167683319149721793960621142040630647060193338302906292046977726326673675577816008005745392929936011680717205416208339052696949327033234969596508027592694020105190909712753800470877968992607210925259683214407463106577394810672717988249708583908416617614780393488899092222001208695015758068367903453588701659318352290088447836109361953523514659947183433005057223482418363292827068158349285188512640416499554376821706062468278438677284766828732665735434163239863559120141952223516202979940766367459669995104708272125161678469075436198406279633100890409752069542418404271974161338904333707854039053344724436175463621078614760880069421129810952734857297093059704801429383100303288026990953280772250936623591137690172969139480222720769829961457946871347332813722055544818685818459510916575959924291644212421673495958642975395032108040230012031788921403258285999424227717391256921021260423315618188074982151157329456875463376117041864352633956096424725485010737192822459395014318754837693062090801433548862703131890809886668136261737941900447867772046302482018846502288684400696610251080577004136613687558745104270339804435457234310880362840067914979925704268158080485445404004227053023488518370048106809921003528770095373252982296880016398739123292833653754012289956576485400176932863987198925198062629970511185333187128575788626153102984672892717065622727052010355757152649376276682244261865751381396030401463324480051604644904424813321912911463187504477916578725642486130891511957947032114007048488921082710715945459565539635101594051178007852005439888460404220467822494323555532745671545743822220183511574470549134126784886290456324919870736070430972442829519150463470072180692006482853522962910278589228070085299957762282862151663476283831585337663664708128566267943846925921730712336856621363746373024735221094156732591731584968845101741309199419997407814916160777426422338602446665319287448127011910640744760571764660815234177420234918700456882887513540957613403481220601417694184973895233347057916324214510444758511051780639933930231020584713846234387727196769479909526055705929108462145552049124340897872989024065872189716608029752011404043685134572327373934004563513533608934814294582993744249361030969830154316203428212232477709348504511093399470141521931633066600919343525007038151187225685203688421914289798829098502812388455754760817713323988167293484128920648029402830193074404454132573870343575184642847660510556249751188486793109137124704119816121253832952690931962710447581106887906872566160377131334734290623002140721529775192516474393647006201620625294528076404973496453507060223630508846653078808692012616837065773581675937741727837252648815303747646648338664744027121172256416133279024953352143373478815067734609602460339173023680332246801980079481773101140447025914432328398208789423120140078271201055421403208067626310179977404586926294698451071831680402959368021113724998892439056329405720764836622931676090648719260411262059101444416797120932957165197958101508641984038472870412568911415959560558108405198228391141264616464361106393704159347476251030845479298602294297940762181331413877173787833165398591140379045148812352207597738803761001878947388831908549303719928868269260702135210866295140773283249654922115315915516171403379058585248815792284693456881173835973350408074759091393421003548091171823413199591687400736162705737759881284871673301864930369983491173128677396225829714029684392912713989867410703038326615361731690365263676110247195919120173806588172370911817451960094530428038652137538325860351955261110739343310725108270183860454091381778925445298018568617781737573090934120665839614722533047613493946183544189661050501271387875791387656173492148514285569300857339470091615830262299965593668333185656008818041670866003966233321801959697267570181502496004048821518357933935483035525942353044979583590396769713704950996925797517382970467208686114179622086788078864571205164882057313860372051412756842569229666083342400542961739114198258762918172666839319813985857873766727801556780011978221160397250892028955879397110140714523580478603915812180197983991468873468849225184527850431531550500669540126987225568579570113418075020696631711765656082235849613875003014844557366942594743786622790644927772191473060007679415753506879020714858389820526214984825061888121428431728884219827436640064251432831463227145554868429609817504931167770021485591712894685940173827602685780642472361005127633031624363049364820928400762758583682377795461924076683153631236447041958880586450808560493004365179067660214002528816044354395218719454635103530424252806393147955217051310161817544589458708740442797358427368921101488343892492285503504970583614082099110014061683472959913540754291630767453201284785917658815817407791060756307437391864164310272628967841766283919315370581316147655550706939895992752691485124485864855662578473349566784895203407639359632684466426744128222906423849922200758933681580038706156304702849782871246389063928153362300753623250309894259308107514493625138767479648221409785249804053347367585987281390724267016446488278105954387297877896983946828864864507943249540221206625124597805605694396857821322222491311747479884053444313153308192849470030913994572456345839089660276422866106418862809259064272687959585588060709177199649653231391608214493507908193132655580695607537568010566635076270449685340113088868475327464900278267183399376645021688956289608604822690482603756527569788963854192911397635690608830470778745319082321735159156506887517309215817315165621761167275398397515238827138930353932839898503976926038878240081380921246629982077810751603970183156581670552743594556318230272283034936880351746325921088494883125974050395709876119672626077485497309090810176230350677368593136494588567905158726286599953274429415256166594176258040355042232719089155444732296738530101906229668172610906864868339929268385124968889644014328511373771201307461555781664038141700844579491758376789194276024846315242243762957338751491469113366276657208027927989085877811314154472264516462516209123059747100959058648146935719120160808737051614258260029075232060928862621148035433769351524963935616977193274030616084107710933433124721279441751000306369377292270891368774349375833325568217660170921084037968724536932176757858442567140573174404948096108408853580107299113145805301588907916322141231244173953584757869660792419614781574898344878341078419414788619236911844761977215284115552270213168289582745845240703075501100279216047447192751258556963758538409633697401553257831635126487153741674399127280878563224634288478335285459028424810565827878666886654105196345103599301147051721995486040546987379703858720609413728091843878457629912415348044435681866705125139510699453917225450097991264161076722159011757280523413485215890283645258151189832779832790582674480793942414044592424734185859833873282770094791257701519091343523048199117845763726657435315396350062662547912198270793266980380072079924065514251652415928705217984852451618234788330409664315313721671939687189165004714787683956003341374997852605428694113333188930138158276002636261695707474771332808748826480381326538015100170306690897111718540744805169614465239783283632120506451321713733678098612198505570723555264053135034628218541790541585694957392480118483932864769080333693783937156005263868192231355591229011650319661110768042903872125329298288054394869852191949376036817998002371070121516374488681445775411312013503866359412000958539693665041687929463789470681116116160330982136329267267085119070229077540881819273142355841847566279667559340930688182115410172367118434034003598738692124133106502224934428905442146922506125849804849295651112953262398260900116929473682644474175682451881047128834755156442537247666727374258980682259777115462274786717665454537885976965979489359165013633863757576130476461489513243360842284831105504657239450454187277797617751511062319652423541259838036663438926639974022521119647651323409959748474155671514692127208881818514092477003436002818081417260927548323167616742234839279246778074406760809553895652799789054266330136692456624513406319310964550874286388772984399212778772098591663662936016173041171244272985355683315965759331857557369842616514454625616583287338002933470067880971183972333237407968051656371977935221061848133832846958106715000855287707298501418130323183827656918844131437086252841614324656049858650710001181404453355230149770067639554531406502418012013779621034845945810644631822142613623446874862407504469427436126861642542847215760011723256256097244339478042446019527022363152243589026677247010304549614631035734528136856760674155418217397348360136741733653174047051989813318208007091569721195947302177433511771414646761737393310058349538167864022753033708252527538655639629371111470722075468497921420773207841747057331378458737480904365562202930855804906421901981519896877868911836080166431333515474450065877302941607642924511473075851512482436940268012943789539996188505856245612207107186631662215552733007738584424661333402432277845026893620441411514583084393180712036801010160864595302550948356115971904969234840508514309403756494602074273984076624886044820065384751259528037862893873793248778271142671977235908443588372432007166812297945051575465266602230699081465164715419140261618886133151109452830119946716248687058336164877183303655442790116674006580761494709484795063763613964347236000715767743914944916740119955668173976857832910096497393142338153527771436085891644677748645518618970615181613552390218871396208353056473753368209055770351692318202606760244466280931456537605660818166592472867006306052276436311516213610610257282093183180457257368048386413589845487727348876978127616095171152931269313114353309970237670079829559840904678275411186671140569553983637922411984419825895908076629338687599441792069937598365410445710662414189616882290946501403335281138592367751366420670687840535481978309822705633565410899861268829802594365016259703782165483189804467361550964832047631652526375618168031907567004694378144374245711834158763063376986369703589838035524280197201872758902661083130038349245161465583847212248132049062516561197496165528576898491530741493757030490562235953212283035002174715518768934061288766953450474323959975767962841458454540246962990909643304387789872690783114863498597967742877717564908324820232022699719071644079564149114403552958459896959381105997608929471136194650312258314289359739363627449941267334068409348090574762897611327279992568981079482898464745025964903929383736050336422759533994912338374723056422282120232944470315616310598587497317845423439098102553144743857613793717372430597536228010441015013674581056167440320327062987923886894220223267362281757142156501346255886644254143952249699434945564707158620865354385409100989419769915575480111325198691626235393076441773133539070236149799466229301092562400318923263911663226811711827765917417471325616825157696470424652403878856319392411852115405275839123941482963295422725433865251456247352376602813308630668042019027985788384311393595289807321091925308484309674257782322319732423602619419646124743430132453832661269251370725882929485662219397717223098539606777161356118626354760286707915113503705091726790099921166896533492818388257457723015210938916906107618359832289325374463147569698557366117888395345956886431362038147735739887013415211641013253830595179946076283724173264340246577082761883234484595577159709151661072923654688134892316837543302215146130404527607263966846852126560383131671912754876205318492049113033318126920733208803770492552921418926330889761507850306916024906241716228194561476267282908488652189707921787779096824946660852634433352933530272719961606554818540381822246915838651247233020519449872688898354934831371613126579579772622454741775544705680885290557910930887564026235285765794070608161475604706234475229322663172086354971025230116514450731734361677732085456009190122770774728489222272492906957963152357280817949027292386381182816612115801157732858708444820022053182752851143644729700374527912891641816566112103249000542270959170092442506776204271299467851220831936433945435835303615349318329628731092210677987221986999062813835682719416858083071648278682492283219090612067406262663018993354463993159300572676200487430950644253589183332332501933396126168157854477974428882711746866297441929857693675359287417647035124594352350432082112890384817114213769304148721492681854506662947117918662525165480568114707979811296854961906143047151105773494016285716121215268664279258493274664345334332628336868072862542742780505814220248933710897864305474566305753077708348430107431905059061460689227500583230633496639707430375165381842845054685530787118951772871220791133650831395797548019443972120714095101856244490293445391951516948166713627506414166097005126779709501807135928555167003908475003358826923905237310717724122780014003050125760364715550554252908522287460799845609037438432033970386784544677819160154057698267435517329052852442970636192701758035633338044027714026708601212117790794202384382261460743797665614172993875667590235440776596836531443459913615008361274343952000997352502367778107332683012957403798231264309576647276155601049431627901586373373754564586369557071289803020722504581868708720376417654025757075202389307799841582141043858959321720790300842673697315900822708737594115457871048202072881959575987840582271242403064818374058458744294779319039647086497664083084305681459212934875245570430330347833614038976534151633630336542331580186846425323448091375466144434550099692337244375374212492508889880497885859063302396846874865970540428283920988891808350212013488802155596508585751591099265655815909168273400559042175671199499462324263774080302315519299740794190123460245315831172159966691208663302645849200751830859892615585572301522629555915218275270040991345817903158858082096638309623871046619132312381334096554216940632957637891096711348507538742280936225523387846028520251586562089969085018502682949525156926230683111473081315381196171099693586616796158183352883658486593959175703055408459705795244226892570291085484465869165155352969339866812094785578496105082671300240156509431923909631765880533228395068845787248105552091629944187469218787470328670167759948677965138021249709687922363233309238817277100227935425738606583192968810060446400306918874848572161675665835908200304588900466895088709002458395180644245422623111745362169500072811880828298126209041765002908728722461426274314142662454968685829017218151192737224924786211859781598176881534532552672443160073715572041553839454799701195375834244902451312919619288913652996556854338299568841651081848519986606715950942447944944133865319048832082359862183707284685880527612119648522183129335999913727956698377702415269618020842042520497805892645887636457190825785535898911882238157821755175401863640385538523479412089614606601788350146288925298440714699274856811472499080456454572117574542512495514499123485434315655706508560234813326055139264319874036671875452758606895170066920438418346429024341359310022057377682032635999501680244268290378236614900929092024928428884837483330002910269711180489902198946499835134884572463806871974965015104537845129636420781056642150922874843600315480931259072524670805108319495873970631156818511838518892794659039544887915780127273349718004713082319692300932440170476327665845248987122563688078318777811694973765888165503057859284294097819198308700278294398362711405921969149730491809461977609418240953882349229131049328955039845036728503914528326771555311954534809946918997795712978956147414786863487655652773383867622837920359083473445796509499832165215080885973641720168627305521100259610063336572213726068042140678037413978244444179256054538447024600811436499823198812585138578433827171451437605063624802132992372984774160527526012588248783553657819694394148314751564849182699863405557604993204619810266046638270280920232393849879287589678267978626016875309092532037044105006190080028328814029634441467812402966253673776112165943920669309382259721655221805996799711341344630473130268841172930743035801657475188579967810147378193860469804877327509341043398838301709053653160623550848614636837996111886843287176425147774663646618204295257556467772078512154861689999311073886937797381446979721942722670531059749790920062819205738820814359163152831117163342372586919453992797088294258717186682284164467173350641715274961742527053881660275916655383844577998013730914132516687526112730654672397782414080814722093058069109327399704203739822774859768464606480605844719782788750203959693281489071609226724564903026875335122558953103630600381840877406382171102565304608962572907192610026060322486655428425566463864564841327901759314044669706772387751290598482476690185390709310193522946337432798292532768309622516927965551444938669472143571880166006970925409543101782475821982426493759955695238112407953206306179842599796663622130394200915202240174223813864505668483272648841727136931835039655016466794669679911525551786127871474582232101814692842443383387196406087840691325440107226701646205164201807383818517631953928049626637987347634305127801728478999854583199378941167645582621049623826487552031666923655788493286817355393275082142252431459390654706447069432063207656994554654885147279186620719672539032296571559349693040691933981789094793907792185501390618499366780947175039181688172006912586980961899131425736635189927500993231865795946493947100502331054377206417026793397441805928472997676740248200738899867926055719929105192899269070207117236525436521968200766871722411935764511726832462352421976042441482345167970695814223845857501801632126846424158427914016996858221680539882512717823906589814190964465154909067172855980542612742044856471065746764402523171441535182350495624590306594093334290094682014853839937693069554505326558978337467286334269436007138231995622411765355046761762587740431394009135928407728928795330945083031801854429707737512689533116893815818091279026304133736224004234632801735224773258214753564216126835232048804123283474513550870210222200053296670620346839386285835559339561444483907376401918609933811909381764087929558891166320526116716004182566419591681354718329034189042087130146930570241341023102095256421584208673275728301816037961145904296131956849705435510786443870857626795003452469707919775871849410226038594459376800608996782894012689984626331134669650445009982585246419296637355769832540969594746638127140338532369577438194505081341613498358660846117051867198695047922585689698044861721127341736945356604555470746018291633286986492207949238901215431990989758201471052610198159759818135807479272574685192258877718698477474711134221807251031965939153620419679490461131940641632284410955438513977223060077876958415492693272528602618135406444088705884780822284131768273643161014335005287069697608079936218181211732341016486216194526281040539274027031893312700787903234867687521720134102190880972757499582650121765569083355462076145441506455891870889981292639680056623377156763093561981842720342781574891559772185232270173586249796798694290680479678707308427980036162076848844263149127884989375276438223746215391805962105270793571453687454207852852215238573484113437109265313269891262564180570504607632952611951795585582656578847405303078243074478571473928845171498514351791191604171034540970884502285543010343286666898979317164759276779898566134893265659950130797123992078128033393473106708422858685465079156944837014391756787625632867972009442211379101921379793175397941642597130877072851916824949995606260924528839608125220671970430294443639952085010264625230870589987838465666764834171573014838051197239366924141144618950113728384035806337546261849440707825785369581603771819361756928997935831851672841967786778459629436482534954841623335323142018861620418209245830636546536315904094745818101134662578286512830932972947738341672836864790269779526903738065708588010964430956348777801540040016487814073133998248263788865120680073831143496028710602772425741393679816645770456272446482455246282774404464859622076179882633794676106430197229664637418735149784369054488733402395933038803688590094380240932355967861452549353601726587827349884674958418635166761084270152142198966017247670263424600874730897798293549051834116164565835209457158520615440509361494245640688567560545355174784464180615369203791868652135755127663862744779079776540281340731278786810743095518743216799670300637679466785024474275734789860642738769307877767476595445760958600335311208465526010872216692844672299088079942505259342597349825811144661468250079882500294977252722997663385346952393734359195321254153715334400738696556958645744606525036143207073684750294388981320064002343225808733075506461515646678185066999848038278038470080627902963954537892193765025823643155607069037230505737435960204553693050126464452583357640252378091437556813727441629827193253312516054687467978007022490956390728897333666028369219299529861274679384368205953655827603309577102861143343614605523875683833066474185344986895877456101026334513399912254656224273022069925569117083120379693103593151417768278405552826911736510426729665113545257147885144180349087579368953965149355164755667477450189543767545962590478907376010522380755802499079233888556122882758977720619200867047604777746377802858482202756458671509968861142022206108276721522036975505036943217476799807604312386653397532666039557967577684396552111403656517414160300603114341150351635572526093300931301413319860632197281918893757141790976176432707364512591976930769939965817005602749168860215890868471807148947050823400284222419999311933250846395484130076243797367060720116204619003319383341158671131047712381250149835174586549298284475249959193203211471767546588691499570779256026291598073770855932111676323353299053949676288581177400963036984468665413331406183742033697550542110124240641112804402526579449224378178927891505632159369679092315341567281953104559668324685980530221055298179711807803250681203418395882997782481787325630981983867196134093516306086388109122544139772714651721661410827723370817967327054037653829772128683224589981720700284607892348690909930985833246006866978446993311238741140258200623350274567331677407250849741417048270933224372372343913308054642244873014937803749574797849730739221896907069844551366480537481082912725737392643551284299512026324533319209111000925298277209693047447808597543797925160951627925523129237288402215040016140122435868648267660553141662568660790576296577350696981269565386481013921393675262501913038768493403293273486921773530935168370223254568131814528584477552514502932296877287627664498791248791323136899302240672982715186190990324782759346557576055946034479456008406946983656538007569019224658286084163648320579811818149986467257548610161409293724074956136482182492090293336491937343618594583941061020313362976294145140571772242796952880162836070834842710552161182574550302040132507657889655657055216688147702509906492484552160732094233708828792642477219059443978291015939440903436727905276662403934771209632519554791107018495581127295611097666812876707829838904514999267437023627002820714535940157124036375141100925966070993674803556638366637423992898669411503416039691854377398025554085039227199716870270794487420263050887691177528836418857321633419014924685398981220973285609970915037621177541244892092487769230289688110351355761780398447051954159204107504385277634735608067974245713786249584637351949821914803791217625091388312256341926634457412818101485570143357169854145906775490003352239160075196382220725025932139656209279376211585704536110177507658732789518710918528228842391627399831618877258226448778339349305845358547250010563502578566037467647807364442930443506633534257706392108381801934912176806900052500248368986470468556836376553052598611366033940106400302739174744024538050654701998225861666940484704588540609094325143231918105665482947045398703649933549933368450426060257761672489283898566777561173112515145225059109379851928951347152424117224251889061073646509774048238485830879082475721099030389542717693592567064968554294698692552959274541359042844088014926676249447015225113670255757554343899343289459369553951624966897158115484636034902274796910817133303926686901881808810056784494532584197574176134310219362075110577607060659031070911760605867874087915242035262096354283470679922689581345044216252689314619732476432045114919138364800603203531020643031650946539154678341021507722660864959987490556023458718246469764245674583296517957892843946450386558585107833092495898561013706294360112342309219212331343639683801159646572018216409549261594079909794653144677887245014275686249811088669179900570086523498843108247231193955982772135265537245687834903021522793200795026471782000812321350637224203882353827259697857071816054241551506838600586497157651249292169852453828722525630204552235717751680693569396775077594486356496678837737810006793660259968368229468956368637132179366507902743942563701710051825885779868964420708460534046413465390195399870319125081153489144122804320943586471362058326362351528778972450455502711614163394762946938948924183315165233470540378032513645768742999665171098148884703132623469583213469095902993152746685031959988732255372373800100804290567599551798199203503738957313739656301219664032655822292435904628653708068773635343867434246922558517739447146955800188344309233105315875255438665168976589631579297791588277667995541631050749803514815957222528000296108321022237559066324555338750347520973914578881590841718526062633942193253232271682097564181078557756033263992239431833210933380251269670626334898147412999767886612498249412249559004069777019172796929135822931474964998375350589045863523475814977954870944043008769163826590147192562991349750344579158215477001202926143980465036970436818350345114088250685673952202895593411074870629850368622577532811125081060591899759958434975116983828543713582320023925218268202892200282845144655647457197185196853064227269202681446289122361995225023219915396449903303945771204733850678136467273990011395118040479710603668286929350144903735196388891228735840240036962568788452929536946157270135620724242805250931692149431816819918773047844122432894171684168710613267450655480655621431059877053115734474024928622465489612695816116189367031468552183655344596869608925022145848763856179600920592808347968341238036835430383027635079443475476848047982479248041323141170953539075952707276597079280589056480742993714380717939378134707600945526805236364595999902629226471845632058125566888180214069744708796734379656585573183161366379032226405112725581502585359971710373863106081973052322278089454893687531046517943937193521450555339213773811166136803211929588878642327817309947535795046645667457393960634955673373557869488735221257808347745680526923119702485304536526135780017631422904083855952121359338380853150106387647632779245913932711858111487984396860138485119322064611879385489627612241853555469151063909932163408314722012332239482763743789008703367834743044009528297329180351823033851794592981709918201215744611996616835114795786194770010853126775862887259666328576387462548372499999848964617449943359702621428684994386083454127259882522343450997341021218503847687917615638031232762278106233128806106942899787282148660245440326839247357124876583272342274344634949714117120285868461913867436335081864164654887679931476115127645544117451093257174123763348474673510633620266820563396950832250231910362313927668635520040544441134032092574659130786194692038222281747198652851252120441866314507634718305571438505983157156639610110228705140549168999635911452598629813920533065955487548860860064521946832088100290033724519537346999167002694351195500853829058534350860600765665612919505074890707622643298580016729482908496743321557623208269009570540053721460958122911451016113627056672803582853463835766541345908611912679612375911945703703438457413652052891576637202319319368484609156698891798003331199267607799179300084623354162138923140131452752076415066325366974742606591228968372520412523729708243604672724731892349741562621971340679616641094258883672052195067658765762820762817087131338657941693078201911511127831971817967411674596489139690949206418834670310267082544657336646205262008780372585690341803221262474899621680325583770785662985795031171442561008638046337125448184655627341440890898763386330205974851003300386127044167565175823854710968472504775564895852548443338820490723676396495136456118502605814128586264335048715429561787266488976908525619938558738002380199248042943228176008826531291628582044200544034567874437833246281186362417347040728269346237787057844036012781138062004755081829982071171646438836598297557618639222059956273246721403391743878915956674083307096656593055526533567174226336357717631151854682726208797881295225455146167132153103463463308459973920097114912827460293357639084851392147554381777066825279142545005042371755898534669401952801027052531183931042689975864699834362297466612852419298181012167864587501727998996043002333956568937030499380766525665918465506921474157636790081481175148701049475321673937533325957118605407575607027503133112462924715807507760833123597640312054814037883814968492045681427236409652803854679514784761001293320236579495158904303329425672704360273110343581969673688760092545433303936965446803014272382249298309983929678820875368170562801416256956597280366147852868197643260337986945458371534910305610517216531337232062917086234866529400816515542623902322510413829422254515365754418740642599475556019871173097978263994657478092839147112332718115465670661223057648625634097265175864564563821933052611280910445769130159572427517207220603918318246614094851651540003903454902736691085285164054099775257036887155805084601159954271989177948972066095677852482699658346536705122893254329918474455380047113507012078852949819158249088751167576464669065185056073440690200794410591428330198576731706102874638997305556987066287508726515872831764221916984494838502870597063411977755535863585726338944685541498365571768857939484945926223604051384276957700509075112711402726051078458245464696104649437566294990336290584718739606136384493765161227812184124964243811989657557538275486601006345008323606305523909006137846835038398661217065104880464063807749022035497046052281790545599926615791218421818672509158121915957294915737987523962867286765525270698808493030542573502728777704261374397157271164145785952804389779855173613514319892281535752945585877057580100643763964372710147139261111901839805457591125458416303738993452908689560439526645363741985377712063836923398430537375880235513931760691564237902669116472947910088952378298638530256164139974763781029980365938928517681959546502837683664653637550490073892801890102182616043804731944304054871208370089120347342674376566624213385597089784139313854591842359240954359951268332087593716830573873888478100340255030276604299043789451811383051527143201847328095038669008447511322112096763325206353183336537109598633516520327582852174638609489325777394114895929841699101347903589980061301567729216066171215508216356431006151688749497696811985240052083584368678489549106721762184703149157955638306521663431520147456727119010748951006489274943128976834345963861967775756845436883125013101271613614117214657555608869671297198054978744027200018777998362519414459730462157321479571758242950458536377387058970609458723012217021069368305145570076253868056080649140708872354625400241667943495821461999020004683914265401966126753071732680759361365387936729006633575452902490145931882735174166924060287824329043854062509819759114518169833618925446975283209561083554363315180599597404728842008183351106877781996807127906631706517798172454708851395322851512017289327246947561887500792302184267712985922554876254876859320426302478982575591943770324825692027597422862369588082180330424206362218640607455680787680414253966565807632929949987046633644541132255775423060283513242551869857598044730537515148175214020976794543017415461621449130881984647432425498751474628844333461557877039641621424931618325484204007024441653255621776352610250418326159119981850323670026089404029378884082577598055081934435569708298233094574454605370181336579359699584140274164716200995843885171158977954143759828524514842479738246424718637890736465536761171815954783304106579947038537326524772111234430268373166536697435734242254233106256954722998322454220652803163340987549545325642933299167490280325879326756240574874336165726700787471892857243882617988046025706452324597684056434620192334192082769745962985289906666153565070953238987913340999203143792239735992221056548809323359706773287626577205122978054609588020503987069451093961364361905760840226694245533663509115739123084489097530547252298919829504712708312908448540411214939341239182242179733596608771703344579851334555209754574217748091715900637837593491017568473154097074987682452623343985495449328457116038032592493270420399618710986315746103325745625207703489849168000350953886137380810901144781055412520878017182767402437361252429548857312118808375644328090919162775353562608364772318436437106937740918477220859850925432111714969939574299072613600509727314960430177046758934890919422932103099940029935284616428267236173225577006908071708916353129976672937470098183964226750637265211792884737877282453610644475393461636994647258831816564802166572731016621425188653891167667762620502132469792414133361272613439052047115701896534601791064351880208656286310319222780755836176911263084086203808457845806926003972696997887693200842384800379757781973783448119084159308081685366135104810637934257659959879001190477843738176635644168332382025433259462912552212292107402617211692098911859561383621530088855063997208163988094321328009492977181461858822111873707393413965632243418064784965356833027961586982476317401754814968373373309750012435630917869528066375185235044743539801358461206081110589047161100070129375013918319332406283266100209489258413697863142701299370410826807284891080159103907519578462891334067315748613988475690593987579604704911817931272117668866277670511455279785122102564165550809799948835752942069087153829999060274970874946227519964089644778369755750277664305685006729017795495370540192717111173139017588677709412217659455923923216949026099966301528684819777650943971125221483176932387262598682704271364057486286779654415561397474824012373484727800007616901175164706352331556451040323649037951490754930244736366192002508766657138236488089521492940304144413270549408827975609906920366314871925197249666857302776000947183556590488796944554601381558148437977600641142505685842656630658026456215211414296745563282459593293411810251402193424936572252292953767879813649218342135698029807947899046923087285980567778101004687732357128384126588519528868609837341251506781267798341421896846870173439444061957177235490508283060841353959905861733115555179839881184077160923229038410939490948247995865657353153297884002275254350453207160759119151412959918061070137801081603962669381048811328967729597731955697739865324023164325295790998991802514685904882006406551184776446623567839039685844121257326510336181686121502677511769933207222948058407557320508724848638716138399103003545206118900555275586118365946610883282675808923604555327806023524279502352443025737141693686131149842734903689112078371894139025624526506222053593283546932152090232244387571679732495757291362160992446403427411756308809060857023491007594638734259073958918800621703229321540801442751980285959130557670658799840332877992453071037116810052829100007968329777930419391003697629128886080303907979525683043570971785157840773867032648468320054482748111848273634874672638844329839966124390207287897716589148108752247225516335619143971234319239631129381203153647908712753368594880637193261786059703619648074070489609712336648107499112535948438784457780670830853305010286216254798542507390424118810292719378817510269811101921328654247917232337532868025706623724126594752156828752467587755300149997349892827312443825165318103309670973835023726390872054917053832249209313426627965961175572558966956877805681355612195809208673122592862247816066179798558860577072742750234446815423934539800863989533978801169034038723844651646366291748253423421789633362639171524182790230837464533011916703345512627489224933438185476145360032221849995550445083642927810555835498085106844607164861333913182926292733247078132280180062415599740700863233787181160348289542254704052685885226216516565552909672126967107710706292706157128031510124389306093443642945862540207006659291533211163818052024143111552965882188747919174221328367088566665429743396550152296555731997257835562868526160463342913175044620575766520849727243461654407632436861900735528615653432760485120441393583506138578594553154704132523181906735741999633485671029302935175941150141795805535653332467983303515535001089664020573392060303208398356804740980521740842968426230583608032754720793284224488820793059254034324966059461645473029353057653814984431388735406233779624879614279868113791780286497696850571920990232196912478636157116608488686501323458757422030930853166831424921520601955236170389539307700828928553278087075366606726590054315843476299617595827991776735266187107656927033680525994440175194762819352450193063889904133076477344721245606775487439381160609952791424409336774979418552693097410945150220598220034526519222393101464522970056721923140555272724013812507486971838527515338719001885422553411666375697567206123917157776508516482087459501280859051859798445343107321285094405586676775915993225646320673210743167664904207135083758682243589543763238795855259160519444000013429193140713999826497118553193945015459092408975159151540957341932091747527659478346511095079962341065130495672254052219967283962727634202695029566777292020011308960522941754435028295304631218780386465451645642140211714687418049579843754126255429995805071380026954175220116826671404407630164361816496339811271139754519132954370304794900623648882150433414526114822705295275411075340718548571840504464642485374915149237934126159664656491235920965042595653086039574586465931337937637109460885801664600744821083572270396325598569102162634275909255902167032388571642314135483285101432352331795964347658772106901710297763780558487990227428549025470223402215448592589107126536935500749498639982841929520343788626033552955804086202960430727583715041235303931331523835038306044910241104890749976312808178673872181341930702267617140320671758774433957655336882199396550193203840089695475341323823742718087811639599544282658995928119751766875128976599270158082979729165426926875398709986658513932780270129414998542037473690649123331919834206994435260364685515308313403296014080974202152026394519275130580238817732528644717060313435206890225760844676822665238653052132763108020343962974587385378513130508807851032916548298346932276697304477134454264154021435306391527637047361134259553975868006105090775869364936902397614542093093744279657921814548989198631352175372911446215649086728245465709291370001963943366107988458337487279840873639297412018383352001334534060485419835199294685348108867124569687006576943749810757343652094835301798544350139283050144344581140769386357456884509947891647147299687277244431960849915624799115347573069924510954082550859571195313813317497954489999135989910719432100330552181768345924219764226283956730422136666005452614488836148068777266259117482394947054675466919650944540677827732847060506676101140235029339979373251841415160738257306780685259399522603951364511955225931428765729211002200722016836471451222467855730123126755786471367196851832726581661727087135075907847294784280496012279428661151720013247892460627824004815293023698219551435613386807098070098200021615161896331519219955540258542695855615565021975944323065789697723850824910564004543369332776583047520428385781946982246320132545591685199083963899416920635738448977003736425902058087773682743935299274337580328014740611079906243665568556433525935667377253617562028141353175265072400807795406279696571557520795486355012015281881299590989108134361317407783553848526764976769177721011017991651993435082084053508524397069956323187100273579829225151914083056661715430620049839688006271291633940019244019664498951242901053200308568912451477606635653138280325376143814389519120458319529668381400430159983526158212747367083757214896686140177962598138343811184234076873878245857125629460390850198470405645177610713148102356185984169159626513309002523550208551075004088505651617629602324646061770431167828379014295071456379834262213207645715510103863290717538812897229025117278138025508918326911690605732254890369972857123326778434511022022141604843745499643017536542159824741858223612991257731191380915465085901286343848687757359434025189029784082170515994722560543640773391498154784029154484907613572033934344509442714456568721754019943654958402028513791669600531883558482299768216341302024586557670124273175294349693558429732032055910604935323936883083238167120409625693268421161860797091031419373841105315051173778824719731628894261376419477308403010478855175749222916611935552708671403822187811063090027434993022461399530659348001736388983493573296902185337881817212928372360359484287229694421033762187534595134528293112784642652759602423936266891305098544279935647069670427439708265420218308976730874366942001718405813713934451707932133367681275273881684756143071028164057627969880502349211363659522380767842181383271268568511542029835682527304967801723158791114166404523598834770922369176216591812372496004226635317270222223872916256924481468440333650856520578482438559175025273477291644467015320187413907717753387677722993456191573228826032663795114368382062495562821526826952696087929921532510826242199933837210880230744145375631665470124610748998986701487567229249187634459728625569503328108035915152830199264231427551552395948718512346864187231804168913937634587689797846815502234148442179512494933832949179999882965668481853377209008935985259095384665180482255823026761516594603590773586996527711488596985179060687813314803180312367458425202013941031068417094220261837005553142261009154263763988899441657513971622946909439144450092721734644649829349856099544417464976666068507765035212888553524063309785178625811127727945704925941581268899498866764857579051267337854737154662852864519060813659862225535462663630638533566169115790853161920908266876301736690819234965736245278314566601609046779988326529960911422428628887135778179055180904925189123438029079714760925434913449338653277484161168598783778999509473589811766726015236701619677093304633898132484466441338266891965735014186241045157773773011852177381459684332837316717675599803147043739937477749167568588087557263269901414822583608068580230169112163726710827890493080112648806861550633662312856762933894024698994629717272437612276821208473368488289329033425954309944000601843769740554863883969230177581000168255933798063647847824201248455929858994545324948131435544505951476406251609137625230996329316664460821768226424162726222866275136465666051006260766881973892641767054065873404629387687837943442383940491765939385012092205297638730811677035160724469000190278172300784564570097698019628830921121960161724963098593856567304064435874256193339598117576257893674799401178666927716036451724736593102960245888236708913068122537192318109342010612411362736088236096386331223264847024339287133291081565867482204662013269565955339686202979573953354366136538432119193630855533884252042275280322046718436137417458603565460253320452664689690501139115407900788245467741162786174727342814879283969303215133952188836547375745012277731654426282576402374647974514429158728770089682461849708582365193381655818974736765744852749027370826317862489301566043008860185084101742194084142763883206558848333072066638735816602334745492720994882801898841780583226355326103491405371728892682894479374358587587274672848893225886613212907128343835043274076567514548904804961295596896472191649184330462749002962421640411728066809414783488592393004564095403039972392006274200110463193032415644686707269566171917645009828904269079694577638082070997515814547286095421782194908169245113964614062608374048606769815729646304726407057248712427067271444273914378666910042232031629323468500357949334013074845693978626264268520944866582403936112515068598077056662922589306476081300160961529782758300991807361760206095800799308363786590330276606676625349683091444622951006999980002429693223488053029684925561994584841234559135558772241179775354657118461168945907856261589412133409120254445245807050178930650396802085494631305725272009349119982409201064152237441537699138997882628839952365554593478936448634848180988027333526779570591722114488077559208093890792643483513956609923682097955818388534487161039041782362769339854735342020946981638669548262792662161888262506027940539701144739598256566633543034312163983990420032002106071642456873460802271182521429188598292499303039154534390671945437301616411506965257757371919325205148308970865714853470995266006470784411312023376855680001325383083918372192885114270559172558451364443333303547199677586409735344634729359302463821353103174766347808241202386571944870722935065577005876139462453994598669944791537139447614802126012742216128655456321699559286424963562918455576343465421747579913673290660649246094325120670861462232819927914340926276354110216229871928267812202424683564706183097885096191597572697776158337687126434832831632757829913169630855760716635796434459656154367017676363645838522588298540950432847716684411731037750682077561410922894498369191540969591811996564876134633197253595234356751041175133709345466065282195482520557279028887259394917694314765821406235011806922062085110778754466240401223717724923800435499078562423884858608208011306658604860233045363546608094944015687334261661054843586747057188328169140810129357641080310977856170087077823097373038021547906492659415907504499677178800920905995524226964832272688935290024519409749148401782684974076449538024708076687629981414145446598359952506408411774399053344066855065995456699293769166446280536289249956997656951665987838805501839791769626199795120526641675334333103524536969217426560177450014651502141191522376613722433947184018287480075177741687662976077624798571547821870032468736252974011845705838797774301274128806359480280232550055010347714891845416723811284484650860998846057945849596922015705110807545261116819408961966928063499273816088674592591914290536379265117373888248231101409552488253067455261178546674607706509602444084367695227861924791416452229751152515931593471807443433322778575343538710839223355690562075051382679155384466814757685431005344447121117762767798054653700120590049235912484616747134006612130305235082190838211983394079584600628042587621539906045572100917836656418296948792001009039195554310665330136724395392965412914186633742926054418704605726937752987932874402379143641636599393906102538190118334561044835413228103435983855882071403140063936189023717399654304605801476033914084622915013094540491340520660240633425583061914730249052706832235849156608044211897290252960066542254083341731104748417735816454522126302163226176112502461542740541525481311671280210415014700535019414766623608982554100728493951819568967346095434138926879748897138747771486444699636020836302878562013578591264860075901894417861558664527716299567363386213020387531092441223759156252029278952914099666697435328762067837837835149376670281353835736130241706138792199725124432112178270143318811817748419690769434147504007950606486242718695499343431835112600794422718222815035469289235797117375463683407678805037291492740546097578242070868341445430373066759574780651186211203600997909291114277107840271815045789701420981399562838644190202260661842681105255747128385295577380509352955953843645055112548650850772369770194637872106574741076274091194976675961820622444867938796786455852881989319668790130398566365945459394931752720568522044431652057298315230359441854960495296969833874913741573133773205195021082264668741555012802247764710413477837432648508186009320011067332508254000183377683787177344956485117764072946687643321141050049657054602116854315152085613938409594557989417052202028131593982799349726005186838976235990909530581820420441041970109502273602453777308993754630301590434101360713343075698701738723954017638585579666755837703172487822762398837488319298223674496251378856411029884700113309359473271749292359066272275442345095074208078065591380290964839014392989812441586713473515036552648887316837773979325168844754519332952960532150902116479619721033215393723687810077918203039359130049166010088890210532818990908534923760132535623658576978743130089415110821326153414726275695903819724077982784859042201617326598855431761521776336754192282493796911402391234320137867773406045384913095613415321995454638649554184835940339500181009666034578145942218203124671261965712155355576510800440487122925086405999936728393382090066923027244560156394324512253574343764423899603944961771668433611003601070406283620021921228566969766686183213574002351069883235417546460419089478726198105528038601223527811855142543748009246568007498653919415431999678958739974554894707706342088064999781159760890694535344623331602015673443768334117891165017331212663521185650015720757634397576207226433136422050955051258835941415466844761993080659602998477884752302281665699446172134387387561326262446888020408106462287775509938000609591162223750338079311304437331821659713073048702792074499097538270747540342852548365326671690788167870135270697432680912523601435921922257745680219995947523812577042180648663272516420415921151329926847783021568943116530760609867261864774325319101338932913427585706188613153446665952680189256443948311426758992725079348674778314940594538228921005070342718872388326200440310785802437695753019555576011153182020780327460010382979589793182032426805939903588887550270962302971266117480859404354322654489993415199162175827249385829402255887230484225035053885903878794747133562396110049969043422796844476789677002631466879434190465728808755177832707201922786969411391845170676011621985292196043491703495431692149432653408588501551663608472633266823935533783560059746757475331326097348297393583090979710480601246471989932695071724605806568333268975999047069523918784731303870882839126437034231098832090138421112563588526116844108364032429133917332574766399942884817409874861148586458299849947354086883146043766212919148755275587269685185963942620796930852854724484039366802985124764073429110079669401936039271831005894392889455353658076586595718757606331625048513432182725577864330532876537441289402426885237933159914739483200817798314992150435847018833966654137861432298634415621776283163455222512089726707111824293535551556833530435017896031644619212059056481490441078918256563539063035680682309147979076065291297328339783455268594923001794054321152739539043999857846441712810397127152715507151855586615869399288953584718217202010953921997195856720706269113498416130385510232478478149724964649286264796758528122256513760210761642491222860257929844944686484098316463678096948008862622860128675832694433695805935919868011204956620314939033759285866754859838053536917926378526634166887398221613986989556405346652330707571403891087126980165008368732231255244815661748804405306606933139283979042141065479770725024817411580931074462038699786495788000910720769851326551453248837823793935929316752304341267210384431236327580409462496872946485679162255541295481300037867471399960894264232851693537709176976864194638206268696352373602509327994065031727078634675257498986025573853523694572814492592041918012255773288219053763160265294710504678494052907325087066225303016033981301492082447240782455980708616447972011907676941220689634069908343671531960609231123760545559808463020715502230938871168309445072484424602841816478438660793902139241245056719169473472633030699600800586114663479039207781331933880372453188499962698864624852634488139035181563843383168259302549069583556242742623195758267254573739207988248406229356345409466961060699602984451552177622807925791575848515232296489141060904736030883394523006141491180783142228353642107018491167056242748580677019954092320178413499189945961331641705000387208747623475078125293790599319913523474952900835874599656422247737576019420393872136526381322776404622995081275309077953329504262754358769971793418145370076979695542043271415431489446620543029006260523278025866136507897223361081585303796691185566787936907233428212098275743887958379598901842112839479775927392083841295157322414857336202748650858095566602435865958235129978714692307863208864905990713569981612215103899708371641287844685941096621301208405566845842061939469609266819472668762887603188400649149706461169469655374673487416037559157655622353089712002009886878987194594086169428162223532580583357899055856383296380604864592269566655636282495408168981035107549478489124810513574334434048231995899507906288042463371208615818322463845219270294073347540279646468274412954646986825987548858849999691148702240382731372005747621273699140486303404139445936048208902592361328984573384267040945966059287706172759260707084435645495545592353858636314580565313555652806958515177819435506978235761724710514260117810756571145729283372083008450754379345198380287268455389745814425599943877660833758655158919105550567379594624493892095960242454946342997199742822934413991065472799418770647468235808246608327979487776707461039726207747285055645367095938447609478675443586652913121624826364212114607456136452258632824183366944143817208470711948951382561097928424309078927895551764910682273196435644281285611552085136393587903389662436006781814496408554301128868482135061261286982310783810338528612811431520993283936712729771776778097222025760928715949360469982373296318801403338871108119669243126934166314091269871219329253820714925993636078775692695301352784997282463216623612713213905573010990525789869901267750526834027259294874459532618352872843570245697049677027450996682384909292148716897456139901120584916737385238530857540106061515665568570377588314110173101612279628626335519813278967109347327471336838797188628790793832439784623138438579337825038241919572333274269981875148779105429553258245575844989436524119355203086442378604609045095051901907481064056776503516942671636931220567659757878069775951218553288616181917800475308048482913070545620906879682831997963218426802501143322367237888953879232072727912018269325812114810096702042783554156327935349147120440296059041209768196589779070295668938204384013555830822507294414140126552908003301077801248540323646126429902310451517912613965801466895487035549831471244628023125096016010735750444764929303836410130913085355294780599846100906635625116783826113115635022856002990838346354397527708095266385587237496350797874795123071849691395302409647873249888137718094968394864928045127524463801488195438159209979377170484714058181285215731181338649402244923920883708658091021366048750165893005840974485945951788378566629111624889032287198283065779418355854331568173155765126274600415462873524781166182911150535449512803228861087055708098575415766423053220976198350264143342612470521578896293016087405999857276028156261123406190062562201925664763825346952804644606080374157227583527773924725744664822047417517712060679821000889770071533300263544237652682786934952268166754018939805340951805942149163893158160965334542275935456122900584726162423330443761990047977291815446463374440750443452204330556338776972616600192787300721696494139717639201225975045697757631418599707828233529188924241463433221924591881229552986397524168926258255432637417605658206022148011276805035195557579553101636442176691270223703390813616624226118241660656152879118796129211253258368304917729969776257902967233287079627563012452167345276099508393434032897474276554453698259294225584586199942940778807014334118249356895307234758582925717423791345797860953741595925776456874717858628191696729714856222679970397947364648843411664658850092176283312349877583298688096609338976450039285794828040939306629266902519654189515592020913774339368568393070287680206786087019818306174377119143907517801694748547741705556949091368797776417155348121065975755810763944465415369919901310518214542194892257943384555367809311811582589217465656183011915167727142345901628837664309333605108350251294270681075093275760218261383610290443485475084286209837361854311530595440123197281451058945541440675256165253051282251048432399917207346466785789960367782314620723842686963404543433070435864819136196231316048937065443346658168926427087443964674217773547721740031593003833878655548544109608211336494721234773058176670104137390082331745724431977169586142116488006139104204254300981761900122044014616681498448268200041913910675964584603896508013146975093334063940968029232005567449387630997895817383861757665306901081839222632626529351696283621238663900385949157680982583462070951938770395865925606451220367460454696613956944803485993257849243278206156864150752888015203772556860163256393226812964425338704858593184358136492768462120112184623593017725696140591789663897556289554790311345023377913058954806647156872962003148410184035856882840782607063847381371424858532176365780110236402314726679808354542115240546005850740891807264786890722546902320275037072653712651573755011967911731536120445592531643693772774203266358027511738857702872201656922879984400781334253622719628859225607088679697153800529164913843475392373212844514371419284432596684924780177098085647316527510180110184504216609460061958918288463038733248141658561709556446860638757343012356157988503313700565462848828349365024741287225810062188416067669259621965663984076499919409675409955706211717156364105194349651619878530666092561093424120621640608765777333772519755429522672961032776297355476347493595369221117839480363808675746268922212129723974543473017501308864414067720098579402368812363219455457351781809158533006071020189717761426907515085584181105247480073518658770296441952197979218703456911769669788554103505578204635888022452820221394951870017145248816977176535012893295624831555232631630509185541821782035658038115488757344385912395437459042156254432824819061914856769330124308156059573652472753212241902563566293603834811919450087899992258298988768472480855167102265201886653277004555658260021824709357747727667804516861152104493669142727203312506020208280153301857589063881981503517345676044584193792703860429534656616461647570074870599054446706347688833175562253035729067602250490989061640885841207521849303993175500717063008788236878155334824979319539226654458353510407994986084430415255967025334185142329444359808461664417743576677291150909101104889672600384552271553941124944579600822339863570022580061466875976951242194957166372531550334913328026683057881101563722324757743814227214591086817149191487596366389476261079498578585752039290186833267707003632645456753214350936748186100063453524241107284859775649069769649200396774930186926202686340973063558618974730595290280178787635356710759651102882723007745462569888360382482609788064105166505854051370609517334567115458334039131577392156619009615002036832805465808237697166291614478792345595992133938882631817487383645909105064695953167054235018890841202393505262222230608865341655411198145072365700690208051579441907322497800544833098487554902547201790585127913110445848790449239563885118274131817251979275202333846770161352712658386506833292680225210451552977317849245825363857037748595822430977227958040585934030458848865455575745297377639427543960079641438223917961706841891185170946897353873361789545209370744537048747005581567589093016553679226455360188515208255544770275138978509185401404081163927100850340649450900261091320833982201713913000004386852132080387559510636912278510385994662929967931226083715426278788251686677703253711713649694906338410953039541889687899371846203352416825841930692300179036100303470641494995376426500464773873986849892204095130126497092888689738703378027618179249643746037645300041539315734217208793618591681651181266732340468257752286411872947368028611920451578438917555991192153204061649034966195896274528609372770880788142340342500672487038967907636629266386900168975783194107076903217308707901941917789015971308124500954908265807384145358240143721840103562090177625775949970481109074894919829867122190659471658431748442937080187101179852733124823451084385387064784439853187352210959713914709690882481597418552886619976914505681765215869134005968167918575011922539469752746148479185757323158669382297445118576879077629212800899851893946844875575534753946260542569375156881667162531912016906099251605930285499025781554456636304150430558395810434773860789207355017900462775872478654913650075502884372398367355396522837383669360015925855145927391513894129610870753274682728728537135091270737903028780045763989472292185086515947340177718672652352783562472165763608418519309558159326032449340078645240736974971030085260486682987707563070020200709799322818004806010241606226505778622244666691486090463066646087720712766105851441961859090752746834786483758762738352455427396974003802626659546166420953892955746505776093340479150772414983445605938211238071819064057254992879224894231631043453770256104486164487686814672902420375853336816757481299792870709679101430119421914910709523396707598865714854128349057382190279667480034981138764456207772715176004198879173173346370286314169433802763232328724151005299917405536468062771114341539806595236693528922603714113822207762122960979121700822207163884601323221194080213740807704260842255085885743606862683649669882927840522298256960279609317651883837076944832951269006613356765415468865678834938743016860264776074731656834772554910246950804126028072368718234437605150453646492841258563733303368176259210916525921825874961121898026474435925497182330792407713197503817222510350564265208137777689648648501019702822600627129019257006551472107245686813497928821339909117432511755703716787458560677578739571400735575550681839395571940956720002274987358700839596978843559144634907289346108353865773134212675228551517725201367575305752310234990879942268913912043941439400320383104318410272579709629860356784991154498842606796629906011706883115799723658653680720253135704374600439667768544227182000523455206867130497681291183810485494806670736601412684680612304962855702304778861048315974393905000078173365909912710318675781962903225011738281476923130070644560177777123874623200309766362101852265824286914878802898449984915744514885803690498352968266865394732885102863380747646585129634738148686268524922337076448092822983962652142047723915578703478066114479443862361419361136811498993910244789985766064432656251695244474591801717603568965108164897479177185051683314904911158873507695775952753935989144717956742541088949371553487736519984288272789834533496668152545268172606042932168003049917541027012241479946121606875829973372261268512980458790619786073441111859731442099888738168880555206727181408498564760268420907196029538402313856027150820913354436321719595053887212241734453930263867209736363614034978709368676769355653563761386823544412775762793490497697159344137629319770855081388333986083271268408293769460500403597712245265703926099462088499671616078549014187296280083354758648659680588036285500313141334337147494658488214794521462359780529018200482022746461513538052473212761240898621568781592251497417819643868703484378669510843661829188263860947137136632349265890799177889406451904334664739041627338760980894025404748816983599875172652482192861215082919942904581102349950200801426241356721558904348946631608750082878038524347008540815790718595729889670173572702648570497105494758389463160512665070741949568868940857261324892746085654725008925326623426947584447961523680796477856248789239135825615771693321376371363422496779331936803290402308341013484336159706696955796339616800939984485418235857969301087987832320530598646112615570144521318852100126756589272737324925197585945678031507789559293775085264795112044680189297121775442942277311094285203762948877600431210675619866006549719771701867806883240351820876810494751701227510421393485424601757595291958135310287206042181654052760346209982216881888081634008107439782903199957892155640241646726019507679984155870118033443688323527561258172061845343072169598246410875877423963238635878336734672331305147169781658748037108777412468143335797254192873452409917608563400693564735461760474231090110866308330021134964957395213958996749730173564056356301858739039879362298622853716522464927786881289982986893089158082620764362076381543311645858047964769980288488215166574873474960931161155656178272301346467526234981311327064609252983676995904176582500837619109389654987584860679334254520287393603378867966537963930169799181821420596585464870396894323400678476617898935866228919329986406662481004846897944663647486594196931651059412738870081769917095660955511252628661327943839360538937583500778789173313066779308057144554517464336820088178835431700790061444093517296961414787704803157242631351037853858605210710111838136290664024103318639290091994578160254130575407464564679044361925041354667653681247288668914900263047828926278742522849962843853110822419872133633234473895731220537241603751166303752265629605772679956123454393154022409387260762164123952181036508025129593324827539101501696643265793825934917402760070614401484695418257018401228766672974945422781280606948175716478730938430363848580503176453450229098140550057850621017918264850023285875340233218801339540639824960103788233441463915267981405140687630307827869770679684128414653214107987750583869223405113521722762302825016333443474935510259759191612150335435799924384437936670258799436600245354837647506769116767552332036531019084865389495967215064562653002977510009987081669369981890903097075598651378138988060952191722821784314553850743400040157664579428917443840005638456635153578273697639056728782855095533088392178541330944388436495173502382757423985061001932264572577409349083697198032749481740064382554678486348411910139272164145241944520138207161227360191604705453555962003139671328128532605162620217729403013887023953206106100006466102434040662760524220482354497464231924541629239242996936492318167269029019568990452826086688346441345372851629247326470469623436404492466013119582874398838691402735229522259355476550171081558761332805634314565115450684245633206494548166920756636902037963370182196025449390861803557548348306535889927964624154324844320046931562955392476642594902790340822159898131247571664021762649173397895463276421037263975741824503008085429696391884634748645150685691787339255370915309249179642789599641646897101846035497870384423159259654671716620608994312066424944677751590666345212096726670459651873099166823818437431156270885959865294426961605003736265191234655665972282700151707791511533027827543620553358685719726235128904862064019995758581937583698328428349214228033867414516353588135995972766255728188819626455965354227920303928056913700705123608922299021754415163974476480180232338411779041572007079693990122315221795886939559699020164995299631536147443589130786369289889315999522254105866675687116431827243796689454632485008748270078079496937023448752468212616596282394455873224787504410962690074858200709518652911552708731254694842190797736553025909364381985158530485421336307625850325013682993807846164534205501077493578740386742951293922895900377626515869653329257291322807833780498404762504417203350240414414940706823830194775063736409421536885288770679355356132358065782111244066367803332009653322267912885518055232007224107704312367619915085033665776141433135557432107762417903952036020013493591320734256668355749927458231987885486031074245302955548187739444990458925299589289752591297166663322200625877459587782670091758310717024807077389134779841274056637962102616275386948892577307393223288360934934266644657667120832929944424557715200167383221571545481471669439595960898491984545434736129034712937478690417403851535476413785022811549642621853148558918417419068541980089266780295624832369686590025389401278529995914579576062448088885215254285977483650259891569847994490297422380636872891099724844089839065827647635992740430066111346935970850644479254040232563126391607240169903706609474988059862476406619355529801860872716070882019481024560325781792425121583531590401452632892234291500858661851943596130326131087978750416506518280489974270514380807703049415158116863986215394913198113903254731523308330537497361478799429044236921654584073782042670282006531669251171160905401005963256850295025335431719692128312561237509841000122270086347814914112610443767916874084559865826456572827617007510474952520915526031748563510790202735827058772290650644254923008035184754718486940557912830903270943539916604282974635943718165403894459462042660093510787212513144071518030842866404976474866455527818871660506311599535505905134538076897594966723555745513222080870723457146550983917900775972406888706558441234761117495964745754347844736787815465567152417387573557417801262251767600407348074931641895838838371960307952802019016884317821000600828768867505881721448792338667509099747092888375435620598733428588449701306885683621666177727548574701903023675733712898801315058496054530222973817006689742505965120898341960622485497573608073879151605608138242937248226905221164158272260423571746387482508140801032137864105433100321421387994855687926769837681586292784090765289082796176476829387433130198879033926990545131041268943565179554140775829014777900171309259766242392490775478072744018593858920419958587051339394737331347592240056904397476846720052506189606790255341699251619516902339061214559395566860360188915472631741036025059977248366962207710419446881899507509355144825587975035466811274033403989433020844653696292133450388195041664922032022586885787401412047927824865042859356095146992304329167918890440835250603648414947975286246390115828046164123031199561977469916480044928454054573138927276406133692082426250664796041778155661504018870144209690419979017450883552452969756946143259220425001878691852839092655105111922780992050065388728892018819501527183005082562902658996166488874851736893380492608223204964175468273722303594984444292873032674743946069046713337686214693538237180985405685882367300399663485369945758055994818964510029845683640785078875483614276700812830949079162070037102793930722328203448443875939370106471245799068137421484495572036220094959294557731175783684185328172047906355778457537206563649997050278662645193681581298838376298566109395353487035597899460508956293987200271079852320410651298360547434054487899180292084681190873457360910373954974094510078524954110720238902557189352189648516087116021586842956481911399854130258515874943890764672782418301364800656936184003716326252741496630497138418719659349164611573491407778105464420494756724046037680984959562200997090280522799262797677802614738865780248714616981254308336025060054603587829257902376040166762613767633069248296249661888033681052051599948083134441328187477875323549927778786562527464475038557404908301432394816455696786319250001795954994549130043103240067969816651732177798176398695111125122480920336201435748988144950945357786072675762294897415370337597547531064070408310739401460347884436692429178758988716088919761640893853382481501850112169825339221441936742428632460019739479386921740190629417798260265509078158528525635978184523557642188512142407399670295610224441534862362300528459818245917980652927497059357257780497486135943738686220977552230142123697674014470693915947926342785237612975203380365388929888821777983096403056877214130958998149997978973317661247057990313507997327165298704610330832741333583269849589560057397724522276994749317882189283482751117594295120184946996305393379975469861085217198159132183303011094989117589523989931455472544547082530898455185561852116664137110527064001215138146317003715889336952597029280096456063958550020848784608836940558473040667251747353426242245138276904828896067000565284855336846866290203341018518105608911822062504634049260777509848621593728503874715189176568252189982688292834407169341638933360899483285717431567025352266423705114786047247081972276911620590266668656800282892593790123868065706104390847287119972863610171731292290338831899669615113781791530836266513848140791573453490422811018311185022105505135743113847311318571643784583931080404966640623699834869077952378235617439730502661712224205141269263959659888147322299076434999226204326530088410471125258492503597517961406917422636813483898447991868653057449656794401418790556477872158704908443271487554565454710506235088197472726067382598407898540651634260699133407579525570392223995455167633972701977541951919617725480345326156201116030605589547883339474870137242748951367888647607562560901591563236380077300906745131948177826500621209020683440258983276988150792063887986372241339038312410717755677384852700895794986201125629392595991587618663620985912069791727884695247488845858481545472968268907978714031395648733225430060475845089650372695972833204546822920761635580505055803881186372201909403763161679713522814538017578224351359809408318037297679764939374678882374151877399949412262676292164428575016565320197348161302564282920281219154335033330959825594498233606829436536077334089096651849157919722580456782784051649764046193594353985074811447776985934862248498908504668224136425549050726722447962900866399591785467392665369381129710203216219564178591922845728986981579762319441394984624038231294548387000459069257612536432637784917699030520718930541712685904185451978853205184939329287829448617361728719155626951918350729305295066166939295109079986043339769980797670184034052214903391307847164322462003181664004408207115771660006712525022619662609387957421887993405925923619283433513098342469129287909873659451069353572379951407292513251067414484550114666303354156181588172838446155940215982905453662170804341536458445431085744457549253468256629594437096231777391561893568716298566832300529741238829554528957818546903232800517992862338398347684723613570473395430478656401404670083817547769962268561356957282557944826943256056019334470992799388432122805588714903285653425596297696925630082227610929617041516322940989566228274881594035796256921310383939141006535485618382181328219716043091017603556702426507867095257757213244009104790786450375551559232026270065368208039211783903635391718914225434905564774729548228021973734512821899491174726620630032552498247373742181954882908929123214615940496361693474075340625058021426230292216675388858322758340427737266819975288095063202990486950959754855855209420006306421247476512207159428734741945037527984859751240853030098567633793407646307982205999086722327883313754390449992850536886721995425756520868010608272005861934705155099417784501615776544371591334919100397400215299701373764232660080683126253855164533689140446526384033252413531875491875435259314847591849764565679115457417721142499975592599704620290342655965295301408125557202094808895075399311278388488389785814742502925883804796676758251106670781030851293293086798553894104674725307319561937372726803912679332747096315840548199044981359305075326072597804907301883618904469538885905575568797330890206253250454240983508359579951886972734845119698201895489953821699391116701397741406080810589289975721732532802459922074064818196712549461802800004387386888085987188636920938993740865364366950482748928674226241033083292147882395737727480044960125775971760536035968366418916908824369190528338597371944090804642440621394317319964152648520521406399567690206695024315332993945380986034535085647264640152749425633967827259731424520941956850939782070630556477906951316612902241654392433823945890487095639563234005661658247459837196087667409407574183294231157342855036723032892756672129018245214483370234389044690456051752208586553812480251564993972693776352936708701226080621833582624204062914802860861024314204822924321741002661988773185028203313322481302897153772629600912823188508962690564919963137242684903661003504209670126453188145329758649318191200379324625072962658313473917711721150635428399463986464377485009642209175442163777540703030981152724568981578539013031771758446627697301711091623182445855760927683607993702856795651818781398154567536529943412267586397887630822020664068285890119928551987777894347167179445774228004195485697941648196570854165236144925762852467244352774873952696231097980327283042569457782892379018971628143883355338661921756914141662927498275102160478643207168977528735246976094020096967030401443394075825907484660266111315853445325775163550359685955217908713396877079203550471006065199464852293269657116361184919761436093963687685744605565484539367457065146288141484462672341757172953960361874756706510704963906718642258116757612690822769447560457679828718047933135316816435919137117059917477251504172695209001132921278953823355434880057046909477332170150124955941339372058950433197377377288614782972555792576057333024078097590685890510799984977067907865852383674708895221910027534577174934598096255222568489492758494170469754957436792387190370372905274643896232461034583890980594242995513959997881369320273394994076862182376318192321695380628084035209237754881119080060342439183740466390620767185153668562971568678045475347462201380840456797558342256554778588923871006290809824551652306055629126672384032613109007766150562089231616041181334903430524453362238449031927161626597709239406646966126978112371783006138810774734190899116573460795426504673062227628863795598266221842042224796025941005225834321439948427193922996747329699978869257807197378179193440821288354275454131813819078789786551182213376144692806119443732807309281652096081788811291239194760042963023568371743022669296969377897214390595997807054582287131525979099059496448762369841356755464203108763750359451774940953102266307362294569079160361243225398999785979967504649649016450988289131147850202042463640118865146893436654944953319568589018784484161433447017206876664415363996688666113904910929589060830814671693537299189298472488127911667075731855150463604134843794151881272853085032810310251681176848224028599518487845564782289185992296240084787180365394036211454048121530644587116779006645142591338951276137214768240738672329387051864713730797987727954104098665568361020005045517299008167964912802766013437478684467003986397775800079376324759185501149305066904377310475991429879728653663947005015476680226905439649454323672303275283678995810176452195716736041484583391055932799466703688290387809516980557079210593328666969866854064308156408639900372402173955954096280665358609183584948841359314764182317666982144026369965959955081192406896253840508425242369789069441883659972902466123987003994991929347582433327536534698634496817751535084506604581886556764293567790990606439977877846142134195341556303100126368588778338949775534750896524596778920927953871418112164802795258376373308460249720594804762768509010580788147356574836276036734805145879738692343149899835521627413718187339779321965302433711986025871074617541816092014547026249603897740740556984637986773518395453689521254044528552651344548270609420143871274141479681999785087716119806222138215472664957287476477771596469908391340915364674379078441055381186101626439045428127070361427554609969613212930229756589704157779383960400676074719902760368697818275359782232469253967989395156992366934709266579588237223999018705438017381126343842514454870434366904731121041950157327782138873357052718226036749538586916188927991936916089373506242283718401992436615347528953774103263090478849934212342293230937594376799418050859133214059291564205577467237213415229358058377237276154100738200109287507877639139351292462282080025514674080261662173764938438137142419564583216775670531069008760984300800493488679181651002489340390156226303747014434262754046672544966621211997969281979723143649438681003081598088905003581878861311378906214064961099439519485591298486414804026641220676339704932486021459439889173035035284884300627262222421768398114428561449205329913392153963484829165461924181189065872867106027646988331105869298470217237268589180717845622157492528686801416656385730566274762580918057882953095625768650161776946905606121466931705861192810237177166200559364852543031495701078008458939353582059499794223065372983627402001865769570643555430676266141298335437591725766677015734729099897631869887024518932666505833705050903121661900811688599260892211409488379030599137659243673192217880866414824045760865428732641604294139945572245087379969297493917257379662339184266953087791629294930674967477828071776102439394190257471507994356353903285455290800658671617536647741275338335483388241401523462662629850255844765452354835297534545886255635608485256052637056517247664453132188946242992741554327757150983158192377947071433287562187018012089432445478893057145828273586350052403186258887944985122085576889780363977240649626258376600890032685749000088840973207183039038818812016022479051864592159934185366183910570840892455813328572455562484020055405063905272249326565792843320799551028705277121999672519038133319443377641739916455381493649164229400748909156974629895583280777151648958161089159802901093168311872801381037844333418934457024370148356083088331978718966245747912456970506191975529333211122010611456228069141854551720310952719120743278244873105783213704802499627981591041530360465443251808798467237664912537409213635457715186909440024205974676723379109324225593549787673669482960848791846328914314952318278589727287271126079580572688559041060294944405966110332576970012006022964679876705797919367445075835910999789126601385925510732085537115877045080698461638045356178912123412541027250039394316586610746662589879711280499946940834208546434831736918406200324697746594514971090277618885282702108526455434704351466065323408428994324286015390133124531981687328794298908811678879037198267540931175924805320257294534776374771671983278072198706793556001499339210269018020311048094878894891442619424487183217123929452169546895742910536784075253796851253509438586408220597609446623301556292186275795389497913872979847181514266941845012805038261435707410955879816665338488666664837694733328718055582961144721821131962064262401379165046940691665651570139937611156888800233979011092742930053372859781238252823318316495034949453307467705505168215418760601741245094438134441188157823863319284341519303717226521613888886242937428678367819231036895029280284101148231211987259124416327488840309544095017491706762031071405911007014115862445642183825931308731184507859445924768447330167472457043509426772726202412560696226295090038518894445878354827002787280305655792338230693689657889526753152879671893695732168031323745052321588862424757099797850583552699570195326757785557460959287427416220574295626655683896364523288819779423015876201814497252348360454064650259302929671011279862825118516089882444077539157034700100996282852502203900642399478866650536500724831762708282871473569973080503108455763064859321745055562727431895418159610918774490942123932786120515925587043029384228155642807950558947651744648410928438645058612111351491598252874245657944156410722950583735108729597681177282827648821018758289822685351528290724447490676382678206889473332210625861097018385399777573215426180509600550372025694771148891545663478534879125069493971820186031571566786821102383151878678864905942069841412792258079849451304696213343822762596170988560755605589894262747647252468216377305340800534578435769914876756154163976182054748146209781643238841214195338234516244292659559253774782539828980830197486434698393624717592629197195307303469585269217133441885383989220093362985961252329483372214379639835907684873547987514076348329247512421982558937785269303430876242885732988288021252576668202438740361084445959797418751791000878836822399515792435017209105283150906055054940664788761738599233969773440872554144365424522974269507947170644252726560553424217770145858852285523831381941152186722407269984442677028573073559363593239690603990709318818101738862613546664922666449659843778407360487704892923641317040566835567007295566713219940343535252759291302646961421146527580213406074364130926005714881324475235883930109432853854169445834616905817328240271086230598421402410163458391194108921384205696111667990822802632445749106612531637685088353755632733456461725018660051993788419406656118836005084628089444699735889596824774050140477146973009039256720490318176271030555098172489880680841758145144870535221471945262354971781055121833682967319915564420797598855644331694028685878465619693541674940348005692250285065364043844911672475804788737492637660954620661895770247620094988250268371190891479237102975794632531842559006408085676899388968696312904457741906816667527283073734239424431013690805039743556662636307762788001881346766137312019224359480206893488401413496465936597708995348835552888439133238490196846229393546468635766883085772126375167769659905105154616950892462495755601743546899468820074449351881063520988158128634788112447201288503614026675693551248707736237198331819117007349819553394696289387556778641945993500975223301258043786391631292895997687130574689999528490944931260830421449590751722256492418100114840165004726836854503347167152910650110014728604108205374292216041320629194962964607326409366236924462842150783868563684129647175024062279537108677221896775929547203934702437177296686312693965638218303863049197088724688525558221800690847683922467519026762329275580101864796318720456198954276606060659368218964239626082942620603250607900876092285975188419860891623344328081192748839077596901471217317104752480733170336755451490047254282792789444974802560773217377264445493306546246088145501168070430660476012537479173731377259883180307393236473949395237897816102601995255294569265067361674072505398257612674397166150841063149567691993085703969721149138150287447391042362338414144107254788101625224130809590473200711915919641235970426469699814105913296195802417299685645069779252386281030792905095628612038394984610591413847686833067812436567505071071271850950773701073398061076003446676237633112528219427151734979003462219897181561574854799930615090607731794168971168568328010025298375785405751874543611103456946812539371705028834695266124367241169231530654687833074760843168509430822580923021851582020296708808359619085610173002498551773918621762144844678378941868222678652467991009569692251546178541435985247503182927503115684963803857863947084221970571415591468178479855007714545735200904486104601980254911417958752824160251407421344920546333454920995008378186519241531009672676413594457685603974942285722886954575622480531329481965150434580613984859107090893229260173806655760482191134050702904835223503906874338127316425289710598515474462306556827047306559765532285246442733007694043367960466131886023600938011504673918424476252118154455405436546024043950273793309739490959545118001571826699645818026184247614773387667682572489869363119302504942833920187412975473681844741332069792803689014451860468270103220640159528372887965988769536020324794891173255252291205640899149952499890085412109814433358794021848266246830073564829077094160084411924962093320495079517645571297755903478421657276846073089622180335841937005518798594888064351082061864999761523604617032929134548360474918026828438106903698137522672648053994974549223099084673324794207927060720639448738541712279747493391876815408380495924306622194349551341810039066408553957570032305930178303827168022747498810129958253919503998423367203905171474567201516056666848522477504174718871464156373538030623846894672477150332387674919768340250576290184327423039663225964133322681582234539712383504619353184603523905121780970982514038268771258036879824181403702242297096715959310024758799675222850149091986685563010003053353241351236695435141583569021601416441168218944963766083338514975979842190952123499286495289433551730387018515319599690508664200494604239556143355797802333159468575592727577551709551924778409201119548047593260432487504173318326558313673952841468601183409936497720909642429786640869554188851384388897052118729971202437714761432570955853025849173480146145566481746637051583401825274002297235269835590849967761194043289702612906180499005286518469118286185101134010344403927281976171009564116007132490008386479411162449786676868629420985972768658219572173845359989322038500314497873577363108794791042500392210384369681130084691922600822243229492978624300282355654886095837392339929648731685274854314239233516443488356050437356402290543660859243585228237172479725492658238666922047173523621288146122285640450204745820421721893383168478636946940459744825947284031895458985421196470782312973873871392984544605399415130230261108493002533203392701603891053430912278041702668263380797229170576043029791439916124228489203307191454826580572872113507284566754402045418619958313218631423234732747086926766913374866168742925718613864804914220021163414562501221126396833957987543686180889499753978127830644162844644968465751385965783288808339149452544261418895927985902762581876597636806039884571274493696219920505789199814582427896692346332362163647643956339691796115075647972373425730413513001285578696282170935895629034338058638991778365858728820563257104632672162870124620202147350685485410065304520717840037065296550622203185282678571350028243064335568835180809063572769534121662833719754289700779772606214449755697040829750860992492823949227097359228786481295963617869106532173556757417111317676133116330215510259304829819194167968267030532451074231688533404724217423352889689992233994340184175826434939641136116448810945144292234657825120476430404806597433719804732981993299742413396310205820042135627010245230250893500049903298826134968369302147945694544046061104967747304630643652722150152135484865709166866575728340113500016296684091048760593160815168678595691644967647632426132981118966735795397595798430624913628124097271569266193657330502618298168705201449905768249260851642685008568943884518936651924808511230274046617083825389084543066679150895525498663678683007083535907907433322562982811601035148355837221978747681686225320929205760074503574265951778880972529438576901629663274148814155264029848227468746366089030963019881960766700223936097840692309671260769290688738966948718659012269124707894332131250649338638052435492491205487800578201641237205918736797325135625451012394318499389518608651495031693908009927973023546985036664206005995441359493465763762505073933681172193492291983392400243222769783195605734317048340523591168683539349379292013914001241974096880114730068054277004191661986758420971398177657474572477866109545023955643537519865370671252380900786805742773137976799582382542862464758494253620261016117225505112198691901740482842225377583941975028760440799643974867912415702866176965572488213670575362963219048706634868249874603789240203651675433155992861275170106795656057008222214711592003106559334978285546352437072552961930373118985144380712615775426829344480091412157216334006815639593507619852947611788064234493886652645668172982650657005073130638282620111398416801293560432160468534687789086049225931774964419100298694558932647468898932379249902051839433555902531699341366775660852382249695846375912467847395886334006209451938244331321879683081566947663161633340071826012792885690229505199950918509525348216513866190774001035512969255041409062707658241573962657883227782280341943230565592397532589352150438809320070401722882678212861945655579182419324440494821669300747768615985436297503635577563585325684478435882417049475112105782827796420962365862009588460166952479875859444124504658696397460347525350387239225223135023962076540257754364373980771252709729160916018379887309485328083099851384149881060319814040512888888734307733511035035611777752711932855500956772768103069466609031461358594178323941633736249282379965367071166402953201424115204232449934823859219108786092051703763797845948875935803882870655627570105896183851586432441074157421605067653392317804595628646889748530259727325103049736094083838847631990988836705377614106303869943972799092775183271156330498829288032609835000560652111637308049309955554313528863079330630737027862179373145104645118295207335441616092326448420320371271447967886338013459969757559705361552078697343252340879742279719573350236276498453411543741495898395405148150592148546570865855716331007956651099033314245352398527998193184091914413091460843133739077312197252459637663077511715099564733006800751692721060889978658179643941029964995298317563529410007950838259279128765204002405021013400429280308985757026503903512565057388040539218672795692368472065679117067713636439821171485531335628966354845638413990507463463761979482880446620530238044998945656471991716939811230755559504468726102893495794451071662781559445968971107911258718877969338397101021584880604916880486420261975270847465982744219310666042562846212686576232407529578931304071018629330253995745067181194297017952743622512838154822467997885362102571242247513654881329271855010734179702343808130048649826318800477342004802622392043340929869986772876859712713381038495851711442217116666538381648116488415684305279681375929385916938951229576013673223873790598274393707119962195302678586349361369178171835021637955630994410085193203056309576723076126063382752836162083249791788140690862240633705669195291539468428860165315131101397313937579279067363269497795306240884440821525950787134733933368095534296312068628406259591739520318971063390807521832974441226265147063925878682515186743622217166556311843367342560709603052119981477836865931760194993845517395513457103618826909744541810111423552445733811446140077691984246457396026962124525993850134480175415006174173075210901362308660710757895600878775068912610653392683874001158893419788887967465190286051015011280709142252364835634250249759909997672082565136231125074450849602967197059503544898563666184985809670535376591287143281663816815278087825851776994548757939768159633416682305220640563238505401375046892416288656932065732587531365984873779986125408475513883475078257431287159849930253857435244454119028731765520029498357761409990519674180832459691222526252397865229812512250175786407927317360651596076541618639405726150444101256605040698984207226428373656171553326137671196907088203984641029616399751830916541444016088940633906192604118035994109846217232741773662355820870526761686008481400085587143222575368969208730156622137484463935396819734782340312330949367831193423383116716248700524684185046126440193407525000592692815049878242238497031014776353220281387114926815971238106215947821662018917346056896333495952281486292209662384102100851646345838561321252448678317594225664300412798421039547982331274549109357689129789780442389386273576079865678373001174514269984655767157855391658999039281988850004224313984883053180105612688949463358184006376094251792774038067967725133785681131019707236232270442579823078301616908629674118217529036349969531337682529948443337423222956191171629913426034616463474180680139380233039207295458301396874080901415901570951618406088258828371180288778574929238735846569747256932077067178751208459842439139701414199860641470839547104738933745213061090131580249590935459248725257823527966913245712022676579066322817633462412004665590965974359800882450807598050043277337673962042912210547984590290150178005329111228871068434855135236400809416829245013089539935788099503008467543647158840218381103290436679471694026699518621753140695336069912392354203874174444110318610552174679427689154697707086512105001550738829729460610187840670285424643220801035873037405392091385307495938725137509050721024293566026382945826411777748736455770904736685962693198099729761715473371731802392620203163899300368702127054357016818499345326961798970392772139530589229702034873880467700296938017432008042934670516929311113250458632576208881097031590803869944450306106460831746800679100395152847736126303096588259037382562746063220944255656021215132935115562707468462896765120798527511315182339871899845274501260748911337760450555827535173702640316903108487027410935598327304427400121408199861454309082005150949244247557492213702915050392728339544900236834909310920434404822838111430535891258240178596571770547332643070224587387214366619637825125739152098547228898212859097737189672942896901371346680144176246934425692857577112841832790197307888898834761800891202873034942988730805313790100224572087983704473877379642838107489604881369382493512234450124255948717954289741090224278209732077007782329277945874974195025891765128434179843695668617040603890467037710571363338239865164670521608453120435939000667138330978910488816278677710595508754263511327652896580930778796506297521107515021457324466389786372181104907857122986003840934404592194249901657977459435003389986776958636683819364410819891284807654975230591694870466191580143189444119744969906854891783881516604149054255476005636029741398402190403708787975720380242268155059062238584151085522230695903821574001494756042808593919938217504009796882149123524029895162623410388294764081672531096358227159223035042148281278398714438465811958171597250029216846640357850158025268581764771559774116094277379733466071125009543827160664423979961453444749761514373570541230023110749302023483933517463049296249885134158969632483980053015126077728716146062791971837816829840780009973109076905242233711872234314332713570644276000438836846217991544451064256057999967410346965317828442780940077268685335031622323426814857495057464610595553873014374958670733185140112780743428202491946856830751651383942084352912423678103694383005864394951462700727240145658719085348890382752666332219610377324285656509326443031014398013001706875753920842742665563295056126646592294165554666191715117928300231876036887934724254456156918102508933875683654230725756838346802923617349506023755610289565207968333455778529307984392005684631442754477151864504659817895868555022937076937772914341616391757025760942719206721956024281036489121256482694452337340344796867163657200389945551771113626512318184150485641986429924558119090520540102522806828620790918448323129839013757804430373399474090958893066885893945966315847954890579663435439539273465369172194405045294242717199321478916980813276684151686921150565036682487940194251837746504775333666226224172137007503550217214583122938375795545619361428770241403512590814518983933203025814885635533571709064101976514158895409696571519340398921061350668392191038362227311160273722640478085922600507268454500006330484164043613130346062356196319931350720178084697184399612494043022065041825427387801226269056730569405809533360082031209041669069907139685169619206204971874960817281759766420176421249724355159057117113304240141954165355161840692350154198409219553867319741620234804960586586765308219164339268493381902070479208492170513985592129357441332463246446614326978007606463417655936735651887085965864541623715711160756839167304496678342256444252946548893344170879592942124363581176096249973185630312765274925863025768733722678433872447859652717905324645613917412007149864613737123242876863407409845731873170280631344266347371503054056616261075479364527341916608766204635967377362585662989290491509886714758340675556156341487662795651367628548237423654057293078298170627369420665404157049681756108621491940536886536744967997730617514572681489139024693282651552960024142366264357974720162028955180475478748004943460684255817773901426254321063476553974964082502305129126505676824661962540931601966730150118124583130150551333987311737663292176601120502302591297637115167788194523133414167087030444759253732515790660466747326855055380606997656928136861204894547942624834348009580146843028911912397620261205352183868335549550619662772932048795618988276449133667795770547865652001196002304270243993279546547796800101593654639567612162551032443261019024585392573215335348302636598173370092196665492813460168706463763602701115054933095590935214664962897386752452696793001037721211541677590796908888971321809624472776603903086182529485868970926790028377166462910910925697993423058040016391764765531871623385042058595926251821009013882427053297162435215352964475665462260124031975491856100852365359595443425631506816246314412308671800759369310557048706693922287925589784293410814600593624498274728473854061076700525855956342276470037460795213948652096881404753583485203073482207265138235102199904062414186288373103534506588817252590469192080360459209767706117460844174856386841208240010301174536561143741525750229395318156738541769311604583043378731789453947900911059053409390864678038282085690862361048590636502593259248114244434089924067000172714520353994322059962094508391272031356214746516635826067536774136195901236996321029878104988603105083784692578810052613410236559494850949163056403687789032697126488670066214370022733625275559531347712945958433540073407775730519355950162770676283316224450656523460022755277386681998148618136136751025796068420637413225771364897125485204492640302182913652657752916767038902305793861031677280364106861197156983869881565419044346751689059923364599947688716950065151995774258370500716529223530273912561250929647432674457240249055502500155354760887057612963563512386000855227893325689553299413743919135270965199628184912484976410117013877512436682703984386064496147336441612431562128886010877071601213867635310227753462347532571373275840603232001100744916344084626899292742681712922837675405136162134356294050673690284393258587068868330269784957056517393828047257097508456903273102894572396991856676818005099537298370409915944750765611504696809086450424430740906805667158838381274241410541183757984491978597653308375876986092838455932769877384022351184011745869395597403417360232726040432368672059975884433022796343126358685629679177389666979305989611192782041597760320741935514917378473474968291591096798394265847431556434058841550271693186486698910728800258985557851451417540485068772219632301202234801975356388953958005511077981894792056231338945490131069231422806553212153073352776433709891152880421683590193966570541604260227492480544542334561503839674228993856800243278352078097707731853366474302036965624062018991932391715045011354892432920558853931533886510605234001045857775759503703009789000289631367607440662223692804941713895323962141777835892910253469014521962757581744032913395060432196773526145793416893540060236190843137905104830471725255763616441405795810902205319770079308555120484669997573272742807890025739528335683004222832207691331712580224395024522182762866132089031013790711417413223728188359845730736810365041653079776581858329682661901044835429922482428059371674502450564628659290255055953452908100940781672442870398380741208585240841072284344987446629469860337898267554855590992234436433148097335568177418594414037185752194868233502164029988840801730375878252925161544486264795740876415482930561592485731182877402088563510892204043437633800388684339569980559006927614500967331793720581891798721588500753788927440807197701911038070620108508756207708662131636122298132499630925136542740754608738905291160296736533846240666447551450833868483184093937008315963416534337618248497714482907308988507713501626804342803516346560059068518737374165134136116441126351875952407036323474475970960298110995805331664056754203118445236285120383473578981924760734165890253380938145385963787322578634930175137011790927432332763540481705270738720576152653247330812261959918635282219930014478334795750218968792528460875610870378371125508586044582722498392092611465692584803518485798346130625400702903176780979767875620581285533675926319456152516812127084302793650489736586336759739455329885830335455905737410019104353808291410153783960794688876273803853976420139970834542104611791974540403768147093435943550857714577889538961726391251444004964110123848078227705949403866571322331447395792166766177259240469551103365991948063557596887814571794683486935855002674280369012593276416877780353780828467442407232531219561258809108865450183420565157325670675878378710698440655082466877204358693978677171611593593631255182653844521798734879519382469763499665961449152068396811968196469548253018495493460204971289534327301190956943821126062077782053921845917128722334384347293381113767594738199769621822033492548340500352152025523686373443395139674047651418665469362515691470490418995006726812292061133440415478904236651765854036953776191171089581920404510555149476484718293754777861500724702641362319185939213693644738756802788085060276404028538906627940880318574847933591255579595461868655531197738439975680490304989900765199081811468313705461536826901692777216749434901822270886047355114686155682278315053068852059220668633506312642908012129004135943775036380120975617889510796498199937982221525755026862192134210610401346657770699675936353342637348236396282123031867556278182372166353567772800371861574135956462374447712423424907854690388534547102758270258873103747786263184891808692714321964900477784692524129744353535011174111372140885351198675565107475113193048988515874831940461878877784177447304919697362861956799112991637023119471072624647899604922045323803947843961460771088951793079746723820805061400363968007662564928078297742430007444955444271917243130523669406566606812521809976517750204986742285673063785300583772075862518033946679420571984752811676105139428059975620083359804927855868838513061995913013472247204973662948495634834665174077946270509510932885517745055307278396702272981777561566147130379031616469218645244248355909377324953294708144301174779591922587377944414657542118118121236492679478507392190529623529059123758809009656872664737965729214250322534049465156799521602832019611344495166709931989838336569148911464617203413423245053222187474135352692644561584643666114418598293047095126333615287059748681960407743079147678351896332163223287155703924646990100391656745762780810545097541568239698942718594116089104096114564673916354763941822114529181590311295629145507846071083032294463941978325831000412529599850190042253189699972486445594332293951464858014874631286749110389292139526339588653244039725785058149032132508192644229875952018576466801139397607021846969513500860689677485417937218318978615555714029637908394449796337334456104984223652468941486913011838459710201253878067478095837523144437437702668523673934648835736137484535204126714129903206133683145291433333681046764650307619799048364975756961328458322176098445993449398166184917259504482740136484140489262823110863844380823712508568600810491396915729928290752703693814045468104653716922800488840630587391164394916451709829854698996801823384539737403361860473015902710449757209201873674221418986593463532023012653091839541282402011777220615627000134252065653688288641999512861917656145637547104375244969060700509851781219006551184099170660604623056763216554366531027059826524671422675583878374484675153185455918590655713056715260068323355914419247771050187738756900313086098720504695033856353491848781288651558468395883614223408560950320000247115850764980786609578462510300943052469856444304601787248640893405200474512951035294593754138530241158040884119198565228946563586523303324501954753374265957530785508259603401276406275648392245698270427013639717553067521072120851176872595037077271129214361152956156321498045898237619427443154956255007535405922896542286925583460548098168396178775382981575363331561983218627616938647822813595902752111422657234306383106646251893440216933609496138204325478179722795664874163764218493966362607164872387852666577281451472355016101515380243260258670959835482424059898776040480022530968843863116292591285638452914925986013443299163202416739953934015680781135616238448726206537237992436702651813772576072460864518416306534879826623696291103630232310448119680975956006065217357734603311975041829024687781780370740944365985340911504807059163901998102494574577695317389020134309352663585715241317402340675362219512588083965451055147501837487258618247173874772980705146774170834308663178678239132087122338063470735532342601628072018015503844600013763462220965647782592186696896032864888847841289143157860448995332094065886474371902539142341994915996848123990558943033874534231598068828021351939797193778945094684244884918503151556778215471516622130406008470216856211352217761784703418654646755577855853599694551998254943861537542641797786264726488803725657923902422445312070293141869582344057412598260632535537978960147744776495030221041345574404962963403626132582719879888040980755795864339907887960522650148995205263083738952835811901968866011279725145420934244079485142641589908553198380155011894412370507172499112242594060506431993738067600538546952065747454989230455683297138472908190189859187501136591305518605260294053576320071735747459515889083249416260433053474578854389239127500516469693519764582842273780414563126551131516141648364887882322262981808522822895702568945028630200395524008999240235791586804451992676939596130992477290950456282373653338789681346057494620889333605453257200674577869385292196800499661147849784906964848573874345112355478248945464770578874204818021323352851582190002692227322758549255008148706770287358743187950701784588350137675190035971856941369045125422449023132174883557712433487441764382808955221678483215192151459570515896268009862031148457520903119693207237850666010420986794970060448637030274250396572313090525592411493795192932476489696094541868750649194938128006938925660093454605560578069609679189866326186156025741124364753410887235885035473715142653206127310872018287690054637036544177425770855104814977039822630117180595235593523404653704987275983650237487862442771171836109316064519508673235167136801940443138992854326154721082304561751085065594407313967237336131419732709747400481374088657915733449817944560558128578566481395413873414238082143917731006804061784028119120863045559442124070777405545397416612451978107933480798741939668656500862467528837278555331482482348114144764351304852460120549722500209495555532551022407432462221655609802879621940157944110097249150864423965024493950908372204592631228800068242165117532685075518551611301371496764845442136425197383969276002475308019595922192924145271763796796714698492181675825708300851521429040699635042875182807448992338215891723722713432486235840303102718817662548453183376754866231709527425841364811321789613072669577814796040143277697442820566331769863318751756133420069680579675958037548684816546833783929654449984998652209301809429705813639497567509320430048554937679137680379563023729207495596610306239992182876574449841263812639370824925851746639660100398314153701325221319579091678575745608320580697251947004649287871353312736890761642698140986665764242190827807239657815539010798724478413207147487847692475699458672698278418459117063776411857655306771363658816264740280190619234941693676627575376565233663401846180609333233635585462408992073862085903458311720648757028486937147861554935753735075854453755776091772713544412848833282036164762688953914703500964273340064625848013152773773014100635902537583143146947379202386922393541455532008623933936870767675771811809217958700177024851982880730535028737892176132512312794520197830037408139988847701274228628584925568754728014178816970197548831609218010791769204511840893003149217556176233860013207340727389958248665256592256443869234646032965974254675184666014005587287714218796869239014056338097933198791456280241642197314826790375700211809948223613437059368808881939740341252377300696212928659948147930694603126855451962834652441514668071351744962800416419132252964760247882800581979191852064834245671461307707279209042908588962774220516367447930698305929631694279435751248883903136088659841186968932976416533114660734632749384730016425288718085390785046594506271935678575822793835363412355077639475779843405105163055045862041239737558010136325948789222932938139028761024746020039817580681895616270159686386011578367325752310328688546585839847944074133431436553121515443603624710027918338130547366822471628320948675406465933887882707916850866566613494396485483492896029288355201892307409233435017448863306280547750768223973282404906675922223134787601118354058114151205266322969593097874028404610238284280759929055397843208478622624674693351580657675326568970564260495100343581681535737640000278179409073875037980483855545381548473628671250864641764465532814591831614002928192431909187231687940339546580293312892899291818847273963373607698668559470438521720069463622870654947068050728562855721335575484187204822331706612531776512049631288808594299169959546608712809283319060927802024400155285620343545731310140400860758591287123326286690965781429453173831436843620966738474426896910837496777893804403183423448333327916888154806725355786542696497219185931201087673183205548524129916960495783551616177599254826644289344001670537799968884940011857344334483533678225381575295595772226045598333993936914755493196915402933419559330448882623461873301583284045835892188100916065265254975346961504331163417258602513559109915224457345284775811933075418850086187603759231167887742825077775725595888272625255509267586957901292055418367247915726996066882819775418295195676740734746196289046756088108403246884914104299397470515748108256559512502822384907008282670202296135444246221515740669579903479290208505773318081785386312252922031364536815380780079433388045857445110254856974092303774970252421556279173556031085524903968283081221199904129182653067375295661753520308667152144955817323789266679499407642865209329635694796596487901953067028345000086117400711703371412294920478355470520292658583719847110117017071079284869700933289084757606187835571260120521864340808758073462900621303789948520656386359463781194935476870069834134155409499764347055295644905551223758425865222703584324084958085807022587312432528454571972314410921924874404147760619750338226985146111128210260299328376799047272958263790024521168648437848675739923707875277937944759655947830366767198672512966131571525388269086216445644015711371817022808116510123458754959478760062884735198836009599622661256754679744559684310086804865328049821300485589909704594667519161272646835259485541479766452562324855201242182902720661714668541362946382062240131101519793965895449070937161977557461510208682082004352118254724216138913951734244386493868202881823291484430718550315228725626180341820411288157433767309460159628251822407985488914811306594762148746153319811669827464503724207509278268117490479025956731258660618488156486487987542823604778792664535979168114624160780872602151912266944013948289204785589605631722278418242475713268216923980006676292044451232607372028811453121516912743427018760923591792606736544569994285331704817943353983044953877699541203433732507408674499762688883141252665542022287467307894254886403555692896586555859028839978463618404147559757858332268661122262025630107805198702808385311944099879580532543847819499773771758179635732089631131880423203107856743528062430192425340622752392149796691251646972944741851671661984642882623755076891721974703247975564741204309618755083815905891628583935194641522272357460386386048967138743429876980165829636349256346491738333426180164678969303583396310234632044302496851368594079528319560975513545042255985237223849477121830742405818465379423673583738649005373775051118466155855886289374254479311523171073759185116135438328089004615786546424515616104660155743477932474588358998333529062289960800494630986965616844240343181863968940825717256032588447533280804757889451482988621140493972322725311197928872923106458213214553297380074355147826452635861837720910653615852281702780951918147324778820472810198893056913664511330519382763286477673426822088210441187509405950614620906067213109100382264957804963268850684452817267599480061474278446393232359927096308747853024546736682160746792933680230254228810360783037854603631749484309810842578669874617912201889943926654718599263072994418282742109442697002518099799016687874240791557512736811829224893145010753802843169027181818477891210470400979843225074625504552363018711521895229668622739781362991743921147278515263335893840739979676624978767503312150645125566902801932092063388290050389672132064511800900436774613618179892572587123127200813144908398659099892529466712354805070054024013147353209880648953604655143242147673938267364591263802506231607312508996253467159569028198244035703925409346216982308029930445785117959908182742181165306923534160533235550439712868778903805448820652400383964945794376065365427063466375381722354739048843916307042814066716596773818524826826318850293940303743595714032826209713898080235061138645628688970368181453504948884380370981500478103412122747915109069462895856384983738684721427266457362368413632331628334358008017814487964159650123498649600736782082742964767235075291098306496133600283949899351167038089302688071813431327340619212318084591289538166714354950655780485501667526315928820259072929868954526259034004177439991327485809530631890385888542346283460400184809560601347346783561682490731059451074039197530072514938269966236013686996038932188919674078434170477186292212063809519334887289583886257296149774836007228629969546454419240383424521440197888107425674956473384248828693486680255820276904357952823429282124229711436726325636439306250060243290935294475656204559597833219156864933756722734483939044495944240479533884899631769005667663202326625528412378368421318328443104706668685584756794552775922683592356826650860793620263892484758755002385647749620068136400604803396064128243901002281622163890441692795527844143193927277119692182201807790716303849442293678417353228074281965356664602732460171804542586167973344276029620787582208344120997288753511067418667066163281736659436906517890539917956477837756511483247182627857089475213040382646811634112954892762281631135429506515442547224893868496485920391478490062857285539408045218124663130537969061290325636971183401185535281834684445062694828320037648953462932237390507721259074210528086057753608057272801931457198355246751282825432456561786202334322110795753310732888546737025317096376014210481126048666184098765903327584464808851602558055255028946440032569033562515652435099939656676304010071901747017564803389400733765840075273044744530237475228296943797383446086619427832462547056990531034424696737447687605870020599733284376456411156121399998342978235669761559885292839069091783979187475986083716284414364130717080789975892092967005016051948678904087673435579659150489516375456896558603498475851362450662213182861549193856344403638311394165641144285916567748000743204682642002251011995397092110975331841917515852369738102831958218546433590579017672664879573071708616138444291043508528058525649076360485423138146965182300604120948678436441320614968216108568524957000797165579116104051731705512723888696719080886991639673673029997039386734653517477894930957610408827842540738673141515157766184661513212313584011913499549262308633656516480688858662812083187094263727502698117964405137047059102952321275136129781488173153692057704380260029214876896812571111361616192075938455159045889910648745036153461138960531304829504273262834086437050196338251151939346166131202361534898719025614238193787214386699194415601077127415241956295522893303477869491207902762261122061131374519821349107007985163948224330257637551264997395634269496508713451617686060391428125599617848870720961124238118985840764663126258948629928307632238612889954129214688408123453053103608057562187415024599285698884522089565062724732578890921328685352487916971652971750371614406836899961986975261712783310878879983995442647092471338827906818517891626539754679620143019471848269001446954523491794882589248310821499808997546445275210990335467415771520237270967617200343742735054353879716721567721501245979847500176318789188218049182829200497022117420327842031492255407620886918221789057420545009303509590907146251423200321963863072993896707809288947279921705164627637577166557604566337077260327604876502717001361781311490393343930617259518793713170541316950331776763633988647295394512535227679987511184818165412021309867134529962418041062384633657543298682163798547361473026940964701095396003372423043597547748471846106061661764946905851458257211453925398631504437006273435318603450483819473563114802415642100055481665593567274526374611116519788102538336248474865740007782275560438693507674658041545321459131977071096904028172988280482432479349807049409977583725082986145467538297101889288869213155706604141531615542408083907512167845398156674019274908200295999496422184224122343586419928236322817715870903808522717636104744355500672742153534937349378700096138917321685182309300259475325372868370787823757403029468314541089896418081972761178431993274218910423477455674419241551362921349556739141981882145865931707512007796025393471868340202092165292196700526618755338307587815726197720653650822085523141989390596329017384914863764010359788349379245386177351138412811673326634786607659441962053989886466288863467255540475128154430528724581667846148436682301695178241216729390355730511296338833246611218753110435944806092712291287187621251167573348724946448539464976580447106001406486868924919896459216706451214936915209122775639122983920327192068647845894275315565915743282450110259757923100857793212029933278515858706580416873798610486039904515876794284655097632387738130361476187020703695164259215568970623076152833883308523479092112164749833452358040557005687374669574071580968276051616273217177433892316778269950218692193377097839088645072421354880489575548838901696602743435747021836032868188908175291375313217283293225680185788476567690442020718950782594206601584590821182815306921752460175065281231749644421179563058806161165852706880522349667157692069459761756121623090208902549090769763675808564245885828396769574169177540087861935169823378081957061684744255674548900727414516510394230869086882658111166541130856804170797572985888447442665559737564917398286015233886240824157383694236299064980923386329392816233947751231390052482179604107609060986136517948744449529115526060326629292143188376943035464703428070626418753485965835255674573624099142318338211358477603692691087111768309063163330130297869110733445158439962605948399229646800537872845386611057806292705647938610274992495900486613927352392294513873773700432330266565120775426763022208788488955142567148628606603689607234748844213438850372460558352006839856919660861398457650625679652134113910733381760916634645489020946909239447129167900076774387336357337525160593626417232333589980821270464006098558897323610689563282202669237682646282960274705213435333378836287263645159461714248391436662147107882014130780897859308740930523242163871385724209577781759455942638159789260145171870933428781743916482185324556911354933261087013886787594754828046764699245564328194029216361684515949663286321399669096706739476759447554337063129720214813618018728722463065691280901004971950110918642994103889726481458526813002916163040853939599774694171526980974057612949343536383537423500917101471181349139959106978880572000810939980798717271187696103085306095917016261750801507312893117152806764203542440739370522697309446908097362530487257740296622599539169912037901024669774487646501446005907010869595546860755954199050888348618806619188123788560833677093690327899500283363666923288209909647990618486620404041267840855829185489678890867753404388322853880042571745711598184156322839381488383680641038567052749642191805031141505385608943430492178112586725900074129777735473100628256074978310301577217546626380207147605192673817272146523244420228576290113691322630410243783401348627891397058009674470751684646919478363270589854335083359864055985725351994215213644083844791293308376320689726944687897403707285664429664179850689349877384974970739419174428204166564082338847875128818058246809767210256694403263028965765474617001628926576849513139185533307617436066584257497323586616261344901266322200909241624489752200940953899512964716002896980638856730827167288738913496597609506352053947299147740403389368756258956434001952807731364631388375441983154850823482149038559811020441327744432867882064768686028037923720835192052806547467981675269326429451147475959315303713423460619545746983156146710134194549494705243181122713825648873377175938859564859256986866545440784658320281359073147910907868105363727805404587794161275617799145529725175228285642661416527286026970099049442891430551939238788050824535122223113867094612856862886558467767256528064525927693249421411792590574823446606720548236531265589199512228706683246929035162450130657378501729561400764385963375051802725165960479822440300425724062289635450344391524794762248529737631751476460356493956311259569000861352934709043199003004023676971334705517334535560641821374880947120310931239426103252084206317828473564994988388171852409699380700700600047643846498818233593501488420487371923150953046543541996569291080964642907357218259260415627683920438654525138916785978184950676526164117687861421598369400016782854839657601228813969942957125660682491077836981007226446757253988589130145938655369101228500602577304258512107860039561476326597457944087358026276942403901217486835938066965951469462333298221241637277372094000123423654860068642586445204037156517224580993341926113602845164557493939063975609240387436400355907583816594497783448515215666529521841959014244556858125472078907207677478486304115288919613470200603181402919067567240232859264767888358343328476792928575296871182972517835469038704402237615694750719255940288924676787027401348408526101979683532316710469120914107717007603543708597623008076473606040824704398144796167343931997647083597582057145519685652299044506731916402715713033939178611028805677533238741795495966235044582099458635486217679245052492104609491192498860468294707545771497707914013292454721938847609831384797098677118687265373661980935762683220788113369500073031357497736275050807452525685460407788818670314635029481809758771327838959063626682189415432867952593097439303274590811221257236579495627171254519444815473419808067413352792918120464860416137273223480662043653152150455623863388200066117937899099557938775795925297813628639448646018833020147176700396977229357755350633482784561094308616199710205998755463326638863746193139992883246457749065953648874587633584507848347913528456420304023475534700311517675990116108787357754268128393638687468828691862251356459237278781588812495898492831007164150759232249196115405872635166471360523531873804962814517952563695181966225030108306818451061751620292996312615982053025314999392932802936160526787388819923926232584670881207890577060093397014489651441014587760842104403822005874480534608347075419767378530545297700293699133548870513063889208237947888968038534416251275450688996090206579556002294949276513341016219851460277307496122329054510456274897936440285210710782848356609573025436872523494528170188141601385816479443185135166590247412024609397528254980650431977677406085616234536616633091802376614284849397236962232094759113261610464048931976211113282812740137674645120784781340412392860123961260004310091678277970829177028755372168075178059718319557388386763436012097093871152699830595502032012501742247528242381952437200930370283012381048354453571209313239988238882225567412773856187881126931511373045632313958069878125360097400203851425049732599976155223921232140940044629105591186911805323559053310109328866091389263611911022695399437446158281278080572003377664603424895118091736248744560024089924911442618865372492775064571541453474165608774153507635411121860967501117698433791232172525016477872548856140166140922672490989658984389851937090120102688047132152743839689549454182189064804234200577657986088083537915285207675682032581763379423131338278578102128598119513516747084486223364549478305377711859591025960049109951867406087957283219981821474591901749374076593175786422004975647603527240387157078978667124827896519565005859422847346463704832057391413757258757564077647115320302228172868141707636122412224296088465948617022574874013076676263322028801647770763699742993296596899013864241894529814715036140552537860864778351151978072578919073065444238816427685947893050428095956198607764934642786019933933382057005748041754607539086624132013813293822432921167169383651719182160422520556927029489781030686540874457487676465077722826972675164948228085897816569079137267739088646709163253825849745470169659819053022654483283945514415681259419232993063249646575366279355917561862328790535758273925297532050643843267006398108872826069949696629593736092114150553448662677836801039149534286839331683138532293453060761472575923205357615681017276440425312517390131975549551321416274102310429559313946984770012896967734893731291070741207734099067495100145427189345821484351626073675539155511144610254655138436246841480747993062382943133234568717530585492591929077984390471237136449194606339061789950837998069289030710637710228272218892654570156758111495249409289952646101931011986708596941455179421063729987791370172239299463505683752332641563075840603237728180351516847598862414214572882387483739056780263529487963619387152972185176466216718160825557436117773890129344414657256417356000689382589980073221675481649659745468070971892229776943066443267509914941054128396977114381259677049040583364893881855885348330846175067067990557259514680865441300771551595733507055264912252844883811446747000326650108184199063725405944099039315216089104206650682279654695972216995969097983907583318163874019715903960910073361950082862876056929353673650073880136473057798607083585095191581469781057306584117313302915506066420374063243556394511477027566300382308154924906647464179560280725441218571990535342226272046436596776259969857411282434798143664131592940132102121618206354611717355379736967415789000055531450886390699457014929456721793711779682276722939044489420782836377492449805171330067690164419235035587281767019478889823117661008584966255157875489376745515928248680416666999132593754778106667192886330771108382198430690799734900383982568717033328865116319671585794666057763282436189159490971966417006043322214868299981290079384775928328904047252797577474177176535473700243952970548890851789477716415124245435690680454796236435925741352456491022480224394584026879875729861214037696535484772580158435388476449189395467895036160452206316091882898721337710029100945059602597906733158009458553988152102770268622778594746716555683430569228411020082639368940456504217813088751987701792759799853114987048019896444011632429918780309688829541361248467399327177756555177056240995916812089408467862679512839129548533730345405708392482372313211658503944385048950067205947084297808748437324408147533713862979898389879470034057321588776332727440344844510886127954263819217289724744439176338170596561631761920733965164315313354888904958811921442148178098486196412480801514441945793960522582211092962980804378714954005130618899002128527568279286740105164868870141293336085998627340236853260959649310553558473826781979532631880027737902623180923343666722491211003606281972913759546339910740496637948501699790910808950241492100421170662162087662728625549451151699377029772247004337289139510232841618617836239426811202001698331596021412653243904330626170230406979186776288603920001395804587778100795360409446074283312957926809440094198530250692860959683193821632423924806110198840415990532608070392549025371667804469371696647109630980440832467372592126982508144900122724616163863933364283734068967055588673817339522001091577475552863234470430310226775056013840503233334920938782500389855336417597350107290686376655098684579579902263235177252099363752444272935900789971821662879973871451059426372056375665885458409856764304440407282714761940878090080745965680150176915174184715006485349835777928591380827731837853795806820861316816040665313314855524294208142468059660859531825885031769402751112536610335798670539885696165904572895616280633588227578152970998659038328211087508577633077320191701251486548056444115737187626754953908582457431367519620568972650639024339407322991813622869836489638511489857480780676206724864530140056207385284644428128228177828202216826328557982151535809999068744399216773920212191932398068126027864692075473893013524227496964942159695235360350936779072050552945195953016033297498252014020444591878300955289661382360745729945689798628908373440899700751811001497177548429627235779066462460770279707302867913461711113523555356717701175220831716499897960941208963228590934824470765743223908203830978922577503733952347513927774634098364768591499068700487971667778435209471320670479915759810834257318116752957112585675496066933970592673502723651366994805682321560533145051666557478830461211823917628195098790353094702377520291334865930755207425049700278160102592702263254847024712328920633725559326241063826972922784217566709229337228289663468813887449748273591611319277364515206838388761748841652235503919674947726992248790360094729824266648398096608251279285185130776998808985873464014346926219465966799896665181397371811279299588740390052292870666209044299924090219015355154973000392052194570259249029414526732918101104269625205986074467608795879527154295883353944436549895183586338596549567388159855126065925887115672821356529268864213205361527553096044028989241793302779202584277044480575342346469808458235410754167280978000332101084513773479757997699612951665668046539424128079616636187139762029147093650121673367955120474954785740535851568166728572759856962827676346143845551363463384927434789853315660683042445790463229493160046508984592578908088966482770552270194091087727233489852821355953326561195332811711008004715325672600453789972858184589239451638195624454105991814298940445144886818594661477383060146643933577368410188171671288431876723719528196200182905238619420259435846253685483667913163642190102014195445698275002635650704274844937385840027739810447841144769337734197680461378005415576487865687396926094812407299016291920099026663659398717378552621801077549979116822308871652272434657879949884069073438421289715982329338117998496367970530924921963360339980832658944506692662510791245506738655214101408055658335281036314787996133974083803710484360907595052259963637377166937331102726095816141517076485634848569339729945169772559003174919973705995624334450455345199373233636867733240469356278451169243652091521269860294038663005942021114839409521953001447829620467764284103104274005001053613686082861174803606939202016393305349457672054338119946383779311712280038676226899671801442562199450298699085813708777546226067104642521894435020431920644929983872650398582316232228895745868933133948861416718242167127705125766406150679645165189050569532781717698953263384169606493045396047351890421521932407477941363188598908892133420453849462548366565096718952490517951379764500533521669718256405943041285029728258439607887369280685370554774768416331943552515444657282209874425127238847157655009012633579016541877948696661356141588724957530724160485651408047268013215888058403494625780419910263775006936829899608808197447587574973385168288479856222703162006526857728487602401890811358913119747990118463540841140461039692596204254667253286354319319337800375978691696966372302567070281291105269873302713791660812444994095038405504190321455800355755944483148528191057701607944040276277284082401204382102661557457170968652836360614429451886570593187240815546093037195732460433332179023614065670915731785461945124320485891998811048693904752379764613763298534163394581027034751907985578229127529513943744784008229608608354482291646996148162215139445398557912372945470320529624363998389440175509211980225052036556266637522461594106989746696052199959554423969879044685138114264751449321883752071757651427409281710735976181817333468243314935565260528181356216929415582385075640585608843617438728221399222139634108374805168808180366855942869126252807398603505776037578225120940831731370653141001813091124029923864188440287991567201626922869284532462219058306560755350318341528583262041277191979870890724181920191539399956349375342536107458825463655217022425413093870271754915320831175490199645528789322156560087588664836528725458092056969353203151270332035995949658110708003675311812982851977683727652490976877872076469960468051619742921920637558379770519464800815908618832849518112075287297680881407189446920529096432531308066422757484701714335845952104566661569204351655922533658841970889570991042706085338438998187538951898362675012534695903976535440786817592503357638752700986745548939858217401654450802323529311642081708140607429241987039855779005629091896899701294462578603126167319053858750343806516583628433582498116527471738250653937385257870951405890162606554366366120059426271990313133285215063378332267071786569345219702366607263912643450794170374273395455769757009690156466189817461997971868792879990486118274161073953986400055423048836243107897121019417003397794862082562275232682027510898447814778305813762193443778605125531425347066039362725113012538730535972521874321520683014635185688589238727548711934813583052431013253257954029760489146055147780335756831110967469231206829108591831640406078646157260209595345524679125897693847505467098641231952903809173217518308896159002113168634903327750471933876127981553867705686060765291096440145699238697868727093241901254262087360678708272242697464356928051671752694244354188387683843831053769715058045560113156949615483875914592324501809539997682858006417473852729596351943816494508156318656869235578402571479398797617136916527274405234883453271159665178572077801730935228541494472554740884691235563819865952705208821987366009094075347878091995053813510496491387492727562326215058207350408029203706503012766182025173069556956086787374732935087939925544804891314978153270381178364736561484985097985664752851387137134311191129058321799162069033211608066804242449271048914042044510858583629965141932876894325440436997339228731974717773831809526462472273297875991090659651408475845697095805239521870101644430348360132099224759376124654607358684851464056651701371625572592887487518548114276395788876880446913385898402078223754877409351039092341160971457117512442656554230006728948906130510557111367172317703944214144132655150713916878131268677761266263847423145362168526740240203522241030984951247635584126988205492552482348994138269252761073072470957868622445645257598568986019876074345828696989784493127329094193259818276662935709375083328308653870169633626756558581316619984807541878993590577828612610208437576069443911341911158585580744595247210176349640953298369260806495893230577024542231463719280142786873793136228567296039441255373015225785020040809250995871288860640212472697269265279850406920431127466985128510686657478588781342375922891484951533794116108644704082239940250150316562074285333697634257986139547940454641052236108228737775320858138096681829861760359056430720234086311580536996134637772633292040081824611649535367913796802254466181461197529083233005073456629455999686342378415080114544489740291941782765610738594889376463876770667162070460168150087226208534128478962359740819431705864587788021320556294891845549564326968510866674676909338704599955334371548152966576858759444073885612037346714198248237081548734824561926022051832291452476989898409395282256494080774156622145599250200913954026749919834911156897632942613241270145927151905128870682522291552243260180125565142783541950822735617128031665986147594037267230190289983320632598918080997875214437554022284333312566907967525886075732606186388976846961685460883554666842271610092272534500480195503664423672250711695257293076675467133496332990110671582739618329187948190803256045354208200496483894454285485072791286045372724818004802098248029342097023810586639414426794298634586943132565328534452601605465238463536831399647565134887003650202660438128270836969639773031269663326702122083381743760345669304472257867416501367179135783486490235955696993278126156097169339965743984198880483849830348565025770953884104531661245031470478968049152534951362531626486660708252378933681522104041732898644342555550244512328004891289073710232478749937097037768278558701967769629558663996371346568955652652966483511066998844411659418568474951627779254601882945680532487252207915221498510735205916223219777981247898745277377154332700501537105282392256772335549621299258471144636946050938468508556115668676215325346695901907266074244780224140461994440999410492192683239072111315054696134940553348151711844200578943177349017583170849612417875623285772406665413184524799871642535799448129659262495095625522402107312850810521602010912496790925182718308761146165838030233567590783101842754978451507693023487633856286574761651493785231641521516152961648077648025144006416391069293561925387257978502301555492139317791004711509177095398689881864866768268183782373081392121827650396542717898940893923365929009624101214556685312634011553367848550725884641920935352636405559407701562238196970067708333005532690673175515315171914842695479519806316061553422851536402981206908978704144057918173572907492353043447668652526713869112026796411410242478117443637368760297811905609472561134990108016364524155676104110817811474925583928020607794325966770990969293870512474446891640341233211370987482432737504123112073528413588989568771295354627681602473324465981022185761785239081796321186199680622531368518906739709352507331306910149646594637870918624773376752416768680587235632047134159516612328952086611717978146063946422190109588490610671640497060310276955915853961196626872685754355665486288792099743880405737148655686684294602533662906567076710277361354888081272950899368294660722612341318013673299894884324596296021662505411796074603681481567848075339302008447628661862404794404605119354846108044541051797852694883576306267038826598099228474268354206469417491293132234303287200788346435658140823941914894975982337532474116334376090594426781644339845493107635205727086036786028358523780837625772343182066633319260637299982088407083203455420365414771469471513955752764490662665527709543271561161589768751671970310020727378417420053286321881986616014067900675115526573558148040318609208846193321842386766199269506117629269765736853532226786452977184436811022614172319397036803485950119413830064858407709069228430401100110609361040451651123215397329118779646592693451798606226006415712167933500843850397671276591776406355244832367011756165914516525777814231108212474019860924002307925783988784828115449256700082320918956559996898880499315621603027568572009340038787601455130485224611701360683028035434792040807912521792482636811170750936220475399251538342230776219676313918250196087391264418836656304057324262955625191611718276883683453213981931809963092742794009864963834282290251381315388299989783273034445004631881451005523361531319506340319329427402466899590000138374031540771283950976985132046858866801090220706047246488293295701740036095073525772936651834582110778981271329375910286898722258429318888633073004712907421657569978547496775900440337854355884605051647023777459886490148106311312605893193668709458777534773599537450367199510371975073349474939179442827862491405519264526410865903173333690872369059204783450593180544864636989196386344630297369979210084188378353212023069040245293266097605588720004919453702857786527352875757287655393645675042829938725756838188757972812630425081431403945235032752348875219463569245070561852299979312980876979895804332049511268469837555392980510092141413192252183401427911738124671959173960116952119174610938980088210945391230131100492464999572627559473806962700119729134319260486319399405469045885000832033253791144095388887135364362896914371397242447412987123266534808993439395536403056593854697725128030405643253268966330283768744133639344593613818579800968260513120028128083279993775093884619623350550777560701697094173333073425344233002492793227026956358504274646301218341135284325957766617789632980018929065568795064498348230180055482778211951471838691902950538523618160201397877823371855830559471026521466913400630900381034572514486150841340790856567015028972784863055067862673069044923741897065412905215628730480071297837853761246260094524348195789270780282039174228259762712694372439837789818609233738056616070923726816364019675037146939935945514072941192297109902967480406068687596131697428045424016423199977225408269234098591232174404775746223894186898225930992869919306050254329229749845657550722729941965103902874709742349185305551152531744386118689949782903910953380549496068218820340761526359281820019015968572346882353562297420588257141394810619945994366255956045516763055531939521680221024883971613128376025251668847237315460678763549518789363671443868258035513729731166611968763930406432824862445408717261479845953355131539120285245250219527862960575994159097817910583917405703640861375446577163609054523747710464879521732667200185037722947911172315341684525753352832637584932468280657299406712478799164014533586571524738943862765083767970699664043209922743204064131940427536956601977960552008547735575437126683546079510036204797474565229528692938501848678216084902360098246373373726005778084172923310936292063343669062494422305328561422306569241348705527150759785534759005384042833308757697572355893983015217555192130632280426342805135394111273131989697591915134340807758679662005356070374253894054286031893658934377212429189595571704165056469024736308643519805532492347155203515847642549353015495334541812381328004354119930655007594681729722335881469781783987287969652222625254646493242559705228196854198941384986086204274715717762124110585122184567932420064572693869871057199735504685349505620180440913263045376600821600078265988394013962191108919711067797035415044434442342439881285540071739621272369721304685227661768071790341935861251214123627831319580247311165593825818114320266379214232295295976606754903777549919133610526189505723185570596875374808424850263768165127766043992247593477152404472722533549212448675422135796178717489067996907484949970049352074040053598235272701542292495077783525699304222842834868251144337589389853352825096278351958118582412975144203798948798320976095012946046440301496930186498869576960426459743045629881990049243816917626545605292846871056344349647601840797235110434642855938947116884901045811166266676659109492380314551028607217667155631482499716697589576367993957150099700474334228508662056299291743925283395527307340288425718440864868157629304822553730757065831711446432856429173450671146723420694387570510833916107045959192748348021404849827013265517162138892118521881669868772327240962069572447723616319349637001334171528972138182650072423884086897332539155672874440545819387122010104528827406429391651308427905276733019257267978597660637693904061431248844071521608689084455485096614585452596116261029054764599171401360989810894076887718682039684312484108910781422797673765551197663451950764222424810485780674644010586620514784523911572538581940652038911296321169752075432663182691645840392683902027287451988272877175991079006307343851091679335599809028719758947788741840001985438962571762903191822151280720802633631298992153387747561899573400760235335301636353427585190646052379950434236030869960233265615600902648564405512652581427147674812804924925614709960536070424764770729208787832602876708876371995930088410888289914530056897521210637399205552626534267867149160577439987280033265979128239211993374491321005639349393714724743028427196668393454964031181333053389505696046163409879270460609505193380031144242412292989760490489145586899641116599051323232924966736405675536347604023876736368422292794263901770445655004078441495499257367257879136263487939335042764779684533281961022911496766000143121453300394516260166741030957786171369902113031428252581188469815532730214068784408238911210696513671847061345458694548278205452919260609219683090568637315120191861146118699009454832787537575398356756900508638757732905433178182548096424301532508954625612875959158034253465541519208936848924292061062472966273113623556428494217995734355681293978201524027805708744916374586755972377273917070534922294354035719906193398085656531473341625643553392074901823383277199473245940141593236882861411401520467871782171229600990568762549618489218048297489811811990204815814618970738330430354609525330830244754013628876630787517729878787561053580874273476480231482066343525910367240835663630142322952273794995185462679366235417162455180468868982027299062705107766496768812070655641886534741375359572555611303451128374423907925838344640109433842710122037347122493850625743899778646503765452604698487993294362894057272928790521846888795270629665455538077752949506464357839956937355454306921308907683837134170907214675810656583017019747137204251860846279932367594971630810610868333690689438715484687917498498996178629447991114762037135957277243085796877515017922507344019181462034243654352903517443035379827671396205934327600236047037179053276729020789045220721001001478648789723177315082762288451456779806204181629602867481709306170288976225373894843679425666728417601887136079891486549267632759751977971785748864069046817606012798834277431036940993522271586767812307204478547488865326867518849120162014845258718219351027723800311122208128188677375446312257953280100935798967091821011013405853501830860370979480101461910404240125978663897471139659253941558885161577971711304644623448292323450927534937272861285355848704870283174539186024082308930181069843466765136702198146127845378495593091190868990634629087107117735373288258532363889567333884176081815071451933238843141958391152143423790603645813978834714021789210356986938493157300409286870568205405694374818635339277600637623379046223428006644463058541483507584128098717946556472052246438730977908822499369745089906105552788220522155630135817180021425313893499294547117971462262022724961482403115992558300991598959998864747274162809445957329236374285527495983492872196972616216960142037042039934669432233372071056124012214845627063233717881019926043854625232179122320075570433610157408957938058418332853626990108810602317752525890720549146009827665364773759105567941251383485534930037595194269109666798431017838328546387326749847413138823284244519556925618319776131267021396300737532811620020166681972649147649753072473782737070398506381171879197830251586701549710431167560173518429905094160855976453495247607298930421937710133826719298441906343542772004553787480111306707997430396914320598032198074321518085097326969985110254515034594273567948046046725036201398366420191814837127574040140838504277990786804713626895661241132831771568666725138166572357559243987845616286483085099041370307569332033575212961753126644223453301724432436619172144768204111036318095950152979988582138765881635005596330356297295146566373968962231006486595705296526543486953632347034851077299637808320337489178023144884334673638247494214015783764816965543734565316185023532570557253113992654031895718851823129861196953337397373964233171992406223776305040214882877951633037298874297770554059744699001799465750765827168805952610062722079289410524636362107265400259574378745381926826774435604780245222310915851652138763574419459145470853936815859264255894529414166748748666566159600050979021599134178454946035401439796034578816649675875161791798845554541058175394092240999527527020079056943415195743975092840846129470363954444288230779242679983177867274660475571228910399050719709977511090424555696838280619468092976392446616062037282644113840192984426145005582518251209439792491289359262405559592333109024211234977187162825013762269988124355094798739668653748146635746276654455051622869839782286632989373218108586340485589508925025032914513429106676813468687741950811041527873427061351273023793851539034077734331850410972605576243994693870301660546852892512562675768770408089320595276932925282905852786499992539501716230435998388899314490694085576281009741841227757374308841274188627363414660079663404215971234090671333513765478449395497148028969210859304460947701754920606381488596785362726558945139240334420119809657901450650334329606609247789317391240073186772466912222843677160008327848996157144947910809897955246609415195608603769244984165759006427760150146340078139564266633096980546836977050234946148176018733073486908318024304145367157869635747061550761856203898825821699224714918846942697762936118400527868303294897794528968922930349569931596020691505386108640958961398546900347685316480622721461266882797533180890839747160747461983584225206889002703391613795039607823625766256377858849183154993839683438389164780460944578469376953699587792595488468809057076197399668117652881977673797811548418456663434667358744125427828538661025148831364789903954268070225753856379894275870689256827025124448254702977320035305749746296382886415202392141306795291224719287950035003342137494768876169351156155120261227230514529410318846133461520600982084531841710210132407309793899604248239376999734435477429515246793913905801036428732653482575190022914797345532020694583291299538447539029624572357187110174034517018303694494852801214436742899652719451714031165769406117700934991908639696810063461698081193246483938457785723176709053654614246778301547907996836520446503740571176231941710566200037137831567937389638778608080584952559757006499307760090613375788110542550519719757114606529108714918161201824376997033703143191277883544012338773843814072741585685084640765313032038360644846805710348231693242241215858338617593526283648111911156709755981402735536390380832011976753579720894626724124929321206981585130311056542640900297915958115618800575923665409561852030413609043910207117978197873874992634469439098268301158988865399897208834111821422764776528857401130181969517695058229477156557204223278137977682781526423887546239579119461578352222145493634831971894164327357412550501024132470912416752710536103960031378391786679502081431172943532480948426226061844663795264039637266156839990599996107413600838147003764520226127995530269244613502501705775610718461262038799170808462801010331645989714813495302670000632125787160541471754246152524347769490465775455587852457944610646135259710869031311298340505260461195317698753969802529634882639810592136283792018986257102784843469912888013614770583888682235376411420299294711966479062812726203964467366831780361765115764318135359188882010107520875373461660854258207415448475046667701230952204369770534978773613599653542961857219156702579043967731689476878299651676703905674751031535845830763092895339046286146076009013185513339926421259376529712295888274895830110631830998011788971551103826068646299455676783541498191175791994950496009564023543297772219001162281243087290513007068738324711685059472347013164884671261547091882101282916020532034720109311772554313641679085826671457043052964142431996773781781562700912857555072452046784241474506863373086332232208063976155882080379325986427852845141963815254287100681152142854528955541729295829072658779435030376494372358583088575436853897613711041850392450554165311033912947501761088185811726099110866282600814015306560237955703835722684564602842819460817612430775627671795554895799698644377989166814635449792373137526339411151188418257377751768518679732988042719999800565409060243172068645624467170956934003147150446704638285498945783462564049589782107627014680922917345283750429152062416787694493343674736625535640731073184481521494758036383640885734127157280853291486243173399930314342190569883002345626176189744517698846925058743861194185175839482467038251373691339125384102451398551117892038860276399688905318397051417985889852973376361381655767338597735414371198247095464625857307858063722962347656455000301463837285580594350257714181492977240923938511618012624762512585585308347530310718036351167459170838268822152523076445794068717563940961694515164358027173716775009141469386766934001222634021814009086068785310797242474853648270278282265611263493879508986873503147672745283470690912532707426997703783521003365244835852745321159889465886380689605285994373986458561165713021653496436928449296313346522703615286946082279276113179601026969238178028984132676925193533289644574069739012160068678358386145649670450326106853189891911827706133856462615238794271974017464914112821256991635138377891400040526964331009860749774128381226643032131922323216540137528450306350989790911003701141885644122728303019100063476246565056727477674177826694002783836191885575007917807432694131543607181356504493800013327129610149183955354875102370795497645789088851287133451770128306203898898249612564497841441222651110339897033024255034032658450893212763427577836184358176988266156550329340020687997354518779052741592738685003383121344604225591271814269013413778978803701383645852095034243360775903555275799078931820701511732894189817177232893681003554896415361716447823606519622544895580825446906343144868946975285947404609405166984439056533265521405314594883463813807428357599851846852297291004153949336060350744901342002710786820453721531353487621725666820518270414112345959894060787731455868938490259699794945039602747360105345415141636858071479154095722630055408094969810793265604230332128848605037411352764864376769026402559411275332064773675305454831832018576745292823617775661682589961577359130824262447886253343933445826787560648255981670239302291249406099125283279193013600394517531251153412910161698368691488801168197102254657374450736996494292291400441491407457505247195270660444752541932609844908381274503193054924275286835296299370453088843032511073263643441645707558469071499058469718936937986441521123931555325226665547130616824759260690792615485096784425776177148970243932795917207804279807866292283942039640453664055056288349331289618916217539677673011646647398351473216541499756481570284522013843869268418422354715541742319060743668305792009770933534319915993926865224504722256509295808445894022737119841428108026696913810095444612814178554212208602512005499172178224369565260178496889212748849177976499123654105967217230285235105115248740518016422606027129127407511538845400137942175636090440273760431642373784592383668725531404940650144159367995359454566525086311800376537395668334633524697735547524635244060084446272245205725782613476573171301771744926936518469922074437762495326217160173855418779480742313441770245558690177735933776287541675379341815907490520819303335750154761173225618370180409862013777024021772020181627876647354208592903030003014526700594351330214188970498931762527407745181055607507406826189804726017836496373698664853861533352625997824386697452320641801485591828394868291795800971746802700327064495445913916024882680911032855074834410099510339568191148607151522380338448844961023810463205953176000439560020892195333219190448915447953318581939184594755580705123805687299536489276919884653944194645857479767288400432369769511888789575852095530346828854933867896546018481312731911943685669914610662541861890455521224856281283265711652142183267305266345961338394564640219584002573946647961508448607217105564452099600153848017543411189923891350924377596730434868027023679548555237548107140885860662355421203188646087254284396098517843927158043485077191354022818245891510907122202810457409899615371978602227590837984806364896062351244764226015570355590653719030775720538372585296784739925099009439638088363958697588828617774293638700226834262336053408839613089859402777454084261952217103758622859442523932694401180524915397254841928162608258995958673200348491552705556994755858893173572304711436318457168064566417703503106038314702179515570519641712014042304620755178431669730088158416727645707647179259172400046309522471823100641248667270952801825935545971512341033494123476473183939512956634348727306821917129405560293118903381372871516923504009383413345324069398592898742954831047731280543321816611052399466012738489488814693967272214060267192741910517924832122919496115867363067394022537944360395868146261344878394253145238918132623230384124329631433678996537448460902113455968573992484996297659363271184332200351518927207142500816206546418884208718019332158481762289676333733329455855472026086135276604785283769257913884697349060958919010326761707384496252404781922671632903432618534120555918506674315359546352742604838535690759240106416629062831635206521083502118542017074104935403809262438462284795960058851519667239805705454906214696906605949403685154019631850596954068133540101599185512852674533113167164520155590591010837162979055251976752859622125325191497769722590636676852475913522562837385199469327423321854105530259735427075191110918377127588854183785027905149698687745797018964770170175303976292206990019885958514170212229958766796471147620115431316699467849234640981991142624458111959611575570883349797123594436637951031171449158585418634071272695823749183055281671387960643990634480771654904782683160788215136475113278861585589718127884818932795880539644137121545064371931903745684133247163014021723150078832520768792477282158315294166019646919741115767243755168872322507471256425144538797610941384684002081595022578949342632422499739898580843022023549021889607901457552424611826339294246691411363072029551856100411951902860779581621900033688102562824109300418501772011802375588612186056571829672605172705807954332941897838674775748234713613536232100410263629888445173090793602485803356705713224361638483076646977211319456190386786673202816340850017940200288692915647903369635350504878414909506684926937392240410515824625889878914409442681375718816726112806619675509049985170876484868066507983263296614485264259083998685540770367217349545518784943629313882489576886685293515135135840279657300274700122008499831391712787632317787453987499199426513460148577526684964360761715556909176361677642921794197616049817688806736002773008354395821283173153446708100274606093288876690734635485057879562350873723569860035639193491326666968861843045115466870628416551803110736603980743882012393977020777414652508591532586274424215118580825186737764356482149310679370495880966216878734135937195024007688922595990727286719777450852506018050042332086397137531738540483365639227595688096403274043479417260904299680202473914619255082662919300392152580371469402567747207029250865863749692707171807439628098475647548694484810217603330770221737374775242490990638126139961975863077002359725263326909491916378042894492192810926598033847293825527558997573075125694470559736756063119111824087058114088498997650077820424242594058755454665363811616699702358878539894711225006502553029463357603930547437665510830522183711796908384238248432796720653887092812010085549673821909827532570732653840618677714120254154839549074449376428076444097367933093089677091049614163780591524470154925597352877592642635155817300796687273218839879491305156093539764137113240048626233911332926056022038742216782153993450914925746403351792784233208009357735941841625279910902935669131816899272524663221352152577701976960475625476512195429161375636272431178690696927306583856492327157275322396411682698458560758083258304517960875648631245412705293658586329023941353145658789073241997579794246299490151160737222681354084536799244638512296413988050616623966976532332291735705021400719061034339414751499814246852006666035721393564734469800288166468873241586437737829018910666376037562049319395418991597044118088833209136444447114824665869900069047100190615883863722463153222766969186531042539239885177846039965408036740893413419988648196211681764503877593911482052903125227291427403964690060889903658275687230906374195940153104043857606582830501285251455620451386288498240216699116950549030206094484322989840987992768907027979821262803165802395256726404411602049701613048775098291168288233394247648967602337468752614356724600920172216190581194153989316147848594003119748123948544348110173929875497947870015141053044650038916370076316777176953259919833180553918796440770952904333241387454228011291889643902378447464425213538953222173049989308006083519416653581838233171354847373078743975183457144528378990379479199868711676107931726349168737495723325376249919865158306831382462900374796579687298849956532432262681088729388163562090841866251809818763338248757606482572250267270915864301974320593185562524007090911283526435238363283640263318395358292345760391215455502795605074287534766589454243417870032268919375590082999605274712442693309395849192618383629218635019992248159552695750394320934895195713410038213812315682244840869146751669777292198493731547897057431688141663094240936512591160574596645942741914924958653459007677342864244409249157137769665171225581320497418815028869953147652729241401593242709550444243359818452113636038291426911482529391294648100138587751351333229180103167115926704065590505743178990973463531330773078417734559235183226088310067831985685397282205253842017970324816870786406349830733734574421070658027910183731868610389520602053931014959371660288822087477198489012706715164796181068191546583303761979261292680428065470550122391777625131055975324742726959395684307087385136879556214346715937636336589415515202861879898827211684838577923008030987109488232907703186035934157354349984132009159146360622304078297474907534760822619739483123309782132314061508953317260762003273761886132911456635923725494650065774065903854837058586881086495347281675298218275721479867533219663771745147165776517055291772912063125381136371861992090583658388965541630920957417824377024939529018089948325664250224559969096642424963103488745277230403431487028488732287523907652075516066199689497225739937706318701765098609304224640687574787969827007983072066407370152892472381402106236688291335012232923086439907774317147283537531784729518702482575827786051344645918528057493947248146115690426051122998456983734978477239232462535314827008157363794814908520603952496643743408733223024439463951286493689958863594684897858672446067479825222422778388644671697212116364964197577961241275053663328626487746018759860949387855010426952072045636486144349166882559697387120457529765335839833177992962441921531519343847707566198085892435364566880279263498659907239644781844359031944397924041956478645735260126944172741288446276979754445997648842239708261663657804752478810881043513486906597382391015364117663317913647870721997195438177622054856167768943858885069338622304252606296826127069273607675678229608099626542113032781555085111617483275693829942787653613887100647856194291744346805350563034916138351504025967810225555217227097851495048362925690410709335092452500770674627349230185865602109829807960642475170755677177419628311771943870538765608685032570686934168765922689233732832878493354257193766759636053497774876919992756402552357517007139730164664435981724596741477005609022175480115103282554179448205551211538078552044215256954412199309037879607947557864516692811526842247091961774697880549928393143372635453205776883998727914213411933935680453412207226498463402163077883910336388617747756966445506396013962346106292702995695651660141011156227347886981572042497231250086586791363311447719796364273494613325147022506880749203252788568914950724770927286279955933812607246585191342922864402220749135327151061052728949571686414401086748192645507520948203025234741818554114474198459412263063138079764322314246142036849696128805587392927670304859213936271982885324020364785061400130605358980361404844934101146426794829826695030211356636111556520270116050979428084347226163692993605973947608966079909695711300124220216135936441181217528815163645650190086178012378688835273571784718885643733061261295172958171716839657671795823990119830104430617299466536045920762921913693234841215868088988598323684880758531492704208508999798937095216532386132452568856438785389929149612502559210354832916973039804290586922632007569925833751592623080842293428307156113438947865850647486333350725321265677296431808063600877076694227142587571601542734057026612869517961799925289926178490440339637537401798738205764336741407634688130909048356073819172486006471707398048310006211752634200695129819180755035042713543247327521938288056037490570059812785710306848654415115340933609697895051180341072779686370313871832179717474712709476751963193416480576759282518027037049430571119056489776738095697392494452984176895040969009673282012024447412339227820931628561844329851544498863328983988729841947658523479808056855163131010450336474191243561308580881090614520484308742510122474330245726637114685188990588083224954337674397692646423341231122565640999906948297986095518765746044018918939316536441373009935586482696560397617792878029145227727615956182117462507896549996213737708943213931427503211662000100433237816611348260083425599066104496999254473326482200356967871694558818828007789982482608816165103007902784039143720180286280561657690579507354412730738034641448746430995497980600235652070734679452192415652151258597295454488195249300561564791554858120255772835107998239737837455389570377605906402768403386389713739470993026630705303586651803563993008857356514920539265135060745883348719579457586615165740345967169276512091652286788751781376933813672060545407395301231832994320336676619321491871423036022603684628373570359693475248523393057811863351281103722431568215905404166346430530038420892364891838889433812468930870956829602532334885533129951982982485833755138345881336390813002338480850268540106668974147095851191264155515429624910981283348399831313641852034749221705873313611217477897516165398562096950643281712112893779771478754418799006126363968103384808180781459597754340508370658469145518391020684294174621120449439348736836892770402026376076070543433152793659833500436854489798574745539366139075741793188767060912754475759645466382840818632686825861697015952412457191765349821552802050479482283612724353128340731079281355415214720602048196320307831438445023392105432849130901408807755483818337329544039804263218354432988586558818684313376013586461921824687288177487073291957931102552505321432061182609694541661149510081804261420975228197488921877564523688971041071172631432706229046469976729142693647833507158734190067293312685582475651413397011103237539296598784590450736497798190996817352469994572898528260876477296543291199663608281894600628297229201676297150057500130983207990486142878237640374046141213685481390340471485430415890193605963642579745334738165609192277465827743398995559982526265029837756527876583374876083468685181283090186555199078120074775557187868029582895161647394332923824845795848038506826524099272370051015953230879472394889704005875438492006115992773883950821578485358104858803995628096688190851576431911953661940292558781965146546249119910913786250992981409451339099119782913027481766035193808295430830943746373563833290646908015979515240016774052695916976646904026344425154279678230835464904024003859230522182341317641681130728463959505432737222016707967767447387268150389639972725292268434675394832249803955299298618029725451743907526817503570726948790507567783003684926534711920754137661343092538470822628974438277241080037023101434608917837132085170633058015111089087745079980421857354050702000727723758844936194081396689395173695131722321355308257994029532333499973495174839459716222622595450191482688075582007001566018144154099602686432748716850019378373095960398928840178860445988113267394703581842167128360377261936206298644448741606946690901947503919816372017039990660984175072571529100166367451506995616530617950764412479106465809061485909527076447415482294023379688881466275062025721702039028077694083196273372036826772495125967873318556265224381369625796803417270180757606257366525022589626781358716483291352374522856399792682573436910722807664764629292543716778225488272496015432211167545437184389377941289394498413174124975091501702498668036533565144464695578984520242020123549155810078243840240681478418188771716445593715848451843207157602780470794974769469968996407611156687299030911945586076842351274342398360995342919151004701944604764560063191683362948632919852510814415196794015653288104966297821194590497523437722819792733032230440135910510009609257830679557098268464436616930446169217821227693228286103440277694644782390438381269169692679353339376675338317690726425848481930548517808091097926347450931084809280251591178357738793811420816795871887159922087642134750221543577783708147368889249091867039630947896442008446123900929578285762119864553136075693300699576346722114568764544616512764790991581654389476506396650623652644192288936096496670325881055068011663172355447082014164640456919011013578544600359679313068158508196734181541931141705468597055743174260103759674906176813296615138124614844894306047657390568431735316147097566267816929845870569558059723081388659974815391509336588862158918925093335644889157490914954408134767248422792193602310351536874996715673039580593608402290119341117919975127580003322441182338702228644733904290677242059415656033645967277353502538063563328433233254768396441185657296281046023236275729240449865360460340903150656676823319730201046160905928256961955520424689893995199603574748954594274494398538119266335096368508735531680860708850204167956746581910608094470640914345600287310624818381138279556996354206955243724114681709775030649544828527088232714311083280489902875236764630383995789960824888001907016761928214087957286385672828845449148553540147943787889707896415861501011693433501789518516041129398578812075188172919653700765433172287635865224061716100287732961848915632080807654079262379487434737661956884840316110542212971611169934337344605300721571202697769769447772607059537408728196682507464753447311631361861124373476567339493579443162857877245444577255483326949826985743872499794924883939830503613358957294215982946628210540392418981822337096908122100729547321717022933442347554732097529762622802592618717456253095013918476910678104458645852521088991412728831060186438253739953731025568695711946820908780592728249888580897028789430861656889478001955525417068990989803941087213641971592461186357705902428155496391697239459960408571966775401814136618395838605886764354583106546603833315162895490600769545625851477426281356213005033225570577226801143611196306409643570636191731482341835383291230438822961958316006626502597210223987787318010899647294022677127422627940607030056700126799950192559237384957878252119810047129609457290803447514673125451550485087203571634081605340671076293345543639158021352078220001115570049554004952460277663605990983162879342166782091349314186030649322113740045847348518194941076709120497002769828836947939597446867823943739847130904150298016671429949676954643837900679177080767592779029251886884743039227113819399681821056679052274841388270467271456003415777003262559688104635423144002166029971517910499757292308081051116169827486221942453671222128417260547846846520019430045985027199499443085742458919776066245330553953186248903610777873201683801688700451794952540888261951304792755261666130827949579888777584530271773695059477450961611217915595406330019875803895407120019749323361306155172063497388051238061360142646142246838496242739427446493079109578454176042735840795872288294697371017112304125069948801999891318979571521792498025205578113786949659789187233747625328736345484812874177574111588952632072904924569228131909554862955194661117648332801646245269614040522420829928295175947174394655708447346317027702513500016335704863175021649534895646449688827878649975140749163252827782603521740700489632101796720690161711190008699710054456408722320275324283271557971716884103724709443681380369411462774874349891926460462660239239057076553965247871248619259836994875802390689206153828786078813581717281705357001080470392459843525976212418901225384027282913684463963605423210965818549766239463831420808073005940335367216039899075806072091633348080425690617524599476023576277001093474183899067649950810909645150039569095388266493663334595926233379524684186977413623428912719563276986722507854167727183698303802404552673612072352491893748288245179381234678040366443855099885310433414767460747636589328620311040062043059526377323493911873126076656854609454756795679392087747580286927412113304848346312290940799459385601463164555320774705158698523855471638682945775238208767771229060549071389075389888619550963518617283403376090779036374549351575659266336980264459331635443305917361535843222696122188047355508069773360745315260369839409760479667047916260073116066162738217374321127147220089643069630245535157993317432935521954513362379376825131365760626436101432588167900217754408998585449471657201963708326730507483061590433849993684503972736387818702335865704373307844213734911281383722794299799407982139726877462877458422980799081298714450077510912904587143490935143234242525528185622500300183937858314441928446858411059048796334358755077525429673460595677287338244434362027294183866424567685855204515020811392922618654465329035055003041946654265622497589078831494687287220946993819770081646888055834397721091245228594478254622673128207206716059500285573362774637196973948715943441489132350443993653233660141671703025385331015372792991758698463142725631807103285755973490633276475665271451592564727248283841333913836299030497736719847665084597657158144628651495313162155371071979446024183045652178147493094029808874549827183164184620411437547093898088207634599959713226272190740085857253897480820573213751624151303696121747233874574939071225797236796785200037589803807626051903076513789816629141941460316271875904905637252312939510143050476960632895768805621677752265416528325668593698936302880306443175847089323398313608025454746471309736665412320113393303829998106126544919385938521895999501773466224898795232270117904888531387284007061034663840540163930180619410031470062461982056129557827435928413487192546353413014159763393869323843390777530254950912962632498850024725600723456801620862207604075806946712492446294904526971696752364491452840873160273029270743684082610861087632889162314597948597020521286503772875748070376585344592670492233065326010951387285419142258051238616904043165250266404884241261867687174273683130973988847814460454867868046911732276676301682575241088652819064302989285234631493609448416055400393247746287417616499181894228819287827280017654572147629926805137384404756530309334835541491128418873659946060588204233537218860980266635448031781839529914446221509790521299279685558503238665387664817139367733418628557217400110860387354804781906468989894401634745371945893679898575124554539985159673406762582367006623683510657201933171922183714902092590278494510250181795516335309494833776433857757948470083706040797932624916301061792988365990247980512287620217048330496392717248671073021150663722346088873657402813130455681035858004811235313865315937888994939262812963533236296541900669602200190005119072185202316576715861549090245364779830406283592066131524945688078043614390947520831688905360139143316177018298878174428004190556251917693311163073349203824427157728581689905424135436736545384923369162396628433908253447827048777523504631000466310895810928186238623372059463000220410603561199743516994872299732700806933064425590888540072737442504084187491245283525683146169674182009440507223530380052626033847497042009938340143392201188352585111099006310185761161837137330437559974493291915994952281582940708878364723235870167089561098189577165541308452389255248128311652648108797475121456607486627498890340533871487968164797131502369465910634021273386489610142400387303485692935166489144129119081974815446339218607567130988094129852309980845245335741080999998713261404601902895897071801031634286938329458088496415567148667982308936079277765053850473912227855401342469892291464522498774188127884981989443878455208053517157037282903281986931223374928131099654593116215335555385394050812973846453452403010689736566180142887285553678307633712855417537204742060467727926820346155068147863734427635168072426602069070105622628634860780767290396603475415861596706459252984263594938835165229699180245132071351354495864555142423442305263228424533028882043103080009334998547727191744363538876052425382589950968963072879755833778219122793227478912040698463612864102080385133778227202504661560571296055337922082538732671055550560931887908188354487141112960573052537136706775817235309906884146992833341287434550466156075849017195957485099461574379457644816619852281615966056358462413061842477978826335551773218284692983010734506216244267266591906971430556706720417883141793112643028752627827899285915890312991478853756145460986181880140828620026362571602942668693775695999142773994573199833429549172804649922382961043749394054935473147005274738023740645830884963173905056481819019670623516204294126070820556541269133132741510710565688815182506069000851063617472175166512316998416426405266576237368793027641029557477423862319963109136979746969554410704835171582973466511060202716662669683396191562811024699400536551793519787187707251084894481610790138958415486858607179615442315456922790748391643108072534892694676886521200002683605032630673936853875612507756925211734392119737540915948511858656967103416810764939583869847339905675689847093766067311546377648237596092074654481389217022832750958356416380281937231318362413098709963389156356712716792182088893474765595743115233659182076709839425239370655868455041752318654534184930566511651497863423689155135071947632613810318058817145987629872624841515570140335800140178995579254413980257969613873541125630184600969023316581816529957423261353065867510987561820056440491009880783725099409488366532742680534553120377149217859915859248609514369821162140451029984324888062781493476722883270588097842878624943003502695027854260208858834223246908446866956554178720757836729149015122710506685387456876960140639565547322514755780027525408343987353288262361724116431078851982872954379410960340979525324054212639802129111139778821068607465316188950238362644889969772186651794259769557034583771707894296339873572996975394982815046618751573289277827947957587104586520502769312689452234192022743236079863115321279830233172321819248769466093452468268064272047002779795531266166268898762273284511697984715524604367495349879351934555734580660564861918694484456442824352626777517157294695660388307745940888273401609282967717268973834831523191216565981283282054883634360009898632569239186721071268468280796789869931246914713575997987253262873240903566257016717854995065658144795380934991975492283213762654265053055502965589413218069343921749564222148970165372251525691575147991270571945589470825068594666908912738236231121243451167293815704475783938472740877000891129432064550143015244582967849762442621457195218340831578573006762668468287879329706084734182682943354723167070153153578068965699986628566799241848524934655127025918624089948668563235478123224662139464102150350876313818879255949637696016911851507979033485825832312365257469481819890146926173548209370268235003579680060947107290622704703796183888705103637692461664146023943525437343032108118628817171070724355840303875567286309607400378411769319787102132553180248701524223359117551782373872744884552068789422254430270887818961826169688071582363059135082780439113316528326865990141967571752551781703625269928640124993148892116739854609814926909900471420360994950611530476023107654727145608287555982654514510370746143070151842306651885154013224485243311709313549357318532693717482419029976776581294735957399637836997027475444117040678748099469643594844534695623923077016948644545016903425504223276867611354617867880080760961632698011139237557526738184100908617635423168438458518781063876685887353875404994435705543289177650380111283425615841043355977359441747919627085993214067566295558984498469831812157064196986064600215884083039455285577683011142625988728576816172055816836803714868035320046735284663520682919813148760028092128524902788514217706146184821621641313154845340719547337010745694794765740004030852172292737005363700254055063826460505184948909011302453608318862896670879078165644987807720213032156578155735334625563368885199573424154780303512385231501521363633069320070296053321639014205075423465608788664752186713351095398369890985160211275002367445416286392510537135022722987975755851325052215152772919811331060813918608862453717574372460790064237082097230010004488740611311987223791667505472833680405867068913517584221027370571095093404623809007331624895831628406483912972423948110120085238985978818471689283409965319832337561404074059523633492716725793850308436277866862634554347603857587667181289960239793071673966735743344217627662872335454704357662703989040137147071756159041395453147497436042824143427410136414208827594624842860167705521848750196581534615533772177025642272659726955962775504084441110480108555617419618994201973249776533040850418666889460736807343151272587117658445158963960611138070803998407909025730967787183244548033305098519039724797651091376766800279585653298461550727118622865984527579967003713458534079382853996498354364753977852583056861717461319752370859816696242697498297962306072035362463490640445917324012254286377325321809727184107909355791273871029100079608408903973695344046382527747290179870523536862374402099388585657719720841560966609253323655125221536774408655036789271663275085339889908618999107970536863694646570806906624091632509006450932434687716964870442538737127242951402196315382054085899993744705094926762065323416270427526546390817234031156826296475913424631567636563324306745973926340256880927252920892156261729443873106758745424849652871130458194324033355010080948863251679955285982851795954220307066235939929356039896295315909586419567246544036394081216576000277542673530512534679966937994316077882027185314046431160745028949743248354690370253055163327830710101802964145511894052143132923418645425144778614589281846224349529853518308897305615178755424521766786573875690893518209490848002660406838582319231034230686617962144094481504874767964652222485058886672499899281078220852396242529317210805914807743566163004230244164761357759007798323741881094013272596549622338764550316927219431703209309747441512940495709220046673823588778979937684264108661490373357952516527653451650663178668762983698886033089170400813754357981815055227231906550784649630562301302243368253057678334806973522627604426287465899298748126830753864162568971396169297319362695313587146484839903940196216120852777978606642165088575505043552409556554805798519565789493770528814339824686458077491595855581734418568793847780768822883293532437782746084669213805095436155660741898476838798219325850552566838837312324046023655530532939479118195306453683859445364742977522836441469120629333642033811609173892333542107317525061963380423716567251485970406703174475287681088607854245074283611646009746044139066536906367607118481298798021558144802304468618613472807873874889114133640313120411267173603105355544716006540411219760385081854223943403087802525682747868855647896843374255359699265744260198429157001043605852581822516487617852367175335532088973513629656843228669527201242015120453251308303311954708233792229594694820560822590740739615307688206162169778491746468936192316300425875470521721012692970197697924147671278260800928410484705346880329826620550002266131277808732390642576778514260719513168541005230362571045926707080690442444535846778581829971588643781598612230673295494208237126423834414710455146403003135961925323364694184066824516152356127028707327268721456946366573895748425880175873251702778349717873205714130702032461018243117656722695177059156910237641816369468429927949335041510087254794931124162474706894183104503139901160554617462732262063728450596548110986768782181856841440966562987126212244445680879760275380719295986665841164900845120476717805503862674561775948182872913761683032534282262355987497678323973093514866604951236823558774690337671829713197692263541370242482785703324506460380266055005705478909656983242818192068008638063705716348190652456301425535290557780445012134459411747482810695713600114536291078811175409573801343471020257660868813073615617653613895749824304639075318537286326320836777950870770343208950097744582680644610026012371636425158477127190261472297532019439985407234070060571631828873119417334932336630219057690954356635796918344597770344969604105945069435856349089801620822953547611238769102897877234772564146479284067965456257070982707298159499238580631677688861484908951148819058837184389611142195761176586929535115096303263697294456064015953347678031526984087541680761691804926944319769322183498287085389358030871700689655407918177317533074134164259108208946583907156756859458641181036962893723685305184571391788715807224013714032045418606485797404669158735182654178183264877650409961836983892157595848219616259915730815958851344858628521662295279797685416443056868382238573801104946978124744856377090753566887317440612132621020466309573684273275055017242457831200811237116319442825908135760341855142969059869417029375518488859169771976952853607650836781511090038810953909108309619364555371153164604596401224993224073295182802018070458855341754511796719429398440055062058750592133533019090727367884638795127571361754454676719821623379044055512654539895444047516695147940357379999734390064052300000277203754236005530723912758604061507697414993040187049369199670619211512438158086042429524452973059002511825797400292873439524871907664603867875958090119823177745277507246792649838155446890774771799278019440630075184794348553830999692743851023294970251943264110292677200201669290041819495548981365758091826481953441792932209910587424204465805616089372390557757761991902671152122080777239891496072726059348708455112302776443752751261946570716616686631791508179468476673005428331802231007398917166639257995983766623265945345537622188570971779062289786625312304702622216118736142591891901527562638565522010963814014756490270907298993193821801705619380025097740897568509814061188966591477969113563426509009118317541873391389102864518673555303158610769912679803893243026483109343906418295491017854926691276941369330035265771218994778677249543699557384254437342294206169741565999283533476383093979367699230478022617118498295176680293822810824497735845935131753132345793951490604680911666510943063957635327844476106004081322885103286481440879693778960257880254299541713397692935413128347454658390107133485023639862603489050352324896519349782603640475559494913130997710157190616949854953144015123330994103673939817391868985751469909409765707517591265045067909947867441279325479295034539981502980615638288854530058277625621532149027006425622885568107585813619002478730032239581876972208093427205415540877401063471576385988873386835971452442884328334671533133978398969665847409680555800597754301986588027702948836318849267574974683175696834773459157082669421849494605871506696930652525514639834593936181917918922288942045827591831543399837703417416268328247688524240416691073218444666567846056742891987119483618188975597864814788449343677554590591846239017698869720740720449956657150828785113513801498908106576412434669040168612875528046493211688449019041458180320862066185551619364386242613196478501124428442265839953908901054553984788202476213175591621052273960536119038970214376941051939526942729354460040103654980238525048771494242415825056624593530479724809499388087774580426504465608636116358931789657666957805175909529756896532238598328669540977420302261228323120196310357586828549481135282761885657298987939115127431845561091680940478721628922858547767840240628411502652610490708536632360035253847896416783214127565381077668569053113633050869720326759684820112749486363862227335682485891305175710454756697284171268119579789507478351560488953904404458145594333578759379016203927160253660425818858777063397023876917659958664341606537184260961487011200595723895212354024208171261587927846329700697825845118538225628008610425545029427876424710174306841330856825196909402089078715165474157183910934181246153950490570283521357723882645237851426866244617669970870741387517857869500675548721990605682422728048975086827338342373892643460827562652965962185482288825488091425132744483439601891292775709249018964078895403014472223922650312049966236435962899647924414043732379202279685879721731255850149327007383579464563339691958701529297855234955340930050930420834572709399092422766693986441569205129133771615348805292888259822217141056303861694824142617900398798764178655759258212939533643656964255069380458113036661168484409913371712269499928058092927340085432318753214653413218930523325813417901363301410088222844522834644551369108457159794536468047101711420691601802396051227571023334057171362655134197117601506922365966541720866882906972076118287264132210005002699144845277723039569289916507253380727730281841737631445751589881364286982393334933697059314084599780247859045159887750684936195255118997793122151935573577382744962479960178317643219262201711756282140463432863400617352534087971461649553303906113582584159853736407973689743709563855215152908155036469965096834504112905531257169539540162146251067439975161672574162453541310153785741616410945599524378478516808185827133261774109769692624398913833887617348101046133820692418699293163903637777768033275594911907498878419166076662356488598256257100846179241311868042705722366041019200619246469223734341623585314094738387574063795007361541521087024894615076353089649177613093055955140065641856009234295130285543447847138266037988746377548852475548646558715340528038249004870125535669726981079263124748703768836679453699849599398891496207370885020677246961043546457388373011607753933910504818242090007869762812502971383359812404317484506584805211895358151356587329597318332987327217874199539546503489624457315235232953135316033071692162378838884616701203606899422865690834610277493665655726421576764553023730795694824363902419004856214493004070664569605186013036511908271979151142651999089047296250135796182121768374180627157687227403989336391505362110612542847832783712039053365981988040942564017459352682810924613666502265910025189313386558237665605163656994117024815846352163723259491449123295889723497914771222397017739570695396571618992272445370498495925205145201230766198104853678628567663706130114236967034806983089063708376054364715292917083928724747357186808472070351264707773552138303070653939925660070982469662393990948462158678891667034694655816295959667903423684973462720290463956500639070407504989062356693484400636453058397091567366341735463915583408154330936377129842222215677533184654282075865784946478922686592652812706746941269574227525232473737660224427612980322691002459283427313580144283894430811409875454946929639001686582448139080400803193170469427381640572166376738091126612931150575735869171101325951446912450607683407069105182744936469270578734952095082547662566900913663508138902802835022412510782679085273020901940544886809096505987358720276414544451365193067329585342956625711223990904959074385642985512272687995336360048202408061430227406769499579571077963661756952630586608477999554646657114493751002686654694243776550695928465446917007435998443787871497834552994774093679568814793174313261179412826646671846625419338562783128430981584024384315716361090277179398740013983830292003309672977881219070877418496290351221060108993291396201123166821436676493697927113939098208108074009921749832423322645434190321874289740986981654886005949263294055455038094788913392461834744801441559681116708399742160733399352554235121536426489146425391050807276713957818384137283862232752645457347277358054990418976112176213114630783488755557650249370925571662169669931560653543417920256020529894781822045898326844717982594085798819586658174817071990039972549155108558805236437815544392597846709118613307193553440066567308802413308227667260998613066992291863256293764235150141692215005139843911630436157248145380946476213446150024375623142305457746652844248962834354572035980470249730988625526984785893214323347391569523260710405991015696731451977766244140427576041478637313061427028035465160881474800825180538007780789188071435630367354027336880159179463178701887525008746369737902742596226181615322956222783427838078268401016774234588597967390856078350270846700980011800546509608065020950822372907072118540081319259566176873481476197487439652656938565725636684593966247555187910938657006794245713349236715049838303328541370607491695457014699322323272825925096037657438514883750864357479123685069400095366035175967108477105485120660622180845475139944119031684619305892908478517781945991452821473451528794586851918126069487557396433260646562888010587055424048363644643824465218475322198330864545889291818368267979993572018528199960615895612338722823307306496333904577438660948146627824591266416487774864114753201960998188396094741665946863829641647207108235256184054376672326204476715085622216878893815099765049307821333012050880319687604660898081676041944419768380415300452289389111078225582168319103912924718476254407892195033172031784439956680606948394704544602618248215996247130761593782538132046868285851330016333265351806155341571477502957038844798701060323660844433804940249590505727134628560081178132048398275900481083431754959014391772819087618223999512881867398035370061536563850824734287841480877549591092232893777941000872015657881483816364024335007122235486316364433268356804482306558822919887529438283241579020233696055531476512495979805111953593272813803851190575845882534445302717166803770431911480233758709927749275997741098529789784506940931054228000511255099506623334896324762265223631618731441064994948925663841658321064376603759752653130158334166599036517158456773844427412647137769006792675162105577584043947228366446031676560168963764145535799062771660833718479290524515525443948831595457296472171026934846218465494106971370771832991986336196062637777611420652436022727037298196347186480018958659596561368910109529424641233600662212152459955881238259818083031778595757253692248412058650286457113133225987475004814094475162316098469827649711666394280807423982883578444014748184464685018095547031863535349251932621461337793636144103157196722050291580630897699670268309002208547097400479277507591058268547116392607430387314381711819656692512752633095473956553603395015139881029557748030788661106943281046698743582863304513175386925519396959128956141040513597300945845636190855156652421701073556108854304510855548130504189120627322557004247215276023067117137138425067639162300710286507947130191362049184681675239770042755423451824103819868217393685474959230434419038392457410059625056874527802963590397196003618560485721886539877641982695821171790062753712915566052696908734349543198346511359182485059432145573361734019358472836636782511083896160629443714697963437236258199440321330439266063008400651064353751618854221740355529804977239784200354749267399810368147434830036179583624150123901931036581305238656610697296425095218352992332162805196018088995595952971982491306768924083072883752981395401735893953462510110646702882774976980750313498287839933435275948815996244721782794166932289722607173746536716494463458920982774126877838151803920487258285907124272462719413845657477841655771593121026018012939901062982315123860135626517968332957725829267152857210824721020968817012261636594844086772683038621277516327927992470946861195231859046905519920057683513657882223692363836461244868069597375325545483889881879698298843138046872023858704681086413464221653150612052252739418586895521814260446315118732877486988047369248732326255591894306602329562606689734353371338287730046542885910336784699955091561414839422725526097954173195675342454492473169600574751173277939112069669015987509987657636436503868466974504164923663877705954374021963273611109745273010830382550320355065691792009853409197150121830925364396857052404904665337352279878339149701799004229933024911087943882947153823437448153554708166706221434661194701415725514672700432297930433569965299145396683341190769156020570664138874252971107251612933269295273685241885330866483328382967100328028918082584282116253872329323247333151477391254674798061907845136273700880988927346752487648270585752341825706813150561546246361317716728378144575147370284614327856024167018015431668278597855293706664004796030022508740160177013261924134621271194473840185288870863735820263770047918517805176037808134935663813027910109499483891888873799675210807728412977542258428864367204011854448462210514431939158372217229801282717292881098832556995886665030750102011534614322797074410482793236644801228560931781524555290520367061024834020496623001366183807360580714740217303510335863534638104615928472357586591343111287764375592477472452104353051402915093727188066751304202942802307993653086814701130770322585629314675548322920698382993137421249927937777046036628606210894242132315484600337011048420275474063136490806136959578030154235380469750050960433444722708203043718970052603555413111333101799671185081266500706159491259941591671410197420546671414208138636468032113168490186514056249952380878092262344956208953767011478589424452005801193342500888815344381351727332646151386412977960908515115693788007260474382420346080710243567025137222818840031176325588694507057288856178865995125745919473030282288296358617727334237133550803828837749437653488113164841508962559647033140768630738290476958030840455994938502711830976627159846669641876678522551257715071385277081789706110823708374322864960751963640420305074008319312778677918328375459034174413766905441653088131579357256856808396897483399520133279099471380589692563150543004706513630928184636918353083074943551118470228468824148352390667072731774532287206206588272581551670923085482063194548401399292898224374372556222816150786065268524135640203374283010453930890048771499891218856074697823040828970558888045879287748309145203801005670266001733390216525241264744441137549685383108410355734988397906667593483439321680435447352392886690747689767822018589804390812813085507900864042839401041677251394986355526942249451633542235836327232983460154409845211774626102885054105768569770026061480225759261072948811759900704964530241130326188523486305755863382793426551445809541805404713782364225028431607117806994208380167440873354902524908215802711101333574748966861056559876049430629557679755050881816635235747170259553692745129157754990395687655219195606388648250843658427446507634906088130131307122582648007856617971670115896130193146126031899515306652857161892957255666284177867480721420885089098125794757994474492430941500007446024617321913551545358552747994947741793661792631090122755473358948529821214096595819690338741154793279050154719698792655736104012416163571089294624552075476711904935561258625007566642845026526607204731522397874931905034475876901666861236582717662076163946571766134938854078993878441467931349401929942411431674811554681214751080002256314455742319040831021172422995362234402764747660301343167371477253562559283333474050806667463204960485058623970870205611530701375167293615731020879258635405064327288642416665960138055624811382858812427769057838819114793449282518362982113436313897218789634071827741541739264507312705486627558820974758646888384699405397024366880401346210254131267509883763224830796259518989768319966196292382092197684367832048158867874211804239799920178387121698573371775394497531245660776219717648972830218997121607497681579483835296188230884908829896168020036295418782965772355866940565678175593051044213813389701545337598536672877173510147315129188016354910081589501062110381551017972089544608536839984024900907503307597081952611392882670811181057192586540500431111712673635711917116815952637812410716765829888412262634975418677963411890888726662359611389414060120896764864094599668985719988760932607475108019967822424073570294134774317200857243735008271403037068832022513439951764386546750789908454760650916067872546446165304825740928080326558415762820417092055442872991707808550370248781667135657966901075004865267050982854918295813882291474763364313766979673453696729148975731255213413557688454633265217446075923584390792189192571320145422646769225812345203243523026151455774331666054521011300225887448213179678944599533298948300037624727152374651652077763735960030165316048084016718112202535113104914354826237080158207782223136561987878395528433300646971485428724817227257238178785069669247646842091700859485629905611437527477440607455444160708238375020184485599539338824273607598724098391317050801026507307926595548968818561113894150454712705128985185394324505550182083558769847964399781061684318636028509333297347374245105094486998253775089067060746803625863729170952905821861498609417962560793080021303859195031448844736282912078966359697272195417479987206811848092035155498016500643941997479154969067139074436103765865941682941020248770065948564670220763082210903076828529751458977150685456627973123176422823331981273141131883049960120290549763159363798392253527240486739227972389954556921560283780800062983639277063507812547427926137810505474865894550115136623883062261230659501865305919943605747374482840624366258661279455193063861669921621450884642451566610330687108778058904583078849120783049399587872179894852291584956758917942415586952306249396820123757259112082022351909880866191000186242538714836894423137730685350994782941898858409876019984696899880235230261119224526613080045460764971968506001427588812929141442077404625621053867514156259913575248377418779596871356957964858813385134678467794710126489281369721189593501550379305650066489186001827001732472499102532495920769524604304178286804107311410897036585363979749907482307282813734863820700772086357361967011730382476423075859802632593435017991565432218269305898434214242616271467089486087021332014460876098317052194014006262939872167959634161250782577656723709145728495802365919262222753752652336382750085126913366603953056332574365510074574888858804502547436666178007305004759118980301645738006990164832773358909970598772514274509198749541420064984146704000044183760915135212857781723211522333242713433799869641472048516300065420000856048923070739985239528467673473602711913437756591171122541835651023384311230121070800078315925447196445280344942800336925909059764162019364624150905406905598791548986266734324730287221233784623995701402679358613848517378522536532626770612210465784356321044548131442359631414922078393927699415863247765824805411287249059872273539520665305207327949121344971003655538500824909861071828058029847441961772504248816906294328596597858813484083040054918899443662767653630161570316371940120367527290490506067661691960751548523841763466972364853530700482054400571900901974533693683268786578533263042407999453176949324579695068211603733015969340597476758218587413773969777205812886637474815760156837013039216198733587241892783036677757965108362840993207106226877100005960939078517787257283918617868492549941982623816757916665863310472019600715533608339235505835667761518018754653357822388024719704094609539162830019954093062765876792256332907104608210106480046962848559316682801283033105681808280201363131706724768469884304140649998053445730206857288397638014734839983380038125104717671208233015170282765880677313296472821260234490885915354411753228835761001946995194814146636124120502884042561859022455912136991509234695299540682924046835780974682488831552970131640700294542377925737571367339565330660992458555242125833009024347431169084751503337413317243717328120074958221805995948350164551130332355495957787666716594826530457857703514821732749401133386432713538954822718215496266085724067477711273567367315859447335456786878771604489560168948458320600663065456689448463530992382784000036309537153595940753776466189695173641014245394114991561623659866546302807884565195661678937192859893422590955146334097035898014633022435322957386066600412697036072603643155880838376272699535640925967394216138486805422921481857818249539081527086237532934795631603085311922345742152756314698422794386917017642243117399682434854862960607867062731637522957705236171271628247998453644825401331727142519457031967117625614160898465468026670688233206477821485777810393637491142300735603116175604046452422780344000782087769132412743142765723983479938402580036707289783098487729932527214628273062090590782909931444026807477096744176427330918500934747125712138938213846998226197592530226200165625158282932711128291380027822395330652992494665511671905465788964695840351796781496625642844062669249448948079714855360172466764725606592108293816751057510129250837009959697974342760385981493372673105191917069663023230577709525235815531848172513415640559034063204253282745327732063666066968796220944415806965168812983435244720534863987578950914700060143181938088023024354080156453880879509826748016299382661584333007572857831892379202910516144703178803374018404425441569432810666874108128929507837110450088941139299170896403738932665545437385472163948446286195992769577016745476265928125881560325787376353028216932779488225016310612033473846686605135391841386882621707312656029949378321806902701526090829969650264727799094667277797181794255911942902926161777911025935391450166536780084160828246424024832206056307105809491757332132769153199933899359810066550000877480742055817125580930579895129281980638066024588038195531726272704669517501558810402473633485419991758131355476221897547507096934847097910515554593951935947044257717032138858781912320850038655889968958459768659796269212635394762732504692466469194404951664410812555922715881256315330879859808417865035383594766785414059755828853880525598529489614836277240600712798140739278161018375353248002614405994729038626629555344433710682510529164343711332896590004644126816437701463155259804083909854706922663885439485668971354043121594770707531743342713640900178717910627692481417718814317956310940754536262604362786552033262467566282918731410257825902496567255682663314127897650069471358905216487854065187569762372805655307361820637116622872603954000189847887147531293735762325118522662976659394328738595182405009109137438574122297414802866476653588643721811255577089097675929748836575863112973161020977731753878461400517699499135205326690137573594431324599160514156158064835795607736869316298175851689878158970666533158821560863126523530550339912692235482696243230308829347886647058745639265531876288671877207547533037381743702046786125524478242489136950072947394475676392396889746080845860457638853957236615789743102569818608220937622073203581591542859785199653220475954771168388070441986381754124798101896168899013081682141830855205090789101615020423332946309387488845682885948648427254705227936282702825372123802313781776406194500186917914443363100042882324494063629294312499463733146952793508236331369316015804734381598923872552714875017175388136555510828536130947843222039966649277941411838033850530218549303826521657891555494985962485401284734424786667685056915394414784973896424369552218826914697526465264101030958047306933269524848935680935643553636493761911004823026382864212037533880098200301580163817783690344353792625745026449691372120984156653952576352365233543982409497178790552798921598985148580627885894818122140751811182631527393864128558630821734783828542996070338797366401012482365264654480263730911550542934957654239143737761793701086852300133910757585899283026562317009151594297819370099865774298783980645140923847696563540581672679616022441906782544406326254695562572769813615453626957279052373049205966741021938615187871770661071969350686881549203910953092415871571003579860848554593328792920071759016059931923677953578409383977627521473345271854098045025088806622769770481013175944742626611794739336819067179307280852180864612050543436981036204427817199347821976720628666839075496948893667013848478752599617634034659949908820409032972965317730215796561131968888187541391089071614050237559000923303116364228288911047484888677350397575397138497727747497235544784629829117982632913165438822071192774045329613887162369209623365028411104946932920727009330421913176512117994104034569930974427920570435812152570337014767323350343533865270594562932977858231657667953500559661828899603590085058840400375446926743722978162803422516018983159835547112306280653543716790113957121380672052158065723393612832212981736035261356667684817309125843174895193110082479816208750913429544422905942063503935909320616113355428061438501351414812742123875090520044422069538313237822984543846516023998693580421534224285184163858490319635416947612833227892952079966007961114063642559710015639735833653738062325559929160548919330595551749977876573510128442928709061840234045668069600552127217127103392208849072094624409867899428278865743435847445197927338307148015769386109380763475525986118466096570584534600474044626039604015026636947487864133407859649888822754645230586396567443843763823470612760967006774225921055959695381599656233942089905923456256464903525086483411673053670503554442435834586117520065547707352539608037817070068925162332710837198058060452192611618398285400143014027446694276313056402425656336391560548472524247998888350178698733587389346605096149623297520777111488734513337016267347250741450984048729042706173275240319490139821599523996888396869985454450929623181438262123098986726061491841700355008034943060848880310755305836072642924582341627652408915398283919797118525714407393331881006396380446819366188013938190576264312206668673203809458542289083339861403745221651056155516271035260746827152654141915788755528849680239145810855320648347688264940811987422225608141421627096323570238120213098602704783505538052855532016840299063957790471238417409104926943574502999941025306283989276550734848349821942384990177318270934576851047645539323504080181699655289158058934506257318916284291129042627599168588000777729311280221889080182867783681755662420937439860295414989636135253779049809926063825534262418061939010053661909186052458973608151302645682147032375194425249477804385884445196103940500299361096012619394952449160764760476149514472211821181509718858657836883484165661159551106271576190193759771043545888423779306098560186865403946062772459530663970053814336042183094700485707852447090981466878216770161135958890106106939325783251008553806394760432049967299241818201994864221334648012283356935127105655699824861847903340170126309868771808252761682633608831257432017809085487640366447645567900299912427662690204474407122980863939985037427844381524657944245770994166471750186900383305684728740089142376160385086354184393208431367075372152790357695855682445968692075568999513442036775814484738228103050852384322000070102854753062529803265016481534095993094532362539849971753753496047697656376640593410157860261523172501258308210351715758898806221107300117999692056908166540767852456948375779755878380828312083903470255873160959642878069714141404678901574890689764755957618451718089378068804469314017510211650315264492429970658726859347097753896626174264410594246348927837166080206387880267049796221364805368949613510552704177408631929914492836545204406496630266051056403609293302584548202184566270615681449909947311054340878341233256427225982677234395382506407542517851244379651497600896772481606188199138817373257087099143337897610310988933311232566823791971242970020003746214895449831329649038884780036205639693358608962744113745713137009487660689433292433395830891998268768125652274311457342324254328211521083502758939902729891815784199129956933427170966598067329347777156400672279565471589847121355775761479690323308710726786407343020182899371602220999772598589401442806109508930931227957030901976346832698190578991135037748102207771037042169278354377522419643596789732940754498734760462915018762552610438879204979281150479836808451789072907596095190111412189905507523674566232753536513094256785338378660376144549806713964987039626677640721948074935085593151901309018209010681344084233320474506017026462632922203388704395959985598888010329373679170724377320655732426397393464806057181783547985263841650402709775937719763067893264789442224980268630585909689875972964881828287515310418175625607887279443935052867966682829499002377998147603972893828234453209790752951481134355277692540593743625447490202701340422354502424567164831477389730263364006645876282258665551690703048076426605861383246443440294511214615083569027701850303712944876342997634707657581982249600155454419825181864246772539204506693078661914884863761178114040556730043745460933348099776085380850619938074639131550313654749546920926306639583938623743122039171663927748304255870640485478519142687657111389046934553006302575372872587989366456074550483944014054609892671684216143977848105377288801392569289876375607458376187588741198496510539883454088478537684383798026091159647290159495402125493582658003956106029155509878868028957490358774640517184772617371120463855436368402503841904112485239327085351009409139568199696660857998110724339509241261905558388972118252652215873735703891119421462569445357300872870057232367643401376324885307978516286302936131966451842279772514153387503446236176608035335276289262461778539071383592402044037675016366418964433252833666623238043409235026282342559081817524851703459590827686624053592502772022645141551357418488558928376837682389516194474807435702693814555858027252748905004449299873586244844885314049693716278880758142465294619426826140431802303315164695065419640949942779970275878279003556717289208119445827804043986977329976677310973220188649654819293029724356879463375741345492496525696108829136004514925871761496552888640146274103847418148325118634480749496401087442480612387616258645818581209645235365194970892410594061628896929257128961542388901319602978786312407708702015635168383797620647274903331103349684751005543100038137698508956751327632236921968006211228985736961043624355971742670614982529503070183133255168585626242166022292711860868091990421560544789316805116733225285546982550842963925275682043331940929246051041184753553636215955469099466294361359667793937192031083526502790524250154830905483794172337305766213361735903172304342679501635128000041970161524903883183696344897543645833573748488609950732877730012289089020799776361468915348485571795577408190316129024119751314264616999496667157639598881811741640385770975094077234149626553586596483243206259997714045682341272299831511598597518792662068072632740329146121509014310903249489820053877185250262414125447205029186923037823687556550091879211434675168098399687846658941807495300282009209131834405785103448099921600019054328815238420833671908503180461948076361388418435226840314486482153624996386727749331116319412841467892339950751905023986470206250878887355327638560609784763537548860920525900432745867162361717790978070594850245251783501709924659946052257699879650459055019701908651260728511079373366053304676452788663245328559609351705527471442411829576110542684490076546351551560187225999767668892007356104853970859040784996320492614330153419913204077345867395752651046212660235542632338228602363679816548907763517264139133102533059988466915252846032623166353505363647550038096875338006128341509106592926353706603955826439138809868088421067720699524581794583279412113602479187165597860913226795868917207407462130713893306330876734565561607893334725259530886808202384577657264959273659330564388791077320788436975047070756660927533063854670397105169071229520676470426610868757233534842584861490561273360695033712157216103296335132993141609117386191239695190172532371375928160797084618728154599249841597286931163964798068838247918589626378517715529916293249540764901240389655249612888247140195114117826333778522707549372531542313043364647453394452075616585028499797927433362172213294653176868462208726983239159350878453335275418082139874483295655553629164487511622539380733121002691916697808662724443783643659588594550286196158470536246649685059465401814426499981090141022994527157325722384071994868249768077009870114006954048137002653633485095465151923397637411387324435924322225451100535920096620022590040412452661539684431543480427848812333709607712007864518350838624121996110454973736061327776710363939205510792959577820010543498462232281370423832912788187225608553107963674613649415667546179256392821907943766408756940125642587376444564331443709953008159341821517025297091842791235443501889148876608884599624043199874144688265339448386001354358171861545495733968310661531865783432393803361868092903297796408013360122677948099242705707858294522977798068426044321524139038785280613127262238038137778269864382608523991530783546277079244413816108782210403694878594956079629290526191156974294416572888708436725521775547468620694245217619377449117095804128923119492960258845280661474731158458774094421387386501990212453313751750742270767432661949959403565461283842648134962854270536025985157102336409446309114862508849561287083253186924351719922144572734475695058809136413046928032048874926444597588026250814115253396987554413116802298863184800849499693328292597237662921598586416405034528466808553892818461289741826945344669464574488421293545369108462992504161781500501189421316946887855549836115648317823448725603340837470774179530786853945595247055075268403761309341398323710422820777249637903118096830705261682911665593302751334994920514918780818459742971576152103601632579362933061425362860417725823142815687511167584127620759848342818730821730841482127041378771408070310723931048738897356700103686555004219929477366830307356747077117488272107105010803437857854278453894335870607048722482478779454288300731324978129482154690036018817681223691336623268188476315118642469003250537851560606734210034925116515367872028042537013730033547605011445352175668873810887975237728694972185932879043866359598704742662260818942215789633169370475840213718696815153062365844954112019863349237882513746533669484132751420479184681570410346357849456680225081299009711542915526186760490968755499280742928970875025281322406820431562413980323216530685567788240829891574672125195078476766631210144856080479463454813668539167755455739408825047671111247661129408030657446693228962967340807821415528277733339947937662971660977936519459718671165962633159867785281785580783404384301995170490066951916295281563311602776742714171971394466190589736905221690602775576101328410460455703257617864599596032148747688932309424013938009778573519182118086739137112058901335385449580148756719468686021082582402885353544281467458382094984364865748466608008876562557897747328329102136408042168948660295104814680920929931131945555797689102507184187783278623023214870953148590671334048404027081084525943240875440674481590250497715662773209394659138765485773673703172963565365335260906812851516701384758219894071592883313494590494035612958687198938099075993702073933448048171686852156086954616335885562365579867222912456856040460444291295537051474447050955567319373598455757041889003756531261062678576729825439725741042885289447757214489947112444412343634793737457094413852377736176285714851156440160238297692467808574598631755846238972725073443425009657664501433629376800297561319202096331967749966809572412588411546874075273317283178489048405474141739932710007394046826575559427247442172324313104364180397484870992347690019327770024508470211277829573360633814132052920455017598128007337472370252559787431251930651520375771390365751046787038396087898734768518533779565721601042095519326016650969897057743227832264623469178613019211338638009784576365212413138843165839173371820951966162308518992782123142382832703387265678232624736577907608216581493902567644887203541750510927288031229367490735642596595304508186160645886904990723874339194880174220804991010430579043582113955349620778803342387980463411939506177103014136994817528919324389473924142105726597949390794116696784252123710068041176375267787124473042826044632555527712664062202876690967680428030776445764110642645559216909763003514490952000063265037048295352368618207093825030150401135227447097624167364615949576783025733067645168412926841591747129295678266142320084543712802076986833362821739216693597992877655287290689344413493680208814571578037963503559294564816227845606660450937020012900941695743707989043242086526399932799738811994296344607386651037265704409574554660513845320197488097333986797708172166329485325796397980893679874553771998714205247092855037248186031037044190604954723163330672104365268576327884371110191105967196876889655394550442021806687081990583105720142181512097427963437790422836999404536426920360469522139699021310209628132268650450343933181860418471638913745858429187197476294364422577847564799276890631056364068572177678896041739309724424598581638947052434061106223516526672915557500478834004121879506084043180126668512721445313343177396342514302939863794773480601723650697076594719725638467544927017916490875071155001156720472778690433274321805999742628266345010220613894919352730423176308980643233923017257255424351412448263415461851342400678331887105571283905552663199491180016200296284051624663275473251905722045448399129772880561046756667075082024837007066788983278797149041084286362782959617586467931177510960796105841074221262871567396675614841523933617763011016928551431742770080963251448945883261989849332954038125709164156300920224223395570675935942680964004113969453313570343524714899788179702464197475471495916754959943840259129581799178772609932256823494191451758220705787819547785688223036197344432532533504424842660364285941526921792216202740412422475064731559687315340615881368979063614246880670425398520678131364704332703829237035412351244628453509471493575995047032984325033496557877632133757444578374054581471088887724915273946979019717559021084790527855983128649362510504688851184611165100005194619083870139069745974656005051955722816377873929276984338670500012049578334312080553107265864247272982976115885418785573656149981232115528304508452562012777311613551939380267477085297291280430334380544818268078676502912731026113426593943551543232501059341075112323985143327234639953917487293330370107771181033090636103418089636170957889358083036326390752344896325687325072157943748999597620348809490399070044084415539055299596940134893997536216385237612628990590850524524977520729238871312795808397629870637556999963480951453291817623966217845412646509151696998375126792904902219427427374142416107199576452061134498261478599333838775262924059237707048271181774389922573752079465166876601510407760042890456482550718621515414169389065161160750944147762447053930798317869668932277760544666057176619434066425891900021880658089672442910093885952517543892417948151860810294598959390332600105914883582870378056776035825232826042558370013417391235591837469307897737584720990911059864021780836233187541091329703263855672775612241454848502552586726583614821113491628104124207192475362023501269545477952734447532698055675538783252631185387818555093954918287149427755102412059790658082655168084296021504981683046744995209980793051745697081785200564960626443598493978059139060802617192829659767677293194930813884249443863986046229000113210876099280639573685101364741647732366045286962338683776155778741630353957147188978975971474787825112546157587080611869901633510284557765260014101231906144659529003952405507922140671446064694382037935536513227145959477027019390868249823436579696264198607616926136392609995154720153395727716681150565335008526993074960085189182506519985802847316457351679713146224257403228039650665293298906212103304276968618113726667434855546954063848009533439363808263050415094310058464466569415621342206335038829305950599787398827483407233400205611770743499389218933700423859616504151623052902665046748732249349301741231051507367600450593960479768512858655862919173568044214660164921067504340244901878120772416868948902774722099523271608275280096789590236647246692273815936802036219071776526248006436758774142568319899141863153069455678168918768769841477280702540090121500902479462039279180774688372267449968473896615626377088343328918686645809036401365201131042925170157328914858905778472128330493126716532636805105796710332470899623560263255967083628539495179317214760560597391245247004546032235085831645554639899852869997532321940036243789517152216735569553889030897986950822236299269415897869598072096032201151087072630041892603729520025604063888572905168974210644829989514349574828635318824342147854704346468978671645370131940615795380393036404307323736630514387552651505623871538293409986559417037741983251014514543924092763315913369764720837549092120487342151280897690799418743889236897050651703678884302512272376702264451751621527691951181574689129567395525435089308865914031453303542906458054912711967289841440379267346757844533518814359376286704637576307085901796464227252315125306701526300602293193664338885543089015972538072911524474278070003644483338466144222509132606000742141550044401118120548331204966145926627308406364831628683162349835028984255402388339422703753991308111113913734643678643936133709916433810109162033820686136363202783560584429457566323496803735077024273737282657084684962012657016224442457398935217317059860820770403150559402901809767630305000320761329285232308488984712617237250371457697669358285250248228392816204985575303458352632941820881971223258356148866677072167018047545585530617580916126124625969886894632090845385887152217612073945273608888397328357982236657728140563186935387553526742841810573031046806104823437961760266402340527361932624401287566502323020891969729726565019502384790324776263498366701023289365326652260662247154594803444927440392992546458701137833486896717767825445664587098045627397459612776379899688514579739078115011017548832231967801142716245606408033036397766614651343491652992936856735854143850532924617942609930746054012449579792457430762037085395657617875227087378617556463533977879108922390626750875633007806853504277541911322626870432608356473656196300794701967026355098495191582076014209717777683651876581926319470048864106490310406999522596464695307998645534663684546668738024575700598769949268686365879568435639077653294568217347121932649839602275461787094223800026786618530638136878360297075559377318916144022359167572772476926615148065138947581521818910570912858146015286054633192619508307868581751488937884488980301312378098669659721804660076446086546741417127236955899829505415073536006018632560102512778982276044103524288701755289330168338991527302726050960710823635993907119238968005965107801143208332080115697481638895748788302882739954998306784985372539824878109871380976967712631024547857284160059149499929145781616372435454085058317956006681061026588059317574539696092151624411295814401369189915996512459667213233401775386731825686339127061806699898658736576370338216978107791245771750307891296248635337281750138572401108013891755953419879818892677536094581891134885265119016367262973170917663842894212074340473214753314930101744562431232651186364895697299189693878135248314902620108892074026758942448270649506719430997031743694241394038654209357189304008580510749890789914787386873179866380347505126398622429911637317061700741880275248385598897157485228456461209629674765023231193655004397982068581651260418292153296073490800660780783508424809501358294957943751478365731459552712843345633375845835199443064915623884505408652682484059569173761951015001753174944844161923898805311593961795064871724210426838998712474933316301190669748850172783533387614161691304881836803758304954859097220858951329138739475439497801711077109179195953464332882448995538104531244644144874674837774621042976283691249169393615962545813052775308569804139807767124542322370272617196100056310908097624178091868618828835971886941113741959215018345440087206554240480987057231259324280810176037997377021028795235607474851760660515696327780612621269121460617583018483404692008013844044281178373290845658726042402966988992670173185667114309607245605653981040507812446956335771743053145492813727521889844391195087038079608515179836001278709674091986030029540858716285591365576738974797377791745401486778542477242864685503795324179937966883424685095932197424460890676333752498345284020623701073712454289807514191201326783832150164602996623505978454634599208168578090725522174866826940503982164227784478983433965168810336954946303767948485592282322531153400288086678355040123803335246453952891296854042321737118291723874572034505510316311339849917422021342566528773686163614648253693220606432912133485944417814096726802270247104133664875404128713301811880084651363045782030088503374101930676405248014483341099329946777489001843071267703459145251256222405658985619879007967045952604408092007627071770083224186729234264806851224928523172683224616360598294714399376113279889160799325959144153929862341309818327959110562366618255885857190787028859149076922043445672201176613475718822400625213145769516253655452032602765128922444522323137510920367694657307267905431309203944342401658739685299093727146379685339408610328459278119503951457249846452551278307719865599094800165309546291714755490007301054739748616262287283319495642314615577814492652423915381152815884911037417180863952481144429071381884464885702098542901732107730890114930719340705747327077028668333745149309262525514044890538188479399305049621735477521054983080997896749992151286597690537621035405925810926002895607191875282587883547101452786722685166221520979465386706736563732942249545388852742613772136754870981023751537639008960639300430986438247434339284573235225701883974555927026537514691095356416809994180552777492326146189179060553246231098760607478092334880473877177015201950314589289539232969033158231780930736802521888483002640777148266388358456494484821737170774002256199575935149392442733867498839687025542625681281484415301724149272657090097873024311867874367442093804367283574711244120452459748460578883245646297222683053792318758910040531021279361455897234266562657163057110552210196524699927850152558477702110842961555678196867678729850782278867608037001251095052393755762042947858625698669580514296937374458907839527848495623292938386417664414160713459704864273371055803560350108401518365219444303416932361479607736559766236763784518477825284265043331364733989098326289169879355789813214011309895758698171247955315774208045789039268777245237508703997979352651770027428506669474680559766335890955977513015751437872787162914336605884986218867278680294072864350877191491523679692311031868316045979697630234311263876938039937515630836478664254470279637811020645603397259856418920974094375653037036683067254379593409462727096965903329108695329275406938117048792691723051992902926195597024268731703520399066220274336982709057422673822226151078753755952561574282979285843880369859530348941653810515417518471431737216667925178974846651839736316048735102111008012434523369750417112982903731761506592309191242504724924697335273072333226755090134382241043547540607871237818236581005404499731814261190655003447081916398740717059029095591313694809469030398651306871964450927952578343950202485808220045372711339737761492548640105415966637892933208084525487434418979569971990144576862918549061929020588159394320475314055747950308554223828681300776297524120342471306329666400986987040049700548723218514782991045527344357312247216236184503962716144423945999488546186263418524176523138223231878719930566498337680978125238451524759392803515821096086095644461517746915856926610008284417089824776497203588248675676417992595389047019157603509480594087936020474095752285493205087189106175769041086376759821155724342095024734014370865212836481665741488259514047995192325906716865509406960400639953516847091284122036783300808572488727660874880843497694525157762278183141667084186077440914382778013257247208915916944281347939728502932414245043899276255804132561500099314445260228879115582218490745469939387182427287153702463427338402330872293043073010685325114199269479492952037762049406709135245010499989362724637161959903247445131638770789893580218933470392528867308875394208406833170672441260356551097196316013952833644402892099923998468533446086564126172459436369358335222590081756226667725491796164426150414855803657620721632247406081504383656934270500346005804057400235670072456580493850967668492159801392877805115812052368967719958586335597713273625780414267652132114526077132225285249783659747106749308693685061258756641389509113734165758908008402226014517610960345486928872592775752591473226512260420890441227562370440911281334751476564109403507886105511652282289639033862356538193168839639935665691487796668652030007343135105359349799821339036536670027770092253229172340567965625996249258389130430092016693440776156346935370366611203321441988864595765507885111278423100603999168733543471748618257021387194701859761645326018862845508999476455519081167959654933253664688672395846377292220693096140642397724756468136484229497644876220647125948725670584463941527566641036063495031832298951888494189301806344389418669312520252005977237752764725238895871630979577216435924110543838188890904607630596502185084374733664304524575172808256631131730194748283887821849841552544521605073839495643652933329828424412466376761454222777764047956578971741119020385707868900434154513712016673520071231091930836434631506478203153460982026753141806645904915549873291579682980465583610159282123413912074013001075407386808822949803422205249320302076229012794742027669094136581343783934722786265607511854518653954787505880741541666000644589518982861032577139713677841422391666632940012151819771666048883876717686435913727558788488717115564559640723389702624153977308732995206944364103676878406902529463587964007739086913694295890670183162236135776702657740244034607069268469354772264623242455449299517419594275304653221723457846813505116849737166826904993414772011938359562943320784534952706499712834563665675321029084853620251651923175125538001254835269658319850552407746618271405855113235975781291112295924759970584340975194009255393315559495312270040779419658057472312518159702698665812489337507215486928683596379096314483847371977015773102101110253589835804695700156035885784316725783842673727941430689171680182922853724673244071751526802115407817639010437653178278801808427010455086931119515434172792966200893956408578261412612243981807142860405172872143246980520425442747021840660400256252081600426727648469129260382387267184861246381232705311560220677050710739137478269331269547712473141483407014683095354356236011856066724138447140019227056844005624846559687173310065169289080762478110723866525711531764340525834593400200243650805409400821623502083953523832844981032242743570068940007225669765995602952322586541480443569464841735242983525039547023864877201177029812835946751957193554068585644613124552211131642376519272147343412758387202144375447380802992310902583082383108457052067622277790445912873301735713000220828130088069370312497264009572357195562341419710959124531181544920513349412251809290147335426437935473507735454127920312232140600313173879508947339232584994876391942122468249155596461970073819607138226670154669673896550962755520857931029483274017381645451462992976552105103392737289864107926243013785690093523420470287632613482956315785384693709359064909349897220675935858280338725647536131230401840539790759656427111087696035505253201475222459596122437040937391263767523027316582759923274868509871625635092439470068113454896643843236601175973224184604350040133332750487171025163115006998985808542686974869264634551883233002808558683801677581410123217070310331426685747075284996818345057910829723926958420176749395113281316143804734158768269430564892512683716056829928255755306068174267151527579518121282349146067389857724608599405944229549027401415771684107973396899168430340159407702021305425006292709657689540334200297631573238952931128192278947400695532113617590112542349022191275888577581212986444170401584232080174472410290686817618188200724643916115227734392747483089206992139601099032242280676823881215199949377023012158976164627278865132941448463700118437028616605111400901683336703080114553582204208580978844514799790674958254513929630721628050195284255955602236261407666874081740081147318130691351295933722255077292776289118526283949783150361224700885798343050883200547723418286922234173178755257401244613872336942266389156268782732867521214696731082196998592636063523820517652820230157627911797141235316705470942657345453801974359464687738859684186448470966899447859523857436145124451955500837842795052223644260960085702735375609227298215205661176747723775094288311227078494375535688110821385096300918793021309281180057752249645002828629881251949296535186759900840249871601777297119366746234780419989779222398727200403900759122224948363768579741581527412562091507500830549162394264900352213727692063371852130218151610105627076869129573806442377068501388391234283287908053332434807331182980126160725860276230666144174874262648255723677205348825776190730919544737616914089153989331341104771841926842889440205815631205628123691315231542590766977045973516348357926324376575620640874919285631237133382237675140962642536514892824066814299527738290972442636235634209852703882711423673307244367890591083288961198350617776615716765473820835698819024089477335254614430361285136258758864517018738506325316392793356776434448572039832477709034684556804013151245092099602418397535412001001138909160762768056364325182934060337569568126361728497367888030901952704258157141583277547092125916807004526585067780059679219427607618169735145505385938923679319546329415605672325735958040801222540466170953488787849456009203101715853925373041444132500760029045394361100154376807703132817694477506477378757007294022852589740708925867682712531374829829213950984693460408092316841765284790630764928293375389079293889159215772006764827992208657842866735988000819296480600087742634761228001748258485013438346534997642152328977281685680125649281962578905771571480453518196086146030507217706953092983925278308181349944719556091495489743034909242187176381192783403199954344269037351858615103040777055931603031909511396169034794817680000129231926821737768444646567026939088898378083966497028606534751511574177941571374836848056229392702679602625620526945383506033019384654300704516584282408716382887402737035937264662826987755192217608643147677305628908982824004124898102495136221533188496314160499928611996507849603042038008675395618335379111806346168057205638347664009543960968903262457056358581785885086295694813168772032283923515699685841209478082784312020565173322140257523622575120610008927198231811987685300655896254575532310213151300939435346891810774332292662046788917077855848960968667224411532459057631631876519485092204601824541648798932292597707847584142638855220393733039472706480543389285758581257623774546609350816880186262056299417004698983122281942022371986671454649141259800730045414154097695669238237194662199951593734154946899591909031792182447022627270009688863930331665468513896164839177456123875860752644879916694502598890146392549765723557710654608732949637715802650465899915240491448344591360042429493952682133461926461178786806815546016165626965760636087977176350317572204613858569344021496932959289297151261899643018335570770849091398516587971119229660163416797196908830069429416240121323504228967935404439993510819429648748752158311087859596085445453058574223026542728123840860350151455068253517381466453837927377708582929422505134060158739064103998668044091918648207733979247770869239893208183629635617575915367401722394259131521767075420410601251623302572386734506151427539469543660962394201764831752674567749091292143518281556177325644913840199547518361489190532584131413277101220395716023966943047039747303170563825999123067245086740555449711625746262669155294076120188751471090791348987741807014299723294316064185538293722808928962365822234456007889804544362190893043394564607677085397113876587072195150317008471391657560125539101024301396702396677808218762376018639114045937165166231065171883970784486060477681683861304261272828671081333859830043806101423674949447815956703203513771819557210452410431169257750823439977628790411396674561939035807382549433940022819873958489820978829184116167168883508048487962536686376219096517952608578954242922484259715945919205947662883854022406109177234294152025229572506470149138189707642483779074160987039092581111624309601851398867055185127391330904802316713532216552286002973733979916997858552268473163645168169336660263350300005837147653171537835848771072415057887138255585159387960421580759089316787232547720435383845757495967385369594948121339772305833393276260695055838961861225964545896526848677539135450292640501988485082351820016097859756808268620670157646357461019323830110692209993395965490765941982234194096349823231553244445517787377802878384106386617548006599381518272374722539244001657326926247135244182818453390260385521100699007886873685996680999815983634466406770752317015780571676844841193268533261856195849670464962415365086880083104655839444180296177848158482744151610934716532797915485059837831037695310516353530195658021052597881331797187408886817290062920404085932294452334742687098683006564062893846456645791659449576961522789945592920019505300121002953891460042801457128767694307038824765626682262037330647607896107958490909110970828570529110813869515604437698541611867206137268823989450664342280633500599551339590556942897553074573377911859298893844239403869560584516183759255616001781573879148882973969925308014783275177869561072833081543445635086955963010377818190146600610417282677090048534596127067820838899476141970748511634022906562541078299846291448130424716557860016764560060917144693398781086251710249444641320395185401187197641494581336040012799538412133653579534289794773232242246563500407427872274814011475015303712555759222434768842889707976491502276122480753570576654821778164901650298093253511807596538853142487189126543391655546592270921800783744373907540672910355114049591804942510656519117732843789872145733779857187697519203243292169808610661231154800896976230295248476787522085766686665833189025706266338922308891425813838933658347251361683671717007193641342488617541341595056921175607459765150467225112871265193493056605686261931766848531882518064115384128043271806578472285592568663938048501046273824195097367633207171633454282961756934305448302883348980498129243916138178166599280013561106552416082997068668453571976657178215190514295133307502710576921046073760852604588625359947351388057302994424862185069084845118115774835698973578158768504539706973642167947947721114100647282498516033006089471550957901600670868524019879867994331332468607190663224314691610745142621551533995486302173994274154560703037626611478519628556592083830233044792522299187841587824802801057187259517747161584234651175963471230917395309948709150491127995424143073354461914896083430389035915406334076272932509080530022309588293374546258048352146227870346115902355422354761357682803203505936466156994905394979341400413557834806733048080353785826712377216113930771266546085468770528174673095749508682926103629678329699754540900730499738703462485805834606325567170280877960258201618209437401224671703467877484652246065829357626561273029788383295262016711700610077758468471598699336120988016151160062218163533724337518223202918488492849653595797874838857768936959906280170762206619935496306676368568298324850932483699346898539364948747244678975217266893027382955154401898175198561172401592124054972720954077895180755608700348298467626771373481968032344506486009146289513801237497250482075295393560140037717948902957735244974319846222445417297368806794526563216871742112739507282679453978111410038661196692766401593762972154079554365601340086232829142988170093865875742219242151499905280785960419152363147818803417790885215944170463471486733997011070593546863939221493735110068613134517807935162245426537241342014886235336527463724257214552897133762797313097993884738110214788971274029685302241975425527662022633183714944909094402922119928511703192430432094404279400287823928065074416108303126049785111098484749527041420323256166073558855721745601167181569139771493883775056664249939847595451274580512304785685527493203880412743959394409132484651612627842923626486841995475885118173355191408877293125758516967584642744810936788776535031747283294769382656595788714731284437341368305691574779915007077874679621285187867381502147275768226312005152842078151595035037063289714893104755850160635113873883891954310017574598974807737531728487133202776547294272201011637884133596008517472932343313620768410631368191035777340303199022311048629574858904113504132112920183623516418375346135312446781773431200421036889618255750058449689410854629042887599370215536359606200396160502608752593075922179581919245139989555882613227962883716166212799518263125040966923837761544772660850286237927612696987623972609273014306986771729052184983955292798795584171766594910453133044986052859001877404942528189897899835799707367895044668972544674706772924686374791074617531828988550324719658857808097803915716001169089437114338476542132824761185285977112805861905837523643812465533990926424897514870457633379798532977041186234924046355595034372716145605746806676870952684688710177846553723484361842210246639661360729575233137037531042640305613880030630264895575189354368832846872862289843601915428789145476063412699016186847404984240615736505518166637878597836610682097364222348104927292984796233056003952414579782755502763392353384689004519278995864368462401693427086566546336181960420879231799854068702095834626995479020751704056866010198316945413287303702583679209623599141237897717747738902408022431747234095075794986880018663973115773221879383570202253019148673282047941467715528071419746251406307189823717665461812251057191098937818329472617085205175358902616959934467052398004632422041134683588854932936103068578512491269255683434916012146690731158814154120789732949585672322904284008575210313092772370967070627488018354111287308875707475385228853696833579603638125437244942753245215130161637582822793918291204813071979343401656979761956210985464040944932072545430351570872450412825105107297649078469421226561854139529169477657355322217572753001572020409240407279303533947327647440396847817611905203658046532093866760145326075532192996058742600865317880189089640054451261312554834554752673016598632823011511073185213625267384902531915789162232830562419409479112319091363387749279688437194692025624305228136589238040813649381218424453307186725837484531560503674607379733033063937926649823790498473361337231499066379733205361769513436967672883746124981750022982471480954993931360938889968659072224474356484572505186730055919081059284204457615253246261676286839457716914103184629350490862849531987067988377391694660212104908445980042623366088215937166128997199306131414974370843607787582181574762033292904293784646641912135553170034566762055551462587824026650050557252151510785653520872740742933232882945419673394183667484015931718297039027670333990943626747581119169274890873757736900444098415643064483262310739003644313423973608129673646860426061114176350015958842055548057322843194392018638340063890125052786929450021477647751509283360746973596693254403273753713890744631941087632053879593308163666220456128683017848441845489656330859029460947760708656717775377177134267700603942343508998074780767148267350479581814191453364543192136722104082114432562302097310090532008105111223212530912300729789227975439283250650148442718893052066555652724106189916216081823834331535274949670584421220651084352387773991956504153655880643875332457281392939166802237271596908520885736810117908270039537680270062625722079208678710179772749628176489778838642807929326256460753594083513354442269913924459447144484958960842102442553387974989481080462935088117074955249022507947791298294532933582748385044662065024802768544958817738622590957849772800240924223028963049986248364363203438705905658546941664967752812633697749862862816037621317013439406666826884360310023052213151155492568367701496520964564782936942229247211261963464956630179470077832908639796018810689045830807058433295257336228229270954010068126461057240123291751390771239894858751555525383131148238359754930021613707634055885323003606383301023335018000239272592012532500325933069476426641724920799106996662398712785914536337285732413505435045483263752237634802800049845507092946705258061778148248081496662169553121442595615802151759497138387434566381763392288460906078469730911552461369543149286913634797757512921449824792534203773494816713173448763701338590602793482806599053399869664508738506816911650432605492975997013719757864479565671983764908397222129227567078368834378197468464247649993109210324281352502484304134442358548614415071749272629901041133615122819137587870469950244984538421798555385598710281622497524762356886825911434523568416759770425942067940797810014965754344958483926279587139915921564707384276251938454542543654767762235773109227819953148992116509122171094596092393804762654860062355934073336473385988029102984335490475152138911733981400180573518949427712791472936565478282231398593740745087559399347489940373266344739388547213846128684649003385539837111960246746757153767750232215850755008071098473192288909660433742264492125541343251665315777417061997839686273486380764382908903911018770067819952184747572899492291298017868369685560300680837267976736822704057060526096026015151783726020237514991178869147145137125977750655402639513427527961273285446237659343681507150214139278795200120293318527576686488364186993857798131245100432156548776512770153599824149155656367982339445435343843127800340096572314557699063230387831607661316646700235823803122919658435684502495959012414443713475006922989887295840310909086417982064984945926307699375266559656030981043593150562143694684913825284781919942348548548798359611822940547807517733603680030000882238096754786600737463220196529068321398420250205371338285763102821306483598516856570019156832524656913577932939547628428651416943198716328970650560866074872294371163608709187539817644797773844307189922463159457272773395346937607115968215749562407791701438752316497834735132799993330890452337390997340286777508501019456193187762564231863414337758434766728481441199064508086565075428015287602793398636440643622927930267557288826561586182553925080325034619627609188925250138385252363263181439953947913415014474680192357835457481942308941121422116023286513729535348095727821706303387456823264682017333712443964511861493958495196819555175000242545746345776350082629429841885773628607959914839516504913862266412636088871597214055007891704875639626787971803870303813644597689611762851497905895039536177545480781990709034801593916310061348193966476876648579734464356652186613792835584296502185896048221601023895137397140856751318513924284080815994984890645867572564305952528618377290291048153399951414598860782882528263330887048689077007135291982761984062417865328030375522843219781614216572299353216663313771007280822023219051524556355368268382016374270478255341297097221471829087247893341379482146172352553357137300805711893263778685785581757729999211653510161088458472307778598368749208089455032089618386258579203219332565702405624616754526264311683307606224299888104807791441685324809351825600912296537667213036072453422045481404500519300762218174722023432580681463655056572013791876287239733639696869811687593194693766395147840751349566511374443194104771993068866773596597487353342733699606363293323363438522530296033362107311816340681831892487435199816060779476271854401511277039178518784935673919449180065915706078032208513245193893895920002291556885067074050989387126485223836584090811606169317344534048831676001213326268864139807733639405969928698174605588723847823636415636052747121673913864633850681739498220445225736545313986108705356413973100751506441845386285905522533672720815506419427840833845582895996238374573663082104315819410995747462348963523403988817340564408066581895753165093867828166168666169911169002364769061642922194893468929983242600556687841590802674021037188321473214145639517793204708871586814991250433327820563483906711272377173158265388493105078312011946588600199765169487262320307493798100214788705427721542652330700463296660669904451133337570834301156894211834570928003441723430902820966552192806782526272207650089117758763592346012197364470958986489364194031810349255997034152326942253630188315595680392545661652016539570689385478474180873425997061149353857385952280674486232453006262161767198970786322320512803601930820981275152092294188496840247211803263362203332777432774245090502265806699303124504283252986053313429844878552306792747383769201953066648367874692470208587383976232695952426227312722440424734005947014788215676241350119590137142733090138838790938930836715441391096356603080607773109522213753360579072734056009150782084440621957617890144861983850909400592117726735475673231246900111374537807839666991737102364013222955354052766402365081061437730724658569452445965385719977345044900020681465926549724138750221744839345148402188074950377372083215891089137428465017461732386249025136955418967067831987364719330498435607331113462192071908477612708704901812760059009054404771864353875174774264656829563529324292490176097799698800331078207087374621617995665124519920102145646650442888168169046959750571839601477410395735387958751984530135870413910086527131551610028061220947554085346674280930513660453346545949598147912599572246366901790753821545059130854192468736152735493920560910087616625298150153690280915644210633620019986643606896630517115486186974262991261719848605885065672480027269621851408750903634258744883687428196539686323100480791696044979854834534283976447575645784242745374287364875657193528381114791341133859791866367460942407574805483331082473735022873207146976855429139551107524523273897643178203414236630101809858854583922144968779189734990947370449875058289096270711276464512477461630517492751176061525565864784101060814716515125193758946789157595982472661205581254016104032307046600473016299569662179573216712252810441671009982122732528811579984420721349532625294843056713570469704582125799033892939472419396314620835183248614337854857778134506408199943774553865314239542989048926769105543330170473503333900895836866491599577651692671603077896025882052427914478311426594795492221161816877420655759747683599053382203548416235800011879265955283917258325687370820219540497819124176543851611668572590500924622184810288092436726706310621513873783415234077382959264406451137030279193429638993212183783145714719605459928638959287340934496858272894146245927035759560562899243052869971108589226425995873922275192570571174976601679672746708404958224172039029763959018535195735999991495246710548076294667880038225048476244918466848834475749743565101503244075624379322271570799081399841169005835023696056689534845704128027680610727756447379823625673095907793296202857298732481264982307265374916895310448428817149714791450485424585683206509516419432960669633787224397662711363171276925070967905662651615203550881551323504352148803585002753973339786488019040123508441887709409138823781909991735746117241518174580246460561425791600285391260237364013196840549266910855080255268526755931450134284203843224041417861682455091737018967773339590403177904384661599606014579802249565950560714066279340446659910544252416772651905459948242469272741200744159279332879347638235131556502431254698505849573815119245700988653406393719644043635526378834968017404479118060731519843680091912655151031413663278603665214814238413402556873783397161711613899887207259525707554202222753015009621095457603346060758750694421469970973350068849263953490966413584781150141684350481971064198784654719323001727225515538294682576192184862451323630278562083556969229555532477874235749377462259890416747669320779675047362699788993543924832533006149929314542968731295636492357186453113479271764606734413774942857837999456054196518112953356778240916268254416312875940231095664690868783136020294688168023360588381136768432140315878182094811943191316478751846826925519598443459615184812112273523036460711830366291960268779376130122800350007129401384141979466541251414039997721558771879789571511665141200431155602902680040862331293525596113339040965290131312629193902221148638522170391761595195142130944708459765549707521179266719945749737482080906282714563930754953576433046509022618232030685593075708497643853267547621045988410113175753993493246880466595598656369351574425357899159298367962345756553698317418268054401032475707789307660778754003547904973473499992018241334916027148993921571424627754659277402747205673276891316532642872046354972545269749503187640320429023735451860830824818184382836622117764360500821421345999317983230948175031748224277554755166009340418965327989280157089876518313063536859737569678007713087983854468304976577961004687216490296657675399008496817754907434269063724371376387722750833895499361160750672776050669465879738081247281736480213099733963664563013121848846556721706703328012075319009460351684623547935164534603771591999513115687341979714444124593371832179899666767220291620985670168147833228905389286017993836564325022735877305535129800394616337272175242632833300073544979196195283695830533034558507692001888026322802112143929071316518081351791487010780482149512514259626853640723327847466636811674846283038262366490691349173582510706082365725831400040873441099373185344036002565913966153781042279467889638179488883467279558104595946261416445405290145717870053512945930317263148403205804369827496351737019857826830533095518369723802267600893112344479318023671334234916770090170573079483537080093076329815971371731829454756392817603807020280027023433593952147095309017730824573851295846750632470947632561590816196230952670620137912918626581826244356219600783028882864839902184756573010724537714785838228827635401060075710996491360132294586742710621973337488541798957143418962872281793254654012394044648214008108115950091655571669393529889745928314740881273276357756963976399577139823479656029318254575840795011329845966459668828078050385049743842828197707244738794385747359477356274183181872131779710374438338936711617800290137341416745808599431858506692958377535545736784668314608428421456591535284962695050033093660428522917787081731162700980556910824805735457289795023922784235355135700151340982926864405860247407073041219434547310077866944746422881535408060101722867667890071765004303014124255796941028653220565954278560005682683208736214455586136261670042104982143189085240326972096356361820940762113960901303056391111146177546374441398506958196711726683536021655314176433376198872175797836165820897515351650035343955987011488439135160913996823201866267004970366251611927202024259109767615252660898754223075175135601888899256837101113380994958806962787331190981445382572492031353220408647648030639124332335610818739300557637899228720019068245530212488459374306659220401915865070363579130193793677962003810619593816490834571755704010978417646723855226554832189930419488383814519127204614247343868614239198560400524211061899334792910431428181753159589486339710587674318176922260280587523311276445162711400012639424307626443896615292781983924994969913744938822752560616656614544967494512649335550297402152899126704601911014621340405412431800740696947855566972595243476527758897503913387878494422261406162574393091089732825429505340859847555814951549017742917174483964330686110705840700497517853627977283055055072164008582114872017777352146039006755121566951854505987814205962599071996078355676426306027766683205210336726110006066529680815033317557841720762118780915746816263577721715394243182247187836907523254500660887591345793193952946623934116854254933176168878497181911494140722159454774596903752487238960259345920990033215691976693658919686546152745963311108786696836326139288908331961729027501987695116986145426913398485247966131591579961986411066384785516365036949517376445806946796151967537301535167779609789944073381096149390081722583073948786080452401987507074916915092226228762478490822790800930774142947125809672752658900069072939841088837179005577429169270270760177206140854833691278431349492543174917109945223290329504651935391499745488740175525155749900018504545879422299227742281900587205050689201423634243264728958124090317363268310692883929303061703388757800543101173998544187324993237270976450771622493817612628982105395802758913955999887834096193336996757281136821576694058660445757039536559782028940055240306472964244444901158309535309572865818727276128678477427706842929624915658720011252762571602724268063760987369994507010274539331201363900109609128424978878013294760218823192803773014316354784637123370279922695772459608869494668830804513707330740436129403038522493269006604108040806013953432150670974965300084847833677604523083336167491820134924047642886855430416156836132193051859528806807680356234111993352963043127467700404033053744594430411486456768767257347151592402340951152626045660452006024581177257591108377833728799657887640131995758691144859313320402789464398733377069467803299741234280401698998177687985440675626337737906480579258395526374862991533807187757091998648300252034459304149934690824494121676040777323226623224847595442134554278179288769512161636291102082009176816354250647525098323521359699563671737496383534499447637935961878869768094865420448678318148282624234092661980709549382876953321592326016375272691527861114751146938302539779599983451317629087802393569891345989314619854528115702975600703029698826617333983464018724717559891633225896463013434983914106374671969286983651132014279059629588812754710682759193885371156810552969622501791106023739125114366035204415640784751552952199740084060200174789030659039909461895099735317475081043851444831470890256964060140155995452015692640529451530593665209512857079565855234292584218966992321808154766934839111357011557218207699128756315709620816932852485894171832416274329700039807628291044795769722853964158124720492280529817838236807343668003384332053571813595255496867854143839455438117110920597198200294764784610916875822048832005645851802736442477288311943595326807363488148238965827654578728181803679995459993081431500917528531474888728380315834258247118891090106566256934908724694924693056734882346286587715825662246797160229605758307509268995931260278480334674114826936033282793744368835513499630964401501309335498530717730395348373432548453380657487806093509121848173183010522235754096872273944802744630678003286433976542629406105331467409607817479173121918038545194401051441011389506161757596766681305041679352507141506417432084965122763282157293615963049120977665918455041152846157159144667475536618178988097756732978437392475427873998283138079201990222620883865230520594766110946644730499226706120996040098143580380172072702714027262257873137596116329081745207158868217116320998460268713315900593068781077324857264273815574720395205212017705483649129190233686093193598700768462393079480727875341066635601697935457420195379627656165140431475377869010767085410782740168723898391572486212391934765003550148100190894890262404534206511154632388267836815160620822458940460686903481022588783560798861811210904474763219897491850705560930541643028947699386269733591533737876286485905183587718367965333183503882673374183288877584553327015117355084048402778340828065544632843373310658222781221976353558414333903224239258824364648127823216499743141673495220309558453677013450039420790584918285771639575838190084658113942518925124145095492710211999367850553179722827643217925492393611168674179755683555129301489401224631823661313767461708792671404017385283463033665998040336332797573476504354751037381563208531330452347905247824944777118733300536114380227735763268852365340823587286488811678828973658521795511503972721945947673542743345223622078580510110550903316667807018737130863446786913579396004018688769318443900005020938891818714226364392024140593145717935965767528844015689673152813876013938321761919727870844938840399681926258076544797029459877288650868507466333842981418301158104105410796912676037111081809387046441174020514006108098951746044394876292252823463497682587920963544135267482813615092027043500297976656817919444912317830871270268345279138048192501061866160273168242039861758048088813961497708655331287368542333962298129087928339664347727416617587454017033515016421283229897981731931634760030857731163389277731502499921119478045631416264270106593182964757978449850223790637174145095861136018852554584617425859485257797821039463328813087114530325350557320086121219886251816664553347282443768162512210111747574584473969828535125221727848827100628935190184720463401142628065873341595481867829836042459868838546175904276977751830321758194609388569183653204910752320102339996180992297576894688288310362653413693333910817307410478990490442248980295990566252694710765126806936912761399496207470154333500348079078055386545416284400413357995141319675578690605589287631245036935407629058729644038973445318547064375591535502338620476757600050413984077632728925660885882475557343073730965428172080814623548257788802077528666237717914566287853965559195359544724372346411667454627530473251045515241691162697869700119454261850117467269897667057755825045706052484850978601222268206390203064576445774964679917742590309636225292730610939251838031339587820572217689811984009391405867806412587147796052973865923170369154835156065658894213140930470082458030554309888035106610312990739262092480906427936925443933955946253477088756736034137926147737073491772984911840844119292574588898230066294142924074551059086085077679784365862458310424473002235132991271576786558123323211517229990733422750482387268315371583663147136587205514354493528152977561247147819248691605417992277669739245131997501794696170541101206376118939258643954346607419328174196728803719422238373818725942551522846335350159335570362841962155050928217797283627186828710353213911479515492251373022088316009614805237723122077400396202569657661942307675125534549971489388716239220941909521804467022447543475578009522138695649245099270625725861067605386548255021560323077986062684452122917749521386552851897130605090174745053512556913449482584594543271874546080235821432694988613489933276406673505110759815218720450750799009388311162759903235666787021552310294738412364947365501099388934572403783871715676767327084026586903366521901134755440899366655006638231405379156961918831231609755670895519758095658658636532567052610038822313409633829057512168066293734821834185772145065414926684197779835429300028344346016697030955686036541550719436425356037338039698881401377571466988383841261473558265679933055074794963777081567664093649649152621048977805961058818020968092357389576601730671728670402293498544820904938100122921380554175480224470411959892572126734590744269776948020532947309534370839396092798781811196579649821134438991321149417728292961206039173894842864607080600657681742621530956230926003638434271878012446671711177183688624778763366642698021188120701379218468584401255820311928312285350201911557969025384395193851600841584269782674222006934825760227008178517378539248306012392186282559508911418186701700508170546279020027734533184761478517278194396482855165859765301499403452297094054490683534628946538837576619267753456584627819688676804268115468298521565898815908744616690421449815737321953807101372218669037259848476571997872433364395852497593154025661019953839608800806383262413712637071409193779999574124817943319197520664104915380345799107389728319244883192869246161491642951300021809813401672029226109085554242244895361996106917781172701101701909597247883796306817956676310485998924935436677843160852781254588368927338401669878184063393435742888810223789033918793770811695845651971324653457706586669902184206219183228230368458787613302798055246349428234551905258898570754419510381528618895342383033431390071588737170525275044270593367177034944348734364160618042808179879783588967019166186954292744991071305245316322351166452731315927259086209961432905136343324855805019004736029245707744192208241339388181257910841678712976629498581142268304000793772750395752209477142630953252201148432750681148470363078205687103922825127785546693142154919153685821636707595893111953516109565353300018354410189028344566687914291652513910592086696728063816939201426516196639230633444850850582149790528990891917781210643051750705269595220809999429848729464161477368007825279925808550186038014290433970090929702713290193467405724941248075437357109158949034851575192477310078692957405872693799569688140421658999280619632061188178725253455651081017938794407768847877341674926313281628112157641190006120711030762066267666582825257239061462565235315261187477759676821722050146109117349610051456869911985551350798158753026948501563300379330563876399393751766323228008747144833506916076155031482965226988298746497636258234749486448615267326171987987784297809397251526776272430868733132072783837228277065372781188789115515338371642924610330446902038600086787296670709447399165937104740693232334107020782584948142745680062671914649250030826739764076149153221789118600847187359164009919461329771663319699139472356113384433982343011350277748671318229529385386945021983287490159699773731747946993405129122048981241464653389593359094497135567995764496290146406896660936964400302855055807471736782753801156452778540173107018700975213000629996061086312449679545811830174994671618538403966026470644698930310138082782041133631229415751330431059539489285776287417576927918185473991498267281815069914256591148169989380911418034119051821831619980268744047710066059182010770296342729400650748641744590809727656960775049911667634180870589455984418111927368237045316300064614598084798876476779062725541421801228577268439437562988395253401139331843803778755916204360109166785087502061586213670225939104337235707517846539664788714140633429367662088674247512146437544599510353556886848036085011678896126954100152841484526676428746769083381508139863936661570914796254578400047921583642774257452368871203556657818169682599613299008637347634557220121690080778521078388989951447699612126219645075029531742262068083541068758263763469829344217032364085883944274880625622409823256292511342041154545503608428117893335111946745692455952749330665995162681279981498924575499477131871289926608507345678454317643840379518289886593714667909832979752344833785240750789153213999219785392300489922696677665650528521188934663409382646618871490101384582082633257686350487015403002865126324078197852230178925294316776943744257118534026012358903763120826106428086442679883189136733939699381478656630532759537176505004804072537097671719797491072559406667422693700664037050066574329576783209862963844462922800951830260976730810796115272230833021814676968170736118110102623992355844665427073015496372318478710811442048364346995186738436481389348661808800064189786905365738400316195979435761434778467466884719956744071554529566280663075744994615536057382052292430710679253877623746096704782378928420766693988191258833448688894060509307588850767025558128330177284219540179099471115132084112602283113992251178459754865649286716314598979363043350924470837216958003067519885886958184168840072717233667551287110324035510807399406690569245320283276492772319945172343788777514899536948627691933168581653546815534585517421940345479273660444332453618704853252251096280775299150956942529591406490264734714148519091302880203220502226701641087068959144458910614435070965631272939546281248809789259233997948534978110846542089651358592175155517985446261111146851861124369351989639859908288071786881025439418254799668682521921320740683293013463286345789546263666157613908394061126344225557107297430974970097031257620077263900940923136274612351492294816202337203143209071767839138132113322486386947950534811595224271656769531559579406092266628962117349689979516285894289175144616844768207009048411720515611647877850157804701690179409951278866695531209164573059607194157717855759712763049718216062702604649088023456323190476848914313177075478095743832816709318520928241382462129926362411372219101612610066476544478825562278281181543571774135860070379420092442606673605222012442125896921179567433118218822343267155358224609340627710825313817710300437625527890999351448426961795617860391953280989516757036911134360884629884625855306604115731693274209184570707931851160677549143595063181215625663035948531766833987488873447902007795107054463655587299303926920029649756566587773609885186499435932245031730001392092778964021947664745422161881930948013575749127360897519223897723738644497539148225602320320063004729238489385443510324906327246898409559177090794309582281933234987785250254431332943016760024361181911358564493204606017269560726006922373833888740244694298163664184457780455526903074561779378981464771873885075262259512242886429191447721922061117557020044462163881557435581670912760700867336958780138731277837890862154697715543055605181612751097117934910463130140467061138436532034562859675553166265139778348412920099577097082733470060154651243770462777355593229899993300408767897932623077058684235227052211501976318403705710230787764771005158621144259992051992778771924876857318255732247570334887236827516745727370660837172785377261371941691790162546577423573750032235217901655520405811209614761387889195112582707304896495785999131166500701273268077571100812962255260732690286037381917082899760022170664866895269688957029145294329535207580487496723302197061249493247590528245835605750616447333099760806301596439475651895359744004504599725644368164468385972865972287656923078216995324489877747397828173227815256463300728860016511157826082512963871357660182711984867692177377616989556892655610465393061036122159096860448639476551832847904747932480854313155969907018824725107495724421289956953182055595656898865996687984049251414479053178960570496321882120804949490073240765641952974510780846742947391024297671629032016288903393217339655745119481384946815894138607163832641333684467697358646308100037690201003979758009199945127519832310809551186863651332726972155144762559638461411810036881334198158249912936596392249805243722784536162698722940933783627704646602284350508547854223218808647718499924699073608627950020652120132721294317668324856565388245816921642394680638361384920833130603327293761839899384602965076041686070030659849179392175204504952615191298136391174591240768376893098506931098222711433144303021407629323950579528561748074310071853482382508176633295674677755478150501231109108958339154569289978885037655791368046254992692311000764981207912141701387732678315154742764362883374422967894647965733605128718761177405679617262103206207161324711129013124913120581561857837797881675702023449943345579441715902018042535671780195695835845301579836875793740837058492776986274125762923220738252470065765083096173256724918890804117567963626191876893304970983210607855242316326636766243443836254449618011690648415945428267872514153188305067066848447064438363183339486179757726541309362795878914295960663407048866429064990170227838111142584380024423173685823972615225982747884870259124481254211480003782435764617175728349873593669487948134010582835182210895014981252845899518657384955793615338995095789444783062455711168713730486872072427921092401343176754166110360199445473930038597102065068955858507958803001667648559726257223286223499533856439208133603007093575002588027422431496660942267895090040794572484995437413772559021403925566179646911673912600341869369935437116789759692990922845768521113893799940261413520335513165008362166106470576430833760431788399883033079159712495962835602485020077167936001955993568284338803402009392954438038816088625832688056941151403853671019653744664597840237117434791529342099676268478147424496428093940648779869691800600139742831409039651924108730198217223019123051338062476009652217630557760622278988630900974120918946212115246234420522342016632048025383888618124975478542798251857290991728859895159391214833618441663195009963358144023849681224472881077393761147700223709073754399085131585430774632638263888128487507558977516872843012201634567157494271366840427333726838450085186572643428154267609034181142211397025423450872686438286216616276642137476149434035524408585941345116567317136240075669525017158758839743617012993755216518122542947560482544006919978254373273538396096633345760068788099081056929488292433278254573046388705182320885376642767115140242503268399356868051896429154413552294395758548507958794409149329465726217343653587280881207684697207201189385810877115496156020626798001614274595571876208288662993533366538129933287831797990114126747616927283803703344321808408126844920252002099077371996868947494659648090647597856808700383530949709129541200735330774189918076162603146432134249999706964513726853828697252675216340388178312814085730125292191746233418754650018980696467576119431929798325427670167760788384940267991603265807051448770462818993683487505690749533585591283827271532444287549947054130201601397742494713323001992959634364538126077707913804306315531255593034766296099772962324117350637950050789017514338292934974995320742445329708466373887311797190938886191431936156648660501580885333084790863362111336585331276722728631270315783132133521361164874399367435169797089836244617462031356936923213823607077600891583790333267411136582980023947806964623700441110614213843807049805456447022202956631347129466290948405520779086591308970400440393129742710015765146270454918386171371589777034919705259487295190064123986248403135261794444622345334014157426062015996038835333940217776022809981765822708458270102227094626232945611028166230146264796147583050130989653870002945651917048974063025387508044493540294604267216481436773289198843443795487963079153995627963519896179498027901944921013716393294622122293422819232484788045663865340145744887761369405625468856235756863057548892213027040082715270835967211150931979424708438594276155581353557275530348445704027927150713607989293299405090687947771338296819075852784043610103687855091924394218277163862545568512943549927003609574018876899072014978284093409167209452555604459971059817518662129655663493326492907971223282588285467664977701827329422496082094226728312009575290353914661467696183360133612669900061034190491499137040874931580817777217188528111084745712564046609621569913332147760727094666797559779255520168913709273683594377007268520471332283653580243511651557347927381355104154049961175184206454528676965253105167811387662695256040264486068976475748738740941998181265167775493820272551052137609589243765236102955635061261266343271175504668598715034426129994017079581834926479090583230059050792510777944299590406465270266330530727523803971320435438275165492318104664541614750147432709239226240434754927472535983251579819310517766349953697857843851434590427234204828354019079164025725825394893784619755325468889198029106358689553572661240310738213333701676827839221915859603026197724231628365875769028074199957574259384075719278285052453081307429215759151285947916841908426926753738957313709354781705399572481079588110422102014388366737909578004389960394475695425342630607718953366220623083226827131144373532511411103970975038666889322256627666813421824953143816209114709858153558013922827601689561566183654630869777515528059801968958729493294457346709763575196534446777037676617848247696967323781440052328195787803491301710634658600964787152759544165218665712084891227178702162408219457362968981397140160961211915082532724346385477130613696231749279316483546409956439829838376901000391851086055441467557155354614598154375941087097580746636062834802289370348658412582242815262520251398823870311675806666894309060765514555861555893613369665702357974455768912935634539939926072136763780567133744200910071132997761860337478572536417545768894378398481356786876913455821313003984075088045512610359329349761766174506537924783327395980924632044416619582631184044772005570335221050464375757032615499010318011992967427099757317976915172858664885312061650543064993552320755785214929575651862741080690419499608899406204795049634121290663812335475991349722405076471029862868518059353899226042809600541731493145712677502674523101054769183069873174794420949609535472870875432163028222117856424812690536836290314079861577314943565935382748869923074256933247487113804219312301206382126306577932707607548451705904757017006235204614800175059450505929356210026116615122727609572122483850793052570420936783421969854486897837606249452931526768833885474127671369072286405327175801525724474187014020145980717953266286288696959968605251612012715037883210379203289490044473722004229319272177992670151013148996322954093973980094329760921662436199473781223011949611918770869128949065518695555010458737503374830985621058090379390973830169470794258336433923201559558043350933598437587940380098642881951328408764206679433752030259000511230402145021380496145249598517802667275200743986139161903163206918004974225711837684632978973493412306308833166829668693198114313678344032049832731969883458066411912628298442230948568833306255407860615603474321631404517520315858397144116210476799655011786014576556332253657471790906329324836252190139589751835485974021857560567746492818816604717348350669092175492435591172757752356598076138765442324583519774699886801652698778182387643365570101986676090054552518090264846431366650597092695604669092781778402817459412227825704570792818826228225723651462953504502162312163625751193006803889639272056996179471518686261606392033973215289667345122635832487103822256402697196803000784127539341978691321009725683535242841931467880272147157972301767361991483126045791325283980244064021451470945120491109367416328828153936275504541931873585778109167968437222576105164934239687562245944376077413710089129615646577534337997678001853034867510462123254699774620671432396630267612372906877018144003494110211719523510967203121193872700718035125264129307106570528926991445923971661606494794701876991321934701916093431554064480934182803140293368255130312159593689922400065205289039856466380123529799186836942047648918404775928318831356521215442163831169033732872651332307663023106606108429121208681245848693923158737661260013226097498425386781679409778720969218099908156229623232288753380022512675523693091040723152964374051706295961830679964419769051331685658615424107647818100216645354422577006544904073799758795501215918474693027189733914081674066441218416752325407527345771142328283113469807467538273411813290816238151443885610767764171974869849770784391283914390445698940637900820778142581452863034928922168689094010481294016969143268775571182167742816521640191377526373665292812088987117677329944410032514840875073338406140681514310538270896502214331636578717152359310136393784710516753706638618256845559551660398887098370530312512498964914040059748506939909119783910710024847787199409988488740273484192905370483619924622407764800291361311496689101293258806005563401398913037119567029485498090838180920657263051834238937103153556521887252002809986706232097186158264125424005549956024073028489126144672564415621771980935568643528713308583292306229950147497429459776654561070994443545344351158409627901843661313633832818203523746045266953756129480201392088622497693478140663868515762096604428280412805026767416002657018754421918573530578853581979243848680315218063180610409711194696687177986878139922498833832750065627704941387223294334873959165299189445496403325977575345867884646169555219088869929178574224851420766825091832772598984564183292842970630180687693292626765942428688585192526721088643613015078402260020085680527931057173114124522576442642009433869446406348025038472257691248274195547983083660121820563847438772127860826310665455582079310519621001897969073880445836739238688653987191436431477660976757338570638442111227541214930523227896636249414016053004455533963132257254210935684956264851977417272204045777958194242739598714391101102620591234061014323844543939657099582418933211618155610294322226428501963557150283794625707543005000094915362158324867853500002940804367742610406500692904428233874869622315117403949270508900189237186669780723215310369480963576317461785844338297267739230901656152899000908511463386441034644322240250549540812516230999952009515416484579314024769672760813835532097106425108866235627344358773424989349245887212125490730015395360038481319473164011043556012503270855086392292588358132609528884975712433428880746479793856880192868692196515432245863151426902061224941910012137484323080845012596866105754625654587382839952916060773540959421370153469616888743698844086670064823177911061401222139567121602389525984936431079650898803444951667867557527197779496365190377202152626336342052979316119797313270900269873085179157611322501965418212179000063250653213790519922591871203898789214485799608589246646251690577997872487710389310038461091897162243999557632026021290169228887394797501738339163371850563194401603967481281520275236784168159619290659858983790946246511691863284048517528652304788370201125661689665145974665094815438435002991522861543912067921737397005297161750982125552154124070220767916577624333934294581177965862093271904821277763116148547441537935488710209066314331296893571430494456999142154739829927491984322134186695579015455403206317050079719311680582924458311374609829158781165790167471208919648072122836753797411778152619185153295399001927469022803188999489166735306218780482195556913341364668869363021680972198975994172068295568782508580815221208353866020689997638644523196301571646793088942104908549729543227888834665221654783333617235417256349002954049474637966058570740544693760351064532802499211523296842901136158936558670601685976451675833994687937883581702844215019464136402143838208257434719521725265693756046755162333651196278783043972264820202231196797983765848691525800912743123721442054402698610465428442130829176221277229298496027631788792139565805942198224501035029833750899147819704751315581310972388942151818739784116656586042849529967804717967311781947851911991496934812830196960105609560036931216315762348504663774128133544623994204473052334680728667035910699639903708710197085411370561063523921454819352703626504910006478256511887607638403736182431346984537768053618952377412813637259683759520382810204744674107832135179668027927341515210661124598364446566582787339143009160202356630190735864120425902794604480572697523110219161130165801148823143652727217134835376954193505072292369387334057668286472602387927015969095798641402874701050480404078060816120811024829454111900883494594418574143196789079266454988465008955170455434690959104792882047922558524614399072343618243227778433417765586150723865672390502539325117519168909345974474743123317274551280005556499963290856364772619885958182918965510484589179398145621281314414693661703621526627733605519186752037542689281623217111051805580810779445287971261185147096449966098160404306415985769250330925909885981875477681094368075287203331758012644153450666084314150565120593469672367167781582732673565673315125143679636819119162790782765762369024503506546354059951038766432579652513434149159187177090142800785762692674952407667863466021120076049696317074657472667966839913433424969020246819253102447427538804430558066285222885709516991629619686341011957124200522217818554792127048408597884302223615062849467529935970314673353759985483966107051572182446588430029621611381568308228639733296614650223517903843556378475485423740023861910720203215728729175022365469835213843965794844656818875583735001724375789371538249213340516685908984136718260485920634034736840295709961166208281649222616230334547005250194158091637806526194251548349148260945077425587192309932288165463965878140831226787003089690259590241297086992754035539769058114240009272527691468190175278588607939419328776577564501717190156665662158280001232039315725391975027166052401166541603938340509934559700653210602777331903691634845856597228102645108185280927780699589653326376164533966971039951583943521196489790448248372544291914539518586934976649419026233065504232518008423542538577562829689266656790437771856152871556816887564026092612988835272994843167072793805080893102013392902845408692600073721454832508540774173963218797948215030796818701231053870360979968113747797866459711303178770827516741158494767789019562001077969110757538424252749574225167658657358288295632547494551356632194843625084077186472462800892299459613497495235083136354450950047771410902249631533018283884399980441049676730580576027490830249434623189590296192591353876604117438008917887643068015601552936937736810382798500699375499630983445676778991947050117495131320435571066633580801987883653211593552841655456720321687764556871056763969421618860449056991584945348994951878500362087245019550707409274304580297436041591164364459228964038745090358171645027012133737869765640137780126709272568158624648552422349495005255766286982139786325379172172513591576420335335371682175306297351231235260255194120235137797851938305886157863359439554996037326007750749426445793144883840574169476215370771423678048151866970035849841413950396645252089889606789192271250962620729617406888777057174144694734064479305997412742367453066158024207517107334671561889523100503232783477314946778436793654078339623217217349302619508188402412500579798878337513573665082312852935042471012537386265094207535432298406052749439976383188233612667593700636142590302470697635527964337790145407286004926233181205490986517275364928045657966451391044890784852319973277365034842324156548573626637028009780629937796497336259761797678246072293824522112642091145843569664127939523079852018641689350313214199496692325471638296582147087815908325404290948445318035152103542597886992266760272109872537294562356942954716518035832703566914581518696917588754503431469461042530529050998777786411440386683650284389793781229666656293579841950767517936080931760043889742229806805123557483202217501972782510013774298875007244419522288500334838746147381719127001711098254373020340747289354689855456885518470805256943387633061787366381597615983688592618378323718907416425758163410737155027945722970394122330616070405368465824293768927112257794582653756948374730213562874357054268752346561443381363326742601762281423811684002305619714345439850540342422160293209359674103630005116901058808373789261184894141145819271629315882684304422526707014043948778119997608525004660974075450806357303534193986520987658076913587243589149557167228348035368171638451785362645693139963340592411798983169915144465780318198512731410807621014763455186209495293137565279770540012476024484581288581949307391685589064368106698880727059509436915723791621380450611353756003242995587503493569386406109506059578812737284717820747755967794203378913560603952373476098711324371803583187626482177363650797521646466415588766586732848174000660432558150252387790421330953527644177944363673277543404695484267708242185923057250311932560752383915280238652870258911927999357283658299130901495694977351278657631714576944180026147683161130206928617872599229437984251598167530665428995119358065898484220582529033494349572627630797490028007813065881065068957044353335110729893314701147428052300490795932309226509461664167666277542814912219266422066649126772728867207184678909673663907305005348688232614626380318033856335570608274492052308975962238869008699166105819036862767949782363571778978792551037923644128646649225657977087254404227026749815551048109501618456484936672165400330599649095179456649173162014195931604810879301313518534556488359142921444520619443840743261440148871949667173283810128663683701980291573809477365033300855999805857871666367593344885625534002077413837850389674282651178884237954901717197636386292638940993186012754663234819288811206289288131104317167228193894046705400608781465077905958388400480557170813603905899712664124156580111080084113037641477750864515581527753613735249525298459577429206145215957570670703823770570088109886795633891390735028959214098273958897340532951812640477613018097667123161137595025404543100492842509288513211274523299424621175942754424905329195173302018821794244384270918199712981689977252101356310985185301050729766346420372801632255898037656423150381640351661548088538132716868138970833293724967688046043154198167641429409942142548807763398334539280763042242128774286210965225253496347273090192606459157529913393234585761819803801044832945291947821604661240080008963586638205612929306675813755573647367913159692015473442362093905625133166148189735279953356708298654263030975854226789347476027061182631830609039521490864246280628723808180834367535894171207205847116592871867625703748953325413119131915893809100536111645537928918923838127127715050544412110357345164445510743505164819045639982842856061801552451621579189164902611645255427939564553100824153462621398570231776831674716236786624407738502964641482891058307049928497128758635478962548961066319996114462672412040868315115769040467166853608312906703297357454944029295245905654114413625791096514038224295783081492676354148243373375591575685760978514384593307413036009037654200995084116595844374239913154253969801235357429569940366831181568925858840738159717498520781684228075818032557924768102204879155621296827506348986204235825941190239877916398105438361045434547489957490188261195361874174165993213028831269925596633331392076230193652041694650586952510119179612651805938635719060176667583245065863165536195982420437909391548478025409434539832043554413680307445416234185763003748767005030832387726102952299544065200189164920478154570048790391628241356720499917225231958680543369501426241649242006213819573373015378470282934869264023379127238987805285565251244323204335476520353658935851322167686739442275509861115632302424387136774616115319603992601693483929199372508651040742053566296717954232555108376896455848341691951125844848342125689650100455819149356216412587845974633569961485552704619911955409046482155866618505511252841147659234640595950928179313674774751488828823702001724056055848248395154301134403199509294694830291387737840474723287568699256814284329725596972806172262277389883842892331590104858037066225317747893683644728751090290137173976647126351473574342980731542617612346888233136839349122713403995336876331654383009019316233249353140385595269498936547687943786616270948591320746763233974892703930968770762694029946452831857371772784365682096507142802477896928490958355014473060874209855527581730120284370234064564568138638967330441013856941015684212612098851218809824943886120352375817063989894934983399701623868098723290551837366793340134136974463881375535229618010568316561610796748106637912880851282374196121600904255099299271535464014306264107385962821613419314623028491689878075116396041528189468228874800332178696109163620805521625135985938792734502564001189106382987078330175462523746244486795250982296026988358297237284087922323231582512936757790733821540546874965522583619266611237198912581531816940901569346228687131544289233375401124661821219704094898656276446847770953594754045658518695626830875984082832983201789477156826266903999481415999726702186425253029093614944403889935602374719136719184274963845783566917674548291477923681166717345414228881141466257247468544631435728498841137718106470444976414230964713036242536992075618155746695214482670153875526904031878677301230466417015475375021231952486754268390020687595428278067205548784680494551142916905247570791718182558350996338596428106836303086130604570137648607030009547943274235772164470306077681968723083914345943605353710278828927634437971993787183922508449661436071311568236264985100508786335535403941823454443553164841355940274507675075512201387076877924062114946645129674528811611576615758704763845486604277624841453251886308452669202606460020474028164208177045478450030057807072033580308238327236121136846453975640661479475532420540624837362597820715955323223731619873121858237620287850394154595877118163007038870716474672764356007095414968117731285271212425196201862641755784028286255243857338740796706018897749807680165830678004013215043608328945767581858026349184856578675112186587171089535508871466860785908273414061046698745897916647302382548638175256736100722202173836471092274261298354946848447902973492748465584954182559647529593086151457997439118449373036202616252791169422852724668147970034638716057399207183166428110712145120017979855599069164798565324511957969097802204927387803281882423616431037135716705197690490309605543249799175819021026745939164840287333098960949699165480079923353066087837681035838849492751107159599691540845810283875457841261255312616270748360225415108168791424521183631571345277906790255662106936719147837952244579317035054520748424027198558508845265540574754064670683446006721480846667058646404687019247857082534430610702412240170601043753958748611200200306358102754304442128493066159693419961857143898976752739714444576876977942851363099300293363375035435794801662579865701644172792089394528890019994204997030150500839883879132090857586968645822363831520149126840691520214412604954739232332878533319894430323497962417253561698941359000068363323900157122974530297828455213896770720765956189383794154458070632138525235224701517973282726929381675583677690287471594455446545431926978990858799854978333547793927386711768847191240195733048328148350337563762835208660883439005743091685757751021586685624723798359147411943939784722957182530513536592032515619992550824527036026767111096939351487075984042438684809733210825130571151284025605861981946097631593112661286657124728466419886601248851048443267179424573633289742064341014574119619486186672238510059416705954611716391752161610597572901288990655109875406341318827782215639568311942941055169918342870714767286650415247233386462833522059287419512547913680033448262315999887499979891876861398690493774514873551489126627881040247297975482397219672179856244387659978873332034059522303407068894618813289728807057472008809005213982290277928487826000702349446300882437090724024898306747284288028613366678288736940347303872408782947429138729634758550521196443891913707708491164562049326112456482017308209917125500108428244615113526707153959959135564412488470768073783084002929322470058438100203381268272741558035261736146617337680580006595900498770545746866201078732821988064506326878089385234203787537781593924436192444879275536757042923156082091763563908390166796715751077605619720467301121391457073039586178092320593238626400528843137727091080891618833657887350091212519029844436066769869623016692095081906065493963140921676378781595833586706687900894106293809959501144930665876496747072605663397843479783704603241837002140924383748846722534514067353292820925352251300226283615281213606852692906544171834374052613134812121019056115827316805566915487282738947065488821542921641193023840740389638019280245965519134309228400177690730902244518330550249888391557364979481834575039071599906263776103315589658830149528574389604872044834800899332795434097366342537698975743602504156180911579923524308441198862553566015345890845369294141007118056599119974102308326334073883213512326688597415930553326600410385977844451946273484666896732899694657479800929742430970926681787081920813498624275999356501745247796155048411851280689644375920430789599310724863316602264644618535011367417963929957586523533844694037073789112401828094312227002487100225855878107216894868793720636764631021267744479502163058824880233216142832259782911240584673689125729687021556883451889447171360352376750215041919967770260146446647173269861132382122046136992022976516371523080637847940853356245003714596831111106849352143059288799986876286711701016182233036282272145065619082703361964580818598214760456358735069059433266992937203448651720767224424090195925304618406247338658336037304262307384659492686272091814000741601318865058956046937511674843881096896497377480223997780998141865414976853094924622700254267616715080297921317530697811223709518117249619439719703266519371547499694374850819839535052380640162089517215155521808131072562789895250846777759121286596489536306667515987283124219934628780267967680322126342550809267229848203759939914193906853982405190886389422315282406479518951196075003972364240198115770198656951720162034301886489965902684629422056811240979499450124233526842936151057352144116032302674011146552330321037543568995397768109947047938587512856249448873876335871796898499505862716550189979915325919201323323948462597860318915800412447113465200575435854394144179005110409812097302408009710072251532962537216698457102145121401339970802126078876194340040341723564163421857300853552535465294843394537664933311584435046474208189042563113494115417685656858936235283197457644664731811391543083161100585365619660059961912145861501815529272280498767288997494258823398746189104819916885630326748008040411013062170016278003533342566471996670147946845738654410131470089680317090856523166488734742879834062155738031604279329533272885853916365199442787507293048207939849009562987326159297062595443767798080148993309103753071672985219647172897182872709120115951978849907838321876052493622830647935407942440495132033515922458314552598290513950706153681903141825920433493072190387309351130280616579772202950330516476698342897128488829958310522385930833347556169083120386156593141000558550484842838605701178336304790663935577254430250385319324507746371109257730154909077309411249549606555847911680406950308282959693506421196090180295614471636771259938087610536098612656405122512717374691430035886091812567185841458881071272981042680234660133994568189849442712989482093355496868065298626579618314657130675747977484391566321465567499492135833465689251266106933765159050546165653403676784041815635833533243337310583718418672702066758342884716445369772701777332838561814178663537778544165670479373256956285841385828155389765384751548042798468386252791883468857900073953319372374220947900825024627377857956943954720329787046131431770657249065123836645022167895842834948772467879773260699872258545956396670426630369211348278613098735752117766408728841498205689432770524069315891506803652062421722865676292193629658439076957636689702019399343977704374948124017984053134462254317752192353573975209525725665551642196350140224652988537097842049992875783348474423315834381856295162216769313891184150597397313846212060223543294553831318128155709178439851538262746677166026570665787570848789967142116948778159117862139792776581033755000030699699836718294084361087686828878149399163867670875137296673704790587774507558834648190705625933312408107636129419106893165978639719696534263377568536208106569692936852471470836194745568893609622381704705225826087659675421398481808943120548529469999770101269685754488003978752046294313761445888913429277166718692327850605592593352077107308268745068477605078158538387931891382709790809114943744210622042367204613517817025719371602629875368369406399188187978152629308274231426514761367705600960111832788782840365734900351744696259257023409132551808625831047319310794428709155520255639931707914218606341063071625189364944212433571109060723948882886032469639978639050347632539520933338094343558412789681020034213344237970510383716709900347445409246937049221988490104200369632857841862093591026026163003392648081403488488463922308486872707822893286902013290176136271301888210556398924164391647956863554616827147600808304533407401467661969400387694300905092114688518347463445151431757796609878142146092326709123941758287266077680546225615408117054798959402820846822954602255948153801243436547954303751762732137420939818269163163972087145875422723144121713791745216655646003594276252863500870073071833074660701886061825268772166177880047748489563292702150793299926398348922235146203282530848792756743447106334667114225160320784295197334103768185445001556315421260764125789141840030506538660381156784985609405049101700413340706747176524772638782567076010219916143961814711706640260898234619417109729761947491383938580965141794222394836122742251806906450039962102401146568066625520958518679729592493470099286805886297560501386077884875815533204509973154969470323650810189191251374845671523102294676735918432200062086650678415456326642853499570237546943786768220087946151944101536882125015592517487112658165528377998923461515118160487113227840775509664147661881257685258968980921290393186297373037925766234356968491728698677489089380120557520742134402950560133830749768165669242339100989676154615586758731648344973553759928770899530833466665887655104691721459187927890991519819611198534544082415663029191630772019732445988362659447359909322654612577490533994642972442041735784034571933262444157286391108952651414492709831030974082830846617497617956989550519172691795586169243991395471419090035637968783316129923310875493952922128474711532877100003539909793564737505291889828860691655465553576125732659292203180200067718657721116985067387331105756039075889818564534678294591537924126250547226399748372095873825679755774153476373972665339593854615365598058201367002377074106091785655983830868436171908198694586732016154731976874646727450113871245864225736712596499659628586271439633826440242637779417472949547868090883577796694547325869193159098053775102462813317131292932286847086487528940813462301458323704764894373292196941323742722343638376657148902777971205215275161852416063232113627302729097714951970549009959310402623856502022062154921293903568995794887624690506144221542845871771670583184612025288649762978362379322056789455561432031555943392435395674265364605995578591265153616535160875588668396094614298392660442122993309362084776590872152752781067274650135593321394425069205485361938621207354329275383277143162742055605435411521402246701562142006072121798743893176875072037443413137443512819837238950859453382247702698690896353888060091786962035782821422403140904793392860346642546147411401559218033766172273248506922935485924514869300367833100725678058516562848979884618548853784184485485326696878044902916418531676285988742949621679014118801148843744369939763908160014474673852062374394728294811635933449933377144985329156734847034604878451438574631344367956571701976009599238891332807924810291964024583538122799652842776219375247528383696276902635701640849836457073543705620685662288721374555792825669400444655041515714926255180847712617786778211636706060433715196383365863968960279520008530768743039659321914173208929481678866992794007689781384275464565572735831755464510803604664235921459963602048826143466347292451758728467193569895892859572167990939288055998548035432371600413146043159279658765575926376916728760209682957539416997202460954203995103197726626883932947666588872327956378612855553633765680351480692507730576460009734429327174841217413401743526650588454363785717884390177301769359542721029126410569622156074723192390742734860024835830277297455601700349506450200176546192749853824856420957504812458075129744096835614027615898514005988243232718551301495950175658474402523061818085499272711968043528053876736075948031604095791769003617559379780279801324353785090804121964524864193920854692319813458714428814135732562290164592176910824955509047294025601155529398384942548475107436430122673036533501352010300322784015825594110474289410380601682817983068628822436808398193812438970937790220902095080692554634014532893363394487517416939842414896988843059097477851737240794616889667062039644305976606504119293613317428808425377675222433488593359729517765046014077567576002386891912936231936499147065610008336090772105760579353328207158913439797247684370486563808093486907025851912844164222470176626079552073189636406023713494592315260865435365246328124916289405854844916584853713789678275570590936743457259989792892142488064639629660535569027683228596349683763619271806291780064705263679882157760713243776672422821717909734820262433133760963494078086403006099815296348485872684127360618509271126645153348599908282356600681794552293302253731426579126837810212985195131145324020262438538116006347710769346095011911513787959415830923679516839279174802597135992545082233398348961981936539105445209538906566252678980272780439328251247775737615576568813120953279013753961382218152215388281016044439850736881375390065683143225894116427585265007681960085781754430788271279176296075696509389448031171437195910302424161650102304401122747541390626649563015877546627560924933443358464298819306586392095482285022864086418543958038677215826764710357617004768542939498949202462795749789494905028321405975239826534865757550618100573691812290237525578855299847070457079368250076463228918657786852318788790036879957358390374380394088173558978200254212350918565763024951995473610128893813947650522170757305967216675703405519321919915961008791063918518820282174689744308847195375163692687397130155237900230184875533467648564153878513388092376912367063869518176819535100159783135203248146670268367979549423780002241043348817116348258205915012442389758560601847558467985798790103618531599178892643944304154096662685717672080671479868400301305341795054973161522583996729092975858908683337420788466647347068194877042499663392045150114219119490015093856390428401669052163491313738687552689113382081745058394675276856185375194798772094416353285012459474236008438709875307128458524730179566239468638577600991196631036218052985673725699535772754570470230483393046136426750343827539705907508593830050371733056381277344368405969941889378780483810117783856777627656345909144757898119131659294321745625431668302527932134284802368547990381251670044332504230966305011077911855067925104827844661114749069342335521081224932012867850000983650242065329648721068433272072306881244050039089491890438045574750850300830623139577689008269910641448096405914296811242362840192417072856136696199299258833628454070449581546512673693850497870427711760148790094184573712704253518628102811579968054798553123335339363951655529515008357965792726726902380462061596294956247960294953256594087197600655892255434562256298571473941845372187399530025986117130717907061491408810362475356607104308300436857348191377204589815322271803237529146371106208824404867402331087614438218372330108519624274495984613998367436831941795258306911995512803811835850896604785797595935069004453993038260990830104438988568331478993870342131658138631787115588786797598144906816641677651927301843892389893514802440974540370009306927460205621420677800778319338173714362698733743497485234006142726989915016650929035654478599974879625167310815354686348477439614757495540483306287253752532740926217474467881242022125713052598241003059150195733394713074860367474448248261688928351295129777050274716592311996389600631878554632854626164631918313669508302041409899487214957024669387725099777516492508120905294023209749580693284724448385037365691042344059565958102152725847470959200910895258902194740012610279959331988815765832953251347304799001882465405029849824088438604107221245990252890737780069000018446300420378959926457548591808502713079170058018546613945741492948144477026309165203531856489662010820047301388209377103609283492415686925178828656556378998723134883754919837225589669294835628992176265752486912260975671441586116433290415370981774188704302249683654298496714162554416247699567250606068196171608632649389355846648092898756187674326171931209811134890745770422355882446296115159980235403358676681871357076126315853656199933518929773283935739090085162409047394464037389412007696960671386488765897035975929374097764460994658320452388168154996314808598420074932419193866347007611595697140726151140927681557465103398433667042435383383412471252290676467637969245427614640552201140713888289532175364625516991434814345835874599425222363940678150633339668250814040512190579174154119854307635854789017374662958874860432747106525555426893303239864379459199659612101163457533626787809502190779480781125054015513397881593885712147117694232275378361202315635583867870543225267487231559850725880043544150502644416813308227739656501862768737736060790664732347467584777548274381706722031997755406428860099208627350225661412030352899780185679824256055955971956005648059359340289379095345705356168313490729718303227702189653970468493903033126938245596155888678429256570815153255116043469806718739830519132173773158564426527518774762952692448446236273891224510951534910475248964374628740404954395675022829938188861247797364343413650693327646635311877859522883093770816442948249405024471941566010680904741348402205798740219064725283613535908765247088819398022558383298639765564677045328436167000109655908110058122056423736443051587564200759991115906500563253997736062566966124215615237162635694580214765282605921907853130817922443182692434405919595236398161524004974306946654179215416894854169282943290137789213151252249835507154091166486286204942176964724005523864177297698918097300045868023945968285987889967985623008893575290351215568175887968155161271626731838614188534847450371492826390451319098043842253789163979956870166243453327112034494119547287657806456958751032037865859640012129263225692498981038978247686220955788381511395898226471305728885651882984000889256392222306488157343377981283289462259255135526594563007041890071019102345737994382974995977688460666586572497585682201362129234455666833144535339703310021927460328407249193210307166390445012853116030908820159099655522993496517051577794970863429924227375318326231347147311560922637557483969445798409077358735343810057799123887432642625368635054670107065487652917219953824788543128814033538091467224945250189354983413160852945096330764791805876292960138817499161222881809129175301888284728557036034547647250507136059186409122567457696222144549873955888912690976336258490363427748229733403681659352991398604073191672312997408153412978475114793225314661829250566456761281967694019360286755250446758080397058158869672557400118872426696226419223918457095438899181946662631586324200591022834251354812067143388772410160139309050442702680001783814433804697952805747258818243730233173405130527978201096480996641535979302650318368104219206465938470723111089790857941215624666509308824043507469332271896307591307547882803028488154906193970966413690308306773746381916303497884777533442150813593547211077840071782160581956183853356842082867081634675524707651183915067300114292782569757578476056060924706437357970753334174628509397605306395229459478865936996224801661319099067141730201681350822420048321178237169023095704229214843366546059660850734489792392612335772020781276375357340439595054557674018917510662532432713659617392085636277307309665605626530862408300898927705077994487268414420532896595420000840037492337852307442229687473913975625967606653418088310282022543395865026534584751322926197342161756079014604758965336253535484402676586317014477874807783209585245871348253686957590676215701743543005020944328975579332840436071667187803705809201037293316009268010036372925613106437471937110406191365995441223119426542886070886044388150453447876359144584837206051191615683425497264647269219404190971651154063869107109272157128659544468781110623284002404220762502998094174042249985893270376575251390180244077966305222706143963181502024734934994980255397346662981842180319062882234732156367594378704502077878844729146519885146416497186367145611322323050344795480686892282601602249086716022609488778024504365694568438972545632466814601251267680329718017358933368245342069525749781722658000964149837084826944954169449866902349894171023767658377394717537251387409496915441197347105581787819872223595942713941651633299694458244007188019701126961570842099296486971189185047309140723765523203954178990240117955133029244043327097131432121533238298148239670902932412065698148964906772092513687573129723564208593280346001552404333124172068084710705996785740855513891195038340341387931694061120787382988810656848790128557563370491603325923395763318877593161446650751859877581335384764804923834009452942407666888510322195684721247642211193302545000800696410982749468764325447309791629610892584208356166331731964357307508387228602580302633294162329885760826172981721646387609577132933592484133193689808142406476453344230123900280161162284589275592561752872914293541486457799889597830983875220077112460816423607965971455780854901285481510993249290046645239800953077135717806719611262013698436266652011001469017257816206137571052461576731119933132221931473231812550881056898205126939017545694664215715145246809363505321036373920286477571528809768483238272831829084172781074697452605725202208245172649744995288495178329008259918816804091053876763834494751498285837681645530779216610183237622190537822641414581698600741759921165997022327453110076057146801325913221960821050057951416769971965867905445104651373989758516213267836579630273336896618864122679535802953259155812337289372897112344920600321611917228090399889261878225598302437255550353308533913055274078192637746339387715529333312629366313316971359816190472603776439428749611517342777109804001893987285273682728377246419860729379798583091328555553619801925840391119023368434325530291542130767566746285853911692885048014868838693537929922647425351121074410385378040922521322340495943342757983290376676903203192839110644185045493188896342420266912388576316583107655378472581538755370336720965319863709470202382047679561669727998733155749520650489239635506089367213145560310858951243379482951248417362447515317846424964662470691138200311910837765491192532680545642670514441419053649218941219606621642966120657490266185437606305471564452502228357597220423301154982322741250904670237890936792229687778242702909309868290595377657964247534204906584999606093338290944809322380867816468374656697943641579857114801014360007486005312206106938443481143302203712845114124744316652944366214399654498351772756380514125648771178175004623661536288706306129822221816141262439813962870010689488427159203271103278668665020259784402298247941630179319907612132557811424112760895834936480078986300114764811470747922307097962978324854114148972022360857076719765251345207922167716350561762199006302288813044651849045094035579940955958497411105982598720535925882156747214249918785045762307284374807815436188595752984818369639145518655301770091410295495696536244298731835246462772721868543015081402116768475633413228084638492885060302169030241328416521297135403528617938237836042661570756077890380965014925599495014727682360820019894214453805725179812076607714279530855628240981026215791924347801567006592325471188378032782965156057327080362669731957255705530920527293503726850662084663115993677157812665526212171621981274255672181137317837684081980299232614878214343051170075534743903188324239931768422440674252491367033942702226901245320850335998985051163243880162971921809813706118835463676601370898184901930064749459112462537922789952503164740161929502866067348786573009820093742766426682659506881078829397640528054121151836285596081663743741170303178059758912545821716605233267007048572437325897511221611382473893590412697837197679794139137956494034960992752653307295429551593539572555310398470435807411472106179107094687310667355241893650534778221414787149868177570067884521523675659084391571986832134906191522641801801641687137347383709914944817383040002925789885155600187470977689975375477991942650315241465709697079395414361661365956079536226310753961348911957522061396206670664685509152916480421038732428931331448858282698147285699473116732227949381257102542445566928296829813241451347550493975381976286929794329291901984348682768440747400330827618142687061062328399050820764507932820863981968862175774515649801045477797697716963541094060401596208543442892473628254890075567394577540459109354349084435220174533025016749512647380134305990795112176180120150429799086739351084148054904145713774481256089496201879976979986584092168324845896072182068636946098042462996587615406014909367905870749010552649860131595731718540711166418488319873487779384932982038990785343482002424396766896060352492143783819182021527263060537054543805141866874777787894879285804608394489383159655293958961438288850859699183784544538932443570905769260445420947728486968971994915600857272799643937233127452950192350192384034826832060673964140468897923366534028836173587301121707716173500871830378311163464164139239058664837980047841045022964297486793466500592734911683789302192459914509861432934385743604528404743838230224626769290962991484801459421467026199632997110757731445841894238326033729407175655699739260017146465738287057872318932524892818605701778787100258941077434233101419649411413932853308721383945867103192783084170774801242597256909759830598142915080337120304062396452804522212343492434041547999549868402290284104448746691036010206955829107954025883407429856885196073530068181485543498493037927690958044534735503967477407362000093297656835846137035650441021366407728631873910451227278804045623940753563458703543216538159037139680783154443334262090764692130551113902186363920722195295943796601847291016166495789706075248213805010067463717969018721974026696500603029631189405204627551959852889292260766513636355632682734901174767500514655381916916520885768516483389460808388426949195607441557174497176982345251326649985623406825188856226223112834919386620807916489354378355053768218169031449165557210019808806942359358046485876218272393180420969745566429907694430969693553836622606305900361779886072607977312803169086081507205914435576640742500349329631720466399575433968823763153985201855319089141859412137769489910157589299967523189443975110890259266658576183839738310532880515609274161359357279715484656476119153052357130371139833616302180667155505606151392637606736118486313968337130437203820932947295592945031611084552053248183738082094325309948709292820631349685585026370493722007904660825540038581016256757635483852547935705999645792193134316860077643687861865221348612510407942761646194014907221009410269966896995290771273162343510548440513518822678677273715196178853540583873885583755065525149880315315590041010324825757307247842415589394186739262785631924848517881021760506474842688802265688959735029392141057311565582635803826862616833620174181757226488346307832463511262076553144692648880762358322087958770138597476744581836917276833909724518226771991503210753779376052661881496165047396653790708751250458184629055618752159896332607964744704071468649165302370055032239553064322486386048491652043616536766147618243476883150772151470484592383293269980019771539798876999161603568917889792039646828053914841146429445871466884677865071303994054298006680201765403378559714148990958814018078784805009542266656129083284044435199458575674704867738514531761880849680288368148171331806631632723949006927116809885533654253845047202006712991660506105985772164753178284950544793978268607792967717635756437347060398616441488174047772861526560541897389967138276867213445018530283159416389255315510559738871542269431849699233830678131425065171551006001755159328478906457774137822819450751291078048450951353171270934874975073013315583700738307506279288647425769118287258854838696130819720423781283917306105210871395868404694863015380228269815945981695854108974068876290553714562250201182552020395789230391357697433298828100681245147835081832940381948025851695264868044100363399519085798840095410710853040881473368383831960425739222235638473587250111457756021231828319850979416790382592507922502390593988541727980091116666604056324463293865876992797434759285427190160943142221482389587060532774572866774845464731511328589127989179875454164038540281034974444260054359148758088045022807468192593718539828000745040221063842586560151253819278786407208907825630796266246422958110485173647523905633879184479302290356869383826915369004495021934755801737019938735196571133115475148631443622129793539734131175177564022752979208252291540467803888342623051103575903234403006019415457465654616446101087510713888928512288137503358766412545827874501508432907400594711388561212707321002855594749755017817900987651814576826550434734349539491915529710345262883581088862088084316936439423297029753342673878616440752117945347714901611438110571974822583263627849680881795611088446055538622120412586074573310816509274632689782194661820977010007288481508953707178976922450268781486006322756340022691745918328235314232920947574726117323466822060210451625070936967000389391672565307463164234093625811051560325398069448105040466131884875761636262450361679352994702524208750072145455885649507484727520566462380214675454586259763085623678439934903022094127616327722312818821629119739756064879812017893938103717660356399682703373429564878017349817655026347994595283072793959588489937826583767140530085130420776027615136959344005623828669107203468874237695640943773601824338612338848779503796546276530635832943773995522347827285134628417283045698667935595538404898123098880702144609235456528675244850293766721492563151953193005647921687157631196501988704617757910274802923129582350709110537583685704410667105548287407449282056728659866597001383149135618573274003289171548936004366051069546916736771519621437168540874733562863321580157200853591951566496453871577291571406922063940261510317960551096849933331463183662523526335154659202589378955241980292392443970531530630681481393101624442501317456018080137907662907021871228063642172386513373725821053324929613402916612265424699099910780438319468537997481585719722276319196007544703740365567578412010829691700623893277436983785411968846093962321064362722800968777674845975458900271059367796998440346361709812005942699859299362298240002318639013908523475465693142121959033662063670417357509013409909176748157086599220743130461885021067757646799376701651558431589738949904414429889132183303683874808725636397121521290984083458372983554195805883785718833324722393214664415794458004471862494029880720510790279381730920636858245754505775183351563206704921183153167374564269520933739485844551100505795194985131869361052696488819296418138243811554753766660346868281158495182894151699900740770518669542519525035621309965838097072917809990482787917053324235731140088756033819668180700141870743151637504049586462652109141902278664483124477744833802208899420586097934494042985103935140184351318892803641464921253684633284801672849901163454391523046567145603572675665843995668474572101621642062167552009248904109591839074129781540550651156690207292998904346768048366634306151900160510263998120893903778260952140387020510885604812206820891374495018698719787803708601770468253703532089109566275786364660823341967112123401951124962361753569278574912039023043554691212415355987354852296521234926569201206108034998783927693780413537858205844282614662371980119274036904513098476132301253767568355410220235545155991705781191902412705196289414014635167293381889739683918432801212357897490160363713149490910605600619914267502745183233096383009848292317509850849273770860125960178483152248969792103167410892936587241760407221667182242261004628273902830036553837128664903354529674206844982256901005228992455361109597332780979891042624675109217259540336802648773923137980138013763013315554403071028444990527593757390261599662766203971717473308437836459226619137672864920922100674163256478902420037977745585158336214298098513420111750947470135761478000051230205973080102666588079889323292794576563620533245076908112630967769945441116482195278377217612819152447358416991385292259661314134913984270578439495947245629021444730826157935449830291958489274515914059578006422225117843814785434456470919870523472470456751047030511128939363191782663706419799436669007101284444867122441587758531201004543402090540989356028628098992506980975609567452556809465229121525455544615001104583692075800564471707089014241547309082895122635036589471643604775659637910570927207698049278109752878025486972554389102123826823990364548782331415150313708686917489935807670585208124514078974450497467867139340219075749460453866147438039043351456881814666144527989151376643059736332991663264090761065784512601650930869768883737200425897024995323912371396430990799615384048304261066757364135408576902933754867712759386196337395362675871967379972393000956685475455362876788196341659301959131102168622857551030075364801257553704857241131947599492465673574250800411664777674692298531070889382274358238033303942414810217484533096520887359756938388263581264208684187142245025649363731894369380206866292067875482089177446107228341249827807246699623683004710963115950193970827561279818517733628446940803393289827566624394599602964684563115421987278862335224370843762352939897052235395482502339571572637239629291882824698629882359651091998666934476419944572821737505687756798114887743327651373117435328864142889129021510946380645508782887495187263037275971113668326914037603265448452888761408328309121357340994196228289743506737553227613450979845456152494890677567706305638633578442499504407334838013940067648441774742962329933290401859839941183914891725723531160765878261052741519071164774596448909517734807544846581985927934707882069059105491957877052298292312404194517378837434412520375073004894670718521662460388715975742558000737985054837313290110620413950011057633894206210254885886969883613793772781297996476181253321073558510549657904542635723729973130833462326386138148053778947774427716256572483391817169010518103995740129529685318996097058821789150049010250019327531174124302312878695697345219367613250896235383942226882681835280286788154963735537769237848276242218629668823672622912604116531694816775306589820371258457097540376186697303175075694901621237935288026181408292249973812226985540530747365760327223782110586252466905939923164204308890399758209303308493003720712669959420585188713594519758179939197038394638726604057434003848781596546027728423428390324538697857539813324253200678937083446231704625632033092383787940779328598566310976534320974415986637686081455100987524236106445179042924653309443904338318559141465198047799168171652508535606515123082240614674811419637062019649002068316981323557580281829639967084971212126653210121359285654660316361352450241406236528418768790935879123066400540825345084537053742266897351847757013555766352105134753798732777422411237005848523505391316356419883552335609858135291645013697273959201366582068720874680433642837074763428853578976287613176386389790652060517079307627419358952280594087334264665455382194692498636822736239297523364301157515512150622076437847007139391394184855603704272042918956502790798912255453610646771116683499606738000411311404983246446400504329456071191500497565198678382508796288712980169964619293024690024107627735491431698442392381819738844072972442007531111455373098741880939821179799374812071959571885797296446718164692068079029314504520725326452959517584468672548365705009014939184017865398547695854572682688712686593468803707487888061253606123706032261778642127031588452169252078156770429977403711168622535522067895126445061728603636569634702793914252687337214281519261068412181272344075266882019010810610694856534779252293363252386091532354222736254154693402748173174309328844491236451191209926896899065544861856226992818562790946303176081350448739333401611968881869811351320557793089431703175496944057903023079644528645841452461759346835625408591762545711577131034633628507358611981117582758403493653082685139511575907454986067578347591234959620717670989906050197846913726746844392273739020160397501474169470568336455415282864678256055530700410252701729284799141900036298113126528986445732866844781677065172131490554624778603237524640652477532509491703526336286930268110852274011065383591804189031514299959569379849839839822898340769176938846785727023676538145472802819737297932433258516918386781186232596493488048497333838812470204897746963276183460675820212266820849824528089766597197489515376946578590522162693625836292628534143845329877700591884218125500545834659887933656131310910929350412071800469366874002163706200148182092798197322721185602803668557863314357733102074635249589686547675593574852927319969934116097313899723829077611661148563324132088053232095472527083440869123609400106407608561205506615331558282003328750686116826579642482280770606690429509449718349486860385424920551544098117345980019213610738253288311016901029223311110018012672349640998897270315168171195349178595631267803309945046560249417223446581583154114759264464783395398192124092288344655250471670035044314998028613217772810604734236880288581670543615051698694768077307122266177538598988372308429803962228274122712381112421535344553743783628927592426130808616637642387549195155892761190477623288694748296059692305849707232541945853410658407858036694527478000381346971256672965735715875129243766019322048220761127850514213723743080530607703257069988093063432354020510888855656849206508765844670286957836015127490018312773037691203623050771674508647768620418938023860493605316049869487278791942217289838625491137479440133309371912212230866366013630459931942256412975224173373456599920337769734459183406256878339915664846668659249605095198192620503020273242971091633643977898993463639507269788050813320835691195089984917914885990139417842263723724446199717869456070190372665549242730100840360732860747499435719493274895553721781762743439377344318339052204816927680721096904404683129616198821548472183867752129138560654902379947143045040622029063048624972476665590643652229013288673916811465991962091248556313219629747924357692822498820660616194556252189095456212502967667705833112058626795410889291555273369056973128723031677876508697192626542405453878593920025830587778249190611374474568224398662520878939082472430346005104800833622947462077941724858877270967295341634402661164734160179306435421931436920795963072192456690167375678292719658396302028271459883349364788891105635094957433870498605054085307426669696112086864654418787039538174312295499134760030780160663985234519985001276729349560961001676839280907380534083755998335003113326613088061979158746491114844865625168030409486500497722846259845898158129055320756991991664548153016753438676518600538862394649158382616409538952919009040488674429051190929417929665708103994166473397109253694697984633019369816963181330387783239975671318177982051913855600093053398799414635396537903940782778810557680403856279691499016945288085670227178211631698774443921306549689194307574687158627468037108706252320038548026545743566034416719288687451853497856337942492202391636428530134618393238216438461803842620385745232334613161627967357079455146654353592942117764976627921609974335324877623206051698720362526176112305660012912314522732612110299014212386862487811893102390556345282423398552491706728825908223443024720723311772873005158962242859369422675644650295913186950070985516296661675415571860953469653988263755511758508975723884066515643803955667672487478356517581582547570675027182086429638191210809555267034712755139129534311657342820247560231650437476951060632862250191994044496502836025753460618569314727406045505424587880532729563027510335333642990537798142403725576615429257020154731856620960503865627447925136513934960436743014096273772886057896606132236874271576412078660478375511720679338992052778486319221718181978443739392905986070176923062236546598380944445652917552235837725231932989442023300115567686757279849704430943254100764070966935175201734406522105007047462214723875835414166715597092680313283344234920624352844301152343994145051224712919712239716281021171602109123459618009116185340678138957659830574770497207238765329821563903683962770981952930305686494714194023532245358769641312748410776894936136139369647494361096503276264445340398019746163651913074910835462495511233798649204621698137351723811082441209341282836644728144067134501181915446310691031100947220567619862263974222933158932914274062183680199435430093933262366970593433064042394613783642065576803728951185093077314098913424554775909381874555750477900503937147962810755122861597956771408484376714238570598084149454739225085175724321536647675098449110547656819206098451358663967639012773828358719665101906811163656888797978231872366058476874698232105600309863513537132693984008557983355465082557230448673719329606818413315663234613256459249083750502795207645054524414095233521619075128578145687423672636993791358863526841362746082459618254229645235702397245657671537803752348519457136173489479914020435506627783844155251811589219527776339619469441050535970606299670620832397615801329547000971277807864780879901573825682040908570858766812285390543503806544023537127409991208891667876692008933848064519700809222490197548264963313607514276622621599940945157075556959288801951274645766746988973316555183202540385001784582244921443434107031503492931857837184614130081537880944662958987390905410649689828763316579270504605380390961987075383235087876810594320134978174658352950121424314956726793707471814963976933816885930814598278217847493244694565469317581430152272075925778708917665571156057205394009307687611907026448923122769596085228794995189782333628191559750893459981448068525532998275737411636622606276489607115341918967193214744067206583561110351857947470909954504911114475097292614768565942232377634519995784807114736140275522075130665607130060546454742095125668911841232948277606357014954880778736194571518681426294007850585858667400670672641847987792919002744222784524387329073802455301509446239441985671690638071159427361016637349311970539900239223150573482190209560110258379498962039064103790470645857322669672362735857730912619812282083017922519797808424383942003934511822760265865897469434546977260966312790555506324715778273093768973127530116282022584666442198197299216591952991928141952278580480522550083256101399664675734188972555762938835449580605840822418050147433159852378548099986053773777442916091571112425126636080823264116553569922638155264102790887044837299337429293123528344905986621208920021047549313277245533851453725296330853855327821123528973728994807041174902048164965147372171128822222595532871554717282437307047594047389067188318942612463146128379937541028029360369595760638363568546436079401382402322465424922270864045285060372567289454465031056717536980087037651711653317081860501019489464113765124339682873594194046966010250204756604542168658576431668706918745866380313724732449667376369507195391422343348702174365668005423537884374082695432020205796144406450064247064496161627985094662872267814592781267338606880217205956552454590375388467468994946101272546972369179675972780085511209723864181084525562422287232839199161359932097703643837215210602389134208476414126473282760527646979055358667495198200243807958058576535766815447320429709171293796540582842875257814661965069609875520894048855903293890985489707766013987840013578245973105213912204823474460823038183985572774073010848557486306299585979234027693078887889422830293410498921786272865817864781422549954657408808536468973810542759458079416428866076955690469479495726572934041698937307457241810312744939413003420990063783776408544109649509907205500868329106645955026078431390137165783014466237862402800716829605107670282628022045224059017747297751266424510787192119261334006990870936767470633950642654971806737572927085195629503509224864878900958495435916343892889783349290076955778996881484017154038727309797884362678229278155973924544566405907502968801875927233364429856865936986858582157692814627285572186346319746801085550498089052116679962107246112839190316670849763322144875211607165749592005343118203318380144176985369339641933997713315824327645807366532862853186680568882551855514380346207505739674574418229102315718566499239918656240196193569287193690956801127824613329708034492491381593057506382917092873662697528872461518123303102684293306910932784854432845931524129818526102001518400583447209172943512556000884634088945593507077455245972691581285521797685939103439550543393457230011914921140794130037494840456169072649089410564192960460161348130232488130473783318831173008581065441364271753893389225015697933966467265650768876783972339457983261406502199535776907655608000922879701543304273180089174395758827295938771360454266895796720550855114465066509483419388773203288261962126325203270461523623460201488943336008239878862383614987316759617858392698270597325467382256496971425646110137262524023081497226638810857641375680207808445839777929049415686152287278020934131240590748622523968706836522798340664139214739550296484548352296808568109589318001967807641305646326286769159562362223555876377822808202885557841116705495435315877779919025945463812647076734683476272660682777972807116572155685409691400261409994201821189811708906183613364476488306602717847341005718080922882213862069269436135279634069089967596816296459835538581897386868794123049327638133070393699385680830079849065167884652333381362750268998109000136591884400784186210413304529701797303529073681946103363544879962490015297572476231367156580571680454106750063173388843613003095846759681559359364703465366457420854488251137401961862140571043526818462607838233225476579017869641295929206232919926083545255673183588880690006856618083880228475228157027933266693057730055836981679014187765535384336001177401668728666944893527246088757259820641229491704284911027863613254962583594353758248928268567713610566501331531114681809879451801272474524665024661945979584627965571340738435914608790812245517352142791646579645498363884907621723141741019954601659695609052210575974506824092892795294068711693592255814174067826718467872785060659523317870023581822637358046283100682075816690096880331400256174066210208572115125408648051121196978289982825746639920261869038638203587807743880179101440646552419699592512932935613080391103948753335282889732497653287186481518478790203480753635920648414473211500359472776645034659793981399569248525891521018936181366447845165845600503472634636656580696277610351034859729017515554163053479164639578995036053258633269599448226694340724167813298970210740554475429547253193463882556229724758753056596657002068241040031412023190394924668297247766774029009852188272986377130691486124333285840942933381487744520600178683791019340178682075474818927986967807484623577730065038179750001027409710669085636150967412693470931461615429400251516027904721871404469084011870399275465513492390288409360850372510495724206303248943161551885719188039683690162414508149644254177741895817862054550703913405476080395744181332765410331288245256866473506692994071231000494845000188402136230636968543900540679248057153763745737023565701670958473530350667557874324423732451831158682818759527286131203579403963655743219602717468261665947600183152003858217671556846971857895315361072968346199978318562973339374087054163006580372341539363536281338310352362123829560251922552977987733039949989567728858487631674679303489230137866317856428544208812305237037019721996298254265671218517709259115928638266612703358547923518338097563722160748807539993332840379476573716381922079451515666018846850681365686428158650446062117794358775819562565833321434249314491915647364043931781145788106862821414341172480384470404944257828942489501868150661346156074558184384056971980533200889191504447527915542562293453009894320934528621831649218797722948086077240468183860989819750233009545475144366300581963107342278862250407575481661512965269302365289116748181403263833992519118271206824114669115454965348093757217973259473238000244957784457457552080785116782167810400857650724961058650285179950027409446531568656947816358869042274048964686736731640755710355595519374938710154314339652581652578053581740485913873141849273394368201063207342364311369192300170015221551712260060880781513050690417435938819565747009163549969314446200753136614199917789678492758825107746109757031895950833227304683157624593022568773383346850204362705637631063382843588393847145405283009630598259676611872739155699410454120489517678987060532937352524397658091494788988445334918019683455461132552804618429813809733537636004971936188037619992847590546692897246613354629084946402812474116047458523605107665253837021953607159986098618962458512936378812611549163156213652563600911481199152299138945301773350201323768404582679122426765907596964821649515237569480050163893837871024284559592739229198849139227549835219441247974803211283879904648861290647705695775975432291847317920373962420600341028881686742466579034475572031416441184897780438230930384472957678712554968046937066888970282206869696398691985657607082635561432734282491165781315439610455960622043223931582212350984013489426316694098394595910524564972784857308302812502220903426560599595222445791916392696842108097193817019862289481294876822877780719134002495739087731419894540653788933972715399040794798404827334177558439864353106435614877756852993142530844472298095387745179275998104909889699130360484153925493092500542182596063292576747018123087207571224818116232705602076813710473392105343640283420025574601364939570583058315547804592885989448434652805181506400907878484994788593554556509279007241711102948742345090533797704460353964661720095495366582092959567488500405769664643430005847295644668836285748023492314493638747489154575905675406301050138506951409077457582624721574987346247766453917491051042601169133551694813476580898754531985047578076990470034639442278183309673110001615002155638132415286972097065077553686766208217330300012298111200618735691576186269066567047930842949271237701878150311398928283660605692516200447360585770868528971372111606903649679054121518374300271662246697755035489542486141780816540126863561271032574905024985526591234403413950480140978653171160801689197885717552873208722138766497849951453184162410680781817882125051202953821343248518963028131180497479145776156440364234280712267160021635503354060607562719820467074371138867992082415402573156072485679641629248629793638168143416553743028085471660880730625488524682799890968819640787286134757401017179674170459432117699086628956799855246382619775161342000943433891112632099923638252088273066864399807363157551892063365023833304369177976877723889860150566522773199889421832500844113449868208227238607566166400963253123825869143393327641751526735193558293736137266911640980690589034594878854209479966223925115318723953127330514098998669583091748158364448968788390806598586788172967243323741028869857060348521142986175650240585713897885436397637586442123894554006310030560004993748926468229338965177695216331580464492636001936120116538612183153945265405128692542381270381013045004729379247189728191216600054213881322439030139928148823734672070211625522011507093540366136720371542507774716090656021331487460443617472871319133522116785865782621417564180062474318766239117593351175863961165555183684860189876529618713118297445228461158381325633948961246045861241087824806233008231791147084529729883884841430372113459409328700058781203091002302753728277753813592005934644307841473911333169562959656485025814841723291085257548132629974774914636283014845105621905218192498078872725632379504960182381268339867679841614891298457031778683034782848872176980738378957989678799263433330583293476212210548318315591898514199693441756251155210759759661058387842867563053297641504545133240065378234968322558765727148579312229778013904954361796114614958340842526307765714958859735563142417364189303697081351942602175753591185711759501356323329826265443117277226483641684705363703655554255449736359203525005852396339154177403251554905033152750246415056382037043796740845905555076991606764660654717342402767525014893084681683598092204507953787640955122454112125564561323974754673153371544725900635241062908328935153585991002143236760566060889058667657619535592918269929170532673760805503414196061441374489816799899590972228414642005684277386819999393440285781744139154777031693810474533411948351084472696444717095371305093630039081306632863673339232563978127110353921544546756852736664861274823129307101170825636926702725662690761703802450479324661942678240050931513173733400521088837377015808578680351899823918202914315348274291030820653714951601388079383206907189036426439648398793526459627454979368264886509390492588957590975314619661142985508081625683620390725708209813002531787791051994437668651695548229097174458812228885419405046809953027137380358495176965188532755704560402585735045815824634360369084422284273284679090302721372232193712074927139280669145303385801650896091329949832323500849439078745584674721073505564453018287791590385222610479612248938162210722978453258584954318657528561334601246932034560081509844659147893731698681525242230980543126671533205261083108606072551947526615870892798686225836127998224312672974456565680751196771172277001758177078818626917028029975964208577017356005996563691042558763595070594863450438461207728373467627694187645707583562644087562185474547894236448220895699846592835633159554570365753883943248383616140897598775708263856425008914224127416573584176477219787780098468347167463170904887590925641350122865595529847728035776543728228233973046841584998990250552664532866240094573717515785203073226918809067321506146318728980962672282418820617965531956279604313256087318350289865600598092025146947727742802406572908299953662295374204087779505278160108137847881647025429240474344605406031890131956547800392562425133254348205836470399238894890340486082290238720404288191311806074480829757091621843764609228559995957948610139778998573486411602965853103117698540007460252322043539999367827500805570324101941870897905478124469462298795956542031173724646538293963093509349450815156759784198515249785054615603761173110883593779404290577925886067029841244422913047548776281322174002803733309383049986977873185637698673252472187111560987787417650697462220456771971879936831435196317790219276961663906766444212845626402351016737604208674659230337309743004566301556267693937894109893136051528651206746448915948703079385216942730690825583894979755038979603685873767464982981707262004139386303996544289317207253512732729497856541203322857694538954208897690528755654572942569885924603792434828958996454384076253608917527857600234629218853207090021525509877383378007645072318839640690335920611065864533500522519522451066944548573725454377965804697494831284606245478360661674871939686625699975342422996926045466689932313067989603233039138996869841561669076277604981712495539227980778898484754572960340215616505825248737517244445799046293812290014746472553770486727933404963237211212708758151213869535767874078492853993779620934728576277681911106885493533544083329490512100796269654643526102771531936021522532454154600337192043701513064397845580637586486430679694987953090344380532541936986662248200634870265173041756763544196643444379210420796538977207571097130403664699518311821538604292117538713524638283358570376987270229347304071731437040022981959898626107724250354594958338486043911781544568714179884915662568802250940540356995735902893491779207804251023986514173593384949448729997536991684693307072123193496928824428379751453606734189611158823977730568054175093432756157954295252397702679733460619789718088713996735521289300857212267799236864201351046183583024995601835447532014508290422092744192874236038790312412840663421057534798978048440444247238940511692964825130705429864967564439445973879780844829169671276160995496096805028659655823024255233526251402101846839806214009359087477594568671073592409651940446969066934184392576835572362670617316524189636171713757301890258734745063869893688545821615853246586196432378178745575629290132545989332667899950604093631132949817383658691764913382424276658363451146104444523085902531774780195063861804080557551731259398123314249637189203335506161645322290870933527609136442203263612204458118154875325339164263332925379913130302323413756275441265549330347429147273140373795530865873006926297232665616843663463530024986320574828358058242904061143876658205248670193731083744106634704802678768100789263265399091055786869946805025462759488097197778122462824288891616987263763053553397574764408672084213678681964053350343246320266425231816021305996830479569838537461186442233324091240787054137700658652318086956150714743274958696664725906220783598967481944247548216177114017123943842667364669069680288995334277208592421987872514819944450050803394379720333127584468423003406734353277484552139502003583640826969244161911865666823300903599232946307688510711287342311005063888153489697450008924474780232928177855660182434473750327829092393622811578175171052221348953392338500516716316822927072521065662520702278130984509944853109726298520912485323875084000558678938309422688821503638501118505870628371657478149951380900816124494854472221667422215878555707585442052800963805365781798981251096436415664455689415828273718328128287901278877485871222517547285544281888035147626230760539919561406759347134377203534174136555178529198023789665392020957603749446839191667183637463283425832137202265988400808285925968854007493788304323693181958401067095742209436210734459281937110475576101821730185268182183158928425436353114658242723102279960523310953993374116374419846989655896691847326020794179057422129136837296585747522164458719774200942015970493329642769114498546095938206197667233546424292174436380693963544643433622439879425244302876855065214868959803204559612140218314533397928925333090930761877502187687292186442328410508551109563991499803009912225585739658019459768114991795108778250794629951860634465469415439950556018422192694723909653641958918990435417864778530179222383129219768031282167931592153676274633685253717837299284242170719082375568590339424730541688621579940512772098195958918165717518640465543014560722094305569530209883783176346308174745489105369512688824730383486588900391610017110784885349095588550354507656928239081220577158906958983698307804524057923750900471286344943178547596598141878469487086032823457749487555944152646550610365990809304203992411753396523038782299087655739793411345838693827713408568639966283830903910522800855617066318247640146516239585245197271271747595198960005167213923569647829469975015617690523452470485272864505166720185747212546411151043831299745763947795579745093195278913662293618166187117516050403604389339370268036771479801765915408550374616075619535279377021030102497990824106255644841358704263156168195930051427708142475190620907066150800972876483395237032300687024632108345976565134517853220189543783751474205361367885313069518358858814607287294807865335223844478405443188317406191759263474941622286929489889290964567325965140097728169465863358070459659245513645202829126978810939130068546367169719226312212179644750925730021727365435021784154874217024961939340358715372998225588779847595737582010185910303982376958295548173368595141895396654360299016586898167889625183604700116624466772400248398942867937482668599566750282543128553279561837468183585919827376742525871969419496344168282794239109781846237390074595847364035640789341384287418825700542272588862765744258484515104322084319347735453340544844248057567241829857524646621784247164770396768833006816412645140029746050842890711915595357834400804127869989294138465276739103761952519564168111458393704849689542874611558766988609758981247698585941007908091876031484107931400017367919961360366022624412483127980640512409459523382211091675045667262935863187452236709451132967414711342048999587321149316238004371659641233009662141672423578860904901471426858441558385911935861842003631751349784276039573511270383475794325482955765871572289774670074215609010102472814826768851063288812501595589882905208314407508306637729216369634186152816877191118759190198080606216164940206622965765406172228208834352493911707879279056407598177468392756172418691631174525385651741718354099883244952958624707720541331307884692708505790500733622318825126076807618612158100896099643862239802948211930971695705333081452115708896278068617527077713592600430275771877903198168022651914178920537619558938141936352340426959792122533754408846308146524242540854462937745512866526031365176417313961042144575385817242435266653166694702144376665235668485357059520857830345777332992446236535020168533458678018650457219355866605802700953241483314946297754040254409023043416572170563934140669647920578720450974848451681841514646024032074586672652594569176516627961823867305751591798012904807892441541557396598791092326384387925384819634629089328594840642677139722902428831255809140635400938683381180462951091715519324284364569648931957652241331067397130960678076291778957028608038003984717616525202057328121866945388845186166125162072114896020955898458142475619248626320950695764938007803443773647168309547786449671434411415900290193993166108459667034851734868539430983869030613602952339679623291501405104017056722928386554546774473003304136265776597041332167301216279870509488189153458015846670057801819147847506699550190444742441526202624298567710502845486496123833526644193941029990463877079092268304130282052422987663382029670248518237713969926047717514823621684046829571129658175528269986072730726781710276420435195850549763736436709468615290697796515879348805719250568829529614403531369310132600254935998942025007869608110133095514999036628067723358887861083826811022902794651960643558282209294965600809610008237761679452116613816076059555328843624092339111076428245991126566330939513904022689786862541679179491019936959491916315994236908254531044208599988435507832817372022982177616050995943650346247676361080553818616948019183585218330829914259027613388648553049439222943922769884168868824752557719250318184052166349419331494713583796831500127249137779170253144069018181007457165903410293575753533473678421985000217753723796794373501052904859662647485654299899160568064806041929823607770246597627686808220497345405364904197155655263007392221605573635091051720583155509558645421067302143199967915833531193467703094560016083345374456066749913022918814387211627424056616035768469033011934729422463540089609298922216340538211441770509620465456249727146100290577647022000730910728746631152642565630411219730136597747401842083317103493532038822312100011402588694022491701473808727555686201691159798087443983479982955974851146907926230849055762472400986748049381057346313535678468368409491954916576049902651122840235737331811912512751082382089164872430667720347423645460453373571331826423883891176664682585778761229756763137482203295474869340920108205131721395092970414900121945738333868885864454420101293487301842296290596939771461706714442067397353412482698250322377017386431872334391081621978698534870019193142289901318246503069559154053843509929981004678199083747694962923386690189639481479420177529022330563947973827730420067118718569854647082884540211638623934116183776626434746281834170908962555954053350001162295924241125089690003575861507264441791215406783280775603237580570334596571760508589055838866314967734439358293645753008895600938504564982199060668975816571539899964982420875039736238083994684433602622253128274515887198348202321016263734181888621070701966665049920108035744484310745746573616341630606123064989943520683671871622794135030919895916410103189777956422083386762235033280893706468105572992015742979336301330510133686501748533899096248339364935764339880751301187236165200645488214293378707630166720436610258997682874939477112855360237915822714124382235907053889471411577100063286150186939815292908714309976773871699368580478962098367311142003415920532781161637040263332652247204566440501832924826927763911499892085845568281080593998388110649241499777417412368208739995745290483581287880518847143959313284826132443543235788616746978742198863721579477958877069488847543089221465777782094635019103046373998036081186731294632687583503191011221929637929718252444417193348054041882752244862570557815881734638578384561606524160336343346391902100040871140346554355730675650307758137756380802200402188284244050154725802264232365925552935708503148672926095746634801317997253628301235759509356044100972217153656565314292934957550340115147500208625203230568898959306945438910652280383460176830392222023037830121679276351153785360173873310576164119764156069434388892789055997531047983634720305363878804587639157000416053111245065129743972340193333360776712455128959551135281410920916717140841298862246802352508867728166910323035394148260268653530672076762741461244154434222046535595310209893849511292132084556264293316364324699012818928807664972769803700625386896874254505060151666752299527561267243621774214694639766400494718192470795954977227400962692437364228605156246899786684110093220995884259535698955294578737757799678556133191737526443339668942566382013298616531636031398629038362711866140108524029608853930603272773905439886561241760356511922393550388512947424610640371275967976108777724028138661696867120640342758450714176838285843807016576440846879285021403282557823743537799300237936934303843034460541506942544439395493766922667013656122821838278775078028879044837271715248827700167661040483132305514115491168694270537922541895383852997299554684943697947932998687336594349437559491684091653290321798153386428888896871264281946001100815679609463075108241387540290733714418373940172679901299968376472762810699652303331356543151167068352751847642639604257942573764031440713986550439022522586158593972171218939748617310756684628807910338524020141843578179826955892013554818365615473599143188525007801547212454231416963815486922739603296290093563779022426232877031936557989013243673019326109487776073726682844670397628316430077351700978353433315612015864153291932246499851485228858445907341757832733059759087974797307418446877734166503892626458600563404579278504635829291274446919150017472744041567341985696223020574667895676166911140892257241307031995182087686818254309884668053544686435760848383227747621683721225491769008369761995871407599838544535068690343141642619796165201054724330465453555546907788138504372391166144142886353661060648309967247058369863790723769144127172374828653392971243255907260069807108282564707289319993782431289118187789439774179378579001299082833673371658709051348952042192442027690480791371075898388298784762063897568560578390741952218313839062053309489775435024337781630197607880127109731390790555019756334163909637915566862035828473655780499708582261043454373131721471683071467308218811208225713644516505729854979833065122221160336403712462489626934852453853920654961897100398870689449499680506077466830238731029379793583658538648161051770094193758822025948364629992101134528734149023226528320864196855610868183447058450103127238774503961161243461712557860541118875612120560281089652660775976050902712281141887835439194614442699095542370700228208967793157225960521067509781559674293946098606887596897767289612069737868225137378076012862559077151595763501566704065462392103785997261560745585059030651929701489974436985815853569561912758780825567250009251965189909297913239674799337495846753525999922369852108952256497356079520973356296041585040655453370308563112017203359117000668115168195436697919884031034358852913354184269598655939038970688025806180744659767515448629967643141761838689057172932599836203567264710161332896691826696789222163462171034296271371135035948299184976964754923550271867659384085780321945809075391251711337606318855794822696281188226110464105571011631989660379965828310998247737680512306268143085077266885952750063210676364408024047201087761455456459236744448609430133191924179770574646813045624870938543447068919343539705172770918542650623816282065190748997505178382321719422178688762051392329980893261304187521191362873028837754186678340361231649295829095463393287109913144396380394678435236472042197720270562821155384778307901163719537412169295191888078245287124944934122761397610055937605813000345748515609672195481368366414192251796256687611433628307781116460631100345111031060652165416330927203153095530420482861651090764127181902671738281062451043948070697519325092674070184954194958792617419358202062899827854698897698155885369043391162293014219961859523906339836023281639746606600387246843993292272775445656409369624714821659779674485622390518611188571299867224757386660264935347276059860091621329945012982906163316179443320340340112800426566953831174981876779924678957118134967026312997098366536370477014837067676698259451459582257308743184488945896043365318712408569189349727089376102171222320571612620929586879729613144449582942157155958476444022646519872755041637391522695669989817609642804010931773542915662987457766714307294788343951919249972552744433988402716800752555315920124821898835193486794147615468056491501035160258261131857935591060757852806508068115682356345396387343192373887324315519749577433131303088998134190781064795881124076987552316511192717363022281758434986595476242842973560962870301833429790015360283322943897850204968994733495697407034267214930332931142764950824771299654345725542915610728290606645273779241086020313857536859623008026874095315081782210897309550507554417433778373386320827855424781856693419423173823969210447552046300169813146048911100060869854829381768507076437165613154496514942842811097240983906790765167213440417734075078108436587933520972148422331228770524775748650915876443650033372164047982607806787698883484751820760292732870279467464950111932924611498390270672451521567615798916279809351598804244477478421276202586763868055224275357138063489677266155999701297652081335435644749079529366227774623074706379242567503867629709528216537363912463803112023052679139304762795028254164660127111394587886910987099983526885781039111323939976739905659350691336176395687262792625399665493682573826069822909092548916649818885168843943618447335155916837735591160344304836663394569405014854705925810906441055954297998546180980450839807576263055401355818587396373563185291883588827290993341784741930172275269504802107679194688554887037329789985045706097480789216560736818731253470287159070468145324996504833320163205769160737839134594737381640528585776228039181739525051439689847855689633458180537598967400516461276585739998953737834259117002795168877033559403456574547342558682978152311022110558258364161835410459109550958658341692591322984556958805334526015956300705036106938453948821419383716939033363959381638409732222812653788061284937721037572041603524838474402692915240793550152905680396019531962872939366334174208017672727432179868117193592648128144294183393615879156062986827662949375085944619292296455954235951725293092840208694063803704763610110824347322465539369859414285555470924334832069398825237659816802854799222180364458879996972462246636467547254629999035225391838794773996761955175448873431304575824673647177600738155007464111902208718413029021703151810914853056290470318085318514460772888370301953883189776203559511744198502001225217227630530624783436001385873356251559628733678982344852473797205676443371279562379075389871863671633903697112525116351944604386576031894202282964195695780800297766127462739984275869252772209249095292729062767703584547391713988909126712533869383684731217288201045750187969210561278984084669666475129134172377125916807571843671714843388285163702246145768557659177690124455046116871752403472011291809880884147101424224090040021438735554463042155558262373683450750150220417880362416260692577079461087896931015743372477059774390056691956352947452402394578957867656171791197386381662486582471485950195015534433109293249824029705788784527499432024092868157138052850570270042751286475904388852793880656707873108951810406348957563072549617258923336785858241166816950439820396304220343817826502480384425728809334930247904848296809887177903821061529831513010399666071210355822401836477194015261749450293691409277941160160071428379308734639884316064198919912165694644865049527881514836857624031112511059106613794378053504780083860134924347257510834750280297113529164332406646178118135378736374786455803064866827521917527715114459203968839500233399276391668158183569108087649422983725479735272820280245464013597450302330376328788589920945553700005351095300189271972068257593417373430759140680632119433618234445205581325201301675728314493184943973503655769015863990992031844701130392154972661245528562635788409507518718450343936126256293359253199832447348760714346680755132974114791147774373159427473219733087167932275016053286723565132203901371409203385334342758532694026427618896509747499338300838622058278793464466475199273476163473215998596063334981214895461612238151199857894850613758299909418222419637088825047045394270499571963978458097135490927762512969948861485630296099224252674164014473140443603870747924478078164332789564513802410558271340140058944096517596688207745133888219413269515435220637760637999725691892646816924678290724975652231311610043571637118861184452794893368519609711525269880420176918385445254214629192496154129133969209959691530833738013434090380899117171590353588359967550919713336952788308809732267841420370172739752964864306933696876876574722494243909782899562809691986052743440729350239154111082621506651155982469332603099443225086917290617083570325611597095814064307707293948697480087448267416138582652114045565977513968060178271844003345978735236591966870329025945768436150244948085598704499667444590891873341100979200907434462748080370455418264569650078926936025782146483292968079161009148483115788726057886358209025115136439942525154600352129784156094372364132203754063159636495309349242978993938873070923150254864046585107471663973357381196958732169209277663788499951127891771120849976669346009402956118644129157541567013771246674844207647739898148474612606509399142029086100717534143283057817801827954061629964291950606604498882280071437179843521579780504106776852401779132939937035134203580910818875966106348083108777942404785477465671428825974543900949186805386260748738604211173610021668827008737098544133974730221876131948929824643114670404836450023824371793938927695095244130517415801434037872325626334651098084745343135374325719827650053635771165469710157231348140484987436263622163701231288714789092012648084436765562417714632417169676110000142136793572983474346369763134367933088525482079132335051010764361338805280927275573108092902222175065209628247250585754481617793847093450274443469034723884830451392331361368661740337568698587747853807378199933878579614903931992749673024369174943992486469677848752950395171729655338120338331226606158940627812547473104044687153233974445920244311898507315206386698793042828988419571064098321068075363924859275737654537871960190546004076242893562650092236804020506051227016339039671086871497556751223966971435083613878889707357883499540104878718764928627626837708384990733511892137312818424996032038689582961742923890701408197302732408645876111082828837983072228066838788639667884824667071163607642814095438495572374344760133897123858753510498116403496133167054376324163507503535206831559582034634361242548013946395300140912486236472057732264781532139006336667901190543342086083933535211623590108496842878366595303818637894411720424038002485494232960352603768647522013166745747185808136124207251549816850348381565671209432260723825924011891700059020684363129710978548670711667145409910431791108564935529079436262085449669700045844133655242089512867034622302110554515354114403535164855529104370366838952445062096800932948586265628037426487309642349773897884393219220306252691945263682716176503343456597456107014205668079549206526584850345536391196847332050488024004739930502543690721714232551261454535593200643200656035713398416044262043179700079660909766158072091192031515189917972347792742831395472259010181815118000985091879974895439779033034167144199480281398317806827263224587354103489797002706337689871127626400510362447218953453239868217637515874665689383073474460751933743550733642881663690421164871779129202206668981254456042072096526474395073754756823963146209978309083462997965990199031553705888891324701215810785782389532019872454930562806343435281345276740665027251844511567830076686627662208300955147074023955786905972126001430856638301352685560643153302534077943867915955413786706372399044187863762027941144179264776404621646264455399775451614386218740996702037634297326342672933755425773569698656639557766339715767910329508947418161472914131766942451293544203685111993501287649164007424341156302933729523908749843495329246355447348326737181600921749304425359461665827781579559961463668411080415567269768060323360737128887653900427986607035057375252680210066549067935841000458305219981690256173681894005514657792236778244839932390610557883687776628337947060986778543951319532138926479411623733942851783654792303964145297990831936664894411698828846428680293867023314560473738763822937457953894670374226974975690516935469318025102897304315305660655947312856298980826166205497569008811769875801724441370329792735018513948956937099348325831434805032851192885306605825117005881212729112767092559282855235153000991957570730939193743562732441425887387390803068115194825983012673600011101827490597625499346051356540061769771112955821524453147430478375684190394909334731005911289149404163646763685716305264412174303175548110425839134676094778102898176180650517992326318423087142651864147835826013741074426588087596789747094692485072696368274041379839323107212522070449730971473532614734468005784230929576607892983092482148037132632272326484163764396638551444655516045967516722119370878341177763805107112035274761750053209761558984797000899836501509405119474279687685332425857183204694303268245114821056770382685706148458663736624739660840277891404329741549955583373006468186074312348414557038708320079678285112246449513147758215196333263530180147836257466461316546745896693606674019681235611102468329775814773225163962785812158404930880933762677733443439773130316659255772490307916714653288343800641427135254618624096544933892998249210867732528161043356592629661430523462824084065760262578379245092717116005609659969567287330280152473566818708677006841707254373777261602004706483013368010580034744559268281699876079410721480010655820782555344614127702395724818677866921269826568901689001464672187965636128912972381278962572116389605530612895378808096051561624345507935570873745619296290101141419953083406743952576048066210322032918042374625107996247500489858004597536341275546699175791851478121847016914828054074226135604720845766458375948756800666404862248881889319916133313135996254258700917340667690691365378207950331260162734010523227215890720247481631130478962361255953344344669683774004138132028681193818134176146662663440266774232428794426198605242264816450997164790952553179620290940306593576677029606999092735448615251523786310357867292670396796091301598471379454845411785533437326342432855463609659044446856886974161740756880823069452128435880117219178743703768290568164146139250006765815960103744047427639926259081211137232690026064719475033538930068755087377781590963251380907508067367385855688544697524023751448158689399635894705235949701095223288575079745323429490219594084628401074913470364322547423468092859469236933404608785923148206672141516591870750962289448719059121921979401679343772775549861036880330897529963724383156549320384721032610764250745870387543075169877892111003463466787347824262196742279096367787136464804105329424792463214860216377275030178252254438109394562382197947929109239533346995242051644054224517932396012492978523535463664814879727851238619318058709228279563946581374659841274141505812142676973802226212255204315769652278237741545023452661060834677599039510701476368198985109361181716790891363470324456502849253946983647359565427187575546838889060589407188538219098281885156488152613165031219649237342113376682031600853035465559550407157051114959275910427132879247119226473375174161637890484926709041377512417110956476780907309864261623575003740555716559588414725991023087208560493365625490794469877070492481409049997852778890848393090336247025000040570512760947092773922334089064899762820639770550940778724785062643847914011081455956387060112091802033844921259633318199547266658384686879740489418674876199851462592253680116023220121194197425100195363321475758755757873121909423108150489259240593369558236377241906715367051123678036577777738818242032874652563005204383229090325302632748608878027389677880220569214580562680541690108885134449995377152068453860221566127014876801147659340826852292160760321377724301466936500798887582363770431796408925403546711678030040125981922740629048206862907572996693291595575032908171543398745012342819938338342468674698936572267675631925185602721538306076971246633383093845610782397368734436034737227968286254618515501855724296892308403575824323826077852903195509059683123845641088971158001919429104347976432664214611445319068092466895517624627990063937957785229388526019882540424451033921550410493923353445562873783112865815582667984712363169999369973572272813678921391027816205233571544750405415740181433894172765670213148139130585982058384875392254757452422617138618434818055481575134067686484113225347331707506907453544910877170500593979336845500344593699208913747944785406698767860657055126898531641219513802726102583068829881237839220642298651004425611750243004328102758482328379715633724922114767944723653314461608837553499375082435070257384501145684062549125781026007281733117341383203113335847238075592374809194849216680346770746569438518542724799171969588438116590038232855881644236868057338254245177660346515550895033476710778540915913801716099871114779294416510441946047221915495235881598774257945981994621226201178913472059444864404051007820106377321800047733041295915330479157679865345227282589542360185221166829780340111806032565896969360344275510749490304627869638001104366555694967918765925890567846698969126960457780670595289189859067814228986993596001111608187279226755051739955425007777414439484864823159315396253541812659438940379006578189340830851557035564697376662923217696344466652380307040525458411299799730827140148830193494477953130173852827703921605156195304955182373701146064791987341210417041064962815285731289342161916621545584122009766961256356024372045548059406660026646765217091072529994637306212689340071774377093452053590013064393764656634137877397244226510270488947104329180624096149056631273623691712086107512880826780274894330948574133135037441037169265658759255243158128251227441389257453749706995386282275683899396808598697154051195488810364233385515880226484921159719243791367136153257199585669657848560351615450537375294711643050685588274010342977180170467929992644965715759654485432884817466290448923695925349379566935914407363326529012087084400822797831395817737381314486470688947093605836142354899350910917391230879964447007126741071595469874220253409686941545976127999441957310551642253525734677351805702760611997808535315157038355767659493626648613030824200469764895807882919592841224619580177572692831467363672979850762405025725163922280110900455956712968234218553594144326446344186095606375727360341603591441229950572955231184964450424761942027561832318515866036359215002779735985656368931885413848431796173887774790371738132488177431477224599482290309173162735612092544831227443743880278098891562437145510172656177511901978809092657436866572788395485326010363236735087052927274364892554475134598128729211815708309190535479476776956402940867817549603240921213682010924712837480256648986970308858401745009701523744769854254421388324677544460838526212268698238911582654239269031566870093144931058677935986117322674298834605227831340411344713050297960148316838923629138984814138583946132475613504144507858001113980350475547374212322758621207705032384630441101636447085704143177776918724793303901671284959244005304969615316306030151616724637916555854751283517000741086889185095633724866510522600276977788081580715983732431933686545691345484178193897545369617406155703125056339750249457330517758072106081228049444035245885759597176204448552039984874690228922577818268843037264243269450226860242139370436026918291479236151827112193581319322274070354327419455225371669099203876031106582084532472839905729389980306104412604978039973940138485082122307780443685336928334945352333648488666334248133804928814847679811517635258648287716339624372213257035104801645627000244828558653288020103535145123827406702758466093669302294616310362456529831505184032847015764598352173537939487678972455425793567735085562939717623261053899855605152953713235344896224348846261463108887712951506982093468963428565630258326550045314923398577407241658400630041053065846392125871006019037285261476926667214925133258910203670799329700910053158795648930026800008077164255126731733965273690132032649547201967653146662333451561214057163813531095901961734639030882547521109849189330720368253248617802712874936147004259018579931972054508725394010584527180102446510244213599983997702509577604682928106879306261391625921902536036176020077611789517452943143195246424794845724883800430522238780292620611479307867282271785593813334297036912347696038722667024903296291995570965744190584128771373811021881075691973620955961617572862479234080988177756427319845247101614597167053445828430217398957479500459472383405364855549363993068760868391889253781782639217605093869831837351171386905498398456945783274104870655919327091798475550196454028674166408636939943642251175082223171258390805596304559781443808332592353514433871187532988482550089326564070105934262397999077445814284129449528477168174499777041490567333643159869417937320473790135059911009744168208719043706432658367049991300189928024497431401023224692580756617733301654944567382382335585794887104809874186683232234381090380623065651714099080102867411718445390335447446828578178017791636743482778852004622706489736937373470126249409949772334901579245688513304358801915577670887251719455252728473104449211499196989314336770732785996246938524804431097091389991036520388219139015088681447920020584233903180135504783176520320736088880883321474471058272831604583680349196883056532362850167301886605579625059086500230553397564509283887289366479239513122014517334999493554082833149834696449402567387434713920959217589458878273222879356162986989618670626195834707611722724320445232111094774352173411434719898996061552293729340642543172431769706893564089716039327354878034624567104387616536832444158628864380157050729614841481001271049319892283052225228256065440424381742319496925239716872909735900427938407722493266982832847014277717303919518318231862523124755164659040827256357058075621336697031966351499867370175415646333134661875990038626566567939351032328759899078942695551199199554085059261096912645822207863476624634666134881942324533505519882663710769274345727126037800842560811160852364334222527850150116236076404495302795919681322426028595449677232194443567151054885461225319758229949534763404433488600520844758682890731090368471426838164605190305169329704765869500884943137948096378527137045162063598574099650932833557245549304717187134370500726637187889030610753350662290991340239251336396038042348932680699287015972778096188215042824756282680552994443352547886509160352313063240205044908489737717970167984194519002689018468526468199002403887212055653412516761976179362433633314497003707356765849772781105145779712497314720784773936714183249427386502067271105382027154638216362740670760045242625432180556199409393020174658377648718859118071120733209757055722439486769853869669771743616433709801929315256323292837198200509845060606192731195805579345528216415783761734663367685053315445738181594457306603132540049264517450699498888375902566380749128727921787307876782001411075387557001675589230536601582012980019006580246365684941937160619853609248123742948846587247660846981667861384747185554461958306909846298424577882787131559534370668818292855220482004794683796349054013192909700377872450230642230021162758185343700777431375864505141394488200573825279477438986370470328736697436486686653402690772144055562207710535064203820214811084146846742534223060573718969887601029649537873876510789507323066124531045000396418692043646367657020894304375109910667555005536510980486988384970457884106227692950032645201332867965409650014766599817057871953081528020611064164734719187333090277361474526016052345440484530312463663102726220253653648377523139350250702294556530132275253012884271888154431815301692082919454229980238732634074212421050279339770251595202809510095181645412447026601880430964141619711355341514572668307636881166343790688201437157522401903383976769184933356648980934809191216824800865165974669927474920190276211956152686999873511142637158272003390767348930629444555496088325807521341043984230143342876253086350814755134703660755929114557997602859510430687126410303576432532981321170439013117053778253186421139224532797459053367016963951921081167490424551235512954837597348044954310272344981129002407548362940465074400851429410389289439426445032575608357441368800282886099378506839334025029290050417833878170338514553212585339543404054113530526546963708287478208123286039940997238161687312643703090275752995556579744383020247751400466972315575902676386109991624336203217868472442321307268862060274698742609061119039681491758084047983357336529095519039560260467094200885998575445873657359687637473086544268117038467543235891540177604292039513883424184285056235838644663637840021960959799754263713695794014913962360909412704525631465204366107399065471945783363114642271987681088131414700260662077788152911646257282194193194691729189632236419570789612549154077195529960768093232117485597040852850598648563271185820293658013566693521788894178212991928246146139535770418599405278635038908295469102370407412316520435765327605576844925368692982022609308564819780011952268658064935781185035513338574962999943809533169676057879081487971185084246902012639870143403856735953033431882299226911703005299328747404430596590730452508566510763345241272400302350432439633313482694205630470027849288434744831627552523146975143147304054485855647888889232204940691038637854210273856475661622617848874714462799790301942511315321074899596439016140826183077297903837451350369174768283135743230808291729203041091286647337757259831950109556535097586793686698071322476239869226184854578730310626276062881206920970693469376179815539848588825272726313205666976359476996788291852376795241584074412101860992427473012662605292778939508255519060646104657187739640460198202404367358361729424855259902170759798124491900205468986633788148877496161399308579191842419109227970116346366904747371822009335943171130550043122624739146473453373527872472336121921635182981477391732260863801564479550008243787696518974647597262703716149754081528604239969191880315456595400433773723845767207959626658155294511492338524501599510719833462973793600303437842869757765374738188207309461148107902893761071280805887518353024004501751403220410708030294552881224520237187769059636558992699287071986891040787033326083667159217190066788916330456246493385282377256656017035204159984510272856116173348671792053214802341890710639283332372391259757794712080698171500113238207238161879950340399274611028473529890536860808010762096860972409998113836009823046955501384952851570029525578078666787651410696603029388825844448686830022112918548466390820018341719036080759571999822216085996637055324572379389055681114248212090013768973832630710220489074725225815264739315543588822367484018567804611542392500992737285056941212084978646632787476559263014258255917105000814126086689427751861501934069487699171192000536666606538272334513184430414913208405784178823481639059273982899663322258874956684990784908047052896259989452124862258643225582486219241752115674515280054620164950047676947038064441054358162946802740085758348741210791402188633482998124760387270114251144695942130093206443386847294505672978975954109316096751653789921843137950028458641516172371923623951271355763237073564625290245006644843570472037470259829220539010219563976501730789130574197466009235791955220738366872705118039458402348918560835031011897485075967323378767384657801907948993074771138858683509663766728403021061573412982765153121738948328184915333699724653105154487320748485145814045522727616389650672889343310302699140234969690582060565695533227612344704707568721307863160825178536865854626515222211769203836299912054056855553412734060756927337871439677539766718532527627192432528412560150430702692786558645767168067433613397217534916338251204920280946174956604387855785270383137461272221338506030039785323434545905254664944234732331308052055487294408834089813091005061892379689706478086274995097133705582550313523798458135765687062654555254731322071225244525228039271492285944844855787824666211432569248407069009601173166575129762545432377078456075570639152077275309691778348605382033265239716882308826933074557666917484743807046918702562542194010102657324887762219777965931459369980047893606504961405863819277629515640899980519435482108768037317348749413248254146380878727257300809427806008002283034833133726897590732835484054249391462222789438093462122556472031733021246902981944043535087502124251256862416323266288202954074587158836649989968905638072588569571933021536117375980122868505630744742714262857925165166844275067998725249874216720841218344380029337664288278385084574823188134754999582379009523495870109856978257141094869082885641495886358045584633089660971273561065284655652893440145153888829951532046331512961069123259486969457818512003141764379805793178162244164289592122020302973214410634811826412688471481963726071303814779041654171645490354165950194379902814460714006981037693567863074326810001339336752948694545011698256315831172549667008130373025270676790315402818465942145615821811724527876891817503307575173220421268537071425092176447006117762888360667136462254218831745159819938414466897018281277260745840468557507257581798231062910498896956473555183737253787458917012193772668723152811619715673393227766380530209775777613693956172244026400502335005435773391631477128169412913347337212250063644143183790987177130118299325225711704549483734897226741553616892041126412109280472325802046921331162846337340616063632202441459677393509745990964921630543098097930638671981913694329943276244349881685059187413959977473306626432053634218372433815812702187777411872137520184857359019187779335751008672700797313884133683013639102822879346174541132582841385221995872100812999190765801914701487314870622797814551498716204450934575042330345987256596238747093486294121886401950034808209356526652065326027836470369789154193849870920408366211325894090661825061945739179192261175575190764626837903350859990134962469679494179482798561931730554678219793724663056065101568816618936919861228250786083354087341335366218224833167494518288536962059874769829155993977583705043793210160331160798723930012035446938938780022961342923753307905029853652293048560727023500080347469063459715619723269160099527415431878015175193274590494962834859154448987601038827574390495695949742759575961831402858652355940079465298635210992204411242539930563412602473373940009826493862090383626573298725619152085866251554031822028545911582434059658868989626172136509520166209349316248177034479103493647559025847747776643844061395252944634658948553596529304554985888994602464386148937930292312558286118435605833251199725966054834712639595502554985426814097869884127337491536966646439849361652108302804370012486159489500240999936211699101802951694170801313731619990144095785589744108778089786624731890789596733771684012034683288103179324399438060160137620691039607000157687010601389724058928803607309532324086977408584395976991728523824216286713342842552656994510360912437143719029493881325450631917606258888157790244226055943394067713086650460388422443992654703884948376135497596248010005428975522218865115874082076281199176516720417771401436677616215485279717419602223320911278329751877766284790934174151905292260846383132617881064397082659768907776207957870974054779736271304439068032048781744426829231643944855917820310994130067747895027639804259336275812981891705086015622479773041289539501658414138108236821173487264551289453317565331719330087611870260144500539826697251704831061677489391776701822738457502159971454744394429644049162157905685552062183832983016461341007993472177689613685772515163058589829624278879030332605782677055490011529778529092257880220252266922155629603014802315820814299432913028602738525059907463972695361415165515005141608968107300017682665975813135347842754829702693575952797966784721990902731156383147190053558351086361724829370372443361563952073279738878675243159593806198475016768201397045796186529583750674979897385480804373423268986018041534622777971878669746417922743917195482486797327320739691627330908798763152920678839880589109264571009870309771631716209326339947199892111186907649025700110718051288936728921084446665956772473580869067842741151926065436010553637700987239064998897226080551022385755445197600514592927246704615995044722817897264553948068171787798932776100041806471546186890028524231778822025121635814879231109578118718788705356271989438191130365141245900076539438007593111092849307625353608273742099991777098070779318664589472505031726770300077608312734999889988612635879292316209614931795002641052156101141921146828060056842256080063610745274360205778713284583415338565254463906013005483352671061954123686594378736273418806847215057507523147308641066613888914089056261930900446333842125187045050649994680209430523056291048530857839032838800294082819840787032708258301630497467340431340228048164994062674576155871324936018872572242674444106241311465727927753586874460481311158973917267252513353724524590056896433650253013825387792193758439093261117041321385063562448071960756325828127113249695970345173242170730853496603628258710149549964776568639381970324680001164377856213990172905908904799778806693313065081607478290623594222396577004454799774778900968518150702623309340075749654148376138563441709077918124127186033639369720845617664751889360155281444319832912673552923288786052806610953873058493747829002462241896146810317650991505923244506206981917455006127910927511781989498913029505674124911389987229978404603174833402218239595321367621519411924979485230146814915930863135999464786185632527738976963210790858253901280290096903363380467406874074966916622482925915229752533969706136739330226029659494621215557354865482350065246098179123433679886524493758938458206482026823426200523049958484612601040151503139405813075054009536849098715001728450321647331303255461968840319207079276562195936076474071320693184551172577124012669362072312634754013743442824314376963218284217290185562864884172940006367021250901505323414469721372277424189739647397657563855255679612548441114215072151009532532061457711627693316412150142548835959064690369190425503203287079000630580940266588438388478644201545419883159441042309003809946039212253330574559710975419102861980333175636406212893136985626864531550689159353745493795802097204706559232578176536687594202450695821753257152461899864640305506978419644362529559411966566418945190089916888855126605847739751184446639931839868642800650863064115469711084913108905621518834741648742236700666102298186404118649116963498218282928402329008590565993203809863233385433187985831964958250839009219975564110452716843093187206198248457695089865784922371442795658814379269767792062428845642527023697629268532056038426800782484964077311509118413832905092342138782586239836331288271755940396249646893827825121940378280675541808703492237768251734654819144572340468345449309413708484165152903700401689819460706622324943550658887258425855778281738135491453497105455299073499536185408284971485913737540849164625591132757991207502983202787238954065088882084090008426979979118206777711450657142996119942334586653178245091406772105654415253793748672679824000117873511912208995783221981137415321203562722775230817277643826345503197864992751617585815346338046751517058638207561024109389133284848307465422272533134282482790038302422127501130807584273953389414068666336133824412782547348768942279690579952869557365060915449097733500263359909058051693239569760710327880909591424579601909811077909264766016489266721670686123476717086245327461166460225660323963117856509199922982653872776704437522978181054614470083492954583659951974865752792175889490424356469902244600862770648822328048364539542455134918058407771596001172331347621467504900241214747576649531431690183536019476709356185872016027672608702195164052942252446887195107142166430274758264652335633689430401661359471197268499069614318685121443670312076805517190688619205069327909778395487107525250784236132160015850948466219128290558582725136382555933214224059280061299920025881946274196958613361665690854868633677758537623265118330463260901205062450765312775598886845370785759691012468888088839042027594210107887222766350880348936939436971022508826521914876919732479524576437643975144386251688408736174977190238385511049360934295008997958147478412771603447199262050638499982901752723628902386366235376323378957210579003607163072762968143631221796223282101986605045697854819164333240805710281697824427095054604380095761616244878558256460517282720075126830096607664171420089921966297948279230473965702917592974426632064452668801247451155616252522162594206467702777464351775482229493649140110554850162252437208778727448932881814562195936746967232739786752457106210751834077968244729118202160123810625376528970542432218919792210450012099802999740186646883359320859673036137640442985332049044626624706321897046015464553673045164387495272003095562283735079765715134802609903944590736121307225059541126741345822893569417797468578941973749568748865145447353786607749003056569555857045271269119453415019724637329127823347177909770656441140266044511287152716450178063267756888144060174768013942849024377075509863412430987392123557471391358645590821324211205268385870371652770922064385454811095808661899086863925255067880958776682862275979440629153346518264627554237297383962281285333403439912935538270547719133130324612722728431052304849776450726518517799556141650980190346849157815257941421556039200076504108985428727680292851693494775438719440244425215028315284849576702481618068806641237184158125386431869182507849347386282507288721618610543086710837643505196812515647834189727758794676925142234870332437789169445980443706236897918900013481216726826876923188376548195326251915784568639221836687501991789024964728976787136040728422409936084409369241114104891505700956619448216767451189848499382358603996182992997903362968733444315151309230721564663061737872703241991013453833336101640199019111218750695335055010047749022833047140715312321035042730919310153108297618719320740545870091327599325652061174572274876175478453096899968461530917283097710519273601689543119748317792293237998543993554714708551753806687445252939541526195390369686140904467044508300945437389905454688565157135945805958544271365053371654629917737980383062433626860571052693734964913381061094654668959746595266056160714563109920708493970383542127747380083753785037042214244900692271388187021567164282951855471958701590178248841214398992069634317263261799619955284571109587333005271793000390615602908483519068189502115101866085867654253084044185878278545286697925181386608366588908691779832016365073868421320776728976040768913052775405198894317349826862594309529795851501686453755649529638126551640251512552106665352171628013886822673661983947832815880119019177293528567366056068855960286301337611748167267385947546217311548846685928764268493897412157335892248024095578428245363778694096300450824033537327351496280022824375717884038652042555524519578004280764462672905645006965095271699827075909328160647190217608762245923209742480195950392184398571985877878865897687456806192181133997315176798349306537847801511148788032270885330640440052322279820728349702023904337274701762884113651315559770821693212880027402283143211612053005287530604136544930362442107760201932466183151044815920889791938154122685071176833872811656886839120885296331905563266541990443319974939700091926912844872559220040693264731797366235495298946373370445090834960298283516530723310198916807351721557985720316262415592015677858020102084190310857499901148428181128752880254246794642202873202261588723498132081256948224967991416417974244295539638608778084826615091650647858429113638719215877722477640789263878030966522500931417006222692620124036982891709754357386073049774945041789672803899461358927483687738417903100525288876294309322709875039251509398844655129232567275339302804039154572151641488556260846624436821069693685189273642503972086416379391399917051386161044145889447590028678568323039952995298929006488712956872680444967587969910164752253453259963819782893637999466622558315412152420388780956331675702551945234302362595936233220315329903616494934837764188545229487389652108851856021608605806489099272060119852173571497604705329855382448113439367343560801514454133435548548271790595885019052319083868096509871413282991366956486141302706425955334361114540513388774172645641435437857897662850164549169468664771357784877739608174018151332261911162400866989230035125074044168799913416234542611647388594599645613973911705831235130453195527027580533937571986145877567253647154082587861316137134812531011309535876344521891900808626994653925137781058918955701303922977104529543327356520320186452927387307265025613284066953385751360538780186928719558240213101344962883562246670178980270122771197538624171675120848189531935339981558491136439129008108027196010987923314530560205112734489823772791990162102023222269133603156177656521524723410924503016385751916696661163959451163676737250137622506501891410250699739733785698687224092352616640590926045790062112499560029040812938296894101320510205212337569451047153427127268675778124462875546065155169375220864149231852270676206839044948075598226221985972218593724155401577968484420368478115027959468181267142115977180990257080864089511007108901611943696936846510550258473647396727980601027763708056085352026975014339110360981400204856605834391716933723262667005189881138199897818586269403543345439729686766373039914705036259260355015246138804702304044669926311400822822008703669936856664148391679388041577264500682884632451703990318535837260174205576410452125261207690857327927791901363187492101304560979106598969494716581730746204475884082222031178014796394599597512278655954254044357404641911341071440077451055457656611800918648615320806037063226366442800057024193264306243212075517369153883682501207154677087378326422082838998631147399087843190665597823423218758412481249699923378107345574091738759837284373399905311374564054092683729002907030655211577782508822484807345585587326072450814590479137678471169878959008404721610282746962647534188100478796392882175613686490164622171822913443509971041604577801842374997573112809712910355986777210065369337245762384350742890868770431084937395719151956539913607355932488982426420419714475619416093702345166800557826945092362133635872829816235694783217596724197078191467291588393614160651161096383646629824852890234062253559060140410732167213624216400531053035629683080868247149234365138061207423833502465828718319160598815774355112103843034853870663491019738302569653209617182118013761840796099005307730795574669042085091885662763331653630139367283799528806985428451425646223830552677330495594495364961502430283515638363644450812322111871220552404703561225527953532554275320564337411067016184703968474837037527003448298761389519752704970892692583561867108108180577798393140042724567638230192617233910181401189566750224999929327211814889588651169152323569443324107233801302883856230135434033957893106199279225095167466584726969125812069277149060843295764511219322187912947594814764820929522704142213126627391006736796588338489214525812610250922107165119398324556834721245853720116948361600189610786831726479587932455215354645282509177668990373558986305385424265811234151877739621055285776579265130547535585032816390419709494890873478466312779617804646545515411274610462426459162696317107631321391726574167034909773311493807211941288033440969420534180019680097558705944961938564825216839427513524101794941169307319738464701194598847560834072464689994972381730571668103194676293785778186462305684241661500702728743755969352318497282110566870057602685067622884015226598896495050016295162569262570191581710569864232586682066594387960697833024183720175475750365017134997492874690419666538063067158391099982534027844528041922239012536283224746154147656940447055967916483696246929038525686581409342990176970754702617823102338700187474321364929086762618539811766158093294009077443637777853796194050226603730530338476849080771551797253174458416784650929908974058721894886568846541431880274131352271392816065662792921162046975879983490493060487086594952431007217717472439334240762062734684339124857675125120290745948677554225176156179396277262392900249939004540274589118899738978643875812598329334337488823048593119890019035487747987535491296676172061500352442421504701270482959692519697008449218818815098611730857415794738594356750991486522205880339209948267421356152302770451864956313787472568423111919582870954521697145802972534578863732145830413497539911813072424655632139158411128469666599898246179195677525219942643610798680860718104029202745395036854679053153319555218345277354486364748576735099157627906867684527251989209113186127538372954839710177508805880082516022642661955654656172017393817523401990228544689829510535249786061518385963869665472547800435804991858885075919620369545300793484421399401011007369918211856451833625669046286877457473798794140295913789943318514766171003099915454327974897737613851550976339547292695717858928051561305123020654910121312111721529660793271273737183530358952319910160647790382863886494501835354854291193765111836395203861097522484107909358187613978937569635878754354699763728979391085397842448728064106681496037748025145460009685526241950323113977361263717487615741290364572657013650758327524135066823643194276701147726564315532107410305628981528474477132546544904954110693976827941698451373708972855871474139728385349522009311443117306798849515038151110667842009478077841268896473961315139655297530424353309415462667651246827766761546584892838814587512901291743531029060757436645166615517247099091285145562690217508057545010023807428822291370736584091168154731253896106515845812957394304046832728487100366506751746033038054218325260018974221840643463645695937237715526683566921113579023198324043280811401902061032659777350157385745444457776782245216204501164210623906133050782158325639435182589417345794053850994765053999265676731097937018108823422235182030762602136125152738398302730856713854192771982613058572268307604429217489995009714469595699158791912930245256909314946196271710544298405087166854010937835798073019738315866348860292847064688992861979036654237878640414053291329043674279644873770553526535847268385890529729867089791652042144872762201795497253839393518739666381515785065603367601431306844919752832938342888957606100869004865507152030532921507918186276755545221191368587127025054201716861193207007025729809312324898642678299195603137266844703574950318731294421352401634864914676477950824864978688852947471858298400760341277523068473320187719587378884543126546203789595718000661480153170056103139015781247926676919284950795883016667312176516726971912990101969602789008507829802228798547483164093590387225823417722804610415876890041072560758619290236648396744675386702880042914172074412350445938328324984320012567112557577131781104698687794909549771039360270060696887376789699716447243758696101681792572291260422571583166099602132162856596787227592920178093535299817256255000007977073852803866358970781738956388336825984278118997638239024876407760157696156224145144089533269903503384513346388048535693062542320953787652070698280539582959359708855767999675862797452321480907344507236007131382503556846714877500919824137453343852777630517897661270305955087239036527742778250985755141249383384131097026145563231888002975982944326824106406168555898880748317633996298435818201902647795791805428271521467987059579424477044735012676530194841415961513683385429769659744730204236601229818016074497277436262229967745808187196500990532989975691864950307259295026002475887184582662280765579106639397379167960297830779962492248710454249255181128303749150540652489268144542090073029710498631159602903438806991774230863712005225778064363828049320252194108390202862589803395970982020534774594549495821898380215037940942024379026452941180461595347981125878439817064288494846275485844120754965954840104250753040933335556961194232192086382374473531421248359228767259464984553648888237111105427466455403493653929579458865437207526811158313623552264850997986794386436369783275073802797815404510448859157600549677819791586111745541858819945182834233846025966054714205294759875911861883742780309996927272754467876876891689551919257393835191480981675602245934138610681145663650285556367497045747324807926997730869089851249657335030915473331159668131779389421403276393671993494990341319452950307080397480016287954076873999237093794250141848362235213692440433058089940151350661813433253200124073383186227215206710211628976234755166894238579549481139723116244273901111236268335687723908327791586248616648178913500237399306988551936849920369775992040537487501617280888995089426335715626128973494650217572494486678177289030877257736029991862174693456219552246628305945821373466002332733499686740590989694764732247480398280252753301662343244602802761652982680468968903403905262854441335881951490428407951869128397196641872837246345480553401838225282873750117040715923594683175329579705258441659545193063882329461873505740308406857455998182158236730474887841492681549213063467420180807172060093564345968638664245464166438217608918324901255931041530410096876112170496319588887017707634491370234002383412682210239079917332039196209347878894351511332623139812836386751573919219722602194335347033688699242579664771018588212598578331877577643057205236079858544957811738748575018998910748977696743995920084568882171671151619910796919242926503902747684247757077124625644132799644011342044966234772577366488931520175553876005942248262940302246129879108596102801961605992853010229731930707726535534445595491853568593242292131338467301702648560753817084432081678089347642527300307418707555281822263675017837033863741426928984243990185751624948812268196495776169030418568387528634000661445741224606595988644960663430602955733027815512946314872043962108856101701308016422298594596268362882510206856609501909465104723129281158399205286116540032121200662846782712442853356573809736442139795011202919941230745861863558656519990863094304852768675537011815224908512083911092758194713626866371063255495186894996611271593556908874351911872288130809092743937931591462154076599957852172085797286653167790495302528360519259757829370354966685745006327857952025185402123056983721133607262460698969481837693871602270967863373091236208512458236954936581747664733424447605722415467922312801305579402920154745945993946915041968789455777028364013480817301893281491199879297342006744444543065757224802984641183373967821656709891531329412991592075031421860053764279882860032613485977254302687812646420747210613584519476747952280085548319599605748479401392508486238642801620315482059445486041518355180607875340680962560369822915190574888688791845695355941977393064625380184609664955857370390796622838534984351874125494164648008470924655836542315669452802195790494584412730374434610442551746492664947069163862637361610457365212476241072011404673494523126299381657885084797203097101589260626889215904033610860145927518528156622692716044088568594820172801500878001621400583964862496557262229283034497132117506535126656442825795493911138341088444102917258394387158568533254472464436285319299503878064557942222460384677144638160825210164004803510989919911224908022535914644917077280327885255665243118680970148533003971486880577729288711176364412140068740020759587476186685004201454132867211200574519847290591608312349960474660588030096191575050242894661294424310260992661485120719533135632089306404507289318664959993613205539615281572521118237200113217728103598451838490778526441039035872969448748849565588233709693233559066909085354541157302550688751484021763320356898779576307669795475514641370700407464075825682173029405048071578424423955599721563942921798515053953905368628289401798057915814611982799763761063926704775206383169077803297812108983545613769554085894078969072369271859442878937291229870591316150882970865123091623810907327295471243442166312260816236158800787624739968306553267051041720992293585429869524192646827800578693083297181515353292510261707975146534453024739014580367277557258754168036672840625928077160896333985163980604904391878485792859152111102017607553922060516780845190763356061838070161120258263490647592532275086176097493397946748006293493327827186168490408263636995802709257711375481899047708684066432615699669603686503718168733425225748923070796954717045462859567403010915014610189575061210092500112598115006911493834501532744817989216553984414844340943610375597121270300469857121132743889733500188698145903371494542464878688936110635384822107504516812945397259193564734454554383765415665932788722326712967343484037382547583445214774050455175668622669649056255199489696129576298756906694873262161430611772942018252975852221990005886076562646439755608410161400704443117307013288016602399926586523296783376556166953292394111238010802212067230159415198512493866939009187026219252242546627183178539312946257519653474920898993567750306913290284742137949371334922788786349253486881388475254462173293506351160253687098433447150951476563450083488295664575825020809746853641614949566102145532986758884274921511120640814816139238155914972860837970836395880252331287503737243850460432362575636654422145341620121259181857968668791647566077183670072765440103920836335120287687673983261655541065284107574298463293640294539444311603849055880916618068304003008499055251619746327671231157427911442579081662597998446606305435400922178706539211294780811370670609740651761130180584688756885707992679576953051677862611358977784808030206571844352172133085348081305838689208190698436657565425782057636030979383893414104050318656504721597092171981611951793318314217055054980830394042146309333435256850383228625172182748233139054061468591297843587442535520910928975133753330973650994625178895440754348701261968265569719718222346923875807134006634911368693547816874859201159873598925630428606311147736748688182882891653323732814664607429968435908990581330729927913675772748338452331753498981280751059647046315177214028746349667533283746458407082503614930103016138053257626728076702774839787793099757871388304686412310514277492093174345810197859893937679838551497212120544686272180058276255352139682891993894642059641684794281511137896876542746950453852483975495669595901494607160907937254984120326614773343952150805120288566736262232871762526200637014156478071959266426793476206996039062561694118100091971385365256042156934175108656067392567644475715893154603590652332560509141132171820414436916623205901968526778881269169880907028834241400569151443312174515492251527065836884540019649339828353148916516874798956687820046189085492773384631070806618932051062967399352122336258535126486430802990014398004985593584817726826029389381258181256306946164385251491574080635527133229154519982916016755675931781210813256437297115886875984120468921631824752647983446929654840232927246490465570451204156176725048200707988395382997895805737822801148059789569017894896803496852393935486677449318874548061088981408409235980141884372129637605780008974037877964466627374538167928743987864074475959986856579403477921599162712388547004406761233162167775328362813604681802059180587462993453266604164446315950642218780874203607127344595025608362531115377364421255589097680840923914193221941224019066454834402481303721134964567908601461629957827654165919593148531315518979267977768367021437637219170886174217939991087954367235734245598707757169499656144674179739635046084925382305717158492879798248709328614280308566439759290349124660448795471176656743331739048602160059825434370436202239288644162619462388495944503807368905162628092119199360795668149679843954221860320173663677444313230109036200706535558568221597481414703295429031021991949911823844629338810184247190936101136675984116200542749081418578771194527056356537454099333281382857932112017467312162305315170161996914197841199885731626290770486686720385975577072959746561607757282581409474519326398179765626911301576937751180377470573624216034150882218474186054182469239267703914909841811639608518611490599580717002155888096381537982294463354921878830555867043212348662642597284135966492620877034659133618071403024793118369821154931157025289025651225619672853840688441469726800359320663977848311185360593884722722226360959341049923507304202168054626606907838516814472651532026206483802445907652972462010462075561113933903580633503049356320879004288145213135973558980762317721320982532363879668918134808872223753058723993209518341452527582472268051942843146253334976482546225967780460346339972511184626326940206011683029378672160096970809149768150649951769991600268592477210065734109774841754513446723688533970804720075702602800451035661717412706172485940963826525738503608907282726358119864211860306231280131742592631066817239985736449700808952745212076620383609485522246615861599663229978469702627913868246049550149113194092283593653289921462812281438038572228065421967370061232752895484523415892300133733047604983460351929653413385088324078348839336389896667109771466549007471869398276288902122500347470256926060608397710112912002316953275104715399063144095712259284322408781107223755516315643953918959658453477964312902310946099148331057789750767423295287283842625549427752844571534511090420232005919708078681660063935105211633390525495287840793152029083962387063803349550803837222158947880286413643709082423240473527083217461725335467996944159048708796016636848451011965934388750971282434991351802127538462974392509391513045275079641712104362757334902035223951330073243009799802621751479470841900086851371044293082490012539972573594996817491020251795530830333629603211071364650985359278995192042801046780790330408887120827538891374030085520491128260424988021970113445982040679884798232906068780850509988996951242307272201637862597301039949445795234538955184003719731042496598919744101199956310220190330502677122069330398513274800945626611402036702989921457478414454399985618177847219015131003028613277101362039834678404989205522749534345450703709646700975549493772077436971503329038991651004694797042902495638464204759182829434656779956014253053084415771648461695341653373449839769412152371411010816966487170399330619465717454267469878124692029299815099489930180506334152197905798610847078791773983231622950416379588126262471100584794034282386348242201762461121884452484341828806642181549055765812530311609657977292206364405229790546961616137428735555092878114917341934988140037168394799739318164216753345955355484653236200852984874955543697103397992805631273955442081450048632984860662326749947724010773977529013531353317520333700462574992606737255802930378232860257487134446337445053670439553712559300987689133256106898078041011704562606824560784134333722180323329863008569779071608123401108103007292774057390183566456433575663354685829268369080903061274511718094501583729856444289779518630664801448927869432471189969549822129972710132026807783575419509849430351540322177982149003820296337469264153470959002585996117675730794520679515612175146900548047891376419869882982041468239988150438952435871070254441505871339726590831628434763524090304057663441215187367952401374102267885165988652705370351888489348146248565201355660041088488824619859122845889759805933692147657896458294104300721075063200243596625593316355312245042844694704256220860236270723999424047707626189001969288015013801000581331951966195426041665404481624309296946650798078390374447418953060077557530895380718645555499592251291088227791471466431859440417709728763978174893583791359015788868199596675975211699017200607280139132667651178058589525774026488146359879618847964151557034654866134531243943934384261338442400062436459703103226147789556683216898498232344865963069411274193378518806318888937998860217366479291964038551553930190150386688527938628625094308823713017899735045297771446468392248839112459726012134439361460865134597862540862282311371024148355204435695229440674112289033266667270013586416976576381125123719072472509200701954008689294530611787690303587932553492218529743259682020483126930680701161757429454796860909738758062179679799982143974033954761502915153798130618929197700097855628952511943960089047998925805283966253252006110828692957341949299215365700731685767070964112987956117519893760180247982627865415750103026634942335831665285554189918282143722371593028760474416756523202233676022425572955545870748401326254816363514301300521378480354172344034278057289533741893857503081900128703092125264055115687016877846465536350242445266485046280773091583259080295622188565012705976205111088273920168510902351191018273262917621504564770600673375683683992963178292042102865077918257793316092325876924649015425992808475955079416731947426048737159499103968113260273317476096194787109285317007227274314720787281178160688585084251638481840677978415897609894657328831507721493720921842293167658169198180472359108164457511753625536920768170009782682573461545671549811408661533418030378753435767343749359733991940473368536250840699611439746744690388754405183717563012679531729457841537684034287657379422446727261608265800302761853391629880571843977376588018205214833523277250832310081886641368197446730850958122417051762150229306601954409563179780559721603436885745786108589693252446002520642470966078268592821437805240448992028412151093244900723930637598028669433487794561757528264277751981204050123365635992847803814658470125372109997112174427219310292081908332867244408916511901798030871389582939775631414269479684940278604645253671742499258370404552904746087056141021714991216870567507911747289641054624824607218865328624193152794875995561022174748198689094647957148839850563853481497704827772094668796417236048332526669389662203925999220788166399112194963007280451548955323969135057461397130254930342409633011472109493526117132539626262336833050470565960884023953922029078904179932437657583091033048514684419160233683983029394038787628150912485368109666323206256314984165592056883701957567852988702266933218422766335377258855901531785459932291645905589524680767921550242187013269975012115109781111851660515628363172480947524068350163558606281495521450535724098745730209220864289186903430461104090452242947851926785817953999559671838569650237126966249864149036575600779022956464002606710636951560730441953246367816269347652200725536063936800550102640227980446564377095893042859095608827739677934944924440500668121468565399947030007222929606990277579580519159789728257813482491060727782434905977591978518474672233278204987793644959083455458627081856939040690581096737946650463189098251134885593563473146455322571941042822107881099423772500078782557251387717373615860944682776254141301403234861490469132545868639910045036599390298819004908053275376192545427128796257047038365369962508378745696080271162194433509132856179838744043621487999704513589293183078881284910164960172653736298112175380931396957488371754180528901090159194988413362453297301708659941892014029495266829337138322990585134875806632171572178719641687324028198057400661502125447355494846571569346606875585889866151849189059587530162730036869631863264725805293256792664734771149942355748869331582363350317713905596969564605289838971714206587198587260937262520921656163994564176244257741407426355713820365370326472086508789459695621764826550831960120409313137074256818571506596635110577100516430097396385955859265514718390712411292409115390008200353730350250383453929794593676105179356911248706242540771118378465257906026889199613717761008445049247328914332184807865638439952162617838753367912603607065712256908310606870521989727990107710287546548626807010825763027690655460969098418834607432673303908082801095504122379893832201356688582309946308106388819827300169077058172175842082767321689240440130297762334161899719691868731087989672194704752329351657307089614361834054652871270676341864001967929843200632207853344670445794079521676155155394470473015892311239295870544416297261529505975619305388437418115145646354167341295770338903641593756957816542809765725844340972053685946109017346306894090442907603104200262259368750896262690703643529252018843085031935276997158572216020242082455584879651516776042336719295001562233291112278809251432027229071439748738521339170542504060881089688343523284606813724486571932308231916909322702067558296740296040864673909227367340672382131625214998393073789844048819335205949964122691068576459800912940126557804029072910697092062664732689827569126625521772102509853377755157609735247839433875878865769934496791151494231241780783246037131534917311100658306244699251141112607174455705147952817780653703783980699960110183946303002563142441728413811881866669358255603465280431007460745674010145116015806289752714392684303933903757024397910143004606239809023868295384279788855483332496968482640055837759466415574606610399426242318602541244682840098342899933356050366716129486867812146882712392158792596952049378641173114390542092623954486847623341447628224240687530269738285990817515929992936495452748560346371250762576117504166502432931667069304581092997309440159564671158337207743818322065441857232742274746728861030607371793276540664034601344135342568308643384085294288771471623233512522508355999317553784361461800277174464488324968027630102394036052312643232127947675693438899292469285072892767430464399255231195697846805828568934890293414089427797756482130188694999854204367827602855776517300142322424739556745540159741790574143113788109613304708487104591024514712114867556264600760524737943046037170348040962682390857714664077422477391995781272702610530827791283265248568018047759473217514403001235097445125154169100159700647427180467927194186291375119033852834657366754749016727853167394378051386151576906081929193488733253709939845911314660355338295450157281514739286820321694351738549979317054581367036457266546074315619101681522631486219076911901815130603933217535205516148156697194536872720249151961930360368957255502935712315722824477386847166539143575215495958594050351578976264601301185377479541218473841862051842524065480707124676010057685993093256435493202216861402902935275742943084703123543565345189050918103165133463487541445776880551657230393209266177366181720954223895786033208179863782624156868042686760185207284875138771825864528435442502496821451978522351245007957141356969818247200809168447487889134841670816181772074693674476008407244546674997120049917274298766647582913649112855014082999541437297875662157818486867504974136307038696543943962305558550542775499032300004200702056042387252818881272456850364373594965475800066878319876930721682567518650487398525869735684528307157063287656747959639763782900673353639210912868080418436024931623050112022096015616850999511244143145973631741003486997828654435194513594339830697431866623769907362470265783723444951792411730724413893959373912182584492806728148443145028819843547105564625706519474094349371740408225021675344913676785228849265705245732305231370198682374286896965932405532504862360495617610404679428140110208384741043519930755109180700206640703470477015948030566112483668551238209687476637134855061455092338537213709672041858013707319837199320464312782111956718678398099743777045300981849748863203522999903533781335082938134025485554152900134422508561606849904934914238818278281969466290296046432380441541429067482885018960733492272018197575095645508868244433886615138475610304445067635315964896526518031731021267815768119862612456858620619375417050308961175708778439699258812400428814177381327145782562336422786571280393754468038532914379706193595646742807400476122005744755102788394350484512571566848724191568890543191774578400761875531065523221152940363766109004690183174589806673273246704489248544403061679533987590571310801139042484109724525097985875463963109192728480940417665473431407188521507436164869050874829504568532045339701010363673166546491883631979535369994387904612069410039006048477958559133565727651270519651641125748203991985889748835567584160841020531639288814710309171828597745988911151020291842561746945987048277576896986796624921025565480345483115180815337168904229442679019345394594632068526952653156648309275705010825368250911722879207141016949198322856242681704062331740500292287575479623212424875400224628970061782176615525604604917810111269237207846032075535038579711841296497141348098540199995951615117524888536333179775097415972146079952047305161103466424836280706285418772953815105252230899697925740175426346205544075701293615870907652003570357584813430559549407077087226919120767130750865984620416671598872950526954542682496235646040953910312802476659247282270182644490398783795983848705805794149932752775858302941616910720535005822850920390532847810165075695996871106428547446285154702649266704716504290378823714443461473810425395744071657716841303417705900382716199715235408519395446462545075884090162539093485488680053103292074743745551900816557559167049931820129502547788774832944833291228933529132921405809781827017270835941650985588752507823938437563300681627495503385553042943757648054115772124998815679459393313705830561806683596348538445957662147918306949396614272585903910717077107373847890076409603493558257259197837530247687720094903847960813425727771540507915141398387620112826193349605155959951794607216953427805716784283855758598194257139456164670746021601823356921112941133015900794149074711374504026885989793832488144176928518660723635431652352111634064775884296789342253162682737926163938040836113572785643633899391150172962051214210602050988578949044029064705824067587406918526189011657472762556395073131713131956957301799288110952171884466499262882946696525160893493285036370641656494544976670511356923651787986735197492760855151900988539155909100619691918550661202812419485175659157760548434849861929461345724087109549123119766930738999818715242460605201285328694092118136145171943119998263420106061024849417529235970249945833448522482472611267138803195153168917836278386351088655581260031200671100437803487269404482670234278173483707803470711619135715380083942489857849097325366617662398070199271677177377693685521387699376724984761504542593803139201328814870495045306938074951369744953638582175986678519453244762506731441999101685037408539809552460404936132750983980641539299049965900895431157167289147925795545674378332818495464926685828717416071577188235170708889125365796960896389442289204025339487340242413224155003560982741853395209031925177197352756862119711990562197414356685890381776688698001235865792957070689820164259390719942219046793277104996624147749098019702377728509622101385538970518876100801259154570297922733912960194678315276310597809443607709636251628139139308710460939415898114517791534806376585386067536519599294834033895884426221878751621187760866420004572073599459554272593296794770994122882069453558143315033883948672186452107004083043971034111634961086298013547168042764541075645199909865645088385211233352398407040202343394036609294138916888106776781233091654861787784541565981558034449099766846024182581803782905214547214186131970082810519504786042118473393673905397212964294460282500147585951983064435975064781823395955274514271145199163696585301984411210094323223780812400019693312457257019001255608355831755482646699019074918192299869164287501962839321081179178293637713747255391276246523915439431838080715547992066058091264219001302909551085799797990307334664894591287949793152431382092977456509135086315625432641034588108237891958743537468384157448763149453747925886443958946778458825572467735630434739470403789272541475461208077598104525006805752222092782796972133212388579545183724207816862641706749946395436973434259132879780890897084144482232738307250118119104765165388674336419521358284024097770439114602944010566158610907524923933270568388406367041455756309466064965414022530199752377070720437420119982071073757635405264383309725432217670686708956882013546076640366644214858429505025364807610873060677326555850442719930612801159945028463417525376884478727585548152576622875606440602336325541446695306356534370719317089816678246374406085741137337680906334914466538785373114536642128586866847982218146453540674002439368561365616970416310261745542820687532842600803522923658841280079007025036732444260202814005476164480076678382487490059829812439031684893957763397099829661961008751152048401719883964626286888616006747251695240506116263482119407831332378144637113430703947518561862314701733263573823930910428130220971216017430574153905427335231200679267361058069751435245682853575953772589352831925175571440472314014970974914641938433653082534312773552933079068187809348045747495948765455141133425653817286747901584389572709534844745345015623447555300370062350834229079959384287684272961291784349097293099412169418580471702596954941703588201309616258793358098697476118235874082053138180659024428255310960134807100754117031425500899143219595460510452111023943449418086227875318882298630729434918238625831937310974782554774048289972315074467956288717007932022480485245328936255246550861909074425538325328613286043346556453580616344397117143315794808629695294022934067626243337455800145149734783258543137022574896929097544280916901233668188442049176226094238348553537000879048229001790673345793748232468139600512020135511398795761182888308552730750141293196990911710508315667422598519709279329693693917922534907166763315901672245349500086982013440355796346468658979631082292631527704506232498845299537856104487237370966127524199372108878187384219764408677148754978474757090711314735975422259275015574075532547035488733494378410502514549454381924151789898013652241640806765343789626971855394716979475987885086061844499718728160055311141070789207000181475219272400834006902228897200474127039711457822158071664941029676341100893640708315102721457453371294909993234040127990536707049025254988744624834690149643754985458733044606236075770539445305837182818093798150081571640798227983974408998154396417547137954029628262196383055581317588069218793915244221752110512244966276592112441933480461231181158584409514945116498993439793955655339313898526451661106632577541450614758961456451216676760604782400201063297637030322722090229427550243112792176685755721144398485759342012390920845286302255473883767705360292770584215107203732225280825267597114628174760877239981653875136027611775576625073961733623257614568945156464213159195966745617475331841704730298460135138450846959971141374667968214432865671559651068433304785077786271868430019880945584479759742208886088118349583553892622553166662085907270032661685987853465477262160109571677432312920194875139181505586424739889194124944841037472573487840663414707590280372976942408821711122855180490438858271309348401277598779700530058300023875670315333499293420405436345246750563741156795557730337080242731646859211293285084659960886915593814383896886830754259171362438346969224331782836506579840158478076896005068045833923820198808376897029255294872699361153437939762829950878753817656097313036797038715825656592969509733585089702439334942688299640015008125273799478151708250423685209514386900036321264556711414546396769708690131972846818476688889060445242022061958212894708617437159575139243175517298510635382368634563685573886355010806641297032408409610286455905983424869117604909527587756023834725673406743070052928738571156807957256035709361504697073603795742968117484772653120442641372425026914346990190800866141020958264179710160925077094467103790651894167277975647488077565242111039474053875442228608372012631123965170757481729480979421346162608745173969633298131441600100645160586269266985878644448868364603163802085635742051142857614174720617304175130384457663352296785691781178473629207955009669492475434854361087986814415279689642906407838429808001435575770740836332930020769916818286718839488989328569024324690785715470126898957265692112430091402978640489524244255479903395857314925971698819238355273814416677463959741180084741076672484009971809256107451545163537014707803040043173362202141441422488157295954383580344768238612312871846578493958842492908951019329287256432874358392668594270276651866403691390229338991196718905208305561248450010179034811275019249664218029766611596146351321540132103401892797662783970520557237248538142678249993934911879402018916749597852174759668706054677903036874422631562266154393694006636903025552719855126612370947199984403406349027673449059123277784811289466854570458698903436829868968839741206697987792293050437482555820643878657343091880198509842056602595015958259490685352084530438187194763509982665424963682500112592153860411057644999598735397318098115801974912677504699366789298958505243939416807826280103426691893332990639869611312505480850685306362759852555328013239772322343988361101914561050676640776775398041630901521211690464183852747245274967533748410765885525411608173717196985202785117873649720517324388490188586637597219121384984593819952462831046630219711425987021146235022592472562599443516867606217141432425224008399229346892037681671769585538309212963120252936868182703301980359051429797710418374425948506422664402830668077499805614171926760390987801424392594572324723617199509668662035583891917121314731887557039685434063260016656080892064556552662532814861053359561445877048402705484290984938387717833287822537396962245910385664246611316501885853650346074976260155508981623720809754626557642716993505247209904765662352370219700045488910111963722043229971755642114780242525287223051214948915547451188632324019708403663069860923946920906110007829593522850616448892412359937207941140728735635503052112876460096735040847051646086227386117990612925390991411863006487943062094197674930830727269455456081627059085852369524973157408982980040871995841001709141197014187147835675816353721899350353149081428200609423808446185645343639340367744881476894470034041832723373670943527465046863648085816015154062013202577406953670534860470719577834972992076579850242149536205157555286735344303307190549491622751275271517128980179534096088200948368232545430880843110495204576236086117138342705894991640568850605694856429634895153867998804436840858599371706043301492060567366380914709054039406844609799083099756574846256576919407004910345575390196079886950482522151809949855169340926417567539254583337118740102797959127263824199928206982178105705125105487982844911274115091442371287610506560760299057783357541038116442948551799414485188711413792192023111778157044524602609853884150386254171508846760762976157816889133237880097982263752490869625357580737840026771360925139323033765387341425251438814524688487533030702935441397687382513140666155458673148587491849317825831836766396319611374912183982926659270001460493614470933639283587509562481711314864251929657922181837429755400109643858784548861892182625952306950285552145325873799675651777252230698342567805255884668902200814472986260999227360697008347538685731796944205228235734953923742595360226061615273845393504198414237504113104278528491810679233995945813131331884432283610344432047513162624509577919859153487756087019923188940982681933624383259352563473441787192761880391532855396096448324245580667947422902147732118117700374799753596623774028684245515407213288477681366250616227973159919417414090928133579123141436485351997148059441864724686479971104616459197563884197533151366309933703003574997333656742160586846918050869825519397048829856524961221542150670396685069925023867252298885859970908888268372183582455207048833180031872945505301962718480973278641177225253198487893043949145301888433624415564718379348877547388385059070842401707945821900553732014308824687982958527459929503157801458414899213673792099459447290033162838897601109615362316764175741225718131396395620624291841753337239730824692650854823951099742551434320638856606431018874735476272610777718636844274724616335469036873106417448296521724197442947932070820463056766743007745823768300459169504629057620254544682974979838334738069747881950664073748301731286216721713473759230179362600050167503876559521968840325469424422196310129551297362732069520514592895191269923564295952840803697945023348897291483917810456722900773646971064384662835536118138398582500789083567675269440832054145782781699466295524193765609239097564823146125663548791587179251154610847215100894572241965769700981999788037808506198487294133803084695086061886537039483676226797681665516820509640760091240743594948770836835350232320122618008721208164982990603714165084504093930142243460124297250405307127706629434187245759756721598189148524299158672637296278489556460613450170608142768778130647928295095547615679190363987568651394103267832859532593534935716009377460408592503670470784603145494776427012656793205259495661723200337373034273834429631677968276878155469590150485567777975462448476564363359093754664302249917071913403511171554786897013936042927693598090916914002112438681403324805583105038484637864838452363675693901322264506849462508209338131698588317564196383449747518766666980095144152703377269369952882681231342406247144660407621941768758743761755532024250193051547461108809119165039473688010284229109676158862787889364750753399525937636574376405073822370292037930051619731208345950657010837883115449171487330220014453792486414399540675029023879074030248445510659313285516776161795514186756128931122581682936909146453012560400700826272708037070900840722932759538794593266217221390140425547748670577742408698864269106947319093893279004465269806032641639909938294021150858531297769567449326167841199665757294352901088985426627692632591122311022623159435711673604344594977231830360651160647051630318146293906771231476654721123980271347705044945588818516055626737852988724408188371888958593384096640183891513351443679981392070386608400612215048501461567749752268375427853789856713022884911683666254823223574779061272674123601846456402109686256186342541249759839099380603126075382581888187177385541354542612569487794846983061262819416959595147218915468328877024529401114368346909851743301832546018049283955456224310593701387963454920388809243424324125761526614194390775142525946537862466609413878368253708767951578295519874680408042926133254507864312485474708502277576184084219992882563415903867499552333653564490116213282245348965740057561688630521061569637019152791594787101755486723367944581557008905999009044482778106693182921028022585940382161747969802476424411078917548834154914456323122912481188629254706857460627324050737251002060120807143970806850100043820151902677781992569089289459456620958981239477008214605855994169047975121184260594801785618300469798711638798745847621338935382389078345247024145880332576580633858915885754498835348009836929626215635603021910111449571402843955862544073714474154310680238139691133731671040101787885827982648528325468346192704930769357916011298429924591273227271377090220592402517447470261823164694455776327464958533736779276983149882067208065927403872024156414833661367764084620504349938751186966109647827095938374360841862668570155173715476179734645246793510140875829300630034939247917650413863779790716257990298231909887325968594217124862715251976360297006841212527169707313906154157230195928215161773195153203972363273606435721718623617706271519366748011612964130685774689885367602429126820468585645189118009970639167586059638025623313985798534268764946954792627343294458081498849925541901360137720226975923845234757282781488142242438345808509895438688303670747442763502597564715114747749594449835255320459454874638195792955888286998305158886332608481086006161204752434564613092989363536493993838510552408710715366454089116592944540754087308160952199829007250990785653496152017832482894295655046019311581868618948381697739324991644369753150418742501518033661722385510710617669631544958405944120540723352781658025227630563612814447950290354691429034330621792881601293931266366812245185457490953445211174136827016002596455145636131951417568018733697932273217611254730351778313689780092126157165998237192483405852632339443099306404015905936309328614646269212528485749807885512058712113898013341032085032924985601074604889532438957326389863856379053202431593028195484530683302098917433076776501627631869597742581460589990092870334455056956855641610278354545892772160416542322750831864311551762338715241585744294608858690827313394699032682768172725872583203950110889355761257068982853990003874400571051741352064787335807728246093947753234452484402254763662588207640233259257662530356572783603294287432869731051835527204505688547294913197265945087844302038354097572440093855758472444720733846241290853199703310857359060526129653324213273494900734081220235756685656576781289752696577759883474436828106059329403361854227534464565509900093868383272491052949343913941149223599540200021490334672268462306347036165087763130534507015731107026473655347327475146840890973701108792001878964830589347772758879657800640490023859977370073617247749513327523361984103919937008764470781027911432645385792045980404360189180347015145068474130011943847706840037060638458746124971826400219687421178722497721165499396929188337770328143851334014541445826065700121213595785144800072125486501081573923636032753194021482440933920444778956113875421498459823875370221092385526608457995512130157558326819080441451196407816576139690823561555689116123215640224530252146258861046233076312801106700158069478591592058645051343347923866949498440492737280344651632664396177901840368851976000585553003635757771854894462459066840804710835549892428863272537714544931420844986224822137603589537221648281496146080284513176177113242478067876301316875309480507640644398493848075908816263474458503154553910867238978599924760344275060091755041468902339678450765493617004987501672100835757033587475662005493155361522791115943206059959237859001078276948574461496732793133060413360501244634130459561875527094011438567794679731707560779434890009534589870387134779704138776032719144517849243931557039129417719575084569059362059705175930929250310495220008972948912542249784171354001867196719023955073260449012761426095339972795119633319978377973203152811445533720551582044496822503039991474299613792002852902901254712728269186008200107779152727793164522196963767132326582072847037182668698571965992148169004922790723989578187172023481434969859370062992525606860099368064626974366051804359047203735157580386953180802247472964751409188597541836540368992546273165934532150989984492140635691565208051548009437904159563696434976768953959389543540585686749208896286264159380266691926514103755302427442017361070097739696416844235202255230607344255864111757318972272746592118917494920288429109354682227379745065412116304090370253403066836690564904263851447364054977651507284933799642181964453223602408744529632116942091908300615529611895482403752334086417918173594521913874999303669732178375808861592211707502862945741394683159673926091852023444648784872743536143726977305788257181423405641392878433815443946924898950624644674006518355636622506574101219365442744515519555366981609585007614801366848097587845824616744149274903696545325723580216626826310953320372957348959402341363684278923090407772595798047544173940680946705407112579082577271923937651082510523122759317821047308596135434927752739280500250528431367401556371243263420160557985314601322628664578654921827591200738844784343230948774409610669391270651290286824514585400231149867831181042836273175152086201460997583367148177381521100705496235478909798810704181145718642203417890472344351022378793378874351933551125708358558224477261849281574364747247961958997225730589540392902768106763413335857658898839219842766198369792421765173815178641453678416085473975325843340748602405794039775132762037964456816036704713002517737979086520790779829195122833798480445141323496568652283959327303465379687795581646000722687618362115452529589729501546213212448670210542862782926052619647369937808576497347901588317629472125632676469154800370353112703505589293971739412335242418954835830380835422238540526933737872816729400156733042288749901801718131166580963316764302355485756848971437225781083751218577322994924511873491485382970778553834946458917728013493999479280205740420583918188111107551166226825834338069410969746676480297024418200795833160253407729689277828455861750726163981535107757528323140794402099255769012863913863590588580117209833996634533609487977017449348783588512478214455737968143292964274786806644921172515239604606916557313519073558698525258602837998405399026710868784996249510370890570089263128611256835666852229676734540100276231108472151676422947961792146365712603701630072708200984945595560890672385867452422368894358273622190750159459547698342860899453155556383661649120482082288754742480647082815917818957972484443138234965041584327649879022926543074706819698384403295148538633789607685721198354015615512955299059763496913736435345301193727150666880784572855211791827497635890983817694036073629084208248087570363583756753450773722902945665866891570587163952176555553871761500812080589042128438024194553927507322239681518647164503950972083423200191627846126594402090875036568092880642964548460309190598947838118832691302492334591433146738109496849667371971753812939647398663613475618582631122185611518289039932785598851823629006448122196535619157145448730978948462954292574355344608905857369733855220168125849815251935594703791355663478605744336641646043855994412331769422840902291822234673263613282925994441216452830871524163012856771840439830865243942576926558116233583143946550069331072018416307229724751700949621784290849547205674580264884611874675151600890940153149089878342344449895544697733094690571339968803180499587163401722265531020486156397645651254624746301046599325431596840163275455864350783097340328682404533463155879142781627706128978887305047041429687607386160630678366666142551360027592266708055965958461614486541929522846015217785392656225342233434564524271221122959223451556607696239674059564184303509754795482176122923319445991980365166299202270967174691750107041719970387171165251436845094915706957551809912108823255147700641638317011409885487797861686581025185960521276995710675607781891910551935108142180575507489436180844187395228013408710864703043164090783221062787450853853345261247499669170981099239150500485615469563743150332495417729508617909065917580684673962067644524357132957721263128679290388046236344659381171264028582359643417450931474534837496821406771085716636137838802847850203508674965273746495248393827113309857002810642177268928636303422848283249023174899894510609694921449855771552624055464874277292781605837571492515891094044668031784697296913107189639821925371291453676005668092427128822322673520332758187535617956451865887198984843850580089418145497632538477802891088719330005243008865890169972062024278704331749408762244913099206863647626007465369789538918594492556998667903354239348772673703754729789923445242560101189444593404354750998034276743266654872464982784984504804446256553047711839952092535043167652892478608373231153386541677277796125122688928251749826109577145991407576864738417135542398566953044164714347930422384784291447301441966893540723500274430828737018193742192137848520969642198741834112110970345106648513126660920612433314714953238354084679212891820252129093377608831423625816925787154151907462275845007394207268205375438798464351030353687701221271862699926637680515626727637567724876279152391231265185201098274626887330284544553551285470757055551859804725253954011888399811046073808304949995417743753272311764907556387968407331605638260449133285905363069665014981931667015049010383486174751655247576682293546216359026417646256812960145678682205818522363412863394239222754089321501389921999289140472387198430376158715638662618703260650187357512096351829125446094782655600433616318192590799074793380975689697570210290721526328005908149930905481204178397056977593559147972142419806460485938141315187000224693455805967954713867738839152104921985064583330881986990245687703160999604880419987171428138060509602172185616954324790549262976134662327423020608082865325316848898244203351077830549640124767793472499919084946597072922445458083587213671368489488074433003921677625678982117118714402620300123886782235550324534175927894240977992464409815382316331189405157340570475573216901576465022599384416183797315149868596887319655208629089963294167691084569122348359356112541203013252120752268412715311658260941885195555733206714618373236073194206598913037954857729520491135821723545447181235226935346072876532795818656691461303277871805388383905838474097496291332426106776368491569281653254328256677647878923818609483838024480888645265920744431128190881038725062534748113825313702857825436372254802031454752840226814931000607996392383248417581809315085018597482627764404473541922001042195906914033673790923567860851055501253136466373175656511191898376123762702664405135922556548116340891415740022223180679894061252595294218173904474668996999966943029633616104878880758525364037987181523296879868853897131083402032896181610951838887447978901418442249986652057032967428158205104093189188962449712024366089327303236828894492347620493295069216101707231013640710951529263069041707709253041518326230595733447963242975106635531262809844390410085903130102598664809129154234323792711238864194936287540919776293729080641660495600990739539464828740788163964867157861923998579072851456275489835769894708212563329552853835575781401533089630331503358827855570009216360738485358563065498242998440697876530359405417464334518616379629474610667746943506660923683831796519403126809943908235936084369222875961363054627214016498269408266452313185815712753416071495127870099062953769858081756270976724611238926961845015902762622238658781953945300986419033227955517783957432160836232039357868742580236807913907643026897644376053155258101641428989542301313967018662325880347096794137306654297441808959619327997349034303611009980245579625018881009482576305647377373116253978718924094677758345734143186066431758708965154805338606777146163563849791292412977807787324634870767416368261401485932238037997238669537010102122095061623158888150258552583475863459865393432144011340722972641640924134238794066611678862768698508265903191271080440214889257611902567783019118329088382547620155124963923508646111511963334586966629560077812628290049318011326742428242603059128931881996578552552924725680015670086270747880222465204770203666478619388386065064140057005309019118659335707332465949415757844409213157258819897237887114112536729785961228658383914900558078971456384193141813660084633660241626174857996463925680973071753681387880708948849416336280573506305909612895963988309157000305398733620496119106245274056933821080823976568368966075380553311626715224543706473177188505408750439814669982561032413183395438612592907912624401587939388335081488878557602846244151559967177103189751122361482870648712781338261542957195861502917540019430080770845432538763561787903992295928425899801248690972903623016648380974441378987980694923711091625254925581589640471458080962897262503854642440679253268492245242310616835904068743033834464798882754264417932881180264740392172561572501880899482706161701282982791729387556524341751211147932201574911747204904556314784717951416841109827233095480906963401987644637331041168251674647278603527823407241523114553838423543298163871580592970391819085972609181213630009971949208787355562196710155396554757605473271890014134079691742295795517261377164167794527128380156489705971919978420906982205914166112502195403339235053451095805520139691344105661822594522985246269107608074488923064820180310550935739879003901413945413693371648163093241988256350386032894300918668401875326853274155201728493104991867442216387161027809655728074813169004952041776116432162126261542577367921597508782862105709097336556047888445294952149764059302607994700270397691911338399571092327279049912760380694684899798337876236337200290880981492314353558624575874978967224945971309855761231316039547198137553574377656041807966405501896249769094676822981153344011165101480989609278214708521497208822488539708885530262630457971471628655189136694932889943051273810235921503039275018958954012419694726417293508868019366190334807929366628798636264994011662978587374225822446525721607349978720106147928811090765332197808567072009902679158860023925203232903439701462325857664703327514557357034964007527148230040613706250529930129750971334055351492037972839447628063125450253556469825810382254370808766715552187179102935455694235537710803563565095332945309415268568197165954282576247201864306246484741524173429061684030251725109874639333850430287467287340472909824124089392877651135747251307774171308912420407220228807466048642770812236270442448723205449173889302887692102676687769623287408993385615283308841296741794266879553424942839956796848302362649545843403320082040633511500300465517467686058133948973813744616379047033972197033232131736673387380357754507550741994597405018503107274668024604502578673522360644608101822786047164945097273653752870550578894437406326264524508208002532313082562862539175245422558110738405298077822996548011363542445834428595314084286478312901333311744781233567750398039220696108304895519173032615095895706786344248276709036460182939258247127724454008434730878932593061343138680765284539882558045980296671974380420612938045274883089017364754677305876352101186339152042363126162667943078337098433489064690182173347796143490213266872383198781599815466644320957199323786881013476688945644241686037342092300515414325306230837996244068697754284378876263546959283483206873725273814988070936926675745489830383605073288936600756016121911853926377497475090783778469699479739756723863371723302747685619075119307884709566505406346859469592970778314124981958583554566601612474317285871359075263974644057328446072207653362181588665970380550585517905775937906257086451589962242216938331776253215236247359970758390140937705579341456943433033396538899094867212842939062013650810238691591757816759122572001319157394516628013970776711912947310114937347931080763892946858188924110470625494543031722377189098426453394859502416221598072518475046909608309921041437499778914077261122076461312908344145139625640802033805371601140755923805040018006842275973104933652587279545694668166484854927645919646439097187379348843064864984847348762556709472317693021997363474655355099674419069495684522128035753272107666770603028130534239073335020655308847342257264661324644498149298257286235772152217091992960726333842468146494904029730574787152675348441639183061000302237777389619032683644943637887549997660073203822371077119232954076389353352986043341387057403470715313550154912971914837731164361304502391463616752818359548730206500825323830554160130758717114441211788429865443878787319271574268124177624736305411333275661912400194620987342745909194706099020317485241110860266302921615373989419181180563867865891236374376103159241802001111639051842033699533597853690461202780275921413739583598679454644229641352131121721603886492252957454247220399117629858821960682569659255567062584424355657772847752066240407894845436342863973802934899739347850069231471724614102072299699567837842468922374919939846679174832226261972282243863269873011607172189047658329834184816864560207178114050860463682618731141079431168211401803088670949315674513846559563251537473781362823605708328311787566031181560394866808035636344437876114493242374426995184935674042670953825688841778220150698437540756808649978700134781505687765608916512628103348105793129988353952285701286115427036797232097786010600157859279442240648796447434883341212886668850426416885574184533091670248986976309016171851084224937390425492695866290480191378018136635906860542367882650842831774824873677273177322243399650319868326273602279313646431529732539030910717709930755210476103306707352513115453967774296123513983219161513626842631506292316378478597470921565922331497631373154199452402857462155426775077176329941189643681519744488987372024986425712984968050580852468874164923698725655533329990703213197750476827342762679914537196579262249995040352101671101918892122194600980589825463800157527175758213351904551293614047351126898811231173181800261893878013369572094132457794098485600277650495717132901526169792991907084773859954486266097272012443428934910565767368207529048996359187835359615567307353635182157285735630910197220224894621397532119714920098767653585937801672181904185786576823700164418371142412122289679034880351363983127482592681869910629515947732308710375662570074324064992339242953593395932690464506891012953310614946311924348943206549634855129933605062625111440973779040215023002641756490183085785911675937751092449145787501085454753459404038965005946139666611341020783576162211777876993803746705702971197832641354499300046260692759042744536379318626051360140230075388469361602374896853117763600178133178714351639663097463149689427869701779697960369509025427021266824521083456953542956556533525875569125817179815428110753423919698846034301398764410673253940950095185165319360445664770055449563829596668307055975274665495158466654695750904409567219580062162098989709273103042648369725651699705070490557257665380723887418375292388606378052580705895347204615035602046621848033310288187304765266768211298104194295201362025551734526348101805026765942864536751266700553663961893097104398517724220742761050071066853682155478658134770420703715878523625553624978062647259635888343075746178234272650685781454724531632268787770691147361543621156150733915085978997606594460702015322851782091624198179016785640023471665137562054222790040980009263395368126361352521899194397204743958814081109517127464204817910605243947843873114195798030588751144153236896914696174975613513334932835351520855830188942193498079170311568282139464042876313687551790341992992411201833426579833073014932794051068573303044643335992835663766826738582421726199387913843807048464065689516820150305360221527120885418269121130398791491222285778102405058339283916917254868957679539683716916527638869260546631251614446933761496691410735046975831532825891263895259399519601742307152990505122086659085293163793492821343587782146437788598393473806667989879701977049061925262913703606871223373260639684396912221188378280337425166874901504715120507688819637860880978817625642323977007309504093254401837324806185612420617511789311237490997675970027514351875084830311480571194342202016744043385722452798936329986122023749403521227718483511998704600792494701208926712207488895897518765598582147695897580940058682096955679157094047620111279392924017637551659607393674590764486772327996358164590148049640460491717024949981879308465061268065717290678824292531227473850150229585756529959254783744911566328521881313192514526769291318350060751388999164973924294908424937189426485095871873349617048743502277521908989580672168979679325721410481491246952870742144272693004061865113310617592238292300610213322610161629081155360849454730083359734702806462840125323125839715579933156724608368653082995415326749707019484611680210117911047639985329454584647068716695301270058763769816657812750156155828939867161194199927886326784446457585624778950473667055876795482725858833836819131122216004807245617588974647406633240549786385879707023796887161978048807447964881569470887943033073600377801258913757197293153900803409600608746676869859139294214882112110131050522499165960884519385548363332471908930601442200703255508684266346639917181372236089183848644394229230666885488541643976745348266151267679825500523124941545172384762621394094773863478713524114348481885432411498484146071155212746868195493948752260477855674608780254378921532285147232430409260169130005339581460287928983604909369942170255925229875887057349193986332726953089034414847968898238327491092996824296559497348086707062076723883054971589232562654521414220413173662691087678616144518031039671453656581440785880345057422253255572626815029228784504243938731833138306831955842894046824945734446948299241079632469134613780397183327202584635121475649253329107975903963962357097147813637423972670073930312907960235577499483056896499440101163490865373936517200539411170032965387677840469940317543696265165833530042882733616912871105194398300743442961132026288218224290706351795069821141447292881900415349549807276984711494715616366690182016720631216069345595165129028268401066156277288746190518684161389947137777991984315998354858211883517501300651549625243625941325753693752868699530881674053975748750468194768295028738158437667465219712785289224387382782742230107612020381506196898993956545287546318942345228605206420407454678714344826231576797791474873063366207876809647546396750415922281524895024400719852188595274785486313794647814104810589312077819902010659577417917257008677922960009564479192886646636389278482553430842936451212198629392830303913065020894588913852357377449886450491119529824385988764292802825080653115628403669249637019835054693664980597910837866006179303785378354733035338545649751533045038956158593519447461427637821219293056969942241816675393214491739306973055054903718388073050310353221962223903408463150343210777814187342740514777704994511136004062177171857889461261479101384195865122983822720059630679337438174910746461761569756656626275975095694705626693276481403308932079983957002376283413659793647564711632885562364562155569212165212456362380741730770325273036767641415778412867529512900700850499303082751391761171468580268023003345431136631572281704669214822834553353711196483790196152879492187596761385466670238067500717865809844395757112982036771295964039369146762326098368587783710692146687627171981228139190221636768368175107846095779036044919723826127854757483749562446438392224769028188940659479230014779696229509021225180587553990201045489893679854355501693058096051866322094976075171927151587743914580571981081803136946325111387692353523039194704870622411613405052967909552137460916715819930815169334424188246687195124122800212934553572584313381349946732944661298292735408206182829822134317745733673304012304172931036511865059692053450272500015841107897315806800920609778465702321722624472216887556839218539270593083132904935974212971824685057111849117637608871252894778647760582833189473184277063932406431541658590390097681727951391461884645513795056310226974834221420172081612858146060912734789795550340917455264551116825937989949822784966987611882508295200898501811843220105921426573290353820564139763024397703142332350963038387221590755615518522621154121915135075747555809496316915386163182990158607558506331161099531329439535384757517155137905989500203518161284445151559463314076259887924224060878397821189380948425019100377801597652864179395555776052139820522779678605478703521638523124312828604572512477374265255727612348634972115049571214034243650814726557285110642572726564934667097100286728043611879417717189946957690533166218765835367886389428142874990926037455843702099317677604835594797700547501038118471964430963265379303477399419610020929888884086666407947925554268213555836168337407347406312572403261370624841106685385084261410490229644844829002201073322399537813712413522849424560791494110246964602994570028838043072794220535671941882528501442633744739386029770400675859479979545389426890815714696429368422564860417033005177761615051604173828081332442503450106739899050453398703395104951501642997965544122663062483119956579956533282644891807844660405193390313712995945036605116090861408472203060054735839919005685452622497673661299923594261821755125444341958406964770080649035041642639981652112689413019997278785181377201019782190939674388639226470841370125727720318632682011730706871516350687047392768917103373685655215808089948916345782514698951051824139427249619963734717697594364921666527885990473014300637955056914703931807910408439240189171187799682447117355288903047804796964117686396310009160348504946007428912122401959072496563695973323988425343750045827606174882432047623732992425788779562318459805112544187642948442035558707070213453248026656643994063291283518056917513072675980762677776753857541911170020345309830836003665561200590989781935670018671477093042599703689729183842110813960976877128193090379867444018053282994046015612378485191875300398902006446461295808310894696972237913958240529552057848822517509960817988685094364563808806974882240044682046922110624372131298841244448951463033446495903661307202657853024610340715203305236807047708191167554550655207186627847362616653846004509429340133862446327577004196920109932625867782432712775665012617142257653179002454487195010716528362310001328349969123087796336872022520709510275659641660569615726255135781838361146295929733769471789195393575899138938125136804115122812941884782486914280596218316502926148653891050447896584021925299257616174900892451277445448011296796587558497459904550147974178578323076491904623083126689954156573151144704304455616717330196339280013692765473452144888167067983447413708917023030345782542318338390047542497611664054410566541607745274464435594775835835583938956936814898678299660845644292353352437347951334006299697110736391191273454629868858569005979507706860304111600518261630119103285373037523138990628334297426788270551074834895324221096723215180181438871969944119319755971645483653486387934902234701250057669666638244184171315555032700688769877150829127203982727682041043705924909163030087817515475511851919794827248807696902894627845689782224769932030591469248566552212634255064822835320307665542727328471076464952731139176985245454807389077575084694577412001716887396145887432830595950751188808551809632977976322341940677820404153347998526315358330773114222591798282295693200737675393935992302805049740917999631753840991057003622004972442443898948337482309067231382882121861099112179930336914542123888180676784797375871439441686015185516304537397928337345418543030880800545868052660055064835924856776736274568239053107442936716342217952317585413851404697634016944370096141442955313413210918547099532995462079057381096815123223813410810923183814522832367457217112301350371695118943351612136083604762433561353589705246541749545319002625165024944827618387470343708519445885981178263105980301494133138692941056853516796174909414177644294057137675846065655802299821731871585726406153549452137998170751972806552104983821835427229567106207806685108405875312012970179932296064724710499615839928315194937622160907096499803102475261335569160689218807970771545863726942987146749441284827663234613464913098609277010376001465408504162184914630657402210414892661095717636268616923993302801528300363924072351644667296006037709418146240108606179013724283872261390094983492067601038665961651517851932791019925100761682654219708539094654436728495884479474633766766477049875265282864198372045083466011946686153716612295647981062263448036521786514979131366654633960082319333304483269817556733818992928324638270847722742629638693822230012596104126652112166080229651131309425141429884675795222536957937269344970698814786025760617676456732479095962815994357490108164605615308689850572502593172516932162186862095655241119440943816763475402094123680958840719956007463096474696272299488825573304426560220894796057259578543735614691352716874171803961391552180297498322640887760923635028446714591436628382114169447412167826970039295897805998919946164231511379396405551397573381482707019594686135212864757066275174303815725396265395358882405094535527754801526151691695428678746350898161749785344315181772555598504635922501655706482748750804624589865612601590600154643869595593649581812007904333084955970448940131604956446932327656167427248481583287772819767332670687477105498476095395588557725406875686169584636097963582847811222988832566003618734115783555522141991055623584432039109212541405523950347463185709979254767083228593545646674633875682289345798529312990204370009728366137823193933770825046963293396166577142666609787049397435302334261816326595795634743263763132414732126114597971598439817943866932490546568243999377569290612919455420099704881731840059862211246318467707848497595369304871634578686322168366938681154973690818766768074975468060412695268896705863965425057104626661709673194341464593328552775084653763527768446726497321837404653763732492944354760056086347368766199231743474826235936359302463137107118874443115347909753714596069975709697122945323093608896441350218458223248136918235157217494666050432850603441892419241117585643793549395945388117478222859220247983156120699774408508474335356627582455998531474254902033112291019716454602154893489329838606020714267456734765193715925483813825890468397659077938177242211499455180843133241891194959065731521542199810408949521258287623458947350115737728803047822688163321244142085554355622637139161494475229488024456020967984189654100789210015952534252971179210889191508336623814066259580806399069970793825242410483779136713527669859366699308652149463415487596080317748739536100091429397401332173559834122445097643949515965451844132536856877572184900027718290442951241122935926168082739753748853947078174966115582058879861178956058761566910029030035020717585462227042568275809988424848228236943070820399206981180075703370597859577641596607932392457421720640097499997910112672510762731872053861612418598181189432865383354579598391245813326370883913091329189170552239562638344230234715614599433236649360067208160550908691904466785593501380341530095641658730055254874964344562782895741591712071576773191053386267806741349042757062922317713146028895732907903354915151111000021729772854862061645290614153157281438391480612987308093283466014929385125651506796629835393246642868637617857582963447514226585581764382872311415224183852349156981349282528138497558707920203398647749256201439114477911691089322069305474052606563689628302578397791741687021475618408762088708257808921322985553561291565420606403441187679058193421404537764121134768608938768264813111464307950473366767063069455115029924647773666374680375432266861407372506854844913588866789966011531388356808891694298450892472593309569108476082576718239830584967853385826020749220780413694283449891445659298274284245250321445640829611801147209321661486802279174616110550548322565162854530367804326341134488455852485207166207445247369193774607286845090438049747519679987961808838937531606811377383215091238802421047258825355191542648097281738023129552682584050883715230843105720640642880223895144934794646622792227883242011256690878267296611339284356553553315596211959688023657404339479733193185429227658914141918159881972411359507793209907446911853271102599656042335410962119239799904004165531734703304308151749080762888416515553431988548934734118161518591669880106816044512139695115624127963924695222981325539985122540248393183183887430483562080990001181681139887389183814045270475818046246315529705156420103225800303108436158998903473483899619854001731814166847046695563426423847472794352743900411781734541843537283914196168168368498931120791240895115976757636400591649637019902707186096470759614405510992518087795827569366068402314825596688451880927134527462066794992169211728425430644813038176559466472343389477048022145560543747172405818089866113340238360326584819748912302916177273861121910721530018867330170134806514595659851802018313439296754988898628852942269320596513131346770177927525781403364786577112450750274985113410661144910190982895568943952079523323471117301180500997754895493622502257758892380239891138489475311025074285595852262113335474727462751674518151868008673659854914821616213619547827186563742525968574780366916398655409644727399299332235742082613328874534582580612219698451828995438693063217040514835133273362161454091955267109959734870145343689919920210751661675173486737054740001501531968468117062149061749189697097925273328355873587912946141764667711444214052508228317079233108615378335956257327953732537653786623371812388255312029235273752316818167330907389022052438407057080657651222932710907644707380242822244015462276163159375101365023346337681689766314176714947485540974156551678314963296233894532333050832276162554401724768948769746148594211128566515685173180755493525926222962389746318569935620322070635435954695183932329444573884566761181200800999727539579982688660747514113416519277078673436848355432739842412483448181415677347354036479970046997127899943862776716789453152100363353159165759283269602857731849319983138944152949483219245526684256105970450976234290237188152849873670854866882241981006711002015545740006135651559672850711209664373893350573121034377952181387932573482556479637763348847276771051504848466370921273551319144274409215598477641264360808292435469255341136774703898394271954339456547744105675834934781074772627026826477621143432058204302451485692244057015032938564784089631441482379738615228253988589903375221382787643293066015419296998754660468200486791314184876399859769390116419330899066036152042885356230912165755596151606621685744425845592675417130082628772072366123171923805234941184230537649807127590009737247446298707426157090533984903877068807881666614623016232689875039016102141213221489935466330654929833337729372883037588953444720519520127067442549679439188025388530617167915496152134383761338678318890859447329764055478991302036399906618062562296219818746753721330159457709199128549269339755159801895194853111019380625529378253888680031052244053115179260852940615424064248165214990785598846467848599340141212888984362632805054075083129494643380741846899585560900891208582059148255202292310261593750432841262067379442865513617348710700541937464222270687915865162702926271634747483531816256900946868045617493683133337737685519861299543342056250035205874024268195889748696324110804459097717920712897475315783446418690193637369366405615071490074953556111608286685669865049654411214237678154562521246799145193140221502021538508723826865548253930393979094842178046780319835239894534973733086082540342775352985599576474287563398458440019009754150822877685342572197508567300676656016500555497328833388475092112490584571003453428554330788603779349182200983937761483548787690078912682586889514757757509764405169154093947094756219454211925954029683996988657148644453066333692362434930125312770682105782632384972665398361176120795948866800578991279661304157792150501519837674732495366234445560247811330900737837810231594614643622905054546536375297172898750200152602883590234668600811337253874110587379042416856739115518948231363121885411038045636379416402216332127983326711480430746384294043118608916715526288927845428356263921157768488841489610637350345223201808362799613816018884158876623018293359660965810748091357188826403516164865850692837046478215851782957976741213476341609923779497086296351423346694817306867152032957639099801145872847749033854441246458299880197458595956482183184654385220831668778788414651886189334773698009501112938540594190413872970869926914076214816250284738348819317617768672776795792712132205423431589563772007030379745945517820417962997868164980601508614670016233089408183153193865174939591911221299086387722249264423269152082952663232404464927637061382965306911737210079754178886557952453742106822505709674242049582393875877788108136861901716965022663716921550775541693711707988219458252478054279957019103401245654322157038448231846589447791915496845376700453570317721771406252241098121750640716295011921873976213458744727289545588059361694579232243566290626788879992382447210029369311530241686444875325003435703479890677747967849579706220099495372972792862475684179506404385534067817675758261686813064407587756825565816524514710024520381988689884492888096531223258443414246235266736083173198441349078531850882582529837654808816879274350007413282944389619681658454455841285163864361036668897790220580182002591387728787493919529611463340698350977596291304380215513669141820889021914552366766809367612003253665119916672558879902978754738425663155269655825330879316358200301374770848128437637507672606353154318705130684794758784089960080604018374729278985516650650957819672537240221670665077085549574510184464281656172478159123435757492187243363179789745411071105115662987807383302551862299427170860463836599681452913312953667538348200444845444222241101337113539837286405053328729944162704509569749839001116813939746127977749890266631556188319919919289918319717237130664042295575392116831042824893124655791599481087985835365772526257316801615224152705792738387877716085076768498142232909575510483329033233606129095036956470932565477613320378475154590919951529937892083885859645370499372950804680494137599554582986263115274542456568991133095039310344588029552020934022044487133332010013616414630619792338376693664769634752195808935360866908324167668206392465164200015779830483388921796831856740842723849472093944789301465141920834627825149146514389889461256264178299874169867837697504262767696252779715590009621261453652433478362954234393880608153912810654486718422916114024152954233012376757443868363182789419004379112824251408390009534125379331327433398435245310910365190941862249059808989692971555647330665132584504252227838085399238756689369501752850141330042734636802736824419256458992656962707378360933171264280744305052907431549639556167323415057116139737678336379684041585576497115772153088909756849825891364302972273587328179868608293929265106450923555015926632656527579834014171956201158643037076503913123103953714198660323951103963340888575607916014663338249376800593601674236294392436320465035792766068187950096264901251079563328973592803857499587130745634901561410160340444134427155353039791437103822820321316352302836368633909238892574400859702567933017227871315672965095741117755354331610710353001431845370409181059198575337247295701143137469648191314990141001002072254202167664351193296778818722234205957266518614739589405863503634742208778501044857547329220281817956272665038009194969113436093112759467107809543834097679218933752049214070092424836631589430675196687348310917760527651267070020576244664426614317052067190773857773188862856450718764505153608571322278289231591728048479423883053440444453803301488917336359034466619718951740520195910038869990614950328174772845396608288802083432869536646330740784901482723447936279837968170249314654396241732219992449467951145892677239950806230905348641630086352901237342013110984436348363737033058051138750762025861977209415691441782835104768369914390072608547739746426230616455125741672117301218735597050225094999488955760894451863807631306479047271505458881308856143593032742691881475609244458949997787492917932651457408487009832911513216961860440289952486218159342890480150955639666633703479827695812338975473803555423175870180783552608829456824175918052491842046799504233708868431777044512443487616210490290862346562987026788808267770635576427286112684139350437801721743276920037708599091013868071423659739924646071712732840316296060075528307626238806804501628702641835886354341564479552416591243603655227105246222506454940813366978008776991134051004686540950274046833549620614170543980492296502500154750206435513884458652259311935379041011832042290550341407164085337923992021442375127717157611342363171466835234943600862462689160850484640196561590243040428046085988635922681251873877643702469455034027143495650848964185649400644761746123169040455801294942459947319460343664959594505242338040037729297236701718611928144904456499128827413021872995661272541976909642412945535370242144567284940477763706617494147457587570588992701963368101156547635764106087869577185074716609117208590970417092068023740796734467976790637295578570686351287209698096032863564301914977815121349030200321372501287160544760213013773404283418986512047832473089598831887747840706242556824518890306525694021473187958235259673406991642013364813809291316979426573562787079793165594822093316770679015413897450600792279581017439412613464706308671566828968054259443508750939911431884930851512924890445316788385319129142319212678849807253822367101732041298639990182844386578680078611663757726644342677819692201788972617999240429720688710426596524267042206087099469545353646056400383653821512692473511059729632377227711560254657334452851357945192391516496297068942593830524536799530961778008803628837441123031630727646606170795246079939656921472574050819500428146619589466697769125641978950874807953202712219866610939084852120601713478598743070655183394449364225048203289674855692689419660594568752090434209716546340935306806082983587992376588220957981252548467335768684793406874652733923889497570841398672456527179222309085995630330774801283865713024097518280217459019490874155009192950262210609771738165826540689398587527462238569862150704340892775014357274400034903181242157033838419666607000545222002487101767384301064199636941451353567553355154040639039565874260600179532302704703565136958699409983639725019168381593457845578064197885570084798456008675429618486005024984143788087657549708724604722577500726509522540256071919052375494133469741920067138175566810671402955490523233378535712411409620098331448701493066950577797213261530489366779401602974903601069131659365473963075597062794483846843068198498423023575872276146774849955997127502999779367746602012867390591037182976396724521254274078637411922972902048360641215263529566314445050788723969093117103518659357803947307559833940084635030776836733862587655756577779363625366538795617941946275361088962397345318858109208561002937082103043019987655528489147215104632673889807823314616107908025970191333515531631850729440099250743463916816088822614805472481463160251075028276585167110067555147478749639344430302268175688592758736444651221563070683196874341188290333277569768984180691686039732255995625168572907149560581615745866476248114261051829839796645264817527228990760555379157092860860400610082413242576641641304740493734252619164552966077623278406486043484060865218744685104797322525866298147010372908838301695004920470725129382925519234670310494047215223437415299561342295496534714736891122836776304491067033872149957668760097972718830411294340008411752890127654871439755597109582889270310584314577701452775382636286115696838651351728780581200476895010594686699601075991454758457065556009825225615249992533729705092814912216927437730292890990209439912861752762428851143032702314463625949002032075414747633601532676438124998845391643210066555682463677115623939464790449175191175427354426607917763148656761676802050021919001535215643626175828492116964749661157776243828012726695302184080924226305633126707637456653579923992242133129120046215359761783306607727133842802482825108776808194091579176000325482851832670065802947326260639060610315631536975576410676936169509283776921561312215774785243917788543419086631375723454760785056599522352119438152426177639904187537461273915406021047044340636023436235727596681644775501732866522594551080763678759755539193238292235399304026317976838623871772449771439635102417274512091784464070169567697201173525976465806098219239337494252628046856349769977462518732617646525772353486285390855985084598223150053461861653331657612677564336061468364518092914712554614239917790456700887240622135263324951670908711811211060304658256991589296220231082593352460214319124079826833764807504689753655277847156278942069042657960051637273116018352152944472483302309900225372928454141688491173319986995141135344507061745193197197706770736252887340927182697355154031011221312916009933177368100494666957576349920228858555657296952552753212997430855384395289511863782602819664518212921439697609175224858898976881186748898190700016930851139592107388811351461373175833246564003161400602655788463811021766145118258195420054882450567504620899263881190110059480534441763989835278782397085980131871894585514493843972259043562580328827977901563575737873075560663704182787807118113385811547435134882626555202137722361061968211373167338505735750204540269646668949255155990793099118566014488075056162663657653067417660832218603188100471815605292580853581575311081899171458506399078104529532824164465567935302314122937185194352181623184061756511569482929958248317398535375017333930186617487600501543268425463137288966970632301616417869547986683808894387350668937791079129203435572045976175514639316060612260544213968754581519279067206165080938869094785098252030560732157863626375520212345019411102400162082440282081644987461905257057928188114272409435268219501192115861612559614518237831093784220596885915077791186816065673017240041027004389189718810727855625992074442535388802417906407336199677813939587266801698685411401002432861258525878951080460934954003104641454347912513507098496308255529912673634504869716249377555686777138015362839638996343824844016600298429457731655892328098005543590940505093234411999474220517173729448310989445538251512390056324068545235446980240593864948104575765875965594365044125860261084285917331884514822052290989454882560967498725179008276421070492085065592535556518381093937593696926346860674083809902656610420156519470798992738486907529094425881641319901365947152706470706087879488107369832009140651774394854191596856193580989033445989967596653987236501522972864944035766605858506106554752766222533552515479776619972842137031873173153519666923817816673929982540606508279928234471444707168596587113665961293738032423554388455575706565517050142250474898441346205099285353645359873143502007590447366537453862546646485858219888493671868068202634184145334364227906243046758016812951833434859495095856943615981322533153280037911122946256021094929243638591271828063988857000539773110547576568766129063865150249149484194689224596913808341300106404099323718003034446001612787097749724600925949922946834343972842346994357286293060690934491018372810546840880467562810207077358348023560060232512975199763638729265752183853478114718957265435814876015148782681888477177591138471911986557270460084525319531928783704443055826759793896145563496285983194135568073348517121302392171496421500262162846886626343950597037945018311842849417091918458140652191144898152859763179821273873692801642325823863702297820214709528567292308517743647348075372331675141741995672502132885420274401609244586092615880666263434328115303679282332528902641002838422664881919105555006900371152239173974099875128481102977307730508054902191471748221112267951146831621785182230679182437991438530535700467339074301976772510715846267914960662938936802087808409056214005144789920446250203438391443769611179883665484775775445950674621411704068566512299293276849433308566310176691329312655124592110136251364967162092659379750448213741443254023085229274218929856964217315326006612010347741531519570864698696904005853617383224332741649267785215485518332033250330163540763969053753392717001582464922765827435819028665073824691071094569330654763380701464875066937596900587556296441020523055159538095720893487935815663806322111972196886608997417619475458045257331980171627341087861878040920451162619437618894235818570817378020263502324740586592785031229935931846077104929222434380586140442028133942673362126755921681065858804258220868232958815220399480777575003636356764015957157023309913729970540989546225044705254996563071489994044835643251153733677276208069490505879654342516599163814429431043452253289398701550329697260901478282830846270700619593115341524020441321963567717896513476308238957387089797979151832742869986737607037716067731541128960081739213735084720986266298360369400564605425830600463855324040212203255380825633881898439006208613618192275789644906818868015974022357230480199123897915515859315135937556494597468929354284301031883133078183570584476410350632128575411522112406066310002060049419861207761000094050896041392389572830377273810731690668355063128340056609420457997091467023758743258583951305003377678789892915230701981188461902740788709345959687546740521676725183539212851613223406003801647746398528491593304944328132496290030693194956305951906779696252638262577527415503475424800124039354677389954775652839810772050672878970672696386710457967183238640150119494583406875096396074893207196454666493390570434175760228988990517023676719101031462811115548580689621952676204707481653240334183217674671382935971972722929611673902334332298055837889293077871341486312409535532913271878714792050310748578435250798434884701331651514408831894984091294971803444273958726101132412408324824424084241136643042459559734786579238554854972557675374425262021147553722594717399024879778528013941210961662276734942994229796933276101495686018383513270847016180476926072620174600987762574927195399327189564112714590200598587771101412083525609131101437737918824298162477143894021446244040610329754209512449725229604449701975245585180201017705911975000662262711880946223083727475464669756405644112258792083165100289988773862127390373096435014310763491934370698050181422797406555664823797772292788097936518684370579788013447964460769574959743596793806647321708807226129304594772720698182793869719496178316352383574603508706632595878514102530407865477782781286768932781716111498529622815998523288548059297401000693320184462063101106858791759759779545269025461229690663483136683436920815446355187447235641405549964017042525268168377701243357391083055782791631030301605710495253803260107109565810657835005314054179750564327265753100945571861211047491887178915825922138531669526026777432920026279948537165618360950393135615132315079833059209390202024955591595860620227193107390948738592695986694332144319507649078483919584551125853995503609613786639482472959262853498672263767925813238153412545366025555526116404497343386918314524323545675785035322433409868969014897953905894215454928888369803136425496104995397800237660308762202929791723661910063522646767594758947714472980666401076355258190777351765026457776611330667043534824841890713747687297031864822678941665793803650002677389472584501610825414785064525433576048842402750947367227408184597688701123783197742954194790950727582574833386911657234246269436010875558394982801450858879437838832733363512263268751477347162062883987663955679842054290001663832296616210377321561836174271347893152497891033839194281341701832580472350527403378401494807966009369840553171778062273058793425221712352850665841611391080414190569678983601673299328926607008190250456778420279019080801863618001303551958252337525658807724022238910364813569860854367973807808368053215384651124580921480671627809212753552663167257464488725552343211865425832912961651791489112363923395388734595227737432877050915572445420608588616390299627353024667974197175655701146539783033269087249147457162060608400864435971149456295599130208717549330271582500969780608203740117953266694696092719312690288059396337051443697552443767962838391133310306338105001714665913630047761386932520257547513303167029902809225038763711069885802162993340191928463490962063864702290209430608823014558477043118673182865723601956924731607578049970534342233935573854917187413985971162151494182124318103847022125092862477054290887696977979301728858467422534326950060268247800751117944274347200139527614266548892312113487738415179784103026670403969287537533682580443100454514910910363513041392407161113282004352104983725925449453858170427725165322694674311354513393653186503988580104321066734497656244904792850211392857088330946229916339655978323793051482890082928712284014859813106236194059038452636043456530827120546828863495906849586780627310611444811820425891462523272600404203833275404219264344050975924050414651416236723632373022901639700496199646148170847702920076967642774899589225561494631179153273659422798187212646231236849943625403861077073563769828745506227282915835625355455364135825293956394378487346472972476074331553304447147416776949254268374051236694236700002143334845522541045668450884358440931421069670217464699380348527919121051107157619050451204562647970805988703307311104185378193729287017578051229165120187876196405751710108493852679641209199923132851383122785724984537298232208879499946630570397377866565243033796376962942582773401421230159254046046481240963895896435075024786345657710042225843639610752023011554611790516238476440584257037302567282605153279733164903608494722918020481357805180234293929762719228546602519135330685771240913201290292221924037569497729294147476701724694293735963157507578948562562042894558536496015499936989467999469710556873560712241571286221045718735826054852863595773988869552518455091949067517537374860023472654758974648127891529321713562606390169483836114135979518968971488998985139566005961114050297069830918521029551738677022605190136902417650702685653230080088708035304975253872672016222131126924448458499339708403169385601042688579521360557844929461697094304942033543680365662506124889435804792548039578657774679910917786584582337253823920556612891424825272883770194751979015571011387698638503553530279347410924839460949224476164341790600061994937121235873642896148951636926627734068994891492687072721476704258467428226923160183405422736372420234870649720928591754703718679992631549685369524978322262595257504154574806190899120327249250459091619806203450679318167660645922459534000765259560184496928478882089249665755612929329717942344082884602128034016493201560006644627210890003125297667076455777821760213443816885188880517493891039999291673371158692613458437980051483034246107846877211787605500833954094502069920511875686508131115190503214638500904193055710108731666387252073947511853776635209656107349108325383453570076176957529570309512080319260697264811765702957519779173955576965992898054852556663127653982183170110202573525672298099477142683622210376323349473094386594088252357402788469180109596840882981892729093100264091392289549796803368888957691206614255486597048424767691702406005963283309686046984838139190198532745641514652840138879772293478335637645621647040537421373364496499186233467183461242787576225439888084188145973413808089934057853763086563057898809350610920742794468084621733155044930092082167864567426807116452722961660251230586229620214113526373214341597771280044081105862013566140175224732520996902806018196805025192163090967302637477992429974047674116854501086099820696901742735526532907163232354795211259754479015330474733383577294410099942791715536750834391950817552373120282706041128296176831737556485171926222304222382118268857209804560184033104361329318386040024479674884826796169601294973359720607538783894721560708537673622387931882034625335454155675343240639078057480277177020778373931974358128313584536175478723498305486914298796479581929322067506167743292575151010516551523120213996152954421120292109550898593556232110321952938432572572546948625412319835783814493736278056386895374941738556363942656113840425779179384337784288498783157850739652993636100704904621979383314131852338738556410654150732514760470422337955777935317102263422173238354532554310159105824242649764709745829710190500077872693580699495785124527830677317717314787398488540267634242761384357869711462498563797297003984597649215139570354232075272908049648328390467970233366525935505200550476001362442383982245376040823197930169231820156118694282632378916700763319081967132329321056540343202511296643758059040959142418658439026680558044584031019133217099762868833044871826964098751506197421422404863209942221803151451596596025975857308386259461886583227070613637284691718014383538005728267923727909570283500035690621862696212937970578494953250624685111375329926107165834953685656023806319053678476364698092438072551925331626814648028374376600189881826615795153448490672013366799545133730723579133468030040605525900811657212320806991245360056147782809140780890280790783816745792840441509208234932136325568260965797911986275310646830768234707579712957612609262990780154256467100694040910579147686565410793224423836004648409323785611844342975757722724407467231350340638344058641379961675315730146610431076857611182463144649207258105753527882098870678812049220677494316996824447090520161478273984595572020853333210672237799142987245822176424458535509377381034044986453695855556389358111017461654369513191024575775595901809078166660056640216874036762408724591496881504982280998032544536515223734175941062587253669297745022031112215104277145615223350704177364940381284635916753862579973650032197917662057110083414571959148142814389253747936199829782816752732037281664332290034701546585056527536149317193244101080395207033591415545044275107974921904584138283235869553481357260220517399341517691852037369313065556236539006728004439058969282769251255962055842033431329666425806614391012440652657770313400510051326674989096589426688762216648866137793184262962487902749655162820050040787768502465353681425189220912575381456005178501565308332873244693446201003016907045632493350103462483034940007568289807536302129448877336655268021005183761827990056170388885484158023587374892236321149821914089485685360053280460985401446622318017400926389246849681266228202912139699059312885044737629412276804809537464246191156119937690382175529233124648696486401247159751223747181008901928402079592522792326004924592142407320578024819284029598529679030071299530882379862717635825252716124806467142355894215047892239026734057482166937476558711184519896941130071772371685063668554476891578412153165718025278265830773547927242603577099993699889505613715059592845398923795593808514699328739211624843127185789375783908955386262021367170226089313893506612586084238994050344911445782579462587323106686580258599208425980273081804406889653002420800061885642018880729004182415758571934593344990317999084994530167378502200863926308557932551372898004192070159262554039007434222454460067427789283476469487662571237297753043840688207613996611726352928422007026119743773226557152899399152857735116014573914541696284542616247884515230897300495742220454185924740070292577207228799820163501401560898162834198274678507362870694727896346060616537226321477404326158826948033887826537086201483616056201598396197501313668820246733939012243069539203414990260375803667589597499249628644300726274236606110660291026240345278546324007187627518072290096930105367923391464419950475520659267118018853482923546900084097814298743827920963108065970819324659174916030532186302331605257796749716016202602011033388777658090617912007102722877499001703438397502082585527236613016736995352737699184441873686931047575142157334257649254055378158708699051414962923386340761328928903056887830011285404104224399637993472175969124744405763298844087415957137868864205834491618640662023950798428146027094200035652166153414185994951991524150722579139410371202052214734022588698245688425057403843917758820951717573422957885078909133909523630260343727815080437528894851203342360887286969885400205994018626551816385750994612684852109855946193088215008455003228506206665388712991853201713434019561004984842429104363255289325747402664762443653391063408787618541025470430018746670472808803263176023424952393017180598569067383567373115185894188120285680365620281545803154028834769531815082054042318494416708383816901585034970043129286121731070255949327136178179918878368865863207525483594565343693340578249368611938340799350994308036238793566716659993447833460770236044060036147005993512760969488518828705416994415267475759219276548009874200856323236953605002401220562348882064375548431531159001938072411912006221201306932034010012753104610733081505619683992059464437861110434527440532007727582229810576229214960743904549392386678372998419933296783500311925391527182474182924005401689842999479168274540359115408872830258265400195576169206373507294292429074851328741118220101588464139079591880232096853886569168388304600671562306794369274922042767697528911537493393791307466786429253915311079389031951857107955867112544989409128926214503812759313442557364990498623163075752496330741612527781112574160275973758821136918022111758516128127132806868135059156604857696771551181845660815281006982519327857150678549138584872363534932718825914731778620171268493930691445543901335417803287504426526333297109512750416051685198253515868346816748549270611018221408100028781748903854728913778483733758841850341989535328279485060023308067345546204857979281504811524655985781055037951885766033464520661434198041013334966790372854460141010269313303521723552391372264305684821135394253620713724111624992702516106478425405697064654346982321200465654376334971835377078977773880798745655567138545356711280319075309221326944940836123207443613077622440580473834074685738649736055523172032879195873951452400532542447155987718121864225529724822461234268764452665316153828339980080740640612567419997243776805057380410527319046645663400500768707875892069490019774290165426603129279855481571218782229461794399987063856076037609058268895720923566491041404843770592978742107048145557243986327045604117598603095471995218358282784376463016056845950704734483944916656678473227283848551306815627068564038380789439682808049444000662767892665417764677552992155523248368247630676697391749637891128530035090465910461084883950424077576226922167274152189351285367365591971258895665135280920902158213775075515060745637119728590937014112685886946862343132007302477426440501486030525525198342824645050453759502295838793617076070353015956927517536421181862118533923303424916050048791710685349841573321159150742020864227795436628968121531351702243285125403990832874367884216108071377941488783216234059332866756547418249389713397398696189887255946012927049277451040738451202574583453530444922847606777475647348499203549343452892668185852098216588689497019970797044300740309762048565947401355137281796023533855670391894010721871212090006829383535704940512785468879468901658281331042480999721214860717320986638485999638490328142126029847169811257628286459756383805374083218625322962364469059129854704040594744416622708370211992471264654976761097726595719916844637947401138941797681739903579064518417440380889177200401569056678198724370724998062750906330029284587705867591275142402936052906325490749806518476798048531287051741589898181741577854722365106068319275291667793995316899670824137330992985604782109237904720291577916808713509461066208206503196721108939517385458836432506859290608112721739258493948875359609343418881969951438627542768105139440521054011305779190910897776422985749220635325152744814604958815838720795011213745044769803323472745831595102535543526357473283203424267646290189311503947566264048090425929914094889086032027648572003295988878342240965904320103046770416656328833308645576542429553678867902071656605575849562118759879081472845709037559414618551678004196486589206096228739390568131985532433224089658014934515785004838452839745053819364915379432564192381806474310410313578715505712351731263329740408764286546307816345935041667000567353750619797918708986482381708142037736009884091600340907893394945486268721660611772825303816959422656470875117702235642669918527986495911763560655321155573589702981550567857934586128421328763286596125719594853881768555186468350466762653823307359830460481599031775603547079766550691321103471004190645872339548054292514878649817569358928304288432013765118345933978225494810670246140350512912477904949554900893508192241278609648841009939725869408573950056322392368606762715306393426435990567059969587708715850320862092747527383690459665399289808323226491414081229175044548760025378943370812295330293056641512890181264978943339556013518360546148135896346614715179888221254565412966727510111569344099232930473729692576641819953764137880935831505657283369064991612152921761284035936472520403195274037765458628920425385943727294603866056204984203170768216134226552280251901436663294934930492756168203266277605216678302671725118789609815147916976224374274840141483951206206894113133893867237840945589597112496202166814227980241014735880708918327054637644391688143184349379605565562379205333866386347066791772978563956089434625783119773635720305766313610832381080399067275808983662347855839854632222941238145924517744913823101748476568890545193674049759716175668318931455078436014469001439250606026470415057105591118887055487147356961023125438721203735338439411054892645257931218756395439321651342351729402656287703929564937507623484885312752655868423366341938592022338605906386137534800906257060697597983192214370283409623613225432639584547842154832074321098530468341635083942533018397385228974291582143775176104798430396452611942607951819198901690091086607603637686947596462613044500219567417067329299556451071974337678316808431730475882226399535639032545093772677653455686355209996252460665871418351529896646852842965695620219681222921017040847206629537872571657788470054169866620964998761235669254919459449256815259804124942337203507425575423864066831099639833095790427972283409879492995006100638538619803367957532348640324023583501322313507896583480045540910745512019650320220538757443388581838424100661106572787739029422624729513184071244106311883529867270679649809154169532737552508969406649107285580621295525813323688314383621207014930785048613263086954312826586858825576544165654535599920514399955812773875653670621969203491219277868286190830591272491804628726227316196585115618805176459115913659193888017631443479146768861452178289830970300093600549656539175348019384691038029348730356700903101794688105360838853704487887983943441804293227596859546510318269172939024412055567719785712481628651061786918083918276378562487687146235894336769983417683933348996127887192900631145948685991571567944896456633866975437811063265212709831121823579090692333154293953498828624904445453144985235135399763933494186188131242079623192527787093683635832797887263145609812965172376322566819632305572759056548078811586214179998085832675788278144718011551471517973171187930699957321506217791213064852616526070941364281694331828214333335466762576930469859074134450775823817878847269210898385027456421044279255079463103151951541514568227559908807274909762752009465243364571406517456840662108949732464296498234258596416467475649633029864912836090218819095970315059643436691252985227148041310271699679410072935383671444748909162076226195861960281317942083544228787331639667643264798951760744934982081134260730999841949961965740205864422571756017791511824786658374897499039194088453501227822266910071764836257684279963238142920540780594795363918545302217844590738916061279564758258772785035679572682582640266929940147428673648049115156151023911454146646881430745983597355521121004081321566118591488261481324475410224773666939209403318335048922195345881202487765305745785276878423985002736572951743294872017343637734032868525554034453851395767162217242909225451183821914049724216367907940347666905563881286377226244143283360768755546250068102782160037604930444750333734681425867884862023846095555234646251119048865027759577287661535805120965733439336639866072946134444694689824940118646727841670393357918741275654474624996811506476259366488258039851369462005938451245048533580214069134196205194162546440077931332510466207514962976821948010538904835815363441918257955032171374298771699992827208880888502636286101260098389754250891231751016868573877446670632352485942430851649776094530517284112800965137953979915278035595661600200150785511958443056691494933827984866580720335723866467884753503740017746785932117804592240457964980401381698695512425208037083659300329168074786238165100235332425888718820300897250599873452874947652076013488057004680395485479209319377295073953588010718624943702773501889391030146574272782859649534812068562970298402996551764259702294023080505879895358244290850108232190854405749167225369798276623061738659070237195987779805314860237546385807848761469318028994618711635303120643113204157618024337988187991382016431737884032587730520710204386767244384441183634867703373249055657908961512589052679282127401386006181991581607092855966429627056404355542423109810399292363497035060018096601686083531621867757271203206273491149175072304693520880882997895177421445308093940903643537323016173688873552941706704180923931610054515037663659308346370709069831772791495233788451090104095381073420328779015643890757044617128297554042790495691530410900341492259522229086942707171789576045533880434392629629605796000579679507301839236638198954630015497078112271650961265498798385891647610327229478401812869242736809140065638732649567974150537270133142528104827099487212683058945516042955958750538185585424440692461575820005882741518433010568676617846752550231407381776364151783966215273976180010599973065147280866759865307201796889576198069712844738343412318905485357220703536616505244243589201327606313359540901174264644188171227591177552860889890305594927399177318311568001199757657942475971100677708456664697850827079689446708725074925091392534093308335495681363049865949165162453400832959228876358538056975763941985258026940993963182877787926663378096149021750165295614730057994288301850602705321063142589387529799178631967810647762713440653898045103546476606634683530849617883748636953729576875636954651740566440261916101979975969880133384322409211292303039059690924177875864148344857814657700185133111097104636321527139285098750372310545823939303125226235255881114285264650619923534079201156952079717295572173101820228454075264175083060812261508065583541508940516747448166257953404065229354512415758025561861088798776942565233883181947609984175326825381820157882305036234472659328735885674459507977228308337563603770245187208606073415264920568610592263025451488226581919624697035206988996940062726947722045332316681503599097354602906001763839321262217698475834924148289886642382862012892203830774087404785908312716102965507217996884658458849317447073071505071384596433367538987038465520403491494397617807523371913389803252778917850590727295625755488128385221804436432013571498439165711663015333245817197667334306495105585204648492968666389648748797600792904522879919759329856061620430869510537351185838607366533294939080698739863792524162174506095497910585817013455824480791029161233151542925145542088253364554232921659192406496985628109279804439152842058332146079139392845745598809992080386468083903111692930599981062871075847781885097700858921811866282846986587874558805478695609647184205961143098782356655177551894577925036882207483372236705881890751080684638387269705047366491314771009372930066764565617954710916625885371588739377396706976601770233323165364807045146748282175720807397244905331679646186468973819204127785749511350257510964102914469007488731234698230803896646846822846967191588528240172587092143481802092268682125428274935336722487001933299440820783691913074194408987204571382898973057100315406818846112785234318082751865659450234641650276704744777713744134989854154030895234716401275399990972892837152737553797933938348361332074419594565500407249011390920098658073815408166109353411966553357160576181505672542353496013261208236259931701103446427713965754745649257052234680858639115189946860735314959378940294641562911050721753977106395438059352336491519914915912935646298288646260829848489659798147742635245215170023075505559991871764543353377955713773784156000443126223660011939933487910034135195592599905867237942257377569840055861542067745656759781358996394604402449020034661093356097241293885398714150243839961822241376968834866717104873791511496022280879635852295335603497277130794707706685118325610508408245799235404543339244985549914887990771351288385467847343738760100271880234429061587885737125064534401264285802746040923346624543016888460057275404374087800484016172615005624358957194102594001621486653813398797024331687774620908085970751831666613439131999568440830814943902928950810233452438087021276137356135028984042215975782228678819868104354592504807612463085196790225055605053361781982145518042801460887642428650595246736149906325358610700666032054178839868389824660135998282070975462130242898461880108149232855092132810104667359792338602466878343670824204213230612870195606759594530562833408234543724423651799947568022692256404355704002290453708245503985918189035156585712910499346977135156258946529329306305971894725725050990168740889472297715549166351099093615116112084724283570738992976742968692665590406721612439663786682662908128746431572124300351144994978652955888442117570420392046787227079893897682363164647853601148099724548824614291592940532929760509588096859339303648273140625854283557725558871996657414860111823052221527762160822074412735319918909769306695814823294886328550525475053914109984801340949988928694682526066468478468461408369122902886179745424535181153159636702198806192766888926572033207649920363064262344155524793394242434135859284150853532544976608521920169449636226244280195456036153220141709587023210253215848233265904198472777462889333999005009782272231778381913603539011888606787208587941067821092894513101076125892431724543736085494033407861791753682907492178200855394388709061649864163678165109784671501974486892848780520600960418520450253643884340936147091549864778185090959936883998444124299368627547389503432655226142717345379621250634613506401525391849803903056439710628650994948479076674159155791830043216754567590285841549743627440688497455926222516677680013006885739785661026166154846408064753055451733981008211360103372326072165485713867251573146085950120139579617680439089905510759941594151226985919798964719453324307352357185236882876523842575038089376002288190625245305299622900674933607323309611980162243199078554941793137418617761989226684532712656925967780487666562597834176229420307282167228062023033256001751974202924050499229773169342395117345351007430683490168896623130373329616381464877793669945540533048779535843502808926479645378849560166319826581767673010660659846472149028703947093538418958517353844907057008688810238698860666760098245801011347128649503069077028634958294182648078717799540632469248415818065156480854061920530738816618276282892351946522693575589513826989431098005151451554210525323930514739843834131982533396592837499672265525377712323138441716061395675012007012584760935563711358807474497292533164532630919824208309985699307523562532891052094739544145189875468306329323636702108924705158595889444300602525322198965133419872345479211137253404720651508403604182361085325009256534727279844230944087065868975677202307150966832894481666456824793300765671950574620779450449887175356234174413180094860844489645185373717921533150956327876945612581323084663773188037528059615149576652817404697931280125638648244745600991001472966752140135288806366380893406115689726084902866316767698428464078173574765294974950648384983960901082661912448491841378130875300852790997073275711884106881509589569368776349943371865731428320468422540386609290282375844770315404094055607838183216611570387023426828548875968770312432077329119378684041163549894914454936366741282540046539636524345720180644001003808770654802072066722610188380795587427333272838887938016317253359575146308239058368724164719142243261657741885167775757973803972227296390021542983120996377774606531167236533960116896278085167110547739403166771704432785462367901386934771817143709511377565634002900258211154812332586166189079248646091489073633845079434785965436205831092976804135621100353586664371317956662430041644835353432411214774981721708295632836977725337708854847274641758897597761703907619843557897510152871844955411683361244495673630511255197882038405422705835385122084321263414621442752485406166806123217000036370470645487339909819091938074362681980908002886691890883498391128097307797789947180922801100969848493061097743216103367371935292720025586013377097415617098588676768375400613972825946265535117829179541387602532945123345295937977580541179443580569715242943751881193347723006616330759010287991053173266182986047843575383386345585657130575635246315496640957218678735504493227596373648308713054478944905412356483347792484533809710167769399770538092650175817796311169988081593878371038631368271559283388815488089308329840858915754907670419973154966289974955080401853093306975184963303572661756140018792675003700788836225862480428808788174412604443258158510453321465198377671861740956276444317287984169691564913112040881138711137581939219701780446418382905873818021711175142302337371233777772992185766666613515241449666535268064153075010390664189861936035505626925736326689756958624913705002021433599488424012301508545520376605522245384670926448676918424762047477040716786792000876040886373080134034645482780278467167491017361030825179660261945041456178761609643647350922838443153956537491784816844999173903938374480092001630479182894759421401794695300107783295977757591628736988744861698241229972295894028679336005708250548679612314485834557673140974956537796703539723701545151703381727698362156247976785367125066678563211315253252068959054377586992422218224057175673895649393745807303722019484496419780144162416688405226096914111402076871731217822898744923448391988901930612601834664372008346782619631322080327924845966394139474338793620957464342519646267129799095563874642282212135738446189942258934618574050312836034480958891181471000808486052997632918995973079384415544218408948513132464396660316489918151402528428029902661039449178388940432879185929839111992819018625719988160951077984524822785788157078301037006927652757230572139027164388964396879132028278195317101857212550750159178115120251068616119028902200732047625245090818523050362290315358971837583481923667031307008323655528395101545390432150133398580125118306875156580183949332975720740299757184621413982177062362342621448919616722794136042873841630909924965680965090063293613646743850923152207544051801905225610047269454821384737835008662200947523567410500090767482219253836161619331390972544609904328527815380970431968170110909642200265396812328571529035230003872094704738732167518578192134356771911606575971595874321345402669311912369213652089779545125513242641481368845478374068329843892918765063783043220412933097393856244812558585892773640691771573412542499292946229191436327516760786091784100655948705864138949677019835954122109724016884766490655150904470799836896945298603112552915897459041302355248768604091418497399832995634278640372894796141550457129378442978141040996135943315160795356183875417553504484899759571721062654036562529366600887194010300571193873543617789381874245339594643994165996121576880595990715187918360403812399965944006857222552544475296087692581301051602552485574935576112900028692017684349152351075585973699234703964695568295132288104863688589273454224987890143851028645754707014199428506467231872659920992447541458205167757560343141011510716345432823724442298218235767463378318199064683565203399662155795161463697610006950405363529655648201735969332364987058151603862693310190376083246793847968777593509693645414835326602292658845298877193292230221008887125382379083358277490204284031270888983590998287422749093083497811531440968123199542252968308102091941339814422912862431640956983259061144122868243135065868056322047325232335692708343294981850712191960887338103901471293690350034450854999808403201165012259461574346466235285708424594321521834516358824805970853664509208970825117208719481277241230047924180047090578666624634848286812329054317467048465243538099612916225891527169641917055364233428593608242124019052583954748825057118108213029450453530544985850861740700928960844916440889316240097584134013852490523519288566287783639246442636829026880190047089024067433673418100790218847240554759651015030136550279144256454195709660516587719566404350715439862585521113643700148865809901185827876504468486599061790794272962974464090292077916145692637341032685422353474112786910741035741531808829200653592188469464401342722845869056029991326987753024734077796746590114396162657461738315255593692344015433946433473647138635422143167201732897517164287729835691976308267434253399931312635860480555891083034498509916954730193726363738464855290427087753235685709591564352964089915856319769230655322697116082247499297917499512855642969390876597711831389106043305431944869297831085728919456014532643331457176089320676326677529148634168358445924530850997022317117646227497104243730166719265572201221482133111682511554625112541226067847793926147334997719985277164537868438462171868686185249966296657992217946002281007848274606705098877814668120812107128014531507806316754605821675124434854973543420988605031321550591454012805478258255185626284286285771020207881159974105665707787019236790994711248118155163181058853458065348435139715487925709276395071612948226147661388580224044062733248606495170435774123700586480078192971630405807533776487359357753503807942166419041020449784616000661369565688699439252731596481345671280209658798836638979937457029013520512743092014815958662594026609646140011153934432810417576020003368114590315635387238475882059008667025390115462246278919342348366137301774653836647923031837390182917212398104131914346955636708984055107147210661138895168004295915254780788726803716398607430583660489441457529527298592837952170065424231448425093443563042707993326643566079162816659463008610554417841078529795107591800037594620073667592692353948307885294490242816230252217842653219779471094774544131773263859543966332134275243616423420363830543520233333628518667999185090239340931807511905417852916627575782500030443962784017069721811524489201468875531764376358395500825501590482735174855299949450917783491677094852240761567238791132053564041319742727738327201600124401728274856241646349445977994882266597491428038817667309683086880103695389425865320679056020528349441337464529477724087529756947883965399133298829163350663791356520792214742778184425934366657216994286307087003024387365677129782067564569870417474742935210426104522769725328207273613421814436177086076646846162579219144820705584126434917144345722805197280976265599620989740080202777087078293743748340660164181126575958777755186489566382291143992199889473941545337536344664807579783516279195723723569237022070547201624315205941729305723608022765808812621602934178215691070060979046671217059290472913544987547836730991935072891260429461728640566402348888435627076059947181242926858423402107015915408176602595593728932142317616445996905959375538973396574141198068158478900908228873839156051325293314143281112946900408027847071979681959518939084760696496950742773988956740738658499530043258400486648977886106069918569198901636787144937648724366498958363049298563401203303105474265879397971168400648376622158959743548874856091537016950081221351481344119688765137898697835956519717454494634862599530094783783888793876990124939865179265602185668245185013140357279990136311474535880753749772497814808024494257369231269346488145297190863403821257047638779493287035508387206585362445430382516904420712710526449866434294493847576056481287185862579073377085585370727861659146318464452696290374437438204495544202837638015903084592436189194205674850263422048759689160227310900071026935345141477724378935129965992713310410212181346447650108854410076714513862551650626212808988164373345204181850469448751778862503139231981429320981614276209279021911758992234625053160991989161900828371900355422058807101410484444684673204018259597533912875050425080336944719254947331351798341615185323817307219055421944121197379344098161628469590414091418636264617906975308327323005464379276992851556826487624963923583667644595740306722742260856643227679254384227372038716439231967197128696442873087679525873325149630294738281926509018520657675440167054771583856770934935004137396951905082279326091729989732387508583983863944343723856615697531010848109596420599170997789282833019306280261205510832848358186627803183246129476799240147945695293854376173882168908001087155916878176565411651050024486903652612084355436774825379119144120086049504200595049410963855496497632952775837589621911701724731331745952392835133223641803876230495780601622251746394339465003024051030329149335809128386302774881394354832620003136880394739934795633584396801954602621373515027142720798905790211311657158173769421371149051467760063728043962438124070270203588071033075082113977287395513493440710676117744481960182476754647836447743522888021753395423235007402461704081545571711631018310352419430610297185306062838505452319884304917687650089808824210581632805158916923381432940103520455175392280847143649703695806111674990988052885402733665340628652314858410739443847698138599009174914290102743476083207037959442623268248168041500715291246420398187425484134729900903497759528417671668634603095810030130697729924117187515071645041715713842487596171079387127547184705670451978955175974190662501583330313106098104299180930221967080424634271820068239269115817292435347419517564977148263551907373503882915563501151874624486764168384824782203301778136191312868838319120963867732941720599232836438603042350275379776722417407306631710815474056394697405875405424690831443821473509966993835777579996182473275621094472170608115977619773400974438455519294894169094261074801507457409293632699949116662079924585857120017815299983367213010578674833396823037007536712967644083516595663326350790126996248819465844184509066760115226723911294945948621279592370705525293782812546170803653183065041311066958077462538820855725066745075194121804962618901306261375359099880955318678972199481300011117506075466121549637856900999363710281029197426343971545700757366361482729100733238441732934146594357056583952484248084125026998971083232872979553325473648364523544247871166844437755568717700624880330491670799758430989508048729120082873342162703625055819472778290959730291045921628923520816085905709948513493542300901009868596244461298295656722435122423567471408906465205431388033322814115766010522864975312982085953181392117146310090700657431036703607900812322466227354444241204906464123086214528203192027072038174753048459526566725305041748726028086212977795306032910087720751879490021866072018343991035811555207007217621996035387251206994537187308206514826225866456095010885948984955440988945776871213051011265150606844869825781913484041383426339879840669356590471283461496639962404633750893941713862298003242985822807805785786855498106247811598777781376429243001930340664077102423053074404015290303683670481034890378176111157880527114508702614840939212548249330741692833683183872609307811585350527582021255517505635164244483106363319148710721261136780949876153982554171597221826905628141280177501924255425191864361761286121645571054136505889665528833136737347335391390869385847888712831323361264267670741593780791046194960270240572858362270774588027687035395232355249132782240491148113076602383004152234401660522849226360398095514488262609061841032294239770883246077497279704185085866434971485899509257462197615387125562929435439933828120139777600136431592888278167542741271654485515953230698037744412707591042547796386124933460090891393077434080296767297277042515815144086714666323427356692185559319332311580074426896860943438618799013252317838429321504100140788338852027311752225413318512347329519089375502492109446942947156931369761986744209631219762603206027844109041310605026242150556393974887308038863199491976656336016401814846843743334626391042827570021248928903585301999558000862195163220203720092824795504254384019778098073801105916872052139665938613242613785147522406115997929002196306860491024358141530688024267518001397079319415695421334150656345820295693234048122287916018800030588914930322489083159394095898276271285951691234181491038182361057319096684260187510030814447052694566877508523697620548558922154359040790744263462086390792482880394329110450018981063446168037637958895929207391827024594784228959011471719888254089111203592525009290132060374167048963352285215043793248855437678082506685811711356343072685441776579889099162583057484816649854124587018987862055251509299707532663460401021291933611159029725378931606764230719164838655554733535049586820625926009550437788204099035602890168340013581624642393522725954754786274222351309539476589013562322663422762629663351894060247015386248043167721105874467965217835548078799846787053642773790505271481763972840478218847578374632987078841774436601815730673877597472361366281503636456243353020593553524640716883066138928814043429246482291127789829831668171210516684688940598171751186070947539750964777198759242873840870376837618727455057718894003072756761293077436784054205166999288675820764435731004335472765667457610613308090987364619849202696211863586901548511886371474372623881554675722181296995896704354154939901368384021608494170597625393423030999555306301742413961134204025432028614590551110020096560368550575077908964728193281977683961955981834466196178147400656556081000016382080254954150404731234649851446595049536804432383688791453625115918596364703099113954171524417799689323524599049972349915691216053311983128794318229862204197069876855042657837619458281682037249127177500820784625749744044306638055706854545817065602374354418988011123297160829205171448631687521923218998422048605060452546881929038340003660616886285090009365094923426131419779256237796253962131888289221052387353203476765702602980029948941835565231448531277626749458910475533269643977181550234213934426786260709420103396762146374113105081111929936973777162066417957347748325934493111095497695378390053812262082729005714658406122725501130402243732314927202212012114046625985453889764786700232049211844230662289513779088624632359266678241288986438150413861034552264078834114135438451831646967320850257321910958562122037037973049616805755794162315084492763618094440573119603218107041789703320917974705874653522510817816078105023180550680516438145701843830513212530690187055191011507257859683824802035513761134553832371932783313206075404239318651953716794460176235621541174891027696731835842427553810060717079551960693168089553126615696781648300581606280870684858114550453856818377087439525131649113869182917394295659518012302211636831612205096939030982851342566624346558042111285904822979340628650193875537526997254042664398027747140377728213786623048424595631892184601905228955061805400616059143941584143817095362892287513249540026941180484305929511959639819584998321047836537534284824955804617802918921559649454322520654638566342722831485004995402406976254683656379026796884800567768900435279092523710804263642721560620610653079089936632527350502318102717231646189782235768663239873075952867562030200761174862232669289958388797316784075811410142326173172554418903913654822507394627320112523539604497952240722483158613208932325143497528989312944759254052436528143123260805530741572305763163256699656804638921386988646378272946950363249374487461527942872640805790311813671205840283020033116170874623384947237723875259083795959240590730242266866903010825009516712481033014956102797841026527129802386830063598564920274668942576871403775982172396338668997280230756243724309371451583520885981433457932606263722870396383281270087197725865892469696087531251678856869680406200826679864964553942093371093827915084795897927436536236464107597836343251842105553131363361325179071203637779105692994525151920295051909067243647553297438508458129864551132918419634185933333785693758557672519311228561749225062443824253870738027309563077997843639919649147597949466276690993323945024000426304311755754818464018938228328868236956465990221581937701669386443969662459805653195219362868872903188822873241314012638158459726297534153781781199701723621965485173532023564930443293916552597849978174909427332927704249358601436020289872285345699378432895824114397970171144297021539545315526021488048483050337957286801446754271301528920349054369783679438633655259607330138437077391830008188315415143994806911446442410342238908260687995394799435458736853186993551826688784827366154435900423722881520127581560004170364344576075104772671831099339295758122954025780187365693594038738063559974840121381260709948724458782098715097513075920383240364728252381566519135268165967424820509606816933465359512640626560270291959079910642110878211149775566213476760373075972706067229471799959873963444207041454937313673983256870050042189117241675438868247456392685559937608001193053323962273375149489067574053164912015385474495655816883421320056617579062360706693110589160541766122291905956141034894155643609464327851923402089525072267634691960351635252701242723130415940701172205526291750725304591336394690708817720367092774286188600203779005714967768058254843413448050798647893543673358728585864309498836703664411335721999700475947591741965467242560199123032140114541802315268744469264028466766196760820950273202345315406341804733723167764299131056361503708246259099518830241731946611729636981791839510992736600200450020749904208510522219024441341072875449230446216234922762074341031940666294163406484093825092155123869317119013043045513591478569500085997066245598820113475254065109216331467140184343901095436495654025343905233365186327199792991956773735505240108797009156265349272616368672976338482955199507228302149799037446917882921162082265857481143272543810482765825296007537647876316018797606291087339918715150652315623715594935987673049231921670242607700922601777400667936582424621148924985424068442833831534714756904408900994944893858343916933820678416847685468209625005997798779105378058697597836857341858783800874306763403065041496622712102775862096641696435752820787254068380688422398938864349952648330138720790086113809874687720232204964844710233931752994691429440635941539811902447978688298954551229963347502577988420078023326824004652813351996156355942718172375898061237733050488667038421292862376459261213085698103572415002562303187925733155000806033443764982911687966508214294780466333693174952070613353954808734235023500253200024424087144899374989770559045441585747789240782706739799114776781760242522170163947359579873279095800747789444117814921677513348988334520322150321383145953688360957099587226488611944995270112363435146729642484658529504986002338516984727848765550888455634599783636580504503544890924758226256839088291398495390772339762662828478716930775675340904584646581756263933681007111828742765529815090887286636934441449802721438033755386146265011248346593532749155724351938904704582144519831484930051419695794858010706109778779311809317123790377026234586296449716962821627025507577832634282272547992982974297664661400528696189193816802715724962034662272941603467558167683232089327040378933936031274338141678745202199725703068587313860425103840282198833244014999948871601260601668281511359451173274341753150972382132788368143192163900726744102157095256654948563196727558095076137215800085245263255430157053906358900861394716740263750298261424542618423373374100715207686880952254193151174820781248665490959774484353630524110640243550502826189932290983401253632840736976546117311778329508996731499812293865276329496925049903017876033339617310919607581125883460284152854679590654935596796614458027715436972705750008389514441436693341819466495293187868576717677267608858759844842568812171656051328161717748933024377995271085839309606020560941934949692913917770624809850752357541350102648773503337837421494352426890579728431159629313626596578640658340173918312289563676528488846004730944271134450933067138585324015297411912729626555265022125662140850214146146449608100992583036344363439366917414536053281244488769558190181069952704759728960914338264384615557018193886835007609425265597151828822823108222378282741376454547644839390182260419869661733409829879982995703028362672556165971345087744058695461097169850030064315786575172553768332472936231282625484375698115309201766004439277264407949167976207595196513638701496816292003384621581133037889801801422615204713043174514184752309389811030057194214939037222054319146128563523999234076490883429407631765238340027448267289216265930786092221141669425239515348922671413345730960675096650214618702534140096879775185870965812916767347755151656311141108152430561002647923379119241732286852430627785811472922906746070712850436515042349564635522783076260222912558427509696391394254578903692485858472986083506636888953470249122448797151946137764478355504245254240092545485749978792566444747487580816275131636409010838801725272624657459132403312473208946389107407476433818570415222272601351227399306736389109439783487620238849146102921158832776827526310493207259772938902654019819724236002583741205296000546352686444817847514348668843694993921311417924764925524860543681261000442979239839176938613192265214522412750142784421347021962223191201064500728820356286157862462904477247293211506363148444228744936918866500265736341234894668582714452612756786233458376038888912267362320295718539161726013455072401052354671242772402821917513639844416181758649094607919346230588373287037134960074026479810836432171483746569353100842070246420533055394949535666952632122541003529993159842524671765578056682738722933867578603326904594477800232088270712782751732587345053196956249172052511830538286248064286480013150591806218122231271858359344687258222082496194226387662467029574559232879995562398667085902366090590191370117134444042124630550532749068467854003661177433935785167598595252734906794587490986005695979183696039750807345097739533988306681610104057352505221865532162726626334877513519858020358428840499017264556791165701950635410570571697437312594457344133595990849071197878520396343768897862834846222416415327130278230300060205859317006233127052849532129183045970683031358944955436199836254440472372275760467981066596271241748299161317060634322088619265831299054940030840511987764408811601254308088528900819378756360843715786504406021292270442129666492030955404536826424298242030090324141847370810254867890961075463047695569606305023783674004570036325808243358538831344398437837404439415943463057958833023969385612174543054792360209426439475851628886309833641134499600084995576455925023522549072833765129534266029149870499017294473713153980775012810387978459047786783179600140213397698083647603663278154843942348507934168445736446252950328808581265348048242005147448976785371060748649630003852815153772026599966699079757812138323538964062728302598724980698167228892294703079815343716530477049156264322384107274152734622450673264106353338118091624475572226058060792744001901855199810435259977672404912271214616604439015245085641833266522648791245397405347085213370159091485861779589824386414939793609266883518516024025960655054003785802376454488830649282518641029689159957938110496324007371114587023505643783387116682232025836821786915831087002759322369911660347257038669711283753286076716982356978770533652361837730640300276629362833428990215921157954101272418474979866680804042127839227454640441471562861483678864202605841573984529313896595819519281845991082005575680260822308214351495706614498320687851618907056159797931582482529277586593327655599839248723372790543266647938461160732623144630344979511767858013618276699719604672774659448143520759045340404757134713737377174634314755718485062137120373427260755478660711659303442857146168696977453956706105387872000770363835611053008077400610362678295642346455730863482609456179995231820607939296353162432040249234774982385368506254639756130792590099647554471842320618790785762661792794155471626856942988087148722902006478406147020438546312223132442698303935558508036112121463584591899923845831720592285899238222728799481812867742504684736692085095241774291567084332028760355459767005426647044008475718124573167779338775123334128172630699756616007849916956250753904695019948059402845688145615421537570964575029517594765390693747752585358753218044187147130394533120287455531542845867323683613957792831437142356027870139818197208597206145724922911426173993970069666158899148055805548480825851109314167476564855365533325398388040108181955943646279934660221058939207761829560619391472744264265994748279578208160245291007468881279835458194188493735544636783593850000541825998071322856841616012317035002917843653582443350944653054037840386820927613687756627969735646200258281592117486333578099548936192992621535146230198575352384820703391605272297363070124171223947494122899764290247591146871162148533043880876949819653523456106480395052254098976995524975867269401751358680965206668270587457870380367126318405605383065116660207379362547033014316201715784454986597931533107883090958714356556059048051391955880389830316276437390584282122262255889426661933001141599727500494338715369596020552878070546894669443991621665416987159704976987993982407638188327605723252486104397909969037604971542716502457973578576963204623594861172198647033064038895780052472639852999736893881437968515395316128530113995027701455711300959500399069285590242748846279778481240002651705530150887077436292588654550232396767760989230705484830750324101514053657694466433593580494321837070977900262971035674570165963809097192798417066542283723969855641668672994792790853779516122489136109457131729283541907504628957661589688686437636661777644501176429829386338463750681163556463244982330458840715901637669578842855064169723890509229450308277838451983628555352928693464446355253439500973651912993594482681981799211682848375144163807711562167331405135493922449221955139458775443919416385487818330119880961239186646685273126281627241118784841075776449517633502322408285516769103280225700227475059630835463090358862608545445865405515365081958098181978233525265615486133921411638873127261413373922663280667406947482034744877444425504308217444563410944485101407264060602702629377189685273966667178778834239069804494580538459392485324058879490445865485052519160960743520802443969462491550720373784553716763146407732080239581811351435691842200740757011246914389783138512793804284715289500103763759170177006740075430684179945466657121777206526205429251854648094075670503571890466023715878313611425075357680630654952586249138650356753059502556262157444663240001570051411546778561478660880266268680783355307627587958657459066108400684816255281015294737760397654111575107206568714982011630930496893944754336454040825446970540197415221527249365433979218706734734659113386185453170285232710595862604982499718486120971532927507247091186839547474355086566174363539212284769196621320892377013783927255540600058988349590494275709614757145565930259509056954689135425899516025097470045126025004357230188200779998172239441778050711108519037480607952291871671764758033596207158311592759910122912086583193134004086357151974482445986987205451244638840822489936468532461317249217026775944286345371214296140955756023666179608645772625468200492516097109643142646886383997793370568724511118827620857022067177729874832416101516267956106137858389213923814717644257493415217879281493790492228094356000467846337231596373609475292228975565006689868542528110199481044205542120193764492257854262881987875445244738672987687084574356744205060669342174295722713386340286754956159069832770376706431838477491774891480311260242451386085661571392449065939492363069295625887415890276157147053820212341079951973620620206375396115209818817987783225554308266990256178172253151226912026501045049438722638559847021016732454519723064564689141081466679288670106151980131853058735379867998606863570379771017572994078821337264633403017732368449263964494911466531497646810142073612104663350789343753699476199225080089020830918792128006559565385089133545748641354847647622446856896087732694879188828472418588588521965961053671785897656820280847010751976280244214599797263338946233459202147350855766033370881414473877564848336904008819961353125024783349391920946928812279469842127414884998586929701417101199124673355668939204243451907576096959744776454508947978705011878075331689647408091458127236999777709431083837555714498016563111522858121619235246400272431830506826082036823052850499255315724187560322990904029393208144552577658099210763395792594745799593791914822102413389037193273531245470149714812577578594435225014047445993342531886004103472306168425405006180900803795728739343958868786733654668859194157377722035502076013067378604033485328104684302091036983716899705457550240897255898230025994491597965262741300068191001805075838707748568763150772323490388224994097953678756072107941058229714897020895206108088772226616864615815803677674724697227588923150536103037050140548568084278437752725787206030209412852240275377763431626339290901315592372315941885626144476848086803967019924192087926425017630315617305663654999828607519087978832199479303659375340707450712960399456291233215332902779178372708002153765100020727123014022490852414981110171886405011544100403120239216453889759162033230300024015543470336824122047583226823924986483063496967950300374296133181101673733893598887363643171489677510550715325776210391623836847762534126111799587841758698297823784861624849214117757710570006465839406659087906638870618582333352966936692942372007091287043106837193905794906151429915354630259573294608634091246307506115196531144067862495514978457231803118936916878765500894189340533787928111251324423642812394106272496701000923694319411642858793726632698646856402594454396371009640629886404978327652658416630676041088358470521527083417485007657873727488269046902059000358337284822443157595160834360237397892896893216316241680190864270222244708378554297677969751111393314916084348895319262816811377238883787012236302439749023026067264618390396476166577011955219111762079927963170159823675743020418206272678857318518111470770172924488413271619554288910907155851920074321730818659289559826795703732519669865565612115853041923044716207617847602085141112708593380312555115000394939531721116055697230265887130842652608877670376588805887046545187444446198760087115959726437364391048067319697646596814618225804836182077703363784648267472909823702257524360203470256826103752731299490608333806688761811916005050796720931723134879882190997061351526631544556245081552017394982775789266402878840288449305420671122829286598786136216371594112045211109201890496806599059262974026270856072365029637904747997405798147901816096796305065799132999239193178757539360762320617229036637283324606606968549409462536685864411921573242188259184669225010736872197661032940576958386301982572598864693223159086401613550190500604862281502543031705589554010335646869441546350028631689951942669763779064116593023529774893355575094608555133910985106001276903582050435870936968129629034853243858406980185791076308660133283966089394141537255096871148655155235893225132386569639454570350434577216294191485309836345285494308888645042189471720564786093295128167226167001892084995743085030098646041972376973871736686622386989610280165724506732578832688782460854236273969054296203501075265613908721929294281139599049552569716076397147248684237471777163567014349853251445662457365776548196189208903408102632590292649198610928149405744989658018544717519191350372346663119698367394776333617464932657406689071400503660477093835162431348860608358622474407214135696540360222276319873816517155268419400079504789433054397279661826088721386595581482710261367483400810250636255573337548218516586477513441327266222967363235441110264148458308852499365095748210162820556004254648179701854028359881815240798156454797475910582667434222484827206505502364421369108422241442590740977681000378772135265905920010261713778870668075084478851245154281907714253248191294564266677261506607987606604233241694480260986186929837251912473962844437537612787934791265840377590614252153710571043017196566092706042296448662594236830881527323249043637793342259073182173369469221244653902949518362507652559725451575314120676591466350077340881099873542301656090978847661802997344876086159571141307781457461636205832318769558768536714001745752247747967690875992296471372908316726299661492534559091576566437748580011850867884131948160151312442545980617039649736881183090158159046285398702021021856041977438091916714993446847736841759102844114266623216113258129209533256941866515274257425520732608521405076639709882105115741081931042288312963586055023307147249058855177226123297670903699133549235153864453921015356434047811067881126126085108956226750219401227074063372991447079380839802781681708771855653380386692873782605438988413913107446214303122415538601665432143765238498461054474478773919893098055043215956952742439933668078466962051157394392676147967264274429106530084393855025627099485900388734598062683448082328940772046922862518181447908385145089870769600678338227260122883762106454062447881521221691529610585943641942976629945598882679160416130513548834575175748888162844148736989101121278914653576550226464492312611819462498441231405160506032622560907389212648592831891552297534288006245246329536412577805885677565063053165552059145233887929062000723702659406447655128084856698039024660413624033059967762841429213970902982039872105578300247949981528871128708952475075965688089455985960635872908557650473441592438310425898350860623270588027992586189826388772619148348659015422047614165272853226102223887158500919128561088491003154399942063134505940821994033091458467367101074835105918853432477469883885605448231799876677614296475732575450234274186176792142514126066488881169291054267219297576735148707585192601849975859011208508471949584989711010969660554969733968896609805637583477846672312029257779759652577409085535959137943884688660919533230267922880295067183069741988336709351147328100221260907845294420922313999242777139458229128995025739837737756313179872208868661482701633964727871666145794834401089866074858408586270979719884625800565206290777313388439409274567538188726957580928950210860759244617854932748178343129799091759957654130847920130736882804100470931240615990994671303900498646504511167292307987819757903628521575887820593009836394944001544637399773295705830643459402053244278403902834950778773502733580683002268768621646990475094047479255140688385392107262512388818778639095545604074715791221924011594978006493471469555958504752590289721048177254412558976910465230141864499015122798673715230813708960277431959274006712108607516294864956871613886439539349905045673489856975060009325025178686952002919293317356703022950190398909716155411711875917066289142402702047125372087748178217401001010707246769060964939336103609832614469618337597642824540356552899278258302642811583666386126479700763639142470898712422139157030606461474033582425451045916595524703213164735063946190891029995551248360219297266034918031689191204326990918353036954699328172655583401993087772676602661269371457326947177772048723821219540028705724049591309566469275207336416998971453741345004553118625733340591316192936686663594192390331389279614847459148967274155563468841862477425624135223607970328334300299628904826089002306670893988725987988766065688221195958937349014530733973898385607507493327691442558772964362780445101324181836066455393033066937396151860375725933083207491357871706707226347858340109140151287565098133889156298795264623461112591229036514628764376471181327901176385519230217585274229520769129982203943350886013773249837435180064999934298506157373706648424896641516033207690053060640992769494760349446856350716889962501026056817755619452795292456322571938107586373459906721960259788650002468485721842995692632467281428645210883308709626392699543475159820860675636670144299874663244693860090661155257799694926339546442475293943646713372949030685170717759882166173576802086848201190038779600373237502587492008429798386238962401641443938843627493547699550356668123664910958818102962344402978532249247172405830239011053156847349934639399002126780857131876367408763564424419214917167429501189470215948929315071026080324491352780125356882632145322440612057939575518134560605089211467994458652741451968495700753192767529881445750164271144306261323450576250602597741977938809713084770330838226290829505426734200525167359872087327239784520588781255374033136128928913719012926551229190279834877095521617665722274771349011399769744711839700048685921821017207056803919821094684473259859670729062261851207366014860775280245572681054187205143982061218957820006909563867396638372133347366223878623071096117624932973092862556199258251852626033110037449539007267148369119644549720164879629115510159161817570667278329803870176641114400186727854783845611003353769963346372903001209161513132841503827936667335818941999169564952030814043578176099470851118043650791771494414365943589246658687276777313451299749682275133112915914644816310410836415113021412683895944056422628577371999295448936864378622739664930239605740477656922957180325497663312256095922312392509476091250815382275279513618811990408305768682087606578218820997430167667463781497341514002229022369894902488901426419260670469085922000151175674690843149339065501006676836970062078330728275915496691443098700708862809269416446028891327290799634620095680024522332294587140537457491600494264776810840163665713642771230963225862612425869103279617498222121116019681893406284878973406923169930934700365092510904828352528468655745161897156346192485415022725859038065724163137619155754680465408148170820547213110420624405923520465169116466334983067909046792206931051963945871629683946882521587958851759677252725580115382456660241995819358435719651159332425948704597388790942673368102668533669589349345962414802437884039186050261270800411006988331227484490832584395812695513885646740342109852854585720123482737102183190106449193555439308898266938575994355839149669917071047883827843546634641870130965270632585164343158381258365107346125626581753267064842638402774833377692532494357556216478170263169035520965978118528582266288825087941946031019009123220473151483130569580001560084899798779145798903159100645816406216942580712080691694332141879203141716004056017107040519803030900586116063335866424882293479842917553749007417741802231156326631602670973660106389483430053955858384002253691309589045583100157707873464157486856609737398629982610375220881995641737447319192820145765175354949720914389522635420561499745234668546527213235777875363674295207080599656347416367836524854134743802229121341281354749244766769923726615635439464092335221987894373379480731367235642321181306264747366110982897929497375934609636581179332170744837941682619653766904503107634085281363587204631822898341486961972646649549873624355711518889630101597689941053943208279227187192008408231622275449318506817655107222565519223307937100571661372252555621882478698202511524631318473658325178448536158647663650691805797156705301398348933535573612609954948526050055969498380682809034866912678395903978581254643399577872990116463192053925200296080524563615078739723572001334892346995557571258517079779357403125846660037448706325125187644088272161931775351352605587824195398912245586206241083452061676470132578851246400831507258759137276596881160226762526894505580634215027491084052141805132464361059615493033763951593537999361951809759813673054579215693277153828385332144836268056502666175711311130087088579254987888416344061747733908147473566321809684463202876050205452074006000135939093507727296810428344430460702306001088586387127103242174919937081852186575505536934482988395416825434151882727563008655705177618914596310233633106910494813075681629829074482867309492051593336654839200219481230899105357950942682502708232074480685359683676201193143833660736798631923196727108653806371512845673017043909570688194789160829294503354337441620675064366608860571431742416919573493439990957119541294768760076626307897570352019802819741644028090635193150413190535004589725507965779570582134216686494457275353945991765583050764614857632160835785127676299734235659487728839177367356942310070620196049533856480960370067115955562610047559878483587009811852135596014900256466847079722495615702487026399075151421763451392999676543127638153964053091931983080640170465323505918256497042128608681648777825329875967168309056073093308485548269656490539906846825434464913706073646090761880925621227018822783828055892786812984185280580329124719661229031200129606066149605121258777946240355206408107781956472060734151350428679344101468869559816986321415161018548729619355118817450186522201427853026557801965050754810309854642126919205807574359860880784160284301562659377103421958690987966671675507706597743317421485213655879272856962283969917016748870680802590055612440153715273862423909761441126397144118299722087182435443049681457814594963103130527280303162587022689337100256764203656299070269610240331278096388746653851848489241868893766335896689665213352915925504827278330434202405333966572777851778934130766565393280914515747796348193678439426206216788074478174034818939222749054539434518357187545851898543558341016053254159764743214703854590055736199494463037547111613390943395583056144684954091600566914395923377507121795125295656560116357821085743704367662112566863503645231080410380981896785298449591832598734027726161564699192483599571450302784314186385893485718338577024256304408128025034428088357531733784361957805465557804596338971692548179480005117176133167187596506002357731522236936373369674058443639626653567302978138375743509289980829988975313729727783317548689860247007728723150171214280023096531637971280813564684716570799465278521984354059966342424539712854703325480840477354538009017421612628110938129877738987860684233196089051976839111897685166693716462844443275345440253899962830545318994140849945662850276028790235975306117072386221182676877821506413769890879184305122152359816985291852897555011287956098890106036175630617037307791705990815335710746221819421416927893065549799429433157579228685252565837219548891778927678968603092480122217477205901484072006950665755560891793494313235515729807894507727205039108965455849208172216332052068585519066254661880243625146850070809992894722004015994934663331324426677215800516858390744745883221166271759470419871378434224040517392361671761469970006864717618655441752904142757392551126681507562783014892888749960853503880431723739572259223567933803298574962473811582076516958138423767292054400966673076536023046342031569172079174702841584098308248800752437717352907649655793778492224589455205938129682340087464271108725894275118386158115826338239699157998222615607995090898346043669553169922220443271853194554795537241221711918233045921379351005195677774021086283503713814107002246865549378919438460168238625251209410975071582828800521909460152162806819970740687898004998175825958967608904236064459620708535457768922384274292308631260344258036704737096477587324713320767941403593379706332754696109122084861160108287753416968004203303970806160678661985885844274050911752942737840033439427918001025535246047738147378065311387585670355225508830126513332140663044751858007386333414938463574932037804121655420927134475084391505720944219085402541870370145373157805789395031541281387149074871503477109877554272079818690398949734213946564040331233192157060560627572815889603239263406254284882332196445392245464937791248896190329499538930465534536960054100452484863504815536408745719537445574848667982960097985786102932504483929266825714479035713687114334971267901772185371941949305350451758668114098887513122484602129920459875271444744819905397042926636035535945668300863753347363120189162636525265902538576720278634437933103955409370861734600230241304563419383587533219246920351089188703475898787229071410296002778131132417673879030337663787933370388836328579781024745353314744776724395330049383356935484033203490237577508305193335444784690240239499354603102143918431941920421812528178341222488859644954373945024995654464136138844457356485814474152773831922536387076558445699847523929557838465963483664028920779769048633310012169659745158555082544212645235298877261945085080266391059477948648220819440846161408939154518645827584249795999547470336816254091783099409169281053742311293445107924556188849590351566609201106086981835356656049830191990351481052695272983088022797504434263815298018834156938683510232361658915089253830861626315382133567142603882733249232615943262189085659994264813863912022652331554598036553061714265671539907684202967104366338643001481740465583628425503899334200630486971857274825752486111830769603633669803638893834567524678757075234416268156311893441542683539070879624674942728655869010657961066566698928771553303072437724258156713256230952436676173060588570299592606191231602238276602713405682216383698766098781327179748396365547788627774926667005950603079962538770257224617583132464936474759404099637153270990998595639156507506434900977157355879247268051971517542955900725699090220374035789891062667634766498630778108482668707550485574173694596319725357133645545200979677186197567373393586104109171492058132581593992789449530409565063454622590326385642411844068036254104601788995320377888391878950098726292798389092661748727085068159021116892822385564174793371034884043122393150141761666338646773614326295636935340746630561477835470832073582084966642707449736715690573741124177243143578420069256175359585673403258337454467505714310281674822825157548005296731348249967293319487176436368597817063927246679384385329781989422108283005547606260306346208745608065205125252573984799276424793190643553929304790483928623704533702978642885947739449133571075680761051325996368315704907872162625238697085775739209618840349525143856459469283572461280588660905716867042721031711706994045373462227204016607378980233692755485827189716338390444089941341632562197660998182335959505247635808172145411264658154108286137232807729206197510191810880420165014061198444119345528377788021649863227251811956076312008174776776845795994873388239747408504874721562673041470416894734547898635978583827791577911343526153818516938205129353903529547594250376599290772973060908135789249233299975495936149767440685137475824722494270623401292689020577840084363067012733768844198140229808949610618072455932260571595652165812335603575397138820488548710418227127809126028347289897301166599606171571401796455203955026858576859543056058993501456608502116555805437417287696004255068678300767913258087835424584821044733872262555888045728244321004464269828792771969236983174267831733976503401444842582863260364095668136446151282488056860326347986610280271276236368648266339805833846513999040516873179677791249763300778170983472075606237057446957507749537776536785285940473552782588907030795902289695487295902690212293488627433994215797456042361140218508175750248743877538054060461490937764244297149523614428882530138437719385557440548614827535722892318776675776470460701871965521995319303265685762398654710811402262471346225334629230249044406908107252652625783391573126729436110209756289848930987774605275607953322279019821844131417143245093586439785347886026780865801894034166588781932941687075878173138185185826862771565382643101977450860300756701393468992086813168292977759522149792196748429844867224410323141766454705574915273055176282366269183034384809581357511555772450437357281148308641249866699664141465252002177308366578684210448320311365103676689078118683015595724172511586029027400299628823681041055949650252497878234476066072977112829904420802989059721681645462902180964993961846098052250188389806359392319951599122638456862147033209232658878213428134824647080035906358470875418523749056011540194281679282291590347849389514854890986666162661598584255273421043582740621874502417727312342376777059038704623877367516794620929982440639072784823632834312715411087934072436532234510705074179314530233557125684054887380716372030335929671384824751706444825919464406845301904040097517743502102594703184149956765819573685427637266719781221920157218262874312810929538941408726169978605824150790562120169995660775485829307079624668544941803123701789764655566541237508722409318262974792389643591807717459008561322454186842792375722779629825650621812341684838983280022058699738192542458127123131074240290413029932230253203017852435437848071789114504332406508312949059330575080543005672120895194813513167946224206385002373266874741675217508789564382508379153764354224319628138904269715019593341789934532496852671642525605278569193569262692797837272491970149810296427967679793293746994375366390761155265329461911159100323437937627560093919143778553466271151410845752543465310101035123227212895470430197304512893531961709298887925467290089998763616580582933180974099567557338760000842070059453149786322882802665969326337650823422705753705836035283572837461713737709121911047446461109595136017632724928020046687379835487916026793306566827282248747067732891078770711854085548506374851537781780189169072348122169903490207283632966257502950325021594922204549897014186248987498983802348416985047260499141839595034820725852472337645691323268150801015636918501838833607346223904147446215262778612331205665462323520845252151511597501454372450068110819224140018230334689763728927996161026319172395765943740005079568640625529813942854112644360148633809213653715885097406668319755546019606173092399862421030183621851239394506955447833414585325152127249118071996307447079729614585954324374355926835372827653711944802809681259332148792805433686527227036132897712523373224302910311623660314651837323827158493190846459299649320127489007210342326098737819157002057323751924544232352298816403321928627865395332385379301078670135746325476666367664137416531466021374205240193369243182281371854200387094113681572582226234153320566980513161231949813327605168305990271431631257526201633788056690725750192294639339243838744839714911995122834032769049414202014853707364386686493721973380057822967494527992370123836532095946646383653579191700904056923745089087710320204682693939658880228693625743102355008092963431325096858467783718641327453765843594377820886015178639743582591294604855262235793686688159740391754310153817054296153330593905150309536813845332471303164512376644938140627170315047282154556944178672306972187058289644781008870380911929811719518715802382357440230303376674105384001830949388195992753670477085813182678308907030155881809654337544053466563405115394338345451608153325448641740300915175558741339824978032435324225962415762060655119976767010252655777749196725247974955626216297200556720385997398646808317460593539597904946787953843795581027453193463759395875106965415044450051382258304202101939926972351433712585470990591720397847715961171430744605714880395866754228252379221270356411832538195315056762742749352102948539820451612304549912982561199607201241837518717559441278439366437852666611607470843074179455252959652709070921313524221358652055269279172916590622947305144832147189520654336000823312460616390644172801368580029884812266485532253095956505481350873504042321298694870231645531226031457384797667424399347106480193395176976411513011238679494154925006717729409874998671743989377439635654359581655570730235671367345980573585617633263507916681216395608327616725527991440736885828063412866811068813390847966958654394921362045619430027206560963425181144481753307535634627802972160007062808674855050575166419666579038746108088715425600003369948147954198095903360252513325805616162554685017622729889597633975065159143907317078936180905487384778459522982139290899251257710082597612901998993260227767490461019549921422318120130947683384587609436960432496339023636479439107461313085202632599105251871039829446053312515325227481804939105251165202776173168670919230534132817455116141741388452988386106098982118617847486243053111323158944346916767227651224184408875476448327465683949977144660804850869216079885069110104387407871003484075070300092780709043946495369739430306836977991306849756211227727849746178958851055075754314866511304820056857071319724224909934744805471656838429008126953842256346865226864476481655512618008792995767665980520708634793979409395938437682479788567483495112568950142018632720017823346879621261906417349284295942597773297783191325411301225829105526572666624932283501646736743296108210670904778577028440509853422684177207928787501863616736925915367834164332342552584035226352113652595350397451773099389944744256680991601767384128239469841278976445815677378529756230580689396781557404856598663559839510628645848529038584353420980301786850726481640059691298567137557629778408228804632337129047456157901513962698036055206600716667362510456205344134602165511830786180088725167587246509281351043500836963755142003119875087899119997051393366765942105512554925889485547453422276420208075452056102386727788148557187815534513518723668903130225125320705717108467469519810608428815021302356017467284730239083884942578942035290646986744623146718686682313417607142253670739263460330666676543135254523383159062818329494957060723923743152671031718973689574666230186398299642858513215640701434956551211096926704910726316468398126468942986090874055942511960445153295913158284798867785468702891240129761974604640702370907863135183869495925771668868823541583717218240982007839244215858629890583742989362827530686816669632862652499345445575584237953646154028638671698689361171012127902858457820187841795777726958800229194895733347396875512991135855218438342823413904407309426970875453530799042060666635075911877576322895024464335620315652038987200572695900703856489376811212897703015238044351874823283857346597508671148846765481292529620418033731641597681807906084508821970252076165855791529761471344578664318111727086016982459409892893214085873794117783805594591025954775497513942261729434083458459137223639099727133459051566542885240165328906342237228089595117143112080765902475947643339618982871572669302635912228013287266953282484998809207952229273897061263013031819676930491916403484475390483656920282662597292879344714822862128009137907541888215417138346957455380845014682438836209469737623465088629388468393956223386666566460342303439603945314342415438044824844319506580418205217430875067355296103338393957192907254116078119810483247864194885075941689313787868474106722320850051849981003276222726437725322703241358279505345408623479482466929066071070920713690367175941072827275528543786227361286853873300658975046937189844242595596196852410399010414263498426890415241246864030065600973221716910102770098682489262973678284567983409230649824513458330981877944996860431903897876277786889968995897649123713102515702648868197951281547422744956403827197916631447081041339379853731601402298890659288038835469838191280696576052468738684782855749379923355931685204506700160987749648609046766599722319644483942575686358925416386330691545833042873323341161934715132503926321058364127098402563451344015923082799653395662527692108481569084274091410549144977641635400321863010289481406886396147187946361774789198524113105409385446401659469863255817866625546169923138578272782763399402042621799206213727335222191335214951166452087668210046860894274195071433592032682483683377392946086018224839831158930939371098973320278880993284856588002671197798875489704009303306915771579708441358571523545958776681791424034300251336574473370309384083367659970722120805696839247315849670057570309303975922691066099149211624528455163152773063167733241108873431175667977350590263705827861579773512418149761110506761402104883304270872407165961441441341959288310549580270507410004276974794704462952112117949355102369188413968792398297239237420390469658310592675547350948830800742144545948875176375181434999318377301494394753959198408452169493540730002145082711774075912624078687964066012252479441511042931022170592678467957674740216805466219093840661695234126894191200079940717660956680811921097771874114181129363144640981770626508721266372727387869796862249698321284723574266283299361904732365067342787590440505579595686658606355212862042920062940918605423175157052683009490509641181146102719122325894941637426731847122486666565937547764818018428483410763374416248871507501013213738243035306217685663462096124183231666613817286214094276493068865966283373015481413698748631015625341518190445332132032388478886434866598748088821891222848007139526625203049360039042111499050857943851542277647582060366624660964980008942419852410025464193455900926123488286932676665734009850062651059665316518950509715289543155649086055679073416546286965052415397813830252414298880406149735206368428904317420615492285090576716147831740113668105960752060038411988315808523261217976586058598853340219189703501516493766418025415384068377518348607597999704593908235447315022356493807281120445819225895728056970499981002838224612842293087437129411885552830591196773495329476387311695821640923770613106281936419325328222474240827095009278615098695430773014294767428319055293413172942000689532288392961794598351772458389135859318785082789848235052058491108452825100046418203659498845158855422736489554659155814213309721361236540825029957114163311561336441701285782393604933114656632720578510972164809435056405668804851664405950436663125509944466309477107547688839304858414145837847466371422862240342900932037651403123002715736076437099316797246041244021352192264193443278156898237555117058133177900217429943458072269823141906783072165759086406420046457901805404895993025297871329766683212784128617392385970169109590704716302721695097719160635303592694540802618621240195390094246053959738580702563933965333516839916792288527428245116496011311588580662339752225663789224127346548697456488573534566634482623061490473738208982902803346793255204513558041065535015319139034223456442450767137096045067992819860689856196674921617190410622283653410609504193822910142581731136969618632886788216998534536860531046712502452366421071554235479715515921845700137911328550020099926426900986651357979891147435240984517125602189985914847875179941115267125719231958790376437612679587739784213982679956211902704226278433861448892066735110141179572052850542721834752278687547384971517524474320228959596432515061869953073477378246051420934843598894487142224681396201402012002201989195902644864597131740908805059541538469285296414511435619923450712854351503490361578534504283336012347848978656014566701714022649850260609926999041135329232288255328653170635543503579094456834414567569081558704739934923051387945683503816392356762574910033617980539667929288146270869589433353221569661321967633743662711478470258181462126721044162211249464904182190024816563492216037102944798274479458605310060096045267493514986897411580503104419364181157927743096601371468830873986144597324852795583440982953156733900025331247152232344132330428798580365747973392739722831459350111452634126732452620816869509924286182724092033393824381999931853592187689607257971834857103021470094729328752420838436690077187668302787412299565968879932474699110940711200449349598266552840402181775463914379413768144451726927037313774715658520878385997318106061598206589031695907929242195632065114872514687807351027095209131375613021569291334111867271599930291579483295722135189276849848766676740288253487644184102392010772616776348066099427502944608895499422033697102772120553388971427014796869191865570602898164332774122202689267934301120323616407071406536704872691896172310876968360218761403133917204325927363783465482585427836093746729601638024909715225047573795914700529617306398771706538236856200251542640658662935905787361206955156963045811172434908654671050371444911976983227361012077760126718253303545576099453936134432857794471337762171074057585799855208660732454697170685486610830990455137489535037037054589721162919527603268448502024843739591011299023136087264406358415196303497755003415409187467804956928222001838112174124715155131529109016108705748985257867476389286568490197113791608570023536525500192208781854040513935560274953343360927893155314464187152813075559751723151481008482554398762410405138426665887766079823127578161866070506176539097870467052370018859740634178590272627128656770570597339349449469707685242167092003331344032166307096518681426762238404588877488729933910656804693304145531751356318130678260276502130060850215351857119597711009320517719246286171522937667559845896316147998891019977749487525229329878825810145041684173720261392795054457446366395016335857980264789141899527856441409028954983342328926957701158296721804187222984947022764758562976360974770647599159706630748831536289882160389247894475225848965679968119634719150909053724728747480633502930175166259308820643558172333134007467382339929735150256269523345815603022677076076255062224434820908834276139103796447420820393448205201810574082122797427700051493601764285844217366330758629268500626223106694184671926380825970886786151723222012971316445537942507579383777707384198128876659956985951195426344616713861366641538838193609956454745973998920703036005875247649735057932959854740193604966070291003161063356503365908146140163283211309560507143752459213199633329038742753463206076991709287134647319672946429918763632922375624156781427221996450260167218955707673299600573453259374190119882207439813484966026982394617711674429300776382530036352021938942724063978925020140660689053203045761931288604948545059781108179935605908573374911001986901906557691602348758989040657371725843393540930392212528040265443854717631639810382348344155210925508808911483947043019128620719698675986257053707951653287449665469006755679404949544697808663342599154387050543418101749755496619821863070640340483710215717993956082981266502833766774621224357816139425012303422029961207867124694649710364775733022114664572697320578762247639664044346315101742295929910453823947583964307470169928727008937584249828397855488518720063808450776999444928230741884798605350872624550246219354696715577350449329140363216912884865165275766311602506284617386370752125642711540671841007369806678553011304114336043728770738444509826086165068270227494754913629644985644591923277982216531837387895046177593093420882867122518604713029154798538508459390445843603149511155850617916915986399053987683365812062781131434817835204485114742061355776092203007051973244133536738504037720616332815377337826187115187207381793384596732034058054436203747590605412068873084050748769824418157442415651515200076129164566703716347374462701894159568992232480140740657395795288940918554010346271661045347684597448707638409431625107302405452424926955359266520754607933831029888029292546994041481979198462146912550979683678885822142876120447169930791719150328626175885084610864301204754343483137329648465462533012348273671119903042945615392096807509453341916744044976669000550160369375447026154482625574546672984095071562281345027737273746180370492199622339991426666979940882828708782143663690299654034222338657755430265669581793649697489837292169141384108828119068798946777716311842518274123143252118711553010651817205876666154097247700454256010456001340238513088472045386066155064168019758432835662891763839721784214111384486227144639417082025533447667223791712600498269694593758675659423726822809417488144637888992477381145525418493096259744872484532112116796067048065853287567493371040939480476770402181346927459413681850714387284331717879586950932544988377980736516471976613238093570632437222562697296795072018203688853792897625479391490993544650412048536553343541957435564530683507426983290657740267968525126371093737552472453449492419245266158849316311893855048948796299978595208202539354148975734589672919611699961097748378652930413892063373518111635608413458158690555037821242237434075236046356395796462091476861691089466750961364068155751876827534401921720394244952551593170144667963322873835308494897824823588970674788103444442551107227049459721764093580418457153408655269834128011335298791391453564593855193607799822381408160321331916723889840458396775262418695374908411079251716808174460949144357459339943180128588232341817385561165892644218783358348120891743660067833773671962442845412653075370778208847917320026702802083042116345056379887006208578432367434040681163031425618874356533597474975110475702535230634350065341448281601581485384070567101318526788235112908141332889460787865034153454808375357773228954703118085453694683330840616045729630274842669005483853682458722602014462361157486538018877508257777664319500580435108308316154170348820035959895322039887885622505503584252483071858638401997562827305771151632517561919202629546078935112743107239554190094471221189750825423377599736004827377455414459712346518937840137509934973125150498699728021415931839457924407581755678978288283442445830612063211771269230719479783747268020992956820794019630883499852825225902783220148052564765522209712006412626019913475453545209760110168036144342661388932525894032109118357617250021809849602885507126032991605839883159304745625427811372603656513523675576037657841005129016137395834005331719760862085473253139599461787153949694159179866417585465526492389952887906067416631444749741876906377271942437912065386881833434475750744273734529447806784471882532244772884104343970758004703652217974733876281442780874828353941283268121048259378382376440807782232110855650503991465118804961452160469753279400489133837267702530449149411809886026996338408128245217127024689274542680911309799241632095192054162607906331905361210354635650814077731513564944902055784115235908661146992623132076509207335098535275141335653156999101837567706176717830903898456992726400319301190959762823907593021395033192878192282138526338175012789328539359591718198363265132749102584374277942235553405506404304470438984523418243416953890016056175202377130290707716494571209069692882043469136504351440328224819975583276884053010158644142235177667762842523319938348223418200059286283432093071051525750396355865022118483977004724789185358116667180317996780341904588493160467513570324796991054520239563464617323092169583430054291664421646040210100801275053286576537758789835355837985793931191755842735234535289050525026710234637660377459438633950369518310147243757567046958164747376915614267897357703769241713089138253071194470746226992753374959734671960458700321898643685887595065770720014480946044946225135977134428228273608684580064454552693904411990943201548250803215010601799341360308289237392053924057619904661093680477609430283028563598421921485165304120574679675354758003928102210191636755299986561030125618024789293501670757436812483396451930483201333820268131687806223694230185677558650774912749584509532571084222031190866180201700866114303404091525025320487069686986743084788175926113687729906737694825508832792293596596229742918337358927083381132702467804910645826223512871778719964659629795901347742025604145213873732336961430449959565752458961312481530970651673191231782632702631152115638590213267483048349640683814133177833175541412661826472241269492544285644067016868859166955887939961278135321051736901283728158556986642946724501868104125963486911888703485111691904142003458522390984472760746865410535307967728712979236099839788666419109489822905818905162219473536159603275201414891411968935121390298344403251200680017571939759373522343776699274124981553780867294596723318169579697152705328738169934373658157455081884219357984005807328527980737630416620968670736762735195996136197812505214368024528285568808205518092331898461359948062413190186455741585939822414533374173688895789885163753389795934418588340506205449409086198735867426179660627143809429920183042637486797226122686751936386608699309517064762576788967854924798242999364213901804228894787716308950155763174458718896928461507792745748526755524985985334916047716966384881906786540094059812323768715978075901970158120868296123763801405589344663426208511883877288522421692882216110678072944919118008128654759702912789251452019535311079585002516196738081922326384786760823440628071135901609668016778859996495855970807512538926279103741572292695362196125898409224520378376700458639999731415494011054041257168659613669748491850587443648921738454702592103599010909225333998700608788524530529841486274604624107349923074196270504153631514343841744744404640997183566150051913760493777605455492128877593863394727591256684272234768639372758937328170547104006781975480363971651853440049024067476370868915414469897166988322973678049318130695058458730375788480513207879483335730707725691423512499128871502845995863265815584572177775451517056744080051523694838969247487886198279528110157910607070293058404614343486661126758699622193756374387539909696327100449271896632124413217842635327259216710780351944515171689881166123553621067194334880992064192640542638530171858624627537706469285871954836886924861897575319393235318219898939954377553408712383707797475144914917043259958958192904786560187878393308674509655861042184071656386309582732621516834023828117683391185981004825870388368246744875858541118821534086783665697222419752655395811444324089405724860148073979606319858632535633532269209864057292742599614701294800482922026628437454246597665699843334621735848335464841193396316274530692054735537362544726665479686126989860985379108684690784600918256146047334874785497797171940880032620616031896114046152577190779601135216664382834827758587090986264558791597637815488902678969735803387377986963695305931404056119284665088814706470738546250517411850848490386432589834496052861414933863097853404514026607661639240983064271825391933840026370971600465666745491240965720962696781891704436223329683099812388525555230093792093751772098158365158309718556624512863030311876185935028196596821719603840324558970707706156044370349967541903182160243916917194609683868210152464149893749623463479500847332846738934633392420195834956914895410465802433362361789854054040979370882175905705806675058647348641894999438630392526631244867664106417416404223325022538674995617724660337261225885687978043895731645765460731439540734108768808538078187067645668855611711466153648267934899877576782909322270517607900452578799019468420570165600311417883277520515454525430294783678704443692619472998248011042282831234855133712966997323173778182053288808493179973599017345852712379476062311680759528416719254589794145494129716545641275978920982109525606776651706983785442733219625190647303047601333551801280315929016713323384989239150897249752826941001050984079646900498540869658941226943213428718271729945633546022263143029072376843260713023272841605647408200150529723800365327912605283083004701423698314089761239461835364914232989572002989478587525407415482507574034718319797307981096039558658428655905913282714143341041818265548088124460980489743737106861078239064736191931466074130050769870615786411375547126423100165521472115281897900015907630533440486615258710524537344854210302397601825782278184117727668706486433247070981592784177292735638629922806746367183075640651871821099756821997361087066451256333588246935857377770834441882507176866285708405411166810332012153015794795212513939670970385970953566169202172699733911743796464893303802478529617256395716320450013242317027134191832387182209852861961994939107789392975271889442937393266895487877057114673226766865533993856209980843078323942447263147827062791938172715028093118930709950051000959762951238122889905241960346388946165559923885415938224723066625483854791515145913763720663182807732874671169905784098822887278160626567048869245373135947872541618634970887576011279998789850067473478783115632583557089077286875038536466174814865472923288429893199855390721402301900389578660805378235394758440849956790415264725105488852457199680298626536601436952755773463094212386771924471414685066318178320198241663245424903669309176215378353785262087549239641427708393410883283608096325308411464953494315703453076526891995864160650357666468879375420952429521656633724254868167791879272981684648870033909291967479432613109307836521302174523043601449561814153634637459618055365112545022406194497514502401706701109448292790266496534174037088802800654202147036050224596196331527014808572385343149179298886613890451434737880948370966601586824900180937731959460795680980554082969407136756748122473097470630925736420238033163875797078514887903186518382893432639714750329730538580901690509271135206717616035298309360510953140893590908343755603829125987466658827673272802086512875250529555219223659188708624148873498175770190894621083021992192868648432381714064555281230546139164012293527768148994700245277858008760591244907973374641504570885696968581838099929145783605494000163656934082764486693891164006896637178468556755097811168401332492926500633955158471073018680154910969154603216247108071969003043634607786835981972024475855267646546009357438066551826216765006849870609165073197303763181307492298000101363404387828459874924440653614300340690936791600480760179811113789368996057112401556531482840682363436902739599565606954175058406617219871792108130285098734771300926579209989362610323949175043952595818238590507976284583791192912022173715254188220059031259023799904218592328991936530139985623444882882086089247802392038564176622771114651117848818649919809034330247924904008338937981255705372226243057982590564855646929135890509934221183030418713809561140344887928032268184756777991306569013565980612877743611280264217332836845840826463330046685065133509769120683589221084931415451483697588506780893810993958209454864750466448197858410851906458451188405100020622613983401764998501644827313328710512311596191766316084055892859546164980779089340639116968793005232175133611425597934582091059688674524032934675091502362019084724587766902908061239329782680264587210455562291996939016399752410463399693542662265371314999630108004581964481640040260023121423066471823927750743741290015364620700771070570855563393975868283801666724890484277372156850248824155589475596084757529199666357347078958302513157274884991770732967079994014247492161166684485588515673703548760897347020159965210127669133305961489247976447147082865581271294981388765870078176792305720339916406331437869014964591489429526144576755855798282107715701999864491633842998453226964852732501004659016200739751260207862855338292777038422516889718523823463557343175397607400997283179652670650977863495152522365115247236195758723231081239747856588686932558793115120772751849732572230892772113071576265978168085161757102828768327331725845680141097527965851281063399510662330051775168033715137846904729935975897714603796111381131379951620328678681686189406988646311609432185995614943756149494774202635215403069786978627929465842902108106598060621971412595619213152224338314354783010883635057271117206918907052054911682394577932463234756663779286337026394685686144778954360343025925823138910794550745058235118310044060702316238169550112363238565758253802804210906814627657572811121611657969476170967711339245909318429363915552583387123661736980143187608375504147030121078409489023988963069717208768748506176251541114791971437327210289096719273260022240368006687383072900577495879802031081527310435318701697795866498060949940902904838271399476892801641040296895114564469645401966100283566099887926600741181325226454219489140713975357620521379451463785390279972642432347725616798128404055530085102776927420252771551925217523792969586433412319862171285424927208798286577506465948863091300724731453317144349797986805894530918627786407052777956168441517615044185641732981185439319926385787329262598384206538961598884148511629885034754039906183261494560753883546156035127352412212902020393813148429774483624602921366312321463496387411187995533620509338293222962281206370181006922399571564160329525943475387030666475673283787715054255778473907553465781184887137529974933618189007289621143209030272890308717104089150713982128840034847970643921207049228970950224263623923899590657697522105825567323746745585942953814665716433091628608960910524268058421840808958901647953535972570853892114754399585846277604575720675982646634044690971224705256457413580553040120623701609303342377878468539291277488618727658670107356932819647842262387683116630744682267550774036424005965489455489616913915063055231962858628232462186770788779195162587515202106518973658266909317568299188409101662970588524135076893115891772000236773624629493045912429991666770031461798874209060923664701350153186981427975939499989051954635023051159102134312720117278647124053734847732171061070598613023236174702338990175325716033685415595218571441136593001285649835095676020183358381187375655493396949888709069142849660789480939952164558341103155368144651930225054459167184262078643783684752930955686407248387061160474865087533125234991573337213684251508223693948640683343626347776022674725132919915013910178203939453115640753381472162493118811779065649781343420098086653864615804916238077107434404778187603810154438760570532493377215462548697331452024456884546493305538476357433680574336269509774736547475666673867193357509963526454606687073054080718163706521797768078294808217238490014003202390166596664024077591963845325932727271268641618396834893223753237830239227171170474982638709090269677509583087715114873694788006906757520999602097550522431389636602360616531354993504559744810350059400833873947321742451364103191529925028603407712715704094606791473647843598749887151113349805586598606909414366777861387276495378220635949767484114873178505949974106915027874544998007383357781113661346020922425603047918457193177540903308730991266254899323468831443768469519639078806903137900545825097905341777101031179765463319383694794446174937762018731138115260779091042249137615666079178444666339906882350999086965594398680779667778203084911754440864945823015501443936016881890531963473395263362264829559568634575147874291860501499264388675869402815998211244744668355942562710590708402939347882146321309559590014899906808192835461931023943009966542876988062999452926317688187099510846997415409224354287168598038225018666839633911987880729519165264366590788912531243186258163235294866011041362905571840846452752866630218556674447246107240682214294989023432363801377733232281403923900917274767779461939227855651530045832559410355439040751603302077010653010688180227567873196210568372358802926132373348771520701842273658506627314506992726319283081836250244451028745103333472031630295383575326151991665661536423815990550196893490086502076755011095534877253811744852350131649343672917266555576085913126216510522348948480462940250577248751939174024942756844868372204760770227225264543856286476032110235608594094145096352970718723993074484750209526441563304646830347166832729831119585061861778423610715887228759253885857635129679879810694833392430600301944893993744874847114676779824658925007279722449480481090523836590676289766261080804653976187021836244560248329559745530017505290748270575026326263030032038481888477774744227790491854288049790602584429145442709153138555377861926574939248055010334565098336636242588856059214352995395697665659949665537454399114808749909555856253854090845716079568432985205341802552544372849619769508407668345929770290791099399503370382200990870485083646042542548768679469468844458973828307639291107322156851637155316841638858280530042523194574007736135713278015184290730220162256772461122297917877664893358572715994387483617890340831723877167013507891903814861361528284171956221927451981669726472124638685149881144668116606437408333088401485544197919454247303875436139300539251004978418376885669631924458657507022771810734781846043195400409729312114813644946541133491154166933815200596572324124025173831676866330903569987905279485383342400952886217852480127253601305727388486769167909879599566730141770679801572420949388622364003727739928453291503635122311550946926269686792549550553754664154584168944186303323391792914001590833694389989183578683480060923354898755686499544187644806390352403644325008834128613304479936582205373211034714572362937040183685316007250613320767998905020681519948687264523191624021237843170628414170518342203313394501040867443342384282093128216255977528016037538881841541644165139826579356764273215492509792771343168913190869470116594327889641245387062507172654219185065167980909531332809584641756078092968807517916206853030451395190005492632473342982979900898759729602157460686160425448106599464021669393567378495863944102343945657877579921536287025133634017701204987461420655817073917064560867105790573986592772028977047380861092736776433641163460909517963686049666671932075192783229247298738765644391665141577002414507501163579245832419206763436702260557478856888552416237584678477157920774807639492772785184282740698829671565650883270646934059974813652617495282699659103963900443949837322364012836260515216831579613004198784844347467792188000587909612523549191575246732740706182839281516328031845766035344786578187902346723593634502605820459669678656964545086681187275613664030539453109113092791034736222996098168111818276203992127606388291488322705542341723078118691420428230240196785517622373871254758679294237800066120672965545786724682821893843768221623649875208735145307801969862644283667138757675783576829507672696043720473293805492138112746816188975569379778126591532026450721658444400847390084214790930738597648615675579325588067530457537321425215944113866816599589845049341935245083620680060759321681306808317858281577453616920712905186565567929635906104281679402806053980192099095214292727430895017409881716965596482195409642870988979510225786824746349734934923315535679447791805539321186218379741153072414592451085512035206078775318189841227338686199216821629967065130353413385463127974446498964273552159134750013928217299479742869980909619126025911056708892351953629863339950555847380607844779738576789510957810190976255438262175466458666640435931475802153850312942840565500843841962505838896849983378873634367177900290367750107175978770372862661148049416209431626577957736246137200258585687959363740960863269860176447538516510929765325484871814578756730976871783619169935789625389160204558394669302232624185230146344971574963514396335770262091666988924610167555611156214972057845967779093153775081796926487075474009918821719381744848091116415820544693975271397944432739929875647215538218931994908090888107375606823211829821825158908905567785178704756991025494876358796312496729735009626108968241902436745103263784678894206960835447637499604157047400212873893858179711617231538984853109308286357206078105305178343289146144345771487278623514863506833448657196982194312585474295268098640912955496904789542127952670839667795885735777636883452256980896228984097432587339573649919774364646033696037492920248770830411050151641189659006588398232073693982792052342120213004569613632094575784573896187789180511270895144574680849152208934184493182792457605525779860166889111028752272471945876862145065118988461097408468813528501717197954992495748376253553679683145644643031067381662506038335435277403385266589672791455323050989651795412064302702683281114591708996666075425140269134019810009347951109360339034576543093881876894603422037308306492370284228440011792809343888020663646892191202518068969286169265587823423214623638982647256028989963423183644753506754311997361806551354258089483142497199727729444049855873509284574046027441596292125622219277175211864528646165727687033524083294319454858996904445536166311128049802746462925681216429186396061994406065937144709163111980782226140315641779149686243919846890963822303317036752267808104973352292287051876951556809673367118804087017941776789551451964626239972753992695575328503303991451105209824644290007462812010122911342916440803317833045826487867916858471051490788202847945297045186874676353900273018385284949957405228028697485114090206003468153270023808944215418043311020203109842144472008872718929404003740364984108227705913742705210272794011265434688771232343052756939070612629806101915204340904023569062337105704959277232456835315230980487356827915841729570791260438257702002208303928937947731301392266148179679833362018659522112203711417707220824284233795546157777174580901080659886836368052670497752243624505152741350440968188316645901574033693454635227353215898745623730490056387632553404999796843330485323210509107706089319453251927020036022389379805125392215231629812874168970896243838412014190827854236402742499557620804501167548520072942902783465246095864668180998778607559607248512912176407535388001656194516655085106385325950644785594644869976693285158969073459674530101043433220212445464087787775933282810065485485628084454056343404153375799084279694248163915290602893176115821087459684927697862618833691813154662268712078954374193840809150313363968470249306384358654856764802175165161650351201523570138733524104562822602202116215510978141055224114269948543922445132219870908747139715822485907522658742512039622253989058900896222986182802004127595551954251394352349417219995930391788396553713493165975720953206822566625037832987109415781734458892252789240034544400025850681121099761836020894091613542127935678402643846938012540099505435601545309319271186072146500445857457333856818575969879441947272399307917870630694109576709767712158012253458842777669305739844972841321389851906908676812943708110478965053711309695774102243232586323670055743829218082106815098924118091745647251250978007432474660034305299768269044342882122375917958741330608969437760139533528649625588357358161475038845759310758778953978706401363357395360133902565231197595376526536097717413270742634862826467338697453551709014917156159753023890586412048495189890321377199756391335315394498967163318843643462863240093471142914399467276281807154338561258524642202265331208602586181384113002540669982269952603667632690919502940078928340886407577154348819237225757222195923544518389386632810891877616200088030353196950159390778757160963761024882522473153173075304331809409252693778597732946683338620562862004117201514146203822673224816957688302103727129622083347881827284847408687674880914192613797797765724296822361406154308656659214703523907167152108579368761541790376144318186646911615687851599396000064637907306577570189968512579399753257084132140137717437836723415087396494762393386721491521141912728036541893646487914185663363353227784521985645394861182877879326448465424095040859290725377782713116110532479126394929626037391116020406125867907312985747192194284560424540830984054944553576192820508867744450488675995925955703836966935071310171539150260769175870228910669766684631531192461311547210002859592736048768457592074274261435409956625778032269536749717115480827524426950879477532281512309523948383856906880750860309003173212625921338061716482378115361696256943917113327592539424032904357481797309626179677408487617232252576690013821088460836556652097866957566433934824497013768103538113192567439495708254705402691070104288119893953081970065166714744739264844861560981107725388848348185148991800636779407807126045702455257380657501692387516792742291970744730419396020215928365156309792004208177408715658103668654924732555541526283274896005322959570905608765857233173901577999991949548894221521822183110986452968219973514994605998287701771481020164344499926321977403606552213277987554954227108755981267951126828755549000200025500630943493775166552620367984473737374267003269528973478085963819920893882219676624131286735997830526000465164811094372380650923829360190527188016722592774629064054383438080113426568720058103732695522246980635639889012137933757351921437872872834173401206673987279413096057217276199629425943121008353693584643796836819408533016933025009353340371099508789119897670198880979188256729228824208529169187022876676896182491499231757724647748039235586493019429829950403409652873502155120984217841305270482852180879662208988981042629955216090177033162680397642724327110236054570054602273596778557606115387190961074520790725305076165731247782428328036074618095153286880484766190764166401704586287915423102484477066468363076423713436980846064265258062611491796694375324674905070677665222459995351448345142871879614699288490240845466406488951308280750604918519817158455977438127983070615455057456383753277108935364730713486053753418012025208270821547669404223273790333860632601563229334289825088483115425726564967686718047160308042947834131278284232493341834334981469076763880789032022017259114102883489764749213418928998542642705838262900834218103332115646411007506852842004121797011845321605675055238371404802349922208147730538723238139933781092619248692360831476644959951615826315717344576811043611241269632834540487886470864588993469558159952476396535732668844110824893249383940824678190435497183816330820012705727015618680772928666964081267394351739008596136558980111361122527171690182097350933801003709838566140601143736104500325916962772095619969430669691478748656847032239196044445852570517932479102733132261301499636338089458907900135509657639513278228349600945368348592633160665622524464166352713730244024230655643219438008846020562069361853814560229818682273055900709312973919275536722512281915129045416084134130489354321359858522019500891402260790177066414757013393487444954358352701568983021080806127579794723590270725764980031533105149388532980645265991816622109261508372637431243196020670944216607988850844884165978486157256217953569569451871446394949756342770756228601416758934092902993187500074533127068067736246891548269084805658855037190777375588364556101356104902512887001784283466928595936041491370635405005009712171435885415010671731545386084797854268456284540797648017034008335881785221677595369511066345826410894247216957035959161808399347149576057072521164370048017760490783236857569755398160304216798862693861914985015026628620921762317150577816687660375136075489502543454421651303284563029864880918723297188774125137629601461680356239734908044584685910182340456294064896770350668795719048579517793226837155301382462400692440508013391375105265118683481136585921851595671944067272226317277383802743084486161120769205413709582720342062195567131655034022172679352638864158576378613329156130997168958987425032596071875909539774464465807867547369212574360665589011211002436001355777457493384787415296768359270827247871884849641775873398278637672583566487490513779744276020314521635289764919822262276071051300460581055092279606115053823053165138327167653404198964991184170178952640914783268844532281615402934507570023219798822808298102593502060029697127525845654893489466107921698700045370074813542862928461683695735333650242407483331492816847588202952848905462698991693366045785141781446229547692723181455620705040333249505409521079593501533472387974171111365069027397447810504887767285129803518101552941021263024461318639161471312857781462394488132219100906683935001521468574664318585388055499991297687581569761574071916519926068681532873694578396005625416799606366435540367070992857610712150919081787236134105652025234295380759425048982258498937239406390044594833760430670956541613612666360252842110494359354668996281480993280551897816521502381382622314967728541901344902834920159930496630535716535141931885643926924987114989653408050886902297079131520735979900428914309538538956547237939017606797325918242369131708108744639397937800480079245861417216569679842203576214313138644908839726215372017866933915824929544943869411254257264806134145894016560330772256604564028639425414464272208114672824776403494350298827053703823641786736484348782274427493864638951101064642531103113886977542287333823334152834075031139715865604748419853097785339352199852901205241733649658161483228968230480699221532429894978219268697820598899623841437707876326956326966713739269434795721794455648794654536643115381242957501674714883722379219912228862945504407333756009119761160862193872657638072334539871038158091504401202615692632788912309616384677438528760921477616543174558989271837270406711385630278672642977671985508727065896905453330265849803216435593937827525607102850688231023512867633996531391623313734234003242495934329186226440342183970750434850798223009660675339259901409994206512714541960441706065170676076102579518731868189842437133919190748973347594369580165890455373854823913137414492644094571817077646145000586230086248688020312788426687399717811303583988179546407216282050175974826751140099583677778097382945993127909259663852052975207920687092343871041159353823329530666779394425983845501101741676474702127385354801110071878320379560008301807738653441904260806105736345055598641459947285185245162131875310735574395129085391067472852631204199048603383824615214228948192931831864999775566110949867608533053069812880285111485769413306000716200639434106662980498546196391717047504780953943027561310505263338012725789567853868328123160655124165243022884611109631758323946140805019982139257657100067829759153879132618879882389737523993611433126152273488454301892184356929658073787650876796241172745623300395208763362935617266580484953211714280537713715569052988430588693450721378362112384618967325084096013435699941331044718879360556066888926248786595267174979281266608376396176374001222858865318058673014966960202951967719168558657827146312529918395174521726981259728161160688429286136663666120027671897569022079949022943586107480790383656797253474954971390171153352331358811269220821383491612895448353413243141100145855175965023426645414707985048616177048152902559318200135575553553327660365418412631110364147851242052060085798465144006683334572531778200717384540964557182226687548854745013228914133654968587858445855264092066756263843896921784007727820612707794005000648725585440239928950714640807409497942093997798106499298215684051902956509446068653103093016733268368693934964347840386440529214478723639019635042804057903237563737934011658626218061842731347474432625629328093808185079895917941276463179299671061345585143786858741874092682376742338210540452278395789922233506014923090510503487712853218396903989941706610725588471042534716058961833192657179534483739843929059912322164849784202312931263726842410288529312379386559759657227717602990386375650865190221539422478785337892792862532785379870703016936910976599402092874014755854043650018616413267424061111746081549228275734110461144584216217350282038877690831335224610368560702726882570857183513398161846552239259895863938151882408956615966167340857763653935931822724878795779650424798217131574275087399575918857833733479249876638216092262937777807815361294254505546238099970458038032255758786815827372465075578348173845773486819520956579170998613070456809039347502492769412306425387080416928171817790323009886017980920256085817445083411073628612410984027634502955831688276377783838531075662907902125645434056574970060112799369060927079829376466942659164292720508095273757042439004872373109837567892204426631860593764650919393244495765954532255307835571883547831190535189687684666700635280161339772862706092645680258478965227051381046707937426395883766872304064786285318893922718568982341366851166958712267018215853300622127717716175548616974118589567957289047687309509908529258267086569409463749893644584162039896785790462002603649361832751389709652690988442582438988913770726433554743815973698366065464962614472434954810893758224039828735193634739288397877782922725947690922227436966542304391494103750686803152224485970517753295258247423748475960101485196606830774738540819887684436523455725315053501999854231319292290770345831364621439638264926091599206946672876081014967771101136001705916180764661893504045155030828767846482647423345481294728412121111062645998217771924129132483544823274569969650336483373479369103680511148121072319720484398931718018826630607921812967794856438744475221784596031853363137692513140162909466999398488750214665821590072924794417437047269495510203761294328338169985407130895514911448875306920949063729173924275632784031924132945296816963147255335661305145154642808629503729729337319052218348828920368458585618844185365157818678443136246452769355907894290461031300009712831283856394671129594696052747156751348346093615726637091447537988820051815259267646904591106666978287081686718032015254988021756117720610792559104893118957055421024439892342714887460813752793908325334086426470270160029388579304900496622335558268543019130793139296751500044001357887570836075654478571426838209604951678550740129486113386664256387542868841783498548219922722669330440974816312089783231679753279130723180713190790715224470921323459054530347417845172644993945588310446773435819010701424393750957194610683705141069750758661890934082316182503952432257670152244131441030010694014432609895882122129087336705558323198965929344622971785900606760844447139289709265687170828559050339101301249604549283352706940688371244218981045536228438965969667336480717551901866536393928008542312112772819889334235601164666355945064142773850738822537846717371506525558515063302146289368371316696603363724825199233218563983295214863780574130269882415519087611319575497811241758718245620556239051778854114898650356038248112950915575668239107948792104282911519845473804433982213691954898001438816733648111841484948241314591320717043020404081767073548762205871277103371875070515374438525697252371219406524456619880780376490155162082224108621756315281062114938546698913027258084842431059115140245348906497206938911867992213301577520296352573314072574925759093638517212940313632867910124275699556997040683824819727006199867613307244896527355697608497260605587397003145968220839202529639166319114125848320503216897794094793479385252435685355929614291949715163093287496912491723146983332830831034963506621670036147622475695227965229217558241548623983451026872149425673517599742036641465894833821741328954235017506840075405691416708375435565583282679522945046297533367093627041270498160913941872089982070870308046323339266094795278261224422957492779457769490337667972919084061769430051224444662849009657816124278638827173802234810820760964789829909248080465837580843791604205703454972105275968669796593482009086227241463739435396951489583587119839816586687449130997192437190699935776632665596247986494882919715248269352814042907612578312325744822613770119953304571932558615393868616394909282532163821309787423679530245066901804629614633131809017495990773449533468473391065451995363062976944447724462022317643655599411158243094685478542920681852772686887385363448658636397698092299738980836510113263128030960841469755148034474706787872934729582566423705240972545870545195882427819019005433105809422407884121365019701581649499382408703831914187189464292699870464043178065478995995673442019766059536000111032056168837834652970308220794318442306500084947350109532999750246786388631004769588337990038692298598729456866194880775908995755820319955251450042054810714848567230871807930371575709108412221597746980510707842099325515918650260347518202236125806053492628516656923260718798528726786498418982027097007849974857244904126483449439890729105713397666319617670995342080450541529186758682448630108709799578655045584823335819953014572823870791597378776605098535042914604006652413044924367060762691623131938280744431935949613604466864172306970811899470807930762545799343140574569986362890355669774479002818257502337806052751389338750923833878958635756187367702786593254646532305713730091610935740197764629916489003456626473728308050963525727634525823948303446161576659280929851599529143605265117913680847175576603212442335945724622827007521762554467284272968480027801855340206812782097227270171876148273894215235114842777870054401535017367765572549621350204598554510145835400247480430043188323161698434537555822016426136163175217865720398775581902099806288759539052771096721963075538331058288007429182912904727577814442174126455056975371500587227513180229947230174880405969815705851653475786714530890487485065417004703185679669056559232183699993296104847927731029804454102324702550015943963945949276882652538299363620525611977347358409551186953414439113765146834886386316693682278041388741967667909378414077373428352915300665962533817756930100058257187756350815512873591206033284225611443463067686537488641766315989918806997918006911775020232285979629765479908391273469672226625187673155117682491417376647674540303969640638496766513458286539815702492348984058745237535711337838871126618078195580455744376907602180112941764829285819951629464111358606529300541022708061660048930012359177622017869993459458838701479425424135242970595166269528015081498544280145903481196116014259859280402343634049201510873011848242132068243513068880292889794073532226694354080251220790157236591545809596050974543342860909054587926708852879355750271014708229389386628064576047245593987376626638480491145823479184348714068993431770090061948333987355810500381745104063953448967500243862749002601413597220402633469065133225448910478623531888813623738717496647659921155947089648836237787148582652317148771566546981737131422373784668461260041917270295769341932072175481012788058635215925745413583095100265531643065352445623000809886928943677076355276013111430888196567910358903569529016997441148100380670853431772422369096039768950971425249323075868231454112655821929934094931840600809147517999671817364890331808008936203736021352705544571583967292746277348050662981225445805069094740384589301336952514011423122235365308811015932014694742022705111703631438827896158426638078535932213566239189293290156967412902396421496905938442667327200331782869000963864326377368775164380581657068757705313839148332129321887056303601691284399733130949285803925386616675363570390249466825817425568754165841573998238738678582126373511684574375502549185699336383815834954839836846928074539120819270747980467976964564985793479415383416033335977365922151531303608038455713416250852748206726367174285346740781585665166159302457001065569163513954863034355777236542873845479963980235470482184608338366853406774469343261044206370323783143142401254227137314555180495924749206495799545058791900641222785830876834149908933617184196304491309073024823911947955887383121877480723555831384684049670620346160300016337462376940074221829753388097359348304244166351756716574311991502315391950490385842764137978078247722089098583140941761301536414921056961256597667086296884462531671653796268087464490106377006203027574816337953720838880488213904522364380955714632545584500057015154261550197848726682245997412952829662590564513178363933762797994332643358674390597909911226914770254904892400186961899728268212331051196904937818558074690893075692762623345015613749788284917851824439608820129947422891258730801259078461387935042872391566854429289367248662257299731892465812389184019637096918410190424809730033847444172048146913084367410798061168906486115297042930822141479047933955835530546411643129912955526946997062746283232725291870470993765635363952585531260674000073363828544794630696875744390923129858639195049834116764383642300614475634428977625924236083007958280067815620806943673999237030275854200801022283625147884399062384746902268917353445542594899159859838270660142422804245649597979805210757479455962778504606864564279248410515697281770123110539479550797604810736390997447283335356196163889597004943042735978478086899539214632933064045879169481995045124804365701919043565337393953727330428188093962576112697254307644522607833091838649885531485948706366391840812662608614472815977930141003962577270919136717950095485899228152360611385243283624218425498876183615701512887542139728703566351968207772990130086016858303257268788487001011205277091649593333113219638145440599927174294702491701826009203119411164885309936506936109290137092462575654656601243455881129166646740745264404799387323360990539894258280005538572646361110899841622352206635373265313849980530497714128241243515074831274438062488219501677437521765886247654001216003259172505466625261070832845960734629654581064742896537489968500732277177631441463271316716270456647000909579204541553576554424918699226784316676835919467041485641919512375670207074131846406914782004439881556855474661596759762802296398211932784959216984020917981254600295229159121657308341202689153443919595387833372007409358477381778140147258862508288875940678083329971157309626304594415647721730526637089039926730763871855681197558883464687146305828836288128574956290960947621987629117910762808396958139581473137148565159720869128772472697753861150293763223894061071532081416368578259766103652775952220138921810676209966294921576288248655535997913340254637647536666949682708977995394511819394373602806417995193635594863754403850398474799536329678868525917082687460930210305330182205008370322007563437405368429900631783877195645872207956066448696368006765119792353701166226191505396204314184805073651571371613842001826430847204754663148265345225878660722765145631962508468179889764499978439089718148904276597924695982969213487485796500685610647018727343574339636736116674865361787173514266827612245355705581791046348816872857855063273343145673232979479912500553783250442439529046993936714995633212301013923870974900804449582498259571997245484912324802289251289727336738731690675656914623473193033707848253408293649511398902496135131970995199149688340335608164068877706386497825530258025927376931484853350535194250078017236538014091286373574000305703947564218853032979755074186950707117777499962755722359445403735193614310673841067928716150490374166730507324721790022892551753929650931270197686293729322129385214491970299063273095582951056565096483015990244323060041587152711926633518785754095124802722907138585627325931077501481834192013917333053353319247292550186613982471446481538494133506890024318597599891840548253389686771628862346157396525860865770396044958577959625055431960808364933228730263979605185511009109262712931611878661950714993088780236657831863954020755698018467982129091550366243087628918019779426362434190415836708735533711273486609041032400453661100297515615460423211525883603706624630140378980458696853182225613488016132627065963578525904262486419727733136315630147548218040712296157919904223623282564966667387397472424964031260230430830576069533049546735309455528196056015548335232600650997789687394718694109316606917200264742689732594046397746204775313002512089262457186306283508113320325257861599590826300405978925419481813733350297600271990060417751561705209337429861569731739613766877375718842295004624972776931671227099018040963821738848627231848421087885102324000267156523288575095585273355239030759632595692707946933717267926548502721807760824811021015700235266859810448719441664927865937102864979579542349592471581023561100781625527216579936261882326625413634653378746861150106362797170313979409829893200195699795373975369791417512226342048507129176664354115491118879891078308602636364288753137864507316984274725711953501407332727953740728200123159549688269948243332452417757198423381663446808222426080912715825305742073950245764656563143163113755617627308876891142309952260555774032060459007706415901198637452360000593133965628194288838961946757280370716243471935238683588395336676273383476649180616728187586666980929867154291324136723009763602488057044370241979591363018613384518805946625047589912725063193499361934163336491968334634372092925884189853462970607461571205133332342303432488118733414841103486654914133901804421115075970221965504821478740277877616823273053758787446632668373482992584067692479601081230603029530637686005174032540655014006246062354792195420244855465273903023327483205743831535812974069302982411063330875079872006586228074781733212892182344122495234617446657880451595243444809068790319997912732418695020431867205798061667386947451032676176559989340235799920899197130644991429530417186020274877094762336171026940525062696403398679392504279400423379078813125060099097704201388337202017114758504501078174623210283142028800018204884471279508569119156160568739615655076315821006785490577884533675328192618758899258195517116724448811308752752342966530019342500910214043882894526871896647031621368675467634628882435011284181035903253159088529586316645083565203042957235718918003620923752308329088672943861043253482609877962805391892197834484702651864046636600008626393158044601873684636149575093441416518582398340916660628429480924414115275557467663487651108508191909229198453082769679473448711718526379365204526451946086319662875007236258440270406740607309944598969987608885579433271630897822832807281795089331866818816256221933237820510558162950298279501004838576342051521506770648390132551010128615231886664216864056134099586892754520274022945530432243259878525630409336209593661953380247512994990689415850515000296826995399748645994108977634598972449186120926999212531352131605932679983107281569584442348715049218659371201837074548832227197744156796491744818858717607902153985719259057940998992924591798084215774391605385905873526109372516321537485446103368342231487102233743083142107763378863655462888677548854020817254798296586966235206264724501377276457543403693030331427325401933034406963306273905216497883519669447008144225899138480115791117977291861208550801096652610892801793880813632650480044429784593563097622682107047273712609233336522373993175946894374087538565057023512980881412266771280444955157565776168409525825981193513580139061184061744954350205343903392474694873238732281151784745271742460020894313081041623669841670247877590839504630562027057266962717051068693062318346607630289222530654268314141197176333849172174638692734245690459873264413003066291700900574633572969362316987692931682852600720221877261691465180624366728285800612694974816191273699006254348461235542015711463824578780564316994003676001965598908199941361780990955309292292896546523407842548240450128848552034267304436447577819622489597083223639025139079076761149635349125231194128506387657191954014465508843053350881294484033860850253928114064504938735194114832377156594266890394365888062566664366959282809066843944542335744899589391881869143313750672627938948409785840559009699366765854876948573031908808460904716952621721068285935848213896503465382702268971818840490599374119316189241340951340832279305095102684442603110090686554686477055133177716523236606411822243337408095383164850387493118443991787494365101426336851532269119519633027693315602604455789160414054469303432127618174156377116327835248835063280319685724029876222111848716669920281730153880045293847286210556509363428369277186183645550418321140547495751069675639163212545055523853121914389663723702942902122382865477777801175578415086694616872287526957727585914646344454324393975193332799062903857408134788582494718386439188623893001990223659871545975261144085687032555718896671287787497112922463268383876005587081668748606072099272182489407783701521449374653616835228930495645169370031449243785889576673885931577768463297030877909009188355533013250448830958363679309495361822345554882937174437321234486772353712142683971389039822561464947837031247053243038976515436691433548904223430168085881072751839096798950095034227477494562056360330424690396337605035452486644288863183476833258902161624251636564233151200785779597496053122389640060819450631966204389686998316780093940939761821271459408027038680498771257033926861040053171868541943715911571657547693138855848135502248289510946920191522731520839611225977391295494156669129531094064739794675356178178734627934328795505968531679548366695181746865669707611906136373601552267395736281019226525415279361149697142007778757208137269717772873054208521439458700647580731153301897817547586324635463346899869730262948217564297667639768510953034551964700631653028885104738671293200238344619492838568124513131888790220287865623128796063469054581655989598809491225196734394932235393278643269383105364846084401428221975695465504096345205950128235407782925394230494329602641692877880110457081841289256376730020178489958406458440120908992877567800179573954317989200637587571511060073651577294291891995334877882765809482651172700841734012811584331934059782437031329832767540016881298217858371322760923249370303866528349132971497534563499851842338552952335252920644987735934537540739329281763346313748092690270183719329859997817236698230692850229671104627176600417096608026467808575190483863311086309052320795189946221393207335452426407732659977172870558201915487855528603219098631544505695848460729690060037018186636977943607053669021142378148179250315264860232645612111399642922347666112651114188511446068894044363926613872682296233751313763264103523336312203553096649948857842944352984259127481942362682249849510111963170217075238003738386705277740385683950433147913512222172376581976029465283685541330152461717582539495284707333867135251818019053832899849094651771917531595743357432944078495716173315845422846027363631737663770669203046857341004056998023249811219227558520145869512467698166725609240264630677138857139188262359452615912926711010161680964872952077056575360914378673359540515206160023269291999864546017434888408077634921132791138246687886504137730063042279830342685267257340238614192651840561997144093864603627038766690267413188492838300985534169303643421047909420748874805988809153984768273346601140929692026985113346628882981101903533936010758156116406929070768248049848953916543709789318257025160403344232132939234068379981716215992245933382543360334869017296724113118703622264568507557808624941453246382412759904996246384011534669813197171055643802116162846059820701239702969112242755763491907744646534945155634563393638578803303677722809085073000049237344100474751268684076840296729805279225946118803954147864860802087097818846956798256106871750589879174011507935604075708780505440842737244836611429026958638926879425967461153810932623116011567935873932283109117149795137376254376446759181346667481915255974752012986548002235886205773163572920075895918317092031916502122883147999915241807739083465228361006685550729110442757458400445455889358535641440526009067140787652782405251652078381138612998148034417028298357849272797911733251829809507585236337190843630844776568344680371567975596770580464214283104481050476622036446078606017935521740187391877634229110858413092382912942374486994588639467801845053875254662619043647261413599616782738958617568160089994666833294341935137064931458489812923917425930637984990076010717210545608087195773389410019429216077294197095875904805699022224310754435862509572445886689985079409888586319733547372570784614256726478802132862636956073492090107170213511212343931541502827376914478343537245519853466607178791238376621625467356987934962571893892771847050319692686480751352697318293915385956792161531687681733352750460136857434635708870481205517205833317491276502815811512857715193501995886686790711343174932462135758792135176988400266001431856744774177103559525449846406727412278077961488676650137844201699736305214610936403416902621071272269013545842765044965915909872049496000037276016463986414959634261684921142607820790730524675633096837449950361881508324367206836563627502257221460186024531755659777901419136097297268628628635044005494597245048909237536408065484494153380687079605508422796709440005159607666765897574913118131507618575465594410957566245344299101458071592514316193404588325657368851526469721910697310557758527202238988612050628312719186215379018391600433364560920457926330380122126961997371045232883674071004428051975558533191545784816172511327614528594719732079612118363982943518711452137710941660683060782254044501287856093402271961643061253077344583939748351694939004428620168423065061026208706869298097337082540940068243031680738955172139394215517358945724302300025679380998953269593364276867581329854025375056843354663482761169141690614735060618318104408172432017580496518315163066601589945459363361742643157561987337875575715870089984765968889774987188521832511636047295708465471647809285267745974234013723364087265703545193144425867178395935701673192305568479099731859818211233042722604680061084390300234441423298350544597064897509471873651555768847494052195397679160582615971618141246744802506783586151846180224032645553479655792546352771902242816491470257233330665694562277855352961590887518170469264754817388500034801949556052025021278674230871361913310437301532176300734990907672115662611600517523778541615591398738313065902499757484119115686631241353885398667537326289625786950470965990853598024365733086511188218468762317981170174131922545012652793482195989090402658871046454474780345069409716214066007144540479265368633561592428371095060569851532896611714689928814220909536492084297557884612722234114515976379073078457894993428427476080551341652252850902178786619463246924818778701076201587836052924598297560437984393075015834725750711438828136806383178460707880866199713344110708251542778158509255902111482968030385287421413005830556310236963301111163207151013625850645134004976031763351125889083298311523037100324259118656682702454123543226437839776662031378080498362481075549110329552315612849399229580220420352931183372581619493884247224664848845486026261472606095247542457281719280190239291136935395579488014145614212458039672242361283376340912105458564754691535066134349582871741614580284261414590910477761313900891036851186475921863688067824134703173940993727089314671574229025754385625601899209492798735016650060817530840946083911626379968099849974392836167617756460188486222464711117042564563177950275463254404484703474881410135186564630707922229998905919741916108532103907556611893466048838800106922473125478946330764525409233401977458038071246328696951967679983819868520813955109051720642922184708880378918676977683265323765332210196596136034411942359392297238322749179390248439788718980275497120873814123525768221586977769810894662741744536544018055497646450884588754842450598600222890379888296638612900467939953052719856383470777377056334486739162296564942046960480028113683598747668907228593475179996148425502630990568789355610991005455525158898997924231718337844102706255537321976076254668303229410769818362484347717332204636184798077699834025291777422868542394274340075273711593377773996940334071019892881614459312450488424901795496296131200123743548763648510231093549169383706912177179872953727522648950903294922736805418118864025732216316095595159989845738630602487884509423978374699399535643265067336626457112028061241935635144596438824006527371788431610013370962354337196711918508995604064194800609326798390268326295058617474297189147893082773416492623257710029947534565798246609053353023495828935816778528466486961287825577513523903533522864997174574979665729143846201552290185999863688456067669375594381443416776355209780180785019500747904595537056585120353254993239669019804747222917342729503035771091785241591935272548963656039909283901544116747797403769969976329585322576441739370758237926503526460203590452647154132181512563200802732331459722574425900988704942671058240093628620685945233306262846096498139151795249125181407821629339436715601053690845829163561734628102664904837407529002889289973615025902913956977909113660704577104886782071945128957274382336846800826674724639667388970039640576909251311429402133445866440081621350922147870982711145122781110119392377064783175744187090354723370414700910866753280297179309531434444533540449223271209264735580763535024666094801272034216605187073916821565276961503691611849439863526208919371858155637473620965731583963444250971570073442004807753546837171475297331926518096502829054658234383631451815733895792763688152475673538600178537527132985828004074055402430275015732077664165938767712104908946638266649882328795331754020083381426137913714980974608188960531657583645232441295653702213903336515768597597311459036301736974499592563832894658343867288614170405755476132866009755802535798685724229215810879482206155199302805246937184541558824659484947914329465959133872137088424750024132153498240270227319457973219726565826740284624138760751440173891169942677450743819012308903904504040192845097712404680908261994812347638521420833642751857729156225118108472051966191922206562364258990791563428418609084326876549527811826907248404832557788892961363943649108075435727695285914051044111585915141898953342578215398154689290347164565889341881326172063388732331829966502809522622470790528530016584600994970623610032818450280266980704801815126848350081395489420887181965021640007897661607916005146671951014419733108712716086991033709026570958277006560452562087026611170749255378030134861514713621029223320556938014714130936198549682076296325204174115990797921216661443303240155597829687322686386032038743545548624139375816631977337390824783376831974413585259790182297517528370732494555580013128153726999832631344378848616604126928798199748427046827324666599920482992916333962271661333209870763006432206801186784301940616662630900442287941500286231105833175711561647062417631579437440366394130032345221700702047277023795195398344948673942058949362628310611825498692375027147573465137428891542907058433646353888805223102993250596028222800850704014939447966510310104630336633285308984372791972225339673694261822758465863339018567484181968303044802703687954605582420736494763576421598621798335541688199396427499105770797699576671131122295737542056849611060061835693963485976540587622340842726220952953602541384878807133822324853381532533557298235182062609348802138025233600695486372979410560154322907664527093349319475174256234268630301626202429930609319644277291366874362091291775452567344498922129086923468823156318131559674541098962638388032662770060717312969025664834787986321051385238742085128160280669103994247810314895682609604697918379973047828516477462384929828944119847780268951712481281498401987559855470446125367854416294472901460078887451236369004474759614092663439746710372233244948252885500002671742807928266166124937300870042871377277806024192951890136428113953476885315769392178385368747749806890600325412703791566355389252917963538548611039189043998761825470127109042308982449805859192416272987832454782388332214415265895354088875543924688822979211122070179103272903737389586703823860400006020616486883076262456946635998887119587389260793394510028254199216099721162663187556789606396373194058847881877143352033589765979972050002756866667353364084585102465811235831596619488477599322833747380749765640737311967781001684845271003419201480887552567488068021773778446247878777744754479936474605962188496293823827950644057848090879239087078346997064882252281725199089572021261877844850686861210678910058132792800489980570315593314036658704478960371654222521966128660286172720447081784656030018574566210248792111747546245903060441332375135802853153560789889031569027771901181530130589604084289753269480803661299659333008741103789697243223638392177429531708603179276340370942202564236112673982744332597430456529455019477675246656673975013068172030124610539736391797250957836471382363047065163167058573110986676940500268235689778963000239948631891392493342429425638539317425637301303063444371074072758217728478869420387423847294932554759617574893925441269316088869784111888674554558020221911280296800243438668284722316050378411892479905548467001153664119185259913740346784218890114164988376164716122483669616860124347380062308785602868716169989384661691861901466657299006354981847875194341995852052208608291022041464732250945681600500022359719158563216915008052378406926689752180367411989135655501053966933052743261620902935171236684374599647788385649992892583932375116761343132548896076076247364192796513143841680156082747950912115981681806276083324411639267207988524836559414180953084954616557621767759701139474156924546203261938213669005173001503943677404458036642880196336774370461354066287187324300540988873203389491682904708925683268162575464749260878916377797090234901773246058227535355628093465466605646202753131933175044740505819764047526853299368435101952738745254000818577337515657290345558354780773802013097243289355121962969186483528385484187872046339792487001999587568454037284468279850249281185481511322731477900058968644187881852802053034307496333182817886504793682994737966116992863527378489367009299097753206457285376730211386095006909171905840393049411134017845223774605728230785500623672306471141654500769947427872125921094301570001518364415125445969050003925368363321668623532541079556024276942952387558801085066031223101105384972921560010484569333132246814490750035642872203366549970336665848987548911110953802698684254474296450388521892523995049136871209282270749310025168207562550967483306857835594347217572907869274220775262429014525601705334700679919946171466896240638738721838851137518317278756814950250700099975163380330972885681657409199144767938859954280336047390947630770740451087114706827686214914634933101471413526418422583597531455692653533023966100989762790511586359883112879185239909172502790740388689557023613943773687586828371233612422071712157525847284707441475463010369947134836462914866498770845586362103091973309159952055598238771691935840813403368771614427395748955738306737625560103213061403492373920804660908905054187467938065549952701695467657732203149611144391945624513958123905567266621879855702916381796205369062765158585467595365705029477322265577847534445107534563711699610294988632612546241706818293578153653759842998664177334557607799210408330096831640815584240538364342511605834015037993693077145511824830632289034832985750878064963197626664983413909310950343489452377676238347859122524200853622699137736249811290209282235607413440772601487341002375148528128180459030782448782282487415876766359237000407639657223060333501707127285939984803089119669590530715232437466297594748864884861765412468999970698365680405219315839058407786444100614360847690942293606867935702927902875621925383137929451167090437460461412476543692532777931339490039303993432324129932619368871750684439616351344605617998047278843884334537416524922581638311573171691649673319441242161686709214483048253705948305623736027004935789226731367584769331994931189982658374493364090412707234704604430111419503420590038177006030786331294963950146915860465017291785574505414656368417713354009421461486798011233583001259074128706112940540936525469630622136372277003525330265047445292285831726603698676762528277872605769556909975150595452739071856879392663914919302769995400719934104058078935857140372481801947237506656465140806917853370253693797613210198980152484657953848034840836524719099299748422106121846087195724364733793558970535216086767552804061111399110495499893439259091826523706160496347531116641314334945317657440993194764208049526531095939628284097778568669530599374791724840125860312316651880453250425729368916063865601734209937723448678781222587415360387536456905195109227574442985422191649131765630594353318919661394483290278915277707988337540055334790138744922022833568343421179644654134213107567358508453513566142606640470656243551391027410507745506088325612832606463208836838343055422617251455231376726774342235817923193404168142544587138549584922336794323959253390288130331947508548037524816126431481966450371817358283999800061974818040445936172653699634997369584213901219352115298597048619223557724690881469428920406815407768464439031805330103787825507811669114045290961524247974334127201836097224341534415243771847833352542840059798726085854287050621333028337392664022271266902556264053166132836117757362291392235611883307011135731958482229936933109007070701328440421629374061547806160625176435772458162250048131177894020276797701255289964668033742335092362457052830966313023550507158458260583771150728655168339757102829181386268128812511091818540613653995603840127878244128051272639081244842861530802553746231164776229736982587435636317312644123405761231550756726676255781385058053543776561186966564190625259783304639907929473003687794238277532176714601613193879125585592283436926371718962373979375253387277869388032332986453148179589539311860779870951223550069422276347058337280575838963111722905628389523071454690205149686196595249660704723209011627564936297686294189397804762262658754438503984035923103050090058650711422129571996308533146400567343717965095319199897405527347087258060329416561030592044253791916557992401506674821021046694359992482717402155915206527434362296103041091807140302989546558155478007912007304082892803556571490757167024839775708605479200847919850936488109388511001522193581597574214171099863775771665819349886906216356404568266835717723042448022950087412305769970678608420631802914925882930809621165827861955365177248801143103893022860697091850349493848341414681278025802399273957953965501774508269682964243824930450718876436400870786395743666825280447884225004388424343971101428761332935499136535072286477540783884609067807722488069681727302522727315447229063447929686833384468150510187106459459533933863672839393202710919164247944622086314829094116190286582686884270216676325416365738212255344778090357168938873820499048601824022140868332170291890371015084501729821451841303130536270636393601371795291990778738509460571602571094899306720694316101174344670021118801612872109060310032887667411469213118891141313543972834602664784151462509218281328428514755096263434976574562019965583695311883534995243906690557837433399308420451564061536743923174152637219703887188885526221849152302429589331832610738254491014531731628090850451879515541182617214690293996623217968449276117842170472998157803255785617396288146885415024323596827176934747378618996296501630275077877438291264568874941972355054624042844922320226777506291259369515001690419880483214151106163470974936646174904933743951241921515439593897465670786067550672779602722159954759841948153057982081970147855812017564647016569588260004678880412129628781269086022161235188780025640902376095987832314701316951540349013946128569733607457260612014146773480747790203122640112846908771228874799563919770920731550294134032827522101783301436571108678570682084508069124363881151478682371971049151562751919165853929941831721937087767630609823609682794291822345247425359078163745887894277954522769462241611977063382807384716299220308030853902393578827776719570334791970537523684980235773614830353682961920714365016775882043790232585853115470816560298768392313951457907996860929579841899547338639523964158405433243338334296198042471505253340666228744264436397146267094303896729779983875494113688854134849044775502869509182825034013598037999275112130642394249275533403415454553111841904979211952407665067001896279150287630018794490420291312018857078766321861709707491256986221465705096300881057327576268213716775762294860899618451128654942943816766277102940650188768505349734751123043536627390585468160833766246727380624653285936890850739824333213788180160164138399802836855945709018087753456271903638909020270492345326875232446383073005465324685689620719719525724456770284561967080551325386814425307007048207793277079242313636487516694644666893802508281962098405203613378229322694131456995609303454633979498529062820717273472675109298341183522611127178925442400796253012219386935220204965039671949781155828462055928112146228439971097342361074069012465391094043804450722026536140766553403644565491366563226965322783430785398564575338398046609482221958745136802638676921647356434824152162518982905754862747047714644759628643084983305056271453736048356117069153414953309823696231404319149833852739970549074470241144039886510376051260091420664516910779376370327827186902094797628064768375048019804935703539515628568989859228952922285131915261345039128091850708260401941510166917484524459826702507052200850630384018589985894606517415914842601732757749693814012525860618899661683939666605955391349905954718320108957258319325445850297890057826088524012161188035121695535857257108846631189006909050458086013784193618350051594593834884434849939542264063490290842689864129849836947800094691725707939691192518659007673603552318201089507524992641934312401576766306440893852458216135710909467137887666915867153117985369914178160693057927085096088494412371790469377319307676915939725514828082843901600820048391222267804262951255554598206511136496166897076477563783558772053992448740242314420515147031087771739235577960958322928695170010421805124772350689341996350120701090460580087536175124709817910551198269339581323930023358604740759026349512271874159268373433798989239691158815182750062387890583644238265324947420307543203889800529466280049849787118787093918553005361877769308152808834767583283933366350501960924547853676615093916616542165576454509763359659280459475126596423593084324468615723499574434176420964741334743485126495573300702314424398685179439960121350567758176588813425745400684362243578021111583289310062698085100484397807843404901093475241567452348348020895056791548823439205677658977641594619092681336800621719783473412815245958820469586517844449222946491818921762300498703695034485888215829756166131205143990422812494407302228052819242980771528166812116754932081633861992012993780691610822056531843384140686775502436664911458736482079671090938274241766827761056463558135677366842506850641852635101440077996901009857387941649304722595023319813981250302119429089201561697661065287196279337063772461432610472013801599235636563731239735611794612668258189435020088508539870961765731797025009454025437670712072061749639422670800433226654432317625575553789119419943148560313297319584426220598505171887915640318079920249274365539254490943839222916974789101159344452641402540927468603895118648660547962177931992051272191617143488279749420442002244077701998461927002631968119057348337989921394289510445494485465448752088506328134631194140129441141226208508206582404150167285108977343964128866972064519789519298002358861877564012361083156370242204601816348704107886904996478893935962496356154999625578490578293942514787565633668893543167558082581189338613159357651661547208813532754568174405142775902853497969293412543487587779932561666252852703596773399509075536691414309181558828476350819123961742955940062144971374077419389073500125000501775115266471041852562450237843016821925790334899169327705607649946548165882737410998543476798286613376286950404951181135062662679477982457055625169604786094387902796525686912048928052728624189213782017084151924596572937573922646456680515107695305807776240534955094284311356334390740439888372437330336027593285853048607327323437204890085950823459561887170107142138517158485387109138550726201599989955316362979785457367359508372876090665825338736878671023139119202506185934470679784124777693265580285101859688263958826543084351573468731426601031303557366561675331090999895627333042273763065669550830087014753313479919370750546279447863944010561802861425346868100141732183674443810905596428948734211735254540346802514973861932375191605875870777023738218985715187816173171119687599640942225622914558576189881076269365102443300145993824171978304065216916847548548080782157111259986655325845865510811586055177686187312999804578864053523785659950307863676668196509848886938445348505013525470413272498567555326436348351395609687355886414002287159691786592748681956698232135242440181641502867128556834938590675909043174929678675231668415344805560353367654882382609417457177202156011496128660137398156124537206902572739000183944742915598933235535377898841504086176460719181060949902661403353555106749704322028515109735439948646957494693899966686442383742698753103422362698754137383367277514286110417928023227094515984239871515292423425129408086002044964435534677849686774308262288741443685644465892146849650424442309374662869252676878379222185889437076168324673873856660408151496294158204064246065005262980653683486172890818165158931463518171679959136195138653334059037517640410845791008632085031547577658285080900141428971461463603678344321807696515778303000969321940223380917182457566665734234929098379959803527345122737696533437865419825215849799601572637844383338594224395120035279883279603226287697138024528281634263366745411497006056807446491386081023390903257013757662060895110808413988090224874530242266520688794964881969861789144152445781422518733375140172931080050170107222287869079434851116017796874343474056222650517979374453959632559187418610427257011249267938210038375091767443015811071679399707916250482417860632142802314739781870456511317779282040742836598090950195460547254082774094372488239964614918380749603128322085848470624751739340334438831979545702692216589248114420025791587651312621292717984386185670982958353609246825329290608582710067076569305258467944092468205044945388099286331764421825102500185706710705783351460477408714059000671366698686515909499320710876843126403233798688023344521739148488371447690104668349291588480465892300664141928193919718006931877765326739685185763045991252381914232872457874334791320788904779526882953238864364199057520750650032868516058719426933861754425097762700981238637152963583601024970933934340693205102836754855719301897935307952503161225887841961060912350113539018837012427584868887189032330695472468761733575883201264553235403639476965439395313580957750131232519515830740188686895700742705328281757990386317481577482686899927720463417144459867399182787606765317234306150669937577122817420777958616248292051504287005412763940372185963863674768841952720630170819669115353409816133933622008362414071358670848708730323060784331361056944410959077332106500871102901273093197710189381073783814173445434355823443220977489861997570956673088260808017287018327133553436258426205187527826619317547063321378791198650088722985129200381049763703134788165691048781489582690342659354482433425272805061637660069260040369808875548506912844381914131118882124534044532388253608892090458700553580854454254144831849089176690586821813493812548681479054682660369102360567166966403579236871018931169332021134022268337296622408186237763736777737928701122898809383641836502677976279045570423517740481853560056914891978844851303408183013561956565535319852575502969914124829421288321532761633217232368107206491206792723295832974032885320639711054886756017402911482464015533721300980548993506354620792769944429585519883736543062745589138796387497935350472269303945516105614009290139009831590896884636646144624965503029560343656661792886176264545883535198481400470859206161203654656568077202900554320808993557808525100815178068949699444811852208262663507868923497632838995538335426738074914787429755956439527131989535794913923353023284477609602005840960107487051294153786001593251952101653451769157556922399713662629842978235881626290781165392987787214287491742834878289865707198001524218113359991620311662825210224454108762905356034327572827612667467314893481367301468810260283625913282299504140168286985291888201413122717213471734100155609641833568729051145206075702996255061862686130971406304708648609212734965408000956502482135917829562947432246642527592582537193788049214961438446805867283488287193110174994281674753246437770184091600582153405554635007193343370493787576970653743222128415079181961006444941604763252813928201434696318712405543584635371105840829964972967928837749991334630665780354650664278885737142689824596576496756349992901738465803667528328551669425054271463104762395805010906978858722985547952027313257443494408940380671738360470748852775996035448405867853474151718259481026095297728706550173653803772371301672246338615984651965886887511738385213074817851109148955170774521205113335674843922700420676518927059089921390342292763853723519801722689894236263502143718680126123044159607803288740321892321764872924044983004793496141780440931686253976280339181903866647793751813175661224602833789831777804586129424000948563287452087766653508160577307274287265357127909633036101016522505133407300569444257014924024320413598287501080567195788264839769782411190934440915001546084032153529568862752110730108950401430344328501118974712280244189791246197741048188566571919015775304019565319276115449923644253774505029531994733853036487758428116814722573859642994731717436285474551435283061087004662472739102833231129793245097031200663638075305936490707980398603230676064683258069991918311850472052825064924698995242951635746459306479801031792890387896221119927561920358162926228572957967209706560480430416726336306753802285742240743412986314356192661086270045372764977951355136902213212102747518779628749208737820307854742424339387445685373329462680109707490924115356901579419010420119650757193361653073896463058576334269010939651619287907673598635637274218354815602569821693792633571737640472228939227966149476527301673994851367593472682639955476295056309081936255593903738951153851098142698829446325522223588029328251556494325024840360069408486892183871283076910528031036314789587547686664946732346079130179624255551668321542722842612437109768088886072474300063295548339517325711007391392453343023661168442086596166134821818127442315838444788622726067790783202822596838534285943674222541662416817195511840199541743077265498653436754411762042710559223176198322135070058649222062249172845573197324630836463025502252512233754100129886158229564614884424067736736005980214845910096752077132027556409993429018192861386310531467381203278868638387287663624674345212901418725665143397885497180626945658278205411007390091680621338854458887711162866150971982962711770861130997630558449533911798072948810533907737474756378973440119743996364627061846596111267134103914125206619823168256979184267597004021854681724521998927306070794916539788281148766650587594846569873859963048935208774326975749725224610859207128862011132878182679860244442118977631913525994694483017144615203498791153054289586073481308046411492385689933868315247621778523426596415416408716124331551343754781336866512693073210151051251173673666742389569595490948346824966530453930471375743933133264730256432595963242080232536284010545875698272571982856912922990437988792400387420807254862566538472621207600319389593487908865227582046426706704874489718079746889340406076219421614437278997794595456225916113841844164889004888472897103036573250603920477181728073813958292829761495850453260670137833980579419278059479191917137205102223599497405569421094641941621554225071843242836597257142274793375509483058534489823923283315268942041233168719800093321713380802009212135615396633986556210901862434185643247549784939116612190700698758357287840576872889474322829893179925046398144477252932771602943934453830866446578217840228870767711558127676622112818343940674931309209180319628854740384231819054082216797676951248824054134709818494409283122764840919117607337326725926807718733933294029322654850430640741987303128581258034341858339413550319031284019814939561500821973576020736035353705833369211463118462494633322111478966311054400302601116341437066043162145807158747827409263872963820545288812345335292605291696256349311757874346254480170758251262735315450816462725117497579135708055404639600803196797060233671754239988722939555372725625864110178245446010575640399277063594666517263352808127392756118644366512937734702520407041639112208281349109157671692742751055626348082443330158094528982988532468148181779882082023759544018584640160677625865461675276522646904025022224620737909813186287736076641286528806092914932839215373509259796807991936754299358067639709196396433779235732675720800069205992444903049183909328735042331999186231722054497186979287713004885094715130835819314935462895414549081591568419082832432764186855484631484001619009855968207344028520174150761461987849044228516526465806482986847058532903736968670710202413531235786932688577807343633539013505563970317316905278518367646038843651509575996181884565665472473348537117048283147593541498687172675698078084878037486090068199391415577349935171969737402817050454404232632248391145764731556588757703984944516428583483369009902239069451356782714846279983023107571344557769607150863651825798438644347958971917026097234451129973498649631969587470888556827627487146708605163592247863725821894243033085796555226897983135419111998943527140272737904403660379760014557293130279486287855621079074781223310227813053706660931633799744344905337345528052850748233686959534474898688302713942515622221785959552930261703112190808600240019442034747394453050775976975461721516824076351410843230874098822345372228231865431681856460200667502284008639370839317358250072023977231101964771993468419639642440070451901326627322363258064469021578763294603688286722434947513311345748871509714086208233991062061436122186719180261180452205710161858075111852847211766496886388621465390657086635273307848623894493892183378689991283300486370789284509570326047282475331408934551560284879780761215723977184091344528189586304817811187298925024020114925626680982505446340200614987464366263953651135114705132385238092988957364393021642633892323293803416934039837502738490342352731704594662159628172560107178071844303237588844523887381123463782168530141520113300516097262210721571849138023676706323415431458084968464940090290718657518258324401792089171041637371115372030644386434377555840245606865162780498863961598088525007926958619752254536910025373470249115097171209703599715111288050264571701259125793760932061855523478316932492959846238918347116540853990654822423181403975490403721055844515045693647039345470342045763104431547157574406667523552254565207062922148360037765995270679565641654508904639512036658935514072388115199355392140907073602360729939294633486306232653195758732038697408660576072538949386979840527088855520136497112663961529597350943988711476183813302852008772531972079815722626327367168878328630226243674619646933046665062685901252958915481446281727114689446897990524315708415298553915735448193343110058434925327868451566968441141197271272853001999959987732619058937665317720835887617189063080592106278715779403055671709510203455151419550317411421552859077672749101250609280692594669830076911599571377256621585570884131086793680943052374284313103710122486816501633789934773615682241866619931766547525450960396092876610440463000087821493955084101476949320327471064059694514607661474445605506681450446068345202009780122768358279004733692690485612819890424406270111595288427598865711533479823684265666878712952514196428363183854143761017989042316863657276106476474841882842848021430672676687789935953815217730660700190810699558972315273802935353220442701783564878158088947982662842212450008838487018226843866464539702042693788057667877366424852984854332547974585507745833969531085770351595331933169606734781273175295105596255595738215336833342589315019950024361262753767993557668723830016846820766451288313919034265220253458070576304046449136339228149469264490248421556019748595367849478230074272020345675962506288287424317249185352973704389554063993284102916176795966151850991783124340076010654028547022604634931907698361785568214473939863524076330795053505572796875032174684930688960874650720006043047718692554324990310143915186685066737723663790456650299617979512884635312649642473216775298425376065444313219440740605337924786846516790389341989425624381717954518869734256399217641043062135318090052914959029014866698850344094443879856911148849922168656512573016930631941484873030410433448837096990987650380327198572421118000107743867980498954639877233643608327234440458392961341307041781880928598232079383223236991092350470352991037991183293085353252620169405454058865515378088940554913849242671937411283016809469120762119612526099072371430855945406880304661506758558056329551584149029241625063536272831067117703580487722594980332856306257634015560936032348776891356403163859411472511113005007690520038302293259660973526942394620626281431439731546581763701703997290049644748321578700931429370662097775454707188407948497817319570066315077261413480620636059849497067841970289891616735360829557971316137319141165226363414761252714618369007081576395421594551974222565733790728207021480632562175652624200977664063623926063577700919828255953218016121773758890793713272466571148632158969248741887820173459986318912164348547652794444688673553235405676420474373023899118468717399328900055546592546871128325055530065296081851451440132148447690982085722183101473501230092748027028292850374832781335732731488366962472397314058786672480155867810654325206470521442717798827526414358820778985196371717593438749820076569275511331855624553514988232120848476571344407506934985632897794387902002097765334494227851842869512988589196736392444853830724724613315039231222665959558397949454883383874207077684118499345567306014585964387719558111983311010953637818748766704017804434170070794947338080425940167910110757463984710839561891154441602325540394621975948322839505101821748104866395144065025332474897596334562797249740875637501019137600387152684670715505901380207488057713077982086892101599580313455277250515782272994392068884317783613705692979497272477094015905731859416687577858108079078091178255453795285197047149081770332129439317413015968916760235579295629052673284422169165059837260467226898906039758361280120226827734140537693713218431721803000708012236036277085536956479735114854426052116289169337738728425344312823327462506408470376274720911634997806196896871842804329825689077467915128834651929440675740583652350091954112327064543305981806396575679572523307078355970870737497045299087668863944224467507409041029698512485496987793499387016869716932248622262775795568298119001675881456676508534425192175065991299979169219494963729863977559099499461710870612653723240098850537974495057338262392607931866789604995194398704641351316599516007714804848510194019945194723811597135363752847928071362356556330672307373385606274862182429137414481189921063512482114177810519891093043371336965585592742164707257428655580703151866160504037338847523995231899102516402151251873056202923079433754378485699285303171708332279981745958735561746071853029561440199875164252987372226390110610220176686720125241070658633873330780431908265848161282530898724307824058603993804466146566062335022567860779251663256359353400628304310851835881613548006139600497993620595237225848940203949840134187814190987811828676941281060114265059884857616190101902901489794578418579279809018558053830755182899641698882617441465634415015034590912430774790822111668647882322118984824616463663338337818885362811955036771929361406361881794380263419635049388172945931723301819815265954969245081031668693868239554950640202436593107811875488279948658034578722070696675555088222167082613054319913770086424667804638217537176368258297301140509868881834568966795612424878884458840709535172776519487374825528065841178955181464773177051622827240534997121672907988060689605048979846914930228891892113297495298269082826994608656166476585875119144937814245688779196491746330193917944986537797838252631862865927974911800557784475023513580030875877109393978108177964667875781142659945217294186849883281100958232632133221090882161958865528513629802873317708512213247225834569272165307342647415475998939643024808186687622694229446863921368574667198426979698206806706258449330310404150426952083495106723924670182784551171826292911168230242303804490089008830806869827339416213262226250662886988463705159580030871702923339265130519515200055117875572454058043094618630593107806429587701893855340586691218139116268476761149312685922298747540937435850496009466921505306332607156408977309363912372150635681646389690688144287496061976931674370486672773750360289030755851065241479096391249042804391673487757826023021573456695005233162655707191732358973086730477325291384175204694476118554792658117291660249132908510134148888553578174563441221818879516171302201187050985055081109553172612141871608839019537641289540113034867283898809508258127261798252802083674719828350074082309216284345697577635569617662441880918127780808990809438869369394633798080335307212152044292557629651143041002033693109897896819230349980597088484572589828595006032456832930441321819542180802864676985628100610849596528965832267636442055698016667951874329830718046433452839934751047440469149439531119069498922305549355794490511943535912081991256531193047192635587770629731756890065033619463717449487132517384425362887591336152094367072911303259438288394869171501346749452815840281959426326012472171532602620465940876222901835836407116906560621679124123352180111749282980271422369128101705152757709471915101719315920222957494742297710495189928200524993552427411506663488050246850046321929107655103797223030223804464342581394747276870466185726274769751543952827958760231197162916573859476085532533890863850711592922001860161502109171265109150392713564170915931983804736114764099022306590709024277169618624151743416563502397299528541820114384974657379877144226177425157891494022265122974512199097525425123578909354637354912397822689612284127186182247542675725110787585419294756361411037538945842801290924905588558372321304063670060704033146264359568068185018580025332923941841793995217411322109937962569704732906117238571971812025181644197617106251007903491019456215963748523947277890660418341537715488287319770636546580240434540017486417943819200431392567401369908621899880427386964687900738648786200211506268953618442944197054949193471223290356389480435320221699551903982537568746633934118936598247268663971451889056437291375578280433264725062647169017828562907166472642996682784990451972191775697119575103491496631986875159858508385216544651150258977460115015174102362142388361806685977004773811102138345354485943635529705571677196687641462150791934611660648468153890084216140776703201279958644792266373552465743450590921535306127229040548538575617030694463868987513636182069537454089510371229539683574241498576951482583858867680666306995313180889241144743458955762084018921369217264469663413007681742559880575218787936202013209019220899740978959126716091096171759805668779490683929326441822310453556882247707630550642216419074223708502654648984693327449513910993474402970519597115250406929433743574615435250194804454404066112774937318448982447368197878355870835172630550732300844742226342523313615207575364891447166872941582709591461553953466084402240632395791069127044186146007767401022553181294284290961038865908701849563521359765011579397324049000715093607188325971610382222633251826741333657908735148581318661955701466404505889502169345831400866596023697907651778930429348780383332284903712522328945361415806471781426791900092067316416839217688234472206766099480603851149725203466092793807132525479045914392510402422822854481393050676638493708834743409556475978652906430650675085564422022420170296719868082489870634797343591664751226848380308098902537255093273923530813631114344129101576337725795704999515885909414871002410439634112231113951372794164265520059070275954073944117531152359905943184523543490114433230195702366605310501848979611484347911732106097620399324008200881565750467381466884650102798869166343726940420916669678199482432771502441592843750104767947465391362629903578725450355370274709693149549722609188654448589182521504092629102658833023957559641501349664068704816759360848687996715618941952443101838870365108175681695999412148530260767306846950489512880340280766934065828462758869868048537423812303383759283612740762222509557188963478439185357258411367013932768547390159540514075184318749552240475573494805603826489271418495345315031552598385474432649383332667689535645321314865729478261006813875460483443953364973458115204362857042609652656937745602961958453562236523938899819763040621171902709394652513784280976301370053584056551362358411296435049356570539059268107133630494598753659081778432576873891530117619387359657246430222633152544833728996794149351549064486939627762497397709367407994512306266830143985148827185019872768891553000942524889129909264504079054811830796788149872611514283110839698850230648487358528836860777037876884533931953993772420960186157105272648818045691216047217186797210081475865243369398525770035057436889206481492886543801030305793666818986577598714370678508701855753309698359057735639565677318470885596265261630749349760054972398505598786798982298764281325087137359958077831784614177717736532803917141879576073369138500483100083379369338878892326482143369444655053729975264304675486435008274083501374782166382657749308411589352453264606917827072993832955207867535885638998016951140728035572981749090883174708652413548982224622161229447180966208458092772928694394017129048311240869995019125519773232675206996577245895315226786577504423176818292059309915308104057893360274764191147287113425953320166578228014347420835803617977159228320438144097581313667308285478452968016484005660354042866970979842324847070447806409189170692446972410560457134132366776271316781502877041594056795369218678878478368789383505774803373548868946323853790522544091636215516780354783342203160067261239762185718549361600292311582400029326387536087542225715449907091199248069426361964542260546339743408513018778968264244012521723302982610706565806683323965087458748241931118796019277427886882741327021619868848968379961746025962023426841907930504893557540559094683503726016870422249727819017362905827286152529424430529121226549903271246670846385937447046062003632894339114342202251735551743136052222897667295336374745140638357298958685017236688505934110861188758607772088443685398213926943293135278909274535632338989468038793516597185583328677111856067386381702670443522547577852945730920469975926625142005805823735144464967636673552879534346846240302888510027505097429826274125048181961964222735617748418479476097342658857035294586497060236257135451365287404834143533465326070757362588754093046088350288599364211744024892216869706429085607334308831809830606900039558223154375813964812049737808052928088612337083332532292863920643569164939485386633696654853697252993510168121941654222711539264470768370116261336604690367296609591643251299224231988134690760585871031004773605126238205589356420456459957953046676199880798023648380818274820040900142682222543434005180322145568264719238674303003494329740836357077761120395106242452462226539400445213272130704015172593418659898532642295456434704214597293148714528052300337577879961830271205336346632593556602606086141290100354708255023833706977815125660144602989121545990579302866297229075722625880505114797188169389653093843828063172814228608858165564662523111072640148996946820752781382542424800907606418649110446788724354187507275243092238042674481460829489933498787275926403028721599010149022345713460734651893052682662287712616972793869984373507932843710920153401619436339740509981622943005131861138505245106835378903355009816439576532660430884430079101874802815914508472267269713677454730899405697128933924088658149453315174407732753838895303852788019211184373556347378282046132332077066346816826279405533775300382917223158522662533885168366326077567040320639000329323031397770206636292916588994967347514830577026407169019818897399450609934453762423760073006641273193677882218085845658006960754096339294644968273913371378241360500391279673081240360909185031265766861193184986026259428086908479711246535077636159879630388136943663869084740411462540322054805331873747258760700315962753258151216810554156971193787184684283149158165672290855299271687044754517672856079472979513925180451610384305418105763050230299503991038795093511764604936760983392036025225876355721763338706357569916422168688948351924345569525926621181777392149919631587064777944610826736864155206195329268591971825944960584863188938146858778876323645061218247479005435221036521111004370810822538397414645390577416682877083314488596352491324141582005146581024209505489199716337911045737959061227152802372784010542097998672319628673398358175486664288091037148961456343388067659471631588345664986316954521366113304032176106235732800052651596353857682255021338095967496828490898986244051236614150011391225164830838861892119223140120041001069223780590171219673320406756385504814105874901075762501761938590499798339600294052093442210855609291538458468660337683819727029606612306517977851766816139005618075904902813525501732797489426525954443220311462560249371677463686406975751545216123928926403841066234426544158533130164289780623863686762018890500536531001877911506197977702679354339155611058131266344734457940394171622854227819766114927695335680350845486043939866287741043485883066906222098701421182993981658024686284231872539308713394124402133010923651736241934342786961828263449927836875657396319291648432546199161076137361389663858751970643198875353959419614798325511157386360933500789204736229481130492499592794611235957983599084844095901644760741218963898497045309507170170904503213312662903682027156662922451759655343945321520738535244660796371134994161483755216916638499827395243139100838983080847624068244068919940937266508108583672746508879903937999162180639196657753343224706458115238072835411218673659886352554829050062204130728857515344826734626921994798647554078312205494786062266822567302350633290167934803621755485239582662426715881304813180715194719942555565252706960780377879954680810581168520295173874328453013838589020259866285146205953458521531632834751758628940181130535450109255397561028705624198112470536998747554371510151729567697414370343925503760908803777659195254799244730533957482721031838169762595996962611710107931662557089358053369282890616879574612076557363478822789866829913739979842143036971894150140414337126558504695841709372157513302953466134737974213664623569647565615546930178074147281378190809951818439724435713106890249042700875911193051427109823266046109246241994973270455178438555928122948592541889574128680015728557954871690258328421143096770654234944962708805055933778089643375167323698967297194622121587397305935065322757086402419600889752060362245595055977038972820202919644272694246121410864971921624256952529078590842126668649878576585750112691734300784730183388871330242518043222538517594593456445487745576551375044039758356589750258916028605736773501883308204778515554398316483815919655052662142741366618372630855264656372265357796682026029734426078171515727823611006831788848514239001784891332269719070476489553897599422680371278148390086312064992440367480894652845945158672341561910685922743741767596766092056791531448726278954844790913152339555045871875085745203978966658965802632353564849169916390158140361031587743479955094241569987803458071343360245212338407386057476419069319777357238833058309948498750510227621576024683100137466353030009665450748570122086370492654242868898184659972276022402880357977643771677836792363596129127703482078131000345156436013136669536739549781782217671809855569674380508675177603401213995117785688977464593352409087807078172493678492562965015246420484695641173285530032991989818167544242982905857770321451822553854332049385099857488390579440677163982556307864005758446984687600212714801539336311015812679032730134662178073721878820236145703679933717946316782219042840348792728664641362270927953328164487962259090696684997135920164527983693789891278071945808185172964815729688938110359993262748147095833881182953612964798191999104114496490879054038081795578731043106057403819234494610650665375900799948329327682075521208311235598484636879993133550040867227108012260200579733578876342418184014333481143019444523879260010416891840022219199090012114559060250125219385855832010776314597027951862300021533658831103488613832496252700361897684661556608273684143677287836547841286728485604470100680678580552908497739500828392710248875358563109755470857336952553764202805193358779509596623956938523573664874947308165950094102936998932065383429234624509039638455979716943550463411379203761801753593920881395028516001606464255398902778625243566412394389225868903971499343732300838101944937350212682035845449543694455134328383919136339595906264483632350122362134081083205535370164591519035054181071096218935965651439124365291442660186260274407702121880266643310588363647221105265290140381161080099390455047941707485721082013486499474173074957753585616555542574113489409764185686878248929340527166968904304988214961101571685108262464036515036692897360542844177003776166219466147499635559483788096353552992239144090205455204377781053718060440702821885939829451593892800055863396055776313502095218452531527905503584263482251796992066242647242722234647449660645224461633549764877547424287377400751570569751882240764517444872159855230495519168439365046676449312345021461662399458500712176594324717119878673027203600860795024206633224954163156473909649078916464041013120146872637497146119689800896602157107316168533212080475195462387928999877235589681141533619044510866461371600705643011004694996752892550833965301059693974557930724761019493183596963164188529270221647995815774460070485721283114712115509395493779821788017288019110733559358077745461956848348998019243781955681432472218144087397413525368048070298207324756432683648092843035729777677376454338537057513958277806737212244746884836161754307795289851521320468480919526603821902329647461371701560702775554642354261145231750392665669798837888122405965267667895068671626701067552767112047645170325624490799565506248876681667309086201635456174268674346126310412203415092023672779397704568639382388799357902873218543848320244912708643243286138748924474582468763589489276144037623944012681850888785145552016411972620720952284987747150428825633364295256154374027370974170510379062243647048306256543210761796595854332196610390177567482536877979455778976557928077440832614514288884927401792328030437454569608321596833903494921373691827252785944997765479264414431478985359641680369053569791758449828930288437072522928223237321427425357463408866419622951273743472001440425275792678423043451840759563289104394086242923980655122689421550330126622317917336864181697238849035075989509519091222463295595735010287465602472003627811555314533791576368303979122859569146625044307285784827969025938692045237474555321876166968529185890591461334541337892138618977843424623408344307860098910895840949800491765873832702685873272649964786588961287366919636956638772658236913066135507169127036739717437551620764174252245450760762572254984474380740353868734934530840741697779068249860607735123043439664278056874483309857496591208596918700622871539521547580618614163430878615077534156186996974213736157716803714848857250406257658895734246348421777405103727936457905170736685695055989800455303243883951267994279610642194664000174995820337288489845685846259100667507417960995436101731543391240350117115332352649109730798123912703259664632301784862085006248298189944887483460123881837469622581040682456001482150794843219024066215011669810390017179275560991008336918039351227515406484900508442380233218083310377573867590232823396639971101908365616828459987533136704160304338591126515120183878292753703368220022560073758897800437234915709597306109126794201229228650195626012519909328225714148087074457156249564350285744284179636516863709989084315691793025732373014464773334196894636165987563873337579017796695823292274395345766184803750088473890489908924487785127661910410749880788528729367400869192833518644772333183114901505178564533246316467348318451677013686266708770882124229060796624037791969609096808246192774289866871831410477661156619958827335860769166228898042820661312988411651201926976735072035355062876043657617953950661266110449280069896575010472766132787079075050869660186270990306745899972010846872442997445258253062544592088732909442117901849469750662390422576311534680040375574051366417819594286769761885098674078144831720928214976556224097501537789783635349958350699986597175203155387372671203145585114210425001080895741510603313468042812573560927941959630515528851698024246899946273525287106380529753552967192616855973469171449942202356554254615260821609771936833656225042446029796102901056018677754458608747089031289477651882525025551415637856047802597038346723060389792082393286448952086260298996391684912657294608612297432100813579977785942526270704730724850391556984078573246894118254688985053029935793135379967687520933370385613704770964302776104610905326060497765637906004882864474545823685696548347886224230917151048207675259441755572458058338734607272661012638078701521909072253280287700350080382935730932447104857421945170780436308382405298217505014540939455770083783270396195684356118043587167493103721432160311196127889364943469071754400821012762002007317371171445131130026992831911940703171653371569658502829670355603253508590224175038768436893381993842737293267628059742921187040334146459286892266318683193496748380705571440427108579579539696379910373253199188260035318480951264569750201349818984588813873542130399307640134122962111950587081483482526720923927244974267202118140063762996816787484760474601757561249814534699232905418070763868636629829460452029715863889190399019401128056904036231374118170232897819158711577179429449455251194443653256916904519092123321560617841211129470377707341123423057380535267181428195183248547853406266752251078315122136429266708583920532918975524933935195816530549078648815854413676558883407722303256929726006308341706573068903702244604597085146604734472943978827204318033931705784172767905245165481535213288665245904948328008067508917606671200181826888133177011013427219390426195335095247510598667070199242305760850755913934776896069627016641438982543115499940958489255374603706714574449197316837658509384981793742837336182500908685030358558269118789549009459526345639908435647513608268535240459262835093452546485502824399785522316473907583729393211970391327776929716584110021325312728875294074980672712859319037873433570087326238745361905307709106607044416990201755186861421548380745527462686355976612342511416798009276144668328344412360631657331452868772420946958344419542558594180733452334670034898721630035565224147465502656768984302571078250593184151930864279288815634483281455450848665754364854015395988071606724360033715467278407733912372035585398916636064612646581936745228622047377491096104397622186021680543935260892934310399788020262744273293912960632277934863034076735579761414420375822383403789638326532325440327727365048054604316558981163283556398575107919462395709944039749045833318920120578942839919424424468483474570287213810092861997593201040567287869094965854337491569888000374486804802122024520699847835280995286634041084553139819074642779194399298288600217523373122254315771574531867268451866201435269090969859079672608931318662928191718088626545562210939270350456985192992681640840953941822653955026620730426794132535738152410334325636175893253945512536118989893134484164518246706990518978531445312119118798477668998384821207513499422526733954750053418756316199761079827433965398021307879049685875033371007887891967101582567551046195980655411366555554993851752381440868233748859756509872215225504762423921377259706193872998636731098074058367501579376307526255251387688691473137960043329241991231123354423598770008241274183439615777272351097062182301196264777404272253779337500340118605752868732041402055607756634091878137815632148378728781461414652581338923352097715786720866246647888543802081899007190666447539806053824754424332447314787718234465153071331493357345521675637310441723280463643753180467609991136198678385762903633040022000107553817272817618660032562672978880695397702737927356000962444051793258914977093084357176706626657022138837000567084695441781027885689757431045379741782482971750038307113273052666138774519485926833714905216224995303350565647847311785475804044913639452945046785026550056344382272438463847399157014254187908129162155592284535682785568461972369845375891649157664090791144610968378743099694523190402210347167569206180697752511216728378713491242889492558448868478156691937400624381386931816664155713075420144256840537724540692186403790251774561224158942423225505154775188298409436299288518015996360080935106355620795964521326853351533188592522436180235000602001371539872257303765792863117679725560165223276633056853432117258340968732126788501361730656534208669684217946351761139111554156023921267634778426124599649288815830286028177352889986764943700072993937825035719166176835551944076480648721682981072420914479365484592444329989013986812275131666613335615536635849778130501824329242135991521984701231125505541589966255280223991271107128697313119326759261989676918838160048318388627111399664425570697894177084546905677342868527923108934118961255297303939164375934020118831819857088284986088811716472855703656817335387865869078044700678968880232047452601011196557715272352465706470912190643927491022166018718492137440434309010275851225175424903751788585937863475424327291652110845506071406953216839073607000497642806740366717927138328322243026857690587965573940162530234335682341647178651012720636661555349092546809274346835622018792739332301714026455699410705119110987849895778494303280560371776267772249286684454789328561366039002345270668020812229948884076393152315081936260544205595474613867358145097365345155530813965041357095232730031571893614860725934523274763863410010717264290015290955780908238201545961965410118068796955647300432755889967169221026194579036957946140157356410508284751420764526063788685671048358124057536929257700970383433367508241036009401141731803570416790008776380591961527462231060364564367326853840251213306329506962424480006725891861718101695237170676388081611037016018650133880879640822911369827832002791848302695096876991139514936908291840865973785907334951733171711998305594880610486785986060366672533015533615826235412030863522164659185928815440237941145264227505739990280751351453830761020484424602986420662414876025512836665907229823465974627752273234248982994319473830888716459562847588521995008308505292344041533743510854307759904301773901669704975172302025844401932898635269521301245428319775452396377887520545187567922578671142355868929587701478976336606284493879441520208102566256534580681130072786248967968966100325630496449385732300975402098945004883955523517987133615294771146810690321261129431334303037216637397946218447871388462881807011608131022457423260030943383409067032845079332209268242561312752957665233326381568463847756537900983408961574222115891073666871650973537144614305241184237347135987631961489998752353146947628508041435995500326172927194168495913555140259891794153746994961788916173742157105001064271643535329641201866363381954977186921601507175402330360313000340821483089300007450903238409224690546516526889295298156654340778387235316451190473494874066721295177596757047999846913249952801201140802156215372852054145078437152720734526057023496901518648241612636321583248045740883711320921968396410941215967323923641132011796445413334994758714918938844091158408634988608644789774808716969106269521122676948808298018715476624486555699301775296605129204299799742248114572230522097240494284809760182757133019617994250579710144555144502374718740723822930566590948552724101502672640021991869121440117417624374364198260658994109217442238307879386855179980144010068838008243861803060666691888276109365799732754990345010621047371858417952116656273563397747127896214058672680698136748567971632369634280335626046205365236925199722238701016185812669229666230245451743400031313114974192697275201017869071856544909484577566119525596135309959868227225149998698999853419365004748609615436742867335915671123037430507096775771329225764239645178761447060225738303627915602434455554031535639304774677997896837607979037929041472520452923072834481801388486455051603477437242727791672192769086407089158179695288912959676720698668800339570084958781646554549309137815423121280159991700374803621127485724222854902919868946883248500972813392775436148191732114813236225160114287241070150528260328305709637510497991042903697134640713914316584261047763843015015031289046847957512066216082600386919703865714908808442665188172450492076341325942485674190497221123075333871583180240126748768963242458419645700751713372253348635255323309973795142564609587452935319093713550383931150557436682169674611658266796261221625866854919761606305495448372489224620044319057784687675526184885970595189963379455083599426215664858880264572908575872565686443942024684357930346179216554098069769360625538653466538143370866900788437053324483754675776416239880227437004765539286347888422448778964405765041600756595764636393303734838603675602894322316000860993354103630414225073599317630970336547396599464645265560179788291628643204728354132835188860793136972736802182481497998795974131825303627557710945602627265694374539779075222781660529724434678098221983557413397943666052705608184783270823111529939824364020505787399404260932743270325229827983134854640619593661824256040666344594900910563140548758991507151711597490702246677881200795966375377308433989023222705682703852598406680862687196891580087149568503142485804492018795332689558855822269638359807726335140515592555446169655088282909025310486532575352685015325373713714159801640406368505322270232672173818490220607092671735118065596706400605628640417807428269932289456831310556747285970246507383095026886637327073987242785676425876611806901790876163249513684674618477680898538333201272351383880728501562642226963830311354466393467635394406052039463878615699169399396962524081308831963895363697528751196297448982825145934072461087604511731772649135211399315039397549992472619180324735686436710405673777349199778169083849683137199746217268362159238264977611167869388859495212393025823741788249073666090033199471714445064526706340738665341632271500760537309285922743874338263284655624481939599931947425583226242782359747185754086381271144516274758131565017980681513491413654231458970605589956307221151486610730059574068394425108571836035021555967729667455083305017564985471661394432195611956899267942042734381810168312166826682298321406992305059732018873664507431068081701567165538030647840474583741169574249873387757771301055212150483759629491183182673218690881781440687764121501372304988494638067017420706540695363008592463820187282336437938914109806954906117400016037798590129278442582057592732015133166420298758990416753630492743871133982927789556132067883423863187279504583877668195822511457100292414672837350156125179344844169058764110008732557192185443775439803442095019686415835799874882338413496493543745970066836683892370422305836479140955355879738895441686209750522194818458799977186528102203696061400461674270575943023743836466725821941583576592488732527733893000910406609478487463172771077846007350465591014442018326040301834613259753485949574047556654058072953083938091177812743322589928207809168423968486044612996578235779292681940945747554220460374049765518589631780624272676514046161483446652212528946103262258279611731419773237306801496329790297757659879513534121741069210547958224169827953741657441345162045536501179160503974273234448799349325309266436494843154211976909598548859890187495707535940697123690128651066157145637587349677567905995970245053081902215519552400459599181580299766812713681682175155487519039783434404213652089760983430315773303424091289594758663164793847804872478250833786165586830588969461016800881034423694159891418889648837223662660867796139032347341112374738425109930313212013655783182124330898198155707447751703715046549457601053897085004437966595099400993340951124205911677896260820119629203784965798458868050115349047505841001278589121052182542844220661013674423434905205253879115889932126772930260458898909020471696507550205593773331091756107833888058701837806588930761243616056330282025550865944289857093759607973557754117161817592774191456747377690427227974232481428532123097333200235863332491474268366580372275183298663126909414513343477613436065019170997925177836016597625811238003626288637305973920708143975004883522855282830673577542736727560635842794025283476587984834632161972818892683655136871792282112182087828723261095138362953999876548391229193333690987539190538281266420030018824445228707517122400804728475652257671219864808267972906600482986364845556673731683007590594776365008413852678093060773043796042973768882505728884021900082481832908419333006404277575072639716634625002572102647491515820634111688034581722960859637551245812896297640401933513997377993508862549539204201666668080917703004802096078035055004133492814187649622251799430753698244053079659379169556106962599247075279020239974333936031188960595176428536984021203837184174391616000925724553795533137198634671220175619391981177661457912215497468829540981363256168455556982106343241531922566884053032340352259859873628917413006694753782965727358820131698346994373647831688510123800596637880844302432671168013840837352689097438660643705582735229873728842672100283858991189128091533666652132677918598260878153176027957418862712043005131347426706146567501908996622944521770825782600684064232431934287196640075478140118201164973212430506173546692097211238518033026186121334981215555135174958482377856984569851903623202064085443113603996263810400020624198734952224869866858006230788641942072040520528690944283459829126727679548788414692894773173259899833399506943709135498721335822133569979771207548478273228686555184345240764402870722699892055705663050087007534747002328772609222617729773463795536416155688954672395973398344348056643968618748432979792715049092340590598378285281777412580544244457081974410362224110826739041862012998955994751697473134168897136705804182219485406141020327714264472126295750381631383614968617198663131773764186107173132827448554374736280255646093381977134273762417616121918039172149080745371936246856943324225632639165448461830670938381609126272008790248163595847572418930740637462199801057740001679427893137776477024774552216973286242262600710846890770827919752938559844466665322570172781558102672724694458720945165112301838115343298456293566284579481183515300016135373602276773520207191337448877313659861821858282812830896566184312291808803233767926790306791078328079470426380540928065685507142664519358383147503737400233919756401617659238571834123404702604765174018889270380522898614686683450647899907724215713295801995386660764446662642906914906798845493443888552675521362906817410344915512864234991614667474048997559987491129397346241660398009587112816712770550382907545610146203209319669499148547219006640504432155067157493459485847158360063119805021730434020013196216490962292153987811343380343528911224612320306897593979781483454335091863879146232530952090043512808856209533044716693190867998552008166737401074318031574602799148125177050939027056841487176165353787438508359035376711239651317246601088226570658079301860646192472924431079192797130347093327431652100280012839337417123914811266556588603140806243198545926045856325404155098745202737304408421113606479999777425276651662756248151106909687052833768489878896522405889740931744269369082775560569416407205695626321813572839325238907883605978712224466456160088222712054938683830995225487040293271651253332287135617027369728672091007150762532221093122971643285827486303244833192679182410959802848074393356235967900203231979563359691015175966106845361126819624574708888358418113404466709422727498271836309986569570606316866016745100593268672888152552593841948083586049836312152813411935580418744947928115661347408574410489613807561503372038749527453505662425459467153933317154194777577342820364882999433805493217214632922381459866192594933717933218482341030531847875833622199715099212459129674543487773681801284562839291802525511918880002405951144864041352746134921560186237300945120551639345713358830282259685904117650024687124481454146197471874014262646890534554394553047331302048431117187736509172065866628472428092373547116472508427528186672958625888352913045039733295344146989386660235835818757123568640269652604051650147626671200262759994924108924338167334458859013023387720180294117890242445077450206139761299135298264275481983275406333178347607014420830784695242138280159008130937135961032493788403910914783686131570721900882195280117837829964286516404915231491996359270382158912993334791952019977838681917170919326466890696336969292008036480178558134325506152272934330474964677869289648910650812262491596856499512564856802607817407840135758454513856561822191361162014412889148729746099710436658447359517255120266982903281539259437467303101938883835333768124678718458604349971585588401444612945840851288620379474331632587000869070567003604023108218941228828738246810079654078632459026284842487123930569165076962871286834464747484693156728323026128906626603873735441469088742079868473312173255089415149897865300857514084894781718564566701327467722203940787205164159364573004185239977900101513625848566340178723376210988636260882329925987244171513018780125067295063996493298339178412777343234675389329632231954987560434640532001960095812626352218731550039634207231392280993252876050118647817500471563232038417517408340062257844745521043309721085213089914393699407967614611039260326905447731579390790116528822750593872062195569036369891979781623951987378545774322953269418957182324965336428059376176026784659054627155124170281560918663196564374607487951434567222588619025051034716078004713112106781925774347653530133313193582973052352940252489344472039668614657137345076054576550742674253641542431067617462362702919641032631659738604220806954244646521497779263026800218756733298218496557848544247174493896340279578957715043417922307580930401214406809689159463559820894540862508734647817540918650128391784196011009988385483499105087908738283043951614677267561232260769725631889495052872542076895703143360206463441103264625429263328738229332349097179672870403454389822659943893997657438372189351611694281622576084951690276890167814464174410206688330962827902596507249499729323204874155863705136983875049659455806082973185263216212265650526048775048954259282953591817410444461271341817131274510705530384115321547420614167722592946446634429888451176080251385961329424939427163063318876930485502179384056861974791108722644308824945164821298256689982463093826209709798101986703320072704088023335651068107772203867748509095134337096995948404555056001438928013358028751056895686521810210315519031483221364772039162318519434700732892300746888697686656973236539809709116931466970516973052856995117204131753959257973543291802393457143641286100508652126373481570783767206563654751342439897804229535530326381579153557600424074681397233124763725003130138112928568179041453892050400926316460100093661536814014149372399289202334190192708699591183179698948861448354927304530104266696630996685239728867088638143013680747794986688806622630940503683428928657931524003212267010273236453259037851564555908081833580852119793521364330970212743333394074648330450206035229452079752948835011720928591563085768416759772578934899910342633551127120825326061504456912650714551239396008049096490810261405545434238702717851100773718386883464302670377302504306554693533723141809190117907067713196274160717089096258395835512264598427469965554246851348705052998077584848356232712016835138004495836257598830507335634699456293078923017974781843332484200510324992852072399003075219625100040842439821835219988937427127090258294527829136921331898090694716783425330528947664150542917664852156503424428580492581679002890783299152614457930102104023974599287927708808601876116378271881560150192571877894296560064482996548385081034845204622535479807149010538646582429671971791308889823146644548016365959678078004360772133018847804172956305729592962996720552580428193073577577960096744582378947352993876277019216249566040035269618776177412491475587417921685194352152961286672776656091750397016967654434177464698027140111774928377929249931679142183230668648390785560525699047242824954709484265167910944448674811958957205601619830118019447999029199783956484317561450120765833968278147668135707839165197788957222652485880531928360698256061686877198156120374993467598649691264336221939684412752408256154450314676516720640255286029277141199393241046152484283454001766254771767295109200733085411612109979662755482134940240158692149365149183142348076688021005429365114683001883777714060346445853784279717478438693660701315739724570129688978349482952748028357541134053594844643905822194204060386194350042541749416449154138033716532006173161709213167379956146289511272292379499269961103627493853383293981762599625166883253850588549149243758609903386223180613140887629021527288867116282903146118555744718676224171856521747096494989309490760449903157849128680778559919166615437954190709007921056449466033278038254217533124493244574271741633827390470914816820831271191626353947591174874164034080419034030788143263514329646452541980981652140776782189475461802396294198625418116652641554814446402124618231173787953634455584650395270144875147976839287013584226055275998533089719590957025729566908295712105725518601283554816051539811939714800372166703542848327644797751607241343912292907685345280328670398095693357074257167100698561843149511902509045409532512903388926548983538527537622740834279141155203220357006259754286981848299319539595406326662998068951429906446125033426823296519034146068543033398611960246469102581536670862043193225296216496189735464792645814081840260665294145405918412915350908060777868913269974669273602214359417047973072407692863116571280795884744846278374507182050903481293154430826169853388669437118575553070722711114415607089636529418947268159336613486835119171394104172888468857705377785111909815897341937781049152672382011426177545672320747363176308087261064529217965675049340505616167560373900716814455747508395963127014578774293347733139709504792293541305595616687825149824338779786838612111508277405125084889802185648136523502079471100789426443121283163638588429458022557720470655972064323384332067147611074290850010343045421683012836499114206329640887631782445122097916248194739001214118682925089048452098913437903295750563536875987945530930269765051648112760570361688680370963339889770257605155549811460747401524711952114627459035628911353531397856360071597964535680511615115822674201224293875400941718805201746862497901443391779884432857439572652981391432975728325569324124147236070738040897551350948556905076147343770685331391486977188736717774759535232446617050486992704991721167905257994089386105965158428021457053831342797410894502066180470551699435780272479727880868451968082084930633606969625777924166733380579114878548824175234006029913194494788316913187055531280488366563164192556465130122789082948799464121974219038884621417428322587471761051023767627155698435420679156869334920275991391810578866400424224186342236006751866415590691298632664439559093798119926103255753301579716172720784903084489724324431217341287312767709942885903343460290922407043526832293627222143048480315210757692074937753318192081936731600391627144310135640501184314341384438764778231954503868063777431906219296044399004193560646138835393481442445668663976174223381967858425937570807214048279900695720161625103519503236789364018326516739160769257591626311114318784393034466008423338291012738277537677088518877050890389564350205518496794513718984619299140382348987381215637515652744327225866761266129939734537006848078775873510637885195430317397124630026136408196557671482416440566604731509485976256921675928306565862419292533870741088173510744310079785761753830130939497011830398719212103016290276538386121997045217922328340838481451921006821880843101511021265760593146481959655946116448637518071517481157952440988995425794172559333309824375857326889000255200728704540361604910329970338495828845500530830354949320710034207955849461108875251322829506590630811925442995663670313288677290093550042866327362019996065944936161718472800971110315627241271401522508274527533360955369065274298040390767840044050974740342508015492965976700028688227407105256650868262329870644392965461897652258505181894292463507187035760020279303401069637715861315180246080827746867359448386633977703651324446546354978494703127507050078235002811699784504968305502935267649584235863271567383344114960044728067516341252259711053810416419272374427551949307526815772681219760299975630181396939184663583041018415662343963888052860467839426908713694648657608887689544569128346883865068703586035507325767412336020360037453112876146537019274865347232592461940405361524267473971348447150675270910336921037108692671318680376077805760187111384531806952559058446199780132960787521148666107489420720895057104451450611722699073323172987016316133902703686238977609447218568114857917902268624039362630707245240637314983136292719244516164880056838659540712714686595718311897579566691880450885977415644080783497671261956495936269276430239066376426430143809915760604931036412778759664824614550329696802454472197282469329982577027808668379350276648060461537766756420678172181901719031197246540036323611143935936541611240778579449166307993273101828775745845592428774506869608775873802228928884197109176110629377424238168077340984454944737047782907843322671231728981795554762069962612670240121348918221386957677772117554352383867337400352987416200433520786836484169134270713788950430180068111206908743827400131327525982238561014709159400402305390278538650402072681681537852342963117718447062571106346580108749447621397296566637865917855206201456503398671544608898488868192649076682810526583231027690452582092512225116399218876282500140443478341347232971988831367689778991217236414824614397092606160329700751769567356803290879302524181585682950957342660033253576420764942983507044434018862810113092504220879604291370506037510621209606326933509248032960425438717898910924174899849993382555921567760432507394474386267875552181927405601629363402435096911067812125543959877500116017452541587767631205561447171287417223413401275519748405160637163029420086461402400684750256538025666402492810356156857453480830766320212687681957474699079862666981029298346999752904682353803436904162759283986486136519341030016882885266580956538945875936693753213312543438045333337432840834617415635705507563256472979969845309142832020110312084864210842003651954286046554178902298709843888997104911927525011979449242885704919054001772674996342183039449223652826472919083558838380915570480005889635675731078058415204207735051521526328866014874987236913715025820102780481054749835029597808895036344640910954882886906436388535693862835830472948090341963294742658019230333669126347283140346583306897760703436263098072456615798198761797266750762806900197832534496930489206322474380094417043151262600347578725493510304327479587547030584366236958527901935834314050965402453154600122187027887405347675422526031091701293613814912689008460101698248329591012027823207172441505620116258190885071840439434181500080716544637253480870452307909089580405985291484290403268300305835247768747504380050496357209204011730966384952513103101329830174098566237077522745857199583601150712078786391496869169087360043306930127927680450366162316708172402695568987117644498333170618181509677456458157846821785645552296653851608515919136621368824564240660705401304732992756003174667106259325018069859025895741863418239205344108069499678891514459774967671882484300232293144240832802291225989508731269151710779398228878049021949972761655664862305918682218967741464819327069113041780431827375414504484362789414301633562192380816061369195188145840596234303416291645486927704564639486441494533898161203406611706425210273462521978005917000733620726970173655136644139881927761110150212328028921368877659834131856547551850607469981854144833511007508198160522678111860735226112884022210651360422139143447411002944342424454943651458914407800008892742462648977466923635300181863976306298350113487331457118050287076609766456585644348193159721710541697960636469255784248278502578941289988159285073615758863881406295172976928062459889096700980877770889547518515763112427538807122388396102977662238859522749112469172392245277039113538774620753854047608334178314345000994303672598610303650741235265872028881163944029842207219141055960375888701686981558529293667983004329133322224133951173425130316907823666227598249798073437631071335170291526346660359577416293284318037645230029366906084022669571638809999518593559919302151188636319624199385456135209686905172665845660359193690831405469295857384096768024820105753822101546617150444760722243888941522910779631129535679173147090219620820097953201047456871916362564649177386700947836021418318738180853050343406720174448762379277427988520249192115134694942045872930327638341901354468104730152608849109212314889362218624398812367453724124574299926988280523048054082161786850221047831397604521656041725619110231386011386253360891309070004510890119679277071711245634768912366272679827285396684553479638864806005903800753461208371797478470396179930428897168162622405916025726182034678474201695155074328351353397229300226026562825997046089731578356021080752140371601430844078553765107252297585452691956397026877575736037694225794112354713651537763075193976099297536067551376435850891919187352379619734253833858134248546846130210145752885403025952840480170195128348085697264370947230206817203835021532147994614708769409449819208723590455594737725319910495495105682476586095276041422011348214179121047391990749681789133706977582871814155533798918307119338292019790880232580080265518006242176887997053463539851585801588558503704090476458620802334912578310502190578988436060407753295923640668086385402897857604551137070742426073886539148871261857061867479289931896602495790884372341747371098363692748843114355596864387422312233795836436039992075727159890926447826654143187664223863879734669859528289329599342812402274730428698956442159844686796638487681569907533093260763227356808550738312091103401611127447364550663348443205068687948426679441127277545074958934980746737922842211616056598809331037591327570665045340657602632546565755040499501445813661237821831754426542625013961911846980618107852393739566269019032624885225418897280304959369821812435241348266272026968879203070990371995347678234755708748911681215137881852958848356248841829844816619035098972524848017568863442752904135175469453559265259636750271237110092504633878201191457765464860425198694079040945884696258271835266160818620213712811817344344363009895023191056966442642921728107929063812594600584002967393582853923155342557773647363695498085767787557421704124423890714438747791118866003315482349868449116839542179543239221732662518495827221681383991441812009075741217176125611004540993705566390658165997897604180016119400551301252225587973589425483238349196835252271263715273546330571638699601306826364481592357960835688971566163614987952533725221463113049526121248313276015236706012138601861798347736240171407490152873547723253613401437621815949360408058630834585210291897364027048926635117623444351711701375904012384708938013556745904103432916883563127413746400274559288768987120086710803410751701666469920924663991817409705542327514413941526697519104924403946054283231558322972659866701239653541317280672542461423783339219320410653051615354123317960661528561621981184659555194840875691601121076252392010010654185768699406151764109068425812794498898303150158604419211197693736141626541963140291824132628968602578841956656322687941141200535349427977240503178427332392546695148953264687825364229691928346480268382253875522103692416386138888108729468609322295378394784866616556211152761793558440439177710193741268733455031515693375896907947896407578476068679847816230376849913748142871402196690017074452737079015790039393600851699820414575287641522974807675291523082623112760156258508465686560462162291561242297144862768051842167190302548669729159935203736559986719227773290111259735782515930159823601854955319314498663338785517770381921243096892093287875320963353353251755222243216758840828069870252621295297380402800653103196501829124079611663846451413314641192423658083116225029395611402084587522599397774353508001585349353878357118153282972684509047748491792259747292374046026280476638434892549675440087099937661628665816458880280411464131398585071116039265844325655932494639891538527441537263200604534010012706698449592413299611919612040716989816587118227492464946132872747428816053510743126337548867752655402239981660384979260780317387426175292581778700592788704374408494564808383933059237263574010963503571826227390230903446200335040011489100861520573051834605259912828088359165287183664782044017800824394994245708110558217183701849561971885751084170991865873660446474873992442218641393729019726689037813666845878253567509853098046777613673581681566797896986643805566959159738331152569554541934595706938252077672487896577755958013615166144321803792524650151556316884891753144950611098027637290871037721880985353033939147757788010458149316320941698216196039514436855867848141991014624477353322918514081804112381851067129027628168603293323423843765643225842887391913289185467639639471873012158375703024704248208005303346976329053311929637862843259524491873052516645521827306619343874526319012607321274694702506690285680251336437679545761113916663868224412164868676614671419504207705581321983346271092679581622041290605100543021237205093281134849161488217924683699766537666772900607686632644022464305522445603295191094301167466229642696467310763863613754142291863847282240740350907639046841314191443123231079869437538909313899210284261019099457918673171585441414403518664006014281583658659912026491264038897232891128547127882460586816045666976750310376659207746189156093912048524021213553919875117929525924050682467211653752992887938970302819171531526311854042762812990399523462240814122318250813685464173639248555992551376517794957215593132565893642634212424969730490090434132682649592439378634952566794649536670078585082833321401839711604034033440632079765505064290688066928504788191223798278243860561322626432058053650655654121709960792525436504457464261899237114550919597550214699125188125350509984666725786591469839571920953020413294685034041546453020372163090461835785631276350721035622529673684164581640514402485096785915899210322486059765376617335027701911622896626032278404691858769016870535593128403385204519210531116759881802938290804443520416981281059737982361961226913502207907476886360235779185414877567050811506505746836962600803235799244975219437355563024425361724692560149423330187407621413770221864123654085765282562137200477109406795838722106104478598825441140559616889511525396562709368759401196416443392321098639588258839113894565181566578923723996383990057854269959868794381708374107771503013137494036790883373337734492393936777261490634340530982734413217509633713194272188923681375598622062823480617036089637698825531627960935681944103685019997089014673341981398725087890801283382360342002081622323156300581601096312357031558669335460713121995896262189435371339914533972533034827053078394527222446864537107750355963858036905153603943474962689612857785696790612643350828697297959185364454268158975944240698201132157037284189855525178166891509956526662237035074056321579951079696222088807496113852156024328866364338951422862195330425363581981369219586964183324871044732064224581557123671128438269200130442744009551153359125021437159502662482085594890684366764301200174645054267031198824500587123495432781387027611135073646191173115973596422627895104475782291799462909585154091065523839419849847465024336979547892148656015809911845132893169103484182873947742639956662179586541476843375005511761389401494407894034997282085876726906617475032127773317479076866309869965772780272668277156296806954112763945495466934969501394815108288965487091989539972040985071009103465757012650640620560988981388058272794946097298394875760329465619659273640085703767733140163301026278533586997757063354528503056631753989851417753886357325095949076428479940605022829996108732780390745328526127476104967114383335479735931354336018455226754179341507177414592819325567040340661616580053706635821381597200179298657599481841820063808994977045936812091284257718506058078717601394093190625311672016155781103661255708215619497965349522918829745265426707867678494114891257290743446474617894491957706891239962185951376788289171144679494719410173134166122110251016155768886964992835355252700221498206251808402054022636846197080392332849760407739967039491764412355338620948125313932372478998340793483090706901342635928461951719924290526602328006955070571565527513888377863740697496717254487767440704385257250722435745818498810626337435294332410852245204341629886350048554197542518823314082293212718632055757578090119663281659491184285447714925105877752453455082297087674107694527017654237048329157551609062271917635321677587400939295158993449984869417567944401013526156978977349518166528061130107819111226585158322810618153788394527710608637171370778010113227604746260405096728994931834449166439655484494932347877856475794413326670123335967707168960999289624116708061807869168305465113194139372910819714488939569074321675046183568981038158498761226657464914135392304771455884608536435781925999354788889985513095161790960060145689933791817535126387728433881632182444720099971401184077381192349739008354890637221597416465403355798111959124967199385528294799318912016835947001339659462350541698389078265838201390407959317760413181519702523512522735266031008586196286020106543957287091271674618256509763131330656054754457303868737758904200093131511148462613881606903430600762442274828370040314607406621757526341107571947319613665261145565818765877560485222599277028136468702923108622432132950463186461747039141150790756601242027454656293000976725237595239584406118089146040425901757784196747186574962694303243891687348881935250656014403616820144822851238458142456355223343563034659755252968770160176006496277142386159425072761091509754576493170541574726203442109025278036817496780587868429237761297567429418023594545397784287209126404730174685647206649563491058144427854703837383198911515577896031625983069420876939534913939961832683165839103945785144026999509227915293667579748867076995556644040515067451218430918648224625386780644125255805007827321467624033838688239963059587867774641738836414021342946211584101836619640280944790487734485109423970860539059677552072761646287614215181842420190667981738916966173298562430723202796067231321543272938788373317950593314854122342493179351853544843608252046838043191113894158206011553398544390171499849251557859551433859152594730919556409654160903045029847391751516262747643237282938608400088363585894975198000233236267014119067412687049179787326837536869735526657170569540812212243535845489566430586209301268518811735282643079705015869405588945044755270203953579122137373529625209079780937005131052443033775284068132012521686024655004745867205411353156608282901549787084705883779681378473408271891419857682279858417474243985210201335536027456167891996856922408085048182105227054849990300062786471331097824766607714746590299449307303395624828047270117121230008525672649373197185076783434644519473794511724855960467381424540883992760055644574193709371932173584884874748057211208398428671350391519786987656381427832796023856456419111914567165007163501570507419645203061392568665712843045111681538637954948314434480049049030781266205921740559798464780950042479656422732633926152804905737272878796189861035529372347956405643540187658279249554083793232395919290650232649124500682847215066635778703568058577176305569927328465474803860232613178535528053018582518053161913129048314271703646558429482153790257847002348214147811543399233369153421472550158221543607623694990012230528421175493087255595049991007997119988645826783680126825339015183343367170971298589505758488215780268197034029028169693976323326029021998665208454048800486758497035082989648074843382953507993741155367968136856605836724294731100050111287193785245258217851877606936932363774918822422015634724217569258185860766461696259124102637334270288746129846987980445165717504426947671639356394142270035759110540408906293691224637509628671789829428656447392173912700497803587260973261714782297236533671226503473648689808453753742883671945882773930838153817731785660279549241411388131519636738834304735731350837453100491808695305790565754304181077377495572815829866395790012432647450356710365791926716200630511884570973948131685233432990626224119919380734149135674554517520163822892712045637710220099823701489913881797383522956892564179668594780623524743122591025279506386370090576515527264698108091592091271586019341507559448927487062029740491453128425394099966746061692601689234824896256885076397072429325823376536126567879606752053874498949595493061432818444400387870892126974731279705142133925882654768057519966821607995705739304001809642580267419315395424224022684395984020803275210827836342013534168753021544759060325196691302157492325130206922055628310010123120941642527570111306383294282626238241671172611557020129591499583125654539348345006991259170870711648555011564358731911475142732266207188516059052152870803436968577537407420299841305787283823926803174330502646320847196674428924507774704046962981103097285665092474783964847242854529933721274454593520895578232849629811285105336009050341512651112080565147247641049834041422078951957484512805477026393749935692007388895525620432344122063026769991458041668367253927016936405871401876614404949317495218528498233385986682089577339229186652554012469283447598292591026872520324693516914274112288147797759411886647665749778804808138257951747459532210793365648007326054556546307596178804902428282835466013471660551363999601031112043034653023870533713895329431683364918775159878713659146702682163561362852901097569036434726703619345514085904797448303608056150779247603768221862083834083109044113304344753332632233139048365015389065882803629227933288405983153027102991283625757864302170262583058872569443309314966393702147663187411941463424237563237376239670865653300550247434034355808600953808423697153574034368510987448114537683672155868043935195347917335626597617054016935892082756502747632856993583310052915346905390629841836627061732672103066912443938163079012208348873839694910171195271943044381797475584143054743271376977451000460706370689465186766660027738845693284966647569417248226120841291003515890410078446360664938452632260126208829323713513640176818061687227714292178923052425873713966007022997394722744841865260974224329519510308637370736816053544797942064552303144682271273588430288259139813333800718891468287793455793936358793814796272171245736331885284398477290040962192237884820915549155525539253544398281057832201345375513516838371929591912363490929755977833026920803488958660336640489298540785883294141297467128453053119745622586503237421262168304529796379344955774703958887124199237518388415692331047757008921881718186164954391836686987086661251915785853554531770201915044945100385121314146847028418761894804302274757746299506975913152868063732435890982431835171062256622035611278330972631802369578646057439772837017141883890413690723698939888814160874677587892575198201253062236002323907639272368399023761432057037663672669285123721459004662657591901568205552194743546798351463199441832232531075510640992668127980574602161667684276116803433433300655542420912425844139844498709923719581980334417428047037581876180693992898951763840110986102969258873366620199657629713511178972848778595198016081902476728722520368696156373018258241705245391722005390210358212283153386570776543108792272670557982388751809077870486929731489627461340007817369532223948445604437092630945702793419044063493843225316679413340261957542651648608819801601774984647033389212064603064004239604586259207542991960358514194106511801166985320173024180264279210338151555183483245301636267249895877543839679387862058579823701183703105868469614941891493948408225473838690812311487034021562932243579194361291838299539840174822364908934220434449908940708982260100335969373382297968881520176739649564814905225408560908735332761532634943997031976112086629939047397784269308254375106600286185943170647502404598189479443406652704666474391594791795404238800275350528391861071562493289049730521424429951575431553483592478066510942566355751407954558474432711510760245057164289021623813185844366127906061127280915515654276045070378483816939746580027381871348525395622589616516704210571680828019163394625671800514479372969215623920877783500549489938624955743542225336968222692263255889891028347560051887878928444151482471595595584741345114904699174118299488485599159774860685859082331257208934948182223252778808936631184179298748374183966101646634402407838809312856126373980283694478856586565853026992804122732898152199942156290778157855414267985417212421364278281653132099975269691258996923493256377357148370091098583759611705645504968554478420878124317966609834354510547896673765802986345555546612666192125867500880372315030189687233507066307050697809414075338030679589467152785409123362217986025800246327854516069852766917542758711455678197065094431654040663134291904309379718463825347516982933108928346416144445669982864049930817204081085949514749612876090070851238973652454159904672490710396747003677384531438287215362961912154375784124815365562985371376418381204950754691715422637101198172422259420106261270408849087250973970320346726340957956383288766313062878415242518240459957212882791103305850358113669733560039623144491579223606569404157614436844726393216820564235242351897463554339057404127921619296585488438222134430446333745189215303817444227116834868982498481962735913336386911992788389241581713497047712817873238031680580118215924451527416657532973920953502030809268369291636450827809214099710980923533914146463573829440262068222917257166516253645207778152122797039770502338661089840081481933003448452675791433804853738357891801567096718684406767220977148121046290411944051643554564125677101471384165282440549316955375527911266961425119427876194186777839802683932168276866882197133895528620096208625570289772679643703840855625081085710043888845896808456530286725507508818834065493374641714902338644699627153797149831747037603237783981700235082331315305306258970737928467405080993920301724171341748294205911833170916409874850768468100944819910074048693459879325705011836341116949832083358471228724628639021322488368351329662821561300504294106230043478459135844599906649168296894323965947557719988597528465897278929698508081889281597857811610407374969205819954014179091889009956508153237899242158131240842600651261953826731568861648095049281115211039764750671495007773756014704695987989120284499694668105204270840366922368483942084727098723530081868199897277934606245477506064095012662702867354024160070899139062616870117541005357470781828607715296201081335168600919444604198006408954971453812588144010129324974845227022043878499639200312871172097015618991680237318214286311506181042001506940136596515598792357543729006496726679901357751402979397034763451857365564240071320791943076994821844335859736318850057954893566436587072574810071033018356436405663685492974884661182202105376026303806946811425760178072497349519815265883664786188469225697831867159916205761384379758359664427460254611636732142688529042496274382878693152253425698565673012363713078245532260905445021270192161580965283207740689022589432079048756291958768069684876377387928082659674635707292300890283109102483366022469308752808455337191426370556500851752245614718168525122961198204898216139571838343395533202584622916267354979492709751542024029659197357295463430615734318668245284379481537121390371359817873256368343483170526634485920029531771480736420427260974701230180572140147721070594380816163977174632430467427180534046495681073689905610945950474136612770753867973777525864694803630823875707593354291540719265731946782887051725690101857743796881646002063725967691191494604905637178476704648305482687989737561792819083629176562435074392002292276320340209292456681731407828581798537523428504097803982461276783421759022443130139135200680534476301432032502346086133493355696956986267814165114117276237520555362920940544304752881253558587460655164232959980371435874731973662569253340520960253700023133177569108293883286087671829502168246954678966208000347603267993785870690634747328774609481396286058474547575841491209451410932898557901893091112549468654600401113177628579877453378587556280594547836762030586265459161030572899660348984866761469171578859076678214113922774202114636343997515711315035903281012917714685619526191942093424181428781154285354010720155374317010496531123749579721335519506581610661346374917595302948306811726462007929919938078168309704376108914911977532416495508932934880734851117110396409384686991494694954867938275856027548749580329958978572472475231191517865517851234031771318629502768283218250964415444610411951703680927970308628419692232663260833650818536969109812566001654548257232307337350848655589365922948115247108944153202484163282566199841771334624911499438205563050555705769525100106687956874339480993972445836556057966328942654228284995337519140131448751078509673432975036508809388869189127046838318539085793876612879185402695153360089284659996468251149888710665470310330153142848782300247869702820269903181324904690385524297261447277471990929359013030435569490201290326948933281432752140019853763286134983151294967120817889449035245892619782289440714751133460621528650721048136380124163704801969369300216330375985011694289115046642370106771366933140040236214069675301911840434290494902463498038134784917901231402890206230817132042324973552361991996979434661090850198579009291584644293698227251273017985069346448793335627002926015169272361715070468542022756771923841082334359015522340384035452970839710797877422508933159713703531387220149809338311904685066283353936021865416784820543264323014923937236047316308857174872999098531971672271828377841340769186512174319213384601509806851107905301138423568252953887507143697811650613847649563733562013758871673401458071595677260068919601991127023237121581161250018928929866685795262820976251169128548208014504233030229800008196155970248213416084303521508992884947256304609681852251240899557105277451857682585765305989375435567801129606479713563218868373613680809531981636528194680129991316222122742846330511407339880425523130756588118287915799580560705560807689949724180685054728011513496362167048820782388710671827462549864252918242385822788685865093596793429409010042986098755894542373169156955862756223318589093859017572221907227235273397068413276548444977355718486609105762912159632080797286107202564073417856979153132974412448447280694510851418305044314887949588823292410171806387303649968236908140306023530416484719733939567451609863126225887563418119611072290629952380921896849787218475472120118083988693237403186277399656332649889621672036950464300905887102682616109013170776948581226636012595148801719294910274638275947182489261201140547370838936636711178056084025718705932201935969800843559879805397439779566188697487417205652370709757548211773990331418136100644831641440890558556724867970602187920224266404545645598519059861365115900187862090132801595782238405326315413549589028004357516044430133792840887255167452963965630878472378494593455397958953690035109344240325591256838224160289954485207102565308277590010531233328403146437449382794282297220791979557722727241793364063304159579604583755866817073998209519080169906628480179564266597617016339542922611878923495126191751888946480621546388540529885955373417902743230095107631432371587990802900042859039929089660997487320205044821016802438376216710690937154042846852678863850120449513652613166349113977851946702842105564306746270037200441932634258927935494099149323853627498929977826063577468777562724523117915232685824786063831109599948431444109884733901683041930404842503053306194050240161200145315172513808796729783287350199595431433540471701452288515878948095515084076528378623770525815018517944419502892762515011580726787391545168328697381920410238618373613442453331189090994182445345973339321140009596366343998289415816607820905791187088944035175391309079708973158316209064889800108766376275908511662047227497251919376481061022463399257206917082462862541377180471518826675333358128278874879806343952557023532022565143098596436013682433615364000167636559919415250351968855727801068004807855376540592946702627069983732321428908121557443104879072487746604915127886938012566405258484655136760817660699905788193956143913843028968190512086429088483132664750461541925728628012588335762292927110647517490782681975483331040521247757516551694834167536362514814829953696867355484548690750645173616530180875869844757859840846019204122398936891581629257508529365154144780035951063226956459806760197245237610439782155470443408027950495428164487001603360116034785332887861044226159880065094264598955525332981441992665201874272585236387775613362551995384086456469972195873046644155941214068725514654469891986908179083073708044690922144522773480905429844090017752605566399338861550202680642016921573483607331868521811338366363323511607115638430961726631295220735452670645544611876022306046081601617441902340449278227145951423051367960703539787379256029302786768773550231595605110384792053850551450243827045723436861387492023906989696302379413295037234823471898336697788132140631745878070006207688503503733043753815855692845075066161539609769649853523262220316934964812040336726301718140725528158127127210267817361392719554001245150992329489643169670442428141988977383353269474643618078083171070543652639813351326767245232257266859906629357217374857371668844254966530653449070252664190204255012775559290833076602475053576743916578058009315586089073005902361166663112100021993640798040538313539431095561163749350572453473474646478150576292018204735161939940885187850725044467967949406392728783607117864647750960221583175180950811152996659516058463877668809627398449534500890161406496079414775882498677853956108562390116576767743272871932877274454439461240116162994224125103825300552701845255344134326122969517308565184730762061369439585340055617577252003957672158975519352332879294074212677299925667366722423578777523253064495192827906648127441022759832982430428578139880716284381561724368200531686660917671396401615847618132054315193387249136799866172344024976972562792842980275025262239950001535679395243840605931739998417876437768455034124436101668748892026408038361588928134187684549967933808389804580891350415401176204283706421560563926531780878217533483235078643571407778544053099228006712455209499049179988975391205774384627895547051054578592727960592234434302327489961767158818625444461861540776709382546956175263187956371393397428492524693313883394092046094227687580805145256681499772770473185825072315424539059371017208693573250489509309062272591357931728867831341644856159128792090378232052659895772562702742432336629763438430636771622082580405876853439625497155316655379536163069252439427592418907139657890235206339748472278243452527328906687778803395865095254271968677553546682117710773870168477477575123284822889650281243402869239202814815263106327612962015808128381644020245915947586187947704885894760462503617243546785008906810427789218882267053115473913701202890604706180567256892668261151769900491253959128140360904096197059630584644209607795711433437478088241821625471727006606018019711897190645369657048034798528229449445667315418141510868636096133445624164581724958816391036780660672912872339736803699802193198169496402157268694247797072419426581904992223767981026776232369889325541880635153223508657452465115537569163201663862893164248690065748729225440815097301710616507881552361080614296438701370461152315582237792961384414192535671719180153945395376473786621499940107148548303377531285086821406679823914960947536743556708233331792993722451063471297338987193389286097363124413851355633357595401760152272760528478183911760542512701585905730774399623959305708193024625999449806790695073188629413527248535715259502355181378493022111674210764588448175151207602831903736732290763438227908312829582883935873259905229659616045606817965144491080210371326731698864819492004057752606605368257032104641425126726580762150281621003268528098349249366001163748274468250679637167945972832581265372677139342101505825004315392947771911198552788112776972202918184317847538662341901755444669669717705551953234923579779556373430921997464034984276137550719646712750198098880526166954221893661760423174916071027794474459952582424011172610757464285627711032292895101917891025279014189381781142819032024171231754977150189578198135285556055738080055835606467948821616579105494823456893365455358433396330018129177274534258582799467087822753639540746334084512486609181249122510719950232254740633975374118823545392250475703053022170445495766475478656302974681178305005729349416673655276352146803789510770877199008804496947088234739694182088994886835215984601503081657733106087955427638106371620875394785014948948110827563724131743186822437268647538465592670769567279911821742205791041497358984003758496605622018145393814809747337817133476302292014429222532650341871809808517503308907377069010442387327598184151244904784858098505375342099913127555264372354469451284687397123636951342476650690073815411770895362354481424926393667980866209417321678136510958321206225210091928677205105380706987921198731494009234551150921021495252271828955672850776285006606024377949618801162031478455477195913419310032564433725117394373729074664674494183646618847837566871056102766060384557096136735045474345903208131695622588162016020833166642728521141425000333225541242926004811255927174330110745393631924328379366228940628069466146000566495862217849266253186115417083507481384103443146480490324443173850786389021198239959352369578439852544581208061702862449013047356410032786103563827749702173568300079938387713066766872171990241246257478214191544567357523768159104694329464158690279838860202031077008477912320380243807554113772641033164197969679994427178634286964637861031108715350786106550693419571343066449498361421101036182175383734290162991947294019483337731697312792027481930315742807584751708807417988343716408709719217269996695201152366622361951595364475668278992330787294900217964402167044650935236358826950104827674922549446607147479878592415542030541178853734819891050698449912568681037661515807396290984349181161814531813654346761450526929619804121132065388452681684489258478141467094863115718636299156136210524117952124284790550241412355393138204345803528280913068245762501027088096272508834608303503724042141310346421902270913505420622734588586471401208727880886436486777609901332829605939172078294960193538689143925556040086671398360681763704891266427630330055940137224617812931946426197613036345887302499304444394126332659769892287497849386554356114198670997953589920546865408878513207938629672394454008173221222741780406454968867425687146933496506330086788799438639442647341545126587863302245111447914048630934328254450581990274305279394222926428468863997122872678422727207231929300041769289260213926055910438318546120593333308990589846371968452652128153676316001367822092953590685569093758890814194471812207478863469324980783799263748879328733494786912035398671671718734816513339478758178818924595366198190548586654676607856082997108528125364262079892728438322506451601988866197202883546008680150559473828849902597797471900660308325009408362823462749389372863996745873332788523550325011880944953470377033238798179902289942052842947722490325097981993223733685441355781475660127774328722690772805549309447857779827228913434373394857212044873108880863402282317011186208142492267369698025344286771845978263315447638802429970346317990605352421462543186406631285871867508202831922568152193173219201660198576379319085473157890000463866097146765787929163264359013604545980317894762770322089273219522674925854029991309228600390052684956902530547513286228908474562433712934031449196368095629428281651122335203576008778461832615150183911117740828007137829955403874070349195403118515942822303328354124951065698417672225691960346464581307840579818842975553311496510194318445291905542075383091759151258552030499109229345610076868966262214659685635242345915985649566268533874996723106215370437891847102293526930250996558396402265429273969490872329901704579727809471833053901712991411776816437818430465407464855059063975399955582293088578380894982160324855267416711091077275382253339610863987413673496911146843128694687891874691061810678185793840084690851799958954659481211266745462585913528041700174716215786010402287107079030381108074974810051465739518004962252047879899502349526901550295118004625136967692179835829617041633311722696130099930057810001233628027449103244923765357752258658864895162133899453615363515877855379064328570031162841514147589478811296399683441208243026088378950223894746509824499592241748840139147040478346712991580744638587812743604963600156723698263978510188381526688281859074600546912517690089885437641790580062602403683835252182755967737869067075472989752365259376052427799480878199351824216195024945297963463642671020883760261135168295955960077758026010492050596808671897891771623872932356365409550004087757348517252766053416689815077421362005979174768705076238456414977574763548533256662853726439493479319096096696296506350506160305388777176775862575831830855105614852778136307667449845582741466468999421408217500232266209537473519467446959222406337581090938884024293406517256064568155934843029689246412402943722435036020714225240555481922321259151363694208825826319301705470309433662503472771950411065366372664380404716180181219081338610681705492510758551060044275479881940886550440286110513207167805898168080129917706625383126633383014465679393175182263255827010341505259647711106624445106050446682385747547934818107193883534667520799807537603675321084315129111365732898288084442151730781797293493562012105420695664571225968443152525675335549806001094011918450869409593083726210140509803903814403780304368053304632199356291805775086366563651296497898518791074629407169836709066612570364018936648744894436448720846362071173627505343745349374335933005580310906692699963969108286521654091480428778304053400202959979536720709898657359927743640932495670945576290025150287935202724747284108676343666801480791221008333073004384006656690122753615846759570806961586187944364747754718270602144139376562750913063012162392833191690420466856577735265459566062509372289317662958923414897588743351901869961176118267223431229219462790634342592857624596022087400762980452962598631488053209446845996732584991848350025969155350808798788628519383909510474117412121440233038183424903235304818286318187837900134835685490558020805093671751195905382685415223039186763903840543432197164400356467873776951355392762260726368066003189223953485533015039143112820929058549425748928389692446935478811969919687157331911571416415261966437685719110039110518716863004544142630547790895047881760045141784550800316843388181836699094855369193210351543981790816545585704055090508280465014031140355091501872059213264687031260817299590677815203630507630209012984530331279041743115237914920662634711139097948450475181752222809295472130915207046143628987307295114749154215754010267155618758555999378950516216183584669799188145515844002778513181980077103376091738196261379266383120550164973595171066853116437838054650396551326150482594455101929982148659298061370442963166546911491677363333088714456453332506967121128566261205351402040523541239599509663564349056798777399798361108559611932772446315693790788543025935102772087851686628800838011486042730307784551860732751516492586606466478461870777768954288843298304215448494035081489292819597319856791265780176748376713251305059193299742881056159260480531900449809087413922995041356411853840498671166234154382532509366218314380165572765552975191599856045241408591037665080957688908209214099672118203635360607518883760473864503117349795962906813589332810522438665282024395292766475101965093101606242051236434180417452496325796531507694491665225277344663497874143917505898339805587659392501561777116229753699980911131738777498461699053847535146556500005759410654718310994756345036732406188712506869038021382921881497202595036974440093337810217258171170706574798530630036791959835022670183635013082372585519438849833514943689546123238849443584649411144203860195602470370205914055739084404805941607182322457918924137165186890552051474491933230561628677438020681140371484015559244491929031916065427462138846613599734865911080531340482015217129546369448002455731806055236120805237693637663267762867644861591722188694579857680828724555866845580722314389038375766683010230402109836559924961843962293711424188935958356310550869663932580796463187789529675033316369087165762007269957935255272122259237530598689144076581101146121020855153618709841998059452138326218223589734717924152129086726624694495466969568907230013322860971080565133842521107946298311455437083578903589624634133895125826316796740129069459029128252966802509449315554168750077085984422236574758403135861946968177023892614868151354280237480755267091869151599669561940095935085388057011173048795500104778670189632454513302440021679450496069853611911481319482798780073188401595763256756668782977345452629557800810442901606029053310527555534037026787662993526483189768125243659713437976423568805951258804251392200246848457861061760353941470143659968670551198627746089587706185501532411348180033076989613833441444740920370864918515926545679420664058768032788707280166069199878662134638217186206119203023979713981914557203109480247581357727942474057798120289089782504062212545834030497914400548142550350695855124032981571319527911309980719800372437099094934514038129679084619306220477841822927104895309093354948707652826675863091823905349463342612961155996604784096170716763329309910449134900081187233886699248486628074384579211800197113309638134670628638172545079596996538438477323798988195752343472120272521305079104606792435907403108682745106936400785574873430528958673138446096792785445585333009982822873307100143441318390130321146067988613364223587501724653879096567789587537246307421856321790662735256324474416248843946658301728252905827306951082577267543694739483769258490392722816554804069288951980393277412420223711275134567430448948316103205455594126668433906941981538062162774737108417020353284004983016583972405372455319772071009851690188239038707578710224467069034147309266748036256175769822310816032477239076818989983937818283520909495740837032075498819699057281647160782234741355570139228125646620502818911707862270655280616144166138896050465747970395836879402188307180177713698576075111705815554946193686029465085459089773056802064536102068770977107644021920132957775849439668352669276369701389157192179005954486347221394834092534982645663872908647921842151532170088450491449851214255780569558747023661051319804091534914470548160883853813598636509716468897684173388470526782360202035061640514389929554334108054735152570769500117769378766174486628215438049600210544099193944260908476080275868435457427968977474141988094680124394456501958801148007208238544846576699506137875287673871888375810331416626443834027245230187202150032709014237879258970366697243531455597368522113336618909651948236035722086222973268026583493824039284515214597457356051903862982981370722822951268390836060291778542063546396261893930042168230659356859484596566947958173197120080775608927921718739131704700734718516297368934358411948580098715109715992790532415803778229984709823187800116516947019758887163692001988481050931604157234929706384668081771854981799884789944928644265636113887875535543150041764711286839292406512866416214834578926565086066241434167571209002225642574846731644227352596027787080791767896179808871734637100779963957849659178312856005460390459968145456860356264288585758586939322300625863437639346052316817572960876405627110431525942667003727643522943006960318254712935242541624852795515432816714276661604817133663775175663314529272085954268284943011512823763767308833311045536616637894068410392278653230342824594370182318569679820204004459868358401979789213224815430745806137743176021821601358318532750276704566846423848001812120133305568640136800795609869723916419683124796202607946521787835430124895427035763401206938671287994753281706750608270656720528789506668796164035693788241207053544590541678139528599857062017302855355541911915928213121970736053636041864171572020056878287913329335572910207323895239024417201252879122314199731623535009136464448780461412853824508841539001357411044438171794664801155595309558986203528227023529791395902880929081179236923366902177906887623521895898727249739735164238223596700579764124533219072839665671103429711637568337959166512722442376608317869537392070946804693185759838128146488048144594925598185417052802043110718649762680588261707092817277118788713400201233277422345843337887249295432559366518242809387938151881118887010444896052504824352659268070138890693382034710929738390003277678847931065026010998743312912603678512471122338741202803243575600947729295534837077337201154590805169024142742746178672503287240551644961893044431679384229345381633928501127598668837893243217566750691841168912545906044972917769712028380765127336769261283194645735690024079104482074392126007613057140672001381408320611602347144700464181442054248160791104511613588563335330590600066528873863548387702653564801693193537574598055622749814937983509463235295714351595604605187206248476477204287332176890484495562766003890983989045566253496310111813934085302105162740996644647255973030353858917760645044072027229901015250431016713803434311491851900393536249097007188877424966791298566753374777019974080771700425428655751336185163935357067898504704259246984174365984897700756102838419218514999602765684775427998701499637729063804200543327425762817398472594446352599455120673318317411744262704979357906248614340350958285098286725317489183475697804025262933903103609995546993769100518051987950149393662309018354218185718370904169235946680981868310380173064269423626763355603701051889885659905631980636151472365592548326555528934951966328580333033745713002568312325690479626582343994446838285823249344768741976415980434158571622803956611814288803019959278768271609074189989859006622913235600090748686868438328199299055890920974436932914633624154414462056275008749017437564525285912255551647321794172382946332652463404385479377017640716067946229821643381225787248970387797205151915373555350851238941464110730121763148241507637366615463058315340502013922165616986835251332397232821549868775620364468465762568235701033559347598396046913898610921714715009019636731582894641406598622287897358147240626670687352813274831068790750196754632814226625977785010209800074549946168850696078135338968808253424099071621077735498159837165251476879128935319303521930408839267265879972737661216473914586794866554096854979149444043592847737858180938298361043346632348847445231522777216149978190597397595270203748475970755547917915480982393909876588961592212123449052450603589103107603292214933260635277053176531296653522969404501854133226476116749492923114764687191488213359244564671947043196799606747981140871521153701788328715841480111511230895227005743269297474689398947874992785395541377283388217663717172306753071136132149409443292553702729281965562375678955258550786633168368835925475933954496748849546927272536205656949918476903964681411471547406947014503777621309718559164961822285394481243880792721570050579036363929838449853171146443535550122934595818442220438674036541755838544484312267058737018893193659805488384167590166757944413718704628106865429787881522770242147738011609164165098419793681352443579491221409461706658728952279121095170407258352994510088392071751091609976093342463795330912671547388057542421202740096290111872741824895076996534668797809940870953476712805481496965479039838087552795079969917979302025958600101843134248632100223026474276792363868926193178061329148958686898382034969599280699255962414239697445847659354921765919867584946270558106859041651284329034751410986837487274084170943254368414420476289522502315280620003057921909700393323772073477008817351591814641883543743873073504287150724181111177368433079589823258113342654571481149597137608744320202734524951252006581399547554676088166520872088240232840970554560978833066614300055789355315518548054850970384379037140056786401024943187735353892974639547750242780439236178206815408072852452582922921062702317223141348586498449389823794611619173343662354417877850674646348353716144520035400512511826262821653281765695793998418341678559508256560359288095823864440782493504331846132121921601079455264313076948026538131308692495075304239328015325941656669017268560256433801164831860140666593225197767770504611939071084167994617217869756448946819183422913120095306677150021878562927071834852874885321570471928365438292095412275482891622844248879164039351554200923214441361674405145286169458472225544245750875856040513158575652073197640135879907960445165505182933990287915631035722211169009538018559893826391519415441061817979338918831549197661012887663615822341536038811513414614498555286838421550455087139987953906302618966162459244253611751258566191710326262345635168107003754242282530841234011398460218269537669367235265220679807291227367345611416235818192272753007469702412055402972844975538058420578653873125662840851937321387338334578435825215786325494631264149869714225066872035235198882848334251195140717587046039793849036592898785301125015566247979051790856296197842300632577883199352869956885562492189759462374292103023211361056782879162557184315019045992010668879946122302575665798320839426429353845041216255925425047787064664463857256291220766809664816032581704814873695014571947308599194698905969138062076022811536814094979648806520207188972431937482756899367463157499855211307001718342628201773980509597489869696525458955028918543133518666103733456511602340103608634875680679559566861798083966009944466934347173930191446287508071765236191951569625058771965656216661648399535418408606235310995319093538140652478945744251927001297015346307371682784742510808258282620723948154795355554897224245309096675456925928140415030445242659321244082526178476242367747656308303211760612130915595697847129796908781341736875806733416107036628224085522830559065348438126507113075430785814767086340109158345899415374660119271934263839226709105780176338579158905833017830597595465947651095494544994649228757120339125361616134646600236333257597244964591308945871119321480972898364484488298101561600400064186430878334080470316406758892372432144974672101605773063182046345019649944314675596496392216825783016277112075362230768178407256882102565172581607486254698375884619967478330460319276246030786510390824586247504775953582673865671492660416053276460773572556766133490706574965782118873233620686786401981720408784556760548919445510794990776322109716448441420113597465433758924034312402213165244072577868714527731758971035888376894015515551944238033801505306990258245110811843859477453976215371344817389488783733823391549985192361918045594599921651840067421774396435812036547042784320100150075047405342356915391086951844481690582950820169798748768250081348888756235857097028879188468690570752231335671416783018632721397045113160311882532025367904661447107819814724053604509239036712102569976465064637842723540246301266755869589267901918216388026579012335584468649586087261716011506713244273233987990167837327182326163466560051279400368999962110853273322609799879504268527712302401395782404592386347576655239770956052978985692385578386810141303232558953379910590390253153410612051439759243840158957996694387736139634268716181499514321256733477322804776741238646998113733544208349065700992083164675973054641412254480326707402621359675397638339201551942942389986007916052145958296258675714939614001518292575542528411211107621232173081635951439558068466031464820327133643959478953860911750386740838586981840438651502923403355520508537404923685706382134284932418828893850298915575336977802598516322703734935504027531940188168292516813605179693107778640059093849836533444563827028352241848302141053192668270385276189740756749649303670331445415582509220615202239549870379026718661962344231099285867665258174168009557416765585297947437421164607873544103363363320198157913297093243969459978154969453959450137265453077863567551992143903338660054063492438619806862057154331472543586470735353849360291981594431228952984771581052785769354337133012985391219186847141791456750561582729964054407734340610692951433151923847317170192599523345330925081078924073104913271798330509626370152626746572505472193325100351215802553421103763611713145596908233959791966208231909291500267080195438206245536633607792083820634763227237268378522853914314929416067958957394645914107322824607160826211137191315948513833510122406711874898333364610971610261709481212378470003872046423594915235818304172831642246425481817440477040894292301527445449403259939969056360910595583993818777436559157334197403997143230976864258751839573214531738144473826936756906048078091537598945154366950520055708094132292803532221072960889957028417732646296040068119362197290260794470257862245761233024588333071562599494870841381298501245513067308215817890060499679868998749372287855218986363175944236829474450660552535972009570121716691545762808144112035789081885407353026016844797752891621594509987151488671491003307156344547557347843701633940911905305361300490551906375679892684467633194225430296124442829279342526246109285494286718763438400116804861711174956885580332674166424777705712166744145597700069290009066975842271686147349892984250992023402983746277004780017097612313353432058712240523557263149134584902040277549837007378890349680421944395561633673636930397071659467401409841398264722639209304687634586914744578765355407243756157829203760951347375757739487175065960574325760561339986510945041486237102828011987309228474841652714841443576649663358012141997100568685201300593421737835734647310139723117994808147904831099966565227574208735205530283232590646674034527982721428930302484205514374834830498082059612806195318569958657664351278233127074806602510114396021444305547766248778868236962841307553126429982600905024899628298227486189493701563583939252219526283860105254165120866526617118400792599552194049396599298267274540372410004358997886438104423133689033410402818043624853896218149860459470756492836838287332739897226254656095501088799193245315205234281271543402186075443947789007045316853110114172678863879420590159014786200471036605555379025377993362488531687966145774742330455765636235182618698068579243687779250613975110674504725722962679792648098334244794433763235781411942548257505808211789904647792505861269680146925023019501944953171579589316272507887085947431519113274014524559817444836472468371121837082169197562389101081194411566279282511289610790007912438759777031823571835162651694700816516702295035129060300959308121786258906540051538938137047319060528177987422489504202809946854406367370710654281212012126805845379709807577207924412810022387730387028035299052468854839253958424711766704867686727304727713266289550599698979690290739226662574966978335187268220147346608672056550366880402701202579064222498410994885580641490630334361154200247011718158882350625082551418669720635204446164351256899621880786307355434671745896602909546559937066863992801086917194561615843028497209415901072324893842224357517599928319395397262539647627024306801497116100636110682790876206204976086422945093605669306138717780607975093485503971293088229005257512593217596841389374708508312312175773264542587459845127744936535205151235197171192537524838690106346550376179564090515699193279587209761308261600250180429753023412044431589215913423971532968684164378143047531720683293084117047612635020148606895538962378384017810091045657531321360731179535144544271685344470049719626977231568871967159529793967913088763693664956690494337344978263527025628892661638610671294352342552931463604135149582585734791497656392531109769224566379244183578361182306305937666388589461673022830560635232714391080087670042442490969833696213715808085553501268603537268528688119718926578256568064760196984918660085168459129105482818566698709863085332649248449403297923886996152305696759387979284013820311049510278155349968333324790369315589484839262921582624425790689082016371952872315405724847400674200770136378687842425158548916550524283787592186929707159148526811767843932123159956846125043387503786699563646684772264385424552915894549841751974876731387978930975884995191209568082203039483013403327509902517137455090884687258061482812439900990468513759585169638668301467655683045359898344304706265103300969982884745263022360218905851328574423360939347579782924102957196640094047509266073645220900736892633532667894899963688741517164587711435852699469109833609307403403605667549531388763836435119567636141719202792406428382592322924363347689622068515401492569284094791654791139006070918608955337278740219928784221281746192865348282862551109826792183732587683259969076632097445761399171123125843852496138021153193870173010086384444202972687102186602221358966084554487609596748228169865225467630929608763822585917394868666485137114384679780041865449428712936121377375946147830240739475312661166484843062817720097284638988165811031121150732326057090881569064629319601838362720639347670865579829245307870868592020158651400369292214649487433347270190279668824527847940254121163758059426262263801895426805083264305746198698546840029738111163655341975603715623175615317408830509076954399198745917024318466245525857105277789320192387426453580344073625314316789137566348671216364647612524054984022129056561737547058921472415154568781030793825790393965360345580107553701529098550335828897897037113360775700997216470947043628666806639073928323111721679199905786869266982554793729063921149482669617001433899453489243107119432465877354190075768070882612878450388902148066590920547582662232763786086408855002589041621605564592607552065398205326244558880227477699561830864021821883202391634488503793590790308742804366303145588369341036038217420775950970392338678471617994711268446099162391398443413525421531457656831999759471996011056832989634179947610690568698334833704039677090046154700758610724102323607411766501671999429294250905379444488779588042822533058267617600592399977783318584983847617741974205637198759526340427667652930608442700304681300190070812258769783654291443203585083224493151167043022552071860896761342309397882258910569715086498725179317719967511781184615058276957608452828018387993139837099729908607212023467711698289691203402745776497754690975315640251377439354756081346845289866827247585551880564161037041476432491678335845847049866263119274477079161106921296639945237638802359658754782661526778516936571771825881178285013188112581402912556844725057630515618468427172870701198667201996322571521745805346192392204971456208204001559253188521429377725832496530897354972866586009608086960006087622618185593520168337859376774510038535447711512135477468534264071253259200823282475402411588796668918606145495622832593253346572673649550467460787384576029916474548594337686088035555765025214602074861576252682667463008384212975635685208780050079625532807926500206869155265220031113443245872091665090611245555762414064849900900857699188846618175043576312460285168981154683866056601068788258662434290209752535034006111107891925502721871628328664053015755462804469868628124526066773146995356653448262684959202061374824920924652779643509880121501738943848578305052404591844753375342229519785281064331416536736326636980103731098098179384713605686342698956427871099486738727651203706720479100826088977597357441884829212163838890869855275250482763813775715503722043225147157869275582228476741916244300025438836253622246536896324243651556122131606474117138095979805262206199246983962200910663695412583736150331978900188763966118842265946730310031986389883979153591124124312820253793503551507994555973424707799203057361664390823678404934995754220061366116974247965581972928281004274570881814104196732179476499933098464837285967935137642283069299779600691955394760583278216833980522067757630990170332836599293218170771374113314666073414135877229832858888655973035921725606009257553637098090934609739145988182741796060204639914206148325233716202917875343354897305867567487652011990397218718956601943356400389614301604533660378137302187570814577138826656751097181312206914115860975191436921212912010609319760060298231708134905100399907551684039146926964073238938249814449454803432884770961360377150725506456141868478166834697584127436510099622449442896936079226887772195593337140773310990303848303988073629698666585567373481080745948106840119487770555184180602504689827134055650039960958898068063365274646600676560280485747801387383999724387608032190055468362476263437467117020536986393144643566436416360717060639579103276420435687568516509844318669719824623328997816146349331056572711285976762870610495361535544161356829690902831666045483147465569065499985006597160450606539508871518335816955184718932150452572762063394050341555032249484734036304987730611580074283116233714508015001839329243951297665374775468334750226646110644218413253000692954752508105351842319568094140327467322987928095568976160890164210155207813167470931844308693482021331225373744115590705855918994432791253203546212393531305754893542234860337659913131152030448643774528707802201584721007197474458980800425704605529708158362412682538504571886450351032008128562933312531936768812480095504175263640734272251964753395753705778645725442393536367384738730408259643986337223911979675192091660221039111821261980800228240450957232322304249559818598608975432455767261798340567106272249059890864999475803887364037048750684349324121024312325318004956565576086142651829669653765028811396778280336133652261093178383448376378368885832705166425928433627109719857819701713634244721427136725029644981467457417422187119988977875645849068118742583313184020470534804956920233290859590225662048238434716193220353610913942048710125914474996044849475585923148965531084547277233173299598309993903462135692714190957196916569869841344640959948047887785004711194364686281158283945731745037648896741953047036052736019704133312118082443625454666499844924944412603097355160808597682336791369821827122859502580006134141102930197852122136714200886959675626234873625101821640847685702820064765887898359818427483366238918723894618200606810282216946306848981847934374467911893372405721783715568483966570568082629323617533537732957760458539610239754085648642667261945989437498855909107823329668173939930866050455515928316597691246072536467169978090105068270185569187408758513054994735273372530673169661935987647880556796644289897078932682174694647761792405680880822032725763522774814163523528673574734091560510273136790573502253146944274600796842804357595596636179001893079222212842403347398411666389027992090923329722930135942809817176994265119122915210541630314082255876313787545845940906205692854316016567988154313744925148451968201424551156744051763104980969370227416487896254143386128511779034113011284166121528049659714225674071841867251711925546576535291591905227908934264218468396113031333293558293793792629978812586163027789263989276001318987718907680871396610034551122069402205623359593801582028127588387226149310481616154163789823976948080569894199425122797323712080743898716217571361702460172738872859630850660210169905098702932099850789227570379162188190996493490954853738599305023040997849395540031075601180081775059922211416276711735281240525900033502557776178130286192439103835861087767908673617014370478499571236652621093129725890714065309818149881442511095726324659077147817335312768533767774875015418138361745449409722412492954778960475337603885877703323343955382645255088765624469425178692019811928284896195073761749587371100365402139741626186949772003599181953284668952032689816113272649252134328039570879565850663562223521145193097660833782593939753008604318217847618609384781790134506449505325157071302890868082794693179794623286561557633705232516247988916455914078320381821689266150866973959636210615831751546385955308066258234920844293577169530033396395526166979889513116869384515118935045191377742666815595641566261640413205108100412657186331956654653155325505123183052098126816821216021418413650771398985286614674339854442908284310567290482593645871269143574013740753000829083736660857704974016684234252966177190210626140660423803103236120325840011545173415556979168295094004179717436266505524587605158208931368604253053504001598734721839957324883242699599569151435433544602603619960385496879180928086044167928591491245518332366470839025060077624766043552400991291942373828009171274186963048660094526648272375048445793305647528497662518937049777310598727933768851259837468780250532484572208510858086801147331937247783747920661294465901020935292222135844654511510011029499066711024803213259707027978866074344299154055834354080783074501895139646139290463811297070287744292060559662054498350585272430838243249850009199385788920269477734643732200522874634623296262750085594971421769581535003409252656963978088619090658353349630961510734292516588963315635510621990785545241678549066844577087963830137298321383268797977034556747330247977098195354225022493828334370645263521796527543746045081875864219938502885092012344279157498793071637400394242022845878437667793017663188560723010148839563541725284209872919676719551505253187385659141069890255762423256223681510119593129014610455274614822723152100868770414285099988331027363399508335644553604007498059241709395780406145991097381335157754635680096757558787236219071987990012350127003628061340938758296535117899272187767516220193762761141765251323308226831198181561527275665848412028080793166138931895909597734208246222773860971528380665719117104534469565105300318558132860756342873705134949559907975059456316959514818194660449658132095665301811809808216752465935038669945540609463563101183094614556793036187259066747817933836416921654388055629612000386696782913276633780676262217153367847580918679458852703779702026608144827191242033023535275364908017297187254075278716757064532835824753886680318184111664995527898061596002474105602909029637082333152656637689312920179309745870278962066909408691521707630825240241770986142110503192922911567935836037760473999561030314496067406317855176042516721954278477937466974151478570067739236753357047899355931212097053421485879425686680308428636749256678753253512524443789166265124843956665823337367352920305651124550174603223830151265125898707785699272543534468995907932843362277272885891193125401837195314436201057435849200400113846579458468756414430401973800342105342613845681863139120426682454543760464463357805893640127697184367340654599089530850912194627084848347144275254191873604712187524674239336541698870305128130306055184319634492782325457174793676782525250347292917415957401725103790688779258375500733511717993539643390145577795099351736518737329198170692144935304869192950886013097345010220011706970107848333406658740525862200845026255684128805881195937232737884800066940746762850642485820089452628257074893312485313450982985350122479513167708932354760971572897362201593255271381392459140225851482242763491086802903175550360658917188133102712394157749440872956390201689537822389085950325867683621806520648916511094297347953590912544025264182017540356308384199866762521342494239073857311955739652662526923537250982580375460257100415565001137899540297782153135388344717455888482753930605910474506233170630185469819958117442421575341881599773517815817979100831075378765491538044664660564995208264988419181809531948113923391566162946353670938038229619731264891355569629325422262605653414500362312877064950552531737310288462972099282634232751845032910508178752487465716725058694783853316595966726172490093357401016796694074329473299213351143536397664627661681530300615991667820883510698893580416855265304016486495336419029793642084224048725151575483476689471678997346057651392309663856910953538227889884424018422181828670918694252273096273652673768405148208636686310507609380973238346836624316979472793882802024964152404559876393017669875537664681880046060065133739063822898091284219612277516001442185676764447952647471914455411046388027852876494797189952035125991858397183952412134495610168310758465641188595472093293629939102669052655971087201171973700388651319600590147642445995459025513333762349313398475490789761912181118724776858848386912552917357442821011196946351717245690255141764954916238116822487345869779212086969671556909191411629191476151549992450737583225138232034101562601205005507851522306264292167850019520066590745855930294138647437002668273688254402256394972000825150694231364098153296392298797510939189378575649145158158467893079825714892773532108653421585555688806899377849193675193537057835556133525827437733132609063738026877395539211120145167104990503567176047200185983386435414410224098679195732862069629499927115731384182322695902187441888985765497291767399025054800596527519184769433614084848651966815960058910271683560898433315478692495418770381786161311269695701581153221514275219139001720632898740676421039649418106603139683783916232744515514187217898779249017372183897568076231170270904439237543766684635375393678494177104084715941115278311977387973076406387169390770752287884493450359016866181186523409677249305397483559930432640138207863636792674314652995834135586704134627927274876055869722596137133137535260768509278468518670579610924840755601286058734918408917398952284307268269637950702717556408394927979678934726716907435006583890557854333934160487243354319238818652962017866370143219911905171677384712325091702100470794860721643586561875770619768228795212823623496856646799970345299263753427263017160454969770418576817106559383916708448727126980248201478789714103247973826638951824431772872371582282588639633921773884316565645640321311714463652614872714564505336035902740657340783836201618417019034020788446611302069883188193316460052386289877444652063628219540033092720000693208019009315377730952202559338957371507937855530911784518639689930802008411453065229267191119847627178386607056871395857834766628787038016033652406940739829111433046182183486019715149329859884940009219683873551940890019847556336766960940646487166199121511633241734988390316618237752007516347326902193283916954928990560797526163373337379679466098868895680933568566877532460157178805128980048936030143886143612542845731698996262367407518536137178656828418964301760641176905001065092148894477714078639551776227223459013427895417753327204529320455565415150772358025199490853404995242600216330889785696551418944234550317049676053387426993837781383003971016825470155718269724834791871197827729901089716533373251889430130185255518355873811736446182404017212769412795684259208717444525999875183950140485293825669702682184513084845631648676011635228840408916284333596636914217854240563485926233688786659001142100650710023387214826155154810623988480377889860158284962564867220229337040396391480908093939831895498181007049911115460570972844876384478157629687145695012577195820375554077350157787783537722643127057354023436373437887919103242711591492439148465691493000586431312589478693790579841421797968127462751018493202489974336196047398211029666118358384639906331550665309504277796158774078846429221495913804393614839721661321416421546165670790354658549744747181058162418465604398370190675070945680469731662213140144856340765119395802399833681789041715784515593074801391980236754210513232252886857741106915252758829778940396378279737365844017426638325562114444849169505057156479587650809709268113476183776199637408884825579961102991902269689402444916757762327655030786631797017649722251277675664837534405842858958009231859387406841744086213668040634882655350096825535658358170105586254672482235471400080393910909373184277601439784444929431644349285042026243498893648492238648698584010091175210640399943437964830683957116818638307216441100454004253425112878033309653643958224123484138641500285013236043916513155195669340455519343339271293084802769992539761683725012557469757587065010142309394215164813642898063417297929767732264818495149278732776143310898051955702718738906501979152612699001399486502430575575561664338625385829375868441569802011871841163386170376143999083330710141019588339602003239167492807130688853912139209581542367064854780213254278311623549980495868075837014082143180846062819211664113581195851812051929145173082744354872880340545389337896442633250728281993987149760582416718667531757736985414699665965501401706196883378055927607008746451373267116091098347503830921881866175853224156993307914669498670748119529996537830726485059759555372936262986447099431486460306955479565557098125357904555176698951304405733619415247712654910814079575581868601771768505745161046390596841462863321852635865674480566605655175042820532906145869000032318045121944792566037849768960360507283852851225245602633990572780875405537789321339958207160281735316214511403221368723281213176336598143428142408562536414691834355223027401821585251332769945223462923904492185595968990338118108395837377882829525393213670838538450398214450800074210023351299074958958522189292827530546089398003501022619826396876548292892807694628060682620878621478261820862888821494134279071724543178075785368675649860533626780895649967358747928015464778458370373456045898475340790315098985674992546193296605328514588647288244105689481669110230918491087501032570793155298640102883740227382059339896876666553158622860868482369699067270280172343626799493573928445690163935897367670432826448558220176597781435671571220816841775998960002078626673347832239964867953205875444955238706172532928186171297082197669985937202021718228238304793554788390169298851436746432748955415668695922460462320099692815522256256439762114873195631326752685976316510721000977654389429101677639319215828903678809113951142910300834799028659948676113091957915500375918860515515444060554082649297868723426697529287274817809919014253218513892951191167106973011699082003708190007335886955929092298479530495093889199749560097662913271577017605758816354385378599820872261546834900200438662693745920598627478693630145778902448099699285195768019356941105954922106998340481862020485840037372316747582646134521622850814519595561742126684621384522500856103883018336248397895044385128007708744688592250050188827608280641108516411804663547224327605247680362495661655203309482870252784896153982668027394840590771753548298725650300469190472261785901045934107364477199365499465893048176197128080962897313391897405410213597835292298898128392807824655337990679949948078244840794257317575096899559199015646105933574932145684932438046498593521598168274882903983690973177645312806220220667727156856796659318749661975533414674217483877470938274527165180642473375023677910564271954871760969028924814265857872913047142637001476060376083640113150536760173928074527051340935341200184048252954706853687772720988095516430123306237309518933456278177168995782007944463747510645931832344469614948472708713235059200935729860254735507233081450434623683777477663754380897648907489741023548344921958614259150224007216586164649544543769220552848161516006824317136440949929281328937921298291479251906157317237893704120965728109797494287023677979074290980098149101564444745939124953432847415207573410698796461854013980691093082719352880712781402420298586599432722054354344776473088797658668072410430220385196678834038246918317034980013791253967941375440959771395161358040222986303307711486828806951016713939719596928069398787324976760223597066610995245933603788056814322221070519027088216662931839979649675484427373885894204135331339744506045355760962957278088780611432728472644865866253061805058879888264288997166835972638250097665850338463926959719960646836745037069153314562368334951684267995980983346023267330524221802042517128421005361905608351092881268529266526661874288478760873138266829839290257865502747089257001729690866976840433020033853826791788389036984937201941427510734803340724821675319902002272312619852498575898266406327569483902944336142856353127066900027848921932445708642412450296822470521048534179914414260861241628334541689540471083301225808520163128188578254842825674469165359504898947489947648720739841837254167080707350274103491720224606942800443014460826746925726539232064679659564298964526422403084978968821786517182540927709237250078303087339224550041879168015673934454577203666560037513450679742659147571790890579134326011789786954603786099395837349251631493547031936424692338455658171272882715971472996919643692301866882335679454101837098623139328507177617069956079787343539074714028117112637001591426052434162820986152826586121669031673280648932128876021981060233802414892022985321803777808741657194969930211900334048184693237889964132539576267810170637180190723707012296389844706626760834092560200832620401805059800040212416773676609059654000334817670441606066019610169960517571198555498321042519368638994481657608750333329154063274404592209993047441139663363812946689048445029738536896713881545138673878521817320804705739398655417394087971743040060641782116710928109529145439600525450581914386552920378664303830804381612940612119270261119247463067298225534321758398676901425260502850714675263179977577272539739466204448034080034332605721188437843824040301340150232815067882445429099983406364034906269409610741748141150235482879777707433220272202818553962459898027359802246807317860133993141606746829054551388737612013493170540876782758494307434683634737476282438910130065736540857357038305925718485020406251911781406922165649347693599506414705831167279087392426036649779651385640241227775659719627532461705518999585065857157054835671723580391949267206821169629710760328983706221519026800467582010745200242801413977588423590939421243061298968196539545707507931052076905282445905137763646261373361609772280430215654942786218882862238291129764283610005348662671267534625794537751876170960134270832019961463974313423940810602396534385372409503752012101116392070130479232663478001655822163876660353617654055062632457491011054449721712470017499800705898688904854024979587260668959891191018352966224750553199203054546769010538513569249082253730747813528543079672006401610994719338976133057169402399283591710642835873671432306601991037010506774059737748778407828797818654508547041393478703069492563858264797186829342313063954173165296860989387738958093562317407190277707989685783543576315286125675872236055434284712577493871949099160179228699593456052969672906980186498665656334764473396949334067420175207766069013319532367148502802945358047950811381112802893939756641247711659240647786431831476661227803228031594181440803171997522600945466718155959459297159372381182378814669934049793202295819944981105369770618333152468341972839337481035330909863770669717963299665080907653583665388678760543315489667257913948956106709722774374063110375755168671916104602464227436660763501740721055140847961560280455616777361372579377193870432595810936325091746762791217849217250735925043631418668886001735187843876201838622973167876497664397798990417809492162986386175725810305958329507806814194369360335352557657684882795979235308589388718460163282583640468537347963167104151596763035254679889972813238827641463829134995557915340740000902088228825302553421677892862768684787574225803026494670646341656115118961996576873940698982455475594386864227421634655369784039496372026443615850894132432224118950813334899346522440996602346334226510475822730538985483709814124338349660044534440175127174868116042436477631128323542483485493682412991944919664739502201304991138516870772943492437353084676750643606947158042626293428762166059271324803058740821688846960024923697722342178604451044978810282211722143528297868380538716411604141055447977699745804388785707679986249894001292815887352371194193756353360828145494735476491563881352454350412944886468237203295077481794487425285705482919407823438942228095676575534176639625589295553875837699681070585636212236807083694364637075514558892482106065391176041389084460596170442169115645251544372585083268616628319369230028884125278281818785143380058532629128776283711093853911623705828149294276922591482789763274474929631869141395325775672436952265596138760388518536820266997650435003885747851112514884069122606249424948337973030883341011593111014899198163316770598271959325528026553020424562026225304613346877420073720513318408459752845679666282298230921627502145479283722217687002825124088087328607847400489966148613986513827282793602489337009236480287839435684627939537067164465606939856523238581811395797554023557083026286195443844260042238315024005919756196083718362405295288685820879474890059992644878250637527172022110120920215364852273462572824729432887236893744810793515011141793517307861406088283602704022687567352629030180366807317722308136753906377907754947412272086619599201502300620872841344282877160747993341087634745531964669233118940830388884421319172033898287695726485714924792979113573347871148846943343545936487683354221365671583425105035508982157956881590044423675293877913134307528833439903314702772481301995661436089648845631290681460183031901750213250843712597619019007009090705217061456750558234399155081237565026309329815704783827164843316660039335139980731263446255719939729381772251863859762957789453861353084364660683279542046076259005300402673426442772186076294614738476157343609759456385345119494274463719686298133926483672105425421299692379796421540734061601994224715601467887936778289238774146707763472631797990296159782455688699981744519174667007398519653412737516553195229713599789239636956765327845156566189237546550513124112142431665616550735064612814325001600738251808695002117858694467395341001905145301104609444367597782210759293310252080954227398718267839923779610152792228689735636790902392250315357707473435307161829291726943229945468282526678302438784015548562982683615972828967870384969094391108305748403223746086611718571433611684964487163758978862749752439865719390703023682659293575074343973784172757709232235076637156162215180785154510572274822986196535138405809698654201645733702729325301036688929865797835422114196871526939988597282915282636957720831950334438084200218275897575566234012371747905164048482291164485781987204065261442720725140457469136021014240871789523214064029233646290038876940244158962430717208399033866176852557598128628670267901390538453435355200442701682793077467438419643754314741918849368888946239790403164218329010957045457021433391161310224792086125932588653464578291457231915417882776341828139076295443371007852750338159060746568418631993458742113602950870610435901562951590537002804464349487274108052498387269042947892142865149641468765464876455626623280536510622652679430365774510569683468016308188152847334346813747868904762574071681662167993656565876277169208315028098857819450613252540114037185961649051087771161557609790721598379204852333662406440241794000834250166200082826384306748706683178927705907610204244293535438088852455866867343087470389724058809259455445648543980628523682348225814457756342569719523346799516325590143880660186625526614888211296516248413506879175684980577284783532752279884573565219207736555095029532756121828485157010521385561578697499860507429371725282612610274681727463618018164529862182622737231119697545353294761391438041506668318850967471253690992070570649236037216159856168950878297382176222418626089202905021683926537299713715586190613576422963812149907322773033672842389824069465620973010801595722578880115092464249241153556297526788010386394152836819027460833599743517903061443731040891501365060629103041927672625260432118080865648021357751047286315625015590544789660802732839811444159302475679702958413397463209689373131409034714765418702490737869380712509859437357054955903020712180764740858552896087854426069376524263024640675785039888465207471087848133452730489564969638106063602447645370757875848062823058239892730978003450087321322805066926870978065674428904553485959020702202535964514138513947397986973722686378347410210106770676138052926787711177681742056290580452462012927949972820734522273269734589489627012597737257467783970993149754617018676299962230161362309115638019933310355822010380637378158814201812205480553436185369959568274389921481719113605342535868672646725026477023527273292718392284058481246120825480309961516366626566318588293851892522152711442059570664046291169990549724783789286429040392499724001909815966980232400940210864449012942602301691283021711203082173993144130777739822783589047041473442393855376992979884282472525927241385947857255663460786883175697568319766893923732238538134522523217560001444183111261473263180078297468800491478623059829382684458582332097257436728029932489714449543002933050317533544403893762803716097339493500802754148415811823124825209567323326566179374482177900889906580910505577192877767435092083694239186620592949460619140241348826935409707073470185957221399715168787656427181103488369750084255827241449907284767556830006362852671123934487169981475116349201082735918952988883877963599693562494091749675899480639738732704741487324092352125961074367173742579041188939563565023688987281144975855704210331342784947103449035332897909755092301724984484597909580309503434797140573484008361552396616611606118955361053663807325336636540587415827469594638108423555800856181524296663492591916660370147914945910056194663354544237064197313041061974349031327459068058567197417511277362701193812188777405868319490225346382636945699939883095011865182226189611702226814361425738257679770955098682955039763902036149786454633485363586046610139409726001086190215326867385720522900103168907504363883848016021084023432707753404592160427503783396239792735592953995554338630618874439075730884670166965438947379858619844322893435970210054124732038255976353073568356183544607144732248178044811815061542280503792886980083962604663146726645944780232195289656678889133763868128420829210347394383039730062349158434744922074190745385253987412583204192566562903981525577160904566167118948896670377722961752758602712126352071499850437704588356456293718061312068524348394127544429870079785726243826397001359363812580579958402648478779533018466568528309838080243289008120715405327268921583304645102014810823154659975963399178181227559610177258842645788399798513262515421571573147871159755700825857782435780093599702579492662308996889136503397353765061361475474328515417960051596085731006518785001056072565414394186179143372283503477381934306415774186772943567649096543565934591304124471643577530584078273964411170367030324305440987531771689560591348408057974212835491402013505121555963733500357918849275111877673728779605254633820247680598670931912377740986165596543526133598346147124951848275329834536801257256352735523332310485164185913411141049097452299647728945549146531690035724014225880240561452002202672646052603041308303550520922675812858097777464688321077465979675028594277522835663147254971916647042556116440220877154229430537061546557833195643282062735126981428688784807997582083425448954841783090516354392064029656755173512385509805269045418184636431386656398644976110235119606588455891936801851874000241348672549359236386816574285222584921993071282214910348935188379943403406038811316986577474723718189383170431374184624576894963253572883287894165085208299267616968382841471607937073433745780455834065546136241718942462244390935717944836548651691582292200447761441923802062752850128737013081757724264507802572849340648492163413468096103102948630402366478635076502659537445370437060638747278252135746607271140774681592129311704850490611178529910450218388208926395289995106814214096460673371584307447011666257678808888505809932028583941002760958848545617692468691777769827007730046846977464456468177580225064361014318582195658984695909982029358667109898912132012582893815533299892654278368300152466348667724556881183320036664676589188368393955317211463395999836002042370939557007593232259528286878465294380344292354826893686633881944670265013800247168259240857602667926323491150365555822557274375579009777695926920671028934147299648186453645052180233405602753007907305574157822239137114057561547609980634079324398138859748128073568240997585530375865582001843869726319737820207250933157915973708811159079050372212826840667024148756294711679851320094196440259377740050334526475207183820381622582145675221222678326556521048746878637508850622513535431572516141323550226747486245728962321932311171370285274629680320438389802664745439701975417369363532370640022727810926820386815611777959691928109944816075881508473003130081934241826301679755624134316300179560507450062622013126317807261809337648759518976577953959471700609248168754416741018347022139213676180612103943278898841135428086282872393340347446934205496932681382362141092775593174680148174629172849700134150180254391849108095453958220509596015435764470064976637582092445638899017576295498435196472726413439846370839827111244725172252407183377982054467766861545575013125043511422070051842950518763339693809901931665398816888424834555253692908100313988442630273228949577979117713041808050978680161727194713091224233720998408355521251186133267311242625426410204478989321607527103026694241554151702644938979159200400451157723749353344389082294125399485638682726000745158943089421984713985033734986492381379829541420808091114506246308641936620519500514595552214571209680510664178547228739607906626932917484597132183491482496632282566211704423178859788813498060258714160080435092367313649636774032979308080286112973434290165519166811890871661431962312818243233446426040381285121893544331754885189370309213483527579060737375811551071526037796601579895701818384976296633556840076215614372884961059457317527358736958963390362708672527957006157621451333712804696241841868000119351834339860424767082405058505019274291175191228350483413600590293771279065452473973518649360339494350894347844838942748788305721894365804566778737663449130705855461423021926116168166829323439341833733153139598509799149569768148269481242790739504518181335069453361690394631014301619026683396661374145395425132527082657797607605379298802347922231350192032306805867954344091132144313593993399158841707484885364403949183181674586917155231716038182738495307080891134208165258145956626357479757886209959588773747282194450280379546479266058758872898976787474279691306660845382717964264421118499677629285837387026306147752808396778905878016449337741508302028273244168799969060492404732358122130792200775661685819943506143929827116723111914589467343472078113905530640528688463960255836172729340315261349636725616972174346597537281040494418223597082160142423886643466747968185422825598105849658641177352088589954379699386689781165834523015845836545682222633635177241370656259480803739629879057667548271793298037115217564293685805144462908551858032506076495941294650034325951573501789570301141635049760647284486711219448150945001917319924517463696080154952737508653705536638343972988911602374497434764840312242217907486636849030278848727842281414861443168239490839150691263373028295447999193501080511333371437333641856219388101130755053662496710465477548876203781043208698004482317153280778558344577337180661121438955534792595858821371536373455297982141546116405015989691350590028470285131242462207553740164243575830810551389213113956926888715553966040787977422995193017441803966488675438147729075319708212579720010697002436074020443137535055801003300040183907284425594752581835930807732651198394374863293489401435299891563402715343225852341467526837032073087291030354926692143916093239203054001052322209994046697375683017655221186442898537576332567257247201769524706822204624660254424934355738835355320393479203557721998739874522518591761231635492800871137827524813337996965809386096881094986645183847568667971598901131662921401184615964621922422535035737745699258983408052274164193059910238208361140526541749781988396299961090287841728915268531338132120281007457979800287539615522292679050078779544170485497428379457134519556366196937137230039512202032075778006646215672088514119801454071382121360653888091034728527407490929942310401643972836200898939210906826272110253888088237498587529170742280366779692133229243475694704510285466732069186860024510015538931185231706194931237615585639564144057542721713056769363924730329472709223730839166654992787353771388296966181625020386419775099449902431727346191496743760223625090594109921537005255204123267458513751232241705288018236961094448836158714682684346479461598931024051666943491141658633279270304588011554555687224551098292814343972526984763441880603568460964820983512731856283693903151838417312219666748593932817502299235083806302550212281651712094720119254013509839169539819145578385535288903023661716445613643707756213909334221385239448264818891829086324936008752695783981775914164493837565694168406314913585292097498225569815910153561802095035620151614223271634822294029862401624919852974330364187733426351667516412640105195425039085641235388277112981915002627121245532860513997985219748177874999001232411472541545411298119680910883013082142267988398536306637740755135964268805055397967019506675485609400437818015310762423539540411140499926730988135791610311048751244499922877892901408530909418690367981395135003243328345122342563491613491355028281014052954696677759253653048905676398471628616209539228291666954111057387963145210617024946545899115187453114375419937469715524125418104542512542828613221814114904009588412297155268245476950662364578807717377796132751288212317681360397702545621486030886368525780682232609543909629239939518004698493815492846605445255979324250880242420482715236221535139450999239263378019542751635356100755404126180948916215340500832540734375718767046913268901856297606239275878640887316363624336187263211209778235987354577034141939250304695807850321110851916769665255059474248315208378317881147816083276363029057925528765769407448244882658483236717571537572312069836761438859784535590772119691103416826227309605718792493999862896539652902247873279104416204331255618725213786749953365894000761912994369722422686416606290532125367255864087281791771130168487915179876768583832107409474560860616113480138792101067843273341756242579741843540237783495190395758279250193162723787250251530295420056415554094477374807327436713147711756349816228953634574452346863192680440465426533178499528774084667812546925700811332516322320042289332909867647055472741061192155438233951389780462250933222546219799619341012911546217704588095882622465988775258194252838459452298615440815082395882449156838357662467423468749162169425336455457890450417471459080798795769828633756544182721174650060322899767351161002851848692682172737166996894092606512939368448514836851259755770299144927020539532253850904352776758237954939249873634655904038657967102630104885212301386916333004669005557563369039935746583781077274386166025412996393259433361963714698705493364255919633903976892476718126668180181515950682664488350826229799903799322197162051912343862103009912288325008673417198165012125747766728252643530202098755442277914034690596141020232141317217618715579205497390751305332886670889144831277863296244842699169673907678847047489351717448444125042655996886297624930499670069879830103336007613214218868397108162395198763775119781701659346417975185768662161559408689730137787394698636645055694388031826934348422564394963213964542005737606221488086016081040135812339534322787191313122058494113913186901402930921481220494468768726724510637749316242838990239104727755569574084764606052966306581622370363754823232459637833322730894765655835196800471845831290241555425588847289481280791470326385660593743263679411426966307834190093789584876916365216611723511344483017673756465414002989819545772431312515191109460368654511567480323110322692656089615263416997901178490960385152292697848728659696614168899857741380285483855931187909806250967819371991901149789058993970533559403524813536272227593684732990773519050323975995930803512160014114051009167699817449238144799771710921840438993414374490597336472421460080977366555357580155107285007179475251295816536237229653910347930972920492707265725056243695926459107054163266611670033115532068243271534933608278783825767773198389566668776345058537299101234409492090392158831218174422961580306433816044846230889982751264010611505684427274411763249960010438136498381733597025164625404248735552519756558172614120388148042638647933483985409684661492043221058471475398066878914358575449457610060681663876092034503999990171194749760539575652495388006583470519440342630637619253612311152767250756411056729844824315257682621641942868750991106691572773124606190467276357976432827351403538593871989118149459646647789375540152846659801175532317005101914283994052588976443490419467724174444224859084383674872168179679941277722729343154926248202461865323489859884614941118544941577107360191397101746135624747831388611907976070142872294716531722499845590285466970321702863563036972432829120006513300432361614744306308503742999003858776419435378404175039830728396452260159159674878699661957805899567588139527348331464693148516311838475542504592390138976027371291802091271094723088207266342953712996708283194107426513547607319791021600826159358340037692013080006518088494649838407336932673377025375989895539336287656062303407535697034441138028338451873091618605011223542004413878403618308448785925742649933777858624045729034857787677420484586712831788459321149128374757703667997733650543074006262707014695249121121446854756140701195337894881271028025954688910402337021312507036109362247951477273847091365496839950291814819159511180581472394008323228500994968806629531750549962753946059117861658035017468544540868895793212854496479368778888593101930695568009396811573817944533659205752889424460767322861188548156817744489015254472747604672602420681727779850123620796741265817287505247332895937411791235137614709945037198234970626978617373253022680846646591992308428851596053938348876275671945285107285021453160094364361281186858043329848974631476853738998050875452438290057868596673675979439294523055451571665792994940911267837440234706770602013865633383983779837008001546254592355418581314866672443785881710173373469915405030848740479299890991187219836347493002908663445895845499417005031330493959126919690288889982595575758644989746690459977380966693486485227102346241253786454873941662101112756949501196892688228030493332161766665684662421876985533781526633903436240597126838231347192632083172585723634929838095520213963909136216894198135896422233624204715019209707251330238703839871813175059264736940019104884626444196215557723061036720517914209433828282426396387822496827055912299683728482125602408545623481105836175657970975328171535591347910997887546121007942003711183998652298129437882518790140693939024676670212685758548601606564638668067780831220168588830048101417516557445890835397596809163220957374739791834613879723920616154355885231573194352210672754044070293713702466025378679798591918244024613907031148499870577118850151882264760866303918237247845788325913358271989561466782371557510468810408394080168241947606843650907151589494419606111471401974058836069519229262254676182140437643033136071042942492536990722825661384734212538777471669779844925292781962689393205933398045322609595572398843783427556984872646358999274671069248619325342435408914845579477926444612996175884228441422559839326316531142660396259660377976663677401415186003809867931908345861199904580443499035173879623453876914485185192410219672987538202697186221622323282780365144521580151967280120440788103776876687169193043813558873659306719282878096941681221471625727606650186836150016626031355766865223767995398594505517334918818437162773239838345105148550615637393067380095703824883380541639918596372542531521956721102622240940904642741152307463408245021333155685654932584706302735299506400589064285818618937116527283885415204193652817588077711931375808485963949500325397346032974061410921511200229827623758522375396013842932858085770057350447299513908808436515748645187757697685012587406874432515560568684906239109629471768343943220301712731441718060883581796630232665496408762206846680999842851698826326830621208444611215162644229054966733303046278933738001988002037365070633873674649249943296557924076095852741871972330637453285962819793008335619053111554077573416876144887195873048822397849785550322700247659125808802187444767341646051051546659904738622238588277853909296306137519287354175532334851950571041103030207398610979035819082163428533243386760351713021128640972935760091503406591546995444682999612515673544527550771267974444587284962103910660355630008355133084843818596146877551273438427463708993599974164509873967457412676723068513694104393242758711828421901560862092063405428582739915248990452332660193970587542393522445236261942688001899460904148868973708176136814830670512928790655732886447839442291382927090828602260313158169954800765530994039233978132870817687032023386938317837024813098498450561785502244210356141936501433814921221927975757961838898027841231082398941704135071999806461609769743492175332926177322084869267549893255374195881979503871194385853543760413026461115024795581388433218072856955776371192389381536701983937916070670779472955054993175733003419052906780873349750902518021140371196297705221673632543573387597944089041192736676376783911937264352511553891455626598528797032694568299620600322088639499297764944826560539356512151379871332526836293983213252275788303059885702797170916270762705895279745391602167344568243682981324577303732465826692578716933690737468591018518477061103184238813912232312557611837342307407215513062402638947679585439033958039963855470201921183076405378662927296938615199056056375204696875106544695855098867551442841993802572412744336758688311951619774310109754768882433819734227658438641429451491277895405659866822229418982500286323257237568867542080375899190306915814694549694651504829867411586954193993260941864615074714450164100803074868731617653927055252574921940739028748504204727240910343700455773412351974513450985892163719382784235482393582274314027266382805941903669275550769672349669590776003974934912294323707751690893602288346819830395750381982965785978881590724557721081051570214837178536893981789709896937125737293397134724011114367681483006193063057426782044318191596823474590238997874174395033547191564971636530635296574419763888297003372431067449184445119964471458442722757198064771695305933371354510472094419556335649568521943933099335683054080486301308569069356246815529838981579380922199143150666902245149268961494257748960895673116239552361829085568112907099704357557117220474025737299858987132788573723040300248794257592000202133648781636274118665407418723913607387594024026754476568037354799542118500868336993643869939483178949956836690733360171411492128277079540263279944833757861549301226770984753303052900797366858589967387734089994563160805829917348614944418164034300926044828672080741570151746894206552143754309774301579085449193106124233938456246915486248611606221575662761261695539168642921575642077933711858990984391453718141318553510155752031404570638775432166396235000797102943886440580876065223718714732698339699203658988348706585730641065085658505098931078507694259135511838443969731786910759355277353396355452783544161966263534620393022837291038075100732830851011017558553674761004937704577358680452902984025881703216987965751411965401002834238359436023490295406735986726532163193934209430107841993544667110935353366716403464319488522222053652026538728317447455144345612070884470432541762858464932209924428715671098972228723290764144659529747895271090599004474575469679086948660534329153981470850175879762135145807660457379752262290561354132378823414535265518086284767358759578188705885070560646819067042367524930613873392766513518520748770169043129151343097148902566932118471944025909327752033077369845279210644279152243105107983528697665196535503831524946510922066230402534283949107439938908130701804553939689423448131307746338910644327910137204180816573961755564568197124459234620326955940274602396351239495706934177512684880632810234608535726763278267162718059602543502027987182171144032896725818091906404914561676208718581695000626802310472497725404504769204207254480247052129160309608344850596095315534428840498760440019622791840967636671560036310951500769125242050858591246466243142315095513556104166885210221158954258283186763823257129426107776584560765708487514277664981111348248874605687526774023700648113363123946054010686720390020534795975505158445365941406505702751595685018154292706709256632037085431750407456843050885872847222699701303855274455037524679475985965957032946042356004783243569718180494768250784927667955536915933355825133775564777757967717930020000149595868907346127375614645451567236581937031022432695717301551025994661793942522572573469886099393658654525509652149976976608460701810885004452769522534969163166586000761972298337761374366802871325668639657368146572771250885198867349245445256363033839465079545724759750233154266905595091210480550253505923464351258237940445169701479593873260137102732029288910391088024596544116831972679961433160715234785864258382716409100532751355886444534867635813087581746859934188633905322503382832674880385979707845895527850987989453450897845146849695610361859732730216250682379491316821179824606898650661674161673855408463179472835649103737581444125838014470579690058092804338822770072976443399935049370967673177655244395181282316562461763012062327502756607026451534293659325266967154361185290514436511355044616156406056418973503299417404390961378031683450025295993949082758405149071979018704699275159063939622513178117852145015905450918004915775146802546204898215325463045677593985789005387930170021020671296574497156758306254430926391522699560033924142756451925652960464439936592183335174038838984688824714035911480094458829003064270491174029887023479760886824913196678344112619922868684927627535882894665500063401534309679178324329563660143109355656554068468764000038324959904345917582417177891727103771761210957795189747867652050022867515265633022326091546066291385944095732296746797790037036126832758504537911653615484304418615971079105469240989142911283726325473823668787211442838813584025095181284022203202390556598686728877443894023862752689149383554909923359740696718084913763947708853143032368585221720386405527522472643692141224347162589866924819043081027573610928012789056604636279900101416778835103332604851415371631221735694403411067100284845027164191817766612608874054785152423172179574705914157801453782136427485169429397885506349054899974081636814526657100848938052831937571594836637638714525993066010188055639965433524950797164506097400728002572610969571301219096832916641182008877199547460216060598945962708205513189479872032009148628062475371509963365756144763976910629255723936292723938120019367654907744533943526102331249178758464878205198834088902984147402490665027673389124691739122975931669968879298211960741615232774806599301264543624601791692646414699624586743362381433966585731117350594996838056259105045929086915453118375063368095859425372025783249984039830511268926726395095941612530554289364740987844119402617332540620042686213336463437964078625413925772958939310742643219366949718816700658123005050218164062054931536500751565406911318781095835622334128161858888871834312563875746211347181575388514338603284735185470954414092013628588961031117426985950243328142801563115751956904110767181115744584730272426931777266665078215557286249637437021999305065796804015245987376290867753117477467611025699161914572073802226321701047293289209820330872371417640191229413260231358551245195661803986151001537269378683029108691619449015570401168043227965336370962623773719264122859419090391643887746207574263688219792611080005566100907719561946627599570953755234823248804025974874014333672703270184322958684619017024797606964939596730921228833281985139729073881189233018570570517864172372722579726794643505372856132103176919746168044055756060076502641251575598823493382265367064627491284773911174215244273742053514932956467893978385351246482260790725641808482429814510007833071907030542271700801210767601394557037120083949227657066699855865080084166646081309958078513946254843828696082805980463826682889834643165970969522953287723721174320661668922562019612622919286789166573884230842669599463040667632735557963040491271002983474755897340100541684980498578380979735034115219076676801996332227918830063801560702149688004746743991074019978643921692622175299593830452991367379021400831911763581858643111328095008201351252517702277542210544952512832889235337318068480349585675860544508718128055533139176823887322069325465230372870302736504477513936910345287201549591179338195934871593217983275811535718229603429385018905350218770264551190685502933856017357252109458880953015579748350488407429495304988672836877079573363321229864763362551411581991974721372949759852460446216013919904339147469359894380764443780630455185143619588111602152110321066445448285989074428137693573311094249137055619215143580634913773089501436553635103739071027924433192737932041171095920167272752973276197601954837608419704536116685186574733704789446909858573901579365283477251604451137948121931504548748404977630092887731352942310084388488930423731125005758676655916622953223311215152141571591377484798152636897563713863517802889561081441187284924847353611153911940701840567918280462769193773969316383667375629165040873219738188865379495438417827451608930774835308212836054580852682484329487625055840884483724393957356231671467396952885167045508967422064900885965343547760920184833924143307634263234299830735345296908769471880971353166844618251971218463749228880839683932150536287118609300779363167184509761545070427679455924374262259497163686040748073151104129097449445615011122459830501956621624857131304170421559814525011773670089910503246566347326048919387296604112314213376239944228148275705120519977966825719802543020090761784464683620970985639311037792530755247177011488148536952923884677589794258560346140303287840661405084712976922992512584167078845390453108680382593529395333416875489865538087917349689973292533930826262978222948415439818104705707318655404273764782484736268355175095061852342970782173712271235370162077206438090749584521713145247865125390977013967094137312868755646926666807893123819469329699505571758373046819694606558628558676982374674692255466086548089107339650351595874896043697429687675746106631035768026415610400396482678766649711059427912938186209402461461275008009302873047639421546688505895919952804100389332028665117703639246436717872043043774772553507509734147781169918608077394010231198121871089808102125168654134881998397160278921078324131041729736157810880561595840346168474221882860353164828561797999729222691686500938106294274587402821622561644864773138252923973227079499476153614178665242696169863840423714367223016415475300005921249084924972548269097490225099938275450933772785834259866786708271695540849133340283052000107368042884940092447680900199587655135528855870594987280491647710739507778917361094684393116465873185651019613886121445352267199324138066776320434196574754268970487576512606578825276820831253345115866958327544419558336118297858162764553605140324836682340297106281025643247560476454863058205362691826796360979507498036096285074232605563673241036026903632934767558571010139807315338954821372053229609458224195728322301298287495179806611299225570302546653718254304115950964051417623602825247988660236289173699055051055307707476884517019386255830900474589300585205947709125809936227554169125111186786931478825281516242116139928898273026290747763425067124334821404882401049551643605128083516702080677249948031672729075853330728928667157221261155067260751214554407669916480127645755217048630242374810729762322158208324850605685316084474729649935271857740531519376820669824286132097778538929647496061545447238321209406280148699740449852490846631307147995103384076122655083468548796468850425558482635419551730253148815207471834592071024822020182375161699256940381807244184450242314612523555419140383813684445156990423184941814222073554201482105627358995232330377668044444048206951614355396275554015126726895455510921947954485585639907931194317784283478602054627256915083710563338117914953036855611814450232848156207030618598559406688732512987908234337225478862094202332232590093300333969620714088219826328880534904243046057815682169930113167674063380848117471200374176430148709280835049263117411670840238334532482112825778246164372528374613797844457843451179174607457503427620671709045759613651298544828253992098026725643864053162449027986712322963095174735577954046134645381152264420617862750937229947495658318527513507240204865005162441079314343311203202374232594068624809742665641131247062444727029231278378335765434611123576532991874024619312211671198348016272632062963042822260800133647767411099627050481641453343879231258593123607129241863507704764192259464387466088769353027290142128385723983680823420876752604119123271520215709391917013074278228870236489976273863548948472001803699049890409886836263506124272548180361519522328277682422722232864218699925722962211881918669227403581002994064490334819212436433848952064477332297821179729660280635020813496272598485696526397432766930547061382068052722334042391778090102417428639211165143426101641779929500243891204234704200055349609368019025488916340351649932809279940615591737291228976752382579651735116311790364876603799439683752963886691893249191574789799079402866618175145630306045856657094073233613261106527339274631501540059550456507398852174314663031828888541833178882947281245631010758219250781710928509279832488674288207835932065041964067203076088437772701245218823245058820080939018889221172178162335606742498156721207517145547857162824628918473067363960625620375600082389885095671530729281065251654391648992555928464857829858732176172285448808909648973061315640541219335926420885389909490786028368786344909146381631989571181634791154614763710586395666046012670648234171879458263918790035569627310181707779598203304436477055235462336996390197179539838046544863782610890913958925385551005050785624013518561665055051603803074526930820091775624412727993554328262932439114745441867947210378430740631555139693741338936103784588784194129471364681918928061547735784774304444004212652461100795189218451381147464447125379380011872930483374232247859114101337139889701866096699702159158664296908318745205585402534292811739530791226772804168462634595353106691871219606387976436740427784177780344170124702048706254453018365152375560818223475572775299136842742872347082333050133805495172848052525271554976275222932109167654928442000339803302950231070233515050596253926271895626929327854455832671840559121803367232150608311420960348565347844385165622493369035003860896200655772093434055873953243471612859905013359984846347810659297617344591468899914245129554873412930574465765350888034659449314867561158686393236115036539469225632035287775265202376550084636074319420085005339249328416509769905284270095695555176968725681873389342952574532660063473195538396881223579980600088606148602035934659774726766735114570002166099478686978257649433942089222235125509444770513330913922165301822585121738840006547997577877610332172519858023994668135709717631923692273102477096147928734548402443138242471852858819054347222256779138236149306176822044410788921239551160240954181300976792134645854303054129461693808465334130716443367501269581775570019272036460633888117268465833757709168151647701040792156824127039123884107563965097034459797344546770139354819977671855327041082710587176078021550306063261669628744370017759084841104167826680896133360257131073288234394150893093886313852483930715714741582201039468078926176101552421737581703998116246805545073603739303680883869354110900145029760392040516566061248891241329556439164403004707267373331280316852352386734301405814050069933131791943072558029954683204917885557939572340879785439183624622449235769554214675808255823610525391003816315042858968365236170671643706701729083969949117894223401419723021558101675232891502906334054323546756113531437128012370857976699794657231846155635276905763188121648742825126906440667656054968861983216872240615831127561309922433297312228241226523928937677229399598935225178660196740768400654174476157413428606168152237720398916353766629887198169245923923955227347856897925393241123348589305217484142069086490715590219318927841705548747573309932176669974160995954056111860417945060811281094504223197355435167342966725991844745070746627885533771787214798523936542328597279224008591822090849848278209745216249096373127701570342743534686473175695653031312746933660876152584996103038574065931114855562751219285584938003965253452799734922989201306785068989024079612924942700494797213417971230789822622823790870788562428373701141700698107249725196908466032371765126228088367560081137550934931136954701936880797495579506819571588464234036409066486900485712876008637738882247778346535551686948102534512595113428555179749628583238052891394268073359531076781429395095471587863438341712917305828185576152526506217747505216761380913151845300175297457982623985718545600514804011242073918851570201260997725767183674252684703058410726414313353854593729470309564610864570023799624299092667104466614890122523663956423755885012819730118365694901503771737080315843925457884332307977460189908808396621089986392620028190289537681205575121279300993722081881609815344170672961448961482132711849904558749071936382981847253116170152162886630626879102193859786434919569739396956480821860266776180096559875806821170479323711207012496734701724806696293134303775061651457527088947028507400849787068794569491311177565904967136549019192556027621933976494696020144478252786262892305566551871676541809637621486274420823015461646476030175052776510891485280021795793476013929412657969773314394613557867838774642019448780497277330981167330668654372274592189043999290028897657011862255645327488617743303808335544178907134546664596345316444994736008982712289899672682407309420644157597689291179978546686773769240756453759728748047482900425315590754304819167595689904865457295546558278605547682995801971982292446386711305222548427528287642070855535441365028284285182051423121749898104445227858889871050536973345623449919485406543873757186659199622293795604767762496883050386849364472566089857933322599692967213458326312281709741492415336877825204472287505002817903220516364999264297471656294379722456331281035344681754397464430646762481795005059901916162747901578665582694127853910264217543159975170499568735236409302161028124886283680490907135969705909504779799997931353339672037250516042241418198882397039188553668404759314224232212246935528928321113462539958235609037896099827486328781929283088241628187721675078666544163530976215021378069009451532856321829193631076788965795112769931399204839897138830774824461730529076511771431164015422349142749899081060446019452865199116730140281294159479466693303801349060690264192047057784216436544603826036834435658743597275941127174160167049872931886622064823907825219623388501446922556700541363946991304172519092714836296062221816688642145668066268558487933316166588413378718203141062093416329029009404982163967920365235138313860438916345983641489335656719892942463419279215233397390286928018550841750553540693608577026427127469970257546900607978944498302270427416863247829223230247822422883440952602267806495662750690848072617238309767624854024745752482620975830474485766949300715104007456297036454100551296185013088210919896785040612552396515233768245711320908943972905838173642355357744194979437495842586518529870139889484391267241035078607758370056456779030725472750613958173756351966268353280942153119628340200072910004706909693661561734925667269840674405498662621726415733017918586679191541131770177278002175422322543761347591090265985666822052104426768975203799670052410153385089212770066339801516447015250981367236503110896939295359237798838878905738689533623345549855401609930375394830805064548678050285118765308600918028040723336037225195866264635663868148076647266863987467924717367351255874589337866218330842393612151387682320199660225697261599007957628198664986186307387472700330693045780949400184085910215370496111725592988816604574533680372484648003421101237367334429394172995959956826017133314957186900292691216455526559279207090044149884746625288681820254116675901942656157878685413503769885876659058820835667284874867478425947540401528097763832151820858658835689943141451776603627580941910702617377238898398310649067715607609120129575056139942088072010788438283456988038367860005813776280732794693274343666172657788671464125597202359034797184125858602331385716877044181348456863996713038153108786065430271390777669496687894981579723626562259221008364233646312198815429808351456879461705414526618618192895294521408518822367120839021362224385816206696679827386696781713694241630460876459253663647733140914342817376756692677744917747187409412082350956143976925199063621463263683615500845809390034003536711306807890129015910456219871675736370216413484238729627255434618139735970356550732790182618616340202842864661500710073772072366898668002804664768110851037734050774527079133672826753232753069395869738227133123915698859327477506449847357079228281866624268831433063954685162054588098229574415573997271887472505433345458561105875424518255618755506691748814448900316933950081028061454069223163929329920689330785491137118315719383342102808846898862297670793072801693873378201602112029305598560895877184326477752253799529232764862091166946551088398040958913488504875549493649116394054957308302682756283494891142541552297543521169658352023667001819531519668543516053727350907427066965816132932413581730827099548844978501304173707238156446472616240481112492749490541739425241465810654081507857108905650087271225577425289719182579582691734241773682141110429938699825895701923275850016935472303692275034991438756961936326786972695619845185932112693523422706805721149743405902547673324074062656816319828093619196829021790709772931549883153503400215669305851977081357791994419265361991316479590612719481784425654972990160282472263646490895906554579155048701389172600744182977289363347833198015647479034043434994529608601745318502539656613947321403202523419210525730898775160360137915454150202731559259112541490060190572572917576170998193161123826973156492699273538330643230208939976433501473818346208572373858634472167303245209416928266284922861603533167066593547177628242946906993834915334668527542416048758313595424984182083814077675718135404657710665206025096255812577557856220898740960164568004456368965479656451601844729690140962836284423561709861629582511743167856574425722772309252885950809850644068215859898645422609625474646862571474602223007671891954675752269738902782358352594011919305449815805773816610651965754174878481184979127689079839766171427756076651500882516858383119083668888831557394249520611583545096528078259819480636772612381150991878341920946062647709426920499538804781349412248448214549783851188064448866352500087207004600565748270711481133812316863022108242346221763648432231177164584548042178126381146239644029232765266428891714233426464590027066932470245877790614709658688708433325826121414342731365683308436892929166999234160049313101035501432339058115872855909448349825423859353232114822654583395853434670134739162900387775012329016558691305021091178934977086600358930071892364119775060451040611135229716266260012311389213922649270908217016533083375360316454163682826485330473864826452495901858789441116848750733993817383908817723675323528666935983363707938291261092146337308315891088607266771619230027959520528477623741970895707329712583752129770647359255048694179599447394813943342943433000831976148764158555699246413312931129393293228865146551323763945239307510846136167992286152067649530564364778434026833231888774412483459713027963347135695399099827964942327742120157949541826613983652596289966899268019942623234947462133741941328768023246481423720621394484553677260319266497574809619016196500263889169234478744029862693409423480320543009353962593998563830103433292064104285550196113405695415583002671472121070682374462471853256276866746641234783409119059427909927668630355516110681182566029744866560912272549766086937140223571944703781299517951509360983416048178831947148264580815371497522432323442490202262865073195590030858682934611762859549798329900669638712653875685888392602837887613211177803065165993674022826605376048007679701313580267882782937260140261895623681960455401251353739887195265052303798754636302476864779032743443760646932261827852214187177147174250914486994187982084163769106105710628199707886972214309194427075340404423149116097437241843898160890060482451250209181643580110444799100878622987888796186923202566895126647222425734090166907741552716914755773459489717763891840240716547016551711587593758869754245138454693553623147617015725586507455690993712732008830692362044047872107336434578858380551908172682476241342332239799785702454868478493767663277538423798221495988231770271633218904258230678367279805172020280466307409690248773883852555250625481424802532869385329047600342109244141262122949013227843274033311887671485345925193515051261503085263337314892277520260576044839529283496802873632084925266869585104076914272964386714024401316978731076120963087623437608650214944985735364071186923740099837096507376418522109949154988298083109291349744444940991389518089667138987468173684489101525904086402456052900433137893118197045747590425028877181370595472158448220897637363148213467023716536349569182397070994297914246143573819648177307881017961326553954529085764197984274223724938117809851344796218087416622943921228977971398379781265499468083532679096785449210336597142196840821434323703240335293740360791008467001202569307914679311484377464824527034120688824510348643758723459187037593081092209237638978200981840499376212258386458728171228764950864767664781604481403747140008965531907730279092982534492288614621956514735586546884465023202576847201503428443861346355137282190001200950009286085767120811307480053200154918554169308976370840143091854332570461470268868630092831014535639781913317610246688306877381821953464938038355793720269308963959176492361879589117477406423622139243790609901380039791119537731620776755632234405933927403008419774895890424511372047533105677784852525937335627857052621587823903340559592574929201318573377474089684128303302717486604022400245755264911647239145445591568554806725197426574549368131977908602177191308337032331467451930789044508309001508101528402370584044382259610417116356112706953038032966492621965063253825470497351779994692643894007722394072373993269494084770965930912378475735153597256763533378147475847817299685846958254640920348807746500173920991555518610981516926370890430012794449520402395459489946318342301898363388555509918432165105565356499765461729030372315970415400450122370808604725290002662291425359267830802494733377564804171530840344168641774648946656929623470709176092118742877920490643046891143451808172308444615779684440698294448298200659758273932608992683501523787723276922103630660479302476878894868240443918401667031253226221005628934805257194443270267241802031333509314008677010340054532018132477692255422227954704779010572776914269447321217117974540109559716183333094500996907526661191757240804105098930303213727552559147906080563825918866618542973983466849047462023162331875847361061305145884246329271385614505890273708150377756441792774005822562195275131002448914278099955663689762368425966953073432211355848648932849891212469919700530340515897301150756342839790817422894634142776719602191034659782297483204413566159180185144909524216700176202493822811347412949014435878896596062183876730074815104047106266838252037792100856566830156778578992986392868353143361177826278382834536568252854671152158449659501502379502736773057460495090949977824423509555607037581882898493075875239776690160975409773593672601263628922940704880867434023947684982856806731772681147772760940536084540894124918878712587000579327081987194195414465291414037511573649681975374625445044862353647829572596329196311881711067773745333520061932115428922386815405148184570746158267131430433985189900403543333341510399352828288979006875236126952513454749740594177080704674659659115244605580008762335258871886921574571138841370305072865918932767054828604476362086834579610950465322914357689525795468963894589139445933352733763681380010135957558567307348539763524528310946569775577218601048248828799970974875445955451954106287568391473032988365200127884295516935037327819236378282903964832235592024384598571884215054586017226038678921517769217050984196035112640635448092257648387046172300296675936928957623543637701753739660099533441982290786374754030834036655871330470828827830237352583402819319498383334516952939021162737692270333501986233669915230442458221550466023303350589865872484337252383172894198733570670021520361068050295367243083560304047202288801385655684418731461671642405128531373928489939529117511918435684049173526330397196789359368345225804256948018371100953003185549361572098387005922122559693828996026938960902688933534098068589420107550218020810955707379912749429760718994421692355451185572099274239095086231278677087075065467984369327507082076817782605243966295060392488535727633650338618010844692336747072945439371732587351647641972067769360369750646371511829101053075606881344234036807088945836743939226902174162293156648495625798636588571749164345052204778326425666739117884556981671908877842109612284419780140073886009897086755597987235093466462569014298457398509885044908618537546072430538655612440623799246679803430389733519016340398601103224705832784086666304618159670335338850560766781957225071811023316464505166918676168223714795504818467079359187077334826910656927978905671002518625523428953055847280432871631303882852687206418661458225948262603686341890697365220883368462744818808152495317541468995353479242061738507090193718815197068897224586013604176771877842848929847003266027423825039585279506500739676509017387279711840932884922296363120484730116889187355921561763186748418692490720874290141608926303046060821949397966131359963578484425797224008794232067589848760666901557621945755293855945824493007510338762213744100355812476178046455889146740229179068745425986191109705960960249551352729846528984809465406374154747239330655035809831537639972666321024206370032693654094822073929000515633738606296205671375790300705416746540352304291168834826166113356781972168299131746708085128044674310935183014232885385107487105443274084053786842564127387652797091392632208178658597260751875126588341213630934614115913518807939941450236409596457308349543886451073557038407386440722863900814896428103431414272360378422734158661955816686122639252061480282959355492479396032694068988300316057831426191773361387195222442248283768225422934178104855239724264547813442097629292826913750331536463519883954927542780343502709716091662233314179367597367397826368948713868085871576907927095103883478329761201800267246630493504198258415418561692300430030274704768310940009764571167874270667977516210886570984034905995391036903412206411060892888797994055154013218251758314657134068182795610366295013152948212371129840429631372927736112358286376372231198730451671561375127587337670914630353223523535886462104297405735416874073491754032746329038888840770418251258516648229236576940525550758265466357800222900962136661340328895975358291719340266615824927793296428714105715331548202983124799253808777977348983375519216105519247095836308348379583779753011422075483235478293915389651870434916527463416108850516491055741248309472415779429759773259887482801469961584995775763553534093511642396265010512940081758886661942099326796761410037709467738887840478645538322418763620434049426333538284994056664868498363051568228823142137832228231484458216119692581579258712780491555350429964795008138190804643887424167501683216479979047718102743651367364687282649506819181974826151250566497904429906248599160337306729698082012473492925518609811457559649534256139940884133192320092195461574984134924689898981364938682808060653513767297114106538048604007801475952573717555723718811653276287107040482852930074652549809982990030209722866405937736311855626539023111450828343257257150308394432194999505427839305756593069121632695875708278469557603390597771426856363882112981411592542777116504875702862547751549881903898039033301702511848137903572189470070246247888321444387743129279869646211305535342882200099742858929803888630967619022921277396274778869943296590813179490943726014961113181848725750766860325499166683173292350383004622411406582482466050485175519603539441252880463616814983858930918547320077949857016358998185247092128616948320638644767347300644217574332678170445884146758868604000049931899654503757160272519514401929165436800172030832114467628751070159601198854360857414205927968911320435947846627228329697634430784247640703243769559941795935196864555322795842604675312997073519404101113301404644044477598769383604250400775917518519433115755327991529540976168489823340077332437407858437312964958312356200177527368548882149121954311794385863567769184353913622484948989437375002415298852533806397594019773459715889226152002563020504496953659425345237751903438274114441655888772176104294514913273323587087372487455518475568011972609351591163598535149078691450568566215871349967289886164796491144736525673256721808354451427650006015890700772763882650701590806091723004042859572121249038496698854544957773632673795337189655343298267269432166220547375880324214560281926463555801465902636154874158734593389327523974857724394932511793891705389419703662430317606748474403429873885442161917804297627648815820096327192944243951991928973730299135836052259567082629044780844335629601569017876247647052209804071391425713292786026934755161529216717192036599651598416666726645678436851684204092210761799108205012420953134699484416229192904320988732515308975415647333025865628914775658810367150963191479282388596865218020032836686417987778636338026936153833907439791811474812890290088559032471223458199802789137342537300631001745664176652974945976913772144904197443882665355447975266048762321387828273724710778140703519251465656341731930413803097900929405239655774622431683615291046492317839682767372223909955835647132813421156691788556018967832479971079831195134447162249549081538227722449582577135831994572782021925453823784494361099450320510526864711488737339879805873879533680392368587299768381644365353601249904875084012004348662731738998666062206585618922545673915745320211719872561335653834203805286953667855025218998381114960969245350873964612994489395312614996694560079292382596344279043183579253356808779174939174776867517297787104060212998338204909189699838061160483735460444920256840700899734000252445947880605250148414674849006290897878109662712997201723776721746408841963192454512190582934406092708669549122578429854677097828732688525255117364664741341552569334266644313608133396344177985915797936724333499252001578735072123583722829267937216955708605800460754736183615673098869498417284444653469458151288774430351833930044029181856465667641385147853709995187495809131108999681643748833909929828240746181142339058249168481488907834490108483696791494213183351366975650715230972167342717906406166588278957513382642473660786622222864992616370063489166923979621397500804718490255746701120024028577044749841065890823203420272693976475951235752652054575952593890904091758703241307385395788446000104536409348697087067239595263738763986647885469982890205797829591832299272333240891493476937240039681190271338489926886001979341671656880430202360526430124549910444763144966787636009739450947553078141774053539226048299700683177412996643861566557222139346081920350302187341630723149951451978412328601188350704914591632542656028244790179652989132012041709344046154906584999124781789384669171355763078780055668749395820936409383618963596682898023156043144130878515868558949787196162561723623711394902585027119438121022513774824159962659624656751324648593690730779739037269008815929482830433700616271314909409831673573576632451724125405122083193116436616331584690290148126307553472044696158621379317192813217477321619469465948436504640681615319700815387019845246614573513320501087967893727525005399702357549674020970526152338809121805106439824699397473606725889550863741131169694104023413197209183935785231118926855847773644937122646717928070704690800278831679853924595196800349907035829943158620414003777301835088246769057941277594082507076469987475973515475704877715642831917031692210678623188611190912313123843927438759393240911000486633833693483951274068238844348336062118650318078084342674723535196766569923426344240679574320727495728764938425335959702743419290894781192361980606842532945070704733780499507716165818669497216294855513925530464287430098302308427628586164338840648303647659617644120484583750312764046455976527463305510254622449968014583241356719346621073602083311015212299305839938334294031131239912358551169155138000595748901500875251959607971652732208443252254464951087516894988485862254000512721304708715958331752378043839704643575625128029327832662103345843543767063693571679021306509509845992001166423640642520438523144211338995453490059173059736507796290939049900976160605710517614444453498416444263432214794767314568030733010048645669587201196530720589183350758165234977176303260560407389594405465377835924147612438870257396417275161911411436780681325907491034750277722883037860133812820416808792313110952545364703845523174517277170719887974068968276393794912523770989294141648999725496691668341175940851598345332460247359840978168600995116894919215765298271591494779400099404693094636641013940887466354140166743217914429199541792258123387199317104456069823390454800215817854452863300070912305993122077058630341661590416169111673718731766949103530601855901767351729618693592691749554710360024238399854007673911407670408689984202088489975396958460465373678883029013523331218447281787262954378195644420648942397081083473872300396374434029587161409772020605406806752829946975356365888168060764116145364905937028760262989613233038401612193142181858165042356472447960840974580908116982234946096583682305804386937677974064108834529503128654465771317468431175074422676626513385364860324546612153051075868233216998156658042905982995569794508349950678033621926385177594234389348959249966135534628798919660723302484636270483712666227821377969598804015020641318765981825752002639676526878968740153480549175407600933569276852007411882974678045616672022628237975121224529995079481345217784331529929217451803501299278171353438643285398846767235805291585502669418902387756702797140647887554799726722756553648988556558847499815961620273869870281719236736766405966972861010165963396958780306215277152810897619646882351538882117813205171702585693982418686722497667603329729300646564641024843400079117188807415233284492996994611170137953815561213262168101639867098053801753709134901206350413751818208400202033871031057797272805370030840802387977796095936254573381973063733586809935995020092836332817776839349533843446216113293213616265284577250105862834634212362034983219655481385629705202549770099198643813957474768873921382301319710517884991092535244273752685310113369404320545286250069431895015587427876589582488864221042542232762220145711348335239109714491711412466728119054701899643826939074311403783617229929477970609591719661571776012320363388785445595182936424715400228699721162541021437899565017058348613791533084116894915981683286294046563256737982997719066389528644011986982478338043575789880923966607348868496062073321118804048964744243769564582715617450902719234548506950540975234833511200644403979862553342370371341363106749930535601360905017911236247352200269058691950584806644519968734159703351269535034481511120955909977903928644103088452528409469024122050917957310495608529190225315496902081458993033183190560257078245815391736026803868935571620700012805971065557763098357566500199189875726801393283607199903956943894683275846494947767680565000819820531756207147508897321595733441058419396664025277946877468420691000581731106968962529187558820665743248494972075104174704654560987582323096943707491876983134131673414675136865964745044267528440282078727835284301090843928734637058295057847587400403720437650767161751220840279653194082790167965753739392014209902412811737002519382400403289633639302625727248879201791560117946891439552711690278576588567291449234425603083355113919607330314026831074944043760347689921440612720426018169913060719801349387900651090040150618539657786603428367675262505231081346725928765064322522217676670734386864355152303086198365533203188873487161682924120366357503536659210482127560238990039662615196436554014994797814170093700750716791872981867130187730070098306844628343557707655980165808135196094071261976996038338468719467911843101284905276292051458870651614092314821719864923584432157069988254506983186684462435302569530890761641454708428268798782929366719250093175037253797927597523115396868894408630853104865952060818003654485678375949177197637829507495109519731861525608608235937422591227386868805637569154457147100388986651654246982575106780425160656608672565626776750658888880246887712236804103040911310478433718108556386699257998682077999932056989023570036780112932478967816686209948313543318539309807949149145862792535153432678852109869032469959915064421207272276880349922368960532787629462117949812273556111379967364498874258575289426964041863294655246499366480275344350781292880947559875383016762272350757998083768764016982640742067472579733893370638175701225633586338011277114355231226593734993946367574091894850354551093064693320370154177279498554658167849470830923992944539312836894989783482148968171393611311970706579432640863617164207491727082676502942946189993304779835925175309009764359751816785108217447532140714904841977302759779260853516340109363433782004947707636583206705276474236977693245330064834962921884353345531074117485402045306991622955727633758077717767229019046310368788819717360872168617766436815557867643761423249192722101511027376229197957269541005933097715318843005298746189399463233474975582008970773826567962025928190866370614079038891786564230361579826570632060465044788012657796481977262232799633236157516503190421169225374411947635315297818668986826911902384152281341401561422508909838091578881404798305976749720577597688862261074279592753166035691465486541821470727039099773039278718154024581094104129843063962622515697235035160571126004791766341883606095584669531666132724522147962176413364015922097017757411332674389445318932905264863641278989540019521379263980049866721688343084948244153468600553256114429585515447061579447442303563626937516471398398767230117824721852277290942472776331891554483602950995042272624254355251207483694149748296113394440113865355855073786458734249260945331064337762236296854531269035518855206123983903813720423966106345428993674973825645446652587606175575285942245594023104165353467261094155399469944027579545625226944910564623388442333670223913934263546668200144495928749171670053237117495645823495066711394319495060664346443207068623255926701550970083597521351262515869729295774893513223804449593039691080533610156353762026137785733195801876584072803808325714703841727182495750501880606593072141109818173685833537910041529696084365461632522231112712900087210772406804285876283873631387759189911164488509834716903653448650279345801943310303428051228269822411246261435501130382542508269363018273902861023627259243104043824836534475112427003386470453828498977528192728670673642532527287322148445322851946136449068666923466306595467667421280154353808044643424592846559750284535154731127868611019482685847739653286637814636246171256681593062078787806441166111995665864800388326150109104789339485192747016642814758191065674400777762563467897032853546527530062780359160120351647286274336804493138267497777493329839281034986711775242464367304434352869593582436465629069108234925041073357710012509833988581716232331069436512800619550978397336169129881540126933574138986808325353952662333443306181063079348031557654862960761878951827201936967213932691436444671056375648183495349172239140901079766192063104645604327181463998421286869918922191610044996264422201505473606784339215613945242697045299033577871108305277825278022887087020777463070620380688820353782002486722085106802015587279390142362207136180456950332128570494604327721787792476881486076788275530041009889092733032641380944763536628635363871017464110225738224331640979349552598268764422805766022432973064642911588752263586803348589550063813327035231250739535713120375171715230509788759717703042184102435697149300785551939552263659910207308103501006342970873163477722298225582346260784705710371850138922625853862309179132963406163168949832337499100939031285167437542363172173748785646213384556553452580133917216262492351013513717981429623054189791372190144506241290686523474873294152780523257145669642854451180971221820719682247207963890061845054371279655235567593392411971807078097264648588910891478939236090173763226060577743984503886350349663527893885404589029581891141400248748378023377618139797752274374454126590845235959236619073636941521701098489369687607068274874517954416863611101784113515514787152279472081241308557641753636234620904240017537541857866550362929671501712988306500950291758164793985176041418928118368493794130097257518316072303343167972926182641984724209095160257454700790664039880958206011233460854676648446044188082433809661785322099336053874162517265409674913104528463339018631455742610076465827414828067609903620200691906510348396592203101602864587962450968978332000635851927691966010422888528704581104951863596681148047993342636037882690345549588049084901977090769898537969501609982228185983623421338728651134449891983189376395188101118951503053616381369851021122427403918582185904707613817861708931995638334937503392000124240787065632631884475562309415713057934696864000563907172779898115970923382155187360950093329360177581441657558116245368368260090041508687409638907581841363741288582136995152822327037103976969719405954728484505441641846958611961574607564068419575644909065296808894612377581859476224311623847517863432040664025527873074819339405469566432241203817010827417985691950795055399635284944309572360856159210838245649349822090005292673509415538803308231214666145996424520451138887800394834791062337878997965901162156363299749983109954444550251920446349617011146227310353381397570547993661068130198775288408497967953264441819627523719089658151854796910823053579959030029025861230980744664710909706869659668488677312261966121683486157346888911786766795965784028002467013875190304718180641670341024077481350378500930555290624345544758665927818127282711733564017471981879006887899985996517708456467738597517380539355937212976523500351992903799713310922384685694120308519276999601574929799424810106477497323105295062503566167784758647983355615336118523028376376937030470625574534256981105240326603739024165178830834670083637213384796410812951195288898199785465886042144663840678300428337935351295571686340455301297117935670789788777841928131151451022956040109866524159530614801171959576108943183702055076848441655030753331421432365926655351308364580684465816240604589640251508322045422839118301080274632411927143168658407406236329583417647082663818930249560774877011095815478908052072662127393502073440562846178859132389717292925938066728917800308422225181966669808805175987924367686112151453634365865843663888296971747050826493216414540864393679346829902713589165971064955775367609353428310390308576369228110905279276399497148136484405390766374898572606636208323562227811186273680356404454490941500503884825302749360138697244872650688066641617900446452870933823756279580436953256357480065257127335096627330585163185295559521349271541630112968231128946493138569773763915383089823575844618391726352465576061329091692976579829168189149285394566267563634099835322168944728035759078438563329373326323082080536994223306735536755004040565986786184775408434572684949457222018890499821867730261480748137225716436070433167446851387883045419693739937896209069921686144217319560380653355307498274595981432391644705479145869988785320562058532891150417074820871778866952323779252402591754523189959613817654482857441136074823978031911336648287500979996558639176472995260860611128983367070146648695811929799704544329019166057328419954690279232566592781894484097276770695377056875571248470895060750638930722491427679398974159137901808707148461921848227097899872325816810814791110216536370649223547830578218833491744181791497713599621224200232259865834126687370650355398056887408110206705463081433522320846359454157329439849599038002963491233711033820713130326418505852128346373690893412689726227712358324494730062504696626937019732287294672167139368771394503779856204623947119828720302022690531066693340999147234679578499374727545915851934857424570643488881378696324280876713690221317449089289987452859302437883467415196621753883349207253211488206791973725722301889693907059300698813914799220447529819463058411372205498111119841661835552494069299603672834708947108954186960251344759144648218444067404554038934438415849995918455716496957805817727603005443481869985044344992724836389863842650063614054294247827524104608721499253670975108832787943385861627772354497283146737199036712149783007024517238917979561166483899412143599429285696657127986710658304150360567663742667959538603946763627842201128299152913995313831287186740311518016992531552249540265769489857433595122445149420222767699068500905274123341558555721651816412968675816983392945881368153875571791719379462701327509301931096883168898938096204934226971470671724038486165428792041388494888003467785769789833398018312097131905554067208539305196606310118081685453347048735797241653073812872955853259417080229965606899737143106023434490025402345982327451977051196828740544280434312116451656950554767460186203153697156657983899953403107488101307229063641356139150059712952720072348008360565036798188333779367297831527062119626441727223147968220642870159903199943184788753024142804995901372139509254280217543605819298456150667857734374600267680354061923411487825291273827398305508305453022875000955727727070743132048233824863555813518401648285330060660184710303862442160280057899179530225207791922955154294865651388236688077838949707855346120518851337909893351395547768772081627759053542848925069897838134824125698682099158386787639647288149356515732512323654231669464242148272136741342242706913131054551912149556330899042582550380213129651471187229383715118486479408716753164491501585126161664972699592365449538637103254511723129273237380460495434338001557205189570825402383987755719969721916152224219297055329880163114222975492735685991173639515870248973517827704873838751359596362166417845395443630835723245813447581061933710737527440531069957252311675843561228609009260061033383153188422212529549507038087813176791603245573764223100533475992365564261911077344446689819674906112383185601109652854391589469190510721420619851801383133843028888164507633482261879888462882228408807654803846106626367659083138982441087944252483799671699898647804137607767200296856742011545188031767371110236521066172979263294107888242791201375471457574644638172536954176931901724086001280456981988175750383707007511201810851116591899456337322039443574792367837741154167561502099311323868292789131749123326448883647943602407713016218403983573846257707018456492029903342042417936748457788712332799094281063774014227062799062304361685726231644941755383221589318150304853468415815798830378764841033608652755839359882089592235267953458715471986186888331778727490061491979942818314249966317415119323126768713084669464939553996794440195221286416094291323274480400563248364826886526354669901274234846988929091434931550003850267282624969484481123538899417634396338132489727317717464625837192887311180762967533869707970533325882765808149945200059362227524191382823195929441275682813378822797332322347520349148279767033967261940071526638665704967100805746337639174437450621963252907097506465304414728867878271130974297347102458740044727365570576033413617943653825410127575547991512876659266858184360258288157800037470386795058675746578761783358819463708090247830996152791331258896465387122950703010124240733978604224108437484413857746762873135874160071847676833603207952772323164170619274262306417790326079642075968146172383786286730656144491500560310702048835380306568346335269553840945517394849327568453332555849692050760313889552960692210012803157689501718055290147978047359688559613775580524139767992334652053221675480448090886791917951229560675770504349604037689008220626804802443994399188970222911260161483669127641922615295380770511082049458904048709414741459853811297684078005779200335509667307810556852530115728840820143835884685389034489740252212238223495650071712480347000615642632061652562378948695437099539215801221563274979412790748910443037807156381029048515252052254093178693788483598842299432408171077725778013521637757095858381969922686672459546125000461325332589565273229679625488210584645969619242649611749301808320542459137440074396610728358384690367443239046646274290821399378356123768003623128486175056401648941561463177034275021451184067745085550171207718008887024278386383050552923642919237073300392230588805316831030925309244119352066852519270892601541445000388060767989041359088169414309170479993763227307396236183135769968871930075146166590157166073720128171677278302532123355342603214674055103551741925184310131130800701473879003367778069815332941947930274750433897535262286631138509959782673539130599106037050414149213510739340175767474412304893754618238998626145983903211800684447255449876207779570545264556190699197467183898138600241103268091317569168115980369581337820551453279801231496263806890013135915078800776064006611532092667786521118476877715435287873574984591984935477510780936002494605649571361507270223764924715838166359306581509184015150991007786894487122236922486595817371687557572962486488861097360307540127645988334962171219685588952436665038886467366142573089802491391809089718496313890471504874972308310651101126348677823837151651115549810470949221250985274704771904957608187592421953723378619246599263295373534824755139887229553532429082196063509557308425076871292910272824018893114194672159422932283910961946951442519329062082190214530415252031013986105452736695653303390176382158389692089360587447637883565847328209285563577715163734962568922714204880614858342632321704027409309717760705910029501481350526164862638207297703885822120116724531713590657443538540293063289768725887674184844640862938712189840426929185970524683420149421097181541437824715836102968496750021731315625377950346879148909060428638967781254105695934253253141426274384504474381139230100879041983811511694846958694082774041493423028822691205849194367406907360471494384349354501390513746552096842846631142797927653176640345977533382508631521313423070711382169823793327372611573510874140845571476824042645812515588247018133474447468961978645905307370878862756103724348457122721321637363788260586565280344197681714166232273833317381175278975460795192319290391501613081646358324728014751429088086175094793896181768861419784275419499914070539330783850509708479852037720250907051756400733548539790562954691512454255814011735205429036608533055123041525131040401800676363306937628666763971647638580995847310223442374882919623295965649457514765148270734335470115630208485972048793314899101618427203864145197458893778638886197179202042720853740013086928448638799565352678175068036189974738514860997295140332941260913823224948568540311512167836936629603391688143163338890649266472019037602402468312361147117227224967269981502487997239838390095095482385875187291911006194961785317018185576412227868367073559647444371555820587031761537154556328091733896903536859413861726388490067914010891074377052267231676834434572821109496848969039491985652116301418783295445006508982438962232448386518657867396744963036701422287668593205517089228697917313078075297951804972331616837054824376330257272359170050199102235988891706657865540829117963699114865672964262321910606367587687543336071429697643784322708222297747357348141067089480325650944892600502960074596557263317077826367400802162024379947460989065687158019055820636024109220520320472115920563192456340006654820421698468906847942522011026898300511852258651849818653114692804590481391402101758844942613838000622098880775742275516156283322203091860366158846908474291863118274736057789542637603387652754443170058152842015959478638340936153672482081595443937877947871749924154417624560451275724159029886651712456372854368185548450180131946205263136914244899113472519139197647719246596615965464806988703482333624751234760827216195331633845105511048583966150403531203028557299953439163265265191490860598427750817644396355345849649915984893450613578961273067288278392386590310999993516419677116002177282101080827795338762092400956975526707883857682549341097013108387748104855390145947502752256669246714279392459938570905129756485174710083876955007246046835380136593095625012859664400747297703725584550985066141617555129837161531982397354037788322571764402648978055079570097987533375140800630068626667403894195532005171471230584452196100522011264791977098146953666262175760752246669413017056265608755006261434410385039244932057119095346262554585569045212674588032530394583651387638695319994074251826050502519270621414304799908768976745925434215328685420712022671678877096892779211172962377318177282705381817338679096911691117488603598678997487242408467314692078465226810329591609154773160128474473832373640814089726507937267227189637773895631834129457568297701490461192287843500599700095833784374765973933131613593359421693173292665726026386479289618775114857877811766872322297761402672471372082462677166193738727015766804063247111237959044195280905282274994690383840030167376574720696271138035900333860829110185804470450593795392317783383046733741860778422194727278359371475917062973439172425502438131106425860965536785152314094240967454650498737142814311964714980469430758373492205457727599875826153242882485892113272068093472529507151893584769481054854183812789079667136621434021886932779286859816429525411421849487782730706703921390099138678843768977853817855330190359492248366952553525593956683419034106474053924270164842299694325603114831744016054816391734940612478215725209431210913250677155786421368356681568385825122766214545533657770261078791041482598452101688815702358665932980140991788156683318508069166925664559486945760245386656036355013598850345675910928703976286331818241723473640251945213772612364000712185955971198305511104595193873867810297338035209310124291134789166236693689556535961246330043138094500101343604286708565718534698996718224697257627949785717255435398269440774125944539342332604093786668714155095912116690636379586963290299944556396545405783519868417233832186298270551890612065828706362626481194629821825604227306705001049589481574168546974750208009538212259316931986565325424188522172571713376132695216715392970255930664596172158619332010300438397631604111982431949113470871606840814131438398084763614368533617781029437175541521657206386440895177468992585486360295666623767324944987260370033364653898921968862434357161262461861437176376452080700687832550591119547206073583051192857931542301320855005564126808129251808077958305139209499229433514231392450047014598102102326476257042482665697478390984515626732923820676079984245623189050640342847526781682651233165440171719999887721860981263085584909268747798744828849417747777900899544054348920778231572624811161909599228609349942891404065240468055483215745518648814595374616445765059529545999908815548067937977481576023603198477476294784934617376894740856099323753803894754733362266346595481174971864406946046587496546786741501941763281787467534262550027274011227678860707868281552789592063212581127402290236356538205050882784593446595386074264945798217578263170223954504605627522782402617030969034033050346915132605843985402635468058862144345818986258257803765992490026271473196452940913475361798568495118364451063021004098442755578072350484985428755621933405608002533996540079952048076973838878868834115593850977101324805504296247090493228608346009083237832888426000773526716157007557187524420751125111039795042630312542768999940400732382330725994471212924539069946529383499385329893822107785959649600010240985213317780133883385964181998041839311345798626565614461834309782112103450584166313717211289997432663228319009706912379336060466550660776605732152988488020862494403611427083276730640144714612497444010080237131601759165129410200408375055031717390417759740502422674687612069550551339624887094544516756977322109648173876718652118090931969736125925181681989925378897751787116295216612547046674403541920609549058199012862674866462883415153564483628978166498745247327205798031628514548098021456848796816519702868584041575847433730333855203335284390684632186005730365321888244646183408016177227926283999709117834226245894838144178974934304035010694654970293778888181596189959350162575731185544314994138420717189990979892755388772051138353490336726692066964544658252734318244337568459254521667536091559650361350022270050693711475599983896125190038832950566048839334466846798309015820603759890460430551324318165712281685478909340856341140045750400273417883833521940130810449676302114289922245936135692372457274028395489388368275015757816461234373850650251580109406776535782617027629983734865907525980510247477107661771733677240462394855604918269824383936659007616642195256007591977172557467002683761730677610548113963676930714235479778558322548571812624089025617724263348971183243738209948824468274538148609337891196972247143432687463880738190593833237127627146343276467768183518431025503324006614773748185024945893497436069016728541526755110867940468517009656540425555726159457325535175112704867675282577551821652657240863298814959983462926223555385564591810125315673703585045782184548525646947731465501648823826339182171715968354765259407783664452660838301305232937063205636785800955023773225902053658857240659729028416330733848965453167621056843149227089971721420818963860235930333377661572298164897253767083033906484501146034876702123386074664118256187442022089826465929309746256878403269029847628056141099565656852692669139567092627885730588285905440104789103798655966406646318025343864861395984507491696812329730114589496287430592277337635922626801783596983593753677989804147799845082767204953371345639795866678228916490729573253599744766733634001456899550530918389390557771175823828378699160088730748304036093580815180036888184594279584529033369021256043962626674650091999419268536661376795838994355645775482878046408890819152046295404318447316382727818584285979392029045925006849234996310762717850272985882387019221252230128728600198424466726888594479466532333502638359018488603227830259548910557531914176528001292359590280243187402324634746885828240240333423843643885284001045036947073921328528277092924623944441526326553313855267656574017003713281533873888283872689701123082364072544468491200141963600770304821767330910255751082811034879187865871457790727692918111788121654409130282563123266221754984683220638371591141743422652600307903912843092620363401014309666407461896247120060009017397586472123275741067450657799343986800327079666978924533954846235975516827224900833944205535196352192102162236722146711444792499409700862669004848720533724933880656240741333146079687645974553453247025717210120755132968968787676031966367619032327937054620859960766939586615294751483185685359076883330472797648099222808886062449427014808467903587594342784157695792080512142070505470665820407006721207607013148669037169142656788729432532001580899838673966867489499792080883807626781116919500013197817292108161972926412136795503720911465153548834405721606373470345024806097017423063290148653038530508988496981584850426161721652614664123899450956587484828433930921837656169001570372874780391313133577699837087229189074623060956971513871614237242018572694106727711656565238447089383552631144663082443859998251832009087511538478545020848445500032012851683872458286684766396378483528483236456443425265103417372401793011204323875392084724194126015406232808341149050896024009703353992416799060065474539463754395731614993068506519963328443980763121842145361286557062152926424683465882089810334597125021474363191216689598514367775401003508597148863758807937556887688858607166268890131927777960883103162833977488716183198931567341017962622108394937494399050336131100384505433714377775356139144923231612452096426516204046908810061781596811492650545717852344920554976047801536712983998083268836512704795114050852651180726096747212998555492643758842000061878876777277105063058996586434319567229665207863775063289247901713978926819787807718897582088915411633861045603503074079872860051882264587271833967351924609365230499789976984556560744073359418868775329719081139607550687885820357216945239281777667566387586139211308254494952270104717937098323784337525261385052717529977577782317114762440947258340502382625045228221457868708872323632005531519372062853838803165268897370038306178047581442930877891655168721806601852460882498124958349913056763497351267222752675178349880549824833852181502362974651087450994770912772215132134566839806566725953946059794524778037932067685629985657185837412525254773138287801642447540900292532983668473929605653474459453314003153448545306402210388551969944951031526770959122959049191501526502450103436054481085837599609802783816562791288377760502608513950320325646361111337629461175579335816988001419177896476867375742159611257857511805379548614978385624920026271379247697568935399606751983185064825897846280596976192961606956631003489449091074293891705688343318507741949040649232858579917186173153110893440950011594305865263880980907238106079539895958131144591009336814868742452699466371560626362175578929080713149116593437926910208316415691682837787835395323166786748413655232682319835853891000345326057051214000254810952963013340377046369458613596217338901852880765567740500509995526693685659074933891196328769634870070526942069074978471374789075962830559958473787453759515073564307811890160314998306881379268957753376931091320809500581096610022900994725311837993827073035513168840282196211055573062344357776157764544162160649481816717959825180123838780083183144422942217008877105668801716927256498844928569825586034139842944425586484054446718567204215855905185534998001777423377436115150201191730608380563356481429575911410846470642639033909259683264334311723266185225183206093468026066799831807692712690645529762777343650777143629114044161128943513911771778272402512246579634413115248430299373004770939372146879859232131353384368816803494661965551686918621832933954918893716165210078868469803620602992170497406945141899265310799225799788230447503318056619663046227139852553798474503348019604899207182036656703095070193900657256103945287682533182406573394628737641948314103670024290865307056211764405018850953994183844563367899194975690943218315784512188065488146029802309227281189533979716605211374696082076973854860221490805433021541668444936152368366764297374620303704641027852221789947799351597440620232750783296007227705050260799159054617492366153364262684592968012608640575187386314450197955306058168749335464644207773872602419064091339305253529682377403457853198353315802304535222254733748920264468167705712370223098473008680510091266807082176615674461931869304295117040165409158041276276256533867520828917220577672413369248169273468699818374441709342470200153069480479400247519571165978070257509064105155609806879927907398931274594870038635887332009685322842260121710207023079159266130629462908025133438067832340404668554604578957485100633426501685517798255687505936638883681109073876549991266426912164492678792729262973168737447643896030406745889148423102008933355470891409974381492317645899412493078311892761344868560292962357099826230313651923365166705593986610744920669928155646800418502435601244523663684296460791390193431754191765101629435670242202308174701698498291829710757339120979991517247363259076212966611113168335690007790808222032887635278895573313480440501980973893119072903916314631040655142494527978444709740377634775675016131859975900745686159898086950737678292139142391249125042931678646500456138056179050268208246463172935542507483673721536067000325896846164946543844112874407962504760712057134527814305785096527945240835162622227038645034801609315004858030352515944453544611343116224303710217181413624193900922024809248189556439225515925177350572038159278158519355098941140903416862467667368713412083196412979184616342542148427356249230312533395058364258459944433571939875493524619957504820897301705439813063059871188186830777654212523010661202176099124865297743696112279093268689535704328451425704203002250506023481265935035835717936454274037927809801594155004510728400775872861390471837819354503328226511618137404975180908355619511771073696795657084714247834492116643831620993402680601103884972548435632276331917855627396672292928813954353250763963047391821276352357046884341025905193657598451860022207729966173108655333345913681457522771855802450628124907098008578589973433058355663115597466677369981032150571441223056083162013518330410039342740252883577829136672372383801958233645143183530231960218102202333867954602011848227861102755456010196274423592880369609304160517077460609711733658873379343272917181769664210825223645687020772909937909851604317738666530845586575671692882170570107921799400550878616183171154206959230912665306341916218154331548506433610295630254037264112224351033330388830151099609867089275685405620987926375418166072163006177610816979674284014580057969357576982140128426722971819069818053549847008229716216778850384801869155397654793950222086633480046532752746261169325052270509703012592305549115120809608357483443141501111517061555841521109256934477535318775781461421458603143698439158356875424566522263835604430680270209065659209081562791103692137234962733043570413048675542315610217920147253752321316838587611321402865364419012848949329456929730663998047141638263098230041949460848365740265237182710361230235605202642944517372445542285853665509174302643615021221716312590631036244731982381263112440441196778526449428715172499851454018498656083869002709583342104231283580605028501225145764330081428336802057205986791084831465293532316745208643655996214393838922871395970106866242956326567781980443871021278022408924317580512282691021422041159951035320390716699110536616624450611210377870518271219679319477086086518489980427336585086774673221994776870299556320252582090031584913374761289155991128127258987631881044314993853706646084718414706178234963408573202676081743884364710862166170291927079912383877432591586628463228373902820852294970007508702122390311046136737504615679701832231122557900742383365676038239842969223512623327525912184922767008114829445754977805697342181113223474974658334441412404076888275177288393737988830472925582709268514346777166800455662068055007548837667581139094835329990235031939450261179647684558498828331802726457439789481382280121354540569779248174798737042092885196480825387146503494262925747200582168000889345992669655254521565426814103061341226184135695603607597050213071922309262474921897248110661735723928185133278091668923203284229183445079150663807888854446743095045989484931529072899932673549152567711332634189167897978234009954363196173783297481738662311017517102781173273877829240990132222957045808473239417997405824013890947597489770224991718377563356628925612056580688505690118713203438681373215085820892997405802267356235492644498843284675334389881756283489032265430175840740325441041317978571656700517920358456550608866250280142566223568449616541359475205501023918576909238925080927272452785075883178426037694971920941646700233950715566900487977506533854704669175267212376013950653904382197023870929003307457198954584295615966916076190712822368306106560239620244115738952825113032614139667518353890492920303182378276095032752955138403144925821237526293564059521710325787292460324804055337251954028219929271370187638531408374596014791886629642237112924677562767229616478855509489117530939057472127842000017723068468355746216406883537370625722354074064900054283087664312293112930790766475505067593468767905061606353158518827316282397207101241568047317252339072539379354440395572920436712698774951413119425920324247160682484700629447170164413831130145537140780191720369042304581641627059678650565661148001852382485367040348181076743530412649979934540927502048660988226157395431296020614562985135136565564787006006337402476739863219768780894103252020893872782018467374039045844942000838431606474339040801279444077675061660052918409469859929217801918831115543700498133964085875280627834499495217795793620572664985719886496732597042481769377323137490834008288718287883078759043527554929420041713727193852147217410664946902200324440620685252528310983384965385364991190257663951452538210448473815752692890365101416389289171647224872293764569773348905617414465442565871801799458833999609073090961996754019872512566636503042588669532655013075273460412997988494345958415813371696476561265914733865590050671722729779950386597539239916981732873349007672506545688094998641090548095190512174474721276959726785754056632188618843824444998157861750487543629414526056377055664887651063773371373495843638749555587679497003532362087175413593390514556744421858196175368647267600891033187624694459377117920240953723725936374788988389658638164591382503410897562973688430628217606488087914273682662260511230089105687434574784054517824046613427756267748306709691798706295524271554571997716732587001924009122125524873768257587819338088728215483986648103228342500782361938090581684567516766973506411724213072141989722915362297969835765825033243581395988399429580006773580335924381269933548772394924436614977784150333975341280051471801325558135546113050286522125396251280771039238243335510895531516901408820253943021493440654948682637712815523018978971836778719295913392300151034587573451135270415344296907402354798119746866296613660543970252180817733578074039784428603560921934670040843412892699258426167130077916994998666341270606212764195479479708232640338344643216061627170169143254996663233728754568954546825081892509060155036561008311716620807005279957614290497960716762789288911256262365690229006451918506100389823975900855324348106305690556141758212229524671293518332839082991696139810904916180776743198188594104622377362035272067411520403368301856317039163896228121909368031914663052750859928475467648694051720721025112537382171625760335154822664825141428565335127047453450413560897734971265791174112209066261985403844806552321632641150929724849733059061642038390896287795118162988105742828569580477554894803249590605354765601874621907528019107368411742689756861984533516119058894648236107137120337016783205987917465140787193501438124160495047143342929288809799593212321812025765428303566115371347305921901955928574799953187456491770137204034600547614760246289822392782185109388705363997867709144184079516030514488527053948231582791824695357858044842085644491453189923873533711047380025156164746336226588162798542496619998761704849275044523774176428868735618330082701887455554166616326081060425138775964924193909881196789479847639775970664048370734593795273806791080948724893899538786176978148132695346260036569792411607582394432350965662261005386759564386006594675038736239418422473823308184866634035214247993446856042601761248821917614741594883639097359846327876894042577437650988218921771112917857955349470747349064055723371755877614502726637586515675358148654684544972777300443620567351935668956247979447479414541226829333409502527395096369566418345526328629400044701583950325993535048192479343056248699355065731956913255470954528853278911610044426319961330500618745894510451823533263072734583139189434652179119171492853741595423683465283972336621642299610523064309711931398763455798116516502808843156453530939615901005103142825500324302622331287234075690976454602646917652946022799021015760663576731767686910379906584437339974040818289787935369692705357390916131669022460265556659802227359967902694784227889511744549499296568343009841973400303933718795823484878836646570075549732214272325691930266696946139335903826253413902762517079713327718908992223141687753908165660320426906083599011981742925975226868018159766568296546505026396929212675068430879657149268377116410866778730119693029752824924724073759498675983465403189880950954571520550142622661695523045090433653476738640092273213734722236815469114259527398921648069205259690867619894311295544480378444328047871208601431911949247811958290720843743268215452187386173394216091497850632454115464887861491667596291589179590929998054258289828893338620091385465685709850937637240033848015667189170100526652513826203937664909034438843193546596878672123880181640151955969261080641360009625314816686890621470692445781023924039355587398804899460204973886627777524331240651851668473988409802025768730195165074502949692052943617907975655331161653001688601145283256278910903214222170203665903060045492486733043215580003503837620875681506523263354072850841748616434171353723530391938009993360260093084327891199769065282503215930076484109002467733297494923618050452370529276078434145418479930509832112335420300767536700540887868522233117261331337605702185724340743220946254601132981709009443370927675933905137082274479459148040089637683002112201789107033247558748116325654828763316018848347678944744731216213223124554954847501271806606560575562093017170757292514432059766845317612004990162860917549790376883422281802822141640783277060613086104104093534905337924159583299786367615706140228234984690690913553064022297717424776072448787436079460618382840889367261915544870714606513271863116762826519344312638091918785314619935280162715595174502123517880003821534829323275708271988320479553781195777971743991550610079320356082238931582281913959953925780198119999571651185151915713989590181049199044472908368297968622084526698452827569579702910234764924241817387097070356490562230192389287990839543219950034194608721351368854499356098380999606270522357240825337044598707604668708064094894703147294403684315405302268045974055662420533838854227440180262544692995039695023116614593366330307117757597540296678797694008274327885709356947581178669548565776471877741928791645003655543273659754785096595086006634655461895359386692658566143554931340314377415833212522323876809331116016328772459305134922465319199497624543262703912877232535998368712842360076119764284534132552678805465176378778465426721255066130447782259584101154927699817829875095839807816658950594119452160644822643235284805123008373331907919304167246723446742653081632310397924227467125489961838652926873304504442796620897083244928751444384679684933924233710948208342309853280290627363257065192023319970337011793015020189303654720148855676092420421825536155018359885282360558542607268774339728957174021228307712579538683108900005071708875883785302070155632730848538624658152626170234502593258876299005661255034185913064749835458762489805650361811421949760213319874096397404216474847253025889982492484492104644617538464649622011755998601886310430962931939570322285289645234176922479591677105282397626433796045274978656402399032992460717296896665115775398226208615290219199293422138676641854267380219394422537829784808971629186889911044023060697312720581998313330834224156548234521605228498488846495104891096863400239221975415791697157169533188587975361150207894375169912242997215587895822408209300751679478511187039859830487489938266694394300283453805848091659097945917901429060513407747266070893360658000933584132410545420973935283942414607265600172811453078465391958827789797173007399992210107732136025088785730119427000334072056760573718780809131021553698953772057534979179456736347610223810614545327215978708116218044843917774834251000640448264311265997393455728983535447360281240348342659340121482609712069342593430497733430191262107682684920757614995970010417448402441184454362105075363273178915447005374432479077760221612355319143224442100417245260228008589734613988408599446327864471127026989651309604560177193389756800669400285931824032203498449035882868947899594975260672893069679452997135573074688909992480696912805763167241446308890290035034314305741256166692779093350236706576981790682998396201960479868880027999687947422476455707353601631666487573280785320068523553662599299879111090153474856690099175028886609165366879632867862449259731816415347641004912538768627069249031178005432975061509520920116408236121177986511088770880345161182415533534621848072402740196619396392562666780115989436380053157298169701565514685071508154504415225246949572334018138916076593138998615715587261118827535783558315350253166662113892169510106148344988358093847378460486398657472829259394248541123060401785946441431537997975176617652503168813702446170586275618509698954310361314518661663944860413143366300115921652827781339198716508316699819358753801725238754273439711632091269787617558741415572363358068208246021217371769533355554672413618105463957936705361175382051758175218576751065219597107593806077047521583272129282464345575592233691065725191466982291511132116203050248944441067568673425731211085076606048949175097697442921032788916280776879956364405493123476484962148475771310202697089385961308007263500496114011697467602372213866223684432638518414932042048955699809330787250075078490783061981081081546001063787993379909214305653552788590657150214332971541770588416454070049761918534345084142452419414780520083788841573905608222211598131244163113783048316480605607203939181143738582943327041599011958223119852646664771150516482359546581561826887828138818994426309309524156643970684885078342630331424644507984190557967601497236642364010363529766372073416833833051496914306444433302526336363488351047914953012701197802571701831068719614080512119814658122893874587748654011810192944142756881840502401769100467514201813371550333611067861815201507939167828494753159409770743679586039015622366702526576935599298080942594667171705841800013576628822520093823527424638930577140525820994245791423188740995818561955588504233129934381832685714304694585873702987394947748012115524333814862502433246719024145617768606108401799182357261208870769555929077209604653201552851517842003973130972575680699950509764558971697464511798601686022586061108269301631282230578584944262714639215966753032702098007377589461829105651599911304385215974365336523971671151363677725202218664811656683980553562050154979760758172013041986294101681329310319449887841938939162959199630435347366247610921501936441802825327640231933435224123096968251889485883828984600000092199920926958084500201995123430181167076657527057806026731495672566287084267701748299298135598881683026379709441298957911905900360336774271555902305124969519348905335725310296044568290117204249410938452425033588140525591958514418368977706485000442000804547382453631357885438108762164096967378964363144168267283618434807882402827311488059898167470204013581843419872105183897596955490098551529519071185414719425935271252616801451206505345842377129811001713033940419417962403999287921168283163527710798724249603194666763486982313524814108491878557904625679824156432963774561373152057716121197439008069464697747961001038298864435260362952063640209650433443623069335733861099327122338484558844736948747741530515781614365528366162445405324683233124589738613450047261763400212003089024784110517540171400396124384753264629156399975551212023956089630329840405625926443467349167764965739356505987138015701134085419975420353325730789390019507670463147338951028104993679544669736140500817591100882081254243583466884914112347894173787429716456174129743166125860706085035270516435809999279273950424696791809477722451744089841259828865948787998057933493286966525732450495275174530908245438292409080216353770556907000597867635875243414264324098988057612348076186676663271954192461176854513497564305471572891781947993222202336313568632141313092853351538384664474180999858861392887789631770892321902096020503468547270462439219971564594703588146644421711451226103578415237558135105837345150971474002268137092584886658620826721478057421925653225964165186455231370302000577413672092722348697721468661633566643645599427090480629988065231204853523409454805360242532852119960752195435785210722692331774234357090582061685384392183016374060060859483492186943675627086288798802868418678019112153024823648155339077833445254139800310932785253600915435787657541628951956365850514954162094567663334648308009292342086300464273127131566515010633480772663615039503653156082632557941734659620728342755630216901420967646162291388107462299293932860659806832546461622781559835793439549104530295699426202445824549780281427551884733857145726322807091819652696401400222306667465403051922722888542268374253899259062527430897097269742301024117582377465601036014374803795171091325848873054722215778843189595665957131734486922168293027463074546668605147198101065848399499766218256483917112591624104729165759167915459212759644408026816327775215949417403897849163792293344565774875065702004787364551032314244827059518873367164450786378953763964909064831548034239020174966338251371725075879181651899161332343679081468211543285186550106146583584835760869969422168447075453655930360944789875153537297695386947602459376743434072246464999376938919483854576621276546197453805146916100973248434218302647417920209886529833868569507545915247292884778262381829723632772316308571906175098895275088912688723800918183380642904372756865387892885643183980538439604158846497809433016793850378707139233582832209250419828437365332802419070150668561097639319634804909076022082476594000167296907289552196016496517887556589450660534904934956744086873613852948007340672656085443019956016954462608805938465512116425166543523345830851495521663795282373878332820427664687178815463757315001067259394157195491391526777336528776625116020633588752590208706717496811993269593762713795143574706009632840726956712948498035639901672596040400982700983754561971787073306161053959313673999923921646850616617719390214637351672337255993632974170150200784206686209339120616505167580450218010091443273496221244314552989377190147532970998557619738390264802791364145983163167783885668593650082868426340868539841392445570367235422665670733418184022283544585346532277656193528192873140386378713951875129931388450514917432825146975412848837727555645374021138210276480304481715056371843626361065684741748301727933375087622302930632319629745265531996636491684907081845678093790071456097283614170598604389911468727753969897126496431717587435369532397932165781307613436906276165267055264876212156775443498363740071795401302089104670439718510402732295859477891140403393423735960844978696087095213614478600501077190834291881369349584657766736211273789147266809469349883031658179996917890156266882691583469170248121353887400628882510420446528427696866165938378956064556209793866697457054621949994477597550877142212048353919069302955315207005211101268996355280540586395195734245111026497354854938852446446246006887564868912971918076387800840475578839953792288662048150292445269446750297318900404478239124947701700337510110460520204484552274045801006460665114480327869240385774061859306303185045567902052331895478508983250504726733891722370776507142194304068886659534201352102582014129973599515379988886337856913450799871722533395818739332699706189632918960029912769087327011887151016658496841078907200096285782324188792320221583458717239968844929817167941877411979251358280238296925695586677160725643191560695820916882226519398907835211691250681259310488544744601342125266924525434000597059208755537935455470864186325942458765186336131546536174367325277923701916770120088938221391470960177730759255496546110430618621974938670777986339952480124073425009088866184138689261741905134737662006308991519225168988092839699534704649019766224530538841518750040295306711457525678138241692499456816442849488546644285662360528792447276287298810400095675450102606754137856769207134636246514223098236695333037309481605825415874473215205855058456251784845552051523274338725137603605216378640693185666963562350611504613150676932249530927636476481638657918437204920697903622162029119243191983404524492834501020656635510565774939093327092218518856249652410111095146261955403497398546482598699820930082366775001975917403400564355740654367321649883607517657875051423907734517233325949780629522387647113860134112242219189158102822905930476823065103802592367103840329448714859323595905323681376572130793449925193281818725214561745962379514460958744977703284144963841006990984502993680622740052585615451995405479581623291241684254069781741706666006267900922257056994753684029697168189769463206642102334492464208069870836235205313533748584410630831887299647234129666910215369107387603140303535032966012928189474051750564801958393486988315715262165122567839713908017550771790261988011535545559419348423565752650436907638573458427111697043875955923529310418104230486184882568729572844232914494423933486419181718982650440797552750498219219526612390262573161507048630046999803767787049548428482809871666883709742573634426577502401035465928028953460500953838141482684680040985013718427997688287462783977735008341872141041715116291721484024759681357411600567412051480333615817628799856287108701928656601126117398622709895250003857650166093806538252307184903407102208100804118666564753221735590386525798157070240964487730891113150507307663405652854782701366397368790092298151443468973429262138351215132709472874393361232682487098532429123084961285203552776578287365619651801920373864998073315314229087859453420704723268394959605483794125504154148682010061476977860901813997159315086884334111557703806433206442641940397904729475089048497777963820294923039011458607641288703531123613439423967585160165843449672492102216096371356645190970474954809404205277959971118323799063135652447595782457590010400272790301802991562498674438166313840579240862684346147580897281173705919958709810431799766689931636388698117858520901967767009194504929030452567240681225364098860673959269389885988716899056489442001792615439425042478355925228209643436749968790262270076884251276457471002965135960119825750229144290022366617555198351539427361157022031560365476038966148573555990621934803677740083199538942884219322323421482496924697801111784776844285324110253871698996364351015054886370055206606719732266335799645956521870313400364809191413975876107743728381731318289457713193523250449836680354458697190406945174936513680195559510259846996993507828505948116240003178647218077538837801311674672197896868316429879707738213169945865330336697458295536466193752446799049433822941991034942586092859362908372282308755915510878778499994143096227667368027357911577481676907025043923476224889914758546016449617464736074417484135140976346927767263855288480074986429381149578128942899966578559821973784641950957767305619715998228134203279427717627357392368997908240617403146340969325753615865697790007578086251762220683026579344283318886531866176579514376621895216526183565199004409334563234536606563127793800817012099845996347094000949348996511376398314859594645045645195042980995235758557491645256291651768835611194444552405001889855437685346396599129598772504782222059422833518487542780721952240252777399830680263054406185502550551120120230190669392296367457090342210128271585349301659988402134201879354691265434077417233892728964137356456641818761778502697389443795584586945950708933295123553658120095547754199874061134690278625367864419353478937659814760252993636210284490376642884320728383704158399946225268362720307539062993033973749796255752439773999448078790067987102829970204347417750689029586359040830718380909107498018534745293197400500972066688074998537211986727696451795414909912717345753083898889626291770283928716484529072357886723582825848036926657729165872732109172961733361738220895072819867085680979565574529720915351514712086493389067713504906977960214181935444858475336364841463250317589211219346788189541396992158065027038242686334110728545295309843174521760887920917064232844470720706559964038954844393359354178661133882706975779972459708875700351250882939225174237200656068618120071805936732138175366499587107019498791082786290837063191732512325528202698457255169707140677190579408233729486478883107821179576730761292043637529831272924323470699904716302466012282052169291503029956653856082339164271098482889890876803906581711025032954043567628348108599524332002993937913070974145279258658000923354792971233526719448017542849808576235393458261818984941938995376635834478381129403238959986573015470555738869499207719833373843822423642931460598654426500940364414774911173302956763805407987358406658241484426060499179726474670430972500164186959842323090733087352019488866264334636934179667280673689566554613116523172090428122838727083598156645464109387915688315209845449792301871339621779163662551957479764116025195955268260466713233344563739887690649029468697265315049903696806073771961363058181908356803675072335432462933466179963832280930164992205907989180691634807917672751270013489153032288001524039721537875996065399774038332033922506871906830484460901224054457418868294620904883408012157092949355904145345840455527665888682781580256346819118985623577383990297557932045905799943422146588129964018222167540093049112747826484423313698425561356419790456042415777222880889672930780739690528171807645601290367256280066891243279561939254872225273953861973734808538407369911053918848819458632649449509707275324532663634867294054118851619252101963366446073498909152592720080651090176593291728684919556283815582552071473047494078074576280063437034615620594027387518475842915757176546584940657110079968137258407310716434322067136142422863049835367918198207425030648793347004513548357060451143335122189491331032637847438079664057211716344707512725032762847500518431508256843413526990557973910019414226478304617927014959547522287913435425717628057096813242167667260912184979692394019657669942598719969193082487739141291954965648605997207125946634549647260407592986241065521882425267654237319162178505912827160561420539614940903892613197086336571535312040835467180866779026572584754478209316512226512763875330719498613600900273601887962066083238187246716894981421751900575192694966350147818133676903291120318658199835900458904217728698878935450869783185740788709589422459464608603809046546993172464550405253821450781327761897243253181988416749837889103709649907646370408898840808618431023118148351842117928087482589451329347693037369551235566929457338946966170467043494389627647287215735075016715584601446115767829294022945080032287489175382655848092544364340324335081273574057655239757527085664768354196287936408508966933251229502713408006820751327413030303017943503356369727132738011631660156332860192372367658093895364928346545817960904985203017891376304134171020359517828908568620440155859951598984812588313488964911461105803448962514797251046880223639527046504197051358854896877109314831677271492183670030759314546311280479445756013224353870245876545617028392958970887733297959192165679550234685667043188768551421470438791713930262260713150902110813753869322747182349910275707763331773421030652102068715779003412943786755448422780190497771546096496825096121980577390510584202214440000181773189213279485766440153809034413110121283469988019387384422328324731297018704448164215731768673551340828376821485313643671865724819625673062626704612841546249782012801692284350209835524759979192095435757254662711885894591856302742578558452460617566026481108695587160368373363205831431730604309937139850635841915963529039372317139781408336241766965304801460438104683823057950274128658249107221806389700715280817280803016037479057017006023571527114878664701721474457552637801498648857366869132042808272553642665478586053280045753017543568203369945101612045877485710385856970162941256893742248611570606324116605666536275460260733008605301114125633335492774276285405021238147953869749338412096594536449366211886453185051326984051989554302370900920479468976419997368691158835573790995257173654583759484623401212806263973328922201122147505602169660459727933627181334325899839127710394368447433091519825894718717818293326612814299209163872962454265869734020066272510914208572263070116646099251692023795100033419825933808780816644006060081234859376245982544381030314653589395739992110077876059509107954908915695683825964180139819608057167798492728007963166951624475313236087473048477408963375689782464292100773699432863831503155782517690773501496347529073687332318518916484739170799142974179777529766424017395339457106952450705154572220944203491849066907708238539791385204338701954470071836745727644795255197086760466609481613058736691527711860081390368622189524015348295002693765520934872401244898901107396488674901755767449410687630973519914489314388396629589306805972458649242991275008110302458805812671954963147785517190760916020470031923475864811507096117775689786978855465728609841169457068091309616114291843991861892739039130808285256011455883736923597863397035905324703852726897052947927903246265591397411736755409812214651024018702443901244513167338549591581046253665050432436557930393273709682518092344825151912200518814138496765186098880908632355191430987641972418045871093745375774506243720560669486009161552008901748804348488384554787557907853271129513801282185962633768681883253186676250792928916310976902077410924366014953249671944613323173303839515913639158206922019169720987624164270625208177582414235587521762056717887134337743916642662584286522992618057850445949959897255914193653580457930416306281190374195227387032459218196340241809823091131285621846154953051408924491630993364021617428583130422273545813097804663315918497656603972426837700869861168079088706082988538066019805198889358862925714351135811220516821621240405282086275552811525882877750793698012412761682995000057070843555518800165713733388183304937410900433080062491997299245709218326090235771512781372933841964086264618717523528067997288298211296089585459466002320464103874562071754951727674492201762740192368416815998220374418208997793965742607658667654663654901196605071059108905127207539253228426690073239356767205983267317578659898412507878060532402872149097397225746179567306699481681454936455001244824112068482033247830761532216418213727863544585541803463942142664266670938101565865847240759324538970515866398823617832467979038112008968223522558308535266412198750512271086707673656344036945733528803341126094304815543803967984229565089214740282611882963698340219801718798804079867348277252650555326997800378238483852868329501826795528959772090515214106319352509957915888449219238208237769988586036999053967969326073451793680861167538442383073023994395339560424253682501364620038111015507291998979677755824026927302444693157510663151055876008066196341842577389129434827639554416898815066063481020221055470372256575588458875666825148092439352635294029533346949146237863114320330615557115067630858444780167557635323581457953507965396657400539620171556656884734817524397933479586909680527112839611035489732657727766925288867234243161931304268277437578405504271465300804457390999614243110166425115889727897723910227349005015002942592967041232924009526427083365703862661572876354305342782058551457495011767248860973934996950955887948116011455487633854148089826570139691085032446304439904469488197447358802623842650710285483850349854139399982179988839580132568789133084093492024987321801878188106295515949338872172800225921519364677432961638207042789999380812158817796881771410305607786508691253956554759014229440087223547702949012781907776626166558370700661998595149194996996364191701723730784741398467375445543980298328803140411267642370836094476167594275389620961039019826378521831708883182524214482951290635333802375565305561917800222850388267838274627445728228877924171890739675852091631696779593720442469063701722170187072056706113243396964895215039469394262854660546195657598267812100664187873528178101122087112152679251724452292033121978952606675809450473170984657634414045702530404364363141967123861583005012253643664824996126183022445670277619793493859188345289688296266200169336055202903520018547377738323306243966519083869380791137171620369029504128258175144129279579639631247813244103861908472068397327093340164381313958853220041711978529684021291383513427937026643731060784892848007408048768445765131989550122669412983956190005316252217383875844113464781253302439933825843851595765457716595684182648456521706304850998300734276291550161278170346094537311221966904126023861564413863745705425443452637751078331253598046993983126502679190577714553846555529439559469903681939812074150634595463524029016821214685896485671948649091292680778754347677676369698994137857706846889780117837624102383008561940253642373516480869761586398459600445659245728200099293444803132586188977930496562801621287432005699220543657542019217419128647680911659656776362070252443401478379831948718537873952179238410535525610713012318259484980587041883879343840552858649561861565098461372132546450452095326969220298373588570685655781333391558290944021873069241300307979505422554479768373175386447222221308123140837319496208018009857530381934984801213214384281462332062654288513931016151643279135107558383579921439794706559747862079224288883753238525366180117286706670465391354119547045221167779537491925362463966207745520097783898148119969823349237498533760650915310156797619504258468889203675809201780193062525424504224499324184548056827285141239562031233141095410920504860596347108258819456848308603558384299186944675550101580681788168969728026218013608240690766784438394385288099012861214722921861068644399636448144504234177166646289763810070403109200644380122589435854727446298445271091993464082461773687999119123176216601656508562594568216790117205338338220981844495223503286364730411857452340812423001266973849783699054346228745840663010991010748382491859996818705627728438829207255432218216264406481182402171104931737884609058250958430913562376045891468843100965097723103199611105562613994589642246336132026565729346621120401295350368682024581811720750361159457080102031046993525847644298383187246473050710371856134828101687324131590675058339844648016119899522628009201024489818860336713903188032416322904132838338045285906532005370593405275967979526480285640871460839540820287850952894335391130576316429597850480954975540997811594984133621652326415862460601885269140467782771089136877659352391520098369899780716477717148291775920055580295506546412282321418229496476926499454815582244315598630358856878524180387053548380256313729627220505631018954281201258786440633918580461627632695384347943595946817528335155558264132084168559482167958441763676959987492527194453619126965464486340496392939280790489052845612301232512897537638676532088341864076348086816516425674251888938144678839897008389116782190285216080214057584236444461163371269929431736314009882457931194520646023517875109523013887851462456533746012397069928303615717064383844529667969270728309938690563241441893522669900786572853366905177414866970630305933388733684373583669939087271129709889292867649440392444610588637830776439236961577262750176676100407474389224373799835307452567889025441470094212640951190189589724757704769926400728261482758542030931237531748799274795163553354839130609643720853088567634553019592870406348164608737898088611832522588384339734824425315237761266715886121582791640111972198710848847897291327090976253367022934134719149138927495195871535742639812627061860957376554725800784829842611265306512711310620880194030679644372786303084595321236521116374254793503007045222429003990522426730535958777362920439124237774680689647613880913041338731540226197902722178838821247371287739968127854968694041953267776736779904473944199396302171435096718050287248996713178742684623969192573405063408999502801236315018685710748323575081740753042943713625101119138970111811651246663221244443000241788836975951689797074157602129373230655745477541925880075667716078213511967874200857073654867920358663446280038495807621077141662457813580422966544195542241244569208541556763932875895390973766562367918290936313270647802138000803892334806225597025753099531595784941156021316783321133262262490286178281415266166559730947770412022833483715711677045635331349387772937104880211773643265939776949520161371758016997961222307661930603053364739463338383845817808603559106782012448504721454522741213194608713683574361656955280917968958317747389771428041558482429209131414504699822168090447184765749108071426723310214956365581179303753495505577614445661506485913281993309535759210188339068338532651517144078199783770885879742083641681404349079724439711627100614584448969699398530902796260125683332037250604947738317497488668719980383095897304620417515992465101515294948312845514544380182900729998347838367243984843319294299064869783011908056093287668452909876806368425535650005476970927728068620241963104596163557766541946069714266940475335490253997872624954338779709169233016190406933665415129229846159476984025305391886701633849542736865437836056654081215677112698728745166141905682250248271957604259860278301901814608494722995807288440818699023532216362592860169725126268956983434553320977733596762965842533262710166169361748961092370330292654890157241899114159635709336867643185407339483483432383374063721062571360781747246315086431948614271739666505672038713010287066144596780666542262494440881606481652005871539558634032795435229745406406465097956249191715075202329436409813071078302022469080391140469406116784586195053888279057158045518415972181250187150593806902191794861871426946094102949145688333329572388306085217577551958141049122303839991701711164938298940935103282311136124087521691738972760761834426974576007178075574110787622443549889253091647066019381336738591136532777013135155696562011033405803784215530714004558836502508839609886528017701059759848110759562957222744784626469580036767633101675715054004919455340307740423250134980909680240571123529117243982009701105025997266887067554322041920102987951194890945517518496563217987792234615633858511064371994581556589476976584172046914255755973199700121553416930606781031109133826233094793878271494418182364972684454079283491163522333055763602046647354633713999481302330486629060480699912477807660822339995502309027590341637620587971240767199823540062158478321870204194700255436490623239316398737273340172225759571206836848542989506850979032240354310824975381216487757383912111345719234942510624594746043804106498812793483784301694458836503952203759017940644545589874799688030739993669478353659188083619186345471107327766867674967378618605739118540054541767823828879203271214837957037455877806940282752121943908802951443670692204473240802691725396747995479291167156845928919699991457319052254259251528737722991078812606075938993258955783752934472804221383753693051505340533050546554237735852121225905630661824833650542329529313504472086787840439099748628213299203400815110792733926509891482709140160540398364228386848517191928300863379054928497429338748161773723063762839909711280813476657721368657886412844981635148203279574954807547679228806100987282664631658159687169533831082430514237841201845446300267113727817670386611087239502319920789923506835956661791468328606628389772627651374545279672219203989057606573449663327672234226135809670223696633596688035524527189848080379435108600392965497597376664271586636318094242542624291033473696792630065854568756102361133199509664232844928973023451826530642911115921243885298751509795518586470126304788696973729908511261982367297353924088035069495834004062861177618094261593911837103362959606025889193735540911153876286050574296065170128093945018584467789731732933020184793172164149251808977452746890001146578746868086407771205699034491101470999951801098391811196793269938671180416311702510068924796370407654633460469597527938890804092507588817079189966149114371724247734511532684114346624011124551481884220062834466718681618007325271212172114319928226702715667749294346580871801886612558825890689662265446654500743569849353081979631505471581986234475486774703625440126422897660088701898794121770243636578294958657782789102882996422336869905454513068757845570384803805230320765734862623682843615978305204705393347758168359210731032373913114578632960060997287404623960319685272431432628818923254475652293910754198301787347136609477360478309129102576988151499314924435797671119402254223720798914692309915892985711476039928818437753205148535911553227844496664387652116708425673547326720380246175477588495769370589056462374663034158074690598394411847100720939338398869256796569927739261990011800038854782320864315340224307728857875674856028790009678707719648382963280092264402823321007494113837030110848939018484689628312907928915331098723735058817730825811729393988883661258876826117936575085911943501767310263698356844521464789495834838455393748758007299317769182481644550259855485283226496088010119530591029451643157627597936775433998122095169716135906037875444123747284259206864409536974796415750285101824950009446955484326019942277154197230648091484801398849127005494037050582476390094170582816979018777365529252615001147794506881665283075637677437835133139171363025360371789541940742293263334998183239078574500970729994554664088783448816104695715930498795723441165819121933819336681317375590220034357561202681111240048574022648500397738728644466653629984605486172727892623088259328623046354941035009193113679290439918501897372744431247313632852536367504271991985356265719850928802217560266998046747597383000160066959507713118508359720047002659079352540380177761364817926745612402779922526096883213496263275158656695900709944003446195454845470038407803806338577552052015695379086460413566906532005215729698146713557825803563093897752015954570624827992540115486225961732764720744190551528140788871507351050367106323351435304347781998200192661546882843482865925786338040477242749075969013517102689969320553467969642636507780365505256772697346858817266685738173333173800394442565179894141917760025624201924115980320454197769613366181927927360098666029625089841882160177389812931885748893688542734923854196753727007932051263691031052731170734983346316002597492319328394163595913077812653249795923119357394596828418414511061775353979979793444459965556053106134794219612956871938951335016420707602136812866859503971640614338535882902307411956687672031295806850390921394905435210270188108611189857948060834456225907586045662485378577421474509656584574993788167212581445146097788205641460777784917589739478270281984547663055100504075557099013867559542190583881075925775904105213677078395010950111665551825998436399306991900895793226184384270985295432845232331671120787887701759556850720554896324373295280438543093953339504198984107314641234347773605032219674600523793143472130692992353118407049278468743640274252594135317099802701003911663196183460220218002529894569824948806140373335553168756119739558549686374839595112924046923627389419378937676214243365880313638863010028106268717336075385084624917230287778887402744039131502845090708527639921173914391587665356628167934820295030039386656544292762054907421143828276122777938631969954899383050588133239440111383650431438297621013389725543708426963120088651108599402768538714945854137149426089573241468275266930628570478484875547267335345568553453464812745232953484044548200781064408500914873002587028218646652979953763551645028773058959740674544946151665746057610298545321243129213458975647568675325088793946996168044320944439078091174655649335786653831356761790170557834410030891775494539287868130532223318345169300899050613647341475997985654727715663908936915174657116742597792822413808371206976616073898967084201363132877131207862947055362910389166821046379937336966644996003283143077499229975568438106796053566208105915584728929549060829042588735232143354340201931773271976392973738782581112733539401044633845920018886993568375481339069664166251151754054260691398604671006164669595949345246190518118959528604797253655375595931310162006923805970751954674545788157675799163344817277424333923598509248437531151631583516786356251490795367088945889006931525719525246775920169041511407702197005796973896922394942771485924898127630610865894901170115761699847122882568338991476796143954090611281771471397427217605836443431237387097922346893250314036050507997804617187304341441066967160960811154838975264378018255148578619053960050441287270705602892462533452900798792360260366064391749425683028103322913059394243845409094672200858189488078888131441152140117036097069951243198697788776644383647293248096787505738198568133285921137034954959713488736899924486613434079675650873501303641936669906730310738129978188487893051208219909325079061108638865660761632144438344413261382761623450014555140462329743276158172165987199774690492217972314595782205124033654047940892465253522507879548746622905233457181353553824491844889913050495878729512046360168800885802622415548187637147830147363794207875042175434845980305279694425420903988057087141692862118861293078842515442151580224101680542887312997031690717053885289431457023315625730656388605472809332929720806040100287430705487918130191747237587007510830154244412597188736099668125568535701828165971814512514945056357746339569208813409825185341675735485044914046400285801306829958738881145711000441913480587865541840288956512905200046753186708341364951583608663220712952946416741351942667554659655136692923051139767740889355588680568943052308123089640085375601475490526646550649184856234541554735828947306476357706394728945146529396513258368917785905085317573070155914625499264791959585410625343543333498573443638947873500331013804494460555017044460234588336803592053941024995791573322010543716866960472545756047554233822561389221629883332967563251866498520585769539668239981609655878344933202292268898844522828260457517699530976622601084172394441104748544604267551578830162184024434691264361131303732712111986478207743025695935663487813295104504190898259954768550275662798247116865087220012647482181227878962922040279042358452864065195755231512911538582238144294895026411549259762478997601270922496572285874570440842373043042834649251511709061975378173440106767610155493904858916255550084915081072250759138961029749364448998818228551661427293832186586541607217867803539767026368516789288486422586697935935165458391126945290060436774606882791010547475599050610630594266252173251360388158305650050094404255206827040735086794884417020006901020114181939927350320016093365868676071248218024934534374662267880225710634396214113524542323983766186543282269300116045409441778361683229691060606173556900267211251166033885272587464405826357085603161582499948237084299536169823462322269108333833585582499797389541742497599166825301898405986303585542405309508993030701396438156500478738830795515309600953623699596452131667566657556550472002939006418837430479299136170820713581648958678377412194878048918269297833665028366159907178907321371428122100872291926737025349017873028177052143550236363869404791649482848098628402503561572936861351240910857261257945322295184005541287797657383834989613273214425983732625508250378693298700328812645927817461026443403076560795844443347583206836802456333643895789784585693615354894415340200832665108159317291879431778571892442604948890505772406958769376128369175058887126050336569009030405106576217787395425829449237901754408937809985460780764767136614747763965016640467720718146750404345294314219693362890826379770103490781421055818960446839860000173019535020816511674758382403485963458660290475388339918228149455776616906669670521835381757330702883158181049906156092926050642019541275769846605216361439670820321346853040241947996437942026724750578359615558083410847608998320745256110491725088812995206700126029213406628994107667036213498824548302818250896719540592222905519418913008459311008554872824785338997816198008027622654349014204621514986174807966052898827104447638022120823168298815237428435655542649536578855905949024280136866741549817202513696917542472186256798487599251971068834922500967226895354244366090740372725335817934123758483456410125702732421795059892374255577289717290889725647420576121940454110346366201792965755402069595653434866752443250958978969813718709736558725165045167898679968456778072450141469100461216957558215148933678393341351772151019287832320515077093174710035912550689485815989678564935610203507743968688182063396617681225235654929151541452256047640044793105527854270581313760974931308841464580768162567670195021933243167485705484669653629122401595035655548094173942781546777761833149466371063580932322932284195226832993741433000367387477505484683761547506026374387738325584537681070422091205075422606553373766634357641244046062427461710518365713999069846656960687383781756679449185193747010199637393862232544424538855438023402509190133801921704005508066266555045757485165902448799640907964894531511165868984266056746855519096232108006942731900660480996085052480934362624768892983717060917190408268660853217135532966613372335137295825140527809464100617968048757437186774431501571247477429136905467110099586446807664169955668255146902846667288954135189189392774885143852997935394639350967303386461388247757659009119275027126032416561433592508815342536029778350623172773102817546125883745314580923904785764142921683471397930846217132260179682681575759458731526841992217286072873507481748529936850495358033361434902410448746053793846468773527654413858373571196767361651939947159942606558696409623205420688826954326747019109248324475226694255949336156175347500425076038315317849441175593000032482605482974809316090453247259235242675332400019985148512505661687459413717627905003845726381047239319436752527077949413511280402997179857260614402693038623699713252946315118073853827365307476592538937169724618484845655746610553521015370240418365011715089872981546549504919077461103030735222062244030571753117155858674547367273090107528716268749847251096708776692994390621182553336358549784088349574850541597275800679677112170110122061470256272088839235604158148510240168626193225785652484030486929574689251113343639747506078491505000721529273414157103031823946633590770237077313151032768105129378189061082260051646431724270369892190113950392089198546935853820262459520135535849015350119110053578173178180559358054097557823428598786107851406999838063857505830044322594991611692064344136673677388476248661964507717269445171273892082410786597314451995659783990354111500865807677013225694259656643381195638390814635203815996189626257812960926858329926118011750016268509714318443697490628845748666276450724117423541523722517718001568946626164483762733960278241218226489144450974388157770611958032558473495248455246748185239394273179614856208750547036212443175853866790300612753864812742618731063968677064814687443678759337066957285859491776949986370637459189302276635022235134114431231073076769145301861067200060490879063314629392451015271869922692825746242449998843879895846439616333423485298114568550565067673416104649821543699570490990679226084575703123657772050565381987003644628328578310989714524293920079921216122684203874355103422225754895948715468984326634255144172455268942084525317402341799309736052714385107176441330554410845487547775179005769362831435392868681548063852786459545485793771100213242698219873395456825682399687323961372874125702074409318663312118710390048081129684888569682319086853645229912561296579391941268017334390225979698174345448009260854117528377442717406273727469481827702659465805917198348724069595455496042318820925335526024757785013950745078798537180653153985747679059707773683762691576233055333769559723838129913098987561936956020826157004321756852999713878837521882793543207394740653231464802199150012491617267309032850017149296763072719102039371091793029670965569862273341500124376144304899858372905463308028871949102652674742649456851609947928046495127374043511982043093620519456082765290841905600785879848427206234904461596231022027077336100157342489435444208997676284006413604160791107744638108758599227757022606270728483489888165548820175753743296618013926632232934440849080288854028065763190522507362164642621934136154054396638632584316083287146092008429174964860582443131746738925706502425100597782838993309840624722101277182161847416957667767079925937174678012612329066129809421989049589582594468324377300892432397824918729342932283871556569350859152675021433160254905256333179678996574359676221529581993008127440434541901527026741028930523218870765236026371955569426693114272167841835257674843492128590693039883301073479499124482708408565052276115130145454876604316289582152238498213211174726265114207543506964628351600252783023188522658684691279871022594575295616763383026192891560365610185728988629936600566810109775573790506326740231469920691238307850482440732620724923134068158513935655569625370125181655490129116982449954271581812602380458823696881941727712371608497406729873649227353101480411434500756563025495595544240683555855817327318529980286402271188006371001589585034637310249452620311408216071309936559816277141299599159845088938516016910640440000729947453040542108776588225281798548633018928954802173412430398154484317281190366132278561409955876610914531790831565960083607911419856641515992525901592495878161240470013513546383149800607997175326880881978632204096201758396508370485784941760167141883899235692861466367716494826521587120403757536673053698121874723253956866488033755981278333327928188265166008834153488223776417431966039476886838582008019416265689893232119987068394266191387765016686011866828318499784568450416370105256490342826793703135325649721026782579555972712718537370612298623485351503024091544117413922549883559039143098440445101658917706813079788292977798359850927566190670509345283793695961390066757326927287324651363393112314853396697243384199429403598270238143111189388741664716033213235766480591774284993113176108052977632154598718945448897391054125648971250372839223711450936946075509672699681871726087028570430892647745930181583566609826523395910308063368611645253837202859486805688366142095970188725379557867918823182266160049323884299508591568427408597398607724069306797168769528204475501173824849069601630743520042344618221274004872708462536203063816257364395287603160388457673939115610252494346962420696467529101617367128511748554930779260113997110976965126300755863306463922392883865033055671407035562366182437110249310725245044497364040973604565551179897794187048821889546817631948279997090855058529753907362925254800126462834145451149336765251097623283947032826652407045245835059232170367234519535220885305833849275178142956313973182123900647713392739691069544686026601638545792923490280876778443590768042615242106671034324542021411442003251561356674330188540351790919985627028709291180359424781388531226263264422584478001365763233216415462577712060316454134595233627929012676083655922492118835120407345587618232751956885770402710775700485652857435388420728125281658240111509137059840970760296920629847290710202241779102167659574690349116478241627271210406349211486630430678962660020426820561722168270513717759225186468278324184357771677865784220825260115336515881657786714981194439093888063274069792990969621120089875963044689132587058776469482110440459572793341739187150203809133357616577062772936521930246368458138058313550922353635197731398475491374731289317303756117558839966556172268415278405576118841912448948195646487444547861226098847551920234388867924264639878448563442899378099327445070776503154091079418278363318608535544504003270528475477487472629798164099608971837303525469976949558021686035585420632926308503435492600641314059557199504354035415946368686516244448116573743192389789230001700491434574398995008638667935725732651405982348522765685657715674811364018223858222582435699679091838512613500481519265850344812012910631786653396691865312512753765553251194528107368406367045135935794619925554076707760999998127565100186836351071692196775888035155501711592771462297145612690110686807957507163177041448456602754540049084025070279134223374007117076699170351555681209317811920661779210540152837379781281267591601286567272368897781861125356958136188001056578404781228923893612698329395371007225065588672496672646842121803467985929188383668147758784677568177654504154932661004035905146792673387880996381712797731334027173019753943577087381480842495752756614079595353444075164124002887479783951174447269203903503692121086349682505850411766470595801408522242585111852719825829138847916261514384920928880552976786890880141972457644848321496201935090301490339057540488546350567178393093732211673714978708540931318885021725807589294304492171673232048264539218733538152553555747487504476391998076777123807204116253994401629843301129013761871231601649076377306992340473169894583512393386468794886034574120586724113567078274727114705954015592623886404959109387935304911465008374308611403950964039324960774384818924667074951902744539027556221371481930842100537732829315244661314408703038191883298902262535034131973218171135760759293980605553104750005575379795939301131823342026622980869264013062164535649233761168169015422123819944134734688610939901571614466367257954663862675127447011994056856017090239346606632066860554431514782516018345354210796957127388877082338109486637812339972312997493754394817375488717565495009219348240904357158851594965050274608018359486481269072586189220528938473370397599163095162137097394454189057781802634578189160759994815295786954796625506803198977749581458382734244183934482594140736416929340549772876815866979091030521308192430642149812912777718031316467066481883619777662730811420975533084260176868967911878327709806450475595903910326195837072328653591819071057735335838646390305354159952337261897766897902319325369664943546998383237701430291221518555985033409940504116912444349401035788507376875412854917565210606947945031031833660631513339761756723129186136332448993492553831533662024428623057837131162033249898339248386931971399512033140498216907643097739973540969620140224065768140513241810611562341801184281512865214394206871755829802137851506950074428027269767448778358064835675627921324905439774751855695883509870473607971740247837156772674195385937475895454842661066472880542089702097068324800588261885569113694262371198157571024355911374725132287486747271764558868714656686798933433722656784473923178604508863464080729387913192228476535276985806480089321967380243320890752396896081233280623517094256528807552455061368070016778542518189936299685335556097265392571504941761906601407023761282724259325089974769896708475970004874087059403777535966920052158724539514378588644968393159150991322411976490542663860651022168287425849748780062357330396890829323222980072949872065889852802499129653362647268700567650708158329312601365307875838032547956241848158588034594150478174583588804067760038451402058826468082169087069958163547435199696065945756276931994795018049449452672527972410240829749862796678912291060141880948828946242201209530149963494925717827253971804286836257684417197499166218079485062782812780955485356980269688444758087753709672829775137919339749831789535338866880864167411195016839235815693246320735460546223175275627486702108099930317218815550290957734172822211841158216124338186503627516175476998706618525684647900280324380464551942007371512623619477208310651732830662766293342618357019332087367601185867458838667046584064587056699794188547180916977694311131854264354826278123744005564376373423029669616537708377946992877122242783238211033858865101168094904898966322638571835660461084923571232505592030477702984036811755746297229082099301144802349763590635291583897216516901723811057608978908753656408040348680850313926799142997508398896284102449041244828974549988628012464648002028190809063470101034672081552785777201046021643037864527397163142136412475888749348463764763200425745523031276683634500581950135825752050677804443846488787537389409983194761161492623009427835644799337916669787587068315677335495847801718507908117235575726268397700378571569893501896325803156898241669852786629218183539725877471071062945274871850886231508559169960918962734198916397030077537996080449685773886380626719547458374664144229244514360428844972848557889026595729698783850439685615279727364877556970710320483208455031554849882512671725399668963924642459930448320768281981692273983484094959369192157021701371796356373516723071291228575945503735469843134372218998513532351730031986486989782654353327592257466155927391671147565307144486410208426651448072928954457567149318929488949032046583901618778427145370946472772066877527683108467891340079811478927598419453338250210737435511854239813618196711544946384762004004861691470173119420162201084187433408161715143960528479657023629200613079722195061575775355830307971311092097707996485220442998226478426204145310821581830388260816231194767661926348046450127181105418367295460225616735452281872161759234178194193933750359427954783495315779342244898181424469569585649354756150477564424065167179143769530557639795507441271996750441749203725014540001816001178589350157473131388325580662042136441973226736090225688448381624213428096609438223407460885762126414457493065736722828106428812426225872339616680122216728378463936291121915285857769315319520439317371383617920992348121279794287233114803860229328201258992513011746932165563701434876014984676006522148150497782890110739435301499439622431877546058597009422294781227487097853409883233609995056651261043297783302899139772232558554856188801538101687737830377599700043113915559436085860514692405647638532950743933507176300087948323012693567475246898337296379987822733370205903362442463323680424251898137389151359565149296537092438645792953013908848903740937608210431713671361453652794916108609222453140364407195048973649370128525279574596629729349887430684217003469374492906440539123203520930160055503331306221218717052648229550690150270990249516884408969891434064333831677234203192435884356723079838316594183422206397688417567600963007044778435411498844661690816410688673632014859728115829232411356309505782208570059873642557151393054653521378234694339092257306564551789538227646943488521203405112130695202822864730499227340638533275738593938887189873765308611105536643245053957450173415147319190153584265434031959204584946162521013005999234874561186246567220226533966668381617242247656862258004570774839246155209202500047174868572123666718565868299654081935497560987219991943074594739640750230190659215732835785379177480362367907373290562725261213081073450434242596842673991544158143025934716725609392223360869546341573358243626881266204974528865889075193540539047892403876627217743106549035635572106727529126192594068021424140433746089132667429224490816737820826258252666617415206320994168923710921842298303930006416198173782664238086736913017910471872700869025021153474013140080319382079196563453230142903331353496666234334223303256343702152724741338291535049789931320946012436093351637361027625827249104282450189849788237590387220020556038690507773987172783342878261132678210569500953440620377481317207092600457089442962286508348880259082223574222476252390217054399730972602919531298859881888332685952081361972701088018760272462404477261322955509007731641794982174374053553541536591992496745906615168371814523520069749253715632898656718294929463897075878170201495422961305830985592134706791660099015592628638246322449525854832582359917839961817053689539441962407744358458686296533443388837537982851207071160132134893820568717480405044056688868353405774378326816187872945927974838968727756733573588969781576890571861797774125116977070908741382166778404807663746988755620890358728642309254287988439394051254853923047997731526173007059015909397128941218702349011543847319709752578529319090484134235494978206003067548131610807066501697612703273083793448922824793131479205107350688770300506207580986808409874043718893499286668823138245450401924544313801331416977893126249513535348489849021917049269105022335259230445732529140420102412413523734264621983851124780162096716683377704396175988678624439344768270160978837439496856402185016858812201332722930274978964599541156849428946202346393256515581203295480986949109422146011707780322147132349043587927439543205517652003802688346201871279577139584155149858090238990411243234037839562742680860184310371711775055615094991227981390894048742814698399367544494194208798203635117216424361376041908172094525183491409039962300476365623680523139327012788554745132221277882093949672320682242395087162613610196478110440002511080284646124470852092924206819632605455556008549939307664005808323645822664166124257624992596585227298554586721497139105337148136492898957577504408944723608920588631436042008359189930804205706890455488702114797010482745157532199534218742017650626270981425927643107721144081350466392066577517858929553835195612562053954414748687418818534800613057095269013349406106866666119409972733430244500403942663466918147495884734755748375742784758331542272881240192743180291941224649707483264202675306311579498552222622951020530743935879352279530901764417478454763688189510460964155060448699234249998969458464039692302771719961282749904535258291770723446770684297369825725298510250035546991620487529025726419017588513069607926130999676527693793578355999763281308606134678556354167281440751897821239196220810745167018332009113870577653456195080527320141102130274830514818491239010972629806885054354105631330432540626072587971045957831874098596748448752608335450743778777675782070200987512476314362509181224387583182595343822394053266089252792811090280744546090994621388375707925358224024919309675035206840520222527383466963527807448349258220816961218357317425664273779897720185625584293694282132551666953286443812003010987157970594424756418369826833676549555102623961940819563095363606319908836656271443492403153232596317550746787857499354136652913660698911714359415257187810139239163979757623651565054683894968938161123915720350507132810066925708403118946046131715857368709051247669449954705515505086372651522252220691088358818577179060482878143748635457689828961708027405258326811468181071610067254051896013227819426813555978733107890637947172780726828948269671050782881381296522872415015181472150433431329399916792874659531949731903457584314965818812902493909699071538276475906094190044894535351857588804568125981131293431885913680150269953192410122876961114434543362462856676131860238159921192526043197494778057412663883152647661497277051476056998959050720042594186124176776831157986999911032782766039611396550453159556177159691826008915431903052076054846302337354686586677621012279339650501693383220460910303419467006824221690558376203992511315525540740414537339621366091408154837676303604169301284832859429103927630031387299494835759496765192372536987588368500761655514200428479796508702240816614980639725446944101493540901692119184509594366826908653776441992132840947384128560798258579208843695750978481970446601952785622233850785650320331726322218962241405814275130640043173444134641528509246160942986417717326751437681620133177022627053055448260487931397258459263367471631973415873137347170295108022088096641638485875853076611260904268183528424356276791752982994761419477541566038092881648808475920833008723245665612795758094434406459922161851725235921431348917279058197565160678945380800687615062402575536105095769151577499958665470653602345539660654146277394530152356030704484839003883419057152387043818826112101923658157332416067677500667485883785077043176197562732183051923876747913781060215146969070475815339667890797656422002186717168703467900603461151085791560412866760018514316299206734373768723311622915614374516668577426942782281936915708954159694030931595347495889859563271979288869206277546306614285479741568146420445885230643090417443054789862162518453143052756538675972079117420136015034894721242840154985724043520754687266392009079346276435251283726348784465689354979381697997525483387696878421815904741790689665308360346346486051356483940057800501757430024998278003288350495528300166287932148488273257471809692596994088212519126819531223845715302101391136795982078682178917246487258261202406262868692339057719423408341053238467048614274774212807730937606177977276212639553563440659418844609940462026327115069504689275693623797062855620563458150772404621270894226426022489614850171141471869007131810860338678268800201954093830582547790688013304746810411534743483708993529927538696278092354587364678536090411504278239963637473296935951819247028416858595137889319491973728341420295696826306078367176073307351522479259430058352385553379307999000729823936645476027517402485745165895602560003906711012923094041551056282492412701730647598355860411755261714325274952363327540639864172424808025144656522349592306753805696409005941060827242612293909100066026592656784421489510912707472037434451650168628994998559683550138830580164675538328311546790853390777487731574980402043663103278047434517212529290432954048848393278486008489714943692643949942664058061607549579923642010733783097818857730838798164801627725697322432701907117082107835977126090556172531367620356114948950369683377681225044100192266272993601401062002087838839943974114540820621414661318265081275448716291494470897368325742464292835032122400857345820600727931323068764990699528065297515920532267001784175515339319568830996773946390661816307582594880417992846245726151530391265022551133429710271078286631894208263799946562676236423513301172503202657379528386158717964555445579554186788790936524306121148795032589131856004440887542095134902961757592365570250396532234524447046167022745818972820999449819496727400234028290638626670382074488662921241706128203443508501478646323410776123554030726256222414744365289155007097759222066811867213124872660184299402704615981543966999372627207525500594561158975960878731448263983114402040510198482804583869982304183906502488583002162795950032977163195572746674171678288506082430462494411338562084357320461252551722283524595740685378441208069135895218245143567474385623220594484772344166684466847587496866916453966725898133323881147602238959802160421076330438527215051434585220774411159449198190210549144588549813669538278478816716406324525057084567007440420110309058659613690165731715042411874285644503629703997898071279433900663915298773802894860733167787717880515814357637135500325466267091397166907732617871178188787930566555234919000244460171263069152132546960976503176181986612301246362301575855772750396306339164118028196351978087674926482004904191507975300316516207750890075990626171656936934186335372595319421488418543878306684901812665194305944359520643195801449997709808023559383510321705522991662332304879054282497583078013605229756729170275474095010924897571405154572054475732002312577478679643719074009080155326522731159068711200933578706454936340088406576981389237192058895281755901328017105458621913086651838086974582127743470052376302191485324152561576354726124092762018862212514148863761299420776474434742378710374860641857630010929748321729016851976732929053571202447779037532126090567841022404813664571009420677311272460640830221149466297613284094885915242467272057632154126929834484646110411606897140005643452902767504363005242946959117239948309449140976398622793278197542190106604148806290590607753052399121275835922687140283776848476232331345323292332583254079210296358160415996317510084872791790641858246936050225799503445278949702330490054445415911885435504136041516107698717249859514192320666515560984911769831513778180847951676602354779036920318045086702140829750866889027274990304364068328317170265984447181526823556757541583197895788486256209373854358611372130250095458988284547803712358202554897276330281422783026866459759848334003320777244596176365926479955621152312576230447724756432194531205387548139745915947182097562408747207785775683757158259140415181498367775840321572187180998517274656720887708492451141282205363659268137810631564385720705824945133521704817747832135056907821667980576306335169055744808181766082624289823595383174706224762088426720076966123148511141165000358655017067152289705249494007086042447694324020427985780074681018832955093038960440721642432551836747677711984716801201581955900642997325053309575268857494057276912181197157672053685031718688219690993101294291551134519169600232925401786404413704132046100467907630145509220817422977561467737062739039497539561140523978169528434293918305491944353524562425542913985581501196308147257504635040980286605688565137396322018294180006962686035894075529267849624149409980401507760795352756757738039326619217202823674662114977233747328898336268545337612749256700044980305351484379232017502091197686822041115469483801457320693997961051194736350114290941944862759782955884847836671751026528327033828650028245014362125730496042452915109649698266470804989673274448836837706829322783600385759431828665314452434287457943159540645353006362358410558196301352323394567495219457114159971523370580853728935935891897316720808761859816661179098284332529525812740923316024391382659174641807554081245499769797579287018219022309945290602494847892130457789348496018563019588814365951667152671389301791077154340197443781405991943286785062051918367951726906876286248965444796106026556476476640285882612450769009432278023783645206374833341927630485756737908849033885897742965215968909392257215880397153035423134545150339057693276637347992697792129921658337041693443027513809673063282379956498211325525995306384170494592771090195804924759934912387547068899618128005592758705705248022094979327395810084789600128080319997455456980519479963551111419268636370292913601789892714042561120357863036088214683374915442111049720641463501085572893578282380303485345622375328974311785265350570743594349624575010686923267229788573167028870492062398862924597204817941134983634915979375604870380974430873108808878705741739778891110368521640925596769793594651146812075851791631364420757175570119661986497901187944390440628166387796496987190412213713350932772818877848657892916606681418886602978713308624577172066977848178098421712719673506905175010370391704117359737658669672262783271298389761894385789648780578477224145142507813412217645508217502126414064422821622768907338392735268966756850145584201577877799656998543080901797306288482512229934065206921845303143074085718845985957024951486352016587636658291985731666734571185890805582730689377336531624450338228538286578784201222466981236031918640932585368377032992787470523131854422019137092872690760321492315893607584873912472769050792169519839228666201480342643735970197679673018546682430591564100969875922125187676404488796514524442689467780014699886868767062973623285217182209866069833258024574419568111066353793115803027112668710239966955257180542769677191074747338809456162379027303414473828232002207312421251572296695696811144919415797860889347207312721648887439629838822776199882317939424695042129093150887054655042446263785062787162593838335778163458491839571762152652376324872994845912628382615045912525535500382528489116395119474903303459659075646652089745465240788358724106769720927464881824454121997324940656263490960845027197268726785835435120971917124388760717667546846184218652567586755932188731334353480960224634278295754909059787137891679194019548562425641130052729655217187483189327346605574970990483783365773429896390116326625028456605257006241438218336582841534216791929276405912397086530397141782577140667630148509006947914672867759208672488200073773684774445233635274216995428375236024799811808755099430377354342998917095537415367483426740408361537179307687757661870499314239820730329533058532468991538378277846245732444466528938085846252759324428013904435422781390264670249139039516880391257114638817553934781930926314070024575074082958946303298514374782290811395928292305094879986818724260947114512741377590762529819280444015194785835422807972908430396453772580111904398622360393056627350024162341622916479526625273852792780657573128407011649587192493991247875417173363622200431992528373241560439211027967099364328140089795412966688631604771015072774549014223841619445944883505756917249122666519118705059807991598626152572549465830454127368087182645157046142775263535850173317779060836624850537303373510536883791531462966278252123457580076464493993813360021393890797124466459924857727445384969624813631860146803224554240320883160679829252460568119221395220693773919730265178910951418317974800879592602555901775683812717831687912024540731998131175691610541584747030869100323701803729249550965022715396951598790254896199459402853691604388209465307960743331736309541456849107647939615335113230116732290600242939025629752087935713278491991117461870363491644625703261794345374423818697585700048333222348305253906657692851123220326069448435902006154801002410436684161931437549787999508367455651639388316226663065415484769530752749869861543213539693481937034703463919942273055185243257110068815006318770735741747524368110366677582631317621593617823956217001518233445251776799626567780110543856684820765246330768261949844870438289973562064060922264997973981305268119092136677368447108795642862186858691977820971606054582825982996097776448297124765917511522198802113391103319284628686268399967003340662681059009230970761915910592879679292825003354747777830410514382392513067630441724287518724382165591022172732671252765719583601443272395581930969043202501081966973932892838565685514597271987489249315734483715607611968835674270780087581884608682189604931050062024944796918077121019108557655386372052158748985667351282925469041772832521153708017131637103964449793280165362287418083196684963116644914503828073253989957218468811251317844024965826872278749308260060470238184884269500230530467329984243739685023851752720343432334852535264190743108735647009085616035546482508951183921266856299283416068951289278019964192575044495870686203039731160256100749447633794125592210561827364417630514603059377051892677192221415229316197736161387303357895207384724053135407558399346287768939610721976330834917387502647402422969836880126370766321089230145859863140191659103139143808938945510676614694022071246874393576586888678045235224798212801344436658443239009230943494948216136424907366644820069083411886326321856474031169069364384128017772085194015159684245200756415672439945369906033438582782005399743611182204917013401143346276345084177632588349999339750450725734780987674609941206410724344936762741132206428241416078874229499829420826452042628439735110212057463097433487225749712465048652878199701193126139929799220547735392368139072996459585836640341870028488052552797219828636214209813244222576351957652816456275359142246387157920755755358672626515750909915461208449943634783967219460447035094183210739794555593144513610171580902650228107309462578286465034499654823141772582264320041328608694093224459471777374735346819818623049585390526801836724402187756630561046677322095698225199480491037815224124979665273608767791129258692968900346671842049434066016369985413785612221178350775452687078905346223935974961804438632223116646915411264026016105946110176963525419281075153031656910242141147029770793689756247347297629224336106730033803674138590814771101675297014588405712164038971432669925853290176353665076185412136766356715215506866754407984373594225756286559008427673510156917133801887687608856352216783327208364241143857513760733787673722802693964963140161041706770213447644282354889570890442831288910674992350192774003808633635411528287022599270732166412796464487703119938586964788823570560471177334386300216469044227594390363128777769571942400499920031578802795818439395635330910076027020537121106409287287389904427398982643422318034626750543342055469521590530375699264905921461518061057573353739452329198710728400392739160056281497168369621323214955035947726026823556159401612748219829663754419176527921386443911718756197976538036309822556292893790297252471723932879717454560834592607415727692957194288973446415715719455402642171706769447817418460878397151046156903810035614211102315000271062841913138508247876776090473379098029430139126314505393806510419340589074260710874818068508131218475413791014242490908975055347759451888004916155571245163562858723005844584977277265703865070425294270458440550557996787713370825026993359730401829953904129707233745548816296799293394611865020401973368010852413171436033641751359446244893409467007748655743252788679416979762664206856658998647662303022079113307407115290158143902908296779555726351577139167432720515736832245897330440891523021171606995367251257008048177807147522699088905081805229111122918619560728596134268715289438883891118397993038937473602838272159991759635160646406077073839022412382827389200211726861177487112712453727101833969875813006901631084992279482597609987289935527415522204057954366239693823883725925364630893677862548644709368980986870440834184162877652421062977799965936810068675583324723165837865487120807394973291043483850842835142083244978632094334537974614119911711619619325770024971283455532613355286388760009720934374279256821915466976439374637783191222506705683664660167732529563275868428939682721470432647521670515312153944173046069672100366293270638875512430240429167618029270199093365781194029692112757424275199203561383846866755729029233269071093805937763560511077100618291802051114522540525773184441641611417658745557358062830860087917580911620435130948987353625527509398064780745486386723334931832124562414070082858171539383579291088064489870359447463570311219315859268069354229420837456994096434278377312102742324439361790995559033212234816490836925308726358619261553306813618564000886114585973658522660714790314769780981071803178306827281040460758489631519305405646877424524358077176776583535535063216302240150615586621309461418453207982561841010181503986756986009167312226154555391315141915787259056910672349748269274195825479061326510408432480432343874333725779086706215193905474500601228738959911458304201052673761915249161786104985365341295660636792767985288354663054617127815265422838889010785188774853618237859861528158801016386032036111791245774740696436872744060654140240601157729047847431790489815244048213979599935296374690856754580292762522719481580122365834268768158734932075736911598849712084665291380664471509017147328332691141710134250092041941862693630810530802554441435203675544982690010628554360928247920857703035461116946500126731276102020025425796745803559750963247800723126840405479814294331695248936925664511080462688893888873955538409623154223801517038424392363991485914415841607872583914873500376521377829235442480108356554284460619240251776389208949282768286397594004903895380617843344974696949377469866475383114071873659326933480427932460303467232909015562479705237823133938770855396059298194012250639569372092028805297992901195233845299913369205086561815705487983774129386259646372925316115372573848072515527791795034014277469307699199805225689404856168061602805059108687717031145991066859124424297519093946327474465337658373596345753849829063956545966024551117613853622684471195826128441672532764658364009968085939998345149115722962606650665588573247861037995552527229976244749461705772807765840094072365115357457162365581077226731396529719432870852280792823838860030362145257545578533940080901517343519530916868300445936927245356626293979063278230358077081907668253359547484829625729101895001659842289219419952913575488543213361779019549327747422246354326232189215598117624637550480430710364231006689962022853967780100781903629630013165667420767204490229236511995384731975593373821656244149913152897692474987946392429178540724639639713648876328097984390170001632557144342493746093995908022904778596409395107626180855781621839872713512369879846293365777972483093319730779290668359416526233896919409899816236281608727714083774033694655378433935237597798983847835902249917672443541573893678533361808759465687400977812736957825516057965311649490039421514196223055824979506960388208973082866945614876165358822036991399221249534854275709876698340748247323725098913312591617921183201438362404445609397307903072676472693541353624677181274601597883861110344875669549211319639016003286480694167250890508575001209298960222496246848548010954253594365193758713726813195712785007556776522825748746612945010610631726459489861906552685848651964934035529396640937176452954158148867552587536885063116478709170047022638609388748479660289769072685762304090846579196239991648447072697305227685413207174896168224268190461541100860400256297204158259518020267898222561122199487517050712033650999571325715628170731750035481357840882415464311279961275648523786050861778363615747877476978724997962831087540200393167710183254609775368526830123374164404501643301833186621274123824567708312830909056212340354465540596640071493037158147298733783863712251194258467356100925999152889877201878391262122463309891994827566425406013731986621431287375525910994990833851664280288330185407865460252301641213973616035671229582982600853518872877866377243597985908866089922964371896443159286194691793367119821033255167219984246462137060027069315889132808460294410307197660179719387373203007715004479681803777716854612067310405474351112225914038773413445544229305276932952948323573469076717015206954541272975352245035482161834020466009202099306984059051681636915659076696775509421226222466772526522251939849653045278271003675982257363530280675458315854412990031597780041635309759206764251980491835157034257932759201719956101054069004313548818079801171889952444595675792589744382399482235266279657599515210153347089852948423311840687178925564670169041803803233329497216397188904963074293755809251776908982755415955946592140841204874065708710944157354331761676912191637491652690936488445445822364200151349867569078098792560976864916039348472940059261197027786256998194321757315033506580522113865460051253742647024374400644830405362520992717342094238953342906512035771176095160693158607807283371766558015354909086495641942251426093744443543570310567084481344745097782432884594530056237060377675281966202224761358725595437850132605080047379933990067362229564197979342385509200330123039711122311316001423190794143958321910554453821457084418984114997560806352030726992297350249183080320693904042770808811900219428251732330599529645446887195194000858972832762924361271819707621314065457816123997522654198657016295662131126753633110784970919989713592272655353309230342088986320450984219438147053179292267644431731737946435777335360421881618803043617535367980533388667958657900416234152543780780291844119532943423854776045893854911816221981268445633657566357564383478809666052591954125581533970095677263748082160544042931658516320087618678525243312425647970530267106412790799298312066671836885882079004110444654272667451800041940837968606714782025259986783834833405875576118846671911795466205907971286125108063979586147395487588615002171472700451244734731060221471679574347894347120295689817491825034173528696982246683510564336148032355887482409535449316234623517998195368335515345164906207319426278525219767148851112335165909284584367542751362146173729033297681025589286246493921428204223539761848962176028164429242751766015892859148777614037195103049491324524424454197574211406678509795114603901033944491585307187058176302055903229194644971262191997771110311572101379344670758739336882427554562860527416871582740858455362211777903261096682489494414735548102556952721522307137529774383496966062666083673099502317137192984290360495393036930988335190581088206923220140894194317875618597398370783230633625382232720478639642482316308092140629258374420713419739372960727848979238798274425063904347124955108994774437053401197179203030955133335315652334596676302158932130857405481097798017076812841249496411193207691073806193730569430698844346239599846925530201488294235906937125600315333257889686812631346825614615394269407851346612137151787874041445833907590993471101127359228830255041461060243349910461455499338199676203261852327909250688654140174167723212176142387872849337036897546176675927560955379779698440744178698853458395657183042311884858032040664502810946911168882262796006731104593263980999930455367154898972762860658637714795528034990901577723027623887557624644936609010163298827142514169613171963113179440449567044885670891904852296832655946778606537881830703089435961115449075136308414346544051357093673612467709544243645798172055730222576064676100043280681773159007283592467976959982707393044522790928820824037487507638807350312956881737786420409815282239849145293018622975229251016352800168000775756883745780337433068142951880544655707243048080172982742176793297309710414592222373684034605521809803609845627790657769918562352487867358704809697709001732348035077740017213510274567234267038457416607725568644024384698749630696520738317625041446436067609514380821286525020313179235176135776428611605135702349150573577373729081583945688476821519254709316112681190053990358557331045352914653736549497903775556884749272245417046819736590049830548277122881453724118380838436764352094649635895332630406060341139245177650657554060266293052950847586677471121301232341662516025811954563683099823907230920807235330800379120161929165475829263365994025145856964929476006536635676236458227265723359651884817865417049840764097677926727684486928749916313614216921182914785690433269823653155462706788628811908092079097183507292503766227982958493705298006274497966700578611244900379053147971176184451170165153037715460707896006121649686725812727559203637315334801966836990741623241936668620376808530124548965957866946207778544639507739161031018228486774801943277507265307799366135634411494682480978031292383844508682961483538220642617059300992749784294925969683920990143005422766712495192287323321632638159089712904107991965702165797912988306258187589317283944894994089715497566530133315296506066600813422053753402833139009660650612581679309036928100942072316213420104327403412996361903726478761923692731320976370117570109809230870639461321283112009423006022438726037146471636611780204625761458767946014019440147460893435856825277309685000186552705545556038057986228120660355626939487593202931930867026316899850669088364284503576972579635331376712124823480614578991515024562847853416558157311901054533958840864194915980391257017400564685706594209289376219486421203835862475019486755229282478367035148115222684113270865257828193471048828467989514011855529406175979071130998800071116574928279444453999085934003786650295484395009510151406722324989407509877506098274453993615251419789849463143639508709853025396584041236569716639004062945525357015493705859345531229827579068772835587888945770713962465189394430139439626720220010175480219070917846107962048508328856485695249894984388507869080271628493146859765588562462209019985349883437841737510392881583006087692390052255512417694887565907000482143834262069600203697281797601100409290841135293546086269905744059444757028331553885063582975786366827854748608297024685702744430033973496485445533043475215669195853470437217670304932795968847675722454513154676492936567466800321551390260161166285267874174192236792466718396706098802580008822778210063846426719712862440786570978155662302636919442944231592062901759833017951391503212989088369223378358181179959295975830154994864500626537197396544947777554936620054478249754998895284993638013655716790035799827811918544911954994128266856422805782585651651357466791064461408419789033083961986379299196276203895312306705152442877470523077837526768789022868870420403584932593454107616915342879858807257101308307070269086195422094520186036686439011580940085045464342998848993448085293565186496668944608963720215272047858527333890353458551403477813491351317053540463443281580268436757518439893558714747036076596410005481549228712448533518117866405213232881516503632418428528302421232897604417999771992244537105579753730200974000488756543842984948339878416019629713966059261397684558357642238925496080690148703749446664685147062318737666984196482988878098662210004947253306153425384687935313460998473263250602694237321804235207217841557074863369079737492110709858894717073514416572363102195172915112915821822229906376410955826218774536171843345527417954980071256156185645576264111167700207265762757114793457012388018873389831152877374347967040269735622587199987073968659884705149061533048574624735317522324694317644624558463917397945965208689173582088972046956435454474302161824150270270071270764427119935809925609044865976897178555552151959508745522941830464654819970614893848253647516749817184122027522405404398350692842399771974433291202184736788374862770940568812929534453616316630254008998812207272387308471224124844043706944586178465518586667975580365773766693029307817762137333127900468143344404991335543389089806869374553984920051256476344714077767666603489474385122666714926892071687031499674761715667616972691120597757803720699983879378222686838568590892286414321870508061653709801994835182199016171560081892311715431210300895985807065585721706574228084586928158206130598031328099543964489979929136078751225214461286362947950082637791721185375141994010516214132004354132932811720579181768460398794074389887726041585587701010965476570485464959223441357497376975289478613770446827273194556430177137017739870697948421209347425606156075801088389200703887552011671706825650351041046937358794784318206083822102755167898298663625030812191052305933670300733369443813271237009100594285270827464281889254121590352988054531930530303063070251814843475104656766471950221307161480672874033129740557976942864837388926140257751699318002418509185431830551623205830061935934727540186625226745891175448364673133994396436764434329689040007257687878264722113417158669248353430403388565327774936773145145044727147986322476345317332055334921570018604724418167090916685033960511937623119336220001726681361293036455837169013167676564910052436111761865442903903883150582086172992690733673861726718438815089620342466703492059320786675854403617451043614634194656700156122115650660286135957417098125228438712285009538092297364721669760965968949827753510554694153659759660990874731969582185990844849978916704721141380814258412857463192036458257179500237164495745390453104439628482045617740724450571195829405933114921927726278191412990851515033933955842735855962122336742109303206993599560602848354657859934190463731981719142027353242601549407421434040934997698730146389319483967339925417952924783289795899234809069292921719052300661035592963309385838810669341491561476290980621392835555542437611162661949314452819643616398615018303477522967203485510582550731707611581350400875860633693829761808811461782278075395054859570629138466190298811535492058066242797889968780405163496595067915271608070064096517266791007503334594684976608805766893927078045872990511942016138272912511751254907632513300500110055702492978464867497961516756870721675907349790618528167306587134118375150729992016145204837459788975223819741752889640502908888964303521491094449130548354375085714866498926505943496912518105562570910063331591696119123933993269960828246869556789547626806987526058941140822842783399763325281177505168172478980067346847929408014100835287966040039576535070166721370065947030386984942042788476199901649994941572990167585169055094418862126112412483984541810394912269481558264001562870067773550929213199596467878268015829036585441771105067631535036651050782639130259772305943144157843751362238485119434333659059512964589382326782487425781967925914153707994994518886416886336705364775238660298751462334226304813676553369630632932804147558947281327257870600221037542185622272300610306522258463407672394345845146349861688763802111323608926976813921569588924039666791409865477694012705795625310170892818398722118453091362023908686598278821028513883485625457732069591400851586824273911763664137242773978609699020642583268592986570604899914647264698793508735134700400000066249621765757681122104020482031281158218909417052588318127436971979827160685139735537699034543835112261953474963390213247617001952984911700122177169065269726862301703776387997352366042225815421896133608374442922985031492451705537616702935449893861853039287675974011031505542208509449010670896485492536063724302751740334873687802027744886941426835289610200609826724269291940099845215360312449825139417729036500394506452143655801502352087472793503608312739329269777380869171837207295846340408836725570335302536372474073351874404279971430896061518086064166845968594009581365626045950888811660484656890158395244140471093448872251945536069999169864756194392173084257828370111861993112575093960176711423432929879608151518592084372251079492493994335209244537753507887439320469876178104779789903175720473367848621926196699685419752207108547386851346207529814001191256511842018949385433552322051596232018243940162405906132531456431146845187145708056001569841236571830425997509778835109119129633484814886012433206378569105398879014488419681608440023057150806767676334713336133419003964281194337573966296863364891018221257156483092316311886629114878367584653794114649981953764811370615506756107881972962926749999335447259064878164560773697531048974240507679298155698352397689510400583990939238582573341566805655221845200343231818791044886734805433127970185103145636970084380636819978617866725917753132276327268615507273959751583403408415003403987559224013060167734127625354603236331745840689749751192158333049448750708281567585184158246623797802656353771084692552806285831239875683939279398626273505165322934055599585324596690640561515509182845061824380334355538137977478606290937360845656819011020555080849032578441509920566316988281574052361201283085405355079726883065059676072109555482610308876838794893376892839677693647579210652043525386433858000654984028229588476051976693605802635093488991725358722502510455374295984414761317290137601434646216962391912800687526831751980927807619853945612530978342684604124290806055791060411160179425592965099183297273809737059792255862829692084194539231880088951017810442350074565647070921516323865299492377354143059085238312578107542893879937085890112333502489602746272338503359472801259597038537996992616368266825442593814601323292159858949825988307530037351885913858909986569926371833694471466694695489756979074003500517374413557217379547964217403859618154286172125735402707959648348783153521354343105343539401007287904786382588708644955483732834989618165299925295793831489583786508778515998374153986315936247749586022538354095517793620091762736706196740290603473981446046892071404766841427994834470986269579032869552408911084673827540146322191082038103074230041697490089405932120957201630284503039008799529130282703141141302873152751746951321015152559662312725926216411806673434524660016769462433754494335625065487341385195204505474852911160025608181961284389785301747491858926937423626590857941389068537311085410142227013444697023353463800324589466392808499067196757215690610406732452470698943461274060707158602362306701734166505119624251081146973931738420636378174951049534048656544619963093565687278621128662334245476602671226643355365310035553773762430322905873770843812722547127033784841577467882387378555966973423935625818256237132790708843258962709364013061627362542976122059386478363288566741003198993342524340684258393716006844865642707742996752647830563172568973606669487806295175776009167763049057254984918284329493788932978703440429957604011318247907338545965429348456890006803550711058137429468736515521632631077459845988104858297860444264226487960919956937944232086844955781416645670719309804615183942041129229672178479303865022401071614701191904009381469731325955600571933243630930174457795433257562963653740924176212623619649093424608426603041605548289892745382665774851892501757349350403486896945548649261613960712603887958486394672091608662792642365191382088094922847229935363899660465798300917320534432043409362666116451634557848959317848080937226513152512272296048661939997173605513812719638925198763150185598878868842443600152733506123242402814528043817701355478567518064389295614237738048411491815821830204209757785031425099297813586599898399860926594927049356831039091639591267463265410077529056235464682299868266431031092740795845798132758146643186717868253018153209752725868255841367223481485669892728375499614549243092461593321695733901633194133952387268500095075126308534100436950199309865935592777204701329924913962127477285377046373222447408762603731829045229725225196557060485351109908726649930728040550575841261906243631839388047927518813532826432763499085875335376751919706986736794905606124654046751476343291788490339840366112196246510797015671742191626273826574694273625730818150629078767405427763008245737709385798266298481568516565795771451157775533095833008696380614702905712256389615023760305226254374466629122991165991879359759242440572624579955316963878641626614497863075515715671412661550393184109219930055836119887742403394515936661352166429375115174154374992092493856531705344894520182388967031275902436953344885037638344387802632379349060436879572094475972758940548101160188619955016468304359293233437816327905839777202407720966399690417778124343298768992869066201305259937145228958557988731497028908143639816959789300018151416912592978615672574150703871110111789985844407793960636074807873250671038538348422399979714619687125592507362793711623896095902284403499196191839929665445636244902005318630916582196320049352029344165672458326738930823337173697138361840591412866848766062213451244076080953786089696789465414149626483656775361714457627589551481754323226288476342518907206820874697819516613642954061736333102382858565114102622712288083653216241021281125423442670578189912012761580193346144764138598430048213646316339919168513405754844662150592500708289179307323280090802712288324167557696674667379800346240985971409850777661430427631518177632833688149146112846706627052446800794315098274192475018288178791127975931422058608541477857744337308034151885056814291811749384444257328179108373924103178848785124971217117226594928925985864043034894712629028247435058415124641295555187601420557135961680964848080447347690817674057995334125543622370395326151011881938042609262355092507590265669247804985174182363736974640758920212218670214552284502277679437341637147686829251526915421087250305480486509455496468199749467880296155924814284780750258723132645981745156932821226452445927612631277477867723767099469349858032654910018922254612814748390680475440171405286442379464681881033237273606703238815417075477108944355999284315273508018098394320232361960122204435119695427127531339044473034114296504389190597471757465490031084912811974913890176241293810605199617252166622850126478248506302078285550431139842743558561773109419958544711170073496705591172715661157094581477616920491525686652570700299321772092398362976369678427185062279166064474376568715104438686524916955080875663090304059224458386810940163582043497512601168304492343466595479947505949378510607184369922467298778300308764834230723931946108809760383681956856666248629159641774735757201972355772433419220833478267153143357277910111877015248850773920532874989581142597686689014475427788447261081620269645417268068221384440183253192613376453586561083162392168661788824122089651113336841241264233804685769584786928884572533278614730747510853667400484861021789866471828587251285099177856720653293710524502329340056551524655608330366329379033975169457477628353421787050244280605497219019393619942933303326359044227128256115916301655126394143878507499214702784574716961402917462678416815129869673878580375365333502586090590693957879790437602684925301031758764950180280570898973107558567726263577894884355022302230788496076038196325138087962925162722528995872636783232103692416297891041014667364229768474873978576542056085481738355108412163230444702524561627295180432157022908689157864903493767743567542213593870488874904745545685475341576584285360007595939889115063988459702198049527353302563779003010616068412169993109589592617796607591899047347063554812263108573708216206505381769877541882655730411626986172818510138638983001292232332736559098743255075616354511310132413630043797830469921677339925472019054985882317802424635439993683340331690077676646002601722859444378651984558625927763274499021208667368508948522647286414688590889016655837045779792385316383477348921922846310124973092408264067199315874440051909564346396684675177656526099447340662261987109281713701205528218896031759176628961406339278732618229196744022805037257937502161963196145682217823570865430800214976979127059895550385955785506575115560191029280554834996164520778341541260906736373897862143543277711921221186448893075502200342700583832567959848953098485429677734161756497346958527889022661183164501838899120900529805689033583363095243802076831874137957268290097889077536860707169023195610725193325865397066726012134231153723548871074783873011221503482586040793334233648353885643022633905665192819156824451794355749658890566056561965245470615455674038553976762756655762602582836470134874738337960934868261780074053753349308101607913508411942535611053714105135361777012941091031155122220551300725789566895928637723963617134763141043385442016212200090114776726393310822688461935524084610923312740457500133925715048885292711194980693748439401864373924691278329231878159946270656804616417335142899373157393892668139615770954471455079427492484633885565807050815535837492332292076408180881082677213623247071840580335270948367028122328512792432942428384125365708136585736896647920968105757177541392488115995299650726475589783499782780985432864159500916748510382700568058439827807198532859360708078047207111961745165967404399289947643960831645769624418330221710389695395122481070575955521541850104918457242649023776481277471094077206766668000370688033767299378334701636798869243235520433014938121658761448896693660713885659801519055214574961186791551982431817405058277116979036663864370681487776327814247648045883569999387450432875236738264810293708789342647341179249681586716071954126447191049709661523324541820516018211680134793152668312339207707615068553877295920226548511165841740298130507407432255033232977916567145251592780858728640735384256050573700296897261534777173733712460284275048825382970256520744620835965857987026855247770870076825436670209795116335502498811152789307465017369544541059365093352430560586237315695379507375902203510004241928122933506872106669264477108528470998330557544542637649692629485360848848946020988589994164910368244870862521845854924948704736638614453437830957584231254168185287706008686741615259013013191454086189707268994076007612607097444890608517409734930606596548292033861270886218805033064971079977297410337982661702978232870430915404257289888397730863732484074371865499653437133493519688035813037802739417948976476190731674110864543772004026235250252763937860835534938728727796709682105027937765428814606051529509741295281742038733160162439453217722270789286092229491490398083071630028302292300778432523245633879488769854881398035200528451100203208866467578087865299627346449122398196568766987067539323331915955844477404432183004309319500851669615608653265575700543395486508029502435144664425361772893603178943764880148129478561710235620611244788184657088946356055661599114215416434882988635984717542398019929409415919922624329076858416252998611864496231474888518919602693269529897535985090693221740602551450622569034616150338185024072850150642866869281733896590019598542727105423306666426109907299083241257568925340745706214667681932546567437844220818948351382621631248956220457899692210673473853965846901635760732125345396906279480817007975620966698682693692651232510879528564594492938823848786830868002277887091913330696389735024162427398552692790253161816006683773443811962996190220328236943807697639496263789971454616624388075561046055268292867245763910872285392497978822309677988307217452983872335449757072600708625138598138329063929611175889597690413252353493606276681293601307813070169879955164663397535993355944362215877307411470916925983529807533524326588575829883160075831899807611584504162959876761891944207856786127768510408266363691370637587790703734032417109893471002753305180632447565923815892097254051608400134852117002959424689565785789307547575465664893251993717748424903615402419838923901067214469644305538542291930405005147893808255360357095307655615394142880670902492492106115547874813560122569973644661769185487058469290393053064348312702660745579582518610831531518100840362280978711574466683233254347415334164372541590866877207657099304215403135664578077171570152575142981930467252638660167995909241223950577748687577928364368030301339769004495824273906932146879441388637904725557576312426243783022186654708887908896914738728708389134639231240394139533688393365748787834491178472563603983444807452348505136026219106937841774341889689609170759756852807324919674446035468315113965067657989352858543214511446865413397342818377754489150959768494878124566815632809307161625198524897505921607250434498146073724929330072641168297567504122948432240651857212875045329577581241361749140068302444641800328919717595196561419777699552106068358486925022562189484021227376714932031902249096078845315554113399868755387824801160922795135878477698413923249004286383127988479593776132696124557916971666838679339233274057524900485058672474230549494164201779722330503555217393533499304551935906077356392222721655757459659772982297964673084542834873580645121928738571841873521240526240632714526161871280259170175222665771740926985233578918637034773710289555745374149681446377143560603451475540109808371810965317018121909635548856286383459495199481578100601066293104965551987257482771668813624185529601712251809319045473847408400032192897124178073322750196666858795288009044177277670861462056493417706639357813822057134320680318535231015468800808127410823563113357848983045741715457874138927830224335298217668859347120237138223218694036038497025357381603299376424254178278158005673946059898869177085935121118128713586890535168945164505518429812098835094741907865532929984125253764521044584960743029172987195323161503286640355932086128756924490898738285024352141850057580329541886244716072207390701530773022125075098579203979394403266151897751148593699079639748475696493338373567631428491765759102158736326933845226096690519027473555507806644107857297198039661949836982012639839913739305017417795281070327424849459622648704156056079815510088324374853682367159628270480932965047458143744739796659894850507805133829924913813275876498635670805957328557323602433334840185266692251738731447277741531288262677660614904644211568184479647661013013308022241585622145493861111648615362048933685158372050004806840865352168385267296576891528149418016921658733262758752374703790186553997603755295800206968705484034522896644589345774543722576749851958898729155423847426172135492740106405796073957266820887819755302229668536195453340373486861280392497036529848036680815086593215166291525462183805991728076026370868261038565370165271890799425263950034188378990940335010535430202865470674079945867934733137915574357299660108120197889361319294019567277916180686586628337405372354444112241356924257069120126756736936325483558904744422033914081197281735600303411723327695380379463070590198502157590650737201647570036960866968446214330131614797476149544926196953981434565247829970161336957257853875857904214847163835623407265320540903735040961939306181703256236392858921803983194476572429623151423732127475016507783601141577426503550979232699704146958581515314546928474493027345479569789123694924630378320075988276293073147435399180931541373973076717649900666882937804852513206705084404985938909864579786774248245751222440352410208716800864030684688411082515286428331803891006824581822856286760890669254470833102000987380914212764866503459898536082406223637865641073613347201861771350437095316061518668455265370266828061182991593464658135819631816161034185038389655706547423467784902581802565085693548172934577133773230647238801675973068625740286538843948458190224004378289878310853072808232194555594404207310845403725424717849072586161930663971844674442643581107408142434092335698999634389409611788961865558804863485592039185621589575369480598426346635075744157664740894452539487637533265513050726496179981664280813313193943522625814266248273390155790965185553585650950039413424996418278267802545490908254020858753755796282675717146219921723084314011199268975011945951246823137880217468155094675314238146472359509723135794883835388659077147722431935163927115409519603846615690225675755992198624763684795423795564364082359437735970089505391072909890345845079504505701618613234530687946768067973631897153409254123823108577283102644496582257273916809953235542130186922071867257628407275774141838017687321685491360458903160942974184240213061348521911684718482239224667111993537853954436184316692289723653970493361593932049793600325592942876229077350827041617479369789997174858383049569895078031359635877235504080995534512649736683364464124069452806346319540998325248270752239314639118696104481438350094913285310447466785823956141914353971095998593596844117103450062725783271744290668678002463304427198682496601364290533036082828597086878905237351606289963987772874745573596113398983333566947333804531604595231443585696990079236580688415424526124035177014511460614074615406800449814134852887306564383126221004810910813473409621911813962403578820265530510926732751073852281713100385805386239895190983451287625992250867749162105993572504028988034680386371030881936441609235590555386273318876750048733771693885998592823461968266665760228082223195168232267082191596978303150249615503767584994729164527163232369798820511012528903510274724874167952024420736364879304481884858828553447547784945285389732006511336534345116898747134106638482400928462779649174221085499901245819223529718274067178131398954636787361055653277004882447247665613705438475864145301966220899844155513125124698507766141865450704575888395547755427499578570272416776306424583180008232135296533878630341320795878159349684451106030853206515400907417426888749269645110167538011734119610400443254415298478110137217401620613490119563026762882886569234823918904765182518965178336702346177264028316937430994813766470761318589384397980757181732052598654931552968907515992573992329783779908752358072678084007063158251634790290864218339278681589496489121523418106485761237180383375129347270236425729511804324673607784505767562746281702888361076168916296519410400567751225587927062828838529215881749228934450306026714705867789340943559090700016208917586814066970935272989073223817496954219389210315296981625291329628466222473103792157767302696600684284538627175345329378885864301614720671933829283488775822639971934472367561307540709858305709746563102372163906114937574340685896315422900201250275947901643084665910021076562663144687474684655216574798714333153750598161077598250372757713317597630983728373956929916815028273587568594790004797959136096206787432533708910959863514812436559690120017243688918385147666973590909904014486069592281441523361679423083893191637013904557640998334133434640402041188121724244166904167348574774372415508370309557901204084026085410615698819678866343575093265526228316557778964942859009782691197843442279356573235248066768120049451237443432124131952948959488982078286280286274301475457778405448595777023592419760898763319362110551402666372458528246956959442765746240958493928626202856917921768793150294863739280720791135052077466976122771420056334884734244250918416334142420062858230910541607561353714308927283159212196779603994581572985438644567436459312898083423127076017743772981115839559135593101867885358929643057802714548090004767236476147088738174706242255441990568017529290897291939059411091970251112277132497853678211905320012714545343575994521007161388644424836661071215152477570999487658234158390126887852444382126441927771052707453987210653225533861227302253742048445101388681324464826085038108569506983971509649712191387125481807472352927230670078922732762686249613927114911249317200418525806549524731696454699259093610790006229140686972279328540800830822325393389806800861486738060921233409225343303409285161750925212671410148413494771037313321824528311372953038923055595658632501973093713791611380289295960355957522240835034542514673893323604412756073130033307806181004224777087558811025680294382549309620636660799972532474932126755295044693187451272062625349692729911546037885362842910252185936954617730935915593352423069594706297200241559496101342260655943204217891245532885273985352292727922615142907160993317949609836464791512357002992607207107108205283975584079361847990409757153481388185057335297285186830243442618358658382945075237069087931112677789053671698523412002837197327413697701470855260010244439137258937128476905274521591124555486587062745141705193301352359885167302617719716680950334652345475124197516294436015622559149806133108581440366554947382250646158121099608368960672402138750039664058607938434835970054233645461630888640491756359671416119196904155739064018344222609908362646011903928355447175110071727158373507086572161879909515517541451767886826476697545270890641188053398641339976602773578847881452397594087946262440752399929644360273287635420125585058227981441340607949891051877396516509106502134267834539031529514909094922713761989271704901554776097235613894922126004429385313100093938725690175273783624055394296632632016334137785500330364765680779977758395846191783617676458447409513588797996554317428744622371285168510380162788556003112910965598848160695917438147225582254462690768650253268655866353040293855390077855194966534719527446499632105120963495729732610234910329829912400008639912263043598546703644682820998276474018653319686921416164431472296172289997866347554213152727148813832215504141100034569838679153412557881934676091539488495595007112662925316508173830724941423713025097774847701310050887032900781222837237376013941130958335125526135165491436136958316266799391216776767624564724505766027971591891512387430691654148261751978333792332705085693276337917135445857593756778773841640038416491009391023039462225265379432030378931651891912833073110004387404358637309246370467689922600807470434812849781049746923385637812919114287387127315374136464914526437227074739414038528462159858719684334328985193279962587731813773047445546675401866174712675430580339141301899474687345469836914597318333839158254166584763448642344457859027874909390501030216282236602596382695846555023371760835161738908427307977364746061732944826461172688362915950004674628810089933362121452580075749094997327330593741761756579052476073118734057871623074559499869978576185075424343859859843095195398382352163677554981285553661881055979005751469796674443587543316375688882754875906445524558786070960451258335607786471336430459140430369151849576314306128751661860718648900456377720583150519642101230141187372738746835667634011226661681095196880812750428300827497637493469488611461406519732548301463586814930798329988252442234811344437429711694344521035076809306471064055748219606353403292277913918156154648353522403583735482676346709212900359676600313487987563868333762674746364109703321950166599918665408758855624573556998614922900604406548861889101265445800302464981286301185990854175094405466257684634986915243614536202142411754721756104910203067778559721414830525903899534710589530441018181347082281332316745542741300583422194775679437203380102631539641183261691658417055272530874854693521193204682803646506787507175940106787018566041654323002031093280003217095871329195445635958088597686441953555698695831227506631521229963408072412502252808804396821930379413020076208170504969639843962105589105629319603136433141172755407249414469019985009598206262043232352518735476525310607744080871416939610949069541689067008212612709897360174776090034333466991266550491371023737766218907631312374965077138906131318029632656829957474710526157605868200382494059748584781902029857019568326939416540546365468040072685223462871878213706754900235674666073673301542490704878515085061275865361925712701674574052490962876525838907807793246336564194008342756017195322345604802951644142254963182558445955063218861684943244080707296121316382506857812039971908601583786678138316441630859884253104181358189625072969528461022198574753079108914967788581668287438898936443195007499415685682090818490730637535761176291761918151435439545315184731557542970596800978085631154590494179821428627643058590057038912261948113461446640035394991279766485397503966817609079922106339314748618363422476453513829697286987820221720159332941495937422952787227520079996195656143510650456105980077641892108943073039101760613205994340185247942625272322720731250156561326332126312342895658815686740939333606802314195655621674523220681755559471291669066069422030141441235104747089927050939471284668860304297450553922414711727047890771992778101434081480516735271014797003130322739776565487308224868189559236855565528434882219164361981165205105281580074569648532110278434160329657802861189320634739944966155282887613857562131482030573049991730959193861820881094466080163534663693069331913241346582335126822436074249843077602202344981556474889417127735922037509388865969947144948122153883595574514322431083871166062155965332190992194853737212059336200187536663674485525937379949997067856835539842396092782210269371627045464413944561818059846319705904494288103251546215446544666624118180939275953283199545710270361500705905345293620464910626519133666330444950727111137695077558199658295904800730907762832546373236209727381826868530233701102356212151742489415362690577626923094028724550042259936737866157089429301980868192817368753259114263773509456976808642152054271106381202349743911675808285161442366369209896784685057506750066154257046076153815003235980051310482150204177383923188493232783740268037434118011248844181219060070328696792182400780926241085285376478917325680177897100797438354110569517086546179659381010734465899464762690286162608741265099194253289078348927743296383194384047109423400031849910561363776624505330396415005755105587802464405030504077282478373385486961538917530351263781699878246331284085330848674407848253127269224831297506868057907296011755081149604655779465085664310927975998189953373028654259489796918128418947447292033881960118329803796110341893058351905934344842662397898998212600875544170881019548574518703671570948693664299609387319704097886672595613007877336518026483910523461952247929920143685674924393200623105439003413652937415764405211644595158525749466971032657025106435195514541122160076426531462212709902934297247902735118189265414497235526678442677633622736361999586575436870980833191833442354172155665150547955543117109191330065448607413428183222693363656220684835461826651195011969494037443941821866190397284063984792065150916808187101763598870550218009503726771308466996668056766448888361683301262714104102988321897714906203589126277802501791100017145251744291976526927342758089175991936057732866707564375630419979161021030304138423175029305302652256613871608176090753135017256080313778564816460420362248639805726406559862065888873600571903982483092275656661142132959646049318663011495608582290878807727371884121022396521836822149093744327850920668898000664054660945767706484132564888028661648904022495250718064064667718000562777500038976974945966083715034432265308004898606319353574689739498428387186358974336280392122075424193652444166720092050468089110684048635034517103489322356735431251970548892198550765231150938094780759578654667026597211149223037446815006480212891509107229013573224626792603044359338659495764533765847170251214220901790140208569694304980295757045844243060223829056291499144913320141139396636993430106955905376318077276682060856881927853255765113870075115699854469261080054129992236999213192758677752053763072595339294715634982186780268647827320143164163818078659940467461785249731259339111434273750417408844065232925058230286854211068756785534211414638889948655992901463251541066146991586194837777310422955833703195412501546154095290710772954788000028181160845860471366164529666641826513258452760829433549398508114971034690118317785537240264315774196742762629607924770727666418924320807160398202426397759830539046314787782595789659034769116968334789577410715485881060882196192156746306011568129702212708531604447478727836854125267252918984811224802016349468707260314881732588785622802304481430609941279869423226444829277190945900637583947208098669320171199168453022719503124138016278831191671140158798875695741241227478884852479039801410032323144167663315213104646184414165084119294083340482134632764880085437348456900186133684456553568945815443060902216448661120461529289612082723881461910679677642704378453338364061584130665530540957532182518626883412867218352816118101363114180649075220964483404045622306925754596836029518347450093322732936305858687977464462601160620640655099321899026126155141639056826479184929680021833641277475207407826817453723039849384119990976475986358926702653418083869058922572859268329116898698070340623701603266711422211062342037630575631516023702765153204512017103301775554998049353767758729876258449523691857612061833208040016039482570598249947959367590459640948230235109168206631572129062903003897095148843645436580186425987283775683676967748080454170103513240066477579484924455218474695765822537498500240086017569817620245111418843511033080596693281996077100723158424845736848665012164151515098694989263544171794868716289514071438741024354001785017602958915741604242726435429329164625681534364807888259225189017447478861350216376273521516121152850884046686223770751471221784301038699785374737514633264977812695674706474250758473398555166745114579536925846547249235086280685168558433591384008994521354478818703454110933765646557632714493306493400252774028507638971297813234262322904169827690540227245886045242764357758177535222356717763308946582351968364240025513595630234599844626626686873591896564559857950746712356641142170036663207214025832385918811695187854331762409367593450268426039916569479541886507258917722882163548250273417849476422250440062487186129164971724698841203655905909363409151045997021526312729491371944275785192665517777120699775306634377535049002752270166984899385586636840534367689944524792327863082529776017431440403649916791705431108004890108880351428286999097744538161900717074580518564859408131445000683764291590454341052029991671995463171858482724048509180830424782769064638447902994116749191102818703855809810803585123174406785132023841860046118196779318194327732161279024946091055902747243640273746076315079085561745117928004273786711927484836512616582897876810320017237349033848229064264818156484080150667724076421559461497355160973343636288539237915879868112010017810096841490029387699906373028244346703917247000653646985789552185446227320624063850426046396342159940073775595906353313156987898302162178493669926731469569606171890461549657575265138602447479481937068625891691021440047168602063493399637300977538182918090858931875663465507832012448036097450732853283076615351098624308254118835637522988317558951229844120070380212336340907789028962610067797457982474108714103656056409742464771615078457960742008809643178733854534755549077942504990419878814896028143735932001180494114924903455352225939930483198819103322571112135844979561995895140499328302182435143048576030138399849357211282137808137659213228638576962738396846168650946036127195084603640175261574666330200691102162309679470103368705098304843415414241162940101864958356014587909442219029601303349446163660247062225361478068533312558636116221479277253948892303834623319995847565915785050422090391194426599823415989090529542088241505162052127265930809158698841398264396656117342615020076460452967926151934445201089353076367965476396345145765070347210608767335414816440354433539676576088630556334370578067612425037369876737275481192003281973246030648006297930578837409140586034025871543906748938794801441590114259839564719981687935554475775445625587134964085472031415095837740253984599621907065690060127237919621978700670614594675948159890105798870893500528000304449380864582775810224012758821671083992057322749629768072697840599309065299310111393582507232840865300832556022147916728576911682064439013132718198746219652671459239508237424261290072276673718744085510151227080897417619676952102998754511850603018095510465511537696456908779871601821108590299895844708839568652746544601120566928749211352521173937403007943390242084448542808740122897454621963782325214854236805699230724856248928136643616665158526353102079565391315545736450194288290135115976111069364114387804693491605979275891233706658382459397904485158235079773999181193809712184626318655078667078305961616309874017867867586752816654255265223963736458244667727962805459421797307430424067129739605045534286719464407727149313782117326020352585070812470747607548458225795949700512917745024357752903499034399041466210874021260415968465536459113134246446175800466999252910426392764730547594268779020808486375652956789503099989826474690854408401593929358831933174012937334429264078785906872114843201795368029365761734199649823427663645975624960556984953683072097052512978238737554625120862710612879386843674303571211825702572138293623127806644857790275942596001005923775244587239376793107630373359758452546495536469537597819006857568473823512526841344532724869101160922858969829809871709424873506547542721060352670811316868717459302734869168291837851077453302893072134705235962320363609886918300416272790198955415405140936206968042138963991370924183872622023763885319155253545418558526523976827821804762265709321236524831428930603177020211639886670054101821618722551327478509344587468007503331467834965499019320915862378937159811591347873540638476612879629525968547179487740271900836982143551100777626126958886135354247151625317756280659665465394096982356373759758752173242798411482052496463004379748148595773128687779203243484651446496814308184784533774003677433802812924073233390032592063614065630176101997403358118053098836959349755883311880536938266481369850541979642798330131703682467752596986385542561990434627506028084688503369044843169951904242591698578616605936152628894295581721811072600030738917607097160583588473055191181837540751594992973492691523010447597327638176820821348996486504917964966124584322152562083792863623176220664990085096660768196948478813964751482594934419325422954160818051568659186892246575464687931065895587902039194020529922228197224791982045298631590965369699487846560476676500271397641816866814139822060949817154177437168569441117605030468738901776662163521095341584060039180377050481395857835929789637733637578534568884828093888846297260177808306052559776757922790210640666762913931105670387468119601240028959366265474589448703368946852963061773586133241584452296970427390997330541296291093640803764950217148736254195186475858254107382462101965346132078874285987434286875346340465048737003170626247254311891056688540749800758076275262934568947885943542223407705433780256694960952843749036748088315731028006668601876211085553913333647136381569065940038769371641719078752999710433955227586770398167988897724107826689568484091246170426199986514469782989371902640573434815585313424580403623336289175767970060737804516649888180457208383234848302125211264290295542993794461494729494283592190255252483426831925834136582318691955317279155955724103237888894252682668359510273130918813099517831141874666738950537304402981121461234077566794693775531619276633506163089558399427765125441100502789243939102623692181995549577016641428779460256877522940130752416617446813624742081905737259233841965356911218101202396980069759438317414177818584578565302009942507576587622869565283000570524310554875427169620925177330805310435269871993312405444069336226494889566075197773204501367554648604285433518633395999049709180988662957520409581988562642987591817461442693804079926884613948813271300653129481382755126999115490986526902919346725552727868338831491283036356755685500346068649322247578341758713913987773616450253735559147950268344482016612244639203859080264441677880326288177819956947942361425527955476768494068371543133273072717957314964744038517254444837134507978165066647232930410461972869534043329614147449267014486772319217474111128629357712612326897802825611677099515958794550180548887210216053352116385257023051256795376854261385713178543407442823992899288494313289826103537529080890958028127004691716528894120514831511690788481523242825224510835153696692287692428288292581738590727693475515386427267559015537274392999193428424363608808174954703952553703180552218084129159468184649428429274739848106062982125278554301872847235190395314936503951911720130858147414699198543871326544085260295800694935986743592882415722580010297842093612089697131486289551061891289767349989604502389818790964165692991920915881161493145616089777104978161429639177443052540436669118305248786619852854359168966709521020900328846377903335257956736129742282559719110582216717437487581592400025498096891358391768233220497908114132622730560584223918279077296097791410499449800340857711430821272704910993927345152694798934296014767086973056922336277230004857848476963191797504801667274998867280368284532574369749070798666826722056843343067773025395516396874589155326749758313163622112717065921658759549015455967799837584390497728455168882297869630417433609671642051111537708054246067019400311342598788103117084179697476451200900272385677867112309031798281638350653989541950785322351513133427050103068283079719042203477772111817762804834542076113265965596575796565022916931290727333141650970071436785329027281587526716520454365461454214866942686530474290945738216920226819636232928949317477820615697446052304107834311579060211981903287213907917428923969132287715819628647404656468333004868967419611292955120281475778222788268264788827252641377245923000476741750075478603479437923522737649576025923731521768676913996650755502027497577623875559852221871416973330194288448115026035575327551674444759890056645398885421409387597939405326775398947419080516132793587825473865909244085736768702979332778476972149943202528351745082870628849137673815925486239765872853317509680440420185923921833258472575375704654102483648796123924522347265467688816400936253778621556219101332186449424801475986800486553509052342406554389349314147387717839279942356656101514586539371551491857622215437893949434419952454613539975868269473290203613212169581324269698478531641195971809331121507849122321478289487244202949478830555220064130667620270233580874542460988101153413514220698010903449280926124780284733640108756525098630767787185563013145389155424029191098855617069202698222897427225170536215666569657501283761309937996836594448411159609853377427448520061969571730887219268363615865156572430462838419119326802937254694955405070372478885472318462914818770514859613317117067066729245130818092672511819163220788606864076770387780707347961735304266932696397284394511589320773244053894294772327606890161603963523937075440369326648449976573299341753674197160794913394534554171954550592514168802433969335882440569592534306688106425568569396810748667855749742263860141795247983253865765919258521581269430704869241920714396292957183365119763013568655198720640594328413940844547484740199965849833946540897093741232083576549593098271764001055490624910024857653096918301242850896861259306524030371144493002379845924727724789028710908720862123442704144814131923074422403354920893665292013945888453862450950037396389302294710006020450440256198969625801632415099727803542648009477385283145931867997798573683299139236634571344645292681569267735763871561540904965022270670829957911779684986234513418727303516683911557650636955746592177267645794346325067233789827036225208806581785173727739120199458173928657251234436962954309628412720033759761256063341475425955234658943456150517514701216400644482482684040709022111651239939409393195688552933391457927196617688710222401462025434799491173106282810931752044417822150907557563959030111299664664534206438638309510341983599037000191208141075534670665359630290315125644213271216429355933902823829419888561862098293211022984471124722809329823443771474255702576853034196715254554546519870615084095327527419474450769854574793606187766327476856215806380527336805676975142101182472490669794946424350556025451444488247081394296445741252913694001501171826273667633804948000840431770135474736524802982296945452633803407643102633506322015761214463168825134850068471809845927965778085330064354884058723020209285322106618325421634631274756934276392644765389315850301820937366626361354497091752579397866753119849752126126761922667171331279342828002320937628323500977260379320908087173590108137314088867329310295787337541325760540263088892875731525684921168951750436949892304269848182062107046042757585964330167404094896591727500934773978417390718133736694469131019252375921251924668629412497954254044264717424872275938229322603912477969441280443838389683636008077629648363614892540807049790624654611680613951873104836381953850285522412817160242938567554245436125271455702036092183428844524305986212176408401917857025406650382685477658190886489946958716788555881234358630622856468939417621511163699222192694014629332008383407709244086235485672276545471168124182468613845240690077625721133461954516214651457865719840063911517613890840027664076916635627707041919448202488298325033451606606880198726012342440768852158703942061556400400022424897154196758437948825696734222175282418224619901268519805433665008140089756546835931602481389326286590643712899505726465576015540187622749044932359922932949422467177627082246506934646567569228373527207764785747089213342851231939361260631143437967504637947913222083520554284454045727662525268904604225530970847740089057547148830625110300815050127767120622000817895124098623078426111368002884266983357822784135021682523866583669925834555208815466739739225200660679440614212099274790319635878701250091558555389435036954714205308939122613122568050878979375831249577875374566901481957911769269548945983349941934022627870766296200350847229083418151084449027671222643003377313586309344574516581444906370367775747105721175645044061116498510558438791660313708373871234091161008555384015590866675818546361184679465995391289766354865488331550048758968213903118753736531572490618855805403462946208122128029625943241978926423772911603950685754526420363196426474644351723571977640257077513969793538139162389708089183201693175130636991830034874412992352347987661033250478204138286961607417880830187049459075928757162975096694659449680744321511111091885003064215090949812377128910973924961875041694929499124176638503647919310129628564989752117582570234682928672836437768192093436538435354822600781293202761640988012475868295614463249111803919450956896410042375220849404664730984938660965364774809513123557971549740756444357737324942675912073835316236903960205274111306013402419674623657606914563047055287576311153760895117404998177820089146054591003808337093888309672777066294668769783042197051052939135531457696343670082255979165693516890601606440009350016851378646403217268854608546295119901774795816101535083189296733477627186981571580399463140440181077051854901437003682325973975665437131320589210069043684390799992355893415336062184611052307547833861786158686870051205464878375742952477194862675941149399381733641875273407077417183453095967551070139406004255601559492987206446419325274962023591408563319263143841538995213210317350564036618361201099601457768684793047113815632069089061244636524461852123612758879105631753829893075853128585751596304802236188238905028314680103924652306858892185594033353479052057627554601449498477482196996056956529708660586089246054624021608404855680126096635643613430713057289453950115570654412011094626084716016540525344834196427831678919994986524537882453392384948417749528624236903401085055768602734567750663721781834983697449912099747646616325407007522670764658799771842948483986146892590171333096031536667388395818797716034853392789982330122819167610009828126267021938408927912156595018522938561729852535730737295455677807733276435388320245035412084769110553891356179009294607885106789197702315553077998227460682107326512105110872969106506474621381816349658703821673958224833093278615381915466408771236797623763522073709970671559054351308415805722293786172227775934661162424003957383037379330068573826992432168086170478121754447855059377968856452540682745047594067739040013636889010051181939499953700762222185307687859424198750015610520463629680654936372657975609830896413550293389984225165407249813820179213325528547397211939369878115180450460732018497533099185674008715630167936323051594809176940144529937690375338449199888853282385014886962683708145728423413227515654189644931760318717250142608066451574917553315631444792768221586254707917746070142876211665440648974367293735385166770602884551439335903845774216908645257228395044152442978890262226903576132472153461288552244491927909530895551734766324618670556648838842631550036926353362197606416126772006927663218666924575173510728040541049848763342569311714549984300097944259778334356875973934899490860593550856283152376474610763555667412604142519453293135055772745843057846711046727693672303906200692637951822139299035509782476005005635791481941347898805794287730928370020214766991431743238178708970339038894228009857228603514781857670171233728333631051128106443469324158630367626927533114279955425507595370016977586811531515742771427562396177914076298062043718325289689365967253957279651525791157325331570990881066609466475451034974129804383212931132576429731832399665019715132701377824324610861481429773025268400427760160398869372395900068769781926080317686078298832009691340235452495627107531405190972376495988777020737062759974149763194333959787120694660383993659145564659888362372036722004325811315927541234039862399054668653265504035389388833165855650129058628785120411223379275853477276070270307953880215947630442477962216114622270724586030678807025088163988405473115323288035385269925908881069592203814568137185636934318277009001028575536784285141092604626447686642384368712200582877557007125123284990139840907925563119611337106378071073851703063506509187458809081270624041314225322317107829127471134465781012198834239465572885726250738235704156535646396789441911579128726164127359830118369711168343909298248999866316787883762604739775412665180075796197042159395067526288123029842869747404269935184609836049775102403553128392710802123070752969137644374208091893382489250676279281761641299846846147193995177299005756306605427192941822419223762844466472304494025336860760550093199526716208517506629620338930853847423028134580227703703065129736134345509217937746727081421727273940416965395438103690617743751689936432708321856354884152195976324161729596931491248044940716377427910321035625795294565735246340096033133619937835429838521878501406033592114991901723124919785117702681721689468742251354105232971589265234488638580218434520575578286825438156390695561572538403681261185203286187247510364989980624253940574697256683014397206953510207595159277291811611878692432460259281016362576512476337963932536181677541702622798508467303094309433205044616913959005211629308583697504717365015318571248929938588863602608603114259819948131717437236821160589723917783399152247460982939206011720824322972594920861248859902949805604523776033409539770674215646624412712643425732688635116303538657114395992486773106737407358888738879083306518528973655865591423156078074471338661791503582409195219861603784749086315194907013520637735130300838862216065775477353751272158931676870243333422176733906542486467016440159061024994115144301730303384472729530803366784850666699946139571990805783794518804379551295715728832961648137674585044136819488135874425472491536229447321291727484526791490801143680863427928953220684177155523730518256478142118803139594632690973769984392836917363583288877997590222744414930338625239502070079510945301443764451814204745290880052121055135401329199960087295290411898860420396983643709070959912447806692249009440577690932427987980588940884066928449231699065166322121249385031446644693381160227401171805967415866836811252401937273645827040480529831105289576987633823996461878061617199216821980384786055662190652821852790288684179464587240081232449312287686416577076853559651438746775843480275661149540067224183895306741101370124000852697775607031664614298003938915779284315827375949175807543132988345394208216650507282842270448840261820569428228973532669475754661771272112303817740363318983618808201354243773126152687062757347101843425188939796701639489387047818603464366221606341567420308811923382918378744022852947258964250364126521180354753959948016524192137564285947440240612489495407974097955838463030391034397374720574033395236818334853054839279984524058286107338265992579658744592003582157921725265320479340942885682438892756645458309650154761499903042335219988885427514325524964705821035365149578222454096938779181189630185978777563748090475523348549426071812391827730295574056385343785162577680316932292086082163425340256011505038727297153793700222482712470052745063729880186440274829771082176723164418511972685542527821599752941980720059525033076943264072308951805259779968014496718736091440742027352163229953678041310441870751332735650607182621044583870245392161255751774501216347455537388939990811710688068731101061790823623596688028591826801624525482247181612819270751289692578060020093692812759709383943548238745929568660092661472838720207326318865684773621578364146700709884817902630577094492241894482051961800430200632515131473551440006820612426672436602924793189572598485299721813966961555871016381472876956051182275992168982394953745886380467690529691710364283585273225366405516092285525255452116683829648675262630542039792033758256305735706681964012384068708930392939605589941941733524585846133141593745594757415339164979436951528502728342250386960047845480316588943448172710373340572375287238489996846059666406194512640967228099266175387065772086607187951665988984767031784747059256029210461046553859661658250863335388874240106998229684541758664240240519606447326926950692988287657638475987061193009840119638281396848067218874950168313880599643766720058569973997271650158946022434226849949254651293467691255161223181789765070653803713274442000691185222417482719426059623156642182245554005397923707328643182034235993739946478991622111305035292072778877769310491696862520642186050922455097502581579967303264658590641950780832495746703064754674827979876384658843013764954585875307817606703335209733443260894700306420102591738750495793377575581735618677676472397499415216415403536636368453924226259185671316246665666003362428733010405018904765875269258202602865807208151357396957231406280061380913366813325973249195461684569044596522218421035395576861477735316933099164567080400482860598548189954974412255967900171354653532934491387101196461631796373244110060863300757256682757030003032325709497303969664346985705488273629485147162861825876385134481995596381853345492584382095291361200708675908847738297391825526929528444012374612291021077230113240230594194844685318732650988544669367057203079795282745265395889373301833220923868551294488964795513610206957818209777418728067510546109770565889586466057572220894825883263301760972562052795731862741036665044541789994067751349642538881080765571250144427402564852097874076518046906710647769058392293813971814273712655901169117365435083753747953126758793032767354484637776402454021722232141125952926011823252858722940368293382941854842732211198011808352713268304696429897923091465780043278224632633048526161625273720966688658700724570980775013587911493475647447823304110758336704729925160563832840714744899559759159161993437113347310984432335438308389731087620647134846741211774140786226802257246457620404955546294200407528300699974882493791994006032996842180610305674933424642476495500086790022045663418403843129982482405017395021654867118006737638771522472918496524437756611277670895791140756829091843953457354204646022456141658064797223997850341785538017389193940373258849047404552599312166331633292555274578122175655365654356677624831587790379611763885039276538865307400562862675576341285532012864374398239483065182528934293705419197963492425945367645216648737169378049455623992127071605167663317329960749002426652537508434538208466461254635300541863874357629247250356616996863643077402714917234399470317078187462796111525327290780457758690608820406685708668042035595935748728259731889347794473474906487644271283411191153552963109505165132751031267086715325525504016971476401242219393360625209951508843823233245104688301674178559988571688155641765318834060514097757145292560921513334052340797200351333294349003622789104252659762535513301497574553033196807820138525000926067416445129427237000534664787032764368029587090187454989745201099977786071533923230310315717482891706937998211213911648246196068757416769713344928747165233159662680887566649159616148148724000097704482045918690780163315893062155616153590106872877448309036129858652976490294508682660643980240726755290314136101679584761959293117346086906273470342898246683518873409711916118263430604592876478185831270451295007034829743943930978894847045362625565353678317576926745215110280887851126652417173184241572543688309204938677292413848447083973611850807219203921972151832054459141494250816925595850366951993008011468276389593974842070977839973291742950956972896198001412950405368005664583573653737614069317353205247597542284687334155967623274533838484287283693293513565403808540436485179835854514075365456233823239300832489164245457163437178431411890847080500569484872958179123901445769256957098056373960738251511838568965476447846850553574502384183686578150406250256341324152779855372854064012743721135611517777723984331623716882065619684425587246089180264646574675948699114217680353895791003441056438869078563607751038979893001678416866442948448520245716965834734865750805076148859743061777642810323840822668407399897638566169290739865914530142932779874666971019944023348394714448194333454632297711505661632017847490755552335718114785039627670541991751753572688149403261881165656461318980234046809029091404537315193218097880734867317065455898111231884754195412159637167991220741479547760978564094550159967474948223927760754356922533379520990209904280318911965213505402045790939578496866159893439538141611443430443426948015055260456443105184595246821189765451570430750738960424895758641960866381197952476326999372135200718941218461773113669789890719607305991339863348472859817123077445851099171938575505230082056140349998181504978375726794743444233025021433667762050018529325372790141335220091461248248520269130516007231717755369106055374746678596085364603931302763063932060150619924458898218438222865009002928959038242027101827475289148504594920845782905993515480157431347577527038294976629195556622921075364708299553351441488619240035442417263135540565222296738873602632444101080242448363453058128251437538877727101803113165558757824015861687472262498616062342225470330368867659207028364183857889696860784154987714771487178564584307779916377523860680401457203839405740117358129096422955541122473489057536950479173078074214245309679966735792779550465527939808436326162582216266810033854768663443202225715134574349313709270873696744165600768196612466422820925600246863340049740067378332750347118018436583171980899929320938891342755868798988906311126664098773537766996101473517057502610811017182762601855353559466271971458506447282262249436142960865173170031786177335400254962236672693970657852551515944910575182481324034508935071557264798317678446805331363537086086444879273545989569675480493814917986507173018873057976644232147320440907643006946631032484965713280675691734463041206328083842370828876115448602125513239381752726450917005187987858778404375860779321078807285599414781504259681480616685186995003875601268366726651389126985572080553369689197463958347236354373034967565238608089131611089442189836351721091018069429651207356756960208327146373259769240107927770813394330357596184306665726173082856842124956493654629386988550103795129283557539476885211860596087660892152139786972872689492447488498621479228172941833421829004478128874648405579711321928650641433089885768464647540747329746755998663997185056910478767759652597367497588403180833429271159005115498456612126433506210307013938799637111449239826849322758553520861285743670585807038470579368313417758777100369660305311981234925722484457677248917278111317293580816078314970874834688300519787384501504466470668716847997093114879525814784371513903904110850840656645890929811703820298938587490399783060463325243356734728073398698514592853545810749599652939064607863138561360447159375500396451415530459519845749323053327610504697579502222491971652765733748940440584188715996039304655356757055784214690763303365269118972248412094676155974398702495736273240902392679090807320804972789968391554207729136436803897064398009598473304720701741862744073111724023161826592190285529478251957416713293029446362559763192931152766543086772056757736429758298755593140309231236193444355679976675864432765835112218699570913769156570436057607444210237916328939152231843080867384048301166221551988170632884486469534302541565765937912561034414180127641788541965645379419247646876125112476244832719470958229914512087844534280461796047691230075543688001664059345214663880203882501363918794162425873485978628317955818434187759775968912222614448727670475637663866199368254282291492517739560840956695971889139287393983238521313394571426446547750705673203850947158703587232801663443117094407010285621086375593429466018200617856901469265922326354906648194204402052164722518677427606369210606227937731762630998864270262031385921793038068866898639289196633052399851894815191495010358469502986350399448104907020311183332655054934092209826759674099919441516458874281363453069977627794928099748860178460941846483524560416320974191769260600280150758890775835532518167428781988200374165851965043470039195691449264899076647187580994963383742053965648091550421090069565482245651076570368777543305062165545004697330713112681428198607718931244619199944790718598778043005895152077537229202404554068372028342224591309644375965921771195083567410565431348553924534787647534901517229716910632274582000385607099959564975720814114434990576002242908355796532514589746327645243098488378182620510613755445316549548727595763974625440925957156157020565970589316681257457719128237352668901911154519890140248690684922581037576730506383338712044056339195662011325252876759839816878556940636987295234650507560436021552649397974676661119935264487219259490365413865831023223496906467992592142477717018136127559464439254887548668654826355245095069424386318411877290609603162357390473925825199290449637150512607421267181786143129876865922115557595652074659924331191164789278418787595929315024620445800867985755484081908089738587266253286144182609037542527397635042764383954687858454214144150129735777445244467629566270018064089344265536563887835876321905096290123590418492056959215007717040896542377424958244243777767943251187441285169609790063530978701393055204744861948233247869154556042084420579405675950477305571716641484660331756146187165623747262388994186870246206619895105745248875119150128636517844084745497993431327557520123610899605847633940609157789300076287093289326879666697615517861707037362526551184834420574028831456023618742922448003434592065012486282916701771177362937285769125589166759194165821848841125630280679136329287153590469171619565422145023610729395301414764407557295533813926625331250857554667849638786812546516947394202829701312355077828902903724959271020126259586068971669154822018352336382085432795725767312746761051129154158236684066389631287642732347532536692488848697488739808398246968673149553977286642892649809694444227359430638667901475746513235769928403444754153599707842420428050523627242332363441223431038502736441170062837280464552124861828587314553289496780333335855808520382953030987237482952174635570680981929979911909990971766473158062137428528441979418979946908895279028885530609852716769025660400980473947530566827991215417460743280471674874420386586865492502004863681884169162181247346168048748566614169108282890077859948460979823572621185001290994444092463798551853291287099301195303033772501269927757179465147938046171066043263711421159469135426065031053970237485766100400961490163385931828838939583634181895028722334076085292036002207989075565503671177209182346947450099051098024316598619506364621585066361790776668141613803994506095989312927652438913012377632472850037041508445482586580975889350745915153175827080001059917317719096542879720504636432333169207442290496736507356797268512900794284481603228081681163916265697994592099496502011517198456812683921666286067416395760346529254714545093577270491123057538783380048167995673358943133128986676085912457079711741605183209757431105667774195293564919788546927339237994151184626078279815827344252613579876098649884303414905564133840659148356564250577015266358401080949830559287771183942450772333361307521202059230881392588302075665100718224518116780968212372538846263904079355201559565468426481964387904429451508303945760949621527194049632527964377030012124008295833706080089808216314319646196226271511826642500300838523741380924013323387773252077933736477787460728589594471883931343011404350274818149985828515874793853566046468576899321143381087151459949482543108186296367712764459497642305766810368297760240716331480422943998006405872349495003187934729914832327310143510531651278868786374644509760677384793606227398422580300380109284709683634998030742628854016763785863680058311308896532347528266755144238252337641591492213786473990230905952795107686217040035662066154481991547857378579503650779123857741114152018346762651013444766698551996670798841973675040252575528883928458410728979915366894012615165185321131434946110531560582921932747317828225087962106590952993897644686444548872308544350709828447148918684707043450291770116288358639981145796569591067707837027576351793171651984099155678970575751467129385213487474349386784692127926607217274872172916880256179518901254671792837756207380578600268656245410220623431557449487261632932385974774450977649701926249647523562929329260494035898675304402092066111899230873186408751356730898989637757076410595285726392981294051858074352880000631511349897827514116250733109754976675224287202969104932569996799529591342354573836480224273305934641520645148747040650310222600502032365211957335892952754171221768824148297467152688868431181812189423133768638340823824048347633546886945538083777041740511313882372399462765242522134345240919576461454219132750413972924139477107559764155667070371105908730279565153530300174026506728610720448098783582333959298707534264188929020602089468937037617146677057754605416158811608301056980240368889381646434599262555576179144774226356603682002319450656399376765511418258320585678670035719961059385440926942897667160469158742223511201937650379233114862248941013525253634913258041942672495120012398034337523035710964483188282920522073601033877677055034347989821452077376352440953090545980467643133080691486234072645232579946931036458044811056759495162189852654587637727161957905660244288017920292451301835977274566573316652728314982239802160617351183198283460644724337026121729797761076293553339243688587520058574344671567688168277024114473852122823156581763698389999277961870780425679410671750734268800108132777354438223688368652444874327701811207426455310255798766249734997672116718505658800070300017256783500207880671240363080196133813989993591474571451053816749676427502352070068597382496235428340200494145851111531212100062434048336249364774191539681099166405825181962238959107145837713690746845079848559891879067572033989805573503187653028271095217836902515124977331074059025389206730913669444374848262779494127691398962581946722134884740528561491476291753926346767556498872978774074074842557208216249561005545536256833987429657541849302619152475282608554291024259513071357324190164974914613587627898226446268505282804324110978585211906667513633745349291592694682277000500854301041115001796115554434558978300533816261741955038048351475784504494997776785582500293228255304620091967491368267008654482023587180255240262726980074467733028216274211059783340932956420328244549005410972100754659704052738968476667405013285643885141520969457765665759872348417387150792320768455609546152547471376474632203748420159425415794003262303350968395805101590024249249913628211983343553062656461216395168200176251622847710099492349446863628435261315205033640101583002401710201583688453699511857495777630785181629720944193384722319502835939306068274228868413659801110244760204565940683967926106229896251688470678956320550128026739760416659283208607778212387534381931497599238445340805454540215991689197459144717351890834332941439097202454145445313507616419023619672950831214719501183837197822515432777187969625092942102658735345507763237928139512916358362955240519762094834907367948427607501297545992578902859335777633699164175714356577405882958157862417029958949633408185242914481962613378834058979162164218152452680389663687755694035711283378540872010436056085993743689596662847688569681383381222689792598435381580158169028818289495685915172042548540535189478709254608419258523367806967921662067993000774808149571051451929988137576066797625113026733078737696391996984422546687951296693288754993781559162664066402759896809756968308810390975692192341057516645543039149027633703994707459985142295785203597141004893989789831948200625528036711154606355716941825837842373211704315154126430167061711138160302172042169075211568462328146053075773806033075225527976265520483573329462974892110871230176047399355212646778667010405821508583349731560709224146765784776405366427268368885486873894570822962347431558138021325461221671176612690065463388529761080150778971102086847076163134675891926252346925850918112871894311471744674580176047551941053147898604068366849312492673573825296910224305497999566205953442992933769138421813698537926595581848180756589260509891224907610856473817071344486953777017655098670345261053974995656726066307465591774232797807466945932560900100935223418426314107292024951068636209491160838632469686316082182855481953819193817602229136071488028867107610520120031076121958934133249337101728945030342343945457094625623179491862138911579242414009355329121117802217408444436848882984229858321872174884679819706514107417612090673713249808012868089848713723470694572058249772102867445573015045542440526012564905386188703777155617700972950068548256586989180889973620058249830957306065608072409798063779102171148295476208154394469967946335500808616791730473707307486808673534188225302729123418874066110624137034418638849947208768012604489478134020407735343899696388217964439787121764898157423100040189788706509713895360431510208008713386009571656144477198931318738491984458617430426066003955953305710478026438788506237288348905888988744568012855916946393647890300135795146855731317396981200131363454867844032444583075812420742080465023833971260260625188905725068112225543368016590582122817400679574526211238295513747256128703805029909568681921049433829351203006433748020278044662075102427087433692482198031619147940990395104903569264984838472870413160993751921298439820389020533030231997083188856256104830457225055239863819765036886351436930463890009163722238487672646858439931597730906012295586407906650674492011556149588217395113699209036533655250253668814220920917009255805401402838560684663074524014554724269314597338960279893844506178883849016496153570829804043618529341958577515205485947766385270084180946096329058572157010139032901890713231713247192581152571689797028508162356478674592940444365769636619746807651281596178182650534055325540734544858344900085363749086953204846304273228677784559539086558908448213669704470030777483393297591987923098185072471456625202445360585093664567157350408103870085253914392730376909116914216753683646500146397205195945886405780048280764003866122893998408579951218893441341481039353345995121786034252017141738126792691245792426166697185177586310646451399274730829435908291625936120993698470441034338712109897990225323286297577209669370318003839226394670282056569102954009096119875334487594160169775778066420537917526111792096194428131131207065516848624798404581146775346909983768030961511231457031327294565480191650952186170639489466791782704414349974431276523736104873778596263020251770607264932095938721153560284212689753787171657516011910375671827192258633145478035175526761007429545282146614978283411900168825597487658983893623730325894368496299142326574106883622688563722361072177553650883237178992514148472285186537531077932843624108574030946376333680354662465567378580640717080684703497334101101129258021156510471579658507670463969076756654973931279689206321583301044647326371819775431528781052453409535561933682604828803541461762546054502656972249065952598804797571265215278183686545317242477935082527949334624192926686772208389978779205460651219753636464477482725880172444266841949120070931736757562738506517939969054248563499309503083214352779858066104186378200293269911168912234275969041329525547870695312349454352341613791024669961569251299922057047632278631769569703399723720566540600599370937680476296011273391298310462358435611321569368588523989387129067211243222813564967305689779840358342319007451981006309646881989981725382179927349684435679628163471955996597512418706892593574014083257242178520854656041445662282494278571539047239677293505312127519354426809023334366862905924173953787808684310635678335755746953956002088496544979450359186403036264771398885215452678153288155511687020646774189948044773389007435035909581986001434616988530042478447621188256890609457954390321693998702091027677293272175442868916873051208608531153002551107417463236084600557482595320245074209951818972765234933240656780694463044604232975581672157385244171328182327716441376137035123930130873815187893572617798214034639143653040699131374662611642977268428501812993315110990074870154735927042016238882424271655022477984606347803376997515175148271518594707418950971243199191447833916806766046256178335861199642846043257030504197398338421976318416507199423967288968734823287156727586716519212934201595162612025080163745874034825780880209434551495939922672537028923088543414533237909502212298459942042943933640318932634874519128455074492733329896963739809191391903046635437499673421782600143004363803246638102874397859166975486701958144308347701567971318717740038560738614903995825787608524622904872680903654746880418679591461300521235294346206857972687553597933218549178491683315236960579730927002754393500479404677689507413565614903192813409338038237981212208466008852266454248178308149343740989075115165516138980715992218736352198567858194772844052347926958460437294775045383761185630543826190434775705705027045223153367073174871040689930854283053339060233990945550838811129715853438833918034550136373176371279118250589977352967858694105683398921529344151880396201388747046963399760261165156269141124807329234479208432383601471345123303433510689593127442936931252482183255015640043012632402350425762846879439331486003189811174224855069164845056426598160693717497524174057674910015410026722276439262099155433102804264232153809346403848755000103843579817951148273433822390357643984392611553355288139820327853928339678173852024659670009580555991969108919999466823534400119472467439665858925365220472876391107471196170360222946291401915371056857754199099753236753172639951641590574499436629659161079999040851484900100104991023946607200032757628491434268700405958490256922521007189253542195309610491545925090415402680188168790168309167892711481604718255455474850006051311858290927464058761836298379784505508761465377546915489057868083434258911316001607848576934112533824853908848947968926227677814221284585114937173604435240780285521595466289925611796556070215990807061646367530117866422022457845948602329679609230812147670247815372849894296178418620676222814641448473794197941786430496275356572726368490279442644418273469982134410724994718885709576135890864448671710680745399326969653328770908146294573448302042118222940317615923640468921295975578741454789324944386629418490504052557246381794020430605387745861766836270362411884912551271538967008744596401659989007150592876035007372217898071141370924474817742076837384981759153302018649443789672642541323190614523962589925134059145558968462215051235459488877310215347907506031401847441196744669369473048361866551903560868280928447263853958693034785290845152718691005301029992943794879630535126393017287542742658150045482438200707416255120241347430830809408148815376033983951481699941787904369044329770503574149771871418766191393424736651127259274909222934881673349348609502307293994237427579294438639106697061257984270892516635534924737155602692439447858467220689502167370492374849870366709994401013619945300404548456663273634858578022469329983361180957140837957910380958527205529000035027570548833413726495892271196529068719017503508091172069558157407784597292681724105915678706361351392457558703455593726597802811210919564864395733421168333290829447285132947835398105774229702846430733858025337014079463540030451838128008298228919423545633418499401518139251735835089048654824757485544291799706948857770616212461170452241475253467960325184684009165198754730758029800138565517086409723230699421192593364094786728994811935106373143920675641247179092871485641441242065807367581224059882952903978870446134824653966891878704469112230626347225816287894386841212462437548139444180342685427343763459852044735151004761178862526341246022090087807107998025103852988693589735258400214755888723378222683092800511990183632545422178879172062045590700966518631793649474112839585222058787124640941505800665506383181514714971551884379580700736153560973050864853616354614811818529656206961327669273700311850560482809956256786467940722015518561597145388632045951131636973943594887204552495361078372511684199638238794609783537094986296037266028589837359602085281731809263757845859468784376560497741077137155177121454515005862504084258924553804551646794129601049251584641941335692024047449017152842143196697407208974388653950362883693321553667434729638502287760762508746550770606641101714559936347095479473066967008000438240287385057780087635272700991511347345483173711444294731330269183417724646484021067501796464022353564995922792243086065078472230035972415977108592235174862932671378477429668996273393523781338761525082501958457205900155785292072143834091333187774746626500127385520580649532941470170126622059135858640089472486981256288028637776790902149829665012277359456297631995834672451738571584503484752694975509445855810047195186736560637240066252983205441558401786768853365773464461752872056549164176850452861130632665042681053233757465303377297421849857229185611279364612783590199458619120441086528041671410071220017790076608317807363293897598136251733752510069684804225287404194418151172992866532020862105085752805449762101877686962734223155068391781841886369192893431948340365654043746962654474233692966886250431290547809523204095714942866892270496961339314641617460506175159898240767881866537226310016034850491969105081317345290057927781680113651226077557739754383791563292157080127581178775856882846001586967500737323674765131357023080481589705331147649364698751612216764279442317704849681730624308349440221462302352729491188360419767974445625040049840818641319985461913525474460080492907073072518473371416087049376533217888436429763913035377866233343397947490855063168915938901680624644867039270837244448373247924800301132461690906072367105424278277171621059376513106012619367678521345247867553895169501687426056688756556998437658966704849607168872679896811004873816266082607394775745484856798669163919353034127245796194161166174130192960339223346855805497693398294628742055176491448804069138886092921791970529928675121342952955751897069689370176244373188629911198800300275089464921569358951663181173899121988961610337258320625573173319552272197990594180805277855616895607485643481632192283952815260850717977940935190041806362915431489069253499548462262537359790420940297495512956408632393360326120983242163872753182881429974328470488961843695877134215408964521631280321061489916406708953079093532605189534384894448585685355516263224392475513095787310569499909615071235125875637119581175716442326172613302370419080966042808469027541751700692808693855485526436047405150380210258550110333229190820474934623049976296143374564349737456620314848592799604646585375432228215561228386298151400955885281949034061505800235751225041463717682695693181414398061943955401455676043862507789003147713087544442394784762450686238207014470979297262178272996685935115595336833067053149185377640556542340114179536835434465675335774313119186735317379622679403624545605985993694894840309553294425226794803289405005362301755589194345017909046470188085704854225593774370271682800497471900083885673568458865890585844753410609827018321694243123522573812738924916373355112707455558619776006515725712464002469104994093520604538843678894907778158720466983738514900803770356950198684647518547089014058727223250269608647608830796508181895886845707695246356799650168654304381188339085169411089274568947069047066971998954747059592859613582582399615297221390652045863394568398407732791860901388432244084770114348372310638905902644589761096824771509009523645491439870832387573783266136912836381208101512599595855566841717409618502407820200447543736740976170228729947488707252871194895014759224436491322266678300983662975848807996990144392540919349232216431798171376967247475763826777970351483908685194565754411643352040825204334724436730190644767027582421773464736295667346701895856341845101279553861947053770987324132208586172594265201729444929853863789263816148971118234195099525179736741413167069120329067768561936976763303431457050474037587640258571828977714437371740591599411295384432758470950689277100524076448116842450293575445888854932151248639052193656866511149621068101992420724761621858280737403809309174444201493796274315183427786215462876028070409081034706821438368814867864170188486038943277219370806734707246879375871469413689897736503103321845028354831834026126726697025015602260182778001834053420264865612442431924220015666424054918710776922371304035221197292011456133528346239974626753265441794181395422372367360394990485765026256365292039922689156303825789838872216645504308635268592435723587611544283906428181772741698857148037884036293902707672323055744830254020421148308606593170792894783018557921906065402874289667741347113612886592414830613286679507998098438806786863393126644608271131666745781756728410977808908966836044865809355611747861685262370775174472562055163777575235133470522029229196803680418864390785352813290991473723249944753660054484086010328700865148731452415842528039329086169428456544650467824376499891613922331338019500350741964437791446029837599392535165032947586229851050667276556154528208761635188157738723011843628848046340810054324708831191802215063665103704932481120109655528446832186343127532497883670942917644577115647492255400743339000804142316636271931507564929883224722490083219264943377051974436762349050530571114649557994053993155836789556708234913687707121478144853389148138839742200325584644848070234261573971282204619563056803260468106631345052323955188114586438261286957088518374025610796827920029765018364740300819370680377734347443125280820833817755714224117476200322117913687610678091977592112223134401610880201039709929368322901757393091481356080288001289469770779577803518758834420493310628076670208159052926593149415606201411021800941177201624435745965937115537753306571768803176978359250172389603670421312636298592935668077897944719715493594114903203574597417567945798410358879802249329351796928941411561752785771722482611775405133029376520278311716889996092267168242144802494938438510574640513122231188261686118151379544213257722912755310013312854006842683462780415349095328628026807748601300669013160465530359071196776628382160906213754858753832022435303603659266340971141443434075250147010104154303417279147152899901820173735742411086527708883811767209797650874454951119293714585545733193391793468681207660207077938266494381765745885868584724230355263319935555016914736281068223746576853799972206767097165702988840697897920833739728019929019919398038276495655559135860407126028727292636680471558399958030913935602003897431080839131460074582657116399147832323192318207714652240650420078292372913245107749125300954766122701066406239508796561928569143070262596806284876223492244891668746685294270616013663276568859152415506301773772752007516824303130628954434693799347312763926062119322215415359252658134124968605491987289323232072276879068145204494973855524602292410744939742251773474936865331133118273792692553262156942047997232729237645703129262093478713973472767191285057375103891234941010624177960031152407482437152764968011003829888865389812631384702555433488137172858426724215403260183704097197307822384890936417696051229412705844066961014003699738253525076153077295186463192349627606854083313677185248192862965088874059262803293225362831468969582267502873215365665559402048038096178185310365393694798373649805505770152834005644393695357171089048828204006920725481720626554541956173526193328859673667795506302135436626668872420263384026025886217821187894597428430741767670685733440824459731593733976753598831661950646356065433713077104827298986945263316585680957949023113426601566051361376411608184804653577854796071811783633801542034167646433254409415015404720563850672517509981386796171675796646635011796719421001948641995558818591040085687947265681568861808390958282813565560595731060911734363022059620849701119804527676854557462399215235108336960106700159135871440355770493594518408383058183541517307876646650806536606161383092214283367867333526512692685018347617639671224366969258919013244421829483459590973685649872220021460894441733367619142910852769474078988619641018957926553159756862883495067084553793745485483469399976829776433297397743954254838180453245054782218536827329903621975647453744487590762537516028255757613094190855447850309041823438732508160840114775119907985624981331352717900920145875980924735580063385142182800278041170277423173048562830869064250196898156241691340122328576786552695871444539072763379336084073625042951417778565170498959358803843349573173142337464467244203062082693125850809112168887266827807942583488954635337264662698117622379786214119009022836101185508386729426294280723698969598797376776451127941394172635324175532329299908289644608041262519795264882769430953454399478099577515015295931082820580065769119290442390193481034051214617516937726875172134084382892469132779976313382344229500906428065794279578633909108948016173421972129782321757358742693137848175722937587948285732101466454615100411405784612031953503878281647227447570973193070270985706921756093428682009048170608550185619840768660161112135244991516457525268912522266543394242102197783186473310291538320955999884848452341643024606537269661745967497047011657710794317543410683171121029660908285535746352662578007851414766736267817447295607123186502132992207473592774899354483341282223722629650796700445393082377109241574905226417663921860544130368901100266093585157040048458307745719186688500706605199610983703582682695541018621994919341564412256635821765772448195804588319163895677241650525502141861715241146599890976330713123389935240821350016280907505776231535917750690741983302206239000837892975578279028772268037319978395718068438426945101128614909587683208099318051093511562239791430625766717020809347290316747736459896737988989577247868945398162027914299189793935898539538014898117752224541553485502248293985294714080625320044588036947909817460483588159966049505295371284366985843068197749587541205842648582544865621399494746011584564008802644711245519460627108961239941177244641306915531259252406352795569801613008136743179128667883066203677278900569064044676836439503485016164253933911807737456512495642726490610085481099191674768035311508739926723409446923788140267775484435170280873493064998742985647612766327658258368707005633505922475971381772033598654187555125072098800167235155119064722700088541820470385603666063651442067241310722934087295138901029338208622015126757708204202933705388879092059770728944261749557958187554841428524774600074106327074756270476175223020264781855566980644158333341135668268519490626898929762674958065861700618606361244393288907980589594573434236015050156974416237849259404417093840417030160339617681484651642457969781430112228356533275962377006126246595109412129726213937319575006557425726558571155748353195572948717909115227336912980906580746307220185757083658326332393333427070508678302568653297186751511692783123652311184280706409247651912458828763208856283492536231492497858716187997315947553322209781610172994422150107310736722376923537581185157513139350197656795970938902096888296578065022604201418530632796005398137713879735251409715697892284186461857620584784093136619485426416761943898495853299330015319015188536755954916168414500718993917225693855527853626697001118559181707537555746308317402234545782373736032897651257644193044743448589638173791628931207397678940824413766080828675199870898057409305645776441059023372060097388163692030710658756869548470812653506190828420081045207522739026124928026336415784428342621681500072768291729032404741326027806923314602316480099473665671282076504754549685674392505762619137726438964331127949456257967016691374360782808478610326204810159291330298215465599302077468315314115941682157201047890601476962361798939451758647445055160693185566139193552205297085991491226095779087620955523393154344324000454567470126410896362596131577137645374999450205161594611300950967542778408485459564783176514356088267066400893562953107014654664387160229890825521725127904356239100368189873571149272557767565695785025071948799237694107241158801599880713941519807215810840958175724813712090475324470708250322322951047356175045141784095697278995462042459504946094333184085161275821936666205256083507470799661954947875963609193058568322881765192260454235676882751164814147826606494018101112533471948679207545943805104663704966428157099033999506944133015249403694054851383380973290736101691090831429459595055625524223329099065187082789733531491029788536153968912396333785728166910380320168056050271211541753382599550985517461307131975666712818049518364942075594585700969843645433504938499569232762887423492572600787369704215486654201445220711960322378177177506694830635630029291441645522001103241258296259329168930922061033027496664327345485496604448369509080513240604271816475595032532241596424504873737830658305276713371964509252812296273663913263781348476558573578731362173655178056596721846234622606183019661961472232089267771367441718325399791591487769342989149200102785859235634741297301226120406906280645523052782272320811413797638490023022552642268912106999172564704588794390928138769689142742078105011858322874909088976320751387280752669175230886796277895506329875544892300018054765190632911066124786117936822649569885655249872508933426901085319175336778455878305576776347780728059449458632441464393464048692183660030769093925517757603800484813050144946803183194274372040484299016464126034610728200579021531472993507206216517925174857623737239207899831512743811249479425239721822816040065873783796846054314775373329227875167669203183133727086874600747287908480352031035811996834178808126777171887699347895596181506814311646881480005833908792311635737326089367764209427291296368381107876205395879865211882975874679144923167409160209715508102996479465215053284260397317409645994653172559232317453780701261388159297085615251582145219068730417674829856377745764864293459840532115653798799644279658868007823870518963813721905679115989532700229286039643255420612677728027047961760531070440096762944717091347674762256308815694695217154086345869809461656186757740213581196594833702577823387244993950281089690856333510530223461920920654428653637896715985676921348003444389828830437296447037273803827418485617631353189830621933421849004429343679062774447841775186740546101717456512090455337030020308507105790985388991796127313807801023211080129847550825736397140716124970713996073258936156950474967693671413581300389369939590590514071268880115161367630382459659942055447350539660405122151264697049742700663848222807474271344897365415112519419195713600410079973976963495534629458297147641827572307822134688435137316451220282968550854694341209674841602816375704134212807952653601124156933218444485298663784279375763775384660055409581768699564761214451010003239618085107495814136891400984785969736781329467786019749506935728569804401424509104647144419806550700497039706510579887880311584448805528585239405215930990847298129478359156978451945319759877644209453570165782118739081743531352526408528159194507629471776301500483586436500432500253121784441956511784184306344501975705718862954282218706089873550150598051280166783233340453842055159630200622868091899351566714686088697988726022354298118096524311151943161116690654804691615443799845986707871389402431946588686627868148416620623918166537874857098564355336260965190236831930543629340621044388090015498442250396097741592161237521557106620428437308879376783648721080789391510039158826509476724010211561758261801956095705108127163373465344216208600871421711207694936978904084870727584593838181295749949152054134012656269194528116079964664148621632949436282734081044147957823543865628810122050179183632214776265452964146497576376680398393340350797021087807012272807071504978847986280500239473247722360298274159779991164553898101785644552812834011665607448037654286888141574218148901228026108537923104668846563522595250276316186801539170567949192677569803559592331652244814939553275791432231041460856074869893322410701805288733492704865846034925373865302899325990819072714179478843624940335776493427874230959788975736958937953482953158871221407901263550295839905415646290429712308624331807846269288234495623276305132648240887851855174429849498757590081416349638511139583992794320630892732545042354732910936188133799148059007504878742531590591707697922957958427646431904571428756494134074362406363435937322667488645874299443203809717064843255617054771490635299617378259138735863522091819249691394070113776587570685694023523552844572861962712764556112507612445180601612258915764848921585584450383372482798191140889324670234226661653827006431064195931110687089745656115237260321184157671773670121972036605705508374375555073210370156737617543055619502704273598804704666959836821040813665992886788424107836207227540908849992868450927267925155266547959821646330807770611212880884773139232967815323427204877459342489609341037016884668695782518584164896046912723952972336286142935196969227891769087422601387659987190906262987716383199882012423821332878153569212248558586215548282037382927336904459447455155568547056149864761336438678515655340107904494866734623657037796125772926375097244623158987874916778964838757231164407995868943711782456601652783270073557023329136073106564026913291136288451281710154165158424293947372921077478550408264863904921159550156811658265219905757389995488786196440761010277181892600963888609115220030826628415692903199438422696143593077850970342110055219094507121130513715805011354558410411541093990144676451256468861631090560496934437015512988530367679082921448671270347856901015827490289086011004466643306015102160876415270722041813495225803416222277056093513489573024549954171947484973325712813207099516589027182777570143477386688095533995563688434838077693247143629078681957505150758838318299835979716518733599578443855906366635406909906471337792530650741283017893969798280710507165542485677509510058805946509921992659675812625935605004363187769719108034334903378934435519704900439709159495800922145047528017350320230622256115940438654454086114828744760281960908005123345171412082445924178817187963696589475722682121879899996579804072062785711759318892790103260044099702771986278089697505016188422771272089227545020433445286151474948729149958182652096642368846677882258546602068385241207599703873432259588308791144619120861582711378913268271811641035861169828441554319453632133103542891695877822740219295049512368467251334318978023173948093268512461359857218717014759156778383230822314747922381212544612038965921672227644344817989101491625878848523488710316614511859854969002579244931647663354933478075741446782945398043235955813127919357435936921466660848209851715402094756185497197873414420350210587161688560255782249672781521767731103704312420097697693630884810897193855462890975259486752561881742826362141164722403147162079163258883317384421824422567626091788111179070373067443656278020609213080121605288114754424007974913848182134872428298043965962938982967925371855304757121752641330577872610503609911209549051126870754684336501695649102166993300608741308639475421540331045292721999099174024198496583648929424519843761010046651941083255047006675155399291436221457318497292249079633146139226288316738337055508618356787532834858815386073710232755433330218295887562712700507407117939961134765745967457775232751082119853487494199614516086447835465231139713952140126393165183015825276573065599746277286122264252223440702845719436118519395206695538429524103488299535677930095739063950281609050555517966756824071090658386276094196247684252836222386005073967868442074088104180942104899626847297412030899565435591840314544065456239720450486631451471161501193007133374192281166019792057647308528179006385197178434941863929737537009172342060248238804311149312306152202520872643188402538671109102893907774935328967843682146123350727027002904478404857971196288231393641931049230041327868897212486489635800154749143214807415238155398213657287475579247306948347235606755155726531642043998701127697013578793918004025673993983402759271362974054525914636608311135390304000878242426010028382292809553363290445145616009511181870315233309241813264329263612966302285746941388279540733831979914374587693013810459920256360323449901864892551137562085993215905287050283911816781123811241883468173822607290921953461894132482009328744330393159778869896313332927784765251036750947494948028154359314859865901149471175651016249853320754715568189792274939990036375879861716783394284674353221814416027761316359301691372343442504268213401866471218145642648831214198838310642612023442822636826650960120077067713129892218947226134349221281061019077271502748699689438265359395213510789839890078586861671868577548110667145777440171208770630192318007115212728226384792763789909410350915260219858288504618212235292585129021235250036889667685146525364106107714691772286142070668521184430036510852986724763665500254265080176562855129791630744228764557566006929158538196893619059364914473698112638802729099596621959860536568610086354896570446146670872434885791042652186577871613695675554836776952867115635448713461457993080063004256672307084807445513110797815539597748081943866272911821873236637370019443125049933755676742376417796910826935533527749400684310998185721946517638949698792182637146697651329082560811534398565789902086761254445366038637942874611677226223809256220300544459057881712172783456248955953034158629123821014453982544536064216517741791485492172443831526829827402607509218217796174716866064779923540475488898419345128955672083823337517752996313614116974805118995204393256675900697322959441794770497973735231897392628322668661406835905898017491836897028913605393791340211803634702106946772221159345253700145203975059873999419828300668742554808785340263393605979428069162185780746670555131569838741894232822900031034140898061395892250169681901903902462823983683589386669791323000169104804960208753923901910287201539705709733706863306287168335510381484338707866077743759752604313454821854013738446667605464433957013360949254188338911361593170476136331573108232958513804697296023461486627978744211688506251858576058905953117518031333533611176471479592142899941665929817694496017340820060733340953913622809383466848159321888040465310304052073212895150800171484209827917173678216542783653807682553331930701329085190204964839405477242172334299781704481732257646529089366442995759342003637207733225352831344493533231064665064181087848916602329067865640145941553390670311411641918735783940578021358259405186295706501590861625688123191241097145013313729358089910045151943927027682683865622235863638313513995111992069390598298132732394676061470795033343194138353299616971463743583695848094553722809163562174674849461123658234337937617183057167295299083105557303954685148358419115250693180626711513758678563665201746073050721711837388972308242400771383168296634994440024782909766257890219267884854975394336537851955904932307927776313835568876819495300613992507262613188127035380022604568218538852848241671672678362372446804755406051722492300689848145639928566510392076774067326060425818242703219652071306719338507545089072981962727637377695002036825708969310422117420999445587720285612207657193750732066326336948295364470447441225535196755692664577143295465590138001579902431146332389622745450144455297201873475953841291046435447457849355338618305934859155750040180079652703954314052929872849760666839633846835445074961276782029531818258526524470205084159930867507063385429179587583361173935754323984285612310071068395206468059308287961447278893008597308618664694640472089266216569186931120047568481205114971686837223267921283765074018348211690339422062732973822624647486370226491910026622489779644629502290619800387619519661223356266542491799631852905677926791947196054427362370709143721219162531878913089483313763661069195904490469223006117522692092483498811143846473380785703610934181946159820224778031943637963663972839000979376467824065914560036730241252911008139206934925533950325139013613919179072593438166322367822712712422315582537483755586168641298885264412098457150044021838020273157077499886900242708914187672811590912401509024300138600557679667767102488223552921530924397846522015074851393903791476462840899971656651726284830762565876022886931198266445835740203244236554369835225766833417283726120583067455057146819194323626176407674449898913086020871476542650214042847215729771606956453727420558094047508967935336187616493805328378534720506892241229941584974749470621897840723315790012252812535346585710924221410208096443490645156662886423776688865688528164636669754762389754603133813740746231333681331701778612116203198764089064587525450799632895829680125423639780376299923864400892611732822960529638137943481782881203951352521209364778886207415287968070925317669927428616001178921219127957002818430964177645365433146068241413327582862236933744290635965280067591358864108261129630343978070846685074439394954220644174357266279395211547532402410330637505352054188979574946853501122470969272376966968930905683838316327995026004056350468436996104349886623305485387605202205967007714252627310640905080297570588072167452539958367867721408004147305212518087237758951539794420538596256092486673641884320968423667516297042953443190265339064523813392213515484714419517012396168872805511669219010504409382757366249791965420809046388241798091516438791563549421651198489089208997201600702443715765561450366909092529217428323219589936451539224135564940298282398655662041766695036199534101003534128397810138664001133202879194563949867657588541043369727454348083285831833004373572492212763071801158468174616919461627335102485356294247062284276893875423447876805836175929362203345152309498528623097791922418322378820986084176097031254718011832298437568320017181186566856671277082470095494237848338462102325079889038446574202090206809582395383787114862759751604183623903985843759002928411947990977287769633546093801776634130731006568375046008482338968787593625077711990345848978305729617601141479526065844621835353841595292709736132699471444075172927376780124444707130056554903388253224695805640895691206058905904620881440996777002238265233810012214733403326961412896798143329269455984552806175479903055039880745107554524170137075021918277410712835713901412089785988749128718026387618226963779839856017643133477407991882088875891550690188880074745868965102407816865422649303081121122726443999169768241498755691543038372576257679301882580332030700170159174578101056425440551688795825379089587756229647307248167664046781394304707855803113505356733587981787089263079461152848878351427216785494870788644983011372286937228789699501237248378994953810684654756908860366286727614498385118562267433031247530316447453718988546350070634577638193871567176374441835000244118193744648542928335001554995517401402573422345475323812661429426673912404728045106072014701430705323184507163289003023556244038199508042190810385061224865951706543942157091841986792724590912471434792341402299852308755195036832955275172727527784274926736581743411173841503453747801484770382223915677770569044815698796330592878382323206726558667503075171239133900036992558623373723727708453963389816167514383728983915771823863635395849963024691937056775258075275659984033533318925789815036043857646431604278438156992532964819841448190309569734601696311389856409574276144222602891543196005695354447907648991431255707125685303583165418126282602311208228754127959074224893794788727182112623458471321431257146074720196052667867055347290977735776120128677576018539450807177937369177407025010404811358743672249871498996045490616169237037138041007443643052951315322828567709143847017081816837696760808627887243530933512287234460601731884204606623006920109676591090569221423469465510471846461976863995600349627014913594410230722911931739339135597835607619608128448160999883955963091980705894209029385559166425802019344340634624466226912455233531389851910795950736166675187281616752159751681328911821161881492484876551302628209074294351558525063708849531695482766513299382531578111288881313333926784182437604172414065079553810835818076690475693113044686817600258512143506402483403206921543102952759843021628785821058858166325091594282634068944406894635507759060665287735793889937629203360086246215154513092717092465556922165127665362521526571752599562661812874028495926576991458495222798787596383420038111169334447973287905216962688692544268661727913191178692720846804412024402852761600844041684944044928593948197029903195566983075856648131757451914866819858919410174791376788971854008659291025649114059792138117253706405338756811384381897126973312332821199471436922646807086760549938343641505439295614130619585921773094154672496191403058894023844600204598595944913922945400706597315047338371593719732409835717148900576999388100324014498331597168105640486292143344665752738523910994225448476623024265091043495531384326913228426647105547632231174549521487268767618234490350507923405465745543861437314815562737041456096324654095651565436031922021856156271585403546063405030953131733846752261600122183026261622382525283161429185008291404909238612326034678113391135050058296676499856388746772463838093993805218084596991166951048790992526367470727820732050586410413480037394272722811714832448545491529814716972757668909048962798765878553555195195206752258679796414560672848118556089184214287333514654977954471194858106824864382715835867817076724107493350653438529525102614500197863704480237214703061980633074649149571739179513120318614292162305102025289777356185672999530357559134443019779260085747629963763575475249308442238051142165117833803823033542914722599531954545071253803982529160209389409043723970770104880007155370363895536948524595651732072170336577998763134397399932166002313013878786153419992188044645703346038568958850868165110310473233992135363631355828937252648522365858788441397942511535912945399220657113483962290405615784183414375535580439460969423295927494550455129070397428924038974805322643242698477651471671375189201040186244337719419826125429039349180350067819023540347818242738879354849204409079311498671310280499710722631628324519420564593315419892393896016171500341141654560895011965482712099044304348439893796807656702557468705112500615461099861749139586818453409744434042095213656909168491504930205006889655194427109166043677759852823382376022955058049510904627134209420721179816292845527733854520200437446352063806818080660488716999006172240628683524133193205375512873748622207063714527926122982763869666057664161332659905487880048191018877229860380545601793885999610654428146033680172260427865107443712434012673415112831780089934259068589503725263400141018863139623124402441170872861598974572771858146071781796208064502643513657736090497284177375313499417120651977968116808179490153427125506417641852134697590784419176499046939264760580619902723535114298666259409899787838526624440696303982867977895898083248862962139459678442297458872302958631894937101493178662009609599356962600238991132429616635781900562325350205651641316637453304394675573684360622613859746191154771874854028721108626686879118530205625215513622504680018354995284701779597806584896885582770056158717477375520781433350466144438471392802184510590743658237249477798742461896017214972304943245855375271761069775875198835236410852461497268140463163924114210751948097451989748987109515211233229689049312275018096428718531948910891678353859181468545091491105462879668635070684731825350478114271258816178552162236007218302726977813034648053567858677871900874428793300391534619173398407510919976805236507134560237885926679430205709382585928691090834766162950633233299944648211455556049388117794164785011833933315338623851534776705259629350401134685765854863073593291583596377556166755941452114150156924255228505619179648139042681136778943331681340134704423815881669976638072672369040441966856755675609519662286388845352241732403860368364687482386808599245508660071167314474188315700203133834396113559102912708004331770970960180771607549596133208111468384888937308735574256538009731933708036901054317325716377186045061613562586049643777262606617478183503439120706670743649692771120144140132013111493517843350288247372091120105761768724047787902381973463184289919964147875225092799166050707132552566165285997393921685431280735897859374707136496131940672313136989199300399150283146430749912071258510633799235094996380353493927138393092758547762902023728929224885941773911181778475161014283040562659472162998844965947661325553674931587770319727393417346084479675262601169506561023396559016042625156294976561236919363245490219837461859868864078714318796805020022903849067606453000973824739222378162708215838325210982627511886268792073884435377184227563469511970728572522255633362274018303166708704251827905521013556475278163197409948006580426598203418797936674302600844512347547235496434662046505097241998973186667027683396305932496751310813396442008584722189124819676191631948284261776405435610759038892586651401985965370098340917171466916225042503843927728881281346352537455665189548287691467454423165168527507260153103259709497652280141610150224987638830523232579661128192617565129527786431294735716946930746771531604854054627926019058623762381084800323450173970805737080206902396906136501565743883701207440965044908858768479622234969474347706577188032037903291332682064032665309779620234247920027780763517152129564148671547533408848991859354493140239932517322300169757384898579968416930522079615681914976263169860640155337125134697541882914696816596579989960266586759756035637069666628502273018467741999294077720733652650444174313513654005854313278687492420077930681813818841564333930684883659534291996468798392490344421126055620539566223322181531145223420112041218561279830717275551614260538999462576384375021380605843146239607423136495394551914910352834929975152513210401293631774081072582184167854188705876791621359896138754161480095779676110729572076098470998123105324334384623308289208400625810489203796052305291231023103486148692860389343322427594708169528389581033530267153282743600271023274301188564261552133735609682299349172037547445456922734417083180298383417411371569522064690404844269809943453768501972054170945109228237932791114653839166033373238702902990315361500569528503988751711279138026135810607691095350358518260460510987635463072359299397686579395146874206173784288728417894516170004148600363380278945232136084769635472952405321803495713272121996903361434801868951067188321696606846724271758264492421826749463252038901967325864791941291124271465809137043557328149474635079744607557548024170783875726899460492296577457687315225886297112895931722709232950240064880484679912660076136019142249370920201044353762423566743914408372979557425426549124990652033548650349915457402560732940176494306353553100250391346828389810933977202711601545993180792631919595798181976439737938573447673786833419304823940826174210311845491472228756113144279900020974484857879936111826681495287895657429227658437629258592989466855210166262747033348011092977603376595269191241493484420154315522530990687129560478179079996755020716020361228956127734450401438675322736214321137227165462188739758892242728143620853483194907358883927659414045304582059238079648197976449972756160998608680154254247680800858678686393053428732273687177810049991647957931770660548545639083716854636616352789025056191337045157000645111634589198436228896864029306113443748448283109965136788617909927502204149053814457280403135626647340197078296024452555948290912043158315123413012544080833708070725333028894697785818203209800955091549136458478752504109035097135598422684591893910334998728893477694952415100746790374376463881644145266708823847484154408983900223981758004443140043018478995203060805118121849035740770392494767955165092708034658541517825030385600566877013729795619353396007990543641275498423718916059281691658247833431751900987045415496714783411931109650605168301129041893333103913777897259038290246871273785764156684280738427274975544284574942446951083409559605387189565881534520788794899635535316074918495686153970667692893905337607543558000282936385975796143052125458322659375854517457493033175320600192314763519002179863140139389557557230839527310559492834089712748414332730786088833648733012443688560501929335682375315991410439610180385179399303606002133185788114758647387642638324415521832904758091685217735426836697635391767215017431002153596781980587609308159722740735026750483623886210824206629616946641679472246585605264516288752043934605112416683577493739911461637748488288370777295796328810964140328080800305749167114346170569268238283344294785100040085435233821321011492244936213942581714742895150559243050851610769622525500845470234046830085762440562233727141331786868689712441289533028813343660812252311212548467208311675130197074852409831488314573213825033390482396517945780273185713987316547287035079074261944759459201797041864639607178663945354670197752335767746814368913813711166888055340647450776835864962727205567221777697367756389763293446146176040531494118961877224243076021241596617555807563550113648877716644985682650178498654842497042635337825137662946502384624011497342556277424104702796996319099602238496507980489176315957523591631586916972241143886177676135669242475873189141339503178196316264482000226746410963756513347743424142167703735464488467932383890412308548619282800771076833265610892475839240527454570316603523272735357198655389242484674893883557750636347435862412610596627123195099457505925184973545308601717330575833699596055027098679862569463318304950139814573893913250077892192441497329299824096105898658393808326342871398647484457330485743605516843287320209916953595465996029894691310005725609598610316178446820650412121520777541138153380658225376659332998183132296482463575171469275549018409381104005471977342679774020701104942337025207957885983169762945170227405454414449291597538185649090957346179819597809529372182278329886702323732312504026739218283388439556651841543918682495332952609507371423386581547942840333791140516769106691138775911859029976292440465076623679863499053523015755664773696112775495618129204255119881374277911333889163237698890229608219168556033460764335743329502365503871628609986715024208235960273418419728834813561035417795738387556493365120487759813375641898350906817137488640252540346837616358994180351022805933336821172498010050650300296361318638429540324451239301177372959810219987566632888648640004372255852077633295245974411040092212883269237887303281397694676105571732037157361375161781523040213994176945540821241495523926503304717551657289088502407926047795367160988058035034126492585311123071709994758649469248147805297212790754544510563370124460401729067254315997184433002799681487770493821592222808513783348438568211197885385325189821065323428209206847854909706118425992958650641289870870555636713255032177859691790504832678290062087477092752265243519208692384077943251468635543088984953534143340419799027343831473642555278595684578716286922109095548332678163442611930105344767043272416431832192082021400262768673963367854629433597645545605305312085627118562569265102381642930217735069194796185538386432665341545077980147967332623545487994180278944279629600525849331544623194699893277284715693273717071135613922670784552929352634481465098553418920333744333658641263911616945812614935557936574853014473616727443564660745745729776598309513031237261345678028945087190443674771622782734621629392260458725643177488521653789773789878896860870658939014161084368771697674592870540486090042026620568248916446772733899695166355654614664443714880272069381121396050186794757911364402704021849166853499570189321482550874789040130094725894638689514964514014136018435797039769122602476377706478067407822477876091420279950715465605579105192319884457884764231198912774357799077726459652525823648761576793621347886697185053411002779434816768573679816161913786033206863835259689749405307364847261626264440085272620736020740114025444679914568925021709940504312978292404431524550386856731190314141470602171666020978241839204655874280857831981036116335165587047927730882175227063541504922220151101226570671141400886101131693700450040413450112464138901261811228650344901187623345417768090544900770678551059177566157780540064191503153765393011302557891494821411218352469043021410521874510104879776762145860039497275999152080878065518775455010680215209722991378928429029760947692800597135954195143337845393120790033531982294313495869231615885294996541054726470896972246536863813258376286960406773244049825462645024289774997102841799444865741260986846825440717830846957800700466148239990714103609314032989285984463419532546889403518748833264203013232248235498401010362253669800369770591742976282337385929281755788872294380205365186788263270767410180626494625276737175055172461445559425717144357042333222087598487268858097476254030509241536573112404461050906094463424005794810435180915797752391375819672879436675869071906619033752505158910485562973258345149511382221406644788662732422587531925829320159447713407098475224074026206179159205697385762796445798765762705113865897966441706861139389611678083177778833836348560927699180322830357004168095721690407505133013383203292685392235381218564613640913205614497056475708438095855890676556631231513403345538641765072083236417734037511002399103049531422903535611294043720277751815517864277470752028261268333281956790683127995219238745884101277358747379793551501162534961849837496445467603930666016662589725643526337567223254561560941480854922256327337946786429132282415799295468000233473519414047912007318819830194522655697583435913965262382006727738143123391404025130873804333305331276677599663152505710216726047625148585412026528820415595197785646698641176178207158941813112169664496935375176661394280720095431853214891155832785150097413295600010164337042490730757602086686009741675400279528777728311616432311674701461420425450004861066109623075376671833365929495829160933652897725739421085477366313565241876472400872945737414907171550102544364023905643735023995857659379773165608249116159815465168824368207945238908771419805053854296938636412826174115022660641696448878845660354988474485345151418873712466491070510955156135507526928356037789142755505597299012049748474218201965557836763740376414728250524441748477603830462129092733885796086928417907195730703640916426080204204673045319820778960857729406237832673157703474783654663744526283453550229193609713973642300557823139519315099301481145427309714755807123934572130809301609781290780520999306769567844255478675116202258082113659659114573937222103014320249835416231281417805064631180882358186895152305600721724676882107984895167243792849537429079602932133895150740134151796191651037472024133732168765303965074509765444369788745894850068668719742675533917183569641780066192719675806601337727149181585791132844522703902360084075806257515146981657601476714556937207929653310656257207747058352252661779028340192011699199065480873362273852240465242002778775153806303420123926547049473568842704423361763242932235066252078239732975502532477593030364863782400772127751577508475565388585998933417912418577482275997393514619886122841371776902664761410188066514688002230967769994570861340088774896881167517679599464247847222261152314540238640132576111044529532715219391732211136385123588386182329672503607239223491235347763147727605424063507808084889079682711126165625005605821897615421295532175694775188590574371938189536600393665680064182211595705433369174239108078733010629290359683797952228374196408452936758461723976577773313075817576792489847626636998117231291815355531331928336956456139097202513093969912252535594535616040825138474759331604284656607527754418920424815228032982489441821092656584724788136673500193379884419689111799533282516895522411586713109505898899509419670158485676303469083953036794875294900873977902448617305851035408601208594201257887780323743194025794696243690353441875942401700673749885347658223966221407640354831581724123620415607125772753379829096304204983172880649648789658646454305821788217382054023898738840908339631754122653763036940319403450209314360094863516468465880435225298973390150933829098347667844717087015594591507655407324400582593459070317147045919632673455687354198383610649549611723286399212545112448353803607773478918189923245821659402852647301906045119473636999271665014843389614533380360352912455747801369519320774106043593443393851727826114375220076328946472119089199025781101464942130599733202076518059604130635603246347102463302590512571325700575452186350794449013820020460174117980231728238111100403766356155824101279726875248489403273975965282919422296622775012739035364391620624961655890248817595129140601497943438261896146698147177290638972725323924566198492524738008865931124945245216836988711996214483750877618357442155310823140906871195808222905604117737842357785304838338188724440855954243245754721327395826392106074676866169541637172061119855201648709074335258623374861560768184503679239621796263534264351312970803628892878594865865269889610692560851196480490973623985978131737125253383794435223072799188267712522271646660052195181517073698068237377359435532301028138225821358179931208514230697128452016531215387932452074261584781013863494675198232724058976956126088437769100809677603313856338889725246129543282001427356494930861407811182360013222594856605420271544610012245262098744925062310626414212474149522194553213973510798002405857287289455015033130463652877524526790724859403452902661500486438492590841021832369132373532465226798633857085828518304590581833324531167665998568989591768473802146413983383270283030520360872325373932756765601950240103077384769846971830907015852050678679317174376531302607281747800006135429453593234962936045382760612956003521044880057723918341586972532890577855487497031714130253688227664326230422524350650294670186919620714597803324239316768925078010615219552187228227262521340218160211211891463008581065420210934522059866044174111268825138471822396480427365380831656256600862688666092687833661863060192907019044568576471637739266255226125923751224793398635306754842934897752025686341765634373761084187038205231323677400072446828719037763518438325659984745452979088074634887257910475463946908256070791955908244683378863267063968897744850299798938017153448767090282879874935213143011306211140843404584920182236791944726449088727683870810868371328092115856654209594170835070220955863931475724562760832058689217552860176688131255341913558629907783969135279930403881114269600545247510026360649136807338909956230532252178870575107059943995755456306835777114739838783179134610970078035148495756817378890385697023757974380772684088176793821875602157124725486302752557108180604635025986983278382142580996318642746794659185468570094130288889715100047003433151797084810090048871444964974759761314682590259466149431029004092350154736966340968218078537478689705807369273198188300757436565260899609145765109388518440897358456216211663236491056579787316311257437148417970046526549832180273560737328484695605216358080156018967635602801969678770578262721303595743389145726342186506805725348599881760669255682582887954008515973076911167091792737223682506404752876132158388034117517333317204211219993675051548766339065649078630139299976119189908229446891946495918221003029996724760930798897817569145213162328254236911698683389545985136377650652971262339317190361803873195514628749796822730040323016151986603758151609434329517468746880074788613928045452415048102989894823997886268193116292218885751198128289730865374987089820633741616794392140277255380854367859176692621068123256211315756152566805315193242153299646318134186711000839307967050296332446759669349325761242704885351247469825804415452878250333831850955028125629083598959443090054401946291156313997853535922497406261302383221900159734824069004160284440788176508652899384480158649913411396406372943178141203556008596783357814432255748161514227515307224783591623718741451804637012153254370102052570562164509697324209937399549278430251960008006502481786997572292504961442555413092668955217138548568193602110138515319136412405192948710122080390297991020692605077438403054976379631323847102184027731491073343567057553847805301743728916977601004386522346176234467720393964819019719651444116605832100489722577343757443394289509105803660979873317266818440428455542650773858726989112563605035121511452480195836055447661050637366951336611147484463472371310089862360655909616065104423493687381335815884146390647466761835260705894652531348836933578858234042473192530623026865371102675049612314047945256623718563376417735526478172975016566006993069659404902607851019487928567105837226742301135679402096276389300240709508036848761021143812803244715406784251680948945181532586713319575794406412210791944945727047254771032389043574545633263685816178932153781651831926328014370506935235822604292849840078050050001442525851827918610969479276955735299279816941021741088574522641171209092488402402060593013720983878040557562246197060517258266038671719004290588322371635562529734238662536572865382376147000965422770834905483456812971791178887591219938579155495373793230601507136682083908104021860822303064435138779057170130966906916564405142899100170764285791178317553347663086764575218199363693954378924968497039924541765699345914457444782352313809632226149568862986226824428062150644290180560459754875413994610992361200906549356850572765777194372550995521884634138220019618387068732620900538489163409293419281498152949401401222708148272132927453474531229530475441654858535121822057437289630711203365368435376039089403776741057394294907973257188744555836178075965356214505910566615632942170860158957658981662698612758503270377428015534216654671078823239423286413288866578669716730416435520636187848506128328123585400820946732410619661759691934968335763608394897503005571466101558607163932185070471714124584085242854379314987139162319568966799629786537773680733593208513318420879753419935017792305531076062082493995269208575694230177790484477795402794412004472764844081053456278347200260590726670768742130808594333998141184461607276866715736584218491635964346019785636839215219371465171954400566290176585181275187605305149195310836333021629059803377866700967444355373738015949432818873729305004803545263394904143983555805442279814714801636697410137038321608314346372190868563804327975343894431780538424057938949790846218047300755482365421901103321266966554622279532485851311971266539415202220369854011106324936324851021235247249446273814791471611159649938922359870228534761668035308142859109926912147187432249021805670824289789603334820771002788324007315938912839394743967398975761644812842582864838392401968683712759715612302103766772785891615776093583017557951351766623212566363512912048377155594524137721952273832382317320736622223473526895634340692495513793021300894431948573466324318510931926774965005743031305008246174816080129113573152900227580222075002609536649347436570340821478440632725003658402785660822073675334204185089669844724533939751995942069486818535444827808025229085608752125820710821305515793446463594682126607872453201838516300720844735875455302077509546650135941025076837210660657853631547949363704084429116704122433008552431841497549976706072720444810462861337735003128548501057651165309605398555643982462126693155372321659317513255750211670241161416630899328823873614094804450728885841398909183385831536637420415213187358966373964785068960770213640379983778647817896778587975268938686872622625977022585547424997786873508462784592845620293738137498134174821776222592806198319171255036437596378241989559004445363174728486988552371482783683139138592274408210719139879339726508432022575753305870588866512849996651738529635251825234277287287785061060651439631005925804509090257618954287433859248939252407171999069214375936671224551010960675704435802682982056083332421168656452986428109101091010994315042554251921192882967126043763927618748795043822147955774343798260332283764744123347709442096931670322449258848041565151685902142861658786676281282261396131815900130716359151141906576707159501616495186485078333781666368488785180107606443989945756762248315132884593156889555087269128076161659797703301517322619127050473675587612921854407560693506220626097567961045608006223031842510417958901178899855091643320597768397746796965314343122455988281685884344773183552256345444545674179311511294194909193146589980818742064222337772414080810856445746852145629106906060287060503934356015768300659704503547172630617738171680091494210609338414302084930248836004674824749261750285304932253587341374230079421993767985035484482696472932982003976293859575355872534523404921585876297625755526828758341130695727880653402615844610215524406552511692807592621434459343808458656483486291135563956053860432916417251882973738129474904590641781295341695401803559125294074248985999167517505365825057506427770084853562145725172500482107831975464638862980962896675373124306149517844204064301272879518572023676184602406253122905529608553504444392110189039371861954977403586825581250637232296351922339332642230027179145532582435112667133251712709824070139606398440213276916911645901610524145807400878588890629333856639086297561117201608028097210175854913105806463208980780394879281704136641208985496710131072073129662315515219049626871675460058124681187170865785871950663053909997749139699647955751688629732196475742470295294460274548346845832984500241597855378971537265490371832885970221143514103030912344098185786331299864509363586773553450649805997111123739384249022090095602528024460413681817114822123168324364374269201868907093329243750009694489527173966084732531398376290233409914584584568288525372745553894110739252856943793963122404027737165656902485471426110766900658795189925592546520521428920786310190224831981403319294585195596137585397127710774970892164563995037185570603803960002983593175289592307707920313616250428010075475949449735232012444629168689956317110692138366010030795082213975749319469683065219137638819025281892395224940145627266233320747629976472485044550240474024949096228290343970368230644518339383927486112097994848277261602562096758207937898380603445289927358002067127047152775161143071950897944649557868505261716951371128317939479240592236550744344935533578144222337187330219798527563695580154345026470684796709020957687909063533644774015510824953428327314332530756716592153199288508831583347008079595826076976083082822960578945265913178891434804115668375102759189236107231409762176833992861989316013702453321537927406142853912613772003879037575746645102221246060033215874626071596839152771313691749699560323366077606092811637588841956722678343242652524346760050086596034276899520719087785590045125547249762062196569823561795697565861328160771737931844483004793822240212385481750064552016802503307589536160583786464602143514751811778216120923385696299444743447823039795919341958132258300282591962831960817753660716384188333541096821041699765880175621454180734787349212253425292477193134997562470184045818964342585514806478971384948338071346054397911221567792050853883766316724893766091754004628591167175855317820534523757185361560248179745463720941409722739231458508267108773216304612696769191733028058287894608902170447883517605847636125665766414095849322291880965263342184578944848011172036521008314416120420992446320934765275711598162135290454882783460125555269976786452410667451819998923707038239819551021461942018787644796658598932962459069279891731796633578008043995923631123174449463477826732480374711831244769543960478814392603094458297184913509113537073588190949694995686853981200338472161138615981901195500182948382047351764344430145133008580621139877992746222741423760102867489874625728741499070960997075332862142008342524419573382265476164533180402993182457056033657014321840741369764967891572001783381933345208122092047681565087914896119458508022568551079108819322478751196283590796146196389005203632578363944367732852368923379088985039738586253469189260188109485639394992113766847935430010140589112320606649755659693558152186296254345024014318397459553244549631029813889870007013215614375734773774148659081137492342409938354243258747356636548499502777812623163120563607952409916850991627775353613716713972791913515112234269763792764993735527768013515177653487139439738305934092445348631493153988977095765559822154682822703393767055638818695710304355588938449293688765327924274003051367179690595116534041710730060761642028748016985535552458573238131269867615989795926976311081314820559369588192846771463444228001937748101261040611000706270246936642729283373651282367060211561294914878983347276447911369752465072774507285229217211304240345519121465156812278520717678793264061140649832695905693185116610895975781369264857100096945663395861672505673259150038769436010233040282716916455408985012458655634832964547493543340499094806517278488959012686597620355509148237401514157850088167871510563238679308152255869371956283067622124675145330140003628118565785428347038497795904632894429387929084388238039292482797320537391594519156310958537423768684678209253002128072327704325065165082887708964003423397865996407320285589519221176634241034776376006811115219919043213462170699964189936387816772085849139455133877097149587047524454399125292651539934242660920144504200930377279561515278766783504362287934769103466878888440797954161293847576949958310806725618310478909392520610524647714317381553944312873324780397853485655452878450153778146685271324728821679810345756508853201041018470010692652102377126670567947406389012881118548484569904003805734437219704637780281845265798640399880847238288471939519647478435953668299352550643870266983407418044420278386740231104371068313618341371923889858584978642108545266217411194182592157659840590051889414564927727123097000978174956244878519851225139477484292797219529205633142457877017191096394803654622479763462965395509256234610303294886303892248387622233115229082722151727352928484457946011909462533051634715788651433661580934716800495146255005399604419930330705851609464841919527149922033559560855849110710900037596058885848259697759975270881612188802372571656352015541792020196344392025070771064868557800349974537259310572873815858628850386123712780846026493437967179290161727747583763105911908960866264414607209873476976239207099581573363197935265966244514208820101947955871932644396326261959525019176724577306427456152709677396755832566547653957106856805560611231522139794079932846967327778397458048975012874603196397548806540513452998675526096379764766702053549532273762123380673549216325490133481072292363267029894602732269503391805116779066491051536270865871579126700965174743073422744623992480359532643215595881481072048604017787382427059617709095833621804216388123338985992815179417227055644162544900521481368396364137705813159308372070865524946156543216081853144491952649903242225135403842997982888308428322135101013823105631491029734411176650915759973219629647867378243393997050484345347619222042815234172996898087739188711223337123739297152310049781899284590551791461109353822725495689973275776019947183040746534278758184810462986303047388880579662952926285634347854712377872162593758160534930375362896963062115042738058788846296340273611857546289683428019355342799573669130262668877879449400428048973320849646909988147284311793221193257700093519023885010882540567552336816838543301950050013879016920450993155181800590861555175919572335441802861995615413732547151826731642598874522863263558186854935736208108747154782612726159973168528039461907196471349732482779612146641661602696201162807569913552578150321565283319762056753531285212052158047665106030786178312126802922734027958127820313360799783148411905008006381344146748798991998488643068912057184960845444779299589847287997819754155931035628045024785828618464694787240067714440014465408533800095583947611886665421320883946856683133573698860822307742335404363901640564581498779623764834470954621967696397968914432831413262594164184542832481497749073899971463820261120670617501390532213832014827561047500436654782269365020905635903583256338563811487951907120112611178088840379161069696906887032129318108586002705920265496575575852296415956559420744536150402295383138835080981283379122023614674667809313599198183703769888372247234344811042463883547827069781054443739463430230007754475772500043143995197105728958749429813399527448070487766726117417830966886239152940057378086088076289760443806905461673976712780129584972481571611822128749888908163722686511499312294997883077104119980128905770600249362974091188644353329655031867693841417867540647802672339042294523641272318976177269087431206609264584854950105862283001298654094608588330652584434323533962440120786488842931359233882599994391305132035283242181312736858876550198726985884231882893277443289422170626756244392467023797628200219767874389391958405897887765602883386610954391072590140029976274903367627016313875033287609122992380571296371978172866421837877292310947420072382950488508726686791596165582529813247163503190626098879172963963038577664566322904330659901440519325924003693262322863647904304788051379428860373489682710062652143221375590678816043202845789907001010995065422473604115422632712851024692747614105533385150927081291189775045828757153126416325063678495999854993614604633157409377836861421685410184670105380003622070636402174677054410361243184150012592632443287548670349450315556169651350756664069694905889620969296685393096220458526593637552197295086628431381913436025572127023615370420993271478237850106664643544699533066099705463086996274801909420218793501278529490097564940655415381536649114266321817003065272825207481295332414836110650316622481716541279712122846548184199989288050621982194581341339488113250154741606889520520984444010377127634186819138437778786265331733416450985218999607656588070944290495030361624355507754215120535735864765741513279242304622340558283492653630681550128629288268385925331448173566813502010277341910829359480435162796332894775046036046854628892749099928963357875985310967268130821356296756468667444843389707924184476020699806919412952754585624364250275949036042121490062731405556820606847891388792919839873394286386704520260791078493388657784336426262005380850637666595755495452106013803482957998926809772783356455954542033803565894559565088282181823270103041050001530244200538762391249337179407609317758608681682759826544991972767658417284844115636175456246090318229716696202359163216889346527749287347995285993843039657226072221195058333261479595298153751889155534365496466917731008099792879967713798642901586451885065575820875146628914346628807306426944444672380341527306479828210801607156843386697685356708252746726878922299965581637902820834979705110738344598308408684163482320395326244585751782303842088936297092443031119172877129219459017673933025105137221035122114096857288725703149440768736694452825358446868924473771554638310766857774337804396074155237510770206310017905073124228628780633522532320084424094176607779368471718554979379562695405528392927676118039610510068539221024402171638535423493348561405160427069556257600844764049498202680513355333410236013757123161629379046991015611237406442482305008755260129865790409178256121863561152840809582913250506444746451738135152265830242019908242746288010432102269695730441630787375639046639677296923111800434307306389297529818607987616882617875173867849306143269669908522197803602878278083309527497153681312566750166237910975225481405071761904582238180176730744975495750271227527219147844460381708124870680595374579419885905803757460207933371530115544771761623897737634551941336611867605245215458538384868616686442884598169275975425802421034054105889493547313364014845226430120222026355539918758399131809487925508988352806567079747168555599436204467864054915415145904064560243917302397663237940447736781228296397984014414578663173289266358292577527106057642729665878486562925517836379053580861615421231713533934674309390971420660994614456573057239825284564649711366946404163547322759832019474708787331389279118202559560992101167954958432846736641770932737726659202078632594196968792018564365651598528650030625817465407253392720891728984562905187126976427482712721024838832564356842748821887627015672779873692202966266239267766789196003003509252385822781006295301060625994235887047994115493516024965726788005553195410079975727003211493605630323708924710140276349819904785940681035859628770233109542590882608135536430423911313559042706087041524595493729048897007558529262720249250631544198913150054471427151321424119294110080473554000365379257748094341515259467197344454581327414413432241061515498566284503819131917178896537371758038005937366138730913199798734514311036482762985802008348748876101218971450590502866399625647577493180064776156788245096598126707598410447943273821008124653507395992963194234405797232280210140026812961152489048418595798078750624480443115088440300902856682524177383147623650115936245281490012830984057429565222312426575835870401118949851279844023701377562227620246110659712081849181690464846992974341859495982321248780613430222250672258190376779694429703950345249275888236134527009758743737201114008305440091494777622668623826967866581571175214148764981395774150382902836709355330622292456425746940364147206299762050627706449247051278018449714062959707676354169408901470428260846154340181010029836010820371568002156545952415487802562721183867041056303711787100005015463201242044538929378016403071606749208345676682377826393300815153178502017753053410830840420639490669986717308202393972079282601739437676501356955235627328810772588380125112630329398785516720130435990869478652928818783272838834171839019903400277422549236517869873907681974875042259496167554207846902638610042425391878634397065321673501205116777228067727868797596052817947463527251372196353008238986215393390237511114821556353442593268945448639892770798630235867646337227034459129716446796541754765669327007048859892956237239585718310450071832682392226966813926778280884834854007847678527732934786020949654215768853772336963680593906631735813121511253919969748000090213111067329054826462042914684357020242152166099045444031518871983560686647315840594918182163642037028553517222553325785087398121636857334647494307443949323238293031111237433130554579516707371837261768664519551382617009889501262648667577508951080445656571643585822265231231692779085251395469384719497923977774109323257151339188229057939270657696612130932190949288538796888426527067233292465070633701121426339895397291072704010996240751906254125337793473123386840844071343641455457787376155581610931312514058246876651806458873499834126170250724075481392137733508534982739828379730049877787029863271535158900961168120943297177422500801425408618215096650555244967266168964281605510153682106925376530777002027226657921698231113930511443097974524017938436265136451435400815518602403740226131010964250374007282105975216969557820374826781006804748494045039188481999257246382553527477038821913887625599589080299881738916028909676522987912990522477801779338709008674310676491136348575896829759620492701834359394913434977044129785629806330778551951088943820622306905222744023536056555779803995097313175823695773776304266049250088600220478572611374398953818120051458199627035186204069682439739097781954111067317887060527148520015741258607337310293012338634443477774215169306949849046044582461840454568907539109207802025413758416375619303014216110225647418085689666493030778581931578516461989208356987281035532978324880662527581109723630891641997510853954491133455714753422332896476196364526544892510904459005794079916811467632221364042744642711574751120919795182919378381056854660424134397532866087766391872402145211999721302180999886537842372920008324562218222957598203619621573305868629414375932740053966078905032407786607924090634115646968962865136862429877262608629222749136433020260747898856926873719544252454683819065635568099842243021353716873609351463445528509319827361145004118881569701264107148234826617819319895102575689476539009678652469565553685168177750111199368255434614497148414601032902833615305494686036964661559055764776310182262622467184487268123119802878759106026663682661372594464926246819410299545622747033627998377325601701958781717778995724221967914567721691944696053023490330628263949984480635529846845772324177434856691420242857007591486227920133031482382132456761340074543611174817419489787867553772361766305063085039958973162172202598951315646592898377233241702373038498490720558569596567914332591425098519038859492243815260349288300822027025448984078128892167213750155150399916856912358732467810459542716291196270664426826598623999423077406122878391178026909646385108445309290608361794649543438303511411386155957436451803859232448356206833654469875410395927626686865937266823460977035139306330459734584655624888071580963288346004949485698149218153100501198059890417024776398586144255882215961354483316922365755704540984187256363824785379474861164866815198476158859411123884096750598251435052725872357856084699379709776204558479043130015430341977591407790441580601118735712563595681420887937784837074417226754457600147245705414857268777739052478645117468300734178820445857427423654433193155254055873383031279194646214420542517228642481746620850741462673685025369477600091944913639116485092562299758421087221080935594301120290526494495081401919152304273125544075880126811615557749475000000435409854802846443904027435999390407657275722574345459407696611702438728885639641860245331056516292372142681829391760992122099100362466902639856280894354702799468597177818949520534789664804715815655645617806087007949823567069927788104093927008673936822538791273912039865868573791785058914091168328766916997247077727367889051419322914105401692647016888594872177932014975397703380097350981134000238043420518914946237592799412254017681664202532515901517283467048830853925620560751266049564378483434610576470194718906437331484789316944498364651273708793609955526234558895408798315873299281484965326347820959150878954531527260999201703495835854870800173014054126593503135226030022607868126573845360694456733310999654409967338811530530261505987159837570273785468350751113626625214333444537868571946961201092079483805500184354238194287818428406737198025550566150908048266432783743981305427739852100620277265340176159984172966175418106994366555027425896027188923771985420920672305085822448934970429011561643026130729343384361570927213185245493876029872030141340645033135679661829741168766058538507764273286675179004574667991155038614397496968667206650322077116623804285341750592737418144795676480105794818015954169660297740271077075011076769716612348190868932470641103292262117706579490312263273743932593147496968257932562221700450462675703930750922476720527965471723395046026981828773433418953843944759430634360491932201861063507645232419150865875141479011061238634759143173809884551040123790245506253560359582816461917773956175723624551960317185335951411038047838715262731946138545441784244155742399402741835567741180712678029995721340509749112568197084468831015716786558259295894699731539514707563493536024920596223030667322222736426878950984062982540618957684563286230933824864414936567359740943305984178823154936458123187672338249672993794491933078515970052588206290014660193822411871865981997256634920372277793681911153305205022153759820465937386072341975696618160426393059691139973067702469901357121867360025611633281421144642956900090868233799249532346964227763673298357165473832806520088179546998508149819091035097929991373974579335104122836631652757446472572860341091780248022236532751357360858390094656511868258441936179636184574534207902278858482588292419789986048307076840210565798492212841320727194521739266963482826313820313039719794736568747314599812793742366530442562657802053893268102098584810255087759761191262201536658796859281945360767286719009453309624839628782222965456098095157823516670248867420611332120340595421298798057059387297970911964204061267564250697607635911749523644854639281527045794774271874068248173475816073484931437499678866061785205333672594263136728694734103850557204178320960123179045207222109395180760895188920392599650383417693015291962020627390113619985882349906755226263099633830476365732550461834983420853421067293936547049609540643209605431894116679784330908456450960273599795838270609769958692647708412102589590664498187914630147631978907835082106820415755957520651503461074872365667355120594189256875499289401155481672932079836512172686466264192859844148450340190085474356050709346118554936276771949972749847361317985183082527405051747217124194701803381914216850761448669363732648692982069457401690151766859635748024507788421671288734079260481872872627056758662425492703759373465107632481762920101242677031703977403978289567945445475248162204757528300385210024222188320880737076266500527471003194070726642915374671353464531539431826673657383919302892813716611228484115030845154618582601557849720732168921190074030550116171398972535017206273928016633596400268825496755119732439481157621758511263589196138349642182324093208350812194451655352377180993664592585674338578859510910034207331880244504648878624779766386485529477365640213868629083795616755124348100049990780284457157600362344545302630695664232032956079795208796966481313273620035104950667952146153248565956261727121567196287506373356008634499080661334720864373979199603721699727584360659216349543454777777384605451819580932441127652489088024464214074853382327575074066039665532726272347543123946910339710886376175884345244394683634771880680117851666070049590605168449714172814407033855006170645926756603217589754622700193811294067703158948051889064749388553194874543228590282306141792277812716044805689046750200367210536935606806443475709309194453727963553147669033411175863493533841668610597489682920263088470349408332983545288096500210956752015514593750400690382236328215694476025471543824012518740283717681168915935315635131328297685797267709941152343685276755745450173157151024787894339769079713624091005712899653255083251362917349279632997114029631972628261896971818808873744868776912117439426434081280783954314514711150449083403977760377869247884683481505979523540768170774112062039732526392578161958057810057538907466294513746683040567716203790247014037328237308857500279480744568739189617441934827894045812846488734674324315045486221075829958724814986478680607813767571036637326425190129638579995842631163959523474511395549965819325771395153785561046921622223696255509656009957817362956721137949867016486704542953644313715807006188839041731291466007900862147393371467217155064603741906065310476961622428350678621092078791602246852612936641874403578591203717405522703728054815839902472485517296913978954043691415271711448761666147256137694606009028189473361316689395823088356834612703321302422902403463001818838246563354514210420028375432259657783723175315145366624160859902991762972207605140104501463957140891297452939146381036963108136378978570241087094678764610495295438219434157567422928335608164272255671425566571137601172303055150743336859643567501146901596855712078778886429423220289574874730812624949865753173376385556356706656137193808667300026874140977054644553396220089159153682685424566282598304762873074339626366292851388965252958908549349252890110019366229190318658114928741493161855301920269644529871378145756508176761155087205463114805407145680439806189361540930686350183320776495433989372651994321226730403091015264035437325253486851391914608327006710782344679535772899656254221716054941837767676101600133922923036879445895808789558102831398253798135212915411079030178936998063767967630715273157645422039332040140003646721468002757171961714384232797824887190057713623175207001637253810276630254815564420418734429527799666660194086009239828031166975670279472841674336407380369555895084844505235594461331296192175808793117528233205524771868807964904688596908241307107881903786482441173902050191477686112837062308094323460838699563823813395080968008314381599511312170418960663315472412514991578814056851838702657616729229320324997694666489394241647069209163942042895456441824427721630094504880148951354427495477857690633219721178209494805179818931018423374180273677155598251499886410001879765141038927043328717791296697047270037645066727064189390136044326125886849099996281724441197524756451887348379246031551737958980799225387008040596714515976694612357350794024481017229450897418732974453396627204224067454572714329787440256322077841400797022520777347252732112632846636304600619354795850402909185148365429716112108933201488809469230438465323260809584915183823252059280795257416017830946242077652396829619851725858238737075314589012515634799489437496481047604796899480574045013287635124901358678358261431252146049776089729556496566208065126090978043541774428837794154619263766597330274271353604029638742999447184533133795989649689581179640766199140529802924053873590928648677943836309193770131427594410894297657244494858003120731199318932644202752974621861200130730962117210930383745517245563326318420943878819072241719606822671677424419319454565288928377460922829569504689174632527028671336490961127626575318479691720652523321027027764837101855168653597450000426237410626725448964745692004196044669917813905637858348100249573878083897202531915816711149733145234506276244516892610326805689301306446078315914056088240355276675024956090102773626137110954059264484972922735968000616477918762453734767802561447397527740657340800041340815134059518318274632692385755797155511757682530758771172248990935390368341356361468273459616195825549761056429874482565724601332439345269541685744376950026518727243834568961269300916859517193111766274406699967026215449105518873741225233078339251766180525620388714408708524232866950190400093403923055841804192951129707983973761335249068129286407118627471653793257197248203680188074588825288034661469009877774177312824427215909653032736877661356498837331952048835974232445679266481944089030476090670407189262995509432397667640278079993009190396627387626257826560475106196452580081892380525088217421618356762653005020996956512458505034689126872593529619290014195953369602510103813508767080839983513155603279633559193809811614617507530741141471863987472608762900581664712913207638091244169837866577124223582987365146194682665081797600816824072463366075789217964334866649377530324510563658901364247446097997279996593302238479940134592541470724566918706933282641869523710764646983684764091194659576986215907225913658994989595729956415718822489944950752366480292169388364409993624231817839179117882143005113285217713598708392858622513405669384398934501719757017453668033608603082479699830925831484210632005962138937056702090310603761948145225686894063028259256408245544829696501844022842972654316074381944654453776530384974735000075875214402323666017479448125233728588478535927248025124734044045872513627900230800802498246715479730665359596924073453798705612210244103416377394125548105613662122851410932355555443110366175862273931515284209892530743857874104428628085614185632961704160879334122248508858755171359069524106037213269272424647509950837020964712649801183821026469419820214567655262560784866027534831215901114530926299849075228429133366764453422704064830546814373428499248138562703267203012806379308315913174720344008292782239938553854829505262674939660127456889635746219424636245076199714619983209757844974703364399533294312049609680384322803051034532610014339218720400378353507293805700757147791408242124146167001587500091044544156667067773025170858801451141006964742178873381653571746396194822654829130104069535963984068450296329395058841269735717038810542883944786323691976886558995374805368845506613922234908455961880523197177960335751761059606375360666921892859532037846957376068285027712299084402054436042128881495037674914520265906288444614203707934824800873944575272185371606958703542825118614766159979363954295647579251442073449744269954695196972673599880794918646486240346058365472026243162258515311025007952387391199112934591307426762648502663186974378640439969127915458622638534936270702427254719515947592480158734857281199748864379687662779536274579276026126226085142292881390425120404344860211124939539081905093719599944566494296950134991091815441776047138367370581063061477658404999851988488836964287809048863608454301089414553172108567883416781683690139982283904220281909229202128313127980605555057049515439604803139073612736108972451528708325270292856935699334251085807609704913723162757735913570355869253697146042805227181821209768410139393113658944483613674621212075691471893737675404714546592379528171057886749981442533141865316416842021472498555779873573157676285713343402840292012596854994683412198828700347493629661988324406828865071745649448936895797586409247286339775051824767901789875467860436201525021495951963987510980084869185013399865682922261693634204177190126294025940081885875998706062613723506492784601077255084764726907632448327552333046653126274374968148524742572968239073382523645535641784981225375820655537195400068983541621147957612181969289483857761656521453765271728595256386777775479019741787347137056371114533440035043252567654566587787305820444240288029576739839717943851413324989436049988852596903986002761811442561466389345852233798413200795615516105613159797914528176753775963931557385250039611238964811096933296931416562056406944859290309305318945017963437382874413658580051159107352496558548176244583395429228580672340017555578491355780942819756454127717742425306617405963186943370636668608168080145527357310244579792118687205696640611216511602624097371647710716140284316504725524249557150353208013697244285389235803018218963134688216847800727143081435440515865646375749048040027375909643483050601902795683759440536207545676044381785818994886724220742727332647871925954763911848614388508756570602314809389703937589659793959350006120795200611235008363981884745195713056010862127578797621590767230841638301204175700711156238175812224225941625368945461313336629688767586220769732273932297951213356214438690797523076558807103524266262302968985720076466928505094763630091100734744706963149015654163278614043568046563936667117612401027565125739022575327866455474365542923861355947812497717591685741096523165900916713472953673015103678969870248860907185872118266789083873007527383902920967579953756748146980565782303517697046970123621671481012894042793700935184921636954364427334260975668250055493096401746038529041408892676979406591761886712372197202280414121547764160372985209677718507712608022862168553852551084054890869481227742371847309418193342699066473362712536284529215324037585247001324408387805423545811185215683478189376349762718119925751515800819878857800042976460833024460194979703105689646918791861412120894618211456445741876832121489413858312513296256439034265012462843911701418308995099001217788853956490737235864345982913270869208838630139009933753312691901952359977219543114195209730242472081819284389031152474367570096942317836148692839853349449144055743853462214866097907523535706722683701225848643659937915787008408641577586466527026603802365890389684560521274732126779290344234162361355422679355929050776116742275235232162833894673759249712452582043013471442708697258648100205652104806613166486399937766159608403387117191091854927523909553825623369072768652046652391373344154165710814916760358002927914886658524795734035155031114654262467319414443327531830528351861849463766511097397641978666036263296409283620424555947557998591508506757845143702946432687279776542447191285837393325002935502286723251758893726718097514306463934638009906941255570597895260110688799947800301076962356875198324784863047718428093280980878671474750744533679159229631828420309144988213297094438698239267325902913617533325709625965900602704535790486247101815290562159161066185970260215151987517481182105508576665770586040157174381956976187864887527711224388711387272599537557471206571413346115293324962556182794058273576918841653643027690173815803877227313868791316072983994675441955277898965710314713052403528514903295013398598838505596042629781935086699412276176263384853538358490288165145232608384615363218035790248314377278953254378089216916390791043139720109219121741779559345190154636771615850834624579472658567683094658300472122350568847287853503266267433132913047815864497265198684693695736563065706515444279327990962393664454593256061374906809810785751049760499696310606692119648253296711021018887202649270265785163822645259675567227563099254160070642757903224968385069217133841510043669485949174149526840648733406206323773925939004763844155453441683758283656259369634427117462861052389843348232610499780918266729280259905661948028395171693818860391606064640756415702311309053435550392838248125296844812757251857062543347825028035955512146286340677820587482250396050717733420838107054240688269686458242718238610653930530666728976953145847367105730103658005759846434842614978772164715976861811128481358028886436442886028087191321346969474463205843670244411916016373869184579050305056729145199839142223771816513640147395248444546838539223073457333216512322502784770823673669843616146520681473847416098352965111483588799227059054482601242094594358500088503008417836428346883169241909658463285877518687526052360646391097185288351575890408177989398136620533765294917485289462086261076267879291266005604059710540682319108858768430241161161363587833547263568745312266931597133438500233995697182298643090343499519616428141400557378610683092758637771555049788901231773813750704156452452808247637105189279489686480637255818292786284947145761649986831938998248790711333100927679647450862911181472362158795637299095324986719791272011654555511270789061115628015268965220642957428675010380698263513628192671247969449378661026420084247241690672254685689954413913229423765670808493221939666151378949082982523856138594943739310474873298322062394424476817979997826168763153629261068501121420677039510720117091114508345305188055489927888994104352854232778412336367296173529093858192169789979209110461587179951832858797187271606558438090284093958453145792991235071570737390925081279313997213697717842194053388634826972708817844931338919580100344668349595880841367540877743086409771022363336239833782082385178214163995543760805389267422664649868326816135561628486929847443651722586777698812864536631517178577460577627785625479962981668580591449411840300270392907677235405482377641448585435580076309639338662177401096754176089854629683818231764806578215402013811407473363214795640039483841345336608526431558980865478840351550934340400810546335870734579868095316933265229891360109563848303039311443109233503037817137640630972584456241957240710204407070349885520780084337484795519114943437026860397956477642230824860314545172086292572584744167775574685928171524252231193958535137664903435307082125100490943748042318949307707770156109030761556694793326883804564882697553229751649500409909781312057332739422679217932376394946919905885034827538520212163058772902463160321136712243359803329967299030502544784007332026022711643610212503974063705817726170015658288309999694301568222750562359842958470930188444140298871102253936889215789688035314209179068637201385954505898373003116749916827026930808202819172838241786171093937721540151216111632601452062508354722861373337388897840363559936840297337393216906455261407840064316700434465548027437409672397217809517875752199673757558794817144005711623260365904387272161117661758822026943696997733359128665205641393564918315753989537613305836883726650137413180412073610843125059612051743749187313528085979005150680596761625743935915399136132467943479640362953572768373560947970943573255027181323021234890145329924944689515672490700940301124622689564343378880121784697127328641892404029904211111859722376288096754601879083108834546814117990993505421566867790488404329315993214588532388711137255877461658874820010835963727486605987391220434337157892452122406598650365847842343482781691292631263386465256450894224001470076091775188497515586871925326465710601371292814674458939798609806635096669144689671945777263362256074667576650017971942345808175895216015988170594333709146520966030194181874140450307534487255504391836766559792844975058999071529233211055678367259808903881714209194020705212118795023198821825628166537534514861780024140463683081813674174512049033317411528188537273251798255250009697692291411529667035983978518794883466013461817741704451670830593939077189720961706033147818623535197382956954893847609093606376341520935307423172470509135166989286634159912903927124931741549063040362985793236552784668833225710978068442765926915943404539466462062558638511869886477830505432370400422616308660694582378062548282731298243489332923106070522147210555325437647364423813730028642265639539834656830556120819637821423438683552011698130949336089830782740076116673276376343256540807609002230455953014300735117917526084781505161370507553654586356248576142159667100792872870498674482423438539226962571244637329808119299549182519350597345449653888006449584032603753738781723093693817954465608644815498449918818106026341962879616649363230966219573410134942430926426473607628524799202674811016483586425073998638402254354781909146967037065989967049680185573315501656271592841410629040174061051849849573037164400256593546323330490808497855101672811281329056750764997174397925678913220649481344735577447864824488586079880520540581307865628883601958808266706935953625272807030696076261655940650771292466748824196506639743911949761484810847023577593657914319769842220676239491123684085959465245942856354440160401632004391653157058428655692337698349880592838185328918438527939828100000337012972319202486451614960069416419885882075186092097725662901942983495947322089532529028665544974327166353919879658387397863064344668257810792119836114376950340006745009004443225241924138669864403863204493410532256966553538441198848168354342417717170315609267618285623007765735546342277224036269560716941727589031177398121197629675882146150944301614585872297668406172467449003931505945068213396906630857925063479170455750040436946464697504836435385369605198354837537150445775087689410378253240224774109529142230030070869467871914362453393485687783755676700615312267804895149505355141469562740524913763212428251123809214643437290688316869235978035321434001112808803914413120012553766880857323231260102882221579540435180009177934827048104978417270820752578992640361483225386875660726830439534688483460437957679065914236498504294395997363928634235553091915905630459674159825695722022520866660523301326487926855128990542879912909202540459137042236242156518035032804176962138765115678447892821637411775909881840216051901134874808778430309341995046718674605466531084667519876884052868062742317188964439354597453937495631089905770177201292735369344147694216420256813907440799789783049322740628612285344447075683053429169422792742604859566320113480433834093206458836951443045145335643896967725623316212946821986353410347333346143523353351815653289579619968879873364627730624963030122826095868512045766757826501021767762257785434582826982987909014743102128731608443242847284574623874096388732881474525405994376712672896479879791336960202315291593685791582577673121993456499087162070608029995619072196878298225041671139509632159715537507207480147280589160995444800212849981449664425433610987608370864950495899945165321653213258001248816104869437202657670431902074481529556985594979705665379232483460898843018144800017223564203326230636770823983393772342475904287366904633709149783520369559083514810789543431850265192082377893848979824920035974785548389350605546225438043326529686366106665318352951047808699854148189183666137993160085941792718860671658191222424711979493287822875764735371702788988805946125914618551493808196018866524380616301759582508969004655161271492468761890081531034797489675431884115401971879839231475278848832962146203682482305230219271723004512838882093630935038519671416829103320205490845184580010824760603986996209117417364385928591617153138825417439016820878099966739564260427519143613250155574229265783045736936294239866277590565468442212166569811584476907519781148687214464448397052495603617214841447127813868574738687166015693849211619570035811346164476703764214911387797225015916310684687720052189692669280843221086511601271444549465294919498540657332685099077747039713814296822294603652786888552069503170077677802410446739406731859862759134784426235698502116178943224131909259100031037058991385957119418280720896298682977294684170045595922924370653633112762029686275286788922472630620882293076886463120151699144835733248434515285268439039616406638777313875837108667490203769275492970587688962363088957983790824305920646192322027040493497489842302898260735164825678792495853871321770381174354652997528234119368852667267778808890334137722178360692437888757749427048985190514895713586809440179729631523711520652877248684337934985114764719512869995352045052527637837112896360250176737336846675025867794170638716235427794592198912843502955660445377156966516449865972140402909865279881774842520369479194983192521404606458520553644984911134726699993842331803343730866666052443499467319776433507216849005792479186088751933753879875289155009502195681111581705786016887906360919520206696653557515196026889481726699767668306972110123877200633186203603341025273782513025758755681219383459411176094566134909461385024335788357562435036963111351970164281254228733968064835801509226565269979909557005843301957579905070682453851913931601664975803565978826959707265856883508056350828724040827301412781095926091273557206407310575169500347430471444300802868336159582581732883731773749056223069856089885186723689027252635350281360203531755461216452210902293391087346072923283965536800208553273877161880050876342691231865014877191126106929742636158197105424221971385069575623396000610043455922025347065621471479922077255346426855967832063075702763291133100898173566706903985056062507683156405255816035332972420236530897968898899607925836167462887609234938378435876338346110621330188389766874769227051576333204892835765856516901374551732864980166614127700382132520403723802001817233183703189076443102443203486043985510359287539186157695259562039555829390489953125072484089970679176840342823947576613582540704733866872023150816206275578987155489267035056603962912557128470610192476820015481275923121806088475051790979498277023325673663075583832984008325631838894270719284700090504073871411068611560532115549715178013815984799129576378560819103822295438309282740048898831076443763018143899037138772346031694661905559091492159292684470271497442130444627177390160059151961777515406456804433720709830619675032956614504286094375485056420420137886166793247721784134782906514537406195966439479753921906945908807241130212711327618384596160668720365175534693613464116116169275437892679688623376906735677945128160104910841553465795887350845203850159886151925138894458550027380307548969955050139778168125038894786451775279407025902325522150711816988536137699619114167396380564643393150467643363183154212823308458021551361398075168548317495192295836909396036434855705140528190616754394996712556749231823747540477201045267928959449770877220520313383741627746226835136859767836708536566654527691979917175722834268787035396264298590454120099985364370992697387772318700571803366259583439297815141469634005166350156753476624290940958228799161561117228088523323837055623937256125990111377807481179057539688800698007112847529539015205878388569580987902007143052485327542030725058558536184544169067340900951600151450501466813988668403141687412037939802909230065156799557556770694358317577732708912852245807895607593461557646847016116789753325732733593287000261953678771023082559217606464492508827318512361061619985742931219301144418293659447204749478564581298967805947192510426892619101437584371669268386212007689120828065174415909497037214029286875555341158449725650648756683640777305152079950669995054401289021040895489701414308930543984549428812448352285316254107523889818959164035774837297362232930668431031308125387331950569818961196603545210540336693784798319402887295797859713859755208564527271302110402829059666305378022599995607583782509195341797370790394483562990719253220773394487095238719454283826472097106569583333515721576929982332675698790695601535076832195102229657785251699128198749752624255526207654971196805348722023470799851747121596595637991162155769206681650520606678930757475131151826272405501104676293671229316307221573647064472696915300431909426510905347531461372109063490910070320243865978519679063420426554104951641807202598709365161178656098289978970477460953104310636001017280327449842614265638271620807945783567445405287164689028017363439781230110451195716426291257739989049836662450913883589274734996453540646963308993808811362014040924545773138269075452058633239429270070821279874965391498229687899499417930477295540600837392602923133992119747232162972595210357837231566862661109440457822236938153069191983877973689492422651792063886427010798658761697079367112042381450831278191165404046639653308800037161676438229738821316855349034485926075682609787398745447543065489917709183795710929665932363264084560198506663202811297702932697626590855657430308834922974566245042077975814498640394787351269513517150265916252682927287645827732329562651648420669864575706170329159030456003290708384889824275991073580297408865193590954716044533291011707381836069154575471605926196737709864349356695957238287028528855977245460945469638855444556465428855580127815222697633557678019205630751997291437309836560292149136378834548150289613773812409830888221823772389846031188298886090725071977948419019553882615256887059203879221111298002828795698328940308930646705975220474365088835580575158566191320275122468845456938187070266928841427979150154942656786000088466992793125477069170514256947370672309355522445685451205765013353247498879670857459006241587352173070616573085315543807886750593244977091828615495737786240308271088830286804530277825747974338569389457256835629096470834880995879784442754759619111882188186691976018101771222410398566243260110306224430091761745330327481875414912746347732916796053105022433701713431951626090895492402794714822681513287106943896587858554007631441999721336660856746021672477891400619826993350971823847451157348512072104326756210298775862047129130306793891878474305094000275758122525653510596345300778311009891430282398334744146393450648847960943180911107573975361190283832257379052578745890597729623758183975957295366164042435579749465123977717695841855559082907045543379834005219419705929482261738043053381308104057885945361124169188880354867261841149818169621555593257896509353381629038508883801263661477044457850171299835776745169103729736483181521105780079783629677585512203865175459507276847931883385224546889820228027966621036526711507337188566595933665628052923055563072831607563150959326508414491824856051918356972541238313895928002965400396378171611483652300634117777796172057860423370605255226344710913219318771548959014148720558463783817311221976042800067933244899358580358623428399909469962191780555093560460074841341877171830049090667905430520909488841983648888391370952931142690768570160920180060055463545490589563676558031770099463397293246387165593765307102913724578020917091249213910482292245456082379912716817304230700986771879014397287835191502809191840261771254682930206206654051979466606615683913417560901284969782865575568643594976302387646079456863620313681699047950652489412258816156847909011661374979929924001619803142852985166207439976103592669061825235947724366996634188327950035638641085987581188972873946194433001520521200702259385811925364917592863889845943188035364307992296716143142611281634044962387067580038615514427372811817105417918818666204779354078949770277734290914561476946056457271612698978112583711118314439902629423469850255913048918376474611524058699599108517002323354947127329727230147694982403026200685284276553513561249873326711829672861067307132418976177859590827621625133504939500394155183748021629089016307577312169093330530254438342020471781655251904742471182358109395467947916666200161277042830699273191830196991457797770261525499128432901184044758717598828438014663871468224509821087884724032374955850841723306059332190787726909647497908129236664406405963669104125781667887748929628584594804929653858892487355083808077616533451629927163982562935202564980866304664338065098634909903864464648713277117849837324704971355177362685801867193044587411170812352366573225035096263117343380005121048528597279304964291465960608274010642526299427835830207587815361421951923819259967818714334533439823594886471826387832057778831682584844604441541025048760511571567658090279706081719359671816954237384630435391787289829238993397529508314752104425403749810613325331857675878162123154244342132960108873078074078551603275909532272045834364635950811701354099147402560133046714760222985818218337707687869414358102054285691735564598510905735184805934078976234547912099870596142539958321107404264044446129004587363103851537779999780008271353544986144311275901435780048474554851607614017683444369831924221415473960779046033266147834004704807676908528343115885381892345459693339542804712928213892578919829528192857613544898177152068758898277638587289706733610131461991403938895648356721446893323044789029329016904985975040518946730667556165643934417537294457126636483825015780234173994136346224405876681300164924335719399711453509875276170609900666562266112181719558958221586784285974174935889098212497104381659752635825222350277985686917372065148909346983246438925798335277517503209622696146233306084669544873524902329734616213570572278954437023027076910004810813122829791426798506686588719987298278541596367633224867370352872158954196878053342203465365995137554288721884683312085490948917280862105301799378737616993562652786448092398192547042430466282953168618042196432587210939697406080041330540547623721879783252218793946186234325276491307621160938449383735289229335150629280097839347841077254017803639921346229012820236774359202176602047187669080542077707240520180381468731984461306911829277562556451540844734581801385585569608881355476122456545969621540014264628067385979183818561548365222181023821771092568591384116919374839594571744833588382263525422555039400182532122574407492022668594695979708412135321633444852270814654073133831519996771758549389890437856914037286428605474224172830677251705074339756451629275900340261773454412592456948613256959319027045043574788263807366417248505832739809270862886384779320325260194588462485925768989814273515575083053092130886921533975190600490420734169701022726401004501222544233752896199342606980218421353489375153083846703539182576733016072887445295179782657222627310607908125791403467425814530096541544357402755813175982614698729923356073567896828800855416442836097577768060600747108990341326840035082053190840203361650485359729156395376323223852952971536903961239302673705319762545313798738063155855317552089176632640894713764169206274686108832705514781184951942251237485258737063310997777380770338746773128881182540544333964520622246914451349705719442805322408554633301944878221941817518873479131487083989880977319797574287826671990895731642255234556402211653906005547076108178959591539339727160968285688140994479321313331120430250325029324564171579509520375890798867051941695850613977563239436363549281294141441301051488401321552528726245036973168349559307350339937057004872349131984470477743709738657647001561407164289762572105526216112805818389261031984326644490883309099999062386224220128524458828240258059535571329859820333172547082908967075633472049964327634766964851036081139874113172649255293931137097774890738533559336512459930099468507158686252812674884981199510936924877438106574347994231461712068478916972035299031528060275368749677518422336606520565660704155616387657389633217880752062497404139045585839645220155200998761077863655241513406846303799181369215166327324853485434243084477026484696830383817720409553355387425135392254507041792311918642444079427091181672889948892985819894817571846500451959166536552751145441906174788132782136381728598196221260547145998810997392606112104188820802532833550809262966354516508558649987930788039074835470816454089227749703430011722505627737110419390185285373772818913603463646922654607526763826089318623644631336703135887649540882811460347090689195856201307299391990724530052256995288285715454928557434674523234681861123914052449451449955088041629047409247066084197082505048596015282723027271759237597515814423222865521990604938174793240608016873634361082373015031751789722649177313840722963494648563622982160059581194376946819989352920928511031249285801708557318612498769031746976767782375623181720979880841730230989864223496486014186323348111838898506231173657058269846301929634822776777299143540118184987068014151369417047012024703939590921678816762927800753270781102447657260782412568828834943141585351455915456918231921892895814470903006821802184890645713262229608690009241034368588077769355975140284466621769651487784720155839112631365524854758522767938268221616731233206576808057290443135493647048989207678555512257475450741825202972258714104029087567333646382801991999072265121781923544402126514248795306606516091867325808328059075383542847311842205965921198600847664877709187015302630278465518022602032701719332802094523477890749496479800961787387980238199105587444249338582000149648919981442799722417683071656834773938878264202604492552803207387506892038705161718062354015944064209074764810636554732826383935478832914529859049409912577769523949660708539215079210452651562757082340689211853453705433659728093207958563152319939490963018074771972222177237827289925298230303012940204352859546965795156632982976264679448837529832480495425531003058759275878878383296927672557715941096426771425008657055798618953871066139920354210995485344103753076717554706969844319101083913083025533666619229139827366114992425100065828125975582012262371002560609851115152264240351630614456509531592408424500763698052468427553580936197480924672408335933767451380661200158177307532812388546052172107823340900912898252854654048442245692922433053498175963500656440357734898734062432558909902963261062227286392823631881993505096804953555071298052615720324412413496401921593331702915874423610151733152863479233262860369060346476460579054603242019681433954778056927234693942830319161509156918438088285377203233848303753443463661922496406481466810365560992420460018803584615784180324041536028506925292544431712186161982832574709883472236208617369613834883277174380767785747241888753840543860718774929751725722292773703066047407663858882895715722363248532671096378634314573462073226822984113688328604506852585893855707059821516196299237633574026222999742574826982823751919074427547867716433902441547630762404171455824747458161519886059278889013623545109265994641240826067776801752805590784603411427021365271848710198379660461051095129212858548592833109327818197789381768346490399329020643573388980358604838849696224234980755929875802049332134622925962236045592651554284300386040032147671864147724998006126612315361298671839977572059158122765667046665113041026715730559316497900035921504445763078817716070541839846707159518964512990543198742501590966987822487516982313857320859180012920331867041569806795120540255899840715143644326771165849944903079500336773814505189342000967080736806054396588236171247748468554316575932881785995384522554605011253631998261787885977359454607475519582104749370561473444958504712151235294204067815187828163649437436294681761548726872516613511089480100695221174208112609955053376710972355327135816784945084335097748976714829313700635063759878639286069470376423150901521488710652691873114297422829851703875566415739358662042818066801422748886959578121908192949142248472665834343482274531090965877461827649903053045260078003608151294901998481456708588853466660799681688826658916006730638200990123557522356440568988306561487137820490954108112157289965705164075180829597817663874836647888575777595863563999322161645134424525579233704598418395107299093859759047881562298336708111782554186023881298328027581195447115025582390125612083366640319562301802620019163978747954146960402742207884686798883944726605355515974510723556033533808517117754105469062168836831323558963273671621299362108527600410542650661263424469260368560544223517556797630237296097453616386994725013367486446468300916994446271735060728272504018210866579025114392317054873374195408840442302569691823245108412572491942501421216662464456055445664227343739022142858198719668103774888034772007507052860111013869460634743980026310981623324068409935955382374947097634281905845979078874823206050775118156099998867976534226087291616436826295459235138941030125187679663814533929684252555553396204243249104141779767359789684047500070080805976470194218347230032907148750558562730743723345790399199857645319908459145947386733935239998116082919357376568740597362218882858106399363561359573858481102331708071733608135638249322180862053976815002764804395979962284635247047794953629873621150655374210243273924257482426927286532358836726811846064042056720553404933812228812623278791286289925933612625112835164115940601936185424951465083228833406394853968326286190485379721328478184354206517183258501957326194583483618128162221337644766069089650593298970953255518534533136013296314227227211322328039563742970625366178814425461148544496513770785515527803556908929098263330866791392663064444468650698457780880857283383098520389565828087495153229252734696948493043963108309996737876424191618949264073308270846364676954617462812446667025962605096747439619458954559557868775698536714564464796084685838250556039665797778541388761175010473113912888956877093833591347250160468833582338128845805185001445249431208535711597078113838348634247716788030888362664545765487838012932579672646501121717218573442121686997432237226237329170485381349090106937032517115797339908552468181702738693691643013820095520305102258972733258706982261000591008752119390167122138666823978768424756897796456167387692635043254701269332765453067936155433007675796616780937098585190699967686617290923361234391992460212500484613442597349709890882344374744876539135879253653680937402148358503210621288267529809078991483520555876480180089430882294699617985694807288783921775041902604099087609216071274807292634337626066771773126795618106514792082823131943810262130967508073207407856338336276752568744875774545467370398706255230335562678872511500027518403350322797010536072462794894612970260829215925195527835106099841462674832238657788264921337767901920627772033398146770702848535049271198874732823202547357127533218532817364198459414591347511994615529535108019858704030176579319149440183594658353194193113267406997981771038638744117658232852377740358554872066320583201728400674173139789935023007723683631368544762295692749638976788252806427300890803289212348625697061134830630642111161816776629802984404359780798340972776893254608430257350048314175044341329944672826324444314183413040910492351679946703049737923987135266063862785200699486678257688986541792231373470034270233267891671083950217915625331056715334243566713679701198962552447620544006532100240599331852703313399797447124046916374823284950514300834367247278285606539486259528804456781478767755671336377287324680433663556680432543025542910803167347602644617971507301316146265631786303605478357281749141304353373359407566514621331786748400214961171347679598629092861060148018542970806821541030105665347769303341926210321539942421576870220578617783038728902314116362198441381584207325637248159320741361894859520262502544118759409211375839568139867173478709506726439706384517179982599518488747111517705638835372694716038548653063443733327952219416527221522527503176512719349075420550777780230032167272062769842731506572682537727123788546180670091083123998854593515308799008717108922252248828224921441403123718039963837092092133843113534897245838976791330568751472309519421371666159685317987071105621208033460619248423212466466826051227710361215586186897474584238225784080657419921883346936512937650650946060690816664220344803303391780579486782148918260498360507474190411757526923971353636654429708715913243307221067115730356117981285122489930654555695453494841474862561800381056631471819648031890891803989911652853001216829774798446584159515372068079308707235236915450428916082474263750932067026612713370638664400206520943963113364851665138416017954857369243347394803205752169384735638903748075751122381033601778918355245229783035459387827887874133882650670436930601758276771613571932373916374956943914568290905575866063818270792547766489056207659563923390731624626050118436520272740429655068557650574714206261951001915142385497921638743807428801001088213188071261459491358354809679951327974186406403132082045878594688533962693321752279602670511508457605214670020657312394494723679796591041900817218362763385687499853056123434522015334930951865976877764627517440895235623086192524379351028053985657267356587428708703577343932161113183041995567245769565436906851847175460183648402399778796669312431413402573982116216940507280954370768846904681741233411473689355929382954464943473113703624654220519398597664319964167195521699822520063390993736782981686624592785582358331137567975982544114932562934013898393722983662091458306858720892906548781209080979270472419233175430416082106181731720077061362296767276841223207897075259176113515196611958333357969753219670436271886831220641351798684059922077197786613056457241984381649001557376230523517455189240245029291911356811201600274992078100041341820870730678865510092115005575157128524176563022886069771034624233987399393441695828523766954172150020507301251058905099491482610804805394615628040919767292343038752815819007603138330131674797217492661415823813944847859423020182799328734656798691859288501315091921349951791350208861756666685155541732046539765965550462497698992274351284421103198800573632020387451333449899813803802162498901080660312684957872844411749492680537342165180532932438235307160120175855863939053786479091896879087376758802872232811494134179253961576514392380897660832630994335014525100122718411382719933446446569175279501649967869532451510179353695472466733298819712170840789372238711770667813803252469597434362843188203703077356800111982575973896009267971003706814194554946873686047566581485342820668555265262202608671252824673178458792392495047209152085019956268072876694252565688989317383847050843277012927351650135185385142526041438583342910878271809215158934921276933626167155864155984488380320569659705319597740761904196624111195062206745271595225068360832589614828447316932587599065387256888637728280248395961367771407020801510025234839641541846113434394288290306559425717602349661634245782166612641403077851386604345013541294998749825472352825754837799442489275306453575305180764950759318186033749030272109570578850973258962348933210044364474217833596793130585445331027588055033818455690225899340310584381985912467612047031332749908850773564754735866656218961531482873563117610552436692767368515749957651302051145703064002824651031498368363452242431761816647424584181861158158057760982834489831074018922956614440446889102155740813987901080680764777472521015419259388178065434843637586313514183385846709264070581192339668953594567413713458501946356170020653052365764007972321665758723552621111988051557299776339223006965272504529167022970626114758014795090429748013999050223633080993927352526913001057646916546925729500433086333781774961635121255098144742461974696966590955670859669797617825408309133213884352362633568618415279054470012502128509709524240781347479313505540437457362818146905967767922497599692200904425262266554365320623338154334729885625930839657364341632390517178940406151799150927732397724645903779208473769908409534093824113216239833766250910331645763307500267532000074308073780803791123966156766618017778539722437965265111289226089892942084728251276616990644611247166359033735601952922586645713352816947027001884116745695810595475134411668427909896392764329693128707523232520833469038639629952033083303963037958167014027986296069155143734200591227237456320419977242925064869400547425678145537863050052202673204916861287801980458554992386905472608874177695673984066024115567420933676863958075319011279455502927281370557829881370768836536462534205852453189234062920604946837806056849320134841101252825225502516765018539442499231403702559931479559345359809761469871758963761464610110220766991924241655256112041168151876853812787748568813382220236361730940611238199450841559143863645851625098770264001957954500856379687156125237361286283670948393365553174576091363522810776168344983900092180584587698303249054509289770577042407123512262070748775228267382372274305796240582177761121770663006578367603410271373620465561095212456377431856765246213243759030038870165562313375323531385252431457598633931774454975688172134036376045271259820539296366805602783123368029650801191267067847603567080127883176406295180738557795879692653664636835344509457140123625070541025389749551972377975937546879207821607737855243317659547519822462162497219877198940182629013141641375853067299314135882218803834634442806258117134183899307989688192067072518539210863930340880012132481109832056131538584137944861444729545409996037680031517242409170883661819893131655000934641617343008557751359404124144996383545688525919235568046561237905063720248537620156266216211279432203055524316164769251334156762857470071612548244413331845245506357445885739370110644407237587317336608591558717711092455011188487832188350660298449823838738044524416584148012974013735689848913744620109807483681575816885728144153590162928569255932550800124925953602031788506253374512394502525791137287795004984643767787227573816440433715025548251354971599862689306939379663785273733513684774507354562136148439182164866852093335665679698513721052264338300846626165053696566874522341479065683103706418920386551727785066070353994557751083496623126724572484385795858317111849795740507331688270389045342806610627418754583871944534333395675614652847439598473237394185686995314517388107605667770023215411478762375498937500683116444912936188384187687502408868581181218760393706130422052831494069596970399785494435335574584340641776374879198653417418061194544797819175692296096284682193304671214085955116254261519529718870795754542031760666950946481436834833897942041003164086857901512889673598395160296390068714459572459968886805226731233225846925908959613535106410371431633048488858220907690555615593087457792374501897183678244160216954366628257570239365498322595623424874891177446070525028280226147928195908456474217224207376045501468268881336472606370377570941622037818229418919391224896508582161873195487247413337259029404761945746440562564954103772510783525856517731018939493744041914732034348769775753814501196682106712948121941456044450822682764786538275006844652296560445758183651601629668658888264386412624046026359880948317581647009928963499876824785962138739427661879698844919117707617721309699048485885608128977272609128614888660054588696388334315509761722616452670142184434321098389034363641600362884581388920165005959647961378981330923734244741016802345953819478198969947892499750743354257163024480540570109363737696730844345484990723199046867727674958791875603432294005398135968196951861630922219244441327440116668416367385704866981070759650405075079484658365871993092705405507674890436178569135017013456528815422217680007770333030971408258536688513105475379034578463964043214304757524328006940220512565401204857103555603693091807730344717703550384040698270743568542451718667298986315915631155679397043905789200876031544380700359306741532642797171282624330949360380886795720033702105195984324469905386087961456402257883666238026041461057791695948441694457734801890035271835343032875227064582368746163363230601665142618336929339623394682358401191195827699460650875204427776330925275373485610969445791596201890162373810333668198770632899309813556968487142496134923833630680856376858534841943472081605725896623911109097690995013025516794272594055967396321311215292099380365483397422488775171876222555851319190856413762154487080000920317300052255846809757187133356934518130585308800224903123377453753657552184631761086898400173287691505728232339678159054164910669846859303359761902764025385759188164573577180117758689448378953449205458491063136505206562091552133428924110661430726943116374808161321984908306291665506383623073322359856366244301251577722193455061329222172311421874003881551399974293372967522899655593700165889269254016589145919415770226171372401376777585122412881269469892440461995210733760249489722395165694814473010481288662294292259245784908638162221891792225465235321730169066159565508042493950878944931585931300126847643889471768199163062840348156416915672913723323519400131956885037872305670238777546878569523727801991944503841811502757960181907271814474869764162970387879780686062898455230611536597458572199431113146086642941449753636420758147301799449986226550723782161679639014033132722164975128657076248171245738095004009894318745223396930907467949832939342504176985228203722043028599159277721158019802712065233856379049503289487141063753446570329800546530680008324420473946263372333264217010305963820942931886198564260027058975091714891972290728530443104859702853154054421400730831957753289285692923523162824209923356073557528900812067722221461876218432299134313384986438145512632753921138839502164063049399445730748297645508934119715653182172204593918736743341723786091015058326154360559650177134323863561675667491037758266112255355074071522561227683837595071268450830409845173024994708996983413245721939806202727604437705168077569705063328448444797957792992822486783840167761974820767155406354143359703902857237039506480049323100897823292107598365850393297548170911924237365858023430674221918025965195021193617192871914665283870760387136969784416603632267723129700238551241076400266343578525349175989497153379592439747936661145419854155588741502546198332721823260928027374048914451659438656281080357132152564210860929187970040329607757944624236229241757122644751134285105329681597032582425326537767387328852782867923626171153090473659404222210908533924210304330664407048213219589551319331440782776920267676262002886226448552630037046134483327722860058930496840398540489851902747249922400432208931077049571925798334822337642566637136648616895098538159123817196645264145311492674719127835084629882328868406013190144164615332586497883725617714475311304918639939304503743909695909749625713708549326978681877917583309691589984304992891892487125796313423708898045438196011328929893389846162103877688532096128196902599552120059003577516918324297808337414271603353741523303790642911920229842712033646378053523710867404034363607289487327443976351144737457473424446361339624696775448942494922643240333874599329749662425532432758046113296968447017449216465455461833659587219875623074095887115646726210174188004636170784875055906885303655370339986570954827580499554854984452286030536182518727070494346791415550504120539717367588705421254957101693364553260705847194729670947677621396260068136141102405868442483900103074549619077680910828968621521291282879850674561066528551593895795612257803544301397450924975462580382856889411869998248061580109215283186151259664308605050520307782067188651031720956531729109126140257584687064407203833357949212299505121414333076497531610428659956562937174888948605966882900969100721123585528932318745909239561525373432502385820801840488737416069278520563761396061750361328221728815587184870182873843068691441109040672728576589847460183293355403267948409350444326461739739435755523406335504642963585854487319145323498748613017280693364313008145570262219360767104747954863812932140128896429779532646397342706361554589299857044511364277204538497539314336324610488223677117820037085273760722553378808891173174603711813715914918058214719145675473039492985861334405746317693100451205157680561400181338255337336676162754729778751566915443957170348857510589845277088312825014724464443964133594217780516087589997394231726025717490102684741334578606963342003776504729940548865060982507331169239820275645286529963044199964602657005689999116591116980551957127853343666141574352296973952817374477432566618536200112392809699963178409918462972031735348143474734339397950862772584294112626366101656646225817153145595951592760985671576964848318475675839183156959298617999049043380769403159836651537922613912628485443243983617478664551722540202474318738131839230640992273832893330733889845433265467843518717352128079147747657838778881114948191859898870510884403733876337783034611308872847806007916703125193788978466502723260830488703824146153880209114706645325956746883229801691694564453080212858531903702273634896233003476638491248844079399748880492387507209072609493614322313142349510439549103347510113953363777986173996078212817985572443234123775118871485527158568615482658674510069265856032724118383307662826549818452642326913567743145144820282035245532965882477881725816847660627647605131252898324467623837758099457158739079697346049248867437438175022530300554963522538077778935523456810009014107924328971013092774750944499372698509643231288187316750542901933226693119946650202731000140455652003789380091788970070425658428333089967013366069549831726970683731542402533425409331012658402250605161342465210280812124809012275826337811166819213191677677700971267173842410125723428256122626298802229648135183033637098402154412737252342365056479613239505123407244758959020444797529497913266565123971154557538657402275239395022296285853529341009074401144473356088147556047047938990010018361902757755527291608984014454835350782514921152978380099124328786709948872716802159927271973817114374760485016023936902083953699996909523075973435973649985557086137852421069382420350947948384412869245242884557630113801600743928582809120536840552520007055369056007662027121989371426037294279750641081935733610586172993571845493957744552656120509285922248987356725412325354570665443791557807125713501596748273854089448402561272490629884387520702070729440771987146371067358919967447256328372855305848462901542010826883132015265285029551690381010847388116725797627118789756692570236886215558998225007578368494378429683712721498846773463622662911939543936390678956609866708939899255376544057413054237246474877606242678137317484936045066362817352917548478981850875038968118333078421048688844318037888949255207173776886127784126370576016550939337484047433986420132780519345173077929999195171417407571747068803715518804512726351946580824012404486395588898187880996294154745747489557035003847504262535603524646249756930872117335142293475124318717139227938781840055089962742643315158121463529646348201262880891422625666611131381395172059569349305439234467986246390922519320769932290540867812902271448869611934865744586422063857753642771831708970670071601661343415818115824320996643828165771685914549263628591785362665484282510029937140020589268941700756927567997674283547563129177525961558615325687004165064801942108467520830983607218062684212434471771409151255824483742851695676521288274602058230958416623224363390425733423664832409006212822574023662645289818352583842445301783128437088381151872153087959101099919691097195206123228219920871009526971772857035236504026059653382784003410694354979509225459553115458125375268523867842635782340903987682402091195475526199637970083192712689500750790677172319199639512526014548132939054523357392723712618489268969076092022665870126402985650288680260899067713264895863492706469428120710202634517623822149184830590999500377473939182223175218734684918184802079624821707054352397118464068853086506731751088017846554692381248186239901979703453232540413241600123592640988843755278994902656554552194329845979091553308894351568194398320783489174737844403143083743224831664797133526459270775007323231533691386477059911543361314775268225341222785646798055083512899811542236223304920076580402141448936560315751814653442057465372752088210150900619901986003666939529182567597911889707686553993187830464648683375770054888701563692457303289048425062441388946045257063061057443517967054472832580419233360738771174962272491789783387064091664759813780442665494944869160021904770366831239420405539319206233745299247458375328312266716604671722123988724461999087629928566623205640754623301186001134096752975863793663051015474845097798428433944404625772505114831600460833733858550507361557769140610641040049250483839335420535424087721324139921806457237306794187275937821104414286002388089733289783370421698834542770758902302915541681149332243846729147270451021469603829958879227093294212706373401966357775910278779156985521348051368771071226408885938485841619528996721528261739590795725491214116661105178898376024336863160272271652280506595272361696882409966566696222000501913849312811600126728664327069935897750860673780928536580904515519701716781474316883914581299803321464287861784305917925467131594051467854440514309095796981419021292736053119611706453333313972095938175867732860253172574294646982987997099739693136066407534671455803716183343126341209279758667062916517991586419469820114599212476923661773273585556856789060593727363683120971234454353143088156669537750471277950895076237584139295638243450328213638791343533212442670885385560079366256768166078671189628365034862441771823281639679528481400025951998837831448166673781728967870835747151251168369804685217736494172298617808815097549316553792684607464821183495407425369687559861590941123372235811189130184740721454714584372091103270358777285744519861619499069355979163680798023348174059409760534094514797297712306251359817004388415064433988640636197030982966294490496753665752282021012559108315781531039846601510947126966140468341816003295932199053442291269576339478762700171299028279195158836463010090557837679257309417036485505682120174767774988059213613827644547826556714469710087118746239324824383849144014752719752759968605067110252489935412076781233292005945322124967133808568797560861212605532281222454474286068764526331582865656964672717385414919102060250465520822655645544381638607881404854930510295386704291933477510340015862987501793394288356287676310019596411378863141488372569898959451760660589229455551243507394742954641957890597746267961049178231440628365127977078576088321795909076111245565150784266124992461488799494995333186121129670613503799040714772846521654717303093372383730931102212659295309103516068439245070613540944011261135969957842328682643662946867084145642496702233176883782773460000804131702299144222248925774655162801898641401278522590560448787864485485545992458816303918139568316969700300738137439105688290986086804790953595947175043325367222625552032143099371592214160776965252071912332812848863254353910350920757312112436225418438047285631588779973862538690649706595155240164104806209135810299044535011855718138664067925575803103482930870286426839501525035351932848681004191137898530793925857303979381848093878975647516671299855141889258118551632591048323510731694807593839463606576869232287005700226414572878914577158682143527616616440429713733296808014592364962606010462211052541866491388875612620271647203932320317664153309023301211058502433862992717076490452157810826649887158423310267773200754632810759821311792229995385042834177777285253813541396716837494415662390303132314072204360462930934000131091197583392927924463711429234033977473355726068419512886796561584903785942149300696432061440800252867881641497008758378951695462072539893397786261985236955087888207700556051948805124794183746737797375224697048593414317559148389113408083062093483413396507656163381418185374244495219737065859622296840351579646645946326874022841461570333101828497229350396455447334907419860818376326829666831342164916967068965537620963521786746622249514981761744124201798068569663840285543157783415486276506923300756444840114727491267721656601832646398924109076330721899840745636149088191761140498363874015691432726500804673538405979514004851323066138338356577788430729905856069410874153768997431096831292604124880954976876045596280163356034236853188083698452829623327010347356084825164027404501798527397454024044646051450183708013159456422643377257241499291682580023512836445216498272605105899668875269468469492504877697314836819531549030727024116057946475407910172821008037811457209268155690110833231494705894183668643617763998875950173014501211287525084346202528409907336562946899181634783774735505692359763254645140153748296264147638568941550794955936328130241160708036722919450276994123571340211799153719812642809920555779212246810753082394829614020249999336868848141255700000328099661401627575769277634067956714409935971993180869869190599368217306580354840439527937871118309130020916792759780779120680873224384106163511843061171785618133639826057306545181726182569444748959885605502584665275104828422662165268214701078958302552996301000626624195042860198184439525788333319488554797496893598988432923345542354067649035289063676753027109139848668866336516860351904081866794272939260652630307073794229993624461084894043590252580185826497318232868462039986375806903615335526949237446264506927780630032296090790107127724613823657354291293349508798623236760228756220463042579577614604121279060774723971209190343517046151062793725147012376219820154087862646032824076099556515037104181880198381169714881734822390254435920742430853757949542229003679276388504939046120375394630163733635029957771915837582318226735901948890861393672708537030753757667070695219755778835957426525328658099501468232870702370457689312756031217870068554380171747688741571717564643143652418259830455087195750335398106531205765362140576365109367910057981184822213221625362491199365501666938606663538764197726707058661459306556363717278747531420571112961786298738915328759364358507654953608682405067406579148692499877834378940830880970988097396927603398850840211338251174011435958683345906555239246516701695868980754992426450741906210450285303363214599527171581005442147460234220565749774860634855637591104882963562543182946034365038867854719648750342361943691422351038450086768967312063313429153806076008955579465081735534397866059244070978654394653656760997005115825231572207361411958458672790280686445274053717841215727324414653187791741815057044383036700188213830412341176927441195716186759573880102427808422255333734605200344300653119343211566879974101989770971625051104402641887560983750476617959268611346507981017643893536193448212484923485640941958871036813356971526396760754219519312236462045820489686270953715160591987792697132100055768455527411437761104935947033288558001733414759678515943040374129554714565194820125172642019005265021344545177273823831233975420737646684979543854201163074921994209091327434618056605371970072268329638238237792158052440904545435146027645831844340956490096606355446223402406535402593267597998291694393843448015010285426581772883258363535640842425974065148140972990204503162408860420408396466823644105845848197617186002349172555640414049362517011587873065214777263741822072751552203001659219259410690437857190849924685481605142155864003131150776674513719231401605576802206089112674452151836990698865050609243846925936825540346988253827598804215390533017359308525770526433678010747415539832158144829374487004977032629605448950091187479543422701327967352815608610094381819376738199492227073951225361739976999193105133467731659174902472366665981946290083127786213295698734425334508898541379380234483731404080360277280969294326932714424315845689644846579887336877352656357266858800385079675431737710188096091284181752000988146472836456855269197147379046108243947034309434865878773114982423040139703783738961765183941420625543210819728971176539991514244472761738496511629982041794306198321798661784033283641871319053440089399521358294033037916232960589392209755500515855573491874008205872948913267820419882283521240708247699938672835514112413306691516256896039870895559427206373032286481852003312999283741573197806161840593660359402174962496740018948209986423879534828507714445060380371964132048693471967903414908622168782593068600958940547044038494963837458563125071375104983102355839121591763939584301419276136793444754430403126084888335192853024444526812073922210039040370925302975533268727033383559924443414328272879652315064519241124256694524140741600508067763904248024274259231590907553884663303729930950447160471727289449875983839577955933780511010298875131006493207713566017274535564379909831579549103461192749755954478823144704281106620006496207338272354900119079568664481233616308062636976841972741794818696006926380786244932084813923105280125263694950692408684677186456852240760999644952115419490493217207218367900618630786824039253320868256174807664879231244216330191386115376997599096413221335362700244084409485255948368667331530274485353460037695789289244129135261157610987527148787173791953762296861313528624369755744803520053464613726201130692144537280442991311026415201032734478987320866240821132270253355082859696900925510497622894155354027679908040782227734823479323160987075038386829798135895349023456582602454739848544396668684622907798741112787337971785607723265609410371711122911418221915208456576259091369985561976637060041005711131684601957500250700948415311120612672321354346552482170246235679078102439989312384796975466791747808057366719462946242343664168771586995887990611521059901093691651490928147132940800767601430462247044693299526657523823346775414144776090853351938391761121153604648813407225759948453979279343475046758582109403858939535304640661974664753487123833732042725843516612471828246652582196942895074868098292472423954293262418793329606190398738451518197725897716248971021682571387425426876743130759501253201247571056185993374153076343015044617105727866970558601626768750045457310597548340085587611393062030549023710708418053180807698561061197785493563619036372065560062387267464549353850585610061700456511701005205331283039682440574257395479266721799186545477877493471327602923171762721057414165863388131686605125537523833705085480301731327918464244596084144673158271591848017621422391992618181481119063124775809998809151711380035118172383305589086666456136389844772249087362561235942827573360196992944670330398623746109672376337724731177102655908940532340331880312220992862893441523116123904212438287141456711781882856809501433609251570376632447874063982277523660845944132443763442703419304428332170365517920554355454967178657427385462778110058642186852249968158178227002765542664530720340536134642524750775665677283713943621207966057592880718507484522132342772751967344681064715193277324512009845090753788079649585915889532700166537149090468903270776310804905667562788133148087481653792466163514261052867093861079575152082231005369145594896117600649020122114305672526248222933022191341950469226595788950343273004800971772347232832009860545731997366797242580335937317645327200543097897468590427741178429262427587475626601871648517931857507086636519969380367195512358679854089486965748791943673506889573121254939873362211452144459086547267379007945981905509101329091277948143186722472187187683420554772291969770359991868032909093992193261664296949240658327411093242526067878991566158334606444230582276878553923976421476551683062909900334670070231530358939418353951988712783441336327135371915236798674953385408517085021055880484169589834008704427401257439317519044027030250457196474773638921970018441613606879826680781951880522062321839923824745729900160322672594186563467499203566003173778435127882193952523646327857930561609712201112872500325866355157126885006168249031867173879346596865830780328266436001263274662600686443152229622293293086032454851627731075807445244779082666128687244866292984270859873052272038828528941188092466869115767510194448160258513199754003775474761040095887401414595142017157755465871939695174427382816760919940801786118951581526723762492147049947252255758582386072651368662994378296844569562491656096459915091990912699911925726831412888702855054373192264988815033697316316226774960455302405415812788004345132558239063087195804323354469748908324162207509596580211543900997623710670248993369194035300814083208742707842493249735950637031268564058699692150995810415940216035818942063382356437915273451773422396927165320554409809165362979902848180500656763215326167299435708193997244495042452837510436729732209776999482239664396797808111191342167239052749738572944530259001263695534807293638735911239275586839928356017323965077492385452471506056805081717551607594965775619360102907115270473880815146954117738050853903317103230854529327348655817200695716371631340520154651378890376460976064011184369968748376778505062331920466584538959258561731232754320033581530568870299100717680738797401027027590353610888670566335960108629704066517390605083608929286152850712277322238016903231048629195731449753128289411360508592613882937447852075103147356190819075617608588091384754835029849024094451305627673224494918135693318686100313839205527787795675144569371115472243007094818593522415889724732633598717576933999848516062940152383582284727051675840598444793969243305629170007513452961059671698349649107191212538371769494419361195782090204014581410774618187503848054400261753700135474547334748030019945285375888471472964739058106303540249854929132884103420576610979718939301511540682367949381938898041805583905740701670600398985740025946474346396874632315942751487728828770286592131476329761579658932943967948556788597419801079866459907466488156648791422034073429798961216530437128541130827335642627018268388220447139076346150770882519873426179777021500095796695826575428464235129754465295887961198384457543324999673280251691283125519520184885417092920610574766790090378756755310899820392748399845866868504416282390571319008414901265368656089782080055675384364196930913595490783204272411754302102862795026413156571760314767790579098019182810718874212217191390188638369147644630427667753005092196083118464897536049880814880225067273720866875849457424264918885623611836559934234742435964862380477351098122187122983496782294709401074050734508520695058776790160349225283178402635342716831617249618247374640571323888022950216007480276870945485025953063698356846447003457275024957991295447080882630235005093292361067678723715696042055214280844277268439170604227597606998889433349681707999346228442718288923210300458554142927042616162081913188404553258935402181218811301981041228767260285988797401899866808518052264335465391206692620991095453229503337150119921711031908334394645857336428252443754062546585287157250173701952892948831325511210985972802047328834276369208061851763657498249471943109586692746709788193336326006023322735267574843431453611380322031740610174948355020427464382744812315914310934450328967388495316460012562139558496022108224814961735830067111005882814788191587442876295170077568830879269754425302576683702948766846183241420826414158856478073734985299682374959241168209330525245838869117309651052205876477822804405509940696096864492254589117357854708831491835579738421904338296558458291477234801259659777430771547951480798393486189062674758894038106848930961525250682213059935083186708792162037269941136408060830131825676503276628883866321624876228065994287743542462342599839416694139216252975585736636283982919127108982494520776565586979157360713878343333489416603005046515583899184774240657562100208787965947954834728326187118450698264803183725902310870427332424268115411019909259505071492345235616219418510404731792395617858314518834629635279768260161170857184038912100214550069999084228174333054324851207748376546210163946435195175999993473186792161974798283277316043590315724435530514250424060620368412831874310401879754256014495996794208896618199967897095571769305343035659705460029400598407320515547797321881540819350629664695516011439621411302155098631345490840791698251034862101509367637148904653141583154953966257089104881524567948921591470542343240936396411959753213938489950528542209856577641553585205304481002358136044586712161795420493811700813694442161808010811851736326821379689940080456370010633993958457910057094419486623613935787244395429155089008522736094773095376708755530778646826740520450609017928183636095877042011440051863018846143466245308334458347873228052256796231467156578153063082140534923770892284996922673323958089382981944013828697939861860656015613489118266063833535872254237885561167795880824821887689280415745595695557985845383957548004077667860454116379029587093141187665341201649061129191212701098795402665551555583524197641401551983309612162794389637651792601002877060466372621934659754161168663404510374324546997604273440851088146567911264757523298336777658367595480289464173490919149484098294428793868944059142776927432589770839072531613990782066880765337786366794791963062798781130311756200480490796425181754817511745871192189846522259623078709411048338610359043317870973061232166598882058667956709181373717387262618584297785495851918194060309345259496372543528748918253639649732531793621825312499538004994953417166303861398935805609718717772068466531197883409065672357654254878577814875992937405142140223811709207933833040011810981726813121908152324319282615177335187659988824634872447320893048206651844668245898064688604203087830189731099901302734100136949435293200611385628172663316910499082482519562121328521148100107296257307652032674204912594349625808822881659620507895237529791390715313367690976527752421957008103217121439397022655629851439839693509135062017856041666239988790799152195490019226915238400575164832740495322486324456055955124056181876843667422614101007646718374276369828065807812599357186080046287548087955590013138480092885741375651183233065429003081350657763443434941846366560078213745274930697473768579546397226064244432121313149696129971708428361129532003813434048790572646810036075862646919713368995395584423895053596250591956636459304883483702485978755299405613205734665243884396306062249829935663878170617954471176017018322134872891457871377948249173044278533511611607210471660245753830171966024597153250106217059281569451105622467542889371335152225676428475651185788722088098364158579586776995595918499650307735036457317283243106937362561465572626461739917096135207383081488183175330639682059973001253652558531740586959016961859829372020143031982164817329224567891331703820224977233875579723226705327140082099889727207698515915446196101141732405188951586809341798288302995901130015024598797197416920677519274165582489211238906884720192854519853020264924616603741795924095226420124535297253036620714813092042088374564684118079552191901653640133287356385803088016284817822171268103144218203127148225040224921602688607521172124965476812281658845674741269188919454077674322547520832136387689407525069845089903215347799350191804899935582788328859475231680301356322017295683423227833230433470089142572893894142886882722133347435109958208854107125034751574138371096092262794212561669046934422924077553963484865091858079761179503536589370148477953837170915727192292161679145959820187095574580476829535007104487504041495648976036126402398508363683401930518670734923130695934838621078874802290767076067584682730080157494722810143237604945842812115894784888536644797338237051894782843862457630160412465663946007311226934850404502549292852641618809749765211185484190050341226243450439410159649000082344371406980721488515681020208667896863117140221165676242418273264863582143389442229011604016144387276710890690639286650885381461803260917383933019606118532644388852943349074396450720927153997510784146573906734623198607089989026077949852129836724857414904638562797351307820678749723714841813447132532627277455229018522200628271660729248002131289233448642298668905552176521325100763221159048906085447368501519232088253852703203958300752379708751423081396071783518834908004918746887243827009172232382092413956686793662149568670179008374045423879403456833620160352817670287476645021617225584865901004769464523493988514643293695395340650945245131199918725124346991305965363764162995855769710671592262984285207739625666783443683514229358268039417088221828513548524299535618943534896533983523683593052362354179211722341765837864442161611277287962837805816215161731116167095365449677215690324593193141724820994122196455463017058297049068108240687710264437924674223353420515118632390927291022466307636730720633121264844836828095161915724166905883987950800597197265548414843589907205329345701751346483728340003697977226497833172846226170052616194154077548076385230433504022129202224456969853363948377440442862040721956291836437581516513422183930530444316616729710706885861038578358419892212730344554839226098160066334739952265481916476637247123949152016697657612375246067232507816299160496409542830233384715661053907363007300330722522121817054405513854875312025633026846918950943058485802900767675883809741764620684191754973200949036080167845812251747013976448739716331050031457311428350308475452922353794830154110921163528226112156853056709130980253228939403243921049863134195895616227852746968390735938064401123085288565318893343697125700200964655204740994699074225835686068660981990362491440301188165426451032837133626353672106054074217195616451699943679053278569265408626109421234994680437306079987917489383402315361984663921818564800143287898133092880236509055355983681295177660425348938352552849474538576767197776708084055473524886980970373302807604729636193275018404123113503736357904926696561371403606194724165323698220483393920178304076314161746648526405556684911138716038670190904253435420860660402422700904534807287133848958989280102944730040406540443313826095714788482390567606221758327174827775254922895123012707033895876709641206702718208220421255217818639376608507045295626667113728963382222842992170107482539879487805603923968954169927863683152316439055109622284020447923862088676231973837245095940331849460771235624076720655228429527060146033078569191728423921272756970780643351857847031180752692504193308099109559947461655429847675669157630812691588177548314489504053617495928219515159379268453554594062191204412091763615357880409964707704546162831501747024863962061993503798669934338627224297065377228488364691603318692346357069727668886606470098836320419552622686355773129238097768274686521496124431557973303814811987140542828410612119103095838951150237560387604779931512733052161817578394329400165481364492374344957493400278663902919689999010525485220121108014210872235581401729331827746608358943098522322484173135999527658440859207297256464685408216487430812629979384173930418327114623804498548334737645493446724663437549760889887106653491855486801935695319421844502834290683939270797555820796069315772418975656821719573785172323693854927976879571874051513412136265834744007927816684568246585328828514520915447496641074982134189256329331934223220836618855127658812397979592811143678258260583238958389849360349817980783461170898217524688854632000112182219905100904162020509440777351770350566068644195949336453106604281848743303107083355096108402659155847509843780351892118057439339005319676110514058229242159324165723262471184056346556766431791611103676828721309943827499237724843996573009760048089210173384600518110312477078467897276674354863700720892840873728607895798821772938400163423157362856581408560647466842033089910263044887791419596041311102510866735091738849701652662363150006189699373733536736735848783726010792310547981682652741038633766308464581184862958749555432504787688786860701847524225795174518097828256511131304311370532840583023847956241710270028335906328681647815778683234742506711451051578750389799289204378166626235231623533192737087493851284347260385824024229721955782740976204311715966165716956368928059792088184678560869335916775350669972027242138442088127546060559586491853094053742534773292843709122010652720088434185573296014023734273280605265375360390536683673350619134159627607844771737346531336412782159183014463169196930271994729324549051915466708740487622531294105464459398073708421982759097743373871032709757931391578070900593921655118005660990286299642734937527305992531600628316088280551606584455239033789221399846430672053023520769488692209631634123771319887252185733748740958034725710940839098487677129422335485692298879437926566478446053226368779244581531997037156254356195795042185778115566359434392802586498380559397058135362481397127490304332779050953522290794464808297777182541991672861784769653013304146273347308042650373491225039302547827563354476004862819986635439146662801103558487858569364493046106827186133302879697940113693529393716442042771273445522729925639687825766849281960752241568715816292532769198458852082984853255996648623224584149983665240434369265016647227426609596480156701815754976710281555716225273682281007418969981842781916324900403349318859155836607570552930737120240434399776758089787441480569783385175239565532537074696975678035743267134006227929332883671655680552003712234139442495173571109972914870019889505578237929506515850044967617176769957706368207165628299402330451919055263799905517317842144959010182590938997207709523540223317007106210935452959420542797041401486042929258599318618644406546147459716731662144873436328379297565485675601530214705618164516274363172881540170339583461632263302670716182331312087319378735353318869774854939356378540610722526908215549461979926319768108631909848910562137796549254285928177756670724563597514971379575955235706411639605981661523860807861023586447967217512043539558133846556396392485035841619139604457363997057213123561245277291723364679664265084500586583733703702507332187918568009511635542318332464911309284273775485586058523144537534908638595455009369151637759684858839225904815041485714087630960087563678316312380689202115082792544362189013460097479753891843602289176822940421433444182073859157377256985607408895384972580865326408749420448140780313735655369636362492388479498973493730089076175035070816343265385307165540660507824675068973694629709045511006541018905628676475256191732776924119443618424478230649603025224133964814569045530895559719730253203552251670937509030316634342606944533778268231348020191881536056488375167161044513914722901717676916575480951685962661394008670500903433241538745782804862341460785155265935199582604017928720670588795325501877561054422440391748756743372107676657714025657517872280187991718427153720176812388374879308356836035143110344385249448047514734465474735364135655481621712134074427564944947800548579999890867157429120026211659242314136703292915628470974543585187250244020859703245675982645903604210678668583235095235141272390954158972711516227349953728705473077891754971102987045099495291409327687488093450200810394224158285660272748443606774901527674077332554898005129974691141590825417681298933963068991368995920628839365771124252785597538737526015140071382517411643431231974659364450046372370711121665454791607633747437219722899477352063989029247465756756538670208917080633019772780963007161227120792262127489063768656666244139218062074519919776001937492375305526003639209027219244833781451751165426604544690437053293301909693335410751466547057560591681250117537778073453374992402431399673948791218201708857682514406324507558916553510871158434289345970158565530180968606113669164681595750665940613158800496372408719585679354060618452257635953367513224810871555964764661342657336741666662809104781659241992186743423525592406395884698879959564030460629580711857649893742793287901724769408928042769619785017255408273662268991836714057705446228853998220121100473960377164074731049643353479731006671394636791170871379650210749471323399312872720616763963472689656058855093006657195869753249494170234045812244002664868495839248909755946501263225158487808341265709502657928794558497341339939637879723247543619695130206125069936497290881724085888529843950790091786675207704650243251420597258618634423097243507834214132993285991693282486115914475075626155732836337036667557765962570877867143791559724110382764737298694244158345656646497860569341229357320123089842418842054313070659347248452062958419571085687119790058133942872538463394800860564816310616813617081982497205769558464209832567713129781582495069569558458928591933142001489028292184655384023080053761845350785806180901361392951605489695044604173376401724900866966352503125407144972526137153569992865313392466832661635193655322792512476067738617768445451060320940576126459541087681638148531742247568745353165701546233794189759140029855000216147966236133559384371083919104870138014410142733608025760654207844928707251814841221515698269809205110158410231724160906284379444618242121870033704261064104588798279865563746284041546873443711772225639216251432552789348165116362944767615293621117142745470855241131832019663344295428248868708571572556328004730616363186522703140579958502367441262563331860518939354227683689511087794839451073689497945724068890609838938366797769617876736677551969794078824028193315982454767154430437349034378492843801813804960729410564372783799331187680601684109535010938402883113891849924603017511875421992047164511467490483494089048977525877207912433630728757842387101526492424208777196353681237433708027987143313273704420567034247374760999739752931425977403320277250640945237478094601129557501770506393280805406723006050493363987346512845975931395914225483989872111292670647826063519847765032384948314885058536322843903306785006497297010160245365946578614717547972737338378876159237261354137016603667880676190239726143245029802619931084525714522165610809624547414105083790198987385987816464394945862395385985827285818183099291434411392196148797688536707694570036828549403867002268328242203923249739236609504480423325114233148416789341114331570009065282402809529953082345385436364517477256412816477194212867618969440365967209602421873165507680863787790059119940574827391772908991730358265862511895573155544211013147953790633826586900753592863277048526156437121933268293276803019554808569920278606198922276500711528148427995379909486317350353453628963024230559949944528825337933513901318519745062328787836105862595304114808844059196311543201241194550982433013988621874248432379059153169073294708824642581026141413085548757411662145065768858305668802898253886693541418029706256431542000648907891380482753971830886740943775788736921263284023991785471197680679611303254867262059952265839111734325055116512283783146598306793956714076544167193673781198570011051064658251778702240528018144135538896566976485752096075672478602381928488565042067479938620859967738809022617989327573448334728815183505941582103752054138581643823854151204945474501936974687877549914724959967259389416732848074475372166989664162832450634500554473475172410630194118773868146026594488924617765785076887217295802504591925029247438742047429056565219304512676570762412843690062268878141803655204084014116983485746893273678922272270301130267547182131123931372870283205845835074436596484256163871402349903845168339829111244166552092094137760622891342956215608854842934006991409774579063889121343613147676077970128151878847923959017667076110162305492289085691590833706335162178121657561419821984458082437611740529871714088505856100849760437660962938577648999497112832362251198492126890512531933740763699915830462790729307297722776197539403344510636025811084131370252680570370606401165158875071117863318267400355820920838830435583995154366901393261750860240146406466065687482737249135534836098352225888166767009725998701018884135608991363492379070809437566371390720005162686595461602997526390468322162952690919132344897291734393530036909704247293442322048684080549925276416411917382433217684271224500641880874106104575114650628786012679924367237985917367897529036489968765622110458555014913097168898082722257936192409782263656818253681554131011553847597686432576927651211633666265549855947836903473101728923531552128269903322277119606991546056894259464035958088881490859522541562536693821636444554189382309816897371722073050405963833128364528681996495213188856332298957399496483620087339410747363031251346074728224985721399321814908515694794295230469156384012629287692144985024860631229282584164860477966519392640454362021237239180267688627229181246482492200780122381929759260195673887550410953049728416870099131918756172835776253851137915589068521536642657391417899964211411735922678320834168837980324599595158294923474177617278620532980688372313870723520443370016196596032876038985689297233553923142445072840593555666354538313205807352787238526725690756437276849456394048874446832065379091950031858727896781667444649087154853150798815140150272433944506254299290707619485060598074991626422732562320793990755943440180146734298203195390332792400348033525443413600315907833608225382828711856791807699192914089214403018324107434609328671940976964797388879750380097104730412957396926749662095142512743574958209965025528881708388108810579758117842828432404022743559889139165364033642285512734249146196930831856073204195088701569758801421381462513347341011160990491339040108136525511315938824202237996457668345078877741626757437787686092988456496577909252448769346554264324690481181191372069264817845716517645951690072003798982107296587121662235014196408987200585277101056544330707814712354114952029228251280205666649488677680651487713873063272237357694748204726585746196588506336983043174469303203052155293111246348113930809567004442155884621510560318861394979838758287109450528713246033248035759081221094761283883635240621799102133012595356304051619210684630648839316887603925748218699352334393207142635731692256180976864506497030567695726084312100805094821439561826739686780525354866814902237069060163880337283342034667534495287693268825875493019457652233860372660108921158035968951459263157341870518338378890177400496241296655502518250519747976273522735269455964322596486719126879310913688228725017987526009882401149947554568909523617802518681550908577053709801167452621092831329264637491855803740742072800923333932845841363357962165787535618626320098311041701095908602991931240981110473772628349547724633661627502899909909676285912573831800822213282312320706837719884011456366552898297064063261150066264689267231775982707080107800395973342501873948966198882271354979832955238414972173729703909204451318940054035211671262409914609841517611131228138283409039879993754162863800443853353847150073466405225466390576941476523118364987919389242467495793134083358819939523617016372282283604756815130911879644008589058714100387235596747904023027799038688614483258150391280097776543049215571065614495076473327966964865866877341015029566282277206201733850113532907374447838718498324776432465002916845801762777290210011769486654944285103131944547416722014021418052030228448029464440809817248331258357564704965166927563718414959418197107355991068139594864328219118403078423925741612291044586784347471855291486387994393453207185712086725560656175661536617947232846643588407453732949009098573539274782796568039861256657088411870490018273604434498801800807821587697020035027424835488006946237391463645861407632682696684389001925882422997268378071340884004185990410612370983536838003903817121605449452455679593051755595207712497808041607272213517491341597365456246848429105105600259783636456080045936996575404339176046469607294481800785551138001336811050025626021302660319700008306405517916624654430407873849371342865357524105766101648579606222795194066701817357177964714656939179823499998503005943695092702221090292760065128320948562746319565948623059014684271812210200640647050372520807937564143668899706958395603758658053872604527164009286536184799532334116617915324040073334130665607871545923563078168274173759661859212587643547022625895940238417367869764711829399680197616131724726584366223634588460982982987201855178787176280035211754031067906700505453341355543617299639402617594863073613750382668571231159043049571961154702434491369981645404311363953012315831424435759116621145659378916692874339605811703772611560707926832553060595752919736855347467435796157406778734144457496005934692505689456908561189131680805394051250037680730886821346599242360019467234805296965915257399577048420974702436455104663635294121819699574722315557610408302554466224155294853625079810052905820149206314263665764589987451652300350865206409383028473608449579135192872074424596078871945636751319034578123709692345455054849740921563588490142785600152131890019217701120536305342584841371287120104814254768509046825560839853155678697612676037837163903111956021724453555475128362013218522109335344277411951777276365893685534860663413248056398390627058442895647082718463021218747634041976616981312055192862736719295851102486900665101302986826311822995039378163642331643116242313540093061903997372155006660790451539225499883955819239879077135679452811183543059900589975910238027039565995710699752463869841216786009916524243235023084380557971178661354749123309861621896322894676309469959178895312813011434845378601064985766274104780509470966564558921829235587251084812456030123088442686158574134528538487420123558531895072331805286993578121036482933122692272267733251169386534267043041319081458408173200912855103922065109707831237028371786964166104957305983439990433444540650642033892942288055977914159563185579176466252306073828793931247508166527532145160652734271113107379811887908308974110561316993933895267490940728654785012995405002678647219103002283691422889387894306107444088196654702091985611981255021050160872712184798122817887555935112749623715853643246482223600697293985123642480141935371468603222665574502330040614908705108001864034092898401240565690949218819723823141788242809229490146047882110804921522192281908214613525955741900001795457376030079091101072919820482193212113350465064428269269575209469440200261778851298667177417285673593336148589419205844263702162277175550130618468476656421126929916953529074922207690332973514918943012742838623035257410228661872156818092339351820475282926777228642763768519909346824337140610907247639513224829004047732671463816258234502520733803496326446512425430355710198105511411776109488475865822727067165802121845918715375431205376213029963441259136382433827714078473172144152321402502170882361920669078617268054654170464699080056559929206959617699199350497590682161283723781023842174779699347002843131399952692552547697423745316188257754839238977255885586097700918266494854757165551286630729918872330798242331996334020007502435157313003674858440497401458534808475466150823939043309700885691176878362830546056080260597662172032735263629054703843210096374054687748793893717346207558619561358208108440090971310238851727560548820999338704529689538259255442137147093146861269876085569303618334232115311083561529948574652436323272860280326248623901363508262078293145799809688441326323497159939906525005467545450921708473035506863307220133655734280784150965802162791606578260004678006435684769000293492872120369338230109346737448081327223077848652067311759529502653851316157034057206073333482003099692254640307740390467588663710868512057304679336282060246882020137642661032463037137634476146155238288914368403661173228159393934145769403946313691543129555164241198881783374445440899100112628153568258317769891657542866092685354293659719299600794575962579845843740511890234091151928372620163900568462142841746286759099082572051623918915777367615010639710512609767261894406446333680063738995280857321081634686928377502695123273154520577546029258615761801991640440076781188822025355689767202322396164314775826321788304107091894582626646303701123655225779486538093946629111319188207642132376946089087906497674034007264742211365537400322199453137660527493326315753374111428776112702940400313291692616462010323566186053203206790749420184474298578037179213665010719003227092861614099886324885148884793735443931003163265876104088306589751038099022171321240665147873095646762726991126452303368120502780651051202014647660952630754638029371033368989859582895856257738211042857719010003518632509486226546215952274988154251662233385439568378392180288870616305550069800768301820591931960890695314347339413358351817645077183347036581875759007543609278421095018655222083395672226441792183258363533940435092419241733545043261865262204814557990136471855879720343812488057463519580215953367220171744911289895726956355683642284312324914245015798787164250835797003251198622677102463504362008148030536902622510812697444466367720957451545594244227790791035609918724753012654402521087575082325029530945181026783244412371419353131700964243317113949040223018927010611779242592692148584225159648570099050907976606132412751250299972900118452440836649994660595469178412871276156988821881904217796586209568944163761793060586446294872245737113838014449075257828061143329457607825753953931289258103195287012110716402345640534706240421923109424021168351848597828755433856191756959343343505212661560170313694369008081303503436250480937112591038966505018025007341964656204747505323008968312351188121295351288799095907190969706516344407785182642818541211128284179477615215300913075692681039920125155254928955643274736419517799066571789750312429574568789198501453059827261399542855198102119182797164539108933378363063023355793236412669371263819309401134799091312649741474068565604137936210188587458733680090847030715788488068002390812278300028121025995940170852440891973316466938883013205236833596068502620054930873986355362891130150770265576368285370127961285671965690343072931677012474748373853364879645261200300951712950358511979668385292750508985801876690513041359802339820602990189273387020609104518305499147671888536148452897534935803005593650829413161768555920433492724022124229858423715067825954410450811022838165767900393760371743083566420387112420415313686262436021443499601036850265669527489337578270160090057204975862102854766262570666180113313506175083600169192113298996119916540971091072442214707501889631049832938920252334432843938992135947644936832644161479278747320267233753676257046071362440478278833676990344349955134043523181233703125826219060982075667864742926116855535980985792319889917488694347726719756504067147729370516004125970993391469279366996641298865752305129637039212528278401949342874589422121596092974133656032180814037950865126798415336845635808998737368294274813515659159114109563170534519571848811686582198800020020348509848196974359579724657263822959194344518457229466267757568609742642177858145286771775663799042919897535658591310582694011056121994670228636463408092532345933806952284243301474798424603807622446758596154394665717856129108245605702567766721693935851152824142098366129008737282802966688749376021645497697749667843272908968062997344731824106976233775614950199242168473293801725522088747496641797943135185392431095896175935613058859505838776993723277782628517606156880771018365906440514967392436476151731760326247306238365315587254713750839212642858013504083367396177215922333204611139049836556967445098217947080089155525606366157797734495230006603997480666908680372256414690039337179205034249790327017424011330248820469539582065725534936331689991532949153643414735235353076692999146855262828216375161899321974189525133132242391339568168367027422402369591122927892612437567505160588909437416695188824124282948463589002901624865906385500409918592024287830647011949946233404835866541261100772411523999479825350744550150872300295729059138483453309669699454335167292885556421352579924761259805177087154072181602311301019812737146826352315337885266731876299900739883153414474499861102501984519144557966491878973152957181565472056231595607020094707635769438599846384563992296706732759382251169748864251947459933836360196116756265044220273341448786625571522771304628134418264718211306965496643036054561064847828997823488114508722450536630357339419986876223086920960033194589967555815907913427213181806387286912211284187791560668058853182418889171525512054360314722348571862624787494691104060600095896339971396359583209942231946806941408168846170152177794060758650924213386999438947934679972557482940344426185403959886451737113598068782464838431323113279700977373006611370670080436013789254703992107493200890801864353907826681047786935498947341309837132756517079334694234941364851024068271001615814404794841581562348701407465114987333648863024472949959195153980252148037338167184969453334803240390191392730252467947049029835664675111933811719188559285052611302043502869407047004727851062970822875863398793849970223768745461779953321135253607577848150851685432376425972453486329177983941836441333919738647997385104945006350077572610558942353212691538860382466918464937039234713485079745368079689784175364237146550377247457683407536803957879578459841690976213888575342915113459691076058037908336200564363180280810823621954399139020339006191915315166843050860694848193060674264583289762265532923866768260294231114837498422674994176656039317600560901668155188287688237234218290820198527818053014807126703564152458117978616031865854076869695586349323595344497807217850022937916289451158996936224069689118687208489737687215519022466632787540911700150189211804698212873016147184086193495721366263818859455765795178409982803759529358090607233879894422181698104789544487308800167438970048328961345363012945805176279762765506087313088355660406523567825103559431815514334225967119703260917207620161466945479977107242218873667574589886376927893871454135433552140413341861287872983236501924569844519863389856356695953586745074936027946164817505917578040969431588342664805924413819573557706621233147544055520054970265581661590236183236369167744837102212388442917622030134428791541500644353763629092250018094849615718926853188707863287941981051021490735248651897333055303027224766924234896026933490519688980831316218448626720843561920379020855852615114095221050234331912176474498691276706753598508897573598964159993190677230565670368885288593873646615105450779809008843913386091912103634111935746904805585034261512203892230236782524863288317942344324860021027961660557934981579172508496729407923678300571620949348228190722637583310640334231078667545826926707840095700671484400633784172986163325405954354276779737244556336965327617351208694807173730243181130684224915673603996966250111998830527401691170950977352447525287142709885851371803313942088808554921931634375071184425000578285544413192979133937448551307975406735233199767946952604172684301862061630897917076089860204417848404637459777571463261534644465290613422127750526037733637579029446659639427675441949327618359500828389954724891615982618455077490085138853291923951646191650608481857084821742633726497053199154779736831151035169659316771549497308921051702027819539041944344508589069910937623786619412442095277498264406010779044886357372160846187086807374991427470148271024104089127527563193845593568891041713951733333720814606109576374022580715480165400947221597560864510974438870220486221743361267187312348295818170445370176311216562146904080319020268601932529658272672554102152392996251089593914065076275910593759782818933823108275896833598471243345989853285993734185305236638286408410726540441382044269273471426467280225152910156577076344868142092783025435576444721019205767958807198839411919242105386153212829292942543878670010006603597066110912450812931626074914011277620177951795230603778547454465622427671958806653122534149788138561118034727634879225938001314298578444795492379780987112794017490566535394096463941196212085805285671158498549302978997363575363943930316847923678109635009898055902170398974622807134922314385780842494495369973393523457697656968599260211362068067534566063254525308997897784858820430320873736456099232604334546868171143581261013588303496695468833332486946987699182853152804964864042896351529524879533601984420199374478609862506521938720082163376541812050594592538407339138265701446658299275887884686636063467111277256291399972324780476294054380894952837721434771484746283124024434944537989358816139039326356809614039732911151294383434666895596604821612259824212988953245551596757850440305749326995175297056877798088816326482792320516486350315629554132075363862035441383153449938801246035402193422762599006525737561732993405942792943270615995514360293866054677352850371651118391773981586311171054060838036694387768938276163270308152518983417904473092607224789778745141326547130862492606867536413146506928802241262094693184069359358082482473237444277038669308234715948870627643877882895095265722500017557482795338222246179173595704800098814699094992931454400698715536181829018907614609358420250858647739088160215661148338930994715649314226336770103926166338083241853120712878980563837764333457790199685466671008819781793722178253691660899228733724242351332210186279742640308855117116827029228462069085637389878622190017550781352590233857647480590912317363354564085485006269101681708347264152149398990741212542797421378211233017432117604267648368238711861493224960291548327135115911698085207017111210386296171049530008644498278090819035280169485216447439534872858552948306606739576167384197329014917191123120553261824376468787144604529443384076266017769608452011425972386283768307416433347169686623876733827986121994820462016530610715513751402781356571131198028302264275755331514875391846509843781651292984817674390979822117737633759160733879240815077267069220439830173542407542703937713112535674886754827993755131000845017047039621577573638707946858472440432930623413122223039013232679495499559553133176359146175076205944888463073105861459208158283337901165029884288468843331949190482379898341116243892562318150248719013879503930440193290800572832172677902981727425194630673307243677832372956992121371281703635933582022089015475062935985231952627237804639216192142362207471738218349952095379866468013145884683972378644928494546396710022057064446480324186433451264640365210535403087224265440887128883593587084477867880621620074365391863953539064689401196058572229376948501221160881843308189748197201142617274236430245093570053885965010988098470780370567249489889271391693654935407088287703081639493400204275325514999241231374055137157139433633048609377895923603048407330775526236427105999211295915812110323912809695839158267621695707609915474232044542910694889197158257489142448418551511241503325172665101970919586305743228133838793494790145870103698914162916450527549779283757174683766010612630242482209620779492533505125771265825378729067164637451116198716260643538428225183195398661217963089007682668102603092912751479779599941130322795525843198247660198354218567044800054196044701510454587264625167501343596624734183821608229940347699118831606197892116262498568688085111450041328455162738670282441232989852790358301181373640924890257559120763894670220811364770819461475413170296254643305525563847063685001715823222102866827828702242020580713634791356085354235233859404968248500670554419614371579151289987875273184394367273877874164252365022394895945800028220886547316412260684920136632176998094132522491293737158330269709786416045615749964262901616037248986153177022675554984587805924975535338679669954944489163475598924389697980292012211395641838538104396410849323264554322297212471674452566992476293091832907870506111058835599383512586510027738914241501070085940547424449674028058881582417848065025757585897003333208907509963826725543901058110690381058994782566806466016113762703064500512747975156146693028039880115345051025132320331490900798719725400028875186599544948111195455765104286884427436192730258426425212478107827235406905258885355594172458507024365200246424095976644292177030901107079345212963636593322279203837159049667366481433666988705095501394951232348405644853714316364001000911683645072745852333864407980194770400998397802106606082231439278250915777153380807381139502949540229709296483854404955152768794481850100046516351504744912685995130788964492223952204609368962277488861865560136349802015453576716565010281817492901356981637878313019600618076259479353806048353637362153625971610949602342183619622603477209823503251125124306572253939887855216808498419912521861528104356569702473492735676788480832834880014239188519769684015947468654128839692930812521158707580974508175701901905145991500415284950113879919831765598953337361391646681582123968951568992541470267040028689815259455341163721278601950160076364763955600572513874677286312934698687094039593198494221895552849555776214289168056638001071564313961286099165131852483219808374151147706364675127117592519400916093554637180288061421883874573813631737936429122166860166529379708004098587506691063728609667909550843744647778843551049970280791048017254242514663370695395391962031977205629126620173187956261562904383436196752242987949573895248721128537868063823879677970813223587011297749138348417483495451155811041957897417758954521405867927313145640632945846494747741311020977475723055692202926606929840471839652195772591008404548298909534763051066454594727538724882295361865295789324525436157435515841026922289794271492006950920029436332245589442752088356448705325092752900396862534635263825279372748395487537423755285643699545597486045185536488092902019671002103395172868928137007640509678368183331057562450052601794334196684125480820994489653575955454720486233733473573160050083803036953210539349196444754302609333726774972186909720923059236203309959480217797416240112546303726926831820469387348915073520151786663319937646037109044935812201698436815165607599173803782397449779883271259541052571574438592993514314592029195187450783807300280044749597114131340715288655170178912457839234995417539170905565091868876563388307085828661838032873327763412424518910988370735622230226341949838228738760994303160136085706879129626333346302140957095626599471638548219854731957039377391561237422689663429601500678108458469652339799776738887652635732908668504253056722492872962146312136574232173739583168974621600458754181746211010622617377749075219993818685716185847602491042181304231622819015442769996685289104353946219477495162060774664382513160175690652756172120337263954204060528214826776637405978378158834275900626838593701161917805823993578241459955650961028012000407010887198379843287334341365696404894366429711157778774701062681354559812661289782189398367658319942733498694461300058325058045347213828742308412187482976875208516858606306022469295936010703829433350605704348707708312412108582611345147863827021560138805731895843384170251772480555936996613893214592323162947493982227379077735442481729933040937166818714956985818649092972845214182769364421308947606630979320139191812608577529550321193911972830898373448465288277633961820971390819671035194426706919955178997149057240614002131729222456954509163868865622775389217394895506297906938221193978359945013507630130534815745438004266556529431670918306163890925215579999180461586989697347549912728701494279969088204204315040889333137337752780020168606831122902074436982693252141844125433551751523953650105729774237701291854664934750161563846001888647932970300114477270306525988372014938040244618375775501401197166985199646796102567061952903545497252226399281503006591791763057987745211877303661682002183114092515140882299084262763735191486319753694192737958744283632626803861207457668242358449043224837060423978157992027913199096741297704026991829403202412647482209717057081336825243447658339940454981541627632985106259913421309451344213675863806424116040225409796493751268762224731464255471418725840612462845795413868941623225169435165044711516789413940103158799974898571754758583647870099361931221465895563279882241301600685577550708680989491437201730084822975588517562351770107761388415406146590987888296152810132468179266037457290252931778381880992071400206191698771959696452198009758893808808912480224172699261746619691341446978593974875086557324631287946856487584849697208910111731430681467272554154504527116363848876104558611243246075526250112112765826778143250564157177264020938538661937217586846836708289551492820077256201036393452429880690241269752607853274598673993776200809890341701330432197610235797298453360805608712454093292651201258565181639941396060540252576068951531079714162948161820246131071476663261536931632941062961395207949934472025807425806340855056134141845109365330743987464239966678935060101976608592634739227445738578515261169688982688905815000448017477089539315877705405487536280535087673672855388943102074201978269681597692027054249964311771862491871939909525684627951260716699283770178642622676919882269369770400136503331408755658693531062717113707974306717145320122945204034218324471336175125612373168123946434334464473756894785144920231273715602053781200024813427994818408397290460119051411370950918696866015598624150275226814577457906856425445339742233447347417351311633372306100484644473382107624371080938053858174631344331230298321795244589276485380486084204833537199166260790486299835945014368339069887489780291560344137113803440771521868314726304092340605634503654507374081618436713547931357608292204417614036339861536956188525447389485790784451262614312747364425821930643140629084168021882442254544082513465532603683728365511750593917755650314395212672041037290695847893907698193090791272894139185075666253308274914763427437029338198995749179055140306988267074037745088399544025844968044335248003301905490952309656859780439520482355794130026484715004278446075877013149607187137682891961509283833739504747465133088778610934039129967886991815761458938197142251450573980259714713746354692822410400473137117469823719642954645819932502608089545011571981406708761530037535791855726242459687914670454075670603873646110618574399026063497381550573712824058224502332653769093540612658643631688790977987472442673877127054347583466802712416918157353971599088007931799371289768060038796312743677145088910488035285970273290104780835793443053287246161416039092845064118391014722850642037471823436555949060822054145373415197791127891197838995639987730632391468933690686675993423223005546779100123492473973945100439976187039183116106833621962287599776459643310198848422384775652062908025686061382129501718891037935841534733458412470658100777803863127295003477571532352331468697278459139941339159802294185970876276904052633932835106305208690217547755318107269310936220289340393065151845722710678571606001268971952998704852892237367804675700283773103064928997206821165190089881525585018902098071766582678360657725245462119798199866307079841216788327951292358243663178749932752690039196210173569693863282030303811733494263406719953354774990500534417833146066610172580415871646773850770871592681320180087803930180177058067461874956926432153840824930241758107385957999087801079696708748245165503734276489726794748409979566386328302194923390596021216782007164785763844018780258924037916862512488177153535945789132844275031259889764315034649720915003357570291616446607422301655194823156513320937177654433354127202316536302881653457290178272726718139279240444321990760975038789497846803665823388655719833523675137566294203265198369196548914162774813639421654849017198381405989872383007475236352584120449858577530255253187682310488730193994353939100559101979273357061049506464213347185616743376065144537883910810898168438878005031147816548154740675858365652469723654675317422926760569642986900631756289220680369579608569052142263309095303959898891754320006870089789045606266033165988673375126465537075633047562519047522097843957767749380998979150664926972823675665373692305655118373642384506007801504334207441018920741972625371184598930971753087113581189673392816769260106422982126838628131967959299151849316830888430090507555683724163035488072581977216920727788726660748055130249787855123674545932126703544137353272319896476946549893329126168015867789651124120935389137916880007854813566085796952078567993528982969479310422385113381051679692986597569972579748404121716699353668690577587651175057919350470508472619253379197115649951702902838986264046752712147384169259827820362942457795251456517931140124272695454768317717476326842084971805964216786028907817405563085060370974892354531627567153513650309135456976942876877812042378038367745387765666108992597367438901034891511631059619751904671023750192392676721471156688121065639929082990143517559818944215895323604413138246485221419728248409850735033576752506868011537174269729021534777977261695967840056749112879489075183581420813161558832382871773535068074854878624427808272784446900375467821193835636625573779643983514401216052811273272902057503507096514518265904129872640969903295833210096604989885073241928647667104795018028089449480059667972531935469549244719926160594039188971299878838079314719066444342405611189148274038341836303846442426148841727933751360661307076001846010990143347051665563369682513514363305007559956639661158655696886938992652784728215939950063861218633092810914348695191251938799471681645745987903735586110072870658961860268559261244164537522718886122524013433796048076281366759656706544364518385324421049831753443943075505399415975156819533277931805599478058470024320509988428385583409082857600878907845993607339831172289089995453399062569505935933070568826138330494237491604345741926418721256989128083909186317783242886408929818126669482055906623293836650321346462302368793040428058158585474648271734749745277716275531649301604390571581962165719865873494231745246026784542628174216185814544713211273452874471219325504436585045254543908498719263477962147307059834775665913403040495942926864923035738393339255747826674950473435120461643683835735151043083652311754432761587663146722956393821128611318391015146463296231327981981727732556106109227237999188742258977642780301089239812575360446047464709214169650036561111586623112531656638356742281045129201083664984430157798179823417830773933172356322518243683289098393603484727680201049285890541160524166437432968510885880240475306262405710923307782584168104638535345846308901656506539754517236019501611414839749088500286130301409580664841315626600537290412828760907769558409509492658488445666920070593343038116211273492483074109853897954465027227229045755929712632821117600413188619538009748722950221761484663350516434431447610781202013489415969357065197136191928783786715215230572744710628691739277716788250379008590566364433706916518548873407782886896595839144563506066347730128086128832191253448550599722894283365207826967697280789899059154154564911938935035298415527774458518222402367621497204838847753815945699945803654686234353395891991266970359587409902371345130476246488983639484544222697804460820571485074557674486962312495777143180312550988969165891290924198533655700789162610194880993349767253480965692546639367183188966913742891433051346502468587970385281039203717076315439848495180803308286531856610827038660657954635606599994286580577491836702337819684256723714105711247191494707552822734357208654636194221038752079355404819076987513689168691801220929679977421577533601709662581946548427458880703777257451821770597740201501619976322345820583152531375858259003847444269976655231581078391798992269441943006848569719538140493575450900737618010236597903665746751385948850494480249940206550880674122936663680177375454119029800552228072864710877389523344663632389387686326486367241930688234416862306528891164321752968555528747147976397321869109024204526448077110048644881560078033356225358758877315744322640808782950750837886409997274378463052303074934890115883567549761688684295712242259432695587639013918419074167743108588171612625361436561558667349344396580022284846227724246330505851880200059042370869279097451084654447379937585635413210910475933083584940904272664418122755575775752581498325736501812500096290208605885696634216121872133663675720164550579963339768371248725226581576863937986596999151591387478751362262181784436561564692317552325848612430008338074312767949415120997968405572396115315472031212254206118950016296973526375887788341101808936280067647788412810093488447067056136837198225403450805470771771064628219482443586697117191052118804204018575094949209532008208462838014766165801985252400052520247562311699021727932122580594566802160148647390302673851513357156654844847830074401055089123552047927263633109661557796702821264734347528199573912470169718108602748827765633715991126230418214544035292015883742931902849860826258694758419838281036867487746966650587208369162574164511947914220409285729204341526905972151647753338379335794605978996633710049907439711714395034873042614010631596685998504514059221760587416135694379494349209924774804196015011549261489331145702617158187651324484222155113676170373436868193741950591029923143093622425476861918167037275640619291478229647773775879315165664443143541925070311663944286279344689332557784479777150891417109105967006624697479707835209290227018092316952296928491500031422748568709608738790739293568757397888147473768562404368484152912829450741547402561655164404190891564738373958207659895283690595886160795461839070185120675459295584546439354802060310860155206804043344771055552510286325999114242450434442526434586334563436715405579918307392114695433875216521884596596240883507875099778328081012685814470798497765301179881381441656515504212922796082094022132666082181954225051773297065889294207362894638898082528982920357032273301634704204806050218057639241938644484704985726353185626948790981210881971452365660319886758495012690797990072898714147437791203357484333847771332368398853393010323599347648441923900448099219543504706236040505396094309769989542376075621395811677338658620481502993265124399250304856226646015693808952810208348632824247973872101866933334502046620119645721156213412675081485113878652173594777789888498503506481543951040378814133032097692338885945086130336263624932035785128337585487240824054453637202188787685224733148245981012553665801345544130012907043588199614943801797988799590493988510970828782634516106090765488708352933668853270018885683536656333987080812180679721071923174081516795922061792912896179663934158328801089734859669119611921675703001322566575435286924052665758345838292321795811982514760120324425227722773723734526194824530905325170717033211448431586833350031557311565517733339668468845254139564105210516099392650978662105953995491729086300889998156696163234786781127361699277078976616059234358207026195666912136267921189205460547033954696131481581291844892650228841959854210174849567505110930568838717712136515863430280699349742603324849836004041071296514675580621073745585081922508870755935374512140119428567272372088134546001802108859886113423545078212228318384896001098326746994862544021531378423994833067590248529949832259027638467009575212518157788349992531230039433130248917819524591471108294831478432386682026378505907540464939648072118261463631256880880042552695973305872013813163928333254994902436741010939930176989958027428704758240292204243997548967197874931912676118089343992390076515750395446977091112533668396039167904027700469515073153712178977678908076284674568979244289096876014358608329704908949106367631432422335101319752473604066170634093346629652572057646647946037270443042287874849617551127640652626773729436989079177023890205254185147002016809206175806196178358931358437561829962321806588793693277734787471329948829663342601133273525658280228055119438019092074118098228272080921969399068136383904320786113410559658277661824069024489624185410840575587372021470395558255385014823705427296942041399241985911928836309830924487361281276915675778781673253584373151596200172682107588447947907657233173241799807696119415340543259389669566823452670440622692663400609351271008195541424585655580605716220464577254362010664902298031473771734970015979949026445706286642374464284401955097702350200414697742049209106535353488379244715812995834560180915586755452490490903746882259553021367562221815478717148383590508315972090304168537842537264142570148672140510985643228866695935473663036004145334938745624071354014456473943076142834253259097366544954173055934134939073702298630651978097659849771343674507438930855715380377212172633562171060282338239105462736210444052814397948618289964572155037158233316743113211383436644978001740514413916885189321938985860841455639015617241103963764223717395217391265592634345056219149638224013292945522659218274707375652441234060797579598241397034971277087342496709162493095994965018954278667349575519412652526418058864263062530370805216776885422943235528796773213235419408436393033704298100449111000512501984525120895134833366904716540659358534759911102621748820421673401710726546483251327400112489238004601406018956199483543422220413759824085371358647223183836971766268967539568465932793193211639998379555478684049248504445603477802158337570357271399779687226698250836694218340724426287149381995368417268712630712039840248793285220293401487978758204017282722831232561062808142610201832404055779176672575082059634843015970548041820907525948248518871189345079009646996307383391892720921978235852057413271660353535936467199146955559112533697146574310257692921332255417728467610072744828892784288733486653960389392928767755831832819713252098311329670141421332940182875207189661409662376596217810189512255793138387549188652339350167665504822671035915105554927696017156975081233428187949755095577750812570703600850628894290788319094141929194156959199040595634777834249139182636998135632730412105457580276501565541111664007155147633844820862309776224770511052017289524340749625350189373515970767442398180400251730918674224579781247294824375345936542177414801815140692942059197464175037864672124127640653228231852376467702455306318428423601253180277206320690868855637670735630993071901127550682566546953901478354550584449456171957710669599197828243162987263726812055848661984943877496781203711718321227641560351218250271897708052774546407914198333913845916839141833011628089701236802915118621194565717902763782850143985011690830105948699359929777678688654796083748634882857481608692567295732900178486865880426138855778305992405742126239474439898380922623305133686264313372062421673975524670034357439026747932671814858855839643830780159624166202401377734865295351037649259096307458526619168676796610944878384093981059100257034429670873975288054721972853337433959321763699196479044020834416111045777985986067843455190161115459523581359053199938380540469092257262978082515341123448815090100896709031861254218006556382866228525481648966619528959146092758203485216132227532964091379612769325535177319228304962688257643129749956127151464986869580729439503888856395513749471559295160788034620140048857072549379724668685301526986030810956342925077396591087887727399964333593834316857670676003500917650204617995986680832539902240362139191509884278451732229229907278489081870689260678949150021146904798352519005464158716136813230256049192998106059418927351940735212300378372987459478237242592727732089004273839315823783600563866515573743713435747603058075223582999675916340231701272905205065560105896104576663445213425729567519776194148050547063738018833981732021095532010472174416370984651366354696102358889791486260344313538848905532066010585873601533420489363013485963038790687377224799549897412284795985968459735880042632263491499435782130644978029949144255655429237528276800406485359275983296124791841405548981749800562221871342428901543182505801847992590991545841240352133988414787172367274192985093087470775277159194017033103262709963451300097884791044191865888352907782940579797240474374133747980191239287266622157762279315947800916492313540073820891685200058969131021863603372139105043789226666341788769866893638459748948682063335684376130799207809236207732413425770670770212747638103579274035337710275263995297320801843664844632588278227915299555635036114544761587631630639570723248504452340014582876654773062446982409240383159818936761611001702542744006289707592962654533050215581193322151341039270118255072733538631184444952762823467596346788290580265123845959129459608732127315725939675475732396559806815362322893230131695225198101658101117524592778679114333437187897441291856224636606646711832454264984100031501088842133300495583739059591997886790277623989518226192983234932373095207927267580674713837693953028049194820458965319285904869632281638931031538374001864872259415313894623012093672086930887015625046013595136205220748147941893383887470341038609018302389705998920971586243844098335024929992955882758420559105277989242700185980071135892153885442786499531823521470909898441514854514957250462297008492144989049736827956582659362890412804844470996925013837522875418651926412329679964235685034189760699539413477648332827284792444711102746631938845481345691242804145911960279039967723980166230177810445075429712541088505697050654476491077554557369209108379454290493867447799806467361437112474636907109822403007273009377594764340843312388633771420256084072207271966024641529586341541447814620678046646758516804976937152249319801047965819476761378311382793469122381104761903296040689549532699448854646270200827781578416304141567431519324075861953690501530455749275856360152905640643589606780990932485677984821342324231597314354936031522536605878720629044280636533222310516478313273680945378936634902900084569251680716616345108609553837272452400702640650899756912572565652113587980817426868762045094710551728727825465580813663413686912232078890679203265836221273401225840711081151827373931753973044960812678117348828169928526689272859065986321702247113355322341830001062264153341234710643666938240357359985971939914346981350375196482402621168069089543240445336090305948001491119747444215577998921315623304536375686094425783151405907490763269098097180909752880884669159960665229220462758281139143176428808525991332259328714816451910239119347762308346331027807867793738060363262633923005271710701658545295684857820514401447008528353784552832095003144363416670265161588708426884305422458583682752823426573827932870954657930524927454117951120176449840459258326055941869421734699348523491629078100312599730275777703442958862452077264541706047353192208188829375408789350152673223855248702978867323044096975147524906117108438511528206512311333134479969625380458057414405013452449748229819308367169225328025157928610077047302178035410630287976670773195821967362956053483764392908910505999632187331648645772388322336703299125014695121553271930946809274950943847873746475956731116331803592976425886008465783002167862387540990667014639491212496110450779333164330253790255825887834318411559786391718974629167254711045266125657577762599411035462412640005815159988430849112042710402927692624580508552876098824719704112394232285111432592023178282500784934948135492582283466058104368908186841395720086319430491828001184817829391087157659636064995005487156719557286111098114944048358349723562867779957821093516205384676104953590553663482974037430636407340448711768510186327144198659171535527743561429468922990458541392711998860282458422006078497557252028468397492853955932775197998093102832305623064871308301285536994738789742810896086545838865532629160270700944000236528329961752897376104981371894101559414919021874590696344221371078284274613596225535610897206615058368640774079247518405508252282718222568733088063874990344533135734659237369583460190651957706287833478442573999646370482777853709781609150237302332477389455830496995989074510967751164609477131105803147353229924148879915241585429772963127357680102296898885790369329177197214227928546744756556505815096869137651040551472908685446047559544315782139101506658609086202445828391173219439255622610792378077186803203834508198958736270778141504121617602869375669236986526181788291745238010980390924917069228643952311474091321889451419182306728339007676510968430575060599524355522759640369765090337936245370693711020816756805002376024576076549995450048420396818576527770773518377491093693336620939530706352011227721329920905626886222950903511012647400306554194870113508845626408371322983162230509542351617204604374908781635810911251200065652965060075365464071208457401392026517257669890563438421788690537724540411721441404366902324633619417738141340628062020618615968056303577346232414167622186224410445719972369407212615450788576350958319645441796338667030395437190871949268911755783047574975623680140474875296055686363547658396804418473396002475704431134567696099798971858962087774576906989584948005405366405703321456295330603559770935117202258306419828957963217810393393770936989681802054596243411596066800571351147139196140587225915117393848895080846487223847957120534458294275100771646767986917297236346286161464808080655267912228016107716484492597269013562501095909963365865103626768775528595596599953316938691314612075704523040895682433321096394653787918019756715961442534940544268109463771999368932103970743753697716183925483236990598195729367470914214273713286276635853730473557111738118631228028260269602432176268861669106435051296908136708587485229628188693835579259009245928913476910156310188437174940860473183373390462726739441029893230239180319519627950118741908670655688034315790378440751306019102080866547225719528670005672912724620178515725081214573368524967265077471820864051675541328952508402366748600345388051040002616088208634464218509858511703050077687830514903073521219463662060205170538400840141047856475731746689256132997583377348028358266606154190510359775396001331481617323649466458991295169617606908131595249819555248758437289006591994610896714042289729527019987899044904891267526163912015723222363321599561093244111233824876644250726714571041456226228085483779915820472376863849647130765004216209656737149267160934264695829349024854572179585840538529529387556344062029109688171484837876196302160200258855836671906435568854960590780338498941997070747627066391250661722436765639395229111393536682489148751472657250820171402420216959958204272528327838862014578995849665767847658353443774411389638608712532677221044670646065942338794282391159119310708986860862924009332332134180720101634245397603031015287348576227412548653419210795136910001838117694445779957158301705690051106335882112798171608341906448095363793002692222751409229409861994618724051258857352784882293266821675981465764750359752751966645660934412477915309727708656931254584479634352770298510141102887834459712934510730804754605451847259049195486237030776973918375974372972830547539025642200441787361934116831310383982126929528718358780481855200383552572915483497557845152465922305452644217365199836621458473853928013084586584876644820051267826188116824885960883367317402552165502582997965046537662854148363021238793895418693831506543935858659759531881773043994408003471839484263824272897621610964342006750049897171284643629724616566154384954481517180956781946466288073482620100747901608661241518793707495110094638715103189231523576993343231129163554645898717809960585138139940600978002166471666172454411576731825364239020751288375944726501441259073232066105106178921467777101197128098299490466019898381377832788317172313400182683056557567517425645022342670213090125296160200567806167527506493674727110192904120549309653197997307322351575162756377274281798271393860362784354670209443964721708825193781228318531147519148001424841798060027337514912354776216346709845622752452074660567338848149277714801663727634544947266961102531287874877671641542137436155656029175003999321469942487657579472502793692357160761962485975432652620783638106924345364165017143798428741935439945722929503700556965413948808848501929662178388777400037022334022303708938441374518540891158989850179243542608531109220419576603445923819926636590947743024540305702378828073221035759500221831138348116885808438785801120936140893889361256289052493111717572628481213125896759043598029182274047238317649275460512886776752288843334419780761231963521531873027573689797937655548245848188273356574948892488799798652831299306985761521782118959808405611623580663189369131695106098446325169391913151669040615524588040976987794459727965781414613914042611565582197133908682199160638478857974715162055075913506753412870705338221918513739698680753098192929656532026379147149600863636832398887126003910218837712274600890008660946075464452216855494458468314452503485543411279675583490341571950992333914884798924164128313753728205077105780662263183062701283073058471912500235497021139099070706819101059626164205142081839456257982551624039563787530540455292360100426077470069413263460393320972561835408762072451764302453687329229587848589363687608490559655392193314049095182441449292524439052941692863127286874201342267283710210924618760020658527324518968971025230798747357058070039439531748843749266914348477413435272313183916581574919641566294059599742295506944375588788522992277951737896617570356194819678472897771298203967574965948534939278042854436047927678350307592168504092561244674143435879695980011828777545182406030658808454879522705737338573809150741173289780318595435292615019465923381605249019164886450238832721221235183743255989323440072270023374082995340946767306604420077070501360524079431817098685350343658812687927243139030919694608016452626311882786781286162556482799331898439481350234245778343062571585846880284220359392575881801402719069412290753664922428891960724968368819980072521880141897025799993858889424661241038969073931852556764616868039721281889040695400132050370946416090419380661153290141713836365920350843789366789133655880970887967879704963684275445558176362067210711714325559792304484212589039748169869414657512360584016723296937530804556381049159047161749555470223121213136678238419202588168144695814768833645479688401097207352326708903868329376407526695459119461499385319583524302637709111407553077044430560718883571180487934792044756556796690212196558783392278401141005875449276778892739452962752619633162085109048579713905273633441961414365832979128541855669056528530148267905668958645319366985757957482387052479294744142702644232827046908931977927944831759232334226383021121030191110815130768839541648793958489781487839138036932198334923897696766049961029003109205481302721326126027229520744685317225910760286236639674985347441333727700069207274365809734601547748867326262122458221645614328795532888463900082212684424341779490446422801853467551537585782477084906950771647364730770991790179289563404899263455407067633220565232284925443171999173468516645459119933633542923600083910318089690034545180682529426240936437694021946305236359549511006719943782072270280723213064060677016075350061238851156162851559848364750200526688360103001606714575203902302544813479112844331146674498891072083291180721411202813762824269118536206896510415536925397947188578875744005808037991027318878031113767879786854930947938833010689445764030574755757095812684454206588815882080714938874769317424912038766787375862653340588104529388927074646275997043404715969328740951733248914881907397525946061084973093497561698045072487208403232175584492199977300949589613257069911604152449046039134267704998126485648697452945312763796201816597603096774070306802253827837292052513762683190544919452895203058721319026167462861743253094245632441845083679466983905407841197656140522541281256881340563522323494550214607582253404495797674837591857057742683799035050948995696821326614764016201079214915842024015124911495655061584722506545785804882948239104058321954475520597553546771057431932809479412175210538601700654203868535139228240612662867517504367350479447375859117445487214064000291638583560297781737534013474889127326252412957223576578014639888483506623323233479264821672595279414657672046505282392931562235846339450377547209595626242418530823450482943321649717439810179247030956592987397124282606392378505352446520883171266442720426253591317795417937982494743055053965216629629920639216402913827630950156447481430569746644199795959035716722937373679199008132483869517755951015152707053739390327536267001485947874854031279182989064811119719502475390798110561482714378296502508518788932954723246023344436427211901944004396407057510298398393636830130676433666149236909485088754297834308795241563974942256288846032489304193590965255921417158131265007202587068418893097824073414474758343427585948826553822651292815068424038858649535036978750961075339369432807151890420578320702977914068558367204257269604397642576038050485566396424367508002001069655035373338679531561824535936048120840707539325520298103053361510885073238498930243036090297868581021790269302296061710009187315074600122937062463642345730740394098429782082627700442575813959134203009883954191225091360137395203772887984942261567376607816068132301431576930728950139333875325698089142787903210985347299981160604371769174340958697561026235906642065538032688105676485907393941630372886093333888345143724850195844737747478904020594569980936567067006944692536093709214507409635935679272359289344267480858032307537445577440233692846332077652502412434909349857783708178943651512705043026801832778142459537156526909566499289883217641736574824677139502339230728987852233847387740792234498623562212188767324492784175773560305094670604907600288337904706964514577057202190520235818591952364006641390480480002616600404143009492055250342076074011633158168348252654417208660043274097952400971754760604278884661879071471665568900394962777676500463005714600278767971199909001692061238536626715489419792132981869368626102723581126873905849508895120601205785952933165026748637644564156018737281639082305051392129103967534746049320523755998232277228034818950208642887954806264907803975493951807626496867311100123541106855201163445472690398932266888665429751490460669579319696608748985127756812961712282634302459651776321209031319532163866823385818735321702142355365083909112587695576980427987437796175273139881761881586229359419326143985143711818549769760718532270095897845586154073151182556081477892030280260287054511249613488165444268352266038391955845587303184916615985087721708805145120562508216751412470972614377780888911599780228210629933488263507760282412921803169049893336331499744545580667723781398071806289044430090451935913129505122458504663204032493353883854046126902323739313069033144765048197750259964446396661986954985977269631732478889195065397933935356894802294453054661281999328754933801433425442755601019973088103928139392076414751541592052439451321314644849710256300273926168969621042023529265638094989373249741774836051609057596747300065717412004033005837580695339053996520623505840965222751809666593391828117486323990372783254807253215987781280078979057943099752264354582706776648534256921280935995359423713748267515296871099614338529386922363565571092245001194585853094704730113892600603448233367422303217209331328581469542514862746390759461839932925245430473580591195355937049229630796272353856160013865159441822898587391777115601665904844606548721826355391165632676149641602698815462135748338892975532779254530527388215053751760516272958931125157300768062889036083333085177749119527322379566811900111643778093184751384084822055637098186363370045744838732397211881342568199129647966104810355566438202019011434943274396998743876057938968985577291644256710637105140381756594282960404465848291127903324783962794867051741546626780247973319704201018479386708978051152839775421333181667465493066622119400947607608371056669031065844845040678316285422328346571127700692234726384302743061522376486415767592867021885935872979152248509265081022066079912214807228449958421343171135407154904410238385696564438827328601445426716217671600809488164158000034059666514252553884380456085404123152975933202899914868640926040676823047896946954950144393447640089336852360876430693994698859678034608558435940536977250580892148245704822317129595273384948636718153674767972854186759436771506252785487994735168589235043602098377374457424471707851010186266076456323885169304361515808692576745943743777728813443204893399794910287927182604853319535584098982908123595715890559326616305271157887391107973242285892328096184952413049020479801004888087176352005249885599406703353550786763497763896708884954105032268287554980094165281839224637392190172305411679860863476087034855634049882702403497243288500420638226234079703617999251728243214018250258138682058620394406663217436503248231615628180088911492490174807737691789842712549675264912596896487497122522562463812871205197057830819072616084003815865907656126639019463790965008927171785899984296220391462754943494680985970249128013041842661206321923028221809583105421564393148586852843166068577075414155637756392250813917750726128862236703044959978462997168956203556165766139529427158411984475456703141822091090447110342736009138918865275439683320725430181707734259866313093458764017024623573733461821588319875321747002804101666122111500486865562096219844763186740186773323996343647789574884694943141770777997002401244064524678235115926191383849175680626520212342705352841243786709224162014502210269322004915097227549458057399875105687893501950059249426964890962670741441996504999423451397674410643358806414713878405217648543697767406814857310533513417455876191974368416498494155020699647493647238929314547696424471818942760428396791674927523802512372179237252968370310588476624540624143950021216388664981883513245631138906361620940920698728315690345134933519047588513856470690906994839889309739102357071983093641074607667498771261919779851909726031829551372393425290835280358693504943145852257463653283531992630199233284130581639307260780133782727058116730696216070904018080698415542582632458804726767782836404584980961062296849150122264695355702200582970344108879566867399106863157484806068189400026096887189569927875276248039668394709931224902732302810021685893538979495804204626953047584378688860351594445503704796925812538120323679323553739618277796786630149496967471357413456633940379990974454922431758658634360208037377423488491103747798231896889659095026599313848253740076274194563579541654565229268040261242793722852406608037384945327413439367776528541468105045111775436603404140322530699230499099723072255985158333574651536956963870515114428330353108160712517000965470148742117554874987639600007534649806465034288866477117348163974283850820888679677387626850260667978504813053484757428881816706063442801408385519612026302529345472534517178558538855148719136724345355780100229454706613028891532848304512132555872065783396043659681085296655569559011313141114166340978039680814896979204740952143493370302555385379095642189446433892438399750019372773247228570656042821089538710206349500335842975714823720177317078061574534344090639325831585505546914303190709404852452716528335509973685956535434251635119276861594886572097947445135660757217276244156133352226524760584908980426216698824948577880879013222238634509415103692701436457892394030222987821820543254861081833066062048996285509420437965731765173963264849264697877670098167769252828088656562662511252704818657893381092162367292460770953843714817967831184019972162287243711988643555500038498282188282718442817981995499204207741686233212068036573935712079424330928869853164101716038743584717007937482851679105584075692847107937591116949640897145658734184067007506638731772122192145676467615881126248500076537563864845716929349466192854541426435862922705056131132279085807966206475421053846157179590355922448296405717905579508888681953441983054671228454954711447657370932288189757828992938491375142848868234297822419628573003700335035627289573544940004869878341155397946221824982139259884555204400481479738840595897222043864106490373282401870285401500314846332042295131606041998803624411423915038460595422066324335593957544417521419939516890573334090591115513161298279671828776569923909188375035461992811675039166279382707295014977041720375736476599990859412648961478669656110230978969103517789660278072651765751653500173813376145870164765451119631627170157350937531949973641450006969560201256315104544781917499715248586810613081368272423947096732452595857204361403054026475223153893585194812652208084998833896723048031616452992026320504547649560670059826013629534115828271688801469872220298432871459438433745677399722692761712576133239995464941730572699125029757523591996689118380135022160783842001651554616998311130982171254160436042567754829677804448690368144017041613682532855143468292544632308859099856800450890195263870787713175989719424308036443135834042754446561793577915203840611174843704655953802253472842421527216189985554603881919138605733156029986676245130653448562634614002619461002423920763242340180947615129822185061357586789801592425259328483834295323010853359177755207222576200496874498382688517661571759854295310363523582582043373358215895171960092783748802387828540876413286678292262528433265254212653207305996247736536110135296596363079606548411764003513939840951719361851107864016741399207120021545419115757908769015687967014538890467700661047927242799972265352907581791063438245519248073380695503949420166570580517784037217816929675419894161408350395922691644282354576185643462440125767337393931284740628543842489261407990023297907262677218490261261159517415165457515956329260799321706425267400774937614309596856652799332535297202751475195028555857323108885980915198470754296719467811832216096911399113171391389398345914349203130956706302177759208410756497408185129718948692987009660511216767307933176067459503806644534066719242185660038214031263451079436328988660901356426289685921918133868809033585327242647196703355880243595296192655350482522564824387913981248577572475345820599371437301135692935679449475806939320711428666974085717575426597727678397202133589158108291921120809548401859783799278237964937658058283138049406998590113167087348482570211748694534580081849970346632913864979518436237222476791488460214765351257420046374069321873422952577861765780004479016878757225380829251305706433318406316717147486824829232288898745914288290549418943496531823682599120243896177571704575071645060979946849093286832582068540373141175541763331477829570287471366116993231596205573589765721052907750192830757812527493620824181269020726545166918530831475447993752963673767235110885453019733607114374781834652327185043479132726488456929078159391526990069997305715292916441511595083133778539040845207912877277302975491535115422607736083844803847739724744989420867023339053176722678588364693933799033014497673682708799671750235546906619572532954664043011432880785379873320582704676578304522641129533575986005361049963001294983915615998025511836198510690699015558238964363886992030527560628204426695460729990476463869675052289980385036726285298807946050487800042851731375444306122754352431944747784490750706218017990004017682734485521135757317539626667309660491347485089724702606069718774860372771949742563484145091706414701358558382172628309056212341015076988457774720891868820035963618241503411511963415025091648922821967732609508044566375579895230857358288697742061239801493877055904015466385644946971217666745465528896001202611821239598886604128702280801410074520212772073823244019666416721628932188950657399735853736718029578656810490778029410165259984200668605341222602215339423205002532850727528169561833338412522063814329871592705520479962533948098672944453664836269135049890148098086879273565952356242651455774256016397953882735254443572542912042093042957670087836704905032502893865034420434519823724899845216251237872104204488482450307548066357376852334171113875520698769988981073967257722084763420832371757626756628474880479176753179113762857200766125531111566924675664867331115560095738856433351931104321181786717853381566675693046537426792999778235278079543171514370126900349143178675164816653127086443091587534989839969392484332107060828775878667070492530551004177493679683515564726281802589459740716652822630733432145345014052627796448481929523398953826273868235430734742263934246497045341392151900689648254481148279318987741813580622252250057325121018612036417254758665778105536156356916870229081255251461411334037612909772027106008700951076016402397082571544515079406117030332548561314645851568302258991437190053228304417512238617664651804890186570330812155619775076931235930330065286668686606335462875797998137642396205270280121189308884243630990583854386617329122385455753115736231011072258010010687286428886009140226176512360979210807064292979002959913260846754458814457476813782174025163390303705042827747765067246136153714655932097742146238600189356142484793925541881305155691042560457590256043715944682944611547454777322088835342748004495971424823083154583072121597161055919860561647135702782681548619965784855413494911149093522532714752323553802816461542025600707255562682355103004137352342158056280881532403118461104253994624824941572192991725437598546695846472424561100723311189007742415638967763052814088480426592506582646007817950483089619995649229617853785925357439537093386608274312157882949886870744070408468632353355508899374295063546490735264103238419950028034632006213743026609150486710356073668517020633034997208056514964046388909336527478710011863864619503845377458638903604130840700344122884259688812084196735577558080595890690602093368396425438814375190635164014576938233908052315359332699899873623157735448181831734310721490879882275225614483144371699126232563557608540249060934837958055644142555229724198648316922468931520820746267381743158448302102120367538818834524462772190152429113608335298629359647107667476573609426537724710247464642061763534835343137231790267031613578054297241719669086487062719886785406667399540155531647822461136758946134766364697457341037570912083621370966273081382006505706579850948692062746187806849324052680747539706365988010864781615525841655498712184833643901481795762489037314216962267837826344420405011753403967108985153786513023884632041764751141505876635527463661007941839827572764445345793542010213992332946974269675424128944799588117730832587775758073941492164949018954415774671485578630250736079779401982155016411477021546376774360312471528327702673140780592229944287665348399741879971432841930849524992248667182353302947466224867470921151369118945797969406481815125226691114100504317623412835978289229297736460208099907609552668317013188336744045899189569914399239894528618135520286366420554666138840978679443150513859758145874748262532372348720105778027777850389783630258600258102627429048025347703861416688358635260382148076019340565608102807084945181324599311184498440950561465542130742807594865179310870370618173291446242938235011125776844040438709862708387222724390375739886749563741325424365346301098218872017602308261964932707616518055522599537203078421942726689227616802675050724381699297751428460588848616055493002180157725303841099482497571168306873787772960218331593948979772427827922270436399594060419043152582951274449563680183316750840863145223233480001402169339070517762749745481078370737503461442677316808275692991155037950672409961709519612169904309607772830146761715411276196663280816123591809820995795813822917321794139225463983145939642462515821537710868427627540162521205403393709317451497209547015722015324660721966913745886122248197374507775828129133347431705706988831400725334279361289120300411063046135865796906128063476884998181986087016504255884760499779857404378658855552033841245039982031665435826358203812515215259218577886733503715353944980349510044214548170289670265547928071844039657564175063914219166980862057870216149771549372921115936693325784986653374292641871809597142036136926530528037314256454354055787747974514837643536479672501527283251136043798243675907776390645888993329274747209386140499718560555675568924444433407052973833007109476949724440965682417601665942148073751799419765400579908362487297389411639322348749960273965301268636507005455463315107617847313327908948019498865160183550405179405332917313790586296550893755766311016655085797805614736088500886651160060773680137578164563352734252661512911827618629519288540826877845633991311385282847824282544267139916889171502013030009536944448959157393118461508965831129726361426470482931673074970868381602959193998003296306297654172508611805077048796522591664991371450677623556512078135778224676527886464038198056974175216190768355139903724898296207535176243260286135720367585334364006169169101170834690164587786889747433773783106227985052652306470463337174077811637658700604118149733743396954208817202216524463365752454715812948952058328307304411766207359779157401431072604181662860844228498651057860777092220668011161739033105732939271652831967029058549675759182777009416699281349906065999356267551939089966051192886884340432941464808055011279220967518956393321254208883221147504374092864352286631385699295411379994680366933983804855617446341823819658472804707579059940760025839309028759593563414177861818391527402530453445524372794633467503501306874276093524668668591916236009788418319733222703830181491029974704170996712898638733238834913212643281587787089451569983339121901000047580519528578670683123328147016714376353241489696392490299586596905656464458376675203294384265358419007024550838952838799972446332194310211569131157746874268765548582008982241848312872147320082527092496510094807274704095339277275099516216654818842295200683788064580666907716590043132622035991143904475029776784682127705804470806973090034542222764045800732128436654104036084938718308873490993348180867256396499622305919576476916505194172957947454910554967106911521289730156227758832821703450913697194729047547906293567458226609308303225369484568279688565591838164331296617409825791428495892295268123854896491172217579942596367592286766792592986953521135269845813563463333987332912231504629584414232167542520374413920832426952448676538024573983117362336478969964968896625477413134422485024741146122825128917341560239672550723790605873300429051797117273138547465542304951105608999170529710232984338308725049801029125351848406857580077050170037265556771066848975254515240631509960130498744205901767160814425169215638306371241169596742445043707750135788079763474779174811089154909828861341830779285702772210319345100704871812705931796264821544329545538795746877200624960108781125451050628745749118374575751315055350729639183517823682163716331913981585123661669495472341387970813449305571938060301884059194090696297470245720419499372867843641534141512511546977621244025963163570771361258790251244908987168001048241677671698202638212937221464826008022243778965528854245326092807686877430125898397852660856949939197733123394605918850277622529341344827048870037997757384432212121953952011668272194550215284933703681643698804732398236440760027372777569295063113454771185437549303655547289853033046038119622842376476081884899754854255449613373118099382439903850311618002561481679371610627567008275171247765648140295892389947119151274624651580648261331257970989477272851475019181933662887756424125857559167241107288547493863696615287957443820395320707730118376365865371095092351587585083153395421916957903277758647108917370663374731953639696442494395926124299593708454675264648122088106891506808658474261632120654155981283779069082960475452585635811287423663875173334237824807654199317567978693949813607010601288194396099419046240387714842623100583870195817203629276097586667791359714022898434415841155294691687348880746142354614339938425100489374654697129573811463786295787218338447121400179531447788938543940728210406035740745462012318354646759804103431001690594903278737031268258449942211860448836607873216932492226600747178263442618321688435191430222476126563763507942388295779978607489462552302924868593070821653373869919749119466615652554771048056563583492385176524078655231962566417736041101914286588136124857814141681841750568540509023356366284310097850142755615104521277826885340124647701485241420326682546617644556101878850300616102666378742060290234113131807427335568770008212359882723201105052799487923171459120189551488767479548327546218401171345231778383102407567600089445914086930811004842395420003587057387654595690836878759599308054990216427004224424571798367774691296796105652079700100374271668418305691864420101846880249004853371793798316025768247144199479553213990312583311408363577768324063995181558600946506495620348013381882887094354506709191133369982856865294832018028577693199589266014001201509616217426564679239332515200917666799843693531659322970127402650294718520687410791633649583974665855448010749909590714869843812562236542584859856683858404164236680197815169732445104109144048067785956558146419606668145095961370709899275102100858990808377585861355866929303536492778645890539472554075104661763073453397581905826997765994581195191120137223988701044223841364478838715852207246345799166220790346314228737586125613822826525843525277121956825361423194362883798191365988122506178154983509158396326368681912868991451763472287918574847227578306124501609625868723392686217549637089904430950434542278123039283245473553921489614659503552373268196623670455510066645309420286616933178309773568870482878018719277338431015963479934131622184059309364935261048705986540093272243653146262601945105869441805114144860340850732193160566728620767789496011021850522313093252187113044992940765444292647874589231073697841534002304938889932338463305857985973097409906901355947128193875110454778138276527312221347729359814579154426238625535988255728482773832067962366074573485073321665588811365508390893370924853784254760262579876171579026102160861637838546828392372755165673503076461646342750090749705742693592427493370153434785332171074061731391102263700521484848045662476095079960991044999348170658062913212953099099827596443446866164653983727511230103744954581969338105524237810218218642817775456211852389828581065616071141553684419000224524113095869852696868339120586472113515372422541207694444466043973852443526982962548070675583244033093378855508585670601907846662288997917160575616104735628079569426624069623788088573160426114079076701682625091568585477679514890331996803713198383719788873391618553549689801478046436879571581865556852935057087166757454693678759976659785265738230276337484546449285878903143760458597671285292014326327744801985221533699998801498906358586591463494846103101664753769371890711273050669680631293439856557323909060182149520863319224958623039787177216218446784168822130152263944333587857288749953318793504578635664949702319050399253774452023946936369085480321954574360849616401064740403141261678304630451006778460269550022159128161503646725740707414738237862139254310918678568420748159997341853013691674608838455361129539475270342232806281968292804460646670278248915606583161057225431213707623419867687082385223409191593855806583800508060352550915631915500904849619561962491141654995423385425781834275082109219362997841383705096174938155704658568770644940351382972769306877089122435069964126958792825994406691246123041422099113714449140654635418053758857617435209395784935964837776539117594486836917159937645214475148209850918669082359787314347713889991473229693677072959768225163650084620580252865604082820631884912660314023131081075117794581759450308392080883246297623478346805957937532158382326364764746653005471113169146962588989717039911553258892090098320366920048260932232768560643528836168664838075298062380865234924689351652162752362048483990247457122502617385581251410318378251241186734628552775025604710909138390417324707362325195503069160888932747996706283180910980854756234062071061977279862018940482210309056191974013003426649382740331487964359903834447043832068627850654417187144264495368007345146861280652938907593073876806180887970086253326403204493011872005202306629315064189090574951699500962740038068312726550090190024047691408620840804963174196660969741841013698172051188546259528699831133670713137789074109923279384159334313456051056716216534730946411904185364636114214474554748410670471458406898352937271017609600377441717279654737770153256595084353301905270260724617650160449756761132395614372906032326324231356928428151178077865051501819830283507306347570554998954646080724362396617589002869019520531505951948111311181371569751923660446032633255334908383756209116116980517416206981912847348520294985455863532344722704996756352963667296385288827472208588872286026543397035854512874623631988518303060811659851015039520341305969954661763952502547964575006522403481187268213822976968112692522198343541070532557957621688380529625184185193054985542289528291836783900020465947781692015573636179733837040709598011417951683794894544778666419113378961948225597261601319944049897620583752021640827962797168027989592830805892121117601693338986844016583293090936892973901691521329271469675876431903146643759535983573719990759373486250858854985418614697074926521359274368294611078956623191710669450833053740941017529608766247536302198202021661990087052717510865098021293176770767901304275781392177641630022485850162182364641472689701832824410265831118697291110073541106799702491457601359328252863577591012991751849444373151265032932727644067934245967312938649174856671991314378538259892110841675989983661818809591808845149324244722173412701319265268491404954115000726354695633697106718795045156247115950735748565919452162699102258228162901220091170538581971474120908516978217896230990335003917326341725003465633763975373247935442712320131848929002719373674820293476379568583814326830805083389441955131164729292702340264307575782852454956373441908127049982750422501576192077939487336131203964888894440875900000466991588449340402593028147841564529887277735658614985235574975897076284353650928771108861819096473320006954166755648001720564575660543955882985959456926067427681990968268031871800975449066440394495823247942997522486876157093855576620993888401971430747850806827573314441414303404870896992034030216299271608871823584412442130135316345781111114633943985490405338340779073786733554243950779981571716483696809161997128328573869249949206560442984574889888203372070630946063401973367242509074568855879967907507889109544355924239561547806184792293349409826078967354948625144612698869677762612801987282465405214182862659251087439054427931621261216576519623965842250122047887718569023124247726342402102618710252065055401456266990809273581526171395290081004663860662674233907360904569084597502618577173994594400429480771577280364894368180643555955670450176129606760182279060654763816512683486279155289394706639193205967528004611597521050205376541224430334886308359372223464815263315546267134331733172420074258866390713675870442410846779624546334856717875484454154085982307803326787307724798098757919953603966267129684270471027591292461525182980646012828667692408153477030387149330532084490072063489150399242066032674243789947996600526550572334447299725624159594280709552534951491399796424795453318405908407778645218652995011709058027247097954611924285439252477403485634348292993206006330747633145429218322503430967658598962277589000409285769811035178891542548087691776946633681538010737345685731188111010741985992253019909456701971260167991104946752939115132841875525809570619525143770384464371511996667296570529644967295875307729086683969262961612266512391777034586549040102514820049627232798134075876096042813432206336469002271354271032438128352188143325161999276370984742060061520825471336996034609693481076953529571863043365079392709549519823275482779690148025135884979116541272875108985758270161119171817922262607547026645388368348923936949221664609980369903200928905749987721659064322882477926960781510306523803788972192135244456623685784170148563919616981381264575552611364773035611319312653310938170968471630550031802126374660191099654069562971568874179877724236893248513205805028450761821415391639431318304118742750408864007897936811324124359583018245130066529421977565086580902539337301851057603600606828518104410631774232344493430700941521604444821133742866767841457322943885844032335976201074301276219729142488862904057017678223088874776006467258365167804952713531182060394183923792668678890145395221755800757448671024238925301350629882481023483088394879844291812221517521521571641651794144810584606314042689003883924408468367711252989734885591371096432338393020085780879008980022002837132762554900291763823590692519673725165461367937295353708533280655639968216079382571280828615919257482285981833031145182530024976373823776020071197984803918829527066112663454041453340632016007202961721456079037536442924736383525988638346753939211853008538511085079609793605145709329754573212619175371369163421891640937142089779504064782160297578747720677676292979170698276558927405938240575889954844625246382415807808139778901114490314184962477628001929778346595398951263239388888665361536964342605621145702986709230906093912079990525742745337749425242142242589509770590388398760925926473872921748388095554534702697325952420285191590536997861353007758896405137731039868167265059576455557585309935791662387426409191773741809765968947282545581524589344359016938205170169933392374897387771584768597345002124733868225701898729721619169773281218748232568815492548335789174848532436499517849799705088116899044587532236485928250176176244654932308119637889600627515455833509669169983251622346190794572780919771407079310652992898232767778940452436825569126210875175482372217006021998245176296480428892717930006443127654286739845507851779279589068324977461725390431067277232633138790893579395687598643270408844755521086436681621018464493104849407340749593810881476986746654412360595510829042006192569472444465587545351062363153572120289529834707202394357045041305825864631392981660895424649718137385875562036626374720105878355754477888865906798275795161344181000743695299295473852814761627441572203484308321248365380443128354343725135098373566866265507265652679752012521869130398306699995143049328711856369910145939210936898150979299726442309911874233745842939876688840334786160563450302087651361367557746153617866074791275606192904440290398062888846317153680084036174809327052750144034253461546897026675732360033161611615831119537636876001318052163425146501075074871204636321590930286029513824959509657544415853636998580625947456819841750415779137601958347156948644208324972350265548728276322383094542381925622608026641875815089252038201600308246341875240377026826846855155186882896353888674703987048198547434816707341145216361244920835059917814369691699900508549716641182977817706056846929901056408605241275496876009618777297551732602186197169507850282986846254266130597498104341449845268991440816400086685157156848911371647647033092927717521375285902474604893764237249500122654074463322493628968231146430942983281677208183454926245181605701653476303437630675227102534414270396271725789176822979659386924574002613737258076533541800409310911391265066758609776470451685587383171077283345681027324868746848426595325337635495598703092552103797705537602266826608807837876393456579260117563439455247429184063396852936844389959149647727633422563665675051176908016533153326339731110440400590600968224523655663637170804998451963510761116805572619946144727169620544117119262719765077511728217621819122893374940996321702772426995350512649972116130677992740951779542459307720681529170471798322618137323854753852998875520662117166540071320921446702673335413529657297439172192637804689753771179651531057164490362771952450073344404406509253698981678503806496612498507378719720232990711870551451152998897587259954413171624436471254334466587414236454733964088908011479836063123719141451574661752899985598404502800303493517913248365892859193946321004241939400781776161097878491641236110891194023623181478312824969093794528910760712935977480193179648243500251114888342352175234452441285311758225999282644291777190851569202548026362443964643654820058105343713454992938358066330311273555705131838746660422648475122072232787404468656752201826285487074807504168944649535928144568869585139223664831222260901273987920271501364084003449216036904711191792221843495760767420652206525983992151910887111473388141191335337190336176363521401520054204125904630681694296824819723876990737886888588098755271483004411506034820781447389513164792015335632465134416892042136317877695939117306327835624344151884859835160644554713878655171094014161167463056752267818432276490874044349707537938495609970966012289376507819612005609303514994938081701208560156297860959064571739904795579342682329908376670141920921191246844132161559879331967927797842222085076585766416555654380869470441124072025320982811551606730189919331160507497789625517069337734785354731929399776465977574757112013056882189539244059551202499701331121000118331970136696759325931059796318737724227170408780541811385315487840695351937909490658549495745043205656706296194081913532453909924914647204100509661584740837484513944076047081151167203477613919953440897395034011499356961495285304559644155190584735501324098511026998599633667164186621887372177932713471061746286811101242524813358859477663849053942434969554196606918886963020424542867260137195502337700040874348531875768311715103372441452161065199832252754769297929395027843124506559401592558747164122371236421123280413357245560401743636695538489213349417706600043363375019493615826257659960047190935689097313961001668512578953837385764254588056032727894332363933745121903201095162278051968220542564099654312382373456072796686688476830603761778149699264607520188804886318652887114577415794699373184705739637840894695363121340925994144426142542945963980972495811590969058478391842141163355501213178496454994802409700484988905031104039093731248816851157582830907198295319305025971492077135376330766166836854667614564632223215521761822143059476700986423288511275097606659822212040321952043225116821643821559925077251199648397080240101783359063663542394334342102504857980377049792304575149430656029681817023514671291646913424820178370519212457179069402956827486587743642034272625103786202683227445915542620917617466448087280054156176558648903779157444983628686068627754485925416659963598930345970632176175330214342858386672809084632165789976243723094294266325862681050338734888986358430638890515889479531637595643240124047207809019981987379334734507621299053084811988054825167103761278578534674779927232386481904707877175043401396485245530753938730037208255307086736249271125870508296499347759790755323371349823965594578020709840139895104880962938985131437308458584569716911866587429925139404611588473576242058931974784886393061250489885906278347352370663786350897129705378530948521405498292767997606526390009463072539054164750882991883618279249266123040069672331235954000927464256852643817785233648714474347515630159411455302878847592242022381267442410872342458145440108725829448454344431519367727780049763810419725849301401994806819819183693358817672233000695222906350682988808990469930639087742413585958666408126635431026146240046017886720262311484243737877719421909761839585492469403076220000602616145433437180240970148815990559380130529034116624085621877727915336492535029770561709051069630874311090385956076385165206051041357889576869893544011510421854125519231549892710277642180846646303888897113053505047120771871314212445026038493746964497604992390817198455608632410676296447102172872637808839700849826767238535560582290445121276305018818318471453571530681424144599447852819456026685472535825574250879874449422207423738063472160408598748128239487046006822750265077157659254959096986780240151943080650622590396806970756752600681932056854152747498388513829336518769641739569526908479961056806378629009561222615995040115919702781213465413578651122059862230027067890766999360673610576789034993983189878625996550601859709214547468946062537415314676371366541309338715789664803138304976380650091773696800357956366922617509897019290011899243714375107937786718515063259459803583471586460651189828473542463492379097284672278774550956525035460583716511538927579467143967943170306624006472783544248677894741896768508522931373054397264957229012822869104934535904138086103710237455748531908679551596011971594872981677351803463231921925460234969036695565887224262322714764683154807380219025779306443968710053055721898953219169860681068301839005007401760980003445619951830402456695003991690944303719469252279231246737831950508663697933759477701710384843771002151383833080269778122253566743644532736339820483164481261172346887279123838705997849954258514565494556619146471989131236002761099152828822517357820453952513276856913159285374895278675945587954582026376298978965478713803621947965127153345418376831745917039887902813596241161839061491375733082307173835779243635286063814483021750421389299031932949405395696169565790859866443343299985451389115344890888084844836279855416497689147393250785196173695806620126905850235884702242061533101757379267269392637310059253341436979053107296759232997553926357270840781392989468875569260603988721440835350033383803148955812816575949777972435138419208341836238825985261108405830551226150556233258437152208292378225066193210269380797220830762349788904795079871662240377082484473349346639298155885315020506980321098195094664289965295356653759419261549469961507404855491834316070290629749680829798056926044557885783015470044992382460502393175434610816974572967760077112993802629271613972223188360612233946677792410238988688690484658924372896732238647402045067449263560001599920305993648457252003440290286531870230209039587795549218084739607982775686856160129162470504246159103626087975349912542168856987287961362584745878888521386258923416157501144488990872206993898085947266681592844653583391497398729893236971821207220258853524310046760217948354717797939554555393819386130101859683935119425172960082956280628793081318074812616999433032971890906862639057694710296126978502168507833715490716230560748362125968291866222830601378055711671076150507112273722731997634318002327064555003611838080486796833054688740075306259903573524649009096004572004467065552293931610072281853970523046518958009517168485950102801245273654019594085490633549922062497848359487688033757176680554037026808815365485168629938599068210997051281623914097264284783889170736021289924233323024271890289661600999773452062414310015619811712675787952650839122141183306610747227242725811676524889676470120903901266821904062044286476745433622816276200904814534117214820378068865928110676194453706167987316428407119380445713506631632348335387390556582663382557690289643090587452120308109783841373854308933407041869283794172295608011487304978311288112909254642172324359382892632840398428024959978827480590241767468803776338142776461247624413079852478054360624630552937694429779016648784278532648115797123188692250610631515595149069996063728480284443846736456318873161528837497238532779036346958480480505599782998162525502428758364907912855297111851320638389501438530752756898808437995932179744302794986162797738278106378411763325584607810069806076140660400949489489560740572022168753825448186124221002596924524986746058513795931728608741648063825986168178112562818950788665757096792507513084415758552216562477494985109125255046774252069267836450335615352864593394044789573778116251900539440723699131435677328303713468893211955553120823965092150699863038327555197809556022707864043914052219538849149932557151075354810079066173733674054051757762634731506294266528874551051720188420387377770012486544201255755633379563679325146581349855652308392434356892851694046199572013549079297404774874124828296582069292630482018004955092367338937944193420234671403158618901874452338801749165420078448344763430446640148588651158702880220134754226913332153627112414843202383198089397700152588248779801641401282995377236078699973320967005905113679257072262289654759835896404339596130197271594928695170362897350217358806290094706068775480756545490610699849486215707627784082440991806492579570571578622531619350487581548806456789852308787112034238831520307042937841074893347786219430298842387642918251852844685474780231210906181561685535845060940226475966526746236650959101169842395378577781811088690334900772937546231789143026242979077808826663000351368976576428523548410822746260385086237531151419413454729960612098093737718435720786700647186656765253058471272951777027610583206770470949922156380224440200962487506457208199231142278761248904849016672856463045191972631960299611850646305297034770078026942557737747995843624890155817749315469904661124281909435885732130671083895847279356003477900128599206136396776682066152490957872006884524472400616157099921032639037140846026259910880868602265085225660263108364149316636678481302660635088741632077308291729215049158031051399405714457835703719217250848804093040554762590569974568267094058675291440285627187769424246180181998170497019986213932880333457731660547772467708561672298666910750858310166628264035332176182962697395123076553541433519908594592836026487964982354851742523343257791239132824497396913318494044217250241049541006110984522223598210384277659034287718994780006643533249518274762628002027445690349278683442430631392748655493658362870021466274744985176216259740193087908500831621375578356360588795231843927462550511125284021969071953803839800318155929068347430491727650188122730501255042474255499682269710199076554840097521555501226336519941377274357829057598695000296867598118767209371663375289209701973547075067122826202528525938087347925544005121787198193471365738991751372843196019969694142355672457478504329267962603595670443505340402612608819222816421580612527841873766765571054100650247708641036538150834156320697750030737646903211721068775689978244424154084547854360910607855738520483196085368295098655376689318668695260090643044364265693580822395733990154036352663001776302164925385989761229888289025699139159731478166307920462509814153322842026575333081456224941931711392798669581901691027880827397571788818875555493666288979476265133999283094705786813245690143802017500297847948963730730464033911751119798920292617621206500504308674314524505326507655078697024312399230459686932798550793089305783337528899569369417135630201897133708272340310221472794410782907529184565865528509069757471262956203479510051747074034742036534732304553294840914779558809926067164939210879887817801083921133195753038240438204842730835445194032862639280316380280740660256035594724140229878596652412808702021665081922306294976748748276127924558798173206171623004434513582152718501425068974011900069293043912224084990951366281541402038821121479686687521066828251544531085476847288389587242952347773160215854363840994859002745590965852236924226161291969677841045745366516363767351308106995153134345869142770879036832542400320012866188392874400120669783324066730414315901652816304907814166129292949730637356365037027158126485400710133988860764318524164222597318923421741394349089289788527739937701563954251777069616176987779791527163244875737280004942573140408347175542993506762603539997420475522266741650515527321181999063518080175658802541299343592673460678489191306947171920831042753798549227655324549422643066419616176433120486164014277600521223657127024327474934676533621806991445499781551699416710276418279357496169889826712082754931245963203206243440990520122473176895906357484715494237183414768395761105868328696693652755645129877375291390831246601667140934755142719701560264876105794679939424354486952275143129721801046419561092011727582716422917422550265077837585021023770159962886337184570702011534709716960395431680719184446623490418010538872417637198788385543214444010852500888830253456705047864111075664695324343067183126890795024685088798689549654445275906736680766771915756085623728511419101124678064962436897279826416797984784399488613455155218679335502223611250605492132913138399939638411819508683712625949693219401980493165526250859130686252371680526987869347608204138630395412761168949825509122351413059527505356948075488277107825637259025832368022322738584086810727966897328655555838118874051996297934557489846631153921950510015890504415039687459020190232235561660938222957941576768064101169857357390903436279398997570265564203447925145890690318966169915881874398514895028188871660942904345822603791688163705158745154872268720234214646949486936085210596386274559538381629441003101285160340609697652552715273929222692749048428924603659409018132701888463691564507533554925563068047554725371773607378087227268521539005019661876773400666654731084721043761537456274221645568268792798677862649450133008224492641204660814193380156379309179468796052742167261738713140040502423131521374427485373080301814245149403837048834708605955144551735346943237440193689976511318545157899237622216910470511575357206450212239630483334547667455086782744440748675685048974790034948496513883307084776611485236610164153160996327714100012263530359206261833652630467496905079402559406044851382643749328618986189554231380323977053451806727737332992152896261937703072734950590207185431165011297724803413703561258171027158892062112175800197516676380786009228272774388406933061640455717809244474965655178873374245271356320319712894161030724043622685146876275932256323233915443747329184336261962049628921983942532956951123768141435375106054300013523253027588507214045228851431414582972116491602092835453464317236345113036814172484054286439777149825950912667450197901952355861350173033681623135377885692340980722689891582782515258638897473714331862030010718064069642770492397935812099177548710129117867640062286739370190047282596926761867330647703400551146003590894427697544884130749550466509714634856656641032221597391411856801441639926828974213172147609571718904762072272418990132625686771184886131654038130392737131962988963937138679538163688590304900471341166793690287211062059450624395638105645152649898087878811391427706391534143708136815096663833084849157393340472876822308297054014128452466472011466349870925022573862092375914385020831351929356282279940066088911523692953387201558213207459065062665825483749556110155456609235348044409150884441071773530333325728816931897552334640527659839617700327589090810265750038603475600473539978030053930296292513854501964387486122329127080884493138036883690294173703762976985203877498240078969517416076916537478032684736597268943207552081267122088378703419911907542602131995167885405990023150148658684314564707841035819795298356322484856545509386180317413581049037529203904304490646197829018536890030050072477182054465802068717420970064392904899821232415372900539389506890019853552464638957195600535323403826639477231805552084072675277469857626015017099567362854126224499328871365592908114170803115915536386888127936259575463610853273297992744473418201054076754175633572748041603579597184822456830101324806239847747274286051899325621751936731127861427337029365778131691508185549160440501515666236053069771218394523126156401879221139455354794804458176347559168375996723510152688609232773089236739662414384551756707003660406823268458008077409175249517318169961405787827794376394278278920901270826898178262847501308378874922520150477264029749466210497380377977847075808986595878952345464708877950180938887574970302769787839747208606255872516990503784809351603128118087805721992062893051317067321818511187677301109734788107081266186012446648308187612239567569474068389183439408277182474565004261850409871303677246120867139403201501489547074653180260488753777710159219691018923865575013549078925585462109035657870684063658684008111777114634853959787760532575664689507230952457853209429065953369666086366662736673753920415508688078445207975340405329236212019169405585918919118134564633149742474210001703407191108724048236491147618837265352641320846362058807396917189642166497509459413635993305140857421366810611898388485007107278605559827294081475739952694947343932106641197643152913253975011304765751938005593839924479861022616124350128821684737182447613694279667025199221653822046739944373778150752059423591411782023351227129033501707642628660608361681793489110173577899717934945281959477848634590818602958422586184840424413560352486700639805694426685381542122986138790762535545565492516233301856222138175533092483296873251374536539162319509817614839728369712821160083125120552949538912715971725215366079836245434439413581453856343968741300071343592570962925302022629360759728891442953342618220827463535943835179735074305178044235462846441809508060374203428334663402642185616510166741292966814471729559886622003810684887954383203854393045995533515495126207456053468613402026563978066002842028451675707486202775191915859763624304461960875492729717395146988772845880001379960449701721420060249878851504299942100404378161739948753402086492770633755632592535806438038902611993192050809368789193217852548736370175392350677682050085065974102631237785118192370334569397366029868907885470684976770841941912201370141588474348419221130550525428727716779068054677097056875036584559832172224533226164619309235049170418025602997525471183714643611517634265534459856838963199761964840843306200715961338487799039856946205857778684290587409862781624795230794589851793996177171534018275549096226242213840115271795524147433254861792772663448733620498679179370082292073898412555975312263785503959539051278602555554395872535356898494975165737381557035794756634359282850909381079634496998885252571658374372818958860282003239334908539589362722895456063811296534726613032455094949963795215494026387871522732748235928302048993866946266252957456252392681614002781282017082426123852167550041787874193721820057271277105100446278728852346289038462738957030917414602871228239374117833584342450175810693947436796397410289337731400358590825958343735115978635987729339523356839274710314238416377546824226312571782441884445211538041404777015191374741264363085932920972031400052928578717361024717731224775268074636255771924309387910891955727193858480931030838074993301855518113178014373378677853954058779285584490083066976696044874267647362487167397504447696814065353025574879249461260073359487659477062373898366837321145481142631199317836766002398089291607433949155079971282398487913403094966858654996515272209231931118378398302999027831019354379564541576952184191738280707276623553451525757788606087306227155114582304540675656694855367617054681279181220091542585309446003841084861838436975922691216156535492497590134897507311792496234002955183742604185773609811538358025496072488453601763164987775727006016907821718123646670398211645909854784848956920936950345819605227582960173421606572214657052400845609419342716458949288062023706411586583060798460378597527463150884140717282081343891844938823668702699272863687200844134730571906816604496657219380354503927866128730509800736258590370992175131331583140741972536641081613827584796354978624555155822358728941389098437251005558628551372356156215093832306967467040994899715859171565469704310559395447062645954165598250159427515424479198145259703312961467009867614101401673395199521860242628231804180372765851148283980790138629732076561366858060446403392670028481298657026641221404833489057422089394630014130629328411628283241507263566285069374362820808922140766699903632148141468375418266688351404162613435556894028658838679799994579057078275398379294565024578196946806881988813175277542455195812476153183999639586006825885085677938738803837333946898872634337206435178858201296597793536551910873707644642974754115652370834489669855528065277963317063858607596837545603781767985459783767759972255861328205460679164273716761561114728707049925265545178683810545637410718202370499774256227288828157120308285400510989789853536857835681318666285465511519841587105970218152555421647770798984940292640214716678687392038742029224617981920440499631463028398079932179599883074529297090462366352271483170788605333043917026783893130078735421603843046854007055058817337664463417902922239801532597389640543061169292568094940775155089058038551593178587573945207830185858195727358609182475019926699317029044897514660568096327005093773633343537334559316342214524426027982540693230818379509281554125431667188036546020964965649574772699956562159809975856436725159437332361650980975586749345665865037834715403110008152551140711344104100972263377402320500996618972860028937758171938019838886934166081495395159229398462626741063740030386655253136065256021330345920958869904121325794297193173296004510729517099884164418119704493825577275056280587703937894961237959187336984518234261809333995675151707643117068591969139108198726618481795191893671116442392408159883755884176317225470415292913808722684101363797052019125302148170516190442678814263481542619522568528216389329781542303203665193073920593003475005728481677222396160864375901006401541867264992447231204872631902853201532191784170762018044378248988073463091867557740881412287934171379922065195893415369465083429516529454397804742505481698137182702363425501440138431409711145341504465961564356846291111286306875330053126756576662234236742960365167513234670546908876301678590984060288171115046937182023556410565534895807841046511060784948805673189221379197982621596262166754926056047057778379907212473185643536746328345477152379956698228445353733970821621023910158879765603866468099976895018522581538929406216488584276987368471236160463135362962805227433733779111955373973542952609119709016333274221897576731280990324504043642456789988849202581471507695018687662441717374083589376208032055065472091010092554569653590716904765476688263543605548362651461033433305264000267031058873107161664687063549811935451885342245998314310220388517232554652144791390923308211442493268409103800419452640007939201910041810961028530244732202939015397121932094926285693018965991352831882092545215520755286456558818837524546379014761344036069499646535417273975078547418227621808892780620311425857615365976484420692590014372766527507096458055735097479337891726207665615361086784050998804460600458941721242982304530437688966342932133059150740818415264959234405800795304542887632679273241823431977656889877365696479175819361418351142556172175913586828439108403141117415301943093094001535038021456607968376408941158613878917162001609480210949631716524054136982808513756193513478853756681728010750999276269941829760101499613184453197229184186514639566652129197680857384648329183148659199701496687572572241493566073542951507144160894771385027177079445675202267977596857543477446508004110898340945215002745007260473026986801068863009725917291338859919944061176395172164365497609944557666057976943126711114214223717041458215277810028602222742915365958122454142379451730363422002233046230763405680958751602024971132701760135347995816781790978180019803456671422558157988829844881685782594379843098645051507874535306367878036299267680411896788618507402023862041967053225989808238534150597905348605169209078648386433408553868407614114858015962224188657470624036778203163759121661920549823796131493046836587019159240969280225071131187442323483014692871700488908931313111031307147540434364003040949282544581888357976024200795862345260861693873948098490917710733985244894382098752682934406041497659528118409091296697786440784865930670155948214455967952368412807871820122189427148654334310470625768553046129324560698973466432367329032385589189747099516434090433592937820569423808655513371117442441485452381829956398576485074806781249716749499495601462291634775404200861502683862342630726537480022517743147363809795869823699725818723271821456171839601130517100155992724128636141854947909624485313675248812774701693220422680611223083816104347886163062954261709195762535369831086702086313396124690874143653461712389066080893483435235028506280078485348977655823231014351957016186883878341585310514241869639032406466335887273656119070502357234650954788746219268517751694295948772768631048853112337938748809827902054246017292709199073930685457637503712730718769977951891128025887412165522771280267266585482293843188729239386983918281668763003430758025771223370482877205777136896173307371657227519780245540062259965792518376128445411805858340234566508808608512516678331608297454239242218411679575656832741508886350279435207272589343578179956511082448088874712225917415734312119179457699041948675636152408141122501186909942838557182455653237791089445205135695776924279437288573650010687262718084231869806997804669205197179409734190086563583805590468665416543310584547514073997058698946965734438161015891592811879434270148398295932611969616190970081638030234488232290984993753857759619932878599096635024395210560660944796739759784589003810941885576005897526169401161445755306145432552362840170050949709390742099872113235404777292652211193774278317738060552331062534618018595261854629838988910394543862101947938142688021614047222267475473716372180754249735769309176773207113738473876733516328394878931374281824100676829968424985604195594174865681415028557276695100720141102083816759551249585757136768417133196118397624605844555022339275452988835293320889091984767673302019770179676836697467278280584661023702055313788620136882888618087237834365118166192086307153505406975820211170760654298009798524810197683346397669549865648009933690719064743601095028398130016311694898294889654856659614345939825180789816014494235593569102301131834495325283631544109921114527658100029166364404979077183684216678447717872541158477626013566647128902745593436770777426080925061763955569729791325631308879674725363943159354206112477577386184460443583520180757676622054943868438160555468543097482666370185459262944312349592550439889404924988801088069132271949879635705725329792192911264175602592974064800065057786565809025417733608775489920348544652107595504744377158599793726830559473891279937439900660534243515021933079917669966198798139610737318949562376960553965723538724225724017000148145691378532212712020315338565983947969967876602970550605894944490895675778707864129789730155653253086948050753307468027455207681753833673597283603195134362699809584089437647901388688258567920462989205718730272233347689596832839958313567714681627527542451395795580692064731069133457248676459934381817139263399005048375911297342736449684356807339567115487536071206667529129815973878699146910040936475124692421499083807301636290423043444498448263263123006971232934184447800732674282327797266882819340772201485576614756112062858023269678041994701530328935974508921153224315464625517936582171517685365728457186238221887950722933455587123943264695129844958467209062818498504831085059721560282000169663369562775716592235973444362907101634010744849855417540279846703333494736386219440220079341255028147439212455766494101637690101687976882074446946250451619328673783701089757090008292475714833458139234605247743687583723612212679135549386393949261903015558346288759629668557159399877633531060547414535111568549126996280406801241320769211674824523909244113936074698988686779446337811785334685819062750536483657913722910281179142526017752070918681340441727011178071300483127341342890215846608779239522168588173726528705313054384440544656474218381696248852128494835603816083054462343820248699121097999798173497890543514815223546707821994095624923856700738914033369276998168263693153171608009920928882315646329107844428788002087442884251055404918509450127588456002140937114944733048674024048799219221385579807578527721640903758005612272418149230248631276211550388346881067539597254975246221952786292756439941933247911571612531479835426670466598881783668304451409327927880208778811092654548589142698398500677756173732013742980474446002769549623121039807056568523716083767433645977002864231052370587288207538360330808819815826014701944638301394864335616541117113078630258291289447823174321289275037074722287794613947562192200839964491146794655048863108447516869894374951209221514283610630030155971057299665136718087980896571446736497102657093591779804643948927332533773691966603258200450808796593175520322707587430847235827266117980326557430453411469134623385756128440638175262163154289542907656589860330715127302582695778985700429196290091566944802750864594950656365895072396128036946160715689725836215642538607424987500856788267476745346591589849282018044454083895210558533442153133255456644394815649987502749672878004103083010843157438150451097239443119853676515993663048305777294359509435089986228450447044777928933126368995773788041434927962610212061777109711679729407493563329695742809895603140344157203248953135988629706956087934723342747949298140076013714392431307281788126991218063047106914197228675095143673723878464430762743232744715871838923132140451485345182619839515903191469672787216243333549726104292584169355573356798950003243372527806457378079003139807915917903326159059068060109909895437525982147524772303962845122334338611818204052841687350521975103331434230412765086388741146754666681649415888662722732220889457478127747165252683260097903146267587712634826991052633407942428958160427729425618500471018895271218218423489193047667765765222279667473117397110962298816636721956000631800838851979436940138589907555382016669615455321640306054393462517544849442495154324521651463966257269335261540580352468844573330125400543835079721246997070367171453416058513571339146051681027359037838933028989117925186828487403034144904374979079108341317661170033874366235500347785038249525927136841994436869226837033058183137171200356606395364100120436914508474906660615234532160562957135696591256629403794909638830185366127939676781648071265271913470260002067369402857664106520540872684059514691371407938798353406492261015046758627188041881764045354873492963408399777836638491646113262713406575337212608803456961126534290935741280141033263801593206636667085468727910642188647762416361759227795118002561890380955169437009215157921519259210085143213590432743283737833365660690882047197870294046698927371909052011224954774838048725261668504731331204530822352113745676130486449942510971408740682863391409143776204963750158759196238702673677794192146179005502329480298533303715669835858632034890596041095820089951050177815216579640911532988824494089051612495898522353687120440863751117999570548301051327872432708068848605143369090854283189364212052019634176207009723808282244959962644202339202113154688592605214613082650343776796938342096152856257257588075671092217366521023900362389376245876233324719073403907067663062462958791155644728948820931850439907344287334160468948726931391253165143624042107909671746006190630109494996434451693904769633091537488896055266222515907566853755446969278747221857554918622536070656571827060358383381822982812601230551277809627757577735832830902714250031948838531336992650383689511350304743985812829128332865978503348694127054025674466883484737766783658800840189308106445482162703992561763786077266184367195195366517728927746343159523240101165266822167147879715338591143675513520000433637823955740195176063006526565446755958995596828826052412867847382046545335617494274672136560647942468847659959257090166865235276817512363074372571574307017554107720975513360213478732140209921720230504376462623974202395646125746523964132907211302524475196722290942407659313512834042288203182059961141973334723907496309931086208871995472488567884607992691984795129427242783373954079273444166153415334146142861629927419777964184914940583918303409384035764681787454038261462058803138219519132122668817519187943166570557797905627635647486282654502486589967726130145954872886489878595643948357144207790471925858548698367494809035408177382321218550550607887631096733142060886112837803727066240024239774699049718897846490005116929209039205509010090099132464895108165654000006642209487246000177865359103773389297643824959776065986872956733089807123756308245784768280670151310481338931750654366713243522567960955945978634639052740407690553865580775956906703015896551744008295611198510656884087567400610927039850772978260317952543892817888592670952779849347951215473577286640807804812369021235501510446298322887756232921720913007520236569312723169230306109095837835345951117159057945451088297421821080587910638271863385203200267336836458347066964018826752793591246356719324864987636426382881559018335056628417420990886312196025653445878345337578304889390785037328615846137696728084832325841310000449422992574949423515834852092383577345949445109424377541649632902876028030438266226899682322957565152466180191268251305417760043943171135566548445498042549378004002411723651407081917574787558082252341403646807457762134763669273781506257455643177166715994931272377260660718248460415204048472554500574393097394826690294493148536809574171995574697075639077061316243748737864234086580520794528030792567708968908526898028253946430298258150925177511755525702300536093814504453961095305091226806305122795257981513833518098509370862946383915882378339526001212054246640047757149770829174914798981642927936903166512026053553991577103210353043634381191513338006123785877463179738058425400960165806067206329009560277014880143785852212679348521829322066569602608191950981534478781788549956270794114785517359524463615702722539171637055821589140338090681750280858402133317991399921763062519663749835772543509313417663390463680951947888088379438786736183118541273848294466842290725914723756068355785540730024660711307599127398055663251350067612147303678066590532033630320807976202595971776313592300338226622805788608098830003358625833803437877303580955139023014824680534858894675930628372216885252085858864998626725378753769646045484294118042938171725061072400953536273631861953457827496505316907538098026571375714976719459665858303335022937008810169321496304396584670289907937487448001774645435146638223655454567402035000505345747157812674154528161118543430617315725070821841458987911213744902828472814956666379291282443173923600268952210447162283333929372140387076059198025870535604690672589833910952879309549565698942357697196761787292011988455596904767892953493398313688341431134048611926532938144212044349311198348138885700988868223199942517147573600673129048833250229043684885219306830906148650523967491602304917370503099295207511866597127890736585006353484509042106503847870786762081766283083732075727230295634998913516239601166303809158485125900367873167520243724318777797384215465118083432601111981115870861466423392160160033867568322334733714872119816537453942402122993567452821808165598617715136349351622357925146344563984759394500681786128553828804288581063980682700971681163947532418072981103728178337856563182506414803513327208878464304637748150646123166547453331349853592061529280581606614006860228542088453154859527988435025616382109443011791474762052202167127489517526539462249198657287615594783818929504799839664985901735754509545614998660169614952551665486134278051309069278323562150198386353087225953748747179748110721982871502951094553401621413490668935744776638449555459931111734499519599780900703307781826704915657924756723572138442695439276139459820146339969778731451213805769897588775196076312849717961204664434856137410301840406396721828790210764580185679707047189421216550011100745853539647405481648042838167514268228341570207595109424981335290352261145215471916676042452953066635219417985511781505980189861127688268089840583437130254477809352322616950454558704135583204889437306366032865334399051999734382774403151333946270149488151242533185911312072653210177348588444026106435227544597627234806221848206469522373124999250065062921363731461048226749504728068077822907684462856793687213551361061290244108280000496059305537177846484798394101316377630015057321020696331238109861636264423311375025696459188682726564692833100235658591009298288006674973756595655221360022148611692348964411607910738851415778572983268521975806175267658945801422452802992330258368544485103271862908468429027241070301960042187519409740896171369877177215372786519688066210663393092595512354530371925207838676792813650694015993961283146448959229816353789850916165464094116090309120025584614783357136454643332790998361954841938228035724239311222068171227787686578907916042442452908962401607563258870600622082708414110978861663051007324137835789633290284009247779168754726708060595965729352521617661429857269548234800680344814315347547038615064778621231686587472918060719335609017107639018795466460013055867336657889278199349731014153964826208185121708034322104366173015024287751687549466945812133009872944065440438626861256585942125398029347435676290909856037234895265665982461296716769377094571913569983953219317361691596811108085897667163611551810394706473638398970546122083417985800112041183465241986826772159584912712445865645230833308182220191360299935151093045597357548332649464497508601138559658909987555768616039972756914112198286095192508206254732386246965944455132103177967794367853469938827077980503950738334621942533915219678703964051313980974889784061762993416592920459006520968565760351358369414067295835711672285591003039136341083121788482639850611280690981914284552961974566744854359717096363996494947854678132982268645643259586158589638115025553844585800376073372344346334104688162642735244197329342079152809520523201313575279403836881576633939585285383793461256565764613291631847319796988139667067616360644741359028568615661751080588181267331578639691747154656267273267786404479804408470170269651780378286671023053660478369278598467176732643174139704137602002979345529651228482901200094388350500620976938092656284061489835554072811162403012819827972884796002048756782364911783604918636853331343913742583154059791661898346233164477271716892407185068695620345016944042680721336146969955120625725726921668234318251095759505150747515740067678832090679889097827401133046019120669203626853083917557222042676452064358649214923126256660276346355067406641453945486734274396567893729284630861080708280271820186774005596792730286768564280369317959495678784332196426630838803900767022956144065343738879636410700184031892713042749669944741280507312527787019425458911133669346148034261297896277688700712204324361500475433528307768505681909488674342464064837630593491740967472988397535669881818390170832851712292599110878433075826187238051708081331220518322389917206369437047459630211724585364073738044036983411537767695733561962786898446257083604393374149340185334946713324304454678238550060287659967741358812530167663425680676819240297852653321922795160875621430164448581204228644034021490157695686649971321525901865241550454882451979383926391903779070724372738874235909109884562779776951094855288508746058187182454717005182139725831514578471261957903651177688726575482937856770198436308835713381619256037711541779347534144010958942365505821059488451685216817090536414585119910087587262818302447463331015953573858026319990624806042266023263145620477372426149344047140622933930374902775389791119123385539192162141529108406160073858037309147132145247746575491168062911362016819598151370387222071376013682147592253462807950896236668821317883410420300712614852614769645491229352751326615747538334465406639065998049850403548653735625051933799573466398705319434828098995368653425343787224128040478890289841829050826169034749567692619835108090888345899923264767427262859207100609320639176578937366527868002559358677418839130084080973831170166517384419703349303487780148234792537818777709226449568477124514384595587002514726238990321895791078629591605660405137979669161248451591455343308975065573894887366332785600690435407783385272553107168032150297914451012201194146050748284706827196985369262485306674602779862842739227855713046198623357590857064918873951162301830043707553121535226221086284043763534516643373928113119106977738898879879462233538731687580869625501989884284297596207571417372568622334227390695622912414223574131971997823044797562638050570129860611679355750433913812399659974611424993486197378166087655424142437440106453565246725418340997030332482523571911796358223593241735641587777677136128373096787269841710126548440030194275765099693651796491358607632875818612826430374973841825956139993191803423078359123220838952411709354817313057262347556499022599451935772605832105136896234487033266202169421747571798730152400369542178468970537349569104463906036896894015377533019512686801630146825448975931209316952530535151089026380469620701907324543691550898528564366061152032444188737324462542443780063768860932907621234370225119492944596193940437516601229265272058495090518123520583352538936766937853395775182876471382860238791524717292883414181725587014413627797008883289630910475384046218928346181399068072535849562991351058919727476088341015990867948132443340727349247766485559587042987997202685060582264118059110893813275302503712297271871171713692405009628287337681465109089576192422114043305277227242102845543257837495979323787776874528854345620034145608040168438848380339209821237881557320940522219480244539777185184994053558586539392078949795449579333162352732451806809574864123979843974475956786346296425142940506560613284817593399100915992608269572652960222267407805351955721440241172057059378056840220452084588158690626260849815427096191390904379417289282698077693639040196012427576515063135957278840091342415649162222439387784882072759027898578387605481785848147493099370221081623757323067498972089583119873587042275721571051704001261157719124416235604116978841549635052979918333011733378997313006370876855357249513216091884464615051145668686259459996229253385943968575847873196571447590310073572469418840793851067164002211799272241576280260739565577375855698881035767526258894896288168592500315599812893730378079905142191637933755959883258246186830060221161268986206524867813640777312518523919351067271172247465232076198913486566258734379609762493333113500964303896743165234449414908029938275208904331762507573775223546319232069834795389719033240512753574481547496763657728790366995200752722425343228786559121398949747803039370686089236249885862776497244272430115757696303401157495954593671011373469359268000987396184132502089321297278922465508354233167269946596413682757166454724837144202476225131759648502527556499402260902546720980662284661959581272847140278231316461931223190000802214253974568096425303443945199459640021771420181604154066387160098759733392097753513395779537008371600489699114617665946500410672185798465447084977618623747392946988619263941892066667247253748163409708179798158472093747825517948080614271881325581710977158432589581708310769574982149005758879831003908306920624820170391713667118255834236780674873223255835283762755360024090858052028281935543145701024649378762589891375877137571009662717824930375946309641779031247294547372130467292900834078336655444202884435479019074917743263428332987194833759709268686813885964429408562369645158918634978017714381554555687134897328226795960387459006820574193773050537458053123133909284416763160533525995135814862235433837610471247870245066303818626428972611561915963450248692362427874405261721705548058571156388563640763970658106518398668622784299697178063859036585796198464515839834150788946548829223261368333701631211747197952896236109831281566823434478919422609463539299155684108692607730488367538160661707873011287758943264011507521060051163294341160991789155388849153936932337654438975308002781379123083296957125686301137703757605732874279846472020776639893278077619287053894370891554741755789693624163919142184895133781640461423797259381926555262686473713751695165415244736827983923704118907935040681392717675365424569579579277841182598638558544491230374197833161507142294643145835872827353192654065858718489282657614141129847611213904126557594019153511245112122762617565751609670725828703524676562393603214715950418875328639758833366002934885145456773787944474256297254540621544061483131319380845167013679550892503334342482589354158428374688104939584310981851418644932661033470131851013948500211028540895517442079860213663262099592992371856256471197812231456015191768360479914127803151628333740043917731022479665465601746327552856160027925115598928513675757152190054285565876927948042044811704357400677164574441868881222104574978096522507983688637628257344437780960773325739505743303121308130608651153880790213064484849237439395234669665598282712530970061393580479879448526801087334021617037745423264441047531197519079941932744616793933287744904685546832495530353390013804329237103823384022384512357351728961245896605028738858157760424606626952581126549847568021752609991120605236564983268280242955420623457414746322805093459222482649446092581932971805128330117142610499692908070079248477010137755988948150660154510591625635942164738601861613317944100972859205386097012738314058253799177128317596533231394275560237355496714776642263618458050096373007382516098822322008853806264258067735841626263449092664744783498649944972907200943782546885766912803523410786729659114553604610259273167161653937686074061068018464305456664506124577814961019626264489727572985114111668413523513368689002555709134068077610807169614841793093477735261086643121938249500593864664014642314323982288736727304153914451809356831441514605090563150993308351289807307807234749963380550761003946166908675420904837849844383970061445044149161216476688424479673059675261724200846343450925958050255930752813221624563587054300328182005244714683063742897992539426166086668372678956870834822993245786128889522847548331838914337242704519893374774937285572555455353423792168833666974633505590866035827655922058874205230116549110332038934171078995076496225524463225286823829435142133354600274440776985785098031550837594292815928986668456227056974028940431171262807150975738448299616473666766928972397109529140427994116322885253571574373417429969368532349640078798398417722486441906788194741639976144268396100817406796613528255330380446007950564131277244125588508454695849505514386695685837809198455752772669289884535206387347155768630904014009017896759495604983754269130888265486881480205272663469605949140169948367207008097334930899563005256851741706569727478348828848663241327818975832536434425885845343029050333959797752330348537955857220908987720246834663213307224161198637005104315031352916045722290921691513176801775385560377453433586882740268698383237802600646441594028044039002286687403792949439932082419247664059888124906180790393350319342921432619398577569985922395872323810842111609677992992827132089675421603592845692469091655211151054111197770469442305327407481381354879830936535291775156806902924591205504979174973631145838737588765891471833916732851766050611163672371506565722334104838408177226965182499574222114691617043079428937960543989183230924072371480000876561927920168401567868781405980905633051507119402871676885682987518548826591353908709865130735017564253386911087188229070255872027083301105946531609224099115444253741093378889622103021465753897570050448254889436723580642934348479684002941019998862160402035397388242799292510685699145683301259941555297381215379668519345559708059067502082031001643873950424922634982559059785252921751175295678549605936269797292393582938333991534061000120344742745740815951905892661527215073645712443880648387569777222199138618911669210799320754690085815474417668803013178770631071976147444683606803046540996709607331536327978007382207679694327420764858507011233680891125469881939254711444861080693980976909673373862967802064874027608709582465399931424763249840039273933819442955022782178675264918365722045318782763846888529934714373002838500063864884791704759591937525670778930172736275328268706208327374913662260788038313325410595411046407898885747122448416604262552663187752640243325860166712133077834324710066742782848024623069835165048468765539176948143794516388229352952878602751323096310826205545524601445531358279062389667373259841078519460250605290845186083285906061146053173864693916044980332162170529109872845002564452733329224380586141521305946045327427178863466053591241836621785180743314234633328983459890963082653798411721736232563909370007256921956952418363630838331893460615996904239874015588700650534984161317525825272566156069367681605079340423113972506260769980710213364434620886431603712087497219639051780441882165371486222196309172107939346777440048163729581747861830125131827741380890758043792316037535524628811936505376189104055310696892960641697102305342583697071586029463862381200814414017381105853244033551585394932130263944477673707632952627428628208856016225279450772287762066807490472386260972420046109396428901681630448664044539629516014072637780013140626415943106516820081862674627473170675446828281396590159202744325959627505183722800519049674925834108199921536993742773582482229252656388115326480460269964972479966676711598248794616779500331417180739264928138633128826627739416681654122295915378067111200495477732053443368517595107709116536912346834140649841325209134322149088242545855703498092766951747677590555915434308680554626325684921222916154662945273480156311714216386686444017647703855086369123823933583373088746433516059864181493298234224881521709090739693608362755819385722779746871968425799521878504499069355224377623902420265162091117860508518401334728880378754175867990530476567051973772702836349507586387044830399927805144364513695920114842769872897061226767045355312343550996099973321434973605880554984612505415661188865079381040569415145398948160567678327520910716471308135396069084605504016856837446140726797926598850721945254794250288918968312902216838654366571491279123941096309479391748521714842678560676323819885840914852089372438832310269576182146347502749536576564967909807583748877325894579572150800864320633734727147990873133187883933187868238802791849495464161937970629828932771226595814515548736214762503370822192341771378819180809629277187782741323992386127105430912461781233341079918601147485616523078716829505923239812753009778624848318658943293793913463847219784891039396043492512108553496500349160925749832758637424213834706603797954928553637685940106168238200647370061416687139514733907739030258284376820796559440212443606730009102459317668214636177477317876839789734410133308739321639922094946559301798420670240681801041717336117281961808544026369229917704217441963989660878893838942226766676329185773721169890307168802088414414312363197814760051442317951210122701864627272972914575771316856889362909357634784288004644745795685543033207793037616086514066326299435864100964212059349990436095058285584776782261607992311721479651280087441941741021689168166055839860758970712052158570173696756084280445311485056813586872694261275970147086245026157387476052238416471549519110785645416478739397055037547583295043387615587935216793395670742952101546224067854257986314167488858220203729996500715833116391400523579776311281414594521010207044676248881052288624649100086667548443988433409758092968506272814258104848519196895990725781930221249058308198562946009161866323843568756205574462175298933802496252792270692532824699064700431333482418756665801065209013325635451631565578990954558308206170483429304150379540976422237217577736858533656011253651904041573971299681189395719329761304346796253122984322671817962191801794126127428905268923565935676683190331076186984497678685356847045017449580472349089971947939687504995085847330256684616586658704399725895188118386423247835217909901471270543397240230350568542035690033221168882572201806663452481780825034878913786064219785521803387072175518715865460111824469496986315592745387643119153046695470778671320646054612462407429422614517892444487296588759090890293073060318668363389718021064723331624595712607380213066983167556733677846980715255992016573289599177814517532716397052649314588763146772954854958988362496512710434628989350003431370438596228213216641219419005917654328705267213243845909413658980136725240394406295939293887518186203384689276708730028629694987604272243707536080418918602693817150257981204890134638920627010815185027470150228596628217442376270256239120262173576298524434010685382478248944709774467435603484701618496021949064686368248568281432177638995069814513556239223566325969189610842202141514505886818603735085682493940404885131903436710508947559574232477575105395856813723683716592711310257687800597680201670193423950450286642186648588028262165050069494430841880557252042842556270321045594563324120443037119440019303068198608239213740875134445087100219955801950935830307819959066172169635149457861374697853022785687000130631226283842630755116284214906116555922611801077463757987471109290303728461044460109222274437028176413242589280419234236356771195675537150784525059749147877762934461473007427547920613393076021885182110518124695388457129530659698700621662112510788900232015883190146708124660362041726152609953448245319428565271477425783204787090610825861684810072582692671920681328173100647033606516193972926114281056342257160205727578883003257819346920315186143984561631480652678537599945372930720840875431765910125090774697214911012560990059397985758442869420979848716491995682287367708996488551138743962042317671554860574644699411011375051992089642051299572656382610665725171118782223978716498159946067832829591865579631419930724123508395799149052587722696837952298410234798402384950562049315338501433362664192890594663863518599324668769955360146117657915917011135770711259786489806478209848807296208805200298121445395535832200263759266513937373941199192371825568250395376228963380435016748694066335518991217911941549193931086138326169555399534506172959645748244647338026583889735842337739119223793226624204734913713860748177030221315384448910170622433994022678076050220877549090480826458238093351324062863931115597724606195936538083321756946777249618084127287731825682016479228787719029739071078246606371278465078350290246270377866845219031397026774488536326702217435782649678843907064891946295386291504391361834536537793427013186274909425986777859278821471215830498208413638766062019458638771216414399576844485583409494852202597047732434084672385039806135215988936854381111356258453518386399710978880710383191181429373517444185752497363342125971178328756242188494325402209040655675154217797419287863452001228407343512583825703426003110178526933177565753692431376206112064720940297846828441898543947662682389800125393864103491575689584162675117852889148979885787532962485976861588801596540447498536062535796279865576098251080316017719827617601350145558265906186652763084001227087539143557337114072105813573613148880759645951746297233750715553724946796516473560101706117397690393330538036642879982209796786738544964134470962117194243596636622138951396843177803734047370468450742301878128510714019791813692184419313887509515267441083563835760285818725794381723932402513432845140040513316889368736763161473150695864825639646273392498202118239128702054410785373690536059533519037025794013377811496320920640495904910793991037227262088717699203885681789117762856168620759732480901058442185192090573311289226868317610509994566252257571371563446264721951547294966159771055325378858100173261890025312461957659049370269618666513294061197091000161514953957106870183778668869814385893334397909782570816928200429684181538323540859491956310122509108916369050210482538757947830182583299063851771417466241942615408972089840213184252893274195257260219853997435978793221564385320610341064830952392403579112350873624990511454719247015267276213225313224793945828054932678608096698662584097364198309040000931380365259960647548186978908779507387574102725691532964495231455687062493832451503196384513233579389540788580865482540821506552137111122664968033928579339327810345266867554368679047463445095441776028410429199448616372906987550790638450524939748260917584570592123154463016318844432240357216527850552618777573724293331448169135166225172083652019253767444001115398653796682865954958998657129750183902635548340946201235565054348279279255240807557683969362733596067437379991414935049365467978397184452164332840389222736566067748056120753589241805302604256769227573270829585771139743496087288139359842603560228321718378039310095562628016849344416468447233611134721720294911185461460302365001812069693727808723801943183194916696589952079927974587860689064340621799595468950894072258862041239260343721006355086059553984817838671721736049096791020019690417501812371437190900933481483332085438870530406817418827814784495184114310851643175247766052476010105850667452403839512958739103553845235229195533605324582880716864589066508882289766131050573920434409973853090191531300625062026009230401294739493331246726552415889700700126598069016899203700694526850160798940911476956102720951721223938707571245393085359753368066548687229754045034090866282184918604828079397028187713292669632862413278475228797715989290221915583129948920487385768037074286902425776357344301289802572778547797199829407652549197543234866290198290213161588353906279525310519839294933886280682294502539067571180133753620272972678852561849781011149231258286135220106070819055614329605505873672818046000686651783001622295071987314649270578395533042583950250540903907185122322119427240899013520703367853518096464035473988795842790707667758169168334982700299148344112972503205861286494007795705276614319903275402884450061331317126634583864091380411818574086600141674517573515513336159414012570445970625296017054406808696972642055557959538516298003061531852704343887160296142940607952445362844316384223402460903501229770446745190673700147620059253699695023986693333903741251867423820879239467252571791343236833448569106397243233583884121802091145456254567718482723239472686681013005115153261807977030570242394416258975859256599761601569222403632698640293641210537522901890988187963187956200111747678771103747926483605889260160219898666995540087285098659584840167470284559770611759920393931167479918766788122717135851087965561721075145801024852831483313936709659474603167660580423786539032747944839144625290419579837449922774924498617091974661258726038759770408958462574176906546064784933416900708474747671202142121653356126892260122176607390739222219475990003500368053454022450134420305602527296682069779343584712404677269558399422358505438067862379605719152400454274971899252046029495513167933950537624703532003409848530339524088207973671715839451948329126413971720724173472763765339865833862141698667760086404841897030861203109515662504961299700222385936522873050721196902892341720475424007817221899105936054207218804235764533579670153538198523803982853252203927711457936740950180225718105179644265466545670411556621083092755500402007362299171466865324287167814187578402720257236722465099169981011256750509700275344081321929262263981588828758344692475730792686194947021039563747626985227829287435902570718733013563068367092707988602534205939593440898589213349631526472053823780733207484597087377049022108418379233552457376822442454262568236675762162821331852671679908624067998422237536981452805290226842528684982054380525479211250504665219052485537524061361318761612740480041759822009560776615486956016108833841325833964121731658599976462463345997095651685877777155942073493538054699234842786242297506062663603205126176667724503633959947802815740770684731535806216438281689003810731117082329231235841622045914215738304491389314608501558436098317502679728608648366923835796181181617480556732814242326061367151692173390878639223446292166030539358089511217309418381690431942106315384210593890143635258790638843489777809420804089431479557719996308002428025866109280475603415428296293260508125884881683910871427597099551328157540886876629245042020658528656800246725236264809629077236267624845651465379254725378002474733733066955665719898429502607884972801425891438498822688561834111097748916305654008443076887687454650415019511573071140300523909806667258011333535326473032059361528237300764659234742917547490542658942723302046971709824725621630733207974264104982572120674955803132774002403058630174195183589613344397686401538513460102898484305964233360651524897312142208426444670671410312600300298265351439681835742249150361784298770687260812675946720522414581824074052906496446914866119617578450867430931382838983292154587363311918280722011032351079837018118225420264068446447473517914876289738324874218012898285133211810821854489274080705276103995718721061703071170569958328809273292649161021362109112577203329781835268459782341513309385252228991711013034552583497435207119613319649471701347992192222825027188177884020509671240957784566880726637489224287914108859700614995825005518514472408867056199602912218725247267593194473187936953045845904855256218282778935699778712926063042929911107525655194849291419143847035656804155869827333877353558682018759320373980038192389831650518614955677451395973084589331355178550780599629876251297086411708351699196318086821694953039802777811497427365114335596808234696492235560618275211486006994307971684340525762867964327909415295684036959546044251111334008952126693256298386993918944468432125482535924523176103790116485758997855260414061600093915684638469707013354871064390639295618362973257696453699118211229960578501546160502466220906198886908852887543866416669759451503230382322311017225778519897217396061007775336501775538189604292650304883833390395086402713657542382643199538387698362741807821225245017369132565319250211329200118265467238377393094313927823657145075795844760677749895051155687951610689403842779042192604260857298870651745476269428904874877213586495083423734533458981857280228677120991150913838525530826881325556259256752904017940235180952136059249631112678807276677593403669235076862493724431330504270313206388243602369800544704767956065829942336381796648339922688455753752543364977466394086450820833016713444178002992823045522662338785174960964168395740113100969681127977781751356134701224457765630886640193016366733396024654829678936166616999404001520693755574550012030867641187469145055660850954707669864809719820823199827850172205310848226279649407687829324785196990664196924361800595401717676627059710683654845280856369323594514507480502603751858005075746500213864490221803013065785661150646920836702793731143308916726067275612090686103437575429570288448325553954932744838671053752939179896039141469404444499046123379666227208521614696858820235410292328113575057460248065025670408487501142341191001900613101299503921259744875448376090584692002545805568304467431907442739781533611013112873048214316671508318648080113488271681804689906963781138134644868043712758434416245681206474625785811535847415790678789338096389112716687606273783525966222861010860443396658362127557154219582942026839535065545910892589324017242752211687506449306723465047664671464364519037691551473562236869278131090364740848718341255572085385269981274677370553233228283865920723675915528037735708392287176282150701114341282131653554887094389761995144170683522335987066543887837952150866721949485806964736498282388394174169821811647094810491085099019480044249384674362219602168029883407453011324284351744776394265798684215106718971743814630931109463464907111320503333445659333131063757712325479218317606028878027378975220908573351660821723715261470202614993503904265496202083157848653151844956767300825405819744866033287906986257033601871875398089784585322229536034293770906702671566595055964322269909784827860479522065581361571269540686674574554384013762234654614252620640290582441178126475618031449070697936136851979622559145801661329142013894694447978046598701006877107697033674456276206928948027604075272499982081191866911828687514675133757002122155624664465005576158118144287963265500689082043286500520075402182905193061297601516614881271125272093447335205037369727651678765447774504574859070567234312802294005340423024624219943581687478232142194235463595452767805386755724033843063563851249713728239096692861070968908132602896693696423688035205211245907148462277032750601906604357122334331340521143647070878899658592022557221651415667494384136739300342119557970406123146256819060772538976461938659256405621424690387678103230472679583978789499765954608320904219368277566400451212690523076437929783224642546509786495615578441518537146528431504208871321411954912557877778628258641191133953155999003999686745163394810878216688622435925699407706212796952417225963729107421953631564711112454915429858265152899814492822906401062995427897288185329242528870770611933054331728361200739306351340184706269573716391809237590418582389834644635611344192835441721550938271400319066467031347443183514621949215840107107749654287348185532663956845977384846810269048599788098572481928136937678941760392900519544818455950947540132708447008249520162803543595392110212785902571073508006297997897339613168668512399148869767548507830294949423246635782107282390035011914461311299998363505037203461496047231078565544063066144725559532906182321498447754069215785636723661282962832135438168504896006550578914624144261541106675302076714495225173508710807932220380511211650899178547995795763796154217468880888993830908912870078822236793826982171162410006696477276864943784220585459939085197950766121379490401546958621332667937767944776921315261064796350566118855160552621096168515072901498324747802649515183950442848489519110233077922524318203618262199900131769597331388772455858769110546553446694324803351756093407474371336782831999738605444225766212956473791962669184341710120877977926254534346225518162840133623881055975370908157385910039654194124945752065233941290724548608951643290812544895525377491208194460457383110096693738403261670912917845313522939090300430825223638068044828969203447674631270677485752433657647810162791602731319027452823832672802501409948939482396345602727135914852843468449132721848776422653558736852839715053817699313922704694912598123331453579389998307073097290433309763699121672626914295764064192791311011700583255297362367457929257185430439193043638558555805378449513520946383717133033396712119144923887795215353259570134360472175832791526086641390885113523415755678638061525916151281392553231820003752409853389781128888521554189890305969707638578757679695705579054830053327042299315870055437818817287271284527748422185242248247878315468363812454284968511799465142064851305829199901064364166077053956611798729611050510423076841018106847674131917172019110872244139321240970300690873954930997223404119037060129564372482995772148471270156497174266531215899243137864177002179295820539832292370880719357710849484275392186240322974912501901794792351939824366281424362155413385130482832538407053922194573806974629188122936439470433527842561461612880725034373448955766950925012982362282162328806630388218507353049069745593898017601786802369066449505569708552606791411764663752752643390497380492600272783447957736333241492517527907120791174491349375372250154974054017544676550999316553838347981090534227006853094995044137258595886382468371901450116182359801772034736672498011317307416197450179331500203291582302188956160381123532594757918424115887887490113973948694025839950224418416452592707344642992368093177998347869127775395306663536779953370322625605339111429127237932754901129432557979295576593423364675999350930358644593065144386441296602759555000774621944612418336577269595403046190531884498839931102367448749370232008386306583775873055094823562502841082093710849066835736768366343921677346122948356796350033516473199052030415248565988228969481338212652065179941091594821731347976455303347572634641178029040262730921746387099133224889096739698782047674453562870512464656989314957263392567669942715095325939621015720020359110565059488921721792701792889292092121474492502276750315212642246189973891269068641104055257899277860272841650857527246118548844875108131576302184198152284945662174002401803462729144179494204901825355604355119783851728326507527334936295246058839726646492042752965271537804219064189427238642060231779195974661154027919824130275984211288695248911273362791358270111803084693121164040593379940465494454923980615048760408383042674722991698747801744361139867422596497059555845567002914965208076265084296754480787245729738779929674972182054312621884208760775609414384232625887928529218923928769881059589010726987030020603468097429711227586384605849159695940809575422139000767355713035715074498009927571228424088641287958936234923892057625643848058656486550463694396681713550878446720895456355591498664961252230885101651077752326536318030609190991184755138011869054467983675841183244679753392232719996985176504296229954438502630834685021658464112656245635398262847268972239672877241649876207424258004674838545111944223605091998979644510279012010185124915896577647304023503467748144871084681380982272748181284186512416767917526158957374698210758977739221816664167288896004613136130698889108654915911992524591894994738281257717835544265320573303984529073948527515745884113702339181877185316362964484895501848739254658079160887694365442184943629177555670679035119176611222534513031843425665870742710003514201469728713996055815300442650867784847102933722859612166795415422314376450346062480367390193373547960445316374380191973332332186139811946808816443242222831909601295703306945583209592818668975863801145463439508821203215272398667485275458233065053710524472441575013397082721467471585130596301363399133382880607429322968213923606257954408090736248663649100918762090543840309243704571776236495417373295120784418774670849931266591938351606958417300220835262812224133767979935602262258641474808405291873655153715217769638004133920244919695195738328100947215767860387371945404724331796884570598720750448419238374025558085792271135076662530528712443793716207451315246336254411425490534757965066374692723131797277577196414787290893949398956097130022184337426207338073985789176593763306954013460083849185669356913840184860280499272195695243952279862925350173149376723971458553087402182058220744149156756641603023306066471393719755913673046493463011221463557778109050663019526811747818918594787402938635779220850252925983042258245437493197615110947979712971136018404341256392348376011000876232004038806049002113574728289162987995468699159897515980868139531124949483385081585037114094785807408711505381985057055298939306676054397941400201232171356496355365763573907612159680960555911652328612245325060867334749419777124232444061748246251479607379318618088019267787475107533368527598848536691744466831446411460757994976073314488090999570399669394029528274877984303160161667474766827725698804675549834170553694165657965325978253035998179854571150177366400446684865127117670857002852451903396336845629509505504338619156755401002846847241301415870683674292483938698143589041953650254547395903797817367810618262349057087251476166636788686055596642650654146241176341219823893573332073525211482253733129297774359197930565606375339323861295643394548771035665711669323215940577298630528412584095557453268167478961091384502169143275600268541128098008949998271103789895802939638285613633358352468804102505514001316261149748637731719141261273874687313901872708822650146820976538689286534207786907714211974787503377659457717007037165140730002724578980375206095316188023121744864148594408444988838580711401357725086315140405205664145555852755803902328141139046246678106735485982361008516700154820020941117417686307492291768226612002970154798126041446363505553656155082110723808192415812275207394545433343113198602361471385748856861338007493411179951764070319854361893102227374529483332228267938707202587266588460137866265605085850453357595005586689238842222015864404088141330343635961442833586237980604879438318150617348053264673513709261899627952870539526085441903064237057077740971291858208601170750185173101951330678927754272241708534832741966253592282037620384533507892400392138252554732403700461472551542338629704652682329088087324643810810976664371907658044944586503544155278323363426789795550708941719573983887374835073049517411434250376685261352220399733284886648300468555008999583276649236920516928654168286787750338581765508285514485149782914024899247840037414874676660940772812671326751760365688622559898582293056816264532972892236855713290180370915387839173704332901070171587119576474468257043689971287015451139985087925153736231278495395783989649311944912352583923373697218316909603377080998416292871637218046811291077732180307458220644328548066235955278235518854637899035285130255460456490884899192519372887844685841572736332165234371874784788979643283764755853476202267487242117032260736469461754119143780463883867748445884040773216242675954923686503811659066506300392208371723501417044852408415336603831920408268488969497836174329972787278318788818041012063453940544826121827132397702763780923705616918662081123260275798987099683111324036240268323935255875823684023210328508045085948846346488620353167294189131166872342988878234484830984408275546444346040497137151690006395889104754655914087862894511073152022672697473066631184162798385806656335226589494983325032515342657963657616268830864076494262793293421006318113935915488217284700231390111181304786592848030716778431821168256839074483481358541865904310564360905499298951606624128490478920534785260376543498236774201602251145673464507549342475265853657049431160417135811287342820823459320901132608733260980151929010095384113088678722573550338266447111568294241923204007325229308206766636539711774551456551498824689796264505002907950153136955284175905756697117907171551788273923400351937008858544106891307460828842362933721836923388464350739582516985711010446933447408058082743231235657603583780503292478392773204541619613389088440318987070210394011829294745589032771265588088096888277911906686309797084087747331758353384727289542386763563572917812734078433374562251349152875726995497873600985499230015828211689046278872587769678170032421286859595806658958546930370110819559234804841243637762226780335836539278324304136906054425811749450510038974290947996829526640784808767856657907013230927093445786096249317670433569825177173697163199505598615689437349057993938948389949471383901955103713705994969391717363029050270319439805751577905769167575793708178393432162904598685094564534146560197829750907634126417004108692039392878836871058309563287142092524942497816149924182258245606556474035775745846490946559103206923610277936910033059166931294287270663839995903600364686077762547388089465544584403443030496450822922181830597555453005419036861284830110718166191776749773115506814703978119733179873333342789107811532458439513871222353481992024908290790934908911564555194123326577224582721192259234460172666798623685861578720374018657638412886169620126546842148458598243890306721164354403567673560985222238582904666043534084669399041774584961414656498855009430553764928721607653424612992204915373431128310705398919221994467201640744495954232189528129473767472665995213964988545585649812540651113551904691251239930521903844303378422006654512887741066447579411037985841947447814669785820332609727107506922209829984110893743046659906302502698148234472403722030239303649022171135745468262436467101559125977687706076007130028469992665963718068618692147818108094367949748370847202917818777294372190196482159014972183076266933637481140464697977342095287509436605230783779938524420974744310765995156388100436636775270251600614258577577565010030616781272571247609209081735817730857067332895469777930468594628966018347908705054802466609310769038366049458032281667177976509509646381429902345368195774695732173183790488645200372681722849128387733066879164745516947268564733481609946935950318334537382982532942851812288633965787531525782879168445351535260544690434853598340376693703513297361113048106715298296479526820686269740394005818617977771382122448839772283812101827645772297669218638719122171021830365487078769787324039958197479884232711863843413440600933946719249872724147189222302656497217524735421065904957358247865572985632353033824782498206347927606262909949005599358509362926450891331102689015307201906086263595698835338026823840436154424493930027418098768780148245319348039760106491131401435972874027383373909541041123368623820981834852880663562582713754518288035499951960077191500163786063564693395500659928804364024132225028298617594814287035774961006589955055113348324688633370423712517353734076342155231919521153311558567919783739513655988689488724120312242099925943300179213881923990545517088677858134477453790602501850530352902090082713294902102801965893108567239762890896074526278124866789402082397467964176054447215880775850690196485183412001122585694254205779153847817210456471503890965003865176780249439166320138609389515320527068722714072577865127015311790816919214395612787528308856111979849337887484228801529982365920552141677542169225882988192022199073928158348492645952457385833411923590672654730270139357240620606380110699935121137189967643986509112398896344466629496661095553715482491740514192601168673127367159804792912813378231123811496769880452801354829147397374205355266611279908391848321328151737903009746350469920914592140574664763102365835214308384352392272252029475588748387966270276748016098494438699998746159276155349329574448108330674177147099328385494024598511613233605728417790374489878187032797561528210184021800344838028244755376744856790982534825873872674963211815564135455903204434080449467419244328728606902210966227062168594736560720042620600743027117456234389647868401286310451120873819258242153579022635378456609418309893425982847143297134645949198942106573855332429586076666899275342039487507735020111305236111091564584768310239334612357834441450681893342260995235094936757057702260568491469428990686159647734111563535872541988680642779566800022470941508340819168846339941475049820661752118543487238999574537249913025739061796362843081497788319171603854254737353042902969406822349907373768042615312818353185062109619953900485823445346431704502795526699055325048591795372365197380193895003552402947658061691731963751901148418333542331638845781140926599986399696130058001916792048958260197869548177391928181786573102501250840043406014262340754740245582607579261312902997215194433343219239945213780876777095083507102180366513603533187494689815971601415459087093435746761072234486088787209620935701727781994861059538800014915919927620782878937260697436176366657835555981936878459092678663773432034929362382675580191330883478072340898966633848585080919736095344759235142808319589981107305379102271730510930492035441348754794562510160380036401587392075787694707707838572864972240124186059446232109025577593699949683337567827547880471890529009322756610394049389998784857461682674764980402896657102087544848685609148798165602035963238515110747999904877796446551928226612664003363460655288478363886094568288256546561019965463661606941641267221764239985289468851657461195218058891478917051748045317601671825045087682118820910148034338809496443628509139975429679364912036157019885509283138864485292947253027670612040281403956517045159486354096702574438663034016390339398831740008178935707406653286815329917787834670522857555704490162932109269191915292420196518175297843370904064161386043825692711902849234165639075412555098066722713551383857691538282596116102476717438096736642065191816208461591030211520596898552373767679128564241875094072371413163417002079580647260134111294443467231046841342540287362765082641688501144277237841228831975942251212903523791997294614213159574130361372312066763515188771183669251099236704706136436569928522266740912362781508785498586131300470784958819192207421771630258225641450670147621470940945580992310384313297704107266874690941150059467976342369596499181872890667245136624492895759635721034111674308110477122968639119588034547332476308917393286549866492503666151378388707103585860860677254914064212832146888036475458505223869295127322953330859765168601107749566453153101166779175911955223461676685074231278494719732936369205099497094150530412567630825209355367543197290808084116805088927921242921146767217394820286871711066397913003104378132050136231197129505443625742507834094979493229660413395126073618636140037510959274886776657642012784890984530651364737572112513971388451271172252950135844515789230873716254979779058308882096922180100956669953918519466618262681733412514611283377906668936680113589215963182665008006692258475832750414629837040052859674702058438568034418406155269881569706143451708062235624409601614631919649155023088533382366952578617761037910817880352610898138510892911882339543085185403085152363164060014238497041025481922936292546270885716776513993173454545806036675959472653509511276913441005962223255161356824860348682240571285023232800580963551630772229449739865380026764114226850621262778969138003798877020728835482302948292124866653507063711111528471518609697506106643516819058497551816461309507289279025003602205772597248036083909613992170916370063189741569693262593923468472347048201273317188370742282941205978689518404646015079229080306693739746311556534749823126392597997335052317386767003582716617064897474959098940534822412784167214301471738032347766537012627931269354812371669297361490674769295440494512306710039760527039046812841748459222622090472969879301887862408903972382006595306835264685484207584914246919244839429230225491387065290643803742560026729287749162209004081974273224954641171668237796751737160296405413698319792551396876647250781835930503920291583247441869587594990935421675881105969898180339417443469033096982571387762904982653795844836790182397845378535927468981077503583932010437980313841413350808982934798426945422232916558096694381783522764530535567899686960588731688008637035073885853064461500372941262305214230317007391637588926659774566476453513974527114343604270375282416288558923769224136472278738162154867265969048881371394292878085039839558200401596082808449573485587279454295839038846243317818051615485185108575681508930511350293928588315750040638604840870184872303420262454198519040611063170699408613106749577099149657557323555843312879105483745982289813445170986840170656906952611579017198885797715994244157645232801531894955788140710329357455535744739862838255821009288913089709254747172913416777560383187120109094478542126215287572006013531048511323738250025853197284137994446906876844266455637033293970114745987909280493058567096192888112487922629371349358242705363782464079901621869122563867661230549597320445766664117567356858982493706914468228579327442577981832655615085404601725738587663767793074779416091013123643503750088986733866936026018492682417003841726631781870115998051626356132746864491979048393241396792177959183601227775039492271937641072578287103237670023670174142041708403878773063967547311121880668324898959337821173457822432375077362465635827331401751216341516720622232427757488844934745004237477956282630293800652204809496638666902085641061875282387773782886256204980569344161910615146695155217953481778615455762281263808681640897609098520349867475681833770060126074067777514674135474842739813637700643872212977034814277335868150730996369610682151319817731031108197099903880456397199114689579856905509618810234649754070081889961103250537372028013755347381134686182039843314050739590030711736435644409618072308286171724438760613587609200599071129998222254348606217446491407888169515850681077046004063964183391336805840208979504628640401815465930378104897329697250144024840325904496010734080469279293546086300684457306641496396919734747822314201142143817470295054934504823574863914441871680222514324295545903450364967741237299559223474491367517281148863301844330867812263198319697569057021458530122541234329116368115400585018455599504288547020538136182086353908337789953820078097436381141347665461399868603207046127835658129796293518712000929233457438915442865727572112610311342443449414306364687138284862561620058258467801198705300363321796015372387884603619085253689987600837687632178871708388218908334235159828989737080218029388920750156454672289146399105398117545311932992748561062154535885098519495499931424363078099932165477972784845732889820554435332049931036005362711384247965938593249829660802920813739797809579547027827974774066767593385141615943797582605083307054776009054329721178210922924125996424821951263602128171593462594300714638562772756380845360597389984622570409576018663676134069339773528491641240030040587790425716908505829342300292323900935429736382894158360924208532316542019001485559567565575355119553131951109351462722639432092065295908089256749879023162117921580394137823665524710222387958650262758391410588183572450445448512551522110020038422161950505865013796816682186190644212997152179453201095127525235927464056055601912452477861957347934615838515724731087045582656800204350703070740350249321224120597964876671967831740773225019476806254571936743391318665307466831298876962659812775248799819858525948114210094564237743111834226486238104304190209431360066933879880418028822641635339432339803739458484613123992041159561065357813473682465610420958827874555295880274952435087708124544140751317112170378574161140287762279137226982498262814361365424416753712584958896960307970056205776999742167811986596714128631073045319048136751917021592841121781630790996730534620998786554920078530705886357002257070416753568410368296111051093028543212173423709689869806779664549818819079020359765389775183270642967166523527347123722842069139014211149517261279841402938573754258537599879159210860509273994373981465551299137183202114488258454259708336950049029858806367906154001824528868818102966134042878557179830675547168932300919729435137422645428165099065566702593080051186700541814493046747046083515145163409213180570414116482913882863947691012114147431909568308462015158634694497275415387108614514434641420818262620183788089940443447310041699503265695151011500628851009343574977639419224503015149885301053970711179174075974330661152903342728572688592895269746593046941302327346056388456103300602427244497950865430964401341730925015828357121487608245201605458448332849620373285094166873249660021391853579416134013889084139581253748021194471558407484468546402141282140073008925082767957669027004415409477272191053097988663665194201907953065899770606918576342882244092302899759723802804612251749996458736251750380228749837717642708636006180811268434409516680749902415349436560407912858033514604495848998252384341930904198839235707247719972636638002572271400680875501603958650082894732073676312096911705896980392530356345901862028224411109643021156893329801139092915738479310063027812518363481710715094815936140336483139906616993030140420878665668153590917059975744678604457718602118244849677814427499218163759780846769731428548690810163041780334790142835028384893110601136736826461017405518152182649701839034989422971989506624785457503902139460179238242559922651755269102011271345034557297077484975040792578371540015221912151629766273787904736926435397610503499413615227001825302981750633462013749562178368810103519893333478538417137191286153142686793534379585528300709654654532619470889754150656518326610823371039937539499814639071304255191900483567117135894910215423228719504578555559336344792517426114127961802667843081779109397308522540351780036932022361404979033849579398671420022534834262026856584302800150530145678243497680901068743855164446865004782259819361620776865113109122057262042889727466563475772073523424321223487405676020207250899480910757809504776344335802622122928172629805173336861126498534576962008393211668163369793488004574003737933242284519331059808316711884316215336613087433832119438004445701023589529620284089379682375867152751462079798256814729228374560869596441763847265215955566759273767594852483530378992984500367981505910626200053235585293398273790602222932381727737539958459030887047745476408849595336344208969163399359275046988725021545776208012015826956875491429256100067827859118465783601009349777807467063425415910097760865352170421540564843509507358841981157315070790183694601314797878233840634562620030074754187973716788956777334830151791296278067068491829433572544173968652584804385006998989505750951049903678829723637839245313750045148876787729955467489544035077526475228233007571044431007160953945469170316184343584703159829699764128180636743698889008862799329944159648242950594106288907686850363870321319732392618673126270748075685220135531762429544651735993122110090159158376228969710633918303612345278521644260843396675100394368232327362014057502292648988881406370129115440361524372499266120313862285766429194842942742584536323492161742896820907931978288516831822727928675785098165119243555269460479193980517520323490412592147435239995831518373800856141900819074398948567909471392116727975122879885124489927670278200613030551541648720104307200385876348420305724215112189467399751466096380127312898288639692227542091994655632489573156860861146798330448950989789470926043286737985409116469402551752476173927042417921621479755516030517054264954283006871777437496240667525255219522917338107158174515161057476325483296375322260577924573032103977969087325777921135097791398032869914722731879204835412442167332133105480454436747025645104663156787405648891366495309129765485723174831510953031676094629655716213469726320697490124712539605503006612226355240300764687832394463425246648271907568791358416816309909221024630211858368671840391506045391410512432759628488426253136853158751490771584456990052985781160315745581358342644027144155120463600586640699298137487407642233197065151970088091377015339735710707888796647639922170592113915568735665293534720790616579122555787966758700993147620134084197758493189272368392079489732392407112100703439007904620812308905392243373638581566244364898879616952499908433381487502075113368063278128204058050917217318039363535005902554041808557472960011097630767339464497025025353322299787218238419751522581915009307827526297318762409581258587313320489899077244979215887434645929457255427328184857120947155547182347810802045833447505709801927389954603011492929924262129426994402907575154430822706212756094562931938557957021305397375105888660623734939597011817597049406602200210425143456014248481446841955096549643371761777800107669985291078779401912612432338317305625990554665620834843238958083006386403572380608467459533591625459509738705059213122428822584241165011945331866129809987965541338088427361804942356490233895822952321247352236726484316739203677307119241948911663012476072378329399080427261757956959208662972618031306782937682066396395502668839454706208697376731518471364042318461507554433094547806191214133307612653904353741254672517788583887486522072406810766087247502698325162705672195884568862798027462143198806564356085346994471735936856526163092594142210195452065963784756896313899419386952028520124484122207474719024369884689194920722475235568922599605299924065973430190625043454341936548372860805226113429147341418712691581928408426195060189640453851152582760869591574048814208022798649395556719694270010848270934345000725567084452749339855439366582022626676278372701959819646511360094067107936094043043767022429935393753011373810085659939380008781792935988556557799796824602025220485612201278446269904443890318967757889619457784643700339854017536065383306579177911077428253080572542162052669072955832361608574015485043238215692002541409385809218452583987469256929757976993771744075756712697780523800420189493403088154816114384743376990730844042213993365107197445359257134461061255323237520824093659273981777784171724818673330577447281369658038001057367024695636341029855727027393534693174877039423408083894097768392049847905418944101130907444043824109162161049927120593210428434822244126863578432547851654699430557203062894470624036552277342127490501385981372346417634982094721172666231839122468316994405516837165447629669609976774593583533345407112102002214875217461355477611106640714430710255370477625349324159818741488004592681007309479675243982189722201568147919072053460507764892632990184069925429336399319827469243497137994415816904097293202388441236680229184647068014111204052514013783368366432901374741783969229786966556118502496048755978050128827619856330220219589057570549399482103223711417440948274148645282026628831956163457196499527451034945704979480998031480449187649508206370216431064336721898806235654830253032677640256453338877574733509946389352268359585821169513461422171154097940695042681184217703828149244578568403871938357792125056066985669701104971058779698523625352749820540858303350334344998366562454928501405367251847558823957975829103266299994974648609412967655044098783538959998790771634947273386551666178810096759803598156433456338872316232814368464249539289885642067354737213307525154689256555320713529479077889985879908293088923513437822218562497115862820248871029139535965019357735800716900294743927957545040184484708371137810890888825031363238198431573056031479570657809703735837114584983519344339991468858505675054626007785235532148544565812724572390748845519923350534437958662825292621657777786511538200571569913243743245313918999276989486894497678148511098351681869960129112373144616233967512111335310896617994894413701799810779294664087052353338670732373950805241976468771441393274016142612950315210176636977795752644756154149647409626102317034795740265940726115071576485254989091036545347377130571891920515043821748050440754859060594814152650299290826576747814764669752173833348481208569912446282927316146715635355490330749153174517448173974271336193095786870498050025464619677271805302152786737471035266806880674953407803793365537993512804690045927888694765226007810799473849604738285900524733619575778875565809859432525437981636071890903159844947431305335859348618678308962011370480991098495630495215410588370924987362772487668075652367409267356983414302633588105342074479222888764101863707937455606841494121867445736480703771342822628869767089030926560888014063747282040444913623986983076397172936090202236433045660723226893352416466356707353476874905891088912158272181535918956830959897810487938648518040776516024187696761257549679861455058209143908581488966257209875348002085193279597974769846010314965373589681739112106055725707412171160966561899048899612793795893636533071339178008044612496306465817064683969061258284636154915480708591909358061838338101132741275678597370853910624943800907411716891441515527067996868136656227969505811133554399576256833385839189151813464916565965722468510207431492318036320341467926695363608574025985769506112221307963135501026700040042210338281637890108744756399309009955258047203882162426654372796116046753607518751165878433260304687404393621112391674147262931561612031147067332693989421456019801921107249521640901414939182753997317468932118302026227417303877541583867351359840302507496547412709738195629199949437727896934283370933297936160129442502613095496596959059738760479118920543415792120797998385982412645624117868849767691648947228751307628491249801473259363633265296689249408647149097725631889367450446194916629730907320411825953502809883757959541310271408618799106750070887290889484215641515323501987156908161138318551002683304673821735762623733709807785484527020625775794076216460811542149846428404913654512816241348777358121697787313716442887048973686164657668863278528522800397276191044747658524887411586763240391077673806186632999194398476059393081959779133876157612948161504356968222780215207591045120640340637937003738964750801617881558013430803560170534195249352403212634985040487087573253297527174496813954466173698119685945256822756763183461120379226218102679132767476648485025794549795300760526396633229020859270788595012290549472051566545195873231440131946709946312535632713903914939826780470670526076868693768234879495803432095181442698367501080020663502936940941434940168146033640141080615329268157395404821663615200911688296251015375121867480817930403448615979752876701649606184015961555635548798571905151406829414681687933211504950271801429591349886179257665377647573410887821379489400139655009959775344136930321050597624953888432220990884626591814953994429831881518148058794637816433750598240734249402555229988383257878474392538336707577533853847807138478780060469433985289392494592605658466532119157837580805054185214733510395001558697520062527520289450324138180983008129863803105521047734900323796338668701578613898550027762158294248465114024070689545145944050845228343129414217032663845244977579598123991406440170395048620448574815604095514608754285539975492839076864463794988998590193585695442215305942551109662035191233844632086881371600388458525344488142482782073077225202994780223698115273881058102188524111419762488439779578464718009072929455704378563862797293360557282689991935556077643515731824488919701276244871942304349349355176581003958633851177059149095589623528000086989205248859849522501919072229160223857712967559224586864903523099719917022542658283489557315238870975514373639569755619075134017361775819751747256806050696621187741320856546019135459180936680988356656858966699996347060369935743496737151056233769148523556887958759692204849669990947919056747765985721856091336007734349167585350154754870360676526714834263782581589832645912842597134598150816713698664495561792600342422126468679035135739483936441746395218064461852619064043667979651145349553352398524641270027551586691051360090961004233795107925646520660630756725713533120229958039787775018288491437307435333864505995022124920696657921330782029345881455274998199206762998856367394483973704537001158612874353753448535742198233163930340201514794218713345909673281035997951909582850439981138920867645239298351828442171632950620862795293693754409879229628977099150892277046687662477646125830481745827074226315451031924357242652846534562619816030461720943257004809194749602562924525724032234290083818398982274496568943893229386581052890306367652488150088816393718413718850697603514459700949308155498069640530949244561038247516572006518484107294128933504432053278765584112209689525997294616504682866062769734823523670440594293501255690971167445509377984041812013030987381367374815556282511149777341790182879050021490099578144968712628390189518662104912204096320042280189875246885990630307257077688848951131340242234050096903040611383085842648062593964329338834219911049896107866852782509844148610429850613848829458821639296118385088049471179698894589963199075674676554227100898366303729246580836004125196265823556169689939191659021823448638211654635839646913710902716913055659914861686784967692977969927352630722475367407417132630684681235046813860785390059143523691661064867278738960245518309797519901806535723513387236771721396066633965169047771057413668332488866214278029481645333294202091291432640651768635515344867164943502825035597097179908823662550617515127047382682243093733057026450156938306268473835729527815648858720116184581472252562934459484452720885558604785197102988511021672670027134595828241235641777416149718028165772357755813043931533044840442605608547898722565522587721397431581724569536149966053968608466193598976141374424376445119968860681460388670696051865376772358490422746155969098827204172458123711433162332468123369640794104831227062752853672220034009806975823069158962437575736815928426134479652018974418022900570958646304504137607050194887939564235690418085851580017162522682623108860384515149812136621478533019851679588801690863362788314315748380405846217922050287130930806358859847893135486838711854258565374507388227594751173101467160088080825991659690747382798889385687460097325039109159394142778525439548961152511275241312184794794856102499165838632333181387988929887875202693347726103388572972822445656224915375121368794513434975878888103428078850385511771959645143363081904378920416408606131606903435809560828564797966431923470123749539679535818880436791145710195987815131081578322962094107141360502749540391641019577649040687657612755933157091280374279501016799494737375947223007500153583305297233347251845590342840946187156523271090496356825681196411019329758573437309762209427945079595389375568029200232266215803280809552136487467736340965218523486707300857166670116622682501523334826186389200328104904086752707215951595531348142120602757634934315115964165679441970193096053175003015921386200027701115154527487148909893908497582581977191405141391524510622548069152150159976360637712763425689180329881764317089583580741774232721766287995179626987667368598367647673743171581234596504707453849165932925249998351341421117867329482235737176712717079291104635470887411680302746891397821658320086067452100360647479555819503990420223090397683972251720190758215880527163205991262000813718924359363543439895538225733344120942637186710454229739473611054484955565410354202766579654509006157463032105891848188300875989832414361448843819246258600686284442570225048297895876660083448283112645223435873573086497971715227546945273374520035602246756738389757078111737622155130866386495541794950706023735774270985612032487699021855397633941195735121913183918605531169191674824414583028980151337895817701297425362615323235476438644653837356430649764247603659189896793183841647808889023471699419620677818659147309251575643802079233927320360142933770248603182880944991011133139953551865449168181245374808400167474721892776941088880435473463883298530225946106922269481683081430854976701591961776909244850668846629315530856824634168876035423478134421625856561891957859128356451499579265451243509026564577777063149799369327207498984457986438447859175900399579061180555511354688838075375234652980119350284790142127206588768053785855947853573881314582935813098767901341540446645308370768985360311552318049785661142006984063019557107266850584146866528826059936411179531004387313213907564303619406957295978690501566325049966982791199551077860772536301386726368417902525703322945556515572202873151872397483168439380073757898836727868353641531672108753631733931070726559797210094854392639145825463546975627348767061594071658538965479590775072418670983016290529729485429105883464793130193161326945175698201395270111029812532269797806563765571203138655609020050599899330265018804138711345268573533105738707974494470870012887841331425777330559980598410154340471619237659761113403817406329588348426205627820101626396990674803433680455017505568554702509744002555381669353487373189710602817961419082459461405578301951254262040118745869240954292186839397212659081357155924167550464922815196037705047797108568196870682804086049141908024079749282330891807007409232191493032036954267394232089964609650404025826877484955446654683372539640870054223912561383685814176735711025792167515888989277574432346445917870076610631000159992627071685159171073843909752217870880585063175769172356854230725488252987854444279040150199654059053925463821518044119671713154416375787202839312215605141448922984240551543644665994226502094837680614864145237915981144137483297174381821152799054422608522850550409412237403374664988114223103771921568549750039194641536646047970041065209597598888672998089083327402348113170216031879771733282531187276299842442049391550603950749053430269423442465289945386234295719340352714778359295126351846746792928505280184312840619655943071306148776466829383298787495729382863103594512597925867632524504780994093209111713160726500624534410418097828490956075537033855774369154004837128851998836142361152187429011726023545378766841161164919520437541268350848331475381809776792101812060888966390980219347010531146880447938548521613040314301462158204280872304517685773332721231459549860699766510965842583269020337235022125977078205023725145029437396579128398647386567271663956824226832904429592012543167241947657791854285341910170504591428616999081788281052341415737457937105115020658179771300325743032072544790061962417777137998588348613963425722151310106496464269268541613778526567561560186658600741080972729744659525093317964799157315742695053321770674156480293395341883915230315727983063719903933619194693758652712162302415345302113453171639367454044041542766735434891641876631644288313058061068836723608689664886081801547017786657278501953784568531257977287753771737870356305669123270432293895859105602798765681076009461095392532542285414695134779170099695259661241292838888474281805577068770073398627717443296208698274320978691609290010655430663592402356174674279266437624367843007672402436917480617838271073456468467770124158320793227107807378208530795350653005930138271249137768626879731567974356263224634220228460029974068997864704003385689694124428433273763372197859272681368489338378621015300508648179261837388554314170137731800179669097018131825090497288494345105049016555428556662043538677745611253786339181474408176600209170200122763708763038613059413286762107818526646920479111470481656067752159602857072739758347675377646295131567489945009162397109020498944500870361269150806381203279737373102289869614683844336938449228302029665830856125484118432554664588679323481338391947248620665383053439206400354878985028066987963731764373786773172100004356517519395791752126971125893515814214693896789525921171393124401482767474977492221617238211410910980958444748230195008472100857938752663226288904139852282107469874391440206400897752924303733871998589265527593764124381280464934841805358127157084381361696218165079585853459401028574593480138846856770548634416677502327974299927698770566792080801444583605060482334230157345553474788012282869068761099352984568914541176423946524852812048390945893459983445451879662405129962138645341622008441022294955810541964433365326260618334955828186813679469967172713293224737796539111369112139871051778850942688543137456492985671351493544201404637297916035963668246424763148582867497476353096214453271214343620982119345413609137372221983333288233784879675109206130198719481856415970346199076842593633419685151864428523240767002292845343624792759005575988220768162420076623509723716974403982035924685382204906299261537210623917297814408612372893244012570606367586569610190337323380451839655646558806707663434147610507260999122948206140734985677414743565944896283888412114849357905152820605209162221130851753053363905997672956750819015219030311805792314271724434633410995310043451063126476596224919079296499240075377171409996344898802902465781940063964735755920305322058889897288982339788861231019177116972350686194603678674737090910428119264996000002025324441918482725502266789432770683354619402465610291984900413888737601250006216550336309296512939204664792313135977496416369824595179807262103177246272832830997128802876258077632846134930848919894451840588049107161646075116580262886908696056771522587006228015790538593753055177582701192158645666483923434384422880670532076941720204995860076710741906497085139381877162237442603170036966714916993875683130536595102576904774310025823523685215524636858041041589918282660920342619165741965785777385835944695387889379995188142640821569811443373356927947799923504854468437397971425008293569927618403608435260513167354224258890026382367618615273741648947542755148761968962702837927439186166459500340827270303057795583812317509310281676173332152047420175641815477007647477878390023713261149850881151750927507473775886802183918353541424941778633435145220044521895765252082998474485525602192512721102805870765213962012833779279097376104681509115721341567005195428560795207961264308976294710154799201392872948265756513931953862008033958925693926605739995682546620992016924118117810276040065290366919227731997628485728713000886369290773279224570626489692432969381392526873375286043686063241988019291508059733980937177460053265868660972930830164486475698065037782637800499999812923768814119311187004374832596155378380462371687385129291493469582004921575526665372235171217475518900989217500816408747502218294969218194731311902092040823234489119230030935229955853902577603031646766641395979919329882508584315354704786014801418810814967952438396090777900052551212628325866284871324668659305705653230490361093196969488988494313411536021770023446846799759071510021999959224634101822125598773478188893379708614923131864181773626557960928850281726300873935859616077396574113802936584555302962789346349504124458891369298150144208242902932153252021452286857597421766199257209875144220369841476480673773342991521151256638885166573668126426980834280073545179180411086396856468309140228686757319769107987554406696406696425350206890812589883883789544549144936781595355947528389890526955322162907410366208277389896276824743144787211143498625090032076706717962130365928472855455305330676882899514614269848129244527468493566338571489642818241224901426957067307625143089943382769315550218638623860016652021028162331124604077261656231509654569627674106805253640494173205514269043775911292703013603814308713820239709393929337098575642942654433299988982818261124906332926222448385076726124011318299272136160093774491849069404550195318572043333067677245463312834441977517345562280424487395621711974837098837899392357513949678433645575650426366317127487191513740795036774679868438910992870881175219032398031352778312821035638310042334843139265391288320917895412673579682623709043291137305939599829433848488481940203895351392611083921541923619992154244152709482484140241611270531092124595600682087743508678830666996418485759080303476297970658507966403297728140068170157301061134512892754043431754592369339371633108106286401872102634754777452676009057371768236949308276717993791937536246923470616247300489163479464186219960037470011184869456306850280060617066953566172405307827990638537465379430795444874834821867981728618024750237404359999918354128503040272735887992480265026431086889558524721233262317804400008091073257418284076309920042314726693622740722545952627025031360404473992424519890417440951168415333685265633479480131943091874888417549783871318870944022532062244324015792052071886569130330479313905249738851872651350296390128135703766897857740029835054399984095662805171484655242980236066896815449217816196050225289982988044322691360248206814326915106823892790877983372762838588761924572882534280046582783035689254642955829277195538297304418276172890166529424006834165861964964067134645326324547034534772829241531085052048239904277535559461734444670108917426338063917023129260551592025128309154823025286350347150496090878070173114088881758938490903616850126929260677231091004552622031562605617335393554063435022917485184324305674645496642700438547254874908497006200117424195936255032173105494979015796847337253136782109260437339844713069469657302072744137626873420120518076886529551855097481282290436839006686318402233075425116688572174156299140109263572031269788347913425182820118251974681470387623290542588911970371814987137328971362743957471657335553721436439816058782296222957269765331226708781143949315329390005731731605322972481334495829238374614055937159513445531347407828464196752001593997633707292125278648138508804859831130335464120739305410597335713851586958206817657618189858184196737169648484367754252316577268315715541203815595045782405385448168897599714039349181588834951986567438248246713252853367850603700880963144216409404100807954941208915081063278620432271128436638359607872401084417711980359699278654096014047492780892490598680476764342553915606272543679136664752545076466063338721452489806616089028693983378972275315378602029043158858120637556040949413483207190549249188695013844681494990984751539660771884790684145083511352791421978742301457403460661616688875624664985412010126498197985732292825983817021176696093390563145917911563308147164899842048045453867760667812906857462010652164089107051541347458171645963201766837635004671035936079146059103192484230793404157901684498586515336397543166105695675881593442198249933451656861283339974972349505287908214290048358027852404555057195440087843394592979586824522634500104012630615031480259864068105303622267789895102891124922040332626525532144286083268016910897256925815733321397695593373258790525665182775585157008728070402828335200364062278790523030118488960288159593139541309023307035132364195688786158239390008695989653601988011375860349393551935443500366882445143257779945997435086909991707077047805436459398877389808362053232468992168141491110138501862542608682930196309449066638159407192081142602671621182168726898873264500473565450550424547593384542723216376228272636598343075089772138569065528927403382832556515887493746781190244859515221093589602477043924477667452056049831085624841282213778541703164079619999148559497298817255097129909077004213100159084149569478332521849466515829200336490031595675833059427976627584276168665279186689368537800588673347164581430734123273557315761676337857152896408526896632627291873551625069888080159776159318645541625353376090654736444666535236498391299373742631827358229846437871468493601682873265768463919214437202374628593536819088263222966866767233681208575603006854261205281135260254235136226223343462821136410602670551851683321407871517981950266661262695618803536269339768208674345962236345255388765731149548714562796395656573149111652054816562643631823913678020245328544512716877884835793820498358416042521181747661658188580839660401498133221647064894743538601503607035496905739083329687939976681640577447257500338322992860342642659000804134236361179695882695493967569545625002111294565332642470734448141831692040753019354826296798707884892957816718275226296073108047252671375052261991645666076695025633929694364480077299945539130678958664870768237700395384404251414103342395644682164207038437870035719092571445646309373012691612330113690501202725844671984011405130775791658035546635223584821442112825856590433993426010633069076287914959395485483225645903120306699330286834930532706767086657977968454021206203942302183315952884926660022857854649031458211976680937812873534747108607578200636575856464483215443171706745117028680606601869881955116456907248763994260115461019918677608046506383531538008616833327805883557249242406280956525762614952572885160548020610532070930100646024429549412154562790676206140109298209951893073548852354609901418679798441503656865845312913428094120009985244100549267425871830519999603660866667513611926712691409886003720537702132746332455409937764070799459892003798488574770883427870963761880894442645598962599618707467574006515746339748263316515099277330292357547316763477549718935773287936456479410564295946471401766535042943338731072094230977446751180949112070276182022303603698362273171414142628647598976952966680917631899618978113271215849224037389406749716753228738405265699253098226778063807868970194236911797206352934461963074661323327134179385805612838985885824179647785237066679729993080029291673088265292432286530835312000894518179734543144092891135948275753844064175623367020542168952101291820150639906876892274119546636917732289233090708895992367200005366127444032243338790825143510017678657391547932533661593212003544082626337951078210798325685876806553571877799066282342295816555562844789289041463334553801015202525566280877442942544472716192871015690626456495866319638563978808005553976845327951060189311455186297004082763402609850931419828154733534225130887658038852512476271751565333375757604906238636179498125964602160289461355903904521075048846077362987411281566391950590938564960775367243891258932850537909524535055192842192556873457612189834594143055505736845617676171621937157597855673866194874840154546431999486146793540731698780429283697117720759263650243552473571887259811194375784397053056807691711683840411195875741420745490972487371527971492054873393039095641095550030746532936590964313619015961390354851635869703438374711846526124973235631589732010924585153128386410655661999244680455563147293863441435810616065412861194407930838177534002557823228065998175500940993253319413532659988374641680791879347977328869212605028301191174280573711187167803502683776992218684263933718329093469705305864005105844995985896525986315691799133945858931899898265459799530770639418129106869780319751075672796155374379527383334844306384469196361110427169034037441611439207133275482260945834821780010417029359113533197013195381857822220900075755003515841346265002377542727524366930320242027667492254847631663426799343911642901868605592148619350566587002162018402019365414892673557827413693759677237634090806574541422156423626279652997828731404976398871993284722769526956837588868501486299724674468589062832344010243375735262171119860618634397183579837035070422004832574486241148483672838779889729289629157851201909407046493250113192158073595260135205428477827274844425334765215094904791180130741286270200033639119876027572052732277937863321272524168022963716398152546155239817277758971719759324541407419729163070072330384207253317910544283508663038494653327620068705026824231714398236332704496502685030732149872557581408813136914033323935547400195977829503293091489482269317546325783828946860550632740007415510045138036504127246990750734961118284472291550297427687721054153517815253279021706406293677375960797337212817162541631776071446646192450012717109198599929835275682531552852818484168324897260973235306366601479872918484767450686256281975907552495880690866344940597587271894025980722585529927527997720889869311627397623244288833301669048662712631397105494412055828671975287138532950988262942690195640399733416863127708839940756719834280556874345281337920470128592460057421618642636800140659048288008969630557799542063648221020168707084779725108701181135130904528252213717503266332050157020821540845803988473914547857243055274720519249131681182472943126278138463891312912026942136933643071153815566306644254164906889006249831076569001491478339659777470824686862332658709453990262211044354203423602608410791593876279011245222398966222966919113443441178886464917133972343940198123844286596387686038676790558375232035414581508842198361328280702334435673888561526852855790448470567155992841689118874810634913896762942718390246661900716535628052704791352036067204439920569281207465203882928548468212440759235951356391246933018653871920257659854454372824055386144665558005719501877057860797155651234412985612591599100348317077103669834462518623916619377467358526751928417813012359988841223353185146182714156785134161332065020812340378945937598025790742047699556525969371502782125509111369035130919796211216019516522754171729681214362420200062206502282114434560809497784679563482685351603191672645506755899991600950944886819178363734112936326961350926520040496424438145481009780194296667376132968639102297152398358742423885812045799765032333671183726094993669173300277421262770748559716900654950470792529303680276831614722002692046284913750311870837080263943760901595790787187314983131872551645238901381209041974529026119813278459819548454182701259516515003341952178420912948832413213623690534218224134850043266084305119396465933486717327347897399939636962176429731399566677862590077741984961838263677703128720555904152787147748366813965609758044051837853052898815725790439039615166702653314263366753553112347131650984705297598266382022972146345488902692745297260413681498861564332569766192882581420283960985470370255427014475180357832437996369438127804525071986081226125683863521468792809795390318038992962290366120694007170402908792252986215848552927381480475187924242814491666808226783499404356273073468738459818853896010608932309582536354933099654409444999557425027694565618208009988660235061888456377816782182247928035125394621705878831349136629322160695724534015851643011346379305442633761021195265066955919406414241902940825317810363033874495096910125431418910073902713613656495816968230591731160271237084740609950544536276090670968966990457300719769259608293567093614856895432533461415289242857668170484950343234281349705664906259477691729849923286920483841369626181458692640230891314232852813399893673122887132741397962897540336849768164194846110167033173232628911308153304644444175195371952425949483586030792918874089492123097316272854761434456257579079858383337041223035225136595542633742306382195489510000453402667773235601034456421637115221522257988009320410404430719919650192215650488387572698842714529131673261845975630346490830191814004170356436846334667239862874908857358607723649295759563897911691715742731818412422950532394837426086584871186682023767644579584663057618581842343133761745078003394611460906286132010417959809011041986778989046876803771078090649972857942626698417011151871226288939854918600763006445465296464028353802931917053538448812455065902147770003665594735130969743260039936397415967445651776326687530557932851933427328597985547382453852833286460273700565076556957590436742876080614113718032839301848063697935367661779592998083540151033495688198118986195494407746834200911370858615220306434510753024095449323573591155463072880440354752313842009802566863766121187948407881958599577247989386603204774734775350660418535033925847772046128200988648635490025531758384959039051013832592247830185438130613493205879995234715124236871727792886391920555904967464894713678102081721397351904100343065021207070776023029776762220408841195668688256220130852817675436903885236263027872468677455135995436943316393943316555647753102693814756624197286640555687799397569472793924153073624615812278435080518082434752737649466294894390631773180058922556958488243455755203712636314366252501839496394123065496266136965746010669413236972437134729251054842715461965225588422671124634613042483882790056634973763791566908533936477522323953535269160862327043699947512770317268348081399629000110162357936465505916646098672491662879579209693573217778702504001323812609809857369878380954826328530815911576709024651187722724445249627351389758836472700401538749347893718881619365323448887897707764582361345990031603715436475807147974022412738346145864195021371255749198118920909421390471910932258907426419532734000896566759123416865549791445402488209130902147447588783122078639459042325677168733662920090237038315860923323863346007157585939906540250232431245215237920752079302039171815171365854272318896806096631290464138698877975579403371711270699356512444288758735847661041289013923257804399944845960900506233140803881150282037966143758367421104153691842141566042036843165464431115193127536964486929282751706311089389693839270738426617769315553796269154546052933199411618670910810556154330906291654280460113427930084592684807467857493156010262802296743408422939205755298089156845382037290670130616681258134991135207508692846025562600668365969117054104357667161126962529458547004094383934752826146054193537510819834849953259038914508663743001111529566670002330933838097670696544294582627779117768594993102270867990037485050468305851298372523684645408655288719692346073503980104073221784144808185672627373763645522494040325136640154695976992950617224187538239028357136115867827978337419386950969124920053298235021095875626349684245469444869990460561498882023743402853155358747827162325382464414252395903936157600296685660580417732822870968426397489457985116694667980401454682180334441945407378492384430010503462782909970043050174114154426084645496286667824459220440037867553493575737787452325920868407619522847318139403016645411274272211947522234845142941939947784596478548988202531533408060538461794807027247341619797105458818790873839262572598498589945812995299638629343492355933964892580645608080353305881232656447580511078982947266629180552427232545944949352564632115246494927743042667720101036115341755280351464998369007891891864901995490130442037450352970228434124995923313411179770643922373385896291520039862249112408648884801487382906401997267788172078879042105975491742315976127982513629418618395222754029230649001516845256797172318088899767835149252109530289021911059573679098516086185591569479856126565845749515830673167085030057749826458692551881689134219628765856523349444159661614556951629962251281506498094758697203220800118469721857195366882665069399218778769523993202529364411106779606843182179244570713183203251294585372330540512828246539652763620107877030373326438667612437372382956996095535454399474054046368370356196016215043448064186174440098805837261144343855061090594779032701741076623816275713310088782083347302716821366991932732651813998907877152027103302582663653238498521618382272960375186671902151709407067758970612845311054884160947973721597868369856990136398229328386498485106964934241715535773187502953002140324703058009526439385294129815239718234584297534790995604962503232552832520542343677287632502964559842985985816992964412755060671743234557895219502561288031030255023581958556487533317997101000419987467850306093294607426292738636654743772430868187758349960627634032030419356732354489783730493427520826361455039376734266695987767303982286180336357890310961616886015126910329119040599983987192325595986873345889984439602654262201198598380803972290736091531877252070510734668592752040002966942176330518516677229308835032112907280517075690778704085974777354125013076376848580783873371299199524087971345188191700989134355538366028817426207557507266240768059783042051509731244939125089647385142627550973412137415917583935886217054944264524806760466816075969645074162447316323200991925774727955276282342889031466041775587868997416910448836642327120066220883774751111896531069626737681428719425281742319129212784632226653266103897673680790808027265140656510604426377278859975050701068296257446097452511179061423347696548674110886434857621380147649254107249027482786472376546621701437203389325122997829474102270845180681274810348786921995137617795558494933901501235325263265966039139994274389160212272120317966974760478981088647855858174084518305750177450825295651639995815549594907129630351305948070447767164884191458274566812713469864573943479835665919440876350993494898882525878572590206378040351538110636605577988091524162179386984742901515627343546452764165848493729631253501488896708069993594823850957128833304912096295490301648809435396192072453812920044982185270640691985948933431522979885831771958287694641330685047271581964752395278687732208131103122371182331323793695548275833789093278663034340279918326349820048864031940121977323567308955212550705773266643890681371348638720843978912313281979764832833701198293844655088546106444331577184836338047059860673175794320167091537659384666893241854186683007085440243499007919679033319676435418958811000692831406055771120180702508863072178383340932969262015286843112650759479853448417707144873884206696299929382504466524885049125320318983897832148250493900535551100670529926813180267377898057251273711673283304489414219831240476387065174876357942436933981211783369040569980250031066106457102452155726362343158402265097118392834883161068875687080953378347253507403263822057885407371597745596711835282359036448690459766164018087827529087999033478391461724911686327589956097071467805557335235114719073537902338494391151006349687302832660492866701028525951550338686066296822152022522391458581263949807356300801564938781878951932860126321679612390290389355964212122570299088548078118243555891802919554372508324672325129713485591784853535969628025216938395526447465806055378703356480009452615759978572578612450108392690752567235175639426497394885929043015468645753920670142165646823623578446596595204659717002238264784243339597169411917207983161081867388793887496115948636095135585007221778207022154363768204065716513559341362963111767477947071816532506873065755478594387283606991270492071486090135565601017745270368599578640735168167449488898450372430941108443306895480685396659291744434243558488167393762547610887411722392931553326861232259519105017073503959057694560541592384642763092582477737748787179506368427341972562267787511843401924497740939069438526856041040024678834229383896251165194023948910309128137783360422850732246326183052438348023374457073089770427756824876955977531722103958750677558292483880909892194903784891768042655564766305679968112205251845609275802331055966907673973889246397577199297698637302074554313858288059282604299705738667864793304556709919741093337512110591369101838457994113329387270820294603094321086757837653847506203003353738873856975108502747963793323978960141181828863208218836848016125682436293373473371456103504151010544430441585013775345897669628296571253394927544391916659093988146387455060242000310412141063832270492423077491537624829070897884110853858479676391659865490575722851250625365812959807745224606251319260961791497342705639509458507756310280616086488732747749411425354545957840181998165017211428956280825869207249452193702893742671460911537633407785083861987380503222316210997197753444294018763986350051094459797000350514854107721839543894980309480641652709748026519569519801960516546655420745266995577954195031381463999439683731408433866323856864287061072187317101896187532680742671453938582129373437609496436814624479335908820776238045208725263432608380772231058261689219099409039995152042131805996576542388525285581483849493939482511610113941677098032692100113803846582546081901648742594428633031842191365854256769924189710197052617103895686232418706315587012203462587467080980117257371483570844930806122239736914751451611557963746942486058835523032805912822175625835353263908086864450322750097233902607457971374677971320647808313807573627710399765500845331271465935271412890701412290294947698843671975316227383226505251159453066713874391522467443779354894194584015370578985675722717304233080731952620416150034446079389250062883802191477401683572892853974067383342616289283052897423349594952532133012977360539037004185546079630557283873713113204053208028132319392922017362113420740547143505654404103822308050365200984815014289473935311770352799290028930851046039324305830196563082048813278795174209207768542935983461059779672312089600983278128222476869483592613000885057416807199965068673448339047713675740282204855607423634193012704472422785090821580754329691067801656689520082576450363154512089817937569921790395137248396665294067972170227349826343924961836523547440013943169763271088766661866832555083472827166198590846204403902143811871963657529265726917019420874110776829931491636749550911376025822090488602190958239743991419261989771297736072774804545990392508193418006580461028790550674826276096173327841669060124117245827993605269325767119639328867587041460277498712261712191407193493813893742099279382981307065040563657855138877448725155270830052310633758733705756609816993784021536719039051275405858101278898262453706195579042810617811016426165011992518002602245040498854336618364740646951072843926179810312621572245179172934727381064711045177184574705930626912953184025428241920631323674877692486317371113067163770971432361137701670031171518584868415470219866908080221863285067621361935073298480598737834630602867407888261129849779093542140651541180319866093326295637212461395343193447273792679903795465342793603696775431406775994766646931328562311029539300723403753356469871516695818870204400067613171217206776069720238207325995841919458527575560732237200949672357242113428649935396241265704418737344443288549706299833633907885817536969481198552034940548118235227937979406357463841936283586508219092206674527879747112109529709530817301955266222839233116915224265632630790354680060521513989728067742521868968452022794954777342809357725036772337156550241333034005676126678679763878559804542647198061889750362200602266090292403204290112675109451213000083877532720372829764420570347106713312562376825771516666724026608357896307750312384563436012275591063130378298051682000739664712774804711155574805971390128384594973428059559632893446235776001235663797116761937755254851448795985459054805723761832703022212949811414054265006439384618253682879771225261118455949792227178777292211863519296097661930592484020143983512801673383784300817549034775763438329552386309511993018186309938248237490485884568951031503625266540260387963050250499759922160413322494941359718352875825759570472750506212257423668272718710670874942726862867396204488927741028030713589754863268887548960417318539638528624349624928761597630849676283348397158487461570765966455844880834003244020957067047226223685492963881409414582511826281994981705780929852359201818404885546425604809455533532908346290602401558090916637818047625918202946845350583351588035188366265601142519659191441029242500658521826931945381769595542401550282523963564826361305497060541257855971341176664083237673796448724168386495336093570866808216368182705459537938607876827616936335899651144401858827400758926142990674496195790330390492426895799776473567634602731179565371256846334062897184670080875832341635102942384785953857380476074677614874110452181451615266454591005878721748478550639263632612471059768371357066524387514127482763175633440846839233827159098527869198059414532243969521396834586869163684725042545004024639305182080018018095239326725660127113967425063568620687595006621731148345016470887481652610949206301710017554591162513235209705043305028277607449864676739055046814369367319266703743508395067897756821751403951119877154803709919959211463094027744204602620476814657595931446498367594342627382653439728943903877027829323909528360621616131125935146802606067241998711058178018494870435715240930593984965497012173169538434670787030055529431610490174388647077677116510966777223602525137379713765102270511151878254121718736479547084871505339325649719123477837808550194881347044913897905346416210166156350153724880078750678441602400468892330830381842384817312553867182107091227111226578697402725835555340876677800067019137618268336539079775422867469099278029827265506472861791335264263415278000670286779361696149782638527617201708291149947653042611148245284508229720187332951338143230071584506903391510168666362463274379123016955305785009569463702697830466441767399746935301746510067700852275476820791651547304525532819908736016927255339919296594149289902464154801239303156870771305576508634269302190892059034669286774755657656201941601541934620389284706744512971123760271966371316054831635680936118511306645171583888766221775971550851560806143677335492305467008470022834586343019070495860575267922298783973954166351287861821968455353986411549955891448904213085510493720060830469050265479420624269954822863976067661616726118364617534536628667499400734286070991865133992399919376409977177910085347201313858182798320966752231601477607936141254087865861138955470665979890583113641234619967042900284316545580097405788132779814920942059994660243539872886604208554244613330396674166163627631890367219274027670860112989208645361737145819964039881980927836728465035530860473779618894629096976016805674659519980362885992805703172014889419238620025645116695441862175221001784278575173316675020935344315063340994610420326302423347335703204076006865404477262334228981926935793344315768071943836517984197546771811469621469116042499906378911953382058751326212316374914791841090600927092696812352673209764282042979766930999221929355455891865539834175075378448070490942534825409695679877680003349794528920652459227215375138995491751510069942758546415470631141564331209693664063548054541917504790163408958777021288063434110663766258699154852096921306669912177771774163586745908218711062463871783096623076531701162259204238692045904667700960833063323320432419656224135054509085862519358979369961512442265664857123962693411470893413987828161606603059910074054409647051670059479119963290056827212802928719827563625973532685821876815567905694860017552751960350424754901981862717908498540566404158313997059804412326223649832819786734655595734124844653522731028371843490529397872839326782034726314170224162620616945103901789942695387924094123209525360538974594014974558276142509168666202330798430726358173468255888826761362475921334683155328623839585904300319265425127071326757710850011697703228455496795104864210448851389973613318058320167211215183984886186314193233094453496404709907629332262574850535701918551898445558383627331929801561314988177362552011910926715792448269423524592776266423908818705919315361571157484174485854603077295227520691734286525719654018770331659389968185364177929590292421433115085176158776863644381662923479799248892565605332701965713196701203207530938908699780888763918296182074371308472808747436233430958764982910053701278120428823322890601825151180616821834984000174477387696427371168773764548839812085115728378734054380502290562969434463793143709614944368393745437146610464660005363347279601815120155968962247525680310065539575458032407278314451359131232670543383953866826789876923456594681623556108436294445575143239845542620299576022471261080263023190046289483107825659386513416251509578825743282814377425686688099626377337064992977091129195210599912066972473915390494277464284622936879704209361472671933838058146461243142868475978171332001836891674200126771219548701371195861174707709551147509417919801358480708590263059621864659333409228450462391733633080729712298639338733394515918557645754504706046815050630803208458272175505690842853705032329552935320254049785528050634672714081881945829684766199619976006067162219015311719608564924400635232317699442101395080841584298911782961839026335146390082967525064814610275273223701243534878983952241492477031345461696707241369004115791716101336880911539523093766559175597931355424122158793443207039834128669229464599680781275049662286406552503273689333175057864527351495880255589729927033227597649089834100923312273769457374615877474589053858075171290239334407613767837152680023899647044164704646295217369473869287561729138751536548621341506798852059297298546545406445381360424993520953946604930608470871907888732035693197307191172065646329050519389025508895066847881304802208328402826613457264825111454871711659244309876212591887234204616629479839964868715933362894352247529348863017055404097764171558516127407703186259103212494169978658005935337702198845635526461810894574115354014246927676124651934374374865753658409847737746928373316778580758267772986118656344252683435891415683388307928637519097169470328301063756855504007154929265460526923059129456804433813950689478886363340191687649541173357158264903161826659071626348908759565608831328149522824293780048381775361332212977858210088509329844983736896670993244256888556140562400961114489692284765320437429756987872241873908118243481578206745518270578686272950091682436445866177189115108113915584795491814006896569495977493926029457194330924623383275776144087896705134213679035826771555890227455411114722945161876837201071328857084380309554517737571761445418812570921593070015917105452681366043278942264883378590204800338498436908582276059638501461680181415334208170120577340071127353514483652562100776141352583778614034177708848098778632464607666354208976022186348127976150025216290038835061050576529279424363206241820010427672748249721783512931822243219590185463115752004305765046035204996215358536101876358497963098896525800246328965645241177398478957106511797548195723758439167202595894127212122247076995703397353855573602827734500273030110849457628103958813831047276046919495563177887114216365850914113853223037926548868539600950354323245984605068610023387390047663074623515907188085510223322273182154606910572768503138435697771526489930030814565579658753133285212551232388555894613898019811094605872017803209723990699501188413323681928910359868969255893596546949837999333795522765861474908321341109092807633404576270390241154380906060638020505290226264669163324378938178371963139108892750251259598191198027336973226916387706940706186607559760037705591511057351730763639290074728028174542038219029432904512397988573180999757276265084285208724675595429977379114708816737682437813469349099281812436143436586241905347931381618597275127244227037792093074368180272848752564557821985190436816299170628408031185104079088281365775744374665368082110128877952388267083701785346988475640454724784575550522935140778769789700728673243538307824896650958467856159874193812818385013863924301573879627909882324796218742052696156328568603252423413314824310428112923148218423435405824689685805226357723031148585380907612443790965367623358314753774674813493842085265120675590323415516688281683587787720740528137848319548277857372721075564226214759702970666915210881235167368766424495765037870143638891456987469439006952630942457729877288130227939309447451109677735373740293857875392641230742913648796648600873465358371823883141001691022038995578674668801513494234069670567395115468136477854001463029998515402035141233977439389140010745824516939379409347804421109753517240157667109336929521802300710905462425256504615383198447711274384132652919774477517841151831520809346090654704856156897463312321913842915695641658377897863539998354964567982208312661023082331446093474605670017270950622605178631467720280702547919646194901412767923189709169003348544010943419620656187639579309476731227271429114269999783728770410896532875894074573251502342329714502595316882529188636522553753041199456338493784947534463629399279899604105815132215755450588547849764713200111972523298591115809196917430750392461320389239457321862675565491909524299224866922925629748214315332584233490854677835319298897878895023895609288932763893010192772989863432674617342275243783655929953109047469571419297897506118560139625664569109165008724851968936549170963796152292143746437341847080426985073567248095545270384199421712278799372262431949819208306375365808199564702583520946952239050430571691614286300157591691605676191146104485875426705444072330060768040365949472208364600184546847894795442994534194624917018020478485781166011447328064976596598293296959203111249068791160759488552583959136891984953906949422429944485270667389608775513484408307153269182562155456236177135762904150009660297839298964880132314133996904149192412598646284104573522743588590536438520142456731031339724064120296071469174754653474625937007444421098708575474541670089572702697094566213643189718258695319538821620612551674238859088333180286851514338450441168940664739466901535375733241472214931396914991110497978021423491614807102710178760298868339383407393061105261784886349400466124267890368215288873110610852579740427501999084658701937659431696489973702758971445402084900878694331357885660202810682875338769049154241860314968125401154594950452226284690989353859853565962038208705127677563001921458229690796391666029103579490972407352957015974176398023200902837356638856150394831760050858654954941865702926352666730949762100957630410214564899700123315016614669733576798171745799035159672498855799815369686599710569229535274363669692355284512943811895164963618473810257289871139782507224683655734716520328405732838656748238514528715742288509329743963178232531851587633731005295643396262354343945398301330012036396250745613470649143699773885782656792620641851329137805286228372269925096931587502471255297759478800893928351283828146306532024003180707941712337745665325032178969956589066599210478625367323537411448485356400351631511195345723558307033950111446932696292414652129672457469865771056348352833774351206585891585185943399455697192269029886998026453034010206364068032022867402992290007575436338755345633581173221239782792541218476590486673308958481533666125136283205994290577870015810437396634347564686790068822784979906617558557409986317343894702627881822500433209604060065734396533176377942234604825761085281429001305586146132551445884913335173377998967632406666468454400696756778961112985292464024395534350742957804166785457543877199043266672748706549913115484931864163076233403521617652303991079315608941322574707643514465710823418480462874152556587730951863626766369803864525281653842763511806759432189516805745615511728442690230354457064243404809668245559480760194699226525843327474038764519207185922374957826595731891901047540473024857228295345523105089772218753463587937870544163334395446955909583930933419032542414576789529465115703808977275528051611140956420730425290925728789448006252382150170248036000190507248552005921879845919234952215026005036517883238964138155193994668558158387621243989730146127287271686025074756583673177724969267866314987057488477061579779357349020113021329347131074505475394864677542314490217256472062281630602799585957942334613984684954581757106059977611889258565013594964666357458954452867994255646063800049447121703553062979279631415047697406177541102344021929809447481686371693423956441418878186492097068660866269859843177728413643160482073088736966436358283874987428749554303132744012406880129864570626493338873025827526343298853572141777951310422298861564099129780912971506510319861119561426119987056398903505967721808003833013752436365139825930425819265562348705976493706476594323050748024586775679271688112883855110766825114816063966606709058575382338971232204526311962357202098667788188697070540918049022227599110926487651874040560472713979887297497372629552514505130473825404444565365881430125179228084375165489619658650959147324366264392943198562543571949830411230115287757299052144148008353771184342266522997885335934827028403854337147131809932669648730895485964211589451182180158297690028649543249506078066153965197803941717291277511903787146391237794586217415009049117817693405162854295839836207423235709105855232154137740983062246337641655732765373202525114762935665242973444216582809783220412245539219261589513931152790466421450070366404042155002940143888445215468165137428732154494433040482932493895119257463985955879634760922761433658768873151356618208674613005636191739636629611524170977051342015896265829012116654872458454633018473011549897258865277756886467822693476336291164518516740017572513384631084551568606041060538570351853426705227734447207284278671168987068170580263654326080868617351656261540378257508579192088326580774523696129760045411140540905676779152438386983832277975803407454998744512020101170870573191968307715595635107820253270212219234460344429782671971483518315058200968662902343453705232778836833600809428884748797588639280611471168678782001097851850639754207991489644013409551988611570507488563437708095778434620686304805563794023511925682642452446040853816484241634412121957869571377428797282615062313728206707930547693458840561378993044674465056762557906403886539784016645978601346372940642169127984292174616354021501873254335986531008496527811810221677215934533639934394589833798459205286023558337282185998376682857519088227380138620456049779826583578838988305018143543955504499029098927872822269365529276852792841221668864093604883474614799752754416544619175547734495942280990423613508607143099870119113839879860211929051395500329429361635226577835428508305636097274138527963083732672014140590291177219657048868852058662856132635820451606694133521841681782082555710593674582859919529551494507966577360976688557148571773661161515992175333031637027818597078947163242452659555046409295512254029301226226537732651140713690314687431771454753529997562683236677056904698223427986302606469211189071890406286469353434195038744170589612491297556280503598353568531158332633704300857012918469887572347860352222808581903005319502108466897133838573085257314632418735351507978282268594687393706814268965399454962635451159191043416620627154082158800614065148928573799951860451513621728243766017713821837660757454882745479949087789505888498929521012463009649154923728920086654266785645050951878426379387383692162099433415981194636156431151885670582657294359603185357078045465134569471922197955180090314578214618916998411208077718795146209499620403558161241249053177201775952496112022775227074478100064236432276433932734632913702183645999705189332910786024794108500080653044152954565738510366230339935878964210679236450434937779030081848590296637493411252754149526686149525946131780040310692892414257868996000415827461159319572188568479928692008764526265819577976298376833895476010731153895057137165136790759968493146057504620214016297678912674789100725079405497593298837667810814466327768226702298675390933185344605699728664395285969998563069332070284501258404420850133176458493780151203626051761565986723953183391797256713227843937372793662751591860948256284759242193460079378630581339772506576829948384026166515288264543702615629613266156433309570765824303327751243634674412716420890490248061838022227258033314316660107230497386713831149587410637751499466535394303776457123956097426052316522997368091914464520831973395293774315408587652067994478248036565725240439170548280974443559865582008047602935427278631322444365728587428108139346948263501545459407024429455299906470745336107856125781311564457470784723737722685491504879046720158593411110102286942559306001381727020338285611045335889251309718612161475944287735866576301249909170055718539202819788581748002670652122616031397818521824951412658162211220940151389084295214233640128242588769011058418177613908459418775641950505190843191904314412786432297963319204253107523251412289006716639855114679549221369989489683342661001845902670510983997714536445936631349530125117009339487633249954644215493567268884782066130378180155667615066483182639130790695875431871058460057593528164651846941020234044187678249525453384368275391351431760726315277277451988799057923771414289746699181271817830408258820501444287663300732057834066640513290218507654384056973417099683733500600876728378188463115686809452590479699967490726089523774584109508100948205116507215131161889661954238541450130269454179392868995207012495903691202415435965194220208045847085993650588141456005890929314724784028534149827291386538842268327904263936283274777611578111435192778449255805202675440566466559261943059531308212180658967057646772815832808021452774943127830742564913211699810215583483531077131347351739405777848468842255931531920017068640410380934205466786371262710103765718936607603600671785178782125203272386228941747702203967407203831717617342469981641694087964948483700993950155218847751702681704071553636546564276923356585798683526828191796143016004000761109523387021103012179691231496424624494315676843140890066949628005970233757910789808928405650338971494080322049518387672731509928736355633990571388515276487409309590003794271566668097258295714806065849495666109080896049937930957418878763983711782043942618549258234771471263913169181760157501131755465419570587029694188545399130831791523488439916215853991530588849813309659994246436484480542034411101193592364229889836941334857798322561039767637227669971061707974268534795989486288437614248146261783176894011297698029079940267772048183523718806136357915061354894661085258904719526406064610457228208567620379503955851660994159549646558077107904989948437509566572193156398883770034516798761783586605626874809624556620843257498142824787327735896971531013513538169247577055010710550596183471270235220940002726086467990986119268415296661346846659830807027077232118479677510583824252016675530830600449222142399506163037848420170879241192263615875584307775334232684333370976727783958735533187606590526741194186492035411093549409299327958001849613396286695388783999487800205127922974450749284161943533325368669650615455819952648452354347141898611662219827108260337489063819851845808714153715408321117094823945952467839879539913034120860081174128597138626742269048604154602750194132001150568147573396949337683155284540970302179237831745066966026010327808399840086790588092015958686573177826373402729012218221133782472745847851906074422659509405293847615941965903471200692675875239251108286969291403099383580189067844604093357975059221855593527230702168785489856253319319340770945392424484349015676909620429388549412848435815438446186896123743012222103642590043511616970806059784456585782188764504322391114445388077546919810559851334116349882464421774029160362230210076615036401238579725201590474828362874173694034902325205325158508893003816551155513528413449258241419867407370332633055096899132867902217196964981556386635863490685287620468698651803786357517163039843079856699560456664353362835097950447126170341058748480739096994483657242173713796364653649837846457088847720397102599234903248468867301440957484246449640030606486436025629679334506395845443613941875085366659690049174481650159402639584959157544987234248508737768066132704548263627841861082234950838626599967218126606330411535154437949509558648357418052753743047493449108441823294397328094137899225019437510838854947753918762055230710868618802883931918599408040117654524488641824966313064753329945119148140470321055792871579764724861521647861456049159261816373461969444703014401886648627994708559903701875172292324655183821619563558854106699745973463106941058692760462684769121693715221897441436750216014131262975456043281219338752329346437276622561007362225638275477268235017656441904036024219597851903485281711099238048363854081600981281915705043330043556163278438338611871708408259870840368949891116520915402664219419000078581516810842070139130512156514205437957019334637877134276318562411939464382071159580667076165655217267407537835706926647225523200402901155394596710741550197956239205731616078838722570553493646609087151641702825212426942001563920825107988471882405551058451134297287248690933088927241413222564490965502129498442301737609655904811145443240769775643368808914328108510956152101854600594364251493185727559391282479053811039941689763833926219648332929340065627804075125423992576124804973457703130443734033394948561781606845730383757607883533823102481716455029308765944695509334044949080362859934962645933984534477511052141619767861981021906955605342158653234795202742809381305072120484434082426308738306255257175489686667776761898663190184478262313252770846210466332077537663875877041615093380939732185971442915560643489997234231284079696200132545861294852176404589570327112477416193791807859416054125601167443894090950634097038715358207121729824079655243438652143509419632267912177461263737051147095277658217502275596551553211043747007594584738037494192379846250164038258127565363127190082851538762176271181794430722364161630980825338035614239140265366172892937662985858516951885520027147774124921366701379525384827138532164700621087347511696056676086381224563501096486671511852535763665168643363607677007250751851152034267395237749906195255589854910028022496085689472087939315023825155057534642484574683566178472636999097475048399958965677545222077631663372608802197778380342984366135240065550636349482300145961806487162200897610800492727387401383046836728642386490846790896681523597563353186267127299812826843528426083840753477562818811193434528436331383437305938893941045641781419599428642871863272130362703899109227072963337201321275119870404369313746102248798571919574630687763530965158298750264935448551022716759055839912541530799862976990550160122082194919031948648843663052986075075369631989515254880944746807655213323139040934260928081474130924075490968784482206980481091345740623868533280565608136380007584651871123453606717639960843324343479522860600956828621523139841352001641323259968423033487861829435813711886717417600936750050999937231095722657764022851929435199203446651034890627441002629131882983757499318863018451122937928455636560219929749031347863977690580306288949965740906304478423094566508806395918206826834496161974048707324573799494296353022236985604781520814231399084062818263448251011158483409340416405741274285869726000180244320627786031636406593205674793431362342261030913648324068705324409381817219500168392501457205987582127187405242763014876590459618536755209351684137314936911231692207804669789694292741179660007495779720583153002465617931221403026032044801141735143850930993824168527813744946195413141819968081622591903972995544552260308008399471216892047893309570132911477530542060267467361461049856942712798203361372538821089668846249061451938992463285856727075128566431645256883495953665126095063351328418464266727149245735126756277282144946074586557508086229581658282712901595758519484074698424599274695873422378744141849006341706798418328221668946846018780784785337614271267027730851247668310699506699678702462195393217581259653422515062335416912355378255401559283126458030398943843418726192634312179720704415323311206382434829783848328136116286926511238391615541429948346826061017342605206346647344102142956816452656549173335950112973532225242867224234514589231756699097297248231733007138448164150970919453084722355558615508874443346849950834788315235991431946631546788229883494652806207518559987854031652209211566868297277562272792126833203076230546783985109443519130314753153065808139516110276406850628793935851101884024786599657371509947418885556355940828003774556286239650191982818587096221328829950082905027236623400697210699128181537723557227715273321014126166754501228105189609761965396977687130013595269092692432005548239506669088972688314128978128616330737311288171374479341889154505904725278439697632838588045267100948839438815970571752894144372922104590699139819255707435770743763087957327887514127976140407188233502228677704018507488808881759746599765598745032055644852109344131692691774169349966205098653443952593271199422440454328459411624526250815794521516458889485319751221033128743540280169554938273255403723941106558103881089354787716706914609497392168671542941680538554775518899742958531204952123178414598255961745790146226867184257188046031155373906141055296534358219069446524212924226101137637472398303173947441686079953482429362185269699505617341819306167830099464925248954558984947399434459194618430016483950457646347597472950253081710146614186000120656106389792725480840454350540903955799501385796155357904335768134481305165017076177009472327709223313947824874246990853500933407077287294162223450189628575889432625612118985211368515853068522380843627168100353005161408638388956538759313980602534326327458380234766921200316048053409866887901882006140459853879366347463701235238707078303756447962818324380912682049523705195184297013735187582651401566908427917096367677263877381014770715203836444597910709199375357155527462041222342750306519947190244586997718003684106713308421252453184351637940985012537090499870773181464163234625881663273067047784476485238384480984841073395130361388371894502713703502264596785293866703891427047303413542695921677529484736919646982025607080491998597762071047280712419765284104937821681794403251534915272120286439869394397289965203410095293301355045961315824646193684527472199358760757242282115909785491163366751915452725972963664088027617804288501082590318888838376659283825322114116046501095523392542488298854781277680887632594930350737467208045205099514450971262110475716414333203769011639283828629086634574118601863385361397511835520385981950839053182053433977642559572286016485607598563831423436349452345126499176984186720465852791940758571264742136748997834641969373424748521240801262359342160947842450351774502121265572461725586226133488564351339954664989790579817341122477752304118800061601034809436711820703113643273793940911608084306508514942865748432339595884952482076376215893069944853689729367869558511476422205789716448098846084915088229110172867655243612965915281109222685112733219126035968993047947653176351857044030176414628168930991831974981072863083665023565143396270475213138912265493580407189216752141070598416131081004364894820387437570903914044794864191927117417664524865475988938347816796325593757199644013498606856127668677529660905269470624909308040245086671944378218600691549210479090559805618391035578531981181416862863476649219276910344013467312000185035061758014037442990816770671223455630992867607696784208262691769275851298695905033686843005808368610871253401771404668768240891181070827435086054279450018230754912276358620885793984755778770271241812133305619153243111164598077211869216325404863372953408331309578414566651539306561667145319989942134460454178518799028963473340129388688827866321394848401227898104105659861556197852234134088142833254413963699576399248772487061080715973090285983595995320716605331293679330385219573561297608630432380352849242644788626849482706458501660101387967146999150439653515615339609443067719376542547935783056720489594314720357353768719192927331697468283489429430032455443658406721113626968810776549903834136660018422078105623798636218371558749517892883826398319188016812772195024951043601971027457160534918644067679069739357500235923720883251620545741633813218277549784474244831048755366153004996589505704448655204254052597224151879941031727225559364838379334696840295103615805017563591421968565687413984270153200218935109830317794455000840628592981645651659760932360358781475637312058187720631170424211007044175409983068074526934603470723810591698949792266549135246611987113308303571655542803258677187653265478979724675897271514406847266387555000653680874037134143216657741371582752047185245875705406504331775150065980693812231614789095257408329432997009762013079427473334225510107293877728441075451912370839660622765431938131388969570930853439240364349503660398288336259198853522291832222239875325686965931303964857473460595962502011194643098522922106534455130572304577083725547035167441757505585617176094389526417398525340370349597003045743387829020101072971586272222067929401865071847301233372199663109048831515445276524538024674553053608098497361956935860198695770643736163279192507102969025496333484242990476598533369388683948515362821036828296805763824476175913287669758986609460257751918036999281510551334301276493660366632485743480594752149649202146164751655384697544197640536421791368416556913785587065285118750255656343736665007629890953244409373522555288509829745390715038186191692475893626519499732059495006031365094733714165616369565278614559629311370788176630902410530154601117411996880770873283749596717690510053409225282590693197616589530048161933818002591970700513095700763006621679921393863160981222880149833332313949491243737434987295935384796744372329431635589258976731779133337707324160139992594351989633995195709419690593597799912614484813590270093832833420333705293146436403268968032007119896237024124911141061103039621802604471905531657779252624892175988521087648447035275008092043346261735599260032797420085299080502401675773463581830747478425760802519446625380505614361819604377313784695565790636105878625048933166916410652322466132266501983743538210233348804862291958254982732405666381154992792947859574530745792614864790960528457054136902057644973270381097298067814230206312915247222898310522807067795522572089495582353240598996395137636061061365822015031060121494783333750628195251991232970515472134113329206410548099836506119585920722013139385122063366383692761572920151133715102132397402906202873818962762818143184857792623055808337856451777719461258524938006782426229659771286719582602193549866769094522827619025220981573542144901069627467077607380139255488315439899953506757252817555557527206707773760651300207698259079048828880377605384343343943873721479033716076446604894487539694190272445636743674988362278420667791476318458845206348448341353598284715654572594979537704229806302841419691417255933903095167362955729359764598090215978249428531309240560149085015326140399707408108858271739275749510350840038318796807553319738447394892693085734187565733359853269897646046382125726241287364314817631552357302099396269751315939232899377515079709897093527070539680892584882142264779999860957004694371195178361012861569211506803812335194597528002880954638849993558657523525176748183465817782695013012503362566470130984987957285245716538436741504980598951207490961738926972656645910041032533667007257706587187303096945162331537080686284058110303142659594645030020963928320668770443160053137587953108242400830149923490008243093838608607841483881510113492284047399211644989756942756245400762667896937074162481558080251741107369213462119039861383166921861670962260327869810842076503496296109715756507887576895920839893134159873071020315880825491105692224986653605117499202445629603855474488857632344072448795823494784183253933140901434283082637970765166433356230934321863837554912757655734676130941678500342595449102774037349487267180111846405767354608496705028159019281902660699101041623138613740240118533151192100807597675051471070031230128330573489626534921471121652255903150671953757036063511415094164171168299704150142915899122390602617193254545821344961812888163027341013464707827146883245941056177790958912587750874099730627742108541664666720809673789003705324144169337730981381317077894048636328850111437442302854161107797722025771500904691940847504568423499621791734422807292371635385512423920849970259757695003073175337050112752704555921846455916584653380706052356917677986486231131984655321893501910855826029339691046457428268118940942436016308427679978452147626593153387492396413421446002048742134430772077176459100423231831942951576306700431106898474867902688926475934358372729403060641237695051997537291585758338531384751823806440278090196573556507883779705275385643096238704390470835061129797552888647964543883618754637501812699901207544912944416019894110142137506411509047578355107136248076424093730298336181595211119786075266912970610361011661984201811725587411307126831219960537044326749006834007888508427406222796149097067201229063975740917296059082197296181560596253649113728750358335959401647580875492715334464615078823128142907653525213443240784085871603768493913095760913073396906583324278379812429900336162157096116307056922440937403069340154220180094190267175008740363657681633260427528887872496523003407736272323048158811252200921687069920929755911855739948316889140375579811177812181488274519806229193119365917420858534948613182939467326400637351264077495719002646681612470376609956301168604327271747267582696210833930063013570718115631528290417350635756903336742989090421278737207290662294204174603835772149198076602044218927533906474476108612028326493403577480778521575358375784234625115284353139214309387186504149134235970189045848821567526333721223746218530559880080268941150666848331828057176190913442755239181527609005839992128974157017739185653647743720710287496089114019990359701324525152344283213916154707831160352763564820540644099931845505019843220063210014400240156855840656985822791304384995146642278242862575683556601341664953286120957126241833306637528124908585500526635686685483584633862769612893270478508914030192086674947791181209989482205488423134974311845510587147773668566114066963568938937736787396434747073516582810832804863939288001611180482795672719427116914973636242945754441734607193783507010089417583965430497935391575794974633747193102901420319243409829488347070233666465098196429892326240847552566361204526713835011453504355356585638257191655877911428033512530929623160539430415576016455747244244948497188457274784096754614859831564968507552177011061418525138981493642248361645616950870964181786114280783568114654837255573921632480292975824550804911500599131475227502737741573418889943761737587726079736959295535048877350152585575732427672833051777806653593538164246666942880701574270361509002696848310537827943529217898867543668709943590606957177990527822000302449525014228111836759798351302423300785872666688440895605582925689216900948289349190664770749996342159862558203135742314624364155632582110727271495354954293282859474980901917583149952759616277637699248615491887688829739215014503668875293541059795397578596301615773766131697440692143911866544792411125563432042191897619574775438101019138699578859614641898430222967699878490017128211098211307583703042746756562625918812720592321281661343149663459097109841681809018734393344733774732275445567216796226734169997384626476354561051498186438818416638050323728468625700133249968586192745830074550550162188410752899002978722008761390540565764487210216882861019040138389551259123615374122144799938132186430915776566824000034206191109117763435296929104543374636304004521173199569141057507746670101318964301919831371542167758362857410094869230829128323755072145270629885728335305895577333957656248053062334290797662749787892302650345828572326341143591050143966676405115334313531257521384656447400212757447916576321439056569116294120162500024625792729152612736776300665390091243584251968349092396233844370422061534860251753596947716660655546461157431117000255647605699297348404059529080214282396891059412022166388862236481164012547162256718830725091748027918179203745931509046147372158970045302864865515795002075466480521439662954589332802533684580489063119360339151910518440569409502446859365604808888830209973647695727375818078744161160295519545378033655690742767948370229221094786093534087492157966924213722789279778698328944788136835994319930459734525058277671740194033175970709447737038808293503683146773938595875733857115725794501644203685404768499417292431556354348355457265936001529812886081218123864295220009789806370248125509960667944678010187769936028529754458917938938729987148927146285178477486056954906783238751006019633596401470049217152668022920914734918193458206939238137494045033311730792274695400056642529611639443380725673757057388395256872638592621655985553417127477085488039968795961558216950445994300609977710460437673974651225013355625224118422268293127771883238238687529942463381633279320812029561694031546892769923290986908575325599566105275360896748740797482531935186322526325283664209070013959239341495007989244857901701756829199130054172378615066764421381553878279262788092583250026269632644378939045343056654264801693689850132450257022742947365872990563645603561279054844262621773385826232425513307149549954420764620409594181180810946857665347983369206414699217052658122483176941286672247228632841678613337887999422554994572889879124796656008224913344469264241062930515335695576656185183892481171310203493503295975814024986443204490751004132318672816293933092090699874558294763499535031506208989556653401589381356884644400088293306225928262824729031519537212671050907914247322663232140474346908509709555772528943980383049488445998609696220556346710380077577223740778737250259295684870071098997121023723299868638343091126724104858456975588433613020758263228393235177256904878919787758020305034528253656526227718497868745302094003772894184966243389816461154590199063651314556305283810238096711641813864750128288513413762593524833710458608994082404783171355516231291185098649753159679641994933146207204815014143953040006254779644071495810158255747947635981479602481315651925148530055293069358507375024744831068644786186007390053693797419051706345239916649272587511495202254571408455678802704347369994453756828364032572569794027532970713933361059344863644686638547068812263293505104254535261793099144008746627770786009130908071547330199974648257505799448565712408497972085174678681397257738878524155056485854582149710136681923977977450951100713638601310595336585073186581762064676193132662411925480300966248859671326968219667924040916565660941932969047777063982557398728991062726848578446336065890970315976079930197625315333049888441906562700921524014975587068745607644131263099567549179074838966820140868016717890662236538471513147376341821861129604952648354493293143592698135206400940410696285552943604983378286048692294692446582043344819201868798629570696623415256025820520796434828367397240488848409483629012579040335257197316132090515747506354964428738878823340577436722925767249081110972430653651746409695358454693813658785133982922600318663618099448018373730054012305212505937391329624065680021932717255792941067506891241836328447003267541689582193627395669541184030072102851913507187205181317902551051138750410209135170842717393256024447653954742375139374148401141824623578615695956612225264776374550824337836497820278704289425003874390000421420382335529180837405909353539846127732235865369974727144248605634398550032331469144276858931602305018612294020532085604779126434741926098329461363521429853719194621177667355187179963450355811540792272894996162947267314046276200163805462528150439591005243907017362494692005283148755898552068452544691394706873949982760796301897772794430093894073568041772642980331391164892343375628207837661510588547673150508841077836654537700357658265046172581833972350927555166051862174703962768344725488413397732986701694266515172137256818760875452452379675760722022428720126070968049501285591969423645917307905865457924367136126343457971262554925898475197141748826561566725029883479877182163720399483252893867837852249128622394162928164772460177388165159795729810186655338667696978410869755865014859087416953806213738063898397939717803322813250051387437040269467875852253455093498306209195527072801713853268822273020911928152003861585001674755529557079034174684311560305641593416524711755754252271754041109154791575797929559859453974923581798456335336823717473511268387075892255082949129604061193379951587280182277861279670503705673886717806407517785351929240427272453170665482402736975483811534918136326135138027268538183811492951078030268736995659562430178304320644430073923813339485352038455330841418109255538486953852238671319788197458211390391893385739036949057680232241131404075963146832126949293713991733008089325838825924743531765104903759461515676416067910680960295937644117715488306188750427948166788280269632390699840592166673248158477031968179248612341173186008509779847451680159297384738230062402965930942986129123207036130245728373070647342525439058737880960268337053812661279801718752540261769877794625894218183242953638098491607348609715981842338425855961457900904463030673523085324901830033610187828057342935967455691264421583380197789706161936214689153323615580267949410642281648666167116266244181342461617656927361866607489023706315001909889793668471393691270302374217123169465683343078418453929184656565543952028694156345016447720501707132739843078772387790284765357148404488413442467976699080320481931772323207639973573424789046317752268579647106381192004502559594662077625698787965370937157692288714305559898931890806297286839359739202319842575234380683032517208074326607643987996823309385583694204675945890133721783015494858872809301279042107164849077630479517402593286522482554745311915022033246405572876220476988423687488191393177787115009239672846376312943693254550021304377834166349381166955875453903093393505640921762720565884427146577653420548739990986524640993387091087013035106501839326536400355438836191580640272994718449861157476956213150257529074504831069869467635751198790750580844571547246956897067216836678007284041810367561618361590603191649231068181078035905557174460337426523288211853179737815087661620953690701123071728935365634987938086966951232311964113257335095873320311499636270259948808768510022938089595957664947749994269514356327085328956008953281694320007300688766874716727316884877182955024272136976427114385739828843771477711919684969451846076053991629245595168454098095413415555474380794585826270535801973123495137650270277499496153916302410962780830477486174488404101712926175869462534991682102883309850525207596874047922175580318264012224776942677475083090958655705198278731350101013293018733896819708400939097841722109167581416851488409196026804872023641587598258677962872187363676891473637901980343322316180943759451078977201780985143814119331332301834217072139588554075787365422747313608622681539311392270845724575965379812832286599808136370769360985301606718002549855882870831060784421981935405463864970643792260658725190321109584760639558669120788925534289177441787415632471511708700067651435291722511014931003258560924319728130091026692676447673036097117088200212427429901207521410269157767095571987628125125152882506282745697874465391709246141979620411008245773475800958740311798558766160424710752997309225092290036989043612702184580383260096556673285758928312701816667592148313976284445159125881487208386150147262695842273399340282822599304962611329571219515700633293175412942100398979513465204868924781312240035589862218244978700372243399214557065278471571707117031791799617684029653032121881677383590128297686348832885074297465511585444556106482091262114140402841400023184562764559496537081962007305041513464168843142217911310718838121710657359602387233462183272727479767115113206465098545984775980878245257776173547067862574046134491168929269373562386975053063365513964250028857228773709907156067048678673794288676735427614978444439735842284838038972745449384595899227272681569849467062680854050904533631220406839058134372172440631561301446942580461884118222899955602940484543729837005743178196289535688973545409148316830616170690642065487317336588308535999489579981222617189118331250761427557055409428046895198426506321916346671934843651750901458440491347781881890499799071033753423898531939805690530797797958050974282852189219138704016328460442498570776246913019955831180255860707077068920991307697545382294341675969931995980347537362607907483476471839376957366435482352123549719776966447902954538498637149227836778219307470758221016759436921970320858180043725724909549977408457307443844122377090716654902354655154298409439424583406619537220551835209174501899752314624871105751246091453604853179802705433258789035760133034108725884993328090728890529804273343519357497089710951674745578296239443182242390016426373320097265422995476573849114668524924052475223271228522473765536010902924659775993182102059205969134628693676104663516818361023237894620545724333704420686281599705356485280038820768568982332549837423097170253937016967090435073157752949912922875363205940813631590500858299949235002435594069395222112305691303929067327426855531576648434641549592255768269838094305738958642479432702803561146228517286622364464334762383822624156833946557624233916651050492427135607495070041529823108835028620012129900350268044989407026554676015369068748042801749982088829111450178985434655032142414034831935147241292337592265457101503776209873855185443176516271919010269347081133337424215603241374384394748021992877120639805101346698802590043667181785410351163520899032928920651729018836408950018703336694569715924212319015718630915148673506640933905224100095386385440361897812239570019452033605898682687125834994677763288873817662561858013957356885762816926232409096096671238525266003561984810248765214159300732178624455553700226073639079571963467403963754803721821696013142574809029070696465710005466151387890401366326705230750877178982427116418777405424399665985628410895639678263956880683189375987263963383524406952029508511219196824655011734057097304931950312355641350861073080188452332626736625146147567283408037167379873033606470766129970170613647965348343713069791154353603815013622590250113356026965971933646018485462534923012244643698074875969678760302873525523454537602181406323894602327190846949205311231962223684084754285737090791092852464924332764672862518686753018901656198776943349651000000099542275376943669088055728869030238852106852786861970829451737999891816613884641069646617215950805414984384003632981530213748874315332461030159902547181035363313087541708227466124085126194711546350948654777408146483247019676859759261041307009557805202915688460009652775687278020898852026162691305882148346269089748346500235976972859679316968915889800256856600337456234848098750065555706683118883271340356683862634328524174679669915992537667168792487071546170633058046572978879275349805541667561696834557163255712742265456525503328483936272773820186498693396626122053055855985623171095074087216025428701020265547443768620211606965799705282178033635214852310180628634635309914029823274117691354671564000109039229909865596199911395567529648369144240103434269766273198185117430208748623655145270532799365195298266263038462099260292797021130238968178247827877523487457968296340396952858713361853144566264848001563973825035821420597808098003512025275484550144519363067655302284504922566963881296557527840136137467219336565513208349876447228729905482294349235565792356101487530666155815999168451771783808530162918059915295182907535316667906845631597372061741935324986371785063010682091872723573533745977945270225550222300138856987121530802828521936464577196023135339677966668377827688323087064750463531537466590496800282431058091862043118117106636439732050597502582140866144714236361312985935524569427429210254155785027316095007051873915834531407889280964742127800245345618611418503409646185306985416424251201658154206799343702811006966639519755923166464019774644721615940993825501668162089063664394719405516670303672556379350542262529577821218760050821535677185902544856311692045731708279254156046899092890912857744612509838682623941838605608002856801419965461323525591389403551638565097053848752572376360364307674338197478127247600841144063668552223047406724236492959288519857737630055515787445048168019129024572763834259059572818764669586841016595235544431593111143713608327749455227486290272231454487654432096604466872820187721664118876058781387823396388593151845479511648501132435843406795567890766141596234041710177343977773495553960764339097474641607840850952689911724779574439762889288721968231911699105585400094642594639629297950773693137640638922496025056832604402975746946488933871802383731849707154383416948867741738621499274285441009566462462769442087488193506172147503536614469378376662576795902891002526594348574296967282555440101661925616499503454611207936520981078184004456915914360720593658684405347868040121249941781552274337079910984319157790267822295905403902005325525699628687672438623941592245888685801636542195316132418387956695752047382699587047777592455924401498278512916056869687749055498659229323202872144154795136470190077012567108866729103319116350183362939285317377582654532830143160484640409170828494499310468707577115975295073052499117557589720024309464866720142035856920601848818107182678766948602033393400654027479749301277676923280904560463101616727666448064137240360017656478055985205092667199193325181070147523489220071157045751691608305844769324372155534808073240106637169940395287189274304128668307290163790078475276087465436354199316060585173468687581021012625872166307734938126544219885703120102965241090403462311210669207906373223200244777663067197839399364569003714609647775066984057212391457055165265795547530046188435176219707654618175299301682145934278841478442505381988353585991098171533066021540442820085612214668507843384950487839090952382106964421163914389609900954512516025185706016042057979627475316117937412440580851607813777558946096011595012997813736029767275052522075142829334961487172974992179048204042529142480313167375782128383397977939035538617860186271226840399378078259063973379700355379334672119937628561187512336534056749102156423150018033275153630735033451948089985451442420079126356324213887800370030631025018592178333104392915791036285519719594277272670036076575284226736348845021142704295628072598682528144624887744083612733166486854741914262562628293116417116953258126275455358464295800166538397090128307038104052956603062290936424639924099614640392867546771827642719425309245030823535229124400368725463287505250861045136187081368451444297002748295378768198523306391727525832908443630894794319039256068186497460899144712753998499088197435164610112355799008098718810765263443028581743353159220844700081130551956659100381491666375170388652079886263634515498824796650956266154245052164480463035021576085354087810201370323945670038887313742858374950902841750075716808701055143653083731985694003239511502161447634508113214930592565037550386752861294869454666453344503467971565843816103957231613705492164337614229123890020080657117073786623251173539029707798866228182844561086344673823932852500770183789469841852697850719788866670218529965633057905931291459458976875353691898200346411592079541211620238956712164728566539549955512054587163856365942565191954236664606840445875373519949921794557757379689612571668118931914650647236140491236297170627222932959244289761831497444764334666140119284653181959106616541608363801134155733907340584613400751557685796188905635298990382814313301741151914431744584171990140031253235353358202099423943710094556545840718238838853516593267176411809131608067042533395249969620003507589086425439994944059902303376921297086062499880537001557185420674246740873985436808554780810719729145490726919398422435765332596362310154084023744955177329847184159426818210903030371141627461180457216332638787282733051915681953948995102026169470979357633049075926379512041353852365863142203750811228371551015879734478303152064348271998445452672496096970692470808763858649383687132541707362620259683646360016488744018688794839001293073653990439664418841258665276172643806260042701625850499382268862641329523719746639349496840927026739991761412462715441754830112715754524210431307282074588303890597472328537358028473155563132713442645458362603248919234479407199295962736598747811550740010872174791827562124302454402525796208683195690219364345964663621307123485573689681094806344880519527373726445809982098461082548658810946275683266958479329639730335621427947063432961095635778823664565878444610655131234957891052540771848291698231424648002503492577610981342697719125367590740299927356543168604687970310604373054189515786422358839228107083216074925917399262083590411243225712638746088542881789286309996973547741918825089703744247940485625243878015536947340720256221494467347012957229444876272961944644168952897249666626275305820021491141499575491107844709731354551762907894360902266487038016131324340510953587239767303417239246223691018608721317442173861564084990941051460123003294874608891069305578178859603581301550699523483449113694252262311679280035811330632686151979981662678185953779527983006580736845835980462589317741449319419921453628188049649867324866076647268442288745434971160334666260090535882664940440775515566237553685286920815397843279852039832122020614583173979595214411842135233173841528611592570175916605084004956124722991026537021131129628958536116378799639201244224092164671417779861741731979465885344936674620250036981849898554131787822377295206668297849326240546744324634241006967671649182699738346898472988030814886317955118405581424755316169326408916504609325092495546307938035787848448932812780492872786053004404992058978287454371389120434466072346407862509137136429135481739313652651958462941130102232445829126428490349619208054640016724369214632918796299317536687017701598236692234070206575849891408748909035014103061453336303821878784248084887080824856442374316138764413718298293818016313233228626622702738727461229497614769742501161040466148241948059421243396476784544128204618465676861649236804179226090457839146193750422965868644757489361648332991814244688390737687325232267235040525690689080620650897901460878283644785975901078598875141935591698539126080814607259835815635978238514350287857984597651372811208661256111160255162372600228595423366568916740104048307296507866780788567812311978467851339716878516559035874408893056229446791747545029801542438138215845457301810115046486255381017131153137882420106247962456258409917680746650659165285260722827013689506946795216447454609635756055128359480770297992970873923623042460222150952040563449416418633775454764373432498406084840308904578153621399899695278477244273340099855153727403981220850246807991706309605060280708324647781096695340744422341242564889112236992056536881226585719686616526977678314947551612221590924323698868577951082009227958974142257301332982758121260967619905860253505137140049947217426575835108555507893535449842710022786583472255478294007493589521434790375197111561334929611899459637196806099242053698777887320326007422670275229159602663948962250398694770592136098689856828345278392428141728553692236960696968227630427076512740385556069065757999946919530386420703506278826820008632467099532428656725175933658218046154706266789401899276266631869557465127635122708287938991303255734741178764917790117846326950878255935054088428019160691655567037416251158628651135072858831215704322811604077457284187854247168198334333480194421186293453847827691550717567475283976193154766240606062981200455745097101787156235914924389543752659874242712283181420053571058723383762280042068969756766512434631233086338936417306219819384836890054644340595808485241918756569102696401647023026114920982966266027222133778588536720704917299362255746322996879586873623518429729210451921369368745854332834145973008919756204963149297865030655770949040479918912295786586552888128958356512442187090342943457591188379686877505421027461668544322052045129078625421164290154408952631201381166130061581103830667960552889615789218265333485888938223575635773654992414338720602015743073263962255287806258128761453286652045382161656030737346126013789775555384838560041245046247384321407964925008518049902014266673798923830952279210328478463803122101575628101495840561699213510670240109475707324067398518786785643124750585277549793947750725095807963004244643375273739541762596963810291764370078313510674098305046366309023465800591370675379690995623556283048717149523690130170343347791908047593796561715672834626792002617397733413398771673013230146422978705588791820091700321253641602916378207088926362110485660892432386051626938720453837475799365097046586785587945055942760701600679887905785802271852258128179692655082336798903927305402998566797692362720899587487960430547558149235795907345130208045697457760362136230899973341210015796900286451297373445537529502587248806762930932926586327172324450607667423977448584661333947846591012928632555897876749510751698203972859378277597641149020839803709591150424396697348706081852757534655662510173315361374319627386498733237051468584430099019248087469933577371500920479181768872797350806102676272920243908172928111131549583436027506103197663838604867194085102547749843485710698967205299246878636460966913533925416428712897906868059069619933072213428566635867567277678598177349671003881937318544384212546278881864528949142608131618600930526379056695756671629969239021201740215863875622181632173670924040728747430511530722780817263908103632573336331984433905841641516743932697362661846748457736958842179692973678612818485928351079735575826649023129301999499215044929614093584004882117205215006735718813352571961589504459775080978636044488019140686618354877488463892394317214585637719369746764825958171986316169305506028402459930290074216212501651647699056266073676215262815422516580249274535027234861037699649506041702538086443397242958585117447443190674522049354520942812161804173302693334998870385923910051824546078214825355728240047584862404961563333532248812137107181476997150143228490241071500936036133360486406948555077336065180057256535552231724253499264122162869065520861122311352089157498754777533343539754289434270026129419248576621749360272899859829999482384123288161211178206946100558467094122114409991823264815018790223391987655936740751344293087177529497607737669693777037118750541859045186128018800415587186762036114061543361060552914088736654533594220034540193761317595181002450097712084999617137542466913029903057890799799569083237886550836796722317821973680481248971615837717196407652167386312349806957330783247656013914352050905299205043348551703206842138242676658317611508557852734716540816248293365764308012668568689897132616034856063990210849263368381992127157215989682404505247028120584829024279575846397256136987220700491999385685487882646932312036937411924842153677682933601219232416482137731518240154015035425629722654961988445111778005256461070688231555040141721883810557289345488692685608335657034894006155614569899075959688661723707878883311906179041628570191360672466107636236997807927234194062736703769811354003132712953273592820264840130113137596696689154685386133023397725964291130493005369860129082931932930784238299380601945468518425112639042719409436040122030856688260827700622771451732302960936410099687367331036767544340048142230415007935061205604322482713475674644633918405174728352712388981715426401764788925705712408812537133766403777231899789547511059661830343670993340238730726672113923629220782040351581236292187925346902522095538426974257128697593808135409998320825442089931978550339215522957124393819419688971632151011126159009885482706406483380406810335906487935310514414223208716033411666939139189374559559127133752628233323458957014319893120938155590646230791943340178023559591499160908697297888828121952604320064368716177152387485051618232140259854626340995766162050070597740417796760125998825213104825572656133525150808362841150493564712786849702642509493521709076831498288687806475700942005946840431174531373370816124453629778601739247457474089850449704124739342756398339171948076344434248468630618924686135664239268409101006773923564126955986788321267964473279275490264010373335538765448406278186611992634825151988449660049078063163062784709788365973497545535194509687494296335014803097538162610682994495029840334999531357196432618155850354105191009372602930063932512184068224539217303459613320189304663599418111341847424599822769291385903559391888134087687562860967145310071403963613857312339090934844255405769729014219524842813388650683797255208179539369018277928081527342723307021249926097553853101835828084060327614347148972265358725312192590058768195001584037194444615407793252870357628824434893532455020482936532914411913702392313262906345896640480299482739103981429893799072437335524627213457807596224207437884950031898987270321907768495101964795183871429720392838482628005135688114839760978114647735950187931155263553808368635777488263390527395528871603235534876877855848169174128902306596969060126532261417250461398683379035896513374258467284777835538952287542933223246492433540587748263185318175348554993788441563761845901324436053980778381206116282455609664815004358926976871709697281583992417317013917790107826119182695511134750079543314620165647372212674240650023270000958606947999565208413426105149828872651809504268679980398696811862605807044389976023529371923711921125506416956923294903582729064874481006562596534708657412445879950276900272449170885276607789261229806273198197660452137340689843000244737900808424984338973403038209666530480208639763122732072457923317174660698252868488088999804136018243437452957074239268802806559582354131507180713517513347203756878831331830162248884211301957932157608484340376644473547277806219069108548021632062567702648563959694154686479284702855485395444572110217183834547510085352084122197663484254317346927860000877102466977288419081696295142149935353739468029655826986850581339499857085632692091054410008599188417836691621674826060214914230271529318438755986725431604949075626228025442789594466127703385017159676668871084424509178582982202580834569625500932946314426858421333573930982410697306822424053416195269348821699049283358017437791086008329168705551608980449141691454158803963699367913994487120673319279857487283011086903376238975258781496073151156093949917736313950432960405076136833853674759281681535917592780231675558253220304581777325873932833799004016035419426075891959678360603031683145001199216299438061014069511367789429085551604976159726857071481741230379664055643353910825824288896636260064428810845820187491498453489714248446417442037574301318283202331142666620142133398377302629534185748437882239236120989586714736727314423813490892486233345665617110990585615462446571753214707797270137460879361848007140804715579956306423254004033754622722840847773981679274747563565467201907824047788766659766149237658343112382659141910655829950377445334769279214958352751049043804478671143544274472749986126371587676724540025885256969448233357515204060900475885794339995610964173927432260135776443116951033395818146833819524687442355544626547684381948631049077269351327234331184435786464849316908261012899379019563700191407734443764581382569764092791780956117970907347466914525684064884344712775311903850435368871181400730594651044661881132658082345237091432790196636933855131846423314892875645093824198079306302314982776560503889904334258018199540489201306383082773354119064579776071089632697937081661152012022341787927996124596312087564475808618505513070539466116498356087026786540500306720100483562556387844911958847806451828922897276830871007369801290613771804862386943141528570439942988264800959331465102067896144100638134462737285312415109708233016630410553606495294790642183110428572326490548543341811168826377798341821319877992443448742536671991053958663449685305081446358796850501218331968940810131878024038891740117511961093697598242062539086313173596590867365629316711036860802827999828288773825534283150647497922386880672510980804492908015185109078478755486467196893749454930314095452480730009127095529452357453503400010232524580429160707852348012951483618172844137161327294993255520207256170214504970094250209079476338688247555118238162383791198586021416063761331008030075994271405967971288612991763453299122801024428327371091238700751325160471226924158632938704952236412091920723675202856519529224646513598129119286205446341518331250820782197327904010796644481130094033050810141526685763982685287340132648985921354251358108496722064526233271525391407480182246477556613711644374662577136686186875509689968093686368260639617694000119777999855534155343502430653160992672339932004911087149690970348684863116719327566346049281382620359195247844923296066989694832354122981743150891320054668717531237356809354310781568826541272763784177247791200020165573522496297324265386706883875266696074227579218307279422641519365154341934530296911292764125655330684558429777218342797626540977561305291462851337075073477321504864103921362658185718552023058625337293108508691347297768607418087797368588839562589818826589200607429627129124833837910710533665124487746053544520824465417310610475086439108751596463563866137797664889544552817310479618080780138076952373221391597029612088829610317609207693721517979247148593392819757099098580354857517130275490455555577058309190712249773514404110190010660084872016148097241650120156967236472204219971544413521441492856657773163248452237621483701065545068570174750855826293412476379447570867314440112788527142896344052625901337597047386239478090168927804011447854869576139054210057206366429368375001437999833844611540712365538323234596022372320919386922090852977113398681077759291753559917362859320892247972853977781298832462844497376797675901800427077251633622453371208397975695813044158122617755581444311525409507035673265310317526220997038196323879306066014414815043030164446526317682835755458202216182441704736261036530854009230432168443138580238938840764953449001461378167953511209390409630890691865321750260630872759592016994090846146369879881454335205973767475838020838884172149143438027815788143339673586794091482926074982004895068924663627125681029645634195147838132799487720977426615240971581471039155238698471618620159455224448217219629393836058248519507678450601064511772659141830527699412669804482546558101550416482315278322033869636261737858197752837981785630404411297369280638295600437607027845214583725617832763300154061245350841293013708462448800678830900676800707498013948624209339485416305567253209344705628124348497259402777195089830315738735942534193181001559372174977366691902398575883322636925345728797496400712844231159672687938986299235613406342314757046166334507749625451060316151633688692740359775952440322636200545118082923815646443758568197955787160597592824766097468552662518697196412752194168662521837860265338498878444281954115792611999933265596208213856037994445015184199651699660005549963879097818733174323435119242749267245272961760631229104128220375221730752391684699279236609611314867900703909341102193795379573073297813106726746494577847492635824802625668999592058787654646963219191394941656739869323867886462282969988326791252453263218039344364200501657752106971963451127445200492019858627776583797514243546577032435113035460062360386173642932289229189679022625237319932382711586395313558517899669628401912559534513738989012793562336489609342360961008435328096380715604567544920069157827358055300748509809005942372112725348115233762658394775667905452647924350435769483878000944972683221040553527514169449793694682922652496325529244921060609274241426473599357759964602053775386968465243676740435238927096372871769516867270476561345301422843705235799002409954887649919493154799282926979697639349729456480702425297257969067679867333836061278534702250211949671449861663810657080414210815633494384407209075150457897091602336572499635585272261171405099069936507570471144471702066382403144501364669648333559117747458805868512198042888570136738135773678151996279694775468125560657974534336772932339479503086733641699786785082633960952359783059500532643225358656195299935749233247703825768200813667367238696238753372176669326568917307247571095271939327594342935085638211423028669698821949965584892581405222967058465319121986060271238847079982147154728786283752500066733987619640316117505157161828710925617312581404796961150703262772514462920544215766343432133457496234706040896659131688211465146427233003268908419723261357537312577325091718438199216295553020354492806236097307109472444327445811364898042188714112983259532304919026741135572677293441818089463102896093955282980622327707731802074377974920025679918087102096655714794471420634788941031582502814757269237932291027507526280672312362645539220065765095097243977364820180022253506194638378845463454397065112294186612163171733079243007677777018275484250081191611308390887988507458808438086924146448223064150034554815027687940820068942346474175154609180509760286677750076092535995227236548429961205543881736720338471493143304387232781243190390686994659621305754204344289128523316640793759512534425542892384176675740036966011550604188299468206892380593149463791480715860547303037906430265562642975392203679954165204025572835814107862154449669386070212016845579173150000339419039098761454632342651492630120459289352850493583501485330605104507809215567281316086494142983323479247166436132669283581826649005722271543064217105406232503338758865335763807461889673615394642976669803633425865753151210740346454151171119906879338457052960648314042943263200795723129514712094020587606088665049364585944128446335932460016999601014994534376362495486137433239234391131688237452308352653137346458974929022076123100035555900154348492551051661149678868566251227097467074026027124734385902861448910841306298746554790667617875885312948763886298997006373961426089376262141864110722581845309725778668548956979224192986748496319940704581728928622211037807778939805440166857918801955694984192268477633143148422166590419149076577394921095567021721836325227342955235364731651977006869705324030060598538914340916028092305778309441661762909801546552266022926517277630514310555133622174949662082046699330212822218323257879869715547098690300881902918967445952432255817789026586818954061455102277113511271142353227927762431792376508500454617261106617430890772573947032835414738188957820575562944928624903535315087132616121088871955406950128532746720003600288381298963366757841342548671235137797880573882825826889376774395571765407279265798905699686707385557400463989791489434672150160137228299017939724274694531241313309200881238971147492305611117894995506121424214023551252323573978187404649320818053737343553726427457329563440382153015545212394052231735266359471665250552618405274986084324467325114110950957982341555850820163237552647716277868555673038885900125286516739021447186099159145020220678598699542171643681327845933313577055889168668306357097998831340083271022582123031927138596819533781938028509471768118173339517565776841962975080418492497799419561709045627752269583497265686543049280107001488459721089427350798047619253361067261234979348087302378457139707750679588034889238010935434700492739479670810370930307080927357286174177970062925918989421999053367215891996497738102240772725825227068675394642969880610765958322669639370941838430468835602655247843146945347115413718302353740809822309379959261350088980204618082736192322844535255187648775558763143843880270721200769064794309299291265414098345316025500646413285887237117755037469381790100950553935492971582614749551576719626171089081937086018175769866810358116771237468730861218436113922917762764511027479612242230505084974449945068263981038636712406515678225130076553499816483421122738245483399911253405592481298096021195454504231592159244888498052356229652834165045757156743342029666420960906886002886650929107081202812212034614270058846281942497365675321827579440207142723414099983706004400486401202133141925119769471661214601899004092831271977483675270182485721019561568975660978286583145440255903262225179755097309047715234958303486056424984156187232505830336885976183955387791037123089333194788535435849067027889394257905155037948211119667877565139021162384304536353346732003229613615678354780287118100947813775222125007382090494327395674609051926988919853615841152504406731321871042557211587094831267108176425657073875461462482061426532854073645638079308716478580490927663431516311504161404662922351836677610237531573771725666055217484110338847967657425876606784971286132851633918818557602095537172048650868844335541836479863419042504482074489280891992287822024634068965422062211779996776546088251497630106586410432304726222221724233758267758877119058115155265693868005398044201442366164326359115875353684767989363320529288887192484933080896722143363826429697104181895241669197286469144679398394737299857645002456196833180640899206676750267845363268466551699762282907527374646781172828510458803079613888917147876650545382036628782332756145980666956097213608249601760769081708611965773931248551827066970649990364969859705422311273512420895004926016566333129578006799838033209983156663215599171844635137542064792662546303905860977752893244275692788749974268176329844314466268530628156369666452261886097530652502187417537604957635096553375098431143953893450820852491170948741503739352025529759384018725350837430482755471956230500512059948089177446514448384769957195832585871343776250505445530905209412863854125920157881879536541774463530040341421332094222484675080585115738955468647683293060137220737710390016848038790798362659542576088522415600086173400229069369587279979281521061052089390239727404653336398953280035450134042432655883517273352678390149374678686067270511416057724686878204242843300100295959993600372367320377036321732728257932914877481991001858506865816307044450970380978999608102271067296490882661716380355036946812568841367464405666188335328993386873557001323723637428338237857787102523669899522297081212591832052893399087429308465741382361819914009755826256010918346803361763966998770916975202456304859739199915681421376820532163083342570594674636700716748949160328190347504544661229878456556842623343161548162750462303863270239151246599405089935105964108675532833269212701299584859333735491092789173752845420455395468444852472188505623186354208676915470916834086078971513300576267236329931929532585679008611879883667647280451703439386866797584706974237076822605723475567814176395940227764891057250570790148295669850319333734795161532724747650139689307624758014274699819142420088313477581757729359564832226987543539871337914862752600747625736528201238564051707239003538123320449846079714361353590557478475162752510928966214499601121704802590230678162495662120604387534728374426265669394783044064628459559954809872789275168768004783146765921116263565228003419858986178772904384813756610969527797728133571809061312970213108097861202012491822683405626179150563156123544031437305705550067749087077494135390789316554995257515713280001124592942821731961993795497970092891337945745095894165890520069314438541700254155531026033817408560786852753124171073428448736843459977153499700897172120365438315308954640462626968249528556736779508484986498175815555523479023840300958864521834915668229295687930769361480768979728489697880544814156033052687148253918267343895745886136554211196618477139582370583736781884320876869002950684996653461651123958532438175676100355109877094483700870233857291046782587973105483821498467606595441513816248604563844358660802333885353931253595639420517692042830866215634846549579963657659560426217097030629182525423583701983982136268884986238823304599418469992036738737071390948113560172522637085284292016445106876368768881941926342574284150870155059900097135785173976512844984651145173949449099672557610907220419644656765551699489326582988809194330657110942717189981717014008663579297176587957520678453236184426552208832268113669544854305658547857246175781067355863578525261786096462958981360319991106037101908683444127438730349793989616245419773699725527860368781090012155887122196716193893866555217904260050118463394319284888294663230847033847390044333357052048887441264761591259160796258048401555260549388479437330266415736040591828449724262284946296894442904628707895937664126582020055157144903372321449875566486134992401650312128481858500665452459962186849072405527341793663985193198335597219704559131275305918243758409985887742585570115588355989745423592988528100349380451316323605819449183354251983995243721583693071300811085964665692085429353368471522888546105500277231610383528556447678415861265732026827345322072572907218823049297538080762287206055890337156711819634828130046309629861619574959131539535549671968206978173880849927834531163306866001423008563722504833728146145037270828457868641868895982529253070106241815512866257472034984425511563077963237231817121011819979420970980532080460542752242395952536200517222315938298167818200581477313516635754626286798343129669884092303614832249075198692031030148105259988039973101566816327879423485609962033439112984824722153039703390242139410363964573570775549568732835418122340604376784908143280914174269942483116130167014373602495702613036567099874609194396745947381874001456318250997721257994438333308106405573759258907874073812474763091588946156476050181021347540725269471325994741441065110715660288407031664646892331890722047511103424092946049581764512307198936588166072677984807227295502976081409790830858283391031280913773528834769623521188107466393454416400273086602075469904709619159441053088072696124822190945268844607284295178730411969076337561948346507593139840330608318146554423371609917647727337305194838030231371361260136617944923253805087239604436691583185354919777061327940262315907382333684595573387132576892034400591854133846631549638601267460218628616730119156377684674275475804105570914550678074506541154606560570179455532167833438390183877101883414985519060200799644297936763342829125369719343343689925253580459146275177419370983185837895250766625095265287943829307581264702750048458205955563443833635056589689978977310040749747589152501273448636490382505492951336687429630653744534485137207316557100869248328440797151057414986424265763418641815228176299735823659870694219380589853659222627694292141905684175977620497079404508944609690415591787237147184987367710424014302347721888515301373249899069565697385575678186002989118086414934876881623952242929024346005788005053541435071078038483453413433520511089748720700812170731342458813718538654215927574259819453869462219278923494014566839847345870614060930102969392619908119967621008877644587831739440067248679409790823442770628866691526978923222948886635365960981699485505403056428081465146806732030421187145017072292234402989516650302734651056899958624341002350300586533737786143773884623399657045552108439656158514851387239934515959516211592640806807407223333462003481540365853124111944025151327826060806782622002072433613714382478286666591075660551403561254834298675546680234345822067123725798166311876260619360172736770377576748453328691950177306078232632994136068506744042961570957979464639609364795872766455782915626909817228013221988697966230436175583665847993387071124373954420862139328115760230691347407529471908740931172645102314917985673748122843649865595269673330313065076589575894870510268344202122639401997743569009637246755424384539467954730993841343915313988719143997498003158153493542659427671488719098136445902037280220968582758812779818570342737193478181874226220884419750851165277068616372842443875459640193524204467459157337749159577884546147622211118864253453331645389196619125915544062400505741762698319146806487790666066278256077848877853312729785976850218677718439568934466202028597262257542161428335323950286007627529203456757369077227016283763645181024377353585377851004923725428575581982386772751370107817201154436772546810802785722859791687706152719168595425323736259701378805002840509921777469805743006912303458548479686906055321316262207608074342572301456248480224409326989948831840999739076726815452349733060319450052527026361229761547197776647680094906731072350017180685084946633834483275225134554686022911628760434401891143149856582128831283219394584943415963515434511163157859956889803667216200796322124850974520505276996746848208702630657179927211674434615287086067803414144186432396129839217611807978255679006824372976391556396113857163995083864187954867102550862665632260423176211629509135278718658229184265090871835966641971228579688340607717793380908628732420328890480911394946216619229398145465973233512691435728778599863720871586123978174673960890054788632949832039746802831002268029803879206566634833975345388594974055592255630403402188671199516248155872110384787682539424907458521045087803572642296730282765416601299316093496607998867910486341482223408494046831508105470255437407963574947303163360736066865009981525624346098616099295971132496212281149928473062103658156610512337542067359229665753420756315226739906311534630815444917961302432688757379249095007153878085999386498169434389965827793399773214581718615533629207577123459608565226391705057737968204418210126285369589524294129933554023883784027960869692282118175320286720569816941158577371007951120525714808878668385564910815340503670029436316320020655121623884202939739646462729654676366450309345975287402790039022631185873319064856381035119758654227732545993752441343828332008648003633262402721409946560729347450779509528941884608321808145048085669886124796398853105511540433238146202462675083244825036013863129565075422041745042930279627014462809006832884417946713554454440375948244076579094109047327334143929615264785071023480943358382889972966921752378667827320020140021917954647069895950949931558353693451181551869475966987061938214224308516013007629440832522511466814638265490514110245710409466325447640621979483031153667517231512985164094994539088575979636618507023092455184060195372754345433297234764244553168202969598270930183652977580966025692106851741587048454737728575616607810746341404745880015926434553464294424150085175779927456267319455516508104138232664929175488499913849992746004053181319542108647317994313833166164566235688036369987755695446384385980983230359268305068770086020394790438760319203995227540408422019507909808123310706162245448205326510188614317863740560024763911928566596020786441102456627274493674940693748956843762386213610035902687638648542091331707822808669046596159399958566970536097716224800363035240256551411889450049570323418576483662472637980325091512041515758842812527467269878829767308059516782660993727079970992108401430391006409528483279632082995106602700971261120880444718447036197481370232776377069174586492081187440477288111336839777167426018672764591996388721238883941107237989989866128670718710645806414677053444587590574153634653715182560895319652352441512428789508033925648174095692901396220314926563666132141918195234340397185915002275772045671976068704300567861097699922196877535136165395333802141825334963668680388131759376764596394860068489901585229661710876811761164947171265581308111020780824285874851272664443796005693292880815784596520193976023477870750034864478225780215041027993632954543552724160101206030483415985567613842972392740676868476067622824873628299419666971323539187664395575842399091060860077790775963737336535284224013452172169776956716316968906333487575393007028824549191624737273873533137601342952592712361890836610735739939034998805797980535779886085407649167668405379703324886777502065638744733722562514196092205733334994524127923774602036364944122925279595481516872462978775647447148273591791170637391087780739707415874238177808424381663250360147971209091473428649994788000528391320397497098457951329098737608773268581603625149692109603758313988611085375009976590388230013768568865469084171915976223707718003158021554273199047212929753378688042187930726557827692284413956561989820943060171807251436271950728311881202040559697191019234637126983906804551054034110121631683769846849787625636399295158151187390435620620869078085891664630499452749323654517897893893039414514422128565298679401887618234032898773389868447367381072498103783121148101739464115530203573287845673960961713040099584663338496625054609779281913808466497957722483955584372479760155310778841531103033010507474484229310074455020376563165841779072923503097419148746121572112363158867149627302659069024605683850021069355457718545726164628876839813710850208176497052997802565886047109677448786102588710301515090694003027490443407073103399470158248248985044770467276590400471404581257382919687935072292753815454324914673387901636475493541269088231927108285892919288875796129189038191431072116007869418965859834500481074307578834843623636179689997533523637352770001115209540384637057221536047265089858703436799369738377632202222612666016400766750434547946391165148968146775135330481800973340156038282929431500783456203807337165252447879195536543312556104304993458581413656214081012729894939860092862787117025622638246605885344149510547766016546908185921090493240551207038413734917493284731827646045309159813518826840023090952057082003813192608834514026071425840669092822490519093806490702431695649504549260263260944919292997298472227616262338543701240363524461132129012238349951635809783911651706998853396165288908586261183829645874507779779375001427224789329169664178354803706515881402968849003179761817798153356151024721069433232444517446060412005891922644853702356458519603910115025601598953533044713274271724089647678697812955928094034513495980228781612937593506083283086547454425041619772800903036400683758278445690186784161486756927347465786651591120902251817938973715556904105021090534631323151416548360248115916859032493242100084779889582324485627438924717038458556924489924315608601376333290864748489993020716013438536147439708986768590077161721842046842443914623860180743238111745490631534526593500979386706040902209435339900429046233878602486265853617305158454260081637712479187649056134136800105170912939993643327478699031128362061329567099422135299416962238083733222588806210757410040047695289117464514862037276840609670534272554490021719880298241535858073433306717697074360530825452537776510515569799371788140651891126709402380771473165695325903352565097225719168632232561932931648462655532883081416526158465982090380558655518018152509274487965906345825150034850736105230640997438761294670178532311470822085264373848688189994660881338701004351782254228992598693997502671655118677427456321013459336504383308362051846177760703162974010286085121617652345922439075807771476710747886533800125438839130582356851153775186548908990508594076589137707334786555240012269986001053980446849288992233628183611383357238987851071254406809683327988782188933192930984690439346575994708913966274720068554409274752217352469372606141578802222931784553490543098309065341449243595352193936489490796989001161280350593847411584989611131672451144445483112447475632845311761758920497258676326395571840804758963137466544023970529871991108489286955612397888549849576098441599723294781165456301992193322436089224895368428245877288467683142397573424778626703200670809457261335002685535065851739702057340557982794945356565872037072656428665467413159566108254913070445265572362926688410615572947024791938922833380353708262152346816772500801259803286630951307202455924659917519161334201812665296336924967154615824525669158668021097452871944362295890243732805929950533767772312056888402601083673840175481428071440873217363774613992932102125258292832817481875604412678491426318820012048463732432265584157006901921634051522993608463065009347497190698727564145421863047210725413669079171922581750277396780024392667783249717502800082948468484249481790328139342154667532212383362202273965694547781856380048894271083276043919664987616351402315468375240196929496201745779644143675823064769137760850132618499737766492163473721376540458501471218955619940706262319086901895086460939420072381727165051634380553159008171123988700933922426495575003120746348260564933888177714011397977985961798034871537300470283642517995036239311384451438937586599596184305405657108415693510570525407427834755812902024878240108134424583798740446283445794111709184366067994788591529106533305034478072833608910945438094049993418468811094271159869196022424555578667406055528568496565431010608286140078070157462539009435148611632554073185721557819198850586054923036213503107904768501260232182711232371874981527318134800183268323129541773695427717274741053543770017969125618051086217521642576229330409978059695526295720540966630085732203490715050629641501340477604841511891855344415804939565181533386929000660121006059507966554666951648581611033501732028930589952398488897880448471042285100964998355208244909189018874767037613873443722942564294113739509044819734917949394892992072206194137951421673602887556949898540875359175300920706900143174358799193803857497523734080095676436585792348288036317430494240165633014961882761356293685852366794152784110098456463497272254365888113953052080807383693774358398803829897128685666690482678093940275064265840743424871639681706392664040284638304130547329032197138663014291090338735236645697415727465511805141062156540050313197751202437305556200243356867717183352978078205477620849737554618467001341424525363189868584430758595614353671990548715646223494465144741861363245285714765370009023756808808537016812286705875972784461421918491148777135956968665324755963701022210481373946199868744910816775223053453735106159538011793643971082306889259850003352295023814136622339200554700405236675811892668348049665007417285303201874191120400496600541529692508141612984015031831822974632117453770590798871907546088203494713702037929287991104804028886933181390048231071210838622023288900869488913346105169902789756157446996679213669899992161638230561251998564496923315159178602256747170728875726842734013476781650495676050681780907269722840367188218915902785284340876700191241709081303018077949089866011536694831730895524744427838236261885829850429788128828326768569989692256908227305020906047628735327493968055119664378011199208671400369718943046899010818493085026328203215963041929899582826038068992609636482870797497337564195605304082157079301440378282686789155978930880512108196794142010203047777374042846203123728335200043161973223888099335673118019494193073390122848897692505890149877368959358021637408355068915676373709094236833396816380286517300016677116714426929018651967920784295158541503480884050412814540214282726622769329351837948485460746697750443421296795903674419130668837376869737394348391787984649591760101104491024798054599862552263026085840167927391355389400325271855334377989568014704817181730904860119320017596359666347110220258466320517568446228791506396784875998368115029123864009431571848352049737605757938155930927006721895268345034488923877185607629875334176248113856912985738716552020919510323973736474676613681644919329348148146457377333178457615215543797339726954976631508678218803136660497385052008817610357168539320878159556437509946159696514076515056034432194017667209804943577596379412839832379338889880900617722943422268653150852018100322606898729021484045811848402249297181951493808740026309475594818748378785967352383975094557085232534045129727069211283169005231534809437861970541067353874192851758638988830325295900926086077651100032288621782796454375806917243425181985155153764754689507382534461002932663584315364111726461582709782109125095402288310692148271011446028026107260742773996815791899418890948609705083323440395527187381533374006011976348216641842938827083017589868447041036780519560369852551496887991218132636511066394588962836963600540954407146751186217548687789375584078763419297466734789870190623238112129882908342148492696760148765265604963079217847634442593780907404954747650457968627037892795363659865322511550777805347920506185396936626848802264057996418253717098762447218264014863628001409276049214326666201754919617556718670190603962058802188755875277900777143481886907211805846112402904705747081372596867104355806369982291147532081616926826488826517170101741282790306948561688425010619702877801013999311967501316110267688982068240478386931732638820281947623632610419235700965976404519566480186421824109838809390483126848178714477091679731565459856387935191515601662882477640987682697957405231321272938408650965871961563322575161239652128464004869057341854594979625405475755088053170667543835473604785566938641573709798801064546511305760214571847576198689226294775954196920296442456248847243733170066876122807898786223722719578113349260526868296661123878865713899131621692485553673937635736681182656208393024167479305313230632444759801827859351754137890370635241562596167323734097746957767296427519437860101739126768651450287668607739653131054618428334058912437527128547822400233522775591141875642591751059362742020872174288117057368311051741415265313535883955347908415408911162262744006056252988639706840290718555892428812575323847482582487495533036302544909584090928033912831160334769149657153076896755573245725696203825769459933392845708059036711440535986779641887608537524451388906860959157371344513080499086772196636557186972307044445430277496288188382596502683581572790606216516438495838279998182755679076344353904229033745731282199047460807036173641851817556396662623592027818964914491906469136155947833671909075898047518864854347323379732214888482367486302417942843099689815968201161387211009385886710255563357278284740006970487337359446026356022128966045418735388621531409405329696379317312975713018215095897525626389172781314114996487978454364690190664354034687470196975201914401861245139605640021072857528726297137671011374273126385959269628170560143535576570754529638319808037303544616978137251715113517697632956169201567662183199639165281020690788991235703508188329358406376797598358572581431204655137556613790750234650375034630104360690722153227125108962525964623101917868722701740822761210451184979507867904450993834434031224084555047481595701492165565432749374168734472161267784790407022920583391190014400347277377323077903356718845516120661209063388332935530110635494130202758658671413588492091116857126873325621176114357650372620074180532442391665471674503619401753299783776826957461387555953173834084734477793130295008410423601736428924160073538741342074986044685609830216897585810496073379177226959494455331560392105418820833442358774566862651102209765016723162590490335768988691243887690084371074008713188734439364484427025877849039261468312736291951075506351932209695356681462915959214543275008946634549037999845654940712640851045499454837016890413337816522340192109959815555350952339633553383225183617598331304466013035216013091719756314434776393404719324773085739717902726194549170719716798919754672238436370998413904790080957984677779173534332685304510431820695350069443983830172990583681563598799836106416466955656699747611224375005906874976787484831288370156832610963986050142677193556241998972338412669950685264269209316893102924005131535796673979029186107600740560395717971216691019822440158679764970521086388969261399227837432740437921628904786130204068665025261419862471982779285193499890973802742942820116519980171570911034607686243370134969708453988623159147970029625370438693065757495436051000207837351421582694885276220638805442068606830567487429647473263294978574068981462667095143894088075091713419093922269836471262662152835871026135541443871996421285315790944508178123703254419583470356451552876679201056598893821405056043493358649376706577689175924682366740195732846874011904042695424584563714561483105171746805628416794091158387440589265461008893058275331629194071858695424544053982034258716431412254378886781593273410494385788941864362595284466838131419245572536507757914672477391766803179914480700674556759590328904317218784776472459709664372480209031177393852938105550313912889197340628188165827990972039068326247915255739440806148890633683766695107778183045796585946767869639433806113395183724159221041576332027831327559119349729195437517813481855659566176718439273455853667448257945690879833702600177347368415256765260631187609487782971696644150587404711217625069991619270947773430170178465550557992931338768074193637622217855621589978702136620278347668062619838648817929256263605160215198707718968099813034368455729449717484794751690736510784150080390188249857399442680309219053778654865640987432912377615484871972180396544737863189847934043234840046123711597036760839874382167639763428720155050084069271722392108844320053566595643842903813865861617908221555228577677383985492821213815490354018665800526128463776945334416699909329347967258204820174140058157230430864116481738390354924203175951631478454106027028628510322215344328551012556387421838631017357240810104627726447801905464962463656557272022350811781984976894327559024598956924654800744801429850157467412065547564415513535265592982759336987094145813286227445456505623636411897522482181949824153420219785837366241357497715347583079805072744982297269220800743548016563452555832950507525515363542589922411042672660790907851657198945817858842405002526007187406935030538720956354614460385882153334919766018439905947954930147927017777671976367774149857482795214300844428183612622974915648315026382230650855737956102062797941100536006150776458236419514374910535778897824811448263307015320602061700338045943271373414339588838331617252645377781121316465075135826946283116424111444821430642888368188026016105244187590214628665708183738525564993862472491599140488254497062821005902615652814807575836206504170233912525198352780726610824964006177622832852777544998490541651709865140992290277912677642822148608976096466827851238374399012608987146462679518573765278318886953912975258042496384170502951514975425772645740656783883669514856572538028354882019492793139327265520640375815095202896144523046980661571844829954188748879037338837501450048007068516722921194735333909093593709665646173896162494146265467736345972263614740710099310629002399098594990873630962425096223396006119295862083892453650033487901985845514630109734128854735202239237066061188326863138373414984193291922839812392766319446506022760271020604628274224601888727245948085253419398262809726954604359128010070674987545185781583945672992142243885840956548491029048811294002400231053340404440053803857620804376176124409255769137048856631926058398977153883430121531868134401825059137140628269669421205956649633620318753774387847289423347200857429504779413521414446640197487650335121395423604582642966845504837756110525847997811535094744772785442724901454996276798645516559991723390223668134906639163304415113917504257675045548021999408382923951609494676798416625543207823751001254071435544894437900096501650807890882974674724322907890332270949665072483256961690897026589585661343366602045180503252398132160597546747624824597273463170107272012458958873447444153931876946827712919104809013365985541803019734117774440892567197841757929033031214098705780894220566405825857436713539819042856385217675207667688626626924939283660515483678935970700548724385437430025442871127362847959025224769309958681394060687379835531888066224697982969318335240199637926454423680702820236795048195684243978035160188714457241931678984513939470209283781362819582169224227186622845570585376860967034716494772289544684745251014413653892435915839219621373497057000450196847122806871368153035825118987444914137389351785843413940015863586175731799915810023129229986675349830899839704517763996298105060811666439807498894666513722737621650508342952931056892686957567748516221344604176718043905760022933965187957865502268009310815957236380181513650768378979734851904187432837368200020603720826854091654779967534959988742365800504109988071581674368085005345705537849109760819198721908655171484369560233375068773707026502063250931821758548537395972855048899252878594846483635343552873617642696825744913412269504332698796309082047874070886663075272952968127577522175898954883655080608977753331512035302054058735648541020155222555601444425530870094605618041736467808538140245126576042999886456913871646588820797593695954130211560772214657501695585252189520937177896275989423399404992230373923905196533892320499932406322843613989838406040009506585147553963362665448095180368351000712792000573626505410616420369123291788931364972958994168384421124498345331090344463764262854537081343660610285760204458557461563206701561390782167312405652372043026332539813802065470292241465981502675890611469267118193495466097052389870324789937036606823164658874873023711038770665930414544259566108650022998166343603310615385184048495489098834622854061616797878695951530128726433159008271328655462546206368724863910343647524337288590630106458816303061269965426469148329598540154563529370505089276723937128601622023664812899879337010257951594214552404844380709169412045274671744893180173618607206459278258122395821859281673314972873785780496312909080592138220735112638456705777972542699260798844573896999713562544162055003760606863767233791699324670657281366380303577503902553299820299783815035340784478589629669124265258689626802341619099882760519744481097853446300293642779210313435604446177235868109438951491001413382125946700146856241265624318406012586152173619855117709433814945469670353891039176517155212931803314580429952018905326216546022010630686201926891879303196234447976828926406081313840343094376447811125359790908435563176507514882280397080867856179995838869435315234638572257800508732139280805988847403498477416124250640820263446253722095354700238624342972676555621378348556309985603855835883649723419308258113495445232039129085462730980033275202858052573094820256377184372174253597635798423090216376243022901791063271467603706654997197375904440750916791164309968004477958708882137805453066213063927921197178404567558078341807504533531675393275933013543497251191354305000096334847466065711982433037174429416350574092011144451787251215068041008674198052621571495276890905305214856520575906605940399611512463317291075597722149961448949876029283355979137553728483758847624887218913920701889564774457640815463136479809150401014155409667647296238102032340700559768468317566505050534504378383393419268703747791469269155582100838983284086839102445288424281745996147332586341687380596031581834450562213344967059315402715463344319237112266578410317164675311071817837994134846667322516774499119127262294462619328012870756943212871357692552787461664956704912503490934668452065801239687108173362618875067306742290677490015247602771640460608711517235129446810554315279308399495841105304041895560919398260728896911460127112551626592174916926595901789300019547577262626351425631006771718584380603862373496150575108225804532093541043046360529800953146986074301980980610563964958553008087080996530439136413849723381277052913833673232338165887774727436880044314866469917548713887635563549173764182103788258714052472978681680179426479715916797500965343055295906524779233214349729039661326178860605833266894219877405342589410104324170565535677739503640097256073074789899313820301109651767177428175999728020705062717080506153731148566541744588681293826197285302236131769475226782897662342251478201963601661857821213391268687388952094791480826076484213019041653623584561128790820619468523802840852355699458597181683852157828270851961515433792051820860222472388491592415463021120377537849775875273077730176134697124115282734861238895111202730465351219945323782407861054199589351410159884789832200270553228864842873726848382641703698660954729505831066450602092592313534694538895378158237436572983704433760092974757104187490667768621729860839558425530134268596135747887664832254700079528322465297919177653574605496362411033998489307651972108105629275391404517740318668245305428656181588728555126198152460187824229629336529479235221403939147546091546500863427908829902931807965532724467601949077815203111632502460828757371225235275752304602289107588067941590114838360843488487420811439366779225720533592964920348896685847633498902251829297966303469372311706470692770450197900690028720975818987482204175014286416335933926992243410968647281050933262471376498440423900513998454803192319943205982632066176400534443886913167960459391040742402352530390290304629816783324971495946478277243909499988176718621051060740829146717082837323426417195793591971283909699397265499828492900211427873801230773774397455049551405496530479858477497383857391213800648062988810322980462334342409058426598911684182821010927816620013575157744526822662321213199683433611551222846913263415390186990408266114711486362935218915650278754510033809007909727445764815518209864274492089124652228622429557932651855039035150175301130779784573747668448227326333714967860900927524113239087393248571757712854605493259092221211287572011539863504483776857303907700398010128664518271938280266210239376604571876007100993048062925898535584832116999679617401861035665259743245714716598595369488450805041402917925885562266974560268522141598366934374176151118015420134980103119066257481491926448753460857957128668091587461539596087807798144911417398219737760375728537433163565465896657869362719345516032494598205974004638852894348802249074753753405546115792666418575288034323780550547166475168022450700177317244045903777105447672311223144393150863752320712642507471873926554874704003427782645400918555272158931842325902236554047061550647687127724813389923471466547884789798069626894877227683882956901705805605395221696873192205839196997693129740671151150789902071463500072841927017027811119612872856536648459753216596753910122993471809249626223040141849447909094726755665792572665813821513104252441391623462728002682843217835319779775057103895743202326739928380797042915754303110784774429210597165524120751399040211900379780840990611993614548928812673982558605432158602731627142949927799726055539069095427476304224962480660062544904580961084196894494332597708597963914682747737895475791223559296591502864948662812045972899019773410189426976081958486668962521853374172836691291461498278860209043984723381374801003370778218383340392213076908570486971637771361670652682494809192033134787525326422030992534606622762469669492423633263244472637162039705036776371902424570619969396092232831316923200393573058539021492304185708876996716269586823307030748449843147718321528524920994963527812110728300694565551269408307282236331033002165637207212877873694303011303556845727805414316198052249251200021781664121437393930423418426700330178799405722137383370095214094484190562530029220658538181613856286949702027886371228370298270309538161290807564329317474932802024651502560333206625780188247609071919960163772025224358563019398257874773726293889638941608261073231212096826197339796073486932323820618830111036879917868037902730683209316852199435390091094209350151519567012523669673414182006117127459779700632101563562248641331208583231935948587686941220141685999458117461307049701504851924334152241901502235322250496121524945955273713315752486588584427231269884572378093941243527400082152375192301594052871573178394362789316316149435862212424708573091173508095082444601573535252446914414511769771771965751858627002258723766253948866767716921315370623637534658135949822420308538531894685410535979238837132817207616476712526242094249298160035939649484122817534777313661469426925461325570348963072373895033991057600483450751895178946533786954067323143606298375463342042465620723169172576667670797160253430548598650855521768603240793277588124118426938682584335774270802702109550807014145398789960857958521348354950935624918753654335949802944673208293244509852074220680968015078075596804901528946430125288981714900082786814608543047612090720304424338564406616783962513847509538664761487819818976759778255735207353998108932739034815382189224707740428394186931839363729041718030207149779840052021462539648495253458111381226648509741895407537806606395060960086590062456130810705907166529458097013540938872389672276952485133838658731264895848546621867487642976690984245720851315941151655404870435916133873516407603568080178569585426715826140086600516653148266841147658164352447984307118062583131418454563349884774692190847123058660684387135544516019521869502073943264598801739891959552564929788934640154899763703135837466747170548840416548406028128673779831394527554326987175918589855211141982745061970271022477663324123999141782667609680164016913273341405875351001874619677382005768752277529258891366536564523035747062279503997820485011037006650427002967486451675860747602597655168614204529506496599320943479278545784971905094055487379922249580898740857679767644249219008274051775648685553241091005233176093754770505969692309897761135150243132636858858162668867302043633642066852577172008656570983159550588502552935194014140292169454565006270761801095245770856488140809523341970214695810690804989524429916581857639045703432114388221331669937332447465313845553926479561123156745371494929657322480593069182617349480188006705219358055467857593312129819623026813842397601902719213248396970982808494983147719450272289021339799681837615399464302973952365190574036208989444990639510847951900427493596174800670323436064266638353392911870265097136629453711924879948963520304467176864632608551396853736806437545594037240822236096211574507715402281281502872840540400402112972845084574502524307281467989201645234306317684654340249850448411213241765205901550356262730294239401970604480463060267709174174013879502851988991299944197751357855905826655813696551206151643856661140227921993174515141635771750668735346027945730734852650487410698789645146710296427805537601048064181110810548308738123100900153673256577051653899531546507525296181186544199557375135087995624661189824507850173352209803395269553270593628209962583383434402645123174298127442569319262306996475628707278787163263838320407085992163789303167987762831042925896215358714609013393652821344996027860969895764037143801518713458553870346413991178190618627909113762993571303610472715685612416143660450006145733512121397335064505510026493992227030098726704892699615268861521139940206862914373962850153793652194726778625209320304668649094309273335142803672968362331418039324595684566262064754173765431928572486305334714376619657793868282587107841157518360058360166236356976189522683196296773134160063711043747559122181904409330154321915238297513254995971878435857025078731788432545304351689711447001168088304357587150020967064580216103072422323688055785728942992338976039759851598321891412264558916041836318382126526921660720033010074043669781961538124956647004994544730909908443469657001387348289395119918334139907311820222197875455986086265817439966114578679523021008803845845402591492898129090665868092885414590015259137482981754404880088068613678821249796988601970244317288665491291243107362345794777138292690792767444297510773682779473885033275050900182160110425649676159984996758291208630306177392692390764497974702969326961225091468783726568879480247673047036401874472788519277834013548897124666927886780441178969897805069410324114469872174931375731353937592159613003915512125588387215285533602033086322637929784360552723704966070184263901959493468842197039584446298371691576966121337628417887498183279930799266189562370961403749370613385651606103543814530504757243178281726327810094831264253197698546340919243304122688289555131348655621274630098980573828897739745775602946405450197643670391239609939614809041296053926633018952150872272527104667773956356514338315253212630551448251161547339890599234259112362944076967614709401752927847145066772007721169214533181845936349196149806691102053171008046376432806791341250912323126342492813294185858653905871241652920176783037678418155896809036244559009465354167963362724703569164702338101528611032421195662477606865000219190750385864652779672829952452505622287171644727418895567938269799653575075920508843130218439074221048657297701076646956773693939927101825398833209983484031193963385599192921482479530254353106246555472297386189238544673090539585488246797048576725370006134688227758478711319881707454701912061709788528538797140443942617971874849969147976395520224387716422937809653491416257727509778909456884332798751276512683894582234759085226740218899679657086740785315576930867639590417977794973313235028931596145022136347554501844808789258632884965229780702422819742297525975225322502120653772065936609485514063457892190533338508019842773308935383472920523164719069962277786195206258130454116802856360240521873085421061823822104503270193849133940428367980414420674641562882811111146889649254164141307865607166980437760421969104940134638921311399033030143087698327779701857766549770544573859805092495778020301399176297128298717323615965636102266826334765250590175632277725811201313598187787695358328990039076495055352332969081507206783548672754670510222222930131016192594857481817059985536384326616845710195211290243642731489500123954632858391938315545098164410301822453664275550753092975612701177863362764536458133835287278155790630762616392044365711961223897239703809973534551574449107342159165020493566461233703702861676038106015074934697131731829831129956979278665674566278202111590899454302537204146362642764176447252519429366946706211507023757876691411196723703991540311070612799466847252186694676678300329736668854609577167732876506599696193061698335796345366098314719316897605228132349660372249494952986432478948562149868796694047263539218822919677211453439233508565161736396579554814482567824603717283919192178593662601022442809790877142821455334878255890009862168180190041281258444104442899763433737346659545835502213386750449388992758324264225431275267375901413150570976131098924713589796092723541350208458522471698559555056101103214150730007233523370126128640306588512424426015404270849638949597845949227379095493316579627285712730342758142333021635928161643909363228904108584241673292999965783180389387448248767320384820981931012965720045215177901154247934748555363622785031675910420459017173488735946606214775025058697239179305192040569863856621789557391966424446733391504254921574685380139409225082825949608313906689726259570934304750016661988382656492514680045475089484410131070516647555385475554032888289903725355389054834660175654417102693319671008550503500803223155905624489260046588247727155420323913721758529287254338666604212726194268920967814547014499036852374584189527361638248154481102276317183517627400468283906424959028992416513666620725938696964650919032397965100016289143790087504516099631940595481870602734515856319563594293047359678636386782010255730509700342332607762608904440369003764179122651732917734681385183618106750501479496989129826327666962088321597525871625453893073179565720416281628512997316945857306795619031760761175212819267204447424270209237548714038221871849119226548989560520441896413388948728528741624667536601225215580427497990961015498218977369722586148410845106504691567408939082232752789973795941550639081331647217208549006106534678584707931405980198860867009963499357296457705360569119577800396577798300216231326962676060029598578263215211852726352941382779453054215903057368061248012642757334905177093427721956852212854247819485814010752163223333478966692413608733708557175995130299015037137105985440543412612721802049573791514648984981771033565953460593153712846102861967273695685895902440240563383290576020746123100400005017670306174325411986668307651293350317305348717841879515301380806206517939134687181324143975712266624855030504913730618783796993593670275453369708456060675958394614106371661584659291642641195679640532002273907680245067445373364294366611601653837039171961855227013846000111369400101015574356318640367287566874699900838014445419648437588214765062361777609800163101164890066037413039638177019478004538267783190422295646680446617023757147586176906575770135464055566695161541222898205909233679762212236451103157599959836038195987000373637581172635110406926500884087245099628904422452046084897974542438979585904287258765181195138285089192353500528021943955977390686856194065669858246448672737572471945734618908923558712156869330058230872483728953933857921881273891632299895255596356455814211472356642645431970572489309059840496933623783712817299349203965103471071639438656412372829933487950691028096444105351193886056809355851455033581020711757811791057567369624543181629649728455185321677162813819439263686091784090149902921655486887004058200736873943061253509699900200618643171476132737451414206367322963007711876736861205029149187287177044952563676404097346694524783373154622797661938886753931562077723409916640816995078696942898855609223249690950589287478728639875811789359251752739828397158814408721132558016092182644944497288516143711308501325313228004256469555872212439252543433784509547842462155554886107932103714304631396076339407156601974716735743001932564519278649284682787643656541749204441178944148093040378800048277200859957058780601550487889114810932594084459470121461100226358204424303745376905646576295530845915741688238071300608839621857717745501681715897053054480872878026708758417379122867542222209159869115122353815352432595326237181769199069731060354581726054702093554774021303541978820442902496190225226995638688846773570234674876337398286161014627633220961528642958401798327603029237539378429079603655057041621715206589073394801534515394242345480111489728897082359305891294995965324140048791752546914651712389625465760692025105610738663995526489177296725566299397447146900517182306773216777437125824596641736236503252345665541482971282048919226533398577184580304380701620625817311636961189246297332495864549048465574038978373433251713463227492111174609008083337353673145689830723382316182732233256683563735671018037064679471089581023502768659890980669930301775556818357255658651421726951103858067082108882233094081109148264706338875524834474416617354088400598110153124046628625316992541747520876871516409324797108619028587179943672465740100894489510441950837744546052329887872138864731466533230333017830772046208422123125667684934823715392472867624855925158894051646802542157992933643530267095370491569938198529135015321703132730219468972514789585981676002957013001042919424887089472460071723874130716350554254326195250160880447358381965451589554740133233588638759854780550817574866808638438182598030883494417613622560369511228636797975264379198407308806785223419742876184274251643929698543339611354135862586251555925009379627529332986908877710646500674248547554383384967388176604118512361664106237492589458920138453309172583009039760475921640755839330632650831457492169082395617210220669260827798341479835153606214902469108219153003219613643650214414118421748734941369749190015466953289190980185005413158273406021067803218121974803402571343813743846933595085131868412557685858747051040105246960872572544665545339992752081821389296186130542070188592683934162311867191908608125375082164658722935887077747888510883646744027791689768467199873744132707802711583461932678219487481137700219004692985719724316376065910958331911434507326000662902942671236641308132097277351334399361436812914504390680992451616121025983204534612328257212373991417445753778160029988289305455612347500593659671540973645696837535539429284582802796597493062644079968465027784689115461499610649066816641412977451615651342675837616236233726932314186239910030470317623918224411058573965714811458822222682698548906266267277379413656430213712049059455972993022673139620934797953773723887828332305328263382678007950711949249029696468487530439682940755251431689922924654934141903029069380678588282019149702540276126505426438711058078753648662293471770731920796280965639792753368846459812426317459162147087688640544005170272540442822903189667179728798205465770223500881268470974755399247357374560012230956761853668337877858274014171194856723453764548841924331801019293410600838124959244393702409668380201139266149383612660064249420900386018359922779159900761700451334589154231376647343002112541534633036633317991014199051743067842905321906895496942392466202405246370385912059013252606312703462384857507924216068214330614195013692860262887948704812578100060380146735831606569878110112327930144565687407246709036405220876210270639291565347761577447453889017017888587931336704622531338297586093676233006301520264506026357785015565494806164387056124340910630267920888377124256801504975009653532743015776554867742125396548698562882853443354574528833907304069338257748619509263543605410037940485718282702175974474753788118004214871482149903496613519430625048254532030321409220115857216712127525958652292646812325869255098690153164691771156307705464170414578613539734898239918753293612671753464988069178658977692816325762646263037696622733998509183260863690724218937997227316698623287627582587215986140368133889939737898043263281309118874126746269955830187256759611018673986853327006339058965077477242707403116229174957645566048231096081503633018339325372373910526136374746285295951299482868966568820367519023795239504969698726383053303840790973130267822913855393945893779715270842070560613120633835877400152803671827117685972944201661146334868519517453014337992246231306656991400618830330673827391161981651339094037835454932468676944601206137014612140578450994032294439416830850771820743794076399757914935234289702929575211391597020861480080817962228332638664571240955910966115047262932756498939265811786004875019143393718551285573567525035624979940823898952115747826601059443777852775372477661479377463722888208103439063481354037454635852502690671763523811223888174318261004887605347428364360202203530877800163014342872562760123090194395200215272837038834171519736596968667729591770354612078187848820441081482767695091441644014264593168169479108113025552148426888729579420583501197848470376598465930904272947645835526412427691357229043539658227217953783450331396167424060543834642235895632615300690163985698576361760035514676640983902602926305940604218436919193887687407678623929121829407107010788637630871201822497221263007905062492957569895367293620326575032363679895573932776774331477247604639053735765340748332992218567796041208339609933676813915278572426690307916696914001376275555068408175051092985223259267219025464999052249015502143021291428028187218641742210971751064176278874044784459952654420782840073233624286022476861647336617660135722718740540401680702629357593024806830098955496234359149880313480801664570409124501432870627526005580000198067745155678126017842331308355704651111248926419304045981407844411287683854025318933048009177278324898666341908071609933697651331779933121226548756790771801120479041660250713770278695790592833704829053543236089381249706985430281080115016155979424585865456779158816695483931529806157552960401878584299582196633337035662691579242455022032375415819096576313421576383682767783387221982520467759034604523170820150892299321969516354511879254826035158094753162482010929378056225215781798231083777723007511673445201173693613028454763995094613987125364859781331952665575622956246988206771674476655230206025026091513589250922298027584359922624384239403480827148531301137255548660771301695601536798389118542651767317995583720776132673411338612170951471473399236830858463513186532071596432039755998096111292793139085601199382219072519380968267813737029221677326656157854490571008380534666215207924827273861149047226202794910138687861508526370312808088927394707383125035692813699381123545133435629134937550926668158077199456427183493593755723029097761733778506123456762828555332161319697350413070265883916545368800273749847165191806482727116732444701167665793827413324234580488300699273942091392133801269228635307848160007531992008573908857375362079784500015041174587223902127609158122639724482052982305739615423149328603586914540567472221439995668105710728841601085709233559695124683386753869538435551741072419382042323796189802339424371501016654914507232519149612922697393214691599577118120216309187686680942682691591172612389181530719494664969319848182070174279449993671137133634281881826746756560051579721263612187769135223699085501472776841402563934848132916657315084203601799529308339883831202845260432722833934895743442595803723465338421516466834839069768400965787951820186480009804901039365759072096427146457703525940735407576945571401970656862882510759682182675279621372278018016160293618052182126040013857296188193780543414666043631305086451924611741059149031417573047469517941912790701375082614209718055170207547006514390700269131316617277240938509884953903081647061191929119231802060839968160696821679440339042709664615659304389206795106084901667188241648619598182017074769268570851315939690751413404760046266103680320355884356880147064737818866593331957005627262442892026791809747389445737677600757035351297438241994960803533647933036580875966294656593191438223843422942847388392823542690214106472742675039783959333172098716557212128861382402226479933504378832133032848157319288133929471557704938411273258340779772453044474416042259393915922333237761233679658512543840029318944960905530251021929099026522556196395101936553674027489685587972719155460167530064981705022152994552629024667133723186608529986303583822645270400290769565568514633197170620241932835757198849442148594968862064243929277851881697119570519393269196178430786818661169932373436104970330321383725490706926343047106982828062882401348263596681111148756687210887107781673193188139123575599036908788379323173390888088917818808233753492541194690983058463177909086091372024972252662017221101831722100069742955655310589357105727637312210790017909120224763255965539252156920503737418187732369325967936809460425232470212659382414293194121548145176113322581415506556187610655096216247178216049586297418106228134906904091043999493643979584095809913735141173527986642311093479363752222258314065813031334234273283191472753925745855962158579749338591389238502397773592492321468153884807522139997506432447429232095113289614254333870660262814181883715115499256909195560090247173466225767067786706040339676842508181847775809102884702122192154373641593779149288295554845719991574406595716429102858991002063578586615187335197410784720088354302209215794502509743578001958079794978954590386680504100155188692290833204416142173206462099445233373097459220867088974783533000350185240039193049882141557933765792569477816450419705023257360428051532710015169375650156480631780945625172014177708998979765242585816824818409362357180588590675067017585249673690115720781335662923169403716528959543518592821219240247396409719675566215088951547073332958921284385944966510161966232189773447245689974828054974316414376768936238910301981826014556878715748183989023550878609589602555170975039087729518275898363355140541959787041323091948661702504081342642853823913661495710594143673711073196728233756086392319977754594713321061614709101911211080618750629043808028159553339152831628055779285541114709857039495190315676943210981574676211075068418713106263711397687825383562073996836275836289677897868004417308815222222813100073730678586362330725448633038926905835287965326863594593752914444118748476740114346031736586388628516481319540481236510573354809602595827908316485720230406137236533824491603137068299646446773629717092949850908201130447435648775043406523213976137203144279514227276403146605886530923559682023231766471137052254141191102592418455064685064468534679207554834666133207358810424977874057635304341078088601897273655321798600875596013964286952374460678054607648255863189078738391763186467344965622894075952292810107126544396019754892509198067105271022242387985501494405988429012538719788017127491312503353721628864074136179609798109705023146473806112962451561012566565257319388983809057520275908342973728707879167523282463293343241799815931125120189360955306884573412562051969471120691484171596641124309904498562393201684482782257655162244929632271852178082899362253053904390595569764802382631581549961780417941130439439569735641400598692848586837154775861205077635832540894250754857781866143685714553430364813971695071371501502542774538231816703535116018641084054154851886284251422459236405182720151431722457349194534961777320700411799992682281706298490282736908976950540936915963216462948816392806704021915483816588575412537674428839734364927663491595866957982961992524884297088802138112415221044490885672796899333651129813404133459045106738194541957303175706351568778765448597393441137311102162485273776837875122408834536790944993007961702518188380450837043929655398623190460686825889805029097967134849000757556532580098973432213894104921906727300129769625656365901185760834303873845136844284983847633878964079060595567880856844366562407929917112325485102950350311854163355717149489828476228719571265603101402554867868267074020684612909506600124009488764614592589158582928785635683096713076967689974248147512107010880855343780461910914260608225373524515483230304545475376909544898730848876085521353776499697950640007404591677429990314781721554239849721751136304902223114280668904755108793348661020228780694425494624890495330571970004408394256555123659017305862245632300250830150303397195881184362358933894206753577907470335490557743712854775799375401144851098513436657555423163593163843764223134887009047319312802263421652421917670895910933210328733867484611363709267697083131638447821890782964316979855175380386326240446975866471963950364011560209068639608488387345135801934707338242450895414214044316202331694282556633594354024172588516606842887157163942528853565700846420117655517777733980668954778197085898278217994977274251576844805787636208557847167492435645095891886509663527009022639077173423667446643354148615989032743369935035136982502043861001038656824784271793507076146725602875472202621913305138149431848630448908939941807585838433215279899080145494183503251008460737101943330231033896720452401810273014086688846723304346816603667676198222458657158284339714847385735600987969602240717479565691971345593313722413473375067627525079558480341737288435760981481268890817897519822515905796901073041713501535888721600878175569648518104208192148265994632401518255064433913783421941808326895376026605099145832153528979036794921762555037356355846252334128447652535139342973976217832289309256751416885358787094499181572794045400133350938455618467452318947146768724495642376669481561255785318528231642068202472591768726680364585465084713782116180201138540785468799694847045928703463073380642065134687079081653069103201278706127730351944272710449274447138050231170998742747931150958804407950978714844526879263286582039523938911471162764652148058091203973255848890887563485697125714722520558708974994593391398754297898319361237491081303328588227164151837561998918510769000007857668259402254763885577866438735254070335959489011393281442995673610722854782489718397194991146153730024838742937916046697054487698853067192483514597241184510226628133789475828850113011120830102549759104450793612010400408955585428701421390843256109755234687992293925277528633141606006616209088438597111252285587779334175190921179676657155951009961996863878573154181977415537116801280754920060119972794964175848401539890211549825284468218090232017641256150107876539208680354974925622768747308571253771469287836889489218021588298152794680107089544062651448195169460941980576082961259497947281349618919946560377287721352250885189319228945734800047350355273322747723044923098386777119545688750973365065387215831137641689890480714242698452838264148021651306218756782667839740269641301098286780680918712994537066042992465029153264276299458590611340754561743595859846679565794701148047057475764740632548457473955189373428823602805878050601689475949995508919956255134942608875256702458056708299839992634279451454362971434115016242186485468468171143551964914276343380732854051271300740055447389798938092327615174467654739608276211056021554429713999741632038561546046699992960956474641330550437760067162359371509141179621023391766443866098084359338813402018644565820114460985382622328834618209643411442855856057502557116667522299261088707288836225223324625049395238997614078805883250786755734805397523401686403879033316513731497444445366310641768620803802960999522263383079892432422211269765147862060010014037154631614970899222206270457468527004867567236574635706324700718157690900330533557358478852981152751609051398090469920493559068680932732809634655332555755036316345778940936235053572537448128652943789948354379412918194590393792925693472354465092713696086786559694674185828237470188613408873429627752498234974390620251763140488663936281892214117591870969212165727515958071977888611361312312869809034232674716579823711659212103374012808442461262834836176344760243842826036669648729690384009254615361697517166688096091212712748982821286521128569190337317771811281550634586026079933377702543647078127700790322756222955155014887432442363869699656900062007099022311935433700550378987342798846666759307937304573305361059177876499887249914429960096562324919775076037813891277039808216495301509012544920653274103147586944954076256032409984442962018851481728395548852972760081849113149842471006658484767605811776731904574920144080604243177081384029210050965589433992030466883517764650668568558625360243773645962866274329309737910670868814503679660473161419538413995792026385130607720759739342483298691756177595554681920380009889121143609385434389685715945602926054877465306789505263003020264915601633558479191823298132063065247812869043648335880719486459372369882065016922917213049604899114982746115794532249781810984508465786392527050019403711143783009356567745649752697173156170388487555572661045230496040515173591738970008360581824723004661334579502763743657875051852736638165682794156839323433719932967397933288812541349422439258404504020274864085950862403626394129442080862817450751481132545375436519207076475377710423843249760219512600505207401100208563956915798785860792817655742167402440657994669101033693364745008118488058234557381193448240674872151751140488152828044632334878414343358844471175658041763023449088017893257163767066428511945212762799960473233375916045414554491059595700059120448926401608734199359774761638439859907925049753986534263001668401656765284618242814570521167260970522530275846343702422415688359794924880578718494572135130342960455197607403599246477980286369470823934138018224527398851750737261261568580139946845725212332478742132200743202460685371188883274078605841260470099241717057255433146602649718335786788764848373205596947524337361521230181661280498767820949315463693406666597447504853269597054359313722992355843217995001353949688653345073042617321066710496435130888056860833635207051334607073837442187380064511364234636587246821417870276677068375189074882100806457758873592316355958293087202828120235271467151593009890207296283773384291662832123055695546064995801632113390537722657886597881679690344417882161602946344940087540577801973352149161345083995042412845959606585088321182574314342431227072938750970030207678524863110466182650542546966903062187792714670128898634357168727391661783114417440064143306291337425907919961288350806214019851752527168320565318715936260600108004604476377235339574357669878800580819440487606267745925690387418366774933990338373215212754762643388957878663039748204119014615571917198362055009735001521103627850956037132743340856791423957308188306750817286666146678337901110223293019453758270119329126270890202208545546323271832406736949473204000718217661574635600490044709872112199482894062885331333594073091216314180576448565137858423433144586064021660145131855614455007701655635078039809521622088865947657219236240376924643743145065376791267872770065647742595678290244300426192442847980250700767794606015652212091346245499283971899836614641352083939544691027780854668922161514879188321517944040325263136770671644762109813096359446369135411818668424297376863978926743120412179357721027400596837429323402937760903254505604691164226609485640391049926157377547816588787205755358516536650586837304048537480233673662472969211682777496241979142645064176269133278330359906092231246480730507065942462608852255861860557016389404442367754886228183048450299300453257670068843356371033412374251909446875254945936519718651459694646487524441193896584712496979722827436251076527157329284900130726202020432389349510190978607007432543415902549116199443027242143588305450986535226781000806795539297606458845575947579406107738742704646650632502547041383633417933514515270750408746674053706364443101988668379288862819828746399481338133855979449882443505957377246843882394394455600635845398777775263031845520151526300422846828826294868191483137778999896150318920945244705282819630417342555811458891415298843620608653602368231037084949075718128235002383380723514742421704920621134528494695892006962679425266676481611654256057043383765403513307119071238126771661913092488562293970431753570847057541915281338812474369768014333521156700321907739146704974649778355602253479175862221776088443718806151586606259501794233000035373069000618992754822971217578610407036126874363067813592727796603138131720997739318319882549738784992099424760529483251983338807242069880314242248865074230489609339102768373465100649436590658213659965935031584836018256522312501904113327001739486758773406207754275051569402321102125761360275532574000842838681782051324195084332597768334459704386102986321566830431284849326413842127430239372883565203789532701398234560017003413783812102339366978486897086859767462402924818190524587522679986351176330264932789304611349863257056565652541837233346230853724248838341270458087167543280036329234242526000077057685815363686332261638427036125823852221158521475657527457833542889126060872101426453238190715912587771528258476792858308455996462428993572673082868466575467931542779323220846239744604997025140759310151096408945541248748889398769716592312537865331954417651089241834447795028962108924053494603271316413993585935189503963093663121986158122277641931000757704667690750247224500336432018487590026173665755154464792038017894732199726920200784909669425213502838356567355964759590176350244499028644359397707760367432384565052784456469037672776956328263251389902181700416015145461501656679941964454416181842517981796966830159061639492143345527762859792841540291676185777324468480415882621454878392146809186275698596305060975485755836626401791550719963587760820207834612648550352552357432320414440952453921288624337424549217285708706600448673558324449037509515214641662233592829387972202221148696082604962316820470325851519220967208852310584634149594292370676630868899621158271012871741873438894497746300671299869786096498928481766308919438940657793090727644111584301057543578869988088272187389472190548032583209964967531573299805869268893462110789249286148003997157322565542482350459479433296436229849330775170567142747501196670037259127775531342187934508937463355372692384880805862745923194286775210884088104628133655002300185601885451242351702643500071035208776647684807134667760282440160217318333862071911158804519119342320439790279361401692762972646364033332247245845787305150748166636424106033549549371588028221251774415147228076581636603260832768270678689120452163474826577720725192990795296454916650228310776213530838749114875283566933045882593550191551976752382914597924738879329887427807793510232019752511088293449189510082832164563336380253442457753747660420561797964585790182941534277875626244145010362672905852061148444723331175407937291123781367338117380374896435136325260930853901583832418941954325010152656272631105757275441476129709817174792161609600476199823821389441337072296418588085849563989466509714980929455245156116346217964445721337503139692895015288139529770867502460714387864073312467895104287807064827638605676947575307747931751170551634327435961438558355053303059999155437108668872155786071119017254461908222725073124599577843919130986616542969962758462630393621685998705735312000882967568592559977717358965314584070109725553167798962193959922734067586292656014897622185465864017622316827669284966784119868781391673417226688729330821378005988181172533854834347009338666976507273412450522971220423729521578043090924378441375082713829159042628566106376766448802535854123229776652879764236913523407073655675218981071284486888820494309228086438552278858963745086151218750206356476610362002978269565797299052678222459583474232994541357503166024632330298260127394762490407163031289036361068268002728139547171728382668256982859707234655148498817993289145031483495692377172320084752061181761613253704275229907286106796492586290113305229710703617736329002028299101532476546652759997912538320270708116898386980323802063235092495537791460278991548946859437713511371533086971376161113196741907496737498762772162939320090051366326633852977604008699408408650847325946678765100890014265026997358976286832305959037109685495105651177232283974531715346339030677515340961287797295941434069175825096880286134311858021124868378494237069087910452866097885998674839659474602720251204206151306435073510858199035098472291270898805508011149488015118624689158760403087076454556165036179160203051173805486847386950614861774172902742521051659551408442906866743656345374377330045133513450549658000676234617976057557742432683920608029154773297669281701210234126426263333221993565711727081079296355596406511136270651773902615727556784706184634201160361106452944020335888960338010978605697230143763694030047524662119181280609973185762649611746279921637835913614767616748106916370018330241219028781895828554933651391316426284500494551883309521983714130260332176645998141736511787049302494323222239191771528552934378262351572204321269055294140008245641073037471081392190146148090974098337489121632414445393730289905331043387917616727169481375539121561905794564174795906158661856314588349542411385187403758965403603724591504695839272791382337298605418177320625453794955960198862731253416935671990073622693488929741389635852097607344681029422081806281489717726497901639781988762242881967813775215181714175907192883367506343004338709552299079967304561066107429653700031986096565211344772083491285024586090055674123484903545538064404463889737359342649746823959399425596726505036423586889718347499192061008992789998264425653960831737023854077377283210458147160607121127623408789227176087241705898625141094234913826995625088990615224204049389379332745789124651041887812084406139482775310559355045809662369456578325816453121645470639732376482763247818495574951518808055670254416581646224769502090866701977979210267269127269969076811486647161016423612915064578935980286121759772064478115053983247654324515318016202732006767713742740214304632945168936356265617569129535435689623180875521090478733637207781866763481577212334061369063271265541692812446901836016015161872735859356978879958585311313088092322929642531141125481029488723284235786859117410572006873661045573589094456132855124713718501005507999267411904181832546364393897890828546822910569028520745052388198301503128740886234725971797969316749879606514269583213030684348509019321079635703219481094398652775829980747545861252186573062148097376317163568376698353775021432797221463095541661822480815569765973648913438454032475539519156471630487355428969491799718974668342893394476059281826090345008740144417751880663256728894679116796244815360780074136502914225497569533308228030384507612789342326555186644732301704559255262454190263822762854195328727352615496787002292404675265144047603801531488162169891834758631616140344187127115154616218030121355968793913833013154167182775546880803692006524820557002727107773387097891589535145670788195093895625854425714385552296053498291823688240463913982766043121531171988058797485972941146928543122269891371902615025994910564037730293953819596590028628736310792406131586232878671694585117324272753937188365116814023081356427374663469965287892306122835616702687166986652096906012588354305027257843090123337866861577689578569629481643389671590066214309237316038161931940325488990928042839104390239018745218008892698976984762709664860669389962735404184245038926458273074699910497151151225284452321246538214128285393491592023128778906942022301866887520322059798185660660493209323270878289067056571714146924989816994884524309740901351471313079745379530693518732941926762378208938707814344943492658502267984092523710327546285348877956021463245565646538102917476829602555438323367996176661437946002817393340417008755806750509689709476793467128060839302169208468319550035574318331027673278699391318286321309167229437096634326033800488986632187935851538834681086228931082706884605468281490823105289330685751658830023621927269892978861159787850006829516700906172915331041903807067301809934273969150221974400259138037297796591256211921821209810910237751084601240635371306057064121829787821904154014309134793471041205111649696257926922290964478582889590775881503924087650003390266876808846007973553868325262306967995011907359796877165445755436450456760755600723746755282488066472371334122118149811737594486754466001378971819263889293051689770090856546050230323526713922522480584267578654309991793396532257909923468613060271586243718290336453391281266930351796452774510953152471842104096233739510982108468441438850314081232117147063602479545147264432831425602471538565350613966937259679007852940128637862846083605540053722798821491358112436554163850612849406844274910018036498674189993264513416335459810058660262808701726863926983651792125758748408953222248041251126434585522144592887054544483493320177108077810428368262998043639220813048815755806690471748737961579959282915913576492634736895721349448992375186644287142120234475174498084532904507324589444436802312890878196401875351695494648205759234025363407863814330063841008255495514216572479326215639606922133168233880932816243616747602457388217592755487381167615333351723541106256056452337632589508829415651034185930786151626736652896394937116401591065738654022503415947408789873493492132262688552486753759889242876313423047662653420180891832058073450134443302489531387664395631119019391180547287346325516161772304516241569069506050323197131088962048480645504970939364346901685822856521935963195812628699138640611030183764648776907691187254644000529562033310543957469015120757091850489874165460750439891758666779025801166724590876712784045410552835705898539158656885064733957322607055025298304257171564282092808901775870851924305979751373118279725929409593763464636601763530121571102899454398615679857305454736642467820949328727034725766049129471311173235910950046234949457115479310619822167679407319835701685416192319462024514613315037067066856388665631213858316774074258929885318500386693494291916332918353977896826380915962587075557345887217252051802946550291341161104723578372642206405329635927702472938451680532588176548624308938041770313253062732893094649035121241954374544278089740947241179926634246162153458236270164909253054357925623275323599104826317943998937285232664932364688531384759905968036933079054217667049990912298276906939183485109175040129265360607291946894492753763780187985157561746869949095469653232673008206217750358933205798623728806294238900516059207789745267645491023199072138006728149720022287853328190574955732547735489207185202231896677316072013430529312182321327057445181609926557570594563156980464270730101325475395409017669224345517292790498116863167815564519711023324006884286873291291922706109397434000607318603724452994984137983957807331216508478980765106027857115159557874484303557809158875031682429000692839044315619063774062760136409624925253928427827913274884251087654049185486377034037606485976570833958189370898891544561586863997852911893287279159323413510296108519051140009488603106721331741498456276447936948888786164635116992944414613888691343596637406597615459559632118601149788283296473372083092996178565877034440088555379683741481476821419131820364099216032544206584708190306395561878445016965847790134209709412069400793092137476954761145045219598732568114052760885735929302301152076091636820371235052504394884126294355684985779712141472117314331529692255933856315399420263742513335458124922852969683049160701911986715113448278056307040949477922457212685651004411319107527628560122981011789116688639391890619034876138319829695164552570938629110110677566091189214912601150090056899152157517338270807203339459871144280838321598987638895471525905021618367908309338896254057947441680167706508514747596015099823744740210976558097189116495176933203247460528474839871219250898325118278235731190058438963319515675491989303633923083384185438558973769046557436710165156725886433094628234148238633497119477366358243609370742236329176209736874918307976467678612493515663989829848334631199972053727328547564879020266777590745300892110965079108071350897834131146612730912498887726180636835101144103443295665769470260871461816011712026372717724686435017597401668201649295337821958302709371792069511077014334131884687087721437828765242212408897226356112100819430721373479395668662259017745014073599304354764653788472375399417226920182516108405495736378466944333394633869877867865293721684511427226087540248311057624333961037797873115374301106519541590346029027798152047228431372379416862021019593358269878961925958571215805024582046329709755321947292903566621313105733766211751930432265412134485162183620795993862571429452148199842831558861418063211461471983996314531477539492916767020652892141444232761146517519237533031726889045765411937607518855726101812055568362475141336491884426955637699155735784508909632554372444886002442469484456940760056099894837400720356544420004610832373870611691887904348765304518128768346297113274679490449563992088241500263121577849577047297998528538058517558013075123574784138209453004291616077488278529044915379054295760827055360510504316492471716872667007607129313475897356130443030294548679245296802280291332221032732600834942712646813458503044545208047231429163944934597578479825460713637493434348664645868424715164536482875760245175463014890723025966502794583646950189419681656172900644255830153002095233863857175586335614230747976758892632109351394471135415639205971866215979454014161167247482660842015243050458580694845048282416851356130905173292998252122609494852900759075750705391248397848452358630254338170296059674153221084583069389384855935087128051082399491641597993889971338023766988157195267809235052440585029459475178877152013060819266410803030097168122191727182164878445656081109770250398083423546029732015718595974422299804589848718664332753435008998861859483370952335011131280518950366957230783897060685639851132429183662486680726983442485356044454077021672533747286479421451020196378881006194498227731167880748247188425558889018754233731398763396574284880036138717759787319324892953570551633807434664726808922161393778155132796083482191426024261340339086662113330791601202487785477769003315064611040291274285169173507111457386443011759638169263480891618289003145259334568799126019920911746220681666120853470054379109611184523154568566463914114046033820678745589814301871692594316362975316504779313524076777714556769146186374410872571513010798090884531998834573941212134660172691649352013272769673900050679057574015150260384702116358444570526522765600615946999746561873321122371522488963847412739510981361670300684191457542648724178535531135235629867231126689815482580464985552732278166514817265151857740418311707118698901616934715614211622461730591595544325860571039032617078265129345483832378804688394866680537372715646074750465107830042696247162572471998760275882118887290808291461329295840534842030181597546935373680341984595753793811247849848657135477506711194595813853152519641848362464989935859918540908445484664581871567282529886536413167509837037373168585918180633833953864973692018127969516729628247315758211956604329387063276839892416373729062432351284882043447300227608739509527545916456664444972566590300687862008279307745298179381352778184440340727401475636439423506475792568834147387859697541424853075985709310848694826221173661835028334660460757513536952230880810500134253688768224272823162695987024822828311120449630996041760497512033249677908507766643774565674960181553627897377662636551315423671927826183494934041812553977200917129261819289598389033377573812909851772748604344133127791915367877163312937876976724248203999020803022096586897309341585143417465603343650373335102619908870451225892929106135803486698872577530854670188368625795860945114403143893061464645294391942605324676853467543188192600187704185736902630090147883990762505088101816224440666533256814151478171606461819018544029884046224149436547865111129545305974483882330874210688504794153569226531821304989920502815824181042767777628874236774381484493230799528107798538301352088665234528478287717936618500724223888681577638053260274265770218512500785398380945918688583061031864486116623360211694741994795304917344709409089042996140945855734502596673707061988849721742652274981000737986422260885776202367858354837030241088536070158410820383533672066514755752323832702065607008235513841929330578038943934105391128690179149668485160758225376386288704238182785934716165261155850272042333695039087228061711464153747669672585676549439931079260412382878283005027108942662637242877810898146755170217662319946744508073739977062093177351417297654797605046098103830838928058727679801191861708109709319945359624465735763245586492121345777349859898151435120267851124834037234246143902940974795543723036289944372667258025609076081263559471075737592696052651211622944446068598702987139287672834650132326191806132206315772424739893349761702218090233442585846656539696313446053585742643907131964866882900335414227991939374908194003819253893104216589051157670330506980993669401008803439681787289218435556121168012234465490299785901828538608133414168877533584605824256589335521690675875618290602267693343832367296141396135536228875332615775159886595579864877122783615434416636169685418008931061861683957853133882038803906770607454681521541292947969625295579367598731073711398603431051469616571904569446896008431346028149806850181311596466546767405119677786711979205017366959084357607464985730782305186384109200176614244978525777510792638610080123358563215043959344220192604943349017361042337232619133455045928966810051793579083666660942553516460058486120026927128664996201821353718767874171135696851512249371291182687307588405089188012386077645301207785479400892125443074519484907258467441607184085318324619038304482587468834020562720195067082539199998349753924957012138610489887198231840738797271318634755913975890654523724472236160715539695561236438117150785844598128461469537434684793513886752715795029808625243405811170945535038985899401504827402943595276465541128938862693359289588864966265659389801972330796123005911574662010171337835101961404303264473687965833367588722471360421452009531955038675122115981676927705556178959189079829759958730292581929871059589349252399172365654395617885124990656651502058248532146977079408510961004289151381767200512943779292558035803721372004124242207822862374990806121151273885429685450976302115485832848224348723020503604283809358356460809190837815413299998751330418516305494883167870992124148448505682098611777623220805742262476991086164333773653949370603613941957704225653293280918040365632374119232130700567025445993530619976632139720964647338352802808666797906007006478291532297593093801125495461819106364278476606787168086415900093419838624014660426986462394756928872679139861605561858608978192688384989418515936129895100658274276938160441598036365522830652730565588981138541882466540193261027315273098187155867966859618612856737118952971790684225163657953395502637526601829271525688981232588046781357793707591784317762658911597053443064489075298217303605308938053314612608829982801199538957344410961876185591549009686466832782749060926304099985135760994283862189014674311725562468590195498068765879156607447466333181401464563221425290133863317919456292917106985167482301124473313063627870485396797527964045468731050086420734651725974490884852237657140672876035416085613605899875012368388290801414383092971756826944295603052327999862920841892804956561245906492497463687525061354726374405837149180538433569148487417234438894523827623328602330849363802772663251300253909618145221531594636898780532983434390759056361769504928679639159074634585121138827408672944517673097712578925116527989790271411138648808903731972667508068750543091782040346229709439213350994479163322597745830285677824244535796768027896407462695492535289423952319841389326962074217204003442983070306955355601736772941169585743877162095456839313022854631486748730889749844506840604236681970781539681328967217311959871130462325465929169536087091890116799600865180790135637798634670971782025603437676560131849487907541884563396294049497727062292729048594506409414137753471209085736744914874306628579714051804754143006508523853317901403852158355257236810912474591893871936030641843378098683261925944247665370248802405768965445709386974171420381776438150878841715270344876268217551741360765909369937750152575974249817608427658642531364141519472348328320939010082238553854784167679672411436172875978951828770975738575128644846637135343744608110179809201240753219954380453046176832497213258805863774987664332153543523792846936204384515773226864024117122342992091531713664363226419334405414393738927542693097115311695278974184949495948584985809738292884245118068559563244695532159287395404422260535433482729593830204859069573772101755123087879406109234919244810521087747926669776478636281602909138133551525734485845921857847328657557313960336393142898474905372139593501224644641079818470709913275519975436326801903769643848262446699627406597481189865988274583794068391451601459489702997618915354840128783062605084871861146135416084106767635289069889240444855413832011343183472262364666018440712340550927765918115769553531502317778730604920825162327065129891533373405863298574476720563658248151541566389697443885174055094023539704779314647132306236891687604285188109773345486356021314349186704378021212017713727006970872685222915404498373501217009210725866598702924944478163934452477215442579126780647056882276685140784042752273757134236328764843520511371253956031109656591894143391240828414385833485362217630768749644002235924965946115171984755046584561086517643285186261549603745239450035208421661839979784981930819633661759900745380854977002691341633637365828401008078583448855914994067478152234896926454258589027949961312830599553481325025542062217072760543077410787580533034087850073443914994020379532244291197615027125567442435422257698935120913529496833114333155746591547096718782187827793409020251979215131548678733074009851066600227961822300957741198238167409833367564312534426155796738816299371750484914324013394937561145127700121086329772017976467271196153161763892089689311901805424765328524636397856742566357484076242111807214208597401116626751561509081267637745111601281733897620711307703093498455662598188743026786809263550931799287561419258585079939251745183079650237451191243053379697079343245254781876644355843349084986579884322446976123871937507825754822911973048178244139972782511709272189753471469650369873703843865202754001192814376254971079083731328381252102477011354159440727604249945448477260495418473528010824459099269655100793237140338450593918608470687938578350474101080771986135638442179325520118753817240738121282151116332700910874625422967875104756623809032669029546567679189058060418583012346694587965458179278603153426467590103038610077533803087311120903432754705268147860169222532248670412160057160738223911633950284458593655394897521141058718381412262913299812751540399018125241308814194665196246107173143381154051881249619455485240450636483000317944013140944600791798655152635377787156267033262559301274831150593219676030297750842886584562502773289885966161967421024570018007573890512318447696097283993774106942787366658251738336812904106918136344636704107154051685787554600056205288323599484848821867130523357322724598115521873433049020445408450213096199569721171014364100038618697272957936977593209815012018813850487368706048282517621057140375620726848631341091987584413640895883053255753396615140771845720784815467825858823174773858320021358272379878415376873883218181948358120730913275315474928799913124550552720587096065601319949308604387134128098444495953200233760921864316728483519903063162119293181087027553646972545350461719539792202632489054450544543827251687250119680963506804341340491016878239915450386314393082808653376939564393200818906994087897879033631550925664746716119204455633113259153401257040477779616074394682653944063419657584816012326700518148542897313810112821019223017948779610718534636842283371132649363467322134874261402396407401418574258106696389854023651927765210655394610299982165027023804524152917955962271569182593445635290732836552429267477280496801629492413030085760861589350554563497656036000094419075611934567484052915587168057813478051987201736812990366627989593266415948699319671110470627642017540212581315210352891590107960225405548729799112076268175241975225309383051145014600333433534687199205000712374893846334094247252501363844368440753957561746322726700824512174611299347751066191522867096619341174982630216204237364017383560454036830089411965715257302901849963948640167211324549186533015802380919212797760241359416266872264277512575060998650075255042580738859736594051718638478035281118730884924274375015516154573713919075241133941593559865286265205009620271366761774605377055928188898840919348279771873813776688843884217565143790420286347492050066115737827686210760961624115946969246687086021561910770005634686151667338146580926925016485608724832727975977224317135341204987275654440554151120614919685246365628456611115184696512657192816399552572869680466520247020137868876633597676425814908031453600191610247350854811082911849540197806026810113181410671782957739807683758129153951640307956008204914973808621656546767674778513608446883166028637236501242945243831423127268050612593111103127466414984889036178424165666834471531630432151149181837448398708843998472495895664860853597675435165239867568119327577828458826078186508602510353862543156979499765284499635794340451422052215422842155576864046578202237826211005678885866398333340478541410422245564009729654880330021268557597609997201425388578913390218331346715417557495638943562465109157640547467139488714612600467874617950549264341210945536060956428418675243643356468210579251112969108392206639357602870763379881542619842967702377187285769121356279722733123016107040837114642916977460674894791290444385085587139975055668281824904761576714627143747250450466607469651678736529603557722176120443989321899107331621690801868606152524417292667968312031266142846710186375012593943573507212634454521709969342124796835283721827802908480611134169836987713811818517595797398427159830584426495972842409150056027018944436359321599507943651238952816875962307514293946444415962626298608999580840372491612155952948877547006975230191536108288939081390669861466165887746889952326951683613234089079639681915341265765589208806475398699926600654167193071159688044566596268328663368641569046651966784180513176715478279610164135600196995390435971364638411745543291063162013765605971358044537828978917513543427426600164770784252538874362518149100630882646419584772660545749405234883158646725317306117427050511602189923120518407438098821008847294346091190132818196634525192185037600787601493428099837660965747465508024601783612024513608910204440316592081145569233508423537145428281922126010171232069025017462651777303290660005006502696159521961876145670342918269193058891925962223240911379736939065378653977178493084992640781386975533445595154257523846951242182886517943690269688965263248262861667892040379002134350076259030256505930717924052127021709907850555506674702713480123502601477000351970743141738489267253394624969665728027742572779482453645664130332784848944153687417796775834764752787210757979264179644206055875074724492870337564992101188846268504635470132195003756018797218134312493555691731249433632591095833255158141223942796223665508175077946835505584558913254428533183404427196108540095751111860212343926698561408869397835672273240794812339260135350363708729018300459115730131114054453810188875279364512307683059899905824920670992331004332925141508865592788314025335551148027555226700436018969674941121427354668911616149831913850091448390266517521842049483576193273384957985547299402331941772367357423730379619519260347185164617931484314699914074155631227172875116719102882515673395153763565838329362686573581674673311265582656529967731559615731265810313598760885169482618890084148354039782403205271787488994463785416157982835482625990359253775639518678594638873636405744822293758176957503702008314103005840194097573938831439745958771159973873966523039853831876735102485186007917537822877408240349141712035321355495744426890960144561240208164388855128613135932033690434867343538871891158319264697303432355482608309477103295594686250570095248582437438697221159887795713574426058571409220685406976867418980053120751332070873604846615974509337882832274434540100040890428138417541329755901251949112559457748285222288789197889109233796280862950403487505769881095708974428213209257659464648064592649557676255957063821003017702655274358163565716360604285715978245582556652099464637486108043726089933988858742429910500449428873512889855376247405499867465128590395488569887566605641092840065238666724383338719305029527190187668138716899575931651514196372854972084082918691888317807845867476641884258991624931176856505858731817112482533352630546279641017614347654082876726368832329071581961668493838822292754973237532003213197402974148817959100963581037746364935350219529152022722017848802914646934470154525785002584077880618405423227035536171058969435782374662404461122208543918737571964047880997053790654305675753848201623170179756860007577485759399332655755938071019811997388980281101918166223534358890589147498345529366936969774880959429031041774873339731622157848262962596990958812906038836797993469838313864792569514484628270430586498429693406610350658733334263184804002273352598747650416310903861284776520871981952517451351355569765134957759153638807398605525949562913806743621189474586945842039541055848150765105342710689488507010730617483118928372932890389901949045163029720324364122500325916344984194045350698447336369172348392898141772506329119958465020396544164694712750068753862705863851430276151124545225638885144855804058777105013639047410257615588619665786661368190286847699854269979711851034243730356726756040139621908271925311400514349951421654985338630977238713761939557507286783880229475177485515568646399752362200866108134904460541789493180067734750780365956067148770385538232604875756244688501075095169331966621905352624521219164935631107648217935778590517239201100279202461808705756985298001508399336239816971377772538009948145179618079542752390415474449672349098231582564086186418630489774234988276360477896074985696359348452324922070150890092612625129956445428020955079474698460398921178766639554227989866539115795759711687859205899835415087111472340188337381863578301706737294476848002915618420409854790455259280478009905250943001726192821317801900304990189567206024675138995845483536749473212154949703286673803995014572514303571340942388671640503022539457990944441161832477448903115794117956357106953552996258438963670242781087339915093523306558240770741064306517957060758314427617205298357305396765485706395352130255234419468328016406597823302759118764389795322185853574747597815096939704811599658422226031115644844919008952987209399922638002861107932702167509216397581153035321257447090569089807241055790167983060210815550786993987076407808309293265169767470113975471325723475867047775067351650284609081102346051198849311663516840181833928263060201610411252011468416903771457321621234817451351501082988703823645897678696056609712651586568431156210788344493214833626537750206377229637346391407030819724694164354027820756697220640558801717256826625681654882527281123469014455472220181830267339145825450999963529682582613433913731545072879302886161129857994333532110144179044566791186737137342313133789152966469592287059642212890464404268487429160745355587432092747175798819791192498904168685403374838076428875238194960048655441567650266194196311422569195850167501695615599012278106670314019356717259717043337127543784406821950958013096228215622238770195748155000122524865989928169184112811731014833584112207342259340642220906154079364108517421721446274287725731276511135660961794029729594989200561042915229618332073943214929028986640808512541365040241585803440299917249185095119730972966591761861964973648120647268094405301732831350639004670704422729968139224196240567775976754240064847235500730305593174840379344469194314591183495228589208901517540314972107517017749136807783824565596297416385748904232575863880887315738054464488077589094527091621993083002113440396417396406770368291396572841781627918993373617983215098353526017111395821255727160545978003926579965833719372471337646169052361629892348310338655614203195413244360072739401536276137933755499731633039795789144548352023741928000363958292920169665372383192727972485728289807137892528069613838076734209669905706225724628135580114994280466872572661871025714741877743577069765887112063100244309977408457759344586493540799065613186590253221264496172210893921406944729556758289311911622606319883238831381138838260881849959577575815434480341200676406888426168741685829668192857657997738128427214775718878883822725011853398389646951676630296724744648574219882162879930860642804993459654200435158747551291778709218960771728328712268282232641396422315460265606856245156852840095172511078130909300479111512384270725487412859352847396356992240827060977972161662033451581414913209273526343647597304891284337553427027242461055745097277186502039958849651449790672600251594957436457937376605213694137536619933628779866185680434236360470474964753572390925251608799779664435832260445011596146284586739857420716724340629816802079474360751854064860507566391379948084048817139074635198667070723893201883886835076033132849841674916940510314011407409493764961596153468821508283468432027657247548927309249150173298616804371256139916591756772878017040996905320211586795157765619718174745558868176239294391610114270959784907656446687128107459647759065863694573792843084238962425013305194415005903838878954179434530703175294155712023246303463982478938962239216978671691186197218855645650850206220628612500483110249354983897399403370270719544761103950646484885334770346532000076752406982304667066793309428997305021061729459457324127006383121062881854245809126068367200443239688462260222782986888389741189508165594606110576869994192352109652055935322751628145866269589242740633683668447424552897640694400304924890599568829174833750275799793913953915516361120640325834633198415600598309873469526860851770004818029086105580808039854400937046155043304208540930975304464274403947636612555658414771847799965329426934755320599250039963225042905082683060141740670814247989848568437979414243244714741329759458753795323639310828571911614040570521204213136443765245180671555107452961727292632727641181805379967368825462483682715104750378881677110545690636447652966364964512204852034217893975754938314336489789641251936299058113304013116626495596535039137589746885534419776903391392592119419833597299235431574679255866643581923246248075451679709733850965294226898601089345999014299749246334776486845384358996906998990967396388444734231570532476633875582065802286445757599291282192256731837046653317041320258388302785640980890239348871434932840353817298014895457109511459693030413934540165128264067453211328190451686364962714200418838284200726577092765622689652374112756520736241238479083984102643116126821176921842012785116755902956935617314316683787641706755983042495291808301749861732226221769999065048483336132495296932313092048565034598626778018287571694661825133246936533436250448517319189836230260825586536019682414609097813770927453678693106042896802726378276134616007268809576632726862990435460422019876635561616291054913562192742917280343505586785649969052762132475070024037077615154933045229561776827482365742814409919998183737303675233986010406121616493249534367425850955034509789429194252349488365243681990251964237756461697260468418741861303280027614070455044666484847020719273097286368703320622704340426501197543452359249387556609975326392555074660373628259021964869273392797270476627858939701330165073402301133202500237092173530019645392316568524592376317983917998706703173390080193160988977967959487192348013496149980103163127838158182318711950114972712603328820622091617976944885155803190820397959401174059636732103718221096116900254155311774939309634402370990047175037084727859672586654375901036105497109574577354425121880759652985785497607186826178355614168227111971259221216403135463831079365481322963109001975254953320567655849910508041272107208057806786198772908842045833913590788908327418544462777113553786982238300432034313447448229606861492844344863421500667077007794205788320267961936480483373769328578381254598022027812761479780565529152996968684991110570984382489960183585966256101205771345818513933174607278105792802042592757739888545894128362581717245325746145287045628350276789684456739447286109828435460798075662113849852665933237148625675157932411236963432961219934452278046384507608763319724069551378415343943180196269290002163861393005442066270316232852123291932300928096642731020533247911440293294937830959155794883387911237171181676692772491420174137936134633815602271180607116457340445368901196185098786504128093826792587348081250544362951400274387889048078479902187827082203138314831487495772141453303231951312867054269877410031978427504126554805731265904504734034592779527198569193800826616933915244387188417012021139280219370833375620101303599213350782874799882895002084015094445022543976663758335414615990790714901148557387708776661783128765617848120185393870768890593453253625054093975909097006846521313825697851443723860844790153711534689590851864670339146034997324461579124008650575720950003321943646487099505434821259874980335100147647167834834418330362014728998371130539401869792322852167685331696896624022973093655859476822518636402680297953592064252444972030391252867130883374508126267031445856471852587822220455596832261442014489828051862772936457373190894940233707485594077131837261675493938708746967758165162170085516504827834133015799344667636625889370292807871061304116116871987879986049677918459266408371019515949152637421090714867784499165650478360697148391169528554809149158981698450759977667817297313385631175158899560067782867115780090326632064722326321546797553298865996212097892762302715706031067252986744653502873330779922400877469532477565721797677904376803636826050544490291350203966993929111748062203398619393388513340654253091021768395134326216414532031909473616646169530447088587375460449211517042868339433386234174916585474001878549325813908858396762097319263438264762577216393725846033167475588103029046790877153249880108861811758070051079857062878253026044429567775398477206198971004405900131836591912456108277199803218837809708692565943032086342324682582045293120736929727014313522144234161358389368453177580482243329607427779470189260773692921077959724153979584964678032981172481372212892195878417655869452711963663490570137726260022008240493450697828128673164061845848111953327246039788921045972386959461026625717061249812232248718937032507889404292234152142617070022729145938244675682801141439276820947254112531838825006514168493896881052703666902201354813683048884582413254161708518679478605729856453477571884761799709572403715041676865274648161704869433003404183252170253330976323693956917465418813531190911722483579886521013260543965751361257602975104291107333275665269191403614591952699140795237895184438372628226208750588613026425564712688768412543680044797125343349201206021018816825070334945487058188456861563794879191052128816825323751514942177609924122516315562167572091855915138789741286406084996245646065777203292886864882496696587909355447743287801891717527105229080612478931197376400836342138428203517062099595883268490173232794782363598609369267050182867205928751684168341652662421365285795466987634663987128499953378258208118244086562716215642725639876261752521192372579684538085371525997467294907626081432243116078092420067202435707261109762488025019172937570344267318471168476041587981433008345521045118031242288139797197106279542138674541709307597179951293283632791374998220129961438466136472069920036301888975244190626017585687255491521389222697707240208462231572055499725309198405015297334737210812952061597424441404097870950416757644821847128025417157369703454565064073612317766296461593219961627304747103948561401231090956448782507300408385198604521918770617264459701635263398210252722147706422590502484788207032909110110903664521780404539776722084405083766778842550813696016973993950889354515669784501678668598715090150933065053951755907347693942781127564439306588987113764801194418370457790900719835947681005398742081054472837748163477420412449435477652366434177016777933005657935356319354134993854314236011999678457363401538702123401188680363250776809664016097928961962704209618955713777580954575682766947646714900727540928163132068604599261307662014346763536087375227310646607155334555224789060392658298758211909477846734047024932861141449854328079684422552626572890194788731267761081484529664127039813449156009734050706943536295296834649016285489998506117557990110345873941169184520024738706006871069207204107561490013987337180013284933863531707811951752383320129398416105993044923655459021031733762303010223025006438521622493457583962585141105997597291245390224398930290622135159005880439966300726900070833916746587184934490290363446539735724041225923449098580180584374454517943942685749643739170112191296295585245894099225275262467507102302493353606028018965513643754274764329084567937797191258186582769983177349332075226652208962054608569326576712180611020914314518051538066805406097656319526966179719454417696935469738562485830340201636290453927136876984315937481030691356536801759401763790793498175107804175069946418477061374111816404686045665004517591386460098193365569781642311346072001754331008705222611154683293839638472101497663607391009561457657119821769428961945983323894764874173783176117125293898794912130652123980740840036392080048215412915821915246939096739295636234471015015966745399683967050166239451480690611080403581926335887133207205323806857020705696762291965936899710805269920364493150413695869118094650708945462619634514154482432126172561036599825401882250811969091134618930346425195267575669957341011775027358973194952375226321783692802449495725814837279199562191191370163954400005725820882729087077161313099090779034332731947516297070189988680057275036852289569758514895774858517225978964234409159687127884978871947845210524604892936125230997809894268434593318797189330749837049414821027442209698903189622735525359169146715394921838624909878902216210202898182925817840922193718754298279851233858053432185584202667875763267452053138389452172551882438538492233010738616353298197806892713374245842598264446486276276073812000273735631559470404307666265270191571035678193894041155930319328656529672343655328588041420115072531649969816284428171309528207469778621940788718346981218993702312595659977625943100037615432959981703470915215597313650900471038133134947625149142488426174963831499264385500195844329866218150576681666409204408966794080571481040766725747270746600616423280493835005812683042623285677292308773113707829290889341932873603411762246284897156154188662471338751764001355874338398226553923595465266947139010309535067827919724675151596580997193830428671088905587462946732561918562757197702972064678794286077731447208472804189169225998137209598336986478503990146069554362971772824705636568348552305018184336601607645787026275821207241792625124876900608871899054273538435979494539412198231149310165358969819872438904841770391315738120124560501443408843460715807165030877037658549892526169705675665847564169082176916236221844605082836959708608897704280392472234064215863427386929375959244711878258183383653810169671833827805796970673626333531710695066072623363029054930350847383199502346212623001992638493263697100223326579050582344592565032590262571050729004779943616206106473472907910101036409072415453564284923469397150832324509868099099576497491583616323880059974179861270790776474333157966181536113387050467413803839205240073406397057690816439720544858239633780258732803508714064820492112642421145383497357689838472186851789096344047039066671939178204838570223539524892066824042429401836802782598272068552564696657006791974528449536281759673978090058871882522281892919915975419312147066155198940629108943485838832695873943150329816426770151144007474630690124168729742477822117976009602196475426035815588875517997582926701954708097718063579520605213273490621362639996489694189106802593312015110012755295665134495582871546054795565558604069353512859918183224614823382434764208072043883278275417622331410879877801889672534232232260980760415183543381871948680686597144185336896424332819821875667576018523378913641112917449078681512020691533063168557801917499884172111754520983494915795644522134987237428990553776303922348296222572631198385806419283669354978395181698996986985555971848997216613828122948337140173736010403704416871148775952770922945854604802040625801126723509156767661343050784776673319100110884704462252268687019991749883280372553281507550161204949930118907648653710506644396738044816923542695714744713302303571168421740575874051945962170780546709253692843707557689907918550453473969410622062883349587095927792936324466779582903873210113125842116185820061440860643049739359952042160091342375826371831707184237869352279241988643933159640328028355947973862204974085470273106972032043515678103468480229017492836001622890152759976971595130776553343640607642747589709451953967400084472441356867317678224002801408827577276267057493045520725435906009410394766075193586574063430458184121833272148251365499832820611786514492589416066456741244879328074165244536955670467963892548926159165318321614977154704467119799073912878748487633467351673808508055424840890591606637197110979309601108159450071845268569525876442833476563276269726059165539336650740206381003939681459506862864810879454343247637632043658202798115668216931000837357194048160815146238537317392507753322775092968577607367432954487004834459947772489179591085608640584500269645626517011720834005184927499516511702715510269311638694574230496118395110161535349652509896679115820060849851478217198463036213123798634196584752296235115927278489007616970917506321403272526303333600180659995583495657557297554814305387869022396405088551497461811399327801032203200010960603970144266835015863095137928923036924412445673597439580084929042485701987612148566612282872240620141507873567423548536154734684831423070937927359557310673508854840613756008134321914091700521015403024436332014413398199913143768434722805870452340177421092713865531500536108104155003325173027688230062090980440340474922673880799726951210358323206517519445984555814880323722111965323257958063681849303763178914125438522202211349428070115127861806620105912159970276410045713710274982870695247158522045809877558481441846463788876543860691959983935267629943384215748726562388626224001960322289515570386109984822740485746044360797185545288475506106510846808708195266665955834825729816528850949682934694980256862088599646347464414917257318569468911190005451924660859654418685902219084086525913949632158684449951459508713360039636213828789593109814258693585824615195811313105634012106047103173545413564357920193779667111100657224055773591090902103928206944657012036274032429200749624163662742309589750386364528293682396082126782013471831378196929822413976696507050976479133796618681574882301163683964583786748826328090138643062823070422092936212285085369406704045991228952676481528311538860260351004248999083312329278203909978335073838663890090998677104801314866250012333811269843689787627825884211668650495889776747093915845908580305748171645321657166842384662843397221047927502860295820110754483319368945040027724516459853324868180052854256013322935670160750688666018390014423361146704996239041603203481208172710179057950369317889375394247002735391027715398503830670986119893836226896391919802896632402419702651494552132453881993263360191054205551646653509108723651642706923243503143194508612590746549991051016808757918159619840966836561725027113422687263616236297690584884946690944828098950406959961656190591931298423693646843059926437342683449281332255040802546667342501787841774626664361809712732523346318932353464841685814613737517549419180656793368050875690487911999118099677468475384858808156109072476960680300733989666923413732090048506746818557985805762463461183560805461499564955514577993808064646972540726340039165425624507475245405707111343893691683734637676081115467113077379899090370671809531747902414269110801246319318388082803609947313335154994282571963235747523052515446149964514629303982328836284139255020652893119343905660924687105726791475363665052888547658681517027870849563160504620996015736300408789011075598731367995853128955095259532675847246506779797313702542068190701732067548693346782319736548635632627714038070821224883801223564629757274209741528249359542516786501754673776658161855019297282097799775901102775435478780544931995630299097458647911846354374057813989848162082420001682615470409847957323835757707260692792271083031437712249020939291596934908589919207027744988926402804409866695572126101216604596228384521347636484278395108468984696796660937642147218023691876448568630493026162244798008929522358298619338822629502198730204506103883822261763789939943685062664427880083721306567935726883629406996984576802240393311041869867212751597803165744898677337933848905616594007146466794269863072200204116937804531716361202305246417461016979031863150755190644794262876325676479984589900246140885407458866827084567770765679306531462142154507834719919712799926891652983154216606017057922785512769596764982020633109676866169853605411433802729191798600822575418409350130895156093395846663670637869053175286776528234179571457837933722816688837866603880255942377956954575078291844412151798417191979027863602863157655800286812207700823721894081577459456494833016088530340452466206638893794481690405886120809127363966345846913572449249230702348362871641071884823562480116016184234832399130681428414389955721937159731989052810213808758087463923993166994985275097495172206004074752428423026151884796453894820183815458809493917584479083022237551322307876660019288437162030014579939816621404405230670219223403032511938095149464717698513839817961044153811900981169862217476246848327928193924133096738623999545098156113808260589793111393859397974186724662536980048258383821474105125296296299705656958298825932838632727883235799567873253610377103435769394444458300975647625519164526608017619048836909829306660087090062042029915137403243729999889101728124125439829189581334402077629972492314087626284238531275992769836434205960554906848458851521195967228454993406600303227065551552916139333176174152555690025382375428334890241414822140490301292504674720447316034676625929893166923333437252270281038219445351189931731983385465015949116944387686498188451349535337430841209138464575864496025651171478724174257014004302388308126466855679104391822017677391458095994204872270106509852039378728844960478002775560017103760787337367070393755255930118833254737235895877750850794593931473984437033830048379102285688070583511881447578406086371212444011490862680546210762734035220830295268185010669513124545762314675148275151482675395335846844184405203355483281850103555923047651648981612623050051340726649889313189495429165948457633312960352927888215045492917567493949599700969878381464540881824391399937074228812922071057217788103335131527061409987303200645061133301384879832830182703730855115069223808854471779085626965016552321940035439503262845482192703664294804600938491800713536687384999105122569707466129076422422488096299882700569311280749110309099658821486562423690722852599334511242499480992203761546462974423334734300224404632470345947098853340747339728126985614794968144884583160354979052844026057916766951353450508603782710438606883704483416539664276487228589564699581375760425358173046211931662578066586943849938211610826651258935069838295237851966472553692315177036993306419850676124688041082571913258194727908650688360534866677195426729468886026918387181796886959191122810172252195100477840634503224198847079177824958334126997269884089478518643173158928877360628807399812109082685924129987230763665296349376463722758375524350410710433159179317606442249025898942716944694721671332346154758279271238160780543935436920109243580163533823887586410298155738717422198236870918480833758684721588599511459764247333481102220706296508992989736579713637785728948017410971868565777209031695754868316096991749395466634355280125019806340238227231110716887401533371142833197533727406295069163614436244670070433109389001889136682434985703200019928943636143773768389332932754561429809011260103024625084431254577092902467848508950689126546532497830867555994756040454898021550195274423145561057073141215407863036487796089094813556500974462518494911909975668913662404691425745332144732524866621355405083299670018615555338608963247992263856999000991525506094448396172429405230318038713745103548942859681794395467813156780282356466975190531334898415176402442567003436052044759277216412004290141100843477858883652610566501009025965265130031372010351494387595705158601249256602300513307245964046460489683601568962321040868597315567831643970008719823248889288937939173161246902592093487621008113932742996727188140936580332533209192099818929157937554098459440208798617334223748509213411372534355962049485358595988903546289628456617614386796910930394081882876308319258399578456208459205786773054641206377452719042767631267640555462476024041273383368660430634438387150859991108836524538827638332995574330822776915300469131096845395598816545578675840582971291815775288740501218527343545593057314946654823213332872558537687074565935144342025609212214972625152152297461411268662872860468036519848573216148926022577258780167491601661264862585161144393055115916375722375596386394324970498297906437332331050434333848749944775819890105804232046096515522632306146144389677849244144352951303467845367269854508245528611691215272772127446882830658133401453564598959197606641159301958110162000574328800348731795204011628738615607656910249153493189308467584674850725590615914380367156964377683019232296459894772618186259803719051057107848547823391305934787380486215406787650264507476026662230728563870965842041214020528023579847627274564214312763460438564953613699171396107516197027554725089460271342766043299628732817943534339840825962800801232831719045055705670936686249462548322529015881500668111390346820058955560813465088705171448659455873569063085112194192367065571681043002333941450717199330100159573072639566045825392221254461054032928618599373837231440557604501999511975185172995041202522225466242852554377517068182922850088525915571499628888231738214699691379612298514153206507429434140134170015264184075235301866306471335936309176595665135975152052631996478863472308197964589175675959415530782404634359544980153269568927078802998347611119628182942792517609354781484193967269425976731668033426428549654709616792726547827496971303356693510058197373462789064849776517392408149559897250757165146438208020034571238357218877508633097643006946951540104684447017509546386871436002880160556774227573626518356754846976286607808017631811528581874654653329644196740788893109891990200832032376956638310248902242651210136438435539186829334286275041398858413185158674468483338563127459084734283618209838621940098636919552480937209137515893202500404431590290933071142092854290559264661869486437035225065995219041713940327718072818526035884654402829436196559629317984920243637967771258006805008143412689359136559816689728044537120030995306901893958178622884386478618410564873629273268109626899023056501296979637810514621272136083391176730411405803557276864137893397687239915434401040910639512084127963281936130771315644648699449812862740139339759082310000310035151870802228883528201697525952580079121021740662545935867918117451929757401334426997476536475939738611531568757193331480487246148166457113886232042840975287673996384983188443419919836661669127168560072539242184764642220813032127258348471346311387421770335557493272655388893559595524280477164128225320651018087898043987086654556204369200741195236137431106688225425915870966901778612356655624918687953741814463992468703104004957719862019302640996210146906338407553791258139743532926504893919748807386231755501614002307730763217236655357828020956573133375265520573942554724690094109127775246128386280125182031767123812834570221414119665769461415074761230986644248538605827473893348864377604335404717207999952604836163581699901072442268061752981305687563325120059525460766416368649642321906642871014194005193013995494993125649341722743679561364103043687257041753665203821672703189397543703203944391734347477126203177898602474896117844802054862788799397518573383218638074155247782486689724887468039844818191038994457700107380123570341310920862200584606187874355378516328751494789164575862614022640240221459065464294173718857915405934394768393917077294881719564045019218532776289880988585688126172760747394320161378140629428170201446498534625335607621018139832643256796476782870275033473948026145004703673713951384072060666708687853736640688738707091898436713145232280982300579550718858381292663182043390679039608545849661918633095139382776356982570815274593250516195441323433873261393481049035537574127797461846789328009810710407069685270782430508051748626022898755002776397854337566609816635787822711682518574915945443617855616059629607203457268271299845881436568125683320006979702042894480666563488621992454071840903233877068738831236688657716641047640764107794570684510720895382025600098858476594371745500797078593243628912716257874775497960704873195508777106867801058790874624533797532041723003124520674356217975558111084452818513439539474648007238232064143964998306559899026003136754077155150266687118376378870232734953295857394128015331437003110039944733605478706761738771038199153115888667049743860507457241274787287240177846272492493633956651848534326428375650884800618670998626881050667461190295625077440669437937545212099641717284509665508492608702953833931919298382387098560913261427321076392830052060725398657489263954417579814770405986572495742093405787590437084805050867630357159789780851262102793319240685780898368561889385514056477616880250588456352274718243787465311045728666129981060130992537306913374409769539527168090255833589966945201531482557768952373657027439337851657199220825865454789508215657897906497975792083744886780600261374106813428112951880156819252427304067598031918528730343464839174419256686528536803875938306628097717222365178652465527301970211407182038867628722508289292352635550530868574104349581132302379719778409000719577048163986617277340557188734140308657504929154470547753362544841575683619861625953815389690476437262182073297661655061833742241911535026213095834868054502291034171897773731614397554016245958493825231093908714004444342664628681900299869357026365343881132350681043428928036492558042362863348951783789102225102285799950343827892197847298043945664119000926270041836692853015097031154387543647978735055307596542316648369488489378165390586535824529706546289299779125484372315696942326032309856674017556276416583405699165477319372077809201401865179564556826073145704598603906734641998013439485826239347265093658690942284215037478873050632373054993352910047356465057060325595224469584443112483554927553067913334310031484592547412030394441614605177370005432590384163764870718877648038803152109249488825017197302194447510731505265554908449973121259027199290710735841234875642109288393636077675476481167987413824549121259362607976074219392107924282360521960701103273003126984314753645287043063373969955342084021614522309687634839142726452868468316053177030093189914830038215334402964366282165729138401672107122926319163289811996397693483057179246849919840105453605925117416196252552463823590790889452840389378005701608170802642414009210880889669085559982384541773625313192625667909313839515632221541625364285746980329320984401219260721145385070599548387489541533516596906945054008751839275061604917231655146935671097949833439756405110408712659410110812534364808026939266390429295575833596090943456635155450358861579828560944857532759034820876860517587347859857477114792384204672659791681217422659123174523287749106272448805962874404075851440097665653952153387162901833269501704092738955573278452321871915963059970660200436459295980476637227009225935894642686578999528713066129345168076634355551394038178929591200961398286989726677859768951998973316412776535127920258655348991600257222651072913686413302785987226662803931038381384202280678190983581431887012263122937326489906982874012674884018293695199311881909821479388213684119485661768562161469664029679715414230294555642896774234562631146302935100090395836356621438050526905714148721543821485234628068405854968685692492851087327324538590526570359915651552647920255234486131720259125895178401892494325554828716777324585507213743694866138935181905856692452201922005212799072847576767291750451103196287139614598063389555719755673830535583894688732081751243714862822634800486115182650610729785368813773350152035611436712072338763010930409892399591503544028294161326979645954652209726638811458479061574295076665042370614092780590223128480767237957598055782577347725177987658332129112089239325403722040493189098015117659339428407259412500042023884694141811991028306190101856560971809758591323372397461249686120225889645173600568911801285506827830225033756540594489040692591753377621030789262962920013462325674568727079905374378624631230852675100873308895760520791890421473778469582324212839629202702446453361891813390322567371503970128949165092090388634687377419023641814575074794211690565215885872383673187689378473010216024531316406206316730370622994116094024212563078118877115714739660752428348204255211185916749390514175495836004737491256749116278824303101594792042363069064568074003919284197215261030619222688297075925678200923243584456634201991365846510349007040361093861838323982078431524722375159889281561127217245237015662451819244945919860804586339070802376994016260818859490029329688310925421414873053392102821005626444222497323967497745367024285156055650262828522966914124994012022945058612307223677613269133109395439898323614912762652872574031029241867624475760093787262440413157859999140956483188128248510463123717862813610530978125319691715260352545692514707537969614221668294788103681977762061490918516542136153166227883803430404804920633026195013481043757756205023736727922692461587425789893991857752704060530424864346034705189895851158374491508099229519661414044672556758869325789972804700473579671849240651314494387286531810800036439575301022522277306826836165250222267997830721903138237273500555958961368217163234876504547660883707157527450732709695655087603705203280383957002195170002498397741583428777586008930512608191660864899783724722459374026973170919212670184848729786186882263792434048078591247960346351876531865287099176970819788582323311626711925765535787314633867236299907088540213871363777534068183441007355281169765982118379408083724187780046399581078711122364300055557174434596935833035049422540535676850631845065491861259181680082541018860375777650786334992188420837069773494759081097883778155735190584921687526244303388845386134326652264883832829844822039034271726441931832534845033193348407762719819408965342016203394917365215076111003956101157183152121298202372009355341250580310835458621826700056035822266544594915614342606752316531919694136968166770468838691504507283140990228697869340734174429871144836650596072002083708098630057782511423694907709297014847363841246599695419921964770291531142617527100304263641589091100552692856353229165804341317869109976817273138795627068606982034140720521235971298105102044961729910541656904568255759097337532101092546206592453970882668940853869717240156920271352088465630604866273291109079321366213034134497423443809279202490707364772216350079540467960209957161961716552799907579713275344410292754763850589181443231734801404248495966268168604040040373470750467779871798763441126807805070033639848499010824603890771059610691945940598697022913590584207265744281195800007206177099879996723310400891429899343496976450131562677093448393962851403839474494748721453308387549549199605753239698352171736818463257959943745742323897562149716654883356950011601689053080348562808713573094707195714801039928915152255137327945517026645801870142060628452662855524496692894849120071002861137581553748679019566245660047851116635147465458772352494785661310224328600736988962853573510909285530045711837012752098412715563132294545118615309870278179867486225926105131765548658737673442835151241868119409980700755995604333367180645158709587315440862984151561788739134896034903292078407593445950705969660322871467336525768324672191822959771036984159067249640241859258500558302134637234750748659080450022971029250328277364569446438671876955237440592476137755038063032661682033451026005095220741006118200250173699867158821900261098758042175895285932709874042760245294219791114908040770930364465586798649274528659950349525890446665776749029431209542193540058706313362567963595948102921689782394291892139596373814378673056564822998095305242555142168089004604978229310771049749524222496783760285158450781988788956475011037231528096921938090467108586044071275176629915445509094696372100086929318456250581625453542154930196201185392121237837298271179259679957605940461302575503260353727519712221449848747667880986388052094751265610286803382260655932608535691948321157907134449388069080622839439085802921226445130036340244269986827626672787464735118088797836112184789240633416839199376946993757306093170777846219113325324032570388233429438648211587411785347489787204051952595606733489166246589024237909917179499482999254859378040456325298101789939571191210565768421022419986807516289799423252437446441739053630003544046846065857722917187073365328426563165364455880157887601935257659568286805001195195996600993629142261062534179901554563684420397198804869061187417983576090146346924906674222407355975937635721697162211865167543284084398426062265849540231764694521362204395231908440495477531947701415212873639076563709164865125411173267572706617645535113337311982563662857664195813353177774257936937476388789608914701103068485744582749031191779206194492331364715556196385643358555699108130242527085952522442786642200777377397945873417216061174341066567744982729895754333103078239919384385165739073100757842407837337842818797563084440890081896331187815430704796364716456312025978656316109096740826110679997169087528305025856077751715723064102348985092901152943940561489155762927803124528154489796500288719931270626118619342703948571918805479012326092887733870493288041930324717547365119490729233176668883840129664643789765186358865966596354881239006289431746696400754649198576808892911681558779643007541900438673589105162145662917562254893857504447728254933171642325145773821547774783693340152704459836236159430834757570621636018926894935493883804163745957684573206306102474017368330580135153187691552733724357749603149586836524056021508206530888952535170768195551594318080672584411772714767024464480517781755812739234949375070719170676450032242573663830416405984975245680637956537020554415587750324648733698153187144269165723751414082624384836445900077004397737700054630356894073993689078907643669966439338658992980169548493735652395907261216961796602533898269185088344602765898809383542565613719977495625875546283588342626335183530075392018182755099039896049374104229884265288217826226956542666842698752638770095300756784802714091658266097892919894721530164467813144779888495268242138928201178960616915632500775541739273566208238302824517804129753149703557599290905660735465633160895780337826522162272742618198474282737260092927697470695713665798057849566423331846314440229346577383623149688766241271722425771924563885117701294650447159742902620297661138832531219245351231614394266992652088433711948162053141538255141973070534351737133709628346657329061575123836527576445459590866428469093819293264281801833300766721713797496697220430534329168621749536868286167901930982903125935396433480753132273434916080107867570828808333578956356794771082818378414756884986451402624270530325276083419448029174184054011845352144368317511419140738875667953305432934471644615658655446918790585968052069518858025838690382803580311298188173032536615243239544574443619539549668153572221726663756612666515419046758927900922559466819928455463117309711584148303350961825276981445366049560526941697955147669494715619209657834489276650473576904536561991076696620533502989810755570350333467331786349998978809743674209888511019493290677995279505854815329980062635687000832364283821982607522488731368421883606207954053546915153090185719883655145689599539674658729133354117068592768455651856212234656819332510073672166201009738319167092140887945361398701391460805321294629582697238653928115349889859537352737141554130675992555655023585138201697172252752725945586948671234062240335671264277374253148834942308615910412997957475513403806809519570801428856782725352323109741302528988943463910636699655461709480472503490597046255006686004165293718652259002929154800255889219682135044140949463803578034944720972875907253114354996215739814649350954040204351402016638282807292089336725087799715760972671009210956777671210169347440763296304969456733903196112883011775043485191355870111225814077987931350763016755393394449066666329286426552952064112924883467213946738116873774344901769921787173110819877701998740185331063735563814974782219251010055232135192569408721125017142125600037186460964884793371506265418052976770411591012480983918842584350644725233261280773562547075910590417999100115858648499172432048989980177320359153255822052108371229946441819318161707676998522315655198737253588124374152269506974431684723862030472738881017413512066832380782603731053873012223204101220824074882140259990346269976665949308593289904206136472280125878874045573247915804370751560782296542997109656255562896466883273312942959098288862437819695838093309351048473632753205044019584735261005849259225157281717289196905019718136698540764552566517335075351564538428588105992120791935850168340407722703474501013544837907267403186750701902145241107086555263328058250011900730394265558002383861714471549737321179640484481545593529412468431052608500349459259662399057753604119202151487228799040526680609531794760528061603215386398468224825872421004738886806120554574788157384576913347404295448213297882076178821653975201376473868922336715705478697117624474356798889763547814166977205370833305161674587215548018378996915684038729130661278685417671677104098013358876473463784286670858056831774212164182882145993849090186634908684777775983543439019684839246423113957144934334493637843984614852900027796322771907546925135541127850866486606747892067645512314272960348296003467132429054393585117489002842202581841445950470060671137821259646985798389925036874960046368635998211678046352818110197640368088040171044958190296842917528280485265265355908290680226402990075493207166763332577057891161321373471244572398677468624666679034433586219961769296136318368441555680842272245839583948869964705015704697918486848400281553708410796399156960098701166771378709142895384321370680225229511912309126483640242512195499005285498597216713271908453791018198489026865807156971989173448795968199020431507794571999647976297532835407902067171274495712697765234292917193312416419213383084782081392152434891222509478610478054020724647810496881404079124096875289829746716148558134149966444907591197926570798323025316583075422186495841278897813855816917642436259016520765907096793200599159178910795036286459008975228041596609485419637884024911005460926543518314219305095229971771169422144500134583785700497675098579609427429907427037899075573755571222411102814589412211538145293992166871302924055408173419961911316729195029666658602677680563138785390605763769542682503017432520179685105248976224275332139761914841434395923585295603278530186533913828062263463507784464533645466362707122615999638147325073202053858494222519289329792930459782740411442571030319920357792569769423538923659829675141755697874450826674337165594845573907530676443527497496233730889800106663742458217173045352490919342033483920521114229577808232671782770068355265008468603029465876149930266655367740616089739964305298944268730697747335118524067968592544601420194721626616208787696345767837294271362335920929592472102611601616530822507838414022608000597418344771486685552944371598774176889300255285957081354241650401262153987123974771623870177228431958371523495890428577140522399566864207786042496552305275063902206488323864626969470462277280680006142367041961857473141110987619477754804278332786389903018457213087570039576092770578230256065153920229926936928580804648285567616052353036179377287579546235159718452065772096137950588570231669385859135151361410224581311591979294808541653942351210659307783550049149516862322676752730203998406088030381028913160474571179745449104616710427960823107921381639502295186914307100079298873934824704339737437256486162914712548172390117372711415736184795762705581705071885552500765328757300374551355544638933377881129024973347350177878433221017807796592009054714940908619502873863778254209978073323263834018802263420478076760288160481288020671806230270616937852369052711251104784896135062164006073794218829994869211325954789198070385806290784644663840928644246303821230282577310380381148197871485605685123347514106698023849814318454689180140603749720023509867471844225591206681571516956567015867771011070959287306137374618694188605845817393913011910973738683072009753395472838995872790586675733575586010450655804493974537690385122071065045706901240774700061299629895272162094314634699399701905427952185899327361252226451490926655727118016969024071206462885582360163642185155763312428242760524330282863305392921429167638604834322022780227814344189956258774113881083134763177867331356149826366781890145388774439124832475388954575215658020811783868537761746468751355467418351991746825856125739990619505572864241008725436537082936984334334094140620096867239502832040640646400410291667677031101968538546210691421854853522601049261676592940293699016840460337556500736030198859134486900874011819386877435773044500298589943586618642611445486952762269167804257651899044204345159637210871592790291156883055633011682693940493927410982808169617364997476600575346636374939705209429685869385186188188808336508966665053259252441386512756616857434407669427076739933701271360060754099978419082331514227573782936258652850962706022049073872588491934104743745900901160236430929798960477128482275728526592152173912673097687049550051416058423429834018697335783889667934521665409684902387544300891799922763950062715124430807063077957212065446812420945832416184674626129971081681061781685194835886765989626153032736790679421458150170514230547880398278246539274710428330854034682031091789501239755868428700906206496030532588388383398685480491476067430455316555537283011276029023383996338400950971796276186733112850739111026609251179875713854063247375841499479539793530678719529010651831068583379631077226109303487593551787197071872263219818477567111463366932600962415476603129393930906958943360461387025152804202022471797887679003554220679385581493560897654924101622515503214121045563557845292842291993168285475286880249035565001653050365726969451194664047133651125265759425295314282612706423486305362387403858839186862729213809137224965502250821330003336173515623212488666014548278467357789585747628322428421354038974641877023226902520661763507046333752787647153091772030159993963158865953942617183182433203021810920866126603263923374400047996800904649463377690454978898780614855551812104105128331261840552414668010537719817666129992962038746688912386293176416054887027779745198038831171643008928206476131572407419136070821320978163468253480024083614388620842773616592656045346621333524374089232788418290608848247808856834870665665644346704380433819746687700462594838226430549379525781543267239369618528527501801260255569752030422709448798354220808867538324138799844662740228689282323399268508600559676444737538089226976920171086542505036925116870000742020436620310037429828545445787853578742596233265160488021697814792473188973297521261226546249547200331281837162316224114254652474105441881729019661241020286977555576419966253553549437680510377412124765671730677808951935148605060532109802180979676766027954648476470448471028412168355851587100537932089105655004918445889026331277218717514304084464494556060147474384640010053868053225530401951573429578495201376273036205588379193249850018771962428279634171698549500180751517160618491483851978558764569946551852936730830269679831127460693994659072835790365421151475762777480156774761587027554557183122406624163309942605132406927834824032183042214325175739517178395686989279368066903080953305342288485886272004157087632180106703087863259564509543052464113815568146616487285603090291332731222029045724872691406472972275360333012222527648854486062789979124444826630526322786613890793448958595188941814971292629678565692503880932781640905323594605491966305284768194085185966281439205367204005891545185811190240882426739382428681433264386283229800078503825875384821283215881142985324535658260743861219758184676815134373084150571723092314187579521918961398733239683868831490814049915914487004105384060938127451938601565873256114247517264956463587535581707763556462340086523829072279537437689715866161839030759413826071488340483047494665471161418700802108251952286628315659424588918360003319204192169547528072651201083032055391419187069638463186561709854682407105352844812904277012252450751201807683418944859020543282876762144203214828568714468439774780507512683005466657515667182035631134194728254335407469057152081463917903169202403612996866201354178831512518780810209144910790355901767005932207855068249493282117583844558882725642643290068403015292484180459966928314895289350023934166999499065702408184715694325221996090953643227352228898619465646908295291645368309756183332875801788789718372023830964945334349601323498579351704789900886790900289015779675769548657497927168854776074555831006231675959829760221627697675407524445131363852128238947026971280347134813769231450188559430501579815250877512557401060882223302239621044214432395059063645006868476635092211520643765255490178373239841216630891618361985794322930921596763500779391900455449709574320871087185668526168002223756280947256919136240106468338380340967372576129653584730645496870158435014976570012587941157006135640022412331722745971395320712515950218173503451806960922276933084132466847824729952074524603307813852476043833508652601448364383500295336178080738808213524131357284579943540692547918762015379389827328799386657302105456769423921566997159717515074506914743987592787466926383779394044943937019304613481529243691608916037308861846330489090031556921059185714812690022408485385777010644074058087477072296638309824935543568891069497460317625355011087250765469332201267135735785793761930678316920850347213683801778332476210760332016574833483223057402108786480621739374575845824394122392670460676310116577565609364004005660142905477016698071079435246025315146855493506304204570201105832747792598431069846532236451422971425600780426936922248708004537001119970939106703439613728881916644011972527014722608721110809875742996888602060641711802385678839477546188944787083292692204812872855038402923888179665695924550027552680174165309586454712312673589337311966604734817065543034851661383070828773044749087130217953695592823477102759421279661675138791880930037432194437529401661474165195169615045081944011039432070099522912265145584974524895374017484708606596335182531125516409983424527782522754989114103451379925072847188768840958690216938539573519646586326155060263523310378438201997043327784989160363477666837146718319108878294161638384620550409678070106219038165147353201787193223751811701880029406646605064317858087976601007943299551763170071666113587881526861893388135054000025617195222340959337033228600289162065726627430520988474382866061275750839796283908065892223028234241465964285521436123345131739577279092861303990117372011793472293703180014673700665084181516537690851090668441979265725908384191568524879648031060179334140978965458814359676942256620568099663663615128993723469299464054469153962689589090165618856388979720913266481163538927283908900799575021645831108250031963833727744276348938726043253346473048375904328689751099188981180334667227447485622805628567835475784227874045689824798555272531675470357120465805187399451524991505192728974690755504978529149585639233928019621406835846580452257208219573009384790547046442772884588080694583768316390670882428630785300163241686400923125548687123481291869367810751455884440783614678761639474158391579471183385840506978117728002275203680193473506234932698454206209796144415482264770682290259133878618189717974586994692985965396502269450256138408761930971827042477555854286550309472391553408540036887128108428321054813025504166579185122644616944996036688259655609642364619292151759406573575941832306509894510257959604921042596577722816564806908090801149116155340154143801147118080837794470656426828733051345164829693173450520353655883377135722049771004566675926564793392169114133923432548638521922594826965547734491683948664696262928593033571271743229208221238997911384252542389485287995258880581050988422998569789845317186276438526484394080253958029761846609570008620688191465982227832948697975895176636014811121592090757113712912736522698075118609159086189677883268433359976479843001952661885403706976596454302503159325194163563809322741588291988502981203465226607291610554560837346096729997484068999573800522614103627216642513531275092716463851660523813388988180761713480577463330466884380178954044838939310505589602159252136181019101347524656341880877589624292212479795202663360674395525186887731115944839618001802375022577294506987378655617614116030661634223645456124927355795032629053254791150987154239636971224696326876083261752376937651994626745299923990052758911014755041389118309005179364194423042343839328487106804865665019038866117065872378112859150327663737486683243815811937030215704683602228778701250197118889496616347485526558646739668317666650349387848721590529223045112289650216309785155189169792309596422252305171650768081915244069316098860514435770284591258707502950165604930839109905294483932000690903762620931441429565087447168921220467999248478719982757380507556489371391795136162787463546278972844589756159186263367165145874678735285332063283176127979362224697472292192399846970101279481189982323648350202690196411248441326685575477555208856691251014798114130479100861670817055726171610274444226633813030064445188603871946964833168630572365448362688714795360226659653598806758907578030076670534001033930183453938124923656918732865779033986170298045273548709534203394968751790574566795275798998095535555528977595748342754808690954126236750397068055652717157165558727370999863779298691476782245673964395690621052157809993060187893392950720725994467143530527144745348619920497720413780934869941690862035026792979973241475885767854699564194524009780496044077198491362497658413010882207126108394994376019781416516425149250645877381277499234757581424589059522585519994453157837789910078987215589075904957136977821322204935269171661372551673882084660141152752377590929236292675175900470701743807321746626777581921829147518104163400468564817139421837813903827568225395161431658202506639795633766663573568045135691653986175182121974831712531109141066267560662487074559675451539341775791297598421959251833272090869883475208843209808264850435238697838339816416526551888989106625869502811626696116316932742486016716851854879273615165496083727515430611559384027358665889509257277943027266037353462246375658560007507544860636693992436646008812047804045411727425425522896394039567656217113592374051719846519002681494367517304880668980159476861232389504330652007655008936975784147774659157980413266694193121540682814847956535637662052487480060205991653245941893454251907558185657851001221904108723335052163289766620848927782551006572834734517601332254711988526452790421749878791401695316277544313810855439623369083579881431929848628192572902712343903095763865294368878547111675377030513809156755657637306316102445682404368692576924928877662961509386779300926096114221523866093801895616997149237531279319615966419158244313801710296490833580551787034122771259718677076771804869879490480278601795283571131592656657565378511708624745231027215699206602342407126083907347588423120372786441095052412622110110519653490073921356879081027316912688410601133295053337261077796732027742896703441929532215714354392665316539136199534873523395693334149605172178483703379296113494336369782044138154733425310071811046809145253355670166409029692613340615458514313431591121465494313391029247268999866138133938579307358334836053230184696373668967630689395707124244839860241879516411701786006351228957421532399783525222109338355729729652890412114735787238050371172784538008772235859809445101849767234731769226815756504055210556714833372973209855563720127156151828123107053456990212351036121267776678034686290026658562467486890859461911820588454502657808985429963292587844912654303935718003119542922464721897516550410466744340089260977092141646298239780455626232505070814599969656491173754894605203984465703263790850723962127004733882822029982112026763943938329718325518172932226211807327763442256184687364217743876505136694475338510905885857164741812971513537726954769779724467378530122004639489672440079860939183496741343050909360165749402777821437131503412600996964270002135743128729881524164258442929650259926293212075812077148910076561012046030403926977256582949247632690242068963634591382005544751699280457497311587599110479468452772244534197329676016259808119029150547737341985048302297150782435162124224950336796662754595714980805808446031885454752038804902936834563604431776885367768059902891350755452907842625917316022322664232950479124948241788933140087862437485858458573849833049333294907837726612376168367883457730960768792230989853339820007978275080682619951761774384154486993207056229963256341727280407118015800118526430237656468904284808313219282158137763995817307973149821559286998171715611506596538571398153875630752003744992646551441613394017722846023599733977116920836467806555005100092977535843029866223911340313877693053840107345751828424853433412655779422240028146854437334347179326813012508645053512468812041163351320623404242969880302532873491166521696622214555360217088537792093771393444835255397058759904490072368729152043595692519505185013741285119755321623351180586984582467906598725898666610316476148871355509724731840119979939698383915596967224154317572448696105933704777102840911003230498147238950920286454451986115076183123043410003801105569046478481024508219979695464333323461682363448356851094928431836853049482012644585970817706333576166899164420690245217903554088394351603529941826807003004522972474800351428616986818960852576468342424150024856545054811657869237296055941869755668402215623949516092070407055033714251104306430089274026639674228591889072424340552280417705730035981635775054100785997082714300475177935251895940855454234545801991726935146630260878277649130602713634488780608741383027783974037194107115793393406569304723852604036458589606049578190038327064653970839764398134593214801525999318553838434037959391897987554174125096238598223032930094252953667618165861681356471156984080389030002399955992763953933968386951123200482823687071334141839951172923434773685604938880949945813390472875981429024812384486861863885851337076709540500264340662235712930729844172227504064803336953240625745990794375977811375469253644389516636054326341300319258049350249261625136201472653953372886937592238904021997946924862487871572955209302360963131404729798945562789313505098302451957249777457822674496767564805736635853352763569032252780111809965191806214512767883764786701818433308405858452031053236368915420600293614226750326116176284129053111828239079704470592240559553873375279076060219505679231172197702042475483049598377061992132368881899728061202659636700013582660950088653367814506880988371057113098303542341701020054272283065566196916261737917261813395166118513154006261010406243360532279074496676346767977992848651652371305106748341719375636378612147659944886843153648272612548374433759728115082046903615062531091142789213677324569341888063619528034720263777252346902959695683514271514797289193439839297129974327501892965780371519031540180213157684074854133531781822842807803618002617107536962269715448250494269835914630930026232428021783288922763828832407220512511834187645306013364080755434603116782431157688866036712643529887318735788611847080412218292387391664935968394922339811877677895527386171108252320653459061413571059021044218273711470688619384806430022039510522366196411734210137997815194514107164953127604730884115435010079683103033866593238258017571799774300233840547928476068619171117461967998688780804955353021361563026919196707354269234025329184755047795309612027709621386281131540732270489243076609122930774118856247261418420135150222985499089225717450380678251297226668011762744988967088533933168293806318647452513661068450472442900055710444719374268781605473491294521620098438073723363131044800766232150354175671824944935027070451089246378901311346744671575945546857064166639145811781410938257855171351554422012327034988701881616459111872943012284016387589627449922698012680399268182320823493105727126664284312738862687622791326122380605727274874522446971598384685559105183345430586375709480170008624081146010345932542453462790849702859774688175022561297020078143259473286377162910219382155101820998545239420653079569054229483310654138319812035955441654966317344161392311192180557471698195409209844402114781735509495129365825016342151532506146203787159842204805342309034750298974194430041988519228011599653516230233589673402023660375484247429901911589597628841127109393705817693467678873250820897773301238572566250098838500028742677533151056805373392168545175500068610949350070977071513760086138721840412753237569303990304429884499909855893603919004551766165317144163159203563160736513030766790198832607209178184077506261015128053588074623841450258716165532161191236785133461408263026694304846908647412858416354700432409386558178139364354642063565207077004043266719084603678262939832507521256191736654529785219778028625184756356938067981197461684692115633733437226773826536396111886899957369476350440301933611916914426521344242895803489446810128720684239749126462016729142204483543336643787488290848058293611225219220281184000108077029982687929270388157266974795304159607162005083883477280930976124837393686165872804798762312989956318611397156030985819832059778923347280452355277286277443240762737948373360709315553340478399289315104664039333422888391393897108062872969937685336303210392036724320387059769126066460702906311515955732345087164470323567052570017229113284488974487785282298878932600846648102667533215561960867264082911242121076923171861736348086104422611327077974475662464444853724700364871604278770561085796429280673043140761292503909288790693671668236931299332957354496558392501427480823657235024357544532010239636149945250593704050700199568733388938670669615867562335502421650694771051067708426875237765048835535033900354935964463495137508199229749089896869808681782850635179701416209282625524036959468447847288982688612928190949939140007961926744104193030533355375369657738687019603017408607474211009253654156042494419333230496586924450714689542024816095898676299245819054847516441824875551458724083124038960368896177055383732641991171107129448095405027163483865123371506880258976351132914577642271580905249357773878666662684570652903627773383371376016964997900653780201014433400288847565402682290941726012236309803552852152979240181282818958821025546491918326811165857598592993483104554288179016325705433714620570208481397507361080370234562612901074618988874402555169907589195104216947632075748557739313815222121930219678185264501888524533622819716277941292861382340060760894185285388163845220145487810459620796237249911021834885583155288543309868394392243568589772629355144534866186254374989661182669773578003152038248180026708361132694605420269455381020864177825583752905619713621347772206631851389866967099287481888832343716718800700992412574686340231825340185227629160478703659331045965063517024592912909486472222602141816630840147895821812979114972514587989852299003006687250195846227337644594211412294866940231796036361842977910386235244598575765766817009505826260709597672807414202842618640089700929710838781619532549850100095589960670910681960874155725635261500286679963514516467675577240622905458496013802119908080481309109632175566647677060626140956091362593140830389235254525116878125797914763922648781401229854330056838749954350316734818474400132778490476071295502194676715368233005718169266570968196553501936933752199619465759088371043611476787252542114925016825831655942765287956507052151783550923963499769906014784859328105224716457952086195866273987089497927801800650918235552701885121290058641186029451911087520791452352182128273914132315174902302820854794018050793284609004370363233185280586465529012101431629980382572924945716196418775981379786757381313148253267716883861357081646087677356863225661361354347467651704628748520536145392911782284174459656949941978378530624542705626322634596438877323505527422429780330551809861689211996724975201488612107728955974855143915204005268734883563362263865025438843618974820872707443733503685310380869375505386968950203630757203416885975941605222318799707215916187295733998710153438473239376577117253351240617340715601112591053315051267615869603282534350360256305219784576443800558822707554868661621686540721491883311546606764473709323519502435107452927843668887559733086944725229717757958554446897857378537525975108839160094132821756229161272744969382394702587826935451632064665992832419865095606068117753231013622916838065397565948934050975268825422948710181102710601416231519698002946593299250505729859665787465081357583664360408222387557549546389263610573226275557939185391093405112976840934509695092268966497195308225763276970163285031962714047834816093341437588944461239209446961462177993089182057129127513682439875766699112182957164219588508743304150718008494400806984872804038238135282053832053807746675989623715923725775247990423374337065450534259964171549528247711604428067340367627734534810650886032169403819335362201083529073319748890623471565672928052490364292344077645761941447419635670966210920839051811773732923028466599760849720311513560656863986767117639531948315200120440545994208623646291096650377121154572915279862915580514926198009355702694480647920358055623896797377215392896560705548243926194028979159864995816501890274552596074119719689330797771559433203631916630311150429816421231256330310411873576094683640781402041227945574745908002551170039528740365790362584539543048888556090976461423723894998517389495866447564046879434988750771896448013506778743036642727611151131612117794506549425986529582073573426249623461545529718706753391687295682978658280106939334220202061194063547592107924643865183578928135979944827070001148742908961349914634990292847890457874048548780214523284762527816792469649418769050413150468988862725396225393028496476242043737544946226204354748449365980082272000320630233273351377608082923587354660813528982352124262754502985261496177416910842003607159070758902578481939086544762111354011284500472416370552910743477340820690719450819269474341409795256242245623931519839362996779360379386292358940099946204953956023184547127763147708850865501510718827383732044039023231458834630927008868016472393591654412512180568697401679295608427247626070440860820658581007939614321675118586146643756513394395527045999470318851541883646634174411641845639588997239572977352506211737333004679960024788033977006586879444715015856625768964676790872771031779774423849672685512347169549727275452300729846897709560150830962234654761394963392461644040841525249231974520831532913767948924074814253730438258242023136690118548289006754168531901655663955612292689758204447566507471250772089089215915401049059254871591257918805549905088281977422705444946168379629163578255795855909324751512855510629540560523533141029007876821636907764104054129475532585803584554519457571882724239442737760069389209356100841135755068042424978135043699448132536937916644851482385401226532629282723142134329441988144405506082784229698710326469903238878371979506982115511660937559071644298667608358629562270506268037502664147434763335080107738462387383901880121110993129148671765123714176008520704844541964385216314242939973981721971569692756434516405264726250332970193282924108083105143646411181867587291712353883071229361131121781568879356175856090276381540082568719209708555409405883214321426491786699465712993080980717047328023598990702288884114472991528774686077582849180315218406304555915246290958974793009033097141133241402583023587746611968265371788405098611901564552858106927047270687503305050941796412696704609391749639217646447835104803884532075978641649218642488844878248097082977801639285407238960308699043721746476582533421795358304384193700045754787225639914590958128745888681167984530290817788500211585128038796846818283195516053947144769868619894263672012639643260865508063831065829702549163842618108076875142374819336729667869278194200528482416165425643889757161917507643114686190501808658702794038290245840013385153820799461633010947200261089799688056892817475443012429202050042300673955519897118991700045591374052321097155770206465062304012937604126455192891522691318463487963031704213639731868752338524324834813889450497723845805504719996496920837143759789354776720638171004302914233922281286052049093429312197517331239724895250719680402142148748990456283817943940670924890423234449171742740422174923038170198017076145178301330601701049616647651510817485588657139555270341351397123863476966918574336271402234554528009890050983864314411460766072162420144343682945661294226987529186270640515280901017050099268546721658438079267665261212174991283206182100633428748797463508247529419295216236626143497277635388138675131456417897478198322569914080586961652262812872841181363760672762836932504600952785569718183034817078607783325724739465315732110370739576835783626537698120699103634697740671118388432753067745138538153107810288890764979158551251022512317585994371327632734591550409652401143823283522080446406543111934174357374236270868378500595682639512232938776421868988987145445339162751600606136292340641911391654815388671670730652170389581876705185186704140080217499874996985860353960215234730913975526555250595273845907338360647222888988593899165127345305687192950622211125484513147341786593767835798057785861780557463935516365826086311049081107818881786908349511634647623559637462782757304054984936334604984801279052895489512728150303409723388251313079594494962545506375080204693253856218589225523240609557086909110006589405408389392354153864681886709172043802075072372432273604818877562712786881627709332779206533304674292216313124070260748988916983265196482814432102542531896889637444213820688194840705169317127975363577555488156918019877068332762957378448720932070180567566078257246385290154481619713232210475633870220018895335347104978836743476354669051063523866173888497711309910423759216693265901049325036045240328583623561107556672918471962132043017021205422489810704175599491968753577551194815378431923221300615327907413596096206862928891140310865728267162687341701202129785075871140630906044017207269710117370459092344192115543570946110588586247209345281708671386652101571325554181781773265474011376530560992929482094275564030092427725803048976444052212638846669291486143106266927315927418780589133050809473584949757967987737352108642678373919669165223885887581759323591637487552186026727512917203625367330021035130335490818869320083159384191353481299827447417106262040574730899648937904634628716545647948033683204555410547801871484508722003518249028840478990476872751736942939443516779951183711572133601578683693235792342402988589136939417185198569023898011214167905670360540674601301284815510192499371860097568246628272468941351869443571251950874463367100994361825065519774252131820893440915853249535509103408081508563389203541808407885043395173663037679085566469159245251483042727385973157854442237929903805935961949608089133394008865010249428288427848723209687916753183398923971135890632523708609374704352190186705029630795410128770584906255655294541833764513401766281353492769985225495781413786041593729657109632925274375462256071195628127107444908950770533234872239165538563263143787687021924538345986514294902402517120246624634347589868679191852687914332694762979269154905098095528187057529650941402692292900248572529928448467373753529608249660444169996829078584666157951017912950132155154526226920256020516846896604353153095198570810407984541055558066630751479008888963143708776733182082615066229911561026120187346586968756610323119392262614851683266109272671671435618869400487635212454117001300044947231433249507273662477757831564450404499804931498901044620792032407862192355000270141092642675696818312213947422825935691860264486343479582030490142007914626053971911558875298026399793763250303032625603670424190295965969536612584918711796176146581134545172277777423167084331604229323885828571050381871702775441389722806702684758258103614183099933841161517095501007103095467179351939265584646208308463702716652307026841663730396149998821124598933348342357105932243364365694904474286214292662246968535347478407439600562698930914851877560234591509600952348439566902816286977271364145754967652954252434926959241871087652332742335682331659946007827717772502840731625153577272661134955677433868306653334221946572702880554493837961006627301567282694282919636073541696653654911947873328923519410414561059204067640693975656555226993474848424283173172417379371410991313914256631696952619302677836149089077136276317811551555427097001519986921179073637716719959660076124668411172999971421600992339169803836897785675263034204753943423650762330282410885045138337602954973332074316266225815188976162003646610262290289709184075861034667267100484559954327349347579814969091878501698870525889282492037620952251668079475709774564018409777284741444686838119915712952937280046390252771556263749492405239245383056789225078467050384007826996177097701173603968651199159541733374421179447995100001847466101958560796282275477702011795757236304146375772891233956569029318780309982697703252909880414870760115701913000085171557188713148153425569480339699257193916554030734253844150224155298091562987061594569950264675934833633585408942978735999185964091453091460210945479740127327023457822735881207938300501612513099546878926520561168358326611598463196897494358733377743090040440818265393352509997147153454546207745137707192929316509814993735294946190797426657306017851741772650052174341463422630300137358476529533067889235803411510439549965253023594640354460024229782584681931739633432149163774244877667852628496377847452805989642938283280137109043556081872717902031805803628388766192190299547271495544532129690405293831165898670649636218387415861009818897218062718140096462516890278316269658483428427949800568500087730513747186444041509166828820331752957730521543906866820295570798737830978579132965883913117663405115223354947818940489304814876182469344225876169740023316610306380814113745038551231814716176967167226203996224898834430292864908901644169134145571853967877469268188627537591150936161612618875867232690064487952121969496768030314203826129168224915603026858416779293877481772104019299412421007826946772030256641617566172937860320426131598246332356306225666916608199922439950384353735214551032101310904638109340253459030259938648337158064395621558629457427665735755518617701649299792422959461225743965998645571644209551589647876043649381733559653986816176830278514088932055166013656291116114858293136778148134425164928104033720456175544526489560707059248078323441956145309008536543325559127038583288793882120710216120321123240649853928367180565314752293889017267850931058178196911598468044042405381970364430780366069465014614634001070823389509414680369110443708040847936358156129883389547395387963269122347000460614723781355251928198247903352866311215593081091731095218341361959363881144346623895532114681661873680348135735534318978009607081124697289918529707944927936418955688114161380308739000780592876202056261816515905692115111669953881415952529827158538226682521085106736029152948661625211507862590826858959050219422282006951946364035438690436238194113850845410142321819975791761322470871407740276315802540293315054504034140785014591763633132682923300252860143413380506992003187754059770090323635535034342464638759870043745030881695964181130906268937531558278223875818962712248651413410648234305931894111088816171134276623659213908131787427090941655342331849498223063633850863241585886815013362307658809930324652024026739620829521199741774430748275190693667711110812392712071060457059594562358012880031104253393049045140328877557670022606875294895518313001812064754616223236353441561532052285779255962721035285242835708921624162664784760628931959914734179579855488273008496108100263271096842130100371320099134220929044735284088040975147485193948442950142665778126548820786899972735196883602544658688830542251269529255770163490875097391940313333878369162964909508569364908030371387437375110587294368820925942980917611766439557004286977471693240809459485268626370339348984036843485420739568152158858495189655540343295682219069870117214623391958511990089731060517369717213604187917332392423306683550056549361447319601341998266289875854596706800104038121380894365400912348879920840396053737715057446405130127768224547718727676697154457763296873677685769033110508596317177075297024446517513556842242108502472869413149967766402730320110149808298990407486464320464309115666591506725473049409642726495728395158667311630662302022844142091207322260358609322717958590585335307051966038472866224006246455563049189983155057714352592924802615120953421884473535370401673361805713578503347884798978410160431973728320727709934729649974745691796585805889446132041719099188216515862816286012752955822004994321062970179899294412529088453364206020422043614951951428003105877608277508206515567284634334540823355481794455526410236089458679993374933736607518841977402604970483400776033429191200121840498234728760573041019632561259521482667707667620020913241215018172830483879107093614704401038574641302478692295533589453728778206882036136635741051517313399051118897745633049067055915893314507450785601083304301345480721841769304226355269713898160847361378897141951649897549592749992964359548940496246015930230092826157904069908822092638852317355863422527822770608525121428562019116638822015842707949805824763362473282723447767921928570063901020544002983007142889369708474172314634795823550469010364364950370804431974197012763294633759883717551779395785863333492909324679721080242994420099264356990128911906780530191999011908995113503016989859500280709238131682559272220745922327560630536731415399769971404369491140803900662677731685934975052177812627416750927313875760120986677735095705475345619028082786911548221656324766361524697018795033820138168193923132738706541262414747870893018949879106615355259235007581099014388786448376914540817443948976092064469176730720075186616858848406992228363398570624355602976217686782013941364818151043168398534435910553532280023507055099371510634898792187518800773341033132092451340390136145638828070398845997834706202471848794075952289588988519940249830380060822731206482971327328132422032524578162220912692680290352218229075587820220482939134256028495135879693852765516589954208009985558576535858874584339262888191726512410263619420791400919808380271006031698918786610800105853155434468672591456317662907898037329956597864338344719607954846222557148561630298324421614122179526396129888179267717014410972354714938697403817188696889647294726091904209456759051888063897769393426026725169644568730208174784530884321275514371838966484857331854373312457175739121447957299260129709793905479377852036980492968882987915758258191641993485833048994965740048336660067594852246067935364083466868294734010047316306138280099390612829612921415180033966962551563073843614184971788090743451427130394034694796008537190110016323027151854244234328993038831203292723210994137608165024030590960794502928729408157918841239853402160530118676255718326964817993607498635033557595152465956739270324031309792329098298519100469178777223273431028328091668366881909977955862648903632550272166441310485109663045826159030331622026316617374363969330454802747166542137471260234394825926215803229349440893365136441154462030929385882024019254216368082096473813288898290371008083377752734022285110076833292174108987503238193066563734497591479522021416079670245248761253647810672510831058879528211931194585158877205487904645357002009753621919860026428812465049590742839740839301309128711729782192386954277075968115876610156380469161942023564004829043521167367187912480264221207848570553517889833504773914911920366947289958777219729858542301425099774498619684725011848007858670284779881845089950020855560331944649442884595671505026231550008886877934129928724159429317856760318598220950636137247228514896711838709027477070750194922468394168767553525829923106313988919409737565504145419464545030316069427366648037767241446851619738895306920928528261781473014857875376669072602388123532502725887397109492351042006676426795288361362664516457434313804693172018511709546676058836283960667342977361570232599849855576512347494843635183602222140871752930048237038647240697605722715706340135803378103275940171423321364935540321631559794579329118676213066796623583024937491946067549157006038792002053322657744516065878170314705031956364358418191933788411195866591939405074776896513601040012501285299937660444750366610378201539659061357412614720934707454738560022136794004247457686993322792102079523821264071184209470252071421735667015557227905130330606435748608605533552297721860520813999906828974818323148182099847384203526245794782602814622367610248332196948028781245433251568223630050922734609448083402134352547751697211936261073331366656308754249422364369540251970816384476567435729722895613756642099659953792867116520026027280307227465626082747160461453183734545298892976817225132709252551564526283161684022225603505970583129677290157551398228686553513732374354112187101333502722992147024795841141311214818569189133289917038663656378650605010846021063787226982208893849471596586880181306419122237178966572353295831137261763987501636780799795145575900015076685100493198958143970759856869366071465689563828135755589317088677879972194771094683412302182787238030263308125839981303932818377246682432730769736657795912170057824858567508789169528869556583359021646355092928434620021788193694216375516551669703600043963249786532900761426924370588132656543466147622735144469301264282757243143479362305767874635825167408202632536356543034209423713889168576397623618282790101313879333011124590220967864831741058683835590125176697797081156768747515065754679400655686703441030282785509495004889064783593907128503469667227658148684907156409123831706222982216400452200484427329644430630905420048011385941046332232132474268137919642124862151706293888223948397006032321227465042926930544201136166595170185452503241738292205785047386040622662205239982097802300733963141860095230138422333569417662223976337066840179514596957105429679340290858345943817846861409142017361544231983248915991478405971238810616421168363435228586536623552590466625243774298495996635010073978775409744540376108639114241131729924121064889611431676452631387560183965845478700192412381794409360954222560404296851842724547749597365475825516510623702945311722050251865369094289532790839297286011502080496924701208167705493587142867641401041545580127828361911587873951272964135703149791132117454628591384196841250431683117801404996729482388353692544845310492205377514624833395820869119686073033036576769480435398894661783527170292327430274133024345815584542550997350592268394325857645099895208929800492504616554372134838267338464610378060510434928288271308128659207955681566028386933977995387933162346957858023226463476684999671413146722930715522498227128705087780130923178749165625218868024895695791800749365580591861058858614422635482616409090983111336460364896218749150399411326710600763085017587858471304367271508296774801102678386017738257687329689113630632499248229233924910656403126081474314303948130071217528791035983279626418472001396243901731137249684696937073590500374990793019736279990708802036997362046913181322610120525792617349366156348435628305235623242131125539791857938394423466460857367685047343012373005055900356309512132236889206922082637787565425053556828482276006161055921067433807951739427725718053264557892405387051112201146862914400285550525198095730421933915099416494876962412852705600700158975981767580313802086380681329130438276220538191590180583728723339584514091329873789091993355886800806974846956650963189448208524221276375138684131017409218290240593718036209600617058311477255794445781974793082992854477211343758377406387070839540789586257247112735828420834782335274927611015147842102446410044374879042195335604665336418619866629355068549648941910867401969905368441753274617826852766720665991524827514149767427446464370038712683193213566116161558322258144750088698558262769340113005006490297648647134206906659099200026184489777411162379870393950670095901418824355489468343374564043748299626574330211539637710950928542948098692322245845094692260933298564188683012027181655260965500818834050339916178625090586833819442889460085770035019404472152057498557558345743114561464747287604691758797289253713430299039340111549303117985297607753964480298682666831747374925836426991592541273311377430441200693398762933295150349278261617894742674879399559310961632964683418385077511559658601693675410910107441637215020599338919954193077958904284993497037577526579326979769537386937098097513258576801150458170985219349485982589919502235199392987128781747592894630994798671553082122708216847349551678947914967721661488786424335043006848669319259623275245997811802219376873110365129620151009367079129869024011557275231787330450934010646789844810859090307740753007533616732513553939109535959289389366387584953906641630051090971076774338909568141707177354722824234991733153774543410330151114116065599792193929811320794356951335877979866875020468173412505853458349673586434342644854277006595703375026385336590394848378581313990391292459144819650812511383263781663307036861471927296475954226408440700580255226108348830526487839302081195560081437349574866789399476472913229586419895026589811669454646730124149682608238749479450280563478852231933410129553302168362854921998935273366718668715542852469417782196961348318980299223903279123135322442729973880204636368535397269658501408364357089904745237072972367391076763803721177919886920627634134484220948710749866578645151123610189558798806852729114456184100178381045426313810599818098357259637432265886409376869213365292519677600552171609779783563505184344519249988847281709141380671804076806797403548844975180410403216321198725997790789306501601207969817976524325353940776661456926692704437059139292389566295516596432498873155643308727027915842728927584156343946941122118883967436250335473398409266847270275316598315872606298796438548447186038314518556471613089998834356267122081778629697184285543378223342998489221986062308508873425233401287711741818823243704193903678771399107965808681545198022900491235420416136873511567732195982081531114882856256241625944112560693620233267108216568007953601381183719881305176249812395360789327468379964407391881533407548985935879660781517268557368064776770540171838023658773116944428084222405086546645637153224593472689606748834491288962956377886702851952901305970138077958406634328050415670530382868929952023980380526938776617102971679912522505844358897710797452326596661019646826837945018021347082375508431550724988630559005899267153728941645039520712623900013722484019702383377678098344272864115587734951008352500390682717964055921633779764305755742744253957076626881820593706737424513999522855666510446162294369283610988163432739073390938054959582651480848652542744974984898100070555252975281928372999713809250069534595055648750861160710126033778005409650973215195247170183637306215683916623834583873334440133165869635269665215992826519202834154280187990087383264346730080432789491166300808280395978080703456443401267942192051950756338525890716487862772415086490387004046226685606807238266613050881245045673499265692359582962268407700166215236693968251711214831060417883027711856675480968883909340369553090178463504315759038438192052792180123812242412320997187448571003453869083152387004237776935511427056770420988418672400752675215230146642704790758785800223305485908921809953098047950785433441519094871293253180498563085502805487334741700332881372680280953781128871564461037057035289492440395656365528570679356379462406395007735503967866742101725756527189519395102279384541407150250877858913936271074364281290337353831851977881239189558921581637812071181026577731400613920810419252568131440070543251920321472964822686369429575136260310890025987954354471479504463901329850802497077951620404990166058503110112460148410272619822865019839720707830631847716243103673558450176200403847089580596805855940619057197000728446235476414088313000709313599602154741131559464101836646589495896489845578682221140957777130298238997033760928815092990095874878915291022234003706016770268992293305929757622547970980785946457887354062838933842471573048182412727070589319579120946901594092967084806668982021051310392849413010437238666705963891619732658017415513906188530705870613334493068479853116556489406800669600616221586310350653561808036820436437879463816850968407828112307912536201828745417905720981217694485722170798376474060692370622363460570739725589714369846617701326691738771248032031514984428258332285886738917301234248797214738872704856225943383840208836818475261054667696588847206855207080701621806997672447620171764066493153494416217840726373099504802359314046281608521460047524956456463438047318149504315916952261997137954046004522060847027934958158136301808578058439987013375430205206988642890078928396955121396123051965510183425075996675372803399862791395497145339382125228524913374913936709496097752871874106529890059090028777152566929751232128824978427882312693960319503584946866488700413516340875212207439636577543688189749731738532482143763856960911034317295480220534591089702510572304511761226084111476083263724047402033328364963316698630458217206118418216638029326095998224925419015260028148234982982205562628839802904815326378398575977613800365592846014667772630006314580195488252065571909925812435437190831167879554933487958579136489007901433626918672026469708156644022360992869898281829647229263271203808472954255676433789515387612132292105818535389521174830087327019180259204317662650643741287012702815682372966007900191560927446877278867105085786120701924764595693243835940916688800683983809906904567647050718485451698845411532492750889829835380238941710262483017932212720793128115106391402154611617146191709236714139232339909088789778487328617343007689922523006547986970816842509824409081724605300352809920658049056391871682458781881131663482446729110848775731026978807213502722100219314120604300551424621867036768928622369296812069831996808524362931795716654769021215823342066652505021279667306125758487528373990683468255743368550796280766605355302986143563863983114750277201140846847677221453140214630191401531363655277500293886180791879324210142198446137884159862559252326908849342719814375678989242289993404871727183507529734889063525869277056591414250401640620517884451889261360522899545302220673182384597371903370770064271503980982943235735575449714373535859622330101936447988386734432704913760775405490570852388620397615810735793251208753754340536373616338446999210582389636927445332082074674567128370715895366661579327294337655331377204453334178385165731501908809124725488272905880534646696215387419709052512255013017494386076974501563967428084654864075211866210335081333005019454642985209036635711555093151947319123223714140125059438770787501591041109616706672645968120078245096519496045964730321911955931099176225557160721383715126203725970719995537483825377236418614300423160361936332233064731070738670793441637330000852957097571205458590020884736538163804985536467091598698980127680469168316452647791740176760039054458206829255476527660744255714093851571645667262325907411081463313713667296165979551167437098166035177970516885241337823502216439094055206146775940133870101739030388646230434341128910429241827925682340213315737027908293365197021791813047761581791066351562981679674681176027810325378706500248029072161214933981099642995655639055624572650057877189837707662852253502425413277844885331876976337011737133357002248963958049056579089441775208785973201003859702879955405919202539284884468674863181559347195468631915497917271082951333465878342885081097288101212604083729071545411835411515257619495314023222607198028171882109105484762265863827671784004199169065190428720701622050559336079924977944229795680345084540015207435993309536772350118443031973708598826375343589368799027646908893101750983012199224211730032012145208314049285937269113061258344073692399495790134287554463385455666405705677874146659575292458173647395053290004085648470634568566835367677327923922154416440539095910802085789922097317240829022805261815586139656881301113173977300325334220067178417723726420986741726913114860992446940895161268572693990402212852594571164989230530924712785043312320479725050646914474606543576691768197159529552208230418500741516271380278760765828090713599021670794412534373167230259755167312399351194163963091914483291176091710189301313486380579687689053712480734747252154703901586133521007904732659032491352005697462791277586812654263650739859050200607704038287824068858199783003477437833767834178952447710950529785922952472294916485900757223958223725285708191005932743629963512171224281584765392376127468102185225158299392746506940818682988428723549680483729336474256115263541377119194793457042023093061540552087348640498785288254204819829545458385674400242741775292820495903685808679987701039226181799657280806897313065748151921216137329611588534020224333284902767220544809368765583215013026514823845898664972662459898017105045500539963095922625219121470012263773281999879861823555124406250752236754960820274388923858821253966992380932677157029054069787057354512646288367241308471313580689636798703056111416357104103282609290450655814277914816081404081164758941537877830681021248984231390811427188570730718550467275914452468961904728367226060982934039728838188327535069191182857048383471409742238661196324531643869412085189148195625548134131939547004156183634815714097881481228952491706927331404139927148708748439687494335736449859023527146029190635199624660607900375351465516675880733845124139641575624180689816857523491065650212804200320251115119530850811031862116759460196696417885837372741103509240931252993857483674475968778566242167295239370667189922520631807186639330293507243318710274585108458246495307428278720126224121613065469484531237992451155635223619462789306120542593916387421572905855199411427602535937847626202108804706809861128251422567856304654589037883055928029232079354638649912872975343070550405599052182753357223227255163339492320195308031184244458249231926784777030467986156152351048681842223636760350739588258994796832596424737548944783680730329232595009103682899868300065297067140213189407840643597885248089456349839564391741390781070138474184842566983906971430030759893521615398676872380117794888206472411474422362632481773801652037352224097993430694118320941171514027365758130167378026059141714866512807095979476746202084934617142169271981756869861627274643055663594531919794062970460672287383748321799468764744812793923415295643444809308756432619694160654883635115140225364274467469514621507107583003181114595144032833738625198146914668328957716583604133794268837925188635975840488118795248881752616932627016051945916641549049854791585793502699857818180533396847687173293182795677834522319469815525728238187449181632145235579698723617988044318499346462410417091405960497064514037991301254679502766713096114467329813088996146628546103235830287227678931046583949249615845647752624147885687024994579486786383352265418440131327344352590145608411049864115285928566257865732202558844372725634348595477785447998495446167644251456981953591002818158491204741175948463535909391820129863638344134766081344201985447046704483270706736820563198829203242648953940263071163307222442271836132047351481680695926996993562624547129454801905740637580197937470873284341912752628555365009074254913626700215255657110769856235533645772295351672249211465595635007299110097164646038516908495535915875040374712172057948500299229855329834643004337895084152414245409536339920847626768199980272077166884981518492816667744072467829611487926236489373910877799114340576557924341016732682690378264918122916765939021535402252948750499438007796166066582507188497732811265042576266007494374676137835049161671046744622327247173667505703176650638102372023183592184478635043292189627776256374468139645181888415437893130242854388868665151464586395448665542081598312076999254690317286934075833867845742861553943101540015774640824262017826302324520194740912747316456821386333522698079736756166274399921531777758281248109951695136118546249303229487922012218865484854444949450816672855168145320898254154489119701712125494317111332722700545352422695213585893904934688694104628173570178316410479891536460486463679737366851019528034710488013468468548384230855342311493437438670703075901113684836487599141897430187789062125726751226097292868519686210857047831003833108309626630874219896362969888151030450999153903379537266439212921598996521045286048358121907506710652454011498433280430440582715249370341212194412880284685035958320525809488395275357313657909737911497404061027742110612474821906188122036876013614256180367317923845899009751561592787013748922464492683100267723134814844084837352317685214348847379376000009920905966235560399621077798066603146725229647512268428648300809454365562995111909828652895224342801295140575338855886868145826669918797634156879930724970267818107799485957981770635226195157552010429497607855176972135981424246014466658222423271101895377767762227744273018756034862617397653722490239809674358761088100718530046398114415076805067269389662188669783061859441141590933536990299382598404490627140788881833160793555762882894702900890229333905070885189375419335050312569892184974584749205272455040627424873226549531677197177879516153171462612645694966157359338094221974433324376679756855944093333334706404179373264841849668387379726712152185199090388238568628830037486308661546410724040677691493090526216761555514113756210682503135400789653407670254299759034941431041768732314168243638197850749551710907554190566045285862648900901208546882196290447406903098896662819168231962960882994878193580153131684206517275083240513483030247014196568884421387678209237389405161669040442672742634314790038439730315515020129922996152850061511644639229528445838397556095364810998779249258805253843658899560917201746505077061222580183324656280751274113842679946507991854987512599821815465228581258398530962818760140799207950919666212167502427918388476594880740276736187102771557892660400946174731567969139777171810691785638712590917478180209111039580285333553069131537019535642418552833742095419760004732236866197809675935654689201771456992067307095537943336920672394156682660889518638715266446841157497377387317661196795576751188159912000191267275766828886116543703058959856495790172188553947939421055402921205624978963602321252898842688740908926844357258119044352999568249485129617419174580610251491859033788622516265981711877786387164997075740181504468438254732887143135868157646805253656914615856111148219392599906178626949082513830051867862747390840251132331673878881879125800306171825160096462973051082195483770733930113717653359927704662553106172642773445499519692513615753271292731706682561584342501941870296592318746211621752094274067291674948628897607732462836217922289188339778951947011778538727649837339133665271598582172053907208574827284573273765366929451295679936975831534952029892795627288850559894301222914106892757408559675399156536482520549005873305725344028725945551966142740726716682675874835094295630270189724534981175159330503373005267823667645844195136277543191581695075064395036545769818452512765769400563121739808868983251235360203893075860988746252103415693156179864919211256781671880131272683832636723704668816497340823592868634851176971974496143958936059485067245230713016877040338945760435076798006808561987858625802582548917803972975479032782541958181431685419370661890185698170577535540631442624966319473802530806816597040726737305858524972032035399722583799576879361166496302776907112500659554002714614472481073604362633514222771864449977481870492861010212922317841385530932929784671107550085979626604394050557413502569900222263322844042945602266725134948561387522972056989575302874871141446732886316586840828172504400285684893528964604164795607479707586343566921947294610508768349369270034809687512819006800570992433376728965793463643510863313175945791398724063899756347108069745390873462611533134211800979724844877641820548300673817396609834458957851602371941822494061676512302372099125181088671321256394188269211587583078435423125152933993187307979060319981442983266322527265533843482325267831388828043704329758924118451773426886298642169430127159036940312171237532310351574018853968896258240231575975031912117735028006844564672540578079791476517849748902227605760525822650904637002409035439779085865364044645148265887202627093209902601042611136091062508009591631670372433886280114346179324003859235557761587650100416242810001794715637926452546808540621245051408229313751515828632593450870545056398398698600417417154411461743106196004889989406192421217360223572469787126678713431474007158505999772697989177290739879393289226082859376492574113346172005265791876718423201568238346552977278205950081984394097642821723330929305267310070390854349183511364328070611619512595406356980558289050048286988751558943234055176403446758627744546309814256737403036559385478343377662108183787892836528805182006715052526669246240114064084369802848333673796853647601350137068479154086623365361464262037952821088064149564770566256124031177896907820113817245503712495020567327457337675189648725204029701395715960858769041694224749107558239250621631301972256181573787296261616306690876319270799514136663944223504151404429221310999380278975541966661917501828223386278813086024596575081371015447930094371956822693616767080547707721516692674503619339652155751402955321595615472017375757666678580551691351777183319785325536396209010962172949846813065647370768686769954261577192442920971393160209981649989623681802089007510120954896504621487097811973012708050037516154870039182698288896078636106070058727755595003796499205131195938123554487788393827303059216494916445466885280056558533104654059188517443816131821493220734885300326572096294348932928328159972574385625202340231737754904358313444492127816095567289917032372198419074198808557584173139398886715118738354940449762949898037436587659873217523757773325171853246180429521611157699195731773506134251092933059005181656178692055973413567875186563027533941787592210591607227623999790758703542748995573917183304087668503222142400596561224754210970068284621231057466269433702803072322229935287262415987709584008564311199680371488685533907160005471055409128113829008215719442539822941010058403368270490342673393053573731735522794520639301127635845837665538081324906613761397787986692736557202164172112932575304717940083482018094830460645987341452688948789185865693163148137962187036820256708444441671124088571113206450547947351588317359572510752725285298098234498631699335431790073676471647162218681740609129223826091280280139296529533288697534094171936752175737079711709113441408912170159725475017399968782052027845815365004902733509096939680952350712395546895962240135114813524984526581819795304009621727157617615524219802977483067229298247867749298696661177447919898880822258105546884312927088694893213710243656873400291851847727339345607357942033062265650843420349162928884101488719451947550726179524372406820224362782377021921816510465365094579507907895756744183157477533905246081401107177678218690065980848645822996799238606052980006875091666819542287951262742505854112506293848137945080318361071585877560258891812537362673913856114984201334203107168587486202167155538367026366236822757676598607367129663337608540916310305286731254571479698909825080900584724758087207718000383927911889031309756916408634741334645423156453990869570894766278381989810909184613652977540430537066596741861903656690199282877989181658191367600091955990393731723901618259602584366812037840827344173667937231841827355618874239136643055081980995367822008945733920278828089999152950839708252890268872709231636841355111066818891892433900824000655695249753434093662218469501334595247014764135690457590626531904575895241842489342884506472616347440502425031625554652435285563786122432768664087330893761960590904917780227070900962299400951732305157750201228991908336816224494286175742092646678189997952767319138255734965029351522357149006303847674360564302461749359557351852120119166810517877723628261970430286550255299269034028286178576669055605584239144103655651539519046443042990705523893531567787081296197300695451061664091440581930058384122945740250471699339528749861792894600648182560798689440924021567318429861418302554566030460223104573832696761662159678475607419724233102719911934248375567569179279314335287583925820269942730354006931593269816295892787867641571391146629168280601903808797727140486689886016995880622411993577022902944774006794206465082148613890379971466419783031374033606042411074289526886411424287642894073568369065872538660983151938239459688289603071210950972677033040361530546332817541404315439486971321107182730159217024771123952128517423682673245471661673034244247839697889088100116274758300222322586103067238420382446793633435872608109811183013731796321613173070156794527112576444302024273282278715721965647526267420973064928297814343273428877828925711742198635027822439617022410050261455132304754916026484471784679966781832244117402156689588126549323758848343250527395120843720437742406327957772854391547977938566218415995537144147252267673654521511049275626178762894084539657188644838269588538389782906959612461405347354326303112506519170381616868478687555068382267962475027545303871729068550256192046388203004850051701349080066359334825152854824773073343708851004106176866429532915890480137288799719877120283806053186967583800756076930621750858032808095099099473911016319949387191513245914795259473938748575607543101984342528238201365383925906746199490518501250930484204796177199174862192785389738669123199826488030827986650170795955864763659728796506772814836574970197834108454780158180568907403511462874999862571841917733491703276249572365454403492570938946490657437220780745806182656335741883833512714233011500032630171598786627671934074198404905757164507983303837648483733076138989071561462555708777889698387455412872193082884116106744148888514430223049140215359592579266075147240156789244951421349297491897659174448799516950666854945304338023137226393254935379126358431342815713986308413375640956266061918495529445918123669272946193381755988921902393584335124569906690143577091076018618815267082674032639553854111121935720507510635720302511923790317493487420898582539856938459519548579013604854999050769807993530938841358326436538598406569755320705840794392268974082453781504572127918944963280761348149560788269047974374493125840966502181417016392906677200398613480958731355526902060647069766269046542151048498710369413177794494213391471517059840160603548337602500186257350277901631763934249689321280828283252502402926080944511951791229894183380041999514879004180812907064138760454111991031248600334510852434327337278123022450519466965507058505527844369778368677172854636954742924291966126772433309348532921024893375230361090475802168612917846143401038988556488484055266105366068546180818552722234394480706242893240426788725172416456701667725001481520018150268853391280925441658352079003133476886133853945219514452077341619388416492207511955497662356751931988863689786636182964273324528906496995787955224704997867596669099615411595398194140976726097707483438110470208697508179388343501016873408949767038690019531012116238682552533086732854011734143598853731894919434469753251626418137421006998301088068781646171082120361143474249589321600122254935075903637976308334442882700574072215735802059304891678102681852690502790686761316776448502667422063006461690147600352217099469375195224867011554666122718207545765371907998918855921803453629337711077909260710195460415259954525364922611651950714287589006487831306582594073916165843130701396510628294115899323402471708895517973966099520211170996936244407521006655266166904204037442637603130825108331682479707145656364683919964156759559931660354307608439800335416935567925320607946189543574575775207247697709074328219959909783533808303239835415177128309924524344479479229624411018004730467098279893476008426901844804003680961451253930239136678159925731253406259029945006391356028338179518979799967998420456627347557544020670908535190179490900988376374466449949988947177584644000919364793687258663253194722472340873847987971935915567553230667457004318589833788315697866212236981914773044688446304419214612140541126156964666790518723689001225495519838442010447105916668489563937911324372731521313114045868910247212208470531644170976571854275404716701349297561358310104414840269606897389323547104573196312147332624054749212613957045992795746525613430736196943168055334895185590986682590969893068679824352379001958182722819562513276018311582306278074766059803098964852437132583854612910774275308403180124541456963546079999876771129061845543416238826478215122055123425662987913303907761224564070314718913259349371920019412100917800261719216084258161643731384220505997603425679857056207832055665357754400505449509805587735931019442420253854010335015366204713827366853300942503061241970693721742259330394885686457445891914059499038610615501324193663242970069426480015573848528576955638404785392037801131340540230925239793221396568029446632070786748545320771462514685575602556442880401561107003005969139608525841893718295314121048922905370177965216027157475129822912761156655764707398002938307367706903849975117487794001133498991700696597909026984008776086643197411760216643336498581989940933573414627904011239794100913589555421796945239184045748902073749526364960070584698587319168947302613638230658483861684442713461898274184368900455878252900621557992301634335984645741415649894147625132441026754948930914333817055834591152694045608080289793502597649093583489932499345404815924063333028562443116997177716018854138180004278195357837751679972407144248803378919215789448097544467996867950611936474783343601264711916399032484520442141577825705612454786593049747821727253734577844238061541993375868208774902908954610215364771137266155964636013864903315375010356742398324615247809240433334206611717695200432694241446671872856856270660612879974789880450031535949061918417382585867521244481477157864993918994575524088269593017175129290885085184823377962568660923918687788423977698418789364550268898826692989618928976494030545441884043539869186769122265727078221092768083164892954729553816817182413650168496510036924974047076135196846829332417321361864432092005748457745817615646302676111255898274804270320063524318553931951495827150968327090358192868475907641548402658583906424633808584407713776849853396055571210901072301941525341928337863125826064333916426410612787790441582039065700101701505006865513523603709383413157485633373268819828322251104106850634655979854140378012374254823062746500720407122551694380575015541626518044010377559490382235087443124733187833964490692779955901942819972742326942611147877699619619739055848735155721603740821023525998561089036057667876455362850555233652372567799773230730715875704279947203329346303782254356694008981935189336271302391440535205226173565284037036572736906483251168227118242484710539585629657735440831543990046300437008830513562023091037950158114083579856798847618074142962917614298142363504627163814727912519420212967552708309555314227255359252463485759479682486670656918595425747005878918394530607181077258736649977122340129296812501421873111892128087121608297145860343935841430887884533282280314762443354522127898587001181709152563796852750187725757014312460389490125985913923498468736933817447472667829047477287247740100856772688883987159332181795562133909110356834762093602807032825706470656061510817013747044826442818317009353647592954744094643299139533493689726736156974589645006667314120867285395435114032498345730107724696986058022691748470149401713750396494039165949141539003957593568475800073173559584097012553507805578920396959401968771189204451420949434896202272065221985389788759780810976941001294206305875927121807540479399599413291991694911966435791993226671068211602139620298188644918995075373303421357128568275360039495213218029981393354657763081357132780761551335032592782741715861511794168849639626375720803469481043975302597165254128869605658479068416487739168969376472435377935154557504642480569767964216962623092364863379776312040906037593408063224073424816042149574835436107396565814377911446009113334004713458692000661978097385138894841501074467142563619963612953438015175859036245290187951842860022390492936364098208598020241126230174335433231713930065301453371221932682333885121695951044440691528927353288800069236177093387528339514883588895152935723954246846250694136817777227322526664759985779140418034122418422904006501473667683696321116617522061155397542198454898929729089287164007161035837304035003860818397563450863388597632341590714947704063643209268322738109161474129347475480762417156722040823932957112229173295666369376971885524258091851481284094087074750819334001978397942327055332877999617999325194700030587720431377140525403895793748294762433973954252166258466558576037287704203802435616940780634952168614888344552165707501235033997498985171469849779725401815670096424644529936761871648144820587038579372796089855807482844869566897989815392609862087842081675230136200019747051949549746002388746019503304189466259267157245874028278164032903691683469283833313571457611069265986386167274263028784609833914765254922181507996142143930152595480986516732313842985811257264218157462135405071324298492939739488936005020646360680794809424425823613374771667255738006998454865789279179345160048802000706975505400886941436560566370162877977021928355691411091120271745947493916730715353812426836764068281953858263372758276454745068583866278088373749976321552051202354854562726334718893256624487552072504397014568676024733915471149933184818356850108840595142565650887667152316267002670381424082803976322051088536570072843927527821689558316876313659092910957361697423121200558184108610357018614039785798523219183994393558876540462695933755398377791210810789544000374586284265122729362178685954587663794091943114312320704760646836922184716989754799063128374763913244583258233085354919373900372345344737465429122230967221891179657799047929948470585272500809348760810542820616941887852534728084363985275311128516571584446411293281905226753377725790484663169574719058770663147491369694844412181608113937897751326473981217628165552659794549768820396766124337719800379206672311789258120699624258049874976557023047206533579593150466923435363365936995431670789689971607003335200634915206844594007738330496462549438136150253705851408907945454261439293290985715988927292992702088731719779468349518639498361014022132755197977743594508799285632614323813160776705745870060532892696662746443817345847940031711082793912170643439141066770165146754309223333932342775416774108885911507307998452006363348455796399312806719308716164315883318959366610137789182146399834998898424804191260283510963490315396198359806022966306153482698288748082806276245616414099156420954274372761635242285446639387935085388153237746277534289046258144806343984427671904547179194338435349685690612753686456313395851013138112259372230308762436632081006735966198520844086629249418830238961288857060459870623934563252545872449725786245672952610332953312374728115218372991846078811721542384881515701071255950947584099727418643198397732114624637630468118355546076380105241786096441071053280663534331996387892723441156537399782490953241070990102970935821232052784679508782374219503522855917842101290129021382875473460186116729355575095026612001719858135274300274639548635408407708541507264688905148217090972641706294703564837205194300571443385515757045601360580741911077651591563944931655075732826020877652844836790629403307956248445887320423188681834541978824853576611171170426539995294856902592918388433207167972789956055223719918785240904430595623690261796339324556291556544189072701467865849604627652458969205579222458140541779117219011971678738368931580460590572127466562828977795418708513088763449513194145831521664783261417521493195457818237178935905712053042138762824157061321807313991196933697480254108908237453132188097581654091793603571048147965133499246438086993011192752284920708668743400542374250280624098835905471756513527435125450377033502266318276851362984343542190338556243271033995557899719801003805143210033649425414816027865959175473852731687285055930755589454677766826644365122385531713890238494033494333673709595414628701182354956078202676345064865738965172192345275860054840146766810748266049858523489608060255130169993294744254923053770964764758673251968070217715048925329363023477330647517095432293973975181878897443836042951706359804845143484246340433626727972919429198899894274944554999975424358812962087770922848332507673607822758014354738174404424395664818860035560924793285005889463398275825485655039160192406390606511020178539728711852164650134858438881245780864638140518450294359409661759358544570142242005296897294968177976847654224676738415238346477000047323576488248599726595799174703511340370069058739022136247287428851575347603555524806170440040805064154514643028453079708358455285941814632707169756149196576997250094260231275491921103704231001698904898614265606063463979459038077083037840006405395039142292622219030967185407077857744901348660945809132332589766200971894100055891119791702048688191460151380091081385666881099765331624654528738085896105306708518696936881404383582386226438065292127986526519518198998293671323155128322141421247791323229943279625025191961330809140035995715814140202864074357709846546922809168221537013372347536384523201054499059881085270463644141323647045057858983653620209849913837922629697987551624942755121521610796305707404604419324943285570859060320859744183752722109375810314783374895990766421094656525140110788144031569232665427836089175455357642120122327154457690856065900538099947434345457753030493679063803987081121113698145641210275099284315675382044987376198022553537098691186041654224656662657662345677131625608684287051994579626905271881949130822443690776368534634967887944618874859520552026244928863566011586812438223454997964900739640651472237953666912086603628824264876135047422374879809496930358403208240521465527056625209351329962895470681519773704691227764011403329695104561070242583366478763885434144804598127582606359722598314279144956188885910633178928334314915985866597010522076724582779728832248830817944808209379483462909767737309029098441044115200399365425259876722198673400360908700136308516961752955337793512731566854859499477243177720791746631405255083956325385766485699946672365136495189589112039927317794666768307365463065658314920394016208847555856475063250002641099973179805890373427651992133999114792746458430069839340401518581079899082687612542040021361621223987903710857756086127043434856520971504987987017325219132565139299431813264796569466784899070014249943994416675694672002641984549715893963139906896541934335821684272298044326310511304154862732599566122853083592894078906671963439513131368036365954861500230959664784198251105677747004621634511121114460301512951132389111237385643397411959537471317226154461006306609278277374391482484946740081511606757257465707060063335381145644947453212142104162818296931642281449675606839865916287036000757639874385698183260262505385710054636055914035909320726040587353317238481104053600568815580433666089431885621831995748007929738848542530667558536111773355702011732416317815094279440660968499505926339335313862954965534721859159632635663309328769688724352910792307277722172605725214296850487704551666673453668509861109207597689312229813784490336190813067262830642897691927660105111500173406738689124094027653216689792209714595776626269302440070487752137792246670747225651302539659428126448601642053910248495075940321129238484592750830045976360136407908118314601935653913768993774137513066159919720421242997548949422097615207609424729760825256792585569560245531951669821415337493807000062099733006539240924636089458851470507209053630804522109335967147892033497207339677744711583679991216649718260767787898266623476832041532788038910701421111393147835157630892582505197698779401069136147153481882725008811010003382415325112551532942646175070276270417300448691004420851152455555019446112837997433771852621818113682762525575624188937971948373157729831220953795074451486497947977242215681675163675295595358107524367238199303684506124103292027783409207688627627119893961081140548533795138396831818590841671449947514821663521648952043529095319485565603576599303851449093235171679414395322569259555817798433404060809796604941133312895654276069532992940836112518324629493724107048380841297440688937070535641072667994830399968774217114135931836351382942707818654404484646509422124093272386746179468122900952415021753331869146037478735418321055079498100613955860437688309551328840503683038824177628405905001266744440887967197274039800018692325261603778884049660350157971469303070451731524053857552747853943989376468489718312568077061459130695218955187391562576137207054224118567856622552378064582339484106548022256326752286364084029615251247326214526087516713928868336817582437699470488457788398879214978674355806746618705936720785412598479361458233818193845187954940225697122772125025113355953786002274944312002452192347385714937664679969707979780533141151603725634281896951379434610882701388366903996828257944353059793516109342084663154366978895901295191438885127852327115213745433342468066404328036982144472641763791260316467453440078861768564680740141477793331347331279469485164562860400715735768705873882609301775599570789355956740362385005959309463474720100500436516866726743849934447740107173524210419095448647330576273806931753176884655649712701853112843841667579629640377003311898404301027062219036369954492801754495033359486584407819552711805945509809138650360026681789488355942074765520043262109092301539539674333544648509616075603051987435469673316294799640905524129712464858456747945914417362716882482699346079060619493793018853221903893122915617935482564627875791689274873361937553273276904784830772644107145823530863468920133848942850315091729877186843283217506579084653946564740080002435533707482819607305748521950703222916537333071385874132452736689669229744903833398247365102844896325673125601086592765079168889744504611239536693767237334980429002890263040350226527046583365481819836727796652348354161090649600268610153656818900544493855654229191965352475971671965467907058765770685872044453188809288604979773887903079012408962318554184991742790628551493414287646482419838774029732418740100496340972814777982428188119454002714889753424833529907049414330489350629406117446010279737322855193100714065375469960693381229933876151919567680438357307814272292800983996100459986743613812234530607516869974110660584809518605983495049005651059091521590134223845466777497599793009851965845330920962783877014528613970079087714473194046822792212074091120258264284711691076017845919666061766920618501390976314843010241486692768551894532662859214038536042391908805767034229626113939534990625642466531315292495142404195233728313504236141142866602238629992862337708493194759965278367846524177060101543126784660038959080321441947225998126430702687419857959485436301743804807788338069051673652140591785033896419498440510330727695756601742186665711432128308436052522580624678127411938959388074264505217793389897308609203274765008933523213791099611033797942433601238148895514995821541788382317874548498306975759010471780618260507462835047198162373869827852416234722580778241455002487620227654596122494944113393421095882105094296340562799665860830686361701197343771531924423284351583375845543432556595160798434615660428167240531531571738415267330405628052894501075443566992264811624285505168535495656173753288645016920034921914289274019505360996783429031419093099921894794688826386518842063554441488154353650763354281052150724689158428832882561013082074031187841015676230059214397318366562189917717462589746011309605780668733924962791521367696697633527927343615950172086394290082172879129818199937559878262431581324653853403943513481149748664993803646289350447814346180011774175333629436842923608878391173234760552074167087605638017768646959465682879197065808027120966769552987412776242614885188879349335810806476536131116565083806394645912127469442145681525528681882162173143482806251598163308609418327768629341634331719362915166242203016460289682476333024645686798032186505635592581094355902866084937441611648998817803696107181013486825627323814091444388682415166141741206771088532495547320810316846288348956766420354979426906388847778101873230832488679748509507912863896981870160620465523257223508064333940378079410953793932476446117918562432715491392010958177519760101441460286881947160173729514151480816908693892074458287742936067911270246453212874391156670451787681828530492373447122775403332689160965301582643282051572367105761039383048790112051791261170875334914359123002350258816329123575749757165575038742261136606628369224242753128849197267426715374345767832363893461871371005226346007321347403620131867987281809289565931845756379373893348025098581748196892980282511735604733335839086145661459311875361117833044845602520910529318946985284360853615910867187416490821518934258988587584685242227924378032844458274446480837637775902037704287183021306673083315658641803557129107483616720468760746235667090060114483595224345052138084258367915914267756296267269538473521038608248470304938902214709425666088104630902472502830214226434840588746278590028550179603813068869107373145804580817556892294230647489196293392094429977528883439508156689396139138869624012543152089056042097759063493983534187486221205637897284895925880956371019661208886661410455288532847284193745461779745356932966795309306459749301807482491801363928370026723630955599105602127408909906304156969314133823539905185972616992209863211733214591723737394998409317836959616123219293513573951639248080372982529569880946292914021633684107206341648911907741056098063691496139069553813439989477815839305205756194435428957086429398241623816491519901461743945070023994748045849046583227105399391069200857215368813404821225444286786475949920383244498691201456203434776500498385248373003925254066429781244354514619974286087287494712606520678896434275846244538089091083205728512753912694642119307315251301341744754803307267082801700942603137970570370117683278254412075289756851052554409784699177355184865144395603642087675027591645819671554791145729620806323506694527323198990222518071434622764649008176903269405049266343576188679607621513080500234273837060570187756462856481038492112297918870517724463860713946162147967555912106520316561447056371054238903399212778942655406355043504730912900589122630035487632403723406721182259422393415241327717253141865390077829133029065608416052961903102359244608253319190092302381129943809577500861755978852174461668585207409569186125777872550571156136359532801459408530014200628160455252835300297393665245952249418601218227080353019085239038511353460649215316927861101865682920346160050060217889284984733065254107670608790554577130636981022781298433600665963887687120668956515674485555904662537368565996119039290256174941116629127985572298088788318622027410467195217899328118139926289619744120124764564941929623664520230096011405678623101345423544219522519157395130528958442419247836452947612335206721213428335934228049277481626586965502698034040147195688850393194680241171945369874972575048111807354332020660842813785370322404746791106235869077589946303966767923731268874957000233608699268984652521808005352537568629609413304023011376819862086172326645612834480676142904285212055017791567531169898201379495304888130282369620422057339886118843029903977332755420743812628430841419359611863123303250848128684828196304969362115747822118045722095250895499260037233149253372849731843527843806907613429016324018733614191998618056959814720439064523631215702401074564546091995292079802647412020277219276550127542876208536312396229698556475519863129399304552208178046590370682941309392180191175890764798961929190513852224072301471598737111737046912246492461226208852208416571656969705352010491966461688436652310854514517794596479036175312530172052799066910753559895771395203261426685645403069709615446288425515241612161287385046896539435808046084903840005132737018798558305185565490821535766386824963344149184701628985768550534467979294368207885451722430562568643795441958914374345561688590100268524420352591888713460840629791630958861376698147703960556352146595490038710575843559991938004781644381216623635001489404753731766035314946517190904906792362188030932065258273992509912319865023860768586936944173343909844155704732044376002001404002743531972273745029253182224032498416280907702758082757629736889065654019589757361520261867756674433956598399783425897211487690809543077272823471621976204226798589619051500803690545726297927438657555627292701020343517583406034888534751357219847820298564178419193797819444126500375550073065176879252485266524664735415096830736697522168761103110315059019657144889096124715320532168226899671244212495135325889996926939796689808555532473433971960729681949275298232602874558603855410703897725331469329687675031569214128325320432042192107396194084364056372597761575670379369782014001990123809786474832083467408834421958673060112908835161329490729737448495660381623116019441968092601722111894177368989734678246711901797262800279763854870440068532708593549352867929379199053145440460140798194436805836211618938565015337317625123055113202997371297098326601679255930914392187157964757142641422228124094949926833608850353773918994707859768573078338088310559746692414895266747734326138445245604946579302539308581873434365491055988905311662476104983388521124495760369947548193253912208231760274169792750271360461294369555854067491531475791503683121984129218758883610249041687253702696207263925587769769616673208978379972753875936998805358311098447372691541349063746472243362760974725292470994031989630171964855527930174559830921661901627039654736568299376717829765902330947658088446490744917021028298633942376243569849637489933830986617572428591980788355638561393051392531291966694595562346979258956515697548573556043957355643344932055986171636118452504312141178042748520089245944224418263906926291520501719450542551107132762796846997234884568903812075341293339857656425759905953617739343609508604884082694004103619970573295474667946476572591132842641536622113756512666302618103739432869723468227214439685335038126942541310946068236653260104743620587477725589882150817750449666152192045374388035945086068940693953442103424347886487048000708777661736790524177967728975021346204464379627909369177807582894018446867746861519950508750902599564502192675679037718507997526685856948331995345597923463595530422894235782139814419110764826201694372798957064852538507074010783826839757743836609434730885388881442993011446884557554572690199664468635513974850800369332405874156813454369154970694135651859976900823857442487714592069395602076325434255397849155507223328866361492356100691446859871203188541090823136731523819417023020209631294475727332355087073469049807972145762027503250742608691199136387259508670175376733286733782033546925204252487606633225870302542588803566266740385781581052541676012677049457282916318974926877881005418958386925068322665562010432584611347163394032269473750416509687863598769145415959796684134392348872684284288292157794978413722848433919033456256429755808152253157068754418051747480631256283003414874822750704957316272430425681727253999239860175223791325841252959389442159470373266528723157026190766094438812252389771298540676418593079356110632347087965787644979788201623977971719079186459809510261566304756654709429453943213495383826468663319901928057327800881465171969805099727617645292563486105675168122586506331970472072398781252607000399898223133860427597097848687492801293773680775450097422233645482335047465131538987906917518444081953929566915215499302882132528845502790007832010122633772499723443969841445448353234089217272117234006158106124513091710126219341234152879191716847931547708817832084123982605302507909325488182721167460100841138593559274356199857145632886942653151646767986787035359060952874511604896984349407274710960862234656429938514835068279384561334179910124009255530400900146337167651207269339449833463068505434225814260654624823091637701203660974627465542859264194205581876796040534825528017445964726819381882993315212818388089059701721051261479817823940471158946832742278137598716429620594877279335440299615975664296831280990130740549311654199112081893467890885761220554350641550911515373440568178083773977573035921932098327478572572810360419605844212288661607377457878617019612931910591068325588516504100791152332841118972600727672818068118339074378476285625516051519185638314862720068390467553451642925956878091507592680913254662396388670783403912108175780126030274269770990216560914388287740445313991108751046866996021829135486256269322586892668597400454316438155936433306808390137328791837629693770661024678607964318977630658066888691275803586502132376883775599633928035972918549629220650197852654350534546436445617807656685924897159880531380771239068362905839094620342114269139979403971293278549310140925265918895699981037180669748808925644705204789637739022638574304042389380512770034110943539124837574532475090708046206852505143211226357879196980324839820719922983972846291948056387595678219061413862156955708140260575375769943735525799789090865185638569758209352532929334070550818153635624722816580340128937519077388892757608846817924645469062298794989341421264277316244801451556602395793741328971195329636724568983193298606585251824880213279997217769623551234504998792267204279451753963825068013656322308758873873939304042162835564606086049938766417069657399986384678058517962408139757269986797639626012951111355396816890791565057011225184595833946142823562122863729283427639891068077417668765540877495869984014030712317439153695084324374252431730134711728669058148219888119187651877731438502567317750733034016553347479936524832252484881867323294497507936462432381308337582549632053686846090331272047890703220711506068695459296035123926864925939723311896707844465902363727586170820591393701576308151452252223529052260764053565671311468031216539197551886491532057431585677644936792353241242981956954687171091311249022723323273194117454983419310131086746783483174064104332663848850233032462239146318877630907838227071793270615321690687856203843151560795284879344520698438568926214424972693265933242065641529471881878612258629252924874199713611779785707880748346206310989378237550694000013458119966111629265376457453097466430721850141286396038662001624785702806722474786665173136718595168026232475443132912658069474469255929460029274328306747780657707760598239832065231535347427349910722563120483270744722402400719594288050888340654258335342071356317722156041690389380129933220771042536742518457696941564889865362917443440885865092995318484839756470723354352305741214771073656763248203109370561272652381710781523402980401285707350681826383728100263469644236658101062188005452782340819083949377255075947729563413253174665713840219603712671997240199201598676301042803517036018524191417493745461539059957492990076267514586833077733707219525155433403298519195030101605919967456651752572838182062360593009456380793341942892876395227927716368382448418929391643174209613994393517942916239925900205839546044168811595186665480342482573551357206521204809673220219379650616669440945811143273388108794753298095858328260576526649846854730710247620906097672687432673398238733632743677296963312815701999525627958221523326845966950166722170725208951103406976635297485186818611031922180205238248665075622210280182076573872211667856977259930392468506644003657932439413470033613385088016763064132070176132544339443664640927192008406223248719450573635464429060452766704748990812696253734712015113236467692431958425634667411513094183381264161592156308318784730608432088747651922625916519219212431061231904504669860163585072130946329271603605236808076016914842523427783628073776854183542959372112038960328134934518949011880706599428160687062503314946205206591534928403628094091733942664790028322890104643949378814822175481637027915391705970933281677544095220940564484827406317803066060782350758209193463307840643266707493020442640488048417751009560059418501727445670865363374063181395264698740491266977966225459803539184208078630396636684902930045432547379532689113025209525415791823085072981208165978861257726412176860428537469000418900140426976651501514620931316305956576571866722372734520898280144303110324309027319839256988396548287085295651375104471315918935990556647388319478070534244470190194767969181262037253751862974335190773341264809226617098657655135757526846926092829985509168621183653884266447739242060600081359619739283183046562675465875125531236310664897271524686351455466149647360705832790700611232159115714587696309077870917872065424503554313286280522799440716728536141747595021521726873354598539039710308715157303994068968971585934411362219318420568792002417038896205366146313357195317289019894813776677610494534420000439625252727743565644918189058509588528609725757296544450551991079109035010304637661996794864710893126830559938035733742668988018183325880580227196061188676493173802839071174799175039957189662116006292624817106868348554891299588428161311044582743483671149485991548281898528056743045490243952679770123452426607147852310775448342819844886190671399568900391093065489009181634570314696674807000464590092119591199154196127980767345999212725477363764457724331916108756854828363225383264169538184619026885459094870561123690181401084841971223109575233261920541650139083950524222615541402214789780818826633536597322103812247435570893672936868696265086720704218708194747261561573340393147633140057297821584781262937021401022202728843505772002110538244362536484831154908288890875827807501357834178746908019019638052946402137700812376867839107059946022252135838498149239981809128514759355800624376136859436122307517540296878158417922594858898081092962951139502267195190028551137097771895018298955041159609673575417468513053676067027911741436561108089023799409143482625887506421775035296997180481206889590918650460239226645543428595414639978835394830437499313035856110921682109065359695360540937330490219129215820305885501685816001647477473714538602847942018172951614378212299516228453467399127891969021570221826105884015176191990241162547001708189418270112961069396334631891516188268206609798902483944602374534328351703019399398649824636426370869991022618350612597031798880737846788867700465124741594654845473560642440202444034033055809605877455586849918927097079931512214905579769026350689245469075490844283235318171810741112085370576168955169899475817420622973406102706909270861428875887177362909730903773234622017558411857004714657763759690571161380412791855912425203021390959269847728428221743706476730528667059584575211880158911476087855037276378899446862494903345910696851679935774943052297815281543762385456397937170598316254542804702487093402950050273567784525350163477001695037159882331816346208695663023585232730318466957670127461551596677518686036368547181418233812889462327768915291822116649977071891681903206138462168445841923309855310458856446226074240787818133633036159318353704212193503316326960926773529212814902391307941960714116026630968668622659926036781269186632684327017982454391291162380107295041054023202771378883873941352177946150823502924665538280940961598654916631624776352393838766303923020956363886467143893651850245750110178149969345695028210781779854178269107875844330356781879872746433004528263299767392707642907454279657795722153183470020053013610377644783040930829485898014654217119475657395573472231866104315220752070292226146288132529295133995938475221375989930420406641017508991433067558233573603370276958510412032350402143530158336019332491411486081292583754406131497234597816659496976806657584116261061386821614452354664659870240005856217634908907978420197318037460832830014633797112455099770077832580512663031136217871690913619221248619044601165963006797343814734439588850864336598666543460834329136485625448334416589574021545561269392013963747310284396807101204011993297026099573526344346646175521705193196298968098583844324525717986433241324943555421895498667991987110262910280886584635698681117898439172003628751335951123341587846328178009186781192463790438441981058377543875814028000694242386465240526258970877910093671473258365479304688161660971075790214789706224776302762935573239203586483414371888372880062922395399981260639585846332697503671133969333235914042651846143884445650866459876663182627307299077112154758284761141570611347929339154755459769494589128292305167407562797808714730552028062671866024587542095967121371266688617473655388174753756697982113028369834792532294556702596872654727275122771223001227280799736007027520289404215314683653676743284627413178333771780315719468247855418331945888208442396519259259802201263959110697395808085703484533227625597856128652786882367076196538597998335332612650932674148703610391201107110382756560707236632979057865201296671955217216907291654686332421194965073913104317971918189736723121187042406057936371709351066976716188907651365872822492102701397640358425202722184903176774272490717580587967878708109381735422478908369544992451296437641904973402436164736159261803085285733066590577061600341264763831266003324983779231871442060377186542106755462169581262327642442217241244499712606384352320196884996486880584292591064212607763661044244691762046923597598847580463768936057605283835686684637797598203294980884305238657087593814088497272881494169660788838303014521022062760036646488487318604156371072080413656646594931329885227280666519804240997502153459305466400704774559178523238871754713760885283422574286370862428554231861577342841887653334187587287922651897010089720840384554412410002485879912973624349584911739931429420321350757971328225171190109623213612201560729071654296556194443140040900360668847058037327780363235733702089580374462917936608727705050718203322326890486196223293108398394007656308527342587913720769538786989253250327610388665859027911304378427302125056713325418967304867631715235361480236672351649034471555329556385190036225517285580560881161686636049944386534102402543051691851186548197437897469777314354963739930211595060377537594466533014516999300765737523556841441817704284345691514420354608769973903666897335397751954787214878341211617826922517988189169462909018055649951882929310855610851443262597403752312334554615005006521501395946842276039752005178914288940967817533367200393488388083359568888435429635113747257204982080836554169064314781154570328857684609707546202529415445846474251782113757159392506098505239062831625234345689933616406098220471579041458398996750799095400977407408316382784546591072954916326697861349793203302376262709325649347211353200295368787912896376298636051216101956941099281235390246920898118089658582371653476906172822129057569337570520678637264200177870780290704173187453282521014455644649656703638596866192810709480189855710998353644305086237591453641097298258643744937279871176152858689194414039439588029705486834093578893813323488098048330915423046440850391081869118455192158054222574931941539597851641833854156000960042485551429163929147440570162600665084484607502231124422728375636210629563367361527286503077294744004371608021365077709010190398228075848272555740432993889417251025718775095572805372183165127585967790590706393660475351638980212118452139931274288420068010087820553370994114345682676152680115827610315997511378952534340563726000840681328064760895157322321112465483519199274065684322238621574343975610269329825611147226546142066362310656997925230817112101436678474594114374245730944934438417060662639967350055001354609453127788327109071254623011385560968277730554721656609636864243274113456394471353269327806190487632885069204358934514878901082609512583238610038871440304556447213184380983668822064271379973937732988174603202843133296722727812513630500553572024883495798048255453721959625246600128918904773206237703068464804437869687375864564360826831414675590551369187162646930108669967834584096155037624256314916508757833891470867731347320053385857595628612078648706806337475632360324275674450319321974815217962404240150879502244902851972378074432031977898657923161364622919540325324874557982511596843024642398401320058316146542263886594169949811180061630460412046489474172273334529353390857711766728784415665787836363131760155952578702884928285866292490685417836772640652847276733492577627530493108366768509499601881057481522256172402588000118509581753384050770446556790382887055834787482126779842295315533934766337313703086162179122706276813909130823918889483612780103156156128786274910468914115019783198006133434674589267258902596840280158427434271128456734787787625403897402940704310684544638510797594278153797244707397259054788923625920112889666701824950723554415509968967673682073526519274810655006235549128703195998261464372536423303423758376433612380724722614792344398334701109551174137104383755101290679426818448890554447210910664293091422843109712124736448622663049426740296499217587680733517106919653032894481263849168525215079390897684872910789729929007649910998659939108928832189791665934337513315006292883080376947646975756526031412258328938867700854033483701598887624854751799697962192580069445690539809135936844589279567053418203430894631980878041119950662564012259467912506240390504294654728962700274946110712127870790524604574578883306974918242659476646662845058785911544143590600326361237999395568037440247871229040865297192318231663494050931575278780543480571153240665445463896154510972745163317864031125686206460406422031374543420185574495656311048485881201591610369759550149647178061781785636803578937067867830666561209771780145563203015068308891745087095007640790149505943696594661920240090829800936764273443593043519970581300340302066331482774402305408976720243889236079493382176760307102841951088270417732683146686358617170447364789222119187611342692678052434919395154152803828393959425338806188312894635027858986916601051555441869771760590863872721819101108061226437380355034545024481356110102511228292865282137113386643884875936227931468317254358309182143106358713007262047609897122333147861723928218059131612979530185457125243321935976999052756049276114729599264686297649264556798741244613805957299574029425671040010125487778830197648426968573755318175827929157804476951673515382195785016615928301297462939619142576122967659935989181211280752134063827491584874208942063942827628229430601724838017147857856244301569644027148900643545532089599806301950189758362657237240334258119336964770136579896265506902176340490378538998323324329104490901553243818076767870313271020880738530805738057568214545418824024240663667540910406729925126774787862416768246562331652038528861394101756297169005709670669818386313729663453020802158044950788861946149776692633316803892052483542247159660355946096971250237783058654006642702770331891412965110922349393905493578091264933114136641644047698129939088206461700616163323076607989998389740210640510014001783967208986147916722344904528052380418581611730188486404031551703421837616103755354814814284916253373834233608859759142413540534621139626654032057700500905314610042597218035240507422520770242875990876867055053188613447162822854352233329148933655842592763276846289043954264106388153234534443904156648504881134729800835600895106523938106746912739058537521309241126216364889480588446485972107641038953417727751574955054431166772777216661263646798889144339864509914675465435923425356397287845726075577001804801179130409788505186718679013935967887481385180461299095303699607401849095924471614341968869885036490139157176942314054439299344823890725686720507368910693786863437593315037186215404231342798588442585309286435808536218946032789851074641289437377324305977621048511052113645056214183219240289881950265059223266190327016538924683336634665501825374911981870082201297860772129884158261620552611390169522116856420237575167689094955324726441591530927705705172298218380363522499175323410374612823939033905716866699422883248758133114753999263708175834455137860691446354567814389723589646212402369741326090771580750344365214854335621789978796112707169804651237215032522374540191951107875607387868602842004979670806907055333397753841336099764916059574912225269492592188227328648551686352272150547480265118182920368900017194517438554778468963817893210255936869757471304310726551537983288314206883433853674140162980069828034334544591293914081610789521933749799697424159939169033683230164816044242543120269861397441500714744162529539186135328997170866905912845690659120951188091153630294386113586206199325767236171634151678770466794053699201558840372356976759973953263943908559607050526454507338376830404314166773437796566382812931926674564472477216078295483824278738626124874142752459697677985196525633197439424735171588410596813804950641127192426770369700523700852690972558405914396582179783305089300284176140927597888293339778229152778156483819171644749756277845312304253473040280422323583976508771947236481531908770230773682297290444236552126675749939390362072182467291710118440056205495330661114520837005630166122881162825758927236096022316756759613286206071241741567355281342485960818876202997108609339870315865431008704800667695230896949590535570791741979835846602975855331586078593558770287517721290751563044454467252196723380237642461592034018157677746362765213640493338330579445981190237874527861170907399543398107458788445545297187425227423313777519983291956597899921352043305176578110806281752323764845795952232494987386162579573674345449244537511740463215809721602462906340999834881839773596402666892548025315862580663519046839260592151083021918004793661967936621815592421944437167229438821306335319058866855447848228132624000152172037567306461383457338833266753030958428976559656894124419632348692181770801494473185992566173637386845371260805959934921326039625514305680016685202425905929301587693906328998336923266176677565145878889847918069806088456564528607276719216013087229678695472670203361178714632957056825633905304635322960861809238050854276543708284295193579629366087398283714836880935897609318329182149079819525656035306831463034438324103840901509447814979197283275121198314596681792962820996090169701602332255281878741932624017577553700727367545540671432384102460293972402496444913962075282259982401895053325279954998294170565370208719598839733142169752659325382653271700867874871873797367437814958147482467327482471289779095773437523691075242536549589711612398538631378698665269558172893237415758293392038868544559984957527098349329159166411064830145218741880416095158984462642305811205391583567508133732719034786826818464401333899424610933286302710461426534541201305611544728023304082321428329065556764911750271241759346517224755602857464898723107720594576414608257319653759646836792413935504714680136585205563267483376618371444933987379980715306389420776950495579458918469875427066887568077663820227090113673535933098910307968843828821690862758731349932263112917784533608970522619137576564295699679285563367042876575954001583315790890764717952827221850355448856220468360798645134316242924646701892681710867618951118815155875317072714214931843436113980069841836849083884667988508934294677014014574392888865036411460989821993808227934222463160796773465668186125894451768019656788052781572776969125142257829471383960086405969351455667762797594427458028212187078724537906622983651033339219209451073414028300689748396585708452442548535884452361358597862972391391222688575252147771646466716767117598812104200734460393113178465020113648320994726727304551746531539149363533119658438099150726022675663967396567983288292989077357449858731184937420801611104143572359258906088498028690218777614264393089411245534383832632237700134970701156263157601089587242325694859885520813609894804577520889253837633293545438794644203096937823594955396903286067345904086646999930366346199572249534817287653896094521131188923560266876995854881089013007598181619270967334792820496620391705818900994804747373029269303234415343397519802258927120674336895925224773926703031872222618707250140742325105681512829956554732240250756714475813212804501915377139984631295553404754913451538312290696748536071372989141534106782859788776976098546543629667130771752912880562989339559473054174573440721231369767252311484207442245938614003915368521937485732349030372710395855030330006184642175166673133747169311113382476542277991211944075322153435600692435972041808468398313035381145938614414274091894512672566305466459987737964543391534357501666273807098793363243897807554882799529092261504991306134680278995194068575459679913244246875039223222857437168606608987161517241582665492972205454416272404418381675475033433774381269039955414130384521638730733657669222800012443943187064487807891603150436326438473096627888614699310752195536723589637920107878499769517518875317680513986539893668486369588962373547897802625221525553158199676932772237450720508413395471313906646332549946075485754408764461176454195594814201459879185205955928403979275662098542028385325155398137419508801794333416067525522839444476059158644438642067662587419040601168408744243544244536216553360079465843740085581532738261578416477029615844748752745067025760911029243571421708121422111667529908140006062047478556253240913036823192549410495515951490429491218631838513418937465290599448324617263810300396806088021228012581577406022739209204737233721361013957597058135753673785746205581439619525107368147978872033242181725674870857949500362840031575240380397050108380180868016910347799644713036777521427550776512647890128860923949987636623905329981393776155234100042013594480157256967225857479715291027151511069951824964222244159906388909511088334901771498997569197141531600863795350403697831734217679990175722565872671278211540519409049579397168141654243243065081649417463133655304081375510437182185838927273912027089286407113055336551009552565497883096689730757148939451644192459071736169156809717653160888518959033528724565428301344292063752171745455223023750314873164355793551034902933437818165462152183318232530769617572306376395365259526917111185771860802775810614562107170916359731595749496428999471587347053202527319553269483070795497243948580223762951080758784250530081773844496628372210694944686705070947993480182576575742210124380755937869735063862189243060973055573935798175432796023374254672474653819563494969357649997196896139663693755367482260523929848053237495084413753598790823033900878102106567969401870628431098005270149628720301919103816936040136096227243546470938169754324036483125846979094226552909826526255577553073731293805332303617025512717537764645651905744230989206176276646382266382647165495011808521761497351183054884065058633714294273556634949956349176571148580775352819048247670265577054776514966547437672284170512633985560853293549571753141550450288043038924877724368440239388742184357655202945612291286866694239878438745589207304294356311332411705075897171944658066449170069237539270531414226178079398873672896066555571857769252862088545703900249297315600696704587002264489955973938331439684403056473464886891106814266055115433087329401696648408117076565041397070336693269509994664486528141077133123064335597044961956949286967823484968983916030454212764765242695578421058380022087388609557485851563605634099378112816423962422804429405062121256221456411319455144694174708023863863137323984724803787145392898548971845143587604033386834171318589668518441253604272070672913791301101602952741192004987770113639347293188354112068771436778509148432677884009757876362949314506570468804768797659166021461868322850921111471271312348579556335449080988158518782805177193098920459630553526611578480328080158847971211108132058042444976504442854079797949850587568243372604493710623470266244196719565236132437671865755796392185029624801605338245121464090889263278622299673411659677531547590447364213517921205307001650933082777839322545628974647423211342549998279674034154882576610559350575299664845759603762775054152113946852290134981292413764947918001247105822600601032885145652559815799457792740330112846928477951994137331586720321100999122498042357814648930909143961916495363454349808190494029904676584106069726197295147793108901735401731044519159333630656222974661949169905687880465345013571689982584153629312821510742695143125514447392500260932403641600401845721284571394836309764309644210973151297607553612223718774158338313937717625471780023604041932074358313722374882243798993624280059320906745859222283342454746823849519181994636900739962597231766493026651699484272580275783428173907093118343444775038642922345505875951173406293905792111831261828900926650407913017223640541374006029100175366509092087496180457318189054016944516685600827684892992374930838076744667961982670439906558193033665372294481773660436536518194736510852606420237065904171661186921437641201187150535770555124975848620588818746446809457778068649439388974269743112088109063885350059048800020384319079146125010185665847730870427039345085675881788588541855527519559297597959415418916157727823688963014047139992887567427078451832032175449516464545663701920408765670291778336308867432038054281082108955405736992492653568378717369884176403120179733760490813511336553353543632086891827659766339567143264220452250321151676155965277541563584350560307312167639059538913618330992372486681612236445762188636929103194483248047747450723700078037114002765267078391067733364187993360796703293011838306999891543610630049687167998491212870520316159584483518164340151442290258689738445213155133207540577909734183007740597555669093185239823774736591738840765403129718649312390124355488031059493414746315244076085908633388120444942959633503980829871683926076633634724642384932551647946357337889190386600745005745475530403690480102288258446517342328266132273208764077457163964608307700497883739308946589634231448858152099497498057495067093556109921482052885776870009665582954414920407510357728459234624320683802550063125478028453270333910495028345499247771332231524485889606398489819834660847303188826813815266738815785670068511353869219242168795231429733369837425998774664713760849194719034217650114499266409828655959092803452603242061779711526411410559707565543110828460172401032698576177600686514089119836636342078256518554552115087737037411414342095733052371738597437558619027820946799939034446165212787408590242127654246089015563734070173658652716515705490943262164199690577212686780911945336115770488609051110935246973470823286021618718944369294635431733387635870104722228394520101125831533201072183583987490582057701385243744881318531542107320825819944459473942888013525911529402073804286832785691360676097535688361464434142092529887946809951806013595591159219618307246493792302640624706606245915868412196368379883205609244508693802741180606730737387132558616115742599674020845306947290889079104457669178483090028286134346942978515495119779082980772343287900765842611449446020013188826455152426671047969992002717584007747009113001488501622188868441907385752712896980246909375235521624470309157012319581154726997687217567418858939170032746073929307934834948813424284521916508168015463073662893340669203668510224212137493527015741433860507222669684081267885914065938641940741532378092661335675699996845271690543798045617974296481025272194272670809247429116199030308079694477939806099386476916934293330346134189829535383143964816413325453399617422671549176808197789946166365681146822013144515169500563102259364922291908146930082058244290960751538275059875133890717205954997679504776680149916533583816749030998241219571291340186202949773920366361812168099002654954699609265986647084227684770519037140594212535864944425132061072134264087223190431068621613445915863855932493450820172060644185029093178153380485231694696478146059018094331335815659758866348133537015936757247100135584225705239048818111064555407458813930640873691774497197287298935575136392701105641337266154149774129158551029578333521955712205718393241985160305834422746447637784046852909084712074779287195920555940689497388927450201281771879427045940455915349704872791305038450223744876160896841739590572489431408004428067995076028062464924191998209251851541756076147536181568346648805279649639261862677890274449234440390249674922755255380074466674027507041437448848187859070861888476321820571061312333830241261842119971424957148539750080288238298554148358182934259418746881634866279317664661979076557119911740152429347017588346099100733390787070011782158172703199864204759257493453268961135631819325940801076237132842500616656482578086601304868508350731512969407516815057771571431545029757397959427931742089299495457394433139173087813385870964593115178614778548107154262827363441646787767810315444691510932101792657533285242038397495517750304390796920021952279724055151623992878590678657616421624486315094230325951777788070884878194840617381251337196145815182529858787492445667747514110958852216976730821504733557016845780825312907030682822784707391227820640923359383415960511025496207457218842710947985057156019389888517665137618271491829728734782225022734094051314110697819706926817304063059813664137771500827363087955236316157695514794931213278275640346380170706936147655429310911827197160606686956716561770511386772867194249440572224698642751428963121080955204285307238791222444704604435317099353024451123665944110085384310200124405704000131041665027979925842915075846276040665583511718521707732610987888982184363618821213136277527453845799656784338183085630314706915572410787458088488021018162934932777279981731059825525419983762349310154034721945455088416217085696336408641925072954160149237309719576445867721382846795365819621592122889090034397079630610484812050200366079176209967921286515480645209497881810426087151768202358734036463130535322112468320933654597335894800910916365908935569284973328326638382054640774694545484727147104966330214822545333638378494271141562973686580387399887711507785446006586834200852896712770260483693634768538369797515018810604286997999300431965347188436610577838197521857265630229990410547771321078934955727068524042629543013241051069051878285835028826580585445320391662802247106826729128035014652594200414594565752054382777117071703121306357580274569278528638659280785466892298046670315482814064943203289374526987504613435741166084422308618454169847499349993536351718263700105100733056764337193381049280710888879836499537046712245752522378835568305421807000919867920404842432357409650526236524544015831408540232472214906872164461453749173108598731906651172320554250247863695751878822870537947002875748211475259791106773448559706759611109568270269042488562653621940994693522811826932617674569296419594473520384999653724010667671611651612159312018074624969000702222579624478999590632032453993209639032786885851494054514745368751767759595235993923097038438934764243481608707228727195335432045765376373275707244509180084486805373352991007884754683887930756461308805376191099514337786047089822804026388411803762049850680483101645300862906097303231974503457580482346743224616576983768440710773729418990586729188723180087798348779793106785178374164737127427101992183042339542819030849700494059260260791147719608286388899361010540955402014745664318194864259714893758549399152735399880336068031616664941260864245113140707044462480197063978372415494882028107749508828447782036910717245686144131035151124049104020168977780842003474833224394802838384107260009115208229480696241748321882681132335982959191966390689850015073822178661978387262726709835036787382793388454316609841927270871339413487732070825094228415279621863433439122418887037323872908058863572004264262325119578994050279357666398157578055037423212580927614467585259668432306108565271376735002486073504053933840414609248835509162290468851174550152357018871998371266257847099070360413215170292041456544949105970012327656496482579975830781798352329421300399559602030755565151661844419759002759097520964209623073928240397911977142487675361395767119699034457753407003729891390490756231139667760294507285793853321458103538434608427925913481785009737040679823024301283851856531769576646192692327773572021298335302766041599415319632621507273459164671225887742699359610164830527172272550355882711410642743879861170532476887234342869574836493020191530924477183204723677120013448963763264765342649872720807077277050316126330368467298393706923072704391768322656132499768324150988019179755292036109632412433886652321733660331377383297121710007369091021867453936624020448388722197286759052095802043881669473189495171450121378818621568383286204131851148580877937184930540574829585399600470054267495623312707566877522620221652452082738036208771029807141919525742978589798939342195151221626437560467135050627088796488166244920336931881029356716501488597262839048848167928143085217412811008757338934776493518994074048250537950745104472170280102657413252036951076377116196545319571195020984610700299839403546416157788042598133071044908895946917933213103021440485325919225699459626570597248896678812838173732423663219061781776481400239406765100430800264850567082644797897998947918498741642033490334109826017619130212406735040232427794397198741156633266953869502225745343537729494523624384567656597262818105061839512844989233845780397659267420441102245388898449047778085763489019416553623612905499475019902706237948642972968921777607445194767199611632621164480093889995172066822772960975228296373756759412990381872761031435722796095431916568008741721813806160358960547927419389097697163769659975095823570812191640628073870184110957092764101802150128222211031710439325573693536110991567616923141626789094653819959991505510428773600873905903755020350937653686069749973455953965376078303800826566187350659857007700182596471224456811441351803777993657743234583108400796829591071957836611369719557122624402903007596325259665385831972345376637105652336790197137884441682772403899643102916615906409690162669480561059371463272338774144197072589967650550285982793420959828051258602847232497794980205069797657754087969776162071298436464331926031508466247109307818070457182058804366400955770537489548236613546870679387753101020763872974408714495482810074388762999135457548788191503978720068327958344583711431774223866971543407231995734042672024975176650860954877940297384277894165360768588641304254982031215335738909656223500871611816861730935285774070169022664748369955182700656916322365570250772788706455876187613040525384764966543788343714899729461759029869252130422749278157803110513806649549347844266133278552033434579800711968426679711932317858524859144157341498583210399134115669559544143128331903156849423642215123808601668232970801588105379999527696577947835028436075487946007487393262749927633810186738983470853163548924291432410465669999657143505336096946175150916109049696424302188156607917543930481783856664292147121887220514153186638559390052601786108868619076576201126769811753661869338289116635153159333298000561685491217873820700884889494504523768664328526652245600319792732171812832620014915949282581651961864052755523268903275148641030737088974383900509859009158016385915101130581886049619693551924867243248748833186518524470777511914079969334126993341713286593212209965673150770298686478402753374785395541804942292329399615189506408474042395716340205327282794263351908348088061297966466512046146998747793195615631932502271563419021279776897206930637614258745617524398296316225847846479306447041711347133430147064645868013482323656296962672204789243927847225524029477036585175179770580230994546748762434823909102117999795466577543649635702097854763300103269469093348828215808111342192238525250699250033686062054571447660524396518014054451885838500045206521747071244851602975687146350755538455492094614361359269050675059035691093177544323057809373458548489484664599136807557057550441543560041596731150560079573154513770324121338311665078372363279248850854570373667376075136198036156542211221215625354334687072135083234898832754394986513580768912358159822133342928893544461717861858119233367839920953182318601731891100876123479527713451264031239218382537349470295262063205374828519529697026654714663689109673810538124112201553430596945808812076056654374765724988700949773997980887899463944344318059248286886142556129245473933358938720876238839023418982445942325562767184963148537898758490782425494317944441199585942387790105510296065086263005741000347587034219402022044648388655549428761958119968700833808847440028142880036494821578597265321348618672550524295602686594782734049323690340047576654248324700288841205222476931150257160985812875819217258980769937167547088195816081651615334918159038234839279745501326812083109515299892161895967473982322731702689023251102620364695852552482839155080858904777972768066718198108106677627712325036881682528094293404726176036609481900782448353344720268328848096038402370748327434803377940639113673808318123130107637425848577173051502829997161696432195871144989660971020847190059903711923056588217196313726039027640286263047678467683782426470482414529282233136730690163097049940972493843871901253814362370416249991110100328770623673998224006511786447316426773744246833867595283770110620335850129989716872948737884636565855011085571854398974040786023819880655253538493338699942282929694285811350579794596874387231179733389517754639112119157783543398497261677834983448157574084382587924620025326123824500447747298971492703593945510566557832309138977840063640989645489947717966199209868042991212201086325216691643535222523595320483114501648811156657891897838280636439547486344479203845851326687241502403268048618545581469715640332483343421278173005363899328744297487606665575564514672017250148945111761433259371616885643111160829953865988735232376613245253058030938684870019509803869615596577951825454355833581876285942320465342787299386748217802038045036095755227311710623428846531789299468456144655882880797049113148983221644368343663724221200668561142027570908626033747067320555677030568443313185198076664822726253088485161618024655898699053833552123673919972026479565387126050779587733241383948599630212216678831186932470442732253181289349603029196199137119930325669328748257566359853771202103028677852742359250393058627433378481830155871945558659396807923388691078303172020090370370091123802649558474822627966560492510395210118600253494361955002430361110304643018869818273367714450238057382658300715959619845161892266625331745844921518117670618809476870930068220628190029084773089992814208736921746630753829054003376520119162449821678969954864882243140382166570307152654625170162174562835741026852984021825434242087243523282620645625813602969841139663998440268510951818572182934878599661790500935116021052660415075977268616503509790274230377505630331648910420742930813947475930373749938008026614655618982099603959038962765674100250127441764093677474961739460614354250120793496438211225717182450703842675906519736271350794320412487961060463063742565040093118639275898367978031945746628190692239318808481085122453004202358673428276894791853527672527802602892922483988309169416220890098603776306142795466428016496313221262777384878598262885417740652735732842798427879034762150385601187740730375423755380077237283920050311358673036276059737427517238475722857338554224100849640085530790903058993000684298195994249586330875520739008720641322835257402479250940079189650709516549378115495203348488261594609119616289045336055597548549783483082313282864097278238371715398927202647644548537926527084521299083774495775282396555302733158891851774960674365220001790079638601581999922059008989761529068142477183822764215104147844202886330043652856308767305576661422740191843037488911366627358815449027381256745927614559371541772688447190932836827731015901750948582457103115695461331011032469823483085005888466474324910112622339637702876095278110989337032054681249027311216672119392366576193605249760554091742609926853058893397923994594671091795319236247337622705263912467153617678327187203706080922010341518412403558976021378248080137021042274127174941591586822930888707957706684957481172809095244574983295526311279630830793708916939703462006772733416815645493752796278955611885511675528549036909362779221330891332802869812261605667628042615483965132757289322487274418269578836830586971199153955697957724257192009976964625487556370016075790051925636594448616430697696091166877400371142124214562529691415020055497276633420542683599990852250630427631475950369644846376518129172633807629989262684669026296431568368314950473623147849124448029562434189524864358804219971170413052637019151848569928418712760486216406615717771954178622582347420625412096537352050587752611638996226226536860947794102624615914272105155155996445467321972678361446060298376251765402336055555590552630014484401152564788672960064211942875415989352729594779565903187312791931790097882509739387708599250414908073778807095244035093353338214171302076348930279295724097967135645634054270187548098090992296444320463009101788369981116353616286464027461786022892797767549212942877286400062284465530912752839782281504198773842863952964241178140321691559132870354333521353233489293364820509033303284396586809679165060713444466271552183953630489560977910794252481586141043055809629364405280955076555194379483009468641638606045226213732690344989738614599362112957416000543779236071659093522610846869049428999703593196390296841778172294342004489691079852781147980049534125767731536706818560960166027984552426578255669056207720064974778574280706927308161744136156510458182038817338449102695966628301789907419191042027191258951482980041268443521305514480136530910124810406822889242456361171174268683724660930250658628729084309140473148336520854408929768255678206407997001557997444946847642632458627717027407903317377949961993057620442710160933328376445574209767407901593582829745627437469013715910070736016577557686328100604487687915842607128349459820090444897917673516556062519069811265608148715573561604422622167848921086327722730719869396424313196088695567800453123305360112470660203759535502601432207111503490311586957246877692227481061444304393567089781061774160699703447066354249348104535020694445178970346855368357018026005728374409754561127279775013896303051458023902768891637018470986166947363619917556473646591197595478565356186855385191328255983252646619790919590021884939926180391387500414081292663918907901869086629119779385959036090289203610381553572456703945843303412003652261016218251031129446911457149088074254282119223469539881609398533269016127183873078173030935037121002394967783029465705530173994703090798042228406719659465477036294159811673369786659087801097661544789164217490656452643250153378095105746744814269626329766308947394899984709403685520642809733281935529087794022355659183263566433971707302208368132992179782413188436527691824217837723546394167898924276853560013288358935883443875229998875958875173199636639141537760517156572110432598875397042374042252584618359420129893340429359125380495105291476847289289398442672186202335771162172651320126398385068953805351406945602412912802434333883882961175048347771434976078251699023164956413948066156754682411025622004180628876336990843660414594893295071832870555679116530325244930220243935781657863473304603526881501926204168430391900881970959080989842525364531690288233428324678126772988849506644029478183809734635337700444876986994349233246393404155176876271505449278375708624694352425903343749356663838350766183053834531105190586607788433122169579548627647211742330901614826376626981758565762287376516682334036634171054000692249175000010245859218672228691319394197441385878782301136071399764788488731452945238959318294218845663633664340421903876994632200587850643236137384601242949232367130174591990094621628101373446889357708632767464052539031789795838531624734065319606042816524378899367912572330109234093863094540780062072759752265035879926257075523517481981638189821916100103958624356669372225641527141934639932025125339464147526491515871432250591602212622844516858236347379965490165514164889900111684875197958594126551836675873633375175218827684750692500010316002245851808840009895933760615052502397883243747805035246033838132670927725645218127743457939246804056727079562531805400112853755755938778484439767291231809182377640377851098645184063848861638728075332365917796521914007046628235990919480534859385850931380477746416236035683669276477231719916786840341494168937703077958955594802767611610312896887285656580557637820013723571130454938774327279422653805371387286552123070420322812493117309396275633927004989686602526063568347774674272169976495668926437745590816905461229618588995524203878492619459246453833962041866942247814663906144980495193577557600128546529183197908093427225350697632897485067676927365719119747245978926166796085845142328946034250038463413775818966821579519859638263791419864038098943220064208866867153110378322732097255951567467973078588396525895053330091008169235114337184803265712055184816283008094961749336268498740614196671095360193460573811090804828776687463860452135267372806909788900460469042272035008129914540643220324344084609168137261055131005296103952135845304623089995789080700292184502876978959128079993891733446643186797353032942438828871162427564357605208162445989685631640728188905811709767569830305795318622118651843670488122730712277583330928918573547607670220659571491571838652399390434718447737345732556897783067789827758238320012977634083982470370963977107330831076242215443127780188530161326152343054138527202191423055252151631402547632841666095898998143518946099093495605413755176054801171725094329439155759344768965187276911192115676343083381457505247391545021444468110164810325993168278774881736834730625224206564046118472147373045171106752139043177272982478113379747474458458112062490264005976379518151331984234532041379113544076065049697883939363495557336605685210283186693818459126623819638478192688371437147883810275596028119363800269051321438367491107358421998351602610144906279924250518361653485207112196209943187906371866821237832577745442183166859757664899861480690655894487237477451119606250672567352792469476407004949930039642593814262390859652045824176775112698052729243408488104363273075903998025857477184306235086436742461068095545679252141889540282381348803299686448352605341135936239773338592039878347709955241219658368036355711327372405469890807647943168698867878232383881998683856564906105763124287802228100383424750213753145643553214825893276452280424283349323550953117046802154614461010365992270526224935503657441827921826513665893429463495007344118406364414438976851683471307675007428974809967168651420954201918161377789829936841188686717645917029432480407287531771082224514491427449134788528068301549348798193424950029838714861820201294427450255518636073610022239916067804892565420379682212406567901657653514040031329403499678638231981314585913510084914597738548442382949429598729695344617182324935234731282960015230737528278363340695403011689756408808713540997961517991680508700417526809694599196176919277064106967054348281820407334355188450769854807585336610929305573545668804676544559620530496859818874984148774067738904273148539117566105750683774159487123057900530540574925549760603919627600242424860779629301806111978839358461060728899468662591626730197268099130121401482138234000085699021847487348201528932070601425435341371248886193136561307803301461883215636090674125922453178042492756100911027645965356665324746499164318106307278056086003435497225112028175020667497816468080365147633293411129440299672670732421076509991841403637057757307087060880567649661071327983185332194302102384992663277466102822720788586765186960327752880604173180353410889564946944862560447867005335449415265056952884177611835597517239848875348557702836535640869329037049434395738984132091770772573586845420256925710323389279772540421586429811862039607888731374037561561252076162704623493405069410864474853751371202227039162185790204747707705241536890071885224668426027466142124104382190419198172581938866779054923161218112231631673160940206420098611816577196073275372018540636899754872294393639649442812220020098723891106003236856191968336308131316323795664414812089464461808529011580587246479342317314362845097503727070720303690006465931367871481792897502215296467105370035750422672803842165754854919484932944036354219938447644559105208088390558388374749542598558934612093928149429262276269080387929981763561041993868321907822844406917979032248306251921666451857156833746966912693092206984638671980036946132081891326306201803722009446539584937365234561604665870641007502468623575546614619670485781039704837045098394089101549232666536146137997259829383519007222362273499212040306351024760522497017896267976574020828583255543220310228398765897813906370474635222404358437550167574334965285202355023957912704600745808899797670496298940215031539791872120904323380155503228684281748270758954473890558912136997070971385832674835999391076638718432948882805602429951185699899873479553925185998205902209287478212320309188068488020658784631449565742270370313519398773324049143574718634210266059278935678395213239254364815878587028415772702127808266332972034355407228067280529352346049882785213675572084915735185163205885190679551178700689090477530948038953578490395431216995565266863254125815032274979757216857063502069794791159800753675044219932378313976184351885973574087721765325330565068250057967181639705977570297294503525198583952023035976337778787479518650323683497911116931233123204095796246808835436836861105535940296892091161077578503792587152400359624712292569715223796376186214253414228438037362851609324345397413646627230173712160503754883674852965721633859288479313302984750241076610366599522405559684232277722775528671680775721547055467473914299867329528332887910414583105521263816667925307303977946364078067487632026703250346286573866143669502563084607879018719116640578123167283244523680178880436568804006415704755784981481909491582708403206706065120681300065347105428586959917657745375571440800952459517874294903133082075782554065083536497627712394001515914703802557770237305929095462286204946265687433704505404262445300066710908774149935044523691682508434226028107579941583307330141650573096782678392870016280416401845243917315409654778250447863228148563255929916224340950533680710734907448670249335655953798174272236465137451648795665685107460604700344349152155243209478878870724482302545773404768181351051084207378685495187295855593162791511082035062505042810087320208472479874803366089898581543432542401825712936283212126082799982665306546974984346740757915720387362587216728661117994460628859648151580170765304175879408967581427553557235794329545940063216761717344135859759139826883177015775956905667421826103949769731020584070790106095086956814570163090586365901667184082574907933712607999168254303433636741820839339078508105818569924194870605937704355818553329300069549162166827512860184041928255917752343885418439899294765834093233156274460388228874795303609847919243959248979625061829146247238681687715561386579929377085128726598547842791334023242564664276248108593763940330419532998357084910035221348705691936715146952588937282261306293218955409207461152779459657988978109886989495729100201921709300812694052595648662783575947481490245423045349644370607818822349274440578297334509176191426749921686658735224598625395363793619969419986907158586907976917447910862023740074018977642544595157219650764511294414356711057655741550807617563525015296127690514602454613846880853692297807758340130489245806997393412432757684219106491227552468500193439633810527874757603037435334479747241389346751469383693400253394233610867927392033140058431404342918776313521651309886883097603571274861051782026373657857305550951556242827528321083008101702172802328160779939567869789235995298552707547850845503486811002349625801450928120517737203433782297330394027375946953453960978456126117632845216936603671949472994771587095638011580227557825488765047848242647080100986582355323127351388568530978014909133525208637561616696364178073656126207442546193296351699671658768414625433387675521902430433312669023945722272861115060280564548902485720407993176306419958162682156924023633468727442882948956495624731469690459662778572895701420207796018365630565408010422789939381026856181493918132705478985543434455678885177480536193418961439456000441703080331640407456372597040318151480937544901326483016190556643610017604508761731037097020925493836183160711363187562344638297768763926572179040520120889947696710220822232465130290391438904545513774593957338738222946077847403251582792826271419067309903570690392638314721159073785353075805450312063237318030388488040003934450190827188914289232890752146894878750380502173751520543463817749123416206810458132153941607391364504436859476537042628977192071517634919919266599800329013918113653754273052198877643215873885265570868208622893774637901953071297662555288696820214541495993442728251207479327942369937071732672302512930518919819311625575998326277667818880951098174459585253281431998801838004649500679619341584473276903885416250824477910027552442871240594091844595132617739752621955127785362587532073299649521418894542798004109588403436322479161601182220783198783267056225834881210467046946815043923203306170848474871298667875359416485588434040348560739797257869999016770820830108918263999438989335321841233576462111313169231624120354822802556676064267080634867221691104686441328284520660190740818963326240152285547162638874132195973958180686033352004528673062836964015680287784790443117613866429775128449636551805081515331433019471461599501303875855160791532606634408552368140441661745574253339398167655956110602897023700657563445909288751237223969491111238488663144823412683002298712165813053085241871200015932933124838287105084314071191486188139265907653478015496096759582101557882768943949092324261506775392765060259612131543262914154572873845826934217539704893974663304412112697208544660211693845749187694234628526528732942335766562964113141605771622568627164603641533005199751477752360143689029093917991989646097193315280783102845023755521449311204615636393921545965978774308008220194830177985585803314221046104558883769570596544577712887877055250470837500708982043107018490401769475681803104514640905694439102587861498111578681867585225470727448338679987846050162103982668320028873724463707774162558563936805667296100041956177650758256738923977123810530417478680679732328215232541222663930030796217757677391951329023125775247321507252354877555487683059184304128614436977572791168217299577829614981076424686728826977786232054863274784673152667262134493988462804227139759334840374614466995707780924566089068582761473760662746117532138944049355597496235285837638950048315567146361655710183821414765387929305452437913340405756698765970889582294818573732412763252244973344370444506904922007363968367553956818964435896982071600090036484259289631528129023908178685434402355478243336861126201206318169357130983375098070684169566833338613451737224444786650684787106959640600137625997829742056817315753646522443871472952459177419666457151053967513982768792502110683995711227037005583961542967850882312467244699999323225502805259258231456756576984067565197098778776743723476304453827554706378619181075672837255593136420686396754554231333778893787776567206912922045182473482034484379467107194426031369147318316296358208812930934964006651723605096938327484201388143798768696504369714849871289466314918547313234220154329816884033804352288515028861676126939437527961550437732422476594023955245726635946428424457762838701418980319629230334558947848462340082715672587681428047280936169329816543962015029844376110592152543994882049309666425436523383612105077390638209633560083945331295939188242302130339050202966260213868955809288756308950317813399663083794674746491920496128105683531430566731878108974982914351622896961619879022165742430051199604135755964661273015590496340004351879774109853183095130977521707677599320173130593856535848031896362666994588874578468532859687220819495316308585196577762843481196758473929417962439717734037436405363426611410145463089475013525213830361925475853487191660942706883516853507870523769148821591968518888220595946657416318211510075575510852392085335808441166494027555320182497255532395719913751412388929643412470540888779140158169805979336380898500339024025529006357265178452088456195939132679860579819128290918831143299113210475576469056592267008948962187640829135000564173148422582605395647215083697398619602090273352375059490225436049498604174643687496285344486278301901656816834290549007246889311495321660864381266549187054305306096900475189087703068269497896466865692420239168441309404599847501272983189906841147161983364464652983292842338912739267477767004859022111209643132275545797645679366341207812283819291548197615771780973186531152476360690622367926559472568110280751799502638193699536366295256136735750554335853760276302594290954578152183286689162874750850489498223814415307150120119011990538925062807032347801065095402106998759761077484960770841384210194559889846597183537641668626568463010610927784063589684140064269739529491207967406830951117317509007103794730840903043290549884772144973803390515909128733327277620309340499874152561643649088166465789454574714339533259819671304441635434852479647656630557198550466363245906285629834193335800206551446925842278661440074304866618763138545948830616114170102674851210819297670876457358989569839009422967177241979459143807467850694749427668272560724976695998182065485135797432205527806431501182504798472440871360253167677557788016876961652630847471757466017137561764825174153341726300579058602999342821079490818255122847750456373411699881054292303087015251112667572342402691568197638722316874488522397552401234683245339991191400944266171456269460970330293999290124505480239149614635852576941348744216441804627550705902855405628008825728893005441387638438314655144642876710217756005018974422704370028892562397649352527923438570634816100280448793645287365982989942001293796111613671101293399080199320232364544621267828397562518861310663907899985586168198282390145590315777564217846288856185462852474012863245323026159539471596083343827573837704071183361080572693537669707427623841969092925909024637096135507264957563839312119515103703896547198869350120590108273594541022917014069163258799690436371788491869593843852180172780096897900128180313146562226306276150185315318182863166119297279151251816260680440217263631647088262093715171281590678924683004102459905206920236653443584420084437453173382284135518248390132377620138557830585922066878850734884323405765694974459804328134708080376066514585751559109433143151838730222179665144371978590095359997723429965282626096132307086858292062172178762042316017243781721212382100649679200100179672873968461447948191832114536645762594634166392113686301369930226587477422252493482943237057815569898843041240661708867740876255756658021673870888649494983823322938929764216302265700089538785183077500937639657825032511455465631715693243066105085499577249644653098346308009354722677543263685973035368292560341419437364653245443855327007681565542966410174360700419888812873964655926066118230261280514459693564275837218058315614322416359314027860229864472136776658046226101361778112285850137290102177504747901983615837349422915901430009748287702820892706156905772531773938589276653896489150682487483264571970884835003344594234526565504341801634116811648359512687093935906839973323453595361948085362442691003518775526258629879908161098558656781502567790555766375115337779393998038516269246000962111123037527505387870387747436266976612791557605475236335100685467202606048442789745727874924735999367051529490788856990705018803805571220487599686961696022423265509215441253167544958859549767485819763049600635886598824862482491696527240122022196986301951701577387234390462615528108504706575321827048537459750052807901371971321447258123668617890491000285366762119363136626917348713789755310667240284753084376181959014340875740859173805188656233425597321541227071869519750847270986204297804978839290379164241067726907967294266168082021696164477939551005807780273279138629883014229416565906520853917110360009037505686555533592502490177066504462206894409353095195829341745029235593631342253288144573151974626579712626293379331564033817174332356518628530683994019546069851218605845132252063608628977847454391026447259918648140280289077469230970361164063734744548355780579132657999382145966923816924021059274144662575154929580257857436508590163619733942361320280575347621413466718557416283837357324965281130878007538176335130356458828672871491246829563289269672922070252626876234994018058801441521007494521285617946225374133296421740168110298420702470622678415387160400056407027421832752217844941803405994720534782995938985611670034918724108942595906277174673734388873285157628514563942253681389154096973837363764253283752452786973850012736639349595594366392982516539209082933115820455882019458480137709506118352595456286487729616629732681456151910800535586657227480124227630428695124524939075780858283612413503733733687604820792898372489969087806128258509886453818621198047214048325388893633402761836765303321199741726504875469775422258854306541627606444278292844630156502445383339180110812205067841196703707656375509170607602885420508985752657043054900326777688809864879517218538595757918607299189437650102710003042399589194301526947365252878245419603205396322354969874360412160938425506158176837763886117601183950178635384537761828461739166994558032002292391096464557319547832638855341619718820964259161830608312645033122835158021374171708019332356490076304192079386164770130883922315585650102446320459180859117066841984135357368997543541048108038150186473425032385477537526838317407268117081217729006923223103123307078294364074157158862501254313429299407399460005310704238497635350189173712291816209030181272150668889940774229907811583939046618755607790349693055511499861311817637318286284008364120753199285478070416966389665334891368941609256395868152981112728385408313377479971605366141092000703202105062684519011509357895863699700477546842228768238543283560457797945962215148069610836424592430079422534539017211287222884024667730418084027455283199246811651726951986243015057367177039645955891648495519432988075364775225020201850774276070293216905470035163448664429569321009145361464294849724991949363227898673409171633173921296700768885991772530613670966621277424243117334828187805311283370886953725448454481300629896418506231679762135285790148982630794242789642101326473689754664137248251563244106025437061527277449483336476182421194247810614408819476758747125243652167999504775895429834346980276486430984329040902133023793233110381678966771660739424046647807257491593572394664569369619050614777019647106432337485995004492042129871912981686511458264278266531049702351341607191247439923123003874456854674132416173771049333052584473519272491705320771694652630664981335915609812070963610319278287600575960452455582212191507490727373102771843343778447152013772964370847302315953033548024035971586950190826071467689114001141402485832595010944770098046477729382166802766795162231258549827896011125025747034243911790340402090859572177215831107022277327645421539212456539752020823617253083072729381015622579471311878552902954109435529408794587640281643428312491011201550400147246938618582145340614770876993711799126765060928234376830588161750169667900785775545290255532072680346465274077760227042484909433855592934899613395412202912903875795716755811354698231402080300830294715950748937644845107652631357381159485270470125720356356114584066532870088606026405562657527762208133526618714206601753428710079000521204611594677886502835646462187053133242196937235599038225447593319612336271239481262833305972458526984488862380832164308602276078405281619648004645291009324927328589765960737588967774248531019413503309829774355254632552287149734485776376232363788728528589339954402293363570168863577701804749207037156398027654088401248157420558100763944916067122521186799438277659886938895313340937466145337186023222993046190749658831484832095370369613161508037578842967705687332963621317744878240316615596508188175595863340003639626353228733690594797234233244884654202752630996570632476771231342508013169183664409142360295682889538919504465156404471959050196080232017137977936746482584488944125086799530622034764279618900839829918423823803997086573450693145138968112205293273058413517516987016448268566918550191246801405281067000242390110298408771396054903669809412171462541166733378179346756837169052223314254916940124228225526491230481902211329536020610098398701343178247554481504022934031464261926257640290879818694112624126805917046093798136944304509793102654066351243614677013511075095634886483649591002071557033459139886983523076914101834955577737860432746184926519000744570892513068176883625138871321836129738874433814001209659867666113230733125463054887338240444875649582240615124590528058890556813986603481097036183257128242391397823023058163935876770260001171892878415671268057972683257825658123359268078151675074128712272937142993591101832298732525583632376621503335683127730339171628301889241802711032074233706079126237322150183631721915443266316373133333328796910525891421528252300541067475381129808050732874572035672202263066583853092928215348547860087095089908485530519841411870015113067726955801315790265051897940986187775989638967385023729655106927640475098656151245787393550523354768562742074746541056479419970655176414057248128751606407168807422789432714299157589843824730492868342406359650541676103876982834627283821525292852131345589832077823559271760046269502436098216183069604020921862707125086787080212981149006766789681385877325815773101304123285616417300177812694283720701843308280152822469255072293076101638974464300713705311493848029737284753157592917916580721583203281785400082070715515739797507555184067153312640672639714561246003462717004059804702217887801239517836199517188889729214439331084692497132001162746629259570203775855266603000634835766684208046516509584316857709658368880608088988885454582262624951292354075513340832517500636861954317962917510824928433383822010193208654580295597210697082221362696324726094643886120576546830968680412440807832314242798908838961958135635858624459711214256889798371603203729803383226885601897226510634091917989017905036471966594703653647305329712427871592495804453113623569081452369088996461861483795810869728002310266739760101595567182881709060454216472173604003650855911445334565757738246154518469138327472710904914727470544595821940436582164838126534358097429483173876689555519593352521801023514669176030480428731239688494331961934279823983126894612053983220959448493574849978544665807366255302201196842855903144388333931688894227401651996199789247300593071204181238452626228406097389511969652602591282945339354328447673594367030323882060732235261405428527604001467404463999749859249495847312598454801489403337359516109423594454583535103322843045043479193175962198516675221598030600244040810835702324648897270661001337726768327153865782063272399894863914514697956669846303870792518855893407996297375801782797191305507198221509509956210184669926110548994437741176920871141243170781322659463789574988894930915012062783956866316036691780890274884089574047652335091943087145745189794037190723900212017991271126003668053601347221999348635810981460077358336719893723011201398025255999074332400928880571203634695932651106345089483618748607875157917368465883376762981688873758155343296556405640143169269791700443775762402478879693667360844112366576594225232651113006191154127812598635204060005937753492412267304673005968396027952815681269181660318162417094845884643638582070970480420801509483814217481781199488023219458778031767218252291417244584054150856117463194498552066498384953611499568782921971221363766950124970317497410404512121314320844111110813910011791420583012724240707121217174425580902805047664021432948816857857666388282956685022702300599104256011045463699546051331314016083080511395310088885793710148881889824785108501603132901190485664917979201433270640537437105825456013376488513924255702354349523024584615249327184667728333031439449965045271010527526456391520208656757904842541970848928904781314593990009330663903098773697819834456809310587022485885272035726351952140137998778711663531612319004261321324373444959513145159894415093581813661004795814255861655350113129600874385418218908117198895479714965628361377325372214214874557369552478718794248947451772536782201841159433043030134272198363226532283862426898641885923553255826007714097856193194652867225768298116776649155156140397997222200561371804284403919866725770907335825254617693193666677832595719561007002533989856599771989336198930377995170546229614061659797205472125465608061734638520613181411953362661328445976275125663723647134026448184451312581732513714848034153649149102122398400778078523648422313636124521951769005491541628910027192453392650733930366045545318479561158696033343462582268088444969968448366118609372792136027001549726477896369029038179719450475014005605599639216026936933711719138758089173857308687505820013941896922502119476462090359436639793020052600159561773832630402324493064079842601133750559485387780212384915983766516791323942763179301945543887667612953517312574390581613635618330715489805217967321746351476422415470998079420425146318570726053932660465238673327018827989958903191610790195109507870391293336587861742767824501394176186610188312537379401645992186497185733708865523629216928291775156184791228569791442439542804182810240298840046467743371085837907932520277579938013583278575066080713513086038092760036165864340581069583348127987691788359019639695299396727212095099487789922880735312106122019257657751210253136094116241708463773296318080196904894654157267561507632312161778046056617080999813843801844898837258882965662006339379939454213631399115410243543065695113288221827206351236632638284085507464076502667062398352357015294197170382390968243106286179555813437743247460197473968792446120113759058371254565993525773297621912477478086401205877832359668925512011115565958200602215805848104737031331315494090619066998824301245890169678285658250039578642048355831584010660904271872822116104198770539710270129918398523074135823316637970061930609001449296761356672255977609986424555812868887618655818248420162541368040336622993957209077309952643783226525091819993368516970869162659373266320361971569120337309060730704801332107605246367348743246069092379263418491763624907723169698116569929102594183842883968752381628814950826106297007950332866351668167205732489973384000050418916669330323374436658064784947387418495676757772450483588192745861229300260781685975086143307602787304404124377940702883434923018316836442658793060510595661479256812578154007896074900847161673182230402165676273624177885200293348884298551590697966841994975293351806915694290107323528827825980420510527041370681159162203947578092288472716896372096092139364794474983692365562473207258647418521878111988429311083111003766836045488199400634396996024242892620904445861731373578905392766302449365745291795578667558857463374279006560116333842371089557775085584641329025205087998764899291205462209596392279041782092533380127455145254043487339070625827564096630984816691560857750085859597606541072485818830368114346083669599818726392065709904417010189917360935582389351074552557249193811593100875126232385174266663298192631549098585180237182734383338624237153850357880914464256286430449977599242519712875557162822756720156092682884487060860813087292424642711899858981210015994018532186871605967144914639899783084846652649426655664345254317958835211681984139968937377545816586576448380018644983370904310401822079919730707776433657140122623596781370971101543214942329066043063879497600574549839380896829286302262668741556602934485498931437262532703824132318782070407622340659597289004192902859433445327370255000565911798122525530991169555282784797034795203888588860884831727660799849671650972827975870802346094990994067942228042024559759866428597956073766843934866106195066071858127842977537569171736038008457026134898188690503002026704245781722209406287638615928938830275127872128774354066140827915879425456316348499254312637086563953144268634067590127915976428516981379922246783794538277039347790112000376237885709255884781714946256691475288780833297205594580387701281372114768068475643374874926908913499466414345374231072018903496627452381103559563552888411102786270292575136657958920889204910175116374531415015061109894090170480653321384815832319960952446465802456569170663384417918666335250982026084114800173971636646019427844696668006118028127939973080799812755818981087369815331602132780549914750015745408752763726837261188910678493630881113451191779878968997330303566542952735645242339156643192886504480063882226202592826139599257903492573777622223281915685771145241917108644094359215580321876979923780551484196237416173631111255014603821261016413797048905470295473436131641878167841171456316038157361619917681895639936172150848665393859468032469827041783621261239647296921715652935760685857598172954269772163530418105368759009413487999206098758934137591601263768183767611969010617696016778679297129372991346270784478186064637692561114331454911067462828005406299474848909212821422403710344702024887427834934345983242952727293499329344042682924317187366847094926860791016129706392567194812969239697245918109360243389923021196643331014982073967710282932463643096682684649924684777306078768672665575010170947439786785582898308511648736885412123266725200256661532769556594083659728337692110457952034731034065334601294708765381076245903210644733166667007042069365223693125897685618606269192434682352338043042577563796037505048189531031180765447244837447033329260029634837582310060740098306282025218523199671912736706245467440713997438063901814092040831504566443315584917571609645473913039730176766394834052109255542831924406941908185441729016132929843822436914644152141045080973036940884328100632192687594348131708009560663727231904416584831362865967775358453182960522718887209463226452995729945473725072358610355360727370392053658982271862536058372721132046301910969106632522002881640376767955388979522415919052892133248209953601817673610543025680455722022044627031905478547837991050070784996564028552893897600829688600549444544958082811020903317516839270508937483514256243701600058783455097443928248616155763306023150588192876996090133871333728312100429659804252129086567302808750964704985823977409564449696769194541516458862546591974337876037228738400136447205923794140531215108887362348067023436955786004323291729334591096500034289789929489068179574346999972318045356378000142742049598792717289608943572524798347394673148143174967806455639588372063146129734368321346292937576726039595991283709494320644836645172936306743109805741430568730835750908550826831940454766148669113909629398495895173085006552516581683647166654421513918623570054605734661269575293803422587138996263462844581015750741256681493666678936638583662806791948777885382967860158588746904145913291418093341208620469810284579243387745918124172206516420749939466384544610518897764103910912246410615645153717521502701624734161059125154249165689338238484293583533518026037176781364048648414350995366393741251798462865497202025877483830330006538145016140620997388671556375646480218117161340691237382421255318319964284392138180953890316288457946883650092173399296642036199244896842707722259312850334743399154034741708930278034699622794616592043661398700452334517658012815983302798475692107079286021319563018631929951329696051591111316494266672609296262817851091163719618012844390862991147160244018413648830032035265554674512218366474842779569917457138979965949734824265627642914809425698549062066766269344375906066171580112705402397142963084057979825471797116295411418666533260387262365844101041839461669756707694662733697182253970871670337095674465992489147880563875718394923442284222213737950087138094896371587478942625281129594395433603067947324338000117927446807061691784165587798399557061788688598106971874136194694795359936939316226569136457295404213549221681277781206954475890036021933776922408224093158400520336293242290495476858327740040995448732700776348155691198816040149308727787264957545567824662597202862228037344225286096641671209577979680899807291741348083552419686377038097676470153288370176132996761466338149310034474921754168692145765689052583745163777078040118698312691570385132149406524816234981632558019046315456178386530537805818997596662608000640688515445917965475597285136698589535685193056424685873605129189180206988214591566128635601969480780580980430658842674187359361894100577630215319726974358432238863367052146766036615222653894082766108493442792634731403930056460569005933347437121148886932770278719816729150221789954006654042904151034769984372483714190047140919062207835111118357777490544177046113445769564637245766064411140788787962526733997747706036448067234476918409801659869428021754504781062556933461947212379933258420841305299439661102888424154888856131655471092536255487014683639165628321613443949537679328499588030673331806753978330083478266405083667812564229531053206455939527797441766236214878497875485924007250257574329064693714490699396258854189679580622298401396719771960930903893489410146221692474261746749883372481045280269988735241237930861238307999237863444601024100331697667568397026468539646712605648952057942827302418409561456391028607655732855088309566893805161371038446195787541524298599423320787031150583437765343543761226052405349147313454457427046141930614411109967711593177252387678618814732570874511587708332970529790358342958606833604430276828138784981886838632605149106138922463182603252724685388828062249127208785179766352412710698234292402410350353040774023386490157177517361782375418427566879987264512943240980001526341432066440556067110028107359658597859722824100055279112582476688117057288691751124256615092399240380899518985875834003129379140985927699915031306525932029087240084878503347040013353644517258703883828247075074364114415214389088870125219552080634408977858041702687620705919229415907426864113374969635638168102665965444700935593410283402858527559295637571619048496833919047520887108059375141981718405777165566115822447451998991456867201262432334386915716808152745055326284969927113054681366731433136064737330996580017986906932595845211685761939244448342161806486974368069077179712617429778983804878282429895319273078508360220138040476094565616258350336861167321482037431918196570836706678553641780558324324546660326154201551529424210914940896700150939768980856597588311109271553775316794997471084815856434910357240505311016753695675214961741735590512282023233412010591441389262145197789031651874200501765701427821614790593605425863397724141357625609245161780618953601242238627673343695661941878232084465470548781250402054351435893900081381968112892295971310178617357541487785625798528495220895431243893672431531537017679756956491471160121275558053290155170139129654708382933692926388186785144795995258601878575274852465779458792622448666033546453175336521549416501792876714205414374703719411253211919144595526231983186583798121899264849286159783934728498720936987899370768633073513646467810909047268069441560843493774935372853428878286102751901688287120212548754200297918189900353206260235753601680508251274709764800068156565007505877189483629444375503178046736307511664141416268184523893743163426810914755494687128104146011642757462223301792349206150842219665995623054799023673403919542827217108008361973358879919978682895893361933616353331880290410693161067530396188999592149894605364019294348202354534981680281784649080677842034111410181225445325452049957658299068435476369579655024403827034273878946726049800768541736496840003845890241363109336955043517060352191793372270223310397798785739186128718672174266639559181391823053271544368427625102944945891171491891092224611138411361221667110311971533291813300554847236355281806713305866188319050999886558439210638284766224245365016827564091978039947410618521192768637660287883935459028425984615481281195937191708464574881780207132613593393608239506949199333274318763547978167490091299746087740475485154740932732675931507914996747604606504185978757648788009224009490404828516392038884001297377897503556620023721753533190547980970380064374905224842746147653156885582481947562228447752860704021736010428176964756633233238076299000601916712170679575351348195923522961210113514512240537617698565751204740540035511254697524794580850728230414641952717887477935646606745161041044428612943640883247205658386084561863237023555102377962523559107409487098479926648992171927386732513427140545904452318795453787276915360837503542076256710839761633037698976152572581421018097977999594752761156458230248291964687286146628029025899423266526024818375499361091491858087918321507651662932607858099784976288245159925442331197072093052494607752249168681883445929719772841333878153089474783221120286882556346629135973585003017937323365994310519689112575095346249260097891273600892066937481854845196343069779938543023276527207540618464233180764516422499232933263676554572848961343265679127221720936688355780885256087475140475335350719698464570146774233285333878302767897414833041646968314687909651712026612890340989294682486912806439623793070361443183921052119766783954315894226987197379730267970375135993240489307849184691129856177044513568216616579973348270035749986246574388161918498975422601799167972662226811589804272834897195629008373826930446040403273483551361958073846537322859536789558825121601084463318326963027104331191500560402365715228741074811403188648401082334171274249540998133598723250810258215273349008011438594629416682023911228820886211241228637694221742278478736386136032450324834084778084818647455083279080627478925017582322477649002858290894444972535730383234113233415926057862390154070951705529673785703903949030565827705184340932125929198641738610764205584946451120922085575708569691885057175152067133000548232733570125591386750212162840537792252223568129711924437374755230350389154827465098849993767089419779586391774708711885297513077451550427219729493698505471741817507329153514460020457401842602961505617170166752978439547272675231386348445876672153857371348138407133507691761106736719348399219781390327770170359167496697691697713603595837443336263185588950780318086088773154984832361789707896207575972670728701270092194626120982124758868029906047836334996228728668746855186930882135417248959566364510605599549376416080178714415102136545135519368025965972546353495637846524215376863448156322453175389445590498592123007909546339021753903634357238917372097043212330640524813498744518021556640752030685255834003743783151497644033060911816074972903600134611746807223853364697462086832841322003140637491811425505380782755141375125407417653836896747013691523224293469555248767186880867820889543439121135992894336637286308018354533194446281420794161619574047878148768953330316895971005252046624607566281247475384742329766274336898886957971189201980208664933888060749340728766089420662794555295821075027849463700617618742441687162624412198168122946658338742056235565563498968310554279996044244851961731415281296565870125646728703376392499281464103704566033505939880329465058903531818867976992161006040478320212543808897094034557138852660847940340674368807840430622695705623317300235698437531403215334257990632148907718838048495282515465681638402908818742295986808583724345681730051299467003134665597029871172479550429506861954518668733094582072997310679433799791453260350418772167688746542869712582385723327017994960024172670615235292884073287311566415987125410391695328356026804723359780902248155180949928387469530044581210742534062672414759263115262009334994954203834707033273755286149763378538481532669835233667591704593226294399196113152489259420226329583472690548199649699823053492894533611658334196504179268585482860715871800410349495428329877419992966606346298368286823624539583126528789669681394466256681220366147609659297022258736675420348649425672077049886753560346823207009336374482596784552179247396370340431354598609519335607265699729989834910432216840693474185841665247527703958732816201448304670049360109347046085956889844720065675208038688438652018533288939861327152284034714565150777404752308620182291549990822327610156664162409433909834649247074405220496793268153625626473250860467121129740374822725154888075860176087236855504678491005651709426335207335868221332257343928143895501667562683869561668896379277622086808118783123295206018570271843077469125391894379945197461547247290917805638806388375950180605785450369847384827647866940897314246463598537577315419109485826571179620853450908055424649344153697854008230888634121166981666350798525901534506683697953063314452579259431484949686854478885308834036326835516112904277169456812958120805217628506973658497819620230943955182953917662405613577804323615185710224176865057594615349031190915078677415818112981245114339096503075693444155292083618981201715937966953141687307515479821157758400691296487877068068848526056484978759409572794100357559262756088636602449316037893533876820544826312338254012444203945421656542694334340527144843577821600556243509900461227793844483588074476180710218949258355856191871647386358460736189373977024361073380280821039858845228540005254869562372236184904552981065304816173048811372934776332263985551194022820371793893875257016178512044619683296982959527854316855827817720153007556885314382557770533444516348409153898663140361765222052870598354737375752006464990709449664521800785047696110959381412947053070513811031786892968651766662421204733211553176675100303839792973160555322935430875347772878006029576075263097927343280964758938131757362126239919184131163765355277702421312831105838266107568879010371383863407253984961105732933456097104289728634860308118957428340293794409448907848155039649049573018728115324237799410737149687027175926336737860759630462252773814027860021380929714449111204751325738174691357412836451658028586379446503221764723494282644186360128296127443966819569269339106622551174259189102866899195785041784962154491429519182627951012449472478064351417092212283963272015862530346401295239997091585238901915745905039780594190016627674302192059566598605201187888338568521117209088043950372552041966407987415277497839372568918030472796090825723919605239773018239422994004211613731394459367929015117858290291963894663757235480569315494354753735110992274556947039331184234048210145508462071003360492859757165885418558303448006410753108149969474890377558305706921627160236296075743421081035112009884251712133573906044635188688284922695434674289150457683063438948811136692456371658905629972868745776877500255135027651147651784974920128941030881438809864302866666720190313749918616682742296894258671536010435173957181222864690754853347309742746116869159621956692043745710275588932516462778998115067190540762248063892152064318603002743175028495160839673180566337432913196560813104082267352411254665403651274902727425252425203234286591340662465337106751991394691028525591417967681891904111917865936521684224950851979115326107562797994119077663844562438870822278366494888912415007169888608792490239444385240806521018034783125860651306175032728458869139557792697277365603629000084806343713595161144430225216021866606868060623438720114062391676082117302554185827005496665694476113884385698789551471145886860424426584141157889799920148740412640299638911381923345559950826885984732730489763289884094472443059322893080773385599163574704922899882170508263633384701994815896614683191296011562757122472229562503504996813955953209224853830769034369193928460695418481192153225114532867055331535353781117173282751180758411374726728249592105763720836630257991740621305966838561373204628388436856455558385629275856155666956597218299841541588368305977048438957599801313720246873726167577249821722919340904145096277978225343745842133876226246291895610904428803045225728560166302153716014656972862773256282755234386683334110802320167159687066848039130499962534841123585393575615557695616617568775271160106262777500115445179375998605626160199679931483686824716808378014093465662434665143290367476001002843744459969499820898025212090022406805396408251049556239826741599668936497697695965287760762442028643010863559829917340251482881335990646211103406572585942991608792627538407457643946241252317700573893763608363571274358988565649407271050543426879378548725268626537857346970989414346373879413491384889537876432643212099834022109957447309389106758093261166450597056353184493930171446299769462412327926905996052786312224056452178214434489661732074454349939322162524317959963831544598967735409248332891219790869190770923894364491145731084415809527037439229383345587884992618805659006119782940028382484196113784936744517347313449210649698493763172051229178593619410832057763824694330039098279338304081214029109196642603882075103887992269461335314825686234465990075473492350765105113983785838759989050945924183376080038186430254074749251917352907700948970788192298430742775346083662979923141002767068139400370846002030902935055390226050053966041556746732064148252568581395718120441872959577733681633932045519822288986143513279784032021667605168849566884974674136612742588017109205002551773549036320140767006000865355607617788760139749960216847653505765148696199592358995270103776812327211722919783689059573709232444055139409276739673680230399790928522457703879498382003903513602017269381870110998637625887549243993207458189324173183060018399224562909649630535549904122908609800608180469095942846199678964800028437402998519381647167174428870929095259016953831519249911356189807701465541087867458411307765646115498637382066167296388724484290436380523141319745960673208748084355260521696530947532575866526571664028819701480704622452915965711097233776244223276098220307273105471462834271258164516865571731665129010143551967549098136993716193140110417473282613273105005566417690808464026092073410820889406597859855948424996002705485235660115691203330984115445936954765183256826987459812514334000641271069235484778905858910964531302168650374132101160891647817295974249554072868858321803243553363926391728118521815026370043655781422977290902637321187503654557743529819512362061746161747705874760767826327193868998116149966113829111388702832960868196733470046132256798333215196550980991081267438512915554820096682005733738040892790375839016987182006956747913282881679721198071345024018998184073171188053460815453741582109640562438818057284901283406913618392128625416194504027580495208987052758906666384845811543138416816240403814149415226917416629057893463559860664990802905576272706858065786523109376812254870942627567831750532418298380119489190552890343856822056643427756174528431971156236165445299436532975532929794727526259835449534605102450697034858165492613938701972134398843288962893945678723306571666091942324181325967434153471736724042583915898877401027961400804498088719435634941280487383069229703218978679606687273204544863833556158461841184438938828656149494134574625692588066759788363719612522837815960806413062407989299896495161603467206678746230099617436920654589068633211979899441516037590998879715958713517047981846553372219773479379681466579159678852032256782425319163657205190339749473660496754194342165696616584175609241939480663764741043448716357597621769507479479384058966259482996305442105148296565849703967624286953232096538070839040408542826220842896132658886689312053549918494460075810121074899766455080216050523131326983822742539672808645333627006139636018202959895530265678260118041206063750225790341648117725168832148803937533797002730268641467822310486772486056429863211173882309881942731531285633505387886036482992538629659838526324023586359082615018676820917080752546365404824072930582156282737195806755722004107959836751174764780685499204483736123990889706237142960580901329596799189450943317046792501925262113775822074473650259617503809339866690224706869508762354759165106926810442662772248749299837759498013710668135060584001073655503379729674404849239057223123781752050242603068173698719432957354180374645390321428557852134490460342826765712574353669591150239499844134797439740749753712031153360897533575826757920953711976680871007923882450566113949252910846244071386729172101379464301182947268191706200345758270726294228132953597755107099811417294742256476886092021828948728001704173846485186035339354334888779413388305289377439363607102007688310227808585578847661637508286118460802385544043248958916860304933438510557530675061462987697112406944263748546288463738307864377814409595539074863597677799342138764893738574853541410355984966593803484126528675425532055483029488872792321086951554485894056140977943081292807658900477590480768974520771063935320533442197921566576338824091568293283327451356521732217095644884029547950137623504478952854065189459350390482945798950494027024297190097799844589151271079154278022923844219696299474026471415081368671178276730551076164278005519677960260250634672110467344636309954340437991731178242226255976603607895536245037666167908647750701867788922939146223307397417367429726281294709981212529056356397371397861079163969360009819939560213617475588139123091988623107303752796037797029661134522519499275036452897382772885611627455641083010615361618748901025391995224831780005260675771888129515984532304980498785024887139329408271075463589381724226878072156615279145729338253090106873996864671700963998506717224467950223846295380533114047568777635070782989348242228912293799665197004570482798075096833299519404198033072621141137407853432149597849860573415936879092803119453801366852402224862711281445380686178478015584068480688010408114616966405054855893882571606827796986242475694511671570671020585265426765520905555655587715265203567856104236381932877284119445969925284823722878322180076911959747767952821820037470126789865272793565383579370442283061158504500282005164294260962864663340632490580003936874218382873952824404054922462917615383895299491688221763850511099999485134950893878232518959073324698232639999160582121719468149101456048729926384210550439048887114150109094961672505264641958957230325368383939501686636877531989181583980832474288128052324107548971814403073944473377373998414253125959280271586566079198583148858411751978985319432531685690780124885653445437628478211492001648900332479085979235342964404077173343762500543507045762136243197956030904401987498805686634524756658971843295438207446605367146007753334787828806851738607120057430905679324044522832330179999321200095279181420688034340876358765785954374592024614671180155994964047628791844548460412312441369262050598118691955892031380610631368399467103714813988404404912013093754212180783503683907154318489897355487859384507479277932932776274474439202033170764397117029014542305744534538552371881573101794970729561194011874363974972232036641292843393615858237662287830084918913653561417125779983633047188163998149978394209021127187555970344763103521275800284910630312016490360478971617675027924186532605811425916214367309482376752861613475521890631624823085603693371573885706080332538138530364788569212135733837227491444174831938916855777499715757146688449775553872451207860281372436254592807205962980598863774255534862001233678221039972065685934723738677090697338718498856683462604959000699427073369863511432824945863593273732756085113139999151830597984222681691189243490357460923402512001996467934292547771630557229084907837728715708194368599953352019669144821321207428371166582465019884449336193846678556873492323624736420831688958157850351481729771308938053048221889906026959272791089084117948707136639688253061343963320874677921992554100538987505073876862342550357189514927597923139476243463441095164085965430056884241963029454190668581777932683409808984266533643163847360538457545771130403834493622433742566487455460051941322972452365225204276981485975375456022309769926946713097493202659186135593318120598628218478113114234042100808191538860415939246397924615206925268891315617881280579144407718392795673608179217481788988058887903683860739212226611012307037447635727049804332006985527166209620910352555766597096465438847485263995987148243515860035538676698605066239811499828302555354369197041973128547071435388722201917724824465301740551520515732293242534042901727901883625750090028391145052594738915024529855260576342442968362884932773856017790700635806569958816259502627842226075668733917862433914873968808351761033223414978881901531719369962675940259237613465511872288201401130985905469249659126008250238325363169554265095379487227215826467335589819631610944527542435237166492993832945036955597575706019069281246954046923352714528228912670948693669418098803967667568257737366792653740127476905039667637918375732413874153485544051872161100524060626314479337254834447054691533029267000887959710125494461527468398657925007998985089000154598750389019111711958806741570780274599802107452517126353966074883572644404071303437920107777960347999448618741654891223753309269728582874393995682930389652154770069344140763197713748088964304046524582773867759290745111603897718372009816510602405517099939476260798422294000808575608692654839424135194049618271497529466645505447975024870343673171345916738772679660556429475477828433649067105380762285779173904331043098555697175061604733128941579511063630915779286191258236393467480421967046570194547869889681336072383806073803059012633724534950677813907636986104413521460678402628503688640667021722109098981266859977228929366620691921795880419404595872669770887455022183449105687884080689896809719944209391636290881118116174933558410937458089562968133049379565201675174270257179460743433320062823306768215886678941425906099153703621713184752452192687852501560984242486075040724994102574419128433100301251966760118780144569712744255589787122043604982382620753608083312727322171221060113913821347664166966373875396078778699609781513038737901734432322846055645998946102556747553380915687642148054175701378677125426635174075669386381526606164783271752593491206490796705633081243091310007274212260875029926180146922187434928854356105603358873450727018708866938200691445110607459043201897125423384994665546533535086531744298106814813839045807357197384691367849436736938612630198981371509504376042703323663180496520219696845316240604647655407056275843795258730282209164266689650324371056659516682836508137903114224864838091695675716955283755879132195698106588592642446003963872089871589084528293276142630477955254134352091952475780548254268037424769259002671635114431915168190168262638092707999179684791268563005056788248770715534139918754552334124526208114741999340328790321062288282766293612246515631236450568559582987437634479428193160995333851155951802491924739864321520303459817398573878932363469829726823677569161350331332821858876637038308358348761652751746459694392409317928690083272769675375466919592588498867295454642808658827018344155822916191414686841038206026142325096687200239069184842667531788944268069549203795416982321721623971735529054489204290847706206824893290689496568589432749320692373807466546470567842737307554393042731150144751360407964877554375738954173553018042871858958242208081704897935434902178437931786703294645371202950045236640216085779243886457111013151521468845966994226150122786327666635205728276580113891762212420220676667669482582234720184746140455378349976207910081874023989039949719999467557307390954289264305829303405916594882127494331018854160520674013864230076661488507906960785899829464122010294808783649493680301622830680737958074428537831274779005661180626588264840097091163967832343660829443393955099387145449420061182784015004135339558795382265739625567227258906767168386165189822711064014597565575969446751718473172001742394019407858491026367319995385446560313111776494638003411784560529500182699247938038903919436885493357456683586669237122157405128194675493582618647092563726324781397906533318462598155685111833949713465316495889115372390114228332437928676432054992927212355282415420658901663893364483935629850192868732372014436593585603515272186191335647275936021430407189575294446365970034848138423208239643419266705116159853405930464069895556700791748045678747452204005122926046558571110612227805281836064165583235520546261234006554633513474626308635600346307483010799060393416770102865300762603024011428134854130808151195076713361608090372060644216979924145814943772699861732239839772800304740333538343638417699042841679950643513205247598952728030648215765519420786801294929966476867727629875757148525236647549211968095320048634425384443443453100400416985973898163346688490235790556294676107948743168491793465189632355536045673238820266094372730462429282598307843339730587676545733079832295416514333413057848671958021875541962146701771260183900262217308212101207032328430003295798052647639789244862654965292320620728952857243183244784096957407413248993131436974390200855526332110846214028880577501058164127647286710397507156194984544980543498981735020327611170546602609872911104603252687172174961543867896485467767551518774441724613630536737003993048425813028264940208396929040493757902078582967665635241253795729120777165763518879398011596998467360398010415880387221708173809520993178499654524017775389477100771200853131269634428177769387364927130407854353421576659902099088392415070072643686535116217779514927210965648352714254530903444961176629848377135324974463909822668005066676402182719049999093791897924885130029564717543276994951340472147828967831399499872460804567828950841899657566543857994699148759794872334701406134258697662589646799447717905156100685240817321350234227749194617388334839895155875853281404552932569953184234147209482602797248206652812032047282293040359687220927176022355692085712639410313580401397088718788314131387774128295387702776051408219305941869769848669609432834080529983780507350995458102434846363273587147521564950590712013715747342639072808624233086403751495055074567110821678107526793367585165982715402818826939062095893021646813489084985033611980415329721083376466323480067888338122326547304918452831153229324061025037373838832951988317499880616852736772916557503171746531758933148727485913923311883584340142127410817178095999664607870042957880981172293272638862191742681253425357629411846316244287563780207167147380039970347640887920974708628190005865566040773210139489583601381055051421581576224556673880930233979386324648003685005808538886883004317807401960910814899256219888563283023851775379631137891960985083807599776670739540584076916794854262346090656621740434369347991562688236519007750842127284665910889289827770083597299122332825483885849088642930484941007696058439891740320624430200536056522702587659660739010933401185369606040450731017036436716198457620633653860520397152806595710161733279761499819112919204989302096652017674399242678666720504366920114562990827218098104579627380788995221066439329183682460920542300902336784658300709975649171539514100289382942692015958296437979364136041223322239257661181454609345556979806852435296237022480430951594061161445953954810488949047170632430627333675427771691907705068479271040187040869306043178256436680284871520643082365317837503211890856138171169562414090866352646807347326065173832070084459579427585237447495392319840435690881267859037448843385915201015170661285317391772351079450888838959211515826882115881667049251519165148121493806070924270696041340075609639501513312908057045144882748775552914199638716323191358205232182685001446596557373444532072703461294753181164264349072867490209992935549785906936957388241574555078748342380743754570812046629232898909645621287786862605815157123900248306141317516631921675728736855715421146725237781095018673825619298770715209660700750571321000106732715297476736132746922637751533552689124674048577498311289308438337118158392128040028754268291500900668994046182763236482654507155923468015780890063274273639462073092508454235674096654230658151599061817160495102613244613220620566910244334722608215553688886657425799934819849935279338766196525299520266862219375752480623420481408854890152704649385915534274722583427600214467653918914195800025127284093199518078996958362508987888084716059988250645349924012030179855513009286615534254149962924888030700846617836944787207631104541267799953687054136263749281566292160064017293927933494537692827461777091081508219840294942222133148483906329277332650112883433129131974915079529990602463360333015777355340834049178709791167264995790622787237864419755548808437244133870294956485223795972237465325381074090189239919333417042824438011202590305906865189737518321322054979140481294086810978803893001484866170143303001743471347432110165658686199817142662071009712907373513499557447404410439274405798427815171491730683244424467837189753930064745940710342814064689822907171284773009770593983404218607851976164679323656381399755067301767726632562162943570544583357516390077354447245858954071127443611338246361689343205104569947664357160542293818805439790007861901582156495779376161628638850170414663657928994362669976440490212856552007449926643632632953205535113732106591381724626465848696637476401389419328339861271924807435090154351735284747957239585478508408776676358381504107015144342199805856302592428480694346805232828208584398899449885391774984241134902973925958317219367635952411342484540535575969613900178129184151711837782318967976139882276602850002697703526086048016043133573841832128065547790465110889334313740110707285610664431118603573704474495140549102938706187678739651870168207914098367144878296693078521561945360009900819191506672824108426766915719689021483224223497921768882087813913566165407450216318050043208393730642718839483684024005434289978177593315630659523362610101165652575197123557889542311185789935503808454092428380813789985259228277882471652280690825884293258674664211704911162680409397757267465766402541493922295805509848088415062060851766033805240216343959164431184636010300758721836126560143522029524714378119824381831416121429604324315768474435725845619397722463521708881925587693515693016989782806985727296355504758958143844227590883425468589307860244286182460088255490064305147095426282358126988815761819136144584695505921209687375765013804230973072194977316625727300658526188702547272963083643835825907112727624987471454632285613791044012150101559038993743076714372743658381618920977417277539729780257076819114707267264174240441541954005691387553359557153911316200339382178655666290244282624987511504723319389339001674412787244866643086820588621469880184449441287262512021345192925969996311680915928523726300116254426834119695565381183671738776152133137840644462468522616336941050948274522937637944066128623088252727391436593527657012814446697801186623922350993529959339570840625180341895980170920124838365327174904077374130717625193116478912323651998990352212468997216738694153877121710642336135024246353403190631758862551452352675334716137477710898099166636597684916471697070013593576770268094183252922169331545985736390947532336408886741708311011561696975362791181265022441050478877345922728224461161690975676683881969405475609117011346181191655670396562488967562029012545922075521130783008160538398644585341475463741548449930023026929471045926559194321325431203889547410035956529993938848278858355291407649781298013003360285349167509215800458688181037394784502210735203211625906798746188969813259453626522480241387430295734995065075415440617001279367267810333632553214344457378481420162505620312075642885182461080613727367497751866950197435970419203409507424980087487838501194051071315394083030962295713816161802169271017644736264910543582266678795307551442642648992708744455797899380137104994359250764581556197715657501234813485393492631233384467317030311650434428513729231944857255200102082962641324310166688218627876302804279494371527703055293467813668591243162420336080730695450076259718690561498088989934802590131319559362670526432828054554487703289825580379899083976810012184751880328725104832880579361110459484746416061402087149529365151285262630503034897043906570920749470712199648670692366451940931663825928660643651145727685313832727679768877741786933326456081624781762276605029328957115008619507007934241061721280245116429715313566181407183847178309224608322714584474351517592742130222114699339378463852397277361576450773993108714659266383672491002564538921635645864668987419070227256088489178644077853197830605697798934684192037296350436213654272698907399923260187270658025783877292557352006011910875633448260753386413539248237167387976242285119336743793300454770945474815624727149591276199679438327971671779133360479111628836973356636804657653429635114726051313903368051856151779921488066178135236483834683730489986497370865205530031907766597468060881999533305810747609105727077669483775351819861829139136473964589442829100189611736292140557995527430236880653746616857815353762545589613552093282048757672236302423469796280353527344732907807926673323868088447599032316017048612565949441372824315866402927261194224847248968631697425210227813353609689477032997150901486440450462072419612122639876765735436497419420042354526890158776362517088463695199321748092656741647804151178230224844150739476207257401547139413793878918209414489839204761758719454373409820172372972136028090423961067851498975949077855467204494365279028221967715729713270928039970526486047701861321274375695150529964615515688899440227968807055667772578476848786022641205575328652317018256938484498482772772071383618515966976692080655173850538354992563845083596912319127249476021951359977348104396323153590431174194758552519715933198097170008434562449368092056663634763732679836687570429983361853680880986682364938943907622227047638195020822785646810766861957195019686031917050497425245371137846718233028328584166176417501810488326125080625093368919355880205231099596086786069754196447250130301452739790465901698028906943431981510181588292477765662757516014217324598329695761136962602819243104111672955578853101459127346740091783091441656218810122564724013592357212178103274600482929343800152321063831526044724445917652299093179768427120081934702247528874832396386720986738214307105036005130488550380707241926210470642517404912167041739084020565158393307342764995255087036664625311673253038811904921354195974200732468703943032856338437963500026524244624114683198925076561147462506379159772751655492062633845031794839136723390487551315598953276541576197368564665825159972211601249427940165047594102078386641068127188362491239008103383951157729937281349791748220739040371702901376276356164500058428658254993737791902849517241851153053266564500428826507033421476096558701193364446688195316141473442249365148173370216980196729493860566711907044638689786726423919597232208232004584950175015273419077246746958061694890672311836713273122518163876245119343411736195771386909801051650308242261417803455346422503833919703168531654717315524829883808685667134936544202425193601172572880148865946944686270823008806523654806940819875445479937419628468262804107430732587463719507744499957312433464748904790362696727852109062830747480643746367269501299685984937716555901175174240770009826446339514080552483544876016686091067823221260144893696415714082615632424577679467999953106253893006559926202458835953267226572624271924854208736174755036642544864401075575695128051033031485214670159804881128254816543908971308055158562827370634553011045806849613570629193703847852855191185349988838168540796898489793300017844279240154429127867912802490643122538226016112596236448855021008080020427094117650112451419190467297552009770691364539077110047458272716264505454555277971555986519990477240626507972594935228902439064978203229813525136280709366808333922292188822059088291373497469315966028117690980420578442926287696830631779589000557475345576489874323822695532462891093575194855752128110757678565265621490201543470711676745736862791180260956799119490629255471695332841428844555593326346611414280760761067830152076049675762727588777272507253003804375850222158389256709643418854666146434380221929714899540830633063729719037631686756211680834803745257297426483612185115583195187728565832521796727732005758805166739140304371503673588894146124750299053196645258887196930228883840665748046193335660995121717080761069330183892860487233936261872188082628762848860346071309181726067399436409925114654615047308778938282700901844082787576720812712815074943590038963137731807678618131039519152851056201056824253187810058678125187575343866514430604162326886540637800311629393498767672588042403941148165829631630706423006303158138148900302670685658973607870912461641359197523589837419019125146401082666669359816579769476598210857072576795095859246184014970160401168942850215325805702839996388464704415866668992987306473587325752158196400006356979612461472683005061005383528907043986543210553139050457048467179518765268261342724210728702755510691692479717986416637963059924395489488339517940443190129132630757798017957148580002362715635104073513537530183409993694004601718939720877671092124397871804871395554812251625737454668566591999506991336730630783482286423505774095701880125175039981471593441450509608585618677721567281230508262350714124766077865876441107094049403570111742205874058918931587864922521666013167286775686714202525158369076004681533403719739246497166496880473193675043589232647523579435106638644985973428053724297202965290156610731343347271600171188720405014428931830538320039044386030343508863892765717136033280904121425868325000472938542782825523622861971221245251682069605110841606248916145269857397496186143917112161754522741494876387184742599223882846192027539829643182827957791658387497715595186464999930259636688298577949203142362206779342714383932988657923747264035429571661493009473417871593770602355278556566682921715788789837295768845207810097548123302912172246694959450959640244966573951662299315339625240255140507209721790747262185131868072056192973736465895066739140917487324390667420656981986188446047530003097043062991600677809954833984092506700606415170981877052722594416867027211118319783058443237476028545395141954861946355053397313883881541145571701548545400876791576906888589968451523793740855881101733215969684655508504086975539210866249308790897881742844592243194252285634954897144444134545853368088007944702822389931020099602493205213959287230796817397303886781349714746585858167755048121336930592372985647026113702629714084850818059435501720570044578567600749650670874303558412074697126564618790593033792789531876072717096913562119646982354926994258409540583830571219517115386612585623030830206052168435441795918125331515563529871713880640652709317334405730360464232223772887935561388282049579764620713391571988387953114604274488477961413251093054597195458668664783772777213949149740645863241464372752315966206092712547401249915810763446535785964460224349013449151083325157818290272945773398517967400052684389053449124321346126937941952259038882998470820947706573499727619409544441574355722502322936120187118144309790953971971542349196154316732080410053032531748129750042364140892994804140360272426188317970976429248175166199419600469272480172087496961679231601200892469948386083541564941789718670899050590251520542264703638835265155290430318687974610488282083523719162877260421110153728601768711622104095380270928639802376518434129289253311486756317741795923584956030714732309020952403060670446453382149339466550759274089239651566679093123302933427957731520344505499713096384505727157644288981805779191173482363885819761049301893489786076420865257952230003270891780689603200823390825116682532377443964751488742333485782010691432631149836095257854658091751003397920428474952154407254468947694827699752250952647130486711493611150465500218467541547748334622421715411321522000278602747728862878842667571217948453493907615987389914152691613454338751952309609073156561224194587659287262331406221038329766191681921490213746816075228315464443978533451801289277950318003290677406196441770900180159844443658951056931368210693656532883799003196862355380016008524268310658775413178828441253782426238044691464345638638312998396450212293644109109515353032230170511453389116075998462541398822969814822495633968034893115484671712603665381147188550309836662039855930982071919100616117798046318128864957711894383364666072853890647859235137442253793630280719277493138600748581787290632502624427430736923963465829247490949048082011972071151750543324303625078359696868121048429954476472539057330674856291927530314529997319523744311161348022451829768748423275898509178849988037471463272254932071644137806331879938832710647255803803353966040429633164103052618985812718621722662114243154959411348958157226442253106897955151815722752871858197778956134006074392587357003096647176980352327345203553276293561113731242500668012421572129801929303698810425431210127844776834410796686132718183736881192336786618301081061766704160222211153253452013120662726671732113913455565839247956111985090518367649485470181405792542117652622976889967318274775563250906977038342601611855782262618790013693666850365267360894481546979881798681576192044742578985633055964884148450334214638464126752763646498692468743970413074479137850244033042841393806156466069118206449153454078487267465060718280390100778517607619856690924675906391136727572769115487159578336146503667710315274215078802304424522324994292862853936064163518100353120750595100207678638801918666173870839211539677581397621444499028460243779781054409051577346392847439780590365463941452185644244768430321586145730664961454692344780626002076521963189913318561565559849305174301644958760286863931124324920940222542404413582205048824193628255194086594449231066913831993006458136626102447775305066878823202765290218967709868864950475553887727104529897259151979970140997682987464643673800645509633375915258638058127316625841786695587267870442641210095645278212904999993138952391917063040174248803264912859839937661773004505109547301552219451143231089255918680106535701905583491921191541945850665160759082952796925043581522209153310063074798830729491490721140902236609871573342476486185488178032392124068098904449861214317552883445147656313394391351772061701788030974725706326133428909104696976092956132549109441062066640310744291134231491503197610677399206762480862856866044142764445298408717000252813586004000118496479218506020843948114382866476388868545784744340230330239050690010396565114087925931358352697916762498435305892426213004718365135703701658420760191073168291400212737244741855199429004812089022407143874396859409959905737556762839544502466517904428024144782625998605888852627930307828333518583879960902486569776888872572982981411475733144470034054857318598070908113863376380396446915921991961731602598517622741325881003030130379049302754876270199870467695274508348651769608333417573013591734781218741748173524556003955638093946200123189827345031124593686206815537129614084382976458834553281460042702346992074632055554216294179261449983915563040193330533980337894700442371065805155773770080409361049971562801479337167269997207391486201051448158329039747130565198947423063056671118392603482683095516844287728532389939455668122364958000653770601437874293800588282336516539908506456648758875613580188932222307276895724788536970514215795931204016109058523107759291836758968144282344093073229351391255145776145689810597654173370458502370285487376368094009094323789768638198865580276560589992777931510658688097237788450169579907738089189625715444946726184877504652408921675669072801473703022587995912237158084241465075546500509289999204744888910480976493451953851819561904468025783437470237172227229263268896496806049554582905564242878787570376476491363636444783427027964444189775241931039552735056405187413411021578177916870543256472661258113023389625239385024232553177242322045531707541631109939820349652691781137298399997445557580906218925578530823049149142820786965395861600554552810484778633434865868120750592982897285888859692241670641142204125847268952770025038440735642185706068543662835731870415950954435714088829173869570031795218255520055499919785165048350599278908734697801667503063679022549978040030409136109206888575403695473439356561170411547419841286726395431871568052938328808000718963562158088998074070988796433731042644743702526340311791044757865058238313935745356405726439078185350005674795232309551609189738508422698488328452579452018621159405893447460036439816574512492306229266481098663495382938098103950165641409595539332990995364213206497637215641327357018958363211153589524443936671713652646639463150603035509442871390352008194645871439174415384140734304472693101596522222576425239677982679988332360155193552030635436849493230762540543259220314519405800799828281931945027736703165375205514918536471161495288573846297412337669226841454855280758229254864776844516856256904326640884804174569479448512008615684101559651964099335177353595569543057063249792179380715587290227640434428644660967699588507367632419570431145857771143978456212474748163386741198628537667508545569303974565322293683445774059084833236855857013090396361993086823080506884510299871131272546204257705506419250261437016697700836765410415218700657068443431208558857203874399930960686782591818439377552940513851157928369544226419962521285165761475484784348398690542267981557100467132847501047659973588650504517107559563120242462140195738783854887522820541103858385923856196073855651017000273828834639676919956718524110340396382525583467317801080213433458643988558475311301049224716282893242710328242812652697708888838946233575819677278948186201449952427153079406960138396337672083560280223180076527808560831127852464977540161830314202160420498173528240517841180344462363643006030508065551288663580664652329046889014443718899904931621910614609130051405583207547133578393487335396184777902976065502150919247731084210728907334821704855288268703146755440646729146371539834010243186267295028707093984028620491535301847465454848752636144451126408428219924815922342317186278326829693705589227890765058008697712730368790175886945895764027677622858847849118583968167805783004904034932997172154319367468447601125293111468174979288634122267962912757789378960514682780613035316606844626193772328461473932845786889313696324398806046033863787821775862390002572525834844037283944427203998044333372671896580055454165470484965372855814089052362385432239380155447201934112187413190762032334140404215254884611226930433977213225709426741494873660238599602904786553684396278282382423209299569512328898089971794831708270034909043748973454271183641957869432263460340993927973837165066125968147537944813342860381914884024648995463414815343148884335785441887690805866368634369720874716982015370887424847328956185564258556549480295455784283498072653134857636328604658430513539284837031017715345052222656823012709194991037278310494264832484414044346288101520772585172444934545898658697942116190496018410313957287636502490177901741449014248986525537336254797124624100077680013645663799074195575292844524041055542344470029196018781002790381472364861332475960519661655348052452026506300352380701199023918847087177085093951696070058734144568156532539328066268411870194259513614112450121574993514642673262200649251130421087220289288526719155946429912466526451227031921098287052571892416165540197585865296568659870311968400147057972707682871296148850831081537935917841018200048819290340269193506842726590213651770502738320228029078676501305141868048068023890208033613097641732297304862752545385500894788023631874602505024431647151558955613364772811016108449921720682994179518801938850959145456334791700223837559878303203039143485589607332336607777503516524829261545088250429780055086079843954897257325013982858117065674250989345005628402334726315948146221420172733084364730106221389548853346186608179337931281534745990718872175224150502861815754099530938939342976581406694169931979044136555343045695751759345064486436758621184033006395547295371207040642373858954195081509242296523109815470247883642266727144152952148593230891247929717095207874236704185909680600669411227101464162469695271589631536585409837902487309098427221250180660255529994260971622698171612935449203877982530271785900144616415030067395255207398517416567337854301523982507497322897863192488508271735100142169002944360581347481317712458701341628808361628616938323936207383746564080980349586859686038422174297660226481025778297499572677737139728533843744993201809072345851304983727119550326427951757771350225988094651653859766065786887261563278571655663764117100627936898819486827588449391620041535238695042417546612919068931861292633871940010149764567312547034035443274477952818428475909736611689321358946214823558597444826069949868615804507057215063785274506127318561852245459050247868334551842016439517408503962577283464151068293874924104752005316098031732975490986116815979543037292941221768692692332657878346218641254185020454382705600606300082136197496507840690437038695688893798072798875828877744196966082325055407445629560733494860842672182162540608920288366073491621696870373118319796179875438230491625551815340540613358251793961144506732285591560312391385501069893288346947045618824328595956445162750465858606121883433279518658646841114983159360767945521669367679573373090618832206963973728837896655730397166273205600774041004953631117851756466614074532844753542902291379802326046990425019391107602791608560832330522387043544157776029335369345444841531670618465101077346356106115301647495757553670157070541831397373495865945465529541884564101378467264440580836032278447778514421728909050779706960788050568904069122470942471614782604454552915321527661681809223526897068493806681647390216728155039013530485405912021141588518275340934776496094266423085355457294483911449467764864097537742350988198455545740818661375720427685536015604929572780077541671787940362610169360427584536750157932771264446317298396810681962673133784663580864095453738405384282369673799463539021938721948578563578087429748727540201346462826927652380751905431314451302634033576846963962506798050529538923677994368678710131602545179719008763259737721625703829909105305044323393841048791736419339917424567555205690481966355801086477139166065494641832531356575621371019535813977286806478870445894030494469592985822274968002928085195365684166413865586659273811054864891908921258294449267055602786881438572813048454230713068526309265526621054218731506647726455138525819514838024895658707353053950773410476514332546497389062713779077456016836933195314112103472519341599864387104016846835201043048448565997517296646320705286408254438196128001923124740347000735536109788008017948276911325652013171415244579865130282079457610056360272526401467967153555986007973558643992168077727169037977168888909005228805018060674373127504416111558579294327242397001901261787514080894468104319693206097712507081999182394870411715446468069746630484230824923191265380358813527812008865247696276903422438321851603827349501994391653402211531921964993431622431598399761326921126048286438176046906356712116395385103832863583556244135243871995257647722661175553603301168289598948477666156575836668831145027476527943328591967804189897640297928696884252901273326117371034307869699267660368883552978374502901567212797122980521328646265251638816506781457322793729052539666882165248947617458894693013038342098867007642497957667346616154924136522136918886100518051216899244171217970817560072890381183229518639406999996652564188037843235218560029802954091150359670189140776256005687743806469425693160915721226153791209711741757440767656395933085769982505234527196623449849664574573246489512164746865559270165877485599728454799951579567187663424923103443349010631375511873227381564803438708277953852776195286650710431888604908336931380893181181567080128203183447904623226458851263653995613582287957419154006887107333860333512979872798889534563277826169113046520268453881477495610094665084424458568665871340325550941348620974948624743899755575544167782235633007616757909976612268963009827895454828787582637835250182903432707070884985897893422885008636071304695610324894048441580901251009695096342282566579810167101637059086900237994102938272191487647270608067869110034089937040039923753179817229053241121443908689976321207927167760196759984135284776420711222591861305009956668824006444779707277299902358288375899182234042204526374307518834047718168910674731636414869315403105058361571470835450531108029583673919255581923857242256869966713565753794689461216706749610647659110000024171057009222665244927776605676108016866852039061632400621241604346277170075063840141693773466377572720105505965072702255508769859260749210854842405878853342045261814545465929448990102796056106117816453424045806521219728271754398678521549861994097260005912191010123121916393082639877819900771380137110127556566477232937501241824846960000721532693498942111748438817458328761207585948015797394139240773193909317925016572084957239844774091228083594119911234937394663014709874043988628706260107066299247510711117448489186991403750625099092666582300554139130529178931485296798472385473150468031172034979052969647489415915608596020006161289231693240646280471316412209198380236769433218989984254854670167690215393749953527332482758083145104389244374185392929430800843514465593922739412748325677115841246477382235446827373705573751611117938021699289957886081966864259514851763234439741978274363242107464929202074558074287965856004789268932314601340705518211958432894809668461354267573225864012290029165225179260999326808712612399840397222491132048776945677021271826438620596499630072186911499767370092376330259847037459989228320618650990215786153059772062531272073224151893647039673649899621919378983249895939478944489025105116320329137041656799517634589130059685829164280886040119112145486232067910382159172401004970073023622670259603712917876454881969962832957478285326875028859932426644753573547854735857698646654486645310937785190310407942851717335987861285524634414366916573914070515795198715969062212946097966504261908896731145560355865016977911690718435322979944340257146538791541720412826550142114963503734531320641089022542645876678407759017791702138671983328737381543104112917916349766674766379387213618903613752965139052411501549463636861221792081468441052500155785529082650668469857054181928305419877068190009959798291627232608085553439327300333075758081380480361224237578583993243170124631068963515040524915652039006431773842729562469364708314867780164439695497161618842913544375133969497756996634240355058302689119400495447377309489554025306614580020106417021786018514904371156251093500716855504835945493356515821518976620271500625914264038416474935481306316339269851171021150141037060868115207370169534292477278345419454938550597671564915572432229870215038844223378450151719994201594560305019088899569376114583621673425902689351976506904189568080917026949794090163368919861546830067790879969635914867347601414143159419922011913347536339803289007611721694073387378373057101729545498317915719686231049938368847491183195713238632319762521376548469776123464204688141846756070302527442658504704367931800784483372022004743972591572941108053332903355379756925511948187037833355768993833925123220586304715276973819014757008580865219085789791789508877501663785254245958517237211709542750406863077423138303887819333495517637872870150880244787583065216785660312182724903758384159566909106982321255186203201639105444216169488417798965915769299252906508245251190771980180167101810102021547966613829735462486721750744429869043240722538497574118635845213283505630651204571229909255421382336632773178951016731740936495962748374516578120356816351099265156739844713570600524830816262386005740571118313600504807691837402340182859095110635363324467829692234406703593356386221538623978610672033346102251282239941496712935065685175217828320454984322965775300097273415373928825872606281116927863572532012784460767136538236136662473188061907679725281627783116679315983898516639610920101436113688286700599049312824997050831118687705679966037140205371357004623506125151452257431976288287582607619697746154270891681769192541288638825266891804923431681777914676724679064101833272169135176458917320501953414215749375349412460951410701501285290283678788525760590999792982831216133028626696239358852413317111169332151360269880894400622045128376303798551770353312085243010297521352469491365525027087686106717679365564313914852687764348074113938444995608098945427070975207797588240251024443890327531670556196761860833916990011339972813432912444096703818200350886950812809530455237359040064025067158964273006867643231407318285796230071979821912618430882161071736571854623168524676546236709520311237706001686716537322275162217063519896099528210046826342729111665069220132359040131348442582787197696470254907071573140163876950033011171313878788250096075129424058303806416874499002439444113957502263328212596559389246940038553570612725703637779471189886773242541161914442887568382890559771298279845540363734980989326298723298992070028345187571305232870990442491118465616709182631118446001065386197618497230006185602976061355445652464389060733949896330831772089733936752412664117786265460008536552889514394168893584089184233892018146812299274198580298600876830894593546617619257035331713311719144316287278213486882323387416962127575762187599369068580493686225937415327359344652820462902658776700791270207136914320496458647710542059958651379428012532004601252474534109055633008689760788843959270426675654140460852618189842264675199656362094463439482582664448879208945594560016904055417923936204984239323649851969354942009419409283081273826071821858690447976908476999425758994303188889307693743576299305227396836349934805951487542635008133449326254993363798829901142202214308241544898062898608225377186565381373919299909688530187582118044428635666546035267241089527793374430697722049820351220982948318827415751005081858797991489321375737100705095980394064115484924317949355396445372550005541063046900604683080126013788931071976942672610654365857282183244787822126163574480524513726062737219892650737323008569301571747734921285920274043515074646035153401855711760848063898353773691013335080260915140170096561756047292137786318739195339821693259599744691393482472675069987732208159907944957869263822172177357406040433544299135047868519601080383729830276841699956913620311572915468137465150221452804368799624554725456605771928023732331552690845396184633602340117850494299605799237713120981398606943628390097721991778723828366433563478310732158452920494872988665388894780036152743045107748429255859329848447929994975872145195107764772421612309966187500173238760066757484151159809742188409281036817289832027631217085812804741161284457857030297351659321547489246507341723147707333686926324023149692759498301745227952752422395554881669922306467095187921312004802401474693217577415678304302123752102781546313384289621259347775253600046511408902811206505004493723095287834171027669477374260071752082604447156666442188901605563987897287409363911623751663034155463529419098904504116198825162157417628154257267194128096719653646899876737487081213831621993428997210978289913416000896983382469486410459742766731822122872585683355523489705248426195497456543325614272914498954327386446627400252705872829177775465169649304048637872463169306263961443208656163996659655505175890218324907987353245764538104955042371973122145978053041508423180509615809691034244336021402836272661022047484712916916694610795747169393991696971951664806325182890717595787048035157294219945928408855280305534761360102579515419735510935803939162482383047732111272482080146976950987916648638432089043811326508890407457612662731624262482341659566349967169414198618063758769408473756804663129902507588660876585813197225836883687872597017899388111542932292971703611812933815512340824221115650440440063599558485764138223945751487330852193982073944931102399461117897552734788786404485850922146224830114284454607127110876778719929575511803361263276963418734013731353218396811175164764409086427794349461274742399909004416567211850589666212166129390708324622982458082393048452922584380066928350702573635494597954231715688280274081755547281472838035631227698963887226423749482803310183705306576239617082839463540491053210505861454224720786371081495845955061746312176128700338544476091180491046462924886827450708938513921710624415175692097226420884459209356722818131233454014772559836261239572846428457885770989867955650394163233157232698735819237087421584693651750615363746179176798068188623078771805739821316556490696776146729369196136090381155119712837040339420486783034819889192873821602810022757161077601588131678960983597975502425776774167665272752631150874752799285303642169426444356336061149695004164505752262551122567995785258205792299854485741140176166917269520984834460870286735246533298335668389186519480745029223155712925964940149485796346813382288225294783149786732263805197487630605252638004776948172316998587999385196661287234514662763700775498500835264299572006449087797655167998198789459106791094469812843520950281447154189393989579262141397742129697538722301955436371470816345591861863576022814565616878311714145673216025370105731410102363980063824422935130639126924518442818600054345075358752873661223180582927038054991371329913191947231368150832937964569745247701831083340888085936311063221691894017407184703298750721942710935283805853493611859541773462017897285746497121420364274930474093913241299406716528606297612748756123659684165134366537084706589221689033206819395946929963136771809104576275832799955122675738785145902400728242978885190144393585298074255917174856765399198458679626673995952548240467239496204253631806733753309238384537694693772766729608334500021772965221098346764415791776015824598724059536567320444090944243757774742001330529385705209546271688682534153861497574027998250790482159870404925029224109942996108198806993026076042056604625999311479575542386565248207707311603672139779372991104661185852244242760281436800727337621600621943048315260169737175683369857172952155977969620586107911571327014649240915551314129364320824944402764040282845415927630518475077395060162721153279344650243012831750557501948580776640219879984638432388630999430692941364984277653205762503640129842480752539175391826190065136736478912639787009791085501582734087641048045066604101568737989859270534212133078176382359083079998358360893980556327030931257508900386563144089907886513702908635916899767534056406290935814466094337861192533776570370363574915671240706592880221957020929532129193129595738157834253359121438469890793918047705825502468688492921589991726676819725948551339287895230948630398899004951799119114067519424890527864922876269372403385797732493917197475102959658968648865290853407278840292351311924390867209401252272185989625119237872738195142627565007015820095894468485664989440369942231378218479925569003261518113373894251176936874567465363124734749126524374541803841646041957601773708666180357141131329389390926269455859845189912362454646864972474055538871840737712092659086367861353826359218176690724927650017569255678663715324434481989614789283980561812607348272283553707446227792229993025037852071708599828941364595975472532750081463296725709393129631917860758667872432845248191508014044134563258135329947805636233662210846590920665924111948897844980239721655659316587866835025844723512694141052221993483292557989081949878164573797481574458104729206793752331129043267575110501384747825655318778805511893648832159755803987734512629035502739268273601785146925026339022677067537460765104850686213590974203500902283437622131803151290708233164738150231516884069838657991377011425951267605077206165757367720312159694053101150889330438489755924962026855139399855463163971070729200820248754184962868949101310160239091493024647674009049821046682764413579889416871527185660818649926992532804257638140396387409532527729281185258866987626515193251709398794077138225183681690595179095179025229281441261296044944976567153321206356546915981565246350798534742739889570621380347543674426795878357504683832227201881636810869701138286955592327551996170920412485397643889225626497683671691543134368237488797050420688245002804184352417649718815993051038918367624295836820953402233301295488381282508124324876122713276852767523902968042474031333675272807045089797342202930416965572874377937118301149046306618875535294909436387157218483733962738558859929959242040956904718329725702375252218095690501443389154762834677508496188700915221490632292993058966908023342059276288659300198510726762857520219926568032623384432330437233309174010594342772355660261795785678845995263073640844148602812846435282405413880073146867281823940661913620274693294180194683648979731229218463212586159701190641192339442404410570293693830879127675648098967096068765889089966309224266965584886543324028871649190533525624988756706847550830021119508960687710026724072776570227614201918916460959613586088878669822789133694371925311082895854273696192843693385066467057505972010140535845915934937258403106118371893921549278127012641112626303741589040712093269504864818416712102634348099049076882444764176287925696129187871902763073800500675595757406538211463704549979903587541401129089729435734823276480274447277814035716198299489320464547363472759283875632592118458376194719887609275581425433491982299936298272535055813564659126564962222920648340380582401151606802324615115014162831490701319826232192326567289307619382794750154371798722392646371304697640185446436817042778056778628285680421115074694915654061135459677538854246310683296030578444475892069322974253123970700994118494180575331213009631355077380361087817375877644804562572891109211451275915408897263983667936488921984157307557931733713415842155075449344628180990875206020307906767579713813158538122388063728357307289915808119217894635076871825947033045698635576814207314366995028796317359160758425747043998991553568228153954567283524868492379838396860578042777847531445546747985426820017040684447817008922320453682042809166473426139662485349906050693907350757549970457333775012747279058987149049865624621215722346091793883018613234810532519196403577063479758109870110207524428912350442963135166490556852671344219880839350531741287228714510897349758033259436434755400990302829958035449325483047100065355233547890722807830915381532847162037321942756970006719125013562401685746405478310313367090130120503095632205245136992712712875126656386763394905429861473759715939757731025729753777584282413952018085067429791398424753067158959039128413374862029770893003426287978837739260798701745404744187117093886620706273965408993084437836497720099172484885931818821197562850373609364936397864613830647542982051742865806090501022916750861935698671559342508972373537059035890881409249782936630143361845348067475429299948336731856364601925892466068609740907155942869943675875467452443122626129226270407811978953885692837129189680384406250408291602815890318875648384899422776171837309024195475812622919787053973399937741542142807158209026720365288039338560495414593751610133083994955662783614586086394058942943925162901978922909224302447197542593839924450967474677936520588235537140832298634870424613353260596893080121037699328550987109923594706479727431194721906338156592656039088645227973591970012697139805700275615525645204759401398280018757873285487785792348373904585803094401405302523125308004883560400107589394277108437073058982005505742543180772048189020812692849718094050199921253019438667642424453683879163015233740269289797300823632107948080494397102612118598984780970579585025296705585755836437323879944009493527287509063159868540669413136226419711951386643467756985388508706310801315724616158634081295151085618064525378410633986804466926754409032369427255461228424934706117337973125284296535176197552757807992425978157731988560995378524228267488566627988614611180606347862440138097787291048072243697793121678022544284743280057501002121083152247479794592329535711963737727265764662511755843011719536100565668184464204145048239791764302118728910309646386619762020522204437453488532446538343336846731560747024998207327170699375390540325285263343228852127247942981668290841801691716752257873162194618927021564568984524766740727090358517022091467428687185473982039226454219350743130272684424896312848992288128494042914677948108434507105852315878258565365770846026070421089515430370170333387983973771098794981496428404540648509343529501892857783659758101509734265833740528638592181527459756274543930083628111793596765168314025697537213718161252652755976541474881041893465544245830208337950238780302127992516947860072585174088338042193426278670488942748100292731208247433686377976764611040161034074892749963886188558528672798432603850328067842635495042471524589094497990987001146987582807076555504828148329317612432420514290391194674327527400787370031441787884182999608336713711065448199166125153551783610997323577349327944937175494850632652146334268008051625615679506814994310289741009027256317172125332122317622726240491922278853849636469258379716840403997828204825969538003025830521834894973204910595581067886487213024861091080542138200482987682533106365614656294245897454182197900549347750794189693664318578316921691553319200107274817901307178272224979696759097675157125522529156558002698139905414198708911661738768916562120252420385503280337422372636563588827435162873305011021825216375371293349089360704006604140027781365908646363246306122325834092561886192542888685177570637228952995188852611939434521855233211516932141939092741444712138113381436144203066650307107136366827874582733521915419467073156341346578706622256788358657429775192191942886285573666340533961192592229968372807931888240118079699388718409721692635116276639233775164920812892554577096554242920323136910564139846430812316196273707600564557513579822560543039055837410419677249709765960365214444179554314483593173319307839140100000321638919437234625794330530414440273609722959359490514944852373991683411576927564954547076717277741666419905143343457472164455760919115310322289281530972200423667887970517023336146120124007144281852955714596028289032811491307247962019882223720672018050301052678079955446848089813618135456614758436965883594435112255802943014819119062311036465776619055284063971569262293048655978417916423168804098952647875981913388195099186440443196935458866999330891986054434050727720134696634140755945861355957886453361072796329480046201232638543155780368507969988403642781713355917423860178995012403612269567675041937041154286197258554422912464320144011384044312122115487838319789721390299282778337603223627603052730288312224706385597012423820127774774747822440248712162522273584287494203614593804383524142550119037649571504501452124623864960268025365670966023879336287632904172874904155582188387174397765127196218021856744336595730942727315139945720873699421364456153568781530983700315385080175624553875953582557070896823693341016442235837879289849244017953058994450405595712195693957939529188011338606549089394823511214016771022568315366089901275741936061099761757601927702266124871360136127513268906134841568735311221379656334881102048037510399025185936584366322226805093529767913408662439436825350773990238387317328906762940482094208716073063918644231801194609969170545868070142411284476920517690385247689376774323840353081166131604564242358189864020853577715541914744939424356960691349671147395027609923937954298437722082911991336677945147608591621773633699393727145433175766502823165724853295336450135107030506476634927799827864894676417563124228303670432647710932701567151495549417512292849598353159735810728649706594223663703690026833780637015690180497890735648752622547109751757834217086014729192254922635524971085164008966285251156763536250838950369556356500452761512721069123641132612130414539308169877681099345318492253688159775729713459092109612386244300362528509026041711846560269286816411200416271915417314296518484856089918724838507996141181921234736863949870058695225972296047980668229083587693943601379321516333609113407876229911252482688131966853902894167565100977813825783918868675811260349350265853314585509692372644855875450885170551055353769422913977699860174734163982980900193380748047733575636048853565515519608910845869197391918799143767081431144957264124603120126304463605520073838027776216104927434921988311849847055174263172992253373756375437886848686888234493761542451458980790466773919799226396726620207067085935800884556182087134095120210759334139447472899735716598400050218178679396491990094912626238716389263450061435911726877906864982669448743245690062610515995560147266509965758195249234094267314677277107243020261579400104940944110598889732403348779907881835103632089226723836740163584377965034219054333876555751758628489464197384815551654057142100357614774815823349864718450978893941978007134912610086988957417482623797723943542772698698505165714195781159946276311195961604756916098854076063303542056436126133770349961673194184110054055360396773825595007135466169927321928090544288506264800441286397809329413776448062721406339676083965439235290401806552568954357516164894249395269588517726763812691958009682075311943323808986179125264385346488795526165031967527378586824518011306510350252485992993191430005609565253785301107641930731627517289478546218107710430848440849077644566110252434202783695903806064780805246698831614265963195841967167077750345120693915866787438167757564060461393061369020791438729057462098771269998382124698076482381355412213163899244845583412659656024511272443756978414972763140532894467110279924098545367656177987200599160128420246241148353362956992111298119451443232853727684263351326532996704106312082911925340759428311730225319707898513025009649885587705409433182174325831228031906304492148741993024006171257869667843706896807039401675684659578222552070189190299181989859816016379770921728580998153951519472855321799761160725329383331945174848457393051322890691694589732300902765461256913137217828966110384571107744561505066904859889442897717186241801420710237058336724293235751432858423702804799863109236238738614534581537844623436433369488652107809756225215648147494619580271071039330874955311667583013615432205900626116591170313384914078882848052052252410948137386620247649871464841424136002959883210860824849704741686604682244471949045425126845086409611435748145795518533850769570690532163247207503992370111931721119045709219585338107685615649752879011688605001487395750671407466910733865095882153561305499386674488612804756872542018412754189497407994377500799393188112475802729680893365175003762742572588590411749788082191019782776599907979435370577089759903461683145156885202343861264194306686133203348003659193320037696471197366773392443202652440404860338806702188503611053932192365906645989032285430214232791775313666908389016258743621634320257996370836369906231289761845440812582790767139208131308408583701330115084943988511622367589736091812238336297432061495315491391878580980838897043527667234012716771007289346816791721983554111756863538394799782918112407201919419142852474770714494728835220835582997984167413434494646895854367151947376706373625884923153529509002814744073979505738476369160506492120728736789134630145182769881532589751803855082598513284995779231542493527827688007944797338916790633738460878449264496896601208489936473082752923156224528127572028744105276669450401577471547254510909925679269914376630228409537618337403115300457288904994161048912502392196906053033177266670613412533248177103696353339341699282417516495361111667392234954866397648389951089965914052548012746817542195793681597557860215603923774291536307760840758183012642388094248115393056819966175922515312211404305909175076864746976441437442311425950710224170762371027368670377000560335837636194686271956763420299349008824152693192135797031467637161800835362035945854575569650772594324812166399414271598424580588160392371629190656078802033082002060432274403879954755401972915095424122765959946091286225389891690924690110111700671980639219779827094304499198667647832078036052393346482513087293745295229966579794640801940149862441185311094774095508122198458060542819204616983467029760194448068142355827903739235330545556135284573478768929887108397619703716030848154175468141580810871741607208680741145847824950797407495369982637451588317991846404406789295233357637667123389745292515777173006112404698014667391431612447597751068839178265591746876861361796307466823215118158666995549597541476147767173314591720323941573419842118775546669158944463167604402777985576892555139379403234053581581020727898020502879348729226014381955093280843200818520286856809809529508471983883379858793175924603630706882584460166535473409365544342099767100821973596559967634067915743636375924261166150293804068056611071024480479473936555614698996356811935400256537995171836820587719003761904861497774911782751124126454508078761265472075123374220274929484668320308239032781171840686019889554560546437984439002374309863565941122812932870534089499292481819916448625117979107011939364030624418831099792339763030830761023243629104428510123573257933537085953902950936792625376522220860637600956567366848971194825734959795821542628003802731706472271988702976395083751711302829335845651067256851984185783578581504132473599284138901889439799848123474372848001672082734253882627704572437034983395405149241522563588454087369844823272449961630112162695629305895490222179776001441093308007996334434530436518166451268636003952467580154423540534065236519559984512127483973295353515456385089913537404933064803099183762109429562760395861277369913014276418480030992695308869972251319233874465665719173014622265432887953601371000596330172158120798516100361819729564411741598654479101371372066566641066333358776558671507681112351502398176734885180003786390379792414260944287428068916503744478952279017158542049729964096795193623218493743597762305599249660929406615179823484612302386115453818622603510454838465095234094859301983959658292829523557302078297855802111495272672820410177057830760929443453624859625032192748528233259223260031558374939331740683342643097229129199617422760728821632906452860617306825297035941714633292569845391690156906803910858648996272761123675296241195569332778653102992730449016145444419446787839920155687580304163069848625830198763586974924275061844107253206759378371670061659294523222200458209056847891183799458419429457474608917995930257768787531867738491730726573816132804314765765174008007010398402468649879217765277669568220129917975348364343167792689831269164259702902301303544792217761783005930990148080265214902136073722631563845213386661376315616426973274824999190697741815400879231415412230945883970777849823493745769748010797282543564066368673923673460515681878594150421154761967382945352074149478884926832396839563265032495324426822935000872509516800973840985458452149154841021377031017333147178828321126474524141162115843136694599381566135282219992019274492564894393031860026061538285362413181029100477005878936693792568963345964050433068815065775546971012553864612814599907196527945403476957040790118839875725813370866381034663080850288247648208554329125409508305449523586318233854572455007426417196936367916024093196638466346287127463763491787927068289478014780024442822541015057423435916660833256885437254246366183938621841802120568175101117864800567745481112394648574799081170227454225927541053769984006342986363788460178342075680111301108039440989926567625359045834892225359770603428309091894654397984328119973133801667675059104812189313732235464725501179266210494736967001062631070978320697245748441399830105355123434006223424033806056649117177675500547897375575568706143521578806942602704709732899569775034127997599445065206495386007568658325437172992930638703003984263729718409242806067736463754817695030212882503746184142727483986970090249280574315404838243184126812551333460171532069647038612177447248637170745357007517597230590708342879382627515288082994735307135712341114025266029269457860786114469266512585996930849465236925018010775936225837896500491970736484349050681530789655021724464938594460493497666109867999387976667380609061526482899731109435012603284959670243841867465717371777563696526084871759830294059456130677355840186489365623485303868692136895389973989588482035850074135617667619781792712026535085847032364339831424461329187749526812702668097695165722853464259773506364600193197560924864419452479252849161281006239515424238863584973622241839531943280337910773251934791911000135324447973794180495165212743450657433636498695070017134222187655906215069306915362927727424181724338076838031651884458551998055758294716258730747455962686592292892070024161757528376305775572726568722528553675939938856862640122660139193701800946764301071194168404024314608613891646186676280035335126111703259295422222733269329783496340375142232674056193027796375595098708616981178342744248564459932205892941391499389245930754162091703644094025495808643472605936195577997810992074151052804326430249543504997104513211850000339679724377178500167602783538880851373188480833695430163866786696810974819496512979134312524086643918791812215081312712394236407552870039471886433478557563329347676236130700196536505849659783130144942710237563803043726617821886614576602394697501133125152761143772553215123530046003953067199197339037210407094940264999197947005767387827753755404506895337637669608553829058531973798511545345665230293847841323877547200762470369926059596122401402929970694462446035265238195856512007738492695758496637473770475300855103154818769870344157092284743366699068838498339010790083571665692552430810542923026292295561368811536191199887230244858320616307722993184765486165063072717041457012659712140128919518726256130851892842980451072993055545817596394672754550865935305761842472920138227574497397063243946993223098316682234695759739483999292910471714201436477657510589317120621096564222991761911529658254057881465138841695258885420156558798635357596116137477905774260384866816518391454199174116607063906915407148225085870559396305552905586955216137524717756177639206346103010005724184569196116964555383289999931426011737523633103856054925915412842949438270210202389797948084921855060628098511686384836648487091107514252061800336588554423723008026613331207986616576685411545656845003518023560189307256222568088562413793434979386447444300399814782369709064192958919811308422192942082587901757277663974187738913882007485774696174425003285921628409341536102639144837843328968029008583216557314262001557491341301997597562872608161480581392243350929172586826365571277558867039718475653888311575496661599167354487743065778823727546582055022226668771934329606325228259310699430814888572716790713385396632649898589993491217773369525161323729254855465954159286447310780859070330665699226471441720240577111862754247270012004308782008752378309395784488557478729704757161468015036021389334202833950042357486208004557599965501704296862849998644749661715896071187919624389060016855511744730324262214618519107026214609433160978308276754714995292002147133603585800948060102718973230300697278405473133649629653928125609623752321708114793075207698994657441729611843134367210204890171270607722695517277653176421415506684868306992502633088431843337945278282531350730499486318458573620013739617607203449148717362888382831021839875226258555460484187619726457287018273539193054993021156478908459984096027634682479656533617782658160263554592972648189203855361040161378341046131305665486339205052939732634775211272046321356168721450017458214198793301827057128628261918539583658592450495067903944287951582078306242742723031731828208517801137035487444010338966672967799993532991577131696380752001703789309813282265812690848260065389099652172974135854853490792543897860405321527785065288720181292400898507719898983367996151407864826402633383985982689771193938032046590506253267741587455936661655046241388972004607475226798864062424185564306402134333887073706576620743031421918741201520874237027120311887044611274248083616717572529961525266980132230793219533266335493808474986724378015798052983528132555649260431560110602827710728304721626580056332199491365766128483368873551798731667713898471901076938421383495168632620884130303536325319217044790104512918541516643139924607795164912067274832274030578521943922685072795648558599777093920928187418371905120238812610904637387733406781359859436544900642137901268768544705342810270345700227870845084169294442354112335206320031385514226019581117561330361818883012101526395681214494781692242457600562163140539484422928746633590048184226025194447102588027451610779767176696021096257621788237018343529826336776703881482043513298714422119620324872915829426926630007412091580873536376371980194695170990361122483406440810979583194129654196070824898541271886434931627921683800817664134852284001533349700563111102867867810848761699425024945866362629868868002885895140530133441772220395847813259858768341610703974968943421596647074147633185762968545923458731045175842372184885758283987006969437183577043787602414275040282902500223658942401636993322680086249922726857243506985965161417412401014384019520276774155318066956801633064388548984670103234044786593650344675524390986220558338934052458874007694954744810612031487485945063487444145315410219136720715856983575583692138196343450295168144005481411944747081943091721165979336416066939974431470240677666141254651947677319396324530718362950290883004231759355561369588231699157041868712776708135203846944389463843682363565433388815090140055695231388316397565629262885182477014057427317932136257848446507075858813843326757139241155632100802749445214437933728260690862492732202540253989826553191094955954370464806961907489347412463069410701431117483763819945106345861831191427514732988680450791180980542250735993353152817303162561608903001396111476709207785899473731699584905881236595121582705200784435238947996368638841380676650682416304380613165572622586722123972492494813529772455203499608460493722736235989736706951846876963882769261034483716617969638764280403664952893886173390425724285206453239471636644833759655398915352724382068281237954096028591477554876326714260101728447833657229973133914126631645277319655491642606644222945530090779529002973149033973578675515463253178951761927200481937392315817542006599679460774405567681582512737751648797741275367077396099698002805585617141563754627886121052595115166374214559271517637779816737361229876661726007791218957290463124051447887486230409494206314924635119626752903233096636885969100230738204072995897902595928743796904588375503815309031488866787529884120969775121533117763512769977787689805982252703863659934520080889022264759502332333186423393417231927933310550272425207978532589863385099619814914122733113896747414833033343461981169790951971426329788791269607783491573575970169447587234886821613559720626119332388104700053041353952705623271333389507452577830488322553638737894270353771621312649793721577069416306257657759953703642417185245096127639953658568028829226943207427169618789438587913661394632001891419881160246338013058421189205640812210785213833626724880386571635388650420395563642770282637677498402608046308610098393437543732256945976313086539620040380897110505241136645912416577906314153831608931682010813837474748086113970546790881509074555894301083515467345284282159289621630928374913827530769034493019566811009195317434140430032212765526250789129469133441618116758156085263049983631888246809264124864223962619011325307571936990928295883304691239593683372300462485598667161383545391964685601286623992514698082716382057917841808377740465437579785443706749775191533965676969352395536307837274690065802956431756286546870708378821535352132306670872607754470988935354335494121774143804701476009507685393123924296260970664744255237984239057792111891757712759395179417470554153600053302412073027785118092342057161738513403958068687520188128601541742373905636485040409178215188402292073739547390487926641801680207831146261316175332614007811540723389832872639160710580647946030611734476523674576272599336300920587419530301438570145223289264700961430876306886243335843604749235339658725415588608283790103866537015193166234626303170294243678742464420039972599921987948794677790064583845379428407461808013989457706656126971676157224214918918722016813549113465407729373266391300931233491033539141849379189280473449314676038957030462781337955741910360814608323811674169653972949200412988168127545116385271727754776179668985266236510429266289484242064828849438996072329270547982900788512152874013410033913895346846411551444970014600133610554891746786655868636741231670121718379351002534508640191116239046455619124859569928754506849396698909221997009697525467219173804422859050312582088242958016280571671966268753486935248639276437171604433294631013558449863858646322227315635778108707287210194196336994489071635983553621148787924344330366096880102610404710350416563738220288149643376109541109977494459046750620437810551218918053324266724098778619583425837553775269771450092176733761336896764890655636799599931758670495474934812091075705774464782781339269118764066708863459785898365053363625194025322409673231478157423377077510301542863575889939867327059156557614497503318748017242969017323901449785310231379224909871885039654913115281547531200846689266965061442246029953271305020003360707231444868916739528814424412272570577735444386046718945557555814954457848751874341993019146181708516890442785225322964331655103030490786062378294174944012840746245547055989369419857248579061005384668780553818324802102789412708676431105344365157785212524326055904201807215295220531594866033999673744249822776485646034240833130140035780414860173599374029417760284776170141066233840390665603118374086999834436710373651677369375462147067991465276778438112332461911375413497449991545019788463522479321049034760069433704293238694182681859284740150475801822008029065732605392485473136577987324101545309289964963986074620438886812075609720757879789460219288085247126150286715671724404416029977050904800467574260883977514436803695719637126363195910443387949556812963211439496742477751570782578955788581132857544000386275142293119584926776076658619062918652458812380018637533604373967137988104653303314070488042598785627718613563214705259511183893943121681295569829728598671095365752438182650731703751351100112366801290988781148268002752737676464156633222174503092333175101967366727167548924534316183393567655100148740739196478701146542465851759685508933943606935028310722652984033656774703697294399142319927068867119938779158410395362059388899326618444663947995875152647051030811369290988035346860537421867440881313574937812929960783463982633685046585646537836367320018455620076958868152357455148370618523959620845844872393813547343631274542640637270565786609350371217839040454611992597533516535351139184534947639052649678936868385414821626177317253558319906819573639628440276908872977019120725433896304050652300064706511392200761833744399771748053794091668637567234304499541431940533493187057507258701161364641422606769334075506649463019229608630645541006178521318429548071396691041111118722495506907703572291441605122437297652352707147440417705956557146221386086836014970210813092479320593137001132647817442635509187827240003001482959656798326166932393124059349139419740388355628367544924758374509053503411568881463747852562487784031945374904712541067181142831410145914651173981803284912518504100809643489817255360365199716005743035639176431516441487555061306336827076557592303240126768041115380559209423511175396103486078353534020756141215498680369198933576747187548050770106803953134416992030958316413683830356931974073517737824685698585727028282864636666242588457621497167291954524624800972318692771081144624687993185634862060514144081550034756610479724821815274296465230101038073907806246589795346874048409762852315456477036056933374012564814113158844707244501085613132823167082501451290039092230139280129159980930902330425774430932014902551046584386858405561103747916658794833447799579342300218800741415663575024103086252668413479029852064745455210212150162689825997213324108217450474103235058021295627265851533524688995508884509224521204730805994867896920243514911913917871697735210952849711826998298242930564150469719683449398274294868869445706050152912657625962201924415762511606324049408603013267402876754751717818456242516606234541005893970991985045546542105797277570752727886979939532727686453457326404396865947651257849502445593369477601008128478811013351587844216939535096076945553591621124607977590801495232524603298950643499142296935860913158220725534194734701976099343495804190431232638465619651304812498993740997483412732195084495909986534186661379953215743474483380748489264549819731034431513017481783472045641350895729186722341230686375735180413266915707975697748581377531256750557698549805752358148662169697121135486558800631630151155862234098861875379827540707754278656975348671260895523751220525883275328628501677465652375533133296825610486094180752161939744272855303579078849052761323146931343874674188006872178235682221603885264024101403557257805347803997526382509540143069455947339329203111150009910213434994176851096056157428835821738062270334554264981520163676085831303251237200480124572661914315690375769536176574550322543411243406278262689842695698603770865907518071029893117043992796288781039017040793381323124215422164755561460204715067982542657303921859848879197912159864390587552415196830869301440707719536569936591752723550294924250910706334695267251041600040481738160900564710750870960787543824755042120443622469863017952043385838465351303671221897959855277414126402984592874263261973815614166292331638356122776018820850699797430063602463905328332725560481734674958138040947707693326504046626857869322524203971872044651833867078697641465816123171805162301254833436754126681123516400513625402582637328261943646753260789360678607949714044451223575524935647814308940273222142991577246125597513765485769102971918780770886568271855083067605786763082015501259212986278114613176875990466427626982043955807633948627786887166069841032351670129378652970131380397263188723608782941726029969984579579675327581394837869467311792502457835709131436820573385841789397626981589950054488153324494804557015449350860795530772419028377970779270071570742949595294365005741801623370977017391718036484999949164245245530091814587285270680174009727758581384404719336103549052556051735505944853117448464303055982745370997708216578066237668543450798579390880654136105640264699142548198346189159983869615136702025012472860106394874973969701618929236630110022029112389242399669434903629001159725387745515731925147378171789455629238810841501887181584647288897057159985846787884899016138883214112535168498002888766827834720663470917488413443671432886864083909593134815431294501284737592607525207256026461036718887103176889520449343471161057546659837978833148837323792727293713017675049194179787485398071367701836455655066179219212845511160609608729000959502914261207230374371018295149491363493913317753712674313711166165387733551118073999485925183021297059763205149068833661082487274381596502271751054187126905631060929684628381955815818122871669775660809681548741315725044109313113550977419402480828479971294436282550551008307996929488629680354678717672221902971535192417624717708053817707091774171289538759565062345016053465757252074038671436425267075443225227718882054154365023091660734547815465897939435807061486937499362388553301250201073422261582282568772248502761793658347585688009686931652778628570443698475488398972160372592884518488987662765257412353673170427616023244165882225035651565890082906313124814218131863938339225525825717278159494049789416005539660737042651889818163202562335197778835419217807714220885559930501245437876676399885366120344641913577051974433710256141617320622615273398950929730283588522059497257580632672249874856625737432320420862355943024299088885925572100895901434289014717031481974069025958301792560374471498083441683795463464586914772277859514842118901952102735098689342346899103878861394776800066492668057607088253030185975174336741878153078481456012999799677807294833687970408844865052531771141838726301955770485256057005331042123726939809544900730136925446904129499849594827196943192657102472429844611624275034683750278153381764388848026839784144216329262633550218251516722996443363364748355485696840430209591339699455155409702402312381722720403114154445832522131700194214670831292452539054263461474220397640123267622115176407515026995659507127198321342597068093438732660866566717734798337454094850804760840748842113876851309772987964869656087163049572072702896834062411697356602471401483395015697349631698278154784102557197453908108623077902033880189664397462796426197841077617229117953891970931269547335040677559097621737922649364943125446167429364687547208234985882636952689061930421229154224418237408634307604727621220797623779470701751926921794862440156701689506112777886500139291258879015761321669067976464272344977621034176043372971554978676216673499082091412265603967285211073075666644922613226892419977346581502762309566934731806853565449733767279661667681331648040466524424096999608672880417004411907595773957391307533821091524404992841991542910089929085348313291093527173748890193423416334589518605156985429197351219051760000042667100229331348639633510319759366742808925269086653588715649958588694095371090904558461564463769832518205749473736368590193425295371312115312362600543290444364439163508392336244289137998015455751708215824046753947097369622173866446380447880195124897404194905526685684098942876881978698677521487647401731702398988550913874026156057865741988956045910017154728532221177459308960667373992959849244638956973004043201246878410873995982760391783402586474964781764721770898001781064287837871117023397351516514346305109708071492367817419814409892408453610828027143843917030054049755870875218369478664851547084625011065199734832690905940388113721489906935551817069876550605719232058401408805165533122674571992390143820157754529042540524187408801888944795440401013498744314875651071451861150896083333488923943929117258962172263519843766000462321131704872028182668495372520683343449322363853514014217151797586108436231142024588815655604555771583368335150960444532937928941241454245970510357552173439497521032740697473528512385275962399414605705288330190434511903309170156373381127178683668823763498639340636432188580013367937416798754390289380165208244373461846562701150396073312108735813098235815928128471395061057184431620674797267129649503349259653985055801412772692366354993997510412171271055931616696904363106383996701661390143166293431509283728477857503000311904134529720751203923188922795149642747583933538516841250138398616956846460002603771801133057291973828339879136830062436732414776130071109707622755736977515563231277792870122707489401814183118811502828919690834558198374742721543240429040444025556796465501815553095011161760662554885081836752653433018151552055531386656597015103593825038155254124334531389788963242773239605696109879342159884877367685770638822297180508693740510844604838937900802078560651047415746826324897397392570641298874873042909533644873439479746832116996446459968413828964902880203571933748769475711962728939093445809191870326472085145233338610394373296020375842697516213605999654586252495569528831812751083517730049847052224217741947409998971006884855984590242567716041266783111311081968614180850746398374657312764863377193225950164656820465323037281152631599470943400358503193437175840835190254533889914659725323795423998873621237673643376502893531203178701027727920642004668826236600712256732340822584069535668739577611261174705211889571850186984982781412089839707412409212078923001154964373747804558567402143089744534348152668963405318838621041820788335675685915823040079825140565713716693387337726707792482237812593740357758347163188329975788280884182581903070873547959176350791219642776893173317983198450886215478757911683270589111819992082661406982371566171831894102507961599152749651213164050166506390486073604326831063517965870610505423163577810343678943051855718352223040411249021399472505913384026745348744556535461421163381284079188161798367855979291090437386848953553965775450681417226128795439716385253640951205802836691756988117648821740841275771387477184450481935586097604063699842219294837362395162519969978473338655543201528039634713210087267656642807291120560911920248405108947459670001880303652527182939197926223816319619499374455155770114646321970186748753407296437404388097159555586390629876287276791462289821515361076364344780656558526889268011433657733396410337248855204955054965469629322411225965300332358836040521677777456515818382676320618197860426791824093812589425103888661092640425425765510854988268778123776390779015952253246763314171556327267772459043484943397969125330989909614727678734051088337660598008953799527576222833705846354985671324946488385751093752666243410944751814174763402540591879087306641898333899226337110160415687925515317463772731454710613722412036928737327562026320942691341279070510177872349755261354245428379549157076307112551309760404925314425075678604065467884333212147027828016338415625406179982950124376675065506036253231686158883639913588502824613377768746117307575377587309494121714050737709385961078207089824946948443393453489841903594661500768857061029551010102777345742225453694626948411859442727175358436956281034377894047140917407839338349393916448147852293637913381945251301984755218495118278089084951447437361309114722634432459029470619592039766343405697438461528021257865266659044705588836523145663032012001890755836612020153009851955370846779068671563784868016977030417697029929549644337319734824134869866152021750814543964877666802525706972960574462590569723705671752044654607876137241732725019713111068503017274047945510701992446992469518273581523767579666976426768397353485108071277571554163611157001005111558384569437887160427737987062463104880630812407573054599838041856911625466696344799286599714355703835834673928254093002220614759595794901355470586244512242749780728376084274949871575527609894365592121194022601897023010943590534906085344549144712736605990791225341825744420078036460834841758635751612483260451391920355194783703151109060898612040690539267688356842591307878135682019583447343479189622439845911288595651863665838851981649636170196681573367872433341991236804343441995941826040219973828187860964591423385744936352486025812160965342245459200931285237004111607592678604340501010347756434964099819200031919324648452252339619998517853147091535123079685049095772933489605008635490922840548758214178423828803966377839849911325670121338676294910266378691071471114200654199121881832171609042871698776209541561952522264964243159149352157408838202672496360302603762011909881633150326242032531754980089449515205474966039858365485694789961958338224144107024281131033817749151687318985946292477458842295333787723559537041794550861229300101832852025069057082787857524181834816332943808628974813207163035208827734423600753300498015040531270859722833829156015933300093354784502276389308556770007198847493167830192273126809443531163747739049055461107634910640056534589218347609403051290531348649240309891388775928390302357818411786420056394228953021825819117877064320312071950444638556056021012906586440104813901192571838325291981250462426111570432886379004455192120860889940150364865680992118546203343696148013432614373755480474534965250271663295145607546911556481179841591542074916298175315652468194418204450826162804210765809620813129827928686937583295990136978695202647350009014867704109431438057193840289094105603932803691342790371874146375404754830913926572173424953200137109050570982749763970069666643958074019798708281137619843821434219477511099952068015049101202943058619410499497614040609260835777226285997441205605356558009572237273424997982524745809768307780600983569581085891269635857881754016094474754730419042917631498118681724570747152472787097301720504565031712776925971462541689961004670523942519493594037828571156500727532322142017683227659261168310837418379840012504693555727413662249247379685225026939586958336175416817711428053231596802997569784472816689408752720039527963573241854647968201119669429328060425655254364528989940060629686940505241594685483304912286204191189135910293454814541611183543770652179755240136848185668581537406485156373308809857924659371606887064862838163768281957229788520336744054812305270865496186409230954973052995441089746037832873896775339509338063720686922195778545602689956875043944868790347860553318574326735682746718778356896811179627976220761727767397971012590607692267105225919855851739370763548063799789874119234589640161647621167660146084694296567685180574818725104908841072967786012043179057436030850991842118985443713266521757237243249433251042979659701166495859688734420320804660975757782754408726726233794320048739968529472591901328143977071496963627540740724306891301872155579919114487135304801153634262410586841888247125785037410921706267570763073064035915074718422515072938163139062724048843609376669104394425552479760059729930531263291168244138341559845499410228742156582757320480094711396267673534536831823122132787439504503772061364154469316407609877749331292316892351014674496913075993686447949710456081659337866807941228065598776647048709889447399485748556896731088238717365150271006304689456589793762061769586523612522990945529015883822643384939733496611157344655830602913169899761867887364921771297165937319631773191884042086280118334863885471205187461435114198702258670662185499480272978651983253871193522836987618916770840991029700128874392989866500336622453815900787309215952987260096590878983670924635574421538037604197537984484337186318824890359964077582002332333588238898103533405371480682336770899890835882310477603187511012804133011057218442241588852050773524984539830373093625148606444668868940995055834216066268527459979162346801519316846190441630505497157470593262701988946029213655367829205801288662715289152298899196147968977840265479034015458745844288645899015412255038290537368061982389591049475582062071567695589808001301337993899135223020226955170491143530588979855087005125903141577252763928460334905940649079906382208439630386345724898800127738050833713804461798295611700429086398393597952416097856427235132997992492714806081096551940523231286592735185453436087535005876961381814104285548028767369974843733874140479814137338641252506131174432459383966811113092624035919257149923339997028461156753523491213087461533526265847907460966127042319146710543949161490961670371083551123691467938904251524036056735647161093919438059593101623580263753903587033478619475587156726058346613568089677121775317349922005495295584229087414276555105744888847561593809629921384967284251548107400371062763324243593935818937557420975669091569976585043158226800842268832069693112892163811361468756665361263729724000555357347420156896224872329753457193652071182342685727282000534938766977589253529242837395134229668258488322215456277426535641698046967778680902965028919560582678553491987438725241096689652403453661360887501915099031525339533461898750934432972122438297267822729646689580529629615416994390017906925791203332953735080059770935736335790173476852354817742650673588879664540588243385769174889594765970734573236433507148774959139141900427287487540909683977510767354479752633091534151975861996442884914625633777841230897770710129293756871438079277523921184397466287394431363378905376768185419072703740253191388656838765533199240050844052158235984903694049053861511919848784701386354869430952977915149157102901899478452807364664210854099621768817214642163816967368699316312998182631827823909977416163011816324406685526589303504296043705615679632981669805597852968701784406134753949630973494062290838158051933611290687662215479173795523162422907394894842401739939336087717671455652747975988127940929902676996264439468941641295953113261001953727179373489024571557122720244028010681311735551396068833905150060204018316119151282373972410447544083562289573004232324151893933528831606763698092299758975056250492519636735998332329597203625662567358290298031205522064343255654013525690523378423843269799800638600149466899092721009098253332903710326756105925817982795663206456059951150817263275741885926244354279941644944279171289742350272097331202481455368618277956242331096325932804592281182597042016576637021709634888181024645064851295824824646237371796649271619752569990355057354259699546949538207301273077914155893921445374469146152829515138079642637964756901172856590255541266081442571769720630562507362572391732518155803331585617922013710614510130601663627344422075725115493060137555762581022477060819890493548572135826705171683925008992587442241827822393608831381504568091831296132033551284364850124351092516773201174062461128345185894589501315558084043137140215371495755706422976753452778623992003125317052518530621131333059087224653921630549084042485669674943905727034286430472463919789412717925526742301487921778157250808239488108166198747952784063778314551177269145974975461012389541628883510074313360329220748402533695302004258887786849376873306697307218541773693466022685762657016350674465861273735501309296411313247906046274105354726802143847252459272086041069828744324751353208717791747054822910732323968952405388101133028288904266786441996369081202697668731417822266804922194069211883928330076330245243653495438401599580765068215909075195406214507142301164898423861493441969306404683057080798910729148062787384996828254484869506727140965115209631601618455289293132583951437696443483984949294114880646846803688875844311360553750164605974931781552995994669500474624438903792020029631472106585431251036612146416430633446287583219222687692216035429405556631142552866400914440345612858532252794636421842597541305388867353089577581232904304967720713241706679292340948652122874934951724429949760339190103643192003541454871433325466074212651346149413597429406780922391772175648321793319664554024074264838483971276159677104873671604568102381898792295638886462051420174306976657315607065026279702592029618128028048389006869826388864595998008510133022100876356686183483864765243948811845759580282937237023350847458686742565003541161134193644899096506543607339027218637838964580608488029695676027523922097645281895462801705846294360124619816330122082540510501165509135218660212561648731699668402589340078833170929844955564503368479453572794560515322172279735737440009049214730848691067709542358634878477592519080586534462991373513403322507378014511649910822630688233180670764509865271611602729571919857223534616839042856249349581524280897660847805156097083950488504087709318483449789369521449409698595970132034589695294028368863152448958858874302578407791169967827822628005375066860047800953795828712601852764371324446496647840039194050867104700613601882285053863706662334881117487369969943440203258808746662077164934682545356155994089650249614911248884166388121374528594961927023517719342133536608404481611020637927813526747106722405292662637055891668242701940610422717526817884713001422789433810031823128133963373248220833748239294328469199206117876047414858970852232712457397393931832449267837942206271591788267292356215895258439241321348881782346200542509014242811099731404106803706935846544103076226166228998699469634173884534135089743552654382440916671255009682061835154128709512752287118233897622291636916155532908225747944834110402608557875576314461780334781404266816084795877952158414599302008600189286596532315409975762918121906035937636917521806969084911832983904843547597744007499233410622746988157179756010375519478037299367248356584667234954946308852016387386398402112096162111410703318912995449540718905253068073576940629700990011967766018772857364574194690058893713989673007767824936811360338113098326851202129099476650860540250692879221655950458720735196112413554660228154715304910621297969310562901435372303997673909931606840987084588763854514991173796846163248888978477152174822901185131920787740028754587369307427890777443910072875088650851115715255343466315842635110508829111295258008319298901895329517893865393370855306509777544200453989139363019910258983289391544620666175033815861186526004269039393994879280960264963772851140088376634076753707662556453948873945533105429742120421976503550689098026895291056337573473398446703876202807907233916860454386382623314414854420413937392579151174210978539276779213888829653460977551657246564904831747341686962098873156847726994575532819888846740020481390533284417760794344007184725269116166784670253964685579640537328961367367213436883335015402718056610994282912546778646347134488500649411932338790115975263782718938872124243530733793283328534182292663387280239438489832428660317915082643945782734391647175848810744194762102235716920634951834236027453954546213611910933636936193008750213963230862954859922569303917187648741495447722185600708384840902072337946928786232432770680198074690764578723426590322240137777262689882195583374117556051201141192257424976347095106187883831639586942721605037820040619622116145527082535512666344763232231764202780474494003681556234373985997854337504470008174207908834211646225930791417423985799872281592956352226563020037875918345450363911936546640053311826877980639923245632481481125012028508695189166958798120628590456740158008945601474188655926180621374649496553795376476799260610058052304502642253109619712777194041973697682895738468679899356741812771681480142687609361367196215565143693626937808042308791601381232853481409624283247544926330220802439770585609413412894728390292649521334722500240280165909378164227993520478313992395670846238341664863321364760731468703100178622917338913569455807744241178579203535070559669221233227521372064936640210782564273021610040483856571271026265262709267751837252322928820447288106450030455332060308366430043685640850250314659797986830574039302746607043076408111664410733494549649626739543843421185785567033879726549573941174859367706591196021369839501449209121853576481111057970526055089820093921974537333505406520214366869766958009370418956990686553516020058057441429796612047231319979555547255408272337062990186429926339214292864950855092143615411291730791003037827195373345788193642205074853165481699383197722393166676868636185524265835862199679004273454197315359898155075461447539732338312213087486012151817277137946071995691381282268870163402822517844500582253476287413106092268148809699598012503469047575139702826665873585342420124406778320302499414713057607399650738236026369834174389663152063290665184964335982113269715855836768106398289979920630294147665252270993820011593887125129704671167627827704045202975484462224561364446837946483543121992392677893211978512350732038485116229584138905772666426516104317534463450272764978085426361559022053213450196482774191244775047876697018282771114666768389184224410179571092908562036582870630537210222087725758237139528432413658510177414090625069479365726977699944247064914113396820725036397264928137906460043669169143270523386521258533349899184025171627251599830119611983869007446649575420082341924051780816855442737121790112809186964512295264606080714696342950325095384368035466888492909226732045337542759697755183089442832858763447538987734437368246826373530156870056163143612011924794270928346351395216802765076463282683849548298605979839555338945489353115168511677497627817104560691657874524465776335300278855509074178268165893507740467133357086392546221888279219729847054712247469091646827956880624177499932753964101427191640632116802932890228554697764508949886939539385452362585065260672134422936611451753020152113111013680012254897689338728801461998994908274112681290541472868936057716207503662924324760962579294683454341603737307082594857081947978417861466625942853568254773846802312398174284677311625398820046112248665040905795542563476096786177395619230168716871682728713403010296320662371989385995476799987740762885440781847580775645881068716951567140963583437956781323479715545906636022395131414202849831855136745904936933222773104071275783924110565633216208468963590604468743832496192553869124650134537021792825777173812140512728884610498643930902469875797787545861690866416312149344668938796997816694719903528006157583074945200327364105561431134437348450456829245589531717611645988513149792726961041586885415189956604241834286189476246256267664119959576195328186342773179924242947949988470509486917820115858891554135683257156344624213773204558195708381207314723182756645771903574160294323332729891842789652662100256643002740699533941323853921446660704268776592487655065392679702268843691382044024752345810072624437627506251147792450580042926091267224428519400089679825460627601601622855844767963365710448109756219035514940374944863409783549062014878432100730818919305537219434627769579138673345361299882071984867068521397728257876332715681425374822483121111607676252133854145250403868720039010588249099778320056182749954201856110849420090486987316610498442379670733239872368621134539599583267846520001869917529296254578393721486486273538028956557349177168846671451201775021557253185230258577896666875044568329690071443333802240080975728101475703317927135053898093937121108290554212274801495958913589699604316850737982147949648632316908632009682122188350201839121265750278136733049142519893380263851880426444554410118912772785366839705651151409684789095437736669576951487630457371256747765384650124768905932798931520883704491189343728745382318683729825753522017825802470137198067363137562944994009052307324699355165365685527611805428007966607611721662564805334201536060040279523825485344074488227931886094163631524741204753385607343209048172375538600728300774454855346836618248255709718246359090299344570326780481599636655367555389033786568526278702490871747917576296984036827923336557975713999834763724175210841868929522365972886345160158430337507611741015954802888294366908378924355897984407759285277637881287215577617041133089488542727875274697545921453740739644465469332408207967153298799710559451876474417838068885170734163317665249182854022820093248121577198843938456945211793696511301708635729806165010800506807395369292553028177437014949649539619094966432778655702967049688463346485796202298082471812092103222933393182402460876110788018034029446565339685047695853482991193458247452644028502211797843460168821893348558305185943238602524238752318153081486583218464204353117655307696817523341219887436719272505828616151641905628516478438471725404915564705399852977525121596964391902669509676424756641561519156741629884310822275714795416558869053104455756885590947794050974208409152103472268046304598173639735291398475248105157518320111414720416263193739013057188997470036191402481757896043823829703044454972804519514850172138646405114280317364276443912340893410421916755961828524620862776600727641484857159588156155540813276180915510815964527845056914189466199547092701315464388551596459141635255032429173618354906175557072906434676811531150955204082384750245237298360985166684411342171657655914433417566475076078674441704290644866913528811968891578303341235897593932493649591751525598468263038885455716442645513091673023039586421205342978474198855928889146869245450459159685511797971771484604346805994089301934212857435731662442143114492385035938962511067876270214852352682997687441786641898760962661306416330959036253781909573874109323676948221072075975625113240852002734431458902576703446224156816528863856768594463775989625314661920236458783031994826088064932804516959639780076134427591875773177886706707058212003199703992500899467473870661429536198633961235130203817382029952369454358910726249047536397750788145700360751480803150584527739672649647191654148734385063351192031355925357762625412577453352570680829780718063379251352257203822335701287894561361514043459353142043771871830775425529450503315805983938985199511429970741058768569779645784537753088655550173120517417911114479466847874645054968919735234372157427567264608864283070253664756541220187094617161957821338297156379286562752860367214674746741762731785709985843240769246933145794124407339737177757723893566094525488110125020454083893189399977509292017891078174138378179666228311980917404780234203097623816315122477951068854128216189594758369229216378798451675989643095558664100197949623977122996313563283369019008290407548611409902712942423894318550759855508951085306150769510624328360754229608307309941939383576305144574424238766254418681354502750062327512143768175335532847848455549241462227337696898052589626204741309991422176089439761548512423355044468069031563304935038766422012163513540990915010947803776347378636699148907556994466693027122418576489470983525990914889903634087659679445905832970521673059412180013566485300466171286763420265930756239718098946460403064270740209201796902583630832099272415442168985996362054991453720316432836538450939038377584674420605087817502562751438592027106195342235175717303777923391072366098581336926796361560885733986836114649835046481422631134596205615599367790263815955841629619162654192635196827394860254102365390905490151931597637252778466154490306176362158360305960566034822427239959785669827346930012230811647447071750783355397489341829360888025821893901273404660267717811650574575842850586841779550924546779702668208293083071064095130058886552393914831488591531986962467768753313913049002538574021409985854464363499678528506916810580829475284665385209343151255063924789052815799409653008893671826118825833510355416699170676238040245652633774339781375017815845793861295787896110899992207198013764747701211156481248392252558799387569194662521836783641020544735790303130513338257308244818283692801642151441398489536465520896301527116727924016725592530944465412971644084566240106120800239699487914250373103251153077910057581165199217838875468144192426981697073838100352324575261753279125238622430168660464268955511076567101831141124474012765020788929623413995439686417562331315050863510694498459349139042706069050853085782905857850042218757888129222749843325754123644154954313607930357904473611523662018217502343299287229020800135446874257464734491239135601595807919567330032680893501192180716184779580516455706427173357157593090344947423066534080456737367942175270251860692540868543804789066424308466916977555762042192279421711435211929459631741434187450665639413171225337818850664072597775730714307365004949705214804159733444238468835769260672050071599461442635486036396738192623672428360921849118752279761224738913639760062170878195398485721945376221795758788082954713951917492123583265752745825327894291584798018002625882068827891774384496284327469753664403713283837388095357610577959051774434210102868371942924166646728113686578668871121741179627924971774376305138213371935966419201830049230967619781786723850625077706620394769009167585605967990170186409476472575691066858455930878957598128050129153907013618680199712172804002612803035833189893232074907202697964615246305319753486467395346725522126268422960779605809690924424505065630445148384365487236569925180728556111247948774293843130691046304101405084564092686729411472770514155724090036935893332591439624535017714124424287838660784761300602683128646766806480646161439688296172948778069295231268131816991276240874553858690654718862577537716519970789294817770845170118699629774525338650115231545556974486842554176120245942229051811774281861139622551830785282052936537502434407234465829481679003912438711629385786329256025597741537494702469220991985742862725449018540848962302322459261935140199010980342695064350391287540318685056452937582662390560473649199944102217621740433691294295479802782425810929150887474747301960491162504447092516713627825599408593043510205836259311222260152004446642296109660606882890047723970827666601842193194145966720120950392298607801421212934862837481604122610949899828289641606099521156758987582773282658440613551563755144340573631663491994193323596375629317673583800733160206329710325474426673727078278243929492911291109226661502913445805050949520494418378057293928960832609154806446545287217224112585311113491201088872731622924854288089554055729373636174809415361626585246494822385865126909799017724583273863935526368369020074028998268409277267798929685601273450236651250247091555922702599978467205192882866050775301034983217608342291512867328969560284543372669662749072315190027347444384285266038764680828557098808923643835614219475291459993193132736915295046683234131009598514498556436290228428253574522984814046557965382851320412666310329865794166226711837571522411415356449634888627952658189975435573198215780802928439497338684465951596757470114721398155466879736151515449007069639852212821650443659243308895185493506235731329731578584426810822369338372708222745229251403572922652133233247932269183882921803741938740708852026360246519241331115385676254104687412178783240142023178079622187620966209251613247186847735778256510137868367835242566909487496053446981967760418332538840636926788539539246164395245054593076935791830353119581429588216551712626448387364874113916579480737253564419237952395081505477624139104947509558840081367800275430542998482983472068786997620717223831299866142742673460043716203637202517695351374260201500122603027580759068796897866906168275975534847127122925119589568954977193855068188717949356985100007550124211597078140808912187793956961440338145697978851040545639430455082214284294705238758676260413571755651195570897678688807085518409491538380778977550039234020141251951153176409262644212067096278788257121725538144583282960794790805867920039535307500739136161144750090321099748709821341761837264434914576824793738672482332160653545657890848267481914271501365706625966115292102970560166165771410718273452344865888223710943593531407870500773630004239157121509714472143418335224876962749029365764081209180447757131188554851463473889935400429996237039558334287940139360422798005684687824900561467736691978236787080573526830815300165902417859481546206015130156308257054656052126980912636689968584688137037564783726470946438258147530160614966938041090440148966939087256713456099140078896455381976397336166304817762285380702149750769412557999006257923176561375859578349915883112855252360690723038607287884379087319029062998677193794350562611437562109212521051027511852019636237758236899657033649924633177701386335639304741406962693321452687689335331728073916471459185842630024398166882080246308018151767557167690348368156319310434339777507732986525165227722535305362415445848197146063404156727580288518613501163029312722691167277931350734968977581469379483269388237129438750751667261228199456401815844451826828259765129421320476587482412960009439438093941413931529552165622291710346331042139103390872495407834671282721765065502778016364232876627446883639750301876791873384993072726063685259431658000937974116095687092181767003139203659939950726332775321353117689154714600721219914463621056765946205702835022535533113830619928580098762165674481201619921741687480703536945158211906075103982660005107546411024800733280446571192464027156728369306118242933469463268602674970267123758732269818891500797327431191813807594428564194886999105079361182686562865456335169974581370011782522425851697446166808132860883468187693832977714617053779809843805081647949996993483915322944831522518308259108484921658612696909296464150648923362948628649906517342717229855017559852812655624863509517214093524762046913816957608699357570082904550850144662750284142403447944002095591226440780445522211438839263427280113052208597148971336848667336279389433435255863367170730446192780885069952330142653797971784887732352304397943416417123656736268261683419248068752849187393105422922867942545898066892395507165923754225649365785171482416617770368064301331915249161013625496784136145892217920076081831381740800947919807463055104075187841187986256887266329125971542473426501949397865456613951208625981492925561662876656656538046894710785401178776213837872247619175912260418420549417031204263630744397059274592189355105604102619758713823926376931480769471257455739046102002824569412857634396650622139047025800731741169374695028907196195656828565325339476677258295599453127592446551139003625916878592605374599834362351964289675560922809139048616717077632477042519176597471681263595950090090873656093418286983652443677280982048398345311644930688326363615202667246231981976786246454627774660935686199439862409576408771974871556058781431280407578566940331099067416868635997957457627528201693846733520700878903835603108309357353010620602163341743070500454872828154942445889816016351433229291534307779802406756834025233229856362778477013340766424078181335735908921838411523056340341327415001969529196798804772161736765878715560355169362429292804881022209022537967533976331059661602701869552374440793729342328758636723008692169522530947583480268406561960902394166934526380464441040665467383813057320395204643010885512375048440871566978539724348618193750848947536064534850121268345744214584388270849363566153470628658170063273008206837378080363494924314443788432816754301499909433004795854980802515161594525485179489955982137777665041216387715711248936146118477707953871508240696704187796265804359697477015769996233804764154622535823455914630448753682594568013531055081623472894372791293015496832718064908552233553450884951819089035984965208218653131799266272796803200290930811810945584289077129548424412431205570199638696209966548697066009339317255913657287610162904378486915196686061973417387147037944947532759908888974674266464348787342529965607794771526559558629910619349122382034614557314931112136094311228079476210646583373471885306031964252344346987618106773260573013371570947199494429303858558406781821917071949708862647226186136082875030923603993445924840965393115423275590621823156824902005859356332767706061616391021196451305214279874220771474808837189452583434631222233438768444866131634318198602827896134430504434644394344967950075250919929403771972397413884392035393696590919940561467097927961594317058297671446184640958876561996119736562880411255427189018109514485826475839317026635648672053842287340493013470088294746241969041923778942631913619403317695670595776451080179156354958230023808243650776644492375993528846551681819399098739345812414845761750052001694177319848238749355217130621801245223084489389286103006361751476981573035686822505206012778021210479326790174719882962986171259238138635705628530803017304777987292202194492168827779744019969217424738491684853407922457034178476132669129009256391640927829604482049403860524627214440907918191266633208419123401548966609671571815579379367037008695145128816753330109285741477545537072351296994511789091328931483470368599438926166144721521266903176544305920131932711308193970846583281391258907976729664880579814432513813868711275591554218389198300453431032877010912579225682108642070487537949521470578047342618558689984124635735426184226954077257848957949105905462583402788862343302280011800419856981022827242803996580457746045077340794883590336971472832276578514865796482107562031680575789018309759861888799406181129764283569636503367766777676456626759980876371812551813071441028418471200183737183736440847021719957240500745108645990766629517910858880805967131919322881588617437265567713264081917306347336597325936938841923417289016316290378835253899079998878765095473695359198302666643640874018421528100318958313679178868320907539434282173273175895072990918411528366042898536929917979974763170338181930912092236294910865628889562333486888274792685660020203091522766929340087247785892189302265636668399523372583866981869075508218852913425380791729491227534461022902035825265946759833554568400689283948501935866053612490895126643429002398527058988296951670747677053269050249949044733528315961640351067247243706139345545497997084919586914614519033690623310700933534068830973150750336516742682110375327066278226479460266754897935826112875077419751135399933657283664381577463260092842655799927312834210600599852485578960739276550985932393766141788213392983452608340892942307867813550237367877229468574827865507624620364447758664477234808078880043322463381656387843488263046501775467347731608753914449092373570522849604987483652019092497449324405990010862598713615748302386021779096060112980935512920952827275122305612906195297229331536884237382968767490721973213394501225437522223514319967200956196363266448661519887193378141491711906791530105985817856741055797594266009411325077998586526281618450150938471164930716384684347566131692108185412630999595756508330863272370644845111184094185178835147528059130868495805370519226764433439039387032824966109313960889188676052441181383896891507987573368445560941742666221824518026224741870244643396548856104454415737648110969333596288694534339483312614131805415491783110059685044059375201486098801815378670524712537425763862674383094199559068322776958643752317598273625886776943201443750519967039821794919147997935234848169194488748745829234186496859640149707786007980998279466250636894030186383261982867513152527445956920976617922569852234074335188806455729967433131060543639149643352031391104692451421691152692104579723136476248765413918006568500400296972895941730236692107309891944325774789526239011800721001439600932390102147198107642472575800215309471594601254108477893864781997159409186772192512299915987742813652931903022504107143551966507335853796321380115788648051236131547471414577043258093738363937862087026903308493220047203369143374424536570153012222305881357433159578729235424333828923071987600956426408169762748885060162036017637155002832549409828554989845014596496182553285452162477065299353730378652506265065025464345544257394165324055770647494636189647885600747780798801098477889678597378980508360290796129186146509413051179177034005443939771726276781392098273981558004755405202327299679049850514316866606337165666047673397883531725659121241137416629675048359604698135027069646172340898975263547318097418452877213305000330697563830995774052976497583415605968573657201456443648970868449876763806770003024878743297772582518574650145626717559722861279939126870187932677746010748198433321388027827345600851525224898089531626719434418617511040948585447999940903914008712701651275619087172286975579764814193355894211935542559802153446281314968247682870459563652167063759549508911061987588254359734583431626458006428528003036615153677793777817480356252276456139650923169921723061261532449036576033862436899056132046073077070802315773683681029214538630094729216529780058292781024061791101153696602202128346858642850106652117226457212187950119066699903298668168940543611847968572809158083265379705968045270932730024376863664440083369655626197202654336025517315763951638978642954662747723756748101644214634425275753078677176287599394966862386491182798686659297221168388454137514969787072627761781141260854789987478713910029788260906375005068098697840252747742603527083256495961978452506202106842422325162752375230565448081467169038235866402310674925434798900451474634970405651151264325215954949354777618540452524581494568524313735099615510957701607294504922451862258122605017906571819095020234640440114698394604090622137970411451076837054577208377728579830669689167821446040956667309123890160793228098069108628331332376482302216064254834973200453724651267275540408199355130990338873969557972721289680254859993710334930169238840339062057257765186063431375602583937255813424693825044597410792007349445458070856736088034270148663888873120460717038323450093250394664640655090386103213288823416106480949903637079624437034347598130385856396332930179449002882492686670027688493870842715630999669542363004198920778152391220933024567400361836119471284186094915623300033858952872528137127194027142056714153114416915497419097154352281740528741049661653629379233645836646974253776017364873181870656197444387728032530343737627407862673828340744600152749855768918798647510105768033790931462643877087005925166569211735137134272446272522494355082748530156174797544694552933805967786807727642143527532522829212711434596306411118677950215385104014767422435775376412766967845371913042514465882190798872147000018834294672016284376869749198826333011628695216053425921343462554291531064010720784420012882598891202909175600338521386669364856904629038195234576863481536676838310714738717690752083934783095196503041057707638901996323338471405287250810235785845839213214896367432494045910639463582508779035780253775100775331041604014452090738532463533009708186014948346231552618863051379032453826501922221206515180604820266681226276931521795814062503914570787282072457041637476070865517683391191604924039499931168830671039046856929065300313402314092580844562851421301177728577721067343126965662916516580916264270097332641018350859362706363512257491549641737111298357783860801546620193567351431116397800394728885993322551902515327693735942025286118625425663537216121703941262809927425152415940392417809467410881827235405215714719307584238712204100021038498509008170129449253363033802546049507925506577283882640400230010107463626642471787378873794127725662013521200666733714247435841282718813147271569435696249904095635762031401749364513029141672142923733079809468604068334486323194259443895834372559443254318231703645507477808074427932448201007787639412743651051878072849079573618867149102107590425993107766825780521495697937104658806595966414009118476166786182167461481653052460925840369600801753356445627708579399854794924836949415807026702789297138444296763644007925135484735865491389542028311831951373518554163748208908851289119854582932688501187180213073291490361513230029405631832330960969316539588789079278587841415342397723035692055920688297077889040764252060486116096440072260211529002034960016102304190150695460758387493102541810355051375711263143490005243308531140960858477750969350425038341404333238871035791310220158160132945000034942795142008239413059949544959561083312125175907451843513223989557090970835872602731164404371459681025809706232783947847840996740119310319437744013801851805214833562702044120540373937992102398679091104402996926454085810310840608282017370777790445347075453747919078850555765960600704336138803593023024643801033303689761375193976152621647539363223770818645092801981718943733135947930924367596598384457333995196522736292738704024976574507778135364894881284411540079941932236854231519022758967089588488985473684233280972902165218899113720847318894309863496263155257891525992123491547674022320448282082640857767660636879259795781521545263502563403257959916713169099380070446631309125941864465882310788834729671974322214542943560490479058416451197417912535156564635580153158670945576836495230761371711889993708613305344758335655484890491305710467402250346522288401491315849988583401258191730817573758237555248961900299210960879548187904063044492118655155889776139209879936030656364099955826074338211485235087800384793101002345166427599526353866850776962478845855038160418334914391365805869723662255256162683870274569670866401319721939425190557980305961085781432028948170218896054469157769330602109058937657578698983179773963081698083163523567267008073524560869391609903790228712790572198444480990524171892340462222746591856626903179802264834513053308159522583426582549146371055033366504525843612798263690435529381308350739787077201269133149366090794775566597544255606654865079610979453165699856337553878141479887843564005168259562215888238458058193007655102582298887559693188709584523225718343939829955304965002455613182636399620572755204975272472131558821590717907321400109211376064050001286986749734886615935561352611747216937636488563234052820380768813424267208461494144828777952138103753748815775467674170041350331671115628146654317223231432870130427827181535507172337256430953422601822764741650858014659288047615053972720894378219003746611691808656020735514445106476543077523099766573840383142932105327090049667642471664349286545421485848770017035678635205945591558139448250603975718964228897483459218073133678243195713181581331575197954529273992175337102352771321245916707104394742290581008844637566322261587144338986025270914195262411273651244440754681597994210381627260202902743921265004558672355985609528732435036678905316745046265516055795060477809870787177274667373474588271707838417093751430920355892517182437088094878987517277678090163506915301973503069342778183003722987801502604859484280419342153362868901302248537310960644627694148731467585012826096087179120176999765099694004410863963346886755096984901191314810106166799374719891534412170310674980204844693397680666269838724295117778909706113740264394534264384042135393247925353804727749898665187256945911045393567339635137392986726566485090408624298415183494182834634829248045143062499978349025178067989485496531299357218075158487360639817061373658910671738399296099485586123635199749215317029364586785111279756949239377818973811210884266086490104464459388641266388305656695568247579642165586562894468027351902009362511104391280736805566545414030686847121907696253909689225856075133975696741858264173118773400633256669393408216051032227241739095661633552587782368228302111089096754983281622020212256752232981548404698322967786291239000023947780626136784044490964482413278524052588145907164011629056954393619923905416497919041802660507639009750125317220754296264278281357697450117515903746780573529531541597463293570230900737210594817318361794270929816279137391289019766359695534902140344815719273991627670601888154010938986273890828521115738787705312671505766047180320968120146573498691863090854548109133446400124716486476914763868112816691178783545319835220099810189997045180174376031350517068820632851184555193875644775552458452209002711427075187642117541619949125956400637322264704441439319539970431766389773192570391157171372234072159475259328662107744318544660660617340350748018818500214384737912860906743019090268104204375727260186669031827018746274155482431079576701838529535626511682593020382723068533637202478563997271514512841096799345846650199237744271402852050323439743965953576848328005832692536234692248005871638699616266179130290668544857782291951740671075881309658944478633619465566287061112382440503036690328612745345170228707751986544402511573545031876073640105558003084994128905235604393460279593273025859690201605106495852116829528386533704646821415320503330490380257743149931209341722788025678727570132103288787869226968624237457748757038633303957134344622627285296513122092519145119402482385741400114451536309213976864422951145645888421691881705363141035854530354136792622197323686973609890878581268542467774623718709183459537327167966692566664527327259583532380160931199593270393002128792871693066429821931687930321814198745743950717122861260366527315454265683536696569687675866511215877588879522614205869366021134438941498649101384699842521038013267099339277512220455152778640511382675409382045852883331486884646345027063314650101620494829766391543201271760533226715041969815875058949260079292810683059445829448317304880493622465507370937607045146286779956987897797564260246076227116787198921494451471082899970702315718945852766620719766385917109300416650640685313764086643895511941191965790324526086222441486978174202603359743490165959841942380314757485624389041330084270745675921576987141003029553330759602529698553482036426071575693282016026039563948336178803864461344608502376964972516980763001839093708153315318536122971803383888890068633151711749617987989407063045306976369448427119730450893193650689786785303328082898435019802448506165176212630504846790471450629137048173877738443446256306040299416704150282996192167802662701220084240397635493190671008747135493349176928414783670207899004436039214539727806929561573761827534816127639368403947592435516024363058903341328243714711144312442793025303095284610704325586332373832598487565515689879265015011928942231003109912997729654048283964988342524685614728672763310452648586131815124936358576350186480917545594330189485689548281528159420041582744167778448337599386689525309609884216700200852399892706426515384770472527129249286085260999574306228477709047186455527345602529590690463466307589289655320389714905781226228207594642070154949873826582768927443918090255145245011188332133841683521838289649083620819132048253897080001518939909422855023860940648992757276138139157593942544319808060610329808302496983078486193997541195976356957284914158675100798029428564398042892543078590180783352248008938153657237240493704009737474036991509688820508428530151260206107504898045134471476637380562834269361093150722996011789983357014889412275749998771796663972383242545964350470378957154844378915474773680870344787986131910969404946721322478874163868425647555745264818293977320333665860214718787135611761143087450915374279872831514959626993548893831251459506189466036591265211561526595540300485635969625491268892385917273481108864263248860963892412966332793684792773470843459115073653567123482400006047333920734882954748312660824571522302508998483483797645626226664545087399661250188841804634961921541199342496482644341954233384407741220796920167683620061374296753741506563569628964945457742975564956778293417799044656105685812681326574009856941414481538749654863252349772385043832284089696718880013686799770091093347224420500223747945661611911754415544533548915074416607640728103895475637828057654032651027021657105720426370915080268858306488786654622314459364514899434309724293037258882857184272999442260431622045906994194493920024853728019615685083964202973581909166874589316591199110223701129375138524272209187763882213458689545721767994490423243262936533730970994118386490245670206150695783681374017550733330411712001942601629939460980061980222809091965601322477369515661054457586657458690047930372232040667125232122448014213186816635603735240352492804180749467238233929078595219812626778441750835220604493279192569428721024931688386467847999350664184810681117570861727224635110193053724338741372348028265832055818934725352361147682348047029307402822020453412130887924070446110159901143260099552373962360257780450068687386418080349299431848413511371662950016727788427284802077170160679680046657570978946108015544162315690313081843277309402139556921586927165398488677388016964876224330953378273558448958867432620243804166312040201043903746587469143737585402208018814977358508538978287186318268827946894374191750424273291040869781179303534956763812911095246699504070583594780426790610852634535668338513533520291207836430871187176974309761603149828308983818728770435813623392238259518673853756784327067507609834116430953655070530390648522360211004175373981030455275583596175071382675695745078743596664647479644125153838938756236571631338809272152117174659635898215579229434893118041982785734223799087899831275673592385938761421916883264394339874271388204610929958135785019171283262233338312413983031479599151489423326880993273124890994274671629602070193187461889174687021305159706851227309933229460655293636765701682961603073115344946780047710529850023758436225174081428185432887567216050988600367922512925198615910751283013863408308594003421573824432308765549059525763036934851763534194042133877390686403697174190961453028079852438407206293666702218565078553069890810024988538100302462957639934700591113631558285515761967163322046350803899304633630723252008439139352005511779857905794258242177972550799632678550067125648673674760461947388298495620345267211061356829921692871478808085360185787786595639636878718470604098466631797280805341287054412515703943350750615646143246466874079528523822237963857855372795621615617737225053845551050759963136748663482652079310299290145879693923335982753900082301930554265057317043799092639309200390417134343407781048707038051534790634394440650524782140352500915318272923534659359306411699662801726561100823940793654410425811920284845437885786766919691275555756202467348837913895558481184259010650270272040699508134164357244199276923209400761021378705941714566500213727429435387959046362826019193223609430225107775410939075297274976169607233279472061969889430590365779768709701516269956513055682911608821155747722756596499054554838156745020605723221388681843756448841057279135023871651231685504870794633523852971632202775873399209386617899695378057743411805422365163834353900293919167889937432485048241342640781097933979021851281309543717615410625240935401076243890127963015290492020896033566504533398304362860470185094998305597615343494457178904616612536900764316814145792338330655023600107575639019201408385179379357514078958502512846152524109608799973033882155614473234386971909633529723441478445694345317293573111494499047848756679050969175901641155096895367179631018445157440469111357217434964797775128710133682525759378279226827215705141974795094510422386428107984948619407892315265511363082847361315407329952983667019841698542778562005987975521000985889467845881254683273036876300452485355507189060058655019031116065544865419940867345492572751707383618000957734745767147490039711026927979876101671769314707546347266182124043552317992352170283277696393374314983219727323308356653368812647027389926834354157569668710322110698141672668768466123858343363696365368660051513327895307537358676281866158817658052246726370603764245352944621285533596597469209308734586777084969822859526750820759414222544159462542320327354848598779722766569394369220318568808561979605024802529063165451501035489586792978823792201188867705565665902995868821308496539484588171281923003624446104724308970301630415609870385085938054943373319785630776656066544270292682775708593213277301557097776677118045332658210245667868374503509746948777068400116328630502839949919540027053096602131194375611681717221907180100201142437303196314660552272144699316574966446828058559963480665232077964406357827803921307719419861060933802080507184297548483505290435678078154226888131500925320200138396662197852759107900921494091931424265218271848373579484336662951459975276800783279803500006327554244431624199093444992322373533804346165569298638670817388519351142257856251577155699437607540036481084614050514598612605992078829706147893493812575186519030491831596071555040889672992106089434121475655660978714014177464758368588025533725049825562208491117032214008988168861987594434067848682163219160010147154543172544735436952521048810690899934746031804276239800289003257353211781273630203308083282174783166712649035959922501951388957509466995665460743826566524416441557526608058724115946355124975548224809762354511052182369379904552582776672218065155347755367337559316303286176467176778318112607701867065839422529532753430768554578825196202531959902307559673392356173227171732674348462469734615718667709405770675036626337841976772377982409609131588253965813259945310589183351610724900805526363340773816479993422544526269521872454553732557372723470970502744326890525745882381711704848003240596258664224405637868129474314377296823712344792089486123358980799267368404404051400494876132337173442093647405178049329422761451454540005863514758903305021710542007678579851741341989078276838001654440595131936244152986488013832097566057673191224547607720961976040069248507705885045721568917816170130006786206513551715220184508400821631175858133013534324608409590133015921629842976925844407410039185454965236455143185610292807570890546850164891741783295844154293411951290308944201468010938496492619796397445969432918593246568496258420509340245157233062415740372065525914680731469315105215041519634260418547471032002628639665089295404181271795299294945344981907757084086327811560443580371315319769734489596921138056357422672102168206196941039648001027349281347031241838112077150767439909343423877446596713967315988347400231076605562944674381626574376012379821095824144933334701163715512741819450219295087356853958981425002479857225057960457716870009447402084183377184036969407520902764861139760252077779000864529712602573669447794410448838300969653222651877090097412217188011624881084571158546645718444216258260413144670395376652760971749516725603008494319492489104205029874338300151097857222210694796003673010568730878626492097980435252128440346795181958572562919294502534529467617947531113879576275235086180577877582170616801522968586059998495727554700051185712426422636989110116930056672456297574914864058783231790489795768163816395936648852323592903257192620932439052488329568439152279492628860114993143941171063317719049465445827411234471147626508534501023524111039771977822676724756538627812298381443712568988145962146790088946083337175251508739350057543420946623943213671607158199194541994059471303542396759552987289757204183451590011963883948318447308145508243557510219527438065289469159993702065149008513521646544849535472332684733994349421475846101382878579336830807550641293122811706093621500909323797318813833864528256723179278004711284455628707835945588461639689385331820455453940562045349360121874354486608067984400440349027200122984116838253243843202499944649927827289558038078396576949171231012196847134112567181821831785713552678625180369366571644145541620029005482901280502432517646940936423544130383567233187478936618487135587477735506014301214738094649140589632200353774312854080482414013319369664888708171320666165334825175471605498868317224061983057817727621462721298460697418611192025130004197781665058934836885078241858457192103227736422698375421843803716176975739666740070563424086286334076593211797231148762891514397472173769409420537348318633279292334525825808860640354981147872970174534433365112016029288093073102659270920542661142282218634607985604056821615422126181875096701169389426496090518325248566889147161484688619421523588061820805000570385048858740649371939691328140613432185888196350156961526104070898565616066682706774855138882970644190175723619148888238453569732422979703983908431905445794194403541983244694063836081039078918660356713950350270352567422101984202930309047074145775632396408612199277087994684878694098120088163015487113650709015396342988378274495513419213575306718042883453549796939540283861244237131971260448776836077982579077203433103886725948621378503213905816311515290301409097695100590620704675079657350009571369836025393068214344019400835826190170000000676837231103527404960246248391479717769275147223590694177128365227859354810429328812434287056722449886319016164378496444241156423474692006487605891677881740797846929177470720580337565184668064876578908847261924873364984243884581120298935237175648921768444610118727427376493035517196674738475019351660536579688673526593920898832394924055004428590484922083379354308856633035323413514356666930186904683113105523204208856901261880391679062151917459792581977707114495708392398458690113719714098122807554670986239571446562058642409708067522129647181814699719823901856670776068542090888027244736368966042079788928854828889247272242555675382725170073722498640973569648606015897844234376914450964315049801636210667771439723437080008771556363511550472212123861300217756126603347601718705592771704557021539103764060217180680496058941900664539997818089287179610406600421737558064618633000993018309008782164034824449796222186415447302186340968994962822499316995390252245627568208631733127929022357499153817638774363716766108392245883189612796334445873900633473004650078958450006916071498921130120186019214838374779056601276428973551369803214246009524345886192884844123741802168776401571171332904898408312428458266856335419562341400113605741595944051533024463129776778644174377036735622705443238231755713913992558029552940838805217732836809422867341738655882570076033542040463940271127446215075932870329858066664946523534172540068658322334786409744127870005555951174683635660042784714701313602749541782853540396672052749722233840028850046828504804290108536754846253363876736322566987022237264761050429317382041478731134756422304462422402486916990758606536379585076513497319577635404408887978214110475045471952998902118654121968182542707462366908676999526802273814754860470967080104868408373192065336982978165664608227862090502543976343753149223457979316345016498281880917109702701542933890127178065309459821035230107514717548390365923339498880422711354303030595496155545073377875028064557792402574435009217709217530261976786928163758110869518186331968219005916805364810260129737557671940958440378478065629133041168954688689588551549485405790932323960181837713383253085754540438483874059096726001438342306107400270340592765739492654710171742388688830174250305866714284991148986775011934706670992445125391917753111154911945783001786905297537286081847549889642362712056111609313063368022914705958788610598348211000444058773058740152414764422112169612489573503188555499791781573794159822961818344984393137024117542737180769397233393805828129849536218340330997426006993487621001147464535025495306797659556916783075487108272196274742537346916840895761805447212778491743911814340602509650607134383494953787089129967936848625010230653295612126761201170980834901462486394523077426090861263406004075620327285702545956310342929825588603333786689682256966005167861800193887539596335578753606386030699629000994981371209951664737581184233057358001065013637580949312275256679959823353418460845331589363535160467452244231584332703969537636328639446474236881384173254405906157182629854155245598633002836971500929607236001002435173522860811870928635604007200354797392292549903681780484353225821534277127977559017884956702679899628035029398638282335885490540350473499588698727577103561602997404049547267659338999011736003802384144921916105573280089999831823591164490349967246864721282536829334632471253837289047962156202641775063105787148348069873303351432693365363627646258803552311625853606744941331859840479699714073141581678634982816644603547633828894751353530815593831083123808896225415701111992420806395443364982165942901250777295323736411035087431847066965717298787272037341600306503920165211390334916955980013553401500597914052200844210786760935343253678126961295888099565129503128560530831030845921671241479397578614963031318400870598502654003199252091827946246089205531253996389759033639249114004566518322600715075114249593757577991187150932276089815761202818265115832911839367216162289634830576518364500187882167675693420446886389897404943767026140531954084619217002247398976150234867043188821788330843742206544736562813454717156663443777300741417230440174784579441437026207393205891877120088396312141235872028174336952629244738328981470671676940408354240753926632703561991285115846114713303076952390548937477775781413932467128474167041367850072184291832239476101678777977282092771669918075767306522986408114963103640716922715598743413791550566333203455897949827063455956932322640496795806928120801332712300859555333895613269699160077147103452055722145792085893805364876083448433216382875338079310856681356638656499458318075524659863139939274574941160205473626399669078701373712158077169220215947131506745531551082601311700968314914999835203890787757030489220752980727400426221688200719607857683812154695965892831000922557051191698361401461359599581791275383268535879364938981623753623085791148581121724786335479513913742202481736604112373151228314160682620761408031920870522167547064611127116731320107152740014850015854903195829685118530777772906277810171750091097800619359716715506813772524408451707754593200554785136812041616157770115005310546911494878216876794576116584552540753845413122578126208131895755904902789203351952393354939120017062131169991593133563634581951492967801667609482741312461764207901983420002745433523127069900741605471333413676858008171327541747291125684649786604438246506349065096178431136805307482268216542316550652029080534269085590685712221401663446177898938890595591501704481457402883531615032292543679692026332561878955901456378000168630104310902568946699986286999616811130359233954345590695788311114331657655755921570449865617063914269725948144902790013807963679226109341353857384533970580802814233465374218155943587037583602221359071388611943625761685567094729653765698106794557096584351816422891910461876013324672903238803737050840942511193239252007310892971154654020662466849589868325264761103327541251862471995265613869674274967133877503859919777672679228521898684597159280575525373849665982523689735140880228166821370066419218641208971740549193531686549406515050820220706133251111626265332442795671731791083794082445733055622057453749279572659769263970358051547014153327543528216997621792238215017082599017070198700960520654569490739335626487259972474515637341815336107454427905845035035660474182088678314399876506649060050738350451786889610584891613104665372092562734866562742741837151389737410951154326865892183243147968665602948046480791851569596186133894242885052175120976202800350651247131100711843622977877104892678606324131446658547988036291519922444835891240965489907587216371847067637728869106637864606621986236671175273787698865286604439436057956062465620691665770648448532739049617620528741176449868213941757325559954551242592489165503020406908321631821177953623862049420866979808536523713724428083178272613875978463203856438407453968010021180794662280668109230271665823872605161625673497525779752160612478807635934967911925191664251489460599504021169335242718474705965002406178405403355876546712079343597846969128988557354726807587346220736097321570285987166685677557485420353179376229656823942488164747289480064458670478187572755871017513262394450135404888387295420405428511173820566293058883143230397597095847757399156781175676129203045431655248488478494403872376430249303435854930991068822590400846681148266412520229868997201841878973087161892156695822903172095035265826223409624631175709193333004027109409151431179839637380614181463680677818552628629066275248532725632263865471373041111977492032618841617597236306442592547235631134368566332717634716790332185867087059204031599224659667530954760464029122004659323742227209338541135297278072247349991039120780087185927653407740111497097857378523659552878338553844535671717141538092285430834507913401576896551649773309211598401764519438447020469228723248490344473965664845001395978623219475314411080174983815142884107279717510477947922331931894442670799849636674627791973127200010161440949281262213150748245039873128190752926231279188551349099778946412167208869093685905558564660142924480990163964534573725515125933109399641621655217037257930860438611199410222616882901172920760330784784696975513801107746362486459046747042413868588151998728713164108483476577381765722980040595345780345118286631039569755349257479773356589174611677685508612092917938437817569807021208927899446436303433944585787962216619966997398665094921098745083503720140239396135735356347225424169789703692937745414801033558413241314333781153924709381569513121912594843905687088752077817113245747210267383212122126466984785680936890765076535453643997857947899344626309788371676836135524203881472986397020564873668165812308512791878730814483194745445481431914100066312831044464471271585292532001204534039354006502452169686477199444447898707866875044485722592053345334007727693092283330718308685760677339163443891844239318987400950466062745111918419689468617542855463461325694089223217180355048410250393773532858864965637717062601648590208407358671191474755971656262386758865233444703701441538046734286335677382269694386745671330049032109419661453068500072835161685443882422301396297630184291109255015740737430143009291045873564116466855131087417146563535572177810686946727068937858376099365720234453132162776415036645761687179232157381650640374660020480106504624192932101137722362172404074590979114925867629560234700529501065786967001249841170733865422690436861406743271262075155782778018063378110626648284139978766061093949669550589886192037088504928443585265516168144747797610133199837516935573325025017730921348259129399255039946540572763335850144263035165817595549071782723163781209099107265226184840763396233251114017951788643843834334318316558309685343803407724231763147471902506350831903096824588463589133865424322363589970088676004595752822050251373541586065227200183569677221262275902180206785866243073190705284008353484172368833099993098740853346958804480398004841527724456110162382959728300539505263368883958642565437429116060453124556697937499046175711111474864951415082863008247655837870400549329978807298225291758634688789538330114477019513576770507800924753287110135374557771844306907452025967011517212575336763063093561928579631874797495980618118506839765604213982091122073709722522478199443497161033157071390269324778147919378646760159297460666762817888416059864221317908889090056448307529918206626115525916726708698048201011967438441143648842973799172624287213663973020009228401229462853450172451745912164218511517286970066598378277289508486487025036829685457999628439285320525954337164837672649160147346167365457872794361374673158083784648858957401641765532580672974865760090592344599769716628083440153408851010500455474829066500703662859734345209258255095634804900821272540558622891559835529086915999153291684342500744402971695988668739573511605884765122789021386818296610232573422519229208983055177055273166732938209329853130290241248913236693435408579681791127790890131046180278479205243468064487436120503479332982896231034374836849875670782848797781390262403336198284573681260091307616595633332526939364273685773959457936584369899812228153864035189101394909938710459307590151391729464085508761358567505044656051112889004229593068665215449423252283329874494102325290093325703372887459003544572330039733552276268107489651328089921262173240950646608610216741486794260159426343087930745249308225083168761269465258092356659725571568823908019678877755792270108032680418703016507473919233692357820503787677358351448831723227863271612647303093227425863527086520223145604258927316655386777511867439989087183665657958134441201550164243315435771190572262355719494190874492693708050730778764899490460092732074083325669107588155995041232408564331678802870971517376300345016558629756128237095324309969032252444031683538750001620389493233841276762514769804727854171130609304811221698504423941210183922985045572760281720441598702211591162114206216705674714509859935895847271205509193512864775880549052702208839169798730655217673377580539266745322377403600662906594996884636727202884294091233909801839133595272363465313398263165904583764312022842547206665407933748940782592930458520938042986284356570080642476312125561941204770601014817124297720136655210108722540275497964091845418321980755207490639280271860265372100653119514273669942149066938020776887365386756964534762281701598198613008059441955651665060591725675854985192124396839624136575622287758541884498038705302285370361035382210376353890316481806268227594255503814610746070475973503056594790156500264890528514022367063918306527819688253177372032900717490750107124417448022285738007310474463372207736142020128001135034466190978886397910281617355484051298796902736796731930696520119895305216843724448761098388574549081516906374098371593326899863658179495053848684287519195279357373741908741863236942821522310443585816642834513045374724339613973036882507587826101688745797898960018194614679996926188415013778646046895708704457825203318056264148931035823758671493829521887898669896263750293520599725705325950036338696608775958291915663642658782741049256708112338324795464252452602657809658269027688405776323634861792316412437500272225682428913168256505248633582516489209981880450878781902982676782970546411362417617279979730403963114985358582053666211548447882312995029725522392398365181841448067285229580570980599564709260102750036516094744174767427070357537440727182664377291480668949589964712679151648598520554059988793794132849584658760169640593985927349462663018948694768366258876365667708273714178642239581219463686371438777690420478775511849138903114470789958810335541092693702977363138780188628659666088384272811388915107318541680201944862122513611697571494719094831632667536285568712480826658953942331771159270116759241468887948887834143440782223661627735723948239816998052128498251249050653271647323936705732882834907633661166937122384802252043777862991387182572470503387969491406101273246290919926628604372399024802278958402109184239292310701335668691390577492523591345385955422433705592394397558409467065151943290603969561575070084716370920159380710833087880418115475815091833750380095939148072080133152570786816273366542854867848832606772662737438464625861347193287310750659118942206196245016460614122003713668338071896244182210603880447397678792244192310375367592378461245355290182530598369205496740139160579621971533515627261039730625375989866488218917873924842080473839048054002901586205096264587923688359138388845750040086910488570442357670099150073481943312885748509256916736283892086884671288543547911785065679980336432790580805179457374492085337303608558794220695077914609692288174311972927083892702461344121279497278447458137278818051777017109493840684562277737988761003764954514078035007278958005173116617848229221190154637973189641570411984830010796371990298187693164442194808924411812387014835039158792942086012463141624157587463605388578086290430953490166557035227907009854109721922344934577987331216008361338953142527841131125755174831015458855076050864330314833180536455107030350905968628640016997565857049104982062696531958654170683175052290068643704893210806460833451097071753737926121402443628934634756802814066747897289701668551623778263729187117682407418566896717295234225278663844305122605290863084880109182355723895209915309076034237782392351596031746661613095427838535219282733997164888133989295698938427002564993718482989031533525691465235740636221538185761813330858541212852027118038413856322158300761574723345803260683178104070892168042053173630609883662155589874749031587092211026821986107658007761025762606871250842703555530160036644307252914926967444543088547115495455029284328317582393737234451574411128558473980429704010986240276788186908294018121357185080870845355088652391291058922019038195649457222975266266230384526596185465343500248288633936053963570683872174038893787573343059045221094580284785260748529871839325044476797284801703685239444011114140831654081114005324193049827913387515683639398583858412711990809781314848814094382273122794571924099610874610352562349368140674851131620634476372760689507264786106285079065341197692070338229404291172314312803274532765422608484676406551327811573949363506672044175609408089700209263676460708767849109919765342090346029050978298485861139687033815844718227319950742252560792525411389672323727975238780512247796991385446025954484392539414112844229768666437945831265096546327676367406891424344125035289597393408916279192396840487683483330278053710737043937438029120785591294472754359867233321302514025260494141351849410672594431006340882374949788483512086421484689804685137760489937302743164115961469485103495628743211325656078779678646460262950831929439501339991633535084014268601226212025212153155139196321834189137294002678058010401827526784059444750766741907278461876581515910043499445257030326335869660018870656010617495287708401187974929380900934704701727358295878919490380960233995597031647115960282782404325090703459128457452788958268930120211508422181417630009614952489293959751148330577765115284034402671821180781044378288524539174649132291706695829230369973052661968458353101371581739846685545836663746043322814519276270258101700645048177037523613939925893503164144332445489597914168799083761768759593981636040376038582709825463254576590461140359801564586261669417688979137945062185426418111435098385339050707321450397347566550979951707109364734111812991423292925992281550444106777948062506978806067012774100167074237078496783502259589974703234446638752015990631260866219280368165826954894637731541298939180002312602696349721589429451625040182346408132693269437311916107158757981226476911148353524922239349150164293679567268559916899705997270541521500743844410377473184846601713568594652013772163378687926652246992820710217399676395559556326507862781379509216624850753425740385516762739152947927551546331260722332653854936548198207636192664483928431687889634012305288301869135456883739599843901667136002904862062748617120178274202944205929488771567528435656918028164535355644939982408608695930648487950253168474474612428896095244586159567429931826223136722738559162272239737163075713860208668883181324432351928219270915035518017247014244424801951520228590655914595358340157835779914803201917090565726238974780349976941724977773127355691291813862265552627038248162281026962188186748680520245605742107536759844107007057972653309357044400428821314168371990731182255191910486833007076236809728946962383415125106862716220901881965460355799142429229769416233128148465682561070513468905271673624010875407994549826882188766480582969483701171186344585412914039899186282909552935950760464593325680422967063016897144781693719040119182144006696254842607457493945993322711428058969626851889994767363593937077771221839827167132568496550084055425381636538210936306946637107966461815042936142289039646076528184942361925024291272390155794098706957560148117404860416896011531527169469633485181928952966497108899143365867743577535298236244822282459110288153309750394651507127636398288242981353774372301148800167858673735081479497559484311965027527240156194235910623298896933609866168082294464464622949916517446230180710002425271668882343889096439612516797034690238959685166793634136090356053778166912262465489045163415587307747352358816951222375996355274509870798255218995370279588100567692567840542270276216768580806504121679221758537394467281794413843395102503073246917866183638093157045941890402189102818796684449678567600598348857472590344916148781244854822533952132684670639990808223495954484153048634872203067140865676674639023242522571633394867363354919403881722722207936515356844092043298368997579688882801257832689985570577813394441381562221398802665112938300067787621073926501134014993977475132940888872200403991834402291548547730898188754648800703046605105121331376954995895348368375137645127416733877546217479916596352086291659492989248154027802619152520926106074378495571352804444792696380149439733415445617094562608437891037721349492459847883701667475782115013204355798159380878337573863558401722900555778452014033730468710548498324270668428982185337101943783498676394978843660979195283070744894383443249930681792953752721296976047108352368891912741892421370611967470912420275893123051208740351234747946719500492047886129923653051947145726648827516531901994166436529244023767562887606228513702173078087539039296827370827939419313854047743576213134514353801788233942897955661471180209010454928967488879582255552818558648922723978890959489919675408728705463562300007721367328910320199391039625024484065451886029616022503585018606180453848537654891084233576889033822918114611783992608511534762880396159359722164859706688666805764112387039420380445042881528897665615282695360544016612625313605865669417127729108919405334114231524101904757326055030258570537687094757943199404035094531962849494581716409047434584815060890641860014348779053643458618688051326049966519555576547144649317031669778814636984988867926855349351665289812855433641072230483549193665679696985083085492073871001622051874848567893235643245630374283436795361248372608573835266197827032727284052932572049648751910228762823154550780750362058079878280775385098858340727199069795802691736031374260252708474674498024032640165784202913986058971500759529070645606453292080088564984166083381753545845907756443241081604577951031200006044785707966241631038594501692828237879407009223104562638761962570876987176592266615806162678165720682018289123697806691172573627715311435246672795630748965353981927011584325164993426772002903113186714170111631173357523249648006961026521587943730068689625904826973807975100483203903257922126414544902646310820913294125514629638662210222175654177922732429109525652808188784955204659057484458359272431076250556780411521780743604195856258082890475271945429668110799434458765262285281649726833482817913062236260915288290346466070354060600810839221578256283588621266626861322796073860294206083483316165290772516950457046323381780284247728083352081741341923748527238938870244343421658286345823855640182494259135513857259415408003749745136775483389549952546825887089329968677777617066049756017754173485750683086625420514416617559782539523842573196488856561548039053602839167266219971961974108846278024018793024195200484447810211531849480679355554866362494724806477664298748826083815144462147512960261601069878530806533840482506853349233674606185681944187754836131115846600478856861474564347446203898487665977333547147907105976860349876293946542148247929808421077617626910236983992970751141993377036369640725882748877229146041980885473218643131524798149711927797887339433544784515616818295751337175964098002106455282671825831764421726090666060909025406771279495801484274164048803486609189700343374378483447494116932367375127811144249638854693397638573138070141905364825192278958852597649354422879824522165876827475414538675852835232496492182710061842628965268030910205094456618701662003639131462411859328847564722723846017440481770661732132449557307756328818375508979733576351188290333575215289676458387231867789221568412514788555922147961233198899177356071354387205030606238381159949974139441059182089317553277256288902453788110688817564192977722847177142802624384568585270280534660427815868579227328440562428295459056976473165306334903876317358387555476493794257131600181464156482542312101379798766617490839100653800668667027261388661493529809112248224950759339090490906269730375425473036269163750439991729878541488561386228853755516242003909904995738923784887955315897064943171874295482406038137489651235303737600342043411627099615920871395846245389414172398639762410168840169531014828191830121543812189504254079021554347563898281419209152294516384997582383410600491533470320080205785891193294540389897731442373934042048455548116405729941225287699170497476775102221490513723219282657181925598102982895009546144229647027232385359086970442040948359641790336490137742312049382217175556629486288052358832850836496865782802841172822986340462099130875271996801460879850976646833887095441034055558564322256406105893000106770731303192510021100860180169355954519456724648017736965252136520065060512712992328967861814905356854231834322397465182731512701793186573714313348206889130513343088616544109634944219965974776966120197984930602900633720759687841187747278415150584801603561411505707177659609127328547437931017166547782625129096171077889679635732877268756058608829744113706718885370723274613173216095381367788883927930393657576245738985159815709305438530518195179299912421277684859183790487526798226374452444759716444733786390644259159295666084018690642531744270064931994255557110336044286426818342080958179137167440454019146765267826062764562460284005474614240888275873914877044545258918276611497872599390400114075785306251122041120068758225683369669527069032328145999780519852712410662658548107533230519348945702962682239610939378586593606021827931043446586809740049070530130184815324286438958945325655530694398966360340881561656204287927929400219377695646547752009058593712483207944874933858455570757506582709098041867598757612415758995753298600617588170295472776874442234892719879025292904656761059197403145766546539396917596496314761343224429812109521155098868623864784503763338877008984188899917523985413325084088631012764375300287266511768225244480952491498650574913770178386540090947050519890078097326669394268074544121732954608550529688911142178945962941200513084392714429319671250635928766917006680311446986938809645060456026738771900866138898745906013952760975372744303850456503502420991085382178632849490183246851508390036696700854518481968724592940732739553276339649518965403739661486869099040143168853640055855984486361021992116042887043739405545954393221851155679800297785309237839836162683865518947316099490517807492491380098579279041884577152103841512332612331178774481441704112475139579714633944561978759248337092135193291036953257369075087972507232634267004673944268360325618112400145001044060130754188570492551061599884292447458387112173924321686530247395871747837906162486820315257083331094978830179731724108551068499651870498110069329701661728620699126673055787072045225651183355061418327661723504450262532335138479255739098213884892180182888811886281544782730335411895227053273525516010260481411945466369383651407669258795838542765623410921266659902351604527329493315058299190913545118676513308627096320211057541349037317361661170679201121461114064880603536932702513560117012597545099794865472622330096674406967050426917016232967169480680433423552541740088279945447472835316884145272950047061440708543989147014960001306346744595175400221347457639426303920219399429055382985036259512614925675473610091323056698476712428988135126065840740878748908511010753037238332213396092399577517215699537840958201724553795779324447800605385535156449763908713578919551407867067798648398544778066602058236812575579295030752008131622334827678362242288751764370009695372810661937158597354952416153184792203670866431145171321249936807204527357848632902313857692179603885747367333993922012910292672940174082839137250825160103645849155262177903390236944732672458620402782926035635094463855003433489442226577083859504196857890910111499471299775237994242509020267479908278105935875128651156598356115376461853278611258647598489003167702147032844613706897276539203597058573977499821901347320603755720103891080354700116266666001435157078761162478911010834133332373594147051001462534398698937789058575062924264575941611609426389520691637748149508563198134131641526797434712636825321126822997468394845839546174105711531789332516183719289550252707613331634801721137818982778088611013685453692380931511656669056394989893165302464528083010177603815891941163264287092809422567395757528311132745248736394958593090988877442904198516923030462553695105920007985119605656750607426672385140831437431988372612724109596061831776112107897167917298586847783661305732370927633048385763002494080524085999749786317372622194806165568976648695890916466267264333608302953660596978257261467025644885709093871139707926299134764936822782152054402651827611955415703954945893154830848530176918851053723744377066071595469820445686864585912267649562638280466730357684157369713617860565882576569054966525691745856272279970507794692826676864198984982338606303107630765327010327278790119819559321642607013653597406050689950468040021451794924378209403215566682682793261177534007497033514544140297832142668029455494704676444485041611273843849296108153016764114182294070593651509886957674292945193571995054616762331309466328424388267131336451870115539490202824129268694457132261581120536275310510292917600756012930617908267147932330320974571781399906286638364892219588406278531414210642180738167090796821971200087972556941644043481751295134976087812616517920025974263090776479470579403270701080464037850727243517294564268721546299678472535292605333496138115094996742608041676614285025490902688840126703128948303286205245992602859197579952046598871410899405085197482054975383866043219036688776448341116329834915667379673301188897718564254524717236729379462978756035348887003046572337648464447415778513547337072794617335792470200203812469685117298309325014373925930426077598943366026659135481310169391235642463440934796932735473910968094033879157156675013641947804737445524157693442584795553610426183631348350391992727727612775429744041934874295568822987159834658841331377498675678615972693570110823205988437937950623343233402878425315077881492621521330889598873193767534435877705833551753630982292811058261135861530507168808715009822059441200893147990122674673252259076466292450192136112927198058509603169324922919204522236068150622312530474114574669764904158526880867065780331994277638686375930122232169896715299606383547542347047334001512787401171431838545666662770670861192150556487757081956791726352777626518559420639147127625692711705250945099126322020371587135778910285696063754640046166949203096530229734974264020384547159692470816611020716366106179525448827877606863219322034335979375991326401470525171765498543747417422531192385164569584205522428664899726917849278026535519294682946104209551392363960145345021734082517914657771979400602660887315126528289566211445413035502850373217172485813023480356413320138960059661942456593983896407817932469509953143676944315191630752461831024332954646889419518311457311565653598233330746773211988775783194785516866047958728045976630391454465871210657522771435986150466997829299626061063059258306634434014787385381116620783054625737693405826124327085453206856825184414629192193704095847828206276324968341410903935521660518913698997732641714828085633007747199468452775711213471350916656983148740943895851845198313234525774406819774745891113077642241522479818072525493531052430134228811374482715964997117546787502657132291974644053205494665284844932896896350248893177246108938821456073425398535023176737543031305206977032832317567594198385303082182941350808398989973957219722138447618751714887011622507395614987795732324496148365099312845825218618246066021269159313086693466300568632918698803615410038333132595260299607264817050913772556447794759751283399128743266141236754720558119453328326300124832584906235361836357108309115969862610247891041744920098637790790247132145477897052035377325532039526501162247002280623075068859913901789080123828852100173535982908071078777662513657198225234350589592508725063886209407495962269691884170173731628321452332863668968320588114490866150640686415886489391901251788235384457889343107432972155304644525130705323093041661248531753470759361182507934419970588945485117923439817019953069380036253518602091271136976516541686875383896700919413579298107543755395027204466101006198761743558479319604168688778047553154979336336463653029943621195096809805377872991122531578760444793914589325567665750709069436093383620645829408287637134689695313522042548191218889626618661339456073860703626744531248060877626359409588121116960446014080527578370926496553251145506428920409442555745612681939286957638408247257292576890199937711677419507394308466285658354054484923330443722867357597554597660331978136410573789047770676895722895591064213275409903825876073871130917457616955769338789503193329810685127689406971555697092394202458053675502640831274825393030404830027631343598376868390733307555659993194005322999281859687938473958342683842794604911772236570969344854024353171136761917177083774173871337041443126197213660882627557356131668095128402259701984755203183370741286394316925808553219489117125159197598405137799141746878365398765353461692568337536825374406476479404805286559820447235471211219186085940659602682426529144204796290190839463341374908539104927370083539982569653092337858680311434435510427069814635290508921678344503132581566175728834942579099229906468105747871161991022756124035304569466522402526452310416197613633772253685523750219067230550146384408880025768752654307222580030645008473526387468609756017884143872506029697433132845013208901876939057018934816003995696065325510032920913463584357350470277040795081333149566397041907119879904215383537100196960593637609582059463616462807128409005794816826391460678172052639909546569627669766988214875997632984050617256756202580906020306904426701004108334178475090202480271438221731338059213958358557616807048703357994914135196919864213909479362279425758099991761358550821184958981546504717008239908396148561755229259222389121445024178410593986289530053655269852141267338039378322740264373780137041459228020763813744211864968088178165115398892496338320664763494645016612743706380803024927113773842555200386945821650141577021833698362643358406657861315118327303234571445783427871863323211780197527664041230400162347183322630103278905354123804101717074220962699023585811284923709927636706476123811289969415244467152648267700419024842751212738362256388382090323272294394887173271172604454027904935388496279956667441238446891788857807927092220082617960296249857734279867190144238904946748945533188608184017700178255087677488026202301036155805474294238593757404876501134811349791067661430142214474205603939607008944160106220172125940217831489614706942760354585729377796934262931044331534569993574260367610063871467503186416056466287680893950926725194998160047302966196351423719967777536521382409309796912592768430136310937705908680327379405327052699593211431481226418435942121107835530590356613620537482443751506281996771315988856504606202829544330929748257884675370674153926994959839405274578453411233668825188358785779316990111204477024228201667280345939609942931935845937026290172990827537351247300445933825021443378998047965508015562723970851310294050295005754452375048906298599029000820948804529089536708636431173294772401494122148101047318595293725475961019288550838803006016007101718644925074534291148851907702700148817037706345390913835968468308067858235574193657469981652399689924674835750993386118100294290764941972314111326414129864615817851304870939100900399441734003218380374371223364379587438221882434777062876248792995971835797132025218537962443731220624688250572752507003088773508483846779495432715097461252106099537535373034629110630147898808591286721785271406822209349968974346906626558266320302172519158550541207925567046305652038044872986877414125382895433390604400189434080315958618271901687846276780339565948049911209403927163242335935415689915205506519939101183416227105317294687236625040034217513002060455401324846920499254258481750969244089938810843260171573004949250282448800981549114375171938973133478336065252362940432297096272331085838671950307623652439948439477968409745256343002891726786823230948422626547286375288777640444869799836585146028024207889159752450602112785865841119293674485859001192646158420293945687897738174131471290554846064023454730459028296001448249189985318517285894983373676721142348944934783353334450892455272681922814518386912041735800115477649595782965762033376733829774250447530594182342016172988771509155248544773394500190074402989187541930807750813349813330915851030158076984399978567124100700171102598111032470381074121415262908272652483316937818742641542493470788890994228462730945750153235869012169823028469463826968624405377256331853996711726948217309786584940620184092661696408291339912479289649655259937547923607355594458941359575218880272061024789888626424234824920900724787401410503222828938793763184417723815639358909678955449605172573588077339256737492582499872244294434608742751056491757128008153612858241614367162267372239555853585692436618897606760897805386921535091730031024899983471842400344333781100693034466576702266542807362589877495966187900857917628678968738024903822710558196087530676552606548885835729488727215925103094319601859093019573264370145751846031743214369737170482693183921556254107313982369900806384066595141009946680367965264181318410455771238515679510981811431558533520969342677687235617119901878746034964633486910341116674954181218881192708048268245754125955466731422626130725748462904067483139602798031354852236002084465201187546487506288132538601566640504805220185462376523933140584028351108893170424699946797237507667560257134505651965154713728714671692940398020120411948126215155400373421322116968783727701651701970561072656379960866429452906089105834520309808210742147503527169398041863018272994419950367245763592141329846043070221540588217781585308815387782357053832912469805935269088343763064178555016663790476099799821112167517140915297634875212953236688593121349948601058646811312776908451764686038606378561269593099273233278252849183500936968296668117987539050699509676188709059493816754310728019682848466793361941189378798038722791513113337756750104352865327785421233863356112591656009033422036190097421659317036817166984986927982549858895788721076630594774819103868002864791798187081955010899650217875045447816335155578823736983240965327906767410237058307843369014304660794734144155642678912589004074328304665626368585237101932141920607425178983625014660212319705907753989017812779768884791572462018187246569793816810065870524205636165902793576891581382212631212722794780722017761501166373350185797208092369464903299873660527651447819301082547715956537438202435061699317541807869807933947378941090822025159325571414309258622633772859332573297129269952671753370072032187784480430219300457611847728851270722920949792330195786010030352454016307383655897358870956092471839983296844999028994766972214427714075501447646971998270733338085252159244717664630420412926536058099269888378818172688092381890601411075281311222577333239397008326610658605588534565198938703588428682477743990021709542635619473126658193316461862092514694332193560094416432009655368294526117662278656577280965335126158222817917848049097534297409474110042496412867861527983888547270754245743113194601556227413263995084026627369809735525236429603727186255095403543176532677132870917789695719175929334892716536339192851590489040962338714925446901738368292582484431630338840431497312642820025526981648929006843510010096508979835349139171695289804948009937099472345213772205666328445098073614361763569914872338653165253848520640716276125238363608528728224667641717968622331532557137522528858857567069232617562281732535827555346332100243515994597495731878008478649440003645139629860403432897085559714831438697944125897616920668162114042458815093755505623362224621872680392605648004768228946497483385316681786594365450387518846936029885406161892061688680933965602993361314601310623733009495421942750997740293541841310880778787941114016954499181091576680502916745975091595444030004305634839995175753996419339447403933233931651169843282142584596122612259107051842064950044537398246262925770111435280799212353401850572032525305432412682917711872516957437624171799471457010839937535180037815195984767348023759997672688086520382614470295802399217653804726513083884387986559166727693713562856413859443130107465529343134090111764930193330784668231811968223455837410155271837800468346615371620984228418425042551762200510095633278666655666721695085946405624302603427886285039370958682091453647073039266777307238401439831500528937746242837238825577517055494854280203905072245391272888101361537188062150185714533870426577812172779090644174832198450027336972197908590038101393234632299226706918915957156325714194092581315663719241788562414069146834766604322966539595638217832719633668120223207419935578880429150789585995636689757717410121862685223641755118257909645244197984082347841134801094621260350407436114760157701255033437370188272764182016535896399587252061543554419014560966118765542117632832039737359804417552819471388883421597350654971805593406833601516921958186114314276787157324507761763122965835820324890947777282034409570164927470801055068149310450077286796406050414944532512749486273151372487987110718536286110383561097796077148189121413107041126577759102827912189487550420770323415899324032982917021997191077995088222204103114714093156394944664792735514751592883176438558078486076744927677780589057515957440764954761716100470462360954982011868107418039079005974628321463836111859853266956812801617702325507331074276904699383619808926081474944347677876627916299797723175921427022511816984495316013792092356800676871416429973992400171151526467158574449897733945826097411460582964670744243720445637735380991364301257707512061084486320662378261553494915626188461815544523984951639395383283594522433121403665847704496307580857304438469075359225531949056892326549781683480592386366041486068241907688864642263925795280892875309418488289049856913377299757806934589356357559285254704001840184658227589202235487425011549153843348237319979486192020209748264355043161564194710750299732032395465883469506148413663110189472721043541269025167470500941701095641212280095782777523591473020472526680554485589316893124369867744852210156497851330164411179863333707362419999271172043965227406201357631272387233671168021580014021024307359477605470520593808315120936386596478428206506215809716076546582544798624583106906107066111934935460785811390208810926819027396042442340351027424828201110657244684832684337237089391305932755648220707982965745255443605965924345373871977813393629646384662211783994314805473746997915232685328211101145383126822890293878459770651644488214280723478649033719688674438050367284160152062515940601885386138001493298778395695016036143626436707650039988009983085406247428773117955446255494249163287174900190787497547050635426023173451835724004026871444204493775265836342121326208192271619202320277883318304009992572426399227882388156961002933796440676575027356861906503957229769202156243616461601828616449984629863333522203654210384784947131597363809850778760283150901933489150868895813572599887707419039877713578961584887294807120889048491838231846083142173031678113028175519703587225820808255885828567030436238076722074723371736868828335255381809765373461295779502201135789235883451679192934628573227046558836022978897899668751125844878137959617308493560365779439106741540601983413844449010372912559223321788697879372739646633971067717570773603637992280696497620187547347206695701896004071824263861797870913343781706425683343766488996300170955571280429725518620660579159729471666797049167982556181068867277513631536651833748059917567159571014651542469196801709616923954610857819745504784958403750220576819772180326277478814333837134711237453257883714000240924863274286915312344337918371928482498677727890059577222577237703762999197692583267932558456465890568652354986244530696710295388011600564241724551610172611317426774240383047925892778807440465244227379960850847120159932355657985037662868848158528771568238877799222013824384699876074486728003538299331762214906888834549296500267080366287577865655839148910696170547125812893547467379183391664364430098988930514243402064694877264817534001844326601298654788886673618310690576540773777027684681793691505066823912599848945263156468204598723198823199716052897974421823493433492222017258137419946866917455879343088575945916194446470680597986597429792145391120290367957168460711737593347571909814861881682071276228082648128270798348479892622015917517425306054529178179014997962101133289809016802646324965906305745080583130724530023484843696357998582964027109773631957130545608291082464167240504141455994737201326283469999621982524582056159827171125906855518011447468655860115292800817641947320136141921415156212567890480753779218275870634140154543849517399071331566984112719158361502251102613832356348174663810173424323566844607841221347455182051093004497626767810155895884586349333166716593219856064405140938375098537741754503866317676826124243249085000707228509953846694466470946930696723065471828331465387563205783003439319278532818148698141948587521401373515773984375474639497490859216073072949258241592311873676455861733933328048411925542404427595305497028028339573799780679115941838886225460443412274188902698536275991222034052717980975568729493894697034236016066870169113475129177814282754190887643084972156911497831918006748675061345237042183885566608303822328108884964353226819386271978481576212685835891618521476748950382556603983955286430692967195798520302373918247615646330193482552607822284724677825183862381295759908792721189276959006865346743612005797273874646577769309388644001931006742949900361514907214458345836065333875771208150196598078367479207996499702754545795179002391671899850337082743583305993364844861308151295898078150673779471226256543052321893043880356783345689851239367125931125504247049156504604622144114922218146790455152245583075807693564528479528768605467617300610883543689048582890947188055088726190311983644071210404655690599994805530123283253704080021927335960143868997475774311293452380969895002320103261365347409625490621080725252154029340777471358043692102054453158224086211063685076375654657519073771271970829940685999604805864968710218768892440322250429855508943843807298786214949514192844209176251143469783952494621165438786337527986852540631812107521297085604136780637968318830361290922979247582063369879445901026428525152237030431206786016566377974526948413391307685304976998508582601315681003066000358785879752964109487783471262706716117834536116815401123122184779939659097791441168657154824187615640048550922241518366782188713377432041384835439628330749044912264787755949774010687568998335437861611194560277454491172455188491946697822042048518156692261708461609601039388507281870697608748186033466368087822413054073472991457706439004757557012811719653805827677653777599892997453905175990269658770438540801377413460760338498514003731009321921325207057747759483891734356698996341930166984242293403002920173629260478058151119941211594850359134016668521149177833955170771527015231614705611717064178799866391934255611603908741720425796243235504538823783437251387364086414235299689306616975431991260849744520649872571416026612471292148072634163368720952878308292309276869481237182358147609468641866072599486207130047619422678653283775272006387685821612495361445305538749264094961476310070626485965063318979057495736046152542124392733750682937796929482950917762450511897553047473410083047825502682326203039222590541355012838219161162028335472392120727794043671667304702027853937797507936685636462706986344475588656002806298942800679105931905755134240634948704193674946730148317377804300402313930557695212927552413103432724996906528707018834654572184089793640786496600438843814096203249746156800142027366744404970688526760452280712275325181095556911032720755503816937644825623473035138436266368008977414857830478977609561569070112356776546803877032843503378422463948841278927234265700374851963040853190184726127037799738165822792618272381937188780360318721943417025967011005209780544384716971547810628864709875126312206396540757141407954171210456098728333913007593668361740975189268488707028306807093348470939776165566859906306381249579915514978954236508595165660302000098092931799620184034522057332058407988112290129502957525167284323992331686604517499276386866426133328219186302876789634013541887718707523375718974006704389422991176043616482730536188353473863899069265573451265918037982210069116688998694669683348241379735240179719025585061295706620987183983730277909634935865754389898962416207080287002840928669394769962451180436088728952962168740819829882908215018676403245466015135281618601215442558904307844830549204968270135339916058478494077113198328207053272589505174359424775410035281130612436641597448919302515207441135287744551085581873084391941336102918781826919244729609045801267441966681555622790479218688309160536064961533634607674803874044356529456317295756736387082240090451624591716710624478500255607176049151866418827728231514634583077458172431521415621170251188395942593671364185667080672688675363034168649077062204291343666946233620150080245513261092628286088798770399629378876089686829963200338688521467519732908096513841020608011817273410785324797150099524910514827014317256817314653023945417192038729941013108040567665539665753293917544065823682442723459147605860590604752921108620577532509385291185419086496973204773559449775135594948155227837415879366927903225304161639677401073300213236155575210776553388278827594305278688505179697449716696935223450349857352533080680904018024508168773043067313363482816252127651545938831798226627254583371697355604024657734598050452379964001828045668224398744075219118407778029798578865187336520156786991108425393077102684355891080498612336996734206678643454048427893847361549886888881833263813547020353709953344487425784615859497652668213031933928399888526948576918883430621303685952233765253077160119678583643784523092341933252538434547423243452900020476835071940064194125831766238495165742346032947478578938787568927802982592254000561626087542259708997000539152269739234572311104863547217569198418031364691642452845176354851196668189073138964869201343469636290150960728422682584923861612836487179303053204896759584316755638548063680950422697411356712354608886401323971697403120236633757255791241291316798882033343263473886412525494478172298040571143175303193076054791664263149176358738127984998748272292742706676387715388373233762869223906052150407163935633673503212896192774774323541574179729339105183301431953731797201225324524854430266641552019019908662033799254977404487825323619097832029840173712442678551519656141604331640082426452777185255762193880357709303949706649535926654659299070794806146590029244504042620311496445107148279361909155818272657257863037563580666631264808251953910457030049938708539592576050239549937200254807297053364376722275051234517051667759085648031389347137242890646406789409204453425130687728665956902684096166657889294663244083968282991708728696193806794906979224877834922334854892207699112513547464618258233485702216387596662107617183993448585394248533176880885383479877814715039817005878548077412097860946307810641583442110122623320047933952211732817866687732766704072236426146510205655940736928699579722509859283685536160250559378352688336029501920127972428905707141879752244692712583178827821141796699559209960524481501888671157320359106434197825524219642944570751349381062006763845346120316870718526049145041827117452981415009910820759420165199927807066983793453653559789063402982899679018036660427908257772403996593338042586460955306799914304415405772888758573919863153600429081730338914019330677508758646928521496189052791788818576220157302424567188019065677857590116728948444656946246469431332676945762620336307676278846565237290125425224545591640475816335447924486883191587253552730890135957169384067101212079639752046673881448130093907821374252849187163778366546286228362002278124892428774402714262377862293356111552785132934655576839318713783739983079804863978789570488923155140007134290739673741705502621124979385649521243847417426085029868660051691206770092221323939208989173306082253050568872008571579162122801417601572700912073934139119475735993038008198915816152832037171680565780952492183691552835633435789692509147790905355051854718496574105922930650126450024651238281307332194737535370863241159201131946800977853422663327666056955171692945726753952500105898193565118854656103394664450088871260506079461033408838712726604691658752563190388651432072417923164865453354604122662722723579586996251758376663125505065552940026928145437327172731281108781967049482199472670722055596728974008437241748901847838913788883432701546733803803879243708950936706548574964543772269551631353370428847837611513240369141100200075428672463646823897932178705513169344660239060514036007467890396823180904069120045833646943781801389555879385328864490435464174060625454198746352872201479283455437250052460111269511914037339287443068776500368206404957379523259982955247297130187358713897358297601731812409777464192414499359490582588071889723840292047337133286564286057192714789922707568499269653803569822039988501123595504200118897343624402658445457203260435957788979451132893065470172585537083490172909882515346281669565901484348427683504165696116069140619445601759301898734344548856254717899841660926654968583127544364154898830114351128759156759193939800547786601452081833901295832158302574310693294916738541405517558525067152230109408469456430412323188825139805195111526429661489810508346550125563467581913992974119384065130007803344599398206540396509614070618530388214107894165455539562855633884971622461570947650249079201987915587273450521937016188098369827285582760754864919656564097520323527316222581878548080543241422422707639404844452276505045973973628680012738645647019753220238556240038481549412734155006936410309470491519331785799885008359655713317401452279805881764495095042501132284712236154706721716615510769604664168172045753778296554477423634004415699746852380066072106108545560194442424672932858856533514436519162516272646938224187374306434547169486995439425826552488609723418658949066639958157539688421997665084465922476941721750449734259079288397458206068083876835855020971059576419441464578050033693315630254247353209921440216455240114543402597036685466690247348863234101782858918209313351708475422780086153733477706876711603817865929944623327621398624364812854347165914879179694911799429478781779444033831899084496674366033478980511165591138322539223190336461326895272224286292778074581422221469969910830423489187959824318594270530776638938194289366281140027672125012689142133424159672334585271179463230519909563312456391306922998635047909235212836696612980086381769043894842543706342296295773037538296454293620979714231405815830239024120305830066869399900072680842131455320893379490283352913111754722499355551722067447280406208561974669957711498686969220591017035788284035444007918481345172723119042726772283208774628627351994437904090940332659414112228194885065013095435698233048754830557972502472573309354553812833618374995589754203664126832356690568656617967111389343651843389924593620053584218757231572210878807712638030642383796036193355646517626280099618110319585859661310456906910042293029294814438923096814991309238381297318441063357287525106582947614156005076350524785300136904807037688204645301083615697795773743100001872109349971057382177318462747438165215385480090037936784289387882333269006191805371217521355828502503698157807870200763475754593417811694782214063892268617784753506277615120374730431258284521137807905718358009278567016401404874160694303047980184289987041183274971157005312774882633343651817998632950763345047843484543092292263171644529864963006802662059433399165917684934745543031913640414816186947405368624498467252284103808925005104260323297700974103807999733517671968405875221951335999925106966967746548285090952126369830600503293700056456739137359921576321677781835645965392781116919735252026467028955966199282661407333875354843972093684003286900883939523749310152493485705751305246962286291247886830558835228627578880849162595159389106740708479574222001385664813887346570587804113427286984307478522428898080626736866894974840951736569335703282571876037572609292680905729490084846270340019203721172780830405713126315236127224216218875811930702124923343363227649867427560166707827751088353469391773151239012889735349298000539649165944915981060524684120809338510622367121483847030741289506323785769224400701296577203819202785064981302673245953753109925994726410743365133320312924434139818428899861741427098169033401928615634568565832890394415017042031600189122437569412239599677174515278594276758196595189918406856281183169709006625182319338346823341901923869885298535464446974196604102871130286982396359055300674597552888426351451056687976118176032636663584229113061312758738262765632893938886807521207031579839859043632380651590150988827804589673563111161103263197415137041920803811449949016147933476485066017660068262634024758366635411846094860001032173885467909418151667091643847649949026618555930782584793604694835140975328992828386616647551739180664888589398577638194213477431870144683672178331437436833043665905778010788982811089698011932741327925378912692369199577759984339289141058951611362810588516586691181011188738339570569463796029774960839712976076384927283811633860291303015859800479549313477766134474726491343390519674749560656539666151482835177414710889649084748319842068272147755848020756761241996726838973603290540148500895474142289480818283276466509549648939133769114469658501031108183171890316654433838532088049763693724567276274994417010033703904070354636737678362249026131282490959171920743908841196399070501958922832607590247526856177283439825283850622621514932922418003828975957449688658317833541204071226721345386640899365698894151799738273526779657393814912599870522516594823849426490404110546576172082840731204372906907701000897750852244804036451764580663986704497788779420829865587103523881304360352520871572665028225914426904767534055468453361176094593085806799991629118753940511458752460918003446816677531339674824128121933644251767625583453316627849255948354730158972042225877463405668041559413565860289557935573325611837196662525369052771296847965062680826041104654756238625611926584232326814121363250144520057168693545269721025604841555680374423266007692799871823744961476449369654612851179770461488542697516427151242904973637283190019918744734516934026498192951247537479435157684310185295469837781738789136489739028609923376870322500656861550786161057996824032262879976118284862335598919086783423781487875308507549381696612129004963998300035321936428914100239960112267265285744288385884947786019130052664275548508880315065135016221594340559567397163357108522120891046557615122775898067503234103394085323270335551531361710416096336658267824196391777727238307889435128464609697573293814564881043145831307721713486303838127395609241247936522423795583904571331297339723460363484399317315619091137283417565093401065235464332533307675347849023576177391627702427136632545622653841126130946704404707665930195633006940679626179299701037628141618873098186492866873974897024772761322216112560284642061807043798895450891373570078638806018187260752872084117951291017805850842069802439688135844922897858012460513428788785817048362592728243535677526035298859449598654210949576068874862670179188880863370168114222744918672890691627883379854820780810280062216775883678859263285791931369352294184546669850675960487995355069534760647455175634571663327077900107209547358740251638116638434820593825798386172507306724376298405426897969986868439424444082095772027808403959021839418366753167871868859885569207664160941195809060027158742476016950609599239122128404807684873512796799575722912602080101550366298761097977438858194982416041049266294125656181881012441889727955026436454056060761460435983467842749120918735277378067830148221023583594146986234167899483973494727079350735612608255521037951851090527473551387370889462121716027594286469480109152215176471913274747415233614141241420842644068388900229699659942650236928241492590020392246273507385279214553257999926338745053072974183988209153606299152721911251729672842894550018595307077636105755428015269905305089694809393335109759899089298849128471882447224144734136001588124714333462456933725441592246219808263422581702328640727696646101466230646307614181343151763798519855433084630471309740872574428823354624949355838417835650272667612934763744522595866991947713377957819923199417375760165400849695144341073484770035224833183680760602677115361899658326126487769839325957115643026522230138791128490903822353251499300989440357058073234213945561934840675749494575557776002215589018212092144582709981103847726767719863366192565760260572277400456779065509506475100402109263096182022921244212162038652584891174798104592672968716723118097477999185702267280162021522304814632928654866608777639659745108228206604324563722941362255950040856015712231677205633220596799914682389209631727537082270499202075709867373951180883790343210564858515886180686952634595551993628521430446598379540023910012330609404059101415747123516084496970023258962574474750372036132445051559182997375281004522023380484301193111946135657203901168508949686833511456160957297449137371833239368048016989020958265495248276819141903714411484325571992223979646982248604492039071499647210173642381708940345725481047387951260785216157324875999689870121743526064805791167705594733030221208071883762770591810609568626861466861787780649141819005311719546589685067307225904233707430714313499840672472135353109649557136379910041033328701359090707000100058032178998852943642388727962686484186518458262896720129500723169328065432297275139369791942656622700129637876514056751034977037803034470637748054867413159936316584340580315521712510681635484988314415825037078606190287910225058274485988609964109457245109040576056127446331277655331593849266720892949510955985522535177446113459195080464338735661082496950428941056843414901398938495615536541682965514054919198999846712582156714667469696526761771207696300164260705976955186999627773811297764692942299519076601583964585852824462504996307069650475795892665531037242895253268401025088241848769467604395196559580349111856736490094268218510006801073274664715820424611862753583560016063736848814548109066445978306948822992502619686134043533031083754243250124507429783489884508200082225062875457060320732665466682038442328196939339882202362844626260800817888310519124359900674513439950204816748675047612284547441907013277066818991129852020601222199760901541113672907146614842883790439815783484395793148668223697762715912894040212620234243970168355723122773209789080000520384042828753883743638129717844534125156381838143852720266544370981805269371808904809062297641018333725816841981794543566053419106364628775274753138620699775978664627972492447411483578576610769616036146353908855728825391490766382908266428388518579121555290432941926649403676062141318832461631541898313032965474588771891682409636169169255091218352110300444909460032927568768955630209356093934954233095986306061379838832605576072094598035035182349014555557397246159227544326367715636998361451432206861893305692549742566258765863068655988443459741170572869603421981145354725604525334479982430290245795102372219506022044022497771631496267085704944223593701393882722389169878586121934099696859100256985549689987803614210080075799001983932707448712921913709443520206583808780538046246653421351071534982062012974158973206987427757674944727247408387514137516489623326737448037758567972907254251374801559890062386035513742836486643047754171366711673638622169429721076325825067673442326329137392186484190553811102822815629374582073687253188494224193508258927289103306898296389267461074212667910270584439038821327102226807585639905457424031312546392156862919649778526763988467636443527164845400786221455156842988022408376741259419868325717275068844362600493804325581821545540031919145530225317182825039144870036629207218678265201772910487692744899616922705544196556661511276873102389999497151533193359748921436050694117229769196664499867917206001636536941052872890613810195614407572022613245741032821304861287718335726191468297682446309300578514270872806788795399520382887991036442470560363760711567400103754811779619270361860546434844415287023566476591717066186781372764790166321502591228480457532378689208571564481587045611622671232234558287701720266882752224873100666056299855162472182047553549805830240788236212729185588316661992917141911472589344960513687935616265958304452554583394908176016543372233196695430955009439865086363541968187547686039256463290919919971940543196161982594658580809002531050256716691155332184621649898868160739597161726119861329023161577909932997093167484898101121216144064495926571345916048789981300655912167520262072785991495527208769274115421795956497194541736794366164792974683123520690701735963564976916693013430041529929311515512960305426913547530517126112749883283340199349353766165362250576394903836620166634941710071262064854293675354039895760926182435003476469185263189915018395394962663600859565159480741439516247808503212461843765110937437554236819055730356720811213595219625288326637383836665823181823951118447625143299518796401096259135156376209788344001395717542576413036585659067518300270197327174200004327270229572524536119117775292139087241378427576414239913035748604035734303270437921117897516256072676052076384010635483109932900851010249713828213964746447119088893937957093736372855950602392882959869801298077840935989334252833303556474278335733799306584238273560274130785883749101924842757976830824909756138410582397080621985239389118975182872639783770474711375332696847870201488573117008644984165938691916625566138761096211847059249993986142108594558465244489979745474325938476208338234647129965444086955221086559348469541926986035559701694720338227140171058211947758682088495704614630050955285682856164910613139898101388579014493974195273666718214949004514226121177298176161727694660022554943673385750918358701163884411916053295034268247155927227090710372034355970185610210928332885157091445421195406041935172095950448833042152874138592647745578579090158004251217709329950466108257521942636909212448678150532996300827050436408877719412953906066785324426835222683502870641852454281725624443584252242598108460226006255915583231571235345847386453011504118306500677595129420855025849756380168067345954361915438394886733522777215145041635978586075171870487845799769908660101583182299624257003628805116551255498542285503141419373966729457750972682308220826567523453020865950832776324857851954469056526878702005342674201312188289440859237508898218051875675311368318161309653186680163309115082606695792769617637205971350339742866144269263494626994322175367811730716614829843326465913116826314133681974279271482471288339062883981348272717588427565254272712597689491490910917876654028573894776785299795680345923020296923388066251944190836909138043854235309221906023210434352068451319921340824258127519582684583718415295539683410818868760625257864209611886511499077855473930195437211553504512376523914175339400296244245289789709507757550160239400623353066958329402389633203130874792125867881916161644313278217568789365322372558092010542090555260810559589535267226473369208288691297210442264741821087031161473613466211546167697468669613948431313146874890461386370506439955983442887969904014257460657345370714100461378725452433428822707575945310383033665759472671799582467341508575628378792700904054367722396171548799838776188537856939042154166780431686633442242637885533895154825153566357766121328200396619934735703909424956108789718431479175397484414278710250422246285389713503428440061015336982015561190625928912004168503934492034566564380315606193212070900080125350888613278071791802399130675370618532022496418392013652360824708635134158947028660429138456034673838569612506644487392384815150211556073470038444393543302668484546657217369338419203651850968601973801782692284330565148423434262721555159007279780235244935945825498012146527204267199138638242567260543654544474517620885712236252527451087946654777099109088134589085870160536807029589541187334936356579977013232051241644232718705053354586419084907108807099301987232244167079723707251431210880676887637194377411090887079932373921509279740749431923955454534058596642618648852190358140963805758766300687050306451763817607794928074218333994103753792892293565376567132777285020248296271557884542154144541368873864112931993040932442084329927670753649461882012097534379430206304535641705239162485956469779093543902861370291663645789355864475110856828977731167550158854437365545293478012846058627411650993203481006771872559024922894729501925662226830240629326739758561421042683407810814040402777525768653466470739528585984315162335423719498687319178015019404343256842625359135453004565737123820735759776878847088528091702379577191216202594018778118813481278702211837064713682968559791322631720275099779181788632438203503301038246625359844231005420091583258519909954403493019445919572557365871026063794490621625685032929087481767406037066063063678812340392738442352353403975336111453889619958918377279196567892752946995492226440038027168484073795321955421551815692625836295540488366778435103623533198846762737385944840376040412765940687446215234968087513208046258424264643185321614949033720831150514866254113301823924959136175945041369712025497652206507627558808623224802119936156085215020666051038310008402905470164049254757737749703134513627644639165856492202401991018173088906530340286076675497392168413089086986671155325767517575954530675098666255889672274414377403663359312246187167164545972543989713855670046200880765260968256391583159351813015896365390734098003805824514233467813732581542549506930763390439077904689198045949067638146747767528651140699704787440453534835902077871838144139691295319960763803157573810416030285084503965651613406412617682059968630144017766094599230422861923864466789737348547596621475401073545653946488267624751508526373238742773497774531596252992066963661592262681532497504926124460133288471877786080877748559831403416190923892745025843048861324253365508917375832442361982078008358296815469656694530220368361278311037240131407852593108348404224504071506717206057541447417803777740799123241852388439061941162309839009222436242342382104744851265986416322858443862555467457620493938980593489357846473322865065257764544518857555073550260717220326836499650777163154047117340684204382251064220781841978601258363674243011047858789188094582873260646910972636144760026188397759378628753087551026463250558027498282997181124862932422235321732016012091083699241797938559758459079607026653824245818862160512408144493485324286737132508076423921535662018452599951300767917569053801085363946538262231411440069187695216719288469748785503637160600262310298776233521262605534283076086682215139781453739741096798091317422846293266607647697324903933400422066272298335681839437720615029460159755466712503167773425149593538217851476424959244509889571775120319959412217445670229986922273485492311399823722421714807296403690819054676017766400946396375476141232694146106774378056160260345059926928582020740583304632450939287738013672637924858502353334224701430798586777804052629679734750281382739607501877752458827682336601831017059795123304495095608624557227876337905838947620008628718965659293605288869950078559075162030591816639704165104120162092657042348677641441550532535300727500223386931939284413633911559175469762585599820161927756952834976229966098736598575697584229394203339206592162389556087840912323844986678892758043869049763759257747552957358854320922573054576474586853012064954208394891525944070643346500397038514134926744101538204413863403283123692932488738207874626655308992669863256849499257686165701323171594466569303309951646452010649801918357934918402733398611026360273070006470011174924943580174521289603044802047122508997205830005308751947030232566942377918610210509304926523339995053720047703657406322178781958571104287147936382150206947890217572783595434957926799964121111532093542659399914293603861399670073875216025064824166266003662522508234324452992910574552292292989206327715308303252898973862493221464496448545236210040658486022049143832080333193262204105603996776745389304260083632138159587310644228109943684797824614904986102168407274167624792098162508203611916858732023797882305499425351385939502884066248335314351926863378093265473509752798411210106948875791710961556221632234272342321200240432104834802163341197924685257236122878609794651619694441037139682347752703209777482266311153233179430611987607991015057540019949100300007144508502637416298787988787505703134718128988500011543879251984455492273296478669093114744462778609092803042549290023965138349061567805808660586664560043150717834505917863295288573373216071652422945099768410883911685071767141351709362101341730517525222997926843903219741797531522373407767741563143592638160031962246753959662082418463162100445352801146912189291074570296145908312072111034805127264657344411010470127016556617032554685700879058445383744410698771433870242237230964737131704789699396720791326567971206727651430814787421763486512156878847751638826216835630748338968262916808261565176052430679986139868272650084598467200784606276681006498734636293166497775051158665982776714080385013401704696808903865702654379255738840060191936745258038165972906840290518904249929555406865256667185228192671057478696230672860189258870709332217034280483945032372375555359983535370141211420249155258265569279884998700061830749576106500752476851563833526035027719770976348525614464397248803551527100285564987656631639910482714509528560174902099661672499467924968442761405172525865681203077173784256858807326214764233625213036389179903307457434230737333620871564714310848741888010074681462991124883472492280755501808496326466089948646104789427536412021390213092341793268905590374529516366908792826785461181472621896678133260651800313010359958322243729032402840398422269800960393294423871107686972205600626583411492284159616043638846194543837971568100712836870937073543291958665350585353343403566844130884379931407000041233326907093861761662337643507733333700574350689591604199644427592103169083776427925963393141037393779181288962556378866101218391333504702727500979587253935670657640433277536294975187322144855528065117383779791126661721413814102429868366450941823775107866755135787078570227958449780188988069876511156705634384093057775303553177685535657681076895503658390283246950140005244897217382652264640825518116747897608790889104212880275362892264256297753210244676531529487735544280944763373668454640769558709427739265148181024324915933535765741228787226129336252192007367701731100643385306019147023487943468009943801008578483278242481424737979032372935731946424256483259781315324942713830201685597138365411406869467074833187917191968639253790114717385117778713415539482200259214092892098676625474249778275674755761094821988298566415314244204016029431916158932400224851835903900583661204748671194930537670152020598572833942744213175454328612597351659251923688597853632874525635209859879185209882086732106666911407419873708355823242223709387884312616994124218157504884986691003015269840026656574279168144715125450739589405816986436846334248482222416343754464487391731285128532286057938010893268548757950521179876741257355956087867432063790117286859901821652426759932608354741518105129390865234596601325416377853349244260654789451446079781443977851605597861712744908155717144627755848162581964657299928713202491876596066816403240571229048334539944885996419533909277969469017680829443063047486532519190433730630908444219245552103495104370806725691576747392742746871139374773778726567409892784721085065857344726520761752830453880808717707734752930056409540474723020768898611257466622902969058641287592678929610948259493100864309656873149552782695039974670264633720397901159124819510864972366639103939113534891977268596122275024054600697423820404616341863215192372395055403687705488773661437102822652342304639057057559021014195978113849638246767880116832535588177934111445945248813632258931932619312312333775451985212813600175339060340323482908627723896079153681766315510497397188576694983131419732984332765971947354371196081035067574953504673521087865201542991020290007426822067980244919891916807285455430426205264383178076718086157926542590254361986539056841451462814018268025495420236123207928420847346188043080292391953541190496444654619935166326262561920462413616077193960277399915437869970381304430006079006165370311150562581930287989479939029017023908696185815021559095664007524385448829205446005482788947674180395206176601257528011572813105799075691905301710291148286398308675823379823081701404775894060052324873714570545194932251549376670797755070568615494260651090846018729116026733305031547021862684215208773031520293958184194660431699056605081015621537176358284745995458408635169685205572988278896498958722929625427730195792136538560241837572375309433045361669075717186792838018213983029905120758912746978977463518000002030430018037387286458870032892419899495892478771547703812742192199554179040441007473296094799688057827882751158289641507177617788279855609561713731230116263602428186226534678744586395753806002286496635439945440740857505903944992192991729294340348441501092593661912385017965872966281713745034744105048568525853565363007850676510533287526041204664637577297486990991687200831376043040629637357822211188097629064354510300947892658270124527766523009454115241921036488636391150455102095237965021555188888323113730620382281484447243000637214741859304168531144847390804403980487605200597207964440293310112168531588633400465988515358827068919623569071391848775521901311243913596980906467042180779281405443469585952086112978439244058945582970300874670056950404239473743826591255624317417322928757517849412587115769602537047908217204367706884955576607419434269725100702941881640478550492043991214510004612801156518158271209874587396130761299786928096825133130730873656999797192710172587196074582296822149155276168555280706235189776340700202061138546659930925337119321921515964234556535406626746660578074431985967523930111155595410253659130217229302459537120929357130195311434677493201271393302116078870111582755285000027201865787101746955439545596044849165020600702785636245466006210067393983196563113849335223433188901791180859111955797179427958557707817631534750101317571237093975090367141520386500582216598594849092360234829874454251609395382223039167673851008128034554105111031965907326982194730612859907341744018977347149396050258472415656280896642927677224158974608167688691811052102950395488983469182285785080917093786518128088302586328927263747597092069482509901192660873517351453586724552622987068911967815841859428386781836355158422320965758197634189795196721145384350080584195429853739359407944173788460049086906099019025064777030638564383716956038795980111555443388271538686692276009368124323443313563830058668111505277992483813320174221504784284621584969554626790067724770566576766055040635112997118649118375227614311529622921620548030431173853605236049212527493306510587476374305198316357373241936302545112838235207456189885195422543540931371200524140665683791813210769526883387257303584205495596896198134925538737971925120455642673442393901647058783616895870783283839289009535683254855214845936148505153803055769053775108534926276248821602658493485806822982310314023682560939426528732937554975778474459043062919185457354766548774474633042941354332863415460737966397318435327543695932811818993864937981756236964608899704748700745710080533835650858542229819091255193796701781720137362996974244542379442123381551249866246136431427657093089255673475814637855986895645651957337873905337124256395831672960160667613822087324525371002985113237547881631475025507845625546776520660314259716861374888750316014748184929331830700060508461345332286754192931255526081874047594726605705375788373439834050407917621199632823331743461584257908931617236579738002946514864863709950876490979008672682018990850205056057395379212088195315840994730600268614770804990236515776587904345664727526231098823269271462014973007122406806984868634972464978417978402917337552729816471242553126902879522627489367975395583979052801162594256835525384036593917521283102291384441586154315480542391701145713975380180420695054058810364865103821105225014187913023663527132674094446926165384293843598770968957714090154754434457332135071302885626771162893479660382124874164673223490682088872937824523374593154782917432732756812121714721056228173159996690080418952221851876625629957296125640638879453971478262808598178226280374026498195393149621962491586318141618698384091975121405728088503777220140796206599258005093395233078622935194248301888020568009924399858528836718544022691898206717577641924558918852468721699257982304989435241222186171836753392343794725118782425362231079500259576449190628994161779974647999995394118598578594095210668818716259540065525242492316981074403583852483975430433859616138889945674431999552935557511474933870427129425312213910482670475553918400960738991745436794948635001973705049446323370246318888767168209625333707227883972447311819269589646455598021061350014289918474425650108229881855713361495353928908987551317395423336930836296753177146191006690065653215217454616940179930399209952555510841557354589915601387452619271161456133756881344969309843061138361645959031914696653433197387744640629866220697550944060118002081354488549889129600700610345102240587433384051893058291393827320965811950672629062330653277150316001644010900098030023517794790345224001684436445331406512645144692314385822292571039334515102631705075826104965111740411072980254877367129227626340985739276402951334057284108416825451640799033725961621711517187194678474418497081470836045539115303330813541461591899672054499964631411925220747092513610845626610762039774149576228697340576098584178417562170123986679637629986374504567030576998100615221238766102278832097224500121007248101085873035765397768624912249690586403534496804383123034624443597406725923194875251011558419127698397893628087514030821592201519471956434415323881571429854967498626732100519123359798712037994222207948066777328405236328904731687704133498637328972783639333759847569355335566558880701065120008742093477631126470509131668285816931749536378378029118906975642978733916134685035450322451895602710226143863357317082207510163058175005973615249804001932368517075342240563046790232034388159372838734621993001816169986509804473656125442507105721733978082211311546298382105802725323654738878383662122875061466015392540241921311296831128744283665940509794722606659040546093513309144500162044809185949559544374591597930994194070247680621758642527727619162345918288229380802196202086745547349900654108016606119308577332765413473380136707165349132164145298976069324367752556929790575250866322411125913923274496342672555463994217430768580804894128092084458900789829961611066056629733111366738970847901222397110377331849072500050741972790443335239382404347470843658456695646267821698852127723514120022296898390527854697439038389208840216526119078331245394686679218109750486858023957626616522920302599120323676694802509988748939533231842321048539172644757236375413558394427019178719178100705541224877107788945864241480959718257144047284128834436593841764124951833987016005652614712576606583569462533424437902656001419113797621236261657884917292622307057493566305047445243466813442034553626949047532137004350839472447148174772714112934746095128156172025904267878427663168426542591785844553317369835120579933599986380707123942365267673402868077799451694122579278540966341313667491730677618748865344488946903755382074183573208841148898917875152061477964825227304530282905515202620513134493464066347390391710303826969514316807236540727435341123011983008978755157796234911902900144633098722201305598578344125408431499595000573977459261435932037826765025259897865529114810086820001796515300516879943339097654548222005217715329013548812151964172000924295337946606863742160688549856092919240333587506834789105944670034829447930102144074399668081124290792152295445000062779155282887347985409965951224482691400197833851830619422951921947680964024137277633161755894925025423484358694648209985630704332412657333832748122448569563771152991236200717456771793860226943231354305343428635162851171154260438560426123705274648802647677889045256359757064535449179895243994687131980429798889864729540948975868097551804924672845488741088994417278562127832923614340890493487296226150478456765173704156541307179652588926298130521302140575395500770674274086398119928127050182653048237791078997771876706541206202218093640181675193010686501685837555982022714364179242965977292965055859842109669572976706529084802326877209522459100952363508713811803439166109627977308737710013254303148638351129694580354799921799623767107256798517004922291413585579119437676850503170308185343682751729652083449880989589468966080886516807550760398164406192827352035663385357269947959781129456166651092613056681911232857755880416411595832874173514248561280378182134187225273927938337628303834407623925543081100464760672144508082384215595774397845064610849585658875317456295596019241928717768243151722248655343455625001384330179177017968084235674060584242204341589106779246038672096042918371183069930455702335359718819955148293132768517833714706093960399959550131592483466674478792688615219997550347602261086839250107381977795086082233392590890289676274992839707263378831358642366571702367416600264965548400662237494115745828602230182161545901431438785565404650418342260955524750712216958580178812874402330708352586907636290266540168442347734452637248001230509798937265842805627019572341653044817090295033039758547952757879049503322689465025622866162459821533503415961843382051015818247485326598319021179604861017347439824241206128157183209197541997107168725020012523411349172334198170862506538577030929070680542640363089352523902393439012571719940515625708687714374658428796047265669423186499678893337366875892839547640100428425619009165828685535060470123276824406403996619323488145429651096210467696159660371816387946706474390654023741004423210845927620579734464757946981354845359631396502653852796034230045257721834304939050061596304612239975688843147682228075731350108400736800154881916077375591265117790628021273638480609174202928155179895465277328951623904366146577173131968547617260730647300257979930852742853619980927427548830749246892839116243177249964889043713042875754418283206902435458801473146888783335590087082653315173029628983224815870084658107641417901815086737859643662601497379910610558795382803095301944849308986561800440956656127440115325785393718514995334431273745091946452225441057625334752042651591874285531382362950795005162760725525854591416550788582504929347403080423428953061649737715738678379364335138924127372861469489761514492917345559949749323059689206626581711818005773633888429087115679251569758424317898393282657278144688786395054221207812481937321316148931380369902123153711552374164650901754643471069681524789753543836812851561416701398174238942187929086218694743335231639047513992026673539267896822521082592662864798333785402495005118902253748296270951070577189612157869992963921364684878904164031596329812214304258531415206050108201421526074235028539496045625345884722735302138325185920042375666071511328740646514903983142577097779469371907385377583420173246639864282226960283520183544896750036447340883665297032280836362666854738514901786527645432609886111660785529273341443524384002465983788371944353945014880576365883901375420979166680479630807281474149983034357602063891302609690426992828245393485147814322561270026166786183211857924947001231652129499598782687445151958631081401321254504095672722369470990814553008184287989839671419091631589697495473875772365751115990365831609352106036242864760025568419704619203817297316860740468041591083444039986952040377111439315432534691683316350025723832995114145174498115115332241947171371932715714162505812441616850880586091271950518597720137776425044293995153073940403639200443186289772321278506733805433630003110181687201847770524080398400782608939185136263192906169294564200238205416385595936184538096653439596263518472503691819046352518491102818850171173364868297891740054123014663203570567865772510062222443197199442198833703302469565555413674693552149667531362990022950611541143978665395169481006026212443422115974172863681703145096577282477447062316285816860132042197878369505272967878489766264096329454203060511761121897590235732217431459999513302271772606104299494742970051852932547056722864174506661183047159400689009908395533288999010067786305286668663776638587618306461187263131212019024103988993584383456472772785129985266023579455502992449713329788357612757868123189490718332214924794871579623296855519696363700061688714174386263980737357335489870115353149570351545931534694055433597124778393153838743607942467004400605942174495893666064446709406526130754213024870948122252179443577297207121957833678218063789115705727380297780745662583423250189152644384555061442094379515219304878826817446616414231450331855511811795779438371561211045481749469167148545757158957997714968953088037301182673861734491623837116850225775378135466648621494922228232484635248829798495971373231464622181099479983587965122757742074585283798984329120369438927559224406273683891569979047227576640311370443820357003536234621496106953728647514549062471871220489874902969736057309992997324231323003436927811452627430029317233487549601247689853457466193078594676602983369575030682887505891888736208890284342638579117373392344730436870307452990732787417123567557000718229261228922817008309578064222088627703974415786622635935340946965957890928081100369794050348749803249067436822011786751840778151598528351982659787964466890569157413211172206996712286752695863503713722553703864060327701591660763794772129820000398590370768665401492411065258812997426277559408414676670125645315842306103271230100590333593979115732529844630425710952997037161132884673816554601012598298629862910351186712335364552816635895252019610211460058143401698762858044155269612255991875107104228288218578269072150776303795550319331653493424393131443829612532932367071683736753035128202976593224536141295934999337190343862722227764546799739817613093080772681061370224074810294388270895329554760666766808295648207378495901722212290910531216139745412688955118290384883251081093646777461746980761906196374245640308006854249757119797635378551358111854476040479688201515297758746108487002836573811079216591651294730079346357165801847376843373762747954204268506703306228328266385345956367889853140646607413541872710581712774233250013697885982892119425280236505005675395121166178479632249204212174684008381652236170228469881383534839147484451187726612456262031606928108404861042749797984085842425635746873616328046330468190308424200419842077382855952630977915804978109998257443368141303596296892506933735828341136621855881468733354981962263722346983665618384654743111143783105766386176077588318575118803919668229533830454135536321762114644132060637427005738986766383403115137080802095412668225422426934508142767991033303793602791650669731536643588884154177073883811578186183985189343410775680752608129180747216459541825143346555978768687289358919051798270335617651194139659974680879902785113428143706687439452583011905390183943471128194059086055138983054684412465107453823684725781629644982550721475321805851977055055060176797174148793732628693093381542114893343859378724316686795650976376206177623466797522814540273110205138121204813779631892718347710296384469231464537837948143300371381537158372785562682988900657651300470194003222863076311969102626139531354751805520444318697604216795459759205812513837421130972007157703950785467932475942865920793519482719439375097840779917429561061814837420181237352216743947332231830720645160128434566221342371046777684305835246909829413076162893249444534882707071046855475278619890567425498795382011223061095478253825180237991813461750621397573992124695543836785276541482360587090222118988607332522078794472320755896216798052758195496277590180405709603230708057454713262429151467697761682908177273323146620082055633739810836522943553559737139100404111993267607352978031124584414968245780490799130903629017164710761636258278403338891991785247432457639569837226841469101128493724479059573657594281275212730726508620084478366674853681388833305534430043279931940095758993843097951467364225862953420720993081221854520279434707304042022876387949902606356306309516732267880900771589096664606459384976944675045179386745548065871272375109153725261126372932370461783968877235236502665293340970116406503701398313836851143671777340690304955783999586867290449242584873851981628524337128758068705543883333711133405545538679754962639716198926436571050729944808871396173690906294135233524570921920961506036115393633903844865810377363472139923800866231560294780424917963039309139458956450208975250068003543368637373868887224096201207024205873870704992484150450423241419593043676859705445959132737088565464072722599676163901850592980510520182814153922546415263978300587216214600566036998179486675822603780358163421214558386221191083079326356857911162862294526347522002152260158155942249386707933421729184164404817201574701704536095206888261041374241841725041632609436387515362573016274276135485658635681571904779797355653796294167576526658086536065279421153527404471919299190560563581851136195495369806692790006414244135203207319302929818607453908789775863412339647730216843010698770648717755097168064233735199471206138177492207806381319451680720865654742236435687459231383071602733700749945913364455673803647357047873438731296400954166008716472441409601664508157652634024013477759446908002119226815677699538517331986410583870892899437445495415674783230853802574609988822410031166312137241292499579266956870846905688902353020769911460169146518111154652114887809732865707022102166530968951445366033202140675951489859961088287338988428564749322489821714013640665192008682863402386852965726477982238358623064808465756288361299464396135214660492626762866670808940389585018572609432564431457495782538011433094988257976758005705682432684002803550667761659726255410730285130064604967109321535757222440963488937990543350878063258627063947672101378947575088114961968736063644490102754567720560079040103860147335404879996317469631624337790583816224750778516609656430479936109088474556538379483571786223050602620929123187552670855500982921585075646935550391602818885837282137492346088330419372919164511437137341917066952107732852611310739266449579720288859370491027295239380075718836332630209831510337688336766374299673478619901623981522421194875369086024897116889224719795073210734543977499232896150608714690116050627338704708369178606816774558853919162017566338000308367680984066832542571939537200027282106599808042857896916933614810135039697469123030819243531366123534977915342506524223379928754672365547771337162138812620668527611052880365329777769762932757561406289751890935489447679645248513822127547728393834126537317786803017568579900187584585194607993076249166718762050723585960976159748772342229551687724427037263992850104921383614889276031825235317248664944707516034665737167857292184395676368077917745640888902169426814585288021468955035757766309437603698428327261296929520841268853932285597223037114543243743580003393530729751945588451671298521194154815422504023669625674938031031137192749462051860395453981931432768779846562461013796891931455739205792026927023632902925534489416902689405146709650341043498360500788071669052370535743461041000559958413490859640180872243643454213917437981215436964430867305357101576318918515893436556310977667344728272348423721430306995227625764866651830876432926409728476956952043887504778742021806730436335151635059334195937640478035051605973794155359963455774038165049653656428070142573485504909856750426428758383479950086518349927946666684145614170338641347474338812966328695209646076150581502658839876138251057057276688992040763853403867338150012814786303735180583058163069730373285403464901183436404458264242531577360816808435956202825566997374160202097198321020303479861832662181616170447794966743541290567802257177387329057171359571176672797324816617747669264203355527601932551203643842192005756175007996385260614255674033285317014330835668058147232318504584669625832294307895571399290337344631612139445813770197794110017353955302029945034713239184303559658611306195995342957324416051918964114301831743230016161904307294863722085241643481692631150967672144735103534302722222913224753581420986660268331898172710231969192992074027930496815186017531402542252683737773787281130813285253272231233649449399462603871417399559444617896431621580690453946588111067431655901744213984620312940773629724491551695786855495899331091485593137260946660841131088191472488158239846942644545909643668199793267487705582455558760697990695738531636470924146424114057703576093216072314432922233859403721642354774816182448362357951579880001276523673064976894196060660498525848883219706943173753957071214987089522341020542151129752083868945985479639011030718778038183218715907084640026665782762576453236936061460461483354993098612389658196112037353223590970739282778774748662538405374612971729220847399076359084690323882560750887729794052981482897195323419480762925665588152460680865189810890420048838732693333416921479819496744951309787336845343336513531406899035003550648492705611444134963988417316901430629071667821075255983212137671130560342350935687287230962415058682444552154533614457574280356602582366284870381576656819503358850269710090526395029896505388933360052252431045382022085386781050948379023882457382293157901440248568040785883714343341886715012613078570026999363130995433482195591625666050177289065391429178695480584094412091622737449202680483353354851157301647671942942647155448499058957650820816907687319408032053215184365905608950940404719457468438135946734221731446132708734902690338707638697985338079213366812232201744865305799477577008216107746654133221007207645040174817520227541148446570376962185116523584612581335132881743011433731849409702465143496248675487911836562157678934964115493369055369349338399188173616851777447670600915751704586581789641215415848847351144092393920320451365478410013831595789165802532134598053267282859120149204857727034408867362084265154553753265103117781930530917916338410748299683967956804453544273003301172258887523195043211902044242005733905771240514118404371568256639457560957843562233986131611781817062731598790027909833251692654616706132229934582347193587403637775095637885688602165478814394403162988988131956576270519432428907018854549526846662429350568288357594660687019236032693701017016038229322237153600098460475352134167402054405795469027207423064732463463237139875587046033787467436845392864657943912046863085515470355044039882628771883171054523276995675454977403185348832114778729997279392902136980700657585782754273732582386035262072214714060625287812456067560169634285542842293346324540549646788809063812452491357857356121403836415177991259824780147681927812627694692555273226422620346200463569303091778570460105368101197669841127480779703285260089896865481267502105390892285180200370934107821600650312985636471930469680825409601215573056683824772553458617622617753958619090954275807442363158747319188417802254898850373077153291421686911965255151006980724617526539831781071465351042203545742499145032259259859858823096581983583294868214198998733796507815419212989353678785260984367917269864004191433193588985819115531736384978419559183215986770929562148006948292762515164698851883181325540755859699274334863867981974678520134940206752350001480996369427527037970770639154698529406504142184026064238259808594313500878319786852990919562948970615929493064768379778457237403809575026448751595824706765885976296892104397221331885733838630218160944420693939482942472375657702119402803759756825375656971976534960392934123114374724203310532529522525608772013626141143549534242652965103782533027291971551467733475399513353935639085098484244536321484409317803323921215139022445632836472961913522683203308380804858242250695501449525223278420137805263834562978325351029562257277221730069346051516900077814604516838426335934424956638298225836001223860099804006768650324153224326411682367856796316557834507396958879628489586764638660314981738099015798035173375991147689313390427624212668698530335321000556089366265724252243813304211802972413702654120022965800159138452063172944652713157438954186049057571174239401605298306613237505820789458884202618146106010613978718106100116950894862625173744477590050125867714848633858227501846434615585737959539141808517292999027022027633197820704871896135511930005697394125269750252068380633105180748494095114407149840236055867697230959818693339762592406288637448872007715718385710502585085785955723723512874266233627709124423565263252190345644348950186366441447180560875858670438714545853222935954190665482385776584035562598612429537231337168061953785283615445328671230943417036413110001844865468725540949910093513918819480424858664593804156774205769302882849319096244862044637239432596866614056488051274997628072478240472504945980941275702996111588620878835420554210014464518180994023539090275290317682598319350386779949766907887655666001128620342694179137599146156213574562015989623930843278933070982816750821589245450518760310870176690597817476895402635049869671444923414985609099758196685543122266779880805978469640246292030409151802623265458173635940956607466149065776138059246127519232600664479228905543187491669345061620796402293773236997366693506073087321453884645318369179641997179740636087492707059713526547885722327819344544916976292772302096475106085159372613986456918739376726135852435787475329230900815388775545934912972221524102965492667692889032840051708696808782198672063183112603922574271949301388777586157882686608684848550478242279692161618196147102030627217687893299279774486846267254297974605240637302719035451870003990196168615820571842550868923467790849183366618076316883064104775258430979624297346908414582154832371922584630008412229555408529409856046745938698088999497167482052674136964769803966289980137112753525202000031451865651079298505048609793217363444726485987513252919267631126198269042154759245874495112591237276056802145956453653699815380200309083432876707875468372314997568292143191533107367284994878417857794972795899363817051915822776007040424635429213668242791062248446427835610961762567291391344761616666352328020627265055324602120940202742776937347017663118258362443589594837970988216676273654078748159516770182867360257061005515193399870423019061131751988592341927108226408591882403763023354249855372714192607828822751003926515066477360053363953176697598659882591002731652774343261338091262140441354541082235189105522457457022226854528855342349896450887320831077671763011084748473450302944511988412385487255249693104664790560389268259169697995325314076186070776310834569170704806578805177862435495272331577037713489796214305360573994242432110694950711597183328775177578730485912670969427952830652434571201001613479118331453166661217968600878521587981092783384872900811025140189716998333457697689917737550824411991399551217686348532131394099989827473950496979250063730596960037355217899508512853185053570443078952387753103678061435155016484218370039514237760182602168380500000657534845570884490799101140309332470916896964504345536162781902847679808847890752484184659659745976728454988160815176068931906952270677281704485775497529137496333696727633017413972700277308537546385850842817893968857974847065297747755698939599635878508432411736544915211139992845375981066836425146703823506532772422661488628832936852492072565696388845592711722885034514903180514241274148972381974145881517160255179788004920530163968861699427405037540339912266975250145295270328595598505155919492091528636466085081318695336554981290679976132653017811798291464908282072919119456822402349917129862338530110509764010654104108347284197593110524534152809399566526197111273768332519141854191724133167465406016778536737608628882805926731304019107886590208808091267081357896376490528723496060065707209577688389882195562138761428020548325510813262232847535510476371965522723456242258449588631622382955576191720465703351856739401328384772848766859977232387908775964096761194700519495680947334094891477107591137037971617821956325134406882108945932124443770475786622444893486949516814585218050169744752995713148517889844845984249481223804152650080661230957343417128273224701638464776859013563993363403836129029435324542131518383369794939073137585686476561770502769967991562487199422610561378429378168664126809256358138203909760990791350373522243340190122121526687793782037310173063609113432082234689857618367390883258612457350787182591386909028955247341177515473571010861157300846167765729100581602870906567949680360811645014647491400220466237854320147206357032664037637343373637673244529157691922122077846831442646719852838457155956267898221963052919431099274678403103967102071595927531148483873167849707396010772800640600094400685886777423108954534508245393120193071669356505847031600886719802541185614862752827216334486487211126450686974540518572693453017772680887046742385916465484037917808150784310661135063773676623045569775234149462644376222558705988379245728458892330561345189602839527913543084488851694932386168775400165502626955424478650742511387531475763951904184937078332396048707799417749096857413429722168772058432378998427785141493304956867606276786916405202724884563557242955501378781642411747966132948614020036643118742694350599067634011803786346316451364613540790604455179038950221216714269647014978326853461816209720212732265158353152847586983351101226125875113754546993350666857363776039427549745925808532200515664682585691558632043113523577665268569731360695976674695639463951021422140708266737166621952000729041726896223109040196736936863517060342529812761658875438205288767161150276851619381095389648995391966359275127279563118902904957044104128714697025440265845049763178604230845138382060718619589020106605026029428016379209279412239766528526340842423824233769608033219246808857281501513376842150201691006728292685820154632359018125686593676237136367298059585781836525684488813945440777923735857082173128286313778043326105540463443697183150920272106513797323487304067448995754297246792049232662847845143538894960161115905578378153700633933280336700477674849744811845812657467553449750093022387943336512330277293633462896846767704590419187901754498769991020848269869380687884294681375687975205534325098340455559873713796813918244653867176672889669540361387379106513821973299599182100834053472982020590680273291929533596810099559410211910838322656391779934693900650464315983424759266171940261585857587037760641487191999277912631299780626610918676905095662172721549989650999660629779851860638818180370651134590467465225401855210802641727546849640175875727922324112321411685835214149931721862982415812742048692792851427873031005616195028941256290381011119232258682550214752597373038816206752302734191933142619794300156100108417779749115079150361566337364231125884173758905212479982817798936100458264695783242217310934356252273863437964345158444735906728254962245707653347695927874659993520279625899073202482630718036616626060166661694580334029459560664937477453815300510909978116969557014594017930367862477283702760442509039104104263366882759315145383888223464235681798087568224470126757309473709436778645249014765435081418722810216853086362134266123565391397432044692021889405001036096356271516893419925998878539177695347958785322880483367171089865972298070968838317236112044298447798599500341832471881824444439270722627801355356872916579644056026631894110301243500147210952071220438325771287432406206046320539447282293124715338399550729146031928947316379241407138579409011660148268570010430114762819756442884706451218802939128926241652840685162883232118755652358551137957034141856652579830684272089842320476323100368076733437783891718686765700172283624989077429331477283142409176492825428752343171340817517460901669524783300374824220404595490123695833474671477802764190770104397730737710677318517196429380514225649362034764555365057143092276789008360788759135953111566570181681585423503843204649139053856674890673150096214462086028635548735198218674941208279506772260106559640516860803743723410244159561801026939867637840598012294084354022990488348144961999145602173551357753334857100884947834382012582997469973658906392488615308938832780321002106713539224634820074503512383357107173243428190118891679328846211790368226481614556395866318304166013307166136966152624412982970345941710822687879884942950482075983197966956424560283331680563040876221167508835662813674195463073307914515838335506458764228496778394944365970160059709304683037642363762030038548226434014018723037262944643480752398186465351797510515236572782900182505080552611350200750041588303056795114567717414480852890867440252592481390393231903129516533809589651184674937822169794754880123800436935851146213403905304580600290831885668827034107206909198335573513109255636579020336902967417251685567132511460313169373887987691692919713838435019354023116232292183805813139298091509842775046590916459294606371882948343261790706700771697460888594918098155528271935577013532289354595608617303208364924550949371654130085917801491200257606243762765504537259896419244098822576883249279925599870364239239632449355564463897255201066160995386245342257599101417711876410358472082876302381989087402457484774967080457742872928844766422534898603560753640741895969278989773220522835827936744910547629808258196068773786299184465819815809705928857658252175673973899827588413206130455659723513149513817197177955225438242901409842303401254198048062308183642148672042883159034380799619813208757354309273301903392910568364880089095595214307942384667043091039259485032892663131131601574663150597373498463311239907856317911408132201016713643858054648316562145537479673438893022899141644136725106733761780739636107399443266068887018543501561015841778502939614886679154242353697573353548467886708244088976608303832648922067882162877126902049095878444981980445075797798239470109718522155090402925615757068210354371401369001996798643121606365128304491545160508429319626312645652238554685792269231349583977388313119991802968898415694743464712043398273406442917195876669380242106605932541650951096213074323208620376538755839602723958528396913935220897561201389722044139538845070562802676002472526524754070953676406198947858881866547541711560493815143264642224427024686105206272181679902672708826915994121790341661778022885528102948506284381449039464130865767505650738318304354617872729511665487148917947652483900247219577725573978251743265266356165422919373652554269032230830136698728998700592858873461888888424706106130065875915841119107014528262157507245722147380430817781340158902638597605044990479339811636123927635154674143369724497668003062511835434634738780361165091994868234234766409683071184976311029681153209173844146025894660382260330688269011887729688726109463266963115660108246885690394368677967441814636615397461643858078975007243060926972261241597246880313282999434849422359249397089714769357622606833470006161034747577576667759864887417361803539622319954423867145039781691663878572069568794829985693539507390423972554225047339985132147376162257317896132228263165388115723578686987225619883960182204249916331919918794275084528343465048020108174977961104660733058840907717397206499841096200984053944276820849445479069990812465006073189602838173292541313477876075409807258957847602834953280055830757715528254077138921704249846365888430545154765801233834694590846591416166890438727147398608035150753786832322176118765865688268365681413264186206117866352869874730101335410676229739954759802423124895941180220885230461024529375748067127184416604205700883691870556383586111468585808573326238690908641535559380752385495478283274458189867614887848672864603038755975649043315341553829592301255235023582493934062854299416645217352874544530166522832720496115845973198955902836951394578525960706826730738470245176949790640807954966213163348744243668477768796389432738452954828871136420357483650731792441559198282696550573361811118073653131805253057034648375371867874534039307704095386957342099822982426962777203936550431735093962201320206778075364461325688351196948775923150447203649304226286137905571981795358801976834366548280222667258209310678437393497952488694259616502036026928182300058789372639763634522203825577547086979808971595913361214551904837891744323044146428094680061954259879652824726328435133138752515148019901832796509881998963720231674040544826061370494096057407222570771885373349739558762693950684831285731125711376071571298489822152668509349613353546116044183674574302535601801966876922141376732601768175325652686335795516838555749470131202072602089772401913368954474259577557041475221883880942851246260687761249495115922831572419055342313905744691372407810460674842007361339882496825946862671336234263569689945377284565742171845113850013937646444321311033714510572299820287745866926468956268583573163929502213142434532354031224132295917148359730805364393360913357841976743942621829660916157397193191263027205439988880091298011382381837808199096431000243787031277612193225923442058651870743590013345152436779063993659348514359098469350016730550633293106917842566478166973533974907184268005939008906247709971152796005210985599293005177542645687769051290733413669859358622087514682639522915964176668163689775332967881476341217061210547342970389785649993539128213681891397542429006259004973882433253025641031341357066427801113708761350912111068317248808582807380114803707589652464823238244155201514195500072953096779973327716701193980804882956502987823171842681679545176193448170314342390613399370295017758988260119530480908364047598788093161414477029215100655926852833435162709805601523248087457556045253915344331873748503873090900751493527026643084566250082908135511855678811751823591704161897841740823917385877995879701055049916692355329332288637784516548796005198303734442547080715549860657945633403845093952905344579058875404490845304624764648489540113544287269630268514643925822459221507414996055714384377338632745216349684403259984067956423045539652771037134359759617890052829091627813768673724331062791874969892238189381844387314617647717537449978152964786552519419675992021605347339356799073021470546857244503774403099779974948330692091043474811243580118780770896377942014870823643703293723532267166534644546610088644814610514216872937099473466393539382729485142986618880209753384684657706119925530495698498954240149802742403007889809773428790112918737743525416988506070807039542784519519848141327103936492098013430537628159136834876052391531930454004088989138142047003092213941155716781023314059389852497247671054706418572385762158207590635087812953395460173595556441647478430851654466812093928683667272759260000559298737293101890318052912033441544313734613091323903288404485701416919654064219373022449828501659803020716593822166110461847203930845501087761841916414044234529989546686537513020360873185801720239461447051368029186436004423895555984227520395407503674184731722926361448848817147526803576217646524612006750889549059520479139901757469038538428917155009692280021620936872036414327085630018569291353571719885702149500080647404068977458220800532936859941441616616189427625397250292150697893758755271193692775862350096535088824059169286158347097828730138713613062188088895246525908148849172598887055016766408784265553335163701804814975166432088761889471484891800620402619342995797913043833114990673906305032048986950883194542029095062409517017793420172748789673906329919089844396416614923276934106128967228842938889118279520201328593909055652232308002832874849798046345211103143725857351593430242650115804908224369366637622130166328506470599904552275954134769265648925575230445800224627656139512843653335578940840662019174141551954346263835222601495790474996893568486404596248247714828379925908359803273779738343735278934457156511124972965321438864101162064639748052551093760597194635996925443418757224104744256951522237921213292911797425244149381476330843466672048668013437416708358583692403147848160514191010484120708735011897922458364428663195424672741564329203807575386299548110963515687845366643181386379863659263360782881698350267573704808464210625272715819997281930459505286075647031469635392343543850538714764593630798516949168571308197105252524519940608878313389815367210607659745122517888234751748794610170854754466331740961450577552894658908377396781497681862612912936822002914242038472554109313993812588448641230156128825802907492657619155349049101600932631318172882203491013678642361602994736042926935140881287415400549059483393522146931142140491860134781210585870198111881470220575529399080390380799549161033081510675530957242115076393807633497196393863060785382344049990495841693597717325397569371310507716920217045160368525107580422027601135152439340442542966787224050414642735981072997146394820209866261604176417004256368113056871826749223599221236354133173294095603115214102095983357465501696435864016133898824873232453519397930848899601609443590112997079394554831720247461557351710964392500398977875656439468196386506973111765586908423943143295196703901802805953223269147605594215264123062093833820943944230319845531150857138259535280077382353356137948703011814610780595508967795387021748868316424492796845650162781968173659074255572178102910859521354862214517709752524158308125586259837344022085509677917756959188057693115148637196791106695989979404021271868123579212882382002269932198053609808702659910563750789065066846054423650050019496940355291969984969933858300392449965392642163945976728519574613883623327885667117461769303549762405076421749134863333522840021309061211900721328779907703351111082734813307554936478159509942789749783883167942448111855817503320216535221775839510212831448384121919013793226365393947284875376272929156030193261684376723975063952263511016339538252401624370352031717258046747986669755096566369016106686491430017789411692111527813646599428403674689937385086589160916189157366505148686713558328116020728814936037202063285996902503700208045467372277068214848115459564388070951086802565189232753636667189515196953865648694954022652265123588129696816231355325477345215331377829080569046999023785825656280390034944364881093876633430392934237214487731415121297465140369466748816192253112365621786985533498342835546586491056180818518364396360177528161941844204010831326803332352588913271722975980836949765633698412637770594715723908362533663121185082005349115520991431887472237873034680941632457561782875823009311474068703482552046658939632443895161375367846578065043425116562351664568392016625261214850402264908393098883328245258001287080102462189309869266181955139317326017249380362666409998606146627272730089101579555371273856702685308312859634098883878167471163742993818102028936010050505585298331522878343843059642762119533806485048069495779683949313252294776928725513597145973028558279106984263762377213958296831891553883292232223831385924343642323859548226002321044913367525877056135479368345921102543497636871134488282893771463079251673478897510572444124087927439058987502808479823547177829910376460592084570873563240683784863034514480273390617118424029115291968917896434344614119704938860232930400183221587931173564976765770566215105810260737703329649395871109688050342208283778270844452949297720929383011669921865265847733053391754411114066090085337725450466500742192984113800164937398417930103920866694151594334569004423472256972643370679026952686215545485652364830188234136594529681811924992032485905196086942413660335534244452040648496787610661879362955033022043175730097014836361646328124309735805134170134427410972714307325808771153112068583766185400734130376636238565186717912817645471290772392681417967823087788943025557271591097886126057509168808109275729197713010001254998293892911067224940647725061146970408273022309917009563796222811621172195428758018717255321887015612444569400171837312661588722316534199858729594205127108616295091285743887432911504789312842165766839307198283224951555683330575166853170931943897993022680844125254126425105640994152210040030517510691496804546303108822323619643933448086733144509669749095829717897190376318747825645433567004008768383176887221228214003876083536582270083839075699971195988439347497253578860603803797731963562884138605011816827220337815400801248501236983828050783203355544414293794245635816771073438951863547457014716387621417666193523376418504278643934295774785496686636401503668870073848791254749888981634381073433170229941143557626992474268063431006580575811772542841174811490521801168235166881782459594405783016459791456674528131498951347774798882680173497199399693756105347018490454548911442530253250422513395131782054256930940553999309066258081559629241384460884012687364264812651145141905126218063516158231421573013936849543616804388178103843062179096167508336954927510588347483979595359112685305343623362363733115019196780929612302513148670342795372213218359197944706666962153631785036721779333388772617187790391605353706784330078917601962968869737965612685457331408724212260573319403284332649756887781080622571866335085839590930773109314491552336173083661197293782338169285744903238893692296132492506793859295834231308529426953142256442114039366880593717091492813367638394252284512868823159206416465718516490860141176685463861689512599127880715430145924431010323451281293658957068838213802519131201202366020202482155658939346849260073127482671273161045278288949341193729230603546824201962720376684837856425532763227131280928033414780717825152920767751543423268748169383791964688065287637807536416336351717701615205817376445993075736958953085596102595365690172876225449797015204133398430286368740609466265891178812701820048744180102072238237104751639369977792327934450905327027069492956811203956368374671224618499342116977115247145649572486575317696664295405958357373230565241047434923158569201868334990637875871610515673355172090101768259411293411112269404332618504347324287395176019948717008122569175860377604851840385494983232450722989883674790857566714548514236833462334767368851121135994505279082363450039349792583345295581347501835098970948722873738292967292774640259645368120313415419277866418743251753947055085520706219725478318603278011533158782159696081944959493237652226085988616541935826315161020502521365027486301291617334195559604861459106336336616702394381414077782320739945772570246936845238486424259170996703006963993162267579927381705153443770305860761641468857074827237528937559165264013560402057248953045858121540929444473528470299098183929652475347639657959696084097225438134001837301731492859645556109517211667767400019956320860590151540927467137770238728815576630093027057391668354899495094386222372990999103237746660633636708713895077780252945819798454512324066920411755057543181336166985459629568004974987704086922181568843454851992723326957823281055891747319725682224447240199304619682887831150672111347979989454951201164759520312381648071389236524585818932060487801434288219511887822237390191843195717544654382622594750305589149658378012709961813762290915038809907590014335732804692219277983679235597865221483486069475230725539659763920829074126928769790234549657017744556313548346380264060303184101483934084760737461373042838001145647289408368090104898866013132855637442286955109404468409943940630671751184590538592094565419945292729673371234602232274622790823178046238933432520579827711616668508638891238571509501887243621322035509849351279527263868254053021324357608262070477412152791908765537946841923897815344538090388558854288928719741054768090919600665120632609993475999583751580592361143541906942529950515352599870939397095960987214363267512537352327900188318705698529373408515099510896551480273169116882756655499949324320937567049550440075144782676766500655855913756487476893721049190361944315235677971431451010020778000024973046396938039696428959873805909026275323304694913985952967396390654867037670637351758218671105386867519034846448324176610413114221026432295620734282583923730967038904807957796623001579796932637042563772139981061778154474529486024922696543635407054851334715374166467113133210478062775983289822474399948535836042224121342134532520557132480091138001274997964945464917892603053476510070157671339305187244647407965234333348967891435164203777196582317660754075337103930349238645677593243810693899908223647850893772205566139413311835067312741303945261044344112304174857355870801354326028125616545935693532492090776218507132991283206614178137799193663814055802202785639708632358632951371674901381657190486662462817578663089567503104928002359446507699490514956807182262422406319354366690898901186178328227192947103381208823408102588089387708575560384497933707051674054467139550776955160150848358112915809915626015177948984737996282638396406140288644648794622900072754259744756383818163762471547231363912260131659907113391451509486282442146670329704070201937985827275619507291594654525135484896464733764117338354530254832020183502554229529608763923640899012438631505520775568120179456215775746718515045850645404016452214948793308860634073232766399561578457101497017116534853409468263165337813363702816851153553799938020031938523768191829821873341108545625019275049640607750535051107852246986060967631961087069789209892391405450590107583787563341571555910679612452286270720027213518940688582438746449565378197722770629040110368812756325516249971415404726195623997172522659657169665457012638973738355973314171922871861554148072310821201541547200795550037223773904278607842448022504074257172702909123226061999620263165734287290328374484172428037955305317296694419256942993155280507142889269709363225310135131510812290537621727864440489351730214727826598831391351666137844764740896840654032144371807014302957732618426941420338260219253469098043207625642564374877585210292641752164389621901172697362933683739861686911986238741133068850398860642940162128257458544709023656997507820577243961289455227273559205029778549136320917582196809086065351910395087070180909598307146374802487041009654538135011261233611895744265218795064745020104082511865047810951058276799451589777753117783072138757524002084089084149662267841346133824547483548602168731790362496459901352676984153036219462331568449703344677651715990990429563095979734568080347674279881304470375544800579458473114761021964900790303862893057271272947679823406350108339767135279560922708457121312679386871447434596512128711842146203851821137847797384251404064094212758290287467886148250475719989477047171773423809474014154231194890574750368922847440276892179435850155909948223917091116774207615892899224870788108335725846297457378996153821594971675810090495484711865056536507388764521948404729752521108513119324196505896004796993437399739502873582617850432526912793055149471249668889986241400686281041194513251758236516091301057010910253786381958942439250535911464050818318895190696552048222026605796530234228151362515712986385556044847086727352169765211050325983821254817920719643873031531096578571736418739574189113702166482608858548042273253762385745491053877007572485915752388284321086934087331728023944021414074918269271363803141158298531793977355142979644833573119092672469532069856446574086890375349394124079147148134405194612697888630900449545707238606223425651908717649388500737034257307372306173424677277257331250587556673674445345385966277971123365968266495021829688205413033536093536935762077741069346514920726517119963872674551613490157807721287377495582959324904069883860243851697408535198096310141159711134235357347746721739402616411885806471456795066925380604815870715809453435869775532904599170088571426092272565043424887371975285641762592557452465969448468681518414457187486401043664331799944039977144420844671341289783240981353706739460442123826831665408277139923515096678001977397545844631103157169995612422226945705085485183257625198043836879829167348989766062814026416283587855512414982839052173026787916292438958096248437386825126776481317208756369875252413561540602576348195329054992718616091975928561958892503624857345548904480313384276951396980431566051291094683102828592574345262913168892009640746298862451387670025723740484693970243921665302642069887251215000682897295457970663996909747067218618771378987046077993898477393638801853962237298118149677660671296104239513874225685258121986738485868582663139282988545834483693401155130443167131666707849090985902312587567473434859931461250483882621043766706314090160186801066960044466314059394258896473699735948084787604290100863520880171235245585460904331952091778869671497602966817910769371157838976967666835950994533785203265621791957746058584474012882509971186782324634177020524296721672015018964787191063992460504455714187287290686183251391662066460567010686286285966576085671059180738593922442393579783001554044926037004722668143635138002185276927615208804266231739391717359856425359822905664762004866729391515828477270325996181046954856130241954777461149874002975372767116018301170200674120774023845147022308049662503959028957276254914226388987823950247339587727942425438413661695696486981652723757804230708026412539913522474467545651896329952202252025240222516669554981884775527227957666599308060148348906372787257311837643655195645095134735539740244578402653471701853909018433225982694545141590916289317868302506666736760099354574575789733616592795814944237792949933239551094408494146672573283276815131656084180778336097389413445179711407096048300082396769938377529839400731706248412699310127515701547582445549085491317317549768267854223390764294561408887704589256312810408353867042927783911245625870396152104169202555434210858228197482392052206807589299502148958827029262338994342518652017128675850269123150337083770109141035449267734014948880684216532682378597617381934344426786280159097362183121967039316711817785554800593518313506132752554284073840271641464114232346150463501514318832925569413480410242861021921475687058020663256105081248956192786768903428729253258952401839966273384462983718830708668050465990401206703159150678339654042311960286562130573881256662175148467963615348739715440076055457623966254488660017578518744076072666627707150055237464548492077468854805184079995569190460071605596267175463099892679222097532488395574912918883977837182778944352671280329666889833278581761488989910129537067841701493235109666188194026164002425187082139078706770648876659915438487855608109387406507680275901648784412928057651259684620445446763501816244415598463596865632588209024673344866109038744810854735268795750525546117462241990023808986272842823891791059078117244620902647591466394789228897858589199746310947249263193714322335367546174578812700963649547742466186678183567496684248342159562286813199107005996389670935473506996330265925084542787471841756169661018050951800697005387326536807401712153849074451923149460599718861619444231491693617284142472090547815493422261569838643682728831616699023747039252012727579979513361329167055638147343960694071922815620914406168410748343491980375583378010364461679412825411813077916067278231755229789217013026383671900910816177016575221934485817434087873025409933055712185893514498529246503715256878286740728013663938072415089213127048352724065154837068220012048003407838341230138743101946874384675822497709881685204720754481315976512040529335583680729698330904655987327945277626604214864262564132533072718048206743249463233748856611857255536342788228047287239213065257193903715574230638910831879784523059694695624774428517484800765976617408766617010838593018100344934238840088249553671198065704032412697376671405479257268386392520660327384999032013099101673123127535285422937563224553704251504161056260407090043043271236202905531374253515183553704330481497321702597150124654189086588476569339806403823147290411919821643990478847430555804181279182195153267100663268468643480749097818736611910876134842114073869620984747968906074355239420835826108020151383002401955888259731847363861517146707243421134144249380393540233283590096679638845133841337834882828363394339989484144593794957848438226392781948038229118751375032685540119792460638878556776711900621800673099767648096126368671718437096480203330329217160550151028068684851775605257223073611561688768625888588033724667335987343537808153259117280085685982064260994040840322444236548098934473985960705074670427192497618995349364268303277916925516907559926382767147426581535837704088567150083330460419409587697169301744836789301713097445455264736542982445962155680780634043973563887431918116206331162417829583609191292015649279787897790582980855613256691081393258459948926135787790332398646075568594345794283132159809858514172986819598679320243807375512488338212180058255231599896760873278341146449103854143943557277835812125527374741816864588784300266735149041523027848699506532116218191306297004764364877701301775360639902270992741879184447325208022860455578204647010420541064430934240203641905175667865747693285833194276373193306547691392676364030502183103384225067350226771789122485720895100029173429647010476065475299609134960387737451593075858650761722148159181682763534609012923083851962497043922471320974727332841963524858368265886638817424777660351953660509278533668892028134394709995227579866889920927092462398872167433512001390297281714580570059848866817403447297429121028139840367877962995629991350455979842667910585808716807787848635189438859096047025736063276162527061289425026363900074277144137528287821505061140782625728301118452070885112660768054620904567951930211383242366473449977563528738359746581682749950553215792971704099575312415946886630814374277373510810076217063153868545821640991392222029594863266708972336736769113720923673490081569190838038679773648855166659310977484404969454180851185979425941248738711655476958897952082966602130217549760683950855044609033845345118255046477745941940600170900601893130124532768331418110635359805180652749664727023363998598960840591159182589996545150589468583776175904138529396640378736542555413566899734559865270158993645135394058036024360784071553208673345390396808969317006800951857634498488981368806869953254242951689185791471472460098714513780729191138447011892895668082805254319552141747143617855606589629455467620702704961370258327051390802420236669729724819910638481123422257708518781477363201751080372049703460154056840044502169136618144518941179287927342576932326547185515284055710365295115250351609107240431519303810957454984798989258243101636785289130646372546151624868996332845289280268392493603763000411372146141963434812995912024558154319492129289303206925204728139876544999835647418120241618437204165256804017304390280563400767291760349193170136913788157042002143820355660441676077663981159683643173851447486704485816417568294610018840762091697961170281420118156409194704403781587217477840170866893651134868078073488320964732630790108780222269816896085422369868080311046836356754872676326636426910259179034125342361737379150458670863517323900237364180259818455684670952240701293778930138606601242008359091088253459864068712578840023795265243455958201944852605784170140612754931128899220651677436520993253136251232694254839230462790401197182504825791449177967599298424502929484292315400705505820517801502495493719813445651327245909831693325946040551576229433357202269706296437864913165919127908421497495516929717361377084690378392529988786217931495852236233749516142508209106309075880698921666752591698380151597161263942404955482333572172038028364338210118505900102030861238879025103256754148992353006408428656311610371903539474032961485493691258593837307069616677323703596965951280694684538898089643959889797161351406150372190353588711629547827179128026657691698267844862040221946681797474285051669098166319335727899326000431929133406357295172284822071898303149020924596706914600223521837312185531958350281850125440714415446686695656314042657749400133701827750387522004150791759458678357234697871543967290041608359908584703912238541192460064407465593385269265961828447396665471021537678960161384184034076262181974759521198201121039246653414962265432025734161026460521413793510948634018841368515890393177005277085861765584654604715736036325352854347467722157658411201722807159922739541465040640870917232013339828190487799944524568435394288680952796012390274437865350594193595994081964965797077201752657367643194532456796496823274782386618383360017277304352970325770340433776677792198291630971535935594933417571670969641115672330457998853383166324879068221748521850438988357402257112680415557494842282389977861417731302063790239738514868841020269517875169635792149657510871037492453460591554284975722071220343113181520209779276409928578370660130019576778757471439903088296897143728264188492495900884978268614914489238756447943948827276316594895926629032254686287706499929671257638662944738201070228937483868332372806487160356001837583351095915009453971922722154455477595631415238773650659211419245111363556591942868594052602284512463004884641635237246178510184376320150185146288254236501030228081941207125574311079481004084293917691286111208632248278839585816254104945015714604167459762573431280967258229667492345350528362659526227723329188013621687453691123594370436259326283984991705358904673436595188653056772312536429241575642618505095016858368335297390971442685888071019017809192423517423249068514194167800246121537612188882354324824283881357455207091580011870770402300999933769900889351540365472869063336612981948285045867848303779125752845649564220093192797450998050598833215520264759834500213668139913962900504962134529029542724316775876284729135404457187864319293667476930759835506652708370123177842200930052414913780020989483199966435744163568265757245675380265676955438819275719179050119644318287521478858056591189964301315102631917658132636358983353440577114767341351762499473792204582655516759465183048200450360819830297828121234337232943294692815485133252001543712748747197370134513807286697722443912038404282101805162285496095078512653448268004265903981502712369542666176985038160583503869654899752649696704869948575005215359739454522401066788342774188247346788822635052580662591915100328334117043701331512525846301298791644615292283005002598779468856182178387283502017122372219147364631693409058375101856032539476213179880058288026868961882465526966746585780525114948764556932819384452433984394002270707937206715073894383254627061952742415596175112462971181688620353946259314753020827872352802095752012263613065087244028952767508648732259110528194334712684102195933821722048350663382127048394853023336556536055431620595079984269764941451926909537660389434273874610073086096546014891610330511369682451882829716073112366523493693962874402986890513008358714339323181486786413316402828958526242119688867029709661567089516997118633953192408685983214480826579745261524590363291606569824303972113299672528134686623678276122996463534297807061358615059778413358558017630750625359478136607248232533778768751099604322127142179862915005657402524220179344522672872454021780422037508365393619441007194604359903638939230769862346814126434686018898858668684243633461864355073428249820034924671387170795845816282308625155629691162707248350892079072378175151549627422429473479271639256958360766441117607408855657313290613221355351073995004276959037204738999545618812545378538350008575371711558190284290699100586205901519774136501842495838989095457963213479500046632680170173864020676073271269690633573461018242064893917230073402191674119863955749562156571756697529003759960881745898180931962237281375478747347550294961838918156027701922537732139561953517484263322080653259832032035099151019655890646071339807453016079599275395676020492023490203191794799114617263718894853699982353687576591784401951783654170631446167080034953489142976505934791102330249058715772914440622828790062280848834111306061851266703570984778638299506626709803932861878936663574696852203488222689302859339031547882056110603009688143975671111878071724231510412752736213726057828084390620985912212884218259677647345377507639322897624971795968438333423479082431013057832451413179258584178622363031219628277033009604979274656110130189100207262052260021315359448095143968665462703668440239103207440662232967400474491787881901015029347850376352945715686472625288767842578130380480319723078916749398938564821698779598869993448496235378155478490916545137615335601000493251139381846228533963290189187826867410028710606390909608821745298368306221013438088225936460617893904137225512826725494379345927276409885278382815213180849714377572728326311503990067412848351225905005552819998856933051648468064747617229878653919374602674764668387643460145792037110263329809387561244550434434249061046095800637369577137952603532267284963751843457119581642193404747938550984125454229164865494577371342033691716701312878786738736571963229657383777877237521484217401139359355203973440437506649965756987508872282016208994280782628955891709045690706038058448709472316136852245870556069802271393979503381041584096023295291441784553059581256997191483071351124801145737580028736478068412652142518659240028463213218629311305022009008175758824086636852697367544300687877840702647908792786781894150320137935783045585083965390039747707691086955880075869788162237614414675506769226953774472875606418758140734429146019883556613181290132844676717631297111355143586093449565865797509619395996679292304518014962726864238003333211944106697759146686974873206253497682264123780227328287645397380424958784167972687255183219203519069168807849165958969919487687272404065920334280791723527817716905207918571943284343416451954798490788179210840998018827167421749018307897582898146737175341502023354110037839259869335897071741701342429538062997238761142241160544416902919969890160808438830029295374132735449072400984101748261302431222714062826552959830510481269966012599889471149217549749960258776498269090441269352824039978868813792907729893936260625817131888168558012078767214341761978640360316658929629382174468896029677852860782958683440789941541705912066134287079433173392714346936624997340808293632428026676264499386859142806906670986885273570482694774939598839698105884930086932667211243914377769381197812980099284439045980472477990441655151711828090289447706761498874358607650514335406492335278307228392854161249482605623467513997744233409583333091748458956901300542696476164678150093829250940422555044573721376427755497336243888094596651362899790810662464881849176643229623563772067356442673271579227224880079705795250605918962796226000789537606729483310350829368440241926185647362416733289184814718001625194201560793816821074106639446138876391525056482220966084459431076790553992122025392146864101054066509069452881775914879680104944936435359882437132567796115105297775682414436528140249958682626448169837058870085388350683590349129167737151818669219551365574682749695155854267333876391982431608665279021840488707568195956304604633756906116217969093569382092276624346368319058454064441723167413967465852273644729754507981173724846097085103227866165749817533364528606527186694246403448051452833280050554138640409533428046150703043926233106013492963958845173684892296175726382071811909586663728363879028909811858198123106518253402057615115507763975419173729381206347632757222020192326904818169642962295884527168206556627923179659326103767600087431150654429798660621996635697596115736563310523856619677741117222658543541874840289917197478085195752181494258106712140702371738500592665936063912024316739958606984158522871985556695296479280591117386744847541559814006262048427722939859300742183463152936906427757604118350174106839348909098444153677746391909117748841038083691838032254548321558307491783982034790581889696166413961201871220127978481534570136002178313608404507185372922765328978355366933842585211837657442788981773098786217240943065047852041408075772803127649974786957507612226632971599971255583974878075039657013658547503146192253242567524800777841055913655810658826545603261946880292947301030073452969909466033958446180602619286791183228099825581133304472802419912840859754416405985371806347326398320767881666682318059931170323936636040537211634394687192336333907148418368717163518893152191372489703957828906512422599971634411558770497160640416567281737615439632956917686175582796441948963242351852595524300915992766598784067924041470398145164874314976680004041594121850631068496387586199562074992556522775473978943537256128837168920625467246106106205136394114926916770367814994893737341621461638597457198140552269268785988442445977738341012691860308317748624033061752415437905722765677763942628381222795860477580475443983073682226137876406417196800702914573598801762985156218223274767989461959795819107554389885637123092768843962842246133067969395225027581955077924502717757059843423613240843325399561254339176974055124383999420927214579076852810154010590460844001490683028072673044136292443138503264720368017904115217071470164703974155196332078363281952499052692678973251128866051061346807989139752120260928701130757608043751997811224060491790409701841845985392951622337092751025572623352596642004027218637459111950190011454200964204607919478111746716212306761266593463148444825060132268870998309827185067862182101237516539476008465770250915158528251009735689112430749774183608243411491839905129011233979078350068543671860721367068599788430990011564687000338062009147753657789460301646735401964341742097000479013241697617765574888130054002424804057072475307087377084439068352520223207870119941866774191128870525655151964419902744481453228161733480419072066039318391646108836728487315919879094612693407050811304363521502274233696504354135337729012438268021177711469383280285695630389750285505690714562264061302138971290348808359822396114952406716167087029203741997578384332571603447521296986103747910982887798698873065603796743518707166344958250756229522680937224308333602226748478696644333047365604457251459007467943097591485355597209726722541246648267562483084896436016833179303937490511575603709864997903055577715368361478198928962483349253325752740605613028599449689530234102488437391726424369617068595861101042178985636984371583543867299118168315212162624565260462723151786483307735920499569292919650799223810105693140395589341464332191769304602669203440311016149876792182985687075406859937186113406997621068555425402805030661996990119807993620516771640248204218174625476276966195556439414736588045566139633156501161394221865714985907776854084540437126525923123159412331618116766605128461415299542349266670115205492114323984676762820824848737848198945788991587787984944643161932608778354083786925756924402087439072370221103269729260689102394373611957572107431291340068457004462100243727274367719780568605805850692285075592848125246419207805728788020784021936521760758835371784071904648122683051515520461829640337576432356149973532596001884225590500241767398280961641114269311828747386805957269386152160677121361275516251252722068577897412840813760709462258167694947940396369851378435603953126579090828719492159582195224790181964114848879545455564507193439541333207817837447651475213224955810807341738029402392598903680377416265949883981771312729056184424833254421948931032052642526055585459807163648331847540712714425838088870432193341987043205481856796804983997653179781694361873977365344195420640340852344968533736197754263788582285995782834244608594397020338839616527282118438199219368608138044151805035581599136710977753533515215946047142800447499072463573631912953357395278006744567077084375019029894972665804171478854169817580020104833613807347172089558658396878360841097842897882077511900524196309070264172285669829596928867797344730616473373003797177636804799319818860076698615617178407407352458347114718804331167751920000950452117375391146315437190231575829460417443285305948539227018677073372667472633392194932813258474987336873430239601889782898332685858524442894360610793256915893713585694008348970551889462170659057578015675947657095181283938671247318515524994373099182528373620819582116802973361620100627871168488811347760585878152006734734769016750638148880234515869230587698156516575889865526473089071295232369204584132896574614382501992959337894169286082865177220212013691487865666230318859061544231151252308372929194690409569558993304352519838312275220302071537062880366989519950906282882398414740187513937466710114922456924355628224663773950216432302160778459471987132493400483655006073162044215452088346029478619534809503677331844683162357339013746879972253796998402316258872399657151932646323028218538216418963729492354447940724774063763203589085314496890345469580062514456104101455242095121416541164774775293141459926964767679120725644417587414780037405051848762468532580284378550346680721873159618424678825900831722026556383747770503402576405314686977969574887206106379105398087347487634749143820829286158498214733566078452698889971669318908462815630365213187421000482262100235597444732884556901047724676123257900159763738657533180807890423854782634100284120018446031731445058759410025208271835975724457219831301134079100439663626793820309315007541695276845707271460414500651809846151423955860597607995728769522178828269307561859639239513679010707323710035936545978688143427283079867498416820096527397640259857458032160109349100067966362668655622777190235845263521182037222235459544640556662621709381862863410227618272967523214407834300229462972066719878557065857216755124621890637402351480629799103393271763102618785709497856153647218374022623596277005281905622733362986422767763209548980425691806854589599755338384946856052578642812989015614104949230764601505407056528390200146757145186976988487581578605334174509515064894354855449741397037247984244709000254379772490700111634348885817741068078897170849212617208393604428199678380914679651847519125949788209098084227314893326467030925249401059419847186021825006233138513311323498732726528671558950840249852372961435114236195401894121320037063719589818075398839103077434518133964269467199621426815708775022821823488326146316236884532074183648758069592478710346847816048253367776841325274727457770761111734935957766672846696694978261031154723276892719969350682450735091094766173840193819401657810655806313399826813936139733813280106910538875126872489615470170814705486973629510151847627894220204193840357340201557869475187329650029313509458950426640695438342995780641554774990398893830434015503772300529817990620102561037117401977078959062671994541300907047790790091241057894914144105698829247217454393589851504858306751103798798091966309222716821775410533534938649787265536591331218205592295530356328908027473075371373806167964689707369123788856153936029812883170410539541117667718575510430041868988813904138208341607450444757423947760952849044391177606004273978793828049806190847719345857996599067683635099929003690196597980305817856368983450536568839863146479282701699989565542778190990270969497008923576901293470101906717047845168109484044561742929400147296778521613901452257985153802824980077790477348388223479107512763842034924492241406057046177461695872184302097034298412618481161547616328288534781817645250678442216376863350267343336370416035300973009713174850041114953613375306236296258334728945011601640742579823256879293393014666627295667727209565002777665581849323335464604179957970287070449116268500175280145807160582780228060075098537560424858230550898971259144769815243579970794308987466915057085984000050656377767977262256435133392124290175375674664304362297436977596631441243233883283284748957914700069145921389058035320632868185684361968437639023406311507233127349557200020579673792588719454949253138463410561708538532265933714041352796573734611328560180742963397600175824384818797713642293765654089130486879861927699347610436514001870014759311286643142355468247113032925960889192652567545213197601522092259390663800656563322735434151213352962536940769223074511747543497862830568252499183818671063262353970747600312751914743735707030582961969134598343438494149839294716749900464936906613435721542257416721679400121731435577167550534758200443915151073892847132801469752421185518272053204450100757648139098601659115254713803931437853605216104620503542043144089430129291699630967125114556283973963867170215632399595241108867721462281659392650336043880807666471209733311811619732480709835914718014184347644955290956119901389067287554875029119361334889242183739862198562628217744815945028693760621636017673876344359743392332078092402667550506570006273124397123334454714630717982354523773115740895761973832803773669674675731131565215511253818628491469878742247219902773519132498145858706616472939513875672885149539207701213791428841563969005000087700720066315343735613042466908104356269066943176960067767103029496605692553837967156530619422302861849408708265466776048927756899620479172031270868600218139297005955746233703169251816583646600032966136457955502972167746095044661575483583737920398348788637775246554463672482672954578261981755037903803673617251333592985511365309255598729510118253264999392260665949229009123283528299374742953742932440198380300140975104606940969938661705723294487136064975237165651839110057677671025231154147250692156699298528961603108742778498736519442294561817040118113768147307155133214722830177962588284119161759148770098838004459395413941061622381901326881757018329802147046929267142456151503378264735173833720329312661185011174579048689556347114691341229506166854660040341519458172829980502441586912472042576447111548402667811049149891122644267034047351757535053636974497023706527413586200603355608403261218140790455302190209371824813719358928587057101115015736977985578411304595339948547739133424515745482545944492408199614897464377930651979906948635835943287281072035574617243163548480175305522159531378103424768748882709008361306414821590508420767468849163591727288362213625990818749671822941532327602139781820081509915415603217543728126930425830820843240155123843278380209579408373785624102959866554858242019886786963718633146896047039558461791254073116661183474728902707856671011631297316686529932944332499956509723562694134920986045469733331510580174696291283799813483916050926885170940947098087494547867640670204796042827597019579561501919490245924269968786754017960597125080602255632576229463913558320588981492272000850997598965048310028309316100775982977226519263200926973088343351070852114659860761674504787373919936965300822574985768943880653500095436163531823598451319660429069496920563454106850869963351173106631488728940604048400791983682765722567975254850842267636355809228554823343486689660571027053099283599170430603945572978073812002738315696238501239038322320521629387112211918207852653539713248020345514918621141024163899937288816328724323902904109756419571358221937309447997389999846716809611322143568233339025404809611964743081509573410707584503787156435601608825383983089356835151539029987307781418253870819499988904578670113229916370678183999943167430288801897001726412365389876503032001273926965846324641823371061457121477773016211487112736158965214305279146703157575630657752422483889916333762528642029626575248042288301446812934016068864898919749760910161133419140303367628976996675313748626048909133550137624289177317334817907885035238275131257438959788550200287459218729198854825235165619269068293184560495298266060357530366797237707370156713696949881539311451187181915805987778168313021076578834570925728527136676749891686896430317669041630711681199974950182942335570242481840801348230332468319702706219795610265995807240823868143104680027011895677481095517130779232111204460580931943591952564252720649155646535072433363238897928623835754430383246034076576453616265817873617214332664995875657375665393546058913410650093066775736537671366506757900333070591602408823332498763518037953800755982118132730275965206484946812085991244581153710999930780894559611791067330639720675818545020383114590667761389282995334350136815544528550474178149120384032818043475770138987335992447475544394556473473409605812740741423546496381287869677918523721051632581923226411571737484891390467837349632689726753915952500924401419504952040011460226788003912259639180208187677051275639957984435597591499356003918067694544029353667309940691761974041299923264796452526840319832299089565683130169775694303628874535822875157296671851570713001360723615653874866311815630734588252278612873030289842122380193160862743628320475981688520402383418844881847896494776280016815253048720736818522209001273281404331741843468719628160898451162653000490320096429880135741171113546603273186990570686815308688538471785322229633468992544018714015990188058344114361099230931213937794586969651165709015012558557283810551910695746050892468683234098811841806688411728937574093033622425837957611783172189408140806746942568888392644953405714025950502316858371421376547197771552431389644803281340636996882206745851807010598257653346903580117692204446713270459957538109479216139424918789271677049486721793708874997039138021267889443675077488792261605872478981084501107087971180871900293801227537201607849584754515898616002593988315030568536427103235613330457288731349513860122715654072108789966624249091738765907321851449014553818267046201064216612881978511492065758123604763373903906471485975071432447553473310154165722493080842856830676685278319455070662278086922084593514211279463806817958426045996060513597242442010755984957021538157370190203751541811079414872456702533644510147275349245530858194412324748102090377838266860568092817097090632336275789653643843709778556353983275119152151913615769042032142042912225676441399670623877703502497882233881838297046667651298471427612053490519442608238328218271400557838968919370253288989077498975347332200927149907587799456880864608308961713095226546980754221257844264567579065219711282299892708550760432683007585278566570233833258612283097993132224385991427613378191849744927136607412288398796510965430123065763579203880507775721063734743568736673932352496732519561298867108829727589310727013511463383571455476641863926891292510463502368257014877953518583239913917737414964477770659107671473138624235093825918585190149018941710034882648385016550337125322347805652724174456337008499596316929536520900275933776940167556499655065155917376728744878919606927647907580761122641344303437806182228283076704866241328694596861472343893290984193129849605799351318772719457098007377166539599055142907815799392698451678222909038931380511953171988930918412881239256031767689999154417891971900137135138999945829624289137630370629406383451372821302168970097194699147982159527291923327598329921704248015398126041359401188827543856861452211791144616284404051026438272158167099428573677224919214651229944658604877650713214211130404635841233827444840422268025283095504345579354621541132172108934730988531572046554277324298225763484517674559877017801291620283835121338080504269572354873561729764184293704118669855732258669083542019394322829433169837641972303574830459769009123828238975877531216397127391830742440234982983773231342347768445171590469092777653653602597304069426241134220556403686658014677331441197889252253795322205983832494138399860605014228689955877341904409932365722253490220283770125923986327427502300237062886834234421344304127711269869139856759686800280432996414480275935889726481610755798171099797711859981569585704345884858238689199675929245283795892614499420097550737533666600090177832567492241278236621786996880864546867688754305429079683139149183347583994888131562530973625031152878007187143704809923522328985466024990087022996960227962779888016578569084639969342326477418292542376344912785320401358164433201222482782217521971556224940768376548339283713569333437012765847767091557621790212631441537602438888357612682439849208368714638013371623527268114594944687672382583864105060432236715799861912286647526204015123083707873643375783627483731294010692973162936409789132764578033499318146924279031255008265061970502820268967121480671045606764954897289197874576078955281111496377203713442015781686647085679647460337834784979710158447041029127170201819411672593437224423423550125787582355547152120757850645687628723604480842634618703735552799505781238119672636362693507420463345142359637805097607349759823380546716149285548775130528705900726964104006944029543472489646356752974821034303365195007377859546963794894440556919372469723590334233693205490331915898694344755385973277672444800036971499155143585034312735458026785424276219824421332562914224607399310549969659585394406211308885749676882212072413672826207638610691591669215358618867824972793910689492332890054324457544247895597265352368408157281233081040469260324805068808793642013720981358355646741128903060678602917842146597511472700285547068254814432047290270785423510306145929475440291996832472633618792454605679257716050950891049373698109540333861566281243715459411921005188037035502607966262090665406289727985657384278910834931319442497271951378972267890401962302455405058336086805748643599490337759368870704644813219980442599603132636633859477741383474179847682374379350741133186606056231833112942127564286721030106784701648423359580790911899629370229331315007091407370795167116426491091955851599799549126525994510596406781733928814896374443888476065037574692326370471602734253656612169827804361381362423328873836079150489741209505616744347599480902993136828242635276540510817825244383643243055267796439941308753719434928183182181484492233745404930575998553383290052966081336401538795274428648718320659957656965377083967634651993449893900312653588473868106498222777769458726013920075619834907788802416258702360197046277813950992883230470948281563233526875725010799429572548814546996450700491757509254098038581924517895754910034222694852753534674895334098309619317669177485112960565780541319469188182877880466069396224783215930419039568663017883341421494903447471903879312918547559625610930090092362318892882733397885117871454268592578752827302315472934716300103409166080204283773499122003033020369561582546682638326935177698249290841036677764253961480025180861456744537339710198825056354128151981392852883737654149771534586942389568520241100908123068679242433866764315181686791380484307938124588439296365063212308669644025818456339265106305184451969051992890432928987056306268387619458255355282585846444417255085516444707966498429935173052002339602510237437329776846099772226745235860805294483213543716611214985417602192130409857330807274377560970651800191387526835584699398868237211902539151716499390426296009362196421469035330263516920065676713639995877759449034156343376120690027238144960826073805448282173241442905391861609843308667590599351003925928509150387729967916300810664297390950353308713802766417611394873974603337584516647371239027666676609440585754668849064568994029136892199000322751922392290475293551542542435743397303159854800921053467858490942433038188228303645869578765509311207899364202378965063860790811427993282848054368034959239359283761709339319566565867583604382525776540419878866674856695713770685190222983939276559828312119416784410108515411946973219477456202648987975110195026507259059838761033563934252292193177956767570730935901124691412512871575716621943564381916369645378957700540348565527101067160841130828667428113183563971117555477107939912987727532771346867805167106512551687611113578294822669107469051315869171582719256796645576491408666986796717071664435446269424365452495253289178658667717795275226053418683186043848388554899595605899632816506259731006582901736379722258957556268180485512000603975370102683793245398469298190959341636861216678596418861743756583661016670224981668280255761010597509394565548181695405159979706944517446165373534983561864093294169461145026665309024757483587656341157672935321691038615645795924406882686497547387105544698793739688529021748817236924071490339937739880804631875700173461347344896883383658024536749722851822318692404919777930328484669044941040338772372635025502583374737786174413350946796298791438330777360095494415089800999801480805005645927973825637978032235034347859797769066912005609344437480043646753709670567145290638910321234171684716883572803919645348313255168224481828550752972787537892072384535359045309338099137416766221350050467471078273451606947336253423089145084879706976858598770219981329355138342967263341803480460808147561563728791124557877203237981136025907048143352313065659299540620217985745408575462310353794809849721941240684021513237351969044547901526546195544886389941885487590380305701286880823254845517263765113726147162186251347043676618538937338001775224512450320213280225349648703489838829260999961710217018713001728289206444482407149638903310389641249794912535613076642828259262492478309785905205743812638128606547722424943284232608958858479232589125347547432223962496318239145378980223707133130558307081914103988570303295480766165715256076295962890185945161590249983211319784710175378588747699734082364323821616478574811047866085877810890452234684868742060731523518174923163201087857522918930905810726797859634654282397100129975683305473428199884359758845239427594622713072738777570745243279317238252239535898273257338356975700865479321286750242665828384106302267644095647408635529139951300774797237268267669442758635750433545969134145707352659773505686407850512375179700711595370704740140636773730795732225696799189940977987331054311657855948917394937978388600254434805638331669762304488124452864476381871715925590831857776927024641712830069239667175252035086331142399388541004231370101838527948714885746315519464083935979807656857048374579784713893615716910408362071178756360303520314435520546731899025762267956455768007940016828113612958966640019243012959765445523659377387653296078188742485321483768839620189823933158758913482352067664754725465222736166789042952881704018811868299712392579149117580939568646106315108259260251129101041292735505100705370134499132219798549851269504677811746613542391684634355289410001253878207811580673989260346088293468534089528259361179424319949391027094471513557801603933847653021879543934604062931288754008752773635187422285223665835188500356964266246394105647882778533849696226726286427089283605431690222134619524958338011433057962033374000221478900966238382033897716613229295018972770868184851668003344593605014098980354659331730122440506907226566460327350474519102356784982754647811691932000646773261440130535102325611438698400867566617584158469440289137836594986213446417905900400846465471990256161437171169178013921476086032246778472169874075550936295917076325026916722670513815380028291333658844697443336742512484824706669399682785085585509462385082564765361125386200954979222917676479725301942001104476816211076957550505232771064351622835997471775972442697526231962289492420102051747645096739687778496137296419926948631557641918935776067566270521698560050727375409777702556926539663529175932589965740420042827582712119776470661825706263430268386812385891891272165222764128790184224256417414512984964647371783506348835082700401744433815868751121290457382508024112979416196768847772553712404819180151987213601129419400311382976373485577136764288631434263650932405257266230729604445550453835222242191582511335851462235876710074049091247414672067026694623403687219681300924776937003512825198243353038279083819232651615524669280145261716638484959197800291175856280005745306744281849553764541037941379794413387533594332166338646544216587793537396479329873102418417579548818062372628132117183206906853836837612705023313766804468611289076270224955928898461559754109744472385409900691614861274660650347264285414985497641544599066708803380562017689135107061639717563420495465667309135546123103503668739305577346818765941454222458767791483755776922627150700644961543996927430405413196381090313513422620973032661394615992590328548974239608711994430961599776847184875921796656646896958817577555251841110221785811697738656234252942240011181873701326309021165712287419023235096810835071382610730551844786505617149257509076334924974124432632129407227378966775870383876505635404390580152216795968224399987485678806237668998392153815123823777009508862719201508801358141805046128940369042564198242536768385066634482812403898859420652953506736296966215567830055660473006719420894474747759999141861780160241633357487382995761689210496310755674620952001925435660349643814071685811107586330428990021280261094093564326526014279200438740108452742161560681158168654828701053214667805579042413705233148510653770475481902820273043486736782106100717697138814805351404332099522673963948613297445033460877858012797935988514813777528423590255419353432525825864292493222096161069342529632600204787892004017880355243319433603978622227050977519065375916210714200006611658460295690433084801405067969990647707189734776593731302732887379113619616272377478034279122854044116489473329369917667377758692391169669907646695828059861839486222923632384147081479876270112826661906510605771072225279792595698728956723484027346669092337632561243880198945502602857625702618371632589276099294301630663931674827615113023313559812223104989775825295334121144951895354949701219201719271289970844912532601928750174697095856164706212380293204345768469443419625318340441898315434274856714223736501241923896424047518119414888419478827248468263539689604761199787180357376408607311589427645135118528041832146177170160661043247843145337837850086592978960909936171240168780802821555297068733290404768984742237982398375028591913802712090711002692901632224236120976534256635362382681286168565778876001941493136765997085766630323357802582166011923720371332210018678099747716022619852186215199909476286061096710028717591298597382449474255441563671652388600815434044586865857414762743072610913798487772388278061507359799977129536470233081968728687580798178519003276725625027358553833318610630862479952921432755368927365847650501246084148056023621610536621167695529223889640214074756778154915901819507282578262782662338510195413639751581614897644995737385891314887736651680614297987445288988306819076821654732644567727347342399973080292579452284109976046528349156675389760652037079906813841518934358831690792071925480563809173605606180502289788961814565988163460215739013726823851748968527375413591387418564156157763633627417311092531845914262940207124720908406330928670732074059430646420291977996624702882355429541424798304924194194850201760155240889484219652836377687223736345690756959259306434694949696203512773041820331097456040053932186095687183965255204232969620627374695069609322397442005073567739047277998149040743123334675962051482103742120420939985772220367107330331038092264405447680947201082479036506152481423309615085991816227867775955035485138444362448304609194102719077464734692202356028862443616145358749381010516662380426664174667648690216256548638415741755133963533158393603274633117093405703378534765035003954737370910660749531126420460548626148904776928893823225019080137962462015311133736605052868629563713489501386007333474577008067138609571030875175001427483495782336748234659719367205320984661379087247155048319946376841918678944617197598801511177738549518471061717064303129237688005713919243853629864571470512055937182373902970306788193009211090813415449674143206969368035302670910098848553109435064104387636621975564581062645792726931229207114721022885047025456652724614712775474379578322390467358162647315953605681770882589761472984662523806011366050702622424983634786403831447709752011090715992983327254627473765700881800594138330834653123978562796413678693772090232245048075732616749471603241004437276310847971572359367746822928106562248754795018075856298853508037025811122667734411614344207727286242859980070584946299534424788454387162259038207443690719855439628177227740944171712848274326714166220404949596684738559018099221368015671341405818151374178308353242136549822110701985895841126311119882229750819134579731527534429926167114893248176507742821326162884665166460709867858051587762827249975297609212905039563908392259898975334793728668213822291630140042662708996919148447968007755482857258141962082297759114563521242182592730939824088442821488708518649763837543226797341625116790766156335363048082308524879453708228350306990259717821327542921701974148399310641743204546559186212890772669322623661578658457250985070390573434125543806484550621860565825860325774831171469606249458051273931045273408187045939468208904981700998686590823198229034956017792698463808273272048558978964840841970453957955999641623806039364228434341892234329417044590611780608207803795260005301489586069068327628381111262505445100206371641515236907508058294864008478799372057150948033276302699130331890480360841280695180007228355459945673057100783744185502481863982060345345950803077762807598570660042862472260266601698454507833068738468475531659203387732677597056773887843443330597966258620312905123829214820829498860344550712359374657766559442351782628128036194931227485710766538168150383364982315745607029494716555486479034806773102949421033181350252318054002299292808958226901751321061773419282776418669707358048503346858954662406263280046512978258224343914226052041125146728290758511222274880151413084889382579702213986171658621530495288310124353582706128724034725179206067424048962825417861681188869413742067852863204240262920538325381798654258085702401787889162659933944867281361747251583208182992908126714071061061494821152279041685363978061274792469221655036597287483110664405545820894401325919195084112046269030734645455173898585435710533125052504241685820106972430670188813403151605467396407258363218965866791434617961980054598369223408533798909151833672505105284357141830447960324996532014028911021309499414289113023601222890614699386866479390679692538091658229565229864699933327574979133539758034508526109658254963399833631897460848467357353944591565024651915392411370147312692697209192378998382706009160230490909013340815241853134424005181971285396145445520815260178698345741201019555745661967258674825892981563217858746643227315380900081016043061331712094817564038367711309050677620468966707780733470649941821410985366689645624904737665916713524037457707707123191148709962010672551045024797181632595797895677944065124842186192619857135624952538956769437399971655342837699981597351813762545023528438667133263926253462087255360495218697569655812824541564603418236843360537041035755629438258892335450354758854769929788739440192311053101877587118864486920337063793864044556145842366488111692122068305980482704223080290909893463167681630060165417903941788384544352135420862168383293417476497613830831473106579193274571511607644290822778727082661057444766326330454285059581604363079818059240019966124535373432333122578785075515292553897306823419179342440114882692497482715467361284432713957131719372051307304945697389325829223300364747587537658998166332387292057828293686116540860093056385713596382459672823523281163153583535618124331245963381687885789053062055282170424003122484752434236958909980405909687131941155228796523812653492232639559812148652099317506972767837008886355970195511769780786441655253988153425505651323790731267933463196269454324753694699309308889506081688925056589390394274491888467455966578856124890609793195822180721748752211973194061627180588505191504905606665634113748076582630965936695165281550060420670401716231101952114090167162121141098838179659908738679644888713163152435961435609042611049639552919839563717666678955632955713574017613960082866114569639892650165759538930190511664783322289833729638418071559013752127498875848826968523722359145416901176433257074371780488280311112402406391317738098285293975065627358451394877367905582086504991509394647891989274274586373117884354963189584633120151201833707703829289782642237419462194080910662720615875172147966934684462586182813745742744417164281189464191331790252701123201932776975598993445290228595404883092453551864381436951508388966914613879921237348642140393541499595374690829709243139146077341908403251062917935517779061795169673932301220652202368713589808941239677675942476068894058976002129348350859224250582211963254934502384664040998850544519895106560979768302789919346710659926929800292454087391934311843226706384239599545728667988800725147759668422847633489522746530304079843622996450873254486526483593698284420340381793550197994015112732846893908771861499273272228780153694260845080041296664128017767280481400351555854010796532792629617824719464274664462512727728077381440614585647621970379779927682242083584065439937303842853080210241898519263767635878143600158566914247618552726214575735311605095536141248556927215634667660128000747528300510222293001026609560938815911144797049974065214483887550328028999033198228929488793385915266636297138777352745275997955955312190620344489383009695471454417217923991443867235671266496806877522254843139682643205343653074561961141332600492316158041655690687478301346241154147754107050291402290698658802293806827701763873894155162413716438045607379226858368194962690318492142111848563838590907464658217242903455070303106977254778625231489454922102372085604208103822879226725512332062208284540222506741696143919069867003241715843660848389589180369518306817294267414339323203192302043298879506908105413357879241499945370433726261281516204840114292876374534240507823000605908913627731672480308279434235469575987300529693292243041781245049258484983786315705249900964181281144094094846656583434631178900583865756899432799605713481112623377039354999764925947445869574964901916731698233511071532410891197641243165972233434298507342879064905075436009178947905851731584693177814425180054353519345364111043343960698245317336930184290605640294104922480862611550190469859582372164667074022474038499572171633979608090647141299691046001440621957451204395963857160303804350303378867705347801844541411616190998679888327109646377006536745383124563115920554044095099930083448004280598244735556304343355747909283983421692448684602252128878741098652733996692167919876397008198768709150562374948830107538579841466830469083104254635497754711440070316741023298824905247510242147068535425837674875216544410681294707078206018603240464495939849423743842082353801100407931006481152876447372298901416248542829948439333784734365595197620513834448146360429159547602596712471750878042945878443564548192238108720948536857135244827021038196758226053927854554455703248273846819292506489268269173416077903375443094367678674203041336137523762308324267865369510782750570752835286576555411608891618860929629029479936105506005911467696737028253682864158500847555790884893813633388378440126728970872004432171714892164565867952439430548957762263163310731068132607568654501405643977106400310196033146571334923100367204554010726475249582000725471670988703924823738267022390729269717972826826711076883552361799950634403085153974782681345297091121041694165416363572948066375175212885611646907143148418652525361770318309717213475802252333901312918263983210328105543303857322438312082928974748730022603600189618155044608271957847423061933647228151262980877441058483716200682922410345558915772067718531979004217585699495684531202487505559888675255450075125447983886158107752522556793702056156847135074317920398337346082266278412918373355732297258285021535247654255963094791360581179063435326547950436606999151308834674985411110917909442619847857247353459195992422156770018125219105307846735264111305046438477930104392679371332953394035298262628779505257647857390445235942090606545381227144092671806916658112878355337015626164035275144898788946098656890505257224176414888749543465904741706173722226549195839363408130306487658248289662283317534473931134656182118272766679209713077789226562111720739476883296690873458374208041555513814114860242873051080182146813216746895896221034144813800423844639577155178887035100701362962739064683283761777204826212974141956514459826729535585490657269038750576379047863176328926862927181385031345235399470066120068189870917349171698582884835100464758003970867607765904779752347598960808101277850204106016673954609364910798304227686207574796559931975772182497435481042547021211765912833315217491842549544785842080324194002282894255572550114513301926525977761754769895807648919777974338563966330852048908361432260073466526273267687361814949288333391063334385767185861879645610889280371416634859005674038416343280331593388103223749884617495183802102012048658716206986367699353904563869322793593189737361707004903492203504265493711392185499511243477338570199124703029615082277981318136287184877992392484620874088146650673734810325368753210644107037465949613045353723730903020431965026756029056509541999920789292699968828077286583498850777883274500304232353835424122066395587981437353992987166330832709696321369758889963935179701783802335584814477296667288365608959483498806936009974505274774122996438065342473444025670220020638651528923677837875196413792694926946919303305051118390319284690067158234897112804451971388640878364076113537011168982837262697572151190775352263403439261439162653565047141387422038935069046658656894781100180473963492916879166419261474131693321547784522689377230680035872674364057632583181739493490243171643868907216408228549395598459276796911390391680989312670941324071885814602509828457079519436076271103254339077149915725472553616772502624209136646597765082125353243057349996094814334703700831391253180633847963795987793622635870081955399395293976455901867876456679605666767348354192610550066151927708685869534048455328127788593791669626541902488001361065116480642999691502497794005073640960521790795561029096278939304711599670830652871793357395476697736629196934105632980835358986605213379293513954827919426176118456671000767785960663363395753038794645424116895210598845029801941266383068722147859980435797279071091235961377325162032474105704699791368758593144891448158504189400092375588481656403965830096870730774017779805317639051867935991600085771084487045831264837253137719239861052662147144019026752428584529888393295156739092424040583082502766969481190024338755363865631899653528058746005923260515455695632099829312518814965393164708038203325370111233892942449241711551704302519649975509958985191884828358659285043065846493852431610322281610726287273401696036595158222385924315892655587713198064472256142008399604441633628950405490855555507856453439611653589749834698945385808959736230056054360502416557565412991423814195230166564175023317704486203998627335595317681821365997268065587797982263899273201250599633381280564822179023766516064910249319980513214012646340268414864847032987703529733320988943149492964021791093008136101358091971306477129362842672928116989892999142806720408401547948694128521628246294873604577731678891198317087733123689480500618117716113606895363835206990195970557701279669932148098770732766926090256755580874818235917811159714125168091942550188806606439615027536462300902423517643371450316689031417095410349636151665405014161447826816776068447498160158910663102570898244612735144673500212607747930803117584973123174670424533240472929054916825921628131759679215712082984532682815483977105943608628897866197798396723916316687095773633384893809106392634324799257462993291665600348687838896131507549250831697594138900389166230237336082014910970005862337169382667268329774670241544671418139229623786737003145971863260168200783600348175159879377989665157977070131758058860078462256015608183411952519339540680139511656288069160845780870689118030645793728960150305724868334812600975076025007616748846865919915980001348745543448466760550927702786172669902814018525077232954021081278928124011147117105713864415509550615785565252943740909926766930532765902001380570164670772656297961390598555955020258906617756612601524495967025784336863053244206316921097833478960537715705268424640620585978080952217132330571500257952978834616472735994275778376388866729374763620712459054129927016215846416046847146620738633027720328793113433996825867556194052783673175616495689514014141861090377377169945456160961812434266181182627653432849329958313553460373522839211183794196007408124866987736984253887957147609658322009453571211100862882480344121621862814010440168667621108783416648346669172960895472200197098659152799814409487687679933340495109380927258468488714713024386642408383618066575176496920877086701438910995169921764946156916200657354533889950127949804209565234068892649314979979697718635084067816261574300236364749487900251247404241081443424661870472724288858568012754101525484403613508697013100723273998965994075007458469075247862805327289592203073855011072928110288143050992629699060080383001148802233283392039484049741098984074723815674092544885870269657657424910571544112857582469654000614356825120923485574097056840625995148369495115048658626247247461488956796401931902844386786714997818866713877064023786305102242068884294490010217269383818273470731528349650039758105449939053909988505631504161942381499203755774827870303777283288987367124995826766998731080411277826745155222871545725869289649967546355773619561153817162068967597762107036027578000905102326174800153583058206813274432865717276109679102139625039623611967662942308092712808674413553021300640650112720530742880609226954841776078468205559332162844278223374318931464455985792410707097723004808348609374206722027791254471339763672168737095315104563507453640943006547088032723701995148228869628835524922185994522276275544191647675428743607584448294330738721965617372663991570536538336612399236401360600942763377994942940335874144473008099844708317155605313754246953331742496038478266346608068857556732945855153660009507382273575110614195586092545200430336258864321599880422737147734416725203108367168588905292407527616773890337151312160994772249534555364395612226573619162953696659407323541418518577114722598831844082274741411297558163073317557274343455729219142005134486084281024595239298242854743883159851284630660667484892487150901978536289241051369102780022196402572135621892534491707863441974445588394976515672409552146117082275080516113698696399660717476035431541262745162621310576775532060178615386366751186128826186921112043110613524997210501542734191717184326891166319128731146565233450940249209473073290167244013630776652107043736878210906500762928474549413668535174355887387973450347512908909021673180631649989322758786777668703982787347917931999117653038811591409221178523359890570376295207371599806683972011425433331954530287263207799267307555768465073435826886230187379216555720806577181277635838232409303845667846907320368965713039390248550738077477017805650932199429482904256640625645381100612511018635589250489654610085715090997553969094994214624098408259466213659533620355495118215328663999659107191102756240333244757954156739884823336471910225462854610492041712230813816221338324242867043559848322966200244462416432050016352663912179966886512129844266473054782575894022267571283878269567219925090272757558963022818214075842789903405310386222123503352338857535995604414476585799297732752846750600708037647217142467096827209066203368869580990001369286116784041528722472618528954988247825232521938630691405693992795920945851444021385158633467433210182436383203618598780840813067773806539713160483617777912413789012035356374239552471982794467381142590172682029431454878201163756252812734200293051793470154659203836210141894706630835289091059088978542909335777465340540814926335066201336497970071475298686052117748993843977697986765274579078146410755793213419081621766048323856952987607931890602613732903978435972672209295703193848583514076393889511213488425321745303334297631075234296838934490836206140474388452746770741307134440816116612853477615168149616907831487485903848912560927127640976483300890822146789748338058674345143988494283662440505258148088130348785699723055226281975950157082979339390677967750004284806289178609845367496296784903060354134424038801668445215251744762563474091709198570706647041339410464487006481146593338570139922219162141931326114986700658268560899518414832677707860990602933131797829091362849231189060258425993716804074804024370120251586040840865616041433997739281448024470382336609465747215499532326048929641525779173373820496097599282991840567963114717389165160103429730217304195341038202185931860159807856250155577858067623274005788284713160094949705297051089205960929828035769913144005833989973322734976843793901449638292289179293587478630585723256789838319588255943467530461968774031651008214877349973541776023379794225177827587403303858810208791684439279663608106698459878544766003052521877464330656936596234125703561152181699901798531392481785074956816429117414018219334948576002522198833317655588359428388543931945331248900347837031469170370920092786330076361751167671886237565328092310341036935777599314870276290639404332243661285037654122833860148394272594253090107231845845346861156191817755444080014662601868783381086045501567532991994706429332441560338617381343605229725071057092577103109014985885678810774861692866713942355808786159489488413901563710256865083282858327385279065864005876125398931838219124418578672139737343454188284802302370554844632595395996402564685658697321496825566126039501678783128172775576933200481822186624590730838684170754360272768756928217663098927236050430725990291911714632892786000037367823319161726742165407858813435609777043127358422201941910550196943453925133912023637339284902577305169708579508301608861256325440112839234197903103760326599809219322701075529553841546684907367959587941195098152128274250165243733690807695343671937821735165132740767549647285153980596100177234287138578199407307953831214046023966465543047671058367549478469120989190327149672754551729881713710472318111968194214571656236328897284784226863282894192866518786383620708739382842102583671699360021477320319650933473407349142446217148094271662166336954599817369541800900843524604484347403752863774417702990900178263360980406453239013091984824359728414458604666310527174953115203095031126091207014314006627805578945120265678161644359770414974361146931535706926936770332104324986180241091471102378258191528314298857380459040016746873744278364811175417762107085919680750778860722180020370339823324598520336352344501333489278916895040091495491764234219319899113897361499808851892563060230486985542863035890075640640146288974831504946742329025816892773310419576752756685245494775711843461671860157672878062859512445324537878250897702582746858667886539834010203426217298717079368070125235251708656860895806612219130251213041102276402662160356062570553748112086378988135332347584091493697133938825362992641514330889715842548746792804619057006912014681227635477543974544444156458352048529225113135534763681251306435231269798574089993731521789708919188737268227130281272964728742007733466108618984046984370498257922815462215190632750375667377305695715279885915725475527770834295220214698289437034667636222379782154478661662406589928558427333606273681796636948451273065088009667555010216622287363529023989911767143696740666174712793317119947950352954271969027979031856941545849541938311456321511420908290826180844281411665211970465613558414967037194770005348406731986513745652555853801256474932473463395676806701654802898074378656031024741831345646253571393576972073430550806654131912650567698739669921003081136002365427108022789655474582555043076203006105052297714183785556600335599053556943926899804065404811894814169201858821651393672423825682084472567101842324505672340961370002648077641926012932267461428956227666376235039602044722461011090116251401291459253044425905135067085529187864741442453733375440634320853999133452445062662708520115459828547635127680843689531774675307645471855027935018333477399533396783669435211450940290614846449857413279056016826322765035314562546776625951205674100033960175680850764150884227240350569823403562361762539594375898072038523965456342892049202433902592655199589923887825632308014614827349514701556263946119301172193192826858577346974662453658541435147294462872456561709018699702156431175778867969779272568765919516184001958536640745917692951373438320974842838221877524586338193511958217892798012920173846711953782640898693325254325874943552498118851281566516655334314452129315337726036229620034908026347252853274247250303740366147768478108719507427546002415880886155215580559120983166998083225717684023485062747632826155613867274170343158963919537453619314896887874258715900237895830802139157475607523799738703400113292035350005317418842473596066788774949559157963694936775120135683881490799848164251896151796742482596336124084681478889772940915504369941641633624050033515938170833399549517051521200392275350029362376392832712058438272155543077848693435382294511300692107236796788621511902468364820612211209489710662870555212719704538723944230253455007561957421267307585357555328618541145618378601185172516430819079317343525571966617483340778320197957147242993422483661851029629684282963455434532228434086132865135667369603141092130222506474981513829054019605212190140483225389051727997712641357035567086892629913344834566098741625210207984439328522342772187369110976043636642922528593726271326466060337371597706425654374060129611802702919340218578233577655140022116460755968112784134295723382252764003096967546402427379164767307718265767855966771627458542893686362739209024876951117530834912096389545051934585421027495715361309063093747665866643520633112498032892762816481004690325596005997473946351217442692091246339451551410883436595387874341921963536754022165131837376895004806077825679783796584387404574750741276971730906555514329945675690146375787523071803563372211436143699574637404746851990152837930707990680204858233414132937787562489756754900773345299529889399391533871306034116916546348261866176780228364978583298934966026027219604964061482471383925630453342707418136324944984241526229780216070675633628884577382255840789631049726005956515780181207374747365500006487999957118570597072427956377092696881181420029273573230188105202714794413165723094889308279070065183024911962983173928341296361757021734826292367480123544579462340249975256688995902089586076057076186815681791624158440281081242818952989041900323750216811227843381771672768975795317587503333027869015199003646490269972083327985242863265422480331944460558172148586864240623431693859613232906128253730445043415209783495798838325596390603532961387240907790904879235249533689581042006653565284963454841708765391354766554790020891810544019767033863104696446268318402887288062161508959987321874547007475396550054691873939338665345440768782103305022293981577871895630866401601685645393229513639930285524690820985931786097906159112316500640197980666651960540808859132383254316051211083580857824195002168317234281423890841047941691846782899495194988495930061677418462572893880020912193402526827302379570230021146643651277872098773122238343119445769309309200734471276525035528376980201025788498727742227854608337431089113916693694515596872213681428374797650697016497529593821808701120465331036963845687686375808751872142580461917571063553545032660959221238752610431674683390923990377613599499106284358258256149190447095833806615986827241774278447708999635691487229553799289179623216475274826843789336676913110019304816377288761158113447482415057579108854736621942277510100866275187796028961518594882697054751140641471791086818569850369562058143193512123401160483236572234689702965721135893383155995554765337860932473760990347262345473407743580956507234715188811421434368658097914447186659694303800350678344307446463849564447994383994993376932622046747358945441790384620991154786590659794461683178147001005799671475961194325945740010319792275682664838268075949780400029319418814257115524059139077089111568397739221711356073654927860499346832382114700288345011774334445064205025253864026096462966361608018443867221329131060012380020310965666448211329541956703832509760808930483587927917171406993153727304649418468309341407974556662391641528162919071642598171632914095055794466646490513975742710983143061438502492984907489996901164533231646190033996846525515195471612290763986539394997461627374527224284398836781331134765037584754680975664488047224928819591728576580930830024119853905064389446077609312714188946599887268973948994899723532231683141792770410240698498355230964494265672017541375865280664798625783692646180871658423686830362855678283005649746863968673258919772787762180401625886789200433369323971333230879688283681389264911241820249900260970634297658598609526946011136802785926864144609510493709162923283765328982028995879140659360381964489989398120917308272711665563441171054739069853637914173682818638959522773033796262838780046909074362271588123254657414001043840760523032886800418568399716731748910725072929481020306356220590533719767145919363928874338254604587610864887658745712274238578422508335449750211682099339568481066466443605563662059339816003582995756216916330516411100496871506261321722953385980334856829369503808210176732489309324899836608050850050644348182290802785013223134419987322393770876853597267523993511873059388589697756193532954967424613285840031542767600834921961837836885789983789472378103040990390811920373293214548735302717150170095768996044403290426008244913318220961228055047310493667992074452640675412016015268993544329804029778989545186164841249148556427811670341103962870148197487267116686767907169850047210474248241486615895504009907020572535368967915039553765746711303436141352290570052934359413701885619503930761300761468032689677603083363917664877812300935326509511906744987820773117747907366018475414677725321096284653186630802953987916196393678067721994939153480796012176914236406352681257610903331065244681916911609397511072824783334056943468439264501556813815562290888282038929218151982619508286663434026560422586499259608131789109375439600340081540024313179974236222010320531374679084162043659102803388799248653673849394216038061435886519801724381126607136670118896098215520876426655850744624438050411270917747076953117976347687276531308256949033895641719432973891713940535878502489743593834718721503596501121223994963443512629789312237804490889944968541385775058431597184164292644022602227549098956975313414675444514519478603810858576423982428963360281519309534836018754038231532702412147493636234349095552152911053281181591149797759560503658577542802711169375467971679860715121478705292209310324061112031539996033909827809200465601760409076216985090384621133431762569702026881411294258403200503216209145373267779187388824407378904433991948673988976924899185691111049923967383936490708471065901217773442734359385988199272566892033531655329318304201993561640030120230592772601651952639764642825517487725514544774006534544495710849436764768390918939364034950745916714858799709950272965524653146182022498953779919685818531985503194940587468117631472389643207246843777149090936755548961558224987000237723701757484527830489940597229923937120980231946424913263670664352250593257026790092012219608315301746786381274858624930051663883943050536789556503077499141869924753713999157709406904034121937990964946070249943112455456472545775006631789815038563497323765724939982048249132945715357900601309558335303302852320588153110352868262524067416987287027022677447594061416704854378816920758457395239084491441357823213305920033978374245702034533100708777820320320130716295340848294257395764609111053404420995716000914586959719088145276591616513182217539708076793812415949332234255637972547198521780864190245470344547089762447226481661152599828133160772473226341240151100761714159301189359626714605208976599424205826067317384055311144321480325106736076618138341299486460037009393700579483409027314895454956782467093281290359800727646910976415377296163468407501263072095921549068531495880170011412647884218397844593170799331510915162782389380833723288492230435912676124640283727032238077268058604393651877047768291581788589657457254586202297810946221403652161639775217100246752560193204188535831107250616353234106788834970694276490150187515384373326116755152616242996213871024856029393904657391333224341089010137678721446608512893018880605996299741854607802071082088261633625407154798390486414848845009734162228520812592177252171165132232716825262327993271783228849509723582915355761784165898248708484904872074918102707648326204353968431140644004591631714069810963500552816455918780884751629713076582305157000245851930034303096551178924526949829342939583568507687383573057870026736152868927370858461062100823582149230764052562253799276366051523368278780002588722608738880845379201163453835211981153360451382998825192885190658617124517222854174984790074765823108094113243791159010801838364117926887402823686815850695842200800386084077584827621563883061908933921119954833810214243136624500944567924285701066373782220031222290226211761022792889624200962427899332892397931132428944252441378225319912607382279862128244449448521365184643322206851984906499212124334842983800445660945445384168475549834852884403799033688977600046489861469452671628915337507575582420179413504171990656722372394691549223076755812853534850165539381041715177110883038549389215266837482921068660117224968808645497741713092903600659153004926288542231603695338157859238667397519235576836210406009085821772293769632773888082150642508949722094900091684321362607087724690483499050262536100030096962988740085497136500346361144516288964946630298381099089906247505500944992673948476584858487072018714636357500921511211968841112572112640005986982422789847070389637208148429796912081735150914734809282151243875187043196255189443674180683825076489202286298022292997697226022415816287263708049544485856983821257630435004215122034401751042675800694206146411837206004243301500883211731990372549526075649019743091933553680424229654484394795984481887127987194085388208230227625210458182016805384689714346515329646331314792962192715670076309551699895481573809740879783407450958932509481961698450922277884017263790178994166529971691140731436246733090237181773685607682799969362913442626045088329868702328719305465054661119970256472875067842841810223735384236969414550126621001500203108944992216057012057207355963659037560301455820446340129745023143499099019981119877214278427015072129113620862398651670910747357197576867483433734880064951725588823332398828737753129721967704323019763175245391158350200445615783308096330126831949330250868969976280355318787283247107362371659595125737056753354774187846915638081721134897369233411857559486571699828123891777039184964785774886048162962637636811517824478899153169420146301312431417285659906896027143025562325138549862322602747130480433446088107260366957027905461825945304525844303847725775133637256839477730483217781021009744769586340229135553622921875936312901886589278028720406973840866087683225373119325639074096926151530432776409385874139156916514422889025640914560494941304645208422586085938657312919961248288434888477612505983594520870533047127272006161521961833517532658253019564978496812872330181646352815113118573759136990458591048708027094175189682251956677802180015830051649778381827704992451133605174620166151396577302761456221932217754235982825014588584196583905968277432308879711060197274713959869484826946321889106973984655569565131854122466587030502819287073292085832912269942634967134208837985583332008798557223123024069480688698286634661528571135436052305264797790980437983778137047916763799184779180513459706121603761645927676203796399675330736226496118039498009570147151778874691554453775537042354261638774007683918216290968959345163668722221533668750102386656529086297476698171739026722750304605411303903135436129358821081096582893551703290572951696792004249835281699687589924547707306552714471893458037925079356516158318484005844771970712564445542258578930148740889702174163319444062872295176698381196772370277266272185214792000924318349326278087020417294540441596138019379378539783332468164234606598107322500664100370143425376887539719382933108108251210545742119266174938091101107702837213956273120469747107461397032217183106882045727719208058769819426873822452819152406460374616452653716629882842653712730915629190891482185819392120782685270953023061154316355600735446755992555021203179697294190686542154978275494663211578598588436295975308589118596728456642136815643322510812704658806667935534420224510681736141271028657280412541835975805813867440074622676376168887323967009180002061647492529760012769005823282275097589980041727678471103232149774805934189744775434607714087732712181660273395631451616049153413710573943583652255018059794742452429118744045060400585037726484690513267235106718930275124061086207209528653960485938822197119775956598906792475366879434217577001674099487714287871916626909014306298335365871381387499343449449016927400281877654108003778543016726380509491503237431607168419485181031192404048400265207019544213064037469107724486621158701666456802061547086366660708627310111707954452496531952941917390509270409471651251875802574936398779590008555631986740440598574002452692163116487568303475554016112172889997543854773618596292779499813994473283383460209647595311342710430896300152064562391136605442486565358832582347972922762777157783444509646999280075000806569181319021553535714711495631008194764908855418858533132804081281110724534169576547495282666244999964838048367514019966285770664179104181044712360431641168953019334899474227944352521592937216689086516971393752498461204958150204515471852393051654741579032706672184492161012609439059294846364018366475708983908689187042001736719516070414388523176181690629731492239448078164864690261567606004107498784132520380708369079562077027342193908768901702627427932006566112700551279572992696387650247943755491701679430560515047925645882346169346672477716421682279114395024479546726706488876752964841717938170721127802207953027403182272903198154174415823820343045094511421832516038256501247263303527371099084480237350168506862340701392814489383016848141324168036241279038468341100609329878579525563980698209888590109416003785536079018239435083758077485264923939782996438335468651270405172936497120252066480611563242313184089044754291830806508766453793020227066221634060112126656624046241082507353593509825647540447151150101129528904213460230753572149123578661401972656053898130342301324033930994017859882228253642200301896531502987355368328376976166548286637646722804471358985861444740597618389276671149193577797531663081016213212698262527779122190171125862870663245005022680346558152005749339421805025383631447939724035341684030667216606303559560652675002753788276003129564029440957588197201376371737531927721375154663859505795583434125561650994113793569062647240222304565556594819379793196230171587364383200394285290634377632569516035546944676908190055320640507995191425667782372371216194425171985880305030318010191343867199195785807807843077846907555360792960496453637339240936962704990806059688495559538204024404204440908786076632023359532946857097063435055134052739119375643938845079421549908508430713234534723242296349564068337567439321732924978989822758287801269928621561317649236004373654773156078794249233871353044158707372734360511069652738331523944369705203191162347804618578123876520801523658938062859571554542573219068285804781426969931720292173127155434361945306384740286492185408473780524961007391071233694698329338025169689052165680153033273009373917670853659425041427355798878245196376114283289606522296290935916436568590824093124930594830969544444687343364856478915990617987341855051385385563252737322200006593066629930094314978937332091748231226719967500297932032666169057464978801930699255750664980327078793757315258796704321349260985296089756167223683009456116836979248729241359459962083756835881367082511973016708643660739064910397066762804427285050922453572082973590352212392267207280279708627480683177657542671502812365355784163478959218807968090042097849737191605109137624185593984262857370714695608263722915520433614943211219119902932259934284633214862174465088221345901682996020942586062279220721875000442596432143813003509831762611514682324261670089853931417974725845098281225389932966726177244814695167731788456256159274954434873459002602654951482291210584717230363010013248730608764445693547696903605876014364395785507287282973273136997418020845388393660692291545989624489805484318230149122356958713280187180691966316529570636559607376707505106656707015982408071408505684640701264181425633916216686105955391629809354252298792500686183713721373259602360769517340526429677903332338956071596369376373733435665551290779522123727715695719084468920480450617268745071494425944625944730871726819231073731715390590140710413156208669362583451357592800452582145349971346272522902002619153282150773849852403369259785261898936118489794988653085297250657970314171765465047117009193419550404394366265980346965873501264259300988938871976306384833784096874793585363225265325400190137327979552236015075500190546266754951697287244496420481485794959316643273516893132454478681486798016287649486026509299237764914831530603870960250218571078030879481853771337120885854850040403113664347650394354486123417282911083998051822611661781974804897073113992622812911054044989066791806309593562052753943476298690370191410244919518166701451886256924156527209966806902811993035405866694810785138432107568000261212248040935360423341402614914444818207465531135531458917283952808986071594700057268400224022393822979159016867196884309090377899119215095105326085401993194332488233536868267632284955308596141162227303750869217416104640312962909711671914276699579361558364782110010481572883978450477409202201832699896510268316044222829820662960321350703360190747019707528566630884814358542504970964583957656726883124372192803607962786771700804386370594617523651514308504937059259701158407630471389629480598579626040690514422574721727085633042854586523847639133077143086408807895556269004280307270405510673316247635083972988130575476343633595929276552446826029190991475069915159248167435868329174804462117510143076835944785873019395973515432582652682352293107010082429392107768851814478607175499946864332919777254901336322047648252522642408962987132339243265657525598092947648989603787123161893351923379192322737880532666251963893863289161103159909428556185259397722312687629651549296041878141334714191762834443571263289738529700345010927469764286809104884723073161047949206237671102455583795877811337421278722972431588086654673293654770100040668679152273293766839527989386364261748835376916137725069151263757120363947875068327348984027599092999385093478097803219831657066448199524892381198428211150091888245679770457792566614842686500911270055378729166529710119028364128147713679040611234710341133452263090978749233928859271310504345908443592564015306793890574107946981569296878679122915399360192892391032156219350052140074967810115632149993491856584597444071680037045086467889083441787706715681042893148977752423966803736979769332784454432684711610981010684830935629484419867566032906228680403070648916975191329405833025567204247992780156734114596518724838936823064961009847532702137983117136048334411494360653437283276695977473706248394971378981913739708963240827876660652758669743507669686901816836072740512954965130131822146956561844394469204220656745244849092740161364733439153743832868889466132398577196686716000611044803487764535528603231537832673744018005348090427613956219455789130443348250940382502935831489545543854409745580666125770398690381381173937869764592516898330572261728146287914856945525020738907683949174695940384425911358555131932261751204333239509514440790088763079047906513018790236794612153223194443151908772083305613401900668975251103669510751401691154139663519624640528635391567778732009072927443545112291692370497437136998083591846114437722296558280418440971333545943249393011031250025423485228729422696345096845793629068934466297242142591069608469773229770207649649723295424178418670118137172717055724934338446369284029725141570079543187379669730806009759781075542068981194953430882387467734499773673997537592257218975369885978604178332354324368012974304665059587580666334321009477554670284374499670751498490969695961354629239960779912972864882727068137180065426950228620136299104613829728277751727997423447049941887287129977280318668416219395180361747997727605643935776551964021367726703310248398838393346960206947582342347148406452676288818746590829118714769107347878554415365201517577150233572524636073747808788190249490092404668438332850422632550108637797350786464832946885326636525465318213427556632912615653315902142468132149848273043625507015647400329392210518324148762584889735368151541343971421211363558800570888470531436226905384955814386200996565362474610638959661050989242738110769063788159721887250036242057249277778788196715958718698837014470793944225061458038241792542759267075480375156885161595730492860051815943784861228427335437277743960258205592456030268216267863614728907120081116307587813801698059762002275564420993989974576570380959449840938582459692709033811439898438690925437015789279743102286701262800371550670855873431803430790554848020122222247259008638757606317243341608049153836218430085290598585014594962810840586972739444094230696419924945151476091442017691893409600707465987832569472099659737312923056743149301803004402330992807592183094616414868887823321635980393158615946131790163758740788395419955153242735443424229448523169399389122661899775256859668616046881975810967814348808829858282707941372773670120624574101873243190140667572987962506994585539432715283649215393958417508572714069080986609587420453481623970367452828622002887006199786071891864502021371839802364256738587910031252230223952903920886392876453716108072255106951310570326919807768437487458795370099443995072145085004502335517954230158317583703855604340646465423924376637163224486127280727275043088487316874005034325166992700314697447586769537004137830648401751821030218869191163860504055229467600701187319558687785948490787653801817150825303327120829996000371832761755835704541753585436674594790055164177739986426650530323238042356538393418441748892650651608883791704558085515952114373141766731352378113135594336122690628861515895283081832731097388392075005343238471155334992413452500947406826946435335747058877011043047629207803306420539500947500008826923752855259184274633640073645120618174230444789931357960170201302481244068166591833987654040031882758220629935290464958937611645765030136267778021134184546490992180133328499585923390878680614081018492496040290326561486330703590112867808914543215639971077611530679882955504176623178614889289651089588745352865279700064746605522424563121321339026672863094353163468062328293375346216759824766402270739054900764691229341767723040185511041943502705087612006040539487313865546690259005262990366058098248472170084738369391732459559689212184653401612643347399731546254512775532368417190816139648404088087655923659257179427723863997740218373872675393154699528595094660172624506071892631156155289288431218422213428564583819937148086610471122088937406725170286596443618590836148335019263605778669552511621020142754650565395176317476576259155853707870259952466170114469800786859309812805784699995087020452275180052035597870201263382708778766398418063379091162965434208812010444250132528460376111288658299642034041371212225427942661568297360517901140652918164138116864573707317445364809017321553130626773010149696255126764339356213985781719041623172962150237845472022083378652076814583135845850724028857968384806994039589342573115719100752601314675572666679315703893929714141909013382985011060930504559610818821069134392914696102297965017271138926884678517962433009634119919183248211128416082571748886327468392367860844863082176395006179422451628830706553120148585261718227563369161678616091353307797600657533540016133279334110291506302274839830929266271709313033598727010301782681264523884937942435052234340209816284398976675565605282599070643943606895875583343581823243853427744749324079345196308772448076763144356999683900968351396849731652872066136303976210468440694481749015725251218531946225126818357611579892218782152664867216693117293530154064958138679950803183698371518069220774348966759301925569767101558459704112701460211454391562582534087706003050881724789453144985075222101469282837018183285487581550690314251390055929779376388316750108816248181287336694682358626549982961463328011017060707275415423726691375623667252297661126977733079735559591935518975267618323390382277536619912456864620475347035601226112604458618093385232128705635901157964510732100607476753827425069473661198085757043295763530546858768525320846991379257818841909600524079191792792655778643329323610012263788041698201679404018879593413676886846392590108585561890129663378815405017656681519264875423995081246604504557919047905135684268696952795535319625940770752439774592323772864133665722775914797682239915989397539174810314485081939095532328378152613086688063919069928022954281469079399406434719846057751126109889724720025053258784183621730369576753035545958461242001248682448601498330150470291577334250726403052781111888469780193722132160787124175540784362760366470178052866201953409056773234742302536097680321006807797239094723300794833310599798638192424902101098545391354820535294612596355939888085981401146482304511013133013259002258246132360363603335111111003897115512461793697432644127630023414325382496465198353179372558935310703415764952086363685134858978973902620585534847508162637257739606050759944543229477163265343580450061756810760693499852572049690628214224315742714772762816246240836303042638842444647150833179612755241830093930378748246814122643794588710957780392123121616414674454691013946185830612935479582424789304572335770996896400706700269723036996518749233273162800404295726802016623928741157053814934663074477943914346745207452349690972929483733946376638519638980132178807285171560383953872349696025202912287787685596296305457662626771118196649992455780752611363707878696026219231186093661052011730981559246246299565130555486018389084683853844391374122016733561736847990915717610647490975430830304293692613958204584586382108561657998674923323169532614189245906524264249416024941940088105416014676427184275136317414073374522557835392553151048941233322545444337950455460976586555194913421988046847410280423765608640899474007532500410190263289005914044932727115914513115314751930428629603822990221849680632826283409816309906781601700349436737159168363197362144672222284513863992036404819544781037541837320693428670976619281499339450045617358772409029109920783697807503084753836152291393113460921056028083949254662713696696913745542967611852066844737124022907128184878946915914370041338553724137961628115533486060285126720619900975475536076439212520429686103959192892301924103883147996729442037210129857371328185584409160278151854014352724023319890123295079149794493654712211005067407542411205465577701194466202510101461982541005367602474107552079817384596685385814540656139591428941320168758699652731590126897801132158363735039739497951214360955652768956155385011072380364334981190492994437710370276206000853495887601753757102264349979807632227657876816297867587890449937733591065616102446610154539519884694937474167011169187977699381654185578537460420066435138161256498955602281392973226195882257909231306694921659141661179929213170393060633644462727771441265557875182349379734874362527785657759186563673228449643284943321830552306689335568386612949630189768860870711431179669178712176310808936077895294705012024986539457350278910612752651883600256329609217549830882455238934297189670153575939985726990020678932321057432385196268957398940232974954779372888923592264411909508041246291548575407950359271946379714719961510336089582196941991069081623928349184759804165378711269008563795738515065818556475170811275085684953831719954594377350065830625494796833488524418392220817619961617308869136337839115126366889447515648953498267366057993006944405634525139581824381179167328719067930004830825669952585978525151820929527506697172593245830401022604609568449227676975473252218129783058562330715138706918570412208800285335498740370511493827517368939346812448033003172152965619796344552275977093898896276525959774536897612254388954301524239322864734660359182078395424938436384457258022628072355662596723001590253846378331711761483720302786950127368897061470482092584085558137872833916560384655720627900372415960871746889408299851679534762331487638631003686784083305587071830562448459491828592753277882140841075993755420028012226860178212671054877888318619779972350842668520612266970717151023491244516536749547604235863723741201875114932120068887100649991501267828254564805367724884556013622075653906650665113396480308184054844036546246579268034520582254221893039098244432203888802674944581652909256097036740516702654090081884087782523662179662178584064981313793704027260258784991970869088078955207140517252111583475458783044440935897558387854677223114201189182651410634629876530919735531159594226877317032278428887212734549803141507226701481231454575369473478413483274795359559589123817294936844506791776192218775541494063271576748805008581392342633062732493573561478059139799817354990634251183001538301575377399784578613734231315782256927958605708966676307843516660660959456483235322405971638326179678217362049624260230686814495886730706757763180041972010624083607882449319896017261243791848428823029606641832258506958626676378050305123589303627617729364033083553007492108443899178058336075619496037911683247488774141117184653865587486305310098124059973648411630121686220935920414444166653174088983882007021310439032751990933249568569375216179296937559284979228180022722101931744288079729722196069252318902804127671639578720733568012905936237735396305119980239746239175727849139681236091115487122753671506486290602244749626321843157542738054412940127965366462387920686999634534910879688770794073076631779787001826282004911718436444986865567954981759830458954346080327036843312644114692213663311296966552890558719939728626439004344648966994444522737150712617361577692992881487751551183571586043242435008010042801279598685372086113147567261629208325962912487814749031891045171266929160286560958949357523195381174329053395482477877633968334441799551709763076739033490472502996774891668122458124530539572961570742608717256271995295892080211294520346892940305981317960372821956398833084831669397979034984301941441908255888189688752200633229924310380015897851647178669937360702813629945003707563044247616613098310708285643865993725657043650391722080966903124345750224553078046431002499461692588212799149013220800186137706137987587570024777791649735847904063296660218859124533885907431215202643659409819831356576218297747707324275219775725603773405854171492943046750573903010461839255370705400900572096209749682142954923532464425262454299560573131391719089905338998056749067527292505374216107167553981160738530991256239154461016227660040315689243241952721480066079246601829492060875132365105916964442959765547788125876558881939840370707019050518126844981589202783871432824180537522415555139149413152340535706718967899691080349227079809227243578109672874199020737840838465292583322096963514956646860294631313263439601178126875733729187017293940507839190986518049198594145688117458178985234553186271035302083190201965668337294161987508868839898375830506237946256968950992719576489965581287921193648928206901475295367883963454616436747807644797620169400641971259942970679696227879526022426858800122590233249583011609637488658117003602744599588597653107328485206104076934015153641493964476829027377759815373327868927904001510576204052498918603676009605792134832533017891866788661973222678398609920957324913741978071155336616966157564995824383597436554401827011225469684558750326223985058726815854895930779814209487166689610324869782018428588593718241211319530515177918732233408866159603649440660803630472227397344520249219439270458713545476115080172265301702899990414012062960686911131627373129639930948857246752342192227301905251123090928044201177038414823235054205102157978981356896228800070376187935289933430088134610858442420740491338099075752731893891517303777860109497578904566174505271204955948520789579370770501208307607912117427302145922297679331912137014285941527683672075166815571809513259755578668411354270625481200552421622451015703394898915372805033104437991445996734694193206068126351171694264583271051429538205834995433761834821276832896833170865160538768802729589735433261113251971194920162400496224705237997902334196322586040989251238508684775345203035356021888057849100402648910911750607342938011871127955635614979330534778600833115573248208998373085235135115072842598080295430330759340885746728433108851102102246962934900660752645712074184479871236826825711445418108314753334026237065168346616808197806424591527562211219491502598193919792139456301769754963406540117531434518338793633588081873920340340563207438673173379590309268120263340112185235450898613003623308401222980048716440192785416591337013181069964361174615173348689087244174298683254447071728178567375913394199771912293947797481745351394503495303613379120382690920259708798802043486639559132718421437187604356552621560203176124595754170648580665367048700708947786048409679974570613118162270291483532767875436270779824440773884085087884957449250659115401466424625428407683762976670891004546440386910951824134715324877988060895816905248189464831526216355244077687487205454835631509357132588022920629604864316887010440824976883842990566857628580296227009327855943220331884325455971540450171705567892568988749652527896247951074781352377294435769964524989092957153827846397644708673699753199548017674561513920562490268827023879752030278220191926485271506941335400231597701927569530398057554302817446996533346318323864168094131296007540111464891060043974592394408350498091196971077670451112700480045399839430532331686811059276856669481895795091237017923975383919653709777204174015374914451441694902142577298705495460800320766597007191924824557319338855612113567985225076185505597540952301668517517668541990420147539046435176893161551488697697340602086036888532572626205456311842374758265752544246005462712653989293390252583296760830927260083116428425169241129378158636191090909737669450900931421345755899182818903184307914613540519640804909393359737083678933872978890148728705515626381718788683789821351773842224376469722222902546340953646872693908224207435656917184053990484579497187286532678676398369870329573421567710129181189059120235437606641464273048576625234352472250081224331140365222311670257610862191562753304460112428591634516073024879037811001160106328536171146456063021545691536974384393712726777318028226841586482487957181707372165726728428828363043118345108463049620545268633362958752061086274880632592247623292149585045659429975847545927032116282770823244806349776692513423548704055360553326881164451024538151817648653918118772642931586730623724693635527493674441378546221932224793605475463318180982608745740329508117180395124713731068788184487135859193474736905842038670194968512547027656745665626938662141564965369234957975450282765809600845249998829052815309416677531788373878232648923474448855548992587770294868050142212447366649539985427769049877927822915903189251311450232769871833160862475989946094975882341427371744788627632035003968891531954137232302759432013764040502281366662167789186360168853275891498472826302588447989318516833429303357970370762946724323982668753611962577796884702929668770544475363842865383024562600723997274598086867012566076350458972095517973051499254481268076744308122716394144157226570946661985822228058817498303083079285810298609431378505579150014989775334353735265595657300150976915717684625858611345939189069840429202406556794629759540896790627842253135950527111899063628719747816941109967998410869061423353943683110402062081047238563064726890620135432132596265985804561607970604011319389528826180422652234222057823953983569822130688546564211435091298990387102782242947628985906671162565199741767539539468692979463354067713839959457300469142633779589629058232805719138632357272413554371734791345600563251340737385527565411966715237409328124888943436025167105913695348608230149504624826241664519826255010687155548382869812377543164941298053241377259856541455892180356712351551321981409285610300448371104189144385702519512768821131770394190325885887995403290882949352402642122688137998420035871987036945089916157780791275436827061826510109560709177034806961620096365659222930131589418150752205007424746952852225971615926228143048074372200710616591769131328183915165415257595089557859108286064803924372988940046952394329912659426573986907879329409540413432337468504563930076190467342868307641701019835970183801353160907653413700915274884926845940084704503333244108032312532427134777340133949191344540729486323632298535992263305293971551321314607135079485421919973831744762731742702694345122660690344040889526979304844525204723987106070706014636729523954551749865911798910948222005433672231283407581313576347430362079457796431202379183193140646184026320117737496232236145775814450801227561766465807471097082216289792172987890761599469640229038395244449663772695952133759966681746885589107289337561198714767080380606198158537807727602138880262822614321169364226963767057133859705971034436779150168329585743467886310804548624905350024369869651802858082487294437678866186698849318331958302859594272240707816948341297007133775095525065646500986995712371072687532113802605890754557307644910856253282088220221518708549838386346346354220606647184872932987412036250765374390923436928524585478681323330783143398663178950533051842678494378679739173467528366711105607269667864944425083110662838295999303770580714153054600269054325686448909355680572651463620571474193253644228579448834104147255479957779057137823942450730474065142776999318051002356655250073229117251476435169212229267351125567930965920786286755861496588844749988195412413830519487138841169312269178812385198217411535629136583618601018537162446288048159268040852715071116349567983735183866352612375239932000331471154994676809662338893451289458898042340052044398499021690204290388527464004313370869274751694719996887167288997962385378164027985259449379633902388387121541698545886143618025291264964626041453304359929790632170412235427277383290468097872523554622771331234079837942207458569375227306470239271055585395040641625569475684050448239172150582003223119230808904347758047260348540205356359020387788932307068063716333574991575905922003859576637426747185769770523584938544907714338246362994506437122593754491908357366054841958934068185559202798762905807814471195373040462663438142929950220602374164594163308815322430242841788370944628179108488705306171775596027103553868423387940124030108748515811466118955630072607478261417732126748918599985017447605613821342352440240550225392557594224915928303131339734909334734674748006434812783327482674740749268669695260607685394777237232304422375824287795030044831007466191385774533837765358685701928302777783705917590629879731123578249614694274725291781459039475048287100417085070834050963708517894811868026644844415855579754481603814380800782649667508168991152089267715689336613391538483853966982097661382902359121361174798412339856741009783518038459865759917969681628105163413780796300334950493378164104492279122585994976956856523249529481206017236728709011407799742523170689692232290662762733026051055248858227674757086544605728109322131458936581600008136520258369698134195019262997567688482229384254740155487397792237850554337844770433223801255363418094548359288926429986836342838845331693655095532209414564131291470066557735470314868246469108033739378304673496171819685581650908486571001095149003651219197948258403875730380841076169219399844327590761116434256732155764245821705078995921265549603688692140129955998303025163993007837007839250935992621645326808208367027091818690148718981862308873691291377814523357391120862726761282708956402315368720449310222996034132711533264022966206369920422302045994700949142853846967820144359521366292912336113697638588791814299405466987676706233121530928681487097877791512638225050379014008725104406987271263792638541855208464723886300023922678597782755014159742919323508766333496545164883853308601286930882630392067005860740633255640236847004458968702142896859547260922079095590964833907106862207807833154403099187727939048742958662491743970118822182430100557348083178506650526177916916697679215991016989440533980611823663730703994486672990050797254338383194124926693902140137929010435572381720075820256959012983834239273889979179722584228165382109128517471895187851037872229506075671726414364724106366708352522623778850582268797855991356879000823382929910630912568159898748418018497853771732484553788295771827864133009955314797718951242783586932454872591761452817041545449345940813854290681408857417822463035161048044084882554580071879717028466827712621683686739128876820604510718518196242044197999709238901901405667622028711054670395960285918041564033395054846291291676178738331981739753824984116414690867388676717657194245800988625946381815186201716164348438330492530160788647181233164222273141515806730548627722111789728470490532170072571234456132665021590619805269193780912790374927848370318854712599781294003678674227125615564133753007496544320483997672811901480738294642329599414720839191017155134711621702150421337088960325474194709270363150933231164172952039449687012771239253114317229388429827365802953189987966451545056666891707136185340244393828717507368219435268021101657239772891383991699985592776498515220949983360086340451976154426383725762356423067268261699235845403593668327006757007626494213213517150760334169559339578879470379588340593285586620204499631305228101268499633606118763197707503294503424078841559235254123980115905042801884355631537831141900427355663082174418868289977432004076966120213267746685123535193834523355763229188323154200605747559583298349032013094606066217665947473661416660054315884514461368192113429591618749517756574285535151317126323582240823414524654340176730827892938567836984827688491607289944300486745773125629899628559255492709813672494356971062828581599822664861796095488874674958283574586035629322274363261532064863806025983878685243569172482469592640323615143983902274806432901896588504515530123403136031522947748911001944975660446801167431396319815194176742197913919641281483134398718585200376868079017114362615562195665081646344710791042337624784798690385018004967736239237652082014503073199103768109992251904108267988226230991774276632552359399606937142185570052360087996105136174977254112577576277845272866534687739183019579596671413015571693768838378153976823677126765240284646555912307258688115080076838390317516942534386190840438608361028640813453545305829912838397640898369983731328981958180538656638684159095891000856521158138390474146035940560175749678910116904355060198775578931473282472440869380829263466815757639255992037736907325918145595179237607730810857536177851538824685334086626336393850991749234901559398789322090999917653865169357587561141310513980737944362537261940423952992150894426548616994279426004125546175197964392817897007583074566512309565192065450432456077285991425226841370056493860277518694126375296247838115728443450615022550063627067814847286291727720419351538081798144902531268123896489131073711688546267006044173084295659408103460248084562099586848809982920117561943409878395761879168414081909995033583339598718955101495472421496846167583576159039794721340158825065433096496002212209327213732069412061520668354293321051416633522822660203443343960048738038545449253003226087684549496181617520540190641558360705551943266150702634508469066240032086795360144757654841692494426490775388393554770294751899031488504017681786511881462528814291523518186350426158700923287831854112396411459941558463966195947732173005849547928635654826316506262259917978798341225145830896461397280543981342882677017376385881095526944555076603808804566504565578972005017780453812247155937507314794560630696615251686697405876436013099573473524842788762224268155035358746901951592171102307151928427566422582942678829001694895712567653365591812160191198145917972846649623484092804572233226040582060422681507918953356430727432063840117469653705142772444523358509797564943133933179863893684508116852920237830526852519507821611872967762557957707555319302854421902248691169351272532605220315542045730420127655124226847648118203623612970100642302597643330577866060377999769833955751017877789490857870354857134296052340117587976427186605822307807988320026847861266038656729853373494616791802830870768190431311347833602186455134542867132050019822451100677785052798162237017163485609449808980221583074780199957613107603426025278299813798888360029662679307239347034853157166677391746532912828001390259189709139043789128904465154051963344984246528555287704512809860830645437424487042713327018214105591587562529796984422775532534601747847002288787741072570119866515353564412451354965920459299546240987196681903291209353277109944489021597669467437032404008646508969502695928643660591851008365951331266979301444249171626096199573493436587648384731330412636817435408150718969093456144040218058684720131507701751943205594448295386594123282337519183901170322173155336811741664700156852130577961390023132383485905244057593506762641774059790372005109263668588087322419815295029662128498054022516619905267736808200938350158947925094786207622098327118715216329093624071145976069506722042101652970143623215733811878511481684647535080133765853017733543043049513959232731159056078462500238166933050256674600244887966198431212170475230420470849158551762373634476633800916294235269283716372146845255719042649437645862699758031548132455237738808241736156907432425829673406570610641930651969885864687249932082254615578884279966362694544693884823671759886662889968143434109436101419605699756741328424551629992883337826229507114426797345567212179700283836749385088088093630307248710584184090538002952681631563543402160514898934893440501529965145348521684593376078119599217035076867140198989172004871433582796728176920523930451329834879562567944613908673360306585944784572475815572473789185432689041219840344084907525033035528322362966526129357126581513569388428973788784895759425686879179587680546612239100659679844203731380620435771284609144507062148245642070193473046347584952615967810581572610256316360098761486571057600227408457607587480946835892503205671633222095103831966564008004917925536137305095732362823158603495772421185692142627789388510100327851535185435816513085687536336485681695528051124319912615437283260635998384585512328328338815349053499709546828078209207736559782387697651871615190178344069009144680615650738718896513037809522049800327982638500016226109173773467495423948594376367549755907115053659138214183286665691285687668731083229984085651584780215042834239094291240539196009721608243081698948005399692846015941429199302630525220251812875919147354429703582541656637516674962150460618753682320922788316133288340098868989609419567188206929475391727854117495559070512527022423655667319075751186456012010544446170060243158292998186915688792980975248011111839313843715501364602812539937422466940855396389162033593739007767673017588137462723263749865798371793000763979110525493035142367981223859309398525812622295750033776598850504272878730949895658053177632526483301875198273499448770960690117223647602552802144560999769519915218719286783057619370464218351680838833219821423492284219890088106355223803816231394933665217268354959960533004439223827600393565585555756168662184054497998619649109673702021423019628556758630604316411561297101129759115249783221304543766388945689429342993634564855454739498169291296305058336592024478014861472829405033969375965885574377519712173754993630187734757736250376787288736692931798770556612460034302775980258230864838141615856409508718889500982049340775706693491699605997054679712639757220995148221452714904873480787770267940759836184058357214743646604263185966061494477908153535397145988151622161430475412969138044309175774521079314034186900122718216857409201913236154722389686261901512278073272237150180373328961093488916595983817401825918393966909778278171038320034549970223204348951483898652621639493027980006495010845195217442106430408199407214423288218865998530940982024523613113894772415666422979523547257660914266695998825142200534618510428748059551532988455985488254829289635499387739657675056251548987228449341274097722816158245168168562846936129637041172280276290085570799830596417862061986431333063423319549107191116300586619570930927290850567858727411257871417604875962188192639265755226814188016275233468678976758588260886294854913775584852362651986980211542863672959996081097104764056231164847636208280378002929356386579655061781151487266032474002903428722532045081861591095988928823114426173739589720526069208224455502187366260442364274585576623273167435467850344384228454116430239200032874545473051937248777224759197805853008360187699704799455291296317242711877624673848042950903444211900924254733023003624103826472889742411675460980332965384299328880305028645501393135095420222620163998360161825883821379233974621654115198621559869958085935077769789036701891819380212183446597410562678616015196928302091580941066167928788348079899677546690429691140641680226871512343187055698725738695703158736646744844175709956492397377783400257092680754651375388910044018784280162572393442021648279553845169477166387692450712591150193858649063567080008286894506679571267428542714693865746543850159056421701511150012941768065106456608930755734706265694050314074496538480243816073787443502430178419078955826397175493885180822073435872748246918460091975588676083619156381596560532120107879610855930977671711093836382405727164719007926444449988018180757067781509496407620645282859718282673227179736182110848560725061351768506249664618025428230683595025497419462238266232122885498337214170493594202941623802372919085352375538133864809696627290533041460579137242684980683295031813813722589890330223666478109111825558443055955675074186422548629087432196805168339674391243623307168100288751583098436663423250860789762393722694425413953824564826151351141255172450414106865623924813859801071193654398577999518495420964268400146607265341335018264727828949758596434881238075015860140672193676318443533329056226126135168365608833916913223420302004141927683341887264465171400987089090233843409642635638470533525040192751767112559718944203295632622539594946557309894222200103018291271692785006645843544568214856920492036336493387738650504924783711144378365754212659091818443833895832737335806369596307486963679531862066542098056064932402512570853935520972727009691106651244646665118119145427659487960786067590348190880818664655402913243354271275149886784171176027201225283675996793126555140524447157939127869594730952714351166424456328451931106695786381109697710212093626657379186559217693418999437215613115751543171641980525575946517777295238485113846025063023945935141435731011615278019533730170167438755309202276351684163809038101772073424660746341953934389400491434235348417368186367624294689522847955715497381844674248861673790647930957238503444975893188677741897004286390914109528970557224273027404888144103846667915158920537034691245978829607053315887876187587829661700373517969746583034497996698692338697617300336894630587783135513806134867779850416209182980886876078561539233978899376495105453596141862485533965567434521684784671368808579774925827794198558319291090395423605922009835927867875376455591615901462115525245573261495018961692227254797401579707542561075261702076439263162534975078271067724507331889231250771603830900152557464932019331258383161338073026098538179186029588757111675183034149582501868797286116002174898525520764851520453694078300038543225566659380855757456448766233373493479053583689941680395657197074850077281811057708867988753812127121517884315973519273658830474360226472101279225463360706612938850221330353517682781291037227304901624799438975929282616812728401130343152977253534799049919938601946490809337459289437383229913414408860994147331912772726905939064285056272496739301883272475612170937862828294525983030827211600506541261906664182610433691087209488419038442439071259848501354361447507033576435091660927323659499306018066919412362052273631428748884631033244295419204994621279649517518423770133508685538589088167684215130248887534093288289706509170780040796036380786010400062266104880168622143935667892071821613753019254428777280204099413610251387989545459055882440882611732235117111463277962984924124389233394070112641299456255784954533767300723941063897258860484744046698071026847247775788602815870054111350722029372502122284423300570525609502912324787224384153604277074891768157580375370235457260723167763657529099338953213632447997184079505159831317471758353632773303334972725977037248452666496442688299895404642713731461532105703966707323309026381097054601277061075631123025064882481858654935973727254591825065335170999345247907734999974403013829253888534552532330136227167936157966323740124671492801309479478524207552295941198703022029434820438425287331042800030503177695157045698163213986619216368420686813728262715062717677700199463004458858919837880492418692602384532888204827711494947204439333071456367557826633539509137276481619580546262205734777405276818962834178325789296396411872864508676007641473173440628684759735264472702474154303894883334442722214278075593881469824806968447058726025806117039650992374012082555420484642309966100080420286055048319053118597883000534405792196609732737102570132668079611433077729791069928824106618662540216846984101114286401791176276026496064202959197627605724319389034298785507015417781663752102778490737585810922202281778157913125115530605288249535837753472255411042513444686753502272381945048930353031823402735207081619149518963398430963043289388315346037714046214674327100746477638300420152589991963564808955757902061304557855027565488964826327363785412916501555329321222519778737420849643238849255315637554742642253852309158463498325903385367214651773707126598440688929597964166667417780240401002869263388055989101574096428992279808863616693939566049746051831473705149575441350763402493128652828907938389873795750166084670985153303559828366171310220825772690549416972864122541225423358698127388060612908716538013624530868543393263330097502243415701788483499785069053682340229259207455880098244695860402369168676246515607412274562512457961522361972095331491562252300987170225061547519260022357860867289470160295711059732485994341816068684045719170861523554699177053159747707080086613572493759701384900448590501701134249339887764304763842986344302406566327058284407144229257362357069258009870777961110307360587986815675883474347658905580071786934143721722716000208285110526373298439643361229420179871169311998471442198902049074339300963515447937064654007744971086584235994130590389388746071894068811594596679602453179539550876814037190575152696486669572804614717754348229220848795291625838230180585978383164482193304878648104695610283627380895891443915521351114018489919622119206221770656974020797914995637102998110490899010950769137102248797999433921596381518043107670363839731050596477108791082126478662366056134609566780464439086790151272064050713935065398885335818020119288782565705820433533025313394111140627321505500348049532728424216445504304339403320436672283279490708055059052357932634830979240335146800446169249362899677546845224936046320260422356222884101450451749958511226833850417635518828830629238231765328552764743295222143779141149496318244667544923351057488662020816249293048912644605583368844887436439988151064556592532181261084274297161823633972161921385624340309873292888081585345713323515932000571214388114638632506264820566077226150613140943278722215702421686761375464617793523324097189011512658037150436100659549539470461849843522666656102081379069099408880544392749947225625407975621912236156298331176467914609672485762565903681088673047534452506886114206681262582159079172905585210925376171341537725749036613779303870134221574711981321592517830942144554491205736669442962733939223821597897882177925325511321584444658360367655955809136287262479459034330317638831900216337863762529018361260021978102802268312435992821553805488579406114114623836342756033958311683774342863345874355338346420408610177376607610116562422852059258798480242235412394305927049791527405584819137480634378494433410525217092489724484116246207793557819561673969732011212951674701541213755818194076529156114438717679971597635604062171285046383698273459793228721568332376639178970167936787005461807432577766638556191259259492903178835319274739938981123070580137471529224311014981413216856358867846004517124267739938496196087985530208380298169754004566374476752687092075113885518941663080321340708973054756068611504304014110785501597806445709075030035929001071800284203101244629752681632665106457484475652743038663204132530224923239307645437781623788416755175606453240716188502586531703847772585966809027148993280494017356234645519514901354137334318672682829301907952698566944557728926144115816864459465296658581938031212734998365471162520091783722040359700052243963399697209637902467642494333722347470334721312166318707318556046944698052555438383415684493786153522985325190746870225006958490599111310266897515501011589951906822647576582851621698663626566473694046730464957097392707640690805367395471241068493987080737051259670154713211972871450721168977178811755730598532974274199575101558734790318065897940318083723851053194394666179577598635726570210083527002660291260550423975069057468309340560994265600775095752957759607206551929197046818418839489940113961153762803751236117352377060239274640512047627804990178002045762349513348147196624311987778259288330079970028462113757884624335275293977759202350990823279616548316648399812967852488923669060214296554699694364084723946857816629600537431661366016642266576361353446464379832655521401220888845529745017110333556968354801652893012996706325296380567905424814090601559033492170085314798593595512113692492154967689938758808059381534887438117424202876817454977962316252072156166638785996832734607414687927230464150469865825502854038954614091957681272674207412436668372515061575504915454435984080615051903966725165836917748740019062235996332059465577264511920771652980076332610316015597847244891806475117843717022323108624030493942420082702818533424262790250256661021607598205923470396752377148875596546341242136770043116657666717141296547912405805546800415202466518703642628670586627331893744988324410152534468352018246063970126036593139870769450578657980575158140411939364274397447074489530143629143250744480285900426525504387198150907586749760247794843099695814515640959763931962417861512027572784359553635781209010891760056683885412581710813500355939637300103461974897529081798196091157988245444649754969596874582767468429922002364312091484084495474854036873464530985931744262793818733859221268110093506692056585422220411959866270855097197257029737409583756652746405672755774396918395913582927197794891491118562845069233924482895311037629390701029833343048404450992123174354016119484619908834041234300387930049353005246980477482528090221010257525577922679429135151608743907145488587834025291735654963292459375075219766453915674043186576346822386973981323496203412838931199133906796788886929840477667325843622912311608574490668388943894403106095471308623672262270095358792617408335258859594203623281078310678496173352463042606793309905074685761638156976508527859078030252042838585680963730400922385123663148827948958695574553549849629099970348652037785912914653198286161019937471384425405670386987132462447769771841905838324199098692723711083417446809252738806867577687855814380665324033255580232612422070248229088902883725342199949853486502258942880450648362122815765023433659702538194877485726504889381112001425683224063914175843124227667642490670776496870420563503395243415845830628068608655293831100557814092845582555910131519680765464099538309974272665591288279222323405512373261975070167828713363590230556729440787653707914608206385823298672963601532750087613473317835162017420688913972304682278059038565383983896441161514964655863431096719902816496083323707851100224692917656234355618172506947364977195592660756527262848496433914469438039516063081173516581035306848556417313833754156004303982505880011878641827349817430306955342939862656645979981648021500878310468200346240652645399523130448834593535602680950097678015473791021254388542707900511321255928346249217693121204272522892078700002276434592874591788670915937864416024903440017416297075852948875819568951473900747317075074924736073285236378028105292985036298825334866784664576599900399089123321341648277837632177811451834270291625808183913118127975198572932018061480377778131968223312944971443441382422079657763647097097693325725719884063979358111443912237371172314683398620539943399304312194319019007873226455875835217977024699107716584996325234207620897514124348605480385343659843870118878617393563775597528362445998551677283675750151481852485260266026199800121060193312986433046186675328535768598002291548520838089951081614915041037066609115595558328063065304669759326030847341843967274000478405735193379117684873574293364166028848636319110137501632540916001405125759043318959883956100713984072392169235828345851153263445404567196830292764022284046768435309565167786555070684564556226364145932800522350460992311110568992139104059365194472533884629577621792682845991691725098851856664003360617100952790243969760918224900687224041512942777000665665414414853447484742972623014023954314032830375353994480540332416911049906178219164649613897763988758126245615934963309054933470945568343209107858721991701342841116980847103739212250298027855349866510601522942188686174345840143243254372951223934287982108258167946472880513619697135645061962254477182929523456770203663730499505225285391907040609825397712131830454352546564377828615166883941784254740510614695839279732095627371018464129213798174193894262781018881629331976594792242295975571875812206010915644962936099061661030845467641526034112819647635276939238253808798074546762555101717107150588294171772376455719720767918075180752589120109990416771551125055373164942964271124672245623718184185536154952987742202178447175858867311638642455536222079600671180364111308090055547870286400822718278782250798846351250592431073186047240232879609521033207361663557117291963095799913270837599570462547682834362630075412851503777523304652192618373375626457005851009900111539210587017348262772772427962031532286495622059676808406576882933810487276254918406784608349300977987852913948820591561474107824442390271348001161035778197292629440110800040627294197506887289693909858722528399258338770081838467013260696642695167998629264059456473073958229253507944863740799563309154548259409313937053883842264750980893622455631576636039890111305321533524324374252891318064120135287244140713520766453205221650034683822554676603477483775887919750220799710176585140049297927565717333695817650644879453554900842678512499577635318074264158061337867626515488388609898463709846166815806244720178526394470153017157964363006757101379669054478895941040992470858237531524513904210883444755621911167377659340680207375555660589856982068022861624583020228368572638362080699758048113674700052745049325946028958158351647993760219009260434990727572169592012720419675042631230761585745282167977214321781687790330525579601186212080733486815422621917925675090434442143785336741247920917700929404777036186717267947579207375904431416265713600915044397877336891514368979000919353358928931903748405591880009032980219588844809191010436986678604751012344459956371140220001620984433898326678526013934431873934774697018450246457676296172484813984695552148617894488265285565194281240034517857127072017308456330228952977761244670253191504743403309883547671435966222037305675847454363421076785378925333616482180764472367044410532037658459645865972696363394925327072453260314885809066492903906472335736841119083992226481754754049262902243132111173962250933267501113237941425578961146072230296790959197123827138007615550317401875017574601312165924427969500466788308204463051932741153439981534425729117614941277431863128219744118854129433406121047759343811372072839270046473489334717238013901409676358243548856223110328326092411084119721240066544700055293522422899218064019737152014166553281030171345507510176564195113879199802405902650713406166062021309755771211428019768779364098370534916154553905738936693094131060589276169329809677120798808473306893091527121152577173369387747164956316720404390440169544533740284652888539653449668391040266476983603862930626564733544281385122844000742738366557482392706162692433089754241389378621095735963985501769980227786600401592989298476395565816318625153092331377526358583110166771878003053500735753090364050237180784722545291711086683606935290418607825877615040299181203975534947717203880853029214112763387478300204875260054174846750653516503542905079691570812313416232389949461516841139366879819371251646420094180035873441106932724360136469439341369861797038139793958608078995444258226670286862499584664651494941143795301171276227972952251514576850597936300096085606443383242950946586431729342007130413720803023618836428001665996763529614832134235668307806661229949586026133634810952281816628087571081519157518487108128745691190733090039746709331328876863792434041589476543943983390234213925612088032576182854399893813403810522437905091933641699686663716711560095235575783842616276412351604320804045297637490694462879238917542448482119428350996659414828503100767365495825969979224430815551561697580842811258790295107568127936254619746820101541453988618117282147328528652804802209201953748881877956829728949891026685968259997567712249265605552243709209736389441841948913560539326747662389598438163343370503335881438473454344383406144069359091481367063275242771717581246105228538458895622635338026434774323919847820202615369990588641828582188215155872647319030905454943487811905240362879664474035996156462870409417535960929289699977918181587525855122798347253897396466135618873558199638928091781590441447124638091334413760473154946326350328895965470547622315408951844280524118024215359941113803280025733295803021443120611894380190161464996745677989624795591075022989781499630992530268915970150977363374087731502545065676955241258667674662779988475036915035050536130971964607653305724013766961367263859327375476149742800733305281190665919586716450066087263298551861509687722147376746145247584457547065826246208516690359926648798096693135813495730777805370565909579355831889908932774858075012529266738600930393997125064270282144917560641571551498230585510964254478262450503935432687483332100045407891921249315858339393550577832526191733243935843952048218644761514060734012584841112591424331714254228413959950034050654851775739287836424844434369762157676575517263415938922301085440992758826357424350900891493528899345066087364306437759975522175353805215628348296368301358694241360042517864607198698132744770323563617678278381750365794234029889966218451507951221776748838564899208194529249603213010792596712997799718713465706392148211993782943065851595865172854747291128516119914007462492530416204569115570219427985236993349408739806013211858217496165414939576623475630781435029520212886352005758115625585750626175418210190119061654297434367003394341004506112490414571679333640347101282581778853863898946564949775555526206138604125843712069041040849805282933863328232385373209172841504455273371903679539364377451048392311294302735110196081167659689625293729483589760474943024454592956909870286403730523046220237016344414572993540828345847438555866429338395751288283471526537843177075278595244487554764925111004259464417117207770490732720380528590919675938718082154959038069351529819281471640069040316244012480572559781489729516708840306077756223232671818909988797061326273275455522006158127841497954547719735643742042107052563305337005218773976115519435054155918818772242060256847272156185529683682740291083522350102110140905676877175500433115963558542969895894438317380553495145328982551626402134223763631471676535054072708516957104011076311167964306823990026301189977265028955679259259257934960719701008681220235412383237855161297705542198251019563268615170794715962428321241949592217611599515022306572764244007444448992031059807402266593378612959485980739390950366588677821232142570753998145758843840264310388553970542486780311582365919244683597502942770689030580409055553704035794759654116994985143803417262371989125430862700941690942535978742662269622705930325279552191568665270919910983486714005756044494252233273408061026600260719735429386099035769182291287359470833953544361717253100507726508258222094113124798625074158717347250992635122555253192273897609238893197477852268486244302449933519444013132058183809627862339148272703683416510097029240715471850176703007316502426953349235845541440175628830805993716351218148654735712120899420048977754890298112753481898626506996842475479132373336471997453042675147618183167417381846078098010863494163367049671075336421447089195582750366405757902777775026498497005481199860515395304879684824232499639612283245913524340202771122297747177820427802093752721101018873857769802859432759605204458205896858740987843087756913081375438012192559638337138733100113522263637730260829915484564755119507853329169827355877939026872418635003112659920264773916619175210596297951445538357471907155666721534606706238837198018203436848870397932952469330139256914244809082715288348555742725472360603271398478490795978875441375770313852289589075062893494440139848745602978791402854424330372082179613552916030393321610652930863558556155429466552776639082657261020593848604788176396056107928026977646664428172195448201297516763988307381280144155766328232727556583148365387641253117767776862476819971698248516828493735786848063651298898063517730288970283150969329411176527975475353938676558991597636846096914582145953874805897741903693405917287120903975551767074955299067056724219929984502622487236620205407955148101715462998871486036098574434454789965590758490388668775233088907396574421621211544918936766048099620866367386434414181748418058143366409855184435106173455110245559642478490751806924426102969747006257508809928390358734565235797821951218409483925803801367805482804358963831049791892088379485182085504370031865045228618282439246058661264678261321270228509306386861762657876191443001014533649027687974287497664551178227777393498809258334620495781121134560123633503996908463662271668319911014794267844748182202624508393150470091648038529312095689659118601919104850883721775010496571665129446669790053731768216423895348796858101103655298626834048864974887528733151876250746215265608036961681771231949724572476442590123532466393595955640928837980728156494187977883908129169127567752934339706835092475917235144752400839469526485010267017270484731800390330079307514396572984658053690536231997572012582866478249576174647567145872454352434124078378079943492620672039367008700732598737347839171392631341420517079877137274381781347216581658384116393014083864874328002703044285777119708864365457977900611326816462596321017108535108896834922085889032962135950685447400766984874302390434280107208211102286946669039607152326579607419103413622344307153108102076671332016290529532163044055639430732679314942538634627924450422194931668370286924714121279389070710248282072167253887267181428354375342748984657073707255051127580950609827390146501743658511625530342259099953179495760635619847697020596191295583467625245626281291392296869551415069857842065058007915050405115086438067285142201269079223675527871836473074985419107259571035951868985762745247231179900337063746964245035403314694539245947058158131889221722338597471209168776069782976960908754718698263970296240260332730536400954955831235220593112413595232157274295365454533978725816546901823519116517877839109377995993242243282310332262257306599416709279256448093098696516085441421258306631068811709970766481065020469926375041700439733018472094081044605984495075390658610827662884800395442902664804877984475631172914364128587742476581135760974835498010270475769823247363618163989533969284914637057012038067585523141887452122326669386802726076842656168844939377712027239365813091732359633538640244352075928846455435316574622845871563324468851126907218458309861690235928207575516100637595793973292296872388708547150969854834009905661694550367798623295600353053277381755798352074188201925453298692397031141470338043408266280824636755641300427662613550703108388632688463783612748623859371888395042261087881504005725641537376036490945733763829235480232286486382494665660798731417200846078002368381142932710292222179034409813464363036944797856799329789391039271700732035882525565679835173206676167029787568458601451031745529168206978588854877772371027697715761351519535482409391616599747430314321495870508726932776041716521630524560164717421101527580869383089132996984839011264495951449693842767448163636591365074470104287267152380242775939037393365298358027409616338410882182796271085576311092649096536734832946681375016597251216029725451070516681361384431528174777875611943067845477855520406825733466654428568850760712809311224700544438391860689114804408836665245285834452221623125829451612705030524532314436388258489030450970187137960707161893066550778086177623185855750812363681044647254453083481025878023436155123194586613821711445493773328649832982280400686908344633667406567001085172245217023868250973985859531013071115600981174108020426414281671475624368190392458032836103852847813281533184480177821860648756364380402257837980104544822870440456595897320254014675446599809815059297975676010006496827681455097008387561746252416456844057444684809079677710610869212340429156959961848463950870471566123847903567669438951071095094097967386507619724774439576110157627605634445902614505524986850539624517677563389850439430732153419865533116298762541195184780516774133025843381042261601865656029448776704290028977053901541367348545373293924664723167047859107436625107365507537837569210882665831846968219784241919122027464600360081428071884274806584114882597797596314519830524539606107053530576764498436502420736638666438136014165234687236566597609078562697806591292201750092597571481376031188514357616585619116784254697011032467003547607402389497515907446990284239676565259393052571550941174676625739052402353597882020688655549882522521006538232426558971118589241538520220718187086480282820121683675640122435756358435036126855383038589751115877428323921214043229400941274644736207824976636853439171328679717608385550945929029120871852656455929120158183719031578512150829291143126381159109220534201244771446299670330175661675724577023027240134538998377432644233553731270367351458567205004741781745408942976342555313999453471659108331089944261078756769986034224050941899337899730183467294080370130641416689095994054670220500730448304679251989721493322158286863522480255701606285983785803903757780261739135541547545744140477612789085545442600441007019853623285677581153383939279984004531618403801489678461580432754267941505867125305273621927421405380932761518134417074769879780164143569225399718097609801904666755757421363620424218442554146402901205640315724602364434150313475231979059739890033854034436722604962157823986518642000677913064400561631496328371301964075768359603613951199921633122945470436958112924243911062860689029240254088745599348875701846814581849031988861833510727983122490196420480273970564322375319526710503437151257357213958469681663241242859103853039521597700027371121338929651894296151899745092118660106238646684443978767961021417829251025254530263912896522907325497235880688504969309506117799951866737451850138899840751550557579367882727407066982793043821699176724920978785196796001593656415972816010845041332943952408387785250873181640120761512489685670883358892939954717299959924776814307462663862340224797207635297219910904281965378991906510254109031444083108317212595519851103815436719791784919869831780049949478964769294159237783723374960021769755136262895971102299883918885604978042480989149471224543698650550113034627422035720566839572754702752210654049955024076755601858332151839493040636322211284563705417830979631313123320655753113298313591139264700232173901161993812085808900702666622063580994097007595954680538819109805667107409618085386432746682881958801609414395731057364559107534424627045591162742198648032293366615392825417309701635110144288258747860784973978408454441063413085883399288883714878454081727687903764671377205841156572390437983385370565783573041128826826502286223780032533267845220781829846912597597776129280045052613405728870672538103321266078734245860376288552365955591367963377392513157670683740980715967098844237076153259801495031524790449320439618973219870785455062129879646406007774250609374717901355117106033110933037615716221380933847133608423917463053274054404533080341554289876842126617392415745095408707367153652115034207409777402828253309837661186562548056271712355194435378360907627683306738900169376552137056331455028972478429564634594997002491089426549755039661539997249048587905012434755767734318497492449613500314384309649868852083958417517664526459883501259214536828584150199750111106518117350707654197398161908088712837888417181568155874039842394258203885828257892178153878890518016798734429299509865241701928638086398415598116070317325200785028619459708716468575902736621585261817353676428558901460825815232793852611065510145904348095788627713073188656499088755138345056353879109122852013102992176165654477393893565606894960244388524897094120177357157748426938663739251839816931230254352166839383485695946874928425409222284461486664036380599806232694421601825978068848275723219898121964145349744278586250066622310554537601037223715172222524704016754010479321035371173599115804488519409734717741893112736882250633919669034041561063925610942240657136770017990894639802814399451920988622688043916124475917919930958809402440277852510908313901610741323636106263967396557844149549550821324040086651652466959561498573171233538579043909664692377731207245746541487035685906784968900532056096098129656653491118473096924945945370805470364674362166984588044356400099736505678596264472943376333776921085780179524470193152763590509356268474105805270864113397160474281748148868764287278811179744745346424018856128922026358692057212464903688046538629863520873738697253224685850316764054917623011893375009749129006735034979837815086887290832526863942828379749390463392800511853562913955969815763218926315770953871396725730969911599111593801394772647320006387680178992051318305191253124332882748907455621410030514002551167299712035648551863989513816200197485734267598608623480004038788910134010354979241029266581120374012248682233460591310806570414618876563204996187469547502049773292703892444930983811862927110651604974242856566836959626127647789669043768054509685227034614847180305555029012872223670650521097142350656884276694109590227689444172254880756445676285564200236756154250462519604916884734951317911337188779052543771233842869709306643158000598019149266106832530547053117281566308390192758570957824574438348786542262580297278966149481809671450924005407178082119179766004721897258411145986488596885084183615888993034094422011783353445939875742163364696843330145242705471526076360479653698453468145441550938657617433575954378359187921348638979967135379312607033427549709347076351534659636032840542773512411214381794946791964432769201775267796707950936670331454512177705632539692317413541802697408386225710846540413528044089576889537791398266651343826672245187286989723995178461175678753249550636241234685416454535127747958121978924025512302490215879622255479957730584035007837334239421834658953466028848922619019172165441296307489127162108272922058592189389863869373902261243362254332807343418280920694065583900103679786618230166086410490837847776185718837869276570297868478872025436030414052405968066396881010419984135686124836497774839358920564570946958400095336788288990308735240054946829210121217390985408189254728697264672348104611339784257333101557059204739579774418766915951684022850029231389317209484856294263203656573377655593981889961937183211863701774071432136842901496898900398474172898417939758684824404389006543792435814208232274805508443154582961842389271424505721036689397238630607580512943870570872599470780051746979323594394049389106617833837830944663729094248151934838084631723878440753674747637303586536034189442035232949936667586361782735595993691841586521400157713823904137238072685997940522118441728497096598640170295761566321040882345924901779634373458384271320698241860171408791072539458216995062558709843538824195569347591366540772368632220987713474462344855283432158935537520364556519791471042664493119420875511335180235456179599880129501056928600891929996967818779351960935058153434393005967934245016666196593802307068842328571282199225187961771963509367756446638140107835510004376662065548673465480758310952036678709909139699427111551902304888058521826149737880869761554508460736573207891745441081913253025074670964148935676421830690270357471143886888453710786387062821563090570916131125636563983278126021096470039151046449327283622305595520819198460477397577164929222295556890874310873340956445110065613716458772208546783983456776058311216697423972253855360929483020392156366883981145326623497853828955210459614006547684196274233316894606095523486356751716876010540558123343020439530199922535556376869307066983446437128237089053111319559295601182402657759784789956926286520837552021343499385235989066580235553531450907575747695783280057044570448064393029062765853627086581191108515400558508492685461883127754479489258266025902987044385319503374045154618728212109580944324229383788201473699795685768342653286890798084929288247031788110700322737885095329870021932777587829114660166147580564694594889512752511983410472209932793812402374632949034102585887830382245728139955223171299351359991030991200562807334807320657753435509173812143124732483557751782518827785556476308452815537053605974769601826938360596288110818435505997664237677326067283311580035409769579559026991347322113798068151214047790549575481908339559535471165527189305843253461777671288976406778636451537641323789707543310988184759028416978181135581948557079326769759360673970003797913562547009898284359407702312553991431909128236936698165480576446776691761815957739697779716618336276556065088459887932739402238036912388935394666014990958168690492967881056291942431524853550213868728701296276361610046023404638580942656420126788201142716114885066304487631942861636418830291333651172088814516285950532526349026745196085271947057394115438340218087744908705695854804884890144907828069054799308848430547769968589160787204914814531683259391121125920475636130814342914005636207300631144037613356685559836284903784999279567112359048027584505019816165938134328373167543601752984999109259536003680236566475890042400349680895861512174966689769275597777934327535686486116278646761065709156905875506907960974364533993195874779717999341398402954592319375213038963589550485979183694962050544234387182329566588365534494780339439694258456516900535309812606526292101553644368200118015723604653691978337144591052520871023135719237070828052900285044001006315753944043645196178789277262182496622306305147477201581480323716132473548829021220380079895401335757952279537363599472446738966306018305050310952166619004042157264937694635391405162484281291779325483109251783798276957646832090676084081912824230389089011803727904903198945180051594466711861582668241641585027248566526094706668635466882432481828716816573109937694130593089334841691830553334594889002874579559078333855827865320922115336379214797292624458311700597215396509245154992796743066881656803845020492914645221258445979772726892854531613135985462884114044911331712550584929390345370780280476560302622347006894488259524838139531901399043819151337585557018092257406158611159484200740106839146756175827977779161866192587041847014316588340425103905609506622788591993985515899350391541772776562981366790329917369681153585330983415020444239923989556005315785279343726170184179187262507367981605873215972692185344829618478683586585021008972644266184176192561398787040304818739555274471888986681409325428345438510105373189536397325715159996534505469033820088403119788039606723886462341549121039840174527537818254988235284891784428486983727291758881724057245892315907133216489266906090209454216441230669051194742161960592257583199753243204405392813482165560830625220591407207988813816717527452005275727575887196344608225755580318345225431160467696580375412185988113996699259168709135913906247644598367083312027635593503644059808887058930443942127788980085432365154902932311798608858187383260821426760549173371799554716303010087633460850184778725612131176760747009625960690830399061542940329318634998884998858313435431493104293387451315850964551236048663675551529350148251468283907339268577362575472686088537447895447808196830869508560316057748208535975455789496976644380563467553489261505214687410044699698763688722269588427212036614305836990608024330551683189408045340906931218571650845151862980267895854000632407513173825933995343500551873405157021505725943550920009908348930465648957555274596484069400634405099900832555628145353087652649428611145803731694286322002415835617345105479884055469341465443785280461680632689842179199559850437587947142559501560583227246415531841814040145451731975095050152214571587377269862971979763968049035241406035453525014591052755178836246510965821837995547194790198387663177431704720328150559519935039586275091916671439543977399973999036683213035324969433273783163522269697678776864882806859844989396645184863796429083202178581984209487712854821336168248065346317263721042461150756524902067395955992765570467779267373381592281443712486413858130875200482930867077013634197730696473345312549572369376440691523433173816407280927302058388316914056177555720142466814194199970872849195100859733805019171204771689059097637030889796275924820220888639460353321545937923518718779250708397428738143685165889169842087039962256500062328218033622033335560957419996783194926634758179757515727488900866042999066843987013332496544950441834702729720194481420808065847142789408861204868019149421062698657573723636284581936986884618903864376365978678599394716522094844462677114204943272306044685650605876280056158022920286597272377709855126686744550658753151863649908751533279239748140642541161437773192714229116544874046631028111433531176978016707329647363219195614909960679769967726823228134885458060265028380197491969418223694540939105644483801216915512097166570357674694013513339916193106673110055214234725388331080324043220043842667495970092036601680935520993184581380958934115292961274648061208267658442629173994035195897819351275312252115860325953628788213699189120066020638504548420014403029953338762170857800728047550130467450670681694559268071732251150468729414129344782583249473125709460664567629902115130176828403575232797626603191770277330000105161410679686332169525387070721062821165746578251486829171639835441945691012443155204662044479908748130292475817172193305708242730202634371377204676585208438639369378139510213076538458240185294415027166693224663340733802399732675961927208086688954816953845101578593060065150437173867825176486723990520972731990211258913233845529846873098413851620765245993628224245874388346761105689612760640242352309380497967288956221949755433921470378806936703337391394765324513489472982703330367126690469744488278105246046625577722629901763003538771621341618934402213026231011586258931355454112583440689072529733287891606564767287028104426197658039873993414078880007253747139729311107265989126569647798829115488859262876497177239990340573987817728704797206892225873108397742213651164197914740202685287643199578551380992296088561693650716823320473043681926475165035222765624940308965717376479309877728555141402989132401189732879352749429474423139715082718588831953826551373257499660932734889076018828735200873805120336437578126541146370662170569688462955888959788100279747197743513180127164177221084379744970291572870436791997352989333119003644122016572946753843304740667987708228656073807346250404542587103726940921528689801067410766928845569014987279373978781965828393481355139914965733201575856108898805338459079134382568406575518250174643289685004198516635261540535173554806860617733267250839280054312867460862111739081701426711957456548487559024122797880866847927134633874882877515118508595566850638945547878548139785004106572971645364493120507580967970406296528443697775973718328376157205654341090758380374085785355502237288616395601017817967322394070107387012537604755700415394179709028586673674751631223527257344007793647343835031002304512050646571672360551145515564556618395042794623757965238095069305105638129857658810899960508983202317110571712301756671249130689173442531134737674426356628630009361028619908255386194320710713053527850733125553822275056621676558855500166522471939779124469681471159927514391269487379457377828931456488545129444317174178643787758760132032041278187583451121422665429951973329181931082977356506625777947457572115347219422089265127645549249309735320337641782165190286174350605011096950009718631592500917778392828676867679376436255481687169030685666177924182265464361017736895895982340473599083500561581092925057625718280120131735400564384499738142009371831615847093429252245091286186071774286437937560167396456933662141675544470973679375606268046824814211085765108776834555125124353618081422564614225885160343551174330899945189750819040269881616914047457219045276925663285781813414544131686063511054502799875355834732529701944535448780310203830011274629696478293010831625891544351142640560032808203821656091104295551897370928745822172234568082064631922872870541025646455619322147549488033865113112568472298240666147936493652660341559825564045657676242276135486744463181050064836819605768842357380476804691439332189588920330356671905618223622394648683534810436498132498675919653843439348754489058304547603365682795926818923730167338312015848260720256397982951015396278820300301427403823145980547277368230371989920373749647397417870628183057400827600126108434450476996900629282561066920173874549539468578913507909065721159856826878826477477725825576901279274889819858044101515491573074639433892695587427281408559802295059153586407698732387423697149662928271295021706060702312764522992127070844821862360082737636520962346963077725032077461279161665794710459175972098779906524122459205048954540604091754271586925083456743414052529845999545489566899070377954415796568032895103908417439697389911254946263193355515320387915150847882181820194918498407965765910983545517390563507028209817508185470965414489859133591131753624774910579950887327309305019798144643044210090510780141441393973225832105901772953742078237408092479847281132224223400664614878392581373799318313795805149232490800331919616280276972063403792784470595238954846731861309903454346003579343194644561303170703477922555095079689719817676224850912213116050977178075013357891232488676556731631914320853754374202451101518156952801605443749924762500780042086830056140887370815067220521885064888475546260791481328201680017215450616776692632142565666432492834326153505658641770814372352430301596157647577054606460016025202314504041299766669546712685552363312185057958138154497108649556633292073827975204034197164748391123181487656778938902218954137854570557011857073472943076494780507989978146728932788429645472450144376467180677040759122430579553453347498033923246160171129772912454791416209824255898054181796524847345346159973471158689851551829097265881317090375756819816425666679008741107901522356176169901086905675396709602067227507304272378159234988305674572134480068196762274773199154863237077448499904551886954105980793582933024213290939226301204650709179368125150390001763017963957864950953103239632079992996366776255441046677769697275418595204754912543442866210526196080273745914785624988743626984344545113923093627042876988043135992831386067956996581389836350273279696759890783335660089926824072180971592727781175398504307604717102113995725855904608807742174446752519130130926675462876838371890844245469451444886998421448584911679667376803831845068585169629839285140652300237594802936035720355757764803535795802552003978760407438145759099227776453692448590020738439865634864789879967043665590903478090786011678860911542169057150487903178477368242715297218445871715725594316839793186984986929629596162957075023714699629700147718066958855365185913198002113799323492390934950729321151267630038772592318193281318582688493650348529443544444869695232346150210959631086484250121134281144264814533423489160352404249235825182714144003484709683994360608038574747034660084963349030577550841150586238214878627216597065164829269261310813516640314075869640025203019895147429098488247431309693355261188508571947794674012970927468199220368146189935738435887863734221531233591539183697962321794719290533721279168661394369992513525546147482433699199141270148454893917530127946085868023724853591638859010720741404984826322728179766657636529234759206051162761916756480462784630196670243959046711090010646092733735826840931204166654051539237977855677256556763735691784733302617325928913378288190326205883973056553067720463948375292012553675053746224176069830314095060062668016515257758633086172809950899764515799394119456460300914347081593775635595719013707866046529426700950699017377250941389245375689827301650855469393252472975051087045517819686152281243722652868979582263867848234129817131048501693029812072206992477820791402127957076939959952598453014372647161909130517556990441170636091666106753679803386583187728215835783234554071418160315137392850049896869776523868681183552657047414209365789875844122933913489618120473795132765474437471691315280820865466822194798111503839321976972748594948470941893399759094697128184990672824671211318304201849111686931529226201070957738153751824859699974062778483019193321210627132792996046815853369457153151265645655958275244620629272327761537695128098026384128563200197748593895603817859929508208678365096465845479468145619557266035243265899990195878315179749758303079999418009478291061034200994954433262108679713874021757631512627115067721911494868314319882497033594806697937182628735074314662530378400724876075596921296717143877578104068049894518828876829814064100935854814430995613776835098473439447668298857487156631110078145152345239204224037638913009251490217659574538172916984462565739892881922172412065907329822671163568562125063605866015863753401087531898800086263315036302403178799171180335357436294776732251010876210728641593733886037059614755911383045306991621072034827819186919394069457373678186335043784982471613209227944853513609668284471754113455741252188353020419416012602565291518056703332296522514426254965623551425340581752231605745944707301950980893030113780199864443969494555955192922283918515860291010241868480169110474542815258565438548448448321415725457853977070067019746825830180421777688037135014605940407403037942008582659443757115514977208268604489352489025109945923267067009523801899989960902069062838397694523284294798932491072826195676638984656261590040140120159332859152900510157185207220180260319136059656418993048305132476347705025842107708336944713459352436564063892262899731155046061599977873114904470206612168006936056684484289029628726529274520192635643721837116729102919536129003254124512292053532693215986407532762309919228126499957902044050277202938410804838268008775149637490712180104404943345024209501385312000129943400979001387486089118500508246023207987995939958594573021356860963320540668030655951007794114084994653151436225295543749374614880820467526064510534191069651249970207626560630751996718227524133668528151893631333072471824244998923725731370681648386199872136992261104585972509552820572672101827910276315377094235510880936088115093882623143432063811160757079857497322485739642162210479567987362193154494915800330330894837632180223751173775703716801221474327904139311630461430537669123032232676152844689316155906524311866478772148469495348206205829216068120584128617222198664924984831731936870573390206221159428018247142822363698510367662136434057276507858204801485220682899291650489619185614056466105416515346681423674411781080719107353333900235174955492900542014874804827615204782433172358721275197798041823401120250778380853303501671309430107498754348855062863774560685030830482786550623254302232526709324371246108193006557094649060605626529534672573183812291404326497212268070886839657582421499857666350205507286513127140028286684895985116837100038507506536468321638079179844345656619908372151494735773316390548991896920995029618593409047292092828774878303543029914879411083780218469074263485082987306606378231252537711410084716754444436203971120159053325104988297608910724791857486147532841839988934249566857557824195268863521457928674105849693276656759324701453630338047277940102970987781681033756021948335464686463595380608139425335540464010049877611755647570529717556967530092968832313585608803922202945212896169192383134387058263963376555819003589142948040736894675736328215876069406637755778566759817921698569860525809273232264996098164683514772918368468195253710205763243019201862308554959870102743599771218575408910576490654241774134164739491636555082388776796372291266469467241495952616181970359402572762729318640494594605497476555116241904581756082709415552356507406517871858133176644857936242421391423755449822018557861600774343748248542137350936380143793486719065061248426128594758425328412615513622085176060756671618678280810940537972225445848335826163208554921575668809701408788413088698566709785712623214331530473677178899168518213768559393533183484186114207534419279846740816183088699967755137893393705623100649271114257660903373097987891858162700979096452510119037879331603348273121699254403037230322934058381359557089837095795140959587743506602031563167552038394115600194000128028809701125028492667964958726190551467641464578226915542063542946981274185170404389876363774349210490919887578667809735897817879718447228216973578922314361964708903341108557793157180405383590647063167213225996653470675770863950555069299363713011077925823576147222220673683627625797957555895865523939007770239500040190459503086291448221861486034342168690783869120338801256526522354170986832726725760748116306930433906025609863136490898677567889651662705001910126629726219086505920194385585955969142875130205254500093055760026913398256934348626032070036077747718144574504007987572294986487827823548297504991506324365402520208721147782535420358244676026321146305877816680832464342754606366269748894880292988754704660006118327608902831321379984077573660508581087091197182551524209428078859411754707789739162707713048724406210730428824414289160764275217628511075226447619766195206567523026199496973226103704023773450589225895498701575207919820700193856731580073779237037442501005914755628883021582672014491360321970412951546142560396294657855479589848537665552265868297775819297850512974749351653670215123612880805702277709738602634612422228527361672691214435623913544069663472786286787115484189212394870436546622147168664888333856380602775462975108189486362752157779625442310614803343208569952631687064412828589156852749244508513654238322040291272979342145633259879798280414929441146953564434729906835018760832781065361912367870423424788136265906287201923656515327074016681135898174479801683683904172468903125941012296861543772976272454478198854984484314370545092841664775035342011672774440565011604507839990709040010892357685634789359434235763880221416659724054678893655601395740104047508566159086572014146979038127168191803155877441225138864599214092013172998949532151726795155935796209623635559841659564320333953255397981455289949235263783891243883926378454016796651570370929586652684111102259551385065589287786829323572018167714973475518981967473460929421594015639487793952114050166974263115837145027909715448889913983530555387315420408726425135287529279924108762645370293659219048295194868419204881466004636227354612088457387556622156579651232959591524726202864084148101931526223126714276165737758486955725621956054855891700866313785038652935476010811074039117457936251717239190928947110566696914868531957093043845856103634502311468643364596355579062858175164900653390295734034421957695881978759009603836352131423958451363125514413824657226731099896911164014254882311772439543435086244857908178130720274710425252385064489981203229766214988209271859516177496697263817468869004610236818421838028333839682065713112122208147575864656206401220621188459018986025123973914580072713901385501924643265169678205814902315677045689468857610415298229854347272511887585185429350215792202621398945326181238260883401072479188344595700176938734587181468113325054550473372062959433480206457893585780527798724495975309795778778973669256920429346589671690982359888797801143288361549578355111454693371961975869134607727881602149368628629295792360152944080289555148398399563900376394530558728340684358380506216649717258034361811559589400174275454865895892051876803560776775795111055232242814391112514272714569604827345645927243144237959852272722992740227661908763682478262231612732641489601966770569133909170256608565003222619968505091550458047750627114343942538726293832773659205476557789752654172264227234889004842891239729440945269819886292596869513777247511567800352419860833062315682522856895365985218263190596129011917408895014766288085472218772455825794470992778678862114048430501829268349817358342375886198235910412372758161764428898482669263238000113894247163918798772937480061193489531437106958929251852324941982463411416304488777373328696837217467738480772238075033310213328098112922651824855622840739888972971003038398336227444663408354266286720811950216796336021270407024024747395874297550430933124473423528882655265775413762267847278633160933072377794555898322608184079982162980597595025181596631169254448759175167574219700303930292114120112785875944533687543409879449930172173725461422816554802043070256466110085448749118173991947849846364244066474311537751675744412157842252995839161534012501046901148592046942631502916789738669677146798569109247571640813943557729484020254846894502184212924901681357750549800056038500387984648221118124355568037663293111362564070136241547314811539988957038750198416573357350190353548316557765627030361859943782615216736408719977950143012773236571091401320417311873633029280353442375291211489230021668863706314466030498685414424667131333202170070435537000547970980754391517426673706108742074930949948485395443999321707660327381979585441426137684683420021891269237387883527194210657205249802919839823496184486440702934027449437873822551400665816015815652898531242102755909005319820735549828157411699047836945247168031282198463882104271279965671700262085548228787819351104596277606165916281115709766519165344805375706509669397572187464280519664509698654420761328699585787948118637996947871239601857881658572439839380145444535377221992979900660817123049415652409378126376816690375909604772249346923004965217210774919256162595609853853685157468812887964588584912185363740646967167365199439444574709269500679726239073932337510914278704610161928781580496149669644186959118420116418225113272447620881148951538840311455137555382022470189525820921068828434621026369010279251104924871374846520480067700030309020061142223715533674557042542823860647890366886096276478466691336839082737524394699350511268907748404081999185599405340672859372394544709099241639001301147328376430247019099763497096193151943049697740912037606459200161784941254580657465873844284684520027725006852019425918467955235816171734122138699387464923980774255972870790867937821596626825457176476166321331046030409913052769994620966481812159200019907919871606751075749600808848583717017113739402831364609573796473872281268193605344323883610536459027728131066643063706051253794065159999467487975413914714704209523540957329557804059168197071784233488007680485186828795236896363561089667394195499673256435329939648363413693229671808432552305923161137376432276235122127265400669548154046053162261134447732781978720950772647026609307926710153706056956754774622705479029106519742056491241980328601605095764465536524045971160222807503887511614462302072222584497932930418700919767025176440537997881263766425769285711061646837520163695355918005056461662112575147715572852090545525654938259237953657103323485483671574887905643367911562786329190357513248074250674156031003139438799831406424802866564300484073621587474058734728383264587163620192451335443336592394448564284229211784491815573265676842724492879235463156570114109872621457351155913024716175117705158431148280694689778862134642285733087121512361304452908496699714504924882367931602181018777739609972954487444338202402145884073772455278108067586655125785266239988542348250895716218496811900999341626648462096868942108869895895518253841238783924970898436094744268768008288742875493811467853662067641176152886917682789727358895427547936258617336478089881927818839201569327580967798277935647326239019134993449533850169483331007524254818906343439247259179613753021959446785528112185091902638460425130720559606139909979171652623174471697552681887568200928982759832590169292714110262045916369475745806605080070335066737090626654340534151631947134289463453306154219432217329651015340809298514718910657651509403840530998522335886627669543798369022140188808083186582109195430713962270499184624286245265890164368179369097083911168947615095692098639522733555222892160978318887442638928354140610233977884464765015945299915667488514342254040265015187850396049628069999229952377278476567360968027887697430194689385574837122634030029154363547610551413795671721095905590763280220268530093049778160049161108557729403411458328611356668264355189517984280280001998998249404168749218550815319252261289645438585579357753835197693418618615870223433780640107455603901589493254565948688115590867857691247573205258212634664906366031608930388004362340343871417259113274289487362107305074530539241742032059436501301974847761160168772570683669282782650709548406087108949532095519528494232135742426510536461218702151636759928728677825671567331436965088702866398259645916602837501208696613938837140451524872629966612194003488128638772102536447886138128479680745288205198673951636728550082552034653075433510820053453131501065548198000935374801308184768403682404832740979854092376423749951838609323432586519679222251049485305002001191042202820060667036990436923287320820752727363791449509234479435451221850076470098023459686799569901763049172975746078564125082449513055625361845199996925543274810419774073349174972394460615772099684470444895727952106443188657765400975890041138854375748419543244465646270621157620282429213486591603534892934633237956217159918477632920919410176636288303421914869074349992071248103633194497119959440027221019619186306541144130331675771556425025595457763653372551112673743408989275652621193865049773622787231875889508814289376939255727343073722527495465810338893176723417372373837042599387330915153282508186243789135657798024356313512120115885903353959772753019330774556344479477589717005373406996092274672369998579233713030253669630860131770005010934196238739772759180752591070674653507628996212757522571652194652128277962350555083114901232054242119874482709887101884723015997890480576101005060147417473351760216724303385468331003793199332472662950725825977877797941315391081914740667592393590381620907920617842463148886179995089163453540104891999024642872056438930576930171936469374190059105827324492258855250449259508073121708726038850032762829735750972065755461268945700893689115478536517511726036313751080738449725319680482055184390337714978404447552492672775329766125823325959339179079904634969390284808275239748254311221176760631898228405158279746316101159308401799916038283354059162442214513035908923640263004807044587290167900318872740728270468996001584664027419139223450160415687078583442434252240458506859016356901280906946591492143044617718213579348001600585796054471128594434770216186518245168540343211016774479293060539644816202786396775105250152918247071616250345815396121789997157148837833573035750056166326677543566385200201992731193784646523478070307321819423621288897073755815292732403699186715607283583831891006204166683167041013010803354279200541376075547744369735350017551189053755618989145272560623054809658862891252780940477710365046829976921782933900353158053117490999252446443499135393818083817177508586704134616349589441191893023844163491186957075505663727160048957018705631534962733904996708029882765635039035572649399614753198307414038330485521188595618643085926200419067372756024109723588934044359884146726262791090032202504482196979274632124128483625074979266078735259106142769068418658985135949640517393858113411565901152982735586568869980570409373102116064812037569908357177638578747603437326260614568875623133556060659862432326299457117985850265524363284306082928567039134519852570797868598341196099442418162599451530818540660223394914562831831156944678806647582157030976975553865075487503676858199376531888741605207580226639910753692621923354122970066816692285377219370418400045277695294251899479533655436608248385598957382946167812608821879322047923004532512732502478953379398966565209104208149373296399256010608201698860001791892199735176343003597519758832246543564827123778364051062609622712827214697876393773371089103037882117644519741052214693789179143614335906440377941653691153475028659366784530192552997837537655058581686432219430819778957162743450885488692483398534041767881200354066630528021280686423435228993712956081170514736168158721860049613139351369073080001400543993153349390036257630808972453056358555342094327405889434530423160125307494966270541508284509296503417856187568721832619534340389386916975394270078342676191185667088029773394556828509274192228235206528187589707802970999768973374758062100173345831913712799052757251367040718164242309818462790129808937950850705969699844180314717347013059078187185530845690498904401153684098160750626433262283212142631368256693231936910821712608938203654721511341972737406032556657149185003979189883396106993570712429847691508060599370077413180732156354832406883510341306173139997502961655659747256228346349745828200741827689297225754696688178192306801872729056323262741351222557791990815232850968232979957080953331601023641754024103729160814185731229442497646098316812804966272864417482530352606883236250395389513119910434043194433281682533155835176467969617809772677159646720370472058264969423030179796128802268657554796073245103266250164898541487464103681766996840844014589286424567163753449328580243857172630858672036638992502151834124461675738752905281760779018863680097529626805080835969823038794330812637351450040566944771506548872461546653205769426798086106274067736394889301935777533636973719377478493986045037579654045009883452068697764008999175541762171418655718322200481333857358398859426747882334948457376278787014801839650650041151224822719113728035334886580008122546646154491563380711290429293862205917537535677733637034123050914180346056882922577765364785714799757447463049350672394960252402400499981671750719484352556417520628801360816133416282127082143173665756783975723881831731971264771448209694383631742525667333794779193995798720250911130070191023373602121066263682976544542099122201635061666871180807386944321456690545622371197838818022635224512178793565303885574834289809638190189535287464626530547167719440145672992560107092142579170678484578251558372266428552721367283580782938230976434575638011468348988167092067680444798633906285080072890867781900078313891032729747513140349649236881310672318613652149832234769284428153868986774418095078389448348762877965475363171264971308689289568832851069212785702899713271497381785742802463842770615519458121832167421444988493707185665599899191620315534597835134908430989375593350056532917412389823587667389299247074649641934290471093101586978163249406766109970849571537549875859077616172047162533737038047168827252541815674998603001595257217384994327732363174050334289491078226442799349814519881847025757793848264393969293811347709168992552694618262977655058406031276681182082311658183430924000221124851407776018779619200369119590106470654442884750814215852256345693744283144042278414026376981497437804171040973693951640110041818960654943052601191880133784200264900360829822777018273654671519711893664521332636739187440148306918878712272418873598294632361627175985937297492913888166142787371958519941655122080834721745975308531601598147355439119910452207323745712454187209984703305443631186237498091802177224474342928974764363165312068888801676937070749477216932201164213486892644802847583507590033987575023178138436680010136831663920599035607676622293359907231634669573457412845835270805567790770585191832712682212021667770721315869582351294971976358372613780082226948590812702419390057360583124996757036142522141438643293144484288831500352366833377351337599060106245062544525160681090820950212968458819044347838321281264128307631694530709369711061916477711882803716731623474542921287047118092776962703675012922315614792489510056830222633315131604426715502715163749688925155778633052394603781124463389827545284432146181403122844560638865205368822243740688610609155400431066732327313701775199810313010995281649711958224848922434963581583136184730755453451647251488022252528697997180108683207679985280953959450711720012167545925659222646069983172468420513176160577518069751903126384116351973673407288759737714723575076100829888137490951594747439359704362655968038418010051832486883660964002745307560671547691350826984363426867136962942564496684942643228274434141484735079665712472261791402839575115979043139820046177359723795565446082237888715091955933585407899925271163372217537380216146493648032847054881621008495837268395516169250500421910413380007735869524897723977865361159218334679813951519254873712671034169618806626414220483370852045951381981491576835427637301673275231754798212038693519317462815651572798030670946523198956509856627569826443557819789243061645563481574703937124154244990956825209985938991043382383112896585475243944164739928343637625544173430736935637657107212964935419108976377652674338145772416917276773875058027272873499584416489427951564069513965644798680739488389518639813367888880260962961714332312235014205248957798706640098446536793771259729233900086110222971991225979807592384635295291490237524122931159195712970706597424123707180288415612616964883017891721354766740843776352516057209217739185335578444156747153155187022520743466458426412799521086755564724320471377991491175422772167408344984303369169998714845641413895531255082242665003964065411780263108875045180060934502817040029293112330625123328110462819574208648969393342077103660668115219108520456509789800185676340916602717884219686486416750177000877852159298906730688011589913676619344315540052765106003722230789047804977267321678080026269946101058448273339999712444150083179757158010161775289584793489958610383102126961732976995998118651063229195898460976823444056863304381257694389416208125953293833564931116556752352760110392872909891227306784480718412505480410747433832307942537776554284326898831914602607433763077066085734422485506935784264305058758230438928781374629427777338425079855865855868567602692456042566483423518591862632520277229548872187523477526692326536295568882556188524664038672427102356269647536492370112905482182219224241702993047090424828008981600408488173390517002219633581785745696354252976103039013142770625207807100234745622596760988660036045965631943375458443875096824133763120473965072610945195633777186802393566139854892362937922056001070091037325443088684916289219085044750762842470818104954031652977020793515162544661768047189582552184538156307770486002846801592200554980756526641225684738391753044458174822008137575599379890600904618367349451460638604796862872818370116419556816322687120246788404255155480551593049425957908830153466831475581688367341456979911984852973985939180983600043539543966158805901636166144755294769416151916919664957968911000809679655936030712361931720975916116680285613159502475357143023710423965321748291535256561367519441412153423117702310157282183693380693156671800082041173435165219102438472544485578215425721626856462543158527521700249031112990620891743668082887219406163093827340523264494850572338736291284916528811569496094338708345069318003509733984294454786526279796427960038858809855531632407467011850096428844873412532680062587754443799828125591973701108951169339964899996728463615761730553007445409377642342280772866465832963461771551173088133825249874881461801062427286438836070237585525365702580049201716913881981513977111102115964328369847055676407785723356547792655337388480694317250450363327978068571909619846410043619191363835014945098232571491216300624771898878726285933689156395062162498235420871358563855566626534247296771296843570738062772426850918139446132616883396330254884937586527503353082370097953159473247346213970416636056298284447449580900619379350423301055228663983847012893916679385955071346862589753330504709286438654008821455388976027067201705158523510930419085953080079134757328505591740519416449072141513191053021030347018731618314742555571666844453770965529491273484331500042035825538788001376347168590305466653867256590705052971685451146087462872276877292996985012024840160135341720029991303667314637506062701887462433947610448756774317496272979642951869186388480886786823357979362460533426378373099507736058591572584421889755533080929805695217617365363318424279996067800540165897916169478261698397465967779556800572327969893907119132708337120675348853853736016845469334651902990980934981294113614790927871562633801585667444739338164260115163172826696052896947486635284783884253482638573199513393768649063098968538695389019948460136039747036167906079009258565910347369144481300202374438322127076773357562903379158482699645842134074467454877904503274534046087355712578887800409335204443364961236603672116458433349934582512424897480800375937780716834708172120439772985236631800309990901874695772170974766005034358296659657604443177178008409703922312219385190883606568872700515007995841819855654120347087719776740888428892784010267524373208632758238417169979965700602999192414878681367578216626261529508111807894732546849313718971078860179351785782705615393140338985929838323829842610807244124687141306627816352086513021424573755240058737114454506965776882614428255838341490065525218366523009825916033360427355305623085396492345394345783880521766284015986829325142157728972127614415164492408587908176288369609366850319418003085368908206809469664798064679563708707736888078774981656654476910033946146534288728523343316507384753138289099253792640911335494377376679974739000306300216115962848132621289078587980217122829069384855299413225028909431066289534203533974108787241169778845144506237018025850205280121067428634744823918255445191199764200787369936738785672098198045208784669649630360785098152005210319138475876104992922849026939525701271045906478418801225565263328848306694691313219094472061841758967858771550404811268185540610803804246812894483614688085583244031563238399277242215927380983886120592161328917995550079005781301240958589246740764472321544422826107085346585052904521714935758990054753321587505431559619997638283379774952615684578947456133610245434131340138133687964850753399050520259196169839382910005749238165726842710388098894511025169825841955135311393654904882337786224220987672215802578155686693789005524100684992126034499191854667179336321707088100743249661395691607045851865775212752721753340456598282418005805726154532024487364352960276171403551854693557865012501886924675763533885996075221671139091565209423984913074471264113993917872214085488595832490722107569068004909369101692657505316517220872094016062799141156603263815124377472038257026561753948053890512296475961810201572947747765912585403989814331808066595518327438460751070472848839326224033459811277284559208738548431726135467872082727373775588462777020378925413195748057411423115083852074625076330349175271876871135404206754964904828876578876846182461046492485700985958085669963025099613288179887322284754358425286158468560090937017861975391473827717482707406257353913992399095198383013994972913200487209764294198657597536096958316568745424402669407654625678568159788450317859269751161442698973557747781336192755742620983634207380921130562145155986163294153240119741861952868862741734319591361748189396901881102709255518566255490494100190065669253251901232902991608908088519735915954280943291111304282937851948968143031129176695510550934916105675683978183739104874815538768636727612342480691716640405709155789994599064305484960493372382664574418886749628010054719984277699433882914228198485624616326804162377905481204807635181685975427434877810307573638461776479302698007352865277284624665134785371648242094085507603682126272216441226632258683974305140405682875872559477797438653974485462647790766756098104288749284189806175866905464882614889548231466710246864370627131175151573448272770430728272379052954137520271522393451002127532117810248223465674918019558335807836828655028776936336090281383112138058772606410314030527935295055374072928765703786088165525867783640517183818164535152220630802804718266964720965078413824445786886928926389650300813068698621688078037656802460272045371360550896428961088216400036435598048660039599731314462987135165553492012162822335502910676326861831060615550378602245091655789392017337172676912092252254016004026272552835211763162002797540522108458984504284375483836523808544356129824772021083456277497564417242895336489025244516406931664539870240530411354324899479597076622316500952153493138999769467383334184600231051527117951844587395638775679503488064775962332973338680999673772598430044163528912786951732676490239079498856451583764076036365937572887175975177795053110956382732070239076832171036889932696411462540809595774709744257438460223258364800097633568883417043731741895074901267497075314306889260460571271427822695519383883975202632349379510163358744503915411256825575772677741148356802860984896785601817893233516103749191465595081180804987450345782526540600735812575116535202395875703417565709862199595118032573539301190217660855351357453958504973833321571933971897769738186033913713931104561348654610772238210610187258335605321309741641494662382151770177151790927907359535508719972799424648478701276633659645030204423831957224931249240839686586704718591229839174290235098067258479763632199287403369686478457534361486002796208562376712750607408673682206647517879857369053418626835531782160027886525022153570993842392237100478965045386034226121447511091026245278240377998376334092978657036850744513783152383293345685902121894789659043958792223682956936159685203800971649599210915334274804621182742425597696813887732151704409689471715569493994743593619020077176712077148449451553113803788851301651270972416704112011918101514573389700249682820328321866543201377895234442795516544252549705283270846045939636401090295593899269831583207863112839137711358772898108301624595530816776819169132211224267885458233437390357593076942323962474279726249130406460210550370899277745037790437427183417584209608759018017727772003487161878140476042087538506792817292085406738909044203828066312374419926685172948652572599132419475300624311233332944588198284846527668634085159796566350604223460942971941971539940454175509234986493179700064738925542531555401275847506871148226452237913043796568337847525979800895016231882880844592291151442846876140041824581655243599523031549114582014753197469765578139078625857227511990376352094315194560359162397629420787370151114704960599707277978364908845998126775530332083250045343529281123463834658971896341421520019233292607993011052088589663519736361863091838820016496401479752055239420042869534839930008043321323805274410409064464764640061313719661580652691116189785405189504047566849187335934407900946038588443498425818713565233878024413630774059850760268439265063968778205460425523413847069234271937330812193612745358371791380732248764789731761294962487104100096665631186229014764766974374520129792444360495095935224012258096369215736209406340502388985988149652478444988971555493224217840939131364867767176217220019832124733427479849141997979027978437134844118426998867981225604509183591608782419497561420742819865767170102477829841181110085520416695869752595087306755673095586289417743674753897944995744386433743657756711841040197507278688947169353469757759853753009587087347368145342965580366664534644777301783142253921180388947987070057070409910768040441695908647107319439535696302237739253364854365080107672132634059580832029515619577557937283406666276369622229248716514831458687346082788229658596961898144897373043441553166720309134087808841372473239574279456669008126924277803272808042200965424967767148968871140169047036339827987293003557190286977710161482716748371432552359779755773068726078769839669606282338498713833309333693665559629841211424632500354082946337752798247344238633024738030313968110139503164594261370596621307290249041742588524001683464077788593938163573093257596904259754768175567030658084159578960501472313899980463532174396816978064002782978457618978440772847539320957914026511760832042957978108925641872579821906087236118793246973285767454181730367366125350485402880742110308427097860380883586361524356176665114336625121761882244884294170276848590845781374630686808158704047794317386259706276980899918396875781421074011097669892202634142687508128183201630824391822005702916344336686193167751296904008279402307960137392699539552215462570613101803477223970264619034864469324916754947086932146309543163711019093456286873465796697465627486031400725843826440014566262417282086411130503329304380361250110518019865179013799282621763357611191314283750969165611725711367878644509255763927426527345813436452396032628195543285571197542690114260529291192473903423328049381419052821284425310784461072124540613037444528639736013771834214459820092943716411786179147770283864116091729291594941014210827300796857790406438355551177119416245077712003446775540482452019810648227966248652242648564897999990464337198796932831867509336463645039803448330456672180334452771797571686133767032363682858794044503737852911366100035436029952814737362107210292725283580686539240120575941741228783119381805511524615962842018668484942772120515398916220302105820373734855489540603630604974261280963502542566661047231651217156085173448977855269621120357627515606443165785321409421741240208609969957963564908760871741765918981625724131877327538526511617793520112186909773548203289702442188735661747480753408631205761873300388992649693176251185043405204656392901612832443876170141847086183987940657447809307859562151607207555469438197566259241139946116534447231679645277142752919001458435003982391739936778988060924520621202676657322744278082664287367581073445630859070650623034274396824337641496118202013888373234727315634180684058106422140145981868505190367672232286784473410058846100758570917541009832380115676720098548631285284090785570171008805784721372999117091312632327358068174034494775775310815101954579677411312501020308784150709068458545663262727605803468705008501707410936048185992548913268194110704046438368181249677251691149860211131889431120250049446380626015161916439419749635294069247512890041498152767365532445950711179910846165185180164829194972522935961359975876457553160423157540262191549649779887671579614260928523333235898112291511095327663162510306590118500823368082385856290250057636186585909720045645929800389801711645299598378701393024498836151058609634212212517962512313849780597428137998015657214965430427598189650698867011191905292668333457998638635598427505522607903718915102370219699465587780063779507942168210097948396712118416670465117692440819099839778623792115628481812900664512609756427201461039896374809148981932406962557027944264474635146399534043488974446288622624374848808245924676318924681578931670719858302422172032048872265162088903936797473112604113593644474834055554429946429707713789403614897506932537881916892754186156546719354546167695742204194458399440041542670497969165406791140048109670682458725713653456202872654644531892298656528205289254726708261609790633624815547085482981968526710508042035208869499286636015515298681419552012216439038531746585114572268252208595305943807115273674175147818492422932329082769525111840153449117501785580306776906384599864233046889896024012329050467865104408606657699185294538213120919461699499956667009310494608317848161773531720809050196620045220260070490284647043474076061170247080881696309638833992987923614356764003137259669884633853729495971913187215970902759355362635762110739807671722545864720720918799356168276275441518301381153695090385056167177847003272230715767468956273954196262321565509158619830273416714067913967709287149929576830654135128023090994082214646951458500199791540623832561588309545838227288774956484988212561638244050471818125564960476018028345886325237211883096630857652194087420957594686277379091414542645456260118406328972432206685562292017156713443283922675411324233279000416207840496416146799388657696191840998372445604390395083706504741578606559717901197370005114760185190361920612747764619847411020638853568768332372945147363613699018398053354064915719791786022722317538191512728772552361035121974086524710212612586322340475633565091040643649523025346588241537726448667866206487166680132039353910662922660269737217275237885876065993468628711141069222215414526817840866678066965943455215440301552861624809396219503220233300787404925838712198917129263186854416823912027022881968999298241495206838807166250487466919928416843933638094601294084412595861601380284448162234263608466568383263993746355968006642703045409953286244168844282640452106543574090158603639765463377894996049853816320947309392914796772290874239954358762173601157352179792369031543338179512031701768755936784199130786546130653262151224269455155904132881942312522133340742526360139376896962878062192088454040900545149973222570364185874961960003945531664952710487821494107062060651651250118101059119083245696960071287301945347755930488359394435464932089092416697210803230628088700018962539871798061408419740416545846338445290265698841559252919993492035661964689201666852332553179135761351749242868610656181153414751271363574805428988569268437651836539884238575994399773980380045276702738279279412811414522144693399979971748690429729375794621521466399568893985963615778000034580328467305172902505350840405853063323289240914599497872504145319655380986437102621848102246612882153333948837711681063831724890822871191738083108013278582342845123793177143440229276471388436828798280789274905003677773906990855554590665881379528303967870408923618662614479739921785929098909795342781281369663197162342811496735715076239330883102872331202722114925131136526055693425212499185304657531231972621850426753429719136348390235325968042094443378698225480091485101216557874394759795754076670257187595027389713028735858426796066567503448882244652294643186732402136395677709692935586154912144178348134485916722334334860826957734469931730002786308551786548651573048847154211410924424337278491456994268730527379370270189168248274971216500433473436250024166527034346631241409130330598347796982114535823199780717635525046033071802428255040757268369400187416122970150895257615563379954133359081343985494996868280769924774258633796511185249974940883264918224240132292954659873241837564971052481296430905010243295102551822115530298466243786002109342172515603158235130383741772163894625437354898290517464042070534750411888384240603285613284979281144757603634427002817197372497039142213462530440033006648215972350160137391387975671470117922556611187108665696369005297190574264506456868601964386172578507274898640957583628666927695290370875561268459896380367059636903031853127905199553498389676446767120078962013866070885814044133964708101244412483497746652789739256683599844587253422605240552189658067354082944068197448190406405715119483602309958405294225335600999044114780297727578860831182721639003056008504043248622324802793264623528181577963020307573223475435291966525384082676873139385069538706638007501020773853001607477536769545409966925018166801067661647089346564273076618279345506740502585127588672459112960484081728552465281477438703042801179010758683172168075130077681897369786032427208145220300400752777184728225754052084138541622367284947772341644507062589792630618058278890840497994929109429951849534258150697836506917500906868560107932758434515582524506791094933330844995653845744904600463725307921856239625721873048734089703104669989234382247735584644837425881036886233085392344084328795387254054057302775646032563450519820510081276945105256566156089281083643236731874616163220529008164727583407674963899004937278524291544466793092923763524740364555480165898213191959159094547655550895579773952138883903932514312693529355800340848134008854079198008998113461308876410158296951653941384325845802992155396109480230903598839952550059626728705103203244737735315710348273070768868380022919300051208089949800086733966124015616920504161438752050221313864727313049892333226433587480605979113753467033908640049205200063490194137211873600298369583197126808785787722457037474385697060659049990183637090892357479978462142900693634121185589459931367971764040552256227862275776824811349973850748346995418639787929391933737715730546942244710381830644366714146772589828627394384547709005290811185504252111440584075462864855130169330318018824549057139929136610785078376838863976897092192460981265888116220712910171140406719458627343194342313799298958158940071255711446234486449441915365227267587143427662844028718662647699576087454736999522867815589867231401456154116010424001247457173646752874059520456169250876001089325820713501108250780271312520413957050962916577200191183427161325707735315643157821075250443478223494506302284909909967847700165421400957394668805052278482940629848374271134898179100705691243134646174644567675317153311398054250353902147436898109165453899205548459453529245767526085543848040918804389587847030441706131344095115351027095385206860648838545372854930953547398309009974377499764337857297299798559725142243727392691363430315328024394131994731895227777338616432404291356967012084184786346103133294284728974415112274204355015862890193516202913100511533029908004300402287485110052224233525163893152740087411458272544946252776416592188785266079325190944922133103153901278829734727750902534459884389048860953174145340869882598899676612132696812875938236381019296642137351143938891660040382279577689499883571533938487343710051767178388255612003398373219661044250291212426143965346550496065143604494227960527291931010454067661331318370364469108645306853699716007015596980007412902909661799092457816472284297893579781699688424671025042462466353719070723329921071530843073803068973634437036425475444700664918549261070556013936299765026947902915329710954783508057629241512133704064597677804771678852412644378670367651626736471132614117430679393056603669393949287671017649072265845644046888850511273892208931279161480997761565558986977661314804189299116051137548018459816287567231170467696734102320739593599749544405061722217971342414710343180666738795420695590289363425162092613299617128849177990731943217617863525261747824437470752128352102446872388340513769758789442028531088943545599797651591723592656542918444867905501197097500442617142707248030351009410821985553579097278918931222447126255870720117303744918599883566343667145155584691922344696726113521863996769920160425755465356620703977909069870032803321935837984377573114581352645443783156818346103890626701235288159788835249680482389235961819216612148885206395737923749118424044336161118484536047470979834170064411469357930383508224653730395783687456552884778505999696947456990590860641115353884873992035775527724995598578684607017332275889281700769186654279540594778595500651499303142397824501466252570682968734076402652841907303492845716596768050301943573622283019790272983317496915516584219771628764236068126312893164919658385896125334182153012542367517181065682601484644505930812329065890059790372669540103476910109522303259810455029967393822365916979795153463564452487817257836191849057232069618566441932968555722557950057440012632210630669332764639949571511871349198581751980693631027233629735737225805022271479418672605444264910969995231750909044193592718824055803940913110082285795825379884077508763069375120911694242016286501465690291814054239744293875354625217128888283234147651614819549699816365322479299448215381329409705951446986903706518141814220525213652198756076726918307373940771770880436116479903361394069369267047328844025202065990449999931821027494430381788513828603834130693268181150816919104040089551764304498618629118780035433993734635381794771516345732322225083164226608926380843450514137960619352796295896118542349424903219303925423703709550192231774376959171797977855236756755627313541106439500620701041027081008742098832651839521755415046738890036109390552142984667395703442167876946220167700421318011838830654188635275553799597265147378184665429984017659627242269786348735092940952870248060524034958554536829800012258159349401411949754397142423916094987529948368449126806170957491305536448411611152141465757488929930137890916347054402923688383819451145992681853132074683178041045003813823703012440551373770536325858886313763816869888658399050198446228454405451229463256850475547606874278560258461407574330295599483246825862331384061013453739874625199342681169182274075285883996607640831366238013283187250304132855635023853117666802070562893721630090189587546413505321150154363509611783159353338877847821580722094814015031219215170209817017266776016681978716193545699497673316090297762519350605411301433315332306368914834554510968285236594915626401690089975271085096613922346385462773570730034249615404900249034303881950948125270283237250166689928996044563881215801950325857978940940057640257256500883195650810979691999685439486006043004031540423299595577522074046541806603196409186158732495422340682045075681250464723099592945101645181218070087870760741898202914313439464565113687786527073168214658577995537031252019843708515427512065395482514232233318245759625549488747964296581954971747994644904635864822201089273779442119966208667756982296097977550792244600441664207138318785001871534249702728763056782700138280065734737192586657751853646149410774807106263129334038352986744577715210208324042689016856979885475040562825520239729466631903849443367497860151443309506793028797819104356245872495559329403054775416205183256766484563003056971782660411276027296829399284256802143004779960484906712605854577924946102530092785444820012647525946089792169303072403892863603066936211907988612627669262124462955626446644220916085934030926179105146513196297368238282919341497599715568952466908732828195621190610441403367629330837502456638602292033634670631168613807506321637450943460613719576819219443643102833844376475299349855688259690913539998180039366315523612406710646363656895503317993963454163589555267480599493214210567616579535851786891942276549591276149481676820224478401406053930976623297428865582889549106131429157897934000333709774995936625059765076772036031599248724342382819652821073329595905384918951625893065072985363744927922694754166450407751670900882799791950098106402312531064221452481496906751661711292774610230607439531059081821833443487817874499806006690730610484754300972170005631254408657640424828898499475129095683895481763247533056136373934092699745945839791006130885114705393374616689955644537337307686537327310313443299012551572138136468760271744467398518181806434576157585817303411790395689758960414542998639053798748415082931207547633889716481899254506633945982924094896322259132415477440525438434384067184518250788847318811303780966374205034525800582317044507049455959323112646206933381907703198869940899604628431344815478852068556488141912623375694343149112469558642580518405543125150386717385219215074313664102220693379380602950155441363149902069031400699856269617756758492613268355469988835661711172562203939970356915793496839509898275842051097379186149215154070651068781913416178071085948378764937202719790117553769993071365738694774371874891879967824176660573003492367783686229295298293357063154464324557243062568333331694821057215574084366378140510547044137719506340170237107107810070272575781798314808294904952525105973622767796916639656730233291946091639036708130493037781977694620581399953091952158396562846881355081148588813482506724228722913805371758817399094263015411884633944487193646625969705080093176821448246467389876674980432426396835530720034017455297657660518021597932555113508692726640243224016319647868858077630985770888011266154857622445776089229588319507698567014776530344426179311757225508802021921701648603639932207324132154526979147491165368299399144633754161516582628962883611147401831196157768311428446595607683954413788770409616206506076104490502155372235085861376353496161291552091628096978464970157449888356601919222351470866206240069213944664270203962030107201322407601443794223904704967263316096477006069781481914514053965952294737588420404527292649763010770787879593898914796970146753781488332499503701677687803250059219400486603471444600954054403953311513317592042636575807513645970776047546297033960768109898031751181974074087755751089586178198052767888667185304142740361860720361657522634239679527981539368544537291062423441285938003577701284459860925584564385854940617552847326173665594932839775824453636983222495932703047838407771970259912261729649745448458606089531888100417717019388683397467655421159123582947156824713983216942960505966225966637433515772175175848458831612267620889059852361722746188442618358097631445168065446796973602191305107853453869489790575480536548167472031663982713200683634698424013518171346444150123909111175769017879541539191310630343094173137098028005604709376145930159726505818382029072366120778185197761597294753579897432370585899407319205288865963348166611287548840263973996961948710827868325813473864880733898471685704064701086246650000513165258263180289386693348774228772053051104619028860604430642732056699406278581225098497330729612686908234002546601471377195315173162901383501096900379800521561874833792541608803723809872188217642688883067079377801037964180774475243214043578866852801298737502807199152516551471168810404777572254261996134567112184746230155082445954468699912242347042602186741862136837964920682411882085207848330762073498161988101071361260612411030670717182323685923347714410068430215241129614458053138121631201027424983250361686187609662504578524947665459142660716760071590127305893794762075602833444626757891785872381155824574283382199964434756839889064239881044330776589929984416506680065611210198830013933405928053395247672657048116027215892308691636414863199651329297960988614248001962303906208117924268135052321140326779725976451219413646142771259974515792585729404648934560655820239912887129080390783786880749366842971484972339192329362569513510328781904816245466101470196927372694211788744504820010535555937350579675325228765757375476613157113685542588455861708832190971481251965768642547961858823691984948786324346723946624355078456252989571418354118667688943765298848404431399570164574342111887615521875009228643963501382003107791899177083584950670272411026504079000773809084542444698927958144682465276902271060830547253633145636514607551674402813100294395036367219701100600535027413806112514423683039788282666517346145065213602595630506949338333867099146307118585345551314264694624191433568162520185767594717874239872477042223774082123309303299800075604228026315153956818832338142644662509448774954504948854920714469131132644896166290274253539534758675836775453426927257288914345959293864311931956917063622740126565816055547260818896296039090637967581478531890927336924047407281866903748810560346847825606592372878011389330103084046609010360553056586692409190388369245627103796932870171643367162280887319038036194585347657759575541458041696560549332680129643709001668194531644087630654415335655692810223424038712165136608342923620348316900696493918072537088871276854728286826435339147602866585973091137427528343658186687944760238030173201781402024002482942585601562196295436484069029424597205596760118663358054528095855084332556154086674471187798460454466293650655275673190273637699589722303410922780373173545131848139865574414133801267885870144066810424685224628211454974891202188504493802986849783661003861269269225994953448380269301824928262684831258693583822276740285663478413367053790579335193723340998992828774236049518385672324725911164167936497144615156600054245718680267037920253719977796820590223665920811204794422576011696126133956009498735038307950717847141355126785719672092394234116585466908995756639167349389182580959890476122068480731792062798168660746708734535506058223749641575969545474531240831721035960366322468063408874355431557171270275438267444613248235831498215715361717524161943782685665891474998990811438268235133349246792822452690816909048724904882215342800297944299853419725383998374742307080700829371469427757645816738496477207042752992745327767871700760335354463434995892357168451273757009351402037778731768553987683993491855510964552035074439165700210164547557720286940790188119143992781320376152856909243631098175305875248619769915556819069389720216101023747407433945874128648949948969145344284386474994794673381571657859940409595106487768122081809266653838194689965896307013918019742341535017746239889160509948610702866688760702183790462491205361424474054170924847779964665504104256876612757823629131076434954359640283736935938589547476085764658013561940858665761299718852446736122473468570694074245728703627338960390337600113189915059512775828601310038289493692266818681223973412006652141163039939226528333507885158157082719531200776706180617427854078898881726240051591967740349363687381816927036363577166415126615541148652911512430430251784800559654968855537323932953829137773324951749696806212605915691676617788255465492362074118402719844437466902715787249080794087861095902731761521301183812325422562236729619518769171701043008389176698246429088094868899985960282398925107694708274590656395454189188253927651201639057859674779405197745782560776091108961319669797682196118535789843832627610565951965121101562623858103279929761889150862078092375871189296511880881410730836841089471090724922050482499814895077813754087071719792846813627977334212997531571104137966172691044352869125567672340265613594819346667357695429402512203222983455951701207752440291648917881919516305886771146801444012825322687187859818424661580925009242918942511549298716755503479246321426545323475593105088670074071734847998316705874662548269656613211066391651169958836641953985597230405058329696566184384978692733243261874618339396639933117938625815926208431419986735181469622453276736403126910123455723003698977572396158189578011827194594412088986463573424850211775229410873071359031797145779504804560087006734973516635551606390004407176374373820775587623240458168693632256591000610521493463695730387927522290087519441116127524586673483637921659538358390311455159009807378109066886531772341005000197794201938632755065321811293303406974484742315846684402566767699487316544492254245970554982645954490337982431486694901583884049270791247736414710892955405008862008232064751716855360449585449367911781570040871602250641508907715713976203692729925128785388963348510439608502537610573208921725916336214822390067648444003454859578117147337869887050128358421080326396808875221043848738244151493587670918113153047375675200983432953471314072978710750749090898247986783978024370972837501790033075355670486667211110369925981948057990713934230498302080846915943529170481730149301983189281165459746579340842586508163075056475696891661700985891162167855832722933022427327953490913984423911514704449561932728513337764341980346409394138360010698549283957905365257418801826080792834254559565664143220248432944439421882007165787671550250025238411887125633052004320033037264935574453143675776238677402521181569061252378950429493340856296985320345191855655495767756683228794768934596074789183472527722894403967632018469723357265743810611042305670452460494718263270695056831580015144265088057713963801248587492986101094810296087452835247064532430020151404482278217834956840533368896448997810095751764428297875357045033131964014636305243015603703039070480747467758987080155271774650542706611804669138997563300816259444948058985503568760342866493916187406019390750665933206912286783222059716760222324345697689653920670189629653292135321486693832479279150617804208281869482408041626101713401471978488001247090542752390548062662479786236072803395685484373283656398015159775751165985057613703802226179017194038420502288773668910776940256533049805399794259194863080845703428484627956094370612642288653201574390496691865992067605427975909872036952227209481646404865759505947721508572175799692771160718703199357578628028348944919675985000915357120806435234626963845844706259092924305139458812636151946280371444729164919869227610534085382797597721937554794508380791890210615921798033695225215692827361694459176561644251801565736300339950154461543835279328103658794177271048945281843802721141122021486049840758071939545310406155998613036455051173481925962576691515644592677024630800571516561402895285427401508199253770919006871079319314947108707992495302092081885489100995853803607995168844463418447315995636905160605429706693495225757448068912682327724393407808082934764218295931161302102166925338367812208835750448596204784992279589519346319294159106525184592711599508501178093146017995654204287716383579946685015902718781807852608615817440191388546364386268689962362151939105570911186845354981372099022398542666902072979998965989781404202954251724506155989082903638523916642773894573511582740898675948628822370113846800118361002888631450798694292831705994763823153719659188052710501730871694676272037175058907637857272437283074647771536911034028728899393194943554294528992474222242538835763377843466884376836086441071262595982338561713444892618139280851934109013342501362729614477484647783034583354688354822527158512263618823667917462554017198529091823157005207898046030711981617018637626402458532763270675010332582002589508924500251844356602578045765528889167817964830765307493825788454272409386253295312510375947294919688419091882430082504523822979195954037709490973039012377630152261608077081314452149630223219005990329576243436482550726261153286191927476881441114734788372389453982649075596779648979160195523328604648135820635076216282480265633873360120547721462241151156169976887224556327066227413761180980865580278550393879903565956392974110392378905017422645274811906772598450665835376001085664120062806213154889913680554304097174461270210730552693683873839268831505035597084260804296169432380147120796607066200710060138421369271124153507406399436167227179520474358466085547768156629594188393019505588105398781161788537672229758769245982850784778864748821788143454221848692855138042603888610508403662845074747184902103537738581014274547019876784335861250630702074240833132883209368024788927309773687963262148614947135017520955467865635224792339869097111784502759981089903120585568941508067952538431011984270894165533950646937060700617840875107008573967567102970298155200077591196806421483032970038801155253344096169599561625331423672407111473431084877287794081663560158652136279839663648425090751739114601241360253540851128205935376001307880111276510572670911961833375579166445020694484497708980373408637077680175093387492342967649479611183217284913352702828215020852960964220395486011511604273280243169792135728986738753501756915598234914606715660523269105625526311926223942163091650608979267865620002410082812186803176376898345813773148177640014895055398253480077104346353894371543300192642717100516140217357491843212672878410631511150717827675123867077542803777214044860207709750630081733251153474061998135787488309487129286322832490633291348694677512807185501770052044177449436648086483777449890498890262555183422574186754419841307955252303391774043351644826601431130432478161577943800819211031915016855288103036655415450071890522309711037361853635715409500162922064946493375480281818702375388963582108235665840138578381747373028164215133488626380192830652429441966032137182274544947341971849772657324485329792688387629395495704352699271480587707437332400186490653275849938065805572159186071667113034941558872993719508079784727146195870452893776075412839864558785439771736945672064826930311263056587048211627407964810189385267438722164969739362216809187003221174773873925407074211283520438068938482602988321995962299315154439805927133826750597965025552226997773157792177819632919705932824954337394644459625825934231574341777881691150485967335382167455244187856876798427647646883584635380388802948062613371569918454501906105919357074711142477691977566640124766597673116982400766354601571154172061248504774711969871570285472523629154380998220554095060797812176297953728695633541734780853350540602025435154639042513927288519496288498126324399109122074504758375867596326088300606280752702991420663845174749014780414298613170516143855953064517971193755913259999148255612752434953548489975844436632552235535960142639135704524199963395204264064321058029437318118523040657882839170345617303821013592524406117601919578748272014171036226507981848144311248872936546363832304676806895739172008116484003998111266181007178246450043506845413975803973383010872911168835815861173075622327799628327172158940867144573136115715852102580327803864624185272961421920434844055416372949299577754506191927760644594935372639974108128948532299111844687282635218797982802991698719842910448753534738862532313206906714100879410017739759298834548354603210345795304248045585385152952879477426915824823756037351152575076163830769692445341898333454422275545294872473226822544279792323706499966554594840903635610476666282750821067149803079908678296236440854765037624015458497476191268180231644367389411014980409487085396749828531818694317347653430360231852275739990840767104519061403215723936370055611849786142213788295586460412313190658672837375622803360872206429033144264727832578853042438394560252652200475360489539753666952834021480955254480260076827652147306253644748056491078326501600499909317608791894460641788364622805855552999111143967264988713610490398152885206742242662432079459965597045515611363324116006718373486744579729461088222382913041232139924270082232712205292104040226579577281669041443465114453665067054854746836881989866694428965128869218934621546523442626295752014926053002620638333148486485505198947980120645907181279191491863370409295482702968926591218305256228273941572374124366397687325331332118652425224526082810514178894050265210561616304420460620438013139405255325621858595450116031616761291493325148619705490821211018629153976330670865933237077633814905736454057156863609532005913979014249550115322977591634330617189158869499777630202478777912401998221741378503535712338384966674511283654830847065205942156726479950728152268715232397727136959988478572217007503650154950553004100550740411472066966788127876500637269250320888004078833443069185213801209212018182948794653598750011976572414401882714671478521411212974001033920280717841945495266581279927697662604729564228753087200423833616176191372893821268886168441284458422434450857288695407273062993391730250514875172494484219045892919133063890637821892933616329403557695695058148423883921404042436306127046218991925911325575916517579709541569344218708351741907396907702120885556600280701116954569795920187635178186768549346550208382651935381546335430522873106379923264555492817363708958554144316400185326495603879989028853687922092615024588109380899089728832625818137138491129599855863082424861151511164952245506474412321442065182227070368580987802607318624563828562640356266163384795829951027337300351992794833788734642042603669262698321281488087566817638140515923040007212738242632727126489529755938778778816106400254668253906363151117838290467397903552309688202102276356485542507840837215837790868432191230989579254152362558915027147576934745545775614721057392134527538529941674903084484604895819120370286621610304088667878758839233975652124270311175107341643787950941672487818543394514350897296992040292562258242137869654466529179252633634302310803979519083062470349326312639694725660430534212243599797122417940734856076732073606762533060895702748371034036452263575784304737024413685287889969347014885008055825702673866526164769669168544935259039744279181133243807339430537582655166422747336615492911091764526522707614405601286294362346977141025071368326711559952995325572037971862191840782199470351391614606302457324346888640249173972307921795663135642647696043615570627935652098357115585847559049026129118288667261381326589112075680547563978372823492992293790437208592803079727689155349714650018308645034009630987118826961116383255152379278237192985953854187219355753897345693123937235900722872547259006663896449658785135844030284808670833806677312627849962233010317119041444404134297064342259182073269270125118335983093228388590628628245139869041355441720339116545798427418411499709220320941983946354292790891978902812485132904053373180419785408182130456764008468033150251074039751600911350330103058605821342384168266588553672428078915631469775109929610612520123155027107588178548511703621933478138734546160663273107627599629532422691814326300082266289791530970176547112475802403839963726765350979414811109394841139060197022419997532208442708343997542033315684039791358782699297297537935639232047855030973475692731466957778009248523822956339229387417597933020922504565829241282295261057131159706052689639118458224862462643648785577215034484362891192613413342665239851061499498381069561856821955896480969140202788602552442555310217612824485395045705120015012518665928693471251970815433052277250884451826669900487477684898322281238638831728646033157993398797169356450227776786051181168664634351119096135312053920301703706754809557377569896310152499497392619391708545650229513291815914148747030590772299671150154135337761206184820203741368095170487863379009909388953207649359012182146074211378323876833674248646085976517895024722069255893018424817707357598713988746677237583850523870424071842791609827331955054869712910551333338791743190156345324125416854889992428050837627355734700153049019208638535763770975509567539162537897130799171506104153361555619222670917762346795482798659000143443863652370352763099530352428327102897168069089416481098117377002480602271622219830158601422439554786448453801286223663442569199047460408381828769908145720739752812401486456076150723887551795919229665707735604970824243069267016982713171972727861789007453070750990125775945510999073026301801705984672751755502502672667730944731986636152547525168319203170155889542671638678187689840035894229392587644995238863927028129661551521694381572557876809398324154085538400362127009130167165747834418532166192275600447589763351945623311686921797155206543372799385333670682114139016073490279952767935996258074554608452719476869079865257847780433832340320212478340572174714500972173483867489344645051684011109341460935546995028872766843223212694465588826493930167479148160133050163293468713685089032879017220312184033056608494212636569203697175654331742548226919499906060507705485982143406378011802179260274918471582064043440697771063958972728242294905224889413476946055586336402625317472941374164768014064677271213448968827658558417233361855236795598175915484484165881101305177673602111348322486797412054167233027892574941445142194462368163088358277366948920046735469949841382609458176380015265267279419669673904223085126245668477815884693474352385865472757235652224175504447483157467791908783544937982606861172919506110172829877699267235621509982848327122558377684069916947578348908351189439944910273590103641610452479163462959610294116311315544300732462826282792116566703697994244938082531335822653111897707093298747157281561822423804328651412081975816738810879999443909312253901547160070183632019072430238081017004078232688846213627615177937094919206913201618895262937585867794698698304317002319009930557218797785688012762707291032872620246001971217119988782502025499622799377829571258086843122011682979740994917770023241250030516491757364413216673746340712761820427599941565828745116547889185577801042994157448107128397800965800343116144035682330208606721927306021614383298562352520809854592077789637478151936782287380763821253469596590485226247671747360250348976590418757826431677669103697387611703111315662548458692061030600290913003366678371447762215735695546040334942865391141278645662337968634534599249208861400431324692395443133226810190300897601143523617657393746209087829532045667172557106044079368735206322077729739229086251323410138276877932688413182407539162367023292272876272105131787326422420283399940186078484864413275451932259727083788759250827199839044079784218933832882687720190751440478746117822752617892244872968496985327008318592027728485922486009672829067141558170098438441940766101473540268704413555909738013254237514671408673669073140111240263229580327527735251669696746742231888333279903240166879001507558031871887472293502437077749417644282463728855309342845192410346870610306016878834662630118898801093113288413713849257244258241675470623161253094872963056078515356793616097682930338237689042221220969421033159465515338681029584743743511656837535422728777436542251497721189800414843284661524330728726730822798347159010086297599784444500466807224170946585229788335496196026214047167561839613305847585057692077502617075194414596577698225481465894125905169601168208746634076515360172870964955905548026781342342283639278587543094795539275070072509149916470404550550283438075899968747323527980159438689358487031377558532177269251987383753487028158481483228404402244544927373435107901815927190184815086466276747018160488291670884494479087025508941630527569181566628083546398530178770478884113053463315399407647340390429045218385832328488457229222437600013595224304311294144823486445235376314812357853487344413929325178908558803862389451631060065132232042537956733832759839228331486625461512922859628099496669535008671277905409871582400847672911639588213245656400910935572349658329869494461519881298976710795775360433173088492471189933526112323805660078664765786312319206675956079116628170952255179083227899523648320989469464302465546577080752661002325560195054095544858185574083908223433252642642371947446820787326395285214130370807210244416566499969607882279556356078925306878244975660227267944780006290408717618454540467926890786607154651370839851070307676760430052157574305478721413182397397808561820802851038827962659294249985570363615845043430144926158084786679231189082042052963515293997130716225762922276080739533999782597990061963468056993697489184512748374532614936477426072538578633991528446738258242241725859741675652191728195557188143912082713147348963773625548524415334858617336964912884644148178715099184528141233638140304489210651074348786210494815763152657976708092706872200984934464960856087790864485564804819020230081858196532540427624729274934376088010675597952830085956599905126446132642888439289559714785591927387785834378156059258033321114593614727217839900572403984117529037661233223667080411363081480317047367182257681517633354993988622074930989387278796940596278851265834060264701679487344398318631361492567968087344442513880935277946306991940158257464745534797435667278371047018686206655541206884407774740395731932466340439254724925489823214121088217118374829613139202773435214165090900186915338107142979842768894843945161107810477047053545245474211780767304047895415786993831033720617037618367966117156093376617325087689324739670291196365501686480296095240780009159382146295470150069815530206003075388280728485028194739992869708018626021872201628068665097591777687887272509783154258874213916758594103301390412386312039728369224919235791988258578631086722687485512284667084554081790664131226364913130803755990076662976452330032202967325568569303076315754510253601731495344573003793579834674765341599188337877347009499291029605464601300561598180504904304735261082832025977824337070216873731034056938804679334222937410725305388931018824888035559473005082839729161739924181096075429812301220601090854131733256697388823183359307489628034280484252844212070031666040629307773494415433939680603757790837199700620819514173597180065818189958167735462582123878773198995248459053650218689562679807620788634631463293679231517602401865216367062031035850446144095505107571243399914226559407780131607954896821827519442750971590287175964013579643005792960802855125086876616834193538516654486318944398334117416946274971967561864630255338693345039148086362892800213584608084680996039897444671058906164093726453906302617487665570501561499848882599185891281115166426422570953148119208261545758128139068838402527201433077510854780405901533123639141500850773690819670530467401117817054717312944038856825333561782911815810469043170594533369648697814041243372860886224952848498148299027696606545185378079239229344628095223429501600739938600720248466402288870465653191931747710332190943525314358171275901464377673632563640078245424959884886225532476164867965789205096473183086604131622207864500175411375656489737304255467876440741282939007096411580491234000414450378040620959798806257532916066463974878228861207559105180241092323433504318814099426697301045309352020039526970539929744124872604401823107472050196141592365335181047685836602924080186225014051901820096200487962348981243682796159219010105356204222992814309004698165307186075459687700636172824323432699920636677244442965735807931253103861970701613879197802254302377371613626843223185204798777969817430408516581651424505161002138910484220532170947794406806659354535567730518458487030575830718169710647799097795330754401167387570064799639414268639995256036764644181347017973935140092087395092131800395327319074725410051316317276824876820866215120905163884926283022142092199903987716240756443630060296921228769983953874910870916011206580982237147849746924371274730559792407095623502476407104375376402767448772076567340401177473742636067947167316438879754466227539752561862895243827553843725924217097752229782261531803583249362765414517014525185838787557717349181403897581769383693296339698547713658365851771023420230137916237305661767426129925835688733267060673806510347440100994262867687413174162431899716608068516152124206337355457198514459659294829633601776059870031838043199677705454321383400332389033226217476793354405549068716652190943469400230603858741580637829159735484547912919493812807962007782353200116396904855778333273693046161940578094095100722465739760393647058407556240988131676182535419095577587947316420046932739730913485449528790739488385980294648457325440449638013040597387364953656255004258111562464903958768656045732267453102517567038202834141820462697889927572320790332080281574432784648796067136994079096883715190017242208403426506728234884409856284685093511612603432439330326112239429400146337714940361017803691631136163017074234111816042558013632740683913135152128888941801583216525421040487739399972792459267294036079926953587531211600292431451577061818590412523950035904115854799159737888925696057884253406531641234585135329210734860504124170264124922124119410932635907682062088116337505593163882114384833371491608615870132226203389472794751579423508173391654268109344997650698740474214801251293740730777516242164270662834733446828005416806348209750705138971860875595600267580073273296760800779280422414908461201671651828940857061395797423890929299049778180139286333835593301506589839606229754494964667511413412982131790139216529984870701925614404268015035593499465798928596425517167382114754054623722616784070148886357278579024618150862696396521516803692245644706131628881723744044738393430119387423907267552508448428679986372895457184621459439082085479440139448739100064657303711674028902699535066264328876474608845429446112894298596160611187495933278506696389793783700328367071320763258901451798972281604951494430316764765850855912992103049130890790192484547614228040515000948237412145383993049192477054206908741435143291558415237144931207764011195177780643574455867020368545253127355670206997077659523244579404385314461663535220467026170319988335101147496499088336431071834150898871020476140641510071086217891395772705898147513052497711017360573871361194482908989271018752513709571095726101331814016996948491516732206545690976080916112570449707802130812041051022024014241025804775766406495210652049400829130804574107188950173036912305526390076308978941269426330984525410368063033301042242646728121188279030284906943658985442238058409477061287510058869824860264474547894121490281935027691877884737978411478599597713706683359522127692160679277981103292987368184240270311322484709463296048235872753199665060802625135210101291019848556140960030745181828464629013079785845009714109910130347582785871208921589083528193755682638530072838299904233128428837612656710009027924071656707702605887098151416132586316806229203286443485640980862821633056562197270792577927293406993278561390476468559436394153738263501080307577483178841378807335464257950814848058838032271161415647531266529107617489177809143146757557149082998160116034357150716864860855982376408597403070690636349811990837446473578535206721944568545551440367656051917145064228201687074676118526930625555273754548280700344340699818238457499942621377837657074233221334782363353797406977665429838841793722184869941242139695114011405506065472479399360667613837635320179555445423323545385142576279008289286685931384073170496267426589433174178388134657756446738897987530781353369780511933592720656106039090101493644639415907870176716965629897981708630614455005202948105828446995026262765471117952971595694966640412406488062926515759146675793573685840979201592224900472637740531799535067652442291531485482083281035839545193294612242858339477723344170016939641022788941303689705960966931132164282606812046056936212031037604212733588242632687045187640388492879582692733871316939311575484230463007858292124638830481983056403015934638673956383091200477114080914135298472621751018512801576780346369414653378968969739431796938668824008815480718031427742334717635477804934300281887351670830945729355665745637297941093712672657380694701462730329375599970840761757842997769945891933725698903103506881020580134490759465731721306099838713625041383179964911679405638580094485952521280823666307760254097459404974225902047908987162272034031547796975740102603712045853091835214201806570096727685430296774928853392630166241563541342052660332358410047792686746627210660257247821995800425160192176255421007574381520883603733329782868198229989747685868724235926359755206727141357699549521263501141375846861594499754301471171096178244811843887804346043599226968323319848183834131013952862659450339016338701511148418761258425804294536551404489868942804241725538375788797403324138857385558786415677775320791745541667205474370396820005366230471994499858845409485633387204767337594785342684443486865291243778746501039288687083150157308908035500043978647869485672900447723461806604203701439736784594881008339162060809398774492687452991970909841550796296378318906294439868945512224301165917225291396335991470851777783328216281086485190602155503719383599439102178815017579791235423263935200941430171151522359410941950452177772123252674292328262892312981547350193305129243032935190366230403712607827338198635618833678013075998869402156328585166983326295518198119592680749758732074230615404634539702854801024741560749012351999249608822039071514209954115703225347135425245191154120861512529471607044403156044624913368214516302545077959953012211764632507103098744147377882291285536378462564026229511445140211101156974578990040328108093146778077582107629656394322821724930930763142866678334667878167633711936594996441174063184731355196931774798325594039925825120538709415082159930600355860577010911815237627555354036869642029646560890494781449567901507173624697022863370602555926594618399259969056143060246149856783396681135069417596378697384040108467748985356715194255096881349865345569753785747638238886044175329636281584670220573272454463896377248988799623472843926759286897543022139479104686267521882177604204978640067446355349220578900278614255939510699585766862659434982086612768056564729528124871879969918875796944208449029127174368919500265654177629352868655919966130853396401980542614105837305426002350313432831219691359501428099267019269404804843153389868313209965565774744738937318208215030730468859748291813808931448672889259122856110289745225243217200696231342286235758575718256112211156888619808745465196165599030385930285247359393065874136743554391256578108966668735971179797703652791819598362967181644913970939506616763790171561016359550146371282122449892515584617792437774258153149769974954365482132062915878844656828319404166995525331978422082929357475773613665200575255047800991512290941626260602435479185122452305785907368792134145167281202153621563323021885633072563706742342052575999439724743662564186443930516384092132747991337460617016983060819803576429069661888234386790663369750089783157835258795196708410787944028403074506219568868031011323721138259593805785695578661473921943690275599417973336954615064673097053069238487644155478557318288174452018969541218998175111518421306749210593090502877911389749499837006457549031797856664731329354660620787824294477802689110803448974956938282695798004728612861716085689977796069626215711861849432827478627063433006840560180675236129430503524115877826140521279435394717244327181336547253580329098428332574090982321717968994521731292915933576110167565722903998331016749478927235369968921334676873844724429262082119546145702713614721031393760527143280801396610619767895828347637633702119810170996354798442751417499887396502610480510513100306896785961704065392331265718663157739855093265399530586911979147222395534203279480274743813363888479577885575657701974697861203214809326376589055354629324359623001816264555940758808794989492550826151085961579749832058759256918654137805753069650781160544284008126371022278839888945103181705804235197780050312259102542388360104309191737659398939055286486109828574180045649490644558481661235575516514398737823462816722386830665914107561869337995656418834663639144046195453076505326993101707660700437320318402792686493080249708451138824657496973969256475667750490458697153373062553385788278472364384837498445377140739079247342859650540249514887084296809357849116067060769418318349393241458893260665090695015808722519896399780938558903496273189288170232919231588672993666188001065617012892720008422420802470440649655046103488921601858025142145392922225061590640232683514580096571771346350968334490491750274242040332934307643533709440623072196503298059399761477372090865456419572705807453312271202029228851612344881415360725019772128612531756946871677914669229781278637702826397407676250866191633009926534643523415937866838847989046122899812330055265407035941876512771014140033441759067368540421079125481051052570757002511486797015663791237284446432818359530582813765530828993766195013260565593487609154015921715843792036197829254612184154764611768197430268570335762555585634497374988825914028468591429950597211871082253063634267177685053647867912167435133379104788685183559035904815569894465478566371130033834739777565955896112740304154650325145132531365591135108901519668863935299903122314687555898927534980020472635539559453853327525648187186949367128485908935788204122246170873963170384649783464050177233109198804802424796456158685525198890076232437269966963818803146022266216135821210606985090068324803898408359020156595883170749413632337449133555040838256278947290823134064390932868361043646054899665905141049094360674274534644434880317517679022902031919709812816726827284838320587867578569085095095562441299069776275194696454459122093575357395526510428087394944934799738353801554695391471385805786470836157431065010909639884633536856266030350535900893761414965399198709928225507297634849587724641313181873004888857379928770837236170471020702669631533868533982680750696375860775528076713622233932050812913602484780788059348661221094786887386484739340691763568715955895719488988505459690345138025733199605450940577607195679789314913276793931425852834505043591874874268604291082068662246127820878041162995098912390576136877910257649970699110215275309870302514630751489358908467117015750777756100855772906613276142296517888728992874248922560869063290590824171752549125526578878930857342092848065083939220238266297439585668934443245170528554673628616692229714500863765607018426062696119287611020593099516417563390928196868583998795621985837190723805341783964149288483184377680462180289123384610252128255104167180997437046657249226033946821530687558622014580273866712209360423178878192058329060092112350879910647243287257311525086507053757166567882008917097336943936126903028560029375139772558149413936695151055095186566668667165673005122661963974110530704996890524848535047556854837788814467410740790832245894778431432411504450602377204818121228633717183282559662483865752696824448161101560810321145168837522398967283477297756034432876555921275532866874813700075381564430195469796667288681754123972203710881621602854498324446823848123226795221026472934679735007127717293104150868936359408130036465927719308007034111426300067878426354451672445823603455558815474469965881066933859851056551545544495032702378257148299340102692915841050821007232310103869808924183931553592595389722037775632635898873378455830660741831638903623926916170309646896013522235802068548121259141647183116783601792578281934781272480307860809416418454674765941776286141377042435599173200784037347884616573540712338469394358625814149431153552883026541848422175963233946123224311144846315132548610738231776362804514434643275283231232891891082788735970120201328474784209783610890176778388720303112922712661315975496386089329188719213898770323187978077461577666943162098223547174025043533082259419070582206254459743031359769497685870217571129558611199710159968547140922485402122648379206869925711276484375340020985979053781569851480282605903781661643629655748818214299362765748709996768116614962478578963117491191550342478001562788139525832031066276848692595369153057325063006186135072659862215273287887929337540637073654183400626119191444827064265808238742790921603762080464078292612520618800420986770858328307604106639370129493638749418291671508089414762032378313336886534418034940017327712959801099049617098939157451422225193938715535118716001115987256692581252265274950758843989382183918256007648247154348327553512505366593119261021276208962244302500972345020027743001768026874394446349060285532710316105172872207134536568331342037918954218638750675820422052355664575178012210796360746772711803872838729028220737746154313684429996781708704457014310149755655752229262816269164891018119791413217863707435594768970765828907572224247135589579472072822596457450820127976852975888372639529540850855724287293557085720391134618263802755778866157843973519729308496047783242580527622626229074390757329403735931256096628591022650859593788078089095253393257210983972229318852902571487890965886856827997450389772538476068775463683494767880314344590641485212724813804319689555241128549670294541966354924500014596126588533819156871226685530532101331579483513576769208943087121501102689611744509604321538541423172167959539629057759626220707394300740299383349340949998397800754099067710175820723051027998719514885096376435603116699016163068914193825664908420104813668362045512347357303178102396901483116172107646598507741170641359725684603409293815907100129889586303601005976866583952260995793022908793543957192805651005331771674258365760414599053975715007961800441943269853819064493568276487523249394925362999941166292247907608735342689092944916788795530744640731552080963964684360446254303822924195164511716425414091343651979143591257731640841004593802284788343738004875719461532015126528734008736182887729469476644108116790008578942325103805795748649187861067483462343891997147788591546946584631360036473887996625615552375725539367030535942320655673622218220069742493742254715565974266665936114702016643885113656547335060112614454993613442257732238687217552799108282063835607643247904931406637301006486200044248126717128902808781065860161239338851858578983068729129807645702965701511482012815076538002249507199991962408271011742875555258856621603140870072091880186196592321108375712980386082844236979685675655661880904346334084395167132910924747509983726824276699945780798361346632195387736916339904080854005600361200567981191988552346784847159290168805396664039073780463166354219276201108183392617371313620749062506825863633090625880050399045015596148829298510449682132296963229966558112955652950366351526572293659085519989526279912425804406661260619934670062584963425371911729710975574376601864553726479473789953880810950050745010129340516022443985284306970935731614289710726167915079292554258097882143318433556537354506772255562302280130191168885340865236735441528718321196802225653644524109227144429803532311349729850854348976449961170926902537019567196345825240830843306936115367029215209146435739648706666906213241867019340297065133507322239190814030706139760816523886012145220364640136500903152069517829556798457483735158881712717071654681612507082360255076104458949199256803888919549248382225753412867578266429573132037482148907577509941156725288995739810220713319026495347029557110330571185068045279009800627426012005696936378639398576926980034967820741723677643949941808522968988564010565096813891072735122452213470015508354321408707470212379617368119908832272935636386659080788393761162929644447007634655894217527721801769104970253920807832551247097358898635885249944852830244345384575826030896855499311599940877052122949507805172558828987626175248951757116078405041026596335302478206719778785434369145542989123529216807632973794062534684755429024410401696831862418392429963758862547151835988504588153760517373434197614220060008096572768665660850544611973160664586282091145335359694692892111235627290172861986980848977224551593774766656570437381664696574222430366097615097965489694319359344546353992858483042889771107989086116705446033382833207068435323701525676518946712498815533466089929856837204502626932036961986523476674005082287009208356255933477504932937418367708060156164670784725576650306588970332084060234564149255636481093149379137477783436975140897944527399156835793989971937222390967024763748254422872343512543837173449352070208669847011956382637713036851060836508971046223371836267788713031485138633626137594621683424873101054866299160728040185367006065258384505048947896872548737777796730400645251569133770724024987102497626960740473551020435938079116503952298295096287726650764045882308795488832243619849920394918872706828753707148372015313406912849936846100068102314718528692293965239611488626826767797994038955523923906670183106612620624548883753242352915651347879182211179499648493477330095001324291414848201739015667608111539470140006284725768827151539475474477894619138810710656930183425201360384057318905190683667218039474367661266629897571409075202760287510769287262280986808092168017433683700784577223216819079756791713712252873281751081084479379053424769661932643725902639260203485577077447171359410591279680511185103314506018272225763430738982155116837954482946947599699956570198129951648052266565916315414584055113423779583410703268727984982953148636960282023475928335137222220939391958223899516078738557784212279111717264200907209421870884689760192924935849362576935922513610315005020441726048236217277534816150234925602349054148684796952872010957386189556443712628500685024728864268566661660739910683940722710746334884316793306599753155331852436211141559031055280514616823824879509755552486121186434843580332742358861531569340746099235562948246866914320874024605643820031256777228534906388908809352524207386865204571279743584657632037204326072560409279356935172572143449179277702905862395055968243124851812574716085317313099249404466584734963188532968107058391011706501500743831037240416640418940218212526821828401039596772073914363838811238497268138805559684001211100001070468619280729726132018262118236367326472054795407592511494495683685351676860039360424581871134531970794638214988365069894822946630586962679385421989943565689994867575987536991319819685842784950981852370874127110511693715469678337098727739754353680522393835225775458892682980060982303555696600249157660636480606554281650041756196412495545390658566407064668380040165548592656689593586246161646829668158300483102659069165732859140880937291333489379326921067267644366208092305473340732804010527542233925189775022982604103812816714615935576996422657809111654739762651056633965033339233581255166717552105737871549912092467366351431208298617779883445980163216372443871270434588859407436975255592867308363600973108987860584227691109637246541921681854477959708615690295157598641808687086581005225495951187083862785374201475818580893818831279380914713573970754371601597055189167766388453299309019229201687213867879238485909243010505985142446852358097005321224108667003392863690033534454136300187038421765172798589051357964764000801000968924844312846807466696868292760055564906451140676862249706535521762976474550043342418615949195864400447719783757792286276814628162058586305170624010102775010037995959340665886659394401746776794082223954587300117084238839386386822687468566926387366583446613592361600874021840001526862310837819201119688697513847212165829361384937288846076158854353425667731171412077072307173087822321392195725520622097949764380768165818036755470999281334735347406469466308385951881014940754430885364446871625729984080983069248965401935257739026116881937565232811442639709343116842777371718515183404236351122350021533492927961976894092583382105917376145638682809484200289543638187108747286118306923411712315808138029373197234360348559172316463506127799367749374669242800327155851191510534722799215733013447403668533438108131756059676546472520636761474859239343229465945058761897705013900446509804946004876030425887954067764654541541391146886799452407891786479185836889278543884076845469411004519583379725213449481185037742371533939859358945383374002242952467841196238196293163435614275300524325751754417385888101337628989387339873395627514104035459879975880125104414460193964527270207021783294812023488661358591583551259396708095209206960077940351353166315271288039058218133246025688258640465591850768870787021621959016120094002205958039487986067372337385002607079824829927844882859891912877136581040132937910367905797270475736124630439372519081171357696229843995397426682270750392297725294306412934186715634786116752198948600918400635434240280902202266949781638581466522739017743007748390790677647009268145606762109486077799131457495520598478421050081832432106941821301311986657498382040140578478202738784680963502745735802029001095098007882245570383363623467768800467819682424884438281649268937831686033628872064564175452258356156832303662097098962323506823810073080470090851623419312907585403865962615620037662976058195887715688884597353632900163106575145071314102007020357275027008667438771876860984588880418007371044345655379235106713120721630847596621774669131132633446618624707461582424286848971326742481728266685474390379709878743368670754456506921318614930505666165712965273400546853621862497760464909269649174824585059121087443592598942550418943576290096351280199796095531825412397566714278725999921819408673203552552910722309797712033840489412256078377790647091754958083576712120028625923214848392269353740886908146591335404086201327234033465034524347118660973514141554616742871048321405770202755707899024524137012936128540584367824519843600110495883927555615205344730237712226408676562740486679898823820747066425490385215486576317750144103486003963036169278899873633817580287140679270587010185303077402595252395128512679138391964580290128994061901661171608181054868638225916412043396700850677304606168886726017318617910370491278327153075746742369439186094312903840204209940030535967757361527048620695484280198256284051342634659329343215107021665999209740822708163835760688331929314627391594986084978460071501779652747837609459596623871983968157073258779311542408168267005632490438885829170650082425131892270775059013566163392242929404120011262275943020060671554621315950844669872911254111617079007431172737767977891445853180740546902728004436410679527780452829042906940722749801545129243119367053958994621864575110281836018706299184250052075474739334761934646232758841683788453688479754813287798114479220335813675373211814725683323538958552870994351899173906562495435098678571960063717023164053197181940547101417169311196809208710705161587184944779879743418691649530746519038475062610277909280080055314807186407912681466230649201535448872558844316124667072626882941918297775262994659205766412616530426117512854048862150954673161547192864192365146919085209441869321631176938332881121888952385143219933521885676115133632184153076708895306662583503980920304444918527615800362636851025543183750961828766453542552889547976857953350487914611420264524076239743417118140657703584042126920705138652985491346161305478794967656257939913297924231743074105522164091002675060039103189919705492573164893410879035777666989659642047156242005415738895551705542875167556408983614010844595204057049987249176572747435045530642510885545622052323318871167821691340260522651596451882368440001454925037805632184116972607321684083028034888921224217497848312657727644417157132692312642086373434238810330872612816493451840673329675321220397538464836498178670949079613008700035021758810512818000940676986645341753478587158953511103263307925336579583537206899318038565551779790647640528590697783009811666813263775106510594612051484820771246321406706030059376593637761835396791876255518179529625227118099154686953025767603345288762254567595888250799494354493280838437336847724924647744912230720505261157926430441456980844021507333391211960726673095820156977788283687380824395508640704786720011913759636580660570104213563706386108228620843463443119603530006831451204396496132310574880714992228552944649301726807531762759242797462461792402801552935202701892344825151022474825275242409541864911749157243001254232655468754150219864585500056497471854760304652193667944785130867154935713065913888288967777449006297801227673572777459629811571237215756133519151971457978302360006656007368544451415166448011970195717128376616307059370504035181482141033284014028621904285593181477236497691453509818484536912803000462905074584672224397821345889177787102881128936862896916387924812498350260743184866951668746816245626638725393970798259653292341067956992158707707041421614619149822662980273126475076720853054701598447917591644849472727898043963451077562026121930870052473922353040012873621017222992802439372691043451913777762626519277260990920597471677094953052889770541763334515565624114700342955029249561558189398411670702774268444495271716500592167344733050900687009207314441954189619157876323991739248625837778323768083580332823570276623102691662900841247257607460566761917397809309852490745918718491637616734119207984993384990220195001123080811743887322491991770271678026767980369534685590982752989332188418939385361629599557194392008763979347174194049660573409637350616453111744553143698377242047490219275274903419523286590018248363014784575444528780036826375580018524632826109047800308870559162429064434239031390646225247019846300061022486272984894807025138663627995703981896136790096901491597306392245830392763319742815798776922174149649220311974222356810206206150347376888200457355052114563540899844945104565045934999141426671089395215187975985852505561006821894604317055045912912462822906254854617910461649796396692059782378210511868697788092630039588090030970572890192886848613044269208948070309535463527796147256236812186672002057838803200061320067662282696789621893725006513907546484932081335919796014305251297867111404667205514785094329477689651595830966817676419050857923609421325214266703349639320764056448046819032150599385402494682901100284845326737121851889074464726098408134529302061230946201254867688893881194295802383787037524948597734741294955399953182502024746208481231851188365163085173775335459767952066538069107744278897359242496428770299993578186328253982852000147846923096057638467370098888832027614704116691648643755561371173960212573587726205388085365865326268485925294701524993608151776899417817293532583735618404959647894350438313531252617410594381034756565300392436269483628871016507988647732567512785161186510068353125443866170528079312417031943392153415108478220876161221804824116285260570343450810250562567761444075954139062999132048106201980830746802351713124770069285697423924527113936628864497552359440048420599055644119949512182517699661705420883355036235976636894373235841496037953386090905989179512169840605585330471534391470794651114498198617574807441110634830965233155452095417438997472883438261069783703622090197260302171712475236769883319489112729713109489694180147735945402051178908716869911715877653352961754810801533156041571674104420227241081193879890753963328235924079026762351483556281121227661660016772767026886320617633566621561588067850841154172427074405578909882449144360225658714628926717922545030282164045764951297934128174583062157602157036011544955237340817524914143687453163034800679604754993258914810960888017709597148059245114727047829299968447131991070671444207643413723689791578613145231240570679577630080198593443844824223160090627729654507929620556578585327832890745054922648436170476284294242287028710082203419966904228624172741873976507790289624669408292894957270863571367618878098362962875368588779831263211626572007089788874886483276671240592949999043433736773980681431465370789398055479630793226562892694197375447090593478248723025581450518975743476244923625394961224890187732793457296603712814003218098198162649306676989766312587702720368902659548347132671195228057909869133154556255783910094986658307645730374151366212364595996324654181214465385223932007008514526431137329986478780501918683621915966192943088948847877433777736314126195156690817191768556620542762248606589008768637152761434546273652368921189828382480491685324248156732583643733537676512817799159463186755346652379932468339613976064489792097746736634876750780300720477400220071959784063645139859756706068098666729693685476816874172301102959083227651644612243691627612261365988739008075133213275634272743464251476805099687045509812811705941810034596893174036621969010670118634552688540004258464209600123861276417792688133936521170371448743377333213517247353486772184484521701592629779184673212996770392593250572497121781413916329155098826101515235072025992686248936339453549341432898448560113958347175109629529244187591972841844864979079532988802461772975759193561825541015174177666798096795026338650770339483804443223674370243761226308417082633927052727020625867224724452967611392888086711699521695298857163486799849201864407541138346331730733716646756375226965675663026298725302076208336002865787506506076869981884317264790078043969035125983821766929691642703119946054730243870485985444718882914866228771169680610179787926100920451857861717140710072941440014292653390535107927729855553096159278603318384623259153751464055167939581616280852545354914797714818594044658403377726335840130248535803863554184261274610024982718976603794018272003861915939134312251323241488719179476684345999512207819226051600770542373171842985289460136798275920868394846036703957913483908821937944364580912412012856003557495568746448725983390409542479483514973330102085809157308907229582079262697437015749534575049346003235084846154328228161269934585053832891369314049905227997230746530327453173521139187430987079905968699185806333383574109621509348661050313990447554579861082071709666454154988778427323927110994011798263203680966376139914466252825379520916990492026250991518989360389961187000226928693508698611471841085225242752905190247499460730630377659048067177857046634005445287076819315965965109204553788045335503033379645637281941544211304223902202347115826811769186727286077766740252708607024043098286678211569668933628096755483807919556675233379095456838378978686706058250260813456509306955043948094219334713873118350524458472686524870582941159177819842944799500460478806090539303201670897196162013553994682599669167031732195677260790273044307280610716701489012404676113648291276231665011555929282272173988649694043121346134744700039329726062036880668581895132739112518493698702005813304742410023174004509519931857933067499104794435622537011197774886887970254811452112941389431310329226151741994167122576074030932141810283967886801342045908786177414267111849107264709823518275907361050536218760354411174503649935572545884033328811107681116150656764114573392832377008602630337931649286086828545152284747852180081327234707990890879641448784181358274960795079191185191101427726473515526888573353689227115850979758056242984358008120437398824084444462689893767342461116813059406565097373251273932776424081007438817423847472379456758151473040703149963601802914853548370460431564582217338533942873390544034680275726770125030089029533670146052503419357368398547023342477390882397551821552501486050781829856876673107039704824101951752050995519653001964291643509620334957534695816723685651134111711103309253080205231544237130931710659670855216253126004738474041875658259632632169723544271459238013858224758564358877364166439715409001674777079282911329951040374255979440879157167951254402682245270292917273820158526891533460362790055175449001071347897264840698538711789538276970332087237078465372185973103140333826831227518501715741319725099163261776740904973424178684874111381471122137977587635932969269363251919306386657663064542699128699643206049379912612997072312875668861035456819763536959028680711837371927989066528618744716710609230307506339996100484128421140152656470233377259801432942250211817058169811420238344435019186932850756244324967432002899667182676431251768535174857082606925195229611879245670349510391177103743340629914025545830125118262566219752182933502602873252620680394797919752284051945608648679034842287904406114117631632441616092282386714179379423344617286437295317990253897230951407024195826970392793006650189715776327429626907250165872371592908782758899865032586081508300606986729803993475952934421852778266000355169881229412384374256258916942410854698799542016461068036983009999970624131477036238415344262265950592658947050822878822835791709491709318295896583075852921833597539355489908500668098393785141235195812164692248274587921129102074454967239518101908915325410344148978336443288296404901639755729698794282783168792064658331657586757289849692963549533194051289792956567137190264910438513621955271854789334720539291755631751289385048508055496753917232029213596875920137852281540175925937466070543590920954688516173561484988629203145875067813781842391962581093282854226490863499662405667403616221589872128461828163485145553807029385075785738394516116975435850913772545123228683716820283467964267098722795447258563928367593836127384804144271734493034387220735047549213929473250284278001475004156177571577952834660150967631407608309327764995686934411025440239752585916663050616059307105885568728236689784721837585396860089954165033938837427581297482612909894564777428931702578348052859969280511283998100603187201013950275558562232835910922311085664881369146304608963487444221266031823135357463813933092336762231608860498418377373472585496812039328072222392033715566686302819220427643424848710484218024260698702753927350455245424115354572806071407705258641914609986288098346687119742816472728664475439038722205789968735290053705908871153025547588152112414474890807083380380793245349516922976948404191089745023878945154890556103618608991445242908350584318775170466025388244541749860703209181811603117128064029459844989159771637054606236358752469682938319803911343610205344145451892543885695004488012384906160353441278291855644831491372162572334785394544077253869954971925153918487878959880998870693117225056766166017192168501639723042448102109755407244200950544801179737633876746429203829256248433224564121747129911540654082356027892569837498612960142656038494163773790546476104355667499585861720964144799174844910795657786304480695035291122699804833446497507415222091522119485994354336091995129286389439095960257765485451423721631123062904352664332707368308797574543262835103386564882431942516805635721243884302740969059519803375312964753986886067675292220300132946199646446954324856680503505427945325740491019475624248035725172469902198850453585090177222604980387141822437968627059127011966993553410068094226076393078906858731162507137663663166570559632071322639381764586533232053007503558363639573784707175124465342449327315879360280305447344983498981255494028811359361293721828990526166082157145769285755084683646290302038863777364537681870516400045659859004261872038757220735368467940719662942365940870501458014551477282641936035869003599968543639511549466219911873249987629671086152587266242523701860663425615208164391403175237275577941338843800602966947979063729624306272577443898108582782589100067954144622328644086334939469968285886707819655964237047165819931478205476404732755874961267043479187537800176417980737682629131005225599517548622063730724573874720364358685977479382218994274109090749848258138621076032958433163339302146824282905733326629176772339740646206647091716387954833351014335373695218161140915175080480404982510346560904967855586863876329639881099356790394336519642643098784043657024205199702838647543240237312230878689031631441439845292668171223842613247678917964738537230698010537693592483515470029861936193816143499112014762097595777155079764601573537669599183088328077099041050793268696794833703934889948185473874564530293433245612128978875326445680824784635942432285871109777899670224709688588650662136408644684823121346248023962062456566298135975308065520533487525515635442593207474889133161702502714307711859839888649470777246304111732545439881662726171539203051678204378673349390209528050963864013405209112935533086983121213979401774779356686389779439698993014051509530311605744638406285989257958191663484794284201596146742497274104911280068554790405883672831091481882352775612918719659533527745595585596001288112226452129726821615398456548403351865470460214465952324233963829430913375992028651335460200627454212312772269824342609725383888513757743213375566244271483781463060889209326868036688140747991428116642126705704970854101068416432834720438192613742249381481266001856017841796902573200670006150262949307013126860921881824671822405116112952085442411592095992693438812008911365798603625901584586267067978702073863683631237268657718931596645645757601738231704976670856326050826565237559011212163041945746654471303194577720800736270571877034924519707777204908745197216137846908962042819067843779929621417370935902431244649051655694948405470738970942170279835823796395240109209613850283639349873661773850299288319076768859812235066988918213037049006109025086432027961868067919658999980464498060362176855258761835934643252853151259953002260175980635397309356736586357712628335838066124915734077543320373074680959152324157232875847374732596938095277699572063373385869951165669608816359830068843898979474386972183890532025785182734425653003582142111847827062940240236573458135240893734910255598154444921829515774937160448126606942555172631125322129996946654211482357992622810468089080940358585887628336111602400752074959408470095619034844572671190255599450393038651198709018185804661466041145760078879519855168407222548378283698671234372539952038738440916604457975429220380273794486571642620348636692608992050162742258866136769823741224589361181778767469825133618266811422414702540564935437867012577613510923254419132156029876648973678479827365313743675241934628564243710197792875764482704833914243320820765302153775331968825348314564012295849854487637453124795597841965637651723168886035190561001372230996243849246801888842293708258003266604661440276288654125689979890502249458502645525236690833796452137195677523325796471472874592943958860159198377512900105634478685518607355433965451438450091766525924866703851524435829593545743372398235241723558641262987309881170294159937122762452768237338575977087682320755877277738338814274244810606301339203447243541500693245321721735534115180819563606682475191705760117892121798514758019059370666467146757477462916827231079199277562605479682023063088874788890564491174202018405740717866850291559148923619752133585222531312789054392839664844332325285435731961000440155338049495988321449812044204593563982435813063506342303455321120142011587422302689193683857451933840219026239527879981808439800815100077261607531137064698578735529045589314878902619757629511813452563899527951373250792226117454495849776374004853320310766594888406822060336561967879121027208392486392764068685104839533110304578461188956721779372779166883433422708488361533587591392555426440468823367714932973431003381625463201899129704370425843046970801377596734946782127518908837402455760297239240782938446199821308002348203339304576336377546028995662808392136231815813480447855339008724796158748670413013152937117059055659921534443824524155459653446181579271018541366395910609077061834365222801722652859202028976009968598191690876788686547754331619518112630737503815904194250801642286234588870030836019582373000755890814563982214226759914272144211130905942028944892449357518431078006135547925277860006809719869504203099106720876315115968332905485695374234411197846276752428580020056533422445836609258559813078283587299466348466141558511964481571844913942338017615485646714976733875694362119831155366366844366762031216278316203211413369923953990586073152858647046559353808244406318587895784922733507723884038255402879383826687316286998113665385513278405428891833423584769375602371122343738063570136639479724733028038935918823842520087037527621938047584228921346077020404342656563836725718627606502237570660460914653308853550996510495966618008319759052501446736860340994911386147798069264002088365270236866063250472861751537671689043621255962306032174429801471921943819270610464319555754969893277205404009054825501669046646904671463293420512399409321396161594216337827580942982668410828749823660171487990362583854523338656285894184649697690405750018158138464630544393721561926301078987410423397921830492967334110702647700585539179755681979632434905244937393919966911876732126787126956146365947013366309127705966925608936836906447297081493246986499537755134481692924550361014678721306490198068167667283689669524809469160610122803294425334620464274393921868213934850069614418821719052109841728102783100520536385364143948346022183077540994339784775643503992935789649471176042750978242377336777263619055459543349691093568560819989492794055820281622534112623427347710615609823603673540582767683176096873107331969662926410299821565909027335499194825094905647408729279122775648737491726440010685862090281414609167071542974886837294602603120957187998846438060737848274550043664964049703657408825752729317833948442732442147652119065192437816180960648883330762270182197072480022678334241401984039340207716677244409027900746490192861717043780210270590587389234746111853513032851751318718352786547878212247950578296982502872373592786710941829136469692570471300278827304685950288756201698586032425015142749479209081671908700864796103531990860391774290703372524452710383693439575934650031211032898062138856253665555244010802598655035225364162270822652362904568437769228401532897137593214961559220673233552055507461011331669532364496525150128357946131484168611671924423585438191905916568051116726458984172484960265686506154291947177384665707598936664275106125791245919202989370814233174904640086996590965069180716348566975429366173982271545647858404325336022732674875416259414862973543861133775861934217544458066622665052844946309674530890266446657034635048067770745564647540066493800888124565230046529964911687164499132950476823159388835635727098552458161203525995996991067562945824340059677531213318452113840345528795027519486330110506322987642684388073121774055902562588712497319977137256267948238073631317011351402456214125809439479165797728057427871234030963747667413447976680131779926332500246755073851197336311243614204302253982022251348143177586001251287318440994549876683164847156461287328004008385512361404751557940454088455604971515197844981285214362194815920185127535481093729704185637822298734180555352991575578108497918027374774197250753877023668576161996929205418601942394011349447430433354548993272711388913465120553370250302579200599739378732825368630962320158928763994856144433943143232208001003668714089323371170408899532637328410054810796929882275181636230522629121181304842803572132812378223064949116613558864552878439186805514366133672089519466565671287941842215322991544445950758002046845464196310997648718297286820834678583658276593705388157205736023689111858666396356136910070272071302078928006663894144665577602221154552908223462118817757165296875066935883501482478039652035431351819656676716584630540545766912098526875857230173378750920879387464586881398913842127018094454392419050644093980863235366337434498078741419769220028960769874227418260181217437036252469674751226689742894486843988374742436582691718490051896055338892787071006534879855777496266539641989260081515922575362472816781659247353461751126291446622680148088460482642917171068286154162874788777455678986787948692776339924513013737739840215865121691115399709267734893762946163705840595561534305263092955767717537573867152900525721526679685091781813586122437494686766783809660709446955260507983880579222330601525962498703825858207250619984428397922001109298253988346726071831997684813604487015730345226167920615874581700797389780004697246046984812283676383856757992643328874755697638413708340349385466614143353582490031907561038660539553623906505239982279873937215247131691562278214019877730119504940168913356772244403692836999565898243390624410574167834763535042222633470927386466042854626755623968006453568921582534030744416417421325486667213241384233368889321061391501823130438591364822182223408062248344212192269762759923330673758230774417500333857334521050768873790557797400224179577164923278931142507158834163573751738984265820145225097441048690018146900730652726760931634716114024955889326531458475447743018426307027651208438312580382466780879358526759973167388982886963924972693117844691498670183554652111638285210431423065187708247251716355156135189533806648512876646735275813565546502734697740132235399621842727848677160810920003001141579569631590794543012932750391167930114257700653276957097548759652117957413006755738492298856194992066871651881073481055082657999951129460446307854069443293400783511479893625933953770039334434074653464183584648988700576769811209735188977423414945423026131634052392295835698683828276960331571330245874190734516667602344213063915633965526283577305610535233195929154520896789108089835280041727552695781284205487265077417634650001788779700264678973182137091384927858128819495290658696118470280195058423376261640016342384194395900824975116670960072974468765250604407103635381889735400740105005030929058059560653274629705442134861487325713746911320969956579266108411023826342815134830631020590813972238859726237023507703859662833332562142791189542189043186811865543785947465014975434928531865989415007455166247341909614169555941782399827712198502557900959036108741785157074561942896730626462153759233466294735768817763267805141812410737921800900536061807872588125460279675534251980362028062202235182020105517017127712344550013386936946791988963366494961636803177222714678286231613396490054934099995665119554673324486241063861057696945908482329709366237500980150684930731827837147507811359220685120201482852552342163498559943171163031044732998940745841341260175219883765509852187937614682081060555629806831940463976165840539581198580073761186089709936079081457424726372799645641590225951674719675675548579738380239505949195470383353740526700927863835351595575788143053534894739911895556392534334634372474844391417899775801380393397287227328945102805287480356994300981295621307003377015007177527240956000870873298008812701495763829852383196991583076578106177805800677115930067855525891123112261067404951337392146848447385076502423457190082121655291358794685208543451259284291787041314525455499403499904915868030835244896051756055999161865516306067057467651392746858209839779511998617626570497133290569636127987929974234724071421786277887391057394191694285357556545502447173938003866201951973506067002975822171218863035639829799565126229582572751134177717661624650105071025198499317489475976867828602557579888626958280027972267076634693131554548334814921803436044704369590486781541029885872540896246467671369095568501477785020036421851792575405490465999227843366704942023015310044400050731760139247096911878228465345854538582844257302668940300649876818963874513931706835429598129705218748905814323907711251962956750405916503531742408641389592444764265544097233556354317627224015551990221810203948981828266630200019771871127260267035108839153031918005173288526288608008599915365177973074153793686058459665659422277236504165837361813627687768284658679478791926590007330192208571479132408725083735775749872099231245864076698039669510031876564476218635122193065929674413924453829016797780592464265051772232888610128427851500381954201634744253548026992305230653787034946091262343767874354134398759332230212185827691529508936985895369286906626124685799276712946139274340990989664020117295444859739346504286943238223600117859679786136820909146290940410919917403314280398877246846193580794787355713743473415878894085798229041721794420371997973328898071944243661160695541645871061822432194983842809586539655613076628115121331333654970567908680474904344747760645305190298779562111077064995683792207081177662823447232415088731479126941473137608263633674001711414242598913540571436874561104710579249363004566488195299675332440555594218894334166726088816990233158868683323359819649114039851586469303794169173516337566231666581378393601924949963567903019820232116817928427624307978549576231483615724632902293303652286101167547974363858453690570792480885527477857248016710860882452014175298995501412660813851995484472126758863167807255466968176032434458443007287092526443131939520389419659492709516942263833433148480033266452914239044543962536205998378952885422724385204110201370229633956942191541426533772227615619839533569940970674365444790729784253668381898698129507156950584798342168219849360924569689937408070085655019797376301813641397737073629543856447634598645799177967197184579146612480817845873807041802836204666729721877457719144526319482664823656956879034671698337109410889927914250206060743984267046218513222582097458201189531843496150180448813646835412661560403535146840360704596158919185292812008966396683316070898789950729548223728479750859828525282554348284652359258356930351073400777402454439099533183271533256464614472228289758003103418528255717347450506050412247500016173588913994582580105095970855928062870639768285686044580388713735233222091307370780449506429809493098774543406426323918672162969503243511392149770412954882342531059832381038743903249960497699385094529490694708076827574637872958557001940236855873135527722504362664168226922457601152195421046384411657677182690610325894962721290260499755616002511167530331385227246253419869936818567297491573923565392015916677516446552922980689302639547927437905723234504074654008100776352224544784724334561478733264326346000592793274768580794874950901859769989604266376849372991790992248420739667757197952765896667479002807679741566240702988451362915301626227171255748138937177136508118326219992254181749219327999969284055154956739766534564903138462722467865621646389188282227303992668926842449868538423126043186085658416010427538514045758342173521822162366618114106213743846411584084514062445765843696046092996506329064999357935296770907368847875767846469615119629837685866626082125037819038114905579822817321879352861136115569964615356388113114250357215048284973241761644878113241533080920953956418237872090992528889461295519968585731168953913835160325558527574464449481981933665996816919061953872614233248889571536118500461711553298283257188454477443423140495598526942580115952463736699794633611086818161169382548790981516417950015165735467665099971463842711070665807866324888099945605837128035495766328691802165351277862400006773436864957008035771943741157642949087203062955156850748028059500088922787144794348197071113303644079355464762362557193607592508306505497800182813819999780176207241615033780702883143432373557213729087162855392311669673383678109229771504615504934287076635831639921665597390514193272874280958167500471248919504787381961782130850827719953221956311541949036235240590071524215896442745867329900202132636838691590242270900965248628871766020248541555163531101470004223421493957225692630472463140276329263895738626200038404425732197510839572201316298764683270702684539249522890422894102998107534859606212277430015781789396451670209268475503553863134956293030809964395598533133112341154495891735986350763854134058425428951779107749092999995827443973874884200713016505787450010481971215370214653290640254974724749220059896074858005073649282495510490951975093798531369284122863585192264885675961688533354006528842241466212069695243468695531919262310933968462496822466605452918362068729925697512384485270622498120048115764731682198449365234681793425559889545509256917405634174760840875085307838854028924281030162682716598236219829149797798267970975151094912304556193191856679751512966643363932723635082750141411312189321136798910870301200606247702439910866574585217549983755674803338673039757549090164205986791485101882213475149565405980365706111988460937310797286795584973634080890159627614001004389293895631953162788366129530078352981679876245652554788879180349023660509086784421667216246083474170559320060720977345580794455661246779983420406282459798107826098942828386068776164876656991817540736808335136968249070001382361321339228854705293592952437133677500507014977100099706267454744175632907137572739806456704613090585151233836976773234717354814563994518478271736450461002723369989205731730829794185802551795280066380153853656181805019541098869202999174707352708516598299664723159988082961622213688735992311208557366996185551852642551109050085604067440911480545396487409923662816915379487095719954518766597591517495310526329907745407145780352679544113161223265722615153258707600477009214234371136221581637437456920537717524596844020852487137191631777811443893207100224493148032341101767263790465905370038217463133976160067506531297323733766108214221454011186335050829988889137063789980083760095537808920424247500108994107953505803031420357180629008213876947057016426137293020445703483215220328267439917269788536192547467806357680772358395818317986061891719978813943840885630727712481429626246437538947976487839922603306023516194450168478914659064228429968546553345101391260250783799432776934672936484980383971929800129345631765666047064559784365270585591998248058616334573937798497615026774342108416264287871140281535978213709992043499579095370505809341774769575703764150853093774431272568407805657470412756339951038712559678437188778078997447762850578133038947513579481431139103375072255693875507775514802570060789034586793207823019879403991065394538237394599084064021420414021545362824120695738238646556067763197302991689282907496068816044377791358960375523851199189225864536765079624708317765284053101897676846498433043260629643382664779245067728358519715511083159521933376252643196386150210190984008913877028053677464089925470478328887732402466585587593874073820703058367153374906619775544773600588969959845606419322443718480539396099619761528008056893452859706579171629595668848966867329836745306398922015489325697650118220622190175640233046738911335381118121239481278872003746189240480642291005128985306146676482915986922288506415232417255755152149855961950325518685433353587973692198634692650532862849238097526856073845511392854675922184799334296665894397344691584699784541250966073821786698826826848891668699505961181191276432122580204450346593371747993788490833664188014547610535253623789560214249240479521568842467153585369474188236383308882585425319731778577405994451255929781472889664890813271473125356034914735285940951427983705671981716110671280039923692301296707137977046715429296251081241632874831771386444819599734805050432583445426844890110086625716088034094302890607256314359416641560693391858081344626119522696682215154482686006468694533694717298931759728802252858149548750892535635434268777470511183016113879921267536436675582718141101019730901169482081428865590312162400614052233300586363522249010861802415287590651509322785619277891974522883507488360847664716609434045871203579737888974413403633530155845652885730250291299159400991416588592119558587508058809246942815673791331089608558160652290014178161441815836488285995493787323125206263240633754368860465234282604558333556523338217357649206647412879895063621369141079724088344988655087594470648799493214806998932527909324963837365063500797828536712505835232508202212702388093175437078113951321763278380350672220578430221277049349915747746837431802809776568555845074731250735494824313131820152021185669524018648401214658645440261252193776896689618740926430242970944890741551695232238361379484148825528302908096360560592104014231557581667531634582383413004590135768375879004076071264065863880469674497694335383546670658788541923473609037801688552085449436580584762629213552471300454691042279577152775637549080302090553309244928391862861505377359839093416949756855985650267326736104990357489592316789076452179136545922494587242525796558119720856758729652139799487914553297288875577806287195156937216427532540376105358671413767408915918588402912333127200693237078767595245992980091584477800645435935510578509927541903420059830991689631856965560676901366789880667616968745037442699699301515891691940468656056423785644190160887912700065970974906086019060239054544550796586091520031979761039060626022494255982197870769585601703935867494353299599625343504193282453527113483200157037342779277331279346976743775341605438714946178644754060872843330943476217577934507946021133199019366203386517568616717000542945695503904985804974047256012896272076378980318093409362833744942189941573766952483983652298435811669097071233664193888877675495961047019187338441810517498148713264255003444777790240806444688406080200083260124286608006203914030303270364130523865046202214992487263775959228866300488403095659841562884124266389699279928328521217718897486554089307537448411024529808871857795413141826275027052669676011888649958280227519544347203866845000894797518004500101110389731486221186660701912544828677405092550264779103361372063835867051786500173735729594841932996573931015443158569681189544154202718270119555575571021452246390085957040843030798273760198709458765938630427222652161619129415359470552456535231660020179358105445127057165383124185854207568532329164094394103289981747291677299490253939997911405840946251872366617375536997637659599758405252530965628255302656283237724599774008546456494007705594412163660381144695792397561114968083647694829147761826768901243244710103632186096124988462699349894668196216399568280478266505016920371746034931875160841684952054396965175747480094528124979373547317962445136320949312613078400172206006022233411686193260295151073868932584890030066618211179436281271860789739240468923754870623884113755377465547368143201338090831213848733323410547387674957991544383419734949584213423732724911905961708921388191468446367452493655105007134782680429310205212141271084459775095996475008070008995571200512936542536200686298191629260729951021366024362025346696531830103470041435093627608811947373242228233292955836690391186725402001198340587244596212722330939288418546962204425955021602840929462241579503188804976395054076414955645869269237615789307016439300768558506789800235716907866883102854440232443356652971845872787727428760167926997463585071281482605118728401782152951341711186052357513690518631548599270364217341682747417141580231704101965373160351526217119347251865801079998821917538080446794209952036435459828356346015587338891907360602679970525956564434002966979173650636781099250522027598357526726678544000975155745950565148061429511083817055318584827137625198566074916294330506589042602346557158809214725946695889144222038008340315525814719170093618480200229595511096224292957780142153959496294094976238386555561365271798354313158753676057927218457073811479077964877724495991428317635065174400198050924374681827792124190581205338142546667572611332800257795414061378108099316590700217600202564591553669325740308464953388723105825348715144906877181246880220483367926979958991464147164912698825527783724094841701992567664722195091653085543107656504668093938696134934379875581373523437596726547578172377591797814930342040670063453162618750091052132469452828775462313916669049874620980561816817395271797198364721236565313635305285862547692393809291025833203882325185794712425282047931347391316556653727636334756606442743313706164368951156072595247468449778821266657121848632820027435183571238704839958580124091375433630866081665510329313532436464664581206475043967334260103336209754962263787438829318262756220492995920756149671440628941341886800991583368014646581211455047642710914538277011632550641326083888704404717863721770452225692253781090476904662064825874870597465811923677956958713354163041243054865902068861274393519167245871792605065352709366183473205110203384872842938456208945977612488052072978039466856216460659362594919793277791351359369791281667724604069040262812434273192319351669326241498758977711419115347420611679921638336789781923311706426146844313308392058552840581917775562303367525741609872322754903974903164219698786691500042303436880122411563328687045142439136930625206781611759271456152774760611712106843028876478159097277069223185514125894088117180788117029385185771121720387353041495510078270355505895487340367626947868403072153272750874897758329464523071105683576322407975891209795319233094394044135684976189126083401077924411190405262740066327405949222413966822082463942682251945795868778482906186345734714039506037357683530274983239961796620868562260669579841858774130497150106017872755109637483867502940813738661001431733631923733798971751497869483372286890705004365955376584073628295481927268331361470982224520635455620737173053456695222136410969087800331961366047529644541630360801186352161291666568244926581251389764073285679388119105790941263009033826508952717857720522677888549793701642468735496092971581107266658629739972049004640460697287378101540791356132476000107259123096504091159042209255167045131068539618353467991626808028729255002924008253159483190114763780286475701566014919168117698612341871190807328787973986630672111922858886980890190816015923338360510056110392038775224514247160820379873095295804520421624690108502115363119786961595526395644789058084621283690953742844135071978631254643522902134200422013902271841733999575251979017461269253908449720570001804516782318127931162602573242309903533926785266967488067632840176456725588242424370626248729042942209590554887173960644669778810864102144660634750067203951711209023846183827283427351658000963585792158055181977578285370963936994301796971758829758265527131289724694625195104494400799419963302235562858809899563439701674333890977972452383420568887602656226498960952513030957487667456498546055135359790071005093350391965239863821144502055458410998344343728769830357999526062092829777944734121120609875098993303765340491670502271594970859037079450679643565825002982685712065284924391008543902244103026401232336064617860556377073998220205651766640764803154324981873440405233375987900948553818625746207418424811624888864950869533604247064690774690006461962624858116133183963048037662116303583975396699163450513170386169185966697752500661058893682067873431479651306377549670022104540704639511522477600947743420305345479765914937851095218013533864564886653493688706310466809982453954147088534958974508076308220234144961739418864657353895011229953095145931499245137033299619877827052677165174760588829550194483075855505083891998933271720756277265139150197359753231982444765438379487120257536155296570933317331758274442234598295198589571385290828315974733416825581308270013587912519553900211128848939781948752525360938531344464780879511828234585190082882330950704697091699966531770238380100293300591989494788658228384964003017230854444996514467391658877496216115208701103509636668535278002638128602844231556270482154053150544011050485331051908030240884010750891999884662091729980472943504542100009119732164225352967392322597414732678198018258988268521697964713330474082841427860077043879461315447198228423199677640533489069164503704980396900142384111848393910542929965943138113309981490692868685430440217694744038620971149617491525476910690068841235304537915727681618558154420615064261666163098435439496989910678258272031802678121327909845595032606609574043699469767388680071549165610615058072783378806071692895489587865122728819918664100632370658385486414781031866822477105745804638085510189573249406530605803737418055426476104812383714683798012644784419651556985541979499784675677887437279766324105584507496988765734619544085125142785877248599206777664597323012515531276341875836326546310759187561996744105902381525134189548203700567793299706636159221980502081069533732024100095786082545984149936314903053234933654034219964837192113028249234285604841491601990178103639721475709284864200847572716917954300364826205486945622858113929894134621152018130031218311474856821940822791189941966731493875954527789386808096984956091803343383263462654263214178174661413494470104887401397813171822408070191383494437110257519167288598244017623638352964235497149685189125833099259558731504808873593454990067906345877980233932240937102463573225688225549876464558448254015575380436228077938969351207440729897760876693991952228405635876137751108308030195740059243308172158080232910647552606571241490559116070282828179259294246796543608840312671026375388830087038852534425044014806278822548758850377127480420735125755819985272322311439052199286613828869468794866290418760294015851859054290987483818629826225216246667167769519918226954932100204735495803360809798214047045508799830032647002366959395200773921293096063037271714451754783284252022545259702845428129872184039405648906885757137138748038824238853091538930418443324141434806948288129099898804739959762952415650686085268964718566135108172743175322581528170481700915106836552535074343724744763015982168112874589965874284703282075382316734557078469609488479781138772035758925528398775490384260535868459657543329011372499155306071589801240705997407427847566350269942580776604193348624452541470301490314967551805296516426294054870593141056445546508493618907846444368111186059018456745716042902796686311515045079006091333126511310105719974386816015723349459164532962071038379288407120887752644931860047470385557930074640490774895742723809049439938961202414488227664598984280686035106888928211899822425468170026778794057966429093914049236278349758623452608482118740212656597419425275410722703352315330253997316814200002475594616484940072056347052728449712250171195343458121334569097714598389176048281181438211225089302225646576821560759049953987836010077790492041254997670887467185155050756334174408061092095674096451507257241354750265345002090595888682170736322822064915545944840323299003405309589390710956623014042948377044891504005177970819210223569832597758997982062700351190591481296613251827928619338396641170830301865610441923295926195488466345261037534386503086023919799083449600594712580160267088563766488923092254527412976646731252833101976064105054604199165260409901197560034049416918205017408694384359721327487554652602866715991673953672614004067721869814242669843206582429142706145878088073487129496069032761672787633149709145900093202484805224242073317681136462994118386127297561898372385985670850686951888715508280911601751052158164236176114913557660498914439025269443208032159941297927155618485797230730511778520596491764530341797957337381437440760865624648882130365642956355975138157652272925396023816088288769997785152664141699213752948231226947246870467771744722491868923728362885606008585999711321111525082232689111802951239983588510241885511870342176209975533845789812021035421600643742182646980271887590664478340283129477560203287318297010514212719983371722705676773983825381310845055044021476286550080575374467499391465597237793958651116200756639918623982152838956068549545228876758852134182047804516923146087704052900569860739370108703346994205814368045057070404645302274530988877125261656553394134002682457989080830342674711448196415088114992705337745786617845178013012100047932009250654301221826175877513689681071689243083493573233877791775236816497877040071917272438363156852861103819361228861498660465560593841619245216757016634811806174726857804805910139150248381521267778253926310020750277653155977574898770033399097623304908848952558397252316773791799501780032823654959890037689984921564001438169326877497544216191533795875506328741139601559141214666043636272591011814489815065674345785091309489174313338022427222243863329283155908314172559308328723599914477990725932605867892768418129111450573891515153121271574922623910846259771935931678839744875431842262173498830877625445368913684647515049480092772461759241960344060248319383948328088958157678712772739582793048047678148668666915449286311504461536520265745241244244626990341362039198539709798374828914378979801824476261102490131378493095350650222184088444755443156242944773228032571720392784499317520327972699563308770713733994721511390149338971661242935421391831351015480204794527884326006781315857153017561797185346782610624746295712985293208744358444168022188967505992411848806653569379884986029417833499369058217571483395949830342451017146418347917059898222921115643761572011806661523904114959764703290279576351638923613535656146886934494055026571764455921663627813853741064728277936455279278925738296786426749292139067698889124279182848550863825748108039907609288005054901123401300538961125548992197089736989763297137132922978937543906685050684974023306556719990395999141495982288886753834540692317470664456914485127398204888891521391534644447744673075920840556844973148463881603121599665527625283096723545010179970394698633603168748895662438698831303084137862937517382934072146578243218529312560792378765141630810166606947108893307639984391483371396053300399693848464245853157885526645101169546883840556422078797921692631003460923471327098826837210236659216068765393457189894776802195852047022392398460834960202361961992134618487481352387209147398690983220724571305502953470631404226262200850915351340786835410865132511115072722802271118963656568120553561935298603566347670988528846625332439440572069346799912174952889554383664399129983843466029335177877788507109463707463437287101243635799307702771089349213418507237496141976644205779351068025874601916274510592192619300383726342494484870205151978213877404131186889106993116550077119606285980558836241548228227721212284820320608995152398802115589927472975772998227786398310455536189667619782648064024741972124824714842422737472652929966327139125519902407299025807589709419927094466869255085666435282076780265630106632417603798302407190984320914548631765125473024563975775196507381856629033424367555380395072752282326020936321086629379732907774249284971538765340872361301123807043592843070057614698014812365689926699551222373757456979961485931199791476434521474373751529296322409649104880138793227625464013358153982920765501561941850032192723958839990940399694881395652211612332030593419131533685897781915253777788138767895539714106259550384584228114947866559748693064845734641138604766254712387118107851091738389396843282153539784734696037197609565104798671240488380968263370238773829796021752349068735198516794887657240897562154606771866845101494142039287852609930428463276373948525113364754493169840757908436629894728624225448274422634273448917716807383591431183802734613602329397766193597535840943830179762587898858088300277238108575809953799933904402104851893301518970736910271605958853678655795966409642243857378389877796121515282277838801766486218018198895923272135374741730925886760687700214274077300365749261067276521517324734647646684931241576548553678779044352104691975942971372612334933224693082077654880901166263370869488912583736468889378980681510543196071675518218645633814831081689621305950771364963730360923690460042924618968381835327710421564728412961849693157981332813420594822508362753344705549007535925412666155408143774265182772054732113690877396761446930675755354229659938443617212159834414991839308503770678848681106210028675939876599847998696700421457589659174178199363959074185657464181524275801182869061220846083648609987030885700039265152859904922379916445531421765560057415270271261040315517338029151313756325718805406710839903348925982447037198825872097334515331736392898952880370634098961713328383710747837173375673797468909376706940142499794504453126930867465714965501863766349686554755159114099020015304286864438920982263733951474397367604352701306477461713953911690091591792624976220243444354678366133328598308654920461846915746695202596957139674260698551669625789642962630937578341982821308367058274766376999269237855584418077096997241240958282781747675880923583004792326109636093161044218994783193146385175101728960578128675629542046892796457461186840591954356047759408031455792505755537155580122162382766979384725253003857292799790254107057790218688181304447115285028479602155904640799465703798963522505524740190021502614923210331903629319049408279333261707423135049266905622882110994931491019019779117772180341861682352142736285741597512308792345525947249419174820931094308845277000732552463420026437960690017005979885539820769365889672847643930621885678061336609933999256194783186747354296046268910794618911045512822494239522470153092369635086013589831760864551508341390443548253451230415364320757033516408367811697837671295338806017643949267437712266273371436133281296899383245168350310212748708643597626850278317842152562596622412571861869885773141901499934725353756312371250558864451254676662773956396727506922782761914123942130785588044019837457029693475260799680689343984631446855385972929589945447479977108568475031662305905321821910784134581572928634409762702732704324214209774464828191496282113529448395874025407034978157032891162803334816179040006192162381820481621173842031966906022560480569399555336545081489074389600324049541650355523519053103565285233592793852159080253047221706581717360429505543855401495776732963853699204655094127475326311016586375419743313871393587531223566265171497701203003458511752648853160593463783758248046054525099627993830985318355220415383408435071677411647944235287789863501840626298116828509037682898200603738865290666145334266399315993316910968922178994131485851119976984592054125502438525421498671448054708776288566599030927456486588849662650646063822743970505960757430570354308167734940040632704999013941272542789539239717579268730548686375820457091851385839173434310849849763564591674566794832858840413700351575919956708951512420094533903293272350183199111615240953492421123254061482632040538544984052001137208967691791163219694960976794634297321987545943975841594476331575977877009665854781270632438961439419109000262012607739368569223558675684303129658660869668360864190893034986451025918963426428515847617508088337215093827570431050285668118787709322668711829344083775655056778464965012347087111559183042699107515287355826365067682087287541011442612347071403400427299427378125774534677578848875332575412525453582926611437554217514507087417521858484571069505415545889954576502531871119508861668364724086616396275133256549063132913265652204465877447434427614325604583020849366080143634105480330374683898688973626604168891301184900465214916900900798971956603416022545515423007350082646148523706917974168588171181851013154480367382939298427124969363386034307478555862385641245594451228412455358073528416326918629301985655416441621995805494010882889192700330852978019059850960804378501299984465928134270253694818578173867727834067281857017019973032964686289492282510798647870718533374557129926270856063374457305254193490054693243468831932482436302924027430762467681686781289864106929099547482949985760403917597383910747867673003910143332721038229365598385716728930846975698535867484245824614302664723808521106572230400597298077806271366079142558191936535452689119902454313655489358539501282136598502425227738980985626527565013597434488783431753719992503387412108309500677121159905150068689181266870007934868822977581219223092175293356697734500492097105328479827038463006049476857329918507857503474369926427550733410030675226326726673179607137872757607533861567146561372177302289956175282170536692397696172800158229787182564840941474833941681817174266724845932686154625745314020972499975302584557591314054278624823212470408132857063063277698100895232817503007628363460087224759809973069376499816725642014759560368660798245673992317746768843140840044916699035493106394303326824343322784509369809239750503846696567449784657140832954519688497460604449726466388686244209801818935390274660801918087802802590515358274089339061047612341394776642057082615833743906018063024364545101004055094641781159706294531106684060653061707482304634481672568304325690687560119542407235833107640972142151092668427820764458382160990121821277917656197911274763324977739053378630851550706336328614887145784364875814320832220056641197777154209920822382441823734850229275560390773469597470112334823318938666761749368392710900354345639864975764523367765902156578284613725494082957135523314433577786691315704248142010651507769570943619072361644689858441112799425444166565223412034868184757497656719197762867871874474104905601954606524474605988610448577616519216876963155978213435591325973274095715045473542606088928207250905480358228271676026698390363434516280516313459910488338831568911453752515572930980547340102025739342205857551478137125538782658655708391944550164925873235393003650484150404584298141239324829045180554591224248144234968930905225071965276479669990877036084259778324094811888296445227667820414273264479840859018267718569780923343068107043617005963383705274766745721144815502557542912262467093736951770473982219609988351692937459995253557032668441291698155032225330590204155462927976309560303413841591268354059284295074438890575858102048170009689532373760664316228105509061273199199321329668764721131396328755500513413419471086879329156128845947051112746109943066060225378718829110538979883384045825666289319142143895904851408845463284622620842862567246579291162558348238203032342702150016440914221519035772079340416267265827100670254118398554266007116039644692189930856403580934034268117411013871911922569020528646475562797511729815802156256894830968247667231340563204376119383112877995475770290630922657169738013790589026710084741679709464953863434170467970905860566725412960246945694536871163219294631279177406220327036212209048433358217780739393161052361427672941139628042747933014654568586460719240589633367727762419192102506597210910724508601013395867066296978736078088395752805879917505644603796223692379140469986864045617098007486493281511132947926765516770800634918565997362178772215684590943003698536569024945236534712503945163251512692264392490842605384107659462009554069668688068786633662503108908774270150360195182417957246973372041764503637755425106479430528804893924721152730420728145832031968794607164079661892204210268978553140178723038253220840185821033274537909857013600537987400854280376645297963914747162666639543179361056565442452234162183849650607554361438278541150784281528397550646681850905426308673026177088111880971385264419524334539035624603785603790880930546676538317358947374523632007207942387874927307765454244718356790767662686040355369375200812149519745925088163064317326361415719961027096708197052101107381298228559170401819686993548743836955764188576600976016498312617994866225629053793078321810778861854191674936750611069312465886585112723725877043763575052921067925040580923388211108909392340091974900145783805434640105334963221721394837022769142930363462494918987939278562252706544320126690938034672368538464685719869944063521718657718267517425407623363506344308559386445248426525327410962204967799983548821420937631596759671722337389440025566157240652470114629446974089517863263583031338039596405411897748508143638078870560390391327491759177832866072807215453562396968386679348311737560869242585778665832091514115970500758071592234278432352327522728666962329162435195135467700835326449522026652164469567023758551027412563231185225331964674896086961244557259196190823752940540263811797020718704130151347078722928863106156047977421685760637336717458055224039467789834121594530602718687589620075740360698832496508376378115040674406078537471512558456420667214550291164843660618113381963819932517938075828597177666432858214674034436817671179852815079266797313070610948160602110769178023666321290881538743771802230216880332589087569726858792458640318176093867570976249315699344288850660938724849937384959258276269239376881606947807929504145741663121301685137224306054570879765158440153012352991700637907474393475730673600197581269488106731389238387958743717791736912789520419621575446518286706056583230272632669610646778485978849240447538062857388170270496731013205962415301673124415315350873241171306987034521451606557244378995220644331270408032410434153392863540843898490577905853383199301662477109210762574704175457513790910025934997181981465617906174424260676302156716435007946414305396561796615475665193967625130831837789452152901641727673360909303979357541738140492560276425416033975696342769036498998587565716332506705920149688312305683134601740661093256642221596963436141449556084764641072635445364763718100433490294720491416512303367403447586414355974564945895862879099521973439799872971702408939735303226642478862155733411097614307570029404185532391166281025712827588941668587893708883820734472274028238825720303226851225689942782649893817600237577303037797903960625950798649932732187534915234436195156549967137304209784333769121206432795117106630299700547115817950202140855565697114277818569788485166170221590275702948108530017182483906511693199429746579126610250432509349216661973645183793161532766133662978568591011222342904054951110882239296929959536227701972472868674357792576179706043515231545220533193671343472320606414453631142336569930464686415576221452161365380866720348626171508522391879535055503054936533254206523859257861808132080689507281075986540991426135244417134189445398555436460296519620114775554617513059386824087427139200100334277024889874262154568797182629821222131258536794110126986323996434625305197331497964053552576880468219180319478586840958996488166729593415311766241807914537869094610763369513587392246640007052927717401558668422462684130340112082707371793085212495678589846565402154019236280252133953517132879395462844077973389544149775848885926700531602414358826283916926986417089751460172442418045994982438567058911671973448549139712213084893987781862180433887021276733162718079954214408405962875959053191815218010036311334701111889603282133597978397909577689348365202989439199663165740216255055392265172639498533805763286995511374221974800274832932725835501724195805140837259438809621430543456105405501126795450484506363209582046315767689454058497526479292499611562168312864010230815929738710225297064898143528663974059144676902578260222426834376126266110263707369420752514229883854667403695914222092820094941931092138351169672798974590535131726196380830987527100422601442908729376694968476163382874501652466876699543267056697073556727535521084913048356737978095144253139910807114205728220584024677794171407178100923633197691559351719185565246755256653066180887657114359439053623800705416475273369157380509698137972403059311738848498517651327298942856402396104987094349407536400270380280757286998615107593883250866076468501292286532745981420853806855817626798824079002824661295344658080172216366847942148922061939107721809800422808184318818416957968479277640977702763373930472898246189715909467265469603099350145324187527067980638698112959117888030282229962999984327451244268455749398759557451511751327664429466926693521181185474861607415608409927663714083618009556436202979509366645066259293306948564725832336567308968621233881308424154501099751796381345682307298151345962153472919648286498335008500337512775799160342459640632463542575356081312806516116098242092666615651470802360679676682356308325615563642654956986959621220974022423276790340325111181420341454226659984440707498566959392594739922201119797300967316563199908258503267452121756757752697982161354779417508871827477496491505652725836671372984744353355402379629048365497802675117520169231153131429598255334526003477739544033108415681757567241173066762488186961801509239962487588283735689935102681561398617662912036141678622454947988775922233806347350275863859188471373740127279251657616941175849063270675851130422807423668906010736289891787994778319795579982692698210211184362745275323242947573619888215728296487907393810264853305638005670704309973195309942880539321153282064058115252315723052401940769264888056989588475914039163024942809657700295469515369387342685484701213664988537444574304972644563108756368480896600814875694746065130455356072164853380931976690740638721967707312849697746687733085824991415852798448442829979984337977548498463140276429458845443133495797280769817685112178369652033576508264794008153475271922650325445451535798239276482063182067159203653257733941868712222890817567353957047575819141994262688495493590838411823209657616634233317755563272386654467492635031673299196657024405978746239143868902306855555854124405964603307435597384249660620589548028313688126759297274765519185399534108137094077962147619650900208156821886344549374820600304743738702078270279157522028784289203038667612389025819398293870291082316236290814500192462154116552880264183603412285717857766514224026318435007887901203292654351138736469997129715343934314762377750651403939053506475132542203058861189086019729014466432983168977551236441586392172408257156271258270463268948504172893157213496561404699701865089005446151681842247611250147209787203625440007682327420710126677625291781048027625837093844753597381659882145812333069914112434861298784330458082957316895846543815309288010320129824061543451320424107001801451984119632212840317105219938631756524425913892092459708127345842822958778055707026668524794974448033261124958817067739384633123122145412220574871442179252103022721110604786414107698636251855242330018005851743141659304112589410517326243465771123105226779032594828401045270101051363331846953955749351185780151170965596012612736382827437838910677874952587718687281884228924603161291412629768826401847409521031112536849891034714268115758911546009144871026600388396702953025402280471366413817318395320744653598313405907043019107304106113719595540226136440032987167962511915423396769141662570201203938984980049048772880916979770178435158549233838953205652480073496415059257266170547191394324418147187948221622308388047779997665823768650623497132746563636569705021681854414092128931265557733797500282545687569898107001215613592165283299385292922062183681184912363318475246435144470557566346421501161037554259506640973795909090067275103075389598962025451523756739244396066521620330277239058006622488543997968007191897313625364886280925508369892197680299041854513544308733424484284942571780519931593512934469248829681131317398606324371424040825946188295202740508829987067263960778663255155239367975894067663772067544995401011501453795040058273721061476094846886050043472086607073558207408366812403682905756816932769380602641616709665280526496735258627315231162113972512646526743179896840080036861144027276656411193043761298879500718304747866027457943425997930867442606806025365374954399926083972998073004687516986986636344335321486975233113622415435685872856584607970054932091587962549613404846379322510118672456562186268789329646402956682024507808381099933833909118719086583471054386960915514721127114930929127213390350907050626885568807657833104417738593529549667741408879283688516572766970244507855537394825017208572177442247067199033152498038870593088326532099879392195493999559407887246930937659948674337685403909263005682567895497692768693564783282537428234584753021867596055597425416805275823361561703777473428289284185593651654386874739125495329929760983610929079683911791029441203154753210990079320502054246337692126153641525796193978533901497001708742859820715491575960923192772205192066869998678788673169568969829655366063039929734031799229337272988264818442605644746891745196867763109195769691055062160866535208331463532133787338417548108949819591543857129378927975625952998153352385640399431037973143851205835271052118030055222299277806437784172943132350109103070909270457570785091340371723889039630357203183960924320778050782429769291304291973201011987766396100180546664409792673345115929997016535186441526907695206224994931881022866700329983510091818479043983666954817306495404905902766146440869981066367532678381510299561972171761462551204198711342697314241789733218463534744147199559950075362325550232920470465516477286286546789848308129025715901730836029458788957689862489879625137661662999755081527196100971473899439860881570086238375715385682775618712108015168285486079086656571371347120890699531266780400483735780177409569604012558945033464870743462899217893236446245289118048946483855878324821573066884812901679976124228691163706810790602176578524954987034190371818442889896919507461695726259293194969775029024634271666560195839508013047239895041617060728542537592203480982673216555442805244585772583723338584966488258220247577774457189122224868137411482462621438696041281360198926623198132963683127744753509091406577681612380617908887086033611350630268439149152744682981750420802871201666387265950933468086868170701152091690407965600216529871838466252832761569836490480195103578354748070900651970031515772977659917886632383628444961691046840361411633068839182827760027385856393040695949329834480088723641234140523422240835759839246796004234083434790149726110459557745586354830696565006377683639136868995222539992247196197051873013697752137910569209937920489058116291003065863842871301975189383036084302334488764902423194818216314435631386337124221364678764094673595889235974072427633028866131882444351223978538953057057117098293489667798451479069239436373820452899206371274442150377567887780856225521907731838493615368082694771906735264131204975163637036886418676285736503402617907542217883842850669803047446807468054851982598758292651269542141061112993045057450362403575950135440892863014880303320393630003394283827014132262704448451992843593806928427811651708186269914350804571758376197806461442938125267609474312137263509478540559921333482100463163252363285417091667237232428325138754145531981258462388043540734503782604124458356957638628519709116817138530525258754987887594071436763965072091933575762124399222109814519825566605010282777134760845082706643646403383351032524955850104052543911767127320559314305864360293060368584755812619182300110162954902809002246863541085816461920388539101802726947904873865840541076714491104440086198666565082130801660515593971056707106417831593944400136603219369918569222372004322993574288692764062789473379058081112456715889599232755320356059355573267719133848153981924205803454529276144244647032111694767943968969140297760343980232258510282818705782878171794405371275468351452802351489171459037109980180251266914894063156505566506333531684126835079459727631061363208947059207772544682393762905270713127002370139792783447557351224203435365833648122064305051165354952577778596025148763637354529828566013973772887680469270776234630269390839111376953250514561943088265732998636495645636707927699661179320665965945995968906222145720955614908871413848915624024747067614903334599345683486210347226893676110725024627810411745707155739426130983587339562320412843456319808912184989589278486715436606500712771010050967011807217269527615608766475633097629612906441552311127857007976918763664492864287929562300900852754095993046344020899465202372234417364515235976052905093182085930646860947815470874800761920745183065100069282052737815419187481585524406135198165780920894717998145248615317281471900575760245379045318346021097056715690915680035579820531682968912181583692439945979828822417427738577183597455940273727872206982845464312929447202854650903101638393416720228336244540103930190121976554663212388578909745528357766930755519140948013475856076264158566956476210162735292789862929768388285530793677692793413053820636816620600489385615777279487291047417012754303179953301333139641130285590757543756376479148488405978646031771585643047668521923203978694912534917569237268484209891600635399293666493783162532045028887451988410369208213870552741620502873724448351216420102848021844129859885739791920209559227147331181902772799986648951238497483942111966127606833099482794352933719895049734151160803873943994780927994379378421465167242848430264598511624464462148091569814235097167006531637816815367351215618151886084292576364804957073168103071758122952629738141702301724415864941547855174781736308711376609613198208383499925195486405536446255937067084101803146910285387676311651649879520371385261290964333174927085130075444254248218437039641765180251681154443294455215841028405905550183509930137281288459012161817452146382675986369358022227138623718307132817158001929617759809379460209164605910675204575056924822729024517203296142959190396028317641803392631116106253802202996387406969689122127088032783767037420732109146576741129834485534465007823761802955156380757268367544612018376064563432942870871234442885565319315988447393010116409956521369405105973053620248250666121822424046265253595894472294009182452772143851209618305955725280125302450517513591866150189050679357713042464799098506037417755623096502370528484187695967136834223554829651988758547209986203874118245353900648072282884993016701693599272616355671374715715695227972118395024686597468100286732011738130571380479456472360860043473347112927462263869680375788091619943967043872163857821314002681163000591598992567812465880923708445702702002167207136139638584505972301309470163376717468987353614227187584633855737335155615623156208501389121450702433176437385992398069966861139304949058233416838696026273136855218810148613379386302667749999095986094417194639885511948637560570118249993485694428181097942962719594230257464284816396527648826032505289491539789188727912762769017387349677047687638178174611765165107747871886560779278222873578769007158276921588501934745064895585752359612599260990239053003442509154227989202228722007409431174898244447624281872173778916725347867805501743977757765033003413558305572130743201650645334319937539877999235079273159839106372623450799925029588229530663150405157752827473278115812395194848317378548981431001455915881878782774606021795787561230688889496533865985440589952600274415322932628235540264532898658215995655833333544709700699174015557765979095490265842840825540784134046568257981638582303489773814964752952432067925274982099135556359200067749076008476986434889419146967755922308009678957912678697853243625637505967625901246996183141936450078859749402953600842880850809265214683776470063214500404831826211839689767696604972319073904548295422374149480736788916008223057670379460597071860618862086604804385329144003140783393654252500221384451739971170424822895083117348022638318431928439046288219850684391682739208102350275678770497112100038647085008223891964126898221174732876019112656995026244671215547945240037562124225986649729221560347479202788241313684053198280990845302680812629990558217631988728608222790291937672499176273450810444413455204804135015890842908795393386974059087062202835465804268043094784850981875305996330794144154908821144870387362841599924151433661066998293897223965667069274060332563083569054855985834751649888982251052574693435643894425427951705893429169280995529646732010530602505185149481294336682641416111108200444236679884536483706407851864467473847757272911528990162890791641374248218549787088314133286640746617397652847742510578506160812331192811003100667706880359834314025770240032537352606593684859957593861472383465606904315864515751350102571343460298088565813681545489357156148002287881329689596841112763873997819188239789632380636646120033412681626984753523554436419217034995480321314098595816641330300123080494575102774692482336943934529600152922703812610028822129968662020920010975084382497550472553875637124683713464392537459610231322644187482828335716523413427901146480033490012822772174268713631912833531754076658916910191412351421570025416947758185992225921630995315290623328112736952778175853229475694159785133796444163740829165719758451241569225275004852436568837095636723640604446231246300887660043371696461775692195573485947723710282141658997372348997622912241128369802941935723973651751857043793276221440762046845029867276491573718344793797522320214529146953441788084476686541174105631972020833934465268565710392260373389681103552168742226422007410722125777873913634329630827476442625029091701567609518611665567642831875368126544015429778119375146735086793088602594291919917792750040435051879859696632726853747421975551820371126927522970687517930169613668927373584991237966375576773831410021087681418061124019950359803629973724077593058246540707130222528315052039350940262164635808243295189507390281374718780130490021098202892528217483538803721825248835508678553493662096813490589595273619617893526460803133805236163543749453331004924093392543150789311328988651609911442217111293282349392282642812150783031808180557664036839688723612564061489079940257800356845700637989724155726713308044132949107343004639533657074477037993111463053908950668739315460612335103355556672821223516017336349767296062598234782204950765542073635342201675313420211506399726420764960949031307649996189185249625683024842032219524710248581497521667356691645889443614692557646641204426801653281693860865073113450947594661815416927063874831746481917610131465333038470746984645614399258859250540948509058113394064468268940247616520676593379263313285901912037346531163697973894407054930958098636603377616921225444257656654084281793242878178194243109518528651640970042349430789818555165341462109727153196944284435280755930302823854590124108663253224051044893521955664606606683419551738557644341531449328647604424031196844986786712873592088361143785613453537412614763714842126417283027311520444390954311333440297405824040271963683649524919757817579555288934278839419259289995360309924339978480076406299733977712279059037603509251542020941067892749211794996313240284524000639953160598551678822186787290641828395486658739214234918687024949398770188588695497467140071269775260120649569666995795594014956654128953766683200731759386226849558865031291366756277990416328471044432375256703911816685842213845291088681147691297717034623429775716840349719980378383342698506241459324504747757696981669508947868161657694200713650326041637441867430616158151723676952408960585465402007107670304223292653334700832144499692239602707910260107276570635854052886832959112472074784287267331714396911510364045968282066093248119541231097572642968033524625908741968191388406629526129806231685597636201662350242660527026223707118467361992117244307516523585875588047361875056549966595628290618298417856565432774611106428009933070109626030238058481582148498368753657031194789653788985689283715044190867871183768261669506106406034595928521402380186200115955709081083153575210386211085830448322880887952606188958290750768955965680050455415763045940505489055932228610979022457262975225851443983861268641926674558622368856872937920219178031711368348759371289021804507233429133107379990315717085103762972485817819247622658606801324483024554268963509861987569495276232865732650404537156747885357791275893374694133302553403439998972581334144702732312261119515495268153040421524150517601136248394287994937883172770491869018603690260879155950192809824453497898986428190357856892820947279889123088809057086712284852524558688633196629574910804089101051956380265271278073587295820634541154302670689633050384456485602481739544662320368294059349489707575223865043653340490896739566297220512508942033074024138481594071137012521369811330242926894300522542390709176464036195428554912585142221187813669381270569192063156764316894253999857220306621591288564546676712681559528691101508090099228065536998992230209413380078575559156449302762360536328118307595898034089649237809491370221810907090597388215376075954361781476087897145400764449444906379775447266807418051361771593751958907503611602753787477975575407371615135492796597824697690133526676146810857359113402446322995255263549215794843491548298051506606371950021156892211001994462030009275614555794709808030486053967432590097425363013145586267727755648440444117311395886058368585178005577963918675600440214132594008376407942659776799362501879629819444036117611245033225161298621597770647552541201643449844404734886527184082277030784366468917524813329388386496034376114276263951238775669742074722683111640808987348278575596539311665615240331195681638344827299508026690399327880967014314395313837974394254530917775191516390153851298538309813728735446333764712907798756528211806912096239521771770885988907767290756344649531325773780933425239332242534669962796642703496102927311996844631327013787452987645915858793271862964929685348667718297601457186941415087743206542706916259474712407161362979563464810686929232931333745635744912669542219693354705090394534599919587611755595345147069403681143890575747137589003042341469087431107918326882821899072240522126244664729712184071529395599862152432204365427388053504583876625035828567518631190017742802048496765032461437247414400947017715384006444160091391897191078983054300110413163918678198824786528181909443337154178034807518900500205883344182551653070416330127075786071676033770843846569458914092739055951446902857178762211024996673216523896530764046497287418259801493307284325907638904382471719171309984910544856334713324082243322789689285687150389770363432207631462745677848718062151093632877679452523342755437804522858459989202559001870933560296272974822764559370919802567207614443316649127669560602889989912937879218564678159329491601296280441703455033431889449806236035070551272643453766978877304725848373068745479874008970552542804012469950770467874511954962890259676274466386306918027476652461674131817255024740247367841118970521927322704122679442113156227451190809414404563710600456930917907958265194540317240890023590133168342620662479487779495805986408963559401593859745755070292457258606888624781445556016450398988057820529298590724235695839080965633308484371655424790335710254713181990122518621957444301235888586022361939286199874550551538389503321627091161943151588821723525211721547972273629031249739522235728675835996040289354084170902609835226595212564409314621812361905924419371863023185225392643568164174458077856693377699599243971774900743181390554664471492880161665500645495504766516410953368263708413075817823498614658399606075431183827548217887187840463271296872980662243199147477435611657706935991334036855883430871213604151874314369593254027867408531676765696263336961938385371512803261880519086067917528278017629352799692387499741015564116312973383904851869272681027473350801376044278194039035286670356660738186126420657037724729116086142786821775187400385947724146031266485928070255500980848615692259595855861065909514959688602188105124667712225012332152740975213590689036719734004748272481234662544733300627728976808800132095799616391387455216711370059849163129567969784101092540598907442974437691076488265702027759839672630700445589069771437462745785092215136876491237091955823309742209619426715074503313265760017152041562155641284290945982328531179382219381327394943244983823867111284708480895411528864957003583226586068920712574226942568959089750028332861940182248489969692611583767297740573627146221702395115790897798880745468069269685881962184453276093298373026532002965350655511881403012777399131585928587732608542871739035191818386518895816196736069466505878329557698363658499854226205309764820336271422706659354674109716071339315671663185861622437474600339133367397371332790722594915652029908043771394760214415084971740684627511990155600422215144806968196046145615159520250613729457180093257625968631018802530639999628255416721865243400884214638110127549213101815259097352544613369422249008707092252975355748771680325862236769566380880923576947598813712966500920607438117612933882077646843984789175627159101404962183785523298589536062552449611536784351182960625887137891130111972208572684485293975768829398998114950891306682488950320094180465226716734668517774336537438651925553129087758086113113259783231398031312137038927060005627958964342736862617906163245301965342194781312089291110620079354027342531505016992596505787108739302015222595290494941338563933245937959805813983250508105530863163627481209329603613165335517117867760731696922180526808006459838941107448149794798172508632791196312642808236532638016660425904657511365384993444323972121295827294214367333307305924959535761539370586170259003283031317901895240487376001179959692196688567935997383568458187779004555535291117637038629625328567565435559753308136206213299289422669293574332491702123907199621950983395064533703426345118922754627579800322680636819350570322698480982041217781284933638311225115648678647213258115601562632992485530783019089578711453478118695171311904801709897993974538023424258049122656744522159622433545541086333105354548967715581296028143959212405172720977891247060250375869717474538994266512678966991030396505269374976204690861801910561128429321470643791692310448889773225112074248875560185393125907149773260280092902227495086297627551608809710120547508526262582424336299010029604470190705911043297692533776987252298725210993632345759980661691569634477286864480088253666056474929381371949998100978972028882960495681292307662416375892143914714529466438143192767629713269558057072722403872360740856284422504779431076070811824755311419613272490803496629583662961235695680614154881259138009929252307108741660572311769826991591566472465400485850556328528238727606452751677903843976634810526012468006147757545494471261222575735264564073872073960183422322624714503866117851589119416940374481894954931054965933153329577990013997401940755092726886195327235446456461047316588086678878598528255323926211169886062836580865995837345192640105584050107877936338996042690721973975788262295698493355184729030455890774755209233355088996189150600063791227715651885200004081817074486791493516326138279906761177044448013915394372770729546561323861169189910089787288168807450801688499363141522429990669435329992669543412238405425118836628018415455698321222530448981756014559592058622026564327113040806008933202057560595273410228519144496103695606329253584774951213046473431434058524032632600723416288815277548270475435810801357496840892637243720316227131286165412625449965901810132051578125030475021834604122610512589098123258293663045476458339174619044228904125322868304015156776504551813633795828123103306028021078924202139856644450769894232065964082977499714805210791564584918581624821146263306126987706781736640187860209283518588492605181209451138259976295554326370166966455292771561312401820411749410688473481894234091526431620627038809330527070348912968310685308843527759107490357140691335020651577012216970633135215738851945056013329355650725328819194645241186443790975014314616014916234423945743933027321113482254647061586469823798267931619497157629722683891930057217445650034262721327947874808421244671816563452421333461406482559153748260033304310334018956625073277096436010132533602320632167136452207222335130862794055426073205338855651676350205076621291075842884730320192635629673483348296251342369923833402109980829905274068724409717034580350645883165319619064944526127331597413596330309170901686095013225086164425254186178489294674382828022210486292843481379171996835889554816457270627771575850766769069347324829131531283228685529126971203016006771926129981541148204964368508822573574148884290238627734370503044956715342241018958816585567564356968826923253857727964389345403525197500606317896031199843213935048506882643106724671957911197351892277511397960620988825042168310002081939810372534218822769208838995617569358346830587590604989702676815590965662843565052391915785034098625815769088274695486457181051593339461199138103085765031069984365923914539941703091835150615881386307739438838913312081537307703878337615153305194887357960000079605303111645475819156565197796811109670654273252292658640609294580219502983451060845818612749907305117644185519038583512364713733823891868791152726327910694629191888134517427666758179926149781774827328078456360933251822055842015036538405575180298313008130802381192295663969907862368103894580381953078874102975625125759350102917856603362396787750698621541257045625056184295841402193672641892507686970448765499666301734934625123079812534430041064520383516784584218812333114884942608260900893848224024985170183962045145810185445797249857996581473808693843084558754950120544273178214606999428661853217163255233383255195447021087020643335565209060454539536537835977145701890948654342694115832825326064956619754272905102348532652008368090374867724978628357364872147957761446633483051860166351838025199356863130509283299701373999866732439960393239368970048170243179089198043651193169807681552212980610545580872466918715147232327221632322876482557341236508556451612608113926384202466011916422508118994139343207791975942882014897214582539708894053458104222626392992122324063145850311062435034833663015796166149056896637730128705090072629978626920660460240215302187953807609018079273091035569149341293520185732763753750107452632597541335098300932665756478557999251571964524055206521645549840862486491165153773741520285534297225509552226218571334319248995718447102821929948481858993262694894573155908126032952095362694338173017638942019049355488251085022987335515261607732283883613576533414802226952292770271410315474937173266201920518316047019529028426841429645875080489759975638151947648513470000325544952857912866791542394437845734303590028344002297200003864770676695437071289084662800622595216193027205385783425450461330204777865443126758810831890829871990261534119337936232329242591553827493894548919205840430024178453297791813260264086397948194878562563753075301456553543540899693806712429370718795673634037578533704423882800220468795896679814351311653755491324337239243508190029533648534555482055126988261645896648341845139744018571828570261650475017491234515882420036600815711600511797307566723308585311052603673717037887150011053891552612709743429303268682760981469928707107305772284647669913457069667937673576442466786565576096482931135275297481527206417222242615696223542719110464707260291100728195117270204223724382505893434642304275137701115865496630404058421102666569745083272971272972361236137944004194147254782523164609161084752812450527187127241308890107296306188621533577785237686142558864388267006254894484505239104938128864595550985679387712387984000465002989683936844204029003721312506310288611645981187679007733662072759191787059429119320422085343028854836704978549644246866882654690094812870438083184660504245148285017467455359517111410829273069049665586081217501133089466860733907571784309583915687832568145287035085959530014928690978499272602391486249883485940668417587869128914949555959198252499467707256060925096493589006832414113901110469364112546548057312221240390884235007552415160190705003355811671927719246518052501965982227473308676942787595042325427782662889689190433634607549722433026131503831134896397894461384930721664451322022310145511561735112321182834071387817992503622645866586070034384459104944333868793539809021663526172875888080563371709014148132062796524884814291242661624327752860642600266179418606407089752584809772552459256375998574521075801323214087410707669108292584403581641069949212670139393063008739866457084207437496965111693712735158555646896464249708952768333469733455091713231703364069243548247047988884457527985732964373070985090141279378498636454326130187342846112128945904302762877884715359407303437153033690902176888147553230358366611574000518350650892942941854965048810405282074507199291085764533929801045653841822399801192440371357009091522378692948029067825343196840229419444237563862105361772247647975935701089340559885963151716080274797101267964300345411175757246433939369184795689819467873575938780519257488564164269002953839361185770077273632495405442456995428869929821320329441964174725286461712434247845964994206778288751701954160778763740785568717487390816585669473495106766241606886136353476701134373451033842511206517119566980755991537935348063482513921967045875786577190488939595669179013729630869789505954204478001658580091457936026866260783569260204473426414513454107484549787388775021988732291673908168589875461705616183155085352084018006581183399916018107497616718516794402214697633559911766320333936457278484088972662413484255602221637825713255167330137090357831056522214617895665194125902867063234204962444750925484557598640516637817226936331457426914651582826903330777281341374089981896245943314963495943327643932873938695658566380944811181453237608008910123863508633879970528196822451678195852216411732929232419482486448637048030814778540301538601500650487861080571275194668449979339270967843839710185011232586805647702208945406564183284889416113268265843712143154567617142997377280324187405966717029240355149734432709002791714549152302078269226532862348875928093142684415268811004793268517761109906248505060199936653977886294515917588338728756374329317048734705934121017182641217152624030129405603261861438892419643961197865504899580850471062401164809085009644917678402072625044277843255174133206613832984471875231009919448076329176841599063495381721443134550432723261687937779386402946190160563626427112933567849877371905238256876409361235251821805204621790174977052512418365060128400800382783097978181594468429756515032312398594425751105130621725309113092348305752085951655565702532522691782693267608744678306175954793978450009627141483469875870056228983325178446276977003504857093376161006773756356754799626510216168551503411869308290424103949842555548223577369327050321944544679755333794636649034260784164326179168540493422680025066723310013221837297315193397819341795848226494477711506744249628299803123256507635185992931022545878014412311113053951672572069637114400581268255997888734060551070571873303962699638675270412980969683419368282393829957897137306948717691420351818042809500351181264624526242604796563587122025409449413471450612773174999011005339271016651913922993718422203576806913806826265171041032985502929699448550931601469281576200108629007658096127346925962438597879237838926999114703079307864734905487172962345867206133816290277602581533463283265659513236101145321262952091016967891780206751055177394310192696336555224317122011454311517741531577003768889453543311233893339021530847976575685437607288630397342167820811395561451997091003411041034836989351814575540990412537441376904778849067255809827506188378026907099489177469828870456565963719990829131512242426104558639350572602453032593439248391058322801499963441469735051746762888800246930481694144903533922422376702779728332372801459543944990554954042782763338255779364685620015591889962693846501409557472341106300194641850471979358650823638755417000671166822936237544364165636494711813461845657473657841861510317258289912514036212849201311525670946986042217097406302159340096691684806556884709284522127486787584763482396974664099148640516683236431782454605844214597397082143585093862266277041906588981220550686813795414782801574702416213637503677548746615078776434742018039219949281292095974775369767906315804252487777366329315983951477093635356854272590819382223296347426203214014169644777374982895149546533176172652554106568066637427960312068322318299308784239365187867273455563783416910440716638744916702563703160147186429269041026940223530306964683834560429644235207815680212134178224830969039502825645861573803315756142482176048125194709300190564577687955635123750489363658347842803189502712931790088320558247203958042323432954595210600145443429557052750807457395763212093022428846197898655646662376506355877270415996597242678233978030561560846240919561870450838860449373776995335564342547599790080493205339914539627920317095058762198299937511947017678773328102140608022828104447395975264842980805689170916781200109876244138554154918754947127880391284703397463662866000655645899195553040438822135994502946093357870273570440384625666173718417731465088827957413154024750328728985791296852809149150765885745146438483305728835703337679204886040395968974053477673328867658229388232373582645550869967531676960700673178650069832233722680425023593050810778028074365269579726701622517960094630464325411284917968449628082832933088632767215383730026366185365924866438318042544165029681355888835305184899995485073948079932439585967126004266286843568020797274597398158412254267228806128688960214838671332195915061302643723306572589093033994135471392769371073730378504247800700573879940138307007020874734990268382346403296980023155275428029820908843510486966244787848860512224263478140016818928087484731896774625179351072668632739186603250135778985802461465188271718824654259200694321954645490398622747451934731225009120679067980021942144024224997792901054168334402711197454013418113944009730154091480495698355122556496610972366541477851514132775731820888119054893895123875277137856624728011836672052487030150471134025021601648019369939113647481495845206411700506531272960260854581258912458045698129965243358548770958447016196744232025498617771973547671202200934309145332510662516326481770189885315647446387196933267884776855729503956380223526058616154832615044281117839033254817133443231317578352628038118993812356322030843308800539929077395979243096766790064248214012220803574750136577064785809250272412455093662440913945710197706243117769106589542224865003471221384395942977203719705426399137471153388899059618744120486085959428888711940641919741935468090195429029461544861424569961220849203626210510981031463320455228860177708408361312467668646449427342338117691176649309494362292917053639157347069433240003792811908670879918228808923191635742199087225039188563570102173231356185436108751890667294844777590143772689520089468230735083090484866403660459493875064213957670603114959788593320549166104686823201642915922286037281611586602680411154319728200127119859361168091044746263074187567583045543164104600137133201979040902594891732940540907339279281827410361816525100967796930486645540725813508335577524932819504682219672133628423117617440318329552055399644774029851276372468130459706845779691626072721847340431492077420077173258605421654188085444286350020753812069769765277604872755578804661593851893058109916545452107587300539784573704349368041549731813708337962110708534767270459586233062412345530538919951344928217252706770101408508622896427566167825796489331951522925338066205401705554204021799019641770557970780795991551158467119581670126913580583971427532858141567622550150002376601564841632225280791481869183984172701578001818427132722972717715247611931699662702965330640991920865049265174502697952002307973241278398996406853892481843781141604465306344475458159156568939012777556667051819808018228399205076646045462578768736769579495144264946044770503187893127998653605986672250534403746594956851635060963836315290171310047682232020719162571421464753217081637919136943347213700224268476258785276160943906401752673014963105324387969091247231790894990133205931628873232750050942045206245886637741070729851784641639398186151318919377970679924022590809680616054668567946981644531489140670514500181216103413073734174304888166297233651619374355630900369071510348569496284206490657796727289320091831569079962340150294868341630491174278189693002706757307750268817357531217317277907730682607425771749630845139741584482099797394770730082824238422375831607102624561616727963126530806409932844511108067220700366792522564234824795294865003465517412860240634624141143483416125561142799727191544785643799046838913145768042821900195231597835373637717509822579967468275182515279162897170450412246373615878915297975361528861752053225578303472526044949381766338937806223730993674079872288774036840700662935586962632215280535979629082863609380469124933503020687972140872034909643159036193888246509334318498492987283983038489997643017983230607174262607240235200434194215860185628818488466850685330027158185571034573249400639529753784928132256517735347457424863972005577448409402365611989570292909358866942222451136997093645424136598321447041141590420594520597729268791429832769258482598526297167466915801637477914829743658474959966240457495018318370658844842071472351597331087860419056705843291754118593554210960928093112342631661182350528854177727694668979488670862846119242673777842874856824744186503952582795125589943551325626677554621898831681688259888788654828075995459712838845121810326006963762617651718127899302154791025587488757351492075305213668666832929169966244928654408908977093890751487875960705222982329067866542768707128109556972304316930198592173555334421612564415151304192446116521170149029641042286235663248551177732611100097079708211323191519945048169225582653044300096584360826283021892672635927031992871624254486489446808444531186868664706364231102115401704104309042340804749521535313819288411668771792260906107919738875473286352894144251756826271789949577950325061672731427881904223101191429126872532919349932605128722883994476591619098393856418881769504418690417894232120056764977842740891241483976534271547750205851503559914470860723422500535879911631543341300114013425451860033544735170673304524463828953653999074532464958787639391686704256812923758797685088066306438502586702050783450420655010590386847725882100406222044967680074740095880329196261950454502384895265712618183069323107836432271260074430485034778082126831511586447907565052470891456401576344750802085311147414124834860569319875213877837984637162525522114971228342812142118993256556164772668128535722498526873653482776524426837542866080321437722156080646823011000483498723988033002961228278537872851935560499555929643738719528432522688914741286243155618544629073055871747522675692026673341304497518673391244756182501359270114196431576393861222299572368018684472459203534099839035340009348854198335168511213965646862499461707189250135839902038685562302615572216942686656156086158184704940614547468880740729856931428171012223124918179597050213450230304230444374646594821344818616627285118905143505466095302831944666218148819218218662626356808913113652223489087455253803995030006493444281380078479498339920518338816064505028943214561869815103680217711600258226266465152018334547187183171628306473370976543808791986253269379872056552191156362817687222630723562325163029586648982076190734363285956647856545859672373892306826443504832868125270241466375445172945148706016748436575588878179648275963372362026116491883901255984495143454432560602728936027789527853805278625416248637032631965550205729073255373282275850726602033297400296456376294443070970843854105900838214768404423708869902202537997375374428519143850148003677515293489076469135750252140288111002431281557048726157833817647020473963256465323022872012498610077112266448085558312538758726685161800854195533957107007968947339433328027506516861221135822622276886668735407257675396583705176882356847276302528201275927733917691333512147761044445991722489591020624774651876621993796404330371674943275796561253842001690727306908767663489987756502788377048724454065645689441720149432542940033515892088090317916317886637270099591761847827548328299517849546518391709168191600795776351204420590820756699396157224042795205379111031988800713140170329926195148989920098870882252717052367282423530442421049979019300950737695180583384367743776082264602713164151017937731132945791820412681928835216652123318342099499691713834274915845496515457503019207288429687758673890357823101113844728962229386822537345408509523065166136314162420387261731661880662184335257849726377491606485679064073994518598763610909157811210216865883397475841325422030816400286483455770469550511644439635844239136899377585002188622055342168176194888976812635536140636067124063163537411172227622537778766220293766626216741091103945767974477068667875165527927626312279451692135274513729688634941971630240110728760328432067545563464025995833365683409723955412308491102916512471454419979677195622979523531010281954772817270695843279606513500035515887224399450204840194214460846186767658348571452696665514794884958631484388198447181318212937032111783861270298814692370133425585902300002356232088711707873937908337921110465241223304644293903489445890339946741013998350326692153027558546974000738087254634666490040426427390256274870073100439629604370285600808481374064742771585275628051942601189772376983085001403376317424806678735052879756841972479688810268647291015812849968520085979492790536068466413821668174732768282894128146803731583030626066053958395202417902288497741365436048854673698399858578663466866268964986133158478793157997426607635525180053429662280474918015387788919796337585191477912025084572066011490241525757737908921788622678334125397263487948755611590705861268363716915321836983778006832321570526535160736740022328079872579941380609657793218461054982998605147116161398305263129753183727871091781242784699753646262568108583707290022228940382388273429727425745395404367597534175894456081978223123246210531116121368784974675957062258230626080143406015274482030372591295666527022319042784552840262291465232771906767079691544333600919687687972873088415618738013799996077270120081950307720173752701250626643887966061170261890747186372819407413703273687462596632978405475160156616056344823162454926234194741510820819671307395922066622383456759636023162709787292864349505851990050442018226894732420720150237710590061046520277878181848474495791058470018435626917824464796839655070819383829616590170681376783161818351631731622231553348253520891947938585786934434412481840137781255003377020557947593075463605284702441192340521411959759576278261044194918559308964767979933382626850842779110749169542430823807583145521601182237375458858014232649869453228867773949350897308170054157382041045876376917470583165147310456203169641950574038101196522426984588281866425469623483120769241447029484517777962187973593263139209699722602080066472245983815511667490184136134986127258102668996278254324062266721174775312393129185067904026285348824521284527490165938208331694832948001867233680966257073267290470558308455220579012914676332043242832609511183024621370823547597920125800359384447938672887661500687725206504578596036325454500118214033835742950230363282308614350383183676205663160767272475180192923360504862901510732850501437056669556270929756118672091599840168129261598114562588079984012251375304949563124582343030773771119350694809967272907708206836924590672532687704440829311458300507486082491793561040945064304407653182019618752059937074543839597440707626846315940786753717735387562153348630176926539550640378838528828278883901767430724837906089941346142480395863465244565384601472277977075977171828918426855258334096270129702839805693904647409150758658972843670482212470115131807688350331427901904588971300322439980846640759216021323794244090811365385941709612333182022244087680170321500105371354886496153805325821554982572555627786205764207777802502683020364376576064709184396669465715272411907884649762300361207432350922065907878483935536694733136994999626630323018038702768981563851467550771521571392304457212516966384252428295604002726282110670037519467945785194056479763383758497921105818363258234290836070592947475257709226550710956775701477600245759391883296669323912513940573123686942217827002959000128080667283924360506995946829805366448975976634180024389157438782211025470452774638348511872486376418016589514373346550791864628875397400854050622473956238531964104379021616581564123842745396543959622956660236654306328102008363435763968831606471748004188964229603129081503987228853740576651281257571514732440697936470758574107621795666736927639804292191802829591970958107331480406366046012310653728880154836388841791165154513130921052759322044213202759013651170217208237813296957844274818755682630593039270367199146595777417684252465568214918882725548076425881622087391383882420396023501842266541187929705096403509439771922890904567230954610524068522014659647115375947093004971152038372969510374906381432249644170189430569895249135541659293606377380050796528146123905882807492905140077292069768865065752344810365589811049410321365369617094411024555877959918008093128804171469920058166474730727563679566734343610546426496214049862280867450426421815886641239186387593358287708327408057228744242898565619081053969774951099000362255471790737518118246897655210641874836762759676082553621867475934220665696244541922440212204371124750664728652618115186512427328222727721627276405545516188963204678273783961941386355197756198953212546601456389809531442343883536347624180215753414837604418379604718843453364758332702348622915889436791525921535447894811977786876876952191664261100172124807045655862545296555964258446300269155546499174819686617985300970739032814722472992340475233041392390472596775262248428758841053889421657913719713248026521609058342810714417713011234880555884449958143988994033694421601072390312087334767425929540517371024383809421969433077439056278914273236245602931342413157613077331190724406188246397891786916802149571691169757528209406875037609245198791107500156619749423600661858582072211171887083234255290873793731128569352334693122566270365128428395230629937347460470615327293278099305473235073674270358687735280407355305182800998873591415189343582160472277004646917483251408401141984112417796163689832288790870968479307477866921897844318394324200728955008099428641544098722537124502460075614988803399306265183817018142056316915380388611570060925006910929632587414599834803967234682598782301622278395288052564590782989723529458551152950183437230627590418392681404573517364763265559308769554971226378851811327611945695174074076727972899453115132107377167027499627870600864914693095599538187925533519213738638056317541601402497183891846628796493199085583532748815027699627931374087318381746385180020565785978555213048961745437347199266243900875842686985925408508960087415398993063608010559564466836668447059360899595645063239960907471285398163476769438525191214150204292859193958648168293963028071753990744901107464766818690611177594742426873228920212100087589538744212105387790901050049809646382489189357529382328567175729640184218990658980811230134753896727300683123654412062480228385033015098817958277502555168153002906410521859100593855708461072732582761494099634741678572304948003188678721019989347355197741383393694003975838791564461333095156512419596555222792313656046097966519632810704857372609768267835645556085637060359396484974901166594621396456864946503511292398268838896722039602826298680540263568418750843782342510324468546223051808395297991629517777621709557564638049607129575678290324061654364255250411837694336957100956342475730583953561653635175814802858664373316978192389553042029429775308782477707247620841600084213767888708768141060407666807192015093767197670880267353172954967431606817081938891991193253150971044229630856049463504161798153444033890648504824219821934388968242705243390471932440570753208749699890201647845345183285963836000129432880721090445648819805848920609600277352305303377274861829119558399628010924388287629054806371437905049012492215918143499506667897995018968572556161644027408986675354271342859095851675608600667725941068784216350649208572598012934506747678010949204013341467562917131545945110138293095690344233873511890403904866255952499949818849817827119320980820509769264485864038879180045194494510865144514395186910836452613573788448732088437477084625961479011811065006025125038775077997099043658571861625862571524437538253165407628182790427193962543310687902709932702670776061905583388085925766176802446883602124453361749193456856998224500995584168862755800004661065916908939556433889732675659984385987969704253643106678373915860216271250883455580278052947643071745990343274491629530531931666753347640252494374309035357252261330134468627769988692147251718669265738765489874413120111984959785600326441834183399732135883319604061452278495806538780914577694997240941107714878838364677190871193312119386609743495586946058025091591484438184951977631889744916939990501486490756424153263939658311187757408197585945703165261129732217330424169212419460797311753072458230597815613714196172948210222183954541187159123495611527395559011744408017960443975290784385270495452446486887433075320927862594277930182843524857738465405920376356179098700830628295935241068121182607742961736669690253405458646591102453417966331734826009411695828642027568393002528640430076002345433868554987739873101438197721246080514661621516037764299030477579101377943789285699340287412399197675851358953773684704906840109642072604236063832786396372990803732830846016589514630356921686107795624344556205860242486182852263142812179974537775315991010546729367548495764235437704920844907999709962031710104036977038680771811959239132666301121969494468983617176598198017351441755468081939486766906103774152003350636052047901199369848414870751563143425764989486068073011859533424887582902283340872494912032028080288207589925140968131856473805834923115046402512132343885040033912223146135530799716327681535738674919342057833545212593305053097387385937695461971911627840429430610622690534345068995615598837460417082241363967227449207308817288839807191193598153600265282875566319928522405792984172497939674816289176798348554308414046193649814611095640379968637675446189185421955713408936082422336192294035483135931636432000055517236609326295823096933396321893610977843806328232995886436664795776050105896803069590640081244382147225307721030052353438536734927830790144776432189608789388444233317748271479608342788688600368000874461026069209993911303456191382186061364043714379052780975726911940163899870393219431086586761664143222731917680154981496486101728610314970996533887632284626118974963131043774250142260330964634454531022500688281645285267567916604145079766250827070293222596293768305862084126367281855419606477957756194837244081889949027735463557779470830617265600830633923667952760943388885830808109850603306962557200731221501061019408196653189982007893885517246310102523117569349710671136152875517045204071254859616013092642829727039432086862834162357412055375515601108288715830239555354872820377149614336484238768406906109553408359021118195952001514325909198241285206416895105092159312600745409203792536795193371153749174804052401553289677763617464232564619922557612650966200157793533339975383361500146564732279377317752585288369601850556034715275232290494537891953796167689202399345435362337209150837543184006722709481304007544493781792701794751149744025562846240054853775323190818606651081825082204763340028338500970573612429856243155645102348062704708524005095909725953497498766575015978629540559656331138618139336034622400560079541553758764225169308412542902953029378294649659051317300882129211355207207742585351174811709953367007946619871745770918976619701182535075130185317504864497770378562652177429670667411858928813221829063623404421361657448848099340792074232599819848887621807150089034126488957431741134847543712754056931840223847398339506380709426732701548681052368067057358695888839449967690559491695139839137939142046338649223025545839887171034876655023481110166374399895353769228479723810912442716448553025159636146694297901155313543336377469295205959203257418128887723410784877776650745985387491903010379816869026049809077621535850784645641663666666445712374638347948502058066035389832432723983751923400103368065728644873112470699796723363680193934566331623335241359601939599813898478687169546755520416993268248425090553228471765206241483867616387130048933911829633468099260982560946224399299192523475675647756549928724460097815628465043601727474959187158152360524735022350604968901130273611952857945986532122063984986280513407406454507166900937818345612569278797829829550903166981464854884573595110663101265391025149864961518408454191577674739047612219999494367455737722974493660535790189328454656542509887744022550176041326845816100229125156081989785036219449141848611123485797071005465979811418349537041553128025538516581809012880396409105789823920535929366991224853906365219071201902461701222367481000636381578362521587472385995881213169735639262066281923633756429542700209123398678589823153366147825741614900144303490699463844079703461722890923162580381661107316251259576741673720104812222452379207704581709569398538807950643276079248628274249463068603460504043319132363166564981667989639203442155628286812681593383830408703439277362907287893842696369023539552570787863245912422779543988187064926728102231653442645323267596049687894466935723740101726064926736857886350631038190370016000127521503131386181935238310605918252670442849491710366490229987381710617984180344477553990131548605872602465485351794995271441443209642455288160484827609509361689307250807594566176221729860966685710462271698939881162730317079783716186753193733142370186529916793250847621894809195056175585308776709635411157014537904698348453741970846036354626398677914109871194890726896291021858747280760535996481644685457667841418926464512482323620048622810775135567678675764318437033634880585246594867258836527412025979739806963270633067449667950325840019781430102564848217102746133058319254172517477443073307150378273098810623696137489854799267311380015896213913813535910654825640241484756828224357395497672358735034551117293428461654001869071580322238918445248799469229932205396236652201371925901759604719555024126643428373358737961433837802239468864871060541519838565682912665751250218195570440231420301256905414068120550194622482805299423198833580605567477799191058743049444690081508507792296006588603812634484294687618629909967334067080744706074869772555610061924900808756549206286886306281935938483388834910631012288828261239726499284905685556850997938442933666374907654033966930115353546829783347237887017910667980568276467723385702173376252542201632231979579895627881005632738111725143550716692829251562412600473514841726199214489040341720952612504781606861440057491987931406737583034107933279647145740277108674282949194089999783988525840797185023154594924221759889073912185442870164958479615352248241692453498237136703112777648166488337248704371437675417613419451411991548460688369140617958141155306508544286433736554728510035645061796464455127095674683288478047745077108019403642773595690575592549245662348511257707435290178655956812232762721614706212717425237645480281507081057727245487705660524803622169815991383102158346738600650914294367869668938048015390834283739825393971047177233811522293289958824481959240402763894732608068361438327750343388301030043589324123888687536956955251669152573151355707162043860056374973658711460644385856588561796269786978717345293925311692280312731841931220956387453120141996787069236291071920333279946323818883418670673256936408512311799426349006761524815539495120571026473656387614214723382319608752328273252189257648205405280656746719860311822407012105322980487100202945511153221377303642044074730228580898522872020256348343521186258143826658912928024760213530403610481073727056918407630872921167020350719587372543663012182317382710635721498331475330387317093202585556526550566424176873457517961537172955147549448333278582248045747062862338282161061844714247432125731222365566188153480564038122561933974531259202930874508741474598168717146851048724217814989406909963464212503135965764479020309534506009850946529499209161463744723558701525591455211277192396324925426982959792028288032110521913756516792277552424628541384096963345344991164680852080366076783292368895906298265632555480548455782189321494105073470330809426110249164617080353514639251006878319631184384810900722551020360851251486081084466631588293172755340319872849146688186402866495640500124394359336143503492270692739590026911880872166499780343886599553755092826926754061670723060040697294123974122029930926485201656729976092787751668329349440477166740085877472969951923263715811031116414966008075183393553417820681975480106171147774070374499152801453620777827722779701989531498384312345802095832550185662675128929515228737519560188680018470572632768083248226483781836417824180888344228025069433243743180862727884006096790050743243873198857681781183676551297871378970793276520272929513213204548987521853353204697486154021531889365647884280430808760261203899681791922515133208986053261969979521281265811876011383015911329096261177360746950568997884696703892490596741915199018141890444575027969655757368152654461208856836700171350071381124907525024789794762691242031108403263717844484024802479370833352867549621952105076561228913024750214245958340843306783501460453463986656802674188311619481748918613239003233578060798210669011644884439326240370410150244944167531272550544587064712404953058730358545263516725398657115535157651794892823202457880740794646990352983124416591562685982734689261856875076479106889943658973191182028561049619667191568864461640738435031175958334727177630776540399560626977252584156843318887565859560671726076188378062002805352413271165108140463413710320119013199489672139875831065598422066356654267656084489509618396832347180633279556329697413978973288312317829193715587225910726763638156279926092405428591390826983598773897237338649542331188775340894913330991846229428345833238115729729878209284674435336646636261456616476339643723327649865270451598624681860198155193430052744401614288376769275609364429555301592205547051497433015638328696029842927039699614370062533558491730512971096201538616558245330508764855385783468916527144381143326558365764829545417515731321797281317415618976132466827893467301501067045940377023921334512721652742323491017929400177146678235145925825416186551868623223741790087398761139174888312759290211468349291618924530510683017863915834986571769873302012553110226322331556167820874568841878290955138165646586060610964341102470810915875258192336483194830954404347712486082434953252310353722514612941581028397814263365714271139759029142565472279373025712497373191348201364571258619898546060755933362421747157974592108306458454125694701044716998294453162209958333688484526360273298254990813803418539909198937414243757808837202946255797358629621541393195197736957883307285483810500334816634455884926589567518544211871874729782366093928033441489436571137172247610873445218794767425124822047358416197652485362296424102844146590484680596441966856050368204041981859219803017344794799724869174667469740992310215907467089736902713106798355219068592874484637741500644235585101962974408687955163853631418395749751578479459979638602993347311260359269616415025518463629578148181959815474032287811010733060057805030881974719272260905493781040975906875349349378384168072911835363590426941087348119321316599974282192299929875263525089047261221470127026529300184411468115339101685309316945201173391464798615650082679037713136147142709511238841378294183897206658090864945424318628563044059538847764267346198450759208698094519338981227680133622119353595329680634918196121465030679094353077772347862815419432823549136432067933533073868460438381109384188607860476264313903788681824626096621831907536812359039800646771798067274944970207980748564303306327105558254318605188716568213151656269478436774623173833190897224939534350478182072023905001667078690989575001939975270323615911644517105965041897840544338454927900238978924343383245995485138433479474685068331466644270539683868156910443901774291600757883413240597896293838575653085013974574123843228376463134884828878293340892928779014814413577128564936729794092190423883447530056600558715937042079229684375946359773066711668137807096994805954402867616046366556909246484150830062242586410099934264377353996977764660023071154360611564002509235587088323605845121386147812363677436203384027046885989736379272020969029602075441860861563743270938492372244597226962236588268139257690490594007006768395983774126561465551666697433720887697228806518414494955246083883584442352678225680371381222687519144340141478331698125115874142045864182777393068796536311472853780873157942338354739269426565224255687839329268365541539262366217007676438781639768453350171017074692492819367464231406174198098933574993835523166740955954922632003114952859868488216168908968837866440709069361090114292488795877266637923322099556828646805486028979796798746487170704328274240422743339169204029812264948542454356014687970513106344239695557618903016065623708540622167004744806328964425376513495616696469560549631552482341725621300179400005968374339253504229242871765354862753747318397477931136400233754545554240858087056943208113027533673650963862791688993172366837364720643330297103818982295626840637296901840326788193902502310025345152305201456320928378922100529877518803285358506996526597874662961113170141528463539506271778970171026455075583541581063510356194687903159220120782383665277934181306329073358253741971592439059668070233288330407673527546103340152710861137096977787080817338846822239714667292433734322420253981037968625542362268996597541391750907702004053193866281389873658799413862150664968074335026140822357851158547535496316906385813846570384147252879425634130898613214464617007661279835558764363033424142929759450591238136205437965923545729108086558516289815602815911147583146619717745049057029571875836464621245119773528021207739624872364373880699809943927523437130944606813698376576902490721998304368844587363306630490543115344427997028043367131432219362763551699648737948441233198738823913991278673129946437786605071354312697594380847687763171721422717831894420936538168344802078376376939702337485414519009528119466922985246922699097227710215903531128869572192200452546261313184049488843781134648156901668289945225687454052747512169091559287752159621197522876017123846507212843275586021968868682691975841399184718048823880344095228555753704428710903520110137789200133297818191746778941372849460122097642125058490526581020357497822373885948987400917190754782634534355041232880273691489390928415652384442069637318176195242191759368258960395772515259494316430279596406214631302584791659276632335995136430847788342739069687318856155173857478894978098843694948088938007667057389456629140819171275039336912947475343006804961574187738859160148102753430958592974640616813531216435754712628129848218692670137968697157573635678929802275440693884263514554108826959692768164583856665829502821011022113255013733000496807680084696843986641782564651780580895813901934265681930691435674097240532327191082270223054123205873653434476362069723972277966770274662666016255565626879538252207845230661773175095844294677848345107586677431580209620254900421968311997173879136620591182802224814235913875842359128128150202491015526331567894061970191685926911947396732412133451513832760311372345427282318524907171777229293551868958599942284452320429805749950659660883935362674218244003647298037198746446966325009783752884703091058603584223011920973399562288367624951028253181862455804143425723910347864427686905157511707521335424911730464514597177934901139032325136850901402212935160891983881626508423989555817422689882244321695896693487759035369026553901288167775938377347725192586326940419734707953167659968037216810252451243474848465238132329248616267091301165947503374636365362438558176626584215848843780966967648865785766973422065640180079190200530886100425440588999963095138372813089852129033276335652649053725247350427549179030935343604830171002809657436549150543136824200094998797684392358683206389717607365640923149304025702770793595680993161076857229899032088042532507049792483948278395743160251955423865908489492796864393684065945683217063224962438507156942341322739847747555023565336255649940716031928407247207039550884938771452497363449978820547667804432221464718866547316133498325532278575039717910141388162585135966032183862694499701544940323691709211820973930446311842306632636509146934900167983046672562203285272841185103423208104852010080637914460973196573573095785529890739543793444906506149672460447330030388010282809020522959487250749402289721862081799762035017652242076368727740928436520484433162977971375565771507321032006530906711997999856447673707611477870732712302529460894230404689181998264195157148964954147980257979509497084210834252826918988329938555531797545237130256888379483734090797802645899527873062035667781359486580760380778524647692820574345238317810633527866295606376688984849905435125545211493994456410159992771480097839196864140136522634867950491357942450709393821930297365078708892425571272823007242403965060119527080878154138331042485715099618129985910774913093549570619738563706850755020847711730781530802882003633969138912706827634449080515253308686277097566874673487351671248088697896796735483939398717506711465650545023448582706092410194762897726382457140363823818152874148362170293136814165377134117953651746710414051076216303010348931732162110401020965392121866505976214165468891115717687203807090352206377535575743687281496422144047027592388146435868741455960380718563554240363050030185554589705322445614772340809804741194677058061771147320525539627593509274404662829152864441184047853062698892234128485735945431998530748008353013539241605039385958754462409985890950834885504720757913336396720058850079527905752104406021582539443234509678587092092246766264852500229716905009981681993155254882838840043940672599790410735572143292925224000171257387986708276219178675137939466815723864690287128168512367506525558806585568210264252944170722709196281168803616277434386490376854105491172503472540652048780705340395915808360533308946408970736971359462963813627154328223474006614213946336807348111608375994377762261270227515849658619283161775260474081115410330945715879054504119963270159924427666330704070104766556616010552569479088309723298993053432547647930692261132350879546836368061164539293210093075444416614328688020661587830582710428021415517076778939916367140162226357977368612070103408169932472944970542655779445502780564471592690216977324546714337840054780890197967935815406526143865190265766084899067230638732586619178198254678272926919422045697200934211546526038852327425216980885479666419913610478019478991992707273431545346648795557237612984212054392499778769552843207998641277812627578939428604223181788833247981472940880625772343240049780898379699185589148916424568855229884419499905594804989137404559954128025979990420824550607262167952703512997871294192207570930019755480928131257295681667593687306987684463888612707019303335931895100519006904930507669177359122919663322482204237129569421194779017503531721861216760928478537280674496002626103675932446261970366408198754158042727790897735658204753558662483737443821806865891109415075758102147555866747493135382132152473422834637389334157844615975273511040233532018391767857017591025841363106716091413134735313543888517390971374235401369585322815805814397743020367994576750187510563621556481575555533971743472496072408322044642907080204490113782695968871679811354586563756987591138679077009531852477106083832099009226803816962979317179400458729107554995753268464321642601816328509679728397041875675143972845775342130730833307278406433093578060879504480464386756341205057393899781003064043835501158831357047694841047297136725391780342085435631338116529327111918800443392562293526736737040963133596142899007591936010592185677128299390911278871240019255877755206479981486537886513418202964723505374715272410051496343682781195646835199048941742781901866440940043978095958116159154650703015869956329344070855814429177201068695891494858116441240933891477237327816081905277903276667473601586437513969437104092775940278401453299349350679171876425777093638306278312544451870439553147277734888765328485743422464726728750653914124201090787294184306197271098060398586193369435490226164543322636841538924192850999081706978507255807059083406105948276706764599437348497276988674823694827918653784596294577529081371272283525455664064119509429992018797730358163544798861445239556155058138763709822279776312883173296811890038703514930853752847140441492651838333575403077561113819507563611870690857085594055244086412547594234827626843775437613369751017126074083409008103258235646673173576258974821194264058812746101798647511933952033830428692068286899089811310214656064241105039371803639969312794638284091165305157635878379697787729898134326857217729918025384567395568078297261494243528823280917728284510936994285583847673700927850863347298193907501377828416497736101064193588780239176243784664384370750867789652911953705933099094901275647747865861929401534965612890606219993088302561370402401097485218555926410568556986240089013073087500374341707292410560004775395411124393743431346896115900750796013490967275022581684029576622362581694353267534550480588638583596651586344187182468224684465717559032055769037267896327073919788026719380406324198677277388050217940978327916937622977535781453731349271647601115529406402395254351684783863187055540543361090249582458382297207311311556461334761496644082212131330424014282336366953847294605832000313891920374874525412115087522760600436048981040003324220752151226252227105559042054639309058230788611217515457854823921813852274369163902891547275314755269669197176181366180236397219834765296684606683087269620055831998858893160788868594808473869280210521167487573756831165985183122992404185448774263127873713085880090329159622113224262013384551216331389458166521055722932118894249340700169475148247909163055634693011302713134507995897634810642904848261112201502303630673530546063022505362840762745521979904653382706468807410018799335151683023975387439793205934190921554473927161626723902688861992772173253261367569946936276721519882642678091725568345402571530804535388170982370642581692619217118553245885191644772916522823022255340280886601178593379740944158808523350116003263452092812970251488361121882669186903114534536854023220164937678387695996861029111489505799438293575695879042259044422213859882704378583318182489381716791052437161810242206875843988643335338371409334004166484437362554667897281730435240452452963118114977903220247885880317009029903518553645382314422335988057364204429278615296331532497787954274586547895836257730095364161397248579906182784222464024656251847237512277570811876153287888721580249165827164206644772721974935595920838452880847670728007825707535955068458089768475283410145225031150033618328990752484382264543497560005027400551682881221678204564961482901385054399450050362655933111009091136062419806020525392058768075625327626738471223678798282126763673072995889084876254672195788909569770373501772074989711023905444396548256685438516866438621068024587315683873518022582675382198993607805022167897062197164451581554389331544599856860006965097142500674970988120920669002520207855358621546179152494839912406150297070365298472272190175774623177320083305278644157828982650738146383183281941922501959049452082481803813828094497327145305780581438932832606713619739776259575107599088192573098020565950498130695226260648754086551067874292778270196367904054783652525704177568257985994004434309745374734590846717595933685691040842751785174056430778240898820337976686878445245945018824575704515325837351253923017721922861555916309021950804756337792062730467146175574466335996796509655759945818852559990824273270856301155746006838494887202757687350447928235636633657685614721312952588222288444685258040383972844467611154039003435416369002225447037098689235051610718099582538117504652822474812436908300465254106577185497843315859039304916114811890737633866075360939903085777392693156583379914829610256734246573903917604808645459238050608640891130495612335767860550043467457067473262360245595781417427702829601427328345642375625159446494145655564495517079237681652128736453106885043176110742526979088506729711427657215818302696192164115157355642495290989797328514621357107324872018852655413308510212427008754526334442312340147481462319802853368584345081549430004851109053414614909534382723541048606417870040275726510706722710078707141735804426637280415699292625592249352708092144282526261644825417343047947318319969767475868723463447077380811606975209352046744379981242241640602629995883021056415618932248068793317619747162353177386046118297964927741147430578082380552370638522258580241558464699912796882015374746101766711954820950319468540468329623429170817460250086563605097456776032820341791328366325343933294519614444795931700955485608565599025329678935068928434293173195895612776336533879417460936734594528569168836142538077527027104023532142583009294292070708230551118524643772041722463597952396200921370601814618331103274986096307908377991586100646584063687701741987455312753565674116555190092188375641304948683746350611925282078390077286812923013677641266512928415501957530916499921966160071350544720539999053691314145754463715759855863655351794787213939445148077723928451512838465192174977553686686665515329763559240217876038054347662708408532318160916830375522695089689982133579294940679764557945096450645535431950671294920779093277182158047173640594004516283388495274205644270733475554787624085593153711313308041022291409984690326480485971202694751165405137168734328680996633894579264491141779913440852278232524775494418964479236174340248560397622368244200314411105384939272479432099441669584933120593059395072155845833375247901180914615993317527162477132281391080211767893862444417148802660729096396629523730410564803910025784440373091204832926016034371737934486879480358812459901196807008338484402419812321699471502807826966001231480699432732732258363609755348819759497272062193721797657870373468877846254434978580091161828951860683351996010477820929434611515431353321834352854635484691329231202458515372353613671133513829970837651549134644577033029986506468406129826396915587252740419026634642093806000939252814479498235604263537999749709517489116543810470700943825114086882016556934515598775263450474760876850444611627432349528626089379691659013272981656373825132510019234963204696564875021648694911736078133003840254595317241607896567762463692770771514181210996467298400324178853710900491333086082798249848318530408106206713106059411776510832406069943387569928740656742707883278041022439727558736218839101985288147414202331540184919763977433451648376910820584644345001386122486223956940924637967696897606985491089634346236578629900654111629871471076482022142670074350683930846315655833149787740163851574579767319160718067452441851405167633656007389437373696909069369843512921202600546398173310203629532241235053362484524995546095724828091439190708598128895681085165497892933620567463098704120234954155712354480312584901788225345958666038301422740248501190096568261800946553061987737262188091709891651885780368443475325857666059250294021707508147797257646580968131162621754725746705208164357630177738272875097713268079721600395577265284669297766711239136105838253122674224142254963962190843698577172959641424665845127532239266352125570855986743829347466566645853628802975747514122930356661909046357322828750022295400745755831891491370786908412495853498657255445949230645649110039878412995857928351066029968837924110576543426705603387915543111339934301852811400520010988429808013123818834842153007138679799726713818024066971149627194436286159323209728493879095912493655288711553085692907929408760915808224634664401481284769948305969121794528412042491257490709248760467766982783799579443850640648102768059960201762285934432306965627360527078585728247363265902663326510487070240124025811473183563428818697687523404816136271371916792217680233933550777190711953593771124500744667154448451084149349573474720403203682594437467399033637571524606875675135940756518487081657016352105200616281173797073207190500148420920846169323881160488942001607310172257315767241855186095811711810074872430500377799629084854832600644006495166531583829308945599649575893570574912698404815874108419328371147834502770155564578476391095030304024786904763744811280411521715627575307414594058775086248091240310962264765214523225822144996666777889821271451993767540447464807895557486823846744173933496630410626667280470697428532840181922171243972125524872850846918059541344147498571081769718290819655714193553188250620062554164366789448346859252946062091835216276990917022356980197427505537819359437709187777484393666301565467120896624414721903487334364940780619478272099541733473824028837446377538395513350597970874135343769074801745484479439296441769839496058847082016800309049983378363992193043333987022159902332403536417958287607789819465706496012522407655522199852405084969198838904353589914253809985890209358341443852111661246143273344196884626621244152317925956442003537974831960893543863304261890089611516165400078485647197240552793795282461614778922743672966623296959751259554627879369973490187286047374534437155870380481958654073028084947582655744730507386435643721335967328301669663525175475427028528254005907395040855574817569308098258386813468965714820466285565876790823478839141265947762655160488652056054157934202208584797428257308728041912514875762434343638883896527778647800635865963857185937223925161796109562697407468645455019422051132447149015804632765939147532401586538711604587983443865565306049198529199917359373683636963145669917147969274865870689139874954450673151279782636715453523937635627959580809679799785497476472231924304453166627044870098832374594905834738708616096211239565239771572059042724573656911916003138709786767950578277751446009167410067475570689140790633167572917527288958798922973830746949466446875987980402766945031134903616819461223362803798487327365634650217529871128487065765967289759454058384163571391490896073945952508907194384337526860636205864239263631912708676463199164242822054744625837563925246646768382903503227975885109189318704777755076646169472845749255081246831142509003853466484359723769612900595792052978378327001755100703030134953355094906181233143232372248062331915212202334853062422273469462280340380291809405422359197211120990563012040862040934169715958113850778017264832775672309985100221121621261061150595047179598835838660659345355447508375979242877358290945116525445291941887903387270650708291317558981497505523645553755226069074750322810661138947286233647691266806358785122216566493162655232374775391476229731724895413689402211742814587391217892063278934545127676983431038682051540958660979368709856333274596391440164834271691890708851336169850172251410583847951912291037203812780305396822388711346925529834500589954994711676505539875751590456966106589781593426559642413434679040967090205889527293168750681383969122440336945279818208649577815180318164410730761600072937308531414132646559701623290817199423235288143845543238177417510003526060027675582138845774697456328434187754619249218461881734433009425012768940697688310151535331012074892037503511672258851240030322709361966819420872929000861112437727647525003756768485710384754550835314284722892938016249688041616061577860764268900277983977264452390675008228603790350769794494698081713987772794627491387801087354154518194753886857329306139886354353449003848825886754496801210906705477081056666782062649920306066888007146490144322603506425120006775785015458731919855745687293859670128196333191200105105618720085798959865089309073702646766156162813411651120633508355180737682291841175110162922236797687497985414634742595255738338510500296128380553811546917807559690345768520282137399466542924223188130062625174099308090245156826102829587175066701199930646127193465060863618513268025027575536778739538584893964111238332149291622134414425788557706901022379010726133823838457232480371401119613751052090094872582325325207979577975637003222573322936212855454493646041296172910059211221777108217218589138295063459971725572882480312146859538451027410701344162446696903300178583496230207242575112527759917301718981060791424185308950401255489819450166824254130943847137497106092821257607504284515030783768125254158369586028554277676631587742544010788827725480110340009744426764782092312221230004102874991170488043547382097520382911391541504854118005649462560737638382825315274131463581781518658605924090686522236678866464770173283000002572560033428711430679825544425569864142726432800862930463791645797152604310303862116914730674703339378830275730370913781270329128520758734672083275655696037149392480564915153001850767985755399805044396481371779372833494809958846653713486964803673332556272717091673138199602810578334748082612105005674006366496957018155571379191718432064408097559807947268953818695814150522057531642976790320920483069082599722234660559821358325422760110896770306012068319602975884740846742089634720147699990386198837309324067156452379671189775189756752134146451848503152650258093531589280916104209171122557519246249258998344562612761590984034960222141181850603986194415614390400715438299721185432180332757698598226134499567168021977609290817885676235099784971990261433328674482866174876591085044307137172004938195045408155675056061483824177434937593299100146885471195310885835890483374855582590209917777451962812019492495644132144202867256600570715063048298214742795047284554174757136375711804969452159738664085874980770754448878692961481928700951981472915399392341941017127376642763388586349274390131040406764859015824073647980658133532074976101737765803341944907495567608476048141529325608773340035327071142952698843313093904576196262530829285004543534937348881363011925479134033204425860948768413217784820705204894600394702748851007644224943903451902833864442091216350998864398137741125538828372191399403863215109652579507966115878088524452611686353885730221053183829941000050888456332436793754424239808955810319024569426832782465046034157873740263376584767069528956606510664593859083572291854550989199264610108170881483191320508241793757617929004686476132622595839820153906821361433286547729048054787760603727485553086499338555661689578371101778384530145107050885468398542609444395210342878289770545144623604985996854518245956191221073767692432687844607687200804384284052051826853965526294928798047217434861080869636062885823640631493696936750348289453336501311588122944028415140824840029321247546922851425761916693796825080002554763301602507965510172139439190430530895360025108651144666471632082908936256571653520231444788928854339897784826801032651272297238237438205412084004737362375849102183582903610383513501321326940973661684566111781524773520835994222359440344627145627980824964643108567715248565872671320270618750162950827847778045176382832277273014659385779851370715853063793167226533315301069800058403073273740876707781322819819269246509717372723583290643884282734738013212567284772473294835520635375520028654831206425283664566515073808135693791887477306551576196009958292317035658681698108759466913945854374147938949478453860379687515504156365593313095985970890497330015326763926942195817212230954258781874735398130355696805197318997818060827165367187095179014261050873236423840029141685827507606801803043114741455302683055810320357633579868663539258924892855252850707005704726293475775979004706083484019465367059762527293129993821861507071072244799611341866588846175029040967122352543921029335862068595471921277332742346519431349926751053729264920087277078524913166204421463258626382193403589581923071207343863517887310330438560944917929202913319261174812138646924006606048310296058218462490060445153783232564902805876782198840131950704150821841887173206706420734903772431130051600964484036789274994733289396061668431557873309994068570056285539853763216121043474732924329171534685738393519043960702847195049945702543190171720618677025778430359982583401404403051903518046653375320277561218263894838060548152329105389024816439897359602493925765745856842321500800065378690088491918066608416801964079046794928691187142294796327748496624800004332391883197858352362184752430939575892185880917358680223278465115749040850130495541075788220844912559839460453790945415897312167881096877489101951588818530530648607541194166181906530004020275704492923834977694803217029015375875623089586404559041487579302528871747034601228848340494869567772083155942265693313136668297502113675764116118088865695326252974862180686748894022699704064946184045493306448723899573193831938234637065735008252266942975876114684436905867189764480344267731452087847771259323766282564207256186689265239108904787730838446592855483825696246193290601659657232656624973387215991212316140392120781827001364759427617017311337956773627826664567254472701237058935799933255397222454501412180458801935797297436900551835148983368776014831904258770187287720190254175445122362303721113633580532195966491022940297916526807394745117052718490838398289314091500009905290307505714642811818274361214469345742486202805741026232927830007703177027400837238020654364956502912143176091464621704718807436587071841347235383953216684719887717633795568733347417756220272285994752587813525479978637305500270036477310723048179610219214751064702358943041393852931796005772219200998894922152257966635158492600332394353670276398780642486257884402807951093031799885490017125225222961990663654281274611836804315459543086262528313874848644847793748776511100902002441898556737497254369834985399226091632341486429470395914641202051988333165220504552507551603599368588635149525506298707501655042918730980489195328305945741620284918485644147600947989806798842676489652279855476121082388666737738865781356057328332990325852914100160826250472673247296860843306592264600112527197805866891438951952543797416700963381714003497920082521417384162050554305073582259353316668274177782519750487366506473319518772114949162513850718799063424159235650513572177128935877418067071609982007438992105015398875966274807256258445398259628891653574121247790958971880697463769607883271228601633728393360331274723277318413067679359736592566839875247842764267046760986751777539724051920049800689744944355592075264240574212750424642012586190387779960390572752202835976949076717535289566022786381154630175495486043312558802329041333256175737276666888880319195411653611968077696176773283335157151010429642617930908992440869462975857567751281184450919168013975939940662179460007438330757229611363132216898531985611490158417819174498077091480196607669464156732285327796708504703310891704655704080654435594661339559488019720872289024827923584516150510051939770183043513092854090904789518194357121369402220281846983463926723776474571176483834074470170416124741124191549081150212226626163847535343536494859279719319903123590978617809307349146404209127616337158126077352705492568921612169269539383889036086302642168972326308361023973105395703851433391111451536436529802993609899452476478374311118988135293121344232195453534602641753959245434599666407023182773060886179839054743385266045116828348826396541667832081411232457552504668429175308743430635990194693898673195956780752046370959002147013894733618065557462936454428148643604064399241952081218824473223918277245578278823879557621693161428394948346745944553714002202463574592409665224667354029652337921502687325567448526832938612063313090975987988330447510447875873989405732713888411311161758963378647644952268673778355594570941879558933371383901818979446724641187570861027769379031699965771189756716316838550723223276509847661103441540406780383494590764421185317636775601984857048946878409316614466021641569687741579898032201256362664021660441902792512200609901471959528842245147392314576473405852439016829671536970665843167018836110580575999411178031622100855402697089008073904853444858073554538090304777274771116332884738917313885881798812556058866892569094738682740773150947993706016629485250604451970164241425191072481262646397342602477079259912348805956769909219946408902232911083295605649284082742722380787646481517045107446771183987193698635703954544862520896545343342824806064263441184897306999459953596062640582195585164236354704019936283304421539697272161506645069755019761246200138659537928223580083238443345619729041683229526088619667998674259250913879386375787516174646759407974157973351534203569531761173473156758309063519025576133672984132643208299995897537969054599401686971955598976315938700242038151084902784729401274620818192258248961513118577132224498906836356654549508749489704344824569547456438142750706437222866205622906687767720039654788983173383392688802763826091645075626604351519474469883739461770478894764319567413924642572572524337259827557353085697938025747918250562655023502902472958670699618881546436496759354123834827372199563251700628657332126640747618843015890954418098591133552998492129984449457111512738663903262113475219339886026655113241627569955099110725522612027130842878323206501192153206484527830271442397293380040899946813200273630195046278817678710905442076741266101896213192321063763179269034981865647563520884261908756940128448577945060434879966426290604603612324556497653782296321284537053957750185239943872882529766086476451874640338518268122894034319081583865971261959282270749869424656805010716151877682138228782274458627991010454390100278181293149609850586735839172695392709949451290349359351467791763896708415253445729620663214928614081883473768404797081791238968335676270099115063001070780723245580114806750343362452274162907484802567181564878583114641956413363992915049215740069279124823666267768451430494518597559238835144761314469385607371437697703341979317350024899499230184122621933843044483561576537179589071413710834882734220120593598157123397392543503042570912925207065977437071036563023619838561386610621829225911198427895694593863459757047325288103402659697034697248482538944357356105604870835438597981303876458251806543247340774707069448326925350627512789044636400927659271614294155014852264580193739337814946086448210766881369826279980328550693466247567148675787126464736079630777506407464704284641401369299026423857194181026729441971870554272732410207546437292977460687709200272531353442710809139683150363256081725320202577021062568779855426658151700364996197380096771712727918952763808446542670854216204112698225604954116618962833858418508907956722175238933061917976527493326840708981431086777165817355187927467315833211943278490661111980692771470239191403632658915258192696052863270079503001246795575261051039554601577959175093567639408113199380940389108873310060887422914718212152805141475750267178877260757784632425972085438128360794510186846174597399348170094372739620038549413811152640473901005958750931367916179904305187805075128540068884841060231739163262084978671468449502139885840840944012647731038068418300707634055164851387712238974927671841543200624821385681556527701522191138638536127177585404721870848729237571259924368790652554038764216911158645386124047885247221631244942183962224160656108148595735054178088808820373661425074491541459307366214765295624102920807658900725307782059207935058947726408782565690380040413831091428350566943100848427841331732538343379305400687182807626775309099654550223728324158442748359009467889376483500091445174303242906787469726015969788994135293756154284610267984201970599611195014274460692830354166274151240628171149407238700465120011054755514123740423968564398176372776470363758969449069950135723413387700208347753243257679507712957869891406414866233110978329634235100411994554073744237083747904189305892950062109386088991366968217146867169532050298200074321571301524869977240502802375388821853016814249457969641044910006514981853492144745492288542164481574513151220633984762412231131168445800513206702260207965911852826855132578983166141520927157128061386330273015933584055135303178230577616309719654871615086184625212907510560455178069053398535362205163372163291718445196427405384112190682166401287726609115869830891740828783891512077469986495692360851623880583184755282144150799041727317069039916192778570007410481698200362785514764154896720369796893151024308923382267823317243175681142037465435158710789376037402035701301932648684102802844342211532409813848097898968601701688661816038600530301866158507714028032411238946469565017588856059806672864166015756846079359509639038703083002347379368868219326241707285609404933765630636567231749167951849813014114191650476085618048255980915451240752810058719421021365254674489423254227063469523781633115679399877759781396536723382990392767769521635439482021761571644719817189955215308193116689139057143590667266660631625559090842712263409383789762950525048646486304554164706278432647786737076383376697963197520961692130820002051013996031346642311225887301547222005596468921936209255875890223606103267350086399480025693301343858671719777581854517868617093519146630316967161648840184935352735734016399338648692313789458393525233035543429075626350943272674694622618415893376188996678533505286846297479678025789955568651354410022591795302143142657149475546897510156150570103197627956478288109236600463023968628292836501513339596256653880947939184313686944317308857902164083999365463671225042963850507085201174383941837662001883514812021853540848289065970886555491668742840790506675216161591055372888045344397247201100386924287868329532876533985081655808051728195145318127409362620011957175831903293368190736030384814796933718846893993462289038672795648151203338698095640889628115189346667052259079037707523898340062473266537323672629021660056615384601135166448943681301924383281792349579296789438341141280156377504907472817930218445816817864864505684364868303977811448477426525500112350095333658482004368899811458060858180807985396546352993424428913630791270901658527509133037487963946760143341300020071753225633085523825228762891762128678478366761542193388973984452332494947730429232864453576708270322541875889805410519610412039678809607457360097273553444620037878315089866636160184963250225076537192150125619549846636247931999507693576148110021551533996788129853359442800701778330442854446967229770981335406244728737444166664060283747532128934530412812531495110602587623276838060039140640046003854510855929202544774169370324546908339053450889761990794451446089213863178709569935243630905192045831623133621534426058960071199197440766029727219608563847582454963410908265501251396598997911569697137083837500063657132741377960111258730799465650738091479741449792449468090918046748252884235592880676071132482444026963882233266297534968844687132031648238546583066904816639217777526391441788025373620344364268050091566867995117440486218300153405478508996353832996389940254786032252782057952134021458693417617025304806151494196602183542239446091303720148365807598875972983193158795644394673470408388711642146447911962651956082064850462221628025266997892643833435727476524440592356749862977089215896873594018357367421376412124364577758084990568305411536999084102808725928077347218894927972051624253856814229287072253774074400909459436259123234912695721627739539137044778391667458015192839919105495327330551215877849353501753852923788693973460671064109094117676439109533908848190156016657084033273146027157220504096161168634229964201357365893225879400101953566813279242083176071711033021961128941597170133011551520117791273713242937499498338510539628627298719926512627159954158859200824287594660482073783642729548523045635015768673383098996620019751408794584532760441710616689973387072376887071688879858266507379385104623998143669033193772898667268990079997022935602038097906867239408323681527033855649202875295291161219835584654230041916168009360007963014169165488761520934856701337535465448547295301496057847303974699680517400690508266957423513746817550410879449032888020731443529311994822049904610743068203115821672939101110016440346542994782214171167484267377539256468066100320477513721448212854372899182484320581863328650967245144426607089751511834886827183338124181232349558640842767770799553519302500446576919871848486316833407495857859487230337985141727696163538923060301508725017739590897380232825172198991131375526783882360040548570170146059620470389418059327448099441700080671502814972456823660627608879393443702723811570881260989666301634552560257664822076581190004809524904222294054976097292608267802798074412117548476879627429451503426737900837522189951851228702999508823489610835003360838882422243380100741715466477325032100929539393574733215932327442841757668782618133787844313330522725199687982200533287936177974157363114510081361802854305333815561736580516400020249713575087033874034365675423240627158405459516123907258122018990609397294240997525850522256965797108742452638876633715017780482276351615023667079788256080228541011515065648834432542241034548888901891540821478977746525005949546194170488618524238254379367638670817014722506472845451165403992496438375081371104422090229713092889058061468923521811549265466029991755234113041433122308907811712954255401670141449655133913463049791212772696018134180602443522868493903140431127835594552576468941055570378827123908838306899666662807763612842556965871834768969240322871127791440958096322424880510491371709892929158078689377831681494968590259997631606075473434116266951136878181273247838738353320713659743361972205884369284297719390995483124576419976915078283067408063379970582152900489617081668526677723768547528147108503695005055689098812435271425918066462430972388706716108499393299406968611528513660258194981039464352318077385663750159253972043369675706380316279282708695315624998367385512959305615930559807399053200352220614640505497909268261223098903672198810198517842224690271027421054673631894292336432292634572889162246755752453677454159764263753194088400591945287624357619234441088847026045436106779479622425114523768755822732703678896861725931759962081114705294175982965649964493590270828836641776695150057043945315603345803622155664563737702781217424718277620088935462231821788467815339003898799791069664696631104358432548404023985901152502375026505052823043742673023600595984336118354285450771301361164537360963529800268738870781723904914235126489893307996091409874785609774977183156462374330883824132913736965063368027356927084195941836943171545449432950162193989518283131818521153566124697583408611318649174027608912933485544539609379321145682794181240713616678235141800985382352463903310390089295576348437461121466410419444919526815813604256048536745138273258595041878030050503066762154078125953940971468100019784206842833807255795535130932977337015954257178621489383088560149757828718540467318283939570320032418128667062952640122688718403510550191621298059239517692043635439741977408402875698187319104428016086226291333767116267503317227942726846683722005039883145194318760733801033140564085621172029249023009866802866521414299413739860782091134206559556139521907197731842495073613820823040303156644679141370477790548726324291674599120206226213821549224500187656878463157528201085489451681036324252534808247237266766331394697834097953857759364254376315459301768196948727217437749130587081858942023510261298980888844801809368781622258906502158379363063548740604512841513318472634098350048225964160758065761743265064370262859341639869109260698238256870972297223810939298499524235792908047209654852063085787918343818249343074218809560404997457390668406676855540771867223094664496891816183344250844152028038141659810714709186308568562824391990491067974009745021815847506037970219310297346012308081292682205536478893348616471304903765463409210742969562395372297450563123041685609924677993906589955057549975507354886962662043425182953014368784958211806432888506725503956185405759955518117068634922977536655858849685690035997767772569099577280370132344999821127627458545840391910120550443425421964771437514819058547561941639003069981580754103170608358437658110169183096342396466725606359286771640376308752010235926275221056415000536809690374024408034839129702297955545471697822014023577740736390720241713522948092419619169263832608786300275083069109568935835798767173018146987565624042512506099961897432547995387174639126667505286477055619187204958537822756339592830353186448888555568929490140584217402159782953874546211885822988258040630550919424352435442160626842821774239589897881397488618447585296267408014592804264135984840321118919217509773683940418698516057599292976288800517791579657408963400034159523922868089699722702177324736727534479835285864544179983232248828749915140316132113837484763099908340286091432734167681526164819322831500142815409354511803622896362627601678175416220258349162043846159253416960922460231808524243057266037642957999702579043886960097443431900711674511799032291685745171890276030377864705290620308352277565206789933591787803114088227295980043391807495728305461179353350138063573569412498076901979202485061665581868886894734728858874389625828990972722744925947523421606476242736117732058267833032983868445991708805888652364822157927693529370533075135924192392342212288704843036818227656545289324755053358813002925255637320039935671226941469637179649859538433657787531342055948998921092454131028212122051263491753126231511070537374562491095738695079931324836588237346506663095795089062019641753163287437747076668697195249357473247208244844952262608679734703010935872316570365569363186565671703439271561045160867227446396933777973407540765205479777630135713960039193251916490556048355158784292202273773861147086640584653571792278268940318929571519737959401582429620028163547589784223355475405312929407341700081843795025484750940089682017280881832313352689968830175192223132761593451370798751716117735611209603035768186998430860415437482916639985657854869646295509342894768295035707179345143640431416489754632490143282065331974317893779887795714738654196182636772278687120312311212873865390959963539368585896518913179065674039780536854766064987053372004979037858360219988936457076936200685175883148301184910472041460543499619513730632991548222401975252957728826439308802384838923922096926793103939445291716679841511595948002918618311920947334090410558984996648047547351678415283181271566023966594468752536885938659298416891065302115418352541790226931009151395447688198763018737946877483285808140529444537433870072758698889066948206408923190121335897654469917583810440494967968040010218812204078881812493455111620223168468812318863742111174760147176549298513550768612787470245529275353782696675813277951624261275332873539064165916866824323502623235147804955922445155017688101214498831235552052013861593325525745402884258516715622612658918458877204816684557763128939285337709408044869430840724569772761122359388445007995692180902040675733886964012311316339731941210425446091707934098686644881293221857552957770916114708615829803083963057825840360105898084628205423375040455033170093763928568153480854941916589605154275266026546959037173595947812365458268149600381893121046440980339567299276023690714124542326848389017090569014228688182302528621148656440287303184493604714122834900936078336301260118816856405373007336905573810749396234971770404792056505839531837649679453900847672314875377563096288759294150414077914820788957482938810435829133796162497445033912063558957588212610640055425710643824576757166811899072055583471113675074870343417013154260437894213271972620507103825201738573669352859283294746397640706906869183929170771270773991346600141172151568032540924081583644144294354608960447362803604626108618478653714559152243516094411735351724335973559035050997607554581070300069280379784302361341881084818509245947169285593914963199924806527244771251710000866630877423963228952039256728497027331404033862637319249512125577126412665157478541268418526255882195415612110334350424761324332395489893183020525230538988461118734259442853326785651070911719245296656173076992323073974940679989053046457648023447996019574203501755831631145256128110417197243182695557490288880615255173756509680965536190746631387642766262643983576488311363397805562871436733630942975156654918946521941457321327018004342756734573253762773603754219068264494633753102247082944957703668382428892017914062558900646788050059781344359199753180155854255489815396303148860654445546845293739514032314259316437522094056882568314780214115713093231002229958143999537871793070125753234365546973309441165033748521021828991227570470948163728216307258396567752963735303131454727710018732762278851864038211250307362782523621045206948238729883881966885423156740589288209958192211044341481642569356857829124658032458978230550337542827613698552218066671743447826716519156286964837091956399009653574355097390425031791352962321694580617256944786834702987344128145476750476318738328611681996494134225477646236670074671065351398389783665451189009219417441010447971301907295637050681921265792269766364455929331738710368467833744437171713044603696996294767293466017644873705327327998702894950661274791727445257327153311805218810177139379894798928825230593127524547291501134720058845612452424531625222164670393743010389709203983655993373123128723148012627639459264129604077176245730581989785302765567831579767623591554738318315237630796741851266388175164103478586018164159583894841542587551097282857406472175989463054092670158783213853706312350490013308959566818422854269294769280443733622134718752991039595903013697944542025819809654341204900194594602889138869644332051638749491073991795355522538817030106477240112264913641325333608379523142684849408654235244510904176471486395833307610963461407848107381157265817066103946922268392375860980539306302783666371123657913830222440009036698188877314128889916975134863941488172231499748032012795386007857104083944332578286519395298414018562264110869143702287099890770838777973691932010618481479771555300120111885832552757141505490239339571301643427070157596583939861931065896170781408237989082312492701319117818864525457974495323661436228693690520974693083945932712979418929255632637661871490210755117288100406051847399111824497470383754082736030644487900450263933143418022990642955500642667492979213267327915094859741614876549469316075473840314185032525845745141811353588668799575801189942778243209657117411996208250782473282711403651744245808553181823039876156489179938207714409838169850610905431524720661717074273636333950534592989308088620233026042845850362998840336533617681499547071999180804449252928181800497905924408546613268857646491632559587113384116228860398642753962626985716293071727722379712857622152935327134064462502033038307788977225030189519121956059481882036596883784894883210137359465364572981536467297039221002388584159919676587600074794524750497923525150821606952793544177590102769375233097960167915078130709566992274062676795810540894386480647478092174397286001475925329901559368007402138444701273090448089430468901537146444139578440492111050181515100307247928264222582368363345975885804059597271567757554036402909472526667926450041643078836711297626079591792790571012493428896467307990663348574832332728439401787378045587176907028594585077729849243342217000222348567761991127650062316439170224263290519796702551520692744543942544130401432452706183919624900037745767950696103164076239895327681370128266373537548594329572970815295380426607534210630310872340869381782321192216493859042653561106889584975551843144446443288760523444296915725522639083333311384345334041669685978934527998568217044510675490306835251874219994789118386927678740400286247178881928892280134321159914974886617630806322951117048396227882227604747137373636301183129257613005367035847910717540950328313305082592653478494282755590048991732171015458791879949376669671018171652050815053579907659513335649107369626281443215167073338327841729723065931206075085049997194728481212171835453016224183878005915142580157719371059121552356987438381848435519271893928817175999312166279870504617563375830873385786865433526673969312640166063447198697162432230315151081354660581601443907373306798863366410031698199220596409571357830216663189840710068619356624731170543962106922979637638954060711429644404563503674329707997163254454273678288840555641018714458621013752488330509000561178802108900283572076238268390266420853599432220299710607386484491678930610111469157971883312948467059452009412097295642860597354335998085425617503009642192747298006998161513381037858797862528895753041216970009999360950449288916073940190079597536635042873115411260649367826880928060514381589982474307911433277475962238083786497666635245621579943231461814577188466130081244660560869311484720665222046998061379211799197156208151566669194874960946297323910436275340306984696062163514013751081528222885650289820207287604652185914141221191798175255094232930877640254752937357651640058826044624984804089909519611639376150770745099371226511616016129367436651374797193421811702308079424510761797594842218481677464742018923322150043700574044805540061908468986903857193977802198724629725568696403458417205354789521586073474422587392884902077984300860033822438771264529920132434189036616139242471997953289693513793624629900175989545113462983979018968524397283758373456770109382565356293345834308913155099800847217400310432140971110618735300958308208966763280450817064254746147011779795120499817135142565066308311894482937592833885200961794462279001177839514419911678361499848810114947143683954518087953638481114417922186332132169168507805807314642508782875705785666796107693434133856908514748320260822515187393212962580444991944033552601566189456139178599640484701496509766101459404835247067836767144559152757452564557201521669482698062166111015519829394553564830660876963445523563985551952719417615575178460036556618705724284025960999891321172094057386592349161784940967781459265671539258970095834204205341655562399031380460490196560614455187897281879806603603291320586374762567837436170451555340043806719699393531522886447123283559660150351417588983276762099471341316341569551803327900689229169591257564130932568855843628629259794966573710222151118657899246102128054764953077637825650489012146790448379372666665275266312442045278561948795069712445040830110152920854804299532152029832988572308821439071082367358771174404391348245118349757773316384421606291141981095316449650087974254886624054429444651101021731787402333684945571543431522054319931527582415452616991101262363101774376853197884258031297253115701209767095443622561713896173423003981789966559951828776867171368851811441919208360616005902487425874645069336701213894627229478980600753921802926583785638310658997730451889259736452065228031189359223592086973329193467571077506147241017439887179420838973280124479827021002791631196305510694298702986441676369687670301402262310476088161474268524561587733602258607066304892216414417664048050272249560054214279917754535785841646227227550570424490904104127481315936046931736331611260200225701978680120198448370988816019114567050590072876997875493401168527340409619631710268960390709622278185743844244447961606115156650212673189385047815635092796322111204398372748226700242951745682572744960099574191859743544949546234892218432920860246319951460389580817774559195762619188406967541469932880228604049236490223344931713202122021015001883652356808769377838873368511465038110363915360153606580552048419094359061781748390215812829583416587637827785150634379577078173073362579815289880694280829515179795328452050146428160733887184876845271709351924019916652629487307851308175416821718531162024044063373695123623485030037063522240372727783991024363776351470110821501360374572638750312357187900242115075872802711040799064401746107547405241090396667539558972099936817406672635297865192789051571483480086915631223344363781264548965456680311691710724320539378459722674317219323035704075675130577385039867287530109017106970459391878584533582742325513071629474523477342603028725943791256788839753921803130439540781205229839102467393143461648948682831319338859764410015056999513151398063531257026881126596802609131571778695529844118611722259302085825248740856916444555248291915038070820633782267011475362639818412884455043660475914706559993068752063307326935183013761825233426468668474048915757037979389629719123532775648809641789894615232288205520914667196544005805370563898163605401853977322181904845026630657582045685184360334232563100064969622400296430375690492360066620460203335097822344920557612770369135081654849522311638889058774276854773909934927576129386446265605008157866822742291645491055883689020087306304253673425756472624396210818275244624843449945249779011654463782518475689572461189389784091547899190344922802375377578303899912691442438851633988157761121505130859688276671849322780115871600050609999781997761470375388064982590343859459647994666447291033335475274920841985934674699982036019382560743473495164903571471982070329864304434380974787084298235081260851198724327848378792402624631504342398763007116410913195791656478128143866379715182205568604470455313121099790174279753083014295829990867505921384717292113256730259821194162734498210807603638342257173636081672502003193320370482212915017518345095765978472644179630190414513285586930845871042752855653733427554437599048956500520807768821430426623749230459910313033335229765746875818632921397187348759776839560451780754356671218792154730821133077360455147177849568928112025109760820283202201562003440559233378114692215315129445893906204715042320539993820014974853980962342964001234982426441394375457536801715909554129901189700762498760827317967325966977791247009668014285950720394328659675480778919848950806559345845802601925596003544288336276679797020750443021702976462925092923493957216266700922123782573801434898637259317481661439884476403376083617296536484571571430009563694741715242954909977504612614510518591533286031914135064507866387992412585370999662895683846199332311768138177119671373750186981211361443287982820085062036764972418198858735924179902305457574183501096024434065895730692477618748092310477485478708336069268067604484727711107053204278195897944907613000480389976544215582458764324519045430853282993342773181043763730657261357403598368279070583625683002313990241625766858326764229270013200721032582967695528948870284529638157988174514407076394220000062869517659932962724495303468549144466003800202656558575011020889410338062621847498473068540026497415296543935530767884399518899847057971551923056539766753874188046081927696360729320075677587865295087110761674213379733204260166856291865396047347065131215063663030430798622435955551964661701444139175489954350407551393823971200754185871509414905747324710164446408831284559294317630303180531501355493628258697333503006305954236429546343869201916129951935006977836584557439603279988879378952423665151742718285627754032827578909069573623873008662280689341446312027059598012153068760179645605994774874455529620739123697284645284021566751390884823904501301449966743730482302273280376256868048974924323299127510935407852010055628123216457886221295884418260321585910806298255819895730124760757475297471291293638490142408249119137037173695202572909277283636672133647096963793512462366869243315676253683564012870828980367675483163474918783141921889134684739954929188888010939304337295296844241063410071099032872746265035940843603082881179474850400917975626769776875989859969761924572328630812414970732760933848779182916403016472032074819139770975472280486965485928186294784406465797900630293338672179026086827195334662496515587277118374198139180071927674006293958523969273101092840493723055383060382049205402313394058918027779354569554054146133118064872023949822911492172722429626735272087372764674412010671361894536987119050176883308020487628411412810817191236350921428853241706026755655903578217109825618257625837017928492311324415669519955385800936911589732198581785929385824504044235968834263434798970610493074692430975147636606066811883050856887322979613014132297686786257048115269578016865513166930601721995218345995019202263765603903443987292747436391903911305720192610932935414579983155054737157042501417458468250970836813299400672997288580009570543782632804427694451172970152664575664027047867263427787831931561866258183991754810001797293736192137805166172152120298178923716524246739030458860170479884474329216509704365790925762353705667674698406311569043907075007902373497841138183104826492441426286371215098913356762469477927222502513473651744357072926221236929865162938816108293929911139486629329032272600789292917246719111119392971989052784896223074021972104403032459863633344319276624596943400330197329743774751769316896145714111883369183938780083323914666101243502073598922471200290270291677274146827938261315229532043564677461341832903165592375984624077436837426697579504438951994907600649560257061760531358001553438118831472177672835030594843141483519879549851764862014066662050208349321025102366913286840764071191618848553307169357263009679752006425334828308114065382583913061834269964593317600354100915652799391577744656118523260774791849215287012470157408287451997994441888426964493754532784166877983649513572816636516453518034178226490496296646660297388689086220411225543963131418828400743467147174171820053907510915414174099842303719124019329879933540359146188930333293927590211286539130993615336969854570333990733662588938584460053624122007845632980495955857422961313230486793863364644888996240303782274324747468457046055499003401945883894288509689611451570578458847250625437573301181013803215707984020794056161610318234679248148653642633534458643261590632393753503057761385061331835638430681061351578106702852428536943237256258973958310678428409376325510928534040452066728667744677911631199687118220415459066325608162077673545615718923279493742364366284269821819707809255074637067511303259330643820533492202298327357207938541699979993801102652754442917597034586839829333396734421333496542924903864175776995875985548837914370492574074001018452447086747781527978411602435883554621701815143087464181082918414308965483501585615596729395801356890183016686279148073770979139535420864679744826319003766887191027883956324222026905927217282755570441426718124984121733161683550282662737623397177499213167764147883144083211889172208400414929643153691025409482221813456972700177804046495862282443837998211388117520725272256960487782881896362295673422052922043729457524574521475309770334944348249609045486039344812219978589728690710692569647063536775192454022920968364020197033117718861842015290854018369634564903546439027007648534756921800904715404719744516555802961115770566642347068299324193398694312587027725707119084817242034711266855028337059358998164891078096166931908113476460596105859746875562689621190301119740354558098991212096052109261775456395654512610159488734142509564773594506869316576677545178686023656570230982720750082584048493246114535819085005756535310209117047079435969238346541762873655305163672570995033244049647768435422199506247284225785309527931056914331009254560813809336733975217469627680908232267721430306828935036413937225476800267670071269071267737709422191619744791922804646620600027403956315209393621133410136477403766936629360436535418449919399573801073727913895976764891004305769778691700188768362170587065874715090381368629172779423557876117256539845850239977552836163443874284546473743731092196299451927605118667078218629155608130093728036638114330763303681388042427078296236371018934483522687661930920207734415482992352059906012774531960369141037684341221378862322691390686336130477061646504210758159021174004565568477179139691451025251214315706575764430829495470468569942245929734278998492781719983663272970966982058526913658852219452768808456847978366062191002893664076058027635832401229652265574779501868295680102539871388380046513534259909447160510384085514044554146742723787975576547313357024080356827251146646696428592905400064366890627370998639277338612760157743311879914000409845813378120881789624089251282028196626115774711963173979058767008392276730862541917211002337041728601777143659205895680167480963904629719981791535485848789519619901037512753075797869071910411982707166686466536715165332923731381427525546141224849275700025513505288561100733678512831803624986093382947382301239388529536211984239910427322862346885129744327228418968404220579114384666108732692719512858238458511993889146701219943082823342494507220335965267346222678330710318958879308984227348492066436529577577699486270984666945770788600022092746570757400399536090574293006952657355757474567827281973430369154124624841008759051900726386311635559807677360910771700176409567318285497768127246433475825656631221839435271479847921554731295516839804244804162444757030300530732754117812304298641826941294317402479619178014781959659846459907653874792510589817007566681755790185576987989716281379439677395813524194324693703947181504064398352804411500604058203572240328295555920168943154522086255596991700539469626710428570842692717158980288982367098153789826077237954426465994252540647679415050041246017291299263553886717620190508624471709338796970248390903116736293708993015540698693936722145120601474169834679465494964957251323056824017535078734052632043616517626150778150563728227382941941717436537751326766072383821672268667718677470953826091083995884590843247754706272236451607647416490153219200201403469748806475227318948296338935764703155478124782859132813194912683038715750938591505022304964119865883592071645102365116557156478043789227969727395640684352093490038041295882211068408641442717811257048236516994203103737244128748039031025808695346084695736319045850692659523439793812154746552044905519984718996457432722814323462820590582169678758455161723355328271913461399856925625240666870091828989975705356191374726152495387853407026713412141646769441571007424859445354235113410341413817960634743936914618312197041546607101445022136213510130648140178715421187057022332404431422121433953139271159069287616858713471438139883795944588099415660543471242727165867522581587646966853413646353063918078512207907174443815494120899271307752014329756667044014256394395315365086807009721472097238191346524528655707961087818837600972764107919049915493464148788466770153047910169456415235217666857846127684825356469732606154082465852455067084158110694611668683365051241595302582358897997454338212753468179227271507832896967920335230513581389428405459799105723796000107259796386260043387268137766975044061247726951248458619849154564458344991743054567076450242399396535536931961380024916296902160490350896328401755643104596883438545100844374396876409137829875604160277536905900039200060246481599078392135676674825457341747728222645201641393008114358626217856128324072478795539699563453031443883299098763521157440722572150618306248635385178987964794362291529934015101020568997629084344427261667557284919239920584808708018909239879395164550624258170612192544995055881800255213257746582757855847543708073258201610655830725611722308451562780856945904670593390479137235201621981311661470597966580242199363322806081135392235357369373370518191245452858527663866645182063564565820938080636741073349568998929672189239688734022115635514959892051492778961837936252879051625103922755129291875394852181125202371283951392717058869746803517438073146796261926173601101165595958725146262884316983382065498548185208430807611155282052447475911795116485783487533102547162031417078351384488883181785594669025613589980617803386161873354177042127482849988560015960952206100743331711901049118113257726592203904434623859632921426166203966817544358497876312195085775764093552638136804912279752418530364127128769233366263154255257559246924045896354567845362755932440551934995713635630415634941631593679122865506134058735427046256441429146433483965615940642477176704673500789620850699700942106342300247808054302612811918400010429831690510311828034736748439256491513678060610433758469721305238108879818722284373631676916639561351792974583981477518286120725909280271556424144289206802097670909892013079779389351679167182785958892766012673268191916166067615538630196978723324876487230312273733585335640353386677092591656959495131869281547394352288797523344531045667778760559342678515673408459749358147359125288095191780816220607727188673498622706862770776515277906398189052052290620993269752335589277614781196740671408159710644085501145424672782125886114395768806695449398480229923611577948716194827826573519646716298257213178044535020472611808116893211058178289167585986030491883214378201774167562703694218109458607692658554823278531230225507968381441948922593390663748721911571014731458206590830242723623205272349199972857636463181732048356765133670244387655818007300219451409287472920512586301473150331444636787488659021148129111655085013874781574056827404386819985285473363681644855591126004282925047439496869493927961436936294353616527800738899028266886492380698121485024372715730325448176296243420534678977787660269672335493229246263845145249667729050869980732781572326980408623304171184766546319215637281679922865174419837067985575663083930214532388973601723099383847457737515028030499080685802591259600243164396583338852756334290554188674251778259608700602615078244702531335817206214452823585233286683697670919130126748321498726925235933114200127427263885055173758308357191823809503674179385137681560168959124771623019230783264569962662389781854358091062167377466700857657328272641006407705735226264823360402785128181594411580190173285685728464069981779305605092236637490366252181384319700228042475625548970143644153130081528104167492188188960941504225661638217709588168161856274406660823927026717310845559140438860021595944936409946024739914471374356839940229550114052525977108550003384165548098380673310093553212605061177472576835243263502846442998922630700293354445318280158517964895678389969210100938043152273504796645427117281746059500010898955331189299299665076664293527577531069506652777384011251989503682602708172232849678542011145631672044045175995815257090403356421019009004543150433651143959663498977322371606017338326499151360447593682007833653647853412611130178449753914144853666027198075878884053506107369841005994789900947516884962688727470138009855784620589162484467822952330050677181485975792031759181281567930704737274056653024962743692205728347006505022626418392238247151403907165856683829478826753015222400580041613983570821769116684618307062231195537504512922150405991769138825124531452604516593197457651182579174813808929336204352380271748288379991020846657476341628451114223407901721456239455625508540879330266869184665566660150941765813987097473351163027875379544073725325996965323708107623715640817182447686393406347578073145276967038299793435236336331684829326181815473849531776587313848892493372109311443461444699344514068699628817593137712705586047820753267329942637678555759768526278861222140314198980031292032325215746712048091281431527097956466321222214519169881213694302361260364787371876508898399002588572795251403227969527473509110022917447808297465897632556628899660468672980781695804248283525994471473843075104961248742427416535381928009550888290339543147479306120386853519958362592014607430936880049614493326516446235832826972358384499246920013392168433268668608258516977964584993041667594426142191349591559375639786608251853084909669378714320843203245750142140276665368751024762464410492714794962092946564990032413071156472371160748332050130162620198935728785469894889929670447132646698454054504161619294373383177246962715627636713712063707423322212561497849308513782393505939817199417086510039154749723506704074008415370119771946480580828666047022573993581187913393271243416302828249819890763468835028210205813086973712775681533462840820550352398017514445267157600038128228327016359324016292698720409584515530078579240488609815403338770713466625815306184904502973515107061085877516561802441447748339171650969604552714815561009567574121713581573459614254167504534466632323824994316242060004678871823786939544497827234130278190423797358715090149211612919407592523425642356254194156709499872830377996280302381715140136287781973199288614835961787171304451553177936373370709409434433857293257335791252577824463496295834383198831866067719113353007663305921336164904095133877072426563809850001877135654527220968147322812964634709239456448937658304528080024554046968741283533906838926943740549722478986450745842672570870022596292100579439604003028532822936307050580699147807416624155778004908315000369649406076534070865646200726916607352705011118483702631427309008233060226868954820383280309167886890993971554017823489036578758366204643235141896461002415438905032444312852971450240542932740774929343891373363503060312924267956599298612622257307389134477891019300711426336857942393557944350705342094430361107636572745385248182620570299474133030943075457900471584589617122581446474706616275152270034588176662348151125785241851031992374759393484460661500845026988849284414486465786139981711524338645904075114512939367074344077489016418823829769446876964020228165854270352429855988459331204246115391786792033359238413514825151167012103259516881215533821716453952377762993880963608735226122146089904139274666069531457333086122007596504580004656395515301188049080645211300873755132976224173411307933855700229258180957047473405556198808606083767610214440840363076228924752028118437248332560828368299231076285781796007872784167988048790120947225715611265743958730463022359292431630779209625202414017134315416101438501525056661527612089026666478447029485493820409043175101310701694685456501508578932040430284945902979741644586294048750700602982179761186895585639975152615986881243930937902570016482103070150141881888938733402545604558951143387797479945402732838185916980031930639857072463374410039337926276082233700478187121446379416524470743988157630783354220759592468456302741742084250341711214500906737471949854259822715451409203960206820353998860336093309872641905613374077741890440737845952706239007284093344881832293619872960637850635207991666331939887862381269852915553889688795570177892805399210303506696059677315805702163683327669766063332321864794263872288028537769450655893109213122313621608266482897145346212248052957477051143555632384362393975988879330346926043259257760325279070279455997116884367087277900325877172030761378030848751950168230007567040577799823622666988780753662652703770992154297469280926606788632228987316059130955843490787908778004123392234355164803282001960650240374315207216287037067631069567211030672249216542286027318887071861618798446292622562076319332685196986004874100061295964595428036829965731515209412257981415188206583922646329514649570628233598334043486687709390800131643099945166941914700785588358686639124413258377926923720160655348780092052284098749167073074253410275802724575051233936517957609809271863608794682525338020568762025586132682383076716218762139124793350850043768566756355576972919567095879345759709572853562972518136054410987866492964038455672114974880450437042727224743920928908611313349854649939420525082260958372249183028335243429630149234349377694956109410350518602467402823341756809448934546151467925315891381780317815931394606932486515881971073556044479103220920452686954662594350739466842215873707900074383922113096592380690792500494139552846169540071682740627185027554567533181652146207514629463123230587359219581626094261558638519351038321533983315109693443602937633307668446478574913295597810907380167842774832518822372006828708776087633855824177378035751025693189334159956189527208424303617246322414482324043732989379413519558247948644758822417950498239349503811945406460109341313588296605070412843334526994056256862925377484986150719098747314620598691617734170004442923734084057003782429155467065739044865560992149878437252136446561545798663109603312211302944387813359789824839472910961533750731362370040305132790891576738321068286170523502373362305231035922242149032576883704870989460535927941223759320727482490672455198963123059226841657135893206537296228320520787460254245828513546155548338544235006021691234164833865132900113053285765597001971238664668264589682847114812431533932149131785476490594085771226245292445468215567879511047590250713285197359260778100829157282599227669687517914469624220822380490375881796965454513188951027982912627734549211423016588989558829842040866512803303021625399520274733677412772557122226211295160989452054122428835300433740861975620812281810412198863897936156058386996290398416269578884991576580902996727812124841620211141082889665451337875482424382427793254016191450219813377275605045957775926511068516761071898328920872475626409043995422675551010789546801587113886794498610993773433632320326937511004653830484448967786976626568129667094322787424287176407105899764521684976331172126531572985428426047402774668012630378659823209694466842938473649294428835245578430680523551424624222657443309877325608907139193603651612170409257368661455250898606155033031850501578486024287916841824121842864937456293557329314661785810549419852903073039226360586855309917255569917534685124209493843419595360006848292895408641080365584425632275772156455287607236035594367698536302815683294237993878114577832179352529481841957464008098334605967986324238944514786490743306099835417036460741836528192047031091170931441962347972818953405911404609072266649618093734002168524861141391568349800672323125583078878129253278692464535359538898452492846946680391802332861439934767268665553581688800665601601684415395563996971227034764955408741085245652220019236583070434332712216638212198235495800203176472458959480882424959818353048873381269470556702784348551797014327416736386499521372740975707362394110354629784320292716388072396408766580007891882532637624281675427694768446389741913135160309814089756901820609989318523803178576922314195886772108837451172726979147840199401432578982424348026405736287480162754963229215303695278406478759832582642543136543000372278142871106357437344411192687640040250787094788185771607388591853406385567011572024366110839408707446299392689096325050042717896143387075288790763746816019741817149115748277840062586489385387643235460244765645813433485560162882898108117061970743057597875349937083584051826054818539952949731304161819870543263429622363608373513509476109402593076396549044602478228126793641267343057259734129487800449831576106406960851395110407448669396763277924004020330981667310105603391379140230092492854443432375168052598130066436239810716290269458591439552959474868512611352183220743746121042694623102697489588802396596062235700080922607929159643065253111039723091998953738889121199646258785401439357904868263694369034487070948881250578793335490089377873514286499509998774261566429973467747107777324264690954033919778422570777845381981155703782537685748185259195087768509473365856479060849579740678730622272098273264864684822069415246424918329891368410312257288703360060363779770960801205821255774094565175594948122433230141479330383929691559445704378543457145025803467210003242944962625978244776728184704995035005536693927568134625807789856273820962578592573119584813760913712435417158457704194127591434441571969179583388348273894665269441511357066074699766737960646406664628628250561501892757429900072449698244489001302466875181790647636904995447737747329140036276170087933323609353007041776862100647952051839803420524743361053625495714148319005275536192053795794258929382805192873248853341796389698565729881712906941794558994707940206066300127101131130780368067724458695831164764090469487620206537963128503543300755325343296465081640319006330232002102675383427896017571245145676113925119403862683730428140973074008344584707703277361436922511781246506487085131733596772727959071679957330055763929568102681260166048683442622898871901745300483803339390022551433987730859653035779962979723934223824461841254417638425419273195348691358773851963541893896133061213488712167994811618991335080906336361600386514010445200352817467398113684775022657253609418436035341195280676078422728925280559368885438238856204929401882800348967306423765529594984371109477774183518446508594608804905603517122031870669545491683027677116879152219861969005843302605428143773657013921032614189447760619762839379220083705691258960617966217752426348102833662579260108089160329349259445227086043243486449073853186266409955105821085215022773353281858347442952242468933106611455198665426382294931803451066540838415193837618041044166568310850767457113042302215337243208199576414986391749333665755785116742400645008734133844258461329187982763742411890577261350512807167664555343293499596606795954276676648621504533576895626780105801654996377944054121151536883463639588781567916335001492163172916594199085666279221208903727912776769576704109557784071802414508346687571354456854052798398016499331056671810391489481788727936044193857186218147220875220023628338059939191432585155295438874198099852322405039890910036927953790083321848959522030707567920800128480323120449135890069272119681806383075420470531932711918900041090920489585876957900601310621615955860753849090796931820735154705317100460867070169588110445007191149723386697304106709769109185913877906202721934889767789956387689887457615981904433339022312713733628582804266749834349352178763418691947025755907439376893629606426969839948602080830343431626635537532028588264416700560125400186892133184161732346353871115234817197681614582176414083286153404928891693509022779130942749424216597337010138399797702973546674777473888694647563500033743970073184725531132877562213646348601714739216212715901308832719420279501173035661285153504004394492356656893925369584634574329984424343206523979877064168670321631358616560212658577356733792635794265192895860741986357272514853949395771143600583766412153229543615731355093039372464500018736011191396538148576386566295583964782431276080338645008677345039938216325617463579366130824647659103034600263210071591060837516379654752258462576002933176138247672700008395728705039669573902802711124537012756666206363253885017303076115390613900193164685290890750150056307965535630520753246982022902266700736561317912291197089195073842600105413157996891501347414885978030698253153671748430712467103028260896898780553457498065169367781374119441558386686949254208870262969966267494829179722599921493671359322498914606481948217676440159090857921394297383760329106259656577680802686570170121512095102714244640175584539335096332665616654816584945958475105893185624094355759746842063177265106783001136651834888411140207843355290552758387000553369599220944949716778598205127194512471596289449508666359570193686707923283721478163725728580364313085071808643849692442626263339511382912153735117733837560648597706523267279026638492625890289962493360495193253617844065782474911323648458044246777763477976518904486605846476498352600268238251755455512331823587951146009660245043043564842685001722073457248319131337292607980754881901029284471604450846376709262186084993083935621856434284973385874052389371190609136781694257672680685992732564901583972633357467098636533047231646405942591513477962707783533466131029114168090561052285793856427807696499313080829312730273228794689618725541013793305653562597282980147442303090177282471762804818000232338400062505578185376727340055064284071663412808149035596371528360030730924839240030047772594142288199872099968234739390260141205075452146077754062934888248080561722602423315796026319498077487790312857675356291575449357841452354709315950999631981157843702706183819091307076029719090338816117794497848589435454517163825345623019235812807745751283326377134539690956888888856969557017687042438375629914195995956385728279774816278773048895321331383703169591891448064299580336016882134371368862103935341277351911402581193899715195488153495836164523312881108086939079593911823984654494804319620947780697942442600203642806841609649911888076598838424350395989663996201984589915035214377402252346509694781270950180794337571246886920566311369427742651952734665773512150801317380689689247551554931124323057856698280957546914145326176839502719796749927518975029788418043534296818902582910617721728912243018594202545732360103940183430165550671385481724508899789682687431433155319798902927749088534230351849127561689014165696380749496249757622796290567440885198137525476203298078182656341855881200466783669564682593823057589365128894534084694053776569425467608373667342152803866712746708681355437290946157704090147254950704273797133405800939527536775019783929167299861350855002407116970223286933956203971953415349860026715279227805530480676728052038695455021816235463798607467790051288483295950030635715597745252825763540196718339166632806009101799873905495254470426512996987776252448175521448975263247338176519530652367990705432226052211112929513968390381925607426798284908398450516134753630593828928727696579342827735673575873474969706571125064515547383062629115834229431003034348564469231860698554922556462883873288265966512218491388987884639819886281369954332996388240650938015349616257330583349054081867610067332673481344847476113105142687581279738702224402206152065676483441198359777770558820479818931163034298568140840975705915594936298718257062848879434752022740657792980184443241511456794346840027997706014868274136180541622564778808021329116695391776279522212372045543074764849566225953148103636189156705528930977193411036935306117383173973509129822776587413016822762567867040075989189915102511256747059685112423068551663019366079246191458866085738404224360150140810514988752576762706537436047648910091054602120411361932198457079785909740628021051424605420723788166618701756690487978057124253758503852565519748853177366736403563549309704377512685688799672849636060762495925432343770532838865725483376444809903202446317573396771867564201682312689885242465085864638552795229552842383500859695091370334797047647580337387499978130117949240068516533864642819965585827247347246325721806186038922700433026030101979028659542813682338351063606520450162690250034787299700413010217955748238883391366003160304363876936155930059227421398524765415722022642462345370924270786321605049815870688095440298546355928194850756808246055371902447787673606125301876931441637412784647183285146816053051232753271884760360566872022092941288913144037569474700116342446456071695651322175704419554205446107156302913159523560932012232881700044292064687814101175620465198594252269616633515045805846202221201497735300748523590641170373987047519343893461109742965070092284723009215305410199931265901222331862567379099580560726136685095106284257905991901643366691698992355603405063153764568891560698396018985141008566824179988296328470609965701865962081565941230580236090421384176901241754046054972930352217463402696316192973540379022785470733055925360541259985998111536001243450846689637604945232589128833039815364689996432284001871443069306704048327501202516208497277807327805481509772056836034155373077887512845861964850058552164130225958344872810047798493104183681584962303666194488064328968096652553035848695483708316383182348827164757343624279128799269948937847932131905675783654020431012396979764499230739353293483276167096884923912269554108848389192195907445197601827236285828643259500039949976251624226472050623576534824897998747457793747862325475502591929171774487757862995029527833318012808984964155218415586884318890847964662819003905716640327912049479792538506452375138575987718355938868476929252469082959082740531040187692857585995846347047776483074455615165133697045160025684217526620647302016974225077873538314910706658590804476476327709239120230494122735107623768370271839241616112315570490239342597951247995657140446801517696111052290463404338811993273751862666373642431569556456162333403008672777427830160872455221630539418815798073294529685900654515011253133532937616124606927592298661709567217206992385295031878530463663252689856468251297737533907453722815439175184875241594208727570613996643252388046460759156974897770132662747819637164980605405452703953980042422224147658372988845444058412487381495031283390757947471211856953328009975453177250332273942738741033980382595957692785882797640456916320535885873090290671897890446612636493851274494429606578785991283349815278238910241634061713436234359132167929374258063469294509545389811345056693609508788448024105478160938234717255308006072198601390741108013914378892539652337658268570630360156550721854108144861938985734424240245796853023693637716977074036209193873083180506403248850810688932160656606201103055886859893952958004080531784614967704404451885215712393255679958185856581588865893094930401416884265092876233072514767058376922722758705241540315972763243807711733803418946515452411994651654471413795995248389669982146391863243654519627822321140753709161526596162950416933473523214690634538914344675764845918203652237162589053181009695249560492664877070419887367153339397934612447285716778013616801111785128527054269387631371735138858238802607180854888112116007567635035356603204500925513740318218078685436753470837791199695392479457770062383738036169592180403116535555100935204139641297079302749054759263954786100352207171442357507692547242670559568774011447107528127196901044097628991928192222860579693544852901749838660618609638967551030114222165038540796690656098815962395023938030154176668501676054203826850435516777898625451377411457876911432427458673884949042164069360469086670916455374545441549314699368061674636264576584933749943439639028763935236217206930945216159909612834662652777111041485196736029383682608709590339031462408760959930417671297879404597727625453780359957167527766152829924081111361021805038342898711330194489318049410138312306528123073176879259827980115715589460948693883105105521402072695749272983776086454863209788585492347877145489326080306219846362127040985050319359194271456499762421155971733310345893013958129664276134675727476761431407499578900218587041758888534368400171879228510099861850605140600510959871168922450435683125278802930405487851433649880669243504218210629282145646602067668835032028988010345818180695374140183242416978177519226765562130546465665791530462745509039145984412664622835593469480399329258308924656352860323719332715225322845785916770215594558815449464691323729898985702122944648977388985590938237884580140144410891379686545307897042750531380225151348120308110850732635159502163199097359466825865577108453297921761287290786634657507852872198237162688554112385519462157338033487789507361648585951367831806911866297480274139795129371172663873690558038411960827929630199803130932889602777261215826984541608131398754478487359968239359603080164342067258862578045162553706563825405076852830179717203405285275192682100406844469376661251789081962653887946889873725503583928373411928524415220847649893587473553450309780704047159151931175638277671489197288303052246924094446043958129505072669310917309262565708339204267305120934320716914048499426741692404184650426188362498688455721613124125858024785659055134715399227775090740489028237051182055222112318296262641448485591304758661123839102930899316388781785555980223059165812895648411628927240795779676000404284822605095892381557840815376119930721359798205544331973996188956190391230220961308451940752403377131445087183642090804656654687206859555948745650483894275072805785425009187657217974128786688042090725820364070418704475567658684083526473074543187268232376266892204863108772741789868849251330988174530095746034171208715652216327498879252028301066128940009079570811341922380423891379452827749010993601420433193353916087062518644090132549199692322751157236220252757003982393557702827524970766988627508347377247361456106117146259795899791920086560297464008552630891962458568294311142465558756831331426177256975170136572317997736159265520011567566339816004458642632067222734712019934035551801904446022635161059607698676673133516900352588480420018791358856586710334038987974951787723586753164111302273797739712671237448405947847965668215269207333384813354662850218481588468572494759921586362719908890186491864916338817757586750643166709398150642155471946674403523416801169912268420095578940993743522242008249344075749712788651021698501196105190746021474647896284858382067161271636639121546972427842822618683518803079005421980582949835062637171907671269087713678811365431399712331509852288458787004677262112149100295821953221951095883019258610539439164855311231352590557876469577668251647881721115686187010452616669276103679360563726048954266661540266477058654627308837619064636851757552755134207411661617780061122983811357563585510089284517826443222078563417794590572108797175947820145881655974243972322892950026904173011767448375806764971372645986348687484935015814835679369412052418542966777150240437148175783451218531716264398652979202809067921088645918793771919820983623685744312364253953992272625117261646687968056816633578049045794256008404829829389523102700045553023600258840734575320303303901112480847422155686455480945496871089583917485081872334083529184577254020500520283115822026616508716398288677715877071684057229933256427269794495405830383754145765194043748770721779210487242218564118457368685654331628404258287624188210804069095163654055103624849098172386140713136078909631240557323442190552193400711586550934523903156142265628779756635149589287266549580807766463472193576749610536775296779342385458903262343733098151415350612191219047997134857918089808414505369050800204901831837319679383112464509084204394310688351790480774774580933324780127091326056745224472096368960708521183591954595536721305445120211574557022405800544077169917047044488669183782602317584209857292080609400837380753899563102762265443147040802078592220128678394685347992613207446918989117663728746506429470020189472334563571104877949846385175591170694117012248333649684458087656426810695837890308663626196462260465547062010383635887542018067598323909659099836056452756731917520064598703004768152217319854411842764040071485872080302318248871820339310088219542911804612453278373239013778832693045855090394937681568335341759370943383301234873481480984851121278921910472856895855939542619948733379679865087171559620984138162454016636270916304675066112299578337493036228780918980056285181993664553960065903346283924152787086997896863907822523903298808273019605971447074474131725318495816602555038962514824817487976886176995543842782133486620391621675541789919616109237173817432462299092143251739326457332435689223488618986541528225594623944978722113328794780225476608940218609219930607216884294595814104453042343380240874002884634626250495765205706423708099282909556357291245798669749211873808801679125042613682870763073301398263209562525092588278547811356630596028222645708865238037950180531082169681558908585791535455527318546593914482170372326588363271619256682638724059576724581257806492496761157821894835978709685112062836134107864027971310961422087810199936872938230533027224145293523238938678695551606388317142197480483280846806842128844353666873820837482351272535718255688643200771894254012425581778986792164159461909569135147920377420918710330542651666522620258633179508847641358710402064583621104308739205565255215057586546899461859875783182982989381951722446505130672332591663553861280953003783167092784434613827430617127558689062920412234131221918387816867516823900899852697546409769066426839298904020871058975172172341149440260465502870551181928076634947937625089783498750867434252929256898033516316229796473913666144734020640793652938641642091131633049385722635942549340208655740111546981918934345173223937446219049105301398540162923289352615808326387507991435633963842342936502535383710208388512908463999098412376049568878998085372012596606286367523520070277358248661995942705082373597582947307940608240521980785099121775212281193066013412413623631822544860891824179153326052490468376915850870356022778022621002978583676685469653408292102981056962092678061731754608421454427548666330212856574372692601694150577895950809415864868551980874823502115879642974527516228000879539926964330865250464607558690709829919155969322960478947633339862551012650545584622382790943713576699132360252961923103604180853288246898182732161909976228379441483599425846390025998294323138324722910701187351190209119577297258196595098358202746334879132970699647404791590341791340082790969517312378147938349968063472753217847619422392776326363960134528290607848943927540282560505604316449560191393619131963296420087803079602627884987166193155639411875243383051105634074477255966792541311564249939271248791439108886572372952631902747880691771605821045017968334592752794759971384572587793555031397266762179285428557834830059045377413049528667811847805878996166302012127365929730326976058721066312759281847970771850534301098486444175558463222595304256686417331333350288895278453492960914912812685954986914971729262920510013163145368322430205845421942061156380309198464906867499682052938859246543423814626131101369065388033005798693062332901674408842374909190442660711321401819477002419559000471485980281502914039790248822674714942052371412614022413218547943250013335986678462207571543788590747988940885360780310642279165259530405628074708876016733503454673176651875799830023527555058568086567723746466989331995160602589120550622031725187240704228450126729709012483110635485901406375099750805596978150411025080124375524601245520826086418393661987430116104481899221954805896522759123801883896239620258647215363990836953090907478878660365893539471040621428224525694466762330575501924133813551096032586804335483365756782589949551971846875249530769081066915735467264640323759553903508284557960281614332325006165088655415878270739901369913668439570725242224362401498244156221500606339617170178441224865605136142615724675172174979222614207786761071941870603526179515394360841699053407812396686943779809710413360479452837879290684884342176393463688443956690668847237383958003231603037448236751726729149572983326306273428833051374715258029354004555919833752360790042059371490582684702901510303325851921171941828434604604007859437427570171876501649423575956658817807999042075532600066218208457028021679013997255865741118697254909944179026192814614410607842049490222558240728063831168782648069818974764427278789537468096862751605734441256878375097243667229678868197781150226393447694426142322028824919155743001935342018352277504141887201606482742454567719370183242193502849256051437186822120041177688291521792179607926947884247293131133548009247886330441131316217281745186019043628560112084696140058390404837375193135290577863230955826135170807161814005706407087363737364542575018527614871529019554501680245840353634580784252419370710479880795842120694262830616199036926602546993347200868250131793859162817157796783520171318184735762455575203530130758310842274134294256569904436844371385799478598109997906306303314940912386374474549415005734705714866928846686746034664196409131129680084469903051310951726823320577410323607129226620892830016260005674228881825299235335114445341948467645446085008268134452161031488088520813515271695533204616023573936793558685008250271955441796116137595948903799461846289419144827145810914256379379649794205484973812489069122210077045557960550700466435775404888959447200585816605719054935434834673448974527104172262362603799809768442556066666397124127706286237426050753843487967911147536444876587483971442429887161090959903563090410318635383343984386509218907474997977831190750436957167348196982073940608063646060253407829702010782600216706638512108220433476706787053954845172859679202595704640121494742692217285418635767018069984171140533831526456813057223161285253286853005241705573841731083663416383035288255761364808930692704153240562312799391643195030032781838775790259474169042224422648312785358512589883169180914823300499562969391778649799530595731271714913887287945102558835797377202348313016144143896976222556166464968025633147975498456407322530939147416931921615022176850352120790368764066352536919155763472631336228230705627376062172218977201458723360405850493199763170241726018008021020070433325504915271657269614090088587675380264493399368384406610666737323361518840018797083506994108829729173118959923162265415349771527505522913591317276851129714508368081942788886317548450822137218505581378570660275913736858816508796650842754438087287255937202283754725590232599973122895871892740632468145567984482946369355263498846769251743737737125508418593563690899133125263848080352712538990944339582903959430169125708697136169359566435544694185361982381686826884412013028698516891372462016956119635045166910718116210013113321946064260558865142252107628375923929861017577196863422264045444844153245385512662005895149806460182957568921041247790951195669050870619461855268787722333839137463248339159026464452783128027443098755929723200597799013728670837027369819515072496715023247410222023999433784468901166996942539759219947293150640242133718824825895045490960254822972585328515195852078476738841403950801295343985177060932786972288835188765887329719039012894379991431451012299134185071808614263576105357342082907182344822886712895785562825633507969633509999763086853144843888332782235471182560484834447770659764493685929830972178332864326705707273791423058915042117658872842843224744551271873676979782774018564382596184270344204907667652146870381949412572425294426898424616370818963576170571926740522862180506950601874092817309379701014357073358469204950416393188901914938264520822667305029065113347524176668555658525626626162071661454618564643866566627729933238756907619402650341675869033254609153013257696146592712613437599084089428252330272341319620900152989739364140545690089677500101473111507067676966338031617086691444393637738458917030362518801162782208605911639802779622108885834971342237121238040760583363501401798765445558072583579556184310328592735846396099377774081904502302410462505837819135995547603526484677701291559240358418024566637626038184267018613800733896619961887170067989649329541018780028313845257577825994332008178975682165840008383595171730176441728878885109392767434402600119974300478151014356340160889562957582250233389643413007850205101560288427001990289341005426044457755925713884351194370313795238999646099358355956103772352203145581793380669190516896842638391927024385220436949265734862353205770406633633502639468920497412672458407249490614716261727824928615571866648762214061158418939176746636840679343719165380262833611723756935179810605823385168588865788680847894466738175625094976386163179577327968708728679997109551249788276757516625669410080144112378576099954897714472970772257202801295083378191936659700015206038527978031129500761852005370981313217129423607550906272268315679374481782224993272873419347895078291322392698633845989030588273692113047738408830950238722582540926289852834622350657229616271191644470907208023176364133538623399907979730300813618945761855710120193395133974388018717424650309340655002402030074726529010093189310576910715983630039009605249150882761107217568070561328649898862863351234208571800309038128638674079339838040908322479670419805204911487189175080422210718482368924162807460895230028317402837444704246650666791619064644385357118303759386408379910215423888638292183923140141508195754706599147093817859682247149678884200839268238887912773022717722695387613949414909077087795067872949711020000437614269123363584967540159222014048506771388205596191045538982594002720347069972507791357559155723729851125797220683112826028176177259357404405571569454943325425528479467817669790675167832850240088479300284499888601976665450438286035358861600710835547043165494716602380632425471834871335405045865774807100691573810708196477393179160769700593654383748979977743687111906165352815405929629032125252805304440753114757905946277524853319041030260138256478373551780311492106867824680950225378673192784848951979412845114470075595822974993391700011352811048734360337375298025973730722127433253383334148712090482046815104121301206366145000754292508831106431302302001412257973474281430118088392068755492920130304388093671474264814092995459229291109548049185406890732277011814352017614224515528381797497963316331446359288344419097165098283932987891409466729126360731404541908919854780712356386960492705988411757996098309976965960136217489852816564739928798585001160448724104120569896260750232779159701513030455865448826460642562367808453682303636095106223393956750614978915880551241589852947735704787423378409175830474459342165368226409309170271762251074486321925773139517295531222745581662414759172242137411252807276798034773564020980884410668068651893014286935357486780364941448208321335900288069998812145069543238058502165182102982577964853689692169753510743116641720209073188058077908303358635112198054088303111052778975275572291849278435711745995443084755799034739856329187058878988643911248594324656800523797525247085274729430927784178470705609146064417170795987899643734608585499964712995236652095219201052733004661050929162447463407965779091130457742115803075055075186420193148573594048567636973902075370104023439484086489998419014209999808456746648787746899971576704835237730696802097492343211350081907521120495294912337142055734245297359433150404923660889648479221201807749893039501466871974415472972280497231016293251801782270679145744324678549623367238839584703638855831767204670911495032274064277494189254395181894548742631870022551241744651992253050148651243598280693422249629742193668170457593975347868772169740827721555582083229396512252700858056512905762552917324297695645338642102893425863731048610101445777789881281237978523426358517973618904724754098125182879719571181837557820980749036838176840857990293205791086063264883898129299701893224350468582997609230105689947115307050247826498981610200245781361553834258531636232664088008621286552968274293268638500345501769626562095984346060481026389484007019880157962033193579182150409424482177418499431694114880156306000134358644018651023946371968646644312826481221187604833436908703669994042583355751344843865222476301076966949552423781711786122206803042266507531723142366235605278434062798770449905493814589505544851708288088808275228150347004298684163750467140113030622843446586129564186268669389954111367995079653386890280426595063879801913001513068969798380818111648999337231320943353856368496207119559629528138978588674713580715657037112323385190043767482864258247868353571524029082294831424877794636780805702537805058155593467380660733655159654460839961587673826713997976832987450440206574548922117557550690542031936649104471957807833878722810752675294832807436830947382362547511067094410452522991889343512590199326921882757028064212059294878784648761697738114916514072725358944047110078392486280345999845629008470071954217596862146272238629457355946710272852557286087111300703923218195076697917160558842805652702358551485853408293167402899029893660003904022464131260112388520990586519992312226943421063834533312952817195826016157358713068676779315561049523029150061417800362881960252203597141213832081396656154832779211995214879545388124230011040424075953321859279186560682497319958160931637310632675791628624614483457770563672353734970655123518836525929722542580338273721075985614539112164022800426127795877640556168369747566856853083900561339498037793538380019783407392420681290339746880733919203619637045208350522868446512527703709975426022872022988484361486802041146483187493555771513316217396337653427816341065611957792763655639597900748342882442949766772945777375061816681865270676893839529138704687688967029001396819108933317472137466536386891511152477041239428553817112147685741962216649347422514357221718527651727124790595972386489541261909020682494497703937607738696469586257311265631292967488799742116442749683355504216681071687486601259607947501074980614290053499728040299375586125766359850383061122869325619605103042907259824851421119310054019010178118209353389399726664642470726329676998042752123094767486752350878159474298258526150694132210323807410456534054455563355078210775101834184260827833647412575652297990419503652410358480416022392770795914075536462286678680893016959113804898276800182818569633091294067942655032520055814308839321555560736181198555401093134521538552329571040276938782441518059651837041224671394219297443058416579449228797335742612446135289826023948563702937483220632673294658541951725367438947597305125457552845463580983842536076680160927075666604012775581811882577249960982862320646878502552847594607477439472844597951979981473157729432177625260412560054444729682983376556839658320314997123092812804144923979716901354634469162384909885462466156535844735399736036018031210320857644420839165745534254922240482944776561914855256462762041877979271330317137380145894100041366373354088553487324221692890833867296901165709303067778626257449109089597247007382428160085960941430817228867508785902768488992632120767289028800487285623056442513022034406427147831819974990697167243295374007552326836676043005906179380232345062599012377318422617138033518402503798077016320509014303319235001164507201291762198590380521490535882938590030315523186140888218507912595039965961253834746998602205176894186940682091444386548656086271996615440073514715236181140232123538236774137109136691229245883701063588683190888345032522429310520094577931952533769776430484314336275882728546187929138760746021523988548771063935253754737559676070134317517614396508596048727714367470598322962884528721972638873742577201362610758281932484436312263568449124344845052103107887131428493388839694653572862595047064444719894270595787539152120697350345977261391902061560340686617450798518357816447360959226493300751559772445338773891612955014782061758638277292700964480370412676600626939419334783513961478610371362392305209506009634944207752331154665980347475584521238701711620879667884150749091813353146270580726690745519345850887202252885449651094320099260482521330955083954194478745540056053925133890918900515264781235647791465170026948910714809461778100904996497262600452948759038519634372659970840484826409817535325825880660884288726017964089385800194040897707423312909796305960728878574814064622596366475259600947301975872045498658431601565071570185088372357021702354775576678709736726242423904000018184692454921668116792224479171801616956016815660228862751373574437193599777044889298095569427790415331992094036864087384834307973772770237613636183230070086844998952273678832083096833280587565390284384978999207141500914142252162535639713490897112805327976556601384525587457596641119797022851412900083508855596666828393517336608217571508423550244798636533896362033614323469995389234670267986373319606339646068802116960612825474268209536538758099146573383106183488829270698951145611550800811032750781576404772661554954647499567275928349886272108293329396005640580556803066164863091345524971014323373271922998559968237815600280037220200828585410029016499784075997951944384607585879787767926014712070612722687743999110851065888650271524456162157768818205544073577592938879959649838727548897970083546135187361413490485607051362540103325555520103238817793024515882265924555049370727905029906991698144302612665843858272847205788660610701127837607125438861566336416263278168962903678835390223806253567243859501856469340793966996217113567445149421555237871133934266523289907787993755615372229164387422948603781519281514117760665772863198184983437200553493057409648482361630342347154424654896768242095296442396099723237569573221814754614557752990266847502013198014229923167233927034439268474130040544339566478752151510675179800926907724092907358564400697251999203688539017548302227789420080128098967722842333646501120829157618440033070047868275294615348874169023713424379817539367504669619337395188367557915659102067195127055338677137160113759953029883998457858754023358425246702908910906407642717244946468250438342009905140966250986701383898956653036115941094427034602924220622219922611766664314383445459345316616163811245939461701289683715935083314734409937726594344228739604602363786170668436711493729687244245202039287507629165653618422101911985630601030787329314333581544059203374226919654465666452490933294580311438486046287177052428545378412817212741790606120618543232326454852389186820855090399448844393591138962613276511452580101560598204357496853126943112002659920954608619924513357561780584651552703647532967319852029512753909175558522092908575043889618426183808788120065886990989343473720920461825366109479030453878920606994924328565192949322022691252293504638030070593095920010255000238082228351528127012969206442712129110266073565283292558936324064416563451420149915800598666596604702684541771710430340179952396570198439084956685319614861491345952296345780486620075281188728949681554927071903057228976235057112222010412641424696800637642704117524827131323759344526264284089397660872448334067581011191668433042033724762163451215267289733696892633329105227397687055535947208281195650054846780045113387106185837111367195635300732758931721438537605071129839968203101548449859061217932576071453817649380373738879897972090773193020200695421412836508741293901452403490117824662707028950308549721777576257251172412948125590814655258440002906390488535434662223410924180896462160200627893569141827979468251665903932513660671297296619214858208742335756772560538656606957018720705727712340060317499351227328236336461225934468317684461491952462074354237921773592166275524650628008676342913093414127800481465114770813669772416778446553751256147632670634738539592629889584803297680593728285074431514587835143516593420335169927208549069063719877882231303215940255066443435714308894280376027615308531639153701403671184814554204584195986582942180433840049427972154015699275409699284754262351867501108663086601261020101477862997707894524808949606883146869705437839707681278299005904566699171650003818624113305328120874220542948633704271239091087300199145845356888134701809689606393929472371039517813603765972789011953431604015074755986019018843033632594102403254335968423629066198414247359974241599325968923698909172518526677080488806268153139339807285500469368529742222303396702106339978610404326894528721300327964354627323362759245950096759714620667758772163613836011068341710814986776591027353469795843790998655377576413333221210426640593467875973757691254336687252305453114525730600377353009049183411608815091603959422090908145186588524713720364319702831588224309446144558492612121865061926934666662004630160433928227908382463836411333628330303725678247579134857130119445374550456939913793090189072815069403290927910965311418277457519811314106963270234183384533217844405184113307780939825521448234633856400241444881359551164460003195973037103847475437743602842879799874566423657450767563129440472629530046799457197798245352455683788359346400516008174167702944712339227267321810562902893117100992637977171239908946983240907995659075348326737395875869693708682557271157590455145706945008026492336857080077094232267445431625837015910781003166979971967537670835122580447120074416070483270827681704960475578773462764712972363714270101553257486849389594188634451939239200760914915993879528582919466388225882805635512642180178397471178931761808528583540152633704310964230623757733417064432260495220652609966878550775362699144274966760520759466411792463424787844952531607220338326222581275532591581252957690527439981260053436090470113448583925991906840329303203394022327413017645392282554952285560600941462303744883432679614797925297682286360255479299902313941387493002762875109834386707456457604053584974606294050271182635653217116940616784601002212292922256853406681552042599815863249205354622355006124535894508324100403357592931720414209585976990930993226301474680691998919606769682414533058203267457041764166372856545511163975983829757705896797365757823233930790685013723053521113170471175717360385826152847915684240793470328963313799356512853959431213738096673582384184073338566058185796977333883510177331966631741865959897806921880482069856543501330197660555462026856584074401940364758310299837906163806000218660925292869171699881229537047511071924414071699512387275074292046947320376236642358760763687752123305020187472285405116444553212913369499060104052400535004844403587188694730716897069921966953942979511912423719902290349428417514346248735314218205583429637705045318006324275850132539810695299094964531669842421632089960889292462757881656165050378835837869320807991670293100718675571164671265833887270497441423906788873868693927701467523522876495097664318480579994315984363338541017388007767375259780764033130580812664478579448105758139588071091228519373275421330299374289366977474462172183198707893524266047048891576304561748341375074365685994049215414920705864789399009257214145953657466691108414328169825351449492195840463393350438822993065938217394753284735958047665297681781244585510545670284567738845420470247624676388782539508712486831138919103025659144414436699006286650576821294539152667139201959166320425628184594083005814020352159317443803842197848694494852233308050842664205723688057423289310106074607594738293366000453994926232889704151091703898687072420470102444333877091791941678153693648764493629528727768256781836781370538422706564847940171609419298091404250674418887577794188375646385269729050976114298254326386964036012518611683307813416152251890114882341909483481697216943490603235089668094411944305952202898925654250684878758112148665407987963614789437502885487559344486170926039889760207189743681513272738493190502136339246756901525926923592787581005440268886344883274910392137330102646280408381490455304661986821053217838517602537371980967542855822877276013235861241979739034933229010789094533954152388705246271391292130128177393956007266586945194672841520457635158709672623551307468597462907933656651379857557658622506531238833355852511312034888562990481775811418787172255583641741582921611359410346181994408059988576451645827803154405241257096404445298397839561740457984038530831789470809453244076742246251050785839776685336690683992227205586073392720086854925489327452556331247259722381474107835200694171149826489261947798918615185799034549859240017450639704529355178297552961836167167472138609436496554072790667822412867523032631420980909516432758124592615002807358406523568186469692545144740284737205785815479901554848135003589050427657267014980875398768563023483825789790389794339791928544856290372783950956742475990374686348117964994275382181236396345956630062652120244935028167740392687671923895963941413520694322111668103422578766057896959882661623233068627034021359267044260367919647612549278659927128588855446518360377975486714071017509623755109386246745189682398093519640860157231468853903379110593667555542746915728324434349807457536803476057890029180682811095394412308598453057794918290790201907315530179766627676883835711963317110800851615024669659710043250498963459005312296437390672171221429073618211649463278353667068975019902643451985437057533997431952461800874083557020736330334374395628983840961017163415243960930221366287008058821750876931696225467938048313386032135460821239976746613280295192234191178522745584396097507728637005553831048579716402474188369924755308760053107084731434714820151899084113425079408968080056960310364693843562050502584651801570255563913312844993934261373968825140421988769437707455404843106195845177973381086880933160580475982777575292016117098204764803896296627426954601758252830896040320863508824241060994204817084420782199928578473267815065757373116383539012132715062745802284180433669591437098800398934986848763391733159574997511772435391181197077106039424731431808365406164463485579883256255719389910124151814848749654447097595167469154566237391596121962839858137671585050209906919733975550653959974199054460751222703646367584863452123960656095886743393095832224747388837679898218534220025267792400153807676445507839262060840070828513987115034677174597864394229667012671665323927297923448598432735463959544302701763949311638955118473908467139367568332287669926502266529892956999686649812017728908791471508166471556429126428312406612028328156898298159659581722397022008623807721113611985858618739209319334656762868545327104749778486279212128801470519213197465466261494496095788938401589453095121903251234482533522681278374781652741030920069569791660583592488502704807498426115576745364906941257764317755261571630585369668201134186812173352228200312767674672918762139783527692703814719202816299112088038083225631284841387162388232322481819219070566245263715329933485412229378876328550260325291110323265424803395504893473024738858660314459281373764661575533004604811714910961773406718927897837875698934883867483191617050223848433539559636665287754985621723600538860335195005487360331215107564320819958188929067781578471922765417191071484409184174012631537770353153007618786600481332096308955031750876190479475141260278596524058366299344587230290563926139979108498293412458820135528065525178304377211728273662314078764317080312517135367821526756381691286417103771819500346187296725450859330340030645284561238864710466952905816144543829303818176373282444724090874974585292728437925433444539034623197896344679385549814742625555712629107501810111662010148549710104059745603621323635048991053664786509548000602277832529924807461329540249289238194325957806107783316838059901189781166384572942934469165418089399466654940473454564859495396169911952022923683882342740362752076761323727481228406188129358886023785645780599170286158653971509153120022403108178392734325560562734208534722975953850826840914949874091309016434506072972152910197403436518915943570521906247842674532450883430025239081367508352166711772059924275101676096140662116621411031142357714570110184217859011681554740265780457463449263331702066481089716395338748613632155195761190910338476015803891293921426314075775707962937752524936071015560886154798199484653849990966426916954357935843518217863272179930898302040626294479832798667124834111442414985571255803011073331076235649809073736501599719549685031889325474124354582564968775341044841255759164064677779943910559661892106868319387543437379895935823777368398200382831831287842544779483546179955728444823702135252229001577399675213770737123860005324292171184479701910834432216398584058504005200610057816813682432768963783006667326592168260988505593537010378534143918596045940677176504133495114431750010927791434881220237780847873386431811780781751173333513352040756650176697691799596319018818881054306485306037079373697132636517123228111648445913513544599275181056756948201515185421417691352827464827395895789610884034622037809499788585969787656388928893718470747228155622528168112086015180840406170290308349266410898279189966896110792398334291062485986430290784996659002048739029610853950656419474386013711735348203498005078300820720702906174815866732803038764202781576765011444362705720846503809381647478822099800666838676771021954431277596164887834120976574348286548749549857844621288055491460636212695031450849144704714106251063274512450162093347285544056367602273688406436401956702614242615997315494189382272132111795807647908302892860762700783088739284405577662315931016911253691560767054231387385691014200716749339048936814436996115719979720714342321659192786226791215739118493059671042048124174189944328916764934460238156438790620140508121207880745484337562574878126828564207854646031852653146992728019886724436422828319890804546746899269258962507149277376536631471033599080932522940574314019359131098028082223361641462347450228277332450654871533160213918827323808221786459073984864177826261763083629869914496642067289224461727102636140658790555163633418440236508459325245769727399963539363043174994985889339473624947764999761222110307260829908535403697202765223990048554400846398096214025636688366534753725342321492855144056032189257679728128609625767938908784770182809248221783894989578656266712354236868435572695031529516458075712369647095828811896916451810496239747625295464279791958842032197511200582150650362794566321804910020785540459310347771801344088483305429394788223295395711781403638724651745861887044671961763810424921154187364179631690548112619203393910886875953220048873873617703412684047071592086914720370150804195906562722786575674756878127843304890790735988762550131809712462461146598768149529897511848339536291371615118320286002499296454610051472741894427720703074980877451818615997518326778351389952395215887617968087167530102887551234988291981292307045484641076734301411775777523016018442323976316545720778332207232066946228553587134346749402932668292758890615326800759403301020302689037170080075010304913261069251421186413608855126734019007264240865846310812089963928239177234228950571430264906940596620988495660090688749616487480211042014087875915067069389970863082234557721730238494772673497434671630486698140097877726480001627132290545982397413170460465522250163097430532133898595001239580318772890570869850432658791478170419339512728530410155821385013777722289411436179811834550063342018031970510052315502288840881493271082659949672133364824760894510483340023087025138892610813841170192291189070091856927125066755417325667214665067801073516411302768891815074252461739397953011743659437468021123496408079221077372764221139274298437813404072850168479003228089916050613098798771435351525165445484361145967830149043302182824058821226238740659435369363591026568051104803494855239214518344746265243836069114194218972364888370841807940509600497101795920580210694168978517421652112649643366737882102971393482968001175455408847313175454725774720522061292339398590226378390218563626359148923446843195735097383382914330088086713898979201681438098827993744053115813489098914603473574492594881814531355234788330347558211997711153126475971084180773461556431624721419674650651224994596063107079655366282795526896311389752558978916536549013211578475895682744861424936958839929844018448552585286982937052429141205815555044026030023423711095574343382598071864914866388896687969591545577932479793081704390750252481430477342989843915596000888888269284876265406307216275129232296419871764358303638340588336433086229869225922030265714850716386989556453959034072790395371603122312511625320748327106203227878323387297689646880328773850043691844013967395998051172537494016049773896446365540888006663495633342973447003384555257923607775232316624286212686840876945200155289305058411911235955111400074905781727472207314610654360518426787070802194042634293843499581500688153266187865602443988321436248504497773417222311907534921984689528866994715696669723371382221412900479403783069091172058492592576656874676416513678360768375083053474272155173256728322184566527523185226911132197274114167021496864057580891562416920213488998124510425820383559904527209210877260283321521317303438159524943563764523405426910650204258004071356567046490657914891684184221256695579182611659202839192209652742229172984434605456074360375712002598098232342155810697164158995265901322321295398042267326438025800974872597055658623663898606804428737372026949361534508621959245896570426365362390231256237468939434468499086672468639505378192831042613832027383928380042599480765328474684678229131863496376676773792465503828991494764410878157044978806173672457958707245370572423748466131551152182960702700914577630782517748364324023046549643711451393039949652904053933164899297857784917625283350211100698504168261260048221097024666936274885691219081144095727237276603197898314227731927538799008058728012032124657222246331335309258342010562645091717704665906946770038977189218383213100732717374031488138630653159642988248556848183318963464731578911472331663157502837763824568377733750352805055654976263643904143594373915348674327858988456316736804703919997878748477686776926097606373217975631234417835139243119705944222660309399637821596619194606166467019330531479249887679437470432328890140573326016485346472811513444804847613051697720498157222894498017612598995105806440303191338945437652395774880805938902804791387006172104292708470213472709144875292862120648775269075054913219068875358596340009109394086561652188724821940090157911115532759697834285859817337698350335437548296250415183600022307963617816803849791298729782372961283073687677742429968693768812525956615343249504329290238329258017311197059094472090996152537305738790106615738388018184766776859183728241385187278662066891300711069914740364528234053261390926666714545671268901716165192891532548046617383371948438849974553639242174916500238991016327928108567786532994517819550612037951987338361690718191266060782773392503711226256829195939634074956076037716280814320415191498674849794257175431463529262056470402307916657102058028889322111480843120727685182888448198974351695854189615594163809477784322693575236016369536325884574937283902198153822908382418159296644622445832466540650771442792967779015748156952717487652210496757584408309796629687657810858587004119998733101087798860275491435320043878945251330638451585233032711190785647729669032551376925363164672104791911476805212124019818906382179076707656859423674158560073484340139322930742304779916751926722114603823812258159666059655755416247319285066423698696965529148285156859608887426761881623896875274815008610332208929930061960734647911562930953293991377893149551779985922236490455012232344780520596297975028954639138367397933421886218849897488526648296578441989881432311097545042450061400623252175255562127874075983401775018539227410857092566594576845458458349343527244151946053112924128673925135110090992622865893699571767175432199796520182943059063036436393583791089382816814913011867788896319326245621850743034635801134415854935282841125004682303788048672275140475901511259501233957071004927152536880198640559312570723482704067757902176321032814495001786188888562277358539135382327773901946647079361668699580616443628466641102176570827963016860028839069026114130895541779617450761343184621121051427647171097176099177584588015458686606623990211841804954856544973991407602088032740197802617234863979767445124381947369954784820957229810156481989031433410914477540076250172742293137257473377561131321702012732025499479621423524662791889272249810146654406378427869208164928138401471193169532988608442465686194663766643651318490842660897384509646639957895665345353868636107854807039858942088020788115605339563175478704250517820241904844910681844107072440671449531429542824682517211181843835680700510207355996117626709458153097965479899271640808989045011209663380281153324814856237756674292326572465430484717628839302599810447614610502775708424373152650254293289061839123308410905305129046595700418543070046033420774006242277616020315251008316054295414345368448692211888331283559468097352219737067307385800410550530095583697644859869198261482466073832882914038502694344914619995030551545362613083728675722864432111008323736053219379648864384311064842325763189502863457848059798937958956807992373394008128325027855317864638363508630939942884314450900299280345760034780144487220454141126447514143787022973539012049167380215917336065611582004232217468644485846547256445296761869493267401995709613876574369430982782850901373832502986383486580082644050177445870348550237764107809035081156619210301959131793380491982510040995089315234382731813893574749174845538262694630570723139047543700636447439109807670686534311868696084459530735323442866949392117562643956273387802944470331978970228245425615252071306765191952471612600773319554493910353279031502013792043267880868370001614140153384727512548110668605049199406577846129546754899281377120559179631881328128291058989426833720114539397047330987459376218839580658865404478960177725207365707136553352753102773310854534532461429868332472353407681955166239981830455988329876986404299963188259471850802698581106384160840572624096969368953335685845501725286431063912695574284612133341925531677506262184751949103326148649813582604584541279814936769281150373581276744699143934393821834953910227268428334095183368880231842196687218545819201397124457564650609714622861107898388647161291266640520758012377387459803130024981335884164054324944845252045349637713770975451175746863444963147424289070731574509627306291844381097253564528390076915454570938818228568649492000414932409756821696068651442209255985793830520914274479230358837885715257941025963613975456595048441115815675737728172220347114408396350327961120345657423649382537113974125382883510847256470757365861369168853965619982609139462897232854689799372804225796535556853350731743301034491476451694480501710745980419606287205539924381473867272589345488464849759352497497260027066132035937177544356224713738352762514722072310106244642433000545501298225276234089591405714325755214069463801338156606292014017071125833085671027836556721345191911966505427845940217630696074036969288770623746491831985996548867614249722220981901776603209899025346526934184316428668164035534337107187727803342134443087076426161781844623015434761977346230786065256091657853985800504984292083686204538341541788134007204473079263705095192203171072001427942219417892452705570599360256646884148539093464404716070219722496337898451495277307582824375547531143457919631069155908285942305345656355114885480657616081053204564429389134309102539430099803700869049208342142179392959659910565250656801326953436489711376734179727457773269649600679280579577983151742211696562944790949892441781727561447056847603474392072854759657342050598166949532539215436124417892404673342674348825110538822227016729166552093993077934105034820598650189892001272923938583260144412954307930215085152094657886173715053674085318226861158900991545433932063932012820270161050553220297053901944780629417671479643305398407724322883614937544081167010363062430779143724619413815570126016948623600684123407092220346178962563365393777695088629089963218392005779152614610403761169639827285443489208836107375982228131298073342665499186183307866755072184735730564503541906485658488807512131005627683680463032885181235349304242630682020294550440256962283600350400262866500221958844874073384127949407428839605969797461439211997366562888386569771717949678454475692932316530524685609143178176148211100148476886714753505589431781928192050270763736329653765228279571938296020932371897290327946661411502378992950860961429445349347865825924574996025450186930533463329814812129412347840494719782183009677676036365926703745797310827678461313356260627967475932737569384565330693508365574371853979039687963822347542568349433198616243580561506721813706492080142338299672387553032640716927897390413197908666782264057318838894940436873872607448578198394378845631576974527222947086881689630131869899642241489132854498372458270435198607506868087186677177216167751911635686456584899756372931791631556095182253423170790016566213479477219007926065622999707505655827074843099957810371698015589943192038109704947073489847458159841537343160347593705580821603703110851860092091935221445671116994354871050197788798233723015510023389195669269903062149799108955427945077747148171736524501410317082039998047272467317150272565261907528012650358902484174360155466333213660612107394507678190189650928094035236739009869295117838974813292318969436601661729930653796832341232535018431687969368521830737700896500295493588920987595540827067475112802030670538403461559926867552470419172046349386793453345159677273950397882246949482603999441236310527326045432985032471114339987499815152700252160473202706166598197267440630825792938913157419536723744022648514019504561839125072904638831873807583440524120227152243143875094397827022194138105303709894895019478003693574693168337763198829556872497712154166886949113305256294467350979939871899662064799357898253649340984198436791146982782005491064174663179090270288853737635213695966181275552428705031193344965376703551228454800629922933407983462101653932709951173320361786162306071421695752049297930639705114464180308131761473034798961687029564057461738533572325585317401102542750878431846172137745657647928341297739427866749208937324009937325024693473909820634552110574938414028384306748509619691532873277003853999393879815045694740929124076546198524664029527777609924452490626705525473960297906095330416942900744908980981753647747385400398237060255138166290161201861956194999891893357609409995048898409767988846455394631750213774899581765485899598722138775741377579789749552818555525267414747480437995794063918828492573052084594827385118584096237069086321096230706467551915301524613083193923734300754917012719855677350961137382269914830797771973052134803509290230958424507977877539230840047458564123277966206617769070203967054131737527435865867207314727395111007676836825643148434158223468174653313937401450002731137086848150350999909014322909339870154885507071332808251616566026078927108780041344846404126231601197541222710027664228722040849225407347760199426099997755934195209924029180887254761471763107913299613078624869436680244593543045206253348166322186844701778285261229457848719678790718980642205520230602291485068939479097370744408761110680559448068333254300578712518990023192608262469980954267815238773719667819459669718241138018613837170053785832303695798517249803706355027994726060827065902952151656704359328599952284400319729868561491804085315755299349206057347085902154430478936582109834652548727620416465793942297258301680007136714171723275641358683892518848050355092037775506747428079775527252799787108872330918937181755425303728928922401341042828675846193114520925890088907844863394998406601149652929303409380016706484012959812716464885407830035301972028217408836192618371920914638536272732162593800769999135821811858152220202278037600951795214973481682132827699848230477978769074929738146630974401515148529301946669980586782491756341835417940808790284206433864205093835768596549111230112721935136403374506980049575357422817262252743799095417728494903047992479091119860770411258359551610259794827046947590312253792591408678061540485902749842934640183748360615060371754377610296139680964601850926216878334208595479488722558836098649580187186411098894884580830406663753683191185101161707615853646392470226521256827506755528085998227838876121326973150931007323710717666581202824079826294618692740529680744410582870446761002271329196934433132994954610440460188381554746262173248546208930000424035910192032314517338239809003624951628816976128292750683858607907111423036132523291143983177236825486361626132241241870737305558508083049937618439039847100146371239745517178394114257940008233619706346925585133017560006026003389166592976446923190737614102459403135672567193857315327446931801480861222570417431457391407687006347443690399787454041970597193496865022119668684937180774883058114075935849227133574350842468950440249404360433481783852953097547517919678299347501705737863311713910017168897679345519425830095826494681520953677143528083474764608414937621249467667518913574697877216370853009843044057553987618349864682296242560101878561015737701580123587097146759016791781682932422438654959107011193510278177501389455145640557596549258254976663516456750667691354586755416340959274357976792900196178544324922088131251842567448809652938183596530471980637429917054991395436906345740502610739757946185782795028661825917980373458319124571498606690599593863261284304907626421456296065022817583345495048262693679256451738214007170730512368971057587416526935429366736962737147135043486913389703568288884698900123625383353829355793175982837430179104463892501039680013498619236628815587799825630324018564897392352250382996058505994745304744633835195733032765223668253146051724513148799516187847952588571964533589288604697534454292472399467207136174698604485040125766883914462691202443852538526116143834401566790539775317554807835290684371286067780216166902004516387520016105810492073289445260151362396774414062119703133283519834700371454633391681350244948107596688100311999233927529967859493102558261657037395655274042310032438825300360800153270617431249433196232003255668844234072709501124942423284239731141588631849961048184696205539058679779007585744139176587024383003428476235511049765305857093725612486569283537762886227481703417682129653547973455416405092932798347164909223554375292315010111672382799239605825023296067749663659738969782290670611914461399575307152910273204302342665974581287550977886627182177812852952069369004550331202585595317843100738732413631672309272599511104081085346154469046290899307565110451051558133069028954487635863458625739346290186737064758638596450368221540866353217223072859289932008531715180597882403525514090694781454305253655005231284808904296238895253860238621944926905126709916245798911942755971840573769830371454810569527984596972642354408357563674221130985172367691406226897047585318959793225359420990658703733299445955952699299038230622444095475007296624453796153085130023171846458042967478928000712682315726754480530316762673341337301745684073103994552650598261805147885224292655624904938133073931354198771461042788745304174138875165410950552692394893349338186430838952844218339261181565204350545807553795308186810913605685904688303111023107540973486168305633263718394998667551903861472120299515123129042186774528804799233021058496451800017697984123772168874052564528465813184649187842877666419020115776590182668437066754091373893692372128523245455293220629003980235647006035856396213736526528639606110310984043280026824554587738124106663943191763153094186019949057245235328015954463567830226750360982264429534570162671222110364573761248043920827805230343399148088847377806933990360867992664671337379472554473206561027529287108176284147781612837266536709882205127180349295123690266576044199010773373069915570639606447947741969118387048420660368741588649649231732647832560721785899175770493927169345848910745903437627129989990256844578650492561867190660172142148420634783657394218859231821917182096389375867133063104091652103573629632147751098778507464467018608854849608265695817873542293813352850705978931378382236669535907179962589923792377496844707479458230585042631253113202126563883723391044057290507921975458625013166829990128880756297203603733398187208615053380194452462002607750174941427580910852350481102684056153630499950217368508465505968082017027685350442739216612700523065911852570674589353377546527097266294058609079168086461694099671625083611241913358099769276544765996932051039358671959358658625809799828071836046880926311641754322094606442794369757494053280326352568788441041788844979309231964744372142593407449048979045390286320473652410788104827248803721820461837884589689766525181912719259946014733808016804939263704701406782537068231495402200401562964938513255997376376320962362304124325247507935143675582667961533339425483538009817547336606969235007683313298975957647951027387692258987134471705806430367761730196183170789274263381952434533130831166814029591161009664871648086690246588522560230103032757529012600875235039810560446158961609960564487953846271321347028130874158221189817129545146161603133287703459192224108572048725312012905255889379269015837132866993817994752299852131313501935475049238126900316758005375380179597243286209620781002801317390128486989193525545145166999925152293723904577820462833476928028328741741297660341263225706986991280682925556071210830032634969723279678439034261051324430613852226028781348816485404658457705731736720724311544783990045394916354087459885762749011801415260550852444257881059241424990207510220553828059504159870432001312395484413726941929290601933118835567131449544399863715967442223254878553835465796283019567916036246984702866599223374620496742890009432082648331988475658742165566627556058170448783025081901335299948890061225546284156039512826420702758678798901629245995447687572115147676552387678072911382832084327632782523666717506072330146259291207125814496608912668920541584406433631656564940005672692352726016327655769112729968474600865914754629306683441349349603320154098438047115680748173554591627595441195060707050858574555912984727141625456336371284149314643418692862414395716307284540460247733700867470991056731106327666751310982278486893779129446224486899190940322079807086071043717145262532303323691796124467530172374394832764200477923801817701350192400844097715626325389519947903296834991176901662845373312486970040062259325406780580455743547377728625371825962903652125753255676382261649655136394256955448828643885300627000224516749170890303169602141835379121875678859431741690253409027514753233140041955906488392263230442887686302062658075288092835361631052346494828768773528677857634909559529066879179952840091889152993417571755162558256474134858075135616380392263488792074838695219196667032982954992903261987519152437077229174438578076797277768172344645510946018226652070177252180962970297942721591416645271361931959526956108694692713212808118735218907725110878428879240975875570318869880211718122117960186018159000111465006443256559029220524848936173060500621136371718949737529507605743026474539665752937863363384260199588842401444013466280758098557612267322558667083937381476924010755657187311335994738846525877571124973520078131310941222649336816152603437931474122695671496805473237169962938032005032474621676815384083840937513095911756578466146792388110077949884872842914858736217491336789173934452209743932643914963349460197439336910705891664529769340910467358689981339471844608445474180096803162781124174772850277101986105751435887076648225642322241878492373003329049026077994933242182482967136509061911722589898327791343741862575482767104557644881097128097877272698655504872367733338429124169452566549045323785998024066219027875506174436871077546877898333790018091327248564103621829627086858706123408864998382655572693489523574292482614719511096809289744116786551795862373711136165788269333565005303824372192809927752977084565535692742610160197568856166372191802277259378863933388932490604082605902182755773486095138191211869727857542092382278269461452287983843564142630552971870014587956588195794996223650185111634321250277564843241297984097828146760768930033482301433018839322965765348429064404235783477610162414704727940536927315780435437908764414624878438922919307575068188988610723286824404666049241266576813892034559156556669591279457345472600320807290981656118470237228560521160661526668331932508584626152143696542526104354608122317083058124879062133890794636034070931184297788994928994612871046515754936156267352509630534969325158778642375812513159672293411334930288567460870469498482207499977430590106313151878953312726421789494166122203558488065112639949288564303499276527752250493002073279785617777027104964626332116528009734512028461816862073607143551535771918115039996988879303750209063304596526050329120508549430827438053883513708949231271774403549246092942530759132431208933010272366954040278561321985593131343569001949146333062429073385806101205441761561631215511099447324433284001437351388815945065625659266050097387366734131335599760392553241698758225264278721965123810990476392196904543710125312952158365905744784301297589767792182425489547193255006114170845816732973246544022012605144460678990470119448617755187118819822160647346969540604089824478278852174044967731919498990097340021694070111378780755426732513013273675458506035283086050037694349161057372550991367199391738651780280070804536591232033051530851136650767057779357369144395614076554817750218960584883061727516067061450203320872573344882276587123852597890608465704090262549599905575101805133699898150412573629136443761059426402695578931180392504007001925841767846699423563065126125532270414359804004269797059614174800823683952920348679656498076721291919590361473976927311340633818391159148961095038831005834097176696148665547439751420459325517412248930609799683546857337975721823553438054872296775074835115343369890339239937972631525846225351962654313306996148404942688623144841421665241657704425163644931051081956506062901799047228946013069955796660544308414394792983110898375736138898011289791882303551062959119570041905761509316503660242805029197243816608081120962788672985133368441882971658865731396826377081284886725791740505818944051213738927128117715830217352493826364411684944777679499097835304678138131186993964492029287224430784852589365326909392069960852186959105606981266390936617947082805869296361255288060175169322522269090087307010533734630705460240349285473866263112272228794787045926277377190383520427439189835412895170553628139704329998600454800878757103198038414677189575137085220693641434484053520324305718574889536453968405623146013874764313578222509149190351483279972477181512828104831277337505255389278026455639214561493172721443789289267895599508199812665592994336117979171885904420673182840204991130169425539957181233015898990523259089666878209358682414747238163636330791885561883227965786297769254910091426216983423202344768846073365659154996999681528817910638490985256774365986471799329080901765826987369135781683978040467938217173219689394883098490174358181721999785987042069234457103366515841117625238726323396441297728870140627166293531348427332806186273655682800983153132660645653743172537499097806526143646182411591702313657168873557204996133308669421463831395439921168410544539814463260829789035433593495467412383610639952241473472598506307994800662421819858658412114693939579405335369429520430285663656353293180839664715423790146142136473576898603273470181755647769786403498229126766204620043138858415968106129066157322824504362026270364340760979004499898027720662311268275242340143452225178565098860681545535107779302547170236139593632831937998804501431028636992940026095361336401381603244187173767169487620054168142769176042333603513427876035957019748356425163507281633878753853614605624961512202117353307479020189358941218926165956185054893150498338162619169197105606907574805775954538879370425576595258784794266141342801099443157263779254865729236721915022415066138272346445410953139765041506326585060275179890710025143482428956594494023673278412322649092290019821418634326210817252373101663802521702778377942544784957119186778469141707154371783491823430396480522104877218100327642206101251370897074348331422152778233255391106370533574807279849479121827660196051307902500301320953878917380006935133503665506715826068922345630919133065919027865529766228779649454205269728855998131460327244300544965426014301736988419075945827092911519616425826942929774960454608640763015589853439348215225883906455471733586659414860288881099796283545966127185130238507774322193263461300564189529978393348538908449264880263849453804391729337884960350013845008910632702807117115335303928620745997960145351697707887394866776888940350479880620705321750794635890357963823423836089885452234812072294321058757397450489496131271525760065415988969165805319967040927378479164993255345113952380770172792199071019035911865835766533734165887663753885425852471378972942239571475215033172040639762738671689179801010365980636293041653795259051914804243630452972883032329214871699252353099225101119493700013748407514712248236437329473921619600421924147699177863864758258488304789154494327688582825255816051099387376147831407676896948380873052801734971543615473680449948490683601119481930402644059982543090137680280505479859363190578023353172085310653755864317027304933740470765224836055737866227924792857695907296267513459777364659324453845921943501890613374523305333275969613607679460652564586187798155701651948355808072225746761374330986448393422764052665552676506126078008715012281902620266887726918217298014025542484461292523313494523134710306161423814561256840850059421858006172655433561354047531570343243692882080087702284211852297201416800152789034813022813493196366571307467597974294113789853123976829380215616929790768496582997687572854849329436751493014298684306441275771934599156672534450687387296120978673580126666251410414451488002337114819505302562635251299085227295024348063137451860739199381975135053428985976338052528897959333333272341847708738614937156478759153662004714733057012646308712945068443353740653452147440388563639556606614518670357167815451862123628433422183557862719396320891527522335056026401558518908102289557828793165188483527016288215994068304311765822151685859291180572232046254801267653438950055317123483289405667543056172474049226938637832855652407327058276948227422014766370060701241380433723086157236219148992148199321703617691689129778974368592166178861095953548597247524046669885173718392065390885331941503831237197411163602582175671463285741864172970093770178938230842069387815628623654101902778577885677610859804951413316177896608517324717382144367300349357362246918113161926441895156162865358444033308639932424382268979772794160087499606187346992204277408178028906228482122217551652545124642040602081178070475668280537422676005104643266566116880659143745961446464739918356721376946480085985013086107424182247697726630560439506372146583964740376200368847826571979075468331257783818576698859514410360355869420027132694018533871339950989763685177932778161358192019330296503038087250828523137632952328878680544779159893893090157357298351992250619174955584164040741961835835193057573331060616282470672302545445673937401270118924800598755479670717208735641540964483950398291749741898766700790930502429364481180097395186657471591293218783401863295047530591218244588260838899819443448830955351266771128832751991403915242253951445846645243529807500454498048705507617399487146054605784392488114033559859829264102635953609903721148281662054148666861988443745887016483817435631494461366062141354736004379838293615430015775525999616962307282635002291985240921396921777565297398920255905360021928744176083059884632038431076482645642903303977218055837131644331148107179438029306344850119748104096965410309030743890915365728469998207519206793438645136437362606721666334579785446474665305301548121226556688763556326234532746811660165148764816886024223332341112817527721516332141913786141144437496512396845231015940685686192648826478964615227537159801846004403434625654109776768419114901822186111237057388027481777906750143209928361227617451525647422913999821001938595461969561852308100557657965296400759942915772195603553142139497443887153036969479577703608513638489319248148065474900449462722845076245886859039210792633286948551665194429762924698173931644580086430318613670082760671383691812763382052514955191843661453311999898120830247569022968714161086622847831547768324628151715129043177069912210986711575862297637012877558436080149018132352064467585039752745182004429336068270940453035116196993128592900099976821593954819436559374328309846387320766770273038335260400217307296511229491701540474484388274099715396233503033792233734344925120346020082646158521980207418991211461875335661090732159763108548491520773051320077844457541262824856187028229499739998390405764267296128219551485843726531033251809686691618839374286507207057159651388975562956041603250378919940459831546608301449297517495457999566286186303232394594618548254453395820158333986645780159658368486426038774072210966052179845194334555352673039957212375727786751404512103088259391495772340257783247706009627548996915413662608371622116520977586581268818424779700115227347554905826503706141395590396626191998369648640947019208616253236888105047579634457088422654514365384693008092018396192444475014992756143089664561877310200509666501625171633452853548178519839373177699829626920482391345152282204855137866672254330796426993792223637634041326643587476135124609857125084106249858069071050933378197664445316954642977792599920379279230765028452229145064501664422900537942613618582773570674272178686276215452176587842140285285291975763913683629841120296697655809668825081555550386528668821688932864454152749237191390353221726568404130058916978050801785034471058874174445429114237788977353471989107291566680785283725472327634074163633919232067777392787822244224102514634660282958370396971199960517288938617332849132958116959358748354120899300371352766777239339345876553117478914390984086623567434207906422628714175224730058222586112534328971656289054706400264794210123000903577117466365071098089165318550921647040149407990832874942887455623244506620551835516533637475995887014546991864814332114321961545290782105949934811552685098796792937389922784877604848828874382663141216614533116691078878682307769553272842028895588543262293962066945137600969752528897377783385187943107132853075035925521268941679398019295429367069792623752379995457813935712652527172622760676497571955411696541312803397231131627085708267415658659606086722770169193963244859370382043865841377463414888400743283895801146560387032305842494781374476323021887763774676910145836532494454358450817587829142279630961471556881677428823992383555890816390459477273400576633621907128083222358484263342395081981490632568081274643976510517670616176622825424504243896403958354450192867444194335979293077851036583363575862262304123310262985483659961703396307445963045630352545618122652438453603905554017926169593274254210094223973771762097512542635829757604250542035506233563500045067633848399570626826336563407019929403230799019588065084601620212562996262588925809471691684096119416551166283169693020713393081127853609203782635560052218777383942474474211703591222612744073982593476788750941787476666853783187431197702693519037224723655658855409857686232321707528339132060079006958904231720854745453610738259375562855650915051829977694738919655887119615573516853336857084154703422197419307662607643141680595510285571872126659485867782960325862052528141040796025004409236862081020094834041877915104212654988420372558221271326094526986406394231395980671821303227414222216944565327850442284201049526665788469243984362842403770591266958830511032498395661745827697471017657469206183513836057456547664404002040670079247011071439128845467720296302732086326676540897560496386583500725528842171104882151320807844512389611033879129339135241530482530325042217383413551618442655841921252492717920760163717880024647669476487719077326766408146014578075325842121526904089425532584304288169542522423046757860904418337317388519228641216431542706293413012363751240580654261326883628672747139863146153349735109791558933722019570411078474564605909824015371549454242847308913884621322174875316355083822225317684989521062896247081841605534833984381548669667892852232998129521782059149702877888419365555544020140684048224039522106462289164438105007645349631771212162874396897838896142477618220084537684363899725265371006877172489553174525515652386337261963860202176675922893038272391407429989404642371512977432975043969669912020400220185355877557882026411638259623479471811436018475393066506534861464740714445095242124916544149559411529164173507895663865049683533030488122352940704197169965288097555646471919718765610196664457164145372659396487847854553409114371533452245763839463827075390927453572961428550587712491603908862151053786966234793275333809648383099567126102057977521906421405081244775862225094641870494939950984021022254933356441635695775507482907528313894802701361319062007184184307567696084852520132263002504614839332862889296859764041020963402026584811595909244594005654167040231540197934205262706697492346833561438421439966361125890010810212564925256787110999436428203833154553433780673076382148214801500559517493944347143881061931095783830317337983766764441370323548552958229853312310714853949230196486880343530357361800947987706174464623147389544753683084372019190070876917848864235968673924195611681100959162104222705165478988013280058896042657797357625591851650951185164326229780629519349870430870541599135094197910801871093438740338893368254762627297977738322295214745757909390349970380917367087231301654569501549112378302495135214666803824618696670729816918129918799463022016465722847010498204764094654547079396459610824250927466686932599538729763005122122325872324114555173891217177751049282295449179473632791499360330058198865305475751181654277562486129443857105607493342464939721304103702073463408593958855395980287467464061727893528457569801634287858977797869869531881166438185188308932248212145411796745279115431287270047701925984460191835366210754619623244780951862342650373835480164712731633850243867154080701435125462237794995316350968912390084333629096789848243966098626559296850347340311782393695423760785256806333485362486496445767382755264103119194401822715129972904025827963391119121733192334092643806705377782458055549760054703511513279260629576472135720631967005780213089360883916498485914918254791048776033894324447096464217370201161402682117029128704060680095625023674976913993466650009751592196671486464141865266261813434325637367303884399543160616859924728014408810286767623087162444204141195000536466621001154172547585242204622501337597580638199144188949259254718585945207003351077413383464108797536309492737697558429047951811686724722749199165818716324155565144974352794225805630625172776389982936001986472909276950533898827995851427120207440937815158030264327490760050439586236540769948915772196581334829832454763310887013303104302864241005988914615979370313709818883203457294327685157943175988546403689936038674130647379353504731948765330992872391564067381368760330990867761254995334425450894602739578321307740649583980811417643043144115389449431971883318135191032469314727821269514241664565632384951672175855686676433847653988768057726483412334147240472282285378103154645865816262269893736771856537531624309275534968625020002536051871328270338897339592084585014661172091523305722865456004676443963892213995635616511608642160143930905556420051449959530613766873874109603733737239757455119343792860930563638556314090915368271558301168357600818119635741122330824666588686280481871660902922553785421534606903885967514209438422416607416568082087133955911408598882509333910022156791131068023884172437365293603737080772454768377480061371585704934800085864264312440732293591537901282605038333708522154486123119375829871599455623804337000042950991052080572421832932629517435761772604557851680339170814705189809913717458699949437267445922544190010502020896503258570183010558841051656609328469895653503337220164849521144745402491797999265262226792274989960862144445222724307646862474276615379386229574280839046740252764294763452119896364902207663747015641812393257574611283119634716066408193163559225647388502906249328264742417049675327566622577175830269520717933238582329626904937350886978657375924670067837888004724504395492975727167256155928454808094982648177117413523533441761365686871916694275175527752899985123293963652667792462916570220365950248390640776950691012140248231021602875869857028154523443264080597290235799673166373210962379604253119040760265563289646077999444537485939926019534553530325561783359157449239622818324733968272654340727551874220274906016131765234836787890257152252355653797198787529870071329474061698144076350202967138783556916906777962660335852018993238586046268626065421399364914313088731273503967313748280184403182514823859080252711665741898723610630957604266075411759284609438619287375477036619206172836421636490283403401011322435932917728490437159195509456725845602326052344242335514115309782105842982704377191474283585143541274830393902725479426705059556992850401012244006571893076441687422231593827430752339423524567011901500191412156210254430622529467016967813326257694086964747994965756383380393599850357982594936622505773516732615732922350937581214211480375763072309203423277726248329779337467880540499310919922957152376264490289245828347999539292295073332255054647981360196564658754791734117626940812701028353085679863500383875533221534330103341690359069195448497725034714450965533264717770701530413776030755348473433944803106945837057026033551323751910197336709362643644353902230845580197437043779971005296611037788053163154532921600412866331222078880802933576577083073454278876391783774179685411723525945925194709626480192125998293647628037040818553870015248898343067762089507584243089277148434123910831502818377065605166598417614105064149367815707854145103170580462526146416737498572171638800900605338019596832902907308047167558867845880815231300018792218572781558329049767941893474363454669928821884859460033698425457049124987764353479865395593053328673019114693148397391310636082553314360293620455803999856894518864483227163685181362681529470397760373107857358568838003045226199584680374960072178387184908924107307418407431837800567206911968339903765633987175409606313665181186210044740573259563420823363707381285306134800888803182257798501689868241716119460668129939764985230220644430910358496925766656734664492542302848291478647012866086813147822747191302324461532354696088272708103887159473579603810811003271070260231408777980910308308859790762143965411390392250454172251571666404056873210946356740513200034049589696716096255372934388922749481078045436117244001506700505415420101653362308456600548923390617792802188115218551320266775153075395188538941054182045295264601298850822986226103845107563105736153233256701308869072958012222030103780485800424369671381231182840662842185618057110407656673867371098935429850291562782310297264780938582633909984774874593230394122651942657916163796474482157467294690343081988552312564088973832914260072554132766520844850765589960877611943231840526937617120300927315509967704388650031077619404229857753919368610430631777943534724490093210971149660543416578882619005768708059349601074623385831278356061554680465032355238742802890361866371578849017338649249237039682118483890335264707901317666787935985860757944426372827067942795479637864978969643798197655144315625565227944626110049469160252153493328375337560955769785870972771429607056180050257057715580335616850569794221657484291735326549012452831650956259726454108545403945532891196586723567973468341692521150665353053732020509724429131305143494005744054904793816072781578671108597581942520405565850650168987075429133835280686011961145047514627606194833076417088902761840383281235966208168296544739758463336482363887626549643032200702934676951440573965663579230473358927131408017299576841243060734483985631137277375997153299015178262655158467510531576805989171759945776785643247105206273202193579749872137526749098321723001674868150095774987268225949310696933822113707849863163013007830940634194203861560950630544253003525005097109800062754691237125401613015689859587814675383068741289584923074310351537444907375390555776541892366655136560802449991141636420484106865628104389908278370221626397656644479090457508859484544993958104237940221165607157099318161022570841623727156413447479300454049714349020686179071912491480898140917795672193227357807654997636536430603748887970240709725342478591864150065285007715294499430397720844610990004267622497080494309313686654610197275171187085401038953012956564025528313597419669373290146169302921744004063211487403549186880204590818523382350119816490427274296041998475554885642711719379652696275074236641027981288319398968123437949114654943785209376273110650317809688694350599350562400708578988543092645622438192086369349655685667888911276692115954701063670782688182022096771271451547852355399009118135192965245068164154486768433863001555375885754810469584224635317937173674662157111649482469953983749465847161604145828285205361956705040962362101634500930043272088001858023166498875493035443132678199226869048026556458035318581556339515115777607098420997441767054257624810310023717703952116110407308063482172005615354794316308264947786507502343392007215199443827141993545299780282806911984180795670559597052326068261326405212636224650398365866143247939876729142579110404204957950453234922910009826190373089992083719272027825453746045898773708871866453908114394257846868453432941023834906513892633179639931491115661037562454847891772051500708447381165094415642439304405312259299100609659153472343862177567975852034452768264631572321263371920115461245018907167807229967958207448633948371317606622559332957702674498219887766926188820658073196621092212029685143043322088364310840260136740584372020979270898866886413809860574400471606253357133412484099557188869447181624958870683061733167304540002527331112707667639457855210943730458354577569078782761517030719645963428376585791394619007218583344194087856508282477381586005081249251047275152523645827608040285419916178003575813532275814904526701899163877469339219628111645050450326825491389753192932230169274466186469789838713613314345849329525733050462283254018982601861838193233291606805417116210691468572151871979362607773562962640796234137133995259937313194585828862848208799627834304232079025080040207699046894455377709924348741697962313794209603557624209168855476165984284198366570433758209478651370538061715404112636842057659413939222086650472365165658194467576096159579878153946903873033477543656552271910376076747205606485576677882523053085356872526083919401811619224849887039630074087969698006171747164180117233472077786278064172466440736839472709250752951754766028549984054685755092229724541490316503115031785447923397748602729587968953194644579696055994338614215528481710520919947615065369017811812915372307396916370657053402142122769121187746050827174860490694285359992696380884440748088915528814981206336569776264241220116647100003116342864479832222480732358763074127444942462626390773250476608452210424722210151782110418716521178647234844036423864872322839937423745447807062152692602675247375243398898360003632202018899342444654637072428587999760851832814317093429198969771472519954798852647427070534982618242375442978235070760987984645557999421607987377029946279116796017219052546772956725155702853811716408007228656844357390581110071594642240800474145681457261540855907738500166771459736056107531549242301743862162933151347871547120348749946044324554681265790029406881533833320873898648336862707288604822805049182433290158278790983518552847684455807887254624427272604289125512006386778939492844915193299545260319757020927213511152094104752978199145884117952583815962823218412825955798535349693575082172662918983633002893329746946730273479143594883747925010257722280799594866345192279929153669684176677933976664555832554952565922326123340271546921230019158155007783659005061090096362740244313745130509208401623243702159819023348713326009484476706336760708198277785162985474161788376717795076461037439332702321481278659029000743309439000010459762369638678123496514013986180374174751257566778130614037536140408133590998348280348274228150451580598205015648408732476694556465079592969482851498289166877844472192630737186145021129420122329908822926201047463635271090951804314141020828495756032891828108600031956423481898353927635111994630150004100673158521186112786821595345114539793737848285207875346058899281288973630742330370562934652602512172705415305382494730932287080819846147675613841977130362959663460768942078999397933959335527127986212409862930125066129387771833005157443498480098535548934506233681043041918373795333557481784525196726010090454846732893431046661407651121635817350886029194704743668132479979471234901675543264573581298158728252839467157110003533215634459290977092393360342560801725491124497578620766418085909668492131661219237675421932045652240529087409883504509066474663678154418595198686043611624617438771481969592876313773425086564212779096554928309571211738463847762176689799286015248875333883407909293947292739526210312107848969020595448270301268161379159540328633964465011331982975110404663074386226708049785883570079604828310213358454666967669738755462895197930705121324562170984964789555935684060352920919745640072006266436742436776886433601078146355512334526606013010289577894046064177755248255457399665856114507804796635145034489128717755297461009659001438962011641660592433742163686506460654901079870890307442819404750548267730960055713949196621398638327893897101489107497434577005908160198249381129399854663732404889864299861655391204198965495390826638314089365921587264952504874081895763349904142896699157939857358094872726514301406881424009725416342758344557364104817290100490138626368100822236442338732880209870704011044630014351519735843032188756855976742171661228912936859961341038569432330811539038300637462521366972148934038961682557475417853133682200795340497859882154432371554342601503274611552339579629529969989938875770352940360696213025777035613427671262424321641365655267455600693682386964835073308898794156540138262293193960511508418167586932437155566143866911976155114253086718013418577943553752060893270980021728809920431017854673586607916746024514975821698747122138104864767763515054000351702078149232261232357645780925914219084085527897168011235850912606801885913699682352476663793862017049414651439385608175060466972499763327532487991140581699622110104951259948874576432602047846805224820057710637916940610144362195747750456635863779748372847879177165773304036419702508445478137439480834901214495668468168463253839864764648981548382936321302102597662656991021146005017366384114407575533665182039767907269991757097770052762940883531017432929320361735364302398949970718688320213338929230300655124262721523161084584583634635166834554920291606998854825665361986543281336006220167073868169621034866675577210016350683099357479913326628371353859421191976180141356864120997184788437640156494645718379656840374119206563394460005183026078625691965143033627771821425116715923629432011717084471177658868971735250322384250805553059910770500587854496926384726682858502065142335461542155444056547342052394098559279624080255960702453232530911374766429716810483236340692745139074423560390796326695727514019623283105091377897228637941594884600269306364687065897811398478056457922516819211384224793934382519126893646711004834105368027398714886124673524942701347976275254594719576756107118073314540973417045670925195611687163571386428718416013431969142398087744134272752701457918215107265002018502422488164536491547602667055089958747481532262874274747473767924404133755154385633393262266039317084833103109365559252819776259442633047408506514205744963300940986367053832400034027031319557138101518241905787661433646049748306513711459692500413970004964257644307083767674210848702708785577901211326104526657260499865564312434197773980549550853121530024414832042668057292219862897055797697832507125591624550778479856687903759894973696053643482530405133042062690071221755623235203026376691556058375089542932072796580190610921325335572694757905509541487326053155958072252565104063597113681421156126309232412034601271492969198657160508925095866666309453778456876890695584893114165824208546237934508288197755531772760685878041532084382953380870489218086443881165006542450177378557414650648709149799479339284758252196490066143759347659212922953324720468483495110752468950666442490156397281037536765497001848307865708028062689542166844535326590704263389137870476824462220568328319919785962921781826284822642834224733348208912683562236027335589839194813762280446939708788687662906350593259064411795222272156498090870489557705259498155342838642276276500674708713114118478875042305412708462265180278429872821720299395342324506552766906899278034708288613003047192880166662457114623524311340197637430724208791060821993558218711051918790425814359963002137697066057845873204969165045559530138675948202585264602389104188485364649537599094318112666534471960153967909133198205084589770642236846522960385324526337794645704830734068314051496109993348776685640995053117754630546902694910676448677043893126365387453259067278610613313858530685525344592769963392439248038832961355830259524570804203218042826035896811902743193896229500313059743208138291400804597764557245649896723505785460820469762636600864767756278348713748589300756556913146983492321851155749644773594783091232705399417213676982803169086110350866072282705206523847072778524389035933342420403338993411740751214937096778851561327609329406824238976150215142927641889674949530071204241823007615927777756389918575702190556856511072037980824256683515755673619028654349223808106097176983833018280026406967410901830882083370575656892773450348438843698552724698815328541555276868485778308031961265292936436313897065814919366216505099797646172889353681233605183247801727869827738097936188588702270666330306604782857604138201609616436010852006372186371533448296736687899710534401053650376168179162385015147584103508159083050113695164070171472834577781467791057814103742848238991199498556514551586095833889209517732024312145790222623043010944527232853452259350268025131559729570342046024538570050618411496924800245999589314452116902453373227508219560983050025269108936110516122947565541107051601921778100399010760591953034735698274070110483675892473508057534822081486618946563266108362017351645309711860027337485774074629907293422596298695352756999679455540909272835022671422035019500771365258031566523358176521713721407809930313497043476106641448897183224456066378454729496917523291124789294085601330335164901364024560354154520167422993463247972857069035232928215676292605235259657739002175915514537714961376418777859137796764839828472607443396527183263978753445234856161769785134772278138895123301339381957514369966424057405624032192170002440000507861768507784003867183594813788875195316329748036574197610403647315310463718263840574703784509038567882093187297241347473418401744082264985019138598789998640169137566669524943620547222015791575125999369912622824210184573899911001296705156240054907296352289369266549499827012846002601771869335801468642488904568200219850944940003764108265982980322238777495200068175278548499063043951956739618245495811021398445942762830759801859474379311318435701388909567104878034535269126643900437639443815367647990538487497438653170668373294471003482036159458113838644779863020740972469733177888695895917879640137291912584797922927257470273039230644937601692045339503824151603061849272241547611325657992757498151024541736905582198454729537026786300649331431966226920145831927428084839500962669176642812015182841847366793689517871749632144560191542150714507252209031439059791159239622119078151298955105071737466556858396207458645360576413201579742486379869541931547766709606221325897121749718239636007517908973653173886500961055026544811191955480036982109011072841183439880075038656511455572231199781180087991496787011412546234700864202071066318627573895522628598091968727150056267044800117456209672281765853160145467345777985978639024838256799154107937712103389414279830998110909598138847268008324878292756892518149961950614637943071906949557686165961381696402885199393144537382813973881149791160744988950203026974685760543575417366266159499601326497336866731269505899693199172892349118696380705190956032583898703938384520640759408634422371770103328239772775453341409834512049842332504418100472199718993119036888044681580008599906189389984719639604150721243954835654427251050500417337834393959754358837288374262265952580624834888403463379734823299032246110008759664444864883009991067386703575194793959943786430425727215498822275477155102439580611649119036291220337568545933876302257492040396040847744659012091121647920443122466330542984349474531629981328275434272474480494820480616602358971757388532596874495460218125362628798741708308625663090375064088942351362844229624235436244469150909832003285305558277023300552636711385667363466897120500470067904802820263619342422199417368741112656719319708653901600947091803960947999048903900307304822789428332772761827897325568643169465203810471473737054962044710735879463754546609600409308714123598574460796581316813303882789774043691683238754825718495473932135891231547213193856671354857372462342263389742426380086465005218231831914610129234640667465052196614402198681521410505180194288442959319419762487729487162995391464589603454001999630981070989560485215467781350864798634181810024565975614861454103439912028790502210472000047857710089518160619964911271713863417548532744495854414818776300260941250182126756112525787344233919089664155899512205274234224418052846690253684337113002201715201643203990878564359692966892008906999712765951363806624412507459671294052159097434447813083211894931829087936132456774320012695113048195576916518163255646550626572734742248132788615942972238441828213849199692390168482306079016481000064821974408984785126613957644072751064566713336358993464423931111407678199579842883374115586791042562537872416868104554112111788775185092946680297482310858898538880817797632172365998801837555494654065665814143412129098446552294376862309232167322521840520513129950002582316614249548761830725514648420749208386715911264763554705076197809663545720394353693011413477099287362386021587219148224804161408526992583918311855710064694168938726400709960116389154295520899585987673499801826472322587570276765452475123860098833875905945327091324613417123139322815354216231241129846559189232457232142713758516855492015142712257115257837342148831563308728039376443929037869691357740145953299390725759654175164955451786823278620411395426338736064415156307235183280758440580873200510092573024281301421324898973504168670972051301540925998812338022953106606255386591946468461234101903989602808570575775378126735998783919396116431111113689215304713417704029278596653272976458115218477065380667817673968020744063093327831280689677318380793363016299662522536874104588699562621955959397695767541503799374981601218390826166637991236647161818252148416334335492559014475563547305168410879474507984616197649337947179303611521370168379653485184070274238903072935499977539845382214552531368683181313469624970387514962237640933029681258511860825455638831396684793426346598226976160005442576149780152510015535564572997383262684807049250838756233120566654655648317068063996558875680087266790699105715395651229055527996429630917772216061447661271009713459526440206608351690884532913299347563225091291684607202073251347758032098969349968331566781291497956156921879993236554212053567791425449756495925172965612993928314354797172739158140908272619274713830240801423825448623450471454423962093857828283914561456194828709389679641017513645830286138508849899451472394848501042531924990567271670530166976086750193297860721715527354893284504871732468596020658932488491634322029113677284929760504323175242985788190666205520772672704159574353799792970912260128513895513216177479709706144803153393154691848929857528659566568979584036568367009590188634960566371429535353022791410305817251578333992023557122229709900213013814284026178948345254717135809772255044195392794953490165087947342894800943642615733200678339293049854890848350192369224727796346789529322198289989981841571620501278925534951918947616448525135076401116430296698273890785618093117167072802401270714185571509994873409762324824228128465682584998776441449742454711521363956060468502821145922640893499107576996274769297574073803323179618077526485957767994867691442188363838878409130640755923527588955357601905328861446057870235174548611093341084339385493605516126158447803357789342048080334388819350562431764134455174469924444648355139663547059369148792381119264187176075336253044727407346150379861763241552123337740674823699721111677158069327126616724563739494392460811561731161661886421894312662162460348417756886364608556653488764474563268049621836152777569651614916267563964975160630372222118465376116211277372133890236449873491615135807132920039187296388101402942786930598490120635803026814678435065205842452029071649524588309059391819788716354141610956972732653551766360819741191993864109983561955603265965754196295016839167108227796015603348873350513647891918518295517069381697980809529919909677030837408650831600324578991481492845150626613523959417333666719079848560049704099426499488618767936895956606312668143982777798465634115602528988264084832340057728555114391516040019957422422274036924580308453126910036687103781288312865483812603039842766943236867989081390902530350659638690093227652536363327141021685392157582812408722730777914852004365389500159723036422277586178829647798147075687453789313326500180549728601751796902725632382404805134901115191854382775650462874743430705166636883242028164598786938140675752515378339773801476196788656978400724523292890910651648958888054296291731032165212341037094427408096504923045843173851251367381008169417829581066955992449170484890836842708043749364500493603316272470860067129582964037457372477580332541359128636530315088364689702082592588770287551432157138338810113497585444567343386314961758257133292134027099838056887589342083072360934697356351809600430599959346205751354246198950123053177887884740469584877414796625990443791026216575919150004877379586510667432931474794700696196425959534695458540489721231935480214564034423509566645135302983681486418973598991054511970699258629710907083609276785607970558540069595988557371525559489376958855139483609068419092612468517008919122136509605022666567045161899227448712725675514974457396709028350357081103665673158001652786875542379800945761639559942578828351585180996248246956156093714390875686848431336783350783765855479107406842082505590543943818326994099940639039297161688939107006511617655422869053720531993208596107733093216658591402936368869010844733104993302768543438715682988057752587224863161196414561465835500297271630576138093956843940116884407684107972354964472837270987272426595757331327717792838872691375451678750278719264024096261203819975019413961901645617910878204338395510525946917954803541653069321300022554543489521807603983392059762838508529434236079487232003719145087822382486910420583641059130404077200369482748869446977517527552259382580963028423618248405732891687019084190439369764400013145631601205255088180169365727706560191600399267610512773785527435019404698562604916423724033403892008387793063501600690545819871028940262389381016985425075823172572038594473653157400668126283439899297163931364519770376833610571422785883165186472353896528101761408424935339218694473169516698391033347140884336114580349746784040925602558911967946979064792029066368823559242244093527211373607534445001795545762293099638081960659519171107947347483392822677304641172356907494548551751900311410413340923730279246532600025211473895832539409541639754462003959852772567226604456760845339851624022739052287092873345732822410987839012827355027560009219842299123564799741114015802089424685230511602832274439598648149852771946463066593109633303659758927353427051797474645528326656903207084925533395634134354408993524692099074952509054910508227378715882972345013214453738837242942914722630905415664705019647230989715413789587502660909807984592463600262175738282999230860880147572714873610013010026339036784868542682412649862812508903885985846552818812135927585366387720171284356912858492459354371140174873733593508075149378280602677159006769172865358842875863801507442791602393531083341194470165543507433945982503803868470325806779587282077926633081202858832168119736151716271800986080204541630810194854720900647596011298710144386203482119060761551344908624810611646479144841632722828348072636030917143304220090781660740922637946474891440309056998065634566573604684936406969887113086484668094158197076742965873366297904887352577182939357784671997325452807695655298939517228290973084480594933866292992689747763914836112119384331525214032262413005155335410093074930218167958189999322927397001154128495087327516890489160794138468346045800913143795470341552562543993017160646761345883922282889967527365776716910613267894249465276108163519767129088559804215062009618144283375715543676337097443317297838459195883731077098714429467923232468356925284709164022352426911255589006139064604385977286972998979879985454839245796538972880383683475890249337777045778494409926914150601883472017976471925248687430372197940608442965876999219832510574137830694906761762178018259168293365880267359075022760823261470978332819552581560317712653196018676026121801359923839913135229014140062070123951681485223904584187367579685204216280607435434480917171021570833624791459272207939352312352372044831969025216203447858397179636582481520417793930295929440643324478262443466227261069780002161219467685451383881955086284331254637618060591965872712055548133531905575785464741992117885183998419043617511020153865715989545934398824383182710400754270773722140389615375346802872168730371493139042194773541377414948202450470472280564918744139523686358102241734144173935347467238832848464882910932603605491637740153434446412658541887861968605678348683057878281347130745002991067100076885951234039062307405591367620052411763762077218221341656766456350758995792959036748623950274358142177860514088312769631422128546395732011873152678663012844381711703285793882710187939981330944606863867686968835021922404519354172859238562775421880178349990590916349803204550168683183162249271120866328891294436151674341640784817506107114739893596270725487355170308882390189488050512724918789702723787435713401275170443965621657801513538420985949682493639322614486606482947084206081473290497010148305861650251974895727807648479635565986612702757116559776686389252814897937219643499681636590775919806660927987483920224448246367471729488350193400074369897147108786451260354073565910153751058686618929291945346324880114034952301333196995068722977135009481581262852738265351199546539777636989608293135135474831717859231201724632667022030078057028761333764957355926960333221388986378302836826770941160733043573729915245467954546656099249081618593788821972292657803650644912458202437783867817881241566482902658549061747780565669529906758002284951425151306358148850419313568199220735163464283686141084830293081570713708959793074520861131164174128096222798570456982997572135198669304590692842107015510351593278930958606665212670044065912217185006103356653414870026781939668062241036671490265679721956196393759545171643028324765385903130251460189878487109966368463808129839097206032225266746409193604048509015256528670729753647995473361661472516659246713669292545399447749123359094455853555481835921018357314172054902770889893246316810788891971417715784335598353621345100302690821215052645516445806495379355000957045695439019587409890393484184504405991371298322315923381879552001949693867229663006607801445901140591859805041738794271761209532784462409277575594566982512332228363529350384085236209950319527275094940055379855752068842853638274198986652948877930442165948799955742734667343552611805855680815999384055416420485710351661103103608182431140221029125456422190595053076330891277322101946184843738382619141523400538631683993824758503364082932354699152615392447354142077614951485658353604839892080202060215007940194916889496625807681806426612865279184549556962011107888549231565624764181315299441536430788554500103160794810376450262400554317053227350957426897123507040846580504068967189264789023186567937070722802603399054816628854699549206358314425439391666920366693428161068281405439650565240756849984812545850133068097522854292825770321092448341102470325736411430516062824619793524296055373163851390518836504785595619689375394992709658043432442331682668619312512604376544507093677218005969821235836557732280198487806605842824654139322067118515187866132361235972273140986452054538611486977301390887953260227053958012711749329367222611906197778260352127063349461712239907781594373101626427860465048162468294374054291019395000685439750188852683671433687731606406337166460543473053257230808928436784461608485416477314098907619445615247798408457782434496800624681694693992099409872023853194274383414737919180752430556610425122028326992460679826391318472837882283453420735833462576247473775691834350395979154749545134811337823213990250411001143748505849564618575061106212760549251311197697823832116907955284379638347096499037239199195631701002837924200912404630426652927875731361221123850175424218444037572664646899651120213027863751992274395675411898846724607453247253979518428731270717534055947964952279519498726908549371782306300472448318681943790433896598084273408515405823416897335655513040661241980828758656866680068403583828967197164980605897825755163343489579113222263146631074673694375177928461210742132494404926125505456990636678884818173397808530079587784248426444062611959038931751424953852702563851392981525382956671105233568962160983245833267728108866673658488143828432974345704437197215063509610185505764246698153670464265048159669937342760386813431387007272748972059154526431948555621854507729571464099405970212044047285561113415870672464061009682958923647824457445207078855593597892366628257932127329047820083985467470017836797140033592633468607064567490546839405883784688131692487710725482695203287040452018946011352471936000737710415008465212129448840809291495039091014730757916741272998883552082187682705491262882194667625926503353303797397351176230278189096629080255850340714537091357401326090659582937529391810144202896514516806377348068418569228964060912654937650713088954689565594163531485409322674911625987916896251302425231613633159428327277854265198099905287666568026099041568039134947024873944847356082026881389724803799785142750357557734176473642390864567616802332170460128536308654052871264799567759452553545649469578485087259178750355972702582267198229389191258822232561091298585207821540734095916873057735399180974521539731229569692170433718354613093609340951891060287938617654093224274615687366981380473147938796200866238505704487516848009893678354122704400065108043474061022128808472447955628664774111128446325504011607593697953884211489366942486805323265746441465648355322051820090851406107509581896801801833714104075317526071778173505889440157732967768252033275251358207350129581717349278151854954716885865258763237322149679902095642836070154587718318699329090452057261969586508439076678453075695285155049433854991234569167518051429804750460232790743758446797845970928606154377381302344320714250955177532749635740152194881866818479428280972719550261550744546622848438945044529849881345187867422058397355092223912603561631870440985901409832226858587094301874420883688786855027271518171954812756479859707811658214483926825423286921998478085313996292869768400181360193676887061967558517840113540667667981556499688658349435084605143453538605365522265024469717291331677025978339401135642056711895286531445929854089020948091204289783516607722269310786039167821855433485314423926157718082678128298063897241143193467081036706107900867942305811524306072918419895591601108352070575569419701302714606683447513049738184615860381755560288068753542261932072342780642298025031261125112995840987186957598068104326160713136338303110125380632852389421188234231564725965102821451960407609812910590682930704773613716417849528723337387889752058741701990219459196888173718031893188145485617066524832751586582610642496366487564799920479642672067946722281351681286221601431380299124829153343249614128507878323157128770196499624726218304782732942594149669898841426333195785460772730884095258483541769451121531336751129272453580325073071481503926462196576308251369701015422368762903603455462155506574335541825797926242120767601779097586999369457190771461049651065388691574197634193164791172201632266442835629059688434395516336030716996814196083597273610573601262910493313328235190235526331576881731879684619101304291828044785146807127010943371631951402953543112568992303949066341575123071770119226444921897907250100442031818036960863325322368655592241617051700055191445875539566244336073454487130283561230319136335449008630044596558046909358013629013217503087133944916929250956842507091557853994731283328061007255682204770349644600503213353674965679490929565929901865291560878811920087218294970860275352754151590594421707432083480930496697231118515918339166279221103079249701500146019645327253148635501051799454038201389647549707891951649721544891768664859560517127616452690985326910327448684458931744485840138818053344811229701545380865465565518011509960988219835406423929848804227924798122563718511226861109412798598572277635813763578245518575232777726215629151326909870938315135725960398430893655248065841830134195377535435616239881452043001505165305941273816817244606727891834083193981908467170073265843044178783465023148840918574170891654611011325483506063130409170859487389203982324569106493696633230767642405529948078981180257511415153628259316203113017920706957157429761487925641009887313432082108999433041317952038479493896517529639197134974352914877968937104172751694134961910422128189738945288151084211776521179356697248573861259932654326225958046661954111681445879665494411934845582214079889702197253615488094194165704701380322502524602669288305155068377830354498955572175743688454179322145265667231727511052583165162038797578765500819539353551381417476545642187202484182746008394367228066490587507858728864733770665650013787478988782767090873065098796110789383044416840318840366961210573385296749171296883301612737514813838107394848795757975792117958371869718973439284693296323473409961543140493089831059527990739554639428872462350620540226861846920261279259059478231251671067558549723082002823422733136831554135206226431260473364979217164494049731007755789232174297448362890011342396211963547713173164493936290716292610810801658421494417275540943473279498751673234987393118010224676412519848032414348607387536707725898284166193091082549292691560643822135142472931039394587730066465247727094827925573426744285001030445095934620735904626621586325662577676681082708046950051819031692247326879143900318059209390577871375082696245004841799772691931000970473514414201748417800735690222459699874178195877873984084446513122730313129323201923313464052841156223543034712609740397628696113793633402794332974646681770067284666112891531923840304517425399911458458352206443910473044090425446824738825011286888418517778446037611570917542540686623751502141648417807966974100327483583327001283986384399090995982788226126442274422096242283903156120918506985230849863534366348756909991797085983828783067262328326321663067195862588606740762830892394520869226704956645907375994571085924145116373701102139413709874853888223595754867275787703830342077934352830205184770179450606486322465152051675313563345056011726402996920359198180069005552981020963147482359159082730532412049101858423575317687511694334472724584771591705399858292088327794522322211155195042458379040272614635920443354099983232222789278187530910094079404836574921241165607809229183690328002488438387973312411891275464619411331299213641742448560979260319844149237189398242494548794028812912879992174752570526260827499050386953047418497107411731887253943560007170946324608061873507597728938836381755251996326039112825795924043245915379850763219350125352981695129544427764191365746046251622091870659562889374090314560438706381602928474899970618644941592616618780349449282523331467258373357508862056201908039485448640846630736763655587638583862762346181941674565770488660256254112507606130438137551389743490725137674945698808264415881905003858302279384344168587377777947096246615661133770808896939263474514219731719157612483330077923662062942627394648416016873900038288246798830437400595350815991702752230266075427564086155654167536967238228515302419776674269607621617567864654387188648421015682698527294295236895161060864642314496237506329893825481508673688581091751544265397185374788954395610442075957179492100850237448253564209966187458373273236580497467970754841780949262938480308746939514221079374520651909474507582118850239756966612773592877429527745722882588517031695498291495083187718089004099834593324701466676219501313020885931005244019766825201746328054512725261446833773021367053610711438934620093544206715231598948858497269044252023196957334194880741316833375447269491216440383499313120652417348194531381859793474546671383114250706259433626240133865249522822261955778876848129871668127764303026873636688351810307713675767367969120858215476576906115993459923006162808524540720534815203032161640391100525788984300195580565978955420763634964826383071929030184875786842461794143959080104028963307109432438006154821448698322074962146311795066263012859493980174205317211945222418388402708432292237237478431846942066016777256357009616449309224700725139394748754774638349154463398111627416215965263817397449283197183760706506468832788960652811883175688962643471095025154587925087052975593760368735444334100489195929983798458318453595123710415886277720073952032679003696417365585927462380718991588056176532106743513588936139956096767008983544849149517756407056401508211078170228308862737523716525120943658594333499145425660751570948704264939418019593765621500399058764429538413991485914437912176105968247199587419314897533428480581694151601861558634038448774821003557757545420638073812652957398999908415806699389915815673998295822318482010075312158277298606203814144768796972484355914219055562904762096283848200905145387182516313004031859218894458359116103069680652475458795488500462652878522881815462951226702050357536640052633948054456434975011421363283744832343194243097173724951717377139469336673613258192580850700794107054999324124083722888440367483238048560654438355232150035755236239496060356471204749832188212373964850621766497720911827183217698856330568658789172214403875191673835431190243511440152808898706208281466744876418804054855274294951281928077026504739131177280365087510411960329901080729068323229033021011277958316045657224697132157373320183236527049936153657230288879212828186827178952864144993369279564715872488024930423400926283905163502848691250434119589540145531861760396746994369666219895242052888914101720138261349080043825401615943589598361434572441516725318825252209375167864541267420285570517682052176919933114221460689918712501118058794131824878420786723290559393885024297736025553800037045337280964434669391789416437163652104426507177368467144324565308976226362622660744108516863647996636659622051028864802966831800513206552391127828434263610859411400550124318848703466644262603171137312166138634553336714502700135494208146780593160341435028505347491235496786149722518476332696704680664373971990019971588156909577701802558317348476953991105156157305474227080891977690270434636490988925179423237988332491730665837872499718507901622631692533106931527356680461318172161932831349846419020192452511902353002088738975391461187053954629418569060818479387856847102363640834409911636228817598923093846790392936859467647986344895487929775610260751777526615161262773483515686462998090031485150015765397624701820055375878666542054269051637540673466726108993435435530913490167131203689243607366217746283105173814905425949131482141838065276711483200611594973509433396067917775658058654716561772016686485929355502154718602755171626723419521673134793605295013090165026101894087415827498250096549654724839465239312873901619667822902222362210502697096793767036935027311570090360079058995008867147388385420864169819498738426920828388713442310970187428243955308291071085815947750802036428067328927903950002362092200126750234653588667687763175372723582476799087471362939489721482463965055710463977172370477612768178512628716430501626970776979820698856985389995712694674098881389643169408921041178622938026646029880803154236342870692443197121875574802936542475001278529632244904055472509469594787450327408281215189647149004525421785005372796892837306834200425951884944651429608301088583984094252580774706528906415731980326340880571430336841454719623717371954911418827289543576267858907090048484111713594937406930562281476840840883081166998941964173869071988626311197327880641776384400987676969930638951338802048670313024819462915241179223646460025072333629240568778448182861924246381856571372160369662721877323559772292003117343547774248480811575856234942342647222701101314646678949646898818100313996672343890291569700814506736509298519982526191103823650582019564391852562664746696777126179085810963909390363390437238515616425100037519021700436227567699113821007152678067917299229602731604089957383151908671051563388723550287987224625465806053179651745454072776627101958141139329362035515974942699756430680185530270061362841806081631444835643885624549365446769206936710408476359921266692067023697910958634895269735090388352374929052892256122776386995900066989968553966211436057507135343576775645138869396686403026799124544912931978192216438276582877010196066762488741250728335198690411487483735569940318010382693464574250338921811628201794900928780068467716737732887016891971335330354325995291673824461061795920583988841324135377348462915338672853325298342857524577326775296016886081750061073411284883028668387797892067914105368349959884873097935174568334075101706654174842432180037929463420713279484211053273712925847511104804911628028594288052389950026914536624624959984017789177028736045571145361735159841017865590704380932674017762378136995770883437126017494339610569620377013170872934665258177022324406743186654295653463195691558599765766668280526713540721192459320426383093460860417884602802018011578311640859644997439579311203310987945664671482004403605219100939296313182287899626776162699093825348592769386012957006979636562476981788365716068758159193316672325106041743119580158720165913694546721339166334163212058170210774240471399282627896833249044107483696316185315658814601641118607343085339129461699612255484223426650396231982198994647740427077171631173531978281841896849695112821580107967419423572331336022405760808474403407143634159739383882166868363816618802864921579471962513804804606396679732467761266995069234661952757381919764698744501602588094691201707088494627066891380122105324754426179194394941816964468692015614706977535776488291278511271702271287489770576624540309545671441692144284652071582748203722079680992599958184203393444260958711687058791008017427072476419085453107632284430344250272690333382873040108823389679915752803198012320927426996436727146567393563465959916947006151891969427058238312575184057148369315595803716977572151488984588957435932729485764214036843968182833138420637151165125030021974943723623270117972813132901560409134051660253232443454203112388683637585070295219051586155528362030307209054869275888806954398379496935744013192680857941818467723096764619701515812973819785171981210377267712329184510175076362389172777787829808643127109527413599890145777874046502410899283631605066277119334913669852862783842808869249137516983406018722074276099868930008874620795218165681058039696602495514470460740477737182301222786340484366892228169222076995996751449980045104184590618608609315474207358999076730902308576143187414349725791531937289209904233324653883106271919726658399716627383463334127985896929171807373311809756046926316062961047406579088887556577384166826607293245802825280640109286051269985463144232509355086881698147899095647397147678729543360548996903772548707262463574212809409037027076533230049737119840374857443042132280419706221765314886610320219671506254825326527876888175993257899379861632012844693230420330006244354381563808306710594034331223337046859640117651463984751447548264656193575766805368776786955504611283122192905200359900197190635052288919168623441046861106097376978299450232628980503641460070282030237504758514131636095755643026278158319026649532915894643974677449412837289241045936135177310740861021356224742711832075208070002405395887884317677073657630724145090107103105437699448522686762463298866725276798334737814858195793419975005115024734222544807922908510546530824517100189154618841164108962668489164111483691955924162920329821056897245876885529406469065964301203067556195351649076941931967814276571258947656828550864336658716461961877992872459008417342552019694008528542174738906019390468514493992758561907811990065683500689653311270669988336542057401122461933761750956214897622757509349881644795994937684778769298897869795713791122298191294344662638854311863093170702572596900501077017268171055510210668827281025850427132495353167768060781328265141531034984210191220461721685319900230835953133675050724338457167926571548373682501961197112240276168935716256436744223142239262195148771446627616860637934213984672792168781587421746081149830192552981616200840009263397731523614233906982155352997246085320666148094018153862116000017893642392944989212400022268131398352264407235253246631532677145071720555294744487390754139078596854920166069750659840161408016167557495064635627680259505503266074445570191620403624354412249260274410951589350969529105978361172404403375114317908009558278941527991784428909931534675438902042891245019345906234867599953342258834879448979747445102320057902860539836218552023512109883333131444659855064576940119124319018285373286211403713880686572528336871362443927631513447316065181053004159743511759149975037641342260882335006515904278630213208325763169027049504446646438605892086669040031410152943222067944411179578662942443970390565316490795988379329006391920942500292452848981564540980875583982624255312272717821988786722295590182329927142525009084867044338182742917652628034743681307083550491044506910718311039218504388940941314949431133154671340589455024263004965878113428863911641579311396639168664808407273244198355469610940312275367779964775658492217338618712996761426814103918569353024056988148758305974834213541829660716708042223648989074223085049380071470763842568208364127285599358792093076915641977424965848287588887065173102762512110062999258159090447123677721142088740679206440618259885522672361781129520367570989668357450871443181260471928742857863032274937891572497962312883418025977243426791222460188771176470073442587225106371544449389970683795856765010099860310429336626963486981298399834793204778696016763440945087445183359281695695109466059682308936476305804411910455993734043105129836866877183344052455103829306869766904796433541101466674728717197265792222111070635075898369952315359231904644623529103143269877405147109367858816727576229538903912651466350118243161035708130667053454302841477816694635592408811506762920511767585022142046473032187777145077005279296332452068773960311262362877845523811286866268567073404097466939134205952958822551539418479684078413842954431985906584979626083136952768059665863881822653437202236730994279858862116972981166512944600251984041481100808663094374142974802791524324358750217366959844597125928567838870745005349082258946821001494540523731356720508956155459781747632748425951048490303393882495204520739948332216261002777352041468694467212910911660603825108637592520354582625664051311701414739891608427676314876613537560538102626734422316484873289256509691351846264310591472017920704697294559551495536068604648971438770116913779068219838573700203043012556873218041695569556270314720700582807862940446600417147703719721068908756580504604088450513546135347884371812890590579899670928785774003222548070530771929004192640261131712997730714011958190734936668141094901913635918828258511876755202824212490339685373218857559085420369618214917857375467804828413178020656666929572717161375316428312222184343321873912333341821153348792914858726947620697713374197674034416405491030213933462793816458000128302870639332030669947410246545866299383636736484145368762979320054561456740254922212243185452453511991307313091164112878881678533409140189861512875860903120350485297902719620614700729031603490933410075720164856549729703373499185309866271869619041386237245347388308955860247681590738423310483165652943357517269904945996439049081670800781900311311365503767105721688975062796724427982723559795561030637415201650512828474811511434904966956731190088517535748364865588664340049644192209733220611533697656099993919410575256369759634758193637290153566588977655090675975190192901863151331085880114285052117451261584959561502547488945733174491152638146117070503156965054184485561071357395175178621337753936258237312287951698614031805576901620963196894056381861706614633265231252114703484445507746384148820526811249626591000202144741103850954756341202713462101243286627216257459466589530579566478690111341167408618490157609134560802066650947248175671383187234554913727405394083047548541312566124221063577067575026435918183515684643577549316979570984351425759359592380544991422146737580621619877024140074154633763676287393184020445289061416535146918081196798048111587070175168884450461422441443973814709355986894918035610834528477420685804623069127222490469686643183164585531639988647699037061719852371115402426165920123350792728439567064294769037485728862890036878418927804304958261185356103976626205743685377836548425329025409417200581965272121981312362950227048430540956865952442612361510491905280441961681602830252347935572058319721826751842087362465491635385284827463494499459642834487463493367653307826404343052217551093163448546778577046193675414179198967914471724152928170344270824010380812658655197653241028804286681783004333850204237248836591706709636596537135579579041170298389502662711115826369051845872686920797899940166068064913228346979288050597830553484481358893639704692665873170936779892054713333328468377649843327240688881425165808157287354738644024497309472325387636710235239184142673403838792876271621565646368899217365016104677543072379126251203310478883299926304969865390945608838395729187342443416911913445384925354174827727950879429731108609688741477259210199534521189677177042171625232237082049489118894794685766446462978271993341257874940743817304832929537760817817845770188460238786775838393369424862128108741615210237971652479113724546498251888695589257852601439721436039706482649844441464940060093388335920490927077722852097745210982798678002867726321712580044363649568448491813789487506304292805239519768599545453881376723002303630585718849126456975252413600233619258097526651551391567866442075669662435226824277297464984754614329581490959412975941642128543758643615269233925746814920589099306536429225908839009650355757275381916564326461701776226218428507041964829917311908396379067228111241920797213203187925500437496824505732032691852539351278899780619403371169561713238744969230689202063407218969919170157293673589185021790847419675345415854259877337726569822810785672354510991550624224860006968027569173739084395129431274689297047270401199935281839353822732041577076197325781492497754778977031649693559462634426396735289105750469283450111600744416318449838355040842339721359081453349691346496768126962241540363291590460359636058863750870817263871213409216058270940741792453977235502321688245061526794691593430619940686802331181915108338953348549151125696241833506290641840382596733172423230096707270780389011893924114364309255553745645184587044512748155217120573770443578556025862080538766094001778135807497327404750912922307456440405968612052530217407138905894380424303143032675597467179025251177273403838755006277407494605593667240137641968616263221783235733539297153653399599006948279145350549037304601453864961419381486591264611091120941520616279236434866267116099249089793473973903837328985756537159822031972577066959941579959415373425288948576647235932808369710764247220452901519883412031409388445560941111283443129422016188622702669474782699271857851121414220752657888455978205030844023248153528539584193674079709042699179443163304804792035069476520926422621291696165856930734319865111899701822774036142848402006798889373843674741687834921188643838777292384939858108156191235897459343041431579374468023850173312602951322176249894988332880348918297784927857748967837514644872430763630724369515493707552477148028043810192845064207678655589863011999945336378863763090207968722831767094732545447657039632648840975571505895681627794140356077642613343524464683056205223009339274647798183062660019311580776042092273794227574213741522889678075796218872657622811923821221046855599591826443005927371974825114380812841126917391262245824658903536069190389380291614943823309592275707283512430641463007384632080809195370762860261361122910868653036848301679731888720755337698633934103716711650862725635207013206281796093528861071612984493988954359875893256051847451013518383007515089000337955472224237739237048705656442772184054483057171982724261153980672546849418778695831509665764939698342715448348777816463794001111779325343993262047399655543152268126172193763102951290094738907613603219710295007912127385057310130743152967533521372450546298947656851712976074689721817281183154419090733847320762037434014301659819984446335577812686703130039671560131026536881495537178708795294904731786128855087845323103183558039507546939987918185635762194393744737731575985417410312551831902426850746019821498919587024985278656975035347867510026866198737490475606522411908465675687607407820541625867272711258068881968234293422433145053582052469951229418669399329850152559617219620455709271610224646473876447756741357786059643750434499446593918355488676388681075798834468739561132187876550957718249022758005390728955892809439222809454183543693637218473159342464571142107870596473239353418176643859292216841064876155354984624593231854651007377097894371155166052620848554632923152466991655721376801619070916590599545884928505174303620648526398448639916971934393078602750881560066043185367684313531454446031715167903842068417946464658700225258117314179348409964992592176086127906125310953923052490203855844071812189158173848621024210129587386616505889495873570264338540832197496127658745224423544128677887233536531351573426989820975020942250238484048074728664603633359621337537233773361540149472727900329681277593969906126970068974998201325734045270150582928476384057922978211533506087314526049118678650238024263853313826955378434238404664441745620064196636120584396969697856308508036684488756000068668883535420010370872474071127922325317581455420111261001921021940423657322360639281117038506786838704268006580432534294039119672036667644632298981347459486632951117958421848332215628689463774315789729574074049148173771700631075975859001199765532705120597885429400117267674454064424284572610249399289386963310248126279790550355463263092592702329515576102721444766237326061960246846430608233507007633410985321789174536990144274773991428033261848081927147742988427951443994547549437362070779009407037129645240165172219649321254698767805807771645935284895922738751898737880334987121813174665687825944952322993854100450219963985339778946034664518856993617136670094811466963686569954262940167215497404845631701420311694314538666296871955024488541933324122274724773164639180861692482783639362862669899723851114650793094884650246136535304602528182355100319157626199534917881438656821234876404345510914354471416129079166679994747381521739871661490196908609886236164708279902607205467715793051949721588774770124464101849951145325740103502977321181867986733235929411455663077479246652137573475830099818477366684465717607957087201727875626341627625449839538656340843381378348991608792639279528464713980111768752787523055641067071395175977402466095893613586883626479089769718246918470011217575805957577591104483736135827109774121889380447188459659837800523564195048282374679550822492837017766159120133456668551852054819804572668757100355167897887370948255550757807182414305320363382423789707103930028774371649283939494589409226127136111752170498902665637555344878405488877541814080100719338170969332120260328596998496103230969375044132663901685460871316837917629368192016439414320150579497298658000632981428263110681889106751384134759425019020564421749340506954800164948069674338053921813681117224374059241956881379863445961668155235016558447168139409645592460591114559982401828850182657073261515889759513500499694230385143700219350467334697382835376422796291253150264410206407174197112042556014663295692704615378449784693987663811020660427729794385684688812745891924266225867112472307563036926368829745358254118333358373414672697947322405990721440973116347053074828949883583159083214671606288110720068451229449302552756833861594102282017044413621195412482317287624605746911576870309572467319007131977314922250944423335377510635011333539425888192169728796276691649875623358831856935562459137862537966199043627054584180019361983411938663926366013393699156043803463737177274790086389346861840134477903599504137354578770265704505452845929939923147293132387537618162730159577226587200737626478523243087955638111223191016868157599501232266850422982665103841578363779715029052877590930928006307931523936623522677832661104502387535984414388593042412551977267103555144298964708399018512359467694992304419043054716381928443726920301003133437653483192995590912283569650624864051760352472183794843459730855659693210812114743967501258227921833401550051069294945301860010287925439197159222993266677169330016282413781145789197808566340660675134735034180574459073588253920345528181076125072148035566828049013094198550721919690999419882941595597080415434126197161153933465990550412339103818104385922807853042789959407298468574462609418275174953941233860968284686685372569488274914258918506615104674532238188162885899670076311054793084826537223702222900960057996673175666344804223031944617206608784014242221739832733392805844542359017695657452342020571133527322719031132767861928444695642160386777405061429381945931897666153758204595711021971848633637405077483051837284986302761944428774991371062336217787726438494674425779564323858841002739358972887143691602820904507652708298029491569498699231465319777233516430006049375440842285389226141083646608150650736475851193069696940600732761173569002430951394250948690364076565645204217917211969195953010315117157586916061117045812943234603990213204136970398326690276920799243857423475091058426320171368053086864934450544667919729515732966938389899880980046568578632320929658636569089124526957504076116940395943283187273050895772536300334768756355315977935893980538860926458805630715322254846476992924583328930761066476856817400150460151258333773599248940382659591651712840917870661021482083520633063556105069643102699422429720214133719800364647306889297494749240932200181064561497391009971118981287115111381585013214230860204791058307040706102842131735480532589450802852364826161476143883890927868003917525175031636140115606518896805017355068856885317729571436843335779229083467101534476867131499559625153324722338296661488427893805645847016963153295268981761648990215213776098936883174806514688197692674070451269727233190763948258933522021598769892523737915175234050772140899883675690566870009302892661756213376759718414456296520590604757507836247998660972361487201497530949919520415151761627760087634890057216373152416387464773879809984933429990800603057499531085851196743798815136060206540623656652810119894587709045926228194314154122088388992058534009312576730277651636455020669276592309949805163088275107094264129193776511232061078596450086659866104706529648410915933827172502051711263125331620656090533357033996109633562975804530374910998804893642460991619849061297776796192422402655313328609240258884960352892860547441803431044282197130259220062303138973184205840849670813717308876517379317425880145027741145513400875929928600792979428645544036277170929400280310258577639496634110181202057016269906853505498311056162502839051659788309343796970681248943671025366771581196481865119260892849735675478099777594866236970092628339176645743239334824980090717571293196598162631496417268023437348462084841027492513863741721868632709777133804202126214731920728747972640391788355935521812818636046303238608507674203575909663410289820412979857388741126071148200508555416491745632195932625803419167761430607332280279806936615402875201088145953262967022963663045187390387444144997132586605349329267556137782875473702346239051289938945280342566472625669017587610224728173310044363051855138659531795789227775300679266081851135754448407274630699979914702418609418922908426940703725494293805694035630822386667880066867223215500502315470146424987886623937370906833399163484023966588865984561454660557332293529699781141382611490166962457091735520304555907900516417983052422496080162145532702346555096874275336986349769155009041756201614022976304238285111085951576663792652706106467753045959458645997794713974714633883857057665649635379311380043342992209337860991698005490198896632893044508892242161209371346793848221803179305914713089335126471293497631209148499655042675612382748665654617451159996857308910094241029602744088465361578067927720606173669766448774335011984083365422380665443373971391503349314960742211322454600228848731239201649797719939511991201507268720419921174487107010313998330173309468415057822428604864042396043568378170917303054181710806163767941913539655959534449742254272200653519561444387424145033287833426537405993697147959075631481587204503609489716413215578506858787963446079993773962630460076906323984359078619342371995092999282512288842307062485064965750048959490228483354029823846706017891320517380039705594469010967922860534000385814433280950240958199925956421633526149350018011770095087895360945554043680789922740821830661099048644291232826656694276852642277591000856909730008417453865425782041213351893708408014683540805391787110154512965716136065403404530197522118148127898286752753895540341335231398375681087462498527784736218547589256250067551291877334468441856162529338291168011480516343172985404727118484235082047437613402041788804648523674247041123430901156354013625891646477929562808094487986130096342902670591792602586585290768324046728008700540098678613336509268159023776603319785546745575101024457283498165230524543405494638903795267578198401529670605118652364651737246225676258112249878113914147048545643919143402136835214779716753717376569323873641161744288899369283345989401558423329891099080726767174204198179616251406926684310470065763128890456782517562461719109703268901264798948962560336941029827001298665605172841610217838072475600898414863545279613196860262591371066973660862764940798719582903735793416788525789741731953695098399422033127486130924003767685236052719144791776172129997082518847975874745753407482647785239959848030063135217521279704756180028354501084196679278692440228441325820156849679434912933286669821778073183774418466123911922937453968852256296969457550422148656137029669973944326377669389661230247850613685785377668033140220675040902891282599475049644823680534022108908731155383923840420283903677968493205293320535591463436584528870538648629956442126252499457688416483262540375363632624964558014947508774766504270893011899341035044166586417472931472577824382806296317426461713557166907400175875587021607976413977567277342554115557050166348611115625205627810351791923469554371159123658021915761503293708360849407446238704185598996131975604352252940430986283787437936366037438771703139872893491479309259146960755786801622346387946496643775429045991166544412411410705824907969641676166720258139964931847797538050780858217721656976269645697276368905527251617845080688196322983472776481314163494333969728066424207740406312907863652999815858063810015618012979502092290896606069367172091420615274299600520852524031117027493666256864178315492013050603991948366466445921856173367742180479581616991857291784162075429079683162881492543435154519434028776123002043042211792017169367230222566181566368027648027123045140674848100969658808937727243704131253054367221400530106057237196266135390308361062065241582658277406252574072803850597283585199133863006729489533595003967021668144579799843845602607500083123976540036325152377954591555470880919596495890907477580351845074988459188564802684956490564240897925930475423038731315239220915580338658523176123081388564987897102669021860104708124860163585964517138342198337355025377644543149482331383628806085006247462750413773773342662777945675223919982747179723937826802704427299008759802722687493793208531494200186053544505299784535280049220227453770079609305596484790968862774738431106702589085068980111690390201478467150481782201223727836557927298944158922390237693145813416787672008473999373644220647032759613934844728194386877683345787016872375711339517375529836986710882658708061871432647585125363933822345233526583274103646277574231699657185328634999389108114620152707504521609134930654523899286167485547314384285122077539450631728147985096009388746613918932402358076287932447337114051020316651709624773165331232457694357635648049914293965015335032869802939572389915578612128166024200477542395102817026537991586147975374929706983626932378251069793244956840122391564382991676678886110832669269399613862930206475901471847485816562107564181763884562663305321071607897254214396492499360548916870397971957042268054718522658596086105569392710742544183238357619961290465288010851345328271517998953476067412882986133086099344534783555374646316596154364543848160801812580249576895170218167675964760195111675784766706622526865967277163201361435210684367269978969851240756599435274935851705512641605942424567203972919130554567487597534587246539295509766374006906630518694902401361874950099727767006794583486749615416684573753584843809842573342980306530001684700708899477510000239311820815675026508221780824048585390011241479073654205879242952444331572485616225629471492615511030735622123009695333506771538715950675822700508381072299122005866727421145625812924192651282763059809047715642929986546598832387519458765234426237485680166805048030674120386517858054784195230210389872194877932804905427027394273402258892903275480467260966224222954511864436878090139604628338824019773892315872172478544156258818861467430742470091567051564401372522599082315456639988466992600401519187370913610625178567732085999458684349642255113115299937688181742945941197292563782591213351044371529996316123408206249914371376987840945559793030970847321479099500773786942233682861817715943757674591152646865226918772068161640522881485914671739703728046655437746658742879630846521912164770609617300793010665713832279074406888509011832494636962735874171225374111940493299457497132810251157742952041202466193347125616846001231361397227914197226180015552929193804806534913001394853295278341337812078453250142567956174854648798304921216742069202727197830793827111231563955033844668085370536394304333271508033507164077244444168338310225666129709490333355520095713216704872091577974028480668903184161698481942640370084713044955819603817554518303963864326597772946858125865872402184977739743462370003233602947750202178795610557957466918880523832699531615349380244897922884395232169365115915670043151322938927962950475780315163991156451931894397770228363833567001096252996563431092734160172356832014972101471074742666360136042985099354470953734367534769514811481970270670891742275950090274651400479217911717298916008008295967856829534058598379584371883174437073428719266951329712329539617539853198081992970248141343307427513307706590767162083105882824820935344679018717397817931781942277807148031606511819623009702001231080531668434958840022723331213291951478204318076236540428169949839643464362672971954709442047501757302728396393983564000195986872613115945990374224585354334636087763680143108054654372396977309132898600591931561037829487593029313519437873337355123231771195140969410377215258797870777651229521427785278946636270533437527521061681459039400167791465748211106520314875820256913404242798885832866192553115524364836484284847165282189137848720773525350354367693788131039672792020782901369810569028053167040501757437479271627596038863762974179602445687838335753962930942078773981589373406933026676298046649107401435828190377442099993504368271202596223589645898871276162007376760923543199046835581811514079935229384207246392937731068186551095811259642821218405013920127794020702629931882711357080199121709437688017447207214261595976870931863768875022355149072753645012119797164371202248266385708897272160776937970847030156467727338937385770580364201368451218669433439293970815045721684459417287363975863362334890942546488054561676066382338841890315397148561299494215419364145191325652469619502774460048981675487383326901317632974851321551980352335964533353241358783646986575666342218834375567333866918150819583907649205110290901935894889372678508147753223093904084286911574404706161812057576624875437294371977654215894989170449169871393421171528835978890849335102045091748957425835908707043054180370040076277743739262661193478504542175525618226872957334045432332210784337121900967908827069943591100411555013182423885254292660019274065039941809200779537336789932945019831976301846763861682329095944208929260201685611863790963718872471929011794750218883525696758162627806412228360117083140204225790390749289744793546414331489275293053778822585441855658142499519278457142181750192707216780190537418059726259987550931256521925999777942086592078687912725524818352690800435787330451238263048415460419271849294002225616769364934935075144993354352319404803664389099108275800729802331214671225922980388832989484443854308495896052063304408689357309086094239263685136699858508176495045214547985281873624808192096625375107191602089288195873492848368440725662732117618546784334389152798479210813006629928950441777201028895423223622073763817260929149010508055040237361573702467151928366111936063262110570984733741833680410906240705932470062038808356436165846830239078320093567275214152836676536487077475978858504736439501618848666510654962069964473460376249648905644738694504270999428727658020386413661446797274765866952638545295755548183759941088054656395087601119293146738811657126666802040915390089825736096991719116310134851372506480998389257043359320152726043173467320662787752851936827489492305476567785590780439714324970838242440858803637568476349605065443073386713404170716484757129704216976568243250659619310444914729108534857997368411886607326173324481247524860959312468020961378709915154468268766575828173992929395013992059385051530250962525901602417347639034921624240372541045655128526543738653472009282203607507498386508845612801880016276837807392737246288988128329876302058559393830325681863779837429968276447976225938872235211940352757185853492617153513920480290907441292379485481063810182409840885247564226635371980739267066480765175754375961885155497090776255740115158368293460235883161105236391344522493470106014655332271926516461271607757126331552333155960945044923139350353238561187336184667207051317988576511673650871202328801535507536282475896280947331933832728904913420792293966269606995979377279909713383245257627084272299548646314248110586211762328569388213959616546505939228865095147535388053700555427276187546716288893878568982281845191764776411972670869505875893058523429040537582869099643339046055996042972018274567323231963310971724694848590319668803416133726971654069620633651642054947227347130629829202678227420390933800486398396013958165835040758479512341775978619332253923543436972905805556954804841961181987887512719032608997139720422251030050188406728037818459901430167801681519425022541401974318285630654244270492719633401101368229881779115353542358656361853228151670092688002137194575236265835326527069940860062901277656653704665107229968435328606399846283804937824581658801743448306799838832519906044306416486128813416874423182984379970189243750697571426022397685961742824842568902058389711412558076726190338147862072480770859835820738924103601591516498265167463119368538609799627356119441628506803695470644404962898361711301438190715240669985295592446611196932969662654144356629265841772849507328991945781237340333736627415283275489165995564265728389560129995234909610082380595124316564240058364520339095830947433418043157759495196442071403902062185952355692784765883356354637456254280297129727982522823662732200460448716371221330342365870533338515756721112753563774241475659303523166918389815038734775622724986295986132591024714220215316362786895199209837635834936960508756633501041724790020220004096195451719120622721022643436360837226927064358359846209337439650468838837920734157574005992509655093522873135072637176131013635885104241616994647740017759749131999058331520208986334584692779513959443017871662613913750680512766962820782322865053664360853545873000776154514462201771141106396321123908423398984423922370187881297000547055137391152444664535180382859163194136837037418250468065276320703121578516207913000666906764856580299459032322935046552514271164920245121563456695161368376861201725481543585713424031471640620490880736016596390081882977780723087879687061861744251511105056267450857126153396113829759642698376372395716856945652160293507012740753921787111722526773799301521562944399239345268201465578467751412152287727336501494680333976443909521386403102517644217456991630406510976092404718258131652733412531958630550737631399813823303796200108603819808854361090863884442877113752059437311983427834026817846722385217303772396918688974664413105260870187957510409268628943720730577048103841107998864836681761763749266687368071402392748772563753113300057406124863255237784178914091218526784518927521558218515291523950384031617605957901818166750920259918186916823682360713465278817898710733909915754291809045220326396062044035645168573922477997965797324905512487485507147915809819641941972334634961187432094033224762364902655487967829568889094627952683264048957483963321200151119620101248862309058824231312680518494980332377930920814361155191906396640354879176617572871541024200506423039040018049651102839558119458963215396892331260734023205684226187883974842002364008410194773220135489598554956585377634529734192313078213835589428676947928958456605151475652743308909323848336883669956334037595076237317090523815996147351941665265545058055443758945534389925165340545418123460227583830840185327953694983617103277571322182834621428992394856921678066599444147112659073059789386092718205323713561757063999199501714572954604286217416633219578490031650657183029939086735569709811314178281272924149106235235237206446095517259580917861858492660371979519683123096523590600151797821282083443597165980533218475452531324351085472804051944699197591846872801403306421173093341702453736689303945067688749759618585851276731137529651731693993962798975444549661629036346240841737498780047160469198327813818150686454156645288727993825150564060457657467601200381687790217701407036136510120072431666384087513689319608958419097109968753996311984259478419568550510215955342763043540740892841997756494330477175491176292708562527119961387088358719765841247224126808364761392310306761376578705981388868418733700778166472245219195509378347999433613592172660468469102969732304207365519055310871524952804558722758725599142157826968127294119581929454945379342772538779365929042889912034634632887611852947677699193277423259275008536024107532850753448674166984132658606757075163244948690319803969593956659144647492905451308904879235583122760428629045507187922653919368021455308455672477887222318232020364898505677846688513436016992418082883068693086087914654393121444859807934648400207290339578819649893552008610894744903427242912393706854686457116033114685778445477725671148930962056330853761841320654782858572756868178324593738686995621355416245128151029604834773026212619830989371609726377192142061719828431934356897018809803230017770381419807443635627092435047157379685537474709095861004722716335776702132733821489110164977306882853191913747001692790412280683358349700859120326698833689458572424731023142588152377220432805133835955835201964505508466763921466241456089285175288154996068171738733122424598653373778651866401109024132116341991085508894499418118215871646966395625340090007433777841734035452003274058495155263977571086093514692364340634202453507181824682043956837698241177085838670224715168375911014241192215595902753497885129483263160587996772003583071101855382593802357210278318549872929613424051285285403591468259844513953246835431765769006625519811298108911987597694114737098461517358116600096676653385829490244161461507553597535416620782070295162052138685112746135461489551026299383702379732162271919969620709474877468201822241352378237550877633701445994429430527392893148232206895572444991085749435097245130540423703684459799829281237807531854232594849522376871513280742017770967896111258445625120291361601438526989392035352514406771360115482363586824129362516687089661857399345488018361944622055339034002279997994149803012990586735250661152747960795239648882123454543339937839740818565693465151094782575574567492738431973111092219023917159857066137491449710144532047482089211767069292446805968946237366194304769465894884099008231354215203852203690348727405375484780809320935485209223082246386141538415976714704143572558895225586661324537906310065271073833948285880817384925345306342954689717014819269812726131204056348800712477538711133250940197441452917430041287763307827052314648971574836073369998669303715713294278844412303358411104346734217198760754847269134943283228746082474144525557558442641347398780034248473697783296395567574080067930481313331049248655479882066727064811111118943982194077415371577103255949960853553443847957433416338477513177795230417700828428509048407862262208874175442894133423349533111347063714798256165302333424048859099528899255972057000948209778274551588638494966561817531942972315632534456611149458133787355586428122489119183173916560093528173042716718034483844462675453384589823211602794396807781823045213189085611919718906671754751485697528753526813532640391357145534443810517941203387569369682284533103934190090135622346239578422736922351213450918266425952039851689608306323978083557687438650441755120142338489314234369372673521144042797524822639889871422339830896334450136209497192657869080252683810935643444477915898739653527920199224340525112253279592345529868426947145465620977800714599870799399799473682833285746594357424804326163015362732190429283321842955736091424337967484124956908119872138419147099339639031760724601989250937213204308121984994976859827496803130797699159967103456484242872204048133111571595523115768268400960776414221224181500167925699840387406034295599396173545879989173832922538709390111561050485305031632395471357985724543136252022441355217907644229306378922739339323967100067591532036747697673616385690847413580064099053768488398449601294507476084643044430978750800396456563966924854470215578381814842295779287821486561801752312688130311272335037657844875627302543966392624143922096316143054355325350692243646058709741400365084572425372362221103169013403527034492188268265592250244351254858612150510338767232077153238679915944332482522631634154457709454537819906649382572472379992741835796465624324952799589131652881350951885251141400872341500799294662882475016129115031787440633141244838874742407855016595135686174681474352141367365548496330073263102601132921532199261870560638756286898301890978818811224418583142052242979961711011413030499248230366122239542811949467056802499445433577588662054706793205499112930267011257590988597503935899083463252868955792542081117104439789159818195974216746495403562284212822777535757464613734456825097074320370272586715400014285141967326461523685057799040278575420020153874135826142181000959930919668461220004155975349893391675816779515032282555855930891135759746371224481076351956800097197628518110047266706035021885857959474668942583792939164270934985792828787807071779577459355389859926379776752105585318108172230178360378491962887591168533194863715430101570650692792188864824533993517817437550652215947879625614867169526414756476525191680622096360598070688534389968174328237451079506707403354356428809630184123585391502684993508054974029479804142975955838084116425871085986774733789585501604970423691488309602512380783650856296572775902891227723277292071198513926655460364441288399102795980372029103800744932838993677169796666096833489921808576380849991877715680059659490893170192814535245456268648855841823604998891211770376212612842383541072860160653165916986055159682970855921278607428110903339542769805508187439908554035308632291867126471174301029205684221225135477384528023019737357414246939245171325194461438509694749074413800495901669159945219869677620691611566271245643215094078140422136011335997176878993309759229379641973231043005293774581697335702050279539491503144747062778028115599388314946772303146962008786668324865008342715576176584842877593155653061832402646691754011199338272735005288280059817118548548676895586519987815207163822072553067442900740559939198594640494782255375921299473800589409324983288992214445182020960262489141514101134908498345770945586682905545037527144347091151722974173941867132792430076010849974579550626199730504846206848215756350633706955490632358622044091952310358816415634319836370580544985088484442631484200050018375027726316273576229909691971256866630737039772679555349819225186277098913518655886194085662121282555025300932175729962037579522297282235459508021069730776924894417233982293146689662363676028184949377196758065473480773043484503496224671521417105357387325307448962489529761772577041846710898447473545268643479233550281491691597663486228234681998781813036274434089397991218006607679628564612673276468710070393683821320976182501626098822276413745200890527932569663581093938470791812294897142258063992485665787247574548657201518496935090556227279637559425822062904547967242999768363847114347701506103293415735155254829133847342186670904602275759449331356927228731565707633120030957448872862216571337022691953772725778421595098462702286375625373119260857724947236699383782404701728478272211752075364578356024450372280228495729659323065009944936111464976255008254356782444147488704521521792565485510646774812041097306741296095256990819131316339924124174901856048762255071439290012826772294296983426700785806886115887025729985030908650744857746653455261864009054988851547842553124279822677779340070317228110834788766028137448481406395195491881932817933145711206853127554174479488929930374781780853733664832013971179746344856087276318894525597665578554911335670827184810429331339126084553394613596376412513980114852714482764133131161804135631347864546180598421939631468125731416521969267389506911373793874644723415566824886362635622993951744291751331311863212304634202526493484648812153404158006428717669499286332808691327282528301883033647303711408597338565302359532647773116501350938828985021485063665987686118254022720441831371860474405704913411334469103417558983969877902962649339679401384615217119464858859787945669277254248487067316609322371750639185383272412768565954073129903680619424524013473180377857063062679640469975144710018881894484233205251843298886937847906085166424166890395766868660144331628561146809810423473178112258759693083286097403417804741135411306656115955840869058755096997962032213690663923878845213706456160107553006061301948919523395939591418879831742826091832372624281235375935619021154494967293222528231437971290941432532779819337473053411034892677695101237244073390149973444466308976697886493617021026796019823587997280879412628143177161654957150044528798080896951137026651966430783841332120107802259014755530700701544787023194328040864642270710637553053405471529519071863742432872421969706898321500585056048902387418608898532758137204945995994161326875153751272433810288689670256891248977565385249189880644947297998430243845076403108262451348283687001974486581165226888627193555180143918316601061939846953096409841902699447050139057381860000111961190021433726504281058924917915916010311288700282521641077962647304911726497233542241026624090863517443097518638422852643003794604582213418236396113677020990205151693997979979624699974564862862034065424387571659847187902814986399303118807710891093002855086048300566229954315352080311067630846069825490593542803770258764763079717890355474616756596794673419020606046911429952715524428775687137087151838994189660322754353670319956274319153730102549653637174056736064702319722689982773736962375223811548890137871225399608197128517839313098461368529368412474953907345041415199056112864729146776485603670747009777531386869880590998377631521891199627441521167615662317394336782180413577732799690845431276234574452055814120922245560676732789177223030427409655872487727605570321843498907638347091997554460502306662582973247411352618777220287542708357443747811903953878731479811223121123929183742723207921906417368402669014142426421906661096093395128612984973216246786696924823355245712903981034466026439987410810730725771056870591414201298372169086190452273211482932632297336340553289237718096556632984426694106804569826022845948231892582474386474148922943009314675264238222566522759757374154687768540933600715095883230492637989978076290312051150608926235572867745719128677976002409886520634495599697782544377875661861715119496670888757502334669607969450421672030361475609448086723927819868467390279355223466508636086132034804873119781571287238084345282404567115295627212963535464250192430947561326051063859043804848027013067634062552187483120321736965912487101270298233893602241188470787108034940536898356377649990146260966248737888878447766514731638043410833169821459780731027407775409135582799533809349292230849901282883728239025120337899674667401025193230909074344372593994738335334147390515079014133367117592403727243042718507140187933357503694840267524017982738549887157562927314958110353546296566053101714347607831231675502090731053416901714942762591395528927365220659503805771310362722098290311279057278329897083522495122030578417754990239359488580870952289076306560173791070682065212294408161251950486906693796519821840086253328660249060678901171579842840747131132048157448914098981030745647997743233547046447782876988622405945905724031330308548085872448423510310924613351498763036990827142475978621961368185243061976376545889458737665760277156717010718204056350689461673865657743697925661716684589763542288566752379061674239575543666632165121229765741795437274108580985988845921566340529563619917153301926413883043254757061608655305343116063533298000052641392605954928050666546810386473022009005135737630385140912449243857115521660135724026171266595713951992830276637448494720951017268624790734558147594228530463059510366179173850879028088887485413803112028304217327550167020669964951638328745929559642236412169392977099626403196797265465079480899339087020073094371196530945663768397225728969588156252224916025813126761380904542815195105463844790141930681608686115338676888451160734766460360070930363153253227272795558554255370075030620947697560208582755333780953522749316633662568815246088150616519319818261118053443165038536988016147056876828837311356583407350809695816414596831744017511096999423974532004982145154910692005731827731004285468888828951414050317966826359104398617107838664957317175969546919929187071069511630069778920683052836108084446162921812751851728141026668611056743219827098996357599016399752759578444402368790099136184683182186602972351209218492307976972827389151518766401346550043230664749932062584725047757495660080165916040039264099605731828135596936855124313224898517144107274559578264188879366175935124747508178127135121810144331707286949976960801654226020567139557300028388646553876773938118542315202022532097742949644003908519225014930361345317219095972348872831910810636712032253858949529429212535043317368129526008997670813552226081295454043601938823520040123427324611801220134254794866659443691776372661725373105390966938956652477306257112142835991235923484548271631325118757027649686120141481684253700223991246455129479823807129443948493955407122990134643449350959883268058261833696778041520246421052278586133049294395061716548623727524713979061294750806102956730769619890752239018969801302132257461419550073585181168330414014668603241215764654223933479920235408097042093423284911549723618577131816896911998733305146112846636231140617361387093571947023627713555376123773097535011493397559932429383752447892951536423460648184177328718133826618855933806778044130021617007576331864829368395213939407905252864905195485398503378407044185180963152812985263170378262253205194630294874856021816000938773794567045914215690022090803455885681109144143552149144243625585594594303239379093572348409618482822547662445272244511655489412733871835877260130490243840530066626688191815269984817678352030425697520592832084546139654282793982993177822082310529204613546766664109464722232341890152464447619854901061484608754089552907936507992427147447984148046353312055373667082808246733106310679374346623691078450754017626737185822271806910744477738975102338195606733284501165920947639231475874428715102773599227269213942165584044400378015043488000038621549161224526668036210160655241849479752400446691306861255381759720566176629709189197239980357167370908140576758523956890484239883396844565985884749929910992123954910822696262556428093335928296829658937943497386506992222569525205938956370068581259180832100303115558265395370200967310152136435501927175965139857236539862915902451817974158963138547267909425823336918200235895590240862341188830124924333298918967820785453985137351599153105342579541170388827709632232857817868958745024937253296896914525623022082779993693113092853926432010208896248327305761982875159513975197125572366274465721220064655138354433276296084410686860091116608040584681187033719041430802557698008792944296573181081487693073303491503700649948401133292966365954411712401847086188482806261272723606616854551083188523056111442759190859321043187113012183336065130302339460343923392086616440502618005634248672636660393611296030316788939012306692252220235022824822306844432086483520323772300264911366370096892704129388310674588752338569741392448990914561893992999326217106475137507319128111431268461339821517539864332288583413051667688933003349208615799581721082398155323860856974174460909552899980991060236203191929962907879242677096434068422194285524178298677762039073079451493009143969010597624983190310161866903661692288706040099898936563731845295344866552658194193287223354969212953700808242917690292380565764987642222610069396673205310646616156250471004415319300878793673709975947441347529083894469560960596376973177587891548970676201568065730603245825416321152782370394603487611414185398359203230857663217700169586782760684582223720610515673057361733354855752525826946076996375929744318650465264704112451794109338712996877543464473432987795127210237336441779379782876687965826050289014234818786089233795304847037333146082057568644697776078067745030018518763217075126637491900376205781982475877076192656169218204452818458269865529647340414861823813878156032356591232228044106488320616916810553943799944948897919454488378601062705938041437324647320663654971149883172884192964824527143177510780898262950295436068192725674563230306849563505110617468215357578761495412048477334870775473706942698794551323695495741970610616890411748623007757049026714816680152779078779677833849966722853066571328777396300865169799404269738002891196521866459169396540497465260864939966615618719584750612663868318974046588621139742053794043110378518589550614190467864504341663202404693248604489004187336616019677511745262843075428358764871590696916943774202023799925691685083758198358594892232007683088504117896323759854289738074299637664787874846705018043664204975395766566582509334818698745362937068193247536864942107091315703994874943454493973538186957281172105041721121387607947333232528836071240357758859553326599508587484845974632459309329778253191404277151862005847572841679693856405989626904942541104936935201357556153440007466918373711236618377951449639862800262732197061283597524022413167753672476803729969111240181900370448599302736824458100280806904123788502036790908389181775801893204773935072837098179918377202025469673959544996900574265998934084702928380746406800063377231986291457384474141585266949866887834300648331045491332085685100413032762309888478151691549154850913111756956328432288272870091921515933759742800041828714862616833881761978077303456721248788473941447365300643492994599438155773600027326357334731000650860862628200456426130026530018572991299567860898453890590163685532881893248544516921990959949690258324785020617207478532080798324285060830577716652458055651870138247373039306324068240990179589131683346377650680104151517449446549810007880818224553669783892672797151948879449077340479370446090904759104471356502131221060001901003599353809633821310614201194440299522408685548208382916356246601708404205438205143680745383688464727022434249033826501645567017648061793919386368519624903725523175473055667081009047597747079503836365874542307171870697265281513114132806383607757378559325047976410328713839572386063316627568105619500621811944776385575757637543422257965846861428231125842916094162223334861178935400433940648023559329596239663578253493403365149392429522740682375190052404839073858680442684005890231137032233195766475963782700070464704645633003496032812317565025549830386398397019619198645729908311600399456689134624578264333453148664770499041958222636794920172120130164444312257650236748731882054432749131913459832676588889345086768685453039243553080029903032949845716166796393740125245753157534937509428709368933822431510091323752488852066795998577575706099046435875061291663198494638507965012552762561457658975166816181166343263673132663268017696500920168697439989998084914832223884266390359584933808191071703823469228011979128566376675685827921746594418497826668884524911296710897963713874892602949894584024176099194113524324376734780061786096978728176386026585209779685667686347384137862908262375427772194333067057230474734161633285644256978378748717085814970240811148627876055499535053649303914828455401947856356942878538288396253274654000566947226744616723123966098035861797231379210746106581783494491984892367334788088189013633712901712495435470976913627983997450247047142671203599539618480207465509110705713436920928486665223800448060016902301019132097193030493744635969985058560587310222807585243141163767634262969393180085566243678564340312080081896281982441656111462858914609360408439746719817846515320851624891669472996471674942862069575048671252248616122680665142557534883341563077191330907683803219368728361091982474614606440156387958484802568888252956111981523007042710802816618024524966769048551438190822504220818102881174929865098157725120781116031028731796335340332673565656137316914881715079080619119841879275074863856865035907978192422546913891774593416380824580323988994850129414225105130985303728604995257197517162838765246679718735124777796714560617485245646576899571151365907846884947415987002753503463437053400874019898840802004287691804937611153772310469718948550589181618558085859063635806864834430309999392244440595044679144531011710279802638390829508963133087183905349475553503882748303215395165274694840890249250916612528085112763735176765425427046071324676877682143559398233095764332108020292200391172769087567787337981790921552089427847450717217871203831204546418404917717980137396675115459264592016118113985824769395365125856802046064208387765058595280082981378926318985674953518501494554017518969906360172959003220305630273539445335752243506726091369063815638418310007281634388506409994318216787452179003684563320111201429017930575142748820515746510736607918183621457316938806542537243909597698786105136475709016603673996192893607219052010256557928160080972971354841689977251595165107394982374425686822785493643198040980276510326043543905650063072135993642186131824284952709959533737641888240441186514747701752810568364445973793203035226874737089924605793989209605334972969210432441164859393120871368517584830633789418128903294511477686906861215940490188823772998760133766306345767558028606723450853705295403394062519345131097161599808069196825568176155645038205409776782641941172672553442925822813905613253693299161971848210642098809197754508423290855222223612728643028430308490767602476546859839830294443198560422538406310657508731635149066678102216778477328217531109080503114968815771785272761145827747572520383765051012704788223242276239235994116354647919648334310472043225299779105407616943368289722611039375343275121308492831408078937489117405208445105781443874068094617460828367286420528268787164542328633852950593100115462608821911464445362438309327124285528934040346680521146449371554784378841351528669347976860818426558865958213080409587907382623168592685501848656657584427673841245262657451615759763156695257715723595317891571652788759612440446483379826451613571565775440021358688860112294771064611414041531020508093667959727457741943292425210230169456869866358500116157641229046432451211799659408365991450701314044617318430018825442860490670045235348706406094274699590752925440122667938240526046712559620070563013590601245564192605275571333135141572489939965697893364048706505716519842495804004474668668516116723679742786367937624127156716931489101791517206862644147938012716938849355936296765615664811455926173653942486044459776339274814796470211376545909211631954641121657117594089385455335735548198669226594954693975914850731121811651008482530607391748960221774800533439964791730466540851117051848374009791618755220753611042158358596122340042724543751040090936640670475731974913397360768579106469012162544203185145368772215381410145606490591609375818944255084596733250459398949648206173942484721028013586898660110427953322164995577448542126637256078086570390717547836051106040621391207385250602398462596017874449471524815649333282893500170009631149928721373446383106911308175467409557532469711921766805251456027896921749396837569089227839407881171619516740024450712098091310737157822449864415112359318056206767740029232178425574258871704463300512955170181153616717478837232061752285919596754877324385674174443196501596632222204907916236185302467184683175066873329534524515133203146484778211634394950161456280361457538605061685388371174706680319258015857424527837253624242273424914471201181789876087639523244826172025598719219653541271117987623537266999815877136713412256633712381631524689567590345268904604049235602686540482372119103258710300040173225733167521737636369346483270501955762681090635763027851692100681766728539468309139394363862322762656685595173511882696582392905184214682958101647918783501896537413390446211856619407811722934992816431292715362075666730538538366795618809492986612916393693973792643046159125931667023092491712834648767396354320410180300988375523517288035347012519561582711716981839592542347076553560827921923325397909531698193754281745997587225351040066628877462445997517613494094961811019328301848941454948151485088215527514105714822124226543728457064903230585501740694332145717851430720446755294883623739965723536370558586263078730992069420769510886064376170074711357290396150401122235674417335208259971485835834457179983538450017463341585146336424620731954089803647916053071981945065894922985239791747199350541685999990015271899498025632498285373419582552131999671230838328197079233678912086072773918349126384657457660032467583673164580212189661915947441890896569347468389674881075174068376637024274865140333470089213872355511970315726437274436894195580382799037078775554308628280521958148546055444584382604128528144706067953897286869888015260424072073488208719854857574050086289205345648639809853490637492119572407306444316198345398766859300494390844394038086760007524485271389558381686042721242758809286673528012314352050287838769245603031949170914820573021869511424875813144796862066320966560711114690398103318899136895047120534658892124695628202743252662617284612009470958294352255802082105724910767993323357865092843096996570841654340029220499178512751065177322882746221658940190440311829493809355297729964517877721314018393782352320914534445610894530117997308803117163535074562281679434413299454496200740010394962942899614710351654156823317149800550799038521221955332341793123329542969167630748883275123789385583990315277275185698079267587776547295060589540607173871989469920342767286171297276682066835184359877326733686002357681812766445326024889632124168482326262484521207541300379726525015178863133242795458101628960174145323529492817967417999751130166787211366300336881486640013303941462147188095159933672348539501905909908669017496099633354185867776948713230761893660293989751527743109212857756761377350036051690756390079338744951838902610716645249930311780897638733558226202638301202160187284088735443274863414638771734782743988263387121103451137743293120445640278552767915760233532504473302021366714696201162336017052276935830326425035847846056718497958386919355516302368281948268169251768762976576254360320567669380318010476510058520658716224469734929159618073169495458782260180231770691879986231448994290075635582833637295294065205557584913424882324807871578628073051391066665963836669609231899327479833514284005895118018711660917421199309305935282254681685066971654596647933575904903433645407823602121298316286162893962797751836903257226822651784785001391323077393566346288301113704531733439630655123046574955006507956407755064551481818735388573793974802423950883908812186130510508141975297264518716831554412601573361015847516905521526592988446485294213714224993181639461689315940830403548826473089343818144463118275038965893325602836302576838781161890549876471906533770205761837154778963562856984210836329443464126651655594701944862932900646975685659540978498946578920260950203939603104906291011898256848601138702205711576647178268871117174069777472743695645270329587489216158812834053593198958718470129971491020501021255152044067020529675886445516062578162317002809813590578669563408000021461633222605984690215321918213026303568171058757442897208773284086744773799343704614347052400412765478524741151770445035264712810671819340854871078271877009227084754759818259284722670105854697184538870676782622560275373117848330978698317819810424826947772540110635950223545214693807138820695048390392572663565889053845048404400099758671479713518266940214838631860330089426633358999813605093911746182389785148252367011025485040367675657959136220000944212715928790312945017684012426788790586512436060535995906381883178718084723227701984356315872652912057317367270067059420544506350900580890693714813461998002672428051859587901416680400232975166245678566808805031727272302481239926870939970452902022102192537222195401114232078964223653235561863968124013267683131804226811912228972688977687774838160136520835869471853581764851371971185592634244788328384231363939887308109233738195079817387919385980600715733608826102421715800615487610904694343047784270981025217398022763527689986837661275863657041527841077850395530175283988373986857040287101106941115397602989996576190503798412016739141961395932580381308916595936333163445445530754119851463871366951779766844726113441687876115529466141102828684774585750408230003323295064311233267648138569456054535130510218863190072557709919158982128108364971722522335918838019527315610291715985431861576272616900263671106324902642569148639352924390576556077322450762465545569131426572365914712882032280596402016803941502530758390883342152797873371566835928671118501087922859291996144221525219319015378419997758246628745782954752912701767930099380216207552297230345651233647791221232937902061520771829880898502736098512038347831555513833917587603563100324815400176443189073477788732289351950864445500679769982155316711352142769579486818988277060044286444873749155352979038963387235567936861263165531794087548242670257139107064406897458724622851486531315557417547492270620760179748522878614417594958488393802893590044569043684660185905767737176639215525279431419204835555573170369081776853516747249938031317419262181603110443620038708323999534505842155712131936084183452249933538331420382893408362114070177673293177186021354035246065432441551544573196149440815781240684535400733020665766078159155994530562443162339703988607027092621608784304243695259266458718632328388599441704210053642617111577542538242352060579878314981538862347377076521742809978427023916483071065809824361699248900343430171391226032476233792447242305993736443582559825079076067210525961953594986842733454638933731662637314240059165478157089980179573136977129961869307361247749578512756744409681458883044854211128831364117274100970985086190004360137533411425118793771479136604218888955701148296823674206355827492989744070588068316136445749548668820442942352217108362910624699490097666641780071406187507864913807908788550907187491339337973430723006918661637442935469787597348455896570211883274424573324801667727650015075572674435432952709539951877147615362021573407902366192806911372410918605104802862238149852551261367342963448036552262556122874505778730432939898553415731429894477756174817483070640780186072940594746910912133646702670895054763609981835071923171483785918846141713869492262509684054552481789381846716220255441822552763984654617734304367130506527553612198615858226123065514608933872077013167514820057424033932961826269339405798952180615585579964019286456882799330799574595704115891994829610734123541736459279555950848201541807778099794527989865758260090771862723235518033215824321800465683466290811488194320003695979520574211483479311398579520408133861974504904348651402527963021365597032918552185643850080332148872566905888075497313297465377154119307456939527305214988451379787376429703434061753622997846896411842269821101519756643217845114689193799939695520694108323079133921200705778542602320596712874793666735729300115520415686151494166802977204059626883260574563932760210381018642502372327817515828533216765780033068441241548014217519927117743804180254676250319713571381401587317334132065833472207787591962960151463539540760343148400074537012399412676869667718707963456347357816929156113457209446950473608756248376521122617862713981711082696683850996187000012461686075965006660105273916721475614805782844123088487191641830497379485581225535135066118775751644842454605507725587048876512250105231642787996693601280711827932789051577630688982885624835771945515115328757003461191947165922055771852277123161731382937766394934900200023993080936865283931749838226597865783984320753580508984801804521697919655454870803478880325931212268209532419974836857755569444770318450460013205327120191248851705534050777551080384919670711613812346300672374221963020664290357112446572770363908436051065986404373766850708100728318884466873102336826130634433009171531433334467442922690501002613371350237193684313535545550909595155907424276917305758250644301025755094037948901813966826788273619960404512638694840506523869173712604447550530116253658800354076401213285227897631590438331893816259344292526806585929047870098950907477695603678507543223362051812521795836812935643619204865243114783214086644068116949382028616764934606689291369739500001138295355524651695933779299139555515668027669352108859297118286417271652380349772102267661141962432723076300309130527748153843559002490174628967057787287867421925426956079635629451476034492400802311554971801256262170156715248520986256639024788701230308988145405493169066567336684118362966591208860072857259476731743726872986220469990898616824321844317175879989070375991419014931687048916061059998253212967457346547538322776656201697031822908373438333573048818355947852418040944873113672027001358253501596214495077553470939611803446648023018475915126616892863172959073423452046883148146013672393616273919514914607169434992990062915958080424183945822621714710262262724219591461228269731380566070977117464064657134597564773842255884084748579321155435770481497653965103325802264299412124516175344568364280966535454064280576411988932476809333183898727164850693539120732486917716434399432583874006155005703425074046916394656894329547682695244270784710331179954713014055702978183480477516945904649870445333941518591866357000713112632345524048397573843613694733883728516897349523893713123115428685474797316403805887794111021588026437478736785881060323287614192164637397079260470574237593375545858319990208936318333078898543749462162940371026104946458085063324763774416697451097989156675268582424640232810240159572284184152217040868145398777596117946571520967260592244441126948376215384824404531895024891646076572239226125488662586316246660342553785404781500588700605827752875385233692006997235834243620611673022393402834427484852111780925554056875415685854356576988794483194532681468686360610686945628279299277916194841206872490756963299700049675874432818565005870917053142285314057397933030656628896851029121164629679111338919683235203814441590752066993685398729883902163380179570757593995187147291137060777839764613261551895911556692364616044020219648073837790418280005138558751340067367658141442072748329096643098725450237693778479299182763178006562072125476957000659386604516875585679219613666325277215049785816922788496420998864660223265400624498178108820766623769879186483040688313209273932813124763239526261605630617774492716699654775598073649241672968330101827877582240497942079556884745596245775761966851178187942654533237869513492254553842479094734739297499934057686576706406695159671161371502849041163367321841456301609802141469057365831931080418464312956018757443445157673863542885630424625001713230403105750621565567207257778507994174598509379503851482296485082320123224640456645984878927769299539617937139660435572305228136746788568860348801438048152559572750455689390999320358139835356910346855518390125804408170389475633662400602959231845061630544013871062960214766164124116920367729863148110511521409035965136646282754979746049784143197929095279592733264449100022461233713456151703291604191304957573367203975063638472687557745483392621312009787233172099374883293254771364936152215537803331904385456803381484144202590944888209169671909709154620711540731648872374758776890695834009691470505905922155376501803092416532547092561515851026967193389453505134683546395324332065487257752106173392195918481372662486265964827535240912287157500261943019790761887315004941879966982829013843523156504557734389029902801539291245029671977575849512941227996903180486703879805615467597451324160819030300526438943454414431280413668226342162633133204145789016506520409829142118668031788346863414693914768325196461657192154678414404689916791341767096754125124667587186598507236319722007477528916773400982552324848400231320688884618212901745915803431339245589172009172896573767906972443050698107220526564283869078860328371281929528048213085918657124389267046290363363067630569325743735241340333726521316475048264576595770333177047070564045498623441364582197061488466333135694984247622493015036403716392190237099776052113466119828599088208517175811558614969281480707454524797507934694541210071525606034756738856229447532548803543313195000457696259992284447428706734655855111370465262200509372979579506875105048032316459599010327193600304888326361063183350846061659494760999363181262126003557794008178238226435761025443477592982588242594345981645936016393310151449013823745450883652599162985694355062397832111019119503391020122624231616944657897606120831756718985022942635427506710518349771902926234318562625771061138374294592810709501477406833749454609711951281813407119075835920836486118348984951786871578278456587762124584186437609462838287110001769833984249493083987949747435290200097639247322684155252542467847681074835506009205892483705804858658298620279790497829952094964970364997610800088616641707294489474859147880834154552417622196468700446579706682965859545471911873741830163589764599664859977432193949841111463706634734987314807503968862476014738463339958279519863915438099808320171127654577955374991682146604036535051814039854515018096741763950911803302857969891190606744537835826631522908039047131494696179641166505403817477869244002665910640960477435360938357826875713998889196301389996543815407722719495891514405298083067557437622785334938477603045355049613173669561154400719934446808845400762692518985194213386106303089504945818222454949878925256909361616477338234777250390182527493468203956242585220250276620376301025314725554964045014799340846792401933718966322378568197254847943208990255681519703222132038075649579420384912476612120184540736497881662153890047948282737194773052651569795441066818017066873276102069098327049325019516576986246348837727176813204705390781002583922290547280980743128176655031216127324127151761174521984653072453453105222928365745007600583665304465703985120600619300544256567852011549779950503588124782441603540688556969975859386743807946788354558659427388492558080351997808594041691750847913642370508803700415914978037348671850577286597375753942844586475551355555619538368090937249682731427383083430861952898922270361429060402497535950665299879279344518288100444054545915193039462382114077519405630417319772791308209163302044977817661171988988602638070843674151097952187721121736648826753111379587473765238377304326369618100722198293091561970206276129441166634136005237131252713693885292464418567014002833352489152615729169362279215008708840037893175958402581792331404633591230052266922608862583472535016092134260302082877732354337141426916444221362028368243364295747533568701488046223500436769113950512759726982504351739113071372756071177585637290857517753656810448638518698953237080192248721812541414125778689470589231029550540755682846966260157460710837866161614558557964490183216963555874766334352769035001723754430200475762657874111797336938313147278647062745362913372733183050378169389977758458849451990300220078481386019213633737615747199697064517443300292155972815334892639015711306936347747824503755734332378301550082358015158047896142881918583843252646009823379407051381452854508805693144799473513796047897194403553363155004671204685616797148463822172730796715730283059402523836731906825315617264070802137216785776174100212808508132376836103265788488193721475833385431707055883211621222949078622335448048449549646293250540794829809989890901198641333661951308503736961130612991003211962001582235547549388583082521362337111016155424376542906781866375861714929300518086817675008589316553077771524036364524711271488720931262863293548227914816229220836483858874361761488395387721684708210308754274400440996567067248884132932739145141092487277688121682537468080689997435157916701839069290614021232901319960565120898703821047463244983286853328658337721558802349449026775269859417310835752288927693323516462205711990791095664346631741940908489904884254254481017883787896234781542166369116949488060428944958939108129423169954848054546094166795770142058117533819882109202243059706087758322274568384515941928660288770817094948403793234373799346380543963278171326868007134826259317155460619854847024096394805741393300760520843000126847024120808626883363608575736030255570049716649768015625834252637869599060670633723421624138048995453012226662223564215383229887465305034650963877227133538993956539074335053318558546235758615443094078296071179783740921020633117303314731109801229068180405800066658123489440088670710074469746459757248299680539585638127700017816993872709594013730431757604593300666268614940811487146618173157987425342221303678115685766427028004707922007080812493480509925015124089672571155896845700917040060290533822559882485232710217494675178895169465962122909587107532238615382954640192382222392914206666103718886954297175824942972454172579275379804087280482883205789960593521443642338124608054079624312807984305107029043310423723420450260012552497848909576901488490940619677483833350243252457809767933137861388126220772329270760806891112042365250098830985175256108772010214084394994425907076040475204567130285545292403747257788170583777149442401008268860736212595470904825457822718859603100831029591162716796815031041437474222863470434963533366134828298137444352245853209258444324419399331835147477493136417496165218083029904695594646483655989559564393762729595903479221238364105079959632330173343449080196922304196567116812723913958272517580706196105239881625202284214022670651909680551564943350709857328635690143344711550966288501688659380556909474926587330515300991584571466232792905361287020212101961256668590405255287914754580373292397522478400320452873059343876588733082194925293925272430969186604729790550223917811943955043478358825884265627209595228766984752822963002295923320443778671569739062521735759462197433094950915675968843219381479224444876145479125390283904264624490515750641892204394576092791288515676842561857903110079495752145425522967980837751231470711407630402346459264423168151318997761894392545229312670288498874029107615715270753598606885920039976215431107136841240105924289499723861276399354866718143584766957943942623875631375783270837023896921528040443429161667408884692586714131576336821784726757778448679075537060503387829061767870053412260175863651068041492107439992455420085003451659639760014075005433779459145293077074228477281935698029709473907823527708092509845586446339329843601222828369036423326851003146398503509044546556388459554951142546707465516925740017530900240377913777386698953104117764601436857221240959804248535226629684504541709494932173739877791677807005911385608112356542012154371010827923985722410989910530280719510302734744157911898878009001212535571386396747454430765599374171247859624453162322390314431474735959958814262453764442705074970615709528575523394034354319050660001394213282576834871326039641365121718269752462862753979118472315387166174483249170377380282215259625089298479532831888601406879158972639922429678872148591461771755363034857895950052296065843450662035526575032865165902800561323104319318923629888153407951936166523747481898009289080727714979197462435257217793937075974286393535610150863483490246250743075371434791523578034189335193591901326128528660652743131679665093943225212934639950273401025632482026768306621628133152728996643258796285439079309658011461125604202563956097886675789814795423173721895400324895753433299615522842879838335106655448121430499909056489687836188862613814221999409037550575063432442245817995779076939132203185064197345292213558285144316517381604765260480703427230869013783628889283691636642050762610676524124845357863564764312071020777606810188033830683807038949698808629686787966952906007721547168758021917085352045415281201361132419175092381209584072973058113160240462533416905009635498457432209547853315768739384611507906582968554809125545581764544262713492218464596256393759095883486663780948609490887189409196249446547803582191823864959772530336192695398137695603581933868970033724065212527119988719499043815145303561220274693908087310843736722038841330877343824045634090671991880892935269739793330002410894842266686464421281481242572767574933644231425266495756661808049296459780436572618773183175357821602522370700936525217816407036313633415599331767641095576877747523104643133669930889333707678494380417191004959970498114573483438078043733075221562207684660469027035287558897387174586248680555276262374893775136341161645601130949745951582180148048657505802665804696157650663909735979625669921869862802115643847196375340663785072142132580597746669222502833302956659599220486988310552032364632946668839439164122832841246221353502575700753288728625187888182033898867518522559043912281162750907123940485874511844134586674742182121613097582889959029635478456862363781764843366624655039187352989971324739246744881577192641000624269620356700092528421409928146744228524821580738259549511098468554213801509683671616690709551842542050310944109150873683771202509040219776308076693021003863418019913551604735961042418670844016754192311439688284135712677790389937566812658528075654092019906158000284842755827068565935206193096010940791947318560713328115077980874431264777742104513615766308527349038652798050129230188528018197215256747837949757090647114773931370686985220968440719168979317510500090989534455412868024921929486108608133582986446541186299567059839737980538704892651073549990177344390399431363298529667731923496247566057543193230961147428882809996512200916341547977429515284853385321565452857778426963865638894016012829939098958810466593548420831433978915717107545241359047116772367257266813560130861525143076800612986208876273650002679804224378478845583889062604758851446719026774602632840473686601294990167583649203963679157073596031723220390757981248450357098954137437122661593859313163082068639315452245516231688275464465757535387054584383784628609994822918279068833171692146339075626906850101723420360309145734497800893352649737745029416488145720165456732127758566603580685826728259524693558170691858769049684415047076422942402386659647986778349550345409511820300180828654402748142973483023716506231179024030626812777875353620261488995360342161685279006534527648123242597151568312721962362452035984577038858949959351739422267903530698905294443065445195566567202251422571617624533866099248468957329465584118330659813634918733503226121350253895219823915584192501363124570258083137129545763540411186412867724465510360612864792099140344698625042706420945816859254032802044601278236909317738515254869448205933044184509877053077544650388693658784124297825572618408766131400675653740357114265969242035340378261796647390358195157946755487619883748801380423457190555854648795864076568601529799802947477204806943596189639077387047726962436495475323100977567933271565924575402015799680388032268015308972740538363464579414142762401329396617307614796019202632893339276203924735665707135565539328115085692229782201537569500420395022917510396226169835562244289485278891027801115899386514285286461108397470605366939406038378767144452141546115954078616140981525559609673714599125738710554346275089092607976082573919699023423760170762789623625637435196567047795069704856657387512336611584392353669521586496133227424799637033464794372212679388017993169718547284928910387842747719765685850133494140937359012746282802349826236597558992364058821930074437678938243699264308464914819874509151336438957872389420660326539126554022321064119297101447126317476332945322992502379908624881309644788135272947768961567468374198643354915765829170889060356295679300579669002048236238525318037927187767695796278039386313193743003943237172568040969895997776299783957641198317990872460922531549894177976592258735262087828877587385591131958725001571856643081920645479091251864756517369189387230674117695298443657685836158958711465262665904343962605429220051178962336277728528350272751224787228206023700628684427180349735353691923527078414967858636629824847858705781215146823752863331135445389844859611090214683750493167923810153361710902712865724658928813365049451795159673999313444341706779879260709169944447576183274599543933754990102733137426339971058519536357351327419290120607777714685709779545484508061572277422725433648079145330060208175869509330372842950769285807522580813551048756288567879363790144571447511999215049074036396374194532163922539373960587375113898554133590371454658117579448390724134456409190981039015606231230673865894798041039598374916968095969808538109512166320034368823815875547406636631887860498801813107681739345459033989457466981474590841703138616184172172050730557810058275581619580230424518161720269874527326729910172537098179938227956832283686752775435475541336707186046792067045079327616301363589478241835988775732512838154987439047920261708420551092181980503810571573860793507273074739266720223945253529217848249453274497700537917933354081561424957149285446802405675994000992572798569469972327199805894299123187742726144416818791937241809217306622560061888309492928203502182373148023657718309567650602064879093287136628430477166480682363648068803105674125666900826873824542820451515071762140295100405579490294242938247880118048919764513428398148994399058084978668910571239203427390488778484163960558825827510595604327587664052456856615523094777228358680890144463472967181481795849548459321622313612838810611649979757641779966857258976595878318665727432795509212139654901130957932960990909222815822953857149705103106025109546914968736764163255256420102348131075041041034042859647616268231453392764758028286209040600752451005922710626665168987793828487804035079800269002546157295997844295918020420481598583075998964839801279498433440129902365549387223550105801339978845639667772125266902834051208998013735086583041367773363619004706783913716381929345057472485189648742541942315127971043030279021528141979168888695736445140495057633869685175391908181400602277214524699518548125277386864355374626842192180334538154055723771446443900736750352060508970864594986801093896460032721154700317756380500727879592790464354694105480907197327805193097571956866146071860417754191243895764864124233082524233940122454707641321298604137468740537220144620925289082574775518098682558436765776740490141192254571794791467880114868476077598284461218995698708832112427746455421465498025994211110716152603968452960771888963510112791666535416629295624633570881461544821514923939605920485049966912696967299792308790310259765943450697534805200717143990840712818031629201251742855126132741309262379739482874322831280198623934030964641973082183331827866286392547666939215345716013055903748817940770549440020873327480361499820855007455389591449985165367889824255213337951425810586905369263919989583168863242836522889330555228317125051929771171268551801081453183546768419963360647635949855403250237848081461993971430197309473292723118539051226776462382858356353647547665209833607655886530345858657589393343018925826821937237156479673721962089628594524640759208766239918797419407673067908091791460279888849811009776111772032980447711560834690638316577518962891671017880255530852503842903836024180531285662671510060424914040318014465274401994219308689747815083802063301704989935402833892944952294117381934442905948221989418829613465280401558412602708328531213769754949463310200088734580907757984069927510996372842104270752979495697048855725668103496755773679842467968390612966040919456536133820706106908636431401102452776911835910420727063996285363607957084826723232567868601888343978891406244704921703066925265304797128355850580777347547124909364763356368052868013911706849973597653233642471579299275407860644140380057644389497223781067811159465432298802009702890163142948584436236643608861327802800957412985712486766274065297913722832645864723592848872986895364669174752162229607004326558158158877975598149087083480771448294741301123020136404935617270961948993036320278506115962535671820154676818914815182600655791300712473152916715162918186578398549819114961933613373636367839709523363311065964149806957541124588196824414482482373613626630126014151151501668900237017957032438337727461178499657545475331298380421209012408007470503494839610655006260328427654135987814525828127241133086514309352073347069688029018678708539865243424979710255379592230405889928242909565059488022107602433552151271137076521433233815357087204587567129315502673742427710060513348545467436761217630906992327594804036086253531402209146230487765082155339674921893327261524112363841574375284762123053356873133850051221136396630874502941256407158802301896064481958811320038633452171545699168470070568250387326307665500096772533063154811796332208175151469503872103707126528480431208184728132006554400681306798619212373257393639189393792941105084261297440540093455825942413936729181837024190066185291779330550165584418243252465471196057678865503140719002821033019765636318887338751978609281190354080539096074160468862003019949569395633489597856129388679803355105664080513773651887653821792466384914179013594878645580753002114937225587121622259910658433963167496544590490089340110007531646094562082307089378088508912726829450352500732654106849544441110230904666956973769315485980738406319345090029601603651612457691091265087315180345537052663809601434036069614341876347648389507438533927110173297481666460041324870471458782162081637990681299638475204841270020107116153443672184372974534413379086953009765330996845253666994454121867765811819148373144479976646641746067930044530102345478656402587328030437058663582786058152865007049000743336905919713022471925824273035283076308135658697208764043988018635557254174083361581974033631744138953367012360045035310739079330694722999124646013763114635005943757968212466316708188098549128656192824196480411544509728311356343843764549310260403930588974031547955667092088373698043409221718008616216829033643758551148379388259085936797408595065828987176756450685387660349116299272878357290325829936925342985176542524923108609347542254983754380569837113998681898914984964554160186087477168818057600599503730461473807800159118342368166932539105518197326566699607100486804966237586733216671051031121033185521400080477468989556232870883336027766344853894342312346862091599577232932142010200374754380705079657677912405184786923166773713901115915324197793849232766580755773385515705766496376729375463057000838196987096703225111496317197477772940902380757199880102808452385642997603415370401725434795657961170589560654081047975547783317940409146270323858886791324234104655195906620245205837338649740431296197296320803875296719473511253522728841311973406898158155601753682599214815350275637451956619171239107639368698602877532732954485690806024118043934224297501802006889502011504051526733790651499595837227085130879602646023551164047573142077489403938864210810228842727216507599151880816279478382279049010101896529758401724591874999241381728656924711787562872009401560259709124263349627461480701886775723736282699604506582549115367486724700812890956694446917219080025194698367188133246203251386029603880835988252075645196516683548361404799154894677259618018988032278674270331698159270055319759531719683976451853939740364920190991995547262746545006890262091520425643697571215684523101574328719243361711473854335006757913349126093348952702314650147368451955461397005624038853883548795894545589854647669514979257631044782075575136931550496213596718442875547446137214359170187570118253526895188779384044220558762383749938303314975774728508326234720499263398492876762919476653851644694363316996060793261499462198960769317778646201306636683824414225207702366976507368506436436211175797936169473409912298059352699463928659358665993225687849788630358671103861666048517064554836844640116519129860535996270465126539523070053570170963743568170999636386923421723944047031207193504150875198250768423917645068589160147208180226617361696721502922903419713284790215632965144181145375525044591266183166519756712534172283257207781789064628488929871644732706134976918571961898100749809012675360566814792072747129345962933997793159354408659402124163053928320391216026403159772547157203847650215850306297500972117946037170333899770962227515567946898747428394929340025899596781991049773174067836139856438535355831689197785571268263455562443040223222116614240314883704314354130525801580035593231245157011042436577738906771200083414255964666228166924962051879272267118151000704055373807202120879375640720548931044700603517699807615491411711250071397795409064233156340103272093293784328369633516883285590597293492091586351497387578645842817387290934542238115931382325646849458294776882225021951339375079120247499178156179740470457290623182056196233675718417687123317966834118236045367141655407332821061771121021095850586011018480018194993056727310093676970233034536227847647013421671145417310700373060582412626896735461227403721713669172890546586710632537098546782424267827293063750742782341103298475624907237930992731244354320643912416138139668526309426805037854006284329189736660750716645560873023510967228258101716114691355873586437564803909542049605243027688345232160975903195492999628437655225237098610859113023569293879185525049092758902238559688346552019912386109883535117983157741219502377822375569822019536611505409956019373234966991620731355886899506798076611468770510184030345315011566090218175323887771335205348168850953047213050436914492209435637343501459663572332862303751115468375838214535152535426959101611349209077916936586476823337296848655039390173875582210977017014278663009310587734005445967413048754523330631360793219858391631116618997135879870552406593268626686571196363251454453350832092017331677564939072681293262923796040731180167427441985618612286494689005876065778062563784666423144971709383961168188736772761586845340208286403636847711379715358275308574440864091670511865286429489250394854188905458944143692583964449041322221666258503911951719322234665669544823055929142766485509274311263498404944331648565284695678619000955623603605720086906954895507167294387474546855237388669391722776813451852010774029846396736123781279556160639672646886966781271751697721531863464703919609982112558469985334436075783097615701556421115289127166083430009761543259716765614448935578000809113977775588898002973257828456400272900228222738341561714910980031844982817145851197737304770721183402172892401884580738289548782784710313923712732829558439892221190888431586888803356363635733572226842856828908451113145294298319865338305171563505785552927420653454370355782410688418762538946777181501928429521218776817208815897406274217027217608099124533737449120148248271439613619613408274228695919284161069210903225155462134142548112000458481589702278553443925240265007029494175939018904336611265995090372766184472893796055915056314371954833872989737705013139177509566750421138826033008204223755555248374881287819546534017447637622710421650054791736994168897067107815658872219066286724167239906004304430781464305997807227628167600754338077050326872038385223344455638359062127812818054131302885927999077414943966039268556915851972899749137702399600574889823760904869272203310418339958067060246367202002917072859592112935204009648026070428338081705814843414845161369247884830755860581041487263324682755827007005868881058235884266673384668534313335782760683153570265537052260850928292504444261380274142687004436867967665363666066980694313068054852219950766940196308723738761217607719270485113888050342490096282443009474838171083766812369804091657634009845013918022883980490624768576269774915029825158796411158147357587527027796955686962700452349193217989847681693483254639714576269753914213142873144921158830709460761600519107709881088078469098551013422930055478405090523543915366499832037411597407167061102643810785019735692605459653109013431541805828979448091498607264262460299112271083762155394708565294351277487456749338978224102543527483368122735805950177012092031083780566008799922416884079446461492767331901679278663372971559639443466814645982952205319146520164013246465430484378276135964157343493485024681345452574184707191358083287712209539567898909713648944704343555344274178529481442900392024892366083601990309808849273443725521357396997966589082078521113805148125899009442214026374806754043336041407789275282155987497291560933427334043624133623842973647381833201591880678525368308960078874865044484175492666348598203468928534488180639348552814223846757945615189939021513935919836780619744628438366449435238895745195920876858425538183981889884487583950319287159073620751260731239979749267710205154011800829921377173012295645721728621461955339894983743930193239928746166616581086484518398150436825353297190032543608190057698516527518207662053994912311741754131204639891418118362505554186525163904095809148072070965183334929886335149715593113453964753042342368220202238327800130940048373395542221261664188558048503352591295804434994949932188096162213738961231472844700704498638386336851670824206530774974907796430188589826489658318171380984622216690010295595188847358535647622430727355460224053315520994435714921125472119143476803029010800696520036215411876131592181329202421182936398380679452947964800669719645487577943475906358939797294870479534015992422230768102894985138670285241673329242572054706680244278106644927796800133241156601685906475953884963023297628974148988608991112450120955586269371422240457784812077673683999102912857033714204719901162820794266704496649713624327551157934958278436609727562377894394049148319590730490131386535159087248896161329339163544970257423092042541865917341130610350344274132478295756030156313194378467149523229313476599739112249330659384772963798457394071454340740999375556912755743170960108111849430501540794311222284073949838302118934607321287831086939602902341448142670916359731026111070445953446290969864524237003138443340296788341990474334968683342349576986445375081832056172661923354526558659217737267704611436262256308224542929208519058963796233164265679644210640300523924376310440208996157745529992205008238919511230204134921932517129120047686660522955820030069318989465062381542326517693554176652710714820112614832833139415291934186248702979885373870365933245840174512514826511786094886317998625950567221023177966658852452956368359598362049657155219948486065368728791316937736676926745742115920608917136594661514210527392353756259868680467331598873333861423112427587373169341234891881221617175560484781651616859307756706730531070275381706484631225906691535577874945847338500692048190653708335559625110746673942957831982727975320403499307576419281070380421024727818183422768418599021266342483464216450692118437741123163425574832630339124248603013223791058230465048979437951281981747952348209057415759450811979839087210894290522150872612766300392702841133193227044316571559787705297377593486801697196039010825481725439880770183499574689308607645547060997807709949195479973521736828893361072308900031903012278948475467860967315328871066286772425123413362610375129172304947453555633963977448279647177244843245155014272556580333950006324045524031374196922543260359911908760288710412696645805199360557879010950707809704213201087614734507414821701665093951337920243189121971603881328446495163793011900109845073865551808324131671284942341359018291016800911688985496427628420152960563661887407941608559081878997759633532775764602064420495760092538179742262595420390174680412017009525475052717794782649436026013502960222283788497670077526400721284162916195606842637483923060930378798829185386333611849523465435448883889841526741856245546172896659117160229404215787826555355376260173038230760086057423769834464440645033447092540142934471362559574471782810465599363275183327079785442338893273846025607756096594248753370425886886059589258355180250227039582424762960056729584290972791464770125627623294421992883775066918761236742251824711494960612556414640239278840831621497919616378126405668806004692785437117519519263876830711203542668626869503273335698867464293649996675623573718679094500778597950355164892068273434357974547170061870328901060062581370090723690900012791067626959822431362326814448213283712224651781823067574088853370986522299998108155590934763324705323782426095100048353999620521762452716202749881421467625717253714336838692477826151118997853551367065517607085012525470411104191504610667361726428187605094582852291777873489597941566271044149558959521299516554667069279879604100608892483683616597611782002025689350997242295605089558390857273451593827955061695173553800953599451371916509823104989278880581784843605039022300953898220912985972426975202181628201290254684935747585512583054256978358060607975091804023678500434303690274704644558526316614293867774687543236863912501256664606578095723103128059118437536661568211318543071655820187595369780150228593079365375522643757967482648859191410393890788289649790342745090254596845585527903176018555783878279917662485672895113314548313220932750077755541968682898156415453201843445370211386824758275302860385066976270821673170086353409387598783939976697910101769606309388149979545577191242518826679956638519035176964968198164397823465817938125951381406298557002758195429917680996194785030500155213020567355702066648240669103530966796626671150199821509864229953584640851042366761481013523337035608374555443397716030360963516952962243315108810855337656165695857634846512259380955287838534010472717059897931004584093502635718113925026141246718482554951617535887197406676672878374176015616365603825086337674942865390579501715937977125529733617472927750412800331600973285117030046838240644271760741786371300795823098478919157128824986507917129108985385803538185668204340118060382165954944683257657053434380038236041463786150907361784064714866984090409178058674897028889506619240619415214742337147120027758181774867726348593894448673546642385826664280359929195322819692098583048092673134059660733643872637630144611658584412189203734714447143604061760241707979648950637869652092457129651906829168277869926380342076029813001351196244616862900107249158894149489626120238610850128798527571699349208062305947893981682790842051427418073814209683958253710079508120225277538789348400420210176560139784828498460350693178807378943637465319108209714983487805331485233052240758521947219688238142703249141064014991743936530533064501995524827327010202340989304911987007560837478631017251530769467567078448739532160642392665493134951841390449856745065304585294323649645196180972487117227802604967977381527253333525364094167489663252804593977405839510851572065442208142613805653440908958113697145079611141749897502995158069097541658457091701333727743894961058652746070633809080633187186838193381142961545937036328034119568190477309022468435983960317852716998344130205917736237868400278686086646973534713492404902509497690047228920411020401460570226165966055269964664254037826824857604461949403995673206491029688945647497399015912856663541873022919873073947982283803005780759957527066455811601295882712499782971326634373478695934060960277003389490750816064950915414492208990790904899748829352517556356953541734382524917347847359925968405176965229409842195601158156940358488397905653792432910537793838865470991394122475567504004426437127319525545666265473894396826816516226977034813234010693685197795240870085770419703300443169616777215615000080894701448738803915471468154277644674556095260682124406895961052351315404349737104259437994546804012796652618822390424287512459760187827062682930689637241239573083140725870234091086195362521303969947099820802261434490260537181623200321770333857984041164380172267488246549863814800762697994180150021810922546925257329875965572588169240255271083933922512878739501999121209867978354678764979111762779465395959741105679949449848078104151603758448069656318165159594305761920034382603168584337493902047054907212547082793411525302861640600012366242532953636072874689349074233943760148712868532273788638957851122911066357330326162402570791981838092620914173556285117759206469382996486753062086804346814770402792027151619331246012464518631249679393688588168229403553923679792789592766587502678788764375175336987821077454987659227502103608447260713154845200552721433939853827837707612673847117212081116605286968059109780949436446387656852495623161937388219145933976257331890612614382234171531351702664704453912514023617974740601816955317375174040563445087870728565957695060378042812128872276299531209837295927623381044217692363455979493031390705185616541377527350291255457957144549345316253185619725791631803284315876610284643752014904848870122041065998481992090182426823935229907633488560787595959997052725968700525533406490221943549190469375061111212997361412017490001329663723757243351305351520167830659520508469246591712138439125359214200250229473145718072122545101612886251854723921770805333710762985794183822161032591899853526104464480660950201285110786305786613781759786239764359474460831626247694951198657281948788497953986666538195361769866555320333878293397395171331886465022471561826755862028615767562302251323668970281468497906824451510999299784035182941294957727944486000225764816522639565011011276243902571610887301027563637054071863826841246665366530190348229728674935960451676517570577746471424024819170475870790539507577000300806790136241126738700497616940712124882476578860993518199649735108528256965278372152702104074417702550889631855467241333132727479829289490922554092165770287981606580604450863500446669982543185119632716323432856698251615440124928141479525478847315224900662532165317054156902129179545345944029852395425536236246000116732739351083561446366695225137665557603092106412259628637562287705755541043459366534827443439343360203214812836987089303079169280282992010082122330062289194166620427708936700457028641383273874037960682714028124934334135426975128225906319561805004165393630910141671004819748254436985516050980908839403811174966135678540116011904045483956691577482646541663314943112088806319232040457736795520407554642995769204286386891838077509508939448843832028962311277661130627689725219390521798087505466874463995197227741327373038564577554941411004810727070377394996872903234013102413612147760321827119986592631298498400627319361205350612125706505369714348804946826109537801741194350030493667305637662590733807004837153048599444686835943736463517705086077956666765863748701625740725378908895409750083487578315210505061005804921844464182319860279945191058466817661867293778934846790643065178986332904621216388235462656251152258683359201063598114537976857070490095968255459227993410197939378435202795319257137662553846907970960870845228059586607946981363110323431742858048669708182160891973570427159112436197316455336820950891625708662250258851212980362049719887404309423957051730830161064987263087702776307073482108107328374563311686125027995336009579271380376191949175485567058695905393800422984399496283981497020722353169601809422907401579918043764497272252148264495261213849847138562342210237121843829294934765727273922246148398131134259499293304171775824124482826616466984301181058474685284888361369944275236577349232859896620527236835709528931458899448939089264340703257629058904375413200109201796324753034869299997040214138340061339039670016591649572154665083486328576293162463075797757707142108979436766606840078242374287805408387370390639317510670106414411657422923748768944832834414186037268074760472700355566205073340912210123523953110816951333698394415529290291630787849696773388734171670831226076283781443544863282618392047276744375279547074840537332271553640528924556455613269899781888280796067592018073977390135052322487800693998577280806623386678256360245095330701263715897537555237687327982302191178474131184592564754707210792589449112375211758812808942107822802106909366334783208412889979922787996222580160951257988057185427810283817993603898406645411667156163680082668172852068936956507377346257019028587396950208919563016802481368538075076289395621524409136115157391750805956356252512838856650203627356972890916518482777258777773451136598735254279091693968486696115598525596565916840573136363781633346762765932444624801745427151878627177202731555183502069604883891113615913199768146826348659405391802604446723360277329845114978260563487974645314500878225573977626234912723211042955485976703739608306718504860061532398438867577944154953330548177240266634982901331642756543884731030830377112064494530770250980945834647475851157159965829098575308102091277701374186472707517549915829132311232006127856390608320010670026838956042225922198411837068810766831994413431107549957413748251940748569284274937477665314567280389623241552414312419141955850518654071789803077084112523943059069762416594739954928566902113748012035769224422493491719374263168597928756972847361188477116840880261764256028794416807743065243149379926933366219032282932766693436657347637799099544735100738911046098855014169947573125291369385123226278770412985108884528730456682021919101563030111275016954262189212366352266040561742234603177492404446965093145474134779020606598035843060676997495295310592811047960574905022265027126273531686064682140970534851732901683136778507780227834191480742770319435411626275716044690545396940635469408643014016382688040070517170638938686302452916191015408466659245854289520154558904290749486345335424083361358735090796870629130568383651119422500046680644723223238548326353656832349871316963858427701177705125919981036656502208032995974887311474869672856518310725803941033450959750680327278646138043854618641940065885721999217467774427175056706018740364638938952667596953315429722454668090812198726338790763873444246884401969131082296563394937900638110221577837681692527912047896943724582608257375456223548452856670460936695107076800381185810589137353120743074288222389901902967949792789749576812536031171875066499924580878491892725197342802569882402041725730197809348064990701134593490736154375787878859583548513431319802857241215120966475685798805412570240244931399605248932157134585573971285905410445060112701258437811371448039332830963549896809779218704220464828817742215481120403992974975602622244328083200663803059524208575488116692155873747278414776397537379366744275208362273710406312840046124099995824717287069088297922903662085643760014639297781571570242044365230909355668832082922413429367422795354435940820307867348285968782165691315571070171207488183565427444779121178565648737724298925433279029682352818870927637896329694309652680852918151194858458130940156304779836845788030177963587748286639164921517694358861333774306547098500847117176705466121926874192321603051757772861563490113051906009397815528124132236804864983723177239691353141432238367210873009883197228719573798831263498807549305533564852479836813002249309466970605348827791558680852303205225285654903274532050284733196133180070631758636896886214651905926857415263749957271266546636936200945467955718272888982001794547446323985688611075122771795285302709969660897491335202642045243093425893165563388870959310037615824860350625264489698546008919372817265042441478949764033644490813737603476545167944122067524614033250513735104311199172428201128618371256373832521534413898177607662525582511963631983720351022609639164231231381770535351814984135380404924079502060116605393109257653987382637259097822583821883248434392709747641627331262010017511958811686001522846107758759852256721907686356585717274157690989066374927112063442238410854418545288223613658872913755622754117868143118187829052227867687915201573956973616299608532718883222210270183218122371068841104813334045410386611233204819704816336839082744630747082151004282426924266102630105023250408317660541332743823034998540641940601981307926776821356359330603211272616227262881424197811257811206179499776299443145423959916550277465867045361945444947267487305759080238251768699107653665082996488522019117097253583425714613322402669225901670373276180691855323749816645292202383190600006191659295644447525802011574713485885398627621627256153960164381500707870444718385092430435701284865912303271016106188470147436879416135406804193713971467903617368649494525790080200746793711511684020750987718737653361303022382485744236093665923848216969820049466113469176734131828513677187256186634892461840686928786591807183948033292083436256988464253510276038294522676012617054041653781776545487329038657299838713526695860631254586708273033168595806323041080496901265651919463429554204401270293320828295885904163978486214054965852026825059771900577655214965596767679402449879066102040404379743442450264507336795773494991289087240995899364030738662181252689581495868524992172098381256419143688341766403471778593829426657667510409726698201833258987788523424552000279310671465756303612306075909157104613864900552731659716005802702032948365207788129763235448346757347008762951170590676499282639980925095448499750412633987613340492483159761716115058003850787367136948750051740311148287839183783312065152342752320233949812719952436831039187456057588576510440557346627517245428987025486998221914175085070746766717306538482153252305541844206774700993428548854831393783150003162945451493868836413595601604722754676881535396958506956646580932237490360933249098063511730138316099244810923560674769964425013659985945242444415315441708051383321273685836031967057997356749980440035475592115558814651140774557588400717909341543916199456518951702629903644712892100827457268395598828446233378390696910712254815971674666834998186020324172388093256569707705628357559063945150399529871548965024269147975402507637596930022127008420292404306226325724066291933964536143125702134992846927323168022575586821182971691267437788288864969719885955319758388160357712330720785295439702599686897969393023183192121742760850923615349172265587287738200350513901242918742643325781958202330408972745961412189878371571514797428493713897082705219527989374401822579826341408089348942201105692953512682160927694518528133846174034164700748625724354565135532422490464374142755101277564299205035302141450048455542230348849283411941645662820320746094261418830096153518792431644084499280205693782899152980167226633181597107206184153997589516907987237614549989092146420540056115760073239102773095784290086258643303327438507856355407223071486612569829451380852916041503914582727080074457844214945034201745305404496930196974164285217583987195135133211266574609640589124726042232672112678987379264673129055989245776329826306114788869548187519081277980487939441011124223967776709735995209063642179862332741565900495951596461294096626148454229498640738994211274403120623388960305237066147072816325744023764059679735739689027126117900209062014687300572196902515064163251237612711389221421517582745652753697457864105394910660011555215187731430339824162345772819984095077548249566570708823510102120847864976740865100248655200116228867535616030576019761286399023865230982193120612727504180671733634620297615468688332558628886663408361896695489121511926899243990680513644252791330659067016043627773865008332606552406039302285975550686654112437908168265953871192593464100853354513669533648057345782908642284047214542809092308621157879143110011610273986240249351481418214235976134143472826930662664630382759548664726639539467177125033152566138620773925671620553728780643851149869434568125429041878900196124653336767031887159290394231133082682119208967458413193501546669863352308988703087016212398908528372699218966677216755823164796755017467991106882223070987544023762337602141325181666450086785432644678592919601940253402490997873860699880428753186415226908433939942974018908187110820957597545869307663308037283678627433149265184861465566916119529739611659744657389486548862128573111235701989658007025287036787438737285728539465218865631823186175091016345998244502651987453450183596017670714342590889660831161244998329396362898007597639950425551737254939086552131101699196931611700887286731472889875131367434098075232579887719510371014650440189261506965436385438981549137773459469035033502882773828280123432586587091125587206779195278168726871169715620046612630789225133512114844138882810821680729841859316434080826123112048520912670763967247601857222156216184749965396579768204303618564550434373474157564180917453938538442156454908308744880798679318735582164498271894236152469139716557051417046621361123986952210989631368063567433265439796462846133921451522985348783395477379831799795891531270108796978451374068193338461936153089708556713993916439509329594082959335334015428423351198812469300565257327164066059519956919475143320539882016770357397072034189718001468800571167284446711023178098388147188308928277749511628374218919886496341553434329115580072242803127564431233754754039429308885997126927191458047372676899138208538834622367160079087894411487543080137931540200810120094343153513425632570850426206651023021331312023403374610638704184590996872056189544784469616384473962991776597622581439305167404040269024082033690409581348596930374361645858552813823432542317846017986435313010020918127426307746651626878127676690287169881805299832025020622829669599974713412917693328214672641784364859404681628898027481090270162045732338829862923863624906916113882074211641119514193676967549658492117841818973094509063497833866948866107616889585260427282322470481555661665448579873427680960720728880913209017255660161222068851939713227580797086803442676942349002197592627933972674373084698257503603945832850725687011958204843683680106840722831398032826918128846635797093396619343543406020560081612219647986021074959828788980715620193615239758110104471091913984370569859836202107062453361221673167767300174342391834531428745394004661617215438555575964490819469058331536594251795287012096533247986562495269110846896811239251342999708634485618877118421332274465878331026843084999508076772379768085753106675558559511473396346550389288151733997336427045672159507820143214829408586335225141166593223337074495544671243503085382227475740193272120212883802158742720043222264302155857412926285017098843929842673917865062328078181603202683420899618638062056364949639241338894144658156557054889179621167154301159156895283668054783385236367513799664968933455469986103358327764844340125873087113684331999186967136294418487495328558001659088799954347678310656045877520572632554411752551555968333105377527282277205563122928933628270902300385892747496780181750655674510382510636074102547013876629641279692322410994136539325323827953417380316117611902997318938348939909771480473834264634925189465983740173011940847485327015726926690442050000065996131189823553254869218994106870719332533609506505970612252967999781729241177431040003965240164516344269470480776934176179947657106498400261929864977645007285587484982909151156817267599653168056670140239935049355115105449352903543078708312040900151620513787370683493251455298845980674758237983738736744889094590685729996407076689008687807706337629879843955318337880628460606810309191388561955232648438463503873881825739145342438325595906516676110800636341445261877117211277087536489073473825894773483374764192345383845082287703599721635308168047210150649553904782062778047366812800483286117322317171710030796874037743877509020933301338923510909007583102560947477310479852317806425912811661002840000186318503761537585313839385315805713524986293348483147461034481984705486853381378384363628216317773830567458557439812038985231443246936536116051869383739493206754311627490398354442572333033623568342566564762821099300364464492823648441244564290169082318408056653905831079542867264061813676230060970358459527878628251602357480242707028466924979469996061656386571809740681143919712605920617242203534298950011122607423336278288822427592598326337267220161021804371489914538999535976041698696130353113111545734587016461273447429391059170305372827294113459128454024150971265568901064693856525196467916583547006942926783708373523021610409915830400617979050617340165866934019067900285032655304592579205175346850163391310765786346752247499791737266355492540903211771915268210611031098296153026586070050829780521738621112329094677061554704676361743752648470244443917938144669383883685479530929849841805888808429907768090980526585892648179812499846620839459926169573864398066623865747164783829106656020341853064918602715899303186054670231163356476289101250305937944307720592940639522207939431379713234962276070997968774562775098198561098912060572544813265792506742880725832962011781197082035687729872831934056370636862294785120009927043502561486330775056118175038923110782438647980798060425174497153289647142744777936321547144137774481749748704523606424647763200282632071967557282350601233013213063031541919605030250346346776284434617563066306395104764088244013361775218297422995508452104236929969116221807167267934568131144933013696407086235713543533233300019339918196107446321935808323104649016291798430689395744788144171308227318131390854825322406911619337377473862019738520347109708340809417964894506801615242707695088928759166905832328237078811339092507990208679124362637232152891559768975506948310958505059060443854364071188553472183671429294651862644537353110219016337867447718105116023314264935056202800566053040118822083895381253698782138856063562390773460784795674249342333325507283298309051501660619993883384461896404654824243817347303378302542274985750991917957823647784983605953555491585240121939126135496372259398359838449996738085970665299935732596469698979908528692180864590661897936843809547784340869896469460495790563160470937383700676590191907204916863048172934381787316221991951616939240880575910218084907270997403719893301213249315767451889839899828451444545229121410926354587110030663322674421432681054963808517682872147266024881551751008199717197809202264770147702308367385652896073045265440265955846779802757124030047487480103208103494255375436278878827560502156262400231718919480923997813145296288722372897016309371632943232919497992296761087135858819973897575370360534074981179177197524791512172562165310417613213992184936390880975006688797741110543311436442941592128821166742930393111752312737876462975280149531745691344269983537712558873704384890727916380190057331780712517208847410196305980537847642332332289991699868934902154807264905716416392141211832198611346645890832168477937549838031760419236959286635859735327827666326578708927851513033808844545207866954563911001845824540931674181662013665325305874346415457352425118707454619750386893961703083146556805507312561691913859656991553789492505323481176320393898731610402200600929031723838153439877259657126580094751969230630436469898643860546048420617783389688459182235765232028025010866417265523450704935918486777485020097288905515723376609177055214173437659605236614810164218675197091265962331856075372796734741565573196418637757955193840395734032796486098250665401750722724958795678143253166058931678931260771411155255083571018567233018250749100056161094476248477946450055309380524861235657511833253256649672547502272763146888130799312133012252683771938118189424783259646609382144255097588411252422927012412194279517051429877062966113762046367182945304575886509641824632635268988359920453725275164313916845660837493612497728400878706615081456039513638094812453907294054461305440049777217040895034156807918888329753907815265978920703873446036500661532258573166819689888635826338852507710222916834436540921741263900079182599712637305881578668994003510289842192700733583449982766626003293761213680984500616597749401397046720518791035680958951219060036953279596976152029093693301832224220132263135089275219840038924961935748780359290783557288711400525060025415704306539549040929759295079546617160965685579222347544433580387850908430978442288649517878769184587095085706588029822143172168013755068647364767263853662731976196046522526892970822117833916862071500210358874735939037022450687986176076529669609192625775670233398491950511639209376313824628749279826705872069705613465142237842234569875065955002479540015751953474921576356884151789474802876919507019054734051894039751313516558416122356487761697369852137014629463849349212181462635780960982944241027105192126232182435566193640132182347630128425721699863106270624939740132226964381686488789045480609128792497479683748284475868922827641564828516498732317383534829506870721084711028852384897853936109426920286646674858625088726818573326888990891741054361506371932114157125746369127157042006128251647461246778048711310309973448606554973337987960702835393321496992083368496001431630076850833423436941075198278602396238649296489673365171224234405125395149799882952308314457786316069604776273521274236434149316365838508325724898454483749682054770602940135160240297259486686500546750686190981177622853304724754638169360737630223396985513926122252622291429818184471859870933197506880730213837992290491616957732090492658023753829138028057611069666731037523536471415742106206539572836182595815349347454242111369140826917697199974913932407474646264209724399914292957759463411974466112262878149511769049758993089227807978651069855659863345914196622686337139728823565731894009132158618380710177684054014761122854480200457660634273045153479745557757201269847180277294217225429575584119271345145804316255207132988220429288712900509573417225077462164536486885849398113678690390229241275501176125058956169060804086456529195667505525742218295459071730288290520527873312563056127781435955637906927557769085451319520124175438910522563272673458582059202420069103718278214756935345639341875818280024428773255487581797071033394885535895131333390893213213455023103695462213743372760621822935285947338576828841210105759297472758586661618792215396674435256023112839388348271629207825791055906205368420243048302453515023095491807357064583545316816522296791914762095660814591199232546563107870158151803948318564597466905482513597914132440941400797999838713492865544033504800249412989828651290822599425804697687802118299912269097100139060141340132164720514499526490922431610129110831213032639632428457564302117440356569434058387196966375386515168308109365864206483357520837048030251010072058062604795513849769536270762737800480557193205175040639428194451691975495747079115705557695446610171650417298904219142573680197347876971817076260086857082249427200097343792679731629862661711009956779317291772646833785487493170819567761544494512702348661473840934207058183554855287898720454415958751439841544270375601972823132407486162967238139580054053017527089323872422142266033227230430815332968641924433884814567426953517425532870465017921001122838249304629455687825130134815461066935962678271774484056015300382978258102152050621388224376371787907251161102266962947374683843000839270780955541336553556450206462881254726138087048691547362091552527281592844840535764325287620406580757907584465847657010683913762420865642373706847855833554886957272412314332809546701425960124477231136200920168052478658097238944114364259822511154220132394773470758862195438494819508365863730828952780493484326662338654734205981560807843120588680658897381790273173789829190777396066479196991923172796818533694612101956993461214394889215064756056586131161626295829766161714962335444982578469307984464675406844723064662447604703028611796749932267983025153763321679703729704858319909961537806637342683570345626112660713703998711973574166389400372002001249514326325392700258100653986887189920075552784485945241087066395349589220143590716982898680210797854282656685725013264234017178132405718405815445707034157970229175015245219579396845301901699742031669614289738759631188581639774836433439414611906487893887227758406236695763462156420748109765666105893165299947795216337750276205192016326491365959894998316819972970502123464649172018746233953241000080774972271686436523130072724509674649723488630366631689829598191741604780825773069401862132797605069597358100622679035886190311076459297401599197290660490854593133767112943230448941999324032462248027906727582656396291939894956939421950165957684871250097563289440752887992512303103425951851414582028074774216349032147385970012489066768362442768722331774724527826616471325118505936727662137668980462496016489841005760648146746329371552362888634628032937064628778814812832195178438300735168709479690261928936631942609852492833413270763736597309593662903395567040849292021826407788373162288190565577363176812054645644407851661780358321308435583250006538216526791041287879623208820886213672873350021788253283101688795450009991372043461634872878409915836114766691863156827164692019789410934181953057711962407600649370152889439329339527771522535020685547960023818174838140625476338209682168344769427976969728420366127905537946378412178985235598415143537100978575530311850599845898406807524269058520444473687155728929648872822383321437952664435720135901158907057322054880684132850196785501470463373681941151617978902248841069044585519416028287422411412635879273303510221026145166920370483832046297950425421679713603457470046552680034613847282522146911772470259535832089830825629936825001583300661484705511732655919321676830957531836919396848764296835346953320730433994859380846208502595224112850947496128141544251152663186607288644820290573141447010516657254293678051948365980708219403297725754863337563648305726654448094977776474002098542646130241360986858710112718681033594418963897670752945169955385394863513308956061955274617826061731317244673500289395845350292953453791165402268721701244020544993280048572614100895955601670227980631902297370398185726015129929967714354591271682478759842607405323380021950922906946043849423608364047492947850602124636398809030251405609182260372874016452324122905992708961792215874739013143489867697494129880691071395208876394577490150238774121236122717202578779750565203166149456690779708824846914416012995530149353886235437055752301330397946259031342177659746585187826128177365032548950973821429236747219860071028488428059825749879294386470949630549893850599643622141165371520841199929458449426661188085181168713514443402931881392393706742178007758192722425801928650710883185172385503737929999660163834422354692899564119702629369474589142600495408520943426009534438276556776315952164372812577878245569181094612833498010467475240342677889047910991576146484683557649575866405558116189365401847981578841272003519067700285671862821437319620297305336871675129870823048316568374425160323353291915855360381235511113448564453579530498775054520485624821485255991707526157477374479160659463244089371450044497555285561650834479446134047843810826722372656313340737852638725106347233791496896564129903507624246588266015625646714456714593438269816477948747485431598841609356490205845056124757373997709778191851953110143795449771426797593472949903369127545545997504928570376967958096962968293586319175834621017009606135496268584688553068861375321336489196304836599020621293387491475488364087805178336760018685467354567289945565133904044325227455756891282997996456231220350250719097608996338955159262416539289827220041111441379646348568796409292207127076260309206341983034799011061724642042316328823493791914120496409767827452772203932218440369189210742136527642151295651153326997255793720285414537738162083939849528264121621251266149909926356970723437539752016544928960569495593655635200860368113658034036510056554372140495591645092725556968063984683185727440820274387808520391339372062499879320400612502809722023349689946897894125400660365642511141020227523674851757547883082417051124180606886770330545937885057740138765776144113557166910126677868571214319020339575529188595022893576633784842259127320726363343777884929870363094816145701833877972349197399512871178980093665803434407879221991511515696299533403461178451699732863361264845156301740709916024017013294890295837108425095941975105320674737490865784726346100512311328109246246619355837924006192489546642697831245597375133902429788522960844101684095710726378928880201366379121238440706759897707586404770410898638065220666841663409665522135168912685245736494933482770030556925403769631955060378578413612314494362089712883622520175904277615470182010124137714227935532872920532470705142682423767410361582899119556432358851307380590525899842906811732485723035889932947172132407936426028815509435013725614948916133567070663867562427384744805015583460764949073615893727515325129948762836865926579899454954999319397784309461737532689409119300409453915902134530483390788194983944292727972413952544295093529131265121526550436677158863794494917446797949900111416887912594071216034905776160126143955779030759194961541058964630755040017704952038935897754546952165141174043722199758138764007118453936163258602488608044588113767899235868624480489597731725489386644824545982166868673563691299300490445278070669385087998514383169025364823548110396149414096787702894696280305482855145516770458001504834151003592778941886799850592128406036288642160876422671391154706323936685533380493679300512999752520899544794135034922025955862462357870433393233437639001051882562928260743070913691936229453613552850087615804723851432076709250577368419663476676089398727069076918026410223889672289682896984628516012810258761081637350320255917186012416240692345184022807050489721349364963268861298811981737024603297280870317400039001738898169822176113632245294312976338149840351989450463120865704967398873879459445765054447472704911770505259170620689851738996768234901386980091355822219964583728021573596867560355541069384742075627800481775875013830788158849657306941192229204687689607681934223338971060258462232684535850518971494688889271808178667192369486609678570240678181134026995526528366738730129985217778065511474721122986480776212593648887093896713080667789438665560892885403442004206803080589664832640504024403272903177523086954434501075683171464387877644927462263645400495034146914397300868291896490845324206828330570949215965782065659161321266824492867333592863960980835922734061595386606682572844383021443950891670706214232935006605602280216086008581681188970051290091210593809097131912534119732168192840708853172690743942530734896558811099727675720673249675202863674780543120413325464923399987346512611816845475298293427786520693875860991714821223012837126168383737584725902521277987940166069477173553107486595805103954303776059554854937258883993564494865730556560377596064660540597826426875130018408099981866454730012909875436652899857436024429464083565931655777513837460276152728906301024497310893916852471319003657050655872093062439035167718268226134666910406644686504931381032702311637180895936662463970130821292877099716884286930854992238617144283881108530395965613989865090539703769882364588113689166169353835341426641039681397594418718034530752183951293751645738615874377988917029006036366946047548835651332890620236607537395171902984330621984535459670109377708791884466409526768513586580209838540762483244532297557275613758502178454823030993359906213312184719453461835437983671982300905451245525049128966594537275679587891846514319078578338022178577334390506255107868295965687825739524465802761463505982738125452557322583740006322043774938178613985571845263924382935204503034517288269503900427814623777171141084457061529672908365899704858300672792183447100121891730085444604567169821049235267083137885120805724110563979617726245478699541442882859895903801623732991205689139520308939397579380493099814705831411467485745230664234659676026811559544431186165038653873169568350237177848675651528111584662372016560367847719988612578452394708315129484285945783436085141845139978236437495481535327199218977316789024601074366556084494251156674572436374380699680139353889032626778028472514773702553167077978564469977762755866106281017779308854179408959042020881146469638492126334885663849491626088232255155341475570653355137318172291141841479342863701952857204191986217926448514402844582770438299247912961772626926369997228347024073234473134814350666931715053009621578633672505669431916558654437764739133108343117019394062110709225104691770743460391911150831627892176284401788825197863131413239310182102548730508545404357928046285633490748673728448120063530255669785135257694821861537176165552142019541092957153806018377469963734130683118294430612625381115008223901874537983520990215213272822522435986603037145077434841082500486449367121785335473308137743331804064544090586655380346184505861166526639790982899879642173054510888154101375628764395531379626840498000151335087204186976660518503809251081432265535522529247685455107978888928213199567953871706041827025271108655963156793034946192955492494918756723888814915895052126017382730454742235947870412280283738308341810929742613472350752985913820768417164613549608570515874862855269053449238728437260345536100311333733613280510883392504093017774383203457478142824203298596945041357146313193342590920044922130174682143252674871081053603761510149612205737145479991153791504959908724114807426051797578625136371591109293545778928894396557205587687785854116891043632146790371514157141020627059182764923783735921970699238520624125487984480803463521787394674376248950735759682005036201832932115735734634365613870497486681809308457367756357245206795706315303407290951346820017325051153831447448329501980708726146467290164240710849905187802412211067813205494280154914286320126970213394223418669516848260423463344297754685584875007846253798917259716025898149229057162742189715859025876424114460200332550154749315246766328560984218133793945720466469673115478114419988645122520171307348621101002394951573454745322787042827132766401582053780955286266164437874645115595647308993801272209710560905518283755232062334504627445849642838130601730056830287185865930047099114198108924385992488452377654528944836348593674729141714356146783570101075162380193916004314162706638541738721525026817235494676060456110481401967790521771103239032707041296614231167843401801358699054328173494363585211109603044799511444991205690431227358736766677563184627164397252289192179567972802098176664449788432992629620107092445868763708553462174730592670783599161385996841236681446173254496815504944915604151579874636241804279646690157914084934361868446932394669799408620284089581576011874030657723549794714778597629714275713553395008919150899932686002890468980798688456027155240621340553744596981453849666249779330644392146868374442524931212118746305540761454930580667411869537310873377087742710010114179725700328670341382202020945513018391499765383109940452153829361643861974324906948158141467582318711308304067830213819433095292221449033099508781021377201998506785855659421094275856889968880963764990423403817033448979756986141387230539274528936787734498279376712391370890847794615227094547375922776882124889664258030438889998705557968910503459922334206872183349383025267520739240262329785068495144845080978444606375421489029876811977837399189018195751528401872900341300836747008512224823790992224016367561755168498342696934672452770761058057416159765369568101221486526353156612336744122141046124929345909121570062743078769687568994474184031803755054127309511136859237769847149417203492450059721807146610980033036414668314937644426972260305112229285818513051546101881760389222144648246183535174706114250302668169856339304399006355641303472943663936923091342232909372349082340206815243609009301152279322472577843584872704291924361267147906859657180213196678834456002723979703591908358800347592629228305961653977605134078486068867964280790695213687918308317282762891465213629861206917612497368816344026220420234404011695426483693609411892928265855203381745530759797850056058431307788309645678023711551586944023486811415459286007610707319705068087902029092961782143064711894686343582431038554347304023201666517654935518610291146116750418097085032328600526794090917030095325250344369068664510859786833196366657892291218002592136675974376037830811550800592947368702876983428027003813306435175192865267625099869978330248725489963789843021092666035493791103673839930469663759494198293852707880184371231737071732694295724864410459060631017816472216502074638917256069258057144176976944006539262112825548789623059065168280177327510884599004756551660531974448747022075620167090672252559229591825519713835305311617905771277201676047755331096113412392966056476273427897067643686260769069614040101057795155712197998532290413980487849463021398526624421105010243884849934755835262457484971282198286398035653738743485979348724898966004186603397955917094765412109792054914770905465578121728933899003615529591428019459192914982102474188366183174136353785419971564424125809465264032345860390079518244689142450786859174118601833232056950151781030918000733485706053902438181056423131397414788973106786368570841382261334477799058515718039050669831689763388791161977946146098660180199061858951276896617701284651878836904842913707714715582058830555553615664315421240115195488466795054872534905830779119642580539637938886936695997495434027475571117900692930499895692472058636051406153639077845362779493053717539706604766470831328964595865586701996116586038971929127877288423193928174780479586809478379472409404206633830869246721468722540195370810885147388873469095110792543985183508894788903311903296162886637822480926435680040599869040869060572507222138325600607852569403939233269049834332696899761367714965564698300451168898852038126638684246601065339963604530057982702901555202414159934562793428395756260728962124908194921552839786836209270963924515386398742943857655697423161702318697560136137373447906938516714381948234663614498956251773032600209309261847919530409987700403879241758383807508959750738220059523644989178596425350564490254165752981293406798779461877012449726284557239224872778886207791229392493338039845510782147619707766476408460326093788000040719751975905919102035374497443187509335973764235679271757322620354831297376115144390506645209883330682104053727602669652786018157312284220463400077717110992902283412594137239040338387198980169986891052434910343272884298766128230930991190195880595996216202881359838153538900027824063092645132545603655982514180561167308471355825730262367972577506453188786436314357752820604705107219011604008557292960543511415505435182333783106627282879909568632798201840828230696112189004703617600076659801907741002595137918466355428190791593083720637811696876026282501587848884810532923349555716640101206367453260325786517085050933527361833104907689408479065133261984370637609431184091445584999689067678109472361890419019939024598681195000693952737322697526624578876864718592414698553307594195920896371750088191837728847758287195337268985464264467670881648453543624617299775630238803640478011997813425243939927562251907956878090200466697272133175920505040045286143151403076244338903675393184880591932531184386056564723897261498798715816437151098562459501304965180819075241494858857065524719181911233548388918232610532056198794857379819498371204308420060604875625648016910669768829038444624347159857390139604216539790726702859803187915990979886833598769702090056863181042532706282241732826413015114988976829441562880392268451148334771144412806779311644235957029156910957978050599634502031183000104113509957949566145408430630352268235797924436524858942239596361434970762037277751654544261608589772047753053569945095716738294262519536407885019920650272656258763814387965886301543554581682456311766569441548825949903130786337183010626930418298073240173463793628572140452241611486752258837380185833797607959113525512196126234133606512202974748071792867607836680641100061153823731681913800540589288921749828882529527323636855982406918970881054727568357604652977844896652482771716310234841747787314371556460391817553479519177481737539461160236821844342998601345114949033139981448290572965027262163343070963969238705062303513261301131649962382873365942910989362843294403143489471137992943833617613154625628547799711061484978889945727768467203378306697225488954026462593732439943851851099909457402874976089829478276560624433156324007336505024619662038821423814058419767985695136644062852772069108878481935263455041716269486711416381964629017459930713726220125614084095144250840036735345924602964200596098931087332935663797813440377402843740460843426584083347881097592853426062249872812490953399422687554721105142760112905328174844695562929599309980731283363095575025172508733949789538779138331828051038716403716317261424946039903775020325943830022023942734682704210223776940340444094055120097917784351876943133356634852046437598494704895617754618253383199338091031066787640958350601459712110171672725599372708624034061536204258090350535899432252099701496852003346669675967567582824663342281116239073725798535324663050460490752607335755468959739133111263072890468526442229244986566497594163044773402159868026727114771131128992424169252042895945220564767845956889357793065126971368714316603174080632440643703243834125798669399664061899098467922182633045158986247046521083597696354707723187366701461604676086489070691347966413123858968746839762242264256237735396113995890266484720600028798953055484319296904746073387737464204536383262548605782513323441939093355851839221988979995217582428943863865029947274250794294155210561630926005916348913553218351997505030545969090013111171073293529273339480590986181813158778787275894658930860115906103142599686635534166392709566469760112925809187202840183480420405646072716854243958173381904540823496051385808014081274577467336518027149152429725247086903836579393835936939981848713703400237453915863069555789719895596264772620794395957848418942083777475353365635905220736337332957409001858442108369821207547254991164998798131789582947428791353555595388631500333645585362132404155733707585042181889922979084514769711168776321652906541386718946689524590088646277941476315359297781377303727661699219797675880310639981721832219296458149224414860083814887424836871749216142206049948673846627860726857025347367139630848545422024361420365297590120432044117728330325018957684576403241342186295034303116119974907371504345403304464809634356130292759136065819272687201156256526714959368881060769826064886789285923421974051841205218839095093970216019026106867131056055649478695028420182243860218520807023876344381938876398966107764003444257610291850762534005093368556483429172050293302542831719675377765093889544754075440950514091229973675412819799447681528972279439213788035358830908429965242509499672467630467473066961929864030096882376454938127097142462741998710113265847287522396355386143366903249330941187959319814235628968445788496301237413600733794715094849088895655995169657168615519559574314503902609998955667633584165822105152304850714990000260281487879117953612455755530249132661292125561225174583734551125372758445351681444008527844903379312448907282826815967531101928706847978286345096317270677775602913089270625384365456923873637402667779506210331780805465798031920313487031856810635394032297452404373189925529994746973983769118384640099920619131292772647372657628290907843980631832918198609698077383940335645283464504243074594623717777557806472416726177294840725313352977876364955922497383535685848316453367425997676734716962293500865992242988592191780645628453172815974516895195937945724658338803187766486356184670296831862259483731040788376323981860370886068779224154871382953411895966547135650738514485981469477789754960438477701138271293230847056387927168274333909705687939430508476042918105039039196980502382954465449019945684017294082995769950223526411136145505784947230958605886926323426795363741768142823796653096440471711746818251140408875609127995474256283015864234984270100319275768877973943694076658936555094405678253989591764184661317554793738053625600096655981766503014298660818028451342504710947625691292660781429085210465919165334294571121810798472637151051914428714946143519475656721469209733633872525271381764900330985721967548203195452300606962734188105373817697929420667152632592280520112990471606541651018462461713420513125091368107212761042218605528203279540685840648177592983415132102893236839297852682605636822040028845887976356990648728658170987808604221799755657019897559960447689693338171925662961143563734123438953926628656561391713207569212776145074632757762165940004400079465626477730866743530681997670525542991141636785041703416212660529475259084362108368602915716465017543676010471114329367384236270993230626508705241541415642518749714752147042424757118896277717053625621514799829714234448202845002650364105002819291905253290019740355071998241421719569872188159725618349022210466728085625970410899992679533958095311449638954508682788868136623085384875423375778569576044466699996439298266795382209333677939243577313426562732821777071864264985534504856360083666157823494083509808388495921517947529321131292447800595982368571928554136781976632324321335674263170580529451715226759541970149441747136824935723038315972128910658885253665612168725890916837381109735094514873973422951146737050991277703134169142817513518472172727395487569209251369594772131967918694160019529855652704331494935279812787171240504718030890818044347831808580870631189031045401092619708607466139071425512594108011692647120969754714375207934842901864785841985389865853040292179395735259479346618554536796027092116691580831602965535235197073984103721902170879784860068121952661543205984914805647568300021369553227885701022171158947401920917753767447916553355906011847691440313048577795389552835411217707888839722160665510602603205690702584913364553667820886823665238678273022179948903845143984153652620105924675595124263249091421812165341713254879699223343474215290104862523649097188169285259425728718112351436625473801304350811537240429836575418539918064559527508988772451161665168468473149524145029394421152738372006339562118256865788794630488557502538460360412668635465943830917501103438284135563584171535638318316676466873831316239833497917478520145699155920108363066884519555555339072959447597711336515158799552292687665328028575856949681373127030371235959690987400455768081034722221870038411208684362035808537653060929870053437920242583836717237843572470347341074182112051724530471537885605616195099670618593134852698181354574201738123744263011163392692654061977974375160171298113387531856491371277124767817046890266523297005884599552669570523291496749800084742908743936220411253415045306688108330435124155440208065904277458048937497654508523430108272852027723995219321494854899690772079305939562909782387081364913032532479441344312503863456437527418534065303375750399448493350392347349058584304722839833686371040381306536779715144317749874808163585610055945464964446079750249219860118573821842484417712850479128722546083504371617528785822905718067247318929465261089719494252588068244804994966450044716523325281414234599806854572463794787073719003075122409036856953997759890504031008038491623286055475197319306953259208013429941433636440855711498628155530462588798681950006703634495957552673898433735349217423475511303822830467944749184089033013071172364686790824156278115773757823663998708178253735315712008258792481069842994730469638712018063401766463140800565948072379185755308059230151755967921914468706802064376486452275799328244389770139466395108270911447745202567044979688740480547010775359742660209622331636182996176082145320972942333601581403806710801697001745325248056362267101386701825952102868083208594181204690582191194979570667595650996436281289443128055562210075993527387764958840386229344521399166207265790455394314949263458668933885694747684800801550012924952779691329174084809435260293397737922046949772016621556626652940440959305344054237201237182767389395136111073940903110078951277442639246539481155849032465797941867692969318566619317035772995782857729318920591211541271988991180681990676055864371701358418701742587834039108266163657669373718560065463042159380218425276003186294270063912549632330445761980845663918175685339489887351118605530480669223570582890948514644385015901865201571607370761367397957499279047209370107775949897354521150430134839745550249231978213004144740819976299875576971185741053634552749960372526196892710835380241133237042426510404665419879788810812691661565522293840404673478494238328060109744547162273209903436594766835486371288749542905708086004878011579222610170591274156906632783734931399254231817353063984821066134232097211278167811713501700454603779575251676264742667942851114565199457346336544178083570661351633195194475097844043078874081813163314122255308841881502096593884023864972725100257578117563422723893068432972507131087130558395141853072081091018928200466816301315345053247077184333290644308140107286526822021002822536722424061765583456067093115741830328051980399503903050278024338289725594083785742212625410535973429017587665455437173319515130430387566039637956258765078106138852855469594602415773552478631388942722000439612661536585412763043630624173439736584242551574770925260739831177811523442686564418116627869984449681168612287089749328389701554397733706915739415181091373399857887600592084369239222922106039010851745114811867940714315783891424356002081445869873037842285674811388356562559840304125080080914333036800762468301322817785539427101626059037684145701040595180574778540617165857229376570212850895451729438198101540664090386755537437825577157725416986745900381545313063353362919655399378005143327801957947109592708943063506193226611149477718653088675829156297020356574918288210325079012186304293396792865352861459553474909725128295591659337403354207133835593570346111843687365064934107262636065681676392900713122071939378328477919968684916991359286852725414341402187936532642594028396839836557750708196652146263008609469011897837004714750390515011710716563133506525335032796690852605335280087350490409094755729156700168921968896239581609485230188382597089743064214802180232965072182915605317295174899961034633400779111645012856570828927899637233367652108067478840385048518561398034397054322635523362435417294257585401190435716208262996131050489567362593563074538700592078910878633889872802631984991337629763054281379792199667552100432477242354550372518716809949882057608691629662879126189192913554049194545449446478227853847498882734820389974157029109064985190457493576533542325299109360925224598677612517668592689364935538740429151730979335848385812712080059523592678143894915991463671987758354348317155809765913308129929650528126941405199965479139857191496984252609111240362175471374882740904484367020665251061557908240318478201235928071830663556069854797556174580402328946148725981969552282231515556810955894876421275692658935820169281499438852741895137913301472495797362722081654944457105834416220742956803638866959316313536116539444420699730254635112476657201464718296480713631977495626758382563366183038348773419625772636349188121317583251617945324005353769757017151382599627785361112996828094715870220072437318854462560220243366587535678434310207216279236031237117637555108257254717569150058456848342884728659453117639665668751450099886234623690078709785297964599292783805906967594847462034096325444114675678759266769169568301235441444036971520612187906985930088383151390072069202367044244914014546485234152539007271012366272686813061316980495560502623236383628846393162455375587127541160256051294013644075112700362022889156206322994284638078407216066928807199478768201229142515480865535263770468319957975527877301518898109957524299077230678751735587231498487816318036240524153880836586333931786984311662787791519313211211773404242221463857949839649558689044552100871241220904602263213325473598682483779152206635425809765010002688368155017262264666969569169959765488008586880191015620351136362661500421113126407383866259905170641007859629221550075419438173340175405291808634665816193314932456285337268553205249513814593551036833649207599076294165602099231931423406624102524608026820207031348522790170739892039361439018228463510385136537128117068998302332017720621191795282682823142809676892741264052722161448931105112525999555855481599290174247265406274310287052881401431427553720014588118962453525223893785244005467816148742881196842842539374705011351313244504645909706481274016579884869184442620970832715659835437708618398213530738334095006428897674280223705843984756243771511611829761332928222687474009035359416272521878857403670959305963285941432914001582706705590233739085006472749786488201147526526172937363827119559088658439593811506750091883037286386731214758149464191573952264169931593658667203408223566826554079881560055010609051817698256525274751177650043004973458563365651524913433200978611647460908432978246078531568452373821324565039653606369156773673272093257327023194146006688884887386023969753081026132372832584795216523740637647657606590627418050323209924382595861419251923663222797269733412039125847642240013336995476148251263886891324830578168192230564570125466820610751614192584666202799306166335144248143492447809880468241517472466674707257872858767825691049713955977827940856965080046779260591812685439202002151742197880317702145073320029773409196283499509156742516981410265683387963566471519343480738875830674888472537468012153683112491759110725320418380653183494511835275065315639566969735057862124059965358140522275238915028414306228278343846489377398578034624771244330634733067288606037787595168610616388898815586683896232344242013961137761869095593647828308807317093438905382363547960965660932735887778022320933178759807794127692139149020914233092270388567239909136646671976240526736517076799245559095266675462434459577882156758960110424150062388490618005004271421978925710927293857616992760285392190980074013191672230686923819740101817544454578067970191104723787336123379902367107090493324826102417958594807043783980331860931434205215536823833293277796743865673195044567485028168151472393609242908865690383742438421127293136204299868005884581326437470643704278091551170039663598074227353054388730209348306913540796476140753335662711633377755920033496272040935094714966510773994763418509553449476017072176459224256815991528740254768519770413571151491389238332695435203761741665175222681995037924669301082377013604952618541218145496965536144828483259454806775864959980248878447036828357161179440835370354326421222985673259447695896680125099147228013452424577026538148204164469852851690845895833124119394231048469069133120826981844432978447377765888653783354172919040256075198707577529892190496655598073740880062634599424890419535002392243957204339819644017610412756226497975796827899797056899374544577262088089129804196504641148791883185733564544104179848075257907937309057072334813544835834203799823367471021079584339999260280971746466941307136471077439589302171721208618901585014019695442525476297434246541795864885116006752616586341571212361370277139849320496569897728716862337130775171624638581167037062579883794552772164279993200794407616970125252548002225633942842615548859039869316748920446470289284205290749527670715530421796215456770902743441878779067438929408527693396099707546911259375622026285143978823819426982678853343172730834135796428522808368398735584076138854073804747241856451652537055434830130740673737885149026556387253937666196763622782730943169515351209629594174190919599138922803450844734994897061424626500186088838423335714351929297487428791780741770081913152111670989914418108775036331767532230163343463131867306360456318559886303366880781902306841546814409085353580157113524641665814345840663860598087821896650595066579491312117143692306239147393468544463644457730691422382284526252265597885774239582341164176019340487930693584974881226467276344945421547945926109576529851642092004379938658735400014494881667075617427566936936340665047216641754379647203523010034305559611238763834436818866422982673283591999304790241711556942312390531621556842062199907466614115550411460549632785168464464988409390207129915116534533303950995574466463857205230356823775429218126958047040239293081700216038460081491285523169550824923759109213027304745057565560900330796175292414675953267894311746613760629487627952888638437941475767900837030900407858236286772049061328477333515490293509292588850022810701646208810142010053769783206208903394768843196129635601115697614935437851406764468804609193185251356601120117004369723651645881367524906649132291386708055659901948381615106987749313416316878336776775466365841833974779342750603282514459495466132305220058565897792641484864302518613399360435722748433614825112355135142068548888549812570704386728732284239772738413197606611884114322125129122856787182112511766151708112542242087674080797341861785686425290863815050459475928003876517573938685779796461680926257750254756234644842933985739529976825681604204790849514579359267395666592760192581575232633635171804550855999739546084508556707427921971438366115190562727941026380486587158221051694705628045222394278241786228265134636701329368252176315204845635214079532771994854388402284373198937749665754076951762680253576747561269633433370601852883668917505176062769957128590435291976386770023705799601088539064870066132116266978729857613890091009044707509917330205871481030330582745685116140018322750546440310365220548699175610294239020022992922992614879095439806582239502599193627157097733428257969690716944434044431322092482641738378401140963825648049671083901182361365296478093000911963674055441415604761279339520042473255019859826026860936611117490257152670352598701930375143166665669599256968893198961689654590315205045976820587237224671065914396759490952353832615050605169033391450335043903277210283468881418850888008035588939858663803724616295874701481903378550970601612419911636511886539665696990113267033034662132353804713248897537812608081066290410442369524634076528480479104268130802861984146622238372505895364881255634171154821280842242707921353409865116848878825799946292989947975859969080674025520063714049727753339374787470181139225299754254754958117908556598536011699602545853263712941842570665497423772550888843368394515075045522573939681325929060804269746942468827925567980825243586058122585322814768622700245774432110855950743820934008661769148589323299503429898550687593312608939948072773154567866195596076945988212255295662936173578165530603842373659110193521395047077054349371212770410281772231964210989592927764220692262499399632903192089357871022410685510606697634496947417164024212792916747713112217204098746400275492066652065814522587064813488040638116425360682786801976944410981481620564002758712665689612874296113878248065972819094809493185906065975942775853193605075922001899886155027569924054699043447466766054516084035072734913363607522224279198860257696348918179770256878859706391349266704453836183217162472944342152764928268849060236312512089838928196691320870094524914129019452719429808137895252438961469818233200129591497096525979916106049065242861243809751448379422949703903961204446055296437079750340067473260442544416222850135666487087124268783293238646232128043793963647558786345614125314976653856517141587450515196179442316579124428701835066722535798973623151396094202935982118273808239074355012359789365517954234211662266416075674294918371902704012242674326057475601537736742784351994737192367309530931964998089129907001962020640932180862235042736054352701727132386389587887700725790419140339641901935620590838303667096270324525667644394260112543791132560188093091403091280924759207991972017051844221123049852562831400567866573672401591142758519393817251396781165871539766732032701771408950766006773854894555781385887682492563101354573861566031094138146388217152182301571749932765929882255160394542477187654716347221733561226260342455271096675313333539487233493889150187126296367041055545542912515094163921078378515590443949509261158346999763631295263000521093331297188505518114285295869588989111203306809178163914083047333295216118181899762844870530935146122599597870986804420058463355877811186817917787347459798916489189845982158577248496386366349273245180580135079785308165381172826657122077562654986322932091042435724988016005690523748398832743361200078143881913162331104149803629992016768308304738552913352193796345627681680442460186455444895541925077300506444688962039789930247658230458138484626821513223601936707642578110316939750853775597159417645272731066367896519469954059048658161353296722839004547675284543481058409265630684632523187731215191476874940004843946233198123354777750080428488862731338805564284793033304100877052705547952807280721834303918416256915214946913444672781797914309452066573175939385417792314768097669897271342128921050737518504770820703409091452691125373902877040465472422841646674605449778262182330090246220339825381851228207984835362426878035719657296037523373872925589161048289508474055755419480928441213659312190823834450411017950833364557866538221523940202073570015883510239606362016080493411536041064572507605245575232759275034707820402341732074277353795103057069785884652125259473762347987861638343866452621995060433035280301693596186941667264930272097656428364011292003007429033988513875853948315620411503924677357957759588497038074841079610745596268296755503182994313169151151014757111547204422108975054412598616032557151696867641687876706482481254564142895822041675076043512223030971827355055645007174626388292883433573292099852322511938892062587692981023850651241153508498079060446463384281260216967945525220740644130546041614684270091974726456257410478594883538425694938987206633844716479483105064783655423021678799987993984850260933715790397031516442319923712248669176711637085017462308214929998436692877499740881147039988607223223808963882536626859122712877531945075754191284805818121314986020429125515884259181226242936007791269403753830556219281831252423339367334044951345607072967120528102465443558738901309722268801662224149294383833760066417670884359085457154339175195497706876126963271397390109012765053560320410219467985127149824926112864702164937513789000100009221145183744838682687267126143803185173671090907497383993428333397701006353951934399173688134479021538504627659178852725211504765322595638974897226987761808716051391803451606929991458527779385986723596234936022729056283187941303341518924292367865867866892589641185235754657850918640079788891281463779011539886173051014595382788500039038341294624392015457770500183834778785152888412731900510558445744415434398186284803339574642735493555009631675300035779123724893910573643681915723801595474836907697942995991899831158693520408909813404162475422466340935486385449369413524752323972074646997034573892864473669173405540864219567235226094063841085784215925083137207853027686541649692884963275749777801306532021119569825089016999104646581421173293096695328101315701777333221898883273194187469519953070210237114919891832843697437066725095997304665303276705670073681567671752194380070837960163652831705259912568630647926654755705897569011154170103416469020421427538630387990227198892012491233657327653296799801483756015244985915157959810823633438815380877022092539419945267197003372619444538407281923708323166382911544305901647340668252525731693888137091728432198755735345361805140004383339976522313928829915517454776351163053161540093604401173170773989047639600898871234240735267335483547513033529802956985892961288938138960359380893294801741459445577617199543575722669716532175013304200914753064791107432483532698526245161224349091591853266413963059592942251905494766777642280220543050601989328596755062673020427948781829140376779241593104492900785142309196656968390899139292213473857441178787170981145692548701132481587629967936925289160790495355432278670790990120498257664075194024113110698596063278036925801198003979627415418490260551207450687898965546903294268907899156440441368428710744978913796738480918481273221513578510581160778938382858009636093178490734993938344638631474862093895678478996203906657075573030315890743452824133858586893198028402093969400187325205137095826833979644953127414907089301686401853253743153488513476139742230206324137229930038484137014135786786895824915684174441752983498759379927889336553916244213815088836605189072848170041474965383257452393707585365684294695090933378828939754598550848637009262209887217145166012518631174106791006826046618526485854556296214417819120208401854193942867163076950756299691871445388198328209795071128483131040329824043522823850429800801592806249584953814956872352135015031020875001201281888991111488241360049337436281993527667766500948140337685053520642626205118500888074863271172879694775467513274693636389336189913580351726860374280050786908517138988247028714164088248024674409867318017307985589940746406043432771325682865683263235429929493248408257386379880280853498533998575963099128365197914242031677450341894289904041077322076232401387623496325184262621299847551705915645580568136263094312870755666330663689279330671722553024036206220770608988257861943484290798463712281876869396053390842773290551491051455652210643758809182489370386478863838604655107070179151379294815779796100374887886658590054567353544400385623267546183599014156188381303879580686747819750051335750928058822774164027810507964166458336805889419926838416359051995681420179362054253901677832691237623172656966680394794411275750543309495741162272179882772199234053345821063544873965124803522058060757483815289321382367642730099817656480139650996879591805777108066131656390144315279284657969185519857644177129515857845950252121491562146799677077404805412111084601523501507408473911363787033175607400758968743113459686792527190746480453750314536416530820153989604692291523693835486815320525631782567980375510844293995955861288830423460283226337968251617494661070621106299254154038935036881468957393067608446278022979065790645539008755385411870765901540805545098937816859665393354679015225922032148947902346438955504820213407203410152054759408536269535797789461464574300434960005068070563988780479556084237112844870633083300053099745051437986846005804116259630342207975069454212625550038865946553586016368937029764932844079903810653498887489761659697709787740201316328172969248766684756190266795516720764644972776092152705537922735725685514994625750543362500134735193942988177706919472349558911530671115315015772025859518717026923902540686968122853419882665504472598574127315767393597792682898365882343147216390269682265618326668095689478017117345278704197752723859137760535654063659142501003245215498327681103900737402914620093077650340351445704502244124474352927946609775676424129259365830045945111369412398923622465386992646564986432063483686737038206413789539986547730971317413910108199755091611586905884192617642545786358302797378240603858602145713274159120960131751351253449823853610095001058028354511008662751382686918097958059669982706531313394334898350559658661361277411577718734599968545200184032554080615141530695173042992945797098455575639171601757605359766741053157645808428930011890456455260496085692536883382125754317953099307476207649209238961559094636800318677205516009395568955675095704178504090621459945105271815675104202846188766335076449577350061267670917972146749003523034084218842694603801198504759294964990553046885141576936995661584392978978979288531705544380162601051203075462166413183832936345463143327708146332940858290516549591805549898464108534191559370664669214868292092418062889007749178927389189829357380813209300459662114354678591310868474904190483523568377053031983515920809686646119510845494365187396546038986648274836277169904699234770641654644416697152728134671265816682077942675417506815511299812575396464857486121519175457387183489767775428951028791896288428108840908370709051852947109064999086261389526928285605957469848438527721040826311465529038824793169900395938696889922186817723692518373178499845932518495726660511715502947565367728153279423768619000193386284480420076500126442827599878689031762506538991916349331936034300483434289431530294218334480159604575601607256298750808852742396027751290758332147728431860070854177355535451123439387743339793997501444921954267144597515918391350587117426955332502610416738184248640898788630035948080188530557673185344758584234300000144483446213387227283483693500131506312667062085003504733972369571280753410752979731412140121290813796393420571504643923188874911781431819775491899683720619277745626030038237133023884888712537740625808565801057221524218299669095577563372202832447097131579329884901045705265708916799336313105455813543943579698773358419873488105470650674912307368922264578208187948067723584101584905111468236765638748207634836866081008911076866649606113646072266623805002782385087759777703437867953784629495191863871954875127740095823176343089536547833529361117207209978305946337684445786103189343644633972200349668424272900485827788853284634058854112716211720400373403952826602591267165014337191449816320817906713330086636679213287299273898486221692225274265841174452829430588726115397375309630898823117621436110394467968172831464884844126857461488872385633142017313307276193155217167913865245490066232181169092370438426005213440044529578769689223151788861118205710483441510526149527420304552193945735997511353572129100099427029373361100807050164609188035141024835551019326700286635584390685225292570883534039880353750213315823937918426408973468519841457995755751332216588798027420312601024351146726890316038136489105611822873772050010181702963175692083639062546593885592321416112688065670111138101766666338322334540170473753183946048027848803388497612779408371270025213007266139818332974255799274017022042708631288901712616990108833374389856741094512199927989418670700940795178600456093452843322715316525423998680178944898879216324056848256142841522080756251288679997845892221443313821814379692413649013301668774018448057017114295550105548789539008603962718582241098659230336599844655463457083087884896848017506584936707976305719805973761528159015735177333460960071761774463397520245965699182713961471373495626337243645354730559642735286614783073901427093237768131750873473045466693990568788058291198861040915972409006385211746105286863589143237177648638532509423250421212378402083079385230780883357904050152616573936350758557555401271907290912605919013262439418465249699623012455456371456765121249317495396317199603483237932167703209216370950579668670246175790953096642871159123554877996955785118369896928195878597799096650307816621392072367189924070058148191227091481011877409786993028693555915574979965698334228130689157801783787238047115182671169961774425544697729178195145556971378954679866260853144768224492018962308023400341038236534820297907536861602762799108224382222136974535481147199297506662542232154220767641907893155615924283664735611934366228230109298623124629580162999211061308957944026592273500392303161306332169287787868847492529585411821532097782570521661381569200725407386039500300096774476863346566148811770180587725842507907131844064142172773713388163417908379616241666659995045658696890694698472431899030800827649487019818749691765132905710095058810628911223734510233000324649611701109791830370029584412417064618255958040890542271881947741264648438056956966242242594084123153467736331294393199215786534769339083923985113446354696978800268930684965602755208854515907426042793031813891015317034806799167092861046803335731603928616732845826147662188104774127062955004851495975855144747664245820731861571926925328305030350724114163386328343163895505516249139657306476949016981727134057922008324792739925186171324888936034007405538531141516929599531883277792960602130384138969307790134347269664117190685722787773151429029875411854294758986663185932289067179752752996235888395134461573439385175110048526606969305794956972018428351456709659641149868287479588694464057268107237478096246482441201696926154609274547986439643399820719669089368378857341988893273298668084553707878867064294938046327160116982729138838300972704017970576869525268181935337393124576418100413496881632052774021156563945389745374191925608078153211365356921856667172472682608939731796899797796662693310148996512317150304972110780505107245739893092065501508599137068530333282897770978279393511793376885990350548463046493534599041771471889708015075852146900908821031602434680156959410618988002194992294877861523962199814556295091862360631546772409412952045584433558889199420206773146984804822158794977035604832618732390491491066782365124161020421991035872806108074734633875476528416381589091392785645179985478410068490329562107504170394149870657809712412552405806157308692955978310906840871262788082728237085044336820376491136903398884170524867729359558582616112132565557431968732886049374523981889184530098659483347054831038772874413976512163047609119356675870167307065712068243930916789257725404543701935658555419957270868959263296258648359613627101478246375240373387681040146091201974394177538616337159318608669114414607495271099032369626736322009335583218014345994894095322429458097840548139200662730659256730826755829797162851956488897150333735303127440413140548009305815361966514661766139130968480040017020505331942211117397857133975211566603863142866937798344895408694142563681217669578458851125724460817116115582288021874210849979557629962865875916368789875546155748674714461332299112452468540448713014129209832141962256054683202313318188555720160807455106828135627034537557032194453827968262668399931892193090215919919193428491109926400754397407972030912317353150033702396161848921331809130487139875993193993451851847632483589692191491186019101103463750193916010701185438211581816234779037176522173452019217949352568400001694732138848542165314958812382796925085354844699749487537029569870583227628755773770200683425402539315514693365589217389710144801967387587543463527436982737623362528293191853324451466732422645799013316209864189994832758105124771729129433760384113192659776000198696573710935046480118880069232224567813471417545186174401359427307276178262851358602192945277845907533063595525573186665481509944056543588602022234751268856966160941093227573840100177744906485327828992847916794240730000166957742110125703224334515958240881361188732103023354795525875253349563903705931415842335176389851596040572264216725066351580048870813448042146105104035005440735390271871974678201648108631274629845277215256445146571999416776885830635853986066008770800541470884170510480095344990280757303138052471829154663907046087949885735127004574530403894851761495529307519803156772780864817560646821295112914161919716764403935882226267919493122161695019813510070095922116322654256757346466744108825491297551905552872155073301856751342666009579214158885157933642486206305873678049975877207626634136293734730636153185035813276789726499715879896018543635082636899183944337190436724602949717765960654774364693232416730400548179322752222595078249350799115995833991587233961353101713829140588732580525170226803082676409707228434329655961399471034899423435452179477423691220119163448969550068587686860802321518330487907754442174708192591590174537856988510052211671733647765507216508541562460934083832329451265601588575611268206065453518766976064232852794587020742593995776201136782155809026149662671847260393294637750435734835137744672808652744202486918298832003636920654634006375747964051049466765397894208026638070507383340938158734128210214907821203875548985192888623543610066956227852673738517423945133564231467271793607971517866073372268635171108530943889603227384060950507417198795902564448428406444097381357611234259183689578114891719328448055253000915209824650222236941181008735065263623889101313389533605119070105101017494571738450819784346709088220356534418188576325470676350151486285144773046029470503189788910662416771063354353070732748301089601143399989686245631733336021437979987496639337532501794423125545771874443683973167743739027186642706561160078103646015191176635914316400130976262871955188472149414758596636757296900204427627371413053296675404239135113525750949467498010108883748238855774682128553894812213895013475894797326202676253024149300877009605715746859462865544226220342206561780779067200031139778152487836463008473602020037988662616372545923995950108997382114806938296297729212476125577564183350089689461946930626657037234335672179819723332902856677152447767953089472426816981222154539418249225568749717445025237306921497298572141267147418348608219511638566535341842606569516935560945458832254084760808238286831339227499525714051776637938608924302184882992322485435149462538790513705859686306817543098177851773766661575221089493073380267400711465932208107089088638803377904977375626981203174913345972699746846038988164597093346248272948087187397900484561870837786325902655106700256860534216882476884156968647374162575577210818901293995635936972128601584397657320634980985612499779176644706712350023971187797216287078150753500591992530543029810288225717414165616303449116566501596563715771133094573603035517843960551600808498031856150384668705274906631545551478435215441068773894086328362635805076966689833585810905157836717383360845064080900251500068028341004299055456364339984937234160063701895677905916306113323252486535132655906803830449440696063197340081751934051794270570268144103440507889070531183261258722744154213187497847532265456051790387446949950241085224297982559983085650866756968779654605328319219423466936544022674832426392413208827781263709709113114959751881051205868093103328986801130832739861968491506541895224142186368541279227082469966117784030211812505354442551118283166112172202830271739442317807681886778104575047028812123508677176696269515584463798046400935015491025144793560817187478570519912410694698227908687777769527045254184150721772024853146905816164041156096566725552639498593029649150130611198299355705229180654987623703310545969390856564401095364256849498159091200063935109076939063941047627357977684783431151969084393236477643932524361906799616404434057989901469339382592838255975248152927391658062310621855356991468516787415590421353748169913137999703040861314870606547721802651278452962483019573133015380017062870960099570929008296518191975236859438766612730149175174631413569982427584506956792543576460107485722650208797672165615453577357787720410698452548664760374845368486510180444158183898050943405176473213134286811652426771735861569924014105667905845014254642822666292484651133881709731883419334437290364384139677913314286569970690576565232580344045004459926451396589830702658418146653885549852363444542818382439859920194254931119147937162059449610313029487976143447536412213462939279153802955687720148366273005265210802638088513155540459833728048990262697648671354027785521269286326756787232617014403996394881389837192863146939457607004141286322988026229429436828358274761752337628984729953707665602859123627935377701662496772040938356223054579047113946123209162227799032138704752808197333830366202135751203172868599824811004645172274793211783112827592873291465110537404837625715995012251328261607441491038455866531978251124357521921833914937670805890881620419326497593468802461544525795513392112374057812196001835710093693523993245416739428264225308148519220611703123137649062983118094549199929559421570857908004236621941909978015142801030016414534664329109887570628745987569767673351971074136191835448509687283136709161025292740865404365890897060952538449873992840857168033223271082465822309401921587019412488315310795916163647389038326332119640396795633702084049535260502502657893189024722027427578969370668514400558594053189703052891028082782004372629586646816908282731374471122050346463869867456576319459916809911982581240580251482880303886911787384330603107366819897030682428883917136107575750888670375785374429355006845838120448895544790648904171936099583233400080048045644323265024312508919556887983682444155621773040913503341183766525147722428414552036554625080790837659691307476871820488480931115252944856582965925303208977538916720719836733783418044667149652837565858500909595840231541299286395122199558168733252355340681112596066579973690636040833821986501213365175689163642840367932931519829644558261708199163036216696042575491810285352689676562381351347938820526454959248803899894197477087820875629454983190732181027848519838827891284310517381935705427787904926623407777582856036547293260045278409013583173947499599156326014876819911043735198077964460594016247435525327722547377827355870962140195195047649193907465045872286807755827338528484957337414846700911020237200765114036825738488626888406177973439863233894051910630358902230848687251137878256541076484837378472198718456090209997316727980687639309895981238265337294801485564915297830971435879036936629977471317764901188712031149015752130579806185994682840310324001317215486054839821478684023908368603711068009308282500593702533214160143064617488397895146210845344880857935900232077031095739421719982181059430923004035663577709242252451948461839083896360996197775714171906476925194163681561976053979900495384875316941226677739883050502729016558069585283836748015297679137274253966238147349180561780331282359953287419782395377902567871838984979439452370654034196035822990017848615275560286162784265635483065270748713814760340014548832374776847485686695417192840684929392501308146155641739987272724346466166597059724829633145886473447089646236768182449904506946732363069354813947025613293970679790938927291726870473844275916231600599424722558937593104992404027274455375717224948135138295199913206197422136235591873928749769214363996872106909191776293385211073145036149145146015188331103507274440499828883871929050512038072921676555612502654506443415204822338005517779896382401780923877851927225390415474796205295083673020430054354423128339384694707238052302554484990480430616846691801401680350384095987522906639339944203495159591931347935240012105883471632943019531317648282595205254820709181678673352745761056773631677678936730307457725128918830088343904705054154779079011912978945210789203359312884638633688176874919386431212038718375426565607626527035154323902028513114370143765230843798666935967478364270540719651560246171015500977408519983038467487387972745675559467119079689879121053938603105196513411508280391143345659589167515140079515521383625952446882109554081931971740068792808863253224149632207436323133426544244955325095961500183648585714850803011499008362830965004109578654560053706900688167158760804073204620289505169060346756956120816216975274466011964275078879991727367276195712144257751379106962016207082761781798492150025399006208252232167317798734038961694401880751737958639130567787834077607432201537758752048295098690468629574053256913553010824528109046119287453316703765594477355592485936587210367989762668393422814384732622888059136873783151354046218349155484369743223407465610310465965551831509307045835287141183453314573528171409836302417259784216914785413770095349069038862789945702654104248734569159915710400390714833628944997986700235614306403046194032121026700070432897828038624302058408817544535508421565643349382572083652013821231495923514488995908894319986088819363901327968754721770443337968196454580198728544622512664457366532546791153422287994749525871998577748851460521481220252534678184808577880275531212688663051768006546109872239059688899456595537406680475034379349260509786989349053388137593385680440493333317572218015157363408354253968915600543595666035895824538466351613450899370384892981071929379364122825808141732458082804746666491625905566742295050257867735865863953244751442528424359627182819804453593680365911836466236410736602424428845902032800120308079595946067859978611134220733768042219538137024633760643149924710355895926094152679226753737172716771434410748545259892955243576363791896708076191843516319235965727298380006050637489067905785368543815521693187776282279438154420421560233752866894560367667062380248676178863582316644017041262032458294786065784551952882189847399253005461617381202658650904610605915196149651817584573381086754565083913397617146393913563995766605857444774922933231732974419078730268233837022532246924997723397589171024050800006380182222376602420025771788157919400146848730051688685867253148313004051849230408791426568675443849574125396461837978765221683105584058085136352246117011552547060729908194841986759394110142942290656653990795681199431487804863953163500521404941261926184930013231063363820385046268538556461030583279540490182991056076517941908417613679341485189440661746748293698949125153648579359608823886384934861351940626800465072630729996302773812201945881518148143794327032551376020569423393766607216409137271030908996701629136737721443948243991698573057265293288738765334759753810151099603518112969319686255388522919771510917418364466814501882449629318646329662612811194804852565025309050003509346286577033454922950643359799122726075748828238197294132138356321493150174045273253681850979632019633029212964424999659631838284873762573070931224270378784635013329932889165936253096260847070891302253065131558627008774769269059733092262805468189183112252316410423126588326790348533036826878441218735442113617766909552594331222391279854619989478455750053342525147836854222287571451727812958060621032831859952978603021279388615017645172338186428121483204629618277141493117267572658296834087658035426464095568495339061230280648641965569292680850115902512210025781945964172042777845787608830009108602209463499353476779175056099430804251553367741975748228341182938053975162147773584699842117817833703508526691103451816188994747060612394159112459255262188496852629560714445570759156260393806502234319218406277277094031150408946925124739423673584807718555245797076361992292242271906691635188424601217461370787857255127264409646813716508164954393876428547314795314889282795960007245547755836119097905983108589898401802798397589329730244249038544911671563375624640650233713295848634893554327124197761937467330768611452203087765177954340263824831134330007292504023376225972304470185936257591858851254092401222432629037998460536031028755372836416456642139279686889910362778087803850688335074257227444442540677464564176526085377542929369344031956544977073320824770919437001170135477896761965188631371379026347721778706394313981899580751607701457424036361665514540628771466448620438759635034560507291286287708249322819235061256621053066022474742262756754432098297401335764709253813883243920164622012114801502846458421956737827790283695265231544547159670916092760157883196102492145187141337658288941717376415429166262821982626196553511281244731597428807638387786643389730089389955245211203175872701343984181248526288720502881469273528596542195827565339792907897270525824349471002419663965966229139866532675559798105773391805930752341403200510113035564337311885592241986088364969590050734912527567119898855768548926011182330208511690308017568389072619821175588072468902071043183712224127355907193716796503131263968557978396545607308671173974632004862684901762890636921030960848405481758882243191890508454522572264155769422665739480219209190590327833436197293029451652289850507066371071856975712567414025728823335425481148088781064942980773102404490564764324691853463405961037768812715087495348185639616148645123438817732425653569046578437575344431038519694717386261951809943314025303428026927258684958087552132262518470325839023509941285359885669793257882952779827160251054587489284194458189941240090748930254911345034653555152322254407435271920314791440857581485196270611793689437910110601106175869075538051761452670241414824242530120474630786356963936162697428685937929026302247526751790600627376324182228624785383649421740870609068228272289339668569344053459552926771077940949487259154506914110707682530328067922843177001101222774063311608740440426858828866685874443502149414196089411783929947598685924845453903227870107183496302251661899552779291447572623638969292058272758136102991651515592534050179579077638117027317854153858554665831250301607669146907889896175843154863801539139828525422708547475166046119209912213325546479530321686024730116518657523780208115242107478502685323455466645940673188933152191338433198421395991904681217158469155078296330521107564966433818123754458760467982294558178697625294873517926635137344069827413730248050275831019137634696032578615480686865916546780242675081361835824784780506678856903261342393518867473355346254964742796362654844656211175479839996399258194210368567804027955745452176564659089051902151566908640845792636054632128424006745584404983171805180894302671489520950315801784094904478446571496040833433290677909819968030490215416029916208833134727236836062426510323080975540870413296673744294907603634848306580508152243781000416548764625701423726571291822787471235774137453706373457968099168924098622206567016497160041302210595354934225358343015150044173695586767290507915943946675618919243948638673727356867746083117281147144315428668616048648204874453698477374340528623257417690046128773958997572462805900525920454575081518138215350339603260783190130290735490861475377968830628066448574823400640419955051292484034088910022263378717918482542512434094062643077801874918032810633602076627960689893820085568298018276607233240103870203740973607107192980660139516241280195630692934146442123546270473820640524144469860594786168617963796187809830116042507914002005485379919440978308659196453272611409157502833036138494648040226573477414272378438924195521062994909974901408840038723942000466505959192311567495150334207407588678958681372266030860621353735277071147742697037145103236974899817510879112396194738267714551393595697303701724935878659591213937070538833254355298128298414226978009710841052873975518350928346067772325535820222689161868423055365775939697770304676950054265268334715498888188702233613352687990810801083426152809484453906933403261000477003726051056048296823819207570616261406575684109013697664236625269945392348114186980566191824366210470585957516133428363039189630742734915331910239738431088196583525523753465907013592707409298200724042912007060088366571197510872533119453952669689697557704975411867544435624312843389894832636184806908336867176176130867178737661721574530205470503415982964874850544858286954882287627503478476149607829734879000195492856887424167406137857145532292940944381393457938559192335454566170360276340295617380090347083196721515563244376326241609245216480554079952771945516220247206503717365762817821485230130289359057988441606728659317611316022783643410877497235252674040309307880565051730726477664536543329338051933106940478377120224377497223479943014369957315181503450965512587061368732458967206125555642106910505063202913218175898042055542271476291370878485958508106062936729915736166445387942390597084767011175522004255308467818385500328213292335896470585155533778453438238251747247410520421056399962699678540253672330593030256963478673972192221764237012748652405690637613125599416329496390051607603179015691828529975671242325919720828308867089499602999144107653067150577427358301372364123918377955388924304054100269012998115116514158662655788526208224211791059366687368960129080291853507073492642648722701434741529568175755292138708577542612907536970965425174345218024469501985134771798182179132719454097928285562513900885791717990533076533516783082937393566625764598043318929265713990411969730594393615300247601052890033392590737026760903730364625304651556818110385634165664278507993172713133877729812978610169095203299510370221517457164312238075338135978433240671047819371734123130281126493645492923341724932381249063640898152535820770515476887435842202168502384099958501946150970647747178758625350709809131760626228069103671677375839136764390326414152529401629264979507094841420123285160186232272970586835093320918196441534340696101319175610512815751603573262054827895679028819858838055603990610326322481125241539239291598089163160777179954529545846046764861731235762019161512326219229745766167283897974822179492155296006219175033029790225600219225772281968255211010887321722198185929417848549280256252728973876082016670422712285672177830962113203842939102303494478328971532615092636560150155870036230497183548572397767584871027426508205049803273285269060435790155755157911165276867624695859473471582070372379520077504616043206728949664873955730297737666636296548185797353861496327483746353594353040295824904162867658076733569431481936654440338422122915581453894499015065974149118351919287669953190869647250251402765130969206533908284759489146882885633496945861453077130221828649635969428866887699353618433678669367970805332193148941354088457480765318861374919849509383392704192001439204873480296203722826515332145442900416532186735142750976752330032212568849993021867059258610848553351088996403599405594096034366810126386174912159745561996495083087469657321302584508308588162424269551494148270278561583468815981962544099728681242141807799389580955702030061134368520388775417826650260690484381562245410281326681910183423076850059870913928741568848852106685208894921428010818574776126679803444788926325838673035880475863377288414225833536184626096852045521714523297484265232423423712129054870660742782269896612817011043896237348471168506317387362561760015516863382996256303282251531569346897834708115939183818019627741394732396715753496613555283237719437178672816060053302549872663604270616250018406404341644004424250554464194332667587200395081451124319559712353779284161900568470449697596616291355456915085903985380711661763577896826507950246779476243338250967052800749936653727844152584510096678452538607725432740237728392488870921916809804583034869611882664718071881769441870198991625724435264152261236806508396979507786497244477436122724458881456555516988342826565623435462992593448483439432852896630670861809033961900893312591198167473922291551142395246757627536445271974607975529179339267658021272699864988141205971712208791441748967966544147010860450440198979962350656926100453902902024080833233807540194810536416496792586473335468228375366370815331545039669588827377479228950147157942926085143041506343491476938989469583568493818014900319416497662944539323631068331780477538532048246257531518434390177967972366744886566115873279218282205248893471004652606931199970956944681715048367528527367109994792672937221322470678861024911938518727303185096552818914356963161348332341502023168198687368359561600639858517342266985249372368995219983355473164103211067319094669923076626415467983591362775168529409032485035329182003356000585708104438170080569810670266172606050572940340847817751859880764034570243961168080963401033641813894298548086934545245277062559274104481461704200160422500996439313467872826590712021766848356052113932671319869367994602981924846482522621045189124600286350463514649417506807201180791077207349713436300980654018823719584236129182446911515525451765644871521998910856998523586323493137877610669208353329504233634465017286124114090108620253101160792965683379358872641249666582515022778326731443340770534680138006253249742249354944290962913302534239486398648812350640637691934403670051401302761879225419255583175537282737286065231865244024226609201744226819857245924333267976007040418362145328289852019603635691341711726844583473092710832623178597035179944492641780726654717499188292548712644875730906921135204213820183867712725035698050894854726426878732905549253972425936979334944478340825691322854999891327291158574128287185082562630124100899797954295800216531734402104187993105295170879323677989274769620199355778668216280606668883694452015510982790933234415358958373652458711826752028633390438973955135386861724988213372977547581369265713323510666614618156800774087701137222792128060825786386403965166405064952451996840528954866901889663606708876547530972563899052833798276897615694808735301683502018461677839531862154530261877065860508800546224592634508897200539107430473330491386442594358031646590591202656003895593633855312242617421337090960403790585447956968424386089125673529012310598120938165627909192184470394602212061650334368956978499699341234562582474969878671545584460136733922539429808490814924176650869570213277381664311436425451287841401811053773236211757442291067662286065461483315414485165879043283967140141325810663084031718427286712803051232215205428421156956773129258527618805476951278105999833797471047128410985095886232352733799139019578634973739182406978558011935611397180419633970060415062321771361804393726445577351628356185589768519590310777468608067306329415244234250560904634840044659141505225749285435970613153211935142939752310489665063351794618952774383070909742286814173989751462751259391894802616642233186577859001955153760009972246978899755633202094558938741642245811098097907834870078172246040832142843880750037514397403806662244759327376086320255248454280179972787359709704340656347009298753426754381830961068996039494883253973303782560697314740483219811491514264121802635314401145406962274649303486037717396186612604220130903569897055122652222471375008013912680108549011793802796798251734992886454407299096229893762704432114842409146661575508302670591980743081831800316815330391169395754259006756752853455599916058748080866312511666409939966977365040167394986258192072600388701846620360229617935237015256066339277763896122525062180764828933378229277384522702597952655096884797467718111962122504316282548832583767043975386829141474007686274821721613309706269515766027234154251247355779431076877728944008610249225755399732628276576269954562092987641631709305982353928757258139962151245792997738600484363811548338643727700574182983894876360669257433245578637248205045284711058651535312364470207057400068302919741965088768351811257184008012228476733828018413830619517314974394927445760865743847758620018953842945044806904005796050271166627723657011028513317295441302848004953807855052477676687530816444491298474510794809124763629408092799815736433425087697172722460901885434897885263560968959793390146136621855358249890619312967894079183917595006549213796352961043734449500330930607595936274597502566831871601977347867414554836927647333148844392945544992216702840511075165597013463690590180987732670899993671340710375303542439642756982902374668813503940577747250185864491764373345154608155584386213349429165626467042448435190649644740421317285094914340379698474989536766232170664751307728629864949703489429846949889777101472908390502807327000936406611280872475433537331214716255863675204089910483928071395193656833179326702011720451511543221182295029055031460662467659306488004836475419943073990195996221643861973878643071255850021720238356015292847517854984855401257074635769790818448813215172752715012515154408200767372135399212370391600660095536347263540395103971270829531955789866966426636779516570860976044473850101780792307272966287627417841563157725429934762785876263303277339404987632878090780594908498515288283050343667814073223680402962006683720729183363390750143599141242318498573372120850601312215898824016621526126032414573772766151915494319695462139555878543026678437615285396446379736914014618145950942059602342221247795427412693343345737046571206508254059698098029764469918309748488635615439151958028774302750200850140646896516946415354732060519969695163887717345885998317219949853056840239038465285052848132526711870254619113906920666655800477271657031333166239055466849870116346273087947958323580427205295241429679240613145126717691669490446667788911670916559046438840336985201490758978332604768183404126356687855649403225412959014308418264313438847329881279919979961066565610528759074646563805741299541235289281846182346729663363837826670602745069863421643460513365902134465979847332641039352102888303566611767213785891280403100891038740714589753204157917883736663226243176513912348035750920276156372427018909047823801660745452193655487277618975311771194141205956319001377464229211814919832631383547866412979675559409345105648242462996853475511612044940803565299704648748093309407614188650241531524549233254698481542294364181533562823815121409703691881576525097703663124945280814784800719396712608153156335112087491112483477009469191199845362492955539104565687467123008148277992773263568378341947487094411092298805183436864975056259591800844473889476081293555996524635715128278614212453353273523037264390461295313596195364083786841697725130317443379861700669091675466118530160298719592150495639134195133221077851848865679811591462711737287417405076872680889256049184107317036876331183253335653680328542890939327165037354013376334742766692715764231783534243861428346065796712236529032008218935194899481767394097190919414027328124483410224157014423085244141767289020969836281890698361668480904683889493603473854148793002201652725493976929765694651496030159583319112218550394666834564614909048144149784757095989163034038350407728080548995468561089389421787598906821551641032266999484456291312377100920317664627134098356052360539091422282196969024453598046558753750918344203242267476242801603848970310402713817339879372872668495828422221981961800764447215067538348801502032892135493781972494531127345583486704600370140776427325670642225055981934914981115271843794906130470475629866414501618511769665357615312184511718669618098174342819911614840385746926357050351347831584020654874928456531641158812891349060602612755088486749459017323289366198388922085059369061870943213959517004478351815230494383424218676866409856732770736436812664528662783535543564457057397127128993120611145290790273975325944756904385951076073017693505232564319410464185378217913561103406398606807014748187937056675041829991317149326160135122634083295409066212721674655809511926958904280677454487868350878601759475759267521891549939316876697967738854285354242538241077976943070015745909136249431230014504277189459257979438979557358475465438200720329403083585651151007826301150347514817827452672268991314112581822018059811999435601215372883571001790728564258761588032722189743672721414631296662898292991323398857023974688503833521250839006037850414779675142396929013857767865130228792437744488333676613944696758075833753321246798003723561459615020009955548392990974304108165904737362111548473780771298947848507288950383960514883942086723599163619100260096161005806219018507585719886087597590400038891810373670809148441060888058864306318946803182701423747995802692670303002533583720678909785013842050441380553434485414475131719564153531543451293805663395748377275650423160529567168892823801313014820753170449979271435103952731185725537638603324551294815045194260545912972427014055373784818574727481971303894185510730812206569277896710380757352745738537599087710226565852548956865440334592551712782938168532958303487097115736474539567804918184700409009621364398504225956964252724044337382498666661309303490701867713744850178314389497552015028144017409263295848484027222376067295611666152847400173672244309357024159412769254087468850756464875609579323157741747262857507900318704773133969549308947245346861544694936390600874256767793029912444659711970378751368069156427907854902402157177071522249083984007358275743746752191511502458192632776810501596803929625229945757263325695051007615267200084818675568640691308441319496945243943102496755554023043249245131104461759319345401736743532330411867220691086602154897305303836445245628954316136720385493471957142404861532368750912652950216072056802351696569051014922706301017775986464054418348385877059305233723917517183043589646935179944983425765904664881775110555608831940319108722615957006733498005306118784959289661290373522928530165333820809582173430413476601658888782135052447319195310038253347149870155847305470091846878616379685978078120844566010471775743952563732910872515255529209644384639797007043512546422282850479358267612261159667490988069767898771031265107833003714195561471673438382201163296977700952739784674547729946991964264252700598561800274037931392818819910325711604174952472259410358557473329163407981173172444866212234089235174646341817930116808397013280904179447412299519858649857984031602628587860365770140718617526674378239524258467283891590513667513173630112022431639040087035965502986554305441160955228326394730156366752756577776734100495198573776196999250176212198497384471507264113686110999473616397025245724895819214774373497572243224596842309194481809866369714528423772728112446861193995334748362167196992275317885776980471985715477348622728687065052392332887592228304940281115124209633123818633807862376387847589026918463626880596366236589489899340824871036649516707982634310095968295279380216462035771265681629571290211792017951321105980079320645069918489414446951166456560895484869439218481244986424994928815476977010522744531878302975007480894448080792382313551545098747331517963828911312863055533880205675790323519561015295583337027936091933176952133554409727171146306494527512161985224364841176000495694123995315132205789308771297685769826196547376854663146112328764819042562093646199338294294440076933918702572767132738730509239854504976367077002740280043387794326060517998430977730735473700921116392635417274191595556700261847828853813237279149029547169380365226190876308586046193550831131522721935166690128209128150643019296628469941609489698892265749687138018429491101267321797264518681530739058389794683207389649157157523747041582437026173529537525699091477769856601680745961333623342226740289859381744403595505060376504637343192601112905991227810940002643767495534290764206439780008379110667809333927702908867818514549384249910077618003752957704345649048316213236216370466662164910091251715730660891007373374522238646003148001214369181838033815574068417245818796864590089126568575872410528867236317233648316425305039140488130648173068794581539897554564222922272875871498779603891400819940442169483070661690727535836158568988907889766305487855716582416265051412529515722801557680489576405871340698693583306603459661887486570520256766318028850832646346530828015902749222542970729094962047847122449363745534648998251130780749560397131719144367554745590402527160447060847127239706657978803572832632067159523078546272590518600437495370640886344020788960819291703899715731858290821126499401632648368056283028677345782498134125916388052293838955775326500132949740395339410455757631751965733664449230086746314540250716962705684267316207409539182557644120659472449932300293564542688633638605283217878931175798389331513553349669023579179636825727541549412475829700133724045247567172893312189776233745595222106890187215277361056604399480268407330226603953238896537992093160722365009790133184810237896235418036047657564685109348282674973635926406560564456505487774001554684313111466777444330253569517851495874163612493129073689287151298064139529633644819121552329397076602498760531627968628373468831336107281847706833571130529392033560902262292324218411089918374407273664717207502719825807676114331251844759144938410546697187418414680259750119491080509990275190041055183777191136185243835408141213287764502619368865182672603059055934899380813342997606697119765460792033545023467407612448922491768142520844143533309983646177446948651142823865953259417863582513996570287260446917611937606912709179585907263441535986771815446001351002239004306446492191736274155353179731275479192516353898995465343243365340346167638427292488631328593484098201854397070371314617121396250285076308263917192384277956148287942312873408639086572805143230671408789366394394928690353636163747718888165810453871349198007948222742654225278634078472068289056501311362594662691398176621437531660365361381847648297373357120413369433262116735890083193711404557108739149166973254104867635846591399407992139630966644248782398616670041743169439817811606208953057960805053948736483401956385539683400002437619419361193540759489747977799842259577929855417754396222933029248069784837233075607863303520977957125729134095647424228839485139711679699213515818965333533209370220807979649801440155848029268246544529904237648624242098415966789673118669315706297279432143023615983072000018353730578754678781068132791919105976129267131216190384867417739062009698076211140588562505625704329827706135608353440775538541707845153890347085141039007969392932807405164293295784530718538845147705145868427353691517048264308535769852967714033038099123858430398594943665957085564268399697771936238072584017808932546436811775836320629208105751180351619859932868804375061167997259275641360627487490633434778470196395693026172945190920082283195919633844624481872944821967839555478633438860250483235803172405967001705494261456922883449500198594330872431007655327871989436784239305715027476401224129536662643566398846614568198923352942968272084976367206126222548090400473396711503518793753895730047595969703522791024098272779029376007656054474460465331093041554051267186434186477557576903826871117332040433438754643931719730756037024711551220607464202784378575489585272486430830332036231515312594197546106043443945683724746002499205050564670870434144501393953018981698216188848787605907967568594559833354429287715206830325176646476341022886503855899515542701134180811355915004413369021544222138080684070864631037549133871399712306402870130535657946730505766491693482994421236692213016371860722627059288382450526348250237535911687509672000483230523542360392040040835758464342247469771742262966429179471278403932863464012356057390272472922246104590958618305905694106496296141533289861062833740287894814481375862063788405983369591408809930320367202893634674409628662034491401018526777343733737321552315460513394640632272611197976796559188337774656751120467372601743959302307868854567033727694444041106171087372847251891543383446326628366470763717864615703033531806962995582850520229841177767183957186991297560948796839780068457287559987383842383804930415727296831626363469903821613143769875489796808145937553409202230994206083827054621964566176228597975058420086057355197234272294454745852631265664437844814007599230059684888782431346458981931538183537392578395522534219824606768986246070633245778730153537560529511187216534439784706428084680878019545528166091852352271095175103438295439221693081915901036495556363438700063301605665529302312701231379911430786086816763200087799655284529170698077103818635841734539824735521501400637580971253724090853652113062970427147922009178114076781715361383118801870114642084583888581183329032462865868375745786760684848608392775724595067094382717504976304721504367571794881702737326723593850333936231025144956477761203153295312272482964989452410966017226888569758729006336684952611968573152608863830519410628576239225502818821079004946609092448592837775472211161597354486442054594968764145853073828882205977492322352540112832765467828265301621786496572443228317037369485208148924595585416663911201347107629421484520753902545732023316446787078684932064890439340378786452692426272797951874535433897022704859364812748588735206417383101561688959640570997719929866923617585306441462045432319468985386840121580804814641020736298945590430934095903224057149118746517150320914196786631206083087849725936084191683971124342592539595172484780192516459940565027255679073219780262783014499800450776646955634123332452489622473100247870473664230897841816558696283955740780223731208474556273284118816675656277147811457942363070687792272308702703689426210739024658417308733762427680259513052025368177523736594276007308304422986689799113321307453660422177356100527809080705634793174109899050617985264860913000867230346000908553858995140332020429357922848376212178310265218886732424876677797384754425361992377752325900358863242929871568210294677952064555565784975483710471431565376809310506080810184904965159479880335176430428731839455342960342581140332544754748636052308107043148579178955794370044229105684098470386185573432571188380854603971869519190397609199159688624344271562413873159687020645896382715787888484497484809451911069819265808430446052201348294075685981670532808826840748686436063828271004042163242936955302488636291646321206595321812516837786231159238968986786107719496432864113561465698256838630821650109735673644642072556417180328959972658605499319803033951354679921460370994487686054568407793628347769192082340781232549094699913275476397683843949882715382448469688483848200373720653077491697260744264906412275515150511969214021905436245815618081605784894701785980748901065521112132865868851046264427273489251447124345121437267192060050517753784789479795636212850766615191612311127053448070091780116721795008590119277506728862444909711569243927623184505093277689273984284630840010713794982565924210931805807100130653791389378322589385319677756476059563051323889827631050004679840679520214802151829125021994842685736581332740856927344770952917342572202479998539738983174918803036534958667544009905927895164002742906115105969072793863516290990704097358007837076941545474299890526802124977082722776655260736952855532035706680500211499270980753294974211440360474917914492687774647308254527959196259748903127252451734037581564011006437809223825985867146943192180830798703500543283766029041620615909484161931275045589240692877958536374705282566969236672743192943177174957804328309729976013064235571095455677795694850524999233995042045147235045379812464297905340833951536368256484381766986900484093437947644757097694712101444691799968045765315358540833716734130221044306408237503068266007579074676701222370850578812303902010328649001494532179707165410122012464118801005620695221150753435441333780324724070878551354044609089931259802504660042637709707569755354684398150518510032396575715489409837614601740573913467351326438082836686635560302761833103761144526426134371292824802174950709676444262587953148265405235457797281072961278507983500823685326640204062240912111908608937208610724916191191735297294710557257780496836566043991262785974996269808284364313066884629412150780457262377310907463777952383495747392526816691924550769313910873643038350678138167315972123549227736804493127355843765931269094952497893619489853923347614904265427952443696667767238781087578674545371006269195197959325621629877704285538662484487932494990697396436767386336746008127432783730210991558814411553016612851878482366190429893013252126767053409037071684701802447426803668002730278628083996820520873164915796363861693224186859088101828862418712350619529622561778535003565792424084455840202150840775166863805272207832905266947828958913543711277947630495672243862907657884004764077200782016115877906203841542663021583766686987019913979962067347975811207122659311564004548813194983170269298435236733361994936834965347705025226254925311353853013322927664415378832893936187641263650383406063747865909551693252937861454350170441586168869584270233990495436300239285799096685711441994426448780350836846068157711611609113249655500294580964202411476749042873307425497352063161584843411991366855271443831842771935453317522693530488431127408492430998678902616742266496016320336492009936421250175716952919756124893321804537977906825945207725936821092157756788436718301912280822310706190535087942133558904972788865195356776395387226544859945319878217802589202574560914392914930793653143774592385258981319612707935036629772748991304615564350770400253631986883312230484296553056251470708785645437886169169458692736370692756064993676951085107424277567468902634473884181426440023875289017352363038989540573571246468188521645725951933139736213090025845687671220934102608919295938605777277503670919005917932452327113825376234987653045942936108966880635884368892075284386873995584444827973100384192064240330147974303333400921580225423739767220154684571475904699958539023356138960679167389467635292252427865522493950610288283845770502743735365660903388165802950188954929767729235679147301236210262220843896574911901283746070638679404733801246492115737930945374879703945437355413660262960061742478508784979438411234900736561398495801406146713694549422971557474293086716200258975088516834003977015737231739610640673491195604359888464285388037944256578578062495430825382611839105602375741629835318696957903741359569809235788370338303251971212819053370076989763363839981535278365150097827131572463103019610420723433607240144493603352361338556743582473498089844595169526652482469235635399051122415814972894688537484439297288160997739038513606474628294220713212094380633117785548383187913225226632581700750043689563434142785247592198649518768367462773478910300166378789771353309045513338625979087176197091448618673932187942115887435789274652176027468236173324559735191936410134705211531645566298558147621330637931177524442119131804409327496587112185044758513184182369822047156789758002459041207048100464862423492296273958299552978965712981382398408145082406736794509670030230223670732243209047645620326614482923331428742544233624592003355450880067678393300889715460725162088267066768363523733174983695590904098076853308304465611953521590427375259597111085881280504041620696608251858385126926088256814250792422474804763568466572633031932644733841130190966366864571431795748987454406559051057537684562603589914405688937515940242980469696422773405879705793577616577145201508465538145916199333043030054499440199479005624516096684698884026162646085562847128967203497197007521287366675669921127616994102230971455167675230495192999610163585474896468746330311260398407385994379841667930465605617995922281218808067876703995512243714423964484319022918508901124446323474779016116727643649122753149892138905550067499001486379623287536229701236352003251934355037285522056389255268018157893338589310631638081694467844221119731531262857735933842792813775986423582591494421473723718176737933806318871230478987068215438643035299408749010590390665257542225810228270529490178213542266693867248833531157608889454065949050216049852965877355744309583665928384579553898568252281824142871211952239896133623193529811325959556635123668587338201469895837597525907583013233885359190414694727266779559190390776413394674274060395414703901090767178348754734873485048892152490293525377479466813655399312619451875792205130987860823183443729891923501833073310786832342900492573383411236096979556639463230362733848868595749009563962651612829909065724425861811252515158707409368469503239315406284691458773080712421108118938699107405042551750301256496372144851094769932253562057101017878028824245139411457907666804177520709950018904855877957267588685057903300567314591708505674171239202513478479328925301487244169616957297696922708619576064006005152472102759811997079289223154899381861069799230350728144481631084918489705712655258770591327523396552086444378364530269723486567943826080607335855070121932814763699840551088758132338303512847638366146806167007256422691979633829150276725693605434136650604395741392747554558316078653267777552496090460321556336391437199651031466398680635046323158842643470315978651357984355335695996215770785102977162854341034341259054471053767139968201767030970615247874864706919876393926867221806621711778415034664510708319404841203837673135325374452170148903505910221010459984331554864405677751030389402371570435069235611992880422242859834390768127888444400700668167997752193257180844821568616587002292442830556717947380522551397769290646520846945463840693196981298038557888669957246036930803982959486234097346626721840557835825026352717418969020169144695244421431504209287994843886634523338957881371721809271464392583225957831764552565336689684937485648828087039072984178851443900004473209490666137664728399125179434014584215286988052222464896159182838501701646895586909979540009752042557462889300709817577692674278416897900740701453956900059171353911378577109876100436810252916828416675218915782025076662445210126065331933289411497419071831127689376533130833454065171252585207975401851879545939529148654460804153085808648842600778269907820177068587750295966577373579679506839512850506634481252621906129576617587510957775562047515061196086276810648164280771594828118095605430982519473084432285849701313275098760595866596667142253164181937326326683848907376018852070056048718816501464714209427633983906958504593719591968027545109151411062642404948082039788956937029156369238847412960683941908130916612851473723570536174656992259385900398137416312594973308171087877464809384581310755753118982140166285574495796673831203084339546398795102745897359826604419627078320358525909726779057836616283315876393888715978980284242741747575196141461263501058443094742360410036866123929007403149325614017567802802414119936212493585431860625925002793066075673652191295934518211024572309213649315722268408402540979227148218357406576828697249811625546182110966677816122967821088975168768587256088203457428223994654919981483204722705808545548403273831343204666825922318168485282496163497467014737108467051203884879495099920325415920955009830135568456009660701519870076353437825083933808514097118037040945056088106656552120565597063130244824760544029471745068274712514107424677520770491771866925222569212056767358540861022525446731076804521475624293117404087582802427496814555524555913332217882812148149747952524562107276529678000628297032751012183334111919799906547131797260962649969271125516231542033689802040802322840076607350264974413434790481130947692450207545710993563189458083437801997056459936861725867313636351622212733482353080279422275327019685783233930076139753947791877298041286323913139260119303370649779175480521044390884948792189619015521746389022398199099553471890574759727676188968960113897609511330836261683766036908376815096427083687024096833058682919028093957299269676512930759931439077848987626635556574941427532520788294579221399797590578394412789370095080882194134011425318345209428904571778366660778475367733175419257318304889815825918838531686108234184496405597755380496143347703186300836665659886079216128702656464198732666812472823790313799886978804474459445856747202494686800360391118780751793855350237148783681807151753674319215934044821866104618950752305578914148623952637126679120829791150789316047693289777245974671628332292006203156597849571277959557512902245298832246786140647197600421227680653251990472305209291150116736771408081099868601923912816822368378309247932594740165897227004571712152625735604632355684941273536402213936874603933238722372839278924900816309265121508048935925509700198541120487520255936336909190470040418334641528860229283148201428844683862062679865396865032982945042012657069734641874593346734048285044296498123050005918075895067959733989481373362288337060108290393653103154138068328733583580858402482961052192121026342312515542897700208760146900363811744107601509658564828764441888947961711069886960843476035260771791908908226182271305697007326347465940607689790813517525746716310633226947987570064275394672389089206296694318071801689142655370185601095863435459628008615220811641802715071454946895078522863288632632686733138881135050207035004794591490984769274797684866557390807453300869950044504073291790136286677482227189802704931877899514460445623731088964938694778320201214137351905960080722059817404193192547153484205896283809250125104348888508846723648544012664012878017559485815066092575618137511476396135518127381360718711884532696628830824871615331880764893469606757857275951406081268785367400079526277720045567539790501918521331147659700010321241334244741409050120601242280224989706047891165890295709379034774742138825826908294589147530618302889685139971144091108479685481160027702076373770393549060280636466275323085720282800196726386594469079590057208118577094834907056679183850162547521095516521121651342945736726277760911531088464043301924498805598762762192899979493538530144388781479958841592240295043940717427210098646131150002678105820836291401112878553273271494895314336804270793353774206360898347733691609949034327506636111869671561361789567460982306551178230154597568829429381202686053739669691336835912067376644240116676193953683905952182814504208714612997615272385537440513026453703035281795024192373992669473947112703307678899034836256203151333560450914057744898034120690500799676648231104174274700901802716452425819642919934132255076063610882434755556582275717218694631681962577298136520505554161655201644568663398850174347912947045669724077888487661927202438008816681249793807126213392180174829854747836360868387257843532913582033470849716945149118469556105914797078964463446049735354726394778754101589692665417333619872202754357425363471748980196207099666297737763794568052215695917417683314497229146867800096163714701163197146799995024302501605629682043136038424594116435689543674198193038598360640817539802033963754862901152279568371888598637688777940289613616513019638437819983063998523061071548036967466345662451170605368583519947157715855601079788909415577880834348401979548321259497085981013997305432516411041720109511907050644915081890334246596701188931283333437001725813992596611150079593288871589264215488131576202351957201418192400958057999973316453574113116676307944536692612339982551770327079269323616780604402286564931238383635400747271545470206476208552457622669256590581262322323827627271839189935597153033584741426494883396678387765917861211077661771685568022334974353405086847654882197364356098790241213417028394847344015534383382186494252965607170207111791503905856576890398090651850787304428501834826891316836109189214299719133554388667504349327549523474778516792006163236226019850518504938490665867237260980597039628736998032865413116700554669083811767076471822517795693579263417161788193377243855017226204938840818655194127237413424311773794458247767080220704344115773694737393012570529090342881596556628486631592566693054912686628340489443417046164303870798894824829663185367208046510427025438558412755387351487176476977847492537918651715128317991776028506984358931164507600189788402814367252997580726614602798354749639839262920340940537814281245628551978021279080940263775127103789056225235008337328742344668109792135356555297328031814461193050648791572948135184338408624991644761339667104204057903158746664576305235505615547024214534269816462474698827563522766570442013069235942535637574399365841879918512612139156045620592907544511320163188877624354315800643886123579712562179034741184647384524545734725365118709703885431689422798349284300026049725948235199137886245617217931903357136315970949285281951103245790704824836292802660739822556563276679266460779872459382257278035323518502147525707963632065568709574353076358955490658911012553452008660216538463529983122061389634069819724368855454353328386310109289237144053862438143969251994818960245912065877794951042118613265071241497474112010700645877314697606478945947304844239658407617442076724332219318572959763460907299237552283612753187163001372704598535196633681336968637823324925567107336580904352988776838453929956423546544964387797627327109960070688648567748559015980549389509391817906721480931124049864973987237288465436319143212106974014159013351475500070979704095939701145637481478024464872238761751817951073619938165581302247449799049224532129429372216933620620614926719608140002115546560846814530593986811749005603378823041452204664209690834986267735838973206991113501161399326359296850089222961834005733955673087528093263844111564431924574775346958726989485967690694905213348823770076114281344069841778449249795556168837766728556749599147672375459674970439884963059163646040860376177085261647917521436647991364663245791855893557339823908946998329375899420374506936195088670067909105535085084440724834066183572400841421527062823650017919650642399173411593572553873768745172781608426631951859626673978857970917484435920532741918901754763322712442715027751029206528920908884597877269092903260564496140412971023032408865553432616138801735588149608814389836194808064493917832837136356840275842248257169491412888929590812493795210262410127373736430110870809726518740357084655620609711704563756859032610819084017369853267631523624409124309098355266849348684383607531940622475741073883158232817100328643426455001498403286286914004802417729899528683508705225696390319781688666784842581486646832104357862823553237551884989973406995898580132466333281506382318851800900919961515036573985743984580291135173700715691604782082452886267127284132112412911444781406225057101549987822119645492184229841775391978781481322169522746432912027394795556971671396714421775452346340033305385593426574189109116278870359971706648464627822374647564637949342400362745959348518616138312498183309888523038898535939511103382386727866087275410974227001498260830347667526782876144493395848069618978248618614235102454602070628863008266937072128217718726679025880416108537863208788964417859119312598950124385605970216650938815996827107860352095021424771818032641438284718152639688539168277308563597134141575945701417773016074144362069313214140643609933496569375726343332545913126176523840297271919666335436125151835058377746362844955638326764415773379571541657363249009481038230679688600594392663789158777000487490086314847351532972953856057480746823273424640762069616002413273663890492937473169177985008037326899601877644178503324280283505904908936860407915136850722101100330081304371842916644571950580284949686255827066585795960240246347130735325018785208792570785844098975890348824082876740688551269468272871203740270738252264029250800008201060441672860933640205946380804681520673124641644765984697187712290782764903920564305325841495476095027772404399038302854978291557863973321762688932547314566755193249931627325165343967570586360026890164297543494899253879095750678876817235136563029470766761616086340548951542482157237208969289463943792712053386964426630257079742452381106537324582750970460839885166138829343164907041130020889007578171190541515424130577297132851895721619479355639960440631691045602865923065115741238551046996685892636651596266297617378231828488239057330031207082534204453707176801330105394262924480393850572145698408138314427398352340680088920119978611930004194108791789020472620497436039136921986997206710281350421800837848285235917796034444783150166289031824850783374437014536596380407633894516306471502159560887893087645913622748993312628389338903263796928062999720234051748434227125190147349703658909682342626900974218927639269035384047952845891637266220135691369245541855214942607666072742652772364363327712557350721343986235872156501473562128725200764209630247502790805719451532519186107557811865626982601729342116278875761746895986341862725350149694133785932549429585758101011323936626029535626852850062596560518477605648241843621934122098436345945378827118371888135425633568919173368283752903018531376647836624566513404465018767547230048650565493482340378648051814608098831597847888570699577078915278749412270779817789178530308386813074824090875623181628951967109401294660837362532231553425054761526505315029145136202557223439615749532987833928500323767549290271846894782527368014949649283006054633364621593670242714352712431354926349971032818470464436528049125466504508517281266539703289980933646700715226447534661021042484413880546821776070880967751662518192172733522174565480556824998698937360852044361576459542928444023159874172999031041253650752781875401403068698624495077984322429139779697214205256959996290948655234495181703619098004309127019193690989019151400964092707201022972063278080943492169874456840866023576872584753651780407641402666536040211897954728066106732260572324146759333319292766358013919089277516645353860595666612201990548636756625668449668198802685472524639674460144534358427328899608039731254057285546830535775330357515223505910474922669109707088351375086468957777105866059849430098332978642401001208835471935410585651590718198785469932635469428242360115328906045659492139810208093804291971531820200347458011442637876529282840909480329330169440000821528202368233770628396131651371411948259043075619126411406266032665603725381814687640653521386008733808886253443471376004220320397952543419530424375031853640674614322683479945044444420074164459610887635317607963327909131107646669976201471854860493076056712071734487945252578396065827532846285815720627301278534037557268836320806712478466363699780954103626546880790620009054601627692117913708668102904220046591332994075307226190668273390069718184041163844736103771174690522249878342920872851078000596158600904758167626656334615870991385936537242142521039844067045720230627510347378428169597403934481707570587353008325274806458685167988431097580101107417356354324848264042054443261066853164789458506408118433213002368275745842392454172643369908338706157098888772328174008764471753427712985720933207183404419392755427339248231134116805707686164557701461564840201455569221704008557608159573329950153801054600227292852315666805987938253816495333359057129261058390963764673208030378285384465367927851628855483111085795208565967535231227052618196316669954424564925909786021928149383624314640631888168695512305575661443457438381350413919765128635775345878982374323087695820474348763309849988273637635623866972376955786668060461770080257555587590862974258722957094049404517378475959292380256216933268770250186990841167401335366803986901393156498955045341838388269738671165892651427976026352040067358017018186443253869142380194722813761759068368564609073773322828982487145029285171990241549861669455692227583848941789248125100623409896617986557228135983938448161206286905392184305528774412772840202569521480941702350725955725071777993880291930150514134432739721686675635110873311907900017203956858004173893535428147632671609544795531551803796468219574790682269828249104481070690150937659975966964334982120803046322939198953618786015458383201614845687984587583874063054582360999803156603488678639853707002384197902097899987985516689168725334160877814421331525648247603384507312718613758623803210915032454884442600676762663880074471670425886207636174706260590099846152104688199926129980579597377288374966986031637629182945762653777712994411612351414124086231751796702045034324152715039673989441042887352100760117410582047752236372593798096675293307337364252148808055449393914181544351327330256977411023468370567513255300563629831846701810869226537102823387056650719997839128733440477333173151361354295360854080407073077759333075828606631945281960918375952803268364888146168668600888630533732859495486051324562153931490476711616404945797944018439679003215872236173851628986951679273610925356846157058127971118031548358056213266478064709586271117179261545777584846597006452601121311332827987077915056619886918943516706880515084035009254757743210964324061109084375189367143084913003337906640066437351230450795574662253244119277590002112964982306411023665564609361822059175216416381295587067276878639080445754734216397798246114309040888404294945637555649795986216583711603031717852210835696423799121670597952257481671014338204963215567067941824772970964020873964788061627796887500913237056063300808017919648890514234799216766933767363825735784320623955331689460715859009654650658699069756547651090955204283070583858334984172740870353698336916604969710452069038978697007723300020517097813690064435259660002064180032055800934779444284569449342184049381517517068972956673606303472459717746161985814692187538785832506155912568759952966091102322102463097538274045053232990430082664384199884777980637531720318698376394317008940623286042268670647115229487290139366701407335960692524050708847898317230618232006037790862579255651057613102873984215418221400553670580110665090376627350491623423838909251281535800610233925473950648550824574936413526320102224444707234315170336595348109928479953828858496403576239571712532319930359762321677317132304253926975684270126869909998069004942147362394006772121161262256867904566976561546035052477188924355581700944621938905635259706875418505196399941358471910654947670739565253899632203658253806457013467633559685968883865284001038817285909004476155317371843600946196162655831205794750681090248952088809160932461211688499756192097347247903878602939382003122635586033927846438372311539291834770643051121511184005291431594523780456517212831559504704683794883836376702618688339382540104243756821508380998510242287243988548677530601660383476055130694455871792427567076831294688774445831037489073595559092794774285664180414208038121569185526777949817006664568920164457503576157309752703294898337784277043105753773296336430242150367377374729722750305538785067078902835904718852771628489518276614383958148876266757592934010038904604003143365626541827549702463968509293291832935957976380180510714772255617497297652467386620207166828554503318444625536123291957368110615652848545396867694860221411935499199281698073319354705825732766716239331941727160957540017241939535428827306884235989144452013527569099723597840724224351075448769305039881350421115507326859820544197294445708745679754996520080754629826454524151654906460827751215342478893334527382007176869975168575910830001884174670631761209652221138574832754450425648162881111471246317948218566280363983822298435683166065608677897763083441721091527876810446160736462620884153171837542442372483895645033288221333627665193267624383671006478955928523625014526057078572010241198440833735470196984718764067405500216983884674426723162842085647855433531080131125943644399506762328605852606555656133854086378409641310350149424615001368427704723833873370897830977056073426343661206348444936163825318609651674195536505380644964541550685664418035718846620559701954242997576896379985177343379574616887316741229218736386121795772210817784291690769592318827550903949868849435633598305338313730607395296696845004921077770373352967559411904991573326183926419291396093607726620255192421594774622762989714720844538143174328018395719247922416906507105126737265418277480767970608822304016919230490316750793436806028123794988658560220334393417976662081625189202959138166040136901748648472462546969181981142947586471094589429017991533890045482794049863028858834066862073476215917640281141256842021092997191903935252814151041684266939068227632414748967343259950238604927295093387749672526266676047252838474801294163550672824287105459790014901718414595099357606174681144694960734266723876062039207434230817147379342032786098611909890133668521256591316265036216024478631365418621398265260207244534186975885379081674078437783373491042612823347383469853068420905172521294763494985880174900051746934880179765146495479905324085382876742627778087521473658744218344677272838123789472095213213549424060231366653430927775058164024243011309925768114866554699676543331586653245363584133948805750947569853661584595069355901703682560430751214956590392896757298357512649934753240298233365957543624110316035653407329030175768034219789964600820464530989939272667474998468232725156163114896482118682794994598561879061921512315335852961052914010282074818988109264856830933303476910167322992815200047095153141131297066480061303475857113238059601473611238781787619251050146946959819686879824964666249210053260150897367495044164948599954241820534548974966160752089232813350477704689703288089062614434612158030691692900580708937531329695804436325364680039314532903766320796487298502387180724553747568874910755319976748748506671905502140123210767524331993390203074749515089988260956346533708364700406874936480095931524855190626519883007838821679639578114732399888697555942675115413263073223407839792945412205880417648626196671741874813771562237675516854080681980535990530818211341986229908617265938392958521265697976232420059207011230971176622014507420721058865308274215771449069209763428539866069052751862636916190332449132546470118525709265721210513204290888222421792342285974148606834137617839032537835734456940980146173164462788771574755140192021574010527778247510428185777767466142003064400441341222567645787300868367082583727673928898658607945765373105548619420555526828833880846545161947932655767220489345207443427696365124361767121271307829536977879619084902937246729512354354352660416237558639454723809181802846182470525953217269551796796003135717882353384416758257761774940061265700073666182994522222179532582365909740215806430489625480088951593929802071617022803303807872361628913010738894069658572500733411907171943355551945879339858466344555168945041060585386281427959532351216419285998275774865541287152705920264532157201876841636088619232500433491533029609876395276944953584284927654785576018859804179230036590575887171029600701127303647618621507512960134698673098196376634635176174076138463213266430661149099794192298569156636164834182632380944327077392015735711501727114620915632729369171999723229711651978288889043555297911579056193007283018651100168863039514167688788941298546492151967504495330570949587421863858998520861731875030872499644090569364966324005060744435768634933413171315244476140832309871629601915385188304961441832137662603038595904580900006878008406211688514192876020816270310540094890899034311468250573857114142636889460826130859386276288211968721141229199434298054725625505155749502692960674827435231110512657854534422050962886739138621724446716547093648874348420332289087635588276796509387161189436677874258620516863941195334914001942119385492157916684204854929232651922959020741398570364125153545604258288893553399092250162983967250354855680861582247034534387878020747352461402155254969430833211228003275148358812625340660117779970404473509767833556656609690537582785094595518068973525350442685397759251149235195785939401707349525325408160250927057061655241035417595650100575912555520188797300699070343783527114045454939101590419506818525087469058968806239445835495029036848853327269209280982563781990567145639462057064725883813039141175052441191425360887996608125827141325859888420824063640144830234504936952375536275210643045553459373527816415004237256369029368235971107346690680552701084697450710086816275717750536377840515022274372620407590733308384770099841545271499044465242988818331062745911470889076970672198003979929590587759799755310137301883374783508323196676010840160128325686341639647905059349419955987219227390608816132413026863644081304122317795421958199762621730205148134444022759445973195029511804390732225565306360531693184489310867031801919309904842160154828237656852279865060836130113976067824143643550320930614145215798828856031424218576788538711313346443033510276568783238505654922406029992598968627763614290481518935383633110532641778949488816173940632632195697195166187028781291993564667490576494421066242323469770436186810870661612020296366087228220615105016308431121955752667946526198410533293149904475839079319372311280421625924793493485667893296855711850452005976353062232067621505714011011815289372507333027332633655362257268675429822241938851574691100398874662979999356856475954286949443011968334800683370527176204867731538127448046524181678655906429529581180331308418688923070972368278036017016559662854330272613433801698844651434763672339894592900291570542535043878172161854307856424657552963076152513810032010853630795297687326307627955316225044592398120191027333325987076832740797325206441509174292685751800468411271551002417064494264366512137466522187051859251034079449796555511747695566967103985750206164127933760145049659309595360901519001356231370633501382802650717678044137976223670300036471638116421468263350383772352659207366967730508899929986624713908928352421251101083192709438071238736288465625050538506313440734270383843500482386752080290495776508423423639256679260164516718370211566576159517917425312880523667785340332503113246511204373303003697709317322006976337489750678448064465726663926139393789070539164833823010807795178278947702481473802060677110757064070263065028842549968214188408743751549021005258568716369406614864925537833247587525251716307325097857405799035965372519501794654378594555696083180897079229308026482750347810219165846317235860001111167571305341223886991688980279037452108631320398663361552546215005624262161326632967592618844324015388597135450247325481328831101778977062853680809028443825286559628109536744358405294994294838136539918506494865232665100875939891747813021030579512502836006341905205189454143944820373270234051592040290387301062296353917923465810254145607489485354976472267600430035105725527856704890930296299625241526687234036537453089921148812544775062720896719466068655781705316264486957283747956755014376236685076316898132304158726518905377265467204004780013575357808524654176725737190594336762592362768620743989154567091452535368152906704138327518815371846823015543677204126838133121098512117116859089606678611582967274478132045833422966271599177234243063090671477389578919757158306621384895778740117689097270325248385232965788396723186024314351753046507627057240644653369861216116733250210361930552606194248255641797532304977853719357200185455836360046338219880144684853067053107547667323805424087848618591859848596568830558574541643696254848263919586904337330191259577023029372002358841053568491905783964127850012820128973378736216521980569455213326154096253704300171928442793399358201946881513197393227209765816360468187329332531561810009126684305202960879604105069259394211267897841281787115294479208497703404787378507910981428022394924466899412445205081616172303812617347042319121173845507629868937403557973670704421802643554057092386575340846110979831331506086112800094639075796611929798681048090374872119775317836467569598347884671314038513609599787780321412584901143213109152807252473476840122472982240119129656622486014604563230160397441424785800247854182956322064727108292201714099100931094182658670938353756825729251391102696416915387987592486444793786261836942246207530215087548312799596098465315386640554775455569495954434362134635736495283419508528615169462369510061986516634517060405784690277584516705918864790429310843591212216369406507676971346932917189910701552651649947234284195788992891202085870430600471924445796683928873920127472799279570778849900971742568600985802017389284686830397411956442622108938340894416218111132527757281402236942865690204317625290510839995494249580504069875377755006624294326954278266089940208993543548367676198275027659857171657302542705610238816286035936537672157276490746819801102704884852509060640326017566718234520036218190777379036543162777280481427880011849912580388865453639745211585877953493295913594499398319849909002597548262155786956016508570775344020494075924620559254377419246841602455749832918398604570215465867666218943390927294253628458933508182164631037590761520979672648669024611853788911561439640774431394186086188747880630730992535525101874489701327464033772524288208334027237044920344396325853077044474097446732365064143903190712621745814344741606577880504934146772552124153297550721455036316753608600527363981278614387287340717947068829695236985981137748245573916348681598814234241649100272994736251751673914840792889741758115504957618968655575669928580781681418666226572041122716161653553795541323719942477753798671665975292046482139673416050652842857917977495368818192076659601263804334916310095975768564761296287439622590895479750385075322276126900696419689138952026895289908026496289167089478949857918621947952069373538345721157805653092844430133139561138840976878997334244517192842288725268787504804483132308103343716931299854880656338209072281630199845660694248339801355632888316219532364460926845964773195797117047250364444706358739365688712398175435487644948863001888221942471864348109604227855978261751885780304776206973275058560542175450611724175412843560859266750494968969095710780927355673365811055919451799077348956501751329370994227760554563565064628736170013523108385317264547484264980954057260202503296962908487326529214891379743222033224325196710120370729543077813087715461246026326899263605637291156044427505132485975375237595719153194028173385810294860981978161258069127831892750853504538090202008501205106552114579587599079529864843105166596529607785315036447922538916331497800159054559390791482656078148252287154723699520731576091215026362143057701392752465428989312165212028162197457905822271136477147995374196378034250618663165688435108691672922436917040228261969232963442557003601628143961863994033243358319241895503969528179610269921150061985166710284033167582249847342148428251948723975197077046292469656074707521565638076047780235096787662980287704738467369902194737071886987278704140437832049906653232229622500685232473714886769798163765770530083301444204801307854064313284497613866732897382410801104061612911334939619756678191374645197966343430244421144036006851915915421584831397252727717666522062923586270685368438347590714364783497625345217614535185315232691302557179702963360300606501461819368258505832562556483177578218357810692217332983492563666503082760265137968216025972236497090206207040056392328715282845178675819643413207950118886480751313530813805189492225680049928192046620657066753663676503253467954304223887971883649696896510201842295806798688514112250295763557879256389859753703157313199241532622042373452825235940282011956443857174485102382358629377051850840362994370769102960795996523279735347943599467200315179693888193371953029344509117685237884943332905624128128709885585390088570044211769550269422874426327025426842584848206772595948831866861649551477812203755265236071321095723020378848854817707888849698810945648010185602139866468437654620692183289485838801546216066762798953788640853227843171224226898008200525341457212521812181541198409750427689670207661492002758884309040771712982862741124062181227212783533810105408415595612284538260651551562725801922182238086234449463319751271667662541608428826583183520404935733619929083243037897233971490497648709163140904058781484564473782172252847703091722311003541574614366149611070469619824211380441996943307951461914343580858986782882502978328602677477000834804458305553958098438226737406363039383155104537385299295524279511755364446859478443340300881708448874649612585855196118736756998665558190908839867046058095415102346006425320859941738057218057091716390471690177272158336469850242563541376606062152027715654334534216648277404983083769048898415012316559648608168314899793027767283943142947192824162675360850687543679139378919024949555261116930324037959970870530515381874711179615673876648364638868670328600985332347121372435564597698038347362669561475489008448994420038209374435505889648786663399965739682897453787755790438171991302294936700639628380033083875381317763076361383821073274715040240468842878844386211485081911099946370995028369659364554451818164450985103380083775557687544427696571450330823033097088571482983444844733612094076633713032346181531144750376922177844635893631961953471611075978823543187526096700643832502059579233419226375460173627743977906222317791027414422146879812188309575259772100025602380325116064948626527031466724742232446575662545802617840876246903715660396024389725777133762764087262847271962353176361181525598432760582137814495054151000592905056248800756148934680445064336694517520637376504678239309959857439351989679960463887307301023925851328881414040707396411341132302972735333413081250219417462836650991303721832864240425921701231385303602850140497739366460976481991563711580252992417894513375182229898087530432047380677676775149313410749910018426659542351621598375471844706017411120589184608152290491502230010053062069526387407648692818886046563127646573741912835298742550101138672043825613595036017912917829627091943100222844581331079142580108144678054429941406505203814419444890462596429959675060299813854277832436493741746373748280865449294336124366655154546103967188890290029633632127969901950050056652394940748684558946645614864603917289433632385253506106224799444923771868653888636327595537175090490788545375333779966056652031378650301312095798162811474742689203872807994301378881121015143700247887679143603885007222138079097931005085817637034247345646380691445801994547249804778505209179535966070216420101976341488068968860490706570019655314464642294469741842387078556584227653547090394165908086637035992378152448966518616461036078758770391956340830415685785840458110362191719349400732663488770548006696718463826822460341184510145058617589980952798063167464765953573349833156340241807162282796892710367456014234087179716845429684668567161486866435861328333349228761666034874228203172184482187622046602007132751133553567674802812761552128621071575804727801653099410649067976146739016000581325440058688073825382817570698972679191640971561566068176278883026528537223749555629074029792753783725373532553802879170546013288948726424227713868572558347135895530650040682477761879495538460187190443356077157098372660011386513805229632817154374263102670392863255665739068028465087732552437032354906488239068109372308529183595006800703850527489187345529780229085142804536455704103016479253209452760241478512161740362273919829476321810890102629009611497619469228730956717264889348425913980137330653085947175189657279906562591653198690414482063396363089580945689168569189904013032434420832086878069918162577423989622161710603917949701028987771700262466197366591895503052981466560700680525310594157292149723038935721048586989231725765637065744371765782144755352906509970382789366039052405974174251169911803869197847142410880851577122943438354196791491893332757640989625813199447960755970910891130131509813452725437637579658058941539123229454244391263118383560062020315906141942161103122475647727763466695748837742805206748234324320498801774557306021721132085835209492891953579797411200509905242291810665119366876691327970599838324090599815126084602664565606022108495607623583829610683935912751766398669719395181151901189157795310251362232502490253635433172358696336628504270465605405500387915340371606678464016156688422889628206894588972227650790001875007594074266760651708936511917026933683010197913514197602391240576836630390571158289717333232645770552447142690893068826834170948411821536131852199629622526173712163848036504987281976660300865438685342629104488566630847247184700426073134304512132315389467333513836344074940595532474014503238309329237764635716275162824264308245404680275190710531877137293499146401390078283278256755071548462090067527087105384047512281693503673587056413300830392339231079641756991580972973682906166695002087861979560450013624974209776377878501044350564350468833138918640156327623025202695251539780229393077551204929394397475498430025524521703333856630394577712050625220360999493858460087205013544565194029693889524534386453870054492658569135681085110115332483282519577431798667389905097920351197235010204581647096248086375321391635929653935366122164353226322064719311061314579417505470771171422049321585993607219527781241306624597372636382047271463576663037028866493886386036135011915537062517857682264817574043880049183234589124212987152055698171314841234215593937137350395153229588443880308438334723035631757952224318766259037534047980707742333579245729065033793788434017695028632392573673660618406280106802561556484336752186913983361895580929232829375632970098535935249062666032390829288263252877770149698586361299015317299071370523377626800197082111974696857852458241290577795950539872394609065111918231360686706704945500884160252009483860285458327849732808052970195334629637907038827086289013078969282626603596250589091821305029181783470828634038048675806306609313135788405029424370113658140929260536312440500103174634086340396608118106917209132029209778120325347011589614820955498345871755464882281038357304764752298788375138937549858509805547940269789854583320220951380579581593735455581710976402179008839083935351703113074557310552939505619165006960717978915859169923198640833892462228070874941816579169946125548484863999076251085303374627950609711450948495136236833447305963431707476584995462560716186974681456574140027580564879326932519276372184936384095244409232131322202665729849090405558773170964510185457668632161083418176984346542989663344120649186711588721915782517825035213031143095331175205162816692729302358651372714338259458551949146797538010038896718411830817721979208600699868833327848424015053514770573748616052759586564457243401703626262015889502475592325910701690125757474261661528488617293301819709449729551945182186382269416412667296744312361851803617203301335268156231574003327706719794742008908730127666690911846915364388101536026966701085689289469496976566082993177559387501102313886992783988892398237864607122633161031072148834797624235717591915342730058797068842691665719712709394677910628352535806677804914898718572289461972511780713669846353628676736995879378231432037264520911089258351776992621014656556799373743530587184093166273217888054386027618133547216954311827329333132361743428344520640741364316439971954287875003584710666341533532829509707682331034428011058358859100825611909525822721974526550862166669084390052481693499289755279295053541697267228284428157398131728776715599673895094638357960981527584861157204776472439857596542109941786988382226178877855404720227899519908537596080596039854430056054773794583904070231103848558875761536465434248928157208863600636933282247340753142767372370335501606742477250542897904488876863139556477892581724821897339636819901829408557811534478090801456157051396492949832903728284463083331325120576908386048626772997454438140568381880700674128666602866446232742603060167645276008615588623748681576935943118081309266660043890867417772216880247121040167082998412957679564209923534822269859846068943238942034411988510112762176232103414051436700362148699205596398633048210314975289916142223897675332727926192263585710367477509644156155189460563005493637892943025768638478107282626706819689640273009942817154004928419939722201477347228111682997110900762082918422592082196324336741259387760361733412174483799306789200160308031774894527433012611638881114425417387634086253651174475746474724373234369061784502968776390540302763340537604728069552939535585852184443021259722551729424957980675724406933907225175855956558121310375541419480801617528375925796543230685121343776828198444027795767743248296348797263103872106348026019752222947255107983857241102627896180373003288327560327092076631480414275887695915530114628351383235187765249168240268288799413469442609228373309835091926688288435113180197007677648764430727537879167646253271511848973409068114469256370422096478710971368921392613017066619194780448793918270401030633652171793451657252981731107753828023969784011768764435505458664958950750483290104150179903333403549096869036752487746254081662667842508984859455507380271489971527590197874768954355894059082829350920549270711139897908285057561945388002382411896523566454582798291729606220259575071187075279637446375552835247001998987625219903223274145583051628416031095991368691255040907422115775780169052671370414583602352442937607035111554848951067985270224906142147904862332720723229907939063589278805123412898870603414301739380937945081903270358448147074712639543896622100576823592806968596993634193627911045977234825742489581316354944424457545205164498939352786718741537575866702264276901833871548398419136308317434829118485055518295646338556795045817221796213142663501210766050756010096529516841650534780522800559369370929781717688445566228679739140211377982410387411376779274252135285063861072040075016597994490456314182726310033292107655424527383803034018120588758949977841070649366108883198900591788918953076412739957802289446340150488308262953221149248197326137272316295188980403766649696051412236632392846320514386602109716136104497306591784632115878074021450617887120969439951551803970977612851395317645509723567436905189340650727168002836947875540664637315334214158954861084981328506288071649893555944454658764873023133541690368862321210082661680678887532434760787538911793180654273235961337918758974753886497188096877231112663022010342181324164216328962449289837126090333931725278062934086214840396803634231057742233617033459449231537375906955024679863031082616258417062706188347515040646093805137043360585038604949481675234146710771177699674257079200428889151525300803870902067974402659936282472394789692193566202043130683571127383397867919642924587064774651035880015825283968173740689881594539729341304511060461600643797747051037876599278581735593508272771118808191594095064865957043727166817269474773111780461958494242589369197941195205499713541893107596840266201252460914676774346401402394436890873664363910150493910000123221956190475639521718162438593695574345620334425450792085143666791440548196856567429348335514363078727215696577233852950890738372698064676209179963812710496413539380915657125314890730090504754911676153397784613468944788387317072073769904519516179101519253312834883698510622154001455652746333553759236390098966482237829042022786080656535923617453296802086948025157722650941877421972862668130074221187033313068786083962848545891406381638600868868800895231080565822290130242706294340020780149571768089680499793710483913526737252897951138271100507011492477519885136899333274503132887067461310018936877854387038445709358098559568306436216095126777089490429163807063027899503242560325824124884195553336830208696522471807814098682340047005145353379102764628924309147160141047644550244699948204592407653023515187693830968280902518158726780192033047682523305536920840055709729121392325971529577534525903529297083491450378865238623102177061045555266015840359073352399400375228352989162610862386849073111567830013137642275895098703032950729809573862631915225614323762796647547716931246275290058160226759392203345283009818457700855736079648149497809392295989774537287821108531050393858796127553427260409570777615547989030048382182946097517578632680541840236596957891077849118678827211550147877557978377874065781197911936651626760159192163646535699508751330152543222092388826258812386176305559378806904002452859131783677925322874800138299703759148553620568071967116448535889399682071580305497745937754329072889315902215663647502978695453473218185851158347307793140907568562639527082098144998117123099318396057525570783586810172420103448433925947398627392821856892658039220421370654599417092908944683214563431095677901963566266870742198198060322038698580200372392503640806822135011343510237932559402294057964439575088012219276587054642231047182630842607207955446155226286937420707208825721916473743160545729112261208974990336415521506182916847112237317950171911516122082628867566099180331930363095054308512083748864751653103678273464504522927985800529823450394952427159357424990419541299753152107220279725140749641612829464357714193779859633470740356535730093232321492532055829514549571395090014990703392183968398967517721708955403740232003688003707353288872310575606548926305745622020527818050192047209474651139621206314390485607677853617873062600038684304687260812107054527702493483784105160065088459615579944661509318989974781039264609660983746752907005845450561027003607964123042320508284919647634189125967581378655169689533566701997134596454408129303515413450896121993738470609642305519956994902774752833531802311271297262849295636676004150059004944190471875892587148758247851330740302314946570397136516113868555507207155213994967025140668522217282985021865336445152459851875460566376553901781915750909608287540640912531415848586488813377376156504207869773325714715517708825122411288293863167769959839671662244777422301765845109583574409273887628941982644721724856664919067530772963640003311550220705184074220134096151883974835904105346445472255734838321294613073824111915827206536108238516307821930344794726732564090538857497222816435284667730230248595019293120659973185139609581216252933867278987264579379822823037677832422996282202316175965663880728669859018787765737499866444292848700452225891849222484415151027705645746500812901256949346234749143633058278437486226014597185942344025255846763455930925188979859597242583078200433560154316668182697537460601896195543117512269934680131083759263419904097606406146400592076406740787637135357822069591428795394557812010882784057020837718512274670561880424352715838426543343180913115702994783974745489383974009478010556915161464681342213259433092512476246091767284591504936144402302150877879506221073725120479814387543770470809779424009023485338580082223169125924258591187747087990026029185596663545598624938133702793479739141415117139361715762079929605748249466622545076780274734196275519369462912496950630855283463992314545584481828858533710242211975821751299295748459111467825699398040518939256910559130934925621223111125030639862980790888308637246611614511386133221474780574841355057416216098901045148168933410499834281488218745252320126000718118261272483338905360770858981288747526612396974657749449508133596925717215115846426094086811478400377279708807402058832033686746736739142128269205410574389906444892616862437653693523946575050912703985622061472758518178122275864747974473490863715624259373622156586083611488399991177226077418073035235184216174727767803350693490576813540625034414541619810441283471664371258242347630130097434723509809340748155678690544189380891066529831350843359622949488046567142193706134039500659058408406352707427611468750545660311439531650496943403853683718341610300594661823359979169398037877379610447607096331835410363185018479298566637002739259509428722863375400205542383816409358102655793371332213886893056371879786416595224942083465331937005549483299941576384385093665282186118315578567233056357589628903683388142695667403729801478711665981644509221808216646445983331278740035171325595318716450089232110335570257428132704396772108546777953277266188491041542417895478560604240570816971171041739767079613069479968470834939635746240015521676787203255730178849312583112407889409219298846707003921537535626042898187130400799459374676083191530109601739072279772086826576536342877968607444616043629112362852744891763655604739919607359342085367827946972621898291196591409501907441866963007232870951644427249538642411896904472894515664865916923009350836100171904079236354290533922742477201476086836963047194153913673120243216879149138781410813315217195754452338261184304028340968326655720153147690033758305490125583790758563211482554641743251893578264567780061668123818310275734025780600811932060986788222518834831640014759359792447560727900294020141913890553420329870437835757774288572561911919642787723296612109877161213578566204801207450578612871402922354796954977923521813270862111003952438028479652661171031088235268641314826753249078171573479222330700094145153667100741585729990972332794310521801378401971361521932884217697182067854528290382399544708565394590395675032574278913048802218092701069915486192320680933871319078626735382220638618612978558683209409340408028079029874929596492575102267777438886826296699024637416542216581046982434041351328239718242518437477893563285119779483163089014593828296028166306389083118424289927082924888655250101156891626624605633655083435201511649781026947759121528268491195220388331105143749259613048952849376943545717241758854122929745805548666453388539149957593682610066111210160069100639679649183045454315862218833825765282956989473369401855866327178527810400177965737703023160300524275766491688075797554960239858454647260011068342125926285272763087603183199768945772475217272690345437822049971321908596269881915234424811516660808075449360846053150352926305311568043899818231472597860379681173159723850607982246388546307908947063808882685936987498438475918114433088424228929044236072926891408322450446391123116990049181639860904825402960750597715933482259838350089925877943495590117417172661833673896627226147916726136453010264809404499637299574256915117864690530887225854461614895262448414114627420794171879982317651749883672321060111475967584797718928734010570817038602487589679232964555488819285388764463557129790154412808124266777109855086835784615246732292663902805202145024417749935050354835731759277504587633889707900948869268696682810907520481605571048134177350663859567971000365518313490712381709279544400292940499751555620159651126217899121456232464179972330696243533864022023641395644005644045277565745744866178264286981462061216848345006340931852169913778527055031321163065604129286970585442777816744367436884206091416266884120814441803171796283841097355650759090927909697090260834548151398287385625604754811111835247579105089485480164496714862430878503210537019272427486289392658308522262029583469098667615623344240114470446962462591376043012051652458917100065357542023782320715158957121265241769078143931144295075448924123569862765713537992716612131460892476650684811627548457020708458297433767660607808288517103401255925917423437906535843617786216165682580914693283862745515649334764249961861271976824453536056239040000060697423506449436943977729884553729160330239432932508195012931149358188689043124133397634149417117727642080291319528800444501463966178952960925644807347331964833257678379428446941744722462290705420379743998557845527084896973702422793938817782338299351628909207565622507935870702546592467415923165778215798996926778687879235509031549870191771455007750756728640100106249050983003184364610071710714984674033219153480733679634671019260053818347206667168034970754738116150672742142953487189921729243290611518885440178844131825382802366481851100880505556049139442372333033447579845611952679537752454905365009970765049800666812463204477579370485313820833646438417381700085117937351475532861609133827271153048969566097633442644980191107030284059831650506262318977027357142446988737077233641302019765502376297476498254428999399791104072568009148342005271281692346652982998867949919908723981313814311192327071009774938552837707435508423513332206580084128176984251529850260491581276696174996722643178908362367112528170521394931232782038357390704124781356984293387794487781380738825987184197151423219330678652631015914487183434025008606582807155831256761719457350615615856197377996486548621913730152863355950736570638990780889644981504642743186124052522410338630513616928008783227847610960847556392139548565142094387220538385265429203484345379781265778362867973931383464515839749982935428229972882180522827202574441851537160850740587983520806622446393174136909597450685959457123614873617934537773425441750687871849217826900722070715812704436557341667508686425475057494470936878864897015699441627579226610841618095501672222905552409612207139979931710571856923809163825253639200625645586127047301395561267783763875881239553297595398991699745508793079613944331685989634781003297634018495309899731994489266771125716977543017527325740344344053499149009271044069999801403474972292605776982552627904091214259692996887588503580457928051721333127515836489029188459364185272579695879512042504525718879695714289607078392896891095300672911940049544826837776482952136457704210787363247775340944686967710034274645855385039249350278348651843819353269932927313004950018078985587774428008369839867534373101067435863549046080750089811035275202341773686580252520713639785597811668838140240329292546027514201111606179908630181150733431000929483098391414888612802174477076148652735449762414360526256020493647280559041400076699966461419247050404506077960130051420745901348675318334291261322106467659453600248952720675295602733644561362653079746207242522253976826017935215067730814069229040915012828362579204591410545673315969324302336911519269989088143016924319966363757777035700471291425890256508923045433760264122110334351519545403435890877065111616411103225937256491647555701248238841280679812015610343655121014372163817171025413757705932547608808983566516816740983350881451505515575586478264452614574954479576454867850274237224681953153823428706826426857980185321328640639364037727789939274979733736458350843912077801311619613350586168179657902908147387880064452126093607167764544738590303927989766306548232965110877597310437470982363375171440882783963586253555680413345542586579096000278338017854800579136128438951859576518468023284410654056027311676336275703395452740899570978528693009753829573157111509713951110247370162129170252301242115869938888512848514392595235606347564764007571292979184234737553361853562346468436815076278463369026147675250539411781572818141844077644284807462711623396077090947785074704878875813922033185027475635616829756970590247919020284523298136109330157564613855841149207865281736864884942756757702300539752050651009284047564650446345472484084480985179140347802687011760203334383376042826116716730274398986653465830882295693588847050538031204479853912732844513401753579241291436901516331659721530769171783721162025597653127814242651360200030368919801714166851253854790094401191536623941295020774736163252573519217140197302778209682583785538928677618733627968288586747566054289793468174105735583346855959173491797854855480212070229808711206140855202405340536903025763859324777068545458932805104798695374788148281268193890603867090762467881656964625149325669373132504357147967859723532464767597538253249944037740883544385254999111278349596014681759699956743475066903220050026175377986344804122910389523261980840004316365921891497933492538067674409233090733785878357454810911884257329180280013441239924966820359238593679836019411796225816024133532684083227646304795830727976364904136778437827114778198216018990611389054389859177823669455586149406145480121251841954551636735916460518277166360868678340488617632261304035574430493236625767095288306721923971139070836934362151750048135582189131664545503542416254535827904879465370007972239743744231197724731084147890682128234680395537212458235817405291723910378276707384372667674145360019236017041419273497819720189253609946477848852613750747325793443748146678817883186497956128823833215308931204292563768267641806889684750118340381586635989739743569957316999077861987426113549727999529581637116141671701012475736315287278009046906059543465155291856732542066688722165141685569162512102777248321143688891624349972445020244574309761062943139936718425872261823625143664032774210785072446553032250285766901863067602363005608175150466415212318908485784763928459492769600039923642670301802555657063032254492036508202078146547240167566081994430705357758495575430417106654936113902919236793442575625624881822752787968031671195717315986465734320977970259799187646468474667297027697351274112368960547479822502690570038005988401224821732858742976992995814453883508385388031075411364479812446987509169539468956961795766971450122013185686329468120918908992800973859121038047043903587676588655317562466073870341084867772461878086608632374284616502989999782618587722981516603196051210590811620276190475903266843118213512880587220046681344554524458253761804764896997185489970208703289960278615309239412803493815866477732321626837705612984095353295824361996640631636863662697408866634189033169333283707207024729069645603279312678213337974169743132212451487193009690690343214925439950863264629766654444105614816247549680854009663479576090031847271976741173314513029754993051110585293956897206836633962213776464366809563915549098735683085709423429778531906560766130856120971450710549687813768589897624252864648775470190732828097240322951342739986067166107037054507424702488623272643896714598958665235575470843787111991624671042718145504822888175740868057022067967854231487361367962728254405730075257436985397532378327742778938227220039053690977396552384159518125907617984793504447690101672382527598264438850726303311491670774772042360792555699748891693322298655927453394865984034931882461488763848997844987187276031147662417564991801562011912915498596700517955704526261861777510689796065757345511034752226072949878884561205142563056669681518855159219380103458505322035536301002249603283896509330189354475919375508229459126871374180112248715145427251233649590371441083252349383680147802539835996722088553678668052874089242821018819225030759552964367098614478827730028666134765279139453370784750669865127484886955704213250132270301702791914997681516164483385472923936805160403336146642348395546954054495454642655938116470889263186178630515987595813522142098036465647710028198880007267102795889890438559596799859850862935704940008376146278756651944818496905994697584701655205477595806266435609756323674718099342635553271829167904214667968547522796174175858570237940228589789017650742111647263388842440199821463687137309948098696396302361069291426248284029048165463128286132665362778425611551496235918028605461973920432967251651072197440428699852976494310650168432881385399221243200425669247311771136596380796625417492079707437197097890371396586404128204693578176850581216794909142284634502510323521836726133923763824460921556035469222095422197639216893662059149154467235917163209242766570819260853191502600859364405737764870427391373955039712309507844362888467369717604554123035030945284007602942793950797496076560374316613394846732177976557574099117955912439959785753436981016007467920428474219481229035527089658978927109610064347360676771823429015215073021639596372470183407612782067181350845076155760050154062664445250929591691800296006534986298365533646779821214761254926388795109864992819967092811654520506776499475258138663755401916543938396094403545974533485444247003732923510964294673515586940255274174053832785567855729661447848839825602055651768074408640048385140904425639042521920355518448144399508252078185324364435830404901860449725001096197608291886442258039343288948559138101715179983082530685117185132255242255568829682733436751967918558943352847168192400614362219109372892282686051480443851755688387978920606652250518549178963268007765592574614597164484167392967665379557769279460438004621253229754461367081529552065037970426153711885501039620006117263854326659044763183662485704711810464944889402694028337609968327291354096706403693201157534925468252709061334247068098387487434183576759355015945051863345002343264846625011991539044331135618394537714039399582122419764632126898913886387862398795557152112450923968252288781479183755144625791493113577650389572421037474704576871599480088748944430570689646859763216348261083490709226734974024675393257722725805878214008372551834252117794712149702584903191141468691568416974131678107773437713636399992966488589586287644619163889843909053340036779718166314138956392100496095979918502679420589236874727025767099130546704361386210659509309511708543763267384835091707047020463601142980250307723916469371635541832937731874903627593030288975661339129020947016772229309102568898736596910968073400324474951504812486816153951426555911224106892795006989988627616364820293772801632945108322157567695307876256057646354363396665573495748467362243292226317333491996611183804031756507559665453938168610925971117263382622255630420863359882244797740556569223350979987346886700112764499662090748225732238841554185622689941242828458937296831320553458295454875676986379652438797309423613680488218749019695062842773271172471238297363592373636069222916070041682758007805170433474704233323230382749889305960524913849033050170322890563337040952849466291812635655186396242184625071341144894347815412101659104111020826160247639693715623511406234366953480095221687216505966744001104011053124137348878549591772402196681518194148273335538588521774443801734842918694579544151348446133784813909184039896700517415463679837685111362190545767936757209701048898150425805220983741402240379252898863441773400015219132767600481290159434764337416633627709920903193278542008951942374298426068521190530838944282555313862715206116200096199769318913831468301120366048390216547697814152173132318524182784158122983857655890896883646529768058588379774849412270999532709067442575430604137852584485973094351296064879183820548920410000931805590633088153723184873523631785392724850070071323682691656926969404987744425248993920623646703700459754998980024982696195918587436873683531125143894312940886361727074780356047301317184626840400273161022834749106883315698700806451675073567641004422418683442895765120049120780270222169933043645619942956878993481039477770060962911686200711974524602601852901127754965692144973232647542552148323548014059529505296161982152920476280728445180461241581512487499429049270747262609229473278963274686303005889469936151448580695647649061290749840821820647768609955074556544306022705715758102075915050673153277653373690919109025912512964145444023243539304256696568667166939210215093746636141183600397059954109991427972093185057137306263055105668521191562872205894353280975799364492837472437024576213613614505520672340073088823395282705192313649090787311511737124839758766123345560532971828500521702662518887009284759514671211586719539428956279092425327146293309421681283896310095310914814212382019228217421944332694583779849365119313983580238289808975917372299919443167630918976763249540391740698436126446415437115179753114736058060631461905909802815404863291205036800474617634696811744312740289944278234574103759920082386091353222882666938995615175935893561846205814780215726387255582661898529020022173744801493823789146729402847738894092237460188804521508797765864618623991848031329871588506076330615886368267993152967887178389992555130275483419630579701905191917231684598000816339963964759603918315232963111196311954401928899434218557058277702767828638439149367164386867747728856665402962107350984478207211730751813865724643720467086234654455415948325873223860571218665353435073789467572637891522330439368213717791074671324097488575863073053285652205234246097572052748353224587979497142172233657459360008973236158183314945068470380167923358836550122629631335756659536209728239511416356034924930320599606011484067901686722772395301828625059680258228712066307926598578042681300679843773421191200615723178089854955920350866153615762234282334920779872207311403122568538542503301267392099784382816893012457773081469189185498544096720751842795174306015671561376026661262649486005268448709338698959402709566292700980156461769270562165370592624037757829625235199638734585598718274483191379334353480470825011581840300872154262813581054892170638595159001984189657481966921775992518875376107450215391509945195730898162686355961806234436823390247762135030942320058106620753257018267718598022732447654753948787065632495403477012935473264564496393622870098010005980411394099211525407137996226750483761715393807117945194186059426725748099699723894967391909385581782967684077386583151873478087367615866013791490387011701981226106313910192404146370319032197528509512581309115778476032739255037349635587889382802284082928132780775298524175714756816338054439836895864409561528069021464930701634866765280942068497003035456869264202831164706580926269504698004061565598247171829349571028932942293215606078058847905356996892961833760077942746481452901132299460603223089615240037144787224529614446405577819635606734516995886779054358920432391116638005160707222906743928979922433902923069104063199668627420670073350137320557739593551168291248649323232602123556799415780535608551788782982071240321424560488549847751494817727031318846447584434479695158238712564824302967729261476693243467702983709470565932728002861438636243097808601618154840093768820873576254199731285287973180445295699124122693992478256963495177313817060323058515239340449315943644860099180790197858281727700022292838501243650696666289847477170310145487530570859988510499770651582020097766778265538581586514208243359641842695319680354201207183557281332661374111978208852062928253085373082965122379855791265137193495996517677823970403464862469929229391601514778252960331878825004974930232213853188539688217136419647267909100058759204821775105248497274489063620126476215173651443035074350312044499450117243414223730230024507378427431218149803905934917471154586046009283596305392976615146734809528212159959025072269577693383852147576245136930949527516123295532144741509061585056889195315766089707064061314831650896722741538199808224033645183515822096628944731069617853590627918005381820262239456685748478194233052871537907701831936889731606247783534036842358825934374472235874323757963320276429101397567391102414705110669010488837139522244064642897889972721765873156414463769181941098185553837208934446357559283198037090457746332098191085425131138615736938327592469119235510540201751693301703080464960356317061309228104048468652818155494684689809269108232008742708616873847864940440139546674742695656367158168592969370739145468511836634394053083946956812264267878033601836749096856336849910291044744051711595789957559268165332822974493018680250631349683746375101504835616561177540451276011702528610480827407526670911102083584849648097720602939698574060693962598742137187402368208809382650393086613547618547631286216045130649816561411186861717963873618669366707090085486535408752733617767828634377014441551730418692040328983201237392026451901779913630594935035541619156698276288658414215147930907791462157636691343651270381269679298119435310410024810058160805983805495896989543064326604433217128495054595096530345614641137880614503599733136699173639829438262542109812961398369502066968130466046288396578127207469382131810281407803751578273617246831506823929362124600608619442415863784065189600464057061489223191017747299991347520938346322066397326201517241312328531332001675956731277560238989398784926012680094133426150643032729896115818695750599460035082350669386866107343396809574675923093978759885871757507165659485334687670721387630661070188832653600570590083383188138315734659912950393021670090426069897258001177040883327324525716612845798433087821363852971188104906344947899856479397454508192728756130052213842857674959517504761067412741422725886211029024429880335687428318678158549382425307785483035347566507815622803676332151854505875904989193229200199921403099769947404102892355542731433261460376664188743121109954530387384543605108424365229527821049022778459342242024603128255792277545511049716338564333598089073452975526513222765920464137612071787986177084687917061686102495926338541334927685854933168744065400447742679127010899658629452804654606779500529395738675842061325271627261142676825594371432127971419482118868242842128612792595621147920695514399892160537702357208240191102883998839719139817036028973400058571187437891280104363567095370477669792145012333045504367495341638428670741251125753513461848456351674933345091771815562109018359969535997226898267232191831801895356293234755912983192538016297204071215619072214116388394006284441227642518990861421981885803025709264293748420662162344515878759688418638244928914913423073159536589893245222019962466322023878623816835700875355103011802790508464918804321007370352042466140700439074228668703284800657910806644682211134389950523763326169288421711040194323780481740211654940900450705939408777021929017131500058647125026783766545619483521554707590009303161714391459211184344795419221351316618680519142247953880481511120220596093969339683640152277606305979876488321028651364935631655666318136256051242797368045336138428114680064039367841369605890570983847307453177243699366931933292327265443219395034658866418318151693666231059969415308420053960143811134006880803792113496575440602111432504659332874084064037695295560344554856316521969024053738714728443732248479317400761566489641694241746378373814610930281836679500131400795701502151898955371679233983449537753907484787761264985941778681551282619295523801343992884986624623087002997526687706106998518383960921017745918145646571673359702797246879902024626820096089106850656658877443285310129849664236725224724837947618953457563844345469770270815177820272847314373757734971363355217312678351248896496335686430577197012090889075298083326227280638738451877046087853167826885738044264535025739996680230380121524309668496484900067657952584335404685857113896502356622847773637495439475047983169461537520809613604243887697569792634322308289116334938970239674726296619307658510726377900522516254681350812432309235831685257763945147050279695333517040582239128123108371475926969154662316646169296386398328230170292575586762483002967528963852104255220726496417205552769916578772915325144056770049029282806853060880833201252661815874974654195893944695230998324030295415690594431153358031858133159722915468099032864201602353596738604149742670908305725522739791034321041377036116943855689478555108435197246684182276466359661843359042112114336613956842487050848713482464469152561237405351926020234514443049493590134283396039602422783709068194941797760313898546802872841785215833662989899303199469189582203384208581423221441159413816921294781166868115237748004937789004067238473140861520575554482831569555134032191363136215952390356888472760230625872981877732888445495804692355379381184827150923900632461455483778703048917749993177338529853640364015594843346459946405734999868746171944600847824496913583782417821403909594238083465874832809571873453199673767933819634657822166357212849889326331686284229222434981869146891899297191877138427591637796822807191841424351804986156834047005703203956662577627593532057122311568956352804702825069412101620085330837959647711789709638958175313428845892639895905237850756616896278673525437343323368355199917682500413405825940481974981112816007970128913735290747757474373854985386733846573587409221553491409738021431977753669158551162853969776560923743479597855193073922886043635828372685347928959267378478580941216496186310130837244831982377566201664510869428870135236931477927150154016822992882498230554181280642427546864837775223955765186202855252200892769404335184241005723227444199208637842387716105708113143796274388499401333214330000718566532025309890281193552735439978217277739117403977640563380817334896669313629258536365343246552815578150715826036815419433807844633165299813341248785807320779384431618552816997775645466565707229183691770510361038982224880848843047677763555418876816079387994616759089773150954959845333315038593843562762118020013936631306940753354397943590447659656017888097589977047768017029570678972505637809525147877066135398470135475029685373939464586829521553524487824992419803118698074375151854840478117288168189415440797820457933970737515930713996428265865730509107131675635186245347092313335053885112183621287540097133674589247117146731214289327984355303931720373450184199614115623053854711943223364568721516093294892802136978196916120009421646407967123907926855409390341859826723490348634435801643934061468783011123298050847656230320335724231169155823149282485875862766406123094241172140233663649564361954183143367583522231835410183897108523181797377416653577368085651699398686251047114101644727535951685070655378953408420233482068508727800391043295472270476236279183900678584559767588210990592807688332916168980309838884922541165154586725820490239711507469570402819940233677146157150805391963558150245435025622716696608054049300755367321621767882774152483320719941735469024146034067255698837749236772069363319459213227210462324788393560735743743834128189124568697711694560802130809681737271200188831891296627694923184904568197093828944174459372045307136760505134814652748892027312419652498255451026765102340004987821778254978838060842642841758227627252876820433271481214530349671355889469118581806991180662885163010933011267232589377270188989279551804112332343737459193777296148174953646994535550414320222025911849411633059553592211664314885296008506285490572213035773806337589529602338558261845893163081769412492355970644369986311340283109556104652244264172504381922975257933710983756933729233647247116311277832651780618796704473557726822812004861762144906983221148563910996185185672238166757640659778133482089964998578546489578800674473935281514820488404830361768253473417265348211486457209317465831482101648359248186490347076358264916235586478647926037345093990797121696956593270843506889238547621452863535792173389213573833095183416854614049319907053501275223730179527288745562322871400234551772542165139036729306505015927575840867956347655047356875747610681701583315782352188907372253701578097478360493222395403246481492389796877467510043323490320822415624354245999237277510746936953021400136118245221687006244368630977883105935529317757887413592409191685999231513986106860449578858879032905187845295263317560861528568716497738460569054514297451448874793947539210694588149083067279436146301813680901318526210947518673720440046795603350602677528978245629377783607847373570531110875834344968590444436255524070411121517802150557087362607789212290678851743432107938561177576915138278476603640223262186574592278441693661203896187059579075984437331245819161285876143962861158604647020278255934373449890760653594309462208978015584038388025991376108275970078584568813583586164338361064853733573787427049947017775240103566634479354859093046598675064864156906030798283435865769275812498924734082777951999654445233240872953087021414008523135332275126813182912968467919387225823579668879704899106799049264547031156569865414584535421873696416742543654060401925310559243805471403417848616047052756997356323571590734507753284330837469948727179901933648984080825658050927848282231156320626733232663072766345034262966387970433816834959744693073654774071317370848424935545525196569245023402999277371959608149172207874151795633676829019801586532278109089471447412042575844620293312110707417111133252489984452384193260946790228149241678540101826910106130124727445825238985334056213165900923673415247968070943006426552565320083636153419551465546760367910508283072780262103710623014218717204970321353693318803244974679790706711481852091594235853908867332072240550167519238588459263886720604758463279159669800728851196454193525875503487519596551979997827476532635004531150229501441521557519004772260586665388566285830537910475041884200991728312733430939346671509800772724831227814382614681288730114884639883042574838021872202030389416295717722545535897989443984388648594519568484364024817838971677227834206446863844844276143800926967608447228128698771909856732535501819728398954306112399312153595152891306693944461926803389125917477669181448468891117082269877588124975347201661716736856579155276349193031766038825694727772014069267542565092151232478966565903584695254625026782298503126872135202608104498056630501134257815701833754902034192817626289840774898966356460301208262190082718669960244390350789855135015119219660478331224279230572604769186301770072515581252523278986682716293279496297511476421591459942531429023879852066101937604217766496951618094299076174569941943917403546073540435256116738305475284804143342356617942915217871118890334930919395690449460706936455343012967823525525957994641606549424683084573797648708062880943330307548983812239576467655459621297111272076876440295769899094236536890581484187746154588104985649613933305523674458997567316655125843073206023844534483654795313697001611094554080859498164452414285068687918072654092242454165421624344449365490641974379585307876760554543162462547340135435721252289532927607038041176439334781287866206370790249981857252681600689720635145248458586362519008412716404730655373952471898944975279680164681521108578029266673794376178748255337492360044235652029063077992679071159339408098566683648907328405574027341865234765936760326614310307183068673849815663238441750003721006803449344292764376617729412313535235984973275868067595986234837645284223337372513820261848139033583627388041204789135734728383671907233014988817699361191345433165846075293687065228701141234897222628686853929789112661544559769962968558756157752351161354569909324915656689808836548517093781424968224860663541498811850609159212692864046647716029925256619728141640004806960155604282004763075969481936123823533671412253684010288179991736788150143539222215327780316262775268203078601079587370615906315671902279565702671005550166602780376061909571975574193590749441944819838095434399708438371460861178919800945486086245682038521150813006085171832517294685614204556582078759093287258750584571847432026983218024818517244648162033624953786035387075313319046653741210668250808866209403272103383485281877803350907958274529897334323612576621369953540036645119907458777007704325085752760421786864325335769522230394311866620221892459691450905794600802266383521228331283138084444994658282183178668077444742083441176583971571756408503017892086013218571558997957892944309875357607456445837480472974248616657026380840055824427321359770804082376482802369648090263030863262181643245229523938805555835259963973092486244954100885536530147960636342989656574880467132266920352372453035338973114924884227903389575925478125896307453561088438145813129785257270002386043684470035769262762519169115947466631836877339531465618768401971687905447438592961519941673114788241631821194149511011030898246792421167433943710666703425075891959617046083240894188996777291248793649708330375728216577798134590502657969478818792657880949289195674594461188007716230569267506969171219733087003821547106574426054111538996162468082408418626516041944851838204286946428007595238083161284735860925031825860598125800335731407913159135545281209916778189229220169715618104447321559195049737034965742772939478113623059903149899785478703401345927303679265387157668629665931601922926270077683832112623912315504373241517319971145262889618812536590244869842192819863149175757838563679585773289308215934425401783065138807695906503477966917579932403677661003272586009933702908706246680004792840927962895515066065077879959281211598305020418661974452290386226669708204617511754833448787828016698481636504481889407791049383123509796438785994283449310415193780431704006269512448410808803949997798499414727241096943403024424930017331581753613558858829898461102429554220792096926884748581918304876557135720479924773862736012705550994278588756606177994082087536916679308883810794930368647655493353463136823265211043565495618916048325157201602609741395512703702626815700739833111712197660898090393617460353399245662575736459944827348760825857600012735439000043210548414897730613301760972058857283769235025123678581105825751740462673324519397084262963112534540187364261558618851870034099726372305053024982382129717167899987812096409628963846456455659622689647000766373226864423353626141754276615662905199272853624044043760499046843111783865073515825561119132492048853031792948085951204696927651744667820959319833527210132775806501944057737458352317790552149010179036996837616281774132914317638664973146824111008762460158656508341507563560000494480486605827965727838279086254730148974914749690440246723736516349545879991668886754507337190785918636112751411544020420356675866082879696155824252117759365811195992333482961985881351089704748855192763587414789128819563473707640409721347629849912324800059304977261541542988972665615392284480396456541319662107845705104010966262686878386056345453214928575006984778644992246965152058051274814199230185841252917552748922757468847078466910082321330494824891201946971767988902703027426240021335961274691941988619937934395025872129631738006245278261656573621891271017141798354576553618544721908725180207390793331356430633309612634181275023853085708642383285997520222633196782119642204155435098162689519009840374433893852607902964779372753755146821032458146027441638753923769724504288363679561834678077832019797880410615203187624438715942166238145850505051950876582013407411518857052131204700324908086800562337024874674282909409430318081074045445661261898812427977647430005963706099548594176083571423009373908459180223471901119218499989410267924772654595353524117553474261386790867218839694144576453784574555338441000313251120023717253246142374315570462207054123532456272986686482531499019770503235941101926891990455415151890033255303867741626000130577967265274298767196087343725080517446256378989953353911738874903147779630902612538412892325120410033657951740454839378237197474029305556073304256764134878085834374947318116069971572577070053001702213504729332562324748575916404233492302592688429334242270401913850742397019471907665380349279983003374181710732309561396305997352219252132283309979641006614509408343133413582396921438748052356716472222741177764216319072322441344963565601251591425561488858175107628678422729676573272590209801448514295410335522909612985557749257124642961044068978074252569348113790573653067191046533879225120805290213132318586002322763945395189665192537670236170477568175585859011982444052216214059760181107606550236865646150595928661339301710612833564824618296719975920477911326810263105915713866520944010366498099485604293866199268049765851915557028988284788042465609618297569129501052418100143941926086566057032882989224883590435839221764703960820014465541037858283410691985708257701042059599499719761465860976118631443492600483040762722767969731356420581316943366306825564792863848332642142502396462919376351116037271776747403546418873792120835382445442923091298231318544236975618712671614921701357081719606773313297790954474785184008817905186653346067669351291236377949112552218999105662248415750410075186366692392348054685311209190656304648093647354847065841980885487299558490891253242091467206589782853870366877543343308134007334558064244368389005357146418126942349674421908774599797320217195093607423009922267384175559700228044770039188152966562763351106937248253000923605824538634145591658408572673279399502669820379993286372330766207118749653000461329853209229265383712566021817386324108047923745394235390801906339658806535107046482168432159840955662411257603735634610993274701907823909139646906418004848779275659016810212156662426943763699558119802335258318509506316674033491253985317397595415491300372995281654480198269117511219224626332675093843811415454794709254123930585887412713927330116132897201031177207260724712786077482651634238623458238252618639270833521424555358852057721262666256586758836871504376819366310903078018249384957146913369066309594263897203136456105504789572964116909531447524882352323236717237362833886239451299626537340273358869569746903281314077423763746281662192623237132965125968765744414264525945191542989015609320414614994305958330692462774089101791506898309991074424616293164478166644517369201274954965159500082906779383868466341489825996789078890954294990607709774072239750120523399190874046758522692407449573901604113884138633461644799049301954901533179327341330226802718537432793661327718069055493112219653048051447920578409510297978276206411762022874408411356147280133212893622536214321095464198048178454094216039983380439946874703265910784165918649376687252128471162610879365898116132625909546451248114511731811313739811942183499399640656468970188783927326562569795756512892650323775459890433294411140819700726616363142720610402694595029965021444335649779996406739263501301817204205132663960692841144448699249235450875744543883435915885779834141379673685316450132599068916250568548197246790654893953878087686302697855039128091348641561685013805083213349629789663578001534290125326396124982818435493654331816086708285658366403763994550548306277611236739087984291166629998064304940116447924367323862310399485965377389073883167026080527387901609200543896385139983343568318720081979630811475359881532009643307450130909756491414427027059952187090174289626893747624664603532829165258802244766963123532843914819375581469456358869864483645381434242232299272412027554623506654633063724742332460428392861433219977058851739648164042385646319433387343806802097495065850192627926210712613931363117846311467126514491191064871375237271554843598535341593500218219519863027081778483832780407926018443814158579514700625530102315535661470270888611270283933826246254886010560203736245371937978711284528831713235940407782698659699755719570004912085662044046108070836524962029012636188639404521540680578185976734698044104081214017492509157759890816125331215004385554369420923779426007559212545404693132205700206587381784676928915604046500211855439049557038693035282167832758906999497093655491446108403778530450571835132279189974957064571187412934757395253820484282803597670375086694006183332734780459862228044884112421691321943260103574316837475038549217803154896752019047336586709155538333819492194757185624868984086096773488514976939823285953982751991870980503473370924432709133039008563397509429973303583930645617957842744290463255326987990606849468688896616082440500852623367352912015156182015446444879622070237139955395500393477303717906933492510816395088656877502280007521783599442326893284013279201691547076751486274514833971023756319964744667100457647650829087611780456468417890369933359344705103701840678650123854025262705430734628872670622994022455979680339797818296244632941877760490145455523415479098784511859925697930319290870137340451846626274386419154591915295315292358077894510848919950171122517063436367560392400112569569735354508179744703291255029753403981258659519086393887868952360581729277062288415702314692892587040475932869343943792462487936619101936767457465353069934875080479255545848614179744323635921858161596017749754162283205226348297903510964742587421490677195085850010768895018140982741103092200461258697205557034407490774310439995309743278042962520564367710647294664326075402832506227825874479140402801494929576308487544555541225207137525008898891789491812377853928346192352252080723851773589860548960034292509290642360198871520632223915536958483065597500807794463042822419379062308094732016265655253981793078503305342277818617460170855350650837748703833608910207550712713578358322546011240068172597958292836978198622450152588353561809993654773749671507803962690103239112626743335477145836537363134396228531267323058970442530967932260600450967405682278799701682106075926378546872678551736996812547152984269138085006112726986783735511174634885049520568089645021355744656740028921619698488806045459768542228310377657265836068874736925713068285678069272673093380890677463244173024830879641599068535829208130911879530715610210678514747977903470918778068313563937811725998190117864783319084151732662042878370019946425440336359413300183700387517693602374309214444274601910404166198194150653087651127586836651569065952838116313601758504422657353760903041585907068404035311871997992762935860778248023932773729668712948533657665110334527359418623577770151708340160752235137053983024632825452982462569866659985186631892915877515212271836230910657722315169012089858928777092102133555642089689973914560282928850575419810468933741079284007360020347713884634847291713664178347452293047154854644874163014482145071280577439985364897047771482742539711614186726449564873057985945561227078291328919769581054221640535104662684194832235230815843378807631734133928106493618496235896342596965376222359742318223123818418394605127094573835339905017903823745722653792454403685308244531452278754640326029366210147568580535572332920019428277883131073302177121954812562809589308923334149596681843804908308022588210540791432387835333581532080512275901406603469807645223153308242544746224798835515938897253558347045663319375965793331012028692676369308464585357478771287367808288685005555850695076026202649047633229742082520181522076557569004247569438147592887537227062614904105088283784966657472634923379759161949104027039559725706856484226577737626319504136760553529710044241287217690077594175693366217621320729249850581624443838829586945055644837794274369407891248559150121686197937969713735037221105045817730589067271556211174745609068023893460563701159110087184283153669111339594253393816981624910126494855693988528277581831827620267825576004520550544923608284200121653803763610575185762431155402963622731508503842317665463417498745772034255896359344861427709027924146208352348164048091004965488790307899032150968365291109401072357505265450395336645660392293621952198267987436597036220944011508835620146947954265179457692213657208942466179254148081300196171997511499035303133905365203203911658290839845208664954450387507517037908432731064849892370643222970060582979051646936265940741887266733291623306834845800221109755299848368422272521313868256662935297525563265873549940066562877175772615553191176096980539811311156180346481977233566015944056463505928323118461106601826089081560568493635072969975417988778420916018889210630359700143258120877545700664050101459916278195130818685009888806395241016916412569092142001545463265080363569191968464859461963414685230393071672355112113064661651713528766631314382339816594442142447124149168004537904511246300858515075927596174483000156122429941270441174761932871535113942633687179579210110369939080715879809549497215871978675089248772163221518279082726792271885529311985055419277954247468442170496605465057195568697198030859438340929876218531456148235396640165302041504686496354691609652357231693752898156239611564815366855951412836587626325149203146955264623454677690957677250144837106118001075677575600227307551892695051992548781177071519651975120112092998663274332491653101712404317213738295391961446505690722344499278357751234235495879977176168079912347305176557931308996109250070851919780506993568435372133614810384259955633812178523930058012175708990168987191574208392589220134339695949732949867469610324120810730118735952091437588660750378322366806294178281379097962740939501686303167426722273603349473041082523385023039456341357161868268223306040319808484615049649266880601560859719970360527977733857653622526534917993971018929169787994726456022332686426869175671855287531534159142427489352005949303929834253896574488405609695293110245478115272582010233920068884680985856704450289056853944876503329385530566410648365051921275593715197587937619921387325779078904020018978545464064649060525278469272248115429567732952808425591285903839410945343340269935698030960824675551268725352148132646952858677168762216392271691150038866908723788942010021190131324309603585996446487610249970048679536619363710970014748151066401679706204216658711997907241044066096672480272949047880803219969834247837976276852160560065050264207341733557345736538803111906328247739869463638817069248687286262173560685558480024148996251258075423844247629303994330741160636152313696433746627183043956269420934082535453374886444021548695500391723789836047198463544700847988045119026349559289468911868606953545573596262122061994825821711155613421044873424129345439916225801464239122293159484696424843477566873048265479485804356271287986662925952311173301951204910343440102949723548867386445653802277001485273360335006740702608221622340184311837130224035856311225438615440694367342178949052694168223687831191369139047151567240357763065714417839192836711052788995017431445215173459966010444576857423803105648097618548778826015346936660003395698037479458577939276192187794419751711949325130946081242380021879392378456047804036194186195240017906708626344179138557400528642032893935757190845105701419142012147142525201922144041836904491811202581836976297483231088743290855967615248207417548934580342190012083439761640678818636358560459748498090010899900108867089789085805613379367126772721024332688487021832900947484724594401423096475582416725586550966158911984361456597870470921403112827534482731343637274562448370931645214720607730211151020220287084133791697787941816766392911455689859117844892396718513624250622538270107544324875482972866952880736306674462796418128793309654435679043515205234942500968380345148454401908024888255260124808992820862407495266926329454435078769239459429378963005633893136996419834958861455262592833211847169184531546022624357414220571615752232351428107711465904469854892358679213521159289508888424599953183725741328383128106640529932735451514333672514927967186862141066296337495964839239092416817986768593160670847123141503342730023666201623270357543166496936950360324902196643187508124095313417814467831025136200368873345239995093591319744066366919071310502155539996915766880993366654989704529703813276542468191867066311467482406568201882841174144981739604048337255994199022415449330893461165281610726108614133143054761437615867825125144831617536550378288321826019470514147018715253047041873431354181883499675880722031443696706554752288043203663928236542613583020837322617612599264438838333470717864878799920140278803440230409646170087956549853240227625678053357594204172706718404101560482777048966159958489620111839925053237703558069806708051120375542837530611144418577669779397312468721733944463183502917646899494124097716703640004108578928636804562349057322935490662572644291902911127564103863005455634213236004688402034963094873935964953589262419368742490249709985102868553652539187105549475684266145940799018795323444306849283463026501719096363621837927187353685022262878146856468930498693506136855000265569972120061806632135355038359360073203014594532090870848241284407129889853740378317189612144095348435850146917070619013471990067263485094609108988223471700954031993982235653499228960682252992165714222101337854651746169884816848816621202386176587442566574913378881639978572788831266607496435249632779170042011862063827992795964476190752324009176221251169208117859593736100879545099179206518942104714118338745551949344687528960964073742692381779180973736423960635179042462188511869476537776881452125345326981603070439863880889575241679219762918504939458389287905455388317853288340588900619377618509498858770316806507705851604364356278417997029130159244914913211009771130359481866092968739801848971982904044705971943530451172130849322633992543790374750895589031248152755772072362599762460605130239102595315838502842351821877076486296973708473829910970810706457763255487066091581398405034484657930802269794471761948941713096853399520632006666727161860001651150098499949150135928333390594465537094692478011382779576895409238160626287424160541943313032818830132304753478599730332555427991683212401104046093246104827072335122774242438824590285615882030984257867273001399418358315993230116984213289095089874557559956593493679155723122105786889403882554933305048902796465078869853195065363213607415364719761708480590307382548594943441625434929759075497400847269653416138202193330061580194798782240666196472857623086504242698507633518125842341001971006030099598300012772325068184927336644679860093712304907570042042764493058309855317954283674585253459815604175660621589998774631857523680430409027278907316890676511947494258050656060081390703626014819642749001625023935493846150530017567234398126964381406409054320488329985280707817577032650388424083881018328911020488128361620735376475803175674168903582080866346805926128618620955819507922394499619487342062365702817336928465230507907030094836932794899493468780878902871779798412486639520735368119141339412736225000757896077194446070510157852323684738023956674092217569046141556240695438576549498675950095425457642455835418815939680837169685276048300641575015923355448964503101354866794797595059830551928839716377964128157707159129938119497697087728487853395018977763309545653540017100724549050766337963880442518458901811985544354175616721524498119847188842156165041486241959834825743598845542831689738628236339075480916004406423600083120560481763299764324317522347269907103377717330349635621711156967353394103388556233583761205102049261263860613623071248323175221131116835437773257956937385865317012989571287655202859018409115753170462162342072499660724211983437301488167300142064473668112767341383049538643634946637698235144800866760914504879902129646544443609061348142564992609377849510786947988230315857291045659804362144408689978494041998500026757790243807322393180733965681642727407878878305077542856567595383956954874930957721965542764757903189225033363988570796781118956386889807799760643363692162127788947519747210446176746010159969366958790141210559829464314791190573576235559807034729874890175338556027849983959117817535062226016285569251312922777508223312546809581023904324163100630703665879744937816056278914241249978452062982777554030798651019474618088386019651788128217364693133097337227103922869284801909351933481913042335419651876223780551120771479466426579956853958407450331982243035770653941724443697077455081424027916619046272090823283876374432898943851876038694242427123208029106737856198469447322869572141266710138257812860720152487970670097019011300287570201657124182699148328634382125811102474778176583172664427299181260937572040938924557063909041131339576189040035363368327137751939633760622716564559642600328308338441701314357929812546136792688771711819794446146706635803947154256913273238967401581645078599211032358738238173014303895654611836790303103358011932566660970498856333208151181118040576616630349508137629012744908959707517733477805912287566707529641985185117514925372903001129780073764820184629650680024404967737636379260202367248803024496987967917387313709572747255614667835624375605998644874161574339881907542803985291052766412617629587297280497288491348258610990594165915767864856245271775888616685204935394424718956652971480695998966595499162822806512432232129463243653296854208668417838607939403684598069656290392667239513356713972494620573601798878953595788665671648998409818640048071890688252966186729980338078065647423848252517636973942082668949552389158710114584626640684902218069846092335224651549697937819159833418988789129270530257646823988708363112266689335518007914893980289912240127286286362009896355641711009033128789889534761307433750315351196269333768770328496363301895035533077709151314134024779078286815878367314012456596355146290033362710016812795500471069111231208824009807514140071909837232801486479593675484261718467547341213462725674157048352625166306861095989584624131866825746666345618186824351891995803749525318759560690499871010116802031155053798224742675230492939170804872254475558946212160975323426993418306954485445414444561781604978169518381895979945741912384458638601335128249126781276805385660112143888065480498755152579859214444601914006734675897191984694417279819115163933956874553819650697133166926048806005203895720401533169530460704198500081377244678059451423285348298794181580435991385086666311713207923734986726690751669923154744725011891770788660589251641413846333557634744131640693813570776645056756991102978880977624438127112443978970182619581094049746705908011889862999161561561628149202915584448885673232604297143852191770174502954964782121542520436300423350183962895749042683318497188464371216185918402493336751971081807402736343207217331082211130361191813949220313638552066705199514322324187559885802158634714393845804419967104635748151286959381109997157906633763132047561249453173820375145353604403331217063044768208000303555156081263115903245469131538347061533712718448013769137678004159985588639675075977545083041717883283859061872918218138714959278696433943298973310171999128230185475463434803310672272131258608640334951369113797703012586802300877752173715252668870266648373508788290145135545635313972934510219839681089901225649124795082440445025368003462534633500109633068575571219442451848734900266256309558780354957389936865940835157414355557350510251365925032538682120498672987866147083381240453677947737488052315916312433778576208693290411715723046179403410867471371297597650831569762115651474834789717335682613536639737334487192813687627136513900066737068935920447175007675407321173617427423742911404500242530266700092245945868880412988545712861223807192080548895887193508257509297968507588483515129900001332673001704386084386195839441539828510132803035148047741063506728315692979670384657040523451591302293250007761182766651021227370753756522818379314133498880754380178438875916934935862374783975691691629312360109316160252715155842430979286104634566457905238636969237370688471478053131063151237480672594832169249385483939579696057642697337661501503795826978340862889555866757088992941273100877733584541430341877123941220641128212661651622595458478706836222770249109255529003491708382499800496990034208554305113080969908532481773308894158418434378758519734888967476768932527856101171945988337515696836032139036412874092609948337152977023882675597448439228424990382002632652728299434263746354671776902648454397609874216262354867746020680188831840445046044657395785050106648879678237790218209688962954331152648807040341153028494037977162413518099610351830723518389428720855683159219608688295226593678984233656926665293050298018025194478692220092901767322404241361268595646448305213595844099035369332782086115812427317140972725635542784300888748659934378023707768071451344170706887668440448433328274655180909257287533973952124045746661285429526834333552057547200334653098138636704928335980924956495183837622820894948408411574526833265681871057778115065185164849968490727304991708559236503360950853823667081743164846361979095435120251271426718476653661592055050404643367085131965803774525784682673476509193518985615684787774067810387573275793797658561245147879362598555274776297622515743652363126445289348835661433661956438329587445481339402457036904505612479679254547540611977966537202310258985414655416591839882177100623286272036356391441364338993006475195309125234274999684091822367355985046847738460800254358953820648588420044806110732661145393785003214483978088258984708549728351107050428334151575524855454690206325364537840632934336210178393456910019207622470022892053999049462912325077660247315778179932490403782462390682045051180639355229170292534308324988890865041343488785505516725697981349427697107551497992690028870343615382965905692417526577779449708437609562098420461121851277679838313295514781279585612724578721233391302174473411047884519045272802411888902391983027158415974986738455421999147644610744965244906163106345823776275957142107021058960473452473128519854734365121252237331396387494641076595640878381323633887487950586868619665534393067985589053806803094521559109353532647857175823890985923865609242472600651668017253430186561383996333042492597891072774138459480118337147360792319244283257370139401536293116937090590854931371313228670930469197968187474656275736769158056671555277546872144769610695482825224818959675614739722594629211506513163800460182217470837008901119298482117833401758520684002590390774088163008494743892422197466351625372518600920682697906484779716626729517618699718813495557672215114207399379965912726029536538213510452807911385566100881583725485666680374950434806505118820791332823491656604217934661250218847695614794832845961446268554743537448369749273723474589092801476896775479371815673682495424917354952339116193719467710413925532201069633380065554612197141098635140840971542884736770569621692417124901824886252270713630835209157359455088284620713722355359751684689663501015457833510711707601289579006152144924045052602448281061488255953284183968584013941844060883323671704020617162819722764837299329069618050031907671209755577456298505874045996051593713795349557835423475049045143732954398581982217683115086031027771148038993937390755619237933824982398721428176404466442933923657568139456087046247878793707328440015844345641403663245632764500314839164152324267289567193175869205019852107053874860189457489948928313473941448362709637640916520465125521159769766569957123924708832950029568143034437778543845304687555053123844745072615917950385511749335764667656383470151095934580103443335092166641524736352811298832201375109343858254822389900720052629804412824455583529049646731732252113441119769130879863262585645623131254884051530992346724770039157741606893455692738148370883161123954991945772366212416844163214282322644683367039895929946746863507361912763949084442486456588283566982205807894096421566110970247368727643523692500663275106796042858551330111315932083649485889164302735437916811694921136449289550914686571685562901054226167650259385482420172055325355817477436549861492766126098016753668778350802176088747897599259392803516925367427269638384981878756473453612532298318289453753014008565088347333545729693493070747249803768806057731811858171892713376547644221943611581172912001757343891168230776862335629377052891974781891677521771613933194486439853228614931169940467959762175120812646428334636057410828531631198652235210859370222420189389264373008000128942606075580216927020197492449581978902321056164619620706219273121770108858924240896295881282366903201822714490717478974417409008817881418235823604379602717567559764842161106090319752239135582456220301823503653930436345802220474178571223366749113197938201833832477743365561665639919213784050738143165051914306681475019389853907401954920388048339752065469791474279338960516849330294852597131588949410228846015369444617825702174985565586699973001264215411900809797234508997587311500323050777644226436094118484768731707518971478126067810040735807880522466646463152757050759347876396004735879639490666926460345625107391005390903761805456901883567907802564479035255700209996542842790510233010329063302784262041842815151399167648754934786852939178984736797979719448352081226883609661230983387619808100454707536213616926439636980119972472753083426068671596955887797110085758624886134931728151646257699681741287909750668577355495747020254011104820717400792713371016561832517467807887474862857898156462048266647391756770263293084063646077525356764928284680075050323745497604069013571818149446117973840361636798936603837111471144043626585572390494917374290841282565761061029881981348389883806686633591391990149176347965325929192296824634236031688814621325935457779166593257790302976659698667902786551711822487290579803769634052311540863598431263511936061188436132643251445406900548020672888783099424074626926165198714054583018810670063526271515511382052904906851963590401644623796004174112394566282030929392771715186244950769419833687312330394601401446431326924552329893877771471837903514727056726268078565936160498205894747728980478480724891375532811827832342714702469564905079957250805797178445588325113576336970865794718141873727480174423399948092572237463585255848378956000252123358656742590828921420408646060401990172481374874073317343453705675593707775359480924934748450005621557320546050796612223002691409091014633156230101713325817707533538385082011887707852825587495116950830993118988545179177846530091109208580842642689558843877488249185667224323609999750827808192786424068479189381163504821501314664374822637668731945370915868943191228217200192249270870231923747796959649550820138316196572136365993844998684786614101347585578593975541792197715685633673542399335869722321377225990826597055714402142839202377449995648172872456969759033012415270100202011857720548450897569539516050211211812149411316521784349434056955647663780165110944735622165727648640017422682565680518664503855650631622921731374726059248096604414046209679019485687348965882568796918653905977169053234459347065426981353939138638869636048796292457448932405125529421920606604701094830557806381744755819843307500222088047910987277710689486713337810016872764458593771734319975029143803788660222342871946005916189641226317483840538284108509952429319953835485934687489457984746633628082410753906683137379797497471279503581427918465478180834196601219868554331643281323309450198293181892401871421975444549696588751898271830161388077390269166173854100072646789206835953969492949689779115245838203966719379375279514976184766243917789193517795961406265766747993101682588403050459197408908888400450918535140648647486174262723853966665930972569524377982204364187038422781024289828163616391795695776806791161198751319782113431724973418156475668912478386862767566930100049762864419087069028312750389961560245635559260851506696110033075230174817398318515606978763744010708795576842361735569712100698812004768701674913098279529940940571663900590454620730829422147587646198664444886464891166096523309576524980247765505839363438959355293197784195497734952963899660870371455614233412708708537265806774487321116807818520079450080018238075686824095672770967152099850859509405127406941306227421855453551528676194469713331085799663854394958212333105629857879195823922240876321796302602543017864208771822135618525212394961501433928390213048284675924862280040329135863624401334562335277415517508119291892649860287150109081335280654459121915207835691378022453947032286949685505064328084821231373916726156960744024011250053811615093597833986184631967150886998184827826919965698078768581454153301686033182390862463202746426899853918732487011190040980284709365718300778720745290083245311205759895589032340743249854604430239870703203623296511922801972656225197430989691591546143206078656169560134700357832950656705028664591381108006452301063388112805972872383945818753911540173185752692314798571376904690190146686727478092875287980885078818699341378027652597777393977935614885389425891627398378795983385348644012309317116474137619860164378838217149171171607882604076747666395294699977445090209295771662604348303906855150511129549070565429524892149931095111559501845940503433198979211464384996801115855854068227385770195035497988826166529084559571409084138314595476809208425992304350944417488375547648697930508725797185594774860086911253359001348548333880265488036869306568465499414318669109773042265224459697277933990689061377187508001133472165712124403957138661038953461223241688809432782085488300079098283309713946962721463556646842359459780702950460782890885673061713480590638559363957597005988075237468015401873951890031759289404853856887705116203002018404107892512904147163576496554992575675736665546741939771889893964656838279806916992006826899386270230254468017712418566024208619297887791223060310536917579365624757015212848564535646007562175418897234800926534829686564447580309033047342050843473106046370770155671230656387862952816747328950019633321584191749901498959458700423537048302870500803051418820216129363268361305077265899049835419047569801631998203655327030499604981433827933969950614183544026769518562981194237412689058007920604740721201496329774369382376163997211040198689053856994756367700883198684902802641939680858821195814622474075270924560363518577925688156970745743257078743070516335032845207676945705920520176267970511984190374665530442307856812765846478016609342539130580367491885250325409467744244143540447343038971833151013508939371456520569454266348139262850733383756126709817083157865791944567945064040495880848867436438803006127990220447735256511257583958078618202310672142684897282961889022053478092547845477645847862516035583248015500528289070011077666689831476544797831831847578968778775838421032643326305623459162777516521953409098396000802772102908564800370359469300483534661132143597925867867013227737063341031500589609180759193563958859708980144575061602108079202997247063049107881057384679162631466105361834354448684665578487791753104546129268735706214925419877586731299059275527756379382032858983351608786854351548563717960040651965531210431537413057658871444007906559973356495248909223451106699878706498106130743895655543371016259951765631944532332590790738635198377273547814148052343368182121620350971127381904222899673290830758658019873365076557866433998206942849503733008001236973285214865204069425065761035711901450880632837460677146325233276322601750436975622010877842868202612774675823138314171178736515198864754763753080196223032731577109681466746199814408977726839232840030791473835155924610800553500878220005262159507681497372606302525882833168258918143352606481358202376166292645676306760230242757091315518931582912277148124365501679268205157359115834345640554522370045406792027989297014713901320850208867148307747629002108063825556845968927038358262027163669111362487190635254541386050468270489725546774034743066504183197302079695956110069943856727229298859242194554719099394273141334048649675943821037526237566817735040788090305476527515984277480494355517940027703833603894737398217381901365972650753716128983384005203890390774425714630563230661984239609772033876032697172475769864615109807266252269395647890306196921204190481244457770593217848649202833870303849429699368287746281848503651364443309215931293735639826737515651443694163559029483216332005402535613774362305575757341929662953115855691527193501829148842120871833317435234818333082499310980166269134459128512218885573314863129714738963391894044726844345840236938005703004651376344996158545070804601295273262408966796691059357131891868536922269812330433637543694002908687669263597076373051571181013690970505074393338744985165443694256444926966979781998309770727045587851978591923663085853771522445475903010492292532194723199595236960470157625606124444750605205204370148427300396862961310331132174849776381944845775933820533174276501956349249523193899498370885596380783244860776289778017932889257137264332134088857841828275270613381742942299347852461008794648510399647711376594622640681400444930348725363179166428118749715905132057913036526081146844716818389395241967873375523911032865978075167404837600328103733706150970400235185531530972733665361637454437982447199881035906618803012533898960534932146658816069608050918597859429572636731632916592547244246990549258322811018159546433772109460598068076940814545357703634040619652511622488063747384687516735418015602177110289209754390382134727048801860032881868753362184259073024206554790556851888492154492324536544309335949121780500121047873224244648598175460860952312687238125938746070489012841041366864507412051052141433394029154588444481781660335630808035586706084993219140405978823714017973543343776098677070593479216665514938632221657695189135642933689626909649607010275597347184289668645706316401958363068556297384196470985107010672002409141506755511579072025730039189290718253309119269359066115963653250714384394163150980422618788169384482472486441671527010542529740674225446457575887972650752192976789450676520543953638714223136133397109122647177318567509937672639667843889393068590268403320337381410708623998882128168442020154011495889772881636235474946205284880350077458848544616346438590370814345399950501504121437516729167627883261037681329530764233754754840876911060132241135569751668865967910217435998987458154043857686239341803657385952920362969953335008877380524219738166581607498034820848132797662362637760310219684557294368682937376390063853804111400027456389207260346615430664689705615225823966181203196821330065654385972410100607521729901245574908244415199999568045754215929465463740161427889060067659299114370072438415150966527429773146436840835168150136434249594880208345554517224283436511441033557498546997683316115554743243252268660530286760001372263332804754014157863840446268183003131390623068798872903520336873663361915188560726932001042574796332267448556298928429258556018342110285894607415081197745373230057934190375577152093546595017740931859447371749792386068448035670080695276806375873980052535680282726882067167883858637375965153607918143707597136562698526456636849082629287776862572832578649718340950703941222963755768774170255914595060462246567406382931397596518655147493749342118538693863336463268812196367705428123534322574834890853114931877218038162260834079599251083307576115920534033023459421631961870675327428746969669729346990021248740350058426094760316049534341514563206652800053837393949333515425393704343107186509437082311895431874723453928141231398382380222337337003046297021345062666932056458990653526060698815697767345711808464193057141102780118466798720161143922152645258357325557965347447094995807809968538889619335853123237070594077679744539726674344173079407460832691816664967976478771870261304188540512163906749166020570996897051762564695868963601145457590055999828197497372441952278221723626120441895227687173465643268029530737877226998400751409547489402259843380429754805091192554078914746032266943916937768597239390227229249281600374429752021569881240568694112174318310912481254480887107896432738872684962659550982759719603244644078784467799013146284978292696388527807031836924913766244706915026266198087764774587460404027437725109593068587062684353966208697026145095544897615070510192030396265286984025987080217696636175000746137824804690355109703223621627462674658888793233139641597378156092176877291644135029942204666491622805087659128709054455695193921553758119902368114805706406605726639566663248333091295394246885143632599775374674596025192211656968548122121987385730238843805353611253775632500731187167195812883841503698380408946534010849661174329721911585667678734539102054023857254135120350119475305518737920790628825415980515586310283941363470455030908375015091066982474167773371895715597068020332283472596280395068254321515164574040416365105487781189656860103461417158109940492418570657864972818029667297141240051974345152926644095759183009111270253530156839097765168518603991425975816817995628819419033529541674069415818733205522401472457452163681869655703382316445207140831865000773673454493621033517357495687702483599405949243735373962505647658496519833055185520424797136153040495092935098599345960744544942491032919121897506783919552896768105854602096214594464387297895123010238005862526097446720089168222751951935342664753005971050287813347184575877620761738607498115263732089347103372263344441539089056779198838425627458622820270208597860190976022326685073464907203792152572736289780868519247963848049684816038698406752625958256332054445698992722688614557382147210969618811486718459690167548012761376065863616506937514820037237636790234568680461191457362500461549760692391245484685224238354019776060515335433698903298315915551783959566011447129401954107136019879648759465245490247911451287198177296825132604593656602626310205114687898740648795423183013112144936498288245674179329847365549057447379768262372118965285923428297472127064309766675837866035861904997864968755193207732832220976194331282178964056952771850315645150772023443577931954616706437562127276691860470352689960917134619978733913171928189099922977049540949513367448783405632275977422135540788318528840026440436556272167992492055850335696548586752391843019518725888658357175991594048955620296537929095194901626081242353709376085520592567739086781900402778493960294607817972824356792142062640685313360253286192863424184388941855597254548100531909457580525149373971825883294470316612979285519187693517106241612536978674260542887984378223278533580017462881089378091330694999596899455583347154380537253887202069197516594512092466767752123805002387845945105212952497343895275827635424121040344945509591063445096902616342307937927200124773903279033083475784674352056354719018218186077684590224099452584867376418542619600764758950421988809787512809202558360328177771510462967539132772867574926246538343105138702596286725283712661364773785370964797984863860085675008349740763976887797282165467349762965654046928820852914516410699118995134661913774681472416850868255241550901238434726840013989671959049466002073561588181168596351421057800759123313325220856664224580331250774453633826752075408555297403501962241896421774732331947467907258698174589649960260702291266517486184092183303840674513170740552768627998476913583370454763872503093486831659082320402776350011687544526905946098592691562893184531435823101619851746277148012133826584590809831412902036404893455529904864219835663625984012507846814400324722006728613601023057832846911251810461218388033545652926888767476571629426070251304970975563262529765427687515829322975862197888381089810987604095280412907138230203870290766490160031175175591726077060308057675970898018190514337833671768708637285215492654036708652086308561076959786292899823714698966362742679707288842255946993555254835310481573717150968613400997574070037490093002595728988365179203885980178091250071464690894688410553607550677905267772352006291440010444961430113147582764548577354555076233810223709511868518539635396899122107188252973890038477232034481617118055448915440584712335429743599009023632493960691892782758725191634869480023884177418862316326816678056797584139253338293421377900295718579523219055812023750122942632727135347415192091899253169095529548113633997194819808949628937748727625880749026282013918335463720659953653579784978544694279270665491733170045181802150371548258272726758242174494380250959722790147654078565501222396620751082105762348817155528817448190931266942578222924621337615769081215200339142084574594782752851037820773847845361828344508132661247340986361593307435661937773400250204011017852962314023170334053771584734644087653074286129267796981702692733602943751437040923945909691905677192605283657134706704356185824204491098800507043009595397714126619795859278398368757173641317528072920861961932139027030234290887587735208598999189010803241303630398869890185740492428756921085947340627084841888977562311865716954073874896743736249942719520443592318770131175113816423383967433598294410409152295288864088247623704688259263143426147396617435317665517238084959843558105062305955338721296609169272875426109850330229709709516393926343512727176299382555764963142136589627917385860820596705915215258082120333632349148867363938368256179707315257808492027950776609835269465145896428483914410616813032939745355069150139324898737134005261035307910704800432218427040642589137380361589227442477559507973754868387860849134247224460555331772012998008217804120543752591388491350025660069180163047581564019787420796083363420219890105115716375885673996329595962081863703091174871691345546865604799393862076339068108202544864582090322831285068954795917708321898366856534428732257347808267184195108111944386256077816046983746009931021192520658929162609607490181569900375465043115249427579449211335021350596880950485392568320019112087150646493041346708334247403202376982673364560381022861536065745990052441804485948689598443469617256476924422311145130463066353530302256306358322574436616841836937765755392245995456807646449795123595858482754553526968815239236440322370626902521420663034927299278444881345729224188768850239985624051206265807129288231399245012619119118838505515336275912624783335015505271912746731175195425559044085854784464635380769606182793380494370023566362765080046229497865233377882143989493043919909390718581569392946582839213646561453364643637647302045690797669487508725093664809892803118777079730527755312282385037400440107671677477121904151255649484000556427325302374449147004295280091377388069625998354065696345500597321446134850018278920206063666912025574474869829908541026958523973871414641793295505177247421852703529213287450329921093941280931276994664256696175355366451969913999685667167051653673477973809943851537028045654940979888373170091185105632203412902411901262542693385109072468107562446353256964019868531603709152193622253734294679624241335456087519539441490083469223202449993119181588013401030733497550417765200803977085510164981255560055234663282088095225096542039831061971642730587920593884540186248948803340895784690544210062144972729395158193236467990262161901504801209550264706787009991394983410768522007584955868438687768407612273629127266231266794575980977009352714666701810319401516042499241227935238665276274095323501448286983430405476964516259670716219880324842255284267758049463060743042590199599017745410898177275752453630508414151361856879408950364936698269363388628213200978282667479778924786016333791996645232259872786255933774082709918238593286281692500217293741370395825231009233474955751096139257175038525313764081693079439357354063972633863365522510577028739595758007577359632631462092754571749656461831772630271707419762591849707825982855182171224484417767016204673996001525320656351147513883912041015697441976407707359681715829403139595073375480384511454893438971192135696095165717868573550170516770394585090305327468898039185217122882166310322760337842050966628084371647284933296298314047852822327655193393440533726196799449213173523535764145347858735992340153121182846189315579842668971146400664093140570832324153383150150988676182801086467909333220513269695109405011308092053470943008380659446964249304194153807442084517468377860017371013398834625607287464511692263091315092533575457637843694559686362868004924154371552088314914852973810740089403207641143328780852068922667593343556428313444594107090082483819575812615916756792265653996648899324153648383070124976940590380340796879473175053408242979045379652821197403021723219448821830714362111296780187912516485030350595982174555162843654753794307853271104812752926528391961316846083043854345316663135604556944116822898722338940679514106061468878731855616285216121205622241546324080615308585504261183115818180141454188211642871442478495039032136270521296560813634476545468187258000614445083593818192981842234351457908306771114636770513600079678166445238603417749961112250353547774244997289013595528330190605355636192639767866696254190165888992140202811751871076715503070878654091174124602345755736502272299425946608764870859728306808240902458204202223183739374668286201921091554611554621042726282259169409615085328824481207325947836277652464676996461494058726205073460129579775238155768729169053440812870238959352287281616778026214074519412089408074930501484654353105466126873855461786968289621223722137375918333127278821605756580269715528212486153490300118117185536572689836811295244471441830242460823519342740578192897560786446699630681864582281622663025996211914638626891771757602702232608236574515193493962162063868802780023288383792193163733263678720097564214527743861913792146476125191039035710143268746641937821037239249670710457123717926773771083549771741894735018577790641747136360104560285919708047846414296528948276285997858007013913879571052857821625022213828481019726765620626212332897156102038502443166265555992695481526557616076168639172896556223320577967079275466603823639021595757497076911731399232401001387720226827013360762258094720634778207487366348405571205518611863291078249928545570438999125930459757166741325500842796820040250052433523857062254030212544089270781133672598223135247480687018972094269933786976669558256596403611123229601268635329335575875066435152997067073920632477102875847703589671480870952173385669211541033117764706999282003686426349268206165371635970986086239744612070144976353184136094028990357804802539864403172088535155064474874177615066781383143210318688967571363909331731671171646944393858394122292453346447754049301536863713639319251075139636970412153119421615412202367130227045310372958344500158734571948639062187827106442232052929014817537405672511658472888381669074418397656580570669006339319440244024091022385363923548565949917088429257157906970068774548633409770925874233509497785682958595671275046375211439284037962013046812640203499394638632284407292229656333003145896400140853836978548987466191714846162405029442392030328169135091287005876107207746052663138424420270242015613730856371976998639960193394817562704616496601670074754831280664329449235796809189654376912409267818223791996661577093718290746710692528738713016738011632878396082555375597759947733569413493081245810062052634084248870570079156266445282896051944602197530786405673903949245453015663945142589589743178608114632052005140909917591405970059343470078211804204345257297921102766935327538295978589230910368336191233945817609991709933636184129263704159551619875601332088316364116971029469874030770958049435653916018840479283227677633016426073892622041042522206443778647981681767745260932427338464220451193161458585993665824308212917755781589315282065076174346770287421418319066817621399089410063677482719955394775802463567353082450211262104744324785505205738415731445086915433257357822049778890988565652995580447148645030659764465887429890989909042256474795003931855067102334598724480806005237414195171075715147008216263553436516677085742255478031985701300973295502422189944063822208711959774555680048354944821182912266003239959661810549161238256003292244517826442823973118262334497623340654024394561836944801098004426176502257153296923032797189516748601268240616177192366363953672599869284930130827828201282609181940797340715546816138139565761453955880542982542889488342782634317602802091828828860187781051230611293937389341153628477530168035262527126523746441106153363453943037946271694480398969763468876843320390920557126687968368263306396354806046017619394872469155265210618289662511147849180072271703085354420978398423723597950278318409379092575220991893210786230411981705119922651428937107106380498869410424030941330925716447774741278784694691514599852686124376933701115908584781801025797679306549577543590215714103199350346200620825371214199206246390386953403459946575350317006886759611779535820471632185852633523759634431913055389615112523741553871074557513202096900352844387591255097161360947387624455395651881460656003472913151073918152569658548814983027132417241107713425333749851284237024310359426549446266977778050868576365298393052605241893155255019015334550484019588414378865945302121480824314518600492989865572123431353654978399880758885712065666296336999270180765178645942500346250103356625444289039990489953366201428980841156410977724516747743260408054678369926103498942550268626965314118652783627499600498207684076800711112071851403690133583522020479678047298657848257368114678029256932148135343107836846410877035807100696164464700340884245276162781641614941682346797941066053319093408651520270543178059881559357929352969725201546872356157226133042790150490128963732185037566351152200434699401005059527553860128142704067146238920828566000839664382622019734359891639082389713177918670001524925208768774186445434199917089921465288208002644543558094998369762711858114328564969712440863844326726635664443738928410096273646423232323398539965746178547121655056470479577151235425236885090173966440768051737445809756370688692572986828651046895833695162067057352055624888036649971618497069889666897054703159449138473963480269551636055013459532992892105948622745002684535313516636607625293940030458801386414307918128361150073802766844748998981088784500927380885167749706622203526537510386835468452885549841557887439671391104707576340009378254474960984833372616071048250504181305085753187131457765830637967330582018729800371959846524287558521561970246531887853136724385490837038862325732603492758263970932799149026993569387499270754112129610308983017739350714097333949722985219569078367094013376503478633827939370809585559731488968631754174020681377037995737956820974827338241306606438041919108707954702281758509078025085506048591843953122066995957720429355898313463563128397043466092725245863783236218962723195799150594960594617965859842481408654430954241024564210917980544967946247932107926517150205916770037195503232271323596910551874034935481663180756143891499047087841452823919292382547830072400191615923379993575731827941116755633649470028154525961252923185192107556447042985747185937649279030160148421907712623479976603420858551124865770048015269351982187839224887758896006183607312684543215801841752480774192672766797213450926454916889117400654573385727036654812848605557980555081306181853855383860428650110441652986164027680795715609123613926441052592828434278944181813250019234257827694894538091488117702600453349321443118454182081638891132645344443835714640762753918573369101313718852990260517171360465732766724516101006520688334181625382258230259421298335812217726023922296263795760298134262915645823448246520167484438422970909370607593067666363908226960112244584985236278092497669093739465070411959712154843699728628987358651998731437715327697805685367317041083835187199012750341363130517757543926404018018886561522766752737255361444826066205868598912741824564028142361181048030655370212796360080650238867152905637958625092027161784322947833375135232949146401842031338996936387016922287457604238794890836595202519197687756424951866063776001885618510629866627688756662845939788564517969345973960245788987331356343098646365036971331580365221265302682396330988939676857638341095429908298194010263694976985688787563431851216958664806631300505996124448147639718420537916236211491054560285499512978844534778298502208392264099142737939942668047457591102266836923108808930209835046486469594761031148596979300218501614730970033771294155444054197202551643349810214893668708090413867774538879511281667146883313116048671546507443898549593835346425916190006736987862365807006093926983815429755184314306392590751469115010208909692421289377890937299574269056898969155566580766148870416812167237362096086798669591152620428999334254334587531468448239407543621085712498855846725549982246340326888599362981507932986429148201297105373279837141858528825853403338282655146725573735527518666301796959586676326039310956828530558715795663008762798004640845652268107665672288399507089969064300937870293704819840943856630965967265101566778012328227775696951882015259582703285316250207167378202752310970166102469674400203585441640778861173436330074876600820588119975429857547920994805139540758663310199533664581901374641446695739058895472259219950887462491670883152931108982516910659325461221021515713627412629637188660448412642457553278623312918284139125568747385932357700530868181186930157186685066830056388703056503095695881790151615067107363844154378666935120238017403028505622371474397392493565839127433505620090149053445609904718280422044578952895341835765887046893164072528047295370215738405986624141642586935341216995585087394149903299333000116321334369294549963924249571818197341230197088680901907421068649402835921840389969820779952547401140256877212787739829673389936905277316256082011015923878626585051833632585993227062113339511632678845379888283517955337729441971035244081343413498303262269961265638465433561304603783306012911569360090905375535200946247710221855122482837545391483535665905233014325544168857853707862967226389395386632591373569899753749818311124495305195049947562682113572949262705276576434731044610027468831774222564818935778283158500528374515502932083670816690681524907627857892992314203217770601820249252161510148568967710343399529237227907032816295238369818360359609634650143183425852442255570312547802934683888178920968397964902679100376120576303029742784611544630638157017161403354014607414161621967123258180373752044554632491187258840678503683747737412610813320495531557412916294474304692796408119846902421129385703069386708572872895743975597765762664371435934564004298064401086593935687836346855634323082356002945454455517919327169475128844594284182344270740888910458371713568212699988870747671932537609209045211056384457894521612953845755994178520882563545581118415987980392476603235448709939966123079675996016104906918369457751801977498327074074161884944942022717917834514911374447491929904984336700361512964144325657100637681531671016727451989766462345074690045340868496937679334427918460908101683577142817665957266156549208995081077274238457261064711411636234626495163638308570326925299916880955951169262568279854122073519089240917386746389189173888729801834742712496041440089560607308832657529524387008473340300354155686247971591005287863035211646673152749907775371402043312123375858711946140471930795675231021765004445565544549911207891127491948419670073733765852394380661648687197123887482498765495598004062999204255881610886980703858586613296847612044008584824711317758320249992841222268884635906249585264433005385140921986529700580016346009385847475752982964639928708108655715524022951140914683908474459360690872917505011316434922928697800956518768632988463480363200991617683546588097677833847806887523500649961311933898132532166645171232595910414518314771334352261502792349315821528004088108331381228442882961524654610188409871207345736529715324208736685399997699161817366882436089219346942901722663058499484924257405283587947115284766182001867621268250606351036720256904112908419484955761998705790893117248296644885196096235309056849125230767983411199800706508323824240764976924755778247491031457938939556341496274763774415315597333516351983870840599255370604306413191304259407220932253233613609426502187415904378648590811511816736769122780963931165687991936186077193940838679250120503436992966128164486408929002741611044338663847520583605756622654906633135998456560781260402126991252899522308031317480563492244733473165393422027929131481382315583898645807107495990819234657571028264225885894911596342458504166656146533823975537241085855401508969151460051106896998826667627905572263588908885134199142150610891069688917028025137803026649139876545486097557425801581582788391436457840570989614519213135822663410363139404258487237162711724022944395705427302408707476611795148554424357883722334500193806101349486898039022256220020272220331013724679552914844081981669693157643723440476497260745200879494279569890012580040839004764068718844231508651161213733581544020292105375184543073029513867225299448770009450342749722794791319608622393491059310547156295590654155555607456087920227636298750902124769471074359228345828526953055563336837129095127765588486761995395032770404036884811452336584424619135016625297422936385193700158082948204101021907827819806939554877146230394498742269842477001742328203561899723171422599432703204838494146093644198810599933525234086910888215274863840022371560125483129811192213189769785855772432208930858056841503585789334334610629403402867754889743386060333821900329187810059611951694417270870524878556739229689913836526827846290064154378115430172266580054457002044544565761715694167363138278048794770418798527646855751723678550989774714924883671579192182100158912192982768593282202066293819017809688567332614543719486095523275098610260987168084998759531801948370466349993725256604526032205145397392835393514359849287240745426209098841130814068917071436843154222797966844362676628319088310212751782305886686644092466608986734761631784474278901789006698878178220031467519450229986837611395483886577168657337142407251669487185381078092828193252083206955556655367089068754529486184360387872979218093411857128594525062861056506830810720970610691215779676896777254951010530253092005662935483943448640045495940939956721910342838369319860868749270723170146312165816451933406973848595070229957431735323624994261384952164771245391436061947895410749505685207625123102493262961016157093252408945917121954272792673791985943607235645431289352374193151729641748208703312685713569862502244338494504449066353531882034200516647501774257145570860525167443203930324150694530419664260254923968972984616582033846234801199843107575011641881873174475185388031892680884433957435093932084698515768642823305513668111086102449565548465270813025584143918924772264151975261284338811944860772307499107912679112495429107897666548248560481765270188456205299271638486563712401694178974558977388761246148557944001920858239679206309848033273432503918004408002668619889689098575902600002255898381993485316397975879601596167577945631945696148437159226978788945385161425342374409880433742647869517613145375705776409657912121294803646036492366594077297259994048084977227863426995703049244933581308905118538988304499663768453663134130656829439537051978852020929584358700081991326170085652171155118753439967160599273397718436757369551617047648015661040368629216172863452134213351675240940970060256063256389564949816681947417152343556309488770626792577702549481706472531404400832991304485712841847502748864580993343608361274726197711132081372589701829293723869207203626698871746311763146153921459562443862064399446164988189585401356580317300880310722373337224529545565040945375998609488799050879427231228640676362079501424376268607351157724894650487635214050538868315766082953958236249752818602482328878979999169237284402874785566523196032915316340872655154362903994385462256635710044563133690582496396500873185378936850145269997734640864627535611304691765052597010539416874831478432761077821903574650812137913552203685957560292153376116580979406268347030972874767260140692822170910808799630264505117854474133439624714142189498481067548137716187295601511750208476065293436626651467726091466642216046344737437362532593643676246069915775562701746337671892544847153738508887139509155895494591954027915217162104177913657753807245940975922991845216002009840548673001663504980909217133408279443118915213061139422323447096896444687577967522431771207686960436763422138059941909941943717402780830419702092667955279478386314517330989669090766122299127087051491226955169999009085259257483141057987266989913432039773787779242271359761668740650248683589616171375289435928816121722293167810869098036683735278917285553945667093714325960594668477134036195649411682396379406640542455732897820931264879133469750155100773684944992802175561628627307487856335615385433547091781058022359115808435179194014106133381432247591746877566490863981034069777373921727676149186242537873182354462401561341493109635809596334210753773768901221523998966133954404013042128041249007789154777463881336941693965693266865295672031242924361975672798185362420852040846953459895981762349549631637822151358483320060866711508734228892320794155583633078281184269958308056894139740344359026336393968373169713880991297992349739028602361391086611550739603480956648736699930309807045718101063836503637617335071039508685765963641122788232875238496211240397450455639845210905112359520635457671719942140032351499545163748696439774114409718127528145062948643390699122388923229308415453444439714367180664791917091578516819659401129066263805137064370478883094979292675875056924898457671028584624528030656869592000635908234540395496744518606531159257673816356557906770526880100448407757398540100853701560845287416101876303880533866425548743421643217656672711338245307972437555262534307102967162555457843073969162376123845935140678789299757113845541268866822057747878649557899938048712086285805704225099039459817010350287262498515686088252316908098512409377767496495049196687738492635580729902116848542001720307439124370913868677186108465604540569751914003213293334616619965970551019356450956432624090608353564605183621831159803761398656305751136482450519179011240591767022108060517172596955840070848070247801512575389341769694458779039248516632183094231405923714332298206097339368872365593510287366756244007514844929915232088497875290639658941898077884368712740212996763856249529811759835359503920153699497902145295513003005535917117612619455088728384024110250519852321124291628139244786846700201585558494684354933408400029151815026602963044591867134203575431415589522303426022687507612784398811217426626174166216108034003552991176257674321735405927930831344490765762691482725677889932123088549841691003183578671427873696662830119250683442253193910953302514892022059682469855205065582494325425410833011562012007414222652234190324807903042080539856213692840144537117124847087815586595290978551678223086769350517177855224701231669092433408145248789620424194336647875074430313853453067355445629211261522785994439610665173869419095015970492136796049264663681163114626538056473885357135591903670433148413165004384543665147375260132779695923844252274219380249490721339140217016774359583877155240195490499731129445829102671320571195421767755653753422060416684538348125127444842083960143177028558990191416624278317196468273626182268667310154517905088029722507617339970862158481481682890291347364847899794769957322499898532259678414490153463797114520534823774758307475465926399629934941432274859092820183781422038959883457324328152868251949068722103881818490772836815330969465204655783941813739054805422277920725926670430799965856192798361702183721956763286662084821170614156107777465765867114768313019583231440822306327964809807407927558112731581582270881859310815685626350191712345662395401371065499879523009832931023785238789644913254597418975098919051270614091879024471141951682170832985938585246872243078739659467049832713152514709195857053900480256665464302525766629188605601587681610200506603180837140971623430614780498303205279739992545418800592474720900599300311439999885123074226504275189162579913039624496278190584702114674951261082392720666938048161082280754623626565386987240831038424036533102857705797228645585887228575505743664197084817901086320132863231642702034668821186714559848894805923179100781389205509004663420896455196523216522288047794549106665722758993558386520099195399560815163229410472660046893341191172786261505275965391669443672635997012812547847967027866764229417311318540040055931008905117370629562456033626875063223405513468998569158318398726561349975533574504341018816577240850731263821014888694750509604111793128159700725797441763974476096532149738887960966546479623695440609593772452499652551418815697785346661025799974855394500888615650143418660081338625091970389967288560672263048765548970029135868614658009579978436231655229505459805017474484685307520992323774185090891763090608852208505613683530540097532401456702424695047140342616493733218155599017481501724883182638387256939827044014122416053250362784635541773644953211556886554790832433553971464950568329428227620889596188127059328884197649151110690504160673916677273238169919430360831372046688217497777956172422104952138939290751645066614429421986327992973941953106190052468339725807084613604846789991635406935922905914248467452242410392752062609080677405389121374019843640356504433055202159444581812607762721666675350548693199546386419044412757707675809449815582188036408266665328836590455444065811969042619911283902011612347404551359894074556667991400277552289434789531493888382880443173145446646894334999203245278752494975078306282649330592215064985439881733434667549090746031325101653149230352123228789926069329483420797725084390896594778795925015270070375882439299342988295893684638160981175715446229311857542529658897410657878323900772308700091532072832209564150571940412658929787408849457356150540620218233821404439901759495712779825143241067028286584119752439941149676355681180248906095141302562305178662499481083412203166892467420448416857600652472969573960249025220894870583761078929943973044618297833716667575963586772595612054180042357209311940323902140146146121906391036109415045890251286388406820983519787934194109330271412058215561398667951682561656890979296021901118999790972861663573913806314729435061274575227726826664987767084516754504444854151895952507074792596355867296680662618523994247297776491932289040536271892942857787168103201278756073779863239228886551632654909366493340847707853320053720923026041256068661208671243627771622973720589695773100072182430415567996540169017724657468547496342101995882511272356242092555773550385621700563061396773035441088982691260987598659274035742005792263572836417286851949914781388272550540108010173741397665106472827473475832864119647418391008966476673254614940793493695950467900676313085323838447247963898707671274258452419512697768367549222791007155008254882072675674819592916744074219171778866315160447376437268842060299229139961694444395589148363326188412911294630867611548232115481543919923457589515050293651983983398101884950732399234706514166156356311840531957477080889065083032204849362085821721803435970137764715798970488950678256617475823092255795348206310444680351269902475798459974296105640117215345318362311353929221443552781775637610352479433376553238648830657397519974375115392346310500468685614849980448361184251180833870468171336977010521534372602292898812737596642253642620275653429956396175624469114357674708654170918791333247191631547301337372619392108855124211421226150561549933650898880215008971866505800621128288133190379432972505528315955254740802031274783581028012458774400633981936855186600837157314155983684028274134804654143035603846317186706500439706348130897361060489638150233960662033920613484989744836252808168317869198607072569389452071826624035052352049470743170335468103133688425096828815973032137003471946651705056468719295879469542526167475635349950747284727610525135904848236301979927046088411932483932156237975280948785594788911810055808717410810400851840539141983675764947248986102374635366546062642598247251449615342064682754398584822184950794888432026416687384187879363944415915299146600418423709517072681647200944245314485578362189213746026456465207086533827653025407243147534448321278590242856602563204310310440847455205911381887617422666975197139097538653754122075800729640545991381695689512850880057161397983606342400113116042017556597004757256400196637496388680759769523658374172445271486281903175169412516829254217633493034583060430747998837965487771439578709148212979264897127734364888785228207741600329563138625500066835987965067834559476000859160582205386892189060946294651022744980470981644850305876846151557290388725937052915634997100228310640095437973073159157988851757329712540231910891675465465393547787692321943996578337963982957250542177110974906205689730808911932324877354751460390905483986183564555274475097015461264102406701914980417700567811074775339597184462045838597753674035427931808325233033295525717659947355288317824302542752929149884402254654895541836279363682232140170069746715820584224983616989756326334165663363264897063328249669324743178293008026139767892674678462739116273055439378911285922602367816876376262904393302310177221318858218497442350969790687137274056195128585662076664415042190771287795886161731856215897535149216361530597327822490751654897531084667415543663469405165583081436090626488188675131542122083759269264040824155706604335887219498633651394956390862804044969725114488615202476394342050131924792079682956356846739443817862179114733102766007222280896932618931217583251119815215471268531295214868213666376052459916780380975568279250327606137439770817808609928521022655451366149523719120111734910598571546895185174092223864056236506590129812193772178816502816512913047031337668366464359864549717810455695233626685936816296559966046537574757508640471003295065980933740569832880230630098719945273901454456938850064934762124368314731427071049626064953878176667834023207647164299570838498308985833229674175282710706015379792164397989072670713558005243305164227238846003646659281158146754113614685168868588104711198528735871520171700931121272595611232459727453806497399363832774226406882222685532108873419491069920873372768294864306778702583813846207775594795344209921420544119211068626851192000031636291042806459630312548782995778284155567733590184624116110274411126721600168779708852198616001486268929780652239358774144179685492923069756962904155977498651080202376800754077404107795319624387065731966681931457591127139652495557538849481584714809369163088749701230547347052501692371051266024025862948981030948133212880049426799095906877350669602859029669268306119240137989494145535031544200139558035391587062763746729107003827578175376175575523201826112022352779860003227085076768743693348343450544134976902339487162996128029285126674487768890134279452512265768398391288565121970956775654624733919179817147236125728531551851380315695788687089676499948293406219587824702886290317761382849297416461880853495558449159455178529180745988096718486734903947301757875411581405453018646009578639369250674296594418818560843606117537692490585260270054601846222629984834725541184719415937868609113291516504312879730579687172232006164544462455516514219564653795879818747483683374317588215431975155591901962697184792197889224646880053680457026206001922269228890650510548113684212940996606704662956372332558281405724428684217061609167649235960565775223717087863244256997688396266464172897305500066438068840898475145707226047339695414105615956659649782668776534522206969924829560031145957678442825110789330607641108340141307486770863075670526045768431200942752373366701377400187573874600959084724591442772204256750333717153077750423475635316055156519057513728753040395678223303368290456152695841161858559509843557179854242373598037211183206205984411759342915256008630428537401124541961476162522969852752455962030377241539573932376635323223766720800015845679693336227562612055561183567272644243144208657681305395141677586694236359630606019625823821260264320461217793022546886999203770949344345536058529620115385844744330750641473977108870016704561659238768426666179137138626634978438149670152423808885085577581998551944327640759737328404567323538058869265889242010535985654215559177234186970408453793704745127056218286252712234013765966765381533041182125400612120059214983032420621851968520691567082848200593023087778016799181958173435386312145282744758463316110520883929251629947570597285832950889452824287646393349468193513102824768429961493020038960399466453078202790096623529755487971166498528916450371481603716323601920163753166877317011067514302255160700178191028903000088113631867147802117581651451348415002552711271739712241037919595834629174908264389277813325106515939473697215876884686319200512710176978983937345858420097917747613903192087486226063470241453947221685656192695011422864212943478013432546337823935627492035130549645435619418824109562432917301241619212953049263322628007716319500349966006959807452495845257521038753036762725082805514290951597072208459423104398079135522565788582086220953877279949635072957514101279981504876226774422742262940390822680589200254763670800806620527852171538599238269917141349791791074126456303512968486796013822188760876807894782324519172758504567979529762611599576166341582284780618136551959357199242278637968854972712301131722909286351321865272675647609716896489085061866088499818738852054444460309568640449907064140463937249486147147797771344776273316696780112423058917315550795236273285886433200967025386047218564215517090326717428736219926171568108854414559638621439470904930604204625401983657487642535303679701400932448286734658904254054571999264445392644159067546021281846413861678814747073516577819517993717439900369254348129700133953520561999249551770318677169836754916857074027778782394592805638667567972430826332379560465265894644864071734654668303037943424873934266317759907069842767041560246309115979847421633041271615562882009898464383072064599907251203336788836733403199368892584751948612604282684193307753798279088014553062746823088372681657613194617199242699991111841433575856127418560568806503636126778668599088118192962595319823114912669754745192989788424642887238352815780140751372499586431498994951286111188906588115200653655417116608550032959256430750634896854274981019456735048963913418960737089532773860361826871574232183286130796395043572406810878946443586546064106777887188702800841836176387291476788243220291390800271843785518257311364959705080536029483778020896205466798181669086829154540831086838963772513119890451729775496658714825953934140069366811413136038270553213136460652055493193251635865247241824338817758804595946539640152067068112589705241569005484250908718363304122488643643520208380568683686110447637003168030916721997902739373540840684919718302937626148881085951387287978528092990209150696402198624912622451707696496781268491900078549188751868638670611243635232674882371261848313887188650576721776713739567205979002195543491239651949433374989872308187767110021378641470237219819445902322517052349321104370528063167554573434049530414292520009966238214131540436496003463915806253067443672395156153261531633747555559444110317586418851332714494267138100436140678548475268457851252419470694683112854935846877573683995368357206861476855804628146453415562062378703759188983934957447876998324306352429635198040922258905816433479961673742244062616518846755601715373914806418097401261352866139028894312279492726231979550682080823142339722845184029860119018487265297412000894738623890456813107488459649770167213043291807042069373714843986900702902770195221524052881850364567369480849307702377955039319101993163291267756901211496192022658990585808912540863175484239948246798675332993188740799335696061302475862524521205620541545559573614405748836043962247266421972439413552224024296673777533972152949460417381930703805769142902523437417531319064307321766548599444908224433023968864690405243009130512408641387628088512507072730653069043695758056612796874812188624107568864128862831587552060969971440227691713731612536541488065247887951703238269556179312679373702642184157969877788180953389891622250168485402331879629331974426731416914357174189173238795224276574644057793789267100685490887591380633991564833207222947638778527265837881364548897869482009458599526708891924952270446192305982543140019908900725625498708973083849141690526286235107589922155392398208033048114062812003584261911097383979644026932124276587591305249853269169642721449814572141428199904177078624750314109870319639495699279856191577742624137411020315653072480121169826868648536532885636225252742454204406010863249834189828366089872984620761748904887893271507934892511218812839392932546535582953026579628365388596197058975359302656715120138433541243501900394385245815693599735906024722425117547046088002517415566080668883739277741445761293561754373363689923516921803248710828672961383276251945843081833753780638077500158500696963422232195512938607454493880971252499451458871201647979813152709014859689302877043146748516106169783527444233304901814385109315160469944428008336370581624458519121121392121466716213883779754337325215140998830162475575635792791072373976853102138280320067040362516968422056937680940952213467131920219304895890487846267678961102711893081858174325721288409260746723891148472177778625601383091255309171226541010973462817785212655686447652964446224905827637959273256136678884861706043889377496284819390225338903679478269117154814893898643075668450265632755159729064873390566669055919806763848470197076405496923922341663576028203760070393769630323924071352302954608649010960192930775821735088938235859288153077226873560949782799840768291596800618323006091716683439184138436529645951331553927937788216171711919756082417240069186687392715242926091358143455433617759869795766838739831102295595391537715990588858837963906208437572826772785710159640251267221997841376618569033131038420099160039467708714128706725309967349986079448391960684761967255474140440482604725755194545061064386722271755071579846656879745492562554111748351184716795436486478235229636924912400291986905431955877088962931317859734543452322702475274021926011130695047182144244709854780138669705132310894054976458472895031277723977082566519182603640193356510781718798677481909236157786004968115052386016904804895335590410213942255776578509134083194479952097059655551734842569842518267079647069505415725296695310914680639404708241107940441441125300755753108633516471202968905730459117292032536508550674650694084903097314949199434715134038826437329334284051327402157265031940393993607014531571870584445163654227035956486984499176522355151832355753490681885690365343224374661906705333367956868439057833424293427046175308427586867732337545137039853622391187977569090286986277905204593560237072525745079260088180783477513700440752720220278819353711319788473575693150661320471313350555772362672021246326153084991924782483581781138995330370003556622342620615324717936532394200706783820417473612479323780740349624997907840031382896148825800014700157784810307632511333313360834552469604061793716388567899535311371433410323454509592930740087148776230052060663414467561892958808647668856400641601815857120096650168992223863883476062452749164230785532394554927862692237862178546273744810106270771374651992531242831130612958483824737784415301408696919623703129781605671955917159299783340718907896201800645381511065155037152283326393652681276642816512556039143572132319281703313250617003323012558539185620146540750889521056769836309613274480969188062664415098042177430123303238652881414095396021966034743430133351663723343562019341654349126755471204938061245043627758304685469846240616714990901653906856884312996551433646670959324785298550700004546995073498523406537886390154847054985831028223020643731270700056398798240567850090915571204029849957044715203079053552181625140886948202843368973986280031481944869673617086364056495739383801783146141097147564923175237047631915948984204881334005415337045769661991973305186496351197740425255976298050703037302481843401771989503051756599046050334711993973301551965019795028654375233736112423714970843097115111219478658645239445557408776935243966943974813110099475453602401183286402084217528099496681570982072600760338836989562351790459270539709609004369564979729614481530126535121050142819866285313011294981477849239364707028803419579287382702990970244766918858359654784026753717409677578035363854109385824966660114632319101559552576772620813078654761738961447238956151520802732840986855179505722503170153466159925434509920637086829952425205065725254654945731179359179233868157109953674602670701573806236087416981554094567633655611362389349238124709238949854855506468065643454373845797104521896751501292687707906623481063879022696196761986675769494674895131540272686605680685882628084347548369802683583145822308542941358615058816287732148270461584418204008392004861952814221004626213563288800247184321693404373461538955796227104186412707955606462310139043399483364681835394493418077205013753574249190072345041494901839023109326549136743774432413825757336768240382863833232018666606358568201152962837505735760303932164956802856883788569516192079919826086983532032950243966373384945700403191522147316743674484194930843761391014318707430576081239676567113463797527190562094292777673103414022822071698299096448610483307561879347306084252549526121685633867660808177559821840394197986480326432445054263250825988161004827642080999131347311267183526392477892857780608683706546363157042960619229173409428253841073973663793340640889496109752371458079772022172043873949795644795554996522462747070040083821772866920438044574644159641966229915391520990838217460929587966487793337506390774584693683280342753061753055749784382989541347633920246089885148177718111905151116735831455528185767386221758639104076750617071937036635672952849289593616015520345397448685766098928062555694160723465483290744492420266909837671147485564239487494736024655605341651812703741416792183608308302925277803580319240612927130729214352890462726820057753235137142990202650699329435713262574884218857245895951766251628173850367269114854910760612329212794936552071386921117444257730303091449028658166602051536222795032414436129994600501125252742624495815347351322553807213679848697098263513238938297385676022362358817553171280135938631355899584205786314277751217462581605673026269141444864428950803146156356706790273464514581679291125601555045105389636072664476203948897113270984549277866337034155008654349088307456827511542106314249353719118956377736225640429354446582715795277713587476061681898770608165498318243325078933597712877958650855434857759572049606499296710542560436146559356257107323254426888137735265365540333254592477075173294829415573208733257608991821663823752292819511187044311549020464376297417139045227550488199659765733085938518099811033658735307679363426698022072642143010667797470058125890446318068048759560141807624514088199383145127992361559863873157496813007384663824903472226143327860109678615861782279616937931613715611315978911949153995567774931240258850061735043027210379298964325810474549480519894098126703766363048873808981398055774821194334834765504984352703207594430070098356787250837978757830798196054427473792261513067546906455889905680521295731821762421916907726513501032582875185937552484157798274203717809909159844492672772955499695634082044610418961210496133042212327237770834554391583695043466748783029927888463290129617645890307507691822352730741656869643861611659407546718562699047210390776767297375000167494439779498299457990854835158931569392332141236296579312909181988316658680805818865796004585814258654029689197448206448910251523851044684606080065574647582646737844841403402345334808448683561439687849386843536689609447179717047430006596607887669460663308278303704625027464141205953846289182117282866792426621053793598459858105608119620916597543257714402067851762458277665206111543166349484071765697811594541092096712799586585811328235400054355639487263134945350111430999841409248194199740170271580981258254475298114842679822982748617632811670658627451552346234085266039332953899470163770050987381176288454237104376525051686285789464721416381673454327107654010948427302809501627298613380459648916016130546943402336156909052523358336832969862315613229568448425509808638555530829650194565989538389426315041592468578179830403013264064020896442148164056069624558507128645626527514617934863628172623902471839813128801456568837285606252795628112479012844100173944765646562455746442090197712187938632479470981204176291315602036447464148730824811622763371070074797417061397951107428672665877646617077522458085404964099351105849969737432305793694963548951752717470363454648360471868711011092370837787082609349939341550578866094319170557224985354963862662425287992615648319874162091792783526472819266017719710125482363581898126675102963371156854839860332911759378526225097675505064194132850890813398628043422163924863940824217726684018917785585853036739526029326814773896759084931241991545814011175467582123486756596793111301813971168494452139248719075154451480725382746796451885774225436086472436963817868503129011742270716068858508429209950868997730089639445852492387714706413920900743484471963000787146941754470764244453662761052984572619990186086662078930748917761010250183487078024827674769285625718717802956633869300819325580312020053062072168620139433796525518080486644385328977579875697539645280564853257476108799713608034992899357964892284948316402099173117433504331764650456750236562319284812761406218545828336729975872652867095745119730792317419088693771905898418714009149127331374566674395096038001579160311319349653313758078325806301722676777569619271264171672902884291292915466351464206251988367263634974464643557709115083978186939006989666533258730394415929481615291967882919239285294541821828210786868766821544121192802499203775036483777261242457978426150709943307855559014379457619915737238130313475983134561903043550437146451205835485251788487794265854080091534429856173803502176571322012614292438291674220026588869383861097070241990900518592484069253279239832168887851425077902944429584297256737489113109483658035058329436284978324031280652340276525423380589022258820249704463358241836355431197097446727175360994481220646423964562303753916139094180070738180361462107451772642382773406831200442430095908842927287786208838331338757346228949254922694596368014642217359008361280856811659595580748968981870039577551986232256064763601802868130931751101786429259375207167179175854709114511162450372308438094635125558961344301899627306358547593023347045149264541197105690297267863487140151231394099958185552872577543494825576544576591579548710416258537302163599753382444073869199810188953149370286606617409748928937684912787508056135890953906204384714118239190529513911796087488866531974738839095216537038978303651451856113673347381956578813187798415718669696264859343683792710325773115306481822624195442345916237034596003868137506978389129549998398822427172118639459121021051951310862121088207820989025073725072915406618745172025400522174504094123078728102667303994193250797463994032918560419306768441749011751869904188011781994500841485596250519154659230073053845194640711758864763332127428707250039677208651421756967859243014691314974197290872672287761831438797702808890923286988454279917152392265076820086479225313535310401327430929199509315637597256662611330161291492445344729657195701722093570611746852630336760937000131793645635502576553849600370977521350751023866175355967213035277656775990579006591210983345323065285948031000851683222789949481690477091022102073517171050145274222910114756082376052627513168889719461868810512417192181960122569621757847602134260552302426575471316282244133919252738693392774294271481734165766525365145271451937686887645318141257904209571870522298198514656683444948915098853797836049522208978156930491567559550694713593794262234256309038597888993928555868924890665614473297556234570424298446845437975867094329873186391243100111149426552948090830237969508686092744992269778379105789704115944466911326437211693980089055911983271493242510622176320871690877906844264838701887981602572693654129328536046409391144276794105306929678112481679161674870067694498205835869416137757764657896501035088723006196938731602838511582014066112332448948877896730101245554978032907437268702155836718182153069726964842589931983993449511088946588656056927366306050937036047096821565580978574305707330236889258331437457774183609499254400887634956914344475127205630184963949383970833570299323998570473466379864445617832686284515267597503428255672258383821843265452381703361189282990036565823686425302009749618892995364099752152181501252599334009270389212597877505570926156638328507061035526621247788860700654963867799379598278858792162941985707008232974024283550257585225509224932115823656894410528180766982680181716434582350372703307608950122956257468007345249498357055397721395637477207157481773233963792600282430038983563860608342376862506270634767378487607150781205481922022230852301122986826402955111959380537870909645433665674767291370559201388907394919924902316866402306486424807646682089031815590872784639435011703873338536800135758023506249707365443980300031954969573709695441005547320639694192937636705200983634557937349494734835244183978810259442815424059316181389393896246701024340241594188401292282891625920336384926611150084727379050697979919327158619185592722204684776032801652112218336803416505364411693048678624800839930849865671724300830862628160836976046100412232451286655172052807908667743665314258083795085259521227658177073496686808328806505793593016884475053181467064525585042990570503618959210161879766150184758512666429874765634734590368648396580452445525535348428550332540813637744335921410607645989001940837252851311420958134961976196161565991833611283937419547169494526877354347867364478862009198733754047530909717752652503280844084662213260273308158796033784507599638085443850005857940616699426684607407058975001505252513695918503627044834196360965625099815977334576040151439111481507149074071347203092476663352843141678389525110371745345874459510926763230973733221967717695729634321065385619751297999554535125256679184100524403107897116617650936482806833242723686821115981817004592740813736200093537708726807301818717945209043255194430676727516407922760013935450480082497854897859380824903048623232530973806595041613332203841781807542835979111548696658974648618269184897052327503210909941294801009993351131955712335011023529985641535470478024681171371301659003171397008418637543368302338203555319169969930268665098294462028500400924043681881094738467678591717101419012985319892846261679604571673796467979883701023603183244621129913159993998177042743740722812880207836903790792875114259870191851678500534491262163312624994531343620783783877164838407345324248328855497177077341699275959265510267863051961220122194856732982242120769152566577417287584698302650752570983473167977572161423276641388006063101590488950723369473035177479572322746561217481508907722079265076399458323949174215884491654005494839971991786746070867349100008710980558985511157731424377637573378014083651911491984301138757711415116039058483010210441324447217419640576956100919396713175570267886077273501707242122687342582496418507397668760816079848323021192274901517024519163544816330516248508362283222511096999120810472388542500778199546676651231480908566283233257213478192713642480148213217216097208308476042359291702701042884380523305628660007172356351846692342055623256973413657687536776298608239670981612985530363439023971961335895683857637397164712686818935742493912857940032311728197409980397315106129277088310962245437235391824484137737276928196304384834622234877987424404841448893926615513968257245527604171517721361417877964144024748136372450129929806449518791644221782815403716968108732327369110301059485111283086820747808295936437096475280606928613519979102520980480868067126205978553078862180837218000025152579592478567273620373630789309122885733522442608365740170389060218718962521201646792294916575396205714059126887232656153873613167802587249417186599483855216807233853467682340880354125122770493830394471868394569391744362572234670971222952639168134756919335752798429795190022599128844635550959300977546551165524933095993205656824938382091030221479410503516073518317155368115819419801116907531006376873715343777688107392222918330935306423293448368744322753589878883772179415755664370984988994482583116163948636464690019480544098394998473606661993532795492250402391426134238085932456113910707826910480717310628034553385452801217999630026996698076761198467672328077357970529295939538944804196160642444559956573723742086810158657067670563447138336236337915742412495304567238302777492505553716823216543157051871133597561317217212802570332911410067840663481415037820480158071716410914909396438054215744286078161198292745650454027373041010225448806861624732126235464546051321891804704265673727768458947765810301624246594247355313418331675092596338359143002619972161761826865218001923795448592528065597952438951852543592913830877131268040821152126179988374783915635193995331948977395412582339703452149438685876824311851881896829392222039647394959550924140343328582628547939850805778713929070175246784761369546430155315802144931307353923596517010803980923415548917999892286019659862117159136849309572260904768330239207537934991170908661484609587569086372211918644700934334247182188042281750727886963090212449968627365183745274551353062689102338552342294552359241856299666114159236456480739500311072386900568248873669882471814979544159398526319040920717735578273523898417098996271837268680825545042571367803794266434356518774639982290987121416215258974827363254714939506564590573250213916118876899268245861216770619739076531582315261245206901060430197222212686453477403894071662719480321910978434720800269615258364840505862938368260893570955175525516428006834326754639890818049928708784931782133852959283811388243701336468041055963362275480221397831585313993957465427531316802726801318199816005941775554393454920676989150499894937534608916444502893537061323256452612979364802223124410445290894834765643663102784307989746986598144876964406828702579487749269592102216532664826578108357491304452037317502452965336417523745566317223945570036489163167405397896236350254949563139556500322654516906523472444263733992997305849030908705974581816786389069265881404191734126459089774950251962651635115873014797095191216193322721735867757899552938944476505780768514466786066357019013009913137833161262530717521305573867911457298729234071023755845433716868831559932393291598665515847368793101365736264923307504716727902870866395178859637605785614035830337148683761217146833648896571035041912015316230764631908253417344979056373109839870394949404843967458461818257186288665108879292703121065984873022569754147794385820519723107882113300564534061917972980836497334139757222540993260682888957978395205073312859577928315241470517182784456472250113810843586373772137440932566783458871801229172323614105842423130491725107966087554854321600638596937298875848889383146589629593442205167358508236764277889549172723011979315971958879238188154663098897693644672816951697418390868113797433087585830907519247533880277877247666891762780390166823442729472562028799018161061675574592815162647951428015796189585548590282504828322131662909101852525765775063736739196913898973304642183117859000466417753417101742230164692452905944468815951214930174342555688131235946409106985300905869350937874523740951277117310658130469092821889933424527509179000565444050077233819598853015074681444610464221489595253327562582740139448663678397866733945130311418936923118363536398617849663035312854049228735708750855338385370603325833249502667538165910501190035208271910302454746949834034535221414809725730688887120120735397953017244524032829981740001297559513966862844103996219522338030775302353879100983345213239601706822766733004162748857899468920527538276810945460392433584354430814063119039393964394714290914927427875882651810558200961513817584618335650970386324183914115991527894493678082540790048959495639526674389380684571393575133583600145299392076041567749882589719845262819865761397193538888499781193070550224131313364335532500400418314888086189884669284277848732958547871253340787960314768097436661106829039880875590688838716931197832931868188459500971818347325829623360780165769297856106257764002442609974579431362739997583804726602063307722104500606256661254022757805562265607037638656931822051604696343290748333702558794594960034427264516509881895846564998038135077244816054059607739284357685497703376051756402094072386575065602452902900104833741938699640700392568245795407310798510918978681342414987947186684546496388891333704014645256451071589215244549125378446156773367740773738433234002471347708995006073832075753982150973924609518597328102416536320262468285215113070682848082872030062099619046470093757132531784819690856006966286386501905056438525587193946730530423495981585454340634035370883564249561740677647735859775755178740312080827269597570867472360336468574368812263157637126554495704204207956363827847187453697586979976255379111090907521416308412333621921276928998562137246761493912569082835500204820884042546533456024095344693148066013749888732672722455497983991203317902638127522848704262330783476560025205676637435299689779444056856067337363283535426554818483463455770238380417070253025241911837255843939044054560408393469754305292936971449699118151485397880952705146183183992412006343907761829785161055820786975539236166546750021489095110999574045976461243415508114794435932763055681009990753749010780194261293238622474430202518758609624814722168449723282594472259029862349349799038136766825173339551999776558646834123818777458065387388681919935952543398180536278340758750106627212515793777584943457321589809098599536884749868262858164177908416077405661365617138517828974776818985927137607824988262845573914888719219465514990664395575093519483852827212516585528099747803999966537838529044744285141137373624522151939654812589247726763531361376001710396169464124041049578198931505368123962293381256742296592390229498360851078451094664981611131348412896284652725125263979404089213043520687710099114359909773778276437133278901330648159788956072279514391659922073791123821009954623184997356209047552939498013736394053055052402951589318193993633388205895174266842835069278402952285209865041395429921980991462523399103088614511997660538130376225480069413450507886180528651209045904640306371908856741432717430110836001450134413082192751814597524284678275396275135547633194632300516984725597407814162017025526261445422374413243026938641290039989477582704214103803685294183173013126071723424512389982237053968700525335997986357378906461797535040053916669907899136413047341638329610095325518744049995433453543132721438804702587224871312830339666802051697437483082299499795780811476242768288978128198673808864572921195301124347090805966378882741206905186002348080760465893111525583940604017744916752246367522233592007925260983757914150172754709990971619885845772671019160399188131722798121852539583663076544412360114095333273098055051167778419372542826081680952719804007795965551451256823056402444952929473617068504418395245280093037623810020592070407027898887000154770433950916271468106537075967293365117226194132934295183431495720750866205429631944693182718562889853673701889380701375486083548999823457865323835294231177021424787671041680974564442151711105038544036544619402066914842686976769286433857686755480652943397130847978972127712790530268650938580696136197583953167265532585321423374212513096070301956534125195356877899086443354058636632792094630777147411182588009922319368888982990048461597085734697902106164448123611271313298626646164856821640542465986714837222162845595631137622555312730482775340863976976749434252006686704643139446802472384698211742211692247145550121437830822912389997215472539339417498689410595002372191965564147291603303479692715542979301216418458103290909190137218696654904662603349500352417969806423888311839591747113127498722303265899780868397141131806764212919698167324019145885166880207404270227610748732937532359039580503429060033009713538573787450974586508669300275471938971410574527110235489142669929194317562407652602267424298297947791325812186407957742282952756472418049035410207280130837494654317172864782330368450983232221108206547305048202516464394012362891991669047777622567262656166915682728396326978549668914040435375768463284502514015622448612174258938945827479056712615103537405312991415471628506156236076772581978882791209430631680231627620724384478626704696565547624912075221341509308440147278101920347760472248206642779871968804859071512011131972937494052829015048192002347099570107167647813392530879029178472653290631302577002201227902318212448005659248999133286150990111409860534717252590907636472947225902511034163261692468672988400424781948293758873314885146150828891060196685428479922554096002217754849750141286838940411853652365998885846291760558166980147917039569818097447437439932160929648001467546132360736563597894423566627665230001001062170418983988448575487372238447739612619757504981118708291531785923620950314248538480482916766522559270345202435164653970798860043723347597085161004880363844700406451539106112024107175989019374076532117032426593089823944423501320749430347404319197107554053315597297743974134980172237873229381052501048057594934786114930781649323962172181721232990976146719497090553142861638685989180289630312313471873987573559361073674619281373521915783967083660868471724488766122706380508229382070073455349512189270763400524731792154411513866250853726100531037890914248246822637683702746583078851109777568362863042624470938886212055794588111591725497445396592894207080348405331866509523871345528804767765938480432995660956662760406401718046954756767853489819866730316751549224149390608461725983980532050456077776304079200592517327713361532193680418164495742148526104934592036272815490122717777367919682685429578846180183617022451015575034464062130262153816074275770421534842350242741810126906807123539476746773951025452749010009456646024326515650980494904600658734061224067151953048094967811948856673821366616658034353141106691016703842626948134730235702081314881414797685693270205780368186249273064586811191580259390730956560542986087903351310935240415802518857943591299978161033339414442397411261521410213210217488381724808539422429971881935618056785954722875213673020704406136929790191776766081652527121201297919915492532386515575110832305037761764250629908168303263483137210701856059938606649690803032116218297081907876309991306452752061775289757443128347063337874489652594959942571410816917476860227248673060887436062420065856953528093765396987748108756591081336459025535472505637812445293364160224334284796768554501269942343817194994948486676316918001054575103275766418709152506097839233488356216747018089785779831641175754285527512502515397117807563420587268482985543363226762670937254519288723765045396069722139260598728799797728580655817571192676260547127614308305723067631104125845698190595634622620864549982074225059626506906184273595010814109797499965255705442633906376973206984531158729472133868555657191095753601931170240022646020420613853656840079664338383881198789755905244093900231679808496856606295425918632414318887265952649779585760881221302066388491237412474887707444229766916496972539380899459879489040703732118164562365864524740585093985044916670255255427337751189246471301409019269289764828609043786166313735384119210223915114675840167742975040231208005147696494663404232834835811642542993321934473373908868033667668030034532101818406070298165824456022776449699821943064257068703837028786925300164415220817906512282991297557370995864084798938695276893596985654462722915141983002539245031036472524829584078262187530644843240373620155287502342033474345068168070843219517463782252918648641310223977375755164273251723034829309873836033635497042611984602867004238437908442557734979499189662169539110638623415036173804647988677368861047612790607227696550318507441981844460389829964202186603539602231591510750348544436550341799064685077466018610422631157546428393353135806487489942925883550476136724515882892835443698113003306182214108624196551774809991473038210463561842135470642243058956042871782824704286118869853924574167635975082265956689482409260396260961390481517258537705287201308854342184397276630916348550033136165908150877807857035523653221950172256727008638848915293060812754756969317829806041822118927258820139341736565560059266334970972782983776963806760728993878858169553050255351603456714047308588022882586163644155992948371736653428829406982979295280739835854934649178398064108064908582263097401144850361155266702739178131892268287990325191346385943501553457148236927471082335874834110792580550957235254811181919304848445397347292155289451121386261186531554643856612621625090999750444641896133463463300631314086745428928184505873763374855913694317747454815603746867835946613560183267385447104695256052544066549478761807926776992805827386459608560575433268249437548185161579817429124756155364424327367548662620105678662445973473843212725799274674060683515969997950879747187746510469653514588767794518675868185169530639225059098594541733220264361492859048657663310158201575709264782707826167557787868093868796913952627836340334460873901227868998422929980638522908994223900667654485328392241542265180186838869499804398250223170481560892375134898272312477906940818849978774245098022495546743905368678018511010279645870049204360060483790563377495894423578996305502506301805134236469753220790819358430176493697937596323188232235637778393341079964668704233343572988444900653798679505983588531777241776680902152063298784576696065455939791719586100418648642092400573312632664596875415458460050955744457994502335132578046616470577529671621392053021802934175892555269572677389648988653822509446373709777344918199914215887458258743847929394978576851331668652157969504968329152358682414905260205295029526247651427157488216929500967746712522857338163540282627969880551784895557762423075354544660198845372300295084039730222108252780319344294590213096274650609858674734096461161295138471062365791859569310888556825623645195830898969206553412602412570257215762214562415314655037433029652628443496143535735523853913546724451530014833360138506579998796692805632115368352519875579373004601656623012526424597086654953927040934991622487703998290654664121916067265634480991117202754954501113569363423316190935929595680831764390735837302113459969680873969472870118749674560953000540426822671929348289769715547220979743956020291515810690325553076170858606869766935912505421374933919126476828862505144707745904359667215763789230598632665140612779832860712312169384179309574682762910602071216723899926327949655968980581034496058278879481650346588169716367137205624993127295589832262551843938089809904149961574708194209718462547119293078651274035585670423483294653332575190518585590133347872242103944010545181175554671115569636560146969566397841407616153270410846148837012740682736994828202323193571894305310944386483699122016502222729505654917766020359357181410073362092032317706072130217636375163875011146014948177648233529858468963401475408281043699646401278781499753645698317815510631768889594570163086515344614689120159640165323529923716510898314046807873203026208473458326772282297691606984573883715866924464885641259744907744698714937992634153892518391218980585718137366663633962346327555705190263579399304794048158590809367509170087222568913741809865430538339773155017013925176206010757271412685496377871641139654327904944628052539537683704761443036587198496920354808346092834796809225504001451314967221827376507338802495514184581504796691011127336974302292145383020748210854720483784808757373879168972879201068595977220954029045213630497038664212655601994145057806812221531685382542525119912583963073157256369566984883117331832061979840409219450738423323976093190000276696963040131654213511523578532779993090093862139227028580124441977390423340210998784637001282881208577088576818625081741982049893065969107760437452703335828059745128113846674000991263204401961405741197738444368516435428728332485922402792664445096579155174614488515779942379971576412731366071199717382820830427669787864922508493256962850935247006562374479042378401768755766924821629464630613262490719820741644298683244310244948541740951447108093587258834621967523019005939272162184114525869730484215273092130829263309211553038160272483233426230976145029336164452965195994263180880747528229742028327606615189615838032754589901730877250239308851977051943990303452960071045453460360655536548867553017981922855086005575472347504178499375261998345766329578797105448961113763474937456895873442694489239428016659552487074887470505173913620997573564713010007087821472412029801305956747217855372879672434969931575202962845842079378477581258564752418015603827141800741972922365314641644909819805142271342997501424377638903339438259139543451536198476805788231106378686048120416111962090731402271697190813505722350945492513779793783541571538146268241853666206784944310285557283199615506679237204866821077798891130962630578733744255299227703317912722139284025988277646856501326472345078990100804886680864221752474540598636832463381517371213139438828196653466138768915389308870119800290270304112050331236507998984697959920517283451838610254243809523471830105795629613056591617616678255222937686476907122911258198671839618348902959561428398343092737669397127369222728341662602559899730649081249303109795622757386843111974180483949163702001144418071205466414707249900909488083079072669503031387105849286451110358586877630875932999298960209612940604634276241524673307539977337610802230507895218504975382651898548865910521455961259897329648483072496871674721623552795508774046684319883466320016065202224712062707963277756668850220987988012847466778710331314403520128802941472159001214877088066664330185971693894751461233330168897499683921220098891284460084046747823912615135835574893419447557908813593907058452023849601302679983697036736824664343186656087518343511079787862823756527257329431239186566628532538590411141368624683538813773040942239634830710530338852465158848841221796978398175270929770289103059571392973263757785993427944262305199617996837385045570172830780224111238321277685921601343003843309434506886199573136060124127914333610203548673927712248931405694465840960508919158845429480452580812740047930824995786819862993847799377996212988429884727961232996064493931731354911705912096790848474813546586453103916756324037784284480412140474037392566895106860079489746505202094898017293255037756194836988274084479525034438954227524408045786934291034868979198867597047347875601384047769455882920145176815545042373647131777798047976992195187805290962034794312100646869944915317467987806992760211173564079103074997841103491714105125524890319618636243122180717673011435746183772881769809402262168707010873350176934302722699889551567455810809147858689671706971362969478315206851222390023856679099731629318569771647377555135924021775543849021509508776895649823155874623038865758948581917269233175051042850318323304245301305907648937398586960973421833469260126704276329126605611230474375620402567774556353412599917932037917497024895849726039922334695364414647148461459298781486424184564954363860285227682304551842452909709870676443803225902097444591810485680813492270933264836655991756814324101538388043562374466220630782913069410982324194297953985982451272488382634569643974779647500975631237326896912423520523033335391544178171725320591061938086391114593892622148304948751329264900011919084213345692345969330289061794692583295759589549056963722046632135803523297887000814745198364063337572703926683066432029841392796602047409935917687357223834307421249933747293627105981408625690194880627817991532404810710779623532594697240111519818146290728820781259031026166652336386618503945879926436302951514012508827647493842910617462516862240895055303464037740737548826875767522315554567354509314086069842815855543451171186279018159384259172413761179906946577711172058405943099283260880085505401559178144030942030161567128751398102412184498867373880076292166739138962110665537849794027767990003369858625588439163609840417920720237649520317695291626722032200351046724695660631150924411772138811115534269996222814016729639974237950494894314376070175548754515861556351274031813197629139270408117156404732463656717325262719134523859611642412283241773320521782307027950407495635024339277026619262367222982929325267167361276285360105148024503847833294678045460714651705059828739432950551569407183198797576759601844524446730597820385492462714400512691664333526193962066059745331411855578648051550403413611979513037821036223416089255737993337886284261044825322520795431619001949053251123824138257583906967313426334571909054416886270695120132147595138695882091018332740275745583401548907881585325976448293253492815893246613362436242491738678773963272560075035351059215815992704658523788320312125815664377745778361595764327425154982991743911986410201857133528887102566668446704244745248298866724954249390098166712528269218399445047589017907099193180664069847126365801551340213384872538692542301876734698492983376813411442856537864502221990779503309215922711891987202078361616723449423474362718014431782256442175545546110079661023950242439413087457201889726200992753517888526860753984970475654942560605950461954520309429594727839336474932086217062039239448849849496148567652330946675616604181576037734101091646507572073079868269889703222274410798138463589839060624666574346272727201432973751079443237804799148694107742476619581168130593938580502312307085397025421727781054822322488144188221762141720606093762826674928120884026185660972416314467932911559562857519031668317970047409148961490422429954576222755427961029206225908948348849556498719482004978263202072388827795060465191366769727714288319038634903059787822293941762294907649872632859675681907369412844330722033712205493907686722478367637776000570384361280287986852956084343922350623689815167233194431390287556230851503497509630184242865802782295216663889955467175393930044755376097621263170762054552242514490181316386378937501314046611209137219008728275467861956744795036533641194464858121261494811366461131074526659911782833151364113558691593511084205822858847679620254948764550393720893026612990271211395318590391458281467365619377686978850706384439583672565878030189087891681293438168471225265448827558457359077413941135841019813937473043242832795564277277974973746013561186449507398863994961079558304927297887867279455861739272667679988622637695826404429360431525583066507079443622213053175907535004846418713614587851251019176035802742353102700261795578788019464539926631768183423997791823556449259219322104978430845704518482915948792904552993802251102455119863583707147039203624412731109545953261243812479215308954190293035647682824477926401692539282050497444750180804275118431829584430193785914665079154088542122794605316354489849025478748864219902153483242620453632041840446180029770801972355462459608139648672174847935615277586812009272021562472205790403170041200138820116177965504757849855764007092993976303854998700077935779681229260863130478493797369239419448906954553370092257225585329821854266024452034945330744956893366603117604718160191840645446441909400405997322476145020202795492501993544704649984036542221025880624111934564603043657225373243465853568086259166809224955749457602747067782554374666204360552167163519903474315876736471775879291458349512781639419192850351643513714458019111902449970592995158876940718710228277219843554700511029012322019474362211889554561605983252921358573596715889287736201309939643810099901792739717241968604640425301083218513215993464253950905987799934421858135686418931600111586293910655875215175612885258718810158262696085908614929642544268259655546757481010403995531232177259513321486744823847070768481301526734489547735273996511519764161557191925755139548364317062978097732841844080878524263737168188566210771934351940700204910720192874922950016167270856585890736622274925328281001959387478413364748865646349553154671644842372141921955632321304587636232962492405660277269485704719632709301049715753117938307311019973436281849536763004243879640819258927342106525026443034704556479944031397799614530412933681118918676348477120073375972179036857258938640005654250867452851105328994436922818292260481178983812295155660237735401728435471442976031738646225105736862607779603486522137535732042474150420656059017368323800642806870326322156373984404552961513531858277247851291604286036845330669581073209562634564678705360992151066129818210104661177378900144400607453611336493561373878185457143008825961706947107368675429180931989564818504213591466337660500441101869447285138933327690778900005246091849754306444802173474507871739604125253220245319432179953953158418293194367073392513977110587762645305624038363678774288651357666924078095766088977443256458494976191816612921778052490083627557416255073766839410281865622511260396779074530358878339618239137631184192303201287559384604498338592575567461862756799608599861643528155724188010116355986990797777395679338248108290953227503671487504813462032669942937614208729369566838397486626557628156524394787723366015117230099291683578144498761104388874906308176960607033409247602625367027211457195126751407877080714012433904826268341841920598224535325875906748539861796969291659355353582698787841548937313181396364754683543689500095424000999752928314508128045294733578928920800077166039836468514237500586796574141144159778079567536983923589573368467115934904714197931802705343147023802084753221843912926810102438391578945583994179240595029286776009294666403467961473483670300383567207287792076606713980975835756478075144425536434936462398596911670577803404924971109852446387186469316313080013636882401948757406920061413793536293135174837779678465450833976689507363084631236750457018915358525283348574214297859787729515423678947051235993962493843359864051364454330568231180917407540945441725350871590433208320926804519669010824485838509230375648991197766508777422196725898701746005795973617596740633984098908225853494157214278774841886153061556784435826527700069864805167830733174260187054416338715031641671788695913523577167392625604155737421663467995239339184520568423529630304565348932630384701282348542419598075241544089787590398978965045914759170598873576638997450017533978244411515144507593471168246957951531200264923418901648963014650700246706176074377086859230940624251285517936097435272744355553763844570955884423691886351736266270871968045525357953501369442688719799668370191422836509151190833265690540003485079565679571189455146961319775875886413861082244033535139171436105984041383895894215670001805774606105894758755531414714806162541907990487049519443688139130209034334638763752732959123224233756949212515033903068140818027117980227722558196672149376726978491830095058694405079459547542460435295662769609916125836904039984161648814048429728690100763028016853718625834619245473529363583141671885513229789882811767336061966234904007885723356635905994871190968259075779673897475618500259678288153337255757668515407780938752337555390596955647291018734511416687572429513023075128627155105280071080409893825433177634838742943256583240875071686565130795911925342246587868309107126878941496815572262366196652305209033794056865626795096871698856406797629245114174881035212984167623874034726149382625628037506821375747092078779544357690446105680442451168339383832936929382621576583086496634789428283955216691632067451710888582304007137780356942024207221382871414513583802871170170505272061993786185571864602225622716397614924525984467704961422418262256529152219593054443364383761680601353695632158450121259654954450079202645863762477333077295046129595148502695038952686522552746937593685033558160456962930203510292577683352272580487148298523766118843861810559492685174510637781194074866683229729983580066431029685012210663073062291382180164096317327469680170795060912056083702299967390060726744349470068720724633374043755456621958527954230953560922071433747004789463076277240024805299187762640186553640848789319200739590944257206763775822796144523683628317874655571487368839511075041376925619235916140340505190155722910652834400121163112960232940631075191383702896926550350514835100185220935442539309231941375584242557676230158472374172284902640227121218406935502943181926878605954411465482535137615709700017338381508469143084730339897420495206123076162806955900028433724596773452856696768088982223090176483205370082650928963413678329895038048434890630174339845240630559685428256139361634059007366526241773684692027623227059834309272473732028944162078373637786405368068860239492418932297833517104605683221166963706376876587686992853661073081741334774524449720186983870713481064784315946177894483633626402996163165823151774838282362263052912423072077822320582181947075289693591361693706524594201059306072642632881206080257884505349861875865560026355472266100707822886114987275961728079028505903518807424099845906081867905241396918970255511645793306898242476060819649564996432706935788250857772442996088019138296925687083653492127402654596015328537960968434711622590197272921924030321549205330282856870915021389828269920053080620223056770124062714987107817167608304573044406650734969558418325766680607551444793499126615693376517028149172890435499877780359622795926985085665882948450746342557330083078612101855190375963442746067419312424301849738582896661507424677265367895017123559185466724107612760914721154369055920818022602689664782957284152571880421464800392948402988751569861529931126135991360707863816874141579338217379274717730781339881868128783267916182898758263531936721265252612012622601635041819009908667660353935820552655670526927872583281109468551538953603448966235739058984362117976978297469865654704441019340069483901644783886859633943870505941137284528517702388586941775453368484758519765645989751203971113067608812045031574681875211197412221389770276620872123509376522808885264894572114610535378748950892176288703957002658858821533769243668516105053778402629986551440556302230174966997835384668037225913684961428545654102507929057723290957607349275427327250655735937441814677391374834270151641504354617436416486267955213467661377950471358942485640338007726864871877445976233818402123677813293413450470748791544416268643716839112847012127157364570977491696092063300531713999414248264596770495993175695608908039092382214606397765279210583003046091634048769286031560381335349081553822604432505393034233238786677202238093072865129269660314580212006769731252332772489777310388076481667112010905157454542637735765432531937621797069277506094391373737340489046848287708533140954390340357809854463766895956711388082331234816594514270259707858799889294104836762338402215210859557387383848422166373122415298239093315138344842679640454281763809483020299006514576370086604895238842030553080176344844074773868223791818867123849362256119882817114743113749178210789323385648400099284183168706234056909924888666002740058257247606631314145188425719447334017752082218998825905855250743061587802646604927791774815121592420937183385107076058267601783020852552156287425587128856166106144193758445553425866826368741010408811393276840333471940147548305138781136084484612165640337299343790346589903549294338463049154198382493476969588710858415949589492403732598136295955776525037798350370477866031619004735807847245728400218406353886510721316489097749083511250822677077849408336299265566431717563145747692816465283843148769703475745412697542045313965030991329509775118482747923746219363993396813007177432979737507917264642447447679423129630843760334247245063016989291514891773557694517696980802557868802352500143771378194915280821705793044832926613359180023585701978812390165734331187523510382417087869346130011886922286727944435673015840674210739531591630731346788052405907673129776030852934815294407177155529911205439916884047078033042418068382053052801070040430442100777470967388604723840760106565499472712435257138871883405880937492448050764237473274433184829805652493981012733526968869570233830113499342575023897169896420456835331410046351660199654612111916571807671566580069516959900228812001133726110035726280621193265253902662527423486143571024458697736739473389167280950538058093369719205132409576289520460081676459667859578623068751896701942628805927422664334164001084380845090831489889003055848386797062017918029231008655967541553977376697166321654326340550297813258039630546985708223066038668275595755018765180076721842715433421339871219477068904197474956484719495155563352701776801360378654412454455685528979540723550984235762203323695522374193052041525609734707133577252391031990446054690522717308758348021011935703534154807769228151489025450957887634419234535631046838281821134618219935403554862482289742320377545159064809490353825130063234047707170493637966134263313062120758181363426636590081389627509117459067660345343014337301596890855395639670536185065467850370785866334692445425201982024649996106820440139341143373587089519903598510370815817467226840056471917164800552847909280303406613063169234076857425287049688215594831647987845283857860836258789296306145913639488330388335961862785914834636730153697140664043956810933246070200288633560137824969194840389579440758105968311958413169133445283089376622607870054994331620049371244156166057038336179513443615068103195828437056363689391558880815602459639351379055755594831970600793565503964675895370603526192062798772735383133372849624027263095847733687109298343231072473936874032499316240055892295009727196681378519437334742669094666877643113956814507310859987100379300539861755549955887028727787572416951448411912396452936763702845847368726739775392296823834976246083830549744414171501980405481673778574794384659434886270442011031782557878987949911657511509080820288290797559680812668362396689179403359058262510399856426638019712531505340190950009732148510547559770845570344554007229226013062555891961239863133930361553513188304282862785736846833543494295469465214506328584697249554254445002388912169516933170775559376098069385818101300319437142621168094180718173159521342299696434974222855709516406801183165235847792753588037824195780492270372186743262500764982522256779831798404156757489689967143983329407127031963721830922304421053061264608250124568860076656905871002907657828510558625299211004915037327623682059409641321779736773998915008981874726774750517622190904940533120036813201133776115910739809266923879213998194098879709253942744231198123835686088262225505411362843544816533300819322006845282849208671898473764966402757558125949659088188340670225196801042391841474165671710477281616918307580911450616216327436252168586311992427541660540297944268234863379122162414665561855837757546617613616089728926804803405314369470941481217265127235138142697699579675817551691172579486940645030576893941989053405057478233167559938561164843464659345729198890706464945567437564582469438628797967692680048817094003992406677484496791638895515797708284072259779720133518749913786898758409128031445726096614483715358803168463214433174790215275641701790525949067473328151533070620564687141101915601885418418291114497141348235158317952274189189833631540160638367047562771380963410010825090850904033634716918983414842760149735170975073211863763685304954581349775174479840920690839887746338911568944570848867513266905383524696524913419303801634628807567658299366949200731215637670659312372806087661431050601519895383933119001292789249753062036707834129568664694684454292857153424294024910716958637479061172432749420811577342448021902484551797627918939631235693593019494399060383129613694599145286336660836095036477103114908870979692956205934171786331238457637930020367585876163059032556067811932164312042263514127729493207838931036498049225609882027049528080486494315140164369738266021703642062850798912831155014418155188122311257510170134950118161429694878492662045434214516827671631949850177370547929579385562173227848824405012277478337057301142019013344751687878756422810794278298733283783002782282948418654196374527877622394472283706074839930115555307977199371780665368735524244958320933497818900136781398959715544121111657482520234854390110057399734101958814779125690141617093031457415443629991873355767743085925331836205061547750718562893070095649035173202759015381737516637808002720666187525708317679137640134255541183599580578718810206059674321409511733663485439062081584647493535480036300878844516328716638933822556553909302596342730359059504766970070843642001528304855699622424015273266503626932893919455236466146127157639296668837398700751340100012412720056908448235427277609742134511283003172620052388722470804468716919027221366644240947209033822002917966483950951401515754018197429900817607614415130667659134072494601110042835280676485403523253179720532191546998460795405213982013645335586143061607900004602630418584058411234462805225332008371724101586721778463823018814085410311004513617072161816542123207547018547860658095797610729290937328408649030278675773287186166751276069462266122900043310604537772031214487106818347076518652816663072833174051860725312932955573457366034170479794392129893617766843524971901714208498499001932059349497696980781954920460578064125785521195369034686653631412560590027249887979061754303678873686206984230085773535628037752783685764771068735819239550717162951234106415986539117578322629524074490444794538710783784655289702438972964497712662822968869734362603633604260666803688016383521850015740225529635776399862487129065398636603666053126669536025281526500739117053483501081275824830256496126799868151667204301900483781399146974140411314841624195739866615769362983601676328229221045107040240465129245062567169846723873493148223227679217362796337469999400426168752743136480452665585356031819396683506426864861130225993215303961444204109688800037190056624687437384030958068400312419767311472835401602436004959675066596686732598987211175423236271937136555698140945453779241900211889628923330819637572006979719924858712071353831728321953759581392606484790841030553261627677201988067064592251010349065822369530374183054080149707620952517825996749225806895437466502604371672680216773111446560270532727634464564555201898260616387530587456117185597993223642706326751758891420213614135787970906400314461175551293729196686823321575103602571863597903774189774898576102176384192621137416672445420719267977985336868775482176997039038170156790401841421552895272031443200297371804317003500394118190200003874460772602107693055181914107413605628842441061570072625225584727462506792603589484490337145619708187494979567269925256977222139588137559087572040548705596420361423094083271387996172405394858168372044236170783200891855692098274283235660435006225981731608939614469547407620220137868034426657176003803214874642701481247738795873572785148984460320332147585205975978485858778830406486872130475287639648303034485530953742271038181951229870400485628650692263784945522239735987425804022443015688520809435271124609489705926730825320699299797887275474149318774421435262316560668917576082221698652305987722832141283209664817240614836859778581643328755121321693163256385261553877781728807512116256435613931947095069967213338822786779885906223286624991130744532831492849355239671248737459086416213774703760296523875839578552960251443030856688853206843737155477286365901367545284526749678408111990708971328724055758931263303811666470400685837694044086423861368729363217217132609738197393940594782841956679183484335844799031770931818306445383042702222662399708063685120107699770282340285557183893082604808762576553878899810590735575088667549370858036731144382466839912184748467213080684521764024149677612543105426550148314795158216509957583859345682083619047457992478691418838571019778148626895606640827910686625046629214661402129314003301464644559639656597261147738032513649611372013029415207339433096925724767713939509842835521912243529210243312375178694031917918517993651025085418559647328075466328832121218264025073778710031569310569516770414215552124175842402652180286326524086447716516234426986185046175104337428664353059922479190154366994840595304897775074727022852218655796826992388818000296219005704254414683778974445911348080144948832869308568516766086229007655484303052802670617765809942248981966870393863161881445244309238390635454076286018985047836518452202499967796265964653378098381768476152708763566231762117267507367725383247386369702344419939377964713187843911810971181983756011822449900223895684360475472568105568802109645592359492165482510485743298389638473680250121054399893421393394599761528723148838556110183998117030050612862556304410898821746809320397622454592745546170235753143681643337109190600428701447007899556497567205333343180576146572463080681749237456767074696018346946618945040685744731471123466062398370672741139434041969240108851701648341904076684156854945572740584534302837674753799542252839949726030686910053665159052400754322096926187104929703804785293401157215330243478073298078662224782887281429037270645540730433132981926166303156394786931217021093196798606576358272559179809087923202605805507169671774782946023620866215713681180584064095570878422428673623350141742575038478928639510866256009521627122050067388537893892027228615380778677880147833684250804575322808654182966457536128820425374087742959322902752751383962064914724107237899201485178563883073153939564116728732504433624012305608887635654701491899464241109045346528187282353155189987002328693961320583164020813507432918375184174793395996232494127050975555460945585933884373038258299547503110392433304253937042407054299896366336570100306801834759137557021533917184120893484848301664849404915093383687989012882292611513589615014838076497863705032011333488168663047478075912253869092089686625899053002656915622783090144410356286232257935503992448326965773366713774136416596226736930998828898355743553900550594463047035234699513495080966771882923668640799515579086218098208139330882803010710148468595986401817446351832410208190449678918454412061424042164548511029215244818741565816501344030997159634792199876285936508852613594192647452434037145854910004994155454225794270613359420840098252785853183274304539454448309063432744966836639261821844160572255261051004286958636282591258333029739494470737438297574765495106341682154214707266955619610260743525486167209147910207963120796573525630277792023351834845742403482461710385055690024393490080655155255849221779943771946839905155579060741335675173523605895923872626983317697759882709001722994964584569374041975229042665524897606458830218230369425747345544954263506817239049491843513970681573031994222611060261498823333988308374245663772979380996112634840540878623557703184308205029451002106153547728611313167783454628169881138348742278854364368166323668387801067458725228750613545786276853457342640359913678231508265040579981924680860386942759185173197621277526437496607993682504570212084692622973668339926437890588733508869979273209808459722618635702376134155476712650936004266358138294681335211898676599500529709101815811159402800944779398553642913685407911906751206380148751314610435834269633557342709194945138697890908164046149497790274975558973485092845475020772832845872278689633163678689444374004619418727812628477776300987723363463865843629376771560231558665242318271552709685741495157456737413951930179394235806187911226032974611521719473804284073578721792784626014736815174479028597948149320338481238101439149760745642716008666631282428020641048851740239927097654177710743067280739732428481943654987723036612485094435344462389296455296544210549373587904641993442848326209430533296921198942545842559732036250392134175706435324964079242280443549673200756000346927304441645534221994530824075360996605355201435797658573845017569329919179648394430965879485023842685908652232292400908990318710438103836791113219137445628708397261229560664901363528816791770930019201064815098599811428434964926885520210744681697238583424059360520117994542450626939785063020147328723716613933599956892802679017865440881202486747768713321907497922380769582474322889193137272779943174979569552901620441706488218952108918332255298057301565574471294221236257397587217168431316081901588789463837672805323751775975141195532417216765942044746129719845448366471974097132094495681893726839317041317867421715035847990109774980630078032290145232734125367868666319784326331086994340275230609494536487792310137362789369159801996245731719381937370194467455652160175408910152819430549791069614860088443251738577098355838060969053111310503422030117529239512474835239636962574083001634399544327790963810948581408943117509550993161252370422174693004333068076486291489921857071933557778108420338312532326410098837792070379426466953745004533912584991719323534065469005224997187150296815097340816782249241756500871574654446647115058567761151712613594179157840853124924868250184449007018243250294458138790603653331698468443266186217354505104614332295457942798574828647871838541802351746697245883555978585537114858519535336175777373624507633186003129721282372147483505682887531029424134534018449136523028275144758679703128106693880921136953222991178505467900173934955141895917295434842307718912933808090515921448290273136276312171678686841418341537179381792355432171411062916266086175866890200763967188013682774078815227444943737749119384269877474623003477565642820079328043781803447820708268222359043151601229820307457440919007898145726151524188968636792356935095718597378824800391219503581642580975581575385071997653499644480784831411386817252150061953902723189000725311220049630797923778739620858613729879989188455202536415130197444773372379712291512058332807066130285158892282977777918119815461136578274769458240319042824934903017141215558347048407943129914716050942591148376472689722043356282409965650728850810188062461876461995781280942678426308031159328542083107725633824001679792110129106920715347056469627463095848390092430867173484445066646635258798632932609557302166756752453748821312873276195552873468726838099761649134806022959558504794914509281258767119367437024191492278136214623121997491323140528046286982558539645359078575474382371794651108192579463854875628948223573538210886415010502256051023430193607521046181185033855485901712367931915078400866740140021516153577031842966696916531851718406344380247927998052892264740608068471901091374630655646607946774503060312751247229040027751809641089464865789506783192067773729569259506395780939454266319628186803528328940210938419410985894538550314096940359397463288750845945620926352190054255902565002651017415774630385332321755406226523707358033863875663377621884739859150933910353492434713566006676551824858551171822448565552349738391179600467501667155381932300545575022375041027166907217521153896955857451322568542208424027529668559483979226126030559129268037099776881802301097580108540900002040269070819292150295968518414069183702043850362442549950181768841814181503985358861204821536461386401983921973141810373723131790428219272283352027349441690230961879779257351676017067360299891675011793810931676878257914140685706757432719376823958182906416582358707656260990149538491246059402470550670806376983373011535168384465631792031855899275842774539345232804527324481849567352821828110433641039662527083503104190124908449080569798497314948940022834951101159425180372294954374559169684234744728380794082924668064649435450038916540799061552362345860931601186004145709125670086855005022729225637058634310421301033580240271882244293049194929054605646618993498551646086855511842972921402457495273869435495189330026237200018691811182085922057730059417804104159982465449816152847386460419276408640012977594683053495350787291307463658423372240245801213642624416762529836957194094011280998825684309772916262608927546708350290725371208914181539548620840860413575637036187898577878508178948129026661728981227131025184991953046996200822554932285425018273499568593667065955163564982374037347762372756101525189049593099948421360435244976485761029849517648324897879401289668168131998114392666207025642229141563532066255208367541942168328882703643509720959217790693986198637552583659263993330874742475171608167149984666034668349255580270402003839327905014239965619535384229889280783288648710395954694150017085658243488497518731008901258567420029995499764710670276992748235595720720669170130739945580444318855125561092198177361857757411257511162935402222976642289545590421775133586037236013541231368640017070784338323048024559615687549517794930960747872584291031168944519450409162476710529031118511756515895780309320264336827653928753921824625697006711601233354249942327426825107847941323265050885696579343164495052706002195948625462853966630833406727765478682389443431511135280494011352073423771495868514929784111333615694967427252481345428579621736760823673422942576027862513201355701852669101920883915304881798855601777301138376812672431727286506100850023023317625960673517557809106106841339136273122621260079202872789697769771915107603374090291716257668174584294979451235637835282647245714719911501922281102643895595974812189033114144232787638154068291293198852029893298980153877702153487443812759289348101939025254914912410864989370201186997332430275416636276395169419928127383489857704850373930921143424606263932168029501949355698484795658133333546174482127965332709900364291409500209657508909981350261458039360298224752858624907353619779620688659385930022571771655745405894238744989070478688596418637296085828528513617368116987755523139664237828822132491749836152452041983697886847372412827263792904334876086591109752016714107881885540943142695559524556855395477125726457088408020672731034037758784535834104501002846382899063333588191517003961600851350827933645326445023739884769426096919670413175436076630221338869631282674692749288392999890714107446302359322459461249977737485404303660933504663048609806525118625513271346247254674265224978545307629467298170343328163108389696081136040480820321078874259227675646667275008273743593789935500709657037198927030801401782142523228629842554551972153343162150176047384602740938783843011889930274369454298215373629061751891552666801459903688705102751516002237038231348280341951641575870034128253786271336754767796550669608991792159126242590961361478429724042485489042075169976124849292230121970329717682386517205390314011114843232864122740655935490235126003696524265856738376264641898231106921889998299671102718672537638575707427677908847535689895355279249109848819230711901794336321785013054954515613640749307865077179422788158906889246820340051604128981583614228855661771007996625989812860213160142015947656830828548214579531243340926121211145915269979430246549195587928499101415366145787580925513540154616631532466173442968727259607378446112348056808267513638311733702453991285819652252463298176558971293644473829784283018850536281480763839586921921307339354517676609110741813175285638705538954438690637393321996317954007698240658601630294795596149380498094218979987856528164515835704440287224082760974324980236207490142609912239383906097458379060693331547843800788597061173816042449725229402645135581932393133300367480141644758900497156607380669553976180990047161686285241094905193763989477415947288680923596393295438447093830383813311265661247545043297256615969925929455411679671310515837641262481599193730127695117253353551255457299492683452928177280439060850707312402465871393046897823958719383488542571677300213398301277968931312780448419028264180200335735850981365533362886879575664584636322158364025161325522842845955422169679662822520935408762951942289998798866535104213819942244335413099727452728528640234338852570595969766551131942475852379980150378216101907414389285447901497094301944344710981114749597563813654946881854616156369143020516277910146021925105180387125660341648065300206492559465265005505059105851696738970711061319758939251998003687384346488269964652868070198226217796253919283005280466899962171180368845233904445326398593555571498382496462273134143616380853893914783439035455662390268103155788225008388493359564800274197797867119516636941522707115551942024802161169728923502753178381186196469390968358068612415696185596641343047597896510175185279741285422981061799521194269689859790869751465092644583050996439766920064193568963695532587430044685546190659552978284435385746424956292231380571885475804394319094233926778818402822463344780031374595643136371457087501474213253255940880797841310033264307715391941185590584200624331903554615499153930603656754018494036036883451966333721574819347590252350387478913296380811104403899730743466656123023783425038956493488226590976600565300395916818942981734452032529138885807194969837047362418912447529526387824153466152247898913518740517980330049285673812974825985945227154242484632595244777929779064887115117996939181648973283550290055736086871649945088310577701399941765412755213628616193458440378177618712356654325220143928246441560894757840185510303270736534886407420369211266054628505776405894701115090059233736961144923008572954987428011998829529232726505078827398978862117857900331368402832501248390216588638028203994068151741577894768412111784258663842492935620685071247279416475299146032080105151139272145725434127940288503475167368210813038739294016739870770863847783725825329732255216268715086930009657943341704284905100161218833572549520816236652262603070652315137196871387378754065570701131004682031406260846174445618424043450863042455117585225261284105446671579448960040402847898391408335806189030005608425677907502924164978541998513644693069627992979338163688670789877048087725856119300801953719337472216471710751009848459720747826234536353288238555273101948713819052504533820620563204700289787908852847341839236227602155105041868224845599400412932355436164714150661189366093398747169973488637418614703912234416577318681664833672045457374212041287906632469028344726566555209487156953131875379585487250395189772967837372873547346138537650138694967214529894536045613776194642604997182190177808399414686272744289277434394498707938200382936318959053473780206846766336654316475156880200115515055878191944858736096414093934083048629300088715432679666383813679103894190181004672356925758933398658008446567077024904633034341266584798807858734665990347405391281974122906675880404529415933069351645240924211652513529665370830798363611363370854280053388045718291065130422619270300784175880191394519675293399622674297975228781436626093097795007010655566367570381321811739509638213960974557149480463106365501535621302253407454304441547735614079210167067458022704416589244613468641617596830267700489053726679483343077073200862001352775687876769924816178386037227694795526158878313527780073306889605726310812316442499529732528066214023241266127936061589306607406518404180732614931591027557410907293035156187485961809074722985677046980050644943378458344363256407725299509490842268485403981588973197480739075306006522346526801503139684223611882117330583597180152247531961509148585763680799090767695943459732294261706227274486115477867170498932118785447808042759277504676735329755809058418260947374418583844573169230497082221867581597274435395268503142720965074151497711453017548698050133990843552683247730620230943965942037927826751149351928950911880593585153615614808517020180055580151581102646449188819099595005052167989772865517365991615567822957606350543688896906073316385674686671147624609959809390624121083575912700842341230852105757984557961853097358984887762540810852829818974771604554809479422101095623083014283698126389496447622778276554927192482979723219555811417691718716123769306190891462475558431466545848152776903817447701841667952915388507632590291964316383994576691205056880367113224847242815927262968029631765950668278978228714269445741003832221688557357732458624560841709967452873714800944716989117220713335485150146796351480291056983256375375248188101005767065771056146010455774996080674819830677444030678629169591521753842944043977487789507270139805672084726370401425708644147268874380894924905516725015556050782061796907767280477894428009788586172107908858167454541546009256664052959502699565600707504741394359300707013026947340706975286750006405906621012416922225994863760797020401076002770648187333696233510688218152103226971094624963773815282362877891168656081307311827562829500264861125757539753071676096231627248806396799087166176879520956292403859253061305300248688163684730386956003168445746136558998286605815740473164768365113863608441824213306098733770564742985317878166412471546589951629888500727372269608781199843344570026088263835586705727405135793961000437244315756486078978733002774276160010405893936400529054114720335094026884291033069960424330022690315374688828957998936653269075685921200887775079605859310669994012085569851494789313751696220296297800644378970717507484846598486753017146816001769135592429764984601846023686846908810924078083105105410910595021956075095691155536140600045551285249428540192541356043417673876493369248774507360142734858595500567259583461961345468221693541517238015414369265979904004490710356275327821205059676031893217427007280539349947111182677750441729367441769210183293934103463384591734332313358524517920285671408784308708349241340893295392284880990924778716102904951478395561901497468824724526153149890885749131018500958739933593004380218720175820454989697173210336982717516845317927640383778398401706053969589970460846634846475091448671088306181953280225252890991591863239613014908170979710027383784360885145171239875375874374742054914625490914375088203860500516839460185948764612135711890295282945862680039251459472811372360574230306796599987148655362969538425552425365478511411447055151121703552500275719924635302482731617771341362435711511155598612113153152175463367512257165207902676404549896025819348622691419357239975109972430824356435132751055439460715253626927126315299612788779539711546844467599406227892890899019677204847424340771865651853020363728153524987927169647305840311595336969767642428330431037778923546047406457091832526188223183618792298265107416091571896742743286970755573639150766750447790411481177616229999551729484422215977765967947383629171552915878378488021459280433818799752070136691150440638814592038544884591179451283734388041869683565920269324521262694657114372024756015875157429450356851973933845311691550701037236254318379612296626134752755801146970144599192235749807345700059411508966841276042355535079201869806012618991607291197664159617879051436696139011847407024379132446745205192145204229192929151756577332279942794926674551172128039629257802349807591729058545179119762763545076379262529784552731299031090347021662884055934316733110324912668415257262438299122613888295909116338826540572863555549903450770931262409216089303377770823606378467365173373566451703355975890425819540785352055526045313723179360231094672265984117167070027955392438178016638536239611473916944405901402255161529550941512925650143525719849131984873000636221933852787010334629773370492996588008545227842644903312133504713866131064217612575197467487302245706400102233171843917935300007704069244089337794031551510710855702818166891087651981465120743252479145404999790705061342850070675527010120554211268501341461155415007857819221546686965460678996375659372520671655646262778962826746338082205865559390038046770234165307126736983451986147080497907625485094757027978461788181492215794456561860800827704934684742335024202462585275072533320621578795456510386297409668432205739563665241562053490830919020817975312097754159525384208916401735510429546924647427631937992103727799735652983731930136367370747266433152606703106885868594753500220251704232671119278589293159661905970199111721784712687784770715268838753612107965752283385877463825026276312921251480450019861975674434312606258637945238729821386852795639631711264121963027169028204093777233120090340363349853479385433853694315241365437678615389234284702960650859837494802536154391402532086187840496934711061064628088772480481657903608705160939149429859065641820632389907269454318239838940559453480364647428923786204304628101509622226194199570822179051194233266908902627764946502841177135061127119443836619517046285182631725253988003255719036644840538939058992892068320794041826068479601332425911987611810110907488200572892492404766639693105510854164480318254949630663070911788784696748755482092881734303104907433082794404238972624701848193973399754428384508136352235279593349724594004325317358001387355571226577455367030166701762005233602043377530763482511295112544777413011612648183354931263379074083956814146154263621186006462065919597195988653210960660806313705125424624659324721371929517356384880521700517543210532361630261487207658135482367253307517577638236350471369642923686634501213956965217463306262635219985342399692192807813415498008575579116631408445280614487284838872443738390084248735580140336147631594275421377335062563348507841640583868711863990814011756462053320069742904121438879091674058192411498831939527536200814880017766342960341310894573480477390993899431942162764259357297422319266753615668406025626170665523493066797863568831385657810072080499968535813667034238266102598051696811225726038492124472250150956864606122779286200106799283828751074102869969080779204499748515885962985127669930035457634847718090840199808772477755398422446964680139443799470437169274182372226054005843859754992108290306060443808467420639719651926303803049983264662893688102330020540899579855253161953237265893238911557562440187106981708717563889039233013734758068527734496577806881555476629812824722809202417616365470595367499994265524548614771833936601616940080356222606982787638358038133802898113680868648169364229358889003853214654849050060066645392408282371553462710852341387317668327844065668681038172916296017039922125221985783880368915263677959767393205450513233126584783695110738574830045613390844158692691319279375661170659261679787966809050934534758240086168201463990215966874365615619717190798537058276334061420202441611882493337285785348627698783452464103749330904687667241939620697906609498519562122915585733045528816047012708003238605682648244616990473294443049767120929636595320376737408313878388118908319164120538446548293616733457523860372352391374243596253256280704804305152210992836951160798971669774600328999280239565206986402133215116952463618775332142940061381702672456696233644851736501162043647774628906566038725293321361586472244817872586687968043977451091740927868818085228229342460181072015633428711169636237312924461910848390766298440476004804501718991246902994276701542232924069141118573360643592211317279886957655676676577152633809408478038387352824055597944320366188529441832605511542232616500300925881416513179623908533280054748950145603881815135436341287681906644788517915494210215302953610414550680298188196558996533540556827692662744543944905712630086880799066391616978388638684306927480688543248997467777346594081223049978357050871053168841562691716116942816527147388916051004487880280121171720284724230274485368872865767222158865213331378273249567993757282979464093096163885050574822866004388850392338791452105808041927869774385404805080773349881346653044859197239442174148865899848896162353300173353838785223201035038062571195547300170909258840274780914500641671416871304187771143031531753983037702303588921146651019337685572646524290832632170702898000214121451250382951759234344494876072836991904609525127649780944136392601482229930394374692715915645626072765577978602618667901496741181453799761100056745090543188024061051648362749946951988408532272409122207814847708555609943838654643295720179393960349005428022012652708725078521046064240074171834459496389505431006656881018063459532070248541032281854605722122943087752037955103802868280618372635577223107014541655711289511547967316734045840890039149912297128027706950448144541749579975076486521712114328930244420220077614798076196716613405189836980964237671204033217372568160413375110521430080966054437923416152992576581152990279989216290554359170393722492989291431920639150133194136539298488879062756911140347474494742596641473889693788427946655045203133002308128556506984431352066562745811644286340070728163374980536666937986290001440621572147976242027426414468896193254070106255909768108453385282721005530941268391755308833387665550712261536309811302732805479737561695308591329047898059646426474438951981049824491576831821466807073768851884264434537710939066643869537128482886454656023966328130938003634585707839039146561702808016223720068430520848618930462692029480813945653455136088479434827571433279261718555186358111330471018640051301162178907326596536659274980974171945561994881474542962473200467768556735381647661772217754813766046577365444031697721205554412696280214506327255445095884027299980209532348329249940941184694151085998671940372116636092784643354670588954419893432619926908853142756208955924307625038950322401368545981611436986008045258743881782058923818860111033661296898675656213993330170731622263848225706430151581377360942658050289796235341021621500509529399706512231006368342364082998989161585702553439945590565197353737226344167807137026564857786992034558842758384292609905391382046725796064459401248217205420632195891611225807839555287805331203836114211598087405175711843596599653380451989647242783209010216446013964285360143530191742506140302098679237026137728147980630174839168833954965385326687112106424347799343793690894609919885508183614225247720152741169101673952342828178850579063180004805530308206507049503653756507621635675492809281712038137711335705778503687237548403867575445108898134063360236945037419418709746811657746179583723253849035403060794280922568849100038988632463132424739716424680760580047560015530764570128913987282692085263149341436880239726602382507336869509866561552619572951414154579653493566018483056481519627933588245171525247011297319832013184890167191633890922618640768256774749750451387766356014947798924010221991074495486611532339327828440727791378277069007809625247973456829043906530288559640664230058152939975002107878761938211293163274239088696478926024937924206783276038861093744531183125176121313018097927667718709623302902027033140474037371966284779071677716816582292172280342811930345977621412763873425765378374596008528209125199205631788193611034147764722664649388764682407197022321364453515270096408577806417394689627505409602448178191951728325628115572749543611944302164067745255675725718585603898628452261968806297040228258989509947908906831526810738139939556532018822065322278805080382266304491865141785873882050013941282194213849420780507434401496534510642440039483339239971844029910932399653146961487684205602079838208689888431086946523823982638074007754549460767391745201534288286201196127553017482612600119648880864139522524348796272298231809879043281288972092674761705654939178048081331559255316211805732261685663120612991026725722634092708521391032847699872113956627585426870544983391064360038501702133889008210330782419950234141298640971749229102631838703949226590100821344394874199886586990120696631692377091203549653826654936974385113975504590339971776065346544245238077952079039252305611807741433964445901758581408866063241543493938601484773630656095716102582132026119280289162305301885884885343864204474481387424243562891951446483640538321786662792530664821594661820141019421857795885275214806167613427518381740061104019414156285711290863356169346268771722007866688202219380974122782674851856224401653474376485411659806760969697054422674753613257366852812947728985157322564345199768555571932625360237711381231427394290085186519738828956477010124502045852573063242312952553495797930782042673969666690349191528042477713877377060022865039581081674577361270727105989025916040656926832616628539974543761107590519843020758667853435437435455363366844016032855960239018117241229906717008390889522773309723492112444525359635115466233929438195965680223397734763819105390252134619040819175665320531099789777330992998205097123686955886878965084579021729133648203650803275435989350844564140791852667135324437680111313555439695982621407202854958403949339825576770945094364563447948531545043586768898235714171920184289648616166056607436880598091898800819266312907594913855837123168738132386325978647560726748692597800724433892063985364023649836262093162798192797658517290052166061344402838202689454091973033749882266483869067718361996457513610848606532147611971814799471124065930694540442555906053689161988058913723971668616920178916753008339002539714073567348262517823638113935969754804441309562021264252637902541932061071375493022902425771418243410000385225757437820071671893545382104599965250227848319227314733407298330535174747154469958528533345338694906583529603899480905481669121704187073149920949613819161741092683034037394103458112682590127100369307946006226281428674429614259562348553416090164994880744505051742653221108518491522013565516490477510612992100846142478577428681211100854276016012245617672643397134101069445300632570602352996054091534534839562384218083533086531726027732591073780797289349451333815985200334810371487375953855039961404819241166669281396262884966513582640133790266973283900536428439757188805940636127447394339855784873705621034635266786000316455032147439168970970937640225067743173733841272626930484305646044519085948857910210185653207071701462040269643303789968184957360113384663572523250156727817989027516401299042228579968786281267245399508496599822850847201898076345560731261612877848022468009784493268099525455232482769849666446112361115673588933539614267900219783503956042484783356711023293449117417037375423288293918492783512828099821296332766445835381499762846802334961038425184088074096882257006799355238456827289166770191460193105653554039229294961828371341115049096975886500531759138265645367206688665781664081084435339214790942101773378926869543431442765001821673493814824799538048604306626349321492002796843938056536104079465464744952542447454846478208944048732596450781666583610186136539753550004323931491227389525400780901510658124791006308227997871965494268630686538232259976911187266521470819449424197060421202891040289112586758879973599101353086917083468370118392500256565025598898039361418540554099747291409352666923540074951427124006036044944066816993339020811303841838292361965354171929752080788963663267621080735397355532300628778491251699511996830741627526497210496986999330158945496241483706590685623657844356067140414354809253745185591919207045390078392874320656491734086611539686453644634984301014872887898854296448030687888347463620486857397930992333113891657403992412731448318205807251381836192507052308369269241091550090674363959530488449109854233672385931573293293292331045770701189700260019520791956140611694838791195314003779739351124143653971244588622124036378505534764979756938067049790236956285286326424829524576119898224248103614816642510430420419265024756121489570071373720809023175070400300423028571372803942954975726779496771690465014284752377258607933599179766715234266532654600786301445284119642014669463155545674916516651133945469470453798385830045128013055736996462877937144320807794441239669686330869915846136671625411547348513209354634219953409630390510685470875747065818182203721895624469692270019133580907709984278730222126999808638485416200698293567971056573940534822116251412856352019081471539384678936699052420054375490450515207983777348430775676078757903128934492768407021347539194678968896151541791264597132932241934216170973719796277419102210387414293694280137559327312612755894550320321335503695146566753307406081711478387161393057412433538786502648702294029936646907232231596842643523814922395233867387696896676694818650805361679714319212800763895334963308748519482502710803259000948260856754026437636011481005193873524289989925703100149154689292108481686928699291017247916597652015731998665864395087809293785202995089679823232861109248198920202405507258581092847110996731012115984178829631158593947087720044521727413944722443787816225842763309535142023545667070507617276457919104131706852481824067084144125085146803236727310186911250190980855643406523857737015066157220299652391896383108832547972201453144459321466823174959938999550221706385859614646329647928929293656502866389085864580891028376540979206336572513528747467710968297947944429351333064694937066952348245666773555607575962503567237686322902442451585308980682354636176902905851673528468381211915258185403049370017338196069415816514888691887640072752611358726271630251752613017513162080307930330296498033944388061681345628222547516108437011958041925832560159654983280644674783212173835311399233610396940789469170607809477357133922948127886488884255603437530158786490388357774134085812908944588461768078130756471370763461002483542135479211769872644955407157465729484024406172477016219720344848240559480558104085540306117130749779903661658794324280396754305187375542509305965127924479470787567173716598124865967729541281934919074375213245077762906076981964378766868222206440674947216381466323934695222133892296569823054738024332322042261128934801418467012365299163506258230112526873627733702797030645610827447094504394028114840420839242879778031155303514134128639559893915315954985661956086021996213841330622907382213241414602709193217006410350222164191197724098197699799572678245498723674219574356301302501965070546968366771197989438745503082276415354819596465210330106491163259973073443779966421538083686839106249993733262465133708599475094147894831353775198795980673814555421856705924705827734547567109176260574894800427266338520688839190522852071449654668276250333802508764119222392096631141603620821508306654089123320076793737696432789755631424252936968696008942394752729717051274666641521733419622865957700434873167920656508915844502748861433042027638149365243176470812106185313033481385658192386043197501722921002674006969795525345671649113811845410534183510998183820794004692405896893830803109157651242659208919115220215686510623874904639851004718185761596168832232119224855026526476922800124541030594781849756101220772836177105664218616053189861821788521929461100166032485219426798488742164554392414792891881346314432975911390566184490536434389464850786902017098651396557283865846485357737585524294094873929172697559776085740756861377617793987159033579545337417013619447641001606053330400798439684785212415948201641791862487720882294017313644246554981178520526378136386781543956318909579820536676345971835185488267891516961289728705811092266944898256356118604123420022050886160340321680387398702505956933897862094668136123814258932108923326272250715512973559277685696574513394797558459034597552589197958787079395948903220806058857473150531359425827380705086508274831346970380604463996239699943783131714761107692282073486487146120957032974967174938511970177076716062990206389334645694518449345487486171168782364488908595910644188595889799213854351229380577527941843837266515313487725093652458733438121779865945499438958462976588238171564687330380529485542490843715775245983466035498522897817244105427414601800892189510629864919018977283057878761670440155072467176766761048702205730050806885007965159089652326635084822735275411990644443074391805187909431854375790961498793684121225771296751094238183876170102131293009741661557562834530672057650925615263285802355876058217297372916418442107442550693993365668499167162110156921879216896797521059116439356590230555272022222340619906328924101263964546740000509554575168727873588523834930324417916199356136433842397727242564829243013260668835885971178537559675343990497028002380186700140922492908803167940786960249563383926163852739604622118959823674354832542826426246054867054780030335441057352964879599505525007732730465506962453018354836460195381633451761051585962865175817927001351287097704775986114124282412258234333310930024736524953652807667004185644486839034759749150528311849788740578392380412775503245362108187706651504155896430123057174018191324364140422493724888473391806248407156983036103672557099716160250732526101137387989749303166547120147749041880435083480169167442103028275487133133302132839922544520551708658651505123055819512356055211735039060693960213725739080441781718338601799244041035119757516925038237459667394684327247142787677623343657910054329268522945742394641940152869388954609668055186205341239510741624290839895538898191619327539541319138461438498276150865438286964679561401007225663553764190856579144880897220052959771376287822715072469853089001691205568302914576300436259226767808866458792893513686336142541012090077229608995497865494018489988468203836175315157822537718347088806572060647386655000659142462327355881164211136157137240669383061489457804406193831493906020648298856268013686418604303247798628157313289072520904488737617124703972414664016769544864680050543521709143669308341886929736585168619891744470049233758041003798580948170468753341304259117460346089774364481980272141643599133734111951195199558016604167313521308975330279211108527053886211898161939954694723663839295563979678264139497775889440147701455778395078680281074448923034503180237179699682329763739862706219907137799773816314529766870084743989396421673649487737461238685424895155002518920679544205903351941086542512706424226835383367303308240491390493658024181809254280050994606316915733600659478947745615516271191753783720656842249125043344715177394604834385764610118238135296326942983353097160658777371781927478368550829135508798940876405013710725245113839261628197100581915405050666942289238771619339522210892900813151068902051886829089722744015240922129793373627325894419894399535382002674536888277221410610137261656654835789963962562427055835605376692408510572801495497594738353603091256862507218773394851240776969823156475398496608896901470337382948151592430038974961209045998056056621668176916781798516567982280251198177062723730886179269423270920729639679499178297491425537881994274900394174306589239741108357739804096520652499801259156289806818217038878970905197958324995597755654148603704872127838754318000147929858707058186024318977689275990423412916619383098422859537665835691662742104089580298027336599723932007769064631788902530339189571106158550405907108884506211037875291766005172850801561865159761825975778502053765766186892209782045017873832460674212990742730073631299506205154730329983214366091828796234528580058133612508362736986659636683875685101494265973949470652718023090778200650174388667511876670178419291648794176034207421451308231496075989246710231953095645978479261644532096522095782091796290585818030048655685881511307269846515187520209126327127172353616205650891928578421149752167745446676657035794393712966204761172673940093600354120299676106617520756597759257323514016706258688717643114786499751694934910181542743063445439392524914419817863602859037536543715709159344315928715225339547712436011600645895470918392013588173341342421775718801320451892920864757339556089218409669516848340249574991625067681119608652781722500266678310230773470501082548507150534884145093577803582150816080506145674240307108002681782350138539983584786593181106935449391477318046687915707792848560664145922835042815408024340659301058437417546886186961061341822873715679299693982729505376526723835353135898843813374440053324195042819844908612837233205522764738559279200462796063745368199877020391472866353218851719708115610838669840398697158690833758641576785684139430666294841022550473568466946548419946356256472648096342493126047605745471057654988775953683123797992870063287383399617855634871233826556844180881934136997755916699420877005027722443655377398449182518151448195452758739477478932092785631869215224747178126789489598837593913261947931286026992484533579239226371872468966872345573163178802685216893223963494341131964674512203524951919159615330511197879387303818076081795533097621674296507916095678140191926917253285636246619219125255754808361453273018067950008450695128915354179932695826675411920128162661269169626065294586110468121518708839866689017517287874528839062299898501844165789909182602591120920376748935459228190508699791945398534188853127013742064519768945187442533711047887575150755775170260890779963103224004999189286635619207286152073915298610088287814337794543893409839363414348371731732725379404919520371486510845386546411677869304069813051051160621973232134539604840127953628841737830788051740447640898704313281685581560117676490483643812457525300912213671322386074270655747085274126100827998893921801859974863633011684988656042116629162213046776275968648228241412226900564859223723441194485604211224547066380145440610599580357119967295132579627792286552979744840250493306048497937255624709776093367504327525363370478975041497623930867353025135537467630689981186999670250229818855544760976631780438581588354706993988871597317147050721773784535805461631320287436934319653730673305035954852753961330511622317894091202881260645634288202013976183471799478464174825346558102738381357750977602032478071931616979466951305950349754044660936147586271018604378100769768501976788975018698983860585605464000658749407145812542097461342996641107739080345599825525525890976419621672436539549959840707356825064548338493155313096784351521323092886301228349343121884375300841017119504931699213682454562725844643116375075033313386855024215221977174326623414848109491793201201734023372900273572022535123270302686976737970683652905175821431136223757775488201583571458007347622928850913986628301305517126088945819892999657378611605834770967004425918893404380055539967759989360420746756967986421945503710354068946734542577453534722473661787726362860912052861696817148918642010234859449119223930750558018117034175826974606569703550005825535983050957103992221655651138242691506312529212661825877716111620822662237464271442863188576277740257132536899661170058766157978404635962027149370714916974066783472027666342011192044439153269694794514783242871345025706446222515687533987759211543866558346350200134422578189196777775727203352329014408634405989435873800170375633907722048489674694923556624535281787275026912102613132159932178297409105302951129625672372205997667007580600267920432239320190275249884886259411519423486758262869398049357006681581327984932677729458132624186412314585540232673081910694101555079318988905575065571858518353490843800759135717866794818696918250042144790210205887716403042098188521205546061361300263468952945195907374615586176826726925337451866354556755625339752094126995182416711850432706376594098610454703614107636614904140673470772579894510172734393093885419174423291646316405914054980681463368085017428798494075019549560527594541973387246866249988738825459519111013665850348740171404496783249429368568412955776373177305482296522628145429826876305747863776386716314083912856668539376731147634473394934831296648427742864559351039451358980567528982828052643111889199388279266813357745949078548460406269497578004473744495926765895140156095738304276720036480289626904691991257058811783838424894255202970616377462848470531874155370214452524449359201464440571467983247662821548723834916749802872664521087719092227950986975822384374127015037359890615362197265378173140298166278395719435056169614730209786787845002890723259921214602915152821616203062468523460390012721253573411603755524917086934209680298890901857937220620999127294105301289578453293882572753353493351704141444993197117773581281218330628333429382960597432627651517766161449917331710518241650763611938439765238833610008879668916904282907657235534620441442753879831781603495493867096901896420879794334068112054380825894669426188433266370729743143213227378337832400758775321957446965054874095872021004089643799416169930531590932914370285585543169514415712906869227017511696717683738937735932755245607908351471970532304493352868697843626645921117259325264076348894161915952142822346765751779632717318050832838749259693943739479780911089322772965037112678740798104569145404529519309462467890116125178708149039637559524198453344992508121829444735052951532594523335160911921548380542029175068924730893442745949141770341017236235187266427389719749303184378839402600250966203124740080381061859855299610299027980567868544263863180643514987311341234610857095571940742591634786109431996560376761964437878958606512590002183924125236841667266741947662673536522728183989898695893357121059499533236734302963216323114350617443437196946896886518120713114571501948114867674489819677435254919803991913547652667881774639527200543855521973480648065158052109947572838227851531105252919791762675896225927789954960161630842470520145220232860816134793260557830537012423418358556856340452212931621179429149896646359400588788145940168332753847911335837444827251548415800337347746260754585365282945954251646705283154527441915167850753348088335160654047397321348910684757349207282640760577907326127594968504021266875136668110329905184467975925787935163497623984502166286755626812368829975798302645503853483561838248378632152571306392541427712051330478087530869041949331961232951650504310159234452996773629035589282635889120582525474820578845308615177450168638300383686392713557720591954274276970259967074543613784262123988430055107873894625933807623835798960073906608672070784614976949129723059375249392655016822779130577810904007978080025739534856894201050303737049246345042056876345274559346331297563249112932422797455828706017526274541255130681497640914122705090153020872383228023926458127889616048290094709922736099195553413476722093942783789079399982575908516890087249737988507425041420818521729645203149508569249599918202481724738499887606229321939226931260005936877566346257675240903647432123289257954741205438539694377079420191351265442741602948286494750215518803944877857187649259817132053159020085111045979672076172644716104364157167884309312521855431037312741765942571313561790940945544958512162951045694823146694222320053766818880689024341117231038091864586488402332538583530447071746697047667015051171010777558016513827597611886490337083982905668354558173410814821347462189164968789832499235041143853776900961042988444834027840328851793419510932985552680292972475023792416873007326731719992651200069445201310525507227501273483350465317216339813589869385875055983979014395264562563844932660971759631280233510620679454252144491426565636022834081274147644629912216783152447273158015264014870920047631565947854435341343843345144719166028766915487025836974873287600659370053852096578648573190550392039475951957149655298622240555781649875615306397424895756979359086654392260044083669665697556500782661839891579969468389057659746539695802614430400912181387626386445631382752288010620936300423537565807286862978726341026827746058461010874719346008732812306938809076830315416471060371448395404678428936862758706070552973526279908707507864883408965328007045142981151797330330940335765086049739758278929598234860768371181122103947937060295431037898848095298364537784613930055065046179236915784032920939727878704589361143449825949978337696169895681159569720300015585749919560162954602054027570488436124553542926340997462788427546915558314381083673038656209905234545849040326142331928853615449684108947425102162544043388183479901062680765528575073418971180661058132340195109625511317492206253332763511000001958079692539039066656809927827835067312151382314962794142204463366127830226952306464443446424616769204794290477976065206790854295515780969575823640869964442853806709504526642319152489919375500232780884359337056044161189867020774984513811897807963329561897063221722121131236973422676812998028809982980705945461949235882110160434169166008891906078275712258508283091210316824915428984481956648800549081382818561957829809708180746898171249657540578595181458751231355576605253054299609717424466244513913468697215873125260297292269393699846494754206512440331923993569725389291077070022100895060012949643770420689522466135608290523966671721216175645511936694051764467531028009989611665852119915781306211187690483007969668793070373513285764380331688891502012996918355972163954831650631556635018679799854124373479506465201080263266706026811227591857731395777647612429998104434073629171855569611567182633584567900772567717770951741189386189354628928220618622417221374723987194859667648425983650106173019968769224583079129553966966621622645877576959131779983638547392437399719580677259939880872175960833330640037139137844248947495489974782966493432579046945615624959450594481954863000805586754289037234707179870987633374229986817031072786330541475986834042628156656618899843622589999044297268951694980957608664122540090190124791069177105555638933093948506784373941236469135546353583209530583280830985731703951891612300688604446577224355505490180040058129823323539876498440837374746254400255310123467981205110075300183501992057202063938004109156301448980760377942845852963958795789275373819721336476197958585050614916532646596057708227979446673560630257301867966986910800868745650574526938064252015808777391512389143358604077948271960217495379079285148216855743940513392889082842901658819109099382024732168039917332013015254106761764916874666043037423656150080999639595737985699792968583827990717175753825754054000922663709685434633740434966350927202309308235891085106012624111515493444865763601883227555215704859058190054745520831335758502847494776335134341432290096897634092513886909194553527497042383939861710530907029697270909063563375632653060203981507455261122186063061613352118686583906685379695106407337325092310491496623418949810041232840453374509158930942382685955272527617020049921099386800685405923934093760375542266053525248235258395314986679511932445489175144233397227610177696992609630772416552067546923594220138262633841041677532915680422320350809168610119757561237193481069715391123045958473221538914540024942133020227942386526764206643509007383720005655140633319590913295166641516699277856733497909080422875063166311848131531103915492233780473841905516052094554997277129690957896184460743283644124766049377262698644616826838044882594228452701344042863027427720357506016010055741629349333500060562475029431181174618674452614922709267159615197348780378612779533482184545187481724963052405753500787765783004979985559900042674554011435847674008815560835488908627955496317152726194674691677425683446077003947238767715979581137450808788497479408879619408258433543518601937163071799405541793370059379013244228915352393272151115648830473037033776662151332949407794258722504435131350712318068280413564423359946490705152683297274087631216410553403226203300317516275897547032765216487340248176822323541078532011418562643898310791694518107270416670419594996974314281102346782987868979070872657861610410127537140112890977356433819384715392270050139215916224796633139832850093294748439207785657965804427485764732684340878247487963398493408768737715590109839613306797157415723692646215673354370871370130150869708207360697804065008464252547738888048132001504595106301315182685141486565858269916635537885084068995101427462563652909637921052245595583075343725842796804091246887197599972866538072670773236587005886612486789664421453353131374183213856119228946426263263670203360020772082481701803267661247804799442697121690830395300306658866839757462769916007411902293126630051264539527532899513237291042149592979698257517134259146229625704939302528936591777188941738633854569910339783791428943292032830802901043536285175225554366691617343310645609480887575890249349723585572624185341476177195285981520641895132379211801913998960804312834000206322953339884598281833201076295979415113268003735752571516013787034308574498660701422359870875781193409782628171581729606172768032218583598596115538730289368972274273939778025012366582314945565336719864233643611427741021688957807032822440270363489060807085033873250228105533192577105549253925842452391831002954865434336246321711233303106017958303221953401968320350869411774042169322299182196124760065748652572055896970200062143004344713357179597696765041914413918960211047103583582677470726663299381291993986870608910687726786044239853780288903302664425706033062174682904538410812662555571483411257897010803258377246065568814028845409005612428185315594239245613979131638341268609689661393707159895618304061372978911076916518330479803689870515751119555736543434965110950412338784695957119887939698937365298538312338242948439477646610120760527212755676928446156810125321457278370505557291091923785010447869198707030332577860772882190719140390544616094038241519827615222258598960911138548670679986710267000089116263803308876162198509879067037579020495588480570995734984471494753929576954070596099247862745483581894451864202796497975662066575875552210201658115762588870461494823425480714136496970356374571545276763474805344280306651391400260869683530932522495457861502893087182116213313522318426885277259401223449384360607705409965066918776666858128687602943342540167091315157445878343163778909943607769055394243108224865674508359046956101510505608541562401574361865842936832018678555157653585887673523343024059765834320889534898799160160009668792084034380733044003968450885944665686098349014464209016969262937017550880570677316502422122371285098067938657960931152740085908864811971714228736989113886598514553789154483346025072753237551738572094393395681138877621665178586883597023686747880714997212821351103957636178359945325575212359874069674612335062280206224185544322490046140755890420131605008138755866195041370049128930782131933395793312106889968927774530978909876778069080320199254727829765219850150548136813635655123082195209921460241605979088129918962216004410379192822025090266592876147995418275354472332658379597547667555902400868928386167438689639337459120772273962800856719590622690463188237516051610822801982360725763182783831107742419604843508713836012452232820505757827416351179940624118249945122071873038745756339829740297093464136556402229349878505613711127376492285709852444875720930233420013729910915784917099957010567268049533501644677575632079461411725866607297386550350997790274810608352904252789478509618240702272534716561354341607650975409988128367812950392942688048526773815791841452342919688593085397180218047324508140082049765828681867369715815678249497135387911030190259429369066807974084750384902007759268895751570919875682862355245761486718263212225183692966122688817451833290780372469848439292720018958114805668357674237104259457172493692510373674810960920724724002397026089373507002318606247301205407064854178872721749724677943416835390576064677243272029655716482140784889698565106749631597077226149026734456468179226593811097081794025646140001031937129320541374996789628170009614577536641372400111073723770586996624189658432853998871806887223859706253517597216134349381993836020368357945661642791879716594740896284928491811080939212962097260645926982432078714904704811920673706883239788161936861090126777498258048200163526449392709132262779555524159639656757151428784514293110802279887400863605629813698308863874446914187534119282698411762180920530544198446940299003603156388233527479627815970729011128187005395659728473262657995108360087698047217377864590703862675850275049316294056708349669903909686835466433008044976585723218577858631311361038376942750091292115006440639442305459701515557417700769664156298795485628848762511408798569193246253828789612260017525624177943897976457801191511778313770149168581963360236999271457825264532493741266037047137355748269520121870502208990332911827926090345153563167913965402837330398094697083899042813331234451229369668277999336262908189417021323969276545887210426510998674034404842476890630954966550874362763620357162650815260254478563253339558290180334770357273564270832529182171419130904742809182886451019851938977063487212420581724649850185139393135974579858312379786071800232979077679897210265257781456918855841741910115116297200976674025972967869674817830366789932791956481469296591458872399444271560826427712580819417809499435743367257935114808713585252258846855605274906070707109164639459910104073149825342521199692354072897690563192754223021374970787547726418939996552752736964554320233992318881760816504139068698829559149830003073311977399159520934104633513407346760637411119564365832824094863512917755349874304201220276438466265334919315178311156463390764954359152565306796082956973515246905714788178885658009264177075405817087710331683164990192508360279339491969159822086730086248578991644969083970750073850835234020958360129871529957068290497777030154663230783114037244603559955874415004392786556303548509946726842838191023682691642180834195451244849770968969043576607363147420825577175971087530825054042548913941027438659615157547007220664179572895770604228350804220745963084213889632826850973306069128690325719340543631898819389007596789864160146976775738694602719367933623438595532332676699086286205832127942086505027381145555692042393017555364699366693592383139629552184222556453716290294000410469069201887247090626835839529414802198796688100090208939502110422797261384375124594961914112246840426486056531464907106596799086666970341063671379090926710383786115087349405441514110470052580146652140165741079181146236040898985623118651856935295238122660266467362628198713691236083752816233581902499040349639657735199773176033487453860298529873354815420300378907314063611333490871044915976420272121092552738624341888329490130948663928731142091789465314004390516152762673820872334304465064057323163986080777777125303343769457478425389603476193758340612906986783809235470980776007088249622890194696160041458710800518957219159237035799632229115689834287018214241355673277802622123075544042393502421655248780213728332651791612900519920073177374054264640139113946439860799492183712080013615287241397302004495343343476441484163775809246021540098978994677079618622289143538123169570073974256548066868647524163112623031255538942814785383784731755152013412361870405457434340673382596128171796159382947469790142257515967694604519477406573928121599838870356399577589280651944333717102270253305647579017182642903657782165193808731727035802611455928019492026931947977402865234290269165842619039564778004699461834651866331024140070499223214440993716644317217717711883340959387995595931171910123359502918935132705447362249681271329852746280896120219612373460848494940212791524749256447315831388931011617042460118766790658599631383538467844391430754517713466948862932621077889925943414777334930894008016304220708146125813099539301529625074897331738044260091044534527694364333839414466476315350169818150574454070328478828033821780103294141056310942745030783005022674095746189786498184426599689297413092218105267175134260489260345621363560393330807581044507153518733956066552041207016272825572606692126948895564593365630427764479213038841520471764066087632941179516910497267985319614254263705211360520431170256327199035738931448732450774291295399017223295251963235072944014149964362238267695360345779299333834008179936976593087109894507481200721621536825140166089205972352926746792832072909930242428301178780474380783072990447084913639522309175073818357729115511896133679391854821677825677821486443207746654971483318717536137513297345308696069251746015542804570731147062808483019602431879828399268057498735984571610410762105558290940374544624515907285991755226984056905640931253074873361770954572663623705964610751795387198439322111761561931131667126451182736089236460981729055565902042435127449752980425857315973164914662057052693402621768176032143011279647641027392047368838272656535404922877182556816950992120972361701208377729214374429410984146672406482748592321141449461123801506446892338080067981021330304331668542246721031963556415052614908794983411413741235881406546222121663190619510840813935446261158767798098390178785138579208215922029440222278471178965624588583162553083490869381323128359854781668823880029758092677566057897809861550531790090659493462940300690311374341297653212385373486455672877568312816614817822198192207886239799773820817254085928355418540006846417697433262261274487790520591005956898051994690904480799176561321802820323961494157321256024619600177525992650584044562084937454546363261737679647983106691254175251077332681579508134225883730456124403737494024403595431042289559990955637190298663770964366345915044002047168736206113976042638046013221684221719194727375557820578533971992631515325879926605389523019263249155933641047288181605207820997905623133327405022489721899719814703050539711844586404085353621102993943873779780802178050813054870868803146485020747853585051970764771959679932571523897970119273744631469561933780886809367990369914941208167320572369008568064505443746628728184971771061982065850607023641012659963541555676104863790481763292175134114039461745737109079803886311045786010998449299606532723794865641909943450658489512199742454902334816397362926662470048146510560778155679833318003679325708583712631855625480644950257181779440996870487299284702023983545001437706619477801232922443036802618868512163439363176407631820272271139459778601431527081231444575719529991484113688755947983518767075668533815217323908320114893188437718494315002087314276567761529611251242922897450101469862636914574217015181142966693496554306051029767405070084821709152913328337918687469730958400284140316415584360248417901977963945874428844852579400654892863526539707396440657644269712236293553448595994912138263378262866122608132432099084856835098510824153023277360757581077755601715384052285579768184934067682939501346312679703933804544972714746862915899984714662138352438949176274685770895666787038001360461201902522311174688381870011289531010573900950970495490518791655689277939422300161927144054323323028589805060489664043438160693372820119586423779701169439278923659064667732907443657500724662151646078265744243313754422503009099518403487439993218596926747473574510216672903136419836426766326616223317393043416674041714916257509536934102109965590954741930550717352753235179755852270114066964381369139149656963235521919894947339428352862762727599472547125161322799628566927536816864308555971118057515678743763569541684893033347805431534657647425880999033919264116604046241889963691945692329403272377852632759648971723701714225970653581923348549221125618719720173901957508579759172922817962356555816412113004546176164076315296347518876512137959750366422270624117437679936308343195481653384820391509841248334750861231399302389453471993535861394736477514269135410809313443915023977390096298671748229499364064408102657757178439934107924337708715863806883164105347349783601459743297895194047545371190798504930990047480850319541285341334332216107508746030464145291925309968276660799864716204423293922009875780214477270233754231475829483000125444324263062905648488190730800646376892980374999962571580086672095683747301468434975608440833849559255331840271631964067214919939383126484227990421909405747566572254245475552045906907142791396421696615359497738007991083484367909092529714879812524908612812509808238258838246964665681834273837119470855988942135991075644437722774973322969792479591951042327401379880453547773404286356139654978901811825513804299928368930499818946429710394657864295156296216251550426057978468630174376560294417946720272821241525700233574753844334258565565148556998458554277784307553111686726362875195619651341898562499024612280432590231144368659612324805581145528623523491760037885312648779933348826152248700744926746363670793104736081924032603926917905661529243424720716497683508519753100912396127582804146493799887620124816064097952010503869445482796102368263451250816055393827016366690015496047516842509839751602706763792948916683500342069114154230195733326553341094366484209504824828606727297691069263742815285675455122530174356301827782163720437024327212090499484895376540830093940068728686718229165847024823948347209187019463713498566111155345824880513097011583250084948702468885754989051521215671875700478901540885093348481124486056756929240500851146604468631271081040519092359619188234628035714152147854110064647287350494808840342513182775721425193215673849032459885952668415687985706997438822603283605203590199696924711797100198776590229836509125469868658946884812398326836064275242972763181810445006678860855400536969200159847797284141922555036830671907803437930008591321092884112286846382752747593004318220109225848198506343046695764076998707207775810870269343910522444725936932867836199722701173059213179958545754086770678128814794387008447828683302888800357044883527763924375878852207607803689886711566225790228968927516214116967675136760159397914475100827788455673432973026768470316378502512358872853392554141585662703237390005796870292336228847043389014683950350471020313335219785346622235865644178995138352487476300171529158461835302582473663329801902083097669120310288680570373342736268641082672299589847986355555755228574181598735044892282588035350241144095247912327093860608031081486154283865590140996465158853468387663987696468513060644980769941074678159359775874037255762578984770669996796401334070351295025272110453980729362475382567513203509009301216309448826837167672159493315592870568070233377063642147354906593347880133676695487475063955057660354032561346562149692501810608349938768741512625065878242013921779970813493295283053124360325072008604775498545204223632267802287540474174716812907419407842403476438654711698955598875977170201285896661880048433979343109513240984078350194554617312041046254075563564640330790999683620264779296257522242879206764521563652129282530874085562076460621216178825714791019537590981447588766600085136707797131714596395683366124922986476281120569401511370687597086395856601125259673461507288967093000337588042974216328349106473622936805882867691356608135256977862542135329316083676084873578692148074613992344781183726950478710646915931919920022290187939123164867928198988146076781249809393172512240855812293830993263877956139852953904096922973718493050940500907955505395678880983859073156121685610207430383186110123016834804728853980871693939896063078715284709072832031682951606131375470776226552315362006741093571592130405769682846194758776958538810234863166478888504508130637546585300863072255673586773662238687921931302589589924629273722152859758356551494296431409048903018291064181815368072093399702937219817589090911173469680403827816513281481174065028870472903972815795738085782247118035243442924490857149275854208690615741857186704395616681896049042620593919338434328180499132480448663244340155741067877472061882666175165789808699093462268229239556491602943093678824991772033482967021127917930512308378397149564824035251691125114690479261298984038117091116689840871621855148036977317117358241280762951161712126117851128657123066995528333380598987090925098669928668057228079708896790189046565061075210850158440052059270345471790436125489487546758390139435838895062420634900733550713957861102999086209577815760571892329995298422162658033446311537904625828342122925667825809199887895639811945615194277595019901944176582376661341787879578315878716867544589555097944881032842919148012946900416861859951768191709041242190145303245671407862454163441125165120017365971493703269958843184935478245366606744671353754391572651584498464665999643907722492111906343523644163791115096991759784391814028049545100107624867755415702583992505602883503593713942383819255797500770972142249612428971224475536889277752964675818945957182158663485240538428849770663582529705763986878162668230759287602380514828329943891647387337493214316690502409693490878449176049914996898390806607866432281795271422949017066030849227449833391377534092672913053080136333014467475354831164596029256720736415521693149589449344411572733234804512353435697460325399523182919270301720163479771915065085616110967884873427279859444025587631419845366859696352277165463274369212376205116929268129796803428421123585321520541441364082417381126392183779447423172885179070958104182071095741988993801945450880730240692661877514143567053965766134806749862354864690309018887122196563141672555056617926630582677090548875677113820740202619044235419898981847831194500864851831449170649607041339960401859408284504786232892469996770493955589624927074501122053812440277928772570286422565388428565462523289222688744270409748599260751171719272859410766196987509210843023118625684027665072817094566444074248212462319992592077809539064547647479345100245178941724157302804379200493067989277452507469931001441533738559832654577405395586668514668223953102291356449559355313822880890847166282814252306234790491366969229265675031791560770074499464607227473760061841182964289090388465976182642798547824736792631178472696833761031907541478504562847347301134467269807727465671118133228917856595370958253730387486279024532447988201648074260336550492720642908182631273114322576285632280828660230453265652792410942092048332747983381033678746123010202808171476810209407690055049559109230534168411228853543608885856147447622997353322852116540846713899821566380333488591648853999933018952686708894604904340238380901258853999528594448726890233237306548768932004831963725748556514359114982021706268718634823657126509917523295644525726348726580171531337383821245401509858232303542764935485343940650221952823957628112308485697111457465742855996917458936312786505719817171000179029960339358488540437854627936238229438268392102055006828650055396422204411931933919539003618443055137844488509834903844711206783749777662727356441441309137736079185031284312171321125583862770340501699337266414651804539246163932428617382919150025186377818057990752171849811368990278565467324430757244556620874679755231201516013299168536236887905209800718964600621836533434136270926307489427616807907873654135673411295579385173320003239414240014896861352397334828243938474538850341885749083503596991591695420035832812264615846617953576276172654629226171474516704223798391232857238338955289681713109287806223505407626106539206389019636924356683502304158812772845988694972604702187992858727538044368534831695514835495736218783829598767511252676491784295369233962018916358176821471332328216438693514514917381283750332862390078198428737282088140910873375466060461616688414369679372177479149510354144687605224183713096009429152489011267992052500823384176595341476165434582286258594315618027702557771091530460232747370244273111597216661629164911076637249640804732684438122891215623960595752386363342446022060280831564401532555445825397706989179974078195709266021500718168184065660148065633793573041379388741303107733723448358920095641686885701598445476697854723457479858003950592765354051565021004318675042972013150975898564691476930258673661218089828286150636343225252383387022584915681471825489363725496312749921371053400735413149042606368176738996104903514156464975717315816590204979380999647777409045220650057362113500913741264408324606342390979155485155874325792533963293936574233059273156453267537156241574923672017690845969813675834632117457694034534963935843934595369874704299939731242440149627909804661531352225771738981399362524985199696933065401634917616618735722448026707693635569755170600969589775043890658743431652428733629611569097624177532277331481534143873895287829642470671384322648910619874845169845021900296842577621338298451454255922115097614960975806648635738306779530791033715732634466057225332717614776739573019494855393653822352166829712682754657968997999548298962285710767676074414587217970231398595917850198908203770437717175897622630924180906720434454270873718189656566422355175795301881200548216451745340607523749283534234901802205364512944901849554716153294885044671557164145784309036946340094334610518013816079373504963307714061810120684153375388239863013824734660929741069393111376572715727101268311868640742828957865196914624056765699336361043033091037563519536424373572940725687478353448689347109360132954263660798768874038366946676868484975783511738089059184391379749418185621890915865466321951767183907655684587337053478548795280189509291915040512512890885003180356812763291869944844898180526289836955639962457837275174469022687154794674468675575002555263540910645546091957712634851167650672736820747828887637120494533345658852474102060438766513789466885164452529738775184543010390517662418019194770150099853596296768616021724353870160760716381720981657438225110216118492647337494719693263977409059730196237271862633617336017803348665220265779006396705228389717124782991800779651706852975309929277838512921206836666130959629731815241646116946017875959478565541785371076639330900128493933975983908769466960625542932767171894121967188877766057889868439913523831728212661954205856696441501353040383380946303089605693318028165526350438395044880692203507496207967565254568446445928154123729727261762313390148964298150162352553133234871124524043642313151192165784586194513858648071606247547805317861139194236134482569830716254325099431986728824633131908380277333701472849909702660928728061849209253189890667808321489132976354081680108742813921887923374766172259389187494538763846213858290462830222789306467175019956675206483782309658462975899443626101150035011704325128572975612116245038302423684639932872343882389362309170217288251268604446982838655189711457559399870554536031717001867743678345153140982547815254358247249464535836667532497254800443910402574739593311777692605980636418906847536035784961661997733832153002381058224007917812625502812822602423247476593786159428592724790873134810018281773604726828109344264945327861068452593055139089348941807599828717220595192715244950641990816054422453080783579820884896884276207131346801535078284401877527482696971836170392813402621325664844057139224497466147505533138840957038505555016249992113021824131222239652551346343164373436721020270425178203425150222897523285682758340169995410909691129396352058754600941294450845007674159303493157478743343240536541288196797165977820634765379761373663707724399455171924055106098785456928504805163984684200367543816553673082431910934241604406271452657789002240292812567654757106575827123339166009248453937994849003858948619042391729050559138800688081069474455848983743740770066980168991598782254259862908351632819509289070554279538813543690065490062029000358593825947197670024481447581216198239029114873918262994026407504946823587327529673714428397482879958398118233594438291417988822411550098283811333717098786900209286222600130385739781494930906975637336156314404393933068300885613990650907807176094289717052340006811556515072293067330940810754046517007480945686151818292396475737203999764984353147720385529505467597102998560226346863582929292084372636214515015746350320507203567934111508946703005951574569245133752741497731984748562298671003807320571868218460766649000347145225793684958581958672480151269840776453406164684815099771445017874549427478110891207763974381170362489568397558534579831847181883764712909560062349437750578949664930422489963479013436503192257279623382103405650333159527949374241354946532260721598540119350050640070143040062346308501251647305330798682527789913088819498974811689013632874041519662325365538253511078366202285726072857089492544848029267161934179421119024396608600531829825946976076490667447452645760111854807659878686119696358543628251597123163247760767987282578814156963241456985386713547421287493157371982803664503805801792584720429934297429943335846369713637056420421431169590974127209108801487612281020317139669281944804331060563995515587499769120260426506467279235844057197979628154180353226228097723226276436143977240983728921717470949445649697790162936230356604838678077473085573448567186769537479122217412367336932299356169392137896379115660200470851259341966375062888058552889149876903731309492042224437642649660500978744852724839728003237614143861664116963829587724981513896132708962020505599006136859713259691680624310945565350210367747632000327360210739786334177636150565253518812123906187554743779588023010191963765887770206235207182458115367205292127100227498843392291178720465567192210197309385045337114909352620904559621364593686781514928578875976588435775349595623896954493977556778814231644124645002587462121874044539752036619548352849700135424234555025389220166718310980162472008865352944419244525251704578884537332836386195313365036570708058349583494169755690033978250389071163051627308225618849306069184927168339612521394604621693447678646027718508448244911826273089357886680100042532460557614193162576730288849941662541457997483855798894424960950355440454682695085327675422738420198815605633468666935092593769445017844771775785565035490695075137547108192918915051160205492418632714559582101113958943347757891342842708546144975014082800032370363513158686860742239646859546703919203335791612865437413596756853540556780855640938148971056835357970136666535214533172801828840707389301364362550665129039534301346552984512340155581770991269061465765093601671802567246960612438658607148558338707712320888611085094152726750612214525804677820602651319620264380831767962075246149891602463110696975674459515153408553030090336561654668689022237007861844368104765709637009538859409728733805672504256694059866456231320969323464897930211276646736084762529822561893242549924307920635118718286748515622033350950197681542411639773220346628747830085900648408860195025788184600012964553357352771992579077626109256771465036742924616832413983060660648851801612488090211563654848405661011240197992417359757807083891274570712095672773346562426660563130096734502773272576597068667696565825574984389665472055938547122699438362343287997594691063260217225160508470780563555885419218211754824144564942372733142625202197788094690464051476527341807553779957460861299384578925443452599556581620536348400648430020013960617778480739821338806529606937293846336413640792194411991818513529537768194585725349594730800242951963960974939052787475617053247957779031825943550361135941112677961673165592892316364275331693973649650787814733940288645505055165471853037596892063847979294309848771063006004852419079041830251071918335818720104186663733881182619733459876278549252732233778715771693318164200635766477539570361504804023057408763757321848029468169745228263147401487773716042494470137556647429798043597543835637370904014785207278934585763282714298447455922001590791119501704832603097165493085067037290670204728378335135280275750094421023905194460784178512186914260761608405135055663039203268850644649059917887939143535754184363541204075524871678750085301103693020160841987796140735609708678323326323551690103482274430028938663428442053076679346424553890462298879942021838881739367331633822001411532452676624507838202233930671576423651124798578443502531845569107884145467163076479511945478843333463801690007529478006882289900369450075454496814214388239542521632484012746758956497519893018177946920499824219661091264399525712686108595802717534336896875668460357242670644718598809412689627992424033214652743960423451379077158965243929149254003678823348534776348256233095789237704582280696104323306074135677258680632825031447926629737189199591556673289073281933184534998122527411981371421659430655196212446740885970340119032515952492679474249937315565573292980039521447248387019401853282324119030954081777695466496193035932952258700308047831892167099716858339306517405034466036177312304200309930300662854005627233872253544360138710688745474035661712714699734162875811671766616670547185772607418580500647017642553783276491171264736435115577831504022892459406458871919277783076251029812515246766617711545634510969143099690562105495891161623361888869980635322896722795125397393401700447964574097781179716829876721445624527081498397013551697601450402777729725308876329918300745271905497713008096168492389304435082252640687631340997745610912199971601687915294813871315351178433960306732977773331782587841937595310095671627582389142780423753015908598075287466043843196157803541078670546138023319637650725739566793614591194578345645248915579402173878111445496031372939029046400794242166887074250252826307790592340842019781609964704010962181437743383296730955908726766692207893496660101303254615211898743773243109073540134018978246758134439278459721186358565527873838461960366996056523798537404336658925818829172974892457484410614870142856633465735199659892127516305921984414262279580154716485624727760697500388081136865382417734326281838633825025680366575371602923694562780802557706341952460354813750419366873377510633025771634076666565946740071813915998010491951725332569986068169409974148390771452375339901534517096128772282902175141029981170326200085029150042535481904260450164956961688010976758957391163894867858647919659481265498383997199680437856270762702879569123192612722190055967692217940183752739242405489875974270995914550823687047991744341993576992632484044441970562891189294708283175589748856761276799972124695922873631838989359408207244980276555808007819106169723646345495635541765230697978716967048266480650657798044572716160702293250768336463545541231503292122980279953681821222809051050899359011074692444017692133159447715724615875939150608451967187514246054811051873833431404405061892872411468010445257988326826162795940198028524707752762309769554318925904610313951924090752162042673704378833763070011565388736427359206990130001895255635720208439155362147295968787970034612514667287799673055901890458596482985605663726188512486262875383998648517585108515930820713694055687483070066151002661107022849185183415346613254819419547742687145336518234087956679497297645074515682256648446362122826566545050975062944729486717492788926328813883939634362526756210264413469304854601463560418365221091711116594985064228695423675458460144989372560261739821781881646494098567054273840470939447843664414097576232270281986286759345126367491992308382137306684508415471400090032169698791144740960027449626514872140293238739555102963807890009896752565605412838557778833890199371671485612084546689534902300306460271928528254871854355232694079195899467291791571273369525873607156837175466082251507661417398920110282433876599545015338495114693980060634409854779439399098153547502966406133916550078536174058611315909736532872009035762265344642015620953236457017224194160738115697635879457780136268674041466553802816799259203009051005094501163239371459781180271933469855866344403791613263959702983321831262015137529824603508025702745638669488149916279322798057995871851241613003413908580872054135202590147402150005192192467349713767894143091598159710639401422233142864922611866958100273664911632370356250551021065981521344056694862000337397387833964375849677480752766361818444608711005098269231353060416579149149646888174051290046618891004082630673241029499956694304359057869793194915612503660641494714121581300848982480701109120580342271900680496419560676923966394339174352499674525860644208212783995956964444218257333356934476495776422983340164314910654999740823031203893225107296030168021103555162337249522277075359018112533791593883870892235837645430994052379055528645605319831673482702909320505803936339309566538545450903290159399945934522014097955091234797812717283417775927421381325904921229889861313040659081426886218375879840145486097650783636609154710566773966086336561233547475771047542366861506476610842410121958664839200211089390292176345450811162414220651062310567229781384878837201517774061710771129459309032568196072601036414137524469774049010536475081575834000933346778633533852429131815802849718158317731840585031571188449752449902569306585053753336640931200382011365872972983382434683258545009239391627679789804253486922334446210998756891802960787367890669239868315288474801786255965511794913399585329580063216430174198032398810458072666375550966214746245433792701985943038008071597809263099201174942799827442968237069103891698057126881620673469209918793112521764376292666270228291228007818011942355296783381829001768269620962674298563380263002873981441535459345693315110206062237308951019984041457360421235946257594619644689075272522151573482407265147532081202148143003588522388439022847058135965936054221086908384547480766841880252580314238027049779063146452548177557317045988293815507859757606293156183585131577686245646648107243624211696516077626723154476026085702546326018234723395544953162670470625983459536064077564771683635246219261865190345225794025518328799603221019927241959973697592979069171975709092089919530870351356807165446105278031450920448065867540637103386255452102526038247520269080424800828724446423005450618269739925724191018328956027369054537781138991539851414687222835430015000985561238967065941586540718438589833207177616844275973268008875175159119923980086893658415340082889700973332114922340080537618539277698889666254479539762420762601803371939742733826903144805257398461300714849543426321752563119695437599097487358513201585528715990572606789934318671850527933542122857476163514739736177689295563303739220708826998604327130897503623443869392532745056846623929129739323617547337906525780854050692482423237199477315234139868209579429368971168476436270357058122090230868188820345439451102960753534331775775556644944458290475863378199763655534082618812271383926840424365352683366475373611376435913130570428093754194116321252646318220084994805703893807320159445685419392631457638313849829939672529436749042797440649862109965776499924137688669331802096675513852019624876379059159672334219867831594931111948773680430589090937826836723416752641235851940351602944974301889966581121039993402383742028527229544646530402741961077251193034803089522818675063844282929788205494608860015507459623570062240422065570938607877136968690355974070064025392999465713654655445035642582798336460701882778244894775801402398632980907537421737513303704452765770347959687154232758099810481571208629120760009341422198195381908650207649851851787994694152515573883544091616029326687275351618698581521777584424322795360870441816414932157334094789927658816573842273777758426953231226440653178869382204702884329581538662678397361960814526853567034872172299613408634492520447939183153375338371999324957814781575870198019053123135365801000338357799499946288597407206671109591585064126330733627405854016691921427224319777745692910999707082514022646398552512143253255769904650531584260052787477111069941247926527386402449675068518354568828172759497488000677839468903828009168474186666655094714379466159720511315160786029541677288299727537503929405913601856067324297842254028340215751980149278032226382626693496637864329949866135228322884021041172496939441160446504604012188812094827081802977187191733019766494188484003513479364869267552237529184638544828442039331704946263057523010249851806353327515416643818222389347675504833363089124634521771393886677184355513375623248729370217485189014498480132282764118035473969772834835024208935263938083137099846802076787699668120219028885015183397174322553384937012349258756733527596489343989847647192608518711282904760857694275875317019396465321180871659340801067907152166097094474237276837635954458222021022413221694972722806693027004851401924545411974262384989389525332279676588524896185284367388715550002052934703124582990953092234788487551517755063481219685357274642916964142692979590363720367701886389948804846589162140800247821803962202462121567883242463387736668913686900287480051526878735466822032247163946375191650763595960725313238952651766665206647676454914873347271521290713246710406634528831645226114100386153723628865038405826034233534520728010343186443925968724462223911509209163438036561306401973967111257921593619725244619313406470690952000459981505260536394015475797905349540232803165439423978472490908083648798590127491748457509991523175889741519168037474280028314787562224239360618800647890752027928643451547583573471858759062996281074814008390585984013219958604410185704923012482068721234923661973990884724941239022495174953054956487210770925792044551770624857207005293674431033750403072577240946652798407371650984411009378867315755477306324358930789277138937325059300810395725003767910385773514666186355135011019828735866824426126994984788131435607180288541902126436681838825944066398921930155552575933017232637708466000001905536575425639280735975156665425145087081979583648778255392574011881864367846473067415819886406620347023707682416499369363425950551301986976123260383538724504327114000774528445375913478318118184168856023651077567874683506689714792611672099491679240801359098303943426039199801067190742825629886041803956871524246745317011072990952377306824184347435119247611045180175042031958804582340513905436059332044315348844557482416529620839968253018643627171980436677449180820909713519842800549339767783100999504570593826237887058981382457874596321761826861817411592494212317264814288281892145523970043754077090194334475465408456764807139210965451938652325422344428727140404532399060782052499013222180755768923114413693850786018943344907775173090038615964821807602797305266869116615677679596836116815824978928845501288586704556122039798078871887835443827334833154846132144116215860310652639858186013590988453488427075705090807945584737624498786736701542558640744886949323386482901630761294059021380033191731270275123932705047535397283783349324553411875792127241492042902501383185811681558692502841184938316641971585433479129974543712582208623977438156573063840677451312988418497259522691053220746319931072820462907776555798269709011188188449943235726464821754528014628585776709589257208651338279261814803308131039302467760461095914862924372670617803178096393449915822226662568948587077215597848113931687624891322283431463728856496549295053862660790653303265755568629007077096499424018866504649961555448183366338067951324062328876619603667032811258296471990226454680603154143105670128280667961950209590659472010694728854818464899465238438130764510297345258077139234324057387424995305876805591107460309371583325032201688485721657630698670312096723141827841123441985857937004054674067139466143140597785651537421123436500802143421594891191260005364785030431125270497688653964581441544170896814630422918503803044030069414334451922866334628091834072057922515774104560119752314766523160984887522577497692862688275434346409786707397417342077196463590273954787495931810351526400782069711444593187429106717641779925007727693419492774310633002162082003109071675832462147482444049323182220139191174370776625385511058769931708876076147596901076238895458093536463526915426293963040183816747091306158162495365513306209439660429501467513315221876430351379346531289518615104644172118279370589337045466525674599964659858127177075853291189004091799122444905556953453185951593346408656374896311220518424899829776059565328233303033975607104615688540278217924801383664255095387464557159182014764842986740352777099075959933778697147049570266525885764495898378323807386571151304889943920113263376072963931313764884323386539984565410544455672416917460821237329220358508688280832283809567300308115140547409034609777381396153001129068717461867315128284833214537647488968296146319494419663087300699494331125237387284903070160631011095794990353640359135046086257377938440219396533355148663053085995840172146913760113078131010652821824319759082186533979615701726051483603383313511794190851391487741081703017476725759613213518486389291638636514008331338738452839927862859486155073176241270545290548694093757873727097336215667397727399797369843614725339752731716128883520942769920125247768529359036416210841275139368220586318215083604917821993322029035395815289895793328996847353595717291997294403975111808612488718499132862611431773983925064555009373128884306868391696899648117101713129139446899229609499856438047157374960682062199465824715408830507978728101540284729900649261069757282623953664739271383155456729526866424917098464042492219216882220217542661311314416416232369097437352729025884150417651854138351494757478271889746079196324396667789912318752186149701054671496244799482897379210207792331483404540786928620191304909164055154021487888873752616059374008692211248127047788038236297541322629073572305520374015307780997440293900794702217379207441501471998697078736034878506315761931877016304067094423945052562582670363282310029998139139176605566775028250288048900467116261327148795942494908737468352292748499114841195718917911354362059710657923571565327832621248647962208524133250129195717450813631609800563424333503391079869733737332033062150489150639550733487564402474764424912269639418717330240083589936416008520290374194332299141929763838435574318234334275291832421470554161452936240739726133500034442877297253805040753621214209954472498318653427396269012080620005602840395204564686781038568635219062811979101898624271836501717242282212172058822784803972624374693558843631277559241444423010987086662357122975918679720422520802159552247132685768509562961341122355130218466892472908104469095499212000296830559163439564059068462472931972789456876395215709081380634480560098768177087317499461822949389622064512143472750805344954917182136471565494370776676219072525650481333885947008125415218981588761777236727468228431396476695338855589067771671786449648896126246794555476893458612270944922717856657632685329635173426762811652106078583485502059931156445958519377775173540052568129257243670524520174520139621182469809779519032094334469853666732310513054080263001196538672096966305930740103973090838455940351961595263072471254645931617143118087441445609856555776087036314093684412175294147907732056179604457091374246576346125652454601628456435633764059317675195357932843498575519455703479160174251026404152858730264428641040944184978591086663976746252200875706428330780092414781836710676267130840486837049535439706347030914819523243596612163129247453532167502390554080660113328068441497038992448780328399493542132656128524390665683167223414445298611102224950956072290674174644789181117428535854584432863945926972333104383292267230594685109424783404422799321819805089690375122943074841543176774698997070971255458873606106278778629703005661726888677781757711735760574921952984088353930465876886415601250499926000991324398486406037809499973710168049523949047437766640908670847499433232362899480078381742971172905898341438554318836974896922617643141517136049446607650240686847301806620005849433258308986148716220562328997364485592554150366479727022140730804943649208637391232716436896095459380638485591610745758436966014832656579394155396883262617446101930847896535534543041765599199146017035567100255783323174823789691229938961160453596269342916304683336801512161878414456681941701506621330176324997609883488708562053486200136408784724023150742642155935141204668209968773801042788216213829920439087773529241848725050847495440646651236792531073278558077747421359609621179889689852116230753348439033921976593087305744063223528706410897457997366711680190423471868023867045833226005329878459610709629095670913319293258636259775481272379473427133583170253457644235109273928585895877130780245995519980485298094949057784621359847459353932626382691345896599650153029643706553270973258353779985070304491426395828098271394955152867317587648858377806114022289309100666367876345444246076183282237966073303281374208819852428946730887501348992454438355659674161002690964164001645035247670687637163022906323592069053346296024649564422808208857758045459026156048803591760642117166145784267616799818709363647812727894860573199281091253043208827244464255996232142986265654331467029350486246540164375911750276105488952609044126042010211617779746597045083803991662363711950331556042050058815410635101743775095565065035720754185836107408914156072654124977088976836450988469085969048748641685733449682201430177230688030114728712659289844511168615755126287792572217810045591557135164409269932473401010250186878227969848221385236029680014716698700689069241456062388499858549697886130125822921435103957576871529392429284651160355550812762683156093793800802272365301755608508207192049240571021775940149669548864444747880871996360100607123798710346960281303914318703502403291711997218126148385754200709430648005338051447415626861280774258061876101010587291102977277003105631894972002878138427325018726039947446961356484996285584719089665011582796040929478337028613697391383965765827305643869229034284720019116803667077441493993973084714631090013197534413457207611502691820584655362845712604235304876969399062047047776153015526272151462132537735511142739993193850706756537873794542545880319116779062569316441021226425141186633070052661085091943412508660449871323305662900068288986325675907245928353006638992316351882159764796372696247694661739631808809205542881360004660686016249497144181129240987350484839382012221049520290292978625931089198875481375517082140303811589787554961949087145411307560096192421892128179901237076701065525072303263279733798073048201933683208624704313234671512632925295315910629634986601041392284161036229189149947917453892255215079664737342852162390107115590052729972847017506506358331462700011247584434859803370596175236528750050373456033438317982020495004501604928960174406701751842508288045253085290948541017305023564623789625390267253666521634190353011860308398299747138886311704763307333130202874032422136169410331631235487150560273496879260960593503052072102164514086296376358362061383915297948918947261539924281000259750945717180948081417118366110426454258617476897746932945945877225473193001425761277940650675719736943228091965387607581343704136300720359573319130831219352620684683645238969373935142061726370576070693994083009663447945380549515417245607313249517770422110304272704413250976530265059310554919305231536193085300668146410105632721242391897999514656704527033579513841626031601661566103838749804560839126889357573586730339709438896975910790441575733784723325337838005639101648789636912303039280209375233447266087937898762704307599417386771620863127859943258900973888572970966531738388282729438895598165653375347751827276235537214975454125389180679285168158037013972281852400687930464885647408316284633964234484250430981744102618142342731365233458984468556754366901346061346718993701250909182773858406050705680578264880502716020337354494413407453490197977626289027918863937539724474532307241572802407321482757451159320553959878596621038447063753285430920409863199031809525551280727401392090757647200696102043770272896639434069567269833950131945105673386311633675146694583843557819348579103614215466231741332565468875405651765335813676970546119388947252316204580695099571708590111338940714902596604728481788784956586870466912891048044122296063523784168399918308117089429451241118171156573925856490958472199200533608547598853329233575708747934451449270436427598526968873965423150212610417458277799948932374407290680313743274234004187618836159321687798981712393903319677561508034983272491571198965740278946367752519630932435721125330233542996040192884727083884754667510418951386346051189565489618734118674927895956675113360757948461156768254483524301501976651280195027544527263422194865481074338496955173826223069000967527100058172727502180766111492806424299544706818787976819114687530832629088305634766008394657691204435366783166888733018824543789028051742503282369649285291862624337590489127283523547232605968032733142735782242026035402294290614228552333916464008496716203981840472985686683041478660551867659013426121691543361729956900491397734517092993336395654316285255995976487620293583384341735979407031122320384855748218381727231982262281479096813267679847393328982648609090815805097544433179989537383326141834657646197702300742979700850290050956700677348378370268904148285364926193919788843197691651205107815214134095810079734704008046769497265084287010558236781219415027033115315850192628771386782751686024260411141499803296185635992108182638640148933314530460104073009503731154127919812827000525384179256104608086183078909853174888957562494258009592012700518579473791986871031656866927572538551893696638295961459720393695669308459906358047679597969692254964137520235175424902363031363227950283619880914252923362682701566191267934187330238742519105745552925545863908886733035240366828195504697627430485292250830195423691693043450879041281093671192614323939474330415249377951231258678447222544361275693842092635678324890278981222702739282884397422798614746951098803065749656800465306099720751831983984965021651144667535047168186506185499207814823885371507799603643109736428740691599982248917749371361010526906522680345733999661460558128314114287031836796183488658626624204257937655466336168868327078559225633847387407373006822262574190081991320803631581001198717186152157416602207874092274965419393077572451709229589941474032400892085587594696510660435676673953636543645732305788938975351194247014075887666080238182076588287209647476965607069629504850725058817060248625482862993696714300012416668131814446997103459817252458230008652576365719882525903981759897246995771768288677275913293421549934451914895415363008887422155807955288917154281911932779425387268063606594492222122446377098913919679666577405862340073559358882138333054986616119635674219033895308632164210292807717873404594527155087893010375376281430066980515511347752576198756675556690230254612409210604257552577947659421333504807742813205827617985464775281095796637933157023172400687180346773196817641367883392922054524280671314267240553848634559009102109875570846689862444852557518652401644152585313254423262585766679979267067117210139901635225663469265018438362138975421209802337108502926488100797981037242309886263106271565647055053504018676292754305493963810198104253722211731856609752699531563611233029733490808357734257214639625435341169919116479601529078613749495159324723824314708667237660105786475619659206828980447880109037684659883748158908556415416919818242503173592571312582751558054209827946039882738481847504586360397066627279934306752355198448179379886393030849857849118461114786423936658658909640478965961178402687356535798073897285000562654986471197818983777483395110186132578509307508056977489328060940180937600190897371275564601261521410330923016572712154149610401453713204089151141355116097325053464653921551036864923763399936602420012624621757747757327868049268234592677518193735444469310688394722688708883856864754538609353403346936648171663434062702280721379771676760057974600985507485755527142257938097437800081924268920019027371384112008697324740779254237075593919800507218741001250349470866981109582596887297420302600228952865201163368462069101803041137717496553230966183639613993007114192105604412301361858972540047085973337162727060688926192426944423631885384820240813139359437490584826202803986622443686073412940279517023478060785709171790166515301549670621130924246537448882645887782566893170281518543008526476683788607250623069463908317035256732769951160134856299160418457932805763468565819001540033690087879545707084297642028754853090321272007554130262786364963658500290123898639706806610223712534425603990945211065777342590160349712641059091803588921729399105299393744517171323132086583870781146694559325759234542391535170611632397130010638722605522261652234633930458657183635907660275810977487120021949853076553607084384169634765910553349223151976584229713175769537078805882924819281955265841069657894866838965137754750746847610982874270359868415958319816345514634833632493854294809170612154101047191147937797783455288002528706477850734946714150879912741070507328219920483660635376992379306556421905825119606531201881608444245486187588792800738661584340626751562241481473793725072283206106555513599133549140112260291769133154777943894328292029578781368151146410639087350506307125020742616672550531595169937928297061997164635641738438680044017012871545753929003930346011603908402293213738906688654510827145313123410928019488966506408274877374357257330384154196902419619735281975706187609457512692526616721204905479911576121639349911110649562865542734726937185662162644365008652140308261299609075322568359978065016801601762520776162332093243043710041948170610160415647960781831510757355806379185442257414230491445052643825151885720198444648400783412793793814835798671245937109823086929439185743811901893155347741124220745782620894726710442298588126754499432169013902359182646078388178188786008636904465247394336946122349197453407654193138501693759697003010397122062788950873262241089618551235824655473913506015519563868167528692356077287387438218339238513339817586840208896571772280990548492967418313328658301754404159255331444326200080229141978354795141238372807820324524836621658316701312883636599753025401949108765723951502982452398411412979029968717817591148923214676994446108712256972917376589934243798104999863350349436519505117478187042569524715554138711355461585837592986288639459021109316828783084523763416130064080086221507537883765147478545664262570828421219545374308275014318175171122492154790829866416876481891291342945839532478428018743665504517377554226670995196256158523288739510216866907561368123283634486820322745035155059317046023841596008773337251799315059968647487666571653672073081780367620370420269946619334941343393773109302313539139078406990864092970276423072403793019448516795622365460501926120150765110817131944077142438885368780723898816501797553020929325265470567770052011760125463641761671157622432424522394341882368561984398520476381508299618708424842715098185796211181018728130099810512107255613276088592421759481848496355886780266844925706289520468189581617827472641516235311568882365226788707893397722969858249997270577713012319477233294818190694513757334414570779442883946786591303960995507690192278936579724206455236982629221241596030381047871091041684275072767304756963343772919878650910724411240849725327295904091362525741398295928761391134939761977334993383062186283586145200074517845236767252909066527492264783862041332644354286196814167672782322627906936465851200485714825675939858322065989110952372609734856757809905620487520171032114045653025528809898960747374666523248743133838464556343717629774647681925343776220056027009677524890520601545590258930004904422613572207251469225539747544258690268750156131332518958864115064666485816311731722697256158314837701607137719317753647141773744772163637479753842714853178546061138128056609839093342574225316977398894241556789653210414012923728614205795877509033421422038590163498240081932476170034761738404611925729205755140899887591067897869969648399764753967653512868462202237075779204028146418150012053547062305382525278634347659701260030819444788399222087850377507807839086622951104214761659682116327781752106769152498234022713658384924246406404602520717371358972290525075930734342084209075842621973296908244017059816358953574505882801652060110446397672516931819275360729297138910694988410338711529853224696173017267217446699565310054510518910247818556938002323894134028985852030560348108331301765610590322731081507434936208340926818838486833279780548851006987979695134646462977819707862143073872301172886285854542585608496387024206830409161538783690193874357977269939453627219916101704614662270137815522987796384507236947571813972000463507449961241350573003818556734366496088355260423902523861763397742472797690059937312984269645995778948101089167658928017676423730282222799711801226674446415471983093644126973880164283420147938998770131541771519201958036026305100252937643676917013859507640109174659446807238090223524546327445813643382171418812385498119354082490239820113396240217574939471532315893989791915112220893114685335548615591775208638549391241148699427499996453362798086045557995613452395539835367957986344973144176517516677591109982325278459268278379551981187877022450911406290509356328570033539016323616503924951261385819603969852076344162074967936999402685930467050476102323353286021723786993630671768655912780180528879581017977588539193066076767720763366382667559550140736177464763835783053860813785982328927788100003382863672764940842026939022040936444400719871642146432262630853353608299662261593222747340291008494365184935628871609639981051233774085662506219411675720729134826771478962449922878563673401645267944302785970731540259912851060962626351593998827008667435127014933738300016277633522497102704598429200637345843960320048788083589725697292387853943345473621605943666396692423818985607793354057859560237073485520022085241518597380789795236787534624340505635375262277813604199612464482261505551339619570999053587923589336044857922676607516859200349300994862117230436127982283162596001058581486843452752986421442375583039410473803292830952730121709269704172768891550738514511953053393783940068573791450160062416644476371240412638421430337252624948202110860095826246254496728246443213270498871953767374079679169521612429452776354878798307270894335331742997510883029361147154146870271623306781610521030987070897161664957369668296525034287911521344323566492875655721376831594586010428804570012493752829573684499382497483382348524904388753637977578747796673041786489758800773302511597880861886060663627980223674062798648835209426865740806667723610897535392553767514024491440211446872495602957145858363922277015047174146083304690213870740868968708974773522408253041373649057181680415161402507031756489399002490674443398489357748877337581655447147912914253598066111134844183312165341312594644476461654846102072495893463382710463309896170558632726694184988658044642352652272896362843541293684847934683878984529485740078316083845891979871267430910058094719307489351200196840784374900735604863802200562586230236229250906787940494627984297328191856293567735840465388759273788104879600112079483391109376284915229610848636917273387325723368527963471052016436816972338100450842687432534111730519617267588394661267069964704163009113570287748863970956146262482738881805859818815575491932080240960284227745320896092662616884094412349970715111260866587982746055608095139979487526954695612237625436039291520924398773816024702514485730005573816825101225128660319174033918490003754263963440560553980804141659856708453947784316393977373159967171645581675792844000485710736508997175363221430182622362150937080668174907587467347070803680151294893251372548020466182078076520952113774140708422742380485142280932417135308816853477620261541039824413964547046397800488647368528136843321767168751408183681130140256403653168475050983854056833556832264088923026239018130123644072720879392258954945776074218732461707061623958341017741818699371928228280096351436187315002243289895422289587824824898571547229972794710506923889404052953329075911297572220598059904146475080488188208010069789837398478108312881944421514686605576399683185522086906232766711123885752466192444224594589827109974555680942240187833850458257322010136044831937047732881068474876729038884116516580988135349810481836020908361161401997072370148999838600544526385428009530411043490999118663386487417609535462866763758377233645272826787768373649082629611632919003967945493863951065692385669557955450575601184574008643784445130397705132891978796321247038285928049336732481601198087142148108567207718063143106711848046013900513140592892135863203082493697466679525506654687255411032416447196750549193049326510724726705484372743302860181984626065941862220045845845451136768607103805777614556089301441631107456680757630767001296425168364167268506876850234514785494086201306937148516589990179715346356388799311964759516735245361808057433188600483657140990846587481004056172049168483079681500022092811879064163921074002812315074073992540218312134481624342248777434324731008597843719607526850170424933577739732116031939427025041292234395206504088297405778508277978192505728577893130099154455926051095433559047498778874731490069332570412499166582789525928026182889516520621624527420266549458077134111073445840072941417596089443960441428324981995595903920258080026259889493284745507742299760379317098647534350471204588348508283385739271346126040391123371632809106453613876359793604562254660575945223091787504160639096019686157814867670441860984827768145706845842427953503172250427836708733328649900950435777933066143451097294893298723883834238158256980833243157175364842360638234334346014088071747840153807234193026310691509470405478822209661470397574927019297453926826479077801536841617799290440083282843557595166333558830192882460284418643039633017242622935377055017729377545156284201351014818987662433848497983099201878335725798048517482585590028055028947905996067693680655953318318368218430503102580307391418693702978309464410070270421828422023260564469880702621779700544552507835899512577166265116293726155667839663502359883257667280697685315348994155914263292658093229510543425093400559961641652616182650746628814089325336105000473341546928652340547008695758480488387576438925328765390622144357595022347521562055738362072736023327785398223939241568066700519456799508978360253712126476710189606797323511977122064815448121262425840312755917258566832519023995686372201238953042152049891478724306538724326563353031725015037477531036363668560317569937017161898810008394490919172312774904293118124249762309412795525979861397935688252074185011539922483144235949223322900034141843339731372773306711323584913110528112347487728957565910585223363972588352739040934707796072260878007839010650940072715457047286042754824024501589569026613854930317921869589550220763248692137917658711609752301336320376613607076659952124610271189764272933296361224746333550703442237049333888941089376685817729108890455155125083118019956802054177263829283147834136417734683068080618369135465259236064650906686608952437214035131533769233353904570037898941960242290510158946878957828866615674257513486862445301973933538885028742672099003836131241849613566603642045136424675682602132594513903081184623342697468432316567425065413719736649925680781018658449010582257595895893727789259837205258923369884337937212740074330901521167329387895413750615091636405915756065401171577325896876112718919904995544707786710683263600427807466102140365983861336896134919042502446577222470330686138901302732385783100811356687716409569572062476145386032719337575326609463488138251234151295372759357934476132289278844874983185100594136514568438361354351753637357863332798780136325504325545577981874662619374228671617216562710227853374124147778654787078822330015408122158684601562298493640553796293203125563747106500487855180221412235469745917415122087030930579537072125159417180505415208238105238155951573575822092567831113743268066154243219074730184301335787161703023905354228797001089653914152459264984327818243660206649991125717891051234496275598514292296529342871324075434166596169646454631483607952039416748006135331003677597553098880820816163730111054935319777514968612843293379399251563351790228418818384629472893121974285661855708893619590212959827436254482874872705517293812876482927229270930317885094265290310803111964593088812909403255374526097669967369981003122375950367590228829975491788593558593166158290705287258602108672943320357052679549965342860119835094935374578659453491023654249895867160060917564249849788621932350003883398717562434494164025337134658888148357787895513955542187273207635136041993908585027018336300478604376823367237567510983033445886413262168037283843216157693712619594608261797742659277078200049124062988968426717585451572442700377848419283828975596839694631938706817137248093801355214402534683672101459405160242562135670900198761961384939926563612762923793094667015942129887798201176072092451102992413958736524004663015120780984613895833911239873228489436701732363005064973859394574724446676300470294919670341627343312073857556528728495649503393631862558072299768645301071852202883954509938163299780827557846395427873204093589375019986931797276541692679326194130713499671583379108131538935752662006755556799905280770320449305888882445131577078234319813836534403764615500635530385313266082417504464437268131849819245226672435904749759102966890161608012909750864251752798695496581530301460852487260972422521950926159217026079229155565082272403586948104010066502632886289390117945076301635674249145975923604034993428410684249708063543178214870184548107423033099037206636629267046207752426168443706513059030080534004567039377499088550396232500670772870023657762383773282200730587017230405509291700739625913747079517684535150063637488565164980330237881539507455520848004718491410068257526111473767915625610507857132046906455600993007695110634333050698619277335216288574036557741149892945362508638041069722340580619645066423052709494155690087685311631733965836962424854829273803285924415308077400582741891639779855611596047654173827166449568821337577725495257701436537821496342265782807228416692142892533767737156671535688991457368315443075310891143496763123391400264471807648678463724286677463512100452558271255910048403913186345072270106304573952688812161383219029108708290324097400662115066391686191608047254128289987494342283426934918285845904675868614565634698481236600438131387504402878451456625343158724479603286353079522625593747514218689602394063211654607097507974912191815803427169303218086182621782800887713948297602910667440717068577623741272638314853754115232220147123434407606407446992145159480478051210500125979136042472115851068186954005889247770193330938665595844006090367955523603353007288900067905316646335200675096866992614575501928668059173287872484405169951653683311802152066679954622084907075545594397651353388073312036445295755771236412668934917582810413561855168310352585632380161513920043314756195473296754042321206670214708021977585750610678495016539135685694517014147711093010394744644105341869031004656734096356321098708702696530213107622979923633783070464971105260071362132876442027900453813992435120859183500420966404576153536229564481215919247792589042525223377723747349944991038532189808029080638682948883428541317966484113934315983350248461397762049758987521037207489144642495378538540660774662403344734432144262004420081403259887234581621635802917148570794628428504344229330605878882713111316874295195949142810620902662241609626703121469473008470543482233082902913424834923988558329281265871312709199204611253478460722283005005095008895046261730547931956516128091852831837702032024458550131131286474468711922133540016253625542739117341608199834179169282376812153182488862809325808595064135295982945522841509836924146828562018638891310828947809522609311348026258354944530621437698994016025150505020864725726145393829734502212202852902356964767348292619286400609720253241566791766532929307419424728312021006355687931232467100077638696012508934743618314405748290000739060780633746061995039495882406784263768144528385827906386446037288863960695592085047656026166532957597404098505333973395929175278017452624590433920402809783404282787702612399580226254548358006642470680307091340573757832583690799326423514742038223063444273817763069208099549436132619253526189838373363696332945080421461798837341475017214302427757652373941237385350822980988174899813484385776956053906661047722207861703824126329426967979163909627154706471117076122740297131768871105888433963947862715175857000676153713382480604927804959325729372840106645149894562576877116525112883083669729337581758111311579576184645799262452783423772485259881258251188678343587625886709462315071406141481633551153590055072077547756072365199212718401206785496301519989094937410280948468347656597700816855476603112769880603258540218470297460708738883835799201739692974008337463790054707785607168981969998482672312064430644548700742364828138970269814711089417303148093090186596510261748165883644573977349796356744036621253519273806056404663774181813335103213730483240450271941574096338773994163283632504834835100510194621742181433721755927328943763108366991365395749710259845863170410853898006974696160790048089678441887350216084091660600985554712938219252317469937544651971085862547299283274580751878203560063853262132992971355180479046453170559967744504419879033349065795043505820660688365212229559474391301887531774600220824398907289917706921413467538064885935111761495286455755755940024356592975619580306261815116564925928721537885336416925742386281478186974385886744261646959185703267801453848348556630017728357383012626453010712427672973682937906306145334501697722412509342224749113193907993922850577397681521602377853595139271865761709904078825436038273905284285127512645043725424318501574869089018163913512011941073767857099255725491762736294160412879658652634805967384777549948494410917973344087383117684537991267517780817602829882837183127980828328574529584034660211023927540484557231434985006148271069535335892268747491295730927106949890492831674936045344827642212338457692220286261458719810493170155825736148715840802012594471747136934441464401363090331993326026728558520284482603701242157332860657586126278226859611523879280621813211723363573977523931905258797701025902924095621555401766534954545318624054965790798279209731092121500669498531340933211527410037626222435862746437040388984720580931105051477779745799655988105098677742852776507577311493834851043467464001281825898326857067247324415912743882413858938762549346714628827970173167647515225801868461506245072859925028217353410891212422225346866051060258589556429424186131700771429065940909533118684357546438923540513482276607179208173098540675670990810250401093893504402654481676928141201699062714612321576719012712247068208578041371385226639834763701025963661863393879892958885567564338569755528994009739017992255481581920036698727935011670619992248481292599359839644537925376532317115313632929612509273671674029866342146071724190599133432942327872506436507129435619436277575582813950664086472346090250783203863839899699717765375149359694584610748610432414612415577671048833170941653867702755811155520421935482929640669220191719578527805220542083581004847298970833676422827652599675378648451286978878168176122382694130609592224575112894660013613165070316131620472700535358633297855347839835377637617351380494803879812862781807873792751269427736358604802296389791218019781657207473637936842666413754773131186884484960225417502564567621483867999872773448658967948766334770096105334076140390154738291800257785826805704159719784796224757991866318133878478431918948881958853546947482198951108778857423216400095745270961355026045086903355464928067211177494288666558789013316469227022698579549881977318143211354351005483970933842492887696244862581289560096602131191243728791693740108142571931875962970124880509203107890011902440666759142419350846990382631303975858126130159252818704972800182320934281037870920108204343753826108982253604392205041677557873551849904425441487051615375850736019300004461333189142199133766775313642317799947915977233763031954875525479266725326638312277509142640205772676982612176000998347790589437318969566561585501896665920619313109915505755973862272425743930547441607870150465202600442676812871311182930804933840535395190575997581115635635139262803188372136777852757810014103733226403752304889044269581417658783729001214303862629146154707262716381046573504919441156293278942917721081122649314575016239045076918895987122832294793408230925895753457411503680438484683405071037151554792069209563289868884476521295369360552379065733353350021343631890641675462078197729339720253394629676599308464240218447709919760273579205659721693894933179080543057084986625036530483426273767904739635043043344688875851150203222784946586430390642762382811710180534529518189380799218015999277535183579053541490468267184689179589215363645550919970460192831540696624667649371815640700990538120545537478961398874028767407791212967636421183930104377549343560365060885511396020198543154956406735225727145157956657843889540058442963065450604345888494863047561392235063784543209564892940701204576603970800092280846027102846386610736212733353935298424614208798751307974705224620726297711304053137475628861666998776861794589159742500676448900500876610649720383830735197288489709597371870346801865048480529858361541389344757887889676261604590909882225208658265426468680686227039445744470416192643666616243423366546376949062895598289443110632460492198598827424384830293599399659979346274705028999987626219641352164809048558679241756299740933939545432455587426366083107799862118395022988857873257227968289249014643030326661825296286410455966167617314572406236926996109559930483214252712029468116415629414009311754402670757841612399633008463073289687056135611201716536142691005059900881804378498672141621888450834134425116708783723603766190880682795807217344939247203093575529969693547237901157013946465273084568346395167795442949782123500082601286098530158736973121873861408841226229494003837227626453520561172520538038454135922889227079526498965127380539587670350239610357370106042496351692825797751917135260691965341895225837567668682314416170762208856645163968221499592602617171079252722059572573469953255883097088444124694472493712637250993397895281372814069927689447896285678863673924890334709576494341625818374180946799567912833532453644233564280490000673045737133141367980998968683359828018406674668541493609523010155715723898064231812080045529507950834714538679352244263392159519027891855673024378893024382455378595682826373821659280798623388547747092840083859508972299248780817583451352835945203461506449441793399029422061888097328178138376753826362159799747733771694383089058541134395902206587065557493052926539735470601353405753288567540193232422108657641357276120636043795447544072778571586755646259604844781713903008115842139668846380428809851967174987224883703843250302197562926646657626268864152462636128930075899040531316898041649205530462615427468366436170616024684977754396762441015944263973286782466552976221124034466413249533238392646954013882110730139325928143142449883457981510318728392158905066014229372214332076782936154605637085218990490493631103760477804909331896451128176862706622930649342378197874626796288991181062271456032262061264152781871777518666472640024591372505791146586909203346806156431858205708122558451730161729987475348447425697636853116594058982210686041421914033056198819849587823057034941708466249000557074194649143412106582673319615815765960034739112668756050223878053345088843014729615321294268001029867212908451839588627689365585762002780545372418612444843888583154270222238098818999336989091926802722211491504052783993216240280483587681750999199557386109901200741107525158968647978356812483513758744012967937621835453091560157163368711370793908491029330379124476492704504105083537851763197638127565716081263841499253908835459730130553670553837756399473165895248924321815602672551972250536758029340753687697662761361480193767211438514470144230514492144830758891221462534972923304764561847322241627444280971731333996706781622070934036618915446733611703992216913782376774374666976359208110813978250217441535139939554478184148699848973493379287388544686319829440243234951116271177387271680482495555422534789847020593973210806223948646839584939392982973126306057986720790773269380353346361690659351104169003523393102648212400079184512731489130073725916202761386368342321650010585360996942185160109018417876785318806090190616767943842507151480277001722540678957416716060947226805281397704203920885544608696792597453000324809430511969729107609551875057518648609106115582724912902288370465389434791818936195316103406679099312063661686983753812999854989901004700979018978916113667118679100885640552937135562493695741179467303067223809683353425177922762406521972715548802789256698662934352725332994269055648774798658677297376298671461610169912126356362799468774335654686424801492262096828562176179865722786661857472872432732589947518207370430293879255888872283613933769134474629396807737986262412173888783013253000039718358431464479889751803100232151617076987729591281273385643920579648766256693241397280458166498526258667095294030593740703157175255829316866049785859846928891200685850366154748852437923256950795069432675346212965050049030791196869520102365509899284148060887479944507752467820693948748135462526519760615725348011751674050938139430053804323093118708602390703911853870809626659116551473720009244376596009296408505571161495258219488525644878458689187457182643541986311782323883048193746267474956454502545534130284942246949658217421372516824771318397329403210690530934147306653809520292370980241434668717471360738420132722431217781312855444055257899540324679862805909653191718343024253525969256625654161726645658774004041329712490385331047094628778319921101122537453840340019762267971017161383678652628849876077818359945316046465317650680519118576743464309008336272739222743658701948072128250030616201353859043458249307552526631040692793948082209809459947818233468067921069613739479322393485265122960191903107486878617447390566261266284284813691541551768224945463776122628251886241101146307279692733397507171943244237570791222680806791611348211586820432738088343889378699082637516357350804930831971938930740015450881917310500705470636333883755310433160405472010711125365631833859176624575589777591378889601484234302301819854976933568928930574244907702781426894665948605867048873527094858796339382400342266090526454204994733756725612549355594064304113083763093859734103273070538199796879376314983813390601337449856388193734973759599107900962739810202646005407159175169425152207637682943577405628926031932750264953162329356847801375842187399746407544301113074547519038876930443262364372027771317497966466771089359718259806953504468779812630414963864259911121785910514383234067083557702434494329355257109688103364692019564617631329253468950133249127662191686701663732120146064049543117849033737516479108547274859033782162375317766211031081040597533534201578026024510637432164668880382714720459097460625435154951506229506765176725447182638249393258994702212352623055457529501334255507753677856260675509631668007850378407990736602222535123729030425423052455411779212337059511834847879913484909647339452710918109305665738266265624367572298657520764009640902144753951656981591519028262615602282684271964581457597357743131997541643634313205347584848799418825570479022285340321172880235307851957041307342766016530576790906141736934427303650747547588124299633582489723364592310956150682698526479128289257683466823968476030216600778062691065096310782686123830383891432493079282920632549191486994821361643094176548036181555827692778061877480914605057114516923918789661014324186693065825042298414649335697782368615023338607405030379256371580378151028912294214378773627419705503502342633323512472905524172662363463635916021493583134978284197990458755486190448509801195671293098462843863821267403177954180377737061779548054703628627031431390299473996909582965819132118653319192265618195077340456828580345364740638522147816846155484295503096770172661495018632129921639895965499118087650856942440145024251159585190962914973149004475960836579050309953507135154113527686778042206327083843691199170686502629284512312065362632962381094724051028941443010660144256661433338797300436322159307704447653898199798905116921942534393696182570694386706494237367574517749429041575572816883685436472998870387731030697871768948466467767556910771495651156432094057276882274643418654591575953034129833971583712356245684852991165385539447470056834623592400643969022626073735548801517735558393712602160189363654183507282911799984796144703373131951746071676825884528359347069703302981104814305916222458298951407853110709498076405327876711902937302807693728752755138971080372004017772074234550280391514649040139470553217097624196224007193990395006527554854845027381089919943229175415207378340962641525363383966881613678295215863439563749740333451889494430505505831938374704786734495080441717479413576235224089926769825900884080103985616506257204129038515633360148394346441465159039543868356676735054513205435548137855876290352743911959445469772296745102414660889049743352290781459329539146404816725741248551598660193233424280071451848470393382180523830340352771850172289347192636506327333018814694135674848639946624590535888326984441668173191395184433532843613497732733605355050752795820172785193182476240286041002001575775285233512797470688608495718963245509000379722932815601078508109307781529806675536297061487135349159134103259290103563615936107512479903220516780903152720705761758056886475862394553339245248078004640458989234961538684957591320995988916142972654379822764168409040956016450523261545217502681272175330633047012997427496260753336731187960113075437857385861290761520836231747583494914299861073567837233549582997414611934780495748367471191233429267505915768139452451663313005465974043456871179948058104812794278485852839432822940347155488100575351921015035398567051608337613639448097358556953479954051969552162953683599566469126576231768433056953718025660642622567649209874418984952472545385150032836508765015505791594497884631490193096932836501570263721582111089677025384475967200242192486851335697783185059865821980798177644592626935911974711496689859421822868464923238764850095652232155345758201435174834605939758096884368064557864809198103717071384332216487821029384184258957364158093750990319492780754045420763567349213797525236940318177465229305711738520802937462306470427196413264077194993555022917460540913932397380421628848516933768752105735168209665955086357500407313331116701070064459575781079358341848209537419563297619537821568930889192236893978790402905113260076867037494497584430488278682627884501478657571884233788558328810421202485651160739944740712064422723785249433459651533536615568268311330713687854610502518121303029977782631138703194658474616202158241823807937995438795908931047370942206835019098906512731909676172033591336990962247538808478160112433488835715686626660632328529958630829838619498152354829943466252551981232874786327510491796586816175046138967287274026034967410931829783544599289143872562004774335122429958986525169402483370796947934040356522516314550192763783699176348388226213215239724863840482091347474402935985732546415009029729920261098822445425614683250205208235210321737049290762264927850453698536166021015083064491265212922891660752813952407660909784114401397486930147343775182093943944507865401351817852121571670599154523638146722178886456098720609274125232346602298315009109400158363489525846009677239095596340207640102101539425946562590398332663818072863181690090793675098998769754305903630748785907707708394260638364923903518097978869396014222936787287436542731922561778897834241723642673053550007348015465896514592202178038620181374477049974738310419674773438510389832574869738201148063649799035922272295048999360766545049079518720878180499588028837255944916285980250246173540594882148178537720700969641388534471256398456035487432332226769380345388991806677623469215797042538813480488890310284603960596413355174066629997978300980536370106255942348849811903703073082831435654516865905303989510235504973913163369536977591492144853060827744239743801038448695744454912831462272179188850213137376917000665000563405689078314969931682850865119121333871271580042797662322617535448220499905293998452976982832386747514201726719278096065621465073293054362854523938517311275948682642305455316409332394666864553906978626552798817323210174190652915728274257647467772444433780610484646659997840884935456741898840159271431213123543250728204157434365885752008532755783068176328812491581682774605788636979870595559652211403925436736266016870710951371774625555957412131867508422754335456750748052374960809574510217491432334095234318103251176716119866840836018821784560322628520873579924917173890549761866155937137869456866068338071503383679043139946131283705287547197276053254310601248044222207322415052397986092514500606647895495905425668387299589654679084712388412474087118228165959460552099939343546176108304358837712642835602108037812540137346301546458852106939809946902137831592960452837066055582219926445281518131185340609179562876644524217927890337295922519516846623896479540770218969563750956915313032959516762114137878225449214718948856506062271248954773613480985528538928427307774144959808264608427262617940370815482904737449359109971603050230569489913792915945692009654944555306614291729744431223159941254905173481358335077408028053803013859617091382276038721466432090608120378537223662223476755256338811311439095896209960558834925721650181431851856316872880730910728371406871425563355129310815696633354080652061339709567091662187671703156263696061970648474459297898439372897207924604035478264669214738131172344494163588033306871010060180585934288844584516002093432636144573338119647172924157272580998453258479513871552332737437619178739259705412844468827276318256030098631348918408007812245602889784790985311559735026857731120179395536741724438530093107255646674373623004653904286207621964070286680648575545460876294897711159088501973758999850789791610523772812448314401820778958879964090871904748516438678791079926163099266453957395734723098969629590419094915607865160089097954036387173174226263495444674207428235484219471036818215523639529062194154119505087646607626101241753589752405528848007699807921528650087389428139473841988549507843132006494035374092817962653249380197858940992411923822029461097275532212916447437535304546993933859342321921262468344748639271733712730353739879766280299661406926819421772090900611421668121412772207322154316600244869879726232544857766754502397414875650874248255809064911030064416423987718654555440014257079980443915907347210488771439321521465968280045609192496170550879517968810729799875109005748159921244890871818184576740394888474056206484011469348869807133591848045104299621774397139901763498178484516751297356797031517127872519901946353645239373199345873033528013105241262993632561094484118445468326389483690985175219404742808156501721628290751513353802350539531968337865826968788300591920021284675679508706742028657785063570457772997972974338147698851371900650429314409968379554836982608599497695340087304125215989525256732802089495591528306879280910653885743705631002303249566468335691966697354567974930095469769550680659885314257387854770494460244363526339947058424669606282535484771134774100576834301198819503582308964322824986093710492667655211937498262460406122312995725439788618954893154875472460027184643338325746741905377514550170218924102849866933756860815033060685458814700238356279253617537018103641224145347438251826257010845578018058373456957727412914113741386906437870303807448267930661964617849389251242995888072263412627154259393868140703311783301477778111117227563820628457742467831404339955532055429867517759924971978422446177135788907335655143524553799555728829566151207461566868890675527093107554912825620909976272183628111157262923186843992820095517833626318992110301878785869651460703043635950546420620513674657861362072023598132614313986238798985295433239472772923465619286613008058032827219571956611842533365194048650119819624426019565210868636915157156537180168825886760995968747703396552347528054972326179272045232236120355109631542403716074630753505593397431385081383192275169180683756457332464854453347564087153365223461235400830385331495068148765782187637099625536751745305129662868855580995629596091687443864613684008545792455409735737416888269813574514848074044702541431334077480797265637170031878754634636181367291369866570234651826101187408722635009651026196647743326237917569425477026956953797976298520737241629706966568773117717256105222838373646427204315389360883590376818812877561799723420691757767058903306915692707782399659967152349933539433365285432998013356235549741121909818642138582225958523109978745027149013976943569967190440546886685258946660418022928894097066752102475879689504227414716574182041956064979169626009437333009070052637669551575126329620401769652668994264065829975189261125123726680404435574654586675327768967075964945995143773994740059227712262358233392331576507032238345747109387667150409636387674473603501246247045520361428180383999703385668991752037833654144557634543037502165270602739992711884221777298285867072785732944841061625419401164964463222166780996633608450885778885675210802701119277314187748253096621345435227597034790055954370091811949117377902128402044088202716707323836286840104206367350719942978968421438031997724806021760415421965203312445867541559246881953147591807994043409981526900046965098765493586388396325425627894902634668745178039567691157007813295343851373565214823610449293651663568320868823318269214101977937902931450695217078473941558450695135359303459765682794614166882000019353020511460885696350401120376622106577501852176691946463838530318073143320149844017608770022597372161807836638693075601510679187879478169629140652993293773802513506993219362162937788788152498989743481357560181364357569914622489263050008817213442383201930357485933911880865767064080209131133699080635588742587981549979876555782301573073311244002570286135750080097280250296304579345466365322996321661679708190358272170594969440826734880472190699375035618049358109393715231791456860844123078657159636212369278381942754298864108130744435931253648273347733251075983265610255798175719021443889266902583227859936102953778335667922113754448001451581771098863205265642498005318898589824566388238803582714035487845253356005393967338962912055429287945790705781606701113167556823759214307967672281071439670581681519563777315134323254961331036814105960107068506439134152341549097181152191726702522587100074643840385098181060999986716919434023212315548079497774028942745032918494950763103920111388974081322338950819862044224075502318525454157579346650136428646595147769312672726092914549809841292930018385734885760369810867171214450056072822291783943917283373902035390575233961446695078481260872665875688905925769562013760086343310065696500829165193187992333000690066676166093821155383251111305174454122812717795539936510608500688648509717031000092272848876974876046543071129891063152286482336964965964605565539420397450927104890312438583327762326050461525677732632067825512751554263630699900411798904604285438522154731460801271281504640701341663340640243580054864056981735594776089279321833726715026326416375356560890433827110280418056213162412783909793637477126757562001494486298180192738545429831961840179674689945270524329918402677618322294270907493440827945355506036545766855754298721630003819829917578159739873204726352164604630738624573924785660639317903712259599092214225075614627626784256251544602141152174278374549339552207487564572019370197499227359450052627131032976885552453402809084009303195701101442711882851517858768887551678806579008555578760213292484602568624472111759172405314267468922289447893415672216227617881730603730798341095988201590297334923482415444620248036213047421129842345527106132169181277740704453071856426839498502266471396772706111866970860169172153667283422871142161388877539771111285872051129714375874923949658132170171205179715046490279123917197995829212279022667893579898997408362245655834209582070012340192185903620292542053545608438811020911353350079413217268721052415839539042354778747380655635388190814063379589651790182035774044461175734828073233798017931214175455553807564511689253817471626200982282587942913462020836959789518399240873290165775434572445656815694493112279059545806706646313767854794104234152403311831661701924259793681087611089983195931257546369643960220638117040266571825019109754803512894756173738128235990225539314500056262727906868530496705654469399965656135480450167276240661465262274564805796082369776635999688471355238097101884931557660108227024142328601197591380466952310480359106814010257798934213010158987630339938664331228106563346574546458377943295393974546537352621368658195906513418203550118995383451605008960431072030249965670155620646778355996554534740945514620370982884109716304665722809799079560412466030871911008320380088721833200289809873033002843919999642735183320612306177242194241752794530181800825972526412506745530896916722795036030418906152729340724971861516955705665221269976655494113027958120213193872527635514272094667272669280691423625831005896699549668600136452591060483244850939276575839180557951112477426797641777514916716407077430151536913695749249463905173021546220818971868038610411546511234623047638589996632825850827296555417543644135391597168500999387097163718471409597034180629622388083494291403815163469264234469839872699514530229311281776550088676790166808622159760478869616880987765264376369233810682471155260974238909255444165892431726203786671451256663260335366105688862058797777783698015375355781681781649509833408326500267488505099481466753718573945739642119910889897818786645763340815072438344413508656019706939982983638209989236743738262171010977278485459878776964370159682521713384820649152001971499133030310013527837545420210218658101624645094426675014907441309087630039740113422978216922941170534191111422695611407447728552477915348879538531598354562880665654611554412411932398238107835574197792054055658533011265802486723116814919445652578079124513988526906293009663125305533897169674127289906930540686752231383200337922659628986289461303214178307306517860621549918216010066658675340085052908483787550175481657977810483107075341593342254589266105906987986252668121204426663103756122590784695189133320190960070568502095241514034437965245261669841649176895488437590103086161074593899396760388004668034231277976261269130888685043245309979330561569780085167796750260598368518035306528846746464366549493715407032675652516008197471400758488583214304109753291225651619804111951229937371352012322538449138267246784449843495940016978402215498215017963535212522317094093313893483353586844307033441792196652916973565357849353128991153021479817752615091631019796288521751306572650784711015177176751088638803285390278875258445025804305618633216387735266273632376582780297436575118149232246180616891127427340682208302032376899555896618732763636432878579248238258063472840627316387358101222606786609582150749593292802050041257451793578013515424893518403276899552859911504092143242382649267309699646183870977568756270256142805615520455463038571447779023729380473951064730381469292042590025838651426615143074192421708550759632184879565164422125195114597496498040039449875940180000318781546598959736308508816021893310841464492090187302318370597409341946795064361904600453336416444488269203209488487094831177047985653452897906495257504408252863094460196000425270236068468571807764024329400829170101343273047591677047397557510481389989823081065553671269848815163182925311847239405769464582976513702952049094840231542408435084075018674031575978059882632530399336204650793045875659554868652493039677061817628153211158740689072211717526210254805326943832206431776418906458884355438959241049849957439902983362315008576006655526536843786168028642460131853088877608741535309743331542698647531346950967860152628097805129508946964077003492940046299618791946235579572085522085561616412447374905448545209603145633254984591243006746969332161715216798289000499542004801007549387146445423673515248411027949201694323583826389699722358518044495348348606671197858091128124033611215817344930585884658728234062805799260290770434500219980867883197300636748383857690323937141209269429916190193966576942182289458463270686945470833190957621135573750971860429350766397929002919822862861575904273785830120235673569843763861640338019372146989895184318085404897436954047139003663905405665557671515374003245860183833786615781774260924277250722526501568880472456956297645507814237184251204087489688061270946362216348431399842534939564982032520015889985210878669423118755089208368483031322573750924120739687995626160499125208374904895470201440682008620628341731901233996696322578349046026374688910883718890017310100047237949168180658130197366946940724060785005114653192645467867845658307001754509081609691733485408947220210960088630764749164835826208480960073222227904912938827001121754259949752248830854373452827602578067925657600737992371766159197334084388206963190025961854474823547573383984959160852275878835036779523502884836759648097862680126155115341785440529436633130117834011676283467281282171718515618552441559497349497185178149111348172643533324030854733982008069311813345696859980413865393275107487346706665418330811205266389055097609096750783953896210927105354610619555982631327169171296316327144471605902655127235812890037331221107050730743050353825159030543727505447473380428511678718418540412862562892642943634261341422605786977354226469301400345665718826582438835612601316291698515460174055912481589788685908204252604466128764774671560960027337514041235501025372698571308631394438452625529837023260915249169265244887122585052976251819615045979479130376305353892322562729775986495568615203408005351078471045387522560997146849062950928989653621547934897898067910161499170679421732568126608589886886835064624951915353217985827371829897355019384989432478427258590716129501215824570087000740786187682690635583583943341531696343075398697531967713179431798732648489499474968660443690096926541298106631072141138897270430971961712756363337748866008076988643981106099894228485491547932680802262049461208243790544531871555475881721541466744167477690250700198476636332236603865377743987851639963068700274030179967406578732174734943186258626073674672489855594788461176903339456065387572448279910270070992801968891814963690794414386968714839284030326419042522810118084559614886458063428144581632409277508768321784680812058548728166681483984411888444768679588764663838990766239593432192470074191180223707379063716751294766644254077658690284040400741494607797270493050127063715637533499970006629366956563975301471244150043680436535631509702041095316124778667024622170953162701626819060530909544462972165720547927013280487734475221899631783604529921060247924281940854553202481690479635115053690980775358526917518671255394181166083131787226821347334577828584317568798401468376451214777457223627817400968800350893713986546933682003689505890973938431982539929158567167506698254454103852996776966998976244749808037435363063672670538776095524165970311970453120045969836075755775921498048508909640727448508039182067362888061328128078477418460980816608863544215611586724974905743388902526960414225219637646333440215576728493673820551898194302483032849708624359665652487122504688263894082179324247517780620139201389327855208145488201564797914178097764804868221501019819178039608635495892689117364357401803748026789804820395533267974831329863979982362339331790598509754234579479783150560437085348832538500723240475928832511460796607947867816241161516052899920870145872310246517050413832617645187328631352647574890065424893020230146402146658347042487521149005371958376239680055015928812994097146748916302126293328084062785385554936729785639859724067037347748062983081170131406084464075659536547348272376230335828240943211793414773209711220713341375083750715943245493265449393302699871444546002944287184661066958715824722947483653512794307199913220082723324491604631556209052744453825882950159728310324374068327189198794235871905649210110143678587923460622066045244883312623769179327919880062767099319077423878991407826558244563308210995441183827711009997877323538480075374071902130161185988771227672405268757057463451454207140124422696584381381447521223898929178130222502763183634489804423466531411984453876158729277942130278159628696767211575904163234479691800035959734509311599568496268235013166968421196808561135620543712576918793147273938588932701877452150317479709284768865987236265883477212823122847963741079820151140751671708259868514775188613681155283779500363496971513838904054427802483427696470551744093054074049320406606444463516236601399740970992591772872941216613412182505434750273365600655396565911733390548349073405204194292251164014193004709604279153781020214366868712270520679712424047089578714232822088738113191832990160242430019512736576640698875928856673926945821118144761573114550202857419552968016112799804386533545029631213067772269522822059166731146187973375525394029687260619730715125955278092417220010194682476555466352528575467034531226031924841403710393086689699775311997661973441561151094174448361747666687792330947638421342103560540681715945809209912311017047356798587538811320392539739970901377504742947182080269638297372250337131670551505444995687424350806717425754568122220224798437591189899388357090219647468593791147847701224116820775718361010989810091271323187076738522040428314012326990381806709139176056110650948607335780607433844546126199514107401881532747184772279299700175592384835316825937403818804824801989475150085637182894012729134925687253518782642852418851709922695358160893746032810311075035006011229644048551722492554145890393357318692425311109208911767278714905268217409285232163710500392958337073175091079520663359961773173300003095134572372368506776536327874754951730609914696093851705507272574694218417702565399082664459168737420766064023277498950774973331844679003701425544255271241288084756672459525090310884113180653635762836814150358603419916441701566332252872897520859775992143332579674147880764229069405655868232743041339649152534108398939964844189410646446078411350645424310630064241581587444562465069546862795993388500190169851266020195802605079092917275957317810742769177964984949317699461307866882746448740380971292074334891385566466389899956361675253427220961796126393432281664477027493863522609829558415360897542278615444423245561423154466675011217277405720193266391123071960740478721277055513356156037163873535061302912197797984635096169194361838023519300489839703879510755223738568359437011372893496535130217824945548536394648433383759404549236438964270280101398074446929332126450029669054751308984528767907894764643944761867836288103609892985994217809014954130492085621818859793180923571406001823215202686484316845051410039201538381889201650434510732339559185914136051099632262697073533920021878311569181637697474396611515757465387228888992631428396802502486557775522408765200293978123612165749384349371175864972525537938640962817833294791217740936483513053158765155553283279193277657143882237825757228725048171905926007920461924611490617859954844625641150109619649308057011871523932879090198631735160005449095108853570834077379709187626742638337160472793288138223518252558207980399069254668525921748393035030221309956165280681521127138781145122167369998891741476017848271330541451666375092255410088409943035190192493493561797661027860946034069485633672966820122156490549348530487582937217248211162749744785374947425547695871431766185332171901291340481638227247460671455127451136313508090028585907245529712580074270780169348897616038871419698175171781710580111712580000981487504995848713183709947002029640283465900242213114931176102177114549003543899319694785601189069504518624511287260660597696299665117916764001916287803586253253887638721741967994007604619468146071166290800693521617800640409354167295750174819091385687749874619403763132753420968115715425587911161232889941658433895597089360568624159226130350107151959945595299567837065320561078706617469132822982922264371606254863030473751351743141309659419784119604775278568212343923429815504014378664217819035005996722120551942304256704218057640295147951914497661981281626770559655889507698973408438541399908315530511013450857473346170271101745258205382398910452401555460232695796813717468539600241688912578067644671202608779769611370077990394087960339698853539528923548934726040703849652686995368669939929070542095419604480607419048369974340915642816480716258074430317505646983047649469343828125537103210507223944212614300039713586460865344126506062201369188585030893933360104199008576583867650829390657214849580210713545550217845220587786666135127428388951847294374435644094791443154451549619589071025664656743411882462189392300351993371821910382094404516662644967675321988236148721789286932990746321700781460567551926530446438960360111072098124951015391451509294285705448755565683311256802112097427488574510655876026329458214470072115721723904142500277494349244183224731624589431153348455206677966705548234281164152735576429846690467371566361407959442104292163743045455100875431482806833645981111717648243380875997413586489464780519707877325378522508669101322805874937836363347248237045337601312190232344458980763123644211100814083489924490288023415094727290899285628925118310589517762116664838590549210857186383644762090272033138103383231970094293380357712720813281487159930730297647674827271000917330948441503850395335759015650111270109793165806190268587807486305339556967575909030704948308183110867293319281616640316015928662651488408933373342860939696774905812234824923783795894681532847322109865423587827709762544060353925828210602792327665571072794164867110346262906043236201505617771816323679902658609184366891015631167752937056479159628990299598085837658831093539415786068743198045435045333471653552601186412293668105039915731295213354296166639917806878729466312969638961742463722537241640602385726007501519793305489218567890025272712714649382684909569148003439858292355866201274559455081306674620146741643092354511343156467692839741331372816421795992502584820560297952089196404064802871301189229887830929221954785358591228276145624404126283064687076716624464441954136924266662754565674668501735259640230480296591663898650068950299644976797131943556062491762813529508515415746868337708350784794383142106352082237450214182593320388934847278731768618953114739715518817880312878426006808875423865617330898555627143846500363010168756062318648299549664966719221524964396058105302812718537428898792524232882442574900179075602770874813793964321526513401043186197364817274672556362619952747896984296811390302673130585407838767932702675344081262563984841704921230217829904083424701514976994666186932701904297260447065114088614070285471068330276590803210944339821339079039120917672969807617727922906139775415668480567669133759563051803539933374014909068943409866094461693583827777082433952088755063642027318473420836485483392943918016063982591825990717615373190211316750588366565088239518812523065241908029109727715499981702701455233493004393209553021399966367950196573334358639234116151262310257229718290353968754642844846911309783034172725501957827643240529640501214154535920303302294598893627386254526905051453883992579168347218065609000083360754830687660521858075272365952729420463754112747762424412162847803250112323507486041851853656146209316794879123538835142910067988866993312343575088389071418918410596324991627358650115839516374951296539131109208542503502898126270885129020135563617441340539827052654466259097369825082083787728692081650926816906524034772543458963900235774465222681360666140562053669462861519499466259784629149297535996061435714530769187879357860536971834979494079090009099808715026840991323145550698412366250177051063979629917430516249973101936441665163598496860068511045839482734021146646565478556591104162733653687545367842516778746148084175755559478504542627167937597400091810055477723989915189547919582097949012628022941791720902101131309851358300641565008621422499718665395033465395129662723823788316296960034062756753914336848379649629322864392605534080509586159751842104662300778924877107921232187418743586369515805277420825794464266991987519356464473468883130581254255642774765226837409522289275963671920894678131758791413475884907200467789959164030263497184233071669093611362113764037604816630355369727686495789552376901927412042599353454291683290012411690994136697432223993968770363796340705559026538634745986563456832336166721132902839846736970903172595208295348525832142786681617764776394683729813930470543183576244632912804986599531493490145248590736465509282570304859939741501827329800483894002917997194878801728762426269263323861779425604129197730816294910163706950461235382803869177595064257306014666520311837966384764447229392583865923697113921900288285231712369246278020710493706782347814696716696337999326504443539669500768848689088401495598064270398189930014664233106439534995257428184140363962194392785989349062952542907553219542728403047534785801233812933161867768582093298603339346912111775521639643538756265263308496200895548025401121988772874882543710678725845940518817386133582113003971140170367814389809465075008585976940736796879634520684068772608365460807200598425437722831308408616422431909315253063062625288143992767299867610475152865594803327997180652371179875185394140813371779419423978330490992045714421937329138139996975121849385438758300962871342032676684443747895033074560968472933738292318731890977236292801038003566066331334409400279460283390846697754946304849221524353274276813829911235390604815323206368148581238738782943588406028023254057131080154284785734510469637496960164493239746054455783136622504987428628180308928987120250334089216732730220519380941440277613882845918232634683709473527977280890491197529892635187353539413615437211212611814875926109999753455904836707334380942253762186952759484864526590411485543037945929178225108993411904686465134538341737359041138971196624747688539697302961138273160979093889289053248084041676755948492442948384198414011627610840458747861139773029052564403527216485468842957970522501235219697201516337174398720284753873256158183596628319283369713382549852354373512354972492589654027153789457520008069534092699811311064393064400552568456966210012275610694248987949859610359322854855142562828440735105253506139094455921404653693580934905028785449682811737048011053793857934422726036339137640410978798394867473137979537895366302888981434741253320642801869155116261612977269452466096865106458333361638704003368250387046710799443383542469671356547475036625908606084699730558776974651321769937046757954995242452110542978752186241619268833080139598270232059681247325070717190140359993924171206495700240143789051049220867860736443320327878044763454531407425803241220716257079756829138509290852368003170667218035058209862954570180148265040246791733020221272088983751705930206651285109972340076240476338286091141338847315003398438319422143841468615330642542156203484388007549791184445324173868274208151154819409282201998088012575276390224112259479543421951337592973085618290542726578600416225855805240867762058999608332552026152047739169477959951121295087946487053758577184271118776965073895175250013920296782622963864983429638045286424882949534425012291331535274389825255408678954218399336696036171258191713899668328118811399337069051642608270519802491289747791507996729229150885778952173932224116780111742858204694578352274371517672585410945612544935558060441099127381313394622939710055314500645042143627603223903082358561574870608529517727146874139456363741752134122830481171793036664162782099768938423813391094466659924069774590465747682460650846407293427847771586712509557130375755364953080967406639539658243142371338865808650969169982292084921162468230178815552464703609874109091093001661603214870721685619035074604944114042090931642944129039136716043731449118322872120788384297397665552795093066003808769691728745711340758482767423333160322437031700519279458598678431108261225816967388299211061480773123889147337649450670932749174830703304544618685651241692023721324824193976525120568475249282959663443315289013041297889187047320145865330142432447662136625828780544244666448477112448072039246054722964047732404329642516114853679104191443498962722110055794653117675589388286739908034839604876247348025069492567733649330156134414404887590956178453932497973266838883959512804043421512123366769911491052402122301553459515929804245043345300090788280535377967502421200440115226229939547013331524596744185306312660952314503698050329791990697451319753937541052310601506245037140401931775654955285001944066769917878064473188810881736959896836420715818093590488966137037227781294669764653016394556837897069163135636289931601769601557194114184909195116806632277818287856491428128275163087011488625957656432792156881120109976923324886249068321046570336803069231507220778200645706617758758101915816752548225187734292586024848470032959445434479807649131886417492820195397898548099481962593190046775613325027717472072727652851331591074918651351003247328381394858884759961665327883228570272361066522978414627732184947961924950641440979395012971062430356117669251747426073990969332803619715102948747306548474225910869060855826958862299776507285618275042700907286104948767172097959994267785345988968181532180104149732161846374367707764623735462017698763509286745866101414227705466583311178018075628067925129309172094841927572328094574851752888393078423254448310149128368673879559210994246538230477644653655522673496912689390757779970354350065168769850068418833947342012605823661023372277891448158781606692204524506637875584496770946967155426355951168124297415944993045015250516838686788729534829600030029342629463582897148892867991030385769401882499656035475523186571539318751600223919013141623767502717181633506578456479992341379118692472371093799062895069349510140875153845461392534940470190819881709806109457677154090511278443536517503470156616670868257865719257298072951653215743643837456388547619955517848102671684385950510650995929895294234606511582556810601726234833395873123933924524116184290215529758148671046568278945378726381849304122324103830065722581905075343044360527682569371608282567893904753999913744604061038614367557657105848330368151406754777672125335993334366304963167594937368024377743829733390863096175538854402553532793731710410742978599025075606688888507052953183125322296412573579850354008499264403668087112049931121551066550651597553362859799313192394702520865569154585071180260905262684996864941952452838998428507858140054460868845368417218066066865282352509654287630420276724468397106774571844481957011568074179266768134708818076462584895612189347074970736171627670424653087334642425189106943130807046930924866116857294056156629212216743096926013017033311015298326739686924174559021914523221592146420518159609507425611891709986155428518548729867198167386076771754881397164987167479860808759142372208644333627488663748475861495285835203671033065420972516837431933144158665610316835656506295627386696652214914733325040116110263759533260739482325288823770350348466926929349838241447648514154169748862739803600939947566051727445920102498318400837737787749268738225379063800213575721566813668736558058544114776664669873707883334154966834567709535479797293793502074757980321010376040067381343966429910615012939692979271845222226433027620921015309912411483350957942817317599408814124676254105315646356112655368282337260079201674657157297588950649312429724351389685381754472681833093452191812313667581363974721918171959520210320834173176270907365598198105443089261817229285089309339386312675672589218602152820976438574107026224337115188083854489564974808167553396847062913502025662487397337308381329259371105123593952590293687643664810882961670001021482265621178782029369751920289710006789303749340709494264665740178493056134708172910499438602183151039301796418611469457944565389058296637364925120206369520563666554970094049594744704188401577593092554819034495111473427020516812986243637452484744967660129854802497871514282493984935701581022513062687125738970372391470159947906720058643937862925907833222126991770626502532456386709482981760223441651714043211352180683248508540830930320772081047992412876858506113742014197715291565132897985480394769464299011072888477886084976583382194596412874558360667311837964563475328175098145050225440345678383737826218844428389062356367651119466684840919378705054203696602038994688006353510113884104815707806538778367758251083688156715870006294452290723231346031592603556094199708058660280375486186099471106162023804288032669694495981402732719913430849340941195447074752963575344493691419307920717993572061117915915425492198434345138272217310653447860987040203529222292910184305528633524840656793102101440798211808818612765703976060902318815842484834813520480105107203291842471036387064919016583923384740168353448802689495969987043752144605155700217156676434467522766142842279058005760573722133859332884705704543695553700385079010371982913340977642397039214330974667214116430994395131883750485460831063648166515621552926148829884512934291501502118305072255518797696179115112978284416184631678351625770235753404702446487350108718014807248194202243864506473349150316345684791387499004238780977804750258329695667248890336746831606610019646073003514701908910689400996398568721940839821647822277862058474547387764847693370783910845141926067441110414441912883086781204240964261229410353497441989659407754163811689710659959420624209126865161995921325304117752419958324755558047652537227377813332709528264685581681600774739292674308188955466669424644428582285433567201815908624273794328950239199026125884225498719827474978618217156224035314461921649770768663715665341245543042193593826267659042010761183538571398146395725208850818678206715662073417474700406894055902954980115390254219929547808001665843012219251651527943612644314870792428124434083170447090946999102815958041938018330409114721976418704418790673614326374805465594447928631658926672382233948244294020595925024504218596213832801930079509940459931410996352262208018777856128702561796546152518591836313318667988213345141377186778490585984985219054887011373318544443980369135503848532493919555936471043878607931524968263874759796790269826705064331071056211131653450968063312265259419082179483764922214240735854102652454258358158161727573629135011200278144727609160697097922236698511815657955239673635863419548417298915600040110077997247091970087509986680840492112396597836164066401817211773036300513638803582575116548324383378017589313279730840288600953264434527339182668979410076469703041574290237760368173027386469817408564052251477746505721438209412602849686661000260599613164981087981730041552128483468775131382418698000728831437795904671646905026981984514550621806345091170992757411891922418718971686767430249491190827603025048153448639524250948619135045111123771121711267522600617154878175186925327952085673840670373475713785999668378532000542327333497638973008325572688478142910023901850257762079192623590180111916896577642842418196308786165882488848337569771716917736568144037841713392405321052055301022115574798191546699731158781182716549968363607953394424017393868254383675470520202850956074798793543493952902341218167148934293054929419762972685743886657465493339312258894334550613674698922899257178932527740589366963290986011441010874284474261536532186359166530462867392435783852759762378833929448260673714402836363492699789368436170230241047284628536651860030971029517420685081794312805047793866809895723445628388171002349201535359347811253259017854302240910967140660720430697868644681518671180974639729318591550704345285366949294188354285666647793169342173472108934957227875037575454830353102878538051021758193499256560666909502479228778722949240304134542151661335830132357978822965071717079509261571274122335212618613433208680548413907372214555531035800051656767187562708126558774070594037497687979390878940063130974902127486710283361892974183343167358029222306766173815011296709141689499847422785255246876948365019531478468442476471183147346562336354015325127909962802980135276716533548241670739014750363326783335306932814394367255972696974485067201009605670170451039357184270054955165175852395612336746027415905310186776500294736465852849077666053801171928069079076914228815476196885053941114336530154738046994828983528425617775759669211543079168916069632276412348148015545617868255943052125660004651408825017412253881818479567216347786316608847960664083814481862591401582031706284314827844759363358725627032824508650795439811382168527987858914064436967545649785091857841755400702147482482842327896574330037693442468212844130581888540067567722258206790741361220817699983893502859707659247563312460090341031550582613215998206067827365965934263480200730721216208116266045931049286553771326084134006683232738875581320907188840993193682234767170435365821747446419482458833504143656091271554471518257034227286695987210260750818019602730183572426188671191532750610285864344925760893480678790037481787046935351242149385099495214624865993574146196899590158350139123715183721736223817826458651755491539420218356596533841069802023854878120651154831834098295354778176282872543487537632485662216941246771387625116204335436690597805382333284232651934305025966868640786973101023422885996006488758703548329035966966917385040869319507220656729243434583671333501815055261714160397541023995607625435285758159594888674924599362811344676899561317625050406877426595527377744490039028576981469132770111402487865656090872290319570397547462912962716605005285461590285459291794923872609004313087333444049251752162869583221226046128501694499794894108515004057397080292140633130315908450506051716277296882196808869797968312144310314557793903178537546692648220228915882494506094933128687536720141352353849244567877627521508114113986610503628204931619002141773939696953662570904125638092893761722274480701438034347991779673680353931747364841722759154688944816236612610414906787855937130014438039875174997904368503107124082643961023404759587793004744540462583150964173789194853598394205190504442858456802741463990359923715172854068716433027719986601261902867033035733926784187802304856745852357831431433660201983969376407289547580212031609964706820615975113676263264421636908201527205462367273341001416919420812720502800870793807438005288552416662632423287364229599555909738837103878618928310296210847916750427190444569730546955054267135635365909158369591823346559275167479844382635701367524491804498471300118193014237880870683113240052165163782715112727334007064244059947843458681884666037404151785106987870014995509626898198895274276405754514748376462130536155703736645126087053858372641333475138662305326457597085432165399120195247738069081945479424256994370248743148958665125587152297884272832739811509021266457543962982418970871616707876340995707018259210831019416649111728369080666334589007534299339735718506702955331008067880233026685085538839012198163072094469879750309153861574970100083064030809786374038768616467162775403371002326657443363854058088491483169716057128427849093054090848946674717773626712752770477579717537373410929280262293410413572002907269357800563584410685105742182298025841602600693506083863822661349212088968905070895272934873561169610766499514988126374489603493241431142289301670310198258713260955648603958706174390499408979236532708803186586774302504441886362236887017086921379519491154830069010054456187690388242963023384089796639659718494356006245284363536372737564876239467023464412700662371059461655870519177247060208192596372343536529591749341735174361369861035998386559246968611354085411433601436377161263789537316255265265567900629132127346829003780774593785867638098221309701464996519076002461350091361532309398509271104285733602094947391263817932695045999306282588162160416107652131783129984136095916179404792046189347761132271860477178663247671197226648863173511832756289361646579658872622412558314440433183480917911139335938662088047432965956978166797803103507210711261367246384398275265710799967731358939966909095157146409646983802297659548580330797847642938321039461314499882064109155697248408922643352223764273856336598519945924178734748722787805851955729801811115816245812186667996428311595831210158789285335391450487123660754431457790859972843242437023737549315910427099096062021383764782531710579236282055215960999655053162297308919527172278112145530335741635262024519878752470303799934946412684282576589674492996642329905983321623537575729421740714193256460763881024286638876528713314312822444917617018334085137702164549292629300771353847496807892605108336829588462748016122908895012336591797189340917041696785048676737321450451625655000607248884085724753324495615929110291305695030456668797126150819193145753802710958551742228455170417250420332365096672889274036850059149750068418238069716682826595618701593860818549194261954072467473332606114273336149135214268148542987892496225765913075748089948724732615685250550319263134362294710791677420250018827637444641963177100251138578518975768846659551146296476861502598318336388017737385233040343192073347418587681445684093081086106895844807211927495788298715287803192417512607570389576607608613906944691203412755064776392425509035317333891362566492645833524601263046578777636061572933519664536122670460364264437285012336122446914871540181975251287598057774959274997383643218446685293976446327349063612297590144254410749563581637297925838970837370362583517479650448382736853089788765144812622684942231001548549753455096540861586517551258947558534019272755198083584336863326934115678244893743277653134028023265226720268991644516876172715414451625577866869012971581047724911642223060006323928462552986473118375872907475701182773511535653773220339243797564810359408820003109284016096278763916054216609581720347769651192369894550193160669266151520761971543854767320106590487671265885396849168994719040509763226877802060726361505570508751098034066944596187717954104265132467234085936990802612015888963365010128797534189000104268199853423935216487948463857403731751475162996720593806914539378514401984578771127569064039341687045858816544518986394515005072349039498975683506341832910525428374999724235670858705788090688248541186539472246320494170349040040808156321220650330002220666723890816653648228232995153651578304522662802381842650324113711380098019540026397720129003458833073875536364061820469049341505872360689581713472053991899533025933990777605008222169144139744476337954563560811280339484188978406476130723059212666326605875282286779283014018271514527217182790777611289350219464103377719430377857777111854754815708887003568404039895380913508197250469866123084795847181254800425489931242863549817092474732979446172137566646789950448284238161249809255002476336460727640480819294616908648108143722532943375083508714776194241102693122205799952330970066034188969702035248986800562962099579366493149947272292862161605460009634823571625244876329851076720415800120788119070350252952625949347524655681876114401155101130830394129194890829606113810303772110300378799910843172159134156815598367611741687966158805253539732982429727858748775423923483859677483720881919932739400603403771640571339863391373094863696305638255670879794236236041193957874204388362475248698517201921385485023196547314208908728155452139615839641102102616962847962890625124468387777311572678333211349289989766209445991466266833420158502002596148229138927955124011333655207608422607916702960636796377544908896656187144451140387466486917575090140689752087585727919303363937392757532305806737817411981568120488958999417870770290665378147058773461368108473076179761959111466820672045907432882067879252199558200518123533526270665782510804705998896924662227433003880429295457897298547189013615695351377423919529047131997243601901906821177383865316081871369600924744461673664611543208755067586702515744797139699680729706690234268093366087531895113347659809071861283460961543696225637990572231037812125141789450466480227646078013641605650413929622666288205499397353219670535431159963593718532286933979777260627153684157076363204042075671495469479312389003067987710611068286452590381843352129085760051626330422515236756383208781709719503904752838745551302779449270037674442204811255957031614653958092109391458049991704035598288087613846864862402983168995523423220526684176058044367759464064174430615640386429907213033469025430080583137979957160906363508790924041618190251516610902418711134436207884985403161714844844829130817122052102708480341121148075060090667783753792271750621943138136248939361226811695340151183643971767741316716028094291515240909658489739762468197033216952695412498859222484823852763268679228952511835724949436930406492465100273592828396790048333391312734876693451694215969878800828009601061653603046592129962124855378423765602185883391688296393648719922055072361719343498060166939432432624807664497149288864055430301263774200861152495416343981000767726074779644622153099807617976928029448512146827674571288259422776645325739092578077860754631277909716368178239755799736312168069279545550972789110160134552234668545858951117356598428985696878705400121048501521407976992077762051460029443924551078248417230252400385786922270895819315227424187372140298808568842910203421019803312314153332597307562975737444247037456287400975343864414088917711165824686083805237754429335102145551260889304960971685985845864597624528324951351655263522924540900447897867203750483140637485638097080953687573186651870052308748961726586970660502897023293127001817793297218555716188215693029491418414121206468617773709208525395213546525049683812647651570030262756290346829712593842240650548624479840946433733373187967736768243546638339905653140707362046055948120095378544419476626175392515476250890904515902105553877559018368832614963338536849982451496758768289298474649024835845093306977440022016005048826883674721674204888010348222715772507943347327161248903401338751418130204970710814585124860836690566761959693960185733088251681554449931957358321276113695632680907330407421954536286270720085181356633258126655106725287706192431459529060774318786210352702490745618991861999449451216065756002596335519334222059936533626833353517358338247385917103229349578268897563979259834514124966465699362451949297566796542085129543286261179862269072352259599708877728871425545890699871107943256351614457311012142568436309058092950806140067537666403189432149891563087705287413607582403368845335409669860968449873101144087805542648568476139757827018348113619952950314335471758378751449808870676924562010589793472149805408863494050124719680238145133835899385317471865453618950378206558493437857467066235855160496993760933840849001640085094698396694949243265524760543073813959528930737757784123638311098538750033861716441624586584345882489146628654613376118219557602693876246078093114913051171818389235946316075507944952076371420874803713677270538561464015464028963893644479802171933479117462433864118655570616387553815238153488442890206675765581492400542625134247634859727106374241585702566861064317594377777103103747246825495748312921344992306707379012263363875586598610780130759931242958934547201165027899160799872043648107291282705067380926098603156246446373044288455306054274499265795375030408427419640887239659814409083325356159631714265790635843974833374859533182606732650326054561754544179762528608804794014458362315028053523565772547086299858612231733021353204198767263869808402242731030052052736058884008124166628191671573997521478178685120976167902090209985593198481540508575898962371756056745991225462826554430041795852404379967071637167034476234965710862203538383405315980020509604337422216997681929725860171476365329958327095121317218663792182073381037230120386354949201189859423808409514561473192209881966797672102657025268888225106600661513296444132673200708551028323017894819204258994546141392620551442966552779952108291493450304831666772278389695501643641564425712764958139712276164679111301381341695151536609090401070807212080890488968037711435577246005110881681613493100352867990918332372387112098247677407743347603882187873042546686332621514489933341606499706834735356585341251648106874041420987043440204672163405093622076104791089058544213214797012299124058350949389516380844695026463162121683789441195927513465637243673368800598236958681153633467660755757577753891098123950977305972635052488791494245721714334197853028214026969741739253246098528509060756239676326527555378445598772757541484968952318760276447421439998875091953638819880160742141347064299023105991935899770527456061129931339967914668104074638159220678607783173138906320408201210544763144011374827375190024321809827414550412775470728517096164920975420172277504629093110288293884313870044108982445562388027987555755474424789112844675867481123933114138411827812239052647304713405252136170284745067836278009177551725800696379145539382610886613769539412936032329450600292359477331262165527332565948672662101648258306370307955079558150444050501105566324585314488761625814743411828156752720271850645993231961843138648217496053108521402570212263623757221900241639323533140811536493349532851634105683710050011048658132316527161652657942557794786709397258632235707093393627991243930169018744716104003961527792901524465451064574502942188113836032552531153043781452485956087155500960426858300103365022997077385301795103643971492679062381357611976317607988783049110590928618295986379486941556132828669694140106672215304638589588846587401959259836281689839520395795174709058834501047326411083516838872581034932147811678142111794688688254147782398899084385304402725591643260630489798602479939585283716241791401737100965940228883507046730123778388564909345760481819672084554838953768769193064530987298822686948966974747426974452418071490398489899328086015877368828503523714677111092094694507485077732284865829679833207292540034947316431169851632714764622514518341423811379427753658886035005644457315094392917567077482719719537998494278730560934813461574541682673684384178805408675407580553544361975784223271044843384139331689985703278287709972780915621572912379858383119862803557061427331084154465485446398968190855905968805929623681568821149430462402226602984421846120562099254779218142580315855158903896583651716304391953127142446523042094271717221450288767519690933828092866750884763775788742255241798173609916610984829455516198865388802289313773415046444410881517858966662315914838250672591268761032362327864789742498988952910379048453129352280561439373827822041447667435971167315273766986968399295420320366682177825543299439890041066197400294480231363084803621009095098868040344292878815916569842330593414201577371859431620593955064959429888573332002330797707776326597296604641287319777313254073669998502111772389550496090112874355577463622713178403055257130608084792200416471482302853736212090201810897685360443319872639394195790889852979854578942154819054187494811619216188211828895962540606850803763484778229804742232237712985564960237673814325336789062927830622281547040327634322858358264030566304894517349614178477988662595073718696667347544039193887372613186713924188366141314845557271120782471685778743307912192337842394238362566245558206496773158142782079548488456382777321661550350132183239313777176252277195781998459859577460121909891383619142694618562664092345545558523996198096299824091359772979990847927001794163146356835091690551912282738617670638320449329666576938273998366937807179894064855927640429208885265434971424144774695721331630465505205804424862461335634898268175596933346582568660055962411468239396166766322164585533493256648807194243693839414531759522988580584815543723780164035339772014543542367609219890331139616542210223798022254330798370893060260817265580196455750094651634727262817287580388570365678932800198796926146112619364995420327523177084060055170592073436753183351309460044990400305845629693448296252498546921162481586958411397671404364108667072784650676006306198988540275007902360719028630887077374610730170250955179482382592637013290174281391004008245262772940468300434334965774687989557340710797828305699258070812985429032543184566826524487261235080275958230093274750140197071655408101039686679207590835630313834895656263215277146679779546638249876981879386156799111638091565623250439789180807407990589277604150053608868983448696047073479129608365837791969854181211837703283751707337185021763673639333828260056891773645837449012086472509678852963326410435836372307925284041992849714170763509406780774994290736529976236680029027535888641247317653891344902915209552325111974835689717630951788863805305241694776658349061079936421430737980681925592227865523213018917216322088246551662374469339265140455080569517948669223145278358314346358802977845124102407171922362901796221884206298884775315599687935001400896467609643640947028025678855700146832160366200693395516927207695065146600800150984932815139258486256579962993813650047805489407585193002204267057102114327898186679412380223356416769829342080121201584502038802508110582119952671148048180204504332692598781343203448933020505294657540512392346469003012399883368608152648518054079176716350806480000890555961836910299860261286955311048221542043411464176497528986270552038065423208744048855714569566321424026020364937710231906746544384941743059341264190477897724729973066474731095881448017030433403550476043065129727023441675973361342421730000981474873371893945514390319496571634272376629918526049948731387529819479620364665477891415099803246094001542346228360565799784652784718730771840126863107333945676470237842587016729962429965406114432220452067273949396047604705911979203643625782090235335190491455755461236663623529430813336576934117934530012595347857254187894857531185886580480694287922104152395673520949799487925879296095987740896783364765363686775121665439991477079532555074327187631052074395250883818722235538973065148010668633214686574931569955507941545518699768267178260042314288247832520569496387929153812122796053050298408620766416069165216595343132506145051865725768778068151384479508381803130146537286660148182475674207982953633360540466995295755434337002471304349599176484165597105759966087959736966644766657730382781546735385008751923344116454749025669108646417222729962023754210127231191879746155133614135963109273718418522945322123631239257044051173397797164464174770529568825057107586204014476484040938321554841382784960851296810218914616451575223952683143691060155039215570001144123493237530149008932387998502842461074608892937630407639102032319730882406028330238997323441271889177070300136640462883989183594555033325917648148186266422993194651471755232168925830765493047992923787860405959602849027092711907412106899257874484587400166207535532568733262052824689749920562723072557562001015344131717489933222461783346269085097807940217608071087855694124293137558085436839550849017141753455858634198314760263360991220491704966058732145779357652051420134482118905224692463060327522087796948920362539200958210224623308660083392146732859144294194692377024126395467259728408667829295329878789732540793347866555137893794037392698899669802329337527658055053319066277144564174319713933208703315798016634042644209149531318459291752217292138656227205379738767975609325100131387644228421603901515129686798423883616164238852591839747980948067267681820323043590901718017313024607618788073914461837504165620706251342115596770899508388339262835273751252640535675808918658600999920622786914211054596850116922653303297808096654055131539263301430318767071232923197975861280298896027487587284264536288934746226698809746865660963864113153545385557665834837335804503886738413276554175178151132693216789244334302204202056746251281085688696155216979784125747527330001311911700125223045037753717136418181426208635428345069817331103870187071403280475091146314371539974576724128452402386940609506525542405720710150479874998385615095690022766938739950593999412161687181259795294216176510052055168855273434941305849525804236585598277754173178530120212466081473023912149312588914155749350707126244023947203163882034717630904577645651889054308664284582672306376441604464989048969894430838005509694336000943207372458777393401468423258915915948806739808811910472471852634426815823599976052091282864104630560678470256783850147450180154259117305146756166195655515614223113609182602285819618516195819971576386467924382128991828094593915394001241257804069421413432845880518908955911332844091151085083034572944913123890556577357910220347243238271324629914583357338359156543050037924206488783832025168573003568276853355971566650251231643983776807483471712437853588020903460068680561983107097707789045413484845205138299675671008601992806747320047940644328730215497375288898554469315587016365461083010320554966746894330464379547808035284134451342864933255210114396583306341039574138230797631855017481664845024093352580296101039531916098573135952352689036720625761967371966311303519402983578409273630782382707775917660665009196527215783625011407487080394552428001611405082856963168055630717037430907290040738067526562576505788289298329451369428996499498085538164901940017677377086919768343916810738997909327345810390874754735315703594466671825294793855238537869682572083063371847124847361055017031489691881181765657351369978599003316169240947656781528909069841717906447782599541297311409194564782997986317807587593941138801498241122715236066751739886616660082303935493433764974059076524764323227631400917074837174131593997200581198599745202114211838674990003753203775207013865227444820247541214093430335432092425231174210364508951348614621661918013106135673625554448171324752541094247905860111230192471014806203140137155788657668339530393425412097828028966329115880545480565457540040380332703334222690221067250869013275358017810683897831623846588594138632455212699722571660473235422360051491066428242266895620525536906856186797842295438728926638575071777677125972892291683632039083588861535822913499825953189006997469756621529828212999911564137327312803138984113361395717839105818983334197453251865532804010352538355613969374074685462438922641918694128481893925754258088552358102478080811064445456802919086602714941791533327803734201427210642958202934324754058544045227742824009892065759191270087697185111519405898684844181275746115966758024449291802475633982818398897996069580907624582906648738286415239811556226226148457055822188320182128245811595696294954474206906220125701112208438186082193005129458430828394301384751152662622716296013468907259016943188766064794259694590861452668621422040944822862019953353745664635505072287911884250853340155962029747837897594450608159371960023679292741824156951289459565721498195025525984024529821687731215087770103467648527589270878901390341684820311910220445954527144219551480076068841525646493029117809077926858790191793685617227630304597721802660377823672442430251823110904923828846649669820104761840528015358977748272720585492471776693707016198114997655530556349300100012864095234617674670267391882552601645244791745037412249285405504178484632256690238241324265419528051335330897899555773996064699069470351539188095025757693113601389718617345563940458121811591623685811187598787081466622829955925315726897771807439692984473396348705302538627659867994399080807302346080331212369276045961907097555080530031809306249432799913951045756341109969966341314610944314022518806946666113003424398660902633471221317255799868014380011105445992512375540799876113534151111868572864886170311081096128970552376171691048185984350082889049165061973654426798915869398882150321704084131800205451006302958996467596654895955275838477739407708275620201174203250172810445480212668349978304906322399842992270379247986744686351035054214442751778257538442403801406528364183686730314281091073132499026470463205729661904070868835937128452391541758692233614918438806945319916032135775484921935669147567407204594316131386489977348253355370295990321550626723783847837804813014005068433527578733018043302745403251494038422023939118267551415692048789961505733052346592104752731580064327485695976939669317416795807133383530861199699869612798509715970000423194216065574001394035841401142340117100512605064322482132108567407409319363367066780761546365917431493585343202636345652931123027815642416362835935355475144005566454546680709023350041167975244362767915593339509973859616173833359930643010267354191884546652605944307643696363737732237183766977591240781926773354343425339580478030983586859747630914384205361146304263215502923075330069631117882740767612796912387321222181420185751006625289418633027545560471685591223825662238532955323900828204253040030096168201139774864325873152457702630410468953366544196144912135581261161186177503437445695185620731814951786107300839886131284409156366786524838154597740636008320296408633088550607853141505138866855586735540542704648790967345689593518020775447663241939161200616925774981100824460289569325792053528522385759122888127764936042719663215320995555063766532521827845198976947173568108052438453721702087369573297768195171695230638309266783011760029323534273599399936957341604759380847875709492236474612857777194076864062810866027005479065686974821964053905149016717467229847508258014128387554001394269569026294221154873605975153043278461789296805519947804436485176963282940473478755851716330488625616607662544333790026015753801086659548028887064986929290005088369496785431475865638198366149845728610521862215149404435153270366656199495316764373372251121290334765894627118752331473912216081919055549856816626703188342786853921902802689292560508767435888189825090733916755155098739828650482525443617257403524646661638053957030295692370023757304094486035013450710508514575788325962760882362357208472229641607833481054327226398846209967390290630022641145198959744753868916794242173588668154696553228961009956922803775276917363419601792431504784157898232898892572267081404294538127020014148997576123664039895928538910520935092563231487321025444420203115491428111413387944556823050347341944803707995384929592914432659190360463932637629277230212624761723195690950747524963588397762705954996907219054445618255437435475886759848882345639959717572302073177322327045240340288217268039310981295456054852955285978054712360217821145617032180135139665953468994134509111072282978788227158468371323869390586127520507888704355521315386776250267980542348709805000496535638805097934928738012194141804117775142665089904944136935618313239888896578411273663965613656181925689799101865797833751297816683353025217523998908383325053801520005413256110874622662590720056579783402254855648520528973159697628783497664679733702106479221792855775190631465821954391484354269810859786383144405945079010599463238247680863452370265519219959227509586628273070785601106178593590906126773533580990687128898593238537285329894085879638116265672168459066465494647882046862497063663274646556710323139484514663223702818582868651223454204827592268083264770515426460789528814611384165314891437116748377193486203689963920172919786148337465294446909930017115019815862228685439251996339908470341215461278735227656553025576644607049537928773175683026131457046228621266452586908550657542362345689054224612912600716298255028524312169742903966596880488360105061519496543520161423141261750325745021894737690269188183955635762181135380849567191401471487012492402029198739236128128893893735913524745123859113443100729847027929942207394322780673695171958713511451832432980935829140576931189103386747317893069255091629596469633815007171691588635300378147022640900620326211571241417810640873280225077647140067719991601513232678360808078687348008681810901066012234242164855660842069044869738693528638769932846428849744409503625179842995589698189988725270149625369798792351049447031821847516791282265740728364192461992886034531634210273004881099527695850618622195979826720611001164951967960897353264510725177097456779220788684113664441748693004630464140309502400428025791790163064440137080139695697409788423619005875735595595183706250964754572762203631109125260482611234490458966883456949453092621803523973883194310718125289999730311883484853970998104363304609706038970347214001801917801405900749632541134838926666145156712901622625102195933002691115711321264221451671881758791742474756874258697544742702516537642875410228954819047573206139860550138359878467101293564742644296978094071381471142824061211989046981693041031659043639555642102436138441851772008472165968151469435716638951383448336293339912981889211550152445033682973523532518321973087501897701193374967382230603489371086138058981301621276934810368995752589411488895157690453817511564575511432126984889918280945651899278164707224177937905988284687764044696504656785031850236600598039424566205873480880965436172542271628245999836130602945553664813395540849818488750544880961572306370601007371179190226121413462705442586952174470352319686566794133923228539257870940362619816831958243252609949363219916177689104198747597810885422815764365403489150507524207762130799243643750678862407147758591297160306963447293538202225598354889957695874593169968292639454715512872088155280980410874727842562048119514667987816119621734650572904572194668842176746450578801451480411914433389023234808642174719490486050132269638804184370929739311147065612818500790867506648198594328577320116126137548820336028269045924981870867657064900924321125097105602603354934889584446023676415058636023950467638791867638970422909259022598897998020133389942110625739847254549912278570108673641979468197905644586730312949797585629901592857057772159942660830166458591416167722453370629718104188839175260917056823102889356606270064383521712174780020458495926708090783993076980223887992682572883767512719147731676496796930554336122520327442844082506240906971239765890956806567227792177887859862115650311538094220966797764425344926672960120289240509272476076060467686075206495601964095756601907950191398345396817503231737592849031540835826812409925668553459893762035344931822805304074743834376091650886871206860993667760958373276312156450074267073396887807397082225513098302373914125221669353127280103564931640898031917101253573295948789112306341720158425518982787027183809231386244448158847934331113904485481887589518044470962053015026457660161894500748277161235808054159245316572734575599410909014841629039777456036632899228774615944181536107002746454519173929765394449628994570098498231018705413166162031553222821971320420817134071194950198134295654572264206522540820268727590767477597677229020208563985855153982524961461808612459662019701293951900238446980795884637476997687316926185739991852282693584718472257947748119690350587589478954588293882510972681975743989658028294573356987390951927866874454191823926392697491259254997349463711609488582912886764702204070642129336038845501099679637518375700178670503247360448981996065220214868304471951135784763207713402791403471433467600457114373026890588121699076961785424396019011893003795612956545244680772299443296140795251794300618738597993700083322952455822882931791292119834002391249240337124381461498851173272934567649972619634048991859743419472401837467180523505358447392949372278473192716813328873876845742517748268052901260083953520750965730315295462104710247489272179570985250568302869266338429696204971876438231573402832750815248319979729010487004456617212407721448253022782817286760335462882196998347706536296619141933037571533613689677306116425137853365091487385838991630535112204146420985801840003717959212737991727292919943599641420908031977504230086737314458383750198842345813440141417940702701345232423608845358236680232893080868997293548311461905016053417086790310812806402984405275363567493971355526208453207955126844632555031076528565823390745624906734044982327252141095861257720516656246156562937249011331957532162242525784836634467409074602310450491093683975538433552780054405304161519000382984030843633226820203804382464671935799603938533789954603366179418904778246374769966750067059737747659356810024637876944817821452171742562831063705966053742677475681109538695712457368005628976125092510573528856940681396349647238196176980819899767882296314868835879335440327703198233137005365241944139509955712308065478618340250953556252931019760869967596971958954457635427883285141740844946583740881080966258135703378330269073245378594248813568697368825720275367078243491786440520404627056358681716809157063694948200287204894020244547432839709166459526457147307241344179282594022020780082181538701340850502384050491125794122606912019585456694962928565513503051072098465449552978723668850539054673508837732665601110549244559879369770528981909047745509481938274807339956680507615064824598393753078343904000803377427112091845105503782281799433554859415216624324405179504613672447720340310646277398247899939218290918532785683081367927586648803230590749152865855392199736673821384002989214597016809178648719259961367040074455700409753168116927276171880814116956920410431194294610731956358068167322368580789354778302482640776501402925927016474593524496650760439614103826321914031589433095431385357417415327604161113443621210832802076507197410551591000488657826156270671452270568197362472237740580951611100675034254497243023257373478813605363955212673831482784958137464199400889581958243942891328632979017814532029690879499468412588061587746176673252219992096884507240021232204535601085618327927134029774797576527134773528147773606315421626698482573723350017736205304941496582154607265151795385395696249106586577839944427933634821671267956658701887985328237273024419552865699739960999378359266365206185137511521093558871637203843718160229095315314018108709609791576507047515278429520967034842374867604291607613933995528200107102730410297423261739625613288011379334517741547899111000801317160515937996519241181512218571618081543096632889855006212419392569078942664295913997801012340568516165148693484575072316017506922501007153094724648290651325520632020098687698044681601561002020718115820792209769364249184748913316548627812216770675294369072615912869776991321518085297992799096328856994598517683101649521926919866585039884243480963208323822835115821141563491913202926544923899106509583101216739664853713882746630257313581987552295623622562530741953326215556368323687625148267092091455816350135682463923458208879100646163732442793162329944811372020442883254377855035551512302779683679084655676660986652256201503126233503431213915336517953717161532009111937931102945859290363763031256524609533798939593143644277481644825195274069417788062245430239602128137526353684651788660939529370058704662714803613936449549340909438684896414261663783155734286447836429412715017379645402968572042740056633954367170481272353699754704162181251278278536657608597639108126555199468131307134727662347408900753323443638374099633515043323186007839323564684874798383526088402783432036191140167225053321419842043494422030216627347859646544287916425848548441580070282028771471694258965309828887593353036257751003601209766363693824815770925368513435286617991027921552185755399449155598749163371338163850281070450196696960809008641911910163827780474491574134062614031557195898792368485148376828419417794387784140695398482579039630814118799580086466058387971636413020446963621875079071564418629364654915293236405637775506783757902433289424960800018550186543999585636807236671415654192679147708510456804484859836601930557400241507879807034938409191369511921747431323190274391168566398492210289765921275755506747250037939244637049334189901803666801042570591097571101484407671689786630256930206041491576056753871144592844000180259864146099004024570722656499766186037968218972153668637252287396948637176280241507735415295951400713322750495264302523066879163238762190179550549980117292266163322694829086610618294658856649610692591888720193558057361690623742958639033413125023081472983797265839992746159157630899863038058540420221269046171551331758634641539572164099435120205197045989742779642324353135300766206376523628569148445747649532922259604090538321521667815433191739235797954900779652880473783908311272204044367478514366614380006506441571095522222334959483450846330796722323117156077511217725790821317009760885615576881379264495207458220548385210875813750657628324851919382245151164319938752823663240144375091633508058067427820904248049241795368293529473100418812353255756114309154047746687753295979994327500124022021341839153360723729408530117530686313994458092494215644148839560190283629629688305311233056808251564499777563919343951673003453605269487277913863127013525146884628896746230865634751857419677760485137449884344974667001097206596976409444958482307699659545383484531308643397957948373095252436340985927376213818167346071296489949922241574820908158144580217279333140512580121352067077738727721646379625628609277008798940723660949728895907234606937968854491307550140415916702109534114192883129457050518947181133995162619584704114655469783554269333625230808514913475528125244439058344326400800436270605064748911417007058877707734710283222967745291005574800367622584950118111309918297721517176288544858881922146641310795884810928609920714556105883047541749376758701416716763127274342262336363837858763227736755367940445309482280312935529910624127174062813803916575934168547034258494202290115470761843510686220241554408592734582413480873421303396355420983730891097134977110280960238577264518215654643976961993859318926416527999562212232040997517725270555004325820494458626893135096850803136007445211125008244529349276214147461103223598277905570888858578981120918796095104232612479416136947097000739954240399800539228668684388201191530406835069835468774052899870636688363521074607638031130525028783509497609832287673510840628167628065643946551913558927730486800277101074324469512178355926618117984491689347184572469235190482012519406837636333603569497476571122628396648175263168239326137908511396171482917538646170572208169232143698295153972519144637109285027520257863936814295963867399390278351965160289705814004937568959270547517732965500665158094225948318435432873459998416718504252803814105278507562640563760844943769918125067645967763266961459023209429839037777178366513731553643755714403908318531280783983753493128565205186101995876709519227385483776006456327004833002612055045003879483172877552552605294377082880440568680971426141159989383685493153462413645637717334654952623633777947844020970090257992863697288727249400748098573190329804222699117625377793570898644163084305650842442162970171510536676978423786169040780569980482275901044422287012350444129363920608387997396996356656039804875162540918055967187811030442071023980520190597755555103704878326374625003081768076269123908303230151356873998072933910233840227181930633082451937178490464124296475385116692268105667410995851238025120068423283139089250937291952701659531200441029223182564697149104612453267223734785679926752132556283212421584089509306625956115364649470114770430453981115479802273987035872660321621638660472139346067989997609819075207469226547104746380344473888125251326967273221911606703626115002748348869837353668838464826715011439762998282447570973817781879502704740655093382540641654733378258236348092895802395944040578165848900735352214876948379900465845435810923790651999830984698688664228626663925666716438170318455332669593131987494881092296764127915701856232120772634413914884895079897200177921510699731269111604383015968719230878262322843559918509927219757766646772743059949014528288928464465983103895427327217165001810436714484131388656745551990782906862064656676822189195274663333024988124265399716311980637766678676796597029742748179487221675657998765458683773860140408679674845767258360403943362718255526249115173333780761629509406660166620036905867840318676224003451817495639229016838492927508151716800817570944877007496390998413396090561885342791932805205243826121367326396877337581616623875351134425496411324391743025328480056133785638171959471450558151488888401244806830091713653132939820625876382097511883929554655187699714281209820279723524964119734939327555385030422006798983004713844099948346883145048457249407596861450900313132338942842285071191351232284513702267405165602234615588815100591321398477774811722015807466263188679624946840965472547186137252782139730367924622883154885835969973032606201129011387015854755112788298596905935076860410851768589274362304885605714304550767781302812898378939660970428411294695431878731046823881081861320224630012714820007208944219171294581149431616482257778001392202206932511771839021480421572734458396801885464388824109626080485589275671671389525187505724765170243075012514711961255458599901091454490785654053439411786352259210990672436170831980951337538266717546186651347056675714775284292038725326395167218924203811424624789175487201975323373252458808145301078642360119189775578702722380607441309944574156133781309569961315787952290889360670438353023389640392465086615805287587600502402340188451007344971313094906262545953347229832476527938102370263546360655784126075424438447109627743250784258009175490755645599087966599319329076085676784811491057227269838046888501089855807057611555512893456989632667378761346854029000744132520224245918613906207483176970075037029119864567292445911135523381298780747259976829319023492577481104237591257956547498785051116501387494464248959119181870888895546988364971224197569495232378874548902985301458887985775811786771763104920732391470639399622522576316425169643427651298095332115054512436233207172989652131543509223108358336491717332870984664353548062665008372761198165087685899080071875758076631864713748507578176797502993526546906300474740959302403805693101095884095920242487118168004012568376704633996284290849493799972459515857204950961604717144441282138512814705210417942136748137966347955346212610064798835667574016316312308531868605443288457266192108609582532764311455926963435277603670107570723001171154715391566626289962534611315610701127318989712867486374833858228490835553727971185424479391769997397501263718400673181725805221426580308310469403345282749850697323638423738687660651906606766036528125261956425587526522305208955920777027637766186975186662001132807025310038918412373539856905377768838342621796101795996605659018878276111575310418564433956111381838246957563299666664826878395009918660604779521279786469871773681465385186792418326173499308132161093496976644040183765568694963283814370186174149849049051213582488889270235656129122921868823307291858693930744096277493900398624129158513050372733191235954883134732728590104237349463032554533284063900163854060088403485209634790873210518424942474007724867140334793694363895879018371192084977168394098023583863068622151793072653728564123964204412355616615905569669793022262459994838981940750052218428847449432919137344256509078885440399472895323429381214952220208804245800322107446096212862489147207804642957927787176039018593936984608170153334704017205274937281091561379588994171544829205804796744942248513055134133583269029627869835141494989096786173813294865725645647350523132436148412583831977284361722223800645411910742251485945549929664186698421314395561600579207759752578731978509200423440423004191644926184685846468254332535977230705464847638832437672714638348574659244105099981384251193007459379368113142271341981577828225928099708794826211122263714440645962516828138199381342543761171518023104453946921351583597646773810242785558834399015597063933633557346983808042579031889264567208695705149845852708309917922690864445082274830383474374347446855611761670918064484589766933839700711249980269738733075402697253070747675889014843015191611120954605194925478399182712458028633885107516771884434911310918641655166719717310613326126721268839958159433323348136100618531357019298581681318559013044907527705475410239502213722842852778091030593571647054137348365311204742361118119576694804443775159084848960873009605811534426962547334942414176870906390677854549774336717096875353222133441409926674274946159762905672666882331908670597969331012604882713534539192465429031639976380596289670792632943219565916711671906545780905627108381651069930435036796594251312057403854416379294572225818537653517862009715709749484121981656352612990699309294706568213838914899522920431128311262911859816197154111042585231997890827201802756174173654957402212332397187200705867139745895554343458680652762162742860325219360765274269698891069437307091822776368367109885546467284518543014528625372623232955695951421502631691438270783753728892765434953181049354085713800451352529761791204366277455854825747935888117682450167949324529526495543441595636062443196203365049960144147744746935330992919901995444183213410570649465295818286642729477482434606516962825406225282380077396377153921334630016968416606836474132799843719939599054734450249165246859507348984576043900017017981288687502509313338035907712044322201726686047598265889508913862200978154629660494093883502954354060495278068266194707252909936424243411532829903245626914946925935280584267282373787225402863098382244815561346864174524231314619985154468542790415083260770549718833732616364905410026315765090296613808717340006347679518448156885917724540008752851852488518147749717277715233493908984629104458107272884196335760926180265754959561022694681488478896249356286551426727685063488732119805580105967254879257797595894370629142591635062302214056911079387580145856575087996298430312614920695228894232984194449592437826510367818815478001710239490039345281789012616187248655156554861715715399315980227996278586095445083202730162433978757121448259804334495821867505443002244648684388115899473570508713959242502380619490140837124116539581840826610264200642763032523303119909553570700332555160927198171080638044623169533705531315282019038219534231735345294418901502001602459474026137465958301700343417127666689272599675030643335462074719312247353845686590908432243448552323525771230970441577361054569797587651669396111499556657057809667754533749529639104708845401680983915818241487896406995905504720386850544228543870989871251567633903503711472505933202762071301798214511070659703188880493788529467606794578108194906535615848723669353458500099884069391893019069753924222507621909569638496772112849975184974427782446305020010284975814174881455560126941026554346798723692985881341407366691017475911790349955416230535701862700168422074691449606471456751532527938987781666600871059674052119414838158363153327590763568607278398262774697340200928877444054461764434994553444006815860367776928862323270429817149441647562910608509743640955532047586822688193846196875466406422627036305077855932958601847349314699502562947947047847182513427317827842927924329350773251212947068030860017062392706894679129255569822339398757825950607998939778106445135220512071175605788961736512738557647477794317353918006667990797599892151133036395807786021570576564877283495359087096175734589757142706228568652039741590794321623075824975222224893662506618319170549307691161437215794506732116877561700880727644761875951841840983074671944648014582583824832924798674582587978958946293342164311118922195324773041277754926904489752310926621074480197202958599319487083375089635376544042256247451824263791516266550918039096403854260634680327554174521826771359684582455910572706452935920801282178884357682652912025220563548156844684665341096822863363285935307913216801566085404235584797486007361590516372102855473943577745590459875810631418115355343479914518937525411783178426272117518646709266574705341256702167825982515323162802558047657528685541031429877592752999383966128118367499412421190730375290303287028323473904828584938030259014093715996425896274926561469818871003903376601271357948720660008902132829401362721284423384774861110663882601081705351119220867655411965641993663173433557514777530356730996171250920028367442085287705989541014232790505860818059119421794600392518386161445117818408416958824237449068891584876597988223530012986181255599192408841080927288138205895624739736787818764437039464102747490262418997256872494721393199998609624105905932355448751495821784001601762076175267816622921027637791897652007567307514964571581160660692198412221478020007745697992879300481647046975654326226559380617108493641499067371395942365151130571690061527489719258260472491456993787248957508708827717576097048054777463881250907045492450142973694425628833322221365243205677602661147509562239334212013627963374956044999556582808499103684053395842408838265452097109335270158230351337287673374236512860146784709324320396174219153771566342863487721787928162058323911746097411868323710285471733878288916690320269768551382066735402177475230168662577402661953486538417582508726117129502547115560470652262012486366069451530139573473041763811565958752794746295306959737746251954809208036316392710527979321259464951002337072514923857841497994316897331564337648782821878241484449521552323437802330506648102607152119507503832065718009111849444759706755448471121234511453869850663510783323688680352201904629268238509739137372428339666968678482265335734991656585821496211492329684091826931075202008217596793484639474498569964176552844899466172710642228816542266603562180930883266256502267666461228369285827019229631157069132652024949304936958599845387909476314059919735120753972869063245027217445931460792224276187582551928506488409144991764861319606172737197995866964073931116697245963904121672632410472256705884841682777827995429523514619974325060786838468647197791480615853420190486122485824674072650171002768805374605097766423970426815904135012423540470478923499062333982763090100550087800737729110111178555953985403184444047757545486560164873480131373241787078233336681453768038421811569852696314468863319929287216771324986374437238795100710999322798068675915116159178073010536011810024955751576988457511789632589386867253203402061890554681789457161716254410157297439844709989001974134908167197081991306682563591995366840002461786600501142964272145865261782346055485161348620995796236812941102786540224203265685146860946039339565096196719807546610426699168959910535492538265930919662952454138407213396119041982182181297696395198162672505332814677425007656682147490921264876804374566002491049971272997082178490378320118879044456854233814728381975688692192635215534637356512896711898509422744305860845755057296067885025550339833459247097214846095348074345896514499060529146112978079893883401585783654979898441099556116074357670529517280240173755240983040010483933184655346186610534280025314426617878943357822207555578157350555329703396476899472242466183774997368298845219324326060294433633870660489326009027809505456296432542131036940643559158941180708866131693012946848824084068091845137704577023896259128057791137505245676774672744001655069005111742823121592061373652261890329238828418982676051079435589071988226133597444245936749752255400995212329570659826961656995139455875070157503024420883975709791469450330071178193350290538586318229790538917740164372196304514418120485324779125631443065491233918176485433842805136575513212742878414244125489068556620602899091269502610843114609132549119331075793668674301713801562078558625790404265305679263046966460011748704280568833198135449021770247678363677711746563395758463519395113232511208847711796243992352973960275574520294630264455055606446455071645737766825219578997153049596183493267763115479199599238157741518345041921218394237709302206770211796487306270360546938818231566744463784875447503025739790136928765066555496939104069939226312630723045692891303344288213472698960668534064221619838676641115266567463685825597893748740829477333921749152301882786277521062842716668997270903803888495255665688169455828258252418041972751388573430795383267581293208327767115511765603768641891737216243363480778392918689533078147686756325761199613115294457773127795611447371630250403428221650664081267915448376254891061804173336715239620236778964551738202952257474738447893741915822769471529616896439408029116093137444833084018668026953753439729139129102268305025860742215225124567625350467026197469202079727396294300851173928389311872928918251499761175440012511982146695887542846734558114428271494478458246266669990074298245481146226060871961264501432874520968012602236319711853152083443806604638277700983908323792408367868239561262347455379033860310007942915045612602238328324305660691481957954505275703907256103973222958922671428229756176937916259937730314134263846716580321263134695766872708904103792378903740540171822998200458327069046018315211525917899229958523805294746953380750452337324118894566087211815135887463790831929993346107458037670333682325137974854442358810250819848221972102235768276120718512317451471349863152674640147436334927240625379131387600366250294651231695196337216088402526134737490400909710628531000596831594509440594802117993910114971657532971664871683842291883012549451032025688447849673705363139822050567527346994111867456794975030425192733167254715788776612017731999023887274025425147775589463744183697551844750182978772435887050068652933585720280813716184137216309651947329059491252447016190425564935600904357928696080988129195045335166002690095971655150383280097550167704514276223550092840748580750335380459795656045253734927940886208678534607962695156916494299375365006140382043102528497395674964761063907848539089137626293278001827081243546075275432055969173695661383572006016608862074325571302025555870603498069452388443874231938249106735679858734476619128257577338653803012048339167711288072877479459756673505660864133416919071474254977807106311838919084492217552939659443851340553652785116900557352723616570097892100669320343247081497645373449665539120076552757479919193918156697547016416303513691483059899113580018334499742602659952444803413265633903994560298373255220206445586580102953247664821968165284949640558428448425266023010784430863313994792865209526140435307901209386915975304431076897915935316464927073468763852818098140839206715834638116201265488303191288267777405227934699805427388623078730352760602793799388975077889936710502529760304823034826300342295363878106342210527604946496211043316285373392074664559911952615691950164519884916792420644400060999899577397402850869046246649847658796521321375254871475804800547651064956643719298813756966696622316098239978413629662373651899800461562265558055588474558526659515923281409911148567087802198408004312785067054495793075388065756729370417958167288427198256951982195137728582003887512338285172358330489762789167301207082067927906412206007711287196059733834227499962973161546204109797715434272599971791558329849194458544996275189238067671313139905621892864810177527561092712612205993700389779441214759694113588269116508058171346990315850198736429854949474804573572421767563119578988010346063967713450248263139642965271649579016731480222691790491078203857260822514903806992651051879505106055622627076642579121205199405220763947067090788672898883815901705625915558332630379054297897449277197461665741999956839489323271960900347426649833952257912398247154348593749824951280131793835292097694908811907126300541749571336335816044613127544014365502212718432694945894027122023245040672107905771393519957268091145927543167131729675188721963863507081177658886632195317595549225422116229053071018760570038483860134733724608669468780778593465411670612611169574722113691987550597643850179675258088280072593187749586607404935566278185446121932725977412859924560824600241146551786950676461123349685890788252596898924032848818171015568773837096297293239080791771918210396078166482576380047739216134547603246109684258226472620526098088949365346339198615070111365199131823658983240657445831289506338151612144572439633917691700484533070814409822969436679398476544935056024732784640084156584656668571180990583579425837187052221600116314057323781411628283783581875053618533580406737380313276897365405998973239075350801368146687830859857174737930533646842995994050709902958947503093586268403326493058522664637803056088016588206704604799850047867550705526845139365646307517040133590430253353897219894528603905712970423821681531908996261495709862470786300061199513897636247506029363100693540732230651104597585163120171932852227482492032243565390404803643384414328172669350384276167096557351165654495100622204622832021512878980917162031732983436325680858523737637706437470036378482991678327220353133008858907928135910390663187621035012878482842347285107061309433173855338675066631777881311237084002046508300437797275330312009407281822503194750856867508638415124795787379221331680528721159898852103491456487397012620253213558184052813428048994316962607872991640679068496348676424882762450195938961860122410546435467113560026507847232921294400756585175158152253025121123980780274205780081247297035222780351311862237779804705741388906870385140477728394807354770210937120150560133476403935050058516232879637530761119544321660712087194729680481147035561760415704697110691837247150723610542637521385017055059337546868830952774801185702329177295937314964837781934031654882462797228956532937214203784045119414026637676641317059712906362608384280893329154507666993444639788749371278389113846671893638121938970620784766929980486852440819574825252190753320803516551238589226124578217443532081973132994105768057794876792515953322474505374624214451908604572584029952647710033125640902792093427809402282139853199984863404580850579371729117111687200126000287138785102492454593636946305855338443274665811115560921989541199613878778322197193390815234995909416676242699924154090650234800665923620610837895441420498546957530460849224872137105345372552286849493288404583827853108723321631838287208084497051623532062206199027256105793596392515272751578099864363891709667058513495827917124256524904007152180519020815614401749435158916846988041663971498202339146635479132639296124739137842849453642841563781313171303955374831330637868049942650616775707965209465878022966194860894574216187075891638429875759330535397351082216037341875585717909372215778112303976868719847188879335522152056351340293378296871381084503160608755746367733522635072416432373816942271394818429841328086133497450942438550635011466707606299146588525272659012937232878985629266359513213048715888477123811203129603551456882668242683435569304056421379519071648727602711668507510461619417293860425699387157868304879407496657321155006340176130060313327586374401866011152616154622925649206025173872026348827985993354306789531534330509405204861464954693975463886000809038399031495496020206557733040228641280383434408427924481900988799136526612960348082020063949664515068978156840820627665437883186482422950065293693464268202074180129603618926674850703968871997497580224439531782159147084210445048941623640318333562334492347910064822559073653296658720452329277361546128707475708506346912811736382152023817710204118343393996694451529049785907542030401743485893726975427829977894192866468857115871164992825318438856738607655056159673801308257454476234889984508599799996219077830052864382706488827304110937142155294571067046652176477613586014079319345067796170119780962555710264328412853969026741427126796352668787593885835681567771491710565571583513509634204450540157670856347826531526281143736232667047371198991127089084584597603012867749797936655692315462538183041479890372574290509540203960309177722704421560428894274269017488609142820138293055825466292346525721779688583574795662783514243715223162656206488692001095927094724138685867243715064647024310771390993405524630278186255246626152032936246527363349775180944736947150186374048608833538235299801030603934795421932309298834027440179609862304753798808285786737500096983676207620868995703261530951057825622778823354900213220939345034890497301395215470874860787602532481555316679075169839425841420095121566143602840065390965149479588288162165093584272115339037033954439250169828482285442760968137856997528951719036092062619004247563514028925205839449690993322407485417915747315854767762955339857851056970060856642696922923325038966687021059551520060872425876036557479173168956403130993508029097210293211114454252267263788317983738559993852743279281375945231303347966929636218496333556591881253086048200792328156100159974493499846112314061740865244046688681125078538558449961036544637562625966684799647848085973014930111333828348635058695328465624885045928683347878002020653466348410254073797628268406948697228679694408150098973621420574304105153493688000523962997287242159604154214823911673019790251417247045241317807456783923436975504974883637475488297012788570084819467883724467604922583736401186826252171120716212609226474334780843846083765295117367668231070682272982365043761132973605416751254534244356082576078777156410083273022268063905710906482606323566214591444767754392297764460238287579421486330882189043431873580142699936610344313344415092779206531945135604294985946158025459287253484593353596234700157135866309888238655533999745511502555794571099020721023902336622791279341969699444210595093411762099974532162553539641748402634527826311703794049519039655108946500289794122941068691821342745427452278188060128433669732107770913774642989640568164786143889719624826184870036390716959032822251144413422580642021374191941873815981912751708479484132687150315914871041394087174767458485874273985694694388727465186850630336344452466038833532390706575962172566515494116248654183133733600761024945751684782002222741353751504272999089962020383088455825533141263700931010855327954473991067510792983066844728060090144635911873602756807017988407209461049239783185736729511764196358241074471775615583045574369668303242133146531636956425866363908710371833712893331577016627242933481204533196854203984017489897628001944368816185288020008747671010138446697646047436009707933836207732034250795787903763981190013114593835981800828121421779969739565898488770585808167931640590381974309445481071482460341118929198233709176616514749370762899095029228093374744974239538611077560812398081648346544155048266698027858286080325005453466406650480169291536587069394760181068714138836276784400980209074858737248932996205716975411719430154850147856843913199292363580544175480914376748009374898882834645632719748579459681920556214910744387905878357123809337327965881171974829242474020263072146141573184557717944470981044571985823737295134825181924243930304880731123572284209690013321776352739318731855741260670153497823255423522420233866561231829332572610721642218978309005932313594274827033762735344729015535913522629966770565856196291264940933549663671044973252868973447760155726461602905664733529171244779375323835142382672958291606597538036188419693824958268051359626824536717428890298234440833867566216340720557069371140818494106537647123596780238548585182083554006496016125777772873274349763997781873560030190319605688351858664357004504838320508325528564325398078991947217952451860288503322131612519460474309115698615500822262506524098238745321016047233590001817585698657368484193216552319074543463591396311939361403812247613558829777088587798511855991020928931990208138069327236361429366271105763121724790126067611692120639346460477365787955829330274890546777833865554944218515719420582472701979246999748885806402702147690441429411739238453689375860077895886413903268138203855794775409717879531696032354531810208960893605575466394832312674425282592181164984263088948722348526363256325725298343736961073517105751038217825117829631074986015401408167013537534844908500459425943201716332472227767818642179419179086123782966270186159073764123000832197907190669146177872732125680873930994370498429639478606311250477556895477747759523394432804721525089520775654777382081139407415643691782012758755043996569691448402969115569328498016258239041541388912449023806257936744270628538674707203037368763322582319295299448879960438028166659574731141697820947536143289043076190879346836187342325967130310878963737627694177322918688898390435330856914788139511535980111122546117755236030812981723773590829216468502657095360786805028918082875379720720332511336659102385378094519113753054966439721085297497632723574312337805157103647385395365558726742999180030994602499169224145205432350041988445606120843162877081055908648948331113247621334304173642495762361761483021551605028160554320269678600155800656621682713589538177653184078591521435157866478076245013978192820706308923929604778041727247419986976721645715103214417496252634799186600107639376263004689629880055383035429560543563423486811704653817887203520940379705389130500478173562922175537838378890372850223331412998595630575445881857740521688789439587851873433496781369524096654899667338299560544648080565611417930765881320662005141750727285991834157717792605852677728368210763721443517881807601643715137286126868954772155586211235902768082207716501570418761034608947526648105084415917750517290334995158110430199422313768824181026478695427197488355659944287900900873498235474720715724445921638487627038430019848868516464551272853353384763955230417992199628811627041307700935140458954163374054052778966583387753934607446782246041455129608637951943999745295142312337020960083988826819097920072975842383336124339681995012878939289867594345509463229123021486197302388352784632214463326804669807211776627177038758555704548943245495707028241352665649555628106383193573919016766748048279093622088668521474232217679307886312760358194088523103162974319200939173378417030201690532061108494441939578196152201080021504513605442283065675214853771277227851431298959453878379285784254976524069872368699816965736599838557521643509698993321411947594075999907253092327881916234311417483154498095015928937675417323096305247717039313702471181043790069703666808427286544186297522800523257103523753028763315318118348600875068167031901407682596402858235839222071890688733159906924586597799333914755556070206245452236653918579251512663897113942229117442480203620134158803041205969096726582420623723980982748890892455480617126956508956091877542518188037457547165141213079722033840276865404836323022205412039082566199069235482165505365877717750927767364093884551161405666364653688482301082809383133371022948508635862968434708506031612800466913602856927911917451218773090976933962514496086860163555721708190871501189225793670989363559244053116954891584710238929110870084018316560424120661407853646238412045871213034479975221327394082344873170342408246217172057656123605048426539194853581596441547533545709399864987066768913543006900071160275954884509448589956125101360641439653301079458908355889292316307598636135977391790059741204716512543691840139434377087073102406447074520186828370592283162981665865244810436657089821775426179091118779043088817382716129579964979235815411013026188781667146532525232682096943102325163386371414615045428067730972716950537461465720016835775190330421594497004528123843166975296448516316563401809949111340513562819515268867866436346944360932402209060391456861166189861860065485036945654496759610903227764186505780968122595743949553493089556178641475558983785780762924613036896133343601811467536219045592672057656711228654568938216422413623042879235662921511582704725973418662781095412003930382335360552572475187026115104996036154161946493238514482792238665404292989565204560339008771343977151377796314862625574675087057147821667867266540280541552815962974366996322341747026657285792928081184376144782665796641479454710835071524331015620230793556051762597996145584633574577002209150066371705232609416696518371275346867767537486875253528219380920131693421178178918122629356328390047840960520795556734405530713184744164250244786961131092318169441814203223656003859039435419968311089866230304381535681652606593676804127355343749704076439372095269817551298770977683598817995602093154875418047593022524913243067619479764544759126523061636026200532441027198619913778091737263145360347700021014559439606995872405697790106660393087266553300533415188892758819201690384496648289303597040919566329962083335789524030371910979689657231341679507610920048390830080222195080231693353070444654962300912770003713795675119225191182883203592356219414990828395891703637593406077433279792039553666637905532604227692545432112668222840110808906151383760446539120106937056831278181553006659147389016076996736308895094472866135812356337132935994126664055460037940815328652812562504308179205108796903764991356775858546282258444984137176936937822195451447498432829149362919637324047478738070564926324536711996896512473508402951373239269314587911967328791947138666693473332976773352191553696479313595884567762541628977154100006263298004513366961454485802483518250028357930346043913483241280049067982693622027722881322556625889282226515394513345692549844673816828794091418031302392756071280699027788832773298430087237375845988456089991782556868705633836657114426473843006015745017075322297308222001395403549901295690954759392160827796382472930370125653772990167234997182328954589112861587096598653546867803419752177994911162011155715059385279082954496555888184693425054207143658846718348995024590447673131793968237130612769035240610597067912086349395503055406966102675127389906592720093504086914320819419101088952614655734014777137284851971401164816195547570406178097143767988418841178908826892136504380586309771613100305972276124846771425719762729883443955159283223638934434895001252287103284217108142410807892943354570596263387666544303828145538028760999144907066463411267312921417787637916172734207779568669566005537084561190418760787459474221939829060618427845459226151890509147699429981064397030551898308624647419839277479164818408781330710730379803876678612555313586562113625458706195199356130819656444083888332896094481978609453795683029816409124065380968093570899944140256171644229588676439562149725433496088192487993527456788308184795450164375707136419598427864098682074492223442673905787300082353285862763499372323650369816176868315657341244389519374393832911656510888887033452340087954291729689632568947939597302175212351542916654885141681239315352815263107684800958790268274315177432745616006542657667422913742886775957135261398801874131278333774212685872171420167846315766684974615968067884026336147961684636606475046111967584670202254594565060016473967526914159470154134704115485309789065929396370221577835701315876300123289813625410000915374430376147689563546507807272906629988654612515623799328163162993527827297579723989774115940686618501523187902057856816236419172909748424504650330685813607688293071433380591017294197150781689010942189016183747310497477455357200022793690362455199538137133849419088564660426655643026711818084103962763776776457347664785204719202670349760938788458177592442386767314335082662212953061254220612662375378461464764694754764334804932128109813951678692256611977982343846467953215924050366951334171161145070168385010926057733171744747195412502609711301602544934865424286449491507799031394367911367000291590972765333336173201024487853935742083370502502238062744834976317847585324685220956543206154558154551876419563570516538548683144888362328037244288826904251014467184662692370797511349272186928017697198008018107089556606878413078153197885648617008954742268974885745014684574601185415344542720858724789491984356911926000083418846584119267701165215237340313361710673631748355042180809473080942993082758074105045783967920713097087356902158381923844645315103348199939896359799309944756695390017117931566435611905555824109986730536521099886298833766540746261757937174167147059705838620459196121876145590913566537019006973914149715494983820565809257038472549396343727382996404070498906890057173512628619314930651597983264055476022379766703596450044098301786517086896992521002008807571164936103620705713363092301282171780507760641779839249996777687218045221260694745997837062744720327139151896069955560470574053884324809859144839406682756173516945176721267181831186416570493500424334434550658746996079269174625669935609149648280291655187370810465399689660387398055488822601304620615480875046841412123444079033489161654892866627716731116218739816410496129035906146352507535469998651696935224954652092042674799918033630915847310440448369037354363688986961444316445417843811994999632077782407978268083976929390429337270613463995502252385431987045484917265737165729541351699245216656704925481359541103209686215927968668937055945913793373436406405506403646920833280166537529449179243269486028661946515512596583706854636097139307963908573657681329704926268094008963008977998595278470190876113403386400696405890346341128891952170498141620262524454325119642622902348832296202971679418347248321588271440349622744257991424545407779034756223760453566981579176934743910569181427147794860044351590248555506234571921675723754404233006854183018533747382481526478458857905122851920463671348910033066077118949521442719819089424377256358865959013571375514362275664376093947002914283841926617493179704093672612897313797208724032798895294451064061661495784085025928897857848490784927995084115663484880952168630783023330225075063428523431053029679255127220690353863324311000775674501053716519533202671966923439455523175538348661458527992794215077071989865785296252304669174311015220871940664733671846608954555134642879138814023504622105087750755285550078169574087327393247769130136435914703294328411376539970996125094167107571214718974901469085535365757368882851610171894716691096113935819758627451156462791621498467365009338095622616103721853734268483693844107008873227945848916888090841530975524376521924733886293502080156660345596117145715220444038374408028714671525350538168339523692776473566496643120403595463003722243757401910494474336909462975704504004643151021380826409570974717031860895887126580049363893637294996540390243561221070546487832890659156117065677307848749375844573097401062479871475620983160472661168345465610006917297343145629181550030535047062008427164245160148478716814723177972476202751641718067326650119546056101389040573561415316183777410076824261173955059281809967063924426480850039882680117367673594343356224879500814005655741452000586662400135583690797308401594889762965221803462975104174582099775635115183357577785036976106607495202645604840797052746776500903604560743156179214574592492113928494147340640308247069028947705507566183825418119675957162057224542219657342637938400632524258815101457031648735371797013231984543071658769223679663249876801741756111264692818707042664866259982236514230471100004783969452331173507456624294678694532960022671635412769166071812515762488505919635849652262983638614930741474369126977287419355779607397577821898778869513372456404277366906070089576689589534921040104358722075975573708971172549533425794595746313839105303365104707052330290968993993939619712611145570761640126527384741502721341200720465199147048398968076972750177576417235616768278237486146628241167438073457643699430339936620653590333476880678920060917733915387060229922537642821833827415906494996456838552526277039329161906378617425135134917463782854423012697702404401654303408521080972251593476604236705445859481650217115950810245558612923277516429627891126714598644948933373180945992912263177664337608261609371287469371621693865430235829281402286704632012202688610850194526956241868405446966478964425265346862769551286409472178834465646968590046106990521528733458305435180190807462792723546355181971132334413080351593073127476731717829922501857443741512048905665132995338692291374509859956855490695124661379791777833517879119702830904965735384590872616838676072966721408047536770221573081006476116477067010435550041061966858438970787869539308216738071918449138377195190087640928597834269514950739016310355584726740759884109403208455471337202384826837829532560768012351307005362333428650152200277909727894949856050139408978446148638849879032973848936630720026794319827291993835761167480416063555734968316136859203566885479327527594024508643144052548763340530945188638963456122081420217000597104183694762458117710371570664668693699825170368016422787877021986263382098222334531699552554863129187151938683190395596830772815006039157807876490755405483536718525511170543532297283131116585829610387336786658285022063594836714969644291510061371692156470186033472956906234314644695276795182639827419461081021092987841374304241866664575026387762710704308507863906216886989411723348205241443663508195787668072371068835336073676011186376587989539930671645935357824053550042431140829077970166489595285427488544406799493051370008984620973529992375988667302926568132933642209534053237734034330140389830200649407085353016334476899477041032780731705284538035816254843679728237093258444309858190131231885100115404488440365495904343271032518182545117122704800651051399118620011407103413619366429379585098070575892509978400855393540724233434446156797332073327055562359233373755043551717518299655470366857442582072172708197148404718719911124977227545770762320824119614463748123395819899257624531921705981006001239284069644792342829529025258291227762974597788651103167990748958951989004940339665677764203345112677303285175069890870290766850871712523059403079525567527849951053878220406936056478640553565540188640800463428662085296642700513279081469500787994114843787868179233250673073241725512434504257535176272884168762260054283636744654984175013495141252763321310418450326315704657428921434334417211766121373657672289039624505413415220372131180415771337197552221829348012841696322798028988167432828293658334004839574761765579520790244853922638446773461315229205982146790918169632626647066446446323458125215455338735349539344466299251569485063916167981910813911578946788507586064819094720737504412318412265047589699691432331665783861889428358013500760007660756264451964824100939625284017257988120917399318218005256760538043616765764976824929909518979449041594441219163429223240305521183404609151073724852624681589023026127131225718853073666814254536116699178760044237550986783337677035793760308388677829695463027825062483699844087379064563154408991625192641014415473314249052949015919766173825487743454951089679702730974635091756519893168537796383942632129663942563487976375108008627272222661075972017773677202245045509701599142831102715699253528786775297737067664859453658507459945211895399792114409150473976203210631245962073352717954009506998195664540898347277378347444221083024030380224360678411334624631236050794315212211356071542212254449906269639798722859015998346016345372372500126889138861648861461158337622588822512866119977458708258738491254412407877992686081020333643665019853679906469059984722577114826050487700610949874478259615416730980760783793640699205667223545315661813845709875175115328640104928836286785671008805206252510062571558029269168139915103093525215385212073213696205159007571280069043796946635874698707179622171873268603577303501976588346163626968127052712937934338826546565691734205093612885225589389785276124183601519961174653986501378821366665064267829491921728174415824688832549827350931664917250279268150217985918225237017424219452320766132657815808064776063547358448884275145017219611938637461492302450149145033106865308636210761074001084055778248327391894166675720053505027216301446559306542877076165700306023984837856502867219200440358234805882066716101119917627752636252346433968652184889658866464529394504326937259238499453787243810231147869130390353227838031301693120778640278848145090849726008329509909844364839352482446377175672264903867887140722112239936243302312743507830331800531354284823742329658188160777193166502500871192791704925941804802751929893202374388322652302302643451971333999425482196747756345865591099211480213969250704005225410985117144374114365427322096419581526152869889972390820396818907360818185399915460625553139854969138812404164049842120210078159332826743292825488406586827771331469098037615840268328871362859709067531603033053259325379589257410800123391385202446530976146878106169421025374074622313441368931568737352546938731895810277604943612270844567706902645822767931634029300197821956401109777600192570273273739648092367924585792866373775070192794945757664347981477289156983593419091319643506601215902532135530257019832845571167912758659238516165532087029503868025678093405912644822971316939554263977748024693547637031352961124511967778913491646642217671599604794883914668853880964212777580321857683365309787357445779729957788323691384128442339361579163758606244903530778678934484782731411482067702864007156389929328070866478805208806520127489520861808109188436131315368050825338266451281890400399650681568759879683752095240098955532741539305665256652762907083901855795945820026759497632927764372055517955468768245008756110308989076148892550629519879012290248893134980374358314170887317317140841838284766268867966310521981128731559663199722672743356970997335986929965731963128773326880218886023453658539309008406304383255401151902663995478945493302825988164354683458490579250536270800834409098736609620061233610019552329752098326737768473181209469037423496434259784483606652776079193924734631406123387595934049011089019223319656632770039092948994330038323089890508354884701349397059537125212788149957433243161756603250970957257422497430827668499572225229443068349929166598384218135255769887448902655564872346687673374297342413773967044446208652856476432894517981520236836501466737940776422453330191598249301557249894444791758732889010382134630888507741994494679574737886403441637210994117385121737716425829561834898827792868886262613248395769685358402779306093039443035282990023198450628231759327481480572843664092886669235471154885594146435224363924557152798973222641643132759269855005390935837675682804253824211705143378922138516597144063299275252193168138253785621548923472780367859818904640474246429917884445748498384686999486541887388001402122660725276748996572249438772006930031178116106884961956049102795148918333266537429867652726493883168032397432563406085076874629827615736141359058469774531777157459862985274508903268529476932655534293561098528681508302802313591158664474626145009816450905166287338134529117923660525187738388455907661735808828961850652072794681625364115465040785463260028233253695264668163889833837405509806261910599464305027235421116441417591738662241997983986907407757582027776057116256001106010040373329823246171562147141796892951972557214131073038209365416904628205514342080906963115299951764154649377322019254124393354027926741784063433961314881128998014642819200390379509094659487047975080814431640410799449292579749384595259431838934656258057786568575085126066479411698077273747993901889218861713656542776231172054687249840819169015679970166091407141333887202101611891994262150133731994779785065957668231197368082648417922727492133725599983395798078002467621139676119107553771985438819061812372980169733361029605947729587571447883773418301603725159710145920303346595739956037193908230484305478249358354101044051118718994298464754970570925777521598369981718326542366875226727308411887047218189868081235113535415274358042238215205846348487493953257070496998391793091462316066281908998335841915747737764360266112415044468305982397736030291382299783418244561048161465907534547466630865269046225942755924334690636375385220855501579208160446078001271437235264556276820662512570887381405729424064547567006308206522435938188931778164142751376048072379556345036765252321006317808545346423393823956164096236141999690185576199913444144411196077358546218664898043297935863415235154270451079691037922426067192288007920277216264866089885670463406563669317281438469050499014526569498671059871741783696987960223716812897170636665803844429906072572531587405757727340139574834946597969786877256281112915932956465129408095715970675660621825755767851616307126970990603696444077946890545173900239120472485504081766872548280218357883375211651578348294533680493986122402664922590385665219125317088777434319617811684119950288513517354362654906783148424597118703934305936129313644986441803205579713133695610903638902562617974253738096433562154562820491211137033944479230552741004820345069367885752292869796086051391858720924785718352404094614399908898092478069088615124177690386995274963415166984289766435010482827731402900915392471858858487806883436941037682826129490099340842479454888571942613214075241719340054038132875630446579181769977163625933897495643044395800312262951914906880315310128443196505479845962244459352908978074685588441326471534516482361528919473477944640445071760859459912620077776638451960920575109110391335028548570462293193599960589969842940947886093971448490542954771246446289311460410899566776121170749384728591403222367196784212540373392759112580263867424549070875253996552670172766503366024133612044089524893921121117900740933897051391451879319191853617127697245674279350547689215384622439845358614806223966656713593548986099390180041111486996472418562845588685762235526007421245088784961338476522226588797629986086413679459827714406465190748602719809916658424802917181129246370538827633599870837396584962758576186473782998473947445892908045015210955406551716396650233314772174259231351598808324261921217603900224783094346744245684898842477952531793551996384867569823176532052727165084684964689248657732026931371881991555205116610473171985194433092231013356194363767553725659744955648690497631277457273234271901335104121634047083959470566638472343772413720703378127890176397074218953348839516800001535834714772314594485260907851449652298548900971358445789887456961189687815895743029351516882161841102409539703168176240428616270891114122185750422424377936480870671453268640624029975442412805197311579452968545329912268614769126242308399701786050024256598176395551878476391491757231635595315026353955721429646451093949429248001669118027532676406982598542038062385014497659886544494384503382915851953231921997959463319523722164924427168981067874247908270627773150562679870640427962483104863158934761211379122062848288827543224546898378547071515696344413867759347573729741528842594755517477860646311207605861065856595213762755638152551129863009804236656383376760476811443973466331630399258348308755053699579940657115864259024731164499052698055442918209189384429601862911585401221869148884591808308299028287428273388293859569991127876815406687277564793031369313305355890859727231478353714067959019099875130775058302017642366286018294747657407102126355113918139843876215220806757800745250146389205741226840518529714592996765281457193106888896753568569667747690326924507142635348391097051239287743745118942337304072310343589585088554712533125029612495415699550729976186139870605061626695624267496452033907585039283868021005859795060695238916099951518767599455699581134634279512965148778534394642526940289352453544853724359379887444861930445813869291295140821895378983598778475767217242254646189704935517285246506405008247300924304405715271751213297870197748381503524828424280459583347034779728581212832777217372746631693346819347005875362207737048197255952933229195102596388492184908053720530009825122447411750305504344660036238297553320066451633468894179496448451876950359111079473901880073398726302698416047964610762067676027645804910464906898348881878349442071044916375718619682657251698070170679543095875144505445344830951123951955807364691395262463113744337799587580721257745965610448048770669894825289914593812691586388087404682754520963096393582066395188127630334518292757607086808869838758667741010274982001899040242782174834616280028855234053316636199113259676196809488587017051980746523418933944670565834533546497290729091433917311393971716032294158706977231505406617574186878004398475534255640889335086068568858486685046377860643895832526530751581589879246244726038711833762484094337712198449496168032576909556145945714085785575675036738176565710117323905980534567718063348617187931899090407678148393450568475897015874211104127843699457644070806682369932656887552769447253142384886359130736278890972623802582963245417845842195650107636474237195184749198659828917921061734942182895144603247438285472777189630425297033144888181499922484887845749078381173803004184588466354064801843668728501679449660000603148184756057964390606531295886969082416693349211780017539607612263410880516487597353479451537401549751278666171459973120625528992089924802291978548325361734393561761879402015215398764999030114361258597535665713287669827134366136023025283338752761604743132417736510460274213828576119860294113494170703019003095000734084553119732865269877083404835165922656647895734590584098024921519331803054513190261926881153258486669659488205435366617801097148232666814154132972487185111743013275957410699767082302505574169427361233679940540670469678611654487479993898921595373078154331974549246918460684937286348309757247315474129997765876028161298795038695802264313081532300690224070604048455148056727918252313872463641749744855516861348549455828114428384189533874905967103865755523557754087110295553028246229730448414202337952301146289722324245245191570483380289807765923569783203077150808548029647256196720798892265077097082143492910808581706968756187545088472089082510102135747530974742344117611301868683353446831821115166821831419431311643100370314002774652569726502166708587194525487242516579807009399711833793638492600492043390263757430796436453325898749322109118801767389945771231890425499944786953646939432408164549604970497540869289175487030657205998388935600323141760487711109103868769730219523474354585999858191514258560278085585447254073777414999691985950473316563273841144733375027908401547470827152549733076985539836966083543492204996541356675156922573359010899808765667074278283360630331513175666786152219751640405059829337770394201497943626594727251485961300675492941375774228150421621007664606996131413124517892762725318394303508973097808029451753727818572782188825985882779229668453412954450972298279943391417440757812654919341075294384776417986146503262685835723875371419565378238832222739161751433857748909590033477304051494128059987312038665376335856905174452156344813030165183969101774459530529380115551682193171478681387395974766149597890763551885115033892984786255167159872031655841986746450676521709420827832222441307110302875451700987236700264392125574343440622679026891627226016419043127465638012264620654309323604115044783716232825138872113800740659935167625314126568536074635230205903910708213756274574262359953584814759901223046602796234506241628120506657460061291127789329860943490721599029697052236218751240544720206701703621869937023194154574541594195154405385521220360113712784705354165495397573484485094191463195749300364701837241639812807717268751621422503928194070090242189252138881377322941344789381413411385989766824400103477432395087760277037130764610285718396962096379888854867594104041358156123107418522597064639647758660209903548043326022056104917272781336958940049270132689006517432587661964986743668995209952576853492378438618583766722061126409794597899410667916935424195663642371397574173681286518231354516041203563947612016174004129942951416943118705273906048236027711159596254507764600709683029557742943649139158431974692760044059280173608264240406283377478020029158634866199445455720098864896079314892171566500927530943223661674556016783763444293828467478916382160830619215681312701388478840238722734056879124825318067073851263249778589108261907849443300191007195271522748232492299553875661903082308479410039916971127733038156119264228234459999196031112062879720981076411236242587602536751286397293751507729873694657302139546950703594822120823570694838550653816282550566809703512295905978497291203458071316181862173105963675019832887610451071469290531949709269933738686710776232745070197319010682621956163846562044135582536188192116832121440442767480216929174646971169802843061297451583722996752124854380342069167257963467394695457606496672426681856116231015097359228760852537963672216039177270747505680098731762954846900023505507957727817367726646635760245716760009760494449638956256005231056148966699032402213056376576946982294470606056596280107456243573717667340046470610148556223291722361538739128164788661017356750168447417760143615544797519873193915419982711509574464419356984389917413672804050562101736034048173484782094402647981403767695972862950244569790312776391184746210469541267101789457600564475978060042914561421449821381362187566117946500183406679949349162068657331372345293328157897561869948134692496721853543500065109425762031865516876359531374011867918204501078032931960302677588479352757270437583242747479026410128493577176505534700698246199410214058679065727567245153555653956516213331103511015396278051196252882455443651611396032432298532601449667129555334048977891128785982599548498898447473906069979472527849345142950250877630348175873334671785337660891004654877764627188043719429313663198706125022292609061451100722553196371718834963391431238140645918397315653303294225211791538588285864842619684112696473984935853287911635765315028301414743813533058033751835693108325527460024328075805840586179031966884688670969444137700704579987857010634061740409285985492097261256382677176230817586055927708126373454991275269955672650133845452671324778453595054601709348690908472209445947602597894389565739610476226284150276125979123294868251626639459955340759409361062223166094795049023788579492327321335760791764231053037911932497718211412726236875515169558086655749549676032527630324886954358647502138370045732867076154669764641306512599871693881815955355408609555225401272169401691060785363074417607549142631622812533672847580149387724334979912394958308069855275837729220030154577768272988532714244349941840105504114779294179946108049738169413855026757934546759648473625650226549173879543652131035660797851999416066033935407987097631689056301658717912824968411290745437177129451006948065592826247218562079477340162498535908891939801848513760960425409644056634622760006581743888740182273503890428805552460255622365589394865789965931177826683605701318149626293614592595690364384320005720871716954860071563528247998916411051733167014961619482473547194587315551994884193018193440292945585693645490197321160055997909617021356953506843121266804591886002670994788067479332081581476377402031389912567708134944195708478498667142838688568630785016664367528927320053927794714236585663548471341220834220419536960831342074736702067162419239084221789801325725422982536899042983705428468303277460624155366267885146658363429844407889978372150139713331189990993395110089542662470258583946975974698268151725314088533617523336626758432413329572767336425591345856885466012026306393130862725496402413229757151321222170553323367564620907518834085726467744517736772836755276093308796367078893607855232388426546057861626941320807563989797602382302629943158838330052673833676259085259605426561077509529382568635223195932884062589881487036864273609957983790989362212634979081994602802331491068922237920754648719694889672846240357455502430514184609497168039947441896815708874201999592675185472802827936126730409646748576051484449227664076683973020436565156570746233803159480250723192440900086759314213640980260766347637990945941116625780924589759223114692752532293778536856102318015598556426096351627554562434121185382562154816263180849663848162320542726111128414604326947590758526211991264818193938198749944643568425719969125994465456151500647197795218240172041660828558168191670550204130871545044691039264314458452524013203116788528267125815195848824696278387238755530501707351242147000425949945476145862082562447827720783449647782498755975655822751310882011899831706325768969892933326193734942492177645956496451891817378339059728304460208047902747491178843963652186942881468085308262469507579021422847338409681050651961888872238154882762298158949316180564602973189418095776701813165293010952111080081086705861916626608533033919771978962839449787392463650476572008359735324894633402938356986122936987006330753797220141657430783235877823290068465711254659226806488394014563908104249214537244412285702497616909834992451331582289526257382066535201232200398459695684786378988806040946584370704861532771330434181457132447614119023538696392932942233569073067935730849438508728970879824871387618161239467629487455229777511054734856026795269638906227304008919060694073691085561048374330262469387299710873658117163614796463690159079024557763619721459615280507836158176014270990529865370276976286808305024300225966961043397434809078558885677522549442414764523270972878321032167575194945269327127328343882295372367184305666224273671980815978195965949825973301188514002282060703930896074091152373027924267314789121737444515234537525360169865001996669586446927016420495988381097356838566988146898726863555846930973264276660132532928773191024245545912040605985342904275489621336336816489844576183380916986392884563029881218921756557476291910515072755734145589270152024382220656306595633700573069287112084860628175538293172341289305222758142609362735685748719895410834567509529012866726728008719291862711004413445012650296484660634309410423664062684487519704650439080249184807790616261683551817728944155967253917650237880829480628968198448526338249923759243165334261371256249017014251888283372362098293099128016806609267834713837671820807745402919624092130219089227949125634210284344292841144108514942076216679536921867876779215072771222308338788302051551388972295975946854446948528894420784356792268489341987104839166130283096712245838372334958303746528891475319432273870344595158516202803013962063502471863367677830700882494753119955349252809661839557933014216586873919063737124453186569460252581438689864597415713971086946246993887916560676342267140620013503648604716842887761242243806511653486001411785676593142993923247234225296791399780141097194777560737046499680776597370394247889791308799243198879261090575617027706209804217834212684818664639654098793180651329387575803892405438786710432415842589978053163845226571948995316780620384906289592972947034320513924071862186830392154805375468080543653013779096451856073769130332751628847448192656775969825298128373504128911153843796715405711475197938420642386752529311665069061340485884539837433544756892156134088063316842455278536283386702726321580846387166020200307479431190677129479994365476443471161518845482679116781347776392360068005678464743783250739118159466474195520921373846743515802067407543720433085704225586162708480220070009916089734971372344942333611456243498964186653011415597924745810125281660864999940462948529822885747808798803193393939378279774324982522495559053929741545042166197692400552960132322668076227098109601480960076855587820443718661321931125282445252169216400157017018152711213710742036573788209034857301575427170178733499293128338765282317636465287353366623408216350929266011962125287201937962709647764567100074676848991332027481925303767327377345246829390139345018128657577350292200563496993715973216349628224381126299048594115147596222704386331971837495034980942261146895166733362251835771284485186311512327731526540654634313543266108764237921072790882554683634204353652653844539912007210187570705599847858597136422863895751592275304381446350753239702147867926676478648258143069877854383814380542474290334856193216093096456402613348175738723041352908380382804380943205782244192847249886584936697532891193266956779493784133530044360536487704425949510735725522136999909952465717471460604232245278668289268215821960292115515320458039158142573024131134236212860415170252920460040898620636336489716830681503743889378677128927430425640231527073257373732277879798309173310999043759419380749709019969374640270206943661913139617743887462662765810698615029185439226065212976804304192693199975594811773639162389191074068895599291995474059590217784715527353084776600743831956304850619648411526646039426285637650315932893760029200351292042534428535248033639907978652958441008300115384430416385979809319153650750662491314141213982866664594432999504194551663548415398388563333848072883548804378949374322581965747819523968402181441145926446068972147050377339223765300418983696773495450180004069005508370117726891877622352896415859980866604236522794525659105909740381435145538093854652453282325184609526868067908097134195716078070655057736189505188724671767141148527799345067929902335416613024462883198361673488343537963792983120346787339583487991675352932739675164990544547533743355324360955236470802558875984184141984631926317482941146050259902696131983181578137287228871931337732816097406683224140812092164290921968521786913386639318842822780006706482441218284610826578531792148442508434522283731809935088567930407392789288148583565471917360329354975936191912789473768157197182861277720584855145026037316706253776837603218362716906140529743890313745181647546096184518059651198275675579701592833934821025434759540772246434340401105573808568047438159849444344560688962211355820716421074332164550324371665616383495644501543057860822444568737792545923835700197377784190637560194468791093948783693168557369224139232942701703394243281192526264527192846831386648473030872733253157905901417858772663555848854647587704484995136859887028614853624212294852702766037051782518267624457150633402981485101579476812797411305024634469135023018813584258894494663849831773616313825858418684885327561165499865718681947076362369194911511576331063090577388463973370587635655913730055092622085044188890336949318407135894045894430225328328846833992920926601941196467258547616765092040086500305927542799762216469511456143362396531125060244419994641443841189911380307216116306960946920550924089943103321091573178319705143070069943612198883118753192369182047536166757318149238027731317060444232355245942261006370416775243525996875826414138046227506731149074714316293087906987722463659611990802553283359346707091844439794354141729622565610224036905825148782204323561737827879222987798608722545391453996424312605958196748186783006592904265489719249253806262680944977664894117870385500778781669336594498699953173604378539652124110868924357592663702604442827280069294924409769323810855589309376808544089467571360437918173471933269095208905056086826343987994282483256132452740544031641046750154018598701582034837072057326138724323248866749944602757777648534641868560986292738455126030691765797633846979862016746465219613572650462086878648356766387755833204924502052411425323596371426762776866369691410443061943743493128417447134951136063258991637791143408632743795226540433088222350010560275681602823860492381251858408114471722669544131816563657461079801212668234695107909410649425075098395711881365922837626315117327965203666655652155628967649716668390029813914281339870425639480631350400267910825573741102993289735176765024525985138500907626330760974537420906301442096942063017099439404701784895896635757049764952191716617517673565777573727636788203781241153794841134303825276664632303463310199164048853384253346637250749144079576265928717150859880303212784124834700395935936170906134942660192120653466075367451562276558549980440250608858671042568001245749379897557550672092318482009408072432988189681530193919590157395748205660796910953176010620292171999818145083108536040684436380079965086493781876993158895853987589361620987093604200493397479646013296595567082403397652028607738487651015631742166814457808525389899007255291215775371437539313891539239482778674486092758439738114511413071788478458896976346438841097581020480808737287257317484206634649758051129998052443024931435113939873941493090287259813644120468422594471492512429317972267344698552472864102458135665414278384455808406269466820428260397141209203998720765045851418923430302579561010467115638604150872047953620295743224286910181565810537161135793474819239601457180289221195408151352986271156504992103027368065120478862946951839827013259297202186408762724070172765238755882967619370805264609722218713920410991004884472554758566760159106088430723481226829875640576892888072102618339069947465905559690076665370881723164515881906880422858614757606314990854837706054734579706065443696092029976586048305301164913134602991014526744571593713970253926480661761641700971071626658996656601016154402693701104498315560758829553041977078018533157236627378025539881494479549905606328085947633125267563246120551832131840882665923770231480876968466541141043426565619163268970103408452303620097023676844067202402149034637317414016387453615218129888376273497975150935495043121126826612396155366053756483854407730330504855658670794665290611955916614759994030186924769139446258638068533600942631261008935400675651102876653850592654951120807715486435884318311805224549962075453069282912757476745264647179926219706327135151590606408860151669228366226421225533357204534413983460120074061222492813198304225212459606853340046862184485271506967726302439193343320237772176039130959195875172977943537463534767098884589759755912484266889720464573043796947832596001786884680052601911520844409794501880514966274536369176618254831638089838310720242103509958776533248134148547100094899443912634485925595392098407176538081046024412081625900422319275910528300155034786610325764291444026707798370245287465585034031584707399616414749395986911237488180559064497725389466974642853609728238532430513082862042470423661188544795094006913350004006395227970923085777329643497420777450216043696554836306399332772657944497509003291129792212384089296606295929853560047871160588207062811196198210764381320544409599158174132423645553115424893885261550321178595028479458973286025144562404553799036364204152888931808874409017510510620901443262950420731532665061443574144666867493686286699716502212264313393824357692454315120129057053473776676621704591386864788978104153829750495453437373940932322353209306242831161124398774183486194833361021799752049567193287747780872822391313080025088083401654902989457210577589896353254128036909215684695161900112179982407709208941622971048621394375817294859521642188377710552637810361616634582857762250864293611127788210879432250407128818723590281079729810608939809983541213820278053650749007488563291802483275150964575658303174701136835620645890039087885841217624324640989374186434595619632412245416540960638996048607245197446094880157739753070578038710784136165167493960985595515223028878949171913428430004214129666460927836890974358917034786269905237627586993870747749641209032235762280911519243276748204103397993183363962526175120972420109307682550565208532403520444303759018583833971541315768354532557915811455912740956656512686333635530148145346329680903830705916945077905175280381678456271286551114352177413479202378188838036363228598487595994706259853425310061493273939086813537690368026333430507389515771036472706835673129059099191668070100715385399980865529326486562807523908593544408845982716982089384381662792223246167312153560025043048469520498424347081571467104711968543189832300224435392538034126098114025085158152666999316770537174338780440104988201439004213836943110143467456294072587902952453086323476761540349471063609159250954901462888827062521935148374933333377290994312342683794406545446152563340456844123716980318505507177583140825252865956721317432822673641671276528203803977215429687248148269961020682671212586128795018541844540818350058749842117293723742765902293521807279809639696656263152061891833113099976805789743409510469957747264166324540047048195183766878465875777944417772822244618813683007695976572903179022678823480173526181095229052094025606574687363058708373060860465346134497863963472820048181384238294600080016265163203556360920487384548569473782308570644289918290306092530523278752216726261477371239875267753255575423026471981725158492002903451916647152039699669406136089787358751331530845115706662753833266838964811106709431874183108649541640759427583877378877164232713891192191994370908570791160863572035950240220948544949225469758436040713136149417146495247266047440340996504439624369673882670262906117665223665847386887380584929494506963273476621040665495377096241059168916487291895804678586008550126380052290793926636230929961517015714977107989744076782325850470496303534927534927174144790635072691874200485070536277000737620060740475699963456511838536556246316263060570768056057616512758876891756155781347427618761641111988097029929759812822621666575575083942004880436211821610004679211141621861695614504749043054481073314038910647426318468887038454985560297901489332814343343197910717852577086202956837330629605950212440102536123713778386028233840314259026591567924815606165568233084645304819025143267289180396231680492033914395371885679087040363131890885003800331256644215674269462365929137528110125648756709332441380637083632454703899399912403547390090947427574372212430267828539802249384134671750750515907623244417269401129201214862313871620384020966359623229889948655627065705705861754264065061826952666345041593322534316901523637628020114267975296753880912374653963806923334958323985209780430056120565723992974912633286863195923368474480868525151388125635927368822927399814544670524951870182510324189640466769095821872583911483883113261881127221524844182896783654972565902305802152907442696680307145274249607717922612190857005732255999740839897631165478418216734007170070388853189846438399444927519176093174619640946675044714172114308013973035700194947763651841709166472684266131919230235939825210252590575497875462767334487960416762753621639228109392536538503761272148611474236053654847982794400054540363299359311198550487690465167082156988371323608107867215021848588522791450810799638493162601268194147100194775964990829620073709672655696016090987694063258861003075794173457508072174140844687510404024778228077192191657528209461876247336617845965181445964426855865199018363427628586865727387556865229253633602056673041400652322288096132702400059440100935990558119359376889322660692951152331402005827853081334712214245739212642234194359313951253688903342510077897112281929051567197125570685097412852643224880343102444186027280359314544338848409465065250903951392201633026824860532839230757828139874403936562303651059013272226952273307596729263954707676728646047622476136707061567052363196929469374416986096797994758393407934804084559840345361353932958947950566354639257238766360176496629546820192902675767232909846027434416987276481991225987441429387105201874576872043328463558805531875807465225167479542508438686707107301208569151584824810676300769486427998839748278400600158024188263399783621483389939891833153985041950190998073675798794286368467510503063705478668793398351556425799481446728990420418411774346384771705578743184216009163952961554431487176399164524718411404002602500776064390968825140310558876017768636842113750731089852395567456861071603240149344120529336674081593196324098745878066624035608086662195591027670489254634572241964092028823180673466565953989245149077728401834115500378865220033648391692928133481884710625950290821869054732234883122638267429983213914697983053856266752408721315349445086516928081832519881574546301018197755611436607252081182967872762297974648041384568035536107932031964000647836137710847123335908665418905642654477512624268523158059272041537922330889740538080992926930272817650585831378236563695429226747873147867744444314015430861875259628610468735242067134622666450365585756021979620942882766186370874391861890588925920795930583988260342638441657263191665572217913165215679259679720953933886743836571809704548766498843365279110583449142766124343541343312395980653123888837996005707827475412896647036112450117488330878336135128082109830860389863456761013788757168956143539141939459319103030401103524623715729945539553815332737895737139793780853756698784821249257098411022937275435936662586052759724291110987382017721249169420897119190106107498465133811619077618395554528863697520411020976161098512898275256200979875123106421409541942899679629223694989896824032743157883654310966724886649745333432395758711511985208933876542375462779871182381591029358232203361072519691810886555763013731559961966488914284557501942081716797875170215889366410802865029097839848256273255144426907162265624229707727341598247000965551890482522150162833076495665224459202617559433167140234866616576330394459065935146411959772736611766447562187303270797065983133914738114549229514667549202616837104030154184388727811755381797466535551633603203625127083361475569284987914397928424588730691214269842558703097415813348005861574587413158382387165496082774266172611139216140787383643772893985368997689962228247464180508059308538746066054113100371021453335920647436310901578403597417811611720810730506785783985095745217332321385338207349958336641754680166199779375149857188028181317236924830403588046223333772551896395109584622727117125760513788116974863974847185203901953196879505031706709594011189206663404224201104037389236795711689394968112158812496355334193044300297595425001549632414272316273826221338051403329236772029463547521143796319942738143901668117374561909875466140051992190073880381424869208354094821314873080404862741757473276737225750805724990448597399533106558789335162572009666212704297297436707435388377184799101305655668701899225784006786589108833803659179543537604856465592327693101362093563992955187654348792698148006860139943397900015263775651818532114618419117787030637913692685859357724629669903277850401164694618464537286118221401925591432890746373334307266863356209199042166064958197357853868214361390729273874856274891033873064060231349697928648423091933160441336831387803949420310056892295994026393651594656212448723934698214747597260759411800738125612863712517011317972715759568126488340202935629803787847733360498665406994155175680041514131034332800024309545950665094956131236819271428622919257225006882627115405172662120621002115193721468842295027927395744793150504100607510836803550089850793634607292895214003608012222741385687569988144173795461222028735245928370508392160938296788326616282815548122047634268978302149129868601549836386935102950326467874349800771597936924083892886714484848696912823637430552510527154656984070697522755521093662215955907267528727114072195343583264412054120130026835329907002708653036937753023001357308311271482484396439148093042834207309851792648646907420853560873140767626772181773778519354589173952704841756365819824395814130841837141299078212213821369111652470806112784369386726491290502580511780701922789586936909387156694226531571589072229359456053326658834122622144303035021951507969211212700341514125915317312798981794956163207832647775490557607916463644696130215677914719909650969310826314719101287794634347598438672070027674077267415224019249860133886888298680701255365979627639270217405889190415331422701450850900110598858069094375964463813543437975277609522793241884558260133392144318302372627200344746050385689161211114180178888656665251373366424982867330510410295528229745889176555256796348526627391179527877810345004163393289394141745647504690236642418911915621292318533458415016803316906094627488362752705005286090512493389622884902343481497025861074320674859946901192634097178495998544123436637931183626291143584914496020210060801850262355953735537272337813748043862855829207526443237462751726032652022996173726415017552258921071069126739594354723050203899877586767074214077326031968311500654442376736498366432257995925391387378352556096082156511968844120506784962022997223230313363703125074785892854778000626377872734973507228679033708894426245326045798641611919241751056869346864703440185381610360931198496368772566965554529329673866128902074031226427742649674821673705544280779417305418843379724869679959566182718859606818230265957369228572023721036328786935968588701988926260244201667084573390478335494113304257135010375110221391798549941976797082141711794957796362872758172916886810550877429967601835127769827333090621959035720688319317296913113220178335897175559169321695877793031307547268032036381078069496058946392349535388670341089274301712803224423339152410046463530304553518255284199639379738107606329895906552501141457354583691265054290518356333091651945275473413424881509263525654452144820399956448492649223544829930728939644665827561110557968337711908160114462653697372686143483879403227548867507196845443103760606079220392054146790617203192854623536891571774643106204408230175661489949928711968896473535481759825426866906140211709211162076187602648358961239735359112861682457099292268076274854172273891938828502007888081352722882396729196428034032526802565103921305911913481489894297189561073202290317881519238416748850301985548245079779473958128744426061346558500259674767445027958573100106046202656817001074541618433875922909091541943777092443192213919828835676944583362964812632475563488323881946465756062271162455761894860604057722394628695370067180008533274301660295422565169159178190914242724578235659591341807028381637004552380646422397533101442414309919701151097044832548147092709256571571912277242858480343701810795627901816383205503072632855552294271158454425192898090561376928797789694844709951987587663597508773289740484486717705570098165437199673722986883117986147612362225846593611055934307022789947341008805592090615640630949714128188607815935115964920966527010534937903764977992186835130957565514306513153240754419016122241981396540288625025957020245499454988985127305161857281052647067075229988080402058846589590398925610675849648096570488861245325127180889418095066395289894768198776466747562466403565081415302610093248548873906583616734656098056001800459387963507727123158509254743026557029703349444609590294404036210973725935980487224903071905899961241052370967205443786660502709780480592958615321679026689563733525966263661725993364326739939149753651320118346637038557533596974249041125339018666362271108995929155256856182098553448841654569328328024792532573860044370564430901848382599989346679615268684684250477430538229838384968695800913364805218609430770451559841702827316314488356348968215594922595018950170970650609671138678209162261200813636745148614323436899104793366354387132697172253306926123646139932719159768046532595950949956627045420021422200057235392096129608409241310558846142249496648483842846190057194869839175905919779881636353082657601778827383612716684622796225978728853351062771243334026292101668487845714986010132459711336010325724935457463371525485556446679947372014082378195796708904839529499206985016281064745058541855115234874975012262335728878861287300557093472804219030031551158843944097133333628759213038719334463692057957498859432633412260515669811731053365999428909609131218671904263286621175177888068388366734047683544443502181259629745157053932790957137748684317367388927828541265377811899383771778176295172223134877082351382871783313198322463927355984149811951466823710260988235699587746728309446062819097668643020393072503140220637841920542040564276081151915820894479840696146102786806980164961157397081783341365223754616072164135089232739526767586108365292221305552156841296271304966191963776726141319775259956109167049661917551231577679060421863203936485079064123148797974485325620517638211848829010915684915477910311139860688934178857655601132118696862271564151264926420476139844973328133461551150518568567871229877879845157692340100928902197711533801516343593593332876027845436233695264838929813573185466284965786755843127359439824995305525327641674137361802852306056309425285528785461637745819454276252077284401886177635731421827475974188716215392490124774393043438108215757014541220567864426799340969071608719006034740656515943684399142928848058636111218584795095387729746870236920088020596545082970412086718444298339151879594719867241182554714543044646063444412903971325183370704529252809679863328720486931783849642850994429071601858509055454918294169014741268089539464053059961488339247973947447088739095966271604839291705854817916483335866286758912376845638633295624340858771261199224216662194360197948643091869177876559848668755320110810547600951644142339120417867705926830987288948791953680767063219017351550997940907251919951558132112977708590118586864301447352324383732183838410108766058325912696709554634050741700478372740338587149473122088499468686885677758957210699055479168935058765497715379085414402986875581251386182468040482647473614573059414744717682088456204949752118900674766651061663796792031166823905087845849118519131062294651189411492621177929856472183124420468819744996410921637826470673765937710242963640519795825909930871484386728554786035155927989680497490759956606299997898155799025597249850532614773145221907519141875206668006906537895229042466869065022080024208304690626519260098289201665857468040862020626167938115362774935143240167251317601223870369905857383784999817342456523389129770929080952308654026639857297930421894848907886776485490984388639098565352070747834173799595259792605520145843793373520578154864220002656508847350552323579674804755239258052741071962997455156272252147295345011324245448525364317637441799778977441345811544005435872440975390554549182214243967753578437145317117274275835709667135544732709590063672012238303441337519288217069276601091940407709071664069589794796697918651632804089006739479999756090197749721771321869488018636134055411461954114332780312512456739107181368704803242441119659983288325480237924335734506427989428172300992115938721301334088784689090357221714070136295311187430380556612565950713699752985483578135102245689938257650240707353209875884037679883293258382708424732142817975844684167835297375072753611757373127245520491465539890130333556414989175216087691965664112261740061715516144980060332221373009024432912131086298357575711395410735685138486146820398681337346677170963501682064858132558508883042081304110658629391699447628130156530847901764036914616817042494398852173395964364757790460305400039629346628205802534665088228705502787653119323437010687248568143887339115992851028414299000386425137741793431164485154153634710134544391078704613758223836268827570731844779866708734521681519738048182012569911108776527277636768631064943201821663220427049258219492013794625468307669365126812284757622428565861635327304242749880585679177808378149853338084320175043358762411700713267842386412104798510135788533925645227929020374905554317711255563957514551392971032616778078753202012608311927158336769323869654103038126241726338303714572547308228206921451200653256756722079559479922360917259517610607599669340454185422974300776090388140864069947766517077847961128787312060671361471700814823332476412351565831745161291578266109089452101924377620091348588559279287452886246142236578225383830267743317834600042969622180806606693379623063753262266094275641605433795583308134702305730449196713736899219519597731675964415366090000404994050709075215802104378769718472301006208042303875619628767579569139633703549465542658069924455828360204042663581026623570435628464811438421409037522672986946427914486738736810935387080991352040427471416304344848935990517825662003296113474291810479446867675792139590669073884548887495815684021271326207429136194858107989943581671091734350438595675723293067969128151646388101208474953982914105623718275175392667354846657573626406821049916662071762914808640008894543029448522034996267476188533194924743637219525872829936344535372492594724601484613014929146890410596695159521894764307401375816274973517003089218805109470613145131042276122809579759302507452417980263201988546791652142690032065988135473710335948969543398461944053506070986186851231271647612654082971254362580925105684904901703797564918676420125751573626151158282232660797910434181345641489890694269639370791926848426741001330568476133005372681583437456267191765418476532252383650147064046288533799521684982097921485308471273945695860403825149101558679740726119315586785738889299194769737975304311424945452447430114488685115162070815835333937718775394705311344827641528638056712644333935858180919202089761107354261425080594633274013317424410343108883170476474743668554457073857911949619961112001540215670372307642532109987623771229765985334360032566152915238128280961313583528321621736663804366689845983115199615889758142917329516226688627515828210506383848125707714824791035279309744773782636390943530015697212798679349581742690576808422768024130226575911779536785409806889489350492728938489603963155279591348620876627277466987357977789743663519076200304865862229894301815289318571077909206950079723034467836070446734831346219154848773889437381579538135612420980686436234117186083708722564754111844640076967087431623984697293044949935077055520597286681926203329988834215857894584247783629108885252681760093260371391254091446892253338804716913802771747066355887630890781969889237403046138687882289321592162375389710436936342486550159121258666152417021709528192007245570021698762800603103750927542652555158682062710334511770041110069367492256251817749432519763376030528454683871305593713590395461180477777609849192849815126264115681401168021911926504269163567129339050314236017395338300481828965339990845010866829728487328016018495420606855060937479482512740478580467455985945091824328986468449302854696743194549289693811875473559664018112395710305216001136701635216604365280067814257022570623345862755432576725741685738631940645306130043693536377669411626351375701311039810512290180810852648250260955423158158666388807447085363418161057727666551890763372241405294988654589295318148884643052898423279166058521673969873240807385781851810149412229229646443456042169284455779105143207184340006315448378317255960077881957557943240626283233114228382610853638919943602133344556699493786402745446800367402123707474023495023855029324305338656017344363366888469052862263904110317997611934304968419172533081385622089860648918171314798852518987810330409340715973049161903368863426023012158383904068875665682855414446615504150972762775791770994932070438960249772950000494161614059399724761098597459834810455204959138384681361485617650337704194015404060935268938534543586343274496277968331097825820807743477278252507040178724570542629775815920209480472583240795784163262333509438054195317583982691421496594499129262327407402883611379479443041433703786737696867681394233166779988565987317082997221026167236243318844293846371897020714504432288547097924086600464021252218846740077542133858784861592411194328854549121186240733206815270815682834581758896653063657534809893594091042138842965801848471038235635546262822868727211584814698841261033953206758607123356221849042821899741265117246002562565210977695412197022768191429344984444491413963489179369233737648824953966573790105259961513794645473553962310981214487939657119553694145609114569828762486902667261252780260200464669447371578720629277422993912201058069554959667661311224351546567147438020065181638683829268618177490242585321590494232059279907674020093322616589572487461666081504038756951315222297227350871746748117693830033250578847196114632215432669072440464155903574396856350726002672431362702414632151885824236148458358060062716928464441776405332377731902290793454233209409380208246511388598352638012301420908463803916669187605395357114218614178398877037812444232266371135591820079491078431762207441237333063329102046613610746400998508065454238560814590515009622673363174631356325528238850342226099677687263089003427545943725409428534898865943043977396305817751146393775747698027131877605737906827029370253960801347856260923093468111668666921572289727245737802214234134766158198546560916762222500089746003966606031690459239181507752551606763003526300582466351425863137598833468259892649917354055244728608912904219710878148245305455467271001725359972399092441661337084259497589610970305690924197120571945332695189128570511319113519726143755272386439893462394974323667837345473868048508811797138785283922558872847185501799521706533737534973189936486076463411460994797461178444998917252656991910573952574405488079290745003008250854547169483192880576125266202448597373637781738554068898556086392939132349938329209230402084679931554515230527022555042740012284536682031573420784461756409347352842387219200005028753399574160211774300937847389907126860038100567786315720178371533531838921764636184446904063948101958560029177694196466279762240590012577829849274753925313297866304519304447731760204699882565408434518454322930277341806128697601931809211283521552309206407253020569365308378160694195848036124562281404553503705461128353840039515955738139676024807146036728712021147705316400863454477040263021066214594347401327683728427903974005173750662702378841078617435578773247395566771492740217285397462769947316429225368787636223244508309823126856215132336692991428548995975569985878077465330396547693240647451285448798401982250315326967076140505384401978429636081314033285078918708483926017348034239600148199342175880518131118961685814094369928934852106535746379109312347436007933353648809255329118231969493273049402384510903035436484813452900091880595820241515794023976619094368149211988216969037763082349117767079074850649331007515807198540758586411765000376796566405801040426616932591041928629225878244065844397666938708714009914456566921807102762002826904364995609258225101008849914879733918245910789108288323364536293766174763035605419396768913416360144436451088913775691458183540922150011993785661067697600363141543508001821965574312374651767429318389753141633501477352156161804217619234436301186064177444631347660299133318815922711450069905228677234999180776637135274516244636534796695814107082943038262207463828901809947224777645380248132775441855636183053428669660354678979872942490496137926925495464341261406992334365652580557792649259586609876451831235087472479790769856877471423304881360818904212352825802107637776515297481727131953185756430964735230251927342628626432657341404625023196816400349536761139623414512441859299616497721190783080396552606919361970363829088597096361869579925245468375513090760533591536191148287983354219604888246291928929730019258691384061381385011727720655422531626562927732627296225694333426793339955269191375978863972541537496261955866934821584478568932402015905358416300535916056628244162477972555638027847484819467000092172878289420735147629736359823989518919441752760072033519018350252100758438699229557365875822811623411382023293496227581268982744463473978946368126773331242051993309435225075368992037371635037169255350112168951241843375780021491898131820512901741212313253518660646135043395629456442040801174716649531422703935504305660911458995789123418839821237539834014265860703256123017839411003607909628319783200349340778747792841603336229325664867812448868611191622677490213259433046645970213796733370959461963789774191191211871409805995990840124402873162974826455151508297133401207840837871427259165251436230088216488313363596476361485384521495782966305282216828316051966705099553913364978791379506581464155446578675061831661615175605746100172748121569831373754339064777597696908548265294504799798387093954089403536201384714926160859211000838202859379401488333456697558874317292610881258279894898102259766516111415214930422565629413780847820740968469773074480906274853145762310712983054466670641305854408329634169565159521416196472690572818631284102397303021805172122795330355808437949210685890454414611419198412504743757072352268445958139294012262429989275246926526712544341982738131205924219614155367096034297810428674480541852144921903800810620673472205139696652645538839846241377012495990358562138192177945901768437225764429315108432608085258429165184081412163715384846684190303878228706954765682679846143125581786699659127232709589239518785560752765696892502525966645304605522815129090683543132360394028766226394158917738910526930776722204738889875050656078287744012229396592155141282034235262567143411881299228812293789188303426962158435993449970221009733742906162703977819201111429005721814561122424197320828433118077505089215967926250558063752890305481313435982765733156203602608999272445406739892881335894195600103895402786606713812069071723401860099375019624825646331505113350601750291532729917175175809020341467699898453401875072885797938277186709616509465155810867589043180005027951993043633502129775799988263510945200874089792579543624479175383239247308319054794389640029725611421764990431070074423035829142415714740823894398141536255870030824712170367798272952140766356670554585232847573667523741873756233156927477475033666104183652595873175214615913365524840353934155852263178670253457555314877007532762448095970583024767616384278121356272004121018529109827555094908534326939335163044987211582182257154392561940659136240315043581780640704223527827056695212378435403568560042122291576487170200025704411412653060924079039454210763629681154881823541187430181627254457934041447868110503051695265981827860943979712450334951435036487374415219674833180263820363317153078047972931343935680468996855628544081172020527041604499803067724446089877142299236991610029669657725166676821829364193829616662692770867788694631929958884291068341312103734872432413815374032361947076269131619854686734405217890856469090163532769638889909057762041044257652689976645642320579284554333593636112510140928976967268318040769571045529836213099770402511230413053712609175463124299965533420594909714665680685383202639001923184247597233787979596475735730302357620458128238708829546432840903571521323405446681230660048868460120768103288842155650943779408133001497065041932978106442572444921403249134334836214508063405223764981820593979091545192377583016633812616223957730131331802531449176623545370136010894490083993656876292704306634088259013628789294100858508626009486075925092743963999496520292783525452912240857697062552483047232494405733312121954165502119725191710033476035666663997705786543588334217116501547962726529378467469537508811535799779966263951418520200307236734961987537026611038547861356559223650207254459199665867306841630622281600465305236375879514433896745565855352308920298807529774510163486743517914171778000197347029164081451725689436084371811131305577241694460836326740781980876034763938167186695084057346405625962870805109764680835448234484108904765272955001813759611284277119778289365649710172375498547843651608680797444570449459392131723607955673124369312888775493092308113454870454123858328398556709499624661017018139820823766036001975310424756896396419324482054745767154867773551518178396178091243408159266510886135812230052441433966767177741132236197172153114157220770612911698333938264516115406684440942683864422916520103141338882878502207984335418528603620615513879180783018616066266066156353597540089357921912131411377855063492903982712475073979415673196653599451373767731228236643992491687521816069386466023770406252146941553137236702327381197105011832656023725528950469371267206645839867617132630107206403740153211087821778876294289095058221515969075936946411401910367627333474598382748002559875786582034991042986818147870628658575794010172518717528857201297050809005238209086493877188551768824460193360974471413618260266066704030186527077628035760296190350380019863407032777889417986939577540970724901295995307971233224889619169370606064184715540325281979343930668473527483335717587818885084866487443388436338777921229624997921014347112765785850010417021257669978058986067892817319857764676340041888037544932456581311366432982472787402654158660555902962725772490256337108773628006578981353872234752745631184507013667536389572171109976629501692097595569206550534312784968228452153889561638511468230454546238755925488240354682897974268180586601186133254024406387009343715503772476859375391371113103570707721112318407429221226406187656411041436788573934799777805381449308835237543229753237250125232844983304490554711307905133806099352726007536047744452499766647674718211810474334748804141523273514736585168685043165750884604020715724716185078539566258551149381252968043576041322522358141238595839885388780510780101465748891012539271496818114035965417797362642942728054883604302373460334563384661744677102449261453963458527185577702278432712230735124978165872157811901574281135042627096385149152464885251258324454936146202687666538460708230048720505295810687975607589246238427984143554267690158099150656977612648543269550977035936715059950273446507523651957652399226097028394848221412924938080967223203567518201479048291974386785667027432287467831394587838249565475858759946269603614630389726530023940524666191555291902384133244543996781848632279798498843268675296124578246161812256666519952714328644532748998620136517673111736900914738049588299650714897101593748320048972907268038384646077806397374638231318614870759147671014074857750118824927424518685064867243257731426572015327047189180118716899143654949508365135543155350547296642250051174064016521531121914364967737580948579344832202941968301053044996104940511871344842807528581472531836971474735271768596725293825809794713370579634165523592255682300929262575619760089210970222394920274093968894170203206787278426016409101909253862264718574346674064022436625165069650261863402831457042704210917696296834537325824363410652020688886986577592519836219745653868687089148729793796167876932884110627071089887643566679430122825248343419232445821710063321126500556838874805473766064447321128670286154497337647117601332854474453949667878826866470597513903096110906315580295301173002108773782045606452499771234180785116242816868790844610615260513055332194397383629053703352540869068556965148119455372316596249256967346453491515641682374302477355455591291262500455285333832894915918847435330227924765722762226194952894243353601064277474443571650189118006651375117454927817685909019240377946182443390474359823521304147430364518545917208901071492438936972655861303325654873600811103421578167429245726346875158850035443306651845884876275282099406728589815542944780905139310032208912024318519585902553330203815305545363860068321658181083200437238661301168357346331504167501904336096867710238025070865134358414379351598720506659043321394226243021403686068952926505984204068225470677932451627503954927009920831747851592942725830436383062414721883408700591409178883536905929227998489113122632934259273995740538988650695154060853273409344376068960821610856259971210700154340424018867726513523249230497202440768942337947179333781526235703846815294383420173224478072739697757986483900590724241972546867016555287611871436231519773304500985378914429138241377294663413996164059182001218897457138293416475737095575811825046483655523069397191189828896139129784423735012694409487929154425668921196727167193984744158259053110920537281360044762977381018215313357646051931171978204258284778139723135054173272484115733841209493078058932398235376307316998298544264355577519684491315050098718549258608596914560745731083377808634716439965941619055723433383664505041572839385201022536945311816242747601386563568201194878862722164926824954648303367933057325050155672957569909183230312263207522607370868121739953058828925777578679368949949388771821720294300421886705841009964088198470099836490898494463976332011521049134326619369866167999866938660677463218735173323372071995329635396243769784069429236224340808831470084576705410098729052880236453850875823529470983683562667511023089775812967696111562502442443447573403222336667036151332318461372942660343765398302406980108176918868277060816937950439055599670887254741456183185717552682983566478182556523377841828126136609684200701297755228523902865124772634367532021480560855943038255410024977261351677238200021984438226084540490705455352427834944312970114567472944745401754989958248216858310870372559344486419665848979025276320593056785704759572125246179671191874665863459761964926409584568586419928077896880196954653166610010839726747017730493159748047619762686040459884014682847490546048962115723905105068581021271982852295015200992908891088699544943621601939395256698131179120018438933071474933770444529460332790921327314637761927638850177944435402804646591948416138523485270080320066941954171760383413930758609560649841106010785798780071145027019134694863510643261950937241496163604052263028735093659194946970940452411989306041345712106088327756097161194320043314869035536425015271738298989555102150703202079251220769439809602128650599467563057160207948342664388817173003153901932626918345254142357311591608756278339342011678871090900769283053543472090956746579658144347544681861348307517117960691224384546862039466612938037107180983134738595463292248191493277558037905879023809239278230063459384786395474513577885665461562534555652834977383433076682638617478396172183406846973818384713477818468356537850402245959450757390167391563054308384575575520197192867121261754953590043623770610661974000943369505547861948899700619588588645140470512929446165320111292725399157699669025507105304077103254214854026765401671555324372117976841422472957672871746710859220939536209665995252112045934341111163575458454820294674618607178309618062490205024836619201843484865246805986016642821202999004583900593666665879535688785726949460712134233335297597432092943973180947476413452486256270555201031327758629953743512466478836338102700055512304823918710717925893304949245558297765319800834895174572220939113166580266141588850366115191222213055830589728973446732268448228294245288470335045116014329585116400154472864688207766661307487761579795708980975797381405838174780413567312910245223841262223095531951273432285995339563695372274549261363553532801335819739275688757038573662230094597071396251027226995697747017776788915838820944509926672524318006382772181170796923871841964876228431932243467512301263904425447193678753113279719275881375742517888877616620846682373224144315821285844252250251987384808678798396354857079607814577782857019359545914249778498295342574917212898248951651721371051022943885400489184977222707653275334979642096723747993883276632031481692386563024427887529101623535443859181746051144660600974579571369343697248898524276235016741194504444529066725747502701898223781308763213432139337815994251114337738965146313405514792856472414250894259985211215416098754935305308514660770694228273849310437496628218222817439052211444148809926003290797475564826540250583230792725519913555203572804494732918105455100300681995219659073103928036831189083129942436320307523929252771190686929906294588016880691309235759428785890267142140238787209374235067898874400940192311326632174665533569541832063583286834369581767138837035541923176946910315103693915082370722969207428293512925323197763890761605848510573837156231807668909406985041817937940276826699338938108914530695776743917971293341102490345951135967113145886221347936487331835270462126214408148679171815434987220499660491430857037154780099073837184829463786331183711334182768902945317054665422324471109756635677025342157594846913980807333873495995444169206310777892102123676349224265836017852301810352066037789711501183852491803516246894526860453704410612702665931815708592476352532437488769642695250873509337222470113045122901663674453152909956900465719929454261070481430839817768116955907098477392833898521102045960180781083341259146554301335014873926259257232982062755728673013374611832581298516679175818504670862293632706599055523523107754489803477374342925451503120521022382630795548581366322720997924838661441772158907479665885283073412469014249332813110592858908823392542282577406370825666200387998886273403574822118748675142568914162414211822432922627436630478886178305282334712463352582435657719108995671866696990554692086120956413989690672470344217418985277028483306014175469509946921130232966772828807184198198142332330161612403235838330976917317737042473150911444981798106539822219005536247944927702564565943244038921230613380674438855571000548178024161574667361650731948838960281716410836025214328238143695007754231206714901221350720875340517627479961662747449934395657597834563036016497162304949656799353721113683388171905106351177924916325221321297323094473626586358754130272523406296332748685954517120565830475001846651013577939629093960482843482201971714270008633110689379863666438900903549585783113406396609561070451460313041729392441598393702860821580840377030559250821859119878953464385775916225187200424103459336498790172253735469049132543785230000081145110522983443870189342579057563529065175125981240459315136624316577129119641045330413022262961070959067748337812870702115241195381533505968375186129203497890888947822445469013882459145745226066240293817636795238527406599470234022953813486116529561402674269666999322467367024845901541340211925887828121218371316335035105672824989938039966670947683095988548397336210224871716971089653962761191441450476960742318333028312773489906012166078477556238178940748928241510017428556667894323654208205441591544991099666734057222551015686056107180525607643285975624301496984767260508964468581140173338527570515997121541681831995458389189536229869488274107823430704015329611304524285219824115702526764448986923050953302695111353279674084571756293809321577768014747575663550351516209723295209079558626968029108343395113671337957767923157947595820692830219183807440388862280042484852850441304980855038892821064821935990725522056617660105770763924665730566577228479327094043952586308117850620235021962663990743474965999565075037138229477956119299246805128059950600686943479222945015020525362522982881181153254504748120081939771249418915686787862348995798008364832752969212649886440491052612511482643786180255707317611788930270483192842313929102206370206435122047444344028122821564353792244737940813145934577458497432245922991823491626606928540769078288985342690029501187455790545324203594495204495246839521586387461988863505192750630562639943640443614097646891743754649803858276966565950184871877890847825189833089170682182036648352516804194363954429271975601574392532398831796989182290872046182575689596758522096991908098003999112460645787664289044077485723982129709686923162973680609993557557490921213131640705640677169697818252665455117065539763386996751867837591058599573673747837907821935916623124940583771580420634087219539363788413254979717032616715209543760356213889490865593997515847287633587043612930785612669252882902965275522252970888718371356010006142787286580908262984242253411134624005243684416481524189033200411828779507174026030023826729164666474718418759750486915292698779954106035931740256994880069646226922314932966201731635854578278053112550658485864890590388777512401727820939268921521542882945769041586188602810456803501513834927305131269022662617926306988824246058065241145052321201455363198008697924203159150212140133346623631853897432013606593683629865617063160545943712764635542075260187910696503356429095774941229669510351686211081451679743220899400133838841783347181890260573247719619719452232531449637510202151491981430836331252240548715896400084666175904026978057221508442421579814024411362217964083512797061907207621990935111788616956365244625460927121440231482835828507532595959973904778320225607296256010325696274145058874177411707180722405232121322049134197450043882746069582429436091273454100913847440820467121691882472186867139778755611083809042395817259397797185002875277307793702053589488333603469063423637193525192648772593165186224868684486431027063209713108608678070988044119839075520308761534840726039924580865706816751062511177465852383944409006179282999110433932280102496113124240941540693779932585383846904665421374841046116755844189549311075008193241727414689330854218592517401931437857699564372307409674017663824064458991465963075639124492113411437337571752889252448454734498366955805253114260893811568593247768597918393163488452346114610219902304331670491197392973845906894916936804498238952154472235834360132194493542104719251949864368973183339355041912726374776389573403885833784743440725396608215481763324011120436501922756317324585748040638239907010706046442933906371929161337820022193786893667822937680996725655565570062828994662495546714304304099208028224725801494192424677931779458059978352776102816806553206628065264178806902099017458922956916333748333242055265936189186878539924565397627302240006284244694109733613684748246727913551118410815109397147956374796009097043327955406133626484455114709949518589153551388367624108972480324463538388276378996981677680580197054814307347022824628397391468111994617944486907957960593657991740199692493449952649820692258459843817371564123121581537001752450043104349679012315619599142892180715264575041981025827989215505684495885369982632659616295628287626361906341008864100308649138499441955043928981023167251120942835399203672950514151058410622991532027579100086474587395060953572162184402089258309843287692105855907708628534571119834908567939315279926009138564648979146084856968508840014119329094391667205130368909503796014815398685489194988116315279002096940914642471296183314654399904033270719416970738594698044544806193057527764873953776899484394244540855569416591163391878954808865221829799145317945383193234646182284092851986626031494331777315326606095008092166510790660124844320900083498257231568597654328372259947070786837585027927681223309200353027177006500542896872671045653762460588977176025262943757158775873912387653843189430692737595819204495820307452841666724612923151412006156714071996507002179616727530606221197386222456061231801761593130605800523210623883927469542552880697018286882938154048144141493508847175336975987583212900400863883762633405863252463065473624981888994389325221837124336599459645987987615364257848986654179615840818328896270336667049459423556999169306651241958787742176086339191148962576074778934484749798690020282032021739223333795877115313715697595494772084656490166282880745155584785544666466519974611120946141288749379945680867071051031882065775488275229890760085325160377802703063086746220996197770252282163207508889656791389526191982068501125181292092045846225502838940333245887866053976364159165484334203199873173007529179595295064941779070877970438960282672507029744981805454400399104646152599834035271478392054515312339789639442338876182889506187487719309143883497672501865292179890219833394434464500959007735717270057264314983589808773760320248706504719683725168549385290319798228490528696968270544368644651950388040070673028435191665126158170693052442080059918751376345956506387886975110386887294897987182904680480227710095710306671143819904543068445205779015109494439202985135616619092566869740728777646242113973603464474633518073678746327658082263215730884142167843145084958384168464716056175182826256751481406684214138414793060994220033649005092940026598279052510153885308469493816630352040544992628238264953435697165219362467329122586879049802259310524061854063185082240878123242518043384142574405190549224100488450076602170180455281734074515014263321857854689233123719275886901121783536245529059188627267663736319826567990706659841651755930038269268151764906537990816453654814103810482934101688175788078817975512560059282959775062702676396497565365554646099023489453118085781135319011148986117568048004317902662134126562678574567649600707215144910807247460509830156264329667848865222446876535260887025427475876764256794539862988908806758040307671638352248968583077102304950231925368827952935284029143157298447057071415480542325871833916568680760288274283411205107324140942790251695766540784550122861918301131628026214467309784483973911100205487675414920089142083328620842421514579731371420652250165856863931173133961754543937240524522476629907874265166780074679275613592513113320706086048546334529238321685416536663733271713004593532074955298733412006619307703787471626388910548930823396129877344692079302523595120523097867691900090972087133035605441438764024038872327913358981133631767121510600569314155690237553926638716512863086981859050631950897303367091555962984481810746009853020262473734774145289483054147505940368435287321984089181335318265482354358542702966172053327083964815719408957359511011104963526216762787613424286105321022913706794123926537944418937226059973212582468903087069592541025513020912141341712735826641851603648602871362277015778307973503499348251643181181279964742642602188873428782273053543345285956187219966728944736874829876144417308800111688311510235116779127425638778772908967257252434228906598693542804087457774686166965235881961159015023132425295574447251312533418513326305248131514349441816971363962805400829379355865813547132683452885375840780606574308254498323219266206387610881437736402056083229153088837301067399023409370756719049846872416002261968627598240978407807392374858150571826066412811015115939337283189174758446979995984632743944587061900135660836392206842809083910823596407429289442570120049523096746602068898832209710503984739907840223968756217143886674143550839198745309527968924192027721921034074951513251454709296928120544539274173575640066387694180722653724720494714494637486910576826321292906377029508065776886653928848942252003750024179222964402192349121353759152898152746628543804686829363004957580697330539406772358241544875194491814409526035185081133844915532094059285329075370050871052077248438779651708362714657421882813505027682751029264831566322964244255435917270774776498904689002607101983700179229144568967392228100834645476656055123232052774121972601453602993736404795246083738672108132060920494425034351164226198000758126474497806467107819481080934041767752347828575694053772928556075842236795081999007296294462057422323034611338670807821535394920236319325444143525075886738510199969191266144612357433824746775727097639144531415405101667972809707288645057765675123483393761930025915294227806487962961625950195209983387249972239155278631519447482167008551457245858350635291216133769861770456123029031960442361815159895071805428483921109203916304479943409380082194422495687785799578292807555184336703187856574875999182121700638293786581172378847028690399969237373889747914296019511929306651297554311217863538305428021263682466756177249071182678029243722617318660156408583191074442602156456588283279910503150408753228243475531882701600925628016352657819175749478316789298452628038705102126684738550516950313299221540284298554713998960300916059377857165807058560903807285118748307066296490360617402936822964248391929132409601626730406857327648347867100946948114290828170079477029106710646383716561705217482070514266920697605460180340358607797462172873949738547279580388232488278452563535752447208608622635394734802229788857385250205502403865328396726280222786576727101363777716135090968331790896545095817295113361672059562165727552910661529913704266407002787032115598521056471217596964863177123106453356814080417654682218357866323460543453250003789385842744478314078164929575673575371452485609902640386069415697949766123903009505418354886249757152440285127233318590075956742976214611367324293228184495029456146317121234263706806022985029248451922426246642394672056681366878112556373495109679959476717527102477979003803324340041900215562478292093618823783921654305082314401346173303130027591954184247741992757370967459525648598249144145945128708078563740152852423616903308750856097016474343784647434862624241397382426145021009060713782079419932321042975631761393634700769090666775013164710350716253573868099689162276922225424000296121546319277512630869150423224420825535213283753601209900946944609388671937391283174381480687263328174674365039084818167641281197771163408407405131132763862337680559068046216564397393722999879700679074961447366528918008002348903670902062352557232335510612395159386148480981302759478243189706957730748621008602912010620602780425195227400411567561328962522649537230833479840045727183605917523230957887942093802983501897012877998165735528973006271586888922853741301005832140525900386987996330843833205551823351267873526724694743797902490165678228959199441202697132006230148114313960924296531217272092247650101950558219011273751440307469841471714964826295459963047638087650063353364338659075672828110247027194127943418718238217490004837418723413829952307040879506467792672462768213279077590483700190594879154188708028362800399199052685979649873695927370658346160994224345760762155709972197371628143757050730016957825996259204164225074721846384193145580888316105950926959924661576969457861937873241188787384200807700266596356315609666534295035086415132974376857143865561190513261030441653817305605872580606844964382419455110842932826353307733314246802817007642521387938081935292909045177813625506036425831731114070602466067186343155543711028698113566949124047974607375005670863377391946022711172199742489104623875563385196974440472967817140087226116383887654396266235720012789413581910529585454346912187148554908271149381615458936258483192203882945490367785337643382309589977516838488542581068950391928176499475518161273249752555441950460831876163483592501281830476465910312604348142734845733571082115726797432085593647905074146016029035326801939616436641224886434922211192870878469374096820154325158048169810930053151412263175178946508019761681858963722489216920920800658898141434737493228813560520844145173593621679899665705923932682869179444334248148084619677966668836609383016747761389949405978135135774389991338419144000456987516719947989023228469416106431068887986758676030790809031439743860478168057929576753012047353016477992644572117955136411602420074569195030918971302584241301154425950200461905373793715840682322868090161681986567480630241625211179926218929252485219386985037732814904265267772784357812484470556023150721322628955427564165348157777375669487036505134051331102800407503944632117201995943020814776473513761318029678782908004786115272663785397375469192222393591779216796384099827173311515915414946296085965293269971959330572521725161025680125160509591674998484521439725760993806620281959637401062161616969927067071931856764468322245283411906080762422386542750001660821363416990258841192940087489523460836660726116848381212055161571933924483086798659013318819271908030286844945839587325137470798763288169759718585132013980773013532209453137400710487889527128700854171491718955815256818466253664607695691012649194021824413560826878874765005756439834411432121297000694089692475591127327577850882959014599949274685102379546031209559439032352537746479523973769764995716083119948468224045092125065826346356792098308950810750803105967180080135288473105403763213630671944380251935437070141321584894644156795921553486830802881910335816640896710192376813054335932644107842147670305293243946130462430151424100764114230879041415443839645664176318729356632421189012630619569496304899435976780538713001711423255891593762033261912982966594161096302717334380509436963471133957987986333836871651794682529245575315417425286280415703777388636400670057645149170376045721848654255649416022782413618916148824906633489091458640428645809230274925350962094652810485062692349960415472736933120474995951574351059647664807776890290074663500495873532383463195171089869317399090169662170089103543262843188024122735125448185272284896286855815202824811839554852443050353870388007984875085681412819794626222613304788128913556078253510821078858542185162581855211730620052620683739581128772449945330066864811864488885823988407395916601204706227576352158385991876757299059458479926917902013852296630567114249965563585947515404136652695082088868592672821149535865583986112150093292534315620399235303452585472280225812513922157195747409303343587113595733047258510131435455149114841036576699988412761458095607578198828325792877537106835421465200458345331983086385251775068897232684995052808574405452521742798261433357454632337567623996398915419308428921620680866108116799497582760249820382260188971723456306363863636536119338848334196318362476714993632580666849694136645180393622203805777778700546213439444555131265491764099976713843267328643652563691366493882022848935568984953367261879745972514651438462440848177689197255577852352436852418138590953996684463936078908599617344687895622475927034649288928765222945849556609388600422083009574143724835588590628355876086672697969181116529668401190686765257050016573739834919862232923266137155100503071902534687293028514101283905824693120686880317143963646703780909711134606486768899979003798769539757500566338850893340120949076596654005528128847843167255043533210218329426069618552727295855173717548572308715289504076438630026816224608479649440595256335080340979567761967738468236955597735000130897243958410962893957750056341117380575395800472802384220097084083213674240141550402011185939175847996899918669846303117993626238791630550916348377904393569267822486086721950922744597282819802605849473242634432631021752025730953386757567366676493241032492208940454432714699584429906838635579862862444120385511576499922163885654573622826753514286589143875709520477865813559149460593152692149437685000433678948434484935893195113614609799122066201639573017338163121106935279495958500053374141405395802787440143097524147893693238381419231724794838838563827188735521116868641796485215058709200845296337511784555926446220113871084246905305519025734305903754609901979409150323471469557914754300764304373708148878561436272400729105660412691866309945874347768231736629717463598052519692182379528984046466747886782256343238194129581928435562804266837219665212738146238571253568578197734538190609685615728023301900163352130843674555042304627494187069104292733317768825869294609437111354145872606269366591919056751974229042967121407180694517047077149151034200052899024873852369055214353886424596725457278876589311064082736165493287274459540848583518899605237639227698564019133765977114504836970849939810286927586264936305320593761104958680935983315650517226843502707019652129061509211356494192915060849443929062522648714255173040484998687734853446702428078242970099385032725013093259375094383110553186449170575572236783667131198081962705593071434058913369751519088634710995117936662220037152404887913068699404104419966884148670697530653867485193617802705476020316672432336482434898802138764196700337431220015741020221694590267561094689437136662414494741974066223814518618076762337950308638351663716927142431910413049833026158301384708344304215944713894064030348045043458733708345885103714489562890707095151393389442648316094922551929064444486817405123922191020202697812878494240141751045514028118131796367752553025517590348419565366937474542148212099961857060973818486555121087543631690287852719328248552260279702897791046960068688596337389735367864879724576323874236854749790932908609192260839790565912021485611605267548659165209591657617972284765709114983814663510823472382100220813692589418827376002324510715951258792589941153479787683075452131610879077129410926789387517266435142968252904714956822931936748549617087179656234786067675663086111324299834734526818745177610192863567355038437642666171769562167167101340382212173515756361644134274742777507864457929555818239443205566691767423135654910544864948857346771166610339419831933705708013238538905338187956465563781139232748834919407410904553471426593652197323623137839998308176504866457020320451229714253052268111661675610624605799469638194625789662083229969444176200798618738885878063978101901835946280540553391923139532803782551857233307976772111578950237419224775946037604284060033406287858982467959241410146847650321294853292896321330453963020360876438001922797369724359816342595936907826565734459922117250937530904074772142351987975637695918279371386561555848572653516964122352700148084763299241890790369668721722958656555708455698453632909556969582588108176429867917229938812786037712774897396404746379991945952155028421971527245143663928288819182091882511234712960210453710439503791313618113670168334993668353367767358760243552409974704542854637253654643037600247395323187414352637632853286267643888163023549886540545224998200836557045236616137693941840951465390791976817214729485019129318892614541547411020731794481809778658953791056596594434818394112522548020540199745292848097008299027989937950710004474708714923091047174672320887793935285255512610378875483370159255331163529760696065154652564862228917391603339147144940007197649790322231213795357375700629317008549716615163708886810584548909996126848444082402052327310522132775764524800573202738991688242961645984148288839667568716135483875069861935460823414525442633725497147877908774110157969858281676457858557739771294537906734595246553819534571763573045591667373161036927783600173705881506548892736780798603522494944297315454143788783909596554158723044711386092758583065514179637114593093726041555496249785577536113118060153219959817424242511294169744810572198498502693070502246668993833893447848552037964949260457245473088746500318214118604259460370674988809232769466649744866977500084066896076181397194610020967442652754924276660346839451092158336593995284667714706480696203394407536810378190086893593812896642595243402471781873094364948318031720242031916500792757101390748906772573810763994524008269952144957214543384026193837384235336664608713385799995364269614986142329602828233139045912872785662746771468075016166148292071345710119242715040915622807108135017100386039254456730500185608400836649306652860688133407238914286166259844797065928544920969723481414642249299634294814163605040472187776096540952308824097408270488650644713236737553458345036154371464047322133385192532464930371275723341455398831653717334251833439357005181776378548979001568072940673061948456182284172710699964336517730054202427787146626410065723243964146266614734190631297388814930194106964634935979967350650872596203323445569775134448229486595559314390223037519735332069133237380839782609306047254968703925012953497443283237352481417274087161231121303170316481486907432144718617466490746979201570626419279013773759771791275873657202634186886509458838095898501175709798004263222908790998412349735909899114098014824834190722935842331985818307719439600528269049554229282902662308094811837082024509717898509678446757445432518055338936943347621335453756519221811518506560035073939103136716946843876074382983096721497010778589371798658975486653891414422105513048429837658399848841248513171173034712734105675739697113517228237901663237318020861003015835760639343485405789991102954313567709730028409963349448991725719160180868846751460331514641511496345879734151310607455785463444710982397505150617193358621202933190143938614089777159411219260263491503399047578236028100646045315964835228040414677178693178120095658533429004124773961656282946807066163961907286268824867059118081971745778511858031819280752014265628118962865086233802080552111164569213801233692122161149312580421431360303629807826141849663317707062514296884231114074740586613917692225579794137554519717412267982483384302106261822944322839012421830966806278169248060295737776730057847727525874278001755011337752330265795806866904353259721484269213346265346033728206220406349273413035449658077331632465178790777293929589994415903518210405454484195020411101005471634504526510321506100305962843601832188948393314331183520232919005506556178056349346588287786611037639406825171406610611801318224661003544554373613814112440071826617856059276970055074325646964750182832964872938769919960641387935206545770274706216499750233618639052609707704935728726317456663348542149953678747865772210247662754709660340862376245815913709866957786628345729929299397811128410959537367501536752156332030165030277448804168711243111708585607876370746592208706761810639896148788796282997481493763453740976354675762026200048526370433897440362682950845245214805595525064676893204658389609966594931185969343415563491751143912611902391575574227122789236863436952009558758179921840068416574631773715158998113546664431342555374674347135658944613981680953794407002767313644950521342644921385551871955193821651561413966053210170880069786936726286744001879166289402835974979306664910949415132680134858401766661407539686248624336154002179141374651853834996073354136244414293136462639922409837398850838089346681102615118156244981618648420697235420616452507695546882071456891923930720273468396354208380252490233648093091491230620142946692330223976770608856985398740981404598597965707498617072802818944167659397544492291240792450935076984839209146311952016944722945879897772379306295582880142353793651160151757356128069418753909920916220102349483210083523296924049936147602654658392088020847065727278439762380240112812685626940996305283613751208244949437162270203383979884044685722459052560199365610502850388859957729002549875792960922479914189666472015411130558959543087534891524990594701541223508115534449940047745381163415573192503483183248202958176765406600150877512722372799686490548593775812228557099829226503719499881738572391405015970636507971060203796086439320181851294267749894195495743957983478624438297671766552040872331657470877958296084196532707885999253337329570043940285134380231923807323146243662242709152806917110039191926290601164638095468765394718648676757192692122377418445348143130211186224257530418024946716512529977415902766301305393587833348616279886359459508671718990954261857102432565009052583654435808888840839836409272128910577303399612173024628721719437867618511141634079493454758854433401233848946660206669692112982692932452444916585432558011177412167345930729028878062102478313028915311645201022232072843166526343566806700832210942933602886183344205020611660372644420719097041655760824356764234234870970347654190146245960640446338340355406389636682689112901604208038517694927872907826472455691265684673650422255384799972957783180437294424863103609751756426529305800502538538837784770301295077990953663030703281395631860087676738139974638201164753780886893262795593208878284486453211847969470246747113411110201027229643468086261409291927147959963465357950401973736066014527348051810232550752223338600576078245663599980550304924726894156831128994250690919430236749843491894570600279875822006696684381993555257947382675806278770213792240358368687788698142540645145476012296848248860409564629544254957169261990257572303022753781053076996223641268342472211671115424830818849410568684760221946768796306353402168165319007540027240824886503512897136539919372503005776515315683365300500592112409897577275622797592281553410096933092608761554103455400192247873632993675588409086423021822266450270189858020560599946707918120872523006665435205685111887544277433870676468056294756584858942887556327717753307636433552230578161638244236899583021006640379113726958744811973091912713924822425579486903643733581017795312122847776945502289138485681192121634869999062014229233943379772685036377631065828959812796172343646407206030912849216425456110869440878798675903400372455943382047137273891500138252796964146916181005618045729481765022082447173526350614327903516003685130711171379565186290509515030973875745072872081076680875459188205115645693396574309412473616653602129792908684223233453093091743309383786722046184943703073266352305987613219918780400706282118943088564581873664371374899452537398156219350135922569342720498137592951941545103408211172167163271242276644856082723276408729709420608785151041512356621876290226833885235195507938487947007932957267555978993300250504883758316324076990385427017283024313211891059923949882343709384823544056552815638261594522083142219786010244409706748000093482607007636928118524308531179149362571198308659596661894909868837956537805432844529560272300485961425442672305707991888475733896973716284249218905000687542796171212538587710846743898516062098495740000931484482177271410948639222158513929642325404693647418626604939220639684830833328140287574961206302164073118836915062243123176994105775432506701963492221961413274456347818907049068019746515230722420850933489961158654163561333524854974968713057809179237742715549358068346003683976834330190052899761506327126592460508008694468335079064429535359221688865782646187647899834276107849223468975705223584014321473465474898404769647171032711077059103768232990202716607471716213181885361916883503562053379087311035401134099965098735678225680044206450289821974565751995653765831992134761789931995457618850937978510216066410503634498827308227847247072037690397229929213658067323677862606861555149539710071160426606691966800940850370365105582675158594772049191167896639081048564925052945508396945102590560882075018579888254968819762324707925732242160865523007243220405569319135143761488372780673413290036489120399776942365297183682187714648513785094420417716543743551364353632170630170809337049817594949630081982363230266429943062069050950768790324655625502691181607254160528642414534781530628901802138859630071308606771954037027625410397842948853686723160072615822429001633118119700647880271918122761738562046647191987794654421355605014910823275035739438482992822805030613833086071695819280385209118872665889595284497543876229049195559356639393615930238610717566977915577940730014078681034989052425339828643485270019061624516599326643790545658904821388675471425650732743213486797555207272725312026365231002884936626555402694050883541221526629589299633994700819902812091863900256655106044057260077914128215177916315096252534962664627840790170461945047624912227762454684343549566535021279554168536286631570496157388268029401736244942361764873524841170793755941376597018567435486487066356879805944823319338882622595685202578631441175056223799002143649881691174018558343654370615862796469495847988510104200718751007996521736811226762192688511958758479008054045183900943444908850288721696326704537701876511824347141746086071458104647001000343745723928241244494495869818059917513849684665739136273078219296187359216861759656711024584223515242283727787300981491887748322972252726952875626827544187742561643593240559685697278724958037894845187478089183344563116265792385746873475740682684454140608287656877926711302983768373618664941541326780733689439427371566076114615282250307041848988795962670582701106560606827762893892303638380813870611216943429783331994012598225877626776550452766585684450221301162967296829206490574341149133735358295423135898104337648640716350260349420758007166068220916296691321759824167614327223793733876510872523260905634940857287928351227087728323212098458280262679949301213707492890001952024047125555317831992155010419397331287543848967524229744716604711694940985054259393771562854267190292791550240610212570214145074521815969451154127101952128467892935706026408051012442942509078730746535037102307742189169352797578337632949632126051844831682672744104872075771237028258080467587289997835654281920191138151877058897183080337717953438304347600799955429860588894871528883705201275440709257038942000481482716884615091155060262350607822256168569155177207765226043224326420047633641516781509272067353714870651008260874154019775048364205783937612601554467107688634025103142614925065644411443691734662751324459494747953816064422880062045647322385634563059082515610721699141534878481683023724823870711245875203744480489699421282709205709430377104145676727305657482179418523612788537664227843528728726193745965615729175939928742341351633626000562401739404918542639050285706391467500532882196429220068238597220810822940841281280642918995916537438504247309912824827160067083580787633155193548286331563859047528397337606286190365389255311701453093208773862931559081093362686990868212437518621551281726059087473349108385083575017256015567310237118315178534514984256006063135509047578852987036111348622457105632468143517050139067839919629390676555321907828952818003120490636515125179101969662660362224450343201045224417517829395993642165702144071061777508211670043929473818576045551435691306787227951694093435247161150817259063557138812491794229561120132220931863034697311608800941015663071403105479297955268566161247148830268634538363578357021571233677166117369748615442512629937140072402518424234522704131882559544908177834991631610543166146241457174475279685498035738671123046291813613940775986888119236020141646153650075691953884596464637531325540116451091192108989913115467716714885518761062611241872519110930081907047771331468710119458322170892469155646566862672321781363460913369008213339802455124517417427832220093462445507817745147758871090842297283469009559566290585655417210120048148190836113298842276755992589467524362160569889821326404697224839588293749624665989739150248656272834053477312352990586699135413134676053522193464093032652725316393587294833874482610848287016729325559034096606910795413926630665835138345105015549862630049126143226325624566913215675863382425569834323165620960879551389970991619674237150525575578602942929474208691705038284218124044020388438707105993260162597746882216950790757909541015073749014067286552286176054395791954633460897887441452399402140652599125117555789592653634127221832710005434463955390000337171361929760909912333161348539645286214855597443602673195555106842532452722369436252131339880965463963265898703625150671011078278628729473905944105093208734318368651743892892369349745898323455578443743831932047010715132652240604521700392092433959745889482172659783404918787323158979428908943414698969252710923804584793200682593185190400930473281880638104160603050168308585958534315621491655886725133893967135214133302966871706373079676670183632109550661648708732271255103198578507490561203514313307153232804938467740884807006836500547773425151064452581100185488251980344612319850310476443627666002910319122544538865471669913456728278867709953454521060296778116322851363773444352053418438404925886594963417311638114023761605527236712103137707201428645123832009246261256899928851864725946452333688597043883040534749281088917702021662828492836503426941938498961600557070975218024725621725818985039215237326511727996194630045382147718728005056923863187437247240256817769001407994109826371698603506057629641717612932187878226506018909975774917603552979938964270986935450434592440491078408271413202173457438898727252763921139525099571529501984808237260211299463343099645979409126135936368405058250640506231927422761548956966357288403505095246899675706132283485085159274061027302539165952397043979698188955011976276277969008259035929931498598920066421704980235820730720662749385499677178336818885692660543929127300786876024378838622124933645064243066874201862447383963660258284942566379782858940847798895882619769760327273998430825361561886469513006112114466266230081807295237043060931056260387925691127566472933257300203813194092160118663302330196514422478555892055835856940867074352329700158954103510477243275351239993778991067377293282957248935747488192838003336041638614216828900741172687237236760165465773831370416827430333288728900979637179603008385113777518174007781034014693373036083579506771420402793870430326469684939128099509219936990606793627456495382841583131564592339242890927589998900149174364877494634218546550279895299699410572456653690156472001847469566033615287366437483526408409201748966138453386794018758161921737415106791685105577336249227431622804636047333710867571654985160312027924587858120224960879960360688294208502854427662371536367278174240657368338940135480076713418134164128578837287935247403942172815458237915375919065758396444507244484514597482188107912090423879669882833624028504659193946888509041345806650726302532101392808575538047271834644466576744027717098245844031890413492447141735993456118716564096362019696518643351670622875775000974002793201744017730176286534040966168605780336449971329815597202869104804091220405156046499660486869888226235363948995582976765538464818197803568160764655695574003602000702812330745033107703638154661857634141022860664219918229018815503708174750212361424963519261296283351806231537757055579067928670897462703996222009283774101295138418461403296809660467024749874363587487873566782026399344079257399485901062305169323836540210606816146068557707592033704108529901306876695571303231849655619127877617726277433441962305135959275247054926122985122532929760434296162209974537165133568919710084980534235109529932363126507229705402276099166733321733258216841884851388801797337696234947733074570162551187959448630071092418702987239890744051218361316601854735182841357879675005302784913211825421089221251915007194041831655640958975439822689921788535233223031575754772654864072519220670564773073701991584217908540928129830272459748078615500622584254432321440910988767615211734240736822946362525025743302680107359207344989745808390107559042372591293224417381905029241148188651335179275154165181819747154779195180344327584269724566231490864200528842400440160061424751195938114136683253418602038567752030202620205849251553289161601745084560236678503080926792058880208877126037806846394579379383751383146115093061551308294305260885469185585115045110239402032819752286775782965022060324475372012339387984064968832806391367599073911028398468405005728858623782262949623109600691352357321209910219392722259449800807068238417656769989902241482296611240184606585859850179944996287260452976029220201523776852110317896616300698977361109593549789989090234569792827580802320971431976802764995470821941953922651019661477512934541856328384487567905891790978600461367124489253107877175006857261627106490544195936726873720224496194952597062670623247820368321838346743817466713960983938380876417639544670605023309350327917688439038044575119554392099672241282756770164691630810077348405828727856225581528481475651459893971388703910754313161279700904768210253863557208522153028323666769103851537401774250288168014341706349526640548369861276825109976170302699464696253231664078938331356553754270741306116641186831729549393168511547993348313545359541806033135266861773878704356420125519028234799761285459651475168685062268565365753292127483339103589428163465547425830630114723054208302845587905696364007698962247735797667433278934038404946351687984734906804986518868720541779608386907560915985032171711664675973748850637022909921467799860632225740406471314893737114793318646149993457077970126174554465716443357128136779434381095060403099909781146328665126755046312280526666313153410541535788233926345555640772218756459943694024608737436966254484370094662571846984028497030050073235193257706637294826454304052997943224254845929553549528021214338707862477365769236434007020923687782945802987446031606921137454882992437401783227833213634719538825931926869928789313845623043572083032221267677702628180631856036237378545516660638276845178418345387717974681452751319132699538729700119623752708957662825758033151956468246168690570535250413380755258988412145959408864563058015348013083449851664032685900827450483394176707581617985002110979960991752566489893913781755710442015601001364664770795480663479748510698587447798964748627591721187995838710066416300154755550868247371777741476925836104847096641390756294389028200440387469474973426312380320137249030577411264326155986341346829472608797960399766390863537048098240607786588975154270682662884655557427966908475752910646605088135771153345169712558044028252223166330248483813650026267989182262863111017112668357797492036331969931984305593370386227754705487783329952799210485652128661394448659354172461712199880870432402646303549124070653663414048699598346350218589709817322550753062875023074523838059141503129385718811750675067243470206531007642841979019371316839421351285376328757302352043985298354781943526615380877330647525879973121478783105101331491201350614800845870088809333959754347093553235820997743591478682029804238691317880882321834713897353756661953643565260659011322995650357054589184018042413330022012686678565499784274774455580320115634218303024523168064172419783737793024333160862203549878359368357867875702398693350867323931322661331284964510381338037224463036483654544115137056245490297814713454054330335753214174738637080765074264387019230998650420317037083253795860134876587827806457253425544809207487370362042455920619239983960178245972676148105940035110583409437959791198052369546970448781081951819258952190265599572839920389878767769790688197700605318160149787213085423068510812896072488165086704082676941286851675560473365856403996167068949248743930117764819565398422112459930674353354679003834374237750057595707622961281650114667855456745979328492238659981361427918412881930432500879797033354232605940640523910648673399552381533389571682847153570216715082837640669244525926851939798045994313261787830622627014120004884436101391556870936791880682062236891739002953256181822022389277590346933386997507441288032833329345293155547831488898778773385551941311163891205394053761206766544822928358113120282050104735309078120289757488571140468673471752322707511866065875833856603151352918029549258402776099129130747774421675174268271583035574824594584908909927156913030003386186233110668751091955692515913382628389144260389157035582745174019168309652555912650995097663624167823323900710923384115939745311478287251693844542013117223798091418930185476212249972728437908065712458433367182168432035740425562143560262931362452295181453650536989046442998812387357812029081947307211328419463995684047667182835185549211601192810825662077337753616050295372564413635385064349819644331336764489958924891545738712881379070930996427181726174951249024132910342403509281416182042890764767318533851309788906424312249378710543603189328447434583409443181591510404182303427589307857593089487686591385560639590820386194146233356543130261477595625970815543244243387671886410585114394672267759425757587045758507689497388357205391751722167949840019856284126636725503660623104131173808211452862995710088915598455461974488054456593876864413154390984961414764982026434506169423432895157563329197502509635132482078667483331134219932607904457169692661770686561687138340825657824604790075388816739514215235585241077795418096237686394671173458574388997053752009968082548879573144629807688306261344002162595134742360428929892684077113450136421762286024607960093539634881419681752138829144851029015528221835311536099755160917707439820527784654262339593540209963377225356558280431967735175808893058536558456409837949544148511963237073244134391534425403196925624463074299122124208945584803823299967764047345823118723428992385421682403353965596923468862607496739361196499389667978333848342530649668212458273692158961272244292519767676733131655695959930010018225218262852323215871753396670319205735583463672109787740818611069153356746967346863876259331664656351187224190480445736098274192508303976525342712105484283679284563968548754906560831650398831794740893843399607059369030535424382062169115636397950984108445171815355223205562830708870391072696981229559882251109231144137157182220809919510212637941025702009774929626308261568369243515439992224638495981904526370664812393309442422539381888122239769464999926755537578394549231732957753447276478029348439870048519441523128978581663727062698120375158372197486931938433979868669214663360479153175190377118883146943079807693203599874023787343784845554299655434150224897692384569444839982120932247302733166346665249333581853041028607210299206655929381164481601486227898015865300917825003877683315352480593441162528353639381633278180162271961564106656057110097381423704029279623390029190828330046865273979142085442484011464914752145899809105291491589615151362842944750615028758962806063598390673318026926762706787863623599677646564069335987424588227949172949178166922696830077342500407111310377780997650921459890750046057329254979573039119847422479042632072720350246284268445256604822291646086508826206708417403521917965608706494636135728985558729685711743784050531126001356643629792613798854700401174544083658399175895357502913463472208290109742029099995899154289468534762262189853922888760908703152266669347996355387817303140593953971892731558520506739131233251649136951334407248531693263772798675766876462195855481348894659268490625216085736360592390727278599391246903558416523403551281267664271131622812037257722797081308236592401265756111036532354946506420155286637292488369579977021476230490273888541098599515794788766085900471109132017472753944489477908496093095383000371549318925519001063939488622554980260936396265321801086812632376385746880149887613617365597629180755366321908411522057133755820033984463782668071481385816854969245029839973697276735531650856950608715333495766063335368995469162488793463063638045765494363520005604786779850834051965779021619328569853880436270025068448437894387796721034249428942324631949356353672276527798031718095371119219727207911161166079745750524086324959480451720035497728667527516680828182955727418428922514783065290646740319589389209886335932079882052125921268594930766534782181275258698419508053491777039155014670195543015609285107766318130682538314199421829623234541210592452420758818969229638472772320582476511490029436958181731507346337199854442943175710706833412366600429212940112130181483585495509819752670406045829032885760990930928112910684645953282782040687472253296733527391860618812805519809304590933718483959957200612152816389805059307272961016546077602438306465908865445957022346245588773101003435606859898638607871830480117544134011755643779243547955219998009979063011516193654755201658659175596576620376945094453210661207021591829168787917232940349881333319337281877905843356481644619627040047096992785408781569997476307613827232751662053765569604537803029444401589280028823161715133213055538074787492112209454314543551297264525748513657535062121644257824218466017931982767263233500363173065015929556228807148876344515296650425751808621362551040017390953092157628865089414670727930810121563771906437716003833231690722218380294466234994779573056692636572895230153810514274340274212962901293120563261322685640490054799153010703040300397875646057954302005436153502719381408993202009377011586626735726919441635729456354517403379583957811666054159288911714769078602668509487513831536923580225827419111305176649302483527434122628317537230608434835261069760336232497602730766914871528326148642209127865798451819303836870969433412706889647485966127114058676041191704106496120400237804994214565268105841638797860144395956941734467230913045963892288221844069516527268211440776851450997675497378794614991486412565670464920969846231241208547091080867896588851366178464990472770252851271681987118881824662450921925951106580941540634292247991392684696792094383730761525222307398667409484938053006660954259082893209489425474975029840947186297775147070392379016070027725911550801715675482961467164151065327233317636267843565928272365064977727176000912878833310576879219602704139130027101999184283081005701457668880244679387551771132563825905117510895764057285956205387702629963985326286902969959428595845634910677389699097707952544124960298694955837251388912002733680911435284360679518531956964381404988328842828987037898701639272925182285213013819284502695104635157392612424917605047285014023020900771738673258696817881593974387721518246236162588761574326853079275543170148588080148993524747629367791775620042717350854702369667427947696601189992666325449224431433470182026817899539366579881252682782794229333687272098082262124163945495753022104638939519901406901582966368868735336093824215198998335538785109834606367362606624092831549810892309367262776411121596835505409103653702096044198251709821978589361983410105818159299554943947942129243582367585829081312588791694474758564344339195561537801934146259312465527945580489493488758719799326825788005917377898047532199812671667037214431156104806308678061488132120440336949945067186470360708884196964446465069328167206697181231433962565091988613689454436009119726235595628780522509153314738779524138500447367918066573471205074691369948811036990456905352121991668375606131413988036596591167766096147242979440729142522143919607226735609166044725114135739322548391046601811221218531698267910348179268567905158718806702525343443694788866207534408251748533603247599246164821479601274591824171682683011546762612644918260735000973880552927961307014691714158153024687892143285752654169684608006703566725684687894542031540594603032992258692362179439823458420911333364398243096270877927791160055725135120869328691788595926848620877049206659943097470006995259271693456062562682431656912319155306542840683310946373417492914472889373519287477896662691577741287018820049305891235124422062066863464286484856009500033047925934561554267143118898952764029277250671900292503050890244381138749082108314100232386864110061817020920491658571907146634240218698972091757888444730458056299064572736980170437136994939827111576153636443855788241506108007251006265409503289097718078530533452111569272286121581032425723589680703651186824144961390890703343620677399761100961524555977212427502547985966806482262348411600645334342370623498446463635545800845163060449702075992004492145714520111378584249724233492513555820037015239326801517723951520383922029898313617390251144011571516058088540766322085439300769942526285669930539001748951958074253557293422374883958128133270458403442535879815651404100376003152229681779324822133638606946567012371674289308417501340799150677573280672350629861164628912004127836233735959939287233655221279257445765067760225915123427768828730348938878642421741677145837463610652148362456054249499360951770094123979490724219059735457326364544927987326513097404175924040458817230497890962075774406924683281853369106304658662048485543106934960694494903399943380638131879566964110336900064508777409297340106051733489107900549196040670917907177718767174848536405613081729175271976626246942220599393776963164488578788980096789010831369666558624664912387604328712819957909605711184046837058958477719650248272947727600240396895847121542726001283583106436871017399860221396260999839278792456616064699876720951907440758507552212884218556089828362229078073168458751022710246748403561869752154529527780182316517126182574220844788241585534480752665552682179389651152546284839967475268305583054345627038489608960002583881067692683109432538823676417060140198127620286420791639641498719444239555762013612334711973100111044208765517374516594054816036508660346409361005511702421158940065478379900780338012401818580017235261549917854451496452939194879121441987485337562366322261132352947794520661892718522962052775114829474424387840958195992731352175570538267759546726043069450803797916419507320553262818805567352046067418346945258560231875979319073363751839425267655975310571813245073836287009377449039658977770706650912331751541334209550739411875478254732460366998820148722603846688613604511702838492118476209591539211978091583621362829144818237999390410742441388820408266783764985900255912812408274392784479969301884583707068223948117519846949894585187552173495633050024738466411845348869884992128274357327423811858593410103415543177333056762024141055358178307927707970521747833187635770424439930906315704568987369928906781258330137039605954162068277389932402312951442143161418165296324744451596143333686817857990516094820094358549454436548484067390112285159405838582870679991960510373048047636425961097933089350075250120731274022775858449100374379013649213397924680791135965811573425445694024584829398447093766146677646939121993138344279100738212417862694073759751361843705246722162115256903162334372903846769541116542279167060719721797209921455091279051233075214204807089728324249310364268847986773757374931609390730399896752210065158408975025500930004703402354204862434361238401748170830461558468740734490031031682369930897831516241869596837041533546449810277625894333652440534595994646542393318647427236149146854266173355551841959773438068940191537007624635506265852009186829058038126085493936644810078517059269417278307886040880694499958296180099462126912054547256393456840647224402732338686707294428301260697750408444043635500878431658517032570176770566883230376877928152255719854868134782110314896559224015904338459069842092096501959987186272609556529850070234259463685353697552256219219900713122293750299824245510076296735772708190923949131502568506834281181441677041722730258059004271536401804522179255141536749065483949581770975268977013883267615526462821825645310151781705903527315089892470731268427589812993791933226856955514508711133793381494161511541016301413012381321493744977047348090247963041892731585346633724751222192118432954514016652445239239601195110953918277238990459928147870838350910652119767199180196901515464536779714470611814010021146395765413123021236917149490685213168267046612250519798983660045700863298155408414454716118667058942902834520478260491133257595444411955842903878961885252876279618814969582985801420043954420763258020437206409303837686965164725724803021114369079549518440164627711664527591627201239241157965703651041579852983522027287351364051472713533527733286116251187206203853994402996718586694769477431696678004672039140372496970909425922009879581688689233198394828377635040987999753728006621569499107544060832930986961776977037372766377262547805891784587539224863570050336276296015033119920016980726703840655969355131603465513217775388288351826823952857265665411816342010349183851978234715091587060521597859792180349017733983918662152969426375907525350062195846783740454211609233280839434966148897945537224027912534477821224279352308459474066433051279675505384265038247304959176070708975921048811256530698888578156556848114351359484531043580965703184482614396339432284945639927658756462360924518296781459038482549743547782094140624469918810051996413151464164684873539932777350876769461646989577872334128722160314836488865858892413192742907001410639766634572853047864213020305410954377350597647779188586517409824248413681502597017812795927168779412702515071129793342963415532557407069648033965962214114326252989072255464487753472952913974082004169178228312691977994346561507395171075599023929878825495143200552287745410022213326863057567638612670921554180305164517980052025064811168467438496232338210421171525023461553193556027757182732703478392934412976258069212603919810780878259680242590842302390341180581769315231126876097125635707249404813021826720012388399109113689126503382342363267419655660626893427464094670072483698702637285923326403584549057248755728931295121139050987581931702264410918601578378789824834846261338993976605850899949278948698824071542799220690635064217953147340981105990001768868220187519420769967943186097468859093378006808925062514431495044384561077194099377590930268559353358876484430600509521179586665581964831289314483133842373051241802427566249015688727912767515725353878598361607175807445948605329351476208594187497672887497130268056877316722846952083592491982831226455707017744505578888392508487735210699387182628771607583549856131569937722965184342766535970868361056686059160837375304666881853263598068610100523924963334287024421298868215811905941142556305144125947353830525580586605733531339746532181410901677575837534132869674179443426720553928373460748635994927844448667727154051839222154844553075406068806194789355012485029028227914284016068897666006085964599420215738186208074715228563962006055894855189720858840505236153323663513588193407762873443373936939725464074219041587881043972583345713297070277962479774548982234491418390065068099803285395268685906566222622953510884360962298845347769439472564696705288805825835757396208586815754222760937745678640212562581032053283192542897065744321186008429127832453231063020905715899542946909534412897274218861929896684741601604891139563756871211662234176038351118373839335674840302819433653131467126149001137543899327838943352887411394486803795737874672451679241747953758571072519150545405643597343580126601739246941791817718861424167004735709520764810132741065934217816911814299788241212044482953522290206645702054914803100888733757362003690262209775957744327368760266747010200822448294297814892009778068830639390003101840926408475442799421831306980120852341397974384261100112370607101724622100171342009044960987526735564315382393418245694328919495210325509223703096777759831141665422846826521748634869682733925799573286775355758190665545148542110487472070203502471263449279556252612513140749226108816157473399697509936520877393924786234806976261513305977404810667100939732108191804607607308740547303133996026891664882571671079487323381688162736865081067943019249414446076595279928476228879761457095458255285034572099211378689392945222960504171029604090798056242566214388627600185462948016315363792101615886143830733570223365657907963439987238144101884398801240443981145939759789654383051614004092993746056649830128633317301194477180831778869259031589295122204593389188624803626885420871909358261823197540588285134434639812115948449012486656124783584058164753131531807830192725901031736176852877899907632457984101830567358188612489314688587194797073407773694202291093584309802911157784597598315222508850173377408595003823578406051785106240307489833863269814213662495144621242723765691045826587296269962507764176337565274198260784228118714658520141881473135809993513162899669099040909823532838200601691754556662528884406473892203382989455176678866130509161304819867062047109349387782722825832477423617774881351852111271638168812396350382283013789474643129224503255053368084630909866009471398619612526155894236046248015678966379682054772818874427939006039301888627293325606730142605411298136492188602908833083069200327776873046239698788350849871395072864748167278581855313469085716850950285304459221190414791022433373253081400058421323538606058823327605170804020677620701042893501676522333963864011924323852546663896251956519461452779168701208789481305164367105130497925497227078482651315008559891107434849612970921134296428987845248327764404649933768118492108377930495003310831157102690446495085938495991382134359934951324074363599122400977173896437294582418482082692184334176397512734223540945561162154136970479625435912325850256077538888878159802141440918994456463077507293493537965468195259902290450794010820361956929626835248830252218964477466841484313913740182288342666452040868626286692166764612962920878965671424470169564516282936467146938799081164638677495425655448280770022906939614445000279746264173156975130010422282663541119640032887223543755697816658629669363905459273099035316393605224940046570089728284503646617595059841062929922092518084418181887238167123833005343404445224509881643180064632981193996968870051498360812319678552036886178102247385800283046892833548374801894271477801877151225661815606856584377125981584763705346269443828904224196538710337902097506938280165489090472566091672859507247000841181100445951272910039050635618405186523515284493159161656750644400579077329234060760585130246754100157755176140283632408481684065040749441649907888466464421228721194870197632646670319869433754947861126946458247476491563447145676880488858116123422147464359883337620020197584694080574718400382911988522151231835216942059468415331870790110220076326917031718788775052269490855011584431130604562702478394393279410871053301101715782933024522463996881204407217377000067876918783204979807156856333766452428167154864779077991760410033420768177927497445807506784391148517736616274480265495435832994873247917257299927066755210953002605705525870297358317017356349671533308889931965906668622418017703730084151399588186869585204623284948379596396942015756897456191398586809857021145419803388336726840725601224047645620780092750287778570867040796542035799427448913100552356429489119505832103170372726676520300263921364089862493984471067310780118817968443821955326310965582123901571048339967214916483592405090578565177905177568801038020081268876513459188871970099143102433177420417227419802296366329410554743870994964678311264311337916396269553666071629832130885566895995855401126877553590683858238250048804935006573172250701507369199190366716645551299806612932050843169501666074988326068262916618445516172090560536944254220859779472748527889574894934235494526282557128067752522803660371618007407306583886210652103401562082903294509846178858952933896563783853709352985730369899846946841609415929791181022578070462208224522019256532404878079218250400969970513730640901009112364777609959540549895491799315696798441816920317208654235858169710026089517776637953277912872320546039942284900457434461987078113290818226838312529218447414749411883640153229668124249614032878311194140587811637440669415911487419235449543127866851627439973155094961192420030237199133513565731863675292517447105116517965662849411589961610684632950133004210169183235651598336355642872033176812939578763678821802296958901585951188098077525446671692162073828572898552937711982096888219116545499384243823680166710180658821598085543991038630063825750090169859360936506633649726600298777948920949270258400513960178552088711237705767493250150378652290723908244759207618561175879342882678537206449865105044784067676153610001189359628958399453774086104911811207309760234487407397070826611469037865352919237086909795475850779783482023319719738161035684318040503186281164724449181845947273955719715698330472481228314807315264802444503981966173287978663784407474177287589156699875952494171931184411625042520431449507885420253679424106310893715039950275194986607862907326874136700834218838041225338317610002232568921079812558052585244123330458058662469167641628277402497823264960703981662949671731282508583130095965294644493491314874791508512945541875263189423565729494742620728330221333902203611067690161964055119262050769596342682453002317533637738722453536390470223383632770913807308640890911638836452074300414724327475185206990077359222304529041740187774805375453353192615392961334102627500548857189930511977839152567854383345030087506815901949038365138968741580932998065022786239222794014817903084534216125035680457936003413197720760436588487263917341555978145703427208437033592317060797531263445823637456353577451867115063903109444263174089799508847999466905166636125609682573754405807063238488512997312453123276278288823720278367476083656321155547993701681967120821292595679102884238921676854692805002424516340747086504532237466781004781982087928095237052580163501357353164642310301167295738155529493670253842773356442330201377231320249657180971698793088269045355140956944314895814634404682862153047409744127904635120306772246617738954004143883098230214409907507455374861681383804316511647384447528955969949965559043726057493610863539856563037275703885563381367026791173057467196230952241755121412891048242874254822287922520564591897949467355274074479094064333683974174963883559376018034131151841593324084352252271238878003050559986839785746351519154848080051185707439935413090448022158205944189557259348447805218178270642568448561742537146372364472394181001063733172378917689772993018527506557897739434658674811304961715111042775084888180812658200595006091952970676272419124181364001609038047779882439778340462798571536813154415264956667800739004790698371560033179607430404895425776828641456378046833667531072449000666155466998180573624881978543612222935046182421362475447375765919594232262267375084647227835177476831812797532015811313761485547858905152369653925310870881811547359361716128190878383322729256263241049225519517137588787698382998237137815428475531090361218378568223042108289230375182245099497595033289054245488357568220379153731145012279113895404708216940369765228527185738680365179358729968262307673784824016274975273242194600182810167677107854309683338433967628753003607216535918385220843813807615268453177587099789652704570029336377469471068628584083471920968555681519909593245498902438540542324981988254345665784018342119798484186013119759427886575566336013349100232189991312349548240534030116320010861042381546314990725368298032662288277421533677107310307915312351941415540443854467819328071007078014244546712365406998768137631587368930168536218416256592705211134103718804896024661935018361197646823327287736146104469879323021247648577337701570138060502070183902828917199297495423916612682094801593164968864488816105252839307026996618544265823170367879492593119372011255430216441877676811114451910795051962360119641470034822098090628948720230503335751552329315701249152734418959446619524022779803247103101118251107865333710450655724646730744791902080131528200894045041484845601274709049434818431082659871246034139468678857866603717934081175156133057575846099430887402198216794957447211341963227520274250374916310319937134885555431166328909353768071696056804927498876932237511424965624834505404728370034637971010305737447968958710603748726685271760819849573592301075538103926428049296312002452939791541779600613232440826613343788882111460635675310218194327136597652447921050265858051649317005995289072056802163168100420166594110321849006886570340915230421177774375157282410247439822505415778024449666145330906063678128280332744581213322274421255262028966145583797461908935078087619037576884549634035111800914894397192511528661904377721693266224080046148302741936578307273896520731349921139302180663151103599833432395358289788350598105248748700879419741478291261203009283800328794429924797154987194779290005544276172497678864411307252046924400223438730212652002232821656666545935127876173741537739692127967346970124222122453075049299729738966189180242410304534869017031659508551598264423366510680261163827715855008997783452790802371811785637371938312066347381773557030630548120102199955945801150722573711376177462251924101278312592763082716846189009586703252382982020239351422677959104566188394144069081833760230066298068020747005637114104184325949709189697652481430327990179925849407496014249759810021888312616091607134795342327743093794482721284868268253062468708154378097808752278940479731715896916843913370913593362719444083011031338393561897072105326141416632790827940524597587299226417278623588857507692318547377990259164848450978913561766139122521126206377562084750363544136023871701090996018315705919362828515701763745654073376726887938960609517086273790033248898563813683468534661342844436753425628700161698114969993244081604703841464661103290427246653090472692397017319363177218408484777321170278784688422478614401984163587080268545693306545761110875478092545933324991542777283116497100479498500820933168468907470634829047793714728825415784456698663150820020209409731240013810843243230666278139851370363807619658489470596239440348735942074700573128104293686419467527356916660104816649584713947169793862771010814557143762274388249884197722905893678760564422884944461219164495154528005064891864997097730675830043753315798031381668268113921541105780383030844038780247756480294024413185910490569108012257457277707162635462654520363736500882154365647222816813694639618516008082237474807916352816488800809567143956641613711819820802145163324872223138712722434533915197023078088148771723046683470711398161307732731644310269407443325877924224364529748317405995403708034475728940819598886466577491571808319531136224824628711025202723423855573665488849436326887836944988687163311668017871532485236802826029056220567114818085540911683052536512445458771991920675606963147871022845341472485783908022195369964555142121283959419032823911383365331397236976535533304631056610678047968380368434760478993907990214564529419509482178520005996014970934694629870386610770182963099010219599653247066069652172766586736064596052873314438868799609088509389679482611344882415799244513514660486391757202052023346144986232302419905941645793782164855233021956660612737987460397528640598163836586371262466145873656326914586453288600232904056729433859643123883929584600517103410399566097091758415793943504270726750987825171530831368907717107547124624239638449335974488325797476002977569577878064648361577302715889723811806130290335518201337234715232759082283681047457946618777192159930965213686294706488107242013805393847190905275132709634631180421040215403699161985758145509529533420203175346296345443074516761078717158769560383087410758951329609111837974936178956520979868397775580617622868157251019007863566063198282652511874711954233146329569436474646843941724401579639208180546309562913840565874921112935487800001227795785751662949561833661861835179079874564802047861223124509577174343771245988469549650755938734650389257518844958928261700814993582278117005915060776674895134283903954070261608335809398925098601774105988867003204711912691196221688916321601298501122385021736959813678488122886398108520127671280721155318157378423442550058894802941602982505894595033274314512462163056070084657567410132180730785304066341010378080341382588961567962969771006092883881960732374968630468479469154393286459174463042910110585747782888338796716201251895008867372716955495379022143564258100783840858542104166387868501606936386871639631478898328278583733424408680116696834937018385535146487310059220381899191240501094370311318954445235457248634377292600169921963994746519098669563417631007709986357484397182498085276589650576550301295206562677890030248827916677449959627116924800117517331845405238600838303262405884773894273742565498814084789533126358077479430801836637813660387154716257530457407768258598125366903100562674855726599907762720515352815691736047412766121016619196799451093983207957934924812720671813546093700579388619398082221713735182452172844289375635656907082360670812886535734939933951847149836597596556509502835921159716579037523463410148168834557196155366461786841255849829203644052171166809621254629304531463077749446907306289515712318580159151677695777743615459772078843228268699291831769501741135420615266242385371753347261639707869097510668749545615007066605853741214978531456493236116652430550008651689607406683939910494462403613896361521348460882190502367350512105130224367122054950092273222520467583311512733118698793853147882700595729625395829695789598324989631422985478581697608760519887490563837030307130586883254524757784662474072017808802500308825147559964424962827522136481716828090625247605145294863565526397425232724742019957645441945089757263957126988024795637572678162661789595875173248842403712907930672683468377097500567710683420339700156355953492621334500688198651833685858378764548720679515329214988728361832492180390369046241443914795713141718052360063718747099491880119561075150449308882400398671515875987748888744003403270842026454308798434128246896986639153282280322338406966371014557823765442559139722275084265786307903545495719090296120554369566522285086650835021428154549777589965417313620901164425950351591653244205198839959666498546823223258476098440620888127585013018062320157247629093013847315697170610899599251631496346298785160937200386826565674706100157047824705769317119214378726577663282300306689999825551410431459919519390331465937032741857733838270299136298564503417774568240860244372530091446125568057530063889658056082945710328285241992377076863421076331640151695562403773294891837772091531259073344259093465096997070512435766735983591835579445742149478253523052327177979365551214570023304094280406773345225439461780029554006656873011230929044096320662782548502989785825152110017025320911005830993804981626397583255492599595678542525861633358056767617315696885185210449418408664297776206995066032597762795976376691320202346748880616190054252231222431237773872688107506889922447228907813363954401819624646537109543857986715448272925315737943575758577101414387395049158642632016018526737536110215708294907807905153492624658633508898263290251124522556776527255488204660008291430992464040489477132327534895183311013828504199362391583835599808404854646910650971483614481941474140697050826145594940737137988286201496858642807676869502577895449014086447131930655930944897084877048845158032200009012956579906946016643215763976839389093467013664806552470585713058631148018924892207906927092921635838272442399775168020299971618140049000135495264800223530404805112060208910695320188169722182987176300273756720829433153402152228163385855836201223726103872873320918599628181884628400835762356397927097746434692166428181296337673236324280970664171748471229289355068368268902814991280954654837829432289842788329169890426513956272325144309881447047592248352207500331074328832284834996928809463029152238355398074169125067126003725177061100399073659927594504050997208733627089116604568456653440467482210581979560623576164208027963015924876877906688376227384357748439327809424550403281263579430547282730967479333600558193569853139055388982476612056856379883666285517295422046866254055460694756400417549795447489109300589375860554592478975075691216877944470627437973302812843290162565219754251643675594659357540424136445047463101715107357158909303889434233073635437902052829744899906422532022758153651644947330602605544093719229593765884264959857749628294046661340350347392260181902707398888025754447188621575453487503186499113172887790007839458495370521918117986132217001630493737799844064976821747865235504405980962244744984505017928162804948351477645147244625035975564926145547137595762787001571093553146953571493498270412418665217673200566788753455314424175365432685456786662029268722709096408157748680049339211695851154825659587660241969321039465578370548674876856925753618008218597260101601042290739219133381244709040225330960167043139260997404891853802826296308923567039905316893054465529200902361330091043975251913139525829427744890710282638153182043737236567751522579329360069269545273622728429322220771009529510971090821852118588030322007992802111173007577649150385572191177037004509955075772034504989155071757222385992367245090073298002062449396597086835452747311521653229198562311754174254939536367141409792211992849185277306242475074345402691002554412456470357883351876492689466607304502383334966052389673218571769358069857852055021692871028308268274263708519356293615318593335255761440188032514221485487281557030247907771513830818463586228248025341276721995234690704332030025756402892720649602947899388084207513095146951737618261082886805419118349975808450274100316543081207531837635028570804980729954396032607351607779114232224918641861288184566036602910943825675087648164775884042570476170314518907804602093207316238474830465907286061994822447730490581704573088260237118376547293244516486883091267371954462947979335804760594001899603313394000131171343006216379966781868957754151505277648962164508223113800849020025790177402344748417693168542945715991257298100275222599864830004399198151680035819379825838995515031049877650281372088222672745815909173535932338456587835262856221520007757728489758568309794983082462184972794442566135300391463828060928211190469917142306974131515901882546084958355889785020212279359334257694412078884839863607240109459465532946444911387540446885234168640971011937814493184102224623908667995626022955161797517443164779720500925177350089628259336808173565284865970734716353145845231739266215351579524531058325814474577493210392066670690072487472137298485071627594037368900961135461067600118755842852572429273766243333333836433784969653340112600349225417835706863194980084230253315788223865932288917644123402824977584840803713192494029073402862657877656625537574737451647983736764261593079445229916074036741110083807415001426360917853009985562400124778708800589793472683272318989775611415552169559925912035612503246479238089559825029068936698450502078825229045317621092265703858923852013237388779026177154658954294305566591074437786145077535166811441207733055049140275212971942438610473817838505411689044831698181528661404240393528477961372966273956942520896539584414421180591288777348317629014080619565672171372436424454278780568967984101779781469142083373145009075321291539045558627245850703327763374694483099798545708162311394307994911389548559309826977151582775450286514256760336223925283573540255266894649615830905690984217650519230333385186772124058123550175756816650157288105138084519215788042090110673428646547250549715150215509982468890741547577937330130049686044046111545329486490342735803130329494085525420057385215733942436005138345440431232953998396017020890675613735067747925235509058633995227956582974789100475481910802392977650082376097887450577110421102092823345384861183063816698384571935074986869736581558730023088013444423656285624890908545357087404119281344030544882581872033895783371333662358295229362950001386442409491154946105572613392343343636315964916081307111222055829903800482652673720639822379112366436349119692019802473270648135035786465284289850584421308491379898526302009119125365852200512672385019095943833353069575407650901390602560322395842142424323282007539920192327260736391619070430828912608434526902590114724419607617500415373687833719601917465261310428878291229847433768426962801245146862360431258649310460240069590009189364546817999404564486796641737729037762353056986196269436366709070206562457668747761125231784953228930133412877121902578909876805518788340250056597649480592935023885573028491027740622228428918118013118329477996687391701433075108486905717797034633020040951077641640586823270933342804831636603370901247366986258610014346341452837068227653014505481394734794393297177919363124626168975020732984919655854486092723121019820946853800910606489909431031596820726217269002796824028399420986661746039904981138469259337763059057672743319900220116588996692915785479125266557479339610865190788420902091828204977372220550881323213190330336551376228126339055499266797505441355994930936948909254542825898221772163750783005436206746507324456149611429916836385822187717702134477864671722826224741210472312645057739507013546122037919186634546131506641171351866162056210905546278414493173472635478169809792549946158221520479643307700427363462660959078435096866071353190986602406068830937552122269577539859461175288639583818372154767742930447900460945429969523528969276936135175650031657126545448898062373569262842059220976939544430090376254498734019534791284958701766342664216899348593335352472209678932640865715006031624189147529848075194734709367007167880071487936333905714122329503256201158571187889613832752244155458100844482697688568364086186611957920051594581686395882528118871846382777949753288201062855695377081944833658889639182787813917355129949055374758793900211228995830655160039697043666855184280354180261413579166638524763526986276784558950837929134506958844990415302019072322115296296761279923640090247643020139369144611029774747916947617063359091792151234934425990293050001973239115543700547397060229016368965965429043264616329496048902873875617041546478772012336474349909258746318979471539425190255902728909230708518014434386831671892634206792752948645913121058740910189511587086521051154526704930604344421111961818185624458547848463917496402267860636765606195289298389298786786828406891653640173788685275376615413866406124986432270998895802893219602385818620022445244957883938884591822844174318533638846915044522715512831949323776932316259735278024824392554917456590174631637585573119610183605925892401329446396824816081279909522064122619926402990985575125446856460543308898292952880488227800717280878694062755510967853723183978681185625719846888404046313995495660017232162490491978066881447962229704260212300396576684624147351596007511056469114404816500600354720172541435613025751368843495465708435370891494486061055356531897542635651059458272765887745842551331834544766059380419555589290538588255296581458822367462017307019931164881721268623110941628242657820009957338419695226950004615186907259923667437361359234958188473117094413247781432781089725537057208461789710703863588165499721883498292330396994017868157869748352736871221876232563275258370510997148132666286562647302814028442589560449315008155009523428251644531070920816610568103006720464277762522408296712433989486591490640202746892852083105356671210219090700825932844011585319124851639441938213639196758489131864696093565996177370364015468617936103994120682979474499497492467261911458143428835636867711708272320427774518903157117508936057975660512301308950354531038945731238512943693312923309127832894492795542025822627653700984188971813213879508837179884936202760898594829405879379550014349602242907160676805482916594956930218464148657899683579711593101551176206026809670279082908995087783127785957031612492214992711461267811401320471170637793341658064340674636559414600181358523619753888739223419181513655372073695912597703878241515846584205782231531875957127198378319710105314900689402572591632764586182545410546645870772833894111977766222180820193956126021514146843705499954937361566084747086075245136253848110385347072952063886597585267599330314518063880251321198077994920206585578041387708232802666370299467493646194735537612429263161562094342911841715776624789800673227548457202899778419468072619486084294341485732944020554594857263008692646785639196134688408681861147669279185089995337236760774545648663399379723370092825351670174241914819149054358847341890094300797244877583514129389441266891685317668713261706386053552915162361215295148501337688505099231063031623296418581652807064172759880301601576950939764025241859857957833520019176890652967449235587462017378083444307728048230454143451609164541172376017273823222985784009242354785161118431721385777821917102029194012371452372298523033172063059566748605035957040534729250329576107878370722377311915169500311122835721264993793222653250170737513783022343453681467820019737446374466143830213048332068030984049067980049264821472826882704573341198517808918476956874775158762782666344094578892202280771270482652852372930177531884425322313731703338720699652371230728856698378949668617297734698391973808947160356639970674347447003114241388289523132853325727998210541084240262790686022320876239862732315593550281101683394932522859596778416205742435087280159285362718294342690531076366950019424807969564117766821598389949437514615912094677409561796380856134819585762255819448253416863898903958598110328194456543272841684131966429839202712232043042906147719970155592842979943484351558013738460051114990683288092708113867293274334973262090203769869021592404778725675292545690827506434597818873824418278557076743010814452415086863227259810454137852313062680502426664647585232958569940421715521476024755094964605054651958109225677154342443946417900039111758395163614790846064789856359597819827228756289091714201304281486690374729087212214387393476780020021910756272149506825011001492881287743543237953923937661616704445966070380614209636487183212156573066985034510246550885480868251351115941407526968911057396643241927284803254306271481610837996387684003459101302418708597899550594706454630648575480696903960986793532869152693391054096307037543195494468073865005679187291944845051070490085761330989635276110326906181129078960075319960057683864245992563373607361703088531883917881202916319263955693377907478348590692874561726054420310533434745274441438527905351497314671169238408375537511156372119475404822553687687112034987548958015506027230105737596011951198135039152157243688751549524647883258889479945721108412977443784494523174680559811013971013766464718884276332108658561200463184717374705514456823462978803782939500113417588697636970063069587166937394915801490751258305131889451209190847565039529866677403992265692094869913175668000299676533183458879916728454161002054743114798603185664521885211871990015478360458441675522831249133511897130076705684035824456381725214650589216509686457929251735253749611372419912510239409842940244965443927751001659340017897312764126731644919269380605152955704791544269334955044997098626399037518882534261182465213574398259291542987153352588519934506495691516431930312949741796256988779449067430422260326511654782101129107518297538464602596808991329152339491375079942569279494306324310637235065540188096011923942498813726708292896733586427528809131137786418822204252427484944072458975326509233745851353499946103895153670548628730953716020142693990891473784005303056943397913632353811795843275116983792794434976865852113565323369525756549865317093656935807935859085360064272899317298082202976289100381167866427748159567724812010711403575830594887619425787837329653448307545907695954863245051721301985507922645181118587429923440840453719614376710775646905291481662530340832497636065754615255583675531751522405023511005674343142753467470735013897219423400849461338416802329834591412858735297270976949004824948365998779969379944145084562847577372730103007788149729405991661452295116351456259439115121489699612389012431616504154393800743726591003407712263793839809495500420982537462113111757434880779713372409411430424414289118616971420107503202825672028633020776925469778984001332132782711868019372312275576998224471823051883456549713722615350735201765845700384598867246102023086165483064796735179879576137389754647646982559946077396265349717002336438212511932672570983894467147279766979570639217799672995611743798895736004818980824125825313515630417148574589725887980954066150192269550177368103753381559255611960971550026904892506985505477959162646574268429052276998168764883210750648843289033232116371019556616811375862983518725129081436273220522254709908224878867339387139133955588431560610089409522608875875521347052832556216395506027314536807224733411734572951603268439120325022801218622548373603456410614928947824306827876665554354574694032429700027505821499841746586084721592073546700713703453553606225209816626384928227285432802847591559528864735278818163556069698728629870988316064850557724155986435209612988403990952293968780507023481590762717877761748411979082811105444482653878747430461600451901502234198221219867920033723876797621702093498410196363970688959422498773008381888952827308635661812868778498788879679921120185624621466730246243435687603315437737640944822630079193961813882276755693152607517536943094839943092306447588875993623340907550233744618542466491106498652195084931924434793404385494387063474852939090531020498974495066607128527241615975166588909697329349556008429825742538855304368501048264251170978038965613389930011333232852749889075614269840396882060248429396325767208153937254204127974882398581886259588384587225988462332514628953171597883468041310256515880292103189278387940924707721744186228197832369846830599123433041445831955388760419935762659509800945782166466082210244764451929243819470363234611713356317875965235411711483124490426929561962969873280155826380930884810689621394332361522301985579973340768057282429351203181206278418892650589634588964319425436695368463428179826388423421992667415704608181396272146370683967415343543589895705052536132981473108924963458835355750111875072105967978989076833363065042424297421406849508994021690218323133126208317772980976521991345477178320615406185238475328860011927784785767453726684739356058360029574476422763145294998508026049476464815062027644485327770533612508591492409748820013968876482029571493351996459568832904939569355612110396637561332743536306013228215746812043537846951705895135313807549082103668861119689639358462698224251903610990192528570899861692224877636480461314482386278948302908948930308009392463615117724525110175044736219864618785814455372717477817879641268027240007405102548529497239122365973082742608940075143491916994535438711912197103738076790241925850253688827949013351233386273622332470399775808822297658670824352771049019497367343968325168244610645964714879933477194520980523340924531658417977028968564147285204750803942067828123160643989515732155270882632825896780276928497400407657843597468760180439302915262881235387752226699555058132438023077513943184797147315894508177915104157036217399426013560568411031908216947240986589574575178734809554723985504720672627687243108095204542654929968330984867181468898130119603165366372951400228157656758559319086421452034585352909494395984517889818677117799114180617983197284527206610967192141026696047015341074249164541618952914436641581789714541076895123973329349229854368513264301627647075310504543993623922841118432607520538561229212981642834825865996552841547172651082966333091431999891987722148549451929668109252721195741885223508982268811188090614692009023144397918838127101272903605857876133086866652941984131801430890792966572168278980711935676646893833864644291639080593060626297085048726326028058647977265268042723460144806448283015044129427313788624436663417903512103747431372962792492449551281623220010671813468797934532494464464234217091774658541788577785103961500567936798905051519239721962775823062160523127171741551926521849196554378083205090817963027519631112307845716411294730984222033526078981625958510662858039699077844280354689984634424243618138850454902531420088707577414507119990792735605260801291832276310650618054059427678829112405299578460779859069662936836909906441642427282530108596996071195161144821955299437496403928156065956718095149291167674996354191617301379213073945614939220535548545897988184047652583933202578153188356877991575520512847335540469054459890623209423803404320780267420027562360601720974094855579851696357718562255839766143763298982776166769548333754403939170430590173226846803607532100591970712156075650855300946719578016225186864470019660437170067317040103665665871098446664761803716567835472116225354797143482577566929625002476807154130993734656993100625746269249535442075914018980693293459867926026639752368450199701745421713835832303626119538660564127999282421715731249183875818984912807210372441781472139118821622898413947883922527807855987256197212852357958654966636174031814620331046562904342687138129977507716943015165921800351988786731089995948062710210718575659999627105960008130411751401907122908398686081138853482567874499595078862247394032786455960350810295221471315668900548794999847989894713997611923317544625663592233454475708486166329681606241884375886284776809709496284260364377174375759654636129739171404145512630019861709961909463551195984589272441904692611901891215163402944222533982930041772314194406958665741170757913492697431356453621126615617861964082889619307833018201249921167702907555137412011923654553333924773479614978051106781859739157164342785114292284508417093038027994211458754131316318115400924734433376032979087960948572041414976953706492643530241168838761545915847784469154233137636423250946215860863961233181595994423010959593519555655789349757035244355495069069756846307685315520611334924654330912972389693361079139466627494697989621115561704339832672320041390217512558847240985579968512866040932104426650496497650770180916167958894312110862117761280629694756262983368365582414785816499271023006466837403757234056924549965622738083941263365661967581477385321675076230226352543715866422361433719430607998579655740106398147116544837523653722804564746705179817157665499778048863216985981541514588912035104109370520100562081313885939092347456842362700959397237804785922138434208037610592495395765042564136259601543600432023205727037472219052109371605401610839684291784155746891545802955264461266768762348008728842252044390110591072670208912781115229922846191968416542413627953769989479240348173977207244847799043385183133368304514925386880343312197519784217380945927205355339914583305542310430121903680601374876350020343965521040989110679998293576039555977171111079554916938272731556825319824386693150249106323007432218647740088598233097003175941719209906198273091671789896442222913079331430180330934454098349308561724433633030913625919156257825163080489657524764020374706590942180546649189250809039794692521998288068509562857607948117358036899342489421355477440766917889223995574779921076647379435543069849176575135270913488922803063412713184852564579825572233023084488117144044500923772643091356170159918325275101118283530907344581466086994359210171713202262404030057235763046142091721652029110375296563461600601850159582390167942932827542085733342743808677856340977766518848248488404480836388440455373336320488780329249003009026963806094991928836160205609332528467325752253390297069878999184661919897436437829383748858341576655082366517409810892411640699560935937116893346796089906050811126295931955943786013996350393902300987476280515684258327449947807114340488087956447957460649182769219987616536636677495599710791746951344545180430652578973944118356813072046188615000772733060184474296044409360273340947248335918765915749416104293024733871464783522335921671335829339893536267131571858636172477247083829767555035265704384971286591672227893623088911984921849288241225139037044489107285553957742711433951995993810381527810189669451339852990057285275191647729367771861436461514148401160754087681637725242691998690365114216107814612028324791703765651400373214798362648333803755651802964296470073854062601683103772243545397404619550409588157645005107493966017789123978130295918406140063313158768197400274938742990601387252803532969478769488820110930707851020763251228095136142035018071128454242583033073283244219631998164386016862825117306251250077132123971509969407770142174518102690149809637465911621043401570899199923881954259458052635042181379214258617407572483231057288829605090385740556344585975225538235538614617785134305569569018142726442168575263289224391963353424337053502421123773640348549333803662454529763691295099876329459466631002786491544658125440911433127810399428266126615352248811264602824702248071015000017820547291595861622088364799099243478471740451183689946917653940664102243882387361716559203794289977959892166445570856514115319938316250398355748502979129421877642470072524447633214032497011531352295102569231332318123036731436222315673976822112254921713839180125116177396753299488384508050333867623429536520033619080202769703748477349404831664239727865526565521138222943366104577618834977193685157027645393597944423763516179864684833780080030423868820912374617744269779605161305496966989881396496731678892504455927891284216193532810808609335876592482947925026280338557233572790220246688941532041289789955522244062155079179230258855494107853177261539691395662693137786842913010393026201894215767193595695399410157426550059121535608460315719380423996353499689609777314179567115269437257172367489194591855563028476018685165313911915655097418600136719304411664089106276755358023966632163879366910729524752032588936848614272707317915357613910002805069829115347681155986099970235404983223724617004587515283042117495185769245720471953945094610094174965411761938490516144263563512057904771763223778836053314158501457283148638877434483053014316083223233694026705671458818899492792042215144068985638158538259706243101411369826892612002664290420180908597466283090784232019716516768342807072067843097931029280523582181891264462260875722372595879479157619462042184317671228252314762588109825889862164473677172233723637616193003489022039895792804958286568271861505405419523432561483925275929880729345521253109879470317391875893579420599657276967420696178243870914443899087607385889952993885244026709868843608822306291919378204512960253856660419746626331743395330396075094056541786850595707578162542200108419651033089205015680361177742208873555450191041328582715503986764769729237561568970061504513848137587265966307228350130041879458470360279385914418095114472542100118215713833210966158250849129863553752677843526074797875905166008727840065603559113783019563565091356368535053628686982350929481281980544096326399402032101409708776478039796686620043043312986675881804171333786257681975727647150839915000898846408704507395414640755442954533395526337433305500815308931650638195579416130739055251844709249366679161396806029834415868690529258114414876383477035093317121958777866325193492751934762271810892600909342780268341707068206975449734179613009631649472314127814257854852347366263696961367426208237153987303016639598149350643798071630213350986630714745204309145319511458259103225708747311393551855511445290813797722926329242691047463563698861969116264718593164499533616134924433366257505335229762372374313103951144821855892375718221333624232078644082484165015609086212331172967605442891825380100601793040474300678517362020504639473527984323497021423543358346890609701083023111018582838592570464506089521086465355355654266180398981028410519449618025515017828814013456938674997053949596907791269064597131554738991581522883582837317785232019625012409117373877243832345302995167770715159348324993434786465922234981013098966884631581181411672370784099688679010941090713074349887071199446930972939282163298077111457594023165519730143651668701690964845539112412148598612934729117675405127301114752229776801166602610181533373623721450685095645704972976000537450659611104349098243992671603077690206896732664153324619973028086239514125314748018195707368698185658672299913659212416870928514311691347210323052943058037562564155634413903587610998080206326233494500909170039191375157755430577078390076987383036862153591001331284349383051767903492797615662174858215178074649407100030346202470047402717457559417288533093838672861460496411238191368521309690811756367708080241441042060921321907137918776941058976255753770946683854423126731185088226075479197189960062053177838420982133000041841832007314004927595805877121214221181693542517847352690653568144865286360175092990297415261116299830737065079354294351524047223356662344475382381666370558435984675678503910162207955628807221298681081354886661757765196161074754339641961254158756740106387356787331168395702795976283710435419415778671217636824202278987942382465655049755979135402869142034971349046735406473640031246271805892103202013116380940706658688738670738484521062486577101334210260548341779172725334477418039569666382278580372369831656474022783659676997327450089864032513821106534471022430020332386323271373953398603864242659869611027639924986444541306909076712393035890190685189094065921088645978102544708165571750707630765860920967573825936365766048469212744453340651841327119579892885400258050180198392018497238655512268062122387895018503517106053806196734833191743991080320293792146098364157536089976853300020203599349433545378237335331712766735634048917656745677824393457008819521410711016854268396403742540724777551802866733295491321490853293279491484132258217894545934071404784625881442151130647033701391272725628769154424056998874480402129816228688709662005953870180702558189876905692369747571155462515900247547739636359638094615830591874081492919524381593492001924131455255110916260227092579976645127747033843508709705816022775583158307683032938474241105615296463179836386603755137580374587908702853819335735508191383467453429402785443247556009310547457738493001933932336778317794770670396807827921872858320566864757993907579180690297208081986143488827227563591331139794844990996149305792483923394511834164586157725426037679825516277352449944989745218119494938915696522339266037855671804198461423792790660288929222695448012825349740372556285395905543952388811470645095105036976743662848783846103269123966265509739092305537744684682468793455009468162095525979338480756258511476146498054151497155168410126615411834472530717961773129836057263877678070048950163122032215892124451229409892466708387135493462915043006518142326296106392597722231315522770384819005856375341985914137266556835019642816501510739833353437781650858537717713696614174657361329344202067634705037113393679491148539823204664401501719932909944936610310788192337146234121090769134021554837031915820019926392384161841532374792376914313311902427449883143775727494869515465449406329539678566009606509050034625290728619706158060936770703900488172666602043958568785644832145940056416950154134015345196663515993724003773890330034265298715368279618576036253862525360206950735415060552482561855100861233226438893488710250835605604222951997927321166941648124713688110739081152442087523996450796790616728052584680354535739798907018519890321804239732594954319065053210897195018997623677164263174661353759509484228334976876921262222729500255399254530543242434245855326268904959414989482235586852196701543762843320442947162255113379248629193536059644420229343450894378106563521111860043721026592562249087278096515168413589715866696836566322230703745219331174253749908700128516071336188286307414048072386711716738349651810953413369614361756568873155709831025473259872195957066132499604699128276304842959623226028893518489141649605555798077943742685531189065251677299316783885164165619215523561074967563157965460036173619773139365137743502062261503809037599376775632636195083137461930059113039693631620102434919053693889565582920341262175308581113428751772807880367799028404784715592715755899960267835109059160658277029078820504554094646494587034675740773898936226483158832052312195028440703029697718818456647046850923808724503666755798472701276047929577255249198166295114784130105358373852696065799306249094452077818362647369643043282076146440654854814838526389957821533828144364470585301074774055223498651943658281651522133347685659170885275168819562403142082172695341056685986486769904275543289150652266243940816950755372347382170823071972712639954525266453691481877327128933345208915275322651471816746654570377012763072462868867603447151137733389145420625057026062770112821000199332990904767039360665998544579220988121769662348159467415258999629922369046525615720648541129762218752124032348475485297149528639258921741900632901892302711254892024740616925505218607634500902172100103431914578324160923723301993568660596509227140619519167899662463471042376687378748043865744248915879683034078858756375095220312199848263186904525223055618209897204998234229397455697122652055484084224063116269176014586343791730106064560415582502527305667292176342494339270566902486634110979439833825355570065516764513187559276360044308102478889938923267248611892276981137054970399586417341618224622948546057426970943158726089821443868959850158988586496689485004629529095118905653848994845661615365512173613859469607354767750809118866605346001744219460417058284193562709822841923049846831869599576376461111132440908468816914367302091991287519116048793894700996776196470611920033691552335698433244027161421380640047508707822162569854346094530942733088228400335966715143183558347247865730688947754283696731506341143604197582964517036282151119308102642778756901626863008400369527174419734312749077568040790458564729463705698854010430337235965582187248610648974619527675357227283351306644732356190516270015859896402483892616517136685011420525386952325390165585964388248400050902710641273360756818304384687084098183319599736739413683298178237045909642191491852446936276764465859987178733193319846296045521613935263124346285640163894215969756815840781473442742595172286308358673244954909571464569980509231572583543955686466314977888590091301327690144128633802183706659313058888804615364566653172594534015287443377542749791900472778822290471145124418322875630100789885577206030566580257227305658992158477700696300790942515605499260940921018261987906578216071465831141357551320550411008841134042405965595960973450523908393226845754813243550148824830341675119712714757290489285311001553152327137087395891587301315002024941526298256407873653384732567679259821489849531137617056433642499639798478356331117216730160714175746906527123335779616280897699641782041163590779584487025457303639373175675403654379500805679841911805262566883926419014279230087256261716515340017230145565035493348370376411541707835174573606242748691191173567342820514505155838218878570356257235271235531562719711072008489704260092438243234544899200505918714474101869588112116332648434246248806306913582001445000096685646953875296723554743584390488775777781829235968762116897466945979727451408667718634243189364568698811236052159089452293662008700495463085634518003393767971190485143254888290975286002948254730102076456447838721001761910013838308529590131141624537595820933068655741330428825128639222276725873672292519430220152756475683936321262775820647195619875025374254754690286428534916757525944815969901612024816888118091218365917442602446945517249147241432513470097320873376433256599388239838549682771907084713850838676420603961662201916207793697275509243139872235100402904756084907914294178186360144070720770052391167866380429418656710858668473787366729340598400855206779767490704502911335976177819802717817868914978463637242765954510445996742376196724236234373725842072099944714951392197070972824237492579539553463185184932332634784919075627684655897662003569193880422379360350941769187026926734608007510338231947271142564600770103260930458752856205071932965903924754996829209887595024119301273660459355488008312790228549987524071252040719419688895564216705827323593433827917050859348637547443358705780710403979576600998921766819300518552605085462907366517360181436953788210163436228113048819005416280793556004804683756337368262879782196556208005941662424499692740988752320953337442122497176834183453144801106445365727879196622465728788792747563497670378671696799277892180295172116444073388687213438026490899404563522303204792955278736437785734065317115594710691970322222611571140357377525093453502779940186576013777781062031565497772243887372295336799114985889218999707941109807307381286274082014645028413614368117744983724898781093344361284275960985928010309536434250995655810002590641646718337044859367727512732776837253033708706384794117244992423728920307789007459584980671635393024152015589748465699355316830606669379162819147850533083340664950008924763413059912623717239068914866486743908147688039076238408954170416918224273262318342564111970958994057838922418881576047121862149087822228713179897048855169010539424798901137832007642782130506387380133391027966281020647040516618434323505715475215031431177986928523636066410757415410538404963309613071865464252312289637733209650386811845275816854525244204984206165470592400551844997150816391805630988014460144406193178021376729384616197323842595980022684897688252816367664009702602633949061788000629840544434031939540905205659860629680143244666792482747563697733353908985864324764976400195882827315519268374137951057401896015800264306701528614394534472790375300784062918073832492963084496296193547866781951020439540521619519892080486683954398442791788934215730402733040492108029913426155111097622061899163394423897642750372215047169445964424108586645786687216259961155101577833697268516755763676915770123504713838769729168258541300587635305126976523108118439031011469515765443432121867917100635856724293256047791090233741099689669693547583352376264091352328261563399014341570697534153089188905368641231681722367034226671889118714531694325200996457701906231895989703387418710314791205066532617124743356122513413472540880591014464879057197860192788403533718489123237426681625418309012944671198314858043333582217951637558530493046049675817553253127868115169487590484817480645488183040836199588379113583161111831737585383635398086880345045415222125168245582172681500048019426656949026685122514854907181067001994611100847145870811166603675597161880191871536158573774350157197965101850350529892893856728132010773025520314173589666687505477713365644188594637988412092331618173055821439954265883866192413839785601032315917947381723729332607927561053789829385180335764835357298427811932910426716276161691855352947438599642829765809540168769886516281569704047373097310440435337210466133149522874527196433206258403420825974032207783881550959703675106328849623763006864445586517317996229806879885118387344920014071464437702893925927125318326146474249591296738137684225874215710301657530627587659243770027324815069700110682033111852786796262566853633932131217172692800923815447276148122050993419120357057773046918176726091524027997888153876052911516295364989570811603571372545069394375765204794465774505039523673280042687196151628470283132685922138181129267480282058953411068547910470312593021090815146384837724649979637621862766136838716824530955783562213157359268781886284379836326545583268750120132751719225340797286657523414925490984683423709939337085915544441434073243117353163850116452296364489320286111468395110952652522661778736140455960658175541210653535058200979452134189076251443668713338796076206522140249503313856782145817531008745050218765891457132690979923237234149629134977905901389334913500358832572743706549278748566335455677529174568660055746121273063030671097947267345295821570452541754380971106973117274699879585679814890032454872182552275932743696895249646713893418069717861686290951056009030256593854416981144735601052570116220338562335013664349196535401871785287198650984963326744104424067632722405184441024759438390694457742008278958557808697439711072514296487423920305811043346513770669519838353742443123409257124171290169112212549144608836478110025207786227278434702485708229944564874097174228535270745096680406196285287832205749273417980291969814690713742037631117005902927182464468636984407446728585440147361172032692504552891923996722250645470429315807754013742088033048806553373031755791836883928004459665194992475579587792996339965009835708900548017387245664446500592005764337768628134409226052653458294018745685815500461379143113127131118349184670242841319637693931339965967917390063890434548786096358982441359939019131719468796737591127329532327550098186628210403579357137498904439443041057701216292730228644012988125518200938052787669024439261982689650805452043798280768789253799239262563063941623881771582749269903775351455964449424438087654238466799859005440911425256090790188640258477975972304361503857880554516233584812544949586802797765875690305190532295055255149954396396599476398980855513153393688670645396755754333284375226289946328778560694384933960817270129780867979394296179564370595647494876904367070961341738137466059195598112847583607848690326449604872378373054805602022945532731605545169310594257839411721495319079475692884623417289924016656354603942342547350243059866937020362720395692720307430190167443892497138128252881098275929873360075168710320036636872905104770821927502545007347475027800631718075814810686827062809297983675499599456926315877617302856521609184066714998232941087246318809726299315786531974965225928876878314843961636361339378319022684843109099070414026688047480245551752883602399870436634228731316095362917668443675673759977854110134115480464231858023817814441199383291692700304741884025726270806865026690183877510881918874233656508226164323066502217688437157816467073985872845305994086937387930661553519755941576990214912138319985845658205193926596223612635142261197627266045005448955857841088607839135470462732746096246785536728088342403120343000101549813380641949527677835560863449708067932862654947479600141548886945028208374091931058323187577382136358621964599214996159458148411360684540203063177638597241555994050897846133324121198603928910088161715656743431046770372924173824767457633580027871814890935089716512084798954566360575705207985726377620823374977772795885341357474612397389427688397804073601120076630758573788107869985935768894387177131687882996152727581758571359544547452923014146477867987923040422250106435234728324468673756219169916359715117784044968693785716128864990503611659722837393829548274235398737359510141614173065081653928137335799826135874453341977787651298422217070409605321246249853520683372195780778726005909865859083513460397821027500496861842479547037793360260430011495555345223816160830313332720139674332949666684604793166661902851843478381662647561858270662101754101980765907973567106825788810114039989061880130716417034301347768465869964228980940030879033747729137493168661780415565647843070239057392016607815503421959968195262606242233949076487578607569894619082252722590018634600012594446909554709790384198986523821952118346138531274350476973418895429351075143306654867507405293898190162348262479283051682422076765224462116089218668392891192672162799190567087099811088909073079679687294716882452553079932190293323507146190948695492016678576196551884297466842878487396525238647171497185268908111521453095088918436799791924491370773711581884608721975450345791087813021532426924682644965010580025021071665933631387078071426024768381089387808427336294897825618603516700523651976678367370669300769898799238165973117235785151076398037998123155314881940741454015962411372169843659116070470134463387473642591094557225728452776030243522959399022005248026935732869651793673248370444178711193822510600775811661403495406776049213271463080566256202222712218465493504579350579831249972706477124926558324001327564596639672342282060889072682160383733468371379135655297401813708501278577901615953875100336008395107621359554841058549814779644108471316278207890107824961722683125269857235640454315823173149363524854043995958679671543758806218792507471925333170612796013429617158516578369313184088890327598577832171512408884018300908678807434621379344157808768464261550754611819777552965527331512446149827514405098593756279033096450270194806638026447246465573036027869375452379416766824621109840218365231826099713549527818580343722730951567343781641664151983900968102142470597840605635758752002333294600939500725365583674954850940373806537659127913389404119722461548475275275470810267719344809999241866249957917536185749659028477227220303645706636925799507198560714269358730658854483789716868498166519815676675268793770970298713705430255639357035406896604524678955926458634482688222176280996405840621635238132167886899742789059045834539402719515207179105523178808477387197847377602025950028850683452684782455459308743335916242256683163888273500383080319505408824602776606898849948655319868394862464746759014830682428328045448881630384088709954105010007965240847630502381338365760894125706223506059897044488762368222961083343765536965962767742145916781455422620588571864397575126288387200082190089610357103469448855951906551623678797908105898986126768416849278586174877969369201507032320141563450347089943611123292791116139026383391844851370612767505705367101891550931094761645598541458310130718452725133955991348909638142880443523374174042045859292386802969626224496201180327043707586282915032919853751833441127959610643097940621226093255697763913453998922007202484855663004233555080414959568732353733001551265666082360434322619043145503226429180296110966429026949927871285435189915665122097006055893541390677453459655944665098220482890900580605112878987902174140800787116720163205523378173575893638821001812931903760386088126531412942990962699199242261058194182533525876427791228223610102076603978089537161218169371188334976899553801934870151897096773318717397252230361528003266698849255262105752675142810206498921273909607257917224560460000847213485780579139894437603780380527248591911306433063634102396489821163808315612711708836260073373934016331424525569767746660565990790057643254469525457125698238163589029932153703910139349733282653331017182419987459737540395574330913608912941681810283516469083406706864727733857550468944194104402555840866822475717690794679126754645795785061046302078800890475187799215760810475328493227988975953660260044682449285852327544380409738626854799110635030466966911913847677934614301635554665684861027576928686054978582131640412427521037461339570134491951070758091278789212395648371614607780329275487198474904190284802596703678563208926896132878685500597984267830828450033443209640823402045088198325306472759198627640536538234121988326215180693260050683728628538714240215230652698611366903842279564288230618691512535998334538885952765267134620545385049793349540678889302953684650556369545138087497644302602008903449843647910871448786149758580939924870323784944853742807151274989860023624660177305683445498029992362209400362303936135255427754022772637292365478757994073314054829701411591794999149872289363868327349435733511760294987213500289071389700461815543807029969052700951449223522696634063422131206704034417597289400462303849922054847682346615929488495872458944302675334114390189687119628855501945580629780270491308257258747230282948439410173563649921560371126123016030622448904328227056112777869865922649973515523835046442574392204798154184546328906210102082745571025771363832118638284998570291608137782782442575409787974949835409421811626371308230925145536624122450758934390384936411692645870766219451012517691222491088704018780288087709712782315017316730178913760192826243539763018430191900906387648760683377683580367369585793828455697738488345223583485893651660837114596983475955963255045248441483340434796956833027578722292495168243248498033198466427987081541333200700929944546955069401907801289877092990274242228353305783825561746212395052557032045626520853780507967807999099360244499572190267169352845240962092451112198777027576593598978352765812303136050492801482215653844753917512024767493457625773560162365577312521614912451390871674438523818342004821609687433477408658831774659711852489973806666283353641728790680099992227868391596811219406813531077178619063673235741343452986532844892971362405301374608647737058320222902291129840009891774542089938565894513504196382040777187249959907079567805222689696736420262873753822493744189573441214276485661166514099114797122521154311654328741760009147713064830793191091646574627513147189942642644519453049518050835010996811825609467523059511755302952017085849835199286071580670068997491170709945472188416059117551779220762730114655713885512844529291974936520009700435093950148853695525209938222267299142643126090551857760369174767924271603602025961920439304644086937654172712406994445351896636576480624629625882644639573798586438896104572640434732833737829160606089597613209387205975687622502853035268127262063352863068945561008429003653741540603306637373908701807502956976317184651327591144754860260573761348764631255565182916883315757369752155323118354933854514060322050561877535578490740783869045312868487521166117348483736096997442428744963946011046387541480810875861776993242061995789040631945672725748053072448876356170647845236355327108569381727443169134775664813941505442286902443950742303313632613372248025298130764224699382397383627427544754162596305915307771808113458835417515567911089354916288234036319759100525386884271294303600133968329752658782620667919476908985896020968117476750965209604609758996939257972696085398599113578732725676325033243080547968878145339718815361509387964416788867861291109329205903502532760367977934860908230971467274969931589814110644125074706723652065451481493966539363721518552219950358928118642610781295399986069126469687386845074057645035048763580239784621500752784543570660644395416751576572260700042069155630116430477596553891341732595113021808812804744312764955963126758281033661815491759460412174392860980546841095219659762566042930464050586124400841507662857690604711608535924404983828314106190826407114384091819383054541385464342005727590828081697678115422701018620485623944938791419781004944628220675996921861433535997746011419742183051897404588282691471960271260705431512469914597362867865723999356740183381886517909519386032586341488201652180857127931377592241887031508817788545416313669481105293860977177196929212362541147957546647772416348954480245845578396858863760467679030672146771875477011847775473267986618909802335012935852356600120915138833640909747036161889574482358255613207391011972881078220578370116760447307701519371945677615605854623615098721054148563289471505139033107998849979994483039766618786802627899695923842539907645608741931851559205901762863473936414943547974123921234486771831697040751506988266254032681795457162118749459656179584926303036986931755989896673643170486668236657246272399785847107412414258110695224534877801866039951761168487828813114943062098388946862235435292858774150578882522626993613281705695008163414182242867991856001153937389096162333901361304904477489264551006428812186738286383834410451124746375610301358652320102211364722795877985442076804785800641805560126691533003273290899968433978347853651958742936749548728533585574980602144339456205980857179878804586869902383491271550418942983538438986742940863294686535618724718524983817482443626566804983056045968954621576657688161825870140481969841717958048508349162138522503408471539531489752810396322985045387719166032989721527819318396202724230220439276192952949839600410215460462414018820386924218417970728445157318404955543287116530536640817507734077901153769686265562126506371576467620337138884316621360380324745892154271193441359215566161979884908503660611409672108376969245404066017053245053145420920672747317743478500902014903778208938900642907842216746132765903796579716793387601381684533257663269981897399391908370609148911372750825095949317595314154647333538788984932427972042976210879758515368575822173071948043215291750946575412937364603761333009117152463777058766185569259014679943372990140160258728745518158440312449612894965452238975649034648326996884451033957336127838074811121351999310552008928419730832706323184976040234576378038148529102449969275830858728840349466808255932903251997638955719421339351048792542583722333675952415303228007560614686617636503626350100343265680178104175963369473760728565291122161237538566897209593587218107169675433298807136881896902860498573148249512850856262756543676557240531775818610939912866320627319254634272684428408265861135503765722125084028100200704431105530050436555665805991269933184595113314818271231642919270165475591825637716226976192250014962810640056729724485253295143306166173485103331327596251571099869685293424023139625061242634617276600783874484532893736064409302153299443985398660522655219519141454155062352574127943494487943082625718109795432584049203135341472495157729436362592581139066776849069717308514890800495032272150368443411605288526426090215808504674310384296122933087946415894140663448164973821003438105680454366314441355937822267988456946555137825727030832792473177772283745634807946546620204077270561524436350412701549262956964928276252658450141867839288998196242758544013140683949135314733648708904314191471215955116348458952686501234861419620219576549014300083184335906139794002128152473641185793082065221071079443076294533880290266100318722697691303449737411540083541932624168322947624602610501380032638656858433138845440410574542455136427912358645636521366351294402717452010849953871687621116651328109694921396541824661811443895207220684731347209784112952513250056060777083945138824123424675000644921576425528686508770988672941829074829227353247091531238903242851853386637031481424990156191968796784458450013572396659156063803972757904949808966969324561517581073016437834520215216090862733706836836206962272261524740583280206696049090934763049142362036495783447416039238859708944414841945168250177509103334482171533174957759405803350403483331678350304528740575664527186144575944105911653366350997967103260087593148072226022628483084477093162455709905346435696564047016613906373082623734112622951459516282130622064410433980239782657248911992274174828144120060852498142572840515138953751629703951223026819597732507059620494773390527969917559062302156625181943596829571392448989405627981806660444330401281205859545081752367518104230787421202867278024889579542720644919347381991021340696087813875857851663301362397679685586183936906519174516819988113711648255396102840570078414063422748700015118840586340882052080067426471691243056405650238068528970172421425843494426601763355526709385243364864378219586241918514903068309578626299606263379297541940540055613766893222893083543245941884951186742323856137101462593503862243173341472185148886488817524274083548685581701973581086749176177246175233433800456787285922339386073077959305775571625225956660153152371069045734448041316377122407744921581129632647328425576819025924397582362837390222207066837461385312949952553917795275079109688761542705730941540041402314860057923111694022169174342173365742632413983423071409741195358731012383825048994055226133872224812170294967435552428494498456281970157456985046156884098088475807125718447491277239063976942403511677943355172170287270601566699657483610867252044804836939031592097969679097447191843438024531610571924921612249365251508579236453227550931861756190589309171634872115201570270652417544984375448204922977577615726851390494551930074884170861308417757077316208378845427587427481634548396781602413012518614947523228386786576441527198903150668907097704344614408421622406244890705844869731584324458555122833818037298296525872268152090793802803326563284071400436651354055892646727586008205394145955890457643891150184189822831464015803517246749621860866293743832752390326551425409895642738491991185353015425351233808070818102831881908431227650003497388199466554354483454719076039777048623398105143652840690186419393247179822572952844407774267598608807174313279843252621946401459104892886537784877118039089897105584476344239040245179903989071218212818223974488024574433807912580554222521921159929232426288915792524315765446896025642115544995977217350210683740855733570039653494316490296327162174016246886464682500012712624865866129885398036253369252828703171318148921536850024164823855664939055282157285798930721445521639310480699864947084448092395197702526521796099763191189027221160224504418057574119005982144474501340742965477304603873667376974803832837448586054145786955157463257952774408613177681859296856524416032538394825857383990414025437285866662656104748697164149731299100093302642419239585052148250357128544778190705104897113523873923964416561731611859569662267970443691652697449525737127410370223393632701937961130074194835177297832298921493067589983054319179138848662305113390201510616579828047539218947773933809585266351826155133234727307005600884842676243239430949401345278088664243185070454086911865787805817140676295839271066055799137680821954762395846519214034406082462867548570505186911398938056483618819268462110492666511313652798970532705916630354824147252893503854292456346521567999141725848921616224676071976708745170439301815047230344626995626607866884511088001786386140875020671180136349804224586875894016669251517316952192969037862638348297619788512738309834330096445606015531990339282238285294462145871528459586959971653942898379617264801928969889173797059969410318605054234454390572162220874670798721056596811017815324772109758351662055544323259411265328405715331738580713362077590148841465989379690221658897436735768677689017356699180558947203705346012106895995380495029162592449260994895570597968738269619430756624463678747786356550986977264274328697813152044485503290955486796467727129112641793566538857477907317714851396331631625272250130632058164962544187409352805834267973171312492245031935026912310543398947265601099879422440508960496475481573018675243963845466862986751031187747190553440757464180991457710839702360676222535576504497362865270253124804418488383528969623282633208744978539068238256267535506698853071689209629171397196419557544884339919963044854302373933689819126699846876051004260970090325407647630078417252466320807890676659479642329061624317791064484253774765635557366061612921621117338916778547184619215858553819835136477095590505732606519764117892266941754342911296725346106500743905655262815511075483359513719021302806774479064521512033591467034138453337019274959532175506244926840047109581854416430666938872351373612073396068002883961842853509136313144771116684633964939893864563226751063440501521365274886535569786471175727328142015337657813292106968971288895797516574514813587860943649041217398519061900218811528517844407593306270874888959899217276891056867535586201519418304093810307014045394679008256162100440366137408368650949190937558266909052970099718792374625086064219275392232638938537129242623936870180336426252580192974480296165778206408785382106837447730968915581712285135076539640307235115865487626423842656865314669277985865849390629401455164465082659223005411320317102244508575426018192172098651876648517759926538909851953003888049693065463212136662629781521253623106599460643136621980076667273929793959317263509683257571333680592755872432440743709341760907249305628445836948789907741262362500577050055413460573387312949303803885389374915799029747710931825870475602848097456406573159219033084794834639892877637447221672817999428840183729814601685069333653058266312591892691487988666290822449557965532172258569341612998478292434715327579638073304939543992438833902487344738508210911813457363558727668066898417736377804596509054753855221616988684680294193236981907641539601339039839360536566476407633491615991705248351328688980372206193726611084181541207017258440958824921227189266416502997210575678962284018581482412487314478720038434604395129015279938713640376004899728680564419319421186700396637634745122077957983816900924076820942540552800369014044301919010456378037670176864848079588255313389655719939937693737041699918137040826441044434543528213736924841787186520989001880876994937436402222341085687815740224759849246654210581014849092122445107481632501207513971303902670730828247074895498706431285838513856059799136698993069740260836647030138786233674869778161505384969922903589030192604432856241169138523419086923358644083861750479968370450842400511043394019986970914939231584623137036433341019161093316620653367777737206721179909398415880669943430595336685564387437511104453099598919946923521138945149744385065993314579803288776392455663489683993376666847043927924616200754062781350090931453236580104938482045569200300578266283294757365645921121123767239012278836123533737503363568745538767680600513105271727961964141792326903949061805733341578426926319635491586422115882521938817813106395240879977452442303389268708321317679995757576603267741817649260748876439716540442147722744930833040626774214819867240088790783538916841985716841188033772056870720336556142762317329812818657198478263278262881942080336588620244192797904633616148965255460158068164873300127682149070284869030474942755570574648612311367117500063039059526573704635291524358618498173695485114147817022395190939990615909988376734259464495140186612715375999713554159915280103643320020397859420682002479831989378262195259449708197428534325392860120193590322472749613832829994257482697887467835252737582039933853617391786214934189728701174913380268471606998959034937099099968861833404628058156018267738277808410485764875429474050299538823067816319820953723066065738427059230129135530590638289343259821944876054455659933037514501455174431252314921029609029326371938795168203875386069322605508199993622338040600848445335405388617351552981557411988018008409480937818340915239607395995641962401298782117513189345269198846330697216701866412607258618003945633706625619800216752967201498491662478656710277422235329418715582046824720397959942987294652821993449444232030790654742120843592980433955005405024086686177597006311368406197472740044995564600924272496818772158863910486745145206436766063933135775467078349745686407051484277921927313976793156711199507388549051750885772746035027087197856127228067539709481407311923234281772092190890350190547913204995523613575452752213351459775467541129195979804424167173365209261713318704146485576344433135253437516288190793811391769719810294732881371491505717418352754178206411804938183061866877569564170031145243547282704421052307454256119010331284645427772389454394077344124569713602391999468576599566352352964563473205336795424099853593862225407689346679077159623545266775912945074254832520761656080033813618293808924002246673857941614320680116236193490453033774744852977174451532499042182086936012476118623023969871181586795765953908375810982560339774426116802903068888747671748165832714489485380628850765119390461120214070697980578229495930400303840737267950308640921126286360647633523982942964119514689311946714873786822098964535049124550879396690729191452031338047484024096123321972892433574008932065832704616367304428974377879150205408709313754273028456763596400324290937688662430862688294521757160753787696486542773753525745197658541584297437242836175918174537743109417049786027418808609341851837289019592949485004852093820032560046341173141529367530597978054515035883817424675893803410913789094318460601200096118058451549734531904861275373630546373789275552031486617302415961286507915573247474524846990604594993741057134221699383940114446398670660643864770014104416024360819205179256328737878689648626430891663237434030335072970774860988997342746377797524910955398766466035713901010129985823548937800423163017687576360830884128480989612292409254885858878463053134614323207880602858433132502541147089234512937814689255784556285242391031385916630394314601010750138884839613125348760413409715263116902516640780732176739427606805866823292948132182662997628717643339439568681177732647062086527304669966866576483360759438106766185394044969645016021664860315939653528193293740967188812970334003945730905453231360345874315249992333210611977108607158395561777738806662520489528524985405811650638120892144789790957042906973624574101748489597461537611264098281247747162213128747300900692564696742255811837124944789593958860483113287023242927955888978650232166108251920713525710887596570489691340899726656216181048033609134865610759841686394894866079142544138816657386508710292502060684711627421905319001316431285437254049618165033383041825279885038802587749115459448877441706103376147867530593149680436975091648803543457665732439883775404555534012479066652428691824555238035381937207233174393856449597469431415296484073151374085020272717071725664744842761990319319338446137582253342417205391013460695546007821534563287166741203558983280255537806623486536427851243237709445872249683496859871325346889051781563511343793555496486395837966044146652585605489666768910914467425295114487067555561942844826022074042270167397738885456594346486371663933760740510304951928394148791435441406811045831946306511238555768542008386449638502944833556932609398216318553586444951486557094785464561204974711548346270124008916735332259592669560672745259996552243320057981343134806413231496666694052061824718155034007091480855897693692337764628350503319336764310822380347659186440224197455816308643920759042228951392212088646753047213247491824183824137325950637314880229901445254375564561498459657960621800873488491133257174177037060942149854675613809294474705549508801915183894551893182309701584282715212575099037015665462997564441219635631907759482666194568243195902085700798201934530051224063932722549088146551742804067854792651301668722116458713264075959412055762196693255508804439584803939741060180360272789729574771280661867139494017350612602407259220194253750921222247861808601257888326420221429227669395463246476720791596758704920511520468588480329284279598648130603759166694509254944060777718056135333057157269576021234085715013086019982813398732639102446371306959795598170569513491239790039761887338048349623595546100583351441765547814590095102399743066431133947821703783402868001231886509941858560481367308451702582731568003723971334306313956020631254317346363596124734856911200240341596272931081177265451285107088504048521514245996497713031253015585214839882787510587634560821520785713596289284845355887526875949821932226247577233227031714827810964063166713812005317832131593393437073049380930515062354097853489020903934311333977977786434728468602342821063382214172382866266171557405327132983515982436416868409446921920905088190378031710657657332520704014674668863388538018991215662818357406966410545110406802999478477175529538919634659378436954548940613242613220499822673765138920808430512640690540383699464388711402506425743133404230159640730723436994164343927030462342703627967473113902008225352671897242981713587304164079187201630823145461331850886803852254100659096287498556703026096966286051819382235167721215502243168860687319670483429266144782491674763226970017701693698655457066810464234648286682566952959446570693299801194090956798325572452704648390748973921221225707731171386951749115686488734633867636541385773550587532635235241635241670671009119410589559495575764352689543281724783841162659063075597718053376718912588785512542674016959452604754193005685686644149713366597666059252359698820341423804533694112830414417930373568053855519623326156898808160931908244112528672405895519330772137719769074113004760584850422518464834794458421848717600201957454103316684826778823672252090547331003656300043150470632842121377352091144263326215869481521672921492946471449701069585996933537478859030916978739387015818148241570653249508859215408598807366726374406010315213552410796483794376222178845978086976421802905048027849556751441436778392788331345595925133555692461946550014997102158893240849247045309394295405361656973259028129900339774416072353926450977210721286555871284601406843256338024200778855878464043249807752411786199118192002170407973669411160312106600828852581447864204323604876556237123088979186038925429650727909684689126118773853375702259218628714147554083890439304327455854323923269980468003451155269401953863290191274382071119299080990980091761263081560036202378575124523717802970644477879288630077282811743203892182588336075639315777907040383537186989930229564367597159778868480187457476739047573207363354765006644396139791677410729107220019715802584625927871127656088571043053221289233114142346785074355304622187196754833746208952669763465196751261522241054844093736376798516602644721541626298211782252459997390584285411623362132780547758103612869739474669400291946877619430877986602251716148369372357221619787944808663202594952798150417525972730832961142482981538863059949319613817044336899576766333450055013598858883840662254017866979597414987432369430328416109490178038666380702480730989052863062614287348337613223695239006147482027283115195909807758670560393893333285446031034034686979298345866148879976046956153679301682604579370231837252422180927862280248781536490145291200717402195747701927795152864443921048919903136510761071827055748552811831111489433605494697516055857929011175470114215546278768398453287525330345787041719921721259509776869355884184585955624473143972170344463763267291412984092634146069658308265362727354076035571103153977548054263250447814246393097177339553183588732752202154700120145471425874985253295776862604276041524288755070999997364315534567921663501231380344819510767235863628137694179086226070309019024782062582364339587841527587240681715678554283062347863480254408374803938596595625803910549289700832385032020776929140796116408130470014607657529020464427719285810587245259433263042893081869606420181426407543278197980867706870442881331559083243652824766518474187776891676583989538396652695092768752010595032805202279771975414163169649447035041823219382518208134903353040310935829186069579063098856444771444294121158057142277167694793390691778401980370069665422561017076956553291421428282605452830682985213739086807431017707339612523822594938996991899908128915999553253544053517701292596342050877775180914117513309395356193498758077466720056568408428681172767618467387743933035196879116202269943060678181552377775660236849137206081588491580975993146605569984917110094180004929289514110676781691063592947356754732709299997591198352909739932306490939522382862177878169787496599808236371076388721068698020099662353289931070989535041382747251776329994078927577957697299210754995886618181505847505432003361376004663455156077560174893612160224745236808513754690260157293932233895658197106676312310387480268129906079850002027170176853640712044535548686404027521429575701494916621070247045425758867517280573509507494999799289078851237236673428914391400201609563142374038366511506499250777428157279431688615405508866133479262446326402054109227816654023107604392975084494227765284543315786528513424287925130976185714649681265699477965280845127045625279578284688256932871982846204566944845294539791285098941525053060382501159036372703049557423140288608299750146387528214421367240660522180470430213307632955478965147829627353541528721342084665200797613621705160550906469872268657340853835886714984416946355641796972290655776113097053072236615887377513466074857239547694178243854494175905392491595259340073743506026193627236869250541920538109907746195760990517025610627261432962333519743206312675039335839712690944567504295258575724349619740019683255491687089783033334617795668763713643416939295678359634185271569935578690766724543746820986593442101336912197031233340911070755189971032142108867135039305189019428221580821006635120378408436494116149878080001806335683400396326405653848797251382230521986862120428244885835722150605432269957102696173439930630609668891080304967703370260540088714418398670823920386426789384964271739646048966734224009849486287385091977282770668226903036581561464584979074690900926798869816328086603050279103332135191459454386865261227593129374990545701986521305053164700409798428206936579149846347139983831664081719659961316614852548935825826432481005905620418275324934646352874051747899624665527400069060116099596862662980951975295047118056410705606080451604066152717228276585526873358961596449500684520141298038450426312380628097929178968558056503735463979356708403137397294368571931429267583835488915678133210119278999244130835857690750654297987673404809419445618667070603348383688765056463508266147716555206966510373955683709504860628372130293572429149240659914701288618482517431675714332545173093638832974323795400821289608988197560884361975539793342827364235609026319470450033602227825106319289477537238805468142768228816898513009636459072490182051964833638918188606824464517246559048877496806340077003477314588891009190926596453484087310354718715497167915352645375706282663006158432503349528242451331282108040354258253976561634561261648455393829189155292207439062777551070646235420005232667375562113268214745303600325120975821142148778641629589794000936010419209344778577688549560252506408368964920915934859164237408629847626958291051996635438490695951560746257517419512811594647637042169654557168331592815624466971317561632303141062358872672868921150954744931453911855421838250291218862840967412402021461346106014378183746003989518718688712057017449323939994113689665483352007039940211901842068004157479350945835209470432801507104405406792682104140373487490847255636528891702951250072610557907160625437648162246182808435492813962538463857847559381805361480799900456900012995989954593871248057161737943993014182442913194162377857923153691645200547129786147121411773251240582439189704965011401949236244955332138888581462792075522794423664225632036553912861471461361880978644486919269038046275537826441309204191112887540968944681271669888247509722489276787566376324979717070447553830813874852454694668072769637750468462958129400852390651635406037845769239275182215751366684186836704691457084187361325449381392088264116284170787786789651841154937716527696439290592340752197397338109387519637888975261695418650843676202965947753748609499007107090161640852541586418853209566337589488143396803053242044216518414978443254418379694316307841503260600564066399450894044668128064448909603730590389290756811771872709511118973692810016762440744362784524592389444575230205591824666437398109212173722219580714483938868910677010354118308018784066667633429082140775940415518889870548717923089632538642443968200921191739865301125224485819335350931883106565799080239447490462140609138320204111812203119508564484357633580316293711250761831067405733011836084032904775423917548835521613482989497735244351418655194427124328008062135178916360931013065723154586278941193329780907608747644678771349373282272651253214687831252068628829840463059143177875632068995589240729603438979074385862360200394503986022668343057157346236086211974802398475880541299594276213913478313984411943529918393042293831148307184232941449630400460875880476351413750246271346905808987091179707119456768560540847356305850230011415844936615677325879786104757622823573070311373327218615459871545473624450609942344370694799866651607952711495813297957492257411085542655021634743975077683135499994997052449263020202756903319239656702799913033599251511529018393265082280634200571153525536038157667537006876979611586001286873225416571854118862214767841962646707279869378292989486750917104962118915013245376349622147623073568182172314480515726857222719913253669269777054841476771108690466704457294422089664207596066986335797375580763168963380713481023470744780851478750142269977548177073963557036923755503419664655196355140671327236398052916851646306608250786198516199373808342332851659713894441215457153017792954827016012319343716359426517047923290325206701767207209161363965394210985505731136615766887391423054370455353016728837686560870558802065898260544938919581689923594250011440306419034241295556800156450743691923935098143908761895451572679031820721997436924057814367341553392306817351904278857316204654672934293133910619158963123957644219682672337525228260240145349054406126722627064282894621538630330179170893894482488659731168536737707002677098964497393664680877364724164724229068124863051159329218455638091627781358875552241014955158997489164643764027473244702414222945188624448546369846594020493794316929338972681513266790607088446023315949145090732776655882540387884558954160938687624305243735953551091011887543503186842890238527847356590952539792758577061536919321617636589967854059046758313322079777925779305370088458381477206532196977783349577959237720000395900215437891507127420963200284160124607133929007516295213055357787850655084548496663719537324292441583622086061847461779992192623622293838064928003216239426084635464837787295714830955972314813292401133508090058614807423479197589436677986839236930754068814928771981873642405491828849005336684077553246055256019039308815150098493764319325572863716025737902891647452880499954549135794831703481188937767542621020125364161932253684467918329490555370851137967248055464373539192087308193763917980798136932739546517390579345712354590801255813259001525217981678388482613704936958736573022254667630299849069098556009677777272654292007127039017855899117306470317791398530326791604598031282398115521314694857685959497110498412902348194105504176220588399013801123481839851413035966812286206927204892998927561990332444611844373872312337528544111053246395818375991830589322261735846620449813837169831292683478197026804221994350109101886476638247120842301924934119100692202662070086721982750239978758179326853729213476191891639957216209260571651769628865544197201285049011775336490673622198027740023782575076657096425835169221523144649517085345107984372534772312214445899678079701051446062416644543144793354012123257510655026536039778535734927076860808204849300229468080163218502698299426591016925723271442831447045142662266438494910080258127415737169764783666669562559197905310684456435874256409722258510448172249807924411104335424612078262089220156869861131857603338989169446446451162530945243816707196028307271575361394686448534392198222144120614995821741880174435256608145040508387282462156878205000535111939373895564612302866403023123521519615840450557306779363532247374409250555373069435912228857634732291814599766416720537199899206051621045902327347802044181842661406259142014595996693209572872326524242209449155649430258409833576639220245427180413399728408504296580395732400676876041973925610358957679517631975418540262118290392851079724620205971276721199538419214889917593004962104891226048061008735463172330224787127826991530716702897785373792144394723505823732325457353826772044056648440667403191030787822315268086899258817399157954823998183671261019671918201668175758080944551179731032254918453334219155951750525657778107380484375684284966808588816321426886028693373126125984151931550117940874235956425678186457132387126200350673546557421715876569215153497923081083952358544057532719420249971463233265309571200126296299413539415296428301617091938515515675305071472256823333485817541710702010145105586321242558203929169086340074762516615711002292103534956680857994328302943529125684510765637131226797983998441341943775389009988574166601393391641192079007965442388450363530235259244013654194497629757850043337560614986299304491530449875902853207254784561347977392471367848955849331874319706087044433867092417852184611837102985820285697414681473303263850951609843816048367404885210442979217787804901771730966817175537092625428129705998452705465403298478415661690351002813440710578016712258159624966387988776984285456480071496331357253227612339238009955898101353927081590925985974834501355446159195021079284667955173460715631210679298498376086343836199960754419861693342825304827365553540585735957571691032625861798691284773981324437286501389530369167614432942370238389502286296007146872130502795894847519661527825145305555521507172892490723874490838599635331023179142322855485902482961765359381349465420968448803789511871657584814335015911106531185187932857088600128408995066630831313306164702462921947657004065585720139370655148068938021567712546639156779082785996344492316255027900397109634120330565701539602275418606616409285111277242742484734766990987571116171009119101476642076339468145063336196477810321543514811439382513977882500093150111253168483774168622704356131353731952874089177291937760430188225233766052263729788956463011218624038489499348203762422325067111529584858624304694265980020686353985599613956534700584766966971421955008157042842700701441335485408963299577347021727079734312534511376345061115041190880141211339099142750115415897916296776633762845795358977362146590441050017061225234415843595155938456032003926183570482052727640038367338137601001839042205495910380103228983732165799189083089875284132625786816179961051588596294327350226047716930601387458621513124215002507673971471701648580257682803160323535159879252888299818673072512165324944601760556956499551573330807079959805239396641855443909006592677383637144325561484714203270520952608922160072613536742365824400059534347081143959802757837931510230211701217399812243351611017875358413803225849393882696497106186101439497328150621912315994156136966982320930601259079321611412201126816641228800939617568234485234471840296888092142874003571107494534160209374434588510073245961572506813103442095514964984632522407192895250849671413808815597281690937352377838507553026366123948450263018321506065981197727120669396251874885935229890993043703853990949609899247522807454165475697199961813819515762255380199181516947699342527191660387938665373349636173168036780618645960312981709209699960476758910667027265469623500748203741417277407238906993866107778725943932851265745885031342640545784899814823011376385198946370460504127136554395781615830235112947128240064867524265000016113785835924431344454731057142860219840509740329782021131799674839927614334385405585837622468469848981395779475669972140568556227746946296227640476445880042530110770092047628364350130277677855394711637600074263442298189464439770819819817122177815202551260929556109435156953651566626921773631118216093840446002631235926275333913007245032242779931731494426041691148454316968409866844537450259423748834710698710502082112091632140071587768128191722513903834167335285608402996312317785488606520767683678912844666841399358734368077252320946796469801185333993172822093817930078103317578548213225715264843302396896068594116337343776716055342395885720785271039346410194534479805088301398372898270306697371683936294764942545217711921016292429954450078304197319370924587913564200076191295407103185843347642651985893870378795367824326285554935279856545143205143936621236995914959961973098454863750535547430043877394703392801128095074228145597478434005526604126620605951852563016384809680754847557920261670911212763620769363572738990910790101740582380738482246450558773040715332561551855264006584461426686574966091117011159066927026626753180921722629969982733133121772843561269277205410564568101514178400424895807775149200213184759334379676984109653257965979285969117484031053777568250669541852797396517340009383219823013435334544162759166225760796455790733695049373923366050019487832659753795158821427850997471969408836838618100332028897245888328234202118530898368828682904263021230478422921447756178846894507182183189074420708740329574383908319053656517098353145597444001639752808174669028026854308416758627558270709882750442090902197992005481436570383582166998587013009808216003960773150769989012203414261375695457041789952257243876951597888855189425057772404350459643693598047185691495328580673413176148894866424126903892589970706979980690566934938749182106936765940375406184523508744485170426725093603937476028178285949595518240820435884288156907486120101775053438277983382959736266081020471592722015845721811501199128638758463386154567026631250797088217563714135994187129970634287387169324496082069269067935264268897925081092496557651327995898816517145896918251330710248697193384471608851992800378769484834515872373625033282891213796109978324598259620792800642223861055153635457274209140612676253167070514772597460029225559262630890786973716571030773712802853452204417478501185458047455165300938549923080685239793664307970421653052570969379274222426512271091691300933829237330266312186531109051049985086948992942618114962308972983866081467188168656551768240200580505884590843439148091251762461830182197653162010782084354235918396180977965677718615873436852423641160423830571464658115284474096030909222421333615673288543307009092780939807288080668009778721319804794141190408849280678109039331655663056443953589197464084797914518410198538839628799496134687414390859190856451620122704532625634668323109483996651897905100572015239740383955535241109349860269893431450546920888111702220394857471593629724374428998772220408731939220576491659080243482713437216102338830251930083268817685251711484656986625903955667947125475620378802314363653143273635835119212448681101231816977508092160812039576907717979859711006832709740440468919025881817442319705228918776173814084573150064105811004674791208000797044693569500056187565423214899696969346008143650551807313089192394834162774077801883783986775664914416686524597086656680077991789670923846717491061687386914680414347362136642804374348661312467625520435883399893438435231766748203993527767513449591592350369673460699533778032197844417561250689671935416253527608939356041642680993326057090670952533292830138670428218472129838439236845163414001588817154003692675906684986967438572291932613293979600459119812942931752736511343756603343475264651321495348109039514768416322759844099643978137265623581359581522681786306984020377021659127450762526010930208666966724264575629561504548836883346997420693287397812860955939632164624224833116476161947866195273001617987166165465874393674958406260751095211460788169398742347614018020882860375016386087501342631127591698306561833410666566679222469025801073532486379523370684652156227931747944671130767889559142768432212383477742174685472056650375379589903775633864326317399487054802176442074707003217073174179526386722679336485150574859754820546113259056686572109955515841260946058334950378704877524933363659490540624503813778853707161668879971340764469649867969037131243518441950384999530919964947146331341585108839864607485623530047389795459821703955631154065634463452168900468268309481072618710952562041609239526542542857338361152026523661983795208742883114446635745256437688918563747418086946300369115342624509059435768894403232296558095751239619458691677889073509456869482755490959096524744724411454423603329020728071772920246471746233409510213321586634786102756574215400840744598378661673660285669813666263953533882040570299514104097447876776618173251068069686662693002281716809404034483252397202601175648499504497862307493301640782730510331823278867034734063769189429241511561196193077199332741308497400219118759985896346213918187987153143690680409444151077623397681310384557622488930051759119757291053515739878930283681637058009019267841882497248515458356991553502378302373541366714619322790261113772705371646537478956537043659830762684391749579890901298548266342722498175958263610941690136638362030622671256011796213676925303828543774677429742084784745029541626327883469257331719816379675328331586609371774144071294350314040535412361206704384566880045640492557434639461736744908124454383156203694419046194499677294995637598444001691598868663040625929721512920588938656566173188347263770555576136002392323906853475443762231147412991101964301196048588460175833911201696014922071950966826178795794066050077203472272730423593540864615246282116168174412693027325359189382994165146458237768813514856013054640040560315036811009215427017162938915328154399218054075802428676815685038500182193771535108156320871486297373696344344895834967413116457769945073054460154132544123217303840312615638832600064134011543762043312974142338195856064819822429459718640173391952348086467138466453737574430522417266121039842234473622193046028083074972517652121385662121403763540504817670652063789530852803867281251147422046008851770088306111096831059987879076544505501359453587815468047776264243240545838742797232940026786945396712911015004575201731322444472686478647914483496682236440901176015264693192947664806224568730301330348149767983661695231899363522620078672338589919697207109102106676790623671516522583418154463530700358109504233507606542331006050113317894574058844563252157969883852552753186704286631036851006330300960995769408093628896379708289039851407460128737556678622474221320727823943547183197325199980551238711166576084406512658462469571629100930357361858450852573822898208646003705056483772165870835234793266471462131766752099843573117660929384506049359794444878840811338075921079119001651779086385523873818902935899994273786039544832250303109881291767655165713439568350500787181293201470193718103237815745363739939807764923402899972547762338427167865117705321938061248754406235555015999743642285858217276668460984356252963361022510641151048777233336914415398855698377994516068844632108863813650271631927231168060123346005778246767251306327489285184087020243497960371266281544044533256681401330783271458809998676784081030352453167461284074139140173646148292822126552923121070316306298310983707946058249198495614677446971526884547213122293811968321568310541937954149571887935332193099731824012724224343652923240381028285597626159209852493525181916837284198311543782343383504986989365819087512770876787973325247975894375355800269299038302165497006032850888774642679880674101787623068517481323405500248827733510003130102810576189960429232516543710879292289543277226794745631393150552853801324194997627359153080100236052376994816594790370037626637046084839449200608704609482412835542688888879270144538945692239169336370683708516211342874723575615867134005919016224155247253728754939845439111275690644759020153377416250265744475938824115446754242470579596948043727345668050085666751259886168738395452783177532166092305676050550298043063154266785799647560980719290888590395430613362765551616914302782565402680476644211048650796702153856293752830860150576584901078698222456553641634088412987885364388750257893238334100296360854947412405311734900861432088274554685766109852037497347223638238625721231969748618518463454893688686465485235253972891797910550845135191509392859647009526939360424153699588652571214004153539549711470688747047910668485897860689198011732994680993887684522981974655396091638098738001543505610917438560263838435666750872861668684176825186841112785735289972618070714005634409542029548872065192722754507561483820722043779648431177167511310220725682075150655310335385554133999623198456464807368824583052492148207271243258609423813175722933494692548937074231318733254472809409526237199870180200040563998251516388850261178290079016490319175138413155657382241634924896739956498281499783218736936249182082820182969774557359143529126360853045925158084896030913681120055113817424733666730412275907987920025446227778379848183277706101267578498367384820016950848022409929235037907743983240363983788392507366832796907766489091556318116687225082872648586592088703076747739488092205783102347460134172009644335579802647220729872056321097532701120970764681641116419834139085063126471152073986730646218357678253567419275814692979791492204668451154877020913574872024985496177371569878877222751770138432840210508133250514321378708586832514020667084350084318888003051794477981840375400327423441301811119081437262477061666945126856106498522967206415998290845658463764706556002235065764714175720972186845029165749928052585522205161104571575520197747002950910508181721967531279695162295479501907412509103611385034381281672787483577551863374033606695087414739601026256167659704053793877113947604240799595576198406593900856335919031657764808086151799255496567403791345708623201081134311444118426027056700063870173694843797380621065191116165303303825377894094372235673382453036060609569982351175961622291524046597633326901270737165785293434297129663154277127171388469889341050108844522185443311059713164962638749694929825716446344526340000545011057417544922616102804518993397421224516948458923654312643472829489116955308024720016923266791878062334446918703680270088617925551554065650922518203243791800886215746165069384218516777929507862747799423773595620568574185185608412974809238243901453038342610547693577059128985934662121113781669355809522169713013330495546675358826618808296553645217994894778245631618761641204598168841006592855466131190211276821040528431911607823591394751150209694014137461032601438755910091080710141599559995894454146089085644853568905442729983014375019156128240704907638681706044908053949955623429085838826980556865892705578319693553809560948660681152881884789279718261029925278614054906408694520455398236706009775316293284390593568864520540167760535200124427681435663467985334583273298472503950553781371937683896697781318369789819794589414679134945021729691193559874293180868376607394699909270466253915954461735367161855456305480605850686125627842327925017020946698851900333554433799398027117872661353683004878839930031668933035851174411461991505247479653332123374942722976050605855902395501229725208390620165829656439943158917881848563650341811795712533436818877836433041204722302975912126923106118050176751725070636169618882285757074853639468014743857223235185833097755165556089420847933974768214770565282680109845740504863062214039861331450410610617600848670470259899417774897974843859438147211663154034439312438779883133838955664166922857484656161734157526027307280488773064561831972310884425806319353049052100170730398083424545256864446102210815665031733014390609544369890379871207217991124687761439419880060401976360501391886008729867326298990506651664504620215126832954250544986777603620526020351391511791274622100376116757440765052711349123428938304368293481782318321539332954579477252006446071868897809035105402452046182517050942821766629415112752639572049024432010736500647397509957984840904616807246008363257575276606786382042474472981343918781799638138677906565817748014138840976726661364734295032041892827106815396118333065020773375306829240838013414236696619210131189196742286497189999210820315556922896559449017634227455284239771659560516890799700353955920804066167548620340462547889136986196495824041816240661061017849146316174825279680382169625108141078497758925255982908103161498191622025313852690183684864208285624746773268581397938316699132929134545073270328824706223638976726009463172179387752319664818218005571822268024286074445660799702488310254363523662215624188479494810092111211851560204370160027803187305008499677238131896473404838376560446608667351938312570518897893393433495637752836215554317473571642066333930637877753063277454457141358457660466864851942384142094925158400970150502236903383053681780506134167349292904717994687315826099311664368347151023687152981025417054123318781896975543715810512571221318743499465069745392900238474289384474065800150292448453886119643177881445969036576976174552272399085052116554116198370983911088001014743780034892551885138553985652508114990689828508165327898166994805338434478146896788025839352985991849136759586984156310935754440127425771493492733306121244610159906358969945376457940907130384325564962560463769822186277068772672704127273207197661835687709225312715120355430027363768416580189058880911777388503884568604209561724827530273813037893629757312343870293165841537056257370400076052436414018612061009587129877667935895126218775563972300431101943920609183326101100909412650552134161472491812718309935449675274471239584735116065855570248717856970220344937242072043343850993591407275698378674660029519623778778967959318912873571683674422576556232728586269319175959886194569985568057201484616922749734726709374572202884883582738720425010961440904011690441329925893582622029440194480073975847159573972995535831015671693578885158520273487080735038645765178914098670553999066799675994225339098819057158839696120404971062239395007870539769527738539750712469225560583990701200785029634333329312538793845536550188351940310915404309209862667124501112019390458292989467911571980736303264890892063601838228786101674207500920698949417808677979682138771789644078517237156503825341188210900339317683827559842304845102789715404060784851480248906003062483865679833611133676447547871933970383562051932913158093592751588729135885507864705346933597662138662094108731508127550942164698291845507405412135492385722902689250526800656329716520617485991148555469004453456632114180726109027908626635396909014895068771354069737507323787072467270601177535995287690426917940203506339925667765243351318478184287669797901817896564304307119125101674518716273281554237430520000067935960303428188722397032975060477273459291889517569923393830874955214489604732938183958645014513400914065469492008555466257763739141027360857597219709329245634415848622244391389379246495454357669924490988485822583862743113667045718443239282723628386194025335422078692671290973210031653941019519309082228609114857617423808395468051554335931414986632932267137235900346159819981483821185655064837755503504937896392641611532746220732389926824069030587496045040433463439942793987349992793155629849147296979207783190105483073478102856039590777959453219826320300870668435332555315756558192409343132340277152342086624213793330985322607941756971875550960547180347044757567869894449877092327757265846790525837158737451441171765874045501807500588333535198208085016658280400770363739490246716160055569154956104252527270686918414986449765754407776204232302466201300708535009938491627745953934841968514602679238565396489955091525038980151751108335283115374519062794677786933312927414395911937811554056224529620442283740161113953261058574959115413942220384734440808514143152393588717538841359872926775799736895904093610708569406401520096386907585885923966796091317280164779671236282690078590670501140055248525137524680618516686870984398685216009057080382258804841680055370174495700431898371810512653518958501573132535913697521571855980129688078381915776078207523500506480272742686558533083649802114920282722848672662375929575291651830665644342511201144458498029915108546182556828580159921047574072245208690346070828436625645280418478287565882842141656193711206077228602504111349242255752975389025592236827199238424964261403980397578092078929928808665862005822334129255088578152088865434647672752040781885725395730959102808518471859949929984191060304905553434951662531866216220040787837606298120541558099283923790281907594020054116327355518262253242055331612593671946352418701812387324635193015280959099427053185179920068324301539206175875004520728646917470026336308623810781215021939366721121413941317729642369133888487014699527848611582925450273989782389946410909117141761168068860244938214832384417222727974746040853237263614274052855481798761010419690136609461023212994045601343016303495354856786286965907914061127700961636938446385486172836688840252941031270804747613760344705525206118033103171301134440609134290850803188508212264061055969918958444211011442866381535905195344482730093714160030308157454579097711418100261289527506035681014549097031908137117088135364418191333581249383629965143127534539493739915037458691901929022834029564354218608426761825361759432509455086794570321504469834496668149613408317917312971424702054673704348869231499551260307515959662300899178659404621454128406761613759747505982562223306274188532003686296027556311721754912717330316520563635853886549800336758800874119963173580147521717915156973355803579509670571116764408382373393359300872843188096763934022555915595331499053422712116407354581705076494155860554310232342577099183542496989188591047498085360551271214780046172988913271300160596395069086476502443226724420876610888579430974047680652625816599940744303306394316348415499636717136456180094108132843269911953696945066723038183332026252607881009731466541453533658305729483205123039930434489206101340506305472494635267027057034274350949954516295458438376924998395170823304796591243257959104654905045193855967998499954905397668734897278008277754673911144860078710318676471058735837645577411799220640813084798729426985871186968719201135662177097337333763226040175758476862529217827241476445895015752090076074510718591648233855203002041274946523515202782362049917808331159482768174679111263557040442113282660328139476798669130342246306536624020415356542961317979144653310868070194415666990659908811580204436732575958290519000336338840310924419742094889536056255622747610789354128139613320098198613440227231116388615169606888188571767411815906046998265210129983188465894682084178407179065371012777483904365109891750602032626517515799558439983990439366700459590477283614401420443732624532526505482736793713706722482485143982045330494984558806617999389412150441192983690037544514840133311902607268190078267010852532494459503533036165650271788709842500770761749866643516575746998510470608576788611187712279799735277301657847940504737285123018446360879292736479225951673302275841738194388299037866128161652521063059398138186271397736137170402199070967668792397385378237709030167960339205820838737299272939575378731285743421951575093891678229897634007145554730900746786539174540010009910986715160936689389127269520836549598706242865288672201060752629149167554295261611591984042352428528120483577775268006374870933631222742171230401692380709728552110059089718674492456798475613587900062680055390086240083211150487623595656015157934387112651737717606501722100019628537249479042988233035606932148187744843724534136512878180575282483369081381658189537545854582995715965306215762489813530260152857323356957028035962545619846366815957874202888064775659699671633493856302907379718303945015693096141087810091616408060667507715313424639334280915300625783512407710735070413138685837777588687475262041906695049055701616359160848812228577802641327305680215538901330114423148667263233020450583267030830861825989332970607125905537134582007038553431565656435155237227629592655489556972725615182320570608107637460819521854342466292062872726759490377236087292666324462000586088405181732303137840646215799118839833480801745379168283457378181055386055717084322236331221117386205265650113400446897984184191258817970815605704730901790179533141485776069740165554080104118205286365641946404147533200838151486397782808929133457333447580105108846459273359026145848963142776280106662452136220365146766600249877289717567279001216471036949438502299968964206519753632371522530986550451414237350033022960308987418990409653204400975798832878398983933105092811783904605703804803015566126303065726063127828594917601310388971773427050974925665954151667841224333750240935565994637289410481148225297013461890519976331209024524761720201006240352945434337816944020419712385263671801033830270869143476220724735591818248411420628315866337761352032924302556590816622940177903029324177490712689413294385133249860820360951013951489580175694960447055327562545438901495278699098771239800415412062286285589270661441150375918476512075133326922689805696919004284289116671456271121730732279541019567948500335463279806190422557320472767798127485104487095793287681821998596901973804906423198699896296960867806509060629717793020328621614773983171585511604728920701774650299289318585693800042094771227544438417751506015174293666604580660620621062792307686913084855424194350744848585888784657369216167396095957904196301316063815958764549559196212894407668726753781359125809647895515472557690096994956644157351621324389218956740198280166684433020099904589230641911103994441249055123898527346000055339276228624166044429720467725413421421679371226509227508208265430837034637099325308194886346085289209361353915364376521871108954852046005747516086040411694293576344293622280358476244179535576625430531112330145480053518522335059957885243556990326089124775078733897480626290992755874016669329102841768855259190223552834368218701845484364571478390479440452313155216075345690956684281296960139385511430547239832944918937116297938983729774649657654085485660281969130567305915974189532309895417122210367082778017762803877325342804193763923526839274392970737575763610754638806096475313119501170730406408189382019889810671972381422836047134228329348177041699232502315037193967799938563985401008050501413355261024111956319415349806026915910617346026320300092709836823578113930137710997325164269787983609788712360698668493662132439233131983938199337615492905903443598058440180371344211072441425087980009886606743805423936076738827727400951198626843505843015911783457473972074628713391895374268939958380445656739680118343811702131153201538347917190901735804358137207486040189573585119987363432300336888119018736215066818290339978487756895219991267558865705846989662262745564254398098834599298269642690845952609632203819891813002676736784118546063652514458407210416877231747420538076176594512152101234483846372821239515983954831043239384602375903620159620674713832336919292408983508249857903250963346193689779325231292169086849113564034453621359994305326616337786757874938278109236281656422920663826519159764357589562890895438868937359739102461300576615870637427262531746927756901310263448765068109023652624943158081977637833333881906215868696825900650521149053360007206364696051015282750865289492492116831566517493286735803806544010697191496898322532850396849524118976224272866455377361251763200182374347186577941688921962539364358194084417306810393196869195745657804861196512910176548746275064659119915627828030118794033973515897954823728806164595288663305465770136867925007033132755462189567997120434627455026454116840979510695949060200563742174825950944904340111127452457207781151228998357137142101327352007466918588218513142232586861297360661989162545977420519610729472218048896214664115139714554460166247777019913454627450540113835073069227116259160795987113653761013942122920845075933737578402750993234705659415566944274418044591450767373728207447546705424221532301586335398632985890337011463372880781205295477943026086434722205428356733775718901330804441597493945374895963843404184341640979228317317253476100412357825880671813368351232710115456607214821200589408656921395028399953084060581078651424762311901998542117823919393884796198209617483397276937270853387188976580389766157076238287450963885128843840304264078697158490339814824707696949230124441598984912778014414971675501766246925112496873496458250449650114363720667750015046714317344355353964588268348282500356960688903832500528066876782049925985484670716594857331058247453300045836312659748967032489668664435316490482545475560939894781287192492521750112290650576572996782345259615907761742232505520509026459973437992915113309746046446680280040893455421805936636534831757515474008971576998473869249735025534832722617866852864580377892544123573015123023406871449481770915780371677005281489989079701957294374998710279622734017272155469496409433306084754645380121190336537888299076067480469854143418536565138110960825770037895365455201216185053883696792543892964756692092610120641294951021423761980869219321607465581233603523917805357863075089875322843536466749914312887252752777673163017355335807650260196858188847689861215308864518933242584888579858595335537101257043196574737607144517398648870492154030538913116277220305057678648586149838337358655072682048976588665512625301482857249494927919389663885098254217977933855425390670947151403244197755446473221451626508314585479643708434421398296062214892407997697217087600587924190723470934546985896427765736639852294073432194676168678273256569211659026188331708609132896429856069826959168924266873789845954005992962101987826964761775771717319638492847773142166364797978309170819084032728489485132595627846941716322494808023888166246774607930593114955976473288408403343469257173279969472044193349180917527438360816214279671867832065051576939548629522299067434803160042128111254624008692999071325947948006908635346169535633396951423077684374799473568767929151220076948985916519979432208708240339932268486756772063397062185683832551451986079615100090698328794685849646017430623857366356651086274470216369255757542986497652759013101641448631588896890985955873725696578887220753970719434830067897517342154726464773669048544783456524317098624343839120817169467809540204982413852946305917952783595989192157560783194669492591274923653371460598174995981771919676137373551270285226854832866415509243403753580603952681634590891816776541170152082397459773371518930157296088658680586709194901212286480125571751600260470051759594540865182658638651449843916171784540407113995954212067812518597145193288805390131397041602835280544552449834772858235063895463324694132927817927357669977433162936821552564775078527105969571913130599788644890405592080145582484427840882246731551151310568449353230160219129828861735841616221658326053568774010466501219255088190349435516866725382121347181825461185417476259426449201485968277015984289904179631338254225554762311622946255176431088464297819291774912578510285658446942993706434160973125618744229933802814846126626619333962113223164222768662456915712964885765867306117977183838553096349713037253540588521120497822453206412393723784352677363524222950062064507788277345544884218178964289197263639545399203829299621292135400197842797421404919501426451121969066904972830847666161155627183640954638877290281461283646228389217607178894922885585151376517100324702837596809088473409972164383776087950274199050262543668200649442743326990113863335173230941571723047887720625825441880854310840146526733506286633715383185069271510345810297724517356083023272306297807060906489160980893064795700606830206294127916348769439594011942435727332149875437780571607152280815450854472856561375458147030171860901102063292606888956077723212404344645965316533137107034535657842733587890856962842025564721864080021148977584082619364670217337817227191144446131737705042796575777451036031920712130293035902240174951612727700943056387730586213034715719960741879394895300224919650434411702043712117268506465314489006433077089420050718745876366447705127227337747573693309035524521904434357245296345299001131983833577360373326328069870555898223511371245836086351909012642512004842480003638296089758646433247923132400549796962574825418739396908060128510899078586467432775805231974798771717357901862797812319698158410210861791478939606032457583930340743983881896596648902308876516534802472151838276340909241898558250658579114717615490035102775022749606727090339143747569520237018227197171302487181627679967297990410514999387359530481232955360309308584475443857263067821459280912034260041121416117916838619619436708838214387349793765253773042375511788085971316379322893014234496185369854572992781487515555203709578283651907350434318429305489069454672645211125979194133230681548822705914937561897813630460243977876961144085601463748516779491791203381590046372644013463800661007228870908505829139408790396750591946339075506648785301414201600581065388813282005262893793116372274657904506652948088790748538719753129340030907293416674071095105110732035286833612542205640562841180588320462291437177486757905408222734703042368799684987959291835210232995930313161008563906700505263889355940794594616960543918523687638206969429320373939434407395399711501528524936730222285066712609523216459978718893341836751846589493473410765313192922443036393289884648424319359362600535227739439296536893292030366483766854693518381990881180914995334420210547281999540610829275306371370475766925710119754742138335839519976784919686663013199487213465718473691388923273741382778593512832085067588429600647923349118565242962835072221486669034982284967384281567583452989112406916711182716762095461023754444038172791137451296314775017863264694419545982249850919652704297679325348442445535119234336588835946795233680733559828808938626424899453190540262743603608508697541061362763188763640044387827848086527590946596079699192413503806930750941250294841692611802801088983057770283637340070655256507080992704576461133693757127823504490844416871509363266227446871726797585547372821648310742017853911824254702948980675468524703089082456370102121533819979844285070865819357991129820977105507329045541572631353472564929783401717186315771814716200314269517787632353794785376193541206125653364524965141515661846789811196561764963760257387944956930756877966199738686575066305709809473935883800479953507997586250465415137125434516122785522359951403315080788754617887500431321201761749872317976743917639707125030462129022669132516641166405989948744803867761238971615263679249826926051943413960050363311288739357148395105533813303843208473457073035346397547113151601719208409414664876364413248739633724597893816296867505872645225267738003938400634676683353137722410426010221488591922709917582884818626529462868830300287890161267601624274025487130695106462649919416758283784549178598328073741529484869723404545263202330852447785707581579244410657344940955869153198874171076002040334585226839146103854871915816832041329464836082883448455841461245994048708255398047729877022410253499360308935875887493968175090326065214702607020371214890216362603488352990897823687802759116175635529281810320354549723286865550249741167281753158170400802919530068128641880332469058243068942448139822395880831550189441523607040394068636169241361733300642128289554956484318371114284238682608367510858869929507485483112557915153012183240076869716004616664335861527799640249814358706324413556153964310120302494698416736784407464741110551945032194996095122814635852501301873635579818919646462994298717548627910875214079471150754478339379341677866938483291046678808065686564708029881821578853399849737918769586361058181060451271061237363851862902643514899150312896087729926676599439346147553634446987368387508934579626299850882819102598758088339196960883005570108118004885884970900455115451953918228374098943197815731225636816488137632322101830262556845552867901464433006974534482874385082889217778777977311407561133358922689169396510549225538835322767455961439371685590769205244514309121808683005276961560892488868041118822344743229738253264756330944633617255678466504596466839446892064745116288193960824165184241480994374069316110336264382817121736240334029154415531317980120464937254491095513796134205637852371078653794258619666109048107016426316284373600579698199714303493355508299209680500373922107673467837360610470200601369894745554326812213563295625654121782562387061157213042949135523559827810491181412860002775787745836938899024798536892234625208024568552328568739832728368811854148768330207707554769523690687881891778411920782791112303382913677971952610247384722539749319092038034618093770308024763646033610802318628378171636724756826381864961632885716335952482613986733672539951129453241076621922321991976889305158205985816203344764464524683645301778067553233793808745889958742055955760190904599127043617899149176565603211669358543044853554120920788914679415852598457371913166028244015676778487714657979394383570252176515942350166770866363462238671607908329152925464536031546527675536048910035999835249670141389773832031199547232797708702072143701080474408881442724345999555382018744118912328273247196051639703933173735163689319414256058750844248527852051969888834078750540627049131603567438334773823318521418385612632237657424995154466234329067171843551598487363379372671325215330523661745803576243300436201864163973546848646343597940397500516124919328903260533096067007652717885639805302067465569787951209973271562991431391175019671648211424745272875373109637994874366986896433487682460493452445851168038373200407314763180831540325174958408968287444208354388317194542300880759222064653667602571078245971761242688005623404447609656307982302093176449711851037722068429727984192526069799727617010523579139270438316350821964395895253723606089065574957707547404399537687988659590407372687829357758404661630548520921448519638849849205844446934202037091812479373433029252428274375124016863944879367426675269765649007029035887416751396121124993055651849092508749144653375200775200479807615524607398024173173875886404774001700462108069395201252151732060693356114766993374955000573384252100553013910293841032936356814634984549861608991256687506630528463394220424299419420384999456072736778665066191380682543879296601623059537646466547042323128391536987995318951298940713830062306106870318098584776002670296267685107515506892698720587958818708312183070916000477408427063129831933733812229981258952699675383282109720438200813195052717050081247698517394010016377618288520832618765023681575555399804124730596026848141250437020565348708445482158698237058583216400785093107371736608104892080234265588888232054212247026560190693878979522432475843742441801769455530948870170450953180267008353742940447100358741830352338480947659464175096735284412520352280062090992996832691981134406984017154730081998510195315034158011724385356030617132016541369141095856410175322845924988042765462410967762913032832248704072080162283462744695101285670410679913685598156213201431593836180870514578281353997683786844239136270587613260924855033649497549773719237798338837821122906687034111397265714694414256198435931615612326500708894411338480626495569945487830571685321370347565711431255283264023177409366597906992445202385504140336869590354967034985077068137817973064095449720712069617081005031369475791653303995786442920387709310232206817974051564198392975874858228545412015773827813983624353001339735190909987546733371473272775058303049195863989916701693315107357054168534756525658431141742823187119791979751151948030849021103041059505554353987171535459087963708026004995546461561148530265085827734432868091935990946071353429244407584586718162384640076090299218070122647252022378972044814915917109792564378199054912979121833356143136848765344305790067318149168240353095565447685822397861132541891981130793257919089528313980075429296637897029099465796954321061050141734333861461175967609082688847134527889358136722091432194596723836111384266161521424371172038256151771789710789101729620556263118869755960981445571970390689230480549385829621194085999776199002419165385240540581428950995010375505631395921290402074928015190044979897757805876432053472825296768229366649622521585015604420268412471875377806631880949726074453465331821049050070191996417104543663877240374830981088199374804068124521373277421521750383923108464870837873458312133829923563706840329859178834091099442916615736526154108299155403628245994123963394348540749851150984891913883718129934500237144243729719916198361634215375897943413719615206308601053994583963581017317020873692671413004720963263275197514089929585833984855253271164389020741921582466484224646774803841406573533698264701996031212117782409923721734094240729970069742929630836274727002939765094831053125427019566648836734164144239748514528225323660884404583180782269623021995456542723164203801105545311692178041935558274909422333375572695502458258792821027206433072441066739941004789490583943997112854993327096624027185217598091654522946517596090729925298546412891519978993779960650008222546959487569947422852127309252070429710477172071080676938671568229783109203719534009177138040331777312406013088194272997064405086381465764830463500882321188352932378435822704830756507073328992722091863991865874818482733918187411312633847264144345698145637748355693514237917366771090240258636375428163688054774892973691952288468972022580204169264776327818958735306081312918252057695788665722833035077698179104664037711576641228231650845778053736308648109472840464747247802988156392113994878187299746664177958444418423071740336276678167470147980236123102604675732867165206071651616824023043435061319452604946720991099246153582654050710616261493716852766740666565944241847851045930157736371630371087914109878588779219548090960160351917279412250633902606701406461838710666901646836516161348129940179222593562023443342130078269240461457352872795801567346538069525045026161427878619279308847529822700819450970229550251388133044541555401316596314599334395626634975663840217361273659329254467268096553446155041367917720258798465611523090857738031966328672747011565829197253129628276045019613819295427073230327711359593317630698400894325515568898442328275571618125580986178444094949318811130932772136096497232170798544683510765448424837575873290506436454950863372745219587459453157780445841798015645821213689333695043020063494236577506112031007450337073819182082646674319557233908620995651404007086005469861707716789514239910844104088207293747096977476833415569576935852204487227123089380248086270248138198357703865968578726844278867796949618832984446919848215025364646200957063313420706150144714918298246303095439546958088812438519640588407747935465735067759434729560227115724166001891248328926020391698296072407786812620159395101063811375078795534635739633989069050581122938165456063389249201996990779425693532700711366054997340211959917827186551140840342313740034390699813719866745241691129257540890036030026691445098259901324080846773345964798287256878581516685328599274986662940959805386384901284924978178874658352376271571474766650542985328147811861906756035139974529476069549889891234235748795615338232803882332897159608424823806149671984001376463390190623834246207796001055671032800088171814476389276488011027397520473422714869014431117769594883711654198335025359853044812708804229860768626115682190153741515119927487718763813473861296255134260217843362214879544319763788388636583071064314210707872430314319912010279394727230229091294882171960806736760618579225219678359788213388033213972291916354754162466563301932829563682864978837991645031845708477824258253064281098681009916133782531189153560798843695969929015133818500030723252023693973456509806571703096628061208885927023486414670720997925442181388128325949787206149247544635212313495014842866970952680378723962673544968582485213746619397758022368043047759071426085215474688580839710775434955476131823480113260437314301299125582317493270374867693465734084044146855271111802606695936163078156910602507550534111044628009693960427417434966841412364507584072315042085950619726649823910514115513798489161439229205124795330656172901708474137463553898916461373252074268495101202705085008921476257141421730742873726003121488356945581991343711232676327084205089043133992282979236329764651526398141402322255291968025931743913906780697226789948156638263554358639977051590319444801515021852744648819052228389403333575722839714355089746439459142241748917507740914814025406771063063465927586725925180071520101441524558183149930852038730669474093688338551229242408156959125761134951413087054244856649986450860975626942690554441415971913256510307460101126817966330412776480332303094915183995451806094563929696651773343305106630749306345226248082781343783708207687634379427711555742158812684752329429685035841244538631527185502687636888521543391884040353076642169944883398951998494471801762606470297440399349518664521629565447065683717063560443360196416339389289396227802083147879656459142783022861465444435992439253717729997725484438234603423882545719074045703575564566414606952242663454491492167441284016660806470939984525709303593183208397601304386715013996705045631371209336118862709658260910999508540848199577985294020247146956356536738107794055032736238798034041262345205953865071707788197548458571406330767290341220478793053670173220162545183985955126928023422153914024984224575109779096424451625332256282636557246427278864073191302396820167440451023108715356886539549428401824321085076170327433487119124207114070752231719669496946406510699624371315926033616269834440674999336894294863110906300780316285006145795961853315301335640887288895224620249147764826330540599761785744048191647261444108010676407618398253389183638305791301258081208168524013084860335045045974138135779587187329963960172228862182028167556476200571662384887098489912245246989608625625553923372734305020907817620879045154305976586098819048208772289422030802201302046230643388073687592612543839364007141441762160272843652152652489059855547139181478344235880792186065368957433900321838452986686331014258699525415198655004930904703581222936307927769212861994295778149079562809954110619440078421658640615253419920717003702152879955065426473206184864490405888567251139108257715516314386413770920668591481185540115591176634182689090889237233236742257422851342134163012437891366049924269561261598181580626799488545843847579893138521515247497810051818733083406152393548653515361725313904961627048041251000442248298606017304607847363212912194325846873331240691700256760044715538756571690490230644041187436523157495562427694506312149113383402961221530795435961448041796569706244208555385253228767641263685287049481472199941997720016489592755498305669816938886768163774560793978912444447780158084619547914786812284247936315712191105898501461498352150023963455283445032705621156181002559438261623670712112328682444794340146244102681253810600254096478530214323145848135111797161099502268490054413498125817072543021390875060038241761151197703606575900868240548819716106402903854684737879406890886857711026567436407824819666083218949869105928292960649989893459364608397742747274429805414115693111231229029839945109874475795911001010141060567785312704456996400692688444553492920380461513051282777267999797113529008171832769006629898438035250274310535840291247716303884456793108973706407321579425401037314617215937620995641389351970252762956903177084620891828787437717388052820657482664897285600769824049333919578794949942007491948025258688215446669643195161777769016034078933037026403960884310809919790201049470986125177879536486401296021907608881056617996242793949503687292855299491406595103127598127815526031764658265126212294339587209995601796715368332092590231286098519345275833044484596197180568941052699988668748883377473349387070036754725957401532023867131779052397916405552059380967266069589758896071393152909676468813487587783184200479302215365268602305875013174066815076051999053066649162751928764820706340596624459232276612502504796124579332597442297194244519792884722364797196678501111596149710828365967397822029427914922985830942049169550784042847137820812149647355071614906975500900813162276577233862689947001385119687311926062168193310282107128975058169485439161903156199679902050668122389848527757993771254216293899642128747898907312272517674501724051567811088025458881507048708512639343200555135984472644295705254871220473866105715179683941994895098730737672047157364811617235597440946518779791410169719373290826925331144296123360339751747534181102058984823432177348497071856331632260896310541439455990523292413658036888405272181957729438758546584939521508931337104296955239744343687693671647162818504999461070877695306013636664245040477070659707885467181893261711101480939349699675666351599114261078753786463497992868883656735675124823752402172434340383846466755516308073236524348428278724538528155412531241001455917506165569334502637779763934814349644688821915605541690775576844256451024168532613990825538923853106658796185753335491788089743299612058976079172209929039551742236449656046368888217364142567340237098537769127472639299419456172991870798828404518537591042373234180937029178727203072708858813648235280001396317257085375170636456276869563267022211405182976939200447498813142093281188148758672653835322964094213901101585336833665710160719306401799724741759852008890644479097515113995117312978618915167464766195644444630179126530645558387551957434805416365081809726611435613929335914626375618661251379640269996111234035063447972640899041639645344190970959261033382597546457283255315127146834743724288385134320630456719773510248494106588505399246814492370210557118508547844437203107403467636298155781893442412927502438694422375826817604170860927052999611688968402932799680591776614589706540631558643067849154651205709256761550120330671136733478412576529124785261331730121633576025968377589495276405305208405803710832261211619283846601674761784304134432838056158707004776534164118879618879243533312073295121750519789698338214094666875218504970464939693215898734391421705176924790219146777763322520321412428457685576029200131235166192027419375066161445262474323090859580233714733619893516976013156660904122708297252953536671223124286439356781474125057057855673905507710159998569891949748374087040474040700820339562382380693253339381208806707590967342744520729621719121869189100950095408895370088217783900820944814313808480943948924631402943428348842760794867880984983367192676991868695526009247907621519613960123533822683253660867502557913527417717839962065142028843781252185904242575670638789846967374592105184093204817113543373989119641087907567631514691357512871686676273296673897264914177479898953619733277296471257315068643467985280581759937059761785307063238092888530255067696186974068413365151232228126652909976397912949944286143616392066324820282121349346705586411486113809187537830180990647086620320839950535891062317412490632003594403665608221209569349051194840852949730578206245756965222045691272130997326836099769118751482426659923511665368750879927416374591136852969897292670521505183723442609827949252468743414190776487041565979729482327775413261439257688909514468769395335734055718590720843059838008963884424789367679627173869103728455105984376909590499278840792584574203058841904334318667009292529858960764996947781161541730902054838888855658792532543507994698730163193704131417577180207961290546020083616240798408275887816374666842495694298566509466361956873695859887963802209180338679260872854524186563658024414772914831790332593669058312765533955521553538728477438126054873563607454464674566011010082884154122000165363743427197618289587209239778942343081509068116682470942811382459319079019345344686939335532683873941816495195658659860802116208153918113723445914963239834719293137465094813194380480969416745639949376836277985827443743713630998047923295612148055122610787449152466801627581317819064596886795701168066926193373821248740416309146738647618073466560044245915642599981168142058176660341687895382767585226797666740760661725752853488640181171470989848944990604028164690618496310954189916870071559505094442424956552837448524634381709639448071771192048263157130577783058534345395663565043773675066868394531974736583781456821072348430081822388274650820458232188489625636495648062176557875819848682843444683440357950596977881721704231380697840934011253131128257361351834989172683784912515098395061658247798872421752949171570567369929549664376677750483951084687591021210603556952721392855407704919467992418797611554697948352583542143794815457745400527638543143949149205272840217223357907842105097406655400885085582014629668350252688737734056613121675301771810386514958206756027963194374109837471336867311800628628102131354765252937289626921606135176431768315577065017372524149229689669977547594064482297257832076381092144548040583887217552513809634099385040873086036390632736696710023086913998268453929197067109913687339927266271808447757391302083993092140813018528938211793214827620563359587735129127989444986162983847946762834683563309428323191769648259070540065517958128719456256018382752636174824354872270833294222108957563019352927265819603476000215609032659881546977521251842522022281665031987944502670947514927527510102933407907485505624410250452261793168717889798386029869385086198838801349061727205837689797592275247144597627918067569242711943106992242840162927951879935400082437988321966471653120290710195255757177416996980647261095913661112545935837003401010797927364717084993019698503016416129308392202242151791476668736478383687871752972787631501476592584111789743511397976391275973420756722891640832539051007747097809664948762383248232574304592646149066237995624634208844509441675511600372805926590640929835281824624710884417372994046600021278075040259738221173454557954543857383874618977952843658539748032763268301763682737677158798909884697553669804922907353297467103750716379800242735317993514242276294602716678857829130760526199670963719056399686047889088171009939432100097575884850912603900919145289580272126316861760939596258000897209121736731785846323918785018893507793101942947143075883953387048597103792914699717683826299508091980457579149614993549921998498492055627333069143540838115786212754675767414321150358472855386048417930097437025471478238667112718036929628567989243159777583957917312840204303384706066132629435645419801557274180813954348989658194021359190718235972493547690725336824328802621448132482768523566772925652302937968444285824954054968582954730585836791925882057042297800682502485273363299324178835891529990563681096287817517937858746391636357091856474773417408694845968143048187685333051158817863964261248427536544160146194769839153182290032603550095678713743887209258800738523700244852550263274248153108157865605973455568397075885893604373448496732526251030472185771216849890536858125997519047913971821441711121400627181981796698686002588016768266259398815528401281835074298009952509725600316414538022229364995658465006159684680689144724606724858723114850684119533780277783937957756966267455374120811548185649697963080428461790586019357671896709024915570649711126235482873014667674809598060365937773074729180342267671533992546275659895953337238438686422464478419699545211088129230176330487348886030598175070601589927290581402527249489197890781404397547805327274111683955395956891244067334914430130790556855545693792290946903488418847174348018396919176403940434204863710189989635223391693296823441128583091858480175240424184081978256210724029141149236897909197467750061251002789829456142740844740704308665086194419161841961290420352982501652014000024900729689562881516996805181895895477256970363594715201256157472953101358486496639413353253998588613822770112742218156282750375000417875495962144932929317376394570853412022234770973150948041231805764034776752506418862113293813719401335258845895229223024582255760418565978364838664738131838992993431839162981788026000451052105235564578797533105710052012473043756718309254648338445268271857904193148058385899768838482861489349981136004632437452622398667276829659623595184467228055880807976644764524390955929872506294733417190187546187829939986777984754976289788773183583047859617609112798406142418121236019636494543074093381865392137503031395629382743152162818876459401432795988269872247901423654075860056882617369175189673352720370667744395735224422845847289067517972234764568655102910928530604363943161647620781748758927309916378633021058658083828650229878463573778468544523698970449906875613953115219006464558391207213863311885489591418325078626865521751509005529220929904205400365321411438295019336844752224034513251064973394014734389575440088633000929867931093164327144581073483824101118715568396815566662042598298958028521220158055343885821601226884680144493538230795890370972866328791083357939017948000821505554149046341094743466281345856676429487983988030831011599957047117569291450118352353490088483456502048050298050070367980869891072691150862939449489584521108316916758253408314245184992766686923539328678543147256497230041822517255548703527803935672946134648287382506972353163075455300638908458052690606729506306724702949768830832390031873314382024124848226279671999318374950549300761431589777920466746838629187216530041655481104585227068479033339092835548563815625071432742174036464250802742152829100166892430429692118656096669642387183229843734085017257941708970883355426453576658945864339498964838234524847209741428342456301102120630058730311622175972671323609970408135747176647022242444046666000561393175987678603768825937814665270190114615106629070780583841642854082025280350760028010239560837141910092527822688804672746257534137141118004802644840072914663058284802399632055655624138066749691834823081759195708064295680607621621174036825232627457917721854685153189547192634888103413149533343656600363139896813234349925366368201759687441628554403126804102457042455084894095573848376052041289433029365719820166333147226989815061892264528648011857867212132143108781314553574536123283806718752416596673594434886912010527819001740968588363060509635904214414817586899444567259370175299812237629574256445062861829809713798048190875141196969504988037328123759011343141102176647955376389613326868761075024003112983497634750625842773858538394386480617279174339641123641396235252348235241667383358649826793951022339223756274207378293194063284898868935703107960559856493910667131823627146813846809955607544348163821345339449584495850013946523051689023034433592782782716602870646790628146023242613283483410130907575740570499660242459340979445874619190316385569227026705844283167401027202426406487538708395168564846084175484956797222627832689405211735925906288206217342038879357719699912824876516450559919762510091720581535694925433536571296451140126119242903807992351681454798934239539096816656266631010442855183452349576287005675621311597482658466631897679842308498759031119092470170624431763199436393197275766211006634852820165255880225200147407387494075888264251378040174136426511661210011496453742700293402789771876653946094661519265393804590351108126466573852443717349518318672023947822632358412838508048893496569778233805141584581640014452755176219769184391817824362662155693779116169138597211054548720703938859875168602972072429542496123039974292253331816645350883753947587746048708860857913425690071595701607937700962446173587838045516496106740368015347552846325756103447719180137468037626233952580947820106476358007586908589029972420715121210311954336349236562739064687499790673021444087160848991099804255568688615786880404813673285063249113963805498202941270592313939961911194973154561324308203864387322881682536784598970958012954201304098755678551143181520780557923504692084118245931413168864930425442728620998583318360238791092999629174130822412947227632729258769552800296341312133728452776043351764674669664919951478426633453315804846725827448944455154464370555539694034993639510820615787969558960745730599515976719091636872891248254967797214633695523752591786943404996526874939160952110926742984959681703763557617552316221941985200711239854846122192727714882874661886936342242184943697001905450577419331399046241957604930768970061923606451762717784292183543659953219077611373430970927392817817498632733962635410682868213467329375808280109303143508802062741913587778025341581701387513175518940571522388187342844735451694013339599954490633953504395963567731794168428681473294839338399819386568291698310573665648929707955331555575876145229349315161322578110803914086838899811380593977889373892196769115523405956153918338104537182428247351538000476198383839619838303151922939633226197226021738949746374254623730268159229784936459294160698451651185649130783807391721142954438345247660662157491213726605377005290663822801181541355669501092263481506717113808388477465891046556112368470339372334222789787590481571926223213397387581189299612492100568932699196468690175881719686938304956713185234212145705144203226608067936152036981604530088408633093052267903402668725997842477820013332767457418311375622292245662065278960900324213521405676767908351994532268398954190945178068262040363771524828482862466524340420451104335825821224297667152517402840130077819011361869607347821623793195397422242003860029836777859982862765740434130484169518185636441635045206880180618337873251262415834185138768475183218259937449415245910779731270912236475829330521171067746653764909882489073421482684002219521148801320535752958547743472957146672556551077005561832503481651853367505954232027092877971930680682047709592368028937767930755587883120329600914428243764567039074912379152137861597744752983065394317574471851252087459077232839842562875643555247671055604060379774426142575889747702337809196983782290031578203959866266940264924929300927420833511405223065782188932933249325553796763390877570378674547950213444137483841279998427224446765190089039197898606725519311664577478265827690182872024933881314245704316099618990609086844965966977828049625051562497994413609164395654873046970822559560451628195340626368470576954106287448207074050003973382900174184787677345619054332144165983075183113876465711766576208837974520197610619590230394627478202726872480790710871996974465878727510298359882024600534927447457033227554856465938809845381784143757101488790790660291360798377491720046370140469737811761022379265798088789347924555740032894031845945312093655328527058366022766355644387532885060680446485130540753563257732006821467867595616245906554690486240506870019619173144114863451701564597871313964119655275568943694239468026746746843390760174583430145839213725913923321424113353851735245765461813681039662883037856268357979049193457803409950833391121942168295547316963987449394319100839008347089772542340762888930075357232413793639608764983594738387349758692379351672041172549393715190455381630293702444437164034250965163285967881671499487468418914178775974095458914872252327060343507121231992221211317332483733005980558692750651706817542216152324841339572980579789112083533658176651974653768173953424293967715637137404078147017828209598172925781752596561148184954270034665452614140169965659238654665701243994863110769998990005945852196974482201172597471489937305567727504232391702842213869380112377757167299964668555194233919750418850059372653595116658945113991923016580417608081691463349297875447692649623782282161828352299878125360618970182523822143571115494241520283671596740555615369985226576562594349410356624477621280195508765904405679551154460371135312364140123674408622682981069775243377670207766821148498817889409365067301134814251761105808325993150923671385091309194615292022117391995254617276926964879962666408708271127749587412539954031276895912067649869805422414496985376257972163837329428542484329955035578868516260704582311635430863454584614377650093825754319725528676503400509392438737494871793725313938934365674720402713709476170433090197771783795042340684679802346669650177767883390034843212053817455232191963361935897972201240662316904899886542557265833924346705414833379244820962428652755884295959208846343651846916814956629697421243043179538191251287966816264209175002771507311297689649489373593401188961589771951700605121463962912618968740227295179921091015480257664106075850278160826064113103430182975781123977290188414068280257252711508582159146896005612215992885729575957316614632999144230746852250326137417952248085871029197673972613562400741466544105822807428081421137038279203482563733287919963421009085458395222228776983712637552328780395358978759787558486844561135424587648288278042524323633400614640501978206640487990724490369184911241675295224738755128107360960104603987758766719467944070591227804381963951150610599211664061077956076946290271334623104535601187126145601169295057199720279556639130062480738059689003859000659643596449010454720632038630737442916537497265971689171603891477836842080360645546845272114054475148345937777851157662639422583917228847897753868465454597359218339310378051140554945673125836965111883309088377798473634195977721148942002528000992525571911979627433080268798212232508909341381127008336139415616973173530617449103357732329394711958327573550370350634167005911601422585329830318400744437946192872306747592747182159177086883286887425788239898025411014550260499838061640501760198887246129441593096548168184037948546962307403780500500783164957014821799490676895470068876726986920824285289775185351072325711074273522907005661259703630060953517136122716607013121775671384861276610731882205341894993060813906177992250097070589909973587427473237550600172678744677850585316346030742559965093371672469878566470472063931375811475300890658414140498899805247180115490036412792433459785247476788979435673581967406569314302910065413690622073674387962290354197268153240105831978282542944411869794373048212559956503851415549224652322383723270992180439357470503211946623485540944052507484051476366880077517463839410585764904959607741705359303231196219788247784580285134411915164021328554534815171724963819428456618873582869194278029146015779101128373469959726659854436066659674216317605989785246595617981652377785534370684418945125477846770074332973524444315301740824683320757909508432740707551159679668108458511175543847605260378205453837009248181059780141804383180188087960079976055242699735975264529020627987718447635977561789534352143497570660399667967797264775551293465264078943509737563512493099068893415067472094439236038888947657248493800972035901992584064615946563678908752713493366356835373774063604839974776737261326069453114624540478939966876323660142069118853389617912905137196311326614725238481537854764746633583895223401753116327081007276211216935938160388492527397658437314968221040247352496979166187275295619753928156244410285150037040396461975892068677466574564751590649240195687881921278506655846966504761094474767302208569863900595061120773076906198345220199549528881975700855405468286176091504298268358104297201032135034118853515297992685475460681256573190667211236640950774388125551274199875389127801746420460157945353097481320672301764614115792355243090529396408337001208206073829820723768677986500713531845362694804213630616329999417018073574429125601387802465298061893649048067478440645331679417567604952649336766740307731581559680781200231838183387196513866671148323182428047766422619944787639936725884700401781708888850097913866002853421468139161478043725476965923577576166933371426886805218497143692319504244551592993198009870372833931367180539097967292346915757667165506981317995860430977371176663534018526230650785951278861083810747628854826110044653805090352272287354211081642757461414308190320252197582998447643413645259911045077324738413542330604197289857257690406290954182868571986381781563188271722414342428758182007561941445702843509904636636979021498535018340573243447575760438675757213981702028060619779059119081951544730538073827197732858006875130925026638557274160924156843685300073536184784028345186437270739658654855685302805922961648291377452968636078841017924296350549318760526826185854537397733627650689266594280681375461445514103267137494123313542013756167772707068344818548205905818162215032912092394741180349789581305535300346168467131188763106879962242486944114884640139884700639525220785357765385560511341825918547897625811570377417127940703797582974555663296426556576832293802880209290577665217121780552003156600057303703729863692955655611925041272040744807217271517183591461306599771480160734975252181812725748464695347246064358065495559399497915875716106911942757408451079873857748746702975269465998432543851995619173236025147428159795178798301763754278582823797946026482393654045177138073403709652669304768519586173925538522894557139834488447086571135135448842281699052759256756211627135491960155253971544277666917460714345472244158522157196591775123837747911008333752687017455107209518710413652109945690817633567900700115562965889324070845684042174383875181940203013183852030028399588772818022219218343757753823736904805439485233412228388384889829956043873016924900338877464711097182636764364536089468171889894682423154850232530829321802288556683880039805688146741972864316079907045149554556721024261159253833056137445935416160641773883947752923361630318984030198180564824845924025047588040493878458078299190641509788120336547778203311972271440477763784961990712438149831603798042550124328213707171666576651808582586538159138818228996719535606334676580025920021922855877707035992969696069297796562981224800634352506160265220998348120876420158353509449676703931240615051397878980017091825858843795640565419281972470659134548290083435746549687699192231163356872746333043711609734850537524446229556791727844164933336728477278015264598483310560708417521521704233013489431447095234863285118179323240148534660484854424293904426810125732141597892968822076451329263530348980824716874672715616588479839260376127609145228807337059600542095486520238948959230410523410313561319433291370681456720880353048248327226487052233110239165070489894757806272595732916484012210077472797819878400858412101757239658551871222960249267923419101986711725223602846021794936753321597403785296595905029715074080667843091073386782894862992813486156250944374508540420436896965322519967515116317764935617243989114370404277756056460741929359504054291718945721403909332231529820806104054200925407885951611471195847147052928415374407472776267375348956584163915900782339389188538470413220832453990186005979354779189863190568182672209006584714376318019070777372667437608968252710867027185717365547137533640174246860109437037546017970325545357130530144212042675975114232263253506445931997763515311231656037449384533843996561353911070362722865954470757024659622414933208565974282362660242166115625964492940592613044213603621501751099388099086565980536926972485644769716843139763004963231727019710439014605136818481403923221200865855531968955411056134062927041785516933279475960117373023112064911770190478434907730008628958869785686551262187961439767418703025301684379666354226149360937850974631479649308000297425824892478633887002408767350928396940571924683702028067977527151996924010097652747719541696785894857721900305004590005149084035923339637785526263368203881197605315193284387151131850629599049587926608029184665039655252754395464594277241206801414631205946596150546462140001221853417513634020890466000274383753821604500376961468289638226593574226695996848237968671580809174487212097697284619496895746637607384863093648311466849181139606520896632971939688271987571696952720220574121198223985408726147415702861539776904316718791308546226192717592516086811414975806099014060367376345652434461333790258994715143642597920103109883464020084892835895905532294026604933747547445931551575698807894723170140523567968890582216512943011034969192614888037454741498002772699671592904854370938053048581874009180718064196064998820771551935348664979862285721124260506911271862442555970497814123202138928508723992436984286711130834244718463726791726682193814983335129719183558137337977567046407189795906454255122394820829082153307145709892605782864902878579795773001232050273394366113371514448831933864118476674909244278697695644055570815537079527840397548347732294402629137193745547257152657021033823808575270634692688529207163412944217149921949143442252073112051055406997269194568289820726640356266980774057950889180615578161555316168538485848504064867796364042345403906310808250684344469480463739477000095153202523313148013076829962806309716063577897944571114339211261506618854334066903966839676086639443426904262371845556022146162751861500408387325014938929545027475170847478527315800647510357920712869415923989868634582245652684217819729143381448092048386707558296762029903288275761737135452565345742777463566251721911524226130990737679898103622606195891959871399593459827839177715513254419315465236686464703517083567682703514873724929735587415046676287636793729298155568767654224560830210815278805163079618057121387853676084318208445944283091396192003834369186004353903305686918628878767619524403880657743916601839998923027852867483625500746594161779078741696031089841579972223856018315018770955602873119549639920233557258637198343251141999812518211535322541966577673802602864869012275811569164983605333340940016759335140481838715337958720930429723871027761217482386460696631588435468295499674414427752895569412165486297521525324272712787063753798990457272929404780999420155379306487309728664101813165470323880166737607024667503045358718123057271943958811952971976370647637753460941950496340916844865873678507800558648451584987885288828779445975480462180326005984631556435784309062668799938612212234236352000914892748492361154524530849587064574467656172651347319748536433555797485462326064702189553654355496457435538753112369164673346037975284602629394060111003517362278680511170774949903261611050803483890377382730692098683240293876350798210039202792249321430968365920821617761149127083262431419551863331269460879890280401145210719867174683020644207198829772491926005603884384032775399143134605107073208573772003676751840385681731274068368533080958156046324748122092636201263083060757431526703695116624884277953272282600702444009314621953311412275838840612938651832706304599452188059043608027005459191405458072532399652688418265588325509730559151890556344702209681883234916967510484877116610336742993183836196567360056242381805615880433950844886807242184414469987418368033162413802051194836019873259232236037251604663721806073411909450976706166460935312651429360639294541884901958923018898946323270493868442782957785837402497119924275418104814985591925302852788200892228466257003025809994412286447938549182081590656248642741497891430583739983204550073064739998106330783798420159359475842339844621853371277616634248725821788619299243442589717599781014272903576645690556686373066695054070721201089920700200809144881349636330842056857502517536306803575922029138182196774938290728011349984443011513760189229722717508613883401450983575801974081168926117461979089695393765262572474135424270466176333194038878882504041977250093381393740862266209624022404303679967018448245931002125040833227540258588270796725271569372788858873462486178575049848626810248430784021859947827329453965289013117876146211435071892748257148496698938216022653427712083287225573014961150304659959121943238506713230757274362939127649962348346243260910997661417991072282025001764128319953116970997695458997579914402818473417420044069247524190405285689376217784768903220912341949707642457080977692930278127628175511143277746044115927241218674866572584320144629587267377787771372428567886411683783725638229580204713441686705905944924540641688955982099784446016207170175144206091053578065303667123724115192685930846882092113178193385690611848960887982842056979681961724730520441426795483003556216740155807421173743412305925139308268157072226628501691351546633243405328573134786665909624383591333220967948097711180108124861464219827004414076744325418349301473051596134906474192342604851364224791755539948076263530286721420436807230823029588767503612512574758583748478306759537814776442315430157568784492820851119848660081174989370287619568444832536041992061080594795805175175025679203080495903263321067102290324649731172845701573137949818644422561110736637626279527335417898350973216224530825111305158289437289062675737358643582496203858639856704112853489876326113080174396495957522919840092498014219551510788688646129158099531610106024845823106865206667071102941308727731712440114283298366029663739228616900541614814687525954161685166247534222036148371236549078755941035693367937028079858019029018994772921959257169833502778695174510937650264752818967003930364799399136511159283536358367216204047132909791502430162977179254867991031336491671884468338910387226986650037438867629940810632546545397866800599742815733200078127434420307317738678448643308479039224809812409664116574878313089635929292975621132159678344647197166327366081490284602899264387915446277965591762056363391551591231829251578506770724438649565079815971685485045363610331110577291604875179908727613392521780213648232480946710693800462378222124189220707927967406845251437877582438058059217359304745340991566276587508470146461395736772289579144374390142542773537874400824921661055756181053101859285529098213834397583676400328538993463945565441486701281819810200442445090439477941972138867727112554503203752184045698824094145133502692235041227187113532497179244271053234258993460785018761218853737283049920867405713665720757975874917765107077793824655812539449993884799760706054586795572186891628018176316659216885156284596651024966210101597823740514531468042471405824618683814320917313740683130451309561824578247842087516060585232987547663279280737239148841610258279473928461596812783961840639864311770120352260976139429515896802047386761079244801129680155393528477180065277651932591521764295103912884238719111767145197889536998891650774954774106735585136851955071746019476152053207482098298541610395558271859252175467931130042029441122951459043439681008588000075947941084009629914347694413826620700435644113417055740430093368103953843537508892753456371999407086803736998092755134318234116861048551030393735780111821888899555256361233444330862702074721607725106381996476918299251793730813549574592086393094352437080769774935475531288804673662147913399891166250203114380341564076113755631678364843081211883070812593703676556167616335664944783124236037226741105797218794132450289648050410131520263188716980051461509768435051302496219245977010527272181914150995233035252954494092845306594697285637598042523101016703734616484118519583773839957417965377742185740418658339842197780722024144301844232971406116519228829068484785703018995894055806997976793933199798503158441385973407508363334369033294660971019957411589251156865911523184676696652529995067956930057712751011670834778147797043000092052000298517422600199569989478585472691277257241477501427829985837632216324764850478237474131328199102656410267097448485142546889455563104337935302245587913628227677546995185938468466635230071666914045619278374271235535616359472989091268622287176015275209518799798142549745459390142206826526868132918892647362079894109222803307117626379600409642564873891514524088467828780714253802427519662931224976511588774602999290720423334036426276413583691668067082964453957079766787725349901917312149920357566528932552551582732264966415754865535378945843627687861941276955727380185389032423021093561456548339516933544652176729948251065249685131770568113935683762332290158449716368270129188371868092708420435921699481434335727611320096787806182510851656432265789812332142467978526953546725419377744028672152065627503784492660924986217971505306180511049813744162872955092298894156410644726089715100173022271543938105401370610480113103661540442741856569850251030356188146644835069636705444625849540853952205132538161713319649998191675602526189176783554143484576221326399232065192093404893519748427487167248411069287798164079724880574465479991835327832912630877445067248055994745381628722046632943336279121364053328523868947480776282864841435705417799227454090139457688644290921244749109865902654481611535333999185084749118507156393670506487660174163266014208849277908356388861846928909312144671458025700862583341175801340576339048214453129132027984187235845378807380279854360010713836300821994461291664476000224438787304985707975977558685137144025465765473823862283826732910833078005904302780901809988123799292727545891716119108951809692043584245487034053058947572448765466836769623062139971037819883402999812951094254452751221950331133286309417380119306592154996926108501492839628546001296566086793834273821831841958694933491240726476428985472917927337235450535433517300821566798095986030393949840930707112824833487989976217717626436728811066575351355578359978549407422769696063690036492600759071015163689784595002826190066578401836584953575979771124529465498426427982618533336907829119528994884664258022951366684553878632351923045592708206157435859278013699695922889083327161153899024064734234673324785183789846544252716823542882348327281171242256180813782234604497093795126190309315030404202938923835674098419199544691303928625044269858674110345431026909682228082343880185916078508286097579763973296403431391983674084993527787705019768964400604264613772083347178059991762432313462266997627853141802302218511041682158302107277556424717012340306709973199187211839375138654281407821633445376567231048141262576878157478733373787307799543173447664212848605043347715857962643801991308864275624709380207834324288238089986347526163142279204638653937114849580516057092298652271017914357781105981159504203925905535148303767514069783714122345959131290566926715679325643978104783395451294152195154313725252660718466916735375876492889332716464269203509810160266600714799992200960906523768470017351322036480115170924269099481173977076281983629136396579503103422792262036216774087670125474407130756495159533791061285359454106071955872727645025768087754349414241499919614823366617737011721196931794464487986445582873089380499444916542890522287505254701631094861628291832476677501458207384003040468547626209803405120173735198580012984754224569266259924608704482693518109242908678151541327396099643702098476997952051377589668954344872034338331567980012700811284082881560566124712130350731672501997855996733288380586720350481517254423970946696042487193795229229294816843539923158637018786551400150052268417069036327806110530158345928791459447109903867396049846436919534141615436681631575890103286356641215840184976600202450522009142594878638379751187535380660337788445970648596989236503657932589640805391886032111878431758532962795852751818107804269664516349453842056880490640019987686244353407037593428982426373554481987385222563445474976807657336041976341488698317791822063640798350989168759065822076431744436040427347307415877288135815920198376783564903328356856387627241362475925718698358482480919149852370571501816783214236846272494285275108318107890886348116678619456874699944172952187390640843463906951820725117907502340993745024617031820838087276001098242247453488479663660247363257684238640543152283195146298022652631513423594814232343269305453032955544193566479493037525672047814929292795372481703386698261881884922818074967324421124601594262951147390994873107766913382145592636922344212593482064020105546618991123199728599990577775274657522967029919953583093011043084038927682341011998001523355014539021652668422103409147897523444563993679558455933778847077454060607130043908094942912472824877078506504809127099240210840992539805645501866713169517285263753284759033969872391964719242801371236992131418203064954440407653128565564243518279880985494860449813253697637917380706210465165594057265315192188580875172238659901275432316212493488762208743780151826188132605912245692810302486236613684654230112694503491980916162312783389985383168896351497948573360875799820917312836520041566447000899710776440847413725305314420396664279779570280195588961967528017383333265613211941795915677722176001507822919882296339446898711043696128343508618964895780440718438805155200651631630994646238099916150768006560380296302610598995619148942398552918966290316996983463335301186058633997551146029388031919823472084294286614710405819913374662331073549707337656192288973894537079893976442342679884267927782403335008357617381937114617185351928737027445955336968552580222015667178045219533185132443103164949918671513018307255569237599781786418883122134799537252674562541886071396726644635321294290071334573953611987904059398976103412402863551444025541433127996359685629620561805819988193347117904769158358803459652804227879404059513209085318841424362656383088181506307591102950284764804495087022648508676350021457183864333172749011567094444894736038400323169599687158151382451306830706168819863880480545065810958543595456316293182982348595924315416251959974666713468225159595073222020605991070341274421107583514556568921612300397528654407084346927674662303608603864703947055998362498472432191812324253804934071629336722130780305837211673465129392438829448198812417808852775947017563393860917688156275831207392510924268072223220768907553548777523120909343739654328042406012827838652312475369600978997588896935703750996581854642673408417086651770997490409014769356950470404270231966481625552437033599986088947045980372546914525058657333396598400762312256306012730148900009442278594470552661970368885871529722694590816549946524080907171644499047749559396310386985550388749688953084383205002014250956381957355725481294449727025365397224095030348895929112568735841623268392654220846660054295493047155178752429993457700962088772918231050359566391824062195482568797292740876550620886472092385878758224838160352857394717643857617067524773603922403251082184903354849770964305018885193818877471556127949427727751448780438916122401108875614602858039216353338917309004671420392572780234606585854709423391396422875143404553802984191311473139173284621037812252656679693583113030493076220064527667009087565304028158870403080218259180264467837557478848324128535057237399988433649468277928522842514158327448380478424288059069123671614914448179854144690654512114255444912991450655184255359316031762587369413721872192030502995334110205059787669842539369453788690938897890723043529106760518632642528325849774525780328122215147250549898686400054398539305190224710858866302707875928737713062592115632322346016453990090906787177442018503978301120983783983270508006398343972956830576077485384278078837846590323833279278520601760622589961175625803153905268340842107193069024108423841519381200557500013271023579970051067068424180814834469599404571703710285053312388237299675570464745213977044937377675307999577866904103642964555433522221186295123177250547567930142786774109430194770513902999364544340856523326479255656985582992930013473253627993846203255600492668325579785815399702459107264087457301518675501008585721307365435087506340470699702505185442509869871849634323566467869653607324930037823896213794316328799328641748229786316766234618369405537878347697458819797210260579154215020314962829355356336116600634969819380490279197379209474992883963035811990109494028879327954129727330708029837855522441923804173665130088287499192217414885647677739681859706779507872407365942116160606828012893461004343354480062964007530995567727892318946398112646520519812680063529738910741746608179398471738072346485733784769382897199923466391846903107214419474382615686650962358272606960484327595329016328921006148096194808789119147337873320964148215434150666287293026443822185566973259215031408370203425783733204733714746057314071186883175640045477553792683778287947612145748782138113165916973949553699817993023980491797784773376426368342814669715207812055702645102344815925739679411828985960500635333089557885661526632126117753643516940120039398688532212362354185173696613543099358433592730550918991675645939009407143829439586486137299555726138251664221405336185010415909100463940784659419854480656415203958550921130892239907382377304350578884476851146540979875191827808058315821948496416075534416064453345490361667869949796016789885949311266178971408492533755159043605537116363113234944569549154139092194317585124518284203642605203665381086793673754581996896028879455685295604241456038960650668802427501517705615966162723887591061812909323880610696816602598870330529713719123735772643479629827010818759639144926182144740850758581132114531197553543139048195229970169792633185911599376811706268853832359627908110873867398451552946451969171928602885535709570814604910886334067042047846123531834124181805747551764551524473308254802164686171000656981872003407888173275963801270408104350414894614389608648562932925371820214540264328400261249123630658085999944113820088284197960254548629419258095445562870780930000015625402769965718267307825982283930923360702249774383902662382431411913407431325842801215277776565433478288390792446755030849115391648158545276437112831259887537925706291223563229217698908476992813869224447620437044163671629991545976412857753107581924978686633653929098199512284344673625757703387370551746634254047228978862353546179016003365634104155857149237103574163590122821716639925914859706245561128914120232064546750847464889884882931304137324079015605965494142943419190146614427668482852541394410318058420422796120910598020902864724537612248410869797783248160355085297218798639837082604610772274269013504817427100395704836610719702445650854071260357764925792518110982983690309373466571176779173754807328154761518483805454896704737589276375822995233785183589850656950755630610711833837053027344388421209417350299282594219919668255826570842268406972516311811289340320013297435102549392405414256972165516382359632173063572736637077938440803759683900857726678907108647532244249417827704002974662815101933822422558215878994575984048935130331002151542490059266095103405982866683623226474107882518369048320805508614255901948628856261913761454215181151302017950178554641790286253204726482530149472288921325717167792123883655126797350814951020354393599658601880405327668551755797164695443951835324610362126122614650479286586422953674588155418564394236360759238164302173386526532221500680489095544956711129688270617351433840680283255142062130628700234776388156319781120389382627672624198209378635470440442535044623788484315680370663159345503406916606162484990652940894279635001598203979977569730527501043232596857580841573229682286885063878467253354381819402689826243251361826199486784362038457857678289932757836235516655319860251050256310730602031975580126538575519477885389815528236628060058148174207256558210544295414918463286275422657065025785248546284683863600148774801393039582377315629043508071697208727153663305408060002385925133946437895630988240186888182018399855691143745562597590835829345823367660534165270435986969150861358372084929899473154457395605367008304254305968978495692004447481577531852298059141981189401640649001618440206630225449947517824157146804823725009768998540455529828316496049476302226288113099176546987577755691388970229615520810230240987334444437545970795670359394868821843853676243374929503444328455249633477010896850719630666667103700699614767743843664284598518304480354650265941861676139235395890922013673213666802805078511882456498500688831695090202381456240482052799131601929642720436667774706850166490718094691848314608331255813372288303380769504222890586545878534132476286879730225025608031835095889846917567764402776569688787466798369929649499452994644149043315609083491160966918396290010527194426785835613716092230322907998615801955844048892795213020044621102224332570465689364746166442651551383129054890368812891199977757208078039439116216376728462773567529129484402479494526807558828823095853652409433753160083776753090852456952690090728492427867869201769771581199482075309947290703845982627742595119582107218506559704265652071088196061384925149455354874178512891018867605117134854334783542319184050500431672211944441114478538345416278367140364816252425670985113018634433413581086320312474160786686594022193077525725504185113087351968037423824782447509453872564007077261052798192802953991397732593702768174658083648970561981027898334333437039332331571332714115228146370763835891353495059553094344811889698176028265737814368428342064167677125249231685257428753127228741589395658221856711210984819523058983213257931884597951747546344701066520315319849560765705721302696520943480584269357105560995331627996977348578846313389324933513381072000678747440482352202781101908333745636170045684681209484134044455634479567673905609536702141742773361639820708255517250240822146420962323255083976611459743648462160039236049844119160563281628483503486869891688532591020675149883889783763174873248887242641301075109784279787092989073836632443333927103049985601896291477794021905259065876013236543087369325614412787742111889051760568208877388570944349955777523034722174106435230392513232085399568214158115970419737727337386114092551201536817405478168842885088135622957137428366737388263693750344398715460396681569574162948050219428979902046622131517063938215499157615795829327881370817251847074553816302119139771435296639409592061615999521520359736794541064862124136086955967705424532138502244536791230317865943121629905568160522552433853138997803270981390759412502086523493895384284671946461031716328730349572006464080902232115844276650348486590799242627424746204823947971434574626396510103708678472290361070102898217266556659227947475758300425130388839545104719369472834266304888895355784647994074370077516328101987767939082328279336024389759000799182320954933992297185978060249187541825432035651237518643036825296774590907980749683475797477250435343192211701709564481596419275293901986502934712459740495369460184630561013924349210049851622809811871178039671075642838369199585999655954325230314193694080937924824749812797002508581120942824075867787889754640473584677454450407389092361824004848900090638372207570764927323903201880450604397635473485429913289548930038489864216272678618824802533440500445365282389650084712050930228802132183269897117152637521157912232255871373626352320262447043436182801105273842695917475626051158644108209670319657551635700738178032704192512668605520895047662952829049454272748772291403460727079372495685610038164644741363377714915470514476972781982040738468787667756019011466758066418202105395929481695830531695725351885650154039348679231451200723316459905058764868419706847289422842170412717770204494085527129074793241686317484235570741279372115446750287302497290776033186038132687674737434002336386717357913294761500417175372896828783344655157935936370018259547766886549251074854228995618209947017627294670501038934972622294925535913208391532630112382574762928258430380709400242664982723647712630676838498990704118237948306466568533251391106318551150718601260508048776656169078132029655886425011711124497766881607515906914720921356556004306767957207704458543240908271020259600913605637694067414563164523788643777747549763579405147850643004467278952264154768987527377079686496401323415064738486134534796493260439286285423617799595568936246780700520587606274325939164449409915750701217487992688114945203162636800616234130181792294247931530296996221583722538661747532152623979736240341371450418116976143824415885012260321756063291574599826899515779190375746847444363330037299936641869348914473179539870256375550719220228317448944876521693513699926833619018767156641975073757626806487025507198001876804507906947233438422011341832635390572816794339414384230669736892025865618426706118086704830121185321348272031568975596596996912986958606398536827552634039132991242459877474091935665909166477798606910674516942842534490985884720226549319325561761199327280768486466654240442453524713849604829247569208725822126161897448068883964646593088961176986874966445978455708378080874303281528610528683235086614697553056012830212769094746552832768297479940918513141073278593710475450952644374255914246699723657942011115889503202384635305455272399671582232288442074331221686100938672653182397437000564894685378995102678346582038105658072025660724511666786147431334581338648537129088770329490709363009788086249215068097924911628127430640003875618273549839297811766964982864389699147853122747207353682712340727509471261928992902194659012083510102991750719441278645996574512210332708721332462293798507053605082997878973043589449723186714778488226289303399070136163367052569583965383065173087038247548241378945958057881726870846177112430777592494286885495929217999485940312654338309090627233284651586496240123164563928393571651033730668304335831797476964998753208328687687849953491821760502946221042417203478846515245694457375069964122577863946245123942308950355885489128921078347022139404836165961301410763945135966501755945433975858290763566600872311337787949187886769363155258995571728672353048714019954678629607548845734241923857207565308838616802798627797835614024410452588538171627086067428182500724602365000896812087859376459464835563301427835876698111949166417701996055217984404506805069928117339413855057279063454435891159825375527374754019584132853231907429718553340941335795764682017236899993398297998606971549539263504658643927135843704305538393863604366173852155411276502039004199593205880096767054631831608232642223150415974632971561956692385324315765203769304454030473549516687757171398261302045571103307496337428271717838113453451379914121345057884689332641121593382802750382564646190851730711374245928952154983944236243837129792087394185392629479783269141318762761176829744150706472265810588026888977802045857809121284400267930833779656678376781202560429010098254798374340391130632872873072234300325944186756977978878736815872671164774356420453223988478665720543236925626925055709126629127656510191855155830589495917015750234806252705104704175159623668893176778729488977698599892184906559469287318515677344994454952030881867160638896339740475016967908472782739359578774752589640682788890339019585456576307773305340835312235709712360210438378835261947936839759299645535057604807134324763193110592454369622131346559644221320393776251514636357963697740037360649944434634117501905805983663994196372981909665780163872849943965791446397727268140796114944519179671343963268985492265543881413235973347291879038432596387527807187751289240373743293865359886474427178397125868712551213089447724104283096848770139343347899438546322654088348056986252814207351868577871127389684298499057703774776196233303625679485295615467008569744879121477536756098973645735615444240965287302312450363336538449260315416821681357365864958277148359064938813199717313357864332258202731207751465302058019442939584646717923288543261435910361323889807823009655337271796615484823620118865095670500435821101561102236106186019351846820898410321255430878674729237908837989899152796535154858586205161712432581231500785894554183259923013556970961972684109958258070531823890592629351428568632845990719845008783143708313003673568923045556907857364874782028312980206745497697207916154166725589664543109567887583327119631625097621351660147069258470910351574283520304104739889339247720040477418544127838735257048442531894925109368765965212259255887321555513762690943941709279312109322130018339577900091762321815170869242594996957928108126823408043940844957800506282491501195744361609347556141541720970736172541006424949757163644584641898405928205539509531796613848213502505005105422543603762297858707948501879333580693325468928969826811063283024233250664141206974582586024757789486463559749814750700656978223759391473285925890095260159528519419783141381992796164426408614022307314096219965100488118226820325711821187685698153527826063928145528019132216381175505208262117978828196983881111525368815254826540226366434995938581932834065018923001041135992312658769631830295682048256432261014945245520790458604177579494569552979188238350274916678625315502921048025389979611610440341227762778436723549873361529146001903877363851313039845384763342073981776404134240486031971848383332758067881673018915955637665828041454312449976108151076322343539490332390132213236551760966311449186302799717709827561531175710328888033814276028644343645202956856396165963555874031591757376265656341731375854651508027188830350041447839095883398895795367003203874920973157942696972500359098834027139132057933794220784373957007920072074062175693367380437901914248278573877529845839275586618722032596578228032791781488533601844287793508100383498280922117943412009562667717948157981091527247484315004073064533561771326106461782041704148612506976156364103123387599865385776745409011612424532177545985909697806730047115153440359942107358415485415744714725867767478859154275002254192212030627453110685571228337986067850797238245179417210567925324982015471332892771157579583887761566739543827283317046379339890121737857015565289334113991118230574898261314598086106005004187085927538353637234332293296523739639963497800766007488883243579961408768368777530769956715422020192862502818528762807313278960907333186122706712006652730349047820168127756082088921289962590726854088823077889914569730347726568025322796165019508877769137387194502431747144008414767527793093582562180992096876570047273196849157264545880169335986696481844352157805948444250727523221810245862546039817619252139886978026214983412314090869117219392045939715101945893989849954383988448729626585871705335826406856299409864424181327328015957696531328832279454325982618542784071855045684607856854818094281734561123894429937430280981784323699675922804140108586438580430091775687400138095881792204242689658985460559227205706557384042020279913939466312840527795305254805448684906400669879797678317361827268600853668299429583207004219239651050019153165336327887346542860898585263052702232318836365351032993194627510522915890649315146341969175169235400485203417780893558829374769192674242492022334986313071986622536323403260265461572591700560177787221462763101368350645017979300292173205327871060857585434768688966395511330110023212506932979395613008547056634287099947743969744238759100509458037146168326510652289891342448412552265223735850633006949562482270198099145402656709260251908278335890902834555215426493056421113558122721650940927482493998388015386436578123053226702170725292981026496386809699200525144551006104501531564073577822059529231544423655849720682913673221364845046696684308694122079920044319320348324453503796658025189723029562879368485309864575886182446029330355942282581070818632665004725554855165134648033066998024132518844311978143950346108207001934644869063658359122190540394861150008022861742012206880963188302298021400623681778302975961309066500892815938117683037952463035965382447819500678927133964041940756659136348591793163541001135352364969437766627950125816923947081218537902531941944333849111519111278594730767723516482657102587892440891788347322083673801473222237759947297817485726415459887813349473697407704193596924814889363588278677688002916680447602634932939882280450462637074473512467902722418981381931828069763110732795947737263148258949104931217939555460668016499330041616895982975369054363029386494554992021760607261279520814596679990069764044032819129074355971299186878452245368514472787593652601424221121264470709336181831079854110315264951564650624117625681439887749846054578133248811192011078006692389313601149509165166595088772576705955601071334978357954477392667539420720287241309265867914523971570537240590014181252410544325792057126424057110196892202649855772319816259531674166126707510449046887884195311888761026562937296744184706229621239267922963195319666202179762229284509843926697965516449915580210227877048263959550953831682512574871536053647320189743326955014719935072802815479049539386565331433785330391571559492309253707614881043241798928869108436077263907688830702273236631935117491902736344495847201893306211611813975734411208444604538587642682398417102194323757931273171714325885264178581703462991686027126697507037390132762483792196399575641817551164329860561676720238192204287704137127059815329266114093630030639834270014125010309590205422359445281704186099424777954699687301555948993564049190090812803199566619108126190042725357064382624143573863539405844885514837979419154003871799136133719022862290180380362888716232150641015909921973004865291428186917232908193580871519057557012918801889104746640083873983460006284458998346715310434606950660353540608656598443636634504361100577285032610203581240194430649032217130195428130208636391061683924104219451386575583495391941447652444882825388394950920421573045818753302181213657709637988111764714432943505812702663876666303158869976385425718978569536897276051686514995228043285884345906270840195380371978172267498237826704494498300306502544320730550237349249603082971640284199945567959542795150826759302586436967926385973137015822132277226174652137838011905185518335842601516347998151874404935166400846192857280804780189675423800406246534859377266578132530177839733921901200453884956144011119276458119684912853935146516399247101251943345467276512174072101682081912484173175325687099552791594599627528793417519372813514328432198234822178840215927599367849790698373370855111101760103740031683371107047465196833773086067690527978841122077286696938841729935602654951028387201371273422160724270809623282704906512534648655176843110143957892054931040607149158691531769540888779300124631775817701771258440064390145914437863105517317107027774491416067868255586035067184706512837965509642492288160179403850865685718932083015852177509888866138457157459252189907155730616296315713100479505287421071221299088695155514359189160229131499333182920057992824783099021850881041044835956003314410882237455061991015937131764851985999359670629595758520141660280754822108120701310598186622301937268114953383563431838703124594754391342408385429398850449677808794580039719204749332590275580818818674652856587600204807009454907411634660524168281528066994000168447425480904876288275977411710899693117402311783554097513508833509578558124615201427850039582848279359426664764851570296804333947008302560378579837478022953403028483704645925407241892871107199251626722021621005249448147626911886607952100707387576066625908243864220901031944662546459177739386121355807208632042900144530982061083868335186246801079001776192592272014874788832687895257411899038559369109889050563949328005661841184273546006855389733730346552510725956549930322083285875788401751846840456964379913292580995762114050104343571190149979016352576852789388939429951042435684532817847523161958348335100410390838096379500633112819200659912560584275972618646169181913530346868047955282555084322078345367110989004337072412094100296634984960648919288351298786368290001501722197879387340441380900984702261991662638032662579977949205732639350142101948128610795360727884011139848184358087200457500249375698931514628400570486477922654037105283002073678577986753276012840214618791557018328373202531870957087140043045728090742495212353466693632499481845683223324405169585849757544433026295040693489499892719252703159790471958055207168670319904542489559550438446103544763660073311400109971901812859269944122854488636753205053230589813697699509387012833486712475771520825780955119994312568297923027347073701397904537581647476847341928592632492437854020732742066752331878212544495071942806032688668933928072996170350168839052168458189831454791233473948426991294522895193546078774372588961284891268462310594255161344715820897974487690726653567316837362987794215002736896920528084947067341614498690987405041816332849004864053292493508965189681342587614076243408172442727490177461252815392972910043763166058433774974379453951040453945768951948919522116797284404572136854341416937788067294920731638930758297799921142591686559115742705172438811634588877458009721874541797450580407184978428512772454210083678808428365767890861994191711387868816013381286014803117856106337576424345272811984437294354758219150175304151073843416972333339553405524251180582548665993868969856227658209817616230484132356819209453280317450121943771716045310029160731221941044906652968446826543973521082860230797714494446396867011549055484879771440338651328381285748354838578755500957103291024141373661903131383290911658466805088059765077027375325107051349385873725902058974144769106900381510746370954704849756224022902499775885638888410692918555349346887149029607795675538503564211897662533241202882311518827285154786735768071705586895025049649444952590511148086652759687554586744395024100678626438850198558676347756489994252624637436750130600667199511133784486433214207585718995302098799246135730658788164402050052131388770300586147118836046738277717200352216323053280385785654970278372731531258483149733855959023892112524816350951188674595600260625626398601099890763055674162589386177751803994629740829738167538819096843557446877634611828071176429477225475950737371651803507814283062565525768392290169383591948505839193858526858574725532970772614407922396667745792400732808127676305702888609095119246155905707701018686273259300187936018542868811752948953784109553569783857870947261605207310191845872731388584949166285293084395960337350913361685991059513116439810309994643539975930245855569933180503744697241649672233417430816337897383443080981931565756740089152063348137383652321626008924005245801113724415808723952173294052567220271172982062769039954492520975718163243945024705952046206563658764725207014778875700697223194855248394030856518433325020765001433529769930250943066015717003311277388297219553602227704878984831985372196664510615477026014634178569848486905644617893325781195194409073401626988128410782762495660297828958904385610805853218181466835363715011324625191073368021595539506589386660157840661035343320536974469701654962841005134181891682836787078424440144055028820178477680891296817107211545014547970070673922386074169499437703230167413942563520555163785378441864835003620881343137832113326438545112334689417808175866100572040165888067280722068386541986901052214704034261802851827329009770579607852493323290396775415409811372260298334507305149388698913236826544391304723721129586484150593675045800447343302977579642899450487073373315983720304563961183148277418614815979172583150203559499082682320779856568851279959125895480816226888225643545901976624510966407190765725051755840645479731847941696725111766091173732571191498016977060364899952300027025927362448028530927093239273273272631377005850703173443440038247580226599760872112481633439155493217565992095931473876673888308478431843105680323089067225814092272161535786069379636407198290391015527813007984239039020785898107797945784917018343249013891098420922005690303740746241623735824714311054375313108838473232631083510604703161964733932152508412432412329794504351305953293670985047050597960841792198295045149844161500336373678933558844189306306337448528927151370789675285038177471798413081407073067878934855477977094773124757062947103384701819043065725479277473456299822946316623310975787281247158043285411896984728026828196724074808028459064380669659685574595754126021343122013093869580205988547984445304166160442755764451985931560963583502848475875774416246156629521576950874652848227670208689759491782824274132028816344812022063194505185019952552866609370726860855945605801481784012620473724993983193869171547489574650281899903839805224007660194198804287479165391532206192768152641452676350039126575987334915656689304940495865120468216475685199014592095422669236681965858418133850108504553240845011186548082091380211012034516232753573170691095720483746341687370744321554740603700592175515660349917275418422821357836727058627706070586796330037447389274630582631608131654863052579089855307312708701246524713203039310975073898730916051283738652814410217499568488939710399718382938552186335641692253405422209390490373209917601156872342549516988255033459067902264356975445683685444280944939089949053640084081207989160295142433851535272799568755173817081471271427273850832390421503456800398844564683343756728613773778755929884696966345773038794314444607009005834110183429517113453487162014706198764992214195992295818296740459901933889825518743013124705078864452842121858743602006846976668836373804920566180620318762093737337620975239405091191522070599480182528584622281352410804573468338515195285967020636036230212332118351276482501891754404063248062147563056228535780534372210276816193381553840807806752554199413943872029709930074726058791965373716598604706640128040476458907637111422107145482058169491074355375276997973329432450732089335446348748617180898959117690650663192064525174056920989395264593855999756659458589687355400222765806467445700710057545345067351828684766686941419643173227044173894201126047988075934202054013106469665749619830303732771942580867545409868890091370759558251079064242324818831515360175507216369856098409547727040107783339637789054728916067552535014713419160204015361876085134534453515253405108168895633778893192367048997952323836400380406050661796252303872392670629243077744372150467431139997307629814223508513555733620323374187060484788227847868541791852986175648349675577214357913351829436515751911489474370894189243678919061485783547146093634964971022902710566069981353333108477475614902150226172169058244356700259685846239382591655102707191417741243636316354376645909652331163091495594861649089094937628726585657431817358697583945854521706319216131804014721965445493946800455824927069137834759776650695360354198890447779541509528643256918975266368978737214766911863256881416904179254145073434702069757468497168120923047359590457437633392139248845279524434921215689720376936258692727382484053147900834567394286199056679831342034908390805354738003550483320815575996173967990426320849718367012587100338581503758466697928259558951511430792346178896460134945612961912139147712992087518522936444230698080505579276608093835118804282652777728130149389643278465593960579003854597762398910374112142548704380360467808986989200929942372563830089647078936071242329241134491056217807948906250704821795064747011082080051198112052139580992151075596089671641621257784056173330081771195871732557598329468893881229049168630637337040096675660258375131433334589238731449388281197193186335044058289991812800809244910437818962161959676589141680503964357810733156903109891454959755798969233237626001397651970795287707891340538580324505294381377967696541820167819164731597030437797396062181932047168836715640152635011975508181694679758045555220265801122719499078841513237818060626388372766782803522728013573801563145643733115695574859022294333303392087257794556225690328031748099550634205897336660407915974287238132133063580928298472775917710226888417232427392196946861897388398357013187820336337535699135362501374935585757230029186175611347281689741591723141493963511220396396292038874435880843023261275147667002566747270656804072197757670091621126786947345877410586806165572212292590191963946467897656678957631249950462224555902298390269748669010721153644586670225080398943753460303906514949960760945149936132266143921493089453194796597529115566690534287572067779004597959747965171255602065042921386796784713049813242080705005964631893099799379215602940044955386062323566811366801962901280806427778277919432925900603062873578163813211803100931204316637740088315115675036949316822871520243443835052809969175837216041914613372358747352198968389056877136891660467883806163349563255003373048353545489337094573696904128321904221910079798229206204611533616450075635320269515584689149638670318037116737833674408624779232053720197773291484493394478351083955361588988241288524278772173140421894889074061685965233907755316598906630719148263370773659167878823393908586560680738864520839402262862678736197385285711806514382422333441240907408227000661358356516633751728738497155207880349484258143546583213585636830835447497811164315765710418826724142469850650460749325750463478881514223715859697024323476507879396738967730543246315041702363105492612333519040574918802782890057519903033641397962636999058363462844538897778584667531015641927697856003335049323659437365725759799822986780750523369262147324493548295818774666539177727462253220417549712855940000457843057220654699031671299552109764489453898977177898439279040967629547089313910485799310117964170914012136972677983711890247887149535466066918843177072366029268898967698435082215956808713239677845918833260593831322648099204594219273618455604975662287015773314907212048039388847827375139493445627262629499201211413422387354006813122622331745277854127228295671360675920173972300168245030320982389187916431954747568902759132973573687155176230507996801334452733276629904167676759314736641736546111927191141439807160054803016924930884577691003237193136943926512110682432302214652433043087350305982189621439411869616163059810746910445735330025884324118585495723120577155993961563368065469787545559621127694325266780290390776896251273753693319089049276291188432825725809184751954404028085907367038026515003915601467106830165788636032638583580726837496649941926124855727648789468984618644330822388822041077838064856416335008413284415030275309220659675037445789958984198136125274154653014536798511981553052295656686816646247378113880049681156374727872145261408702746812395962247686846894204122774811987169748330308426549706388422801867586892786609540308198594974383064545734839816977713977073394901401111385706122572656757373147762179049730168638286815761679839171374037725108973487173092670474607092318135433549493409040747283358787547119460537089080566311089814647920891783186202609611636655989217296586712710638496591519252184797925107344794947712303290698694377372809097501276643075372216198464506348450351056717150970221857438961154901935993061512298054097754543907922838169407703510276669577753256648603889520017562474600675755253136608456684465795211731630152252930532803218148228232092793103220106436780143408958238096367540457986534250580515318595910053628533402926708543438530932656492069004084658189519911147032855153587073080607510832141430178726800816684268168886598904657662526859866005532558786891447198780445655350791094240684243197364224868636986600968131718931475886582438712597747546278652378126352995992257323433736346158808456276737814995263605429530945812895366894446515329324079286878094739170108432197192806910663356351654288888515897581400697077776378000982514328996506073124151591889259836746474402545237662893720528723640734641360072656236233465754261695314050577140108943018033326799760885343394747332713012798358761790743580493635660148943540130550631210749124445704628857764586358959899649779866286352703214778020598601572246326922237061807964177430016380111550340998316456410507497774019845133488035875920806366112135126825857619766074147384680555048694753795247045047698605282587938579967110364672080205992871169627268513194579254297996568630071928391327562097768726585742415007996489707324883009816667166223249994121107862719918004383033024898329163549610206799602124232957310576712023962206074181365247440678380611808881530828056111188455523278694677799759921885804991127557748392741133951471786983424195953671120638576549918976693813753609468119658189555522271250344407684611825017965672635995932767993995157411692080056150596020478394498518036200817948600608931407288490037948255393125280935248660047537632267671582570662198524983335060555410968159172591819939183327118263491414818331028865003451065776582627258048674378225013788070006227995456171188142951801439857482922771743697168694382976192932028294616326228588502189677704542914367428267743370451085398573656729127098591964980949940238271318169604706252060068640711210912213519817953986591119870201080102359269858883288955018533110488192860314227418219222559606679294125883497898469762617071614779820417655084478103155926491706496869115698266136609435053399433530291289795504107585551661612023048496580525235433734986550708997831015819686840987984742274455839694560579248014155792227412570359292679811012412077602158350932802027064194363539195544126701117016991165643280589264882247144493630189371899717633813186734311973351556371787253691796598815410487341004408135581102245815341254318240167454898768538052002753252756268484844738401626787112008214622054921649504258245812068900549626768275100721259088774784971642295499445491315621926827443030848309320546747513580900322899476134617294017305515889866360116214658973265405410379755938295998680767280453175364080253770276395038904037758367256952341248702933373177037720916018514012993032074234960564724684171261411675087570597764514233137531020868511641286022297173720542594952578841951449914264904146487825328551094028763311136919353520973072350818942149676734699752731075186039858938479260067658509011447858982332650512130054196567088516230095068112181608740260632096469053690816481015531269279809944774261254496514001794101077146191054393883941973859070465908725310409708344981753130172632781165138451687325448672115493754300330115398223753238542362668896304150530087355609978554611071502679089016128706542184370132367043848051707789318155641363834960607337213505651439886498038317089126641260321225964573227545329298607804015381431036455363469923980815417402001454819152799100412346689389842152473344762499632783227454354858993522894704555307823527581964836088174479155552512798761609507136061012008026455474229761684387592111531514999484675618992628308615119013481067205358756825601217508240688148951924801336362491308497150214991930641525711719939923029191404606759021119990109958601286283343208250866634173282574086594128858301611373028488732922255692439564154567632392892670046555400898102953096637552124021496551886792826427965403161038849359955360127056817987789377111625401596227648470080678076244327532189080638420070853720227838054681485799009965777727791083015253893017158165235181838367806509248788826965029550900834153358444865301596542517632533430442127525192546451448047628096821772580043429621768262420808977822345850934074544945931137331156616586180340769103527656911725515639303234208550401888535771682538666548854670641057084726270609836027926721659669419289678402391941291590058393863576609845492333839163012235948584835894849914019292846699201717334892648689644209889530214990596844937476839196707761732476810962673315588818025841351323695605782334289909813541259622097157667175234363913817826720257228094774977455820377862697424118763027413797927393366182589928382823045872470711128813524260975475484845157198937887412451451271403422099831020248334172891752902464477443088188512219826112589265344251164945949803768547475770889028452686529238940415477476187908253971520621317223485041927573789617762305364337789719783914049606105386106410026103237847052417619095555534541958317398149225990981742486946093401511308225431738236606635026393522636944156139163046493854154817194823498585115579682203171085606565088322701265972520616801149825057192981655753010864287590820836652656943437591963508796039568000292705311268804569445000953656236492728004665929761162947378260134706448532884880215685508444086031408951084250340941483551057773407417895612904647358543962079192979971226561165228779340928272718090263442791259944028027139426613541614214976317199001418886349792094589636338810314475913088795399347109522864053255549156445090417802086893193037323834388690136159405881334654591179555383381535738123198201938858686859019409054438089903216226322220521601056182029029928384708562433106091762675407661703526078168188064142204439883125933961440682897672317210516653203045944929790489980958922204586531343812393218454277249013295965279775549889061783097813128719318374947449124374087670604266180405086896023233806864091338521440179516484728935919485570182556310479509827304833280510796820178899845947112737771611686934408878766428261430119093367800673045480378040943372477042249718658272728209067870870175464494213928358293912689520076960057878131601893816898691170214073984501151462185057878659309380900783518976142125835683118833654916314497060309939306447407934235889773272900010016812098149942881003049077119291827415864699813988961586404155947861195074956951952252868682475385569118419143876180753139522705270117784267396446205032007415105993265813424979415520764139321188219524805844635503987062051735937984016080091269131586181974575095321171542883922795928442552098620026650433087252317756062287754836523935925472446129008391470003941165179270612200797525809530350512489974278621873380961292465509117146694504489553758351316068385971523315952771310364923834606809683123760589867748347234232507247541949147582535618222068356892475497248673596512990400082999329267190163506701922038332042355337870410223106972107471081435811075132620461999614568786086358991927752843274776553475039867568930618331646371463164365500912475464764983839782631983360228778265366627838708811347495740874461770840662226154458406413797523047421037832938286406291128866950237596640686067370197361485995109351481109689420301412065695603882239947821111848428695513923312254514727501421009522010747729592610316117400241394683473361733351133930400918383792380945802799620021223947635738964839053803930030110195874092435728345860234720305893962331446749520578899256479861107167710038497304118126466426281470528920026431485621905880109326604069414288701503371622585742886243039492990354953206495778787349628837579590802938442073924772182372219521071685131358452977904781681609258874086897975788582672679297357983181052588089855474210037859101984941247887883397121045546352136966856918572351941318521536083949785858391198046867529474225008871866484645369805422620999871290952110996072049495647959280176856375423923549900469874087436801311492701537072299332419612850214766413279577887214432170839264545909497539136577855879201736005511487391936825003991491571908451581202971766902910053240751451344756627204780112610243770777746576427993655141611633662933423366875763103225757762398074813356103826085836799940912851720707462274371119024357385963251337485219013891271300041595403729391151649075316165178564316301659806100960900447664274600850700067364342550572305253348115543622562722624991917221147235092587675152377273508868788072809216297608748172070881139338949606479486378574146580736757003503293961027961964731297654223508474833300143558078510137851154492692520035574399123119282414260371270416188300621944122836497143746642263597823320512310416616378647210130304308162600311674290889844673890919996978089043880299222134994384857709686816097585383924209210389829792776141815114768631819701727416163169390931338424817772925531476650280534462481545868598861182756426654949439227371159585570824205151272820117080282418818407813732177144332442584959063421708119695183340458364581205281445258720793917957323575794970671989583711562423458734887598928983868977785606318783257813525685664569858294420929221129716977183231518524197879516172162634186991309206513675843105216430690976765601320012394493011328093429589557024958937915688558494276755535960619149347840272977804941063034955962442874934808301115562624402712691984921714136403352423769431911951189804164416331750673960649745162355747362232727748509254286513652300687229180230329138922138010996316771626940410805680685943963468507826938543058560656758599412394183780396334314677119610244217023243201092866811851925703842219098687099912203409349651671415324209117750542854625871409989284060155533788521629104713846444029516416580228014551214273795386964875283198255934437921481231941495969479049175591809974652879452449264446546481481545492368568973500184263760846851712041156900099525988965237245122537450312235976722831260855954577092432927881664311089155126108841048970689369035238663851469139557604467001225397767012957906859548633859513303440585398392430962352655113658862380578144304447397447067823716234045484939175351753284909224257427600497445049972526314333366078237737955008844911068578265638093891641144006056523696532030326697650581240970445908042633002586822156584085770613791766134250365955342825143881907528507792779176491475829048592189806911352601439127681485400603365547490730655432319904401808684564033697754520779191928312691390614420496399768375330400110232678995869838853548483621785415629436164295356103902958671252223023779673639401290270403495428795212532229291773352192832944230993009637968052494275282136884274026539637283768856245465383233472182367907871166700052421590705973718573867517610032045709285619165936128415342414248491347502560064467885403443422778183101950540353755275628747078750994367251626951209264080080188115193709155611562513711991887622617000678354553891397369764042990162325705330484249681455819110814851383994427453883983873488855834500079720835590149623184445944814973149288124469420035355560918080398446515407847155015390240979046052749226183940477358869429910143753336221498671983183310004678379780816290198375543012355588645707646543221471045339733274821627016658249420736044127628221160050324276869259597055818332089481156077162467884870213255976379508794154670602315461977868586102419389038444618003982138553880331791905320411632713243063900720972583298089406405962353755998068304530482376001987451344554062078164800551466950689838853469391674408589453380295108477082461002045423740033968096344818936671136977252674260634782087531460993497789679807435140340877069401107031791174692456497450881089852599937463426228787998296130446907195501315733331911193523954722676387602253898966438730671346756338044025079909301593972807927748702112923401519015959900948552182550440934566645842047734723516671229100988970740348413662197726007694297500044144463590868177178658924728238167480222063473833088663061607671926668406012778117388934919851997512365920401108829171754393443261510910181826798485203945949987476508804884527203413104236309401248508093524006718359930660396230487989715898795705007546606186402839586606894534077542224780081091996841967786712373200713127847741731492459450531085005866328881944662513054519540490817578542780901369358217562938396960545523175395522713102346639906994720522490033832935310650098218645450744926065069952807457673337284909248202354456291938578195478701354497917539552421660043956357064161479740222714803033507421755506146039002086313613955717105065911480755849424192392317026334537328450048133068593420963895770346796960131307474782786394437486504904992821942264024904038628306170367203797022255022851817584119798592980061862225919759127466599715967452245458962253452187778389352621477797114561013229704085707451128679213099081320114337664686913974239746107953062327015734748938293023191951767579028969749949514837338217347969763375600415975995675470308628240190118779284944919347502094957091393031145404596995937108470266330555380306289377084835655429866964736884796913015925056520547802452410195339566914634024776713313825384786495427927923999128609099353088727659113617604026996539345756472250300594547687609317609567809774981339896161892073396892827402289936012478112144750188659038386439996463355839254010350458097841981152660711530121176609451059928222316563917712344961652878995973961107467449866877466029008671787423106448297939180337692447176878581891578527183626104697647429759611694063397560573161271142446402814673743496813521384627079038250850013475000041255614310274243772456539263766738504654942997050076518207647229007452564093354717365789105711173207873142372490807891088711452969535111469595497658808459983955830627479225159757607259376133864071564019589497856099543290119358608497025898441902767145296907846279147455544242157614934625812744067590887500763001466293664514599092542639296810984641254444773153012408329269154903237259147157686872099027137410301095110741985757166374277718975383922795180275306290491933949544489487213374044794107945302763474012347115100521694230521436447383989878915312453958352307561392977435931947820869109148463252620511071801985119023430429845440342920428796818288414136361778476230198340466056425622371667162658536241107315541060571324487425298512474575832891695510942330294560239643759497365400366021705033550101120904794507227143508736866146256350775224155967047714531726788766520356082573196694838710958021056909691875432909369402555033219968239970027814367892611151395086476502401001182297692064206351917708987045314300549339036955170278161560519904675429873342031624245781563896894443375990309745576333307026940330270886862278816289999848589108578248510795640820080195798365620886541152182465465411657411135634957878800796194419357176326811887719401901092648764853592041819111458888744028079323427667509306300287568743130050486536205204291486414040070698657342088551956084335457111115216311133026866760556585850377814969786718286451475634962544561943881900237879279218989933327185959394225852808098918748250588136811490200673337787753448505603594328347867978799388827457420384991301078414039082533481167445047314477157611370266827318058467818053812285968247431959354245092099093144562647095550167148636427943383818171478951358891016293328304303269307954962495892404700829509098822218319855076520533076603988271058166760991175023562446677682302073544355261546891363814404400863392646436196470190768625226696367450347717143540091250090450760475833017422805790631065855561850076341768998957091733551671932594748044150537767124400518601569659314666603888118939170471478828736367938417587723384943506106771728663103102173245640172943145602904840097354399766227061301005058105539935958390191743639748577971369219859923125580953557994729214509877001517147053967594207447979619801884455265147399049570648816921495653965513046996155164234091374784532168422558132361811323303658467725077417575303982641098082532553434768915857003529643914284232636304517778129499878057612698860225046868781389921887067820271275233004514146423851101389070417301979911633016028692167185935045115977244942169672293755448718698114138143354668622098124520473318470413822418307601402659482828089049198526470868537062870643436461827259035529607387864318387503295423062157600425254690581122346881001290371037642206082740720536824759369629111151027069056751106846412227503958186455769710332531793607780287391933382647065845572969107530623669442804406265126851311606496074939722018555682893630688656032998282612694920316772687718825902871854724706726876846619469278568839843447827675480534860676334569059651051273872072220787997205646054802973904914569975648697191635551004162828181117972044488691695705685076319042521910252795277912981608451450708419382545119466799940431106651066369013018791536100003785097257260117056289252738578735476951920062322076718221002315902083612213545977720830551192696398348905679147707985382292974463529525854068008095527812074146519311363280630912880884512139850085282889110938002361107080442670945610608381603303654028509746508754840197072861688503173399767787169369771189879371429249940790621213324494875992577272539531902610819872434192796479968785499680435928747635164552557382245427620766286564308195655680402450160238461358560430769305748621688329218018032959978856769781650607706949461834194142619709472499759230519263968941700745575178827342195354421446182369266048926103434459346145349336570578337627767525990705109268230492656844065185836120141392124480337480964210627805997618979313873486618692196261602452946639964597431878429218194666361192211645178546946716089653842888309834569074014671978834428219882796987982203365386477187216667738529320590162227378919063982899449645807735541472862549195256609644483603543344065831166000156269497854144729712992370708763651847679463882423668780449685915986747156986381972562332993140781687939819913339356181701088525412098246709302006439724512264412699156559427710890610958696285377372422145594659267361171216425079361233802065594538349669616398678791259708306908715232865152190407045725012576150904719919723299338428349741617442594253660469524477016308267715729020152450505105139642407678854341640513048327596047641836712473169399738379458994884151368789391554349810765037548069619760728199741208342995285956560631378699961979212608267731480679999715283667069517791716439366350659479213557154728685669892270158977887342192120004212624191422958746971531873454247310731157390418769137611703553880940173514175464605093577266167227464593215377984501331254578754109055309133638176755754303003685246131631531659302312322679680991146921957448138534446395811923080296984042145438182278378347723755147456043355163727969920517504876374393205216770655449920091170785871712232389888405590467963608489916520079992595147992147792009183729458714956519009760501482630029634616739814759997191729732897140547015680841436372088181185522090064687535508048208623768146519382385608799011149196242974416697384510489574775051786644779759878658763851404029231335746056720737594838253778371177650891530805430477473434915096030685314678166114314998446926091530218776751154160631532309581409837678377815687583079584796702465510774678217825382242354673499133509370899169580876275003852138538199649901114016165633587188480208910424469012048399195290489824388688370008793344509378662961216885589960401629404903590371854994100708547889951780335958430722480334453264665969483675108504863055601640219213087044418915478784712487246960291219400227222732050375266862271697248160551027374526481463399011364449178779724263444403167171966512277114064282380916843444350399411819487082322376760988146955652843711629163876186435810108953628802350713190649401023279224833242072891627376163083607879503294763185768366035898179592265068372405347658301211574650985650697977664374373036241887528866519981447514101449306896772522693929855158883160960066052839333006360797098538264738106336875869987096823203444088166923873247300527956064459644509869889727596126800892920351950405892857699940617091593421235497387752152612060340970468198496713456963090769007353744496747071823594352446533139295051043411005140662497032367055076794692581627114374833870883177779040312706317820521623173199780459424014477926987559642660620002011251441374246918179753719908523326423843714604976347009067627380671326572841042830144012313504258219942614498856046766560413177393454801746636577426571368900738633074990691232338966162116667889941560249175543401713600328476808915239429447374947210842016707617159819027677384531096141935203048542683879982076837964780542954464043194905337851870255793531730067069575537437172628110094596220580762219771863373425730529503689329418267934978698844110248174958156346763794313631102288237752175667040556473821332412839174410407653200421556643482652638745077433040171965390996850974871665342756918788472952791904028344908267827229443113037739863568596084992716591371020762768756747098772065974877180318340704404854700883575876262306366935148239391780816363778664220055242997716266087190407717118334981249372215360393293347890364165462905137646731229493177379551722161328860120019548944633902099595780250450621621609933720945042327458760491984725026969625125142881802022926217437993312637369095509247636568330314273504395633542517736344712716171381123439348561568129675272104565395165165457246615649352069539996041888249159823619700860124374122574547954759526664836541025436995137602938449292396871256791025841716762867859955570119281502195074214935075476532621963777192254392723666483713514318465639124915939358874985928101357454221216791177946778556938414674965629068950785546906325323969748598455049755251839520588894463361663928147922707038370940409965591420819618403801116844004760955237339234004589515095321554956988201104482956602343823121102819397777538399633918796121122956837432971278992896069960412915509967783915811983652923597385867379238647764116162305027921210315187626718717288453738316454860118215474791020260918454817459090993403617368859543571039287764975314422968281904403464244771847408351205194590361728009655413160587388310572498534718323847673276917029812076282431649408796965400751265518544313731549961929327808869077511115530229982481672447198502599879534259337095876799117229202919551621767495233405067808403966451722565774957913187021912642426437080086661198579886257813185965224515576599170774533101123002430066953990566669970798498818087409676091018671057515262818315718147865500710394662551757556319160249975081531310305359326085902266883766574922085780894275582005923123611315109398152448537361970577559172884988601469200489181663563546562249907579221005673194112449385691927405539707366850908984231869522453332662767100960488027793744866430759168810592945702292761795866698822573740605433341314031127251176205734309007756176451619749440596423860304310679221001095471258114166222437189145070753828221604328866481937873286338836604297287438879363714964223486719027315197994520606049406606979902508087560795174884918078826376012777153631506469980168579533883220638837704806090371013560940167065315713044956582098518794730460593272407643162942994016251948742633001915640619007040918208933811149603792098509753368177427236760449970108350500118577178063068406840327793054815555228597791493153337198869975618564524177045990085245274901987373551328832357298823520214640907436159478251535442770625432357659853276608156232351020590242212716418185541035080149849196260078988102820890742988232097541752038442840187998756425612700665883844061735645545446176641027876909269206460210589403705276700847739959897052169469611739333116855966836051168119352114373932231646198252411117130589115425759189586584232411113647866951017592578434402417278433303557646277448732100282975745062864300677802710397476736216936236337092068157831701085807837547311643451232749447380848284601758112127543609364688363610465743314858964409928949728240389923239561828227088990962039226192071428033853801976044192920857649834306037531893289086111182974096539725269842615486082311984040814087265775342379572866979873514052050335530735690589510276969197577914679565857971376294656853345471975322760034941308681779563292807846842524949855834675384495827152847841594403789820071067309243017992659658646889118641096931582943822208477080021320217552144757954817155770020155973524275555127924248507353525353801008015591479326247837261257014461499372358824788297314242340536268111722619348743556708840308276123898293404352812060218894012749115407167235756442538896950552321291693269209230660502209890039803752445926321993473143545499617373467499992727344436206018180245013823032112521614309325281889749741004605556905365419815409010217729600095163344133669168010349548526076129634621016414158888161110172453929141411061275929588198654528361682465699861195907727585230848769706113979389277799476950150831933881365042005994520666846494633469810842706247796975584174790414006839186626430394393182406302615514019225802730765822827822095411037508650290612268515901690909162404910022051236663886848806662899731362504713814024395161934598754861003778120502306837088695298210277700919680992507404934340890159159610218141423137834773457255717402899340292153558398734857703275030822668180630629628287369952660152758864150070328467600624685020278843408325985568412295766074984325100135212681183549949004211107912697684978143381878220470697736701547473818596965295915562649753754955594516780806956022526181389301855673476682506375395532460517939782228706259810702138399384610573332045921392308398330048556165503459355028086472416133722543530411443526798163923318241597854257502030502575509516290805874944094959638736901185081645027827826868085327335512119010044109628919560927583758630884809550192964468205115937549077368879720738869568676233790211517336733041251234353729148778602939744433386583008695202102244088078488188753326686406854769592053052009878096661911354857171147118921132089027636854068880102861385759980997310885499949686209316715726832253193556161348553573405189152265792433864118610372831183677576986210617480426260520038374424817395350836525719161990050562242293085585772119676408703672582807860032116258904643101599993000248444021784201042053253843021077391795611491456240470953258349959485127122797608837715914071769810757772930032947857866514681049715585828816526616490999250519330263028320751866219794512694307561448030083413200950597000192186523701778889138653806692554088986838309996557620659819347977061957038186577325866097336303688864886681414992234136683783471022879945937933170181291781777164248626142095392272167308078135126724065235552505681597695728111837449982176786592205631206880723221649514008336159250531612707392378976309752304848937372726233141743179065866787262676833702536018460565075123689039932667271243229704160866037436409296362941840650563070119074391068013861828524232080788290547490027134878166317542193060296691655309269127474082514333966716935799071945551912362610909340047681909499865866784170577467784289712604183880183675517096851789300931920689806192039575549855994315925824391835350245940446152046669165577321971748178497448539530752106548109464953855738379651393598135317487145090596692822868832179557979969236643861111768306081117639722357704808920621432559270947076782735580428919000023516608486208325441661770100416653946131742045264952179224804843092055309530625626420280791020969247621192262530692844386142665334106939770685324906141079694593363281524481294526369814854131399037336260410982455211670973410819958042647841596969302801128836485777071444230190490089746917434106607338582683756898230308258486056635717090476332278477143609978615178114451554529897893271621778506131286480075115925493089888706967838577342007270611073994613978370230217942832510228316820879385033030458127297436493638171471124659327401061821373408530504790513115541112214954611216575193623365704602498503711029770437275477851033342757961388701728297058576621066000543221190388478540993818148666105907010532957634701671087213791745076025645045708332337931365322358894028791647492507973635527553679506948061934802285579213332246252488053647063267575364247090075148690156920020747198601594229106296277368008518123050968839862472208942960096106652317883624447656693029362268316857215971870757232154433947219173776823034291529346281017231119711286188276526628992505339831571528335361213323479572893781748596938257125161448149489950920951965976089130000200695279651335796257421039731051194120052872453303331601123935878784868618450677747602017097654357917050305331191120199800941382347174640351441503386748503955675602909769067788945684528080939823080511577511232389007665944136405702038733870270171285519346847698095524303711348886609241636560258555279108756972336740638470610477685356350182054974749865471803520027923133657845991243971026940812389076587913278943808064869173713711064285439931671099199103905371650483369034599920744406163210504694336228541337022314047970316179847885449064220855956166807096658411433290898670522923924827747811361182426920716145028308976604105394066335517599542476063251150645082813657757667653490414187329395753915682053690464489671757656564889581956894726974117073114353112900305866425160526435259553045892308042442338565605181623045002940584975531002012497872327705834572215574588751532347405905115047537703561768684405004418510522549096798376399174681253181667625297814131514854322471067491360900898172790570844840338665018835428628758257340766473053810766394282128009020444425146387055404924594853331615682781705613167150365175385636079092244769331713031157353985651017792082210413383680743125052540530432260675024800342292709416139728330198912236288737273807992298261586528053157577020232386047526811161888316607362917493631268326412500534086491899185325334394313149388374817599199308072693623169361726384820441583003822815830661725655593468612790902011964232436824024383697517810556518019571565482113226817878293237122725974632875878772356809182096905154159935538067766643987638409200138221328689416387298294208332002592427660898768684378056803177704429649039240918601600040011881442907057629504434927559156624568057177311742860635101107470238201923980716238646372434042762561096883793684028901984474646685230011519197195414614120851300261457963041987614783568383943223230204523003124562461564470425092124188785223809575477174800964298747471218101755041440927604660875083638723251322917860880923843378686355424443380764829092791049212495392730575539209792317553804219845195466260995518554587052537995893945774769401501939836320934622265442890174166683708520477204157581428900548744128578635057997359209009442974521272250926465575563645873007966957134715942912749558256621852469950041785824488899227643884641715764501719858252472899950578966891872349322509539446641815038581255907406272524508908407537639532001386281609891759148398381431293705940877938723263522027336001569320628240477682141107719780514500075395605371719555319441545487662736162995858372646361415248533962954901591358873971047040691208409198302503131712903206929218839497454515830234370063058813836321555697194321158849148662386236406694750957332685019618757901635211302894837397784106014899859876565796394927097800060960264750794603068826536367946305863350000022699163574420266678039611874281679249164198833467609092265227704833705993345190268250378828896186561516559783386941731691951979642141830161126362118080950933548343062142412642468630353185948648089557973931476249679416024320376627762543736815920582683770296425410344312628120223659941059052061443612758849746388468084228521693489259251637505719573033527455622136747389759806236837480885495267494647325364274789871131654602257095251269107379784344567578834196791063170453440028719970041074109785167008476191053841679853427546481372809928200954727721946533907064296097830874356415135621424302513185897645781107700055016762831572968131721369476228648281709149033850187080344418531157312610080602242458297318384939494477858255687178667644079770620796801066876828658921972912440113567556444372812515853862362324136732051092741442688706944587755157533587044576276768434930443465988530408073815495114811380762923895735666406197714647552877859552068449683753443079442363954955545271130235585136399582108010592480749031899603692889239640848764294550280847565967787220759795924985764651314613195819392132657165031959823411121999311203318876850685976725454572063106503797733343902686945806283163978085782630157339826913318069876631843724119561168410854916170522041230887116036562567948723004135043893475776736026648071850626397878415639634053508609567724260374343233705080127842055980528048393203433913375183517444962133022902461315831900496157295226794870419193550643833486683742138987213862032740796604457741425744090082313589873838061977357422090366696033119918303899181668648295185604868997504900081601050907285588088081722495152731817887915767831532917064332942427138399300520334047551103485819402591639551582529717827314323361255578297395959608519579094881078984940368694858665135548989464668711984280753830004337227290854426316607734169145873693800187527833351577699391367631332836389254420708787112358506434692008837447980034095778869302166682089365732835769191751724702303573212509815156586289911939256696524965745691345855616262807690347352900559202942923955548768795727173153755971920865846044796797363791378139949033925871296510374049928227291696355173865856059130498943152446074953988125792052208274802929024380712884240710498382877283409517120614701577164899412069569255023875065126372647318907147363816440641789609015983878901112830125625573803927238235142412593270260748968420040776969000288880300540141623019985596281608126120838748132654669556964412275112401651776755263569773733752946944016143445618307658768407574020352244084602373848962864119997992118426360738836808711030720972353462602443400025592118964382785044784467063153375456280081189982687275843413428025118730808206870484992572743462969260676966546567955732136133294401930377372526533223454165114876340822252766107433579125450184624150183779053111351183844870005917436002011355468821160053147626522410426974155193518581447388446353913876542128955017264503069288799978102999154803346939545354910959059823601237231305528610411235300637162792459681065423462815163671413806711302010092229123815318176353173719982604036245933346479313879287107424009753093752085342019364304595199138721923206496098100250232269573515981739006361940835784481753732277658267478683760807573772544721338884764591490972675666539364917401736616445544929820184678873849209556088348537614618032422682188630762417693073116564566703787503080690371700272725197068114443761583008014342313538019116234091876414119992479943523145238378832464159868810574809796707994916761305281537266869171931823499245102777650556479535188024759653865956847680129703288475497385671409020269398975598507497977340518659166627708871785312652613232786369196375598294504963237795426230053032561509938851515461422399226463616482588131140232923684211937083904706202767025291978858511067148294767912181606317328450748894668927947730253965898641755562015265753957490528825257633863819549374532543159236288176887127089116139525507117008705213627871905689007016013949333754857839676393044240876291930725124337949921881104886351794056664233240579627506333870646267084390992014671082972146543719040445010692732161504994661135274494623506183682181813024329618441194141765278093382703286619110474708753538783113532098449243882246734261464084154323175974348238336748984031514007731181380313997967728384359205004638351170740733383659107356017962264160139519451395639047183342527989050425513679564594918823678198421036565268410433988558088227914413909417079281019950727521719673894085198062786530872822093455414033185514708611755942773069265652222525566238237440664617335337618721056376812842873231905712208603827307574893233195169455829599693735718289661110590719922684715747967839176160945325018648403472443877186131105676873356274419934350704390484145144656612177957837597261075222050872200146290650327522452111310606956904695333217231007004295701096449272207375580573021310060940316213355084062119955256525769903581401647721517168466496357492802327429463008919534253067508408292014276869363607857374859345527430955277779652592010018798975759067491085994570972244735304220573735841555694931270448005387236966254930974136221905958122078475571199854476119360365098238720452506621816161575007859341068929762768768870837118291782367598003294722849779647113770510173484105164189379143898408883125860190316116662335313057554685082159077468961925754674759176692284424618634835443112450255792077479729381167530916615576981425335322130706468741063352237268614588144586837621601781310907210377937737559591665532439590325344041340972225594577753697205243194212625475580127000375562784958450658912839711795498902312548411244296857782726297238575695679247786517921628762018241601189893586031563901129609228237631330944692624775765146996305877680468766136610878332354079836472907591451741279993434985285994121458766119097096565320099528230770067650344319687116068487152911601536451869724459492555970620892318116619675259514728580438417293173046869992071204442184243097942260103559255471577740322639940091653892484931334405934353942796616827094134102463028056797663783266604955056864653313346164329656500589245772611031566143812113443715471805924808638206887785925343058479216992038746518377709156641620984339173996849376465532398912522020606205903260258291765871927547972730317785003245244422324911570834347403287462716633399545960128265386391194012839077198220334949216749038089219802690703501121897503753409392766379161327796121228860921175197336592779211279308388546511030146050486615095359400129533541219244996118410434653053798294532290253665838899395034564612590004090128275958632833719564819823796849929564494147643062086590954557496404119720579125626101855018296056911036077810751456159843552501936183251752176515840981440751085727810796619681242853441890796060918641264874862528295909608679038490325774250016659899795324387036411425364698143087279971446234601853312774819105466181163601567660400079133810168520019214825084854599268619938650330061340883695719179489737064260803227129544321418941351443691418845920485223604125948382582964571707305784704401754155846988663099192494195704286795040365864649225971057894048356597483889874470396222774916881350755750107547335773501259510463967601000079700359597511709176592797437240516907359074364372812098247663955656098522433969014886587982549421636331287725728481951987998911420070349777247489672923351100955238566336803442445157148720580450249218456147637407070489746097910392453553100753521623722771671377791315117442377247204480571220386576646316379330183136396532871886244318355675252117430648758980460117375243401467165764826964045505221512324831928502256360694585984914389337419688948794527845133739374191091762859335090874357413633499392324692567607970104090066968112234825931458455755847071958509614950687224833687970804739542539720713262331614095925408430278446158145706711629138318652122989355907638738548602789448317382275103428757964107100154971879403069351867850799472371461979954216818269139161750588194598290649841215230807030282039333364914974351500364407029249599907109798459184699594007000343839139219539893263814875392331420969471143181181128210386210143858526208681913291171044202605234495081704190821059224775171641060710450824570526496228406490798382417046846306323733244099431319311730250425766566173587780518738297634710542540288446026777220935442776111413630625560090042711911528259905645398780536034797574241108448747046764258807358543262170436774344793229869475755472834268128664606989444645689320952385977337834943139435328801883686510233285201332010686040311375372894183814105422043861367116169400432679257522232561162351728772773130599637573633959898643668361046003382271407110386039488003116179962730638163764354064925541839531484481764213239203759439462138491423089106043711287378132762415213450874059336621066809191620288307868358612077962510443811137623108859676189932164608576314838134104928820604872253862302257802973531233579248718372996530204936984489736719698566422444041191787658199805923863713899995164747572837362936687899547757242435621133555423226270333681821536150272417830809317863015759141206677721777171828984902848104283647018032275208596876047193257344615206433147144083343348220748312576257588155958653140639758189944673397001688261545397931728484857892365150478512563820984696209686052549151268264765237178474781313501173702806062232533181344889409746099785761189509927930525635038883475411107988378312451671943752742874269583415179316391030251746534485714451989731439111371671065771983448076605019459725755460201147256203970678797328179418748875742244400952163676041320072179152657768077690840411427158778906710729899186675653823829898777705121680599766626180982872296792094145539737030775572928125868067506090300126965712373417661114327057060430612638081035327769144818377926935748397168606376516474626008919284734541094599748698287742474305596063768759290431106509513732078258636961377637036888138806305182853166070067636223165117211295863604373443695368534927394440147608423079444993488263426781831448298717307601142096801364509450195106990656484861757998487192642817902271141844873834490509193860086627108542614413615558878079938534760409477769857762166490555382925354216825324737177117741118597520476997188599225833282678826678627648185359723209848653572319875288985310216853100513524863671252960872558723065659694988678559653732965194117752964294965890090033790911838655813848016053531103046627474550309374627957816279524174879335684584822881261676511550385066441263476080265480554507094730701685765638806427389913665588794279772683864169630001933759664133904059629048846815807680298817263674954379676447250610393324309531045130828273180749880973355809245607820361971703888505999283812704864420977438225764337468875590847227622668143990465507659726126333060091989398485545716660125468233222446162956760084772831704002704149490139694574247879752428812329253782880982857950460976849443920712985009380110304195435384310914012087951600419416711258051172872716171140861636386859930266207229952875406687580167493768929608984596873828198899698227901004300974495157784731114794182947578048981430876352397228531883876373438468780252208806351394172597630030547624677217318214601360671496169968202207781085596876451205837227413393776350935838269032642299574550775352903775034671685095784650716864526231017854959377327593540567723705212265811545033701090653010145460200510608179426062881397705749588827338774777068204682376779572249314856333807058361491316520400234263468850673512589887892493384559518224014572474460005260775444575733627444057957213938726849135270068204535522506904620700435220101426163398630813273702547035904347976741822224120264986296745281776237794913392160637175469647816468393328711401969926868548128593800298186941900800178430693841204897198534703611176707510010770460176996555185398680338994413120050034782536358177007362204323542280884337827874324101562043430562552369252775339230046065664780238791257977276611758254521011210081281915010593182064736355212915054749641762487804389579833193826363382367893279173987929220348165167275419006130375051809396217326263087964330151356055290176446545395641213836190034575793656535929979321951613525693812484831780626266846093311191238920444067051793726387466518816128187556993226530107151455415153309834404120100775206878982810115385849744297750976873987617614947730352081672980455385256719442495464744446496508939727610025042547898715536582918450199305098374536404113923528067028218392445090858625820718497680594564977565007983404945775267626282212831501569899385593915702755729428939462183560611077039917989392821740176296028118988696179719072942894907564357063585774866876388016396556600103244601018375088320139096725074483522339561244718194668334636146974003008729562672198399054298792838778355087410639264303744936638952236602634212802415537086759919262058765529542367974735802019333515982409405676068307151246714128535239171446509198647557675524132324303825818417431684859483636612443876997281345787079704588471850644887885242222572217584468084789480994361871040083099671648861126923331625965494315908260295386315770967686465974037033930215522227228722619578068825877334158302692422383484046966107941066862623887770035232963539801308925473474864211186725627127105306043721258012270533386372633499333899893914640762278526430480290626025613144394183009903521924513153066624149380262605640302768522817094097952539935364824404641372936157250053774470790479923236799784287847593913055850386047487453240914490899389784343301090957467989835202816516336508546387317708670851687875399592011439061682527538978436656902644656044946911190461843659199146703962309865342890873110731670919597183901530607798570660587907322496109402680585589287045576278268843985613101324793925834430354765007783940808356588353397167235731754395282851540395470156183408099749679703338213731240085294660335881552399995257418346286144595974296933456542399874379818927341070782301061160457785102799560789354916276526075132373202399133013004551117295033300330429328011159508943201954247439208244434166835167842806731613533274879274269367061010131404580012983100469416375541791644226704766713903060327913028660182242076230719100771707012665780432300845986563505368709837446793745249557983403954396311993045897426975766304261172606298182385184340586416031743132727016427324401608077142366703923469639389493674994132167086681810023303617807475156195081367161496441333136310926244331557609401449012239361171702326464362305180339460135367099352975751363840091037312101807875869495947016136711789804212385304557898402667960561526317662327025713733658405492368529125524492497277630502762605963581318809620319021590776585808854351583288259056401204719546503500769028134140806740172767981538792902980119269532067249758919763991476622397879281116923977083640779661799939158847814709392517389587673657482239116776847853510885803078020326684637343554633854698407034284783857676284894197673412644578782242423644088059554428334290208431037540708136349956349001510593198318497461944109160747712813325142463842559555243042783449624921597590602263187136455565784003606196266029091726161380052122717275990034380017477435148359917879680511924368142400237593584410240291842435364124117809912111402681905221161589075978337401584553310367453942571828035614421936657720839545946316754368879628383702516498279306072548127267720528473916860105927574817368508291659571686927558058383492617737729712325288481073929961960737073636351482831271528662295661256227963607186893436634345155289272717752615999242992711359809788317127454547507975714670054173392739725022396089250252071444032865339132097520823831311917091469756493014594711092878905856384659170649260965409552473809186757542245733700779123433844524996321393627685660177114470922082485402522322952228091538200689237771881779940592764789674957527997152550004353716449766757647852978948052939367747801253827783151314502144437555142318422165257330713196898964952488411388554041166291178957438404624494575584467315434604422706896661628012208915928172699035398260533075392533735281578893738181039193335013652449603500464060279944824777016289377589301211615539846366712284699598304851285873189155121311335386237724033737891694632060891383734588637274992804834934292296906089772611723372450504590836718215024895813555289061393125392312207050403947731750221572463032482863485650281441596585542628679417976628009631037876693640940867843469739661249541839824924392845298273105565892028017530087705653397230216040280560735965252957464868270288539526603207206079676638108333948163269226945074146904047201864783485712784260587021860928556808715995365766325737662528300129802722982838243064404324723846234743388929527013213451659280741128119737117959833556759434617905809272264694632718881406724457377087322885536176136116901026985696379105730107741328960707296728330382688756305405967518271268827148352995546602918128291158604020054365165241342647525670134359135383291797209593153644049862406907780312903785873625139040046692511872154224950119086084404848514290967120556197406980018273097630917969263274219917868548828856636717029614109033159044358172217513450305770749441448349621161237165432323821108954988331257603970363303372543510029614925516672929855772553263115700441772352125666233501988670463347528418469994605690298017412511567591047554928090275725351336302934946421843167917644880055752306572390076547463126500589765276758648918310415458352978278159923535723354050329625685008263891739910002349947885181877027877732149084294251335983838591041868105324993383072761093350650340416575201342252189766791333346262254120964896111216693502033795571034749550606222148422386735145979475024271703295535208926539399382521467323141739020973807603575191154376117520212633278731193918533823438426974330156635264164775872711929672226089103606203546618500660587875826982582748337569431651553934867213968589951567743815431488986858818468044263019118356197276474142734660256495997186189479030074011638619958511848357894706975196733496410690392888998743859406271336308345474913462708704544271914901231533489237995230004644703377696513212911570637344264002191963873692802159239953680021888965594643132126523570161805282278479004282290688089629754293270463271240686329052262908977458510043251248335042763383530530705640639269408308861185229026226300539432306254799949342936106881715396914885833326259034634602637511473280115519917937510088243097181624103291092238494702198891571470045954097806385664608741708236379269573194640796321494013333694379066923673663103259410330337059779183025510040493468765388733158983445799604588988738032361558400878813494167909907956444874970207308689178092099418197950649890308654482976241921538652870795704775103760105544137817375476812605377619231143130007142659782637449926279972196068455178747037768386085520270133534394037676085019642021488588834953666777606020961401602612614672062505885788508132000017790048421856457982827511263061260881184157232324711537351472510345246731019205904353449937216615845051737223988844507757638351563139698605260156174731545596197516064197498441326422825566009306128239394082200783041823759227122134302981938835645535796910756995370263721914233505941363721451606003587791796261027169225170493642150589232643256815693820977234718444074435155123309646953330357469977994708291724548020400013913611544716146657354496887693353682034453800084345558493319695900672019339096735085557205898109065471788069688637783315268143340500904480254015752844773033024898274299149326628606645966962412508148225521180595562431213908552976172827399541735429556781880992784723082926705810111434275565966759668806256687060366940052152489213005246565647658672653118314538575629590370421787055454758643181598372018528620790270834455906848839805826205853408851976125801379050377698163359059072718447160514854330231919366125696075624447818490898567321493807966032588376004493402177525527894341968179818973049054798694125813341320684727358466899235647805188311522378912802979824650414383248634125134681619162449284255570918273238431398105707953107467982554534167265972299068266228077569848162204896141546730559270599141211585967135973767897550047386987116622619935525389338668420969230727592493637789172131213514715453095867359313966868532312067441415083161357015960782843566297974245374646428974497684967611693789225298848872920508931268909499201901607295941107894615851843037042339964749493360635641473133221776620698687925294718705592610208589311007357311590175840398201479111562424381513280359090788427157940679373970586419798397515517190356521476311038240930512795114160506223920068666417787127563122637515506434163402572889153212243623023925217321569296218512498729969420114077146999186736593449902691779458464266752389277500162441538514189535829678365982557579689245244654780646779676797363944546729429409019082926248910878862041184295780932756362149103437810122108938009545609026072840296070772347043007571639738535254042265174009747398793908990287944540518432568498560722393568228514180232765668703196282588579626154571646484600702334302007232494030144806913968727783086584722627614255154351440816457041368234799025304901298729391013953575585577216749547004569191068883590654769142264121630646483410606861291381824055839837465453066039762119845630424062623613072611583408917878517163813387276984475014126781009761623980864703142202850291144358876475577996208708874629171320761520142192311169903657262423795298958736381821929852089380151391364318405101063047789097257338562611294167330572317777820513487936605243393231102986774337907332085355275418880887929469887906164260906830910075649928659080955379789994533677898635373530815626430245857633671722239313646997165464871141257202767827610522564057202349348774865259635310516200101491176923612040685579345205841721025932563709115034374567601468534641515324074657634989304365219889786032040109156312441318645864271050472802858934197234422193419649270601992730329112867332059016089839226630524507873220729162092295869260305313968929855655221600404724439786016724673337189002440278426145336726147034136712423904046855957334036324218341518871018414771627453324723541785905323994690259719821514391682798090718179596033246670513300096832476942035386779245215282391131215905237421282323214737238288785879403485293608585640372217000431112154127437087883899935900553664704882364647056264039144196488442196308659115632545093444939160013588835237010396868627197363767270596038602226906829602054024430826315839768816310209393701699907077469782911709973298073460217954455497347517552789932126523621186349504717552157455023399417779260532193794821766421522365351274351473189906488712036082879557677106667654189006598455329206041516970813325892748027227116867286471521531074984445885634305888529591791548750877358700969988620992968293950896829627072474737500389551123604838745905715727375604058793138629720438089427507239493003797826186386821311992913828848673975320701332404106538484023882982661229060927254037826931117548839275299161735654644228401317295716351741856129841984098847724161061623714812033479940009627332141488202140579167635439936274659319091345315573064280688870308720298126671655557593804504837584937227154663786056268544509440205775567098332348817087952541003142123994168334140424455723323230477134827128117980110473464546735890416223599345878694304037536493810804446965954692168557255690676358160380002534838456032690256378356972068054860790224465358874763361471679929534222069524199403693480889446338994813542062896276989232406133760004896765898846473328583108963535829418876462180910624779537228152376429832284516069293455840351418950396930394582016342870743920727031701055311299334943056103695315069781813791768374777188593120368696994538131734638091447892012268336090588351080863973877519726114040069308344535356007761863798678314624809579484570614389110378282378467230790158721231545021234653695945423064572951222301440289757454145369027979637053896677008996809608683934752872155333270091260152399272677652892114462809711740678121188878334545091214440141209658041999879709044352116628747835572332474787877934724822007555775958928630875386248702539502581100415064857875091076335015457177621307860270683414390023664300157274264738463388589975358286088052130086985158367823300893644167765629989051024764725387916749400835754573296572780908983163740466080607305069380227570895715157530290957542380152753687074093117501936250875913849656469097012204413527754523462497092386301259609681135971692025457719136657976303360733555788112140465783734216511464079900312785809469643672150628241175593204355754333028090379976947892519159720139686261949876728098553173947089221397823264475109247368079751501397389810680039834049710870267575879237880634545979531006586410279695323520149814246719853731603322831971985812839828508221519070604294998281139733660279204122761400687345031748225332517306585772069525611800797639159206794603555737695351180421762462336720458620812991422523851212533635737572469406769205580834637836019260920040591885041435964590284369429761090170663190687615839329095273264920559578459519633076917793527441532971088510954209774014117000819121682141501641551596013440215524585867961332235649041154564728104329180872425026670049253677661287488532357986384027341127315196793730998135732989796214565819571295856033796562780184555753136617686044877565271225349171510301424806148229556190657955691984577057494185648618160596854306881320507181559652285988274258990710904296384751742250631233595813908075822574729349147640801957360431632712574221660360316842245659912712450784628056015401768591382923336789939376546821224016023055100219912322058038851321981726747590097631510064600429443074751624443708997626204634378984279216541970564641738161846222133746924433914531684420235449116267044709648171825891729503871470231413539934147045536091063684581926499384363861753863155487956246038105144512588571359120870028261071671208839931771760653946410674431329175450169365732226997646868272042254993940068842884104864611040273110012721444815733957647264581356495668422726792043628698225475983756035387119514005531198753867795097032072436716583125266808973223869721372807714715482495271628982869361377747548423368703486552360637693507995697108817030686066333391672827601364926728786348918799486952869975222596124461911287501140659046910222569376852966755322955487928651116634097698111948305065602395676228575039177699899949763546188887940753734880728887441968579342271917314090544122755887302594088417016890642629824201732018013344396229439419782135385203484714866599996196151002525986072907111999190679823721997543714160101375642041166002647328428617920438018367680513158217138053425224560036924007026490185929060281435751508790854381442733048893065537279708907162286478008691363490053025223781205482201330585973740858075061547499442720641442738716999801128614353249248850429003677586359728833396209993749899992094539075987642617259843328802809276422919883298336977174981396566871859987410911316466828575531947427628030007533687011487598055965460957635474911276198933085034647416331428524455367531465022089674216937443181362410029697411435801921932949068525060722138565667143764690255425183278321622854612629819201496111971214961952093156410416805111752547279218448056907946296530534412011635988773141496961757937326270028327388082142044964451800307039597223747782761149309643402212649393578581131452939201294496666295687905513929435853634660450560223830186697567312152542314959020849787011354317514021218914191113880955280018423197530719344755402428346907936258498950285296799825022550515884444015140795008135996523088657662976329660320358035231256323189309087243099503838405562361408869839975941114577329503196978885389936376629306150908421327009734756710017548333704874690088975900683002941945023582177452704079810752736969642371330489881224472458252178056511427042733880076906555436565406202439990246248703518348701122098994868082834758729719856482066137401290378468432350262960110663901305463627083978353206098649626238257172978129992415637801025899504679222576449193545445813207380744997425999873884300074144217000577171283490710229192981717996492421095904410842880654329142044494700988278828254298715701204739533743957623404102848991946436143667875474551162062348992277766056625126538927239097110497972699144536022482419919890742418049059423799434082781232399140489962776954359796023352751046431548997342719844138719963065404932673073723050267037353006285980983848974239276941481259656786021606400304178001892531383359334896571305899827531186369921670819432150704777345196286351973045257410784894451780520740327071657760591696481298533495356883224991930284191713743164419769706892460948871655104752402890483837681439909679597176244669088944812500716959816063849917978040608451984151998032987308961234458063974609394270611135363843549722510803621047306509942997022219656951656751011342626739944232033727562097114016138839326479318509772553499130485213024707872075131367939306503748038307331823786912698041080375687182565731651311430619717976283571973134137203724657752886494226137558167046113496026236180137539111203575033706707991698933764014957768351255389623628631609507146256382881397269358188075681092579841492786730927317454855981002324696469458516628648335865773491583781960080652733273261439903977001503529998116922264322370559930638971726367711631482328670685575579514305478142181136495830406390689894954335420975277968824123845286572180775676351619591462922897625682357770581987084596450791226661592845153414633316925926044677943790569023535498065455760177008608848435485049989896920278241314644782517343207733799150541671311119683040724303336597118849749428386962466764715902375656648003453769927994331881267478107798701755618354310992336657425971489886570658883911155752072315710572089547268319364264823767832026519257771663751804867746557130833644555544818439136085049334828735631915791991804291372039579048026247786098073075873728792125279735577014544515763345987958091072934198744867985537723903870693359191498701977104235227359979532676760758041956633164046331443784906253524897001643307584421937127122242074792424120945531359884781879025200338305515685005248390544880092152147380840759227154878268998616705335660110553457101086019926905227483117723752157319649811951782086518672343042648267699189090130960999327127081353622392547506153956234574562946741199479135179361224634750971225176244923710413078188824774311988679751432802007648055829341399453930650289696122837495814904185973437325479323608608357499067133458256024415641736160772384114065513043062694108929217923917789777072946541185850750794676336381919801773096356140949682020740329201952367725342070960890728229666559278310990513970427567921191105943237456456702597258126766233466215234977657822890144085292452927490942106090714463646250269967682538342583488624198903723075818614024385755509716365136351993823806969365847614492618823468152353359485839721850131567622309902388655953110777342552355381161770118764272383679728477880743315929359275845080701960983471364847614195094132469062588351572879103166723058596171647353164243799328526168299373513595071211050600680982694790799177317993210200408923319666873428443783564725226181874217984385107356352495630552271484257284796866557281274470717863224080896241292659124980363255522968783508823239083251378754029549010431723571156546896524447899311299871926331698244353974050830367069120204460468999102362090437069773911412351363874917687681799170030578403033409546759545974641753528759861973452979603132493298393305494718194004170131810645181976074499766603030444601803003058953737367002264614100385749235737422821749479849768460774854965600703388163598282647074872756431321225865983620125602320319471097057207912961305662480486699806653422213498667103428302497216514617504426904576030993690706577037119254951871095693377799411357606329432168648229870304999518595642767374173735543562685681872589601509916373859058714572791817286663366102887573454744491961407586604775899683450522291244869464063389521447736267507679799349316920473762688451617795160064745424264164495086066758817519622386671922264326180565268140593812431008486551218736326338159318098864854521521051289698122154564908731562750353545698462259528735926420879453920367878739118381311406911831670992729746961201428019515109293669155966163149896262195483763942666529752297415654431510286436881105036270219564602658832916921623435133983380746006732598200194322838876117298470472388758570406394768591434224158770535868961033935175512546356527282224208470351201062143969913107283965488110564138339921178623511898282938031935445053117187967560401609069503281420078380921849245100948388562828141310772703332665477467887440425454313621004786814272514231414356011670310497422833377591778201191996208234180204425608421661858685394031771821286592897127392513878469057633374060461114689218681675346988599224619511440274962352463384736105767083427065780150326631934935094096822738377645049692116721173880172930873090873330775882788424815700826473757771954234629401027536686309211347179600457691107017217615602931033962521567853192903893854410827486139757353431629501472876767488567595071256452997744270351957117290548013700535658997935559399325525997397460137987395738986024124626543177869695457067467584838643860155312297958515577518528773419963209323403642189247745517737436679597937176585434309429820507365514762686105215683635207501992621621151088812973708995855176181924346150396349840195326564926590972009181776129470406457909001451975775857540266361270958677068688701470985531302735049765501281073077624549557147939634069627474458608823221086111381812286096727530171521039891816017082149855023813714814339541665972768419999315443931213990676265054314724913052680325744832645768711208952953830247343027678076944798427856277839445765579119986931356759005025148462920252482866934555401633090841425709644529040489822101037937377010788818969385844449706801715827571504128826031586175710605822884285375623392911801111252663404671588669596076168319534439994113994341777782047954322439985783404847496820441748978703992754409500339992575085551808733975415673685318721611955516440969804810230561108325087202669862499698612528926671409678050064378064181145938958037451094488625624082878634873637485123438059702888041444040832179751321641116762674231793385464516998390682179075846216676093123364263991438343390999708249739878220636570345728534674783151282710713010966390138114118949039536576185144338287767529311031703570237919694810502794872477438334793817589081664929634754722074393142069933538517490770592908763299378483503344913694277195214412630951641154710311014715396551558182375766295233877110363077680260735322845544924412291281753223549762657679196843996343112900527244419045750161086640284104126822431026500059241916334518178295608310804409939165567037085972739887679498971980344034796270873334137617654656067698549909775566983728758794132582141495709801540591508343235228171836824867794400035327787319636945910950016922626582306050893549915576601232524479739202387665937582644572823679224676967403887158849494721102192209208631401733163327691412184207796788681920389437188326621896375144787387504996729992424073203507668653985993705426255138223535134190712509928568711903977957766391595141762157454282163187614838767718590111335726204938065160890245469858627162552894949666618398394814528604097157726190604398473676047652775433209684015745816414651846594625148049080120074397496210935394563445410580678450393939767805223141566312404211475101168949396131424459372234641202800319611154362370626073505423058704437514286417872718594597390500448807085177941724666534482847335795580455985687294419844319978892531309785560225434555829002769589499000223619932269197537247879069847594216568193302586990341023704134571289665345111110336984128582578126596615627470294516674957085505063352432308065924388251691415291370644093504832874294122720782153859611909641889358519674252195542105171079925466988091587450357457399265543153417932923207091362898713863081229814636320095729253904702047071238249375192494752128065449195425663032139867471696196430762722500858857701559234927857461816092280674144964855713475626566715378858507647172487886759294421260479844906695986311064906334296025179894465853145869129990383240024007470787392249063096138394488727375664136773760930022490979345738207307304104074316687864643818372222108836925539322217941839942107066413901471051429636628331334929220569043826608432726825686641103786150486629937380668369552181559644823120819947272088214862434571607048889266758507180968473899228403595055690764716463251701549314714193173110103734672357337874584425352930725251574654002264266787439352716834356847215066685689591697244444175992020796499007071449017405012143018480053515821670784459794645917347802982856430858289535746973945789889671424945414627051240601128004256746893560303290896952384755945279846543525786759704987199501459805475474002745868569914035839214499775522609345022039836484348912899112699852923636625203688717295673855333327132867165477658254971176717837235989470801621319169216374580548411317202868907753147761124152197597225478982474215466067363615588178270246345561193989636655004435433704429792865491268603454841328351401142798892447618333782142143534995604287717814372584110527778497325030602214360981597886422163313360445604285771209463049462004230610005025699709549867211415479568590141319169652433999899878182217684267858972599108364967148834861964758741962836853978354674647697124573806760935103374301158256938527644163489338182880395619012997391518633625707059527090716332894687754888465426578269128964893719400108016481571436896049034913915142035225321257274172835826695488705962655540106090568136524529197700406219112216277285182173643167063618761558977291761148420799032576959885913783284272246518351235418665002556695285887236569145147702712867136845177229535974399873051246406348122705261511611724464101012389066802694734422121840402624532551656686995194521834277879158136533792416365548524967142286972978712965162636609451265465421266116183556087934242366966041878311750454892184720375023008090876912884571371703379919005500905437803129968909098892719243734599098044899249797907241451920730167578915695141911167723862113530284756640998678955255130275860437087604434018283093890604785137528082881732105317020138619704178876824625224722834579097927194279552678870736888383763203177593144028853786858007016947457105986494470419131015584579429156762915635707829760154373168836010656856348999708164902280145285095211249363714736397823857065700004271666876998468131658020006952383064779903523810768192287339128466544303467484080323250790727795561996431617589040562863889409061862156185820918751327573464812432776196360552983707801309906636131667269687734706991263340734529996538738006143529841562370712965085729937689204396761367978146756909045690892586995815946587962382417296569725579099837472804911489314926026350067650580951348610652242396461671339315660020640856637535005604939919168962880641103923744500759380526277709582960615583087626583347337646850535940137617158380552896575544505670329284317908962299181323378374444618283338839103125682048782003928880318860269466573401244590725169069193563347761481826305103038518566426264546014089808678930513187892911372601816386039566699181958131135170347240240687364689555626664233770531103388609857653389642833426101494939621783108253415823347711816505709217684383404845274737063192392033863252835005679528473345253492515295747533668426130818842172652809069178021759487802568115893146788779131419964918405831419572688375714308176536065268417701884104225051352488031443583494082517862860908668301236983657310912673395551445445206802921818545735386067665253386925779104801227014111894887753561668907008674897339579797817517510220885454279263883765051517998318886877067329587594394638056956128852693825994785657670366358776664535007446760147338960396244928188369639862880355975248655289702356885193011918852250679444311630952155027975794648852528037875021438233767821389147228047530807268463899539808708227320873806612662272746789670384017238385822641361747215658551933625917234980359064895399232732612064145495444405757991581776955304313636627901203354826361208439606071426406989674241583645239725350933611417756812263525820684335213860495031698913365376055022941310783246521171648949113992400849549317770634873831045157817070935407530482940102297313536976453925665946419613721416087959056004564935437904258360608945372976243126728968878065457244681519137242430921671701642671341664441840377869633557286755177344623085642182547766627109542442499687755887182013846917797025465216853088970396121188101837236276383967478187352370801528416161960215638506786128373424928740222116548242612905079624357342413153230312091735926582980577895830716790347311857603380052704244519738336078597344906845805492009645565608426270038601278478682630760675872864032629127202557713598490816947951551377700321315686211722839527740867695422946815616274895119692798702950620479760395502488504847093364198036638778067944334158207081863517713128314612198128027489261471712735185171916970807417200336311396145249416575429653612026337818395009341416585251182644602117981256571357644753435037321806896636020524588375916574252293982321265222265398229314018183794519306173221033907082383421855956184639062104446461252248249785950398613842026406976143710583061568347675966108230210771096655684470542773442332000288616834575920774844596891270001155277194636213892103207980545998924320347596069262718149307505369585853454042784110163890738389491961832052811014175566475266764490734710549437544863457274322113850539643933608760372332786698838466727458460416133093613260239237183048550565324759052402055327620793413953918029489517284842451434286406934831761372738921128093696697686708257795021354557175623450239354606068158994691649946382639799054165778740787620074741220195098068287840958552253645372706341604322234496626751365702178367578655477490819279676726013807471241164730760346108682798287203984407074808203335430640886532803285614783165907300539107594243178462233390584599356729415206619197986867423988214587433991680783805817829773897857509974538211078562026768834676100984335549848709262832680490414587456614430471275048051013632424415304810288423050201871162703327314583228724274730520434397679977756188499687269390870134550990939754228287428520524979066523197697255195773196191391540585731470074262835605454577105194181160943230385812953666320919071690588336016740259512275802490236378605585796257346474209297251883475576715766226344817196340862405895422497844261428006780597870713093365162582754618011389054339372609222625408794269952193907166922368386179438941397686819459631061062244771064481840411129575409381361979536147743766610403671344921334897570319198316065357207785712658920208776947217048472674262023236925569106729600975654370474811712663067768546471279782144633174588175694973116675982269099860794063362347721081261424357141488817324819656496153208937937923557606673791209144649574871229338174352860677082380991033858034136809023400982573429099411616240293048088962546979316243251191829830570679882006870018745161336204892168854814564642415493708540371301096476295987907689870657211524329777955975750852941107299554947503269694084332612532665034068518434107127457369459410655367780733621591847128445041014147351727045464183762024758986074380682041284236628334596782396864300172081946941236059400547531142853576583411599151403237928269221126306636955867734673179416009141031691986567878161250779381266611985800324644535424700589538086943841477543651065876839837472661405033588731795500099115738456687231598081236695223118978032392312959823019645409255814541355457655171278007960668730340630421284470840316745278332725118437771096249057867286986779829144142466573182372981623921578697307824344299950698260196813875671798339675574678320720104472580056550102790296423756033331922979960344985822899910219557373929731875276399557694287777208047269525163279201110880997948063328341616107989898497334385452603390192099488027802111082506981477502316516862701070846536758043427033169123702781982813879526503755247529809869683869768389748984060440931361572197707185133550948987005886183006352573675769090678194723227202011189582109740438262520859449737364995896414339448777161183706449214789181960193208558601377020615890023452145892539038935404536753391074478750931160856912727267755185648121837555198598910596632710201165757719647235757655857208734828203331034172490638363996024890920142003867725707973774379070761201403831220589057437632438098948608584485398755546980049092565144847139283163360069500901706539299321025343177498343657431733982538142982426111867222674328362912744713648624253150469243191764016872456554649341376994272923954012726325104232162136421910680078089677028272906339846880625096172126083763855393966775166139841576175508937079702203885348058053667355291290609895650403653588780905763045602702395823823281234020804855512410594237142111652728750281110587023862814513637045629538342030739210425185668646909614525173459967897640077379610822853250812199158185955285083299789242402987194132989681802685870675447405240655567494658555459821438314286597246984047136188680079007039974898840099066054143567072347400872573781911052710265499343650140683021205030448515417734064519857799667660513038731212122120718898337614934409324406821792503732321884831950055246994114754755576743129639076407214222316841235894203766473516488141289152501703425764202015605028033017121532388791910044611001135155866269707450840567596571189330635370287640022506432381972412804356993326706683998037352459722863975704572859981491608245997079921663294688850670143542144012419487582186447064539571074970054131618988412413679806924262841019724414274181973976913408872108227998301578077519182338137788957818355199230040502507487402353715919012775357450158529599685360551902209125683783519417272340669933497249289714712468101796395266519415422346234390952755158893181722082086292607188430264804733521048690779000290013950337789437734282215285910454719404231942787442324567666862808069030513571070018497476504190329134113811054753214939687893928192107769155609844812025600886215584801314522601380581181511494643719544880923703394565002333191479286055561963345802108419562733902080233406279265816800717700341998428552219318633561886220604030220563546384435330644664760964423772007189372708179538374351425076794899133251853239826336335629678417393492252863567935984235109299671595484522019511765906823624337470078479346138511506000171920387377427731494985235540777749241881592133234705934451030603475861310803902545186888818297909244456286442822117729440147920373655902775554072586979707968854802540072348895213292665197401917178448063182690252891368100629156497220065779456860262350401263950793061760414858848240118855878723501015949988127074360910059150721868267653031616011313111736421957466165434107799182236472405656823232173633378464753806592980554982390397744627648243345630312562159181300672421876602977774737479989394861839342691384669172788673290845609838031620745149834214935092413603994231783493406688935957079533451908312393536538211033961899091718860329926644530688807031116276720948248581217796937985234014857322349535496975325097067994985717250413052610289044407988676627581725452100768558854862732773280827635426572076964019145556988878374565835820717250487966503884511640058932440635037760516762851452946643244105600940805849418940798125671896899063793840312707398528155866537845947493096217406892795609228821863157369286848037371605127623018070314707712861739563879042800928669484479199964988622268626783940545623219761999878175734831907530327559919491539083273487221252853420081241928902573813237622422310576937603671310499638102099035998660785926136135380629773337307756764283441984191460125337792956492791355653259778273560736132533847276389556177642128299832607810908175401823951526084896875852159987428928894535494477801734900332397517501809615825861288897001595981512877185738496787477698612222993620177316036600228870743628163674831591366853634296915825453698131697933841367411679081426558008533786851097214475099099043648945774644073233203629528789670981552658042969192805278236762266684434682038960857399314454211790118576851137419188902735624026649531986031308826202113982219201751183557698980242432155086837740726785176217453601445489574042179889385663820502627079118891822078416270046048204749536184089692677170506808725190716618493421382824548756992402001519995021156146419371017708885631382858775226712826825428008852839894356770623920540384703257496166747745172881279850893490621366651416882899511362304194306193463032175025985435496821009562947184218312431979928544576957240250818998202709821222418040551043028439346042754927348407641727700834177707339431450536500814167405754108949772226151621639118236013199364035496084046289293290672822502478845317426932566875703721081687674854685650081061472036816771474918313143930302039600876045809156664509082782967784390632450923728664142133270126096281503782236751828273620081614973206896818354291937661520391335682678892816086616855678219298948647380512608931619249375283165799580720474930450222755558294091779335810764339376576942907961066642972065504118651212710091660600090364666824492953913931416765892478946820154576597419815980518533411482775195424010204723747474236401802532337862871219398726250759876865232346245609577561496320467363036745689567380145200893296212013964659891244970512495775115071965951556482185842253309063377410636410949314077003183230733242800284897971539146521568301657619999090362144193229785202337945211494875980510539223988313200067586585886698429999510504937448279249464973760966695214741463725726041758625086179230063682794091183616824443087521348534949482657903238919491384270162603159698648241616749054275184149927632219548728364540011460435982088270452046330919536547301590245014987482718196166459640732528534014718601440240240485832321235824498898363296697008756731754096703364231378465137146677427122503920782342966389627628779644267799732455196825851389918621014751865599278737159779990733555333160183317140571122733383840964020406224308283852120452357559606720559534786360224138560866012002484338070938803848417759059933576725610323387074906146217568476939375910774351912663862690912277824052300175517341368312506144375410904162545680610728087341024769805934991057173161355282635135525713020534397679733147832827127700599696664092813881951494926746591007018049322103225761278010274738936399736704945541549990120566599102444317953439853362597147100441505917396439648143429328503467406331852348372443600229092141744992516618167878591425355551220792720883840594612098918372830647066030471268440661344041350900889131524442613195797832649620811137442960861524971072487065512711972208124483531891684489117477833031069872979693299641623535908918315357951951710017964763175739133593694061678372816233807994944773268513423503128180831170803240772790689650669663898788432803663505479149789869659121669295191363849206516071642843302989961027776289853962971443684550593848932477807709048449784677862063479904947649162392888702598781725777081462673389885674900696759557366636011528597108262425845854588398722593448124875944828252856728435355049854851717151294774139644720123041615415862055296324735212861092914703213918929054090911460759696754916120371509966503177182969977509559310391659237093534307164365351860420225250297846277637130807987597219672154026769498728609125757814086705146320547011229143277655851136603152239476241756457462295916453236671652350240907593524034030036091121915039716220483897727802965933771490977703696716961445452195240746626026465832282885842398554957253840037192248171651306636802783199348023650840630178661191450239244047716769736601054549205117505360138210106434761911613777837577567831698803230373737247987906728529643251773267267085335472161538571220282400234591512153204485975251394542263390675513998665097635120871394291306365394478802125236242699765328816196816991171484742492714952443348897615432711654591752432633336209807011894488056930522512452428919735176373998008452259383198598016640857235122014723311643381281962005482787262381285315382524660810709049318245710143778273029588947331615537034127943273067454783259701463725702940974503425537990215286342532382364184968637512582602839846883434391558873436903696462883697385745827597160728783426070074111458057639616706697876138929665804721704172679504459465853652860681991760619189242872301468215128809711956604596656947045952832257759710991876550189935704002631667002606062190153578411478680278780019249223784814988371810043165232682769593419526736463159667111263917016986494722260993409837970728171956933871404115349654730643211306304583644146534992790907695440955434683171319287877302150662151660353282275618206889512973704104616081440871577357475997316123183510621247429437151265531488121486453476965757766725910726020307322810012619607498966548505320382920652957571667894318729680635214791227148294605510250153597274754504713877323063563952664421278903070455578140051692579057439562759757712596569585046802017710715189684346144183258554846148892187922227291280997921065962085475808188677349256883864572980717425353871624307687788498654611627495001897510506003588875449354202102639466957645695263254987541052260271781792702247788276914785818927322386678000440777847232999261093153624180674539750456244979336755841682837338523305602264036058765351198359496343023837908389820293518238442069684470873695232415726512032960524488900126199383712721592292138697536721021764071871365199614854183606879284634480819020335104739677241421282264106034092259839213603677219533287477074264175243911718744627071568405303340442982659656530702722538216385755288063455208256036597474224310970538161839899872692081685069295282092630830209328916850618839321362737688334220347754100531067842678534768337104737337482676987661482377641726581058972805671717444681373191507045622263825054832109452066494824103560417139407884087435654068989153352514799525379691964733389181704644644933822700153743424124668677982347172710213177781650952367436344278730138558018148881244402886941580639683246616587236758355620727770597786581687836329526891061751350543064041555283711234693141522820798703054730931441384707192277783531859330246596637885601320232945538541205187187097166227941863004085362641316061237545527615745788308993910254222468655678477268408712685515816132313338442909709785455826099877183499785651572175798178121075989017991175433582943098798881245594551050688814783893557736789422355481244298381458309841012871424820006698714949075623413116598239968368599785687566956033570787827668209523869691234425400709719367978853450708149758113670480840286438716834812745327167047198038943621523662986195893565667374082213598470201466741316226747159667897608017558870896142285115672931781197770430861605509258185776664727014492358720963101353256742045184755115577660593521108150063013862584719463280644283433643779973015727829175751914678933626650091768069785594740913436938527941496524492699910007677519864057863188007380846037593727315527524109002658032069590479896488588335359801093232113307407706089931438205150118228653449401702891001370812534742953881534505607488736478442103430582055853083772150778015262053131750572706256788179171127774260519135092141974291152316268223614733947356570281178204718585796680402349348340159999388838849893366569875025098294086153480258344897411060493690168580638045846271849669614029510767483614171042845533695776107743032895150391500543623620424076192155563842709535867091335585621060508684711097890574325701052776278990307193822376665738865706340720033648803640781833004273940835120653774870186296883886383766037860428332194509807077590107225325433693698047113139379480251897089077821517590121918319866940470616664323438320879056586948320392427706526954525479840053748173181621457647679375517598148313730920966391406271854664684521319418165757252421367908589568583329168315989596623489459198656597423104543712715994369764458906165672901007619828085935734953761799078778268673671410506152558177158363881730014571535310983504315633813467910511255091090444552531966749957473105544162272330193292239148760237446982759336968008950675992045363065255762304173404650415440362394757481259861546619289672787711233794507676187559180722279127312499960713060331000791784132607931990943866758112460675232603573377003316699178202192865666316986087964301729885554007192082473944767697554806709324648693771707560941352112097975362044201630836057634210739353293266310882697028086832337035249207386879046768139388754231494122205110598620449883925780991171642064629988524789465862665040776273321343573243327824700213611262088719560060944206708280617684864367368919559429551351390459489062250736809676765680769250940352938514816470767023817704056921619212582430738592872377092903697640346756857483676615672686032284336902651439955818215484648721934646528829926033866280118295869085748663081453417055579445422202751365674321435948198120359981091695547318126484631746606168735771434752391527831683602755609748606299420252667425950822674754663355816116855904586659949991666454963389567204533179808733812303414961002397543222034007142817040479863546244372263426026862404085669503432861688817910428268012146863862920754332903868794715071448046366406020052718042352694076848404062973383091964821200186543806824666461953934392531200391721556742704022934713303739981471167313865882148095153852970234893665404454662644153921009607888157149972193779232720237076751112379346804658206751933214903063160550203875124407936242046758694530810989892028007272427780503686017903792835625972193545948176077744296919647717550776708830755003953329739253295482441372516812196027616646035625677810964867885865376954242172921386802029627141242373824498913644021371086511883325355617336560754106425480806516275071612784769405151405877703323116217883900792727818031671027279778989237601390023507471969408737775599201404290098867310858074361492260112755001146824957341636806766153799892153089707052642910183526562827708096622194443226597955399164523736592977771758802332309086452945242608706312593795200898406000262981555360188401509462425153190492544507298491590603774216699443594950793402408664232119396265823833809071290555536354983588060019673029169322737678386047965982405291036468502729952517188238673421604238438718973874770583967849352871183626952957484340455458610910752416269163525722772857597373366752492599949889337244348573288301704055209766025808231779655681042939989739596559893541548042947452099527572834622890114873379132657000144819261064968847651916370732616290252757202064707405811923970947418085501645160371186663249729570491198126672147517720136749268564374144322568380456171048356658163223350581954370322845673353378162244990450647579626863526309849847342693678607437091445951498344359973334408569845829255017189604416828376750634936077659818354687323033005717878952225235332302040391624045906551076822546526964055379067535926206180420297308662016441642394394033156308791399476636378756441724189933241197066033669649952617328151551992506296373394474534109967038935590857642096998616763107199382423840738821881514687130252214446398099316764857683525818232508689268447408173650170927077398649076895999356611091333965566828741268535483495946701548981071198985956633492710497096126260371120450057560306862060523378698132737498880174586577082701221803720648593580979581656420974804354608838495381155462540777801209305991793314038865091814615294897992937970413343065546526699030586042069712550852253222602671835755719669137535400619416608180255448450477067916386275925460398961837693892953842581556050937273224479907378456434885008390258746512589138956653261738588858601181139422244510536059861692600673462644661251500570873763340899242581422653812029939356350953012304969727519777591545202107539788685712656695724465407233593669769671310457201958249379406641277491691854535540489145268331993297279530130365388994582953816342580393545699251636993261546164578383188731714865369001037551925836420382733542074094799991460734481215800839599146951790638695013819578585252671180412432347496396119423905906399953605231126413478795531597043469817731264867301762054664055304886260827634510509433866253425944906153930256135633345303321761824808930647355116394828649284532397433213702171198519326386978464559823041311276282940813596267434947220028981856847937548747292971664561521924587620955012711711743601234724570587297717327845503394009616255269410064501504807875073836528768844879677573499653354520504905187541159950308103269891544539853596617348345230782372318727179792824804262115005697220580271638193511238934421420529107521241723257321999221115047330351343678444626183217063639495136477781381496033845500155545680435045399193758826935234315075732223199443890064881541266398193035980130961576682474504503336551853151041927402975570721669826833098578209282928390992706274241027041560577451974062116907973987195094044690024205327293201622860187032232161946957661509250499390733037953430842857035916332365143459608596473358470297995881240820159228052095760248541117513275507968221172171929984962326955913627916454300081232875023792141470178562005799578314209872683295355747712215669639273610271175436490169900116251883550362589427687054793885881661802714786184628157569960959080391657069355339211224955709681136204766918782703478318043949187333666812130270284996099722119608704407833654074662503518756707802490963367329511088057037468176613763671787710355984897367117584047486824344710517327293216706423942002808229278660665337758144662375908959608605072822957622258300414501687577404158265330707881496992642896573671518226674330833878659688265937279837158464381983895186138351848267607318262186766221182882480625729237234506280349887249904984003773545644622543952106933334766042918138846525051676783165593454532608291407170149512269970158057173186595231104763038955872655389346596999867648990029996632475937829946008366647946895689850146237429221790641293217231351142233670046935260054009490748641022793514601144746538172079777551394664851194008615214174927667968225946252440967412735202257219494492297456880378580415441146565524289436683990547592810267236288926405465392486705463299094784506370979970207277864144046821131826664326758122969377270178879611807688074211337814969707812501777964018485471747148838700620926714002014714221195196132418403683889303498984904674463364849871930303268348153069263253384590182852307605638591947965854964201592568392902018218905211719204372496628834966000247280362601773754155668106832922863041710268141730865843527040593459903227009492137610796207938079331046711355129844220754611069183629530494818659201533562111833979854382827369578529947053166733250994216867058538319499213088084686375642534480080955140831957084522380730387857509887251863321173411253887509512434900638834438569234866920068529649186011408555842436182815498744581844549661471565269456359527262845630789164629486793603569986642071934503196779879740542396522911061833386819477270318212626229978622230423591308547458899595987474414979662800561523056554650335516265854099494082460014384378302995396193726196829754873670142922397101293474583074158859597097295219080692939413517212238391632864812197844595490223254169464947942955340471255925269959677390376917035220565867685834477315653832346182287585817674546899794103884161256685806163307993557119317483159522920073194065154509218172252287712251610146852361669953866197295674673775722191184485848147151514655794436561234966002142167211905797631976658238369723086999012224660995063956096937005899448506350443502899107113972021688774443581501659640002577777990418092894371972890964407772762755854317414957607337930278184437762806614350683844726814276743386138615243175355401827989586516688490764923507836110905746548320678994257333100804095166461196782790185982258872471767743969419220542106496167553954842981273658338306932407858025582101845907272999701006107985802001033405063769417853430410526023328214932590872532603013716799700342768510684654026206310211513799380127928961364922863348834534222147784440377024523670754890219427138904032977841308399925065986829902611467208903924505518169496422155908203396341512906323547983813467521867219525893735372745380016885268507804886380983497801676848598315884361185932630132565003318866633334769219261912529422367282815010909423193761113112683998735733907666644793083625043594849595756926552038823552115076938418435659168323847921137652071527883252684308333967738840089117901730905856233014590359027614928897641330904590206497044232147634909030065814067255313190554889434130700569246217915694976137157366837679443125020230429828768495838467528736565325733581606471165846026832193813152889798281989189727746739833372423788156631622413753762926510338611590714848378912645050196151641072769305097988782550141896127409064490348724324623063213430444099189507996389752543625882144637833988395381760492009928496908147123607966999046312507364573919550196007699562453605334823388584715008217911777753052386531821936004465237126148550560057072907203239051296231516524003450378662049965097851392321088233768768001756156523085132746490350508265787138518264198694369010160412626706660875657010681999572813387725377289521828445869130488172612873260222319103979365330830011497689329704787289480880964167662735070041157964681686134950030315843220081075602152889799367184742363202312387933887409263683633216990952083370330698147124589388252240904769543667177294542215498670804005969846296688627167643759068067571589725503752119002519190608134695843820608568884933115654642024666748096714014741111339008612853338326754591672367172810119406100460171865087011443449492596695720757170693703824184060375688855075911625486245174409384645936059770519326344946994655323458759045225660247008547583974014222693458763905078071429320908897962543318547640031644870853629960744327275364076148835412009082843034869530546896977306842098523218542657426877391816154508919398012106833370798431526753298466941790922523947920095968001145320230036253922983252913823450351295661894726412195076018368075830423136183539643024910353010137105288295623691153842922697251075091175996517521598499824381318613850429695113502880107092472858119499323958753997801473415728884893291559760712563062462497473475075211445144475669093580402634897243785751759569326248573553818386257728475067643508645383559321797185397846775000473476080738665568639244192733777668990007316123876322489507443671784360536514242273697047049006748599276820857949182424236590795719197389194716563768999396013983891064266855348118337525129645580278942095158210933009128211841424509516425410018428679234354886172325698526130187181715136964133870497173089865759637908692540115514750259234911465082402685258234562859143652591777513922474705778927383812969121253780640529166463600108222894323762510402912189902451637596574380074123045276484971668364700798179084805099095081418493138233463493998204297719389708445373443669744912484058193792251473215795246108359272349512132495703223819012910364777351623285522729010326533401055557570408088430286886317145842467187580462107432703516387927099900148764558519876466841575688807801718044128108027230773763833660119152215699403751800231373689087158388148088510588966069235889912032962356679602619690586554904953391783268121195630417278252142411230258321508174798261221514021713667466674505913603648133724511941511171749392061937178429891256632708283430325363849544824778706167012217027202438326851476338330366037114312450533409094916380907380558277803566364248560021872983027756112424033326051183159412031410333710468967984860845742465259283373222279125943878925921361099582395082942856781479039351354214198352636011681999344682697627706494579764949036672680715758314689760283024968682820195132199512076969147326756067111336218035836136484855289408835850781935682209903940917416980123383705930923693685867910565915600754361674998966138067633707815043279505027078757018944781307414800452754106608744532222659896393489651803344291504118384647703775730859037182086755261139983382659679318303760788053100036343243407316813640492458578219682257716178611733119440725742426796921899517160663534405578068801652145688920671126182347830330233411511392565182294844919603226317235371499501375975916685258783996472605459567053380865681888003827502838772350084069154010590151016272919605879722907515898063489996486262104742673062933542035233541927655636850925725217844238258243937143885385402996819966996690406123298352920367672261081294004934312150218964521550090047151528761168447860940819734650482275783028132442631776882463524256271864720021354560300863122566189620565993802443775185978265474737515902494999329927187755267676970379003416769310285036983868094974360049797015144318971775681177683965701455267468001311643726503499447911152728425179589220237738507902670663048777338990351443163295199884096866475873825710530682729932230714281372391324397766830872241418446710190784683850724582334506842945511358222298769514449474711449458532018414033983354890425418209369679854494495175540118328733593481281129207715351813159285485749570787668058010801204063353885719116875603971984272615354006282010519695095475247998522705614650075952089779890319123485791720504615573312462154394904177110159851703345246878604277792329214755468058112257285312072107708468757819827704237275961383640828875958870224976613257919124326868108236862866143706350997071534646832165212378213157824798703489031818541137346298305841602064235692024993501920808772345345847642283054354965352635214673177453297261184291908214250582780043012826894202610673351641689033057302161933080907038234529704792773840030175823914161802889170772181637619649545410417282227389384772511081390660649307762477109006297179945672917077188691089529975075670443283198501127107601135989220426350556298793159409370563643552638588813365816991698086153260781184367802462561711070860489283376149944471768900983982912619887730491843657216569022824460844830833944052377542408429509172908686651905851021695596984228544419829882292969274433603026521892456594747743834137540826716957240777917442159307858213515637611952669535176525514979925685382038767622254445023048346590909228351819652538545007394227303099548496435598034964877919103150690818370725676636603938439449505524859537440363042530901437754827329793463009299938310507239245796337821748457610247607489181660509135643507650012058549593975465083779508610821678968270358868367068798893099783717158747578916435002427810016897715663435718089081146680885950306756833583755101657615511276824862553757397550464684851791684382215948156069990347488998469698805077242471737015852641494340043932440427807191846822400669927155800104960147639010296135488662788588590119360787474487847269608427697242277662142718428104708754455136955397508251950987216705844118316984187560171149019823166520070942678635029900360504456919047962258815474058311778803360474083503478526695379272326427755935659675302379772741683311394337995708116998022109238210416556478652026246400678647025552844280240706054800773380539753077935283556702374127497084053268091363792531949317028340628539677003216184298227761362524948736123745391430479764165559305664267130347367110757763438866026815047440451153192776596675152955257229103204399331681845468400548580014573956356558875907081748066956200145349554482484315254318345600357742379430008619897402471625991810224968346371578818147867029122069687234766102368391259230144325652818569352585542225857656505676199607534611142557061529601971296591665408406275063056094490044611478556198449191746731172391154192598637811025287402098986545420435689777205358741427469106563283946318894575969546196794372927237317368751325254819217600823467092132319447361531148017903184536453345046196657912716544778247436983590761719399007208725154509683306403183048323016591147206997956905318249853349863312193696932221141411435245896760740511343615894671891183340792863243767558401604811451469211012170923317976973169722496382900243504382433505408334865802844499462202205068032716112964612475807805882336198632662049128886446983096948303709888380999708000135517022789784914935884519059981637583276617542452099167072307112025888929919528762439121897750900614692473209689432057339076686283249581680066239801830197625739724732725403030680366257251179187570931055893644385085836968785312557942094097415735533426325713806764163034397179349662480373032948185622856551840159054938902246160259732342968539516554956239436892561418983476168030056899639468184502630089738756837303895957337002482618662741433002773360724453843496299341303133625015043256602661333516541576823174544573870670156746542351862446077836572664804614133107602415914506715899953151910420954327537072364198141362366771455258628104497934945418580176975814736190127524026113229208301072972869420556008181961072661713679641136634816915768423866054260428372254956715550029918698053269078805372096804857157103412235792093022200778798499865157661563565664560322424562169168034683412645583083404687783274598643213155844318962162002252538730765002445038545619981158348490905233126970251501786969439794565240534573294349463514939899534204852597822852833244109974893288015169502958839524560546341545255406025242921058999494139209540323026153370695589479045656824682273313470919292745676307743899819835907895844200550260498043613076644940167871229413306920141483226403299594286565312419473153106509449798820652842547597780505475264985445108713303864372852006222207122671136327057160451821204311090391861746047218415101312878790154498793517905993471142049638732530760329486309025686617566000165278413773308187184666786956386115190928777670440751446447975170365462391001604139635919032872533853542873303799601326864621810560942115077551664440850079646566112756393032270649542648686553412885489864469658434531048923659807997785401235941810567053352654217840638459892771678928800162548162073703098260618182250473598191560630387011452588798438601487356992061596412716134178923429669461296197340622310119380452614305283303698584116107480158602525965227554387909313942686136900814131228804049722759770721026372587036353911879608369580790785912621025457105707173544370879740410168272367479169655898086644113882610329069008835387416995519279425570644072368053034279801954745665838003056224922653868560546285720993368729111631480354743394276720351864546698345118858441541418536620817812139702806386751523998545940161502364348952733795290010438531205928953786270135278434892894156958219623374908190249400354982061171102553991335653864075549699680638414941434959191515435886990321781489425860198517540065502695101069860907801715950278308752529595885036359460462635583205443092618404764413304898979616033422897759978103320972583955889305251790956664585807399490845502567082449012531295010104962859328810522951665338994859389984058130300242689076150110545802473552476413508627059173290800082716086606495487608911225998994496072266930872905697608853429838645667222977291881612754661976447081846250930016758644685089006922833149646882040790554927022942977304595152109924074295416733473205883813253396659079744511388757033585051913714773585148800426958782622408438452578967101386337230209326569861589040501624616589236667113514612960631457957787385244232748212047490348262041765146803765181686756201055425503368121829950558799428484815977018656115630627493073922178913211919057807965396048863504724934266746562751750277583539051251015453198018803731550048469634506658756555852667234795679388340765425516729363750686250641774500421122198894143004373923284190124220250830869541159109091742654218088275656343200016789400398738410657483937476994731561506220401418238225132701112995281805499622508692185070766925861365363595328731475017586802081279868143664502853217008667919647951197872095251062197120967687502650015042758828698191411921750207648752263244735190417948215959623430562419272534865056148930321588121083801714512649515746987557265197776943752495875172178032692665459851828529724587266410128021535994570584706055767654346618945924192486047133688550267460302928589779901912538773393200929228533204141305283748876215522025202251321431849583028637085019770884151692561237764472245672403708556448955745498445957238038449127578204101905551037950541791645787905278402799072233612054697876053568329345536606202390502957258482691346596554825971502161127534536867792323713169998026772999885363341590657071280526570177373457313452716032293168488422052986177103221984227365204031926774534757815955523212912078018967036886815677245939403397989280298171420752436338575914665535309071541763285926061134177456891267402835822198400799163427680704026528646170695369532866534616621934792024427984874668849406850106500716766064716011487343638950941553198506730726998006675583398367840975882545757685998051554887766848979612616718404348696407642496601839162227586792912240223330802390693796160390547801667911830834503547300991004293973222534322788477275632793745355952993075377365819516848610050686200462834566840106645641463496234830597340072211340366617942322165152741519958232390083562559551297272015581584145601738956517023394503773542949121387371473090211359432978135622803814887453330231222819148135134824946944718373758742068490880942934027864702508406635009094744958031705956676297217568534574896250517878960807640734294488621161171108395743129353606032135124134111933481876174622195959508970107731230840382270509782092111688695608690717034444136336937940555246648835867935467889822571332744970646201179653701604668391887874636000331254002166022944281545487734745741977680477222317600849938121466012829678868244128046998207983151991216063856569309212741242551338209542833599981238462242346929303616567464934265413978188541689206011148420209273688180357851303003809015856787162060897607909181957357827021525109723852458462495627476657516340468719830756144473669059285852790149460128825799450858721540876239462208225757300714113478391706802843666819912668692881432281251962618638831273365406631038941202149299144456809357182362136089539454563804705273082255082171396906816898101855451402373436929311911903173652958523303163448248898752099045512918788449850630506691873468945219529816920366183906236604475892961487416706550010404416777349199562730607003600843350739225282106297189688865779369301884003710751879538306109102205079326175248208866069319020644244908657456013447468371670762136092982396321441146083839561099457195670813510058624061098651604880984691962767913495788535630138199064679261968707636381016766479256760406606069108648234210470086147393144209008934086670236288148215328218355021493097372019903896097235250102964394409360506642748074881380770445272662699165187946674641902091605943136511018414070337964161462972147043075240854149783691759115780062733700436877114067184186551204498634270611418975718051606447892843049200753969123353153293476657779244381485955443264231705967770705361873454201700220380439975588905104549025102894227085037087619065242624825703411745523480880762408298415912594265331415871267387497824695002010383556175831640589137102555821337929308485992171231609837742295233564453921261088846037300719319014103314886292811907289687465568604343158227083192591497312125413665762245637055409447754285451805935237248938758110333439927883620779796219237503826853949730688118638926087634175556602197369097778600766407466406493799797646460974013462509949178156412733569846417455675965954957841801095802785997292799212798224186654061027835619615273173246431037705718517962781725716990836055190986748840819675677834178604365853468146730223885005129790000780876756531501276845429822375608668973360275142266746344806360338348718068982375880584485106307506121299002174500288389118286519682236457631928580375344020966242613275435249692885732707722714259839643561297740339814621171576220858646741840410866959814248843510313320983775270630119710489224826096677608048323440098733040665327458212311056336390190769124609054017477704986102655880801671981665603643155165944867988482399167558324746027596457072723155194135714991894808869340614880545564395382674399518498325625820918813540459788256262468504429918197602577855616576882056736610692266619318602663120973447656772225265022300059644952139577091853240781796018398067563486399790102908253659298602573780856274276089880210627645908319195244318011203499487636497678085388052953875502012489378965024046415711483153776792126739898050544098429294404681955825328745948259892850643457898625904450053443341895232481468524630003353316019972595744910666378095625807225288450613374247910314652897127390878054245755989943229466977422468963555923463854742681613439715106204732524097585773499497560737322055083646497385740473047189847330654145952376140609967125063568219244726366025125863864863388059859240012148102843948542911115160029493371719372397218277363474496618507094606939345112167164855464900114398280352165659174484374475447727836118640971969889134684450968217164315860040650850144436122630187183258733688664998261430928500423399638793957057436015389315862518229532443970127558215492500425927037578633150433362427718274294807539189724272416033634669274377229904205024352538716796115337197138138513142669138344244996087587875311864486889547517099377912854418086694154063757827910017671776665704244319241994480301016088057411038460058162972052082895084417546281712813598957846569218912221554731414017276494996613457221434891232094814458440382528604222145099920740929587311166287915847246809463228036803405768771843704896725922703743509976745424369614308460124745479760470046839319579751364216866745602816198190875853151117000535776899958612596838058664090697605598359175163088778654750373822780188096563504148342648665106949114121288232508854449066180879921004569818931589034866414092991475932612985764933298126109825753482853785016928380932037248802806313692830761175409136414173251419393713841911645285565106505988883765327293257783972459655529122473164135616368447372538599612251340848544998392871216100575869178251192772508272679663344422593603592636449640746665628887597479276893324011585936352674824968148962189129720947065346388981148225533204341912344428374404410268755026929879153896510563545953380921816709015841308310621760824594169930967507564765918688698420356824061845729745831859039516415219785698314624434380001162871573379361692024489871330653453914304654762842956158926348303140565613770572718032304979490796514330566142553199648233628557378925829550289886135228271728271948710570851316011932174986856513567682934732440085424418786501760204361750540933740396247480815933868555070794249147850143429591928048323846995458489057125112703118143501807195803311370567472127576355083692584781898513067011302372095476754569766818487818985952268193607648237505769394240448189762549008498259473217055118214961422017007560397778034231741601535249937288233044364911534334195133237588406178251868608348353163446471078806496650369184900949814983815702946600337279399683777546816670290494008044418752745307039060362767159388418638035519454496731073907024492215634123113942734046792120428115865487859255826138339170246355312608996216700018990268922459548690497757362952601007394008157328178141761548854524319370528247614854502363590626706284987271391552988690924202867697594574513466664068162835762051332368803732562167984596767943145583663839029417174108386591805486140083812603523329413490448418276498966509323894852020518544659968832929079959685079510082173452331160729264495719299564834981845582698211675648389931611886048704136091974666564811182182642105971708013232422134245306692694911023862860696341193553222815177366827819775083216974847290232707032243661447186386418006736138122656287253056337452644985201893244282548436867181725105610493144306197687696274745710533932064860104747703358202559462902137354806881137609388636776812666317484322719049208989023431187250592458818448688505490401550674657868160229988993059682335788469865839811785119460327730155265444234200277499232487691673837278578173725866133464515748328958365282526253709521416795381252854960574169270567721130943308588503915767650355746235330011323472190709180500197043640468161137802158604681870560931315751329833173751498076792322899995290871620676321532050460707209055562196882809390085811432240748361674043442489742733007426051763880147505685860519782277871965732824422745449105565941325955318310020110687787998930907547935731859539336438139693771693097008152692038098126690907031515370549737641720387148785658608867837784682849314725548781838705338945293318155294197516717804684834918389107817414338926507460249413586343863106462614681286362274447834933939029203755283792822406923420611813489654299412642911543574869124454999799871493991129354558184341095637528401501852699498175712496065809386034993779968230274051775184065821720091036588300003709666312322002901444994331796354402118311276685544442032551013220714266427681123290684133185977250397962231949029929331133926680283894557811500387966848813187909421033742620361577680314439958841770788977776013467315283072680729115266317790981358842637899243420659756169712665026715932705608499664685963648899293593844696270354678030520626999084937363757571976964876178027556161114509264266432020691182218025634682496045868233006420689679866312996308618480877228750898609696270510015827167517100954902912546871872084370791868634395758841945873903240257255544643262311557199104192382090938340865657783803573297428465220110561860953577892344558633138355055145268091170708615033104938305162043715074919398734374878540780183948212541612913582515418357823181541353235217695833108068899400926186490050342878049756846656959736961312012451019931098070934669026534771116768576857401422941682756624984986314003452158954726862013147290737242883032000663370626413705445808090987955818633225799944593972869590176042487443443352577926339830527629010990538635231675346486933849002942290237326478675712687307886586756743161661750021352422503410605030122581188058088722457524171240406620354705587571641658294588272527563876793776183726870603075281647408730354840275850604828929330418014536171772439803247190054960201175920718096277535768204582801318336643017662702460854941540482170156020151996476831425258045420355817692012004928172810372326376981000703957844657915582360039439096764148531392219568304502484868526888748161107975697065926194048300937710792339851740962021708480168085306280698272432790173410197201142147252584981455736684375395784768949594752228745253631479964625348449318408355076800146646813904179039279138637065690270078100839665247245557376547754180764198589240264879895898841835238572916589593887825485035936531361486683720823958093762760392127196277185283516152044923104971179696307409630318931480383438107675892019186915527771270098322319504258260246306497840298085379645978037941624056397660430042850101641806316613347669193702905864975138529934809722994079095887075159232883545207745138787049965049329755049270098793496603476686123429065220388598521400885608759999881075162633529169586201815085662979556133027403312123646680286889226433073063467136958092018779045432592433734421330482253585604726115072576096114103508040121167171663355953275215492913390023545586630426644673524028667363624457573751472193258517315039299316137714619485671032933706365572918043289088592422869558364103194485040451080655769789325655615410759441103437650095375409017928095397624818081777873728311468552124608181166285370358030001434517884000629931501752400866692982739331230661639987009018231962991972281248816800639979494028465261410652768011651588141399683068323051799814361309448742253696336194186658995332103649091461665936477628290528947408489866224177669443497731647547214989875681779581459009052237505936615886041202259595994009425767447570886905900761102008922691347528601855764016777844825766890693328185005842133571107613716890443295683502040192803631196088598888091697396097894124464194539006111851045580121405453461862647245092803026618102224521350898936915683079425566691592092689259292778199356405327747090309798036544231299159960337697209905491616687792582206184734295942110684208911700418166803550392734201767296141559173235752593917353436953361687522722530789223380728799535140370020643972929892846345827152082142124064395790992310990065061621108508776303777422980089319873891049971820259992998970224471523515179248653603290589870465061011571894451639336784061095482422709941393822513017697084962148126728836892336711231636903232428382754296583830291587826699865542731101721370709175284475885044851048484166159998787996243237408387999810144326063401173549633968108269597289182546855883992410061985303314936143651925901598826694406130632910630670688335315679825399640403791840803385723752858973493322172484837380590031423564482973015639245245663846037906662030598370901766467042795023940635832407679139327505300277959775666659191602002495996582023442697921102892453874476472659880396997665158534595984537534292489639917291071349653578749978018929007156628412596401820677797486368095918380938186717851196240007906701731099378324388968287645791627545005751727987619205525664657944153949445705775016593116365255791744351632005050870086305645784899490050087574807048630956674616223897935246999037906518715490101335927461685979752782495200906467034692368743477501045446353533039764663959057768566371053043293623165493192701929057999906937017785238574716767995997581099640100958512405536579284289203709353538482645936889028161070408248354461318270221303862938065159519302635031405047638551943741424563840914435554989335531721304708286078430614357695029212157964287495028150558360485953413833486460992007421666966870652795168376879860281216520366431377989799834166342526911617740874715180944751578810790954955535003429538074458194762648440785578690998594303881501334389511454351593716721968145393769723534832482576720483531285223066770151246862287322104363394779689214255838893184145511274893291038718264233381794090184462110530383229748665235262775634797686867148184312450304268770714013806253244441795953031601993459204354335258898673890539539035208649431791683355033056534396979486714475739448717403226334333402254923206951491909195182600208012480504563796145811149627442865165047771995601746117272996529390369790870183210496453040213076504031486721460210017880843944786186451650547359647484222572968328770551599704533749646940182807580774512897387355072661336650564147306021863282759135593269849910999304660974580703062396896800109176705355461952214921335078033726165315113557087654071552447775564867410763704640656664144815803613888127901973548713060574429238613665264050461820660865048595691268715722298922806636679291806841640226490023234937712236411987484252861898230421624899534195161166299713275236888502026808845460339265029031062281551358396660213228914377777262980508541411159081312179675477158900077922217188062050871760850361529058449018587488552083401595490651372569540148300587012350675742103913677212474315876135566546378755901972364455100660049015285960996137553049963383616407320382684923289499448055566401064285833522498633306787267878354714476236276924910486280161077250994956820444877695862474940244560340603573873541042161083985630472287391462601084417201226759666720886392480818062275889773666607902103063767527778732346081312025295252381762151890249003613318126555803226849509736913792227971131975507883054838379635461500059187126215928372394202982390727463247623183669969621063861427652454709790273110778924017531937194878591531100971930740023862808580695692347034680378843722724513551935652189641512279696582385591420787578193863365929869825493761787188354798587448268645648869759298039300178035016727725798724000858979452990486410263495263391809548398950267130038664758406860988486397738581906336190510422976680572453928352670274226766908698141352490284878245835675061113422776729064900570221614158188055418026847788156635113538521157140192526512531722492939299418683268452111825303418793732105042634615499998734358030804435389748014386174633714591905987854988956129359573618059541450024129196792268633394197154390329825633129354563190285975321827368399368944184834102411714182301899454005653386523748186931104765970934325525829276483132154825323824833222272693041097182528921128013865403464491072208231658962073937812483767841737884019392634805082189031914944804378584003177622996852963634182405492614100640412633452316252565721195208506240477651780514479502787012596191842493548106609117617215383839584819773197998477718846784025063980812183165609643149284737416454100215394022772404150433706200244310071283642580881263575915187437845057365184219652535126722329761001168416365253536427640804987101078800276756700979825619345591058508174895978048608269019629086556857542814992708213590623568877559104116755495365360886447317050638108020492837533312755194933498062275417887777592853119914291636370590264703450392390039891894784887189292979819443859370536049433798345606039626802428128980428328318159153624216625361505563676410706198687547440153581336430113429540846108669761447948507331893028819900424166955449820078098009709677790217565664285144839568464136729583160247008940742357959643519046068612531686635815518078411493816974559130040854615012699283772979196874922643491956592768218430261573000702358474001436697780198488788483232743881909126246178780031620672610082441909430020200872055233019492353122236859422004067098216283195655097040359985320417194839587662150446618460805140821144395823506554853675419017232583635875402108279733401709821106718342285832338003179230306464298298662002223019140137411613020935448844386524141708021704701764835009917052977292710687148219727490011444361015429364863087477023732235870398711887039624431179679348794222341137418305178809893566423739658554136315991192240640119792280720236653693112162948817554649408707296499926199184340801546739155254836782811479464654789774615901952903331649939656001894177871405683619438226153246256436555058419485969252724116106377646627089873185667217428064665983187522681436603165885200377270164000081597535733662342085420994436900794084598939627133675332357226505500969812502908730934430564243089621233104110137677695095214924823658538042480211593561957602642241539403941380962458299689138727895993032622560722285427401047128282003392950012561107892904656840078088166264441163477504194674962473461763341688605040381240191456792273337842738167359684626779974866588257047475157840655949855219536725432446412544730418967071808107463625976669767976746293183883191297219964564306129261849913417412356630809558379049877206058191674189607920202500282670683453472576395701123043459794425392440621770462481165415859681163182907977241221344634821729767272773428114376238035487125570508775631494473430036086479923484455588798206040145052101645304455722012188935246253235363413671752109495827346452422573660917167531441872512690420498452086712247030023167832136275303751722502796339579482365035081848060323738824336029169872734998305954662657738922486463234645464583066801402863917856677352721418567890113184012309970142310368363552306982749110417966357187728306133271356430672147250862492134690557145798276727287732918531666075758398416690802708059683839560415366312446605491278240251882252214289151208321694539332084058392594033751955952564856075795735490612959931477730985199261186560510636829284258102103134136663452269783484216884878700947265723796741250392288606070086698802307499717415315567430297871002722414592284886534013231438806066151257619760208878085680058555327986844973765792260596008055887761393933809615971308870155451799472201893854388604841932474145510703409048590761454064343345594946265121492349820125638398594983612870008893821496040001887735230368126216826638876374402697822466312105641537566868122309554070051758179733542626911805015313958255441137118299000590833082527102658944961776787006035423951108258870126951049092982844316964297188324649855596923544300389159753091866558661191884728741799265277550526646008946133786375513902052882124795688975615952143701125166232062955865140023215609915396200089947624280889573276458654143699089741352242984976127017791297188052436080612056598739393334693816999656853044419916346212391210181921297797571784248680684164221005175212274593308457358521193018382580115263085994683152165365290700679274799057754854664027402593494807708427745618195644959509192982843011309663910695373386125199679555858594817551907249122053780748090312597068302744156183987347817287647048047709136656071883654277358769388919711929816318077689906186000636030173513967570253147726581154924347996839227259282492164885300639194421783681830723626049309453623587771415316597808843599477502659436270246216767011399767264249494316607602886828735058391068881064094797119851044816576637917452612622890872989174249765363353391813423751947901056185482758696989826759675191676664207595177872089001394594716365960608400027717435674576864185084429231386854073591723517880881765864952421844072202516782764630415847970199086639849415300306537093644397055257106674090254837668947617544444423686548556043075640544619489356755034354971496813031531666158135848158331992406564373704191614471823192788384561524855156949468934700504339706767728558345335841875153628158757508668390794601177896378575252208585402045516003217780641833058636932955334232735371843264215817718173049204898107108782072488327498378398258910094000387025415653384436543087953655242112202345504823683540632106063297203372832987189732740162813349475019923858723666085085705265931112888419291957866788441043067554490033117290175875789873982110121099440123867627103254073513457828919708123264289791862050508333678629665033380158261195703549979168160033214930570190852702870129404273990188823599048082539971019786361063727324117896205411743137298478246171401737798227774806539673435127164102195914610815346639708722849506843614450570198880434689963417028385758813463537213561711182367466273115018992779221369871073362911503274707484484645879079309168974911500787719683199363913328293687413402861421121370807679138996318198574695253388850237693361323354989803875288064341232484277531741014472186293276476081414213852983292459825928845219504377599018167983439035030874704224715752899244674044702912708921039965168977835644366796423847461231310055499040207473458393740187056691009423829662768253180656923652359042736647246585117721380972858103212009391053390655813380529844981742102908856260333650434401407846921682471923570191269600093987001654102427619619490363133074483430209558095425428766252087843816104307900393993168867930845739516423683231251040313952892764718372089138704833102946545335259391165968361793350062809850620320973544760591806515901621062842101190461933229061577534953230813768338306919791139630649156555659726079240856837580888404537835316291045127051506858498026256429001422074263368837465465163789800576258374880182026166640971920788783724033775394360145957312659554053668150130171449375018894733613401179746479977890965965739655587215193998382408476021992472498004623183349158545400496940443081150834729009883232492786705607907887251959189150947225529101228707143545430776742841647515441348751239397862865141914497727954286278050667424173300741836651093872709008224986313381706094813182028766777297795988170208166279331065147660068634089091771388268995172622200443054910383863615059603954827601551108027566010092088084451942538640192604509059712227053176567460778343425822644339630461318176154499244779469046427836970422992764321818326012032255754591687082843423771511571824994104544100387582423131956668507370724662824884188684912898270050751612959180325420963607406295065024517331689455115360752528752499945538302358505108538956637079583989106235374297843746439039168420652099739219456931210869477265146736536481325277778378038902822178907827612324241979892215061848404607072404246329792218611067003201219973910048595060508227100982666122261108798425155085860812013969906600507126519088894973373137854326574628744492737895231498383486625889044942404150434095104116541459075050342248420884655637481780089171601090033637930041619600484259283445695211692510381035530503369406771124703534498902882706160469669556077740760331563070871252647468033159604573793256345939685526794751443080903096523680562605012101683582477166785035979647567775721753517313898131544520849077633333907367850125893337593324871704656523897160620786252331531263819202061257604068582347769336367585114112569325052997857737079355954934755457980995961233276830784239695396348695366847029667174213799731358057051796921712085831899348660746482915876308926554466184662534017404173794267040932518854073324746906387229353522981618510015925617401623223216322437038791940482274318605911888470192724979656405090991790656065837123349422587055155437615634763847538351743937301061525525667770469651089463878794008111144332871424838436718828637947224239212199835870888872058704252634967812815017071887228186856442646915388543865479449215117843320894317110704785607214050991904912981042197941310068549060518280821055675822802611376944200993111784041493305829037052397506730107847595239547125112208142648846453248494487358852355163333183327432213742887508809055541562425520962928024509082398908002219933133096097148110635822585974096806006715495409121850844377067010927601360026619857844500224077138183294885475496074439522035413867466553910307378662141754540896296932351602063228016557512971310011263477459784070797948954963962475333864363956750835515123939441392773134973290196497397067942983739222096455316352888910228532372648208884058129577322317188705562667025304258242270560236355662168580202265603575298846193778907317902558352142680569800799217874419937587796012102549031195302314701929687670224448490995101308568433358169277231003053981966522606365340475963296927333989058363527806614239160323884211199864627674416326688272293520399020886511871100023496133890655844763021569588665064800042047641734301145558716563436887931116124334708726890513576564974647514437202764622079596564566509864174010393843552608944234214128554322311337987980780827528130250757507313660443212747792886132807021502055062244229634639493346341787594964496894735465158441864870489473432393125975052641015329685667389952919708030268832074411822284547618668426476193234536084399509568430994684012440455556091056792916340740421168486015967006656150869243708409582720642906600125300676132964486281945509829617772297433226491005128902746821694576162124005175546440347484302300796726717947762999269354030875823720737734385220314356484231699255915263456895258233966866104403401677360672522698236665905433714926982765710108450706609823034411000738674151416552583750961439286233667754353725104018562840730540168296405815611203752558500478228113734598930961670281161872859900913004926331411942468436197502272873430725213693455717362649545057213732632666613059637546449570806875601560347494041029588829115016393529247831358859525223764626568536518410999415453599674558405028955476784298783884918271747805786943620024946670151962715131335737598801717549790681886438243515858375679066140737828061790518746078677712157793084630851538420791914533073201415827122252758971327570469192782480651581924257428565573809559439351603680388037511824106805836812398849884561399619849786338781042308054336853817454325028344688171832794639153311287256807437103981387053880631987823623286500639289748249865451794389806599486351033961847878890029109769840075960076281632534735149334678914288173879170496989951416573603545104454889226719106377918312469822922726062535183826788337741213683077769214938767022064162624964688184918635278332354064502301171774557983811173897695690523366701313581599501900691323444181101174607314391863408623051320601301414295631210058275418848772010534813246102931503342936285834518309271265157622669214370596898884702761116242208643099333857322093615704202321964910705934674012847262937182754689503932668284168294235297370801246936906285906009330108762088794524812824410224828631450304461803425901949155299048513553870366360552020366398477155994039129695879642404636965484549606828592671941643336297310801563467933226175406641711821195146853299227192829131846960199192982407279746080178625744325867521772979571731714319082559483690722984140617695416908881571989737399594608469353528505730114311843493455292781476470198920458605802474748158058093457731606158949773904900739688745260016667165589630673324825059651029522449805401693630197382384944234353920262728773917242742942984370569686637955683193794567855949914039527825718539135699049499525444429392247022964786450836684876024667549218050342918276103173317462286807888299519865146315304902016216468847418793953359680843717503802897540495845260739493429447810326290336185154129679754473681915083993775252642797890542222759139454482226703034437748619044380550510297526601524084501024002173817222349347747288472279317361956565609279562661196896165139977766035065971981106929787769321353704956058056189935190552889182362313054058950180388578411764579622327262751789456032684643633860775449276474620231793759373093361996307983376837690043455485708598101715634393563130488656853189109708365353730047706744850316270158195989835951924347068139778768697950935095830661621478283363610444422206651346552205346993939829690169576810998306775598593198136769595251321562842026754746804123250848878000836316956901611134877809759396977107922526744724919019659481917050908354585854492459036850290937837343549133970390857914317592292580090198334794248150929596345829435275942769773086930776185145544348231907794105433175568003463233748274468354099581902246798705476988438343937225887711556012475698528049532490215716833532391416272188481408372247688809257728520561979902105280079199510551758856804894486502024106445681857858815042341469749471964664618226217065892013667388389618112412963260209256238324157827013673803345679984589233313267277961673254256443771768218060367916255196659529349151695873665449165246087767242443620703181090174862390727605104418085431060869924298406173119424771674926454953593286405738060580138024184747700247021135653350719068122353102346365398346763218891190409356215012243045078884087764765829561244880581902514407202734455950312646166002688284567559023819681859989705290990928826845069714731021447917188611818236511567679979176542163558661384075298668264769399877457352304677448145526032913200317612238671442251175475806529775244886594593374345198867844371944089376375002238322750803080952183394166823780027015027023154625518426052581780966095632785125526629502397516603011790899746165363779435989846084573993947720881493138605987543112855007933669087856133792977263751474276054649328428829723061048830635238963890061701164372936305374835498245873289622541651628961602798016314233664338309158645894013445653086670691060423642242496688674278314562378915552997666268428158948172336034611567150437042352490716834448221655739505439487100978883621788262676229901995469141543353284319200909409501586253402437692813724902644802312565699265132171386713357692531712282896213914744087355747761687928573454833647530809316355656872243486478271224058065167765211092119107636506460267502126842065985482008832241196716549628067638584232006527139326552484148627182950341253394218611089130423510172499311301600550406072920543424044744932021254979291868194410703002540098371562456286298404725869432521806416576593947659039381545856876664031811015297364515670016113377107499588957969664886990551389512403378110346272264695001223805795189766445721822399418344549268605929290363493459027328191391944692029882035026532448611010854971942200614475765948003630974079757840973542352399471642728208707606230073382090532601897995688842913773335513363957608391352929659658823707555073679431180798538324662333304579644008372030753500437584077963244920133842835883816724812962106139928727868975143895424076723770257387649160559363578286223699178859960126066173650968963927789356309659200989199110647172371306910668189947761743533921012520818837102296221986774547624834483692291342649598189089870370749379663135586621683189768865036016247099305679205953267191007117569348335123878878335110834698875523351255517054956108237623707796940879508708757483463354372012942039747564378263520095307124176629646077563839134363537465599396765698494852482743307030933716809512096982040823603429911811005854723631506197364303094807784425127782991131229169129188621160639299469983057373103363027739036373913320707558749508447399514037135945565664245518557138941424348536550114603042990834351995073176800277789400774908324864720292866396802360496053418175748559698039094419439770471339857975665249326433163782096194837951756708903424592897632885652438521126432014667583683204135247173110473725908971682782605000628005022100169575650896546236206005871598264402458338313148344915068411070079551349157954061883677293488557515181218550758562057053310042916049180891592119368171803229059709014717115922768860341615086267158991680982473709972762298208210407888948576778042133342606926648677592845740044178944028190121183898690349062840920174733319415925870200599804556443090389484849873605535191967998842321601442158730265950483406757792491302951624933811660998910411588612900862135206996398651490588833580725649727210839939091492894180999505769215344408274401643542631939111783708980372754645421257865697681996754089091506647190804282696788793847186125473563089613351632003384771011500061189792309887814553738424442259261637064394235038584440802563613012855073296803348937956258661055936062270642545190541783157193816563143047350495918580720640191343960926157858453882809440296226369467981970918614911238352444262926367023556802610600385774717411146716351026340011615931630403017211892191189032748535780365937656948791234884856246876480564282265102936105487694536448107832784701824709981035387719488577274720287513705250792302372888662623183770756518004542978472184130348896318863327896305534279766042092495124110229916310982713556136964404333174041047680900294216053540306683948141713598487423850066177973552294844662674436761048235701004502186263791885809732320981560461368766199906988197960329319215255820490600322251045208257725982550608438837350963076385741446025007492127177763493312201456557497615699044301436690078850238592994208405432897133312783150946069368753356056186747109373924530291158625964391749620976332276105104241499493655017035833257757064649899757203771626327324602684359258851405324054209378791668438196036525001497140599380252490177841793691839448860700904593129610065465115687258998486123363535184979524595945019961643950101230930889392454177835202099359185859048419575055687158403375194296297491870321993630098342440900596493346814491050377824988661552682691799274958372506405270192175229569394837104232373725564081277606592283129602247767974661721090619355237745184676132596671306995559025066082527885872741190209502508050635028181529937836882133839804001850543229666671716377256747951409578364139469308448997182808907326401102769594929117489283137097737738647987910472626024949664737040342906799538753480198983858893727299484254327484505159550062370365225673430883238811357212382310373430760951126900181385138268429474320905455230591872903762325966065121599170273881776024082504459328638868120077961130567473767943126220234937204406207874767802448559227353482907802878984244150524027761846764061629412076606022213005532358629043400946922722820477263738965864496311986121552700412825930916957952856445764925875758645446739721057832017478681128137260967376730839409836947814867210010807180367068513865246963904754893120778154333531271967533317281175397582814534905191276079774040176813502023492819452573450795070271723060501156117503794068918952850185342279813891844027181476050624903161972425222673287840127717918643303631381862124126327626201253491166691097234817055422806990081367790617088147339488267950866530420942634352720960108742279362263753953916912207457127999272358704644896093111991149008200706587058543459001341436148708919510607178686271623809698513718098204523918725829023703799526337300893904727369227357284918284414659207345421987500919783317017610161391953149230730955774127212721965241722677498084035029586284305139628022131336906326564004025208149489343255275567625779375119751321323256046159148851177186230623813599617687788251862528519209348064115466354365731831706559076581032584915699464341242471411947975888511330984036690854009998982674365892452069686366312537534502373017583302023507669261518831745879454494130130275535154031238084571659656213225500333765600836930011964652720411209966979950638190692607143366154122545106645569709087009379877529731622650892580651373791211238649194389890766635150282330409562027652106963112866100485540764509898875500402721258670549578099052207069426666561626911776548405904326252097672953113580968026280264903275290166417832350668882843149385934543920769633359392904478719723594182414740379527671678291462184361530056324183810746289290519485324730166224903600895406571105310910682117959820223273409522403165147403613037340535679812159679694287190331783247226400030736950451750456842950445604255296917265316744674796904950898121987367579077071058818364293221624798794627481034926044498777645305897972898903199179768657636984327067709158324285096464384751588860694239556344180501194273377225387322784257026227949220575834099197902485718702775728820824062991792865202968373388591517611563308512816674087014599417209107563176410703990484340132869297958468691986024382508008584523603581935513288909025249310583262462828856474123490600176918114714978950704313468768924950414329598262099773321290493276411639579901906048899739240094698493354687261633579797718214359283995075646122596498102296947099733572480340180404112598773660931879062650421243457591595507418080957388732939459336763303531119951136064281809298912077409308683455325849230210229109719744301399672622728410161231307412997054293879854041325689067014929530325347105162168081340500456994657574405534087871489495287546445621667943466160727936676268368755516395163184896341591807130174751835639256711259569221291345944313289999322966275959454313871637424827980727178578439016329333142168944622702535621864811004289744847946811007551377023550657614342994485882914634806492804500045114497562048229550289021878654383687809663651330875974155260231238472563128024352460386160515770944214841978826864932791961986416884293864068842255276193307752795709812245560889661051702949945009634437930502760950244614451225892022933473730776706082479526129410414214896257845018173742604682047925773622612309483465970860984397564496092906456883935011588390806338968315909380108586135943180579770245579858137881556912157543873090465251235202477402961656661262505387110637445175061206537323557557015388421817518482714496836462036354802250853112901244326717985900644092905012107567343127104112219742027042056876856638658293496390810325573080188235221793832057659087569240485580604672865690376425379964822930974713612429280792891573995725824379212806828751124119815535619478154348021864729087302254984009430723599391748978072859191623374139505675310784281871421445110332628821035048698585598099207797732885374914351505155134965907270179637455500546697630651911988893377546151736953671845190270386798672227635137744117098566328664792594874248732040434798453377520208205543325270678409624604080610429304502667841186994603977398772363803159316639020547691446141671739713029956469189996880554220014259434264951319409763666166841211188012672677180627499102329669286845874183434393603162377532164381168471554669151374611596879821492228754598633531887921285946015180738265018420678233453733660321526124119379837010967632221260545051316693345058244321600811661184252696197922372825124923543536092147638958030731332459431896269634836345507341651099058269806469913977063852661666088616623965214874317085621960955136151146980890702857167766894959033791231944488898754910196774819621756923578742574245402887043201790506062223635769716627226340868416626271775114286853176132876708503886081947624576218710123287185203674371097423686621377345893606290195443352197554031983476167332658109837672115981773237318170465741427915131902014961438968707487914454401998572456372952970467299502249116517621223862527512503381806630981711274307646658596235649437502552481978735315030857239951268625700547933338911562221588053665437109115629259355421316850673780676832059634260640682591152143232384374439559268594934761023154871463873163886003268207504204261092948438475271822896282766778802030270299075839765515174546529423914561151249800352521858760959333596130710424798148990100509888389307158714328825382753009231033901743957870426316347326417003017597123566179222839779703547518353001661198493947484765453471966535623984381424181896880375900971078091340354441255837997950391557282344139562489561771128270337365222574426324786778875784130282206515923488256244128245718840387207159740404562517175818964245620659993144422322905255838834763722370306818610731569566869782530137439324467619714815783629396181195082377638191360326265297955416961054230549367968936888990966621995933054322632215163890454396940936514916315387987577471721994009545457964621132723322047344903758047428738610356018824602870694991617788633747575211930417690126346148436010072420934087771521365343857689153755521424422142386857790216631298022104018109790001048262772185132155158854781312473242382155896558590466292407654603913004989087189991152968423514811554068397829335640145445487012092358517310195967409941113698099715238289598321204027514411543110597623683692572522352616006636685186552239206228027805044378229606236677371587675425074939860977330669063048507936748725308292500903808304653637082750006631980456961422182374618013235965774259678750573851121186073804519674418103884250136152877136722702527859100318315481180959591429749173408967358381290416297359497832644510886242367578555076792892226441454423394854896485139338959001767682313046520829621607241235204307206501440736285445393539369945468292095546237919214841596743715470724173806570623013041137859841748913442185677753820172297526556023753436275515697395442317453358991408210827401417529819112683292533626146889500397015454295067255067180240380940343680769426844382190722247748255369216119777483898150765964729355574155826124646696577242163328441408679004447909821903302394058544989609284340434530164822395306982446194092886604140415217167426488736526967292050364623965878500705470008459216619949283598421626803915301288758896083110954454115093011333247595049280632465857181279623561187968635698527350450362147440883868164841888812328062753490877432524043511516726354830361767319066985324841741799942275908346428739922294913175683641311994687086980604478225299454077778276015351848793230808003683537766771334445935908826828687319109225714012713607857072865819032965006185362904778463190015081609360543165164316077193089070245703256968036587464042833282607329303252293722221323624016463708425091502710633173909112878407861343415860339333596489599062710104894556548551129627877340576878460418887403934614182275444493917802439977512664416335539603611920877055334509634168702998337882900734813624628565877128867690792450625771004119570813416700047204438141047742656519717974186491111377159725904933106718825041693093377359079549224621311026851926417706955185012582604006089919115094559856141223885001881000745139465742187036717317228360554495865938138760400657878239303109110877997264905627386585452888549049744512453863049346271386408920193382025750373435309591443681467327747928518906496061258688602655146889984675958785555132620250774465095080227213311377670366527279817342205144672739187648343818253849932217399982450725879089188236814822447701277237710988345482912049018469326200255490326839538221216733397547399147621122994545694022409609123362587267055425127307580174081471122476865611090927490200137988977300685689233538205298131701218115841450033248468107832874469366558578906113874549644516702317480026994980898844828872650611541799692453613701517710351686764891072522397926609389079944218344770355881193995864340216191135872795056502251363828985294660108765224097802517858426071513278259871668670515446488599059913289197682748153865163079934703533789185290655377583832894840753725708028206737082880706332556285740782919014951427753196092160661377954961423471105126621609649755664206425321424934505228141144952277199116120451873985738222544674867508415283692220283390839608671712168185717261380121119196505766805666474530037397448171114442357223263546609739819726018055192439902279083858845599530259277934066129678504709747868643233256046307284354986137484504694520227097585426318700710513086331772761657907401781250152318567505248430063455182985746017898627666063391941340206744808951099789746486812187579766968119665269836029952805951200772779809118834049860335789190026309049826212115454387523048745664740257210442975427129328980145271661237873104575975695305100410248880436165025653197964251542432724272426207479569263585154421202328487456126548644756710098236072167133429851959652403558280195743709350198307441640686770611648016191482483980500169781732399490143918589026917788463367132155763127461992126071394003702751541213512554233722315235605417939212830859130549625762082941353753262763764186465448543170511394789477019006990386745715787083749521953752491736799814627771041370598083694684555562264273087601220291728379659379060288010499743174701427847645901547103636036478842273778547588932490624376880211863780268927619830349330342151699746317894772177022689596280930636984192982905364023352176311247447900269452714147274533859246215621379422637428930225265439798770978853233461173225525224969411321401063427038650870540461804841325268071985373261133131596065713007191428264211596855863122159126574255829148608895655367008693706313857608627146178160077757128846046811216530557992927405302281134465228964516114304333549845969087895546970166657917345559227890393907724568973015584807052097213629407845138098558892647933909427910686871624237622677547264070509179860270600795080146408465239334767649490517092176181721084055217542750969724021877828634966091237425300226072497274334309904852127354357809864311139692084861544275501899831634383636619353315536064552546172575207455479455328089498564300924248968239788212051944242923317069470121168008012358526535211223698158925052980400540571704592546482166436099209699166461319273960684710139549835085279584842003474165222599379187669152031347426264198424801016452240429842016325597634895124197893930829289219606949470595427277209738160259625891308832045937005944310389617054440971300746766265939556535790091869672055735253241661959148345831755768257419776815405607704821088736544484224283297971293024633488312954993769656678932814551608813246993794438700018873237220634254735511618871835279937039352910590460233675360622754092590500761961215324276943152883757764104291586613128242969750499824215415139813559349436106599674745269469995666778907056767675142295367686028370739000581965538328301323879267063750405419752470586863138942875860486115769083614539104495702459294909285410732271052171676849221739476303705128291016628449121501423190883715610245878751633378057668531648436751697677707287468217300541455095215564148872110822239357966568095531491890672767018464792170617575045565647704253188660069789688659841702772226363972853424655713563962501628070247362783982708345641427391031405185683570021649522147566089927702943601533565295601518711794575003925553640791274745376226093993532407591364913855953721993725405726039903868110800521269352879623803401526037275897080975787155673769597165897572553786625439168266190622335289679004352735199422440329054700786115519644417610751065035493049786375689769985157408502885211597965535137909341419390680271613495594559169668864884353099315707865351845194271986661245585577317932899042439863292613021482175236066726275020588948050969180006374605363449679147989406045548407026564969432350626789652022982195594275015542808505793851175198663066693256199638735512902275533333037909949369256624522667587331989266562710233959263764143403961050614264615882880131784608439148306888882447342367667897739976325927250495311558324773725257593832970842095429698684590372429082559723943215455261948210311194486621474354923312734965561835103926833963781409235479900374038544350924326822165763963113352223027089322765950425025484107513168883484718435978293314471676779584516577037620419512773754406391474990874311111551228412014207319917021499619171586669915282443916360712738412219251476745985560727734854801203315284725033112254842514496379116776054688765949236370158525439611583969694193162594750050751579018467317125628239269404221119914532042046683293134204325875257125767414685699725852669731234813989279476780655623182577254602465284488880845421427621526200883163242777314237464623840017966781866204436167988450643643281615277047304229339483628276096005016009651522576275829133970764182847098842832231485802154547942004760519598561579840770216125500906518786374284391363872687712370167490984233893479190045997536023074916216309217215067455853164264513276775516570397040806133762563100771994844509866685800634695544824738226843156962188822794151493870967291665433675750416903245219731861737940710226461494851293741203839336560179306951071218547491751910213060987221947738748462948042650043719301602202408276826071534451926266325290704222797746949050135718795926728207392425409469892035028113937690665434318976070757550523804096864742759906714606294657525704328618304931208000159875376703674609529810421368938900087220994559894936929061945295108991516586156868176156978146524482953526055506060548505022116335429219804047971590786911444460149039937344352922827360940577624204070766985344858922112919663820985907099998291287236208329045900154161732734189446274109125258222397961404623702891166498693090729568833966198044805643773801869328500431235424555070841983957853602283938611981310329777846234143952214108429030196848510883006787355464253607145967649081736419307197676017473792207515671328841653852651148925181721887144201991090685950985488908212183972297634256414721694794865126702604430805027008476607362334078896459832087358264752370978462612180854468993503231115318268524981912175134340663260633404670695957535512204488061788321579517697235331530301698808514952039186402679044500241438629529530971371825631633517608889978871183021940211244004856891386539162142776222757779772908070182508053363973904150721409819938007240741062560975645598009872416632119377859784229748701931807226508261366810036778036921801470727516505811929491252882532940848823323258807725869620825641138712964271187146838154425590210772705394764447921575904266273788985948607817669949767610328509950281591489064309629736740935482544399729391103265178444466803359073746493025502854817879456902874250085885557945244905654201378384068136685711080914097056227120320126393577933249888008700718999865732698855614889090163480275845091760077045996342428353181897284738593783347076402657593596358080411976813813999509341667924153862775213403728504867768422366000285495826011596869688470326881048353606928937933996543845329437998573093743469750373639138144203054818892990312557774082740472748650885626147574893177296199305746334332779384215966691521418902687092853018133262142147524005874168260356698970884979073992052922675823703935086497890118899182104850167227256700438522536145893404081472993621794308737992298531726936739976613751157845577409027370527910604414206022044723711350519126538164952918419525337752963833966202268118599940992352509539731318781302438187787474755819514364154771347227349372943507712595425127957772630013411734804939691845954012192864780911251369010964511693825880889882137165875430270633728464341506882013460315836178389088152904367521250416814105490055681756577432066429355128076471569165082565690777835826080210998689083744980318048632242792785738129449535668563709994481100551754210374863632185192984201413364365759577292234197484417642022737985904130421919884277368122698032126993698456735928319075608510529252030214644161735693211925096427357636971389129895133842605094950964551465362140702389322907284061063219685215315845134618695391192597979074087376391002458789667354296492314206547165025487411171287797827886195303465718328965793584704194529244570409190272291071675198200474963308146690867448028554573297975164197633524609865956765479714349561998065995377490276767600042292209631091875334066594685331702379135474269762780597639018726209296950600611480681240124512521592406746109640790688910946691431700377906130683458894923013206489618346673769746861380950416167536575213796844853457309642576454531427083834258156047357272508239843308019338093403320655619321144754760027735817342041742527884091357282284998205466278313846417630656982671979188676161405884455532129227853612697643793999360379360858362449947196699747612176774263276498692701377546704246103140478539030656005632000986388226515294789168413697578931323460165078805241599441480622046720326802464275560827388438525112740896517720558355121616917709783548978170489042721106218787270660203206887605280859853630105988711629699765939792356877530407271292935545479206116000456573877231123630787435830764649965131259133638835626978460170761794877003428562582638261857829694906002093822293587536512090148307506561810785367978036852542468489512282208722113413328667138160282187607138316557131727936226853288851465259567086407472413870204744757020492118332499345507410241918405985047855942437453782252366696630320012935327846883045746491863015165855237846465650947812663087740475036143435991364475559486210761102938084007620137885481498654959068012650440987402183112227197093542044746710373881230665637712122232787525981111223239973775957777787938638141767498341048520706180507715895033759959746705858344352995555531718440560002819671118102956043742738858261148562651508939375947079631526538565859389318114225473206765728768421945293189975501894473979234545940313931121656824654469778920828704908853999100438165206449608294215279669903634971962261506465412765590622322950876517904278597463836612925385369433717077068477933861535160214150225861095509598469006867705251601190477117848261239215549419813598902406223229164126415675723942568966209298138775766669004599215188141445111431397618023374530469543730329564611295642236106873790117588556135445751119758670229946159153327006265367000516986172457875793677379249497004261323461851210825708724313524874372588523070666711152095499165867530059150552378727122784558544690939605482201296418166519066256984583756366518712172846561478881437828237246411401154160957906274135944097946017878148583632773639672874485676019765431374615458960923034341482513758357305952806004672330283470937386808602750489284879946732997649594641405066264019227353986109901974295683642670167963976381531022133273735623388040767429409628001456738046907069267431757837954465233506866602207160849977987446159966732783343814201622713285230392322851633288379558515290598977511132295398914202936140772281857312045849876041310212453388885770192038157606370825585039236761556364567959142178047232695418242084223953507531422114448672986316537098580216163227922400700723357377449436867759859625153632079552622189614362000349630283331729569553462111440282503617371273300489073247350575809972137179836120980029536801522727335442459946590007249491915686166673564120578968273490681171331782457082512430428779016585505163959232416247569061863047603637332147028836939240308988040372358229277005136337861063417261776121282874994553750729760628121780249829673642196271979883573830974301458498098407813009748658086356621633852156724126211309272503686876436038157408637076844759844013188889106662580743804010673569350804337714190014381009753925120314793874123092413119618340640908133169580027211352273392579924640820258280251997315850380760009931487434387558904478689038461563178432432855067189177231790172386086608290596923548304173407175799510696225364207811798654446482857892970362250100703904933398687252255576368155213399998389369843883297266370410215410212305693347067578343996731931451820458795936572753622508483371132478882758420021550988716366102227910813922730916997298873736123416933897154034881421664780068726427892313392219973418337244703786673065999182597695174811505288520249593501218288045884339783351527314728159500393911020131387346641565532524425437140521831262654597250557447176888728857195870945192253816242859848660055918995060325334188258710667984407433143055151085741510741819425646831034102231464631949889893669008833074306044607624039620441619031698235798513365966442644473522199199691125056909054628307707686157308013815669839056148432514602254698631386428163079303528766447172060952614475042072247058606023328223439869789277664531897131454567114882843086523257320252080938860930165927932453052568998223546567970219059146997547484700672245619267618744262838427569383022651563973243555454375815611673846102539320178797613296994924440892262340317645591396640486921847139170279773100185007342181893316756849419224337920585259521252641603612481129122980050065329157208900495381402886547664873155096782491632827429401229961420799985088642763905322603302458043428318075078147824910121307076443873100707039341066668770039537991017753329767318847858180871396678913673912376824043448228819008886842299147888505680930516900742058212110260088468285756605466626487552613391096039178499698616600039494501882747976569561817196647195164215236344942603043237351966942175053017301520020105121958455787845852107297314706280883060517016488883531187784962352242535556816201700936225085614623057387990802030368230892909945948190288181584377622459162012005677077855279621970330210836611124657830847215654597810440754413359041176993176035549707078632649745719709407444683918318000226024588322443598725594212388726722569678972866408881656240559380804503541974357471964207863258130204247965820937752579040271121183263007722521095566943763833487347199601387936353571257130126987984382039388406345250828228882743193295826397531702877134382188338539252620037613185769119304040077910358380292738258711039386441531719134843145130495468648585431629600142036600350616696633025570272330911389190809129698315325231394968416460479332584158518369554327494365639295062883263856586540107643706513819413684224564697069937338144768987964265497606094321122430655642908511145905261865704435830126339390849593148896283155136486623544361236280392586358661879508158958046813990858880354681371126599545404197148825448378102368222747282684174540333068762031246189604104505270718389638568245092413874305415691469154377449435982373910179850686105984338597345662416862693569423811350178681672606431089812827499678588027776369846358177918251277056403743995672695078425681005292174447937365413239789269578233485885317387591965750778209766814830616937301465107886377476293570458058360016311707240557858020640271059914405870818206254827309659289285380413897418145159689871324395925207825105390002591104312409527964625435224095148478126266451249903599686333911177581123914188597259084581681884056322098759927921089297009565744126183884589743411006605828040833390783945595125944661734474687399888025673464230609910812043707917435164151449203807901679811054172618390739481946058467389633312646979636920596080167774899294146380777347808594373822158621888458694809996766236535325927681521237644519673289765807183873896852400072534399171786712054810069970497938599783251514567827806383674838323422816511924938381135222396494063598660455800595831319045101719468056864165724499249047466454003473916063094345047549820962775027954924540955428408673127715238913742759492358279816121670256366828400355967561521370457394333108363426714374142480798673918986857466227969363293005584590852452870988452019579580494833793350977287966146580868892068903955304269921527356508159021114229159681169243493595374723521094157545719575975489412799870280839533997674554364333247675737715881284124277771110394394813933325876725024015702604408630719559584757182563242229246579460496073361568789234426336959510473461701180664491718324971236465958552751472864651490749421912135360128925633149755459182496037336265063728293418232283759662714842864292607922916145895131897971781566167905829747543597691629693780061377193225827380842338200825593262886970277380886468151615514347181677262710193235039895073092924462191144256104977487659999591368918583953436112945399893765485024739195488129467249697691974802543797510934082265813468002270046765075257420973362602287763247710012730073097843937320725854797926313656623101286617294349704073271609522304337041977092592425855811493593194403433574630671190176246660787856635480452389175483346584040618151269026425605642202714858560208419858774660140566428581642768688173457293483511487451740304622815481833050011024086446844204887596697555870036262725672639618991365197215500302333754244533944957096579309167790479210134548221543920863989379792759108715036042377512357334416755134330418189243628203935825535714550462385001030579699406281842624361972121108868934836793125343300020194692881747744914969769940837787581631712141995776827048668643778488389627819254262963040198519457495587514174219440080045573890063605740557896825019127148952712013395945876918665147855638723085989571013455693089633587088840043813165404493452632155229778272601526140007819318947290568866131232640588061053229762903731298420201421922314570227744436974519179124846140786991340048260241868872218690626362509221860697448729463988325000618996585848030710215203680405516369134808780918694824022736970500556711135663287032274969099493402845613552701186048020740542172581149187285869052245441850112420252858734489745593754577675319654580381192757790884308607974764908004397434756782428658658360859168252344891695771491683005942809138122822664647733002875100771080706251677860181052214740657050426368712813307311046784330109404315921082339037792153145539778399490908021504161185717880040928360659783523541939430528344542928791509759687298692292323198928046697930143168994850497223141026172665738990904356790138340809414221488281790973285604763199034915417215181946258443461373492748640417230895178687966442244283573244587148478044587941901265346229810760502520488889961260691253668647449586881163490655895065888157464606194141362679641730888704728550828146189499328081285264008635337310697182087223507667807451667343656550141769973572986935993114070522085724658908310731798519295352932257937508708902743723264455305436750975365773435452550528931308255814144123865683120296072078754176113498264483335207198970396847082528305903936644863832073249246310302887756077309172098168210927726742827376453449740643532293262537228576523214004081488941722253499022179126471134752979501488507077745302555603543181975286746027692065889867422124240923006981895674645064557092247466864747729486347451411416539849221136001682174452224184066831093285108098871735054074217459176179209121162691505516700951166929856790028061319204443287532062053460600173523755732831029388649602881255493573286236080345951113282187758424233731926072279035503655776918243309502709044799059858156680791917379164462562717769725931096422823987122202796094489348084220235634136495481879612491021783784920907300732280472597059645209697730885193764808197372505589135750299715913527695699792011280047533706143055546208404500274671666548352759968701028972541126119339905617228468952206031786997708018644008248051157215978896513966632537939072369204825492771058340611811515078874321796993592176195334677854118735801532175519707431615810602082862257064111005674073978689898858433657930606881249840585072966586649438176452293074698714083485410004705085925121536108489495001338999121911660217515543940812121766416356598172152909283328907633373247243464744709098066126442876347445266197775495037513505078780425733638920292044038528355890349194136803112410433435387938958147852109875577867409052249496077495702814420237943000704630174856869207001629615948655589409216183097623377535234642305257069257822526442912376922219652208761250144515960967224325088112399393351277759451830535933251886457825105278251819653778586182402805881138706837717150800373246262180248138228981586736288478029610941887535526924065834296084110732634113945146836843628544205757341248350821958374363051318372522180263187673088135444942532197029643210791907200028864019644915973203384975558327784374222153212912446046406790091792462496565195586459450833428194193787989898815490823224389841842899518044415837069957977071582762855525861266576756730756877382467473487480783066322854034371095319684614758893989891789324126870261333613549299637495658114007229626838188626830025096368783156927028017088321827294657047596311773020938428675729277936667038900693085539874780913074654889825608250039261512849818023034276701924840043541102026251643475256928260819049364717569568627357219246930789458665309548636502004863132153464281151445004769492756641352725487261963918832844275182484993929199397408117058798902334080950501016266987978544437070965487531012878242211122175524703811801389517117773556134220439792529866032278392872024270734791655708789778187021624320123158903589794672924996059165523965738296997379361115592333096161478914001969833247011059409034515913451456869181523717601697771852208141599193834868987217503993553730425505477591710668335616743631612354211924749660782012010473822364697547933798815564659835674276672107891496813123402579470192713952227206817819051837336256891805290141041358021390372202251516711055696111635900231680515642195855489726647547163599370257325380804773592140768521770294863924543738037963603658628469924096614944141442362778599165891625340673924194715718166039736466266144751342638204978327452476538387736833856814156033343257080872771350044397173999235389253267522974213515402865368606059043845155045182115403847839920171689610004211287321784874301639172170587649063167754846014267047977536371833022438582619210891665421987499968844472508918676799075129861069611353309649260338533217628202667037882762438081527537822168082257663299801810186183559697952270924242429882939989199231984431392486465235883687599670045592124380081467193587313052550142281876561543067326467384177663586514454213789408110309689691624963879638987996836735340705461793685106462619704996106316273461554604316155425332719857399606876246153433962672091649445695814824935867467590768696903318962658540376302828738735764371388662026343514283489049868610933290044972837347294932814658379982104931306202231742927623877585492412253097173499652795878827974656036441785262041595988186451059117150560552222681416042636780230458149077778493151723556782233714217812592538431612977215513557563192636366651212193774110620284441762972863335225954708843079980287385847676162567224995315064194051568828188933653900454914890660510834238769546519653498015476030860994082428511430139963858672905984948751866426930485074769420715175513918206582355799700037274960950975010322340140238575677312046687436550867123936684624173630522928535530123955917520056418261240410387748868324430595894545740387495750060156169332544535056441457577281279324345902413681270197421719007720966972782040174629525576056250567598729607726191331676132628423952240411623611635263968559840824400222360189728889185265746126877719825622271161577534847469560330377455339770068575263612178479686103643946161769040245555106930743276172056824521493691139642892441425114806828559729632367161636234768083929993685363160507242930144242142053130300058607502421849080795919056261992208160928891729207743553577526297781266998649675738319486996663041463095267394563707743381535798901833396669094244006910320089931181763835614329078228193752581876686241440601741208307305804394743373463260242258621404112501925043343168498318531771837228858314771726242116619627468600821638438883487289617899313958111388150391987862384856182108883705727193385397510449657828452244103788125419498128274086713823662433263947355984879575702458473611205586706981803697438512895654197646206899521098968659426236984203363967974970793854462838476945369049042963849732450051898229260674596159275064192567081335203125251037334161822037535134648301838266369236437602575046771084453827383310414747167987423346110482091933649272458480463600864490691672941888176389859055033958654114263015119887072184226554280125422528871704288753961814974896902422411395695677909168331528713937997190875665106824680693186145953331636774400339351408293462289945802815307391285959198569632685982877090676928248110085906396147333483108639182532760057345747118255386418281887619756810842302566978841655623931266906628879851311921449187377694264921964689728244094675679374450888741362157340973628841626588103776597988304632232624560019674350294300483005990366537542467803834402326795198264456618302166634419609074717583101261933864362018425464173123408060927778228698863359240483832087083987333166183368001515461579462966780323974741415811816374456347326422787493246940486212067576686918785469156347088315389856651139391821861106762281582955553997331886436609310975280999060697559571909802744138854589786591162120304612329795052989782561511760315538270582410529900248595129313521488405399992041077320021318429153687523835176534784041838478287302554181572149370978686599405229268562037213048906414801795110237092064218650730686920758077802099095660660312813928964618918132594216966006614401904984399398794894602672577251587654360768283986178176293419530764412879862516745196937694132697031068841683609991845234450090050671264789922956583425651133100908948584956425622809671536921683305830530382677876287812620697546183217095266767442928314215013797496344370672340162245108516199740132675999284184706853020121650020526479716942889512059003985249252620057110192052619666153349483445317754927247269639206721243888485721067412981978559888288076855421886338599652195652824845246106890891000317774907735699635222983666468074063360257153975249025759340167908489670568758911198050878250267435460622285493376505337739839868290304539702116836473423644162357173766978923031823730684515742550158996722501949944918688688306367386110740777596756189307631684940658595424018172357684290485968202575811294448861526642599967245402131357518252512641587785115933300024507909316164065688183946954225290373384821725158953488008427617644215324166908652126422039946516057098871524137384153580587077861231294364458857797952369855345907165979985090224342027462690376818843737169554294560692486155631110886651353458730137975779245298427494086886686175514822440418484844446188415280860849479572115755002855369248059118038076806165674685084390581797430988487812257708404959246204899438849625457225623903462829451044669255248886411584549172942216995883030005321168611110093331813720560534896509662728944133332871803228329746513851222581509761224784476550191210367901537882711413146542881925636613322100232187752141488878105232642667339469734407755202452099388147817847364890305489699795559921414036907325543093175308127431163572859405852938207050465775537506815005600513566560316900507396376440348429391787795062509595323970246628658548369054808175871061955243069702958874232874104004362842427461650210230334249947431048022580640706176797855358932702718724791529387004183977226315497244832836691076091094465655658808512277388844304986526345655014437432454745235626317935287649271846591190009164577721912746629400567263269674806117745809366044667555914963873956442538484239419821243146460591750563698148919883517903973835143594098782787037209947981679098390503974776503369265523830975507188443246708039403983912061188062922078386048538535591554129893083935443777749546851892138621746908689499947146827612862405208054906348153585694560175278162260609476784005226810539760285561581029426550636415341793880744578632327826657512921861986231780969428343126511177134530295845054660486116918316649497115738167965652947019913629378848472692606790463282176312379531088198426146450567647401127672381777385125409849904149532369066609321150017953157702076288935838565401323972915428971848244574989309382338400877543035458653488952273649249589598614987454677676348719951797647575027512782944472840412471291922552748548497780582800906043000481036639413996628543473067967403032352042762833094826899765385454916731521467014968414028938984687742747914976370918815164044591587912612786299993891733912019288147231464848687026436583576905473248853569530879566711460990989972130667933872964932187092194678915711034786006338471172515001485782350023269832738934661525250863138619071355210743761174763675947638817981268804096081618109953281195182855708400491093584949409684785077660728165820886038294839472860519399960864260755173969971752106829302668725063276767425544982222229678306206760938518395669856069026233967462545113657587886697705294165649331011619146290057101086106997548760489313436583983814929773866671118691785608909420942244126627760494342902695015602370230150470217313579275487403279135898307870097381898707324255757857085783777150212096498878560451782609825784610790852906638068980838583316815095316381709884875103757891960719782269943574511551033885815162565146218468407298645212240643800641061208597677084542482216658308805537574250829344637285458350734701738864475896047490147780884436521131795836502690019261920659763587913577426271954623165740322782018219776567494593234844707616779724378574938886723735231022665840471056147041020446079385800099005962890859259968348938329739627436928512048783877486482036265097020968791289557001320256180776345222413286457579902092229767492565270576734485435105056414925083993078333801514756739232298477440195558528077781164858747802800092139835424288627394018747121912176350679368836073162927813160928142984352298495129670995167781551464703419874349587743298200608852745118709878757156872949335733666985864654176725998771939994584742808530617570906613663598118108434107077078165966178588225031047336606125449262821791488454590825930986760991279637446705838633010064227456346944698541879465995861974412506072884330707824270231902217457150143107150220874523655164914403582784097017534164674015733321295889582743557915451669620640655091436065139870232192011300135271183817855463142881893507819128726101155962915535895398789499504637105863587432094185675862567611971962564365917331009831024580365734744610954188604140343950889578889866700549585811788242557989552653378988174534645504770445925711305370045167363698410904793673274968988378402516172902046751598556886978055062533879605068889680604312479277473257799223887059458432450293652601497108353543395954459882981369922040469233334094060588604556243701310288247371061638215878003934144938686583138181353018944634743012847894308577783123188523746761431250320506962148124569271283495325138132329458393401987856853436848251284851387989163009756618661335441892659846249180316190559029589802967855930914181151346456865621994207830041051976786739183469306370228438214695105732353782172575969867078989943561881273214535038772709300317023156209490564826554631993443310406415437350301262205939112113032697850258531770239321549164431034235755312142578224571399552513257653959696201185723538939891659162606058405437058078646824555178539816035224636021353205095207299713305845211040132862182521197781938942191992201045785069034233192772270196660891426094194567906576772004480825493909374336097428621920011850281498027298661688274218939262488052043489921031258309584039717823418986366644829269863120607128708808247039873800219753515619604510080073037235146826695344467084935964285689139373897414674365824137417968098276022462785092151512074367968569142067706722845447382033764474945275338044098411534670750911143057755402843427229878460201704674675596517423265659207379634786177084210815002443545781896072222689794543983041210964498846980543316330105057947288638761583929871361632011479379536030090626689034439815478221931399608948720864869457154366712416446651131007716199691592328580481328777888207564057897418925731091042227529139985505991338857539620360247073349576351082117615884407385650249680016607872984117305335946267058385340270417432369781821590295915418342776398706072763038896697400453912684250012035680654275674352706583539663555365268722514618691989639851043464258332691022929976358362681811296500050876407252084436139105684604644158679387457165908367138419093573348597477670767993364399863867745851910182967081299576815898242099286017337077076735288720649496907371800340739360865512701390357115606677236176695586287178342375258508523658410292322341852593608731508294247049538847959931189473744540233423477950225669849293292801056810067062277691082508268087668171381392043774250317589272427977497865433967432668791726205319144824165908355334378787323602703083399000440870967864334446476061276541106969588162929966279992351002795031846018710255229214056955205275713589607743232926942430924512260180976204886666362910602108881324573377702243500102185315225318719858176617012716765756897408314878687363779020816031222668777712778241851809712881143867624067545011575057103109077510643898294467895235494139059945003983778572966271143632767931931366479421733266733928279485651617746414199083707474302001058755211667133091530941988712953407142942346638760328717255194514059837483980562968643606444330543690761971264632249201754068647218712993846180881726015256471399567056080810152700753200640197958542385265620051135199189993890421065863995513567114448917653481160406619800726747798811765140794704148545805688602587253654832764249871774107164575522848620277000757022855569218298300337805206157206674601548708068315175650490412657383774429353722264755463498176822276791048252094330170506904063845894757347341857155797845216122139525677472510271348808017240930571577347215414594688986367267908268373009235756074040569904120100369003989472488400032042377000949618937939124878472171087558091997152782524288563814033288946456728274939093173175783788471756677964018962733488274365791219921175662055558006818470890185965167492456556355573910864296565542074715808408947069731624381082220214406341310761796565867809528118062146894540782043357284366682869661051425269105669311092816665594524986165915163037656993120015327379266274190405785549928348969098494807061862296171174212333866807913264092017406512434098497878448602845954341780702258795359765639468220262466272544932319608621228321127952096872796292139223594407847642303722349963855324399631241217627819204196444418083422336978086109363385151808047766248700496693676711524376251312057229834652908337315039494356963883068334364576489529406068034520592676265955867546002049407415927083943518067537467903921056480933388269612695557532345934316397480501443960137990539190399560119061372477876726728719996331275686388081830136497412046577278128141351276627178260421729917251745680004497141724195001176776425065627157428746716723974122217189356666550717832694661731227535258600278017627292735450282596296019475578267298953158643888066890198583295596557957854439600693607934618249939932718249930166538610237240245836129995983881938530052214611056011860463242356965020080815091165385570147895872734694522111437402140682385959528825247314573921119215495947742817341700685188228485980122800412729900376512484294985896010172659599349074002316642806378628049767018880694340495951299030595750398652235004245734474909365656049480600565560455888615616389322416266598321180157276261702962069396858968498682757839224030464068464673090313997091607207683590184888053375317279848820275948419668041848886520084401601380913121202278538558488574872222250939988232685952241477891083957198455033621060324717885064820562495381984181856226099205175900981160840493572038220213384270430745170812492533488878776027470011858206787362327691548594751058485932967741720102243054344466813682519603606610197362416206795052293060586975215752536347780159348111488418069911984441405766264032075881726718943283812557139053690823407456899539135651892185945044490861237128862830511095848782390093174538619285783657540179532629160817754214706626324952990397889727114663789039168344062247721509721570876899894636951748138616048075039717515210583708869353653760829409535327154918524361577724128959843132950580950207736026618441675404572041238112857398119975663967968260667910098110082750001980124819907842010219234617314576270212428428471179340472615016937930539593168108203791629365792769176955777241426028461762198894730206983264165919914772158049666478762178790763596953876409109407437115383183309619765667268257045255046929393643336579004419560339368665702723498523409332388346172965204110003432690470548342288653977961224022266392979895486637393025051639356029789658800128291662086049677187847227064762463019348854471241424679896462829312580707998245074917968887802904330845804047042657622493567710504051529184635000992728946675962523505436247899248767464856866114052244568938871026560231494618437066582508551778582755520411592594859473271276045944132562599960853774335170348315003929196429375777005387185700192384692273731426742372030651085862468955546496034091197442107262397047591052171773030379596668314110078360204169050003880716490137240686155018069780019382881765751106142063454120285457198493575925237299971916504816788133746474525129887014108630982456271263128665505758281007186160847485459633653487279133969738022312683949382274468220557398624500739873349446705677270299266112276658603377761619660638307081677393314263522332616174907424569354650271312194876502281959457441326430250295470160664037409463427422535248416766409536075516423166246609472731905036925216515888382218956952726578306917038807787977407043440529486100344956424822678786790375844287106111017772261251453390221788203247217388299537413827025628753128472888133870829473869201903382605369296584652970594455934000413424367573963553197163433360761981983714794022451505427520413947531414301072127091717704427293204649092370517985493723585051924871627572259348763757058400535129163366415044846376143013925797968974632182852133759408421160305010712950656378554374283598625467103246713917785197919253825484859348100627493526930691745884632847194743237769423194754150398282492945694476865351325737686800864368995281208854908565387666174288948328322855461739740072768564167331879104199058631611364758214730629027220456491977007830459608079014903287130344310033049272497574676190184896610679100058986425278389742148722360083678903321944478621129207923016052300315092959750844932461689910949274259900696608430778438019366187804196640692263281259249652923165593990104410466945062885905975517075856404418930792623230506562660710274397345834195044949387103902613269188330571056464956615224879516266979173927804994736698407300378179657142510258633035306185435486877031415139671072612311302943005792254365161548987192913637217577965497308853356923544961988526519293510504633342510172135906007224828626716806026320161697994194904172653953032639308164219210076352132435564889905385417036674777321304896249467383291509630911816610013936411265389268791989835116350566551790640917862609075754240835962015880382243380570150590135085253297377353553479531574876484577910559809332325145733825644699213788572252899995634219671997537401561433189586855853511632928595258876767125086585353213940743254831929884570849423167250104310613516700415733643365035560614144055534577589940793312057169687794149929932052345563796561718398798612779895744816471129271201552547877665205751858760438183292060286442438422457755907174215453881035671840194044305401536788833339459078363245199017975727786514797445598155381389060319300279187710022479974277650520675131104784327307805408317749101137509889881228505914505107205158503608490144623902114584146393577051200486115234289166604325468708575846930271479956386060097283094080496121851796693251808691600780612179853634119236133947557293072391228354949375503277483718294439154957557289930810846877033064126457639935853686922672837517902497112420879513933171036896573497536893298991674709259994573909042323626692001154359244748551894681243113187383961363025085176467783606540418079693856396916627689688567405509175281985873454296581201287025094296660798363371860618368050882890785014827668050845109132638769302808988552173639433944841483118259669673849380151970121848826026441607591671342521780318455281467819820101082361483700665159523414500156175576768504177975838705930797869147866873018334424152645062556430476167020921654837276993989357280881716663345639438681793356675313007633766906630082157531052855337946322961083160990809671398865371588182270336907023363794855152801070045281545544120882728695675468138849040840381924661589607649138833927650585601277000330008506278348586924884090136688004050426986742809345783652579189114674289531160916931067430066134048808203090579615458334921462831723917000997083763144470052955372488029389964817658483793073772547881727977984576575098810549666901104513743002566531519825466527523775110522362522901007301247958273086390123313146538311245423850748713270990200859385929101864779249271284880931912125839816840614841089418226239946895504590333459238305355356267749066799962306611415831870299373415227641569645317454333106389776619951790303170086591758181384579239118155663542312123226082373465763409824261728396656068143408840470738680180485914171191675059309251205033757565891240062153115373454662322150501906829118639225977454890913626170372899858834659400722186118562818198557435172895547186066535001786134078444027742501283827517990494509850206326887100193628093674937656179516901463907817865997443516528890252827549528726948054030817543898246039558502520199978455764564263216498367993226628712309973553376749415881201872487596777389554971204567948570913841909385390038526046431892575437728874949131522641105830517486461241013209728320950571147921933081112890725517019092289526629842406701502592831659007228352194009490247285933889395501001454616781717047200791992586032205073633701397814428166406236940264016762338696744660532351573707635835192305667430940255857130799574991039841940729506809384421963687396858932235245640517100186991675524601011887917369294425101031438324341377863194229072086773858158429241784034614409141037207400611381363940952540318626622825191562516369754060770588593403410196855763821856637597654590513621941312926506280457060018601931749894953563073267035645668214425522305579671817664228170337158646192726659213592309389633710125974192248611090738915455351361333907918726477995443411784098425656393452357119760083635432548733088253537121828458221207725007845978258983484774800330618836363577075381643439792903168560702463141986001689616199321623481914317787137849269609760306376369439021114498447344213491458313720612142957482272705019134944876204611807368656432620837616062014029469736962244042640905364346518127776818599486672808846122782870819002070453964688313831341228649706793471584546300258984745866015174310317539613357009025907375990347707410580605436454864120910853406776932562525753102542168472865039950097186916551940007713003392816779188026932307948907035830090609733037834681806023078882890221134145337360351583914759137930081079718683365431479700096228458455630888739826086603393982107663187941041241565621189198816006669751514233602461468849572429801720010176176285594629849461723300893355412236173583596852162352776963319358910594278203906703346023578100136473391097355995720784280998433002927601370752837093442143253706384598992152577514802683149692577254209779275286434585913720136980918765978317171707238781510478958702147645142063447471745579922073408534504062908823715611138690085923571828887151978252289752818616691362295657236438681651441582094848268109991783835153048241326886483926979817250754335026532051492342582123154793763938386455900064622804718718625439901936576720322254878392546543755512527231212854867366824141768595243400041810181419321195095395011460030348544099803644612667084284437221399442805479577941009387840056933871789757019182582476242673940940391276370785367468153843878310096422710071569914055345330266723386971634799821676127169044709970985779939647499372960424468819977580563288232113591214165013976597821191468594969619657360045664773319622741945654834239365461416215941783783874008691339315560856008551867082918558407650771823000451443703913477641632559949360143987091704763059106978842870323215287857691504140471144170097625926256368704549469031740087957553130615885772346452697572765733936443149439684694159486890031043874479251960994876958684077376546122082791538766125409566128914141896633359283281210136501149131235440321127767720848057061150918777992634315636778705563829417666525943497222748991303138168983062204587551730259776550010655879420855428323205493288432875413288572533347824896810501225761743622461992522044611521936108905278936995920556800043513172433577500341527024083641336671247233637357216870072783154474366784758307400098659210416148778077349380271022226313720645482351456763129862807342561968089089862942962801449717244861205824461538527689911780288807691048746823119808419821031168928054739430314814686437256205294731243454412181701712960615444618810821350040069799015107265725717619952708797365936525668917401190535120004813022704376243655822359256503179074873731005148623592009193522149689431059310874375283546226279726882633196340562037463646923354385045612096638323979291850662970102559043213014724913802384146857873496039552478028844367911000002505513538828122096227529334312465160344755042393778587958421341424884122340793360369392084520837826633615345375927383991168913104097587471348488388406721081580255266393416903717143616907976040427291562293784510545600674802468837951863954711791295902334498681953677660285598492132744174702420927266658838987977024483821494322802281262089191207248580088384500585956978830939584303254738561899880049072709388451767085839210413455382374052851944841505402194034645457012566155797508383356941186707323554389476601628492631788626340627954482021664105003164779910931562058034022783712785275363224981157678246282993982867810402833367019210001251182344503927265515837640927686527807844234939134253227581111972490904545317226216466782630800021564429165065348667030548249272778787224796749084907687733489751467633613739663767250061100232278659076922781519971790950814768690313259677189166033162377777257304710822453421200724002169301023952667016907533798777081745814346902526328879018226009902642434811226753851234074214787914637116275661680010470090772388150462749089590174710709249566848114521082262231358516897749664782973303244269478394022035823234838643697071825989848962263188045038885452599950286530487835409947896899140446098380667461981919125352706268665688129704949630962781457657874459214890297774721633006716938506562448120812459866208871517566542969279373426178752247365151706339407029730150484597321329326478372993734996092256440126124428710617522476090133234187020316211703377329776608132544408997916090634645354983963407492021552648452449401005109145659961010589542859697461723990310215508856997191664051603664944501307943321755160665365591512899313101174720258618938025889304110800671831756448069873717088349682180363351730842394092782508333670278738101444466033512833243434279637408690769445207428976962484043206107419838507046952655373637438351104064487850367073996075643707092122349756154494165061363699593586171941224011740003338634591717768016769565418430844183472681621912759691465261679406693828294381714709271756628322577476246241990340470954299215831627624975272226305849604436292337287749763349829801061390620761630590639325194786335359021813394389951560568430212330654582612463071936510130154460516281771924914150219185696517929227717207919569198422998004121588254380097929969624500346148039345245826925871418571510286543998621302232778821783231726979736807963393537831417712424991014486192597319276543699810631942699416025604743710607512954634615007074422602922957241237427329507144890357837478129429325210546489823433648711351161448323879246134012371902233286766544096216863629186365796300587483187645499602626725525769032188659115735094548241964560629781342506909005009295713251060502406170104125923052125225813136953977289602267818325107121721673029432361970991182845951220459981941719571461775872280625339334433139874742084121529328784287617158813746651758892436367805157871841033574321567501813057397556181973280764695448791436863565833701352949757006131967177921685956688949565511578302254566599178680092648674666899450912827968207186665268263860006045407732007708919557726241195768073297569119891989868470542336900565330382368547560141429102471390709205013566291232940236056841801519783851192278566708504968240242433978806231095112899163081478775188610806857171230690776391241014908142494781127292990678336334120373730896916413139729973495673869697774395491226830189227928249075576661556678516010394915197497582199051202387795903686674807177838457822779319493597685680596607971075422777704197155726231950172119829517564540853758261438788227663518759889209473251836295397077289591065827780629605566076383169345941878074053991921336349149609632049797576220971883221751032485620098686629787835545821738914161243048435077333033201376074218049297002015716054299526630993129540492899195735959224728395782131471193766505195199206387686492928389716362792920856137179676087091792496904198162614058275095301100079742982773682462942215286681105446561419112582639946544604209738233644290987811461627960679004029080910592192789958925189417266334486037466427383649396613564304333997652251588025732956241028040108699562977105274487206485212820477970065843587357874232062429654171887514036340288850316762460260847123533627505683252475478126338014403514363734240587628143828619224364630125125895402629609955716363755697033999300500812316857726011779459080170466404296841763067619129657756768800548928779540164971545237801780486956301328526132166634158957230046636697967895576781454407794854095816003036123429793521712827118710557602649414090907554204720411351649510558268655225564147930265700289675318399467494566950040002780873895276897937625903965888046387118027570944304964805263499557044649670282451207871706614211563123625990801748988338818657966211358541519398364069223974063465065645984991075432649067505071325933218200425911355746606232201052351847444439681847546651824703623842880754503279273418194953592613698198247425921503357005900675014497090321196281959218387434128900345716525190139840167934453295652418681014013604631735258513476841748363784421793285636653498781263729648817668586051672978322253736476504181860908290847052434869472687367722067573559468010355495048081267165037652962222449173565706845478566397239445765623247395594491044934972513318242942923792854993275158363299442403083555656061360932849576845111830081986676871786697456442747224158251147757051811967695347029407293628595492122180586414222471682895951749687120667400534218201017902897664623226893031499557358265634108069345857064067629357843900938079495529827283777445840127992214197620595847306091478137642060645193255035879214685486088904064134636199924723109812647782010077865727543254488346891035210712423327569698291211773604488191952026034064955897032109156672533059006030549626234577765775753079555117507324267905375457092081754488781202122413117596982162975890284048619784883171363042580732260679454070347739891372088869429780137138183120971695936192245925633363960236575848003787012556439473280136581462528667841435892466285425707928395777346954517259396744317975829717195791056226186241002141612514781445932694565030115807275134192036943603594384365632435706686961361883707771782982518690768007518826829978323293734129894553035370424814994559375141554258709815730484526171952455298667565441760262648612146320688436011378404023550264400505125479450403013407919975981412564664472055542776002061109265246761780377753745694528142924529948409133725349710094726484697118235242688044185524603065007082211436814993929630884857026752032367862949844885477293670177575034334939458692918183343944932881608828885307388242111181909934207630696159119941677658869514038711741487620091572226193504175462496130737583814722269444930037727913797492427149549247872761415936580890080711157276548003987946389783188937876896549331776412854210971541327047079180562430664975123045396856512526981739790036929520822005352266683750375487132970551210266341296578828268518808901405490665118627196391604843513760477504039743433923479279049589830081555677305720967832700456695637148564416650733422102429823541275747146290622052318766050858799543724878297292065189392323304576318464418171733019805845803929526499743104212033243125370285253792407136196423717327670634783839931818423617086006467187430190171507872691284182057601381419106515591044334278902359865263041290096474749040263476853969484183483270960675392398635484395741661934343300992173982039279545762077084559966522842063453371263023489764011639385062722847229379124998002638940038365036786906277233174516823382451858199563348858711230553129013330445689581769169022089276369542662160106478333063160059410262984900878547318822049293687559536206253716764165456477239108916423706811766681664862789433082175431519681672574212984747009367654305882751416341731683560096312419994821221936989052837437253770458554813748931895287734060332654018257706743223521811345882536688065853581486136915291270806731812927807301896026488325498057143430356879755246977251216400514139342113881273517893433532933120116779241857144562877290025540188214400795723092377664638653397943972945662189013473466362480889316781310101778744727005206881494582595959364005096213030716676018635905830190398085731981184331878363304484876027285735071229779141463188534468555971196376953739293722804997657500470703805241216987940080318305723839681332614505655379339679333505065813615025122047556401222953638591969403301308441118705210856638993859851548059418401715954228643327510174003690921416134131460659999451865728619723642445632108586067195331677557598537649106748394126718257700798748616632301905214103258746096584442411474154764582147215185149066082971106030725536436899366294009610450837775755967695642033405306485883190319740389243944190601203114282823789630334132376540297642100703072574789374128596502370487605331115961486290184730968779617961486502871846760993523251839405427061668927421303471006443971005144569956791992547737140494884030167582605990738205371091310674951016329151110927885187209846063109051465473152506866762981377812858108732141263471272227125769266741714498287468237404934276250707004682887551530029714521774844682532936775598231664786256053481946712707536636517123795887675341603585197443283984969545476684223821925031164746681210918723086181489334974000724888534007462765151366461025105062043839623699805090306241515136091186656263905741847061043884991890315733651767406360773339613064971969294410822687366612736709308058002834625362211706802903819776287082688387183543632261599172091335443065988700053672019536679812579909226747661292035294349872795608684910749739985399338316683175205685092208759786001583821588577668853186679765359091135820773058875964604308892870677274599101297116995402565076984416400666097709108698614440660767801937119937020155772354190598653106793558847566821359382283726782700674212676644429285789500215261382743632600260598492300690432774045315753313240382753243904324472117835861586244068220598841026704237339950075654563190632271611893788074677342712798780620197485215295926633030764179197301881243828591344762973780734819363741794609128777741446679876170437385887923724296064861160669448829632611830057372276133085040653524798221059927233775596836213555471828828005993856653253603748687347747239157042594955660085118389112381559631909620285984751294211562248845268581505462068808050351995388560969657877227778288853984907809098461751088204237251192008429178736283652134406940575271965557057223027393917067588755625691069216960162015620964311112075676189225446957011749909981112220496660860111921200645385837169741688202629730802908614914770128949234877500406447842382899193654972901235532003087327017093501702250279485967922217189911515688818650267497368869657343219406025155302679366739714284007363326993523432005345878194360078971030442165578592552772964503479878818246722730418280721164857189119628839128028746706441640028777987000701220526128802235908338322575625915210480909647710537983116967289151692503625555509622609153741898773119914684206090685724907952354891943059684737324238374602518973168025792220856775341201286008734039400006410689314051219583292484861007509641081834752833864466009686015499130145832820905720877913476344907327348777812742051858558574250248143863610657289927153313568265514419699013164683555782937477902538311007398162678750165608307469653377848884298357496912705828632039090348384733491054778677765913691544713610824094761448328363621087356518063705122556855888884048594194025884332182573950881327280843496497839462410375575309052906444663496482795318362218984702167482909218044210995341935598552929872300545752960276078567676251864203330945356899452041469288935141799699420133458191883591542162125646040011085587304513961541829581558786685938033591781515391639638505340617206526610285042569298483947186050858840893615879240105136698591971135464800343539590913286291829949209007001863205674847081583896278172625300184092427115955710352488725437755656447585146594654922217637696504330261770982144259680269114741461071755082130758510117446715878334522377606747037557400383905914136341376913642726201381685099358259745449708161013692848684858226348873668861599893955182290027640777193227935639973493242089727157856934927312315777747099391612590468841648521166763813128237537403396564808176211756111499216225761405125737673834057416391639098546676585797029336331119152205542880491171037829185767801363758875630549489827664060812670412107638243313945833218441043674252771748108906445634639249073394840871318008065972697246677104321477935148443269044672458444447623660082084056845016949995976323239711019891054185481100393482037508904452050957644538370126862852881100757881135796264868220797217547042518520672105515866025854404066572895962786699067132513037401484534020733857310211572182545378407588633146359358456501107934300242269163022072454975676604766590974988036330585170375670775825807439045676364399114505104514538797455393291425112253949943571273633387455502065351300510428576878025632599486996796019276962712040912357114160050648821929674123019111765868340088858651651412578937564060271105658697843300689903160152948660632060388774743117310910277152926286172669008811554541383579959965607714529826657728709966978453300366430992613564143986302955223871162883667664863393816203223384022159951182717033012558506176801432396410314901879284098430587276218377747144387340120653760202548415149912539978725703477942433567682456539641110241281706403174015726103725507930283940349071803750544060090013663537833850892483960311320210388433647236428786027014766681443566388770688026070421783017927048871890772168364985319442692333465346481686675630348568750946572933882669526795950835132809747985047905685751319411678941246716214520819714775659198300008277262651185570661461765679392080552958221255740074998783510298413695375704250443741080277294334253646569282163746970192150581515644723309076751903181724310289196359674724722107647413410693788567969672937164524037417300406703515929233502694983938051542915227841177950297179202114435031633473687210481398384503094854117226120986467393757478056116590292744403225202231120672625138819282000182108396706822961094122967367382932348806201803553381738130299166021870408037055274490250787698561136193538732422597400911696148135930676233145775723079762466727192294111107969996469243168284296150977631077374994662432729090341859817220042377579724465014960066462604384641631261872262242386748541579420274414248358946272355460533243984542120385908284857259436501031322827638609389738662807397690676626850561344857278381365095788109198951080027287180783957104753739571360617551057291168766885803319137590317616381491107341036258259778100115230609380460339103659577234363528021363154511413621097393996565691018138269666001144990385028116174943244801657321005461850028264863238729852344212838380535489468235328084891148456003513368332427646757631303287577319110351410372313196715483829883699594941071567176507105215889107623436444544105924313943622716719144058133602025634188635681578336494593981984809122690465948857599387368979959556539432921443244326095901570926976962237199099136475316992817665675095471894250184017089907651204945781522090445678697873958705126012663726812562488294696116480176046324063633427337652771346858926606542296102427923517929625887305553457627576131794904647212768721064647569415934285472611969755797701087578298417988463984526804449151874747485620349542569630655602694070633329510278924981165826725725357289488545157615568451389349674724801064198618521329342944798775655505812258463027900408633693608889659966009890451993719650810284836430356141416927330092482238271468519771266766742014802481451947832591130362184329165517726069329307097346099569799336530410103148363353140753410442160076481164947003522910193106292626312534138162739877608834306716139765993582191010940440308038515263671976184360516218678449136764504462346979490344266345338414646141907713629355440951646155928172158116646027964670835505617421817000670683144964313243613489316588363814887212338980353741133264916965001176124549092365657423348563420692592653173101830008955017193244728340664496807984363494532391629222380575644315789582270281969658864402503637916617974017483677392571782420851342438213323636464324129067558193331473078974072259575889965840432086967649208357308844339323367885442965359297956737895181715550639147058968886671588883338204460445247521463629364171819669466152305108523604417344819713791003451627950171101226573508623283666775585314133347485297746012547201845629771238716451729794723376544534440922731079165639155716787700893146079797270719164146704941410141420614161093287233761501289381022643027670449394083981402298188716773366403474666608675138915047478875786052889155837286385871305724111487612773487368582175330834443578130801120892686726804720165386079400661718562821795684031593815217931697897942925732323148209738987112686059093121046783158598108276768081223544329495193667306601949035128424541608584743790003936035851363643612466977407724610887409999115707061800701913103915835107626978636188829127357471581089526720889588669592463509284669703211513958284906526423330714939716716418456826640744138626139998340286694441091570978698923166477236359722927053084583303954658462892219242100835198148099863950699302338703393961468637081190425739997672249772069786254773831912449297912359577704526867233357665441746775178814386946921726290740833792255374135952739441858574951116503543423190826388681621576726891630446694567152804281274546186623615742009608746495309179348581680436419171582760432378629617153032410622267846002181795862776728320969583967794939086887199159399169286443960335406595439278319332811948041938173380350881598705980654350889508952290705360515180990209071483304819554041731696868121658006939760281991364114700012499222474820084516492407061569015581709505046666062769443040234756834117887701490149908279008144790151452670228928595357305889975733153839142184557106411539363562010444748018905158979652147280020304776763998457998013929481774471184272204562679079155854573235638392661570983428840890122880548891393944240012422609055728613025597154744550330520087485045539638994243443630795121612021959872603302933258250026026179232842868115596162201861778051601039874538172569352909596332070224743086814966329504729332880408762668564479421627415352277717587581438969276949104657048625795438760686655063490121950399397147737373099446212385316535667235735956813156348456955558683630823061567065196520652087842072505970793032465250940389995480010289733299396538621184655776327024214404318874493040558334650174052487903505046089272352231998848689621348489101855854861863956901181915062281190007986624290639135595616611655002481812059868270166738450052990572404071295090251088047304049470772003710477633827736281996590250972506220349421188532591724800042785969173076891784587780425153606778895319359502529198952041435563334382416679259887703835413626426088611029890996084054351134942875722046006134030995049055408329537142708995224643276860576437470886577502080594794889115067119918885633155681531382640408274692448272524779304847739109481256541960706270892386411046747464304241485206170649551028738927779463090520132381960544190446644453810633813826393955781006675891848189915419598590103986573892062870551909389206235053471636885034591476421121157929065267755742144549883667909032522575617317857272714252811185047672355233369010988818384300689201944043150114963383810393922835405069952259558176887583020166489336550140056146915726955369732537169479960150733356528322505830856655598738720112031476016187576687368610522545382895466564719163224194821458738435795419759503650522610612595101530345356460845754570933477882653797018115854845685232536054836468550916767788955491305811958797259566285647452796382439500772553128597832356513889498227090156086252097008117983048718089915015622764232541625023492902924232982866222816742982028781556369369409338791728674803519972045353965744581798376596750015632697886538051420747203420018621979262751222743981184316320669149221898005555310607680505715712059276375753263700011823938053200574798418003014938478440672798214329958765670461575905797978502454665621869441667122260634458738683265793631985347956672239514334690178188953969066821542017371889229065000199819316595544421883743121471403224325950656687808207209609128670838474034369192838094119197110562139179484311545313011947240247902372655864733470253251077516143489951332050910378946247982974300103430116328328883354960659074948021351732953105082246804933328200528023856850698695405948262531552918068111336145152208380888519705909417123912909912840512285339885541310957531791468031108743914989380012027445137877531182738066862933883077460266999896268843238053994603303936979969319662017904340567401251719385904935373379627680396109608588860432977548691046286399902410847437923352996908742841982134443187365636498981289944325142332522575616944441506593612311500322823534270403115242506362715390818226458579649230146494363493066449469381051355846747478860134172957749035493745153697746166315905931309143517972879069381086632660213323687330384499400166492781228890087993391295206310917928331935498150478570213141656762884411602589047306504650383708780276353014604121775258596227854501561080142134897860329570493875389457830159760982011242119614933473662486552324723073701506079753683680808865573484722761193031504361284914365004732296285146872378715634407567390686700666489847684206014633852869621320535967037521381756690180687014561895787872650821543657085391150441407552286490974674967594734776707251552520780153341548174173951667919625393275490896474218173076981477252318208207172887892903249864887807920811229758317827757734825610005547237591650201701218511969135977506555625704979062768852339655621304340354021440866054271529762849118583283198527958813309854893671779335491214274231039526938170949133687301531257135468846746093433363302167689821208351194207945355145646477193658646967006207298482029408946729743684404173627581577485812290164786339740435179880418656768115881411479349584251227108168554017011007893455088213003569263524008858535910070094976239802935808465382626048383386237421089604017507686077682004779777950781622228055381616819111848615972796558433614424526687754095348972462086174897486477528274165735817715796312879033002260397866051167399362730806301527984710816956763024324278328804898964908617846855877395922449509416913599391772320733308789724867822984722347228249172834810959365018367519058698588056677374839233213859058422251978230459870061887626243045219140932892960130719562852299796322251250666785687641200879480149820598504341454619291015039718218411139633603292484407604381057398087493707566533208469342656854877834120323734483004918032548391475367154802883405432064540768869235466058540702704009408690634549352707916529027763788685952224269003784296684181130642782970763467451737823275347756465145852434715799511932744661603517797503412057887667935491350781439546861743598840734737568641899596784472791169623616388139181298679888564293916886943477602384838946258758729298743191336850084767163618623329253530571906975045360584565391437221009252969795140177468641250078327312810447111389898485590265958029752531234541720596015317446024203084772131045007331628516999384732431751012753352092600552178754518884597963870013458267127005794350380092348102526661782279298161742851941517088752401300480939372039396007210423995558624668870900468568108919059793572463684642576464152648185499714143367854599414936558747466985123655267554956112045004514089335796218238756760739208293151652687856959977639271996721313493055068840310120469662804256632449472022325972844655600458206891790848844385922278680135140457583082610693883001064110334039469960394604530676189782970929516987279537851706135249836552314006337821599251405803490555602223612856876736263624464278679429304526245629960223427584984580686664143130647407743993000936197058864157801667052912107305197649099617754107312248468832862782165162426538416254177944478752096120747004804291276104850433151473505407229352124028581662302436189733350743923530245224866862716010582193764907384220952967253956607576733812574329063075806151467446782914970322493629057244530401245076376662611308122971694464626011087690760127031917385875517642602312299737476378004140803610568961670245356258187419649281629334699356536173559424276059184600819256496531740657819779171228602472631305910788366044479420935392040713078362632859034759820423824355375627991561839007471642524467487682409356646848029964863937515025733924573589128183254005325161780995843077546005963425960311484962743904464741238859231859975873751981072349547407173378803899556006591610046829179366999069774344364958080733655155318458234711191080556926038499733021426895077374231699486102797559367379956615278229284867571964351030972152179960355956393407811380420592395146568207348679457421361214056411130059601696364491525552383142885088130525948839667134817396627950259188020991613580339198993369825336644505508595136147403700017233861124552012596392287025753495229858531032240423144405088756234705549814679739195859571474897416356987324822228117658119117604856342791191774662359725702093577035166370791089004258619147318382470039431638827802009208896655888524893596265796925716189526285607078756720245305731228557739744983453125418026385423917596440011185817180159519576976473239191282348148588412277048674107549099310664741128603102601961347493341383256835809559424939664874362743065109286862919889156498224392283466661017863843853236741781547985951707656647249607078282209345040431548243626482119197222161524578500329122152258330663757778918808045024288117995255157759599432119609282433773712630079573774740402824664732518469748631953244312960632788564173000945409662311723209423480836368563912303905608853161210364009803858583020016623411030694241454443200778128073931862738940514786822027309695839647950239462358012441786785754393190366305696505931207683518388631725380602678274948395872504476689836527008704285539186786931104912028590527921234900195996992467813484896599602711539848261196067710785328717706681337584577480380403147185364974020209863170854089233644648493067187598613379832564144554473590723960307582667423767061221320686383175449279704864545188913792626612342076198449733388408710772192689928590958989783617711820741619448741501530789076269971649142431017527924888040039403100027035636867221471733812367494993654707280804381657668803477509814307189080353906845101667556098163672690179735096905626541240280761811788434402719970620991943092471709763048314899622226007167221038592573111517328555883153705553494592232370299402806482574014161905184823689881018222465317229094185359229798095770501337831006078516331419228434511133136162507616949757543013759953421505440642912406994686939870042570169877938589523406722308773251286868318304415520818632333340648851185533466673226916437748661984973777195909624043050321896399863305571826241158459736776333274139710502031592962716451514624772062394371554548833671772235673946792779847653207994247087855648235927964461368037257840315671173520015292008804896463909834099855754996584387073034678532676409394188278391820061037202956431873686526239448705739613759100495031403878878383732348481093443142565325305992741772263970429254551896213876055805844188657966788046523521379994898367721289876033920134068985686530967424472636858609604225638201733932735756223266035447403046738854711223937517829581639721989948728481690262326054538414286406614851566752376253796248003378969007035592419062451685414470025285974202956654431561967215413195181034674375868384067332124780847125011240373366370583046543033980851025596430254071525364438760488853738209736097106382886551692371861861989225296422728400968785199929352046180138037969434095740160753213356404119507541717209845463418319532748809382858960214874193598745654629102685668871365513825397409036441419041293547343276169641195526597803426367484305776265160519653327276695034786642767620286351896991497774029044836851721218558377725384457316813479021654506046985434734269132708808120617301850821347943908627169420989029052849869620507090420937773765557919409472408306278293670167396283517629976598936422088674483006633326243707356942615240198489579510430453254381396069594847159218917663330619071981837566827816205722657661008973421760599799250331953643241103683341412567569153300879952686635071636627141806909238817943848168542492583309880461048655956750497127116550120005804689577831922920618494477746977830554260150382706986700511311615463168254737575766889956494850893957956038887992709416439608407428320161728537010282676783400755901490250655339786166626925484337785460802256628392853027599880833521240639658260351245459063537823311478563447030716332098733262667033262743079210869049599556060189855537807989085063196005748703468019529863924087011837188650936632867728169660547015576677827090272485643528180383628760870013978940314921271907149358141551576782895172334430769907068517647881105226827493818084146967023529094596308271051851993842095062753013013397888374079035438912877631361308260519867133284709057416152073449668032117972362959415777235252012573815641969008381922008852862616390781281875745608275272482832828332860605215184117836126003450702660332765183297707548565431276729530796539769992315994277490335761944695010058041313050526090237356250002632118915208047386321375222609035851361388895323542440269750989912143151152525036038774000964272098917665308756633276151037810507972557192318809516253766254442255771999565302863753007850666012763679039872288928138005551943806536508110131156622565286842397371736136571464847451562569672683293219677848441700723376420528164584216156464507598837237803482639869079845685760958935766659462478536830867719194576160602108131794168729775958881543999179109819896079753634073782064103841936368039767916535423015316390744136660770246503147214559545241114680794053718749343828195267805276889871091667171905139718812245543792325954928155114530736780956673530870494081862600633283656676559379025243265502481193124984742888844007126068716129512445214054342881916541717404719948014854854751181840465301144441004200274450944112234985361486505174531455108094871061017116889614356972473943356190103944688695849174900465608618606875790957657135451067318531971706976899133770570026946563888639122788354600289789338038428309299470877558764810873532854476107040395084537651808997331237782202441344578093605541528982657611448453125594343000847914161013077778404967033709362492838480838096169185588226121160908515395870896329677738666645625827465142954132854405076615582105357277573280915699447439277648661839189924426964792246796912004826207407322478117294833204570283920813140949591865108738636363295864433028360900937404563764351957658922962982949814049681969274919790971110885037957503916411456209928535056118450306098820622759645756888140999761410119085492341122372756175507769112213146462225425767849355635521597696040207341829249442430740043343765154619971409883095066066362444615095737900220114953207734497441619280519876185207607377824483204390341312280527024275428619548334317794331240128593924596161306550088646980035574361313707290416467046953996428510527390236979920445083674676312962472256659923101005597052337961324269150026257340586770744635044218571129100305134746191734166262362843245743355765831701684717009502213262909407941409083966293349717105892286556664618798662099662693408779749990732277517598914724843042832386975237697127481383276249614275073688651117513488687776932254664113477467328883865714157758193479224167947234240806797996230648442594822134263983770081550489654307731532629426283384085933736856426300460236227091603057798132616320351817942016698101556267353175145068799339391565034384526363862754436269785907967002710445526277331529129873253996039761097382373137380302220791878733857739453139831414155372561472406488027689899310955284019768225999824727826659520487973407716679729101199244823974962298117812276674491939374962497651469908942501699707587391859284326368963745511871768244895234278360073937425202369268703523836451302732909631432423194535872794207944424203311554687592889864390977051530311127325955954938961571560716714665178043881743309819267788670274918647064869936115667278010718646994366064248714481082364393527150926518273899227211092718480103747692799557900008957809520327087067132857020718516644228944600847157225217382134360316301381443663993198224324442279214138022346077667848359151694467556666517280548812131535069562082735142641996374244676346474812423248223671875743029793307992415399732437632164625148539008106754046824632973554314169933122473284553025768073858851384375675240690454037459508136974995647864294574308492579653978948491369604799210397417779377845378185279320329427165045371490913745410497030827734727177400782401677750443373450325145233551004446483817149674062858614304408294218625527041833715158184801240281946382949400122061124475934970936197448255044084530180027023859058614304178081811238710722048476016337783588765733440869537020442566828152256579169495041290489579015663158779759395686544864179929205929470812982086705518996055070306287616002626239246342987126209418468583064079825380812996804780110550698152895691699294093529584603904003433127648699707474594608651971944864230271777297049152331468180737983678529673362147068783486102838712909609186528483848500688176688617386672794566074277060650540903891583141018979000930460040691678896731891577187039284515753137723813867519076102076209484484534857415437826322676054118366173559082244751819071158246496114560213609229428414020677381662048607868921268520213942827135766290040374896413911427846024244911225625023785219248356689129385107579411009013680480548923055701203349397575867317167572284437390964918488308287684647980500582109114161542017528228445862780008201988788426594449314346589774520446795870584954042210014281495645041244853302441050936078289427411592793855321215481408588039378386124467225707136525360556010515179701541269799328135108521551129038996665471716212342900042135641760839124131334243072404849371525322419573943177602743968162610021225996083904001317448559908668631855102975774881106229303026361500733522927852182038271800195081871463936000380598968884632013668660166666865523852237439232339117414880560046819845526909403691897352649136728188333100744348342936319420925690592156260305845689794318327446560725589523377146194432390077499165973061478096733165885313201646443044405893359657862129358983261502289453445541378605001061944161736556258630313882799058877789529809807790755740057115726986495585560666962653047792622830736442374027763681701789138289494767778446885953093064974696196842393118409747094056299631440139770479231103422445071328405736684486297193491128146932732162595003523831399959438968739374532802646847173187102814948635971846812828277755920078649416500013894739382856404278804360451355784842588707608818182442060650307325196043839619192857850309676142985454431849207017616424476744493069066346627267615166298312024476503684912102810784984151206647169474172443852054463226560189421701438502998574423678911322912300469688533283943549223462380526890171727958101971342532458708473250854667658198599685076596870337596497849737693042427012587705358264968850887568519833596677667372380227472129914779454735557363342815371490692612524390016800916201748557394551325316588556199701773599732160054097513816412537347694532307011592809317576109953823237905303536332684035631328854903287307454074948715674300102908994853820146911449789921619963776808905589728090567791018090256789732006375794157801234709449745270905234905736525344260953851450074921640900260447554672359078525777774036458290468405120122539499989961332801758261822677951558370454725509653422531485667827526840703742793936477225298736825245298561512823068184181998685783470479599232386635307809918817738427476765195446434043571765786324569521894198703722356166578419678624321455314024543990477213132262366781814664534007406685450645720733011669967541919102027230083542459735041480805492425287334765528625047384845357733997117840050784079043508865918003055206839741602045570067980427414279877301107465682758416040386645574792676660050743066429411165270533902835925632400549856838616535794142586982334287296225155270391887793393043667100329134435181165644935665815012083968697597327115976517572772205244499285570545878266598685297919054050283627281383710995143049833148791537909190114851617211223446009612711382594176847226414518441949710033717216699934604924965676321267060204515213672155012063256904012954254132045311920757195986358704679884419097053276995920497933105291585334483966440837743407616846497826089092168793646698769899919155914208842889646943554457933986162765949469962844571879970616098131048674475099567913419486569957244613466499392107157722108137175991055145322105087535287171011865866641625235479289516720966031227502395976530853102063860469576114204496079556623495713181555940738863211328271122292291423869735983835261079836940729892898458765091752228607572195975315241020024007732945964756761691204535495641408552038187812112666190339276782479644648819993511999344716843851940697645963312892386478571690022326475665422186415646627341552755584796084692502437891938424972727562577658790702490236413644208547400179398359945626339982879920978240148745581527731152792325645516687470927426603564447072068549470163120182466969154821565954386604992307966453151895515066273062202450322378203507178928625826444562656138769464610854607143112767323784239626529292995032971763958968854588992459223060727469288075224594813305577599649439641576244713081532882874929157252448069033546448663401951637563206613008685685831291824690748444577753810978408645803427157026388347336232777060268087799475746811181484208200773675279128773160370690717927090710352989818575296415362939768772276684030620558991149904137913438826177486593692547170655365440497157322819721572201199711971738469639779156446174498312208215985790062801251366952955276713029113975798605248378857423673594276495205737195108772303451135600675744567378408147530319308189229209311172555189173082368724149973040508567212658901694920116511466545856395456318820979643372494374073626635173340512863842502542072588875322734126929653228788649183468613288632119966427167424540972429039166642052121077244263570860039518558371097051369124451329804426556285374875454461334896681763911808744442394995326499222784489510974667145258020591087199125147324526552571992930216149006188363947198768881824342221081265634133309908892729642095757392762639773074523636076698133540683821760661839286586556497191102643097594830170759788294257379031191732373177892989765679619716472863865591775518279992246437907233482282158738015950501829747077562464600044340056216584537339490848218116950296433604501092371635146967325702476767183068307970683596730020324181069162579521908444470108498552416970416149709681622524814139571089194746263116478127778462591570549292358422369306880368839697006920489134768020943970267714151245291087903374598081446800764299707961549090803676408110732360181543267860320197916815125312091235196851727189377010717043570841199587981903399631223953002969925276133218658900418738104784071516487056562260647861348034354374712951157174287373141860982668389877436941116907388888388108611578334848704464841508139238134145696009312241855711860098765036414216437597614909101439603857725819256262761448389518678658097532395373929406704372820987818942641661421880564357807369633429517399124562047163927452510813684325796564821477606478790745291016198824053329521462580846049688718340113983859267813299738075050603029332546063669747624969000726729786754394729320917836041281809713294997154319959590082898961674542444456652514015404253696735784633455599568984530161682503988297447139735457824841969082918948109690821390899153756673040817765974497237567558963614263004895348330023125677035618460511761561717816207472717215927303491446492707635066655435169841548630523103027256112566538266073509197337024629481737350804361200634949640072833840786222453890115647585190595122404397694612426901168158114260146529552480383319389643621438559225982131937374764586136689926116765267612196067311750144789255419214221776446361808476748236929887821126850578821477765268009125880906229685129729502560136720818818676103177500890768042023993474113227363694002167918772129281250010799885835978393585536247244064023920666628980293879671983668192173084079804733801023944443921095779954076321257401796718075886090267940445481991984401799434976183189791071313191263321382100197794717815570610800365816836006416497528867455160256349929412641040578433228103313259793978647361885174621509013826325200449384538730474415516665950561304399549482175279890238656190938126730940857646867860039466167464352164850449741002126633899243132726512379504868785459131844098466706508381909781295866180605622277786788494056935109690365302207840190217685968918623170700685971878597912491563381276319823349539270018259907479370800825506067762376830792937668045293795270821494873742296453464109087661454716553118078037901810026903514450389938284268475957396665367862790303837050558564773668584963429288783955753670993176204459991530782716883892239244955791255524025279078565837747654819756243794739872831321078351646006780247405691781613117629141179779213413739620331009949760437450117428780089842175363759084837486628631527362561082337579064169059781151332438117364648818385668047523915173567628129327563159632122714594947716585122237453186510853748784695216141044210626880631368129310591018287656539805077624060945502600746294801173374900676797416681909354412470136680726448176321880785227237095266802535993424387356379746537654044298722758287424204048265861767646267867072035874764578650036169628652249377887788169819761085202980209542600506105924236503117104666939036157679671662002614652061520264210700669780586619943237937765508530729616368693828664524760816837476270969424170887474214168834129088770863142718311974933931303801886921763252977204093654049311656565622436359653336714755583859154984104437027974604870223631021975453501829521790389153955767649769018165164285109295372914118617810519311712236789226400511712964774256539541388968716259094929390357141172266072627239112268096720705585989069947276753442679407511933450491656495886091296891008406857687748422028918713025474671411422841413112261351938070582494522149089989846836137153032202552318724668645395829945498242253948486423225218078232439295689328421712345871884303947564098209583082540077471213341930781296674826406817780442541861353452389497916879975828681492922843065745681069736652553364375362550390907210213940638334656978330858218972072103292514297926492957987966588744428576863969204898539797434367859226621375341988517379756972760880705488825719503785707539351333030065781997755885271483975930351348782879951387412731552155402731667461525936481621418747464835292932990515588688878896145544462538042769275690513090484503369312524601276265141948231500376711532475252567893442303956904775944600551645075863607038165428714111148929534750973151166501432276631633092642708935798438046633983717506238650720139270229167230149380469558361976224998001818989786792218523215712135148955815922589246350307566432628792628696260725897470816879614435432900528777267496919444625186156228842102678164220306752316532028315754456535448586491133952140683009864583036547839736937170578938894054357596359604658351479007697909071180928643987991720363127705894262851412268249302598618123696647962453137705150253367644804668922953567266521594671840274425587468615509674414056616482288878943165520949970959864329047642072045329792743823926763817712906683692643370128802456695098295103791773521881020047288788996989376540897259776916168723461581484939099330333039152311598306472321008053755570890310322725588220308649953002261078866769459101011225372741502777361241894749223988523647750538873106503042072454349444862145887344682416293055665067544466756127259895732832974502072998108880401968273834828523929720474162504399091715900173923484924399787218452791444324225273080521731543473537325882626964462223981472665038371801268082922664797489887365612692313868737625104471857670426513932876798247274345388600605925878177796731372782430985640910256016805860622356473099134695902973123128950565855304496806443895727183816168387152636835525058165219573113621882872904888910707356199480789056379345800051103391038520627294129708009005754034522327048234100155589384635172600529487338259599269327711140486645617567488299079083633904575145753761689804502919359065785562900257170635751752096764909262854553095710178966776047808210017828510230125257081715604565005233988824245423521821150486782381857728895614557299926348656561864672123182680614271520745262762621887102928108042070877241018939157944810253678677832207668909802028355293177403637735017214138610024676538898572578860999407760050580481565450598410425338636001916853722081362159183798162204456349560438111959814981775272816981522333466195766496894955860775857064052657210263274902591473872293899650955639286304030744823592687270759765880961980383842256160598452458864491471594163908942654356915251207782072807251056996543554569349751972318144923121971420059381462085727419834904218718955651518681609995704120000290705666749779784910895076979513120440186390256336190383898984077803267149003620951707526750129126530281223201029967985894923844392759580818918058691152280747010668692152464847613572045437149796247209275430847636796791702185124988691379365315402342346843567100815321728272177127271238343051419485283380745583816865486465406655783848610095622707806642003210557473048548669166644124928043996574286387258151598789364211263165801648880105868191618421041688637002024488841168611363291436114012756134442497736259084532532583288165376769021113686700193766987070528348168325460038217617554205959954847148435471041220898139500573448338252635078961725451760165055374494205278858488189062855676228202552998420890801018990810237646321404545330165500731415218779270761596621769089637155937280059420995566246432521344363133269007492137226678806810301778452070160110394924363649100489522527997089746517277334531407352113524497766320376583584331688820810836924521560963312492663757840160643762010325443309774549848201417951551293489218603809392784089204561693903965926994077757209367675533014074474084530108873915522902071318932744080872402522464484057137989642731023224431274526889319268812219189695461802080259297345229213629184063760477850529463035715497606397023549397065763028699457368217281506496841081412185557867915494607404262541069011703545775163274308954911507890781126775835545813039328555381256461352380011923060553379617177067862522620243273857181795255244867148004221472729131961906642888871767615634175099700859513658438341814835360917020829313470932377970119562322441198577615548636391455559611464390138323089177181779675729710041395996873982325520024715180246458843153834267498084194440667924440528421248558431576283385532115168337747772789257225999375483955384991540107916603918881115525722349563601140391207733176913368468263742686939605007552238843241630398814968237608004305582179047661011545554156534440898675655486277481173774447945606783109165785771871203449198384315192173040583529770050726086314590616168066093594878946346747008418982540857093671042641943195933300966046514300293738412785187336646162117301391353247518666332571433681680094757150629853522961937520698064052774856297786118671565979774735254376001729553964481368207700102920473038040934983373214487192081299332106599433346103345098000360919307508281403624392048601582516583916032653454797308065204548538400266511905149502060133912474208582730907858874138977792772666341720307437224927312185099099675425965432519174466379777551958208035147483196545637608655240536298359205697872180099228223436705387687589676436955312825044031290542884406883137319073443851877321434960229887214038579767473829710935749058028316076753250273157487283846579812182300293923368483667671142877492526636097392230916052517776492582614080197394650344407359102944530355596493863305759450466778911043748229613107544900116835519167681954220139028231935461219400393487813239518452256912951531456905461276749051842391020154992856727568701542097009089353873296522884290715670102882970338826060906066779658941806544716520408304685214681209318148987406150029948104758493116778446511306592284766265356741263389215117063719771750679095318897215236409339059001915064515486176188105370686372248445702122504741986500494159076956511670601637652393552785649467738155951988266576882138521142510288013244958279334785114949190160402027195834645545014087004315184110723810968158677751991244639802935086968929496669129818535938066196942313507241216931220835030774815261353807620945146749486731730488426076775489110587764826662571073374860236267331842321964119228282776764908407984368847179724979525075913244331809302911532041798223579895168017219234867793941767740975740435195778064190034057624156470206678805741545641517021776572853664634005496578182315907713312200265283578931097948352301842549691102728472141087268554591649483544402051567571141331063484330976880430817738046954441011769910978562152068503154353307314508080776408434023514684260085042678065033876585906488081865033070021964407468824109485468457469190764314898922711076459830236612052202034064608676507640387709820246767973143240517608430753592015531178020453957418017521472688004636752092418330519322292884517279602506060336455408661508478697710245686336203621344260580618178077889599115739889546328059211316162448181831061478843802662046975493929770996723372755190385904381414676798951455989168169420289790217510908993217150826958379468577974017812625128269143171649938351158647300152190473788422306792931140489734329937099702079612245964222193730175111408146488990997628291277931161904443915774362767422106186237503195303395430421126978437418600107490621743421196718701363809514929950918022985218197928034595958146228322092517977699791624268033102385615504778628142624933235756811845285385162602986593853645634684512325600660404340429250575599501366120785638404980961436477695647808765915622837853286146459327451301888505991085617494797247922694013133900459919154418873975079289586358550227045072822601409244353687998759303747964454999704572137783987067514316319642664664720473140880261294206912478584020438000679213009964873218723951040037254753838213692480725575549803489464176149885368050736230055091852266982667198535196271046066593417627491541909169619924403968714930512966708765211490008184058344993464860833831994147011314609873672047755962625398056286941495179454685957747056139250884991511668054529554894513600287138935517283290758451260447994511362180088701281919236656769377031693954440406215815340511252866186911938431359946980523056057288935881255777418165279697027540068864080403615609088235146163598804790243656396806555267737736004868007180230186936920138087075857655004218723112157153465675012406774144071166367829682205105936035164005509226545144537715440613119621373538009147006737872327541422251249558585224960081627279731566336054792704486079248662177205116325456642012029731136767866608404280197304656272064356929386922165052743970395848356232069743636997398493978770659999253702315261099809800004368170384869961035905991535500546939214864921244838365602795282270036371200627688033140277910089722652079685238099851297811022277963970860898172154713648501101328533386515926454031811805938375669368521241817879950330785516505553382310106101466354516815982822051967699648135268200588229910179857478124966261830044677453777204389514234777586511814269045906472482336642040681687307737218276423339443555727854681411394137402303491006760326015064181104749388368915598852713512451986710752442118683282095357489956868581607158938731833915850265542325986200802830842136195793755576590018672476410751433288243172688834612996966328376800839350615187935763525199217926623446693500401946078857403002599038490594890982471056800475972512625746427022521763646044332755256639608984912179929685463261170963356488778737717838930208044111365555357821621981944110142452127586388983171293937587412797930738959636509340148460191391904056852975000890352434252934685425911178626081208166475235171979219520636118972154460993887906345375766266058699072152790726759922394770131451791382566236595051701924079444984116616142156944515332152033114282141665894940923498752863436495979633509039143332974910030143727190320921966438151675122468245941881633966260896184581805594656029922590691500136310472615203192125593048498645313166901244681340531188693796371571826749629283104714019493838185548456506256303132157211655107172317229668599362106338420553862842192686860272618846947877566077055424359513435261616937242165633143375294948094713855341302298952393150199807331853853495608148117963801546206658690929324437902386587422137582752816186250176967972027842814163459055568439224195053788104529501375989519905839068494503318650103660514021403139646857702397031504946789937632398381623772614953797560775409403446159507704718359066523537684422226499199187420787211381305696498175753080095991658825200228934214064613636609739501330313784767705781448712560320502961659259338425139750109664268481250965651681227526908848966727586846073395812145987698659658188807926685655509400055785992264633609383199805823292589218929361602144674808821916437296945586717941113375016635784912775430734997886781353329844832795374346415098643735486155446971937221513410277501144685881136809681365221835672890162028274246964101384803661495820369372116506310653030780738875453473576056985035891466092261540347517463185976573779839126037161693489905687694889886351201882840931179774087092824308047287465790365557460100075791463323517070987800393893836027209140717163589691664162025442536747388196766810132923648567553296192764002653999513428842730388589425132366450137926451554619723211573695341708743235089264558386940469450367034827046127079797385356780420047171044788278618655203272680149183269506707093619064041364570271778516464491003203420513375966806852928541940444951804743843935057007476563811354755799993229078476227687527152275499358562302738012924237532374294017042272945427886948299070817601753832781395234211734030000817591179237610040525884896934363215859902675909971939810421775123064655372040933567050856656979379451575866510913370960982806152112222462761264218286984587027889798378188166835535739458797268488051675738639834794547168564302634756288400467331317146896938987468746334593443466136698853109752443644493216184708800749433969649725546232233059349028200777113983854871347253972956583512164666026797565733001620180480417519940943041353623694409439835396048377069266502957150081529436802866249793930955513719045926836062504804452043975601593715121614642926340004025482839741677333505083051391862761136355139071169983641140019888970015116745008297960530457605610770815816814640500677856511377157268118451963114916547397330920891259108964221700649822428348226848391204923538335637636721752334637118315592766075704524006220941368962356449399898894834382979000709116604566845077104465812998915903373637053862407244364406951760572369471402934349285562550546027942463559130897445266318708268457273882288169876423415018973663467552592446147378596630088695545909052615234504341098481403366587808058661542203001622668249128649831775792185507943312282217954018018392256741855408914537639273788658284872748904499703766217841550658782255238431505811870821722502257301719662199191005203027216286135450079504161634594792543675375396642070695357324117185532423195229024027618066879522631515233170101892325375797409683649289698547451541885906097698392390017152893925525310562440594628593595454628301914513937989461102206615017081961580905334353916202546165389657205646758728433063402006608431199705435134617640969088468904336456348867232567290616198243660376906204338043022715621993796062081044140423317894498867622109104918934446854660597851656824085151515603403783771710753486983445533089019321355320294013652915420024026783252505517657775220039898168921073346883200121354762403110217309642844258383841334946666210296692689738782234408344931792011516328767167337332898060362001670407022635099764201009131752952104398533094599015046982951783270912493428254148795327593535790420450409884266804308891720306981907992127869633080299871653007899479523205482223228677815577514605530810849168961770985505225423467634075506137435107138055821585989449164614811422153869458513596048921706370367361953677708442022624466011584984183341239097535467713685896538349626151068824257781758821489831175307335559104830333688762783554777713163575498309684987905901684702993762936407856496540643096307906966843922314875204636510179979028377260112150953781126006505911310799411979357039485212012873057901586791595343640988914449617340610254333286094289335564808661669477981943739687377877180411237781375073074914794923567564996660588167443502126694629621387727260644223101340618740179187152767139294553086115152073268930382273863495776810905269511791169074928550345552438091197464985597286166662401285876111854995290454474010841415124991706031949618940443808498025555975968440676737626642316700796730993814809696631664360124296824898940484992050865331549306371629199690847732587513336727806962945211011463952417611032736362065934820263009520826317301170947363099809245227602826638856424568977483462600543022889597499831894915510396503840939157093244839211087610291825587306941569433997489979394632379895129048723021097868420935075174297647527731084465340436466389262860620496827051006069192197539907723215570346335283416110768400385651314513344825684973726372401340058542881922390866006085939332979270140710336206534215901643519313523746183386854564598091822291438148179994214597348328084727511640835420348958245564225603686093761607270803620264333634341666783024136086493146500920704574001366422948999071584628073396604361812984914056219710753442524423847275889264450543792795804800915003650923599948319235861722966139240083538398557252736466988209452121326800329827497475725468204385447073434727158047509385546463770057259201365013940631642612302849365492809528665086971529574916502485421771241881031813145694614199922636299895554325429716997641642398298458669162508182873851829640177337929139769089519082057232154896916078459318069071653926104087978439854583408726231871653478010399582646410742806812879110186114076927009910558632028057882318083019172555469249950372335029879580645078917329070891808033910006077380772030848096697323203726892427907563784683608407184825780245275017853875240841090559134930554605360589628838827548372633069005011601215067980409824096143213249380081808310305306302201984758036855445052691595449381582443072209783803584042955517799399711168722575497768125344384939138673168830918237529386289134539951295076787632714874795125801377714486330596681447555408977104677322199082933146957368327084353023185793062195910314210845605990964780761263306980265247894551890323228002540293763657237732338173093312289451046266360199548754083972224594093004425637780968099258760195846031539508991760374834476506163172913068551579225068265540299572595189085161235465214609619049395283766696079906154378872160235081981210208617479029089323096360901861351196006923223254413034751800752574405419158257760258980937485704290563561399750778842155106380694601199224927559783094523778845617545243886999439558063800844712245953487751341449961125429366265644755045749046775268685551345663082381937063612208095675829703617832054467873999537518068345734107405540366075605653061499296107457052884632616448687664406980784528243289332096979293929007894260928826481160997651110309291647438471565468185534060749446537947620908772303240472397242145724960395280262454319276160181215985789560867907948303525494205296656025979457895731667557581637707756588471001451852897567388550204747518315819101778606691606920618984826336765552630596735473880082175765787116881388152100554481043548001838142100308387931445875173825468341136802577897117572684254149038705160152444641040405568715729700902143534872077471172767221720758664296407790082470425346295211112492053020502119826808482750965468336020344610255270628966171248053589348354259166539650549639116149250959062578383877138293019882306687726664909274904786495421812681388318940557763374255887551387646952092375315855366554464765062187706483015986341694603072550229473858410958973489607567903881548440581177928161231399403103743171848799951960188566626906432365016740169601673926964450008242903778007071424450803176614895652911465724368551551886697758471700313499402964877427348224240243261833430537284554883258670913084267460768355039992846258692018349773352672370487976528670446751057036639204505586019595263838067512544969892610891332151281334008350840557676738800428560195080535257936782458744120308632185833863923571999162687572184488437199804516388520110176666369070619858184708107420223220707016480917964598439226610819879307333188876895268891864061093719945198684128416433016783838366516798240917796144654173525052374680025308248281238168787808965271521578559124161442260295719361522743296601869916871041772358549591057096902271492410786235147006576651390489962373944718810892292183212224544022686103011707834998010357303010801149727229373087185409196943700104116536416882602647091848177343195477165814336788254005684691202993898539764844466468607691514651858707408756816645782753621254149829956129579716490681548819951062900935638753705395358548126242970299533395626496045993828579364013004013944383037980313465549184509667499699022372622987967466818197296253063262541975572415542841262014024499473829562745823599761563190450128297444122333313299849071911836307132229851867746926364301333533171885055246291837876790573148092031054398709906951619363884189110761547946444071884731128528138725748553616631909615402145860581518387755621498194041114874569000641342119713507911994555622252487314607648571742966122833565292296381202568154928783103657956742677607278578473286786622410445098673148777981474215383093536470860309515283998142376172182214951748982111994054211554151198044474498484643450932221176411760374147384026150668885176901991127304632529753812948710538829929982941408905302156510406376241471474550862895188156686487816249757534853654100766396165191313255065732483130441662524089987022586278891770044752081880896254122882852564573305690402394411428647110102817070192415317151800903705075115845208942040801167520268307700310791711589180638717381647713270739795576443655675171954436585981467826972675687073846138553035642132739165936468842240409189630711158161018531197859588579629118274131339638057369903055592783875053721226888632785898764452181313449065382736281163485501973805194103468882164617828329262585623110086082106895991182593145201472834992374873763321223268854163916600508243545750537446772892705928661392600440555330168168101193339116601929496765771598156724769617214749248381838513552459610963247246110238348095300125785374435016859991618555170887570630877415141462314451421889008051845165071647373983236230927996102655816130710112645218005601016681959178630837176187933895316850520307457560189408048908800388614741742331355905272034299753091115666142244515479465689953486948987290586644520279922432446963038867534360187983813179821650578759679242945195104414402345628470024836494906663687474377698341650158516986798120983051155298913479318455588944320419077163776402825779019130388673486260251208690024771070303522721174343114742173029593349351183635833430277334423876525139770961673120689653895884809965715821855607607032644789895282767420300383845099069154029137200163426313761800367097028589609165632996748980956652807870738814599063304642253112028320966643795266988552091900386887296558324166524346195502562795769355190137779849546723595770458945720644148606492166165195248258006843477935675393927518136581607859762134779456283222902213218271624779234262345838139354616191009624957453647457083660624092607599278600352398582080256978094709935128452159119758286097978167016149621542248652630458683462468260510083781793215382234619714888422621439059403332049103469760135753977693356439890049260985902723058475142154733365762764318023534380714882778472787527096085581200108137939594244451729829769777573436111063288396218693589332141666054170988434957649820506484467623787981577484562745501397488504402185486779899239190425039508216520905452991739320353292975876841886691286158654240306629330077754430838041135866920454113389101909951711594124963478177558916111360152889295131082337888526252711243223561400229357822359052032600837424495242973583269593192889154692261492238642396433955833878642177650490761097622710063222870365757664549041333434071330825424222458533673859300996262124690864687972322706827030008188512012377210104246937114152254976789912124661482407542317330140132889200842343076044075394734104908891278043187377024455009810673696391908990958823023378501233534369835366356251946836743666684133564318609219226376293624302573734326865496510977859714749771578917290783862579014981773056031223765116084288717141827912147740657573837660973377325722210478414236409032488582313374432665233279907642991843003489426212661363665541839636887719360085502715849131303792608214785321916971639147553856013155160206373580021727723069624371153138834918907345574267013185660744471538033791258352911399513733463663327802972853156884625609224142668714342860810319455349129975020209670306081984967697753311466235999959395711375968678191761876607177639020105378440649485281932251062283186450814847232413877386007931347222360891574354715290984399520716104848887778431634357870122737651320390148886601030236071066182245354220989133446388809404276410481679508552031065110421659153694921294727655128767435945168617710471206740849134890718293466650132477246091236616297691612204184195493869546222687210417005591895615641525975148124842182881592728104511773571172660564305654692390540709792702980702187603788910539276383547916077901481296321231686457245897241367922026196985323633796499401190727094417016374751567326462161694417717354230120299843202013021614710589433725893527990528786042106454577590899975794167950907204272832519435828428233591714859835854226342434086553020721477750458616597723732880267096234777607436674621775197786543020736448277379600064888016176492105072601724607072336260664473798616046044719006650908530768785498017893262816359642940241152939646737835421560220752472979110896585854477678267289443550397708327610294937480673269685570202772028992401071743791099754155321880210478910928128511752131594286565775637740434976202568689134511479233365315056408405294199427245219142327871964132892052723211741501254137030891163428013837154660090301074163767311049211140899769546095606098481794912558322311351136386254168354894058750615481245481021983844012023485406843565777763098923681968416420007906505897667837020356007856638795144033962316619855598966686715385243851000667035319595164999114321034161128943378342106911257599069621413977174115286803884202939534682247313366049183291141372621142068666416601262341207682178046329538618378174309092408085257245139892511039354805998095935416127149111313931418023075284191274050625427658704409435637502885873066220520669949699639575451541287468858758384939070529518451341011662302679163933747998486418581063753854965197331927945115491935925107382180489240511555361719995052268472484623649779531598896975343337820053640944814986001622223037649565556772737703949252207062821024513398323459878558865251264352350220737393129049219842623224750925933547679027290505043035826614663723843167845205359946757647959558250549357548196174572036947058544403109058940396034874726846492131067643228529187473435344049557567344385189393057307773937391630976860043081029490610643770112393767335010267705968679867062915791427585079717466324288907898954317117794240512464833745108284549525889269273377258855226633008839344378281616890881447694935469753250369701309408038851167445704677608241416367409319090427455588675729948124652197209176870473483920100606861554839791871504979782788832173688154140876957537023116902406081691328805456222715506759554549735903901159091179464611248940066564639007834117500964792139286049986496845140990213519619980180091360009925321205732213428360589046285664986011576678008792431238917034035276026748984139901166963862659134580911113790907468209622334494737069024748820146780442961784120168033348499752944962016397449496157338516185900027813274371553199818617262401369350790651869827616571933924524100730449653166558832274859598560159980095314316084440262449126426661939910102628630615447621678954435641346686069516154103334584599594688258839598665994348630677739660487008914993860241896540130267199587412024773248637866977793897402741843228039978202266804252080110359278167518021661466495080526843629395984008128383251261504712756993083612382069507156288730619550241481025590204903968633697334175033033873660110314033774017024448217714440633180859772596741253318053663488209962202678616239427104207006108782567561051562521406863770976569098759609091113707376489619631965661295901593091706078781443169664800946103270503110196274430323296958950881041423631808913369588348438119351205182016885676877120043890298231312324394935982643626723552271507945500477294265947725313482262545966156469680356142663593880300488206724880457563362208960127435869262777425465266983144967990045628182067074867491548381500493786312997060079044470736242255027007933669029522517637061745756189014943073662525696627645054647047759712390319196324083673519423812721579271823901966942092253753718089329602355239294293940837605961353721472083423820575553618641433124729305998476131526182185188725289378183830021404559153300935810329008874731982114640919331895916110302299673657999246292396628652937313744467285913451639720870634397301602547709830791740794434151145895519240199132988164089583356271220796306339590557539380021271454644921321306736977815835645158880598475522328719250275225646020317276276510043108841107723273580431213000690701085942126798103204766709284112710320087136174193862002593127860627789314397642511845379065435547797365377191061129156731625739036370268278106150042386388432061543360443849198434964669380651373873116056853368424081194763467079743767897999915905182259554179466675034621737100683725433916562275269924754847279482238012204753091278194596823013851593363052018980299051340601522703544352425848624199058195991377470905487341441984688695173003434016642968231460533527200054034060557754659961985215921902772795571959809228588616827598758208642679579634254538652442456705170398738517204470309228248755307475054837387023680888913367813153678635423221201470153049596206225271461510002823275166708561576415733058092779998824336092734126337287684719711900549959366695186852969155128208881452845814814235270987839540351983954053648226357863811536590323733450515941480582847155896139195848073095953058296676532092322021660378721763552898002951172738003909207310724498646406555718352209935742658199035523572315370608799999364634332949186872329821892438157037798977784185664342222998025398753840653675933554377020065230553494290509232959750608748265225221639844966005360949454567331356544074078667387360850150957573246831901227418828979854550810817363150493227370913127753858589978783813884912713797274380253414208334648821528830771141315866155623994821149955792368676406866698426456791737284651099705993232621685939795248444474371792653937478128067702088603499691782013883400788575578994531173825213575660484218365381158623434695986986920916348964877315101344416253505611452016677314979812752797307710654077907907669549058069383428235092179452837812836129955430264685424894434924641261885439781050356001612193861598564140640327057819182465168805667969260502847892317955622642029496346553244108358632764559216661255380845898835026215855268529455221320635514951786401897896271784827432614995235859395495734868354621984803547708394294680120614373714138482524363123197573384041611129042835601810807576917224804273975180421134735261931516060960443628916213350078856636601621460449959654710047877730725751806044600385525802630489404660369004063173488597935222800182663198956041071596192715364141813253302197200850108548015400230967267199346265172945757911290928069799631391737392272909208228216520914397658509984366355588771127617362138404974818711362334354024044695617421189219807509935840817429000123429509865250181805481697243556241831998157049122327617213351380930440412225628304787681211655217623620938305815901335619178072869164710308982580187545862331372177919151697446147519076844091697209769924894143590794467081575255739405779827632529098908346447229949718619836873165686696959446322729868627779611516808997270526521231459416240812918801480568854473726347657993249746044585058717006158552243435852852190912096222636439658504528641049205461965414980217921022247830748083676701050923302499676982061521892585985241329746189964770075186119840534207812738651005574484518666756977881337999368730721658779513238825045111306256914236915502375377261124001702562312929988647697990957595338042387265975959076772842397879490790020056123834673805677252400621376884429009385561720064536582871832876426696014321501488198840538354635516428038845925409151315403516056365294152417055593257672337172045029240389113472437454110881002036914197280778545877663658115933909214628367770234053298668228356232286603499964227747542586642595077638363024931403434671521305148981906403740218046640739580085021721042193219127454165106924398628078339567698845446095877827637908060107756978288408681153311533343106204175735267082109674578945778140905491448514685718990278355058917808143128355675083719644476151538353413094353734855850158391595854243408854627935094247352935602837546336313834996076482797582715182683016468366310081172769970435583103034709203289050460671381648290791501804462185786098517091564718165679005415182686028223849364681495076175518751493151955017653849238895298868535461926674439460100860776482120572073380202654464610209338385246651728598813272030123510934309288933084718038345619541407482065978771995924052479674232596677328417853558028177312020191544564415962968874164112937348498034571686154385521279089670685326387105833054802569459704708396956018008879734767620322316194465008922987961077164125814921277577166007208374311939481130972602798998585517310398263407163229858404560104913096372030951863091981770144919205008372584967846621945065827737696171365221961692115707129536647327870091700557293045530377517980408641674007385966933197988589376728765087241491849920793072875354893063475896498274290082593626693618849667071631687826142328072228613465083720544839090045024335738346944419130087550120625509568291962860497483785489614045530618738320037376056398597729257574055401973168467963992701088302974818515462329362010547423828450319287915141247711995192313022260816000105675640187141172151558573641819633583576084124788958450090621301884134609808621751186113112378597948147000154170211143953136315811961417437480618011215030293191501058464941668590733356725634524226735631232924756002353743698672795945240638953920068651490681927857408922861355828911129788710302584572198785924460360461240141328260770989800245248419006051544699738979315536312354755565343505737175353558753938589607657171431832052879191505575588445656703231017990927388157694005406434409576443465202399526538180553570160327375360178498818969554167292936168531319727372542929483483401742005773810011879839746589663544252608316991748134232958020841190940691441358797578167975259071263678125242781828797876354779736800082240117503155869602183898951688274653709134199135100624330144302944302412846006400392813770099685464014620921007337914369697219784667863524367910860630179075901588502852630677937028583335185672793557829029361386081367984602836603782177929811696608016767465152208423353392060564895531854587323111449330672935332311064569852474078086049516965718636673918510465324570300975696375547592965279308392083631219057521657077736617760883024380913270603019874547405272753585798427942921152815841413458713510269683531086163437054693775430185229948881923012758075889972342990727889452074592678260449032129107273743755369535868133624021341397096054152646412628835001378163721167253574260685873663113405023870392926864751423602477814060989758229551877816332632283293421908766555149743754753196482576906893487674648742646092241256525753163916308037140267279046839642055225442962624241168946202494978482190889376933846278633539817402663150591830021453856209417237598777944415415545351951149668351224382318077254875950979436564926358148455975633789571667289021408158401466327076082004179643074498344658343566559212077749115071606117391853767263003938365065752505324828956387585225262787114253144882778642476268377599799396370295344167063438707848042399746121976600876213393128450342044395020005384346893885508319467131869373788613950240428155962251289621708099499896502220085668725778884966095518637768644578768819110250879325209749581772297165649133469489881432206568206321436369125348654468382561886992252454409673165093764264654636065492145207206224137006963785726738323414666244828642510228631436657282458238483851485588287581031279441355480817256825320298045038007629015594675439575403360089166699286290438188225015633751112538648366750514879147472643698911474925838226433587889573119577012940760799063496553268966773212950319325331550540200970845457385635151501314319672733543346820672617225298038773516724935077111261021186874883229752513793026929561810117949071944349675613416209634152835839530241550103356209875651535746830231007144860372230658658779670948768788693229954296019236667888341512716897652815307252860494609264822864322628861094211810014628328864390995449926319458368425540862005949742390548917281976401936044467374544753452108530851240921874301065955783265797210194420668956036002787956002052638371586878434340655366694366187798283205301626402713942738839020917377643866752657351755465158559729021549797285927692890312200897950258394363916783954849490635693546177210623208383614265853330812233476177289356859888523375952432775074564499963703823304634485814545527546414200375338025722364210785138430318297174292252410071258409234178694796320939316628757166294727560373139660623686767100471670280306424082934317100757287039065099703392690899981158128425299054525842689184555945259701940361626261808037792386396308166729203869817238533518192924306224651477924875213722774470086173366674435823785010337487489805445416656293039102711796886925704633049133096650693471950920417851541834445391413134806825544322553709264280087265196626226451541061035962571874585046536998104697928048391384316596695947784265273077921310100676679740602965904421725263756137921020905794877135869482176576320866521645540770732361634659985197193330305234110140380255370559965828231687568223444934002039119788608561506271437141413669523429125476338336762442445853512345757693888077548583847305781614895215454365565842431034269935221237164025567699739027671925424168289208294658613093238937701492113263068976915482991315429131193340017965018974312769404154089506983474083677939751511938554566245224671744628083746756958157916328860443395777338967039600438553485517348468213087998874692656089914608421237546922948893284422117958823888767145134633377774079936970239035634667111041019493758704138037221688459609394726353145266251746624315425950612609956671677125310557485654266624699491951519911555756697045963437065288735564013409430743680621591395753393119786905376260717545539954505026709770203134530990768824064082332540368334332665083858045569320805745375327257731583501691692474378890278128119050279255717478649905780735782734797050143634676585655674603923704627561651593904676099185942981430425314636945582746615907261861391037798347437931358716235410639226582464733695028136145189254404531900185599219299901267825300090747076398417918997933245513228218998212255892224580087360875432375790014409156608234853338752940738246146532819697709413527511449181439235553161442350060179226334927068800215832523502437210931109598886071238406324161298518386142906327529446541495861743722503300621360376186101197801636022608204067956594108485518576712451596984099106148595214592173999680204797149266948330603999325021514928163775146104000397402837601918605790553876963023236305181268227397769509797253369386881499793710861575685076377355634463580311029471301603289303102394949151323967625418986236708590065566066076198200382535581151152833008208193394313335239922315043030336231107529925516676420395646152511691554650463326388074847155624017688649074846386805842624250766909401680570218325583827173696437639798218357167709877845557368859712801129475267122533248749734489489834778853637254254677578937667686545042907465041317403333412884130000909030833939392089906980999747393177383590570264781604304550082115468130910794189899896841357572079305619093679351700983542884384660847179015318792058891430494156768678197030301912176716670519652882718887444928054731179000306291639540602207800102296291688609376857450687521655496851074138567573057543907359645423391432346334500329326924378048221550099967834516349293980411623194527839943639575734142973103900594352805422783027927750359863832963827116744424419176903595374053919722210950410542145898483595365528968917516185276918341537764170843564274773507573354169798520156419556477282478190944778757339081387760948833970432417477895233008157002326490355821708468790378333282530834773087434193547099675720900278321909276295289406775809420006261638013209898996978285729807709094613305541972717378273026376400940744343412635181258334311427847869735963409680811442684145187897602219011576919924544281216749540700654259210127152778326440115096083647877045775443719467422865055837941251812966257237009667154495723118386614141005947961827013101533810136946481057683525480353907121709037321285398827132231957378862899488891099631668589258790179853914713458298433451489250949979452286877099209331449089846073850848326288510540996645469208395303317355812075590660792420085232540768791787833860280297386525056695831197428748038148923465444974679630783516916621280957217522969815312583903743691809484202534733060082899275267511049590933760412206379909167863646456218148812788978607192727349818691005127460544983595261379214714855727269354379657660900209416020510275282997713085553348780103880989575471740471783836384389699716904733585421194664713764015708249559095670378714642029108941663267549489030805909160461972893490277272460913984672861551993961284369719388561348177677441141812932254435181682591068347057899963407652266641654186991190356488128727772733562979970940021458912513995708798407872411597486174812470452576520631092555399624849707294785482649870485989483455871121367607498181934554188858637737878479742161006498575787665444388924918238280362559761403690337157537049161452132225795374500734509817004766053093620295244771255214047659465488775219619092123321925332916285395341140999634247947004476235721530017665839289897178966743572326568153043887454150111678974814667261583313365313261821311918645715905680639410572060432220900520403153135164921295037436937262091741895817130975377488399501906938468470393993416666200996296202756675193416440360263825469315467071402439480279598142617245515312334405812752404944684943912775005212846297082686271672958470141387455336602983490638869006529846877832072759557634653042621778882345920525888173575069419612369244891506000904054118893571482601931463145497555429700501374005252939532687788407114542836243456845450814108399899285881810403607785011677280686843667444752213655332053556711999619721748571712503430010291966313165030482086773023029353893234084972038554703666054187071615725742985354073289919098090933938116481985418060290369550274303453806984505804494520222874016837716796585600308800895320243350222154711068228006309960707067884380761746055806608984893387801637030906502518934026197749435474074713402700942295971148579626046851427768902598569842326275512992285660388177243501585913915424796019648999829694635343892461967299813533006146886420321009529209057125693613458182320982807757639671027591080179329851802536478265506042273207719871748880632415698869981467922317768952743496573041371147094773057839993696512068676924129999813369416336444205370846978844823098809103333662016544997741179768154051339554718014651929383981523720342814933211395970917381587807277558618506844029650186095679976910080011004233416584073014811816945600191372834543526125437043181283773603592251798967017192035629722234980222035139199759534075005911577353353865847872691969244079485027197534137176052932935029065440072152637165294061750963365417384999610001821673359197865753914236242473186472182712679327240907855718672217277595467202827197113892997099282138096092229248049189189103245459802203790609969950564523942667563875309047557656636695809351329112802685304861878795277404600066843767370894621538668196667335754230711264842839188999110382174612197420877748623000568982294441529758212773893258802006870086138409379292256874276097713935233446735372530170491887468916681348715717735383751975365546355346378649870746001008448023115631515198259940245406358314042399468786436480635129072834850339996084610801166622142585876606692004563113565754561480494376529228980960760170078875197603662473624877617958292325365568570342431336396424009876694825056063269313232771132786180859262145018166436750804247211695702411105255333922546560000999374374178404756371267707067274486849827263742562210558045300235174871141876486552365228620190498241168112744883312872625891861914843605608424791616636007647276792975009383374210830776431080564691098107652051757529299270098450780723762244369539082767374634131984754120286977412641624410773581856233956969461449257574428104233205749472705683262949341249735082159807180520330380285988125705453690270244059375316237264034018909742796943769162183304884284736099329140020753440846417771286380386147125560168320950836306707684051365961112026547698951612021734172954428382848407679684227800793165210706325616031542473995624926445604008265550446272393278362090891251263030443396091568387839132876403836250749011736323122745899955941320040752647407048223187548027944261104201416248451777960608152449102349372730691701109651120291283530159569744853024847933942514758590795874159074307544905816309983252853225088674849327244650894910212929146378370838213775030374138815695039646830374395652052383783654931964293072925272823986415942673817455517281990500483239321430414590610188635756728610763367842967902149137453243677663236537431195218962078623807597148448336208278502901412242629118500154289120793306393472858213944705896721490710904977257363008275122941527718807706870425281804355390745473538745290183320062088482275183475807401267813995392273914306622261001607735557442802677412255486232675022210723055409606413286344302539894879207104031121199772001926617354884171853567237305065728603417855410425223967081537009789259812854361210681733510263799405664502435985238593264930036359290408801919267679590742217166364494703262020802810919023664493221101576693132417851771039826932277283722232434722090254180760208620143894210752979284325577686497314579588488064559169284835041839489351107459926561146425484854094088160986247170183454828375160836879987497257682017230002492887376952344514026250477807128379467300080967534919497543217731309811945770329796695631173834944853555697830336971180669960805064978692712421558278863450164210699606406425917322086665481982679887164444558487073877567454949635373736454182343525518227093401765530463372595451905586645731772672319084048584972854251048001996368496485579518171510692848035353585306640171872363844825530286678841394799343229105763042555465043029049179367508432121068766517093189699683282751296383943356524327936467719280366740188012130636055732013110696276919036235461614801239231284938826084734719057141773511684900117103990859321438135007465900074256028868777538080348248154171874721434231798133860203088123863532445890915898280459773308538014602764076358592541627734527957002702208548066834952973387338302277238884196912464649041772167095143538597517699752276046062454491926659605351515498520821488959850947541989257756907811600378555277379105245530454940337130072036047692176265358605447290866182437814138592743642007199778064749514252455776239057989797577204284909033446410885025908040114462074803895615135398726661215323249813384642473320894372000314377391487006965030631692932085708321035873464918736630713369229783667583462832306020264080483603032946985225222443360268381423207749510339177947019617027065105089774784985953819899011918451684465934106946671071262645164949180755348104227117748338492802824006934958280166692774789023533856381840986341758087849652364478720738611063891224817039655566825195733697530889966903877566880128429786012273129592252823587232141633568556995156870765141041548395274144519787381954221416032730130321142113102424698124835755395216338385665000219293422986750856494137138001457694819429029136721473349970448938769763657715140861926682552241986325200879430656129975046733776247140361755052343079197954505776229774533410121328631315653045116397390360047072520019292197403058223283719309018211569409517735596539441691537591881789617463817782888011888242345005618283663877336034066399124155728642609801272353711565115338147641110139897941516191916052303973870484342426573519858125708219217246367909456620250688004697534358198165827604841555485795186050085253141983780197326775402155467180878400069076809022306735374964265347587431342154758870986969173806492086133462864772946368715323689121587170511055252600785608222224049495739743582914117018857837622632561294690836162563532018284314533049575288793792064083553229714938732486078338139862556982138923876043956799126529055252653396002518733903729968035932638209894614904806275289481425142975268401259722826499555056186167649496213969096993706826960268200615852890929694888425704163273791601488784279821592288412163592303209004971852485017952020006895802275964654245532043150948826593929802345431652349886727267737219905191671062235024194786147207183801652379093003918575118451531267695127752853236423412267565348598746567436572811279509306175471932852174625286616017309064667829400870819800206136696648614828381557934923509327878139271007435341777870070759258359104057515145876761770020424252540519243456175979957161629774326576341223947154786386739429060280122189406196828989048445895789182180304616785783956474111602917583523837869897428841516497276127770316836485630005024045524093346976719397117288494653863721981393465298967457553016351305193548224085737474985950609498145830810366017155742264589399988380143047804413229227049278521606482094299006933828894982390149721374161855515330322341693137486218618149451782596128975195003800413018939407271079730433708534244025712506942295873297507090852549444100845030607558591077752773574325462167800227485985438592949449032239665474770243945173061951886828133143465494203226903772195077064386759476056415276121210788049938551408192881322233988072836105569022571289726947881489262113418871905144323163361116633442636414069191669613524487250841030872698529123099685569650473886632021036332769053990496971973434598583845930067626698714762731278551192933981514752220858966117368449096828181639109818545157751633523236636615601638045329262891864427495675831109811457411926714472519832229918496803138355211790855694021085028046337888575604417402748128879198549934841662344228388950272667468064232263952547580350295194654668078060114223139210532465648052733835355865462919878502384891628204058163521373547397599563977670711458758891387674837980895623596824582837881385719268953889976925173257301870253005251329677547049373054244636985683090167939313738999499378453103404296650100001261629737027402762653280399528891483408685553770618001307280854481206225056284072914678740925762661804934899582636684025936477382914248203947073791526239413334557248943484666068432280849438723690422881714419666690267624902028327345742431040082589808716888309282340249737268797467487478034010180181953121083905006947104940122733781114236492039101268604029208779479268200277597924052206522242835493705106361735612995496003404687046512051705775004542843228449433876066883340924822769240486054011384193444885716200752935698736218046604150658103078542845810110515456330942001679033807776303306679203401115505509065031147691038281900894484834141942984185636272682427269372515865281895210407468137124835666148413735333138593245292457987666261731954970349229612267872600274843584530487105456947065033786661103030001768358996297854882489069711170741231949251603905751595353188732462662208490748573607370539484598493429933668856796560239006520052523198985041681433208205505217033063376915817815686626120106454511043008429244209023958243898026225794863968499048472554759284553198751731594288639182074183925092539877810212880339875499900643341788283335915112473851146306015997115514008042283770868305063004736968849147241675080045259431205850820483738527682202937942192474449524833336262256315145367241739861553796791080263776893877959344041268546412456960057297353022138893249338592483595613323238424860474727241298790527293081356488315565727030157031922235316990699936809656771009885623786276856368995488205946614735570142742471853438538513771226448707614681006783547065776057290595135643139464657801836386605890065985652387364013840813606228880739399200647261239405199842774986246575639311119428384357036374431331134870758360638281882012656027526118089902613013742448342748019012015827689247948224188546092741988307722743578485558711428622120714190182496794952361451039959492288294814431974617387034946900789178571499437709817435430819946466707789141673406985512490285810672601979272234977181210168817456885126701400866684500405198021877147528123390772457157973920171856052481391697811076092316595331777681982470678659873048785385746429335131839243664087353482109640494825416395557006805558498470250642951908924880370578708803038679528679090260340441563455766763266320289086016576076550743488606938600567100923093096775209685529067709253691615414107848264932259065697848799629010674321001121201908495355856771424510758208680796181154311287879322320910342041886687923936417390365920168823442574259145422292901153143073834626310698162001335703192831430858373761950669273841076513982589606953125027553832252347944782489632749268136003361888833728652402116437667537922482359218263517089279958798875990655539920300160298463338984655110290948111105776417722501629867431279311932543321304297224582556985010105338522045738712485750429644319816229594240372411042624580049002938225523854060040123262683261219336608956092712073631186941547437187332275073431563998984235884444739424417034838236611437741959372680263443734448192968457648318029607869073568020630791844015868966566783985852487273802667488273464542794103326659084585959407528035012573097359292902494253200265709838235727869633800057100938342269697901894221413130880899803370859654133764955903367452153124683380961539797598692574351370224766355102198068554704301648782773791411063497614574091810593998705318131830588043044082602335902526301122557489668465712304851081679540769845528397883636377320309017075922481658553503175676900064367180783354362076870699317269190246373758361473580242284726597929965678421806919613228091914573555088638510280081550365176508610302104404725395072730260733243628730112029319242754299432066311747012139597180295785705552237577161286722877919582132179358815599754108998301350685312472944255481164569060762778895677485434667607322748834570307078495949436205674161982601660258440200821322315973265286160357908640686935708293346075835139425118403077912426308013736062853545818875572570825335107814548532915412911710334787651466909063906301531777393146390062405190525498683196532511624900537411933259782495769308420651774149694372380965952328363151723809858108294014649827209363290364952018395846317168818255174733320417319650728660508931802529704434502975696455352040825070506408065064661684143276652143171443134728609752679016184775046289325798882995666774456783886903276825723897212923376843578641118370664139437996797942847501668436992956234899221013060796944709099227928504865557771412282633805939071648835070430890441735294674754595223784789342432470960504651141103155799944994039316627017772813316374931462506890906804804820272715286947655387634508128577550890351354722797515387823583556981688053510921517519210113486251127837257192341917153192585041345402090946061164237365077447631427439658371551408340221486261376113955798852897129919893056475119594863104574220210950205250530633802078616918937401982965646328335398589915727443676423865133017993229136279977601695834720355820010460705338523865787863412942467524510648630048306382868615553922425658982382456279611116988660302755153262087880695026895102922051427212572580232453298380388241806635071119797971865140905910149084546477815615220541967555620697753757387308101607159158586516977760004696752143226929231754171021782356243503640892864491683785938316637238121987644535490780559264583006586912365962338772883631184275287137442055364732768200328386654461248462703203336206333518171767146701289400911080478253503369110872374515716905469035346431493283228068638463719274807657011897735377183817805485206145903812448747600235603260429348068771726984315619973670424895928348812964212579176447767955837355280488161224821840331347769558151605979289265720133051263611195791105397133980121180403692089542819137194900435159704730663635633349478838474550049618230104789861088825309824323029000424082399357262087948226878883821819284422851040308881892428717480980859729831759043236096800002645236794885359423455006947228337043677809236996075879843001348288238376045026971373822197128103626518543897677186017655471710846206175151156434414040277901837361344819739136469585228331456971738663473903993581918876082904301015834022092971935030875031026581152064336785217707354524750770760633048439797720954990960597972336500424706720756716373295307442399750186318330913044245315839160582961572524259431668904375591972996859930190905425204785821804256210034391015467242337821187187262465048469040999087690424765686268989392553289310071166492075795050267923143488710057097824276981287251036294152873360723988655587823429525411286835008500740364984519034319317870041762535530758880830727250194612737172018020471611517283841959245388109986903242010398759571556318806914631291597861714498029263227850525875452063627881778528940038407323074944492781732518950393112136831456451233239469628383546355512517531751714523480893066121191777254333636599183886572931163820128503244764333979672983047797771954978537603286045523541528949109075485570998611625551564154608418826210826878032781416090433546056127222508616243024848342557704676108495698405982792710936480472557913839593781896062482654805755154610510739143905753295479305134092193446329840551165232191403376124945813109969868839822992278379112664879556485152011420523126049574828208320018336834413950337626093941980643505457925988594338951506248251364168594832995479149703292962760111700888682644234244003934599442202486913179332873008921003317942964229422614633481623296729120419755769958243562219815072601911677570936607934683258065247346274210646852560237645422808705639992129534219297194264642313246573779605900179299568272781307602171306082086828186276165585176465093828788419511713463870127235036002946460961204264357003689178416619781267798488775001697432612990713837609528122250176399196799739314900342693131916341320717975935848732462920395757747945331790159716119204507375506408379895037635099272901008309336968105840058039150842404886022405105513124377230697106089139656425297805423218870374002472164938229357340815632455278489226919172131793505765178131312905337772453681571212577037802222360544303460097751217859053606502961870817519829873381985100539348536412218294396154935124708334170316306072025471135986687951541051151046949049472352825201268268692025814639314175230182893636188971512555980611732613842289250904424579959940039231208315341164177216990404836632436959985299070110837730262679758792512916846467684136246323917898657354192895483774106909899370800351080409186759665459230631754323366974710902525544516353448521233029416152448262238058420729900975972324311676706733872599949306961774599173377931470681312813141383483091183297392776021731831017115417867997093483823816723935081728830305611814242660926998069066574667085037358269310458088300360768408307169096628956398037125149963155849893356221882862531901160639373055383000736782617047526840788036019528679161853078206309409700313124777509027448295351456293481759888490555033946751055352408656919964347586185561159897838293972595794326977538559322031836106943701959702603408202045952088020987909640025021124184055003927092649598534684966640200818916993589802748162229044210905642832616608117654497053169958180851438193899350396560335127594792228468501165735662081683097004056747907576662191150854375202331014527257398973074534273384225909778036626320399853581113152654193834559850322696343343412830503864627234223846841034396068527422587973170080657614936998305835066869495035243876540212451753046390578411567568910988195273856793409016810901703950689765221109300313120403533636305270844732229623193744055363766810080163265400920838216790139747644058126591722684321800310214733189955812556964093662779202009943728448843519254148050640659547771428147074928671926282822983852584014741445562226640563026062570117878002441295750445481826626667968337622299073682347327414561355388074890215419820570560867108701685210854249451205747162086293466241197756475210168476549589960521017475566265247338884572477328080454999539220316249717859468424995176134568364490678665529538051015976820694367681480272771249223518547881619732484201414138120970409818481173000778109343779052632917286829737774363125088404440004541400563946112681753496307283052284380225113474047182365506760925005056955925465000048317827756693177742552737831225466217157443440813335337977240437993061219915575717507209538549394517907112595996310657927112657817332000780379953995085273580312523862387029540120218746118235287005761103874256599478909203866782169329281593084103041121950928997539594161159242306923329670424617005913578743676092968991956666278996284048053214087005299417389139147360739114459782749318202578026934582880947322351665670881222658741234405018389441194958179675871916629903578738335319491248774281785522595729807304974280979613234981331227388965156383764497939319441149038562535713714937189480449161901319288511736940816283329869595155304938079560108989773688236606795715035283477534875115816955333832149832047107939644263361173634515841414227602322807910803307687079920196659601896514717809685043301916517446686794018962761657975990533734445150422505064307976811696988522347679074741632350976022909297451397263519403839358296061806545340853777004455270302522480833732634689720269553626633645484226911266443700305190691486140364543634517321367530633850567594666855911254538494808721149950941853478267811428010764913777653994682945069172147580962992790987288266276275880209746600082203696244528879803325667501974756114461199854001739839336255496511617094212122012026042578063781233288517907877634893981227034281920526078055295044941759926656422632523765767065675026072645892746744711025718983062127839300168489214663779381641304695819251015401949066107517430754344250752338358133980617602458368181457403837950201843033493929080492952761301177407177003569813909412818596762744885781818685274969718434644367686575516965409526660369313679118917430378601745275066022359842805456877318145955544722092060192773548701104142415949120336605987380187003532690662657828164218340516580751781842701655957512071783273464575119181390270882625407346146780810596747774291947932977622522879175730728393940931649150176575532941384584779013564444166043873091819955102656613525539861217392058148468183904264435762592806414830436557986552863637081361410029246431319944924611709901870939483707678866193843438578429682752379581186534774639860447945033623294727870432491941185379932110287030034238657017236904904690769096068286485859941224806602127467826670206636883353756706113567347026589751658083104551017191270098518824061945565464630315478168657995390883846449786178355773877498036088615419128865480259708127399563016112156511743394422331615805518105982351081815289757295160854860857173502063786079880153341503534684900755879894136398444534794763878472070633211090433866916060918385871356977049795642149480752211589693416965885267942483402346792728187003719902070179569821108977954832846259344368583952540684543226223822051007564695747437977526895364320860282689834321865818871784770676538943017309197998835118927930117190597755514697959279543850364103025930531820654998834185392911066990015269184483705359229998788979443459511833034716572502018550149748451386309339896508813487958199252627195423005118641981808909149950636638264840795952529601978976547854321393044144287948661745040258551416171387962686690606099047534837518881707707876547144423966157147398064164472920663024536151207995489097155876929582235863639653544553229244109808202632915310496299798270745108680723736534089505040669229748347813272655821200131247089549734857442375799149806194471740560758160457295787816257002994379176376960321457277914689039759573172450188974295775617691603177860549479434529185813188145644985103258327756405515157316032428718713606517991319248620066711030076284464158732098998749157556960037110822727949826480062710490803111359676195154931717031018913685787749031281459670859251444483084185792485358119419673442689238741656945736918253639509984206375088103426631097096901927159225444757504403676756596333103673904350687267197068841083215949407476222907351932163779016613996241688563823211699772701128126101361759493124682595162658594860014410672695039576466763968473021209431672266840034794437825140910369801701490139277540295536440235273049050626982744196305342746729952166318329186595062272769926980828962483589302373671142986666162875418645944517220992552700384411431843456981317422471012600884344661270669124936468302142552830291319248137735501483715440111311168094274332643521069035860012690823654587183575451587101827667507930691745120024931765800937070479271017750460052821703900402747592785365629199938319987789794930466013808243124765913251477545377053818938028901328380178290858188667062827345423552157535268938578547309432810705614138980396701690553494715447407909103071064815622840999333329330606335023734206857860868465578323937814553504441729375316721509854410847227783150064796235364797549407902852977980779555608077314494862063615399758769256261824432137259469460146942433559544098624430912262138699608767244601102492591100298711602263704506587031612393451558844299780382363072025262703532236213444533917684443009018438966410404845257626667574666462441880286661546985502178932111141932807066269751537353230261606015584221204023584250477510735698063204580980767694904925323822776032845493582817324391531730634175475350092124267268724504620359993625423608511475373308107416669891991762619781129000105181850952217393045103099966227916278105322849450790149557534321297000837724947791981632655631066261006565776611355119458859540574261142129766390673947304245351841267943321800700060566777772637520605929788169380130139797917197543621580030841330211327690172035299327484971750595244798345734174394520445261676591800389186937331556153229417156716266100934208063851526575038308729106772597056984951229965853550035462327944640364155922539000488347941194092550805739999781898625474921046420332652783420785064297463270906280097878533126871991330781940567514027282583605222483524998637063244142849109371943460470424525770146179575203361939088190852007883943431531961907631023990530776480952076014367956947223816341352057889234773733719156106997703565628320136987440792953489856051362426550351218687507410610204434774620142651843072122669200181099696209603566116166911284259262647744688158150761770516602485510318231114421337943028359323048224667465292676175329234625141073889959819102009503740697278915857846360364283240448150452514410168571974404363379203521749732958030765690897952366188048570144134402764013422688269463906681973058182920036158326070609732948682657192457247379699551867105412533180167686213099480486316218090996530510780813098617017562286979597431694173289033842995588973871318146867214905130721944505712863621885846620586276180425666863737327424518004360354734153574022129354618931523139542913816289909391795316455938358644304192180755788214222513952527208183287883340269392159078173911445214845480737627770629096204616192455573238800531187157829228846093459344281453657689400680963352076914202155921529891049674210924597484431001918679312120184830341370444359455106840312239645319725793607441674833259153257098683000432826587753035803516043598272383594386344599994705480514450697328620917627169011570886233615645796595674942864838527011971053477261658134766616900953497023688247224459455645532290176250682767002570463947361259678490863277433475603018594507953176230052434856454077649468707821465701458949659581508231356747445648417191730721551542380938920424489327456536701244343709073774820459679002915740619337468663947739871992372331613409276452134556190652528974301027721805309519611816291737319061485812323383177882363277377451488144612244912040085444455044229797190460112378496909466452276182580036147243182050399895284579334509637467280732604111611281978357864835386748461678588851147801378360396293354219106113908136489419028925735308890729503081187025916278663868981193427778180270138528576181247482422913015517255488695857135291026388751144819506787898060696409093929246849675729819660040672056193513088871072508049509075036280886409082598202122276072578319972479346394189429719785089042333366256410624733749261072442278442376756670689805272376843377783634528025489390502717353268314293138952678702038084187469485585783480624149664395467911330198012563538063948023924622999490983850387046474718880433426010276110984107068627851979431319583012200465528677198243219382158564886874521694195921806906783836328554018993130151585115559240238896188986955714676608690060708566146569409304018111894106017992692331220567127615965262919341709862577740405072955296133483729929142067446244773721343192819108276769037591178481483524855658525233032521420924391080799180322735237592246067572893871969422453524297706809390885955065003246605412515634825932647027049622825814099986910037050023799892317788034027785318924390562845502394132394195676995249496678043807911386756443015581571256786219795552099869269227393857749505796545031328829379165822375432932853506547380581294874824915762497796762306064281123092033025037720450282535906341235755753220402991610429179173152233171553898541446795333821360788054472702203383991134911819860903372358468535575313222874043337308713868486372011774251517182917085551366030810107273857279127010919559179159706463102466741621532132838479229797953960463343869847515400979615427476722414219593555447799287628439743200005156450287868621964950856111509742706536211803526106487007072536642386713137526079085998765020039203400883143084820432086251060742887277414123250051860312740158708017254994952177130792805545448162802392005138766515131230129274901402012925531093920103641612576991974557236433177904141113764197169405665257537542346953461787831294357884798869416314484010635526047309678360116965450200490813866040307618235244609825739709421316951971641464894777802359671268124338701401057554669730773297362113183025313403984528357414603388444283681731266140633183110903558116700704249429408248723678060374316578638175600385948641734615547729790603235855619158787115976971269336699335799662531136112566379745677752315775632357991892971892443602941428448922353687732383300257095114544254540935339166117794571413680728770251880209733716056803306059790777771366382508715744092602114874969337654384500351419237511948703933467176226137402851887340208336921617602434541382337956485405342765510967401258618945723693132569718838106302179861589042320303513061028817114415074602655114554941980230161645292610781366713660685945510267565920181455842440211098295409177554882070665993071572192390557940183557219052079884580827692693596433823418700390629122982723643355129916959787180316872230254699553395371974458032284557554924801940738461512857194561376338436984571580185975850081557305023326325115940150328853646901198483601432845323210715038977120509851725572735068468996911507929116591513929855740260555610324681009321319790790314392116114525164395841505339656063950746646056622465484651086358203728437783970450878832687480412126313666625093926695621204271707555074238980730646449231686013448033118675672754593371365977862613245958352333626968534982478729221190150063209450370290343171407037452319027027852038621733695999125039597043439070435133076848686451612760976218568676442344446116753911343546288818438760307792564691835894947321623782128610151080840674450823767033588161194590877340341611083123139457316957311624321792797604879019422868844510833143642418524810226177582143717960552000537057626477602312282880049241733389332122142673798524444319393790495033795755636328976157375560228534656978509733042894656925802890938704360554373552208858645093657863383998348590232619455418535706809410683650870232345692407479919821256513166633829361077397260597090986515011867560413662940619060916450906571540721003913788977854173373580699563753548834469472452866739358931874367501358981265144951981785331082930348302862204865205654415853628398984661704763712452661994688757185987078595971627952744587945212751702565508994710249120665631945154011535244417469584778564267093265210752895675500188405157794498860278927177372841817478219341025882205033706576489866645275068928697280063860774217454147417915856736410058879157159045725222350862930450997137530951350017498617407984757742421226614472782911014723414699847496339546673690964686876099733709975006315079984840555275501283284317942812909736426162675954475200903726135196068271204272151843134680704528776980101832126653628311034292699746171908778451341087982185618299525600680968210844828789555884844895785702240487835022317327183831949091991427861540191987172667810470449975511632873010513200472709197625506051037063165095656887768319815637382372908501102680431856959836740483900565831383036835470781301540846803403116489096120863190597943848554203888637532326289091698372157262911092620930102314863672306830770682701080760715603426912302581323132437991219354818851765714840535761255101734298718188177053999227584862552539954614301997357758357027793811002431108886896461554872073675723001445151842991444377768987128913019445538132231368768910785265250645399468870199338889466720303709702798143621430198538786348723730967769402587523882795270729008749286664727147456093098144580780815147831650529839856087782586451436934669360977795020318397967281255863690587832002523568504369439287307582941467907479361529837792574947431146918323118756573148757157582406986482063844168208735403009697790270574021491067669535694686528156616133527401381484983319004947992073051296027480815013794160491943441385442471702402404208073502881788412166601423351835578699866444523201405948299014521542303506118266514529764089223346575739250404717366015792508397442755148460748057585462928045525066746603899629171217689530554425436193342188877407772385476213669480574927220583751805913367224668658259553629734349344830672031316666299506568919058813572391558408573539912293155533211522877747874355222878718440913562725620749576121668384905463926073525607776495886093817760159276348146484927520350356887637760218715990630881556783354536949719772378019771109910799032310051528607456630332519650488713471819387050311295703372558980040082924696575122031669545532200720843556601944308855543771127299181534005067676813737069277059554052247529744749551537187472982949090387179326393480048968572992309441665123506070990052853359517812443921539907274841707264457606890551087195485517763661315380023027922645591713876132433784889617555409383868863043463052819508045575216895668616301138267821684893030089190346325549019065912867321326381923118990075860964369010260780663150634189869027731928189160437171365431784493882440740490974712766953688856143136648350034458650357563565286190149390804104623579301568475213871543217351173263115260997727494020960057202418858386173086565566946754185319697801641799583496075652900632072689786198227222815462580248924045583448043869066548302826013295137699789429832763170974609046151535518923765944888179069728836123278836311241876076550347643829576641462678593223049800004435688282484828836198876487717555956756103286231271215568036091081565516489454336052253737619780515430109222616432709146883754142635806936873257237349458402127550777339565770276102186643255785424614077192444679601606166745949841848056222312334504668490082538524019601767422215612385739596853608034895296465706210137343550029713873067983971263775223412922500965836051539953439602101475856804719446546630670358299124311275365082257467495394061897608560423226489288689469814569230605859868149021273362785307544869725452845430508016720087726835070502712507777055718606006203534033833233572324828122803943826954413295310847805939297666109565864182147090967464935071381976148282973803294426635702001221150645856404363502262494616941757217205554941168765724226216870878580671740863690558794455433548920795404729518741503994315921830693509443608372562270861543359936333772706897142504044307574632046326184857018796584490347835319102342141836858915313318792495496413188032500882115189244807403827276729177076548188490002457401762681223254963722669646458538874771887848326353528445530680628662036506083998557001611077181286854398064737638084399237879289169518740219708596333336615450807162263639349534810324600420137533274116965791897544957789234233634683830512459506349354285883539559271954748335582601430180289916557029637198231187114104379642192506022951895559776197060383540676804708666476898389117952885421050813048606224361456429858121044324845373708980761805234102444017676306934221342669541424862352094253660417477337444584445599849626542248730453246917363408556239456173716121772297092997168023905857534765698491727182667522733615616117325642007517886825506505436420666489559708323959585245821591176495650989364052659092396612970207133456229925887774799515299178425371770087557002599125548171244843783652974893480487892826431263268411455774678149963306212417494569724844379375649106324393345394515324494001823435151873370908007645330614393146851019116367185943325653584306112881927463977918637707381991077673537059957205585277477374694783382594600867691745031299437383687735443634295926525530675540624281447414462421777151189590217006487571890991310145940994842348063749728906635663176262581529467817871254034184752879046625012148796063148326781670921886074625087449644425645037912283963944477377412671377842388098788737686174730897428259328264564421252867065454325737660212918940465837403739668815364865349577041135565171083162239490758113539692408581768244496718618021748861111526256255702152625808765748889727538915821612015489756580398514427013448938503392333240757712043420919963973275209565403985610517431725202353508352480037775967162207421551751572193051585789958600865596423948666695864186889900472973726351727398313406750476595771323400064879168224150328340635533221720736512793894607643143873676780137178406213250223955008342564766282578665171434086786527631667913909579053211010351935586398333552524740745669765354931103993720532628402662787750427390348952492462559515534939412350035362237497105652254572460822951884636741572632044794590548572139854082290877962387480926995090377608082449494232232305203306564036932415222918720384264461513799330666859733015979708315413726825040740372173061613965539151081740711403122892730343124491759250256158019928746261894018286585252440131814077169652914268939101363869719117747379825604472735171353660591823200689395848310920960034929554236417907373447835303315882381163844824398080482091299483730018113064559985150737663944422666433751251981620385175230853870897549270476903090549254861630644853474572620002850825510288831270984262697563078278189969542370181226687562419318414734316112879989654861828527083487401183010012371810468012947954727709308734058396149989017656473674256856952213073150108561774619043842499212542111327759137854631426635954810320155937096787518970716238817551544841639778123035993443411821025924010580144542884608722067583233582554835195649806344901655894769692860797736166713270078582399483147469252159510184313439542752794232083544989829521277854813720310523072057989856221578983226009651596098765577085346159767656394237238122135191347049482282866112281420020367185090382635222253742936070842674358138696870513369544425170866638705899459710020853472107611204042275341291213617968733851438352306911474617249809691021055563409841662051383264564704063605168148284200945873760287303578639715213310557612459325360184836988294089509806862916976528958803159736246501511572006612972374503984307447407044205571362995818536129850976354046278066237744211395187896883924673333708836790682994047674562722710534406230015563130809557750897991057736958148490864316539622932398372414428543857598009294880398978636229378552905138297999450061163679477454085167803473028333747015823219042323698084698928020284678545228883512721335085874063545071908928450235009003186084956713180655384819824631547878120660558450178297493278603321332259539210318001971124810782257638711280717412560059030720168940592553196967097106317078157657492495942894347148835960347870552917490394624058004170349290750426000775727118207887591003668420188140048478408934112839834736608585880314405670548237983428893538934199769923043868669870378790123800249250989885913318523207521316530380186702712517724603971968725946117933107874169073299000175471437544296178345441102692701751952094734832361650515169331084052198219565399054406035946886004507206993373880113824888209161305237796862188422108644381514541752327136201658692223841536037985158342427434749098509121262250523269508274275473589514272458456522034663196268541049987951156434684554030958237687036943707344999573226217070013772704230867296155429337354752870828012352067028148376899464715622350538360633613276663154042708777790429824131357290906640020217476113893828031090866968591724706242529417627468912643117484692130113371126335197085697345669606779281058165688345332339488296744569776191141477190712810708951128180926513133556992164191026294987480294463661356668977884116042363457445197812359790178559849886137221852005279925927399981963268699158594999271494487278975785282730229488308131047536241892342170980955058819940301455507798663380544070631510388646397459436948301849768612032342641252532581162589623523528096230141676788699040616611920557889925220465809137189797458523889654832495338474774060949088792546496972394966054015893397197991920412599348789735788404182592013307792589187977056561394914600193428498345455577236906494513343773849571719911365222970512836795662912505550770832758010601607427517430884755801272970265780103473992393915175957830051457696916814389863719823181220384189885211707045895783396106850857125240895275700905526276529701842041051453857373061791924712528671767144403258488416758855375558152972864535733657384345875656077792430857458351933260062627221828209991366124324017492577850391261874641945266556325798530426795247730906063121566428625172537917062962060545935023502157724073251934953739451839901729250100139902064309688644122801188052963198356307138012671216405943666920298492133701792479511421551528363692866319502355275249370204480065331502897414187382958813963013948168334216459617809262380782234253775288417651832780008121231804954865715982541348765907415973260149008597537271391853553968628519676999525076607415379303041713585213274037879704327677416483986648232519819827962907417038029200514442131909729833655730030213918305283066425634025190357104317777274834781632622629122017217053434548058995654766368840197181962925237732109016683042835556831764546319055501953706302906427512104897323543656744831776446976841923960491419240721300114031594252758441940664724835729499467981648426914194457970450365902722815992004837903466607475505212295687023446620869533593055788240382407214639753560133385201641268403744228335377551667790166126780551001753672372041680619621990595412030264800645161207339368139396950261473743278110794702129127679843153949603258209649721286441633903198054035490184459619568452476237039433575466529865094384634918711015292634202452521964840368191502013690438076992043591540989111633242901689095291542500404432365163283453181036677112888618231561218358629310657262201884337326755240407924980592108912682050233440172968819868326603397358268437887134920457427755346554707171465381498770436924760017270724615669067913379077118847173322356189352935981102057261993068460852635889144298804690014933904109767023301946083050237553656589849164605605447437256649470745527672002732759504934097855265636001685108614964983495560451453045693660401238435050227946794869634083350143203057291031528950281239873594300007719274648753679285158786261883164218158972020265698974803362419256283528323601468676387317350163617963716554988618868108421593403501531868372110017978104865921963691349651265590555047285783795690979984908989973164315836893285772008925415868471049882288959063691420340569717451975375350955688426424558049121964407570301163664521281227632860996123045803362744926176816998496069577563566124263301568930371708749321221007009705656002052355604766147599788593563052495933777250927877340991141040399445018764559781270973615136826809945069803440367332558978165873196439443661511915572784895111626697820633779039405901856490102559252207666344691891670165252932752626358016734251238484844220655931711397672261742211837836597875282748070701874974677723062216788720457789251596251082106094248278386176649589300745525216041420175976657937278737078196508501490891445200817931100365740037043615941807896333060621536063106330238702841164209693971097940063653989857492339973206636552810521221175600738455032564051780918859076364265318117455260870377103976952632936636823862324876399934753628037973156022406070066307017458867687773376201567212786808452395829130694634338602254875549264232381157975785123406897036431741710587055487319586769521103150381212162838305754673272750990251614635619563164588117323736183493954289628731773755248919667049762323844339902142493831832668815016769860570791419338035274341819738947636053637120424432246657692758835578254692888201638555377938656762833223781492484441983886456797746084537009364031808153099778872833943324113466891467489512395381333619987332379403982923221707119026990804266216149796443400773143073735666022670102785665559570723127040882224531680263656364491916617464676560267230137904341372302511065134605327235956439277437641068331901234650049214769459058851448323178324187846979511849307009809247197588727464772251815280571594229944237783486466862305637167086337864797314048066626590531068046569956654167218673662657815990431545800426900263612466899965391778412923166086075314776670817723820636737030214332192560042926592686251000169522465345335815084273393692317170637605043022693679316785254665589690963630523557150712508322848743875181354811730552476247548398851354196531182942047785593306847335644721521187923786650659772710559998955952730839800006950017620034906333616122023076369993451129852128323655847683013119840899004885864310815079899237529964101091643212726247865225209541544308100971462523990108983739299398952705687680845128193673184256135620297664841592184716782094184398749393097157551157837106962359006249513603003160219597157813594261136479780287975991989689035207982328999008781751384562429552342725483134117870119750854670553583789518293157969030691911699559508528147494420849736757375951889370517888304844837502492380872141516519411462380839512462702597873320244757865362898541390156040291006770680286855371757067870435404121299150717076537893645345439566794648747611103668418547411239227383379841979562073638273775092610811284567175009279467186266905267075515136815248936111937230193199405882673536250859358928121000616499878487786077598946722538902043797925638436347347805610015642777907645601377033280788017955551582351618676261748758785788608697609109320450584405297935364669346895627531420206945692018578211444074278648977519838883672231431642629254796791215854057585714962940706951899713230101258886055119914327066204656789034247332375209478141283365856302879911054576726752521222638706053679584188128609663278997947504352621831382926988064667036405594545979477259848510957901168228567032822539049196074092706453039578614724625842129636099844507948895126518058964364827995026485705929371754611133664968666319475601313081690333442467093449369136796958144310867273444714160696618042624343417877437760927393242108807670498123541595516165870885644281195726090306051655635801586771662484208039619342005051068671525366092269005966043029381285369528782622447866559861747892883402318168765766687171502401021348216129384225692932477384950820700687412409931299704595531992623790765925948082961290413130178288831274230412613938950428969986844084354350275598003677687811077726074156375837351776344530375162966419578034465337515902551842726211550832201817583666987803348341811385209918269571518769880093864943296769746225098819608776800598749889633843679500146737043408683535767584544750847714376359468358007864119167564083015163115498434071685463826131980527954452993687105701480540490118733419168094655578261822375188136285917430596361861974545950724928761949988841615842672862922752551042879495121331066967580564070408739893169229628736441968275237330869265411945381902925372126463536639226172193098486206368405052300067801477167085363131455195881643145773653748771961352709352459102049276281342755528829472490625560168219662541297104207243863090060157684284610552404120050518960566483250200605276865567691398277783265503241000852397472461877577020068320965948688677650625660902570689136331744465483073480666529169560044844005004860565730358010910957613454563215312485018251429676753278445025767509432344884902519237254187919940886660254724917391926478859860565328021501579343991782441298026077755756545027219009593621478314136262242731203142400868609828722782270717914077333559414754003324526489745989171681704999252007517884916565240607360612981993536368783065229733139385201744536042378127546036243936221546046435929603208221809859062471853509410506082802662023603140719096092735215384791095693164285112998684118900495354693498947176838839127415185350484955878548570539697468719104982705290467503856364541021736108129456556432470047004975541974702324367130946206361031271832985765106257439881837257149028455370395071231447414607388799406109328656218055027034733791677604711420614406445258961078739218365002295110425684911683538153839022893870352254717407141674903016499545494950072369728141804123062921630877695561824567266818922267607195796974174640184426378922992649170334175533548752005369959874828489584768030700639905902543547536354631646908141654173769752438304639994212541668752345889245435388616568252791312419478737273922124931438493602742790388617765997800706852248214845001294843693146373609445788440020244492071624173272108975561693240101937000219042772934514448771847841688413042825842749159387214723263050441678951265592413830854515190237316680869537115809816451215448907936032840184462859673123222952090772956705401026159316537350086746035037769865802800048081604879131469963656351358793790170719594403795465047969263152730437670090075640059512616592290534114251773548345490643989821003612641769548597355613082008949111671634926049674107849109776686497807198221922402273357400642656124037558073660656290945899722540196562396527207449354622204128082976881170740943474720303602957849699937846515486870239589800730563724678356250940692275040210398530535437650800809489937530276570325719971826137723941399507748533694822840233844797156542955799364301888658946770279265422945443661636910475210084402537333237309137310366846096836443633471929835844745082692275495261087161565090935477111656759859827813259913636147976484003461836379468764564315013600908039789850318197772529066861218762935188519770528544733420323241319654939526101844955198673299178203980335823619106631442292303858363071155449861815005694206190231249753280351899172336049343925152365142103934842130770049382459084894157421698885407157233249413757451263822606883302263156822819778078387645553586363860693938917590130325334864852238772165910824510221209178162688020002855681363775063256050818702829845097504201009496339428717050470158076090265037465139096198505610664707096418504747373036418426630314865763587698458141391145010915173902341314981296613512473724887436764346320222959617988909986372443471704945216216298994858894232215183526808576168364782384213396176378924727270688110786149080644228514038758367371943477722343426980100462815543200581307489643357522934161930633744037633986338549696581730267317998922436149518948319846226353474477186053604667742620936789013741516172322586703742028501137504460966878517848262879402552386602658813438475601088562262244895292024553436827407960749743155960281554037551547172065950526625503523290964676398610823285208442298608623662183320499318083463104555174314651397428496299509189390218282753802162157536062092706459353109664799444784472764025880544856155742256849873878860447008733700342114811884702143021376703064773578078196294618960096054710858498851298117714025753339705201753593998524847362281694752083349351708785121275065588970030320170157796380995077559221465211085961883992257838213951963665754607815071867106116604805732307566788705635613274798730938636183066094868616938406768044132761920319265244383785828312148495738261335202023607159757891003761045005226078992082810909866211326772864333255609296875447512465494786111942446541529828176526413237728610474717836142388580566720061024891682179536979683359725243743354788530877038353663820477882281968035491447876306702500112283337170722997110483206496360995605647607357693467498484257087533035172534205643460061162394556625718386255222959118398275511979801155398777312060509335616336146798125408716418315443464455389142428701258100993079955707061964498954018996766696022518198161690511176350175483254648037438177136295771868970164108992006813805541184174437050545703263043486402784334105481600895953135702768439042628173589696982631607958993164959283306571747837303217112524395519748718073366137076197483590610344586226951711721711161999884714357990192637163729622461320216374223143549231435437217714489633674147457337209762614130105356421724812468139676911341753163355427391843385580467607747125044568452320347081307067747338043664046466233287870995953362803634121062323658750385739241438180365492652305773308602072791807574636339080778372834623222985789533178686378986047687832009023224047990070411885149797611412684334216847267057482443781964939907847722516448278160386873022358478098312053473604512599483027969095569629836616001817057799157469242148723300054548413361814595702627146937873273557342866655286792905056889890761734629779369463357448654331265346570553367356206828323793994974722041573039435076820808635452612036268454020938271168228373793551171696089634522945439988722228478699252693491559093909597247276549863772331997382656832536526123854322747015889742035154422074244785943381977613924361646080645351237040230750027383534690589113948845241913512871427808142772681298957891578749002675959913994820894875818453041440177041080895251099218628111029285263241046680594533143928762687291783684916086405929256611889434853582817217878691814278880319354077193083575221047977591731557043843377052827166406985135385514314353834781103368964182373675742936916708567833580372352606299162807381577672036634139994471969708037891974993905704838999707121522246556077914152282773612461009003457119515733326542732926249799723387231952517963972666326903801655960863830012882007321083997855683737195883471654811211926630861039514412170008922726166134471402920465801359489871313425131833130251130503599550881796850421848940612979286021910071139193825775841485906794506110116655442198192585513555499567399627601719264184414917299366291119813833351167893417842905063305819481852143414455442267479745754779553275458205218095850745398650209680694225173652695972474005283633061858182550124190733602638745174450792536075045518650658937439996530920144622965251588279357890242022735148885476226927785620450294404564200688817746491322379848764470089380497287353306190315933139479138112068313661372580167023181632984560500741360176955937664733686441867721548033548439517179242393411074828637322892731459963547927987142632503579156738378638509572624556438419497854590064849856066180560589816649074404098797095679465118783291828783095394618278729126018300719766455454163661200192676842960488192236052018956426237124167823522115975954155657315226429654830615470616037357689435163512180761987558897662861872872311762184973277682357079668234533315280562246507738268840320901025317935429565530105939075683594035072040349966911899313895893063592294547890980343957843867970999897630633044871458127487973121765704053398206286102153754230273064577870715742082809031610948964033125880093678709400585664767757897864295730998334204651214402678135031072333620030308519847522433342402123596654183600189846202645248343633317312766197311697762283150283775898218371231311455659852430306753879307734097544774162293089319015018140540801715005501650039716723980197742136172589410612369627084713263483407759488065121638136683448558512690566062693893736631153950092666707031682660498963925107392168561396485572719771047805190905465602640201433194769482754026333651050447116660248794192895554997033585092760608234375670886494998187484564835879390221455547745456718003098454295707029909945191014770184591075382583980317921475756424230247310031604467504323962772926224879594589584307026731201123687037529536672815886161834058355180741926284492902886678643291400087468175353030353283458441861364854034275640201101625510187558233994720549925220589132584126015542409991417153543383285913351579717857654976414154556502930396570793687270256312506593683502549802885012850379314517604015489956468364253342112318988969575289513699799807646895096559694532995527410818418709448928488627712656294769179440653897616468069336903682977585424660772967385416245765043996890915805057344157061374059763277471221616763831485000850938576280794825204424659082305001928788250608916938255663544857452190670618411274314638751215821981919310653278411675205488789400088255997311254336282761352737554832951964594616161000535795601985824589731569811104978403828882232237305638101858892916422584129032274927960885575894200106296048854226232700912811473769814960499312736238552278657698539770532992206484380299065456151184232502284278055206292234483887330233079172736045005021071219431866648677124998264137867746211247022522716321406923391720446051408113922124902221948882286013959713755613454841079175277740002600724306525324624601093718889926925687439104440545887759659668236965709202637949947442629515642591221571891451143062032322792696298242352134567947167866987820543240160125159319167926955629426693608715333934629215488444279966298714776606389753595040569870667388388883565345732001191136498165134166274977836710392912026906745194997718667337435587324870973460954535560625825633171393858759842420240565606071956287019990965868832184170336368468111722477294774116428093187586083740345181213137233576184296618236515046717025392373258975690413417104585143821187487389516368748891225210066081678086972015523610750939706892432394523536769649898075103745073181355734153359844606154150296383967953852371168459986672908015286979834226341628036871966627926462829731101513767530367438931097611024436581553563371457138137319605718204692967874243498742949585820636394190809320421012175253071758007122570532146335678612152476514501976269207810994036208778379391111735810405123349200535322524552500714545953172645033134095090821952868572619488424940028791546903969985253050892151733239982178679327245707937808849282821502950236148392486607848244151732750020638460478829868201285471917109621002352358960068939165569675189445564325253808532945450803158670739089528564336039986250163011617162819963909304055059496907401005908779416045865894917142822158079882689388186625216560821034693439807646151880832052473830959533505541653803076523141323941789655765253954524305315271605452388887417778756716093520392463347646893246482245487123654736393731355748957756023929933818133310324646171092416460992273543531720974714947204863419919213050738681088150492265146491234454187560709669788086467534963794059245176864574260942895420819713512783598997908436008367295763119516364613781625904276035686449964480359865799583995188098031995978666833243756092661040649231966224512879200743595190284927397981743242613752691452090175167567921503261835809601829542500975779512204191117950868677543455559416551607839495369717585725472155372029534870931885637100776275180266717527318488705153122552594184620906438684707303844152952094678200614901779939069832364238878176814309937023421379972070387474617098855722024082793333856634558104626445699210231629792600739935173370303295613996492147721532423799785068366894178048991384752771998186112989114019741600152560236220448427217015258712376161303894004128808788301209118237406874818856016723880978554896195086275271849597648552180694481518708291207412506731535947529443502254874187840278714682593515307583014252276393231057798885841140686902568637869581158308651181851189028113940622506428565989552415847365121279749552888220280788212532738679624562785217785299131716208408165541687154719014921886920504034882687217366048724508977341347269504177837198787141322342598830002170921364919683970729489234706883769301874956552303914910516893558655181651357540990938108319375281591218400814140279883707683472604762615666483498432691106950573787943309786652717804693418716390282624442412406820953764072629391163430536660938848719247743292582949801755239661424955274822887063051571612489586491870818690450164747583910920835292819152602469203679832252888467800725127360291846248057440129965840933395616015754620313378834330818807887725960201454042110623840972881840072875098464853172129080122525662985797693786469918871249914003560119500271956448425109241081340656495242128262885763214710919056561029210553905016584980463028913987342742842603669519955601750287131919711032763353411627499494873465136070269957429038156885484677877005024612645310835921632637768018318010277477393254559629252212208240603895727354936270261502758790425433639273775821954677402559071178572965445903865201003379702333565997098740363824568476773029522780606894535297080528568388668301375516805848945796771254857764870802041550875090705276653714463983020750155427348567667291906591233174805658787598566394614393586845425667205799321418563330822063351126930800074550867804110322160455041773370530271771638776528863474507067674173526454438197333761504896758075756923821560549021894695831231874273568445221734135936370470401093439980433966352476667741441111754780489826601166196666770971513316998375185814442612383633576883412029304677898489179174617548015655003160032533285073846240416587567603966582453697895729028117146108779532118494470309134604962023734148884646870036566959866956365340066309725512715134599565255295245057022170122449718401394395563741530632077741589940707509998270372829957656910145735393967768043264223680292965185233085997966078677129624164280001220339891803985447937341228664315801398678436403233862463027298764392377491571758087172916009146110779072550675890794873563891571541127348978348517461152360780389072428026556689606205750221407459396720101950082218801532738840018418898402260596498092487406578793360324283188539269626429663048554022448099047644118599256947662026747573747579629290192521872950329628598554456349629557283773200742085657840301493833312634460747301200787601825926216817224391615546791141081810680904464499892384847018208108209979135112663724841639354969003823362295670511489475807423414019897956150962806891159014817657126130574396456956547969694996177503343436337600443386280570284240367322692092288972695135228669223264699811730651487120539856018003621984204166946394012530865633705081801736893576302058109909473961958024581228142966435692036430784495946984215377340626865579838071978938449136819477111447736839650506785124796837398945378942046695209305381853947367872678805728858406113473927461838641107839838963631953847751459207971453639919315208509866586968348088404682659929810068825476666788343491182151838881615832563730275541819037344235305819065905364702616084753241334078996126166762371823597285226296585076050709071138673756262584489488065911539688415915643671133450830868872374575605389205096067444989521213017384548224075555322950460578126752104143285481907643430482780114768771870274399884086405452379201247493785948610957040357003089809105876120364139792430791594266791309046290871061253008546531919733231654702699967194448552881128203265007361786273735748629093284374735508412824361799793817817721166552006143556933679534802316830673611717883685169864076909485486690016651407139840917298058292245876439479727347029221145990386487681323744284880772366583035727928980347796617620367263584790591731778045664810791721339576235279277100118753246951491378490870968095157696302250113521881278810041669562532673909951460858204927823332026732824058455960062791203940369830333156172921911244360055952050041147303048140677235774204626529225783939690681778349554106826125358312495137124120217265726067260056271244964796096800733510433327842812239574589049222105832654424743577280056976677913599011582187103111034262049442383852366775873647301099676900981706605444325557155576686682080612735115514255351640209786708290862539812002867690632507332984096254236779273083448856295441724062457900305841611500143186468639175548773234500080978081386284119213018312172013285079545063607081878972395074288315070408673192989357810506761189690193264771240108222760227198141039026121758147495456186320878725708862594138324611619943712075753004857050187592584139434384877534073308057967932160134149577813951195166849238495244657357650140309811190367081695471758969950076714201099428322114551161355004248470484337008056609758563733626024049677759798561338626295774161875947212358401053148000033491720322431321479244394145116715811674405275014710767066365289518232484339093000238277502991913664525523224932305886393702180682808728384219102614156582274932229967443113836737456169864356455022215046340375596029313330482349903906491650394897717633464343748893013518508640938675214876715750034916720784990604270760283440658319793895446332200656380769003686384955213359041116827723635982594375100279075041333350250476467562852385842378045377479816998457487154885923483273801660759227398061921746245049904814626165386755652586995407301406311886572042697589830608444085088422941976153845608087623577472255708678292928067664476853824268821722017630360854579995925072274735674209848347065651345748334002841492922441105967498991780619222342071191904158069643691855662936913103362647671897108127290018959458407686603775660335009104317344634221876392307549373135918443554393760437247185901762638121632919964566095433182017917454235392305406015971373116252264553351378347776723244586201351895729692434244084551947540777297732837114129286003544966210417589064212831142097860338111557602726005471119159364328332758341283127062715676436730582223831844698775533316039486826954674521412649533749987686282597319582339694166385392367032015985595402103495103330535111985820498884381428492050194839656141136218132427102540724271738432682497186157288194369514962690113334255426157258448969046044252035293432881867210345227258783998624080907050586804035799908858031810196443928370987278157903669720430219608846578121594214658939687689892810871983654321424125622304025523914032805839055575056099544361256675256190884908955273271208474159190897403302694208810487279894726252137589894296627315081241949587822671593848912805661670958772375423572508907493847415488021350036676120687743636229510540078209995284200232166704834401356765595406557119546941343371142399821376593177569384909948388053058654507029178598680172684201454441478560643838020454452862874841323295464603852363918193916767350731994046379333610274999628773858812533258464482720942868471959978565971391520720151632864783363281520124015650952188570182039183847293450592162694824338040917717247560236122484947460240657595785381333442091214012331646734458862492606202296109069343203244593339995748680270373796868796451497510720385010410140561127698383589662050499303965889709383923690851232007010241183187941372298683098253327167722681725278355688039506983517677842021123911758150811607363598931632579860043736536017537556607391163477481569770470099626137599266877831723872008554111141586816045202395703501965105269762636493747735503313829977651266409954122146518315241813975524861933295984096253061293707613411456237990129655010385624471945344024801058557853779542403226037656663351562553517383496866091336110307924304164596843877895080449868754605436303469406180707719590766960000077253021778105356511988854912791026513290496935089500675428999341909437663907893145687086392761582860206710120269038131079500616096872944068742158534090162594110847638748382259438857878538294162640500257603964524915059890655251646859334401109403343560214739664572039696513388706396262385354922300631196600422745141731091092556965899150214608259163063122451831262969254888198148339779985340411595300263786558215246328078127031778465952638804673341007869628474072413334123304538652089827717546761381539798881926358683052416057080465107111362005099215680619689445191879690685802923995048775270981989108495533647228783831899856071497044975364413420692681580183905418222386224623883570622161724704448817340229437834908983656544501832358848011198771843471003105613262170523884354616447052398399620506139454163559276110795617997867084485060434946891797819088149262734971197379644135090101789610341315942277163744032147920596239787131436342934743080447252898119595702313601454929992752273865560455883205276793921302378792715514644764020054887169274363164286934611078583768425155591330714716324368905261852931898421559372613610729607220206046435466600126763941632297944555339083117658187172014949922728930563217306563190662579457725995289176733825799236651801437981494025340209049749789261435654200076109371639376597985553748873731880670959587166425101182862651834490608615169822297361056434255968312153650458383993822414795736358975324681012098151798945669646794918701975042379453968068527637681605600844110931818499249645833613197974801098718076075301702590905850242708783521189462756731625523125148170953692931909236560601465692134856307491399921638742563952229651116911752547466666166429908524035472912865279360187729848746412190205632322478482888333659917436366408874037482729007791494149636519709989278624627223389509756787525103049094085233213929717587883667415597366920379348311104103022259253812785951775067816709688242837055987783773084075452752120658669161939778112061633667568531428763843292900807344564766700957233622732144795758620535133530770975869898574839791936523926948274074537922911657539189239166861969982337973815518127476038454453137084903364405115439526327288038003312499444100031119901093462647146732826554194471060715185437375553362724009356824604121755110093937547667091484600323991097290174746120361678095629491655902886354736152992811746532070567874645526897104813337496189002205101984107356821697770394410067892976356925229979634768231203146317561517676839411618209487461245316248848542477668659338104730217257744166914362111817738048970920536913090051113436118740127130297049925851658136485135853260734609393260224915502665005042991187295711391298084217258931850392855810995289241633354252369787443985461735483720471400276497397302708371003262261091823079890672920703441542452849255371298408350251508835093040414164669049319469746466159924722117729130967262207467629728954293552442706454558288469634671674917155420987253431995362277522292240926004401246770838016767514444612405425935065387699805543997753597448747855445985989316061606651325328855262248447426167264615878717960663373915898762961921832402335112683027291396298421983382329849042048377004961212297975068030972742382876953466716222032005087098409805121432053880290131059619273437230334801257458642462261127440436113633334174576275109156269072121987894572930667047533072926755680191044373072221244621969793904921590221839259346659295571697127538244224906185591379008042757589288366612991039123742598958867263244535427177306140815470009151622111675792920037944484352758903357981335491562359181069024137241203730128686816104036628204246949090084379439152085605118764026094364280968259275001188407535015965359824168130933485462383562980868415074788078594186257753476335516758049054197298242257331668707382533151081118542408590379627849630208053095428604746706881378427892373215639788124936547270311393429261920953000370820398560091516363400030930764853476934453058082214575718026810397789322175360066234192806343025563037708900617998467899798930171979030709836568651074406286341486011950338045571043793477396324958224811301077744215157226452428569114671692513694239970644360959959189203221976320223779178110380791290178824083645879402282125846913110309181162005269079585967719804187684039903388246382396353175753855751164719297105435752610678949595410294410446858025565688740266653014253775133339950952288038199961898217028555411299805467708743578664089733458330737862549683683024999298579651558576526187060581213952499429509815297979627333250220877245165842434466826238299718046980184200495647527146047374950019244486530733349915363617274364585559841643078003167845233561383750534561291743986481735120058017337427909614918277780720188506553299231379466241420782763775372890175531300308374882330109523423516434825438624147944897471905485691768092270554009676525074633643483122850900591901430501590515089440411484329220304478339328599669115168947113873010933555555745585754377786211132168340103358970399561331356244651251350564790024349535973462112443778494913510702609056846078447623814979865100088069776975152434594391904085243685290667706055701284562097999507352152453236524206809611339901170670687617040371104766346252930043793035324342206000732189122763158350412566600111827493578025644679688234857327820977785399117060779683398055246946569958306180224973163456755720195500351066605872813165660365142867193119335237925097577932347933497459790411267397447181229245151061967574786075483005206460765923532009975118449499171528708079266992506551996517013069788010098982005978403393056815369445535483379453220119678490168499132805321468645570306642306308581933872508980082050233748166137295666264107408355975380918917702965956939960864455662235774011313057337767231849152769241534102674811455843215779168262850136917935381758217170555324978891492039856639061311479039104684260604892305973695815069146251940836699545599785898876360894123466675262073977193867117166557305412203012805844648716538724735056615808402409515760128764305934036228258981282851508411154710956600216924422977306824377490840483461475174266438791172263639996998135213548073867815790909255061103412890090896986287042463295560842049306342114890643357394172737822392906173944880995072673267178869623390595995205910307547566938296136072446484648187950526577256004876573366004018713027890530338457269206079381179401765827700081694521991658236603028837478763924173633889067699907963911438963979666112440085348847303406838999561017089350830920412891647482534460284939510925451301426417466141949781958429675182913781221811580903187570190416943865475130434447588820890117516935886168009191260880643342983775460007556804367196265430581794500221546869045480583084260161117255886667774232362466530985974649565358482452339806073633770608900294790552062325446236548569145895534364581436966659239331024404251431219895224715034411159450026879937928630894656057663698517906065373918706308317886433159740466591384568139790808346166363871091373258065566102842382730295807079167480278222755741451625629219878766949225957439620853181624830641473870383428530760684639017557956383335600138299704106868889239687045830459199133602319560210732483986195299227750009693267070884708340766097372094052286252346029625681625092491756010604564002476940859184258688919345697691130395169684325821614175381038803246406587074069432457620526253318882947920582662203368316378943617151389069740110767445398767249988520038645833291019662050403717811312042839972444861594988437518315756507251345026950493421307615642228968088567198871267008870845842691325846040105808556795668807009267957651595398834738071570785798210799911644966807549337310917187159528887933283245476141543191605543781701047162173224834274284796168350316755217365229059478491666654356426628048247080608783704905476685254652483218963982643275167401868466942021485404612256620372529296315815524533532664448801518572468978674332776757542297575090602199136348842178378230396945611079188210457372234421747887172633130763008131390118509974663358959176418527565759441903604904997107434308092470047909139523855435172983790554499488711790294072495913115316865761832672016292247838919737516055918315133567533095924243421180602356041132340912048336567184282990373985806883140094380819221031307478762812294318464132743394919039367341138507812758497256021696097757724126104484665807204289520292133960141120525942135017072410119923689232439772229158574344318697742931890738936134054631731104300728765560668028582309719020429004419391029587604016228220687465671375607993899331721254550633193191392672511586360797839585852857913906423016014424288649486763540501603714228019957447151867979733813972455008830453103798761647601049500894499629286262108446123569713418884619149773796487833429134092656108896224356897801495473617479096467272921454970739149426872025018137128846164179065221873150339059716191838116048003284830655959366261108913878645544851285800421868933515649820230464266433246396263380936077306034835203698332668484733154229896753215764522930589148926063118391453866738031527098052505987122414958988556251437528623684453247721291057703102620577227683303936472204662671062466110050099542692408647588886233082653794595807175654689193193458357578696453078910541088382381305349470007244628798001359378305074580641756689307979768586980460198896815556359680107507485170807773493772651687717148512415791796145259567707470785317383648418226012308870616173503995736146270206278843185629712876007463816076830157115716174600345015495322179745967058044025204331375748009350403065577195102765001351310790605803479386836629109243067134579596441428691269625017920113266018401991671991777644543297489187906677313143925196853327855193897434388107769836649211547147386988691623405183846320256317516790109805493946322251939860862872523794150835087285974966610402482390831609927858190345582751316884042079834956859035811062067273514927669007689824628538100806272821391546776585492050602045383270221238756845461444585716160033304759771944498756184640971685763733306823627697699052923181889776546613635011486956676922499194837037432507903080546283480563171893471034513450168308754527632104819258428613927329151922194317010145658007005397165028143442349609731052308092424170205640016855633912928313417910797714183845578800913284638067243972633538779244729021760120534257647155234917018749073883951990174460282940330886590079188601965936284855282746898291665297924327010292411582535403233220386168134118933907852694696501527936688421691434874230689167339150303920431005627734894612659731523193190639708269408998098614268743043583670985884620072670935908443742348660616522833687792315542525331002000012727610299247166825911721131098523681095307568405310210546874986652874232068316619540707864661053078570562025798071095061391307273567057456654363962459475278580218492695700699262171151373593240518524622925119512955929849968549883202652144260640822870296466584747923238126635918161882221546332413964987189789793040803809313616591804162720268637447801244252081430154307008620887956165017494384782932919225630066368314467179754432129834052146478497235126963793596679184162500069025271604933776763562902064840522138762632718521845067352027156221395537282241919648603953656564253768187491150049990213606205944156017448001804229321381589010168941693797755502853880801873096796529390127215434007389006223219453544763377488420046825639923433579943822609646515927416986502742892483226759940657443789750696651567047625169657889997385082371918183363915996540925958665404916395598027640122077386229891802049404095210456494623578813269824183715402939765930100672455556688840885615806362319378250577535174121354377447433073192903791801020069788732882668675681166827765473462810067890379845239669509024263876049027459269060167618295698697981066396146341832414060863435150362569793508014995533567499022266607766668477691422957926065183385472335005076884013021591563457696800313979908890369367640860312489511588366061725156416016547596201075812800643840958552835922522636973146068628258609624864359802889028617771278225179135308287076592939063270292052319311670084111402338247893780115542990604681014707497481861685943329075410874799026586522394227056340166829635585866807242711756433649927034155348951957683076287498610441828350709191037850283525734351980464100280480655715354230013719371013009294832519278505128326590741044329587094971932670762589074640954056867544223124258488695690948813217991673698260614853447571523238208642777140516048618506913459573151562117382508621909667261395352641981201391813324318925731435084059759295258516778005372460769702463329517945767112317959949277078277174864641138471941357657762176126558307401789163609696391498918467674303580771485701918977102812622438815002271402125968137564416543537187347430591400690192198981828637543785022909148637730389285230975539035431007568867356063932071824272939721563911530341692262314650342130226522560419104628655717677674436052338355124593094654609956635234910851576802635180834259830915753812021499916637279796771536899847592339013512853249992673136978545004463518228615912258359259756473500561048869714565770432536221902735832585318539785807159886156807032830333879654944693118673928839787721940984953403427152297746253257375469797202406217768144182611099405204779087764882330896221321071832493429345757763088540712596656904315138479270160791238334398610443870999252454083982340597494353953548220545672134653655274311405844683286654577947539345417687224048633652206276595684232101365380089346396646835141772911303221081566383390504310049961952560436827901828077179134906507837245669903500859344278856839693227488709157009431471642122318203722378487552065585292612799039760118374603244279220420228796056314399882752672859343962125842812131279362393037129303603264706153360127778430068417036349404429690569450319681231446422173431317229984893178654390337831884257813563859119139375655179585193936932771679813666590078315812134364721843878057384315814362772030920026939304825799011038476252224804605510809558021292153091182679971022285969914631547052665589531300456562467342757600938200859246673618272504718740609688943948890446338295222277482966854011041091247707604767604351118370326910572133337905888185824576111448762440158850610518560678298474524555318886843654408730726695316407836904125388875874101464012864252783585007914673534884932097998596756842307965716507606893769100684017824551011789977718818841936661242180705072717217040793959498102799291627075452447173110341404401757872418932776690719285230128288959187045950651289238305072573257740008032177537534684375424604534012179211164965142740439516304869271393457233672707826711310792989636375322109539141183989002121343184672222183862418934076137461039266919081155360185924862200310315566990906554551221293050061827051894400380882368564402170878575056243253024637114381329875138736533072942616418985098632595106586278413406610927321883250525855795051612634604578683761248760520216494944253541759812743181024757226634966415564391845330715301481083256842972119660205560993586531317763810328852647249828480478394854005689274823764357173488423551024583233675452767703326917110996039092052588752556992927446455923132268933278465030600059045114758292550507931190996496598471289113199952777996940886587924170727087891772332887074565770859297692434876565260075394382721892470878433842055315992048484878281543102532436106258180229752858690809835353071898119097765660027779675755200596398437141052052000002928312935355649073583952116601898862633783714302394919877674382109292230465958377925081275219618588439047323796277324410951291977707699138743575779485452743458137932807552407145238671141874839242889889721747251752496463520749489739010147638807737485614412494930732468178345272751761300491581014327469368923375656150816310807986615163988456264092676944620310716174452641210278319259631979318425296166019934787565326523051228535259376949386527534302886938299988547083590564094875773308965711990222185598519179365816794010846213885885477799234347568873783688234037367513839787768792476213830136832474743817782639305159717186555909245726466552191420990677203508829200786423524667034854212816205192840223306824579584000493001699961091389734106783165470252673776714718033693913353754124191462632012621233862705829215753876789412655773278206252009091476435529253561054569926827576465811487385597707572207308258713921932055535049915211995049034969489755550773560962299074491703899586639437998942851079369454711496449854882527870821429758618673875240874322518609502760773099051750355602708087133516267937028143637130835785082386883981971239572801027545215476611143422820946850451619387137610128643573367271181812786041036711728822769938847230969863483404359246113664639636074344180517366540004511828824250869404288566933434642046574421544178528035060508569713380644879748012992239658705221435633965269985140936744232710862399708083792472380263626640036482633833144249532856151479394976096688634603911069447307284945829990219341477824291007355201169276862791293979981288694889753571852381813524099328014197001454436980134995491575210983867860943873792932704657360317677936812780852008250360702335937228693765409171940803696304884602387473411764818389021046001067243700293096604394214833692619408925656773311946754470341512618965854528723210859628140903592364353354396039632730114799172913809595381526046154028367005768736957663571114185357353171376430517462582959145791055024543834700417785441885286284584522303051055603936646163484294549302947187310531116704175985158080732490273380718430184883267498369050751956285195118746697746926657058110617285243514783511865264094571867445000406101255097509892273922880673760963128658252339940706239717889400146254839767883095088360061783770037003240209139590063864775883385604564607929610303386011408895018029816669007076916969331708293086007942943717361220194413495734521290354085099842933194905641821598740308719985068870815275806320449693487503159917884992378770542973823268259164255803227436487285854895222946310566150953039874980214358688367325531197030412837713423378806612690023611331839612513150593490844780443945990139624637053159476718894626316695784365347813800688713951527391999169911072533054775227751403162943920813987614286697891024611926649168554192327442732187533310784122536020530845767063195527320958267325156278812055231999625286934034812911606245153376688617078921007586799579617112524144979520648986667582641487742594644242934849393587841220717095631774118583543154447251633580981778769913920038711929318081329231749216584180155917917666467265912819793234511236467781552978467304357039770288046990794481896716635191747700982496891425802511155219811655947718732975201604511726484483934218034532847126696166279120247359542909988976556215165753159323271764467238707100324386944275026695112553294736954255355015337418063956518618320215613470793545283593568784947952527026728450209878549370493146059575767610965063834049999799706284040980237228349480686519575683549061528843757169924202187176374342232420386056706435810858415687073170374619784747617135378191923442963671468211359745221139201025670766480762198336421036303823296399661153613647400382172412735556084116427716701192971427453642949903216984668649118045191264770631427457396276257872423776252452531527145682698910598461465116240694951135186145567584475056365223057194421004046149988364380416351401262249833751869480940189876013023351920301569765712879280298363346105538089602501560124039801894634811855286852980896985910525225227735567332605566789924808022586818666979444505716823146139713891810130621799727851613716889219895605105690193808572973197779901236437973895617182409445263692585246183130232451643833814905976921805725621710137339477595637811548094092825574188210168610236074192346469826489640795261375777920049247581920082078086228873960832942793930086158704036211271895342254170822831892056252711388702086115641943869678631389250442191059036367370769538485690571909146642266546801300362277240842024123771939146321925145378314994728519180009998824870425001728665990283051355649372932242604688733536409861527373114583444098582439778690999463488517186574502983017831059622621191307325640998960361741924523704272083895179571827276621933886147668101978799013010542921868654192952438707138094831021794661979506769813465646337125418733487513562336199015095447803496225598744816376660337331677334118703848188190836304558587463860832105602011389270160600665435147802601644272913293672696573885869521774159975162357106704681199320013378561971947051325133596404833696788004943755018077145718034185377066845648071745992822372998787924416184153936056138867315128645468738420210373705716186303663283393881175734552626059419030322699252712964890069669669992557492980895540288331623981565573066249927424267696754963798243368443635275880844379214676121720058103310876929935585552100624555081627465668977671680564004040928516740245856130498443944240044207675625043357634324874090438803820705796066449072480094237366133347788936094761317766001771941064418370666940337544929123773362081656514388137365425313056455618719310974285384599379690971344017772436174729794486905329252165970866800974094095090996014624240259191538983683305077316061158821510899547227449213048135018685137739396787085688693899534182435919278751216363403661557701612973626608812505100739044522743539107201284405714430831610282075375215780798826527970190439082579834002549985300153234963464912445229996609219162427202438009098087232795578076916383207931686515698480743136187351206707775351343875700721582009603798039426267977688453597557216471659659147031766298321355498871160372489423737040693227504565615363995314955175444317125856482617649918351339279865351718061446501465648826471447406715752955184809559590989298338803351259251681630497977496888903640806179494012450085635964448129885048847156158304267463338141382519537964141343308865705091014597828523278557200171842896461429137783395134457575453480782225568162772997731818773354332267025297724269568716283776192343839789315946193551017765781005194240052896676773493770950630336043446894446688301739652321575893412615674137311234939912943599503876462679413971654267791817755757460890577364825818414425048810808357485581842066870304121875640094538529670772648598718553120050767671833600101087754790974496805948269811320093652363582808232246638897549137136711773400791133650996224674556156358655953760874546643080383614113284059446218051815984004477917190219043358757679632792220515779448690656348653702548810877519950404484540775186009518865725118504515363299415551664926941185418876391119037096656525177537438025847913517140792362194548184125706049521868500385562916111416854614679113519655712601670752495220239645931277254964866853483934299252345564863884749608392523982338616098865443567926667630849735009110058337499887480101448893361675260625216032511562901666371161599375073168813441017182712836881279422673947317359665469439777208401872497971031240931651030307514989762668875712812418598789677137855013510735999444073136399091481343659971348251422016821025357580591524866688173154494316278747932540845327713792163055068194484975349172533691349289758360607599289153365281313575715734531528269727513744878165374817749762243937326459900704976408995427423029640668387376205426621111137523528043745400157456034887897833524269871802111839470403331290672863130229570194418987110106629536608904795075489033075372697976416785903409852108455136378808020165163110950604879535488819900951835498381888068418335875153726967395946923831786136307002149542337566682368854519095212317416879231280186901283913271001621359240969028833066070773055505987056777483327581654288189247302799356913767629270016347849966004599971709574486605706140914539636886578744315935201121868574750461620393698102393133992873285004292497775761376915827848080851046817652736385363610128220040571616301715637903225821600489999377691154279207590722296521885619643291012986001975107726821572995733933620277461845226611622837374756163068847437556451520856459252927794358398682324180510138914642034514164896900753532103022151254073522305334062536255203994382570650098007746123895684475363769882869779186912582275608922321793878003191469822381367267930065790947495344279760520067817164681548965949640797607619274692410500987161557987303937196413291355075660648468385076221644616294114807579293039858493929509299237828406338291278052308616876295462774384422339127045879108852766189784431169041534788281365507448731338494875290709232109785167513675166680098214037724017369085431955380316705370388195374089458274057003684265565369146108673743124291098077570098527561721776076276415436413908249980063220460357221795703923143962518973736830286280502486077314668481928193737344794854493457344446627542576157160767717030880724212227726068400032590831252270957794230106906843851138059884815275245130886070249904578373469543316936184862524702277625577034636665086397618732759789375923180225731026388835306597704858094200465611285714585808870858266683925670070647086027188871004478783753723098838699020445261764458944648721849778803151815051205072535320992506341006033034410081789333772841815060784094702194722263169144926516895164994388867034286874382942302313176416825131920396759240908899052631440015739582562579185980069428111228625316057884963472476807823898803661376128293433616941510474334499774050152937764430757981945348941387272145560162505495481082085198750002574642245911274060794030946584509857581780608053893705916640924772491570607342044263466512854102780225299926899711584396557687275732520075287873945368366668268957329014495840320657344371101632137945681237184375567730996672151439951740288616239871244656182941683625660618056938623569880837126392109339717273929327761455806152893954584085530243870086302992038986794485870843759725561088811423971728087623098737388452489420155050408032074823444850777685293202705436750180393844213838749350967436265311108432629799558815863231500530024530898348151476678802437153166664587376152752675216746612449247037617617267731786075966586001446204343918752017506166282811626335326755775599255436805478414657857528215138955286240648201366428455699100651560880845066976408595928723289307004784446152299396943349482822634357912163666780746081874387550475394579002197638561319304406899245337420019939029771235770204900983346172198432053394353458759871524280773910962836362724234515587640752879366255464737886239279183322463547117248313795621191895620986603476480456094334109606707547811271469529374275413112269714151404442794977206217903423436692088368819211252798381730365790070974230346480171870624843547764154175799184170704696616804193392968147343710330465640294804500198076734568594137049176518697139706680101821023698125337048508392968606364546536622518688416560702838365182991980541903420456132365617389129116434060552890861047076009293513870707316049586540174688445658111645606286907003188114830489727743192787589346233621795550603635235868950356280559820773026664263439945282107438744533387401774455462975738570353677961049443758354644422291370981201908736894611782506420901101944236384062674389136306694275757374163522119215343003096393378964473132631601256107890436598047043202638482865664860592262414386883253854524708375316416629704087274042989859836805709604083702578719648415998376195273592168097360631198223098721646131974669097148205786623046598867468750385726886242593082204234793288019252087912374864870658583900491437870905131486993660962636386197661524220160272501183995855511629314264427637764331736432477997828164680626467815426737738254764163216261330187798739765154699923192781778426405777054744650772618289886653138204639918388885051233097647267142982016373986435487830576091184862653789846140410136270681028255839906928272996723236469505145506919316191776020630812823538820933584014102237465328263506558280348738602456244264894108621961617154966570094356475724108973041818634266507619828481363890979941344470069748353491304362782634825855306205951987776000821364196373234277478908049176972585548453198084884589857956968220749219400129067086955170287977796037756434271922039017159061448121448678312767458979731945348640917060827800114468747724178617888765847178783273735233300111999713599076395134436093034330916991435939727784234355485312205505702337706270641261770990915574075346109783354327936656047545734320093548941192068204387734225058084263438708511784508669756619344107424885422281361659383026359738932311070407011825647669436793294749933995122061901606293282293197278660989997319488656436539116999568003428855588339085268269827175199661281037038943115388356793954061689993806484686860865349455977118282222460311721752044002229281365447991179644014746584641399198218836078161349429614749458479331390942709878097023555052076839581073767909874649156170737350072053765890125678405258734436873201626938993071097315471685515326587488416763184151052063998092490769894376945637354093419037091921852205050094818849579708027453866835768612436924147768364225585219748774959856364981294482144162838322785050881495955254524037071668462927059058522014162430158787280768006056492044202577910030259418055216838024988103278256372859212701949921724164866614956337763739434289073429236721354975689014535965106275398309298985019123014544268007084776788871541577360187158958128678837288170113644639766379686846111674687643867721293690601274998853994109030657841384401225297168314521603088932472471177071297494889298570885370282305721641155420966904754609404419514764009027097661046443840148871845972047446556476554663235786060813409026095459596352984961996733290481072654376323668579163389115049372232491915724700747008027636657895898841775835127267534667930322525876293311860892558545975395741488845224214054732620454333710249436071405382353334945156236976058431403469696193344660658591041628953171965901583023837623121822293384422887252776188658512176687642772489286965994241375609773877228200935202744655418720155848514107996466756417076804275617614847768378811431035445258968566281534688710019472371772164655639670703192471056707139295708442380302628805525736964583613788741018681029076412352739350402330724150092744496148723679909160036427242970645548612129532075829773325607403694675775553056147733911358991489513321850928266152471370592503733665589542677383319789376488317131995163511765005521694649477335863981689516371144882295799786383755926495849129187106419791911414377826582360462534019429649514118217088571927550418010801381120993695910918506839205890354710044467297317859077708179829928399040121768214865271149567818389386615716169825062080589916407703604782644965757770769857997124864241750697713243189907511194108348708531699213803103909884066930009565742499923939748733355887871551313929847114677544441365534525177707570679213025023534777264936243550799102737404822794636972211663411089354732264538413803702074425500152755525915013210666447748061682102266728338299310052051655786317993262229603957704601086268075533956420953413860667703631786244051924473100715271780789207642937595960462730471495659905435594059796512674353259486457266648964921603259120666085036439928408840797535604834115424525981834088827143184941189495248739512671055120833278664483843518449850040560525972456803301525825130744376858474815201553978555557970584069228659664025998549009564396420860549087916743373910130371170171581852767354392386602391950352969212623599486339626623376399067814801629407947182227924550741904961171886517907885011486174011649512539159733188247011717456831236995048093215225936923628827545536977365175685758750444929322924371088373802712830093745537936914455100080550986121867831176910783790025568438064793859029385065111890322786128813314957558757901678983845763151262601713160347749735819829531838948139208731801825434502362796904844987247701419096668510003940969186524719475073522817739529864101692978460481689365697875707067862824493072629372469648186654194170638146836471980707341182876171552714871163857033579587401163562920971339285509065120751741046303510359460675756337806753285770811452371962316516424667726711707163468365644002411113741898108274103531027797652490375388269500135291665962628549863987035722699050619026081666774179762764284153870872066797883843104197447775066762583062209407436547642626326086569811198915897597057274561148930593456783980143766844931819714477025527287737810495525873939875908877828015784690341158945270908355319765522021614952387993911664349774644839604197876942881419858928246465211094052686483707721148634442488552357689088601127868585789097751804908374421017174983469052350921826388599149213203180063288688520679953799056556861995997229942992092284742399819163674400565143944172481891752723528299906987135887747320130022687992623795618917420175836330213501062735929889212949360558883527822025595421943361977160013834226387015430762429501859036899907892236661755465836521973518640121679657332525737190603973655909950480763144608954417739349164835169400852569939928326500711601727225244574849259235016382971569150692689364717681648981260256457440309065924115741630983200389506166485950036338613378321846212070884412971692116337495241246528056866058342662064834549515696452534791103916120891866649064570425646189238603211230599345483717479961010840084690547785505577246661610003807311359303822202073484657590612489835318191409139709934506813227779324665656090570162756983574818790347700973622215065817521529733237774713904339285730122658814939311447848787188591331135394145763738407241367011231713011426585264665564904844066415549466093023497374146561140905761754746843819838675845790031948006304570768121836692075504308936998926724363767263385199961431220422382250339318863221189833174444986592162539641537167304677242939820148036050404329557225301914384535565934347103650979833732045393511579098972770686324393351705805286825843956912003430117630767100320674079305655170058408890303998676241428908828615274175757877471895475103813102534491279669991303182526489384026847188994986502899623471100752439528074800968100035623511776392483541045946232757719162274623074185490850236501587596793989508838273446797043206335096917188817378432224729409439499522948647191308499707488301679321843750840684884832925796731431926977739137751170092871683338993925702257101842673576375661010096931257540710893161010687200982843213657056741575562045307084711412274645081394479190030924081138986508272296627424440240929397753310872559813980460045885201662895222725536212419500141862124160750924728209544930040120852307994856374521804591858622450203348014649981559409962139951959232039817291497017294183048492756797659040174235909601865498034094201337767547212262247625526671427336016216957581077555422743874733635943557660970418694271824231726323668380312048370159386470625956640644299067635504533602117465555048840695069691136370267376114380195542722082103757558495005394711761742356680312114969182318951088642888873328905427731016745758537310635779582342470233942918494336749615315263844318313671060353358910065000776518356106398247905274223122647522976813270713842326894075830354962654279408317787293248176007390584495620255194207244481986335868452201438330094295175224935982221710272435126735400898231521387695579844788862923847506612919870888938347301622394673453180247589778704507546680141041111032781129097567662819262726096989476293274961865135569874347969514191151215124033849982354628392666291492010753446549034866459986956519639573524918691786255463641610065718525797271857900238911503356101822753108732504366253303231717003850077887765586694268301340220276232054957304545953726573274478730004733764298614759784601540363979853339732759319463544275919141249214464281101364121621814136661584720474563502377699181477126641423987667148224995523583450113835263497397075081073818303402907626245122750414885430868300613492317268460531126153353609327579422183343404269216174492547749851638358982569060628472720249706924910771365363333063999767079666761398860434292013800567462938118884320478072029080621202103708715112074381912952904850137145051288186286762197938119003154438823074271258366020057268478194531710429655945767826862584399380427619981654389636569407889608533009309875588011517819213966704323921020994000444366535620930636609849392967710611852358884563386801454160037592280218943069032532726141206931213789679745353025862196566402267048629607338043341689320191994235913750951530804738929629163970371401493661159730830949801254479858854694443402617696311767546183057476963167547112008113321976805524587056733354153711379229717503772801274292380434334987605094305170773653427334637798190259552768856227886832504323569507260568224804104101829406947503290849172933733007554840964365993280398372755961635427014936942880454518075051772222583315842985462901114144993641519127918085428392347650099076006598810085961009062075906081982682886474948728191938664372001314986720305092726726993862602270974665978506611686562375380755307123946435234178409423511366544465776814498744215423230546142687606027316550231145346426408461710811198254425678263923389090222724549550756616307773700968815375617018536892808791234497563875547375353841008451829841651436347084334070406535909905599879448508514431528654284062427825927276175135260793403763234394506874158047107135467323958996860457774438328979690927068219243834465428800734157224590400344806934938526578575049818224306990855872648597271347749458535192024405854531158721860599000196400141661112328035600933952667761277234785771961634041981447298363551415251741305844802915062750286801681124658582691674143263854429943396480520329789823461146801344240376267491622862615873538405240693602520147134252978333757881341629113057824459798409788056137282206373919334793125731385305733693357172450588335341911480643862250880260883073739753651012014551516596530861555490938360493645087538752309095597013466658601765399554802660935143989687452930438614161257247245581000516359155868370456642026270218930703402460963893915468972820132280592216768649371547623025354880496393114630695386126779120963068663144403860904927941714050814201448630859424961426714317008152116553358792580208094493592204615429146121215320161427047495568955485275875628009299696356181426138601710077928193262093610505110700190129486444494645080140780293628580294391272095236840737646519838920922908031878193144483724154207289594323119794966907777008359517796988352956419834112598245247603055418978721213164236733617514158101701365480405518270858985310613712563406821299974289764047800254367928986001380885272693738598554518767581733676291280019750887235461707607850104009863480498064860229161206601733105924516189056574311261486624507256222068549240706436774946730165707572848063164386418141814579737456145042053315703964290627974775124020004547912667256973448123608100575497359379351816153803414356045591763593159793745043031323850067782323101208944042627345155244783914414102730148177945427761351103752412954604012410723419786207196745816670529715448415631724901107204825879636737650082020777061289432621067347146182732676983818597125515768887770879098515167843511399014299509973286794066860452883090732527401138423703774459961082643993421481432739801618628781528445823402659614797306162595816618206356800797170369185350020799052957224899760622400322739154634628133522385089099166478636618835010737336651425454326738781978265289147078007919635719488285417891448228728092018159117071347958756981471119929188137193147647544220136268022198730473433770935139154973646824650855184512399754285376652324389918612085699368267868993475403520495511155448278087499801014691945570391535762156717792800296877121293427797230079020676370077713563939047335493906400282212016622937653544032469747518778295891809684895311467963178753014400047460988232308010772325452393099032191252347366650664355872414990937722929282921029684286369846640816156461142469194393554444040047369021082908759630700462804388468667626322006124073102885866380557331208537797391567518122818132007663041626424169547504816357430335522919020056285483507775002208331870544666070650761504078087162644280791986927240668594711016443807017300643655096819413819639939243223842299316822045139807825109472486880491284137344327168983648831152548051070785296877679307458995452234155844991649393236122459593434499328548354414160674011719843808249795739007038736304639673549896774511054006609905129935328384980437357077747353471380722665892432215874058865154822715061011081877427005813561974719058799134151424468031322552747607745281362898757560320535776644385396758657656732237396829888636598454544617428149774827083616153063906938400863998084295672098157637823160308678564343393238364048708016043439472623649790476389987864665300697614849896326653388056987452690252778274601377266140367863082170460108626079257632796319103278762912564358092903415895522924677352843567981846561968616848266824778050052428400576052834517993719002431553970373132054139266834168168723161095890119556430091458480588260504166950157942026308856598238254360554528533189146572141485028601120587558599249263578440372955224781831829772335908316392634860475826685659718928392718762278926939110934506807966317415146389445321846875431861212532794673592738711100351891661786377347927436853607784006537166332182691250304339547789337919446428753437331634690727385859827321507952660854757557786223713490693915847872637477443963137770082258078155286412507929401026642792529748146203694277737483719988898683667438046881490594117947246425687508653130710588398942007392320635136138827376207169217755112572872211432333284613213826628541628791550352280864678134991807862386115247778258745836744957914236580883694300565865324591052026773669348434936909631887634653901320987660048850270892953908372170737138445497374614278526276654777301460604093258533967534280001795713623892142778968157613827708355988006143525943856291140713093148550093927875484099095469163865299506426770146091102387806965661452995580081231795216151397977279712802326811263384666355877310811803497192185299579033676444286585231866841054197983971135565022086108623591341354404038430263894798905276185176537787953139436203010463525473933283238506605338657182565379409058032296225446439065576530064214368101595283844646861605669764368900063641253368690664448958174259990134988093361087643252666782233617892933996842318161809426942109715867269441116040374107204181279542563978827009238053672731071777567286367030242569979595653318600095873232076119273178636440936452228300631171897501371263198123695884445829319409132425029533325563846363355614324337102534742137265517222732393528315250095379376367356517551566497940050257448634984435685772783970614099944680927714627452398358425706248261933136672745820032092893225851991340758695686081927831311484947988279861075164113263636143571961884000523329648142514493031244126441711888315287206546144691749113076241124502356338757856585624609609499717173633339014733593970238971939079835430259205579445158753929270871328331942276955643840864180593085126255736341612543911989230953811712062208222605254744380785408077552561862144553988838207463691105375356742507869353137259126800533285410105025744883202850523106854775300438814488445196839150732428891437513792419356258204071074552351653052748499419828280050630946718303452711525091378830029856495081059581420301294590173023452003013436046366536750648370120368718429004059560365746402570084093837508211641274900647329825714644262100386501643666868765601897699557425576407130775552714830513593701582507958763549173461391450142337168743832288039516292185018928869703560257309467810378926852270785482275964443761413266475633745385791404168978817820141701052608056340758866992746922468797368893807693218315288662610911623573204816739407601702944912636977848159982737388403325355943273026902521018502294920066079097820232744039202722580863435546173247451349531610354217537459250995933543552936171501439585628636249080678948814007031060515792960636018653909735281821319081386926888455524466270366951829193666770533777493490960934901968639480185913340510047705695979794126248460156290248446098912901526263067873973446215977973697597213518569573865720541468842793836793081872664121287333553879551902653996226083204831114076650922810298750223137423422357971051809035281692009630546463384123205023056476112553836056853826172857213157345625978530959001526533913212586751402439632086539170793373760139377995012142226511237801404592363425362500589538240343586644617112845657779143237916505607992236826235241466224093499738968537491968146867003539559554161713407808141028409902641197996258515016798461063403461132826416277644461726384541127465328373249224636022759234975246825441878903071307619501608945063988153559635349744547064907530705720099624214961835021269660639915061696763010818716178266198620492566145340795712870255824015071706065476565655977791091105755415392277883882909638231609830584466226169087241655286413943457620202132670161300844275663983657301752379292903096151487993824676962269212002168361043598380828250840177135405496337998858418273352676402628683359100932393183684480634310450836972253163939186207905024985737898387306237103751646016523345042576764386603192423607989605443965085296619025325006606177198445707139269095315430579324577128639685820706437423113297359432936208254579886018046294505974633520319558007816758981329849278141718925763370541790103547161683618103804307938845718805092375545800462384955992083327497008994550792358403736501287400104291617781775778291228881706534213812215521761450906443385546031070144917006740212757342171287979154800740312630338220905963120390237615881811897537794707976340795975132584467763822369938697155849409363172657028751941497800845655845615712723907944619601629161779863361005116246039731699353388921578723066161938119945871209134920222862620288418971757689406771210396156396963578073404334084708475922559283935423715540383945951033733820776856262194097614399780853391828660964042627100383772431999843145443895335130802218578929970958134112909070092618150041103731450904847827638880462493512291063699603319437673198850861090499219100316419522508060764636325625672757967874915831831106375226628292444116796952107536867353338919144822935049057834280634123349690378523742873152591018803817397110189674686758038073749287606498724479075262492635909745814644330768498402393354409069536461465406759322546041882780717273314863299766304411930357100310928372476037527506815933133134200274356539453872401888383199850276878458725029047313966193398918924794823225823448338453832633538188574014073655334751971250632319026852292648293090134338770878483339052383299290218712638619585754861380791406905253543451271649086691100195172198575345258947342127729402651810597960127287406825197296279635547505011629755825600206707223562791671962553866031143605429919301279484470024865840900822572866794656968076418675896278653265948162678707820338732968010682956839301112377916446319244488114997717014851777540711257155688060912126655513368780586185302833794954535739138253597905918346783579498495770051965241528144652100515997871006705814242002230240230025775388819173699909006597571071728825149983363144428672130796379712097483038810507978937052985546776457685427163122866104278426025111941651384364947187474860768212867511729484326352782873344970530251273006180231941022951104547943146367219049047849403007937253528350070337013073058113898159256585288113775708303983175130447672266443181966543759441546344547178854644797900050168176441172096431108801004204617450806675788601292581136188496515013803652664871756554396221187147620045929170400022930258339901713385462238522271525597580317005370560781306723311376509791976274500577546591485540868898709148433662543608642085987193371837271079788330814517690002690101800486102178696751675856560552045818067042658527820400334373684316606788585429630598419597467241114046341453344021729591562407893640382257298914929861158424237879599064916433736565581876178462814421074131276261422597070440627121774973139446616709435428348965966763911781063455777813303433501010462607184218424158974821373805075110358278421088715334828757688068295113168953660543600407617312231912761565893653580060701380613131374011885153331159675692888738147533583590749946562341106891402233104217734661076426794838665240131616262765786352075980876271470802810863658543394638352808900636111049914076198792295587454811251014868606900806445707309816138765986540134164073417931834591416425438786505606613070171378534483270607918954268972367925590655886737081123708747500596607041732084634358244650643990629436798509312871224560479585955663101419787547938825047923927198212757760316598703505605616257985387714096726771842582263817330379482872338914827063745551888257931448983471694562669258512988894909820207101515289501492466779334141433691551847117365357987452659077637456952231240571062867804525541257094846546533913971916166827913808526103501428272397295463747274035794128497137382995551312018574608268194354126927085397607777343110789240045356800061617954915762552072242104175783104279069382252164088791263584440380573544583861946286453454047318249167326049423793184591299367088821498898661476212023590638038039502849723038758424638611034095085787263934991137909292608438079728598078868338588987089387583901484285614704245227087562854603661160061711408061150569600617602624438436125274652845824415770678479593904131895835063811105348536094032510618234019524779060389284437832832358539467579394668559269299217807183788569402317808254277652680027840831439436620599894010928360365469369004041248848425371420805815252489100556302686209478327842117642743299201064433817966926355067469138813242809822526435569253488247685684925954337463904175882408555715470316710503406196529425835964397627470598819205453770512570432678320377499981502492045115171630944900048090267428110946629634925288478529475339033585375577607015811625110132556523935949634544303779059457385929044568222090904553354989318001962542955760548527649004393273475209712765975863394412573538911004365729435097996856480570923492275379049849732213574283453548307937130384790842147418780281433177826582101684248028728029410581455685456874850677843272165790118736809025621173307693384037849796871770948904734823658329542463969721717130105140178937421183328256530387894480633793206317554438462137135755292422294931118257895115043804697446494097382809506227910985784882634873266526092201337060869298767970809144322747840764119768291678330023167894796158076284342592054030399074822525654380175795135900401260541994598530397857014747381418597248195269825268743915576252474820484616330575412563810962303724237645511278155181204981590451439966573769804843365644027865096728899008234442478392066455230571414353523638618658321969571493242032270912452015568880982523614639094618371669036255767646485342395837526637619693170655291299674730107578720766996509406146682590268302667962609267078285604475843963046991206449233703848085118571431835551159405499068613346881045690807979767386886474882311671186014614319419574588623416173261945520213572961621808104467218934604315575809586399102741229049547317347715299148966556656601235462883991655055577058385677111986121769974755769566147656793034591607037836536783236220404470588159707864881849437404397437418761306861886376525900116986313037691306504855716077240652493797159870274174052673336592037143059882286740453420861285669138820028588973105434460462729893128558376961913312099369139099993658706382115074790964068811597539400352909446226918700117049279377060360395326182367293651943864012869391118248547613707639050073647615966047752456522437314445568231557814446732345063291843563159475038477093809558659948013289326617180432698711627387805247381948628635034282302981522571850028024205182393720789244780808738983171734835751840938683982018240300089013772265766134214037151842231475903990153246368110662091141004430391462421268307635140159230941583754916077005832179277264653377224919069489992737371466388362507766238560943871848293854349973585622496835106791804757812701052132806508455088469731405632314441449183851126073756938623539720801224163163598288415812732423713939583112075994014310633784385223895924608705560426433868396449585201451653033785031740607142427455903823621687692758170573793809988808930191717602208768285593089997404462778509375078979721437288123041549268739243805004632140551779118220881885247771661488446130724214226286161353144716729381076440982203262898333662820881604617285052559751843988405526429492431435697615491388042803568625871444336105000427557913987402002616312223628654874185339132498529590793598100781913891295917287693852775931927285009373275883481390608425079106881789406995843544999070526740052101876359888073806182961260399456960220284469211723226839642576721869072471816687363966604266148669731712052534490317254378788602183926445071518539625223340046492633959145181102279407352678639261213367872018323567129021867738751957789533847338457283744704894523490546660747741019642170254646367606051622643154359897045608903270329731043551401602220488681558983591492917768401881655365316460527120993996875074326886112812990122376013000130424109323909582483093664509638028261159862324165279778647665569503774262636916066390861351319901641187035497250288675769388173090588487765688682779152138198291536075809034536520013685237910272291476156071253652524343848377631962680624543426200250372874450197582049845443180611016217589970007253942268404909354186467407165624943668225280520729191795262985906396245140275132744388177612350245681691767020347539117298213923835525426929301437465235066094539487993812420559929510218465017719425084722447820356126153227987703023711671228269451731438717804072503587522515711700131594712786964162186585746993471853496519609853330823103251915407684101081082143638219810662136608839409154143615353348579135981274297622390375019139471497234989367909346128722582400324570293013352032993718277453260792448015165877899941333233018868433222929701357098814330765319987036099081893508489889818982488894312409888611656840617437947941108647069095374143583027174413647191140952582440465169848978235379004356062532238648056286659674597049958148596499956642702961414646440281594947858243999480749886529761264315626537758386352584729629519262835066635393808704971930864288783371923326354833695669811270501387069340357809523481605719976073624133278090181052831197164173052669781351714261064378574078072523812656870805810954066240607371648591703932569902487225160916309200417469218133397244247733630183578946090085208626185280526722274130562271016998801787994013871250175617880074815214082762043791427391756524616618964304809744022870712352657449421213585232766436685472430705502584688167714221082955192326086467953265995003181045735150528745545105568631705466256525694172789663045610964375793859582114167920691142210938241122496905659933358219332838908325450507062238700070725418824513431253632473291286940944487318285187417405031134591419345381213755560430765291039704569060220505653335841903563858090769541261530107052201274765985991416405393346773016950128980161589442721317187137008426751021245676512726719525028874518921820803657548517899215295108224623777268755206866993476281179332973168033044478031561431258421441143195472087209674564432244222674496889173717826116327746261709323716504535186381038847796606022393275396701819626255302922063673617105663923591726585190724163017183954706698830023448011326744312331898744344551510874748432561356764610063714183706544041271320059792600894436700828342767812536401937692733802981109383640051917689846013039366227370694909886675421585801606130127210310215157811250943451994628560752623689152592876557244323878614823304489219945622416616167948091872770846217580607933606844620895911247566966651391581741292606444152185008669055011731830739717923121226999990628176227370753215913767744232287193767758314190197143326201164502126619404203710421277645206958992008039595034482956476193015598975856790145736515127357426540766630746344398564546262032245448925141329847457712963727722888701730941899742433903686098846618625112681567904358512232125864396767402830239354723219227556685394312121044552065914027828523752674082466273283050913622394561193824363328689099716915738320883259244625663398402151589508769738340697688696508074160587373632464396267990369955066240362540020946207880718919574473556249038269867930068610961146082827693947799376009100035127688087704282910582580749094623712580727819428322715978376429756425259963324250385158992884075253718833210648395518718074903370981383158358515723684579229259426726140214031017903274137756428110372864323451301789359150008549756135090681907208618467697007788482286006266666005439238947694562006092241439552494123511493261001391188945722878498795311310378569658754712107853534993401269286646198239213689217577967662062388914289867906133663129237693546309965874688683802489437086841666370752107413964668586735351547257204454974236298409696900812255943388281486355392500904598243781769380867172041425372847338522031696393704903660268576334034854413554489631215944793767991462208638576403659009420029385564714465910108505412409803780129590958405431478887107104890393194421644891206978514668472241945526372754761385149434434312103842717863153302691461903825170389540394460505367168321702049740998608249568045149424221794584018794029485610490411204602921995979584769420659876129847315775909991424106911793675992310694167379478445035005275248839200555252356895263955358416684241838659483089683497872986616043166169176644661584393610087044303423661757094453658477641189624775863668435946955523253264332102099819418602008027364961702922888694133855511995019301617943111450176623198022686189487220842008713660674721475850043436579482856869074813711245234051711496898617939914134465854234194922468995225188049931753996138408917282470108821637109593837469181151771283388192595559037941222620748354910343810481427104589616168091632773959340829182015979911714068115130538596465587692519196727929873406494353199859033258763276497695390420332542623739751766547376274519069770889656326156142869982963436799849052992526410472199797706124047908774307735360552682892316973093791263927277347827485919230733095574358366875923610779256602522861610443728263571479171586475061958843411386712831688716794487442882289199618916336724912827123207256760640795503051485087918061359226355015351422638230733663734202692083081888026253852274339878578922120844638689298124914314861483434759912910010436793732074249065632018317462384980751961967206086199761532912897258413228770248119607411962199195444102922701410027424335444759520214499727202270078619091136831537055376437378420614628464289196633536931384850837549580372912878706004133573949094442626612823479918672593184264048073237782344143733718803828978260938376563937246684868100987710496630502284632336419775392799321432614758335848281105449976418633684653867557269598509160884078692711597678319779910866822938070515496585343218032970469585782641226740596250029788298786318033651051061797568318372112057860971912992589908683325196925738254834444602744435800629083911351737378133449881585999811259005774616519722494581567661682678607629626482347543088244784052716413883619103769444851193659301572773047775477832178240861220105839816270591318478942482546910377885138556502877064256151874938144676785964844370889838508500558015990517779605722704195386556065223688403379234179331358156044858399694354213738261439334459929224907422846241847184108319758625938681308588326505008837701770185096109116748184743351091847037727098843508504295161469658259398178508116437985576651483272045418033698266765796296322976411609869221825418042216944749507774433747477438024225902461205642709835807267878149931790585036272889760617129197000560300137729523889322101492764853981588644472658771021478430073983948493023905122900973960995424437861876154524030472942670328168027983223103561169295945186526623224252937955083035302141858041554177998790988162427310730625294703328990043597689378382753467230239354408133808594175251656099776576747434489503635216743928994528719835082692212230022494010263318365405349910879001190138521833659655286220977329019623791026842504948261101121253689596414334463070777248481515655583893154247501309797207759075030444575299039453671191814126598389008966165928709578639885452962368661420230334257802523793633059566220738311893114127068603862638429975616709182427007176618236898897044918622533074581364044956790672372928147685601002430119930160246033339986812665286551271373419803734329891638293780017855004042035858472693016035047261316813801185259425018062474025880326676070622967151661800009096064036810969004853851027688125330927319304204326247707383353009600259075084113948960803902759799007799093913621510049693143688367567975006767842905763399033191221244844084386737761367120181136599917374085981470744491012228240724736421525044793864955603326723353835486634356296239898995444647081690918348050516852946076676526380991704049510039131371073127908771674678974481201707591291504353682432918313592985891127168416695073628591105871282860064348282617234704772291045811268851684402326346905637938546298724587632763063064691720464251702255924253196227879462388299366591148263352980754878815787953907894959948807925110189610633171096912201526821068501399837790850487428670737065393994804585704814070126411629518325150674584934267853267582527342776949002630427992770942485345597409441923154835427264303778317802892891149080273523182378763991786064488998567324865075608828328944624772831228125801000269950562397406519570810779113863600364964269080845645191641902180765825233694179198689799967450937252921502301313632521451176434927445107295721966221906042921779753582395506877818727165923291629545641275519932984554354538958655387134813224645074531724487943079838530748769860740746995016551050644610080934384090652248951461456737908559842833500520702183316930666710275451999203169068059846520741746332057004365253055796195612623051040966004996945551476811671835713942298083920493162791286781395213470573110857936940228104518029198492018669242992644770796585849566684617844872225689333548257011418489530013303061861982751573427786631674220594183810470105547821715918215550880086785962289472395803230480384710172788531934240925981469097119227660413226135910169743997874607029170383235663568784813090237648465094181177392077678054930143845935879153524250179106321911353162776067269385787836353674336166242423360228031465100404672207851450742096268838940309695798081893710328785765872273453275188624396661546101653963369762869752299098835612749015331612346871908908013725517852877432391039522355210688771477835798396104826274167638260507351223306128394932045449187547602519464268064823241943596197426917012144984877404999278997338245381469006675618452347980598331911809964959218301029563202685296964987990883456999903586790424975805872388117520724851880854495054768148128000538762924100288624054094128063547182781899930390025538160286736024911410170537580188849828528135770469882143926191267064567327032785783974167481529136667681090425487411168645476305657079265078164293414970149214381494120064038968832329193731885020199061267760314311393392998099400138218680974562877733471888041159420189876082032230185006719449537634319033080478552298962120281636629897271757708559273701659466540313429525364054891010989243887211168770556873152815670161846045383388905430804064636541325425535574685163955025662931701152962563875422234567427883603788400570327012162159822795754942881965602613715683186327541559776166828003737341327910931412678148140023975504992521295085426298961602060321922919315669381781859292332790248744923346660396255198847930284257241748253436980426405637976204197981234689488890758646659710069761312964848974541804469908413617162077701921735432877615944345612960982733460375174243022575397192520931489927012073484069059535055564816744445741484731252470937129828394554608243745943597894776508370526572494851846330778322263452449995744858928133828468836052534576320575504538867736504185405132642834890094447818336823523621123535197371365736914447937921079238797507571740245148496242708813946213316864499041561086787420722290533069908018490434035906281341802991154979098127145852151623519939717501491025406741033834342019438181862957095979257788760189284819407692630531327693710373098639304477570562544019127058942235931538174105133587790752846191949034482765898412198684510028254285406358067572552526471355010743154677189247454582221572236717884935538848193920920437813027404194496983776418081390893206366792420042146966546155331577640216362713554885112532389549432328490898858826577065260723162650617924210084840261207277345386713265053480591327788023935081577762806283359485068693284812357665865292204838829319573133194984015687871720299595740006372348910997274128734238836187513231540064441591681030210824827142712199331347843184981188903276160296955503735830325895299673170891193488730040178517959610336808258853737422238183914031872141872757033119465236069489891604812369569440716271579245736336851707433939816767273246813511519489464818884019966618073118679808801816085852768523205771274734561911896663296607320608280444234848804444894757649772557820121973941614307491381208062403029982552284464126254852103014347684335063336162271122712056492670500883294297942910796703363540549877164270293200683325238164667682093837631065790862571854959112042363866232236373706047402442783191775015204403475184447688521126747536772144878332898101105471182564988263050666325868513642825841230788545712361186475941724157809509227221374042184490663160712245871758605919878606461508346111949160083203988370822547936088676308228416433006839892799212937450977877193571028259699850714017343398295518871806410160941368727288209547925835830789405734065107739598029273072654606511091310134451966646560225515865574162321470285363719120619472262719083750100119916161120711744862164775371725232560178957321438192979984042250732218343907229615356768905445419581191880273934047309848193917758999545175828957779973065998922115377297104423832906123205039384788390711592614106042121715224576400866740111606014893429955903943437294240887638559501961534794742776595183446651318138070908310799159795786540812237315507907384674163901445260220164366992112226577099368803253524450846610933164199527546533020225964917363368704367645479545488018673532878366535367610624539393833294979939796818224554090947943829085860975837192870561348529444023087109553503756485298294558040674888397988608815908367777291122228549638166272466912584557256629100697243972963087001047960507759590461411431507745920230507084586013295678206926601503285185886340772180934994220512315720862699308657457427221238829324178571783790124063098578020853628957748804237588687074455186991678609169709896565503887524236612591838420722394708633632803493387509530804654649507267993280340956320755374257575229302875903817869202933785616494833897722948619015289372061576524412418928593773483773287512134785255681989342756519806725523609601610766332739680659868421317438515323037608720903127748172780444240330518776539205611308965825768786608540983406198124966121240593479814280631918818551838159862080888068722751521515713048916536195074388385825821350063205699058173769023950528082824337151739728926294392918968499608145423715254933990296024518004843129646861076091608157337332782385535885086313392889572068574530037264815810157441534730713723940771717556724856056015087271929507232655364513833650563901663860136960152397348254220585035478651115713522947463289273036210145721490794253938545245139837250835454301750950512657505528409099364300546556825551842445600379229610792787538930487985545096565010906097883569840291106650753661038589758217434913971371081827729271734599077279123067579024805440584576650104567632887375205720416328456619979028639755992356891540965602078539736831327576142270634450228413306256536649970425622400334946561115515868821460520053013188352761353748168892800358425712362215479959481509484633408059506762020169072032769427790345185563808534357285214943568524447709473245631233883416523671420997593350318496240198257490529809599696137425755865255825672198316360736749697137808608298597348045196156495812633656669409896725603246734127013920982335189066884468803124735889097341297654410435488462337771107186273570232073479471470103924690865787128002176134108224846288752954183405021064726336325730179409997190349799852792829583551716638989392017848754859379945957614165246999680100360782928341237502457824008533924349049962136887196417791513302503004262914928192288137462252049886806017276248391566220559913859230900559321130011741871068949807822584634574328345883733974789420384965870781694909579505448084452997721280691899599515699330222135707530020469505267811499223891231272151292001225751904575541024899449946875315989156609021558490072887166626107803363906340215462790162061276088431163848090169331661096949684417355380161282244132322471449792954382745753650746147536975008355563913830474950647353667093613093298123525207414984716255378608220823319096335098174874123862755630360551017667412750718887828792603116104842016057374796368029709318993910364301723363045630360631014170842151276376403404344082264315027322677191616349161402438814443806852583434880272583061655020951596276670559921222130874396950117627423446948288479425261661194130118695228814338951466302711790862637950023841760637380524489897271514334364439937728636215980354359181067051998809525457375791957724395240401102118302220211174634155188588902998980125194268276672915690991949714666810203131485534553086052223100864982235348417303141281572047185680484499935491178463144942903665714092587943713506740347574193983242911559338682755264612656344657449179227971702656667177658427201994325081953160202640986477858565997002363828844927913485539046575071056525678527415095940084694643390352426635428788874803354518667547886647180072354055831063758866540947185732004447433288089686919580384252713751055547466117018881735662247185512415906554028581821200729229835608175292505298978748802183546030134795422347051654771014247491646364410627278321865215009480983498999035658943454624396568274072881084791917353054928807644849201492336522798284834345773619224798510070118086402386309796733585111352428983354410244222685897038963800708023548591918622667214176881021517886817520530111037482520492935066891985936880058815127533781013188508646294871953179181666315116397939460879426097447682304488673404182979325523574049062757330845601983591209351981181494618662605700567078710726270394128945104363683498441629312540676256033806532268929386845922603572288690265564142314560966954995476747568548659979857255696598700608351177742425375139201314180972218806749914494815982995456290056317629894218904493372941543256033335509483126657590716666409770855424879617030659459727442932567448282058111994309356729591731529399713584963593466681678985792683457233431529238761642857063289660080370908503050371265806228328856474887815535573483823298396798669412964016888101809242931282741259988728245577530135020561232905476810680089894847758749958083852799373707463716967518801612243351227380554017163390455437110728081197009969750394857356142942122527409257081566758462407975187977690597019550766330942509214130504669183448312062590215211008447929025094030376978637350736817761691523106651446987567327690283649160470147094130436320940109028509611174928807793679071713841937596206599686146048980339558779220341105293304204966506163094641267371175855754736138951823712011700898460293697392155038811615487271450007437363709458410902655090361130713141735893285682693221626240632311836285308853575493538670170970275048238989265893069702461342518713020797941363529983096324924803445847320936313476005199796088557204066425550414684536083553602672100023118535493852831541871944428375182979726899350191829879509942823844745440299127187929295293183597419226515946811633129669954654185065664550424757169688134995950174289301950773921916369256248454722258782975455682976043942487671112093515360859922045889110705763584386467168858390283073473280237709520764434392240589852118030780747498284779619855152532246604892763319259210617215938767526140894204848424227241154333698922719865147089092837424151217306198606543842773223658994113504751631462318935950365664575748066812538069660646389281963591117260601809588879911690618540169430697772744954234581802138907044898354101847116483437165777950387337227671669090348462030610799844248693014952969586568588650874444014317883129632753809513368774564498771408873229362079157732255125117204201400506100032094872549353096850160525300341016205931607935972818967849820075747887229559180905011856156123702421532281853630843918338001882105368394307839216377551468047630879805436812038636304336039840966690964265056762223247972558926597754539123015141156342042407062410289943452350951716128386256172254697638322428824770432518109007061867772719196427274692423723497069015850675389664010605627496085997707158665393634790320824078421440964463367444327978476611424120681613170260760157242728186908935042854657403715973138583696932839450415160060515705831710732376146911564574496898925405483664439279258027196723677346290215864167573590105804981436221833563377137106585195097638851036967492550850255569225838969486327335973213204112789517452631552975337841064202013628496764763330708253912054580912918317440675407606874646017217991548300093039775577362591732079461138705603475610005182691746424400870979618941616958913996766167392128652701448048092103671977537050117661556330936633314230854286128871492704973097506623257846313159119855359945730694979366869886214551210544112592338473907834798647395849336104224145796544596425418319886276844063745009556058254973726607268889595915249986329617513414645800713912422891653195729195421032376107084430929804468667747275894556296900498249647696091936354298214435138598179718518720355300015114891503516381575354299106000236605073410437356045895213931894558988394657813827759974038311669963232086740807970164414245353528108227973372075926115923952746848914749196270780505304900631146233365784466133898741033469670942506500377626527822850516628663537597368899839443012238138817936188900095337140078136355569295126728826958034932292670030845318462752812859382883699648811930211139377594420731570280343941177108131695098749966420155899780372321144647876727173736235565624393985650177631734432976598492484398031469390877530224801344292671255479534394156059121076555810197037507078349552585961810418582132893615548847569782446511285674778318425196133707276905639475421793370024778459398089829374711473940718215257379100126796207623610030277088839990506233093666697873929848517782599421996706805201835117883136843695470581921097900528213528987522450409453918977240194079527623079187530126238236142473344810157609868432295288829145931959849432024193559984642026447198194633154071226896711879320835859830891235145439974145379407951448635702031918597115436873732452605203803163804305749629577141502313512406212492659005258635968906126525962683997798635576722323109995611591088021946686764198167131018967263012171155832438288446601073459940986962421578340220428007514357259870646129723254093152678319216671690012507934281121761793529631345457894897426542244122781597223233564874716268487153396486194419065885490914140389031687806510838990448155371371195417287765307772217328717801692990756165035125784474078204250146712058926927490459055662667378209757284535798541717216644338954344244269007632511841429921245962815509495791934686524729538197914796353371576596232315215075891137264786882833801939534657967350490444771193861956537322547997102036341204935935245004847186257957365239322042828605553279278903815900577484618845365606021302697979484791920650563362002328545229449410298202843035984238222719784966387665574858040771621026938091469130019898228606915503978575209333563983312815392553161347301771615799631498488174783649089036443299224840715890655814175151822759615698530881535703718654041042386931738929852006198519614523424850580101690593523486572962909114636940109805034441059668119199076206512494271618845922835162059785335208907842783131145702690129621899228992303523265793800188736928428351994334347373216407317979957526223233789251385661395325712016865498561557577236303863971029495303672996000940911284983613792584265933884612369238862680934480127599960359255952412057935140086129926642602338563496330648904088062597499726356711402282669863379005217859155343005913886035315104492489604388643699108641994191911810681160629147195518756417681664545830122605501431982146795913443372624559855265091828103971766882275662602487332054727902182533830644689390685004024508783599968691343195432643717200084025702837482134484614629249514953748446379450955814433895506189268659586741779330511009192381870665170666611512770816120258296050255096351587096810875888756806773487798915348780098528903231236594930298839109509831971741457368498958733893011607246790728717032071352795473905888023530499716206760516339955869356606341606902974495442353321592490216659091534117957347813484532671221885359895643995390319609226269529693141387497115850335486079816965922066418912497091627670871900519929509055339236934926887438056281173570447253402420400187209023756065852926820239460344316526646444808874745507560241331076306818184347703893787489515017487216895459295280628864336716263496332392676511172460452002110283019388213359656954670293880736374794402376553085464449617509435373613080681594810598156763848866399919048830020505335384069856123501074852535999770849211605811256795152451215235523361644955261114393540402864073708923511122942224876082864352932438110555294364880344402297586622169778950684387277100247563621484073479912726179351666486670263947235989400865693159097166166659297548632982273357080432943644682371620769837869920374867974479268824248550654063208495488337967014959591630270458267692329669125491603692098064258283005578520889283934143839419642445933394871252346119035243214295782860344966637154096345039629829464967200781904210031360014975520663369587482183467558750582970050491721218530442795828425750991632494393341493826749620940521085726948141484978076290261396237767859087653313518116514063656248907882238992678016698193735405596743475631117118160365981289535175730085073800199532351023734480908898681934988583474545843268292318070807419247189192557303903546810806830602087371153363544052314254180440611668311712328605401467497076145628027544283805258048771579408838106424981241486170681464509663551871108732852397553047722054423962482756511527052545694666475353939970698286902136195089429339258309822284986508670018850654004403318466983312878465583871626953750393742936603315184932237608122994870766800947010585661327709354306474151541066060390415715829412052847046958489016580136634631996582721816598541342780523752036058239687321318196357428580761910733859432543545969669262292951810667269062213211963428192373403911234004939218472925412122629437492340684825720057738602833787726738410454754042983108733417177965559350629976765940996701594387178981184911421280991860813052264419672634712287635216931740098770437021269912933743198074541974293338062396306645762850132832146866416249875356742086620221224154250870243315276667045421378256015417300028263677890716549407600834640241168386593551372100548075869599601688929222477719571148317051912854763792983348173852792229602609521350445432089625219323551450606987072863520202618199794662979347264520628447747231658025329355694348727011118022355319383577153437000965270775205557545880293995233081891710338614553145630332792349146123363806124493965921898336518676191680572483601866464148325747576126024120915467215871983886081728550711141762668361490936499579120683081173688885066104300049320806517357465312131207252006231557107776458109302474110735235198896710741334502754915989799273079670796305518539385982322736323069196596181867014655840692347070324962742573639151787548235256041958850623644341644946678337135101396504276643871497835531646359480911189939945508901001422342670582163271308108027477266094603778219223992211916814930557911905266057653862043392275460051160753512069500339360796176490208566504629737490594465734516677865942548582643669130730381824769928786048288051245165739841599138707846311205820219273685939180971071850899835022085015474232294688831111427301096006650295525628164930280078332668171420329494350768150188988806306878691486149312754982966350930975183096680024763171924860811011612554900840259147621742995141041318771756892057124135783813116624302575154156343486975628446820580727934237207602239941780219451954501428946190913278096239938166039811727096428921029429638680816121383079323703883884894644173637256176718782730127505453563922810914126495009578424369079372526698695400570609057537698445902987661760312628922414968351936927838163206340847837999506051451997730980913388787787131070093916803960723131804855725778057243848088219346079342514296505591049577121898367892321443623160537300280152888009326756051955735014909749910686389057975595193520713015374057197969736142376013523028641994746174593159318205950321656627730072460019349653090551575805206070153537808789489209322111462357773256844742604416891675929780946109630604974306234059238767356828125709426418772760500069740576354395129286915244201626742059937710698830384184037875892398968522834772327223822629795215603143469222117038042395297486333987466677550121904195871073837023704660817848799667707312342989577520947405567313437122346213803577691129792424377447890433765850009400874954444875119952803549084582710003339196887586670074618092627624841320133077800223345849055958637603884962287037259431623086343868903319075454912450118893545053484428568674467896573856379539975986236535329636648903184664531308769712947262635662391290097891184721075917715950109993107507231929239493914987526838982130255702997196073875974142660401460966266328201248106157880627089417018798900610910781988842489966242477034026289920187587243077625416833390675916189462968602386693807118796745426510149147515825144336477552943885762902868163861267064470294401241279974772445856636962188255776302293259361045070917192053020599338366276927712581347473333323862045451389415610285628002512933866744927731389835737512574047482772664750134939559871234699798281013651427261245031333935006428526497507203927701426077297983083512244406970878841244175775488414327466664265064459812333474813075732881869540832843112778570834492250399955334214795558639566401821123210748687993944269731016207254876291546804323190739627141420185431210041379672229534346781897879079882411324889697651743186791128593324475382057925529587603094878706836869078948292232790645907978810555645381315541626422953012350430811589728594654495084500945052128149687100125332672327294390648948239506078990526167030358235522968385000362453478259517913021535396775666197428060820705164807902413227824011988985442032554732779560105124626162187790915657146186230824302561676615287824652157575131115380858232312388160689145076776822033521099086787388431730421037552710243457004654740231591688559534821492140937584367534986135853642748976068308500126650262497391738924552403594423692473684536758804356086448841793648330507861627591687429426386424561547082969911615999622684261529237043877950081828136122505470530176844732637285851170869431265042638599868819019704148486004091796801969167280052246216593654696850421309059718491854335902212581040883900083495095345606693905507132595543194686690909645939332801716664993798351446451704690472938463498080615339944645782973394350496741179997366236035491721729394892243298360170369459304250675877584978394588404385096508483497278351170346117531378174342019856429076227773151005895706461715207689439388109583924755015313566853782021153853411426018529304976945671630203004898890635822414850484589199376774243652450139024246084744024633004251967329905545051773823573013780941067700518984932633104912395497435907610887403152695528880443812832043184882227628579921029282330222416081861563983835731525955057047581566102520115442679787675689282381912928864249353837476144546630187055735518278602246908791308406435357560614528166009612092236003743759317180773042512108361224711592633542036098695910210261521893187670363392383145557459185906210338504930446549888324581555378179251341669956490559395069513042737745805298070866277022162468580807612732960172243071670057073043656411262162688554799499673085958169397906952583350044907503816582085681058323245952882407270814552405773247444146290859109213664168961324100391194215780314639376168470703670339253421155734780899073084728482798034549511079155445033146467484873695906736242837340193484748838537330447423263191202148369272403974317057932479364033184287923338807053694133650946877040184783617656602527507399712958378819848293677801933908670630543275873880469757260046658841510759248943718122765409332338732270279644132782988301668231369347733573188585528053264748132578523213899112303022369934045076810245310616418776818099630678420329973416867611470030380575422628132970076075766319463693945904522956686205212225959498213023629682786177792664579838159422290359031821384214337721235769515071871094106437222855605296642201772184998246810499595160794766558373189648990927288516788384526606834603153443607316796015225790914149362117628813075806551720706659058271682144522185827007997043216506991202752768679845784856988544678823697777662427910431528648831107283116536366462425543130522688365700208927417730390794365641530073287259810374234050455026742787371234341947952976718629777029059641520307732362367588821483079636291152292291848695152638360531873849991203127980373691408197969031253474726406787089078896026681586394674936311118386375273637597318341776310725603042729230301740940849999627655040201729513671995956847069388321355457280592166440670236755281596740883456287323295535972137406158683448299171316477805694153247079971638243147017881052050783848128189712890999252198752333250867817738243370513314223146156607870213695902412676746278822687778904802370546455708983836565572792910777790360933510014115413114949149213691214282014617375559743806107416301409928180143691332772587227950155553326190966392918282719534945627433409820874098115337843890251782224795418648914683959465139500288894112664826370821868359940693827586852193570257411534599677962440131838503484228531166512176766916060032733680713425278783044007457531871152743971063073066847965060505626501754095964038878061168531894668919816670237963778029337929803824736517772435438729862000630637657306531221531015558418877898418614118589758174794642889110643533507331349197926487326910457450376489230907760012923090535143760343560647340548925681462070117897089116710772252755294485474530967900703549733060735874926345013850227648930825864950906563351381595347373717171731917820546234609779563217524258262311100355768248359377062542600760652702991191241313147741229743194476162217311872646279664607084235471476608017001876061730934471180294279991121690711781642042460765593877881235177576102751494625240717809931616488838868085528914915452831706484413933988896805718116537419296522843703025245606498096210217964089299771086385434325230790585534106083820650469310273941339119076720380202961950585041949545411969121334694441116529485728640047907934631440497830807685655396669808474074389241438169812106221067194276761967433762073274306117883149696697300194420031793929736342867550592175957959090361558800333952595891749614144216344079260417944167832886412112506700987174740091184403738763242826404765445924565522900094369713701918145203393053167628776779125510057284228327730562562396653710905611912246063716843164076841081705594863434891682358609114943003337795144648855553645665047506674165389570471130341192286515512796681857191932376322953231470791876214052931189881935757229033434289863310987872697394994263212497519586115272271525442219492872882032742204242086039572186492293927274146332443802698245212773953731703902788843969587798191062164187347994838812458075484074168932739951757329969126005548232518256224808431201515517950356503351405395357236564829733167440846117577366222935267716698500403627840136113305024996174939428121667852015240625426195298595549819265282152387963314027372722490990423787404417638772053013180859120904269951396972737067125932120028836849274510246487774810674595568443396526993399676486275039250168331707945997273547508179749761629411675806697301814333876350420501288989150312261019846852488620583536068701704627983624332071426373436740984689567334229085340508993282508918357669490950285297930594212345969870900563437872189930282036312501403382770835690795732396538464428938812576428211456146356768564415521944234322869650140103901980195020741089065444625187725160879436962079792799957993182239340746255095529550761517448276499386271226591450048390483215409002270967083693279085487709666861512760498002536553485267852879302165835017377728360824306591075193916404721917906652432973967541102773422463219479188092303877030624821275664291736190426191111274607803830613417985316370411595418987826348717526289159436837353149092041058966456294311179241770079914719606446716997583467673669529480749143972247852952044423827699282174726541239149605999366865797613558922041523809506301933164450488994061510363756506115215102744297528146471829379057170566254539235065851821958857480077454947351147039781282208183653940915368907166923954996329203528634888401806570016869155438344818622628245016717925147516948812374697795377700686247677277449731557858822031764395151088169726878535848171525121748110453847963099483028277739496360507134324976211118188391763230678577929418933342453140266074400683344029636408636947606234995688268993519382915596220697545337194156761636961177327504640183379845763251650964386658426419439816951548681868449886178277432053250264521287078654823874605627064284882819037319542883693714992603926172049825083257240792806191482955270195106382466608732447117558572067240176199697107384935974026849513712087567858254008407659479889375800196233474671850712676163982298073252433348550710643371745283307510684640903416940833796303231988310165447392198260338432179875110062890326273625313668754425557960936791915789682788256219210171025908433362028485496839139407759165221457409951089616259438553631921704212495344303123045739200614183715489678490736397550059830043874340364943343402631947639619820402338142237389972855794630256648400770140449847417886269592989154006418121634587742241332254233127156100600767193540686511940605432463831877378337443030464777097152207384802430970204185530402904228251795692836698046936844151663804654410725552493122394607135172316021765475435974586703367852320080289706931017959585729688366259009152639050972189773742025364230773142496398286826735753620050362354172107454203796456300383155276074218150863953490214251148614453062843253690825337945200236838000459921812406752420268902043280856188773877602951780586324473831939354590195448255589573097482074548441386792582816585587664097872854945449580069533418204164168600632153762342275232422064286480681741021163178947055671414094521816557118587014338147935525113100158812282228060279503483355508486057407335218731017422673632890761097102341324565425606977278751843291679498398779298647841696777284543521411744783463775076263794951553525454140007014437230118495012374555777744865137229432193776354179236403345844211669353079182793398433793407608086960035759423763380044983311969270371306048277103793924671586766112656669903171821397441208691207851588288328420657814055022997855768402688189054997211255096601843674861509731933528317707447717117671580630695594411987960021813252027378194214909497546173790311007254967595191635607011134323446660978984622937451254830869862310164228869714886651515151098238399350671715687709632972935369180708926036429611080384841820695647828367430490153845809592904856287726627631940153951473867334603018903757499908386180989103394418025356442669125749454872924548674053985201748525720926684170307761698037952357303339424166845213570958811567663463829111456902803266372451327525955534405991474286525168478709073492117801861926391455980296264798939123530708365898465450678421486129642270684859663848375730878622990117145867475697095398923553158770520663295527029116620528870377993699309160276285047668096808316078797394834013211128595303213349336717401472844328557290171245344444422489011835439577525729185468742750494573787723839671970483230351314160501732843038522121185800365005070115778265577379327650564660730522364029498251382830386201549545692194833886261783303990325664394593464179557024238151172063061655515442340364712115280517275047037400510718552952928181918814112948669688269640341613345163585643643037884593413193063367683344005324300361938806270285844948806716234504021824761756659175748738289926054011839762237350401405521070971952026750921830161900490229118867656077452764515259236900580383564266117621409620857016680527259744851502676939255426073243268849263131966910506291702377974577331028207733020570987594980096489385067705130053430104137255882926868422647872465740446480854618796426248315733522212798295860415598579009928061947606847401615939051676838423744056247657696939669054363125897746742068178029334624129235911257776400684541530588379842932870360226024521645574945240113644434860878731758555326084900529441646605572089197457259228561593254667206000205922635278278879675354867570066842417930992070228997357412620119619127140756037927848440554219481072344436444748584577684964251046942345636840182969840854255086405360715787281232492371282198910244187460525279700281800719275333703553174997291715335085488752917294024823386337254885925374625032937622924844722284311308997882310256480093524942001825586466179245587733695624388259437370533949579282602919788485758886095274712928745277977537516709017336528118341654059385401725564423483053859032669718676314232171926203234802225748002320079359333150696738809399037931671043800549932206193536347516977151772783148911684375347886204994414607115966351065152501525725616603895622434323612852687050759195063148203820195817504897479765938211189194752679291886153926538339561391375799129474263310578866961311768993651503873214100377816720651328408752150220410748463381733497781857209340178746976357126607784398863295966337722305204083918445567282775969132655809764974900822813032690720572429307188033784069066277565604052192636127307761928258374168024282057337808636551842571427107195006981991372455234914767893271871535844037528141927672783425665225071134462333781779985934603625771611088102087140272980825238494113194134148538181171472044476017801797745277106669971974185984839938185681512890034455886769639807439777189342118329953046041294645934750260743674605230491658066172841445432095895221776896469142937980126203323533907150065214353620369806442881600499013684949665421516182399370511301690600482749144432383553344606049867026956571905540738729078368319698325903564325047148117411905315651260500211103487127038158401112738540873619379970847477840725625509445538985285039474120100231927842684710331751166706095508843041628918194648894263237437257811779148105337630189876415735045688213473378811003850425827424694939202862880141354789727104222670598015785664037168429438528223090989195553170487895602975604362334066661267487117307571218647770060878534973715657487543266360657324512359895063163301302122224749343446686691869527320529309370951123251471588827818864008690536600651759454599250067268188649909135367402389387987151078002139480391703417343485781993258771536124317427449161474019632799223386781935845042065826543257354359296350075850883155032346765550281187172024634992171188529748728239578779804935605661299426650644916438496816320450570484854910435472608134378834362632927427810279600727335287502667442214932070515678010902524116595662812280686873524278382723630737451829794793584348768452665861617347562534067307474667565566733576696456231462728285294670358131098921825343330595721784695212170878858705853447608288964871376090057695742711951779754967879156842215141769881261661183460017961502043142671846127807363445663657110127120141753754186055828737858294243818582845981820603103751636077156705667407299463412448385867015643252064450618160879485009583968868265453257149154245583739111927392298901224152719330314205115867688876068571520806711851505113441368398398241114904963424293769286869786966488268023957066562515997344366662843692675819569197114306806523640606712867771712857578161876707631718383623216527541384367531141209362361346758117996960343028843883846930067811390000524588228111573367460338413272061273009257143070004830127250456098114091017223690192283911497697656835703606205698424301878878678158155335923220843720723910743134081568618352956965985477880830390497856903414207324570419749955591902700798649486615923960017284708890411314434181924304838805565900875335500130553391937022558710775017202345135012751284529450586678801345409635254311218845591367701555877208871940715957150390807050641923855725967692885134713340048818738102886453895995307353904899654710072008886383337581861812595224670884689970716224269802106705302560178407182212099496247331090651806216315892494678940598334285147116702519631396793737483241104480622387154855379106146365287834175604473910099081246973246179936472902907939105325271556374724548250833513982603564466179652538640405707922897449700302958630001292773290248946128060425107494998317045466258979349502051367398162705683089804503496531046565205297640413573723809220514340093600379843720037693096751594766794023836129612273505666977860804713820573356058444896450430169675727028100393870452679357923343884445275833871948053885528524079155294703121852075583769203589734997052184417366951289902436932294550351666819019504873046198793334651290296446024727967140832400137619485726931110650054075167897398996730458220197252555469649897465491502474931123677826494727712801339654483511953945143235997712277841481243087103621475918719498047348955672531643532632977716493192868960228160744526260824449182027548825184710683560528019109087329206338434308526272665035777420074619756712681812754114434102349392240403031790498343316325924403574747149660017757564213907155461222431728237325600570173364469901227203649745443831922945761923606932287790384512566713228920575947341857290857923596797522040944809473101059603612572269040751011423708328541179895977224068254578326060920226566527384484335351154435815657832310139739357193354128597011715389004483478412597483947039974868130511876103138587109075752628115728668410778007703668576294244493464253339945418196434767455087354601400361213333752754936369598366242985343377395622906136287525415986209980950759261206244665097084315654380934342705736413124535996347709311437271784623679507460163037415590810093338968734170231188656615066499390885517939738444618458327196424594804568364719948979222290797231532510875335748974226946941905827466749882877557212012097236813783095898866723048697756151200063218757181817297339663762030134391155862713714436690252539615166973028540048914377706777559941437867679081421812263215818815650864968702988515739022915718774878830308989306155687003073418586972501248371942155954953382044551125699842921208183652654952238489264292127114310897740205413702373440377747909535395211190604020189209530374940272314833332802067121501354352675042243118808381058404361467812412526599831143847248621511572704891872043574576094550007277588709683203016614023565059980807909983967480934751901617558715048819583118844520362659498798586246461513223109966608202004569357694356589267109405289715345635754780272012997063910270887331698499006005316844036230500221599093582202433242420697837950595889918197421676504245043524520688092325765304183493256573626671757403909232344007583491223679686129113696068339007574108322201428863397669265726271177302017780711622068565825085771404690434378122934576989356548945630339118832625227458323299635167948638452571245182299992985753578241359511540804277776947355618642249712518280387270667152910212471110496141169435579439880765541475389912261667931538540090148428164688494746367326171531898262601810553459554865013475371431563696717134601957418399636729301656039074347481219923121046116845557224156751639640804766658920191865392159421227042793218559548068042468570227290612763749044260389999821238935960712794340825695404960614008804702822324559419041341165025192705889906347695515033194162430055205820594423275661481291867911770385846724891343493173875132427694376704043662837454221176517059665738303528099488620868174461025983676075454195856222507136288645080933760570615776538821430363128444389014137902670080598774251827969015024580697508813868287256770263034649628308203293134244751166854333725106280732664762116488145925926816001568527484131804600952232242942319172232292412206044204358852638426852709214313678691146797253218656171023455508434905636992337380968375395756312064744921565580274300722346361154000972012244667818878256575744910777111101587534651538009177805755228102684492863952893630891843928527994194862852634047080165217243827889090796437836955911582610212838570576286729663236364447420621318447217898078102155727270232863642941042032762135549375752420245428176147043059262005845611551557106735150633139274485110842570044255047766602967479872888608634194780963629488432816718662497548972566565182749054598769805725437265293354024345746773161436198760341857590935100601883195236265773872848481247169521564451007927632068395708494115996233600689972338180543697897699036542291026642341568513261932547808188578728824009028903746402567073102378228535224381391789164647868483776635523499109449822651789580081115261405489462828031295494296644480308627330493550728247226314274542966422994041855296853709315017033985531729344482711921385353108671899417169150400187156038827919508116061168791036461116193780060574243247391909553165540408726477644042509652708729036483806384622871786925503642430914309758761487647689829620090581156719659494890856861712786125353865182367349344415118680499636229124463006700354426443213869193498158596590001590683825073518652689257394780978148501496718222052445509887127675998098946592227976071330623453667827263338930309565888196464793297463814621488447517087132909992884828811442207657101001050332245999660348606147945426725124302114520319915153326387678338197745699034027002052246165886577791053459174561513595544752094411258700982654071322236970793388481502052556399176843041934491224571406764671335205414285570474864035118688256042722886976103257986716325985544015203022657104674775899551060550294488143508098635218320931547103983098726601609158870598439392632372803293190124014146492592619930913779500532076856144441715227882192227878839721097231313838238361562183718981982723463588830224311520281694108561493341894566289641989221191709404821351670190638067393656159861440422980251268628304953230978062194234516463909421656798592863874480987708409584207370606884293044363814218842015975481321063388513832312626798882134395458461987395947102646228425627368337750522332120430124272552589419450705978265130559794665177111395981854301456447373427858228283648713985485429433753804832426119967050789495512667008175049416582921309761380493755276141257472448874540426620943205330994444167992361977970696104311396123645444442175208027913969100707400156935849139898584939027763183289213270332279662459495164331943183833386228812127107610338481499024857314018784226751251709312925959577884564814491042354504082006160847569801962681825076230135051528333899111527762272047320472702169734527583945961592509524681676423383715570023877049318860868231375564011559199579478341781446561818525561991381215473580080944493538048406027023267608019454668610928155132904216211675143740961837646357530792770951040486659874900643582426381747790816785573633477789793847207533474735004748502196935998880490178954114267157170651464802649421851480522209662082285905420639393126340437098514098721847940774200760808443746154830241692152446165269689337099671176390307849822102977702539861768675153317751646517614214557814310960087890083491416120446770334740273562420057718234530513318997263499900885868204201569107327370178500489834260586617185281722651080383491550850612115520445202233368426608006013001432869878371597889261816735320762018354536723181155312239971950563670983243457058479270696863048279991703400845326020795752147909511341749017032501988922939284335105102633050756296094812449723671372548126801964869441269061176605822140485901987533428800340289796139222829083694849869263999442305127243550270350265139862610302405458384213972800388941669763648389342235447843239928754201129712224148465473148256972209666518735713270932910373965325221794597298078363435972865632012028078568509497685126170652974466226864258899134104255765772473614766556607886337012157007322839376296309359673413858488305690357553233130308004034769174725015872080473934864954390056451173766401091202902368008235974704600364160816621794122321554359815817137974130962995321439117849759139447838273422984058396118457339800537848558254733913435399953479248962398843144078833720070710686798293217263298030866128802630815250941816825669296112621621159734518639409429718675324777750418562442453797576227507420331504888441841350939100721668146857860431164061318830199526112089557034355211607901883313206665497709891156974934277048368240877598514495478371998653820443336129698929489420308478729652895815060404808473627614324743554033749779341393163005542362034512317098669210361176060310078808012822015262953680425404325552534629311435775305015541505743837410051469545644190756559145542671640602624598641981297158260444744539735654519076567156196825908343112753442304745009685061711402143759575538037989214880389490901002079917064379451349970472799822726559209298931762123206079427098928842307817181225439364103178293245599856482636817730273719888422463139158773957406048761813736405425783345246907224088152971600559034556468352252628392464580546066982814374864737655873543325813094980289731228912392579710744759123495508609731748820831600244794332368250287667477008648472287026474731062283741694205391599643023263422795672816406880199848191579893358599485338975837379425969168299083608298982269051043227204587721107638809444917248639475579736696157248136387659428711454454645677711054547612646648113815814556841389297047165030700420887785061787553666709180330853244943337033174940338140685422315780666342790181758753508320984376340357083955322100405806084632549078469001056538826637482195345089980435158401933207337035564764770429771647579031147704705053845980383826719964667303249203541632892780139027567435852665828256532470734937374381178423755898731827312867763210696802154312467678682889135334118881818282898624160682700352270770675253240374796413877287827276613684804596100388262590846533796589928771440371099541532034379134757543774103535387375574223799099818800308589842875115585548656152453913054646842554842402531604638457422163942023892693974479945550897364885547516243329250181112288240440461973955558545455558085577709026939005466697412780341095217153499663029311020080393424023023599939350966156509381097200347441209605555572369217179000742358882529450794640832879762039364907826619633894564105779085858817218810283026858685269419834460933008530487737514275386220793618343091311741151018361750281863221560980095601488155722096395026680665229891187572765162606954129285522331923013236066793013331361127215530419247663150502138397391669088028233035551021065615721490490481755771556033839954792199497604786149844498568548165750700593221509484979667695367996582187908418784350815018973374069109773230905058324660148370450854570166369861097139981400320942116095778467498640497754497651311234325974961994728822474638255826282734411968006871529801521720077616402766091015110842844927918684362691557539800766993346676639137679842917572291419681110613593010934095683490770622745623361644626036558303755408864684041841914976119827808406036326090433534086475324757075940860968147535384835552581448272259433762505150120801597792219729198920536508742528992367501560454511267247601030921908798787483131213668843133325640536813887604173951742135362219114685202504597749661754060211667420611619067467064682405175467286007658575555381918555919990636185983731574139840014699768187081991788413458558515053207587218400801607204453119430497131529356247765022179986367887996052553695734791803717321643964388002796169977454182560389854268114268595264028438634673398824171177455584130234098283480502609412992551444441737761441868627580655838649605610748907625812249015809715365136871980211836774399993460653711412764501552880616430512036479198780228776085983457502049196601801463742306679548085443769564246586193267610971305832282076857173901142802936799362140439680971445320534321620853452905338277861141955558883140713884446861177667945844736331466882305271152862740683498901795247305562844616757945325272409200677625934784882292745946311835212840415576608451470736229844954887737083456182373485822147690792361883228760970456300539750092927145554903084570034022000061811529666211572454994475512391527569426800288230713513796568730689249173857484529198472331102281664429498775175409418988808257186529737683628519653052813287098552869348495349401707362258107657777386766053255503872579327845774713313892693420778474521944228912578567715078293199859262981494310816304391514471241370776748615312069160874412182379585920486787164915064324384402579949025818208543835773177306578690709659148613402325648739455446288387854476479222921882419602850773572241629086814887908479195286205793324528846136384034764338245520373483261015642553059308589835095741350311443520043938170893184379581953496068045153046109608275129106064163565081619421075515654186716504341609240909430263236049284253711438077548534076531331259642931029257579034139559831693326362599238209100849071307527007438015078091507249427977656484288043673030234331498104713366091420019748857880427652770253987960505391310519247462558280910825580344361801466067946515106826831735504370906014076921245468182797059125733291977687327714859414555376322353300959020007044601408333068101936664921956614622916872086306536088319118736662188951413586071368146533012696927077360495359724691545612490819049115037886345142214113709348428898219891054603261158240406726791016942888306245615431085504673456169680203133187366470759533546509207170259262542858957838538690816439781592878821037573692001777219567942188819460301391391895346427352780787585861495035337895103089488252785217581327262031351966055121683455913638564189056481184342862524590843143635810790123517865080174848578165870795513814089921205663960788437651806785373806111217792877671804269123069689380693523042660319045429997395149802838812560921839575150095730778289783028842411228362212804352057171235346514824575752717500782215328864629075349535335834776459766652730264221804641094393253748379078998413211100989674887303280541069458038068126374149801660014685031612545295237304371962137604097894403027927962113747334442822868437055190750216947007015888802193034069202786798752769270248159655275124589090119643796191069268245463154607567402090832302349921000776635675460282778994315939287685389461310356135511571173775410503062469196244273303845307612032170409850365762852206577810461651644254915355299322636805153696855724054742754449386254659085618694788220224220235197322684142554073027436574491595489230089820851742946586961614439132399990502899330785254852987036894697672548238158840888588460623675492083132617017038882288424011000122668418001936752978560829719497627277703050955983423733888325041208383104912788411862631092596516924338109016292110906714046147781889347241836056578413304109411094233646438518137993908339711063896651815088760844225590621143357499073325734765105985695183847373005446938313594098114768357806568996302772490602818812688355345420247893853922601821355982850074201738803345655864704257628502116127331509676585618305111542506317364260355965836183157722514141116264080523459226700558320118566838003851311816564463179745454182408016596790646363935565104796008303711952551991494769671128539663439047021106754618008341226091316243845265032275817973159941967253881005156049645483942328827273503820181509305678253669718079001330867164969812728578054293350571577532457510467078365091433583891415945196920135212071322880561020257147544647806235351092637561306174305376905448767589422823951836827823413354884572826144343446428863835847776203230315599398400004157998372960402723873042201817060920699343887529020086212941692635005377128579693811801599403808737673096567143918852249220373183150196301367134317514875943290638391400768226997712734728482529287370610646397617260700029518855868470687500031601896640928838403325566697738776957719035215083296456091103720710241697311536812714620919334792127382386196041958676416734218537904752134370586513186296239276638098950789062732942821083993529466260137693386809849064287692805087093244564064782213777360060151181557270695983387021415422311583324560146489840694296955573792777451962549869968380447211419075060807695744267068662852425764179482797580479705909272549130863387417228354496486355040017453826031865439737078108533981348214822838295417184077352186045152778616520562888903643200844480071414940873024406104108339859731234754313143525238256016391472806001331153852857054564182534967907157273839530358289650739493415339578593108542448861941484577550321078963375841609918759508740093391293213431356621509621859625351423642736920931993851252158122393720891742449808716044603345809401039763533818752737465454598658565749653550446575888889348039213209795148084808897880253472502396968722057787159179715612648860269162048718122801675199087334211586017348883944790399375215645294213024785325396717899914289648741961516224454277695525475605477177158913901382639151926708712730397787443572562590781694799638876338299272737163789832543136548188339054601163990722625253917436114829074458754944300527900602920844402436676144093890752973455207512500406066097864367295840885031000724376464718752069285870770049517686344450590937715729792123600407284200050618913950527765311414290547233175146653808372059432555717385948701898124342825715221047050789189412662156632269502412406677746541754007121485776921958679348965905559185055922459602481813331841347694184295495241582740611653088596600717430695618768830511575124089922186979941990753929535828551541572780324270765548067387715402737023294632373920687305192510961358167690213677367603061433112178231649613350662406781989131647974706351316091611286200447345769704402099188188906052341926591411216540144981136303461174860936477862531927304549630212020254406446473953734556750536570567720063378249373338223638776696768913289756414087980746447322501980188987604539153855243987869633477196303031705765088024419703320999149313573817476031596738314020378844904223542243083847449951564629891047820549324633233256631888313560051582279469817671149727441541789296750083467247834805401121536127929027648727133342027071934311656533594770108882772626421505424996068414953133976554023296045383633512115658310689839636006370509117121456066567293995495935995120786538902635561298805222931890695860643193740741089386479270268736503716117453607174854151594422638142741152727342098934772470809359649654273813888002525315100560319227859695283140735064868458503224843018525273409439706294621614660980581021157777915498900977101883610589849467596293135936180624834360486260836897575639705864758185024983170534550367126047745916334840281250050620828949914429520471316421175619797412032962081597082223210271218132474939791765284002790657805406983660245721094958212448630749712837369294879580877542279538114356265217791778406629049499513494793447012075678775058636996023504075607700063081556025279021219263232445572421295944828005846233821838157580592831142633316681800256863695957052513940498826188472953545698180309629089561969417643142969011594135414698394860041891161194041991375961866066796315126501385648077669328095737678555830374282202420773166344860272894838113729392210314417155896857174952777020476252964161328705920566424255857227115238673762163136479752295493535116360295472454219340002930135177364162015156646687901111550394721031802901183829219482004038611200723956901311977810623475019400202102833359129809483853390075375837911117810714056292393066752556175384548638445365262398875154318037334795135789054822287166645151286890611559857102066486929821298849489471293405617061195794383479616814789882615351341746337742948251226605489549074720425951018035854002101026565780857273028251500653851466621058179084183522952572447897396981750439355728960834959464169136992406183921940757060456876766559091336098550458952265124404006537395303125198834997427843382548263515649611569679033988737999155272248947976631008541654921655475976903348117174427919115114650720705018992435369028916816978875892103356173277289486679819150917508864058120141624424809944835358535536099623151123155743587507974297303570866109585227161187966758825967635812285142096724943322141121463698509653253298564019817535101948272200901639462504420001433021716503019746313214737992840623676875878542207593133922870905436798255841379037327112226149466350662666663845535474015684095204104717624804351756701629914328888234236955499815815374547134994893522665498353903294903560962464924204469178505012242288772919477280672653272236767677636651737232060510990276381723278439795851020428962334450267346048450759153230856700178860837067002816828656797544150364711222317925262673064414253838327547368411983437227214328274942797330047847481350353469108349855149555856634810438788269971043114664278169009185830180723694241961564980049381229151722613767378816957616583469681808736751766604248089118338552328615729771124116995185384272740424237142503037101879906981762823822619723813452832327758938106812545809018189240445472735035321093698431980235635770503217282480494347629058179131086715608111373417547246804423412693862342057979289055203078629345406770506129098578248551216510337103525451177428585044119245346233726194720263140150642241178373129736862507475990909419038836736112606118336952933921644799134594706347131834926030694688716309997850772090384760915383167810225349662474831154520228391579053182561707412124127920301936502321412574894618807575326119681209663066585607401191566583010110382442744151053894510497567595718636973029329987559914936617985807886550739264436297769704059806393973352433626385184053394254134867723229496849136674764628939623172179725125574268056982466334812211363142344974714557897271621395007681886922210933945047493388675342538787886801578193705728625395296011567253316539352045748111289529404557949007421301412948106488889040351295756480950251521834106887931669471620599984497771658858834535765342274638356297209838526057926083714702529853005241939220693598647109826635762196659962031152424141403677735150734641185352720433721874907794716552110162872492298954031570896716967837937810029368994337043735205677473850646930059636386419844134367509287794553370551387436294127219030012894758902071088815949279601251338432044471837625285700665935463248854792295131932566452642992428697792726279600795913531315673572512319849412842793488437541794646347275296293669458631214333166316862709246205503095770398317179765214837127421192726532882500586579604459526785739578047900051588692265434090778168651628646214980776531626721954871346563898864133648804401091365516046588923037339180336213259235203519975663907614506301195149569359806525423804499137161368342788135323272847622736189758780449976594156945243090694799297693361006305527213858084693779781726388273986790099457394112502266551511562311692832191630224864651109291421845082715287390790863705205887742625882672469356427638312318930281141378526347631474554799552145148964294443469563455138459373945823019245718901049670741804295078384452540121038401846924914813253130393410140560368303516930148723763884899886377239060532223238974030676836682702019466457593526441349440151250428537342726074321589749149780205166085066134942833505059724078510907772917901633751342675760968387851209020900129450530311480249696952863691604828268804858443171730451857852370453960220149802253435004658116741904924155354475296366764571639775104972120806071754315097630415653809287919500148864121478675314971199586557136895169868341651109745777883527285449429669425970720890891759253730967236581376060213753181839776945366426176342188903946109983388426569365490303537191307837727073502967204021961650853781441229811801545485443159895423706314860214100468327412776349267333288889520273377868672416133529361315369642862219825619505887300775160200425182366472964255870752655362077850176865801899365542567577069582474446888682955456104414492545204930681628612605042970987439356176473806593774027448009427706586203732050960707515010342045901127640629611075401543577089664897245867449599861635781941667949975874681191778536379127611058136840977491048343547973758803007572811091912377468944834931127067739953610039595955005795903633735962647040243878885008004088815955865610059862452080812148996448812719905035415013249277987214324288943697664324812288074156750495514050565068922154808498164807470055126399862186150361261251423188830692442143584928869139097302748967718863257055529717693116535819791347517755970620787792385312348321148365796023008161918590701820313975415737850938551373464900378080071966701431076719921301920028192027809395580323404182068337615672176150018751674515448010268594141840816960481518237804057038524220058899306532423264037681730733715045008292157720534287952263450525426049409564077349483436797209266328467183532891219937215845754332623747029692812922449630836666747162631620328171680454143309267205047005742224709617511232805400640603261563156205877958224575601627579500912527080013186688510738339199849587129008537361260044039328807219687424388602412267987654235856109508699106342076994822287567838850529566687539887656561145010621112944574970422603767623800494277256981851285333592328685562616867729165652181091177614691493685770608469552601098574954024602130393000564108346722410421539950912122775472476213482335271896998169899659548816086392178587682101408503290858377013588273470874316962088488063358534006172275317529090311356502406589975287909198011289904171541118470496197291956337328307638310937217269191580837259261946563527312828272579112762391271681533063280623491969661307570189553016572249011258567361167255246132960758037897823914171763570179132617623145792613613813995501155988984435193197962873315130595599012531764902956487410288549867587876190526236899470847372127785863602267588388118572457732840760682022697615067146279009377830520053147951403037854394645652465667720450424259737552165544639162392801352527025413085881632020795276435714271319099119311035738907191095889310295592620257967652396346208430980746520430286018100351907332552222278126646533971368653822492940823510459821988827915959058654849022731942383016800268635288572238702849778675748759265104959271533992772372161069365129149514448638321771340852505681502828765670252391602449807687556101116689100706760265036266525077943350999207023841640501483930046081233829878160080945085887313072166658997488824031067270805595823381450666437914359108221148868973573662834912270432875787917168171574416184660612122197616557837260437687062135491679592576437929042461541366839982895937504671897724103836213877437520453680418607750884840635632831020171996459484516022094265949092404669730247042455532860443261808866877736135445410790772018845807564605722176716035006144792642293720532690882014741137088291077879592333581610084549759321438698098726710572305922915979394181761502348601568257806081245122342125175306666993325833312665397687871578069739629064167059804973583989907680998988846607464057911358517334695194401337583530000370829001995860476460578938706885225450160263252769502296930599121541257978524639654850079785014474568785832129272374047561308420978691198145965723260986535318832161345363976960155414789489943161307728067557531108016808167588698212574282985433679678337622882349794143764341855932609470984676839999670092578414337889202747091982840792130311199457286471175465881116554369181048114959592600323843705299636416272840872102849854346851354723718728337484035780801393028506905185012336988051035206410019711950251814411153212886924843603986228473252555106643269383087764734653703848852327791318362050596822344600312407628634550164042660604470445107713563190244291153820146198879267472844600080536894649555740456672423425157979288457559906264258750244498941711994580260792723117867385433667600401202183657787792633274102762935134687943259660215153090282542321406198895906507654291450878594728179114144955825560597834662601849875324339077206535879397979631257131666450889624897026274156987496380811297655149586968933758971455933139464632316193119340933208237344886401845086814055620455905069249514116191468155017608635275314060785752263720093159284485340548954434117751945477626015810378563681114921907481132153745872887857072250476016357981016538774828449596709969092707545216056637254359160804094188642813669819216987887393407606137801264252295801551641375578597101327886311127084746916633952484275587428840162992632412364192289169503362964556944720937443341255764564592188472035660396942931480754989496861266464806543612434029997219767104393014275070691848430925730201899426846004673490458422939981550824568600459954804746731367370391016007302640067402360322606032198700373837538515294872089769721694528762937201381586605750551694709387594746570994643169143955446393907660142210232677196141195273400246874067863622140561848464261356699588479503586386440333248131229898258785534384229392353049314617247288360734080376770899387629859076690297527136551313782587676534431375495686158926592970421902382576954088491193441545912642608542683318144020961703183412175576516477381943652842394702494504642277536889641167544504859785461997281252573240584621522622981003033039831851535060435641258349008359642845467565199481461587930194837228586968217587479644656476528753587207241499823297170166717695312751823870628751544952136446527938470130648223382459953048283173974516813352453931009299903112346000314090040050258904119935837029426989691664908860714891721866521662071666003458919397141081450211376475618569697426584431827880633970079321439972546797555784292139650769401258456352094029883476286504980357622193163068465695578975249184691385232223707287905446035772240704049035927099087780891356203663286700895168164954151830269999438393829772998870186133036290357244981030245605939635011183529461799218440947667308886952610258943423245920814930557503471533568056853983255722239678766772657309140069731366279697796191741508905317727246632463424714526092448864334311315232796624620303131600077319731884143980784640181361564107497571057892360792888931072414816611576907775212336892245407279370524560611096316075899642061281523644289978646701234098945747708024579450326955929382491351155586722870726889664630197566886171045873262239379164886260036318367087484622791264360152200287248279371465793736885369254376068871114914443547987246057612997810596682019500425500224838452143653608627128786296129703736563114251040456104748172099701661133939386290207403059282922477366139424037669406708597663229487024015708608851199638402486234868643968388656884572611795295327110375291581952271849767356001382619248736190637960306101162542717638167333193955168676578261890025875573062619215818035858438101254104190656559676040486124013227198155942713369110384573199772149707886238648776496066367520723966855171179621274139421612608695585366086311080044221072992060926137597213754269634573942192600706757351522260851740679955844536061345168263751027573458150797148643491284573567136065500797876081560931801665701874391949956278572861186118553292744475329889804931446544911550798316999619894004582800207936473427210845474259186724034975805492487650637310459757906365354037463954294252466083044104813784357240431662155030969660198013318058162510963112409659091540482602000918701295936104440333456891514223570543862105612987106417720751485560765600907212539464074895721064438760187715087054382601497353497468299875449585175610110743628933039324412850288956549759070795390935158584400450836706812986512927074819373593806180877682050663288542315366365201718246627381781328987379978491879674827378636490716832356520904825570734669458271738378353495139223109926665884118988564779526647675325070674134525292858718885976989959121733596341533848597558121944326993508435280307391008500993761690274164465341236568620498125607747594592897978532114078336024514017028531928329387952337856571065210107860236325661082707294561803877796837616835229966098502756584963447445491255288340866445404019930559190346763203563810118933506858480833431391771069554982845105384411803307974924132582765629422855732107145077457509620791144851055576132526133849326346828011603143521025331452366254267796512280804811498626600490016658518741361840820610006144841003385969625760229427336204750150172751316303731846519188271698676934871513270601717137495884561715790554425740172618146778900150424845197804001557158113391729533607045998697913834059028145077714016294486150155674893341836732184813962416880902640673056753797971616656479956434644229344571020180394753814526022363683937886327025431812579062362221177920027753254830529415628763569410948803603583657595572644122525276005061497180343500754474046077423976453078156180380759844012827965219951747773758843914711261778610100066748466545096196747758420629126816102396538257253109242595467193561479904912973068139510330725368594378856294985539977184013912073649899769217166206087477479915946929197294055918698931458092832440166890457183048394439925281060715147418210550444512623646975865848350226173406980410507687396071847397746826407784634326000255337471714801019187276856635305772301993354585566217680610773691413452309363449183896174144018974930690062384105099056976369980208514175127099335736928699967778424523725363185031683780033609054144763731902602291178200922933838501978529301042512007151334084590992319857980969692378001215038013192528937489376015867185112720179642363611628139554261262213867270943200823980709621073025225620644722876075608180330598164677711739854892943651495856086894263760935820857912008238202028428774884206962548204723074234087337238057097065924309967479232256300410168115787969862499075237978914739755546547355393749085319327370708707719094566513725713212802178888792523747610337095901639429175431630385034617995706021397888666240031114890567421220779916191607765694408307454984759556927448566182605330181158695362552838619248247471544962746975053564817365912588696243706125511472726158404967796197627414756540509217141420839704785177226368082977827251750543862170681811905651395129757424571986754142056927876888125381954599216039335444894177239376909710361534911637356505026209553352093207799974214817959153308546490771170584912368057769049341095254172900157351694379715262256450051504687899650629958080691220225922838889720738144962630457131401458087759601631288939754727205338169545170252734562464111125942506175860810242624085655693908908187920821964950294303455672980956830302724630997715117672362953085705382986192193860708807137168518693254884757289239596108990404099482178864960302028492499592098624064675690045245325494093358349770288084929190905480252687422394200768476227384051804862354119321473848496988835673071125611165080867743963728308825129298225298585613809945447717794899619793073671440528933630900398258044640772191403921839633164640717665438755560977477547851760876522292365107298598405662088922601421091530350045703091555074304413390294284907937863037545841993207331373955524596522928758475110346186352139830646195328704788843513716498144741236892170177768879994853139639084345255184813511619902039877196977218941915860017762874229124962357764307716201034297634307373611450284769328420920988229941565393177295245691987992162784217118128017960033670769117992019912789104951774148791663478372699405338427255851140786394879087833085054807177862107657051835896759182434469892196963740061902183185484648718274824827642739705450162954743561628610060167156630389834539698822025036142336388583307859242733169080690996327926109667609622366233434454333225789087717551732773210753418402651383382090454387203414090560013377029727132711186493937626394938852621483334000785758699047040182869673324906988569568497002429030981361249423420639447142351085942908249292539888208298864050596703857675679461839777157550698817824919621228458737062124241039402361978043257388679903366542714998517358558488702881890924168260446102378811305757122125000502077446223766655029390643078507948302175092252664458595009334368706428672086430314713100417422453406254949091162990225305831732827897343857348533755793812865433234689172513920737568395716888748902462758641133883441162970899939117342063817394282090953956472466875608383077245210958909132757936353661566301297087925341983375149586057762874627826378406820496868964993586982460174075127324358243029113301317788279492491968315851482686933326485532423077984798776058329331705366536905362793297772127906336844919104853037390026423055934121268900416681701550424146013062976441991862928005048903966899375808766226217892790842989776369802533170002975356480703234907449076387724081045409149363407424037846427645835296661063506206576869645219326062441809215591004573010429870968259148870335487909755329325061146398455921038482769531626091373920660347546122349052682120238972225404474785893982612622606591110993191876294906387184037282854920714231755473045453062087220416742398584320292482334026586729893233045206060263936378116324467720786825256750608391395161835586678699863741474476155896502391250852253278257840343607560819259693091092862102600438354963795305444595810141125266058699586470547705707083592288888348158415476304942467149247124889407480209507642472273534279244325522158754019529815425605239402975261657349429667108338908544491560852522585510956745398752568803963695317726682525102620828343861175208451284262250638283485680158835910744015409101464709537726563524706411628499901480989597281417290395224552281341983836733600935649131809397920850558758672433339644139933508860107293108563518569202731019622390397354506551032949966940405817607510493884330591746585764297713291636142757178095231152163765075110498518968587091520388398088597424718678137363689916201372060388901873983622916910835222744371522887741588840326761893974218226169500286407088818546377139014014740323101741325520552285527255514709698759548831079054364974564226809147620271422115764088689684509030435726635390113522900472170371105485524059068645045042142703785116989799601854240536254805077202412295950557515753607866880810506071891056156515756113966345455887670720396148798577999526543587920974159715985035180194951178350531000616908164078885833541238151223900888752714975160536221557229413450414460237567122731883467117430146186034812812546424921058792230201462470233681642247237053642810147417486376626702471830400827591805126828963827352595462241873822697283285056677157665426351987543178243644341858378802223791888696689991800692864238400926595669836230170037040186998754558021608840403167914734616343139040801726580440892617665694725433902544906426241282913331345618612458026369519903114798379134853801436272758655666985991896622520287485082875584669023343548692849492876426935582824028161297108431575643882481602289773231245261429715555147220136937318491681300994700795881596764668089370036468225256453200165412631268148367260796695960949532264935924639945916362510580566119624390446305301030854880566888773592087387660309704354194805884151899793618709051444223113788422950818421848027025585414247526652736286501434203877666083084991673754305841995090648825064331605164492567437864755010082908680293570455414735898543077410066313423724953066099767703710540255870628060773747687740738381888296553607138214301308754157821138120693870508240653800811965620167095404534461714850245525477459646000530292336981840978184710977786841222128690817635366456053304602248066776637790496679421874116089944411750959923693687134126275272041171461688513001864553308810321768048717258209351589695255510487587782484707784331062641966672562513605183914572040764905762299862531263767774074455967743623577748914145515182066027945042986379923585304980808938626631695702732324083740591538171175996657345061026164477274541959092305839258541240449216878770555022185911745493663840395381975883972744275781002812931150928746200129813827145251913078927428847589994099538703787190443735419717900343072610472926339234533313823438380410842681312437287510118022361833700659254249956996317726141750487659062074181076464568851372643025049316757137867884132881417186735050379611371571223501097341664510328391460527232347244845600481139475654326072172771886737921422350309285723537053249216044344270855150959125166216352760929073157154260444133403827597423024629031115181764827287007793991730585614655846780152217027920328470001174296243108094184228589888900418488945035895898649980893260472168265993911274543164532431326250941748816225411434905149181474431866541845437008678483194096458878148501286026265038492856210429915864248659094724798690059886381470079069751608368809860579662768717812678353336397923276547550527353337011545361177396569370731239526641928811393406027277311265161760725725442910168801389303626892902680194425635739919749928619110956854239910701104451512257150202179556563304779717701351251033420648902437542486151618641043905933659588385109698718960932844611795471630274453429763794654342691174196546172950891716660887278118409997795765366155275950810628214907204882352213480819843069597825212697573364746644163128842773019970838342621853648805073540749102607521165567616279513057765436498013348074037536870587186761637524013671743827330092566039373839205026045121016711175232145689599670149781652732183344441685086741522049859309195791202562813743479438370225155892753501081117544930627977869332963960145834948642660936490870074288774113084366887195683874976632989891426123723724676353417547746869380934341646381062732646043061003508809165695629983410651338439093144922282199545745254286314945568068457883213922695206178185090492448367648985910399630574722721694961246913801942000525103873223797411969172828492455686873942613469484440659829090072386812164676082728429539781161967207605456811396669411384616802947146663781776910220785390473118496885258966412454595540835815518172675964357114861453684010561493378130714727708539375174713573963185376806915184767735982174603558148935298427982253414205668943555056453956984049090440567929965434643605528614450952507095853450474777102682020398521801000798562329230722035646956797705457574139193459793430659708367526275590180957884861938290049571698492668237328308781041833534237685754149014917114601141532778068388590771115269082966266945390578325723455729961094368382374218427552196268055716769849374216771506252735592933449662254314807789389906253216712520329105269170339902897744415207788220122876281183437452972715364036861158187303121904984025571569730966549001999004218553520770098297520227615115079216175322085251810802516745360742025894710885162431680661064424967338729574538366229146337181417728695970923347516762937646396498762771920515490883031478074118294499728943861351308641317388573916728203095883888999648104270958952045202985434775232233297411002241492443653856370497521454660803179316367253640394576686880531107348160792165921675750128454181732465294441222404721109463673841758642036590843438680387387962419370571215903298818321738585107228809076663858055006160193907594096066109995538562233861916771863633104274009269138119242661156566195072170086581806676376744615557488068556099167234641366245617634076135725940517376919039367470253709429500653641338237835931092443561285974678765405471391034851874114153893685681024807816543155992640557680643455389019276711312554629925873680382669658802476096303407464320256139632973743532281810249162346220395765637816089198553999956513820821417085546293327350071029628660705558435317742139283243524087554776904263166104612957436111813377976652686414349949894973183277128403986464791091575523239468749329281280536319797368612828979332231231679682346480941921566126709320208958294622607435049104720439148378371316916869940613760339471653839852595839957939939325534611083412943838273641756597668150584176449104587812147208591160152628552221579878070677669108425608803823993960116492927487456593594768480437240137984138363303490582352222078585196727786415975925521531563535549717278633845228138609170567975863014532199504623094419374541259497062519163696736193567239835497664262844738308646580355550289872633352636256108072796070449111329377024942096156145435278702362732861941053171318681809363440678670403256989421092272540512077375620946170354987093962256332310429840287519640473552680283068261628411738046230865545041166510647064629891743250181003152575631360158907644732472643289337538701692124678684373051114741374382647205347077608094344471161426721263377520935065901120076650621655115444390961238609579555950176475605996969254072711623599486274298919851890021701674868618485690728675172284202289534475439581253142893420029677185240444188051102758861156162975254885376658950189780584179009263951743006601371803780398815439444963331034066837823739374916947994163879391598683185587942290112908030028167612746995635272211574727700314979876084065879330475609424321272994462291783557533844636915874027884353294972952907006487683001466000139906970899088700941065498057021414536073451603330868316296830143252486904065910705652663841150215191262723293625895677719420034452221989523882097850763964314295698313519351741691291459037121954537687813651492795654344966826276725179412766792378033166335933962906108001415104684323696432528631452944694905471601991235573946660390232171754556038557151739876740972544880607100701508298363962179837989035767614224538584321508199247081715880946501969231677282241035853258431738003652770068568749382091841985570288783990760784853606093823086704525695479065295686371655780781290061280897330276126749168383891889209936221954420433912930225618584253224600428959115979960773207448763869770915387103427948525503933815451520922509905921186810813647321472015016268916266219827833198176893996225990674014047122572675817262402045901679344451458862683583776960399594463160788778119483944707709443541920704936979567302714718192456319378248240194366892946111908387010862342021150874958334368232270849179465292582717560107614730861940726678230950242371849372944232414261134788928551017507931903916556612744379554509205556608872053967566868693437458368226766632269098060556116177233815659447906982293860473487825146472632721727503029258865799870010133462020705570460248038000094575727779447081601694358550976165775639640376885480013580321375802507232618172610040698109337894371594923056163969370326521482001411390020744358666112713740038006512368304865704499551324033245953842044494551205373687714296369345826083481234306563093302798131717719263614572988844714141228677645282327661572894058036208477169439452678481928165320209169501048079430728087931824929155900969307324405353213887884849476942843323484341423580308507583322956775344042425818534061260868794528608926209105699633692489768060072051029247719455197860863555555186365541681783287469133806989935346715243765193231142438069460715773212747247466213312593192219593380856534626415441012373715096920271084225088120624987341465017050146823480430659993880262250157975805627659128452976913115485789567246809090844804780203802994219659317784214975494937832683180818759931219045918250456004871650604812978288189896519115767247317378262817485471871613769967917736641670816672348850453999123133903167754209922275739199830337987368244826487977520949466989123941928464005829204352353823453035607168202496253588479868133333194685403548469756889920625243084622668400820024345256422393807409203154544511941534219660726242596861479092959110682972656763804095226503547251805084450412459337587568712917608619459123106014861633293670253960550529164886021045691198974226235292221076030076516501317964686804128746170607191501190388859197856502138834624547756422875228663467458834355397169002172006944289512301018632277310752437415964298916909419184982789613336789385293532700685850576839608459531659223749700526752140295332166467865529424762567678439302396101200730441153893536091488140358102495125533390358607435457072159594994569348743103710368804177538454082404244159962466115830299327303423222920232810802205967094053011061094279470200217158547631034230325737267647634128547078081355835765747865095275690072002002960772576450492549174702548020061171316109162053376762759630120753085150688287920482879226675257959621004519466144088573643797190885197874308232261854991589067536419342039152682740208290098304455487520339791743231933306780666876370457881763094045622092344304027079019922719307623724032288626494012915365745303734736944088519318817632241621539966299916144129661662585085377247164259735781343694750841070542926273826932608212748242686482430592538128767561044477833996827366578079838946336906767723508723515452173569699054991313425808192815955899966010054606222775948335417635397136397707325131317816988574476620546935665328649974952938820385764186253507908483003948587059509472942494614422171622363014389204475990209004441986367705962574519863561014222125352994202979193367159633717997628669010034107681617897824165195169275104041261997434922167239521454790241772871204861836924812689504354320082752721206124873294987914768046300383275708795003775896441093499030741810905812438189399414338473992401646258343506991856253095684967915050057852049756781304791977904604090088928446220577225832960489690007976898841352162334524090080759689209446383515812965360099252715673902054140559509096832853189347667591169197786563042309003395859059621610186815242823156112790055677699445580709005990298925927689870833741269560765910705228487125053795532530065861074537877223473981985708248911930024249021486647571404859377536745497521531889004428716411352864896458073022076389771523638572985465899366709432818207999681677242503439157179822077601224019494474565059908101015682229407490784491953090296480330906958220820113377594037823708431868320981929630422966936961343780117525947820840630184007490312025484131269850154139085067846919245537379966892407730209558748539651189043965451505789184712208078407932117666796047914440900589822006454829274437519658481676488736502341950907347953687403122184889400883276260878156802668087864721811761120989061093906545850745906911627003598896298006363153188777660694790024477048669167246952524201102162760229907343515712914570163678622074970122849657726234608370647037132978084210618290151179849564616472018551581561818678440107762522148056464280675118127494828254973834746045899012834182626352738282076003168970313841318602252930453614501780467266834860615844561783143779490099745965369248382588907675785398672299788950087662923374051257394564894460018629701093838781562347255948729019241976122711531752110093770534060911040928998902677470134597253516872976667432606210434204277779411821660163444258366929439780469207347903642141473961100775937013245947360398159403971483846927019067438550150602852843547368520004994595673656280262233772319319644170623255601416785688915170466372436715374168246877822913395873744530436201966285943795037583104719704473988319775626470740900285936558721401329619804664205368281695397438225425334558887635444829230332244238396976980622120142292444276153791281891331023974965135112347619107894573493044042410251363091299722085847529760786362651826793514478010649948005606880270255350338467536145067496376596212450606392621377785118325367928580437654161179808311651086734022927490144133394625665148103370058029542154360788407022487338622329706739707213729664279122969567908720604045841102494016582426574257951365746863031263012709899703157075775710818222763216507325666054562408408178459864667076173686634685053946741199291507590117500227615584354664765891882278632814803810513560807583103236363407211713503662424376141790833547841442227490397212945030675232121448334538806151593424299986525691010141796336100167079926513859177664338224685832404220598926855952254156184560692467170605903740469286760317898905571549052509125778609146634994860619511041631889444493398060887643738986787698460101984812861245338867473511371572402494811458561341384688250878393531254181080557164689177941148606549845913148915688766823369311455922082481304535715903002190009141133976913015661005488658447506823036926495361732850426484805634190022984366019546809099544619530450164718666475163338268864604528788145043230496568967080388352195081499048237835648291128360754593981386970807498762976724285783665621758493763102717739093988282093503487403790979294100291646571181345624280081000623452347169435647086125124202713251286710538892598375106805416015708970748009028454336833294342075179768382830209615927057666545825315823449540644525501317707555385591790197273483540787554835693075980765212357829751867083142591046871589342558790122464148773401595028605729292464028532027726541412764793898224938145164893342324865276064378141160004888171769119154287971190484443650686699239279513808591195790697592243513760842560493652436920182307471340602858112213686122285424920708909408388190086179437652820544571419825199843221498939607551993245094542518465297287925285660706202842791869845269793425267913277250103766769204617816405055411860614406242971740498567475504215134478090498901555069077389900463020557741233678603372566852894431483432433614037390023472712941385952498185922386066872961880217396526488686867230956186880462900161356020067133079397335835042368791555635767243172684443791978483178445856842075623243498657853533121571330165834537380430559438010863147516353212186811696312060697795195214902312426958384387231099909863236306730469667242326827886901072653732021114881654042218774825480970548018205897673896099083385686251776931069806100587015841108154306584813279170731443930832831269999899331183280455050699720102357924130041472687127008515728671459230711652626583493702982759491300575546450394288924034003884109234833139517646804384020678476725700867749703761507039008129522089497574392874515004670242275938940747464489349385026975765214058498560359793328432180941586741386466060748248708066783682912313568787466710682195487995409919040895932445934815752411289572998519062570865711397833420281368049830904036061848144921472787962457750208110627396243239428073622023727044423937432272299881563924312050088465389475246444572285186565312971050911998498974128316370057589501218724057143920645552673655006990093747311423969556700926264099134379265913166298399679681980459344002818570846802233224257817619038611243250076298873750159814524348466820509493452460633846628129252941618245998400340216524934046460077982243316941906184242058485129064121019851105530899579822472364932611748926762310107026677954864481104576597410331693153887814519119993581638102573007481825334435206248184750899934614052968434158615706753046198106458513638036367341192432529311101323932755420509258293903025101041564141331637911444064622470792118100730173150836578399980692375600243584939021883909158131241210802332475215447260648748439320789025586933655662728335222247274671187638186470048191845476412413692547115892697111627980075777182891620453940072939119565125037280552425064272829417382995252649882868431353826403011686480301553638477310303200855108027108230923238249503505293325977717158514588896174206109748780684135974960894806193855269105795448620560002370833622341910861754446433891259716018301037462219867435439852045141383808187036757105281508229921575447490568464207939473769735807858620321425162878243906158017423075419282532004044000786120904342767240190973965555666915648000158291324418452532590169759490198025310338308326688929417469407647921667415499658674367583965984437614494638582820529316402561107776958824364607959497475133880967940580236430148915807288818671357040777042834146131865452710406537950780490183733855633788186388809468215123218521402357544248844578672385953350599134995592976414332818847777083359618482231151117356711420267692355520411792362322290383861399931068599966075321199814072893910956069463359190332228524622980516054743617040946554742225490181019609031799026365254110565023735737251176731678643319078685109736272250057627948172197885057165588070854405947069527761762707397012657698348732869404721476245146355273264050903901649116772692107919109921141751974976346044500220133029764291384541948986540892029706683859304923882801085794001053626980563430090671050007058232485346709376810331646442463572322005215804421351964739605181738043830923762427933144507497747972769632937439956887312793380738150966284248525245666582056752933209381983478615336114518976417226854545998570951078015119421667712463698869444847372369443661021739413132679198328219548635253120275583850495822824272706080441056791601538228442197336730465673936208466098011289238797335779626217521797093088949788933963641760956996006501112059119486027462930278115699094281861753180927031102106305641087013524032493244545647806061554583269071406752156312810461573662949280834949087272524504095453876030726810356987499685828137370097814371391056095516627301393670123649633523607280344653138649198963873237268343017394203658656571794748041974020951924965512064172740639437182022862094100345061312931014958694827339291961834144988611765269986170740387545897212409095527403038499349801656648352242847755170479821027276121357933405839098379304833045785818869714663000956404398705790550805093783782253661197128995475758982534472395742352472061697023639751438827468710252063414098787256577554540471915415832988967699632885445464090518900403819525713522929802667608733325912536477583556178932738247653641202592429500902799216896275039357855595950462160635569056142545499289965757662869597985309427798665229745365584927064585518042623976383124978304438530381540645733236926881508062854960303765034207109548871718909459123919318780408505834236568958198246072899672158480182375929503208454222771925754411652919226284832211229043930472460445654429961195296999257116099685822165091070882460985484782001930055172171205958657631919604097987535778197557297948360626621092478426398882224799544685917673666792205183718033412340017751216171098634358820772756275242721800583113189536375412735500177414517690502029536799470400660343274540022724370224323041682020540840680440714931375500530268722101259425067147135795068090191307558911647991931266910284289833668612306730652072480837557066044490594778638222254571731697232067696474327832661818809285247170782121097741372702135717193609410055677969177779840139134024429085283428041677173926238900814834271755097053555293276627781460892501152636078144982885575660175008777726057945144563140386603293923687690570509172370233524727128840292549436659046523421074960082094696478993666564016727756006276998566048173650006325515976088815316588086395567321582474357458430014349557974140635670324628725050554089651440608920988969833424222156830684814702532189346443826517844053693619749592027780209663612599143567863945163873315656647645448963362651392027901798248240774797082860688585993121331661608014053665353167133009364725757682429278698420636379301614108564792224640396762088722795144660610740981253420400751360044713411140568895919245683942005581015236772752263166957365293238971924416750860166439711233781148908507868500311688510363356212845781329117761991602477650841767540825380515003523326201455816525285450474210479815961000681586256143580148480723395368209067721838905125663351907001753704041105751441959835317932107022802045046861619801720297458462936054889311210528794912522884123774001489396274532756003011345368195205489551708372132905571497073123981636161750216955173957197752390246499790482539120777628860077752397469516650424728684454002923744539010527033764451194621242734914668992146940863678200251638712451630929872021674049269275886523451953187250938034152145728909361798793309381436177219242879342195831708934130642341843337463547866992228208740446575552721925841037900809404143729850237754626116814390862757854978811860512134318823184017756331938085808368865667075555485707495234497894512269888476181949364073021074786208906582474314162609972817258128686708435484725282634052463792376989313877137997450526195716366307377872645146489542241699674050814541355470782224985206405523712146853039050602462601130446242667206406794962607789801412209267931554785844602673723950632317937533884318876262875619570157315173020996618624895774347652743044939858584097462095491388399671578863906454099236015080756669141038195965515789160119387828822050380603596963377154013081238831596227398915201524825311002953914473912761179754404238474689975365786978684450073232747196352524712226291771986712095385433126305424745971539555677232925380932819591311243973790691993193209144120150052028741632713376693591890139409524017925467689571206576393867801414170117521978896602398245804821820874270359749313257197088579971587422374383561227225884151382450934851821671243086153421813532512167740701116172424343648443380979856394780027825512608630359502201339914343205334414560694261753671051621405979353992914327530457905909615523523201173346756066361417721017282623330262098209149285608907153484933188984873374591190940437052637630952069569351089619949518005194800804592029603098186308059777885915820282198499044472322444960067630128462790997521863887005907210883726920775790734898704776482568232928911703992106066275206741028019646447787399814097543155722299102717343049181141992095241436507079474615220623465923953897652493610964081350367147550121012595692378159407538935957971683691409856939307524227574657114524673358805859879574098494295935006068329559393783321999354513106638615375587990489714042722854724760022385538302837006556865262425491301644337041875054546419798548741435203658159375378962119285741595909861802811016184608390924722347810384457883634478826698675845457373573146370097948847167663406711950508559862079236916714965144899653396193177126098069947266986425751646493858011468871749971468507999417207255346949943243433819794544334331830482128377411117505692899024299991187266009247275582353804114734399057897961437187753645407882526834170495293314934268091767677268587382523698490907760278952614594354646313148530289555475553117216223489598713962825436471186585225917971358178782068922639944495002514058673287276247521306828269011728643039762178950600133286842862444893842651160278179402279529813006635780097075174104003787896296715667170500476029972613917526337113354538396852030957432265138977251046105417501480934269096893098649248747775626298404005839143571131869058279520267695417618749797725768765489160735727063994328682763263141877311735986233209164279610137416131625369749245583759860408023343517629394604370700192844170648298258669163228796483889578125470991105121642880252583344503024502393817957699038391286368130913056963503257175145669651471370916913430219151197627294697109881226595174504918147595411173786630276447675998690812392015648681580210467588457934001636665442704808280941824853126565440475909063821773489998802015654588739376618762273060430015905964634047226236118327569833879811887885215611733640621998594625087073588107287994399247194120856553471060995264499772440035587605030380209023950127964441453671004737849266108362153282475510139968593879516650494535325601081536324002738728464338564885795847814114654544374727463458268343782827348695742253518366213377339636474201876706068835204737633919211020665321540120948033944926140485533554008432191182573358478901261526828088057725938333076510299024946802538962426895279872196174615287810129521312505384264471123102765007176584325929818307865745593994314052726630631161907910365471312984162985539110155730055367251810687191974865410066472860321587214192183862441869758920530922611876693152581001979563083976616606655971893644235939057983414944645118703892212685128759637236749577028725142089331262790147374615150654917439887743971470039569221691949386110123441192774187832421171339974430570657573428707490528151294096233562456480539530100493033277481240814922790453189226224082125184372799448527459466752536072041424516682851822276247378199600721784220083551216942293982147200161776107984161014026824140723379419360764840565670693028637801337513883653958619331970141652164135508802348642142462258300500130924397401575526121615785388763476943235373670495898412744168616866500194133796568238552339115708025952882676257087993383182944086184398404655548437942892626402560917080228111830144083163871895172637351538993154210626524221282156053425570020162092688435259526522982285783391545562463083294558686383582074521122036489529176734377149196295856841072118516732520311980023833844701673377140990547206789467137991821108321895008309757531181681086593020066418262290456541766727639493618239129888274473636409099423393160447571783368128646623785223134556013210041846977280353449327414942815184007247147904360992094494613877967286642101456459953745845260666307248424421699377160681586685482006126427917955400906493548587291032078775528061193302612320173299769735511681891442678712737351188986986675822959130508373970721443543916163248677441839223812771026089554628411122092430919177734616688824699760610951583757694177353063718005492824331346518169640700304045017207449412753475528412521715539118504461077892014707842949658300055482874601873154907080462496173355471362816407719781602952585809865337024769148590788388089442552604738745519823520028028140915422682847045522533695373482812704192945356194962758976036303515151922693458922418139260728980102629421971256312862310297775402334193323752316858301672088167177745117565661856369495075931028859514029723290501513968545256368460752514645222059064759729959728628120438523384917886705424025121408560303400993670933084912111482841865535720764960563718622071852236071791515761300743221534814927156471343815978385176684895355396219225213468394372256102298193060989413220978407553734830643393423413503142963090513802865937108428958269383980917659019028425233153200661984916740811093987608046741476852839547685923953538036748356827918060654655078850884344903057113790225746720875418015954444163469144642142802578546692730034007781632708707784684074952582867972110229735044814727709070622104633012733305915105833668694780301259702220044459923634457303978785567390730037283889070441292499874689702936192416437204568965632033875405838956319161708845225324170763520035095666684450760486514662300663786430300791146735836085956859425498715756589641162162974487151759062705127903882457219313784556414618434705344331445349675447508897972093825710760109835234150170392777682110239077818771808179203560439595192169634961639265909695853876153607006119963355459680123679632880686417820741752408320812426568700591791753737735058070248172867960188935443758333874739315842937782569650192978011448601762593843974808993832212891352181694040689733695858914745679835350865566272237307886070075762818036691083912335201687856878471363216079786179183345539012713994021474744466857826774459891506250745422341597089945774402400644632940782360285709155437863279592034880594724914036695602994019287620376237334282687646887289842853333928533858616541808170809657721803404158876398753199516643478639146456052798459751294503701180957768416648004355625585884494936905124316432533116989580487043572968915043062019661331998363519803324848061167095747849810421923036022548454170338325095008172240703134027070927817054415719058968953086093332223254213923050508707864553220743436285738773855044119804801646398575421222223617653557351813110918018304641560086920255341764229816116960244140084704212759653689204807213522518680281594767152216297433176907545050314255904688394301761746614946893578771612574243408558630930424905384071542031952815232548688127629495975989736038877353161578897508995585129320499112489426642717241618228040654286558049088576393062928730971267122991200790882846322142844305783284819277087340836499694765933088285544698764823838693100425352196289818054682549636859466804937939967247049865204124390080364332235652503629500584785890997043992507354630185846193808526556366259284429246408856358948907156819352225004824701857000669660247915359891725186683586349171809176821258547890148304365011937379009827653582485914400083137371581361586814884212493176163274923256219600131422034352030143379789884207691204875844674847859693004662930008743434202939553568967082521536375115534201556538112611922601756752815146090642649994199532607799903307669768855998999428155624789280950637830524051950972107693809378333444046969990893510845439107680104456525911850399957399289928762639684714788056494472857065164690199776440649669356338870918049547049663240475284133913508175120462689367207189775425234422797640581337878414861606599259282730907877224136487315647964722089040621256288103727715656265096515829148317334474187496802126582050570662327991907297653094391205974626433648096271696916871757646895070461058801017141640305213251974741455678730624354415492862618999138578080658288882476334191194778537701669733566024604500135498550024055702922531553605842426214930062177387944509227580611562481739576997392931224959627116468500344828541086542437036127439994608413368831224951501974403465774668684420013510566632175594276000262552300100189091996117387750352239066594175864358583673091759220041638009443982083823191516804300833013313517977065314893597161697645385441165968556713209425205623614618120084784768514367164375568851635407989912259180324154001351157926836145531510979354290373918309406609991199235182478305444805778054673080501983815878180020575486009904257552166876692639244833362628300873180139244035361625850017803246885633757082800494012660825580405471603755140343363691061266985253361695776354784925004821418062100925637757651693237258694183958149425459692518258872290559404056026074383132749981861744070642771910003157600133146703620692264788532708752213373183000994786603432392205907570814601948813979864639177485045221111596036304798646360224522322065453401475162268289394733309640750269878404337956990780055970952114685624913560689822863190525001667178809351545703993023938309114349401801368448106991326639895546309525046047696522942137223177624221987147333906233101260248413311800955415639860018871929048013153904278760629195157305354655233522253510697857399947894173670128560975555166154606412459519385106124261357075285984984894322454170265064456828545441225033109812214634952888981920783401050039082420439356728129323761108959602302033417263295636235566891716067400137765539392221575278241585694818660432378669397622620812148056290714811199276283576974889907503444379791078115422230072916536337649143268904735455707974319018220193422561777156573776366441406321454149707633772230632910403941288483953630538774142734155012047697722831245877890460845302164475938735938351972108500900426021873293589651619569722688836442526025780288464570189904255797203418365075635299114731078805257555495759529428816009707370415210058078401458922202406162269648196123490107558857368795740134644012768909282954223755707131699472535480974490359796586319454341166089597857478254145721094840935166114775108570355136904777414143367905192337754806531339538023162182981171391169667641566135769973869374541049101013494425079048937121258703400950026825013199999118854186224980996351976620262376580111197729635324423058814142908563786296970373122241129937207422323071871438789681965678057587499508131572452486778175142554707686816463494663635634733105824782715783105032933992985089039734855302414606453243055184004047874410480576669401496133746540572704975570384447411530414624630893649974780417506601477796508954730721820002517999807769701280063806487702036414923810592583315653596629977706351357947212553610413101845542096842589669997938957978268887939537244509225353915396504815636308236957983408352414810049285867448426697011851427244797813758397681257978430649021494036231633621298901977911128189158642361696562307178124112030748106226790552772666523472644049534916579651801846922717171299320130810375142670844262284113982839006362313213635743416041564209100509959669334722323229150303937616262549806848536349958841394630553123532839449929791933829567144233189730711767088612172098108483330034501297632965524120333772201143897262691148131585928786028077539812358467125909524474994972033597054110445724546205047385942011055193855188994652156569485464543506397200596280769795402398913589389614031137818865551818103856479994820937876215481735475720402900776960661979893618013841087194028479261360158854212891654157868238373423143584773238881734454735361484604069412377742349609764338711636127291145164573346331460540888262690755560059439921986015575840658922144792323417018769903504170934851398624260234730128353617778290032020226565891615817979252654570476303291116265354152247245823668915143074641119817094294940645745918772417021166161120346520509438421273881833824856587240376674857749289586710395115011698975369704626313686322172830588774704362666262185817567615687238134821081212400297364121877152044306686393041262354119288960867476569705528635842191377958242897054936195753446689348389760500066450379096686633159901006322864580436343401917481381737177434541148693469280916995258462729402931066071729032040404596947315102723442154647965129314094184019960888369615362146443242628015307963294173441300018291715465239286313674091002722165206680545176192900809708221675583194270507822248645491967501614066053205087875880530132476253263743866686639995296286633595065985183198881622209822644075887625096283189337755072015697564578649268789223897347000978038743738958323853763108742462916662137158705867747461164986179243775728811656257563485342115094862293015318055706487444605591569537571181565957830462245627061705698087250854655793896347700261594049289633188506017199282701942181338410747300499621642134672979261326052699528151267342230760287495758996286161885634505876442726556188582150106819695870822953342767878165035283357861865123442192452032857155282950244529179533547289786951671347835782921047881784620085350933874282759579358683621381027002731629410034602050165863438479719991352093349149898844503564185236010115066377469377884703995629930636886229499668022319114082915627588874000533901700154819827242440839708649273927554447116011546753159028705667929270559311263960078056509732746897262875312417927723169975895611895543284812891494617063238782873964761352284580765170827673860308640649583310931967583287416766603021640547061052677048744319702034856530990354927584104192021289145484108599955971926977666921812690256965194562241943585911718056588000825799211492560051605405128248025887995429097038527826837576398262948322253964557095900914329268715559696799585981545555487490268593298667396360495469333658011339917983852965333752894600674029174282476606500485688438866255161546432232363010802627117266058797670583306372772287023576774650790381337327361629335620360635245846427671392327291849761912202121653611517465230602285691366690537236924687652253593120723899692778095405037689275385120094311081234433277236089054521226775459539883842637629411444402775972049355138362840111601150420221438939235103595641938613923973362298504660835155746970852200918239915084319369811093790517572914495395607345578516194780221916004959832564030794613831358120254924190893152682537525301971941919883517119746429538445044178227112686524490605427716506520529437004047203828326943741128941584035840433612493567830033908942456981725287652993699097212650899025208581648942029920778302721692515287915437593919564476249904325970983697722249152910373844776187566192491895250522467054081182764046741833135533153400336001453654871318894725761356904997513516615448212225472214040442336381994669162374810781507422837618572491042356138059573320203919967859824741740548742512535099750575723853256851654914922520726627452133127584110779194820984529560320710228542361141222962439906376659153253929166358453903488198077080875064461334595425105267913465349219406615055618205925225139731875702302971368684195184217680512427576930920965021144721026645837953141745338675865307344219659757427369057187843740969558718225543008114132695477925784737467427057817065609033130007772714835475414044008739798864368715894461423007197612211694496244296352830026587370991890152609270258272838973492600600111821282484087217025098412275152938994333862958223028500584379785038066134083798474788123814371837010309587746103882610691982070264839062489305010707105647248659099122083993705811272508098802609115379563985346985093339783713107223049661622479660750065617300960474632608856787009369961710742191407105932315607295009875041856988859182406470090823200401822555706639011326152565370920176362690190078488505714115827481832379259763466640103092835476114607179049134690791596194873842036577418388904467718450530851202051338326365258976283224175057678192337712631566096219437032371685091802717116051586883107379849114063950419965139817998293379554866342085264257670284558459955050523079678616425947636257570299035158119194910391851392779999716436079353437892327573289879040317033183586496203678090643826811277692379134073416755151355656643682102544395947975311698962802254177646082756134214562621007572354304839981484925060085892931271499716376418476785766292599531304963483704651437408607898686658353594161214562150724426007768134721502483439459743454036734674447334310078293809156955963874693497515752303536577849941736646761660787824009452107567266618455436472537489941369757623769852770057235422341403681820243380695797810680735524286151012585022161700664157128537553372508867132183503162502883337371657635741903389076263741273094858482120062442286408025899618418230787581757030747456941115781658281341768703694876667305141237862846842368243632853308442140201495401909971055650637924553210452623927770981151737547188874291124791697000992677186010879958051756321532573089801739884439897263768311323113183084247827705607931138613648357119535670080338865557346292076414825269051868187962800940162588823419525254569385313155564047159109760075669294885925938673457922283279334867671785099876917717732181756554465836379713659373598783806420135305442453019514990835411211122957152771371620228030866010592871370072680977889485761071155872756645211285190068913874725774542279652494676429888232578805049139254314086458815698249650420349051863131765522089456325622926362808502684039858579216754562903041191996778254786692594848720814722179466858996319401966840563732477823934542407332525337162538611752852490778684273245226257652369317572940790184239754832618351191498345820279877543725868847474823382807796311920212098383836012460887595102580837275392478949465278366547953421642016761306799030495671552341548175688792077039823522187539511797159228459513789445197691604245823938906876827971165735373888071399592272004849030757593463722372669883515120415171555657286701703636920487553065531801309380009380278958793263045950050879736653998027792823739431961777547486864654239069557658665953062965867070600201842526428607230078615467326080397511436130471062368279420580660235430385701887218272089964371844657232785926968863817644670359212652598860339077557024498361507594561368840112700154687330885875880816855308475844350600624791581140121094731758454159881517645320097576520951219339617864147913419780082484373557119533733745649757575075470486933720322453474163091497724988203521007257547971334092998903300163024146494704888777208289855084252497858302308191969808590936244198191608682975237213086361864165502000578524053433686648097762661288835300914668602791502292843079443420095395054476890880092944508311921641979943353152276849753753558896758643111125154086190123300849496295496554448127763756450484587893737182594951965872857788784406442946765275129432958815721818970147723359769062773437799976876246832016174594986581144682609824171451241642857869276189708819815011807794876184396489936851378261990639540987311028472674512439336966458211908788909285716228949317644168885847891032879386404364823705089692843039186999148912992055393395224120214456282114924919390034694770173769698575018369783259894987208190872794627621148008703405484570943178359408514129025888004805002890081548945236119189003983382897412648849723699940264387527454806331426558733129961372872147618125392164176318316686119878138259678094518013121992582345913913665297808902262609161132660426426394805837141162845764476462693932109990818255178606623126956591661048506226247676878627979129076752890131196944736921870359845391742528403694239902031059271569034515743643771284031515040551171239564060993904316563462426427864004524510521813034857455171077983261942185808058146732133361964442886379861142426141479080266075954955238218384115777317662693205464938101025199552554885347510807775740465570793858577832843016392450489869006983694356928765899333727522396128904898442426371610510978677975193536966141704796233328125624037938915213621949643105975576328108071645762117697127141975859211752804122679793788231076903045603431062915482169519221997091777605832730373337671608871757516118531045919335191780909031140123498380976145024602516219315389006793076374296369690682048440145247412048081227790929936430451392223202039958939535026030013811906973620432438882758917618921180926318485643112488469767034596943374458553547088194943334215997908786793104275676760040835529390005071380820190657866101106777893485946680736379306722739136795663898610747226910691452777912641512441588557327989291824299987935009478559915037079025466299050936346839416385329200504116023912535230593813907568868581212696724214283007808239329340911393052691746395955521767165995861044554200903583540184494407128366958266960724423983982852705977378652564407544983680849759201801728030495117329394461158011697450050827177295814293680628207609788379925759106515921494078384237034293829044209254528131340374542198062373361029818607581538719590470541183609108228238982489263174487047552250366010436780833146391193292667882645086232958652599492892033939409674127316981151696883116353853829800369670784600891723513154866862979735105790978539217763891270573844639766287265066497211117816576560225449521637058910136478279892006491156128496828525264672657788845973310110110180132275815943696764058410235552215107476336703561693500655103780629994780323158172232776653216408204269207132838445689752986014443734167475637791419529610379631284598487732217410803527295977296893100168946734140694936742512846770110863824256174114802653297296895512683081279450144981690967004818626615750198456994014329242731326893742520579779337597632554038377323140225581725827220955882175608179298974341376504105132816190309196126961216586882065466182051466703509825973596152599105816636241607773207317191127963787289910613795540365211445921184892572361549001223864180749539512991146483934751628551628626388992935661063783713088463037042137969249247040744739215350805645974676596402536447774178070254813268617292450833606472444778085012422560823142050284509308380681057963393870758110937504500885347469236351604121314403227766175828044610948013898444898083163935898004259346389649982668311001807063376100457477047898497772790358713828536621315650494204357964433045527020942279028352280156525006306941027146764659458254875896431963347202362178678842403290929812932666887999589699538327047052518662838175109110111658175589644101302575195572183394672880750153688808952069625033079419938455116910810941059854809902070716922740511771490717385040576567105339626062973164384812523311485822138113850008793946038291467062859688922153874746603336021498926539092418765831749708248302271693730308662347410446664675263285109227664750306975313265360964828663241518603913510083010806983392323513440889706505599014077119614956280921972834697153501517849505795266453808542820682027415544474044292103701525439351860511197330628955144737175164491112082323012923425214293964788592769206839672926694550965385919724126406955765906779728181411051464675809543317539262970778587758629473376338477523066980322250145707961609217302207535679442808947535383196989696175434893389361194630199031173181036480449904258875865974209150962268202319378508315920022480721326337917908373494154903508608369638325439327626240986784905915971400715997184725239976302682209370503813419913760867989094794006054875991481090194818674721539166528106307660129303209595929808267194890235881000900277119459072000137815630546372512783036474314786859627758900455582467848044201472213278219345327738348419979587882703144694751920474751913134299738126274053878071967766675375127638702908431540091995309248964269999759787313012254700980773747886198665128786864114162380374463493559456938371243246928370867872619189263552635964585917368750413549527913460210236146499348425540085680990884113337076937508936288319299253034783125804367175930712345668622130178293453682773724456282413565102870814594092342063310358165592660988698810076916188293387492131258085157129001483139791017249142440181892035734446777858689114705684102757708839602811823840138915621970940882453148230847839298090346030630145409009705247617451961813860224493344891062397927057516790885321036330011149893240834378370257839719212216353069014556928459951267820564232205447088786712831344385004388484301720282206759449321485363114711107389578004858725326851687576131249338405280125759183150574911214493405829075547219254340219935411442763288960144123291603807912339864807169241742253270675544779966169504984067444567257075495806321124668359067957267707361818810529260306278899201221501374966036273297216156131453468023583940508366842702254318155543154411071017157210985313149720415397485842885013488839675227840593398861471822061432681430114553119329777804495936206097733189422896150098623440096061075194882487872504649180475731262683335579364074254034552571439782339818054125190950281234544583206424171991967349760555453265200758010826244767903246243496001264080422614110153745456990711030100892461454064108176239216577136564717566417223047530147788129962238941169689661473825438817391644121074065671440480974381223656861997525348115664404314096811866093516624899092658320391609364848430132380633355958656030629050009451780172368202409366777537794055131344182979544599522572819500192761317623916011911651371513233448029954310851571905915638002707058168995594607610069893278787438239572914493142237681036241094200148093371809352394693059082992343642652296174237563291832914302279021601706743022627365177125607749965725426461663607082333708760451771954307012723433276186999909023075573104492193398655384883037127636504906590633654721047615307138442965999466734316673165379270146881728390167901470682926998747446659434173257289071225775222562176498844233588211267360965523030278424937464157903406551286343815320551552102245741456900695744744356638366128179095812695051087206359659160165943054430487787540660755686285006180193002748210199119364894915555592549000609097926495918869952311711655163263326110618496790056962542665828283388935014659727116684970581870853534601867668533986116143115699046229256882317700636381620853666518105379400010931405634605135082385293661956461510455403638912711101632987351345067729710647791065382978929424292388534105015392768113998740315229467603211365388336007692328218639335039887159671325504793779650992360365172188137018858077389375106393306026371534395278769878101208230827454282201456243194094452090535956450724055864780372425415780199852173504603213155996741044656731940637109189462595030878650178195172158070217749859835132168074415804882306690025237611092012319547416966036722436991455794836060208189510685815472144997050626106116986508904621519129740080088942679531314582615158746928368769537504790251864273350787593499864037765302220251646503001207928937703290988344765093195009167906665131170489526682693095755093483525733152346272567984542452185631498852355244265237373912332622679999162553117276318374291801647916439962672788438053968614201829365524626787704770039987113760020404661331819823318476634466129109755995402533632962065649348190252584377474357555929903757037979474971835692989684641664446948822905741184546313176565626773508655986965275888841416180723635849095030397354706194506730487756209779197127790803747683642263208219077945890669911422202478986932516125306961274009737825451723522502264507314586735986493200185830999989261954880149701574335388972987876999405549264196052971877668818784853844026918536461431533423102750544394711213814288120923194837489949396585122574196073447405524282644397205669674456556023820045844189142232692917976699274644768681509654093830596948845426858501173732251804243909416919433605385550582426464649714760597026427522463297390972085289344868614980825342748105208898247908562750449638324108991628867749760600242731292334304322573139957727102648117215051325288033413527935781082375320938420624970507889726600528752708292593643589180845505197332965747222848893078079857649069412798725420938373293019277524535823925487434219445403124757599891762404541081577299421971117183651181825142221552816351645078139355831162720809835549639055913230119872690473276815501580030993790494804366217748712016230736643434762686679959230171827262374932018024133046256237997888466605362405590435279404045698774305894485007972077776656525485640379566427108228208581787804382997537958047023281628429015835313102963320273976845249835689935525256790393730000588037813296364503581894575534010749449346077918779553825672717437881244834626510379481087323072222500099541236662472836144426949809674545980190065668982299097841946021039855623776648020751197920663308708640112708213603729290100422294453645328692057426722855813813591227236869512831048879165370335409477637042509555923922722461829264123169782906912870010414962424322109356409201813063459030575501567526723041358437347798338222817363644406205993782787015891244307238940817272365499777753039702555054626817050937227732485241691664359029324075675949535414143123437229783665814065132659044584276517144247352973481766659939867833356885289341547257023805410643510294002382641863765116643107431686379536530980604650227018682787648269933110011079828332257273637637812730841096439778690102348367509439106345993975315541342841724096502811849702688358589427491569863587229283295882920392996504871999432481749153107038244826098166401379229742674693762822212518239175390906178083022436052821970119819890602144257625446806131586342763577699696189882323588909544524920412688996114919483034238247007556663018583718123180794784829440344675591941421320467243413038234640982371776011765549228307263071543415088396922352813489944696601089875185135378785204261862034971791009464145407346579869389247131894451208165110730284054861550504851646393459445747983325391670539325632176415083037495871333040264174183943561121824097671090727636800853146232975297109815624731509085376647193871518411406028249815793508310350237843851441977939539559315806360105945460818989063970086562172366026508812105816078930722214033248782225630605051655633911236682956723235410449355712835651956496297683589403576034380692437811740584650835289990524420098056081579090579336219571693419926468986172211288947377798991539995149161388639824405984873443395463081623083830128461368736212649599826264897667873694310892455139656878091315245481129151243968189948268755672938114795891196411836894704373646547529822818304834915762029315680240270873241999473370720181276216594133066320770203938323130025433509243206191199014342958437910112703580239117130421763041405504305748555292998108419357855941589647125303913583856120338656042338024810847750902590436232323725928644941218726393083714165375074191133870538513135394016081520361359784672075528590430905376629742409388322323149843369378648022364491434005885970383071034301685834856315819321250902547473894060336284726620804480208627951320650423415991150025375838802215142496395902065424794558779298594752004177735926711117530199818175125591653454531818568515334326446357993352883066228769349541220179717378289170522311051508063967755567021250653557310101384939099357919785934092414873570553649967534520053044983084347010519657963009989788620552610348606916115605449021773345308925420934806771191648481594665737806740026799037275419385716395721880625119842892142358449541420161201190897359477401052763037943614869745002632311198409354448358822991124603817405162145334308133454771781719639024882538591126749635828394700196494006178090239002261854937853219695462039639376164172482232284856815875826332818121505035757806479407276530603123858498402228183548435825896439446426955235061261577187886344020587632562992873077607037471386618950101623767669556020596336744661145310517400716704475750650372938525531982634315953453945444525267210673665044681865900041105732731310523542013727571825239672493426769757370640921315937230182125799539001169561855160392290541199938887444652941614612329293602569590236017991012954647173761272081766315820459909378218762562116577605686232408716080327407666824926344051285384348030232330352023082840325519639882060404365879952329469241612885011551793585478279424205391824731138432937142469257488078450615792047835873165001063370542227041736078627475746859307260376865891699893705453210484569168503266495736939967163385217882981459585539814279354056909243748468808085310798984810116160853068614884464480974443785358770788830298198528241721865126495048097767316940365066620774115912924961550688722292329457459250492687891070007501418452023147398512021856386999626124479417820343206920154192000358155393714301265164115494344659788707946444306719007383408500912841624482547783826297131865450500297708595792397199844864876937856978764508486026923454018270631460934989470278209427610764377854568169416480660033700859913473575430095669709865760148351229492983627045281587487274974221121953463497692259155582441885933459671966792806659895648265028341874036663267544995314173426465482275166942921591398677377270642440853036169599926341550907177347879690195049814684917880931512195380178016847549588416210844483799996717227731263853726742220180086421481289232705518159473182472265753322759865380343765175487875044209473483719031133670200681365050143756651129539933904290381089885329652907187565728505979161045297545697022481342632128394158738182544830797262493727313304507482424141661766277999223431004148328837712321491535494082446839758298494938540980998404355625174032421469023668549898193164491176490042629711407668497130336926943721773120420921930246678492755994108753360528547694370949822733723037527220399731226371955059494004708409982009563276634541154813416339000872303188254200935189865640787510787139999087185213085167202512081769515173187911703043250983356632806753982422333395999999348878837692835525710235738115671983279217241856438782835415567640162022961905901562242942401735468876563988939492946542138296333451527313851966130483267383391822675586166814957812963947632220757981630117754573341829366826192529488570436131064173053853775264096192449489987383685762280998126113092769566404923406902531273989681287356002213427617613651061305385493213331342651373187416733291191247427274887054090320651190595962618302407674116476201973555297833790826579328655452551716163289367369452467308524661819172969544554038026987509429096621883547591822211433416080589062373667407858232197290371958530030062356394749555246220794200927330358766928238939622163535090831477355278120420559044217613739321740514582511380759068206599921281210516037306603431960086746496062888122862182594419516955330305046071172677120926363538245530374249063437046474084109029338075494093938862572257545511798723173988437240080294697778333310767216133802456621474433876510345857948393143678101119940269866785834661444234239312511410260569629462374177752287392228457649511181447510945580972520429788954510686657052270989457805034199425233932457445939749018321750332384662647962848341022091969584987714871720884987450662656880389746814756952838440965268362427973225097810757507568413381053629807692870441575227618478613705885488772441583180949150040068017193068679031702888383555721066605158897777431994429863550909852858741620068618635184830959286501191243825088071659264254011532147896711676900107402606248371601899747784050711442389109534247293912148192119215866075128526430556782925347782794345912073650064689723876345045346962809941436474581758691824980519068182503116110924990988179650500629694517281657859669895081397343368950683444002600013037563295092492665579017329660826783200791117708739110286101791606708300147121544320025491372597202102441485645730190907026363990476940263327155399955531609979979916741309797575946310377773827215252572107701923110086928343547579156693760437347255207331662898943024331750180681728255172438215710146015956617754873227356492928370090750419810985208276603299602881394687424618937292657331477171894811410016689618885359532237812090910187608617895480026390726777683604693382661155647757758381929927653112065607042267726281870936035860455061334653595219063759288883811559073315101722928895322255733214048509574644725259245462069278044134157981763218991874608212676589370410920342434118243985450434946323375983972054265924508179213208172895936784126615984706818371905907380937043437442777234112972341974743088657819810726773710065394559885501839993535605525422090948141528595319668037194248104859989980383255262788118893192808806912613632945726666956444096730465373612008839039467537091669812447809622894764002536452120741247810244958868418954610277226541005819130346489883628231579625192338982335888971210084587213025719658579481138617017818263709067733557379643491708077495227315361843851629786648987245575947921103363681984807533168105145486309387945118867614504989437259507514594172859977592966499113053420388219943685299559015476611413128637762721495601125518006055791817688851441957027584450125373459540792222586893848238698323369622217576685342980208079465511530910140862277757058838403682001407754223230149748316595611430062198676508391879806029863237244645824244053255950318036005656804248492754736211974803698001004250122590708271222693637985827315420271973229544832603417513852807144803240174411313628550598775144286254621979066076448906238050523983856652862815670255869079571783433805542531252104298535936901302699176875356746914613720757283965793186698888593257698008495840236805184056931038171608518723997773885334438148946405264192470608708169965492896541832422974301829346861937681172876617748039916754112208827810999052630970754287422051420214856339339622390180246830916864117277718749003041394938154592328740639474682183745430030025776760760805889508834868960662052380185421447676808988610293669547274665677182840955579441326828400912381931113964732523221892787196091366230154400425046429660961533858964128483727413386547686425033352501591697615126024549273487114996521369713017151470133738158872788059165207776456554366848938484247351563875898791834242306917498629008766918998755923341297130562025394209583546051396254429276129966824767752076168082922158044481068174002184117322512398910370193655539636724569605290590213243516284453845425924495923156449208187795938882404605381656037105114331543090982986406327829551911763782613927923002778059328197267031564841364381708060747188818155266997918603877348051825779142412930336000437415217782087638451112373546912327352152054751791148123937942962767338955326573914100741081887072635395820956071186769055858610210548749094001492307126509476599630411890230691358053905011945792214802608274086223512001425496473978089233191779350474461459103404231366571514443290819432254713266063426144661602813350060799507174010590303158911624131519592767589737368467276110135402610028936082878786887382984048424495649110964105632743417439344262745289260318234426352771733246421630902312671031660560296228561478849918497876799987309685091815769266074992137284888353429256692235109120376833187901753500468765227522411623062334356574362581002794738365793360998728231293493317083119726666804810625543777704014348138749987901131585414266479512018939387348515864130301507828695203570138821194035942763830600340764634072055584003654110151321443094519219062312339496213807874088947291441926765617295958141674976242468985213125071436774482192339800381516200960101723172392404111053018408048401046074865131139946271113227292993058097478024263266487008062537677451932540551948766515575869060297144832206663180873476663389809114145674378627126838185782086850176892249593517030899490064051329472335673535537446870436966161617686462718317058245904194685826260607825028686599804881296598306032100424809224316345466423036329319463425998682980893601049425834995546710140874360324782457449073943898799429834052300805444409121370276918663759029530576525803682953825905235017529273299682409748982576422276676837348477230577880770758319737102513123288749740731845582860881344114945319988786218323310004045823828433598612484450461417384531689157357671157662427929470831708556181025614617918893522462193004570979574192327678613590098578246892155388981535129833114409697540028421392216236280856994846730918444737125862810615184298357812441229289650622967029853098338350288498175528880938440096065292135163506427320080413393130996763075175406093512144863387385741861717618173043894894528643501636924315330553699701161884695717377797643421324223746347890813616065503708688179787345419070212473135092291606193354322648348586788195797844801684875234907772497201441782983203318386189375461458423367946022118539646166336602590660822798240281210427678197341035113039328336568943008630607622078338649763626795750212037364274978473974178852494878625659444230703733941480728691712056888813754981056297631485089435119644594722179141872315127304969579117480859525189117621386748269082514263595680083707865171693379754659526834020465734924028259939731108586757893159780368746057198143393541966742388716295143440544208089236005846186178229725726475383294880665314136097488041423645852815558025831797691858908828947561888773477958161570450958391896413840453867327320628428939665640771573082542835704670798187328458991217198468272900512660488716586714849843638918859814142133717898722899712228100094874568642514712590720078836587528291096992176056718394808630343709889159973620162190155793939686861743638507882303114586855221515819682517939331629027172586870885453241903887222117739344678163252114778930225116870808187844110053746730978629253358909324345985367768597004225399521380941408651296044143730559261480695005250428934103350996109777126537685424756200298383164737927902963710754218590097234060139798777138822660283552086646584667535915560609085455954521262283120911921039199670617914623537724543050078780473948673545147599307589019009788112899771784523966256140015044421298699989400506243308452599907471731534153256935329817702104823493332823918128105957283234946745528581492806608120895532898656901226391741083532643766771036052060876155838500908805419655295776327084745751844619040991912904510764126500754507689305577650710617217528482189334354811760266157830783614870046483219538681070686826878025941908833333951947092472584078839606246479204483660982077187387704776000355755832656696051486642286181843973764756683633339050390450465619701042393727405967702226303972959869033713282762288493082175669050814632968212016263603519741959023992457049381223386633617866719828928203090314361259695450041965151016073757765735437022469454042261190894565014963702081133997071028133889668562861009911865831880806757675010571946705470330837308674667552847062541596203343165534499847876200311039412692000521797312776437769463552485930564583579549735211466280424180185557073351455633634604727776169442068219374666474060008645585712136295959801723232233077455667585466226462151297954777659584728893437293227705379791973433174659148194420338723285861031331143141963295323100107177957293175807885136129358587199724893181550741499947007711568920615891684081880717240375604040613862564582244990017278717921009093338868086270945001367579263861138179778695488048071191960382081955329601843951536662200650977649337669746505574734116073114392030729828105200758014681479239349805278304483605173418270913682451314848990282068660355206403296148008145804358309330277706103494430724982067667970046165593575944065713891085248210922552265795243160897778771771050697637217714316755702826379790075839192036421085603114480450975530856598861921142525435873202826746123488790361709411058325381290086329350853910551656702911779538873099788257128626281082053368018436049270166821665338547985721994628732445009414025135610917080761862081880261756486228806198549368222223924084502437160056784587618527004849075443420911052450224215981185684060959546950184351121212972832235583364773071944735492260217908985068330632847542450585694071318613378545114770734079798594722108293609909594652072928945404713575413083431014801737212340748976256258487065962625377150567455454719656139250512458701836801598983239589520304377341134597169413586309157775228049113653431683301935301370224614403054868526701912161790881503473256329195356280742819584709901221076502156422167448022513951913943758164432260208110896160141331075034783772322932496126636770377417318705069129723660105876912502042196348308378872189675061658743226370099770172345192352089140529355431635691202261861209952271018075143011608382907264321625119823919089879598428542963193347329084929680358708492439370551303528678645423873540544275784968620518130871060174152045036313997722230188145895400772333174293804446205728443387079239989913894995670823320203260051066337617211797073243184750970367419301052179322473400945077406468380238828270126008966934730776373043809801197185581788567053838125554931528588145825891558336549782930340118033010428927110174032191392297428402554947363542063712671573159427251546259593181262128130205031912182409885304408382132880326399665935472812236655832371735018486966212431359731193132749761758622496241340739806420131730173421219435383578802345727866416285277509176952923472884513025095578861420847014391569995387567634892301179253821216040692105915465033771273064819660514310813890967058496959990933960063443192162062849704906140264272132301344440438590249638183433291194730327326896995714444130306990530340372653705077824394981285415830221514896154154463881219491643110263714150642880063915113017453463298133710692282403059971286546217925330547515077121244294955110699472652300711149725213977625351977640811636283153760312568479171130930671488410698933541613511901812901075283583341379082324717426321095529664574912534285722829097874337024412014913398810519152589367466532318576629639585481921376074472472065610564796470340194874726131930693539197813179401539958235032248460477137226647834035151779925343927512855024672764438808409580478057366173260474983065947266773624977531548363716650768584817119307390909632653038768517637881824319506907462466174023139796814836189133355273121047002395059828354685159421726463511706787022100534360889057389498868577872104315268381065013754120243566868308252081534063230532645976244010352279257276373360948182922738223525394885984713631358957302537376963773248603267424041198351238723438714784576255146480648185304089744973011139232721029896690631499461857225769486180756834079548922816595734624073332136947360723867848701198604430905138303218241583410468702521605952000739058418256318768185148322387142107383393804724938090787613740812736038526045612833357586214799213140301435721178116986948539378295371025771148026013836709627930279156040801706295055339757368056062715740649096602900026942691714505545880616153689120073528446363439555748504064861718615487428585128754198854995134095347792610229507499730197074545843815064783054952910271404774212178643173571350744818056344331444780768785665574716247409396805783391694617541202481033399414673132176087273734677711538882906268045505550016928935082502324026583129536770050001843314233628038587042988966694017339010153151563281175347303793328575441808924776221242911911483823377105911326087586146496972498077756915467710210366108407626029951492145961471867164614855193475666516392255785403900174029642185656160111767352828701707476915637952610239489800819266611654876680437103989358811928151612836952774391990347593905213454797961213709680320351217119290435984201946439786353238484358184152509485609972978279814713440143635523622207648169703193154966079760772550063849325150347310405143138752691341755737647263071672864562301358608261555538558689833847402724342961309253200989249434758064819265424204224018245810149835369408330188934586115249941440369886856217583939017789555089111322646300977124090571873910599476121718506831169094277421112617995319378587526086375643300705604277502518475703213135009111541999870288969606651603442639871559221422808712553533215081275320901791492845372579300634767410587178521314396455677201313954621273734405249550174220767086652130512628431297574133809745668671265852357359274113439041727719461115648619785366361547319039391149641245164570713663051103759047479626275927871482127111695246301497352054548642832090557158615098993806327884218040755207029552925310517601051970930743934704948257188976672726800470661713661409674683814675557554044061899851961942986139350656926496570049599290344722749328032038155449544558765636804453263792786097275348773776991780574014107292693281577842152851990622023463075897551686678751965817514752995732448243399035497119930463054420063487248719034751848097063174296024848458214215193937330825128185732504501915194744940193880845989563023757117168626187041699779849413887942307509274105449332180574144506542609866189293019484264220650405905467881666592060979780797677255261245273405043978532451313126048166441207578832132424413675121612000191009191721279079766761397928774503641209617169498407246626233035906203295527426122505871017098664592401717029537218094329014470774621475721090084563215285057427335626863434530509569491787991346792033225135281808154509653960551109329259892090610210912654692116631322012052334400946245376244352337048947953581068989262000517055487671090906741234400509521091672263966541778788426053663403068764088817262271345734884813340175492218412670736857691243823851775944473624405496755889529485777166539866093017544613437536126842568582701009063131548543191889858310578206646225685995862489592079552488173457373584349096645876016004907428557584769373007339450249416065395963774979064754816647517387906410624313264073651196042573772323859470633053847307979176602844327025862365774464331749222040638950191808431082186042659744422931470962429142162455545002487676823672851629712283953398579269969981670489434718308588265528467137309336981289575150091829829201511435956196601710525172999293089591154708343613029462325473818644722671022662428005283716227505444919939402326486930215189515781895497071687924440513165444745740640504339960930816193357260612388710611516124793456341798044753254375323603178743929979784717314563616164863693168870678609680326967323261668688636086165895668743300431692630191580110895512049621323227213612154080295687864486890444326867174715260726787239490911140928720916483851091282944712081446163717766839530183353984347884403524784925343712403450530934729558253898416782594597079854914609488124626177710490431082394245091614146551456488314801430716658162703395014406878893579790033956217678592225925833804305419110741302610026994620441286134965068062654702328781087628775700008453675315756197244327767825169373042656231559439776964019519675484633588602766306842740425633482985501706325523350144264917159943367099397087510628801251503104355796299736599079176184875381477535698140516596342953386593391790356794325225277565289705078564005231490807576598505463756928510745130228202636101086744845846956226207271914342914038981417298155657929370033237157453282189351860066411009602078798145318811159665126986148190661477471954219482349075527760977292296590300936323996965074558642180413720606882524040618967824496504046865446109448440881165813020228634470795295168147119330206609708964095391200842855764549339067820672318201402021883125075416621612264742764172306755905118541183969565212091467928871674015076554991533257683602387516615422734569421563589071102555735712058231692488582855444356852108481921799279630082103260902412410052042056344736257267591618882882221532462655632397512591420472175226824403839087065462141446884339683227835944575408767344852730410490358235716571515652214796925652885009666369505777344833259023739380806043046604848151761647368311916033657915248418317382425758942309464092103952291547812890693634021656452545034251828520494862293151649607240802049872953993215635447836563614082862429838973135325789615136599568922008552836684889760780781861673141602136851829413260080730295289844452935882181445196024506846545040794136924341738155707758967585994288973135661427367649989234681374705961962981229571787364285748668102328508494141845124612446812363913543588908722661126062101362019399868977908765215844271207332396364910229313956059975472521558573093055990654587276801682497134570925664697520610155510970233274030788090530631708014391927520314513403412958444549690544045795750592524976535648090858623315317098383136141428533604128628672956570038593327752354212726398630837715834980273108125613846044273603934024236385835782138829987435583721664094393111785519201776356975316447047341211120074894326737570393466312420747347225630017849090397215203601652477305919389758480116982470456143521372980499433182565373691230487127181406558817439805837665121472436224635698359899135970691958852591560141640227543540712745983666223923371263308094263832979319937287853929738913971456619559829808064450133300656109148471286572406036755739194070398247388458311367295147090922534151385513779498005930529668869293728872108671203886191485173377828842142710914150734562478556900234020002333347043297201187159186435087813573590669601344018269740395574588755993891642509988313878748040669805423454643375246116401893385114901523706099502657664307263989913728174224694917804800319440029535496519016498242427010648387490616514989177550625792471565115574366568808817742072105597350957693311442214143315545505278901367493353213665580198297467223792048582306782139369094002593196029173044334129295806560564880250594877935095018424337525845145122264259626188134058979098025716816806776606510371503401873942675961678788112676465467721164925575301131934820477562472083022599631156451374319620292342419369777370820902390724442312255265646207846413438171958543542952197328439935241438291215718430716449308894916444461673973822188367928124463565824212523829737270273966498819494396875259269747331379550614947080125115228317915669430635646439202613842769115709254785589551341278499313078990453820977094172623618995683425572552879639829869249686358047148995160558952279859533345572905315658869374298543474747577472847672263397608607327692777250339032749532834050096466645568265545930810545549761832108262567090710129693574400794087556946015013490891583831504656948739952885191039048921905941178457637484407996743101054265259071567466287642557964339772931884537599455396023172345456970700619089366935571603232665846593174560714519258271235562507633740271325758352318419635767703961636076926108995054424107485773265797322315336619913715808275618011987778582038933471019892231168965007485957843183828426823033188708359689815054705853080784098124121291021440227329160107105893078416464110768056925036890197532676389400718805437221431591863760285409133536673489513924694125291367342637410432431347549576055001941663001976808555719849239487337793414835139124972742605298207630736442446059239791920562167293683590942700684891476507166299454733371113701085353988651296257182316008364019517223663463293047852872631602320057053662767586787040312906081513609567006193048161216499495845476265831364136411234487324618343413348205283292543508223816787794188844082308245147647616073955749338215236479777639568967781405959316630068055206310362230360877578824787030277943244600418545271189972632291463619361558223266077928563546334900213082094704407758705459950264210180963123128472837202385821565567013476613159465053658388788196568334027036474768306758931137740140649041773176821626524774947578377185250066461571320419577409148233204107975164638626817344860749416033366590536110703499601594919796919536610324297226382044139807601026188166124209036207158309202904111055243768423156586659190835833350269172979955290449243514760729492921674889193370195891048956814231074131734591282553421337231719870238507134272943048925658464066948382320617340573750494369852308309970581469469434319402427449192431034657420427318564918765578249035751654225013287542484943165298152279039513091631273683028145685767072187614742382519445045989429999968999372801012063837888588279876715005708065159689270705294637693626040874786510501639438296197189638739613586872918366286103005389134125757720820816821944339081429928460816738107346226462639961386045771780192487299251670614871838189195508438691433412322876939856895881998894782503159753957290723752970657649050864784123269880944446538357527119034425717605082645722067233389835099971468651177979629383915096818731980116122075449244996599003086134273746454141945130384954319815710005006378251948754646477857136271515238935852538278286637159793793600921538193295033514423623267079024706585439646122841875482798952897489454639866855674135015461329940538974355541993618441747506720661814155870700506336170451732654246317643225635909823194962507131005256020213321442528617155346972615218849973437091068225036519925717844903642817044249835662037625078928217374148456894331380778088561676687975585652328996667983222748694799313758593862057036321873798076207600594296865994253584686103065091445982600526110864595254988995843698206751647887933606786724018460724363711197927055555705205067548276995202076190613358592782605334724004460199907371742882675398490789256874897220837483744468224220659303982694989326533062334363323256480884150734438876721329995094426748926318821502339312703647901473168506130433744319641673159852831599963886938505052743448257353062264587397152302272101051125312969511437758016367895680318124791745941960946504124897965134978021415591198621568115425968157745770645005745240612897325551675859814339709541952070155806675317802513868770869441771665483325670047853885459126757473058869501820409744683432010326891436079331748974048581950786916728757097468071548961188821398443172083010513041214475129638581313694534166183508741598064047556545556687078864171119413178605204243841991207586546106763405115823095442378926379782560430704076958206632247909457646324891235345767192727662575054354421964499349184044419640304905852191080255521320080303006396933577124415402331009208355060957177938330236155918076899277465740954157903583694579692980305003077733609278314271338956947694133532724627142319625102071933728276594163725983159614575592680592537208976795594102296643337067184947782620414020400511176883669634121889279869918175326717712170705751823644366937948052545107634340746823178016417336933916256646250252974746566528881003037517373189243884822948339332872337958398593076201292791430132352713757013064311676807772805503872557143722252429599137243119491814491526667604207951018196550545614257334228009263132274650924854260347449920417342775195619454110284124600230757704057103543985596492890944472364203742460324822743741207325159407600822525638853822376031422448477544952872093509878924552962625515370453753508002550893933543377688632114622088712155191534706065672691761233960483051826371395385994204243243979949520633599569187145967211332076610242394627148651377672608042474302326078987132198950446358455479877956875367829237720785416046603810906754037744415491787631946078512863054333911611291230291099242613906487754552582568241953527256210732756969426057214076202041162938964703660805124215799671715655611773459719677968371099987388257079368896143798186921037170250588610173422806834956672400329893508632405509808204189787018935947126072875454767830517451969509132805238206278282459341877650489046379723855209137363199545411515164488614877245015723520573246331074043881876585944238840858166078421328358758888027701483028324716563948794446416505202049255451747521340973728893423446603255257200443493808871410513657350295987321561571897117639800073694078478335899729289102886631352225652394465935514254395289194176289398686681766925791464543653929018649396037279597682615085977512015682028914873494725876385942038526332559143635998414492249984997925986800756951467538670193010261276876276591410585926812325732991203549191046630427898399418242223614086351275008754699574846718022328276409096780656737149910700778212416340095855550790235162535167781434111597240432914076883473636557682417292425070092990789600012148269523100971353398812610052903640330182208933211026939211000630112432169222989119844159180840246952118581036665202619272286283166443022379525204654072795318049082535585178385177030596489546524402461182812124928727976106302080094520038707336880251846402062515061218052550480724026079495938814609795471617274252512743361978119576089425193388201052250903457352405736877573474746693762539507738084833615655900911308424952054045298802939352151062621474204171881198786379782713731880831571757812711678407757396173882086838077313504324441685582764690112458853209065778325939414851244173469586351058192022201167324146986158109703388877661747713052572948853613459965232822287828669613826874075867477735049808165285515729227493582687050761859672712428795236710684358755144782444872870430178896570637578330279065674082271687443612439530882584586253804337100544103149220644733337034765677987644550189017854960981882717579299273097846061940633580027581769548606021553746777455999842440854949207375594758198184695031722534458547752470875571515668363462316537738528922716673611762892397715072604167828265642630432339670141273288913437363418571738370085132002904219694061945865001633994789956041854344857170711361533688933695549199362115440874063389846867018996821218885355709670351824405553995526344254196670014221481793084292661941918462092205901697087827038063077888101805160149854591030430336886126241789090053955088514044114831951628861380670104754703228345029675867729879803105386953218652431808631546918006062556572454293818911642633805047583441393176144666725794791575471900698993153194647305981170613911491026126434189702383226659028099815510337668423844401377561954523196869706583391394908332246859607887180332686178262280764356529760792730354561799016900756003102044681212942129241543710262810803142364188931856556033999850384850868331291381889964264895925331641630443383698003862838162028219822152436999109422992566709655983315753229173922187115313854046611213284554535597235080547651437539888383898377837925319483154909901037015976635076938320454891142273327725287997409538498974333314408223573889391402255925480767609127722746105919201544810261784186145705925708203888633270217116933880884676583303688974146787999832836598829818220298446528784850087276012122046818262059195800264453085408308051166726343654648232607452628210047074992367953050063013331220154045321347694678962613929372023049635782876438987959736573273719068040595714402527308108555418594721296182207928159299999937534561992245905178977572992936753215200400576092403372856568826832490813208436638760785427131154511964307958365505734324704352436846771561632147952923622805988407390404255086959968019574812182969704956389538975306893512939966684086293452658961264762054364341141423323422515533316490271502900123278433044160938653403405837265154886081654924309716467299013042082805160294407382824103485975924978923954489612963568186017147419199821388698662064850619126346288588160894015616776214141271859209464350379208456767535778867248848426563053724935635372106258167345739257883814135452778734946256794345100315443941204005831583141779089332120743054748197877307104616736772408018341110336088732134559058038769977672736440974693889054838979380760198482784650324085263255344919669724482539487991162158302810332079723026399432828056476338215512553899736307503175572285007382250258931099671263889479641363424221302752498174893887916927907136832108931309145512332626324643967121280077226026301045321513849675805224828236541543287315531743565362440974247277296543195780407675700609411029729194050368847861776764120951337876088411364383602367737015183579487638685931095569854509749710798531356638411949036428857997679296762026759620219549035764846721668488706738404909610558702440055648188327809627073848437393642719896468826733171653480676339026571716353925813401544606341923537839782025082945090124108300443018502320506808882315328914461264423660077895738596266743803290318482938352573531745525913977545375022531243612237443502628463733511296086427804516771748170363887607292006144119617777887679083787374212731286297049376070669428407948401789061972054208948905477957698841223467720073356249833594652006017803589931913763548448988990906075222590398407441260502823995575174629379385461934863063135778082296136634240101480555001056978173168358166054552827974714809756161978427970263218163091633538568887219422863403335522857613505157535195908804045037604089368014920850452241221957530229685625690542526515621438474616393316023877050326949445403077352932353343215482427263669168291602678066845026277768194674380811215325182158518910105568838022066137939613016343453566218502795294980995717175390766451960545160328719596594581660784713373687562692915882692749548007858932905497433355733852114079283985661744140626248077783691926178603504132382727907368993412276211606030383735378013705985705112398610854910121722754946325577953881849368841746156622042432557922640978270339499245578698346861736963857398564357322427416203090875608811191033927015857387673696684243322920051905703137577449050182592344185503242247675103378035921212181520107718228624594121002753191431352243410064140812149995641263224910621680489876702942746560301163298759028859957770003763466276481801408047948630445750471768470446781630114862684148900801900772781407310781119151518576184244706453173791208670814503634557037814511060866525703545805168018880904140293615303260668814494400744003819204130765267331302908049762364739975802306732636525815113917031247420547501475073905189237381533532232072608238576609982779280508797623435522205328130315058744197486332591115826630074628532995294241280318229260685638965807819358514832906301511279921517765492162298606039977973454677113121599175852761825801047963564422396024056577111930821956019618426408963601553460448048297719317452377027950645769340981431667453769368759895793754844475608973727641358486865819490303059098063149130912415842016608325479159541949663733464055507218133275365931517712023757377455502758280630230510804014735171999489164664540974346266263602271814991483707807406959456193757300606468845670241742380007747938560751627245903051760035062020078754494717697706659155118564976928035097954461038414728549102901703175258668179369468637915464264307810407159006196935683184882556250453049481436775438439518348426843440584197941808174654107064263950808423913181353893440861672467969993952819575321361266757445488114897818716329485165764223797407514623260227501699032445548343627289175319914068131882138800796844704140050862187023084003136936435049195572971472163969606874721428512715846998669346675434944261855923672486902532349829621526480012354673566399299679654600031001974969131190565094217902096550370696228057861029781952308720831089948561566100331069143160912425482507830538101791775245079300635180579795698960629529034217862521696912302972784729117738297610988758604155954218345680230399298550611668232748187971358886936706903822218136983595314962898192507546775707334737727541593805285920344747431986171840286716904257240242498738174198600783916420984099715715604746340154180970565333158955595086574803093946908150300558285426808953697564314937027555328450334135974723359855302803425066249069597161346460854442077288243520813071524116069106867364016851757450458229020651740599113976943122841639632152100372494210720749735048897814416939808469132562148865713509234633747144004269251129197345689184833991761703688485071774291662283779626900811689942129942971506014222347278424173377386677560629143828578689694424524966009485705572360367068560112207875419717923242524223490834823309772989668396684593747219753081356873732201919546859299114673338980584301921028722397823107592915797912721610542122380023224693597770550367732801315897210451350751012929964637651823499080481771461671597214119687254498672556014087377286731663479662725853635817956229884730572497573309815276615643151073154089461450754373677665832899807288745700900772276975632016388519291763267592809746930051925692194953630859785078109057039011123798914606398702268277136350481983555827930976123044310665943946596074741802118492561936463785723339280754288393638377451016880496480048907855235258590748313935115489536553422489552215146268684212340137423111919551526967330329650019266045893263257565215842366021114376719441266950128941358288905554286682443567734773050930655297572064904196616465223420460684503357254143708345286660636201205936532588494803027552897882266135192793045712388484260261873631162878239012239255014478950730089641161916941287974805688048781011110186343370320496323427282510359441547656491984419706654615593495637076389194773189760307647324536504870755011924405131484638622468002243717104186734321176186748467249899197431451726849751199807390984776311327418057350693566213195690729062703748864472729319126281725816994956360136821095556757999324312266249651913549195302107679994803334122602496446451614299210659683019660931367589395845271917820700058132982225437966627928168852991576970930815366492820886519628039481492825325849504564352167872925088263035572504097660858654925047974708305630087566865008433509977890516974665619011747895127846118441721294026943986697246034825527174143840589345480508005992593551868965868904191864458595592566141843191247616625626535713200368350707177033929668936201613237569893702431554692991138849563792439522579520222098277531881707514656657886771984407023031629257603677314518569177885667665455911018922136815275485094189082352638338550489758436567692943765759095934975085434334960125360458077329308796017280275618526043603761889004182797975244439718233692776032798199852222252910904603706738320082268049112552694061923553285537788749586316533743790634150166548645233924897598647130906403762776293736791181249677901629882866593311722889962002780535470914058574365707585850834571617958110317519343349572391397935941760890501151271900487877892074531982940937925812003966885256048365851243899449923441224979936147792142783620577017744783948690693520336484007869948604504893815493618122065594583850747783863998099509208632478594397936416489818929714709442104508287330470408967602058674883582108950543332717820160739757875939747794728482342424600349701392874864879930942803065436810176547889958763103352863410970801447474143468349374089697084314407118587465261163791277022241863249693975583034773229328620979320402044238479694987165886593353076247770960406464397997879241891775888190781189988710071412373537873913534422449282383387642006997722898398448295212052207390279625736813261984740087489570490095358146764665795092027975182181176970263747302123713740873025181652502763719302958265328444801985066152160831629413136394897279041875598733184293874295089679383481597449215976443487417322601378401555048545227173802660565311972652157663963413937696312175812703404301205533704055537687583520029532997129069576765554821873502576298940219151296772698225837591079938093935194694751555231415317119513282448584391411138957278500444586788994161424795517683353610459130328868992032707489557992385860660223876634866339555701019500934469762581636590944829891824640355807706074617547072897581904530305831276219346682914373697059923952449070654372421243049632816672770999183832963409749910790338427325662605090599838926457484494754948434476343778445209074591169555436116902711788626988055150845833185535922523998760402923745851514172259992948657745730318588060162382998946940566613128093370852238678608336785179361580566843159752732539004435807924241933511926497170329957831071172811000093385957154157607168786946680434272757461665898197065863444684120077257273809638232767531908580796087543522848725533637328570723740385481560804599794732061954993511166130409632689739281914204492217407530864680638835129093115023625346101309442490937189926085679517279376864294614562618186860339286249419706586186421545262088626985114912923864027993326468140525412232375018854619731715283136884983934486949457714242297491169642358933700515240667742610650097431954633798350388359018887707217734017563539256175000570292399362090281650564710418971950589091369414731710343165621690612297885969795635993676496896059482662966696404154419769436117341334037689707316994342492557681140739013503531225238604215476017751682499314219794663702334718360723420608625799915487473291392181578015807666511769221080108028389430719163722785446453809649048943045179951994398491857264297290636010620561608122511805128076201411862637720272931614127693194585937762956303416673229703639259439384752592234250797918934001811898149811451782737598512541451640353484819375807492292718435840561229359669638439896675564645730248575279428784848864839040018163497403761151732578514967473196802105767137737799536111973537581245218396349315736929737491480300228011039099902152436451175185981937158834737823523533019344281991682476615225945975502387948802079884216615438137848150316341474268788681747281308110360458920350328228256714417525620259026882243521785816322721536665630142099743195295306318028818159461763833698255196647809765657288782931739839553246040597183067644957040102334750248585492265008578392891927942303097186298900443412240990600139157011483567869341701678331033077199008018057650514588293568194918344257508171951448722834241539428958847558618504636200321053643325911557075542925355154912564083729763460246203740066003071946139572076499024121840747429545405595398505922772025242911522707032775440634465828692908165824139478252183640056992527776352304858129737146736250872410714367720835736739791431459763109001518193658564295284654623177543292190908572330357703381878004784216180959298795470772794557472694374520569549131676462209961677376323054733771029192282133754301236029538537032839596749021913112856256992957542871137811090025107143252698321536827683020484955290230936483079190567261713829949339286305688098985233320373954265233862646271655054533063753909695380241509180585967463592272318082662815856542908256341613607504943932334618161630682273689128205782677205262630776988521274425838410239606377743810358874690657295899386048284880023840019788324035810632793148430879901930904269277914736820499396059036698300263550408561001804141261274333981316277253569009777585063049116337654237981345214516990211704009813526442182119325196468401063747240821941464135507852343329524349341125555722775929144665562334335172817925834519323004233566969541168868532195130455109316609461803153573620097322996312103854364678882629407926942218137462838986613564117959644592733583570486475094048669279919311426106997868966762867421675489479872806666187226461001608608231668732528689591866490480108331178641722973913781203648661125396652348895582055172707956029173874455248095331312512847362509370619932805258671380298360715468289564916812063105309344319322936710862434718883607094642030330354551752966450193835724693655774770455871547284580489178717464900258578028272254554126910775819209902304458613867472989798149909151756108048740574581943865290764335758280823941601242387394345208031979442249597875466714587590131306306223588095803166120173948819377369768659511137795224975526826204357062062733953231111924391239247121689178031141084511801025679557814557846694269517820727861612974535970939182765392639199756462083774426703131106577818467268018555572978567098963149840923305804257294325893456626572031246635150076274847102797755872823843939934626523378761653037320821764640120475375893275217100897739009473835875723321705421087423447360761463872560328545220375617256381120222169439602148533247724699929396280720002215728030198358765735033156273503217571123101842798648439424146791374762535929402210353134932418351023705272364235357642147003833139842565835419325924541902299716718611496318518537538974927044117194346700756398842716732646682948372179135867838468125634781418200115513658103721099165010107706213099808687338285032862596912808749757097081366294482957225510336753793632094762067630219996108472179442468254550815706158341293988859850589303510587937640319796007979922753098306162190657736190227398434971643777539929462724522116224192874938251909410691819755463319442811327822193750908461611608260110478973173427092094294624542409554840462961622326974737274901380893349402727977378312903467172298776907680299709424780841051999988271306800938053938020873509912437309471593639026944763109169043558516591494820812958385926292032019911236181966034604145059162469796194915351457139008584582114189634384954987654862877930469331523642447303188737121613155379689623625895916042958609342513572546901393372448003953566362890567403588737083754387368492825787371227738468725144260332101106306048361640397260193268367038520270354591120170508758266565021095836761114700687181929854684789806314216924813618175636587798981172240030714349836074368197124630662785587901185170784039071870019319120927721069565391974544080123369933867364447869994073078372710894511320906003607280569623645803228848461189114817280970890361064299208679810386435450434468619151463968678666647470688549232902057079563114156470722397522846999384600518710161163790363033859251674507579373635678234260864218951074359113577673804662093081049571011466742016241000086297268092154664879246692800400400793809740251663674481746280259660005366715187326766188457678567632917935814144701124126587621178007889774969343010675461479375121158604121746639275108372283397385349950502684411142901722590490384850995644552154681479799315665560643038736268692779802984402348988708915068071128380696027668206571391794587344610252129909469342922063245244941790124952916464974620407369129894010060068896239758972034583850175064973935629098776317210083445728608778460121308387063978781473491091654013745987588071118451235286550248458498674322982382710144229457917067019381808367503073000006829730130285954122430457483665401194271717340639844166208217376220250031810713133568586762660553402918576454959075888904978370066067362342627311510087977646621999227865610858690513831373121709591318369620053458495686730265166323723615998501688556052385821000064437114840982278350783267147716225404343866938960824587688930677967306102585002048759115152311018963170071997486170839971644820650659481959853734306328369072198732558350628541639276295145717103287605143663058646749417413684316385961954690923015415260063127174121599979119738994838655661195554442528931723275787812437863571216881618156311036751937841912812323842936356971442186619895252075545398634675565994019122941673054754286300231320097876249507153421637525580083346830418120678908914293701509403736822514730069495701314309697222338404484445772071968450350639232199373798455125967485631891721871335698172183406048741494815739529325973947864104616504021973353236129061115742569747150043043460131414278025123916399354399504388329634940281617427169493472433457582922748686018577860405689242402300153695402529203246695684105331130188310319706506026431494499553548702183087665327511877413222851153316580595991858821246152781152758599063601704030131728283037975486211073826622199440409881801600471557031031691001120243902018459073873595852485974479301634583232097210371191350941953920864359403317184107104751706934563061940038892543185540608874428386796447074182562132909871092497952737934400517410527899073813414907253752940130032574734699955176320243634697569920114075737091168837379108488162055183462856292558516040080433851341221566690847466544252002764517496796687053305760479958869208319395607486421639200361653648097146458682471575143112767898612268615463805249960704709018637161372160207195274342211235487867984090898702730070831995277118210216439975093833251258968784703555007608338087521751316983727725339501836659426811961989138081289328375007122103156804278913747955652110855392103254535230090909087401874353554935303772205673369197586199154100761974623011422878791042407358953823608296819045127623873239937076953417713885764316080607218419833093286489087763477292780415172614068215670998619308163671262288104375196431200529757219828542502240064856539913248027289069927402139220031555769720638256356072131387787388559191272851525687532425379591055573846640120771580241196574395004671941775044483016101316907176914924345290886660750820227365980018044986591327528996465870019639940986053487751102513607157636786055520253466785330474175320760829146235638407366258523650185293472739365040130902423791423911845948230892257125366238801461449127533679409130830859778245936924816130657362037297293695783781729436017482560882978064634789423545227753989062697641151381073303216226156871290250069634317550655202448678838056543274674482062863669818243296676718469254226383371095262067797982994579672532654702504369565685823666371334585898631496929669800133853103884231695493695452584424025061338237704124032388121661822477670079761185662944578537471537113354381468839363601996970513037088605492917775829789841547708209246483111333514847865632488397108156161667046510132162325826441333711735482797684808371022207492386295512352143002068215266035210799496973025078891263622905607217050399067519396944437969368904947883217432080081288152683952124842062623322080338542672032508487873898326008781979845841669733282903452484706160982275089115094766405792949233494612514972738915391577840930674065957440433650635502705430446432862348205092538229053772764080791658702178983803890870670234582137311840723069673797206214808265758571507834921981102574799350798776638095439611520650305334200782995676341890969702814315764602101140163963263169126400648108755582305574951278965737260089657892194601088802926726330270556479483009011262104522376014391012406015339936801305253133096646870559552256939253257704221070129131566878597034550848093820552683890765371877207848915925388500619395878334829095546295282871432697224489012943221930957550612996832698609740118587147549125237519304496819558449088745427703587603060668471364916353164050500020938582311495361681848286085755258296293806032391419913451823357363469902707743666355204477853276521550461420358807129559795331949168479712645802205740207717163849373398630759062580150575907103677095764995921395337565245952270495741869075131668471423843726881863658072881751823305438343768292500680005477006543306841921570036835623278201620304169873521562989440117957883290849609875830437181419618642755034320495226102846865334220858101773728890502856640929621025439734361281616118570896353075445833305497222046989929320495803335619367113453276773757163852587335718696028791773916143501553103157010563152366132445051766010490605222772822343719544916583112926133612018481030375435769574467606508620828605002969033161244123546609684547204791592103332351945538659482917116191209819077551710086821031315633629315956403093309031802056553946208955000936220005317018731735155876510504156489026002928566583904615121263630432983082086798638832969771735921816206117917499859408036322062055235250057596237816329981588519976692985634118320593692495806894628563900449315620759893989142945739791347562882128489779962260784829869050118925974954900671742832543172965296476481548513412983109705841448833755468323335774131596639231947274219229215102120310038342703741449073700829255536070430385014817041496921459860886719332454316587243017483389339338038645270432614389491275774936928912566622608659799788628450303039628374968331023071107182519387038890493568899056264679821127405216314143969767069470269220698377116927449931206135267343617609332194391104852768559013246073483626809229860338411249002561979590399954779275639671732116570771310128887159836604927327996252746405029591365818058186452875581175028111381428391781977413131293940929724076191818368815867416502772538928220118177755492553217161529961761829102456235982280670494665955447214235711131004998553043044282107739147171575457742826631946149081185418393413641129311074514798618922216341374194538339488829741216058917216126925141921298449106454248993819778649362702775516918841579518758645670275175409983033647875446418625489360339737950169915386387690049593188281069715104781978034444475417750806992193539288245031518046876595250169936233205584269817416789063962217588357727565036302075713311057419005686794520687844598834564676878579484705335570698741231125406753912083909386123724156825611702045230380599694598865464461793903862579846063206506410805081604978591360624967458738389475711497317244708823942344510783987794728093417497608961146337544736536990226350545652850330976672596003649668353929735036887805757143067208603014355947452538329056266300190724177553532223292783128219122368667665055369855913348709626507080352942248617265612197156689053660571783634320514826972490289042361142616680054493892225889857635238829178293822767840803300737572229627551125889871479253305079018291939291519336994117323651305448637500944869194904383691094280677851586805483942265779358211397212923506203427302236627604093553478930063406665264747521374743147490842456558318774406226455984439067538892420605822801339049998583281535174615501756824184376586796448595758072637632448517273456433325850507759835811723795200379668521080870969227230333944425993100146431757493740269604033831066934974409952193848330895667752639865896614293652275927599204040068768766527601212897364080715152125986530335372506161074406528581811710393601694489714709167052650871524096586245400616257485979533447034070375742207958662784108453102465372280567811400596892645667156827321201512364351045159762905479156925402901993748927531557351582498213018037673286429714467110441137130248489043342189347913747205343253884427357296774047598475971401567525987893128100883374341520113461481769468761509355654130380745379592706713752571361948867020392510780024336929101734150311808557868092692881390446592335879360711425196939589218151609065952500106852479848824863946427008704792380150761712944125209265866357096092669780645024435298304335394357827903996609422803333212300805939988965955550464518591622695150972840318250918762576025497123096638222639075778270926420424541728537201731236457577641873431246744118204174480901318670225390292415282102906877005715367986229738653864120977669702601302332263129977413426005302570773015237948511953325867485933805545587506408472993999578617624061777990045936379061545711494869079806584546411651687269730261573988169916024676498376479716552408293572388837677375859237857838668513819693603480593448463485885538642392255968052166746298781279556978311212893718152152947032425147830188538886808208207169170682601307341592773671031288157986207799813274957261563521051244874881744641650090767617857169171274330377990564548961554804793443803838215016636514307857319997360267443587124883716049489261797510193835114447940972026852179003801459695839500362737468117201844046856723273638327182468508216394491974861730028936997745048917202206012299083954698246213382347492658531091786749785912570618020491189757296222529176516110308029683396505145055741338969373996196887539687455973333889063709193120756453529653374066650245823249402295465189307179804041420634528504074283554525481417583986275405145161735885125394887083912307950315897570131422400181502855193111401339335810686438112272555959350116977088123098516517778267854370132245379258450766053783509702842470542251049890448890658708285776605287677864257765763623602882516054435495919688447333320416895078997869126938476165974340182975171215450151961576372319106114840906748741872730046192720655138104616925786240577902718001153358004216797729689913943049253164739602434370531141122962937449502791169342973783607683767558628772467395909028621408328849106239513122002555833392174571284028854296510766051066576022212392389200938429181711811624172593964856059148192034125742147609033804879784669173897495938840473191754318113698260354691390799996988069387503879566393841032618837835126805912295788032004231244608548735295471675197991896202615511941652016547255383962577950785914907841245769450083435242814264952230322521340273742890650655552036123302550039232490732189384142463754878179925729080215953479321309293807937700487647189675544851208291499962934940706159431615840215254532980522086809168517087183644946517239144104411380590543016814837026921050571817643081347805638733156285746745598326406424188491036433465878042029892401840723471795201547411703662957665937345948602830651644153002271215195337475955525496608132857187753068350654173215111807850876202006630361415988006040711308040527027521484284724238904100505127693844607613504943148090881063877071556718239545498512876602361568198126629029984836411547778000576462766647964042560376173934553099894520049525867436257330065475936679728298473856681585673749879510079500703971035864823141496882004277217083762004447204715613840962400958842250459793416153403408874305399057032207719136939915980953867746043090789929262232939079884988238250475925537836928700221434102945290391251060216003651359372654354225583083999445023351227424838251814709221627306247900046027950556198364859617020531806220176066028554952404579455197737904353668362720259370897208162578400151796800327778127503638691979001601204744566052469801897511012764485311010425624293302376562415031045969919535087496583221644722022931153187396939538720995504437770253979572301240169894765107640092527547858415088607842283207906084214552850334119097455923621552039959667887858950972504029587000151630092211846771851986634295056738256173385192321547972854525611204469994185993031572195162411579065547942973177444765674550491618468272705698681501267028891639020567753113851880542136333422110810946856064733331868700766298136028471145481531961522634799510515706823565190172416367796307634904796020532891916696921697895833132509798795473888045988290760843168799052014469304774126670547282908221279390557156216048157424955611232907592489228298557929225275295145498692394177409412309198008277978839959561366695733048802093356208882982303035637514199554228745080357853913773071315595913621554082734820186421619240185366147235569955549301119155797069965572955740303968799141191808095103222461264759232037327385577777541015999373686319730771911307218900350588400419099838428290869121070494110774161743531397687268189144177337493119965978067507428876202984815951695653863184308022646281321985190841082062687271690717555659389405693172940198696770354656456133657266582658198515581813095177801652109851869308842167356502789392514060112724823759190612841891363998885452986457723567198924477495710184095741564114859189608228572168866152003388924461610152919484272578350308019193054222250058974917989040370576077190994224252759411074212628002951378696459564964434686447967406590125856003819439913685727769173740682978260453288042387628066868648702916782744107596411981747962336472093448093296230864169608380459672599797963440622277838370305190137813504099184700676104183127278765302617279866559954882858621415318121344552220472578091733636546546257909473127691350054721652497650642983654918717139882891317598828255495405485316705430186357986061985481570503434897516500656336771521728823787775372844515334877102725433467177845454232954338594376145193432722835939631863219730849800604489032580549762729599792463895645053396861610005941880954926280845598348966369318088469757713983879750094538791054051876873298670770544397258329912285649143743994291197546059800651714443003548524966039282732306890052972003013018953267788627752465704817677742447116228673992328469006362741779561356585826100148579998740059260469085814945127946841245092718396244166972167701075555384063810483455218353574798658812961773926154154186926242402250158876925815802142968869184687661098290819443581481074460152693392261933013924248239015165494286401146674890504094292161707363135680215719412500442643774071886951698524313513818425172876178051877089782054229201947247987086482521246547607658343050741096900306771544464415748405641745374252576819053934544162765559226763577469475896693977440231327843877563563300310277656613764822495637694469314881750849481258011690376019747135114682789124569827367627551522207975585453496268375727934256988700933886025752505110513432578547675765286703692597700838035063979645477360194873169870934130888233621789932628613731884966475705825031181139209026382239371135852428109202531407141186068032994028020236263860061764911053598204558425781024615656590833321234593644112008056634725774357099353023220692866420737940390746511898211907178593217589487037840865017668329176931038863544708544235303125472261420672491243596047461985447204425556665021947837671247840545853688322749639984232304121671396548596624486189582485821595561064555896457560339042466824632410758189182023073285672857624011993761341140153582525193541728662638281304071723993159384707799023502396159621991464316505870025623970694277708109384903191330074328400169988300065436126724359348925061248073581211791744383317588562027067246078633536068057229270239298971962741099462764200485890674124593351605391164547854554324264607323934258679292000698257475594594219700122147633289547604735393431803429825855184308017852855698949635636677679965062749187904071042016661328682518347126849842186893700061092296666263025358399326138506956428144024030560491999483804134681225585406625901707302807821069453841087865199006093536134115478401258076016086557772198050300212901201015356358687937301594594709613045939545376517585872444226420925303745831365370444207838225303468156343839136436464818079816544058982738882149736967515302599867314266142954593642224792233451493276520584955596715360657779859448938903892613302598071781804656032960749875686071844848091650748487314507210335026134129191065944705781695791883612536125991006608263354203136153519559591409346199519204375434143784149302320208804579648477165434750509844866787486830527675560004192789282510511350369473906841526757279959171945480741095518293171360486319203062267805731756211254087149218259221846444506881837230124696151427236927473646666535979792596164749001182743975000852379281592106028829359740915624589092496981293546827727267639977894138435908384202223371834678356619630254524983843989206414387488039681780452169407662596332793997408715363130265151211469462530854543635903422154280882738549586522132522197455573549873276891824050690233875505033513281575566020091474588365039616010359198572987257733539356925022999999681278787363164666281178731517870362891171423469427059192682148421486512592395171292361624391388950804987725797745886584805124015292921876882371269914092296297538328756448213164694098362710741268944522248081750846204760206174727166179847483515528636804562231984217363568912418056809066893937219558175474701554782967458336152833567593979418228763890703955908248009681574555743873210262811317845322524650306602136490677052969052467121216054696723338129122369299699846069646922385755157198864905220788572357573547507386932247640685187365985634749537951138898912239150920477936894447796130718837277857868242480930764919528693976656479009309046224345660433120027742225840489781314618263523060047814346730191468204039493980789841451781004315893865891904525252546103134442506860595997783079297255365860519359271951591205948655234673968043775917462823243289514983421025396671247726236610556780686304907604990068834850785972642276200128237338953939004046340999119518376103294958354358215682366321473528646450939786641349787335356827843751437572979077486354231033192391952532729114552992745214082843049629277660212069243700802859937135228595305249818498814634942028743850551732085982817839589715592354480988851008647524506617783821286232320323486250967755984074001470466795977131011189030905697261060675693001631224333050812372071276934105664011366385944104179369357793956980521661435983096558582820367988026732163266592505843341114682194344851817612838365793481348979584628837408928296274988125309353727298057976844088673667979692350531004078596882928026334380563284629432618178630136879869309511169607440693224007922816642491839501548730337752439491436629532163733430922847576425634000890445254841928729764322578574792813302153558506327631038087807169823932114438559431182818912014727782474996639048240385058994027663423490033595394949349330044258390002657858482555936170222794868849961494998131751084056949454286683417857176838903935295895169388926858961704629064704235132516817909395897220224199023280328539367932305932386287192839961024169433565334017628616001480179363083631208381228592917324568977887369154726587590901291750981538619355925218670899894211269059048007555669734963387292807815447813651168770699537163838261937495955813897751674825848423000865289371896834737982535496672859683769998896389509665104239081864022500490875423715946328008001085056749021695966052794504391569167274149965362018118611208431653667884661600403657611634102553576676050941482247979493585738205893112955743965551739403748163924307449780452798129358899829989351518228628988883437843769365431055241401413048675478513138771976331508307809088080380172253695246503361937350939297582139396546075694413312657374989049107723916288811535461341909964374413446382737681164977109483901861323849506575914091121059385273821836967714978960307574948244386822378174095245947138915177704970611624785766124346278728694443476034266013992392544578302810966292203788164073040622725804648260720026658816535623979939076346367282575188992662686656564288033013809567648620264564897860912345676564425345071177116414286037410272710644926434305716785214513584081864224309333825194245693751586722416957140716792412442636065133825321029041282671923495584210027928357368540407072929094903630006449532217541098443505011906358060554422370253219812192220295083296141041866574275679320753803926064846179069035510311428458416365419759872976995378988678391110952052821421019297390945291909942904207443144479905735869136995642354803935557560921344756839558330423587181468675474557479031427341353859470671859212673374030899301918594747878557582901226435661116629743972216681957657157487106115947199757762767518675786309548673941080301317102653924245660384476607033964026827853702398789773921263665247653716065937234550985117682752642374431579307176425809827276356872247544928760799755026303436536049014317859719958967489699950827240716945546641014601482216273500048493973406794478739290779927406630761702322631546455481677127197135235465442024605050281046019279101175215995239400627652950843582115406081431267611217938498952409603090145539265218329512738626391802360298056739833214611926430367202706258962136169708588889973678756407787528505078036208541183167338191970135310463110150540737346012303357404947802496525028002314335122798180059595293330892263506727589554202777898924284012862589135926737370354850542441383712873012367952190006687162468124643304066568977826972545321850864706120738999473784107798527748224401681917901460457115034327815551528988990102846165618727073126695555378144318075569359955849794418056813954390457109856012010114764754958154633341789164489773836822886936163056250112630646776424891823029556791490204840603903689436922679881936187604826924175260974995749339513225966597397433638702216675986015890470254574004615968092208392458080315602960918020697874218661426934649860316504155722114604525246248045065778430727882645681807931919822506507953179981120289177530468941401933599539246830354617940288744215178698551290169715956739738932855724570773656598266616469807181478844338087723437256714466918034478967411420319866127816504791465891050669213636670195770570966754482306785959014535411033310502277912596616455084882906677968077718712644566018674419220293361300701430527171017283328428479575047572502669557667072026105750639152171333547592908690305424688633371722033730894549450604922292733764744190016128470096381486181954076530788976114904770496765020150827561940752357689818187873264220742370765730699771915220863314738381139107655312868989352626145231519313449772817552522054256002640246422943848539822301958255504131866596452428190677011570862073115573553479168569800785871372654424162156357618456332124670794001245231244789427142535856075993902842758341167224791828838542541345852947257582204657597532226785048801188452314605496082496995692463420503325194454072554228937640183326679430864152934472785985370662441290097214004756553866475570259191951237179025452861249410462444046707123834837400581240955370638224054652111664464648625063432019941043171252769282438314091663623233329181647456443848484733665068263647439219130064008319941918252627573671651434769123584228456722908998534583471631065052898133569761027984975395599696637896367286526678504784822125586181296286894561411464737684092623455146022495790010205801069481589644814640063769595092766296763929043407017621153285738040841073649604845997313858782723838977311830396092499477276110811944015424788992255405348351195657269021900263472797756960208532967415878605068569577651193231801372002914230100577192435178269266364426368820836823727713501591846504298075868866900050804454150051798956427847105200761003565100919323415165678833547526474039795788457467738741066033746992399366193575884806512912855560830591146248118570621923691452337828630066654040795467371603691746168958734352203665050717149919156102289399532316910123802186110510484752390259828964286558083123054656410745622110478429282343740331148717953449557401805021620123313927460765868937042829560920736903586277579792236588585595943432885743171453391156367008930491980815829024187604030602094766048038733246488578329452072959605482208085766219631690851464225397749691668042162367773559045294277777597609895129799722439858939094662839309862417438161419447296590337314518198401993976784038249561363850513450525642940622488396206261174606748267882182248348486077667659062726935676287395256640165434454818696563531195901210016529218756639310466369397049393006394386632848482895890695521135679868344791985792567993351410920203636945690273315146930986254889966285928952186526692393258905724724511457854950831185181151258223383313664798978735357104769893101990231116467623913538883948057858073514006022255089035032063950205242467286978602424208712172129511543495419891146572611084559702656457562819719250021188239260781494625251122265189325101875213367809207014017667665183801392881938983394900304670301158666620277202438005834263454894065098655695356720247590051604130129875505668818203381687075475030333971758227072598159105801800486394106234148907315368566352723943845036500561436862244678187010617345471397024094231268676473674578468717755913379733066047921150077164627961310658538909105580409339140316371919121461528926950021509276006550955199546038625739906439390269693327124525160387717260269888583304478313892362824301609945580120310300107824973949239936588639409183519775256308916681609378329848488470307563741287080750151976151928962678260157470285373448547254789472980463490174767348593405731368935011921934688772426320356262269746958436687778340820826339258751291809976168654866205486980542060802911744964569223952394941627770911885669841081202626376323389083880272804201650289890899926182894069287360054453698701380080587379392225035319557470674128853427330432418826943133461870896197893962959218370985581250911334699583180993471751317789636647839744206592645219723267330265090965130819722247773887355397181990863468514579521051886339246916250808965790200669011462918425551060914967625460992786072607123740317051340157949751560976795080921004924210187243745111772567004189509042466094697089245487358613604353281872509273067204056029324323949819508535151216067453685115378234853293996045568690273479740917984340712096988043501306808919747391023306606964913932298920738734083396583652038539567457594305298975454362225278994824017922743714142288424978438819605006200755177579092902863279186562506868311730505070354270862094150642185244817230922496428819908821246495234414035604326816645948259714492412591836431523214133564616944025452259193901543858721561511975251238680468614182614274864614236006714675395613695378690290512966272545345690817657763277789001710569146620149865345368196096759665587361776553889040390824992073778316003959120652943090131851521856077352972250178750548636160408988614478696456496836068625985890682004707731841874757245212081712711283786978173195803468843814980797699249613600867061852576196970887791198954991687090153764970263420940920257736726336487852607658786428505702328221546508409429785212408246049983911978377871237324113747139020175966760182670169620510458132579577069824815286033720938218774327909934869475312801155656465091655154318568892124538054732256599552509871123520599841377531927404961492827830385372550137265538798899087076709581993582345630308971664103836877494621386572773181466781331679799120203773359873506987009199483536856442479912281499966764256222112386993690098543475136638373410516509086569705408937234252825743713515865476307903015961249742719975812672705218765298767528113180334408260611225355497732160772780669068618276827270743479419576822609922994443123580382732733797093513543252795474905529866282729252563349416057409874816398305808799465706329173325782019207596953203952377966483690117079915546841222266392088900211475329581671779083144787821731424322694254542376007550082607936045661385713623570339926845641650065945332452679701830556614684427321153281555829574747300293901771657076908630470044208284534155243812273102961471282148682696118206641619859683613638261049269591856000647945239977137987400906574169339174926692996034940525432704238189326601208711146873756740739730847260039922802291269950525860816218499878487256549026384991220065581435649808036524326677180746354200192338995912714636993655155727487252801091210284137808659657971674041693545779592069308672218684988375010546403747960072902241246620495229111275393394458545436633504363805034037585647231603387635794108933894228679259348189932566981738040554772879520224358207749865225554054610125056377128378592036482655504042274533511887781933286455110603278860604267318853477164562475910744454205978182847493273982002864222689242065082682005276631850988391569444174365608681114146696893512036060803023538441419088452458688281267364021458981932996046426793676321471706009522898909424098789708889826245920400016452110492782914212905529055882276051937019729092659415525443288339971303240225430675356456405202891613597575878513636184445603476840867060734044354319437986591354738772523502493361156920332977192207921532165232131149268567428134183027290943861262778897170680252132925889801678729463677771002239896396593415105489148329409600305720981422792600524376765557709134180221856594877607181802540514937774910454315423760122269259555944987161558561462412289196695345476490948583348184621436432487449575402146955707609922844562970736436498356759696211690063049594421978528072798828618641550620657587081095105890171634397744590937017076894170104259363066897303535653825980227617661523528594658006363462955792746879708413572097920134283178149896187116762995176559589969875154843806266481698208493365764623553799936218960651282911660625355280611057186100213999414654789846203051212375519164042102959480695430763606928857571726965187093018757850589048264944402688196706981296843249147884536701807000299415143286986399926365046867775557084489775318258782107658043036665545530198050222659326281418175853376023346826787293169148695470380468550279450240034749523755639489766166542438514053253764596016388585291687690043411354249036216778783858499988127668711485114109295297778385344325404073622589606309070079309389628286731537347933890328064814918917122180076609153878665176864372126310966144153372027088299968722024481611139991089846924900826100296695430503095252226093619818131751882379687166523172081292025251623819643243101203761518059108940917734939805569001931286465835662341940897034053563121414297856943650834253761442122821849678922889894894096910969428018340954040310333744880317177240222587858453777393419327249328696872593039650231012471188744263195599096976295252504397896151416449272627921945474934100240555657594130687155599403471286192661557366657191309618175361466265636543629752066239216945189586704660018570932113611427017835642549869112998471419790443045794456460792832528841923946165875501891316538244567445758661252205999354089990300914559502494960538618660970375407191272870376981227140931482831986964087910871941166512405867917291726502918390826072528605199973038145026383204664509368968232406089713938645197903061106354715777018890055921523594244730479207955033956479566596579967757822557552219963199856098981458525956162506452621904931717443500425984040326691763187524779035472034107208437940600240970036186767982566170745628698312747052536531074594551259623384416116677073532009437449452919023575418452838905055735097421570668953739973059339516999092883334653334790971057798369691013989385419843360755956228065413221352179435315586804460024144340881127938448911503644456473918432531181603984378661891145721406603927797036988842735809410922687268223470609927973751772561732592471143808871455914957417494266088352375266676595861383591214136663444157367124506004143300880000369955115157238294837541840655764969144570231052006574171471057167344443719421866816356817265615288014357240784031068539067896608286887306297231379989991606185824550460537562770621345483135319999958799919156653835593950447312742468094480562644581523379930693117286853346440512544625361948826521777704211037534140729043232516984148726663615645200359519298494734014477032515836602440028177749814371963038038317137704048452435175227377722233262367967312799108129940397743217032329294694718151377529269659292177960350428055262027780773632960599695760192217526182294640486871565587905275484803784089449000651397776722500183996906561406451081597082137247238370630681208399265628791235845283611891051810089932808767157368776409921136848047079013085788077224930843696099668026657396670049382849799375684737323074671262596327314060420070133985331946852850950444169218596684334117109592849034329191828660557376675922061378905886563144919953713441730538831635752525684117879482324049434079102054058669423929957540927498463227854570634727760434318616685586701852080647398928718518451587159480461381739051040678039608375936911323270754691444625818046597927647605313047074851712560602662600687424574220240299186490604909702642172484092849833509501087275655075864730639227914722197968991309458456809607178273141035515600519540758101076309729734197546085785145763487456141420008770723979294707090690770267194583494907548540311938158146031321267594245939587447785527785999636463384402455379494708785727550853296315792286799960134679572803589169235726715343605131640415588902307882080159265524213809311466918708212726664407626364812834620935187141480070019466929708834139277589022565634353932350078383707670720156598813104933879129456708128908436095240458356823149531956831236270599317035885692442477739021136688512752017769434967260709009648548985915479274534567295548258665993236881437750391454611018543559943351180519476939991360736775096900819186578504462025144059971570375222940116982586205532542485672858879991845559225858072322559487811101095993813417694126597375078786002478609020965234107081305270595328552681395484581443261326531302156974135655045971241999315184878631365951069319611671630716333954646445382246858627816610758703184081415930699097647561436777774634202641642545328026781064121896153704741925440103096071171587080499676211670524213213608659133001647129341292926298697427468972985054011446132975366559233973940231529525211451660095223000954600736783428948635113330154398776884133724063734740412187215293395732971851698190373069519631368659854955302580760856563974450502441393262937902407589901138085988479717349659183390800313411926782599342517755115294878797035382951013858678811697471573719239364215645435926245581461995147277483357307527422151843952584582476897635463971254664916295538854373787751730804212643446251776777519164663044946293323929796678868753745493194776384156161457163068861623825432820337457770771256936572598865738797224040448987002415041413000744121950566572203552687914834667273153931059703054166799962755255367519606012218939033333217956070268843511563801272039107748178120824190359943588667702665787232417361376184015828371530184675511593355723700114219875645219010878383075506271736047011154299695775545087800593896815578379373912368527405924116864394671578830483339586876628848800848762898686051312020488428941277856978417412854893020715773643063449213656431083616876038669752870639946899635013208130431886354813593818158359807116757764714353675859337267759028244944746869679528818338081159288157740234160267276668042705266800885155158220934925788541215359706737718334958649602140207706915501729235704156284576292622238283802698766463107177065167612704966050342262213225145408229728710197094167857396281794226852477021494381705848659034940414509820760332667295565217027495977658559073185265518165015314463630402211118137305545452824948612444269046369454642794588245071466506346830682876186007589759969581151423983614056016833502428908305105461175154191544004823340863796115142066448513024304466260928233314687787723947825718509634982380962975151994648435696249793191189597167025342755717793665214915181407368540187090516766296525849269021795482043651970327846795489342408925011323108328351161548127261077706570094783610773285640988575485426238774033359470317867787496632122033851650085118375365901218539082849597006087860275800333082437671084841862597797955381925082826877014639514428286356308961726880332589848583874168309456675788724465476917422505506146344350000488886202029249495982647465609267000596182069301419712731828032781159583371189929324174202442527903227438701641570528679516869009310578624368274812760910441233716014078098622135179911915075136816322451210110182349848643554798508433864979248884819749037756430132275126943479164090849653333042166676592872531412742609654970430776632499990548246959394027432682776003359668315478454887508043928427034762500151269987067681377669734421233049534485937499112160778798690432725449897371689861338517317766784956401372600230758282615942135527961595384629744925147490161944458318224603938422546051625562592379884036506296386636206030173700728580268140974324039011971470638051609881220476968897704113731720322982262692866451489620609028914573200877195810130497686393517603293819182763798982359537052049404086683277596539791153298971607350660963727063955506490838123809965368038573653732589254158086263835382279862972272392784305442317020603991839492227446819397877888664334594781435098191205255509918806118294199242516260106617165616279454859023077542489107110582339455022067011831108335076326466960353763226623510979302464541555688696266271637627097803271209398025410435072029692045094947569961402637113375357255508094262914276461867372485385147435517708423115565120897623440548941284770026446814729193052815310763019564763945751458804768601724641311872817843547682997312735923762337404433379974876753631891147465632395739377606331726101885197556373604015842231570255233759514600499727202507619629046480334257177548982205115528085781521774365471605901463975956895434875164795395481392514903172428135774056347605389872303146075078163641838988745356381265623584627572541552233086526010025704789667293217007887649665176543804551201071261617010748166463746373282840120894262938423486500446596492465097932868836297673495773235720933760545132568320254316979815818949217773515655361411649589686250258940897772011596134917569102319845799008089774346845141872389565392462250204231813161938436671453106056917682465895644848964360278439202181126700039184754676188948008164158816963965701249524777382489664706216121505430716034280878867631825591024422284081720735878078959811795230674850147968267840093693759666655699894549130877862945226329537871995557886723651693089071730931950613933133845862984595196997625293122755507144184637565019042816154837027557555536595561527566468217350687308761460717316935257284246955296193982598993050838923788013279781583106327012360794592092991477842021937570109868160344883595472943700894745085497168059054288710521228386302967830512361631370219293780079943845953453611374075148379580941509712408277002046468659195433405071339112974497339373619118697365162021048274978915039264660090132545807897909522920549981850042585895522824177590760945405569651620472436520451145963938439368122705845898380522565089467571083385622321606444261867427324843459571072852466137754248075800051879375592522567515805481003857266438621627193946682121815075686812023724040858165150227513488818538533144417959222528910098214018268569978645669403025088088375204842831304738301377477155684270115551624008472601709428443932980320142143334820738227104043405802302523631101193813266962422517178759217353010718956660729695436967581509458047788602375706974015987111678426957074851208973928275240974255687357326429820816595399979780728541884792062738112191637966718235286139517538686403608868720462314235874333108335188698465117640033881094589549597639507960581278367985860668641246657872655594134649502391182172431152132360900325887954865901131427081864763007739726061187735252880555764830649672768186301224491514051062461895440181592875114374645438672043291286737711876612757754086458764010932844698288461124641797967658997995319347752573173346651196367387331825340271232887419386710777082220237967065085420362202327454280873095132770340774814381653396559453025939412345704037144505788748586794201309341465299948572766580815565324666479114361275928310590413497104550464256480087417567559952660866971836220626527977736362057230907750093523778423743464309952302183219361659570160891050634408169933251074991821136466679428435311474430462981248006430551797456096899903045496549069193098113362252883840718279810410443060394299123647213204767859634112318283346539808135410986229480255632813038698513092886015739660765566640423394501392023358552310321670592438427854550092219288224902877564859632272999902262583934214167028330547098802356868201334602210917348132348334650481788455407386249300548843592676531332577237231176051569253973011927544128066016759476634754126583741608063820531463627671677104376771974844707442463840141751637894269410043546681849391605285530602686041480361703574726842964987511223534097274256224577113551488506162405995813660788680878224619005868513753318079622144319675196540583145972504196680242616722612309856770647223223906515616112269578205176574784785898621044671158616021340295367345015436148752003597693364021695256587041925638350475973572938400246189029233232437091845099134288597922742660854847755165880299880138413771517812561678585756231429994143319258889977397440263895504564056472091347178580086559869440514945030632828517151190523512841216142230329559281605582887059808814788233960883272014687306709465023822604733308166845758910532077919575397928087633960996530799409987317038772347720477844475830859915401873692934328484674797405542352469019150180262590048530915377858387009325368868733198040315992690106477357705916821640742881577297153906099403119071970672808329714030574496480725710196188797990686415556399683869208801856252001248621783298793748449763369818651143759258312221764573903628496311833020120293459979418967662594806672548141843000230218275878767612430911445586195638248177936687635874257598553144522748558466648842608022459686548521492613104469898242262350790487317892614556937480433758512524772977760090573884370024822853196676601705217772588463862025259530959585539345287787787522226412912001464097242336980590619887351303907735546222340026271196302405326622900358662581389770625626665597545856594259894652902235036320354461099577259906127625741640166311627924976689845824825168348180411999550705502801938851586516589549247028237672335049755318868505235410888927490704781136998153497512215710742691907116486293009053987624313482925225132226919306937556824028399275308650076112568626254607575221498188267606363070131492315711167929758821371429003401491923172191087628990600154410206891380173871814328955070564571099930099246274478288667900181894775526502324326200234409060200376228347790328273605831985519441801972352547888975107091410781785444995546970458743853916158815898245232635506970485718154695973624431996902999410728999806111009826825276025315092564239480665200778900309646006266048700526758611561534297222529596846716602736092420318616233244044737251053027357942961831002316584178235887336428796074991815228320941087432879447849634570740527398196776167221384092114340317632205679665607162151939880706555902594279734843102217490223604943662225386387420050982056275423432685765565367155397906928962007662874437483253064729617213928238813227156632164641270992109788544587791830722055056820263267395394451867262008113418115598252624346145050385974989188690123536190076787552453697517318751175837968924734794346444979628355303694243579343511551844025809109969466828632874133247564196126709869737599806214696533701154748691487336333702603692398702806938986003931971508447509286915924015061123163478337457718670084440498721237792028327847357261252958327440121935930780828289733179986887101745747920116111042975386449214503348752818275859273415050979762527738222557406263039537079009377455505833800029746456032232409419631127519904564665490450328858553236430689288420687013974437088099862276105262419979936493397564371982746974639268338806118125321626905975400232785124014544827162490676150269960674376844770875791878481503188242448235447740227426753420094908786592337945108981943618193342116638570828432620028951684411857767031768442600039698451204909772172511827348610810757260957516131683134405077841014338963761734297337209070038930721166085762690216498102931447668793191000140713921284603791690992183688892957384481089047405802118414885148334026459588247202664093824672976214567064996555953810261388018735385409726497824519036537415212237198243771467373074866747332186611800288784981178463269680065520481073079625185555084696106939735370699859804385077550977642921448521139056551394519573998128776323712087917917217568097058926217965759013260987675307432334362448275054207082616241478027470797704775123565595347071161012453869849662583639122451216838376319756789625712720546969675449809451101848058177917261858299526530265854172970729367308774150010065265875428889292037577455199213753780524463192863634029060736906491109516231106640700620793848933051960540910216179612423258636946564925215472604213248608726430040227819000039947564817374449251428627397318686059243536712509541821824854414265194008203259717091293259120501952679158012948204013822622425988306504203657135959747041373347253068349705473541834798223210835634266305373899535096996016490211840698798922381542980743484174080455349631504071226498040865896422477901089858722505974067600019252201381665436475330015852573232054333208924681244335584997387043529197109055590153102042901815195801277255453472530656369622606127902446244028937090851265851982963796679363192014919904542627755901343124680093962438862745795928643691097694294736762777225260836590952805354292144303168081690722875126370440131374219386838062981884088800435779193699946929722167776140974370965107542366853564217179268655883833881125590106964388601308329705472906567689907078333322692766113539007710893766850580016978772126818080606670853542229361468857059174089759285621714259973636647839428879381388240159253781470061240655040685644577797422544211801784887133338801870662815153805549579310534166358787843917122749008388282573439180681847707586660937501740705960112449740347731766843623922011374892688417798504309169708618959547505947296895946368525393673310935359590565645265253789871608437549460417622402871776204458203436564776867015600727975962056983897436015623783595842626548679254038916106510745115399003981684888795266258452974216315735899560566240981795716197684596158849568965153529110265941398277478560697982042106722706918022383253388652220689058867174705181015268224948416673696786914966711076936137348230189115369171157770639201183125523208363321372755258899127229158652108881657206416397027336283476869906412726350063803039181007910178745150139199681105960099821706734591647574166570795697497001742095650539303506257880215419597469560709782080732337284120025693773573159592822336844597046144806524260192111618488560207312271276489253034900199868683994493992041361016737026596608888387551665048634876028114382002188003326437084386144889008611795082206104724768412652123021183952839536993079917648979718255763386067698887206769575899158101878890243133500452745339589232728554970914897711797346585320508229668224104334512797645955699942599505340025249218361163339114926796723705507047315299099343745003220684480506012566220349222786572296496252889498220948863858434572260218008637349103367108344632665385298159351871193942982783601854320487310417607365968394639108274348467653246840598299815660029139669118934285374824575928506921281696239353161588979172694802013515881598680769269860525107209381661616333205947798744437175312594775626854825849867538266373945237490500351294753965733067398248580184004950023859921062073549115798022197626876233612138247109025439251435608355212327043166862737179449861393228470564507426543077649429877973749088582689708522734446341309620080699390150983241040369176274649892176154896181973439487126214531586556240752809680525338835148794193559979091843950900298474261103310789462735587597929775893421492401061423826981737493980112901869189365275480282390335809121022542026268248094693858338364649825562712291105576826852878579939130452466258030510159693003108919547423529353204637997795987658485184901015937719242290122055092840965373413966278444587240065829768643187079660934666203129131060496702926651852646700338889085123648389456398143992841470892991655209714229399258726532474810350098916364639789980532915774719442688295974664635266194245903008619059494730618731409353072860092982212879517057337215384449232847857033143642850677126390755881387700343412388032785294777356122400412598233747770332221886642080297092355179627318346093578819803164190809545030109631577576595548743629646741848053161516424467849793518468184716061230491093145966050959915287671426329085075961302621549629977405472079654992292063781143272244933465348448875545948666812674661421613264755923208720298078071836105206667517306289598096069026794122728977801168937884926843586167738564761333000134927046510169050515861666874991816447086255820139731568012258246027527070776390560754397980432721297953748871646214698894510997859044683369887646346466382897787937162570380583205869034161200596869736922330908369164061793419038307305381256583941985440488357746866653342161195086191578268423769748855558986874826744044362599956892744722072495086604057079509107997024520323221962273287388088989276967638711835737259664890900914920842511543144307904887056533322382314882800300587348186189003363646755024313661163112016885581038942235605366399225929631303620666103836850191051582636600556472309916465942184979341080045601275527910054492028113576753085342490433543185242836993253941694353200217528371806550154070922459828617140737584011454714102793781797106387657705492510035162199125215388151271040129572492351235033545280986521993934615571343767878035337728326219400874418490553852040078063741094590731292451659606756143553712302403427481930971487740140063189986820833215919618303981783934811659431354506491041810573470140091552042296722757974489978737231786862326609535036845474756463289228875461609236086746561029701581667039608454449204019228933153245402278922677833996972693588711921383082571253360707540749161098474798119776143035280141422623210499243913895960161604322764819998718702024951712543054519290576487745757464139344117557105264695111379870497691056285344228983619436080596307292563152045117524354077119777587669281979938941252760193399200857847130520582938243961148189628518890314971425107654397972399982148695131187342219088323936230187273911175397156692712987888444302639730444354601517134882105176875591048124243100882126388814033934923632084855016353509978369314797351859555277901841788973318392017349187884904337949904466886375137475802965671889579531688266944615330194752988701967988755111663140746392747843839488862700219443932684273673456414062084394330965264230713131093201728424699641884648556732766718555877273411114381436826697816672048226125593128994951191769767361465405046750269533960867057419935490960145193153794023310836359990696217422854786847697323803667288066031307726055448928278427340333071615634061835606844407981107152185363924240824961444819829890235226416091387058838503127065418590061939317246815865294823520054066603590613807806885456804760267786067080741738624082851996401905541282802696107488683944857716678144637443646257574883362430731453541248555936139147438597400803577334583023944240112219142343861364134489957643338149519116689947667357530307235742569207832023726860303565771811113668163837345081742823253704456504582018918147254842350893770187341941648544077061839564228765077543965264106336601792757358621539183160512744688466751430086335053221783817012956829824806984618977373509598849785529027327105089185177185538406337629066267329110112610026179916758427358649977738401793257094186802333628083477684371072273244192963912046252251663958622609566002918700127759087336960238524943581243991773515176986691441636356585710044391443627775382444148161975446564995973732007909036873172231814567644782660445238452381897106746026713303391829271534515391378943879087527498876694952559044341204197970943559472175582823159651567199610308616824649311966749499314497565875631864884187953114576428717650226019561351743091851695251336385248637437279621645577734646973955849863537557389601186919676304245490321462572195384228334062665805793632019379962206526458399691724824993907648097936898891514575167847873122959281057534945688106214332477828745563058237278618815991393969255743755544014564143017215231502978650261107116387139088295842367972854989304546047164431910473386196533003218556883682398151414553194517970784478853239926634873160822277269300998034948580250883797676114485673500855134925776667377795510921161115273528527844327096436695643857319684742238220609315924478256854778011540375325623846087325510661976584054233775070949985542888650874749938169810007195463111075502338398409341409705364532747427271911164643527775802953785246758727936438777143604237833879035075115511030494984878187576701629019436314997159110575133097914912156840740129466705757367831135040509053943673688022775423208864214489765229625423486852307822925486834065151616314230138662584041099293285321715797868741729498523455062434119091794908487728937534483739810556499400167561208594011278914105711397261810414867583014697676584617642931475031509506403785601308742702725925644497374550680564881194693186919979260059540832726489036379859780070372687768685706743940534743498370715794401471389729405344838407185738772647584942396250574061370918788805301476655413543992349194820181981183541164095850812755399918277872334442023110749853446008616021481504892100715767078371364997661847090459105343670906277488733812483671063858728393399921599528329691057138269819928299570190393207443750733085017296297553976091044058015684800909936816658727952314647010353125025099975992331276040836225610522173214445310572227211081961527255835737395900506903390994534567416261337516773159406356653893795854655554196060185153368648484948246721336010406554182067347461303050174414144963620260099070081240138244698015756000802160595964317575066817235268981987356768012014853107339296085783034326166766429823336910785983848874808986299362287562559993597473562159080834671919972165545027638008178405904057446534190207696651615802874961385567348047629599511074993308842189924544475290521927272504928912749490822222335277286635681012062793507906120119576679080446077792002705409220661084602976781071727222153858221731807544159426811273062249676950921196544419753128312336916936112696249261030486450647558460107070777157498415222402943195501994752506722122663306053167703511058247835961992512647377156668585544540712323988769546492345169909300800647999533650971648938021758617748807674782732225113793594505354767760180252566889952331830311622687382830624464363754220146563176384754745416319130708200329645657866274271130699675931770607423871660631352017188312062242265494611351189158138236821009235095460583660379948087948192068902627360852215435016465487662556097212951667181520142827879322721008578667773069253769376136560809250638322293956376721120680321814778621673099110311593330715737214384035163704355310854786479062346612276651838975601831798519781358619313295310979934971831251692411979470718572395038242575232487417572638525935200110185565161880297980987257780117649385532403473434629758498869479453556500507969437788830622700330806808445518473060312144564079856930640315536540199636271618596442149480752416824509940800185427372917345511922636583225143235272525101346898725938211271029900836184748788602119431588575415958555840957142786741082336078697691244742148264576570550205454094589707371943338493191929326544278088293100197457177878843636719595048057398942969173109224445309547023632932754687394020260748310118868931173283279404692125318236292230785397663929018345152087003092978215330364350703101799508344253091448618529495106588735322953837886932064000863462030113837816268317165499983760674616694947441985059138261437826733140524415257271555255686619366813868739684949304168900868694479043414273759826668317045965519352344745776380583944995381279469263377731936585505738182438416950111128653512449478489837931977850566803106578192479638983424945807277893113694627990837594912399127393337944085565707434911024267986776529117910821421242221128855511966883062103740384564480547446998238092124144961272862257105005815358754669527378720762480187830899131844419765054600064669112668121545246907671057542375606475701688905414105358021295177181182442597780864330396388364842779797572550887705047386401452215933440434778600225512603612088296406173107558654831158953714231732550075905913325795858699215344687909266785281591002960190858147811474872859414926676600298493697790509346586263158645481672729827368300470415488367814910219069959409695356351268652369110864491368178571467225401918505560038305012177682047514733507501217033771005392931847062822246040474378551770486547690507762556669603300224086754692513654420307747969196369056145647533376563398283470353288055062293236524597773684667161899653620143952418341191120873537572939377473183340431827622361147072110931003578418778311403284678236768717855297707835298251336418204513841145010381008896652118880987605349702847987826534955916596588837790489404892559470081874015004921778702945722325330195963522370905576094756336867400603339701858781218706767897946930286701340771922307573585913603710396239211737102921383333773099143295749471276755056777571858666575631001974529522609204781326899195881439235026273334471267323140808233355566295466779960979922730322422009834185540425306354779308427154642302119784714577881146305797750583511992514741916584081991949043903686760105929414230872595127397087847761487691491408644746812476562937049606489709612227360175892124656335762485471922621400131925575650973136077235299765526904375615818671246222253730692981903598928527585406212219675233105194646719503088176673714343169775538271829496104826640736392063398913762514113535357999798610718504899328463924978623117235101184944484779585224726784962950141086014652710246530544122388299981952870442507791973007710005017466222381373837708638802284601220953293589347426341985048408790263069446693804878906040925348839353704048466748720893230738364615214533270460819870636021069931118976852343711623207366965635413021066385858142308249046968613114624653596610615796570703515207995562727609579262442016977856816100473784024045117161475011251054421631240506903007659229621984643784434555720129162886302086999117772253968618172703567346560514706665779509400612331763517719322038262537844842163033397389856073704006255888226156912014307160693847240401215712520478916051410763704944356792507315656053129202579911600889758528659850669257580749154637718006062779707334258904577376013695160769324275303642125047079290860400662207913478337830361277152317035947615836192986428724243511513875202490120475387912717255511076292600054203268017141940796453635495150395695112774511121031163995142746918469520177635346797319582710467147278415501802781409055214419172112052185780696879812791879790101001297150580133309372362694939178612769187685617471619164559641578648254179558169037661433751727257623044966237432619783676183292581470390293064221655341191663137240771536925853792838546155648697764912802490858786388440868205504190370909891315988279302764526835698361139372751117614556356564384468732584372007946459975910405011528563817471343075036501736317964351382761462284143108397433645115936071574578525599954776828653180247789813715879842872153646212100413430366624298257391665254305358884856069151717705515503953788335436750198456184649748577897445228353275793652844146779806033074579107026641819133032272865693696387027277682379012134823197353359089179733837406816553692463535098382339908445636748476316515376387761547148212781349969796688347295201417856844951845364294062508395906403722352854684474748543263017291016784065177567992899011479855511151426463860283442958725846921414328360879990381040440940753346457679067038024197631046626887917814717301135875397634347322064394936829483702914825236997369402853877018279143317271306128164491300063493094669221846047836103481039796614650452227038123475038540622003718515831264262620431376447614287188842016994718740707980287017336392804204929558597211178114266671372868225676656455145744492372344034044698242600515213600042813970373255316935264025969592384101874750376148759321004305740539610656162629289753762156122143158681091321340857819388921428253527728336288396841427643759764028317612541406364890562456049759297368598645570775380678083933951461549976981235448410525971934840655210748014724788828225472148554827582347919615334935021631313364993997876898266135725824019021028361139537242282809705685305037623520729985203665753314588872115890890145125031181096270608903107234999371271309440965743321958661945621714957897539481975251027658165650387977511545443630913815101973329142330660051941557570823465125870949911569014660697749994947814987443528763829503837902706452524428624294383200994476295772557534889860488967407303223145501110988849399507020636496529952902688355932077613081273794690812737144146969972085072774492044501065188800690061296920369951480214979421918136917821937624609615554546821957722161343920960819448866723515920883992079241787345690491176824678150129217036888942971695266433950797994748682556729196259331454344910839897483188918890498685681925165230080911348320542351558826245760327575222882848235344569216441277271512944274947758651114547858011648287864768236462376050038707180144201212300632879619063305467554903723870103484471877024552213151748451637040461054547589795270344563093732305835427328181173666686802134747342277504319479853809675307236795065142059541762916883798390402489070667405981598935631598744324102176503834009674400027280792348033692096918828577140946673300164987953936643538846676224354939035563658853819902524178190309224259766080191043746693339281768847996431108222213825547484933114576585517137315073571923608561309214240351643928398271360786911333639650399352757371641190975408512146649615808962554857803046436046476208009436000539743048472580863400756405054828712906163356356492322740163654386278311623409355038053698790664535495549762526596750999278371370777141481400301560173410352148840260143822185970020534937038047586104651432798120461897316350856272693879367260836104949456734992696785411713579026679519637324288174162177862016929900411567807176078205992220099358958848934284854907331370518070537874962192872041373113058617373357297947392983248929081239153030890062144385005315551923629491397036185153638958951929819974580676428568197724405125365599347898541372701473599038186868877405137398539715987049742173619013010918821091734389925012166623102244943767829589574557075819599625653166033040076246595141518353796812786647855239608521531355749800926406417931549107775099381116825334870716402079122086591958900230792088250333897288413876484351811101579766698922778012078062818048913515854482187544948297431842450845205724621145099453699345991471804709450306470939417945085315600534639660028225119155068176667315819781020280312678596420274026075108838845345200519573511756080644684334826211783803302630151848641313357285293405569816617368599312182515701853456256478084818324753850611310482215717869699778384857265020129102911046437693348256892463102556188003822701917759171115543766590588321484393478850619909149083647372350748584890491201780158350032494879966703513084847784491172380940862018132504686343575298917422949450788965379046780355921028322271893356743023891318919338124701120191497184978984182253757623688598770302040186855964304807376956551555352131980277095203671132619600417814324572969873471649219704078166948959400016727122784428937666003551580349582942642676008332821626295648231280703502553522267333730219398076378976104794191416316333848172445152328982204392990163662820582562933670996092201522872258943950104626656555431434134166242656954857918937836742576387623091705994440157943391227226174714167132275168858234375770145902631213874542883802573560536005087311512072913535973450607317413387815420280202320276560654502934731646166340889043488699240750082644441120185096589791993909576013403134451561968091009950025321854791487986155858643793314224665301849986427549216064100820526841566505856795648082358214643678545583006082536068704804249221479878090529117872276825252458860868002815659316854564915082310553019089402278905263668929336427655655238006441847299939843108239077826409481855005457477586697532018083840023391660310169496979234709191511407964863440894712850764428662939888361451356637069411509719644117621920500541042097528525285586639304915262771302601173522226950582365367806403291380711393666782990574501368175757386809744986637523563714884870400638659564555553679233714076881011627178556355137733610990180466523902344368511016718629273585801329023806347657642055039879377361215548571810648235936697675445398543466884886117438737495425396988614653548862127125623019864238902370262907866633912670452339286244563356543714027747144408861193411696881469444388480014609508216063722646333083922132026042425574480553509193101154292561827294306312336877649561718172568228663463255651713309821314317403302112431218210792583312805959047679147215760413450181984765455699067784977429059296099967621874786396513026922490698156464197414563014409763391564813535804417846750697833453166356400660942788641615710355478935361796669716303046018295748008835561057446810776137675979314022932292217256327651194027656115087887917844401617170208085478017666365507906747528239123770559484596234356237899232906738695154260116957306183444859672137663645870759721450389360652309837049745686425768771452201226907683887733530706437488141123099306200888365591124037714165220486861455603960503430930231150323631904794101357521498756636818700431112423649802180785286007439731082393183760400022086892526171841700767989883604183132752677912689298279833202917707616182073379002426556123181751013817828991840245314703960244821802610960264539289644091071896304987015950832147912567675601354870939406088716373689095537070483010945008630058681195279045137574336485106773601308104359085499998900183672018611181687257664401053806722089081009821008011401230403600854381094529942167262739496541026813226452407773538793086495491968739882901410979185050979073969689659437507247509814418633854326014615304241008463153721623024858474127350771246488312913347733097756676332738814338813893765710066518061252556096721735966138814651416255563166700816765324017618420345363394475755406838945518634096025245768384359392985378045892339837192566863066731267167593532469534340745708207741186985541567350286172446310090554630802335719644385443950899737587099384263245456400368014532270025784971627965220272643040346315993756795980602291274706037894686895826179287325340130380064221011904283479504005632682830653997600710634884946139394115955759164901634709676294580050617279244654606235030309461202396258176555345981497981195996057490946741057173713651888631478118583755707235840828015374219150690765158211095471425796586721273696220434992058657341366465512737983173070262064219729200451835147741838430632447652052530840203082882838203379195462027846863688883928496838102179706081159102050206224423084594959648947663072428888975198011790124036863170714317575077872314218596853098586761454851660294379089344142034628076555136217794394552143498464619607986016728116953911311830972853149642199188836877996174524560672627123578025664142931966306876461741923773103664275934456538436540156232601391935258704057510221310511759613134497192340155797225088856975234253274228524142746703645065652266165101698125051539637540530409667787815805575441178798282514387626522009084946054268001010205560663031319454665872456214747821818135495022646506457140861814619883796469243200134830858398939556040120508033132748249767510469711666212949217074574718352722802855601601501185542998163091448220545392125842977591377707778164223662383034058869577680347866893037414505961271741293687794626103497668995653717009685273226114503792336977198983029763885979124950654852638918639939027908762625508162454556275233199735201300987826270842399036856527002234647412674754398467796486590700597438563409030759203908166728510371153207639234798131185097878146173661648164848639772473864887404931091594732315110964442220399819241660578930640778268517006806723876482847453941195451451386495289026186919010167942057697379390438232875303318029845004015359357394130580245647541077958422315116564644675218290074501528597183522971589789493065293692505068381420296940615179321334992167208802710387275901120248329120160431729905834337397548967953233970339450903797495632505866252775420410828249907187952501527842522833742241079941495644007780059020893311825752665904182228747436862429558045872146747193455135568308715487304629463394496241783533190043559151736551311381012394078869210249464581417152726665894712292003149910724140796198930844891017236657684692383425662066733479082833064021646666066444681446194638041948464469956074762981305918756201766111397508278146173561000599079566259718347848996085257619016658995008534702348822470010584541010422158652003169620747056816285725886225395131986171381050085549500554345089749570065751422412261165781733687045915490986167707137113168466780226371109341509200554531720918476443630045632221916170702599248460248938824483930403178505602908389662514689325863390407515422368581643589008553522936152584911534949263716507061665472896372936898016986868498829668063243891913716218564378094779673384900257974942173802622213223118273903351931128858102434424091780227570802653500340046767030121991223896181404867524801202917071822972542390643339293988744231592130353981968910506557835540243986524522802601212238484766153407303299244281366655898806920960700385031846104221760551282916058641848708735721552364941254007838631560704055780956738780704689392308294398948786813569375602586541097739233448310082331656384276292387364826533394409208094465763112148043297248443907553527861149724669258987139820259782508571885892159694039766615872004595889045640789319785842218547489020583743855344786451562512765078864849288227009308759314748041371391655348331159686910371548763195183393908267841002918931558130384485809440038761818205380066297385771526286741556646841703658934981378257761369908176556736539383327568623856261066675490630907064614514944893152395065459669603890915194841628701416584018434269301276135314635923717247231553490878748665296270482527403098085563476793280511751290066425776060558682315282505721093241970528370420312946830983119330647936843720922333293379283604884048436828881417511333979522367714006798816376879753329198184346446603044610896048825370322096797381027222349876627923882123392430111783067410751717954033395116429504331533520750148325542030454538962704864527045260559640403666939562170515236723611258691554937728159086446285934521068032541684232057425591921333748106710001518626809433149876178638462218345410352647835107365068637346468049618280836075653641821281396834553312231339406911766747673156256789996768122465461852877715527764766377165232775128217217037943513317949971574901006841007985867428401093038012017931694817843172486127338880014498131421339362873745689077653417933554079646511978776936570738283639036900035402670744319407166229955812756359287216950909887399911618002842626920601846750748458709676419852506999056257640484600638006663498405384101644835738215499957811855411293684141853786962043059714674224799318678338271492429274120810887630419599016244841322323220358457165400969157556738887115548747492501558569389271826778527049198105595848037630727865908014327540169716149381096740051177582171522293835115876357196964886199383689295007952715662146656028535064850435716560422085556523374437680830353814990417916417161081408735401076146605302930653735268745834554623808116811275676954140130699847262428464074281324301031040021477138844821603941591528727725139471593671930385977254237660758642720260293257452540513963455347290824840929229204005089125058801904037778238076771045384251950261656649600350975462015682589205231567999008371772679810150958215774927860525763777977730145986024101768682669133286857246876698363057076578280646316473707231237407164833923262268093022397431180998066960384975475296761342932439980885884032517263357829255008005786073626380820401450036909928741398633531489116289478223821083022129507040409892066283428469862814677680426642700987927471655026301744088340360422696192966492179796531618035163370819011079869827187312765303248276896680501596395556961579753217998276634199903016288772223013347666901864784338880373379679072006460615956057862889419085513984857538430927911911823303043359835079516876984518698269633754020913391717287673274440746887471756073445267320517785989564544330401477869689121676762378830957739371832791647271864722047973432050790302397735240625656210859374199808638009045749734217026681659502269891227185954086886362053835389646093572310738214984882701630565405100913829982402801750444402541936430963415798080559285692986827717680892333440130090686079452044378056608021625604321449730309747735092014694362066578164210634163745922642098006074866615330545600059451074549701308973922476806674081928550336013425034046204408921739052125892765661126707980137978725938415351290993345539131387019733042602150394529593036776481527971308392835972668802505384847348461073976373453664441484411856949963716049505999614750331647559008199452082040572300580336635229362040081865373632140014585202294506238752686800646511039416013116822521981717713267369409924307424011881634714541271595535242695053077692337175090443762737636499435366676827819594799851484841182557339821845032000406374529734714955056435831355253046635989056361551685269388393401728195673549779719287551190274376149422149866753316870592247488735382818651370691323514765107350064893478201183475436873829293376529569744689005643631906249719730494202367847873158366971005485237685055960297861894548039086348561165432736081748546959867656733413659671587488117041691647951509263819240552683153780874348235353335258830255087124645481246765197817239858674612279892365651647299279223435634246191476272375960802961385082443538201208297503257164119975381583355097338458575051917842407218020262835386652700839747474097193428281012269835659737519631651104038288611719901497639291721464663086849129901632601020319285777573203332731017727324037733751429772932138288231424330752815836960090592396123542654837357129764557648425190366814863740188236663328087429983782642971039946690677765591451019955101396384904659864303691297421046095953786514972448738660938486768421253488850217736503660649941072568142008379131843543616313668302552362814868049290986384481832330918226428570287204096075608120829568862148993952393802812820673161779067500437183390904270650437711471925548758064131301010008006122481504520962888756361637853979380149146005082104796988602083007960667350595705775908637975758584520086088499091163543277118511510120934671264079104413622355464679617570233523382111972544192126754430020558394264159112685601466001661918524236682542187464827982264477787684612274417823327259551020703410076032466116675736354318212944154083400316872374230282422957311273521155529091394886301620596024793553714613707418377846070137554613490005391419976064107777340349626705792372947774745935325164573073330305599882040750028893480653268358522764022729474756870424343479327393728592930024473660243901811403954964868655365880307202368795991161121296732003220530827019357980812588489747720844686936478686542182972899169930625112779353849512295860020632174961273319944708847731611261011910286650193117801317580172714547155058804764093226947645161134137496763827677434756397615554695900721220999484841918269843550453156259042858950184528604572215346743158316638217795932546657450219887642982821265602902806046785820153757542395214210958254044058388102779903374297921037792144435935622462647126597634481655441060253038654859261938038601572337036046253320015988450751542627654877830180358626089974915315833919246250606790432177528355623005225971381106631221226607073525688304896271148383487622335558180942004230613800798523475600813471794947445858437838500332608496461716619865777088840957637919636736463862259367912453364958173839505997016175886520773937798949878786097806489037380710265290023739846597179432534693361789603582480668838729959423346731599134034884671232476121825071880618247601978478562385350313863942352254769376259708461182175184610132423228787353560744260002594971651070648141143348731509557473132389543310853851826857096336087775000523617603034926554869572123066319494619372982439437438244300563582337659779633091942077408041496042538351620791114976452225278588396999103123505935252165525670695875555812099743572258846674527787767087407585537281688711694370371567564267556066616445245140813469262684949731119323231888396013888367431137114049832451478922777208879802764311326949562913667948372080604728985799458855016826907174772667688170072340309237854169340064343871704258039248058102573003798302696710372546177079297522178342798777434623839390640926842942222058629285402375766503972260597464441991723931827907087975512656034617139129799202337713183544217558985159132536320144149312026875242053485495505978976462983183486269960557795303724412198862425413854840547034405161524242176235737960272790997847622756420649986581837943684505447314736296123434583912386898891573446747148167766127369233031913966436269953122105858217027249837862178874736674198599755783981466741836107121589896196671413064505219643861669938918936379089439576553949561941607662044233702544194252381124022923591933626824046924472101392972439637966877395908908170314935471495255196039567005984916232298184976872257096145241928289906240012775328247186729506221860616386259991413776490584307958963914947924831844565476257718526573366554929855004388566339791323147274739196768906866093883969435050102611041982751265951284880318719520682842808749358871094835053958898010421827168561974092008663399602181545427027436834206822749370821676280155427038883826885505844568017572173048841857218182059656831615637843064863252278547066798923050210142002081489542018253349227637582551820436972393765715372258701136839179167327355438031815404002265115402538992569152605390822399483913508519815975210165543264073722553400971082437531835541151629737513444480238013158676098580358969089482145938684447031642185574918870724488627744566393919256609409480807840753642180156786499833764924783195760092433553918333795461975974135665164245037402886469026581305461321336256333196896564110330599810211713692881582561318060023603167525510904885399940225094716792674050055936572892856216924949620753433279444479973311011775990609625677514986536499024154565878818416783248593587631867721657605878188297275983169592190813746133454266035180709558402410928641268018346551009114614438582473460168468475781614633004670383497256948368392680934826871052708264618348777733252850304079272282253081893146964917528283262679518933128860636978314398623006004171888639150325009440387423301988233924095848839812535589014409350974452454023976117051087387119163033058914737187085242415251998987887630383715650255440260252563875134056415059139936634400960811121433890374821481423527062362104984535854877508807145578477758477980685431434876359124352468770635952860838659831131595145914550272439902194779120304860498941867618479379444502566536989466666897919594884298267009858600838208683385093934160798234140479056624263611675864902805222826944418171631121494634399179791052759205045654505863438412522050161312465405175565686602521386730804829688715990500094811628007030209850989706005756950932386001149552175621037743087678959956677761980621686984925489990297166139525543400097537817046150849044840303144362904339405154023001994705579493526481313202107667444228284086133984871837631849499886331709188413060446877581746491985650565086585254935207100350120154292610587971444529827641027470425164886614626806075106315368315634955434720487633128377478887826089129019785219536996675665867766630157590671805610793297332713692359414855065021501044531661370732561312832111171088186030646559211282722693966350232511319174618129302998427119353400048865363735567104930032588454532179740909248834068986164046274275370084850249719472742890029563707218427461933995163442611063722987478507678978554987183697195429018017232343248879205453576281755389047099639250438292109285052487897306971980033969535213309122647612305918419312797926658085809032291511205843499781087225637082774380562765543374432761395742159815440286594799139597443609030203962963021430221588276702754096051164491004749823100379672902752771752813669255214267350267950563228803073340708484317486872447189137196963528387962031558781432905269538384090425475479714322188254167189464345161778694667280276308930928625360839502025775340910570670058329589775339118486291912759723996841379496448817550065397234287454471914485341593056925815384796056010807295442398902271345357953561498044012194791956077253893255102996109080449853568047787428414532957377596317093313187075995837926121260038179879288778845803317330438537886065968957047041591970203673735340065637865932114839207961717057861398890661139040908515038833287495686811866147108618265528890220141963724164445821536831557900831198490990014596837889996122788423486865928821152423712733037769969418899805754997037342395979056519778166970165735356202677921256469457786334923923555367421338652372905440354512442243498517628698336739152189480340043603924796528276304658707565724727035537599226984283197942615157807735725318278747052096874197893982228221019640957570361676686640776798243387704121327705521119299258590677791686124295677440859112421221256083398832753534669518890850681847550184627938846955283158134589103080409256583674892240241023884970171326911326443939245230665405627582544009459192392619708758367456386215252139803555734330639340513098762057639700642307513676802467778464523254033154152647568599071349289688386255276658590055337756570159689008235400777837003501351434307486990653807453716278910056619067014228049810326768992329528435017818808318937538707815442317853440043859439065890630480163578952566625426385620574688029154888364718175583837230386194027142621899295782531735263995448904389405480261246714624117652524579706266722801533625912671042930622651192860268087889314200245371347824160324740507434363546670466538523358470221553009205306608090836160049184982227110880628970733540597839832455362411338488567610488221102583235283287694378661941514676519041271741298441407269642162514356234931269837428087787996602708933958904209927626815281238716564397475952190806781083653258395931704502528192425754781285184419334913073619007923999356735739978218273269933880437934078772919119229201537637576801172282808640847690005540078616132730801902280303990554307965414217364571645654418009534655877321518729564456901241340197044582970386358928171393760693493317895082889394881268601397100121066214632252289401520997844559050158533215250562887226254786146522937746829394139473388996085607629716729272271005497498514938882499962861744303220969608931772634952365955957518491733111536143038030491182043971841487094613080790018604433140017031370790924673013297172998627718654978725492212165058656001580165628393356076509419770075165291279821919470812072247733681842109539223317758262287109792729786937548631280091364070020967560985256997597222066678213131705652971671619438845617437880189584707919376329482090943104341736584972596398565612988898305353986152594502174656201898934810340155789219574061679491980334380580629947755955524523859555254954049461325864371270027113806049739148563786887449155542048392351144817212690176309949689152234475199458233982315979548466717295656592763441507550890204220590961990957307521344510079330814925020766602852813752903007715206027810676091210189819611355165635851970303568155487423920817457863479479778539784362053401277332697896999273548698482712769041647742186318011317591847547434314432115732086951025482940075555986949772686013098380033310619593064223938837341931318436272100671737485017373516965924513004049853990104026304757371185431793641756799514338520744138782568134166952592591068500512401727065391538594106894774269402011267935368331869781201479135523159032407289720819686940970100594001723865919439026598868595845566700418988209440906510864758233663088390289453321484693324094797780848725954848083612212304414171635168098803578463178641368877958622187871987915793222104801277239141027698939163921686552531334110647312743325860547319648173073552802652779049829388753610560840500370590011139946947264498881906359407809702915256831601824001731841867699880074819021154913418732542265090269341779815154256435304941657800805747805567818588355711921780238150491631350801402861168830147838854099893544313363666117823075660232995091535777473943686868922130390179870968102274740257465160552975495861652241371856610323609064474894698125485194128932848262100408663471292009833967585915340947108218390124627896101337530738554885248205547299918892606994480104485447380643026948315678083641929609224654166998407246233371379958782513489943810642135825412051585411600378667617947757853435707349517798778470342656049937551014082630644351345290204588075219558375639564267769543320616426522167667719752558092683759549428788250933506615505289094359185861411934541014530661159838514900572709441225671646464986692447638353987155137604337667716818449054183129549634089236351400965931815390216471063707234333720876750575562950421751850130354561162996154720015983855454168808071452232079092547557843810287015645529830528209784314012611381361578107515131504390452137341583773925640126023960551199391873827739265498388887298551305225797152436044459256588803860077040988817563558184923670534054855402927509402885647350839728678858950996328812307925616408592269055044814281477124722585030676554350932241121796617562807272844120301850595188231062219545165330513250734847625737200399063460966772371760670162108149729711965486486341647162316742506930806291261643828660258444018838644947549572095119251391947293402227734611067584247776770258699261342812614555472352106386514025776764997453986568358618939580327883836845440557646524227232167991840805438615271762899257373505884899749946141948242061391707471201787349357340031988533481371469969835580328832975957546316965931047072964341653360778320558932932124405545992224702583821000633637764024036352441234842393329952432671587866178931506470909342470059146953375971083397478844026263741484879753474446121584939128455199384001374774779717734970792166186756411174110173147479633178933168772771082859294288249137790534609452497036428791758578909791374922530859275928113774273381253669585666108850432746361960486861262167729241141699539939760351235432948482165358192137726405508615458357948197100042378014002099396834013632598811106913091993554743898927974135499724282735599097454897324159034802565692026762256921935855970468524609073160896743124828048950558184497191663871230647883669550781361474388051067153817395015065077228587920657387413042423495360526238251852852363783825687892776559607604892928755448335852807860794330302335730557920830062622122889089555839235897615534440767540416963700549926444526553629787545273603185217595787730022300549438751546509552796453114439006329611416041190490836215592961440086826598735710131279630909900773849644360827771881628826994052008408157098844306293242136219386400768122936821954975731318435486446870121816776733843497867674496570139022326728902304280874635511170252536216621095832584601866339107929574637436617324135928093699579589492270063591623779771160853998834384347415098323298178083886241370495134073094487552232625321475918784490224451130488563286658081274930345485981785379274125086076840887199367996343156972080119322240377020132482430263298267603776805474393222235001059084563125554070569832867153865918275379414639409803513048079601834811185591412383199625340682458735570992538837151715905605509247668103429287239156244181333950469889250916780546611181030682080386060851452895089707283275494910515226412707905062641435355944008457870210128366363132547634075223768829238137560974704113382634584863897174546111599054998104453374277682899011233440552641701507373431659607646345518446348721946417483371047294189578669188263200623756552220481180998834285256243970274276745347523288804188674244543945339988055794514190713499890382094610620940145921290546464596368534511155364565052341269358104977000901673054289091154876060509488496321825245717183471391840848762456879880754596730011967731890808053214679100793164527704518216100411236390408830296521656968099940851935492174341245553107105207894891782877985852851603336292858458258882931971869893624474227569750661217187542322166215879773892613793728866207801383901379763261237462726139755067646865535816858238695587209818620498545460027513741090755914545736871024534211774621320557637806379558500299198547334010600847121024287463217504689227809863920978629687936877866773975577348260022889643841250259685272594290302881338851903104622828887361694018342307918553420936775477469426332789558975148194335411186907293468087404419755171228651948364648537899856367653082493776506341345928658527696178592739391626276626131380944122689846000957512456592268634645761389604495867349559588851845164023073866078828918589511403749148252961567518312493978807975599516814583648077324263732589963806320852150415691999835924944039924544417763279040517519013330057006938620394456463535015469322649863031473405365269202263477390969557398498749719115107696527045525304780883992107996916156793008643516133821644055171921747733901988343341430672759985974111425493768684615101482876704903551992909472104579949878117520754873556051432103571063867574098989800585627757114445024011817894788102014764130820128403042225897673084063803367689348949057383542095938880270166190589765979279417088538450453886166623140836479502369686050868136713704670964859501096219433238767264116026062758936344090461904995610762666990402519321343401278537601596265340577606661707708102168560494427774705712285084255926002554116564509306922179339211405433495944384801360183017597622954984273131188784813499932770388416436814182810173592191808329639461845237307936939608088800719092696027333666573681088558022866144912506419754941149037302706625647479604496319796294313848223967528890253002074281823816437110307017916195952083989884486852196357719430910371253637097570774464378948771608878123703686188559570194001637195733297022267164102216785939536906173079277662091132821248767160040689858906195121042207938069737959067994651540543518765402068706009506036215868032454061870908542269037874717400328787735478957075003387385368618883565231776763805417128109571419550397390144553840669279987696229976213647709637953903054183547257248912595875085799592380541078189311010864117370910344212572187944272017087422690283456294589828817454610347969245872722052868822683015831645964218337222021301249178353728327456551412767814756340470930301043899620438473479352894343659632375435710513876993694233101714379204959001559717824526359520633530939804502751225342172364817907835904888175391648370216217125724918469895019190877168317884290748514275934391342140034596036281605361169069728264651693327396828113660795972187639454340447048393825376453989678007648820225671889475154496876316100664158399816019708870953095187608197441664114299035577444568700335054013304660203329144444716875555115307487457708712194579048719129320596556857388732268988448329578559082751647272002978048596396988281138602571987210690870573347616006949265977065925261778407291202032725073001282537436814711333365169043045157738410312714133878955244534423822499966784743294859406435851981313955238399507021245734659562614710470494943093011471740552470725705568319148853103173727189459828775809415619749043453775767925849939354361799520521647293955614847594738328458112658310759167780088327052255897726691958130841269075110433606579686419704742113073905756007415484253704169544155514493068575666338067359047872876321399576855370375772038092365462332038492705142767794567661128576685025856694095054249021221442057822413764834625259055707037295369034889169815309366860325975524606762963387049163298834548108864399688491784059378321545023036932032029785558336067172432526737329887237855189634458078048872653981656562980404112507752719517965440748842001279981189552665916978758862171544822804272680776699742483500075860615342201376283611639478587001696061474135084416367808143694535883581710469107704810486081926558069722693826073351301593891178136906747136520166078728265140514991209867507127655515582477710046632022041707448404291567298962548705705875699079995492991798589395976236893018814301795882903840658938647012095229937557181745217990641795216837218326543927892216262948010499644880798268658238429108049456489900263993549923459741584341270657134219839569254025761379190370352076706797235557803893359039501508359123343891483215258535286360908898792901539741741550038121080114311279692841500356980637365094429138490605380412910127346263317834171141339509793139317268582134233613937611807020673807831310457660352324936779763323037572901065836700036724365591041855654886406255254901585295101581399027571558851398484101507544965208856391684111904685687841379843438724922636713413180102833643592683504312635309781607893497579905581263211265394048893235210053169143692154176713421371147074085520675577106798780822579039719873865974301901537383179915243560346029399632399878229270899401060424226474135396569438028913601220518802523852557430392371822982858032222438344521736091241556488242102685753193719341727383134416656116958274561284767899997403447176086227949242866177844903671191061502136249790213842331163174720824346746804933934516964304793283068903991279710405372497789830224406904334555675311539616479469244893715827687784094811300096113110682122261440064844017725028530614444604579920741149777409024999331442419788996019751216465306763629774118433339949401272330083408067880673513573357940626006031482432646393966249781378292335586022033552520737579269198952435858070801269875738605510962843998507802455368697165293224277927676874295018726905714376836929700467493949085011927134421219954022068659694965876452188052367744422713827307831500800907617405401845499921564048108578888977106232995078141114112236749719473748773616701459049537280190750483488571194587796673616277261055009158372691886860796131444662113745856373171347205272301627449448471450629484552262834183588720870812500797291136032787856375056610583340565990132582391104436071909159865442638778683823860615818933150060003927492629436816723036248737764374329894161883969358707611770655430102214332904096761600209543515674861643534134307417231374169265365102799458390530463619526424292747624218978934034338666066792357731273186493277809675574875159685165510192911548867846156192897150457711711504265810585432528074071751429810519105201919261569396693946148788285686830633460456426584033645578522863677227853305711344526140926934616890856248834236058662802283325755115165682530419541549897454921574481748728473773874908452853215234004660716185447715888191373250306500248024910148502186398309482769044778729251020223834629160264037726027866567377472034536395006698391127684483085724837516933545939788166862698220747125584351779156083622020313273697953752893137958751432614226393616121581602403439919905874856758032106703937956993262813889335882535800044799251754695033346890493529161306713673305422037424092403974754976448091538665443110322747771155755658028379416751355234265144563363753176990771454354391026673695031361842158563135265680400649616209762968277124150099986650010944328906645139467707583569983387390962296376163766029664901644474349194938956847737692028853845166352615997024407626185623042986946038647549171887749079325147258265009623829756886133772477864568284367585453846428894619119054963517271321170647706860291793115950202209139609352599012798335064926330632490051340517876898456614869959175727674533419118427538497099621444058865896152873592749660864900009472565619752143043725825828051930779275273030268883881516815090056073392628373936662418083664307135719520751582683657001440072363233749687211732737395410624288756430109478639064073575865694048062355116448703548812183714570361717873769551678807279509798283985602411360211558413974692426217332608538448989061140873626196142741279370893597703484950008747698519722791023034916924426941173991730629035136065464956331580039130450696866755122757670459639285767214609579109232176913049995624814961288395651942015557259404773718024799901171866845702437752531375418272397758442604365220147651810667278598681334225996172812403007783700622907919207168663827717992033826551064273293174655365733264985927238596971242236495604307624472159260530585925079954224418893177720502514863374373473823550147110692294373019233735345915943061097438068695370391873885692532129780822043620854500172307936952102710486618422639169130386212206991525078362497643357914521315473449316013665829183003043515811517501752901693158674093358153268991597836653345192023085499889273010977809217616682387512230470559050601096814205502958610548570027573211429085293934828614105702172712349695413619912479506243988366983059654752812358662924805341646832757676295749118046553040439633465703575744826735876304040410057797396525427142570223989839662484118332311384299415623581520797947774783907050907942493136716018979079387908869095189341478586462983966040354246740002382220245399477423225646067636762495525392591110643090276822971416439920654026116065356306308982882948578680547854320557471327694625751276470946872881849474356488486847712891432126267847916245199551011038213657263343767260475081332725817776361231861228197499340082282991534135809442725310667372322124548276566579734846169202284244848547158263906419395711538093871799734342217138613187686997637018737149493653518230633662403545483289899033562784792067945003491883914558850127064926118896470342021190530283824277322878335943933179225472557737353442260190255177179676137151437180728809478682704456122372692031556828641268920977013188704923590813273599552177516361704217578348379620390912410999448406614104570953955983997675158405640588858978990206840033641189490516257037572704791009039516105927816668001124366332104239715256332835760828102194781389752251558552855727554601913549760230617564192573214996986692293361960941067976578751500163032576734484892207690901822956028499064087883692415315210719212161352736676436094370403909284589369655032617974803737897201665288366637945372568733311162024541954752734639977420697573247571465949221429492829398504322532409309432653823684999209724573457493900051889535151720447713929604475732474551765498706467200832645318074773909129571271770979635269836091508005312849078412345533771616960999202275352280436832267749954894934145184154614829857368913849281552089965343478189026765791805303249583326427354244475453110297328263484698787079646401925388097035597657767851646126280201086073787603853795404850948595185123127400141664406460170887144324023719885831804606014617603638518601916920845768776846656721114947164064373099124283938428542601164216180813526031856069576206806631117343723658979161775530846480852797056333176619335370083025812093153878299441938585531443558763244844615699451448136438416747476908261972898907738639344200877868580484452910367049953549465933362160765124039563747086763846869376038290162191436896914239112986577210262732243781685514787354872558967146542598455375043865043780539719253512920225908667329334913651537365879156298839830986713543840487974557619170481169275855741422968581956032958278438540081552618740586562247251593914398391244316593085862989578581785101519278577583096528974062899456509357978382482195347311341204532261027143948075133823482433055367878595641279245935879627711389621490180163234246137652352189225625631062378249836598446220730930991416747230422420436820323551803362871427541382806789880204716212891303655631878256973782626805307618913377855871410049497779181737590667024522482559671924251410227008020021989425533549406432344853908606195438453919449891865978467133301900558389515822607022846412633871368504816925545645521649428219826321058758524558843560633343375712250363325061926902455861729155781177695915223125323370502673718667870258843221553422815882293299712155072370996490142652814057640179594853618830328762608583367149849377474354417109332109480277443648659781875004150462975871341496543238974236889139271913056246640885568397134635478760038965380219774896336355655643460127400166502487322069524537911488965139492772595226415801034713391821005409901055093464841252834812054604686984068758703264337261921448758127670538351723987256970267463364896026362671497302791262512069861420945676709458291227344755811876822798950503751967999556780690042128082977472289938066110846275451747301262258433366984303465382140121901144144210115796474102638782187157629899505622142993334039733615011837443016833769978065187245251212584713619511232297538101566741761599175610531855162117171889227367684410812915557212054571478746954643243804605313440411489566944557703656080182822996878070642785846208063872861861079981146712107961823873906677952975530655266711956201723331528409187324008058863673956286149795155943044323643185621347649724191949974973972003367690713458834228888108440384013563570060386851275025755630159588153698557980465748344941118333605099873987655219571219579790462173263845424226952471708468502614091484287894638393907692490193102804362122424171043885522322602916037596503463277864182144421325149627236774185706601452150332058613743038142313420212310174153194717722988900165664692528525648456236142755001934763546391790187875519509819018520401816918598560853420201827668142824808382342664983978943452421884235637036001102283910700558434496782858424111441153826609272886244264990162336624009380096090260238950591796269315798018005091851920810643654042207679904944065173935309259004637414693071984562024906391614941531475583364169330196732164965194587688439530020549170098461202609267526420269034567298846416106589576821818009469310226944052136508726896514915691825458188981137254993744927151573937266666593402389611129521943393263951320186817912977273428917512627948204707740304756114635902958592252609631548780800646970798073835816160612556010994312413383564810162670525890892860752187548584618601272964261714083065011883866744382953134361901262697961156663321063063511281917965227343395860972218395003086221698182810728021626067730224957160111716968240055980368989280380463329760853579761860141757195434819831797028813835145392438740839517529670969712635109520553711514108159095432708906127232707968888230486466111360430988480623581049331435671878043079134855444194434620308483686391597591579679384234202498930628389584205090773489928127830952171794392858681967305596294197087498698246027296790442851735505929654648220447527270909713546098289828534602235831269035706111305002633640577496744707364753923415501364180957155134048483482263927871831800335013843154185414361562542907417283330109347420430523662326119849983793231498677623961754628894467831500136354795555128551813675450073115848697461317376817004106597536551039617860432111676180496429011524049628839145430529203719500805946910231718934510061234970370669051283821263732029119488003614197893885394312862327897658082819550714807554468520368603294050755607901481277751417286064434635056907138243040932290222423387210884319921785143597998007689019790792401205142820825880626379088256627731690239428263005538884156125603605643583513291362012404637017737044088326141482279220389290618624711633469449068020087429062550782495441749747537149354235949581143781366506126662784454423646609003243755324907356496618636177014742641415212977503944157734104810064193531010082651571688247718483147144143573986803613607930471152294227721732995602574432846374554154758027834819595467824463477746483570672425644953301080149044845942401853935368445307278939812123020156329565410570012316285537218943079159602899952389780626161911829179016673146144594539087849016728745521022040715973247192786599575292646812606379802290052459227779338626333563408731758051861818552640279611625856226017095288079062247468947885491048749138201180943881686231525511492994620025498549324559563746466130526400816771784940358053409707995768015176520421218304336666116994738295381061916661382596302369460319899961166536385800040576961536662134569893331792801807504689059978991982421794124501707685735361258882237866037454201942095228581553951028553412384335815752049372185834547945007650675485557215882967433158707599707010603631155593523037419517701564589304653259801374600396991829300805265267675233025061853327675231990100794519543317817234754072479964118736439567825224703158432166641985495860063773967379948497604521667988945328102558418607602043452329274348524526894719910051291918730573554237656424382152614666416094425742505310146744648451053581611795143040647023876066366911934428618727656453294122744927399155177203515817663596758450361673570900630578126348158442235634549146026688761725058966069670482392245170115665704835400881460752473720578126060281841872242398021613113512746846582166192701038782851708461512317391879491255182184519076027509339817612436019807389983112405614071479635705365451410426170116412752545277164027353819281115919826120462913255467312623313569422161804598791931283095486534904712764402241725103858825089783582934439629338981149929820547028924205946004379551633839070478293186652223788204173747048750722679297665987189197385265350113307001461818748150892628200549879925392243768209714090048763972607993737699189222202159367630395330799815900400785927897761361158613841293841665386050935215534709655511070010887259249389167486265473867329859145734528801748691876436268684978882653469289247139352025681089504412065364685316151989274122050595979279258881172605869450567612356591222099770454068949035084018470889362931091551347455322140807333998484068208132302597302063495051101342396221184221388395480661735975889736313267509816720471713350872658418923716235820828817287347352686698652297108803841199624470422752853943587342977095939391972250459810758237678762202636561580676151298571557137946280486821772235660080023759446512429642770671708314729234084232470974750807316732605349166430832567669772289214664440314161814168435511978420002230804108471200960569133555374041273971282892033710569758113064086807276143015748174215481163787612046204055853792091308531842151864277635686245455772404349421265658697343375809641515491757518173996688582155174743116228997846526299324224130367344822872760023793935628823961140821032642983188293681444158376644280902771276489572724201778533747035167107977006723397087366602227123282981226703854712110517179347369634571245859464921708100755038448288506197887507941236277156525208512124182337826919498556319138882601936477667544897901621769743555731563856494211546940369364304596338200148802413454490108402532193796848072912690706307690228460385675557541799689217992416122070198353620241621817734208853887889739304630420537441304573141253198810356495657748449994952149107618505318897667496264529411520068357107155030829156419427238249267391720061112330419388717085496751099976346107500130347106088895377378955198574635527599362617457592761840804248306039887824840259348592693395084759168343194268148313677708767034937383521879685065633435394378280795900801627432869731497044100517157622522598727137965903566362167606506846516527960854609585006511445245569464778041369499309346962702143865907624441528259848000427823663285794995676375046772530099806120925047655928753730285550020541497114046636110355054484433574749287470294046952834925961968356864830396061327284690757507969217512820366335795079133387003325349135472506337607155385058801819739708205186623325492084672906067599843418619623757851374491934446183121534575339262588675823419143758007204112184193751203925702403762382960551113215649003497782717186946245964234055531621011956748247312441496593292589611980299874646859968280269973651022573799747399585595309110889797885038791787139885517812323984558790965988680357544246584548814782425572821368645891812729387447869279124323345514765276086589181240475962832416633637889452267614638565554004109022551448351805720230390846264472020148678522156594699344720616857869125515962523623425329372270891302674131041147599131796071021823704133746276263916762833471751356802701830796628605546778469722717388724775202843056363247594142244084014348916037620790700607001891228190536372925961352607503887544697861964966833699412174339457020330407657576724367715526932553263696161020947638541692521338605923289877792207979474590928819011416621058678921172852568284893318502628927031056204338174249243349652795529587068305083572210790303596541073598132246837382986776439221330548680762585905180425365154500072403386884548667879306544722439968259544974615348522304609524743320333913458740784769413873866110052902109500000137669410422810580390178238636528633803925830130633073112217945031213106653464741439454723070180044475072544346616893652383180151918594430855338505534912657019913928758734698421580305679648959153365416446388696822792772830202539446696282127523670223787265488041703610823006041917528251290961902030035184259067632371279174640271729718285801979597490801640854987760409564465209533957588432071890127521292388874889270801222654899785003377056181602709967000779140950668599559634623180844135036605315083228872484743516713804744099846297304351794114391609396201309876231080895435355434108893166117745436261788165437668913329193073078676738606557619175585842303912571775783175202717825685366673146625793012939628790433393680341634948349024817566325942095680912935570691163390654882174567509048566531266801602941478706367408890012091297230542326747776794241720278805372859932488790133375716590875618547250994308009170943120707443523536016406116262766064391422567940073250775977351607936312166180762003430515458810009371731674409724063212469420338418783627903093287553176305355387452698065325159825751894564412960810737606046274386517277813428639616434338678597154868437766222724872368445241915515640244609060967264717265032678871671003389599787212319702750444093753827757308808586371144139469467927348163273837876248114062575153551987608717825505401596781907813728711777152240434563104477345283947188728725951745490858223173674206833212722774528821046483118840485740763387152770754583806209430164978776474117712962224788728174588197338790746719073851046119000586577589790840900966634010876946434270432904847894389568732493559748425373388391804907871691408409384149331738562738651366983412931255684902369498454155710675101846180214897270034605781982267791918568080255708903745530067730927813317017754105658108461403749746480880359713323015970997041925748988264803620760360557411452915211821902059507900300559104731111092085294055169353098185923026732564911906711181939855510671510040174575911779021949519022532872510897056797141369660274834625745913810920714808579260979690385793339680621122671315342601736423034516047391824331791904739401628397983684520762897439897574721422983736850219559153595212800686533423561706159094114583654766115229708195199404604174089382570706621383525982874884071761650821752922056132849530065220022946843717481148181751408670694020101242549623551569707132282076876467301154340632166383104936532991933612582908873232201154743493926673925661792190794963029969381847372944648331107287749197681766512450524384690698393875634518773888236261633384498803721838511048767244044495342812265358514355541887037255117013904022141769087025490583618445585588056867997432228711638782533555302852858905129363850343731826558237725553441917750824770787270461226377089170235005439422094810880343638414725456746100622647833290843584347171858672205708804347209297312710023547838061703897246565692395405720027326791291490035339508979521835972059850302945672456647014906863300972921321674564795067582908033459872446447986378339423446882674790718309244720425627235758206192846570367171976196911236429891586759900706768548429126583772009991929126834688974306650301820302285076652830095754086052315378040542488622590301285456879835959596663762483436170333161130932855932494647088808262780294500495358086089159768566141382024027218071544376726961088573116691674981427019463941404314551655040917863200125387367045290750189727443282101290531150551059738683777815022260089772414389976262187602049921698606041225746989988974142145782768801912378141988720538358377847452414257744026705952326591007239922514196180804697949499731495229873923369534644318461919694566355685664706222968895374384399133342353544284196245482587934504777036296230887312044630094704671007289328848306850523803773948057478231125347526572039245592413596754708870053196257838033775918795529944268786975833083668004312360367661402824434798518408885622075056982620366149048735876134360401137344416141489202477065601160674598137635983645413132009161096548711456659566639794623911563007875675173217520582620325825096349870535901016987903552416583380825366634593071675282039004841512560103419921165179175288397967671524421237271974789784274892677955864314914308496881922247768160865602999048743619089296396649910054293090311395935171100675053732106815107982044182396018408146299881285875047633503466928657986386551609935412238697972426819433996355250935754165667310039513262250384306694849423290751870144877338056418287604105286689135304223397888113051950176650342717705295730309822558179809289296099011242779175181194816731548167377261988948137057590602089187221260769803796734614467662281350902402948224488199616400445046125089552816367539261288074620065044262827506609255401822833187543834764190965522451420417689776613276458375129098632129037657052256812576909633987216819023035285192479407144428026824385370229447898647264380321939594307678897855589598920072368539474335808992973826407631413698607031490732454013491495172469793872562762334459101516439669655054588782702264776944280302306128048215340049023589989558891370807281986516762577453624546393593869041413544282466807982740591041258732152630723586435503639967763489285940109363510124453203498646037437585958929108312087717430688971509751598861370988976088097438227580343013759795932162894584055945815548761280159429346513664843272865176470669699921742055378265467775912971462099948992095543001425172100215597195820932797856329600177186499858239485078914654561924866986939492313713471076602248924865114417029298344775880900343617403149151847001474031376081111066189673312892276430549906957930177240712993283148942582320967944748977425506025731483931287877153650112775402437062712411583913387104195828685146026787534005267303644091746108156262009829673785908992373660016466178261595861118158268804348875369490357277390869260500996964298958042219489889911108855982115548061744717299817406087953059993554379019434643464993920975080863756026818601171427312165548064935483576453958361602911874038679219166769795813683300087302163871735663197606893781053819983199309893602767252136108519269171575142982403043841265734470577464723266893619934216865366564019206693186244386336328691895869907372093665542117978529649581294405255776540106100333869213791059912317399219377639169588710317466697572299824424000522836507605964357247774687632682997316706322684734982150791482437528880417587841382129210022713627127548051915275208183381193737905468458530348298576941219615398293750819367014876973532430575165142873399428612517867955376736172340805060175446802335843178708665296922510616017794888837157041028059405079345638807536745870049004733731378126169144077909218289964133498937692594425865143229507178207748132230186661729307231745168089870686141319746559919547770637003692775802869215751763350667868620959087127629912086615088087103428200351382924359859825840357593951916520478562839316935688148784199126722541795812929475947291157087989843602097289818376640427859209640996286394685683874386359902994327023187938756120791060050906162430928358546784546591659849686258621193904650350053044618593634965748771742962323362268984855850772017400537432478145495625916964664983714651097531812795382078372174071070566746834221572404590586742056681974119737746818198694668729137142514926923106801113539947300687642144035693812754212921303977953721997152929140062253317837534416729894843718635169419699873702951037389588059588694789705681080507737963268304108112740399319668283806150570811897831974680116867482148975895768685885427626400525933026719526269972830877388680927975873680278231883787920364888561302597876184315154055051385797390344333240102395098543646278226466104279555869767896315556970051965669467402115096820270893074832169346200058536290128187518766577663589681635526320403128132934776143007592878322544369427485073429497622959263739940645122230556354208455120283411019979009768887907262793366335120466742195803193006496970871484061323248049707015847991987294262059685115163215589548868733469091865759241764274026278707012213330008901199586899379045709716210360875890742514648944295969131706436478835220983449999692230432938037986381275556846577437005600524081252841523719999552214950681557103797959929119934797030421206897504803724489335771850506317529926213405096888240614101727945289674643524942322122186711351479377717324206287003474496161368175499782620481450258129120681910239800374959462544970739580646809830258422980183433499301137393726450037410111751896746594839554999965349699810356619446423195100216117745109800919190209076656185960612583687556236692200131149055907867132503255548796958864371009559261790171003281099834919454539293146359763899171819994861603514209425570859511983874891365684472557839720225383992414000605148123001234041458393667135245378407982625186517483036621923469156101446512239680321385971150702482604070554078405170171695747737658751828340972185934802974475045094353224547411707911381592353562656998338887890021972555562849108062108574039477210543169486524385744728890243456285513292656492468293117239767071168267367609847114825210398441926632666694361069156310570892267126952200769248686336535450434385517377675801845830960209098193236423218896751709495942197121741718433481347048335791288907531801914129076819901198957881466384183164079448462309687171741920225275168553682229697002539445263544794857598331759090326417940366366567003572962318585118242224547382515376896675950199589597622242916208291258419034859299964111453625883170693148802539635995457919063078213307870327771640356548390493768318793801323817145940152082483512299703006580178888838405410665712519956445807515135638920000224960186094471649860616601513577229648705672183027323247857949039834411833227463926494416166979535189099408300862924793816041122691526231712086079643567900092532832696657614896849429277728932516137492050346021851234569221113598097618995132779942365649958901518749522996994657281310135588857595697077963941473207129202729669248674055929363364499918827399720634874270623879713338833229584518458828871045635118821361325727211375801144737497748204024036934534627632741810500913532707488405243848861426490582370652007072943924622995388783565476980705005987698618850404968450286572306950073804158921686000289057183583822713859727383832435519635131659969724910677341100623131509803949769369857533412460083008670779680818488609075674841408101261498627092956886126932320182560373002240799707756085883765205101143671656159872279600218618179297809203963080286759284465570875260471912947093179592262203828244004404854421223123763118697702806674867360253349179106061553641215880258263530040049302692016094083856068682212903889316444057251874673486498967208329991188068458038945712878378680688626312623863645161438447000724219650857415683914746059105898427072486269653885162493021817033243998691316178896174271184740259711873462970008168770313653495327257992421538882460984784412741076540088526390405310298255940780668670167344602078814993828949106505107228612828312591452231112695565001393071656814566112942996083026654632414595802260903027147799469582600921919448941147604793527999152091602097061399066097471327363754401219557496242938008293471122853490041839946190430289773448034348768294441925528759611656566299452736100257118299837300285329641262156897289031905374490318709325673224816941168103077829929336764153136046530709924662288162540549291601876245073776382834606493263351619860579936824172245509014007110840979083425448564658566876411396654478738207042175690423593430020726172049703710216354937062501244204141663299578256454168589047136739170167784826982455412493040114364897369459079402698773557651876868252233408090780531542369093603597563969930041271922778154317871306541441825768715884547000885104374473289656085953098340866417867505311889099914127972566352855419335877516875882384583391899107254258596974803368338621142563670603887550306694634917946302993942125704316936817010300117354427765733931225819297126720964599141408803391724285210933110527615519694813442429983541201216526006495383969890666008778565449854153376834997414951537974318788200511622609258226146592390391485379205262174095782163922019965857790784507698276582066879762517077315465587148157999590648665768523003206264319643449736506081154924123178328576673391775818791092873405451819989698136023295360943788296317224293171565465195715481035890344453510727854323739910038602507434342783535102458825784264602580772717626127778957226729109667681522921014452635792222478868834003572726756388976573159128297909426739963910300037392034229606825281727488914978878368131647448689349070439049671346601927718140105768774285306674737081565323370254155623096373943237473768112174563363136291755742551914566663753498392549945807991245989407637630218215832730683584612259629496253510208925415377603586373479235422224274845424746268585255310415580928610784105984223364837565939792288617465569701751388003104706445994806167133463376882805920225592366071551323233326449138416968103290122106250746925982675264951467018181733980423500666253746098962777470661599650746788293957619262672085658950190744551887729921209006168708373375940141950665919319552640241891030731837766994815083640379306478284596770134678298869672897368930018870632027279860538389135414219053770721383816600489418952690698059634061871400988191624970210920152452829572029247957522620551224051150359874541313132554940467511389991383186281773411864557641614769450990244566265515643299925520911808711007516799147432541997009563889872982349605331787866930587019388504409321437079774023664588579428403773904456945260875576245965674850189329375877653886608631437412214327573121851723198753369670014530806436352461651333656521581128978328030551850164697461691410694443087282005968348056887011879162367870978277824077117385015628062078994038786010164482178740148749281603618715865755059095886445884069107764626685295884055759832563706357936340735872323480761076543629188343300190847961993590035618839786309299315532071476699994790785868352839136820986939951171095038648402379937067809511375767419906405886568257009954316657572575961531561219784666618804314634528531605785862414076134404339079269913728017870557859043473127722192928888677027403429667339827077742461206138838808003585661571373841946426421664280858337522976177058467397511457751675448434534990309732951788864264541671208587856939541204548051515137023239255039036874162474277724674521607683000177824443848980527359515259217234330862871712914124908303693142459166878542665848051147908321850982313753531623243230739241798746749069665328716043311908838838689952856744907000813557635277089288459560664234363563207345214533935536200005020664795525096796553215734344160568426010224455685497214549897920167075684215797114882943200412581892685144073486979590047834974633354208893615225435302021047138285847934459857576678125081191580146463901940745019537159353485858718450226968083918679701320254324121109219659772412642917476676803766766622206725166607541881667280353884785015941443360451047436338257140353728199527589295406756743547848311126026475446240627378100079567730956517405561953824004232233927206129170637396306161121203463428286498371797110624823366981644011413949610763143072550090163904932284716414541237523363683216630320232057404649136639664147601833389832818326591920792127558693651970027646840147181534945214458791903070186075573550716700613036336441197694586256721629946731885254022489450026200784364244663185369264699436369232792422547223374898511298858232873050052316522909043260515517941947195427443373178511879864207105248255200043448642538447441566406647723254582756418834156018489289045999335115503081443229702239058313920586894129207843295252132537222849070023633069538148513886564040380072770690937688492416171706894619440436756260693747360905134471856508867929004896997309673785511308079713720484261774074362996198956876988068179167046509269545337448236873245748630295016983060434565612386793977745734695553562334582817535206477054475545248619782905523630503602909115464555186541010608162712678763477164847922839793845937125281041550283177593133377053333014196678795894287073184771233602870046924958731428173109862111415382420725148143994114660387423383381077929861641552521006638363656142483525489448102148938656473611410309215229280757412587773009917926426019598261946103620328231209146527503433218669788307460244755036638491299814454942813595417949909765032763160052145095410420966690935241667956084027669360742802028510083272888353971997384184071547969267662084810196097953774487263365656338120773401673169792596036267838557713472551815254113714087488617615052345969228157264022171156099887815349471347186608067183097983493406065237415883510301899720365217587705886659326475391709950574262261251935130582413561519700417945446464195957218195884214961957102255498838317021994697482481266070147244642935636788946009139854178361905615731913918547452020714487490613219278224008417287568427755830098590841932438540441926146417485233771428410173008918685125358709571884139510663228038179988904784999022578827248965750850962131140269043691437395335018382979475146796086879953881256377695218220701635575116424124665261420237335890324955843131263283800589197614526905040705997654345522317026961165517741775062347345954749099996612302032602072841375369496639686836496250029110472583371948321265687759946216848712378928204047619777897716419638148118920763526472211089977737001098337784743014512960814405746759336828700305053976329735675749007832314712930330093459051437664214148253701262777854978250105272450703089612670717339934691642115019065453251713435304542587317232930927996020873274834709950821678002195710919469616462495489553515105062327245783493015897887795594118534588659818605723142132842619992487602864587009640934367489906819846534879442626794481876789553290729575980886179471906856635474615648695273337962324450423641650208380029818621113963189403843418987505635587548289472884427045484152405975424015032312235849063326973388531056978754550354854687780850309686417911588881041364144319918704550413484631688784824904562919042245540893318158930593264357187887703142421788875623994757877526250764495455753272448222493733721477445630687367322505003954879767065080441047593719664987478728150306203033743698825048057737891396809828536856634089036632836613275054539478847211468233995791749619665866151686080195370721858376237950124355662472351238193354538382242104917311683234814143134674388209844156228445769860981615585001754876897334415992591417349225669277661613257852103494606388993046612936822124915479054258534033907997165426027727716930723544918699946841824135858790549625712946467540390764036771897484329392701823092994201926811163514495072672582188846801254277398431841846958851470689431674075688232524978413839956429769453432323007013678853000079313389208962259328768261958897741263168562047354999985274149816470928478553485457785471117083806943640959925504616836288907232419654808686957855386361603888951397701032599736155846688939359124086332783671578615743644222155748503879554007871869845457981301123309895039914952202934231244673614668495207770064640174354779830187059861884135676387674622077233882917469680270116902744466862447997197872156325747521095775870598771759821973752032338024995385330040950374370030327988941284284614142465909281473189038070248692123390767246778792893700097188040507571897059631584340333043651115121309062588051775437917655442989664171901090326873091561418907261266643886038410902057474185943334381459042512379972204290321403862130923620962752976796121790685909978812271114905348867851085159608865779356703268791020342758001376523421532210019645870978360384688410474719581173613611769457616187573476834224971974331808366683349441899236893587963371893041509988893169003704075538102288388223630566515778650672009817189208678434068075542196321971088692913933244693619397954590573258713924978781958935529553592032691909738262909565776928090074206863389878982682795257886063110067383343952694939157811494402164621681208366757345150742201511031541585813087683872208137925234216017080385552735699147423254233662857123955671750379941623888214131876508449149088935973535075236384282402064160371840117733600481443271179418576002649056035624164659776806762972969529919833638645323609160231056395312753166406807191336108542454583398692885869449979235566599968497691754376946380759386507358793524976688537992382258381145087087915357932234571957903261979594868929623714867774460247112829296475435632673541927182899855220657639594738619440033077778386431013009108010744302537552399372798713343193605034460382976048831885579311185907009050706899559317956621111848096848953098509066641883283351844363206008873300083916704614879054995569265274475190090802740164636178168091147778439774662182245998481428445407301187444836770082363639105563415416847132668122744850424589087206492982871318619944253215875370721797802841272406850616060120848758639436910983887424896537727001261903693057981848773001522076072908944112837539391497515872292008756683305377410698288487647982174494436222031338035249398690222557490161302469538208416144965748983394729831033425702322805632866775245049727712284188500530307086843265160357171696044503798367961260419476765962488242096945885625300438376348335343340093832261052099437526747137713784050525271874419614818285626302141126257794711592518183686735129268934952983168482497256399585141086673359609143789273260740863970915562417449778090718989281993122001562763165783908847346938026715949852937605308774402694877732868702261448274962036751604669209643777920495263328608726124565614107384877675313513865562808015013608351617968557840610946819016848897053483997210898045208021809693790558152644723383928690577453805298653050342595644797882463480365960831712258152783834905927882284088301899804052920082042154352593802627143956574291098357390098521375838940038014272012548528898729517695564977308110568662458823073119002989118760009313270230228122555845900878434651999473716662662823945726619827076462584516982204834733353412431643909011340173765512224368050694977423699753497802339822254002516164184122539333377229598275220191728427543952415002117855946364257173591037962717284760498537734129612534638587459796890743998447207917595981739474653263771773021488522853383648368418789586718669903365369842672162926273552218937889179252601809814556764875579315051008947002958366362530581735078548881369226273407998301512536378678854497483363941065267213854361432082153368348046423485647506534766299075608853837854575682486052261113141713286907696306616323332150976943562371940051371895384985732624677736225160106272278115914463585390585574020467954636421550158464892319347577852089726683379176337615494659007569790252484657975229852833546875867160660089980712229738307064598628548432499975101831705876738295136006221433326822549077695135491873731307240604073050709239893590943518800435680718599345562413166424797925709747260384202629535606802024811937907848161640642812575752944223597234255466119837714670567632210291596053136667575598234736203445230466858696064817015816358671600908307572254892918441770170498243385555750618526674817870371074468467138464674193238047644779433608642220038785149486762048030849547030900378992611327482768702705424683988223720713074219895187110572145280734801084452015583160233720503040019796149117134074672980405084232557705578675127796451032982052175252453705693634622989050528545349409015333386493404112230732222823743151126123191755484084185921552538667125426296018959557085571452797695750856320484645328401004993339617788755595341811360703952446752745592109182456560673745841973437451322469592668623237698507304215323460485690248014359729375843841562128308529865316036683624615637832057578637867294561289416452677085488715445619179178945370878427264285604805434171463373105359223594955381039362791263101918991826637032157923579549029546273146656280557983388786818954096513821278106532642935327513963305792106861341872512457493404171725893714493247877322312665448342019815567422143587033220681898654909662746243931310650603241210060996287697105247586360312876656438779932702192325634099149934594786079161976624524400355974290161712635664681722629928911573494575243785805178575712373061451169288081410051483872144535334627575695342053365170878451263354953488926678129056049469812495176772566208084057985816216721030413751950719207058008230060722252115134505645953122685239357056418958169284897486064207208940996263449192870114944416097482132377601862215335028703799714894017924231816695320353447176370947541925227499642157223398068454927858940789952894796080587099194694619167066408153323880294818352980745713851704726890000981160481478522710475096809403910758234816492390523020419492362650729230105753552181944181624162234757083925937917293609834728546943991253570918506688157305486117717170782052333233748767194024070619708120615292387845404205930578097213903625822532370368345508976121646449233106172768224519313233248847717031210957429282203377438912462254068550167118927786822528274901242855668391695464050946512831132108246093472516167588641419973722014986655463989813125325724836765669583699105925894972307219992360243786189665162193394572203124905668929647362745189151221457607676661723181216920901920933548011361436758603679894780492467675449480934459694534213409744198245318641454040057346436496699769439350024794920594310740417428352649955318419636477440987099322829819924356401530761832655624597432459033382089314940244504826374731224402713820681583635861032485052880760440478669478053263284735996609370560435907321051332786390990686769432992348457903474709515621244587693692822104231064847528910946865562208080613457500950878400327880657801477525424912472904204945311701359920286225832746713584803624534823160113373889373365551265231924830255320799069825139205938706428500921684168192502433320200485493733575286495879562659204706767961548113100324070851288455612067835069365737212142240851727840619591503791204631373434473365579872111859042511585495115907575155322038951173384146388609147596566626802688382098537336401413640488645642297189823640219543025708747441535746148983028416490100174217852404822605733810852581986294793368537637132714393966611060269780637533706154146421958815615827681548672915949924154294717915118293593079503616110681292257845185238739352134352633214873865172909843664194842988521820476021639447607312398795252669240313891111252908491432152545212502954809677820433465629215474345818781266614347202383568073576883144067081070154439980577186240981118017147465060006941687794960263571153882928495907839233358858674247986108137632247073413792566175784593946045814429312744364927093301461403366203463128123961720448279810715356188367407054019221891379884164410997791471889401221575562547409640917703055369070899906933726104081540857377098977091883779425387767271357802616076367190455989756001278476228800130450045292575687093585739576679030082684616437281020665960670818308575708602768877673033900303148233441423118006927286569309084682109489573944959184933723841391484222986325015688363283714177142551346295349580563213786388101853713300489819627241924924310367807619760585942863370246362581255994230626450324110252277805198072178594546159062460736533603890760222735498350327164292037164982559345971509184467713725289369619605141909162539658291917978520331547919605753554850720535267009800998450662945442045277464670694451674858666235065408797416683374104552590664787918800099457724081583831528955716203332994003823576593755003339280283934967710998909904560779874934812067248443927159075254714348786893049512324693089878332577676924397198695252965128932185126547110126950326274362551542060944209875394067638332913900667413351877997084671736651930572776435299414625045456554469206071682636282913307217461360169743057946070003230141782942071010136948535484253935206813472305884561623695438445032323875038203315566343255957818649972029523010444719392309580666372192145244792257039737895312478840898299654211367273438216374203160559673724919469906723927171501690349539517640593371462838389015302016801290809533070621387746935647967573989943547541424454877702440622308877810367049066800848569186305247695797196646183550839785173354845280190418643486209559429842021453251225525264764548813853949559724185804214289544602020369344930563184360292297306623961939226550676708261230481910275425900216946975673881750816986341413061566021848341841374360443928276727820822005499711846828934286418766573844727301759962919149381279832577116394705502688120919386152060073853099777863147911549400030082250087346767104206514507128557676564128973116178201260818825996271334810540240990185090777814997125875538124328595254665652748332572100245390953349369170003192315158722629245894051414083825149642353673030762187419370362455947225599935910255972062064514889967463549705567406813324976219316964912369639769090567081736566847531711627175056379645076239438623489508442953764183321886876426219154838508953771181766041901293921616049650162710569821968383162003639529934122517497208544545487964920748857738519234660938683228746750709077750301126910779334858579723587667973658967351739636933605671906470881000370922298063237647819692651678593767126720111071868842968372557647130309271634655329254033498540727516999276397343943628487788963377677330311401754180801170495948734699228992763955680477215989846213562157515330359106156341450308162777134829635513943134659924434877117511084846966728461498977996215446822523737926117815634422977770810464439479935386895757196299181324816869133425971638711724266774869066294993097037418614999858774237637915207884074090895978207278772133211996206293560923047979008690641662483679794460216497068825650536190099174333676682406050289887956476023218283296748151183252184217428637817522173612142175691159910430081822613197396375832675403736363145753592410820853091346805988532005890182811429994725791300294729278813203016994153016616409039110607145189505846275136230622321851205203791453225453171809750480178883250037138874937892625501134172325057444592995109309833109757183957744962664740575670956536590829559930977856332641947705216916038210719737984684712113430911471707441202752658235297790417174947359261119253092652502036035141262935174540459199274086312706980135534129440028821333811683201457133228190528928786050598308323416417259533927160934250419123204343469115646674600531118475613863994298933862684601342235027422222502669353705231218485540105074904748569064325974484587609049709338182133471757359754652610921991305310999974280100401134710309683746627300970553717070749808565144178108586907008585271990828642370647044924341170698589591791006427140886129372523844614833085065625397459426497607332127561536345485007795235441727484225071388357444280450278574336838672216372486814603226048476725545886069582964432664233782504421685316386049893420582792287955498191204260777837065404770505301247879934823527520297610053929962601868136648469977726987912055858810407542736808647969742732275414589924430831299864613464730059432162359882600593483944614522407342001712407158353712325992701735815632393956641431638950271327750745132826224693109594172382068295249668167282371811480460826600891525335724283138135442084951753284672183701240388374644868306182793702591418578674211149996208264317285754245967888390694272600387264848506576906692489867236274944313890172400544500766418313775111842529132629938387862858840224193731760765660395835538178866004763467149905054959721548736604424529053883231077984896492989137878863033453835111639341932764574845594875181649959626060885016893481575091075845952858969635419241389130994117440539358018164025105539913853037848074281160455529168738612160095397489823204433369119193649763610236756319806821263735681526514909369310074684449047180750812682676112020057361678600962471900503684789777227349143838598585908376273691980743846005834455784053016714798708631397308292394881955018207819409395883575648901746691053459565236448662372629249886511608835877095430630409859255864948060431268824793155580981820384983565551810661889162208983617281086743649053012914675492205959666613202228210689378013175976444588216056262034741283918492870534696586168727802733997831313842674966625088621000689569029449222048587389960723616981311423825697177915076242408531404399538571318728647579319753842707670162454461879390899100209807342825102450202126649827926112276036241011429680309325325587519252055266593847195004883998605615782077111656931994775142319979696859033215152009691369428749324601501217156509753825402361384895321214273677757685609842207684881324042921004891425633985083696348782718747993108981591947971267136508167370975408224186791765757928303784215337832931159078962310428055820078128846371361048926067149494053151328370403382282035001481906472796451698614031105044488200847102458560720706553812223337626028469476802499760193404929617516138820071098632413455313576482439014643543273729173968469545914435610541873149099927762176812461708894275038007228490424195751209572176932934559497423297871920687477914002363313733597651076582081090603712965420176873120707569202510980212329105632648712242100825354159610668204827030093367060557595624689539812106397838785594259751032355802180619718123707688969397607542287425712479646388679589758189803316963911781578889854115216117082090091495914732569852895232502190078455098494592651919516264161330554786388354898580280493010566575163597999176701410605029440317199422405633478141262508397074814671122917784155366371885836570889592329180793387734927985383018440395063881319938582304388354252976832621007536726781263296617024634409843138270843086313323342966717032261424834136013781649614411056941173778099043778279316562968531556535813776137636450937551911269776767383215523061339534318018141364481242447964638391030446151336123384968041027192669106372674463514788790097284174594458979399166013174590447396977686378537542819426593748940668067533316263036130675765174721654502185835744666137773713610862509554804319153372753111723479913904839056154847432781270094615766809160953939236880540519146448631655753387242959627450831968081775988692387233586410022972013139160161818058485914459935526494357663888676368473792679866768347382200486839525141968610595203082035132185304856443068401160005214665800208033653153074078595817067343195354126578737610933619705439624496470413129713881981046094313081858706993779314828248197512071427476459007080112992854796923024391932218390381215825866680793016707247210162683513687895010441728917629687419837396690060386341156244040716552730956998692402951248144211222896856266266151008218859684862980960522178608688987288636984575663435363540898671167451255821109070092136757523491370460264537907097333013907816331188138381490224903999412394482402163609205774374506123400797915150468769677387641463589367449048562910549398651105927182121002708596767274203556193120193029487907124264553975320221837525034494168893036363585804087345460015461063004150262949495921267174666908629160897858262194563838298790148103083949621393981759425297715429784038856790355489989664685962259947225451330904979979207831333658415292152631111002095519020481568908396251923167604181282620433760202602344539726097377989213384923365045375731301155034616169545872146773569083387278403700631099854801017292692863366391914930659685010549000628364795955795988272401260989378176904183032745996434193616724911186269938173499548340323188128815564041803463153037314459327578066808690146411419128191046357293906071251112453066991981834381329479386385898973135666647407275476157853495364307411951033110972837538000561148028284658147796109632240674412976332110324685974006222695299286276509729889322152827106944681264678971359752358023725547524104441366223235355416539856301548902352788957388935237507991729030903539174813344183553993132896093922494163226416248854572745413500504016895760925279103509741768059672608420854327360107624332727976265773779501300942884195548906515614933200611732150881635781251140999726472199180978359970188296916142766591611495152987136744905097583301755556523276590515400991203610334701491887346786377272548527875004159230291507487214123606245324560468691804950244243826128134415976700876797050665507569869728306312042394123383099573319076267714088216870045433887641138934715231663711186106851993032380085664711425912569821891811482842828104632416432640658390754768297029722548862591403396590170419821038467931022893957804296832785241675794966500508908024581704314878044266963951112808014602255455721230466747902047815659215263471028620718398799127112009646788884594396377978232532662276824129431227362308224805595140227759756411897836272792987049503634345974250541148062510244721076209717015111668430327837244202365134555218100810862816108706897690207889828554609073914765794046110392549135890876213670123767917097281389598495850667057484362026142051459117834025704859589668837960097820597569310749154398317580307203982540145629952634093343353654680174763428942693767373611049191131760840529362613891562836667989599840113119402504295041195985275361017451918720556738642498835379239501623846177871543640854678049776759505937268044963925052054289595856123963585353089441824911723188684566417797607703999536999901461497236460341979115176160908486582710883557326694699526992192261302136582110762640784155480116823452888169143435985420385889550064552475714014851614162349995293468638405298375312327058315820428789288541024973003490005690771099023601561824357512595305709281941351006650841477880105353032587024348487205073021369933126878693561969007244584554368399918613921356332162270640417256458706231724453108830712178380867469035047621472302088028525736163427606817350598006984584358555157779873422509687721249882048628461310933731848384812079742368350572749544699793721644666703183220918029021617329942787897201935102928124883415502375307751722714008346573780160466297604148501925162138225096824335157044079332556545730218853503993902404883594849820242130488178680230564385128516537088129594268808245846532969996572484670164726139479019386532096580842095545760355663408527304064996734247958833668622275917000022921876678466735091289188946341842711822840316294238236459681775738883178021802032008921879061032711933046251029760498627326206308418407238056586027825904234244804239224041543444321314246367034485397178502612660429917106381262733705560801079450167879502649083342304458525227707043099562184069142619678259797680151509526576860762364910645249149773777358904485834648976648198028395582752419600742385226576917539070155406039380614771371930677960719925645875182429895528263678380531266607545804247502920640916685022198213193576312289548951766019851277666009790511919626940975453276526487250294545924280206341825445285125982143280860510654271785868474015415209643216705038963786989198921522107157868849751074432079134031107602825263060662982652195745850766505863815406290893315779126131629796446064979172189938252391532131388323782284404517827160718608527023203563144519967900671309328173919915469110795554085028302158446007186535417357187963703789854042996847519097304205583176754301033354730681980175496011136902971843622046626753178996321560881820583491730108208592894519375486069661744723487769363997413031216136976494613740026325636346922274837741848777214467644095756903801104699336877810909945607402346525682157146435709706852244460853033404253649785997850647976283027560655148685049075388068139440074106045755258725626675877269184901924267382552089580767542305328246708699689958411405977483436161173340872776845592629957397531856291793181698789179060477924061265248642800070811235104877716256661952316801023266778686421906187895595160722776514053832132066554512145051631141293164175243370376405870732603943803674730034810177817446378707697304063946374947044153232802351819333478707399718519818051066910598692883459916645113221415919547981703451310682136941001019001040182973733464424592441672950870321147977042000068342357485237802917692607045256278668654960448744287228594305656615637758443201817712636595256818197769544963883983158435474014129535718936930401476653359269326320936765534936091563925833853771002265676336780348136420611643955708121446268363777996470481858039744943224976380526638568076734448543057576386550454330802769717040259719964474701585055724671169181036687448758053937762264751616020321653534984191397217319836432531473166649619935166841348680050694643287206962860199429554808149928183239009444253578113863420777327622062733803447457612967587445394608987704264969948136622837630397818773405343897269789679746654168586916634345148500040375495213186077047112737085508031797128007498480451212661200925883538821134471966737904415511080901014409066602935654498748981772418146715227382178361844268263036046120878726705388802850332858960434368606247908119068677499410067139232724389161442400334859408657752960878164474752617659136063394187380255358960174621024450911876020404281265487662977573562057173839150484275954314052615519561205454399825579767779940615162552530455167966994697093125265281117594143217826440422940976029369877460236620211681240014854952867137441632912311009097407829051133786254157611144737986577463107804436487136075438927231727902487541686002138395207102344917141577032848583154899360631256624591549985385620765176578777815725742933219209060357793958914521068415214361553621634133503696529915067845477601108820538047044911320397915765389993231699530218002863860282182225198527223208865709564169489862922306614570147547590121187269920112199512473828613060433955688297246185230238223914899392466387628478382392553590197593095418122419517025487693737983217854257035373239813309583609022083395092406730710519769784789098202175324629572813920079825817398181146142624489133635852817378847735263375333208440909339696094489475256883719126162261390702693651801601936985395353314089307336234980236223675488387960932521475963739865487530057909222896476241621285152341194082233927034563741974915064485967601036253865828566832914015593762956451933076229637813110082662010234324655499691394148640994597831148605796738357451838414184120525834994866063465294236192015541982690718160729292941698653800674177589304546211865375757633395358764783690580380303186120521397270778611819776844246590363400692807268205839441019000370248693915613148939467678272664121332940134614667196810718857987451808318976339667773698176718567325079948878280753626232112423181565626796257403905345929206829863099595451332239976433948428533492354076206568689144645566717146935936561836711681157963858083020479594847746963388860681614615982742383872937966839460177272857509350289077134218850383010497452861685532917924264671974597430184405630565845888241167815052908314028702919447832655849778953414071088725417190289301517630269087100086735616397039276570118033498904970206089959684784456105028641035775545081251751715372780552870195641105899168625556988379075741020549241274830472273707584182955605671612264502509298148785240493910194400498394655577058752391489506011884012130808193975195467767387877866382552056739503698398531592164068449178837361022312320915627720000689789469117722171943428554775088629379732892346243691924199219000021720255467451038229110528673622383145765904201468525381988834548845769896406321763466722279442096602512721071931981317326558759711537782303396626697227570651187202067467321149677569477944606497513468731477374703952967048818398655667576283564669488682272736588458270393700648192004441105435830984696136580768721923373176785854242783723399742751503946706714299898072371342004888220870206918069265177895346247294005387250716591676243901332320797227668569097241434650133770584225084019053957653596158815997929417065884654408265357613466402733068258057289135235505468743852542268328068362157221229588531117667468601447627286374656137550783642683480641975834940716379477015134558797967991123406773865172752549308664676284656801820786632960917990855205906520364708721775087990520804662836215236205328555381707734739330269066726071456505714836868888840686149714116452534086082736307856180973856688753829481790276265085065787995037894854292168044496465947064714634998429225642373596939745362212466051194131382992817252245027001645181770172385469451423674625803030478289471703002265888530084515895922324752255215290441808884394953701894412955704886748266873834659534063990408745214713407325579364606482584461767111583693068535861048325124625254026657687942241912972926895378305115358018552117259711799858615578138620468402358757468786417487226907314948215952771752755462591123157558231157721742837697513727232385262254859099463156418570090284623457899685108866612914015707927620178060413173266587000254646824199924828192102033744389520794299047763882201204256304955861926772411262508638090477655427086836889098227602668816309140060694544303245600254393578547060664659780536443646219522818764625056864105680219504123496734715200216307246094819813094990413615069589779761206268518524258543559474775445941279107142318923403229608852142961258863408065848984311330506587672590154625686753815914353527517804940462844287803716702414823412817182472406603950654924776192327367348729636772294762753453778716761717823262324979333358057607605624709348913047407174303941876738067882198884953144858893078125917909120826676223944587805994666606983750978570151213421966853048553899875202152856957437459361038261317461538155291685798085006883889828422770748307991075721812698370755955525239470179533381077746900652690362184010784295507328110398906839459493036977842617413543277601320540207651872498796381743586318437879704644767856677225049356148277313348384236781938529837482225400332095259431542212109970839365745553375511455079858267642130924374804100967032357692977388872857132645638855549707595945538325736073801072552589852258337957207498445230972490614265594033438045168414322963601969748706005946272720085552902456488530204643816876993013398212194159595122838227690511257073280266769548660799946384773509434278307244130652097032286031252971457976289593425264084128045922634556643542821996685645572389587900197331292921015833598489845812387473690455543208319416959501441290704517625058984587317762873830342422663268405548304593262661538893967046481643961626820752071765749961160893169588674224279510226283190738799297040507627948916260095442994448198887204260791185496577245829616724373016871610724416790708135515626181140705429600302626989920388641099956029478371584447727742389635127479498626168574195444060840322007106606785420723762534867849362730574648707603409357588781555179373922252915713094777941758291541695553350236416979569763931534357540610271569070926866327570914163608904109979826012627352190135392344548156653133880572573942731608688964064796238428950509463386945855640641028537677897152360829765867212195944370418669248536664418270050589189034368770504983795971940742276850939501086239709799043186989873168945039463645205784148658195600579437298044151036527776617524433547146015506184087616326204511873194404195636274754179818974155393091752732632327083560120370589517107218509686099891860220024577427665866323001866532685660258648859864296030689193249180232808707759410308361212898921490473977689443344773501567296749091590249702787189249834066626394534170924718617503621363286575439602513152938854971874148375666791326905435665549076032728364083104679506359455163389226282900866598387523410194912305850636108555496786328433659567029957666835479620888294532570595019962297454122392690042570825751328824953471734814373537885992716985462314003474688892334545762554736661276251634734052731141617538266864722808074083942830443998540500207966931602346496053953723608119421475627215230099050279254424229809505552703370941940712423535584856493984378403091799454585414902326848195634918139166981885856117468975435906224688878859603829795736166908961278633753872925089917998000422303948010406132716357634537389418793165722569199711606700415806510930232760771711488333198561234501095306373547857387696100065141164027914431438176029243160583760440404706460955069293134734538983354755038626351917562602577059002942931873090126175894794293146442609720582273811256169560411614963130588185841849566162883280898229726855435736031055614216241793357740879808978522443479912906135412318443214523958996147377195761751908606828062832186048603921470245393762283902988882230033816804175480981270578870862801726730484550172678592336266922182310730385605504743188429232409473759010719698995983658500226605633915370364847512450645221710478042207987558756802621742661101661412482485271317375974957512703360402213855479351219036810330872165428405829013640737554291932004367060810233943769644601534157538608601164247740257946203754840020244587586259700284782705200141438085556246150719644033899516805376567547890229275500028241861118261143087800463542781764332307568638973922168064608599312370248724090334695530813398547192681392277047185574556151067086509347508194812077724091933694871765669932856169948248370350848213677345720908217536084614272290184427223550599488187650245703831853614997235003777165814404721081259180887511507024083710880962439521901246838180887234656392363268056763588314340200903357524755863019606917406907593229050676280209925154703832674089388008365393780111954008082130741819858276147830904488911271928957392996687105065352679447849966849721043503264367604823537245240160204822583021033620153302859066459209802649040705395674915395184712427181375552594312576050796772091538443583894020321279052498427873715738090527171764831695622984250549183041756083118086790375018039389775057625536922284569796079234038532647473864335734283121902396580481499140943951476088154214670597026782657367172615907519251524295591065270211848353714159805976215092988705587588035251562158162605583087806823214250814417766678126086724182841098245470443727536582727980076444043461651179851291393529131057440707691517718544959982750632356637110781178341866025332957272765291450809528665435400974446214698402853056939676068259349715226951739906477140397208540627359745728805471330169378922702577163664874232610175416631416698421917273631823771389118834108999342791492806992065010225118347442271656498730313970388324247853907486756965026907735564053191743325671847591722866783443644881500360871322198796517946993429342034660032754934409201764950192885634922658240560699929595435306722743655496244602422745047264636256375838684320511812768576586115850296087414718557478265977395655570939186422614569059975252261473738883821061685172836525298648319420690836280843212780359309901338127471092251128645703713384812833876539307365520266548701507510691656772042984719904837882668484263438412645442431216325728125654056740504716902966935197574305048072817122537167017608530112787627555481049297380145182623204968473410003585091281389845905055859736339377399569259130420315870801568693432596984547574359302363326047759149692151562461561096563097414786410226115473411292593531156195989858718113862265317322365126501102145063706451365147790008364435643714829660358155467666479970999396453919366611971872411542188474685625963080651162935112702516646927497490459038542838696405410500870485214898377275261280894731885211881160847258647812208343703742896055409593057763439807480259108360396088898418640989876829110325684391189549082617406817560156068811314772965025465173202124626936777613554817394237508843198049366364333112252302431255462585908822865493199080573216880690893253078696889397911594825729636316246941292343932632601686671372423084887093268165545816419282644771439225269769856518430314289231023578081645479000276447521738315461711300886974901640788623046118779143241652694789676509758367858838515075652836106145092468215355835515204741699448035213397436393722213262855598411900596008967236795027369468608429389930688060998270861897894780467235908021301751491295036274002576291865476500359442408618378616502666593954794581539642100938631810345229440817490202450557799134731046886333779242429996075178071879772120834751393041934924724271690812955076372178832585523952680801873967037879061268381993828297316620892075254007210169732369174411610207729382915279868853618000021351045569223822293385870546001544684703171758899906446501933842952006276392495325204744574000987472457780578063930527371958252549482576835764274475133715411312037319206660977322387868396648570118907310623459955112870210564484134684062298450828011354173486221961036630474177313068940271365011001064190078295407201401448814976195624831728987481669841410619563436139363658599095097619485172934503770213405275654705910758976257588778374730068543226075605243282356636455386920972771254382475120413039348004320723715693528705465783041253312414999959013723056186555477146417686191982425354979111425634226841261793050411180499587966038869936371118311542258389747573763797885553767844467168342511806806121745211185777551897247620776230818811519661270739563363037048679738860467430616669460715845067937591524653199890472593168725143666714133774677500430955791603242928145053661606409046047354163722674638261058680666760975741776565673458042511838140428273130591969453772402715281634416554470441816093500501247867139340665758511113416720593708716639376698540986666983957282788734586866852992756798115163700997481580488556868666874901638061594831189438669962103673514529702093307669131479627053832770492071045593097380461458402757611529485343986263716796663969057431283776445637145668278710795033899980348386515064920085031843870517812957469803934625304881369792428575496761524280973104442099906488087595136272145350370171462938994505147471583290773154683271441692550849038339638030225617285495059627596581037463409723089351216161954251967779541790418759997908136943164622118637250630205093913185754806916181834846730004643537652108776732992709692808291129308579194212815817794318635617397588433154186782917282454149950853447455999657788916507356813415731903900967379868620390848281501328375986418145531773584997079584033003819312412629996141466048194534547476334884077850248915457413782707721800298498352951379858789508992426376847632198218235782914938224848246985709386046555820805693429148855386684188894569937429722589985791021250400788227920719585206183922243029302751841147021366629793627221974756326296376412149327624907406185208275522104197028917063376101327203724619395252271929804984356671038905006564832882410290252793636930084766449553867993543490202998829034518674631922684384794917822597297190974871272973278331954015326847760419161766360219209669590601608838336884164877591188972478933946221701919405939787638789746730975928266668282143149749556765204625713397508710249811050880350070893741169617961308655609958211299512839987297058325904320671311400408491750471153254021313353995050375972349608396125571277056722616903928656446359624462693205561188135095628041756287409725616203639082614525963496440584504374674559016383930863627918280160094059265724141372963964029976134840941872259759733731833473469121259534385319567060367228320078325818601390139699619938396036781830778803461855313625912778691059872459249262168254244447716842437373622850851460349466680939032421986777151400337148249051943617988798527103565333189643948864842293325783220406737956986153431211703732040197629675156008262394809565439325206414419604608253346374621697931540935335284886132209604985090121149504274292727014094019736573092779088092084045446257453864725709154780221038767705413303981203777813983738920669383418214773200952406526440443221859828869927983464948564895051762550996794364818363287881346099377898278946201385362881136055211061061952505582745904255152510361896776806731480886274238196526010992633306061402666443812722952654921982104851965886326093702968213726305043543420798922943175360485166845698661560287505721518230700337268410189984686901525926658842820642169192035495832913218241249861788765067917445773147205196908491703564647689119952390951788910852378758288535442212987840257511297666379509568116703527591490247272446206155724054342383703397688430420252797132517887671137221146627875438130462041843498400174404939231437333116935173579072924774430718150652181802024743683460805992531933754750939084095614747486201979199982363296077997501005965068021435022895924806860344277505982784764603062660398781719738715289335107549055512419934234844695484866760386716982424488272420095791513963502724506764176468741012659918020838280263496997779607634616603140294637431764525714612064124315994021611697572792113357756330630334551175265509759131467022494406011272977970079799875921967041878051193177185125916721766836323787383347672420487236335004452524362473212557354158635262388991020719370643130055105208669855776546736277680996273624919936091656095718951350687581169870058640063904107953559123891493717120326649081309318410842681695226556502160169688946702667736187981823104253159067287131670495513501329436874194868732991521124767115417981304536933922641598413978985694230141853347971209833994764734444962316966012934192249053357101350723642649909469881739080570948488265811445823585636272885792847888165303331256598474500715158335613972377369474667637233091569239703018947833620037155184342984069650041630182711789574292498235536325779970282142264718735287552844700983549955366506113034741676676244145240651928612267915621848321567010376264411168226734370635045421925077038619092776412447061157448062164778459801084591392020882978346517529492632972515208384094155418044911911726515096752413108320963986126582437129449919770579385427827498936906074176112455729792350508280288999258123278308335502328162508218274243841905360293007136678273664568673601915036654216603563816962138760102910489464265649378116690147264572653459163169976045571531381867618162894185852855053493067682609888799564261927395248532653966709347930881462583395290778378517273829066841925372536114370270366064029363447349722250792979358074507600644087696592237261303025296644091230452034256120108118926549611851706260484293823950245715589796967032597820465406771298301410164244909915341428928429908123828575542407659081545267300648970710306169521489428121710371436599574068741037509372481005032656502060783260517511735860306634809659006210482226079048369296100195612796695035890580348512336908385954653530245304094954457975435742058514056355813637743745976984932718607714622959009411573311679456159154455826429576988885247678719415677437975081907600030834220830181560833979637764349892676270885217769812499437031487971514082734195196547165211599221150075220662257352446356783010714872127469925415366465313034417200041763558716399745285337624756880976760271500598464918195907923890049219880230767597729023605568319350277778575967021766177609801224192745544860563297125858944645822191474995902997009050007787578413007646394992262883994380131660950719173445191162809472980309508482799648776060688345294398534771377552828008894482358632183807110861557098688246386034800955914543753550748238236355149282893327672890538388032743762839808192105181690538686137182206959602597864083371955981037289313913411462659368622438605428565420056123697956147836806667270470269487085944474442650809481866769323727882297805766773137594598357414343114087814598796800299291758579912320687266262229878350306308407279064546122806283969750619357923021686768694580876397894826279860726988272702023705284657619885723347302271483829003549638246281492853103815070722807061398799167115998138140185284238254681821048129092222726820428847429603940036961948169277400975779659413857502596916441116485686165970551309790818651376038709256107688069736169687635305469934361076055442871788172999859158314412557974030593791954702216763259521327290027676368032054921143312148055426474501897791369896073537732844577913177567800879927536045548733591761667555577555524914901365991380755267409641311573631651389218342674959900083164194842233594052149530596168639027621624487307337854646135626133995082270016756298862555374888479794068755167250399464650328900781249739962017544611770632372585843381407923718276666009555799616990211167312272713676717173860482201234238597761054820961468791326273258018541682714456187222142505883820955603157247221918385779167105062300801857597461968260086649578447607914278385096057830457162180222900148432222652672544710118478088024782707917892496655622837306783266109828701075527437382922788402978854618811138262719593052329382768614487743504658577841269626593409650521322178982063713395314184378853582731126476252040790056280423942968860363286870693380908478745521600863290894538321286898532082021472785207085906894321102821546664472153940591987877841497600461690372814492880419513536996090923514497015659618989398264644068062119632486670240749838964614176161477862769157392409836128403330262199359251140099414680444357226093008748135179267502499754786750262105985061239798972098152463425812150535505336702343334625875597939334298510301852202630482464129457667765302085272719060552816371267459501385511931125799523950716198272668225615565779077074254485134983605065076880492043748773059071800722564050350069274360161860172882139527044402816124325801210174093652352038553538738127717374921459354194523019107860442368931094639346111453642302387604806592085674668786558088020714750476344178778609658202409781257166315168358007283762370146878774524638548388575243304912513690512984959968383641254791455588569774381541855840147431608164302853169616977246260535445617373684273256129283102973184623910880874225364251998371506484835014197010625207143425035460346757333938862589173557739722104548482497981430428974815745659324111970870615904977936413128540041409989190512830647815493943184231090573861818985421916576147658149730477104015902289138178401790813683683675875137402783334739614806040784088988793531851255191200689690139763580667705330248432640671468687517193394365870141645108550847557265336343119080825630953816664580865084216768206320284533879484921251523764690406919057527375125810047361114074351866290478331433546691130128822735948937748100399528493973130354332870204997180162336712373240185438001388670996641455930416221938934616547005413062284218049774157539887619952358978796236312280611278621961014452858799290664647422571230434335354469054107016105040134532788318708809920784819761381745333559717622122674581687852322632406851055255517970845258497749312357415372283294125672248059554504440370936356800164916018887238163316138756228584925258952977335437116375386025803761142483277844779499749176020833630990752622878754621685422014701348212585195963162108313875848992766346146596018029578510531716641836451418350252477665757511655051185815522666643750015963327427147627505473409105958324533046887450794744740394861018269408295883511221796439929336751945704932007520182349809983604874810491186240856570388901610431343882494766679810848937808998095896737507856151082237505855498325196347921709493372881247450060839802230339217780021211971482609201263444121419559119941696703135473685642554440329946846331951937152972799159890477319835442886465926742255110351392960184805436951069918394681185732498441944822141815014168943979133927431619956083971585475666017217604599332273196247771862779749120260739483708385002533316800790749742734353868284181087760543177654670533774043284875147318054607623298158217627831169528745521202059576874824514250985494404124017358942955794013979876842683783394177370329766041429487188414505920900156017029739360092614723694598675192013004986786414558533286574615976984236250940160542321356045801359478901423680165868958762593919655156828943333523797138889859420831181581961642458558915984120408100206785572835941999126074938136939426942320377060076510013931582657488422892557794123778433634042972377790117460424003198443093231315305591600755212917931480347234183541218421681003506512264129219413184944092045027244102380548079400816365225587916061246303579293047450301075414941549826569129855804916516509558224558120744994533839721195203699109087455578662473523378991868321395527608926994585495818538780747720375699481975447915239689746669389342553305010534717645450364133590055544482347915174628510103719350490003817312046269867375534413560410701939218599907866586755575348926316582560930940570292487311254485799168519491709455857177375936578159624148065947907080754151433552179461543062428059292517306278388145395652774672223512243178294675009251552267191804212065108477004436839468285755198228696643691490596600719367978381089086079172715315826058013590894191771692353048859235531957365505760791009578692678643247164277291477667216743435130737075731604291810185206310541643371917332271288674972845074310026806593685901319289975833421102025167345277205364282986747170339163402033091626151829669238691355561194569742519617897652421539300780764844066685256315231314877568842911681054434773386471823916099979206600020484444460707082024476892232964287610131866372526318951112586745661597996787230582205158383201768713399330747898585949337615205718530074084133937161707548178516750700209629838615676387772387900754934344544575338381967509983416790430739185991661134459632233719345150884078627889306765897758196187315832346490719651980130617399594867278210070594376153500083823255901417204165408384931981179534766424798056954506223967825043613870812955587787060858910031000271834366239989266469135385019220805360573696128248283805201559660379635787685368542179314602580780852933067335550729907588816408930964943223456310529395027860311998265845695557695235187672108847403221805417879627047494011363419992949841086997984932463866469660212932431058252947386676726280790104553264471236607264284221828362443878099534265180341342807946524797838075467458397269548388393025428492122187078429980406231457481479499591190093229396070030819548585296524496656063112082321767242520317637324669861874455670921517922051569724883085362956208116208295007851613458987396980802744632793484112590150086924362595756498832242768194764482743115390200370132758911420618474916092085712689572528340122374603450190146865678666012902191319876420795148174975017959250269177962104535582786250002785165416656190442064761486945041372411516127636389946978766307329557525715615281968479885424405988619462263849732853860719404550746140647889880671528447669056402622783259939219940662659046616986741642688080063026757456759250644628001201175789910876098415991641638596333720803553211549114403858576824752065903157285793025010841898485275767087069561799388289251825314162484110851579452090333902080570974658702842860768263294355358097339897123792783574219311415530966064634128107152391972643213014898536650538560888532986995025930454854547605742393640592026919592508944168093964957813943256709475361154942603381776212343008571658843599537463967045778114259907932526459546251010785803563744764942711579823730241785420582983095680562038786051814773500496804451707907784494001450973167101811120329032934272633036717622180616010296192384034659474086155858769312658830434530250033805442628211722810083484320390934344908046201083173533795974745786567848556766767196127058768935821210044886927343469303265908078058788514367170210527826390373292230068637028147356038154126078493734166538784331483951220772523415551345917476599839611612046484843931202143765331885911746499901563260348136878471879693472743514639238795337749628111225027710748610475793026423956224756276186390689587432973232985512794882962162499730801626033483215235724287099715863648766030659207077431238408108911755834517384742890271727037076998034941083211085343907922194037503723174552553910471710594813493189127280093534602794709542667934691809369298609782443998502598265278355685514292545806927870032610333623491115588592068694544360091744510187237243559537677129066618583529876479411697621820701215843992889726855026081788984872872281621895402452771239929215401341560252034637877600045084765527556404360933184108281873079030467543426923118792415608623306439884146849376842909345169189732907231601242738869274455701972314690104055758130428332736337492399156245872667465346714769509247891638353641936192399325198881344025776610575043813164499782550646322462388581723465253987625673982041383970387485663509510875236542755477777108069414164805071095791485639689838972357386449029245883090913338865615835916529719969761944956052134318771790879462803221798811888889751063863186294580997530714355451933857168248926262761983580340861767492055088572997332229579005179660633664310708913634644218027596880243663554664833937572886898833520338683991917373283490635390142884865952637581821269943113937867119100443405195749528399812793646702690114826444027212649539121180129198025979030325606207676348977160333385812137714328632803732982465650698874098025019616365665435855037040182210459169780029353699276082597552165213780893996502051580718511335477471283120831292543092083554921860852847341586865056846987694929970961527594466403049456068811548298452960851357838872980899779896818284892291682829446002258458933657747502062841721116930083384115797133478979223474455551118015291293104465845608352607631656990458070699208533482730929935946048903084228651655016361273510670979330467338599618447594528141655925876646873613618716827489952854756422218234356508012748707259672123531898315127217049531686927292407314237990782315866289550230582295860894535074275026107207633751091101281640103169355964369354519093212386434668253444338007566221644138974148465265362843899532700542563243052176728466253039577700818149250751254300613103820794602344589894619343761993118508248901311131013233001525467208489175267920731021408247260015493472254855501736383849081781872448941424332189949291931721522210945873384744427942301524517656377429776198482195591616128856244412951591556714704121482852236163408099878624789883646507248158874380324353943262620504169177688553299304204140093805507789166086688931976669776174175665237149865623945336553737205482670782557855096275255671028742679116164250903927304360029704785432605560499366941427890209613759486925059440977871675385400969039127214754596646230887663691672594620602246457193906607208733124452943573442369787920630283556972726192567081511794031865972160411927403318867883243583258999121507655791100490876731979235560024981506324201847773503010124329324030990978498399244444543669431018234938194863255915160969371743515029969923090701917452071740176684016945649658126121973344225662128754024920720821512616940107406166429996491885058786451443653666248129662008964424945035733780694644371243567203396921247995981957458839696829865296567133059819538169188422631075852597604500400731332297142045285124593934339071390650796795764666447859270230139159949588372945563244535661999191265082446926482608525616566601839446509065976978479620752069344444070270216310661141785585758037878495649688102196993183471045901052003921438949501864488515580398861958085034558783782352187014220952006152351117918598924882891912933113355149721044063355735644460616993617433157106722655009081426037016180456657009526672859923683137966636970412028938344662937240186535795696685075927971408513410195759254464578634239311114342512390130644254978643276088940413485109535303673263819304366771714991111386626712414465604105659579537372215414870138106129635721448196158170084692186082503220508473636552668130242239932052545546270587501536864664074709412636839463500265836113195473069530899886201551658407640155428915353880859577687672264751322529168598015613502264305607936053287544584352231620385756124522320232587231517044716059048732110784378198015147999013297810549965309972216540037828483330840365548928982332637012785095891382209119708462808519573172697177017673813199263531304633878175567919375778598276108580424233907764109202063778570331426060276152555784313164082844764811410347137739223634652534312646508307831335324350792118233124263655706537821259833267801681301130128872633919299026716882252482726079561692809850347180700414107411860071791653640020948450311849777752839264952333681618292756023830146644155776395193310089960094814856285351306894213879583050304674175027342331849238525288892306290065352815978135408658715020909949704299231911448950161378969205401190836144460864951774183003246172136494700367977492245858903543598719679185774956171339651095618165632503310749351891464676060021591403344271627068111777525980176620389045464779977445884739250679035233500148751994624478125056828496960089999201760304910925575006026678703204969381394564915009923726343052128768631699377844096957007340659079483355877655693398072587823675926147781372802834535669178235567809304290960599917150592625226632557231892031245131123592502579495857315120584285384861948723531367477100298852476005222796442599888651320560110164336005108376361512102015985422282854172267150399591579794574548164413650557850905053373557981605430434967738069280164971474707276798599267971606294964598034054688578590478627465928498790033076248482862792373121065767264449982128926390179376820825028519347434627343045053079162495181919292166004204025260998549888009333390756159880344412493654753129862477773895109679685108125530066734652785855784907370739397219311573320991752345360931209750749854525094851211802035628447959759468116955341003616746754175690317728020814664976173802431180893612990497268233903125340734665467347280668678775279820836773395049772926019525989027050001804507304962018402832864044951371077180082487471585585915093811331252524948385884159041040132938612605862430122300017702084353427118883289205666540885919694241567438122770435145820137330986878582135724578500507542763330019498365552706377592214570153663401667113845063972774971830673665380512718585694555122274929069458260641752259260102727346604470272281760599235752734969998149341727797430082620425750316383880016833224187795365948397065711269746850868812572331834612043319762509558310202963651849384680606509951805139116692667739816237091297428822786437160106939748117185104988052393111922874467159247383896316644012251297413471450801093887747947401410133244163470008097329913898808244093393128995785418611476383235732552321368473550560027023570559347048784609011504505936303509957422186748571941692147142864231927624676866124509330630738089220070439468612327326150846951126759209263369398221798428273841519793032932893231106336982136907731238822272551666572966981553782673484451828395537774011824702641533458967284433630157938943271532061567056804777576069885960852259748426439101127380881778397909371586076517725621299922632146214171290001125760007283879511043958627348679068885517720943359607748447751624614011094422546427597893225450744666923755686847557633302224030355041248985813021626120010623776058450399255785310814233309427627490994174070847721976332003255656257196940105621778567405568104641820163446413430754368221983678881972772564871890791302716726365204740267715129125750892620396084548065818635326589425925230213722659353894606691921839717290531761265433110984767948032766366906751032038784222561029829963889906377830813852499987994853037737544265300510832500184539206077575985820328035169158344958763685237224156613088192431244724390430022225254427501261332530068339258401380196315367260360256934386176939022745668776070559951241204094342917360949201315697857720459573049171919984397502775360363089087830612512320468533899771148983986397798445019477568417677108543250599365483871322846507563420191701655745251673069145128440394993209219576962224805539040844647034315218843936006869989668174377068500669799005934775743732883376104427354490776924989220276827366012719972359917560671105586551183758399507743988520563263278462628639571829972376024380467774527660827173130033225129453859125901221389703432179765084616428236043438795370231565453877539971329130788315855129488670812794792277322978632597374557690927317531258548591400528741659244774959994405692588678631808270213249063810853478711643457901705069783308218155459983512755552564714860838956971432165137325924388204249925088380193679160337555451463849462530597886595142629656518787042663546142303435877016979675557543340945441983886783480329139772245752440149821083808622056673517407190446684873519797825918725904078609373207666429179026351997979783815171246830614811924021929080020578473073675795648754350778690594036431626638363066746521022254359807285574088471697825713365752702100557046506303688215987165197288973720799774567007633956958123333989986610482045441768165529963436071587767040881274862694015388416457835058559728075172643569368738611881506332063662641695970784806547692247928270856738117874553040098472269716689582733112481513651498886138437533800137243556179787795020437584651135914187101963953433176727021039132261356990231916739713510251458959457020549810404760152607212379545516725101846935194745815430060495062740461783817118829608536251862626516018644257348506872745577746129153210235011871081829229993109695801295936438378863641426872740604047017813020002836884591967201338167680487724781352064952308394005194986718980882837649915194671033933130282042830938639956668927522890965861877297340216123486143180685980923159953901013905667623964909534952369127082093837054362882040364120806337582034687335176099330460053164458945876718178883358296653038075367882152939168349434761991301647178258527068070779084174755983780597933105432844009409221476379055354404863795362014107116091241809674474674394806637097633418812525001329384320327355049500473948963069984066108948106987134026081534105063151657628944299590614676623407811716590555834339104943386067530848330018994212908957443431267194908246838226725561618267765810718469182786825658682130979753927408607746014332162250367044049792355877047062688387262133478073146306851140961476000961314625815937520807722394856383488460315326322905271728483865591488875098070709422355419402008688003784002975100132901269124957172370423630262657893050539606971000571116360891314724319668488244719197673767751722763148052898668391044083470187840986779464710110092943792382315909470100550407503629545378501150742742381003260087892779407893135310718817464802857282185763647066644573321494135062795120759936141053067656477943023003375090964173929737557964479369512320284520956291471218064783678977698001914106624006658324943085111018480575296629775560953577350986731293870216258081704712466413626748175960402624513004867319107971740019269396574888982589129783076834838461099903537384366529671271638867356154242400565030577828579082358082805347190578797679113693128650481895983739534317908434151027072188141283357194288603456185372079574683470747338366527384878054850428082973038155579346039065204721323508752473770628378005483268642335593585853762655743014791352310009956277019899449245942765893913651737263233446195829748643261178754835973923637135498482915703137649708836585147506448484356625642573677941746485632563179903741786316144344862352745642601333303704865635630170707597283144689209459900951844417169780667890894644822420600108723760906853710814962456774900859345242052615110349401889566585700386412268832535521846754059002410383738529386931024026431874881277288379458387686512793030338162120943450018217150530261686242671958543793790772301563346469685641100022095414790941653771837243069811577337232037494265460764366730873354107098799862986837129939714209748284043885723628260546916337289509350597158904281064259335032977645497016205118807680772461665623703825713738376053921770403849593913058427582648754254086244800109968772273533662264175571699634536783361542253696107894450234080014100663285316016608095649314009642591729903582447798846894054737993485470829549012887989873654315566768723648958105445971225163314995959084722978979650067635628878761835820863839979037851928238197822530238908355462484631890060228913756845597195611114723514407631956998645667546282507704085980614092346841807157222051739885043550495489948566566445984878240087244594549657577229978838445120945025941667556295927809801696045869264798102897904515944929772875870111099098871804677848911697860296861891165309905154830378700310489387808393478524365837000248356804880888950100488883311937765118828802710922736134001481214434400238211121306515361369167767987857050377805368802752101543937187850539326631858612597213030082918081713331748819339053480503921264494048339997279465538316730068671904672514888755191010930559684097103540850417989696598129602334563933373830409854258315137671865617263382257238496764860375183785632836252799564057235909235863688019282551688897688916130594980224345671483013173965767851973412798633049288125548451794685833018772564114437537739443440153777407064308464293758106095253468427202879286743984392408773713171970238069619986119713312239123551800833381720226641035828588644263301327657860442036258369760984105835711548325080255857878328910665589088425793582099632144532885623722392803828939590547972720826646079461943100808941945963685081130184924067833389549762070086199588247308670571194106504814284150244732103238825974045664442586072115974697998815340635659655420013530084106907883672035045115456749855913300207324040493051151067599103979243081175233831388823330691861037393378935493035563631693372927909245433672841118467013996903285880044341842318625282404444310631376908974185451634654145822207008275604140861356124886329101161344511454370280690622417634249289081641341463575829947197054809374384142483479377565166207499962356131454013222359065989976828880668074648369432039682870533458452611528194964684973209872675570816407305291254954256855548980661539443370017254545261682454289368265067478877073877420256904447141987335264520889809391263612845974095186576269677863490125675858280590686584173025466148392697304523833996388303670940718793585802432879182668725015332911466058559554039683889916424121159489797420839170746846978684855488039248961021642974129710904485875030472737208969846268139639862890975680103463638650981960024378355886086292414843495936485399687933357280590327023872693732434368112618456372222284727888505754418671542946169581781917227860316578197005002450325286937570959388159736868912176697816030677734728171885645019299334434486984666726078799797030742192677985186874798531279695323865365681239625410208661873295798299058901328175169077247898997371445071676660113107299983484744351054878685895046446545439724794911986219134394082642517192770319969248413379266669238767854776792212811920849135685253657671488277149363187360297820241661428777736301705808347887037536715758698076389480681878872407901041866942788373219588793139245583329750860147540048711781875766963774687973567813729302929158976131329969968751037210024411491726913535772025700390947030706398928821547339455485225439065608009018883605571696534422740902615485144686531613629010715010244322733739225332041714517404375250377375373500621879872809668979496036649328341716549250008046797316288255081368377846048482122108390700451971494450524271396811767138168303979413534519457136463614396797959546821011858298473823695441339990867326315331944539933427578594754271501937582034226590372833869416853436918347743887248877309463468405326736787852833527333591096641542232049422140400528469831360026400752314605994698500984869934730750873935308449020208421721400213955193941354083755973959168564093750759110253794541261879263019708676168372675294970746217817301334635419471650511995533831884716264680739156413194649325215937347367873781477097316286087289596429342919311664229554232151650819364627800159739364995490356495771575488089841174756310175193258177775182246120858730385174954601632957967066647002807347059391197361785242401365167099595717917996150217624304767781550743673315522803590207642728006637035006587001334718641356906892430691302787250627569980144333464403182705527058817639085066058473573193493910562421270075225958951757808580104598424122613060354033579436236093083343006999556386810691487450239718701595437214709451901202865281452922150776876454686918601968085475706292488091854626817054937047179158969759957741672839135486748553060141614099661861040217516020241759431422704169794713667525610680063796824445846289385981246589922223587413711612048956251693017169915624082989000244317750440434779407548700342198866786606548100648850024015224948268968920320440751916362676040671622421740223212608938728309083506048742272598791936887101078197982099554728531711289332741895953678646528557950911728648303338747437985504504779244800474319771599600906974749195858015073927291981217570990189518885465323428120551524052608637312039411165613517706630540542584079831320279837560076217575362538974783591616157727423018890425308001229919742723065263990433144025388566087804966004341304018808605651494445118979384170612502974298014396801305257761614465922469156620569200132170745776066787931919582614717331654000167864147410565937546049522485119962637093644555860957816556610393368323631860003257923651313842560919807770039796428583788656986297884727011300163375073048730520935903916446574226573675789150853256831278892782590927279253271808153112932365788274150181599317232231085116850957630414304258054652598089153399625924881227016180958968146375959863627249360897295986141961480248873040174053832708906922087362128132104606741483008501083177441867632773849799987779016619280697667983153092140519683890496607540416467725209410984357237326357094128733018118754098054360037075364433907446421676913287101877135928340646342016837798619475830192626972237893040949782740626545969072550577110915744829923886097484220238267115456965653990499038721230534545019558326185005759011660488151468775005101211007591588699797386064641717463944861258560654879991807187644533348061314098042774883223507733882335312311917911813857869078660231604390489407458395733684654262561202406604147775356247197311389989131921604299934607362023913636754049033282718027618683415319098939775575699137795778471323208507921098694108256241118285450257630051762119395396336111024670799418131080785340276118779774295770361657956714361131279569893517596082522644952750430460920769808693236721527872769310841952509707239712290099824000989474415557603698400349050680423082345985262227977239202916365206501157887258888721660238138762582783342718702529170374107084691351139308740547555296062705813709599008253348223520137456419175042604428609400701971930399630092863024073958135569364949109471233101307104469431609106141224726263330254412793660941143516559607915829609081525616824442918957754218051654951205889468094223697530575906936230444407249821659580952554831855661048790351146857486645915613997288381435470195472592438987416337020482932629445078049050732322364332634811306231536796498806604212581812110492714343894700433338615290389484547306674142050878220716123118097592827619540714208983839197396690996504320992177092239634961151393686778745305911749122713324211440012933061411215549306062855235536098279484332651005350744680153387101438030104339619160691962592786404840494870240707208196237676334755025076843249212436183806019095427203160464059985975383201329048131599320643182172282431266810753646972126193716930404438694504424758335834693311457436370279040868391891362223693988173271981178795813281954216235059328323611377237190359501102347315693809304446194889691139203435462407109674103693953393532707760047983045966029703051548617464088074879819185633566174278887779694112654199240464244435407296000144686857495622885535558522710720981058720606596958374075045085778764251570402260836748863910788806374982886697415341588934788017306651852420051438838752626153363400024371393651791112167921619937944727434995127901179653770351290575683194851630791009539294869589446388767769043778911801663197661429805123677238488111163832807499051119228130698068456905479902389525887523258575646215103979729783123676769669341945566670614677998529059072525732827946746371914856632352160292534860036570452936012333877902199316082976796316279905774899248303769480906834970790286506606384961897862770621351464145962350589566310528899012279482397017582235242306459208025763355061945207390817743587096249612520003994254399279104704050404631454570356112946679465428795379110398175866081177435986948373375508583389759105063962951679664689835248653111040614675864526518094475511029541379387076693411298888622770554319086789416620001492775894436727378114841046229977231669107243160748988809353695477001307297525204601958458547743196226285889598268096275145965822365593418147993522673373528468982056186828531445406275676668082461074133702523530197998569777588414476440610149518189815243624444423596465091944455737006921672011169810055987466167627279707799393129764331840327696082051470148968987372736464860149325501765569137242724016750359152792792223698978575906069242620047721845281349749106766777622141041323795441238821105783912234519396863498371778491058384382459132824859505505225679975085300646523369963176976477965961486735788850646228825836604352715233520218445731487454730556745669539040753324324876003733236909115703963524049032367731114646961108749631442674134715100828526343825360794959908855758694374173378112878510788594807671359721897074357408295634716096566007351595201173951881551980094723481950040838742088706583338399760409985297789340074451884019676183414142185262479707762961690608566842610380615679687214872740216989183484187773874885649341405591751336388500226278670711541341283889196410376534437211015430720593889876615002445549762646697846655317288581237002461992675824594457795433639541470527246057431031511078700993356816945361177564994531058718848855753302135375227861566907390472167311690783947923103739073241537304872791849136227489074879433640570096344531707970449971907943124048231799633524574158278152921429238029621456216922946290057170924228467727089850971233739792025932511372709190793330986469662292911119050045136720827071552492553783557879912488920794850795042273315977942532597961622068241229423026248547779958871402553492035233615106472161493029950819772553048408142073424713659508559884520886457082504554562697607632445927014743355129473047543931180468223529744782199388978562549253856163063576339972218174798809437034225742228607307502698772577124506931955994731140281648079158076940638799723445720217256110681289397878262558027567441282194074700127653335701963628627389889720609802379246789365512126169047168517534674416199871846727061699818340416185023958162328070587691251299480489410951748638156446534953696745043783928813196575054308454774498942952981532482414454751383590889391695416834330870153007965892872538537406692327852920933243576737798995438931129080999990285320281642670829622766474454290797984732451490674918361248369429876805092210255538486754832596980239854443222761805704009862367682596310795013494411380104456910192738255112548339712205004643199040703145012302788725693983027876953110620618110286074454025995777299293810306878733784543325081284477565886426019273652858382786886358485194921612206556262376769015501027316480091634891255048290004150168686493060441439759876281015292604998942657582010515690718051469212862423530041250655918906570647922509637317414885209925882533226399922655919194727684528258021702378702811738954098323297817057352552495709718368146328535720158191804335722309440324373956401882295969620247764047050241342180072061400406736946122869316876306075003453906367994518418620664840252435773826594558434052741159486816241668376260749253779778768653267332470683325163829432996054470404572665645125505989400535455015718628639117178530617867590630228592418959771041808346042340711140781530753518263064975320564336329722811223224742342337079946005029978337603603257915136887843083764623510070169133573177848968035754154267693606154083312568306217738559315153406740413348511339721845856138026895799489914409484729559758029660165203553204890755556843829185599968739943824639591088491736618532587323025015764895150236668867227759544182793135317932303656059130729100618769172642481843522496354431787726593505659286767344835228678005975002657522274577587119315335027043373532240002185530225604411123033087344213614244769225400084190048256133342250802839450429442080706265953157507762678107164764317325478631543959211317445323734093305350403169870471438851072928130073801300832253511440892008188408120740436953273025630037651677907974525471775984336302278459816594487744122300219318914333411931671124765042808322739277112445508881590171680497418410621445831020273246408721509209912355587251435526472750924526707275793245440689221882127314343193441967253557887180096497809174841349497382819892336667479146304222394299859017210562424577446656431823151607051041596428920265880381900126955897230229374763681071264623243139716189323986275013374357677170250928464050664525955283401772473835643398226231536332580490425019316581006615945559770320246940200451371434027997474212909985794432405515536320692943762704573781669010650390181387811079996351925072433570652254312562314291137035819459838761295998236886242870080298843072001540267674890597370464099117481815574360982939767329312123313603993667783218100770805107038954173552209284391518645036891423865175368693033638584803211695569600179614389643722776278273435474771376753358780041764924706681134544605826142012884717935453455557600448410786580401425624276151972314870626442701194077042758801616885724079458065149923938728865529568899959232830048904641186208323849541398749106448524931612940883226798619816735715285044838082434036399734605947578137988092560838010944982636331711219493186880031412275640095877686015806931097105074986386448652174791088166383101844247554649204476212933347782405065815904645931150499530114029186057748460005768598336824121453044559290063527225459218325524914689651245044661873550194612559742993177066913536217964049812438100644147739652282247090809392218216461119236870244306118388569075754390928753349606955275803336800406754768979433694974568244910889419853402837882696106206601743799115180891419651266938112522152465964322365890077389170870274796541821887779706294364028951963329139706113678072116767395840719633775985803911834825474462300971207447047960088028299746169885403375314489606919808212409375406138566140557602243826227339105838432407834537594192665998615592544080842476108586618419595869836288619003591689905835993269771244415110023940938581677667179016457914117839589190401032172768548767103187294000920414114063725449916761703221436171188019991696506479188745178606228551392882492164337838706756204008791382617180717548392539194600342736664613379051532199014434881871815967869248416126824599572167466540920385503155108667630737970791465130384019430771261874982379921393338407534724416385308485410291305258552430547773917781978295472696827705685514898683804987980385977142306294648859888577020764734016702074030978954725467786337207500952812222818893890343531967744044378481674221250187990566025772893341981591513872959526513132780625793112971038795241004422793246398494275433933291662137846518656711139961277139623020696551132796058379037964151228753572408547680625519752668845118367422202582069749204589803722382691972448154995254428802755816815137227998644423716811098490372919200444532339509605855464390845677431088028007256462892530003977969803563912623880761436750148084962904372017206900104101949199850824780129937681414937682540981685458891680638232026164326812515359817842767202147838707495091946566442071098177782127999561168485219327555994981078250981065118496486364295331810315788886990217881054915954924908145119276254651399842361372536439044738270374115198915956467036218527804778161263297071944406683466374972023804592036306329949458092693747012447131708751101805067480192620680836598544060476435230863016105184554404437650669575668556430054123323667746022651846032389213350866891543202602597452647056026113833733193291571215443591377172563075285883775363956103981905423923959741514350470164559170483654541162930178107819386197350313999302520881396161418973767222301831095257022736114989801493246496783941623968550240716015703923003757592621704430251218547000875129779269845921752144793256594602536871699553820280342286028009109403516063268904396952286121636265053595105006466399727455584193108854155737347811893226501441023411427439055622869292469858177363654719929710123265504563813845380788173737946995863127394916510280387092445537630406836491828552493285467426871153679604643131401838146580306995560251345542979028634544444268691047381227790313112210698052442173531376049980242533944899908411187788257115661879127631700252933789632960874909658790063940569271028586266431285398525133658508948308537642960986312146188273431695028441464624519307541385233629935674691074949690721188152646367577440148095423732856466068852657987069432186663361915024124678031224897978555847353096100408743699911739870541612331793322925573624255408626136530779722909603464428595007256533341279162667414368065054009727560817374522156110397036732304948008186367525726475364773971525751788574422267075008797614350951410172226702092528475428991720020716615586521714017939203270249197376669341452387436215063759709452714597133292147438275901303660398797274714262350372222516118226039582015490563011201166192564008836104200869649320535104417055586194824731837564124630979291922592733841851759730776917892578980006812548599889873838530625581524694179231142735445371379594804645965739059236678748668194638699426426982715578140556535263952735751881231789221090344272246782848042913838141124603298740186977285893307617954577597359879424483018507486640223982624270004632445857563896899253465495116556890009159553640227841118870349943525132947446653702528041099696366933576269921537144962707917052271169276259138682035225231016787006154030670444347913573491358776135933250893025835981089834495156297751766805923073171004586584493009025691798642082926860930528219977152064845403951443955443355706613754722197701846870612686481419817299887278328927749222280639942043300453612064444372977229526970226528315353147420616232260950261485300508303817458888384310144534946363826064363855873304171073221256639144598191963601667544026477436226237486348350823588636659158983009683911814978210655522805401385718985902529282743102868238417479247382279559068776986383609499322622977496053345857924853397926392852314749041538466143607442305228378451669823420923254699102075298141991242620450608991727843404155966134041622753397346770676051119901935728099783105825679461011337773350862779618040086863353773929353841268780131138263987925729308360254512888610097391528354869693410359313267729237308928562126032482997389173356996346661086447672638388374211833721579921920890758934956628937052921904191001246833243960256427677326466248565484180187286815714801109290049231351648348447508101964405423916335894259915619938096681375418702163063242765426228637604289747750634087695754908647542214381326283282798372351254677873122432395107192584652372864212224921033408869968436539290839861152981901850043002854074128253828898462353709999991068999417737475111171690071696111098791586714890914867143620303152588382763476394390842264605893527241195801781119639924171384183976490900783057707377370329075340949270831834550836169974235157323856165328503323757553446030026736071417424822727692020640727483521325094557731526587712136741731590951700210944833855009080090780615300349977308429308159380174727583920577048721923250637650386067080114926011819522436095339415318563811016193209439732516235131822534866194725748713433183263055174892942236920197773378862195684204910794568184417999827766466291187321681796746810182379101085090721044770043837182789727161953018657293645145688771114060625836947791321545228166768117762944401797027779064407690786820012704142265580936089743533620192471028604233769683804029273080602929835861916294911576247810555502603117248465070146510717871519177084590049458951816995444625401408892363029091473848027974467145206173778659702385552103505412079284669734378627766614989179544750630520613019954443043587116080710378867894501219570963997915638006277578754758734326133918110126816204213219004479274602191003163203139646629599383888730244533653940381058249276908570688543864569252422967465977989518124125736091813242367621308184194232456150695249274314845330588387772130306394227273236562119996120008602435516957042024859570592077974668378530745737565985439232889977330247578665797631254410644850121142052652725904323125095782543649957188624296100805852539825054032506038135876273302025543986084580233996947968200493787139158185432957243071120664000333367152006829804353105951643117245629587860242662263456123340511075828888798735435838731857784115216318108210968583382058988761440004405471846358513711737729227815516660907950532623846227019123311190339699583965321696179167013966844548633927705856628700257483106861539622018475492927977295371286076394006026942954461545116329835167547682855199024258530513020879210488782164831163635373581184036372671875400208144820436169789545914868371885207904675505203673048775812637469922437394934871573110452191354930352212168855173247267638112011961213698413127795695253690604260822210912734981149843735265243770728332138054558670937849315933742570140201118250418427546381894931166816317581932491724214809695081169103452660946176942648355582456281983197014013376648832504790492340735549727211741101653285645712669683779997323466215613490083807005668837000258395880523340961916789758505681178602383277792391473082582199625994969023947767579337594121445350965096551730246145566993197808815995025130933115201523151915227669400593243180808857899536511862054688997315094507170153579443348421775808920251194691327088907401632544784318227434159878770957443137695061853869289886498003587123545041605499767988493420612569581033140637583484929263754061459873927212990316293863334003500443462937752621835522455971231545555996107670771183911477027805823563111041052046262293572941857685854526575975810821117392575890392659350565237571800719961927846873050796017865247046527729706839409414536465925025255058901880395240279359657841672170828419504171647111335526277978714389010071288592945843167149144862990531427576922705552391953575919827174597238812739336844625479775890630837929104791195948269100687427423924249681292376427530521972390456526464234307182500333892757961632116072372967976926896028884119743958927913465220524063176966314034756062174198513206456607793572800563045665332098353352757525034382440900228147995540559413203575396028563744491800800637216247500768312484745465178837395770810766773856677491859649193502502113478656674029078088993122232507642801121603008468246099617158467756152070136428690908941846264885263724959171135514675694655713141007254165638004721531824684316747598402856456260172743824404916907810602372501419293858529594284888866413980640314066262739170812283943827812705784636209435267903759743890426330506597428019479316108959820315593884890051779015068518945454425318384953824721209453583306420559673133086967690717811228180525125675984175594103255104705211235145575975385355926634833770565075725869467789454861520171868221509917069544959100802986309797217329834964690737578717204623499924175930133504396830976587050386432898464691774580284350721468494939521453360667751969368960288721840131209200624196376263919963024548582558081042509305672656674585734619170255927905050715656397163052483482971978351599686753526605682352819632420998775822460555385647883105837938528676329092930803508930372995309329154397745091682146069294010375071797325506620317612429957418163269782649912526731146655997212500927800325992272314429681263290469370905931247431835832930608531236501282335314271026468869172237436498309903563912083907439529433868783538555905067410898443839544119709042236408885671913014078905247860514493101150447709668288661169843574718757484105435945064992464403535003368540367528428592079760068808793896290616531011428976340828143134099441308677442999978943481707528124083253881725800081214892182290784265014998528830095840007470124899565306284732113716483415275516330184720865118131449085497094296634465072619528274952981335137121509989625810902604517901179656652396021842409290727321770266856777024474901856227405024584428931555114902004509258325834198250517978063950084785897743172732292572361852522606358844857311249005147495067714962060618797991620006636771341345374999271716576064425431965156560260860562568044413845612261425120164463672994226915104306439547770968545575871935478861374936983411132230248325344173598756493253920732004891573871480222726330031380166776583299951637348071020108629519700710702758920286345307980200762263741377991212359427998990404834950797026892368908000537969597760068361678432393940349008714518431049556936581351630236228592166918329338947240579409504185560090338396401998574752985058298633085617890059399510379867954372033023864622903345088068549749357969843238890387014057212091564005270138680666818457935091352932509143467364733076868837969093165974025208165281040599727860936341999144538276068052282181531109292883431936271835452477454913080736497902424106475013054164061547469279174960591707885914808865898168217133827436207498470748152038674185026330951709820442790309791370723853436428777125024216502348041421798559342010272932426664128824092179968903166975956807393437051132691552909296746121656544009221150673447770190577912433444245130883514809194980067614191785324709972242749492724544728524822116618847786756308951314699820920710455594899269456121795932027412564745524158496107877394654577808454963843456616321340889190205660857152157627405004790615376322318988772300399828008411846514241500501740248472258702499582680296422279638479020772865722554643703400333468424207129343991131257953228758585997486303709158505670623792542915790994065751392575456989129095481983926575332562089031977294461723582544398351947102021857781450699296483719641566259126518874367002709884685943581174849489619709364714753867428321043783014917289762839328372530356901746995341320339972787188106695399070781690427024152259167418295101739523054717842571164463656368973779749854822606345676234261852425723289807554816461909876706287967735166250649327181614723598879741129241517026984380009466869904911101445283425698905492368360994757708285692027618659542569032372565840405382177333794702661900299255029750840548529689489208975147985042180739234522466730875238214694477752413571445661299705209442760594019977110117672333840406117417829421766120758786237659760245759292657615696426635760011900827547117273611739181274582048132750177916295937378610814240110424054418030869372060660423655213679208725315777517874413731079854496546226667646140010280529153642848738991091310451024222671807062907813547695776521824269068099892886687968108751547289537952657353785015630121319916019537391886941954621691714937245667080087218126821391037074792997530908132358317820191095425649315161108808735442477705086902071077352975835686327663965661627077867641698561042401122539733692760391456369271524478512745970459345264365974009307369113621966928299310363519543571469276598888179420400283127929279472303023176494462704181662160478810146845219140884575090048887575557473158446824030485178911421396091735540093343118170167592931657850635917309349259973158082180036185346060921213757110541740334731602995442268974157681797831795498035968366715293377001533960913743873079900311026355517037670459594914027571212962876619920310197456169869257699049093617891210249410823496258756699836990853099690368028894933684183580464773575941578267844994749523772051128709892109026912170123999308504350054382232001364477682368905074015359712757636423121214826442461847056763289103669081802274691886932101513090930985093582517376956830794215154682763737814343835558462467190727002919242625950468373606366313269499443448600136337133417218233435865492600029367970856188561456369389605196268074674797167222401475137746479685641610196539620878481804013522600903161733307416938809584348822815689473367946454908192078009315563855669351405164725928554629053828849845442047932343830082714869017017134132480604937481120045509484539487262748306368761483116937480276607645071301842829357899341553361534943312126415199657913922607956644238730422997716997450654695352062607644859640153136592179469656088214535020619952658760996875651706724740697099101619922388947259293681758650729167195855602192030592154456700458132467539884831798675562014005419466612138812970183609565745767326512729157797247096182526826075631138472742833791326956580812368227603560208712126974568437083089154119511002428191752427422045674742306871886103118745499103100975903986281228046216748266471405190867576692061406832217661916660753197518835436653893566448954783318788945898591543727896542103232865243745047327581894982402725485002692370536814167026974746385227843935174224287154170362776564650489480606094536099456127680403245270001222143092842912831969129872766914498446843473931156621860440928970122338396053736831599081145189547762848227678890051971133319927017190000860332158979764043019270366933828248024819999726350675881147387012936827430684431067666956189931996884668192986697961421180102735585702153968752297313609723394309273714515168718075933792481234786260778100392921485942767455237214915111483466333925101347254337639375973768820102614820979175375366902895932167767989235004720719035008142027850689827811266216791522954860654992524805354066103018624363657233285099667952283194923544446747773561432419599451845955478725883239015199257613491349384141842797394242560635873982005094342072719733298393280364254640767202506653422792118466201467238584273802757396776057850393116119106255298180050077352532148515688868867941507289949381078949033753027158875128909333684047284979248291667925900802561462858991772847713051585803465750828863555897016929677185214186192501067330054867236157384408960728460411981855557985429310487062094633499224095868153606171332576956701838594298511506436483343940606458918902094032720037343341206154772658153384580362427439073215288159485623612739525621070473319271139878858141770143229651851971902041024442986434792309475651033852227156858918127923615512391673914283621306687146018784583841025524671068646503737825622564732209714856329578305307445515952659276405290678562282828264882719007899646800779560610302598938582105257169019900134110525924393261531144963337016299545342362321749168369822009572952099318913921306749727932449555789088852768671244972363643582058953138509961203890269757006020684176566782616780381998593084963490052661284180339909454758692933169491183137735303617623221151823071116005953900308976872566226129525158962153410520832061343810309801755246091170871429748265986653954754518201536198872594395702169689558322852713777113540657103130165060225325083138945411358540239811218105371473108958066287090628532176528044856960069899094944377927667267860073042298332360819411087498171703384508230635721028994948258752553029514098120446452964574909589556662975707638280767694286097990684950342210738440699297676833164438101366969319935616540456078282468422869750695011018250542811179262353675514584131861018114910888789086808614912545422300544777316381744910096885795940110848772832888833568618389007390230290126888929802806222909817344464375655168814856276944005427636199457247540446144676549411637436849837995952396951568318010594822885520487872078435128111758982953281028704961556453784905465761291394228745696339946318611913678778825835968543307890537124517886992762229688851884860305441485293024257345728645050696133731313147709131322120700784745721381279714728041724129980333566969571788907985067571449252738901576234470271439992221673019997771314819436840915482192744321132037492113945608666970363384446631819686459646643981961145297956986238681273400300854334928079188865943171552426465619688086549860127150164842722271981780481560408293002497249280539480662443988294464054569368683213620779980575435192320539402743867719530682719978521935707942633813443753874064490842899759182304808318586390950375764728281734215406333435463711088797114292939677053165850732917442020264389551196725471637406737209478562994786054694907037859073579107691805246784678845408570730919085548329489609417147567158169134596429465470753100607255282320599438259605640048790450752414995149177844814888356399485186680167050707924944848087992508049306721016911639681089040563638524302420076794105725222103047011874573980049667007370951112118573052316093038558906749096003318292185407283115221217053624979493098646558989277072526534951855827084328688474931957159565678021288602481936382318323246773077386013207376752410494125832487967185947702231066006580782729297903576399067867205197832464508275756515429304372952821996211637060823866061106198262901238371039352211396737262276133870506372105910989021019659102059101071848298544974676587362849910627397775670180671974000006394851225808685039205594861979229855046389912163095733928552676312407874952955214368245544397026293424933287243903172671606139891268455866555232006340890210652304028713202026142344353979411472994168717075430637957565637066940768047732267325021762415015290826631352015149045137377022276758345987723449727270938734331649448518055511638146860798087715059397037631027010700746235528645314188706378613456844683637506748817886319660827004421386761775729130863569352442056616977100253715517489956745865341380929168392557112876883631444352433032610196673815118232642032517810665168381409449815638925937948329480734552325574053519868429468033725252338752561172807209502274404084600995060339935612130393930614709978278761600103995260144417256455137599038817575657183562677025048026327621368661313111176800844375082848789474062831227280862701346410524892088450115364435622990336173464698228309907907784783603910699473337620028947482552836534091783926284012859559502766989697871586319033085752505102224050187521506414183490426970035486287361977767083380369696684293463262676494145302857083754073836406185998493738294060906229808252435292818231949597155129986710983806819654593432811031223751305589513237677494103057370476216727746248321659531410035320606931142632117611424639357081721456924939070586106036973235703890917209969451565313792828182123944371905600480174355620839427041821367545339908118231170112218970978539017268911848341099951388185064155749679011425014775444262468380972767042579567524350799678471701055665635070310583225720196641463925367116313418105161376175476115276514322250350269306050189295143033803285785229136571025603505479806182855691562072943771487393398542069811697526107271678489387733990530526850139986425601962449469861837624322917940329008604226554129331954555510072109593460272931380550352317157917592182574936219963659942737786678281672803489650560782271342062642946180763244612784715559403799077960588353075979913260524489409930546587240411789306438610354539722910090982773493621197593729207129031949417849102504176039249166593192648968294494566125762588098462472630561739250060475130326927264230553645468883636629389897265563962817764667635370024277099248388859159238243090337220814510996235582248698940010662545253531532531144175899512442811055577625072157042858132788418384972322456681831290177059638249042678245419819631243765875027251039097077949842828158534653951227836052669999341522552395904553693124334133894185154200273060196858970909805466781789788525168255266515746511043983485922887404832274724522053047089621294829553048451796133472128716063250015476998200072184819745772323949889634469120712552112969622470807888761834583295137497610906562578049254968890088436723434793137159058616784968103587936906958953338232840142064733937801155425462650013481387404354988176729628388235244452894500910311996185387308843961950602171649275437656755055463329388516747769384964061867612287010880566608977647227452987028063986434596102919497684029567495283249192477997160380988335877144591333591898102412246641271983165864939593398132831848806486531990518816283092980435833553503702157305768951772142031448695228677751058926433553233638776354747681890831116601061643617601230388230686632087529418275965565002462793520373753033094333012540203662110144802371556476474357868255587121712683143421424790040356663866666583733098967230481275457843475257528160883734412887626228733249999189686613536935570563868935667613604072137525945031127058717840421521524047257634837162996865653046322478116741311312340806682254922985499542454224443543972248563959857784980318003448798885681598625618648057008000484068139511790900942138254198088755693714873198375040314170287009763489690882732599472019945747880446660545250777584187817945773807882782167031719281232019247709509304383738463294114746061810638453025994785713794988535616770096710973024982193219928541561726817967575977440934150066990069868451006556736027150855564045599288869826842575266644231951689128515012363472142206290450448068793127797524443378913806943138862130624035227384622012519884120470568628923835949432629108578495513911788761292692837097036348123470747251183714419451674995780121905129393674654830338391193322235899258111511633563288439787383042629852353374963736615719565369866986353352938542524558163584576727693982175276935120574464984432870826815791860157089467085405387398491131128409512146550427026742219308219404529474466930187528528164921060325807994674895504136849689532845279297418612465083629482723528356666404187759681724535937718672083230125254191426963348715859831926657863043066166649005838985621533371585420301286459934526199313670630778480647724887459360379424487082374738680532033076656067275653204962065804016501874631501486773710499735688452927457770917709673328218255572100772636736262269925551108083848243183324367553396335063103310866030659667150744269508807933461208320998043175494268135051175589527863013666115882783935015891927837707262549495897866997095648498401674248716103636300724072946972311458361302269272475720620561255805987194351827725786506725211684809409678156587834023389209748677459522591800773653023983475920254532169386440134891376961345380917321163422387809410656164957228719839005187302593633866723267286972598399232092707600309012611038947696259809860808562411929971003326442505760280612405225397222355598107000665319261981199671409351097389542927410027564894712051473327175831686572163193650808693461863805907169377935597224444246630895525196188062995805408031307966403565436111355223020861616675399035615186567010873590771148790223145957161579638447863707241682535871308815515444149821555018735913948749057274405078463464114896118844017472748581115149694261976298353735270483411688439827877101200497528322779248635181625267163507046263057987807881221337661566534239717761462450547939852730300763543446101206984099670949645167571474226883273306351902730449087126740692609950589669053466291235134963613594032702332526162857064225571176461956221898931178189117596498805290855722258990527814668619696312735488481081610335118923874740384218289770209117042835045201429744537777643127818423583285336581666449807443346487141061606610743205585432383850992266894887596846219933057580650358025486065305388728057011592493690136533911760798825663376130960609003053173092100408439321764051363494608797015754475321515951234418935708329877144883818176268555303648074203245659807298044859177231298098397604992991126402174608253083211498029804406120172260221389161321322463376377502054545078610670468317788699157188976103291803521159643464778062569394261316920807580667146652462394112847815098528350943616495449146952247805099369329347002449556719829728437294551230195213190650817432430917985942761484069078559322145279397827992135259627018342659438362785280260621046361336202010516269304934418553747030057571583228335839602360070779377279296353155497747025434025632261312001837717526128216623175424850176604014970193748993536725169510315807959590964975825626322666117028492938128560810296616121814170123533249141922619127591435426564130413198348015808201725528133285942943181970077336441580492250050114568316785247030564007897944155879207325790093227532174644564889037572277647514607784430843198525159870067421375356500290014561202092730981240018979862995875702137073924520557854831612486699577975879173557891680279859221782842175343688314166773391558145702510296746620011432973866953509522367508379364176886698505124081916779442564563326168888309248596751010831728788169661749007849653370662468193831166953617573559162631036578231298295243604118214741293075560114981900434903391897991836845874308010336672729766218882183972213014984006872079470367086932567876704334388031917992411419729963630808258770465109462064470754827036207788864802904704994217939613897640153973877254176146123587327378254298873991063336081292620234463048037610811460890416941709557977899871363375123365833971391895893946948500730269064508631418053148721487988117237667745879955126354318483725129601091321478109502195150084894840163122719589765100513050518931383624262016369009164192496160856990582764513441404182212190890937264120000287008372255720634774814736568062570020290803546772720268999292084347124891973121876494023914436314056433498223843976286615225018055235233465065724281583944122624694691885761726568120119932947226546459868173793994080180696296070197404286304036301545656674111676621730582495158153098533653738268701486796278389551399055631597520046113602325786514750759819765282186970121425884360168422545297999569261859708945095743394070042064805369118754276727023094333556847592357908980952208602831842416501487092193691641301705764883398794420830114549003912406736699844605316919684667233143284399839476254732839784568273446668731752526254701093388444741009329833915400452148039643831508261901247043049133682685528913577180450475554260697158357399582733263913528915348824879116637767261221645184299507226225211478858053341992271513063699066164703462890746751807923998916415586777375532090084394416929135394881255312439176873968683540767143539928300202992676689866407563341814620776899421037053552239176996528581358098620512513089969260280241315112163721055477029196438779765554148947563183462698625111471056691969420527548248448228802777596889490687113038814460718069650303566003910303019373087195461351080592333083348951245192915255735311556134481828553038222068526281028360760366399658424498280671303865514577415662566082660993162742205509541181497175898816430886511221472126961860205252032039927360368970011675737976392967548110330376075093877273584611087146118048691788471896955451691840768666557674314363688911034362116801543316945628479264071909276862069444234861063624121632595868814773417012212843567544844609239686948875783471823576426672261409054098897775326271627076171587848871799747569010023794356392414409587912077907169085662434559808035113347611328695267344545850719613532809616440240144598235128638323358987286895040258638443077577893066156399372858106918519966916547146475897378775644076406494520638595326422520643774959913763295485730168531195426900779591960364639190005409233342149787551147925873448832583687015686584511523905657016174585262800147030005574609514276157686050385043529931030489378896439980412129413115912713781870419325216316841499951489588231525949384618752382524859561238284645596107322353881657199679971156992482098317969501820043329943074005958601433560373375659431158903561181883058074545699364715914511610041082770316140618968034731422576484697760365201899214100217158462828233460398954616407714104631944904896561727271951312491497433321438398818689769037888016052071671956702934543337668831520155684668104722790256026931796690352673311191756795384906896709243380784295068451881061129387404616178498313223544560955821635397719017485839510559623286916249118023947096844874753318130678574915938648836112197934641623383324286273935673980217668837081859762274720941236930548639000224627513843891608624531137224339546147031699526613659904556929774715099596810256644842017171552942716094585706366197462456396827521696535869428329198439489960230133672672360901535129571490052136773378226120412709217400865712125686548279114113804294500493917214967628998495537748903467658762812478148769051293767231262970771327943359553743551783202030339416258117603321964777720911054198386037879794787996375670933719802416584954076701126211073353701667135786841558905205583149974591044834825861326894312576992534637472155238772113894206107974079104567605427097960613450878400214904391697428921350262825474274789497422641235618741849844310671646371267899041163792959839308473367284573115067688630752932617330485258890982646173673238281660142164405105234764944386192092765518408605982813730416916327636085006032213630366525145853419667660536983923754075819051975220798927776542985268812424743091290910284507554739980617915093535788189378368793608481810147245618386396842289458172844307953931724831179293638568622753642946698977287500110718661072585887989178101901701334353223336350672453553830213982555166386867698253957965681959493644760039900953986687881448275682788973435370592165033765400212577379437453433855756081881192212843311229312335264838004037541210231371612587480281359791514686924852984316876193986972823691275830253647362807118735089228574670687491565765016207144665995732238612660287826974741851214002975938027554049129662759021906225891041073359676767499138859630736693977139726050916159335126299770011594263262525686097448885624810786042938380422668106468514809923247558022063394878231153828067302583522055630429089779986440341651655911518662704091582121044589922930517314892791297029123568428959299143035315673461199295067504197317270668682232155592294614184068300653348332810298298629760062404479039417443418518381466846567051087354858783315515105201718664291359654410888036129897759087299289069494521471394025567753295012734981390729987907391591249534006115510363082196488635691731313418725615777823716998591616900167218715504095696420733447139433937584047651958793955714877940772469571137607270860853482155061027446136504312102317161793907539779791284608269097311508504063543910056669499544638303928036465508905721402308633293736837218508076753743932170763056925520070866340914298043864938539798812142022831589022504904483340122857628400692189566202075530584363763855154956859031288141877056014209783760222743037250408693859997622079353311626808896588799726317769697884166236040922925624764695733641112593887611925501774794665465405078666390007789698306174657167364420497841763144407418702025949181300084664195701998288073289292750819426931509279423088244471454223835515378033804052886583612448085410834737509385044306399804557351801372488652639554253573528291214921721971112694604342060406746790961350450019771138005491536968777829492646480792914615178581662573555090626779874919516580786729028931757334561089559270824321537589679599532162969468412431356693348636388766019869846046882953393275504035567813751408105952961345651580672182053480282604410821896606784467176428035090078509717912580314109475920473893175981563461099923141261931101871299418502368760911111842723357473541269071422015141600942248126187887079536883819896715648713653947274294883589201654084214969120375173282684180649767442000842844787954529289356769670739481360437750718343248802616913824063105791004110970589394386906107046145133979170750847306185728593274186550171492578985394191212832532320892229544975158752108415421536793133314339415427166449195115534463988391727483730950092755644779165870635786034269641300341065673650549578512322900878365544052027133895768549068256285450421311850435381742315698651378343126798951606690630069746872803777758839709000734398750661193117817885560123696833880204613264541103639507007808093744685789696916631999117922390530169193588359514851474975416437658404066461788321023580718944318374898062754821238216024302568128340988888735396147775694480116236818595959639879413184725329499503511736373972972364537317890211442044724253250392994220842442684006169406963023890958402446977065297165684857377434931595600330309162478716574121239444233937055203289654461668424042421937910578591997262203814644957664344396300978473717688085562409872159872034114589325669826964713920174765526955160333268776989428626516042727303446097608343666422550136433784476590649563385379836262377686158816435846958215008698035330955063411154612039561186190716582616130156764435742258167769686853549319633371560257126892651723855260331004772997878750214143172071504247047297860494962158153477115708181069929144547689901333143442565833371903529915793951015148158841223851801756492774905288465219299650144440146255966952714283834793758226056192736682186064089200445673550764912088990750071410853119486835671603611006417555735447898151423858762841311398167084714434920476475915645288916444661482553504901472002930584746757063264427437224879220228568881699088207831717782399849594389578492788354468165617348593337645468362213240968274634006774413235876248279255755799893885129310121792273477208290063177936369583104788300846306638852693724376140466162743629599369804928406687782663047786129250175120852824076616520854217447982146265289941957867909484216015077682960897252981460271712882674923186624988438865358201722115962507220008980178830114916468971909238528864261076942730916387054598021776324320290127688555269540624849613217242206160900639871891849234209259952772677484027793599216733023595549372136530112059818273783293932029444623901442863023820566921221875148450120235979852942567320390363886357368761592202548496985813222376735134134404203015693713320469916103668727503841682426883135294373042533905987089764703174517458632850856339640523235485680066007279790213328925045065026908449427887481225225038442791372786456846326230343270154706272516336638525302822302731160931435137490653810238857542632869528271088983212431402704738396787258118498054137323191650964408339472456749589260797790665094591467812502036850686033485773946609972499265629360049038851945086789695459748811461614193212646021184254910851664275331703983172063257541562815253468801379900723708784367935925934098196569587339269245738844447832657137205586815942881919286930557881982172132946897456466134016895358796425417164533229505431095701549340227628950332735391669146324702146181768144532714115479601387229758381789349792230608111178340857050827638271443532190309689652771839313200492164361004116787573495182512653180847361282905496909597041685599184946641911632237534391732286781277932267315026330636565659351120223437342856562041498696914015096372087345456701364848383382558066780195161346780035281698292018874618558471469928888275580995483234910168334401586436712493006858923843763327719872596814099514864857406952706034140042528381883214805402580855600073434695706290803789109802279330384840542940645938986292608463498536782419684862816366349821530691538730092943649986273206813386555699524773563184425437433939521142947537810958693790513539340805986792557590499944457123693485386477585442432435794801721853592006075928291198768768380784122477013719751663667802722787577072610556111696348275141614426564086778817210548819114637479352897646789628342143579658688874809871363853517831385895311003015486375963148162458611267676193861973961271635635409452408343105948250419691514378575651663164835235437269779518051357947414325977223148132596898435005026514740851495123762505322520207224203970983027154447580119199863234834164129183916454850236552116987245801312849825793384425667190119648683686435816728159495597817160482747795205423551461501723996342790423388485815222991896022148104836602390583407745614702863651481256935736354629774244703476021149959575933034331657278258927419977687245110369566246796375847344773287281237811744177795637643326975634675561938225488314656630187659515912103745468433758787867348223891420751835771403395866790905768225457661336862129737953258873942277886474871739895595164103118802109851415690785006463798098238814945624021293837916131634467937786174439448907022549151382918610732796339743681900617426408667829813237985882434923101485425581173103475776708728533808275202092980166166818385125273167651904988016112036296510705983557937017195566524945513933624799322224835069699813852646970469986882481847494920512780861590789741933590036544141257513474196978027945839999012540104478071155142154162694187078086031876373009099613182319795819827683312190188117389631946576983409090224171179381410485639914310166278235927378956760668794522000172096041215687762204212213715991361909600942752414985846660111681788738317034126301455330991052648757667844565423459222951634187337632795930708675009535277327942405409136606391336077679818884581217896086143929611089956430239942841550546030715379972997404197209020254289398853839834770120066452099573058681655767277420137179295883320062475813310993252627288780921546602558956572895365621457986126330820318947811373634759367284166056222614417915324261150123984728491102987296901542142618144128696440218690161167512093698685151643982352486540488624330410410619587014182763852454276547193433006218828493741698801916850180510606676380653626607909473846861465622235646026730146679485154129590442249317762989066012150108734739858613334793836743618895002672275732330641470467287121370817502930867973106620445330327964942220842750461647844707509574398100453860704919054074647092539150435325931554558968134619416813601134577461518485320151821782733537390496890028597701535965813068978537262747235256153785595651058423865752502478517188831455341825711005545440200884177051153879267850487062890161378983070299832709517872097984050496781542160247128736091735962969582890017842088187685878298906914732976790109472377190457581651148352434789407798133792510265386471826342569811124540810777444502067662549496049788486426408688139205712623121370871244988684732949078077542166711431334325628589506011025247897006947262869533001847580300773619288442285610599461720433620347639579100668706766289015024715133541385625974618146091561473922111259189386657785990214958285528146352546114350169085790397725729920436851961415707800140152609687721266070023119208281419914203041915376565280377591878354048968763215050627697769506978034126721875385351343095825248052470644801277466211100598667141212013289646149483260779498333669953663608336645860059198788452447068159181700003793571513950308413241561210704480527535768216067683505204234251522615240177552359007184475128669166855267158560696857677814075656925397844940964619675483834913688450908148907611286234886490840501128754327064265808683569849766626102537114400302660106634516128876486856237159246116099026716079615468770966580343387708212398883807059782244769007837397348086509555135447456701663349401256230255936075622120266484467146181368870958309743303209357294866520811850981639987699692032123999643609427524083506826058572195312693754337457868065807825584316406289079736453480833702803651454065610548931080025553635699908639794606771300695095814561195009731560096564393070709637429705422598121321106239373709904075082731513461774731008896568384888792473778400405081937057379889011950362439012087422202943173243522928631953034159242497618490211638098634465057104179152104315748576453520170447751582764076076167974525906950523964230792969409917412378222023233682144125313409039037561186082851564741374967976536517478580809010588387585734763011678919394669036974810286497449086096367434438417224587649122767331307452721881973542528051692653539304365040497694697134265745370342597253157392086842566272733240314835031207934552374729475248057953787106876608013917244368291919301080304574429696429932668027027339684892871844851934059195966636701807922910417956284121816012264320484952524216960596795766157039547712909151422842017786488038127177290181903223281343496959652910530133399793408153782810895210922073700386011190604107350630930783448533860155831164213800173529963297929912270757141098844110958356327528118277918747833721705929445189227570050646676132827605850469525754695524889419005488878311117559698928147237899572850844433315653182859714187808354516079224521548601969009493930676058303542892066653758282140852205238593595244324059310065250019697993584926017737401373992362844230351865079680908499971233149914596818243199582804634977960744464870535051279240876374493439994949609243356349159923403949471156220796565603351963147307891860102210193938072166748819807612885924772133969287275076983512721251090694503900294092991123207396004438092192866282234333225803489737051268787547602954666155464664533969426124511960563452293456076242447603181179085406817031754803333201218326008990983336556763827448269754803669315913545351021820317241647868030920111740144305574914781230520123756844080081118651667991278618465742859190268067540705547814465121115644466788206026788821150263423103284139636067535412069489564795624044831274434680572164014957419716143159984053618656202242466515097797195127157361296786334924752963451732630733103309473799882812730236945923831113903670266702650869662435437817179634411507378219303596633026311952821146067189529467532123872936985020591566471065509555568063216621020417342854282933902548568344244534263496913208863487396870726303868361223666273443408691160906073401064970328971795430333270008603841347805745511134749498645661514373031379678254534149880120927922421020663023775984635104636190039404363104937405600859640470128725267524301219097955682278893800876102318195984024724591776935885624137258330020031689108785443849769517043787373541610988224613265526242455550473795659531389381465776053215547317587432105611192093089443061939854696182291016371585748587605263416668399545044094973056342608094960934665102218833770280514674790213410229859854350614133671420274378957151460507506874163548141911429077130199486505727217481118167235759063592134811878839806324828030244576030930179256101214672171625439600511487287815779542991388552558340468278636442613053746888872699582770613752680209135950097428867622169804434517567423538969440392765468300445353062538065874170122468524875148527382146579317707922920034746737245004764818624529217171798829776418812086295843359309914421133751667444359392770338599341157391421558739025822132376651020519630516162119262712315806390085986122715953527303647917542354237565200969834118063448266375715035254772990810839815229969186420659958374780472161737452947911963406774748668616467265678412951356028635622262444414103531181311687000683703058747501421767781893918147221821079459877243496569331582707014675383143043329314916542993506016338252917159740778681502000570942948386397174068943768198445790654731664195535333505458183893853258863301278841854966366056392394958309352900915151991282949558440837759394504539266349787203607144562315733520568518292264612695230899459321470811888714422034885598874791033168231984171595265208364577987793954116525867601757113157098142834657986408042894893306059099200818290287521659537166254804508791167999562711595632283284931669291773822438127697632672083866236686382317938186189805102203654917084164680564908086128194811389970449972422620644965341355781558946033091841985506363421966142700771961976848992258763381734649936857607520700700176320521697368570097967334030742270532684880921276730505590139353787627360751879519251955044806108190492541222650733220662520381282367329503734225819027164681163781344178705301060072804942007107863109265558344049758383619928932928364157576828407432711920971025012812389783023859202586544284545835710468376373456501214743549102144745544795060366006376873833431228704106387314480352010059525763910369067391636401728230596183000831229858611407025591732270255985405817184846779274467453013696776688024152807794628723956943366402797052979013939286540598962236599538148669789966568216611231118806387952632528861831389811038032521996809722328548323581085225310531792525880714598435132681296822979135931799002194355322358134268703711265056495942752157480087296394639732869053768781538632227714747193626227289470387375497188353439139048871026181958269989733354022053401449569775418285784747818891952236027838200248501506255161331857750177880312404040111492636914284978039084937822903352990939675797477892037104058337027898025330228166911141337897402304130708325836326301005599748039217605863180870708278534540564605017697752296790528611140229036205028023669726583348535132939954670720301279951008319642148090495655065905577791442283019368912206165631704961255882459969225156416748000522603539573215967759563544012619749974337789849078674412888151757133206688066358302915819029768861049083244904669772074126559363766572751142198300655204520885610638907376779797493453770306790179317113553671081927887820285510727761857706311351235634190071828379770998515354441684848248718409630037156746370784235593781308291302553526947412598913966650348288529212974647528825770874443590757712694957597028547039751948665502439935617583369443465579495735207923249838730257172899299230736230844225281393354664774824563482233510564706079796763772954559428837456886732961580239208993677646587375937842812240074108501636437369085921983977857353377744838847217117234722199984627894950304482739467729769118062631502133867945623656357747543219977754586369332016451520116516912432661630788217609048862903498606594751931939949250490236839532967333440839363907209595601099497203631715297631599997011696596537059469473303915286324198051496322224905004861649382855728654368436923530158222724377637308691476737773808926832051292230256413504198584176696926598805305189887900256049948750809722941678686672355840381944940225741819708796809325745954337300089896638928157705348741031498718769574192079287167791827732147394773620149772975839570070274323889091889013937787952344461326869218058665560339596576279059383600224662511407243980939747849992051269175481027110398242609329492463066174069842339790380896238902982800964967667395218098531239964295000377323323339393221201023650522339491460576139577450341219943137222419159475662400518545903075836286929568622063064960303799304848589833626338588381497996747131805683021060277965105474470588819674783727470681914867337766285870334638650284744439796071155223128869177643128061657826520822023391717238458599951146917669712104059660021005601115857017563869427888718954654130605275528308505383169500265895821955874180848964130067257201191077754056625217656841327168566146893943310256192381059095335809476966077357206495246089558602670153990378274584293394795526442455898664089376890730603802429625169700468878838699559412916312573130642931368574170966325500340708927361553644296066349858273930636929342037025990479271351146555613935671219520221472844749762555886157706895279412819652380670103241943670846036451841683873507762606382817059009341630592805319529799427312499001864856905625857309229941901497642254650569255990719231954369584934306061660828952132244202514782581172248555225367073075099917140892074946981351824636757346618678336739548316429816613375499277358298527103232137335024587788828313303162148169343276124061770594945185518664646227427370179159788826891950114367747253985484504095739449717319593223458982353065699165710416257422315540482014349748556886598769089190884957975058513217421333239424552464510704288147631539740185546860673059501001806542607229785333463727877428361158424385888434985307298038609161222320371757756338956625457488759984913571230851507651726081530145176865556004955801613206721482892996565568448901515295892223111232474184278047752052357807201002734570290069172594675413169018954153474842717570854761713886738304327667269441114003623459912944147217218374396639945725483011952095496560714001059431582050732166875499504862056984100673635071850091622872699899125736945829400820118735604894687682033018305450433313269413049504076978614975845850970844002517403197212091040615454943186160893407537079195849888991448307065091713412621365751041974575854752530990926165674977426420041850736037561702060530414556841415853522390872408800789243603648251389513301632586923372641298984305121798101608972788343174236967746512978292901549410275021280026846053153956516229196358585965945505277933843632039657118154278959314308270541265789543368367953966130395262998727350941108025840443845687268928462566589850577219121904739732413373777341315085221630218810991447469839670919968928763805174980657022156950560304786207835720391546648424110010078860009777802963817546730417563383262599259356011895247605194966965940337847816951533333315841862095267339187834961474411666979433805006788104047407284908273094048775737169993482682145996212302948527750781422665281266203260656884603206200835768857613958552758339858837834548016928542086928545546743730837292244028876626745278805171802823828893661064853173941095228815786102710534035270368348839166871939499946037834601399415220969574449809650138016429429062707406045709315092337566530492543871509654461145253720899674694572372020111869655906491949459620508290695912644538302999252646686222667198567707917890843794572627755019231265343213491873339422791237873993413562106272595076856936358326581586671204689707606626795389802535296343754639035118494929861746700466524863237114426228173638976840921003661113114149902379495634357999465218703971637243685349305499214087509957331582862393277015435753227619742718010338231307443413427491697917158158994103261342284159909530631680966679012402131058992209924661018666103773097740573070225655559055823261902258010185932361384832602734117094441060476417848618694943252702602899436199315059143287521956569843515784103470522364639451809734680939573288922931655439291940833973335856461404327827598648741166270506915980424232570822981059770066498048755671993558256437555943204142790482849258835487447737163891067735721822979139151396645613114480493413063899859793737351773548999512832346386326727859182946263649205523590227804754875841480228231170607238391494278775518245860881872160452791335939021018083180015801266376493679490121536125074366613732172708705338530779489254510551626228078420788591701154747819219044430438505747386477544279673202318841586216438528257192094453304586662143957450384369496596680797061444959864623605977177560876039295299406271574987666385818590052312262051669690774055832230216411095450939418099702868076721740028101538762999333067069747146546387674446660465130192760010528076196998830670816553758824768259361264776975106913620728998661701484819351696646978078835372695520556444149825667127571268358722043209550284003065140420283130495498615713804072590714161861334959732561961288925495811262466014596897796294173031816918776522864462248589956064765723105780734990891312162962662721099820760695896918591011484105934798465784782876983401180084383975045217990779989202798568796376367708150925383719793127422648017947716949931620228785336932593477808168323443606636432983953302204406939781359536374609186364283045856053125674604805745578565529635431323356445231070417138699702514006824141120013254590296510176786260969634514631615951484453168948038181267841814734606031490176189328600238800740139167039389749628096048731261289811111926379277052891087876894995783513701416915912096315834649881985243587626291937928514904929038600911600711798537906317445351470397122146608551015711434258710317757417730959584762847406286296311384334694202402402368288673143940323284192475934501293053283729635767191417616043827629712269474119077142520387480864688356410176575358883150208528274506065538334762746387285586703171474881679175782018858349879194941187764881418245044069667437481454716396902486219122704533740498776641367641959457831813803734725137580898014062150354591584572464849587357349413881634817080942331407013323341086246519326553116682661327584168238774696008535636158697170587282630002752439357383845115188774940290686602876563450499727628216021357572064287990277005820180204152632206410590723192967195253509006289153947496167969627668526126947446190720683045524514105789012592346802434279109883978111913403249903984365269538287795939294747216090367416124317851077433132842819447424664380565294181433150207582595189358733633113877803462881728198569413987678881032609434631722559808969765271927999785589395996521990463820668599543563697896762632877961961345626202695183925539480201595779746184126821616373228869864190918067355752377225349891389273567308667169929762424083242523546596883034385838269945370998619549057229448204577701920368750684002311038530570979758364194070384890065992792613025975607721124584274396337924053416802785556744973338461858580146982117566940779001693404529456102733703418169725596377378538386426286266467419977854502187142068520672464581461347079700527980271893285730662043741789750832388054229416356113659175052275460038687018208090335173461727102540524997460826164917287657419936295734853026584629943188121748447553413252621338929921633760866768083781958754746111967187783282474668699381172426578239703506698668401693235715030292794233946492230437659351634401464322186806662494107108892744226933936902554335362460214752495734846145140419773203145766603038509550731808653504616309357629693281248345048207189701604755422376700693571871832795202317876667363776870631521179682678862511759043232144568322220598023928173750628157759603056808154357034257135383349422570114345953724910647267507512892536480285776374691781971583085066237263966911358003772468162518824670261992492579691493352264375451027845671432456446854689279377078645703812780397022963619744085286588966901560188921312697676304158561485310592817604248389629302666202511890786514985604853615379967856940323898341589144221881781578255024250631628871761169912923983126470553838929828260116098442704940066603575023162876811443928558480257893531982621859318843419362484391367915817647190286555972583279864399678515953512948307382631124758109207054645827106404372858847487718523975882693652564240668628353428107831694633714042909893825833185096839805252926283736327494606531746154320130165968377266308820243467815107514314638377298300276993789809844077910094539155942262511018095053986530314421365490456934238900032025672578240605199267547304669557350476720882970838376345970695725955293783888644107627597556735781905226763503371211913864129302221274351194721317625947730721836104932915440360763100765609733413326395576494209000304001797092470046784545364952553253944530799844467408235143973908107322709047275661252173803405655452017311355701776957222515596563293589786705878103207837039775264853082797434203967066168847706687193182324549194726444983366855781652855611378862474674164416448446245538203865454542567398039218463309943748416538000603255421999143138817727000683496006250377318245004540907248278195326155001130891041300401758979785889379158824413272426349656343760803493083024155105875153652254543806664460590250335935840289879567833773540016985318138578499025639340693416110909899402439626277994595478720673000845791568956264098045968561035117974682334226883662685505244423540648030882067439051952718119529365995836226129294411688235819793535221388781679937552264253707294505585844224659209845908811367895326452125423963409831086528805892009366991531767651238583524331827265848597488689182690502934948262331357817107144162497227023260615887705092660441722330904121926656684638989395824057768035662677895904285237260399799336465395508738573152773289925345340104310613939663293936829159703194014401824875903497681265420898398706623854427996588356252779748657254197558178625912637230533367373894987261078195636586956299421180072513030915672383067930194903381579895250545276258829290303988517701732478710762276828858872677607817377252803922981680545005869605692970819624271974657512805208035257028341061440761509696211861617339110506083684284295298197779968396359371006557184768412633997445911705048392448232999128799484172885758465020041021544169541308234298544154045677940594406548298238092727091535538636912196509428044656172487907577214121908242771542286231011454215852982247315638608789797981742423494166364476575612713011094905723886185941316152064607178561320068945560681024128285781107885833071915728287496517638695921341669509996092378782180273927601584802386045933594961359108261377620139493186362045961083888503551584420759985257541290831410683841440206678364925685412437075573782105248384810768414756818970853284970592177033818423784900996108373934493936144369128185024662239364675117523719170889887588016879358373902247921793387038410017041029292526738113321395544958096065109812136555514893018939717885149961218263110919199202108992068254563027080702065089388655067153342443539862799081568674716326569411055358676487384911280165828013073467136704844638507194507292382666943395681468127312691035406413594356457756356642211332447426589868195987587884432474207323399035805347727326136450193678620278069913504591084769027835633137875743228792864404129652760827078205252891979725688807350539979161203696202737018274595330157444601385187160518593439095251498832473653709399981258749689333765872399433938980545584136008586261404461106602735721725684032280483548011143615068014022938824976631476845507045844832802568694152326677013890688542365653931175183652900335261599298016166442872498186469871732501446313496180058330518354031473654476643608319586087629008801383460393667452498422226876240442980676166100166971131667875173759713347819280184357695504239211073764745459002480227985895774736204357153248535633070062729068332141126823101517214525088433672649344565464485994459532309038698698541118862668301844868124750511404477288701234098623005506368077069315065521944800345475705009302829130311430776497469968907354695506918114366440195677118939907986472286751268487478126768814820865506497347822772974036156594102066232681980017245437920275145271053233131137639206903434338262299028545378602561288283434246412570619148765237489699170202368477204686426493207313693490098380773675479105676427134180495775153542883122739544612110956766653726035054979823565191052566837438823426526580166115152095116305630038750209947833409598791480983160819138693060767794290873962967719763452074492159220822408168193518359170119911388223368996431060226859381486061702039254839617471798720298204702122337852712318081646548462470800089747053971064439603722926790628628723233443079554572187112680220620992866243454187837618149782719926364975055670244680161622371510432274862886559095064873742444188349620501213469209721697437885032467755373789250805487315718417490690480584803761094080393297569700857867335098436495147404605811994736003636996667027064078903446921439696451021318105740121143280085635500791743414372605280942806831394614699031088484768920671446872381877431281231605892708530556409656053194514980706240994363983639622844847610412436993977668798680375754897325290466941043246171058975163595116965498626486800633794021554427823911361663107052706602097310205837868276458344512365224631748059330636419977600405211785064435184512674684337026457137527943840692214528234680712783071195126462172805115460102369998091857716265643609952974005082488258661665029765102274667579118659358222214721100789747743388565107119232710436938921460254961463544255072798916229221465476842505845032771084947898679796632684714190081538796912309011741015148457440426918956350972727000824312042733522399514779728531123430637715640799785107830760791966574287961528768147022156781419871468819503884110748889848147553985239506025799524098252996765694891257527371753551980148475574484315893581034125325667858772157405361690297843539345907381378512241376777547164019539305379939321346814834745127830792055016828395873412893538507213919456294603995654656670833608196881483579050046756947815343124945222496844459485495020987752853590812352492414353086836600482431600274651669737967603599481468085674277989236311274585515617342637039577245197557608719779547417556035682968300380100411067560511960415460039932245500250858157212294029499936919071548370039611452401519133187975616754422314484539420005499716277947652704231745031213030956800347397097332824908094439173019363944720869308407774614505692143964533724213789518971926764589261049698929475024260664140480878645258505042997578515963396259885417758492870295666192127926226870975001447912397289592725814849973260686050345658805158480944409758649031175952154618599260898074261726598340093293103830950350140001559771231516268115876295026283389894905495750652253384772215090912626692767256157453785039883838119977737724208944408205029309095365876322097572251930886045245821399134244326991727712663175384043736440231345151686102334579372082127661503900976888572332182447412476122337737778925398214095962873639149284740257822745905845090106810196145129666164790295285785063205740090907766283270729730149527463494403852054520484471234764148765831736107738169018669679730347254317193317028626262791141310821503539778467793152557851423815807471704976208176398323156977022894761510244106692546908484953599737270725195942495741040175314491120339732320086407665183989611903428151329444948336267418356345437030972622273213151896429871427413139974605772669501268590742585824421434959933927457298200037357134016265697429724991282704531462257674340177782404798190784477165711504568581534601261451141711210708448129080120089052330158950869819477043670961595258167490887602257994667639875314081890930482765129785035129499473568985100973233199258134503474725295120752378570389115550173046399926311809137234122416517499768782896061881857402704045922094779269110862774932190824702734330001816223942633205664470438623179479909767682145812077255542722469626789373155153750869265645636247650861815046571897907242533194187217602182826812695329297614156371217803534206149642876743789687992381915302275068843096616514536421694253721717976466099385363060901723579489936785516776690423918733801728942352214994809316139335377900572553012992377829542684217136802270535601061647023791855212421949284301323434240338087727377577526458497208891404769656257313770698103706942296671605889189838344541539099200382972153414464151966066130099355655412071576917422793695420781877076030861342137100341255958758761185315261598365230840832955854374757304097386232837924544788461510100181119524716795815331469537215069384550236565120142350217545923516804176910947864485611636971354847107679936902506440922789221091964311885498453840269056598973017654137595055952927113657279864273261352183981450769561278029400748805645188022725348168193741121865575201483153746239744118332498566394585431270209759759745007259235883655514263011825951869678126444301078826040604066126763110431456500572515191110325268003025542622905458391717253087005597783691172745540328083943283241653574246133473609497684634574676741250008040183141094748535968561098594507164670393839267419115847952205759250673914748707053292625313309401934986698216523064049366450054425064376586889880276068571661817834784582621813288474348434110155600361947364962633219654447222079301993350965325854575703425134209707360082299749641208365747189782353289505779112546897825735928385447101138040578687404673642835647352776571568748988360268768636631125268287513125209265983340533674631448383450207853832939230517206679391363880062878323100625903384332477189553498924091346928405226285422706324356561475930979780841951071005989834913358617457150146596895506727796532890487295122799035774263830345730238408596112228191278812982511758693895647216419666228319627439046063210987549142746923572599577185615668116330601401948287021563172856356247989060101104827220701498054395541233001266594406960962736837399095600899330120980966250090511358139185252179755393644575460744022902416909283930917397607996734533666466959290291568190705582662191646790060576274443084198081922638568580630163847612021969567603766572816467356599114703925342635757385560644510933622196780197589230113882071196286336170997146879390957552771292814013340336558218330245548284082847659631177260755530549762690741699204944746157345173362032517753886357343328366909316512055701671970528174747776533603799251223861915745369853232506238389820840680130537449945981469945345189866732022109237413619123717758869926814706140616371727807304867405222940909110989963685341121528495176150853446377334141259653995070005370437269399419320117496260279182829154334446981193112074392747619291387767177142842020363766274184929081395661084042402218491683769269071198912450912115157043821048617679658769444876403063293294824149501889346751040045866585955750209676175036041057734678123719880831953842900406095341894012113266102412997167494622718497590363616372355281150293518874318211070427366601689783748574327196167129677402468222555166371199101473826676878503573264325801019277348526936403801743529568297419501169412151280720890991445111846646245478801602503996467470809773922565752458123917372098056232851874203529469072615605095552519031012082553662013561082049059662688380632177924379946625119026095244667650823296053521667646010550779939468435445254133965870147868012114924191022402286347079481127119885773806394867491223140200953804995192139295913461330777012046115340404968696879012494209495028746379116844588485581463728929795607260434857164697829971305659696895371858276907544256467504386226508007908912311250408080363658682195542250075857205417474342848227527447571871930095372309062016334396422360324166874979619463168916462135665773789458510235001210994549613961185665668570826081971315229222144740343572445463170820569580608971377496902167078688237235722950008673881264115949453391465755395601077568460230833537250404247283891498357101375879905151801008098475236658628927548908921413254505916157569482647613460011778245056813369563329582715477015590825572066855320505037123653462954504626177708361022007875356786298425185035052411006966645633638099888187650597261688467134949023075096425696264827247352317977247122070089023838836030657122249592518760481006415603400270258333111374444424711038733952394295245335237288310343779689500261834055380609187963386467703917133059658380148771038236746625830127827511785815414277580350510015834600821586447171207921011452630481579985412644729166327114082411241815097105429250283468997763430616211191865426847305039636886081980787855881483994638271815057527863763380239936123460972195082379711344625499033764104166183910158405374336345450001160334882792397231010912247364394527672898335835903990723409165171670463759126401497287750949749024849609194851451170192085678854307594313830475288061794080263608187234902112917667698358374501635568713914111318313734856141336209221774816415333828773738692523247298197109045498832020677808599511688959865904953411745115354299884451593419515924137307793797166412719036905506409835825101567281720834156236248100764034984202593539269181230939989481057663253470226838834967260569044727764686171719005049229903107222500634966497180100590285905873657343015637834694680467990467516935281610878173619131686500161700219343865655595881177936016809763061757980743398760183609953549054744281931225555603377982146312978466382048754459213269209685724226801885871367941282620976273105557992561865174605066481044079024859259276260967377888729228423425162557970650222378067321663138593219506277604847612571592150363422105420134592512961262871351065533327182369316755721471018642700012427694170724818785690153511021245333134947358625735953174532646861019097404394402256154265108357225021812314540825222659260384309808537733883002413967341867269300029694687097253724457545228316081607778323892819240321173772729913300941256457124274715499992142405150157425209776341615471982034961621916532119603442860340874992407490260748692619308331657006663419424130572385149536777090653388312895053007333936186723029266572160032298229693587142507472991446090593406126433956826753362352565430767223937644237046526252322946800911024918699496393753762246398953127708862229830755501408873828577023423582689990783592229207366438488343115017665403731992003888379117102354017194414697805536993931372741420043861864942873530909913902762039474645525240968245362321844735824869788930455686677778466854818293888872869031328958478337868157755595364593557549694411371290304231117243486464693771509629873274373625833306338750772001718816146645258949822502926684336222336344354482419154114572930313255169404361381637178823288455879030173827432109111293150227704619287696563232287439865612521068052724791457783110732657536389654932504840745139652937310601942188424245105901311890628180800742361156059866519082440636103484389752237006803170095812542608722585210148951563590318469768969576277467427241880711950579275040724163818954843712775231986524099330233289007042926341693285137650794514102487770635724934818639388358869093876791839787998981222037903839225552293854668843929274978654968725717325835779103154249297032763545845044050564104020439338668741103357085390362535351456600988357466518017146639199718302444720506893466123997878144063432875518039250616384188600070944861496297477982532910067117222020428658903856195980895220079951738253213261866572573503019903928743744498878839805429527977437359109227749307445516839727077419510761176046047970661240788001812909625652896137158926122387896120975345807097727787600889129959614730871296551531132330268770536095581801238276035939224363458385705097262113735976199735734978097025559814655134272780790249692025926280552387576535881345446401158377334206642051429909251701600703573511951161339885294428316953502449504499286102652697850549703501852346339116121765184238084530895465158337610696236237507954968121939592460253228025367059229401129890362994251158436952382958197290553263122966719739303075364844823335096380116560371152000631716851013951676113264347305282574326282582027189710578053720574656125856974471487060948387191010865995204377116981899851111457908612089530616179704375693160709948871027504891475147173773520843039982832849727686888557547426893552049183681215133228611767738165429344617671116037632032065566182823950185440583593316783154085926769945223666917264965000764578515529022634467294703038644692979806398503522360956217646838827966244426272637038867022680445715079066551833637427005992182519102787818890972731157989892963329779800772238530332393077375629233071625576203139030083819740315920681227053489972466584055157493809439950652993321491393264970941726766412772317664685572048743403024209560253724561059196970341022123392199650456059190049958698764150644266449406882172294698820692520714177039065956413364624560519917479849448469032662192406522048453849320262728431311656962678523350974988774114886017332930965090805917975035400200347893409950905042445956489083021164085765356327569589776460378731033103451291200828944581372149989924251003843581138197049512577055983460867650849751975379161226331123923227682414869878136901641633362025840603285772610389159657686899893652403051552150696416386402167849893271239045019775776837619701710913256005267224572775786248953716403272156571244536349058969306231330891877174724243679850377806144924112711262542704911977330871347555125844457374889753864995359641110349769108752019746782840735802151996244182342418917986477891734604114762355615483086375655990497911732441880605374774222738413240531525881550722610548446764004436818899358861256144548909473667464049608125189492056223776932417033321158155071854117520602716032437271190388986847482255479186435818071750815651776571264791963388733191575477055877410568134615263463039173750522498516380573837631258739256104654522945380939215093688411367943866163847239068011965339112495912415925926285168231411982702957404240783341269860183997645932826848467151402652496297084337045147266122802910558643783633363835124856202007330434118775828791314174584877215423632431344397734045329202888758847360672200483970093491919942769736184305228783984120715008539915170285373793426116134464269478510042164551117262804158848796645364741208626284902120055225391017483204292826332054122395726193989818180925686813960170497411794972262550075753147273192953918666734848558421582075619917014859663711619183251096223764577883293883024614014851209802788438424676929843883079568252299341750789031635757789417007256255826603916389725787070704777934736684795324963283037785030721505501542962759039657560933902668024545406314151468081846623315898823772083614576932986775066634936429161888689707082590960054503425052885511863882326402206186051500473400711926822379479870206048025062988568482134592401263005055547173519886982896158869323566138806259378258968684123582395201852558263243468236030541642432783207678867217334293604896487978305838080199787660042185841690187902828937852361222166678455275392519045468814764548615173265440347052115704369400848882333493820041977188735904444005301498304003198100773464721224095312997203488328094549794267145324802967353500133004490521000308585816321740268123808012652569365958036167969097365324968014889893928777433434684976701035598641230984580324853415139811323555290241682573185161164016559567621114123056603025829673607040297706680858513666840716883542228334271999819376150940476993836774911627113037085813396872510813091614080201395926965078078309498751377581157869415560350625725309424725083221763798164275434356525120491352183975571279202638442520172295836786005875684352127164828736950177421813957890953046174158920547511975029564098732760790625959658007537591362401051726103089333777557750105367488162480110816551455222508639462118994299388095962911897275683019978046427374897414954421272874884840217725030151216746220500795735379812981629471866626441243122718753099735754862096126714495830253730705419950720023615987514126138035321228130437226713235187888610656328339968797778353972360668784360618307458025407572380206395229845243712754716349522941205433219793051225125859383458398569095472477351807925706376361694493926958054408613823853012023820109418974869435221749495237454719030976921881787644681380028160894658312366207967726884334550691220479126474704725596446110420527704242190365658587574295929271641883320979656131827685090820410105061330749410628142195393467585578035875762168115796965615159388433909121726718467418395296456120762190025292114281259745155426575337993197422417830765945322910167794005374419339431871395440580775692176622080699709729364381025494734759732391095210774781667159713109402390092959902468766747844239386198046083881285827114976377574521914125574490813122488068858195483500154112514133368097785613386502253052369386750613123135858068873441953379769571015651250161364487772798779594341857588539831653411364352085954761517084628713227942595372755452314591262101317755052825261136534627189247668555742658259230861745707684245687162383148827690987411719153820020730242308240389731743790146183794358825722010401898988015835687885220182452841769601197127836743852434139472192305423068263106258088464781952826241010467646601701799839048419477858424215327317388937579196240690367952648405590729155246042319117582835331607067747623494125161248099141778729341119231173929513191977970899871139481080772303712872468154078430430119005998260460060663599717783617386633859518303950881779754111939454091596232459225585161254143764140128732100394070995425934520877089747442909159422471542623522180199071315821684158740548919272012982950612197291888482941964632295624927741509198082557334025348623852773122852532525955473607080099274700448694250983412250315191043570105204805993105727204326794116911206001109386143961050012347497168160144620633189939038335012929998750002988288915839222093960794240507487076999591205370774727053047243885207184619710277049118319082777204903030154456071899925765094322624514412550218498555735011340411723810832739179827459132386719808454889770212616639082436714063321511723331992863764704004730708285512221596898774194314672253648476518118347912842202234170470153990421302829486897454525175436777142938562258001330753250833991165908143049391336429212894297323593174937560674389502826946374584475789568217135408356650820099207769443398277934760212987912804146413692180867223203979284564726709053295249160115420850741657691394847493224463867454551970473293759586322020686866910614810342499583051082536998525203213309043661264144014404086293148750327382714210056535799534177675173597082870102362913984374095338486343802330358911531805331673437363429328363656853773701125383467037314070709476162512032714668082639640167665551455243217294755266515390323827716892908760956601793045682572664204462141724566595863308453446696883662740647723451422372321052963174089912153264037566706235173635147812201227076911710004653529021995232728177090718336164425557732580133998490355570215272083839943540155017769482468986865912595863203483578172368320750959818466173340944798715443507376912761777472031604650101166563509532822647879708476299933669764419592949426566874814196606568628601548524138458831665702396511290187319861707823385108335807813279321382146959365007782482644844665434683796260511040900816624217941775375532188937419883198613136374773648449643974022961798155386003546992531567796757621591076252428122288891197282112122195003844374757271823846241339776150048285697778185813645566866465774222367999660663122387975939647124374847822482253300395406591338735046776439061409765655402688937124692602301861930539409514483361200182132040131709739032078609191023817229972012863142217385093961151999073407869021269127993419200980627701488597989483644461148341980088708213199874300479101796239470982110051401284626979391871035207298616758085693225055903416442411282681465478441563414457784183605752522252770772543543016485985794592978817216207913684049454083844432843446517409575723397814808293504825805757433902267857759492691389231354246134055560765935557429920693367520388506166073190945383005610082344000333272793452485175577014618864146267329882479443915148806807106696527408343088139469295907201499006894006594083427585145280543658966685644917706461907839732317852512181589970473067974337354648306823652844124834994896912424411731159388204587077080880024735689327413958977823920390813511055881715671292357300229035562375702527501590639857750544638637070946630483877416865862504147471095581946937885833916926133533113741088509464514695899173614332189878827469884330122581180308301350405741120689761649066712356613158127882642564299659624680805733041820047684515476941046965830080063518241367624657214419393637259560864530024040698452986116632538053003794260270504624559971152106165383276279060982609588139139439196085422223646260156566937586424963333464748946212809057660602837313578132556828452597454165179452184035370459251240986697222176026335787302295816490762957742217941280882557503357672594525642288630836713480069404587229954273804209443546501105466745625136277114518629966867136360218477690310787272908046534559830146808095449622569942916575878459323193234751243054995357426706507692073228047172890059103485558302998732320533025858810515638747006228407287933375555090066375823134417075644804700287023034198082357535362371607022109279462146056997814993537646920678312634101507888582456987659058525629910847579313424082008720934491422188968899119724433919931844496079559714166912623598520006025903110191209295033353980059219356275487478714297288813037004050158489614839837629755503033432987496799567497118787175418432290015257180261074670029978187991028434885146389690206424240484415999878927749333277938517189384468186374185620602868456057759372700219440798960031942135372767895516867181377631089903005525636347236622169224352125330819977561724759973611704560849175556198127137487499779972241304957634354292055951116643583105223590320855114486151322707719690823871076280543998351792382587917184940944135250356609478303472841368316778299209353034567585834710223810128033021633308721405860272863993192161757349899831668874728422739977712649691046954070219472219140285346763830711886549167891959802208701408805458054058998773200083482840073869913397515157597615444151931485411888517700851791845167553467850598101687003905380867967098831658492455604959209478844917712375002018555041442941792195596055122236807412962051780880023109994713921862678519268919442992329623900210870925477716739413355615398370729164458473764192400048153025904176734794365623198160353495897859800444103819486090834611550348245651658935059513989554111533892134059884356156167427549117488232158154438609361138827671149725002484405675733790617777486077141282103760402825621023940657846152642179037171009247558137658059092735590189964976855912140793548739361649164925596918601092158771506415960521393405221942309005407874214801943983455017328134078959467954084816418515820128065879492771863705895751447740860388555835498651775837594075061915976433461101197255969215617829766862428707274664119212844536607682133981720033635618137466885759000282064478214173744733936142921815260607452417555356818490827950851729024266120454689065582258442431809745688887767487336570480021063483377024495904635106960236507150239727460980419079843544759155059853047411505232728607688472340034971092987880026603386970083777776892957791851783131209482681914716649618386901269249515086970076033301268310245167579685491713680335157888174132149671369374485953867370687392779720828729201026031433999115034622284201101992892626432717360929740528155564701921630005710841605893308529130292964075671651114112241279386133914171684923590145357683514191541598562028747558963611546495191544507023611647557247490956514804071358619297116778094883388138508301978626663230462726604210121983050591303372126583178624809067696388944363070500643437498291871039953961520741202410751968965512820119391154705208152248545934970511456766284220454928093006012697089451455571801245750250659850780198325418334402226590144267277631739791088284661047415040715967494032971543319705231903170004721352018447939707093943217608681230391925482956641243849995583663629623112871562424434169952655190964756025712939866282214863023889039410723613374040198685223852454608506469454022345147067534178205760013836883431300209543870695024413445947151588796899927885181139230182918597038505423701924712171464099502915389035656152237750740477940681475238275368477606960471845087689391715253231754500477552773965650939272381519571450900649042865116193785460325732382241683128320767009958088570205359230797754073638590027020939833961528942066184032928124713984814655638261066855058736371862727475420222231751344972876173654247789868595135758559343626890572041504586837879780911988309399597422078376929273381608820889525191748939110502399291159646382397268886067918768049891540928337279973653056205805195227315804773222387289241934212162505067747931973736376594828900815622369819887144943413581793234866955208754287205726449144234630096726688704005076460240462369100588061654856920039746642903408687664311865663815487700006154886869945391867623487231597431490648397341218116293232157157231226087286058851615283627066912147746623138223554965524504131557057493942201920910836123740528194845257865931339536760019820622886054026911150954222213390941534820654772254118472252970587484235189871111640272390658165558215114215935469282683175594866017390878484650045180427486652848573903503870797326388404632023050536580476507871130520589353746131848580337128283973891599898125070017390979300097209795342968775262070247856676526815394815350353427216659938844455773994943756628217493956907418878778482663824800244748709168597509974116196551410583368597260550772359021565322685745079695665015822966394195442594123840742892104879828682544400828160442215962856380844230534984276393819358507517717875580647437670972651729817082622514908983746977936034811188618171035151195819993516266256485413780040530700748804552823361463611596149061025339136324279832792604652085895209200839046488451532081759730821659169561172045208886444282594439339188170511545928623445347576167048323160810974915932964795242234821685420008537826849948823791399168854468007417167571774014935412141751183649992293097508669387725623055045993959903333274472415333881572602749107371479059751651041351811249994715921573204847933420196850152488356698420076190186792786736227160760795251385853290437498278085099636435285762990881954543713794486486347740685571804470639439078128348437137380416464111844285911616225176880892435588159366155415879917858174009373268197664828780760952258430018830463659242227888283379424769998984764602503930280084384528328197082574404841951689949546024014623629440940359649400541164594213908226530598944982858354237864680435536790044642124432144007642520170763991071140934551283810194473661110641161346276629777031034827586160174049644599853334613442806797417300039362441597429742234879642999262817028168903106044402988577932602581699799925277934849559949193827478336031450184420579047276759490077929482146037279634481167352222817199934903001424809459003923607815036988167276282079055308944622860201988612095797478989591857286213000198278176991481148761068778918050700682279936181868111545191959187103123235888190877730828380893319083469672251820311987840798743630925414844115650507021029827792402996685494218448062586167924292738767294798041713099818357200619970901630015184364146580991459662308338091856566106078340987730649068475178062967435756467309769033787989060470010694038984678701009559171419879208200436880533967136047868084505434291067149157587764751314909330470636468484778908542269087278816997077255702378014319397058259125532257899167322095656034916135335374633945345525070007917069790623786766178310545656099651224567538284607543334152747939313522629100148342226156865690922289884309348260588857547726873643192141945791939007662485933898926729348871711171294253582653222695433505867383615832460400607422405632852569323314069625167808858784223801366161352215095123882599679169778593805416565858354425224006738230415692263602025439969398750606185806864176394910103134066677227770858701956758005536840526597327435646619407681466981961102414040210329124156167461924466513390480635414917900291868356931486771237155047849286339478983950884784029281250065509107831212384422980583200072913616522464489934864363394086110335790271710949832768689539922929331789529783456573751663982087410123490720903274061803750718109240058214201714002745979975625072816192051566137411182391834805506195488924515118508581184179874995995990302799694320524334901452946360369902389344922213601307258504966863931363824466626219468727169630239689848189808369019251750443176564956937375647216753836807672174407846765066437532650533606548161232461368515645972152036007001664752758598996898565011363613925134681344009773291845785733179437029992905987707659322564523863386463589297111526101507496133035116741578037072321050476741786127660969532201985747436884906196359963275979626116648744117552897960869503722775865710034820094977456739295241682420765047166836093965652147506793614151785249120208305836948276500878177187430395642423919898729067648371153882994760620584450161679384073978861143777518003440799136527586804498763750202202451024743388242054586186460625189259360594111230197977121124631731658687577506324701444728994207824922643147847909390424493620967747952065702517649442460201623649504968405699513724282462127152570987278535521604934669429116188581836719329562825653119531651806520775440237024091478972716061595474208900301464995395754858331853865585762883078845165512383583107882401448910728266970748352185433795302563702103159194837313637210911413535658325475264043961105300543745120227847724102638613108011902386997686493832852943660721368739493578991183136566138078554795454158496685810930825205109753072306295970096477004203955184737515179616561337906192019225733121712589178781673876148255098663395123286922828404957493594360226209739052306854932608703646991566756823381453566772364779280476727392191252615014383238328843850279363227896714035680330238735677043406073359970053936413122956513584441132408079698101501709962757058235212422836212095792811331225614193000255315360194568904776943179021790257251713474700424613556656330738170472595594478645525605054443219115771212031004468676290849311869446664803645945189840896052537284172586527747157001016330840896359342791138687884334989398652414321922901856064302727648868348183249100724830757227631719158867863541198100593824958254008888854409248324343104759575941393671663437664331978173237035324288334985045317984658818312247952704553279049750962934212612465089788548173800002284495982485876762262392276572013100487193947300204204315148093234096657342859112640106849450900881379075869429333267389399480985152194786114288687547225739224672238136246452646781389461483217007548070058710621314825653766630398630712701251982820277197906173537768338390177344851460046518230724122649470336799683136316050940180818007354073922262297381976915666045534907686060564495449465529619866968533199322180077578533673510498480060410202905993020500820435098174213034578295043959779685737859064598815293920423843041447922273658923954010365479944015330942069942716529879763346443969577951300779581256990441886947919068654686571064293915330103491451400080278075409356964146285904978976427962458227567371091001334059243777438275343280027483474256289672219333721344855150999906086679499050101966634279329717098670301726695632443468820407931799098658424935509906934801862965806488462427545912725361904389027289678923845274120158644457731394246218252110845045996217654590077102083849058830115700100265809571975313199941921293247384531319799320423217368785782831903739292747282700702768737907835224970033845119919716418794159301134545004832792401319111034213014034938575096624529230679783435305303907963445018176920221712645298140469582731752824482988901198100259303031856299414517263540333108497880639498169698831123122190892967006784496965929825328894846556386347795709242738502936896029347420195296355412238723025613208090186909844753668938002295884173711254475202104883959380766507556245813203451187642305268197441892948388620975036718075024601901939467775553281204698315540258997451529611131548128688779424331068780221425394453775526585611116814981500679928281653323735392872762550762040401932203381931168748950248578344546582142375677696057727031943606241062472807588635074738832608856923735252584002957105747014230084688444097572930846340428413249563036556711976216237995042129041816559899029206245869275047118927143601440405159755279777906448831599393844443368866140889721395805209208469102283439461061902776467292374648578288549456287593111300109292819054051937228704859703391049312889012585403037175286565808204960831637336022522088343621362048267180433692883942354379714736850091014551803041740147886010952053878519651228777518487467045798742880930055440445339649506953987700794297667766141196139841008495388899204687490793429694976964874398389104424709648932893946025554402852483731916941970653482769237216956739931880281383684234916875375622938954044776455523156037955215240060881504944047594426025082664762436918858008636653190481655004666166034842287500170394994436206347597826269615746947733920219772052678020499289602239883177868820499462501367141416084490032279788277345412060071940030829753622700122198808917769063288278480584657331928432938468371974556849233050633991661640540656554086647000456662704853548072835875172891907904291657041826600718894397510089461163374556880716415790913051314354362920125289689250384268173205321259280707563443754709301563158774496948997232994102114046724004564898240865456613298781846748518583649747561223932767824631515261959180437739839129496955510320077330776349071946483844536445947655239138838065969382280630645700515230574963097984936727708605401947538602626519245404329705602378590664277513152374731824659410418601552868846935232176075776158345762046993870189603641907202613972026348014558439928269384693527142260166745716098257986402500760293515490949415134803473987119218703848127067241959086414092576743011312776364109075573994907502894977106077457092250047237021723181114126565470128561815949860651345016245007542088442696525174050574164439220506611963328483456386061085315302559715496706152779195768192094136141939577561048054841737152021844109634511904335376594167813374190308582206148491235124207203352411280538384839521585175112658151820996387244904695524777019480568118980440097391982940492056775515277450947102541336853661798208677391590005181844258230045002218483848166397465858963038108858281542118339821641998184726307965150981359424922463379519253312985680127361106084740120144096074620005688240867040510810048090028561135352170730644867709957670357983684818530817637847606957813859928089036377303625035374594233016633514501526625155263636288791409643394978794156206510339171040123342442640888159982770694137279506129573664799243004777303201813479226005523733623364205422663179312843237446091637683076786281911712362793726589435448223742427328437439171549519163431000235252033899236842082004384740143327336247994416157843099991620601677851212276823189602119458808915933078453127906444460122135641863059008564328516480357088036147795450092826462726415011461833788305650021690363561456329869610718131687442709210982379379687819718477799354951161904329707416216330801819005041073123752165695090939055938414678608023754079069153802781482358955312105791248107825313482395187674801518928361232942001198720240897283234744868551037937935791125806123922183036427967491854837373142326838503177520218362906925881807881412876991898196606002632329800531143926729949295998154288461628662640868643674369768166232289505444838201929499988545082437724593150908766345957857520081332630758044605431731407798801099499922773091980124054574926041260435270301783702438850081920436255542699572432647021781767179957856572622521294244344279492616814346928103792528767482894920326308214604185554397164264563045459520292991907731236922998761065661957368990395562701815455137112316877327669284961818211110500503787591522503758893654871336268549635301292813188598716310097385374670880407860555119023584448168744272128288236530964799740103013212379046389523720852066580394720045921705849852506304549043472404360467806571324994673059933099590321188464746490127425863493722328543751070779528869342144352701895567197094220212988075677480757924735537599446733721519937599310928220078570689456794533888279438206724830773659217165173792920086633005399573148613727464956511454459752388388055838173129920492911329580578476043406995411891657534577439481976717426429525906832213468212133867579443698521716603037696823478028899429902416623893449463048200322698117241837461657103142511940633470177003844049479846246263535892832324784286814370029498363272772344750799888907774926859517959097406105578926841601903562714724661753583669020257317947453305011290841924864225037546685547527982652484707706700187140408849439965645132499796511137560092581137888197868786354863731590948237713649020127407153566008138809891190313201432418452713040876023544384656597350259640730505812703351000623735604208296131105127451872304499831038948893898530453305995348155656599025757115315561795803167234947214341178657312225989145690885913713442761127580507248225043358004681526970019559729428592858990091007707667610259957870572089299037750733531389247976521479311242409177969356116261168043789137741948407590032279575808322817770453323688384529787583843876210797828165064493918775851192105033310526281118799254307320066581656480272162092892993935394531699853530544600920528212958659817581846547706563979477687608200840716455595209236701611525612196446066610346326580114350692886316959348703560829097250587101403782832091944351818033599625199088834767386079095825582442266941215391849622164655815050665657592913186199307706613279074751733531130024062169932137755375203818873924223188230868967551159630492397729670326317545530519764718697573907841791047781241243961886732281404622103787272106052379152813063058136434856055059385956006856409786004864912448798750977000609043219145979188127776658228607002314724018492296101784545933010876901772514463827233011439078474524889738472853661772931130109886662484699790431448358469980173146542326229242179913309016719961433819689281527073565466130875228701938474973223113467656643728912348287256455760481145274192818789444584694643127729553268118064619657216291066456741262348925494750019230674692278054969119637339913860957961201043384324433448862948859349679600969499390246518613125359388230269179361417965672941841152756557457342837658474955768047728527494470550028449082383478900810843833118130901082660026557495724075958686969088296452431269816786571417521147574486744855817295043052353868406394085897778622292044098554052858940612071979018414291353678632294746732890027549611868161159270431113913831894309535399914196058916370205428680170717299398328310556745699400063402928072941261996781563261106860342556217952985044996333162361974354365626382251630526540837216591539477947585617061595654566050203440446003828051242231220835580932635446199225683639385484956898068056215972089388705051165316301110909525937690883598389695684268883721808497776352612537838780605080260682936020048252888058124241986866607082952308684032577287718149482712757026161440627236991679845075417322026452876862440046814769312355394479363815087780483409988016448395105561323101032212816126031086747684782506939658447015034508847819514496005729922058481633282778607025123032922762843816087534597817447487486665667905023121409898843608481153387934541999167450973939628721577503665221967736455352349762452383895701177401300994083366155303351173443986059277779361044358837330447748472526229895859391843447377354389691855038056082267775914383454579337839173278671278246058335065649140574206335444285515514138157665113083497361307392802878331781891553280586852823359106131860523115120638822914733533401102056914399320894699486152196109852349029765568474008803934732148080687873926427021203982251024762619226014737285507992082500705923624005351119146187019824984279576754103176282803450308219319349481621725392463752363026958866381099329014529157499333120014126910006682957212776500591170233889666587066751036500249272488209309544957121025176356848332782777572446971354847556017262268110399441780061618575359043435212352701536876077538220639231320901319016949087549913615381925924810581945757340600480424934077037374955206541475620779223722801340656379386039718061674511574252515667338551428828647962144964404306928559995302995400754318756852498048447674418228279561857653841808733659275739937471430351756633127643317033664885447405951513895170928055942377459311530242584197711683085279778104629977236338715339429908663865866802716359144995528353854334572492759948005568311340292159560789704771923685856035441737212056493199336345169545446356042213295898430244202663598252033758992249097426784590195326588029405019494335620575944598356367946740760863918784842879856110085375455855343695522915155708745177534783695003596666538973440645361121383438322211028460678657736533503538077598779944071980341879988742671647564545325550707093927225933553885047161091120408845275326377301009507260128976445960010248917010125031617297983830411151653380845878684893067838012333029254459101966703663635852903404827450738226891216965072275010329778823886528875281861015252297083042003868073493832118383295823387803550053632441174196082034831078540075957164234552554927080159436480354484643306932729085546313410228096753096411830423283963434900172330928706700449135415640793784718390472100236022648360823393411331588852908596933078191978533465605640714526119029727316916219337086072998989121105205582484731913990429807237597086151302917895743636080573910786117042503061612302490212138731807631721828059240007177001057978270363253709976425898089849733898365277588025433510729888127811092801798535283904141035239129793664064068211020106877591214447295874828653215143956470203543969167520411214464857102637436286676696220710675667317497874262039238475346984034049068727421895063152569626229814637207185470359092082266750419751519871492470751178450010412347393395621100988251828014401512711847547522959481509923644697064428564480019003020241385093341383284152873812708798223336125925230778856612590765195632559455989808237315029976555679354002699116515431549293019437311880536983341879375351376822856367975506603516079490101977856862038806366063635010395597715314043606114674174398117648297823447075666208527067906614073448134264752137838958102758522015121711375312135615243486420370932141544994680476467556241197712826317624311096535847874336874002496588942927065514408031650500865292356578283184468953068114221154154227556288920429086193098351825651168767883678970430418687653277232297937145793754970833134032289159623867269448152754204013621681935986596067950887575949757207997569177668339308060673083043330496823866087720800270414635177267631001087084891990651617009914830038961086455775337441063357419131919090308521342313139119333808932142369733698219437604897942521968973731702744338681454089511157150191623256872767752991634737175116201403071919044495558990290588032462613076823050601231962701311425123112961065127763555216340790228708279112238491768288468590891595325587579558164952936477242526433354181055967980714283638798465127326242253983057732708126064564245210096222953966204245707527933141661492258088244701033307593557382158520698380023636722728982860666971305267213474982075625618259183484188856579356928283999213270675229240614392889046760054143261281129887653219524678256846443653969260641958089428641087336279169417965193162075623439938064505052455061223943907678203402878580998346987234986444210270453376843005515044737368099576535103669742832824144212827653571747169089653582143393425648277361145960064493041802502849972652610237460493532869579879946850343027987660909152488010582748927370725824979978197618825500350167681485269830937212514408833588918115950827285917019448969391587770527106985739388379998386486841331128174425354124442196745879316240735407988595375268612904548528860962658525047271835154694075655307593579221891926074056758352257435921860768498778409387128428772224346733741817463200803639282527096696314347928319554543772295809692167666870905207426215647968342420965400163513915888776706792625294326660803864418116092947887868936022096280172659289465827544106101850256796467973234187644949191857095167090385017282390957939379084137885238349423675951579655233266832753430503435558611475301391582866181037921532319301841214180450191772303054509102486309294231330933127168369279335667537955285018275879314844774884112156049229899299284769650103898166031788385531032273285777384260754684528277567681159149462968424053384800809047102675741349223139441978443665014521868081163137360333212804433915143582993758494720690934846972615908585648138568865572115938467004777403715850392582159560859067738987210315929115587540438102413599116392612473713981965694561669164181800174079314320741619066916466051970807928787427887392287654038451677952776416444005844454928298288358010522071240904033291126284475566254235218713902094588098497744977569699711882206634309280161326551462274715554459699648753616790512368020352252066900888590521065720485915101482683305941281874534543433301368001779852211637972944285006862201756500437906572807404483609839719205742274387986078590139317712402096549413892428519668237613771507238363367154797958690953059091601265106474206898872452731811253946487340531685750819309097895407071041483135937312527495520913979028227965992830652835768388254085918008082817977586219718101603809462893739988166191679113608089031863217452262157974003926098812753115559890672470182208763522170947471156272732085457964625594274643172358484693953983832722911651901464428004001932242096527093487908264067273195509359757220200041094932923622675149317483225365209420056551316723800458897507390428133684019349902790873183880062581798675778915956878554590297837444944355927001590442864202320765758913294414565939471109087269553701018392953078904810582300797072136261027772178219053026185482577365212531297260825513748229052543971313746861656444300718979543607058470469852105143545913432641489128106117900014818188390581487547313730962187068281861703806370101839613987961559713966063815390006222668596785504706900542040012687702343770181480780092732029346300877861460265488091022587043556200113287634589594125457567997474221543461405234953698793728039862714695614646751140630317113173754103910396476669122289696104817136407716687696101912020119665008902726437420564210318174973657611467817273215346138889766535694436814241084391454858237151859334556271406569729180335876325476792337334483364049927042727846932647049763341405288252287315418822017990542012022828622946107462138032286143976035064843541328620913715533083514846941131171106510722057102591934189756672349495246641395371117907630631241118647815516467957569799230079469677727440142182734982110897809573786472331406200259467419903860982461090441522653029565430858926125119608017582938711628937859505819609292745313188691537675072189925711703031957149462295878319185080809071763832486752436410435500590997789010939585235293964788983938717467927986832358721460707157923138629036170380475138443539121406872398112408574008509022439904673953336745988809901215186239590669024362282499609574485205572678351842286392489169869078371546632142977069847169330817938292606187051798648848928486511435256098764206618354257080214322864337547076805919416970692848579622110086825285477188373263266202093351919324519399547919490475645140689218060186693167063267516297872673754602743776585962501433843578928926492969927265201626743839047524058079941531149585626056126063085526998686068533925113921625933692209702848367593322756989953587248351350661341833176415873734152433196203729578453212574274973260954118978832259959759413423243965634725047355957604360775760499534103910790343014248017746828099974844030373487446079858664654890477385689724017605547735382512812257636175423060562704743934303225421123389836797059027494657718603106230858709195505336565862785640414268091847558145778025072097382300304448640651571386472323866895794585043497841402835954627300745398501754389254881330139741005796742509071605962819600571122485092381000560519268699825059065146903997662745230791529287044945454154281020296388861116747491603097818743512501063467415981490973895389044958634217910481157223248599406649811774736919424332085426850898619727301594142372822832786233515097174195402003232891819800091433375140212626776625974464604043356141790183695795369369626521272046827709756082743564923557402208661687018310814305868978639301531994115079896020178933837919179225641803916620643962752727146696233888101049670217244237908172405318550145949027070474153597654439353370990026911518014612516341181556269924699704485015038890993449340362556501963171218399482739793534189682439482382052641517017913852586438557193723064450498639290006574148758518001058144288358883780425447951954662819050970775523385970157279562787071108638526046486180914580291397022221325774028551108574400233336987492270972856227961330902756982358479563005000879662375603591624931264884443126673489813746619429908375693596496418271538265545082086673661145969404088606922828287654171928745967807266349639772542178763566114661055119340324350901088689155280445419226034164928017981721330520021760173581328795062757194041709469330997888556385874091494449928375965479265548989430791493799008022011541291393332510131150054885196113147203272915969464847297445184835121624975986486242120123574434043039927867028910437653912755572209199710436980891374734276355146455638931928121246460981737453323954515977607422266802564220306278869503395676101456649716418508610188045297231047767395565603385588835153308308693915013712748185424466175461976847856643270984209302241474467962813483865641508852143420706995544605514913936859445940622592631330367884858426017754397970908627561815064033590827355119760015880136846192124989810897639922510241082692991346788639220998440689364565679062458812239133833985593485948432724489366377427299129831591161306997873269091182432201626885353022719820616223361625515592150599860095899193612496972385207910802324491035074633809392980375062036261201101440215175364902729511544589740923050091668882936315853975824683043346519772228122272875060194707975691604642100022776180878528746882554717232257422436493428341443538855146960189593233112043868848127026477864120686653356976632005423814950471648034459463712938089823196324427391571014941516284023086485581086372503529266806073059149620216770335704128072574059345705099708645292914321691894821936862703456438997026927271634615953068301638733667804119333071063987356255157689285869220871342608802459839240254513307404986102580476620082232073186938836829587190247829971422097974176477143041159172602268920393464175939570714952066163679081345730879289560286744972931368395863441738723169352093069699714202819851514938733159682755515059819505166231601567336249422550224835565157114056626930383465956354185528903528905534620812323977026501749664913225459934533973506871184540044914157305179260665300448644534768921335727481993283022398065046843770146199593735485570266999216970070756405110374522023043181455211090837881742066610409537298840691626268888027703822762534197440175232993240566773437718762602817963121551888009932011457412978397771305518687551111087242408212226918556340115348772016416159957563107337042436077537714368344705926792810421072744219105022265973003871147287243363815281208554775552390015266713309226768646677425258929506620791698370639413444706830025143632185210324193701184740435315290469852473663441907782767115014231909624001791687157408714824443755848334332957748631903778176527297854577015172269475227296526096546241325782852594199508424757405688372037633299536338621722845530657870515981886715920349446488614239760839769863102247556897572497847687072327542358201474138470710998828074946759912678653073101956283248223260961454578220939202565596361494762831156980226272471330912934556119191130488849949195059672599013864228889888073251529637756669677348537740822035176006654607021753961054999376169466405016018648464780371777383987229800450120324627892651760562631675090105782477564760991775560279034791305041295418742410858620986059930966438532454457478170598029462026710493924182895134677912458552716812820668387803005840835909481516051514816956356662865740416064547440658888321591148294104650872413493570112714659667558344048780503361574304207860650280191663720536072033370422876408233689185272324619423140122858315663021513917282948161922753311530694704858206391117410402215977370001835687087912272464829921885348834825994559562790677130300986527350414519663556313109649073804263173005140133422350130235943654567583388935097276374215222218198905175468662461443237944660262118504100107526516270714431466242754854372041536264078367929204021766109975085001313058520403335707413301867801636772836180254745818979231310780328756907372912257094378708923725169111382825952328151595246517401580324392901465512663307272976533485798355342932789089591333568332105418516664968738818836179315705055747843816400802929120703687094282692550118005137899812532751882050156384206068051395072164446501885018621722149301132499835453167204457110589526075768171283509059271557871963471610148475482212435111016921700974208165155261292267529634678394415697102475505391534853102394795396341606906070163406488727135386568049952929831620917949012261184724899251605077992410799747325792595253812148947193833280973889139772422170594905495942487892427957439133948860423807227945198791985891781500420532433744395097555612508072421326892481525054718330476043814181061770681214920851307252827377999299201260758098524173719722481703840087254150751045621548366834480608523123675890233730187436069984918216084866473313427859118814103685772671909783247018865642726779249927022054953917057745815387930368495013784778674935540068188002572020084688195042065769610676622067423115885561415738210497495726089590511121052788346931435504777972585430242669758298445263667564538638522662629893781000829204004857118390798154180373517449672923312236420219267981296491608050203648196206748346924227497596726383988689272640635054840929842222539342625972375622025398648888015408625821288118302563679490721615897441790796323908292526419391603740066809526373024040980928965530374321157295318886940224766214131593925244905319422654719230914142793851115428071930611342766043361808198592564819658220512107395768869908072027096282851977401736441731774559807336929459241198857198043126639660487802717257298141467552509490833287850160876209771336276721185350953754625719329497365257921358273522648550089856735007316413985884496838428232417711919800003893586969508708251392032728919662647281785430859565825831475724037337107710679205119040446446234671358406092908257569877525383526687552972817716018233570300083801098259519499482161040733852743777703320750446910689519955872849183132483607292294014873395090661343337879270095666837176159077386792986383497637062593422106238702563406033192116152028066710512875283176194574411270534597253816957768704652997563454855173312153209164283754100358821376633765808377736049022455474371660227239466537907051522083955923651444065666648371079081958667581418390479019245566166857762585052349764541726879100134864461601897078637048735303764139916507482618199599981635405622440325659773767444349513224731910145055125820097518983884936289644690553546872590357484418784489195630839569826313261389543810972036648920307598284284044169778546485428027866902163873850481004644115660210946179498280122032377851318201021759161274415588819023855866327366218571002419903168184736640183780215563658664999457479395497021011850743675155439920014875390143446474975489313942780731792180775899203397964921671372344137255340784851335261866830191440357067591552735123318336653686244011579168802420604894957947563095434201631142974006048352692397911141165540350101244125770707037521668874969803425488563773725917043872210658913275999358733366112140434634893004213877301496463115027302264638507817985343157794726495708831805050791799431156136353861681978333106621923139967126574915117987341511706830773893460136218595221114893637581120462198808041421590606679314402700579709515813489422486576640678242166383286723894420629570377493793740512954831652937143688942070297303514935218975966170723720590217373872571347796399247605619435134421831020231276331829443127364663865460937909657706397148047780365222223951220028813702770833223303066579640643308990125688527106684059840317365030543182586097585116640604007511126393813253833534331322169258166268962557600633243143064695135807917849059477117570041085293335889590995362570511540667933474425133479053183690159776966592079488167479293985802163756255407476664900755776396505146879675746705380232417585325947075422115942437158132058978347099474345255274197412110723466317374722575887771000812398677692769442982074323201619261537390025645544264963605908367221726352691835815190937679384382823431808083621175596254223476826873045862109052316942756931751400241820957193530852575750252540594664259027238781851359240286599345900642433723010234651699000895550310935312048415483209929338115947093231791137421493627409247862245278221171231719823927977950439579108227924026735498413052238579895536840131416326066443640532181605122950335931277556379027673978288247339979605298264397503113086235632138607376320841929258340543251829587205361553374039609916220493057658131838926943171390437155846067442102950030848682685834822368168365330148877154229525764905264188056668905102121610188709519581643472436676044822246882011610277110518009399115023218803781084060263975262794490044845750268539041043511495644545184219257628457569369327094087608446287279034479827302610406608244354896374631411592709254836650413563134565157343939195141720501521256603829410586805550395450428372455608080424231987461165195611563100272925030796581569087314538328647644774827264236533864386339027552058755482258065939225184272246490830875758714967764491380713042924619381659994236678432830315187959859262609784111549935297006235424354284387135922612245108583005991491838398931465377034635496113423601178008633943654297631889399913708358445762638190321658400286657629192153495585122454398429778512500110388407370755586775582714318203810214105368028749852165303168875562531450777390254115902298511151335502669992806797824123584049973537499114334688524917764427654088631842526636060155069676966942979463484566120827847715671662920045156411479354057114824188054064306539821287707269773045363936807610389088525653462239534400558398313408846986173500193871551734001729626576873453458826152846354002483673205025632256922729070477920944324535940285812780793607585187849411718214334263930324240860003998499143071695190361718407710552697285446024497177875148322134304857844919153212872721588772354268958027031435169061592047710293577541517121871414405849913898004253302073737547930411523613087897321850668110333600284326512950494430707237584792335447970838498423593751787371169162820565208731400647598521151985745568356728285826365973327142832543386755073948239280202922992117773820756160832942163549263577357113711980852087403279719392027867920378465106837640217633764647381260821405554209132782254468689461599076007786611069949153209362251642795492431315967192416844881933995192322809423948464166384416686259498352106807061710376930129057687866295000627387847760203682324754226600398090274840833689957098652880137718104705082984049825965302486092739292763540971973375902405115636563806367429450026494532437216780350466749470213876892667734894613061015398184804936545562172641362355997823327318401979308308760515952053560928556343036554214394908482145845456496175318354344097924179231741988850495904087452414308685444200968500747269275157822795642864746366507665122147574051123044112779740724251095139386980692169933154041393984381080442771689924549756495948219491270325315644958014842280470528248910867919340215985425176807494077684605929981734367608528334283027662105927974761933893657985534609348265224404385419265305109204093060174869668103093633313132695357542471816314169039327850845145213544277368593339255569826898594936869188514489918780214573887861568263237167912095869886447856911465276771267048013916991014650110215559112096473646188735899499406141185887310561680598546872177360653204202725987221385157452864119061953255116044556584401754231887360236689698033010231310922561453809838199850764978666966675191184717276509155505563860399739260068001637677282086888446772483288809100535954107361130143876339883510383048909422267779058205056714238293519087676080790175595915873527840630250728660884986856877744023710876537828877646261953006349978960681219461761204343607016044318033974634356186765109252309586498244751039814535284898184081393866470081750004674762292594653655453687181723810024204647835395875410818158581342833356933110484870752605361426616465128481312561583527654330587099475661701434510787124547287757241035782548784940990148475336598409872162219617646936148058659628865226370481147270228177725492847109426766432662774068145619954237332066626841697190416763776106545048638341230492279415234644211911316593372368209260743707602180709026277223029655426060665822979309909992862930962638583813196760651213232348440466401521752663732668179042181676641236828852303170485315262895341362383849370617333803717957779751278719373840320750705100412101976093126443324156279684256944771749477373853565112343153399295240148545554123734520437802751373251226612789462972417807917892152950794425307471811390728050922740644952742347060023400258893953026213504075766066576457887426312512293604073484960302941653778230206556688863086658420189108212670536145600328489814861193839969712713737869655727763798428820465864625712706586108964678425945452365188121998842822824078355272017695486585490404877811324118391641137860982914718136788303129066628711258424790008409253126394748709938544609281562631064953109481153898085572273574854726093738957474468235724589095558651492853427375187947863724304333522062230876854524576625271331588038551825798213218058427100119290095880703906388880306924338053715868334388068035702858506175374140313720748352545375182747614991684368680476059694326933208796104761965236142527711658522155324267677120036434078417097233508724689744394641329487889433444270223567850400616850575480383754407890997169533465491113218311838441057576472224825594170742821114582893265352903348116616322579769390227603242143183892858483226776754417132386243692696349969661313942569496775297380472186676997174772369553510582579239795004202976828326687576760368477034960721901332241735465977287384337151051449424860991895144829144411617281853800849739079700708102061692296538378200065605523831400228695934525123197802001445205023863053860438086708400758667286836209941372312360450204385648555839169082731081987677383008515871767061379557859012668654233719607964371325821725185468999835597564144167501958510229807848718898092165919210849285724895061222773596572735968785568760041483095066705937255999960859835301747963150838468506706018465762178805968283258768293082895727813706752762984264366834953296506467843674654869617793708948137200570480934783481535739809356598373434455968053781427989070652624138057555377779289073779233567282351037635139609812062328268932448903977956698771459993194901095119557536989015518886022237325140941912826132666123076916061276569617492166264286284250012599130241486659207697743351783018941909263499236231169153168248652583211293934645919502633167945924471316585402750187082246789183238799683532057973486452907759368000467269642198279495489765165997291425733384650162600375145709002585628680043237334807672199492748566055916340301257801063004298341641018851809406538017303503416924394133929302353288672472209282238206592129873564158653371398175383154523078073398990178715468790994751181183501214245258599943434524693647917762979429940032366887264146728529387445533601222354149936138312982276048360372909779038364461930930123984028113753250981664397592131316109096209601068018853856376217026352531939967320681015841421556180796609401936310336099190011015357693697752712776566101566787157764308901728791992793865901115955781001571753909039605142275466325267517213367897811698231365276734117117927372393185391668054430098744358857654201818037099897307586782772228323934975789155318146080708503021324691034639911429612867614371035087529809647094667677746176044924845384295944292196350208189792877935131509205350103043765185977994756328274355230599246455843193467351596149047969470147061789753215267214307166251818124622314050801621886395953111176292969355165964104733272794338076462641916351529376384651548903653644681659635678759703509224091287230124729537482720783150088789864999944751545771860129260743772976372757011947208852785973491065868889308582230510498414716604597085308258326837447574444075953858882902707656798215267192202466579842766712273231236893722570349999592511003383450898938852431976963244828669887806193680637415357362976749848971062019218172446651135141037878780845841881378633909670300888447272113196376440794936833844387441321439587178585003016632532325931591745064161172447465209744045412725078236580654758666629288747215532910886041669150552779634336255691435598046399677503966456445840477950279859930407230876735899476538918338254376941230735532236853670547189865252854662875439653012911405663771081281624854506419032844894923537246723946229503565486802459666309197295389876574273010435841715695428792396694181567306488115362610775487156105221036606892449531450005863410413842603296769597763711685907642496550733375439280126882373466662050719669056853644846184867147081972179193408816462766081030001410562191078050648608492351562575878017433355136122885329074862650363999525704430312431086563708504727223687787142055521477701646625803526114776920235786340136284465683246225927495938299021469732705065693287715892724503567370481681447354177781235400507717020289004692991674490450052326618562935891923058273480370238048422950884275593053456651380239080894976333943933297866863666166436321939057269388970397866974298933893974383416647608669580572502198366275517139625754660193557176887508392559021631974707861971278822799329728475257722001639927029073862715160922898794127033839762682926132449800592908270664307530899495852797584723551579901216594522598697231643354517555989212997495463748736374549586887135399504077649711471827232678160085604246580193299833732991478270159010990601765434665916505434229880721558881197686312579969196020624399595429432471877250330246525188480265123400652769209547771461559645144664137145903246092491787549982161054635809660913341190873208407841669804520906590848914942394224586584899943212886030539881735510786836480518384548511862363970612280989486076985869880635312521945566307471241803799370794152349834544733040851566255070036076311784819257658007798012456823027797310083039918432145815114659428120782943186866106586382118486161984747811454990040713779264001673145551844113104682424176213355212624540634460984503426842874857383548439330992963896989122665626126330248752395218879940455714843101506603707393059517904261035483665651265814761478991274797518884377187481896921814651981081120133317873630931544144975830934511203247959651351021692490686632501733845558932777557779211667584798528387697895855199926245944400577878566205068722488729917520432672761341373382126617848515826436338555558215573050380647315516594167415680437897661792118862033545473893834003681094478819854984240055271528344000040508120720551966258158778968334314611691053891606179569416444640644749261964382776985519178312692122291014153192137053800619399501036360698198808687695649973593591970594745839825916106740290459897416908935921901039722908245641609356539234416586762515718561486177019405950159540098810537573021412606935041120421018901019105687264926389028573368033444331821904396920214599133565415645530341189684149804609244613652799385249618786749506023034820152885913234246390590389953090150746409912295646282065791176742044186097798736591714147089263195877797736039927420822641291000725209705433794142233017890865386629419715624940858424354216647840210097993503332575607286305904675244324554632749530129696190018414153224664039344028574889287162743138114492046859896806359782809190975409719545171109016876734194321323155283083157040795954493434307091250133780071944020345171966097329667471082095710950189747744672128035674136889062211402172024656204605569605852753008997546385641753263212987410552043024275678421056289981405697315842330737275698767763572095361238644621008057166828582450610518607338324006859388539679265380746131197982294768573679940679263092251361251573939253418993800442077971561479981528720573279306648846570770640915291946776824087875209698385266400667735921604979086534257969876461898063240119816588147289033650039985746232492519831486133048072105206478964025639607160939419699696386697904039306192545696949004068089123999715550437445278415588670707185481439363751289764625608043220673799395353697794487753479430949521981572268780177903202627721802518085893526744613763659510488280632972041903263575970721982984670648175522137694233526970257448097223600606051634478217629892939794846465189115873315542353754467190947885909021893722565677809427770743810397290308271063988876553802595265186263503535484320326065076878554822329228243035811843794766787521226362868855727330451199991425912607041202310857221059645721543332997462395232966382712573160486638526619861228326881271372828475992400153889406775329673417411007114344775789368014628606431604576654477805312067263500167241973110343984828327905826469822662077996568002960967122592526638402472284591853400424468803770374387094446300733507570365730739518595235435717697819337197427775339522816203556862987921318462035057675013701588554872106906937417804821673832215127458034489700161234093964178170117247137181753873496325177521329281019461664063843891020868288407887448909082446267242598530885383276743773620733328774704192787391437272643971623347090232049972142784669594754494612183127286623040540928611054191525507710347426003095063585791585667321524463500215464530448842534766624561037776923056996271176585728469589785657433815290097358779816003518507075886528225066183615187221882218441811198157926045832161203108921663976087017711587407069807415433316296704611005579687785553190912705512199020464803155444130597068781935044832003357719653854045072114770204185629102306364334830820814626877743347703244394729311398418096532398568063190852136660721872000143138978843263915906624897950698585186866745866790109037637750774310208869868693711082467785829759221839959950007626968912285933262069455377271988484347975702827534846440422526733424514466601568946232557858453989981671374667945198339699636907264157456977041314440364983194033646145348454830917069424125299252973606790113242729745286068891717646853613016142802982797354605678374682585969865670043155160829807214074425035695289485989768941866649390125945224698358602583181080833355102222673032817683596752846227173386306121798245179583935652305149384727984341591383874532564973588867127383718104217252819613674123167950118140676109395430982860418657547400996060338585340422289556198665091325551358280960162206168832195181819326770543995981605836922136901988588188219001291502815358854250614857006985614923024469388847939453125754518056839973454475822178478036117148498434104170822071364531736925730844523275898338288969276854278282757246585186505728007290386755805257181473112350724545728003362944329619057584275315271364997900398781358044595358581698101090538026562728681058158471082188963585186580599873330180378278847189037160717221499972238327041376940767469013991972768413383008037427285095937146609840949874351917389577613071204911158458933880913987471474888235071616996038125147202346199546549851996626703610779125765858550241796225274625817386310241143099574363385307944342008040757342422192191424798575150730366555780264996987250218611052761902234742201596375836341240143509102249862791934507895680527769284375546374671523762386947909335518689859000720419640245792414634679644720071282956391999888178536351908319570014692748949554748857738799274246315355835593517156454537323790574187063879912252938407301724287513562362639752518684832219703677092631257056646944810380284300817385698367548319719669940289776355471791377556898960672345844024024612076575959518005448782139053847799204122308753616692038299635537265567164130508251550461401271760365911479869099689608789417703314221286508973065116325221889022046617042330908290209922283310133002931946433399438302608478742145552276123975475814625407301621468595471822513340362923078179946769551009603020298269884801492490799358888928340630213176872009160686560273191449189712422484697610463038194322124557013353738950765494645526945455699417402899789381207746952232932337059044969570005635257892554526839751478100715434782831838925293209211455106609195986604908376964743092936936793443561622217954832391730434745607117194063906676609092036467670509311510373555946702687728826076490013172209439266827475975960543280288494466409258489342175158315208050280265190323773747228372926088898244862597263754640004508422499228918499493279833988636527888483869907394764016502970826293702358848620907908011723251090213579522837748262152317322042996944976205700553827587351615445017774672131107252279551963765703279672148209983944619507250042287260367380415926341330901493566210366332573392837701301956506793637049127916362547492734837956234961934503983511738336225182559278428995020720667663042770276630218896436453456471064625073363268515551924703460368142782441243141998272917687926971875638839493827969194531841087190659448801528161665421712847992832453811995544158890704040420526148323349469933769860668489786754960486491436186722806514028536579354164729934919508099201298746217520640564913834649312423324802747446709641041905542099381715125780547502519243612730076409198670225345611490047153472098043314708700778717154164484864058281430551213780915752230384987748393034994413784319809166956176055690623453044809654933867778311153515151212680170900824342271993984291121344854105596129010080681510429482089231246656809471696034380475176698112676289626385958657645620374686044954893947573888736649049573361199406627261900720789472835797480438790613433770464734340358513286769486898498109783802509823194897688953886972454694139972805828090183670773702034802574027471019155778499061936768993850375463755692640327912650464440289560482477855610913298250405613474795360375577108241211308365762056227384726877973703382546250177932567459659767386091373701852019376992668912941101072518288815396571119107229220076213789651995842601832794651908322467383653713819844661041322834063517705348294005557793484199484894986689073152866116257425436181469835970634731584780284621564110679071095716312038101970319681044476500161769905720456515505393493250944544042323837833854536115395631103133905751183017120893821146887259900819142407636070483779864528642006751062651836481417937989749682187895293214457334118421558256035703937935745950578635867079192027914093314094664714063611793538079103676473304277192624738180685950408892091085997788493609382444345319576984217617716164090756217017836369010770250299728984149993752879944872513256482022495717732858498941722692048892988643110977712429008014561602215299621010448728905160638478915348402432387423135434926374422952259295610532469003045302116020684872712800146697191472531093597900690574814802627358223981901251359557619077584852583346721004179474421863116592193754186735846101080571550467237052340935252873692699344524191411873231283381515386701951775104834967227198996017506501756993299621493059787329978246400634415432270519271811893148094273639996388202520806486914142552033987101969249505067766209119214487564343445756832796861853335282496887113152726523501491816730085041168292754657094760070702140062967043816983487175103242197828866898666993665378208951783075307724223086016939428035120162427939144491412090778317886529568534751395944531613333793312717570513403470403926723882616422119793708001551185216101204190346259226831555871769662145406175950445987890036990159733493990758023623903173002056961871125106049804925033946425496472376957795534441647660329087075493920779795376365603267368030280041160807486767277417413651332381954053877887050545491720353904266986897036099374521472858081468759828450115463093256114429746294348445838514181452787293504993571856958975733259396372677497288759768214806977985008926509524871591302938818789867632812602036819273782999410212694077142989522799570992839325777781513784259407193182860668374926608930444185864713032984054935554579207497826986220930316714350114258144194973194017680234421794665010024834666195733700824421795164686569664418020528833272302088283700337090796009054831229996576913114896288598502945677955298388419206944992166332705073742674271340349918972273787289824364041290008719232463206287809201247775908565016192087236721032923064675494845509836702454665255583238843793242752529002382184216855529390902918196653218006800852316487636316839629580720698179549976785554184712053774799333426278732166731359862621270651060738239925815646943865613232089821349734531412561121939889435396314407700744364867259894343647030811116009582683337342774422018832124324145312087962840862603730835685045503374050163700856837689413841710811706818310300972686724109080198612485714025685756535041193821703976131856147390707109763369128460325395071371956028497331470120539293327615753703264195889507541677895590711370129761179034714039246173927020953168307784008556600145505404927888286063086472156351809083265207397981977915455317407151039449612107098111186942643527039013083824466995409854207603868682660320037609893389412132273005335730960347917525193988192304025465706679435363444531358570515988953973901488001658697546973915422106732164814082633907388429442926947744866441495873768170030209233312040426834188766100665804917547330339430598857888330067951367078689306890380889940568629041521228436969538399467748452343261538911099479952395850956752716999661007573826122781348202047309014258471974391657301131541726950022490991699935017137610903934180595664549108669662737450026581624605078403534124223779279519214861028468762297368038040742112447888810642021303722574229566037445963366101493816905882801626833462638326165639621919558656556202917712853785992600940905277686695155976778835172380754928465871481927960039173992104258778382528922980477719029908839717595308342137414125616134352168781382049475168743636322333277468254247224156213789091809025546570891098664214044302901112118378659891128372289981047150335370218438585149088296202167055022958782728192355551305150008896814783101554649720607611403105184415328367499014378600818017123769530135418121380992073218183699226427954311019170184763916911817748097630783851961061914086936672677429099168840259539774760912502520592351165831280889872457491752543553077576494919299000170143927145305064872541513483792975269245280817903111286388268444564312680378522636832386446750208152548399931926372471045958219703054838869668123590373563853463062411687522220886185274099994538663839693407131242118361533755882959652965457204751728734557144024651612707915205501677801194391960958488790953154443807006247492446712761805010144215965111451481840645107187610131029393854166245267979780208948139032128636638945015090441596774530750719418518941208763520537998526216950541881851577302149230697898026130210491778836234867433003538183072942323676961319025541844000843301769303134384306841154449465381949890313188650430406154415391014288308122681527088871332811552237630393913862874145498671890636556370067337111760640466086706628256430432985281056890923990069786812740173791952574755493788981301738767437169571841477362669113135442455837968239320110047762839211287099149251240513274947348672511720566348725762558027934327487186836652956081912163345870364199118077788972323206390639420279777809633023113832987067123130981136995990924834030484414014845911424823956386985449978282432649311556061924314859162924689140450514769199086531685084078231613211493846978452748971851767186983532345192986960950734627867707170609155942330473475323730753064435909463249833037213300133180274750645342623467971047409237229141780662861873703101704626892259553198458833109982457103632875095642106378219189632806520479658995911796706994499586696466401786964120179076429180235475628553678026137248230625439506792030700182339410337789309628061044989348336524107095910675857247289952296834213090073145811393630596965002094208475548959059665577966030388849699039296699260433972936951206439103752590731644234104574873757510141104695860199707329194391966693873019100249545468199423575131669223669052068737257154998407544128697146226063077352269956498546802781619537045135857169959281330656000344415874055856226952502928590995582688405442121823415443459468905724739812634512990104224395973895981091858489400656360981773373778850772255950541667102464622213925216760417426574246318084416849097860303540744727002199628493057418035480031890445082242354830886833012534967656447632781555596394739997688254372339858955231199301783909993308772979568788877745845747374177524250729341233903541647101724320894873648698157054337754615033350979653672887154382230961101001942476976101349189234539148565605620287220206043824351391099749900042527261932317577776279240487425821579313134648057676980309907929289522139266798722323057660605490096922169058135969491987357524975838243892036313531265112797603386614334894438416665725329837607653048889168173033266222279596499869160691804268235585469135507791234166167304065667981705290854832337034652120252684999061144006171275790086909652948794978289886770817982249405825002801610394571793710069894519805221970777931384171198411997158630594763995246131051531760339833063957950814740312464227833662466951378069863948599032042772717689281293983897775282917935683126838880345231899333565428715158681914278112414117133939744732202281560845999288980183576127447466284219279166023609249919360373451142861446503084676599064824855994096167963885748702089592889250719665593464457314216666576647022916127071601559825405944729944698119095824038817747140026363670112382635389387147756551190942657182745325513068635045757077703686571566951495535745992170976652912578109440990664251245464007068587781684399768013330869344402637010281909287902291729190382141524312671864965033270341096153172303453968002068507785701127233526830577578169697220520222688620908693590028229542043889156404502155951309935412633917573648604484012267576841345994504308736174182402889420752103630281307872310848106492891369640330813363278010112672149195749742089549823224699655310936650559163010184419307034724640095186268076597447932417558391708142514983380458860542981255042407306015718874458065208207940387979843550796178089914824744894539492881256849742457059863357506086197017795968446179267696618280821350217946585436507703183661259897737381658602579138581603265988773757917546292890626252355169420795694318595310536320061192442077083716494087072481836883047280129073951167324741209747508168761012939904616339918952827736163805522929145337353236295079294610032828261635695176313538932605789660293664251906937631670800315519809035272547544893675129229363340012324265752095095135458349161909472293367056285203561578412891181673008307054047971421647171583647783716677084111740713740663494471308002554341357059120597033918382071397717896787065566304453868633222219564587925634085147892922358758563474395491657025303079189358332677774604745896141249694572120808506352876822192296515456393909443841871762831694497205948923489883100009012031619417975736960874907261082536172196099718361237077395802596905341196301402986597463716388191999901575035164998941662427829972701469031231238093613916346271055894919277352048712609329046784940728697157872866976285204041627932051922309072724472670391776128418932517502201875858149810605460564082035931050105533241457044445219916246534541023675173087569223181242729980636495056653363260156001372365141948017041974962742363189450170191143889886118835488421151273004543154165580878509995739356074476229825801248811683892847369090994554762229885257464543814878782078162839755811023644713131955932107492155633397439014861156657062602901228131054985060798146964056038290081835566060834762216751248774458088664185666916175636817720061803403937893126925594782850222437899930742514570799850681813617916486258816390564133662274487700549961445215794352328112256938916302952815462801778282859649892046220993065101841124149557400510645477708746465633672366419751877802584741762039995236657267257707238154133629992933036007345113030668280179123024092469107446348234259932727639380795605080772359220162726096651271179664717511961533805494977235757236998199514812757051289523507327110348413559698565870881233067290973501174585432433447092464344017727260307201779248464047293169589505035328197622033043941816259343690682425969372528385204222248694291887395510677570348411960499383045607647508415123854302931275909233475430994226015448349684898549649400523063322775962675141733415768087940639608767212576522427127462009095919260666844862340833300134989072364430332135112355022907101184145584599213632089299337352498699127443764644110615481107099528965905530966731923944339665009062556781043097084220871169056479650747240673329495273076684623306750802513161395974250763035789292257052530052293545857138096468190382536971276752745531539728140168744216665760781170894948351086375683362778171512071618931344637015865194086924026109614770534258914820635950837461240155930333638674882496208748410835708845457383710685565363576078198118394064402576270248153563907372717819728739250127748187401209071416122689903103209226570726737196621104848803661496240927007929702069644423029840313037339425425957835873927895289806870427337378034087193119446335414032013727512833022379144163732642722497521597858843868705179059370178330500211750836886072535688158008709264492892312685712333612480530369559605618005703331118885473463997472801369274074409245703490762606201903664659753321362111720371145396606906401931525915417098262208990828292674399430367397075617005943007267739247259041675640387539903033292573070818236640629276927300928000770445093876367498779328631598964818160659844818616413931944762067408609283299638446862927406829185595034481262147092884480167632162214352417252432243533278661278544887742236443012974164176767426153925805619532540517250742491247059220943053822922551126781681390877263794797523015792185387175249238494642068389830115248498676559712258481458114135261037542686305444232776968894982513743965345562979848088028541362990994228888471555153769195990916594253900643594061456302545104751817050050510430273864349062802877048784985789139967290510015022844188219142722040297993166685679339863930492333441254936742484460265984595982928283064293850222040217544520846950863019222546571582705076376370505840580505768037318064975908955070097625501249034760798173130704901271659782568388559249411511962220490245705392918337528817180498456501203965603451030988606886239429689781896617779887882447648541889966511201221129139539725692808801343221531245190870807187415279693341043798345509944889666830013909602083049199103280875022739425821760383870098177558161462739959587257253702729231008829392411390963266578748094838817097315677449343461817993664572690361235880356687426353061619531344732858053002570416439014375796088104066170605864241294371898045153795612140515698296164362368434034278623757481278216364549812149176666381962073886835818839082405494926626113715769167117189568915514470722874205235896610934980023577568795289848931283051515970579138818574811367445179184513259669546246223798164499232912885889967338546129628190355804568049269075669446196097394262152684909070183633509159661317705465695977669221309253170735744487255619638447043133711226265174335548928929996739784391692706681901611568479078279402289122066344503906156020032180706750095964249166216922307508408378962513447864079045746977519129399867930130002388495485326043274528102385176318694441624602745729203169990152686544190051035943712621950684318799760551958302838953873052772736236697156834940411811013806059983312306393109114210663457153460916315132723810930552035816499390554609174695602952824912564336660884365895186343458153575869054503824420731286896924673276884082751777051919242580266537077067533405891716769841036638078385815872045809568122023141276838884515798089781189922394166752564641317163907453409638079409859699387144307236690157136318619388934631896073085356525568976534076251193342090423294849349214447119879118776362040253856831482753623014891582541697832410125994279111101639425123540197593400235061221781783726508944661354349465433402548867058945219470214091329427384814481121398545776092392717328123508195633914119416083979722669172822231419112710460573658383039474472440852699636558578067112724481224533341118621334655050347421104246278954101490660796526072918726033487217869112380195481470935348995479868186554511794618963561504264001097099905714557526734760318901153117528106835862413094429746927359972697233889305604641341321511287050342324570927406168350551027153557424170257373987181432052771183357690712124278558053444216356780227838185319121351869963402659677343284808017902174304811744561572656629670589308779586365368275471019910385877860542273180742833012288503110769473797760494593410407795514424552044770486034969330721138665317678095693203684258305633202245691542087516867111528456532478372122796498981782041495914162833574359722982781682580551636944902869889186796105385021376009106400600282763964307207195979545398916393286920913988936242801687205537341139284162021568123672216232318612457587029603063394742964264643810265619404464921830905778736002957905670282496981053600901237744723967476692907200849052187720866279724276940948645893568647949517813836483191338103732506369481503127667947369344089298725896398720958720877042540426925717421729220602561096286684919556185875197776520143227443103337686947947366003678126871311035039894543894420899541433129071935494240958503527497181955220930189543231436678626596779378024405493521499435425001077395990818691503346499580582966065023889903546263804180473191648368123745567356752745501978796458442920835077018474112747678603189784877054608788809915200626200733050932084278965786758478933523405961462964867076532230497344295402770281844437374541217358574491717902617546126079891096193123949561177959772154933227592708574586097197057800941898074243514618839484009389405112031932903761425294028695806096400743279126771531333286697056591854942720610963344852931457800505941183150790265638222966149830893595419043644682796223352551306626148582830755770034702340403076450607858996409696404705771865199112673845499993135206438363117683951707343943948539322070737379055752378773604599012500256632158264683917676233875722342935412323444856931338294857677364379166454763102310342300935824234527799706443733058437232327610454628798384881177029255810172694759179363166327164871400895597048842445190625758354333902837293453933575903465049116103813741545596782266643850423325942728829056923355382320903568837734964948087472563884182438494560777123105104775767638691860652958512502930959620233840167798449835954424823216569310210946552631286425733459031624767413756499699236068776882505104872089109547183699687894344780644925400035382043039536953508445351257329433967189634150099243566904115107555181192284575194722852149235325577945301418201232583456184334930602829206793244009520840809183860534265530535124839019929230809230796753401251694527995006727020370697980476702419525333202112232112178663495519548973737653114011020908500038493372946421933714360642549659603806635596871161215406558266341837501323798815068414567100323509886109172177796502734926734303975966240277193709247478908869224440543334632926526217133449859950096076975959343889148303186751791352372062828622626791241830302691944527721833528983785458366375443086642812816286909928849439090788261008349242198664272799472457778891332610843262401519958374613134111134673757535195899705724248938794181841607270175681273489993420822925801397245048847760472526797755167496736076086781223943334256350455949632287457465060381900057392698457658183686803068393562405106804555994418389630107504608419983733787659499423447980805029327246050334383328949726746483285832382707420289409584379369795472444891005284474192181609974268098445026219234573812506763798516048991040332997713577433849836095858452463448073839143213716723755063050092706052221155479547490358641230322268994628868193746228720672690279295809244891141460171436488979214028158336077116057053139043633784948549811860016750950070230042301291382207465403332846758705819593653561392709302830362488977125569704694652096032263627523624886292079911088387184233845035897221792930399838501913933212124025191621976797489073555006472922974427496004134165112360296477568129716682789657678642080162886961370044488386853893184561339597957205106820082602436426310637145301399956703949021899064160731268566714092125503560550325817209799143626794474172228078457666179891128437912179936988417433931737932664750924560038210671383137725844019681935318290094278455534911703575277978836504054464964281293532242166273547506129438703094874818244532638296568219930984698351672768741741781249802501190919469572281290934106844499764789515561416578329031795072970272496194261028547769811605143744894493606195058416455776854421222020885851896327738293086421207777438882259639105143509697739370615392221098804285294143927438887893485238635455795134552189764954839775098926343509848773107016305230440331502228436635179140904756531392773954549205812900497878802164626970731270411935537948575708290282772236724064420704084220158231869595620419285467475827632134538854701566099551063137200355594939150432294537629897245358145448320977416305167372734686190667928598273100795910985360956026144082111790632019182593241795656271440967963237440366313073787614174739314732631161528804774431745532572137252071157560745322729368822183211732228804532291616736422294729999757514200901553040546388280320399785068245526437283874350747205533409933858975039217938467299461661964996092797879251678831832899980409809235616664735777577404619200726590199734209634425920257200175140720520182434471377269293485172847719111465420831722431750457241539250316337428083715866369725096005036383179238435945598314868162967459356099612619983191981467791352128903360685452282864194519779801923267782277704088165964929193222039537141394746286631032919871602572497643503349527649442479462846106383768733786907870025418693819520888659096905109979111458605651478500008013980509940110495713658941678517077994079992730518616698466599665513253635518613610117959241628450638501186207954681898665517442217719934120488423584666302610945955200411503561708614293200462764812877127275128213156581976767767564307975374686783785073782830256704539665251218577478313320659260245242589582468040720985510352897904461997665928219553525748397398681474304587053270846053936058062565211437479713210377446028520864743067433214100538150419306245784834315519713487084182786222933573588229861118320831709683099475042394107644016688655724894385217070385182374355012182618209625256794311865893743017761113245685059031283607760161750010924865732876416663718420136920286734101466372090112183258193478020618264581968363996309339926352352347618755968489681100569377186885420511572253912025516075686728168382660915549928565499618199589625321330650469871834726892425245592259916591334101539585777131209443798028663894023274045516510087810624182064245341199351765153766629631462432663993745851180560179094464372096743021211783275367951167575335019267834155553225491786391038884121881272765906036737022038701150780530191149133807454706886552129537293002966086824575664538165020496299617877332343932696231997501092483584798386503617422726274943632498104017053293983778361759735142595282770427423589291808078167799396687477336999049234333565389704913875843277108412684133208108707033636658013503713855278824363110156203962052846980300343916807306254734049879365214737017649216946838548499958650823784603683575609104015124598230588522494043595795976793375928637547642506381804103254948143455280160170984719382045712505996962712111417597513319148613180592461762405803782485729261681510223402370658650567731000659998242317160410202724708839051443881325837346540484848727372781689144731017886252902359750491128553956286688831641513824957767227090033189700007983515777503119434776258015144001707237263325825389567758561244730522071984638044426322985238861626336326795885312070643807904638773902063523845724351052915259535478446214915661318327381115357280170051004282746992905424021449853844845914774541975934505101705463669443421606247862374078038314635840324833025555547772639876503501303015531392745628570962316769373357167548332700568406025898927694690580447953101316944904772765804970551614040148707057852492943326824334370685074566691050727142766549129873633898809132856953890975975609139487273082072183130939418951702484215249995352677343047025996243765573247660491055412486515944693036401865852050598906311705467871124777597057114356218503460136281704146922022179492011096187423184909943205494219676720549081172256213401558274476318141822069371104573683082640395746861268573287212799986028060477530672247851453209786312840453829777574256510786251712248965344275718544388860111255326872185581179757633413860285426047834043654760340778861590492733239338368265853125608393624286970202296298349754429489580080484582052870583894840690931657957410005972891545937878977504683499848131089132582648264076966758304206712926460497412876916209107881912078871897327888898592386516796378472883713769435860501342821031675782921919965855732817332911676601726963368122065982992362146388948837003759976169774603726661416189412885224109201760980594037375000443517026199225151820999335651096658428406289111972318671239714708837553841334398090069034769249070362353893224274102988171256417259348581649540484321023692556300953134666534544224587774515884782174684720192734903746506631809641246004145394279787717453650623260090150091473585669416006965890998698706656547006432761855702055480182862448652191643774143662476336355799167521993978675853102151044659119421969857725878425147947103048287048511736296644129020087567554035657962108841901286529927879372344859672467615278410974226339895484502973796563378219291814524713600461019646373265948391744222556312588916379544143640094271697999017536781906511809376020936997615927909676030652721335018850506542607169928861269162453472117487920831984977546557682187961292921834865644108596024814763732789777376139201187522131352299010236417006308509479260042063727460498321243554159351753052968775983243637361412541361212605827203761854865826770977089547848831932939990102161527180012658616917286695129014278487482647410093625585843882506816325973306878129291739972052712952542470893068676215153054787776744512899534004528790152731917821687566536927928269072810934207728998534146247318941360537009797081776670096503681997175277396993001948765810928479109766086058673441179077278830097642610214261198793674135526007295126709948252726550996237763769291672137986471054067524153382459728585965924996271220143061915672576697915572711711250936695751801591419187543768050229782932414936192040302024492541777879196848750765358026229436162929809609504004973075974808852105810995959479186762215929569125361274187113513681819126060620308737054813218414740370744645892535407173809412914975654596159684292965520959581360229054002685804298661836993867667461938259356445138595585226794633340669626029319199043895407255659182847180822975956666134851567641448565468423103781574430732233404136935710862845823876963498914567526305332655991476890226245251336662776471304626772057174781791640985762578939399191148045308699189481314827669562644510265789138243977580706110570887091249670275993296345830734408612043386017681757434433336802523597736579509964075834912061466276813579721058280978725890842834199467528904071102611724699215219947502398081515863051714139008592002704243195751881003015035154716786006731854619320592518777781721511530396150913023213325584055691457261639913733345650986713493735893425196363214381904546812165174754742754157530418575829943631086581085437802237461647155095432491766852128789966621717335032136558278492857039454122006574947919848378607212387368196717936566721319646188785171799660300621193408293375231438960484586403279986688958716743460423070934852270374174138788683130482927082077265353192630601401804315778981158928323142781459320278459436890902473839338622277123115355729851849662802307222865844641563966897619571392118185783806181203748481207543826138172707559236374945959219996395588434699437510741051442508777064201793748357364109035515364410201608977534510774876088112637864890888054296066364376213148461514818777731352695342370237694370051652150248577052446547186669862772222749640486339107201060423741728102450444522847761616433016993966587869759145050952429635195405020312410564150085242985279898837007906194125623317852319434665474909483433543172731597948989513203213668558972471857034876096311633256241556773687520071944746556358349596236909354565226055319816591333760676590299751276262628477740158868716428833444253163208099244972852110112308428549290896647311783195465363724888963071200263082213198650454809013700865662006931594836932913740572094543997171810463187975466527177681447646444437641511202503953956713999535681000316842323281854067477359442006531065139056894993188432134507119806479407069998094699397083302018868250792119701077913316411982471309254200884603216970374256790523117466009071014719587676322072695589407393727828007175718777063876558519492248958583465277041289441533119586915576538828720180727455116688275228690778777445179875499444166633359032357425241824815063949901353485032645673702781981195457866272407623045070770864979989813296692058073432578885887468342656856819378753827260383421322865790454797769547372352056360418360009901372650132577192072034981376805461360628390008139341871276839074216902037887740426587662695713830271841598927435525542297465072847153579209099857357979103829738735037592385769445755861090230924934954424748283352568962383146841271284800512867427997994003357757025008108005207234058910552261845173170522613736337497496164551886867681682305608922288065989442144350536813634896644882561422220962382708587684810666475635519394417001762126212210535716521312814137630280929625957146872635877413460054854120868680457635645209341528805141183287133074047821635437278304665503588530515263897516353844355411377268106600121328383038471429312946589795717905774178689640543277390983159638623199191842456568014780945383376903413312739757828979979440546886104150127442369735718107723808671415194618914124616385659361617696592065723273979653486150308643640181153046998454150506641002686115861252325468979499367753083583686627489289208794503489789600202053443880820338323084503409725250430452843699011976987419862316676743420850043419096584282646828155347635464783279134112097939408899549068660036484292262589506702883916478699215875933847359717015776685199010665155275900816299316763088609994941033058638619964347141603827301985977538063170450931106292905321751323006126038626813254921410421789285083063352762545182514843200212095816702385400396538298757826008531600685762536480891913054832806952080865713941069360046424261946049584571018217449934601114610824364127856625142914691418595949598061672041075424827500511241983882711631617858044682813601805652132502196618044182784845745349925935703250441252636152770735776198058564576966078216347414561888342341006019185458807968601878279195046932098297960159218842868521976394482260952082394736046389085667006148436600127548696768235128144817785670078051345781819589585316714727400106653290957666024529114471919938657641328209029625328718788440182147925904891315397554649710265982429827038851248811674193868941303248613879455884685479115950584282200130794997772839654900562199685900709104458715202482544635847649637595096188848218489180391245098609274871318395227688734348823678555150530799330117887777939247421373056955246315607762032093271164848608734622704082139404817675757626708304209559896436391242550868052966682391636985304448285285717904247557006684036357732334260964379707245549578463933050666659420400855253633592012623898389959585330889310101510707349570543782508674698814551708381786774866773922249004593232971061855919604686743790090974443336768063396847902355857120024337672230340164862627768697688123997787672509727740801208146088093702623837095924774752980934326676602071785119829702185238186868966781937040471413363126277547209606234875062572468205804345310625589861154910447864736132470861065002549414687924931233289002491724592143307446381604164628241011503043939116787008464748109250193934666884500358119345661773372847523926151846667732198102360859184577331032781623648954400088887299619251925392105985533002328934332289335319416777563670966869410238604537976496302516588530679549099634205189567513721521602496257458411126271907098245172862457782114094214354738054708744639520228662276982556504029795532381663884577934793086786255398019214027775501415068239398170466657399742447318671383117242347465741413924523767768232449789586921555230789761009384567002606024976182086472701765543717199603758551473222819653275858121533858591605006339593980496743115275815621588679945553537476718093894990988349311997590333403403320115561229977082546236051034392598655896695368069338834236081268253510947052348252777081297056416082658995690104318959040757990443789936163833234499491428768753286183059310171371297122164983009292556935891740089478015109492868349525816326238325494892081469915653838520702485978064412865161141749980092752896393874776758794643252470272923198691032346516146345262268641273335057278862491344647997165551756721191627087625578177993193200609761132429156957298470843092784598426678977033359986898266272703200308787795253932963182725270707439659137454355730210778473281592923839322827206930157194051108435230278132402008883574150907874918944746986353566278598226477956004009292356612991598174641544909824715801223994238613949973742855438538793279674597312534613213776150086005462828588435007263817267978087965588755072243855312575547036368242535164039496131448855634699988016750653209008165590931720495984034031617682576371184921606672452872231897740109945992170108446676854280148934932075081581989095398465926068097000052929967536463129853868667216740885675886329006806260138545132964208350164614267248332885661494719011843152738679967002199023630705973638707377328330202353752361116938109350292621825916871229453141853367371129935642850890905831011898685101330948772433441860147639518551229872716518000063032422151900717561025567698704272158894149435617320308427639369245514520936822050188474895183660869840857816285732789304234205541639824500020226564245355254292179634251539612333407287750055192861875006364152763799584498111601519398092447329132174489852347120108661792055641784946333874079599658184668695262009076701316389127061838333759982297870884197558970524486317281417585881065835627142458932372387540179962300213541629042889456780252095018925825797634485425537809553338073232405889004123822900678109976802320647886533038662562534457073826209736558388671367679901642610613323463454572376729234339966479039595492092592882097597306390553840324374273944900048369383993466746505393802008481828553426979554023322167057811667987958399015853914096009052706220130854430955089892397468310319947292592339887263535598505343960658829375197186483288140293226265060830662204078784522488484464195287481428105757112780053373283025623690232785754338995482710876487227717336420161919131937650365382576931769836923002828252956441773344670940146676000813600977274381464036679867312565292424230996565526853342636114013226726828077695076794924538197130607453651081604803218307490622255873336796695378688397002523498841188295995112128913429942469795896981087325447646861336720292800626116536284924292447764892365071307539263596887541539471899722459232750194314248008968872380388823584197628055391511083287898734455441195927122005908904929921934193852521052583315666068291961722619198198343145216267230958474426390227829814834528431595004734664738572145265663430241197608277774275527808473473758116859559089137957135018754272948010626760911927161004627050170862105330915594840315039772621620156600292953740812441275319857258029634303714499436377745522700095024261509941877452545159594399704910536163668135015275263614013208477081026814628319894581432663021411933636966283283739463955499083198483783340473476177031472580341716420356853458901407900602005458485406064761508502986941429330289394304827907330512643232683110632034553306021332870110353938094528553593548333301432527600114725965879416519416411534876841274664863687374117357667280806161845598924824400655890981683200599908623917266539125093811313865689582394175255007772015479933965569385369158617927124273349697455156360607456149829670466368936265256762130622126365026998784972496782321475742581703663387158267430271085913901135143628039028318302573119198320903868416867668316301484375539446819227711469805651162214568327435329757525581247741323271433340027839494328580648905924568980914826033720787073368813123314040451543267953295973021009725856872796948711034250122228913125457271794064956608118522465058324548209834194351608507610828891647458807537166527248295620150191307124958185024342360326821792018265465876793188240791378030006902956149611558588988469521750611589821330374234875360633224574178911600358784294506675151077253584889478359442013062497690451040236044476648280601273796697411541712459223638666097978582263243055779947739203345167926737974272794199291669278595640379438584356999073424938802509574400244525453848177679752058915716345063424323766925529356438505883963614578128178115112589195285254933519330430531404052472253234934935201316032054903922684007158421609197008420399111016500392407514360938272300315331629970859884784198770798616909841021917778283819782622436439943929491828584153705876598629089402454308389942472010086821649588104069255896092401787382359024109205226650287034827987989515351953196831522790664122779351162455969725200612640422116871287836192489250765847071151600358472609246650518865574013838059758703307383545876383892560523711338580467111815205393927577218764432733055772803003904230898801007758409130483747501669829920962282103662673589872823212824681924398586210532040172082008784372560720687183217330179960200653479508584968097023779202629992511967878212758622214474424551779697493998110737443512877744635661205164959197553493940886741426931290718344264020396302348833618564192785919505544645225416146102048440563945953193053689539403273985892835781990949039841837624250515008750258181045136927078297039684216273430965999755273374178529261696671924612029768064882773867259962214656665810976615971609560926650310233502841821663191014569407047121282358768865754282745702913457979111110757458780641431313052323759821728647586015810051355449451570198972254470845741809596759597202854393240950016178071859739826498639934796709044736672339105435756659517749737521952844143957471098735510520867146860557026094017202837536212344717966503904659662895348785745422643514327470348723215480596073153800215881170542400778853974492132344441723474629629664514446122173663520264531074268999664627319123754094929700850394758640611943596517335805538182296085311820481876501924372289775901587585164879803029020499101890027790580589726135805664521158360496387512941400028916524269371477872813638314202802609932715912572080105660706244676500109900383742365638874408286591268018350811824535861012326377163703449262302721474704509051214095612538340407631722337650911043425110309116678201737126996452844261275251097257487590326431034826749914990709003659787593478163641984947768712066395535088805279471779674483368367205333013461968319164254759840911678603657107228792625580906819678103313002187513724037766401683645394965096614430136188491388227947451031146097748911225678296920812345837089792332531022100863591924146019648834073791073736219615668693262851195252413423133061166138612874602133817688653901902524752339929772112783353421535260844766943598334445832408471717530604407011815938777622412375437166401175761318890635986282821114250621997253122295778759365632939658813384606513352262420556359463771757059085719522336332569352518302390358615409155729708206960251010118731473987525656701372505726835155428631774388401744880130956431229220509761777804057106177933155888744384273522188982318406146972878214010452035602602942477951882181335075528533106918822199807064948633584537472137339504596577983726271151355196662212009383848889942778295745314894252924386643451345106168263992791590913541321858473325743640027132831735487360045302430302182038635735973352914919093367915539705552020295445393256821112781516682048090238668588829687567572693068099657223439451988630418778534850219520591483550488859923796154918891010934169889143646493001227750419687520061281812136104424128957436550152286628727606576623933263501336440364193835777508882103870916335977791821399009035764765635035072154274308475364547225677125796756600400674829815055500595205030143356434577746993602423681084878432864855304706411413200393913343176300276028579953209470762763588488988098235637286314442728835035274812119620480864995271947005008938601117788099106697852428216130505506092153238718430430722516439299438607023320171187899236430249348405358446753956245907821528438588558924199375851259462975292758508967775809687491415070391587004144227709720326505286551723477787892704174897117604125241497090157519320514180688458295785332189619096823131560770268960639218354377159627973605585671611514623148553385289826563055480176693582054927418519390583740945759180965021012846290123194044006814802408121800392330928146668019512452220537238675760728354094693623601425109821091848007278287519904354378135083050515449766141723841163489120040099686672988609635526283627191133795829596254118533648227746485436987096090623119090159636864430834686707628594855958179289101373488368760277784708271537117582843819930217659923291269729439396608364561458921920663120656020045021355811559342685309425565403075186219386783232501329921227976660127194080219880434058764708935267087851866814851053077146665718307924958833764230130760094340679889691728877932639970748229751429788525548576701431930124434589285055303612535490194123016763217466145990991374292686424982694569234203954740235455513031228869865550958189534881133368791924999882695631664608104199846175690476486115569058642474989985227551515793657331808652692059981885030488486922762551277844513015555737558580777541835591692166077694977152539160421867551363883028431744503689150251400699626987118880967958010598666348805631766483046019152676355131526626630940265281464717454964368125555701671487065229800793239768715537071971055175247051537256856155410245350014997585030086210026151167184899598227761572906332681244912560767792723753401483229871658020209703337196086526205962706564200043700992390044889836809600504460389639854064130997391158693818081061438078608726377739653027093319322628674707401019834790310568109507123858548464538265482015409257010284524943865450448391681647719238351041587632024614779670752479643921941313745962571864383268925261634270547889359735884241221625230550611397322869327285122155195034387223260665306629396504139191842158674315220071740862578730457407654929011289010238535093140737368032452009388565267653081548873570732774433160398307219554378191862992695416192387909958200741004174430717760117669990662412416756193048912436293130642925744158133469520477779172155661468624960471103021466244689561943697405726319016263099400397735781788511038820669525998528204012418387389110641298625186363715504528142752855622696662293044521769085384052455649548624453842763361846161231542588821929858106284551112421176570931406717900008290545610977541756895661240701622621716526800009168021933053127549073416345465012279393238002098164166536890768292114867675597787333543609548649684360657987442391143171601098292530879334737500597233726174424299033308132130286786169284803628789532359832477127168294046404030695220150653707021698642107084668666525280334145297345420152956585385377422173047680004260350377736638454312479055718307216176362826417895847558627070061170094230561685381387761960561607269002382341917300920046528291072845200889702068235791179870255753807944645346247601745652490931159798734252802144836700719526448005840789582083643594292500778641516958328727705993310229665676627992495315891949513056340716924477190045306630768636961690647600731194234916076640677413628832061488855470890908603448226350874186092556641477096384076818975094503462738540883140809560821274965665083931750818840926506246038528604445247365641169698723767255870267953938222522338142446995561140466845752671873714659377836400554265203012529139036278891117064730247717596051369920654290195992799575024694248763687371542322268410611094575097505149717317403648288051047357715734317579803444982596416245294597516188368671837446288059168504780799924224667802786746585096199506147848682669149960771474267391683217061221253846530433240543136546988721622840808018840532185933401730260130190696687115592283980329847544456422766752396810741722457495713604866970213586697115739364423314805144017918338811028262490496477497685594247472248888697243789243828480808000216639513607481433220122536267863002639643982460198621949461602900744341580695754030395408348124625917278106606659353256157589716449198852152829130638641781033664029512024838182339746329659529705081205029570926540056439249957629908241357922522304620509635261988198074507573090044703302205854270661221094456606661244392250757749249274817747347403588837010160495592529123067648497533772562593555956557682969882306920498351761602898661423601469012071616103411313710701548495247323315261665222643003482142604130061781659012556529298681613002596057579060331674971185200058648612024810355183857000129721449510515562394244777928707141099737879957486200805047681068856226663849872813550643941192210233105022319369019072509959092894089304731169252490545465599847329070095485582442469797846333718122428660542217864744612973090307592938235542192294457590565568733521719841839621525577103386701624040955981020422677215430102259274674105916387091943267869541608017003826392871977816289462068115248571363348938836601708853908010736307995103591933889793444757624339051983960611047073996304027877200629658430611015038055959017117848770038988396099364655315964793622798526491828960022651801725325618053536646645105310236560197563825622127133985444643985056411204280702102312045455972246427197426242573712166632152918831416045990018591205452053498617591710505329653216727632060226145009824661774915861895375101122990312561455033208720145173280530756933594196765562918909325238365524733875364775575319295708560293062946733174325430629304024578435292597475236613527461414174965071988941447419905832527095326652689419143195476810933397219035215701372465983748970153709959110176481970808730115836268414343047223282480301747837151283908749377310891351665350453955719457594253693621301876946682699698078018515369626848695810785996510252271099226106603875966867077456210590170482675933400778925335164405877954151550283569292109653494500229954527711203162101349932009854195896595117919033559613108380694340169725252644257406493837745155184422026338762168766760618997763313924711199217217526326102112457711992685786836834697947837146758796521115017326010767268291869745500971836044290821784263898539033867775292460343837737573358871320510240611607588976515966441193870714485343517433019961557498440613957775867175985858280173765393773669459958397755958742680918808036034503447339414703384460086970642094360162475274081147864947802043360461874145342255450821265566433485965832473234851188722757623993260690896315199049682014265732551366274168647992252607290384624142728319485522920780107150341235579503732360299919489757533590029136853901108093685600982582250046871064175849864953962983297010716571792329024261236075921157635000064131174693461540466955357573638316605240370444222176878787526830925058497853155956613797971744740797257956788127653097846001070983371731220887603490966285212609487545212433509059655860548417590546993226107159059729246291033099113786747992618315468522363248645804015876883919102406466872343903536835689252556111318775554420795135534895250926099107249867424792691703085843916086339134646211451644237434748919760981243887447822701033637940706180551886692740760023372972955346659716680211995989856955473346130431250925528192778120578201887353507144108755430475124539003042676315830367664606697100418254795156965467256337298033885711721486409174759259193392795609896022008009286900337679389032921428857865854432883422782868411984205364910828694119840490370172895573433293766997470708559822666749941334566430084708341888512774145717578451764408039738804448647894899442674194237795726026482079115766455584636056050210458295363145848209276911002113868640876084723004128837920273125188756934283019821857883157957848819698340553972383206742083139920499121491406908209364004262089537307800037168921568445284036252068911384745454095377757395012825213314797016969693230287916147971163175296094377665491926648093717472747590791766868573966063372876495340296386106173551171757232569888699592946789417323628804254555694531608998005418250098650239065795449878476372465995322186347743384375706313128011633335854689914760508792556129519200303662591826868916795271361994745026321075827255768283705797708432301017347594107735683671117977040874814498013704274105855061596309682682320257308744783341513994065270511426860601738157898610083809464560224168770462310834863552081904840333320447994161837630279477422004494684991532683405116072400640368925608383833800528629544404413482158293882036234907142897455428294201072105423202831996820735064596383262202794081213155930739562190605181707498780336975377778194127243334809276869305636992474481370277137044309220476557008028456346637108923069585974513912972421542181068944489172704313776426809908923294112659146779307328365333078301024919831953502884857117907888516400366540884953528513095184956243092090645669266498959118142538094467497028766355874930136996564558392016861464201345704821626266254790236119908478036682881033813869253900508503281471490727008510107945022604718568406066136305250261200899066279529225795169908815610806810244053850380908677081950211904505215359187241372073308127028637258087884222585196133869141557586123996748193359573973411559488133022148930476645043730334702444611173586406776188593308499766636465482728593331413003095261270332913401024824300415285476989478016845416278047785942256423911534380982697960223474668841648915251051239240865123004676209651185456168169416597972528027048117587634891529527441660523446013918537077397567708090247995544620655206643635036289537496907031605590762772706678663696468980695925542444241928554429292287508206689498356371505053187558041543109486340559826803027730059628799327088406587848535636944175156678017795622558785240188629358319078647208418952049407936497532243210479344292935613570804883823367115996763589419988118345244104041912217989394051900406187286184295244254626806399521873053492237456523132624559646082245026745543498335298950367316514234713970649882739901575762223771714343547449968547112338809880312178562574658191527778541321858644964011403844936854814449100719594206228242034994017882470618227497021214913521093507176908690942180031580906119505956809341953343484608552846123119359525727515659641392353979317011616792816382808340243766697451237539481950272560559176120904597149409841992980826392302959510882636693852511333884257696689520368541262714486074561419694945334776413374011243605364864601051789490265159839435117974271650065477577695059916229109383433527992966307829630075256838801527932580474044222892808780142747706293955690655591759274402544952091647998176789119040895104081909021751846813084216893385341508170703485971744173861018935926840428547091224120880141224955787665294710038238108442500861989463010346052161013942788475423260583078853762504195883208778006032603269709316956400913699193200981671823656778949480630569640686555297438947373545219861390493642817220549220883949445023180724253257298506091952504125083901039764476742699925123480658588764458230723922803951351375138735930711186386187144273249259857698618635184855346340066717860738956137148636689005069002850996040606634434715111623525563194001437926029442021419286496655205396460723357115483811338002347414589843165951348988653342628708706622259359852306875153700781242978862465763314194254814652451537407801361678510508397672689660025021595668066805146275148609275529507421322569387155254571981106269185013597650703069606912306400725071458579469086664811928365251742854005362042499270226573480671309884809269284879099184619934086976543169166341986523172522024848822035132573308329525950353006111735644694250838379403719342361335798785039410187217505909830123306715606212904301270767596111852488736893796185179705290567728955635767945167696666774793364624701000161095964770599366136803373229315022347040756186252325680297750406714684891412300407366268759813173771160518955906950607279276165243983721926378109443002898827067593647310132844953573140813016704186218430439747396322913883523355579597422039589110847029780908803552715724117087416239462548230460346069751769936255439495699187340503031138372587660176892914605950562924280550336228589074149798291309220646802169699738306638120835506721380410872121162130901107355949656495377372612987646199624674466900402774092412042920821814227840557684994582233649516028832894639596679125485582198039439031164942120765616899309264253708627909249824135334055513099601954073302990391849288408562390536262051707267109761906361189893163553042100787284398477817470730996040175929839297667093830751189252842734560919303279495654456428995622055673221598919231136116172511470133316254473009017910310478418287714722490113117042431234254144443669498152332271293618172631176127099320582187927973235932161668546509197702051889390928561130406564778359095691627828245339891159412882374600230531164558922003724852662469965095029718699510121951411316205489884448628133775461312318167205148025401026628388946386463649264922483619957364415861363503636284312893494028159442295262116145657558491010573048257571705607360525163102939556229771537790585530830853799469801514185923746880443755909910914265831555348090929356369028323207903722554009154700104968551956313107109727582559079329529780840725750642203550433537379365696497726323375993076023736765897332607072544471627674812120193488238703630117214129635149407143121084439776171055231939534635650943472784029591579478830080527944991237331232039822842034658965758316783610427446111182701294639343678660902141824997771926755991962811333654794453222385360893324704253656043021179812477168849817205302719789729889933156203355855585939184988268074783522423884627719034985366103045977631255535104669340761740037172920647040505616934883993857227465975427332774184643963155367974127449824725615117683844108162567156061487019209279081167058171411988651953475021767684398500585002835726021511740262383237479872442979810143400429419792297039832463786836781293940009990429563043343331622003012498343573307630529619438432105422373768029899998620069507890920589609569255402335064125545614753853198089903178582213014514412513593013291165498672223052994220733937823367026404100988045737456926336502730604849011967293534271520086170100952113294929318749838770117362640892859053712164884521494405860258154473015356076851061491448841482920088846794383564326368388666722262734496615022217673392348053894948730076207600511133542426874336306610873234615624038614959169432124980689850541870008666565325051989276843740146319626099620858584881457914800105538671841936980834591522477614582865403528494398737171451647471498950638926601291801853392598732868258888574652829238335697402932962784810051594098761726315314228428288985035510387558943129806371917120452562191296380780109370258242435522121671385887555612307015789893197787054309344155904569981449777295345278058960100263621679264719142664322896863469570120785222070848474123722430124743623800324094727265657306558426353727308256459518767824482426580070625891578295561617024074643849255949544546975439511340081179619434730828492544572961667895994504046947518683021624198286993309864872376116905677108716892372857283656240595816206854874684467347417501592769311649771116901627446854415525322830460894746064253292747175929279166416696490218897436342286761358727613555855590838315339005331425816005082346627417159197781783611438867835336237974271135520213773710158284023194155421427988765033561667842955994329009626222611040086929986991465553498286084815570400749608933439152037046284541027340811694965371589678073968350578805581328007210514906130110350347313333719951535680978642795782799930358240362864553183495194886833028277867190922831419551609749511044668164721197837645365710315995296157251301335333128943384675504197298524343926787900631852783591928674555857538744439580407624282281606088570017353485986393475287582851475293682802685554276905212156922367926031731454808167322393303820015811293041035480407932528274098475858308574896598892791642373370756524185811903321625254586846386727637126833105989804712938438869020609298939315541640547117331567372991063674407436628629664608168172861871509964930069457591742398260719288703402166858179698727396163556036932881560689763683563832357101086697591475070403115246328881337584172213200006699209169317192827165320377201341271320382356776028625330579067184453664881876803634361770874336767030600645465424085003775008802314442559374826034266205944759754614810647087560047144010410180420643165431578048987962120008996236587151587472963518954435265578255282852236371653053624706755084478451686947472790401836292497440050515231020712581884936400518276972793842010610297384329360230460594080710081509717342560873407790475556158496841754749212310908425630062820165729681319559989516012701013773393340087748529478277194260676603061219783058773801649591836265916757188971934762836772862381661291125566884542164623041349816730115826842185656983705600328274164395616521927843014849555641822248307332945029971579601377432781583034276903488568488664119716341947799497756882379146716226426140170499231201644402380012240150454074080948759271279369751082929887797984302606179618217606533322970051897394631713073127343617592977248314060634999855507609780801367645228274343588549936893647486772571333098960696904525106288814287243500997117369147334125340344730275694368918801972791200171463315904574531764119059305299606270495042486900418259297658562511704045005648177169060401194908840571838444609839211766645805818544612848895633475680004223192830315917972311990248594689550100882207076786982068585699284029912017902448242789599275874066541044314584393087442830209376511904296734737699976104357094266405115928972893232704790169866533314558393412053438053936169305116271579777024638797549958618030587606639937165642055476929036751232171781048105842445126444480982936511773609054596342373846945137609879561747153023516391985958495449224426058522295029705644431421595183229384193209024286851248102820787466298772369522370086799199051711219176721955639663930886566110159074618740623893361314565465225050626360731595921801798896727765284094502979156601439103804081436251563430909863862979041468183061037443398080146477636906230228544163426033132706305195629652223322757467717560956786896132067849499642793346637536852926403046229950320063338469003762844600101732972598584926920799042793555998606553010695927981355460952268662374780918984442976424297303129143148566701993082330753084856838288364817481866415453084941582995056939623894801448257379950113633735334903559467454833816259795955117043981244793681118059136442844092493845538073682821511086390841190481637760763243441017432141658581410351812152029989108165823188855812762679018997563765825040538213384756643611942365892824759704451391683926062783063708304805674651888976486145666080449083187675531131123530887649903722651455062003544823957046344530566917628377922813739741431237384149726847533930037459032095667697929993284746799740092844710184425060749829961389267379614341064103074760375477224848957994448368989066531257822542098575885924544028207906526354937656544677195577003199747429842888354069823494446993969675203034245083083008794333762300988039267587610314692489867122528527637195987797809674936420584474228295015077606594068216692577880848907443659690164291468893033589086425222814605682874097589991839271682232576003783869989732079736264148863158817798976289516966039449119714094640807097740091788754043490116369300001289675058025396153740808583790524337198271209506778565476811596034436572903658397418770948919992053493035276432476707757373136377172071236434742865970152701690707693806289451956472727142581120146837472613077911842700044429533583506478873887473549385570954039776773798178538011325267766169745363027211536849403633860760113062786350282490708056256146424965795976054543043617937112489653188596870749194222970670386874562654508892814412539044725837142313488992863209862483050120365906375230808710271445127090648027829807156278233858747764873067998999889957342433741134533007383086089695288230947579769453312896507814560535006136280754587034201556596605149890416281214629060943745227993676914086021879107611938343819110668060556817849676434859368089174604585941709967726427346038107398200513551980486198405777813769557058934016327780414945489021691691994389504528787143379479511853565136103567968384821647369792541789102756432770544320634199940268411752552163735158021267313685528044883775703497896638669824221015062277120979465048503955082916352920800197475963042120452337857033380849994673853547925357524710724845454685559956987372098986242987816805319550817083983299577976671366968681240226378683131839743224645335533734936535044522099440843574015490818740401732046242011622155788260249351831772032752568015509144898502023624142812079899675027207170450565583356394137194533020014837147640434135037198983537799643493296902123174753772576338449577878067196756803468714874519795698717785218002819865357550564451041348654687945251693325427871186131437070667411866364318733086785873701546374667817132907975770771714790576668521311764602625606432314093659651025234231848793238748567655155541206834746739917544255752207808534313858762636554447717474985444297590371102048648814024509497864961298879679397366211548678185678544428136902593174343397859426936204955384448170905525571427579975353796849181523268732444213218522941808284865411706048145848249153290903940480801434935460109946425189737267114614645726804915967397755558422969349322198870405291704980951325073475392908956060877448642360992892838980777567206365732741796469065329893059763616334491006992164698374142082306380953778528761114185613274237349108198416840252812144327494335715139101994269580504129349713648288883458622865467135869474859869138078358623884183813383360580370734440279681198154659118985446684988888813749599649706755210411755975615786018466024464295104477359171443958622220428392070208751807039975981920305887048127654003964628318874974111095119916044603407665775407839332042651591313950589790347180110055976427660482632719679168272104167947360383824096544784268261692521911333079281157772322759802123309237449720949305486294843851533863126624558193308527175684026424330429864736909177074349716989205830377745288130690135841292288389189387840405939494849719337498998344083977929568050184729606444684937913943714669703310797730533036909618639576474165435954744387980771495663531904733919294120071184674758294224409786639335796015322668228618698195205991738982899561187185121700619807200473642663915865049382543667148171989264674006203880417291627278203354318493886905741356248804695110817585815837148783187715044087535809639421685759136457665769839136441248261532846251796580458829349201206884412941189018964979245502035420179651981825438823046944582702919662967062611584594253392254677804011048662368037375640940829573885248868159380319738523475620028108253821230591045018385884956580732799750575052564494911176370958219114539410677788204082117789446619696200744657829777618648164357069471133551652991009025875650962098286204287578641843766971396282125901895826799064763764578322129421459349235152666431378805895397632691036123723878418736180278428508871505277881035147980910844909207481650320834324376114801483732468150769874983290671966803303519505578733637087284952272682275541841838538734108835663748392672224343567117293928259576661138308743865697614696720690988156807353339635479985954270413874841658516370599509143319139943856674024914388156632537121761403457883791522756233265264769173526743804817673906013941162020145075423576897175847460870850679787644990841266337691220607917370331078534920622043684298645581835765018555126215590302643489061216079792993177745116201522437188750572910724638735846744311933877991338854862509473113331047569649612745294324193227039154918207348213623453155337080199791644028129646390263537670322345119166570556500978060689247929658154409440180319225560402868156385059535515717429180807443175301741783932864505360136495513970909583037897768800517717224217187853432139907265532936862869949670978067681345174094054882220690639349059106916075221081300970513192423902604578549452544661477102855885706979475803099410561774074749765002653926306409724769617453911705716648519822481311854015057430300911520619703103966696599882971160852968558395893399328252592248694000551940143151093756539799184733737144514481369896152613429013955118000919408474529736740231803542493282995269164518973728855868915751222192691592345388059145032415138455503601071594389806837597261500735686403232330867441004761851321342320296302901347161503332477052354816248997179464470202760829614749565289437449156511345335827595301767555262958389055836706480184352870992806684337716812422902397112879165378043347202622993957960206968714656840530896714007958711114367212445606713418300087794520428325748090538049472603872695341014040118194833129980515189966919986455253870747372053695451393194535009019289987719205580720302288431835241073509669354574304559170746637328834442949593571644148060369423272006084909525629483898755778507222722018322666639438003744175079673918741614265510772926298019887984696492690376241570204536100747801971059075810086996972990976235229772621052670449156523832965420211270334480049255732195550202118671943119634291466128023028173427688788532981327684150561915588894455857632982603289089499277053658873426475641305194528220874856232486680418874139986413341120569165615583332107289561711770419884927959252964029825064179894697346970236851389583986263785104634317359257015442832716110568762710663129542551074825945375685380052914430237571404826006202051681198195395217082075042463723887636605363659401662124709797582932202164050488380180842065504685123734939243653593809135473182082848981639992227828722720077914777019504917475433710869411032679909255188498872777786750694304921296232273312779079600852928573517391287192625641629454728749564122661897680464055085640244780443486569358402669420548947701862310768051641911136596361822532299388792444460458348118188466675189692105913764737526593456848490836507216668023149890655686178179555144819301963738873022751904200940916589339813400875401547569456460099495138305658226687650275018507971284325528845245693015093307754922955879341927989108802282134819151759830139961901459469735471524532498554649428146027260960150298425775601494834796257710585736336413342113505541643954282518117039284856714902893028289237925135033971408333524616741469458096489591347888435705021897769315497515857782617662931855642272302366415319417051796806564583543234177234587667658365507031459152211039119521606526133334352968026376101967055990617206727276637316299885534750321828059388881779837132087295856703795285543694823225451317349686123581011772354539774534007381741934134504038494949484869238124577468709021734387000981520634503477649346558079661063089158214108468980735297077368677538205770123826879349302503756819286229066009313903608575001508114978909962772919641738154390371583560290403093479574964390581682091592135236904994075877903305104663446753462026167346072873352552702336492130251295760355061064258409510010866054968150621649153254364922645164922369490469756777721088394714980604503260537508206645645632315059129088059026309727883656531393564058441155711995229911834189016614722044693878227732787588347076015602994089932025892899463779567304589926998521201579579690499937305056786670245604207126406975073002178871187036034316027695551322928458059644530575009465554283496401945925425301360609386520121956602626694732614542727219485625069238705056225642952125849354240098928427371101778185379167902299561538897427113851293469347427953020734419442120500869742084088740780146083982390726942455417448396217466550512596604744711830149309432055012571731021843443357304619108976641414100000673705284768769621804692007839907303514189386305249100547798247628162463631893296772253782995401888856960863695310636080981030738117207960228453868197922334391755071724360729095977962796085221302889479574106785050728244578237699939736746323492506117234857866453474831901562252526722581671151279571025159665699375146895615343088438522353810996966396637832133062194675450037700021184867390207644147142816475687884111493601776175451837272411604553324439390810612019117517209739106286003636164160653401152244068981584375206990227684607205179756447422930569457314645872577306631365493371303097260376976170096252059355635315291463807503621427103789573471208998246378989138758045019177966573260463638675932974739048904818555434195583808589227206097895407320387411634389234755457881804997892377849743217019483625045014172647341316714619124551062168912779793392434589669232175873815293242923682853691045811435840529216829692469427906752339076017214173951401241122460045432129908608495532289143730785451830763412130087396900950007061122584835456388992267502598115399474404600095362660749333487614661877982627202431844809366142297439412584062967703622633940493101168405009272833610815066418089551248709615383438055627757966832725986971051780735675438115924965591893412144685201128175719324532740586251353956187808936040965275775467919716589715516019759184748142736101853329041455762274271991858006830699509314487966343009441684305326941786981590928259307469572677833787128703233057907969416606412909560970678462603240196795690641026760452284083613110034097936344468388887038103181408731573062365623381845467811496651790935935073579527161230266918674357292019034717877968756200404582484378937866461507256097352826965174390835617681213856089612252563403478467243477185118578386106459025308768657705471790395900856341182318313329899338758073335414277535534797070248995825942845051326109221034285210419669938964872023492567356587298814579496227567264760645493329287266479629149179115699686249727450922666340444680104938352013424925222454243876035616252853227199144949894498175632956792437192517469931733699397287221654770211152298005091893115102700845157908017540541995683762357934888053907251453021570015326736646773639166533749404855934173911026839987482457987759513431553848612832859742600110052543921676114421469799507276339003090163296507011140789357585458745611208274497168513060917588638071078090433107183032241256915287271462062159766270680152490848404220058567663000909303196145771528550040512193418397484324544950029584650804198803423288896971354264628130659939617993906662451994326771477272099421164135058447929209853048828643943984875198407376175761376851617552387458817617035556477411722470517579715398102737811937116371646014119621865851292992583499907774138909939478616640553787206020814427896326824050470313528524338389046466303934575805957000924242231666316292429786882926494379725070235982388834013493234753160038850141509698724864342114168949748975915837147111286139189728895041232330766190877985965488786979732971259697677186183580514856808025286477903096116648079516971155480881802012906791611255517435941280428254585924962978217517633206616773027303117794850554303829026835857418009855634616378043097810397837101035768278167949731030137808717115681845753690700941784154526492769591135836883421997721794151729743153542936307567237589707947161367281281039731150713288300382267899711658556030950467369570494005021924981379124220397900332081159625001283447536689004759018730218688743438260469552455661346265564525170593587689420035459614945414417098957210787280787426729223298729106339750594649866405917427443246788667556991682647118621797731138396612804909118508989239338124895053793430846579031723027486892122349977450565921505672763043130823009774056961518277603103262073526301772288159032285818674287795796044329584768007560398374226903857329444646559739235556682247666489697102188967183115407276070408145134085906669559988516305078044006523170661803088477744581831027987818594134938470420399636575596023819348490427389887803861471917246334948406537867983848199588316523251451895348381934272015362229996325573468490333446855052138966314440344532487883162727014372235334849862805946256818753607530582954958592744168082684942844741882533779142975781121053137558315023721112375041104711544511468514748321134232423223326569489144105263955967893788619554982874693275623365688224686265590438671995105842855796864368416234242582398169030594388439990688073619264355291197517679011298128664499904866487164984742213548589454015614561185325749581555016396652626645228968974028244460801956476468392546075026351541455847403132482228096114455666321787999582171506046175701293596906586640788679099486105921534057052324825821931861965383462661940730537769561575823308885501018225479844227968618048856483239293979067485999475986961225734196483596190445614495282883224280347955128669393955702333951125002336327548474659242142190955926232508061326786716226237040112122588558970667160650700946269739474657386566383328047507292517595167107996087682990274321430205986759224139768802843423379116057226025317548625172902572911682496680084002939563897064679446746532304526432062219043572398071972102266882954090376947301750467244069154127196864899565225350806278616290680589479870947891088403636282070983480339816585764773223754179225334179595365819581794305451310874543371865650537579976806729799589839606766161255840186073404762459888156887405800516155977759691761827021570480738054177621964540919093473348810835080105733974867580754103211725413604371813143951595148012737468149339828491607659361268422648294543177898593337459294841142086633867496939999519867538439876795316024995988765556697862423210328282765013175442728602685805568081920319943435712410840025709851915469955373560073507980466077261849852746031774055092270893096117891872033764402611727025696252285250133747892897601410453418985793364560544406967183238552727420396101450466250462984423494299809353595475286958956973270079200421382911854211617731147713490646301919800193455565093259515994280322506685609163545612797276525955896184858493065593487186718820302691875070009637302754371849529435025542801748277815932060415089274753601185151825670129617711342514718422234431930087985246284465391540172037119399415122532281812883164445202831033633357040440060824596788463382610141261379748855785525859290956666968473452095272836731222477980897603569464059843211191724171075816725117723690613026869889973736656089190668844362096100820268707915877061041181302517794108605216042901211178532281284809417982333010261415602620471652276363685015350677571609450990640436605304314271227378434693611415412532869174562685432656909180429577472960070822280893909399916449789233816032506047302423631196033160504645785933435921901987321761181866376508701876163662740062304688721455426470203918085410896557552417676960977320075139968561042576260948764490869470318998241026339189997224438679148930842233328800981953270856939883452728081702525045508013199968434266947262681073137735388666029339822684890153955275296186695257546012273385962657978542922392214691298199178039206968305617227047836152791055942279420289001196406878699953847489955394647402695193631710193885641743414772752778590130720546550990261549212518460650842354543593345781077213919534207676102345490822533522569679767176319187195173201465193870042849376003284267138770753173066369198693854797683778889339143127143837813019072294499670725307944934930244046047794485645113481905506565846499402613333629278110976831180268954543097112948298223523804139577628004621811485277079074043808730492397329516303725033642896777602617405333775293307079821274484828282639849842714117198751664653824916120982342668719899935476248057218632921811052100368984772853614820504965437079213890650687167634883965592300056208933193503246252487653755833030179369244140271462960712710395346947927080512857687970501203749413323448262065315394246998509711326173267098555991069756892155669102483833537846161161125074414677487178212118488874402991933215430263811424069875703028950747327783321896380812394512239125478660222366499666351033644627571766854622455256969420616130446123853036624746490506175690079719636697039607290665777326684905049408597908841150200933599624887435250164492900642568200613235356449328753942017594450946373531064484167321210758304746956188134779340750305298435603757318747937513881871141232557673856446200722744958230619291321805976321937888266331334620581954477385378841337629925950971714727088010934316352918865365978228711166792427121586751982260786147338808588121696721774095799106681539849433949231037807185323846414721933434317116530036636130422214025449685309408512912130810902142190338363394885160815593417060647864409074185362470224803717503431959842545030790962012563731395255671644463786227918221062261442860342365831288316960895658208122962914228438386429595380540477817870877442184213813622430413026215927080075257652729733068273189397015030154171551896872558828675779732413156882736654216625027664905864786870918016897678494606548745099157562368212274064058351260330919763693349306193350106561991100375379972524102365373759014819002990369192247802739774421339539032914108514141349638060269548011644717672204762846705008655501019535231986127062155483428511359642088349351716913786488776565150792890061818954661625883506523241909961825013021209549583724366603902280235438980876515520046149187519174843561950561591487395895268876695004674110804120839350553189448965307052019915914800850224484371511931331306824780886529423382192099685122854730415489622607191446933081540999929718421628637277960198505663300564908274505396820558574638499882894744548500880277938812497437723395021212604534088575278965274221887791696287284807755054709656351173377041449280252534613360502858101736433798612097936361722707219699012952459930987492339780316157437705374547979058515338722524058669911839920016521099508100094953881352451202637202327699210718776542159037025905117361218586539698994846025206212421459195708268588319052424760897773175348289937121387367024944782759923516726260392943746680520163743584358098597964043789273449171344819399246444567624488231516260473613180786436899747245967637467035473194948977172619906035120225786293763385922444534964329900302424634821706982446449446303085918463643252149256818618508781865242035069417316657182147367504497262246440876374917425871806032551079202566891887885040897339772710852991963254125291989501339718384161165309032443273437658789680193817893992316303334397729360222931182594585801087489052286080533050609608104573766300116303753303417355050302581593665910462708206204183994625406021409922395720124824499060147029770982731858488296961049969110772838612885553543679401513556900822602196819764229543604574312142621692396359356530470788833760663321007653697547980762952217555469882504238147160394608809920879135998463733521752392842388439469761929162816737418188846666625352997347754169621557739729972547119611012731137068105455124399960837111149515888406507438744565131072846177075827032130408415532962073191958235319689181290719134086712963550955531786344559736389729517015972244084093393564282592654864348628839800173185596283466657999061189719072087928517807246579719857336440755645744932456268526708375935729280643849687398458841950800793283942864877417312581721241445505435116861854439131501305630493708383522166133718062760362630702846634548394289474971138971238312563488608880753884208797891866855408032765357493728141013294960429479194430643380985432783658228772099150942776350005910622153857224392739833038891497072359499993159729213863280444469375998564860108603551465181718748405553370938718378978098489584418404629723300784180531962917474626220639775215989608850218575851952207183689978955952953568185964032827325607920410306341500511395373272781462416972026223792026223197527534212508456130599667207364807309967183678542045055461259936482616750462752697541816773611917522518951193142936848645579366045926686800910980347163904530990534604626642880746896095208127060642832769158788176012191595141087031405127597631566069241597871700388851806634630396051312834632326713052500243467046126188858510868951734901367033114741772497794634268191032338321157541611320642597099649035132450050890346126024784530733441438975339667548450483257849183025177545926413356443575010075583108315616853483723937334147077901717601091442224873185512553376895948039311730982647741467950999479404344264617173903433138992635268144505524402326280375787491225444420488089679204245629013719466232462489245598345106008727972988755550181319422549778209144141427430980063239267021804822884426488322601382917604616817138073016128974338055560699551972609517842831166543583993754629193471305467834315895725989344701355250333719740377591075845176126917672149181720437202591457487783477442810898351885796125196982676682432972539236343405722025254439982733162364986430753531208569151485546228845946915903294927445109721516680649609872691017204323614965608392868637742728167739787916538294921120714183624377068616839433433904249003715160667349468814054204817064677450022997494866718635349358806190478451802117603597777442511114783524836349473007298409596722745821306298654546460533420176995649977815063547606581732974429773542788686425350334938927093057721018841408329989635437543875249639747243316332613087499164017681001635616612256075490897449047151290721880988658759230362991515441654463990592406724107671793973848588647761586229830866672159170551567123301889046136160096443801279175196313720854291421996062400258548186136773636900431604862677964460402487167836750389411427372152618219489815867750077674138905161274386831688606599764120250101523725397325982567186767605350163219866411507188392782269628910342784745256798739775328668341876682750755955206218371739891943297612058357542030668263022464065939561545850310241075776420453887634417393860479168187782730734121341915397612729484891740956492071519548567829693129360057265631740311125319436727140716318671104811045247594851401374947940822120923638957552948536764045655743166733330028089835263273869006935109370675131285184059453021908089037115832067351799701161598614499575568736479179633369275974977125339570626285937572907822313611079426759589387755808849155612467000962560448727939323457070396082191823056899441947935436361272887708496696113062391210405672266795656410313690802716304117883102483024368676588288540466999748475687491188043994140790345818034368942878447041478197896753273478855686474706366832142056486327917862404736010893553662293780869479442164947368693519179740540892730636011613842262374170289460676105618883761354933723936135900172355864620065255989510195875299598805694415485461431441479318056215717573008498945225245219311017285643169207269898635834240841369095960766731890858270135193497553123825468583119827333298386255859822894207625691244270523164051343090074851824331521351812946022083802340374877261082327926959985898768746671254105935432912891888270057122629837683843334049286263230991901072357975328329976914217704932355934531774318287072288497498838788540025820091760116461760024837258499802746499154192456248215619471038572486982091643356549559913445654031248941229157409041493013233103895990180417536264212765659297751041732584783433141681388344886365306929092768025291028751646975450995693190485677795399075556819904466375836183447267165513766721168464595782992931505398874634197533498669243012969058568881806156892008756618554223276232305685231323311146266794218462144443779902341266792733950763425460541877698357671524414453454706719490071758067780477993328514145552917355656857280971522732754120490603666342633728150139800274659948520805972842131365699865360938717544475033242323764565172780152404658293056577823241658726867322886213373025268014793535788503822802529343622779469250687439749562630779887746211891151136363469566248770545136713002202895054946715337500024214426231050819186449959133855426946108918694752701826289672698741492796991711659953121094464593850017690913947602495416869530865876672480887205246513847923613285690085235401307432987494985039362521997554828360641573496785291457009094024214975200523781492825172210066318791254586237740959929333886913006331967978853519902866735265932998159073922402483537366997697599615188306237298692714659883113004173102829417390587797462532448794369597631549077393073008744668127666819472804459285789823077792739297942907846814780430737935796558535512257240195120253382249857893502184763755831169337193152222422059895030254258242790196970729151272536449408547649612997867130406914537027018040499301055976337992165333677463787450637398215897905128080063052515243661534785935817310083505450618459195762159263979497183573015956806260362430335493786114205650219140972464336378433781810154238961147266396375030829318657417542978392044599268576947617295427054443603768543973907502454397246967149411952868878278909112276066893204068027291127710611333084718631249348015964514611950253697979022800856796070632026941412844813896171199805255775263903066983613423590058887079863213822673315706782695850253389876573573196541329802045351479843442375644524362650234473098174450646008339607432322985816728604637188678896717871515309674732246019867078196154031899454590071377623193614152623975436426560102948325126202415883190874867816175887920798919871485930550686121300639134199079247023326311685777474410997310568993426829531783158035049959889728242947424202635480647195050313294004782029368487125108762159785017696150821216557835692549575957851782042546138057570347696703703343149341896632206733272044330575839665156043889055605711124915205275479387125199506098667147229074433604546670863450411260558011569108957912616367925167876550909275610589519928694374214148790881912174123366255342764359049831749948357889114006198302270783388022384473820755609115448546312204680869864265459837381948005043389554245983010250641869917247795545520293542457832062099234562303977814348425501011377381452078745852124001425129587800039679425884302986371900885021629329393572869995574368437714010680775129836037448380284149144429876229319125864484806864612676872129154060913996319740616085273548948206019642614428711724215633064171275240105985577148389966751073717917141237332334136255951741051367643072553236540655269047089347336157249061543005088318163755603657431185571995670585099002406794485772109143730017172651396254766123558821967765165936308708134790857667702799246928893499576108703506133225689324542249006200665732734675128221235186536893744326710516031566412781215821528914774461577704894538576889283339774871768899823485422885517356537506183096002507034281741559436955713648240910901783634422987820534331621580228565838495730843279917054080347404889580713436392782529797018739183501671409630049541761013189801137907896750536151204111386504204690697853592405552771697695792985493811655436424284797873350028583625008691985640501966727638732858468010231728306266539020334227119300331610130333207584058163045655175091692666408551526665485860547649618630508618760239085952092273511745614440271575062771024446558306974170673641724129619954861359990719346077808409657897721979730096409790195504602113084358039809420897850183978935352235906551238359633326487000119759129241570101379797757899770979454399969959306974502767592932681402893100587634926644986810679683822434715063472555463753078207402651401242649515979689483819256945490782811815121382088980955234085837344751289583890689652681055741351393432654992031803586580537972224362229636188791104165501193406175778909564320312922330594995084087323859610827752990385889581741906910023182392086384924516165018745941450615968777575386657376394533208063420280988943127755407484328768455490519572240726255865538324578659877836375510668134555999507509326924728508559912772471579918168768428520273711148868203712922708642754500354147849231064268586345605035954815337456625857161493506158903722268144321507888197452678075863721630959782139801511490366772511360837518192527129473832092490030760838899103690636485240408431410642087596218247396854789911418745541549683651098713958081326365156178890126097572788578012382566243883244329739368134195962881432910267960267277853082447389930780920617993223162689117449278848246138606921613820483921465394485796229888256485943026161433077016575473320426786966497884864480950258394826529317165144866378762185823014898555406617838589754452319668401165860723981478334417171383132268258349306869784474514518113520807042589903234193790450922415924188513041172899891214322426973626634138023079766461517368016095484976839406286014722621435101182908459690443223275429331512031692644489435959158392876349644361060710531720163411862302975007644666350104815554450869083526020221868157265553223981694834056429665664779370254004991821280132794375423427961032195152868139978584523171879797143414875680797442723710318633051597736813784828659467597279959316349533974912909430999082841761417017211158061008162137602340668339997273589618222098001460155236602510568535802619115630069245617383555074637680555087619005794979326201236268620603745816535982997780405169113238111394211700496444555690554066887334373141975389327671904287179750577493266399279476365284341568863509725480009572564775463797217904901897034275022687272193491278265025947202200668123440929618141005830125177442539861311290612078842991763063354191822309471531213487425040069648449204477015693074616158330076126352517630193062888510705505022703751443485305583154166591196006126772666338321201749984445363200599368386097546842713454544562906705058114966385651517639895823155577107707297654910426331784697863932833375261893185242492762561984494557962679618146209456052854942838278152061282694480064073903962550226995300486051190222033880329830864679766266025920714237486316866844487248741386482417691698889777113783229497791976943919232376049839580540353267064674769083699492587683612876319342551823676908176170656262015767212459374064886172489969364680813018485462631416673841439921787924975184889586759515950278388597017068165642862888116684652639072075844025432120427453078056176645901207813004223587193596846589058044560857728668487733330171793310303190718713675549860801012541321139703381739157069187550823534920562699317024568535662573132360420257067902265582213326067841937423912891066226325735752546441044361831799567836507391419315220636498199799195061258175841744926917240539179805044054519107487129505034003060650545707548221849149689445697758080022013592912228797206096703857279267337229159026248641076075672275932565030646538815152088391608936157431960393641986349874870765671477830918176795923236485936914954783584838030155689628914866991193943614843591560964286976895131740057602801755739120012678378015286274689392865603405633819041733567468251045307152465432753692665550012500871837489190140571175563001277301826445280899640000013590838807445333119417095167449110107149722046848616012067421673768300545320186556604381885042130643911268171326664479344430501980952257831252623382946353884497104685025428996961502112459143899429821187218332582544611354820232971087086043867286730442432376112779457183868576942544670423468654742037288754868406198976716261419253004225813770314590645372698363427342266261967821478831560301565412016364245180411409583955448976881635215193860107169784035162814184318743104214116321001275426666843280385561335008848777261845756518977928030858513568993287588489416698870642347661310059374442390482321164728977759322927093463234549682249155447580136433836153144235542651972102052762019619280413124375447323226253632352025608895826363477380054540960700263091146061004958962316422214988924498778687268825632901231096578916930376629624089216490452998301144738707313427560218953572667151489983787639059402405899518626085838923545949262789619851855728590658493794841875077410351469361590891040726985812826425593783844876766214252171811948149665484914237044801750576701183779905914071857132067500035803644653023455925363259435307394769060729866007742336982342269697077633789247811544413945427052354427874339840965772779925121980694349273409609248773265020711873268453482727581698273818515697377284259317246477870095394981984656203868808682602271975508980695163710258158792760515408610127243431898869990343429730142084937950297620869919148987865108708554640563757840341742031657921343857757597487726898030134599727492221305905885758537838548179812993239151548780772271316099607289836525513421949839148424034680822164439479583969841444573309545956678285571154069796234473858125295919462871604021817980870563448733153086443500613870992262770085659545957860244259835921038105787259767038844226141808107714958800944461440834498157026754923647418338646839781545394713346608310673568976263272349001105031209984499717851810449335651307781653120364965009574367442753722426295771030782576240822359944718014458804314093766696501116469595993360722356746719068039079249210456105008287058310315293010592455814999649931576410199207388451638848271657973898750121864471955154960785054521360967618356224895014851256322648159788007889643528526561130412120401978951790325512121343126965970828026531725716875576003713159092971205945458564841350170106566883913397712286667054476429219354737745834222176008736274602450571237638371737153108783043489121357153331769399234677024272636149484188218217722123043050409007138128274356057213952965821798301881101288427717658866807186176799023289990202842697466775547009665809096067429499509470477300782163676353262385887976845064914187352462503224560961077402863044992828396749904901359118383670191096299383174682084007140319371235357879456428286587242541494153358207077987215462904226314101720920227096947721633736897311166429968902897487691188381321666093916512687858826026379011608079423455210403356522128942159538334884644702332692524885901490088497052735643549878418860154262730073480597818045069051700963299851255568081637988806188989931263535302299990277034844339707779924036522291742154911372005698802226529978985770301130568032709465534248197266625927984417022725303338766345407412885651746011450544871877447660318093563979485382096179008689474584645977384516073290146094037776595878701152497778825478437221902400943433009101465830072498794922472308945246288835717172263252751819313112418744519138939747605434928691503229686553633392136224321542727307452356943693767523534056815733024909030818458682274147336997416066743434197165209039830403434391410204641068823583249510481282018834854328626962356668376871654742566930186049066426095215392488260446311989434917825896265556495966216996665147952621058226522011612704155062334230013397068330946417636387557822606257714092720349213975210622016363624032688662635362931292805633993332854324916969761568162738394693302941185356554636888320704631063982950498179984674691767419448868579086116451549643178211828903879724776016111382988233259380563122108645870043317571410239335778036638055581664179380025810465593405505178258606832757677544768071716338080122431483631357722527413223580485717382509043833367867911636033175409089150636746145391609092940076032442120004775678877194930769350510451572761646561176474402397176680473262913846550902376350142191706309399062970866117503339202548080274841929052347597588656878776817544685462863376976510852254497551059147154665567317577923538757953105207383135762231553444229168234863449872252380554199724880907888065450275057571285118233525717821188356207606900145701681225797474946504136873841678244230218536732806893308747382261892442880820024016941756239070839303902157432933920536665114038271979877382191609445700888950507409492991015198619289146193486229649738421745520040371684316834876252936764437623029334031014095845179467247122040157205388089534538785222570896970188197799817015583370379775408270850656452653136781910547629953133674320027011116690703473533420097010578293025202660939166712915340498671074325596348109027180968714181862499369302565079828192087064460027471545074453347504800254127747668600409806832383715072619125727602905892636825718231893391694279324924411445102895444309090402010565730323546881424972648396830271897737510452280939691604082090001300607693466133323621120046764189563893571693500187934966361507038515020990949788487653538646409056518339233663985591563669297139953806418103496470162690784594120130049717831980246093958940224032636408246779206718130524705906480265127696239776124771543634828075266471992364604523731734916841039379249462589926671010311848067262991776780636702477766741574412923647488335735900828399941542174825555747657984918418708876862500243716620872147572734023620207625977085378209959781702362420280158382855870198519920910427455640503222012171994797161361399558906016973330328066507661719656558454878412440202861855734985554573779100944294473620154211523065868038024914192676135887637719012930814736621756810780385874565836873947965939059346575851922533060227025829870553077688762655869175166083385619138346940785951747072189721683154676675093807424338090468832500651780241376917998786491279243239225529231458149049879774588795712920483657624292732040974962015846799450656760821018871479393139834506416098609255542051928508855025458343858079871692305154573077966418886834853368596530949057952996721272047268719026130849283479565626230836880134014022161869314370921459012747396726081897903668553137652112616075922667686070789565784399329177217180996842158953230455916980769843667078685363513054108722200620707038865064421048935682244534300695141838343226356919251210426471699186740832548660853479184908923760949860739680327050288562085839666336364760347437188865917965081497427507054206351923121998554135266896753430804967573568217582333667355663687514263886289776691317403251834036174509744386796319134489407845709849513703126318808171669773893269832113304979401075181176203336887402750135872223581944910845949765496074028739865447566621916520437977083146621375139383310297539757042064541067854201080148800114424338195127581702864396075477636186335355798927258671518102618173391259498431852706161688477212009182039162556190392636758342082183889669138336408107728596364589166671553745741107978696247741450696451602478934933005894609074154408645819803980724065892328200004848486574037175655513821585029094129092434308570776338003781995781561961624762423682999954986990296641102878813741602150926461245154929320794732892435521849268852343168209836396869181949954491514492058008195765655294373051460738866005041316056632092742084651623414749084217168703673570838215139625486046369702808145769527007684397955316571243898603689135747342714286427849589965998449718965575408060356710855129354855413948965519413809695279421302659766972399381521221497390041317064681859761997693281270043073297010022124796640029068034038242185180675775906220733167565486874973987759429741224124083829426034361664677949525745222297793741387754174836868164189198961829451832054268110105601846259454822625933988514061277517315704081395891979252767275149238995248867528857825356105118726930739615583548349133212632602583874893393366515630203907102883142774488351141604564105227409826324585401053927180865432603005593100367117882281470612403163689900248765081122761737532215506005749587943490093899246687581246890570295582712472151543727484023185615485830026433822713812476180298822232766539010413955113511031312483148811525437567792639271560453239236464714353931332462862831375990549238058942637887853196766403089368423208670012246882929994394222768307630755542573165990313750208381361536663150915765397518627724679768525714624689771602719739236781821525403765779138531124490748043830886073003963345119529911322584901374155120389063710146645714797929871973906963577999596738098335215685977432086857096886127929436906833384743651502043446149060372608563109870329855642626291893369576228262571867453604833342913514824485932472263526978586736021268695040158190646195740109972428998293619584810950259053814525767802264900353730888240030855445888827909326004743443196386225056800222911145021375076676882883589522864717558585475543572314917403911104403671112503468124324060045681127416991720996514854003639976023803882271602498146053563859112351949961687382490669002037090140594673708701656214402151730080732756862106242527666671567041109320839333019043002190054208999824202420930531954557170228286373080845314966053087732554027171322545255675088590272656030184310750518034817319064822113247256710710662999574111244916628484483696512235584397156745009813546157848356063061924523639798986290464713688615575158961804328050704459751750761924167525155253835224653019809298360752504537941539736715683127687960244926497350091635263887466526240552873946655192197431259654311547284049818518052835403362433182021228930383274752457536347980554690255225244908210595904486142141658720687663199085730842441607144461492594962968389395563219117033855057153888469963419877647601146147832568210197472782005255706145654054538807848226772817920076816130058920119466331476511419903465470124559574343871805425303120770237203939302955915157052872864857863776516878578230411349878280993606944984487720799365181184332222926749298144923317311182987107928633079447391232917309465681168855688138164727966709232200938756254088929393587277934596870254073258749324037686199105366459848851956290409641389075676025042064494845725659085833536960557376530830256788107229834920626590766094097902073057541630640360262918002093396747899407482537166393474308989600110033724031948470916067412303002351610062391594000622873785622328030084858994513124364843602327925512195716296984111940597211882207237664221836680688816999618643493419146838008866573734465206554600346075545610404290019199751144874250064194774829587865445464923880476369356475970284481719429297597924408055756211112366473351338752276194094627089617787947830331386807378501341932587679033497566233287107050124051489725617661307654532618541085144944889162281610784355878720621847625177865964022315844087352065053064966831796258733966250400008054177584654856220198451998742812464502640936741997146677814161651975825780323951945603443725218388818832602113762033753269916102598031706733956893276464501825375954508068924814297444805248743559684393470724683442278514755012592010381648245360260796699453100063327274695642479610309523133666099889321805425333724188670297284385404344658437365925802449352314823820537110861547254277072462404943664464534012763927583616826213244901620071836921370251011601155613952237648494912418365026517057319946974956121104715056163829023415116261791538548190380622375463076913612612773745506582045928389093451597864865654905734706882419667859207567931676503526005940877981239621274968161541937030507685917252828002967666332790378415901174514525619052730992119951791848839421968712342506691198387115834238693350343883252832217314837319939704271428390608688303590557752493108169330469336229444852740315138276309230328681999505527705792822671388040269055792117939699726085777285334508797817728503125901635116743323900399772089367751533433208439512999361855711168832841988035323290216050245524939766191984868652803489120830152580060988839988986648440100805583031677007914137133351343589939039604666215684194767270678514016747996970365028992142821883786242757286260060605571572255119917100456315258771097082261241622873332746431286433619479337945184902690834133535076601340204838364363826561927886117400982413848240559003940958053769572051991495568537255146088746018095751323769547051115879617799502840525998073615410199149054470009067671518597984526145961777169273879120368707817898323888480422412416897230247342905602372261901933360834321747441898954344435925518000838540209066955664365579109017186472343130195510025274900980080535261202116254410726724871308859385973669051105129319614037684792409785093985110087439011267369612580621314437070475336388705012696526216533216272873879021362559725119250846124637874501583230940424138015283354617631434932788038227627227238493041910725118776232622326489214399666569269200425006031468656806595744083325833846043708921968866750861388253324217457561131831145188101612134815648902779102133564003930966721852183160644884981336336185396079530454151868609973458299797241259364959622853449901526834278548324297428619936894278890806521941413237096940178248987689995626829784217585278633549491716466930368130410496968249336899021684881274048495812671244821215675637671026824081439384568323824766379038689015906445736891491206953518219301129335583889581333751821194371076959896333469172310407135705229303767440795205251825227159361137265716248216508711695921703347406304726127638560006783672292985330257863404559738517846932773784316393402004432634127394085869845385165336688083015456059817600902181139010054749280680872353543193803759626004123338554722215282050156276540029083234562776106423830709712033266337814275946841233845358068258829792374483559552139560745010892742736217420775345058363167960706592571722792930506075983064778790059667813684493548670548046683101091938249341998602537234687470701585162996768656548698505132571396587867859795301516177040010395893208219186957510652912090677399420041159577294679807146738855857576820210090433587042353300304636931702202193702477019103605183455363050915706331333166477106653576107797035266305315590533460101312038156610201291304075980245997468940459817972374012018748880679943250362989285131821217390659953320410989938738131452376426249781444539913466779838825653076728446402196694840158633079515410490884428065095143671995769210076933218356080909414500061538794038423064139266630955495445380436992014494343683510949157542928404576382580207506941141139890289685430893944745740533772451924125084459637734773305824815532070782495115194097771679863328164545653493129076511453029970281778972036719901489927961609181848436869801278495806434166678318556814531706594088412606145849486317559984929057639571618110816535406600942664944577602317509640118936204170469340980541617356126490751240281014909463673207985064724371128986325691994846852275022855305127522116980337011082817930786890970401314252354562618978212046957214506868949129834968103638694702390342726912139270946829982324274595073253162850932982451469898738391009261306016904394412959599304175019823700852581925421751226394692166941670119011680634965244639851772901518759055879234714629277051466090486191609927052707319068344281260804342421727094176148227701450609461863362081788290984322365617009292648968388635830871869701717688753075572318487704184517834147462393688333816913302724654333134879869422777858583132196982544025380154835596531301926639701412232772366670208334388812881434380133043559874970756983452343065064245092252529716015404061350313848465092012659152916305762462842032010484539184778943371125118893225740972521548198528996183463266912613445552738562520956757457292376025177930639494204115937203836455650705710238174338129364970159264314415145327927723729416898133118386618876610004227906447956001831877720126614870056633845729718466825068942078881471204961886672709522032626591388396646156653775709012544687542198049133943994749036322795227421186380856733308295929181760115458557159164323613724376427108163292311388230004713460648408577468236606366597494128662417939156211294229848263490707717332706318292122378985838532681555254388163909228004267891716329885751550835166834268201509718597935959566027875875859936335558032696657139158350109712823487247978152234178642126596787080047393821393584458852656982920836621787177047920354725828643131715438613674114762563834516701314715703440386285269210755652609181165019596623889575855887866343199677996990717052326476492084261457340106133928214097016118594862839545931686996261106997322456412858174639766622922125986642180032007690949522668167557928426598462347511370230938578611463141221753927406049483555243849509486676602041999781197671756865933380726407293981384776670981214345083433774981178739301350261067908439883956475497694999319842085349962213456613126872546513141740561921196869369721672903948126511539733397340693394346327205386085423154725203088997217145322288328222336648552452850257704212259997281413157873904079397534488416620936627787341174512333965721501089675113546703137539925056327875480972518754002876159778361033555576878875253160022412891819077396839527082452664651637336805924191329292537365380268839520255661349178678239929661191489980582073081530952500062846186003748760851948493958853067918259441365736047420952045088243527605097995001697762100770829316662984762339521438400388378789244289185492057777676774235040974267509185016187232750271130025745779015334313457286784548434553477762589626671878439894062412244476567639143892164743759122443214863009629965938419257479950610392968261910088849949576162483085207535532580775061027156608414747194795140343485519784127837301586298682811142159723103232985299450124709007543070085561534546142187900800107557068581161544824169939104064835334137657069884693786117723650719601367878853223336284213663393706684325475286120179447724595242957929618032659999163723091080278065728966130411008114993884263520407786629484348965221467767950514115977949810711025732979675513302300998989288438081854503489064488880025750616031205667100543920419827406306882058890548935459648635597141970276617246054187319663178800159849596414887488758346467325001929995507320548039673145784204169131373727595347262099636756977634893353053562820679889374894377890162511824823577974152595814981768727877868528303311929331386761790698040640694692117476763927958241325774984396859119663923567189831474879292894544668398116559418290952195029106721683276694667487301064510871907937844640338602783826042328090024874030090647870914474794839632825883367194204375451910660922462170157516435423820511946029060089403698349957299155801782983708661930122121283180080821683373791469378299024522886241510407868375311965112509110681704685408714817160256883885018065963098389423502005724356925289511948300659884466844433678162124895011969896869783152817118871969923296332136842490947072782451495218276789387459266749363035640804585374075586896385912874661518352086815896550560466205492053226832591268058664233905357766230687243632625352531670364931872641228656034538018495567412981376468135940722502155312508787896595218225494182744517846108973460119260518662922994272928898291550750119337227993956624436482007716616115442282299987585604478586837359152750216410758841388449365926290802390538708383063141510809828319749777150086878446544349909597719630370238814216919344356429435038615709659563946300649337180282906127046413112143332244419104932807742347055397916209281473866654543804951460625493577420011727922362349185255720823519350255438958691633492269717764369206551125939535861814746471775669515249088384464637090124638900550892603584398485419685733289224242097346241929666178590512260137226777717272791091535209804469778520787256075816445263849041473445123662990643779498211411844216059793066189234394081364933760845682560427684173175484180260112545549762159578580711104470657213883852552483915488999168106447690186202391015623844201237794109791897631254400686514886878894934114042059299075853516410941885056088231270795022692934715087142718900924721262348301192342234726917167272393027043156561772943491961128008432238196302192968012619449734083437980427245775217909870019477868156315567195436756378021133686511246492781611158533844213496679379324652502635430740655850385633187846157409035114662366072998790242871892401461341450710337385062699652305372532926567847576845630798485958726510131219548112384743741240541690642994891216810544646504219889580965228815441577540019125766450577820283551695544865158025037185572811675310520248737762040685386456512954632625076408083594581148981917691184307943155251871433169018671278952874286583582187882247448106696717482419812652266121481574931393595986485037228787615469319834176224032107807578949401708259494289199502523200920979376577509600080905451370937445440081245850491026605272793542137821795382222723770666713096119201362143323636563620317613947055945748825257292228524759974857231544280571702821036458975697708662238981554667785388682180033341234023514259255850479862837596917753792272204267021587621262386279321135081759948478292536003610206626759297778068129212949894516464580292512116726678030822088810755875457381833928098790988432822758917128817887483126645882887831088258586758287684747877037896020234401149659779892713412754184773017430300341253712997808841695662494839379599519874211973798502977947524106085764916618396535389601535747985121927948152530738481030263307258352818242579359730667596266473361371594786379628320656956226537209049516973430222456830067411346475290292871633465659920072841370112307902368194752713742815466534617150259401892906331109792659165933379685782328293262705854466927639156733297446513071911414128491300594507277544814219888854998859461531187163490694287018993767728527197870013542188471683847626823589303781896090653478048654288042217462491727303740777479731739588184163086148334992372099293708315490147042253279445883581839799122491143636562038750360007436148281857883849241140921472825770906126188759936827395116556589009076130844211475861969163724818443986212088209542575629421836422250484876296502455915604088499873351590881499876859216758178626521571366689005086145288915088379476078681657919735245189925974361609148910189253083831310422554364445405630665970211007376016662583028105809781112002624473869829339549797850367067022116624091966684191789921088937592924202442467771106972856133442660676777258628705413976330466592271114121787437711324970613975341939485118369355391127355203826532640289649861889230817040365245323300971315805800384249531921359592362575250761417426541959902605378704000432917768976005410828482074289885108909628144841257433155590156643991910908239692871395771047225867238120107102171374943286559501364937432107920206973683897723888570689188724931370485670550078072823625254965143399121198760649193239190210618041932903143334513422693744383145333771335383006330404122926915708455759463793799859472417740007561178433500635721696561200783571690210188615539778493376241936842009828352163230703204042796209743637086467584775076667239866988989876255389962144467248661153351653655476105294156756103867104740901517683104380123947891695528169996896920910457995996234894681589423356234042649908008420926946075514808425138387889048142486074422276954446611039661468833384024664759686884907281156248921159093196695623248763603196460753456757503222960028378745610794190253495629727666530988567122855323113216006615449614886244189294657462407385430315743257547633270370405684382830494295705315029441570100163734444656207758350113165500424012908967578016513185325239893771220055455799729211226259575468535506224231070560704294508796413156059319720638401530724351619971221360366470267837774262371822393763377379389152583560913079988108300539403294537605470581077926610010546485287745942696785400426876169444032064883372087069551713454661443047523493347780375047004307650123331198125441613318444106011892327606374561351626754100008336225463783734515839615764007089114581053057925164463407926323168250712893441177429777903253489293195923054935434473220063605363351595095191605295975975369195645019711573853638543603782959698890181116034926444824832846787154503787781539441722604226121428875882079481579246989480333765784932882163697341268321037706795943548707741043135901439197997457636802592531922843475128311729277054825252824980241667555655282290956442394300354957871783189449052519859684142094938148552582913103175562469828854545754378451269254194314968245114315999352544678545315674250148519918194230700955899105916022743816040772078169389905464903445753349651405069910741986352684424970046993207603394349373187249524220249667432046838081253069561242383089033216137914183856939032330080553442256879922144720496694918656675455039472735347392664786087330050478150744418503171499696151902466621637521224614565311866148783086840498780680592655258845000808684559070433022021993268433993690984778932054733917280109268857208955320184568753923318835519746394327872220642718576806911936094153582687661330435930880593229539483004862394284805871953137283130478764353955678995071438172109341989596701832302973714210477483606947596920414517642157515646559544863673747403858387886694084163389174345488491823211779696040135236951070957278120025706914458691928559609132239840763929129050681626874678733770436079723725465851740157362364841645980263514237231644161880949435127397029846941874303931172296701089844743257857934022098920964882805593116218962120133325816337109817020063250143730015228047012127527107460480657738335745803122961499163152136081099218342913167191634681744300747689378097117306461327371206545727892357229806096094479854894676294411178308147942721257090334200691909072755960236916166588005344957050737198564431161173125213873331400308196588927928159838342350606101053078218562055267864276909429505946350889123612078043297500949460241640802975728943102994215709392172786745101626254804430630935484778765251468806596619866707445162272155070329750839323142158820824094978027281443884531400823687111849905485695479246694038019095498071785509534667482518409616337552099971147255105551237882951038338256900868988131323221433593052889273668556168469574956862660257821558499687814256647522259670182870871135541630678517366667123328970113271809762276695150330081833931980112577543355079046414170854625609209489361839485818216962538346724270628923852368435936983609357375780053678369654832278525588206433543357157170577255642930555683856569991495564846258557856782069818761443306974504239529475876977224175725538234580329529444356496264630695624860769403911994415479478003085653888669174850861803372491852647073736599186181267723746695702878155407012136122127356499413089963312672456502795363461532639831677791721450857017746589600373478920908420122167957854471468256443464646849531937704493516690877294127110653164033784250794090458004303928963676283407786124406235719285425332741276881053012926886127862284353957321827126474926911568669337611859742554462375943418391993493723576496896946793955703892140847687144547171210959743482344512219039362847414890244337888587206905975909697121485486337237858577598739981202233050444220929569279074836397923189615978320470365994816591637909663123558361573061683602582288987043651858265598144871165958179440478182834542315963059299774672197341753526329567366140134418064236945004360657689466031404870519867027033987117204094641923445770983355605679557908024972642597631844510899639737171055330563941734895184875952243604624330627754209767376131140741001712167783898989217457613355455443996616672156234890841200169607275373239081938292204187873608317781273384873968427350224018194305477789446795838856181379946912947480151304737811919365972970498228589270098986158959026446614011839159546501805650161440566709519689149224564189474110312874680719148203009359243871652806747505699775637419490072042169033746410377757388300172923992356794325106078836216120842999140672784325386435673846374087488169768810049854184071544949467256082743607071531469710016689105567461000989465646098048619542399384540916557432872871128344438042804419467326607360926159207411608204984421210273224011384720358569739208353455581623342778052432374945422275235207832962538320013937320635765968784826567510822206208296759375665673622922418887950873420463143372978911660819096203672451392954353973254481899749325496941435266420630902462346896649212574453094429594349839798952839623384773712027798274388934247737105223472956274442936536588318124805213426264434274928773134453220847527935085829086899979703909076111756239622739548579496335908703094071642152406678484663565175645269233678911415738387428314498369982821538835648202803535869165002311104007735556664920856652800796390456670029864153729015910283357883968550758373334258983011283362970777755842090535196696752009011765252497936466953477900128915766062390218591623648396993398742208600618050752008380948354256965964322430449949351609321700504059084028509834240218736168085468774529189959542058944834836747197605206744427069459166949424707880147287575941174765526348193523484703928902461054700462264147035029374619675109455858945864549440111661763642680456345373706037797888566203145361846067717994723264522615396416495103352086015068114006933228781895529104308858591895288462222244535412814854483532816619207145524565638591176313331674751441329107048015402545304600839130951409073882681715396350004534342226930819672581801823758387452004856391948536064213984521056128829880760819163385373718818514234747586057526971173364549901263970096718265117017550948706892522737153773023237040143186382920488002152940398715891664384271401288861178011888862354597300864193010690818065081691174303455243206648818171953500946147782049870280496005494222649945423897870595512764078893189080558051207872545579179826920298744552826793174745487746506554613287055721509365453282025810328524520280927243448608461039060170093494307663985031052622962354983233286010580593870304449370783059841315372964834876715367231408799582283826257984209171489877962675783397195929810447252486460918306871089446022482263658226128920713386700401274035200287390615446543395589527764082795047912239055340859202091274096226159133133691944133146991454365610226820527061605260697324514927561342503281504905989890441847823967582228716410595970324818943851992012951715425319362736985753034937795782859887853034743228202702143793156801590788452094770026109799499471932490654423933893629954485233814090449974774874076610977096649302329240420707972318153595545916169979733287956350068272729536092668078396880325518173993361103910632990015750485969483929888612936639933991778684717728075724110795805924804619577267437809690966371690105958568111892691450234405358702737056134412293021914201667336679162255673531321038972107853756922429527921605857433072939169356867268403395894565488429567355640055633335061440064127568294330368296961450942455038003532271109941447672685357647919297313967036290092549319832959265392385073871611258385232234456669831718108081637238839036316052474565335476855893270693896760565271087852321914833998088053823754343216260445573289375319444063711689972856033784956752268077889907960130004466580276820050765697151476581088550690093910908961540338268714485643258851698725143504698851145894482902453412730234335014915627237063325390420020466512465230096644832003296836117971178236695551191363651289320096725533264670879980358663493634692481924602426329835330899941515953741029236981422585823118431705812595955898369947733252303409588673784809178758717524411669399268361948551706959607239434244364501209818434580601099976816766654879695274326585367484288395827682523992121590716691054004101364943187518652212614021655041654173557634193494994910558416011774081472763190577790276710189444626184553680449821588193177099623061369911685867424409994479771450001129258836044202767509111514415974464246990171441463904852441854399776385910329185218310764281806502905367167397157523526233948961704424538623014824387388176584299095210082248953120049622993561193742305912461146410043377534813838654379468450246572623173067482287502631693942730546848656366143225417083106904792835061105839491981622287311761234022200206576970529710528751182205707402971033706443814606742829209222006579940272564887679790800757700188312560542391814538851306320742503305037656377704205066551825112462964979536694558118222818566187129450248123658709021249691143860647365451562340435742561112031565831156566720511590442392882025657162317217075518481505964454601139365035325492630837106285822511604945876089158780118060895425148838332796972889090937453809988536342113062957058857369330730281812464336178342298548347413846916372604660840617453491562637190059082803746132972121679130332994735312425597847934807669552052328075033468263687146438666085410692499904214516420396699929333078120218377411446399274508317999028785544252603423921180016381035961429487736673120626781073307070438338771602836197297753844491691959590064047136373170844623164021920720148724565472114408742567423323967231342086366262498399877786816532876865757144678552332810150347950955575861221352203263628134582604073353992583252375956243454308610889003760536456988843830836897090124855842402228621041805658146945678554579305234354799791368635222699299427826835043961030136713400839018221340875595234208869537558387446066440491387941635912202342583078583433320830926320780538526447244852016427698586422654435482273784412072752503843000510934232135796392457238070198832499225393010726147027516591605897112196021399409075557066402917212183561421561344897788031996881032805697768519733819312628807783120315584909304104835269053038819225205758685533251259971841089063707370338720401876750643054019322365074792981475628995218242144246291121830297843417004595821840872434287733411328730182254561395114239988676378521842497578819544638085206003465983733487629545331458563945218869079599888389924047850605285473962556599212075495368599953712534938501822408283153094460929558408058942587892455298748380167094918325568257823932551686450130435266708799411925237107341734111008045117180134056092485672318868501355089990074618749585346251653260236290693978977280556669676735621384643109583950377073308109356234363935221068437371541853188849144094871774355029648420711939129728247114766996000270973350759439404982016331776646263816414448688458038815402395942548285843703586080256397197165522170062704979544320000209399593750082826826205327755334680074461141675876892937296269430705803306990659122217274173996225940532463822240211459505420879004452512122592707114435476760173629180801279815174673443646633877173046223365677155157810015155725523232513386072351103464573311441543266345093183707821861719305579388301461907864434167962715770170117275819116395461157250552752774993949185167398424261399664701933226293454266059318514642605035754952051782685436944065639046411201550613187146889292607051196878540370448798709793055361479504609826439247443277648390881010257926641486367227563239233891846895010382672580385819168172430354134660088378285134850479595842422614979900573940550605977687735238892550135389537519747508973053474216617495013402204401563744936727608519761741305391992557922537965511533461346190103496537774896719258526753459522976632517648513879520983825689879416714984825984676908511992364391431380478536988874292734158700253391787609739219984615357717542873868539230984351337233259248468915107493016007984245701436254657753125879555740222913222499252769605272197897036846424560557660622134405785108586365786841547717841400018278141071162385069330035633659734250852590182108796257055581223987871363277503630453375038797376239851118865653559315537734719962578790951694031221476756645867752875319988778207064857723327430708544177953684951719980764125472986689033422473628981648665564021377555822454024168603633013805194254615802555358796811561825194674994978483110551555576486662039942628729777000977641478895972072252269557177106396810842303326630776849631952377868583962954140000395183400070115799795473358672508682958277301192398665636042875623207824151379118062291007353951379101872993450406477648922656301890219772619354788195968052860164058120844931413156912647776127921423889701391417836470567682705356348201327240316484770024639201099461758333361393615521813559396972987822967562027728107120752688771530931154077272918997736693950453206576167863946608613997559380651548338011161761157500439348379673371745346432188432052645167030959997123280234176232818332659123529458987367685979667906903101995308730453770179260310425677082961191122706046506269745567358938201962793772893982078640391069185703976095844251794098355208354918396722996036847890843553793337887624018316073078128583531281244154609054290344536035195639665888764127874400526572879897844691965322203947456025331129113532338005139873487421345061957913732415338568755661311090606721617903607864364783382297158546141938849596791206473793671425483299918954879502394462031544800199401868914192665527269315788717577347504799495066290065843934496711052340591256861899200503977524840106087371648906857947652557884293113419429538576349665618040105900103459723189610127934750587693438625076285480005305456443682569193783669865109844859631719283392111457516108724189668038945600239534463638659038767639584585256017076713084109929196827845482514408098090511424085725363549089062085205989682088978049414740225732999150271650927568524058345201384125299165928057239666950349013571852808504634027266289111276562333484118080700993106360321427363227102650578412786266475039293632773901673815841311546852101982503007547189082231707362290539013502069105219604543042988771470578824278265627599157216945850271882400105820853061484183810976306147402252368148690523130847683023211651935722282044551688513211149527016591644986408360218468459425131950998114210875699618622439883754018324115278703056708895599992308985280005013539451393452330674132954314978223581701155714090230319917164599203053717371258233185305891019787083836403233338148962932897324554620668698094150765935437075699422713070475839819431085265622118168612509071792635905967441203601113899365869306886961446920406896427259683831049332346070665317785958843236738219959164534560720829930007250568386148021151908907667275419671923537638487099932502892562399344624470031539672531197784886058480647081598501666067349644435185678215034426160310233136979426045708535603859897614060975719794472196726761359161652600311777974923848136226310650357022551035756995606192639481316056321601486742751766099299414775828847849331895435218461608699001345509398878227409091091856606540339502550195016300537477061367452726970924534337152906100442245737627002242906646413874240063913547259248256285236462512520576132964132295033938097524477662882018861248385146500344952024179888139703518095878288321629595788859010426352425473635992698050169894988344499518004561426259138264151512363991571948607594966058275074240336404744508972619347469413252147925157506558551212997967736444516785127990609882957059932869180113669062322861418425285952104937545056930809739993888352305344638642782769264774829062175673935548130983816579362729039835396324019083360819885705469316703823081054408959936934557731990087510378406662037032691148273362111745496909982667665252094463729683050779528667103674111194778380597388690718272179560080539584406605021487603663279307498060527188490399924658202340909723938313300097680038258313244594788779883822045706308287524080502975059972852577877689587462273608058439041938614476986876991389237544335763981769352898025935448461833354996419751177943791917095468879752042518990077885539035115976602899001418080607274998249136208219481179256167985707006893852698833922109539159493818793654167404762203791762399186697458959014701387331883015521216353544889018108681729256925762049952704652942628121832503340753660181652065036358779796616838333828617446081892127930944322736484896923741414609914742415867209300377320358183107231632261072687807935846974613120490173360403352937262252978823418907237043882903772087594351040203381584412907727813243292192197321365655412966802551841333513266142314155548039690738267236172998190003004048473769383912084310132548174518677343945749149139020448510852419704127144656281962390948530015322307288808554216746890801444814408638853414470396519236171309294157952054872304100756572433280157791347728484892694882467847349956446763322563659457951506036219178246235823645214032235019087908773911065684951614099938009933346610418889902060635508095670883111060159558880611213781969383156308226573150513928867570691692160932637154352192815625545268844655820489076287705333561172672165283016321096028076548342472219194396131459060259776467420988479871146915099900353397018929198417643352158414281888331763052180281132096156888308861364703030822412180456129130835891704104911997399151337565431362427792778054427482383734326778068807014747946999901953224599419079557822610142874021428450981727476891606483547770123572887176276418679183098712027065392656845254307853547222607866895247517157992255146409295792365538054817044783825539723942118508440043588416614200522239684646616650673885983888487367489248921536406404049583042384836347778869852455343195937580449563605815354276490941057061221880424577210622620704799458261552800326582611281999391629507193215763093525342903410699923936006332905609192894431604963972522110198555800377599559996738166175614134437866606242762043877427704818386159637395490674433602546184503410041565686080205325224782542416311571308970658137133007659541341268168372795870772322211160348743719167449534087011078204074216027348759586254674544484941712763005323009479819194746921300271102981281777905251001031874850577755781459876719996722704237744317307401663996142713461997291684642652424605207752118794977406299318372460335166906455785818299760161768422141891626338744000965060918289289807803697793235124799525091355556948141601283167980763312910344949403554802865214099693841247699832318036002609428526226720974494719746609222824410924022160513266555360794268333952603070971081454044172727300884817201783499467172346581445642157628632491692641849292731331413418662635992990943806221104359172704000059384682977127945475376839038153788385587323369717950423155162013764573777326991102603674929492938986123783275160296711888506353866882618541590152753483833503275380948529080284339615546081571377878108210189725292401208776300950340806251448746775919912508524297632730917764890154745329764892632332553776664156282103906386322937683919925264885886903875600274307887114652949733514685034544604478909058831189925099159330105558331156479336665577927339338843890297247805846013190443456868201639704072353388015983394215795788933804079853628125686345342261938225268265041594853234932222880022241696468791963212906513992543374474654954024518886340757163968659635877985638507810597342987444018667269985306951756562659461965501773079968736923352843586637931744291896215274507305896901892281509594095539393976267654574331937470863383019735590809289169197465539120813921208958346011077360057842653646707287377059548355447129100304052603217327137819316712583415339508542341711552465653026405481180167557441933048199134604361671349564898849013159268737685623304002519600095501913430271213865061235167499953095854707738618421697099905988488580047081480903728613676942352708378940252334266379914537440000125304913280574190041565679357704364411180063863102966413640131487116298600835438830442757405819197732750960668792942679624182842792518570689525947977097091313824657488248374725468206498393788509913314848060551085990839062959262833198907138525612464535784766897864465253872125021416368395166448194066613236282540795775702568708026871312351661473007849541212091176191719077135542621871014213460814531420445811939713797432603452656612580113026100007011720957568576684694377854990875364124102106194112381343660999456800478766863234384691038034071866650100176657168327162944528223311131694517721246468045545046135685074192668276989466434509126273216562845526549580654209552208768181075415945547482762912890273523188380917848153513617217740820849744673338908708504265922439490530786348874622304142193031534123652267343450479083827047989323851095852213111583594159651285308743061233429340436209347853898165185676068314412183660900016440128358149603346917724073847205079619413945954292765006491134878239297349370581686522423213443042746261144456356413246124040170326063676405621898733219542954006469112503381024580277289833753273043174322762643241274712268130532039674764237851000095373225031983408877717720598110081309848630512215654068351927521675035946677963058314185566531284243532784251428061706728011123474421142894659418072757390978934465485272184288434928858536401456093810682113355720471568443667541035435863870006991664997388021738343478812397558410105559468940303398104376942263475332912492483671962538910361418622872892933035673242370857725395255519483893584691257155218679543000462008252803637519150235334275179370016269630915400944793146353171659596768393764358334065986089862668449094527435295975918599716189445057959575658479360859474999974112385284786461834025582960860226448941204163089087591209700206137934871663701986752703695047138786099606227217794015105125454079415258919200063854931083922309770754479003848016132254103943308090113287331751549724025799924666590987779399507450447063888164643230047951255012726223740067199507210607196074049320934243534398453436174351829525251514793479305540199954106174147673287707497261452829683593105376363019165888622922652348136726574079462448033690142306460313029457632332572786242087601475115521854333749405769423370661542874623319665472891196514747500449538278726294895987085290930893863018768422915950671855210215756662988869277575368092756217566226850437204800798044445543525485073846447921702448621360286655573916032342609285050758076589438060739112952101221101906984576308917295412573113550971685200279027590120549005113728454029009367890363995486897109419147058082198936959902270620397400692143846064861392173166962690738763300139302331026602727340579701095354942923281757443330586351867209085100698398357423644744164329381958573896607559864002916574924663785708144589803801749433258104377727149243395062018499083890655997559425237319593907386711348566655902332464063021407334071203670450409493699909725522226117315853316689167662702701550373055291848148473560969887568487064858579789504929571897900602946872120043685093000020952813659435689742179721661899041793852201076697807639985474332613914647088667572971781775613519517019710550158527542997098662539126969706016692012712939398590550924054907361532531104783371698779347484683680018415813099454291316970954719440457649844479634372450127630459387487961163305148836757195856191550725805728173938068720628661142652133990218906324324953435402021904017677943052207079244859990824553997179833776607734909122731131537121757633978315013616935411962544196549266846864444365155828634357210618853957778482727634661022929254108818945874440845273715924888451077001976857164867701350008356471265818443907000877076978218453062423263839546399243610813132543321951795158223298574819800718907965198484336357114357171251361401871181234264306191456185449078378019580714690827125429225025544800373357886607164226702343145845538786992470609444235961320539806264903155983989384563791795509690686293411342366129864192723545233865843915909358397754591204170044092470220828940846954564764790347545803917447423293749240190525732382344079241722124738301300902204690039409168629222284776066492872042991934800164747464777788574573380274260561651899052501920477305668390642379615136167298845321047346477097051720746786819772497917857982784099933711139833777964333936602598746833923198597929828298942494254337784579813218994375363060942781328177852230503103586011544199201275892414131672431613543034061149889069215340545060362089224883103806518922829205533471427687232223693532449625714873748805194377223259767883293935607575273525338095153870974448092540484163523366413774013684295030940806481908617725874539888541845542707843664416791516989334059426750764955704545916593096485777873369036263330555868447992789263649876961283263873706926201221350243649555649601144638114954648682248348783953074123959870858044789603243878327997380687845509244994591958222756475678333243950956148950594430683054096615176231720912616084935617948510522555214857458758362208676815714931051629441824957150129942762680152418030104363361459259251402358079687477272283646741606190105325198759992121249458330313718211559573455670018131973665674542742386190109405137438356348032869253045017857032438171062125459928941439445081878087432096164924283689574363113955595968427202966275303350116548752836894539701343314561239906164717445249351911432564701946622928782357251276740815543538849233855512448997335353348535371084418717933354572893754544583726193256779307927440282603366634524149025495493767139901988067009025884494785361557600130008647833816289719649532077348750426850581170872738553585171417556080312074525676049551897601415586956291509461685864573399887226370103605791328199400228168767387974427891921956485410491194040470219051438786277802121899611823463647226137642682460186632985445069925799937715265583416304592053027222220992535963010352933841222621217243715080747257712260239835514039434549794084238711683721311964320181533351477102570139401048745786225208698545197967230754586445450951776743170795993707169815875952599122415861668343604394694897455804733703146008910064841516623869229343911713628434241027470601443910903930711271954061941422394691773473207425992179631969771419251739267454752554058905014362828393168186304703295218240774463589265899032698301266311255292262908723214837936536989342963462133276042305606722929994692748405184893006752299017336692140354832092821868821125058178393382120856984718899338922237336772297517098672557576536682454107433346456702065739958919140877818910845212380675231456833899299314986134725643285499833114009908390283300603101345595937717709885189992144484793690713509142832871518010862954833885875359772943654670385716133498766817442153162576253649264122941057426675876647840691794033221127706875151738919940201202371366432901772857190115185007243242294677970848884312950912896807108423750375833493439101061134055636408274634286569765089140676932042599939116096422240098168338855883108730914332814247845290485426433793375229020773128763637849519734478953583146667930807026840340712025883848768080867369363230236548951407436745173587393377351296275439002193640820545971334156679017644825082719787690389991742508815236522223857362827700007918315775258416645324765364730264402761298165109470960092631665564392154894298995648442126731014497212956077069088662854931690882440990636616132323692788624241064739699594986188787599866341939216012636550138093701635293232859958226248183800832897994946774865284402145380671135632288949922734521184242859767187655356331162640997359649138977893187235767965798744130979924357313321631751853357350413772895251251915178182237498569185025328715158148737278564247430778178257365009969884209190697246650598297624645028685324436301375452105423434520655144589980284027010822949666849998827057342515179997352319547403429235540826393444452689795504409740165741583740250036351721096342189469876561527805892030476284939796086100273495160166677150342057352030342893212003017162135336105816146464401751388678123311801190254135422894044957676521250421317405928509309666219625080458404198400311936760506199658974674120196140164377163536839762289651114344918159428715914841436751031206022450412486405415820241853498651482033145035623352859041902637523737425094076923131433038825661520768730813390803262823976009712586724368937657750556140425438716846914028556147862719134580784093502802576308899285419519183959908420033925473397218674254152560870412667972954728271658121825674777065163376580829113773918614285147378321078862085449788711374455091946161226168192198457090174469016693569114127647722392384291827440919035361249547365484481413417062151907420940638534972275240620748313139001622460750197279204580643826025713024425686686450821339038180912801021105079815188679547188610055516943071273110044082412161870564093279006507008331960898485506228771924741987199124326107208107457944372246774820582372609825721680851669258554451062427906168831201399345168225898403681088787761951359710823129838309432053802921149306690519660201672182692036353101546071279755750632427644469677331302272079789135443838424862686603192412815098755280003405989757635804866280370978373706608937712299516325531226198069187994560621348954796215352044614935473872866051948593051666757928928406077842486814479143886247074138741093626796979028345510886182251829350352147027671149518751430056933710260362672386648022138577336587341977466321536580162517904941591589015624529424452811601923158025604216115461866435590606140731901679377810021865836236607684609575664150221276856590575243907680351563011450197524823644536657873392250967392530939987470621310278122907667464559796478160782755957231712437085314514284584810393363510837893590796692961705228593844218771077867736363896379270484731445301687905916443912199028902510228224337634047226125183185624963881413995510267136853159716527357114176243593964635832502808840546705212194121827321515181089461016288932122861500699877803216089411461133567189824106173247116471696035711760581021052443359389263324302887085208480870216992817071089975983328914783846277195167915964728893540834568138021249934305475845551898907991410259786733661157953205300514871806001271437878863429347451748119820508348357361005581226839490318750401287979979205883565271473981228959571554332812052514384814452251011575916696204583102607865183957214623723445589137311014312419023141329762173889244096743132053112283791670583962988426114306908930130520318585185246773368106415663003218118294221933212484583386890123928072082526771608552990125506458996236712686256070651869789843588790483955820687049804905895219460072271947166413575654694964482319974037840365494619657485782654834389588608119861394379227165211654248367876546565275166400200517581511638091985010570205540146194849667667535132875256245798102671035258813593327547971926809512804568868908457264798085666825643757073460970750602537030915730755135615533028999819974541140438848148327882724991233827640513518308642311438281779858017377477632384119901299299516221032898245042384244056071485925284044308242353087202380246539771792124858246482516346341313880502982295858912567695737366757092944306905184624103067172286998931869285676746138031471900267407324354557566551830881688050649558109377632845515388544634094462723024449642412428634269777489684835599331900376588189761064788709980183154967985402595399853824097314452320402750665304654203653881905763565330392722884856717738588886362062631951803711830771664710417487662569712822986442180854798051062107249020575102636330490659289607434086760228689361461919137961567703817357589879206184882333624814671743537050619924061825874060338511893962845596184865001326623525773608267018768217746764039641725808166773927474068414168981368037527591795617281677891167110515574301119870362357244954936545293557706216393027555441087077060420309924223682630131422662261902287457575539165325929877725531464492928403598172485751048526357768856317584858256628653411868111337360772683130344147317415236087867436620062236217958714697528108369189722439486451367749092548979136342513031500652502944788353940578858210335219143606636349617402399549967169384354155945176433692663827285660991337550717352337455128190124117733972655691057527296466790135422984207327818696353799639316447650776118436615653197510319054737454246226675560126470942222916287108952225086759547788414294794013891870639516694422739254046898810762248566815085793800991526843598451756409788565292147544214470827966458667845200436839580454649316350296049207213987390613329177210488693750102545943700224590321333621548366449214331414041432723659183192271340527422661059436485958103851811268487325777546110976404325411208692066491904346540079090259485025204938933578196530771381132525533029007538965305259440765992315395202644144737513018423394736178365026755139541405087289823031183791167613461757339179862742672417772094697700124993026862560709121047143986837632320706053965052672999523269683408039809825210513465020684132315524220851059744176908821609485842768004286689220731248572026680034257177032150997960161876662993130244444969358032355677313381094103545327931414822295791206084755491449806177771746459158770419463780886083902095939069960508968849417919424822866322674125880979655869608074368168344936369407819992040430035520469986029933666127150893793856126351170897462677343554222974890334500276420866437277042348943835399729490616387990375482405633784204374579035091958145318312427640141350120975203023041701251608353811542418774592689942098317088931449235967609172107793100686156654913728233723324888767702299461330840067728725925398392891920911460321250940128575598021086260726505807823321697161132779620660021388898223644567267027754156674906460168687180594896205294756686369262225878475725288729974599716935746905967996752541869003311196522015523152730441287355551844370547002218323389129400466927798810387850163951055475638643269892980789253912405837934758976369352643847970604912863386712470583408005014052578426569474060070849193705152850355287956380003506276983922197937669735412114149391789578206382820332642111755369267714607288490574085854460798361887957431527388081921388471084951156441465826894188477803554445252633274009410929444079424500377549174817341425860753526358906050695855143218957440929301589158135625075409715173243386904036916097792895240816008153799810046158026513167059023051908483328448908658214353557690357179013632909228882093015513087915755864158146884807260860654328714254202630866292013598452353412689514829177163535601726439417205689281021650935151332543534568558048592812838067671109522279027976136491496321583887950273384989656575810361360517017737573814976003312945433956553551655958182877516621696747608224705504121844408086236286366420078454225875332083910259500613073813017254698386288829405915492470542139998802438554059236044252833633569822660871508149309171367281472644792782184852022552440278755828685923177060759444768442200941219704799179445159157248474912675791114209569822892065192227659603650184153123762411430140670638095847660067995708093325705765915684310641342286470240208173384594552848007133489564678589860624009838814161791596021662059927059543164010780621925203733693786467514983834014105245355832157195321511656871769219596387263862972537692534076223994397099755893924425057304280833474402998946433349873314044171758001639607493843141284527632274178425032230886048587055077742380630574991846475927069923164610110467401335254399090080286024139456968803521941664541265376421448657810917083237174134997593280923691518218418005827437582041520846920077429045978011741635102238075352105916756336037061963129652452841099736653592798296340791135164550586011351399474746731244855114372956892043511270151732506439132649016471518115324533399844262430967888428308944977780015345994438131280450321452029592616196067335104738294780231066403443935468811115364997151925154429353684866090284081464130185573794945733832519949628033859897102836238163341450807458403765591095912689587260490650958771127684377148160569383388030535150229434724532693342430015335093596970137400671280282013163034816643724027851191220929253842940039140321344361815623058151281535453806875066427304988356917333889778125079379270243667347212205804194102727191138893062600667177905941663296931710980799668206568972188878703620197291054298381060617031244361348518549823471430066758318878579556311729227823141310565266641236316185729912990656158847024487216267358064483758912356070666074880908943691364542243244090991255990361169522166469275780935791063962372815630698195922154452485479853639872509647114047747372031987167868269757377147370884449912223243930487082871252470253915149373521997490383178143564813395586629014309495639648468052926991389659619862150282070900335770468487149823788512105136352445870720081358756103756936902976490296714614760805071369118756731837277841422447548029734509986728527566014750319445581783346152550927005068132350172051831346024915704049788338261514529653967259551385284017625561327930727750656787378117975554344770955948981821408400404735101265896605680839445767731834320495657343912642206231291489631987298508413736201462405337125843225496020898990570297010717722731002339651166105987785191351230959264479411232291937890532294639161431597329281049347369635653303110203381616286591772432220601897903398477852595329199644350182923184138949241230041841760653708120975477325039531671864490011350353277308807916216638093457821071464317200199300454838214503915455376426400511164461645811790828893319241396534594572681218487320057036787986016840756977510159287585625670570402199749710254123942961298249906093716509286374274678045150479663150284568999764930633339128062796854272907284517549110127631218462118504530044949526267349815181449885054753938291528448322867967047989515531037455626150641239422855325534771286218116873175995106595451682312291124567302772739614171075180941658285524164305148351583496494886603680969726630210132132828662237708682220481251733482607112906074668482059419510555272644115918469954803680335712432121399252925398895501606558611902824653386531147085520954785707388389686740643401716385648352118974212296923198192959082666719495505439706296546682947266904729546845551308041918615159712261297959856123207028394369616091046799188518922036260460745026450578419178190549145314187370321019304583827090128375127692759848979765315937026741284490430505046597364764516052532525712379762253642391415630578305963240841286881024103074395800005093010359216207866687950443846858318000829079166586556442092250942050720699682137289094481007951802634955509912965172636754538392736067443183788059235458154578635148081493195573239659559313904897377964504269603239073893406030128670704863961559950504170822111506468373247006709491921870780287832711595082017066855259792463594961617901245426523041811121391162949559843371266718317364782649953939455154993085412370350479830965045905265949766572404404714687258031851375588023024979931629464967969303557584464483818609859937890459199620047310553832078308817117980075757285499328107031830090478434834411283014367006733589082182532939227041096378335603210404323284538666064961621448892674628240152075897917113720204310662927419143557921625202069498351850082288533694876317551195328225421974668287716969210710180971400204010358479377685543116524548803984893086886439389639160423365780626909582294707116813995953423811465222915010045147251405667969056128356032298456721559651940905262798951277542059659681323900070888656601011850365035566947581942274292046344270019172236837355537527856792372834192687152684594146047698301060141309038838448069573312241868240274200184584376228977020778936214881371009171974028115209257861939957472173682919113875762832941414853373997263691622142251824948285369824239436275245103707908876952838284823906096721884987418502360971105410781496919994450959110806435780975850217372767977483255560072576738232650495765736775174873383807874232549880878486665730715024643644469534566507818385462631868001818249540069355026849738898141684784647099303843734249455573733484236484992492098635899289247079066407629343163097803231125461460996938584310240499895185982857642209568310624753967467508410699814716618911922850330888493431711901893233106353687089091250254111104781503836565951122434120294971501015337588244901829586561010075511716173866053328914366613543587863401230079383370081499958722748426924919161134803168938437818052902870781197776985325235513953407897399643030416715693958086441325271705440325854631941584205805349236297554107788693110142046954170629554308707039364544542836103698348039797060950715697087939816153073335148592623874866782211202603027994227948977967082360135341980068264956027954266710163072153536589994185004285567899228197537812968137008972984463705223298976120227928454053566402600672938760235979097774387380682138482774317256821663952306008049545476922773114652993914474413181555284878113591314823360522737421141400774165788419960136185771831204501690309775117814446849558462971053395940520878216076884240836046457993325718375329517167423608631555291356789587146251487308694355737982702752078761839503275926717136300004345874346840695405558301919346019012694987364127696275972443809969796517160444526235614241512201312073129638838243769326836231924290028762705419683747380221323657320667033059924107741978719441641480408033983497077623696947059139581397163522894423461212550012466556617773395353238332067784111694174848014581659615843201880506709551787866347838430998069591176048834678985601425234049758559114722511000713372963805967904611442102584027616579829652851169104859835090915591423531622072930222738233959394318352043831762910644474078719430647706923990282715588315346064421701710242607071561973121971344339848765032159128373214189249986387182431351193734193753493572628536776369399088766564983142785818164530614148820110892295631072352006177982671058630695030286035806602457500502191071059257164209431897651722985074068824147539531791353535173222630952087199210054077308933821792152124792704307936806769474726399298433784449160101648747511678637275590326302887032648226015434112141071021294332593728486496694973807905341657359827088890384166593730715734804109949347034789870966362031289391300235400150181030382994081603250069808185987662720207427395421276845184724369452933586149725733394418319298883574212218993990512512017813461290171243425454383718479023606423214600239257355547701571298681203453666843455291316220429599592083995102914710165284310990189622750846753733714286024033110716121526000519970901610674339720653626989234491759534525546393938796797450254265888813105706937517248568458163709962965290868743257980512625869495988939735399503291099806632522579511462435050893389248160630421007356546026802709211754791817099656152766687077228278110116110625847908435864728869237773695488088340533891454127372047913689162462363507768607871289746993777066763634349672510408765226320254546943110936042353005027951235073403486947796141712740329946200200092970531334397858272420946602771950866625139152183071161432661389823007408998228253719807285458001483871665625167907832359018046035725764685097393070223518224148720750830420691360635752090986201255857521379042780127713174491860241949550254560416699691100739706419948067311636594698276250738847306523125813416276651994416926366913174182707483414976317539203999348193948713147079260946628524913854398817770257714294709081612158615638381729876227941412445596394643508221851131199158044900310254463936933637902021698121675236566173849164363145997235529256249780903486247270050772877326836166705633604648949408863013566991671852955511688012542026486034025379634958404979061672803403859308542738262941904918864840217800907061208123892251026386198716176670813275902933356301037079095600284360988386386103602252817887059113088785524740205289427090961961761443549258337305576949866679517405133160219707546910931886472501644205020237811951317488193264274240528259181774909079225095358766908417425260932764482440236449128779599513059425142703568986642376929864668206594245872777868215927719830512697503024714927123588419433217858585360610112448036285454317080374827662875875853655532895762888428551759336148298876257075237583247926687114283504664849725481210264901390599335291294229884352494769637690181734576340658037867661843914657486319306373389156702228966722682741154582716591460732189563937780280964302868091755435880210014943925061117147506009769148974782093622494221726045888343202791276176151946841361403816540075340811064205913962111104466028728992094796982112326156259810924687772877753947399689575457901906773834379203073406637494808428061634612429285821130864658967467095312166110448306098319812052515011898026599619766082456147517842997264442090005701325262158975356642596434496046232613422590331621162998464030985853659110286892053285710372367772909365865470573586554229512426975600147432521328072262740338859211515972755134885218436349674804084343380788586317156272599216251656378180716889957555241034158871229661915410035357833947549845251987682048674523474375400314399574826660390124631747439402422067987764325090120426529046125233774325329251947306759763307605044177340683666406586914020208512129715052566071098042214213246176226374962505796565025611273719893763702731179638583669704936065820823079985207929067481048880324125112864796461510692506262687166276951576835511179218918866229606705288856564500418250005454103992245655023655987664103228575098761650740670277093373243579228212389684020184754711576073796617327406520721561727777005928967653180466837286068067012437582005337527180606657605192958343420849864780529712979564314682487176699899588554210744656454479915559053152288810068565645688320586324580419261936894581979276764426591422699393107203597779653097087141869478111592362132764702440247729624888634603951772947736097471176246874770620513617410768456620990379825949619483904337399063095302197188861964497019176901205515737042236899297560081583211013205642312301824028053734859139806620458013636192628415751799958802139377556314761418266261449016130588178877263620671950348419161465349379064777564687215657980222866138668507082388487603416515249740105834272451287091579143683993499621578108124450383259048387431687862608609634740637991216414911975982209238056148902691873344779003324538461225371892663599263904119479828306827358509918546657823300904345332763073598071348897262837732976288281118745265735396209974274860415862278080312175164690202495810119598139852317590507536909895679316410298937184283807600223864595013771010860589540036343441252767643157225197725779606364121804148642561131199012508772817523434982008142301934398060769973242222288015821649517486400404462480007414289821619634011354188036221089225096844453942795065890407285280405702319790965483720341776027745512341058694662096190014997225164539792615254385878540124008023323980528284548787079538727804279404565583018999590442063597012471134274107216977713858950525047946588010734235038167907218720824187973667251574874193570074808926932308982547126086491485518260380200631778044175936449610609608705156763503671364784200582342639328481611135539140574454448445848690691911078711378004224146445807411892600372845473251924439794167738938439768722596132898786718826890089198205931762404990779932128936418129071970925527558010555763261311163598305578722804960880432065932853410369128320558605199862104621166886319690584247902342408118625423693037241935085545128412864761868447777177901211663641468230311629078259991426906293778971632638556910866960867347403044032918156306910191332779840926302608469082465285806155757663108742208269892979598865188295763761708756246554214481463539429666005134386413629212469048628574723638722093541798953865130409365149333196008234132281548583961243005555288171393659090156031542767699831749509986574182984630802109825495998796178670975590968162395301446099022835197891081755720396335176739429106426061215216779440990430681768458415717487714673329693422653383425192109121984036399937937366481612906672089781815535848832396417181481277133386413258803363079257169480804970019660047997396943611938212010316592673960105264762351259278719115440831289294429414753316036270046711895344228967422432457148050977808904927379420327356471447481153700445293232007176025764365723247477457438620667579468221450197402453698875535665081520397839350178188677783046033445622370690430414645897226739491572196270989624873244079806787125140733062864833408784133916677317316886177803916178791709119459606342292394538177904941677363135342091674274158660666659777347128759223465710751352581585237464769467491478747838689684952516650657517148287957448149690724440559679992118667456064725179330878416335696857542922275534437857117169298274554547475853985182737209652879453613140042152462460733334757142407301295137954276910541969034830564791813171543502317147870316444693222990004804822054276212072572350624995762007747551257479543859803935380964926660475518527486082451835165849001115501792679675216704434437864726778245876943212479464285813661523813995932382344323754469261460462687654133046704228928044543915101321738844916571088668295482271158312114364462189188340836890333721993552254806826464167324777884410316890409653412639532325643566741123131261999577275083230325302998236522063522651972097906311422161390980047485629592913917388657054819373053457767840633552742774118601804225843756898077456635027892121700026854977904981467626450402074281404012621855961677600429742509325237083880480351349032704525411658769576623299052165670009607663647786126996697477864550632725418041631785136875868551655854410884987773744036690713031528064781524326647814657472399642795602902587156215311087755407241422822784065751592979966707316436381662208388723037937295727825956996972084988377696350723095107447754976453346761129964936329953392191990995373332633771380945961419102884445325895949292619541671502599112752282836115396278429034125098450203690137226985352262093941432134197884473856586459447963335752555213968136678751124189057557830848943724869157783896553863085484719265807595755859259558510840453558135757372888698335915148809686004908463179697297899537818118389821502559501958224069290889087383490275097970555316223920884297479407745154441033907835940831960231343342221038514537305692762954130921715634119114201837827301217580190865634865820357405029954792131295661138874981325280221905814005776388469632272475932211756389518759409060325759136626660996084002778841697646444141525228529523252182364708359703860592778098961778868533398925282572167026946398531256173302649231246728379610471508242144435507006803242773858180767753747022879787847952276993760864805169946255220649352021664890753787665625872826663437012602080055830048634260667697834193061685819969408939767843897993327848865221131525852024287589419080560144991825009272762844096550761752908170360577920251492708897464049148826001673897623085545925341767598702149855673535835949891629475384200012678506768450217677503867458222053914972375396886390240896590085299754227973531182703350898100056968129937452297321750927984008420849339071225306478024747527699793673139433169613722689703619309253639483301209763226679069279970261324574514079974548356097454882253222498718478037634188688883075543468031745996320984677950712749413314256424856364782320536491614164791802902931672334173184758647153845353044648858868337145478170174634727079065897927492808019238108493813437458982333125331799989241059050238045616048265708628801608022559752354305704268715450487760237664761251092913646562858064849412677951757879053390210846196672503636449065012553955519779911283398480993460439119723634567618174914472809643571171038914070456134518429725376680789455221762088558207450180453984572288989987650361508263699573670155726106688268856147417597986686739963566228735033734839858767404984982223517679154133183556524963583792983197711851062049442434845142360629497550327669683913250975965989457499210626012339160701906535217103471753335712076282580634894753589520320860656523231728174249807980744080041653967598601173335863124070075414710229597208740540340671665179248104320885813173342442060682058802625249636373188705440894196955959830387989439061700356517871371355925502712294412556896428659421699802310404178752343808026327547013030395578419180275761770845958238325897143500472734882278934703233296921359177784686266898338803462815923535666058415024792900747189900415847191062749979152732179438489259751637882751128456876239838177335847886815320532717211346504379139579843373579195105437159483177151493711761615085240416269243477097050252745578203502357351163193797892136269315687897499273642105107235198319230257017038428916769301916373505559049035593714290971319965174647677433867461022520650256887277105623052854493148576841444108463165866878953023936143543512276171615598795809467302244409494671326408607581230548528037957953688174168207725692486493636705400215063763083226205367348090122143255607719233465905196241343067325976507377496888400983544108068338001024708443371598392900668201694652442279116311936174371470202065261946157862670466206544770883537626397884553035055317965778165682943382305257450619549462589454426009552957123450999495360562960215409569572581800891050093537661798913854009061380958469912732731383900099770549260267732913783387741438945823843015713523031951051662087758858649537486632939565328666852617386551530497351044941124844043734178478046620409649334714755971195492946395680345560969466377762733115615182077106044572548783661947822021873009812960873511146850884406889349920401029998194512027824884135028469632433738148696834468033014914928442476747106503764275801755955733523401039038048268247898215334068390975925261504975585413715847044515648871417136149741248660051013465273021707743159238907620133737073213988666001104368876940044751826285870947208904455881354816391600684836988171386905330259112683709187156676977224927871035560287438216278420409733970165652448207859876000136578567668210612734500241388611782570971474470633476510211773006579700777507341165724855894903985597907790156469177772146808830135112646411298872376546014497877716500038211098634031741094959413231756928265002491642269139096317760245737791305023776952412542575720002790979685639462130833440293347278629400173746987157003916673688790733978044946665596447382310603685528055702974943325973699467692316926468732937571286468983880790871153696266358326060989959187003180269514433665996012254816932876881861690821750884666086160290472079446629218151799906536117373103784240415357646452737423549687746014589489669755911590579106902479518616810055829564506791542394348505423262239209745230074368034470794284656225484216973008123734253456807675005294779229827707952648320295358281418449575188736056422119742982643294608976983217603877368990143482735447307731592257599086162724854242185826853268929502031943555928385233094167887027909887725528975516288636243222319615884530865135534358437761968164711630223842165175405062735816119170397444100107063360896965435463528608697249125045138339575808560694512927172431477516617073310307601530364117425058957830110948174937278695084961101673515355667027661344341859716086855441665105264383757079649191392721405216735450266218457253347459163381068198015651763282552513425118973353694230667344751692759153936870786373352400867825115988459298593487080397510032963327524124772483275921774806852313687022334171270810782323782776508149813353241546636906394575038756430113448187889228855592709341464008226441741016770938992558745133498927389160150570062315031224765395671308707344059310105657217278506870457350290233784103731884992148053146245030980213319685390094036309853239401465279790668029656077698687825976710795763621581305591360654877611084672178508059428182219393044986634858168505016148494646715119491334914245747169225536345149119334751940856262978075906305510226651709213365956064314641533675662903495452401345350666577747365637189329775592954187210281561096973109292359183935902536599807885367910599460417634794705205490893827796448006424878462437420694896746731693739453833995976201264255711194598565022368005656081922230058365384634227122154278325125298297061930452125975325808830991042708857729383998641740122156642059296702332479890832246479594542490994313975305394219372892611812504398192530308954027420474095708613596132530340328776678368002308627745942316449414647200266645861236570679485084492775644166969980338155790351156319034884877663339218366604866094501967890334878667823567795143528903327830649802394317001994267730295067040683066886778800470369038754826352539671944321681541846051161317854928741074387825598700713208328925032224256842559821588406121707499465977777091656789751689297331384324816461160414800716081845283246369535891831265248893885055764134147905307810009058301018493132095712990517872863226288568950249398261827255473916201943436957148451702564218702911821205338685606338023345197235198430545622415279831676002971958301500590615229306223757239345873926838107053133214513077619800776069800336328403862875677989502418291321183616942859681597357901963013565823801678571501040873093653331762745677613232872376981468990715622373905133484924697892198126504927100969237137741584096252600313341500923552673694492578706895326247786619502483223923841564804514010736395829733766853146453165423589045882709224250058324394710036635348811383617232690855975405039040705551500821127583653012345705808263319850636980999968277180711369416228892372456331454335055876871601629740588018657608322373771374721303872266572582601040411203046048929178822587483269309760323895295935260058212793478537404067460708145077257286914754771112084649791015057720937638253424931378570923149254110791746212308714467092318132565516724666692203539683157954783967480450155163434865477510401874292548578296458577577770063563824097971644745880313009616510436199115526364234132358856764266502028335296050925821550849014597546863634762277380462014360367498309655556891132533094857605093115434039676616920319294479806385916657660639331494432002559432715695351221543140574501497666253900952621134663372588434077315970358748640350095002064300487983368891853343723270659912622821863435010268392479861213872411411734476992505709888151621209918296027486595997016746565023441226315920028416662150926909985927344698971838927355490007989555344390694582352082417481756471248237987259107731028725972438429554795130937158387447364499561170885014901609765695750535719827486725039967334791925411043668793058681482428646299689859845145351957676463761482784432736741709161556901667455041308795638262105866588502761129667085883413033636948071628010940935247453207033948576163239570560452352439422885815871478854626666894383458816559449602239347718530484217050714021096781640244487067348424762880778438278828188463955120917404055180056128968034286258810322646237388113334141901055956106912369757341531567191375047273440595803474063614532821477876107442119800263744488437387724824734122478610280723857986247917005272146240881835232289165955917900935679182471206423909592843214532332983109502616618032951659971082352720537737442998486267089783101750404619273827659033174767490426157478283005222232422295533682974865434376603267074613732317441437126234718292029142108513271461720617239599311866971450681649821760134529756373174792368766774823763306328529353847126467981708884943963939939554469302419585974568972978217575917745167607355094367595572788083201790496379667493317983795368496315306045769331990480641529872207844764752949155797789753600072735072115536602128539625153001078101150111067669022826912883775542679634340785592059777964255178465591091195942654137473385555369324257036034434511037475919036019481946212432981185570850367620556679864971313883693383169904854334536891964223666064458873994552389284395677160180925927016761696890119190009719743699854744694583427041259316713975054522132632940048057642417852536140446875520648370689215542092263806324669407037581458741538090437175326860746445912242622009214503775930519621033956057818222480908004699990442925127656582328934036217455548146370667840991579787351857262341333781309813872126221003393385818896542720651660068877329014340167011090925221193446955651219386246150758711774563318838780117980413039924245309472962449036555230760544743714380739132064865861076832347130512754584011279177735160570034556287130156421014760572146725572965254999407090409950094485679100328520510066973997542905544141663520153365535809472146003008982086302284909863294825527371844792083447567430894336905259761172199771272404540072828901264171994322483568368860654208125042553972194753354942553926884280078544363822195951458848742803632341157792288965941214117445547557218555654284388851854983493681228071126883378602082940425716113004928840785120597811696314755856626099598655547916572509593705171218066843614103026463213892100530561428591728516371465435179759409157589723185288282050252123504405110734494514368940928155639964375548935084609901944887714966784532077041055225271779806809136408817673055101222950943619302833054591942975947621010478430134306481555702043010796817085812624907462005478153709043399702266793575755951592646091222059089209590160651795290718424910330229344064010777350490504553988180103669129885728168269915027362175696008037941200274406374164267778092933498038285785898365311844161254477909089611410401168349561344263750541229291914048371191281470023792458771477648217639953820373731527371514764492291186385497369086810878667779105537088880779354222616627331678683896091038957386710351396741542011473992445316415093829219824957517722667809891606408336437961971332512928355757805707968224367356643994841963181485071247994056999459429558346904585714874019584165019689055420268876537030249657080231823745914700719153326351741986779698017994757337944553336848429127481815997057464066997547534520623747006007088102319549950389947722222226072164844750743493334674996869557616262871280227468528732899535061303878348404155711086210429675230236589803205919574597685056184860770113374701301890654197061605238200725107483214272182215252196950570242674082556112289920628469897473122258018010227889490383529586465966059724949468323475994179570679214464068093866942988625901903081252197185693747967395177169001697307352555018660648239506499678096451228177534137239031583620743828859418291566106336659577826425250081731365150855358978898587726797425237543514383175301444559014945205481360280118548200985220308481969221119795489710842949882085795264766612652709251049496096924290312161794339552729343494082781163162639908962327921239123450972879651442560376968339833846514004376292414275558689513087739633611671375444664021267236932238156166154115120732905897669396179834547935906785023724896024523047361533415781003070310140070753222895953987893377479931455408081206193619328368446632500087722667331079797062849073788277088134579256211913193389178342546479658362771283085908281354878440550048686878723832071774111947739481615577811139391023614130851693597709038053292138762305469417800122759186257361163327751307355281315063597860301471589327230517501922054906327645134334105074072411062283808832093082782140810936717754154927350313741617381671442114727118461004083771913650067525943457987532552293904060958488671949042498974097708077764988666375252545837932443428836927816208115589308139615855787520320923642407399762447352445867844660460449823258053574072821864343330258941346378354017581329839815573042996200202331536558729338632587436809569857308855374546421365247235202866563815822771867804956947091932904753387994179455376631730352459679137883961720957994461312473317537606969567872465113968014213361788423076621459261439355072934440901533687331461478834813998313371412054852953606949051154533425623774876761015173355897318065997864862405565908706065887426938001749191387949143983789353276142222056483106684526586985771180801070346897797740038595912574599609458249311956900705705213278958859661377265074086501886421627124663168508666538870353139826741424643385128559669594409638083483196094765736393187536901140754027370776656405341398146144112655983430003602976638727273146006272638621799038933543267233566008601654877660436944521249270887229812857407113086374637922789914452368002328679756574248223685518376296062776842687984005906796212189992554621463898233938154297654053676293171530897233522314633074288115837244259237069457797773481379636341910632768456891211258186458986919357888162068661792804550106011087228909906648193484350348585708115550339475502893788011948241620299370307435681767798013446145439323048992189300878271536884459840303946908082690761664594517838555648388285599762336580972907494265210702150818516859493038931533740538945870727565473331766817568163438008946300638717244110261702890467712209800815937546324171717908332356727173704771526757146647001239745721268797876053675388118305545714816632892480811325553771701913975475190404532666032972241018114108668568493987099069134717638504058026335797197446357036454259437343798278998958874640961057980832814709345938315412946696554726460306998947955862200435741390866935992724962648626014464753955093738010590213831380773330099056341538085027313030321831009225388469766905066367152087943299628831956124455664457970610896461794425934991121996657362544420962980090579744291933053069690696360759301480860942771345656354188796283981643326171454734107322172683349558911636373010627448652371668420281685614406553616854207329097263365627600850761028136883100858149930465705317037607852992674235006309686919351324721331767718467120558256649546294371259005867047443172245177180473185330801394984988611895291203050594842061004354979538354588617774018814667952262322625770298286103899408096162497750056078704686906926553794339616403176438614126015012067776519489711060078623955152897986961787526264960766523382424724899286208962771296638670399907383158782458780849936935687252350053735291202313106676255230307402720570622638397889943318096117275506412459947887112384571120001679274567686298819721928628155223544521989539803543232613746910258537824509816627615268125191583931446649313671089348213420599063135169506214726806510005473877741159402131758318509222226085927732260006367047628257431939214926386476285755837546174768091949725698702057904708992776171056762697617325566896393635183196800491055098603592844005936833881008791747525727070757521609731581905922153024080637294470773725981709454446541132037859420547952166643934613635060620587243745262435360500893961675508739770458186154533352250342975001346384541933361193666061846856161052722992155285271804331039897560102776112623617841904963469061129042045149187538009846675701942005633354631944924925060261172200091544767723665542220918940242091943019800762184491637776215606254805652353331193917631804410709128281946170120751644851990506299833636799129705804375116517662453198162282793598196064975658923115614124397298870647242137245791628093572335230935517695202879433785324622523785797583993918467844594082416333684843257772635739413476678213031047422520947706971607170557773968670264103228153952089020030642982766216543670164407761764326688355482275419314556555464665093697162115511848026211557909836623500081289290482445822266749590909468138461126664546877149418759068955199543267667985827309215090669837986717539544818527478118106819773204751964847817440275954622559480339178555465178985866125754341651455207321433105156856592531244617964784030520398193480149915624693373615793432522751385886329881405410838244592152138500261518959796489816505143279094512920685164510808264279503407521118287900878964265994372030865075736301602648543080656587137812428343331781630812107128466030986746195607608068712433021588079533108375925050703795171671116164183070965212682295478861555137454437687346087576496318689577925418800136436414877979941135963123746263576188372875268925276138353209415754153607130377864270928373976605412808115119341602043664089805214350949500259914309263303835917422439951956753492057210076776762050854351847909549840470196736947056815133132576229233701032815972188946379359160681382203866834913479819046356366794712872310665973997684840389203954780544245262965345408506958760324407290337870533762476836259450271965982610550442256735291062161788026300564040547995180007000482089690471532926446377382203600166495417762282554495616113493338779295362454899242459088562758709929770455784022089529962685678111462946421578144796113782761323861365532028962908357557975221259417172726476622469694875357934536828673677166455130531209388078345965241566241234501476134814426132711860987733078379396098344315697597274007000298204307862823492220605826315852769958697325447803630111015330041355335798202359598022199691048767484320396283974455276456297680754739707596449125210881460885639150311614720000440203766542275907893438989745833734158245753214086783087290922038964361894426107877732477897133213214995647970755891209585673485218406430539292002964557039391628427427114722373215981178939937675373952170016936776831226637490104593951929896161139569648868330867835491797680923444826657814112064538814464666439839315982635963243446971315979086733915613335242848654214925528468361320150196693622904026655827577987470531098036802480996840402601693429142565181429110953847993243756615885102159617680097948582301626614019955764038967889070936077447218687409220836937735457169331374098734272518095749035016495776408474554673906627548635747495764229337151622339698647560874179478501873195027641814469453720839697909781258426500865774085576788003549172305868377830272750946570839124128277465034841558802683598113528669276483979559820078428460715951225632204250951706590783706213750021486121926172000383091356172141971768873783356108068221400314571917866045893632400698476458627207156952199325549445316857595345686638851056650494181599216081253459029309961089217674048112872929456226732922199263492561192200567302765930018961770184633545484137320531522095126689709360533474980754109039101105707955268470751787596306722875404131116192128886514281307046532373848082648486169903757519304705373895444368230528157026742223853934095537226596570686108912988648422484256162689109912139265513651643822059009452790225889459633572719504027842490344024500631491082163197609779667380726752934545304006165137605241055166557227492651060139401227641289400473045556756055081442977731127037021121309272628763813378776322452560595717202087663683427344720313500277482223863939011935752864907180517793111847759792850016008492670357297983570676121003435942041123059019492047447681274915716134648593088397676381065358265508653728184809239095973013395581895387173036141651402793239714638819475437097058612523107611758336482995142190675560299708099070035184732262190932712235246833961765266296814370025861231696993520705780300630302782085697830682905553503476860874508587512816001112497140116288689348579873912054333598682028822412229711110517146959263457113920343600567401061287822411741644894251761601377404333435723714080786715308593492381464766324193328228945171820891844624551445986389596630454828858052473052415254039077995037686731027118984933082002759478641005055905104699376851848088660366788475779939120869131169735317283811832556329877064139775364832543264650264335705080970129901759148367203525685190856915145983900759727883851253325227311266479578154882761607597823742771212244846551370311682540658021061884758113287873716388072436050997675258288767827672095925204588164850939200725501968703289994489623020511270480336603735585278200288417294844237314270155207400413947566908713529390363025188309502950411814255317996958161884627905329315694219528338839091453879736196541023965552575218184499969761746584661422230536866333243706163907148435473577373583779906275682673344091133743104070431874383410716784465177261170496701838472351691133499884695930059546466206228968513530650770777657182377615759506789284121049299784794129990116253747760727602872231422523445827330122939508511540763534381077482993518555719142140260089680483279053289944602794407667298128112814565555721943177391980174196770622005229360300228624291710660741834346093037252832306748131842914912549070098017721798391926168389636567621328937938590746985561529651263952784433146070978271715959953955331978905081402992639218455314591739618713585162106063392138799813897579709173835619298125742217913230340894538598394095405750044888022183921628250270140560441107922140062878154729639722811405169338261329384079381251708009259048914900300520164219652944898891267953323267317788530230609731349511705888918969756626977043956851131044652120639299519630874890798681732742901091840119217871129772052237568659379140685630743036085933599322972646630225478477513928480199568391969416965512029739433546128552064071087383658696592925955016430062733196074821905022184576513334645695271823877082641424463122111690495505850694352917855119458009078334017256124335245719923393191054390725044138337462503879276085789876578771535499222820570187302326898353526895564474036110029710809691533821090786095633339172780314461561358476453867030082607163292450148685161154892192503366489702804261485185451091366803773278378351260196735054438501422543516551467567708992748494068640231803377618001742719783446549776741140128461758638453779875030664621009333649959256364040183509904593594978374293542407018472828094153620758533710605912772822424645984450604996938621594315686756553366781079157769729966076633074614325929104541770288689722378603454118856128073971023469377121794988771289787877281344076810826790465478535946668360407473463985154877512443110250535947840906921737644460965679226545744586774375253903257740345584579330790006579081466143135268648004858093261565933343312591454051864268752620919617289178690819716134800592077346490020892035924019082960819282974524363778306660826081574591875749255145917811902657998854425331953129420481982029686518563710767604774241117770200799639626350901130499819660096676097237881392313174795861654338902103160275066923636957867471778375559678896747963342534589730942004074259835322688978503133892050246417505169849170288836073332786593176603214061183896303556240218441332240737717282529641251691386080030565751046243144580598418168354124375817384988903023913225119287436176641182880167539601135682599569240289329328366399324514844475595862107407046338595306640113359756402983466389810652624052360433696548756657366658751518758030773834596587231807904643044948509239271975782626291623830804700607933243073524102682090668847295583515504095948121514884066886712402438933481115451684284479621004558938995082087788498082157780491851931837211924042526595933379296233202195131112396404890415680443362676641321402500415693053743786443404343852752114673498193591327234077530661863725788463442912995393058826266769190870570372810401585743306600366088677114953432500031018607021385972344234719785640042208874548576386307680426516912487924354799459264797089053325383107365337895961198103493915418220856448776423339036655877972231112603189432314476655462988837637812702311119232935428695855550137727803310988540719269950568591740043426317946487500006172792812217700978498190151516287371530387768837752966561614991161928830414797273441967941980267973530332535010532993591661493356529440901265207867765156037606835793377808560202098226729332869773374547538315195141254263855794675303996259771771483647392171415400174901051878226606273740007837240612449916196424272262225481314404573480928285335431289573163650984758859360151108522345835568448337747933000572881505892154613667187263881121100869441271138792806978723559050639659064327208155263704017402748000553835242081827774472305686588758163758813126059103400958550879459564587124351030754912834451973917186839679801578567890527615350424226889680671671255082641631741860090277002244270088911920531518317435379078543888567223445898499234718692778234475433869136033510451694607772182532600941937109082815707730635577658149974029891420969826363727221667116238531012739133645901228885996470661866151518879080511446339989099742200353395643424011716764157927848481599932215441292963789914894189009989601222753579737992657130062071473947493775174685638539018973360003597745000882524318463958470976034190357223672703005511189546382311006797362564071933468641254107307556097557751663376913048161338362746403715506099815192934236695764515423785701274064049225707568056148402532740165078747433899760897266226605814134755904476376010441785901816599388412182073551539742430276237757607732751960961474920403324515717009372660730370428545718966941281077226336948217366787332465234742997926778984371030832048412110888851360565222932186848024941940125594650072256250758938237147226298130749138176067408285495475508902144554707847067892459729856581334931730435130613111337680284926201042013392584140193808657938054249343660293869825329406854287754463961147605451423536057230807422130065212944806515399975463407681458693447099366858420305193283719342707436766493089029925853554825427940514308600576049775865040950867097002522202503065774586760525802107869611651847157334211948909600599585467475679667340081112127451779543873368781284665758618477822960233561196033012059454643661601479275053011947657182387030490283473449757179359711849500068124131014674550722197557519214393698015417201663709402840068495085044838564427694151975180086332459133898885021567456172198308581526766918359808486819550145337842453392340160473125646126896551568827987773266826680890768099537401397549224263550378889129546501265694268275155879619109646067833126032242470957096202315738001760554772512204289055146216922642539060103186971899219545504319309890407156130203365817983066026206240203904046805671572481593352532659195443434324003800433588222278372700800985488479505651078599528662159773932349614906398533280928505037691203438451059868875202793064377685209754888850190226452586349072039552009289799944676436590301497374386261539214774882138397878455231723331725307765581107112700741584381263798728280808698125681094681325403857544766462032349446751201699110991322799137609266374488628967292624628048341424981695035235385752101521267276936682287190473918337431133367073724190189198020696370024066576267574204800930244059586716386442274687816555474692527659315062422158646592208250810846150422990227439763328748409190256734526958241301565092801442554838734884192540391566456025588563941808661033634920986359381502555408514547811248425144134045940440607991352901959666111415652222321849282428966211919419832600876566589928917880563498828073124673029297161038253712088990612115664820545255977220468463682722601182430667545194024223094340996503911058363844636459587195088614884566320260386844501110967436897978743531531980795249192226921601298442294087990397322175611319410077193620741441454062015684699959679823205771720699341076158579988225154654823458864968057674476530256291448684480939798165447820756209110757892037482573374517071151673684499221400814456251592812830333670906913340562309930736033723007803233314377196828714502871456072389254762878066921053235656644936649493479619152834848573359340832828667475585097507768191836331360098057663344485354253138501951770638247484964539333593784404576814382501699318779767785595827468179835306467544666068402652219920295849165623179390927613134249842955170087291257002620404529097610122721595181126048927177145434585392442904546433582124455797923738705706932251221759967965057121425585370710488768744621224309714956540609316578650163516358495459375487254525674739843815607584684962491930707194798574381578997221143475839350295797426356332761710676867168143729076363912584969750438023272100529221080626034406150100710377436151360057889152899452178535439866383196400148146085583659629643205189102713954457519067638608929575884169158289019104519049977966898481774920303609415812502408923944477672435308740893261752009301201620847059008764324192328610234325521653692249456014430706884959808560746867898982971810273517863404953684764530573420473807279493049670432564275654433934439431045154537710582776875757761831766593568030462877337509730361573441284015450667133551498298728428360487581519385695912959282957421843310144823024826060051023598794161673569464371588417373421295281947498295791266912432839718501401563093584010777111584203101418514975192477652150761470115258367997591233373744282546558406616592916646085890900214058916044132876594508283616654225667878395843742993671416315749473189052332734295178396705819271109019086177021834951141961875540396729989455569288766355137535799409780903904176213536125657601705879902552441033225655438176914101293240224552401637995780730750588022454530808401020571794185173780791145507695936084017115446218375943831120346574413288537244682243243403513845155707686886381784355820430001683407641652538010199947114477717181757015774227936601026598489228754646562674914287475215046238847089360054293719882219811881117936279464495190432749383124724060869522154583883712666082962369270022368734009797291261944324196970749820683723163798937678508347679822356609676997500170476439495575332901895945395792631945780462593909706546162792141439013786812484167743409650487841840236363684871656365343965719568482656538880401700259821228687827320587329245459181172245659925866948060996565981000930164228334695205117254204974719023301858163769195313455654410972038144161098807899639636525770802651370562289930126072265704937314269153797387751007639165912188554514027608856536018340198814084876618122313607017638324801124725203935785857071775081716638925870166557770163518375728721917618074866264256272507673358296499619934984259095933077962784370711090929190271204408927916549381116207991968389575392041488674126636490519550284684957268968910785788365371911297867469091867614615691637475978883378375168037744933302083986682061743637717829406328124502461664185826912292057215423582048535030885887319987899282599039872852055203590745166545869833136733590567019635488924738423079798098824697247172605060745449752077421735650591362644648214339308705315183652786896719637268007787990059114196936334897076032905974843217805859842658615891920706061627385882310772903665644662153110630786698274400765930935869242134327249124807771917273518546417427106523956864495119633163079858687760505659763734503111009812650390435567176396133655738358431103695285270346556089803060923071078771945896599671513636223897790702523881061751328921924010710675678542935076031714724233477204692195363121670688063458537774187565580117306887474910020518886985836214011294907212613545357062944410248137176346811050936032258727544614590815549431643749223403389326083374527130367692582569703212727278231585491859841209237203159378872073535768486180180273696598289471478532571780921022704460305597590210573909278620825338845021174649935442098481333185832894735704243215981420113344403457572516406649925108195701238809720491196336618044073649903688904466133055565045688857412821251427308361708936372784955911233448361334052225562829354860527860204701155234790903017169388179266807158979216942449612466123663391647697556583015817833702315360657902217038624963638340501249602122886494269509204214905515456709810604778296902825594343392218450922538617619779443337124583568976463859005326750602917234666207538083659843022079890351258489021535150885333898579552893343107979052233381585568580183123857937488496541998881522172449207267323306875829032982052255252316845852456669561019085052593780288826948565051254912941818110161097479378223063834371808017812741587835773464046860443075234954967386768405445727446450243521401813931994927974980050731245238011934396570859421486417868135342541570585205901975896131761964256527906629417299838152766280543177940420018828549522967042954609779858559352835475245783410997529021776917167072580193192057917817263216210299227065464043314374449106399864400309435671115608050523678823826012276426430556233369533738288868326931100669214910494765872123179614262550608995857070920407071401386103521907465528852409503836494117534787385544166419152346408820042937314213504520740134184954333139057669357317607378464384751944066025452589487448173000612098471047208825093533029070165715528869477638042651839044698315671083837859976013266000023625724999411056367119141696141849664368975885106233624761178295329912014398145947337948091606341225631029712890024405071328432782172840013874165694803670789105174153966940441652158811759067298467477764632599053015128879248910811611743944637164079793281089217686291301713797243325847478015954529233586600007850468762705058122155000464951776623418274037293556712401418877685151889473678091075710501492250211272152731339618825965246649332376582659698460986487043900535620160884487877728758285572490864143471502755136692052132677227889713282619988842706197422064533372803745449393539729079987565269839721316604633495170452168484856478414706090564413285563775596733033132642842145871429695411465713012817238168018064809236767629846798699655286626061223614347985576292881483231993625879934833304204359401781077571418145310397061864718540058810565133556378051928038394467301915784062795617153247446184100976360563141735005702519655026730367160266910549024657538753263943186410811519913567955020637391784666974687347081040790642770919192948082191355502672448129492511666060258577556300785468655102205546051057779188466903029453952956450782452604256483567751333321390695887426231502991599962370105789861503642088495181519220918348584936053966344812330504771435648871907865181600855410611652454044375916654137226593166220312338589277752204565813719837962658470435161467079562391449467682307358646839387243394711544891400501248230780096713643818636535956180259162642104923063070770993883803231915423779939336004055500468232327718618601546026676599122579976929112735860346098960932786006835391280781029371179586803054740534947431147974569819506785157224574824308454346096525162466593456962182275433815778567861375316846173031577036750240206139020080309648087284073809986648403167704200134260864253427070072098655051099516108874328221106618259674364738980215621110659264440649428860733315013596954673788861629185867654319282565480291790736865645463756640268659926336749286889216656542772570979005612264572356990294764543963388433162106799138891327484365483465326472039647397937838607245044532126076798483366719790704045593714293133008376790725239362912165321346733781092839594865227677541965278544199072932261204811950024395871689579949937080636694564825204246751216392465733610766036742924640621050992048203950222273557265983888161786687637044846425560026282099542900658093442129690121788008390337198232814629167458877098854710721758940633226106244998169425734492405742564632401878381774617603814822699946199866085673195140445999276154437729117376298858661943802718127742459575006696930589640615362549449703859667972684129492373851732859515613315071948013341089677135736160765453889497801461196793288598601635139653188697491486158796240595420916747497703116895432042573850017878249416154375362183676124790402401304439421089474853966065903744183403066423170899416591954345371721690664397241962672038789175099943606670688154981161374867945769288464956455647850164385192663669434633320893220065695546330531794551913008785398345301442967095901365844425226207639499794873288657103254337017203434318229647498183693916792918073970025566255128705413638384449607525895361020024587300759460547364603340708817774994821818375808308156534487802819696036523595721357998469090803591221870330219793398562811316707700407819707974466709104051587897833165630367132504962200961605467485679442430846723536666338487697416272527782886303563269877904125548925456754219569665946945722226269522845615838675162276048264573448738092530357052991354287913183501469547586377431590637890623532256651090649598627453987937800935211487268787177360016199530217647664246848447782821584586285867935875896531396859981953790956396606732265216844677285924245497525811648610932478257564334552180733763290518598894258866724452204389422891969847064622674154650790063282549438104015600909368602409757897041688403906578991357105517320271869618063713613401479730915324135565815138228893371240963966629883203037821402030049879668768387176818868962719700810810470054623773137139406944593713871296098744076741702127398081188155500053964093140344712365587923310574493994313372825689659736955384985124831974083082005073014231364849800989908812806341778090609988796243315917246848383405231951224274170809041545369547189829199781893273031436556073010036639477497216030830374798946879834747191356889043047730286637372430654455677353846074136749674224133299782246041686942410068611869371027869138604522543347778680962331366337071494494714095619003361884716783971261355282668088949071573346454841565329196778404297281749689181512101190118883083994500853745398797891208670264415615390369332983248390575523757474089958457517893347511033726316075145098992993864109205559685199478774524293479686980530815868275454840853057148851369653401487702585581577274369068590023173512489929362177390906563387688068718725461855863824995233774355865287075575698766044890349391293242190261184436050662645233535281532221682660254488404835868835245696922964405121599982858815320404994813066956099363117293458021219947223504279871158184901510744589399250032327559138476738950949277423853970211265507835539681427122342094362411043266828504185855563581356241507693982771819643250990732733556520239252665294940033657187491889605695585480733676128242279880895285557059647253709125094949127160833741326700909226634362393489189523090636482422923054083816342444966297636954339360067485704073347128132230777342922099418400212023088590358446534262127677824115403441799230256994382197847631243867887074610060386415345989977241364607843694825788915282341388936233386539299597497719296895342751270083631061183157118179596938086238040894342248180993466883398973434462711380257674260159848351379712222480459092614440909147657396511970363900473622566060041328528482995100773549022725769380939214988016464283398076777426396862461516320430133429468828756788367782035183499335333266184303620119219197942081728665158627798529233435082654774838537281361724588919065605133737750731260541812517732607823835256454028823920003075509790041275366174354011890075455062436939045569322548727022190846107561382538706187548593156399550857804412963222126319251969995737539411327207440295743472659809401173615924015587309478846201947902747801060582821725661768889835289556235776070150879513971066778398739158810785069864210854195234535364160719318282923362342028699334140526756004395445927771929798558639417845312366803692111602574483829435575565400822710615817232104254588193522359993473902156334989760506183309576880312868944394741327191344409151924062064801708062925840869131602718201111032576379317798109003254079213993445658909911360922801149270456335730225573922718559379766314441982224414249668933912900986395811622900736881884088709090388084339876585414384213601340083345277057276422209087346253515589131287495489055573908512610923310853644531581913451063681243975596925868251754484421415784759005414669235716412871543675931943314370189115325099499800399305382963824793999477902075304810235190985825912126902137143131736532796497831972276615985878444328644001204121576579484728333788865395901350597963904170327241722213386535336769830739555720922539164985232976479889160397723423470342502447422170443215344791986853902901019098401525716485143132010606571888049704227858114162948160656150204144174471133889164500549519122526578315348255712374965316528980607840758135524408304654070859897931294665798287371619239799454917549370451951968464018396387411561629035230048277132084048025086352127698229862017343150192332891837844420278191389988847407121539749355182320587767177365859326202246587221683843857065673769133641507806640004772775405359574499141704990302739542161606499580354639447038494244491666846986702720837586519369757114469322225665226670515872222409492320320400949425756850539967103381311322956811863562043550090118932214713670999863634168009294522766881717959904912945899954777293491786728972115022162995668548204532905910498240770534620444164752812058823525642419005285594390823447988202745794812708733672316339855000406123721252978501820608846806062263276887926572566054036735930435502555220092745532575200187330273294659248100996144685888232188364788156755597527844219351888895775280556576813508088415741415733719093847241427150323522605493450306714047290166529247309193901371393955328435466545058423750432111471442931772503408979991014331242393755885075018193024867717018947453212880828633759800845165641072581092260800404547340977622044126039610645495822906808850296895450499152332718907328877199424827579549650227987627126540861142031849076393979105718667098615104683111211137566186551968934623974847241706857839192084896353531285455749677550460694881273636506792262944726717405783817253928749023061437474254723000071449158055223216183900130390653934458244686685748319777138948647069149881357694399443030374390974097299987595454684755326151717144377584479612481030803557873446348760216381243494245896568796619222103640837187426688588548826568473803143073641390773974118574779632967307684449498868965402870520412026246385650173136091461229435113896465562522801343136468814284620775081927225070579062181078054781028549988076591230254134838262797072012253200157552535668314374753596592817538253127882790815253197724750463824770447882723427644609092618473766705127229904873899982109346254532150555901832297115174819229524648818779284716804367848935424034728936583076430084154071072819619905454722033039886795722385792888800212840585460915513002113988890243045673074273860271183848581985945985544825853256267097697164595257525769792602764149584743796381524289613512653144800166046663903015420322601260600912593084154386608505502051723586896035944960555721749008353024535251873324100476769482028329843971723968346809496677277720007424744385147035877353010899190936962302326218211189900566662350179619851119902907247973078780055187767786028430664640021000269135411455158225001748948357953808623356074696409539117729910453777711281661296184556444006317296903003944812964394957510244460520074228305681813127725134816158916824185748260090495098397116289626267006905109647420881721154891406394711595671689273982884465315646731393515688104153130640772350212578988470959281585706066951909252372475130493317794346330349990426307752335983578564893381121539700429527793368659356656001053439908374130948179857633331538518473569349897960738500981702740378255371542318972356800765148627454298309967039814590309164010964557093534613365498953078566627835423399128700026577860858618176862234287645671959539053655518869619456757602837866950681037034681573204788704096060340803004083850432032550536353958654283125370686869891843795513408011041618257923149685752664433574446881550872928392526838348696072920721857567450930976136902855057447963657381909581692087724099667274813956960535060298508135797586062227254858386456822238262942823042319110269672526377389523577137339487508398894788769213167351854063336402985897287400880326280747471699043936712009131499191894200954887960275565766331298284904839437450714162259061237918591426446715706153621410518467551754985725098603988511331834487562661257213286476052592914669401748683471149442738592393984185434691943156426768124638686895984151240857271643682079005596689503768818964213878077429383437571773007401499342056957162538126053687234069363208751833240277529818755227162666674082077900925206614282074885048653403507837204253758333558815004135136384367294844654552620985052735353832316113107354753538201934064977551758473212790044805537611182957107882654205047587075444356074957230520482292913184187539699833956947487827456213652885562401840284742057818372830126617096553994063814525973930921746292075699403109625564661015352544260476165977611420853153077537568119077889636392075151253966103913977084101293528185118112018641654690141981575552947891860334691311719727172431601759539776368797131373347054430868641648913829233764893971818400318078669870928167320170626973905948464720709864585909016644242378201396666608237589379311107096995157531933432884860697312563109813855678887099733280412004518456361933648318976949549851323896225282371950063324936795067323180332316291000826020054507068728702425867096121642306839300433015928132230673207569470503308260495879670594188387495726143285149937106015195982470014883156455837020129872360103051121632608379838782443305066696973742429006715413191551651856882536614535392107764623529582666569106946701048316495837854187610298317097474120350639962392425968270898014590770163601604077431204780720097557796422424215440107417169761296164056551492905321530930425333534073207522048317670803105616188284696541445479420071755513406822332254416896607567962449574744861506798035657311709115204718511288472571848972391875393692703102709814618736250004788287596831576097670722266330757531976275249655069569406139880538717332453785964947897862318796254520949150124273315860942742165227336329533732897322874733455974885079251479421633826206476376997973201462748153251922851958628083664482534026240662349184130677998346496492992246185006366807077738443141066791383167246273413837226511150554576760460425095269939202281607437678898334749489374778044743295793362851477206387116380427365396306282375793701466160567752875723101045627827274570451362344324009981449010956383019968709229665045545347841886029808845209148485968493173007478672696922132777257814308409711337601170783304767992370449186137633883356617683359167433965634133959860915864726375396639042420902664533473198468645151852471496702064655737709032080846662960732940296385204253670654548444931059049103628035081654231575392995229513188882709687172570561990891264321093855072539919871172090298830414909349504984620562710351860255542433206617748373487404631389764144478289287522889439573565554529686310783042999235318405947947849842954178588007476612693094168633100311508098032989342995892690541691684637136118462913062271774871697252965340066708053639017210325691391817390447484288698461875468270612285409466500429450451346418396280221159105126657643733842688149643070419908311243833315139642523975404263009435717377906946405377474459884835814360979520292321098662952089602563734964882527864612597727558666586913432772041301951889177623276634394006132275768128830860914566453144688630457687805416625886066551549300783649165228864087541365275311813666789386052583527047004707114094783078875537041798804890987923468449454105492578114710307333073624675514923114485911731401549030387136485838892647368576447456416779336916626786343064808598044201346186094393491236095085624898300257938639099946966828941250146351652118756977753818822740842792175974770301802558213212632146546540013311804685947413552933678926414554184418060090611363733943816815954139441903295086512711646241125924482026916706561694753196944761685552864783201325803263670227082180322052822422361154957546510658098688779983601913514095953564144863843694735951441688825045608753507210751917111637602100383436483508155392192942485558595416340723302683489550799114022156889097206440841511736155692338286571485152909164811599156180720736407870696295761955070677199962703954981278978954481550717439408162881305396159957432265352009302911919440562394764787123948600897149253360988014961003529656793854351831096358481299173497436066779919627941948394606260924603110269652683143503971849803698074004540130317117029899640840739772153379491662383923159146707469976699330259084359939214551971835243945870118738824362013640610768993327180120751475784496055991439897598489226083076163363628767592701534646122255010611387996681415330598007781896796442823406749715803673545798241138754361826637523396427106257107778134716086403067563321557735555378733263851974749064749162621326169993571420858806255391121032541586465237215007525555243022546168318031471458547192226714270528842880538360443695814834280772168076124733148615870873867180917843063918399101483590609886475261075518077580034418459413344904293785792792041906393942159108989516053980774724609830214611181515973870475863198326900091871408512143464966255805468010264719175323227195018072999008196755682082738077431659917318774720258140497494587986938813356650083748533210167215933273271088578159937230586429185407714927679699035752760211665689317369861039369652933453713975186552616025706345036477858246319323330797399532603218071234727997687844152560108028527676465354122264365871914369711953324528459812429156518560494221294052063384587376149227851007168877572724718234676463994062494342324064505110075624549994343289683960461168356250463832698806386879197618775317446713186348869847347337356199289300394292938002205071236559718509632402923342678576290752237287841927879896916149043847208845454472819785811989773598406468699336883575587421188571426167685417105037535780153658702789094672961014948538671288285838361761122858799132967566842615174142767982261920316015640756502957158671763450928716915189749603055012205238945880597342263661810882607096022030288289256098180442181814438239283847201505991043895657530446154474959226483635654494291198209375671287543073094015000411565898173743411953795825557844341334166155635007112843087755151657792802402766583482618206360794079061203141257194957732375527571393754543864542817413762902564653857557918792452421752630619167027816713871938632540524502495261280139296219225516031133899644163703460539525115081998103488608888229021688721063662892419712477360475498068272253469412231119215765244691002718500136759347136929495113228700785640924020188431233514892774469460458757187271635930188354414809033467116218839462526045555568137022716974797672867170415818483064093791197341494270389511012580771804078800175506622012712905650691370405191661420791125703438483873279412836350379923123301930312838994591476210171201641206469271115874597826065762310829464578930367399260415378454684473528879768924605120853822777045601772372336223631307643633453576777682523917783087403805358902804560146516442864666586133476829465188763199285540614680803791755877665339369723139243365436512242938052754856742983967074777678809782458023438139324149139388631863895873972011902148313549760812571520605791842755704668983679828701841323050506227447042150251925389743377777522750092711361777413082107745042370981766987368120581815802595018622030003373009276589329885525065596693358956305751537594435202507296806879576302657494236670404021294011174769886763985697035660789083824113568207954389472114868987704695716848320402523938231483688361307507869050919923485563868779620674008397225176472605079430604181378372589986855468790036311189720468074484353011064146672348638311009584913479420543129467932330194068179502671740703834228019990579080342026213367043730951555711175020997534594574838874989844894595687471244624435334420140320714621422322926045772732001224865724378424122056617147765582661292068276227192181642981433441673958769593752149023720169055951654554508481944720863296608472542480459930577932878995451035523271564690818214002807709228279748763150725767791583044445773981699570542750495092858900662424041040144734030783930482122867513345523126119056857438881072478617382605295857434208936710967337155336322701463143794698007497813956127589271880172914579112838672981825561309061359783646462779098033709600169917407967712251937655172994335560641706357205799767507669833294338494185125408067724340057862411244460974719173044934162209503615569396671048326515349890330438208609020201081446939183358837381610060288757924622874756645310486280756866094881621598415989484498426711992387452979956508088193415733919566676940424583783831515038942062393485292382677579514617337591635256321479181565875083731889715644773448335230189161856125018615715101111656041709336486252861058374431572743444557125653161930934263774795380084936520779091611437113723554861558714302706130712985664463570088022819179343785707410388076888326572121805466195261284835351965994431608229142176599107013114806172833122626996972806897560672867772487719317936090554237023252618082084668675389421280500662948601261001093794580774291646354396350315855405512438648334746607453604038013188039758841896419861967076409790570340545401846226039637569608021724169449451186835350978635111880041407249004443082430249619337513490989500839748861859993803376768571748022846724846826684557850627160970449927088800285953031851554652101647629338617569863224387657162627006258945989621836706687743347202672134555154008815938955886479338962143999193508392825620182447618923799959067846071002701678467831410750527759227375594711590159378769709892195949478740487171980692785148976841571243114401442738712018277176724409263479767082440363234608768171026611396546804959542877771034200386478307859022272700657718992048063085239174284894169845246788959885284828438675102194828365925052523790023264229360975956355714564003334614141620692450377134634082560099392789338865841459844327181158378351752192500505850271716496039521299444076386811690789491853284195075218304492809272500970400805799980711086397051319273375393295544536508380814412527565047518864874273297458359342545353875820918461427152996014942162964248277808637303602770333771622026735371158110010963296361345291345419079747829473778373381700404198818621459017676334597732878146568937442357859009318180665919990617376874838721018936470080804342398202367399562999509745930164218914804495613934990328164048089287191645192637010958415116162293580114182385019267653829719888051746535460705398552275922605837630381284546308759674267075340200811699021630927868158746983011444798386340815100914862275823163198447113953850543654697466596655235257047529145902002251418704056106136184227369078583278856549983231849750652220811848342417517248524770445045353292823772781701104569531172328384264049640372311287907809222436270721670324194529429165577692648547198098460212160917034169696290433847074920660096174130600312190199948443020332204444918522071272151289550220922130705989428594642964224062077214790935330223576505581628548865658187190884492182529745790874694415968445421899807777276353700593534824991883358804837260562442027976045693179598598422622266314508581497804633341255926686449854366673361897384881862289251444911225739283647381639426524300241880028158060107104824202172153953426459570009960850449235536955292378015643499545992300018546530830498184569796923098954066362840478007566421310424088666862598086367919636160783522778948946326984353487563477286425537636122786392336191634035959721463486037403108428986635496315015277829137835352457781390223985832704296524971616128484327644732531386945115869163864332476413283325920588840517915350914786798957422045020770948888210065564756905627267829405423849581368236204901050575996791614672880388274788858271943877508594321905031782244815309738543335511397737928112804988114848326139571215924525665297076250141744692015166059601290828379746455633408041626038629675565017297055008575728901639162147689004974660345576829936541174312090329530970516346277831408450239194315767388528723229199064143886107837347883228639197601157074389529142711351896725760611960673582292519770977219249931147666900373003101437254051333548455237877840671025836474552815505221017286745789248473392762950887892527717768392297396166078005758806510983718359267264947615679126390512941298421282123457416415994573070390007310699323335839434453005101860808261600732139364808854473022454416694743120211151928805486816932554268460830502552139669791976860867230333418029310288707274440663464392491458626823446624883022440711303548097305272378939105248569388167825831204361120878795072186562831772281746104088263587721590446308226414151911996573080825857426333888731150665917101835680326431798429918903292475159846293903871338422274220446933902007420910378772891093607529490440167883467531954406044678510691993329112266413904964039293553770975917109913434595869137206581088032887963720725983827704115569092670363959522102949030058715107618298048669653253270912153415191693811255576822179786105105383277581190339599130600950937651247871098102260383011764026903873346224355637105587277344247136636245892466205683252400361372655908127121700650484901348843516258921516606897253315802631392848514565555224772698866624867562425492037337957301900035105256829840113012838905519413885592447500021669171101419742447123479873334025120219795614462096134910413697491938746444890482446480866199444229786856239701785838796066726835359794184716980843317680546268242622668448521448891932595213562825529695177669244696073406016683741952790926383572621588221507837452481175438850642346174682199124226406518568841461880082754140162959384628086558083156968278825493259261085922802925586624648018502078491910560486329977012249036426030305586116352135549561944538642771553714366357348827203224065429953479302472954412894013048985624579946114145979719264793296216818025536401536878628385071896610160524295441365096778922229255897776629360772276322720691537823672698297763408439770113269594046837878870615299594853252256336239422067778388025283740409201173301041304040323927590298783117891899520589091623481643431715710248270882970857407961343312036203951397387369250998817314685129741622465239156535042681464707938700127122908696752170139371274234510005091781940525246686245138509226730959726212224878006879393268592710969927719439454158975063013209884426562191273179045643685730228077886130788592402574719747556907835525560534148040213699819831763590022288701479404613121813759296431942133850148786874097327386463314712986372970686289946093028605903231078333359631836378418968293934899796491556112944861520576358614306082179671070120938032073338926421706088405021156636135490528162142915931574628898202386589282698869387610684989677674419224687570881674166097734995054178137496034177131671011056215742757231490999601491664202523255996550312365015108823084041712713455329012612526168052397433288827439432081540339509174005462911550892329828076543487042185818577651619052996060923398663782366668188096913017406443058050460089974626106622919665816897915794662944329970647954958927221244300747090758243187709123755948012114301857550869153691437937824621379440989035993858666443836362866737306313809379835393922498403699112768502537159168458107225023992001440572496298833154836133780317262032566615199234201675907991705935991283552121315093179565665975604954720114501213194777007036374739198596202632163909936390558682137874397377678730944513034727148471447860569678883013181380945392452239534743604003465495288221055475355421310031954653666325547906761926298676502301136984668120039548016127173113321542389639230879992464880268020967213793091575279232750953253525310365266244547865354383602542666182415036936585332177248110183480172521585535106758755890575365210281185952630685317426927811593165607722414182583531017993222248249855188739190254303530053669595655318152282923290285675471965178754343462773441286526180046767877993058119723623858646944556110127372371152917150446628056545169417411986661036168377898068074761374437994291812697653421238868572501060908981477747471183937425703234040273707925927582781639892344570994235726372072574938097810413552041913912244801475410426518718058801277321702575104894902228349784934365475893667361464500323672004781640182631645609834824635223153849300442248530848261407172210606953450912733994577042797757384345581768129575057498882866827507077069694977824206324611079517976924063812454564293329788716170030711239037122561461944973719311465407145796954173014444280644338932246061430762296281643555687022532233209846112071724068440852883830733289981431866362058901447108165181010890132350728334479391069927267184996948908159959787438452706335735262143378147584574936763604879980092302527729004033514520028357448857869142844461186505211729805029483419911861830256009872171672397266059878262731558220818234431210869116925704446687708213680766186958238779619487423838071898373558886318223093668979100915203470998646488387812426885787941784330195914229671033503082525041086111821244286386216065863077389273617021286766798099693260183821603859722066395967409831845158152025469897039555898496110612963350099789405084396211763759755863380522596676606294277168387795043818511340755488598775346678306963788051886342949008073292802964448791117565124575874389581744414789610148493394617907214112780625410732533258609248067929386680527701741736868552345546260518917188554045904393550515805418801504588835639511841663445038734711223634267768062605245780647834760847955358872801612817553406237456835074829663025456199949119618925775066134443553229853266456267175055248147605146057524039780843079511188948961337869577988919627149886412762537717881003885511156442389556592906262515734834520791913390680299926656534323067387476669753169951725482403277212843056023984408679159249631962834362308174956625781400368828291000860077416450207149328961250144459756959749320107860382598789211168037009900754713426046336854307854579467565418951326454833120288452402422195420833855036367703277191880270977607251056148420946294202288430189164301362301834055211469291705118662111691274937499188107578798291118976555374760231050048436784844377516915084488429113794888577442036029393940939498754440092906988853488926460151328423688810166922078910307591143759962621217716417767446321035150802457862853802481585545936373014774909992021652301864482432567513368412146709168061797190666794258257514800176866200805813341368336820055185077674598639292443628529104233042341153834581310288415503108727040265055027907898475692919230964662208539982353851417701115248897792933284040063283252441349100754128055047003441341408739845176614523562036930590044411084426805066484414532249698882051867326537742679519429754754345394947826753924301542934816095372742600214926846718846209294385872357419711372367508294446442054730806799291882327521893166525715868054293852850659316046576512508662026417526464282765750149940924216876784710362118038041285809856984516104925434975132270538407117897640620333203628280648304092973894111482832323285790339151693572874611946996876020660432136154439060893068158419824251841361410076318151272140130879788419190027015895238109248596474622131486518044130644120866025427116452197926700523535774113789912869147264048939125478023174547381863911074370868956943148388403557565525184221324355636748868764189228018158659051654408286344285841840370655299469907973984193953901894203385710612643220844838638830053172209607410713468841780062209966663993306908773025180861155946964284922374566593557855660769814156625206885040574542546134378202345468207093629650595550481806612118808516698114192030329821421385875016434304192857382056303395437824004730114640351595356762054084289901830347246606188425424758931999688954567760252941526013855983645584803237289451411539463973072593834445764517864569903567278562503510489641845772771407705610236112303363270604077235136813855207707647782280763173191481918808064438796338761174263677441658252372178845193822557751434767639746169480622878127204183638152758143615489847282878423689638978495390133849535057979955211117905386660570680689492005148014033024028998044795563931261848284711197548996809456871896068330644526213747682067182529717625019114179823951814730513096842365580810280493189281612561940464301378842362245561319736087307404904257573575254227799242474339260359346563323383828085994001966265525834294424986622758788391975100376504990193040572146284731458878118272666659362176679714088675286182678644617020729806834642569374847257163439932762927871008758002066460737669388551501477800585046163974088016786001472492557403407390983356758829413783219763122560290695654020895964242486567637179512729890716887732951681604115363572551735205829804610194375590889312966847521506950594146411698500832984132053038633771244406231880557711994217888837332591839378785617988103191056555917835634395123219358284381996023345790780041500635093792339581442081925035500241388038017479470955244688056675904957538243202695792147800900980028881001300159202862897598768117511721837696275210149476932296844087700760795309113763676734236858622517391635041486125844109098190926294747405010466800123038667754154798863757040328212672852218403792968643286710850444214371617803061059959486213403450310773584157977975116864292208372014941021049576496616662631714139889204967446214241794627992592143288919552679357601019666715937027224307441677266266203075868933058035488823642749711272194235104203880079314368673167780594764719599935923756385257666641540225209851557646232832534305746843497455425917322911710525805281009585793407533425518855474596882951258404368511201874864475507205270885737120798776652217794143145091571144548100353208261897165262291550884597519745556864968404307668018843542263587236255176666651044025100221063089278549244349527226284949556581194051078842373718472636925968557307504915107125957256970592251254133499302736164755600454406587183038817354701360336460760073990633492967464754621888838143535342624981064134530416149858759579267652774671203953506696264461311856109339630934174625495613184131443037270004134009598811375649644275807721521397673473536736463110131773018028765618040735544689490463036684247759183943390024904996740549277371912768500856248342535234830508162860622018754301793199802830987337953516221807916367093850902609850151609247504138710060319054237746247973019921911934414243576008020166139460720421729088250609258679962805167393288954114796636570905536241401589819452540295180601389008726151979383593503187164033466390525639232067625248409498436936261099205359521213818039839305582468288327267295559379187652759653164374260364620247540569878831203154280353017112230342152211264594595300017096001085577195000644245695803019034596334661552600399015555238205582477954428369105080653997555563909799873475216955065387079387327736935364030329620986204119185499622696206234694671429384653055785644662951071746954318609144493910202803302304455226415804003439504684204803208322179611725815230220016401149548646725366849267000474082444377807151182351978289051031352860114350042283673666135535384739609949533839429965043130321021794467619382917089489564631368548742825364746249516295331236403615856687687673461393764601556647595582336566224759296292282446845639378419677313058958342634757533918722201108238219667024336724606526445118669382909264400280080845954495870036076309811829867568061424042582109539102622807539778930749998015305629782973863863227270426300701649279835504724372496219081448889414440861175594155975625418815499586137847474038490849786846976690935889985880569376908160957854974501960977428592023192199522577623065522845353663479058997234791121351208219356041638181933852933964253764436590864992564175798810499363865300029158854497357120723076895238197127989414566364307197436133540816131549480456578489400382507174177177319951010591352194418853442456470585157911781550227675259022292523222090139440448922890880825806060669111021123706116297720304268274728035030706841873436421554817633802537342542191500331181383604657889818146221294318789020841181081244218629897076916938138871187624135174535291483659574619201645601339674796122157078483820101521506786805392379759930731164062182797622358397394464011742602056137890710597538814020995875139581221136519221011782740612310364942738846991783729013358149366325097285177970669926872965947650608444617776461260112236675782599622152495723052177439497688815056436232786695956057634292154253675774020552712201995277201746140845083724918060281443964566687298148921882586156545668612391065305255004164238646244757274131688955335890441237704088364589230240221815950621621931758319031032738767771645678370835033189221405094741189252071712010165448684347956623493747608744967828752019999804610733924123714933706020719540648594839983114813117759241839244049460500313932906978341535452269316317639851282825500428007981680610869267058116701269861948540790618861146441727718685738374429185151966448378956329112142458994517041461332609651606280293648501797613706135076818895444064010669338032234828184297288833382844770613583941826507204641545768482660433014972125100661404704046808719310609982000720955073749742542788823262187731609852994872604016404341783305118980847487437707453595216632714594979975088922541147098128652168503320775264798001006299491388998612502633595585212200032978983014664839602668633035896978779061612299921793377699286407492392710095861549887622943365186741308773276507648713630770473665382976423392817797655752602941823156184344561728438346334523550340204620695000865465749599916806835921953794144582661929598380546100534223915690468755968749067232420633723087586195893806125945837411137656969892517224612321833168700476862925995867067738838633106414778405442412933299874475748578998252555824489941495387197277329278703783429887182175969405303760272309176779589643314066838320744985452335443280483558330951568082186278125341297874643263574300007095123278254207195766819937488450450822213254100773599165868864759349112805755408974647094730548065190244266017038735636522109112261688210029604779607055415839060372657103878873660534319402500599260305729119851828094601168971737301679264282377107758280483824358250568753278153318952541369851020645040715982343804993047727847015025713295740648546921181818528890777240028492659074052863776415305943661249806651430708117039647855090431369378304328257551235264749338220664035764654586142733868284774611902919156257640595389318817439678471455644307761320030283786785217996299791801209393732833995725261325057584748492001954734501454257779945567308977760809799490379664973678171939357762940286416875026358905432481880850864433052415034101833569995615835618433838854949979724098624308686966308169630435441266379936709964036858684394533057965973864407429621127351425705104531348136672422945978598114781241375413720058085424990884826346710209411930574262553512124175156573136326499385504286585957451436526350397705446995396979685105970952763710536977616354339428645458885592511919468075774819753503138663520162651173283030529058183188891493570091055867582050720007008883802268337294628593932910790502142727753181082242769801882688757393933922667584495946300772340181017860034429745317058860448807741126091237960980322736297582726927714690010491174661127818340655910537386977006554660270138785921585286734747590264410508502049682990367306634457165304959184953169195576912746116360417608738780704017330385094227595295005342714579867858159477286708322090311430699731908275754736092438044883739449914862059314920600116090999797217439581329220410103873077653622622467379244923815481594062442507616295089403094713972391466683371029402847404830194098380288284009781960835656199768428576245320467858893313403852505116116356656595010197494788889350606310498514104293493323477320206548348913556746383437526160253896578687831325829219373051717179316434972277740384852770452091509111416270820007312078006157189788888316381295621502122986273972718533024118296494492347105900439924625392904953920325711558349131653703794897420356420988545999579039650484666510371669130179957891887885315333951533817423027056759721233985867114829295038220979058913981735776681099015322740896054582779846725059753962441466797385366501255598984434109668355143789425557458043290747907675028921054553397617031489845934049785072132471204358445632968932759023113625720831214481223103454424681096410164761862885895048672969394937472176338889903939765376415446485120154189260264132519490489028874402086163826865885923216239972179544250231562290186425006004173526877639896299711846117415003585728844700951092425547708287693420303852570144527527733934640155332626004895791244715730691556668677267463257155439136339241704951233777504608600734982105426624361196048457194182867473871160292108218554988174631966017338257421868753410961114286679625360255853412012248625093149105785832080087752541751809999084975959330882933125642452258724556137597162030621835180172548652060809297075495082196392437425510308604855861333722884158692561269202449207724661408744877668330067412585892758438608844330562380360436299549286325682669138662834887929759025219763465262111489245811195566818509228191488379665788220812126245983237137978229579206547683766905749871520332961304125710826045686049287502026486852258960157821345736487534710842554744066153845816644794338207170043290413702380521291421657239630389242056020735389484596964929682968813927424206960849025127214987784642599600230122249647382631712141864496645378503934523142806497768395914606402146885577074378029494643360568646061634002171873934964342253805411501870471413575836282650432890753910967443279774624937716702126975854813404103496512731459734528521472671984477654853424648438022130922085266414294178339427335623513518003846784943311787344201841844495813671790018569990919611583618960267892945579920756434645925449108896414514718145188847189129931776333510736405846309616682100683767453402706653680436238136638258711523574397408465159044247034995909999146833716828351111514737075188847914214409889147767481993784998748708769049733104384643945188916570254181649562799125184677267358397270000377176961167708109661690729458001816694711056027075133324377712010918580299202514996652186930526675741622460834647696815004783637442673183948992552202867930353336578577192137236930346506307113556710163152903423447946384628175816066336917711612169984161826198896751751936444677708503723102803971145060020802471773725118357793941792734626027857377658196081838690748913856070356201125071165754238499738324623847372910066755925641992524206657539963514126618174421347994737905584318474414358114027502435668201073526198388166046072822707037525574848020811730699466047297721142676053125756181550558480039940140629098669221407390824573033890067527315945094490086912542686843599650617267063180510708804561584086814467592032276632070247833436816690136533618869438274536057905044461426920561160240888727028782915190089895874521782232067123291045307293491365184022421202709871573915038124264372752615009185662417469883820408248053394438831221213114325014967260738421483063706727201757859758296434406123799557302985984082724986803933044586404573092665710661283435790866351426011847137895973606901766073768471574171498261124314845475449481358578801070715655580836071324340126147331595264828807459905206504646987487786518994619333647570534854387034881661082544380242097861429638631019055110726273062107539185201049709438518103111150119648455902002218661065839446428358416648971084316862849765032151809331335433169958693374802186619739292616651205221292985914705747697587073843914901071965902008276869430730900552807094457118123006348162950641305573304816566438554268714458711307393848795626844781109338656529672867666201292503599386291046708725393865200755999265835323306953850237967934278455759720289473662338663976392091867890424747222225803653564587084910000234466771766306177916462495584178639144336142502967450793361790979304526606035825977417058200707027341856560071888507461710177272514578518149738492923428439052831123072029744866213498363873506576261867355836405281785156487349017963817705807401224526394578991397273458521262722139505467496323260813702887301146359246024217398104705373410078820027233575110238958907885829222767853734664857238174203654168832195955174844245685868196136375664172486911078154384301470494736524871966759408230540672553598062676778434886601197621764291324878705154207557616670115643099624511140888228393756106372886808424218360382954387828708510668254371316734509201839150172844537197973262196696362583548581676787982407325421095160386773972215402053359838768817361274651968098678382794789876469230138378378189374013190246007457235913879384579294584410717217057189560515642208161355208756899728986544790004909408044809251051512196584077365672929265568999010085458635185862345621587257518561198780987362561915594634874065589700043173824141134098851487481490719744004290906040033985020147685312881194201779744265021695042833154539587075247665478582539299958318861345558301056662226562797835441358711258467325567944082201601792939040607460478572029864839126856982026891137774514515008211334780889065518192651918653004203618009213962485823860736535579611999968307828750832504471414916531665874781428485104082935710997385943304259505344280036325392329493997478947287049498559093866584358466085865236800577769404163006013034896532281280794340494870331582334157607170961920316111746870783275158956176627882573199538388762885817166068976162334114384599805286650983585551717590101293826499604634304015380066295294888492259525246115192917457170822770192417966261709423043053423793296684361021865164173735615799937347081943365811088909795080561461658181782466122470100923923618589332517736202607401476020462959203594730551503524695630918583247685489691552808687434362050481706592624656488698854933766800167671971823085434432078053251161826516768031376805849386316939488128745814595667968048624763836896713357199349341389116396447735961192961213862157126765192849755093012888006183777007479143833492785855864337727548146572986431890911813685882977327737432624821272075069593819447429684400435580397832208635297686620712878876519023128023537183457548760337383584254192622428360842338286261814481817410863150884710739166265523211333041868812203012166468787181963113547433355759942339115221630010776707207787149847011276184424703347586587417741725527177239954183353049240194673814034292825128883077161895141245082909399107395904579927439263420382004202678607873912553033772509018147277891361302625309442293239616016562972644081711790405693469916235329347700038868048052165103476597583553627396684690528413056829479251708523361720117056187232042435829532364823505687805005527604097802382973504156232217099693549737844121225966485068394806108872861243432203947477995466105040156985755405779341448825491780790484536467103110842416994963313028228113920908727090398401736276795483822855566043759888338703722362727500696343946280389758127385715458025962623846416254153534394551580936779498028004102862263074516827630735007207683153445738542219605383867824855274331733894230791541673443522532504637149849792092557548252511409808397669833919522588526340259074141047976106500506710578494165037803710883796395622933087990183361455208306276675027290442491511558035622946907398784883311546090880503256661840109500448325118830428270699291667224680904156056192604788451216125588237772360106198363342646266279147201132619603450623339659313986797376609983833806517806184948908252206217850713395992154456348592313168124657454657478285133009402717142873687004855902608425750397112041413268664593796070823113842604950178103154898268598549933178578722470963056753498147318689452686442687839121730486439445281348668738846866051542344911580913192002367882325867203339991196598483762358052242088003297508788905803121138648629693410068420337882399788902997736998909499505662239075473067661274793992188154756661874204277365160566926108712237732930702467221935594942176562805111206438264291809122650032989058316321334034505668785149369748058487120114521032007522732963020704730885606679764130441236042375858674651524558919849087299256485016839984250217029913536783811438453154227242889162057753027837474051207718709505572883519482841866735685744541991619671033993162951444157204388226807925360133442699991712088859535389483466220778665022222848904976667196530389672400243870046975905931581233259105683549273642445550051394446326487583920631073402855258889177487248894384069786709976028018160814368431417176844023725716723240524547729908942132945611898632830118787195916654977410600461924805494289544989860065211226528317912283223556234751844406592914781497363170498698137255016881974389266472299898093347354657883567187603678286874931361833693665517445620175121065772376012939556171915208931831510421027342360490953864632964667030589001849483801785500915240371472007135687747041753949109020724560132525059140367300491285874628196751451166762716843709317595524160742949923162378222527947263282959393766177453613206641816318642638543253886899186099259947728610906397063847487727443948814890624497587630283764185279135282631162227736394769232511392203858368935024676239638200170012246661328292486480681650622597487494670761974568845557499654833279456773222269392450821414980802439888199843422611760651153951025976709796703051523390588050171263481935297140304096611952163706007246685202820117484561493522492397312643110606039924979107312483294008834520723525695101410982871778449856815653669598987722965347021639401041620322570648804839390215391887888553864738061264310086049975461207264825124855308119680920057710081377341686881043437670950722767615094180952568005691993055527694219278820258913861169701406635421075463653416753235984137250526104923253115211115168447142114266427535563372486311484618339496982796466916088450646373167479243320704310567905683240970154089073182260630816202504995277547728247556634999627312543346484229856665959064058146848473416959360815417084412976473205526858766404875477177182616291499356568444257997742506946312682754817047586523606347680627623522821149285874674334859467324452394004606482401545116623704483097817479836818765910642175777132671949562193381427902509767202154845682802048067485079876843898177424262953683434479239707593723182953389733959628619599106106419128995141109894769251358776566762984520813182391983632971420348281219143649185785219833706807997651661814001326548317115684958298498530196596007137796155604689066027742327923805870253041323596853069496822781395037465205414927237457761081149503971490965082135429717289795508176227552446632117298211885509380763943765063374523351670917091406619730659869760196141146750313467447194890864418462478393872886805851980546260627917856416696474980157527959280698185272287142282015222274937834523906712122073025042449837604174216341878777805126279338335992580010554281226543206732124215506058565232015910528393708135800146066114122272389865433321125440744614438016705527408333032998963917814717342159607626698643647171636828622900009491339914913470976725127121218602795618142414489273046465744876533224427734919825865997673864708019668003383791752497021522589269318716365005808130289596763620736823259786798794556622675805892993406975178165362480299317046343010923103650856297096365434828369478972585554027205703385926806953356935829932237606293130294882571351819544002208464614933246508541133995463805249070549988053549742233579872166230631622722721714247509154964303584494684475040395279948877166465446951044393813664634793715542783677094210973285689609978315855711283961278441184082733663995248626247323541880881151589488236222790094364299562724022881244800202019209767459554466160256024047061465698211478791896892363455459230786319162844223223085359940060699507827378933627255049997668491218527684335580272008494017987142627028831149389388235970894453471379353813155183657154383097798732805234136579932003499163490112035192161863567380289212972050678038663048500989183615279265498002951447792838300117806440689947557572951825815368741354383425669182259837372335188724523723305977692846674478956206251458517171818069086776317559726102132710524731965497997225099503837599052571760934577204115178633283944829990177158475288765108624431397572166573807411816458159437172830709606927380024158806258603994493410410562170605760401395219437342725728182952374669964364259430661985659724442063600810925205820360690347017052565192803315571356600166006929650355759879647507092014154869723505484479616742742913672812225490800599661209773073594960720495792301363280882630371733006639138629789354991489968854644819204902582448881684957823070704665143245889345791793748939407215912849767689736499437228205827773176129707682138471194824294657902536445891241958273232646760904868964164633442286281628318608878211625205220313644204080471074459153222466233781304560824550680150274816446867601584712354998632289497403759916587173485301974320323531339818232191169348257435777706027705809052740428073092650389082405475848087463667764847956461658655489982322228538979942669789647032469259738724814743053244767919581947523618460447031049718733523616222890362221559120145271377301856046270289975136806406652269245602652515911093943228739877047956648476989642337493780563156140505508724305485649866603294136152640618696604111334330890836523865313505860937780466325462424620846851948367586584413120924192042493659105302581681404892699243568044504299827010119305852104212754316935332780829956189777054513540057132685953327977818102484164971162261376200968002675333028868847747951656661125659160113312920171221767063184173908883102607487521527186724956004850483110584655215167792739474802394295625258443011843162611501235899576670363993703861465366247216386437862223058837336171534518872374779854512643116227021021722794729660532098933763846745690039533834218647199783926882663151799363131496544597972643948424664636850291661890150301015002934459722840379294612176905868428892332344054391083543413501867811395154266313172217212547390807930639831645239436114032665529928535198133443011681998576101173734246187993888442291538024757546213996178767672624633907891925091753612281567546863931312546559159427891294913429872825423646410398298247191815770228753610517884164122457837028921776314444781009620225549357795284497688372742301474694229670711677114193688933653423610478369805912092872903717139217104597252823075156485538127780915781520296324960594098529713506773461501727740088390151193117077552750950093719179044300268809281561304053665366048633672896359719381267133572296314492102153392391567806405258081567659061296778783604733744009363359087259937459095839208533644040544007729516699367863558927439865970634588920981654191698318329853188489590391412281398677412546660701295265846242547163283259452095933486291884728198791527440213769651359330773256268111189049567637019333797514654923457595488849545733609815424721564685618387020096189925345759018478935456423198499151607677105468879234039255329605126997259982813984525058363181333477832906481407077075964182427583685121385253699519565389226256812382139910909380868210725433859122565957878654539782007873789347905560095304429774693705694844303341473432918467281250806365880835506672531651487076736047337300539926902918995108935134057253942619789688008637313096085691202899095800095359550619487102819012717857737662226917592355875510725789031758093378372390824133244356410374394282332587380318037252316117413867287572251812786357780130997277965332371162720346562628850052182671305287824733145395860646601305525279417154679604204462763223996334766463975661782966987240980740554242536379872737188654235060930125541986747674295408293235324327857921855764916192172484425446500115151898958633965081210397508731372081865657045428646547731410366280036628248021268207733305006860306339903286989342769370260883702287784920831835501922374974144918259798237377128397424321527653892934172260175294153875158422258176038027388222114427856561443519013501487598864225260547866257561038752054531888043918075776628239484537167561351296119052599576795590453845681847351203783520757198575773456733095944769459278089361736761929612669549586470775437954670563432735363514716027430341670781442313250463760462014080270150449104203357806396878172781049393238162343499562965085502269094792433779965382314510406683010893488164170299502095175342188886546608072113961865732542327021533450502146157398663893633479603238639777513643466466785009632791525469144196405049211178058407414000152465021657570486184771914275349853197736289795364168594822270252674870244732976132104570347000825875344147030716164208902143731075923953617731556522758389964220246713154506521682273969408049757429729495806826209683508083178577540248798173230766783638123692357415039713014162042030828820285358838506562724742656975428358106613929429820758600414460738035762980194220142035180565519319453018191483933011104807708405165761338708773612356626644195827934158965283100823347933723553090124317930642544292220296753608067704090336580359865565093585006610423386662134855680534910663754853720273516744058345319470627612551394933841768111494545509713698795082830988047757652264729553934426886755850790334981871391616092783287564917474042172121813164769505191562189300377545340968268432112043383778602340805106851327340763160952259789030151888473371106805303196468334955988105627306701568414455346966400836116261510980810209471855019597214027661768010665003504735756829563641665347432173669342475042941849517709220096852628621939390580814493929209818663950271193466877779330587616192218716217161366516257254391318422773765821967257468033100255129344233799901867966170433783660484754142447563971974967012276725587018787228810662543917361251867799649464255979044624162830924844360941375846712675577751366590092955759452272531591946082444443794308067853009334611719704363700854547725809886093524117263966559383975331588962728287185967009130219541876963790384890109966702522061673176750905412660465214382697327574276380473516521664791009183388796942497928735819945656950704490691015043838677081869555317802547501706537478210462364639606778530197429141850754448809149177344160881660958902767176137112338961515290467835500467222995296676557840123113716155703039133994586740163064369266687278387840369659061898489884151018615278810047580456058402857081267017111714923827662245268840023590477374907522837797498044376395265841222752053801699258697382375684938438825502469087682396953167258509803682174243087421362710550292410283871551212009421893252618884054822960397399948923696995464072997498160736201994912524007183470087221901504915234603427555100339366393087603384938189885004448975271987342772718798277632678687490873085478617893199635529474560629652364893597209308582560334455594262529627062785303434649453040221061963814025641050982724658411771474812490663297743786691613645867375275573138696489481430444127890907106797122740039799479000175063339675539176438642065882036627141732297827691897939634512068418740499061284644696524673756173945864967175474146288378392911519009395003370477972871752036884731305328943966904698197943541015653306287186054044936315933855967461529069800416640030641669492276061286388238122116559371077498170436970758488692405844337863602515243026916829504474996498405008343539459061925264305335443408694490557037075548062427198611610493315058630108687481856195615711409573037603264698717211181697925833480601960761483165212072853474161407439081155733713016329443168363755131796227727809006077381669885740721699632742291636192974159048739392268300821586851861529238684414991528305737743023613802607530386200496346727274372402046120216055561293825643320606881806393995877211124588130180836336400957643147240570536888230464526093768986641538497852697576835863588389163595158195065144989502302268398234577233444085395367225242112903110158736492693370627823398733453185551498205823614646840271200744033533982705866691926392356959267553202112174719017639337772833465570042301134782936771293735141623508784438352469106673786157619227205335814334666823175732582979223285715804145128974809322338855629308223512583046977203320789682847919732991896892947364865312829412623553928400369205610733417448552515941487837799872815035843963918981068588842545746919552435114357746089360723311112301951654111511226603801688437039266381348429814711922613304192136267269964388367279555967425973487525486789399075636887513541969995297898979062690228031070623784968347023734434901321751581043570923211603985098124907301694213902644773443773506421235689911400943370409262533028643091795625337761394621751843260034759138905127739534813525973193528694176304028655473753763918503437897719384978209656369178629006594638794490184890694933011873951158354364347296405984691872198171632827653247347032091808619275750176934261536072345536258066066967411317218436342709969946644579042055208438332373058315307988061202029662008298816482960633225309950996019697161528277709362651724701828281680978075953228135447386981459901825128696410960943087386767494323228409137552226104792881499295637809240707617044006737239347132858627350416478190003287620338519372653315568932991776547943508284486504693895341928567150340966928190471987606698112479546440249686935147902461514851927453271141394666823607806702974918895306722573647043791168599868318517189109488522503712761863494707169917852758237667082263155220407262819316396857970348652792022084567851964499915153783177166711279857651995186090753623599834176201530997714856893244867612990470950410903154816006025378837210712851877604341197836919916854348676704281753653426758350966591582619995292504384569299683359131814194357108676171493595791814891170058605495425343208784787820561867991384273446406873568977051462714432502450648574040236569056058392360716363809226905062101584533537199103296797203004078196791978643805909233731642024121346439194304888634022175382781881580480914815752035193900104320552010323309743744489269603946957303282006458542061936146242080221499473955326055120646061393443127695108677355567714762044309153312966969333966373015334337690700453822479343140837608094103118961303305458826015636591722904542167533063397242473596111905203270596682224200980249915555176256004949587274535103158348670461995960721037879183398260087993281970300113800901252113711022633366942516208656997807105375586037123876913834489177602570761589489417872799177428534337597638157976618481683448000436729418612765397941825092982611253316362135978350564036810290537743955262524062310610083842203079299955531381959718219724721865202577141866416634958202865595605874551263990485447439562784601890951935928173422021379811119355704656538150455684324873675522648240408121494112433720260118105171113762999177193123402974115435252252823521626576171809677239392215475488886173675655229712940829947326381368487305335555514611766252827614528490841249880742249010351477616119049449480947175584760929356709152549631364422605559765303706500577897479323174430497344604004829244425173388929915994607722185637379250185477338799693453798003686513502052547648288635969796021522992359025122196542119898069131558234232804738004515256833653037050491300366168928473811916577057227852641911442859731490694366555777495857076840572966183949981677346411223432980743240328726631400047867415215361600706192341440410397395036013365602223263546685668429132500619219040746419088357855806281646930656434684906989783843173939909116019494219930221526469910198394358904782606519673926624500655617307123451203536079566741453373247869925417199047836738490044898400311192277306434477625259823440515261164188991003623505806711873940470007944586181091853839329774481663051998381717828419945955127989432726323844015789936920686019118929129567077976114853991412280756197343521285179918899785565953240219435076201292745200149703058178393222905462661673502354977624104449235547778417691469712565175730104788841491565953213241336474453338255488980364554149452724059222089797737719104148968634185322591287138784522822066202889588143118603363324042398532789065350468620627646549731637255675012438326559752509532516644564398186894209616637528153635766197011717099633396110608783417539431567779761253308123302450645071474882225533827795210641191884849477421732452559239666981196478377944731718193096587734632621207009099799680135090281693676055893434310560558271161647223712420491167398176232144709535452830290043031836900169716150856889348418507909599447247920781869526582863481986054637246413031209074625996641499285256742714060887903893072176649366711964471912458167114844843611329358009483840455922905867663464400897854027807001045025961549511590260905891149836082954278699284950752314345390467181444552566142885956746242333278239508095405235117919252270547010330421345244206772081487780114797726690192667109302348241567265547103905493852929240943027962630348869679906154437369410353750453557402402725586824820065626421384911859130975925497785320376459204794584078300506862808882432627095922175592346560965422331216426811310660028610621553598955982471649254809566414586252574239489666468927485786646400632001332277293368129079505882095386291092500496200018561567465075866095527476153224850130491402304248289064241436550975151511803692177739754821216927497193818228099208445506081016023208732550551493610755560612088507549863845524261076634410600000424930726651785041472786605011573507992312243217018308643196163370140484725786153120808523133763621498598696921765643131295620947223606144597993765042241424640935046738048423325649238333714095313871546832592030561137325361747212600290521751697466911159506485225340146465118419265165768996936367759976855212497309125630506921187535102531390921890541847336613797808290615341219724541096695921114657414432220581861169317580977274444739407433786293116154123687463245962691742277650708367782700866140557427072788522077450710850205329972357887750248367143014815854164872208374796078067561576131911231454951616728842166610268373188508982991236188198307646467296492340133481298114865037352628799514842843339607082137180800042598665250980164692354533914745880477327626093446463170662970900967641007373336047050604885972670355915469078579474924107683778547199777137957043612206755366101762371871075389276753326757561552801555147359894206227475865690610199332152231466617587215804982168581541855876237527162301815876356066641703176351338662719065203733234568245072746385988563659855192815155426463021189812806934250124909484378443019424444767164952024109571087773281847301895451288717832422851751214278343717899573770995003337847869038593764794958144689560758655846734065820665831819880910407001571091550573647906426089808538779629177543554410559689951391122455889275940177882919805193863879456352101258415530734143648321016876021457695969353869752814922606646667148077453415137889516491997194265745616868156561405563308075121224693461251518021628002401029897420513074087722398515329814561371191091031375655871485433976520899609309328612357096688004526657138868522967594876541380218349428331905690024469101925063099258759552390572831954461693054743122546764403733058440631496051494333894402931796699971835886308826043058392343410558064159873130990520723559813617085348939837297753097445679162620169639300958793691544393645549946170867823476435601397290989122702605769668942182211213632433428780272237480427764275494890254788951667659685587660180748846642046534812121790902050956723894223608908193502720970882802421829674423873183562495831382055443940180734935887963311719221112765251070240638228135554309155521843177257307150236525229709529256935274709802283095585374661991242684091789046533534948549861891076317340194941217098171971543915636826117164620464377314532958393719613583812936685477050362709020069910809755277694817259975274320044310244913144502169313948771546209878607425147694953623041284413593953768639490721778672869286576992671832915251722214900088289345334736135625384686710401665721983747993936072967803528883991181009498658747034829828487035282391448847860094549021053055276559594800559024883764431173096775046186657343135843040499893586470608412234599567296649882597505109513486662479478343392484915377721061316386088958423607097050742329545188181836573678112170290402687420508467565683350901434980932377598970161017563534789312461024793551597280000188842846403593560766840859881786396547545439857496190433564049870212964302613270979662788069118714052024054291786812126797733973060650749930342258189186050446092039244096566412439510676961135900100955483884064264349431516892553604844915931909776588754163827071413560102346277696523141962989047329250510735448286871538494672747080124699360239856626309203433967804329076491788132239740623628222160908547382588027897389715759331487815270850825092285306081087663356467941955380260030308592682850411880948478460971656639654305399730645350873886636305629352739807344860685939153715009872846691119270281415738310562305241423123974949446706472305982917624191128748513831754126463760901823969126592266374087552300905928985639667078884531317850542233751069103624874843401314081233850619985663143189752593277367738324170476626340627658988853806836156530346470385598097124491018155893285051584934200698578610939872905148466854265555401757190662801044094936000514609994276039651092788446619152615752650251083386605145915152402061394805383657127462105611456035833222012179513510530192598965949332314276279857786212515364934600672849541333993307795115631742025725989213991212608999579671689337740408873482916860475325098355849111829405094302387502083558859669505324664577825553199380995252020059786189648683957112905936799178472163687584057200524740310789422765223311954447086768727193754170592843869853906768514275210305061930522998575447919027835486936777004457774586157996013637792125490340366724118746299942855960709440817839651067990962149834534840716742629668674563966406357746073754813726347108644050165524000594123896714179802928350875521023126795183505313168471499012833760173286738302482200578008934378142331360656762569495245202598303221062903092614497589057623750659087051602056124023733675445977991944059480130407075077811313816391006218663384167757415411067701737865453901891156411898134994814865771702324028960349050332570819409926467563004627693510606254778290229823867623582379381739962576365386957084323132271459422175893028152024676217673396671609164617844424990597111799572701488679108847887663618549806890915154789678443821507322919454368614404747803118354460225609141962984453095541453227118095578648298191804612974465873191116737526838789101721489774509956268648593532283115168872302099579893752771924854360916531763603994145835237360993254308209481807042830193740823812476394520420297961417592776019543414305217389383829104939277365092158059052737949401130158385504171161722993883441353702239812019855775494860043531069692251988573261570315705269483467830939259663761229408218167496222420005341624016463018660895371041681087356183607073606838521543942611966590460313362850977534415215292993910191792714772669027577980702209531844156082028744253554386727054105580971916490291138569694716205153052240950773659885590117669634839616877418577590743515091450355637895709456894422908622062324143520780323574315078477821205428111498620191162094574606708368820036717325519312439074831068334520568713576477327588044666553856024556772027715287299498287032907091597196955844323399955529465262812679116104239760740835029238465324072653477766054881047810721117424820735733422453763047910861128708568228952417350887382529076086521935190988229547268071005994019081436716740106710876079567791093344586914613724790958283992430359452804210824840906018178973327504887225230592622278894842205516397782159105372006884977438050968954025707245867051583860111392318996484451990172316063846329271365120900060034712626892666286226777910405363657020990985269944818117933681843484707747884655324086298752321027772267532757253386506464935694039356492433099577928425789203373806831889235968435224590408934422908303685818945409260020532114337850907849578439508444564865730749610898504309349521609467943600606585201414101388974800704545101497365220887067389436082297222681510596794678838334987203463389612618325416616918436748760785590281660187930478838464743424564476211463567638025124177085123578006384419884955672461678945976031744770422209286563134242761998401569440802117425293923796806438807687925167171486731533931229695789682434582999656146944503893038865467801167884987088156024714088729076070215592078010600341620560350097862276491343779217994262838011209383259196291346327495187685486612188459471188381714445283089644699995481671917392739616284514902451956003166075030356073596632460226131197880307396274544675732613021574458505393555682980335655847643349004510684111600378195608244114390596554548422895377131158117997285886396565833259310357647480428645662587630907023382786749889039294004204277824941117921643681974639271228913089057626129625479321806678098492125154704761261484959909780488504391971785395133823111901496664232749592712552602985448206805465070502933650905386537346517385088000094581399935023747198457259829132170568922899716640360266748211843373943555564346039090153737088586099880473136843737588696715093157810225773617198907012183330781763593896670895439223374433784707758251945264723171896663023335878543719236280735162228641996884581249878346901932658994131029790096426556545489299089140291567285041641051980155613797585279800583406514397759986199168347918060206301552224027763231263356195830646239684686035859159071661208227335863745910939478362678882214955558852881977363919538012283066513482024286029188393811809407819592692323004714102991989431457367999331740157800722170657203346992363002881081218565290006416829356248494859039823639253590271642167106498790064663630119223362645534346431317119080649087990192400302178406426325418256675295869998811611304390304618456400050279889557296318647159265649744285134044122332408006376488815827125893862167739186804507688803338114866306171608727216458039275554106028131255165684606335105867774999521010391319822996607710435073111555492980088398476064963342492912781897009175807889150413127367678096893408216529036432550287546860045019629170605429473299494199565840574224553618618180587451097977113497623034872230076692894689001839709884669238967994859728912719217429009371946997171336613973388882007224134957093037943051251265693251604628793680602347984948538149001225169421992618735039591965801326143404276985024998739737154018523460578383355552442631921275853401272052689269042828831691726358567364642332350785582339528715718317146921345695573173076949254392528892232102034105042078146429014187996516389722598835155943127019597797698803548407951698325678132657808559656057388551280660247984938218780749418729986229094947382975327400237002966367932558973187356717913695249669835639581917465714234511706361502320950773546768102000992435516220433100307847596595842072510303415945527594211408203465602241449898794835621378421627859722542669987949209126024790148732968854605054795920999442202634387293650467853395708937168868336889067958009957240319942855848173574684270848053253948916347925131496802608770265055221098496098089535561952263987296721838095532255363144544681212804650637334938666262034114168805739984013101354417890655879418382922390209971165377870694258159298131523674922164730366768042709762392128181755181220879479372546032699718488176917800189146977715635409261908452828658960289183443017162652681514653395704483503876036838182546090968600436677445477755704019613838031200813195851573351933415916568475875162438002399525540300606214866512720311607024627900327323415186318518454093773427765015140707195624101029109793201019808434441398704396303226269487865329502643014480916001966483594160793136080981417764576286755053449139222551752997268426746902419551198844521231819031502397476113785550777923748168869725876714257194330555741460661437859470016823251388108591413952954182598328490385827407766705729575213903391612954271159669990377503023245372941467869042623646117290201818198820328029648751884707782438818259934433691010957153909021709651091891105881127644166832455669214980323349221330473876843031167515685342044455995844763564992441818590682194687044702647678486970201263826031455304484891803450500299692527271523392965079260560328562756855936754734263534216326147523338687465569102684760037697644878780302833698085740697711564390970582475163076018811877967538238173845453984751624816373140038163310981680015658249567033795492088362240973723041802356381456777675322781136213204272057124575069845813576271384525404145843431828548063888660876689798868510925477815053259938611527545851603360764796148966440550709204985029958402019701042730475279949666519709530153134261300268385105464171011473002523604030532851658014297185322858400654710266404085930775043066017990882673062556746239924836622272451354303589871486058787630766646066903846759232218015947871266797973223568609397001524474556744362947435669320683760210433375924850813271622498511571069519292638966814622718400583125587303876576980039667361860785025790458048869790172307624703592938364062052155972297698011177201836586396622199536320972891339608092198274891130756856694262468276279110523549708941723560581830059486280327008843202632911554677500022592513412455286525078419462679775827361142008745269986160068164915022673503393549760453481047793808660603269422555785722413266121324833083679796356438765736787486734121574922946852301723499691054202747876717590284877185572587378178896312458813104711536223583894307134777703797796187830367770039705359962648808358526090773198005793260250500439172293939029354861420713621831628228022385401852434437783449709357991075107005752654276563689090713512196434736592026855934124259147486146336520558382784337391330197326963388122866323392397282654655130834765348786277542724014110096989437028167846291285735195067413578098977106163599048854042718189058361627914230798138758435267848129284590982325783574900461907390827094548108023416746487796595556207640722467758068392573215478226766783530568607712997022736194591458613294528535376173057120255819317814669310928909450219406747552446150967893998899663780416764156486355724066801937793408660167603923884822632374280609829161699721980494670473903399384595259872960852272259763246464241860638800014206749896830999861337820825953624945031099598090275482343875427069236914734646162475712586654732767071069033099593002729418489213810106180416978328351152855682765682236981330431054250489207850330256857245702021519765813880985395046680892121802374147647745517582669871927760973429329846849565259304085922492937731512656258093065713056121470068722602646585564989227391917746328930242414737348774540071227815639151862701194823917290672719902901417912340817550880592009554655364143637461191389129870528575752053884686879727767501597112585804398805144427562582423031381462577442591665239156579437556021104201755021363888302535629731939760181855652259005264447865228067802531962779139712021231108154502496295265090915457536646350393174698757690354644900488835329943243481678514742667854450367107109239630328912844242426264925242459758730786300073989373776877480507252211097395780084442778020553399048866933518351286858577607291072853780468424349911143303841549165322564324655277424786369356832250655131173739752381919904223673376976086563033354306067193873945390937524283216150831660685607519693751793294300833310201798190338211394468612567215234586939658599797001560358750543823957949596620642993032172821152864725286740672879106058176852697921109895255475154101175759701493659628550040146831015179569144074307486622850889096814171197418235828207523109105120954017016883004587259856188506367544069965267311418149280386813625968673056508057025253694137769395480482944370268765867282568383327451705424695568424399002173871632893866448724397537267823380292183480993542630547795457124908212354040278466846983690350538293148834008488411708974741819729488526169806324925745731092157212543695228925225037081174615332239540516411468082474382186663450168255538567491473012278954546498820781405694604162412055924569278724310634190376924713500524196075335425044655980616442293797139278748017424905463728306082397440598143158381207785751631813626064429430759400107964844756808880607358728571204520659644282492376035250235922156965991149567236309341047293712520082016500297917947763407853113120676658260586466458192283398197654043549514434039712010940545081221318902704275969319744504501737456767363682687160511243200918214781936953862335781842363183358511950949569678456646498403115226480609734867108573224471335403342808497699446596520587468990171323355800411989509295603889071313642365254807755997833623463111015604424831434043215786748714025471310799967034750295782247719232760418125284419584307416096489937758672604766476509231224128405363373462127229345434360397024473873484138483628958788270994197496287426636008541182236282909528756282048646139910897849433396673617476946365070583977923366021715279192732721506615883693926054081927661286478475834753496422412596317639253454353117516711536354662963720217313804138062219627369706783906066722873183785278118903121572198516939054438282828379118866954951277552192153275364861948450052269389453497967599613335895604190885206842307303308394805618632310895842766196604917045363189826456792470509352118111378956940640298728013092918553752493896028860014958784649840323576955356915265358679744861214831851273793680078141283679994932033649947763439347976104657274716334690173510873449641539212763382112304831813211158116461031005240686613373042139761661890838134982676382977031861345647183853573678386430515605509772550240715400153460930856478549000008362725904344700016000881957896299031544230904218206559102052004262268051081790994625243023289213477338760644110319271831018731171231534326017770153548225456182447217425509870429755798309196632014950844840000405944476718460633132618926807516837485618778864912109053582866998600498850480335032466874327013763917241126257498747975743719546473552188873539981457161043066737411565158355264859935940407522713399037918350457903504268661674804536354365037129052492918057819919852794814705416439014229726165887925590667628829793829731252048780957713037961371721616083068660061251575009843160924973541695837553647508471710220372379633698603904388965893147852793167705030398379310227923297325306751881829901216329525774837569715952003451143491298041462387925767492229311449154805103104370510525401965324129073405652147280247191739358474177003714566116238929304549428154626052143810442295457574053214172191242401402844655538995649381206127032928011874011800581513848272436102569439302407237473524565728246507914133729871664161274461878266616701414071391975630969739590024399327270008861790318921632950452618426578372074316168276361908853272057415040396011131081086802693509065561229189391742439449681003994547898620850245618903685620498337503661076995770490341661875301331713953096508685372786686268414485906863369456649450491976274896476070013756909371542600931092685538963419087182281203906141680538004802741959888626009919775234688871623871743233301565808373382088149158636467415165526020238441975551118268389442145353002604928927253820953793658100739780124121646727768905552332017784147879172521681424582973059794042609745532050093550525443194266760966008930195111504030188511246534513546301201659947351254542260564678385710542858559932270758871825156898311810342580842947122793333621599343139419994355680338613801435678114517199404554172295121423993912359636099380194550837009245723227894602748948865224235223388653229762395999742043641751586818160526897085392033442838016340728652140755458450465822075083762653564764166727352662494168904134744887597209662093316726701084568921257812285862083288398457639496859350291142421522499526633093669761440224050241111466298235140470962353302778475943479449081629869813025458145561923747518002548082992157208536424719442361795700076899971974818014433807999181406771520273880155415560736529451088459810512948214703905245580979963210255654602057948553310047588913866578865395626407399474391007077509565445882831557232390392872947772120024438457661220579947717959020824453111815444796377793319444680269013535763870184861228037433349329182326636132135035883420875677925653141450535696611514496315326976572179667708690079302332110060311401270606107489569121880859068928154536137075686971001491777272554645750330957927241736783021254331418966623474984892817216294312740310373258703845049730558833263170243777314254643199609866233213426287247021292477105314863971681131955905880854933668378676318404548508242662072306608933411251064394287343661588161050766274925453580092354799562445941562041934816994560721491173687607474210070240931509354690382515513852277523155800951947537569721691250218406989167282348516962472536988117860653648824271760819198485146259392355313096981742227759420696897868848437071039054729769069607696732806318473717783628740354977367813109538505712112188433324926044735580694893418694896500192974552940171420790807459622524155648841323032129829850985872670706628268824186594401364264426738936653892600969458294673198980562776546170181220577805313560447377213560273282244174867253602038049896065135819910388667498605410021702151895370158745870710858557286116213607091405991344242475325651219855154133672993637476897203109145123719904850835666729632208970770157520300148186568255476597126008125799267193301834658695678862823123746921610089362903311146311249238538357081192986222913482078230463213151745385963001817209772525529190222486196700749760934516654595017376141767036433130930385190589830799298577743753275587026035215760277042328474876101793148057450512988108348043139332935475446596424340811710686724109798025099804996397392572724138881264406260383709702895273464608854403222233628331571420422137382104639085448342352727126461897995912830673973056522322107236120725637047447180028389498399539513958580779359086462180206356059682975694442547442380682783150088031457500820291189658881117872758544235107866983996562342708642096328958118917015989565144644784715031729221405633605104336231540924226349962913873250070707170405751717056568946044151544809050423918005269088264350060668403718848355138093532669488661201684445725117155372721506536892036279278521906830675558378654256610176526432550813102143811891049098459113811904534676831046814727307474818136571674979170584167532056804250832114251900745353954951883206620299639130663124177371139311115298551631846755389589423863550310033717201564188788502705309411142107067350834614489974698435188836487983614032859891586218466567845625072048674997981950038469042648658497961929817612938162552657070844447063059812149465748111315643795834625971990067717691129851665917261161939906831065450197249322626227960228728952439566861969269457943481886166392086768788186428345765076967673089590871053655688832192198118090855108823696145691066379561522477155007344086324249263374046564299504670221019433337216250322669590550245708336705718624080925315883019794759000292050502337699476416464877165577471454613061179108077290808139844038337824268344012598014278445015174341341285584459367679329789173759261231319069282782084000672463088251470711441578711184424058595178387871718320935715198457534921386416235242688051215844222976947270253894545916173320474775405008302958427046462084934560582175781312181357103712492090097802572220066974949708370518549831077430186453878851235578632717041033248850527169788726646387005916905676584454114467482847752873094194005048434963119776989492563610854134688565300266152428358211788052606984874059204042394950094328514935080676547617803289215925092193284634336848609040957768159320869296201473715303938741369243247230754302869032666858712525901636606729812514395812309978466999292655205567153344032114174637117010595687764523262784554190094287720230317912795608803149701033529971380801034922855543139583936504681021561593088222624538027547092337368574462245319652061304134222347631566143281137885141703961227159141222748280207469101431266148432115841787752486702824858937435503169792975797493614159116859537624870418939958319600029671229163981545317605957045496045255710709049230455659684585662446229180809800977177148461284068098921008514665413022987294180011103564704080886022555824357025484700921308682817920599562860082458424321362150442113614758234039502512870589324338728372724335945518643019308621237070265585572452979176190422577729312837444092160822209514301505300472682294809221035455655787759127362948112990939770952657373124959878456017556763258500451642613781592029891944395266727424876795306354739536790409270176968503314369276028630010267360078932501437719746190517954162749395781120612008187208046823593688369044113886605476450589176079033687234369648137523786014887739210250431884551180068951800124931696125753488866285286169359891542106663297989941169058597100762915813672503673334675090226554894491611242665013879303558544512321485401165790332544224729119484698748023070380381963015100072443627530439998116574947526011063613477866852455301872936699226162983225795150056544948718088336985824931568123830602650008846110239110059573825299112057397421492756223695849585899559827667942966224391461596678397320700724602542594931291381096056679441031710171843215459141332386409057308844304375775620629903134581462132944961662710857360272460972928148187723494825515439305565030925725661601514016428915306989970994874236883068873745262075158240665012414078109163214288955179225186325415253353709706223381136663642186600863610402958307241919978892882155042467883761657495010232237142240902131222894245097826354735064689075887143465272024491259076570581472836043353949767367191013165371944873120235649706139444886307298533398667537320779589871528872859247713988323771097989273999657006605918073184032674257116492381292998112882440379268913736222833586369943722707340807961895166528511935680842363463257966871506040923609602877632092301945090397016038386768549010052623245850928692712459406846739351197946199583120195127941906423145515406651805338337350003475980028685170129954205913526821853565978086192925488442288306865448022328957671253767353546656161802479968377625730540654010733999925227538134457146523857454548321059769934927745347128647461682906364402366517917573283570375011903654391444663345802681076049634188350404247273835980570076239978770011685289784318733783530547482750107372754348983651819879726739464201288012063806631018466832813418845061309998792903064322832876441125980000513578179917891540791235461932761907889663048348344562378069752556480753148144769561516675289107613928161492136507044333425899424216108669544183794739288928121282780604279455535275334003408036273617640894952513463882076004036123287882068214292585095656557630816592249300994838256315610765700210192196747266006013576021801052702723558836927438492625746037325132247972289690518648078695722614013519452140166148144041000934102115686183032489822795754209963335904024552984502192181514555860852810656210614551905250712398471166813179880826941532744944025228357949140887839194621847532718451295628966031803466373277194386791117060136127748231626640939680731457704286812652328348131241312834106670405954678584908323857781716070060662956891430341015868505007268823840659068697082306653230715554369560081810729043794703216911063327218144102602575819770439032100727416625322602830109417245977697007540836160856943730605499728188901309167174941857006196502878500728580584132957673536692429346489504691402732223433178351632714154734687553580702654789491772718709584618950115501943518480101575832493069254477916696222740699951798244622455342302612859239096001919234466658108297365983914725847854391773102220619906545632215406018933445448938939858549177671491525709561005961398983207500449316205294093851854111951560643914601161510519559509450261970442984057523798561253686262897493602391975424387183228550421222792451152327199777058060466840787512377150460702953010332184202178809469612226585900816862140358037629299352684823932311152830066591259644378177287580655691130505457055148815722206599986192374577109395133289550941704654128812263415218369363644577543751894382220115075374317950606641318504371118492520809776494001558994761935254964632961366610810039380506974905548334185278084407522489347083195502602672341253622147276869381145895021162190556400247830005932881887019055410835171246469390747780264696105279558117248537323694336701844106131451706772170982087570713975932543129340852521666911716626913764729393216109066285296153950848974064961347552225555793256513175591330846472794802020958773278678139735675859322161674934350448670698939270402919185040806191339337800834613677937228263492857450123930607821324065085897399102986030724236664171508233491000593656269901172102330317275310843069353382685041153044626037172788714135785266339773626595658116717269446087359368372104441938921081995066053591022433565148053075700479848024242001673477949845272025501218087855617508522450518651806592184151949047240312961749134090111644280995524950677784609658717311725323279544405029152289951423272137879131640726182462067704581690634241436514759837232771898512716199173721350310251617874981505154981756852817780359112788674382077558860373031983137208725987398947839891863535103003411368863879829163537977253360030042353796720901264565028127667906706274228315478523747080124046885258792321705005809016024464521560418939214424198466022582319138459445693709338701329263016493566281213001520854853509654141282232235446429939998823812194562201599368370519465110754964571378402218231978907864173327106636262830402748770947831073211670966094646769545959339337740112067253979000310989757242677074915367632354424620486510292812486016932835401894107093662787802026770675382248531729667695983490660167757235923042285618846071068826441866018622537939042546598516131555238980021636725294245454193768722731935828877076319669903027576011201755431880456542904790271682319590654670536925609609373712042191570865986596898931377634780348541673516283015130439685186779376361084502089397641753012852013743029145482831840336996687314111211420138763056502065852665461901681295999667131052606947217914633482023860388099065797870820313759904308076109725467153432767345223167997379260958022576282358616347313817071860630849792473238101627031907179277042278099394194519359750832789952513361766129405053791909127476403782372267403687059369983623256454739358340186910351460295695350926569647143614380796243737406534533395133845601265837509481080433168355470712432725107406781508814693188762316531324658573914927025717089932091045015084065944717359139677874560944825253497066876601987062697371956085182395243396619656312356484778935789347702088392956562708848661574122717740531188542610598019629495875459104556886841677664710358763121971141248900015221039360237087097054620928884754037198387902688838429985441599896048763997947277401751338247374327251010460076142151375090113283455019661145019531203045864073302501188097794671733990760968386072648012470163254254707744369744053885286586806346371396518919118312032362501598481065750733460708512389179896992042084102333416708969068057839626931717919631037291792710971568441076162905202991464135767357219027075802856575476216364044271690521898054722492561174255294271694465887373997348263984937487687569349401649397829422421958203871077200699892192145154815178547539279326844767873885963322050970115138755193079160104099228165070027723178506827242789148219600449700209379077486855103363129493081352334333217960494805773914190798720768153028374895674930282363674736867259113632875427066890205972770842079539354504241162132974193715651731581190726452736370869038797312846842063301190470905035222010367295415647087896885128562482409547516431532832707216684665830557483103566648678665124383903812150106905661803732326936363154294195680917969205838283732091184503265221251944218971253069789236475355183158238506901447834778001470543368796552268982788404015492248729551081923663980066740773854033593428331564246069516576497789266290890570004554718497744445470213392244893988918021950133658826862010977502197682131987373255496127872671688722262764183099155924186606003804406367149507561259300897071303542202632253674676432966768120866355443962880311532873678094837629089951902156392440337821710940980653853911829471163371585284776709436500685771692581555468326655473233081585355025303043015409473460571505313929255407390700501034099365902085446405282133399731221117489397243381876827694409867070032791413353528260634536603226894908141078497876403529434517321334883344938120836614314526391484434503922512183100718219976779768406525495002397748442416156510912045488863440179999864237415010130378435903990133154810487519659632928330369882497310600920788425808017339423170950285526870131926727771472052339986265395631902019190304387442512943050259698945403329879217375508262769065032224350252041829760244487098312193371940935883141592301528197249808475610353088758397659060927924948879873450623524035271216963089279413636909744815642314305712881948584461345556865486949920600248460883009385585242274170090741658174911840961658085817402674944373151441708516144244558765685992655368896824160764841638009566571254277506455065808870417324361276457949756885027964212401781927719099151890258789495807417304892868889386634348523050575962362233133923517567987023267302380988698432956419839026786748785420760061751859346551672145738899017523626605037362984057981679727356168107611598622428569973773674890430174098467590301009303350829338844111410803631677590925431168721599895508656702676654219130171183967628238657821023004234170471633306510617397801789083836593627261549622793372782915030901719864536236994101381151863117944899552424674184289112609529339184711254404143564609855899995153370590437847738428173682102617200951177794849750900135332117252108297958088147972858767758688683081586093990453027053946828327174060871576028170595996540602783630129545467792543243763255280151911847679431889023044631648387440820017665639893540509442913861677095691201062844330448293320262325686679233123932377115953147818458813707229550125190049558718232924439558837677348995993987046998299370181364015625270371394370370724837262122125845313478115421279588249580757983642656595005776108500456876334717206724146963085418394164174732572453962978530158150827058347799577097502324802157983363129843768911873306384021072220309414082468142909964166272394685501803361365025892966661012027454392223494882412238019057431722337089662757543025634736284988954605156728067990573432730274246946466452376239427071034479102191841831647209743708160616827794797846364130107923707889014959104772250494755832948275934712304311602263854743750182085254464289276608953864465549943393164533438011706619144581318100804500231884969283649076809586728690825580395254439152764157726052950727729334237939571643198327110557282754970767145945165787021032080187104539069927232428248421200876148460517695637954715465205773268218458267195484479236260007119115576719124913306127204647665737052512386998315145270268933570128327125603160255194602829652156533738987339342151507279839125110068127936940414486198224063655051348774818910883968612634320172602314873193155894876321957498151140453289534760639008332532964595564438914457877355221146169141100660885140828203137352493995641871930870989540363928550570383950756348191275305181889592906213541919120194937053140866986592741903273224715861925479521779421693662598634943257343418872785707916167197621608110371796143835348984509263005148768170877441232010372948086450824998038730631991932998433534688586144899866882825611359197949705981974302985112722934407787664418839786954474578864955290674708747983887354485275693399719872582607150633991364563983375123580845835938665088562716368708781725180504813156486536454327622046082576704896693614516228601650694007438509218581734977799659025065830866367560155571558284191385630103503001570693322582792999585697908792034357234530252373725255213537929301371865676796823663813938079226100664249537396780644868426960038811591215130407824537638420511977745268908311175594220861262831636789017194428184030001146082772798934569602138606952864860807800054469967090975709713856703304889112829875468257939525062378236192162687563976825098464330164349480223076323718050332676981889191765835582292163103247820939382211745425111813635056334059924955301747416870066812492381415950779578154544869946504363827782841293464104210633120234694269353466708962769332593458553173935523866762601668913314400648651465865354703697319916775823424603015868703631578535475158936018268877235340398821642517163592768317817942237904338596952364499931886456790236284399387283049637745592314506602948465613717458341347817641150393269923005711597373476948223670425909969433733135996812267761394218608747395330274904883280284297176279974490603212729773561502694640265690863855922802940016096063467810007753538662709612475012103272478912964131751103604882458118821814541732179142910770409729727298460182616878992011494363297707012356706168804806883780359735768896741901967055228386666373712993392936484962323642722933609957098039936501009486821781428834125801495833369591529300164913818793830121077280042240557744161490490834715988878757045533636596494589213021317680653534188981216180841318003038147245187115035650533573950605229376370353417765589730951377404755306941472462578197701042015424657014173979142773672950046127795269190008038513250709015373578979662163825443673659521831269026569488343801836671987129602801783622918115963227691908889630130800700684771460314175153239956710094924420763804878985869634027249137010902665012572402606204821775996410123650963801155886305346267975897935205949919926624346680155551941632357498949821902007004459837761960518509049610412883197809859173523612424672310215138098563799664128579195578709255992030814467592615049866148202723840987175538873349361342148545469161755595413192407163135178159187949365260043690696587309392989177538720009363119970081251117804649676495802377938537429453550793927369479562341888790864736870815267999630113365146252224688394315138017582627444325376193017797598954805572011523891747432698025898255469260648573106667656299518166280540896165320401713570384340798876769937093746641132007037232963299152311696411043490397361680161897692137069337155994582574262001474867734480764266056844460841391129685197107876756355573248110636577599281306367175524974224047751463152850552193432371283258727768584518320434723842005316828423167521140891942518784756653661195864566497286850151553798699521649374105673015779694025133172609768382100180657262192617486536267568269569679480259089261096129002780788587910550536804445414961573008333402139785396691454491661129852283878645639433975727451367298304124893110432970159110144589687943724239630084193763327390906035339082583500968300137199725611337587147037711838611332767700420175004897083254411573623703562234460672630930391577042819164443033184069880321756124940040185846249876637185115049419289286065025685015755288154133791966394351117663657703005093344488607065028184731561042737185369544009710793806999306707094233466041419672991337275118837969114789016778775716264173868908969213920928399035966099370802604546895162725881361490224049567630971923196063864961773950516835516199251226006421148809070416121540267928681207950744307493746011055084046422702596926775501680884616060651949568572418590972655182319743975455132128406755340923298068315491958542512642902515179644742332792415461272819732148521773239974628368372356634407642971145194750612072474954146052050891887234693114159222690854218134656388714804631668314046149947005723800451808468273437828184835378362696365131740465380476663316535397177180493120927016742649830361034662900699935874891807466520818178487346430871752173120364966774035191935505336380847646361132470962468729977635305640690563766218897173388487410660887818090400305883560263357524647641937421520884042170082851519622478995062052688294120086419317352361033914537884024694219667918403514627940942741396594292443441509197296788993376483940093065262089737329339202626724287146731158539322659325022394545797697203503924265960199638062385341300275576092498007803168164903803153630908069155702435376924536415192192789620267059172236169724323068694110874119420278612998814385970261603519495630937558416250071095461383548178317454134713590139670450269257285684786406521734890977352507007827124573552542814783165995208748324645376053257661547074500015043409174548160297850980797998846650663851710218010228184060142358799283378656145909014454479691398060603473374209434019111965878310429886212684895041328032546887254364139965163926360595597863631307255595379118957187754335526879178716018904740604407175614806103169702257751958449884082302269458183933087029126446556082619560688786208481101094256862096042630124171269063210645079354196398585788420982494821981724028029981275743079794134013299110490854138862650094436649314883970910295520120652004078491882793291147327086945978574872647039870659780309537949793300339675828109899421457387337627321710736239380118874293167154737247948561244048030599498425889178803986746377761065335364783001133469174702746216834360280544138471301632211750136354143796132627411157957067368591105264231122078662444720863855351642713382883074916325152117735707594452143651743211469739795356717149817568020115524797771821656891177460499326982971851099566433310378252380115961195447798394947812789410060015369249969524978613116014474209801371496759259226716409694680817440208181274897312093400530324991134786730528322021543148437451096167062390989557959444263816510934432654626358604423593216584998063148229620809299934278769989583293985396971190473386162302686314805670680332854075266335694468763563856450741131909615074318258780780557710849364859699830110568672078738178081756534432288921688794300652512736316005835151731187421986210411670535351560014450653738692754946077191126710767832630705162483278399017814595003831154225739913285796639690690109727518201658128892529248877042604502393665144080401742891025154254675915325099717961439485863134183571410219312308759675185365211449031222363519765555768040393632841865480317425606063358240159936403165062007951210820621399200795674710621899891491939204468523485095207589834731049451393889108247497618212578012395188205018843044167454438728025689284018684669962635551248396993296509834746060964471683513706737046749429177119743199974446463874824146077723788584829721810238719975949258947455438646991880402743286443425951556257803091784142659213867503887480179206346234518707740063955982279021942113029505863215501800285029234096649050711895312975519045900716703116320700953773755383459998548391130050553157234456399095926004275151336235724484547496094177977304054654590451103020862923761570774337142722438774709122754268082863413509113123702530575995661684809691444239539865558636884949142744772303163134221720843584331768641010223199278599546076339470846849402762799588223837075880721302673043105891401273065332830687037952077731821918320394676066788951950589728254743665399602548086278944570754741531125841420304866322542344182996171016372184588568310689185207777938083420876305956969235789024578478123578317036184481466070678571109253810584633384433055990934586246884049230816543860909345913527410224627054533862184641906408895942285279694099713473347412811300885712481331225073043384447446125319204951283958497236002229822521805816222365448965536021105305569383407577138030128344535243225566497807453414056772569105817547710659541816186060088818083347251988394584008716915210781823976473046613326001002215535045861929206830014487066413809074534592238948501072451162771958868368285237812912041001748424653596998722139980273211453379824409013071326196860021216640810401750948025365707116685777353286386323763565651504494654997648586113572234382270307253057631518516237066386851054352501224366778181715342631471733659703400806585799215719008902732178597409518100770011079348094265528914051269672407198171104258882116386203576303163872078042606371171067823122764733795958847219710002720741265839330571026986173444938749370533638158525155861175505408066185251681478498457920691670289836310569220403148056824167647643053310966825785926702399019116847080072516182226635877538670159857772657887384579539848678080362445134381868211747366155875646317698255809567008600483080795214065523371668928963713977213715773908364834767710382351356044001668871658811484968823189675215026854901570302896652081077000498614574141582459443042395937792831204009596056232468647080096545975037959124163315707528976490423001223740563856200870981148140963755986306139385399704982987763518143761264447502670788019567938674255584272919922380995551071378268361047886621213571292671846288693279941686659611904941821110995614373549422515519819958147882383560780587966820574615359099528734995085619974538658767452483576433373442229090872440477755064739023605827161774781001756675063710476397797930685897834324784667097404619109395068482203449804093758701484480771969831024378294966540527385732307669946318854951333600651054309965379772479206512001699466181758414327622069638242197682185115904037477598121617665652305236518398314403952114489954645468779746041357700504583029271069054005361375059830297720869038012942106610046961896771628706018408012094806695705267030790926516268024858714743889222753326638455822526613852339198900316313275087531954599584766655259729608659125122886301777718143010256444299492703838325176070791872050536999639744447000865223117107395876747396077110962004725750091079006211465771310513711328048537391100649218336735617704893179894451615141455126421440310913712247428256738070290387669914965301970162173083662925353372418745607199427981646060018361873151028184853262658784315818909921979733519422844364191842217858054226347601376486556557896975615794481241635514630916509986491799229279568134685121888418099384041255271633347639733994344498026077727837953171735178906739262373639464214643235081262246677215523288412320007806558358481863018732010552895952405931409209853655304034494162837942085730945407101642666697386021043825328246469267998476554918005335203775744754442214907453858083811009783348811706666887929501470964056776332361255858217964817375577932643217359685267220856105976842016166200692351817439937441402112737310867573271497094570235897458269783032822554859217141425265542957627286055005356867543547010050955833799363634551081625256903756980875784669360036728988527516297658935289331083274936718655612097559169898084566194777599890475081150582991279032692590230510601553595753209974189338872346372779828494512856999748370324343957096496319845118836531741806233861111964054655401734934695003561222536824548220128415660551447100623440019798010926696442258198350587757167391594505150569409504188200155240392409907043753097282261884837643554657335046337968422640014137673504639665521178816988523441917177857537266598013620901344800103184600214437837735431072107629379659296126403486424123800420726058430008170812730791989463080631217361583267516522852420777566372682800859961076962237264676809505954594110549903787237580780532742396155318916208253245131085158789114728726079795868850532416404121127302695037236302474581009680853237605403111937332013805098065150581786300042120895247276485512144251264724913945653644689329386549173570580038551101981073252971514760376328353304599025404914055172384914833440269212957487685539454516338917465389348338216499611811722059156291670001936918634893139694787700581684492760152007616444306126840831115520661965150272479547713092162715524596469708822753056991659061215639736235949297913288448901424351159054322807604733257152214318248035638238299896021641468926610066796200847065710421678000807708421263449492457055315830437427860800423053001867035180189373164367519586837857354211545416417147744098360221543514357004626298853530686770021500672770680445355189229926915502982913276978808066655006428235841838838449087202110138257326133182688392078738148516378066583323653941252683373773300264995889314126198918576342918986020941008618810471941989798009560722317463120513347877245303144864269281240034444339590545526610881961049240771975243816899238268827684200737610883261953099517024021417590929470893597880910899731854309766108145642940833320282528245630706996276399511200166820586531625876460959625810358015192081116635559005728161322058828367205817853776137743187269319898029293472870108214285127575201930072857792322622787960273541554357647452584386646464481769557343709245027634455789173693451882031420794838405245772211005888366094442437599286778319669112770237150399632933164498266527224717617780924380808503330772094919742646604693767107519454975376865937131320812972150171248607159674799267079978675907371370865776207734767706394246451750195969523396907917118863866993763580104194751247859897866802783492743931648816627810302178606976230407213255887153894745709917159049873331443337804328360729830985110839968981533835918856784849081730248090821365390957227288624621132085309711215447281937174888024592300444157626423377124142226657531301928477655056779634815728730458283172387291071924060260540823433675579297874887688385257485744726302938862349453439770775687079524894243123160108707956899642493280407561304303841181586811582833613229313759987020520941107832141361392402427748944560151742087683454000279987062522798700132938892751571983708447560498117127820488100701335540477981135270225058852368661145750824567637947577977436935416525168541225577982608295200419603482874408916583708180690318858904561726721993178890440660099936930459971120839506655419524335392250126390352880892329150196407378793551654209126465648205391078407708929478950841950593093687085752727767996941906058754748633477919132992001190871935933632060803196708723766674403719540158720346737219693759649380939634140544370580281413706022867312577360987448051764600913390764181885140351032603430139160813871396824687861407070586668824718298856566127221529485362337679335794616675577353154281678187504150314347824874107384472496821864037213170953473121542640719267119391862955514638691726431476456595863601102175112009175022362562621314669069588499285549166137099743130139891847153248528164624218212336348031675627064965493792989127758324338281536289142521969682842331504842405104469158208622424844491755678691703535265607403415076055605474188294258197936221106944203600632360335730141390275557057468201462641867392405776396365114843511920991279301203791146877105528696084465349576637944580265172439126578345135362345104331250763282901597783693101197262637360417538977585592123018792209539960063169740518419719966973351129054881518565792522588083595819048375570834999190656560437512556712179835197912108438737166198111792193921393276198769954139596621168007148135716398896617256540994007868859902619768206611099418460989096250951872571115544132508024550490971098227895051556421186232925965467770976737725790591149868376979051643620608260895068296498275332361046931796803587816752290291664379590360634853293662507814157243851480478728063089133575831455795893332398535911446994835861378543711548727356320673259039046350769008411219529374713192063483130310058910337360765989237366998705539076307256410315904859098887882472207972124021157113479961124014130003625872464230163049503223935432127063910145955767834044943721566117266809410141227302088628725924700440087454935075844513151071490071785031360905061767160299915759807211084830056346356800533977303935196842125420460442850123198534525233736825317569039913881643884473960440422846486132084049879300407200729323443596040621467362879429729580755099191301123439652087600279591355111470943288549090588275596312303349337562314276915322553869823213189319904177261486446749942323689619343552318447827449526533991914534993800278826467452153518623800190206708107495998251032243952108887298804877797220231722347146647983398865246583860831620924081992302074289363632901748783395772898882023754175854202972724098218406148237688296631825152580102245032446262521581446044774782194616374012833560395506137925687152275964909205329288010390711708389768097992538621411949680359298010656509457230709795223424924174857198910283483362642375504503277152700774755148101224242032816933037970097799793829995126551090649427680977658118689277885449356938830937063002189228756194708991344539138114038397361824867921140489667401173945415928599595597010892631135487088779885683176789534537340623345395085866459861142311835814839945817109431834915569996040419180357605014793590544061375392146284421617084615768572109411303461754547075469928016206979469705460234980742011998883634227893935896870803450510047191388479691541359220676680827623312154145409687123465092747652705566979717628118405559046450897742155682506821165246817358119522687279675214772496682157573011618669287606668539163844162677606106953700017597399189574871652238050769613076587812928869611944110847516166104296769958538782456357747034988402582613149058503442497032747932195230409637873145655438354855096599314440850658033808365187103373338596097907740168378522921357544912267955241354424905076211114467836412878650474451226712106494580768745128232154942977931555145713048559536108167226835985045621121456307863245314930527207893440078109180190636662375134770809860280482791874200328095316012804764081168219028938913789493682369437994772309716088937778824882250580723720824038159570077592744993270935860172310349646499685845129292138705377821996891387036703596222763445837157352282951750539109357802395404943331158818560170820909268767976177572912386484864375963658616156333489021128768701086033552038294097231615603332172356364009945503300528719517306699786825221518933857977351602026132705594355985109520190144412703864937129828528257549411779048067724800443629626295476808796132244580402644139690479188869235183939366163221081582719216552605080024123783730750235826992250735584303839189543558821435486099834027134551896162279624400326782348639360519616790068634366313671074447604550399774696178190287441126571787129761778106943138374831363349559631845576240905179190559329550038440641313329672999200205609033730041125603574039885768291150418013703734272205299692357766192651587376361710649404371474856238512502706237068410327347746021357681755878215282922238697810542427572172938077399635437019210237220617306074386404844508083734509564074409451656982645377895906752045381997071328484874114138444132035329542264278195221608867600476359888998872967858901210737311588979999701772479401907888182265256841426921685552413151332331248421520174322588742725099867629061039788289332348919292740862920234483733786541089874408034097655527374791895270708691128887676733809430259707995359963013207220690604388997178526169924332251836251692697955543723518175214424296351958215371905517481285380252052063008792850729601531344176443035608855211234075853002377949288170077097633290199472583120518644514347416491334101784950577477358589760776842939366133418960847116871011023097255810934396700919150742782718499368691315571697099593054682071161286808169225854240759513616051015542342550960173404705062304277169363991639981151885731673093591847203308640898772624475549371637156794034207569051162538022407192282656517563977129892330052821398444642454188576668507206138238031308718051552652753474534134314422281158444267775223537449377428074274619112977039746186614006992442723793226267783981860308295713514381807324772679232154767637773820905753955215102862380144118057108324972492183066361025226423120704251305349456605928327034122209030562628298952077964156000711862198178259381867917152516441793184512649346837198878026656261487361777841783948689190131727495130758543538979406437224666311367568829693696768694012629893909234566692427778545352584521766703581328123843053056822894136218281922429755476445526094211724129130968323973726077547897881521877388500084725065542162410516512415099825165469702637385023652412208422110951661630150772530542570223339519487289730590885110577155850886160076474997760743194089784083214303302914081979424814211184376379031398681105024248395417415919053226262469520462897251676410136696983369343028677895506421185176792720980709003378754342851227143568997531883827234347408783979914470212327044083763592838373539083908372326116471448167667557666381886552819657685304733554099300439413144107843209161354179912995669047758478411862822772210190375171810836218719698191802521079787700832328692068453495462086920697482877750740701940445771056993046804801565260015346759789024126013750812916207059901189143932373312903455586801663548879023082392022957916218719747350090524382767176391904821958071191760664351127756613564612899980556055405611829717686912087052332400009097476640712552678749052975820615397851620297607072009708795762958398260711204137409775908814702267338079947279471944917339701455561935954034118140835365794309629127945639015957068133212986560771428243475025269714365376521577867664034330867108959276649998159629467701328909520068877174894254408789787158563579840657662997764677326408573004234032479048232262808123763299884687141177915599644504312847888246881923557101026251395033085361171236175068122350258021116138002823990370423285171449777587386160734400347369646633500430543437852929070133698407856944251937293016450300399260390062936797787591520579421150886947950118066256732558109806778781765556107390906227311259371802006589273002608470542412890354261458303562134133434835614901538216031454144476626777671300173359007272605609721994406026749212857570904174181527413994027775202724245725916027463378312530374499750485171900798338198519696531999220502538250906559718015580661336489681171667164281532983167994931823374581667677323983127916851947917986652358604431163475735557758881785625581731239266725274230797152649668301999122521778742877232807032315607678898515358259480859634442535845326030856046286142241191866511190463073806970452353866712958032074678279597983125506682356456121235589995626792626889431692684829708577856854492683643098928283681989053991819167457184662636434384830213082812492937825162456107910916494682370094055657626298109889894233367136465946965123679566643991516658643430476859891005407607965060421062837748562884824048971367103441774795755470625529845034610539841402637591226002442647988256397502452517326512560604359608993458929591153937713453607367330634902857274853821982638232992079826416907309039455911356320144287654507550597014552349952079588535236300691269615689453165956660290881004440771236380124051788156355561984205729884075958960069859807941613569583068145372074389400824528117518101976868588442050371213613467178692457981151363622575885346290344463682963609195038580802233001692823033315938435754991452986121273651265273906046837641581709669704011751334094743186956419131986639447500395804153645938722763886094196861720857600992132759968258281215264157010832969159258007915713816564426265846536741734094947569057484321638112668646399947844913544421029160143630212939248303240667648310058926242994499793652852560072881271031461211784753252071029137072364611968283586137357258583749261663227045697283302147686627227556958166313866386520141084076499986696861117270898382542368714747939547836112747275299089504956918957947292023354410471205583262972635668582537765124396400789338083855458290018094664371878234127502055072657277119707649744436117863426765744337554365025986635756418596931770214439922873639735941742009051892651579976538237591752563983785895719658063148998509827774479047269974101268906751344698331237345485617483948858679637419953013286159019356179565411473839159687857435488249633997842185405151451006740482508773553874045821945989120757396458824961952919086575623177226782215674218251623517297822636224739885961858276666574527342887600890930211056942136053001713508276169186328940413221368167661771973452249231210377156909315492207071280548532101104050789919364152813800622108811829148324732432104514137814302504588555393585143230677802904490528368932903830256703102151907254235358654589117287359204640167312128801364116051530685199821229696093999039654606759013848342741871420206897103699573524849325552148363958543442880224449791973530005314771069611926784086357297483228842746421753323489517901424920957858549283923318059040765690658596364078909343419790759423816181237566150007406081922038851034420132917510327235613093407748699666901429348958974981980530873945712258322025716512546314617233051457049272045086181840942894887529439485394019006303766247898520094090015328986622450568548920734137148072107554826014726797462565122338712598406821712187244130026705785181788694591425987673952463382397238560145107847778730441902096775570239244040855754256665353354599878599506456997479384356842279128385420581435318084270526358929475613834833077544790322802549439150786537149996121910212737490564722308810832405201613669061524121201634583018843535630002384031893405213901549355053271011125663219636277334333218621617375090692275122118711179755028348399049132198430925050044992116318999086513734271961295617101162438843962880993800269796389559831152814028184926644792987840177291210439276472016168484735241788579603129935997808823780596458996711154328237772132954848060954572292266759189211667032249501282469536538338953589770039895087456651609403893919362454850893436158343997454572482048775805449071088968153578347807976623199975412689646047966378185707759791186272368318434107566786397003315081241702791382296399204101988961603826787921629268759672897377711129641193339523114931851512734224521760721023767495844691254017165392262151031544164497685386747688516816893744184703145642164461647919740623994744844863578498885035463013370853028673909324395239121407873351654028454796330202663845559803597585666112809519858844617005859807845934143143048806186893021361488068250562809528499306731848678807850412881756748227235329724829191600478588642729286383846147560076673192241940588947361343094847234127878841432898283645304090622825436357334254168462396893915001337640578297023209139987832968643713874947565190855231748962710111225622721603231292842479284782923698053276400896864469636584967315820808782489748209838428272851719930766192926694719629768129084176448204289646718207445088664085289689377286722914944505492027702292036152972437448731542609226333268378734408962495188895045498473202350835687450752269083062965686949865148229828375017063596357812341864836308310038677020914393785693325689004376252621201381079506855456718559812634581523654504999259918982618744812852794717479048691889665610191462958260063321207116067411067031900967668073118680926306972356950034101229944123084400235838665035868312662438739475812485598536461715613152426663380918528631658976021556481594008175737428062252157606456718355976718908864608280958253311867631159346627509674913269278518822449800257858639567051369759016545384135808381651802315577086186025766163497291848918097526087953557113120171322562594572058268742664791769697971738456957820733458265757358678734507192207133460199896441676794140763115820253898136118905466979859425059360807668308027295020843489780430050032266465061461781139789002493071089586139216422614272931091924242350499623232624973068834996458253465364641170898232127512721774416643486177391719186783408128333968954455342068377146605409653824812714342271996792964556559511046343995221568121713713526996594037873023989978322622261250985801062177070450264070439986434128309857301477545004773955205446231966207367491235598202600432896541632836755429286287757983606197877816115021253469208133961602298990855638093361839671436936249564919839227105649115239265546106033018224706879792451131647914734317215828403402685551235587376930848275745504139898657372646057675033728010901373577808366862328443182165957061837838179697078215377585544578987245777514137949502288423846361865977319881597736643355984803799910530657489197542093727436957200116309936079673356588356464624330838243297031679760597684403727340857043088274139206514689937299022038350969522182624607938480254643539140592513383364295140943633468512183592895261592001886511419886706544385677259199953207023481161842442947004613466947645793422455098158846519113723968033283698720269288276932565375882975669778144136935349182891144680135026509828809680673462416324066628077795965179690806005832091449418026453628919734610517390275758437793594747981762359016190054275415574133267188714666333599556647024879713405222135071491740428678967998764940896231183330780286946425496636185103294127853665978068675949369840794486557174084703846633635751433187116271698419939468762713551801351327705336229103893383072864819818832853955407190248739725151464286046368757091320274082467381230816499895907253164641828979580632125161154021350029430638191031990126581714584040638045299364364531618235981980069000213385735848431755022597350766031572889471531590552666550449611198433784491386957516866830805849521064608903655587070758187737531513092238797681655705828623463001398904515752890152237940567021405570403013387071025834022802125677732251899412014035889284671170221482370149642623030459961252902613513006565052335696572946310545590225466546338920795478040390493103854414121311653391474402477481575877529502129442124029966171711251652338154493756014670605058628637190262037466193219861261927876113779627200958279903938127583460134801714731697505939516035995481893587102190426353046217800950582896751606124480963423363991923822713869371168858829355190931175140555489771894905000749110064565906116360580336764466040502733679874330342798521860155745429201836595318794849275436956450334965469944374632093834243991968672392126149051956901704358238675279138021626599489162270154742468576066993662826749369503923025479129879722586844627825715552952541434061847314689729898941008049272385878323336033556539169793532384726276646174275982741547491212655519952861613162691411718148493874685649920602668106059855562815355968640488073505617358841838811349427975529855126663695301822762632793006032246055859578481434765750047880466715805951167723117500249056585886972732996973738133355727306133377778155739783183354709675119207567793446201947446124571392010682137451921588158903491537125425199070628027496036717885850331633521026064514864988641926467239879374584629618739468476103855576452321038476960549111543574236904217551224426834569657006567174748659020675318459083849064927096645159634375927628634894549457865009983441589047863548017632953847815782129140068274745394177631863912751453687426002454337721547883216371305686994921491656847088241896112787545077397913637336998446343292449862705687918249352656562609361725097181105772720361476189685006987638078320611557144136367211922645677697437334086533136769064453193412626606126596210889989845523755543053675189881594183848251500538476616107094019088568096647767193122845361915827988723828263481020487119632859172172389218262239111747800897651072844517448460095719042896776472251888790865979029126702502268241696456606829643803162512880697419720773462742708208621720251448904343088976069600497069306366146152624216058843817276950324498277789329124430277607326436152356024272779180118531535711862962794128544433186656829300214909576801836597403025293185962963947695083268779327612114902115351084119307343230054121390244107200411781978585223089864661715388573873417086267377661921049528456571340215841190516756292853959919276639059231402697016883711299374121957851293266772162039741134382742893475999387730867414658281331833611614419602885153297302476643139452490726459898216152129655489715738502319610071690104203879084923100814882701384821679985248513927582355029335621780769685509964726552780660020282829305378035158505905972917708859228647271540626291809731262468429090848103563889936797767844065204627285834341157590012861691790477833646401763173175038663212472673039862839623198968267285885328779161459112493187041252025220904080440194484848365623969081935469202875942290857706567679212715894934566700424592225790489239711500562044959756950793935978542027838584781688752423915223590334671400668324364309635563259379106281851153554057439731493666904353971070602517403834980682889603717295473596647089304456203873491035545425515501476913341900603860819730453640640175458247049082056753104070979570396302548055633653045060421237810149665031404886325801169553414378027480746609738090850846461720202864644493047712436495840536565840370881482479961565319014329000540462175529721367393404833840344218353386891455943731323636213284836527567987039544388900796686903575632188744075904872315793130808193215328161182964413338422102333098550040389667816240405795134728856536676341794416031923170746867467217508028976512350211737426582184807174400325064591952678642600241059348018534489657099672303410353890846184977289002374794334046810295307908212950316974056562602991203759727990452142753720739336686973709149362064850206831188272666430735352904968077667504638081013052286517746403954960339778286819861986164347969798824552447549696591983786280447748147867446906929157104377795661480767363606483665385722241221260324486400537994099950078339018925789160969324921403386510158648347597933420139079380614569060577116006238210428291392837471281024162368192114927251160136241796074987935640631110729275869800366773116317173317887079369990954128536699281120551328494272077090702316523695501205517751324195122565826825339186682050460075314576984117901329908610428884661735005962678150790884775791486161352449694561827202848117836123752407908678218430105244705634843732320339864646499774376610106465416291688754401726800665816192613044281394593562662691230420148643505265819645784641571796514797722752901612681919724210552131546068829089878695608911122765102372220725615228793267788065258277718788891038013996122668509312702639621567374440097873152158276491990789257020280556815250609888980643596954253264286487610526080290919913561447002753029076747257128475158383187647125602300225061805058070746545088398919267871322812529727990117161473186571703091603070451971071757503949793341175109594077097798626603359168814057102608621501914216947500066437309939343693467003379085480668061728485598208768211313292192417823561473302761987847394349595768878837584307123462538483251705884644673940665470604588130563672615689053114534660464386769432223409438986895970925106460335216223657359597400552772159945338674058506514291253606854924568436122974212381965092465624812438097923746979678109680047110758190223869090112719845555013163497342359906634154710679165924471663630796972494439637716641340866393859895041330274300969079058756723955077480918966482101524962948900016421985680429801373240855640972324269433755923546460512597823881949111513794405564922662016318062043222863938832636321375244310751956778706181080900588871697877503698120468493347948548570635116336948569773839382144672737858315164695027002393697236299238131832262882336257358787139842321249872330899147706087321702547605113180112223512046309990774531578611937944289319793462247666576644744780371713344490938804461691000479849139106494478661630134736512629800063013463620778673290167733491169271213444275808296228110049650453798193077626940650758331681432392672691433352428074352866440722368921756355863722141829315263042900066557531653047581899765156510233453924813627243882935262936376920438917867263643181019181115937459493121098312147132394575537717402123554704280881163181322699662257443101437470772171817844595419788811950147018355759659256907256762569437083387706718368926252254859253951631455222174592103589831175943198341836106629441624804297442995470099497299789398051616914003478012983076101775759668265175364448515780667748534533879051123622072464276436296092466750024405221907681914179770412643834215472252196868348088325256743572008441738298157688810089675292211916345652988848221497011733477478024696094500110011661395394325572153553792955919460428640530694338416243532951351828510479640731919683102134711824792585056239852149920771989491985830929158012522480267675987602426279357394686203743867289786396087085909312642994404443464712381096840383882022647344791669885088697185589786770238786809098453678297506796295052880196092035013173842063614961815717381912861609995769131097933339597672917828451343171681867068294287711966046070619864948957864207782306158861391046328517496338514383133706943615397520812177312973221436766510769416093753822871325379293949134017020453697816166995363034271705337797255302135187702494507437767767744222450931669634262733261584931148219445538870305167946724070304575898013605554894909506037849689255345595214590230611656874062968454788742858582518387796646289361941854379458090420422506281293615741643301140901702873881063424466643149774796030335450215562887601973142549512143245433458152023561139370500783376038679488283280915629535775984709960701001124527963221960427783117772921301683460145975435905373011031496236349943460396439826167055506365805829430235408632145555125281105098636138721603189764622124981131705820363647478989041566728679363468080539650748700739469432310234796382899816305147533194522866448282328464691382896416955213305932584918586018571645701185614691766450396145444686525059445042677469630018049332442788764206745074871476060804799580950442235528908625695125104917843026752270599566788411890175065688556504758621099305236109592776987108712639726612265112109411444624599052170228688534526182528899060054101909779094828754942431790183812783873566492516636725506023020573155836085824474735428131383632273544616431298598913945987707700684698713870009180429782468221804895996992307643384865623578084392848384713084589410207463005734990346098533743412398064672676520980803766867908134584807604880646236483230265933815521709148006760433919688169452719880332093649403881531376942125703938018029353593045896747853686265689332605342321005910143281043555631511935889314180638246901147356496890444391809333468641843790071278230204903863998307132632147848464616891634841269264266405791522071828994384404551537334036517534110806078965987543533666243459389249871636526886810458239087233352039372136604165405975607173750153397538193686768771083582674088169602512844855715964748801415824887108130325918284992499892866472080790113348477103167596633663945337987152323916765784761878462047254765821355493820926190883140191315978478343141203347665699011817749936593067828047618093761775434131071736253333814920843853841526541401248533130386597165999432376071881307855483678454638678254848048278613938725553703393623013107698809476279332799978539725072512643620082939170828878780711817547945964718173449141863511676686423120486602173872865277309557051496739003721887365370583340704375832426323239113419883366086535621922047965626921841442618426073560154976223899288190545329210127494090345976787871185052530691178585181883676358187132318835223183139297966868827958238703713278857543079148504181286892782545899095169874769207443291864357915319053705390035290433366689310737545218267765063816615244415459227923098324250841284006678087544271457315453035874511680616185255688989922886120267031875570826420368880558223403480795207720540100466826110845620617357179985888579716807203140309882641653477481731494043762889131446007336372301019936723777768480887154845110979142925629096105834176793789696666799781043589285182246045706658117088142952791160790370899593006207120573513309499927390888467914808416161676893682477854875686385975908347841073632004857631628731245334555736823677771997409155917055748867360973985848994949837399448646590214123377630833891443054888405300446059077303770353128950993926103031991463020765597846839584938631155614444812616884106745516931597167526989974014673206818426986758912917166210023688513981889256065518186161845166886739162647882942892147117316791672323756183813334905169731965817124445271619242388596611640434252368756744865626266518843178046798600759841176690812614749761857180303832899076330954164799065917146795903761183414328806454858851801823468171798531746063295020716344909294291683716296118559450612267313236835040330329529166285943206434981994783961257403952052625981022911384184020196929340299300736601778669178368462571016705540771310479017548010200808719522025534877734744392201010553194703308519598246649014845777883500180730963573444735676997436772063713203583320185974879747215136841085830490654687789396710783267077903952236401475560726585194873822493548509869260179943972639478968126959074436235087612445223796536215458994743521624691448755292975321359209237855151480322924760981015365751247228102043816801040881536808176242717997774925724612681950635665093835115615009254526934629182561746657133494609669261955316539652794247078162783759770133593951255843326135521272502979644684023126472837194697342601199582495320432141469588001649372771308411171353261078304129125935433768486551865956036254603782769524082857568553896395199106794690537672902822155491820375899330888534285110631247765862833035060593161781107601809966623831199352416593076725928422601639307026035052624472562819767595585427936276688296385576500872813243457673942745538876445866209587593449762824940488399746174841367821521458564483594104519662220204193104066457081628915524367726206244460107452130293462072904556136890328524408392064995837669755631026551817571775932475238086413981250897539859849359987790103974840170804724680556581728990320121787950362545681877049920358684843170098525150753632710730789708395796895201062992486971056339044942856720486656889189912504385502708166210177403292472518913117705754657015430398355846373739833164360487954622396238944414509867611913662015293330407825754688164604020844362100815047295889494136417341793071924220466263413152404794573503475495777817850477887615632402986426047499989893524994089971958480160472363341467888373758437634384276393882476575170416854208656222384798883079253185606091411474839686027364304895436678023525320694175075334336130583629795623410676537308117536088662835959800359593166633030355203229989145297000191834123177819446635599154153998568005827252508218706314311351980309563939976910439712200650381843712288526453155091279604255561054551470739519793153402705460205769997410611679842631308910490314929954915455979290820499988976507044745116605584709932672945641581169049524177060396096895582683130447889878142478223711345683634801003846272692441666750486145184555307529303001726096717997880991875921348151599939357521211889746161177506532326992864774294755443915213281784390031012276198180267520901447637391925388409581902231148891269620875950099586569853265197165365645957183698397046650660890080882058571939606740930559248455986129679998023143591474087105940706907919257122825146587926537807498366223937791279185895843766989355454264232381735163932567153916619817172391772468479439569112446524774398319873646407099573868406673704828055687300689667961342660133512199032659988304378355484502864969230663446258818173453618045110288869313714118910493078141330500754254755138344727294327663248191229261694528410278114476046539835644441548988767591075872084557418325466437491120225452721234171944480063668727690220216036091840437339890095224849288005834621123281644820893488800952320724359008923404904631610142487407077025521737073784077348885188000098941936462781139628248097676092261111809887880237111333736779795796572269578138943442897577630532504480520713253014472294504366001881920569321125617637058771336738881397316310220119905672192963216117475428190455464386371299440849713770189899134600817278897376370212789761848887025062507683876660453383352531625732550146107039273728360314917554155299814655328971537426487615291337138929343804208750071270721572115273793122994135197768228968444222711798138591041947540181373000548438977608796883681611006617967769772684959797366178756252401550947178037351249014666531085368569769985124591755205836743009741374173192337286306856764131640046308640619586621426169986709279811675393727525945200989644451384007049690585720267606641022990970934854120077780748184659276160142777586296242793043669939897186614580627372012240471667216906250475076123074999535276522560683985049029980911680932036622263333485850432475328148560453614949426727491531703640554969983151577625920114352515791231278796398856377767439598972921644380801945106020780551045932767866389040535697055968670989759912197605654383730097573638594007447801245897989461460941584227880169446201947680273440373940333287893774053569516610805986858042811545569003416114751528039078691897295500882035259658672928343701375215861099043597286632822753431373798872679220445948977107773722358953669377875260648971681940011083389462148756824073053723734572877658127691586453761758822696980361651561936764760382467856320891886208021912570879134841395643107825726435661703658602825814342625438698335280008293222695568701748351397457649373655888878043570764054391864654971048245136642424473074845587944508914700597998380572901548614604785416020196213227942042398014990944501226370589902115302422982411803268355505025060396466757333456135997638371364127076731030945855420703881613658011870125824225730713186213660430761607588719338907215722085884954527535458416822246042826927590922884294017412088455331090628489654156037509640135512094357611965437343579315488225229715762064628842327110992126224057581427817196199949645651141931463954058076821866049869547671579595444728302649121522518601290141317922581455760857226242447305998305272896544863927042607610878841522635905063969709436397787442843118036261559385558091964271022874208588943022821155788980450749893942886003124126491957789523973438779186359514635322269000966501679614147121063643384900853988439832151883247567326453769684314624253653145832588356372019241358751784749026938177908106722406291402044914142734312247774115263163569889511709871197627401328861767907179117010996920996928516026873144907058049724578219713485818342409768640530605712517874899281222119151749650432966789178013940777242215143721138497405992752825556503706815827238433285156858153475118960895669331790506642524516656615844719717739159290776050671716258488260913562046640910751174000468371205562961440519697173445071760436114057547779004180446191202032578676416064087171417450896095026904869925401365972506595095895532504176050009917271052032531674672754863400579249171395742864466775565784467488490970170551641625675551642332627630588963767792174216988910910109913919422808795839499765106092400353361456382275813159618885615463941465013764450736593478820529831568685234577200127961670305751489028577205713146290297015623880387511623415999939744329946296576727541554359117507100693046226573258948758806701895635105934664965986917801995456281412536923105191989833815168951953813762352214833876921979748197055997272198569905349711637171300486038059529921918830529207879127164115056041656515121457781101363802657191339472579260020317224766199157449953893992711288285190266222350527579966416438085108917973096507143764090683107107062477860096176681795779177788177608851787139661360529189614967746221418078979410763904021882848493456290991978994921216977060558021291090720979356141392237775754815789594192459631457144610961688120558153571663240316670308436121411938257415225519868880494000794356254416477578328231025455885148583142423889777136178578144637514565556350795849572276929611917710258342959260700490818812708411625737630602554267717666691422267070307664132406436476766970429212844763471862886631156344965520011041513760929621024839884702029579352952590835328901441124438066738442116634807532148055794162752978858732432852252927943696032120731910930773565842283471847082739547439428851379011325886517532091657162915093568341797225737457440176469047456911662610093983340124073781815605131272085290847634433362402616767947153778357843705837695993707037202986288046640813037641087869865255962490457864244424637004273021527976443326691286171802418656666175561498290372695794344755769865558647403678067241302778033982595678245564621615285255040914395371272016766418599599916874470824462164909673203895565044702533669407464973569620277249298542444812463287974752220334690037155363660857605510245280883387633710341291305236753048495592674492876544412871119890743887763411508427231194337717194442418648076904413187434939119614220493048218863755141644592047971826851818347180667364970440352379419421246256981427379947739299206751428119406799210471367410131479213154004139329270544680014462620020295297421653921318022553688731531511387397980105149532344294850038346505380702776302489262907071858387044565026570972111858220253929646639900353146401846601363309821744894879871393340016446250299786799631275967502496104895305231548759959047773739439414160556249067541234889121778001613141771080748790246702266746784762919137098868516821999559651488268554400906394764234458953540131373090463271845204108897581409645907176063918144994926385287547881177751970305102653632184306217889899092681950618526288265088574795459767435025206593688931518149390648638318397226784911791897249422920047006359805316907143932623929707286336213077569864278603862524770555829273469154713104516438566168075426160973437290062141710773590852840858403846441604980486647295806275869826026828671773504157728759111804666585262375294228889543691494691942716485799434846409392091447909206831064051851438086302384601242890719014607405471627298088999738486293937670692918178596885330937383087875156032808762516351097471728199638859692561564188859682236938666706929556479930309639905048245896947221141828574271794777413098998431866705441248408431016497574145390177706686790493286000729078858853909326962285084664815259305949737802167089296530260540194797921599200573137029481067659038732178395969994423568967981439042382556679908858420374190913166985742305647319983568880789913271664839505235888338297941573088836114508169356957796564975211628275951189305129111272274688157926481111154987530692831282858902456630770516705039467866647353391928483492594954124335629891301495333197474782572980198425964254426196924370944668473554986565048305455828389219396494093831508049534584763318437880834393103636590456671256984234207150248255879560802430791821286387882985218628052746639996914251431993186746400137757558104332967512124608701344159528419615201701622269160611335331806939167020163554251845675771589596415283801979648509767320801467234982520169710454668716447813076973957979886805819302549710606491691559809250691143818750650464526208688636007201771451599100984719995281619078281783088039289902452673714394271124011548719685447450832646961111055607426370495395815420342248505883101840282091516802593319930180047149012630628621928469556942346439916531834820165274290359489517494672253060768547624017167885685249852204899264089636658749609409434800419870823828081499266134030094888877359464396598112739539539099821944230576977890161816082112197448739282303024097253083231328724670274381443739369040986264538339709228784722147483763428796484812258465708395545849080125823468605613330870457471463736283836779990208538643875138363181628299655322477121796813913739164659592754136954020698735504775452096873129711640621728987983662490994757328667274020355200252490214326702156452999081361875142831454657245137674035854222338558266567581862592091885575743969673017039036009292453690170649421095601227898253966645581405934142052356956821162803740111626972960890837369150466393459102629750298990881269538390644562502240885607441017592952907036961542885694243243402607183222794311920505790430807553505383688283262430549050009192307964026568436150573471125425680281515860978806147029098549708173397515891892096922726114979302775835955613055453879884799965617529473999218386077947381780966533533705726614577489981490682091605435373179910746503681919939494215537863320928988849580594512560903649318103744730787886444715942509919357370444175981714572491369586404238789858768670733054986454855283776934657179978276339501098546276736423965884755921845034664965832359973563132611256344622079820051845711369103252159666121751119068504852926612845594266228539528359401327177299871358748121919475308391208208009460981980767964711284066913429692566161821787275664932377756074879330738327925533525371611116057740914731251221583538766672637294961883771513062637541733991170364816506894158420351056152195872683374846390433203478438462809378369058704320168161891493070266784078428317443631582490514230615416174133898459582170366464845507986321020128679604119309566119083442472934307466222958496515811915443339842228193908546974836753794405492257257729121594964843316504417579809524840191981593020827094533166950977667298327981306019049945932722813808713566101038982840610604413799686555697872651741554885028807069998704824925892683104354382882046477728026549123927632735651151109947507727740302784283048784341696757694947332686688988909058144051734158183464205979466294051945572290435929004033083309953597598125348261363839591123146864715354781120676022992749073184691805389429488241515535325560115630123656943407119633423243830544493441592054507055017701059571376900787014405613425751095121115058657351963349639630724004387239819857902530703455411557583629907395517063720782050636688005053369922141975738391977883144097889435476318724803346138159269339809292528081303019171040272896077623937771975512059948463747881099437337243145107445692260734861289957429121431312779155730474291318470811955751266163859294079942841922827630651756190950733537109518895965179581083159512933560409076467913604961945665155132354945336679135322818900922124205068584388259042137211788786167935988260828118938018679519250034969307160480570888883746549731383023996957885421134032265716152806339270586830534264562945534915465563569338157755911767553615060804078535002068099673241028413907846462094648091231872288692472109725204597435606058347867423229714565246403123694706480197058654801273685855956769464998975771522132862450007439545951835462282700404634939320268723873381090767931889022393714653862045531587846134458777355424864527241335731387576008690122733865219068814774755917277929645691598844665521077495056036571795577090571033588078507785904289728954318956763056805399408731978259357463499863204152875707923004914853531457845308047228651887553715824976231912747619779858502336185267515045373918180585803265419604577347790982599735510284305221354234313304338954213771062624317554275691891661649492141617017258992122680642348534079891905050881460868115173716732305722204694597120164529719351790463026296034178747060975142300410789642263389717074386782422646600427217502121015875270661756081767562395513977559963209595236456505619122100085914481665349248354994571708439063308673190647872077446139024132606394643218560903899131800251196883882404594042569945338918943530926900852008781460501791232847305025119256787399017084847630096980668246738591101655848092493187974707245747408210390320372159134757879350329754322758202290159864190249465021526204179990571702856750659054739985386932016575237306631497830131680956688750536543546769235696878690113718751262844550754085887807401578977010325117042469760014809066824491890327717452075567737184105869785681673127102162646552891801456404277993749601191417904318755701214865038534120737075498961639992846008748975824703647590025862826469832801887958345779204647117216038693038734242669332243112841050174112629179395831719266212638975464400006634531711481479805235676524583180154350734900999895945438812983006657168671021361533655091918952109894486404813817697374884404522903518678350594239313183888181909574129034473232268856518998942465774232145612851785922516698865987164723199955499659181400761945825905471532949457845201527221382625482482347837844069353681485066443025788297367570072751754764255372945499821650913969820676330194099149821556290389436473696119043608546253210305196668357089623115853481114880230243459079413014969463557615789571510626043672925724207453634914709011707396713906032777545174415751726967870375013572434597444744044428071914081897318111766445993280917106843885246169470169986515264180150025592157540392913331360767251057103401887259896652715840625433196330512425142817817621285180923322722311960709433426997069854928348927257619384710830939195258089191867026282759553168399092006649547807552508688315476144846406764241226638663334098904794270967827525596686367491270881999297295487049017690804955389159152504372850069009193762971304886554087646747616335615814601066554329240135867598373280752866971482526162591323667882059659325589410226884445384697989844757956722441131228606169062097621931836406962865627814941568574848675996623543504085749653602132308886719958162187781179457211949883979099258210326819186867994917661593116671345709510690628647331586197331641933436155902431117017725525574830372468052660604269219264028213445062833167428386196433348737509493903332974779132379682342092513672419380829032598489431284231324440432448855958855076870358704276746547613564625174792731785425617735305951219405708674845937072387647181800287462569491449356260910058498285287219360652016922468116069916509900108411071806357091699706499136938022307866480150702162520157137630227552553680044536882900574038354556832090985470333158983428284073357606973545487124873884568724356857925144641454207968734149303730118555940292716206352549578912777130316861433375873311164649861147427381639080560588542405666215196868407363853514041659310464882827555895085315075280601821541537377293180428702006487698788471100821321941805686469752392814435165883843554053897541245981407665491202548512812149211706339658047003293010342776183696300885516860711169618362547428655623522814713169291244234357734367237502268125873721668107599913359850762396115999831626887627984536346490472083015021948446080800474812831992596800421650013442969834491436870090373114961253354942411968578828431022497291512390314171658666054110275978269747267981128486940416135815251460305271465200121664060156404678620581735653944403158250238951384499330286038234950999573198772978420990728954464073970283142730933554524493569073752125446867867290138632158876902703542090972599207113999255068787396059249814320322259953483376126950739129256051232414049737869071167084056240228485226662120963402477602721155823702618909399042904677988300116178662902128869126355743404025681072262056261646240508014609824293523026679665224605157990932323611655837724208434561378894157491504600274934025228680219208434719898005934639203618765485205171790420108376941898285295020979219431213548711345663959979888422806308592381866408393634190403620534683435928436185126792831272843668181773036923168828152081397199825526467480292566392071659007181863542533224046576744117229525441986814103256068381290808567973649929713421919030847139277111414150793949105519438616565924731655257304348260277484101861153259151824441469928854634133340505770190057808694840238798119562774484217868948499520073506440005918898922591327758851776470795972157658629146710654450447878697229823329740647144079591665103557904078336366870245673554417672614981404394304486508197900133896271944207114432453970487342913849190722201547185453455394877700024532317152638707991133016230832082576681703114991890305907515123906858539871745134734508318118011304925312152693056602954049460982900538459937635212335347153252526268154058400422797266798720538676984919796460387885357956026684096665444148799048979702189018039319309570249551879717023229774880074547172944574123849719225672494845791686240707292761400877563321385327436841247962291768870428115877822304740295550341909144480993831108160182196951546705051808360254218559951795795376012908197830694788938409131290684323309139673692122107319924216406312265578293402229115067170910140433759332416643414576534507735346195067219528850686493443095843573271931843523231401586086340060986185541575724377776226542734076694836313270454823192321971221162528822069575816287397278283082403588682798927935720391296812983837625279074217762492168062914646358998808301704470753439968195921796905964496987867135767270335683584738489465662504901230120363264969032059210116517554091362514449453509700920534128653824831755339751646205134454170376164252855381933376774762577994145624442316042590062752182512408116534732721435055432049406141063539087926506619084389244671759583172017720079924320067737120320715878642271457795843119016536266936767804801848139568645653636705605760841254337428936591484647220777223614264144722611757643584903058023596695828484690031726788088098982251500327192138987424195578390640365951690837213954556064452885055430353130294971615329687809113109950223994894300828551527129576774972582185360896000479016293946363560167760935527089891301483186679060532160417372214084916226344015191097734720198414083354952723917715294315775851611207368297176294662270293631068914814155319181689384421709284018613691912577697264859464969119637985590500501090528076817680826412867259712761316898873390029690620954271907214737016562486939996294052080834332104719662849197409261879984134350496962546051363751013778820807270601932916478632152362766969432261717988774286022030120240098589888034757007353053004733543392774948075874019685495834391271166717019839936603094079325945358255641951747825359007400114743767732049121677010353440476281102401008810842507290008164418812173097890334157069959375674365958354211965730404430162971218778173628329454682783302206934178703847539410855561866320216670168938827916328460846448518022324950194601987789347603559400299283517849819258985456701393263147804147610319719962024656057276702717235904491052217105382888830258872410310799756807477001317213044042742190037919589311388895000863153403070819320381655400263392824905744482808688043407554169205692616325868052097987283027091951292022519128781251161854045625470056029975479197417132513867922275477898522221786778528473141758757118719604770981854053191009551091594446357241342425955074922514589615660901610525675616574371652203709786736800668566306281565157635972265212899163282911631266304674051640499581788973831135135379682744580270239443597031364984542367739370528633170066149620977642712873203046309582399571441550920791895631272137204269237775840965871145570602348589350597301967170094570381167237540576082455207058388364608098505917507080733053794432282785518327804629604554270216264855966522998505925567037343129056707906440122384318329822389185159547791287222475460035700405129274706191878634081051942709324295830830191256286083859233833158515842130329545699207392016235497288834483512773940530489487301210398859229375740064271191285528525346687217870099265271488865207109102946259438463362005008392378313543455934060860063113952006313309531877289640181229904440905617260946894112161948522928776234939958666086918608523974857376473989358993878812960561454059242993823730553314082610624753031784927144567688795983622534809395455398620385667000270798560844470885996467987297296203088829150100702985565394122150800203362669031363934275872255647206856513303576961371284649750048611674979769173587484010656545528644957485610351700461118314258560492978285905059709898962996058404594646626417428253698798063216491286687772644687517986830095035530491359098140738344109155609682186845070705027677169570074883302920570134713814285122437544679505768621699794862828698235182400118558642576908688848860527343100002754687156434391390073206369081799547846090019179142244235064858394560543617463823342042376846443991483884906139571549282769837154364347221511470815275497364187302623057349029422630317892913617450553250960058001674523529923245568845427806118449397199785155896767182714048008084560149654531433347020505582430977890358285278651249073919362140032703175685473024830861687010973770642120718125208741881556193849280801016641219867358183769070099903277216306566482293291706433001147409030815087345072550836583503876364386056044214061381160541874930988807086049309021141215859495729131338047795354369181157784593901135975899787872353076201196266422241422135199245289675755717144141644460016411035956895604004354400566638203793972368487965844769370958343914810465248569244202836977691883122475252001300161818118951956513147738412643465290427063110159422397527058588644461162904254848941171369985514983172952687259263465691695541494956857547022402194301906282697298415652938966013031450667733668833637639494547783164185617775910922320767887722669267372312082975355776354345017856105184356304929107032849030944173188273703447828668056195936625626446030731098878177971450214843550952630776609449208431289605453541344844352792025390316825758306539033218290672233856710687057274022876889432196942700815405634020008405361738470923346943661207986289894062525383502217970411335989138148352446748887281862746159272254641795324050705324486360360780242813410528547088594898983624488456154442773786975455597587361795795191342849822937906435085574661478496701309792388363273968046885086078800746173642494070273570453889638250704319472310258410984763332429462410840108674080172121948450242846053620972629392830450277766433798482653344477958692222855975440814611418808456400003621439718986091894568138650827661499110546097129494936281558114645752497266789791664416265653551717131360702420929555386987059775663083292758903975583586258974135785651336754735662955728677980366323922048828526125402149791036922838128614126021299868566095823609629176245822852347212792868668158442199243145862985588146564501139202010152396168937031492017291549081964606806552503176774188060527529846537087932787656609616573927118446502799595496506632140220520190459555260088153205812594735751857170427482667868213556300532639161035036583874842488825377922340598429005238917815392087015090928176344056047031109204713772999204085886661276932309033105033220520884992117873335690581471829073866724675282968242605818367108863279119262951589628425129711055654737203095211603029848786181135579043536044874179052039642105846266374517735116397204252485251538931368511042061134425614374566645582000806490381747041487831891743264357704673933770437499939847033748476927878899636678705552745898825242559393458134562138737827892479304613732649194840700978410179214779377330792412883081473496497970456401149287578474647420224800325473038690424390136217570544527344590442195139725488162308354870481738711374493029026330139334588524977094857469293618339898480551654812268548240308381007940693723678989805313238023147854661845886718897461178726668250435281571856469732187469287327681870151290929645127887255134263927697255949330469731062127079620832708782017417309993662962093103174597238642708702843753071915663175152685403583793647884016813933161990123972122077039456000355356408226576429854800769495018905425387192494778010234857172384578952706384010544710921725215347758141174319914489461969858966052298205758491239574666321514824339756296108345559329429800124111667602266967025964532711305920365114496680389945179545546559869185636800740419958956204040590928130468101684828937509564648531154289561538412592148434255219514515252782362702636856092358622608508156322750628217572234482125738941661074374418606200486286832847651112294600256263418629263005992183048483308741529816055896816834527254519249839731634555989172854039349966649740177621471392728356711676355684161545514892553022880654086290267923359200307228338069438808828153472355632100148764305902098559712384502449438435630090525361713084051521262779155771528001028080465253680386077705846444857797962408787466153686421839058283944936964395237415399124455655031906747522519077034622395727907417932620633836128976316867120279461027646426273291545053394616939390594786821144103421261268864009724733260300019797611267820574523100531223145708028171113832394013693709337517583362660625451140533848061047451917599141301347095847886519156831553587427605912074219174023178543136709853144920334728611162787400345464059957398075702064909491617300250396758195506374030852561196092415240813648472068043697318129781347031921036137175900370600458276772942582071445922702068512424312475627983445382743072798570032750636466008936134374617582652312112540714281495732149501227420283662384559199246343798325540964603245949296144724675774945409195067309133859923633483489111669126532371418677647341253194581370566793823803057431125686417621869253472453579117392353003565568471768368509381651621552238618759112797688516580399043400545377308454064932358279020102694430999204745192688820805036341776614134703076382186589720419964113956396579248037700933271497328075408415622156578903098855960739566691089805573964531198908785461279103153243503604432130508772736726186341591934130503196309600002263149292224691347282340826218474677518564937849089761697780678113207566229138531826367113705643480900261056531758460711729297029033765258818641729070989457789176672729323665455667833768376836411862977131056374198589876582719614699315824260787444247064000923759792494632574919917469771468527963701412553152078855610636742108564471630205622429001116532228499524601706234949328004672932535351366467677528723166960292226864478445503657681145423647119255637781345466192343334364946194917927685154868736368876694416180896502371409288006932849752832766827976100219278765236421562052284060933759328290359116970670328090010540132535008276674366163151514060867034930539522427544852844776863125077915595819723674546070136438129889513593280994230790196149947502828971080488350589018884237253924532013364234742645246921661226819984038849221205933779056024971113353196519903629959815092951561123969335114558652634056098215075940919256170252871175697679214977747371837933938962028697364891974405903494251946598314158818125964910127617236863354443030232195613526850233958316212732722355462951446441456366763331380312006035093403043409773914902020561141209913392055841179246531634862132887961547310366789801762390618316389907278493909180694707174320984774201577561762801781661421302033525247610964169591054812639537339172905576418890863500691292645081150623514907023930518327798952227603939815355968244551343628631692461397400624859719269137950841440941846107362493502617364086802711883284566712653991049357041270832412793711073243892222029757898582562922864310200807774321117492898060512438081287337609346854510981187812645010127312986882305285240928782138452665037713285154298460240155966214047997862582045162772140670724979247694979002660559956611116338805799968032319128237532409154123323023293571619174249463844086797566253543135275941330722621402547822364767806999279399230117500159896689282647132195292617909620110036857438904826519757772619901001044921863663237243185629711909298671639815385905957283340122393706795509568159361628315818094102008338908709069459258496335519576679296771714579187689311748185188355174144721291303736705411060642570420006768156077492331431325109552767979919630490750246568358513150011661896877387387351060998382098424477620693171085188011342003106156996067286916839926556808030117063328621871280571836554485687107390090137627666623520885548154373682185098180742202222594704370596437024648171732910108383999837561187810670174551133592989970313316966110160771776877380775179617888456122580810035781646021222217730305836302856504731615715194234265628172431196450176283889763793842684975885787854962092228050337380877048652055368002342969870890675246705875539595445813025414033317219025334185963712729405023845715148812234822095961921159345105062947801507932338913709690639460229596237177814599530222685526860598768177104996565053676689101570168682678868919720219173049776219802970780019161712549925991725191487092492754522415111819467988695789939314657425337730016700589740595713956302277624005725938227638823514341622909269255985842065491838310309458744861946794925194844802506301324465193818377602641120842165327391564700478909992166734634370575680399053861485534749207414342369685945144286961530722620784257842231922378117628824759563902053752088608273559802503599696672837056971094876760420885471298585462246889437357666520962170878255453602998287955527735091807997709488750916263028963878710141803355912095587345717549258377639969513003743476101985831488760155023810209015368870576349019143436779257507604824571973451425063641653467518068376568906070815889201967172540035719427368515715463476711897422331700642516668627278362941576389651293699341515098436753109336853242404793534648967718179416716383586426019010206338475169368004396544513853613557195615305688955437063427334262457031204567254629206117616973938746574965067690408400408303046940167155689423412397368581606255741533533754333590547673077098737963107344511840946508754455977952533440178339962973703934981575712817654895222534841530819454392643852228469334775199996081967733636609847608198681543231372746372783162364908069663867090546354308795692175078571770812020166977925759016262775045929766335405283006402854422098335465256491933346523889898296688057395361957044765089627542185615890582005706054547693611149787319140004976926073757994060213973393653483662655150128256573818767169313287326519585600155428179393440836480752898618962397835407761960553090309855198547186517397520627174653071881471125035881256508743911239648055155418354669765188613211286104123301455823050939111260733871735848085087104014463705949489370063717058123432485248645813844259396317938158144659201133878386648023762670682737840844249645661662476622001294253286541545496967386892915205554034030212647587142982102301605705979021107433843031814043233853283670593612640555935148425814810889285379624396179707673590545721054451746918775588298388765163741980514901151887664088013503686060144771112573979640698356305485290499740565607528619664799360030224803568802281586895756167711217624966542221468081545299128025971845875430198574134639811352179618011761662786497317588122425366517543594372836763133232327512692753001159879828979499592737716115534985693120904343163167685286058127771763924508184644545029314887751091050485441637624306866078765366240721014797619850008246932871498622605673170701529758163981796438888334685148139727572585278758274222932712964296551932913600679338545262972951283270559320496673682438423233441956010776555771377387791731364301548229875337147253086036870427428553185677159344557531408617654468478217901290680017708301740699607437419711350011147856910472663903297826791020233809486076719694689008416023215727391047810816661057598870318105221265827080053359419184994564632438739201949151193134646847045366857040882276720883726252178853976562713494236272167026285424481699384014265464903244400759981879798695281325083379734861445611815125745460640662537847922980385048724248037805071079962371176060483665020071395366990622297331920070029045936826848943018105429494911602399118020757896264042558700968929659895064762327380110431018031927947734397541492990693001395110530323061976721108148631540909296459509999597961661505114953233044496698551507831514125528593676556556051006632616609848949934857793404974712528983659404305612066020622522797572707223859859403290976663874045513765700647144107280771487865679778523725326643433096659011965334491154295208391291474542749244322229821874071395531783461816954657806562095904294836433384557618151862298907674875902550442552841261674783325247302282559743644077262236433849840024301315787783781142331637072412278632536901733633507448159533488029424017806832900418319754745924217643906565170053143982973353025047783553325935602022920994359830636201400525871370940805509524704519088225017976577200653796006771740698804067180026220165128317497072790080173958372595167334314604615286678090455658394912841770309647319492308148129713313732446580681766343835987716814523748490490212380085231236714818835704946974975307124836558894695489644397995765146131933624796356345430639530599644145552070001280333715093014815500945118700286614070289074782341103417762978750474569982048949630786237478516081032263339294552568091594437728754171114710380751279815249200623218805024500116523723090248031070946914742144037895050763089088346655479072775476264407882978162016491890743879535104869651136163932239832617192300286892912698598050400838060212774526270864613170982936706481470589597695408605741955732798149295130566528284556966428962469938465426216209934330024180895863861052267455427223148165840699995730424565537500114802691663968616639707071558857854446586408999819408849404468199569980201480108416257171966718937287483214826884397152370665941086386837508769870803777682644110406620461579216319968160354818194602626171586138326150410476195780004634436701507793003972653240381195349454937598553896484001155180976050959377243730203397002382355039907950445958640448714409098171537595290269026003064773606663844014322338972394290047772186031358544063171569861411468438508168931100972733565375453809300833742407995948893277686832996744197471580062668341177809995526061330290097374630592278878996913149415705635218401925277546215328454338265151333840243369339819632783153927544495419440959568741533761977727515279457689787983735846539836997319932609590638908719046196585612438536736231045715183009440363304311837711058281017807059608824749568391067782187898757190377451780540336213622871386158799329046681010065176081154019020977356637630375153274215314332082999476602579998571676432485215880425578022145702650199756527143306312558835717402248551942869458460360062746996443346358408459932734183140274576087033812804216555725896191305542356806384257304490661109914191825333113405160808316627523797787756340016013309792277917841205517410248002792064412882399668207896460245227644889186048382869235178289592050862843973924672282982527541287865962935169318498950631718236013584738302861336875252225147197201955901703975527201295794872563646312075915902153425338409731362286034532999591802022377613048708710461231717620555416535045427215960565380279308114867111936684509216639633988339367985743651302287145282917574860635025026355427881257583843741858207811913518344561625677143764117289163172437361585023755374950503139261912284214480576951009762123513575944834225652011285465537676348352079730590204101926764081975660957692644880359636165599188032212833303609602850813086545584413572760376506223588299324510776275424972629472567597336907179947317793037848855001181762904255112171598413767153003048314558804444199234928278546532761457848755842237192774568411912669091665892938642439484263519944927880824292879313180151485109650507432444875132422878300422007768227834741478434822553689723915782141674480569860627095892721402742607015561757970967750480719365939345190245376516086334646168496858500580498294465581094959201403400061200354304619463673019614897492965319543674339511248863520483628361000377929700806442039075584257745859086432445941064198569274557502963429570969143330989028482385637397075661190787078199192322956335708419711055760732404444979630064943844106478636779010792053963099828585275085669053655888328647363115624642150186111377921531854321005780944491957381951853942783672397093827745382854940944137296448380792448819461820535912973383054388201874121396032275895878630724065936150679433684721170668820211158279438498232397974250660740542645521128828567131965291453691907333521142612433512420952798711220392259679860778999134617184987559741955982966679966371729123671641577918241786280111635230661833314443449244381322239447442599713499675282829845376740791152597153773497418289245512387781564777187102118262918286493919974302356758962858387758528800857141428460312889772591481484046792607182384338234118376526388281872378877701513454667520674824105618930434092271415586369818922569922788730514117047210081683274837813601181101508745090344487758281042667982617006792218867355867734859786717612201732854309755418067647084323636704827195986628865588641978073787230071203803946976472247442253175670428717639294425688831081939615751474141129231875719108484009711922198330516790028170020348109952275219848643682725652394986737131929650967701043533765721113474354353760018784905957877915685302528185339263630424393073335174001046221049251321826944823805027794360776595237451661377235208237751585493540307045338320939908842597804241936826937309840595515599549438608062163216099838866283101098855552551358942348278799258924352857200952724058322888855777126413766316391933271421146565677661356454730600618051689632040176135388428712190236776532912564941401642804384740618677886773723988058382816510755804476335052527064452296230787764372793485406031898975846802667161631300475271450833010114773108542236782602622587900275596275450949171978878375846765274148910710510076293019470691897222039370556734951761006745952941952009392143269578071933116528266123703106665677684074504171503920140483588501485287972373855546117308110886714839256178179274113507624730567619092972199446805793720066285498202896765281152313516831549298685895168208042464131628198272096545707116981807888812768704076921930009001109087792601203486310667657187581494335561337163797622454804592752706115624276845416442888904845084896149329259915773774533335494049716495149219298683265693664119754220857040596133669820940455605012766512738195843055441071660065317932550433819548104185485177735248947031313130010696434469568832370092735810275970969155567809804451737009472120135762790947754953848552681647232127406614345261959238058442499564340193700567200470597121147910645316245382811417635751862777663467254182240648126704690878018225477688482140029177958887739019103268352737792861631391296612039873757683230817993590026686690808633296820782545556288597939583896031572637386094759384430200945390161131626434634282459016553324173756737263759019631953082426752102649739340047448189623994386559587104114006617556300739711910380183479119021629991783635150210751516645520545439357498262138036227390182476411205682154880594215118550642029000148075332458546717118420436171754726135416803498948121230584476735195949854856068542871843290256857043450898424574249076482304018145932455416330558426838139280770322201201217957433110850785207237581778043661702430885173449004115542161264811733386481658533416381725925668134557502986447350027473838167724456220976542229817491858334073792358872012136401337749823394755542475130582701241833812309364309550791386359560406021918977987452475759528904678042097435912848294904344300859279381609352832637122618030202890416445221357544464824696874996701901360391447558939630530075245475217123051232454663642720694183010801505492148820569848163193520230344040027907523717361204184938303193631425339055027225433410796696156580975800097574031968304488833737873446747890642637948500761050382398600274735457040107953357079997920216922890116054617784764941392764817178434634791777449862715483720828683868202570409154725360167665169708703729410485919302298842064310660455423268772295891446706197856785086498310182641600375426490487933611688452964635379824533780055031934695973198356317868183017132638512462905570852088847768982319384352244910620579547724657690746864833007984613970321105767748812740841715418269525032698064017364628214802215670210559599809565904606660842990570815834182145678573726667832276586382794882332195445940271610479733699542297618484183386767282442377448553390212289894094345301855358491204162196112359621440391315774745006322454789373219410448126476757744376747525086335397886152033260805417039803395689229803732726053241298114442261544416275997615394658062256157164536668244891101990639744094390819297503690267754806201183887314469203555164895281336180114890366740109843153026403724829877178517253104240685085575919124892056144872777988567108997755103325476554575822093874251660186618839305430246098706249597553999286605418169057751890612181690023264706737641603086882952206378604736215504336074526938328227620219937807382414998279277228559876429823496035610748004523526843636407075120920310813436015767346577192493044927392813517705744157302704613728148187059631666040933673413215425339007582215095778740655982583148783043641509680663937814324003794333861909557285528998684190702231637613408172545005617693078842567170671499541024661482591838314740198844128324597982778145910197101803553945236395585562184369433224402993538882227429962203534951769540103186718144098190461424578143152422509128382544530740671311657502240792599729474242010940184417895202500083487769825946747341625262146967806122873029629515559229562591560323668370555708111980741735282908364305465402842102683726144860471555365040205923784848580261469223518417048006863073868863403708052593975923383631377877146637538348032978195201244031173488214857798886770631472343957916616872306946746601681291789248172670891625833320071680910433446947807686493143618724300991346428098806860414001909064981601757744721396771599753222750564827561367017467420049199620680115312736591220695032713620947719970713074236291972570731996943356314705153567001881936178364138375852707837842834061745868083495542076071979931948497131900059862198767754079231646412752735558878528516195358094816442638496694337632783157082417410617206370085214016346684023686382555154698227285048212799786637109508825286606445692552767902305799700540584184642395965482991494791245578602607976931483793956625191350912564057151708226338121191447763660639885475484036110912684114685899963589233863146503721134954158649684000803267341796230338983275795294011259359616630249764813740362451662537922154831848801516050267361077522743183224243800616018773241259186443257903794422121706093405144826554025885778751742713564415505774192267715183005901376777864959860915226192203051012094483401774206074936529901578392669074338763124076524609688302056938154851717490032186215121294881357245087072415993297888245321012658325609665552869996330628010116516224706276429216153456802834770657463236248216180264333190883451688917593558529732650800958215873340874281624103275028284313467657028095051112927262791496133296220464306966167736371350583473002227560549189304888307086564560048152953009602572231284433900200545319626393553532329777372533087351837226952785748012243358968993817210118404616334477267124015475256483256498965975733437425401136034310194049594832500169827729615615031064701756071512596549592637985651571680243553852671843395062254289148328018847034277571303043500365676724992371857398193940999473416465054184176980859059319696571762775606010797791534064985177595077711125768544705052277309593774583130594209223310929507069998388672108725465847207959971188997340986186585508278372001666371215292988664329548798017652403835350637757675711349923032695582099836974479196971139809345919603801393558086123083558488528518846471231381195676423849121511290232698499364601474039794374337220170039249255037480492240152540903233423458380377029677672818828477361718840984721987764566613708400896786505684101097340562670130842347613589897083313669228855861175165197244004682660812531559711503707694466377877592310502254514028098744981557052679360327883006712063751649537412498003795065120841683931051329527285851685901101810328350101190425758252306809184145441720217005053785897240582718889850929090501556627062049419079772674229647975003244195883785997908189870137480141378927324504325659530206837321840942022052171535680153974353881358516016578375985620597786734405789787651748007297094220455202511042549007923195924746088924620420020503300450439849646434380278218328132168026788469049086628813412637694018630967232463678862162551065024555916460139738821661828241360820708287597460386706643726579296095363456458824099740317498661220622528862964591502298424339477925760836162420720375322401694932738789852390315720075481580901920715948593487998110996423001803587894974480430507369778918782616311192016168608254103952577176180716420540769172832318328374644309006191942134111683674120684890764131268353394230471042054060442822645771352210880380663881515540199783941227356246064280618120051753990630022327467977038033994248802048186192488969528590392852836885265886899691818345091197876897873375486293301333687901114472389532026784162365263705623089392044779281999391982925205002719396964836102997638190856931758472251502715679685298246059448428994232507559491347072384036873759874980330736158213427154167299584731735635588658819515280866396502163663953948188044552804938190718102646281696660983701448128742968789647209294976768464930984860459892600742577214163953428071691764189238764115321688838350557734137575515173357594828816850291000442174726207590835693966244615221137518278666819779141684979221106186964707492395998039540108506385443828311817005874093004324856441186399751384474055758184834034074177288826779828986188298999441141271025160282091369505110844775061045052947783229605288000687751627693309517493762641173825660914330793279228540473452881256039980980031060093906502764623956538636659506276378727390854676004038307283313208589062125850251108556131709155624243300081257076013729183976051242448230038218315153287226544969147442739202515997350348815385294685042960787061344152512600657704474279012859918519088812824666100842722957117258789306784924785066616209260627078798820458089456535439583017897370292813112664963215206130377738676044957090008528906741472433012703615410837841062223131265088780325962038208343146094524569396037614177303668976515789246603646899281422553541765182398359427146705802222454408435856573008713098538685064843044073505935949140772581383655661168151625452435349812147034900026840131777434289693590682491673270576197949470908877514615857226487138680787174362586759616451305401977435618392486368396391601572833677590187865317559450624113178840899609457380630151479555542774448383110408605803939423365318692665969137394709016264691408436797678930810677961779910839132733994563602694153938801589496081703022855649975553363325235583003723717132285985494924726542364205378979758963106077673321934978680992453970176742687931997561438310623813635246600736037240350259564553278267306506763486819244647725740379560029264911457074528098254927050400216434575424642016946830346030102910458072846874121612771843315512880270973511164884940200602537914638448341821340785416679705765657947061603068366224484472302880619095710760466710637349973236748299274522218357217517465923505056547279589902396321773118630524522865855339416278245519870930051697860024434265131053159369844656634138906940939810843984719429349700484246609034094060551248985021231699605280876180899489989829932547690348339102465350351068147037739674161994322816556984557279366696203239278641360399149871334747957299294560887133219928029453464263827959008645748228979819589768532886126853224464139429968614790089494024587109974890281012991830736869089903971007086334834895469199687310702785836213224708519244663874915253002125169859871769943316857811007491224858050463725908323191203718141095723739794638123077880313933235801290287384978709004841265354972084029354779222253707774232721911107523650407166916472170553070066991166502957014623661161285178538418499831427387595798576296282391473958324317196652092089328918655498566177073542959466235168216984352731084827882710443121240405520731677985368644042156414085356651569113880432098121149676061130872073756132169018478243489088109848934723255537104549874145488768204023533375912716780776672172006700139335547569124286766142442091778917368472136883754011300755004949999159138614560126215773572215067215246608260513905288729967439509062678302786289386951395351771944673069211687340572036977810198253999619153953585887007336594301916757372087749271950431746347782643578532291447349697608741615020137321622498698891552612098158795018311213809479049183316393868665732091143169515524394080871466849122475507287493086597162533737421671001223808008714812958481373013452113005284738657637446638760435567993264279471482133861323086070761725767868120483764330712578452539905838370646531440944025025535931708365879558143041621295249460824904288554547067164733708484047438651444856910429166438781948602053670139904050856331672523873897763994502370125029104406460854446858151781006483880651707900850704379027247049912206829353486604732726724078504992101565020861906756851972564763836305914605689141747535782557584590036967039684799980165711090656879468068977374747628156280529719186309728900575628330999768520426750505026620050741997211653865415705286055189394603686488124745327970274841489631174728537444442723223940070540384110263208426485584249451665500627116208789971745772588738086702103289083380979005377147349751914931935840919998832157752418686316150726565909673948228534036691885726350044658599342222061270966888613722316420968690653499935622596237488418249133256591380336604961160689030051198353686186496881925268480869349452674557034395283910335978181776778515455344722302150746138441087513474561076945537046330735992100862847122901681373579085792358876138986139731804786373244167248214402873957370458190805416427666206806662110656926175963534261558283160983859899277733351758964785986705768199693254097788539809702757302410314039661302587101535324429738394997833906989942505659238787556790026109674164277949505257440115707864314816632573285209191819456370045746478289233028414822434299018444532377247291086958670835563255111658118343255470469909718035965663035003104225437461307344698052351731522531647177022628517859345732139530041962038752731283004390189332104918930023406086770830957966821582328379981170387076830540764912363014550408780319424226002249572330618948557494777622958428005238849395887602563908707368276468077752610650798875041255943293322690366445121974956519647910239723701102942260511768372418181228276939087920727082438919666106143540301151795854281714645175543411310418432491535241266550186922259809101188297446146551059675467711016380826873257539401899036323146723202822180731025773539325753945492192972870253443693867892615165227031467923575960148097677270180503674518054688506480157880904081256166263584692743803697466071045467207388610321505812625583316799210787612521808960352821372600288929693704305460748065168172925272887211446343533536909064965900085103661991911589940886487548948640761668668313019619528514642757300294736318469615042499179111385779466106787135906837365745950526251697911004174740822213385404627168485716086993831290437006495990386099592721724303049775654480125747312635080861688532501893720507233942913528088062859300128816711747544637117175243874842018683989844286801060981092221198992678960543928905976470313919862808341515393421930822408316493227926348917034868400471345177713046731032258017170006231411965777222104913624870123708079609681577998714547517816598733336735459859980829102414773129177481077079992508331334520542709559668598052641251917141062192102791370451327375035670940694442486308562867884656609422853279671747764707669551217180439283692250278787471392156173344987185075085767798804375923272338531735509826137425508727531339876374878454154777469380582236617836626979496047475888503264424128979248000494873218609473890481274005973147687686364400247341630362163511292792344517476831733876151552788256329284834879995793031376301278919419602306202077147467990788711162028387222235546595926383410120167099157782083348254512772838208033101711183895176207070979547135304927083091577966979058601590241361965577492506650840850677577603923289868677545699768001540483403338139503805083844717158782756180776505842039246053157559717193511584210736840167113819656806983322930734902148866548637504516530486018449829074972798637735986256419315097388843440956293684562207418713050707807527123377980932187021698333627480433617958430160312246075104478055172301347689150126393181227402641966275394269062707052822918438016144746795390567886246836589042177085549407815007201616878090014952103801203520269264371377974083429656275450817276788029176600968735461716400254834937785029982603275100510676888871078847187646775069578777593538492714184249741370746981298263818433767055131822334252862221490498953193118461868057889824442097934650955275624722390306503429943420814558468876784814371057068636836551655203812532981524592559906661628356122611992374163872019607151435419754272346100347522823507502230595346457304532749110377135290005922520398421803499136870034151913452229240643391765497316545416544263758083278183229240452255516031025060542341085459832834685072048941918577885916959676755474983980253667348510254355341483487413058765983219927818828045132725285658730713138642634776903448795144201684549692292424597526912322596184051436871220275814384654736512974603322429110123311342492616761505548858422391431299454232919487465121936758257656262893186770767977329751979573717745582600913524155071971249368440401737666764629710707368078942469127110468195034856107969161794750375791805303608790452923766003620947582190633061356273342185615136914510029964972153350741483929974826308633611660396654651224239407515018682841384168266658792290391196784611568877780864319327716475622720337359528572197826248732910222422790196829129258619603941231311590798954849012651037670582912777162373996443030331832068348850125044009592922439398182275069847041459537536741180595945999062535372862340258266369396707873660484344269893952422733723822604200003360217862761475912621146427519989952290525395185391319013160716690101703168758158269312834621424933329126885392261904644231995682034600600362182767906414927978692369789153538207632036809152313754616824784011362987320849362471159621727162221062724847917218633880555240642774499535033356723520702624137716522535004981850057331645791585889437747544357498016826895956416024711178283753126916930629905133137396956900504866512448615766278540922881049543078012243346874110538106968616005725358042242363182686885712649374844048544548005503892912274140372501490168196051366914899553682290612061846932707073453157688051367084408956313806011508385310670247046352107717460615953733113866984343360116137061331057182274277711149960296937771611635010923343479017194859982259600414606507232958976228008893227668327469505737549210778101777271683835538449455919378279704150830007183167444296017426337837568157890237651622010885170666786294143817533833440778010744632610355549389475986723083899933757340164707474114621466449718944221907610533529164639444903472244518536589186457127001102645324738272970363164220595526552975067885477291905032697703060714479891273568264276224315984194017321793873988861885100496096054207270637732380577815148679469116339932856730118039100195916876586469350433657377799928840561299380771584544304923147643002798437543911391089637594172222205125999604934693572825492473328656040760571949503375921769176241138520257369312362282788544355052077999488127603953768668699191580662449705520052445789771548209575590270702442589957161328699391295279802492957810307071518981105785134509035290006970884827900731177734352590453953917712765146739782478099694111355565741137204149860965485972199573716643857860208353173271127307267082230271592193891531576447848920721710195335952881935245327478816949527663111174154508086183692541296485489196266312306050093279001841764849886601559779626610562314793191481109602018411409059176054522858879225213775991329706755357969104156379504605567714164177256695875947906445851383859663779869982189174003080873389790024701129330178528968158224289077440100339176568507385805343552775493181030855520411917349964917230766480261112181536581157906672241637835730590273952832588817085445419955895725780245449137708534687677380685650952873708929651355728989463731674167854673990046296392873409178190194147606024829759361370873405143623451459941320165631464194516972153086830457333531140082652445081132061095053559960037705129415935583158349417037639684540106931318964736545039391484609386968848947177586173772273183664058049595973890185537171212723014002973615882614582588839347667625496103477637375347760993349901663267064696979187501479406665978233602924511343999364921544151778024089843400095822948677716344595932922578625496095690552607018156703482816431325621931827701430487901311698596527735957573329396208524258483272829324118966328207047570671321890421818685695930518107122443650907554339918888635790705954103522715043097672788818880928485418280340272087146059179535906662849474807062757830525044949628331934073326588112807850070634457229019060823083368930585666031597892363051632985089771030674731005479914437697884624236389866907822764942976981462804400063024449832832328890137916027155179938006115396442207809600294351912857430054868306747464587087978581103173522538517464280880021065386517711877920487462178196904762526818000547253722596538350662380117970935859246087589035108016870809458534998644541060266992925581689070122544712740521070907227447810159327323484092797413215038602905165326075688436270970010738253773425952049624431441003239911776837972009958003573974520093294999954074386243001145197080586646595917906889036277165579221445858352769276715816088753822242184717878960333823930882153193703307020520260634582253347825704947885005811366841226571758078104128271804978563413585158126427377442960294782271694985773035808388425181845900438569033579524094870231360827131047573529133419970531636551410385633544389434515149878106376320301253814138356788857545716339294214518078127728947427799596108709514444176166940381800236016165956948027496062143479436770000855121414668783867506378549276808732320310362187758682167987922571292938346913579817723244362088512268675013186833699871539524346202173995890032660984012418744663561809126983993508818539169576566602139022451210628897792898660165049424262153987987578821057955044602045834332588273664213372395892519678481274546404075023839811202804025238683687502618432342047749652023457367204837772085023084871760856874348562967983970821716826936660349306908786186392016302811078875535997523284516989980953419276410924397305092351566771969935275782064458608822398788069644074059946305461799527571188455707506890100632931901971604289357881649664553436046683028712231357593550402355747293379460195475813742671866309092971641678911740867216044826271350180697745455460629579447053020184410113439032227640712643950397280825375066323019907663187387542237433632974715321650518210444770712155444226548947781382408379670509955725167585728055596895597169127045144129603291120709796717376126030408642909059349771440900121971000253547552946557694373472021948730631792690403278883925028860355943820317572732003392765042129210929791169419292522247162127467396013729242223504832290711626251463925771903377030725207623685151025740967752571840972291492461425073315533559040640466575395500085130139763955868707002701829482903293333285661863813218383802079838604223558027022642064046435266817562801692044081483933308297437949644445378556438761136634569179350762897946580855251633114469626517287494237525568980637197517680793390661509805021578230639848461624994696243756931584182147296983725442529146014083001987623178431152653778173425453027707742370804650885532018276921182523399869013205878897148450857938668598162154672218700909675217696094029916220787291473854847676804652940132662325776023510955283293853265109480932116983226628999085096631602087538373778205302452604851237620482972918737985124975596508154310642188492237303481908155692002950819997021635092455875133016026350559322421564613021905832478294470575959673609315419766748572267987490227078751120133616429915518386878979910142357241818266580098321633493409721166020971976653118630101012613016800505484439481552290415410368131291265381983716374919819104061791013029830353093905582918808023236094710522994728422058719286602931950610237485154587468026728662405373816729152998815369541497445304930188071554260003529856904004432511618816692333597703429089523484239787929870087506482262821207213827719584802925166800704431049951460648154770521973081193643718138585016023142527461825227174175916106395524512378061080234825083406806187272596466481272620470787112237464521873975916425217333503371751939007118215918544615483548062612798511219820730923849057909574847897518328046444978385594351174697138170871032918830862895829329178962111394467391514326410206438296609956562948047530002063980621782706019292886813519857618968573821308272742789861038375548534502576630730899469096290179549825256407233222331929350035478251537052575744124370339447330243693545875997828418415532669110704266404834996786458072254169787605421717448512053369240549360567339719552464089219616799937138168846297160027589466777286792416219055550214354893970882509311050418643315469802199414399089318764957263079526324515206013695385293485812035044668516481662321727912555035179530389965779869839954266144889922149355314931233998335041323190824199478251992536176291890465306654241762307999480420156069846039873964010396707431089472360330689076161536472081150968183991448686812572243163407589775402795954947566967582097666737032123627267285220940164562448549793699987756393623060352399280442680515389435518483193205716499628521494123010320424328750095764068415967131855167336533109729475175950955238225767214294880099343726474658650938131876991983350694678428327122975873723836178767652524326543553370291901961251123160679554608006857432978882770488763645599114630778626421213556769890309682190766740632140442839543066450298826362991766401231907856453704364621288879578050173337296979986219057506277906291874603744843720777845020378933018530396434703018047057049345319610965269284472087274836263714104277495797509083855741721261115310664020414194638947143774870700955623927585811089146172525268548203075900935353710226998025492839069261429746641131148134794159857777846512842872686089756649126811432650968832957284963964406349840824804886283498584800510298894991481511320114762904808618888236592046612490582209943408548515588432311632639387144185024454821643507585865868567402863096174363378022527010809941313566707299181865680635186516255359098949775032069990540879744537379847885481866886326754170752963632747000239033999981557142111525365804091695731873613607632989302235175186273661059951380494845824204801466105694292598595721038898966435719893705093297832448025080188431355161296844752353068494074253280511979360099113012284296921333038303794586217889391675282237339612876419910396480482858468750517130264190154559359415621690509527296158553390073999969686210211318767624070145958317083472514073958686922789268166744858799696393750016630786572681172095883567508975402761589152615223237793217304455981555041320355770906236397438958687531769824111323669690927325575265797100332818103193336913525127133784102625366643392184160184313373539839788850741984781617153551469996160745486228344565063402427231005262024880195846063469956161549268460244892921826323439411983239878088757752952625212538181427643797588832207112541402406677765912592866979975855462287153037303165016044000580759497939085226062918022752083540893167728389009053782516127146387634873480004869078909490414804362136906435882301981036388348075691122786938984234459485736785615048956830958096276782274602379097105791631215495284057367186345756542010922472061569143305468822806884113742041571828496749839332781550976774755582540428550988901621892986295222253976744981231766502298357221355433088725234259428308296000293017031495692577615596992805399436067334335719581441280592318489485505589429166402750760528251679268063422328250120671644328627487569241266180309431120057592936867410292820829613020529630494302581002401132145476739565978036380262823451565522199963030108324972397723819747286754387480609593164605662057180102702963726574934962204999285425091536351333180600141177627364909541760901569875892285086491752872148634446613143699465630448048277320936269378357382208079094749625767884335147737294282267778168312123952287226093315958066060476518198725157528783888683786816720349191582314652346782879481862271675218045351270723198719348305105026390403961469378464113175416092719571568446109452261115655304009100503968274670488019608302695762073015628376338256632253719420542582017313730725347946439864315137068329543978684121419809074946450947351207139603231901811010724353311211582231395978189259038254687398988430369744323584675846163707838199052901306826799724062117774109128277611446454968156881447273889290937319721089287452573359550559249695010108418090163788699742689831671534664993699244780472770125657106463820102665180115833777663304593737127977830597042312896782303386880095104129341543752480003102075546338624231967026133967154551818353143104306227766386800064314634584387706986856455236387437012881623976107137138509720466120880636492535873928681831036675118512259209484306082107854474505676520418034404175126264663308462352960609919290781979282441032072627114103543476431565626638059725603905019476170386527833938103987247824416022084228319826583503115493656831390151488179586046206557683295478014936336281679010831656441858731881294111581260031114646697701779236333806003995231758046886566328988672075216812349107502731257264354922310919242625818692053058357616990971627160846775206131080687988742980240503475236758390288879278464074487094295446243355039603930004748056053451409715627005115816472763104791516687899103975648779221418591437129203834003266309908114500232573049050829693827552528334076689948323032861806090133976846902515242926581089821908566641593520619350079421144240871994606879666280108640146279340735961315134877807375419091042231485131380747838033575116669357908054671846233713821407870147722846820859448780178519579665774220124367709831325069276880130347365680449247776315770526930626053925915489640285103206290343009927944094505998564157042147137510584887326932313730449060570488658978416513840685024099398997714762752565004383605073029754241478647901298338059528278270792882295716830904212985997198614910232632872334003799287753500266043146288863378587641133124118773076538825018920183930078231237136890283362466788138257782738706435241251287260489971819854150886226408179666629523776801364268237151389031944960501077582098161893379523403816196496124910537210394478092464761691560415985852405722929886771991441540499551461077443538348292404844646785510437378925238359502379932216876971641721705401024731647226955248007820368620718222546496674773434499842858318869156781787651477175852872615083279544733823794112513382400773169089917070318637703376239735013897740751135756911989916273598444944404316990919391874180557598256888361874173114928837804566672546908324645303807966130670987180275954030374656490619652848829938195893480055839437229915292704832197650511233719131796999259412181204713457020571870335030650019450228032360771769115923127824483128220389417174639755065784489341510006951617241183824150429214277705838227874659700759482267090842750080696445334888272468458372750846565822749628732733064682837101872106888844554754432841428762293571411962545439210997999980959363434839938395801964557752832108296030580318651382620245824404155275398167198750172571759887086065616542311572800013008444811191540160949240018273252255724178954825031278399540547057982518703049325123123565567567650374658158248729118840394002405942283890557020603318449740133919968676987340055867713777284818943321633255117908324678263144378403292796781739231723700051023395944280714860445287375619434663309793086153602020850636755374919655932761639043160274056037292303313507585593699866403269807801548058277880488687501436559934850934665576695964252330655262638924746853304248593907796303806669980862727205171112126671504267671123427240455962175410710212498348172158265864179724059136568496418230973286316731733780249256649955093978324366432807224956949638039940807888680759800150836064734883481576153166963378821182065711881991592107282219983157455547203820659076397292817391282858255276026835359877199891587091660864844105997175300688278573652864943336153110314623572431996852398673641400628416165566015263539850270296998262140661923727052456369364131113529745835513560599623201243092546737632436873769580162937379705958724714598726191071396334713961872298590185982361932177272332854409573203053372898951030630873419909850429761951861017319768896117119390588084230751970737804284015851171500319067857115195268853578610462099344020873696157511761372011357267655561521215222069972279790022840668177344705793522372772830434136846315515822134334996763233370561851826107822777834695526534225803197223071184450770234869010339270257590804521474001573914465803825908145084006297758103650771113406319518878235766329345424739182449737315023766944979944492439421821548416090846145908479493164054074732960799158435779348635332770588920105717640456239943466315734471045211212812611473854836406125538115173014158222911317119697528211573433993731209990900885056497450521302407024660228886122149637586708223552283145814847324607788101293217745969888483863791622325269068278470049215924128374778487739715832648122097967674805570190809322805728860135451047599238699908208850530121235919332889079511110435471830751411925572974722150917211528126631825963863038661460082131575673238130855180319425924954066107971243559883420803850739771431192467913165173805949569506437384945507120409857509875940929764714198176614689325326928547573381937542522703585807915723285976188060815296936358020580751753629580114059746283469458835819597557658927544331637903929818439885982673863109894959659287679077206786098221590873324238412235277691182779009729585515599900479269742788960053789403402094144353961535003048975678033284948703772286148418583763779299520066114346388358741559714401122527800827578737599028100340068309264073206999138901353907476594455705536299982928856831019564183403121821320971093437218822730972641094603131618944531061442890054545512538956940569549140200134654188578570140485644380376840293795726017764344594277673500544116527278883686820606466714276632125506916074391404938483321312168973143159225704438402759648576817521936629773832242224405863703013950998299316654009432718911290350967802054170316447547436363195456029867046106574875457439759192936565226502442725574573435670678774974426069239098023096167260689031349956982100616143213806450326363586835194687262353890797068555063983470695253862144772566445586222723043721585316152532185605758204161056067470218441918754749869678087988725822046650746667058485076284843392402271170847891694891532880754150970217692773802075059761474877341214106195630453225097580036736608170207282579076633189869337909208101080173057931030727478386510446964595768839206935677268535651099858066479332951259979015469719893044921507238185696465209419689164927594511345940063382274503636042210591757273799364877280710373356164103915228013832511602471060812110985087789671453631908595860534290466370032499058131528676020229855925064557816573295491007851424787725030171571525682799586037539658037549053665850039043464031221857085155768472318285627862968487157754724191988318206969072293241815389029036770132389379743355747912102375439948594690028694502438509873120059869154109179919468464353486438577505343639895755670683446733792105287136357540544666029449397311861618397728659931245867101362221475147875375403804919075417733790142889105392872422172649681037280958274104142578363972322155906567420140548846505890606474531305728864020950173478348663328170309955613779481309016146663490733321963378138808292091054012148717356343362524203411653027330072421148842752463010944949481471905096726856828326326006782060990756507921714230870306286609422308687910489034202626397032683858274401151050896302589993510324876347064032626192578900099574007978820120054293017773961603552007293503339148818653129677669629476220548182241387409628761755403750320372908339676757172078945797190129545792937362858654110469286458792143384735175094861405574829266501699799102265426618600349072002817215035100667270582667173487781924369351132907789909655884925858635864370009631807108401297539843403247447591462151755289989008995704880423279495801420438097601826473584785307670576824914407139232745895641708355635669026585096624412141173451069891868789708540043892382623233224323320787876450009653934408367976685861378287315017935864443035453074322977663653204799917891350412083905170550662703264959301719104908044914609544411911510853936149263219132178431836280212304242585534487817139267164285312550704689088318205022726420229366780368394732885135610629833834052175517997589636130845420228246709846251089289228955886483083474859263200256038813183991496124103668798559830576116754955892493506921566466741515568002577603056792866989330066043179514714450753049981642108572986343591547582655169056652724485204721095261239259333082355111965308756701409503913210529790246640121966394529458396877738665555901975008325029369476719272414758056812305426832612592802915160229045215884457655356104912198055293208064293035623218464008964997012319069263679294902372865581126056170836260455661064521639601910154111829686621601094200264950451401752200282564807987843275160100190017910328558334185144288868288646159100811772633560541112809458465515558808767138640115734280130308965908073808671413274649676750936393653985173235442764981246473792587880951218360830736354450382631367891326346087397089057673329426552516610533622486858050678092238690543453864706406466198816144531260138613388662514341090066461245937447235243914054075760821741808718515419484335957408327100012664963886569608028471988626330862507670247732959639369260601933566687956605060264246171124075234726655576403920355159136685621500615386773245945661577912472326757362204116610548308572423567598163210809946208868139264868509314098223499282062825866976522194314199010660383705954248224559636177284415749171602612446109044327149496107145292009715059361895228752621641340704020499288620984553698741236749650011608213151158174579012362929363993960646500617644008194610764902236666727500765165232412550016033363805920535450194347836459171206141275542054158988972868421621682382656063321285913304520870681779542211784248215901401150471985229276356522968786860322180843673120037985092331241142777751961828806543528218520532750130502167354396051693542775884076888939384070274413666465670515697956516732367863822389125252152414441005836701216577147271876452711461147465693706540370597285683062278108972871066256292186655719000930698257558590156250692733029649581034682329783467748067352600035799017984215453913840768286374881820994446175532577114424195383942956584920855995951870331615136004361842458845937821864598760208179576538891068199615226525747933701268436183148482071258359664704069162605067191623028920908508859449765481616929481977046757061813207740249390034881517715416291711226510174731704122975594209446355545702152086137692706513334393445854151195697512168870011354506700523827158879610017602844167635948253068316667751085874421783420520837422988820860122516889564133363038766838757738025952597970567991124571940041201050371187649248326288688506832106718053345697636562713192326880672041976558857905804131619095991894296647734344423111413154060899324635837613174342643041244278956604136492078762482069673868781464553239620738510412171750239264597038342906006805108089621714882099683625961148665812833106288105055726191425863976604683563659017444951760799729765621513400291799764563454662043323958478817532605726166276071091405801903981913216022297847389242412869860068916849060151406089162078228552514691991251036935671260548305748297665339731166864495771523797516313425649972376882367293588348646026774985752021155804866918670957790929732345789561590136929433981112248820505290391291055584934660252491509512225619010885204550060819288294151886852448660523195082219948057589742436889399639719088375336904070184108017939720726529183637270669571655626907302028989171254536345251361632711130091023630106271183336368544640811286514374240526127267655941918536190411234566341957017556832995415195038412496503467793267879630347318217556326389624009058157984352420353988385485936416491154847842427204344829495025238712516096276625541907953868760732928696384800639364446227580218277555375038306725960928054296991166520512826435260910353594917658500054840818654625501556177762439701446374615489375985357501014179877619973878166767996338595181067533749371573217722621103093068194500296186543443897371199707263543608086892145401471942635570195554816311778494078695793120089331816712339712593037929385753586751100188975861478453516958218384923016021247600451896585247058315641572207582280362802461323913082843611531135160424031430393590346655381759953348409059892267880720266549952857728760693384426305925512697801538372485345787747175344366332985147666220132042916871048816458888613815509034515180266322343911279477157733566889477687794073502456342377275208884270845243212747176593132938676224109921094686554021903906969847118413057408012853018048116794136361913022419601659915069331539457449915767123337228140402464975945257347059342384268680421064504802243408086654787675847369959486142807694899373850679270884053951507591280495624839934661843907904362357118014586030234852070229070436473509014208731336536145551754774428898521876537490416753689108123780200626877542114289189984237952072931827967273575536404372283388205011865534061933210603891541388606901687056701871572779683921462223528949909094118992092072444504675105224370382078881137631189276016298543976036239531061060753626174490649557435308633399018700970308622972285037417676563958349038257608422762754947175871849079825577729061785099394157105066227636539349596859042393980148061320336650590685685485849341339164535390634620641786807832176954957055050033838646825850510399984002120027362607031004694490255382663514802108839844760245751161117180983943276699330816694919575598081090330287601068208627767695386371984517774140113418259226478322958045580580304101141224012840947425572074832003398368234660120303357587030732338043535341580257521778902156709261154275115025992674410717215325034530866110851949699558542381892076746898365354497650952525938002700799051161072460263586478388722669792146161697173935329357169578426804487595574584308035173443088084556948132789491754919895916514010800405632996903114148543320144646233346325327422270639070784342227846285373898750675256836583529536676882285989749215605977277464732007738082236496121779643395898314397959506008155161105331857101858213161855663526061659271946315678446580222854052084558795173942393971576385449441334827498012764305090762086997331996643714730669073029384050116088195547432326934899339607272849954383489809802459000154856407883914033138880430234733545061083190423874657699236303561912851658684237002181414203749478165538496171300912265264433468889557256478669370135256396774125866368105068378795019300012642493181956021722254643875611507769354940808432323014962180747013269948147980854138232817816868942268946648764830293459366611515526840856843015836637670775840266691842515275055405146087314262126791113234004001025022355595984160169324669213054225593935243185945908571806260393189432519557901589652945771619710492465339756262444011574517599233255280800449656587578156981565147982577139855226673944928753968565308909145677962241428528313890802878471114205008337363273427696431800129091073977367502229997352657156239662668276976838018799550413926003485096033423198994800879465131482920482288868354198481001232269276748430332046319863529145639358104737206335992234440600349592964212927541631765368425493811038616550081954980578207414489535498070902758888815632330969469952409073856576158382429234026907529991130797747380061192410365058565240217186816385898588146373483967011676579755902470022233051434110258719525441698042350866711764690936804560037658931239893094449615991751167658239253242236604873419045352579564491609268709285260589801195142413823151526354316435299450610553462274612967237362674101380183854297324869358622874416823195872767712198752146620453723375637546714999882567049476493808873173666432174232230533205033929126326099057980101203507783179671765992693700783158308919059537227536919112262570829155633716772803666876762011795509882514394582644090381930054820517720437519993387424331666696872725783291669669660994927576579791993245840919586625180924396773325961068260585528642304757590857300543443500004091408454866798599231780072924774659662723880141781982091026454137250472595067251930031541013522303726868134634599858529903893451488158222273823011637466132481105261534164418522246350014688333022048791207594746232765040767266318101676338082416472951198431301492916376344464292497676768768320904309495921457720149742201133457407721768662319022995111388115257427520603807847893096172879808048003477960167166009047194156284828962463379620104439488078088526305352696765431881758386681011023805746738531703457603843932983612113633373272534168973763655804103690195555021524534864743745826903384862512305618763599618321032715113575535181676297239230103152041372827938230380626850227055096337191266460323926913499413547686515191029530662523188807860165164804945212646852814430640973593545057362629475698274508538593897703692175761438354780150760844093292579078500952771188501557885643216844605224322602039511819959773997819354339058489224991914272807604067742624942536462983718869554849805248772698910496360682716515419929267135936133336339919470786544566979350508985962134881982865859896924836035800727528854934547684109929910430170555533362154995719709016155516521583338562911563788981884808134439007737479480916966335213066187119262968223034601157457146368043905610465563475388394679633809285975861033501073833430793097174795902585992149787920088313873512305624249454719125870743539522747869109697898831956280262826047589292395869649901265537856626649933766403849024267340559950769062557738345233070812488338919242439487797820019527869637170803600695595071670995465772477072144224557563304727193953550926950205272827412267072817093059326449902753079996599372673336579626325938139846428792488882962489059835290926988139870915758212653353543943759747687567683953239324960391401101296505775962447982563675181572197623778910752812356208556520104048182231875364370778904054472269371751270199388347484153656762766528413285104043849566975645017234665031485475181155505907084901284257167075141484799145542200773185153818234773746645368507155692750642599860561437240909249802838633530508925809504261393325619478360857558029272673655478014767619759568548702029068957481161573859358359269025399429896106029904188449904804069353847771940470005951896489292001081004649282561335834107319438362437510591115968536558748027887324607152055979812709591250122832246674097817477305274090643862536197852806668487668521769474683548963831550751276796162383995493475206979636249129055916738229505899074539503871104185702719292272780054238327005511408678627874668041151425426697020220999321448511795445175276602734342827196539484280898262865200880513479978196065231239889885772388708763437116365000456785202897955720909307510289037174716159171412333528663370248253918791718724665021677632451155971145526068290464565488865791074867096122944675791403419514417455103714364947940061942118151651100229390962933173700280709456448054776330345576109779509411393707074300241022832151232037721912362081187568019876458222769197772674667270892477895203435282265041299435415821427953648778877041003212310319968560659049584335294203282576501771157914188520426327575282110423103642760948158517113642290683791254084574096896614884243048775369341975628062971618202746401925818286597203908121008867969784032873696458516714846897383325367441415456060497976595069520248261633229652775765629308708013470535665623391560293564400807304896904600880826978398059116370657327059200736877919892074232348887225928589745698716474457616817078064419584348962938195398336683940306584177728089463721535480225922465596498543040233410139367011392042935928688662211721326628189704372116858192375938946674523670599314832564799571613330695375457009662073259893315950983081193051916901892752043780452946157468593655988231487354761344506902990948211141486901996920519290998650492987750015877107953295420153430045822744551180481964147284492630533592336523707908896220470637756475159959874980977848028581408035761605274786430628555222990995938671222195942416573422012834496390597696385813220471122208007702554014963234277155986753419300961924530672234294080652334196647786377495542793707796914726832707795494306333125332369721090246308105072971324267519719379409508866359889413029892960078145270515846365596980127050419521258534791901367634492263540819165649750475669270048652720234452555516674467459667274448189576122695950463833103310880253772719871490400428164824124659785549869076133573183959006266989341311145859649440445315423917201747077130687071615432446189756205633578835599331483704653402038060073451283301674632864249588121064859997082705413436417372201217037222353265771543704972421455996695191946971832986055405066998095306216467792801565362932104230901102489108585415796293383219444764955567726784789669660015645388672725598699800163011679750811036536316056712418519392041194130359771422469537804445131311648188064732217186664629816140001759186991790243578557424913696803864955132865656006495087106006679866544757917911895420177831593518138863954012167625152747623934634124646903580379693088115498936831490923293755085827198942228097555407247705738638647519242930877256071692775501895472440831306814139770159240187065346476502470059346627342157953208421206765270380206805814445292161579974520280966028379524618234463820455177650220960054864210660369339213941470981901590335283841300469836391112761760404514464688180866314439045909047841161248919682880536143777426046956562105611894653024378766409792493422236075384559065023565546738075309477149742973362611261021441917430040599889028033315698804283488235723263704843951837606723375101459489297791401792811509906325207107657124861560120617586433171988693367802963470104941759405149517382197591002753311378581380550420436806955084314176690533924363582347294602452371526325487569551798626574067906322176048914695327704741356791420425995811929125395367703700442722113243566500404620923597008568192038437293847810122968174000531718745041306332963334312659634988879649932012489787620762418886953900360623378607719124547109494117731011525378314089082956758391675406049983213733366217288409400880047817242487229831494523587974228317107708912607215081147316909921984854558660315042187582307308265987682196723513773053274048246921046699431748709601259640157444055539669012020622133927169249622992746281506809343805830839866066855742120482414467501079120342811415986089913242760972405086660670659783838574455691698509349092236234183809925516846657989604389676990405982029905317907993169588699440565323714628909280516781843423695527648386993964521337867329350043451525772243457583608048036216367988271918195448552246752694335399762049086350981012454464413424838892444083132636956086216187970325227416806817682975751593957992280947061765752567318887762263793362521510982641917498237936875025245627645594479817749791292474589860707571899878592278542550246080439093245741548722321652944458902814829839492582074302207115737014853447197384227194925158212645551756543599441801913151435517341983596196167961339112398298862141767328490124160404558772887613001264192701976687822940616246886482364845915901842997934121164298162281129977020787318160167435359132723314205034901845430051831606339181303390307010418599465764745195108319780166174104145422874560266621816085167002367768611378580197944678763192681123487892307003353328529595297848704696606567490650594627179206970442580280371869058953350567277027604909168998984258829122653055283472274049154495434755164372653937794294408586867563631635762763879384230219596116982205049808273189941970552318216970142909036776191636187391202089021844904732771100884048289974480530589581502137272656112498991386504065726394512880437756353001370092361220769937689345299729061124296629245974095525280953584841857781013749730513602566641568842300914128562534574015099938412693407902014593228907477364420530085035549437852810099913934569068312017863507344283882590427862021531155939979639626772904225503658708802892014771860804234958911189674535698614826323480756386962586379377768341788558415976525422299715560983703686834679153234456844639772967799488429057987148224581054900153038658480703458192771538252018093809527075165302355254302064524404747979594111567248899745504121267274610651074917558580976701860097591692407335869015145370850054569288341633581896490311763921091646398191863338432119260604555903336228333531666157393152639310869690151623377909731529227130251786489843815460058258504185246416753874635502204497529737028410296400571212366024104471605423026653218138211699803601926788590247894137503344445575721181026055846267148464351076414094686837415641044837947757960194737080699603452417628705766618595686772586467005718658321852921906283889217040583709285924423002278440513849024991682999466360868278711218844166360246282314345983044678386310389795335316962602431720103147950348792925818142882486789148537574193493384397524158818412413451346109415465464803043443830649990469075810727519030702765322260384215082724577859830479447689178902006512627702622958642739507482212371113494022500704490013268646655317432010978770697768238335282240708347049562778135634543255793902096105168023055826909264232482245677940629717096275577037502947923589821986943082241736022409484437197318047625577216610073082718131621969347493841146778934762118308245428374980131276523272428343915717445527615770135615637015940459192642183304732225499836913439429205462213523768131450135275976395523343432372593212974179819111334262667944921446040189548274777772312073648390752650898285369276458066245643163177882442092779878852080778710084463425325373021191144816695152066046522853654154582892855921967195606583813273267293742339386209834240773225294642401457521192228188852600083150694593052305738700935338405922644447244392414997128990437497682832384130679732428073838398498654730265895089470995309874636456778536572262984728176606337306260448522012141846862590374828587094951872930257787585092705274808717828623774100799474088196795894844555170817463232730534984670458457307848710304353256242143295142076751745197594600826454381769237432343039158914974771966204533867925889237593166769388284310204025483472999471520038134020722154615565921350733147015236560614587257188053963997238346356389295800624406603623275739129818021526389945503065790159124674152212826447307146246692551208562790509990832857536351621531788030902166596872342165163418942952343973088168889901997248104677592716371058140180994537660662999438277412532027498068689621367494766527457004243035099755975238500734024735895206878851205118388919766089612644415108916134441591456362000677766687728512040676508432137871693681569881915450779820048019485690314544405328747758450043668873307945101945881741399447841105811471060331380240684107957738791215314645144992454700232798020072324303507565393438608911979569592853407516034645387697182601579670395253341126230548548230798086952779083307317340249365656995561390623944765060151512517854245050776120169023195450389829085859191257148453310465105267356147903605367804257753937408387261355145822857228765922126495027100310315451860634091127116526132789788067287801101890987720679577418797401648438910228322897153560343135791591161207968570023039787099948829610575234397264193187444930070548642582790870608402274569839093132522785109347203289287661852114810887797832144370588695949244172129144797499841116651041644950605678249748910247469992896831025999932205246610051720115041420239772816508959269694613110586271449987468300951560999981562140347608791885798682392174919598686039067859184860629280527815018917200982960864155440002487701194468894467482465443815019820564825648622649767356543075355656613549403127792131290145642093126575762055957802045590733198018441238652165853785842428246629002826547400740595365399077471089422549551735312181573984947712770125672519372427315440337788821399106061557550344266365484804551693330673452470457024941551018633130764560691606158293426920939676172330435318167839458554614699844094067673872957562167509023172409420518432475319543160575489897424739527836367353509785732789604016768904558809870290512334971183281593416500649878625331216324117127747050870264321681831569312405095403217382183283925088103925465176473966999531908031437440083936482804076040654604823948686530207951148197470598419711142993846137449694869151666693506925310541925634152799856681106727826351207143947128856494446670148507982444370717519335515630505840132989048187353271923627024092058480979278421469858230579531450881245364317120533204918170146123395733986887512614026624732991749024115230932921092851914900963313021038898439883577657739722106675495208609663037438167138135529381185501681981153531387168777130239226591763968908710937031510293136652411891797177291573746010353873529879438154536353887708357755044190914130635115539020345154442426631650409650454055326928667584901128343356416324209839274948082039657918540138319956157844703923048153334099249076180071663852314205073569627621635290902042451072042847727021182040121574191428386449939248095238357912374558169145580751409833852585333859446554787070058204761352667903751389795147916931794831863078958741255895843462917467834929976996500847193275952816077825984758483391607642911402290844187160487213393196397719082240037748423789294163176543484486107401619971469632782329996387156776091913805135310754320874418566473728206718278530740366447185389052690323422198389969399748358423958866098126899647149688486187053519900454335389806487581412808581016935071226700180910823957775291977698279863659706861674879084854814559826435940067164431803663016619341954240126324821846668057859645452501480193352345695103642594564099696230519038657047462337744808614439359615188571287951618257085084882306043334083695323561202142141992200991607746715514197920280323360694606974703045938471318958733667885559331139549388988022565947872750626222596891067677370055012496965382528320703592841521479994411932665135838362960183028151278803186466867022554519659638514793954775730628292809185894353552000823916830835889485449861963131699581680543359056259244545787309158707034360152571606552064991689604939664813651946876585455641848456548789470146199689815784019388481968140025149237205075396841340113597039794949079889489756569983091657785401968575270105625605197525799686945161311878166713145055041068207587981333056029764448019635494264840240015151858169341092194029851827603727211451782864665583006465667331145245648718201869996248668521249958122643486013703238133379290952367664197255829793342727556048632030126821588112133585151474866222570969386702126177402497482920594872846597873085200347808231662915009852571399439129728458950924982162476067576346139997918887978128392477434479775670301157664387323541392096997868613375647840333283956397573505462639041813642096095396189668249932583671184052140727735044581188757899176628712724481818541033040446650729498194990514230946479496383615576527486738726088517777320734263522748698203345716466035175058528054095879895386644933877752998547372102755723450296766126134686300720942177066535958011898360078067661555865448040560074542480830252767866018414289541732767221783332691419949913999964279810375496347853961463216146494806398713163002676552299929769310649787939659653014585653601239575298543057719046225080988442245667851308631174489103037983053339831805738394894757476928287200571655035280860003348211398756842388400837372482826052597264044559380367750901507026369953196919135545803034615613805639064114451261578574967953388830782104022554846285929235570954085023959923931407319655488827929521697023989665524891244932892924363964402468706226263990568656582643219157269505436754173574021326121200391693502238192375559396528929851310288594548694102351308974522150136334402168129955647065926300842567792780816096725828867528329921453860795225805234675233893196219813113693326804491704509586617120434932679361683714249194680357519974432290142396182951112372068008042725328791135590067258633505975400641750683361514218252718992548284717981618276111539359011302564623427984012740098663433294017712317225946149118172867292738504940403342239065619583331030790792786505699451615983303790227366677136210872604367778761949187728458105468672289841486398934184668536141939385472735220755050696907967020544451977480514120328058762569884226871022018266050453193821326475537483553913876337552259726587848557127662423014579453427947894261308985603755235871149088402951526997650623501343652910304678981083233346206043308273607614319731313076417836594130353615163426585107918389663352307588674715102505785175292115522147207077831829829458042399367841540637223890234681950424658943658930026485161931438242209077422946086105894264536897167979262902105831581773768136206901938184597591752681606086927831301088573156897256373091365772142957132301729323257461994812765643697273104395013136464253205373103206426878542466418698173417193693072471550872890338216547829726833561063228160294866442143573843174053777822643604276520394363528699744132227429187873230784542981701379880952877129029820875622964601555056799516430387946349855129735994404763323655992757067996570780313070601113204044469042490254252842580220307746668308560911626173466595989664230169192825747145611281060098046837871105212981662480386618483423148019967735075701169554048891634076349029617972748717053103662352600786619145739164980158788444134142608972071979967312630340965664997699110201568010883706441727349015890484315676989421368641417702999778720215387940410793096657199768884167409185163945885283044078446215149142913737410918002069055040978299979754843339579944977523387372326713484763035367924289518901092922935196030271516864089689852538461904435793375101276173640226388751883276516198348940837953613071418273009665265367309411949098380680285420508216410324579151710191153210673176166040021032281322329838664225876251820822997115208890181922985731296597108707383415851272524276641359633484849067865685709693619752064046300756720592572674148438747800637778790361618935356779965415522080550243730430433211220294215796084244636719963620021742836920211936788894191403798390738352141184898187859015849312252931871539085329038212211422206869517808274507308392465564800006029335432357697655081961303703423351929966039899358610607773051004700486509761241293416189805531609488636237630958413675459299006344421473462463014810153997725240269527690856381674493319468160084790752407750081431087909227040081367822121142278863295040157706143707683832932903493890098942137874342336701528474404075147244550587434187932541257582392367949238847892173336385840072475404284859713053209310717068141269059892457488658845106589894729532027848813188161667157288430575474151221537105667957421291830562540417619348830142207614855052574913798238633926099070734026014263234444123318036429120115767591622064458274856186068335486629406272342862028970782314124179238041971107751030565253461529009481949203639414324221101581309805230877683300515100256951567562893712347044420118297674022045308830969627479714775351669844043809370111506762303400579240729640089450311144584090663445961316687666693987732100279892646447005797278348600769132620320091112595040278252670269103840418865997672443330887673519461870438574996640565480032107380432479070011314207382124529473254252454535247861773076730504825169258580969916378250175540788920117961512026352742149229023876847614913018276974518322961776760515676985498707546027110097870295434042187054396564149559479171580442035909104746079913495285857220292359227230006427159259345213541950211082329855130655188155573054551601121415682046129723559863332632447255980432128731186250460608296937833159318410696640973817477383170065828708841368409357002281023588071478157497564347726161907348823172193751713609683864224392638815093312443133889772957700067740578282400532254334032980350474846395031374896308844048966797044474968437713948104179179948612354459897579714237498098564428762770808844490563651554574640492882570092643743769712195162799408906068910381102453877631477596695449969055353456627461581792831081575908793019274605994820757694267337338297999011350986415459057789106364721737094181639154707105050619883488502692115033900512039765890908607965795428636166222661858951742445329752908649119267347505874127171676425919743998290115101994567932992233527122672472698371505387882961161035007221935068699475462750589113077824363164769401332402342631810643844849394132457595635718324455433902252187840276777004445933644315757733860066045201429416695167889682725146781619201498297685031088955632048726497932085093877011342219566846899042537101380724964698737568600017988228931101247235926545053390289539613619544692613772825618086543157323918687895155525111880741064019023906555617025453577060985774655024002019643344301353357282625897319779875818326144426290599582533610571410468368638274542245982850465856558909781587605911639972021411140891679145891058298601261324412864225550248494962022371394120359005345059116157126934786001431175910875478724645270382632367932880287886288454004853126181771855102149279499658169964707317010412318986655936549814409634065329729447068106018435135521278858599018185877135322214342222064537788366325422591772550771250299386732761943318673633171767996225541930403226344750688929522670865049665075456302783311392871714282566280519154365978963186587726042540181244610931528651330547779711636177148066938552133398997956627299344726688641509896286978043849635910323180948547007441410945511885679863913337142523943569670421900735576887679333904484430111131966454915195742568642355129916400411234448292962936691962609221585847514377732524757811366953172160275080749284479276847589217178484702412813079895953512653532909717170938070341382613981383681583086670694296356690657596393649386559691072966286508496654158454485969301825524036218067920784327566796900454295436147556742851100214893846527897654364564516541855004416962108917392365189695119220175013737892597207919705280705960854389081818003052329510335557497883400585298168228467281098821973872927190733777091864363019837491571666237668325350216153129414543136316429984933549011311004612598619287318472388873096578831297075873945740654301967884822287974923018118467188527943876440922217062017876216291076907703229014970318813850178639898153790842957284964246365684053997112845688721326090016875991917731619817186396705133125788950931771477918523161878722936728975442931410503273821186522808927282404794379838740969128240728873003516813295266394360735536651481357247925325785629907674762217062975125799045206862971594375199443320408564766159905741876634245846596422676217336300308355454506002648240672839729257429064570728499447154834742050620311973831370674884278058597940747254765409366354002087789404958931248989110110444732057639423381075115292608548046225548358816537498471957082805765107884323276164470583945654030930228567707942306328803832804113981398526351023771808863626935906015463067565980974654749454666681639451150425273025889906525719190441756960644825129013125227189767197658952243472770256542728170411282747684224222206700921791269191432688606467183211010400811462403832494920047035164000762700997570586526716169010551137857272669675443504850896163994219212956991178877861525860461057776037140720482786411167002825846817171759523641759768208745029475696305853080029066113871366060618361695474360671724160295192176925101952759589147984181245404281749235974282030612640554026891326104701138037168828016947734120017085177658731078832321170786217942695005498245009624645596805288279887411665020935089589922938811020426048760856063333665029090937461774057947854157569558415077029239195696300617977063121087682867926950980636315823132917073274762991543537972808569729850120441375064310794798284630270555177367108252498113676870140785895288447329233702004250295580139879975642490189348170907479692598492531362687217422464280454279145558981890468119564796996669242665492775771996293201731901313149813444254267813807661334879831901717878860807081629525964408739566479239164197546419577196119256522241867834720768003550030306208749101186054390593403930859166318733280367516908257423276371651808661257928024200566756063498878777645540472101162743330827149430940516520778761805234755285716182984996109884003640971732233631416231494108263280559439219174796061961102899354193099884923452397778469263042854418990053513810080556666334415769372055291213292379224817762283917340454609071335890847702540449666095981340685489222851226168958634825687528729999103720750572815299585432907980922395483087316774646123902540924456308821683163501569745705939628385990069894649789031056971406095904982294556529912852493809164560755895651156852783170677909697671187444970335277850585803479376972233380916508855366894936458792819882792739597998195265245806447564948144885559926501481303381452566800816228818774767061239777071066967437769551792471242063653348694904548809487805425515939001015573709497416531180658339578205367724844074297027395049632002794279188342884065073403035465875107231880396160229280156835273853868167980835476257894076762650900660829656059976229370331698305661613687406109824266945118302397106789909775100453813660703319304725947628030995643124813895144685868985688503356263105477438472277947956871945449415497418789675359154171966016755078905014224127244276678662029590800741625353393797374048352536266191226680001564081714546175762837210364600266906210626158371591077574731843800503492936167146449408059131317433887440341000848450932196314008610178915380286506799079713084039262507575111963147619081968349937404999324294593318897466039163463979602640869093146533705103351162501856328115348268691255886772895931672562526840540812068018297706224052394277006407587954717909534260953500659688074368437063832797373929957166845833201792341336013828518079009136392348179604121365001535129386567058368827673721556462487458527424407474009065719383490870697767462628938410233649225764083831851255147878444989593106022399459746987340015505231125777093697953202589881415117711209817750038579515181727576340708833932856438880403295702765622315150566456554891824479101109747730314269620084253758890888770611596449409409026993175301776822300325886469742920832193826658905646284341603932602569747199634580675916398865578210235553580783070320746236632548416271907352888028784200981681492416057249353390636483575297472318898120800217068766594129929966586776014907414133280085336961486598512240907004690954933562650366093286329009394894397645861350634512661375394200991031366838866683044830990037503340285215436261517834171227342940590226916889273953055446249941330678410772270813997847659360468309276124483259938489827519540503586148371350700590865940305667872504948384164041825891745682877150796824594696855045169412967788187709396952138150214021303859537232225705379124305542774875255841177914555809831818043687004040334365671705705081237405758795962098675277496135335214376179614962572367812951977701738570441727389875187900307859839666308169009411858058549771885356742422091849116729713912005361579737624452542531951296124432161923710039993045490150138471720996837958959910497494446681645946555457727033788464787156306547350809379609734469748544047056752054058051332586468028859686662876327913327660969327439051062640423925476250688560224124811806238155969767090613703544122587916442916267887590320821259342773814687468293053711148988476555146436975072089721733610598381398418011115104164002250292956390373179464742198312673654288517649662042573988575819280255677617089304076590337714147734955917735496232635292824864197241251973004658943165210467412124627613735113561719702079683354430759309776768477729189544701805793050577761269447806740474680383281994123168615499509563375406967479096551963906537762181873444959367679273008209620440722031068402425249864819438369456684218802957004468693244482348340295650243278656030732294419163257790672200434240207728987528504963441120189735732758711137164566400317135064929744535980148672059041488305818351917321358101393371583739280553169832336339181177304524793755681602497757073021894979862686186357846407792729599040652852847382180554624554726807534311535931952539163015830896792128901857262434337579015046808019751611317175823630111113847374648046014224065209774568725657975581495986184348369163836908059022867465001335064463028284343386772400966406049473515942586106558856127830889111422189728228057105599838777730704346630816107188393271434892775625122039037500609694415087862388482434795947124063884869256037200404068180896227691520120165097635243869882656638478434624040926290110021982660671709824260381934903720095372396375434603516162874207665512586871455813262519648187245674263367766544119370745837913449604346146577716274670514440776880468994948264256836783186722224053472630643175597941606188386063878402856527322687769576062891266329812588350752185333255711803541505969758109540493333795602060723811946197020658731010586467157525384712745268078343014543021854893182639464620946631454922521388132737023668108261025740967331992128220210108590367515772554942509855134089513254110890123576837427423565222068024473851493844846325368309387276569992333180354452200633043571066627019916625059941288231305817663559311525033692494652959913100394782092220395815352094963900582173116593399472616968163035260432302052630401828080397215106397863217394705415465537843476122960807797192940616617786207701326459883817263156976620597575332477794906381049112035702082069429691060825889457753298633494513859145332624679708108792697231033208446062390147659248453874919822280131495848524629995072000478802569936595941980641088219697434591227170680303067823186413715207558192147310429879820772094701361477997614290599163312125693359137025089748861682464614007213589625720477269931732953643092571594287911647933741308743861700516548625755540810753928866031941629720365367852590520997099762296411852312280513336426598966581765820612979257814527360657271739513101635221785669047750701541519067699685132282468029231798108932660691670240842756834928202917045534856723853837795695298465333340249403439594334740052035069661903995189233409421528524401933883151183902870163754555629374664718723740290637275688480831483653213456615109643587492659263998831505942621300159093996957032493624814804817101828908596021866365641446222544691190724586201084679215109711861048152199755266015929840925297143400213435162093618868756404306083111365269535881422046949898930517588737324131995189393443607637075388372206850444939032196573350504317342025537650825374239364535277885300080242195977581439883051618274969278175250635689987200977053154080837245332822717400357292811385634026265212563180513472291437916479430319243967233073934815854209028169675239583006936991777949566027711702604080951565554265514948331752766301978717570000162547298774022651707146971562668165068500640221650544291855908090092676716296918028573541002589634620990795811609679875361838867991547226131921335970536261058988508100437982031182666304010483305825231830104011769159298536797066310058090623448377138614144120601522946879276955524530508926175830737776312530047045265439356797539220138040799274922130378481761738240471940474849111108495708607785865051169317552441637280796147747591616404159539484615991659835982550172636502813303384144321133430078101073863873494289113543697564029712414800655909579999399753543668393793093248180183304011479787310086052223248077969439830725377473616643157611523256325361565050565672695142275407512614024203605373374993117099935354247955160038942069250680740753421617787452199615594215680824019103629055989231615017281070606689268052384410932108127981726874839471889559374349830241313783610247286888866683642817586223983823551267857332812009164351905815690689452974169818004315844885104763951319675812846300855525319502375755361852594577686533332360051877358129197910523964766683646202167745333686957767584710149597694853326309081008581952160776217563947571035004298210372197453721874796370142399922129633763350103377444741111576947403860784924943084717449639877888911771503545022135365661669656104950093542343370165814655023612262313729903095928647162842611222891984683534059458658863869716992816156945456401232794649486082936059443048614419739998821911383637674849518064652547313862894793360216282586680330549477210336453691788258867126271594960187141135343191852581448910538935005922306941726179272549456253968903534342124556496563417144643777101273249351500168362938701849075063823764502988069500014067962887716490315637418549653519558484285921126971930775123830900345585600606892433337166500650045104078534787890690155124633704970187792583890438129047401047498691201761100410888383922654281388355853480928256889697835486533929798073189534845783709612467032824050742281119291167355304886069337846691592159651221757880301564425166101112756346269901569848247864194169419889076242419503502923469596374748322488479920967018873905051138835323194168884338411678639633607500178905901669674689902549567731446521940706362538906622139183294672363947687769113720364892768354077232200143009508915256415992896526519259307172542313381606437671327240141540199594343862446074851892197013518778840155695307197328374452185615130940507673217741323468486261505287969232528120756933574984606950501812075301714076674149061219229070767984135790175793248795731130235179954695381961543378912088259533791745057899262840978146943931312903054863846331956266711368509215780224412359076646312536264829379793208025755511324090614447208448631646688963263780881596119615497925990859389534141691308435725026955031249972717983785092905698580361031483536516498128688164249430245998853388794602415898901243283784029363377428875076706986257470667942532874832179554864318683578554782673252111060861253687440814385286734850651561837980133278347589429385050821265965359968410401326337724710745200139289931954357852226823549067048739269787032188292921611103707111804755009344155253720345580109494934393889924863837163953951438821978581513390760951953041405454009469428458911220314782900595264003754546252245782030397208653691309067038436885397616317500271712855129442782372616500780211029454235898613330943191859489016704053665052065494925800257693994108688340125850155748741858475813118722889120081039644031548809500849413733416206699296690180013771600916575651963801037322986223287124727342032239105432239520952957515282250019769153027957214304986952915635223299532688637313445795682742210545357075654951109165941687876473164636004196477199441784530930221373349117476543534521979804760544258889048419741708797857265340961647082906666962718644170137531788271974702068380808080533008045408389586849269889157890186882758061855916357205571701802357016317570431703012961633541151077957568027785383868954709188552829057695048922316406472182207288970789818178860631143518618724116383528836009136851316678773560075609934223466413052954422606374559693224242366844274059530877460540168840811232768299922436784141798262060264665542565772455960764895370822525257589745530116510935469331322657163298360627689419360125025247899239024980345879469948611825341493132153736345288882950765831387489246454861383590949220366338908248448475784954099305446030998513079069806656519539061692018634818384816872057511120576091084161112670457833449046797842696294784998362557443354095460970748890613258093900113351408872282410766073142110127319842222251922796121867466359453226545646412454047532750837499677741063575464371697894830103751177000728460456061110946379074458082956143785595493138046601697314919045849199594147758000818885302348122424674270675737926571251351420359827614020859728470008898270337958477822085364002426140824263892085458825434877853970510979106360484162852982443087905753526928952590721953843638511363344211416040606460752193529358735064717695640908845331872153045055269211127901403051679716477891633729387985446763755829378000334733808077928716453250849042452084881220975127945943191346478108805281832457372766453831289978376796271422993628441940564250172256735628713046178237750865998854544321782936670151773014304982775109114954450681064374872444901631780011808426910792321891120587424061941677808034439095780765124120026359000550721766972204069346491649866157562004589782491251207004028486400570647859482085164136218536895267208142150834679503800822559757412843838935564604350532570290705810655537506379135301794164720097906487173488281635395519316180300729205531223941271862633021722068027585399559129997518598584235438703962846485392673103445905183100836334504085151632989959603309431391015943582361067955694213290871095647233218058269233426532224136133705561004188152146141900533276558027220761998826827122780904267341449892845148067193832901565858582041512415634694434660290774426453055954141957422644427732263184403797615860547166799324184230799300716585989828935721197130349563614806100419418862603675293420498229419942602842251542759323561649639273811678697252608212244377273391435565136258675948820802260457954118122016787066331083915208283360920483908686038176149606804499584300488205597566256577930590227658406493321992817884379154558748653859566850048047281711594808835408426599152323279800107015118049205665542630394885617779894449059145053055448260079946067710179276873335800616542870877569557415543646251700313592945317791896231356030453095052812838222377666230464549411228881339146438823987429257563598680391915688242780327974772011961745317939527873450122126684476884201806627861733392212282397526492827819253255570944533412018110104591983575622863161377058981828391625444962497437169567911930412390779428217333898804406147683728030492840296709938097310543683440186315388069819025931639480751831957873293766098613858689741040321872258691542560088638452901732758567977281628252777771595375764593170758337709254650652822396309253764951551927044013880191907405038086101003981618782999338079436113368970544718855812228461839205877608517792527059546837750352065826660651505630605236467888602619135847174202596020459464649453797281745728535195746984018189671786876921617404873128258697488778997404034036777640808005801793111082468268256589720366154614586831963148949004713682122431282302363530303966900849493798674729781469193430917758472684495121427608746967360306701959919043300229065623488034419791294069707416573654997583597408915981113118642260095286703972964140397442527239332708835340866548949125426553178098282452926841056355325290832717940103919622874731753644140348561563270775482137125446824193466862834990877473737870692613457963313919319674080391775403964489601497950774939942189221422131911128748923443687169181470103779326215371334045437727183494950690438494706937981101290416532393878721584479543708048259507661430434624237744849888018871305186517361340277381897996588471237509197128048762928137058662111542972774293025048954505200954507779250356515018917305292992363268589031303649573922263950187110229385575817487496387472520057351994902973627064788015309541310754661677068935888865503866080997839492729306479120311476349075229486860407415197281422696582892002446985138777642545259686652162994050639687384391469313367655319965997949993534691286998838077169383332156367164951348956397049165098542965031980746162268130527326095511687158790400358119959286211990332017594416465618606676434592329416898815447956499123898685217136235525812337629274167786500656931047855841525895635735931565060726403529022345120937387367309912067991851684642750516547974996508093431893452899949122774934755446382441562215148309506062393078636264034345070629286934600253482143111768088766809614985957088497166647946570893209323535561715732512031874005893736692083341006690462390426758530761196885104279109509108452724926048460061691301245746851815480835027044131055036317308849985330512726312460676318432731923835137207302819684490220746283961964844476342797634211232973886121930673752020672475942530048913601957631763051032648262267699558369211669247492856904506765875546469583294109988499708030833638093193946734230013575779442731857926544431779068983846206787825372909008960396002531633872606945390820854087351888485210991157270390226441048676632155954647563249894147533998627159244586800811056105927600748918299861897258216120319062418309385778204190051046241166941249849171894311006891713513699906266838907583043162408525700894893784464814800028480892457075408202500467413730043172715675470819032162988414473392916946989653397884351749168144069164828294906531981146108222959581104123337202269076409464071191237618131152364012677155392221730107180752601648579196487374148155622547131618720429693919181641267527016805655187630297941659374855952882979988219544419780153614890122792013650597067819392231032776141135332997523859121060684644792109363737941872266015030456876981028894342000518447878159812412071031421444085542425394394520580453419925179185718058105270898963059112761478559704344228099096561994817606375587223164916649474768198868754370841082024046445757913149749510379192092840780523738172097083573624574302454335254194979555968239419920802020510060393400252615828115487910421981702675373324091839389484341653518249671320393446686981344701593715738099856457031487647058659285401645951331877739531458324621775859443189257902518344909437047254374231066816272589489039659763639856513429318551944830496238696924063392599997387851315589278611431831339787429327191776894797833855408498955388457529258279678764390245414168583114549177370099835478866552403633762095885627274868736217215553592049563161269659380877918272091315555220652397083338034136401369338162399127956831159910252389614318541151707000657697067275214569683341930143019281182040039550533514668026533804757280167418692698957176059670496161317019921404291479718739420392642005870215088764277734716086585667083858758581277582574397019650947871725741338949913677938669305380287424893562711541140049084262471606996266844485568167181680324349490742086510835971191491474748420350486133046180757114345357344070199529469253681244589713547015102620925264728129256445522030380493659429056960522416378607744085939819314112429879512535702738988142416027336671301212316074312229451014116894962571873256430837760244546688618010185474857746095216438836694996097355248588530322897857701932675320504337744490107749038874072153938765903219077888416662565853298934725406525865618664208169320915617740800318949083959164409128600179552795822704593655852557814217319369507637323750361673814043340813429078585564870773900598615304265994457136631916513553571743026326175328183212358588738725271082926135461467880144721080410886160545535499150263908484900369828191583895779431656955276477135059766241820579807368081976583494215460324274673849243704418266145150756029311851380323996996177062556812741638216226041031849300494860557338642536499545470063809282351150093957186070968468575768541508764157545848311441770687062606891885284662170308827921608350425959898644913371973315468624463242230275506376008178533197716586808610924781461798042746969626487384740225598917316038670126298625048753460651073695932736609915559575297303612733347287395804184006399376293096759430598500044764968348010229913047105596189570917450553573519000443485369676668879849295578250952540850657299840164096221148068292582107445751717082970236910166749820968250736282778349317147294828646642569380214183505111596141277912997851722702485705011091957906176371051702885401232330941189221559588502666439693758896168898158792377554761488470785186101361541093051257032534689198920098519378347284997106795389355321341726214533501679916237823141596150559096282438459452864038426511133596274379052823519834882298198959019390864004420107405593097424296587072910268234435793114224386876428621800443864343824169540767066840722270243898114539084836473653703182979650550669873024248911177552121066418618705647360550186594413238473679422849804189219980015916699756346528796224245307732800340453844049692527466476614381765403155342379615587974029501942859483524506977344446371922813080002058180914855203463079546212561629188641328336856168473039121881381292248715268052471668870168912503266129510175315513127958086642247512647436442000633803269496690442797194238187581127113367405011084820845749915520803132458673095837797257578482961662610569979829190445299253395521917791002917908343923254120556685268160056601215338593781530098958327230101486506066424390447449800895139450428878643948628117738378320523886422555870482771990893608807582230989449464572933842202970595261949369044697157518364129782480254214328364871347271531556431004707708776253395330299760429966305561873856170002803263151151596223107014697238212217955065040512543406505363969147774003949519937453191196069977971624028448056829194457896880247828463905001730882698743143257559212921869795888183430492818010309687384780100469889236851334448270566433813825109584608528226842945604501537922358169180269900200027966861630877675201595654226089708580616255819817879569217385101879774173378974297616214247354777338674974574621237984027943699183851290077421023467326316190625826397091591329769664107498487124164329724495279241906703214421482932949947002523002129208755719185531879405975838190540533257811064241943992879742038738972802024314523583362378846604981131575231931255744932098611034564276100810994053707878350661014184475744439957370100605216433412338113065110200801728720241719168811287121192488987105044034702443477062544042053981076374570550682674799085480118550630649167977071699156802911774494320726191940908990932292232031311360667676345127928929582811306057535568298665847815941549786693229729742408842158381783742152447401202687446955498511560377218204782170748194530260059623515591094307927765430960476366142100964330380094409470281424471953010076842600406202046269338141263315240229040719270319490323770250682227225267853528242994387961918279366179041937228888909290374675652213712342142745178787526185989380231384066087983101858138604584858306227009770561714815484923991953726635639953176054626550273244923778217478149529920482984881686801159706863682376598103128980328556975597464800254054673237370855575265674746657143594840220970884106779655195624856709296134461299313483448750883364315901329365215657228509810064505926826428167348847540415292305557433353420446053498782649049935417848123823903241247295732397171108273918841663855012429264167160078236214292497269464852853719176906640781214247304086803521601677852239715058525742001847274669668279657536457483819421798397388075450100462754699028388732725422875477633617556477194297914276402771459631875630473956708536605213521098382606972380977743934002127205714243998319972364032796919908455949627694951686191469939635453855476476998735406866218840888516055053105359415387972006314160257640884951040933774473107075601740180489267596480515687386640859224405579810862165617407392811937260040674736440896042440219800250305227195131008037490475828489846298278905875897757211341212873898323409582495393219701939983606203900067501951390169784422123905700734599600376534459308706584769077377037452744759421231703296603516815697985161789323326956923574699980240184268277403590682402580124488592309149082069419659041379831533414004513544686208257893231155075072190299436878915690164684034288514950455132367204051169162980860188522502121079184742382810230725643408926035491254497682516497113772851782526723934501911749993610703422610946456161839051939503985959202426230312423301120939059087355892220758838748218988330349735131656443296969178283582860856046016007862416039754991717884423234444154621207390447418234850870575599878525704574073244842398784905816114778058234634085858218290570929250052348227509452935558229984159488850428712482809620472641120720802223389170537027923722936469470436720972430181373430665837417969085848953363185186909777450176772867174339494306324374660256347336048089106177086987495170341564691613592943167738413681073986844808274179011278010308722967066399232652330792385215176714195765585749002384427232686827136236178556797617252722065216029759454640790272439378295744064774519828185119217927372446654541124185326639772852311608271835321573224501655211922959150851539920133900312830429548502819800853366106493802325505277893137793851511311820920549672873146687099709990484373906503021516691632582715047898712970134189085855331532364924967450711507070580514941090392398965043587450486522130813855998355844836236110703774640069282358555746832346675970311509128815026463937115465889875860456315406471176270651212443681178317897629596922986291689797100726187329607689043135180511611993037038352181178526186741858761763317892400401983011770119002900628700624623407792245680208981972631781201745102392098461879878912804276719550105791829322156230703643196477386907984728575328336258582236017267281127767838051614739651417684706566398926750831221746723342602143365139693586866983024768394879211634569777995469807838867295288735127535312778401247165583165130394290018256961273433180860101009073354493725214852344530458040846562974524334791074352377650276890484743343967280038852849172397658115159202711743109810037870225496612023398936666167397799662326383548534503437188759545315823062116348633293821548085408812065084836031795949155245607877292953807991095999485012163889619371860713436521020699772358072544614021208237993876972754565710518717599532146315922539763211521269346091127811070316938734666594688295426806919942399166694635388438963691748049571233250639859148790239526460045547305647269795886331323207684810170279516362976350568100891436895444344233199534055069389988701709898056796938402910455463891645341529521575828479856382331716570352395904114960040755482555655235280190438288894239194617659646850095516834115601745219776600447886262504522694517480031778719102727632529578021530340752689430916338050510779680384520033543534759889989760208826864825050237265812920438209189726808061066429228513239705940051926628037124570217367084782055077014693029089430225496498737366198955502000756658153382606491400844923790886239786110030275696498196073951636135049001778654961669485233931690377274743325799615463910347766617217965244583210084941023647234868334077666785234926995952907971804245105465452682253971461101508869328447866748298676261254399960789644478488767382869953951918990474205467861190071227825970712783080060030590584186785634329934885598370936339812546097664295852576524074129613016497525953236519642691101006373629618661142382849562825734429064179676363001823483681211275656682735940690930372951464787921714917260404152297489702080168915808461463571763847410149800372727317106260895519792486776872991774627469068259052339477199683404906328372626138781776642001037621329044075306572745215484762406581438156883406391806086323775143667489382323315954670612693525680294891206662894289570160161437392909616433851005539008566666540924156003867637001771277122935635301997013673635642654017796478939228794457694564933070820609808200904553703293837593581832944938400613268490985722852457243313611779001032495072890436252657554101058878056481725813173993416022411281382268005275377026533618303702530107685426135237730657840243908515069636607454649360192657359745391230338631577618348186568419685886314637149896202013003665070234331337073805560813671634293632641229632914061663997873375453835771660607004706576059922012247077907394540603984581662276945129270894385621278799764729751197449886270883030923021067393595638195261714205958305125070010243434014295944355139418934806977642312814599416297633758035070172016526654205714406879900134467641475292771066344955920565293009943475114138185453193111666107733515433828450721900224776366863590103402866214926239730620222229722213192309315308994689378951034977395468439186455935662006472428572839510875671504357412718273835847931881158600484421855090118729317317182216880641400362749703577354738744171794125448358955993559801180513054143956081554328064998045290145274239561529953032023012273938066015848456075156858379920202618390280628636302857905879363722111001320650622072998585259096385986353778836524389445334394496868768170181387328389776300952132358812573882758031376499494433922025720865665913053287013247255411726913010076755025531812077711926072824890264436876589156433390178256719450713868681957649250283160896658858349498308161311805702071418858288078598883194852722944259792634407268214956536971184775250555017493083153559836630843922717724925984402496201152668773220168561562967511688433730664045477150200067523534165761067012238740969249217066409708582043729411059132592573555416278123023534203554157160311759682606325321966917444144125772908948596112212276241243486597902431992489196117272224829491802727108726723417679530252342255860859983021779755746374734686377810892212338143671558816213342896559388369758558402337326991890795795143370763171655493916493594050713572643579023370572609719370949413543016642493557840455938949079306987035502415719797766388204778701239786607869597798922996576412073449605706430054325502520468097839491240136233094305335118632349114811125877330512621110423586791726329395930879305839143664995812114342447675823011518422238975314813889814917261165913857315016679995726641773258709686962154071789103212941777796928490698940245868544588302127833939547939258692994796261986696787380820583748170068436378247999586247009368709704907919358486204214549270315481176660565872931905442893601876282425125704287459665937808512413482816602026516553193771917835640171416743674165457164752235716969252508764342136619059887191660655140505512894713798540087008843496157607298287537229072398079480620977260503556018758142298032739688715394726165037508219447252766207889882364716410211218672725856840325016800836464943284963565209619457977655727656237934610621581136892940489953426138646291420780030391863121603250366877144706196464356357482367100198962351438517572936856367430864562956567557455718190099195992040847502907439942744303126247560007465910232437269878030184974942201344382164948713801139522828450880303568914005939942529000724657602522009871737312717990267786206946676306157291247663706131033456094925683715484341496433736674200608259877838337640695960878487807037419557659159056065085101247135474181276596538758145866281555462240945261327587912252450475276373089600737255210009249369455675288517689980093965120743654340398174448670182233928063084439416173384347714090892668583257669546066739815184743443495832880587048908895429269032315265279051730520797402172035046706214713555032313466126303830576800119276475632673611730774308596926728488943842929479570209629545697281254603205164260806730123646000900948385159903943562243155384282980266627410634067320061557969173276219034379757601331617000969273506153893446592388053557498968740856270958741921965181320014383510511877049666177545964135437001207283706527201879471901310599094193218772085160270170294339410497185548113779461433751559857244299506581513878723596034957328236496845602913278569042007994170193895831890706321761923216301981920099571290920751053575239152238155853745725644843466713464969701865144801349678057359739443229539990898748292095335485844200923521866269810827416392674892709326399668455408786131806436015774477232494957122583717108671290750904392954050911462246524273125144437113168269256274735247805086337337416769614424795496708379107191235313551411231039086997361304623960211274920135016251127506738076969852029563829722917016627748809801555012185562012116895991461284520806890310887399506584728262384031500073195650918323405885427909410683731364394576718322873541225940930843404952404309887776485798798347261063592173468758405360605622844201059758316152371625580123847480078233188561977761066828576419121125088940599048027005740406018417209022533860693610244026526462719175596959036834840943905600230679591178550039073096220901629846747191198434059683410991390524535821956527601627566910831219349419561203412427579913947901692012287969162879361078562572011650156343316928108576043764068427575888192723229938002642384218978110032707969727958878794075218131270135758322278393967664708294500486896895140030354173158689312394238440715650009805541578500325213071603438327967272685129845212949682202862082150392057236909678351798842475039478046039851656722263419188676241229118162390095109976647324581742199185594961305019945394541045316181242941534567490542283214141743073282214765527540983909599046599356206808408493991411907769672313837086727934296735249359762708059722553051439466464484998786999499980708393445736198400061828360469820460745274226222326640552981550963053427282844956913160887133265832707899395024881329265805118818808450863045222174596633188227453147205843842405585928493949982206558155334582131117426897808096934396949021197324308309177290157977133839184863723003429671152001556079699288356995812609609029305905170220682625964903379830935995751769945798216963755004120377609859963354059337134707290267492383740781781376058415151253460124921680616546226147117669825064453570929670923434292159307833787797601321059408450043461900163094579287886084885768018526202258800204494532184865456030877558480960434007553647614910296544353773715855249977909496669268083150598873111435285001107906885599093473999800226949089088387563246782071171939440074254938499573988250746460752626490807625613027122739210143277605346461595652154205972992733095187953218226852441107480066969090621841974954103956065486820057435574716617678260417287876308164664059691258801745523880251009155936468900107877662660896835519623477010726186371062238494190560301108241547550358532330269821997404468975755682876120800497326958009785773738572203698764954261029895550456575530803747806424544098504324666978212732065183300479019371852698388802443281799982987156988945723482928958413405675666827700206149304623127826988606733769552303158554950106995037039384033728504250927821529082927328174200448432270880715541644330351378466580538424832617746011542370723140031604174190873201748030539530825201830274388606279965157169512384873734085581793406871390943239025694619855899408866220570621665950900451957710135614035282697964530808245392262060556957400381894028497096036648783168981909087129685863056986495891407311179418872801112168153807217659540452241839802049849889561633808433817806391939342484711333732285465563154058869902877639005837265489886539246895838503042166542324959329471304204797854388039909557301930258854013719439895799563867235272570122601719070572449831995317778817135205276748835889600639966264230159707207049229602470965009361065016831927825521854299262996003179971911986259269916053982529253157139834480558791056708937392040340397903591269213494906720275907805543688711220473865896362344167155702136216118437749200490776825156813299763357432518178841341039969385264519793826920783334241672532865369313198981660707015886740074174034680644434591951172300829522609439079341931376022016777636699492836177232719699347548541808303275835717924397760248136006609320763677147736215709933580115547034201376162390510316481015844693685664255261632590535648742871333237443960507130354790044170821929296090224612644130223101215550401661522238310764859713384055349922392496164267777699627747112057636490747131858691148496697606600258344790771875335300108357971103333582561040339498329382710133507154044993130662318733203672326275712103505399878409737727382868251413760604265264395581019848577309333945916626783106397065566039609801459626293118637106367222431269345675871393260378528284817373538204080536410878743763308540976472150502588330509479102232165855838138349850922391460847922477348173084059018410070978164475412848008113216757382792563692482652818892548363573647214680471902563291874550916245684737492493416628323634074925554371368303688559624441826580572667671190369469908899030972551410657230384640818919139024864957156224253729429671784281950601648633570901342484160492999132618508189959701771480150453338730987097159526305434138697401398988131761136391950571211470864683494912178631554255349517455416648520141007315261105974663996277083813207717884980774478452048428718903897718849083534830552785461239271895941237897898978227264857655905739857852865932087754553020788565602764376825146938709652933361402293592870475037325218042578228438981432229984961157009344834211925106712730441838331807847778573090509173487958927667320443008332908399613052425313855994704086162878104382397527373658190893143022576810528586888269640395422469148904925517449044536268494832865221274044200682587154758794753022182541490491945339172588798814123111354797561687808759065556690946190702057439718823761861043287578619660506661602883867830693599200497243684436684822532656068865594405950866736695173390608271253025299933663289551225201037476965187606746534083882587354516589592161187037874976959425085000659320843519449173258921023448762078047989637784215826102128316640377202574509971515887772503137156707234384401743928281507319375431346779232387814098689401928654902375955452561871941543579025536822367257827455835848496586928847518285699623709771086831342012502673396416392070527150364919489797694604653668633567718904153361193396586661552104011309427297694974644461800266153528843789728664588050723586291188598923199571761007180829333419580338991255636430902704476793913123086834909075556929011981763025890376520765932708317288753695861420060022340514852686096817644499616112728389777734796454188959818678196034794412540938901803051781768897988782568894176611478802526732475037143411410863267955604691121196926299198206638205990682738028329266542496899029140250038225986549079322076186329593798868540849974560331985970183404393835047388279990592059222546504101620652467155952421065166930747975953565645527373454761972324521183551939414799985150023320565295603448879908508313345341947286450695665097712184534172787383473145989314811871266061528339889433049752442216813232867930787608689371535242966477886205589586836791325647700151436084921869256334453880265731809355744901257786464448012094575267095584373173505646592088958998313136218112082133974644904541325046671642232630776769277412907078246191128030221720629467064915718686156193646522045373158839935143074357563254547135861273892804580673702026878941325659995768509529350691436328977033579957655639910859100779588943409826457836363993122494300155793039053046299421013875580308876779352493625684692138035432809533461974922042955690448402048072838340822112964460095145294482168806489943305335587369402494516237451837100314396589498754250051437062284843992279189606298449334097016999860792368290560492284805772753705550640876981532631946598645867988762942597780132363170760424387988008305237967363187706216412030438368973570517816708684443334725184058650590967623884888140349300607229866658585493702108588728778297942082538258229013352493708644249230107970218196855281811765465165907262951006724394446452158990092480803749533785658583525809520859689159950936372976279642607657929211064682172399311846223588290784806151322846434693288575879942978707012811474896785996488756348286273605640481350241226183056895902763949984746748424133164502035724983857123316969609656254610498473037615469566824641024051696180368092107503851776521682103996691006382567677960635810620465277410324553971071071678711153212990336855507535682074420383204077685040540987467318061936451253535617028296169505015134282527250960387847163523324974487179521381066741733814660904855240885759799285320635242539861542717259269935896729255067835535314488705895702081732135101893837647749617906983715694010114695622492851970519745669333862278326761375824176061809069794133325877850135057962881407627493294759447491579794275475672875518907096700828858608364253014919651087908769421911474235215225609002336562387329840610978204373057819141374796445828403226700247986952737137455867109437768330320595154724742099473492228507982467808321908692556020246056683361848077025551863226225931286969227075314874996054785232696647735626556146288398538859409662765308544855647421598723756346194486383618656393342537028250817335951195619124516857692465240048976997839102753093692731825655041951659614504274787817139314267124078886140830279161048524781820857157849554238435565297931288935721505496147384569835570810864002196284427846930532515820664590001130514853195139906380041664456047514053353351276096932206374190926823016613815871587512407044425723083812111481904470877043262384953006483945022329048358358191615817754291915624281510455763017062794121864324476957684705109202758832664671657680447002153383481735677454552866421632025259462224941577159632947829707002663360818701230590066545709695122252044947453335022368323504917166106735786212076693988353077799530505738812002607971432764667066262868499937388090564634913877327738919031499859910953523785003633803641249050173375855994787540755112690683424202282618972081836352418850225783031851437959851379791835132894285794801031865249853077146600183037391600386322043747567742428675334857594203848495526902613865660831964872257559435421750372757067992210200693817303228287659558922915481312421293482626305991058367652946694793199955117433315290242314064469376600904085345797872691777125690097085386692378210878620799378155261116133101189125070399015254152693461369838658739284590888615996259880640516982915763680734408894577212458289624644334859657579073640315890358241925439895147257488349407185583991346299303432681683692215796036295778975029711030673549355755169718526629886830773125704729645276983346337507376663529389326838455610422964576867267348374662419301132738243490683490019622478693373797731726231515983265003178727307155606583803285373447455784966947316421962416776263868843802592049854322107654662857147904216940312548936781263890529668689772472322040377130737945582519752386513578125222759752923924990469608285901090824806958194484772926838268737266532887124094776501862334239145318680874092658359978938504621562874012246365097691808534129617608665642766485942201165223722599435147255534945476561829672066068611736586324914105187622717383826921198647543474435624767214098641792206900592934167721371928471836483185038334140799317313738374399683109041688543829755723886633685522649016392754505542978857970136131248285977616512554852300876620040253159230356105919601125429117055637625737914917807976701192518198937842717821188186670549361627783219649885548780245039166408729178134292156313958846870409678736576126721225398175103244740196053067268403256544786352390551296942730896091643132050928159586588491361602648122700183026671420636199130740331645330067253647887155883635861344101794650654701330291607834074529404760292946000760522555616850114513445881959628163513358814517899783248262094243652127369991614158770119400409807575475918714937427271863217092955258198885701107644877828096078149168184356018550201476048211097978770305289696897761929358234797672276703531291016118544583727546017344703058430370108026654487230550463662724866078846887571972636424915241639656160521488121349812550209462216415492715325325403674466713030197551171589461846986600412792373054336183954062076407303269028988890266399565253395207482550979771894352072845532859290616056758869406109684258713139840605545082383285054599870559027815814967502773893912624462879425045111625715985114028117329787641139139449756710139782389857275614997347735359242042597444318041717737479532760873662920496701348886973479941865227048639857274041596779027323569554332404309156992439578562126916779649727476537320858971046461932052095755228276740014976352515946910866464563983434064571693267197302116385884280733919228277638635590839749388586561242620965014881950440443830016565854861716156266288398234554388797790292299863037453802287255733304831694888863554902065753989484739996839281118112310722552728668634915668302105078517466918932670039151975071386041239140005255721559434878023287020091175271611022638580162332046806646044056414391452813266662734126609130818703177064971964163164204612228823183744880101547115336429506297969980806155502516958897212898591258377183061838666260696010033209862879845957925099265644648898908583104836590499756125442984478480261129050574728867527391508946445046446599177519370216525519566049844765838459865074893582862075295570086547110163829407256752043064111074087387542764083629475876647263174934397611650366191267648224023515605809022174881914859750999577205600259229121218248867377994764529742168661862891036826576244337911508568942759230295856635754848683545870324075376575902651535634940555375071846981656546687385150025126225085175650705519689836424073228686015984798513621185456103112895456702203081155446329322586649313849227192729167736302154040874890027755335129460905108431331015358042501473719893659294065237433451333967369286415190213222537874493800180060812318350121204209221788835327644852259952026203953385189225487693217982363911158139462390616742796407775134684407779734226092783783791605602359426545187463537552807739202650346168667556858057316765016996109057379905077039447388570465078676602327827804183306148917950947388544664411360294866038914025395959739745228819811624393153828571201672158101285363588387316199164031273753877245935677825107418818083180983170064987451043380717902356103646916397331406767761869893343361991893044230394797432313330030005188678286417196710976836970275824925444511994683774564532888638644900428068909134499498127551668147693532028500349906073576062044442254791133193952135735759980789908423521423702889765046161364227661508234165098117768027760888798310704230371840028200078983336868058776574870232530220232232562899265909892794745466606615478220563680181677717590253476529608684155337419937657634001903158437659343171097832758847070105796003623432923431356290708878653634231593290615255548497016772422255919512167607617080509203905419122511561990899902349162934978792891701905525732319923165516804948511314598886556960932806284796236748738420664743353349178588655909035447813499036271039414835003050851671108273527718704948398441038890117689372685788741645534147548344311721631112651032475200419057861390687485134567698699787069360492157847062016203644521250747541616426184839540012862009582544117699195191384840272012646603765808980874504806206502930741490659208417708076074677631457713881707303552713337456206398638304935014434215520582507853738248147876282027675775207017727461081432415601698515332735477116819632372063298695367008859912337053092275763829197540415032762980807569490660796222529133313490852731060212597817394057593635054845232456209658031830187744390069651379963253752718089043141581589796578648630898184946865309221182122105697605146645160075543054225813463560639004224698880603600630767393855874012826659474159778079199425014494461329626732455975084154328546135583636705456311555071644236240524665850738869704062482473718137769943253554639348723247235283786351913871215176624165373985944666733014866640774487905059112046259105867652682057217121818068195080840720131857416895183768740156369831335633810694441462751187641600609487697817036174833713612901473563919229097804584523387189237193819018906734141921462942567187911304309108083880574585581123785241955258006452020862414743317509005191800343720707186633304353096545480082346726718077276815082089411957550183422121957697036898499260475162385489186472926367698702501075712551479453721411619625077031463314060486676263171657399947156080977614823478736002794884975207070202159989324121428970667680754135435233358660539375158598495567546673606946089577051012999925189513657928222702129120905482941449899033344915722270627740397050230168980356238867254979993691238778914730250533685155199082853359789436896033891545406707347579288845843376924093384682217265113519949095205956010887319540671568088033848867837705859961772311561087763674222901261211003859175527393409198378534362310754922525046194380138737831947784891019989106049565847857915206627926628092205942517242139070909865450425273679959251241217833443066504050358848256812650619500362577768873971166760278528876530432526679404837313567253411461103162704974636305454289178703970825713196582033994952436431033938738514214625847346899330195504929033016783576499581602755332928584635489327414641438123341963999653509061532473166917043558341498943152463717963814229497365562915424804600932605905580717031345942183471491409637623407438939218912113320276122452618966270958442516746884877284059742890992750043944902744340433923579665361005174622288770859288106796719653431748137108856085325010300480666781186524201664813301384505767353454198460024516082735576818154529230601350788227952582599091836923756681948983582032867252852056406648882544033889052714424925097420868101523596844305399908798974921167699654436901428102357801231690604426692158721270012945459048422617995621408218497327218196083766831258226914633023178559220672731973923362711365185902645167603371913814855043003251789250182374677805833319263376929491671871243890855757228272061974114825303629539176219102252071512110039800600108997288058725198299388754992622087017730385537202099448764776887169782988329176102805717984880595855416685255384131281377353398767922266143250373534333311368247461319514808250130248352837697735305000183853833113492838076701304939511685677673934055222134870994249392917685209520906410370403663560407561094758167578345997045213510716273815722876073511485800134842464219319853016777556894257575169441316444949050076745909251761407937731199270191072962768445183288864044183157725076345254022829301763710480828907932473697055890630827612049340523063148577566939996204330897673425194514745844610820353170017100520958529779641284649141031065669018154243249235499170149581073203109314598899411242200765644303563285669695376687137040248936074432478328937375345296094243638306293815896315199283106789032154669300927448403169601028897736327100011696039638993200796206964665754480182679494137988651053172865767325610974169157755195283555512335401309206917147062079239723909551143075688545666394147626909131151326447076016057521906562951731475298364500772230632102096848414682584789549098407792044598698206707511642999171785002711242480288768516704670041684845865205100600876234614471077527449850115488443139373712367875547004213384006326926491016137202645545717003055147853170908232762462715882430981215796446077895922116037335232157013878509177374231918115199908252909466890371563688471850110732272791425431473618445695566938592059895165545890354689768684213127359890118039268923793377379296123966963632134127991880841982156828406349531354110712583415036782734709644829315709445283625198818828812895136180777826644005989820397323299877549095801287823576539614089711811143222273349576065832774876936255191003440508472207024073397362366047999641030254520911762330656520681584269802935549647545170100371488908583724426998518231201924993129985281831459514156172902634670037156876062382709876253531739472681739326751307895393935171232155756255385274911142614272130565481998886618548439407206190749116265700722127536773451141725001921002337038114147817147504067971078245979003761369304358445057235045700537357635208436826176890323443781910757983298131148844879294791627869478712806976271643708458116766088088534626275526004052847151319727891914001163336688066215395851220165587628120385434435897992695998545414206194516336879808841098880524477107075971548614033140974319569062692513429674257472538414099148698823059744243518814094899106475070016664791978932029207210516869105897572411562385853926656955006273626488826129174248369804917678049644820289495671395157726625939156244389062728070383672050951589216718892429974899020948588827203093765616618260188960905103880572376555660837654342132475286870136275535341393221728740376561554583269855123884798021702400080181048693423685732931337553676517933136512849940097420694832840759398931420263600774458604263876928701585490745137537821714314330814935036864417355456438756088477586724102311715029566914194311081008692480237844377991597864169901845329815607733147841172556683747063173502175757320836667315315015552778062459118246044255015923811125521066435946859095272460318184684360601055850118624114694325660518282233661256239269383055417841435309279731807070348705910682125669160024304815758806976774873773275098075517490695582597276200174578761165863737505277522978792989347618781244709435877743861150094134407262362681118900753379707133683878705832711310912016963191987403760148991179755522115227205010866495041529574039597768794007882421821466774721311685021391681378608601358857796615913254889872464978602806099175410322882573014037898397821021369436893220561679403959681175214670622327132949585677858759126057938198183513578667933309205583052834078110958356640722011340861969981746116539479249948450042751542570028017071801862582925300439489841925818843028793101489213782209551847784273295852371641852502778585053852731701617710885995406059938006539395516094404822033527036067149369983016570045750579259246597231265889390022056993127732530611870187247340439591749224089535515605254621070379075935218869561319532544406702398549399935094796086958229648830548772186201140296722071360487051815454117014710497416260142899433572082359651950746646728757844464021588457740670880017869515948241352797305479347146731193303692916933588550105789355577065366883007979809191774461513933728302368739679082600822397700852745165014503523760469181614648000797392305992384556283551031746046302858842115041198946534680185535638845401389426462115528536884966524273945508864053064108129647509040182691303736505733323947214720517480947424367171128352276253237410101523990861846650910989211427777005804459125276142038404127193814027729783758620189650490816346924781449736120592880646304302358168128662642378113347049197996608324484946821255313077415514421907933422174175821692299413464744276131146989524635795443967448632525784694909787306782290374128113366649351006684964177724617589490644906852695239093613176130419131672380228980191711579660543635408513038001250432326086290910042911973745390628016599094433008337779298731130338479344898325414896662870171415119998173979788550484733370186817061076383770386019436446799683602719652161942273926917426935996935379499746440183578596093166718360735785663750721087505930729648858825717065437810037015390520207878590055015759455203347932844137588966326127883545689771759753169333612275313866949631105632682794416213840489655878293223610145562557870762708795360774640758625944066751403835390074581220326826745140796256886175461447261843275196028511467838848498960120816072720235030352816694340044768505441790616798858564872947632637606818481793113108667034437831801451289945250341443692687043830556986185870010198432848465001516636810829502804141333072148299629860706943529456458651695252714995167087829783257938676009155366115064870888284252036863086580227145701276805485675365332572497992588856106086666564135316982044352306676652399306699365251062753392181152031146182147533054948282569215462703229436966161810303137575662236420352288960592192239007985721695468058270681231571052638561192416540517520159248099641102301433939852342816734863940771895799778915043316338392227968314262558299526691150862739399377461455608545088889108957775772105029819749757651583279527090939018287392237506332481122511435332207468321081293843738643703310917098574399011077859234583295942704937495778635529531375113036859184208426792258669662741522687825115345333466694227903992616810908938136443839470305521840631684725867135577045221767225041421783214132462491605718291937520099325093846357080887579399725998525913963866487395570124253578831707642066518268720717555513401122944515510029616782852319166404480927627957153921375077887839441240583922313062903487964495152874071851142852740233257667140938430193802312310586371235523960451502225798429578510791757964158899575707300074380727948781255621494621166318291356473025006932667115354752363812723347323207563049367696690271628479937527911069850506674724406969623277560918135608929007364201034548717197037552537405574620001855890432268652870214212234967108961339837432694349790380193520976872764956213652048300152695836689437322968835901622698511677914446861392885197020166736347542247983413261504581276113304667404880951407619214705336022184252328680894155410695936853697246786651728912392657595637657519391038499078738079675522546322557673902865271610656769071284393202109392839807945970502250813769851611139165491569496199403907625177869505176378737718626473706850301298525694717872355814343379527437493881868364787456129619344472630416252177251857296878953420535348255040514197267075484501643801777302286713272227754811033516003293577097258454902718882579570811842805397198835929411003032813891529141332349607613696253799532251858432561221660246097046710977258373820356011327895568577563057362263406476761669874131284702195869375207845343842795102524299962720117340589180653065360232221629425981283996181874808781267282883641376829171685943585836247616639374601258210485495865070414554358556324453109506606861233089146820126119576101766454330370438500998009943473442537427465512799207472527229080526115128891204170787278839997268365563110010071179341454568463545595198265527596097489615438100135519629549029898402893941209341502722730071876670615079761841904810918012379571508635275603165268948847621671309167017141618650873272896654427096395920285442237691140527479368277147140125057358514393224742692847112759983885789351195633101774278477645680470278740201594675891364699067737871502156526482144782358740074940426876611098049628941211859855148991909597998419555339564321758969986060450442134442898180730087834255803289947655744357398411622606169116826082492512229940708780733570382294078691207378351259439797230570202618099159653742752378176301019259654096189371575498807277289586324980436441348947534619589333473294271738069008340955128035844937708716433208817970939528578381112357599662583480798835221110367817197995760017710831639223203006331101730132925192089056819642189852768053818429402895878928369132229465558546403429156087340261792539812636206822678230704899740048898524308684358977467507398086273126149606639038871569362522493437711714511356194601096642902972884401577102669772784732819346687485752066200885876551600907400744099531188156096503423905508831368036706894777206809778799770523475867848742789847486183830570430081254210881096866738485364844035991236368605804137870135390841050050952666954697221932654038988285098979125582732314857955818563079457022098775718540286358930797752235157586355188417493212566479078746075451876644802206954426264278241537847463667765736864078533681711943622809052621290185018589930370857213632558235807317816980477682341993800111968585843890890748186553567524570655852769785302100767148615649356602445639867375610759127571626095467040322101572588746316336153221561083094614713769932162881165181479561854515518837815052401381719744258393817981957142931817842058800520943949190498528725265148744824931229349004765899776638284249399388488053521352617312741778403323440082349348322562130837412828998939622646619046288982192502344677763316112079358824636364345592076948204553569773148469446557346616240491556628692805180736373542196029841665478211826606661696626711743439227849808634660613345759308588785500478415181549791913668038635159648039296368784531283064736505030766788314794503616716137923793956103420868538909332248573626474561530529566403531011167731490574639814576459852903893369818511937875486592175944378568847543917928574487362389403530851153581953262239915323036784434802551849549223248904035688262975226501297065637570601195054193531205219192738691008590665136990824464217931023601249488638754210274573766680214799643782925926885671613225850782717791237523881231062494552198947448150773782915044464400323340221601495917024687477771348577073748261540772799363531144863916662132985850304283020787274466978439006835571363457337662895255577647844890882970919750516451875970983178301379847218432148071519375834899560856608580511585290501760925419332629858701596955138452078198424218355146446969398097644465266010128128188829746025545674013195685337190519845749356061767508476375847455328367605965932999851380182023324594845036819696322308076976361195219347135847522437013114590702276712903544089869280804820640657823992586666800883351008953302361299123771386195446398216914493599425720960255593409233473197426608396393542128921318532532681361168544733447237769004349408774536583881256935200914761439358270585659660936763628361369486253876217296105822953560568356395343677153034543503925666623625932500329365193940597986963384075155605954745088252869424077194680843151291473877566560350872725245451692679282762534583981378282373318707410769452844535586056882075564082054664554841873681650548001831753215028159690665193762344833081943151240829265338484812381620833432677801714790351977592922513533615443509691929813871298200776488220687281954648449648444690609745146659190967277869764482282291177295580764915287025878174427907667875882684445589171230609623706506458912302715161416009849895138555257593260410673187862206939158119795685903911737282143168462441737856132274974250733097948158796527407058764019043480325067460832219703495705164496317981763159597880930637190547259096313515596832070292128748531001310458366708494560281319108260218298543386602793700512596022457041029576822678966457490525643645399971584881138744712696567992273574197900884269999891101172136182925613658303830836394453477374228335506908585088769026980268623140925808263735180371195378090767808075985084688275711926817950718131794066651123018781547205675584216012506042964198391229462942838471559935676872420241955346161201744726472696301866176482020890683009944603267481185420479206240484541041518871920999850692720405764577259174257124378995977736217310430315871631946860101769415005358194008395903624686636658060247271228641125096064970237122326857120115789876029070009429873091981313616052474730900835768291181190026952926154335812631532679460398960775079605956919052271849777546298572717325183069113505821436480068442803620495469035711699493384586747031671976039789505947298921751530649195446439280446550006685543333066264232376107055032080689957793075748257035397646841593776681904702228807926511986936063755369724817324813708893911195685057160114768917381825409055217282020442283039910065947168489559518354414824885253456165867465133958149970930881857752592881850865642057991000611356986788375300472341026424489913830600230151745334615465743740886149722977842301542559301298380031752217119271160575818626988444067192948113440117629692877944824074054990431461476905762623743929988136343589591142829908878231355548448708156374765185122633364992467218650732702795779689305652073462444065907575617115635817145824431031226424194154981014743593406567230238570161868591977665499760248835570379712877120525071429318173603485990760064123781783554411908398854100317083699194307957221648870321193513945926138322140581184397026656589169833167141610753254061253544431597066727482093911794609894599827683617098582639943671611187312546660341807667976970750403293556833657618179267499434716624968738298944638552923326386852528595242491229801926051857835221549925470400266040303949954697070546159522788484139276635407606042505687057554790678685791672400777867097848016218625089186116595124545162133817785897549971714923280536733004904305815088380005102471983997781700315889577942294746371295633206958001041781713171481380089694258193003226875161506674678052186819466778443605996003182513461827238157039405642740040852466475989758358247651496734758135237229123073646579939047648230135418227122243794698342286985610965352062223032434741852281816459849670873149061578774512694907916064388612788979888016048264035021835248526473921691052247640060750053872683850426128147541096147573858912618627404676359930846535447433734501158525885381843693329156882290969712680087252941676623523199112309310189718947484272697927854532531961789464914967474463964624699752342147802143534463574429917783967965634058373615701740154463691051430302675179923510089782504479234188600839935469185897615471402086869843137616876201288425856621960630321938993189850976697651919562269050193753658781674775526462079928757929277797803710296754595346306554981873730438765532547818545913242285730069968283372909491765424959169149782080573694752122152154120201682961076860221283322894063956716626394185259907737477250602714635854019829822119995828225888583582274455873006211589076249390178988096166208510736215852802306895217651745487059278959346812020153743261454248726071727071653064792155205815349895449010561110796242797237491596180043378481967748516775131336600248672434663897453065061945872761313807284947871662920309012929624899364956945103305798580063186557202432821629998350635726006431242048410055036433169982784877058567514274888399953366553762435322025251261979339374070100871982171678259284805244560434641473246799702650224313163170780046347770321129631798271729712258753746768557292087822538385321849729462266718211948287169223406512260779739665319576649703199110623938332469015616777611753071244536042140334099597328529514089728514925668087427384207280086135386843623793315135034191909569510002141244332081737077451620271049968779533706102621053350035770584283025111259421377277196501103365245242364983833757768005649688371514917816323638398379374317577130161706530147807526271681005017507809259688248343847918200846170716541150332183769062156923427866779129921683327999935681697912070839415574112429612056707371989959235742006576033485738941177434888310031960452424731869786535524305505815128321094347852803870612308427892758873448833175814263799744223160903434186694440159116796503338053109555979861758271619519795424864057632067933702926933450623602420686204718785146796792933001681228791365815538887971696551506080308220266548675844895291123554412624843178653544231111495352329455466350211590597429606784204971611621132799717567727374736664671751215252257925629793189449652041998916554248893418714869962896285108128850155900168502252077973662354665184556801051768559343533315665804803163574130109044622237866572325919708998905285267709063600545908364754245802116695722211298129788784511692706860591029002565192635967708784669663444681082070145916629717221269733143916416782888942748577880924933357667142559566708887497370011033845509418219258255934546292742265901106248087573497045636811010153073336234562288855894037680493972317790859022669976136928358055813916507865460614743989741974004119388160887480638564131621477015844212801912213442324700659965375160850153269383172761008937456853503020558905699263310727710466501537060754476314156529900828403233313218077733452266692940338314416863932819197952052392356929213428976069310334505563553258533695049748159366257134765982876315246167588281066990950771516531768111160010883872948350466812051634391727820293956934296309543135067688291427830119637290910163327015302205590727451403693577253864959509274011085566193487946965530736490232182568653086366349248918203674284719731977564370505668336161077569090722971687674164835816839089460515894695039416618437447000779248604167337710830934266316965078663663838683548617216014981116961828142534647540521222479250449035022499921719945807049131269092042903540855240938355216299121729822855366447491198867171070288024509693091871002895332134245057460136279025010076218946230117237734876883141799859988481576192902782097448632493731451425292596014868520651855855557250789930959807631648025572084888943034893300851954192947834740567924094928108910870068840588796110715113326118532397774619247743596956385867320505549026332467161893230963579553658919529370518680631546849005566364801613917829816866096219986375765658414282622604812393877219781917539870899403199198511988038703340817905627435483548201013039249765302890961673561978560529148147888635726313178238716879614252277782851401305164533003756345733074496761727355237153880720382539522741994653873014100964850389036290850443164153332804834622112434539832195680185085458066526018620531142892969804740993093004797468968626459043155662019908016264465014081311582562530661306808857276894614275898928161944938169450781440971149621280830747975017642090004104902578244882665885483244579102697226761077132136367589066826686579484308124003147200137871763828250773862307833952520320776241442006431384295881507032757556901578391166600121150165535794382342673870890849069925832945131411262174580670543735289918096009316521467708735773780040781360314093116890356887772294451306387929141113341973309408359635916627520047423835724947924126564526877134960111515906213332314616918068248283647580034218071453633983296586449405682941051163926737261738560979384041803852991719520065450838181222022860876149039571121592671436627039138602211123755163796546124767562321126998974340528560976037733028110126097048520257086584980419447348898621489467752302066175882586788241466844681626578497304712801349194477081331111898728335640787353354318057326019991066676026113720050563410408194785752775658584667627655379814698911716559470855921232590076560035545093938993738397474712539240789665841654804198138895061547257636540998016905688938334807925325117958090989387833295566316674517837786649076318022655567441932726849574873107615008601309942979055868032431632427413997852295874479181360103927539039171156134728959036161970043696580856093181081749496781887243000902711727896089094177442643327144965557213527078661437541648842711433407459433590862930273337719063418351748897855469811463389339460005925401925669737220899754502394841701034798735153528613552709571102719468335589624081433131959741624784208503244830672784800727461357327573235747420952595073996069261564300877966967748390824935067466547036799263232321363690250413518372066608776690046908695793855147323998680020803945227550891516059362792241392684528065528605475038004747972176627329757304306190372284716088609799853163311461650461423993478122271771323540876552155792377068075648618230991158858410428471969884561624102728422311542098432304908831730598689459560586505688045813924966460180147707246974297919819116184439704695356783401421901855356666637526402126237546172631886901111468121288392322486080686116568288347819005482737186283543863640902219236352891610558201896136454188552731854143853516384598840496259590132318088994800545676061848899100729978017324396976417313813869218963765139318437106403672681352153397451435963576400507738595405942746937394292150884460648391522494579624694846993491568499647943716860094297157943259303551819793225205957651248367022476060955749650592353851209388827270997030722018348473682350633902402995324491464920983541375614922386032154177170099459256762890348253587687984098785471879959939149927477538274233681302587804559874158652572690869413887290819653266095293732606492243006197514188265009087927130707923500443943241461565388152168219219369786993928545719251444280272906302342124912342469357902848925166415054756593646122606318800228057711437064026956018372102569282244722171037662692418356988052972992041215035516836483258229225605229808395593246925139922861577376394228803283865560668951368065520050117019157876738689739420541431130854518642343232140347640576778905126960486423927979431427551192129043052835596213920011488927900274965328215547785283096037799593763197337463789590790054182079184228473856085708227377614520440445915519690088785839925558287446936032248199541105312373005883472402445423488543302880522612963665975359107678518414581156244517206364307543821826774467702868188131523425258180167763953502480739906617796521097933624774402768023946554590450949066853914621044423361992675245173249020654676072480990141355450320972757187049461589307721292860413116175250442587498235218640211602574823395863554499549307290865719915547752927931200280013629028177964474742546280082063969816318302004861820359968755898832986476555139918024119308121935564189191053766980358890087455032242077987513677923818842671755211721763332090363181433608720883595421133359368916857499827642139340305245481144555766008628717073428123567706960138750906769536454985081545688220197626802187612790080554725326976573748926769220205350663511984767967557829475464320306501264991461195877006839436532719892128043081401483323107266678745276876438492846041017077944879783018080589325281712895500952009113522722609842092938497561480533484985484640732933845202621006487344803559967129532187645760443063801187744716539635209456011618488078802804245956215402156729872627400847190411797510032401837512602842672355617711859167650532146684664614967640700178829910936451464793966629680310174246366234306581151339468507012837062058013615061354732011509354370848124424717857529524389069561474673691763788144545549020873445139577616550173520851013550358169979665099141836534663280555376196449664243282084332574399686395346748759175801797129769573895561870911748378740607080268658698094938601623879289390266271985938843719646819464682769808309530591882288338709583682450767598396304158583858322382819036142894237930957264707948342891602251828833125799015028447689769602691684003586536809796363316039286449271343330418539380899587610872317688239445307452102661123465578193769958343217811422328037593666602106537807041086656778951746497814435238756384777146817812910118300593985319790132349135526167114474930869823009198540371252808954890636143914009792515083810148237832819594965434379320123522888409909540760557600264350021640711597020736985262521445201312661528793832532597751255630765234188100511131811697678567017480301626828879069893853089517986513026093160258950573791692311354005255111625982891737053490429777167563322452112680008485037241485038613839127414920304840508225965219265329528943953444275097673420013044398216514530727707880727583473816842117735135188385642533798498390526105982442597723772933271262550265841206700199593130557372530693384718857800806497581172005964652786709715937923489275169655062817370822642533385824496281928915957309778638220457710625005539913817784964201123993009850825631106912620084110165439029108401555811937156273949029084492577892234357940441163449129479371866354524059545058449217867878226949494502673352792523064947968422693397556244321356298930646533526224777148074948840028056109082311367279325380220105803651508316161595121677015359222197762720930432878687438477745621094509292053383925217078041021815009943891938783966698342175696590555143899822605644067242859802557461244785789001745543046101189245229564273462153222784582961435098935334068269742847809499326632737340423668270983009125214494531423667750763533920449095156983902040028125573508127115604357113996743064148173672914132722416200851360861434109974038319752230351844682491194169594788220818906931097227358664558783803946235366987599132382594222749773294580616088072726425664248560159078028017750030367246964632108345154786101598918354985229368098546643523741001547905643423810080776176964304136970456314667042651536654973923043992720557581593856071807974355028749531508375955770368850062849081217285441339869530542595519482389389467571915360590160342320601726510590220059849493182119379296129066533353697700819352724543530499799313800654424593651532122036127712779861174670113233818454192937145793766020252596775204064076790097235290038706979685466435677850550055990878276678261098266361310352789616104627943726774930939806107170271544325412065591901672879528593833474158220507376190171758426490184145899743670669692670672120390899411667960563795059823024476630639747550649785642497228608265711480763337145406150933804903151749637030646063374245054999833079732178525892555396921379899174229247706396060756141244106501708019236084531179702554973376606728201144497682446164851316459501356113086417117162551611114799362259619257167808643805027209532126461223141203127329963776502216216059965158303125474895084539530507714361784295266592503065506995766104963593210542320857717363507653754360347583113768885010335186215316748227415206094949245372246637315024113922939789999604426820154947367684661367407814393270724850108622280690228458699343957328207990712113488809163549761452422617059653734175223742567902788779786761072962798145080923898891483187906943606659419824384471323285209318646721882897928336758690324476743418993038503513559539089423677928074323576448591516948852823262564637272830322947282899513167680835122052027043994409532017812366731762545643929062253983696027069893202776764875047740904098752363151130020794403299410199683490048743026773455291619673380869314012774650288750700722441748594380001873718277293337735705851113371068750308169431471913960382228570263536542683022400729941970097590669959121426869354680930969969930479837215479435119330847234042810826102036563397116545214352496691390404064618079080571010082898379744470869028156477969151996107752132354330014605123691095865381611224802245163140957249150174993697328142634767681738360429165426971272723846410332380315516154226384164968065590231286654490142537407807744751921862954652616380488350331016365264444756540715795142934586793810237395939587473191759482375806999580918560928296127391517578829402713799109990163932119271779592283172670382498335480220447987503047311342326073237100937207922145718805384254558010158054974545253040637153734557692602026792111913951294643150723396393797948088945702154912561072961657893513740064068039292474624603245167917129783272935567105775519016012293755012330674000509860462506577233240777591654924072491848092225322208700306423919341210834275694498600013931419116831352102885718847756804868289903038982593229238560494835740546831621545929779832701613500529342444882077672800670194548817603874681712003554791120219776957804994747664972276393955699067965129864830267119671011585484241795425955487145089546792164275765598953966617753975966712243673307172331040977696231297041493509774778364248172497172540510911270794677012898131558841163354432700662171184905121403746785121698186482346477725781093895763170679337996754759848871898902225528129243580824370692792725653350407472163575687705360802648871216651532123894637562651743956444100216908512444522781509350175434978185046186578718492994922545219011420918301280763610994099270113846939336958614431056075895013792971364609692250380861252810135295784645394550015691240348127854996420758052856444605789020417542931346824335805744526690595763201692241589665540793693472641895603443584467031327217312023998528457382525492326672607632939877611220527627748403712670687599324921495241628347121917561213380935574315990456216868636469967642672608114760341567537786093062473861616151200477072112929498160696790141867277198867129671300270330648596211111789056738934596692395868280791813389438819887412908658079047310921509058155404368487083616314266724333992966601247911508882748687402429218584672566725691083525557441144740983898809089357381132432508692974213249523081475315826212390196792722605085152358993710903936374365478091859832123232588129278776499041073016574669695780307536427136642007183536519803025453210291470383387875781903865820924722110393870493161623421245822442547977671720230904320726035595300771099724708394987823439312795584863239673460888259977111415014588226307632533847030427704294791870190537511041108240771330106218131692843338869140933556552569274231380776612279050465756317046264908003970993022625858054719576621068308568445901193434726428714085923919765921837675626163028628712043255949617913323158046690236206446952850032700179119226945624332281557494702324102458433093754225985548258780622384611405391716591949644875067819917500120938634358675726532181070036586528797314184870004098946096664307584330893549707377871023570291890649745519769704454838309720535668586187421649268430553046378848377888906110471573385252902089519208763150180454602392175914514016286512907062276611303039338386077659015693824743847041593577370892122939863584914412895231948687212698475332311251605768522111111812705203287390404051434728421586060790429388416289412377603943681449468953306298910459864141997249213061641716967720423088523358245037193674029422942556194495735873751970770227766120634503767811109697333418020050686230996135983629424489242659692730078328883690213543852243204445705739014226375060867365751258690277011380420749293582651275463087017851830917246077754876266374059261397250239528356244705068667460521826769623725818708809586336817962341388500551560989637604482967643933671635198879511657039576607476279165390075055642980174932401526437976645300539088823535817145972233667786779395621756329561920983952459984286547968283962428367773371530671462568628750910642519564591885363379829763542543001878018940755339207056929963223869676429624624339356787217937971529702069698610790721311753159307231356783392142858799747825525391998044106103233522262979951788865844480245315064262608805906433229005532082971975320382185342410075050200429586917624559361109045798798789292993454175001420270702986664784197768221720918219385487643825078990125566062608919919781326188894232801531540283339250275138924376803986596686868776903951057968412659099132608955348371346734466170045718708930069121958317075428721880408469005899003886311067349922732814845902353569711234114297654732628577035692729666150070631463704909630235539985629110462473320676366634302168909517821990961375843318460636522805859775704271691726450259228311942211791094298220568222285127247752658676819083276939688539643370035992892172122844913688112712976075020186220287072738028725551064643714893272345218866725956894904350076960585623298621901371418392807368740519118436930142882403893990938974236239630112105203797057460825492663886179643648648095000490032114080402390213497084552492273855522935545508037597477203271242010146087470735649269603911653531126207465384355989876363846842426205200840648598472656650472547305544893693201563496019727570260936977475989926618690091389593462665423078501060971115670016621363056150713466569505409810078386197055191075599805135146178731064962663911882733744297625046299038921051317360264503865744399033297283226860273328227069067701280632254966317485162591719055217323022396678567447806058345761844092406200266990989584044770268167984565519964844146037468782792763694153641921779131485119993593901750848358720227241448422685190593341019011588864219950445263488982929268783286118628664631390983373259086074241430706753006735524163140983706954433134293415841219794375007527366024188750694609503108734101689697301423843849956348613282139584377908665648083798576996041352201056061897934011297048209767726519588089061196892828550693155867713297385403236862851831498550299404567411689924827855249023088064803481279214071080600349133459024216072888876957571404677438624617082963585307313689875424428831051417543718179707162760408107470404798120230024010328892687623049851868850135443208349065036801655100793341809983756313134107415657668044805397911268319028464759045582460546724797048553378957070384060415876720931840239406040263652241167000557821258552854272814000343804301626261383352875603431490089625377132225470427052965014223207794208432800768835863894139180138846920637809622780496866203733784783301237319074104043200977553317153630993433070427675484381608424408374361173278683543067556908864645762099456725592153410528857025941205008594140310368226553496451905187605919855345022215225590585378624252042353273453101608951845163312498745688180520698436890052510397358688673798122611389574390579762941659986524499837879043320636961751799438738501997360177481402434098580987828525091179334990907331086691598268659026876408624323416342899472991043128465763719845529600147265408964519197220590057920097766878033026298272888673962432968266096516892042699661438555843386707017302694546643234927841049878261440021670449189151967047110473655854763735988695495287804563521071468121378450352635668281966578158801915982731236142310185391470910909930617679272363510948211775722064784623499562112019527487827676919734554718520785298170740101260687700377255873692283986771888241837170096220096505560105130516798454435374015723822411501337215449516925311950722366106383608878896873546022121542311596596308334121320868400279901841285781460332129160213192144819115575611672501321842253358294963842758253365426163970516812361254052878926594396165131998282787584078964148259025862193753545941486877823495527263664276032446337904700303048631826777200249274861014878943615929609842758662618667512439296946634949430878367228883453805500603874237294801647871658339928677679281828144375458391562257740672908195509229415532278951692220177265889175437576436253873546918498039193332488818275275772945677935684860706603656926646030121442491570075735348654657555757571379068912408880004318115639661946954594832406791783996180564302632489712869591592954046688262588082677350090523859908975862871567923149164083721804691140564681715151501703778706603424248177978141989039374864412313065683644600020149244924766026835931909963979410014222901110853961563437378094828320275405118176000111493110274131105311841344974139545747158928526143637153688792426434950804583164858730809599696260551118288427928414053764302631209379785898227292433513186487797323786107170789513566487350458973979823228152473033253723116076144426538123123651088251432285885760306258384860459191683955312737177536635413622926783686270093441415636513169518084997327027400390687573928470789765745125898816802531514433792106476155184701631934472551825919988045493313121340938114012458289554924945695450988628198129621505448963857240088225820664089740478796202782269083161441639605936077638997812177229415083952074123391542275174966005855953380161163350554264816870505408809324443830691474325965205443098701929313090065505455906021046814455687140285247512039327166208479677721567136031091982888718931226663744237275919523097779558345270377374049062469112676699730096848273579527303514277248071396909559476963001502291407788859345172839216284101966786098246293534334818974515076140047886275262240164004195151385748035901067153714533224852101811125137921326471996151990153223893781654422260709012364283163681388891353771191825883009466255019332212328782014071992147899966926212102033623764485894371594918595012747259122778478661788284295096362631307600669119312698889134917696047776272567349075401704820655421997437801453323826909966738836561741725894669311971495575671738955750513420497813612442457062513370154907043400123946016061537493035772871122302638707883271237924318138940743427068315095702552969288375290816064084169314074636188599559836723251154148201982599104631710729398430619697584278908509141308852759577619956201722232436046583212534138536334544566819742121392464569126456995353280317256234880659452104924562384813225513789632055136949001537570845211464336403115957446817834106860880165353095567602054410249144132412830508986639890303429737456426038652669159582194524225771202444849528803854598681174536371626990211540161606512676329137366187147333093379244123498874083536519193979673968770955197798660018861678698587289393576510739707186048881655418387667482975772836756914219221582622009408571585907763444353369952933096784241933174686807862029067528634706142787943600363298426174511058919369274459919281765570262077753476097003735560009793242791907703967301785613791350597832853061115844890613545194506709791815337226280621595617513265235349833471356467655307825877606686105447830339496644448194311172240195404408686632066227891890264520420727631982108549253880780570620577337849359805163580760081224673267534438210858577617570877868017301056236779632902653357594718483154905660144533362883877527447604760424755528000538921923880169019270832862855949744236727792054860113538967412814129773795289233188919168395336560354178787900835667035333071855509219357713241189005035368761399120243589993504867934569435267244534752481559032176904556789566003049865411088100526074559769365655475349372427574296832064919489320913763697492780001965628188916887462042869704137581874409159395183963817906453199841462852906212142352075294776709469291296672885384461301124906390595661649811679019880251952991340014982311423126653730581910114320909143468879200092938557437929505286092351961980489912004752293567205392758436490032254589584552000925706906482078001491107748179582779233462471330128490455837160678974016482331545344388579130849279714095267608955182408131729612285498143510030451532744367231598476076801077684151132836245805143180404177196580857410856206071923392365890712921888203317953504073858293340688925814639805999240613032291383443195317719249931293597388514684956796222147907038736431804080619700712256204785040977663023959824113606541388155603728549809486323989255771902215505036686013962191872486895832541929140284454945391397403894825961770107460374690441393542403612918824822744057926712039511596737375326695978878872543723208853126691587981990313860141461559445061809066763515203171716606667840274062566516323941597199181061359744973154884630581540850676250809600282486709750246405810883559630153706777731647128986838918797586870809562280961278826113176381821369792587726854058435358031616433821172961820059116884463486610804496131610323215821966254531434173037889067131976147667432723375932844080940560807284676262021019454642279255679196517234460512064055671929684197724991320657156784600695420983307631209278796501146209804046489701855390904528753752744959312885929699526727541504774094198128071639742261935480088645678412051719014563032100529823510421654672773044834256711928750593954514067290285910033194966888942565689454786436285163608815201893292612760854285188239385572096665365529925371506610227246433948825389587690775586508616544847946297832189690151595419700054434831693854366414573121204015377398897437234824188546552294206506155345503046583533401788007330555817517561997313764224266043155968944605747941431541441870854192847497591621312684889329235397555079102794491076532703312237711889989709253577258253594614604533323225869710682318928995509609771463206646317618291605700888438559052916092033911518094918280290149705051998216507572498265703809363828204788985841870063083503055208892151325948716252299182689518880814742727103977512779756872722270748060811170065130346016707311766496978742845623172739622260963796941112880233655628773351185012265535429000208931962713487106047077929782725695869101148991541464391381006732616009170012072642944981281326408422684169093226055926055497108474068764535096636723193232892717981665392048483154932598957252979474422279552155386405938640393666768498733496351877647976207456639546917443810902542270623659372002642218796986497959352678895173281214586514062228479584011186652858763568693315800112291327930702186853932564978238035452943225059473519444470499388097605653240437090224608789807186524863128848475576052540316108549578667167333277735347379772228501956081488310073876084682365833803878033258092321894053432349282337203187243824267023246770608068396112634732752327312125766066731826528107991237131886226323267098066751077584506742311889004302751055971226871084022563118250728227491758899600517786235948460945837427837997115693259425359271756623975120830721480175207071966524007098409655391584456162496145924938657195243774310150912630513394916056228214330114538411513631086056452212514207694141723240548576660493560363551900896365706542066437282560200894379502009385691406105679001572124100452704510588331312398102969934073030368780673211274134054703373705800217968366559250579473507398255062290327776687921541692761005029760641193909385182840260398138171460639542074282127290904302519766339083080733529221508207869876480245275849722889447010632525266172835289681410294121931711246408444120829069194691939180052583666981263646112484446643397722057936052553450645738945653078726384484069692147840414036207106554880169436827416796313088018199157860478832787077687391265194273332692812352286265696225461190277092012329855832495464092858078604048753007433156654117877514991634717842045102006470663552088632852678122923872029474689147400859304594133334420457836143351622367695692743689462483895378300633333951956663598657566853404301888507012020969183853455970889355691512769900933707687224447891019497524921961001715853002335303805976925730597789595446149515031306109520385638802476208687153501351915777550100961644708924896566429212635663025340498709013419566970393245567507490922486614548831133984049743911663260219653080320502329401922742652236400743558047406603326440517774873436588727070124153258761083537741160541372322316837889989553606986825966761898111924640602603456720376735318380464330036659247364924662517185780400890141397522550739829185924485576212561421207338280196372514505335594019560535341791946618935077323514818350370582598078401803499967165730267550255907818264189626741953030727396752578570225726158449011761395837107262393757663485929085901634416120068100794017387145514717034502681799381180079725874296332652300816833062612544359124629009068917744954001478152115080263158625674811676368236642015088296887576678241511950929192279836668690356921129496440729273773193174572256640029700564595442235623960449981862953485381262588727221750847960833045551039046944875319572525787551492022387906848783203359653911835493073436362454948939649396765846209174792691140566930832939775168856351051985175795289828394884519177893143525742248182570175495504220018973681374586572920440833715875045799455584877345125911631129987036192205952325354427007723539443086576073613186070299683040717876656460650091104171553329280500923800662997067629452525801413556838704792978722081287720112560341914181133599683155490057409745738247128468499010824990775059685544382012540747020916178902538253781333756551419013926211337278787549988549584216232615803567866386114096193443925630708911044302481242365844348412880329521511390792513320618062345750072916076326010229021548456920974427065112826986794286321704723725592595635620633821259129503495771927665301963376239441548183246113654089797219978503601610335793511158742525711362415909390696543863413923495018230377541597195823017243715966161703270429603825185142197446838032271612096557940217919533771465019230027453295738923534908780567855433681062600150215278466854873474461460495008734678155704737513764477014597078362302431082841042155675260031306221514558104952365319345661566150388425990054181146561830984640572785038944250539046006983539884240045482544607706133939259552318395775702013516755463524865267871220016277507998144877189973154883970265539392500053799658955881388268889691761301245485400990649450818015180337249145576456925261057260099624951899970793240623625223971239678223515393216218167569916491404742643734284199542791385716607663985105141392343485201433133087830572513095065112658864875280346785333291367873264970538073419374745247534436642560432436931228170334243262104645826886753765505098931395040428490491999590984531366302195079253017370589899391712432998591559880751966178497350430036043365966353371161665236548138361675577242601101656654310279726140239246029061529766619061107326078375901544296323788092516784739149619753201128531810045458310709647957259866446598675154085930007206893531851026442814054594526649654155337333037228890384496708948029289355206728941551569433429810659685683381969046596856286465203234071491935654355567547495630472293676187730383444568243493643379120092936465401788424031445303970613983897156494729498899019627867522693453679101853237357581575141987826881676164788523756589829882565982136123345514961896664727446333909074920583508919691776788016227949310598027072367941539876304934739187930433129604200174803958265954170188499091084087731148943171512478069546486145619825021271619739779433527563707496362481539058488173619703319776656643027498419176646303236176866396940460485900018310608057888921971457488417906900104812360024003578020494530086914348461805528963485509320829947480669404899053516555805466547403679253026224656733664134025211498689583315464544741111199717298829337229843978764134363763103259236149731511886269681771811849558984650211976459474566937378695629082311689409649425924393211338803548021982432646580461473739898388519454609425908789130937188386974061358756722440988041369743009295296032289443648618177328571949600608824347093281521283456414163349688275273456516824736378342946520055248291076259893140101786402716223672905135619051626547976192389676011879579930243332705008128321450752780316032980635400711506918579261366641470650169984064363120541699374888379923299924688262717031006166400631522513995035798853369334407744011380321517060015836837628223691053794576328369962666870951673292914623642162431514539200615515705371783778465850973419531287262065281226586919756702082502253314558751005222132700453889003401552132030910518279239240918380979178152430490553929245778967757110901898052783871999557930870638565897579570471085814593534803482412320106895183119734190705739804928735232493713757514589145683657686956765886784255831543596541148473639039453223492498694260867587362349977047044509783470628888443554220933757374486921803022873458071444392096245957396803108438342921703841817828461068982293910269003640937967348905755888155598748514749610686110579157913834420672991772943399982112438595884540834393275745163681077863905928460815565586283865935992371767050276524598306993535115597732055644049295134050890795067181315593023803856753894811972596780956434589365901327603051541630701995834136120759420155985420712583700805554123882126575279131256770840159765109696305127258992770740396725719014771079381721013900297073666378891157025697355921708292131098407364140032720016747418902456157959601458069108223835233704470464616931878298896189599649264280109140764907829591375600372848651488624190116266477465905739456446006139110181027061623684715951370288932206132967389765606846876752362310242574410563130334912288229829065702630889608092076688976826459690788310319085936256949771579969072748943563688260110563944422304278292197533300435442876336481851711617287244958055263767698016179766954705998062350874138053784912153585164269320665969088821060139513068575520334893315667667371870542702803447044170040364170653738013701781601851320392239229096510279900732261839279333245790168095495234278742327191006646812515051553665199725291098177802299308679652088635822798162902696358592791206737447481248559126532653982066880633852982204847230921126973017365333013272525640714471239920777934300739591696671638201753714990738014491605381261147304661325989384983931211932713124760963016462431612906461575786573595818569100979224072190191620647517795571152996411825990137473248073874922372971243696232817416474389680146150197686763922170413904058309996366565951183525814954386379092696196056526761073697377516418366799812900135475535219640940979776081096275513997783070674843963264207872063143002385427397129815936647313105126198548068302444067354141075553073400383688709493971621213343919265147473644258350415803162249197589570835527398258107577162863654250144169695975813268499084912232200382471728879996467699335150026125764245476597818484633328566728090973086062366134897059884723605013710921555593094213732313902981046634533417529214397117819664117187758433836728198979384016483104690366742849640721069442086362565914624389475123518129133856262994943947283574795322508888317587624861467585871142654767569812850229467136903663441251720671390546196329869866848254280571302976140786841806629374108394743565169636783319829185532624115639933461799732132137949705964646062485617559938281218547646111862189179927329671512784264040695920175539162473118027359746956920074567331664913831043870780001036667789062730675876242287316257595046753175624372309825409253307959067979801238258382096723791509708698724083369283260911063145011619949372149486459247314535322245819189136259793267939002583715016559898980510177060842526077604593120514747145688771434956603502777393507278435184124877956530810170512338581148266189029883408949814506329649381557212074095518977467780418968870619774222558312255478275922676812797183674761015945405273216524198892168421306612137589082730172573508374528305271344972558553027165741781670415328657404954964016873307527276754435901620058823705754404235939493253895593475764708864902790006327208087635110297938808388231781731578492428980439120608839448552068938671042783897701023736124959788904770509345620799228184856201841733843496640494019926460261060817675151654628274520015642000753833677577676735206238717611856540733262950744654473512669116689731987439612510151753161182301008019601197877180620482070307814019847008575128430991094446782099049861436486394278182560643536394995119317067581359438702137011312374247748390658914345954144981103036621814617330615193580038546185135299405954247713611494155939501824032666286838504852768698312388519400810351393568459218552524635876413468573682071624388940412024480199324995032254852282070638867636554210738159890158460479107670886925828778260493027028396533037087760306592890361685513679730195880011864056203511304064003925653771026226389518237327791476897507646387183813056136445146310176577685322399834956672184317175297892722702919809358888497526081251755085301388983878262942930212499998832709324359128000205609170267299050280633900197266537815096428555140761320457627299716567539769477502134337461434608011107335800727495980829850255772657027400766635455972718642364729584373606579592349553214284960147745425608991934895294314699710026771495233064644042384997096482213694312335406446764774387757727643716099316637453540915657233139864578005694201799555664090800351513678622764466425524129944379729173838338497352666549123381025152209278171186580718525164865956719085775612330149095015585979594340983623553403252332904928038523897186077399029649687930016549114264508422813839356178142008460974724305731304683328150443722127250722631808564703579605678370889510316598762702477611568083455316565645741312113556662543402312984319243092409968133770115520075803936542690781137205782492201603069544118406351908696228948130512139717356875300860781877335021451075560562126885430687670520004215807721216400571342710854502212486526795239970225035796636785166286157358449593736071525479878312003585912420246715132050054571134695393650678047845915109249227638669429144311652677383113612259626791161946161260165926783517113053912143132527373674563797124901313675845398359461488624494598339987120523925001250237537913856347139481688316684164516809779685086415499594400587798022197688630573911395631318974211308967955387819220321661923376331373374941229472925739551614793717600328213422929422369930026882576353893262908117602971268619630381695266111699276669702049163040863814261946582873680620570807916373003931445949270689661312539537330145997537408265079148189136325211243328676480078705580541489868504878453493078158946457061578805064270775358727376550751863695533517639695869146894944612946596434733800820369935474477020555473157747999690189159488082517456590866759268879245046568984984283582592075432570077264159137520310929348918043361251449563365248481511544301245523869393689591866269438725835001737851897983919028543383251173412218948499581539220075595774636682187287313564603464424235809273025252965016872458751743076926899311515907752167699890862807842882466836888016933933621743071109131853345196711882993717584057838501675219155761087731929035649286347762325267219828320577315893275184979117077844027566572241174440985742168562467022582920120959695372727612265698173029285553834135600635897199421177880733216044658085635364663636545626040144179371516953038938255541381146879167480904104382739846659909083169889705930904214696733826647954383718836328210400645340812278442601735418587991755027931453979691498635684447633668876547713718553506979001818074610835489539769352701398298247944214248912096893398663803941409192259581674606420354620066449346147067298362602548737032984855844705939376713721219029616461210134984118234349648525914470311959563902060159321705064976066044915126172613686905755874295632196495041828531817596204235923470906576378191272370159660845001086228982991207901577922611826524981468614602435248984681162672136508620261464092883897628522312849158556534217733606038670126453764895220233377768380871744153551662313873081869126508520210088693829295664517365420242956541194755137328439123895859038760847826083999098111520203946951596752327357479322564195922819799815086763630929969009564028876186105646141867673062030050626299137355149632744822185275485684425076277059372669988857593138628858624971136947296683385939616451121557843869071599329280134179517634040587095409407041502372325278298615105767506430787964192338649879354111993503109944043393271258557451605979605982801484565835431721749191601472705687879380174785231585529604649135776464084808311827934077412265536045519573580513345989620072272566349847024305185056516266873646504198624246155701231222091126011907289621591025258498747400378383778335085582850966036026384170094685594325979814577287198255864481748697414786289301337228485505825434103156637820877146371892861222916279505250938743705116860270899747140944625314020121590011525061291302319926642749418072215270249474390699377038894785966576119271010734690883285054516449103719501414281035062051621964574562045531364074182089488074366567514126900930412607521885805189329597881375100802380656400009218024272438050261917220246808399299520706313465901623985791572280775309639793725812591828039493981088120024573178545508948496523157152559792713772277843380475946530446894314046518991328411445645338476734782167370665390694251729787500730934691810188120988950162751799403988222235958961505962896245737957397647290720910952521321030351417638464178017991049210007972989398621917003217045732088945240228317536713269378638496878963983830070235624276773308237556423263032125240440556097943182105371061330985434211799192413484007139982071311449016503058349801135176294137140269634837796490401412397010965549303127704267402255107423414520527810109109829555174052296770404901243330887902071695487695877131117082979118211527380066345411672514834438765513162625262933701364408819459568740378846926058838810705677620729959852221176191421044653670676057999742448167804614409368850137715982442569381814517680908764922172859742604524132449916396006037760826812341039145231370246670942447892208349302363233340776951130464499820802438016011164447674691272880500616149578193183119316589064724140130250756512880090851637586288471392951829255893839023645004229056225876403029502400817474222902323058211351702677684059140577881238901186209655541369431906898948912090055756780406532270761696513833278643750934310666152543289319703636580822670211107051154881604611964517001030833844727513697857333411745043577357215855674693996971675910702969780546029609417856223046340861357527273184554904269422345842114824609023709516423052137389763411325151779260954132824930089380550692645025197139805730952699553152179114960986917426888176598776897979751969029951032374426434065027151177793243194227612784295411736112639637251849988393978354018546082361589797428632585141422904217730326055666211825420683205779890504558534599525125690202338158668755810125718770344848948073566453571691557687805835504733850795328654458272133225175814994565748148387652854614334026144078374808096993288751766241244364236730346865856256310671163334492023996209670736682095412510578510090814732670780928982801294880128734645630737424755637571765223625918369969036800292717508932410673538806456079741715898138806803552948519266754951254280508599088351094391342775263993649368429702275479586197229118628226786019524957421149461494043804724798550816819979237101975257983089544941479000840417637943456944565420767990749823713343961312344100075822877394887936853926543865102304038630601682074206645146084705417069874497279409393882763164336546957859775271197615020388898153266043053624086719909711291981930126704169643016009193179833133087755093427717362182717047804155366227156512351778603110844026135411190387625910701374616494824198523662054048468290351126711857419447149703404912962437693321342534488920296173907490884805030348660490344944488419386981194127296488678084660377906595228349930714903817508383317552932170801946364059697709409064910722628953168905494689755388218759684742294061480661130478810586431577277652388368481290190507803953020771024260545676597873682111472391434728510533941417598060127790806817666452169108356851581821253168711362537659699352317415753244387136924695067503087066504465021040153731258278768690397695643136883666729028152471004351035498937899698083573404076847369239394538583396517004692413334924299158750086336391273453178984041041394334577699718907782477268947982691842495885126865432023263620586649823749603045445198876612425148695011912625716953974336378989659000084803554206146939556208406799454600351848167015451854070350481556697806404893285194947059836814250493156133145201595190286398995552446508791100976000427221509007682751070049816772783143870908699276867374624407780175319006661380267064871059085461371756010580978140139268150315235823682878968047872912740636291131544685191947836360834633676372367915378704738321327030071526150672122388111794897407412131803556995001724532503989331678310885209038391486934050162871848519728086691176321266385243043116158927000566974521918275970544929004969057800413174804720435825784483262695208847880832911620147019340360225951137761179485486853447128865406555559584623338498844241243652233054297311019646029238984450260526790050574723031586345299938415081383522186493557768820882943125918997414563948814334685133857989683311392844643931358695172260011895193060942922887440214150148928076911653965009684891287987088186142847413250643696862085711879259106718544370304863731911004120214303660509144463825001813294302271420985027216318499500782266462112587756499225022952027017026082431044762126574697605831645146161904600053606435803492922247992663191600333234640430586642580809448688986013250212679007888569690081121187325150330547609236176700667916406722990175451211262297407790586023819378129743171098232876886899954296376692762329811430552682450660190911937345437621756212274438818882646461151007746322270093143329097156030559071191877008040783088161538203112852049112509763908633630491723731569070010901982596168955544122274314018702646609333776881868778500517627747159463330236834685054443494250973024694471323934902437406895905293361290937582219025956898840088164149146469318130138938580270150538865184050114988478814719395209607084335379833423151703953802731735890979434354589212514607142081953944404300101381648886381925288879815917203298961192627809391425415509849927583637458288147248676702818922468553563893310259534233166893726633612015946164877319282640567939885962037794187764117633934917674609091847063596247149438536347986470648414055849702072802299027869702485528384830364050054336924540757646116517087489983534869612880157089128004599250172194241847577383381231403933606536917401465584418169354478351629978450647464676778623538675550411337436821826235291314288897284633600144200233745140613936696523680230954628848434075200478684480149694993045651517067800061181495014582776029921705160248988382540296714041148845182392622836593338783804481895803955249192981582572754380473716765234008857447639496709739120848205925463911904458313151965950839415441350341898359325847777503244318393970386138369376009285013701981166384373787780276515774019732699335454274920405071651832836141479454213921046357535452043081778418059523270791059360287470426490889424978725245959975788692045713015822512398283281424383742131078363587198304293801140401210823720488561459827054703814091087071590404350945253531285568859218957411737843412229653720250616856758575775824327637061171027257264393715304910095344080275177582242060245545259532733482109753927426584164548861117643734530448830084487121716692829098697945816834186241248655764376260106291726643749137279828366866813180173559440480972831421291340447991710934331986106199529089817818294626124939880223764786164789425408821132268015576335444383009184645910262823197836930033089860198521974094656181524997979529589519005567960774276691985548456340516950870029129178258862714691436526042300452478438531077144429670007149495593138120342754656039103476814951309790305181285996557996246977563628681971069518033939890858133864244547062124221494669134232897262080167119109067849567905670979139214538736356160364235808933161140590747507949317189525128544545330765929612522410430790685362505593217914148980114237918394585526958793521377313702427161589734961628863196599663568753657617732579909102066597143965178430645569519015732242515914928831190608446517851392951972263623542799759257108460356729216377113060666130160467803969299277414773779610243052202600241040414509840720616589034272216609446024894327122850179611833802946896272356607641749656068166665055785607534793818795349511725521436316796194470527060138567109625047453574239970544654068405379625449736061083778953386015462451295125546560759696634762329281869450481398650512212584691785359127537612859948841742600900345656359871018525516058246424655581818951226160664840274294420840924009213681621247191449776605568995891401755835076306282388649378828759122660395517695470087804988602141910119097281687386697145132386006616230132036210292020035327133959732177250110290248061951199400282201883805771026644594341785462535555334572611351834375089608105637265888193043594404660097564264048412574020522698740205212835826355532361358711793263295298125232196256795774409576700876229618911847447821575528316827318534916279441445815729959835842398316707796058046040506757836855124686437205950843716632484418744470921210887401474762103804148249012331607134428581076372371227649653433969975544689408314106263052245180943810913430245393621907580430184008755438347382570583457967111491465750630894509595567524260481018325531144703515882231955074344255414188816689947323083017348735772077005719216259500273677679206569314658930161542951558036185470728772621205915808385929449341196028224457605662752280192479486142815331279099111906814502162546170764046147905614056753651213156091485471368108040797764119128961993980012052065108194261173744395042483464944966739913507749015611011233915211728224104767592983146357443698440439491834623020903381602790356806678717589743919644997064314131838052886235109552416246205075730015296424481937103887675819229935692758760993282283578929790202860555510290330584755500070839906320979653708100816833304362726410667292802847656071041647197477429277248303899903803165992259431864897179054454844371505210172176635070872981884186607378388755970046283033823343707724596866923125690425185777689965960694381970698412781800648150908635181098168789453827703131243620929133416685253026075012712435353569458516995723966760704457515996460968124242523414445767320841294596277850196684146009682299515763361568218227369857102700780812489096849623797471628017370822482277428118934160738931034596378652363373285779725054527699479023137206989235316293277455931426340976940061313964749377432189424253860371758948660441387200872492611291688859320135445037253192627661071763610206247974777080976011203956883652992171884541270214116917911629305535521724440754063494440350199490279392796168760440878002310144506407739901484652127075481685761526335723859853592146080572353960757364023532079968320107200869713673524947149953159990231991722800091615739303471110494071097116664786010219520783903881694001149686225486012373991679254480664430270613058236437008322059380096855375127772961421239633272227628983699678713641999010124470694166880351763068097704634516079040459454581789166903619887200945145765894314433750009184722549382979457355483570591120678089836687261644915719856952258450709874071682979508532047340162269549372412613466730565969721126151590476339170229124029168260890841558330447751754944498324028920484443216240400415991075651519736960594978207017562306518080593128096428677369863117682806028902890084278080249445439270059629137555315157701700648231865736359659753756861899396622299744696279799308738437328937494730174283996078429913733538350540417968392399139808406618213427211675877603597359856063301189092223337647815056796221092506043595458197886330862347396607476985303710975690502231407223142068782405538242044686397469446002726234749906359843977157384051680089490265161664153404390660900594385120922404375870981026321896727375989166549982938734657215195119922834405149690384824217332186616105500887142478474742172548325229053418184555537626054906434516902633077968076659441397657105641321310524943320053003381353533043856015290225513938244249722730118197030213872703226352716408793290041687501720183086537184499796143823005602433936352731950535704697126819275869045750828125582819315141268638713662833279991066675584943535988031890897128936882243094716046898996310504964162477973765015425659739846901368978995245869033034822745623279187579612627392370229296878564029700537829342107222689106354415442180356107484485728125367674570413016200641116688959914638223752230958460018892346441343553958503626147733813433030608500384088752851773338302044753047641292774596718725408375554528414006185337217964081227962708060149266599835650437108728443115573283306358836965554655311725416890225745672741372468912538589169588260365515705057101755424573735837528634255088095083666111117828591589852518393544142677475680321709139923776866591174545789140020331750989054021879122983836972601371444108606193579592737883428797796844569910880442216409058256732327271257204894161691908393467900185385215685598287362174463111828865850573080164654989827672137695060870291428274533008913000356037108565345047908642008193502668593750474218033873164597864337172948437662984090000801237183869550874672214515929833450109195559163898379975875786182860556911190893732019439348101195050597430397627473759662919546754588521582116708461099556807928314262287702646015325295438363579832144677909691903759305851905427495881015806650043713164291096279315292272239789530050969213625957990018253987993668068337451953103764427637937097380453428581068060352988785408546093154122328086153373383928247548502920188320377416273742338479110381536841687043260001580341771067450970961165736978730418001634898637915234426309634438616037864215288405036380838685387946538316892289893171958199455687017715195372034201405016291413681951241795433526194879461110967986027598584832809151394272555494881237986450266324420218197569138924691606971848748485633529005201168752124380437317521900841906133518773754196076015843660475308181351155445611126070601134631609918856154313229101447321150990080594057576557398704658838511003504489227279100753495353807294931663835585403328312917872403629117799760227962283110514265902263798084784215666591304976530007302250348229376297379429986308913366932098359691096950635570407640846764864253649596993578577347606828360883824163958930262175063224119364074747663018944139736369371981450331571416917642625771794439694194550605274195093171239405950088196620069890362563629624663047757531361434052482269272014218506298547019381179813634195040949937148973614389378371528335748480813813030018275495270195018764909822809622617919035567477313994750295260183934482567606645025949032987262870378354911829055073770572552811808432783810754307365600814382137241158889882125928445335777153353799351233807076382109304108295063875014068010641278428204003345387542341033574451493868456534556618493078689814300131534485430985141522583039571350473497620091911511015295635474120693284922929558990397271853508401312828115664871413061758398028694646650156922969789999365788281891524741899517262436177559418382141771079853631984550100296389940800260006311574720611469058340087420515588930049439825339507074271907260493220590194949959153308332964822143966636006815786820600843378099625864531242782333796104362757523485242231433519662131113102250107159519825821797261041474822269301614651591774195874369589978928127542495794219320079609283958123306594781380757212607130013098330100912304411932337841144470746767506867066678512778898827141721352469434572995172459952940822736542308319227707357330417534773171573555080204981512094657176092326916041785338050889113063872332243854480729876711689902989203150989172533043416949400205318808589978575077848811882042432777841354192973109125879655089468459595647694141137855674666213512242750931552032816689087125813002791982958894129048188851381545145564960648993066994157621344529249533614675261172192448859506962219760986222533830357410366637763292205145661150402537346326199541669372041355114619195054647560357560666184906243673157422075178559234335033750451023248290812265603593801509060976930569176116378352005300102824400313475826364883426194508765340968284571661977255829046961212932743495576889750297502907463635651338387571736543043862765107791143753773488097261315122329361469529182257527622565110641415804159590172627078375755181006174506994853744023845930086158753113640222202208579806116719161796508932563528550197225549799880847234506673082264325718178116508124516001233106188769672602205830402719314361424554850040885032458150517277971429502656252748800491135730112760355055522762296319553573224158263530022868951057245406051440746358706020684456106032569742160770011352679665171359645020127349184389919022252301294147895078972833048565287377080268567525728693162399336882385431110795699645272895886468489864551621613053038263483353244182502405712651346308966975464594827362358276139238117354745947343293665975833953483404808904606075116718369650218590317620259901381247086872063677601049010385624686453468839185439530971064421712923384643123944363629018311384441013096684457465330944116298415629639121230940940408826259458327167515231221145549397705984967993301042027563617391999356616318567291730704841072103946590733959379430286069950755300926190048664330219508873857069485536087986316781290983389537833650339319904282436439757639826072045483904061787398381003322771190301665055565400144327989127362235605574517704225805052101887491314535964452161636426754541326036943962886967331607194647532168108606981901205041595170764378579762129710752202346114235173203603978602104404152972018033188634421099097681724756529529350929482164048518883029933902392208674578350238842749648651447097544467680545030495545428036568056692201320411063924369347637998821503990129203613609330337766499201150534803859942606953363725949707463180713601856174160277935038904238007435872318590348674466567212786965855817021942123668090371401637380536639050142961669030797835990080372230232201951770150171842509820100811289657747441992842446111037109119033587304573627643397196779548285442689179778595406985337116288352234869783337111328121621285428440909329764661519039611182350942008224039763909920700182311435915644350394892556246329734969357918057637997108998157548180011516117237726284761335732331884708210008341227155968263025415846992597655382249215346365713312179878209207309976082393271332742412881708529693611591617049184951802022121303568552924603226051310881540979168690834789523366827310627399162002140330159646994756203484863130283076505912849486631559044611361024717739292304669000568486241223086799312235916840636167533761880709597453963634054535391643414644615784760987577430101141321806873513826867787561281447159300926252110053216550010691745363990002630237947783607640148576182606852864492336142339910223216734550412820735700802592694891501990597279333976577792693902887016921145625264751944943513005905200435673469258612748640878244029596581312192103483007888999969431736408857808531332068240512295483470774319895171102498283961270899426693198892893918805062437193722843450197422044422664103042743953399822896519417676465523954389385628623591234785020241983828409161634594646392707655584791586021841924137365678704187254957613306375129371741613025038464235660309988519550841760329750458502712595662983428182203233114272665717526125939668432736367642320748433359193037689521302696475244250332025591471119965545458958279316110577673505659542312056181178158013801511220815438651339858106392659278168610633969165833771822364668669552792437181534643892339736027461234524984514158541674293876676961516877039984643924327425959140370967538165609042425721041371059275655201053636071497801701724142745369213042329612472572289643037205113540215544889483268936433569230827111584363398629492625055150252066342228943718254889077804428434824782605548816774111761750143201706683332590227924184388038436936918290369940769374010290255591915263958070391340575991023194583380158920139013533413493979127495596790775513206147821207430520018788778820360921268398601538559619080481860569553671104074366552163650478834991545443051106358689301379923026875450910952892155544080395362576522486982820401944635781934165553836671332042712173397243320137590228528852394692508872823330746878813933386864370898996663740110272531707836293357038898362644827845202469601789801776985283527016073651269973684894283465488870355625216744630599155426209651965555256503964352757884705824723157193687037410869774099492642269110770096214471019228632098823817328581531206735397905964368006735358452936511583439670417752903741908839663749963386868203189977302301780253603209394499236520919760397895628353373464885208508332828963528261892805767586943190942011664364203053669238173794831128436067136297981282747646439215228541333305450145144796672529514776440734149115660034560938441003467788987121203633858731832537123114468442727010700068036438674121410612788800792784191395180577986454288023141083719673829662450616742706108987669442244729200345797498263857070369142849730716081446663561271471021628681018561109889728731519508752752613076698050067769400827211257913200798798754170108482845736178665759386490158268957849047683617994581041919894560946909957818669945977828156728198076288218549437667508015875730135620870271754820059117510795331491912113410998051842398627034400163208916816728144888136066905579239210153738615863473550900218105708337090381249120479641761463924683249165899049899877786887153618575229570942654272342630251486465405963959991548072543581078935409173802107338847109179787630593574094780575038065265846415790695252948651405843590189604242625111428949367333893235861767709418276553504895937585933900480166630312026004604853851108616090063967717021386443940062332843157514896043245876245585777982024642517258634011737231024718581965975455929678421514963625444452822723476942514577543816569060765087693441742900206761645317164593112847419304548893714597021337306350007758176281571460647579472538121224496522487591111075626689533594867755935854532744907530504514591890144022420133632321542955918301661991783507390144198620556816956283951968477763444390290306889625291852883932811805628968142677497946511615856557586604090210229497102737076634295086957039314222629728463504190015147099793123646700314547092732192337675452467972174094270594938834383612198158362841205254199887394025584625984432397178138042938667229568445465177267332674495646590502229508324875453616575605626191169817621790741372290740224498425795832678761199668046101346084219052631424342463555078944151547082748710226878921311180644495161602195799339523028252336624958471865578000444200533787457046786360136021300605303414389211793089747076795494475402544768707021924502373392385543354261768826660823862085395232656030663649570905659357698634801135008653012303833533779643806323010265533689608572064466158409232018621710577808631926576889721722613742928937052846061368801563650907304547394080870419630138123116201911805388542766159680660271110074741425341618667246453311221743357664934954260459207706660525877154070374346536904641064441973039836242842319155695992529357966564424227431287830130048018605584593022500083301299844017201957313513268365006681724925949405717917159967419237132924259777426601426579126595513691199257684745743989541326269346566009710039944101599961488726516805269641281436191713452723779006195748664874221656456672280694915471209330898266836304313593763197286706806300604111153178713375086464694637909617332553927939059471641670374043796015443884946483220139728016496234427209752606912672677523667574145958013700884328774434914004369435164665976818437427533766901453544854496160673372810259183060074204691874934009484517381262273690138104630471710537254483896142354441543786871451186455781066425050628587466059435288907930649028110216421602006010261115621986371513724048606570885672002265878893009983661089186184354254642999217356065406405327664533244142755636935590142052470858475552286505235406948884120550060398306010399025852434681415895446669251210339576946654916807504424534083712980631146890535297436471504066829165696197956974558880366846951264368009238145566386916062591781989350483938566034796242519926108957991698255319371393171099388713505969366336535128378888379125125111907027967086093910959010137688814566095850452622591843124842610175719170333556284752978345691119678469794798526592652653214400030105154769597951331051738762424336821965909232143937809794050768012640726505862614320821559295355337482161373262693168551289373211825780637702189424911566025017745769036089353451111041270492887926235657348068814184639702581764117731651013731060820549051422035619543769889939926203859630651694962727660852424299392019355013869653850829629976908777279612785864436887481631638355371371201345985893823563306220412135840404857884197269300660536088298198646229841404107863464276022554238542976297205406213377053852314597750043214863370743050707136730183115809829962480818851439532840267939397859000214166077957649276632706387996549936219716432817829319256970500605570645563417507721992641545831793305072974091798802092228800624060963327530062575428287862656383108159837698794386156843639151473527341417073891460812674959155928038523425601380310290675795582007916777387168332388194632232193858956756466011249940263365145863441231067737965256252323213056900506284153003755406624505394428956556758001560752356523410294574985449189526267711814478687667619938968075009903907880661287945895957625637700016694595731405595094430419129179400782695426065074098446121176333057651418047609935446205306205866931684926892740112271802308606058485803265323400078800757302248194726404042465412258397440076861215287908409512651991315922679891930358271615531206306127908535919655428480423034303310928747805149923730780227601077543330025559725642386854895481305215786568178607045085299919636451847188584883534626865475746270315450399380175753671034059631118760536502166467188970674936081718858799705805033984118169251797735078320375997264142094337901538697015710716441424024812489945687285766372639535284675033540041582608392740259403310101008096568116867459652962414942752438817907400272537914935262132498124679387216178353953869961154397609275436455458991460050591691762803121304030913836357293222238461730021698358236137441751044817291459109351337804063642128812234503690810636369953636695473864183959862159236188522475891246127726533410090245121693842047175512855350876658863906921480620078518362568956395081437291874462236361316595809638655396831126805546840831889621595731883039963628239590715275712935686200083190054749698706330859229054705617107402577497729277179781107309422175139330003478601120823202440237763864246768677700558384031078380477663401185187125476323748314093981324600810578946641079616668797457892950653542426303212517125862398749130011706633529463949049116586252790756706867178280000562336293638788505535830847506863596361188996423301099704710914526747519191640055303725267211024098783961506821206905180725589552934188310703079948194598016171649822772995374356560154105789073687743793627248839577023601742899930352758828523340328717764673764114488155820402741381808784645973280435926740532621627912677011005133871112111768752329362566801005966510890135365809172442102038879518547352548796669914063095452037858763096202740727722488941519315124892862300743393922833170885890560476220062656964172846163632593979583921904672330110163090054356620402488709982122889735676517783211492804133526432662626944613918366474283949998189925048336613464480070929478840738052874109273874814497901229955476860890304211396449244152061929532805541144211514830882856819310846493567878228877050698337269225804640226765437073465975249887807097221840185146449955898680243522789474070513080980028673269766472297735520113315730946054493848481150527975185108004998085240201834008385568644190766331904507581188442149267918056582177305871685201177806229777980868167626317933702607677283815151544606131820361619867461764723303743579058780869334340418119607155535342415878547668151412862301209109512231627830512926159906625683184775613780531742391484799534869516836600661410760480285466723199201312289676673123048628889763560667933786366664349830679466544497525555756948273496661489008794420315296472652544244490411060913246043475171250566134076091391970999449687592790006668848692753977623699889129662326252593762817175733984194244321921968353907193078433846678281477790976143562752766349211534384751008906780446939577370443599512088295226496897968545169376337766163783452946128461462764411040879803274563127021927455698625896039091948163483290272374807863908764654242461570316135238620306046595829385391118877450394711100007451193255854832218421635288261385964123794918497794981924420915343767810616997438076647764321994884319804064435212885369944390974661196919592564373488477336519277438382443636389188501128706474316284536402039090617172735214221778603317379216049977147110541920276519494726163967611284265678056134320205232515680950990590970449538063061195594650941279925175136570000222238968146591344581775249610740507444474052406571764612155486157702324879032986041140213653759565651254536135244237712477149918277178947297346937882204963837094821988353554493890255932552333997723821431531197359028547508131962379759073020151159163397468325780892844811212094515857817331794945915836024557380997999211730722750228592095422824839554669458860249816077783598144041434470884577951943071328017697803673314698712734538240142429808459668036154085165339523042962611361575853972357790843816387510406003447965897970595843699850288673185903997354922867012307436004713412892942410572784117217166683733951849502198256389158882657123927416136229827411813133866255086574438621174088878204597917105248215394442646341368753532770355174739417613493616605649506165701713395377417661343659057690713051179102688610741878205864837525940018316945774873762992139487815706766575162193679964148779914744192071442926407896477663404686753240471465484842028268024897088956928816442440046188676233525856668944128366639230529150884071167924322184135167550992754533446713333394093978257931927736030374867147030292259199267913954611246153387453002158043679568308845341903278645278678194607027184942073134743813479949641308077646004137178800355052322096242919146597232356461650879116700746031753860228511792841463779367796103596749800029266721632627533808236581899903679943285246996782727444663362059462072194277289939758018602073759462679720732315229634028854183621862668295665904166487043444267836205688315495761739421585640835617055287518779019561070080647880542591794272881759558305118998321840971856735790377432047988227148890423913706511934419752586007306724952872966825190136944164826845247582691115507058321496645815372978783861044164731123381627015743318975617572655304685152285230506041921499140301811386092502304350372736287074488630543005264729741466670315893239534602198285725714236769559637527545970383589711895029502794432000856495075448761725894906884475885235360167421841385179535057296950282989220194305412900736689369945364999162194199385913997335842697663078446351554978355929860183354183228796721966731425646536179356394396153730010536737374311615197576875830155218838031525082374817166711177883300949185086827554619288167679043737267585983717463224027254771622314359590095693164525077275471527082302188604231768923871835996434881339341320156654295834032286929408520152161680842789228825189765334495846232047455700304693013091857495695645532881090711418140286137857375044254987869293475256435954636180415938822279339059393706466215295549852684433464042060970546145996173696400080008562634057993444172662307271835366182085620474135098717654965335322714372174168279438135681593644987076653170296174059841867308683461716823305841215001269488092782597595584033463405173298393546079154576088339360466830757858285381620201387899661619505810551347382753676504619927325383497732879091259224663952076975172393925271855263872707334770664208890153453349143184257732741359845137543676521320886152489282656438589034036451849989738731851374725675582626348315519164987202407886966520287500426658203687306228698575345445309425530701334673014744356635080641641996959679320259515538143775737683050322767022964259127244294255400665914775635639621395572360119655088543993343671156109866267658631736206997653027092616301685033847165452310109534253774657788555403078254646644560383864328062390518209024277771367712433785016919521127324123764261180341195895639837768010212699069882531079786640080695512587447240996661989268230809831891867801315930756763405363906544302142887853799134076805272079380640274404900008789078317072417946302859992087196946660413511710772832630024789425254848760516607308949111982832570523668164229610225513192889628729890937237312246179552853660377182980941840947444467839664966388965646827242460802384013720817580662744813112417500437472346383462083837811926378664553844037961517036293278366648303140438328058730949606137505333156916356513822832484806258133847991030759149254059280385833377721521326302678545200059717701961439060203528767825738156398507457418468347251942465855305004924133108597353089226464335966627245143215867273052617546798404710495920790800516154480345815011757580404704038905912742843448825990010023289562476767804849367795413373050175242199012735000248257993203392266783456839341845714487114364719650845874172258631713552598121158011265909215453689537882215219114405729042150607882285717364692229150387838114084581716942743118052865379926300156977204439165111708448173584398289962657056661889607234441186314921423121553623255777771946621081674248693228885680702758107420120126366270491024026572747910305725231169144372389760890737055139481242005075533365321099612209354466410342949174810580759233440459468180195312890413829233055237923248195960831798324312878677135605870345063753149105871707486918422980128970439794943556718764867231431274485253599286239246467958655065869547672378296686255071406462113866751176900809565337936798415838196808214666885958241776253431527210976697122898380965996690946612004120329184057943388724571935544367042798212603756986351080348601534038409891410015337201091464700920169623257555453395904782051087143815692753659314426733271578359515119748693502278801059125974826395451219434713123217077189857775855621584926962940811736776876171835677401134362493970499414594334726896108728254630084916379002067208643143828048472823936447395128071251179858863049023121426087413527424511338252529120842230423223391789607455730682260929631671706398162320534320803666038127569825590921957528799411528954875577179476175510051422624066850559304217684896523372021558221028822441616004232968385265017659571008436390881149358411261076219297742034295122708089037651155698698943279670967052812056391601618576610612952833525907761404094738370452502456529643847177709836803548102558732321760622688940264937245962355918722608603604696293988492324251175961417244693548016157261158711706895494421379328376278076698493192913283032843563465092969811600401223398966303916240063614128523172988307710242746359387817707678994261618599744915907557835062493287352285025144721934593521405112968734594997184231144191712297882186707388408747592601718868476705405122098430904465537957822771466119393377903965224089870987852395647143602604425712285347228454959463692684029930794353850162515207857996578834146861978787416590854186065539728807530748463109376376594670456390432979168290452436372125714867965725790702617601359115949513420145168373195945357147853830561214722747333636896700740437786627294859466735811645577894429642678748558754504401543467584128524085555424732339855999452599254078594307786674959684516330122553816909911395215443535294979171925513430349595486071906472859338546756708423659773990262610825787018764579397043096202952531039633982558285493029041180045879509773875444270104727596623753072106615580141966250658113843374425180923122318417588656703558520138897314655472912913254917035249266232851111902809087535382289851907578545423432392649865505014649619802520561811041288752418335532079846745041267827526542687310735043203823003007406123360204749244378754842534684268382103793215136998767893274375550389136764903725161924728034302975650656095910127585767397102491009765297257670196609282841642775097605187719908214866631385352252296268116259507846413003995586370228967178986916353610141886427200487121272344492606601981864222947021406659697797821640520286743778564606922659977062746711192227287842442856020919744347734856527626279393825013781636177745345722138756933368022017997889832315711189594088382984567870264272255626401572893552670241198580531431725907650915909496687497703483817691733830772732204657258701367803100631125510170094499258165356763195038831101980408100589319151326139182694903431486397276673847558947622753116388092790851189988847821239761449809901202324723238455390636749614608360721297641092451546512462873915553690120867477286547465417227745203940755479639222841097594450575993934421102218691962615949220500250306830653776057473322654273273067866139716029953300538074884599081043163954890177269175117793586133294714298882168350071364258785953376437436244476613099345675828181899263939710113047192823238347079368900895982201782893024243472904174666290739041654967852787114214872949900434374568041705958279504265310057670973822662238306839394567607989431984721061022656876475657073893988253809017593555652920421255796141919133977839350225245394216544051229843697962655279370846422387820146602252489915744263035955472866586506197217681624254935597835990569724648719880057801381398974188397705353980567361614633825015200004099904574951963584234848195880212256474102630806717065223186780559415711084114395959729134067294096353612626485484439592994687896747434057113385121425890810466928439693832935818298630965793590836505051144902326669398039224570441053025003044396621436877799200612387717245089672107050162262197780532383565010514002295003411644196378689366641951325063581922735993463837430326010076278170540523000454915864608403175267200328171566478821228991122355303438780260629038142724828612080360470764800647375976055914872178442045956032812768257114420168723712740766784623530953369714755786009531660935483598283849728939853237963851367032598194615696516831543906552460550704353461419104121712202822683741254276543592861777622546101722593007348267592197215409456620098900052656347429216602259776821619431583166502223248955898624716329450467902690940872294738481576418102641070738075814487440153919746305139588332917405090355339454632962438869637649844549229912356243414986314212734794864401467821737648922486753427092346590403621468707395704135683176305672953508700619980003327347695369272513981745808318663051638541467868391192133263924331218498592689278491611561239783657539233211637645352720855349734228916527802577552237813094282573161431848510983952920508705817286777235881921595901805734636301573635845277081677524696730732332751995340345286646826227108067392722319441378784417447571132213042787452626321371461553775126327820534293024576318517527472429509348684400331043046276051278712368002431880995794002163199853491700449870740319733058943316144829298463477801538777832664227556709000839644185041420700568542211265524295208187039747773527088839393761261246217001560152650814755926644955090670588066582422541995294234704587017641226292803725691307364414757742951821113737235904840755724008105713240173482531410834052029123584251191658528239785785291734857260303706565300245941970497857187745625371259284056102314013109175820010247131124715121898179297871015821741857681831549691750873244271847016708115833345390957819315963280284199479731192845457402200291937538779768630427032453609773732396105138598243437770355898618885504064346962173295366903751615791095294780005384765495104857778000425840808973180414052977487146032466271479842241979985672633035774040635409013033903857518951024568685728855100168990899377512030390290189513982059491488983948152203587414170955257761129358802208681788044405979975371212487964003858737608481844509630788429167831442289225884160577857703806661972996076444471624778237492882198005008239463950817116932646337762801122939180857334328348633405681563180442774464046682283010248253028176810603060154374996691443347364698664964968569314110952670913877964009553417323470224677196069276690613785816745053843874823739263649451279717777750731383465399779897934970786422642150917395508375207939005944477242679083872979551512388344876805713383859942302602472363006266993614483674911039724061348529805988144773008647849073956954885369049959295268063971651000813395140614668961210909018516128311143517309087770627525873589695712068837568706499635596422291230108847198900892161995348002007854326842718582932566997517309982805569495164056279287990052898549776907849734262091587852948705619103335424028012587752895684127390050672334969726382159481852586471217916863342167320717739565475183527708628646787436514663754511089855772165739915176038660073922156286375480019789340881882596554424261258328067753189565436321946426236815207880237953063690889498688280444660179719807404189807013757875409820498983304876492565463810192726919674734155491891123163763104513424768364842201017717281742811913537751473354622711773905354046625893809530768614474567503613896698514144024135060814911982578285722350603019219246894391225413752433397363227646527543943128936594732258525370167669199571383356785462540672850749009362688916187355841695436560479241762441163270148044953484830496839861468578513016741312298795483307598203559519387805228873312003471431018439596230078625335899606133308468209826119061730717184915220845836145851461871449255972784767345276768203660054029059145330139979173479972161507155539871179898660462886693652164012860868600487093418167997014402187713764318657225023013797199456830306396149756675170771711694992452313000316312359705135185357208528365776921504107443823084695976151237156714943995274708393597539744090198392884199835123722335040457057215035823541811982435761477261261338498891892612959529314351868032057215641164644754762710172764770060308101508105201943681026789781232500745964572830058408047114893416818343610055634111287816753516301502134282118307824535683303018466334924799510089887815486153263324795776481105771692450267928328411768364856031294324765024970701045988495469737897103175191171686432034324212235676747133781272174058375076751816957538441404695695133812316770839209662618651841333923862804455269983286043134033028170902046969590763866804455394795176459960106139124400318373080822219377580543848730260850278212312359534018151924488203785569966415573588445030416333142879352587196009722637803399908686400048632688894334475520275470428112849034000126931496131697498550127720380345289853704239531016457771144639630529388067519867010576447362768626552462931236510269042977694918307574275414644584019849978004565146473682984220461208937012970196493145455965184292886105669648801985606462750794482098769725269741847822288060004397655285226020103556992326152697469335188427360494714402897259223834700860204896373357022580069629854137191807770492900028889565682792696623533446901208466576903286066563310742850065743093795819306520025930288170757594655269887966222514740588680090818946723705799706291197835564101873325153069486553805236202294996464637527954680588219310907034662883528712551377253542032528022407009733099953887594367962245127370854534882964203201356936842914053873014294736272221231800511387898024120924692147123154404641598051513295305462842280330147593387119970480882096525396475206765781988139150948775184049179866889987944104889002070753381161379574975594652343027934684995396144282659998011272821323219417058987633773767124516328260924162440681204410136796671127034284696655485038139677456463390845465562474022919559545574504085806239873063327463433852131547587412093142050785906991590500656440460526312340662577062198657798365948597202305687039021479140789537957898159738070000983123743108003746629007660173578742748105963470449326354312599441300634256359479633300960373655144298844672233773620040724128833567249864110888647427847778301431131068120843444410067164945013766212116542070883465810567600206063833946651651752148721948233389566549602863473126418506178368462326021277747112031594168757752925592899599910847741315897446740319463596810561133159384145342468592233207667207412518430373328897316312057737675972689428869024076457829510781148665928593260586577522363309090093123211151945513736759845807846942591810230207814737590768709681115420296449577125544175100075869460843687010139317464856847118311259733205019945266139500889640884937208508518949907751861903762383745281022362989581888749235397105134016094182419130443179969722629801155676193992019933281889375917395222236493586272711982166592003758075215754580041848871169505738040665028483935718488232135307514206039281986180273918751961714108189851903533152814145510008362378343264686427795973399818724590601375498390674438564152509235598563746167387323598985879962308644250912011221560424338390473388305242613530354104459839700277769395027896789884667811074998854003379902815628818174417335241642939383691376252628646900970513232388455700143455188620449603163694220958545438746934855244160618072808860222400463237557722576912814274967732638634531400719213990592290951027431161772777395505731853521863606253155798970814347387646148182588783173856100988858025020511804423740679149405191154273192727613604706879949995375313876351679549108184941381289471090949011392202756478374130876343621901085605251115491012097502951076999983156975639045747019363226271730124047912517124623055087846820474252589891975521771130224315877393208474341249730743274917683915038700082987508208078371596640098020397291162324223515784377250282143077085335997273456216655375162792050530401794320221470659576619951490478621371232060828619131236454420502843345337321537235824870659419183434138138681816923875528233651999201002070948008251565859582878271432587904746425815742047074225491118922893682422300121469868889064625431169366589556432506854541512659354990964783199064473386921303282885191406844945404473388582601710513071982620863172799379987736597312353825038026631116556693427924477657105146042551752428943949412373775603308319063695896510651452018943723456804352744787079152061069873209726981985473725974960129891991793316424504010707842024706922529140683940905690103083276481892482806844514585391283232048574630885000031504725982277682285921959070891485306365521086006562022998875804058625026195385364107528091594961728398229752236752966400048020428692674477402279136162898108822743283490037336272483933488490041356776242082145014652972952468957611712681799611916702601026619610567080428410723839504009058822301343180178612812478395410300780629919790245901944958504660468643544033779343785417227118120096521577253566326059860600348700502958106350938590151131184369525367749288695657982184364292060443274116032390853421346923243098490261334465501362584069654646676835045803748913148526957551822979050630256868592432570475807225973277336897597449193885231729543515894823363203153271203074279661878327600747776204802124310877951705470566990030139211159072022785194407174072568567240142842374206654896631970630810999641037218883705661701462914024907587120375343005093622109026309744858609279020932546081893232507996507051293346467489961928601269076535332619269178682921875303553097878123381089749504983246061405892245559397962602558480313165950084443122968968154754157938594192121043615688093233056897103916754678499819954419827648813142456649729673434909273956295482352160752125179382317297607046945269876237172706870625319551210880158169004264555157893627683443592547779679372585044455823085064696300633451405124833213732820106156777078422603331750790760181346211676907186799859478700864853309436051181108553604340834370563429476937466891194341643333818000150441162862368320933264435534229196131812024106645424022558840002074084298631027295410220221884402143132424386589283600582076553564379341646215832566328694541997742737145604517313249994624408573641114305489054872069495918177504020163532823733000495480792453129754679032957121884547193235083651543202013029000439462639857042420160473775623448769564154239427371471487930226126844001763311038399744877374592915147812627167927653874524812169193375487469004593846780843248799125253148060297539458183022270887788491698573725978372767901808326978104350236421738103108610996413185811915873017692181930790315106745072253271978892758219413981355102731591750246371856067250292975455637942849819688702208695319025299765733546805757924301863682438554468370012117625216678357542027328919002749554623518737228427363524897353194363097157599009219343849640397923149964009067477851716911329477864878752487252665992216649388410932442123398966754029681044740335871075186417718925031491500126257452135210390446182156549383435937678190777097793514221165936850054169915132372076539454064691844017817377189839458091564183609256025351290867140127641230470600412743657508931135970316826243451462477847629513646499288831231821462476671764573748276089541369196518565480105905141463528324990426818861766539692695542899791774450186103958520191273745850574211691651709500456550431839542017913106731167626824972788507181703270688160838206025576026552974357694511314018567850626130413350308735435538989870848149147022130064057981975138514645024414821597281106791764146667617324276970880233313513558936662938587429555193368735274838940999405216485400697957090976309188893199677049766328979472064364209642257322442374668240438545305429436832512392125448116973595975521820237402386139488886770829926234703933576479102152469496679804200781145280377310570560107946573585418880286999125569728535085023515098464361407060072740540234191859837788622252888960701708560976471507296838314295840215499405696286679146129071296625706445765881308750039666916458179668858988983107072585877828303825589294729067125074397062324245498476882737650645348128133818768410175969588341924766022504968591617287973697206338858943883367499239138621227785123195655223638673867273684234039025796084616960787397622276560397409958183316626113422778477986182687081965249697327894524617275095928714398988636969458417089518176584642170966326958393828582600240004534525274106529393147478951362463619478683187170916435407237292445661280953409921205114056241388350971749693129926248772327127372297454246581214138750666463309784904627098934706690734266656882321146589840389063219298463178231153696410904125110156984905106832787958699326790395381740323462332747765530912793764240917127619428320557252978147393096468719056432860211471609419589981540958417006180510322185473271262236020041176003628998683843283377683467968833116138348318623673547175111407213190474987900544496747817619648339932360873211422811030791553487080882831745315045371036500080153006155100222672821260115446638570032267341849116126588439138950271977412930723653392906087639314726376696982047756569491682048785562420644362668514079740819632805902479686917517523190231786021631989245427151062027187400743562671072393114970527860785064372823523777868034976394776304678377785989792033513260269593616328972212774919301317167622038414226406740697697015942930223328758858167207988223833442718323053606797282177482255003694228676808540353795000566596372263834669162395044316766006771626689024144879642664789235737268792687091688884601976957279993653659746459285984656874368489467903074717166482647980600509482446702867474519675752348946985902128465422767936819135061104574783382828086987484154845409103231867311583420930204890516289367466931073226245345191313072564536094787952035905655428224818588395479788256475473305573531384998987481931768365166258370240459570317399346469470294055011146067849034287114303643231038672857485402926586721593426920427470740778849819901075706618879792411984140520736170580543024794046562776708770603026016104048497007656378940053136563804844058903502328304250975225324865833660998126537849198767442034010672762590331264596274348998827842505999769294535543272429903690002044144739027785832445945135594117831495132971169878669504610980652144825820657460592718663968652145233995778642414821530446479587758032651463663484006532779465699625969318753983782581576717381699250470453859875405933515672948212288301633487449503076566691717276448075388574939901834619735384304409456471227295171457938940602432502777254927642746822081491303131344243624065932642219190130284729341311915903540665778643445095819144847835974516804664957682325116784691268919801826485551382007856441078618070476188326079590939384782679739926167421423482694132114407257105179949792519841539635688326116274646130906190537307705779726894414425112488984293984068771635869130543842546098100313493787296255929392371285130352316173511122046195971183316917885146157019573473214147246654666628660652694180346211758439638005874816078779818359716517132203576876503517280250579849413131600034971482986685506259092200147401351621180623892168408514497032447838821035363692071061444532442190866476207823736711770918707561474289391795208400614469291650397336512069241470015970544889123447446758302103301113926244478034519498677385626430475355218435754105957336510188751855774377668013879119664795712725716601126159130574797131942044508308454763955891549877390395960293605015792998579177247012015542190918784549148131577130547544842957599158815097170372488073639064546366177987468963551824167403402231479793887928710279245381993614889509528143438618240229960331574596794777945114104245979906619220702942138535889252498481987937366609723017841448770058248654074036387124459856268293190733473048279443732006442070479187746493925835462689487161732166397838722016289250756517607178184457472342721590015039679808392832150678633998534403392514393241836591858079069822153833475801214443215660294117460810689358714077495482842801177594204111384254649759575991609060853363396354586313626823962989292004369618378093414934979684726010087451387709967733204096468380636442151474530640253563507354662390978627741000668091626656288008746521823772528816189674857748730560206183930759623632726665544433333802233152958686052479053476689245751560682956975911118567267101933197317153881992071436702361677968851826296885705378213453609301802302621922880133946074923021197079035772451276392647036976347788008893931822117559189581304530486742708265027907746517713077100435902889657607262344046812275204518950306587697601779377398533679474627464024532745896959666752045193001580083361700615324380863876574488223467655705387752660757305904286525844989308082838511440875105441196636050969992793740269638538476705834079529318673565188861702838795005312106448145693255869494095183731075247541329123803643538349375553660900605972534455105462404288767492118582367902075229704080727502396657922422955860201648616410247305340517588532382179579405923217534246329893327811549713150413627711203262106343341705386736633985554188555788791937008838988469421570170585286434532138748870878583340204106512315788926842659656793318148205909023002585887095285637857952688526989098643644582383981947686636945992908437294514252824847715075472752457345552134720135469397456054011973418045330998868676582134075335731331872220539793337694827160552316621477657471347049811624658099590600928269801892706172251379134603987137287981984553854311341792256647849145744511150843945643039900210143962452964705071672760164004973663971993320926886197880071043089636609024463829450863432018932435404178765003235448481182746047227534819217530661648340938673921077034183048304164207776558150722162700642058457566007864700312868804847193569791714381689864073430275791204216850573203221395384028224945473738190869290867099004080420704256638646045013143976058278246392029106001049840417099739828580972136717588715112899600923084741397910950668191752116285130149613294042069743171246994374340452349266247267491147790654012514035731323190370127583853556064204067678275138271678917232382206987220478876859271480524664594417854717772873613626002427947939752599459600907656583145218719879965604545935096512676123214367662125671777170011089883996002847710843241455422543863048693395457214616820783406205215556647903491671200979338398971773434652079046427017640700813245902971577664306605901686712017617117490646811465776854144255891232158375854152049713010022077472090677898147354067338385418726616410631103165977626670895954917708959778242832660443948298688944884625019589586503618026418890861818458802521219666665896331503847369685931069304550295219146362745602357650574906689143573664887311959961548809846520513314189102970623386604847267328279957351807380046854437887469542879981975578419430893376559890478110578655911185567102016269073939908350372283408637895078612004571761413096711693376452475707357181273821515353855322875278952075128433995249904331944165378826283877535600382205879165566487526919828448273575532410603882350888383423619664502250597219145554668446585776838573286211487361504626890692179322395189599326231801133921633870139155942114902645632276523106043899097075826027750861057213305032321053984344049188056645925789523406834592117119911944235404955166093035236652881030118049921701064542581437846231982274104146068097042166326283209549773755015458703974659623490597208124904005059112852256647215878395619910683638403417261636100760513614012258770362053514052403021496961913702522869836142185872973556415106096053689512239389092992149658578460402015471731178363940721388000924864116229011824194278708139742572289858635580280534362973164150686309992068290856523877724621518721574601658237922863004853794551861459083050977156501410243872638641537029611883649513190897334603554169761800012019076980257673282188099257402912301351278151545386211431923077727509357696505742033519993609870606799516157649932045532982243482589410664158977233943257038811844611443482873167280575992180513494188116055081343889976493710837376865477833011344392584606989142097152406632847011489513137742189974728797217109287289015667768301169091922544411446995093897622020463823722542297072535733903960879276987874905648771540031875349112225612836704505424075756011482689153782234476418708543895316965589361492851139557326230992503787064695943407738709275782410634487324358837110831743732950346585915247934953417349567139765221092430748376483285321563805075272016253113837192011075001811644353018211383924096214639818810657631434189959439009022887541428095785664092570423350092917962485593578756944465584839081024557513372270822745013599183655044702710752356114062394634753494442604112083654481571007411350030544526384364555567261718553067067113106548991191729292315892804622563050430153818004939878724329259964544413498911626015246806984236699257267303029511187471535171176395652186330151711987717286871117119420413807807780117072035071428421925863064725769546177421038502538231093097137203459463134552710247047315512243987287866929465041156008148736933792127469493890908754910310365914645528010171681288506043728271735959381030060123188968223849031629110784268857709283628771407543101873524951239830815479254657681067244623749819308713638262629848872552060291279381381455193680175000755131863960990325634875907618075264219923547664115371634623744017830678535044593584689243396055602899505281428149012222882824872583021978744870981148968631556399331249261578923938303264632751262642695713222559867844795177060285496742707754633922644307046752614050670510544788313300149955619683403574116220940064140907746482507484704280180927182602665554376091119273225203367468457498730569991668077950864251271478035659530563204393275987420101685236719813018880641933369740511825387157105427902569325941074806093758524409004403212659249398773848983747865110460695892122338762179819956221851464834305557672207058309681233280954350988113790754954211814612707853620805552601329427964269570962279188011129573386646246547736956792451110003215025123130530837382953879191112903563962701736288147322888963214250270150223862995812833762558127566437405554271673414263331561035031891996670389519086547703700763802119680066325272704483812885080185801955645688751143338090217275200094446671529586955602305653281838378174463749481559862115738649803206081240107720461206326219539939047075407258296998968561523308068355724882403476555987234789221834592906571777470255773340996513083149210727857079491756425586589824070083099528437559043693881231383933869244066620453811136273197635618279022852921054354241587104705198042891097017016173304585158134982025200630131887715131246688050279158440399079150062941017460760258033403449805674463664320784357148941028881315591094459593515169337203565896355788676951071270104382230431934318657908298656992124757875144310649998005433363801952457545152522889062961575316461708867789762804991920353026395018761583902764229309649823495063458315040796821439949261395280776539490900622864692554236832563625402273212859012766112561583168828847482007082543267860853459216304076090426746719488031187397261563851667600391305473142923525678265114885469993942149036843460456357630152388072887074149635196602662125389410692773759643673151356926955437000639697179641767424502476028026418758496153617424902843546716821270146217827721456713911013022273260001312105565716067336720851876816424371381066272445280287104593109422273798158309970388513006337978274269269896869565037735521830550858624606312152285435686832491149908401639779899187693651111317226681833489421853049722699288251578959311853619807628718865001974995684327080918709695871715410502789454671428655206145068932855585421288564502339310470583736520731169513750265887870274773983369982125169570076451109337494403646761734340254583781052158322662033380512030546497017573050422939274791437284251568184882174674918178760059691992738937677455794389017502969709609459271373959328256045715030989005999984765875113005804819188763707893976729776240587474611953188413068828191634958857932045689048659487527965385715673906621857702468804898462146775098419278824429670701167918882740959896719239234142193068683779063298464656796015688643714392268016008540595389813614945184503020135573306582093889061288028330374527639774949153542320611499624268433267360936572055171472478199301072061894751648548843428806550869336716829364636883154631030490776144510753636601043914556807200777408543916749989862225636732605597220688908303578842156644280730806059732918242625279137512535702229580570051869310775754743480839937263229773266496157502451894191860702186708704557102443119506505054962023252761792667385307263790363835592070909436750856071208658907081206416289555140790257988203859311803596555937322323812593665444708726408168810990199332036041536112129148074846518241301084403271095542719423180562290529790721057818573727325657946351915074744274858937573815144673146766510940068330483608950491992891089558248873797414325360939968975092690563339084130319862826033544199702583274366633828532217686513290072682529320716278666660002037552882241875915237713705978415982985885238737792028054547498807806429706276087593351535642642208213362787759395430007711147989202616778969143790826537104112253915280955002350089904158692150153971338685794751508533496894575680669059325065379838841122346852843432218110934902306929557432083747474303608106401000917600503011593321703055116967877152808100003273080980886455961758587134194059364107525248887838281556936092276370289749004236346869553874722087522126225424867600328240388667756211776336100329147299713479449373717477881001858493020538307726875524778051008085074817621222491545592967355377529522696389540331518167990662939274157686639737754321060820814642673657702751867494944779194107758102145153780831837483371506701271323342694704009836803065355730698998239202868204502411641183201938499739247485822737708385468963163343221435077827020833648265873320162885963248464781341136706744918405659948158003691699487313227689788365253982743998670569490718423727350546409755184033745411138267064110998669450926292131327026605686313399459363808472985400352082611394326030268246849519614827126704980865636861307252814464669707220644332217299769083532746836862990411647969795850079017522364908666310349471523423283800326832990389852417987119244421907846202413479991497848397848698184609880086525540008182171876949119709671323432093587813247970584248654576376118003074796479466086087116785317092544056116267971741097555320594111665115017950989759328403942633671040389098158589123120353216882579982046976524293996299341956253099444436680435246081042383912892453696477621123233333594046323167243177496373818540879827087514403169992729566175553663121218034042858344880907094655880749556002530547990740447501889513550392797792902515927840457315451807543236535923550810015522508452766257003414245301192343525908625866133445835013465659835668397590160630797790076846991516490969420523858963513101442918137346701139520219578320529943231138006996409800387606193900914337921364436805601009444479231253871330415914435740717132226055840637368392845047053352044207516170321286352037019458656390855766755170905086062457703644407629927208749895205516550915429876783793009789819790768303778581824173793762631691142133785539119984549462811992613049435288061107546714447803663143513223456080386360409558104208231323355508312809164165510100738243947346795734245827119725939969494654853804721665101048110291630839686316777267261287299943268140814864818830412541130161309902886392720535929067439416502040999787982791248755221864445371622096153130022446267345101399213734119855925877140770865077461993292129102640822495844474667108442556737324315915947728948541716733259724923269531240266592662423841169550905342685343320971052991310027908714400275230091668917610184951896262358413239459094576631027550535382466538874149510302223392765253407308556197077286134150719092256218873456714698940358086434754242005100331965357133606876409393683781463563799648575594299737250283339354984480134660766368240649143135056729343111710541124656217228076695811188000058049208476331223941507968897666457315675202697295925063791087914903332719507665762542252977993989343862310747135464692600832009489885894670297562206251175275364455683581247307847972431665577648617670835921190827365144583967180274261808371896578377681317010146320340216411937439777271919010669228654068247129834830479176035424298370450546384210610634006995342886267613352638772169986849864630580322133305819773217005683537188042724396019014027106709649711084233847505672903368804519839072773789066781094839944103480855770529029361588803892180744166693714745207211836382315346026728507836888551557021043011536033881795827835878030741118845668965257306956698810086220620525192508088881524846909009186078224822074216163182352229647789071001249055273579766942867454503852310429813420826971756214731740470264205613635213998308064646245916399714353423973073265359514697100315499996686989039213385428014141244572958623549513421939925953065570938905894843504396548069266418187062729570920348759347282222996866158282299834491800105511854063691640932946407740070698180107562470786212087939303516495404038772297805548493985722399562813610343139340190295843240658541787976796822569191707644325267991239584319830175857008806615084811712486949034238312818297415955999048645315791664545706390104861922371018077733326960374918217123610699275218611675789627548119297505707457199885474898031525703949558302329239673062810076377581854128205208140682729010807621935692359309678239324587567381335648806928287250937796287830238550039934506339211464877664904723492951049121622660735439276300253575806862597638694804656332345622739422831873971099790716909433254726408706993099106187455026650688129744345681280598975209940666125127435162441690805334955738865436025118923732152811620946899989306719854519079909699702749115399259252276615805757990464415972452671296439773521748539438358552913819099308427262956812828732402061811506291031645058991012856443370175140207950924897993058676045406287759536070413529101762988593443283027699925369505047880851504639416853245162299282951463557944475188456105815278244564049029092865112184115779226540123376265115706673441832220550047191363680450449355847322059852558307665258765221105665178043291916438373459615427568215473784323681382542426533258474000283909496980309943677383163157079703371996003654243165831876661121685605828433630992271862430521540401533382429771109248776094198759839105829149302987424730951584970449894335560341100152191707361452484595085006619862153517486903788211335365533534211431556518749256452462703737506709225008495895710242702743228414350667812888313029778889446070742937145345502356841493635237062721150881377599513993079776585717362168510846113984968556073185710077464479429180682559168253340583040837220561494366161265017090881271078001084661825464733695540170366199348042555819220659549557020897144368207122947665543872467143810934051632970385423826246007673116750016721545050942027812957766562287864763049354473719813220715274581312858724270539783812909928242722642709469338567006270723285425949906985429712060874057142555670707927892775668427149636072445576494641009003732874283414998417281149483964391123099655145575604092502001410547636795111565961814748198802848899241653064681784239153286337115534761599967736672912411498878594437625074962910119267854789791840638854177395024475300945205225640135558271716899281009268263906782239054077698801751171939453960736635062006903561634003196558749783943663769019276865171419313994527426958617863406019431125808199232684610729829620149597054201732014370921081631035827444785419134179387993914333716946821763418488399420532396832717684838532817044560562130776732312615805251395949890245388624240863955109118794826727893818547343825042057761984713630040975979329908267394920540206566145455820219388285882323720278243685483041890972449212890276490818747605199069156230451754577786298144777704991825394746029774123224234930535795260841863736435107611142979590708305912618218564228903898837010867882034883471932053718522878976389397189278121176498427353540019600108306159535302731873678067762314334453496888649763864842192658762522106234762811982223211181471385394597793835531424065391363577815103231168568321510938806293256767421861117592868588202133222828544749447005729293606696650155939714349521090142026792511585637765660984747489797659437500631226308454098372133494616561375579645095749167477550290405124189691540575617753540384289983979078974215826182625943667619594084198476975821292330791092936666398389866934082147579793290802406210679872748449453676793548340475199384749282827590104500870525981550344591173719763855705925065822667733545595092417866684885298627133830092342920963584941243302795793841973882272272417516241021208123346208372667467931574555566953826989073617464528622866115290585237233481159140009278924356108653392270254973745213450519613179754776964535164202527813909866170519112163238037777515059386179685521169654188332162453228538390183881753538762600294120297117938731452525562883073685403960336654149471149186644543308343938698396519246777857076378655455784747933478505300248064510343757396378742126715861602942085515473741252637514751425412268140139234097191062621176046201991555913911164346271346192155109772647254177109744219265975318991893696972158072653652577077934819167660864044332754808375175002551555729041085048726886037960788189322070990529888920011623543431315725649198934659487396828272288809396671094646757322158249029724722530954922478342076125224124891784880444194976560128608236321537885981333562158383368212892750737367930185045560976984069044550937125861998757286847786809319534257231792941002053904672050315718527225805392220384893593968174398962465242436560691321705315151940427147930145161441314468616902313255201663531717365740001135474491837672225840810716181405133082771370494175924285969878556827614256946417816456320133396169454465314003772511682529736881724279150561673963113903190405058721791102256339344889988455936323716738510747467934757376445141102418057483823384549180627165283985192083032950493341404697033423205343836521244174407015308601975688526848307140034360665387887548191772318917076616986472366017747850408972936357095171181423544532966542377977607779116130534124419598075946065600114065895599914424676433154862065040602099752308602320566963868221952807519419691074629822787080882551821188579181105340692187491067866734253468474552231780285391919050133850044075707417653366410908028272391404087865386842168340082367530752300389086477446125969393553733551010284590999947011339716764634521728380709869250250192211864873190673924700776649572750083739709565348241280552959121139371816206200337563876873178514451082933272879387786138602849562882969355230244667724231622210352824461051344837093287534434318634942643731230448661749050363838673955766389807614098206018902292093643411533758855042872387900543512274772835310304700591963229969622692475279629569681325743949812163772130931360446452114958425594462757405562673774176693163136326461739234800991637025767719111733107865357685930593489124767223329768877911004519418927200271742632794596209267319920539860207562985224043677591301684695548105169052512022472552571317691702829098780940497764411138414228131903299646929364874970946258895265851574669828338619345843493137396078548038569485196085582602068592678140091152419356552057510307322093869691191593092936923504390013675718398985246876656945078138714611046317573100259032296264495019604870643838347712099164494933340986222567629847900987854319359264714489333970554618843096013874833086825127592031255449821098946432512659376546748762090625837806054100680344726242300154247286258849438136409575820328304799290793356443830186018297875212312536574480224659662780284362510069523382146824712373934137546983758552853449936852143414965712259412061568299491384854730787256456145404776216778015454521681818806041681478070218527504810749205787966697674129967146646496204829090720942773899863985369111329513134174478087425433333157712114390606315360570642915063030117409855240789907961942592538926211520803215049985675544171336553585183699364645658923016076460354515881727585396826851774428991359098193466938505254248232509001023966004622636163754311820126179477905696516188406080592631112344790269455806501430078598981611841107563284338666966522582539221317289724616089133153508294231970032051434306959398455355523111370323065272223241295891084118056746391878568314753842066132855249708210454399202585817748996810752466457387074376086887688954742567298193100827304007011791120314080306720409019228626719272504165358326715679467124531623223121127038866928297091732659335208620511041452692614847344564817461016328239814874450325615982537285812529092119740568662451691490484674167098540786192253371211461078075057429171526261083677728008811321025291643536866599279558472205890748389259303345047664274902693621409523767805926231807310549102853832436599645084779080502285335680719423844476710392315922926610150884877710152208343680490464917353790214553630113343612240028972120465752572211031204890636754479928186898628702176694852160734435568985527079739387153633892453386069289306126049001062687832136268597714006559916297104161837436707370405243825838838528461600809821463230154346428209964366828008681344557804291545183790115730407437149378473747398620588913119447421538356769769147159690718949048669851139651192656689958068853741304955322881364192888237784547946793146045453773715576477277649989466325799319327388333565601741458970293179533522597025413678389629183953495116773227675082423150823487915199881781642772408748396797437465542669810670580468558404603143319085247640470036653652789790657975794928270496749890804251055844418987749730916310478049054878594629300616663982479237804740314694754849223803401543946534288466912518123080936785187125879157069594569962924371270925893391386598617357266067877709586443351372858050323002964317663160681184306405114390368026848303853200725544311733354881196016621437526052724886534646970334131650433072884237632983209824887719453709646147264656209170962638173169447638130330371495077744257150348189718090348013083829125265967048718270976363135645309310418676340746678403134367053792781742143915548382745206908862951243856930661493436834058734688302101168250516436255431141107404935568488364559571388620819747023499133793545848985460544174158835131989955140056658451441522221963915190937938874001452781462258692122544650550049817780049747806654713503843169158507796558007486522798431265345479029138503509858695598596919637596545204518934684364966139590229425931832184963163799041883236125044951353491204013758632317593891372339968578512831458793436241438063623775598228313085091364243476432060708063334156612638252606592645402344863478534469639832360154643776401761819199581894091715988635042383553948771651999163697887058583053860858166364271849387938845006982382559838864962671551620598825326584166413674436201171164432234885732837723022249700160578960622719494335079650871300838763401721576749418936166402769307698869321765997610722008147349940551335392544633592985818293637679728092308828343023315729723035238796784541151713979062359419893954821117223003085337862405085880691869195950702110101386389676944438882216100274772363517794638599973382142967103247280991412808550260876333255581286665874733930726208568500841320583366074698987883377267050134487584779558553220985432225556957426149158614841802242994740656106287371875437013615134804857636183970112759700876110534305353822702388061975054229751474702712758157626871283446929290033683577308059973905036746901566563394697174973757135938476830794820447503315912592249872801860427883838147930464732572248144610931446083544734006968718197015044674433671543253090453304809790866746877348708958083253589957136308763962618208174953366245835841610367047798386998168782840878936952092659684927388353786964512346203058606408188054216439465406666514542391987551747085621923842661175520875065604456484933728057816202651178585734198315716179494106534028014213966282315125881831917108985450679914662148181766333660735188419581429911660975668349014132200606433927910866576071331927644017824550478798488224088049291831523891924005721351363648710036119006638371628328267065530771036484537971082615231422044124882992386883031796947420630125438350540443585785115057210497688021267643899451678278606326549993476534327007692829870489391035360232198566428797770661522690240186968188623928227547254293184916039932892771689355368487574368865550327931310508860392425470258954853524430238683703510987954572665368500898074934537007241924424059006669449503547782441366803610086027668105149360718049519576521271252176495479754113410748978434906591247884200331275183076855955343860480679920601227126414090975452961698681362212179910913926605974461326060284568477270517407988967119270663026059667597899117224754260877854538408545473169211795732860509033137665163991382025932387904010598257539338630831122291001851719889880121623050218878670113032136444417172520061130620902057749643021084451015495412795681416429110299324319564969295934256863990945673683706387892939839574880760283300233257295965912029059232775117940713426102907351311728961770019023051934774522561320267518104671517089738509263330348296594565049536567508616187100786084104029666855410966315956689210828259754972370914255299097538244956521979684983354130212018432566114259785244132379686591130715322138946365516362373635990467518139854018995042946499987485904978942121912005473050262583597121757473432919935230010964255339490848287874946625212483418352464539067085923277434272360020413812248685476312949244066483920528160305800954273243846904640057638144348708089273749744993305737167838688094365628187540218314311832020247255175203299073963034677549986069317639501495423849067396748992857950315069351232198397516259083387824058333005429477512994831471616012346484161520818577050244840436005010026193887636816862796837934039019462092809822786465453001617105114804042349095454798951806111105644589938209324912727776201441572693070121851104214837859257431337503936857013365680205129979290956059601409165432030819952003113408012929136083005338713057294938315041170552751355626803316233531523006377285779133016933918607867575396305470141461174585273562179045149381470376643660685971272246657594574622275675445895313757059710467957811495250068806764968829752170059493716017472556421152011738594976656082329281401924160004327981241213648522501521424899656324756015494091184480197853989466084582896278079683192631361474977530763827115655192152091179876022274019380902845748987580311851775606749924182532139150133036288645138178133600786755851201792442794810243574403211304028391060820001865840575295979919549474676250636831817365793186716783966312084106836193952823940793410311025924591918717761060536659338873424035817346671300482039073964831459604870537073911432544106674780818579587253267318566404805461825434010642886106462495677231884851448330802494573864600425208942135659566308336857720044001515368823057464159687195959738239207045227498706486053750387223560087309759238350406909415495373058562850015321282785003736645129850648332715177889060574683231659915448724145245532427731710291025343144994816936290464148794350951076587645258730815880782220153502783757606175207632947305819853177883234963687149608895726610835485027711039490658950728573945515002474038424045309236274515457073941780010390463233677272386301596396060608174548168165138302460595680498148596552125693339942980823710191450946054907575304936023185974665905180593705974523843014660482507055691634874733639113355642561160149998242581147792645988569326451730598079524420790891127090495773397989686795264010212281724627222736765335413554973504948161140676978375852133503872816811445972901877564241555687527574649269815115940551043158866778809811131460671159429528741184775141289822556506307351999161593455215686086437620342316013257099172268758870768572902810282211514915021042335157526292544324614338525928226984528374136562036073110818351849197728210914851396006015776926949075633254772091725148545723940411925019649113702569600412581817096158467548119347144129044893758380812875923978971805797607915988547513234375781813931018652367425168837490506000206711661582016991432442398123176333201480204105029731344861969912046436428972008622069517750132728210359615087244673640414760233335659191326224086160530739704350751901799871149710195615093843656250058167696126043608507561178892892090536259992649142804770359701076882426069691704310817147172337860225694099072351076816141535699367427914471571975511188082224040436280224295938271377683431864817083333416919901396249983466082454700884836333483793055952551957466944657871533505143101257147780855654568560693868828056433169435044326788815492902727206314782953127151385953239696066750395223833587231750354225190088574854936090272178757824547485401781506191410190330845520193536138627952361368561017371568883250694514448263852525353123269983343103126989149924898709293173789412760032112934445993218684964668275924654611722529110100122306006135423237084007839374128032452781916359318370557932488071641859458124370608370231349461134988484011767882436569587733425437618283787854046218319688927227258911472611782703741837775766497280570166517819014118709859543370185454189387928109713712063814999101215147364238728503093688800606901926930866232036990839257116928770290332911995155504147817154703834576794291774356287071131800069793145387956675964271958914122221389420202449463679391226963455890615594514035259678404144215848647740650009995174338311468061766723929381675211563617651428488808822650621281335072845351000004673718471121975027112850947513423347239555355444567046978155527126261915410014255728930087843156782191012421792860607577103837898971795526771776732983002974545522300993313185115993908197922600261518738486878452145670320056098791405073598369022706096602697106686590847221400398105839774249222131874787722006927725742018092177037870213684027135881579380183823121531182161298056329195071618659455973112765737504716067149869892194292377562789810264078176665530623655663598390370024521778922152614537059835163828343318923179072110119864600364951539111233872459904831184840668284877584045547086178014781960887202529636709825603417393637722758901251477136345074046119118318287363383928322534880331251165511042119378912433900964142769786266657360508945549844850962292561272807047208635387212739620041811574361027537043285221102650104868314080091918521078830268063956974794269341730976264350487114033505474258819204212068002704500583070858309929089435015887117299007473015735607357665779931032513589824769328770103075351365895696208493308567545807995637365300029415840244852606067204397636623857159624609185952174721549688938562276820984668983454047265734235801067881059195784756915211561561490754745108205899628796651983207777966227971445437932385791540201587042599967694661230132774791579026546292592385745609613510963260479100344757925332797479835641812748685495119589916432003578857641176007709989185068373024986829817034496024573284139672926783378905906310463324615099966736175847423871104122501655219331827007106819624651046653217450460864859536957669515016079635713305330285444033553761475318886701022136250149163494355684394286268561395812837432957648594407617672848526607343846038080217144091471647085668583374738048440683397707400083697710807984887076478689859001458040625602867125734289946569387965703830493435056834237252083310264141786514371571342778706893922751014230625978992290868878830335167839304170067789767790381267511886191417541929362202268064380470882177358994462013701265653900606094925394594622032736771628066421702136048621441476539451503365197481787865647788773820447165289032706158520502881353782947487072713100542366286166483209953675856959669047750326424538680102172980980362857545443812188260154286096388441978793812871030868551117279270553324126878245406408272927119098360832275527643458563534062021360462171251080404611519441966689143872128907489325863129234909382995497492411909130069738982727140304574687766044859321294145119720806218017563294928809077074242426533590873704962334868965045321210700511736723578778989026481596116747882199670613032707026124060953427521369700779555394356220328581710259742757186988012272433474265884046785256991961220389074226910371481293806327185972785457032235534150758507173176289031595664308644159393061938517044621783998883725526311227646679931142211246386804757729930497377714873543592883690420630576288885796706525398157749953208090669652323279696998780078120329136302889889917022726877951934983676059844621233803987219835535987075068896386050806512499153430816987728311421374061805473131968749313078438820644571870310445159415294675405352888814596413663870731072815761698365022361205625402433636103225427071484005740220106563143916210562658739821797553864090133090399610758063716710465690772053141729454670749643647132552625428006007133027879844447131275016248185073930202639307117424665515639919205906806090822540001292219108951071828027930838389690606680710946667786846685170333054937678333926341351286441107717044892220379609621557827104748792584168980862504940691796141833549867792826499555490879581568674401315732240637178891111466968835049427484725844763103100381953106491655417284226235908870873327273912838455340230882522961102704889703476754563827953421468609549156345051842316761115426645042163352709265314838822328885892903153103144053639175791742346985358578823487145861372835388751518561776392482191421675758097751208545105557633241974968858272187872501871468640203905358450595850647692303825693633039631282315797286259416134126112560998190000827156526073128287203376323098395241700911426927543939327714597650622115293145275653340621522524414705442486420354342683448707027607427256920513060709081294201602366744908850502380778850937442511239019790836026048135202409600388659611908571823663769019653439377758631630798452115264527104888240542793855945660958089932803489363902840983682832305521782288296187135729769586088928260223290671898701564774137696721515869713011609031133784209168607311166413646868619880890139612778827501674258128630538374994479990424376747858910236336199807895240230488162968343207574112540758910663229320931528567180901135782837207489889108250328094865062334094985672397677869918055224863216866991656067974723047118240304249212914750974728258043756902045483532914179132394855450954545848503239345336371536871253046456683111071229791841052648005947980917494962897353997507418943452122322904427663219658980586620157022214958348416197314782103891999092246775260308919220367315159214927462562905181399376855234760981448590481319437421295621074100343337143134446402248577932067883360449193899708209243502816781807547935276140057518131857428713640251237964648705222962073019029936498496568618503874462600676385902372195737560280702056816525775713209495031626808044720593429063453065338223376610298334402215396080368562405135080986754080308130302662863065416268540104705406933409045384509198392688616177696415039501207136726955838837464157538668728561930262453494652677552160646662151587987287921424333063027860869233430765261839944674442708117110803369175269580000824807990408094469177158098671784400581704934183475063251088558466515390607415571987811230598391364507584409756088487893710267038656536127678371324376642841098834656340314701341246874537948405946518597130259894034708590233653889308261053362581692346816170966586199859870775824102317423734734986564651893028236034937165673193745335784959812522450447196044284302482313555970975990516402436118944329016998053072448412958137475222593308061365892226097931759771238404056074680923414480764254717553231969096540146627139247968245891414804448140628620244548196126024898040571067691538032493054861753760755519402354335820396312612609328470498013642200662454369000439021165187910276364645511730373288781073109588046050884696386987884036524293517286086970878069907292274625342934484475947904027987426678999011141562332909276215582060014448649094467050712883962800122157148502968944884134934843218060515899841992983571981722975633874653572844070453610001152216577401727322528944870383106440161717013224460190239022242236117027210931749258071887867015203830486109080063930652550875954688704965736656918721761687884310527165087101915304992217778777633934027360174873909813043625418700777949934350730264103866184487967785267001006542445056328018649469257331461155826383260313386874606327098559836189003514314474474837713055431466505183874212177776424130630434865114629861068126295905146120840682773565425358569531272814107318959049617210153210693572601726382009611834792734439065196952770817293861025002892685890706666033117849063394484549380779030414112243985718464515818256719059211395000557388369823413499244877034924418419037401170486650729388241554682412182967693233315662826042105759313631826589697305816388295565233858941198220464822182959835789071490923133044921647305651530275121481878368647905607612598210965051452837220560378472751124377217920661347363606682352496716066089369071113449759944077778729615599508548090329336990514114188991836779796237573407850689928636353348833359238974655232859433677475982799800433990289581070223298448196277452220549032863284300763976603819658203552228485470895288363316465914856674140458115723967688638898172284172765585204623860661211903836255099248352973364298569131676251889425354214111638233000768407281009573627592497718674495697614957730607810732595315650336349590206364694990277608055915537153642220340953152327775676577678462728120600864203740935693345521339769679187534885800298825407766740335354309898439402095501794235537214827408393122724167306832463288494445881684647738238116339129345022882165063024752720265713378562184872879695407078158271020090109434330669575223031804423096629025481466549253783634739451147236150070509005230645803605147345846218686000448739397619510102676317398016009813365811060082774086833115283180428398513356734643919682608742292372338618339687694490322100216768661543130991999096329823034075120143319881790754931204846046899464304043111390331064145037065506948865353972664633622434384809972026916275504425844141433020108364654299555927201854290667612231610237946838826453353739770521702076155991821860146291874114044763666969103736344516271912273875353757876313187242255656001965167594307212328575937102629606534301927025703646250620264620689556126102114989313554343622265952597656070768698837239607028260844488774411760916682941474648881360659299902933458791640006783869997014523112910547460519847674117543860784206737794950598935284706660266149440167374972145523231228423879890711092933128016331286962493464836281985467395386477474248046827259508522993953863960629834147159843610149717558865669447959993352497777148353747615719916752465424368032054312247104847388163430831942087420979878159303944730378178489335325847779315157234050023243629946333344966295275594122202084972815929523274515411232018732410597870775130864987106071977366815073565460650226638435952756744037004851589683675480666337821257695913173593715174800068244011446169634372393909093682205684963906231406423523779339910975128112474223002960921089849583528192550320910418237953784680140846355291899161687070073205368934331179099703202469104284853904443534099942852294688594706294211945107920849375962255712533998394772082792832225780562281499098435925445587718830858759739199472277805316014417223660854174659821176090607620293522782879920107087702341282130504387547041031681252688774153685116370051373498357090164745182731225277785624865464901355089579373329759964659545626277790297223255671655336604307032222286320297273874493799182107319962445741635386649696662900620200227325573869416523222342402493451349784967064031052977131638718096652167506257909681137838676001464238789534564969593940457470570366374775708666526956473383306898784846874772955814841945787533942586227043942530073342366483844210472837703559788402264092154456488475784083042370579467974233393223269531734957842168247322849268683181546224997554291835613074820772189787371303827169748324943867292445180386074864183923709044762164752991611675976712619386686100002502824982795685936618533685168708039781225418952316602223193438874553163420799319811869504011196440648734845746437447235176733880278600519326892210375037148051804461289073715298720223325838572302552403307781420657672180700191153553148764970554472120026370199114483752010343725085724573357705226915817789906446143124658949403693773011770433637122574242060959473812833431471359861424055229015029635204758102712820817359816594973697971588759045260651196333335048325279966878957600764139616343598636873145527904931820961199180998837749434109827373766227928591614799575066999803849249562826434232584009557631866500717748815072630524932623844519866350799863460505049636423775389175778294156435329912118461114411167583753863553573303063619041536175458971125915044063339044743479795065327058156580274647951395558272088741902720664978547022677934382353839321385437873784040812291383734730112432065748410440957439724470568109158064355256398350080507062782080261390542430903861153736564767030565065567914596834187297173790625466117768511345061461351544722299265134825476718174188540013655971915531234860159541260828068554829215943902367362124866707151352766997219477420514053702145093375840204064152048168429218424855620844295789005376464129599723096578370827998133511700499285694067310696121531160830848022948332562697514366820647092396564003979451015010093329104370280110541424300871792254192253508772744437310393100288985379063204493944557114556505730289069399681951444028403140529320713119959864240270602871592162936132412623373816756673575356388982109613360042647899503765546392119724838309764889292318600452531624907282681320445904290961330368776474438453989778700699194096996072943583249981555109488596809773405116664001840031943998879207333682137905651122730200206895548288213857206520970822229628276119162809486587918101533694672346300150554999313472458673712749300954241772224976178989295573044227171778128246384461461216693378656379440510880018225666673009130058967994866337779518011919202513091177404359948671831956349033273840113270101745603986007101928404465290123260963902456987014606243131824179151497280751209514662054154200361179984733737885201324408360954653873787527748852374068355641824211226164070903566647875058458649069402789849058801908139945675522874548854010699816082625197463190217586374489789092118540892012001140880116481373409526829305218150010185962020972508146673037713593885572319816075372014133041893656667514083805513295035186016719930365880515563054292801407597730568916936558774007797417713471396827090163118756761681735888983348236494199237719230939211800738686083115045142626248294862258563381623423869677394505956307918436011173564275412350923455743594446022160583292195522140591739440432870010686208459237089573353834272550242327614278313115318639631094793580501082382922845597935620431722392724052991279002200981274607113336225089464954296254913504950346524780688398617842339172097351517175790874743722526612075817911792104545511275999656978207900052918737367980800774903586252413461629652430214602899120688144875317464984206544137200691798523138644418224395825727208251569716341702022113096211096263807240319217252475641566754802807074704964165825007144923355643119089015542972557073840745991228368429311920980243636424493173483019361819264051506770011551259812429117474451550758604651176079552590336349750030689763362774796661327520168368386298280701201061491830232819487993118401034070048256415339530137181548280652726260111215664657249967343926869007245453538375487139275695087199961096610957598672883437856092870533150854359224676511493872291088765443576680282431982661570665917553972020498628808298906361574738002731838221031078704760102660495681134601599282376233231094930781435423403281925157339484355987085071111773382801309311102602262247763947914314275844190627151939964916761657973259320437133157628118258652523821088780936269332896495988209160394454596502186403461577068944250203959668536422374179744252939417318461916404437012831612170872994769135713707583915749803893160825465873902281271497103367397923779580220555773416737335229162602065537527889895876108225571645399844652250065218039491977021740193832925818694887200456175287347545334561454445390402970051198260060293324256224285259110524050832515248386036820643274912030001286480081654672288356736443574192477157672425561158562465368311212469767275155661892947784976436180764225813813643798550326653181591006399641006178316333910381067394604260595841707920455311214813093259068139802260111633135424814808995751847624651367320127657291820606645733083704220767500483415438305467677238500301725213078804324544898288972001412023517358947628148121475611325733835574115084994179813454638599887269600704727355602993488552234770390062397848092762942146183853307771789500040152685992961943040576666294482692831498103742676868253883089276998568143117916600980011510572771983162890713614384618662453484519980979096472914705961555066899951198756622708364456121635350452582103303677204980833017657061667906852733678811637659892295323276131662670857766420802054706758729385909399185871755896683027866972001355811619119086779464719372890438471323706770476519386350954999343261779218046256684377942239767739014231497232105687774802046750162377640438866899984346708283968396195735652483242589326664965586879556047125120706393917120987822100772793840420330463341939936495524555685759216621535496215274161752508302012717437568976684911177281271633260502729484091783425796414229805615372309416053407997692590406645370060725248378364625091534750437886860130860606845320569383149308435667484081892970740959332587853841872617322476130395763548446142212975464158394974131836032428090168488137366286144847954883581870393482887170127205318208099470795274986432055798571286034010549986565075123624950120487683868966712179875580510064816936377778216437461809524224435702452422619698887256520525939486327724990552254580880136300644222023487572472216526360210844609508802492854379947460486310462693896360541326225266659836418414098232957612974157655033862916479126539186067327739546372690191962335766980038643637112929416284352370190029675110082998381679098696080319053378222114534593435754125100035314780132791921495613326286156835912663323086885096662185604271573334489124952625490422306612878133927828050230299423714779214890201016250910903190912887781290830771490535579830104441007972118171265777859468231225160310445632346438655090391781621478249139863302930611616126088796487337107531745297610536121954367465730709271299848596363725042476882096225951874204052864020837231144131553083000915240768908847294530576522102545228979066450197904672408357955426418141347061412183755431636929062344204149348747777766020951862606531308696631452964693261020726094528882715423329125998712222892175087367692836233209905959509040787540736092574541582358026328366244511037670903092380535767646403605270068579667375794880702225610135882622751043859957204902704916778279382784512802514435618704672834548206098363091783488425772964840084480698169207015123243051792282502256368355760890259414248941611512264135890261269113874878535089610825961385652611832752370055401714261862385561524056097822501711269141312061417215391650216714408855448608389801161880721074409646424189853786116691778501481204171809974862743470399449257183681986507107654344673168455865539111918328341247200832148140396291295071743695036904157967264235992417754623594743074868742973896427465426569350871090995218913424087699284519680124174966478022915356020132098015919074312910886685354415492910329271441522116739924022480590747016881044649517546418777033008585874403467167112171133296860071446713635338857255565012894415359962323000630458987169472531655141839292421138434076789559119558092487193869010559902136745174603835452561682549148999990715848814265211557996691633009192436373045148609995611583918671220840303751601542199130515355901229150907468530398240670023160487561780805887861790259459104984701174176112759412877945971080893405047507217615722302844960085308877446880518156539462288683928758046850310417293620766408086586620716625391577686370483418405552137411416548991290991056315094750766105046168505542688704953394342595673876749490132985239840979621205757865670790824659178979799852914340093157066358129403002601267549948624014477310916537570102814799983712985595684332921790179144832483657033984619799110290326401087516016720176864277622891866304360119642086063521458857012850343776138358869133968716576344655327359085153303901142598126175360008076076192952060476517567508552714982207575107596606612804231427549842802749625946525478921915732037653475512095194169164186474160612137765303946170256106917273411597428032298234534759424319400752690150884520350418481888838798147318633096999012055473055360101041935318392900691572226018281409694923917724317927016514448397064426910030203225598020142684832765861722033030425131385901409154402950374814000535272551710844562373818718065483206608646169564367662130421126448475077070860652142391976487616687817436600287764550509573396863488246538392804136283163290672112614087465154126406204909997258356387536724370356905074124253821012720397678790806538941118530273794080643597001093760362579952764219317387015308300128567738830253567826388425559062420816435848182402414289022869872358928145618547311685404543174500350205747450213663239368395203052321456610058153131899697145835757167057784494841771917148452218118031118011081972411397238916845701697999458402687327969818743143847838311380199216376039048425795298340758219367043905235290908715469901573051426748759786406202801622502071360272764498268680167243775031901247983514140968386687586976760794242760511576952854301337519692501582244240040888612595602164787820700800999034949737801586775551309261676642524597926759966185342613329182692052764451386236698207262379700315635691036841824297106610318300192630858372359102867131185583427037051536417946389667427299474348999770507863420051476684696183586711856682772684714499838194597452849099338715887334365442481766129903769138157209826555107599846348082787862641531358953974198590023635222954677432427525658455488281450846831976832041118722480150076300345411774969189720609169247857581837923563199474311931462742346888103128412838732904747089397700864087215206407169302457654292744162142937045072134878669606544464607243920201544213219251492605757766107183187085351730093761092997770639900918726038052109481578761180778552695178730687790604788806208969629067638643638808798961996747014724807018769169265973875487819491282057144261566234499703046669757736489879948666920450934310009762851602446053611055394428201681039857860635416503414288759137982664405229424604742368090681146780905488818793884786284984832368966101021050811060127071617052481234117129223806803338993311963320753476635065462214491637685189317067736060050288030274743153437559523262514035505529166176045463800608062090618774659799991486408415779019487027833131583800134690408711801781316574090901800357973908207743554875575349149781057231695304867199140951677165802004704969120119089249949116672409815584596679988747345033560095185607574035924924080898467891950190830452529162572546756496928443011889181413824619362941292642764269317806592854866314548290368610986901494386580547212934656384879146468499639703568626439524404672709876386244933813156411548514351247060688906048570027776606742253438355281588537572267164942522375495693560961971767741855313820788214574569780342554012512987605168674882304602682896334280959964860163126667419519832865135498574741556250650439987860002307137939205838435139631372017393682769617609165966781172884239129973950513074122695980521484455599753570453865886403081410364532442285570881227476802284924675700653371763305224476968686018167698701057039806951168587116275828708172486411668487394848293835295377132484352066934840579181100366354676675658385530246313014021797590103823021015678278482769747542768437112058713644026112684605448913706441620623723827703641168932792144060429028392313054587619741983546044022579702662495629316368324407058148002514368504796193355488844753015062965694804243867371144675539127174492691217401298642860986870319620972400926408022469783817721964824179970367847748595718263002347898728694630271231645119116900429057940721174041518174480673999303341499149140164493040589228304923643951463296925479118267090832911491578989001156333722107288335303125607162684275702402935351229610385066811163726280872040489184258658985620029628266468251294955460132218839733523572575442825001057888655175483483140111459108527558629874398425997926997192161804399573356550880058252591229809278348933069471335818593669007635448989297121773670099124782719643462682598086212622693761289340699831875123941972892543257490440555798665519895750789470571725538459566233888501403468699886014332660049250909628196762543350265083938370579459127250098314284238073902460521917748839617851184230474021241224393976650089940726388325233480811057667492450139955299686269830969083996299273594760508190093593047146183012369636277927423129143862660309091411798068910806564829508630778058635152658601021123391795655961158142773256279059346016867199090724762649573435953915380292106169544721209499103796699022935832623999872567684490076643720889305725465184982091493186150258665562677235167281351245498573708865773248515558716097893215625085055736318159964196910399762650228487075590983969214171381288018257195522947406571616641374415534968312733323159389039249051897658031230472619669426346416938232015851737986037495474833010949531769241585783241419001089969132398759319596798990675600896987332248183537162160267748659905465810338184356993706271209625207531625045806195890885843286598266237694147510262399035614806174741191371279887380839440755823746042543060972220652003114129501236085605523923541382714089491796629740239490453939956431282276562357485302443471076783695852564536354577649246791513022065684803373238958932548592560067788867123228361753862998815328378796179699008809414461624705822510462633481759531471879210310175075369241485587626603804670941995185606600230545334280779910877879707491184668531620806213487061867577217386636547488671899289157501237319452083340770159312495738663296042837169045228801087269071969561751841567714066669936477924893922575683133515934209148783908368428499840758674581541831197770022304635324417730224093567470207901351354934161869372519021456848331141251937296050378282131118572266786033379684052266021901548782484478356243902888024734987193540595436852985222327451110869663023506395529353065881890757103715469051081943361217558674167094161727377430190428023111599145047076522492225290194291830781726951909703412416014168234160635394388464999384989166616147199621224346326176923492485074470464728311069364255520157741686798409050703786844757830287670334620228062538703174597784858281443679945176802860690484255000310799958789287407543609432526867453469076388048883603587448103485012655344603552975598404311038001851824145205126659056290023750617078456806384059631577391956937975796916007560728107838103499274748883834437498458863840589544992705295038748434633421543244328676187420114651067472330884451556337899978448363617671807690857243708491338744286126012546636804435399289231257891053704657113248473207475885669054889721936733308448980770414364742390004943844542386274122933691020521064417312931748016061061270709563933096300845415020030718019538858269792125355491836516002121096662457431858679849882612244372974501099290985487778299947169328223434049648265143343327561932908523766199140144790182640753193217053641185871138371962134685279550431729421666579861829988290075993244653533767573715880790884530961042450352449057556860948263575075469635099726980247150541170250292730567924795469544340479995014645691229903510645920326552018749152710883635985609396182445931035658120357727723443014562277566529213386322621613904879152446114847504559472931434817155074380425810014697106970828378115728806478769796885351943007002262120316544913492082161506656068607669425541546591142937784927907154173584190729628280470142313993394851724432150633316393637267012657283211821779475175989796741041795865805695206727975685919726709171881164938234276198987566938003450679959368716526561940792461201755317443590289221058947859052545664467364893797541583900418846313842469272785754991460958018090131608617114327764220956265925206272606042603327061276597314347778049758632277036739065928672619084594551355577109899699011207356512015879781278916844960179098611330252975196126076849679686009412015309097624986462395674600776455740778645619702271574380500937165913323360656089147794557697736017814776828828459884436423470009743476917885751089273073071169214652897628548406597116037377318867577357226896405082175060588552872332599874892286852313831609629512339848223303755351856281994703871781361563427074717069540917326626489851592290132934612972607264175320951120630384958025460434922943660634924258161217866746481713699676520524501501873310102915689820157708275171716358561491958651600708263941426624575725477383969332711991679722913339726651016249813550526379727543895973362108598627447674296690580392120164061210685487061975898311699739235795423014043468262149114129171738431972767320397399943454414421322449875701573451647275695131699458460346914527880922971314333127854318071849828659106512427834410533855676028469073487783061226875689145592724061496821783678632911525392363184403805380109476466675774062486796655143728280828871624148342827667325591705326497238855119533015521597987435458392018559555059905679336506166984227240442629739838137274313494179067799491436361670629546205910972988425611344065546062932179908567764018777976923390926281660647317728921031563855617964580641499639483517843028449822010916322387711210589408263788251787133181586147901976397605071442459450944396302724454657821704975001761936379166588185355001880535227384329600571104572826815418035328215000694372511957854063191747497797509746854647878922698061731013985417425411019191480983348131574322133266734374852527322174880801019589900448558654740022666910203674227537574136152943125199591094890985678050574968748541248073939431570703190370084271412860577535558707083001499965189266039083328070520661023986315243899710921834903163180725546463541077328040372904597480606427549972673803022958204058421801744050705860375154657171739465053951758469747220260434006212027775996878134438427946985443248977740466641009758483133450921169735155465060437775663148974576856678263087270905109479486403326230260210894180677913619945515662951404764880207692982572500054007025792217309759495903662004568323290935149129489249926735384269556737286588616809111906305733787436515619399210477588730413307544724198162253441240424161898229358952941002228781833741761289070546560281283815358752597607630801686952061771382638664186461803563681072048828467653360659821715437082077679748395144316192791537394486460663234079415755913251230601931387181623485521667941887202807092954794460624361185091998516188262871801952340649712922141467801065943851682759119266201441244752522904099030238645826163891617187739712382477091605299648018028688725198710345168625988610266277515671755486426833747159590360935147149755457136938557465006426413448819021640714991272836979577943798494512533437403628288226834428224797840242638706182754747551706811797484698801618883963036043475361355960680775721874622679972249999704094193536201709611315873052718687754519733239206015700218085911404062784181819601075063360681093231051040604174965971241415349816221945712391991810832008068181624116387394003057038219732670981618291913235111763437757348423206515136387405323537509845904914228951826370629647362474340659387307414057451349643400012830525555200637498161972152902400495956987368697948393611791755775632555213751575739432776983499807553230800795099527145782318749737184379336620418047308296070242218386766075412258114879639915197431288347420771350516086831749771393586945242506213618469028531675765963652733406797844671653845139388250426970463097089555896363155690409254014537213012086752087571682742436714166469829563849906604030625618458652789586000911266634198422866985642383625698597911111420089356471623655293038568499818149507752264572396844006780052882047276309413233192096228517229321738810534355684546474194821185922631725628729426354615807809792461560746042375768013228054014696243062329433300575612162416761551443116575276933126291146245011733584009219454364957002671132382591923508118628683688143493385941696959153460273231549354739487196958258113059369616425761463853465626049658697697977457819168304170276562495594575902146119556668652009159620985071207512402880232134027494180958886139013511597479913058710925877546011541862834331820912734228286357535086160403948941459881788059107217058482249722691128729049888557747543361832306296157116950400358294521007238223064148541187784357959195173420302484165002978805171662549984468525356017613380006475716913201276945453951344282909679256262366690387372994032520680476067434925498686935705465051823097818340824450777658603250719557673508397802675652391321692119988552606788301957756959732916289538114114417383634873438043906805251201842812292630483954046119020414597625970195628743642618173521483087663647747640224063978370882348819521153046398353369209829871835756841198467233902728185400082961375669147733634724050532800228734724315972934597568545696146501558157992039958808888881826611265526949716497434364683373813729655892117430747146349836246293718461977810956272329725320358600305238148264947546864399904276586601545728122898992013876508409043907242934011906417702622290843706941621521117358443453767255751911477643432885143165324290824815733225115854141611181315186180728020228247776925440250717367199297994640296567677961996772307877427540895624108117291149019357379749460636598066226464779629961392634735496968443382999088090166811405430720683496274246969392439413105528562320575559373877752244522629171906718768858468155363660483452060175139327389773165781921213189676139897366436007554717704800512460004730894593349895823355480984404751197891052578370893864718558680460729969869515423742891341124421344916377718334686727500636411562025564252832991542125743701836872700196152085524746496903420378562467726166503672883676166005197737525892145263433679609162963844357893448462641056449679061506247361908410129630383547092029226084137685411564552032240521679385981816845664321743208170219207145897258170985565422025173331383311472658297710385765411152321541312857869333319654431532433292990432292697143992785277478088885327695431456814882793762271359005044087502648649595196154207431018406994633736417249289699037368701579295888006777938188164931646554013359294981498522537381966066069218631446508082418460558006325010079275920825665981517122888898747358352512471895858252404284657301906993073139578840395262781662260065112686384475511151323648621758858367926348384055218801229951484690620794550490891845114533554168742665310587413230713254415823191800734251955194390429365383947000600066231052863448176943274004840496813540960080901613860031853463639821349658120469603466050964170215098337776458542070314287212754075744480421128720857424622412204464151379308774826898379601187142734218182831622795474438565213686927559743648448894483041493045908845452595658566252655550667371025906498515550604161349057925170772958462589565574847402425616672696744551961012977033154902007189185095633702271196161255565951603554131520920961745519264596697759786745911615336448592168412531827941626028120821858105006466367574131230720354987008747613830065568512901629547619045737973631312997077579546380545620839559730779077140394250103941671925120078589827459417813571797559735796829895947315267050886897621268381858278044272859264958841867313950356999337665251583594087772512721291305297409271727812086269588860078291437316811976338919849643781165116946966292535880971797207516080044922260501745681602622454482477579942893518172148595861857882232280083940595552810529672856880896625973018937387453626780197517583516903727661875583059497929095099497455983277030955919222648472580829315807615704695884462144204349446380294622631096624033896389501085965758526888849400918235604284495831682117416773907730388131444856170763647911453267393056703003234559230675440405602193311736537793011452721438568259709473276967181677087157339306985226299601738884776796922813317755148092180919092656455709061226352629066595164918625399967575068766012186348036853941386511722312120547257779007741484206606419006150254150471099005362902743986604615805156686746966053490780086556630584488914319954792436004192059616216660023373366235158998360143430002410470344622336102581043981309707795129146034510526778389506123399937636708510059456805001323727416908063302259856099983667242005780418400907327973986509766954773124138243922373805765882695735443157212224547342633545418219233682301618162765851498062619564467798778339391388862775794156438507430677721163606262869063597929514549664522817264798562012784266239800843192389528740926964789071777298821386248795716532875969828803101080534790419342651187355578088223244137677349268658429200049726956553569303918552331056405057610420638953968302171406647066646894449152978140569760193396074441030532805106180124872033159473525526789908856923631912999420388804100174285171199096962126888298985757147638191788614066723656807265297832091004319506529686133998157140832253868640245460319606914170228937248175175380310074748574516249499320950555113265148827780256590054254224513252676169863945315072672819427670142807874351408707433696905619260121078152038617270820527868423761724462631026830852599779150905334453779383463520560915883472218330497218573992457155049132126487274627782989868414242004592510670413260600829178762668638408347768234433678837018178663991196669450565173871577158273253208950434444584849065299639346083626425655915427662310088771710294699710519308142151566387869826012570152310169051924012874391695782821633551715968032350263938939622777548424436650457417083851151563249861924761873089548206655231744643832666409617724359760742042125553622848896673635711043096515493241971841834320754348362286514535423071927302540772693912852778682767981889492630542992484176438194121612167633603075007854766242905733339959034798519574595801455619998408616296135225713198163836786871902525821564322247552809910928899891359440046367540563047297548082579356873323602985424636862839469871666352555974528044681385013403535240130496891899375232641962224587016312188336567412351889386854264362647481951440561127903809011884151630686846466386217875418494608473882646335607873577196047940245308474050551798708211560146679574782101424398882160246441171196028295731279215932200514894986536101030074537132910241843280820117240003565897630279484250147153777029705492873552952655273556954238534957980759897771635667739862463601509236290179870739696483896281734325716247852880455351368768083952381308243263652541676655247820765466832768012385325255316953888867864974060001136724595644548864726499786194823971607363359240295578092487137551444401266582374871802764132917207046683559227844612445156094503231532004489628488382680762913512461333843884134881459715724601175721443033597500659856798711842439999612430863909373286813817102337770207370126902623944088527034654042346902652541379573640910027127204177056693795849153006605289176022142521385397168175852621850819538272391396737091808331355340929728139627578698466027111233348351715417675425454638581811922666750460901514445951259679854470617806750371364402101175784429851827731910950371554746286845148916954959665011294859280983133326841402582404981752689192269925797184225019332534534072924734051651173044722108318828454840822288401308355042279731214441864918143791600890926207286469291922678478051185748828113181956371384952853719912329938630071149230006668507333366315579160599700008646274115354098376005872753347276352078471464752216281628700803848134582345187583673115378181456559787307117594234319170445206580214003475595484895077067413570976036511189819822337959392393452897666994569905810113526831010799734754076308955828003310193907832785318968917932178632948017367587323900095409592178820474197401696641160347738771709760663038658142018115252336397523293806758270621536807228160881584162830139171414066642442524529009156076902494695552395488358610197677736585423553193076980788863043306507109220017626566337567252573045215330967799421452934576482230185776921610506510591218217293363847473606755740583456905710187718733249162819005222569321050870595088886696923211981231447838942492189791085192422605403231239605914594693167346760426522382094294066827449478384013165232463658041280733724466726009636135724886906486986330737067631726682964815107278176123807318717976974980551939239380508187223236373209149629555791004929423579429573058091596039788828068241008035783758231112157253791404890121866500669249284498698632498022205393993521727267930584774775705555170449456796236251352691049649411230788369957937069917374970966563273858801481630739092211741008258963272263177632605981432218908835609468844500402688379076993353965087839073127974819014584845530438971154194501741192107068086999179710133572225434361516929409402373028191831438325037664468488980382324269534493220025579948272918801796839864699154663015133102296589288174236414446437825855420005446206084550041751892717300304925645915501804468170084587332860760358328245445291695368693258088670257461138527353366208690431343741874994350784540389936288269335980444785995995723615629296460783676345692604989892618130419775810960500495366495036895150827477956733332654296961593683650409125308161697912514151911260161211445527278411012714094990579239298241050366843204696145296310295418517574575993900929876194513768566749052348851359917893763624307481352908996593680386950102018046596707187882204061184693070523520537465841617975608839100470919361485994038643458497746071930038699186944596188968183937773170969039208370637610671384732823825705761175137240516527332211496163912240148789411898308678186829066551282510563676879688759595031899895311095393995667187558729554707102533743998219170245199470768858650841094660720221373970718226616432605394524005492386152888290909950751300702562807408244659772936288819317584967307267616823182642462724272847760126193529350985283705025468245593861464034737400631730616799964734108423876332757547673472251822392152700349694909014807517115509576523541332278869813350718750924487348747787980938574097511994433563681473631635927782809042734455324104745166538591805873432174749840445203360984079379789876757846209267260090210613915440759241846071561579665874028106001678072511738441406495233384885091279000536184565848877922436190772767477225931573679681975771034682449531032628477604357103580565213095815948552131840007198617538204583901439347917273539654209159276647827829411430229760119078596781793372547565727034591358327370686688647754698553647251799929452987629005091008040084963715235640205879501737403639166421718716001794042351315093820623766359055648007754116072365478789200401224761563766943404584751571294155441671921631300760350665089746453857454043351783758755742102170803153219004090786129407369278156377922409063169553452020463673254300887366514851534892213204424006666667284950614374263780093910138726372457043358685538547017285500850404499120419920062368200040888239765608254851593456092236334007780719704331747788704118993754660253965223365216328142570567548250905431460050884281809000853431104096153051633200359058105815253277583317267855541232001094816565518354218090668475724831488700251859212389870745244306800998556454566592395608428018618900139070453775316317318169492652173964320054546812064884204758882390882129410931210146539187279088867191270293027060545294883338316028511402751395496132833005662150775502812185492817517376428969626595640666311101579561295212464236197852212559689864990637666617013298947393075659701533340101594153644497375941267847183772675435450140676952535584021377109411512057456989684536853497719755952217192508701085203698939644015344384312177715793125410548001900681275785740150966448545606812033246390385030638368107135703314242830051813247228518126021935216631510036106625631385900397578016846458651100349588162916286228086426390778798419943882215230367859534757786763957171753414103972068787690467426174104073084076952084137120610485448442164843583062434845371976893673266980046717505026699243312358713626486175376879885423788928741046994331931886999804073023593284822215373175088687799283791911813832762864178350050523979140943158525980829681714988075717803870454214649116193372717164944824924947400492294859530711590401399637124431183161256161318821910609653877580648036798938884158045208592540806209081820452808910101958397830453632409833894774929031414745327662955641548286918035241578112183893492360755092896582802095463741537936716679765316703461424833993565083523472920345402095163361788526719317954671453450742033486997082579986449256260204254006786859941348190527362027861649055422051640374348907998906748515581765221118529660922755114242647665680994226670659755923507092423481671597596257519283359477709014653966433124754563152036516210476554778297763688533538127944532839184822944897607039081228029032888878960192638923026081136675427286026227230386956578334333768299525892870622250079367605504330962023573143476398143970004720472744929272788124796088830545028805258185175328020840089673699900560953957129381787609593220082936006956504549037941544960474195501853001995115790521338195622637997931925172712378307996630824657009146238536282211569598540809846521654236438880864064227711427151837899069444493658018099906876709175967300066027489250997233084412891655980095857763414990540145782687911105264382288164511164012165355833723911821786465316633933185813583787198993867537934477505066535933663256858731364140855722341095639427829925149057409201413731040118047395469008592414068179325234573078643020573704936502745779171150905954533514288172213912140563842287916917917997178098382508943521958019166134177052469744508267350694760383238979585066176904983789090356851087280878421174264575909013179688164688810207327488595866998345199026753762309390879453883824768975718983794689938073624387876593309492108252793658765259066242727089021745330709620886592737726710961863994588661113206639540121819371547710614538094913356378595642262570770924540890054399086701885404745943531366360581471106410017165817383175652818059359355129965891039699745400084459030652229452252938200462050893058012341661077804389753246868670923421040445608788642731788060067365807165455491199240618250392117906103076162061488436278563165762575848458508639694089638758131196025634744013742072307926887207223130746717634667010161677488745196754639496441900495804796263824135839531203236174982799108216918436146953452845689941208762481601141876077577948713280943972573956521401969131129053995529109840152490363439053265825225110884675201563638698585136085045573383998027192836456213196059027881933803067807806276459591702468057379356877386626139086469910280674698246409655677821015072084458046301927466461703573620159039491485071337090606940272381549489807853249397234751957391258767459475648756269599579224624991831856655615697963294596385613350029355767494500651806453951866745763988565778365167922022737429433715789256413793174398644366052520713437860426082426493141054707618944256937153097354285519454613490238576888154767715950945497228158064540041844734323782037116887599470331850183082114527986678959925440040699801622658920521269293718984549553913739174147386613508817989325351692869191881391200488428251601615677029371109455327004228218300714277658983747955676057756794472673694140142535334089971996425833098645052954532369757996507398726627756049164614830258088569309729093457356468486305878791957563152458166762103959171187736587880506215454520847187781477582312838139230951006300079161223103837493115661704017909327782151771421950502627522697278302462686599984868816188412219612070271723572174410167723925257666938050988933730398671996757615535075858563726152262893841104468077715499378766752772115922824208106865901219480015434365094831101351736197543643555253228602286893351003451246116234109639264675608020666496831735388098849640073963391240621214734689931737041238768458259207585320624435193282652707380431127961185991388675869817760052192910756435177830090263048573778072917759838342322932272570873577037825075417013387091369088495532779180597147844342761618018110299868198556871408864760625766384782164909429463826971682561981073528051131185502510213213383746429604380533381161294982236000972828830849042829452541362735482632617474062902318580852620009504731636738969471123724488375287364019711995860987390387410558446862222578951725899218218484568174622351218638503062089558574566805320226854591776238040457377718878153168027836613197274483986862214928478800821253419555004049196665223073612000155924488850941727556525918249702686101714574374288781971863746120507318463115496198799534338129479094606995786859318974755771725019475676498798419520353392900469645759135745899253737325501625644017063293184890484573838377524447905086836959786259424669667247337283890385261808440846482510161442156246733985644322909462010485651506508665953620841241809880102372532294790365230608752555801143780344726789142060228856944564493131787934512424858100864546860078538405192261571187035520824359741053622536951754655450494027047187443800115156330324235932820046598069718454742025577570866367042111273432525605036147800757063702256586569669284766277460916690641749890007313941599399856559677649384153995131530901146556996170736155081558583350938326645841757355689675361632758667388994315289422690856255144976936522321466129777294492411611167099472638819274693218339677753578499530249814706002114135724997292784085532289456667199755742654995391928460218310061860034330824809119476560504333221462924255710600073126832337185282144465953001266852275050181776460108332042111751537919907469344575958727085498145594739215518477226371045535370684916468893623200226682841871715617713574326314527814855625583001472839621544645510607139919759898077886163669220999576809323502531717490645999554414465899824369911958462094463410713495100176104726710615285939099941846509411576615803727607919762713553908572067665758469881141110963421168643058226644114141262880376353862657664105635842650929235610512098394055258482537000349800548238051605124482185602751349917622299017964153832385851627875201885454587243997855059662507124441777127873313291501558267656865836052963143634128448778193659494381732699227909926678787940223297834631945425444317784743841770321553719392209776892248728870695641510087062103708824083810861112213726568719635183273546109822626317525496884142091774783642626148143097386699668947958279685159533397667572075780873087590446166415782935063473762540617215712201609464760062963578026981299263477729138245671220834684303328488927458934373454859393225622003553800447325904251775171367537196888219697826581440626825119844675227280685043983317520616470133063994914821660932867429283239698330426663954962884134067584679676712519539141379998650177910253747741479398814664321939709068641477709749584978187358381222514264139587104031016200325597857447254906591147419069045058903484469980253638661771213627046631694812656657680988319625963714813824754973698525953293634798118111184097584693944679847075316395935154533595696403614719253189302773921915987417616658109950273157035708562118260801364989017811365405861175348253406292483802619065920037491124129309293460882092861792312106163257735389068254390772651406763542182087332911201982805323088991194085728750814836709680579791795264749963269914402959673374150270456981235340192171939474317120836540733660984882501060508288082515075714861335743786844114870562450114451873549780361887158596911032618926274190990937507794280576479249443881938632279360684256725947055544223340670378132494108735362818046390254680163400490398047427336057279060877314950645758784787061699377082424854392300604485699698145503272495024865045071533199518785899170362642569752129906096131638088606539565784086421304018011301984532350558870916937056156358211304534280154898305391855851345766838432368916775977047292837513706909070904565349508123702188702714923941508225872748310392929244808534720138213153462199841778764836184383338228561090317733078031132540862324765144975381138455082118784369221312130508813375613285470518659104210548229988165503690059128946894900842195726436422150158126485845079662432239537655319366584350807369275899091408101965006481517210204122259199923880682053732451041142495155378649603077500276920734445032054013785157740831200830750018144361710652263746579380251603614782371355136612179420291197706967473864544115929589288412903068234653264208824372354545956581488061681772381659933456939995296429519801404594721349732176697877984130845181981601239178046295707908189749323351500607181588697080587773699345876582724635395829760033478012041253505716549790937879989819557987350844500311729533313541423966498179037605074775954776292666205654457659988258545728032885670727002282596319427605467487953196157912195676326457066056600591821880734962407620122498620440518615823459179705063001312551903944388739180683006256637653460995743582878779234809847752851656489002670080639768369729493202950664512611668800450536822134607541351691140983944635051348213705574129584596506416378050352792561573602771727405077066551189807092541041796766772130938479777031847738257309280232278259951087443576221591048539413778940170793007682616589604791507008568232252469588814756144224717446111974573558122339117784461496164493290252778543798701201336695464795087650517642855391546823790503717574116853089873793958291774340687037805004082036248283244142500123392116447702253590031199106356444708177134093298879728775253661103563988551886932803868301313419426700083016260452030826128633298745836804128147349554046286263461781703233489045136964462858838079560714975124095552466311423117439024230239467144313321667829267442592598860805297918862284225814967295260732358030782842832334850693469746359550047585487697541918398851769300720898587179465658660062852676778390307377124587738431967694416817676173618702571605091285449527544112859420217549833856984844083136010395379549656182247770239750348967399743307452905589129871213777746303250120590621912305018664133759841289100608893240209346679192921315999620249172716363722824541614258659902667372689411518586313504810388472224214262511510771720695007110920764179082039203294180538863169756819239401571063807639069989624023228634947171402064444959420642341701065024933393332692887912878584139822248529230614823586966353637321054662478923976651719293989119993284487438393105832030143880536279266568389164102579628560645731878148063526041649118085024821011317207921434234101732079336065112756642698739075698996714191874030405929723600828810571703252309250468594698170698535956909630270280591637997407046967220160271372149826983590331725814428848758492981015126678222741510695036326773864719044930010203805560355709486356061560926595817914477216338206017758409053579636712922006705613472135694706708311957101139365323857586409806224336359153624251711379638959183338351971721557892939475019572060712654217575443172866910059048499215295753189462824520601198573980244264276308055823802161574344612946989491126042077914783093915813680937592323616503840814216892754614234987681386866848494851314686222953124960087048228004215782411956379226621973005280979540564355641094864965659069771970517732039646675177616235716532964046325502940530817648511683382713340040562470556115991596319025302635245481366385745000600188445994353454543156774554408406587369640711720444954950542445025627880158820023123078853066617368253306196614071136437281268710144705286945727518327796877472288649629780150597561974849402523347406020015116714517110663968985742660676053656218282483474215988228001612165425766959181448548601114744133139147707287638223898110323133749340307785024775714075393864414359319209449880602172062693302374330243627033551582100929019196665202691940501733921041317286823066230878962867895571629054119635438231391434477830506611433881739765819148593927055540150212954009295203219434183407043154699152919025156506406545009188225139172168691749401632423478387779890578569357951253176334318507527464726943438395517145393735739851940502788178970724214651133078465125085831498574722834701271538110381612333735230250516721078576780802431573198899087422749309376640104753596456192435416203312746779540335770357243964920901439198375040697020039826019770805178888318601543783700032000744304723299201533611246037449510218837866161068263910937800312221588152160072634345398847651134047731911485901641748287841057084281385286569903866431627648429389469363267825571995290267701575886430133687184561987362373598792863753670210856043653160680034574154050393123269666516145327789967015468539052149557091283557141973114123710958197286683775760759580520989882371158560896761696171148422573763846407802581636447402399265033259803098304348046737296229047947917701219373502162243222361898448464968911966256671295393071517410748351671917691975303514865164520293890095205545873021031407409695823386862986955298014420562006395681434661682398856661178078521969687034029987069156161556737490622096238478368845903331789945173138273666966498098522834533363997882291247436608695480276784526048516086872954695262222243655534093746947060221804712760851889176229834085455673716600850952272738255876954269736909290143277615187533016013023365376845490384421589195394540740220729881679252184820425790746650135057407425548784130352643868301061633437285774045742295772755412970530293020347833045824603067553077469309958929901843928193918790193794460264637557263722097662076160998595090578105898899495859693722268739821327044823269973739609581124036314285741406380369510111006435302979996135012914739004177879777347749439891976690622385167692026968072521339660405304955090494617497774558574607456109374377204958077688095467517654169013285658580369962384225849579860800361043307725068259951034544747753592629940555379707625190833444724243795548657731082650815601308188543721741679005686153285411742024940325656923048314825983242687286587690336587233887972409728850395335148905984820988418409935879682924312466179374845514751117486292732698089230344954869970910303266982390938569554811306202110724511156051901715826049509255559390538355644878093380884877896795895325967651429608074864235352151038862254032908766879203681034166193106575549138361766821645310248420038064462078985399523893198234785812055233677208776789012927696425093287517934328603729365529098024804442125649963700379772925442021551559882713910452931648251537054140336494597841789020421122745141817478752449199877403271221392058941881525124152375495601234598157094080230049858311972856842441332452865177545372979354792445862552359205014271900135682016992456849031775400919696299413635563886877174569778759697933273610729024421027326025101976354291424382790589612046971350865439699968193795430541044850002918154790947736776500881748141223885488081923765648851862975319131079268789386405022619136214863940172058406114613980887291694326929391166724225848113617722393804868888053783139793042895955088368748223912438544556624134437144798816756141145333549462196022429955710786574055023239324106283193481859603866747259547942085971755858144949182302299287649277473189691598212066300141477640520286030457046372798210685696832902507295792674813805475263762307964223038894639695437778369945207511637602501320619652470125443639826112858246816216502293286224435872976405947838886630962048924125517659245248261733274645296623308073777299028408094903132719002499808505325442192720165529087274881822992340703587586490697397482742225798329206854727249892895211954297694891136633040428077134975754729767583840988393419284425679171274414724005174543388302675490877673717934993976264838268585528012429363399751400746801322400683518636611131634650107032710152559199590548042374327977373290962153931094185809453285042981453692355585494105109452875364836211424240103600678579346283935508648054149125498247550663937084858277087853858290256047633165169123317244112024745547593852745973936681364940152016599061701395523078456469638127079677088561928297763758869929745840589918247191932169760611093166731255846424986291814198063019810126094877865747139007255611331028582960797350006116866528912575057440027387417336213397183501202783850744328067715565322363456561406889367766836830855568677827479331483600583727732770679405523241609614719705170706974677631370414163967653271231992967757633859178604160639842850049806702257070227103254136795627047445823246806647415663711679415895695774080125756999811452148247731547032786390298776782281879543202340572416050041920307616656416941770757154919097635287568223750305334784437361823310649612895008656016869083191833852430986749821878980608302904556998850042352466809760587101345041409759189425109464994791461617042985361204231229268018516454221009017302822301187528636286361874322097758512855330448916930677961451112669848417184426992148855881822276294202744767025032824479229164452540064467928784821665203969801751613465711251251826659792827695420200945308388125378080067595249423865721304107709006066820391173090400769762342755166556053176186439142430397902205833522071725734048297600792435099273316990247023061240781920853319750376215604823893681856813197078151720573650285197440552719678053474247233530996626438929349834157494512556797228182636973876864150093629094439430247958665986803531497569525346868287789948894773591679573146731903367406651000753179939062443767047682259362002588052425969940061821609258976146952618818687834438851454317014220372494167688462375563384036103671362773240539018623471841752271995184141245840260588433993899329684928227327511124103362055796648568010535606455470266281395670856160244842208797593149611120391633998825230354783190665176786220857822382256348439687629632583592207182453093798561110146587749862963126937948584462127202302700952187445924688814848871072729018761815564538348373284657230779797699149632228831257874665857514710175943970952591433522073196690633740148714904070860564311176819816343397774736385948533767031795414400853519919989093481447851138355489993336253815135726574911082122574890109289625814553845806573111015778905101109827797689909101062963382595823083892028629880951978372547704132715417876215471874601196495375711657294534075293383847483632953991721015685116783626522743647515086917341085041279839859447288327110928980083797347671707896995379172562933786666133152610507919858185542225451117381092706642409202672371320012134529870970159274714378777951110868884237738847549297041323133678222095109216109469128383971297716760213340426532308433783957976553062523948573997229844808009706776116660015493410166649860396006298762504939645475570618161517436112731957946078016325529071037762379532611028172358583036984392913791672891506872583746005721189254542005419647124795653035875419293951547775761968218761197053244093267049425614270236791627721951698134111627478527840178253645397619569309803942758798889351294991622773006824999329160284158557103203957804348556123739830088972138888077135423227953373830003903502170389145590149731030896718787389345340374255151738522614476467853829441539676522945273531380023546747116287203083954089936324624938678972370889775735320331397876447255479965900195418988590801531807594628484328228971905418631373786547916276084414055695185520461038945597079691514914465411914898422056884663589505886147445818922747190152573697751569212284278058987703591674344911971778130795343754742320821370872527672589997877233932624396372144666424261125245853762514223099548035073389872164520013744097064680153687834670954841098848998197507860905784883387795663981509815960133979320793348220508857708377376725168139237882342840445859453079078036199758421338154668627347403196650435858419917050004526055188581656225946542438892420446733768068773278194602714326415691538095474846411127636563619091808784805051129281261880827776259679513041905851712942601255551284309207364731859315875210394488150903646017090142758997983725123878577832084229514458078462628430406810041536316136333995077350047325277089757024672622913272846757563191498616242350651266889206707986810216484883994346468123720419902021096036975648313713819373139602299881830640325945764959210405294272085016209370238402226513497767956814421707113226260436812456529868189520884652403659011027828818676567228663126212040423745668231955332979574526358625526010343177075150753851592106515447433430338934209137385019318851017144607274258342089572575536387977251040961463716008437999352915771068672988552418039095676526852404884431288390679567975923638533019894629098272954824752050859018685061757470997339677624193954201003459637077641291359558652212039321099460462801659396832444729604709354472226774387775803241067474446792878096177760548758890706931556139036477652545952046771641339562198001068263591242140079014697995425735828966540116353172905296023109116703203490679012611182912113618609773736476157826525031246834607991703399459002213710416087176936847062443395991352374846276967795990402168859141502347888235772593487891171757155859502229804285997634492222802713729809604288140619751150008742984999193172370629616452149293012332394371928826915460364580334927406653528501934590860264529903568043667303840244665578827875192837889368810065927231264474949659338925459143909439568685127356066147714110455517070305475759227409456748407160144086564118839021521185900969085297858968446812968151493090334644401732745600231618120098530776019426284292515377019187149792066030411516002519315613917977015204374595524126259821263139693805014342829793437601784262041109373859220239826094217298875073884733976700737951994171075740451584489511963897804353090078965310036508171440505546070158440214289557812233922701048712795164603539418105050118991028374399622728558001893195120545631755216188331033046671353669269208760563602234149655591656488479326048141602892848895579518237119003822480008542804141177572799679735258183448387967685677692036033694392803265730360115420091476314987189387451568298361109621789676009943085452473549824824575491376435112435296842011009396857328414475523524880147796510848484115774652833008143086952414136873768568032561105563274510201758047270713531973849610712877829104434478330347588522621892918768513482122001220172299255764710053280063821408369038258842746366124170456372365886293397906547172361869216615593261384670057506538259348777146256179290145390868970279890564939641119716123890353954026630970268818739912863455899064068321640516212313058485025093254965802373038956411502826247790982737628327336264013650354400146325517363329098945403723432277577856112169494209473780142986339263624646556142739751744768113218016652288855373426191101494520930885047549765849996385756898288640829913866596429577853583531517891783456459589371602812839337303647268473723912081032098321641569456172528352516784859336532883950178569988760016059178053499282464057562349190281858534046643801451881259731499044547796197895792605949459288533519483371374979268225720852616520382767522572724902863874350792895631121399007762542838674148038662426336530509342598786833583105918279960381773513014712150545491730488323470652789975557508769674494332623266119115098042524490534375273411059800070716213056488748880834637154360000187958657025776470509890126542462993104788303486943905310320366405210179605844646496790515486388310296375633388095941668752835117311314470620504976779923816653476606848136672935628425003545786641279775682802026800760970228400242757057722707624473104766449112813833131976554456431247347182097531906308052624462764835016329136719389116243963626318504999133663042770687908936712368796582764159367949162339826010521371074470090910202344137198333265128534152480183208326258971157337663743296749054338863523283171710831412631324580245675237057404518941024089797360248277549604213399781659588748398791235733373532293947574430717821634794620785118826337506997542670206310841856073277488368639586267834195752460649829848294918058781969088299313753832011586632322157149894859872564796647245682862447215260220417609943783604481853757947507183609413876464577460620311221003572772694647535683394393682832959223784465206811761532360209699311779778023266742494141582995981304597817331674428481957551553643186995999692213724699493930245176800086113396040073611187848543238123873235502827874238859931170709346066427064181285199237713118557300858911766891797340889485372735885520402838599760298597955092936873533128633240938953211453892646428179434369410860447300915923576364118678398954674127272219255175794666293475618942654115300781365887203431264221567268381543905106728523881334648213540535414111797944646927908497978066860449473655088578935659560927963885352398740084470201915816548464194945274386731167205519329298771663666738924520687479243618251751757515668798768051176558357737798603455710685351605358283362353182402929531803785864154221391730615922019628676223651687207903048385648900498523009662027725205423412406626225016393937606566844637624086435878838086565082316290992395525888583161655895323243379379975783654518392920261875193059600222768107206997103745920087744565044962740751206007780860917148012069151908102086668006569245881373927662963314785425623021106788667821026121372927490254587289360111495095038099924478054895401247864070661289952235632915385217082434582304266986222151780647917741749298401378677976322554730167696630442345905977220761571626213374353889027356556151221147904814061262167440262267683665672086028299130824729443581030093344972982169908749492826261248416442615814577292134694077454794241291044584504262262359830788343552360117996085391926525997104461630705833158095395659051194913548042860902615668301714194739723866050591372690858200436052283002253402912139014089356471315745284918376849835771183735757164608334430446915790841626407780862779847856663177162416125509325657599779998577144903856396659447142629569511833987359771722124233027522578243035535968415635255145930519284196831967852287314199699876503470351216579544390660746562530164110704272796230255583289967293383070059317956402194056329348209546901833698407526339594216496583988406368902606476694747963372120140439655239624793422864145616642059759682555379480657622697859210032561455782564398765377355175090142368173496300792053810271901772217163113701280918999949887973551356861436010013132387044018924983293450832544888890344930208902696926523415108473100071856410635451291507598366428178573170162951855236420467689640903116951285458818123286344194899051149678109563841628699998132218492178977478338432557482923021615699003514856448245550525602645010652486009718104494851716771874807022057792901747066619276461799252463188290416490048916889455740115613028992319888760152968314392574000724919999410718195122174163470677802470578551032678042459140180702870467013833810862611354304752866962848897083091819836718736462961814844557804696860472532624248261703067296326894650104214346151894122958164919829860662296860148784852836108691596535768631447190564980857541328442909581799028846780281194604300398006471432217863166658959955724221621247885191429217301099930615083743763477570567865967115498982810951188835905542863083021863224598311815165647499601309995471595497363404194262460899886534479197921459056109791700319785389250282073322945279254247395685007989041998286343935358190886370202593657543572235394950482962300490903646027141972012977161009306848875153712095926513597207171226933836437908210393108014185109330507956279052201333477625312219778694267449606010386129017036872188784805482905154163598059302998560804959985301587064618449124573360441284259656228295057427153722885105832419979412340867575422344627126373086439107497766827594873881464414349731925750540713829814616187138526717309737128716934542623839215763828012543835060689020662568843092983894134568313209686845526331022737078617317176797039724613165699515835838394244377590208382999504339337940407964469698571347597878859291950218376808773971357733888661119618325955311138205418006253774144463046227533138666677654657331523864258350810467232269943813775009580224015674489835921920445917140626219612676381055509873016893868455569173768365130596904999816589653737462883935003598036516809990863165177649175307334269385583518317816089677365227809080733929052599914941828106786414731886779615909951823343790978762237019384352529541807569491032344986985896365087882268474292473800747345655458874697298026189325557447976380801915625014905837354652429490410512244185798665892369117843361165558711825040569501368477415147951319753914505615571236611971325431066229349440859883057108659941024883412452416647290283494638144543857044072975015360329102816157574977902908451517076816349364685972210549223044516610800852481808281434402960039060238496471737099933819505250630332877157056348468744170928854204745399409316857830872892339274689528198130015663413940795079095254622623651487283242786115825143207544025125414852410213397058569671513082443727318459882238570353333907964878672258186621882389980521151824304749542763146917783046194073360283176119865946036726461702445508312506618932605322165287285341134167905060614390166023690413138449106722986260527915477067841855193766505655424507264429763103375797610478505120796628292314343319447322240330443002002285150468186303618327069959650213044688062758135673685612810727345823537313183317886361886526046862980135513396428917181620327189530073981407527407702257338505339972550871016487732148995455082198976917193651253035348158054847972733146291033122960149943692486650893677999006063996861651371463696192280367184338064799149712835365190612103207857204075258372027074995938644282435502859393093914110932796746278073959326677541701164601465703777002092478827104414939320616327499738151868866570628507178424532084596485869018823532043029264690051404893493040656526877775221214696933196219914826499181883148708549263382426167108192253152547009498219286999860856725966307488933463905087420222328042784198273140061559497620394355155451694450618442366056868247808242826657971283676854375585379546836870949242931629711410480963756032252409727298547648067221936811663398420437105524607555853582446405581903456139768481348357517370205225525552054359046852626833829144850237053598157453800995762005548867822717094700794840510258551491385255199425470403286672579125564532736134576797384884977729242241244460881748556478079537922757722614038738891791118352217522634990382809609614475496897220046984115444317216923646783649837716557359355260679411611853997637979508962234062323647800247269115005599012475353036477442371624812659029501889917674297810002522958721433327434368022334480425123867210006258023274914104315547074691614460409004117315831983171343014121402239699687696063298848175829876774029983676321425322428765775923693761014725227553142148282807818383737942509994811666444670847344542373230976366113059349945652344247062255431690634236840153295733648614961723668876617623999623450607705071576907725487313762038702902490060632127591437549941638789264755322278147133280504322128871606661904570156321266599190418848662674423754344165298435734161382194467555042861244460395655609831425121714149460343115384539883988753073678825319691762801273547410360753282335115280243785099795282797062663125531455753129610834422260826942954932679535375675200379594972096295477048162828597180183140465338841208698346667954324144553196424692986473049195377363700804708570746003923620570859307289586618163863569446064804200947649733326249033371774974191264236923523551611001791566878384073356863649370401892475456327877370609232123402737970261988473516456942588806202380803048658968118583694464903788134495140405273897533726725368243594917867639587384592336713228697107720944149286078066072293774542101751288316416410973843041254539004283222801789507810067754080038722910829766902134314537360654657077141007257748254738170496765491665121395989657487542445651629220824850917139826309853234697517737679046637433068739643085310953546880505226662976678738079733366035035768494091436626700984634426311386200914913323891396244176980986683026406041651278512170868992729076957788283609146116465205583993789148473397061958176665034913628005712403741270147199650311097989814184768195196619278754876395751056980352522220823580921407545081944572296219754396347109911570792965269477758067276910609747253609040263215580061838537977681362821054398910567399497988312760599766552045944885458294656141799410347005448234163884087333763857325557665487723980560774292280529882288402520084046908764044652387120000563572038434409616731478198433995725824876830707152563380521992238207552438010161917617861716763320945781009924358524168791565036331614863987879816953431043757019707806305226878088339641584821414315394524876052342529399745881082031149429478684554588028801739196979768175497914578685376160003875322509995598831462319022472986036401366147349266854808866141865830294982296474870286869621025670178775214825992913333168589515253297197228180616092387010764074779098952319968211182715531082958471847731075565515051757625533089670193112309676541741633049642413066561636244007790900062965052640298106805607510817895196340503219380690532160236577862278413885221108877006345930717872262826861208163159450150663860376254160728391506996116716245945217280428177659210782437832504766003892625780023566791714389736839140892363177649345842198225917609259361408650001325528648650525439735804386535477964281786777456359136015294810069548225059324936492853716394443178272923188170086480317477306439239829605481542038774701765529266432442053807627236120109542377588156196435179569309412646709895829348709703154265454413249793890093172255435397569208635536893883993695267258444787296854252318591991244744943004492233643188134421556130509405279135613462616343643638164398632064639561469597558858733185679223555359649952169552429291715251633493307458355447433341375071950756018025018074428710963880036561888035068274568375154733282139427119590285401430811483737783692530475005453421432391681479724880483304737697372063460230725033985010458969357512320367918720285813404478873928888215066876962067996710036026381323676512774907746406118385902661824768517185035327157342193276940977910294015926930367838179701383614053314269590083317985890936375429664511130817637163340732793841072715751595441193912202045245807534598459934816167268588133770171217183154723119791939484915962690314222523900354685736915361221111765996053315005466877330086693102891368015020369158898438078424907480092206849575974913665074466874076233524259848416273712700894778904730585071031213991450031078218873057326822371096930593808251369837176521111576245742761433217414238475100942982931377766711492292925088710036545263396359924034029806812920534276165049265827106843313775319235176741102622604115537567364867422464147869679487729926473574385738807321272798868698131066420838504274901793324018661619086000319063738471797714285412771245845329998074098681435560181592158269920399976367754997812888739103140730390390715903594414399107096259460105573666267783813440168128294513885833772462058640793331679906330902350841873091955502234616240756782360200877360882748379535524227244227289466879879269620759386274944837796262046299312691672976576920173244372128347462315356667156003772519940842061526477252665385477136682701110930596720560400046083872479354275813663775121658564622706795842062262371546007325631989823545218184039805878560262658106543547950509039142659851499297753020682066348278366180878322362283557234467694670380443965204901163989529970842622369559976127469917281052098511904820787080209298651100167007497820355517677772619954963288645244317349620158301376961563490128457426453067293990256802489656302123593377142471934530094063800682129555755801856798258677190617642195979852147032605917677205700972165012905954824098701235755934020992681849415435738286687487956069305767044778750538218821099016231744552761529882990102894512322888044268925640726725720697594080687709647922251467688115343672987991956516740173505935367174490818556668324743496824127825007771299191117571861110481064181767461648993240845864783558156621374984133713371606790137595750324587319528463761092546560632368215102221817375003979353485092942812761841443884058125997348466969610315609898609982069023961675897500734789513860303674008112482918540928999091987050836860595293897604557809143557453154787163082174710238290112297937638917672320402345801916011435960317195354653772691816138115067046079098520256934271709001155152481500076917867222019128134284396216474860541063091883525501425297081813468316920780398340384103725205421294669154642419674500216792982675653351471917272005241782690867115692168180138631656270563826684904088885820356601084785428561001668116251204646915030762035524940010089055141836627890788445696745160386724962605868259322291586214586391856044683532639572880245183932757220759749961196571354727286655359399920995019929347628173670357405542316770582965701296455946388257037484441920794645265494673955113808561745652717204411357160262266781934060803294142361432086981092310109111966468994156900623545671376488397210813390689049971612373486206710623246185781896821669423862539743538993090876623664778083193625670038639828147389680812328513275655615738526623786730123493525983237127789500755799622242981281220021973324726551827650510514720349641892107804175982004027847652234138118896562007062617455195823279010701872983750668654005901014579224691285526605680392211160345852080922882803784755864928769042819729443286393096108369998105858963305187122224025467889637998845632287872759094437416146305541405489646398961242729437434857413333939991217129149673387952410467992071915906128838172830148435176688702637834703600912198827327376233411386586122110573454220370541477527263797252883748527407669699911613804045466455166204010832702409418103092376908253618028315353302300972125691488493633770945965788434797879236377498253950945217677603341097236635282730149777269365399741068487456908397333212271620738908982856054011706921718975069995629809466975803840224774733395243660478455944164811270322951008813233651165062842652270581480473015120211981128112632704347465748791900268754786055345859196772974792942906729098903289130765440962692287614562781553606762536281692458886050351137804242054164090782397238197812971109260021208083687047495129216106299054861331020676526358544929833934004775393900696033093979712718644593479605407655885293132517457505915049425388561396276051472244306930151825480789945398010265299350056720061791805354891596881630208037543393692761064920921520051604711238097059888156269799163993961361809413854660711967439790572120815943788870696690359347405401434026511767218158479830761535438538629610440839730989233127956882015653125558376546885541992029050802580896061655203159868407659611696942027178540972300542955044463925677843029556607454715690183177402726435330619538616838674723786011076328534091196350435223425076438635784583169987596729637205915066279397537423687876293642649445523205774973039276635059222508875552861328726799001299752975536535993796970210379954057629746020722229658003695493846438195348516272807236670299370243280688584309281161955368023999351742492171223287688780215307893060220126258272645552842134063171370516552596081957177906258622678581054800923760407826111343479586648939000728159557750475346331680362390716437413305119629622095661400882284139614159752042768430363514593515210848346447182862042300173770524658663406041482775479562546414915367241863139474294003671848091900605771703621319688356293407779033806197983629114662927925217206242848877464526916761714946736663319622157694616749422686244459615747381904087373002322086155424544511903328194208248161747596568983161761958985549063563942608831227172854842001254211394524444713398294145037315349490816880754695497716785618260031127274810720163069152663125055089647608930325806382361095522429414209855991096280812412767797175212847261272527985301686412631875870467102432860026112077415085940890643221444476646683967507542845109078794235325700503718313659779583978406617411945476060421167167323650115777825637096505414288596748359393855507603079448216759950559623289765471833474051468381895740488189564089005931179331823732060515513078068034971454772599112352526428331426698432273648798966556654505848405699333807443819515590735877149881674437764427024483368683064691371324196219625437409363135667052072065232647913089778643182124090772655510408541969400358532728089867354303574758891374236920817929463695585132004411425981366224969291793387580524818896497800641914096443471443096175068117545143548588603245011425179278672476912681066064813712228781817276857556420484283497972923222630613990235199191304252034190534467710764713560784538472015976560894645170136238164823222027182063287457619149307183212147673432491692730940449942566821273954968278561221125560413680271094689665861143379177401123747022733358348958059285135776151996080199039788055220972872618649176327815074954141782480489421677068877240188100063768704313663263954240655333193169261939704013566369978553405376473714294047734088056161715785196355229216438245326280963675879777924706893436459827717994307994590732799635776575223600002823160910117852736804085109986186054272166018128048354770060016634938497301787779150254221085768340361386331743944392019311522150648880852261036045294758491239604626486839518484353423212908767852992398542452777849366029744028425821820068884929297000638727099645013897991367059486790523896789385117366500791096881479554536353936282645847613229992091628864225224932227937452359725840428757789624624069290884821016837975217332903711587846324969267757492770198228487645035399318907537448115675754591610643914382696806494452072381343083813904300333814546914930111734066352736002310760323233067108873177518842096899806537867831601677731771078877231291571581173732462032729719757069964054831751493094630971295399432612023353086166560062364980260075458575216194965234670141497667038315299911919716769916305620341943584223086847407903801931572732260894404210846985080497921262276369326642386482714665602443214561253430265918641639550362425044527229856262381322036118742033788589948602285335891630694733429908931730516915287366959835463308592841895659868089257604988261857992806833548317236938086927760631427496788031122079347321525904073332445930902867021989053779888826632650724208913058747351053485051979295436858861916523373981719067717941613160154224340496597123834564827173571951397115904512012871150602045162291745324072285859451797209780983532351441443248577664562033491389460798049753419082893618715430850813878717755934227077895627694074892552401444729043069978745679723379708235196146248533704325000514508615612840854942792182791063208035591811575334977613709301454682097904707078856845454048369156584346763763409245831920770820156741386023970604788187556783746132910497762783354804931878292461888084759824590710808715121499776521161917299381242267652929467123265879543432582261736812286731970890690816864451507924866896133282812685103506617052874846836450282136481636192208370917749782000771543627873593909221065722998413654226737338811297789085828663055319536642086094369643700783855515702436579737841995804255195732089876828190987508029116282290826502502949771700979923363694397794359138101220706009272358561356964811725565013319020047989423093966248320205547889108464692830524008304024905664678537121593275906704951882504816759114752205444929860970229073197898070277827405624826154032805252259604268590926586556610186779014683809173588390725156000738917112130992370195270707315858515211456277378282133100584752288035390356195133593089577248920863173943218722049828945268136019270581945879479485742139940381385144941049804273594498541941754450614268459518276290334987996224431824564500746505730567655229007494672225631380270660284216957752841404739578291139388442396579150943128935570620810707265372813289074507573972706573071709646458586004642648355567521647478298229569659816407158296180180567566994760380168388202239610683068905023177757105085719145077214869777235155111593299482483350938709807641964354496791174919336514344375770436749722274662220952102821182222462845240337803511931419743489094919048037139534597230315606089008870485397692954699968243256529140888251029678673730274517331846916787607824446563148931076252941274200143030999003579078751642615203687568729225997370153962628397775091222279129417237912551542316287776006262861145611760630494634862913265077050459415408967738682705653635199014573909632204720748231590828397282774193579288832551012315091775011947371498889131787315374566858265564108034792770449744536799958491797551187976288415256116830567047602289698848838106787308438577780674942805820327602202069871241645378480474948970939237891020256785344756012943946705516963459297085957853595842328972076106103767542241577413640871186688875314335441426025287055923215231243747381141041170400712001612214369855719511373714489196582092265370607021507985686089976169355564955752322035091640977200227330228412593442169409250303678393191465472785575473296952975957614699842040999367157255036528474804550920873001660534312392155745201550465043093418396826982519051360702456765655928265851303818342606097490660975184034315613977210836117925691261385923703152732331920071209435095321839994454709708088043352793960194533780221176117418196423181347486619828250598680764129896555505928813034272754024050211321628036818751215639501145343467087369902624786142930150302207892916410762844903276912150422050161236550732268017698619312300530763238158787908216501179634305861598713445289007348852552750891889025603514092228882506751608412535457190064866965273925957141726111243739014800677174509756854197169957056712772580479759826212387216768036365776810523956222147168706920915922599810093253657197380644246120718833764233549815964889328055052730827492969295002162957554171427081041118454415949967910801897746592214677541457784736768393700368484436583732741892174071749294785685102944016223904995618998181997004627984646672054921170943382105794015657306734997072974324317122235274240728993244098298064007234647248137753088107852888825502317456521212492829032438925493069466397179192157305123845272386728521517062779590930221693471846596766246224950499333460791829400942284178628278013524933334299099050975401914993027193190933092131035813472558833858189829736378191043644849077723491246244520836303845508063208097026041711557920258535686923233358187745775876966323794706627982265877629881073087117467199013729754436475436073667148746249994630966220408231877526565733919094600742506090286170597099795511379455556207538903077673405145221389325890997473461759212482328797227239056785573595993668093883589294765301583561653793085808758636050676648167577162807432758154466121783497852042408618372808543015444138584032525769744017319812021340360091858826666802140438002119066506018413127897793457421115460761397774934913780884051521653932400263132860497994876561642782708697681279666777327131858627049670533961316059165426025258598327086336941226020008302479548799601032664300311719541222344256508746228197540086308363293381045036458927747909025137860015133847885320301439991991571596993858411962347522469120889313399465553998967687998369903914715205585268592913997187793198975442742185423745874009185090721141327493841328366590614123968841728106748745996749176842493841622199656945191120073859851456522093240541742407819742974941414781510439880448588301301761191750127412854746824500059165166373292802258328386307724438325252433719307162195492089662387917863029377223487596418318280361316060204493563164947227501860997266988404121600626666333463048022612203377116420054684537769614453001404228267826981910441272717704871253722723705032433184726741957375731081936488731121757108038940129429510935140413567717479778215963200329250193239893800776472475616571557333610864895730915075829084168558282536179293779186327151601079371667035709997025952480036623100181813902768321143057639506108278502980659214690377463301299744743496712732359655521217590158293641024357883984574123770268695587260137741676415377560915704826306362450117107299439786568573338855738842219508107802146895518744319922209202654798612225097737130967873817637213865397227102802715026744276380937708847774942286312370594264243408572201259853446074800283254437058627306875295062169753163255936903783624946789584803360176624147811288092521968522245304023299210101527072024023673592595288756333631145291037448531234831793022292601708547804068599921571026109685251246052991364887913655732283619392366970931308024265391104294552453426863554472905483721206843243838093274986294118622593113818999124479199916025881309581161536497051300632587677430905678793848457571134828732721882711521776892398654847003935770686194331662820920059352511928416477357976329870312585558695618859661784718411388921071783677617937488721880764903872898216813778546588181914073212677212084891429136571976501895137047914182528301062837032157117299176906720568595751696384553808318644571497360038449150663104158725487333246980109046180674472760568937982890263960193594410667605360518747245200846440993105070341426100129247775826750029365216496251999429149351346633328762972203611292172300147469125167815648065013440316779953653202672080315808961405496489966780325883951769929404084605843366231202295113160484797596153351558598696993304776226083056012876410438572935591834380973035075105603975209495819223355141578257365940889091765339380478432505982669392658299596459920635371689136495702914576049094210888376219700725767135620559207604673678176778743109235046159495570494798263716589060662663326564963990848966382226628945756456447144763843088114417514591290142223694454585173250133535027202504125415996865621911095098944176547251286656609808242883963501497515483371599751647845590296249050569775329039164464760139438027618999749727507081214756194315063377039851904734660458802651445656836126741733580069510781506980390382890455075580740390794869364569474766918000516644426747155214858006937772480384943306100041407682991207489224931690497141770889792468910061339139025608591763867524911940112338961056054820398671657244636171434457969786551187291904858238215453581948919655572546952257371994644247516913227009600613157268232322239749273592753383816079692444534214938783466663940703264680676553709018597708310688594314603834287538779591246600503656127554376095104039289410797236179779549394817681784778331685240653544442820712371770119811931386433357860351597949856864738066504637609793995862031815749957184726309337812272075413292976278216512191800272409358567167544521802045401171384019784411819080539665919983649027682295752230408335185682346795396052456692051129651696012374311130293016731139621376196496823434187810270296321177652205658902958677553987983751350399538268707910127655543509665236437246436402955489704579680461114101865776845030422463065135479905842300697322424672524660021729528158336322603541295531391691191313197108379822368481074367155823653697628142485379660603630286862886130170270744548573734238677401277221439545178937195444163515228563316090938649749295871301398814589302733337852857933270044598620125477771544078256386251773667847479036018864994914026934849788878249496481426766006776303466737487064894458886279717063898975174357772741892110206626098543612374194083581479028725990518659135646660044655253713315662739359987725076953536883060827299220471601209200942478597527215119627405136867896912698093969365810004956594674120713463957205868247007125180607255330618923148293293215032792267157888806504188743901093602983481930216565991659100159834207637302463372439243736432488775621233560265979798284185350298906222784220307106985077080811766553158095321880705303771584486937749475345610986206878098405614826951316828984001324973375666883005605229237194910365392189102264590926214815016462530759303123860853309588562127669042209325138696868702508756876826628400084387886387223072600340831716838815903546334619363269141888028205932287911321621764384091144309302378377261969838692503561773440245024097538003323517569909836116909466043688674579697121822982498319660104325865994333671518325363992350562680541404665965401902892163486504583238832842564138167571000733178806353436481991905790050631665636112163576886412621172237288510291193825190973436118787709572589549870800013349650163562352745334391769270254131289479099764045749199126928870860556106967434643734706570320709899876776866930456531861845524160678329272855340239430441390223511139455845545807610251724980989915338859442582903276637466712457698371474759117267703449968129640098990850172197439014768718714142791990198066142824408291402673117407539350773359210354433938129673992168025167873142967410137052927182287588184821530260822047413766266221009499650386452245185331484379583361444298349925460111024354300380272750772716988048437647856059620338309782089523306204703976032394380778053340425886011114923222007724018710989021117764633642877032151825219577560133164123868665910016115244756991841713106481624765842687322560384088146326145362014054677318879796131895340137044465152206843262066961286200754968573447312215056886163605859805944583057299085183758308512507587277907263271937149472715346983790549105422597468954440067186723790040579462811356591702524519371596652931673834318753486730325193706168377565377365068978403458187532261271928127409669433091036382158887735226490926032815832291915595174248150410920423764771654873084850461220060527655117242957469316886985648011323380756559547892418181775640585761660503134615797263185075339072368948269078687295010123291006919659267619587331134828337400992180071625302217343924920942828223315615602562219996283221420470852106375026355488208960634221769423012747188302596957382572572684798632584298555515905998558626125727469378299694801367695069457881750402950080682903784605316674366484637507906228005367171415226803744838818107811824185220329139346571038684370589069220463712379329991447823972815715860239621691359220354400230308545834757716626846400055082901204417663256198299271534363108353254973726630341361163588781013968301347489733848424517380200465749710886263819870030255254146444863132993626891655484594539785364677470570071047710751559239208453672356811908020530436284042366398316415745906534184480260976118155055277060415422951355098214945552072621475444476719796548209146977208796128748048466991424763066496862767958713466793410645122072010014052818600486380283252283064478611119403171975235176982206198570542069695196880816305893863881960731048249810267669828298362375497509419974719500726978615453050102886673501517040425594144811033913082192664693287423041099831907225222028676689288770080265177400251160716288659916526790471998041704911101072786864333450253972780041130960028601054769083412245520655441387298162100309267993022762447031964178834871104701034539803725138055103668841585527917966082964639947586067396998960247104269003237985249583619746310304649339969904251712979285612662833935581781880295307614783014469879017325211847205968030320969725315641729147799997455489369768116886533703958028823296574376943620990430697269610120204855402837529139927202249325422550491015545891665710007120013442155509476454012536047415192903361552561912308511767239652617247303414446747076187640650345111682665586016732912728575299082423722530965673612788656628736104563135502644449553157679487464465148965831627161202367835367954579231146434608074765258527191690501251194759446268622543219515753376332169995642847799154231295741843264071091662820450044612348002482452502037788783439497583741624303727537401782746486259293178958163582931114610631463245239234248796391496870722408548461664712248215061126089892372442875946287256579228809599044821968581317230136658317889289385421626671158309625168202116809614076208543755511762509759999818411323975923533433518119496099658552414788469363961177661500090719115801589823720175605200897358697330075478285363804112964825647291541664591076480743539937378695426547600351687493106358293116410874336104606364888099706095117967087531817002225009291045483908330651055440842943849862686253806592624284799098053401525423738142022474136334074023436361637683346138479545263266273736245369542452538384389378844122074643009381947839189759995822100030100219037032463687231578139856553202336504157036359554600789459101266873695570632906703061788845947186429114821543699963411074908261043161572375996016262557523960372275520287290130126687965260811265663860688735681341717979907481680977071642143847816364238138856748917255117336141487328216418644076774110531164610828698524799928910544209952960061907959990101598315972417149569421869501011804589184821746339081707728757247200020092361838295360012142337868659073900303242430957528091318578617868214660588791767402186070902271991629964219241158440489325685683016332312544609417504988797888456191049861105087375605126030002900730829119522647783614820992668131590567439630486468544706897118560709607044731518540423393925544871094233066753934313370692401891702559546895834113086259615092404030935068209589826605159358701338777161215494098054543747391516481555699965906459227236748733868201014104108533360276679106719115507689531900107334640691088713855402626402195370040399109171550327909592754874976646147701927907871531744868246123118744195341679703005883811173930873171499124734669524350691094730703393541896202308311062528320996729711045557138828743681899427113625540594803703573075235011399359600531335865246613342731220338918875098558424692671209670224747424506571289647221041241140434328159342589209794029103685260575554473417612498982145623054821905134283064235315451130915579979926974313095197745300896653248646574275075375619614917976721412952672015674972098454760081580476624732424923088933524677516732995656946742370299972016777658312013530979941739374854221960622505803886213096643145059614450459855952676400977923758713175287359888111883935918161523700692006425698825651166406792878114070214215017582175280722395881877880745244481558931511039443640342471425870083370995770033902790880091235263473527623379768156256984458566072998555346404474821021487004765860552448468314996581951675004590789589367295441521048698015652398405414939904711140245721896920951529092023599742189979853033328532096340807823260538227696039994717045151079933130670571800975672384845234909462552482595643461602916254978435785555783882298571430011550255550903984087792351734212312677172259705682080507402989330813214781658275466953619055563469128651036019789294358928757814111220660578791923101250536508204794335514834870810801200293894416480305246180117561174526852004296596010890099433817120400402919935007574951017863519986410515652506196397219478543304391829230160591313751124882536528123591463171303767996108049357353454636355474014537822912124940056566024976957463169084686378179767871290795040244447032165351118199495930481168193863110214833011885636290337632280732737632621947490189102597597633597138415986259769694692879222887977507984690976961984650534687117725071443752847423955367766688187218822527786516751511434235089910907982902060967581510255734899422621526262832203348791691760417080886822967431698596530523193359558018949282403572299949420365759332328900674459882561647721118751224704758045953820889731451329014084908132117428811207539399787182383125743175071860966286210446752601783022585029059209615079156103606269111667155365155991962830191883694097752850525691183975655966663434247906987772768739643959660540836392410020228303786132450993540998264557155770107240725435577331439872320162388607014445742766624227688833326302119147769388293163876521191797176127444590988883699752714278897260056737126734300484167668265703131474758415853454672130451050969068337418096623090829924629485869023282575512864639515123900832306534378520451074547309699293318332963203169248327818641910047538843242445912649780267991724298555606930941603964172144784330831867764674033365704367924840193262879649859176101457998456437508145295049947959674900112186113589246656734383957134407680960578619834182014371796584427400644896783165358377377046034391268497812071923956096553267040205196139050749003672943201374072256001620885074208824499991256265914307576649206832596793014324036600421438850025589578876468481712464601876753337190041736182721771946395402056785751518692138438159186657048623183347471859927120059989349426824492242335791761327247455194529504640867161273868330293972155179936704844569849748782313420422918821824664799568066482506493493994165296910817107775789436374599477715083713764897384789988265766290465705780318284667561264933351265758737985275566851859769138266157240577876045933852778096711345523582222009962960470707591968936937241729105893156417377680943644276165515805685352719560121910831917623900498663599171078188202476790407012385489640033372647476933044475990481047379310549559759190048308800158495871121065105757525968857734955432133677022889625901792915340593522603651775099234292596238774801642455718019448271722344405525398635912188921216450830709006328113467416529871047234483525745249557879300889928981428698812438294524877004352243797521125584263470643230751655896312471321998541568967569338358117000211368997401120055520670032065456108467438227812021031649088587527413891227724896917740978783673231049363288691716841528410695976399974158142311381603590506918772410041876883299631016351932086169377773392345812786713042063456947913814433274889488947750774435333448451826039416248822472268236793333191331108233805293272562029985648341077363947620791256151307299943163744218543389499880882381076471747680482877274943971208445641019290068820645804269911775731285739336651498621283449007901859218672160332895803646048548962588813069920412802353467642634491841602724083979723775107545889125309798905802481967787235438432681650828889072996071929894923784344754027294874295226716122738061093223629524216464128500859060332658600258610599865716999471695162281100025246221546306117441750857062377427021274362312165379073024766969232549121173228793122768320471717524956144849853883121636900026969303459057551844617553930339315706803511254745310180796939248645858449646461096736911138636767277716815085946959235365918596782963910980152226841366995646079035222393428883997098822729761801527323971466813997059769683890904425901968321625699695941565603135066959696379943748712893029947157911620155435364917895014393600891850603902163500173615931125085886724129134738323720812582197918972342000299556921354372661047159552664525288757340969205017482853625183179641460040990914951426353565403663808642320551103548984039145417376004452397283131073147746273034228271379557642299920656108856476434345677524792264636800045449476688238730869714121510571939369806582217006813625437438356101141698662548676612619919004204112817390533816186614906762971495195928874120347391408180240904627594647467674803526892628371139412706085272415415007391635619126170907640436996761763789895215272674443515320017413968046221576464668932920088386722587929133065156772028368448795756663101785759360730511245166056644449623372888285285910907285280254645556837273832542251673341390635222230052773089651832682451870794232575886453147255441150018563375579543243834333694458692295450051151609935393107220339706595298975889683732336363675512642767192553350418562081736407802321500463724156062929922821289555225753310969813502369257258139060227172124749771986665700322463700270486436907718964594569801842940805090154260143233737077336684396089054295851914032675657780420515168155025001684039068321884487414806964300634946793023799569997238817181954080431384475124729040848468802168115906782803698764177947295363678221537911955365816940041063396116070571310255555246063162533142728098944960884537337259530203975812582339350689660270017908432977552252782336235049196153920794097999971425001321423136055791463753788717669186687937726386582882082100477390617124487054593011017381994283318417412489443738337927765670072510352278202764577188893324992508746845767041585010143922563898342938377316185249819050177721346644376608860979349033649493922592180572108647942910571887587217748452112750011770893129846641897605967000367848317286032141950956555577493053179270344355780242054103597533991132315472798154832757614246707657578747825484418392059671214447665021674920975033811024980898662446099697941731765157532978658700104586904550790123162229626327790660034606557475046328240034484662216550804216808084996878313181119677012930734218733831586509565913385654593630393247793414725823051751536242451707415100958431308285565017222451661330136305636209778375995352902590116468978131283761386844988918608571622825704697692130808151275865013732581495788822977367379404156535667459729223436982123731360619711674321674901453184009293080372248244149206061566111192141155477130851998151457838447403028569191167383257330824462651512701779988003605510392793944001277836795306186856718402056279915598503592254319986658363688468404476647329218202583575608012903097142945835304883820892755628762660793120020679945379343236733842768983918699256294706813492785578409245199332888743244889112715714057516206564831908578722607964804547052004321469125758480314180384981993948014860873465204082619498316525527890817212068901060300813396941787390720247262978968702935838764155517039543391946775020826228686093865831199171348891226237762350877291487648971082768038728265690407934086273324953786687172164274907423426731556443941062067917950185215903077343727808142472218679995211366812515998854502316881338113757660543514751787601578996577721187795848458243416209028091221474875981676272355524606113725240103472277508118009636381545845461363132377827924780197070150716547482534979488091333537787723064239229977284424239019101360190818268235312812215028652908301476158327608614567082237530348216037929162452609297655512451110431781879447060742622797545565178005263798713441815893977728672206107588920315965049420823308427108881404067815276054829035196942262460937913022087818949461500710984162138511178632718638765399440085322593682883919717471046933196176916676918249930873078703323328612006118447252588152582074159566084889386821497956520268750141527768609700377348865729207897156017257156915578151944934473957743149118590433180706352601994128685099547721732873260626297925244555641943357944335057246895081705692277728570718199928400882380752743038279429961073780848303576140542872716210127227536205536350555393391101733420238424454086284542667647360512738386201026527053195423043726955406786033824892375332930317735368063038505732644274039197634310965913235644510619476656017536492650061076301086365325805119858706641530722561288666023712157843759883457000478253748364597898111513242204511791740694752533463758638522894108803060714458622961185975274993089800718301980124905891401110534406273693075071960816937070525113602610973455427501915631262568388686122991032771196333047416032885062125689227836704315340603498464169249291806121001649353454654729562357973672030035475562141993773556919601638544854376394700154186868974381696414505206927416376285511770501561425217645913948853653585382385854693764051792174268142979453559143696872765442865268349918882189889747717888206592582579971202044479363250688007001667555587975907016866123204614769455637996458689933230217743357081626901632326045602578837495009108696370237996372743444807513533197889187004214719986368968775284105089126558857978943860480025978315753971713828799762409818960035193583034788637052118208834026236146127195775774921832917775782217403966318880100099858046127687526103275760102107050089833270719334209261710949717369442077316246636013769014529500528816147246962359906922389915313301955668399219740861509647940118367820026060450045571811712250467414076530722362974662927126478755854222539964895082149407328188812437537360497717693032764508436099278070042211710716517193908818144541201975891553995112617977212522662682400611358404648536401577971486144086548327023584850187724261821312574814554414339796494167886163424522946786541213668226261511389293057389430148901796316420062499869114718190243635679286706803345967976885389536605744747202271194667842405850749114283626461374556698830714618942717291475689746296856468056430649347146008607349668872234929458498561946156751220453213212638240112452591332149040833826399642068113095526431636546845818823894887201764235046990183051790314038478701651875688435373243923150273980825269659356611932901974777298690752414711412504411601656819601559969394207075843523495640946313278576387440914697537471767158143202624448831331844115423875978585540693436157513255448564648228574242799162733614503591050098748421036979615044689336556187339261733232306479105087488419778257027485938329876382416081322806981419697771733885868532600382278466304836508256612346777724154200162510424867352986952992970113090303886190909854644131628455832362728106231808980779537120427896777667003650064966697143663736943095336461658148511251933252011662583991468911571609588152050910650409112559047713788450069751699464124215715537906134587396602252522214167421112392144629967869523470088197550738961456063601590100096692473881691262892950472409780275823761249846405086452376220825003517621410262822618384695262226950248113233616940206583318471259493202688007539905591640385541881411009764442842499027307309669704302548236271591877277058542041895928638544766366638667943702077655605147138164252647214137160468500000985912711343627862085741933047844152859752320747816381791563948635673412994570166369934998710689080056182474850686998798166411243287011089838628640277155878855675194450810641327882395772771645956189606569119585257056698740656290713476890966240887913858874839367839826086256055262663939490020983272513515995237988758537145211317179202972451279712827069686399319456070431526670470761162537951281214561797752517970400814664082320429292985380028957991626339683931115905908058564670798721025998563746147374749060766362588343924118750658117922973819500418261197612256187997204860839674922024703339174005606526378275597217212901961990241026873997168800370815846590623118813179312835608958955443452562932654346124385338269923940380697462732841432649617652811518549796633355355638872010721597711870802206913251892475410538329016047704830597087729023185975756175630127132013318045158025216116704401952846524567597079296799392427332342400060792436759986082328475966077426296617971685869351763473627153166407759508566563720955131591666491239155629314092632760672202807209414252452853344818579245308986400179944725334260282819123390742102172949053091981275537082723476614151303062087431847675272067086790335212809094042317310794690034941701825518053445324385277598542563977115831163110299405596312420086218939028128739305635082666651431654165595479487403748428258019953665942853081270740116742885064326091231181513557126526667105151105489949554299762616686431392797745832980179930907034307130233936240483633265518574966507444519488847264351666772615020040065039730670808286227071589084325436369414986365435043969802045216229385588547839447961974562511521899958934303237556944773389641507031865168441082617556140800255703570916131846361828867819292685174487492535817785261491624352266555415101089850611356184558551442523097005181839626118443285596862203696114409482910531257077098122992803350908938025559492200622623253924619650444675324304658857224445797383078098244673309191154332805050877417312789107740150724514609154623927123564880540966929225879914258127229691142775570025156526321682378688423103648293865256357213757598542645313314421485141581899468624320239439499928827047292507346228955713296068291660922189038318325831685991178252322978059275348910722217429101765961448500529953119689256927409303540853810580581912346287044715546948137180702455988486845561983574278644931147322994257085071823452964684433290945007184380343728406071768282050433845973053841523043422350717779543967712660817956252037150798844411412486344361347389457831302501122621583860966402671306555744569371187683978635854290469863661907282718073460272401767915161422329122291488537914187392742255328238443892203292917656287933136659073272349415323677946762936910865569892914309219183958896932709150022608505710666236215926676169857228211004054871479322657934832733417898677982726941623431152505959514692816775915666858640732702947227997181527789401081836910417837112710218307808726940867594260167938798961835221577537991577127884302152065002518050027835479373601077829017269016518097428261050812593576582494738252672621707637066118146789050109528105384442586203320987927038272573224170436238631580890348171101950921671287523134351515371307295126389809606552969507174626747032293480357300428202338154570608600614139180972565565424646006264864215961108692393370539514957308874462011841664026952582334038457684953474075432880402115600024404722490768861153651659944914041854862009175557365896289256977924915009102103045383162653594879679722217710659056582322522808063703638776997576020024608001645971187149602571867418433680006859052568479448077243630191257740755626684165987072212675688001214309963124495716723357995242642246408671762845428214517642602577705734734314786246857158711144511169525954644543056675751184043853519168466945669595853710824500452143588068649229785128293427104268482450133648488607422784466779083808684914201350300205419910352915206641167532577735422118941342163972268984951721350015033516045430129030082228187011091721747262738939822187611148069474208676505087910973900025974403984088862715590285156686115234228004166027924578217223281348592492565148929576605690701751439092748366696783287271114716421007032467254102028551702521659508655115085210063422850460165913910703986021316432702045478465509418011782398896199119970307835990068286909024074397335258865865363538190285487264985863227088375988466327380059131913109699276854589880754084991376921201319989287240095830939837627352851900459825187587094116847192899776042442137551550042370444439776833623517724203287553600063396807655576153250484433237417440101318607702883278723660962940614368641310731089673731794456456965316828258207959547645202693960603700442030010672456153600571986515183334023152315719651099669641863034851048386017056503515641566047891516287885421574447020856962861955919100298073155606541477519544275336251380960151550321623240987768254403980631440870404095511214983277136193299864103445504121151220457671304985851146135330404951014221494169673599451259918625475322839485635920866575395780782204855093244740147558869750859544287883216556476239777009725310544033196065914713508048621580200980293935564054922034715086277941336637721924633772285915047361212670985732583674424574974005753296364431361261054275405135889411359809298966451250191445790450093871226760536199510916217485538244370127472287657653699692923168472169532206598101488925115098717260716815483930661963517693779189391718827919451031111096453418451553029678427250241155258484185613053900577272367094292896648126844819952068362101794415647008078095869247787104055556111905855943340661392546907019973899809337697684621920002498553328365698070167237333434572333869229083336286407202595992941038028806796391692008893191216004246627049192623411197246465697444695302472099306418690994243164805000902089078262242572345537945740887148779038219780447849590188357305458650598812026957229182652513633725506335928992436206274335298089182037137837462657340198857953886730654509891598770016935312710210758697900178010315440316822644362892141574187501929661062759992352994460496616217477652755457647038431467967153669869286270713863428753791524901755891160136466284556288770952777703049710353667346844930824263561172209309575001213143868685549333010490744560780863775215768585235072386726963675266378038425965733512517401403543573016981279535479935791775308285173237991254423891532089523966299723690034538713069913462233124570028212889134498603229219058148200661584545068716446253372328909437404874347843193239840912671662635434292814250104562284271592666906920731951342263712287128702482571340303833426435202416283042425172507332431894959690448979792640072124300420538482158290650805347754631052536969746299968458453601289875523056009408387640897938752170493351545977540829072668820464426577018457693499272257512119192868355950662947272734634194861091587849740895222305487911546718610607392392275456085107784693365731503346667099391595899366495118258832173716533008661394462132764249681980598287715779691157089273941267474831612079487668575613781436624677485610174523631263186464954655159944211112834204625335921679009761329706372890300107366178002563004174440121352268915378610462953149805983856406970928689736049852563711118794791991905325760445752178244011684595782832180106592656949575018144047707688923409374121365690341744194891727099526436886786600836337612768920938880629546716344689262733299837958245143271464402861095103815708454314727889331018999584886581425027818963629602978022745085561512155342326662738836000949705503205328617996105336819164429289851899911380230252806047202322416932548718226565683242795239292839610391634531806520142437256720381017756561711390547698882677846240960904512671635404607450610803383219544551282395195128171393918272395528959768178111288784919058058828924657550289663581645887111647007581839393429354142919124820600998879640705396737204996638148038795803782258380482404975805739399892263130069733342342536831516046857306692046900618390696542550171264957531143225725939348317601250435310658746662024675177024671382320672531521430784482164558303818316187934995142933639084642778243494504106176246926598133537899371194261244590871372652244066294499963630781527204052194432975014036910040495164034928040317296368199660783981590789129139443978041846009636275443895544883438979774663298805267098124660002184071946005235473609445022833175536421515071846594670504920644472913418880563089961830033427728839130042661259013019613913284694765334673863503718448304577825368460424985681933592298304848936255415396412025636597216279737973292992347401619579726219786261515515035884190696650712468889602088838328544937002091336676056823783869883685586001968134180833222050109732461176940199772774202205007210665057592561179864581051953091610492857595431205701333739994435012566413892160120980365583210046879548634766135270422131001422862004544477594225165343121568828883330361918996900091686065900417674632025553874481715933292324004742673433824560852441951302046949042989259131719496159168097892979384509583450489822690663446092158064682163962127176563165389472131125421704205135045327766772347443484436517502186034499928779177297934916879380301582551873876914359150429580320078663086252783418329134001604832055664993872866740661607774374474317070872351788230928505601852630857855825712137528304088907084768902880107811825353769568738246621828173729695937615406776725413248515866320160974523055323109279099785358488736285657658861575513436285921140712309985356918183667198931299233833149028659115914670013711910050156336459765618383861201657923242089411244785770980091237806661216332801365993767789756328252710380447619705324705011694642696975854277198901204641967476563087512544358228437370592222006248190979124145598856867071359716649022439373755792847798215376165848819008098610628318318269800250063561701865544047484937194800603450659800278307533985704082241314337356548116663157687626992430399068399123253033599702840042216759185434056990304469541337073822786972179357203192844247974010148639753863171873941058961495994818163894135769301225178162053918742556616917936404968134811192873881836532808314973573967130179848588271994001016748181273927596390927332361576834807181934929057467973461553458251173877005139467641891742278160437358606235455061283742367881286826399162520511652865907118281045500713054874049625645027710473227302962108208199281200730900932100368604313160584452463497403768223158206768077455097697375915745112813124544897324284958725763955802895950718572106318611632901469762842171343689229519709502501081741563024193944851637561887748250498250335835436636766864073521472762593420752808708103338534803465068790559372824474671645855026479681871822862761804468866957059001260649368059467436183299727151552770393147813103457290559490440212882810334315378916749302544767374840949444288159711583321382610706076213760358592203947439122170570378748506927904225167667080450884867274279297816556594803215508329144604190193354570231223118727162690800806609423753016819957427950382464850506057826123676557274203309010798430277367190610917751485854697440265372365679192234288216388820825247034015546007452362829082732049701462686868840888794130908938828186852836675650138611519576941981904476704651503223484220366992173444455229563562426128840943031419744923712033232413683095121224247259283717494481025846297997026352905252587901516313907314972692974794958279518455121909573747235340778764439401588162291338474371984849224916454449186195556748076698806340159575602168456526333579127298778131520480760552667574399285067199907876522479244769508471493911652223484506674031268797096056099723067130181843953446401515730592749422637884340837179658084311793116471140417594465203451204054026707677313027382599686501152605505228495127799521430143324631327318858487228397085843066842970113587907127577717775189190052160301071567290658533059743344213390808638458737170865366967505084852964985937680462905485497792885601184831314320568989807081481090321455594199527892754885928083203114333632611747710996596124932743243738456236265027517342255969189475149142007730958422102184081349136829468972348180889413105203733331081543359768826740750250900910441522237472208336215701153177600387226760416918385969695372945934893593967552829308732999708364437764972622885932204528737940498125756544673184644337509766288425132215807444742895379742157040990517736462886673455297427798709328188417166649919234143668530788816633268045355617755036054294953765636796565172561399940253025533840430565351607269596492277669625183990398819162685595807186184601163396039552085780778377528223385316071950396022110655264697247066190808717679774998852616089345055292284765483427709517035014055027521731938875477963116678381812874105286539383119569942743418188404707828642471485686051426626519489599797019950252100048578813911409026911799768223167932620386193846735675527866227596260103108657017622319227276758933016914770491135358135081807650280576520474377582319157718451145563768487245869696566363036842976965419489672302053079880100670589459332903310353800086415880846657782133165863397925517815966460870661988560896820938373626547090008093235006537593184144460886772036601029541649316639565600083522597077276229108196324854674244653446446854498414313026100997947979434241259391164807028369790359789928154637130327499765285831585876168767540884143897223945837486829292813646134106411309056822425498046920983074807020919610896415336985795723975111599872581981163614222235260928717231034534004727696021473491266003023093629770124328835769693361057637239607392819090407915939645067587936098391912210231827977866660184062793679877495296708378383497493531838853067298806118174061904308570763329878339754465999280246497008414836177649505006203102526488824685493423135605248951021362279180462449897600202101105160290423294329239195115913128700787845972354254824929629992030342156860449431170917459386826443610611577127576235569329174023008565676552676191986223306403865515553596577047956534943430589144876720843461206243651882145310824439801936150153843933078946030537349554018840774541353617340818429882698465614277372505816268260809106036265777455095156063605808310341889386802484476203683292637122019751323406343032820092989163672682221158205106226781552603727725317032516180402203380880530411428347812546301318566775477669703176915027018342655515326833117444790934071222438267687597667912400958790940709003238208605722518457302124394860504878690178603251952253113279177273519139910941305958371872081680727654774381752929382068524467195454369513151264432662131082443945016910526060619696874455728492084444263338436687328286090056187765494166052007242033898219066969159447640701129466143733499232728515836795923313173707876601599700223932705173581056789634374419947321246199209720290494051471045145483721413677653421693258266270327724256851672809763391663197631430201993968525651438790648593523900418578036162134866483171044387622337470591463948387457555838984430080189324768388863485325133671926566589209385821391697490562249846341996546846021208012121577575057299327020003029704672608561696546938258303319907711097688287947406789319601163396115212864142538419925468857054405160063763779761955247626223704928654671533494152211004426987898543376348220231975452120046080541157298682772535308036879522211059044948785262469978786002509145774225638466412696589790431777558521576470491631739833771510835600012271840774780678193198042378627280858142100278950868535789251330027798579498026527135805812820506173749584089299837629840777985111525155957788400846723496461817490420855305386928909215577091530051036194649817921620442394491067516666518053917457157268025975825844608252610282389475665280024860719413463967770071646426528388190370873652214753226393567339522375081543794675483981286211413257710325455553135338867233156917635447835187706955364392363632912821349650921658712832838202523013688855393929498831020673550642830052999292022166494188797846825857417874706131327306953489555750642313375012956533795155746682215693689197050734511099233365726537214797379626735018922669606375992240102018882398693353145160300196788413808841847772090179824060258527508618039412769323233533379582073629285740918792154424412064837816167385114736672588115843031088136462299380990889975558763546736527271348358577377028874274696665810215270929821154462618985368601114463040272661596622473416046390153921253545323446066194088237679027280977580521988731105194498026849686860247770699715235472007877914177946797191806416252024589910580348670801326748157742543956369892437652864939610069317685666429297844498235059260120773659489582916342462899924619195764080582475097981869117055796601875696954305740025236451464777761692498742588252123074221301436558842424856233339042318274021483469876783011463114795678334271222639262271246458480288495087247571490125539646208528754741257798145249602828504774060950674613993691168444291061484383955394051553550803218202197849553890502850599599403174362501165125160253595142500516543707548911110942454898867696620448872748597932042204783225050878436992716835354824289695175170910145024820732892015568165323687518390747232366384165008059860784859842851045505417149209219453602933825542080597602318760426098288273815700442021192763546152775856782435745904627814137457800459867023045831331401882245991647503219301334442539170310364728646332665943190368600984123550380550543368705772980611632589940473728356116513321850482357133023594008650753577591727276893600719100524353474416884661963835176413119489711928603446143352163798865942986899441343260490570631671459526337988259866797088004319223073555076956541586856013113588960372441123180521644039216302901357534377515727179239070023446287229614318916505220496011396292452796815725540249943183998021562060960527032317133633415419385175583194765696640354654603768798487269558637662052664881529046274559237666871019806633059778183388620328533758040854086477819046122366062442149929125913560556568652602364300906650914783168908139767746153414991915235545206590488908338954867135345686180198037008141601245908553078570640517467555296541616098689427140424287272905182740667896153530937629130903362239717079496073494471623937530376926040726573956470179333187970935770059425633644578381543115602629409973986700594789274574150924325599968161876910363779708141701862000473893343224477294748563165393297598278849732162758443229682787836544423881844465364594693740806076323916258490244962697998781109055834585482687278661860770933823279672165261417639575284786031844071635226876024582480598148683052575435244904588942910589565294793915873085895137201797727424341865919644590284120199363658110242043174554747842744140689965977238871760867580390109228959831447285286110593713154343849052251519606827593678886291075439207919568494426287017952351181740120232974193148716007610705181248548841000395935242848842681499524954075191332353558069592942045111575840118752427338253569881438247163773471914961936640948151662004473661219147078785960284688519882649103919086382832352761625003288580533661240422917951827949976125227266392005270673878934042926610449015018736979978400707773711220656817826652562675504750240644450295788836895503292165713110386262694708369972281601722392173020782442662585652690372347186794527356909711803896095448076495597599255716885079261043463238751528547589757217224716954381400142444637387403156210230085880865382049229299625381563131159219357366981537571303715980536629518670216341787438719305498902968841657039296690452574785262164067216634755235224267857359893034034593425502298455794508272470612838959236037759911200495407123806846993358829654449466366692820048332805679967357443767076251484923548345279085604179217570308524265700834712822779190393607280398287543048456894766473539978133386461204421557895549652886141342366594376685176391776796617364458834594134284932479941668979320928677195174309530965350101949162540324314799081426728134733669269939454769608958627912726977962840395768426583368168501935582331462251305302643239318633473166304616248858622012422008019774796226508191683326066657563222571924551695405101908554879240835499546179855047772275606719316352450517833145719627895303173417615299368127649850484760230536726732717055842285247018571368510821348895598913854681273679916294950039290794706146551858012875570232236593717618310826166109174636263955741163055462450465452746077249765215547377529704095249841759466270376502276780556417183354629546835127983490770530028473377294204548920912448930799621907984799629025433149053566375105262921727611237290179736351824967253128142499642197448419800887870974745446509926398577727777588623792361907223121282407002838354845299920681473238038992980104658318391832731889555964492585371391793456265448692200219622513377633987595998413406654034659534008263234802925211686600584549940972598612667843398663727308383824921953822029870862869452323888443045977987733044790517373388182415977973920772437640546183420802714534040740964470483112160068371037701286154392947399995844938601177873742526255648967493100807183840303159195153683112283068960870784027065037624534556521622145838486096044500148912108891761482553159971163929935606344714118159127991507258246261871722060434144776973139412023198969408902438870681906358529784399400068990104800162920136982224224685455732459600422725264291118381175747863621012231053203649209680047647088907839047600048362662084480709080916183155117145255073026153859444056846326067541174804936448583059821221754590225526702181945314966768001176622130480277905096588835279120326656202388640685469554888407176910945752337073988916515152444161631013562934636538899781705387867970227327413201287208758905673507858392116188295368548833879552139370903324260669336739550785531062081049744477943584560716247326529974502649658885110287233190017826974284414225477456226023674185746950707576738464140485899829145605451618517010000317047613325750717087363559741549122340257500514618055503204432310310523162748248473749039264765467656214566257718419528601090226939773484089489232925641970294685620835616068617990523364933724971203775385659346876758538851798613405550451286060992926771323067975096970654066589422264463506043340012008329109651473373228866041179526375995169705153538412742273829686948991272400536081425316660284844953685428155184172935557872172981109840103768058774090749501966470714248537778419186891913155039961324618104242146357355652105182615199722021777758881728631167530148472214571881590621003267198124518736732772076891664654168431381531148480696912019172011199144715522070744709353488802107492687021239064414685298249120580269598515785284981861162574398354855915603031924458673338098864500466667568755857904560056349476043720317078479055371863113795627510857987046448528818759190581083111957905554604984187098726162717358275242566838295722369350302493578286099616387917719294123915785428121270690998061046635130383016441321198445880558814974560331947445869640429172526202307801947315450494386327693273397672853895246862929859893464240155365636024160845086479526122954398665660020029564305935716821596785121212365044446239900557317805297659167374664784687133384490217956763865085025623423661083129551238385714719744666602642611609449153687568809264648826553911837721550764422371599796204233583025103464040983092555692606797578576311729136785099628523952465733100091233913965897564004850887258280297209859024838884104716214323888373369256503969991963731816606005220660008948774750018195197825950575177041819372975833863107312922687961203554182842196493134930630440006404194212568871499392743441490299042189562186640747022211909468155784866463807100250026954673051619195770276839872601817836834316872458122160890323720890557205477038692694528859615418056355385269411347793920545543035601261365785084523372157476958906983519467259955526353857860884412735693282918452892271272413530071158543349202483785401885079540481333981792781907949186191385421506314047333327415574171553119113572166851303242420710243864526948988840462002884277149538214342226798204675438824323683590837130233902505479648433326209407900375509374851832874913099081335320527429373294326449676084633369363609763717296661177222067081137448165945650699813508717593533740105271004478266814440824198885497212515707858184857693762560672660623616793062701381313148866954070071462615784264524271632695544360964073746832158551253040636806844582094094571736314761968222981623913024217502357165194854069380098158040589896411120135961134198266909649601763615008056591718110862893890058540390454760689993816401910110567639090187584185420786649977712514335147164593565022489122608864064369554009161770754908435691587091412774600814452615742660251340767850823790767537912705151311674587578210490223545086852875688929148637124349341881458511171835030131769103557180059489757475502105516350192814383700630178903911040279636222409935506519744089586202426224824912927653424344170846221999404848194167417996578488113709397655923333799133375731447754471641884220553167197927977685272806748010130871052893308284505425626069566655757375297601996578630837238541825881145375091028800817513825590554169378252126066034369742131438815497192137066797365299708321670823247489831444015397936123903318505289742914461657699157043745681799289420399323553242481249432111749266350465235345629047712076222205403464610940241477728289883143067231954702332621711671575595788255440591157096685567594377367702424808745969641574269343417587800552732396269125079986639294096308234309103463327143351896100625497790975330716389156187387395605291604193690379156414210529045779463384057478289166818872937721976721203057978411534473060934607873041933345972788070039150183254522319533746861275370459408721137057060222848923833137176392661654132306523179942173072388897127733766593980620871602890596887110588734495860248739914157873035517794434517320769983830363168501760656278527960076839805626327677801027605328444183011659902521644215658833378710117240887322786106154084421446749856443104925869750973046013698221259771640823921172695063537142395545331980784154835044571226801102221915741156049864328411143402446333848845197159179667530290286927792620832565393786011464182998811651952528080033160488996572369900057557513891781479905221151596038075529102294368202044863712429196244150144913720991175473087939319431067542011168842594790287616386742978561392155719487105453700618140344041248957018990245286369840219161476545777076525706233040442259806748435409743973433033289889686447197502312656027186086108892088009389985527382770832928307873804492746479961817329405340945524981286601293686752713405215905497048854929225955851986190438183142733696821838854690118290352330601049472533649878049674078011751321299820145837131148697673242969999919304050802538613204011709122325364366148774240423669801336434786731366922081343844535964245096575295637397097649451809312391144733339261609100201328866259750863098725252988716125450450130537256093326558265928753508166538383066610667838320775955463314543663092762697108801234034534754388676888252206734364454558502845224352038096960639515804073763077271425536417705048607822652051782008044599621097126462416293324008299527880621897704796856382935867271938710473998397836889162358824052373843075401154572019050260729562522499412185898779308592521937184746299454512489132589825191221926005443576570892470400975874097644283506698455189534940950772596809294847903174674697250526133599649069543299369008979383761226833022988418881476405184625063914268877894663739150282463531817385909345695708033174546624500227071002540013578739809842438859854873032869515427386042100837020608878215879545296978235142508022422936278958650767377398506550431269621649076958517833645814216540140069092696791302785663877906618762771935137681612435742884265406672501207615276711758806436040532975199231576767235059526069822504474414109325861490321546165298216946904506005802987039074353127385008277515236119621921239715406003196626102049056868404489436965339227365497970891439727952586571368273774115407385416400353791680846742920938261890031290891024469231897691448850710823770631286723147030858768668482128009965819803180072629519647131613834738626138201418098209609911794504143561885394999112936832804612768225402529931131710743639522720574657437696761692903356954153133377085167261653440690408902486033870392891218163540422330308225168740321517119069859382713299647101438217053236544838178222634703008810503367654207682999334950883636036349808514601438375001232427638231364482957002397421441190811535312738758451125864476336549028532067368560467995582708856486603073419583867460582791620005505884583712097688624658747700625339710299053325516077954459885102402692915734753252962689534507912882401435973967023629989558383901679914234757650016254802841325140461613040916483923410382586043825521705715765154331044535463415066978210923318878437631369546237495019500875076759354671965416945240183576230925585028045359715821619477747101005546040441954330021243162117701566395924986499207919716634999069342768311127348221971416341255502655062884842861150176569706441693441965049613686336092945999125450451835546673259870584658730769860228861173824067515332804754341127711866178415220578869199092901628070425385703474922819712571159364647873065256097519173376133431111594197788875495199751796489134121746007919970977872342084984354272972650848395746035048016560116397623103986828851124889532925829353910286534100310739789218681931309927130092360621672034727978602660628246327718944780541758772961557715423609333546757946921173524032642823462470213305554622663532369082264707967690501432953580041843470458192196068652519738222015239469780367276545117168451350151607931559890961869294852688871577551817545605868864034552649506130930997627361521551629231595957954309743021934072442687254841192941903862805288316398080395316018330671178623544138493853582033721581705956639302211135625568175424834433342674725116120320850941366276107161579967692026264884308214574630470802488550131833672818104296115867160890662908203158344391789605752521308517509162040999497599257504890795235956845311513645024195554021856577730518784938166601936416470923724962176702005568895282362845692347602180745259963862914243616159840455285750549590622085461951716051157203887424354001107742063873315086943547916196375481923002897262273357713010441090929236903470458386272729900436071997398176619881873062249865800112444923802140069243707193811388059338948875321109499444074256169189155003822661847203132358473610495490138912589921037149081028139455374891608460286899560082601612673398239313546151745463098602770689368393658812310093157293589873355612531076562410092278967079501161879164683448026244135880838060543110983326242650528100619020440188613470326900196058759761429387009425051648026727124455351397303334260517309375657183911347134922157478661357696173270081568211640700244817681762850578995909731300642032365931935505584038555310244347168452802921597380612436321889164924069742598120151528701357036144862565021081984106062400325147850442715421953311377644894018330827034715555336364887523961073638988956046182972533882695712576276941425941209945165033992210215153455124300352105835843082348686740876428049232849049685080521665689176120400171033633779764354118214592086481541291174323989540483583279574691724638963777793488407076214626257285401432185386295198556841185409062959865705325910295929404444566154689765685167574241990833783034332465418235043682091991803584566663851766671469130721742422878501609554931082134778181718873417633729956192946847557940897857137915475743902960298732805810750689398632189603396314157646053746978866859417067079598539134813933167823328630349008028456161910357035796914274294605842031729784201285126408503568271795649355590123148429969193317875925388238679915120424856652063589926565332950065867644084166332943592540170982840442769082744180905247754005213560708092820532345942286109830942288699367015609343318001015140504899574287381661338845836377113541064180221321614443441099728928241688808463888107477640541369065770011703189666895575752307633490535353366117324819593727128103788698170754350386140580877572359224668892847602924468258543741964124826201009248609359471810211131580370634324606249156703036053001081759474678445962158210300406445984591317894206178057867603350922668376053493573447896682946479065106491187842055740323260153022662187781054496957779548262224997643393703659729688881719793865647387900899893671684274531966622280812289214716415640703387364530815518100622043389315491957312590354976494670442663555133665115697015109058138782509336363606370167840050352764781320607579686339872104339312045652294410617759286704249795320669990822317413116307495014618641652159599898820940319341158180074122601091406056066228105550382902254439262827534448978568059018859462815352365147474990578909744095571908506225107749153930515988923798370766204997656508130603073596970813356927334790607574820324361147954392861405723299185317641179371038260208385712699147358304533592137259846778970122839423200477893146493636615755330608744515499977012222159472314123912827958174210450669831377779622122517700425959933659203048748758043647904384543370121490788421838347701754472313487869059732680566640875015549020453514009719128154417952513415519853554154082950835539564040779700459718369454383243486675728547273487441834706751795122419049306222195269416684502769370102726570194774304112647344927857852704409537673386062582229979975930352030887456621370740901515821846783813366165673675730529007275689544645016408468396386402306203917921102057035828923870608900071364444846821278899763471892367746711792408792957744091980916907665144457125597532206886120518644294076032132235847787841218465316893026133672054722918794553278428823806138551986829852341720058714259039248013666397005378149935285726404807187643024454613312271892247085525544645908609288046743950335792633193392496052240210994297800400335578874593140007195989621587483242464624885621585106686774460479204271762549275633430671900814825810524235831573273081441751236370118814576697496751230295211133570655586917405621293363015295764831590664734267900811940854579034809225291190212805286575460134140051751123053239801404088451682550637975795277800345782694304910252538394924865991168468866037269633140048640893874386247999820205109369266101941386894682032664867087066058744333161759242979186164597788517590986813187592430577327101803983157657568985017117297354907666561297588285178932720252719349985598218857729854633965357826356590607709123605268516325224660062169963914385590348078400006725941411013615286667514213098247340745734704798544229384395649866344631185265285246314173178187904935381280925521807780654445907279316051498741797387846309316693543935275098071551794913651115126138030735245304907938918691301281878564167908631474176041084709045472781542498164073545729959371607129147552746103926967005288242427484306539658803217680123483935785723881850983147435964749319003541384437653702561571004592249582326285746448855321454600871383729090277079179023291026436930414533424158811909448091693077793090020828182949062027306168701834510790145855398610583955205993350838971776119830255076101293622422365143196441846678861283572751145597569957246898769408300283942678751649983464483409563392731244836952719753733264594203965871616442277851402331945749423112394795139266877142365104874956054194068038608393061481910786566931348367514598118374568061679373804877615766081812658593921260411229143533822525684054997184228037093440195337285936953757286766545518623686058222460151022740620739737671462600916937522609146761279465598024017421000244443694485260864367743617948894906651264241208717656713807128531105184708578281782242738458182516719119912364146302303073992239826261786979047911370413599205768694618430943559221933944502899620228628440653099895919622157408238842815268168611253697246417576224628107410232800973988099104632501717998210227074424312903922415439072697503760723132047558532333870436308813578590145066895701823724817285428179524542429344329100182618561335533183601836497010661617121606413280616558869426165296782356848946891198279056616714133815687119449013949131739612456711466714472836445669189000276377756350275789338496744921466695023669582065080946314317516713939792166706749417129117233393290173076694708719509870401963986303072637052320219951714391428337263828046115145007539674981044252809353982528066782613515117814510217069565442417599758200086905006586175137396680584763061007927292207645559445657451451750626677754560981712304222855066651692806851377596208009964350121514903742394921104876191887835795544885530060034687998020188708701635371842412209801756691419826974082515163869037091302531243688910745186238795340509168817484839237938718257421977481469237245406867188399983096479582376816696123373894158914821229466441003678127640943514336150741042609825041776723247009435443263853201531336723970751103078955090245705510510580474593803607224723965950714499874790525049500992276710838868478801235174194766761006838227655101793464150975499789965784637152740458591669608886959532010452791777574986300620983320210862741765222543545035615894936051718791553364719449134562810399241746281889202658550792874114764006215010594271902310691657523413092496058428168219805335099997569919864281637151357984295347414540440271945760852881647734300770908350653244575002479423166239630033643799629569039116489793083557319103048319075472103901313014107476530468998154420625008554681048306184885324264072427021995008582634363330102961093963564075631095512474505557120519809270088609516378061469170548561717092027383917331364413236035551499528327864049286786725605306060641763802052212904267875978201403767345898845276662567239542186846862927796503363861413584767455594487677035914267894789874668831451423805085418572755995411294804308906684200790296928101789605013475422923798510588549491537421422759700365855191874414528969663190904192919261467347207648031133868923515533119896988338360329682446270065204426921508147995308169126643152206584383549820484707874151703424906794169160356667200206458518076936276561460624382556022283624679773747317359999819540019274939901237604079183827438145279216667263187144818162370877733270835515911499744367302317503550068094489544647750970545826961758343556543779473946244749853296480830383418219000073534509943771697323688386383094707806928958973519760787515874417301439034739706023051237205344472116272091329835161487194852204142114012819076476660513546058673850144017719760239369781921811264510250530395905493226520095116441230068514306815620204885073655358765502225597828420837392399119424844639046326111214014270783422505955540789376679166743589401631778535973847502270245046812652857420369113175628318185851923908239812687861031416597105504582506172677343627777377783459883044692434224754351872273701164328813017929414185674179570690307465401676098232640029441837315453069076444288773014796815907112389537537627674571479365465712951641767037246901083515212218418235907945003971318157065892259614731662610858526728201470830654447986104068301120579747943585622047140620101950944993369505821324650758168222771205699708955984587892110650552295033684951741722736431403029372681629382280322224026905994105380290411427467342840064702309769017204037064646912419385419763995077015623606437928628588409909206686279465303947289612607307604981328082152283391971910213024133651289933185824676030347439317072874447171028736902998931471582968952449003330314118081245898928184797389666925608771442155496888741558699427763633337949711246163179377884273901973804268515905220449444727206243994959204918245949911535982732922749324249173770590440076051139118367528202708697039514608442017164248034620580563817528223186663687003633511924657246124481611897105277090656302845775829078147049813720460926083265511315164607700906215588649990274958429207831065221627277864557411656843667331690320974875356630487932705612911450637516752215004346406561363994916925508860503223174446240820183470335473027807818372675832619366673123136958965464752387844148718569551288566981431392798369437317095531732337603204174119555229228098917880599073206724788224711025502010237785569138171495492770578455360204569250609145100934455998287133168190811474167984021196498033825715542753698577657002866379978393346952731856757021433273141287304934643138018463174247285775351297216890452232712078676926464062319092421300968791543995687873375704568423411786980846642227487499134925567996487974952461338811826197210700349388270864565304138389599534952475518718898390730816961952299658189459082274153604679000141750819802703492204188600013252755927192595312470022397028710240830342586573295199527173239343964170738986396169165164579379700725532985111601613263525527478585597887094400646078677559845086351120509303862661170170633801142089205704290072510826434576287442946156717353627274309560195300655477311089235116059117930848021586833757331784694850157661255781849303890684120293882663175320884100327433773601302474758577183267621941819934268414065963596597063846047771300129394580605283665134712966508759546298183159905914890623219408501974867604148283190944467167831773440727025843489862538463247397707688192036706512506768964730349056782273202936388100077616089924862083525964154101735761770797299389448223609878914398515239788715530343673078825722442752961686621860072729998435619586485815638455606506667526988337450471330308451743473015427686291587554891695346881213365110570382053305079605023888992617726142685594447933100892629164661563888523803736421961414908049886458188836848537928460225643825256051752846440034785844074671907497504055951394091887296968083656223748976441237644613026828016214695590026411242530031584744905782328209730164785165880322038241707148703933147408240651537215547283675733104636137426106304675659650901349376725708878834317353674565170696729158702645187205791217557839604307551855588724943879125601321562944058140160828895281532554420721176162605474642103236426985020902475585922637254438810196615396391552633218209318137882307160141754380646399834577801433766839611369702194092874797116028734586152082206550990816869296530386806103266332621488601359256436450103185639174245313838262113999345559088924810234413495470774582736333635644790442488090684315376512300494180982708175726495013913559544537820009880599524183845890674934148507404210654430731648444917337170642731245877629953554008583243608704493039539523082190629678188885413834608937897968378761206408884130499881456318693647622571777116131200995708026174278525002982663742374690808086988585308311618076039870919356255336640277589929950389234542174569276372118548271236566186831710600958282036263931039592008287699286734764524638679918233508833364719496774589906030650418322831942966376826042673158199572648688528853359574124222455338008826083874967774272631840005344358035979997798479162546491643868924686836853649154965522834990067969609532234472946163960160555528192987306664101607889135356733398607630402899355831816663119189574276658162258406236390268650087639295165332125827067293695503893850934456569409699467017111587810091988906330785926711103532512228001271708488494065954785987484001096384126878412650436446547469737743225027825046564293691472907188834093901719992142606749336850977660643576445635443026543582184002912088424833502704725754230822322968589291074821401264488668948902271906308873169158682873250333758470468990222359009210890063678749260061497203733694620077195299193919867412676003695138700919453713521750098764962453220533526734121554667339252234958498029725640703418778394784673366690108856115025543996198296659337453914803301460862716885259438664203153784617146828729614621390617531741754599985177402581983169412732758369647025503798395116952093944834483798292037948452374992420241619306171809495281267739290597311664745576954742228659700547614072729231167253736532817134868428089171307198299912079036494748825974002987284624320784381645092875071599859392057903604102125304662736693715899194410626859460765501689511123350961902607249464662736190470244859883582584053027172197254559593280859514576841768453800346551308455339052668683896474238717915621598014680245777661931684484162013936911542530988749695843696866606157910589897928825484807454088061146541021007651639116520269305018259651205315868847414741132020988583352313004533964181589609735673297663212795241325830095801573762788524276522719090875210784503686229642932297928599206563500289425903097935397988953882433991943865058705077530520318085637331692991012411576486671201560848925863946295640115670131562435766182095102935749892009878998680921982565190337860867528049626253204905349818938277093715897949178364421902457760210384731196434314457182314192345153867510390125470392207549936288805063010961326015582677387882110957734162631428368562222255749509071248164857023097337530039102110304666380210089801508642144237900353748767563417977725650720295464217469096193162768845672519431114337658597232322021566002213306801540025967502690710633386130949012970569634876694426930866520228818694379937221558863833178044780390046948394227107269280481933091419660666011476385362688300340709254279800572710061310185705470539073420215116606053400921673728538145308773550804386337233889953886588423732754232549937931687103538273739473280357814155372361130724890743964406296549281075368617513330310598185319889369295196634369584719317645244385028280995067514120353444984813842149080942391861842102986726470228416420912585357268994964065429557227575630327391585702109600853289798497558722956084745829826161299966732517709990487988492514031941642485928492488240045927340122255694334060044695365668110200096193605556493131507805574969655537955802013516685926769199231446834189330830230859658570163185897583709643933144762051880661126455152111595807424923486830309319039323078600017488359422058398349936911214678936576980702549567379502854578743082373038693625035561893807266057701460449213044585871120375290785710693151638481666247719886639409023340489008986195948506066791011416606139089832251396684563836562073706164770050441742302775816546530997793283195738893049852575903360553255855646935508492540104854050264449432829999847904533323239783292819769540691503044540237046341649686495658289217770928186222259023530993613710256761500844887384728394557632922502889428840481758335076392702631392524433905903655188953945437482484251658020976460661112268599110182466768246712837170565797847577731218522587408647508900004763866616203564040038175932243760955086255017651711847592119307641012726467271170138958762565737441877505090560732720274369266910619530015279225353203914301305651945565873160989444605610899869521923860897499080846486077014594983567080041423754637111186663453888003854383946823500124400013446457620636169404581837522368351622022019311172801196782877892504753074637615004485090127259444137971135949411280257348118539567796681301946032173435343079967005405033042152717622286025002261181440452073369912082324857191860342258741680836872322257072786712221067710965156143921567950060069764762855513783043333145772844909435257369920910087681105567757370791798164186194547582219460309912654368850539162427722480427283170213084152141477428135778620613644119272441832876257540869541326398583797235668953136908799938190058506195327634702474749428808615021626115706095839525703642969085506353269629594568436225510560073922007191176644250915235961010385026424861636107265600815145714253251658361344264118302775424136356176753186520790557727896106120538837087498808068560826659436451167699378980887479207143247046013103583089105029670385899168147314852106281073157640407808131856109176337675484744427087819098955155645531751524259990275894889422803802184678090141284429346119814697670145612311926863923839246935367543806177227777612257637613386594842615852816285610598122791501305081196435692299914320627481066029975519145961297375535517814420798726234324673279227000808417209496460640344051063853284147458653565334560439042679704231939495422231918224744566731161048157491718981370312764175235222996472652129909034271472326878365067250881754662456443562508173818431810913931007287635946643858344838747024160744221650521097903758113490061804432688506265009696551623004357126761267340945162051370883554080660652639873169528983609333773608802592470082834727468475699535626256166592317315189310884876461191097859221451393523357256110804355717328216675623451106982772447228567459024212745445414702931521203025202998285112663723305597264818400161694550510706559064879228659849872035249280944909159755705527191942324315287718115127636224248998187667144208021017972716346636600652828559205648836319030399148423489143183119908594050460609686726593827987375148830534057883772261301326269457650967004223012061138071684531524110853655424582452748672011838522699562213506857769855683984329168456874310538166169998590092587818630292961111865624798130068671325681544609360425895681384337087915378371595260304289960093355657593788416666972619944436378453662668701036601444775769230183623415817331679126964633931795602544978723274642712007928175189047762256613934890977196881921933907568200397318433807330436649292486698476531370628445524038786707598708620391066046556475102522599817438083318810065725550568645157601090182218267516162956394888907771920861581410939702679039758136417393974790350509404873947210669541813358160266153618700089308834800070891092935145402998050311716011138784808126116215305398802048100902914519166764961179653673786387818606177943714279192231888477613504891494903255052382091926625120564845272774283341975499132686119886131118448871513337197671467296198254460500519867989185012323387957373403566483902416647054305503451097535544165861738142114177009810044305075791014939983470354088770193717262828189000281764547479084858755491685142976039431387400465845052391698094303261119763212395726083366715040098821746808418432876007389970943510284480071592039452851437607270732035839462014241599003586138420268906739872524352853134101880368053993464906484825643817075936475468582186636178947577583069389976892425741604335206146063276326336616585675449221236635194016162087559295618346187021263472925758767701969359484812577959443508899385005574978925428067559419591674941132634437879365051042543421148835280619281942961543896582632672817015781345819930465255842898129590824239561034304344818841671065061035249613649214444217995896125074147372786963477075310611942201666707476794901849125989139437687826883938155052073070966845033821850272590871976592878514537603255217858999227500307262192452451526913283012925955360122714989225271006621100487005339796043760774787899465819021887479360847778980682734645976666645461752371895321744112854330408464907791183138182759346514667945345203419805613008950565111550881817284340830515043353419443046975698673074672517142164258675670719474818489427658321798599813430642249490419323013792423341391899195444520789626141672128021087066095361800476749890558527019211226969895334412998934909771873511016835233020941686495363371375052179567540632944412979589539656712740330392652489442115480177610755356492992577957551364534711002443366099337733258601413217779908822510404785846411998896614679481006633888154886021454481305825280901211758772290552014509565126811373128940301294233154676624683608344262023305326944714193933005653574321698580233050406484952957936069624202986438692712338246055522965499051886643731812569319144181205595996602010961840744238506868737761268159604707245615775103912373371029837805141748382257971352847869783713275776883172828209649317984272871788848801467951427436051945202864014914054588981147360194858265020315318152008367422653314006224977475132226283772634466404274069010523134315794068685771901197000990032211501055281186889416902526804572174074431297971922653026233064364848177769230480184366953130161965992303057826117178763849341593193336990230694852634168984927954247305324658766196090437822519094309419696665274455768662693428234712604232589642212298146824060556618411838511106463255425454083472595506927476401849053683870343241415907322291312760923967578207703050506735188009452174877995677612414739321067698144066166857464676355006682760745352394708764666348426785096473582523230308710413156037942189792352126423582574858064734361280772474945214007693179021990916819027231765095573377904568238158480034042448129529251734013502534581787493778087331339729316539159070281762187895597505825949177755608979317307079864225673494578359991657846440701982632939631811039947259390778723749203837172146959527074171819003011911865738969785384644364585134434647946992717140870675389164755569283873406637455504496413359449015542327924967505728327257322355970690666643980650548188384182267427598781623070382018862751035533098359795711473226100246878403100889390736479631484374635576211796919361816136255757858165766517021255333756361478475179956081810213166304127898760280401441121594080337934804732650535193048687676273557878124988135343445974902639292030365483015486718444593210902686321047185319186097147312468069942933146802689069988120286717771210586824328520431406729411013409191040962666028585995493933032119457042699271582401985965907938058381897773209367121363657991426959626132056118244394212184261282018059301334300190938814669816887223275201259701774119925211914660467806022260345231394917090498352897901245163497563698696397033239260442307389891026302717027338231963484413247435337087570555177094587822078557737530419127506079582303588986622242718888108577005306797837582519012261698120948022800919452970306364752085744861721808102634611106913152166717551333668637614948119563203105467121785955923811731635098348709517634610657873477174269772913655080923315099924317060977544098856126273044487996905610764815088011759295037146183814376530233515497319847308957651936769817883730125194492253440824830688025911499045538269096407570219537821083589460565718965199963984712308325186736642797104988613000146493759887374654730139111382277158218708404023803632179109109023771034882846348005642927977965075524074024879152548185294573379636939710617626954177474824490299990320450571001370799799075329557477786827804793977406302022482334938320632914089511180914674459573745373457687690940886236303092965842563934212444693465684582519202840951829020831336832646490124558012001277255842590056661889457466114718357186246235194115749600338905031881983320250831849233365685165611794496050547136388040284239495920923004017397243305226137249137087361681424868395861625226580824628439214047752562645851423186983119990096768519880707845439194037669473761351321950386892829705831219100355218326573646263252956327998258804723843258079924824963137874890904417175737502740282293969120408187637317576104654741125005682413873095086165228771593389857631550095722961002607685901376250124145652229710176260072676010135659150559515596174513038034901125448572818667094008679606852658320370179369172895380917862175962247086986976758420964116120186414199246184457393614832694793011714887123044839067214455598139933354227213861364871666493653192005654896759510592166782460261956931269531747933989125326067933279559959111924355106413815700025254630742826225650268022513954645515250312546129229981058965227844850688430057791580411369583316660070938960790679095862140030846342719403494042508325116789571283915607606079013711765579185055297104641160985095349839506259047096446342767627672811929916887362429283966380339328361321671765817970531254398897525177586611259520935061398131431968992305232488735815220818878701098366196239596517424595074640385063803388107221878505436803953576375183556719843508394640021733629637696722796520827267203231546317698762782702965689587746814236265998435982844810186729594820891155748528426974813694566410405620840534863134361706630158245016096000702655865807882697106018421378817588762874457780373906626290633256771768501081347838939417891312168417760811306583593866782638083335287436051268554508915101157162104915384442706953120647156993844655806658334504023690004414166479273781715971604679981127685188580449115349839153234020096453491029353492239011634599779373890395262042769441277837713997481994380232013126302250228163749110168827002006422860844055286704888928951614567223557960879532635114270096805984809667080490725180401843440376276032741630402996893457225771462553164858358483330812475849980065630081342610558148931775785929721482300966148981652475188940483700075421928949285623693325957169002593589074916300697936604894756181652768147449186400862478411718009676656507687791804335308502102548836882455640114891564447643357098737666791853033627409289006525435396930515029568881156014235437209932273922207931620708149860945379559010786827111335525818524233787746184377543319239425224017592261878100235380044919453351918766105008320788126852064765560425939777859022322045109368200166746306645414836881935987213355898613945895790370784281867131513386514957767597052457146750060487263333659958950048995056666057986808589494737755181816522541253030702886348720924202636179635090946711684934379978485488682529017562935257204377170345544597211326414628927469483240834680904136968893617506496918903035072234442053089205804368835398396041428691722839985601630374379902378939308504650221836495390053504919273659869927827618980134870876885484446611277593032749092102283683787622754365497180269402932476086294329666989758881387298992836773295465617942727965212217138789950695406859960433975241558361192552552932096373344613434753690009760997107052747481718918463757875764858660871522526297314317263942810507200008346200815667553979988108353635184033480584199118320925583247552025507537606601093197084486516785839724529594465768563280510709400942671137242888483008477342222667555534961918148051807885551714207681156232665407642250856984268237146504691934872772834481490329162200299571771197059761613060159822210005439065349502552840630500128549482125180624041635687188299712455040864995274471627694143309334456496524407010235000106489409639923439383373935708789377981678003529801158409755473575389477358686895782116486723963420039456432304849868300988866506830984723835070224867078197900863227377897894029893098747614161088764280993066255808903719078853183052190887070866285120724454241555785003834462297268436513322446455649829590049929488299853202752221485126569311760100178345491316812379429647977093094160614038477784558509006874886019187128010625823677377279060922708555525546084850602662142886898778332495370523916443523512531800984851277661646669149216602795986509848783759233344723131417289801737357131086665287944507491419198290465846784028437687347480443188669878049671213833401645825336304225443159237289742563479559451802222323556060288047928077955222124902104289588913603699465091213728253023960418900515150899676848357847131592877462458715781939888506474550759114775238864145390536228302142345964464408393921296236301321824557445694843789961150024724092448200074444912470741717368136061395363333457519399533646449006480977822002131596594219303723483709406056509749156773245188208888338633982022185573575312103181117740022134065893867639636150734866100248051628593485777456956892640432119871650497379953627869429854812589257253283859232842571097246679315773866661353217515441165217172116179617167170431203079894416848539057673382526680771410885854712166241078096815736013537205122725080489974018401908835559765950472132972539199241357880954517131615915869929820056071076776622055280027526667743431775326677278909771811467178307873306254443487819697066925400551584639786162675931989410416970393411587593021867467442411914003146219067278567975609284719389666073335390069387909025755974319139785195684486666949391759681061135720702801054312884625733188701354941008531589636305996861694970828599314945852921242981484629384831149444543748093186457680357308499862955498995975660919406400563720223484014301886813590106863894967689477359960652505913259905041261042300156489925067885231657485044001434585163927511219315652587620106855802428360528353773841572966849028648291307465594804433046133875588296994043047323123889992740610156959768435906124617656995642672356936938907046544198263360347539934091672573216432863626916451309419177429000078869913446233170392161909295225241408597217846950766206260613689160873290506071545545658393714051875319579446698064972870680483274020786544126560117835306566525401707762356287773451541413932663799597365280873583745009130596795020905946338378861400859999675269510412327636147031358403163546232267294540613482256541780763924192763303390378161511027672850705960012999218195756320578474978849572191305519115175292385938267738224510568794635626453800572206084161380495914530789648857241733091779132422887621952295718566202992776545113523803729774583032738606125439210936033782479591817042155546702067611949899782325193191083455986974832370265890586980033238117310001291068521350333119749580186312231964398310246686070860724590848662893423600345239525964736507715723107994082717508192014210989336774854944382329452392852804767983322497937011877097039129309279223088937752148670755545344465898575095771245007179645538979652804052160422992762783248775536747764587761403498486790701992678780945402061727070562728805659801116677370515698240945453626542141502240604083663578770160176077669386110150768718552010301487574232429442270773439360441356960572959180157611887918280034315116983829094993881330233913180858890499719367955683634912889206118027382051040114943159155755092430603650550057926385158560195488065029701158622307565332799056830036274577622650974127923183277741649722034488062669468835255531079989926116869388174150279310996412407041518804132046440709099558026497412300648388374796927101418287746647159656827911900063969197669677313566670124079020643958547924640865249049875511391301165055524176483344007540944465387357439133879332767992559596629619757726605613024926467989929577667368714201355489505514832644608807212535513704920178842523677035140735664063995002345491026016957305384788035706899996773808475931313389917015055711026594620898989277552047567684090399774042582013722717051972099524865634799019925274638867833299595808524206098328092917230789415796812165853017677147988211850469124193993890596169999766591099233999164694026242676755681556392785051382914605354076198021018357178373576343042200084016690219556328772842146728870657523879950747080451457149849945563544328757969555917102479361233050068279082560821656429232224218735825641894247356562197760390382995815171538362056838710561214354950289800538141024644208356073888834666760141327031953615768395514323217837072408968882943661877658586676095111309194876774143325668317777339112242631018273128730637743894567826801003282297986965824696846517115387296180404553686847923860266990245155975424879674607211258458007796727724742917977911684148620026132380249611509149139342226177999686312930615647801541529898258514803228948281699703636430068740242937585278007982182551110025615687495503681817736263468414645835863835723076436885376588093379923679425896152564060457719082502289521940599914196983176738558708582776098933575919398510719224172845554407075123270922652931426000710332347416446545536287039897412138486285887326893780973304427559176579511378742829856417381401574561628948287368713484454966219952170619177450386476720258058880151107101237550353516950367619264143119934183127467657280042470120051315097097981204887355391659325428695978371555524886685144294590035744634217559400205239202706939272542728960676142388070623265179162933555940203011257790936909996483536633537871169221797205821374472198250606412744758015357835214058176807429089167294021585464375428243115753553043588113660247615573304997390258619722877008392619001003648362772638656812131755965388160322760456324550697412058924378568933033519786030743086846112687217051030251787662155502379686784625723747790976855662868668584734179117872726699696822733661665001269138273130416328545640914333484845775606906446786841006312948501588620695066819491852057599141898356892623865966323093368919448331557485337320072679380306892848445874181894988461379885202872963117533491308436336691068731047304819742471104329758872086024311093620245769455234591623236616102226312947248055288065593033741822616412537912741904110961526438233309804874226741774060647488257401147434167203159657830586344777360074481397404300639929097357267609369050245104388087638864597681645856984754285650453392136285712524879080233652823336632324608465409700513499018919890329451542041976789274200625479339366894781688237569653436115937812885053927711816931577774934224608330507640363929635801871887462507972881031197325367071581189031276633446337004114256601958284729342965201961438787801886972910890318521112861249321560159457750798331976354951944157636219312729059786448928162704668771000634059063497096246248812734993896579672573274490781756736505577641322822714687143946764764516224248545551720775741399814538199273574806870882479967247940661061208259588918686046042720898779391891603194955264684162851705556662171771404232025199014968722656479618055724249686847056831659343477202300238180335926518653660713139787775703266283083955379189947326905771352619179360583946073892621689332555657263032193553146641230706139375747339341981469316855406638795522329331387852997113582805255828613068602773657857688863282247772688506703361298203820916731374841601524373985874209108963388498744878144680748195951338194959905477721924509402282647913577188179849270572780083172002067758438356529526517350257466591098042378358841404002928384212614751365338940575629426224280575546006925436288337389185796353756523744648422302602835094236450608403861314036617541609556734411078310797645300743015735046704709912030878841147473259924935752255378953070224535173559072182904764048956254433982107660294981698868282839509905895164314076053585952094591514995428139562168038557291872542185822819673618582084272168610305414978594544145877318944709136094849554744810147778316118489510458408930919732591101584800589105510031151169497756567582224488627973880355865349335291510990859312201160385904128986882825001482242856900483646857964850665362997310507795657977855134231903465822404753359080328620087094861900429872669654431107833433113052928109658306648041090399195711968023449290389542990867714346958430724538718767932559291211192214773690266344142790593198417229165161996571347157415803934903983565784145846652780313575055265076171697245703411827177222048733620149866532518404004452166622472163739292095133528162390551110649291094795565923192027098323438634967474104787898523365872328935482753130817608575294071145387458289116922597085373688935528057362120524318630293217367118259314370923028527871985249535193748425385424855183788168210507914293381310432330221972121802920058147893279783860978005025733493537235986014658151479189842812634502140377001114424677556724455517743758591407663122838452543892017719176579872633225561121244240276432172774896860958416669020059644630750674635831537756886454702661728732414052107884725201620604351053939332737890580750752738921268744281393498774294569867887476522024772490256907306819315783415953875707713273685603995298156657471306349433574434628340047041431030617909355187779548707227954747154580266063634186422731856130330800236189702604437204866617452491833415468674541307903332568558158840018325425282420994881075414914886406378587047823964933906105045928127991018781737197522594624056344240299976171183291874249429222294390239802072957592944255604854450017583074660138504260862257543443549276083888971535540669575325717959676140771132641861910842863441961594702369545914184902497481469999258405276154738422383106968112921325160130764098153679577625550476211725827798303042891604456558010376809744041154932264804826561851080664785665557565843108025285392311284472714075464767391307303897230505760262533547673620172311898814964137172212960355550321821492274982353239547920617195961102929256429238333251061650082607805402306889224809507242370318750751976312132888404082549990151842337463143164065895865700739086500729642414592626505181597593382518517844769839249466629926468356770486832204964915258062557132530498110451921630948686499366196409064733696519627210890563932785903930439543531311453734210809787122925619237261081507406427458800034252295441320176248268537777789377092367001623161419287592801424337333176562151028827480802693199196610546031929017083003912689854563529687538480577504621208038799793653454002226114421785806647417741574665441995888981004173889099275667870263087989068654447719388910997970595231529070753270309004440349231709575706910662372124464161224482388194535418423165060130492944914602385481112939727254726668485241441554803319470897675345906041551756373120215448759661940845074212935422339740371718548070347552121147634095821169481605939842330474205498042367889435697942450111244323724039285035984927742979912299216920350059625484728969311930849228024218842322853513279313853510533100157649879664194883914880865052071055869492267746057435304294794980233024998892833825800382947489607566680602636157217511751848599630054602671623047250621705505453009416508762428404476587480609103507233078780577999481791652844080735555285444781766835691551401552127163191680652327673375468035060246006771564126036695309856849622160659117864660352215720130739642487153763740760314597632862814655491424824586941695208815456814996190900965965698876067592441800040643912049100020161649365280869136180892490104243652917860703819030039217620025782587103754716795517065861817187158693348889477807358649407797856131935096675626722905641049348390702594745170192412037307212807596175527034172911724338946787915166873452055829832921958010662025748075256269636812433510119549587990913754139969511733000598908366491176512227095291642257033760767534089042320730205484953047189831776031763339922296637059929111214634178122047986143770585310620629779342604523735330875446216288715214329656006326947292084046528392597856388238391635530980817375247515004445085068216473486373038592630481267771556608414518152957633647219733269461340399724615411991706186086757216029024637868753933222976364904252653197369821023740455785348840666568470389849597302292357621494462431494812610333669090657587921012494489103916363872363664715124073985729153590466570061384205421954967728557659928813819970120842614304677443847147173445103207342228304753594533228668134205554067429779888862355866381617883530865306775933200421880520963892237024628141503494843341304699708604263125627662245291485920406065308949409672522288401163239574502361031330378008375062332902221326894890191455063682070391074713563280098289284289373948126386460812196989249583707723636504391290231645010371166251350256493178894795402841249705067634114160309783122460945919704453766193117985951898450118207516527646911313831056762549646614619476351524040763934607561056409833036277012744601570809563542263842524253257495701608653498456723571105043851087669345356381186863037665221009549662533173120510664134345920056336148255954619231572067640196119956745908690922000271192041412890416291271197384287631104901840317865266160030315537719499712151793766932012314514693314705473358686488862513902572847661772095515912065146257120116673783788561456634860196263417701174793337030943212690950821224927210176983884773110110557384999113777425201744315614703420420934703539027737353446380866983712664261945493562479699060471670974210268783850340189915807763251583246821434024083642684699048936604607094520459667899080603442559639310998739309383234667185171849304047312039097733655526647051227951682755065098048501115125760474391129366931845145467303713190978848567220933379477918446210929127694163347976521569215024988464086455882818269245711175906160655624452019565543001351130982214186245003837390535747756923205122348612960127261933527158675388847809519218129975082560319616205268477067477519571728384770072974841872532462879794342527376534842000236172363711998378462089054502532623216112714338519858018608200079252505957803697038427496815838254251327711834295796032211849643091753041906073310849899177697690669211025776196523245771005412986518375594733730899930097364023140077853992284342137198180300044186901554688757671982263387183608825749297330759897996828624486294155744934015748531195264490625197400759997387279103883938989368156856939682198136246237281015424977591477226399183600281900824356887529150616366283703287195992720345375631587077408116116751263951281254539045290442077383858989886535855436996122831377822619723305051795541389399657560911021862700036581687288388223097781014858551859246117288327490580473542692049135720028045159504409534135809544390383884660395206482432976549223150367946611029396950872920080090605134705012054397110414185497594602947845217427316051219664162995972413239011995576362600500540027472349620507146259789969137442373453798339326236794305481391573153089166468021294491707173960078983099649294663048615410936800929415504852194567213126574671428098320577698151591417828601363875484971562040794488729835112928587195235938710220506142228295498386106483146268921254162672544170499678134198704800831060410969860963251982866671952524772087616625285021074033832451072233222019407148981528235610563064160347889430125161930113400650935393711072480274339652767578474267704107107755010601497976782748564798372262116189880469387589045522053597941914875652217327370950967423291781776427056534177386075458680348794526239239873998718433419375335192976154167784004182671498324039023782240147863830415703677380936329151185700026803298415399772626290104735872209190611068363927729770286618343820752694065752181313181333175740691648107784384432053517548732801087679040173709190446209774687458811619130622437569076355220700851419487228446312293940028619938226294663823741218478817316661146892066496736029779817387028559392122587395516634001560684030660827885274588179742392928882872635576083302734986093453511114261001150201742957065461161025593885677572328628141590994719920291671637233883265729161647770883763201995825310688876452959846153127235677426588372656552101218775389661177521902928192704273956313914209818342220611692872069277909638009697612747768398858678637440253101990941409331723715363392716723924694931870607611472257331995326632245812307924214502906854792668273291218960367226957101709044143879168759683712894090237456647413569610286243850050074176878759795684503281490408290286612715543860947471524634487273872955467429052501458814041005637176964402413878554165613116583144550101711813176314406561324430332544895915976002433376419277440535962358753322689898862806425117147339619276672999179762405740056104604685064724161453943629125985795173023371995479121453686609602929522446988648427732112900105976288210868858768379707431932997008995158228589607858029520460404923685885921878922998376610057742627439250829345961396204497131873452426990851207333219329807173669946742075471381170302133431982773132170329404711013175046620267228522242529832402817779433556724308884385048473403036960637214796977789178069281846340963426374295173926415607979306613049933808189486176812223057039376889599562768186088026977275933636672119529806470965671281551315783056424669590678893617430348070851271464638409889472317631977591119762383411765047496055705391661435822598944451374657779502144482869346067241918164594863734172008227131210719280108118050005258800683729100752831015749497398506481191432038525308102739468889220832275785200203501549308844182247720550311437982486349671974259872632089403952267379684912295352758691937219242154366966576977587527760062129086565149596382856859439365417387402400852500800122206080017880152221763119688353103645772502268077526255065253546024137791198577594360224120581153345802998701284412647068307821930831743756101354849496000360760252918191766894530273539565825579236063168191845610276516874892358881046370111523176621652501290691369721406721203883075432615085903435066069314316344931093574318196027286335713873840356486631420262253439904510545345255577099686865735806785147149253167642054443476071453085671317868179646225301200117549698698266522063179742633677889363529370280850653429930515044338331701815903502722630276568300454105240369045203041868264132257942063525353978146410128094029136314922514012268308685715364108999035415891166306297614284094430592296913115106095362759778946212919466649781047385356407935397356499381245790177686041933434156487314626860964210668179082414639639206502068692861047419499331013446428350675106445422717696558091844829920718939549870628124186937593283199310924658641210822047507527715203903384132134574442962108162206235060705915292211986766801635984236736632791943074323701140216276998977888666216405109992350914553341030805897389726759349673622909688227591425004299252719665489689193503493751114655347810424062924279146663964096879545781217970904136486448006996361180924704934069594845069273236086473957924832042043138217960878624541352588625053103186828193115227904054043986117010513706932392258536554239704005077518024528060715266665074711628098867187162021769321949709907973571733266375053967151788055030728076674533771226908284113602829220766988534149757266486744923815134803045566754880407028823899854193295700892783794162419013088454618465310713575938354287768613125324163605696176433118060623544683212538924598595016325195311717116969366405992968732593729639250538640183157153577977114503480404047981235369430145491540687190736433461765808213796740909655124440458646881703146476513564090193264002064167451052296091902223229576280047119331675242518436574509613866714848414840208405034134070299768889536145951094720648712205251331277456096337009635641674842782377057561738035034759643000889337498990390275990564582410308722643115618870396832609053229237497826771289648793206775331514028881024636121944836420595813918518190299756965669895263262796577057384659780547318900354126590206423484998442837067584411607736712445739542260347431366452580373360823358135271565427282343878095510961689837926699693609254806168286910002193022271460850798996945601348546505001095885305707644125104739147679140632820348376128109715971233506406007553720495573806254589395058300756367790469372245108903017895056615606190043911200062140663052112549972875796359167440323588078268931370193033016582517800451970740687896633062737854914928242953905003517937437178572769805738739419354063783806148510058557364710883495475724576550939193170970047681292682226653648929792481002734863668227589419309641603128695865434883122455076338151470588178430812812243332065149254740582890149385991356542071648571082836198483945526464941058395030096083905895533098521353306476796333156177156014866243897256543325819281047203637773769557972562469569579527248281568690535329973852167645204014791617601169293449456058299365835208106349586067163808891140921034024585178177390555549396900865515219355628578254533069994133068346824412044999919245716349185538349389048002475372444825625764229032353442922594467613762294206214217122943127265846986395334206092176419922178370578337777371968960893985393635444940485786620428842632662649355545210844015919558309068423077443729761491293278311886893841012839348603608283186606712864871580574160853387630241099345026064233870406786747205078999833731309549962156292649137658235054332558209346748285640813628866130506085092710695768022800926006910531290657983294430848029312786644144211233033445330819186112701406653135769730664179667658658792695149142960254446689288757480868590591414822917077855967693576225473356862814251636176691798208181018612725900063422288935573537016753069867612275997268419677616381958230619505048597749144740675652483346503539812048589803551756078425995506574386795040833982480738168666007559671182135747830038980465864783401948491206649475439998713275823238064316695137862521145584440465198865754803185782301660886880640780542235994302004375134302497470641534418797653724391688765937170530707856600210042573640162273107543474261613213140699913000790956202856106025099895771930373747627201102867185770449619317019969549180948773196328500817331616123662218481296614022159985186775201935684778045154292284728365796539289252280803661891962799466658901513118892178265093176279585432795750074046165976349928195788235562307198642407733401604756700457027312340476970273321965307223442297147163434183394855386071502379577069988725889593332887264427568394627292031585665251998271868133141198138172717452202967483014170422151339422717230626841024569976785987812161213203829101904702975067301977060932955266602735445984400525693302832992583939554841116559763121003874060190635987391383561674343597732496664196195849248057453227572607148524460137843901461501059148525332150645600999141053024975206094127062785937159567274151269611752023980909489854625266988753411890426210230675695320966241257092935176928723189188139197544272581473840648992260178656611873264770878469515529438133068517383599863086809147310490336033703701970145172137393800846564411872784511700299340291843766727055969504526772142244655583567738715486503359396815740736072491812237296563919078114618103820891522522368294277336259828897485858765346431695826431413599788925147659814466901982377281238663983674452152586128559635625737794952538988192336981301675597815885417094481509999656948447025992017221909289669424187652281010068941142589838550343860456508372605284447785865153039421446497008085868962074182995373942637888517347974444329696857750634951006660192567841430359544032708991344353061775436590428773840787536299174783882317902161394453446846665743993981800971438224518241796537146357899273761986662264040582148019945120763471109313761136928252445240439384612531984224611637922445409364502436483465485384311328680586918271248377908423678697074554091993401067122263626916820527676378580773562615093559563544755025662297995211271197978030167308456584585493848459787150668972507127966687527619036699248956648732131489820876930727965062942107872512636064743809635981559226761355712951309698290427987794713280364507797918204365751061132059990355179758672801553234761902538608878141847422006467610959699396817090007531940602703103783871731148833648632783541207783678362990974656740992968892289737523704452279859034647041474377939788716350010580086262237660320165540353008905751095350675738874145971968013799658211610430847005741110906810707651360878138942120085814522098586034171146096652021394627707091235940908841288943054599090013623895542931717580296212279885902007556133047715097701360087630963801673896581791106663781290483538215686438748540099424483082769033783904667847489381117335886461617161128794504265348115645744989756456725812138237940119421415446799037167606481552708150418391828275852751462598219539331996193176052518695032488365729440219422916499916828041920398341335349481160173632141779483196051130372339520735359346470689933861985604715064812000584531446814384022483171703297225343034273281388918114285689348453967897342570522910901844268255707427200935268694422218573316316687836381535240434445361088593319340651912494300568253854178998737909136462218379866592577581842614085426108624052930463944237738963401649547593742723896703391159238697768396918328742049545288599333646099908876754465209998833447016568444063099901599522090705213936918375045164932438928974685975055474508805330147232373493385796659554405865726190654067666560163095839488763014812172222682902812228604388609280362015774359740811162331413393919145967043029200408364011804198713528695341271649494298103498191862841184152823407138101684113144717822909934011345198266390308124386253170943163902617856158459224085415203941299096519464109770389813304416915174935318090690750557180624216026518250167930149500960174605301360276676671589247599914991772220388807875209669220270388321078449481590604911818314387742708338996917557152649415162509782834864461011600038732493765024078824779215015129029245453140068120439157843524412338613453283258898588773458366735031652243098135166325463451168942510349532105680430121006962408175904812335324214411899674564311392307899067584888001005272286637650590931565134091251995040562051424482359965331899889691024120716560601220554255894471586294219405432472564802575763366838290608655122603382486159189439773749350316535630543098156551498298570922584565673527211162420347818998110734370344158774013742702635530361611016757219166159099342685891187556160261544115382554804868356623702059981906799831033419173123112566986268202438770696324506442642860514140130124537866104951691270107278311363461682544892471050687652089193784247846809596969968469200548645194146328374724687072415051110635297606814117295136813414893031100023806560491889482400753959336670451607367140866809549890412471323019663168451309591452930407462143553010451971525561277863662181348998445842108542937870763164115171340141335383310177073024601438956235358691788515088047131850310602423878776799301340179636667146441121481549647691925763294028847525827366007221644206001574441171278709589148763142208274331582168117310575889060334430478658203599688317944506974009487046237580579545514602761190034724457380288448730950645088191445867889185052975466515651634638735411356140310653932961659692077561873820125581426649973825285536257170420466406075365076537254276490525969027928486069948424249010027967479143354791057176512122201764997532638307249674082703334544897920284687309428886551783126504849692312773935571863923186031340315803381424263332664643578802444644976178681930586211363213414229596280001546905666736470330200247673565370558932018736586933790216434333246823205138041457406540374823551333797720793208769939000295411853348542030472585348299031820789101641597439717788299972266387947878649483718742000369400932180443992169007586937468889114387082816692301563240763726518047687741613284087160783886162714792510160216930378873120679318309751209840387119588578447669557412710240825325442185301411891831106040182775074451327199731548355151063594956614560084957666160164132140027363411434396209367543021246034327543599223116526043125681558236078996649942860421469159569907073639575297031625927536842992926860605807725846650659551894507396786922877046042766461621491158669777397964543977251044005094556181851416858573145177617232421739969115345278767824330912607519266871096496193969552291957167084210184324458212717016850554512986983232326279962739964090709396126144972314722304172872083544666455114652570581194127054192261438013934527348286858182427782882947901144920099562268563620820235971434220740966127425344298663613382731258609228324572232024292321975253474298113652741090146394913317171391394514652236242133554604758352838406312426674619167997171551428881560136093272152896402643502004995828220917085689013909626756087374182441007877045659141915925607537837126123588826489541711795178343908654392990450931297566284981277585843302714451788611547696593488884492032245252320115613544117160593255711586782657611880816489163943658515991033447316364707528123223465072612510391462844772676887550467939692564767964234756001501356478706039115996337249643616475707088782156712613577836744410023979037050804684135043822022395105619496713018168967059347231314576451284528254639109340670649388919168624505775537983412811965641786880383831983354636596396616474598696856306316203042345071580901246747407551401356215429718092270527189353370127600919311915106618594871558099187757319627692486310487523970893681811052713981274679787992953237719139164272315602959526782683619115647954579483615415287839988917453296412036070997744764296643231898566605563342768435324004216896609193171351731212608982005244488895459173061236639621414081683191193484979743789890990751638418922567301265080665847662323746683028657482747994841399711359275189872047150626525834194556885519604240397676703190271308276661922560320118636288522497519183097740674950761217293247719733868169658654527687036922992807879899481322889996165726117021314626329556912868052914221023435325237025930846125663655704364643232614447228512554507460194166124561537372921867330029072302284965867308943033381190303514746633958400285537195283575310659328285271152057776636944898035329621948231359498893730958485259391889252710396285722001131037748190916740557942036782027062341952785806292924626664140319726396146889189960773710105529822778246533459287200020906511108885999054705677673159058283290355183500471233736709388328887356642711073115170432660859432789404568686948555501979836968243743399826924151469684707068727442856549871654530541134409251577286673024887739566550693694221382142851688520908634726725610567681538787964952917445295019478553102484793078978105740729821705312715926127343322017522787304102554630978910452707717726710435425471737630517043803396691894195770722538657709128187272518595764162921198955062079548583569893315227168509262394616181518468219607593982295790925333203706568130727939259273521497353144460102996980997784060217800409561981969493199960561816176282554799880753966789179529592321150700698074132524315256392284858243753126880073591908171503616598242269837861475419137663120776871955573757059086140829939287404360273142661267457138067902889150276895283610892481537484267083527370271901406981492963481864174147000562181537310527388316163812310770236792822541691424546497099202946869151620914927301989256982362323179166958426404478764821602214466403572786150209899137372181877854890722886564850164950075088808968855956873761017810401361567682862933169973346609951053283818107839004982203485799158647113284097351073986178962191675493041210050870063660762457445976072395113412541407654352369277977722973749464486382846488038449307880781257413519176322442283847493886057074370108277668287875661045131569077636292800869234027193067220431922010086527918685327441816482343658278077262039109835155267494910778818332881525112975155035827764917834383181949195574026507607913464244341289404752141764098744747254277131646334361117537162152538411659434967353751194398847502881802520526589909651865498122359280937541678100703794872487235758276884270822108588527189900628764714625895611809423028889060202314807767318684676007536342932715079788603462286726844162603750148876828401908067523890250913543786986290020674015572734560396403118253573505387587512405048912295145181708136945279260351899263267121210678613756782413317802532800748239591255795536811135924809325249911050841329507609145248270001897989906164971588953437541542316762400944772536740073304778958301669075693145082517310433920142149208028487169371593064604144504447196813775234178514329236434513442027478371257174920060348270110928052237139580415065129550100169822161398493007093009633787316508287305399612115719910859716600089333186248352389771965090491317649091420438617631022225469841077964666899948425561995071511444794978497746827101788915811130962424050104608341223597646290093254641173056915888630988814980146535017315205376607013306009751691097905848713336721687062872675143876236212468205819586559791415406111425379680365162851505221981396434582763880307916304182516915739430974413074371397353871130628465422037189318843223560173098261815016842244934427066824585645552907807744648273593297736094724478472827192471389787470945947683932746385539884321965627677259603919021439695802268578990232366345058836914242910953920911552153850275876756329563064012532241124803869650302706723804197904304041501357620922235944248555038339603503373603551241925483380540234600833073875173490034925254702822293122555796734615028001358045522452979849008725435680464911431994306205425474183768649943502834272214184236360335610691850848074652017352401326376699431404142730752169254716041974231079852309725708060027674195779205552722961720230787689630344796495982920860654388208659056360135392753714278705094409778048738874002282772403683861838224610349938597130618271629707114313054792951222496626452342713618002317480736399646512311964518852428328665820420323102735495739071447618648736612826668259983221192443572548283623979590494316832856858286553882325774638537636868924981571933544346139677831021931044778953771296599131866411971242608233204906699269212201560391785199707905647172730786483306236667672651467219570338209006164815023817891970102026448256927875495485799859288979912678986282571571094585069607357807306738737411992520564134733373326673001167480662839367493494329566114261455010352720791508371573907179534188170077935183923366295603693702873012336596116211747415719310123271183796035392746652830052757949651228172152877878801412654178231832402775471749554437606233045973737034708382658441390397036306356782275840065665811771883997217670394767225515157017029435030698438825061576535896711475258287362473349370633538408748971836367591810524984278270414181504785465470265575030820066783786114963321749020611606955265227727834533456255613930625700273492127474917058134071397947531547801670906574854047942679175727936516432557281528533363672021706501986175877873883664969132703445353208531636886522392912118087655983589589384490132270737430245495899989994416503810254116655104458651224691696561589033923694216315190915761480018881439055932851695493028613091879323630537462973234054607225766480205165122033122536939506935594413660935729313692421664303579870626783560154456958603554993508235517837544455999270713044253212159505656272628791607068256704583558485734930938238488507022050837667077044365579481289806054501673198739451962888351149043185288222657625405832668352230570859152803713062012746998107670970585118857374798307312735539075365333193239232188226863306649474500609019050513867228923196361461953422714180389113185581816474547468672744089517793262197869838276800176076838492349179513380107522590794114727441026681100938038974525496730866680503555925036096399035455984280975094689676675887167528786892529716511076778091147772107040582787150850888332376807246294038264210070664122088575471469914726937215793770387561412245506534284981649997516976906777046705058925459653722549012424394182585865076528230710475648233722742453652090461175974163411369343051222864838744558433386968339943327639436987873281970812411175739588211266788352331481558740851470440684495245793387176270809912645686869404053130550314002056245651291192549090523823163000741717339702696942992890468153232697832988232575873331288646501383517041458675778752345179502075212710208086345665881923592301956026353709892653364649330797066524031859977839331411598231932391394780360352588053601022000771133410996381911207369134810380096389673477348962506374812850662878247583723253716675003206067091939826163363943031003944492123407755850860673579595210482284111677228807910878711964619685924376961103474484670439376703043885953140631608268416160474335854577033603668112504806299421495655900371056354771998287347840247476085624778347493731808356513981694604446315564830960233990802640678341287915019578022923961527431882490182893166240030970288141258983558383992400078624709019903991599964360635232192466534811765521989275566462115819366436815057988943263551640877510454042999153017412282850693853862879877783668964008060932970101947139979979125935592440473652622515906006826675354043950440198215094750194739120420757457181981700612365858754956222916167575567509641606724568432227876782861954941374562105251090985295536403540729131071509577302179282853932786353131336650459669825098273806380098609046470919525829444282879565422490241481298188330744925688346771190824399579981295001474203393316738746498258216980522135936311867138251703728108852890389916570508160139732414800830045955217704864059424282203052726579770943349009441187666453436844161554017312856579160554863199106475351159150198483853781721174001293812600527719129932159494837301602170561795786420012654183472472885086208628119040734550716666407084606141999228968650270629141033709230740310336068151487788114935033671504026646260861164802528627123453005599129123971155375883818205638884247788961746266986054135726268173139610172531226584136499876317698295158534920977142607414384096613741188958369379767031279232823106483048086744623407157423848288492728616687623557362280283010249015346270672791864292169575970342728310309837348884083877833827051879011399610830515104557615240115391719625654596555990858941369053720375328024518700339428946102273296119530421762287988058612385218572458324572817296569161925634671938447432900604944021606083579661839908705284924595336514184596108018042451784753433286979294092919588608771011795173660328869464991188676613618776687360124652206495723001165971976676648257013849890563734704901190326824957301579967484343752610033591179683562882746995231978529562658414344909665628503592347817064822229957509427948490227942406738756942476821823039021782418026359860335071727093148264449178846601981153627954059741224896224768490998829333087650163500034763045624194058930982604263762721509448128363603256894796673299778467912926478104907557534530999236345172583175844293608005775175621944648494949302898518904784638154598631732431817158104911917897534400467106536182968827375893596669213073487924121803716906031087391540090611686963544444581089833653969455460877940758844641166579966241062469817003517617721110478312163695529602461447719174068768434400335224208788412861534883112629766160457557892853298901700255515661405937360021378107379240152453281345368472936946379872386804955524893304111080299288881961337531988630659585667227192002656117479215205828616507329043510558752714436642429712824680001387982338850390864494911886820912748396453502587805977697920585615175817281899405038208843882341474740539641855323402031872102138018734441511319561903567052996264583702382692348428792746398061157749393878348535547595681255748715387375219984906880051548953737274727543093300177818814095934634617677460658227139995561288982265162646215330766595999739167560727132684475548411319324318134429516155873842533854949775395503680822990660275551382422265537140545670087748348926207127497288939077912537986294966332682165102447721497786304935210326989119943459897641775201009708426309393874391801145957967609065062047914202541358189290652068571905161755790287760600756717896704685184357245301785917477434187921653884079882042798765922652544443631336977548817855186110607390176831307746440367702635799094865934552379925885591575871498480884483822922700825991272386783449016214231964284482560878829392467499051789218397685095970983262289237748606803867718659492176634606078919868919740983622737406466062996086042276240614332093866586574886622451302575309501120904062857495775515925150072135854939012101942771013939799502474631222878475067257971681485706958143092685624087699727236361190148829585178683413333837267741026537520102599698431150116601178383882846141036254648950876837857672703492180037553796193294698850880427953850144813292668386632633488867398530984929986278794808800995562455286647562249576184880709676955502357541602940996012319930426311650853127996232775575906262989483878031053580339916286417713515102497676798538422710147525590102027812240872855037546878748727510305973730487705316326097224724147196538819630551075414235011864828759008507114419995508400244135321894298202532700015745352183617564593543010529984522493916917337951277260084770732716366891653195453745348198502816313336290284248622864031683849057953871852207757252691627193242080640279000865429358659197600690237952041431374580005138795236393819774965556006167492403701767696688902368215689409942756830417002813185332674301994864129368492294431347123052446575751383729605610728950946568871316960371812293798347444817350806831514476556358283089327681550710289761921699015682008028035293596064432837401906249864691674028440352250076533572093099528329994303317066635522417037188434464668249254683640054515786031632966919432884376521155412446890521129580294551604158937018338026589961368512462887745384141401004439300353456706781379247293612539125296137357303444170158167945964188338926798401342925248272334796434537722284816719309587063864412403953743230021532037455145645885521912219565695109549130419204939892700051261235956929579556866820998165371798786446913319459871471651032418631865274526007355254822924745596006546268169829757198761577699732401736617612294597078726876897137593045572532795273461868845752874437096446675603424344869255892003633465945695473094535768571649416338391646803864842822977291590817438433538432534553893154545873840016842288388654596554228860394181492949270820728798920636070550089864486719499699638426935145636747190177677221462464424803361167570685500178844101961455998204206306576643322635718781955150872566308221401628564337573610607245999905393577837759918888050264673505307232708231455340992043001633494566830168446836189813234855425687669598392971962691336703877165559726223342125550005373548794384338512289935711618486817822457186511315491659058464168505257384595714810001042137728597721282996012874996591117046001507545460338792712852998457523248631815127887618106385130467098643378404916517440628568186338047782229172237712615980184257692039787581049577968941480287810291487459494464439979090376685665805939518843139720845343273281728489244337100029199109392053567083076780650647003368478592217225596062937605633607465471824002212365144329177769034275395224219809689348009676428565773168463585817808103172268080041512233962891043964134115225559261461966294424763111435039799173675502941910502498831813809180630500817977995873006889155419756755717036249620876980090280613726705720958583528779347549312168632585153216783891504853821271866524923208630439260303997981325773680864695438968437027772587637121189178843197421052031758130621422248459146294927318734844962762306996321819630355482251134713023763927265958546626712072828862000164055971747394166737961348134984081434591510397681881029683513259196590847906934727236788890080757144302475569843826709644944531172286491128488526086606065972289646184135264435488996091452254292195418298095579794894163187082046630360911672021775415848438932119179261602585973180127944349570329703228047167872592929356017574088497029492326038649808108221893123661298144274425537375521244177202289951681896005169910138359314709397396608945322549315589390114908019879352942219265414314260438357547056467262378446817771226986473832231818818305406895388375412319760802937786178921781298733629256085094262458256788922902565278641944953198184476061168562459036522358761283168991410847377431487804928096729472398096911140156028031004032125671409639060497645004316491952293168756559654089966178106590689660696800775883540840317786424659621848500970615228848686939849173662149504723110249732968156058516543274496760224087456017660550402691385246866040832801096061103589078555039266487105554580560347457905037733857544302649488502104811772849613623168136114801640162731913531167363009508389448283382694337414956992253348440413064463193491668663434480595856372932608648992832060173887943017418846416285772987306232386417989332546833146958569048290524772189807981886519359200273268950012809877306846073005458875542596252347957486061367432208291361964552690806634232926082420475953204337555836610679054396600060928776948048846908794834211273519898185722582702358391572525732300211876930172159128639965488524139750191904609323476801617450313516875946189938262079882841973937106200407869061279837381200456327052577229172730500016151015018101179206645036885671106035605157541583588064308899075881627431578832629785508966449747237182866589319206461562965213893708856981775648098682262310038389687989058323848627585739836408547795891834995826372616858574834075446895445333613458460277852331580807872936082721256200191108615649405785706407690691423929824346309319015360096207788824193227810095218469346343091802262965488180508248739012151224790809425646279977949830409434479001523132229733390421245088239909415244592426388654055314005320097683912668935820627184108136253313485657482761706523468708181011074447634298647333914793097467596691006819204850576768865035801715917307705733431931846451167262674535916782635808452395272851570736236017463477289417571573294476089015116699673555590172935602507810287539539643972966516869286411966925835260516225479984764722503494970470451385858092559930168635673218724078088577350915434334216377472327763611994502299610837827583172121150016321152015223241121640168705204648418882164378887674765546402718963172936468228215349832029778949888929337891384917097422039916018982000909366254611909926115734395864654883898267659161749562233462277412538472004270203604001304956434025046839432503452125408215317876221142960129617931262109370363532707443126845244048583410444829455574194157284224340710023502312719229937276237933664903478722626291854496807505241791586448461713557899087527738413281545335375230260001279651178988132769521329190447282883259308653335940995985947124090077039121841487016268228314617088985376602244232605794168659866416153968259395273302664490816504235135535632553705495731137762162964272541537005012112279024806061652869426316403443460665680960315111580081240707226873564208810320641814906971472768951489553108413395543891886989900525116467701705011001786481636204061389060143775080211840072041576225617291168019065120091084298982792388116555493823564647557135013356514611757942774448081266641492728392998936987307289116037218829476704238295189261043381194274682281270858687821278992765457899554991836468057440067957259026131701430947022898022473654378174032864464059439609305582920640371243155987644203985397571565481349672467294411995523782291434936837751409520834459217082604482279402610339252979266538410509696818328263945983734318039119416707616454497693418595036119918676264749051757097780345908731090240854766365765506833784332794892177372861841050964437718797815956812378805411711794236009868418986471600963539250405117257846539079904090134519940874402254357656188031751980663501809005404077033494927328085378618189896579233456785585712032006945413105109598616026535033028292150074353697056325515466396051484980125308452016508329400204340300500341560747641632972793930504196026841379422177079816686223666446656397231174875592125344410231134072189754418135415826611782488212406642257915869499872557638395904087707937140570246923747764593700646457999595333980539710338258032930733706005431505367422606134030675527132366513127215031549282540251977292567165121459181704324594113195608602393439127402172495142533103834226844689827442539308317599721306205266860870013813016751962163196830226779649960348061591959432352323238147166940593517128363934507361153688206264008959959999327686830140053835052778045891530910782002140278505061514500020098363959544669965810122234350432903193312840847583845151804753645541349160800798457421849518637481547000965318211130875458653589301560185173513599045020913763839988214433650822828356855053687032554782373178744419048410360775975032408362302340496521566822768345488914519745439448495475603799893176969066616771307294041817419323808065728020715545842379040679627365769300974502863749806352039323433401886820415070374139464563215843936784926000617504503858885656801874924287211791854085462526056926274545550378132161848533673303232709353917249366281860194982568159641424745343489344894443389722174029326386398522648715123448885152224683503611291906319506348765297671233514158171218680571756451501651056312409970002554155624968428167859228148005170775162737714789956788278436471394548927912401197834778402134651902759828283735906157937177153902107372026111131197132612961736890171066554055557185289268017508027045921399126517729153913513705617125777426918596626094668239518531036460624767356555905754304129330223000570039281064074488344590334800118154027654219767472972420428010429913699793831173213786565529540011261792785634752625242078371777450160043673175910468693701220055020733195899923257930673851147822080196029830546984243634198805256031710918915324805259542090317414461019131925283920685699339893623795811477393559207966498307842269390013150749599575781757059616574795946730393007711450411063126299904770554042175297846568836389623642714998263828110900301462813812446252962868545532290399104607101567372767999879403448237710073799426634760342742223315852860677758113429141454655433066378259814864135396150468777675071070898681380790199318949962612913294421990196006339548147759841583253718298223508067144300476791509908775149958932873589065223195069915275472118431477675268961340282607237172716575219855465304984501610861179667167665268827489141400508876866791784756358418799846609263831430589063230205612529429266769407531886985489932267712002836494676365087908601736830749316384526348285938349775742505075960358273788840311611609265903242159874005528312500615031035110517840369401167835173642877772173805023968113754755089298993145898120379696436036245701888288490192292154128908061691302306400950091224151348621233684339586764522061657039906069049735495724485456726341248351671486375596211252119519472720158477094165457224437384941671569250236667593926272496377984112939675809381073930636326246658916403732073375399169501320026468598775206152913200228898418066364469277011328719348127666720049718794369869924539391185319887548259635265783623083530679706402185050439730175313456973765598166720559385219407698137412942441911404389059061611905371469245891651046380637106708823930400864469270444833538103418764115043664329145142315859590461300497132277890323114305696558407982440688210877642451426109021243677965220922972344658866355430106241721778931252161378069516550670274738019381412383197488149119516689165256398498761327647627984896746937816609303578589963275092242124256635577180396931538921969908658959058696054107327461158693225897381636958863368212686925473287618692439954992664298884284139095788194318141584827333724714625812946542250339575194245038486836376504003764249179871096791632988996495887903308318193812088512625689517677391595435910072946805222006343352244356490161379191410762596416013553156708684443377317615835448501060320970228860689417896484035818158102017861388391844993817207699538631629064876404906312140936879360563724141255307145789351557166275425474057593285061900722530481665851969412046208130259370912928590505558906267363047242644391531246897417400545635606296138521202332413077307529781636560271541020334618743908207544627582679031732966763594529943017523718945737841729915064261660096361178659227071762297228778303373294398501763021433391994165493248258302600806201463331633196644619141839518184108158446566458353137580415969923770141966288974820714550796694383262954519850750989360028266771810752790384963248184269620228456710507025355789207239464206701051820450260436568821350449699293955793520255448911113908577634369771560075750318083470587433964063285576619079274232292001184100519702262906010661681858080766550230268116399343554965630420329411341139599012056877113829738985999761382014176502000730679554338109709331226435397327632330112206827286826382541573348408033406146283100727065482326757490295777160154885827913242921874791394835216512841463607561890521266847069508256406155048943039346226400691687873007233480204686051912170085690033788613143620004460433347572434147775276144599273406729564490571376403441151946444532720022970505551496963722447426854736605902333560934954817467441200003332622660877712042993551763688552977309228452189311396937262190511792414531781986151240975049291238757609919555167457016656821611962456541801724852041012707627072375759055795037709279221185438689940926798449341029202686935964495291294916007413957698979334853114188260673903110085835254011592929082915552417874089939415865955167005590466816746240593995989142508018445768124836074773666371640161560242834646844097314750632961235125620824720213960922621391309653671577470195194766726103433925164038251961456769503781213765499855878763035125703316195713967131429046097636017952864425261295269428634708490665111675128802116545893081110603146475396633900305626903542125642860471686014393219052949592699344631088776133376502854725280776473511665943833330821234988351791729739265595889135094288394967685346411829872096277903436327972189715533639475190365169208591906233998712619932380868736134265995945512392323653915375288144005350990445968677526310032884382064970388189356324049710226716136403576615742508450532374820915837165754443912301277145135105353565152547209217302962359205910769240966747792065387444759547975884592946357361966706300946191050373710675549501814517402965352584995028303435991975476993671942199604642217304732794345026250788954337709839533314956539181706531125786187847724845688606655742845371219477012984560313729028280842706619924374580425649286070545789307906076268720318679449675326623069342079979976617582465115172500131635084257824552564673415064368963572167491948392415937027805710765691428398570842045879801989187420687282301943352317397202343578900882662456042243717607009640555337483790381589922271121879436713613124089806775375568836919172960756465353664344076147392445858989647090720853606873094869499131716602914271087558853843739265737201538616146526377464332444046328052293987696238090979618100065857355268274953041993244410754304643028066570855649734301910271484037450999442366408809771989364972529785279871389733217868755814136398361182888528152689979236954932025088114127428580408276537625811893822379719083515847997755910930354779925280005237239723521958850275827648096570047835191974611092206863019921586701263554458174630187267047027680121713550190515461933864953694703780653915737599673438343095876403100052395492479822228913003553631568726996474096104892937451194714271313113087611633113973621479089276914733034853649726327406575624104051033558443444615122667787239057611990462780851233696902372991062820436097052083818765147174223493073900137986117343777907347520831601169271283823211197325504736429217984633614905546431630536124822989182529889348377830735021493963549677155753406091944467511657390602720798213893260421010658979822696014587765853120121842882772970081233198969978357281961632481956513867312027083243428443681109606212287190780598098357007232129304948759090928018996803839631103804577218880764985813480031214686365722629100402841037225719419673187948010592431967020119331257937045974626500785939698225278925927839396269418237501057657569161024433878344408036955269734188425028247963262221861022823850192747960016667653481271291900092444246363018874071513947121357485561498745347141324187340508464349754281896740469675489020595961041572013478876204297536620659023529469253546185087015741147674284114435232409732497136105233283138088604300717833503114744562527980624771924453198386806298753940387037136960457741801271698853408336813747994009487205857672718588293130693573939986537181309413621954660272864515623965522688096455619379721729438079539116657347778465444977212922653424162914575119331034730345205441628567094217159258856514364141821826543554768784478811756018127465703427559112951222519122571320154338606912030013826829624404759461748941844684322001756339737000162557133037715942859977416183986948995557213685258362749046656704621757649162257755508286220003123465420657880811327041875441214528226929055224180446783319494851493058185253841389664568168166595581054493473088633260610048248800901478417311698276874164804846824642717933529224597791996104784475837227623945378623409379570817971992859231271470272109979196330648261157561405965396534219186387697585790522665978392069840868583876986965312070586756308527800494720354080750656220419066468716649179210270892444277911659776383621114060991616038542612629327170656866282919501560675611148027805736720821548202937240590152682449227295781591066013494053340367825680601032421475665232496290084592635942627965852033904674875852698243558631043514692533719078033888128563021564569152176972071922683968176051514184625849391013838984115141530345620497384379609421051237418189593017563000517703690029725562364336979962623577904096619165805031866156088360733606364286301043843891648539667628169240955719701630056195200230119618882078532404562447512580632384051871947970130805970427295353850603949414732931979053643974678546951288039486740228979745944163375467928747780067615728649221803830272748057870294839927708152462951683470164009630009828230631640224471338133099766692512698062474065571130179835448993807352615256782748626803675198458211688025496614880565331228086980598078446689012586260919878718117976544224425003945209456527341292058759134503920724655597279718889397326969972043667212955437599380939346462253486313771104629355398359659209139695534192064514896379687075735408547058942805711931836418142930600872290112032285944178517791452007649246470700540460763386975750141337135309645218398940943728676112104301984376478545344798342783142559002099726796495603005376286699566895392462790289568214809275195665765984688173745284318953397193593336026417767301190115220607104765684748434860462856299888254847711050020709183813902003148037524080179709598654591448310628428973264359609486368649138538501860291344364516008693007871651413918815698059890631282657360615374561006679806290523326137801802260789895298555111990978788986008712045291245371976299136049218296724549071365917903264693670892626536174349450200051150864803640593827836420203320471972288635223363399146946836171929057921564643041422967457015821420827126520958084655105902679510721408762632313603934864043798170740758474938027727074600190445294384064532856939130543574281866506308811124284751482719119768146154112809359550436957984035958811084628368091672214662027954755606100212084741912726462597424086574538098577213709243687589616815242673409325953712123451663326381417084461190817938282843746844777636383576937983435724477981994790311985913429006861810457386709631781273453419554170922832165193151851626367291846828274025550544677286758089072042457541593331564327556740507044676526159762361271613858298835207178608024282576500684694489832393073878662810122180625375602112819568347783914789982637570213126521093633429981427816565265102124249666974778516672747937244607264318617041112124882433489466081375026830678163444658912400668133907577261360193146141121707062563337517895985579839565694717965912119964427851680474713071095467334391928724236640539712637243162647059695397686626666198580432839180346214510137133440854537942884974251711678876185322699808701347577420835635632125576438532785376222954913241265348399503374705092699533339372678321016609196879504503922563755496425729243120946849538483028659633297047492845815385467193916861856129904517630086460860261593996091607291496918546784612635115215813812221074778491279020807984044799059936990532537820906754048362870470118738599861128479530611683698447937419204610150222626739792472109361553277877957885936505110373862384826036162991979186052106497059322955408527830377159251907871876487464128970700665297402059954872201076263711310438263990441182370932312463204942217590785124048586118137416829451120613982528665296874861762862939737875001535078635937906741598283208836284706015908514309779457071090478922798308949055727497054295952497758479088274437985817525931198369173582809934444040482052814858015936950379647038934604755195852214564421468183381425076018052200706812682580207332135682597821272890790052469165743166879103486959046557373054316888212264059229248803216617613982608623773539474723017132973505300151401897358407780245036725281135334189898218724146441061595756529128171272025115218023866678754121037652749418065247854518725927674646520761531096662699695198987269605089419062046235012826572358646928657548232960199835118616790233972329553011965043844986210114793700380541858786463528801199968773232116140832156068471261139612382871174873938948928187023003421518483801721532822734601729122825860220503669749792551777758899446409739536993829876991829061351425650381350244398949771690703462317121972190054056476051366795924992976275689384224486299903273230048558480237830434016762083737594090663424543654207483377330037511886467223364156253342043871233939691133730353624617002003156327709822008468473973762810645205209498188357612601860342908944029232144137572958200705147300621031621676037344830772692475595812441326794174461817979666505223623111004874872488318814362930534610664155059218265755007887977894969766438962472905566735080877302623222831216077434188048477084064876416819017050470715693335606894467690919166666393625429726383745074423250799026118719899981993270046138236887318157494127809017888357781666346317337925742038012682128027198374888411595026976429689760178864693949533583634687550835762196021402076058649343013637597578978764573932381784902546618501931101013533919579667057046403399228540948187772931194504644671366719281851985019797997239511396214674572758703644596380031295046432910042348266097638104411466774236196785378325574598239199439862680696601551454203721112554501846129966054146981229998381738738260070020095991822412587469529113822769356609438227830870379695601675145698278522401703919459223247167958985821024967402308391428304618554817277152602703703153499109939228395431268085619619807868270888875857549591981980148070608599639008521711279549863266708467992949423429047996196855210524367176641382116498919490200903347017647143744057158784981955024942723900154305242487303434619721102183788485603198822912421250946719047458623113832479377452509575789537685985140641479061353323752757665320813865679287319863254780146653308398866421597767048407848349658734936411550977818688682958045569328532925695128047539938025673358501661108323569635077544637158379717345778847434060360676607851990955778812509629395132542682174451660333403181135231890240291167810996103578707826215921110274218437428410000725378913858719279956287484963073218993716220554978206263068864937115513859708346698479984827461522962013867114992262372451504925732475788704217517427629791039695986541532488217634744962908472117242832745793461160250279710774114445889454239056203351600638506176191799888585258365334691485635418423021451875254236788730887792877984309732711215179176262430099862136019169535061294763717939881669243001851107132424802887812371084258091732821200546531698224133147127135707046224400012686387697812213265172481334102240881424699992323770993273237932108996818318271353420424715910381251174375993360009447736483361028970184931737593853045431688721463570174913891175409648597516388689706118913717275365788858640459216480611350210928225444221755054345855024014254709149617072078309997508533732734078939629161990728579240987074021418312990511488969232516661992633413281755378407234157688182141790097589495277354419698893691907553819267625664793891449943370761056729300657525410667830719704446145929224280439734973222180144682952404129097162199208450197702772500111148028712239381566768948436199081220129665173601818295086759124323859971173103679478912876294766681896373286996454568854837074711154934614628235105155415826409100848527540199080877972428367575558027893568142213043159619468358604912925685722368274675409045202490561877620906041509648774731471832540469735396478458067669940570848064911418460618340688423022575477094415734220770524461255719225930480332503342337187942761081695674086164361043408258218418177279092712312521383357806354997076497181665496025724133668708662897501920769101623568779931764875308754777279367276806264610962320109819821981740803243606986525059386659447031772226013627448451089944252641994841584862127981974767082893856355890919331749097138090015657880997836601117444858359316735670706271447175074610434921039611552952269961143699732868061458546425193856662940001258440497778224029894898076472385558360681913917268696067399369398626185036141880665516277151726732289980597250047593919838355080122651201701930642808677798609656500593534742007883911811052447897840889659115342726420862500828020074395194447048651070633162104054037786937243100770703811119339622795130990787878952577609765002868251297624456816318625980611996087934482610199271774160799478338776219055788002347360547983419997738281067318245947277421025829478680995735480440734358421026836673138014417525250555830522372481403126137326405238397323772031470372105660578174836985027966945626287556386431841919471260325346541605284989087009700582702950487955784057628543684428528660703638732732150286335730332243242947131138864579855789817395660846841072727213987107918228906297456968384044577325171881931343537303568208498574636577763238641693710051665990429504984920689847690384009350048112523092773343764147049346701438154464191648463236496107019525328777957151566395013691926429161428856932617396286458324064145800319158046434377747158245728139353070118926108635156194508324587071066355640789267460502695898248747403484963395345160505930357428770295948262523925373110609926912502135243053157188408309154395872590490228187101947938865383495747911689850444046650506216090375838389095890539517596778325452678482884336152090879721097348739071813799083246120177464170714533404190321945441395631540639357768944797251462698611660677459721257440950958988070046867751994494749639157911667603123900293620665831025456118386521039872065275869207369636217645117839857649236154505885939648450813291980926501960442626868158945990905352800026891126116860592935095506889885102936445331313102037967577575109904357746418233567402651847212957787338730358290908811023809790947892570803132035987751765817474220895485310865802048158255804904126438385772559753483923883137412653238812876806618646029717502022272933964307523303707211500251267978326014727839542287156293295084744412823728828734088538136892198923050192741442001516679141613886191464738460911999794280970853678127234444600294220276198863191840578240050615808098055954342983063388903415879063164625703963870017950309298489890524991692399665904398544137496055362445838208536031435903488051732776278181342167420470657138815885179720682970881024570991448927385494090962088368210954795487583989943362669511619732610165774830710620548094044818373590100834553347917470756929873878261857970162451023359719137335188139192650919723922950711094616077176430312155109439913762700332594728849956423051034683968569095790209126757068553525522593259040872536948594722966675656212770255671690379199285065770371868069217291017718797198049870176865119529668273748512623737577394637213066662942480598708832035968454391450084062409166414812565036766362849872489818740296283314078173779884813888026172343501664678922383680741560319108124321836105720969876784717933048541905265811483631079034966208770254245579360470318534393824399885189417435244620490127127939089348986347305370519351321520225647007355834259655406462417136513664521398519082271933698583936875039999485657044568596606191803868979649080635350602898776294047861174292162198556785980279186843297934280682258139946872437300788053747778757731172266208021289347649734576109833775270309135617815305148949677580920466217541840460126037337066631922920910624821568305737618154805535145988988409777301795961352859920446816672485089969359633766878314371810361485963120760517812777867181691785320579657139331649184522475920051109364288085079229683488849631008418714870089879495820383831054087916729792636917820851387496416568267151205401562258382979201331461267555095633165994393529758015455020925140702820593225405473555591508320796092970108055850517606443477657783271922392802722223779312272432319808984361576792362648770639378984702066270007504841520788034817712949569329943501864902635596430638911501835523085926263956172021917023835183476551508843889759232476590780233667429310142632479002335413752430527998950646208911350769146493506098063491210607584296115598410845640734998194707678675402303600502259629984354151314489265507408741432537030558591379035364209094805076003953078555563332768209736420827600293926663032088482729092678091011806260230529369231346661131323783252431501304653743830588387760497125059654479120536914826395327607282604600084912796201145889312388807668283806045242638715550973954955219301893213671595073828109965630845429770606208451471339431593265522949264389340759051604992630493768039460450202394874891667596391752198135837941174493290388043200903483033391932824818234728905175040051325981389250603577474692904631937270413794601302956803620040327430059522049507960661040717330811184918617448903833861692997682375120313167766299948134304095606379488486747254527515183033584656037040328341873906569001089259747876363608036401032373159837986989581554331709046870811463626480681012252882388787148078853831778566092922186132960995485146126258615042927917757656858601990995445251159443220446824071391405368712697077195888375358889607025987460182731753958387102192271524063381962917068108402013404722309633228870714779122461819352960484589384340522854015072077745978597129040195486535380293418765517823814062164757968108109569925143529292419682929395571114950748491031162438287922465555816913639949036389908318114068440635546251769416763753479721442161996738596217672298065406508813413468141954149025960857750547254883185377210153436800002810856322056026319950619872321663649248990637391437456776954703895268746432844098473909826461018308214886377568719566368152503801227244951308982325191236303700153710123008150875293093628328998977322616252600055982838126488467768285729316334330962177449167583244811435055230558647949406206926363351866076306208998758860996427189356405729356132624739423686231789766336650166981760773354742221875529333927079075172943971466511916198510481526570849762497758157016737214359344403479302836492104792213169388236786398258197770168998017762331943103375255077057948061221789227432486755132301464161284746237215259299692227506742943177392292946477704948959335220005505995474201551755390196321185806169235680857199444346619474753470382564146124256907687735099565263947334815754195169827340662232923430210281993995874711700787573669767420922111838316056769120973639936376800321838801098215557011064158744085307442020981923753060262655656861837982008548921787409792375322045364049527909899250543820753522966253255912276172102093938107553508306242996995781122638842188315115882261682018893329418501695689916952807901863018805613019128703124668962503329938521927595525312119943356003749170177696149382595097302704024820923012312208343804226746668252390575111034317090336396829048544035728710358862448808226501790661658964320763814636843162953564002417923969843477987405514636438953706771989313578007657321456485455999703452800602289368125014194149286710394282768996884359763785791578578446355384132360005900344295219231061333823387683513380940340459478465083122003266798163452879522834888777488731475192524789494877040018937029474477694428331115436426911638059021378301354558139734476604966120804371479418034650925527721856582402392582955069932618972305441806308828180320668209976524770377920427468604323552008539182777438964774054334272227230964434813548150005791647144778424614094496158434612413624303943252111923711588604670793141895241961107164679751324659992487473241975969239336579102012581374370608605044632429828249455984934682958717214251614157570704803100866473129540578918242788722930338741338985374465470198623842240958873053377383810221962858016525517188238851201416295968157124368515948977135695319946621414343109970889259946878517715061395298670832259948956293912196722571838534074733194300254961482714747228291428491057226397061668701345687469510760275706765518933584059860573363999566160528889192535126267335406256897768904364990980441893362172091505017154190245179431741292626264963345799801378715121248145316389596305764694629820525377921734839184233099881279973662684797835093720741102622480050557610727244290521678241243514492138489923134699402399481890672547063035671145859974857104924682949578557187973439698604379075524473330455717667179206021289101208220109855374774289937214813229212675117148914853534858033167138068963407485057658768604077464993262881793570357990008492641288248780233060364689228899742640079912959912993657433324167309599478043713309098862670064062976229285623190898634644023679422351754702793356922376507424914876465491456371205480421753568769247482963352574443935267358519116809058926029983893314966023394871014574610961451287503005184129308032336716371869802785664057184323420068883444500187887794140968285521940002010751647237792403022175623242327776678003827894518097520408785985583411091339625173664946954704781117324518419538452965661156362985422243424344183137025911104885167865567701727720487992691422615784865543635151770334937515895325215493344618051378541838801711933047738242053399881572908357222083350587218683124189736320085041877657722518291107655797983993583446176467350354010519903602535526778260509911753428087844386708542910389124740199091174346936946459449740500423788168126061295778378135506852934177212311190065158990844065902113636581637096552694143573936112493170266777895457119983165587658414663691763177838368274311887244457016206837116907585045035334922999544974463141889731024513238613172292794699005056780901531871718979551995137105672248837066840636845959127792275837507393509166724413746235441443423967758593357812414421107099153998203337643253008989749134865105032962008238920415885679819457081084283246867597006716033319773149519798193795539521727649354430795537823763028638990142985466631686074458484947543624981516868709445370144271843844746107976450217519964334540760916900043767042911542638924503753607841470813583145292379302773563917742280345420993014290751067016264679575754838134615912930256804078476371229405110463273258093606395585268256402155550572406795510424106509403492194006975974225769605163013712306564179868826600188655860661722050300101424129455324692079362802983227426197881923784473775261272938484213768440824769779158688099938709406434051605961492907898833226744700782941768850091576905489526578070660614420710486237818224064432294722384520232312179109628075505667088564014891773549715120471532575122838938607360390105538506835927660753419713885938930415521197840695210165690155984356796383096329991452682594849118951428102104607711195645415479138157991760980587447445723205919529557547297397144168574368513855489632414394029450278156548336789920305488211276767351080366776783252960963478063938028540159230461538638966747514133578852052170378531953165838848024604757531432844244136096702058996098142560649953349981289123494527995925560880561554546225732382241205145206252031722381886468223627915983591554853266842278806427431468172369420425103312369391711630795568913834203558544629507413611707635437698005011786945234008667489226058049232173931473235528660642751659008995937451847069678072298496015426225485627894736976064340575338142027210678231214485272573335999244280530868632261772724168909782699726401988121782133071298497279317639882611741520814641906139090764778666280232152477361540592040504596019361927135204977550860661467604255539148937026136341752148588829885342216859151742054352028187266517078591202413154976122098955044999956952461425857148033430777397855035091394947974279214034564560394051146049968607186728704650745979970130051470605390229851945728923835687093365437054937910753060446367129889776776827154954556990803881143321850626051693387774203148831395210551430110009450667308288831112212877816608509395201606358822832085165353637944041154656423421890494318107237568742016955303882803715072136683754108412244348151455846925057844264386296349260281681625715669522913754526431800762768326901218971106328008510104886490327489649508582993685875386763871716687765103306330106559238675045659861607703995080745333411552695588356897824121499625924407478799866765693102070391229073167472076814953089035460941320618918156735617474966072347235854981895184272307806906680354787569996653312398531349323987267701070264826387404673323979948488945897126364901464237377456320377547472560465981172169232648797426074024365440441034147160925985189563477450215249574474647616575651109457304111639996651431116845298972686724458565155096873440636934021609687024424321068631353824438951463338063932454049473782092016205738603351834049928000665903536192960238477268223691959507018281810600752732095495573868252500022228158391673725722488290157700957702251883597589154080430060437668794639485907661482025369136143511959989080206906865157474945101644635656961469798745084555301268610290655247612991777018543667625104314462488729047880858943201862287383710144396114035000620541245950769896993235859873211440667685994777093694609160195522615300201295155393562347850888028139904970350245540529245931045558090103980955157794280857410212196664883133786966204244106871142357247837651560873260012078068767506556738884123059985190898081497014793751505632652430638627025440577727271247390735810748205331135470712046447174656687104754480567130479509252759894503876134045258510801531144120927940108215267535498546922866911688898829509293141474933905800840126018551527597715848136983627763367036872510010694395195298246137614727431738824703051122628353954431605364051938095109839242368867351475419186316162928689669824906837866527499451640295527625583742570497602398362803027178333675816763085438701657806604548647135191057611995468757458194155000139551748447089656917416214612856235696813885470641129121295452698148584842208691591918538711447374733708378112427403606993468846418546530665512738328378698647754518355820825317352509576052938227676314330713125726207886089787209236606697498177349778216628872221206223141974281655612365403581853926592145212316695640569199783282512572532111277310343120029415755658645925672593632950898179173668109401463820702898399458145402313890492476307341378277559975115695417644432140698874787694829745400990735389622124641919667736264171166281178997523918715763685444446382326929787228050889929756725121652824458402607003654739865748508256060882946970723356116904461676984124165770308170555529738509129405250034793842550646275633850156824858542947220360938371810403755487872794667424931220994794647060467044765395306374353471396369508303487605023080029562760263385498850776327409307891723978483032815617728538806151903256469805123545556582758181490032674975939958147830995061711823982962077221278657239093585561439252427130844058277207803001278535084178054210780884047485604675370075794533681541631178984621689190220192033830475746305074840597464871979167505792773775257522423427890321474880349429694892057318229327610585603754749644095382827000713221536016639594241781522918787018207480127967639001288916227080268031147651065916692621125818090150209484953485036595169514119648517974155459657177360922942027507227984861091624097659433175207979623540515410149349482666981866567963102504148914448827284846901136932742885270943435524654230033896039108996182629612623046427500577077735011608892562815678408387486088848566374743879356018909884584533173276087601584501184254993466592509681348885168361056520486700014282019176941231936420715137846231347619636279192045888145739185303842614238755559920059264722012546356059720115848458691080171841915736857315275920726915007626175001521624406922865220283739557786196637287410161610016679733895099758897755277293376926778531519236952722591620272719882638320466253304000204053459357060059699983134704534140700674393701674972168603481826175870026849671321556621619219501002943454518200884819073601122541749093426643982895133627697168512063752591974323385003347976681725135954242957144063323217070991016413483181113984970544441018521034870603415070525703942272280088277474882939512714295082346787713207308033019319505338273611152953926181636648109058921497944793156586188159857277440693669111782516229359930717949112214124525245924332222746857424414313397467662553604890081761938083905325619512153856777656020963284237874221534950008066841732835777915459181637569999726502835042283922921446419561913131319514760845235681253434937632989456032003651384603825120085886045723503991484015717800695338864193151548720832689766315079688621706281421264363834507412712660479584562421987701278327752673156933539879851520440032119851799601072989132194844665769317815387134729858309873258683104458734689998734881379460704039808381312662332868273362714324868637124961973040203672491094034457424328293001182426939266537344171344080840332207304221249179416586470487268355921018626845652813245844687657881973113695630320224622801406659867930176064637540918247804381972010561297323038792717165461263205753639491783762955833671419288950719117778082632172136790781833636794029230629404563574847923845034631194759362494525702378100736847215987179332604764647246532313302470250931308705857869463428507994158908843698656297657612680185411755590381669269985997795789439133261770306500307901817846133628872116629425167552110593935138186339840489735294600785667910975500956084973602631088570777594036558299328485977943161948948762896663844175203955303818472773465550755318015473465884057989253219050550782880310720404329299445414032681923263455440813651712572151977232016387181790536357524202039001640342558261968210529173258844623849198612899054006334755695111859332151645039267289774072115943928200645609941711086330244075905998598744713234078555926451241889203052206550859560036445366775459009096429687941101300386262967623526775471819964078265054850394682260219733558399084722387113325897429735460510944489225410355281346012174570360457156864846568519537036707838465284862763178214104158542107827637088118089941259719732054222382209340189764383476786716855530790522423724012509347449443625263422144019232129592191795358458305094883535030303770958082858399115527940309474560132376976836164224396414488821192707093640721390659762008536466071045961156381740848474571001427462819357125325119806294713363855192335309816736812861874120170664107934851238561192019222776318693481985628089548405385979750047135654726594087023934494777009552412871905022965557848510899123363256966035574611553292868460143029588285210957781350147603767796928290297883623098023725725371459003020175364755272584390854643344257340578851162654678682881053677753602094729885750804611548160076831175515760834993707601650491567770224537050379379431193054200879684086205140417047554933320204964083276414870198593371916625689076204880946784421918251439872932777893988081587985288116855863011016983497815111716292912709561287755720468614383663022128793413611491323434403888758470387025288652769577584545329027981380886381538212719789617879149881816333854122077097497701727873570980030397687412837618517019959699260490453448760368650407191919036771711802729033761298292163060337936156869494615216322398859644195484334950416749842553503894904992614157570142190367761834543094155321013121414703771057283634709777070013294966147363072640840643819590295037066909981188856737851606918910667885624172166635183478854265441074890439978270265188677335336334511687129304605681951313825946560150897381542096014883273609188005576803675940604764879385477028537152774481955680886307183735990203483044126626763334011858763500139026272856580852309923975364977339177062616451895011009300590741585035588154587200470228425697709722129882038683632563776719206810040462511662373872079725352871153635110077127934088581778155056556630345110538041523742066183103184449193668297907860074051789181237459058874519987638713954476606517842700931023504025225906968115895125980092347516311283166167259068805570335257842571661478036632165359694717690960438207439029745751519372421405347038904184852974247898968812002944207861048828794291894563740866138254648019411437725178161314115082380286670841211840642058051827312213396303254814828651458635442339982444134270582146873949973127514472289294741564157109245939692286383427602569210465328802421190967416731308370983804317397659736031254428948231817723594122772023718698610291228609743941876642192019164734353125029971121703732257585955816713603415685368675455718607275520291534345680300610849704303627238424597590713837813802689381385620651891737138259338201837697854601389225395927600757275666145396792201857523776029364387665454930836550649065680689814257378379851005715977878671405094307360336433501064805996336047175080630829866063649622964298244063466315775425702246090021937335788482535972831194588305862877808972468224304571585080162233313548416455459158089130869827150586404230228581938587910940025765785854426132597702553465430719508807747594433100924121953227405681143934529669634523675947584228369929180223048821821306412585406192182490580715979931499564923494365509074629416657427585855149188878388539839730815835717644104396443815312444031397348414143954858770606224592697462788253039678142625835602537731855807594772088227297252666900722334913661659857320579335525709913157577951604840886675020127574387542998402471742311242471707872803451405722160818135190942263121020656177048836854598302688802744381118732080074779847956467453852297780670442323483682205810408147553404744246872713518740929989259271728011128987314694577482270083633566983244851890511323578204717772313462458165483103661960167460457876123975364260237698463445984687690102156678130477286154888017949428212984958412190155907726734405545606420842815209145611613321596874353533676852377234877304831188713518394870544618018696386108489728619085046803223113682965492700367055211147981391375098578035874049536435024498563243270738130918450669228241282211176005598813291191502229274400966666979169069420637987131410479580016680477754011652040320533813194861049240416946412959084109529850582183549426925734086770582720680984531464296799823644179297286330064004955074529163763516188649393404280683958315041820928497575806927025792104170939729482423655854694120854341327573556152673563484528240675427415871247740459245996946709610797448745067281525140407863268420555219281891478257526304969844576225548435398227400666255770287907083569569684253926259048394806765087905112802196799779336415135483046662518669548713563985316924241864856010636839879662725636131479243122762412519290827709826403866712553139368843309980268845887355613581070618677437351239694178548033822657138720218345915145803299324607755839942110510578059076333215861726332217081965362124163649469928122307893289110167771679840634785563714365974410503643983491584351300892096348327642831645413800748513862949427422926838472832147436783634278163291198330147221559356780481321664494648820021585790056158578125177938253754127631643428664310281564149665868952280166979831539642300491630401893850325636543988303764443242621142123226356630031709910591891579000211281241823158216961193553968896097006331165300560515395408865405300343275491201185819361105626893767381691196380848978221556930929506923754537296044434139162063949657942892957336944376583186108307964663221547296090958315328156051447300681696864379688570623072286875964847074375107295216097088164553447876866754599078670077062170554875774736086853667686124668630815655519700984174010889202296738494350827700022883297977794433705512150894479771540131198514851809341749139673872336123907774100483092877999193970111247196136937256871557481837392049967078702198774851417916669106480923692103131914541508547524822174627499267017897220192789070150045940577267478727127558016516959939137423793618567197711353919555394147482043206533301153177584325170545440522842593772408725911039469772550251413983195955265513923997638901838872188078914711272234131344843320587675720869655013412193211409513813248113754129050481212546493004186481034301783542789986329771369239958297434682230067556642397621304305623197308895094159904589885210131411151604248483528443429859780639909933386544783237769719726848797016373089369654196692834638871379597225630075052859119539990637143474267092454136365869481207533585848558339786070501990197573611669371849659292738562266815901535256196723938363559767858376983333041378380567708417612723566841841637101199194091108423416496705666365210942586103776776618182593947152221112631448602427459704578616294440563143405527628564623760291455808299914621251904470317037927151734511408207592253759868463844530417268333648386021057413531021753897415375480069794741367931842697672631438813377580290816156807359385986644757594041880319513916380544956164914654501359188269290722267705414696066354625675035156241007318996649625178575141170593187022055868474732008871456536606770921538145192366876489583669878789673915926933966030987351072554531448057357807044808604301902563992695560510666502647648642148080348099620950607811023580524745212851460159798954480713550546768883051446252976706792219925975222621901387987867901889504911175681059118109627435254138615907524152828718358884973404337016795975149893899482726640551200721689475471151840532159198302576533445252147876777586734154726829837711187731970648857094974185224181225709358204310092974600020395693060902844257673082871733005462722209618248646243258060321837715209369880297534029730704464092322889696069483816292570371511334935320617736480423663950406571529756002180619211637430684576732110586762015179103393026133442374717941993328061796305203732210786779537732977733705804397619373764977495597492913667470627345474056809202435163187725920148502924157853525102875326584320031061275490998356233101258082520790984997779266151428793144859032055291944035126476702793789864901395434065290950064814622849265749675882219252979607693016934038349961907034916474829448969070315718364299227733377913026710052767158788612018695421368217404766678510148386296968153042679217582382234098602185306040012610305541895376419074117788882633426318767177986583321244934646874123893164265762796254012687733665136068093309961598913944548349995764030990555353465692883347465527241161099789878136578847095731075034966327085533963790395398835836037147656614955554424594116291683031101534126143148300346477134955509167838939758606564459377695955221023296546586473542056303257071586993737889506414373748559695028990268474608393728274298327105766070679173333172190831931691750312491571789748106650522216879315352225922082407487253084024843864716666403453538983556619242045760267686874331868294943074698799885097552426934093883521602068745706385857382372826482697282541414836921332207039921512938054989365055584504437993888978187789009012860678801425030638956736240225531889885126922109241558041677462541441675922310942889428279131337791577083347435516324320299510154612849616069919134244266855789722606523772270801857054185756954244328234053033257872339255046377254376284950165192280632774078447270033796426975293766970520749531458500580439234407571605563028843486097027300519254813848628871385770346834192322364348176432566156939458928381887769827252768312467051347600728971970688354357672427755136837654428495321098156052517866990102492610558598694189810842838678057297151862556757475497970338034181570504193471699509910928857364549647352815021408168176128021964836389746308739851172405034018237362283823102339965182112836436650125540311665894011426565546661107533245935162375031600674403793768078889732520513188765905148852800756303379838451485036124589938841241069442419392866085655293317339699080315419391070850997138329483848041912755673121657352080875427001417991888655439481917954354748777713594452343195119023501109979011752682739515060341863295151280826848929980699128418307117247084955404338696932226799293751700737483347144754284283811879946624849357193826097879415280310109700545060565266171151195843152733604347599795924475021166324582942207946120374839034147852854927329884432947119293644364070045258286426614755849473669200283823728550621470841744451302395766793938906670653500746463145466639626556717179870833625177663049959847665957875449676757482025772027874018689202931975412578919610515513960669235391330966992825345931851057634767279214432480742082927306977423783117063909443112523604464070806446042899287321883990861881119312556480043406422400483833313089637368752641323981115023963186108717483055438641332773233710857859132942209009212913010634312357379929821838962411544877492995202861161612426727776798540378581877966759532183865103882745337085431890599229566354922205594965418100631208360274109122330751639903590080517625518117997224694870277135054238213011527685159627609124872551623769673654413797865164652095799696964406416893734982716423651571296378215121681190878721275614845449771622913192989798101059657099839263846594737304034367911893160898404734989227660823745512019919316284500114065740632762272223607230096552431998394825450175636699211354301190424980625065024375453648884009172973515142377446937066652726389664926420693122473362309450076662431098118629086898309288086279111852810299865810757322855055611429896742359931278420073101830110677413125809771543417952446011669761328994877351380194347712070411522137206177565489491346621482639054216435341104431416968900829755197074058936387150648443302849914706378916237096702614054460747157867200645337322840733604181403981265842029773035177225717165219006575531250192279833408554691030095971313829747273861425379912854509436904388953212835936989959733064682039323363880053329196482152134194273683428624005947158265549408778418218149379491106298773765518733154915905819302116202833411948511569003348705792849814624031424355355927979908127213658199049727764349741910751991410898012357728821998938757030333611980415443956200167695142750092219758722111332165954133684633714804987292209382064095852648126956970141248414325020980059994691681121369840518717994702773740271157028334868863101307333200619110948320561869643521822794693287711258245354294810452521061112574450491710982635699740001737619173406632167302199264636910160799955168726890561581880698968942782007428396397392979437485844586456726363353014449394949654942832619850416444443164905669344548111416647556099758986505079588174420851019652840714141089777357822254487901742438259021441811146265925580280356548420628004528084750482973528091145920831133907911835187061645118982185384868155412703888160935882986158732390812244371761323427806643602986779238132005456391670907002415408310974541114331912016999129470172478604463515651363872838542252810127459840373844858195376387491157738842404555587826572441977190941688805329283465731016812811772943715145740964420582038449661560921193717126795605589136423814380242228832451576705387379817771180509919811914853805019643369865039650344026817038218209802565189776368721610804700383092936307859812331549064610056993206729612670956263728478122897149862713137885239331458288400444001045066395536230227324418881553786240865101922404112958218574325046639481635027227571643722008099175451881086844340815677214260831096185658597371240210866665775441163289315582657723182518060370797928294207618723814264199119731939901061877497389259352816329114647246567943724669336327239104721915929977893730619750796879787521349782138520399701664746912896869363916540719712872436248862297466424810751688792660003790576368102995021706790555796458972636902643684521374564155237209037754362159297571517576763401918355187940946034075150142883692044506735424538893084059445582055164913522477818277552715125343445216497639681898701019841666922169902193145763928015383769408021850574833288509754972346200229203577899252736495132435146672376083923438322969986568754041603594410982735168124932465336564821239191016177473301565670424101482598302550606266585084051654528282091062261076584668404854710384356860118156878466517304335418835734862041577772290111387271044098010640997656566745152720182957320817595542942944395828249166526045719880517828587949858797340928861428782942119903760017276701530953814881576019207414418313900367766282249004106899734863760965774669477844118078337278535075884530319735450882044704980739566335937244632007330347163635663311046869346914313730674155763343426629752882760915255459385298726555038282851704224727246562526811306470388735218639534847178091622918116250607780030068371195365049593299994419908549735884567201130742314726923839152177772721882287783840597500680764302923388120749624034667599046144269314759392108241856913937477581664382315254214975100032524891916781946228607218140495967783390202200009564586058352551573518909037211835179684874043357057341526508517396014076778826580973075378522661865957378190115075869801825065662763214147368724786503667209994638018919209394008425732445005619019134949383327978123414259523448927507357927678842451303053411027319996182256047531616107208459125482115326349373934143700073220320802857063213944167133862751333575928179278863891273532808922858119052018658407919672632967988541466968412992639754924586984507952713197008044201318597514698942328216007693601663910097867439681726158495669775726698043329061639082309236436099719914557317943895040784517250810983219810813813396378751355263344741352900478919368400040921734722920020345235248194672113171695415604606187736199135796879735642508585407498147462185396989288353935979927070193632688072371251956038148620994889693442057791851925282535064656956713591547281195237887596323364917318128164802248081211211202785410926123725554779487334297051656620749469390409318872703176310158426911636088186803329405017757848765321312594594235861050100851587914907586903592330811910177293473090123534723878124544288540391768125123238850574578172943497451444567571858053355256026084100501396666204701141966483003495380845319858929158900574635423510220062405516148230558143736474275389092734391916040917530895070622743298299201871152094622778539877637750252995636407439289285155425680409936912881828451024833522348507341019836000828741750173561221494071976398133396420727138434987686020002030453620472751636543900951673047286258674879068733033609015577446611623795958995486595730642167630570815510645740820955661180618629868490939179668248920058419200439840901638753117217489014309241026321143647871909206963684709394167773503394016431317245179101672730376634403622507719197906350710743671267102870314665299444705858548331348000554845118178739678141691666449104101905246989604128557460567774370542711876918102436906312124229277242119326651777129230953036072438699457057769846530307481020720735565233652761389238837270685203689791354053538598609337902876871701206494911295102218110264062284020748670082875996733697675394896507065963270616337276529080447955399366026288610808431943637419554522344452672362698259179956485348437608619912859617287725676540683902999817916213469267241564570072435836541541001513795573683299710062846821609246543310557779563687063958925205999135512495375378635110166541495982258126372705867077046708548717596824016826928397565501207419242916502793103836479933809812349900633683139264093933707449412491814171599512118257050039959439264208599457773216403457996849630644972499653522716020656913337862029067758948959401862176529508656319250982221057000163614977111847358351212772327277152542038196343169389311363761804970160001417549123331154761590581440745712792900096361380190192380561133010892326295612516942473971392922742951691676872195165033908719285666008358843642947861829265694849360561991387572078791560538741455581956940534955712948312540355272659982606868731957601873095372246925076705111803109612818935520614038033714384342708788229956011637056939366356837944753980796628527881076690645557335219241085579890483353922193351095930364108436577219460146543446404141578214431496975331593582116380567388389392281644257392762763816883915780087073703686752703689374893198943532639947037287023855479007892626730227236431707200214716671110371077940002986056911327473090464692673554289755194504507832806372917063295804370354242169660351376926201326361419292999106377265910578116069912251176957843945427104077956494558091344675641831797832144427785110030160528056682528556236747159945994851087557641882774667722474633870298657027623904365943780298162716373690921764231483686399963174430466777561811802564769901950519493592910030839823255174572791749318699392369171984784667908565256176251035480403328660877216281441505394790588912408692061571879912841152188466525797036293307112970504447745753200796774924909435940932219972732186056985313587193831077460384296535888938758518655453585758538612715260644023351965685165122181094720321861013926203081745787790425290010753304384429544869248016324029831521103062851209792330522876117331091068702602424875032803931343326599754058208690263161112040448590190788446209393302968411088111515373840857030024462681268179268740284035808854930808165254732724569792085704389053607134349372296941125527037189121361478917628403066252842245442548764058157364749063855111825494902492978597724204504397063511246562821758074090662390257360491964576021537054642173468026705804303211868361944455843996032825664547230162153985153841237321135719624392556955672515010507590647098490068947131436348377256939808910294948056659934445293598944014195067163402650811299491497539787580128412938589696373748467326430651064561456244650049850940537137754117415876586790986568476047831506249642890932984934765763205201316795561869073059433832092640614110719715414756969613519402556396871209536137668424401549456391598364951311776680645261795094125150449379682875641140159962322228212035742911654995957686771647440513898273934318016409820801581082565717718637840035363022548969779146545738588750925923910245337460624861181407671065015337598702946567157763657613537742132152542709705462877046671445934603192864381528369165308034106066744557883192257729766008788856182867048230246736984672614342923022661439852512959733524261046906402275056829688716596722651778316587595798685796642822694676947634858862068027287257036177233727696649114994149660341446282863081189521418698755041158613874234301177046797234049972807060096544384419345371625772464207005569761336786669558484279992314121127481940638538316516382002708163167297458542836708229461019302304414527451069387390991095908220001194566965350733599254791321954835973524621489829843634626363844345675666370077250273806566357349391708993132502659581470862946335879890202057845496050188064941474962237314193711200619955092195453108274908303522387478732469143761471841096901081327736479599630259410173506404796857758193118224490621345280538094326178191141987940873482512416634232042047668366966051221393986354789360399549054949248565737174782698185882257219774620819061742687517576257930592888622002183846714086316981332719082592343688306072570045950573143281093392914073263619045566848133846120560523301654571349427278311096050067650503635463315957661473658249331203205854190515505281430138319148760930019839305415159956277376545970555820840096201418384032775002979915533036030434513326262359045524927718044899518263698580387282351487137749064009870954350453603469775518833648586418235419827629786528825981693405302730527968751111200574112474067375218655231644300020314642857356577783082966795439274053731219178889431808226072127932326099991543459749435144813168408400065676159176979631492568437388629192094491654751580465375206227539143235667845276457278025187846761835786019159371936386396105718987177498959788801974410126461032535010702235589939615285740129553523526924388960552158050800706663990007179298909443751705985858527671408830130346653790755456346977474935133204695507144156286571635069226354059991205857933346488910355899557869292838414055078822337020872017122214624859834710867189888680283723812630293843507822253653780569591048129554905998038949113583784339117218899629684130688159952300791830428517991496159040631504296959545679025817310735017926843347051875102271080218522840488455852785947252316087322625135768460295856585172995451402996353036662267427694124044128524637971298930189473721453631916691297828993252306315250052383945457922928193156331782093801638362115130836385819754147295588679969573434766818615080838940679405615292718608212885310566172406945271742869425807037462835483232542904743148231130392294252573706648503026302725043509496161800989084597587091949653636181658171118120472083717610555938258426429719439573850591634580669778795177951913435432748848073816417214820103869434063653026381826287931404985684742919544061040111540007447830717954354010758252751126202331601430215637987637621950376656903569243195154777113212853772620869808961184932598794586795276854189924285849126830984662057931978677549665959924350708356571285754072731783264398307651424150388187530365826776182712742977724658036653214679327028276772806255028395075775019158829295653679466968561035447345135489213283740197699312614317989807378598785410699586949701284764868596783760168466281490811863976901042054196045779596820372963478915892333196531285149029797734871654824199792169988958405651786214549333580608574596584144249955960989635464734295114832443078125321191287627888509493939784144904890537437166863814414780374981911575608962428826216039334806185196453562995460937794125557623247175212852942078020331526634245395103454093302398994069296821603142100469311315275296494843631907889153575043840502915315329277017996992132475759973260923504690293361598687121587674997953108766789198872669193004272471536926277934511827694423010085201878223272130362599676859087199635024611319139458922994629751444230044821091115174193185320697535998974331541086100758820092837456472842212468610553248353108960103002602601582346833652175713493253331698406755158559994006608648743186665056009139532118303881712281644036446029192920052910742666633193766989668979717677223577985835875999690211451184927718419631037872902262685197866304074944869334799507182576617766216781698485713119629368988724050060897452895766374971674843909628513969063856612906446281739930278482174593185966502640807525732408717336943606636824250291178461643065082084250591947251599624691036953355504862845464045086839337429952077793398935864986542958387483912141860419080455813395182944436189376836793682725445877405330137684659418910699513493118791414706009512453196197969379316238381395647035834625564751303349129820582036431829142154817928260975917506918622209301313148067521815919156607634477509519707162351950137278607278330584504056718860511405326724812446862960159904776411794541675250217015077137456146647061219882978033431271701225891122066646709443006926289928640494631268409932694078746170472930252788215305838916095018041370704439504818332107780196175356969314051487911772833126183076328092409917489040248156288417697331907657010038959658098917353266033379556391780423590299679228290082315055778078820312597155149805421105864228904216231796293666214163466863772842874275432861038941771311576683668200035554161398866358323772599154931802673537439434981724566320674890036589063069771453610627224788751307952870456359904106367671098444720342521210115064244774277094188104807181348517236019403476597044016447120001510271639918380540886183985550190232768863190689776351156196440535058011592055753527844083958513612871209286066625484407985352994179347913502628408361605331165657283401688846610740522613035372162047773272977753206887314397169382050151727222678371790512126918591240561962632198041693482244599128649648127015725164235569911812043124515184556960822114365286387952461569604151496525619047258960694250712504824253135691114054816050700272971799151770563452981545184768698154350929867673230051382717101736051575482361650958550702253408613498294816661450219892113431808200243192564706064985402274190287706060258653789405936470030425151181686246500763823094429945102043742396609026486309189914473254987376790839757886138005929075284613820681720285106523263357142097198781138376871150693855883607786601809970411725965470240081303085605622033766751278709803532813661665672604164367704310157816622041077176635577682405694664730047525737177941710710460161569217711040755265687585457348810047812135030795601960362515659851363853410094474058286085062795914528882606274548025560043959863585268284084846424921479477541314859521020854853187695630939857956545030596005040975656215564689383590142521425118941526440306544026648221401189809972735686235696444200568878401135544918529835496155135327785456029245437088880699941883345191214165877728700364006755496828899027112905085052261645365349573742792391480114358669586000769580684666657680233764424267764801186267588403236590490043161815916204043085517467433186951141551961048953966848850276060568394083836489179504016546985759184648960453289903951450416542114474169201367153426701450731944400947608824496800266635061042937876541700143635045898343641236806595366167856526349617885361218857382137710427095763739822719413393340742738407638702928020103704670131996426347936281612624954386893101440784722683019863088095063594458198841434482675233046802988028921942562004286532652318587661998713295562901658135941156477187686034718056412157897810432795278929184652407635584733253254477756128253593770710716628825584048982672490990282867218993728741673598816189396950051277480554619391215534195398202766452468584742890998624522116082953560721760010821066097367194624844239240637704442593856730458564699316174085347764124246806042147722930187999780222903561756141853544989488272454313848897299634892241434475151289566128821634944198707425151050920563730837744605959006990120454725482734008662492174856857624278875585975372025996350651709856674881633816651807077939311385562060933003511035518744117258320534920709731235345637232205783291271480045850563513633606490593649735285006045805131785707025276417143549251343861179970692224470239660833366894516877143371149161414280898234900425522641775094798731498136046822279307986390390935854813633292053250010561159003111898266974212342609712942030582751664849474815245620004626632795455229379572305750768763443473876255369902626638523423577853062123328565429516903216564306197709489701154081839774739671369362242023541422184616813061246891410540570922247000661710231246241305980480078824466639254715998439457385364677557834695397712984757650901778251620174895370610021176339657749970713583406254212755672478889254608872137176946520048469603053044085074342955747178101553866906528770814394623204327035373647738428321907980453415935259732093478419544142894054393577680770166999021273248449057220400957084798448680348153713626519176100292901051573967242994514632591769056486487740528638494786233303875643850950446023647193378555905100220950381150271738791229252866712067464038553397822144270186287047012894389579659436383465894720845913842586599965439086385959995518651928370944561368668788023977408147636853321816612634201732490877931363761356894528491034339463233138049995815603203297385755562914756369834499113786480708266615886561492743236371063453317358740702577064885105220969642766470686885589358629560898629450601915731428895672735068267446908072215029793757899449779230718288803735517383322206702682616986713197797392070033794194224203958505645124721678906293234614880990300257565623998387368092648053212907266793332391284652246921078756629074021863533996756660730574926345269543653545135468725642519293497371585601023730363427333324772203246164451369356230012581333298007709770721571651787892089172158923841768065464152232765378953442582914397224759757268947989296657427434621301219041259012311157931409396602613591765275238221588909544412744499464145730490543273095533493287032037682011467483496235585024255101519560165872293812800150867173295946415286381593638802622436773256377522300799401518683974089216548322384049755286242974734071369368891034520455038867639532498683727877530682663626820627182174172080109081385190574711478320696095925024470807577470170670736629736653022827507630375750271521636436950409288002902825430398294123683193911740637572448024576430415760344423783860012664012583354796202896033210157130688612902318771860481455967720110497174485772218348517124567501047066607222887965933450642555869458786733973345633614829357047368825024485214566996429321444291329621443815926471053041520813424553070124316301021529286006861550884182832948737474245581630278112817477688236181506961987700116701338551284857526464791392120725590033918803921275689047391606369072096474581973561403967157205192090287719210666562573784357841925134984094702961429944574567729070739677404649210027360498011688999956744738184555071974202415148189469454895555957138738713941087051604400288715601804114384193963548190866562398497998201207176958006916696947990260632105995868138539445881216125480146012276186043134388949552407590390882969026359432437409809769219055928936798719488943042184246052009307531161500754499578498203377114028922088120559563279850869306808649463072495121292137508767619006875884483421710229352009241284739240186957142414250568363222341351201598305266257279950438588804711565648172245344792608892536976630693615905866560322026288345697722221790819205586916801861968016580015525443821600120668576355200310491301938716367310046564644811730215839402263481594738203272421967957504190699085176628353607083540660409685038443772801628610216864248422763746432789439188370651091275787322519997358842861692874772467909795875210028261985032619460925521615865811902464604253126545050171693442402768499007221359120615608239076753550176049020313043117331020380269916262652459971736812137230108699592961981263583130457486512265586230410707168782415279296694632354883728787672538356225737629827606372391410934068547025792598462734258229456210036182886052630366511712345421078979440766192649304441389859196863100837569560557785457959757884059688922978422699546178646262802240120925993447215318845898642129681152406855520948836256898162522327968485813461377361505051261346266146138391923122382130805184712470746193950479741406440248999372991518147474555635145639574181229103574895111295766820837211351612935914428401506580345683963967178002635392029794395452365592483699796918630237368749047505752023956846401185911795810609045503621428412368706607011778110147161164957048122931698970440677287717825157120753442435510775794479151974859354680228853013260692331957348572716441474731445277419229415508845952099740284220789354698040804914468039750175823754331657540492701653843595557071834866565286253691920924504301866586455442038769934357165225176974972678494439050415832372729243632459483044005721197770463471054765619622282443521050746823037770548559995167250442106625780364989550848821347235052556882491064889824775455617061444439210803194232414809921517130857680504307606441087109830790562518337506741667188257341588817586682510920867637319315079349016972028690628469160931888152925505483506153642278732101297249129883566720697817287209315176178189002689065652128977659915502243457043054822876524950789293908804036214517527816225563783937388615942199387392385697415327563977215061358337050503955870105151442717551293800621214111063983229794991940430664889450295600437577456997276928505236030126242741549921190075661818986431394206464034365931818211114600776791885666140097948453143273197980325191932913702100891216333569852960386982250096247545967782032665280251336403248566971953985600318068451084773436476170180277989454791937331505488988417976599711024043923370815084063842081792390220502428818552157958716635963564110322621344115533121821672839907137639736987498586101465291888488749683812631246515432826984267111930900535980470881171851967726378851315135260686657886372362566028460686840920908247449453252789862135005858543064552411497767325170400332553286877112470576710266801934994648642030557928153161870756726852752821274156087826776218755170353475414840271273916870215374081600407677449789462573235692440634916265237261876240091067214263260467797565523874385142564703005272009161800477927966168292747002380902382933335437985236223959778160979971928552331909253522757547103833060178578521546894928386368473637750990702225762813309243422745496758688592593971488234005496300909560191143769116874236384152172150431868030832399516637242803304551148928213434217224832920886043306119839314893121219177471570836827968283095725142775087309586593642139092865464835984253200529690797348538405239546282035807587907064232195479027294326568375526768157037963196960740008446770224673834017979222055562161974074860531858742728226338537332840015979969008272173693317022514378613346267896242642665551087253180334775981930907498595798510524850179845720256521810750238950333141703256003528467585003435007006379343425564007050076787367696262330819351137043498848997886707376721379244793372306465920405886926865656347231255753477570895556699246499831660431166250198573870721944938446655866232060279599917512408702144929434681330883176639392337901394155322541877538035339122601318423859566426045206466280204476585985660771667742804647542103828045725320297213321947990156482917743974098081040822291636964061551522429922129090631527718073704423144881883722651735932089410990107130939839217968237005986308801999933319184227412496529404036146799313805892268674372013909241729048304538987461479160776068683116406447741873462398079200053106719101011443863895387775836585419663578916069297883213205492065675764173465972121811077266783861588274545892679746419007414620451767100731846631335669771887584791046751923742917148207942536454996798368800306446215788903067405532583943433260073836755898433171871512621895461036912470628188107629672524499951165816946172348094250804606499782390812605301794858990539293494479873106049133727954184645056241487694487014088167206463531307710533600141640962114205318544021774290364697711375372504388217097289060940490696327986748099685995328435337780177577202535619852492961877199749096357443989074931108537733416238631622683823639175248040470548454958083886586288374463679019762519354584039785868745801236720321475425612570821438443642020149803269339765671452477254931019391510613979430129727587219924292688474757536564841256963927889717821537717095372719683672374267688216867908048079063691306534481462074757813264619649159476080042598253953768953285413466060512312140697245648944360843204505186829967960532512973907462934663550942957833638775508239988467656368535335282124493676544926977418296620846450608639345466053522263430983141137098497395310926991433819937970278058978056157172905524990726806430987634013811502846235821521413876700558951180628240562014365017624727499759094882653358541479575241040335318654231871866636243929900691986981699698560451309431895282916062770672656077498216639020564778302835363141897174365611478551804779274961812997514991812969141232470624313454228347762888648129804337521737933098704933588933757943080853188310069915279245250889781108755250350391106663819988517177896013086929444371646284268403672759118926779806039679435377309829296611159415444131830755626951067557862819816670069975684513768630129678000617114022659633037738620040672866280288185178469891906478410099651454218022620975120925781409293587091484167223263091962118551381268374725534388339153101913030048994152583874772091285898562837808764340858143053235292610638300441894728675446356417743167934174444316888886871420907437570610562538631922260415352918369789966359547281975933108447919216983886687430399676850864553423948580051045117855842912035412303295518167344770616894263540552007428084074604830874436869209877253939472982454828915929759394931342301315580290921000937031376533987731671422377232681490460326696970090841114019967614822493902330041361134131540159101645912636962652492203655321958711426934094611671584615547703642615207238718105922227524322531491732351867196718093758675600588154604671556083971267582570447327391042850249130584374832437314335278365115272269905286248227133351284720099370884379799163712407178819962102779861061194096995246633757218951982928000221810976270562637232370509840459216594455162170644810163101917523980977612387711136881868068316764469657058477946755031899597134848062034616862814157798767497159398575252656670399670207131316520712216718569748622895396074191759323682638084910113471697675125640596971921275491419248529134001720529145742322371500625603183049493557792497840373284776142331965785307121942828434173514885583468398546540521685007235890865654555554813445834482296732583906986130212751109965998647727229581902400541945208289453868801441941148668385056376427835101049584280814955095678924897974599039886430868412204078451122976428325407560836797224951331866365157318128239433004691931461401118661017462833228768676351120489867680248968412715383847030476922524607608939275838887515041665442527239654378029033532950705065645262198711065754367245750215053070982720235447351994349428848736920732912772630782090600684180635954357570170095992022758420331765943586072896295571215546608671934867231395929830530917504757972210027936570443774824643678793526450421935318120905832350744009182447472263474207746704427882170818934873371288191128037527178087150877019216459397851949857970859523865825854037319202839152926816038560948152447044933871167408413601244488316708537450911649525262287200018910658655948266027363314575947743948680354036932681716782337794503822936609204698900897678303648134485210980291306885811155548268369833203063370808811132709429503239663109246022028279163218145003406122398390136927326307806495339506007384845665203437607564587645372686606674185502839552196957086058272173526069602250240629490248988991491999142013523638843949079719175377096519056128254559014185085039992372731444294525677818129039783016412484706992677435436748918945458411127549889269815406756955581932360748326588230848168748329535884291925313141227505703538637521888482768633741349555000358691453571196818309459384796956751498357370065886683711496058680012398063420871565600728839093248518032194081861931055017319028982888290103690542389222270846784031534062812338001965245771772237419441100814724520569233853690016907681807125393082271638370282095918851883899589747885390094232202103936055522408028751134432824537376005344489777826567903303633975116536929980089379433453015605842262325504006938326020103767253605233445077083966495856413487017415236924523752583019358998762670273311514325282563418768474247921565137216294544796148373749294715160696151042227764815849488928955555000653819929712135500639443078949372531698934986582742907848201387747113507965189191274371729421773937349218649661235587577548944407136313481539721868101686398693983612760873334783630666078611713181462104123794927894321010346985394167111651880141266156957623547865249346191980129660023018821924060579875645822849515664924888732787165010701807704784346585674085784574651976451886864942823924402631161400962665356040784714030705406659857336088092326444368213411560141389813334506512657072536755587584526908272528678819522103143147903153941759546793129926223963017242385243760501014997752830551303629383722716595294020718338195082027923592309460327739383313359403389418143404051025911577669152773994766389113844241720259667147222561630884656598621109585733986752049910922589305827366871277160730193106087144735507561077481334540170744987434633218252724992486053935582872474000774576454238651412117858559524834422997880645740154373277374852487037668202457408834053179464695089905937425943353268456276583934631880769665990573994030830749120284317008313881358085474493124370775524727151750344860941521206572361987939298570919631936213271538033426010255025700320109215373198199089030745996059391876989086929961745623406196796572154956987662201895936960219428175339885881976357556521623229665273887949564584464168266096247030493717404079418932858164628629129480446432455601133150874283866148282307563189840910240065487691899068916252091202324032024693641948666536524046789666652348464175350562152487952665224769449635778442022809659040522852186394872538118730409103415935439935827258838080521737072962800509592344479608381548084308499095949155913305525109282487996626759426292307905151678386673460707872263580691949455203262964266399115451948289397712895662509879350989437048776827909166469759520440146761813098464962565077747161112886371304759859947219178386452864288629615526518059052107093562065143370311005995189396234135917248617947040288185442111820257756606836850823908756941210836113759588608086576917746470390241849656679211227506433156204427308966898525264194794207708371432066703348393191259985417291538396772361253517521273362654095146150898824304866301869030130870270422213653193931477294043729405932498086086587755025082314569833885641951438638964784734015588593261251821764776574698294297243714907328765358381570169326858295667266020670463909095185868115348917330438419639557134897427283865240892131769929416873608756784398608283911632935330137994543696625912601771883116216533147111551570754452196844361945805107944716674671611598949742341496809304304673722389694629183406072932399381680344674305075207860164722460134705216216335985877370677373999555770743317252695252404425902447649261118022338746441258872968986470463798752824390553647648471256395590798874764798176073553355517070140568701357555276435863312636097916956340725108082111963560489344583641301891578073214698490400142956910224324542715761121154222993727496818078312470351731728410584705326330657017601867393739430985404059689463671022352633086562711530934040523274519214303578098586809587857147971854366821874222089785596040316865814548989357253908755761496431784141217899340745986961079568788092611589153844666271380421587765257507296376777926454278637632808351722502821448264315343449102480036959687596720871108001920046603250656754031045903055627575105257467931815633826751814278915826380218383792970006579229011575442031592594069403243302960125809123976700077232723490627386496222294006154080202852200597807130381977703159577368366536106360391221167766265708296087531478743372823707347054632885105260231708323221547581724598068449901268952397095961708798737187011975139408321760170978042200817643698531904264670721173025978811749429197577247445317757841207354343287609863021716427986837253767503671596886665703342762313279447090236236837949556334298619897597441814358351857302433318499991839251496829779894815470367994150405029100635474639155246981601849996363016747090906270893208984616237223608182837373701070576771217769566642129999966101737649350067086168646626020458451471450179946814226501746837487089579942482755492994729539434840661934109276402564770340299451613301914114206675037584107131972344842124273567805618868512628970813274284285010948817647023395730384411727118145629216797073275020702835299774037250917562642561421406716164000153639475964859392175755912920618694090474589401233577002639367549627450166578183892439793028786957768953132809193530545146605168617011225423337533901504171004395869554522137515272896189879059043340788060213995139768367963846501026245391813626128691818895799441695725417327080441327157218304747830852109346417684586541492777706497170837752794496959595416563868224451012291393299059068734089374031443442662538881102701788105916582999477697546033978377376427342454909764203219171115385095207453233443468745455530052721080886491291535652308627361702812504772703736659121697298146671947286100325101286317514719946005354002261572105539006676476229910100530067415038184519136275173945180842440297721442933815692107104279960239751485208973750173262298958331861374643723864829779449076676529998402049440971019072858871140368119985475477562842348493436209850652126186277625559509492497024470046961716710321791361855575061033296817222008853531015586729168888470568199960164946226473360649113283583312094157051507482106907812634232277344932169178095040537498468215245052066933538698552781049925270689797670921649642751392341508529188580770913039412790255365653868007798731777767978725489282480382108141686191840234573368032322995618095237913135210089902386003823110425068242115937648406989822961512875332081855645361600723013185237729368631967320546940814502317152152068513505428077738846900988665394072122347856318092685351812893837780803757646954211363857448009527991883758798234427592972586737002549395975992357967690386937600072495400431054992519235817137766283042075797361820807259511617554163373488866027950393638984277198254597917473068122223792339561288941673440306406437767723656976347324829948776767223152471702432400549481747590256708162497216152415256100131180211577471750102595101523053032809050267550292346659931158316474471125658976225825720019764150205773229143156391157014813168196984220361076489141370353116385502929228197187486561427824770784408314495972227089026133320238064486354514186465174750211385982317925081594432084974892196520280535221012096778635842636808917913662910423664609075442599044704283104496802530652020078414068687632019235309303456737359207065255602959109136326157737922734409282673241953382458010711813731994471042144785190867891692637327584348197038293709479428907190057290658599499896874648905622997929512302918546795989863626812931187184692998514626178126279904655835100887868161689079572674899347489658901761822515479016231718961130606333099557138275853052105919122012022001222135476762631077398418668090034888225993983602516110188380971371093257153484605410565698034925601174165430644081689065686789888766827445723287851649903653059356153689929800823267166962134751626291069748503791363800698650951185545714882361537112085846505206361989470191445525287404787751904694572092733291225577366333940834115776072008871058664658270838272410585834899531533067622033690306326510634714230171179348993701163187725538709224881647564473475992815553320271693735259890786594115944452294570680904774550646281605242311601081963428566672066302664543748050378210722372112673348972835983234911946302859296052841846316427252246006858751467525720994031941595914346523310768564748844867401733207359548151961650442928150203751925195466931649312756921750910494722042316043173052725519026095964668178619757427543085041440742241701533429221350994692025185169133982832381138400848247748636149439431449868407615037290819157661263790258513437489018598159957634229805493751375040149977930835871868077086131526765146547870000993726546492912355548345340686303898080041996015183754227602507456450007983856658953157049120635672918916701209999518829744493984289926327458740462380941083766988913109425856848986058205862058812699626293325031700932060744695650558419660333989076899851801060676833363949618166610194842356604758765306809643113758930233712095906536140016791149145481613623964647726730758654935549070950916964379745171702610444305342654985445336450844115425519331314499623703228285340635707029636706369080852084293206491621169783754695237323680237740219551871781687782520372713749920652327222434746343511079994619404756694498051437756856163181553755177153898708960999798290834746977070279563434919032210670082917308698667003816254012650018681092671138552162877694359799295769834663859376267198611984930592166656854724318809899048914547656224800496539281284018555133978911462819151102833039352517319650566386974049294944297503164446228208290445843235053181822845361915837691249814827712851775247361429420375044658467392470926085777632988888432207012742013861311171184173488353618882490115962220236210109926391934751146313915599666509795993778113408395712095345913861723092938781845731850710828345095893381963124875367181609383231647974086956669863056598531374133854332932663157588223977625920285960468250007365812934312915698601979910431181053734393465151956672431169423738738002029160129040972997474754513359264856491141243371591049002706553920528289896264023770010071797590107380270527733085737474160521822047462015543321195516188165414524667367309742745187595208967131306233996094412513203582109954470924745090563011409589906410335389633455587107669903881761698811097374632706595468700868476015849263748427738703039172493475395570816737513640411996649795961350196203618478235143912057688987153883234342260722683830491284671861526360543509016187356822228775560032024271938240080054347436435942624216885846883073062481273775639886875609852558280016885388259332818939354004527310693915486888652475698274897997629346643952465390915564577045713922794398043062173390715562089163177377576821917245707762052369981981155500051792112442958509249349172308719512336086783846519457386334138809197722123601760137255730192631227540210077680385213867372294161237752431711189124687872306018191604434136036166062894992661535817461435498039914455038449698094382968826543306860835929178176886338413192466836750525821065571245279864802570883695143146784711774602401399227014562992582476925917274519237918130367301420732414017813420912810534358112812408928040991727220344371359699715385485870062994298087247521125268168872747171391564337932777726919076593115368597046833388241800078882745878361441188194218161506815406318395167050351113441253635131805892477359718569335088143602620135683634980695962731077805233096461210369452162777631755535412850652806635421724206323951125268870885944652096410460271645035577251042222375583936173580085400713553835834370059247928076150120175039358631742268054084710982568853180586315289971606366280098607660580705284519116558988422985847250560122160236730168995257241378235713347920712821788280858862201962308273603969135753998399994711502699326242857721826454867957160431375308826914083054860845563104622742326918121170562588217362601502585678554332928300321876106700882148438373586202260275660970266861688989068797637456905485105578672841247187596884501102718434447746534658124618729578584583480189176144358022194733463652282869776437197307864216996199677075447930321459088787903625453563666511203374889313212419942145035396816957660656605326406633174606993731613200115495902382597193354639457501975241388596654953651477962586774520623449634764684167307133006479188637914974558520606940278128454567297964785471142647163497540978103703227407257963906637685541103978608715243567408930167416378984323851910585458139416781554176252246471695980941171305557250372122634702816082933900619736475819233834735890854588631801949769600346125040591307031829927444040482519663189622712757296984038721701802757906622819010671640616887299345920534360783918781655452171967302621335377645379369546706790675606791370429369056672734994688805964772150220255890608714679525298534655992051990218102449047464515775188394315146108324185001157568533630610282555921361916771054793421007770152649987060176263088211820718070982802867359709843607997448178664551033363742688248573466629355696175134725787519212580325835698890665083264620722323468627918582550812789354384328541442298229505038940454472221604670199959165515755907644289670448159006901489302376929018433447449149269189038142893030712149013663394663031122562628442482508300080716892541578562822628468343210515257134448673660107769349147819111614392618884029971782248304796376974474461529565561544871333819049605203720568345914299208887937204099592970328164935097926059716690623497894116511885491977118304329219869605734592436303685207799153897998966760552434462828855914893531989644422799978722416927218442558160989699540516596046833909485789824560911374255792092524938067699282323420019396236020808096824774265610107882405390313041171969759045462144901091328589658576460417899378092223411850508352996926172404846450700223740014107436723303794083972576288255671989655305483374431265214288934962798974830525719113237732721819906377867013274548567351937735732946329274779574941940256610974103500122046383695594990291449654978168577495928465196743028440870389539370098083956036853680576476486629137044495833244325295133511472529290797612916760425282817954455481046160625874564997484056976110719254177468934818906256736114618628277967674353423821783208056301198364991689015930052155454558315949984362015552773032599338851103707474138512542118566441086075772631352118076882871029497064724222913118559637138330643894485603454963131833688357312841459410116196261724080871341868822420818344502452881674430638146309319341747593922873147459264249936691320944952244641501780235529240067257884019693730737017805471279374634099892756456419783309775784647484683435128202166491516186428653649488598655562090016463326707294687558624155732499957336968999744795120724479592103249681631046537097864379395390282026140691499425509676144054802055316867534539749347387892931731517642019829370921506230133000810084521561476950196192203398948295846266706299707138731358668519241707944020731942198708846463548728034327211080832654267486014448833447085251899019447750873459964442859954107188082004545049002989333668653362157938973475356882490194270283436599883015145428575922024056527436563450644505806842944258492863786457234975464726985304171989579740474501680389191386034802396454771014236272377583358682338005831839569698023462459691526563491778582535679220029202370957630755265583788874556904616803181809827754291770384389424242740891148175914075375910311146395094783219225006902089527785871772629145018110255610547528679773915303353853110999623272611583677689978935496608656453194383682044877175470670622967328179343802531828949235628846266942605090728188923961421199169689437080096570683900055331672346947645316179755290768340873073734748047680448601676130416109789446128378771294162761888264813697867790877839355922417097607268453096445297577474128525965905484226094241715843201559618426371362953113067540841310353004894199126533153107477147730924091893458071063942407601073510839685441450390848345728628811452272598267551023075116319407938580215889109424801860658485678718174167280022799530103648331093245865863854912856057893981847288145394824113236110230661038802019628061164694040827941067291016824461115361546315182415694176947660777684120005089268153909627293004627274868463083166570118402145248846523618083162395751717562618789060952352150490353961063908633701676741621613684815303266702533118610460063399672594539476808070661949014071687295220930177385565405579661596956787041220038652904448591835528718251617900934223462167927301891921008511709019618278101583372245621092906024627824052203827752027156754119420038440086799087199384846786902159985810871796209268918961124406188719536624427414434950708342419051696857757190557656930134553047536353305558211800660170146225171217728619900784380578405091639986453448560718958019541386919919535532298045212675654219809317856308478220789391487466848036956689205753212269193243023777211141504940248973067759067180974983945196641509663413811284048203591754116752761233383717772013746883202454164662518069230010968851307631317234496663788842964800372593409340993773020955132679519312193161314989924928462446230555423916978482796530806906266698326525186087209026484327172746319599813833415794541419149247397768540458212043151581636493395017587892829406034662495334675105980768141084383859301623949901763692416437060758769944644274554578258491636408213573988229480598167988211065505873518006020846378457597811007615278472078199028659148013337615466117681845220013241404093612541416423520651554975865349156070413957291527403248435370583878178020259997805795033075690498256883039487798275671445326518936160181042762661096787702969904901352306844808587301299733349156508955184340866036415439893803947136062138337683115814544921288341300840876526913437003791171046956905692506414489148081409658168275859066465462172878658361390017621297512621851595797523882296163950309997118318320464994019019467461421141824212737482180774344447813567090272755404887638468022879084245684462435976963411473535536151842555550229451373645602061394990325098356223036681568496743781225055350327823110669744938426822861317632351145297906282953179576654829441572854804662663632183180028662637090608291090906688534695505239226719456960411523526946529465893532840079095320609624895079959380523106522314445287696813497718684405815694110772915631633298622544368330918649776896092124312032757429379576853154037737586875617515720093502641834114383807331671548358450566157146881368353286723944089692356771822794685033015161982786779978288308413204243860960129290763982652312040558771478561799541263514925351844939286806998053340898831991334496712028784041623261451430446845228756248481488811869395397029856380605819941722744061909960483906604679660810467729043890335250547931412392890227251576549182494124197030625713053385463076338752364263071816384266422319937755037799932510059578154041224257608503760796471267442006787809523238955398700528325108965901984563043944983722788557595740002230316931132928389622613510807478534468268268511322652902213558440703923991496363563239565156619421404886930784474265078859103261808416852377313937868252483778314814227771669191329665380239248227289746807527312280485461905098966863775015176182646709890013123010710360886450391426504155648764668670599469749452936236134971473443731646241173287091159510192234149241884380528770780179409749171976185419732673582106481724919463780753095877307114611926815148179425391014970492312934714168788256644739220440027621106560071883167047728540440525615832223496669468313493047302370248791035324081304663514803385223301170013050034091695381649700964856253599217444508154477633576004834805987839593388134898815379321343450597501528959751271912046665525046018635609613207607851826273443323622817315561675830509662432258677685199556573411087932529083649123918252293954867868054476592939150374882679314955646532802054664917256128176116462446367683499294238579996545323779057784586668194454388076784470992801003652437345380992394878073755160612855175186740685839153677665316844873195818327422200380949516645425602127218059875522698190677912754507324137907429123619146182115954350344136988545868626729635215696276208894184032873679437523204310453131246878214455408586908208985088537780775368234254429439187598327153879646706816167730586837813777960930560954763360912827887052859191037234221238268756426700023057801750015606006830518551554159674453651693986231370898963006131445045260366934191545004693060247235930837461887192932607110155836956198999664480692977044146573424081720110406196639997009548092357496447390374642770503823311658295344703300406862424625001966168137160175717269695120742484191487615209012782987950640957783930890735293170247107287623287669651593912862219028003985857096630568260922489652110514596510737571616510442630038011909808526833646321990133941079576245916418732290364279105337145302326219759878253557412020906071677438131007408031382787990881131297677873213520700280424799101569528524005569758321713251212622059569710301970509798652729863985043771171442640254476469875555130760622712452787006774858240472346283519250571921912983501671120909830787128139176542971705784356356949283466053372083824891508768746598242412085078677725614959604420710429062180219776642520428468007231169914586818178576884727102013311886464011972181491824344088216608521515554764100510875296919793578462066569544100721289810109862687079700542988124424532999393239629603804529281124181311478799682181558121265924663444686814876057388662833352065315899319963939164842021989485460984901247391365280848955589599897434825450584958662017821016849755313405506525339322786475832647682178917083311001702099879295771804775227626116376127284088313426430320904140036346281900242404971985907143595250978586753638379409799330633342659657337649321589417409197303937609845882304082747192332226584229441911410161618392688912215756943955946608741352383838517033154890811268083946573600394404612274418814170934657660807407948767197552245343939698190521376395076141907970617449773952178304246346864189809597718771784008370797981476275979554648327588713745017295615176478263610904358512319555220606395671051410811986418339426892503564832167463355639334328076115948552735607061788969553626514465873093613084601454023723764231239850216544355059534831276548066223203781070706369727819853135030022919353295998057562915539690581591597977603429008355041801612550109512986563504166929752756313046139494658968476628683757856667904204107728817685083124462382337338239324208657645011786116350977853066502193911804658153705680930775774734717092402002295086605205557915520390440572351509450672763545444669200428859762601639400676549608519340477948878358791664584575966263927795268064008269247785359678313644414631884725226252124620151353190726058281201835631821932664181543381377730640548207023913383718193466495890004754208707385380394912153708422046472850191603263893174545484261299099006998846347170113817890557619619979325102210348755634064563582261649802076258200854966382716325126233830273501020267945793918530337208686098074439641569838044737957085940173494662403884594449458754828575311446985631247878170573227980402136218746592000335771432879061184933152113704627213815592207216688399382607211664670471827795618622795367947783055265015040525733363415792357067798225693411154671262809210243895917794837701876094127011495390586353838185728747166545316497114243631981881219389242749384062489939682143979407340737241871923768645580408314676457411249997127901668082410642647762388126987657938746382463568919763835716766515190569099046437257090155919760124616486593918134712980633250038369493307258808337072712008977847512740633877596573624327511175307439930695139937557212410401835866041190978302811823329902650712783918597697357570427540490853618504837337238059350414865541407101762954955053572515224626241403856389262662415246565498498595791722143373425726207360262600705532687532990774330251605532067633835719650142952923140678119540018664094533612127070787948963808874086897669264308416536665552240434344464438787413955399363070621543484024646201091418748719609180105184618480543354234413106379537291282015967395385108886386803432033329951068026244364966266626858623518910548359574888881605685268780047331077700547945001716516690441408520155297565346810475471209698612951583214664477844845360844828106286827570837938558965348281363577534857358146020487720697078287961077003149751708939624766553401720390670696434224480319830623791248607414480125052387410838886721177268672669063609834115657918982876121922767868741051328539835209743614447925807662031482635477831871112231087638354895557312679271650073445411914676952185704194838950801319474441480301264507944906909708726061300865315920985334816850587167550796767090046378883763297804957927150965216422518748322564104116200698082996051152733263005263828659736266698815107232792207488767633477361815832801542791518222555876571706237205424827275762979735758570563414243262975261796663178568484901465276522585605627626663936272986962750144499174510788435946382735903903728223013938767153938634631227525158340987881951838866702073742432913783216908958061153568036330767166724938096328231038919660151155598754054201536718840244317169104168515936188606311228366680419488450636649655709578683534367353554076967477148356819885436277725619348961738839413724083098135037487458999795716021213234057665292370060832198818257842298985583267485907999522779851007651845649913223475058938443366394336441678972118873380572552079258331105225287916229686755519279110712171219245592815076271927727821297237617124429558338583203286640647988005223205698955684409579036765598299371063464244508330341543726437399771255858471638619615988428151313711876783265900645332172632446406140276568515618963565055676494229856551357362158634478282318776693282110765274959287407340035000419186650426166044058649610816817231441673394138147881188864041578970217047263202581949128118931626270207373470088454677524287881751569282165295548911531180819168051075371801271405024770045704466149128715815477613807108268833751018807957842554209433302139192933615240075117014153545475869315052814991957031802161438963829528435835543231825638738232250333289575825619077107638882423113262828150902391263154701886134574137693055497938358027066356130885729207372943513801819328885368986912266088149902742703383620973118981787325261294660891047713948353579316285980476171267989994184883972398196193352722589114646794532846367879796062976647474472010337823541743796844033012129504673626158750935083214192188235852359878387757515266250991107407681365421242181920912601436892689830929916231128415802884183679947386832838576467817357676479242257376627043721201670387786300582682627570101991005104330514710428168947550976213273321926702270650791343527533641030581355384955159769789629131757274479949559135348462750735247425163300437591255971472821663580033457400964794259891787350578961606103855004028207025756945461886644365378532440100452608525442034211379825159379087023323349292632453988850211973964557137853413422253128025114281722993450034855477436500714618881259744684578348281866050105401733648253186944024966515249688896212080288310634600847457240249989243089947701848466827396809972622895126677531275770150214581435385535993982589155223673571729062979951283903291233844397497163876553686601858239495083838033090736673817415955552604717696458942892842735251035076506015108131914246782548801965412716992636535477332644307172385945923117344572239941163713457527406998782959176226337863962182993474268236515957359306549187995136328224002993862669772843012866202671240661829184864323073941921461002465419679545414740614227284286241791215303507238566277279766846329477399579161931248619697766724850231820654351324712745969016689393789692461429357781257075043440566241412192210143200821910869958818483206379998674234714857317169876278192297986567049573899405421242105882169255890486197092765653396775282122850646090145505161242078499033454675559197835224585534429250607019729590740926313484461120255111462296129794144556760552573176572155933940751969118378930193303353551362151438515397529575269709020312066415455574942815995429537647438405560734746937783471963741279391518689798563153514032677418810837453600117772999511809553966756777609676299830093259525345708383035139220679280611651151279066916597534164956583259029873512778996100947079465422397179815364286344923072665002337150506176125009141703368936257212887959860150776733992920083114282187597147705776046011650373731142902769852585745823598949284807857264102211332772295031788999610399261664626429711452962616865566154052528152176643997336833123955721835109413683937267146964740297958170232124476532821305990161158415883913856180759805056412213459595741041370811499341091555442346530521621216728505009617745509806008125665707287755974848972396160916920813458267162492332190924214699649671129819739442085957108065388529046479861270826372117673713267005454584283399450950790904058594031223804040478158122965117112193917437110821860631403563861328610374788124949181511413148255364676116931016599894632439299232054919939436642597054587373498941317165234669422847612523738421136483392441806251427149579003882268918633783590008368240883170313537754378489984623387578810267046262186880660728648621960256955867368885258829217529526448228438518774294180763957951146962291905580573954681363146952419595181783352622148018804351208070811141283102192888636826411972866028966524491587794687821561111766714247316062530572409862791002117467753024598844637258341648382063042423526007126050929656220064519284513512891009005960260907073261015448528136872359403836637505255370081222979556021564967166130004260972964523407206373461734947699775681778270532429260228260811706937521610816967319036842616095425651308960181920966842877770848128180188704020324307744638162834610481522580258143773245518723547362181638468405946445437269902136733657477417196128589007155949024525972985393356220497606953454001471171543006525533416420044800241762967015205254150703376160060398346321144092165162270926422092742083982677611595676039300615979420472978471612644834251647336637931076098735934174563500939584471514641384506733007869316958108597218515132078249469575707292815458588496824742869751993168999731886981447345294830732827944935504664305813524159995267872993824852712187381822460237383846310481863792184936901827605721586697295919479722766866020701296178165586735144638403318036397887490723246203991724012423337554843730728522566176455298925087154544315582282450628313140307321019841749854173634925694852223831790939365218026856130843160997483725188607072514196299731161176197022498156732994050846064726154537390386803784119161877619883910739632902578546575567944179352674282250948440963533591056810557539316838177426729768155867804808296467846556526532662106415142414147211654165767219270024152963605078034722097624855987372343549600661946247099728320754119368827275352370018172614141350054509698992568436315053521371229280779728711123535530866691592086137289393413526667853154360016986198926133529810056286399284644934453455569166496206470804059418697775495460436668408600784453465450372140814531990374868659933766881622543547591393558349244043070724298576787046454180283639265138253305418389516015593079379467227328758113033771076670750086317715376998943682502152522479471653873525471955937684263131399592943646449028647269018569345847931293802413179774439032285445756832120502606409216310528864856656682744317718300794550558286886091404648315203079371877822913114029028754171475410742621473278489076922651083985411581048584934975132819332009444741307120685972475672221884064949254131097055123406165795717738865272891817247764936010143540459282276082034464696991088516987932733419991967711691922775676153537297332857327063946694388373605850081765302970384700315122154103220061373922722086544916126538822974398266115143801550976441540151667092626151869182207405994612576699070174090754811713100206632686582827746663392350322818989711357753758515866297299885110402213471762846917478460828430663506266818844133970665727650126933192381359621798679407778424726553494611222824413870702625579567035380842659687030042247634363371355888526143546583211126224638727460556018240591538064882187601068349773648522573206041098759122182649519177408347591098441990731003347374636500746868245901547441096147421356945326993335891222424763711964529265986297119378720439541104428375259915552944097936652433757241179115406366252610198699368267162098998765856079111393705229899656481915082108761137947076353274873678908125318174977436424083000571555641879918153389989694347416669997588778104759293695489785888754333028326818454456491306871504350280135483668631034567668641561477968521148777530357792057720063371523610777379295670190894041344332801027305103144824307176240600446915461810097790730902257217215917949441420914642079344238029570959743746172771533013585077479365260935198783446701183898610034780712304898801947572501717308510554850780092746068813048107944439204655365355846443518388838011432927477443390958238753053454761255399853145295391504735916042816863813174291916678652691235412562869273046387470069123594123409338863813973265058734435310711255997804119865940360788701315071372885116188758246408178007405098845157416998709055135436850729305135686708744085785587641083341680537443720923538856873559779570706525260989332028059801938777211260739648423914754679317415381369998377022723766475338056380632142070483852670340950739673575079422639944116104457130624723685166400547504011293190723954819808705458697298324444508090812464911110665099672960274075557873636766243076735977595380438335442872377425856748633306894113423852649470475643818478542970401319953061084544093895123298621247246746346723158676244226331001322809772252682683749757008482891423372980940368543752075531166131228662178905668247803803485926566822196085390483039439589372927642937195442448988092188957911164518498792690166522927438499838838396711305960473859585566305092860426915741749456206347309280382530606128278093754023175239181622118914677423365281961370671918206193219175534396606904154946096262874355716223642198004500704215127834842526638535016660554147613239480299131815691428423084120129074807646819892221734450200152145489541082053763954574446581986435569492030045246220882415493675535612547784171410301454613861521333990952403173686324843016740352416526779525659584875424034374313941205594314572708318227678308238363338836349418682984437877587185213446808705419785747002398589287212951741719409781485101431708437004084029672204315100840601983146673557179416160186448473747531935009013198458764445391240693369479570442640341591470494169005564754501539503011803978550518354019805710769893246901311995296326303994801385654849177723659820706030745280068134511269158727743784066537559476785799201697199682934967388946886698958189530108283320457055119852839983092066916573344703209232166117930648546970649391068887056789571928909711244691604060076406769873216446324334519177621772363888117393071297057878631219874288580847605954030323358200529767708023063321335295699599893857449904185255573367399514782776443008043796964010007010696635561577867660429758141558704334224958000416739413356509295648785583764382450068954427696447254888098819310115599464155221232760508861126192511628377587239288567889217742178768570640679225507951913837377018193605526872766528306342775033973561347008251164838980082417603565912616728791027557646412037682307519736048435075103440277660530719937935208791177046963224673892006413925298442991281097278894473328491482035107849250119086081030301154061462661910305184236467414886625930868170939288049701577481370961260055951791723710840894376804253096393230224462119825546320417985447761539130139799416982640436674502352960076420073276507891728091280233269415140554338242135386465150745501717537545075531520271935046923617126903876214455018878776596919306213995767439838408614304207440598395325557273279866655023947786729438615448964225186936495226832950061508251350370132402766257864455765763490207930577340473857765054298996388479158064170875991938585834160098100308607122099530937348496627899041704647161711136483268165171615143879262408379614163020558969822860701059465975856887171408687182479700744373691136794907921899668437665050455450682795323593913997162518771186147160676804971843656963951274080627142175754386303956600521497450236346567424128421623202945354481951679941435144343928356687506245136969951347324644834301228928739818506548052688999815248049159423885709372390470144688468709546297215863363455090721498035946709284962471143868623656481609817754148526767567169087539952744632144489237675078432377129507877414276899059198754934535174677099980341127941839990790073916093304782680109170547576456082963836042160718596882716863618983017445566545007865361964376574709895917301555548432169889165337131864779383371570823433093150987588401012561266516978703479577196983149681863883857759866360815627679948142389055269252621041023743502128335041088823665417002577094726310004018664416030403541106530154345033453311817255148961205186500559880293557083259120099177457250290174156026010206587270874138568603171064698449709655627938580790263524279522866605800985437168989803065287088858934641806722672952595488243764999617332006191521648606643469275293415479290112772299332959513138566981777253957846517773776300992532582196012162100892374537385355784385460054084634659592092526462583924901577289192221346621398660203099535362070869120035016564453341822097092980957224365501876865945869972766126302665631798396716809068915789689475163894320074864572303121411302866137489388085452712406610903817073060564654456875259666911646085908590804499604608775760178731397205127962930887952944999414036671887438313471316548580459005716818446067046963414677334870033175540217107870549408046642354609201355202881478609552120921443854632360252980743445348244326513959858118694362495027851637114153887456173274386851330845287255565757635391130034030091272719931329638833550056484993012627283204868995507442233463888300053960956018667139745595037440449517419429293417403809939528144209741245903939484317724201043697556174794660507599876801292023098800606588713601766370121385751502626598446741695586697568209792319212391238870844582878969924633849746540715260903912526903395209631350247590718928149882108300097118922624204797501962549235977837330351178070158445931695744137212503819104430949956049247613062845811265605060924677980001359725697283931730051789271904463733204668268021507357531454766294956695058587776197299520662904328145514842562052193975289898624383175140809969095569391575933221374656328645702149264348907467757084981867097634875827976373682291595218252223411280678595117857153295502097656938731338000572567937281417985900896561005566597956667887665826526876215972482117377990163981470282062552000265781362523700660483426266574151443283235873929588836411217933051482566203294298067807882236843124757300723384288378328083119651761836366575172453296246464867003952215675336019059039077537916402624480581529862996828746810836195539436207961930039910043517806854449361852357391852886491185836594034329053528562544249422191195579734245779657521583347979516711837897535383680316231692228620929762688505636436778427879778420054951108425255524537114059752069390968580726095513433572863233506581597047477896374486599987214693876757961354022029296256071219967393421335114594918215086334077112513875178603510012339821558480724991696982107294640894583245872741852448463776499050657044935041422001698723253837805168626031923082130507964847959666811669377577603340253521013349771598786121803404924249194295694845354647313753431974629012062892050617923829418730952220600865143525765256223706588425248669288119058370824637996185945889542591787119494522328987093342399085036109098813792761376719521896790518191059165231579308015631436288107471711689665247943219292914744626728613594546063120006836682756288164544227980324035581377817829736876299952004141129954884013073790314619712824389559624768035058434257274221535083925435769104468601849656977119427053617096089972764193562010321370850648491226952151646050884111193600104064270982549064011126595297956291096252194827667309125752116106864794828811719425427398281688102650076828014921637145031679258065426353282010554086234456491113609127562996285839461611645571420897426402316301945169725486304430551349438959235962548626694256479570347866643962618809949045483828450414826009288663865777886932208659422494557497490546591220131775560984833621131841227767800180766793990805908283799658450906618814529466515170871588393163209453431924703981520851453460303916177635641487889276353085208620590890855747940844608424638051444411827976255350295147843689203877130857994444135298701433816894785779286885212625796180406987521523747303529906800515908940043318933336315559672420062981067522829637281532236399489271906534188709544036443798078852480296585317063542681199172425556233175334431332112275510150888874374504254294406524052028187097075675095644170033190350420455709119803511332996041214393205324658097864688891913093498371587056436432602399559311857407775902132379166980876525064355561356521889907281248524109785346643874224681429989115352694425896324652515909788293961655917330141560974208143297840898393660417698513342556176207644019750502159502292800770685553692429866267342472832619946883973071808588996826108785435824643060761572472092035752075594153229776645880818950795744967892705479995013138724586886024050368674085160469830795328717687199839330183471948707240722483825717369277635335920517200593770337323827575582004750008126452209847730014064325884642193659211428340424923027944093913995167979172670341150343777432348122370312072399672443156541791539279954884177454134963315286477525345729150775672966662491934978269370924499269943647843697990482648249429852230427713047461256229379646918733946618558243690278001428821436447631462087495976919757673007785935538832738347545368966204943573570895144263952711252420259421487383404709880330030746706968883187513591229367981576203804097261270839283900596810032794355651476997210464355446690555768793488040241903380064378909337529972902172589380977503962622682271485635046822546940832710228279614582691140078706984425103250945779816510666877813723499876429843515053400637204232238548547716690297423887614333754909261210830249933135358337309836788379088017846942198968899608258846209573081208280038896233917008263925604880550140005312557084062580631205678301085284735164848706940497219248989429700919261975839897792460564117772625981666036645105171814142479839270528833912184222736788043419082841318596718635788860362317656904906173351016581516922920785792834257857666285073409143361859666878306677997449437154815897849934890291921446477202036689627806373365258095999255204680638111487783848021128474921881754337988593207020682663650849758558371314296304379266262954694860772590749244905935653706287160190910139522106788976078799131334461717479747478248862349099218682543070317896388409781466749435408208070242072596779600525565683529231305765724088708990627146723356972393207672834446135301657622634248702948347131319304754753275761004190253293949305702461781716456243184905359495621981435819958346763776140399350159415350053764721359392418531757769604669936688147207958362569998084520500902403113699163013686889917883257043262955868689849184743548253325059238386931756260429833978870759551930208676456953605312851699871654427256657071214124613292476044529145814270377128485878000902623291745084850476314573588744682037658357511439723445632571751289330315829443167515970265843167638374006730517506952710325499854067099996441749139129065674815486153434664864727985834299738985727748368696013726257160794686902202841172706095617823284108138993986697772139296545447992254387778449411001988499248772639455068423051441059033885390001472075555851726089314028431944410465261247791577844099475125289591211185233391283795579694920658345856068162308788524442972382157019946808790699303367974579927876487313147224823300793662772447440466225698040132268341890072236479407834147272657579699176886907590519049932482082772351785204522113528608084811105127311977656254794576502492845336743231953274336068024310736506045982031890405157707693967409815496020882392233614952664179104081498748126606417003258187534487123100800195961315390118557924381160242912024956529611235546220454169608379804777262229116973515360229159874956982987408611527109358323815655404503057046787748751174556289209360961226630360923752473393072471534011667523927604882890632119703362494228588864458321614310035659486676124292378768636944580368504422150111491138487885441525108657090745143789265723159565401792714340511022397285510104229351373046121439741593325075348766057231774455978358508471679897368068355141730624280507176990898564114167505071005784358797641616241321122279319392649429062461430495607915201756934811315591216714273911294702197067742728554440543989017719682540714691301265408480021586677762704321181202850178772151253970703460542638482237329883835828810347280483887841374717868702408547296471598350096661084045100553685570649522000024346871578184035438711103540602750337029676074154721798190262789750473203913469402210686560887236929744276043338729805449330022789771184877249410350983032111541732415502338216164728687598606366353690174144460638695097606886522362518337389070682407276353594817341866002465789843549699802685602691540233429715216435624926038946660400072431683077620141291188072120016479933829649264045956226653025682392530930719197464056162666097775686783373523953294014541641344092004397394130140694013472252799996652024522938732298320033490010402690084637408824974963847441958185306326265152145205563759102828299339150501109792867119542780291064737276058095948614685036452853869641525426726148205778724968936556056128523653759247717091617889024285587038450879238004469273208517878011904896486976271805745912453385210004228836416366423500847378565311129135766110736582749077972063021021792994883921189723592087550374767996894254024814294499587244779077004748059668261800718399787988498099072660851464356573526986880494852708571547126514663071165119750834499307383212823408989871876078739981446693039399548370347057698096118950229816187168395508637765461648267096976324757032528200513680640153840918330542365675744764635311870174826713724842332175618140508483933514941402970773379524454937188935639898541609326736426316123483073502928968988766369388007414891217701256328074109599479915749958837472259344306056027006927996055607561370463603627281983602116384985423307085808378248038718948589709487133369772799954476158419087335748469089894150017302391145367710435813319237898034529455334605336577911454743467400580593884951315821330737969810472736483515944327441631240968989274147026915864245161633247481721700097932987172334509783643612551425705486041281299723275766606104487798155547891141286949810674777605281026284919197960167444672883914292639794492285184019695890177508682906916124229015597923344752753746375644334077937134762321225950931779835761325450307281530415038338681675464286897860220820376620257276028841051193182695693845507762892073996512355479730563309640986090055125345883992872316351190778281690755402254870439046121926825777244992915828687411841572612702419155717000275038124770736840789288510962762971345606593612917951791307165901307767235842107075453908600658218057472514585246170353433832345138567723099144822950346409295629990557940854413741653777817508149038369118906249289032084040795612396693290368466816503783718725985612855439969947439961597730763024630687946540904580014032665598317978791643390641026167465782933529633919339416460357992229388800749608982987801409703955922840053784306708289599358716382714881940795817741354473155516879661613226900171184257106298212646190291865582245220112490510790793217259804193892227312910220800739854432613536040780513297724631077319277391778058504991215271332774265810698174536446574413191033069281897501998054555308816845485658547465235067641462415881503020976321216602813540159892981845092010637508420394656568155453565164400639906187202051242531462328464011128335531478307616677301510084387862911889369107221759125034367775697066749704967454546978706667011499246474118708962139295768365410716842480979545839639150917962414159465398750081027005261352736909220356422961584110309112730263393625167035566935849732686903032353530966558401399036412039230939175222023545094193992391409280364463140667786000079981603091964731356171182515154466187448964092843592266386756789116669520988597361972090874068165334100095486051109581302164336718279701624693541157548384362425109676467596415235907509527234589846643535705674622983865165295104603738088206222593554818749118831255270738929700185734697760587401636853534730096900013799808188572799635259027979164932485123409191978905124298847882917923448901131403389383667843966729263749240321141238982162417808378582316773930628813953138465134864555623446688358081151863129055167773776142235204287311762280987547118397676400576288324781832107624728133601209320951588293238759641339303033448080936359425826488024105823307604342114301016388919561490699604062533310708747015920941349044326012107345489158729767439445304691128379188072582038841775215682927418248533568470527764531820344111032291415484113630059090511447356378224810025922789394761933980403849906439881246422036324120008638272237061035184017621270103126213026812515976323849120937944541206148569916437665532987207887637171925699103439042219490818499252380475670543978236020857507859471363309602575284235527167976604747582493871438556066734503036173040404740637594997660017612461657736674434016502028956761866826647530672470277247680911800294819400683101386017129514179324477147751889567205083990552263372856846608887116464910689751856352478766702479025563037443738702932657396670453491153002162648821979433878738387275726751356180249260828756849155197966271581043940336895130254392504917072552755526917403388042484077231344631813884445608904580209501693366510423779585499069763039444888674129042261565022547094044067708054943785496819748401537189965821189713331128214177169661887902381145551025852177009969897352628224105711559008913224693367424212961790994780845030206558467615279936114733670002797233026304779404096387001540487997303079287671322820280068735124428516507186051937044916320931727036088762498379880016306393007505852692442613397273925380782270895221766132464334288089326588491263890465929288052919610867082342995501586177447002117780137682858965153721280440192831083761037518970945517770887337726021525494628431101360537354346235738613031245276890875712169254001639156602833510184882311758775136030160108419905721064093115340698754939704815074709566230386354235324550937421098840577612825073412422337808125816714996940231581088371494625518774331967692449509838664235317675243529145392260883520289529875450079718422535420943151630312439520610603270329566939414337677602677128732042658294876683665484109406270226829965753930415989745164874852313901348601271730131051589099484356165523470510979391593506410874102008277905180150673935798709908666946023349255267927429253023028681234581338418471453925719631334747810805634139041432063580205117773944254588206161748947514871592855396145841731163362261090583118943310627658747026131357996974573304491962887525479509971271596952069448033841756830754928124798663707882718752426750359792992781690868859046677179060611085177597286342315231001426219867959429180742118430074574875000152602156056490654316339620702598103204154129802990761245736863255232835533727083544543216395942540202294329282479617373098828676273909014429645730787518738254543087966831363555553962613972556845099561386315823368805158533047347634039173950197786430241169291671548921863109191579448290877349163102069081732152068941250811180151690094220037040612785095182348495340026029026416304783262678939795069472645749524910458638499815894917607262413518044098458141249652824795744441123233897576214996287867578562566362329920795256399310134283532465086662491849187977319125662760071772222029997369735856242705135317629990522395396610879475885808576800885403036723129404802013240598716500938620784872770307819304573015208919970198273557794945038186158481900909027403700620605377565703518003096839229180508431443262336178305804216218172345433961389676572213831757275489711403900362886624003622620521257718743290717658506216643621607167632677227548138931492149364996360091463709398410765880821921986771861095280387855930706095690640204704612997798903777955175913370095387253709626811461236595735106241971540383326086898949178140806292332934566402915797219435068071652198733666284973436210564077286200302413654248984370647853077381751930908263492684304988225024074202525859335246769576103133448343485824751816601868741447575981866279588637998578528070402534584622668807422807665735507704109206863635274224444460752864133183642572425810364581176764903917937010483254479950436925257981911873285360208430586240615892094206134675918814796663711806261050406066502782282575682207883139462296338658771164428750361951160438648905835169372514814561436260962770711908307863980422123284460173174026446908944336148941963376770291551651040147071249283149822628476288851176774260751284193687181496389533016516738669500828549835169824316128257747848929924793440042465679911448464832170700790383281460206290525831664847267490064747136483282893935527431313755375986090929738264407610267801560733030691859222786324094019794965235913034152709163710593429256231925726519927674730915761603660936748857485296276915893563125871874661702216416909253642518285981879951044684029643630041301986141555797326856091128048375099669136689202613290854649183851618870869178358190355561951575851256533858765740435778415126843131744382200456752564655038585685468315170698776846091532909054542999057103665103937387002617953302848152241663088464443013497157088684616502813169233653518077279442660332419650672571595966425210724546199893653898240179945046659890248651885351309159709155688917225114082823164073067182052872510348242454854146217028771999834865372198552211214542689622476074316237610297221870759493222324502664612492339296533949456137670804624164936230058556913826741675741767853376059682189426043740104602347610474786149547140988528097651495154519927925731684048062878149038766866059346928719137813107079780477019784885913113865377950063449581924325530972737039700748939549264287857118485422016314675316734750716492499164696981585696763619473093736611763808306142459592583923158502386114017216716302424520038836887971405761208219335210904464620948719532335315179408095304771214887784223450595517020254998881435380139592595060136957183796974965722815332030494839048923213479403251614247486923350972570378262333909879564465666342923052488023411870331706904096641483438767284419205132362202222391285253691586450029783221269861419533998459634596195235775546227489394981506446141052541670803142339147668618269952737215036464040036044780820463222925007154884447964914729460734134196946184201360415912912321357695458684691653575947630657485140520707567426111193201199386463924565297658483086768488369517392484929254709836167747921581421519325152725611952891041196270343772637180498460634122775271259580748219416760311273366358641626837074170153260967857178532655135841419126130604078636374475024391411425900528971435718624744315705543803918094265221474050758815746942723204958385579283631840115227501991641087300466179657802379701923874275640108931457577521661270441125495721031598032137188129522057186139855517805595237238488105948146167102188654909592959932786227583378068247101136927415960160463292798207262034631706415063963151432348121439924151440844220316551437698784868183453130971677466473705734884443852401298170683372766074387595178787521151537009489671174576987123229002194210195587771663852861431963584934946122713861408595967513126613117351800798557535669267906732944085488182448008828812723132744015341130570376904151210849403239681269876745941072612694681422367224020896698266734761862835807118632221099667650648958741239312599789561431315669519527315929804782658402170468944407046970743458817780789712394450552317108527010566965325093484338151617540172259687173815079537578156987731649932701286260262628326780301831795582679798823854961069330399087542748662151594338426953864346987453271581624779306573410275350327682806637615696796158030949052453434830815346286954119238853711549181811507185115140581091723677200718995719825511155044811792399066160579595916279829463992439315747982142668196980179687942774000846915935227628693477793233778251819007113275045609575416176573433734159657094088581258920062948279675189893460480759879877755404008518340294043187270490763184796756790872238118021929465115888391656092101440524078563975301828020564774178243876951692944434248966586897079768763141958678739062493551565442647362050520063560602472213338892442468921512438652981642820354658799046296729878650493924675856381641369273347429652557486603463463683108725312269651879510268796630423359883280769507607661255248934231525500012504287002530903356917860843380499663636661362927854062981586291138546991259539290077447878944823858985444425899748575733483744775228122908325229674170215276827536052428343527912347451999893202743048876292352106494811096151971261753733225259151830252702286330160547542920467331225495789487489181383339105156474976999513941133005282298042351254533537312694565836622965365901464167188843985427200612981984362458375325904371937396096742293176761640981006348609277095936217911702509230592461777551163257499552253742222256828214043896922221655489404281557851587639366195544701588781878321744528200345771110950700138905465133692502028560761251579407436033901060634360061130856956925596917080731092954827208494165992927909484910234295084338917818166921914619482454595560746728111666873693042586350076241355322416288712353122607140746218105262603171990889702741680410073531529943307470504845286328505696273588370332134145726041326943708625462810108274876622750392898568580555719669093144365263039562964309064611016998202822971065321849194055210110461391712761582566534226269890215829456993323568921765524387107892618232995250132914498985157992968984696507955903021081665545230331789014923104360713167205471589660306296203368167583476283473960053895171405310444302483525322281730544440725898335113523804571813608556206560381362462380897150619345550961085513647109901905979011033606796380993710545218640502336347817615090845904455305596106056425847701480817332149187757200225767402203320703340080264236310660925030420724423698707451332918576422176218828756169508895187444979002741808883054060176700378285390539404823305879785032398256253347140081625040793235258176856417408688579000857426136589085515016452597221482827814756704241049297227189547701959425165384194592078473483968279831405464208701478181531827554942202083162006109826310484093873296448657043822553187273326673243422288835386396172340554794991272257505636106629870746535503833559143995353140049918330322835572102818848267141807648839866753666664193163429884493056408556368809957723063645258446097377940056152019987623747915088815353566880945308688914336271818743833861773028145581478556650657684448040347570808909137165435035629722799009503805888896266011764448793450648916981289810767342845708133427794659898179629665310000607206194980125568907316512913667638060418795705143457574070965552319116680496655085306310744793245934143120322352515581019263717498258169587972228157184029670851108058613814028537094550099485217705331589000167078855546885086439207722195198514355286705668072642548644180790028990355343493216661566823754600600604280037891663407262625253389296010543294115191255407622727613729687438692366018535508451602841794319059743054223435219796550249715069797991110640495451971202706002564489923294052360026882403092043657903421850321512857082469990573313829191720733634752739462031118037709480341716140163200869201345808454366316395493935924483597589137901977546921562049136210498066798316509312976602486177182183149084689393042299825639727058857356932941893344190638088270539710657082681333398547162019311351523716661052648513098515733906679744542578979052932445972485884290708906378454426497347130380079997940654665453508148085743521168032107925983443625685164955232152792300576223063582901480057665139769293730964542865053261972620898941775147621883365913188973780872214534744357358512983695398630868297259007802530701013593095541570809959075847019083914450915785911243496659650752638722592764632770394510393251716890320634169662884159387311124310139479281843399300982594976894245094356354928683643797491135920087496558938486174770886011408434024498187888850073841109552791658924121945288868742815088052693964812838384928614541246735261350041569087100064164493170733205064978254262074505705109007153691728855904923906167740200312722417495622496185268379111396543349720608126770693888190423255019378610330790702962691838411625404517789955736412865673354684594629213919555017756811675769590486861701469473991258885679630295354330242393379002923417245181592002613801912848349181453746718966487871123120310869156582939384849710808945191933984699177407216619534830572429533707197610962805089977414565478648976706711794847534205727667899413018724477390481819248956984422421873187699389543913163709154601207869620062281085735587339952209962534553524982018757497827501660575981201910544644686921538905269726341706537373246884866990611766842056415033102841581487258559294657473080852618265890524443179067875601836312170782306127834769383713921666044246715177561760463755918176450569369857875278937743689492380548803721405935863840739952394431997241651147881580394112495783360946696911171854611385983182528983136563294801297884276573500109433925651933755675676304615846686477184768452176702300453187623931641772110158287105587290721705146795990542824029369037920424018782048272870426846713380476558271568637481223997144866202019938410475685025404066702826167017404545108305269550039075439646860586555916480272910139774756045078267556427892256375643053912325900163266801482265102437417815303448239183265551132140583060714003664923604454209996912020219208488529604947257791235852955758813817359316644841924022205607194808165484305750141563467174458243086307056226578461670034671122725932697128368067065723459130168154651955741704059182374390479251134888367512316551995822150773086437210718439256056558401740437130207267163246899866490099968139374749496536101676321120912621263244281873224277560671220966260358309354877705830029950019953659230280455582286722031177563181341294960751709253971891600181823431191677831670584736577826865474072236765455153661603882916060607516673671410695851895130823574276443404049325419064018772222537955581056262703896380073774145479964079972409043444923743158166357266461181272816425827746134505024976604114173979552397888639145285541609104025019166423085648914992226037472120322430460962773468012132186422747521098669505551279975869399396223579215347506291651911369512816137025030519873421880915412703459862023991758570519181088772357569969194104553660095335971065962616293317445685504725515202419275318886928825993278622216725121775797332112754794916350376104370835521963423367178273042580873675298013740339782581805333974191483543696381230660656846196243985996699443120314470167494456493250562068674887265778111141544345897475130985153003254077788938509489143919991842046583137951059128656261664425083433110476237104083800861791572085784274586555677917851381977518660186473726151871975863174621130035794308997960061927184489345052852088866365297255091728499733789233967599068575148414124917509311420146628138015015304240561638368658108539125938451606360574066915223488651440343292265523589295385478069936297081150659522598892727084385108759536257670308668005854920647612058686101173598461140351791569105412926522997022476423063671052549605004495161347439275791959035156553163360142124204144502993432819953638922903383281713025211215126234941434766681117553683335048307788131317789444665580970277502219253757213564975230027676778477299502696909163043276457204259832841945810693626398104358456107117777211508140946965412254635337862416044808429183444035666363854041489058322880466764271132632461103028412934574080127014929161408815209280990104552571677774580623248340074999506719536771880056856824680719984519385441708025890291602900692905866495370309871254234761721760466160624199850848233832833552220432884127620609107549682380462041508658971100017848716421526709807371551183526540814559841324027563851166186248317046901735648531211390687111327137970430981393358500581808521012499038389606636100224902382688699370964810632438252740481450255779719408373835832860682224753644120395679688347621541878787175601375493017417954520190115062026413005156298660542638570532683924101476151786524665853131950052948141852211928238518112314190836495933830110880090630691122739475359738258439439084432356761314864076355279397604206031498948246612802351687044424573966700296237401290499828687126218104686943403853750677672771184767165439716806991719835595440631780701482459243092205352987517844103830448893961921650591287168824927702530528278371581722131819227664721815159204072185233017617734811114726089204465894402624310350842869157999702818579819367732970675660851939878776689742273320959336507131964373907246766702645435189610185719211274228929769575962689006578653129195707952765634604839457173469926612879513111976649315316862483398968118912642342962279593877596879779368456876794903975614358168148502441917939027645637826599341401337365381268143562063271588293827132010512503630705756841960884226665118098451121773919747940026063138957314632391798519404160152867391452991691997902012066174975637691698523799967790685302673247563325329638877880168689114713744738258204232481221058507867665149186545944951628565740860038513982079758154618584991044590095647766307179324492339329746997811087295702022791797283596609198286597568865024935540252275654525340608901665356141778951030594282081285435459434835276299943242279706089412002647694726120987446398302245610794555939037501432183657207975723074725745169054914534880773818181661100722556805882294710443519868212149252070418434063941276002403426414014261077090237430935155010166062953397269920081310777665652859625947540415430665369476416127202322065994766074523294350066065639701049006720804482002979837461424883434333223219660865115667345976218837915163789782150456784279241214369214290759529477934178966444173127889213558270497711541767239415899635670823222974248253649132041376240180449366286331189964770432779706510182181428911154654293386286410360323686394212316854814877041766365928422043732942295324057852253919543825709909242485777254158506244613984048847360454376563222198584499098573782024906362760306470666718651137756020014849548617437067501261196792230065100387841008663718757760821175087729284038344796470080113572844452393418418551857227207739030499021486770493457165271866502316476409591794300917869364184846906371980566183472128056292566322325056398120657599005990930728820267120548103808467959072397502709124704387475903416161951110077057712005693910800319291465641255058787935279244292508420127253797225813905809457747827969375128852820333480485752199605724397816919549516402569659444934401295846225114173211108810828662584793619735560422864041804068950794428103066274344783318991428234896624315339237671369167912941076381562071514987901159048291653166086136402242180268020485402125163070647816215634677938716995456057245030736415787789354482229240470978036316273257166430657444470264700831176631672443806943911720637946351714541996009360459445796210717167114657266506076437000417995074114632416887631030616578474030542859321427234356277329537659076018272415073895378161499533975752479085680818524527116781603120857211720148379359587869383308881277278814643728811439124293817890231269247524534728833086726848077193465832121743977631464044294892212016098035739126355981034236302118504270940448096002218926459430026192748820108102864649131485058772813459362423990284567981776461338042025969663167553909202615635347041042159043646748368191379884939302044334359995558120030352431027001635694396615356001216448240713809282667291122994917631959145792126229712134163420315322071865687182673531407158723943794829643167524537984901883916991803144438786889163329647474178463580221252604257481937609325750546818829449732602696398376792604179544445010372680990659788452626215832678585487560158806454445124693304457944034917028464575867606949249199106346521818135715441905529540995474866197060712666305937823417509676552842059666971982761665579676020756263500243205197276182685773351158197279240699170576461309750169627508358400851811638888009049792869615635609251026937493926157350847514975493111528448426337880665515828309147147782351095323242850514996457284839734912844081883920247969724877250308781441378686887606775277108338467400955548807131308864215176173245509518709940045055978176144651960592811196641891552366339115973748129585840582066691610215186726158989918240174012235612209528531027041145081037508942353080607579635183448988601212543670520550247622810435004651496388012633409157144933754346830141142684467743880193924184840281892474013975996023973521532994069000681275398143351990504064492788170050448933174819906979738335962510374948241632958470671598658163862141886624719889614810923868104562521212034039787139358237935554825787907954069445049835341505339410326350957008721804859385842802358426708826467732571088062661860652160257707941977568518325146482016851950641611198322803671529217852670832740265177106776491257318395628859297068436678297897211907547346080036084490312226124735704872906624370638184539262723097015864553446554992100908749818484799774569974776173538091991048632574630842703152896083323907005872155803406201829157473907274029667764425829640716519868803746970236110497573450564691024008656651840279051299169809855387219439508006809967943817826374547345895954598723157637579414152479636541244990426993103383106613111128169197667813749161111900514199079137703829949809417100877526930801371554481477752181374648065865254562237355867631580307359201673346571967138099588835408029083955729132984962207554570067797845173086195733845874917498453242555789011586973517429404914116425592670309226792692322676961374059318491587156286684281701936755065741187599318058072572707634432942483835823683544631967420905600811620485083110296289712148527773558066754172898517763763805680165556927359493593043603009888071973747617625442506398374710711991773750131942767772580244803258380039798887773885793685332909567035168796246835913449675943214888775738343756861891504055149331656256499643899489747867937596495859375455481615291462377879938677760040609501312951392276642036305007341913949681194345082640632772554291824094893418591273338075749751954739904406848495092398201608029389213699342396036379669216840802508790665671753488862921266805807054117268006826329830557639852524329634020852740674822197316722220952133576867540443714859307214453825563631661743217526938646103682354652611462406743205395968768492206654787482777684813482630378509578193594531179050647723901154518056618629477379912796845437455738430331012311732777537086979526311915871979562629293623580010266258589681622234120526443537194272701475277036229793095887601287163756946945114632219465312237381649747732407249636337403350479013008081451514846887831877239499856279448246008296404126445010325989801605151995190461368642660184831933131798293871871415089076486275223894101938326524854420430986391212583385582861761760360839171645919213623122205333057747732542129433444432922501977013693681332769471918500686873462146724986515937716804073427905673957959207738122704534218509566311539817974098190099426211538455305773074257094737644506597643501714969066387654271266971987045759574922924985307301815777575623525282188731553689545624395302151575167200573686637319948692976486437682655189649124846748011905697593066677204307653288932704158967126510988414384752270434790547777249632615221722400310551130730545581376851500774386908774668067477533775219189430637698207664535482082554077554192988936526471735054234530226200259901099912298664267180806394751440205446524891175684223817009609528260870082212592209107365723056829904333271291481886656783920396872788700997873246247612045704320063587141986265633027600070758617129689902019046242525528475881019094201541388870791037069729851235304391815445721520856580436695644963856793051965439427433728578674140725802746812902291711896416310509409242832173758668625941733087815163761922781105717313492931315284133345060627075569281744704202020882326482723464846407572906061878387404247005681767560908882404800575122349187015280969630756358565088168960045222939362592982313595689962054204910597315511612277890724923079356741601563606044295310266913050660320657111131534565055051081737205150941205252019135223274469996783817668647619274702763008801938099750785372112093450569895607581608084166835657143164322551864677985276342025307175339671586167792879397520402275154067554501163139687317730173404931084806830903307550516298240671022696939569240225476321877696991280876470966204128140388315891283268572967997514255223094289584270608491795792220069017284611958293439451897629279034352612256503158999838572077361340326406065394659611098152520124204053895465896497161978465310832765594435085269724950371267753607449289388370991745889008394122852244860090931442588104939041294145323805844208514327522861824684681092796501405541749636604023403004442495054389419453084120613157630953609091853479904810881610639413298644655590227701335339432244323504862225264343532930561767179925151365509779529017808489247496638504598079792420979831577433591109738266736052993772243046938285496968448808813243696661187890478014736609463904971649510534990967071300639540801238908467571799504156028581787930443099316549125442923790621979875876449031931177747290963633770731952877715035547728164202141434192550667361929963011598529744109183064843761961934420639905631602484480419466544990911577048134816868702038350189601150617428447996016205121452648288096105069997299394652418517743709680963759391422256091495535069974149028808151396791049639536858973222782397878659104257158247649561533716711587341682413229780608599899695114019408056630949855222176689866103555174717324413172281081303268535016497307817036207979357074447863265461496053358937629841559146487957988040006229053739816479503666767841724309060266045268257571795583122325231639733051504800281932298671312969070642195271995362973004580313017102105092262373554092638110634919513691014475109111724051700843507267980026254581792564390010266549687411137299806018816821345569303211836819557795768223476907444944345515210741829363971932506144080720259590334699955338452811996563621669990664457791857285612588638606660172093038016603493542735237593911118208471834949202746325909184901751278170260683909644698061962870756041762978499593316871109874903175555298278686457557933005624623469212563968191752404987022462503247412131781447075843268643797151714278998272145840747786276820592922059267961476565289297223622406501267749869582732054087165158442715486149997826500948796127565663741191777545151159001790600200482733120195335573952238433692008604767426169409668275263420232931646184310014603591277439976430974557407109069050632232113214805203787954092318170523065013927843721600952514307920877660528626394182722433556173915463720741079274690618748742964270576323692867145077471266135599970499987852469021785849766612870325142959972402301369038530584866569333828232271956376286394189794131806037915023200632107211117661737324538508966633617572380794804429041826466126764161150900547433908948348531099867743986305398615833366084753782659676244930006618863301781465350764983309928021612686038530084011457900985100621725322795306088496689141134398948582791375927967461475290876385831725003565989089705550300078976669267220596342121739386234060628820263330604269092783425361724676655266634814664176738378929442139514753101024122107437157996183837920169986925255623838075039196728165719868466363523810862320387676062498181309375922030910247827391546502027568940651036494424908137053733665390224443148947218779939267461626837074535732200876326938772511574293591856727794503688240494765672788612032527449579054924461073704381683303764641799436900178084215094584693640133529696543420845274583322391721472670128083261226294169211479044464232192087743208753366413252302420852606033546159382712976292783021760776432789712620864828233317659981385331589126971528390439115611279792692619787876548058342215170452318726642907769726359418835155084565973069913330043108123417350833186721447031636110155823882926799365295974876533415733222298218353806497759175716339272234413308951326791489550823871800127949743634188107627005016201398296754554784444593534755951460391580999718567758185866204098380859950223828061150645821712010510046856420039289869758154282828472486038402534342814479376898472036125042068569870154506605564475803010422075325396114325873661665086668979622597398710288461263918070054938345583068384415588706570053756066861405084450130291877059518253594180866469074446651404261656352546075663844329759880522246028048794174233227280182729699844373241760335600196523504204145992917514697853075361174734397787698627678856000103096816082491654812588265067846083048792458131648703403122352635540518100504854486667798331880200689230694429211146551535724767489322039721650324611520749983767151047693216464894022068874268838958318227253223662647750913587107778892040830653909334108023771680304285380838235379595207091254906437334789013326816110715073038585705224861804421040509407642942070856821741455077803351668435375908362235757042762270196053866912901467737196085707238193324329571978854214332233089802106980866220814554149644235526611573287632900546152965431060553471744235263036802952218533329298406951891398807139689931857616904858934423294738459239522707938395873913108279580372180087188629222879990553732672367480079173332809159080783059521321446158465861782419585061465166189854575887135870710175571880581602923789479473122136119700352615054380476947851927415015185235319121489212391204526636055904261098697166641478296125943003884729080258706731027559098735214510210918652051638968970890100420768003560205254551343185408054652447753822555061335120553576637998386996475260695303092540586102612653726118254689554337654884685786438104809826611408997738828396499376416544955713412171555477692568958248841514949484813521927204407625413989377886218290554251796413455528981906027900170462574427309091131121777364857103340173548698561247362569305262666479860944105504849641325870230569058311132631847071574918335939302303338067235683859552009879293156917569160041909785067777244583239940347356213972147877124366162745978581459099516327839552539128030744845642156224243234800111262772023450010662904710956828283897629499029350391401574020142079256246881547351885347650302062577918849818037261025683878806214275631117585658931678403901604151725293581593249280150307857121284983048295777303171271240879445799644137773052047168036349557188116228243654712968626088575594392306962413862063342244110458956828783393595931120062017605276639066943746109242308230360549280077152500850360241457990613194490025642574020129825055589503049178992699060425246528369499627824923626864419283729907144768995102929702710808056147255939086440180895014028320968566435787969852650150599053851425127432776649343187362302518437667984331014808257769234826611057581125510156800509255302919694030307908040393277850876453240249264552783813742962504276932535778984245047918479294378081222651102446468628833616226864893287677852551797930728101278680627992998036074403957950120988602590948934070054365444805474426911811905234879753640874739121445837921125808987431530526022632867922491185377944404786092859534261344501776989205995166043874061302948434186481778555078896492257302204184356620309203043437833509334761650564707998561876477610615042975857452925288035246331522682590305119975331084293760864259876429049839171002339848968822459732646365089004373114892723694339524281724864791653639131085724446481138032729458791459956568043865807573043650234816871897555514810098820645476365938256674577619187437476083710646390111501157071784000429119700825873276129385994948250406070059659349409439688102653907601834215676892791745358870080496097090354918749713033217750460993155635757952044261535821887168176624730888858423353938010629385318863537112551217319063273808322213721192113583504844476221656255684731679051092615723741700676198289653728372583756616956685840257326720454872991813147251511791975332147467213633133383951091596616572673615163269695768686790498331122451230655454761796204102506974728822502850170233644781135964851733840461129464933541698756987276614336315599155277222438706395375550139687771617775792936690656614121236855022715962540823440971866183961684928366250094080374639599282157626340740799909173281023990748151571182282404759453938009813583410576012649074827070048631716883249735264325746033779350032479735796169479871052159726943478699095074506702700455113418912627208533039373162447214462608970776181075188613112989101468495854529890015346316541740796651784161690377270096073063063309449168077467683636488395695968584970327198145600954641006077925047532812871716794995622235731674020132122213700277962664812466569407624491255358282356162189783214806926113941092473400600075858359114303221970028332003644613691831707605103062658060417079380494945384403485127801679770943306121979395686485343219033474654175912898897546435642720046164826247345196746864690976537826287976341973045041375598090183342634940643877121440031617823292232291436444633047523825470823018760127436533649035621362895806959184839530160256862943806404283050503948327811589399382923062340198028558443221640075163165301427263118821211144878529475996423809852409068294867245026944955899620426432803339609172729329691155988453610604177365694894844921870281314935334859685529991875490702376968323816776793080204113970108625639254279207411104523614728206695439914267724928809467349648264475873338441177463311977329464205209131693529691532678658810419014783774916033004307812384712026708971157164842874546247444650057911809516445837814378826227665187665157885558090358582521015946925650967565667652850032738603940074703020708217724366911922639346939414046011943194567068801834196831560133931893370790417568142621285004689643097644548617945832719563040158777759988505796123462559878548795974960036796299297187462623822455222866977400368100048082988523694660533077420567922723872143312158654025532768903073563865202094101000753737828292946065211621873084296049686517255623054531662505313534819628782631206267960086209447730609001493356928654375531103289017177608090956901760332907775419065127482266529037157679523956037145844905043007566718641133550277326009945450541519413797166351565940319337156440649120389059315778825352571994764571380999077254880133908467480675120350352133014674983428975982884269113206636687564031487537845654272734792561877038035523659617209346919472627730316782625803941547899462979276954262471735648873738481087437066714287763808581640505476810653891306065509762405204266206482286791795059612602892375358901371179917820963760067160936486281032752542213021115843472246207643792727958394978936511995014984619706334093655144940529315763913101797560866072317236469366658364387675829197227978146169033276876378346071230847891044726158374156843694355878827184202665974647921970726899687027840152873103791502555441870265101603530761945841337036880568716224312298051739381772415837529615408743776841249885006066370001792788028198681665188115583553877688710673483703823676839233881722686411280642156127429516843404903891614079434617073202219762734368586647972766891375286927795684301352619343729816927618398939981025232140214901290860029071920256153366257463426749347894210234409990062476460894675419895997036811584789528086846031260719957484374208006292753431870995221164328522207595822319693477105099114992824677050324479747596670647895034668755995588640483677631442067579488926741789579040118289427973393061668371923247674742640278742097057962138297449596987636113768149365876359005753763255398838755870869692056838086119811941794071140705640987842479687078184598019934545735514322754551532399521349976043121012005147209005739544091475506373144865925478401284285867496848828624809259584526367007263785362594311814874339480615775998617154840091827844330032883661563813328750158916051229875446744627850047031184541739806842755660431003956792645128134492165896091769108069192837847769771233178156102883491775353038782501974948080662440868117653681847567148635191423189063893464985734043485111671604999839752977997206742551490073611702737030616496104549835880492193181437080912335378222578594228329349651117597844208488377478228313651012847450365123180221161971181247988093352793245190511891658810103546709318089980322652950677808331991469975895889770549898601268901628757501873137368479785647816323074811760913216040919399425321254377303994880340453583402614213916902403294078982087817980292711818779799297318096562856823715000875088144330984834588513925362342151586117154144467527069196579999125862034054391853838019859697070080254881782194992210833393875520950299210942644607770508559145579031212174257771395089567339694542807442262436652786498638085014701071092092816303466947039191498368158151285676201485537280384804636585341877590069174221727577434580834754051948821910310545675261482894820404952552545146876090074951956288896905710376734701783044305504129013156488138670289746213904931690689497705093462442645808956166336476919378911313330121054986011704580198107164663953673737653492532753172002174346108417612629751859478215304242483621181623936698232671485955211483368765606760860932852114170341674013034011691408021839032926183659819196548017252042818602553703275664191144958554102308445575515972992550288703108557988875960696381075089484966469249820585895986277561871802128270187003303330148866029620925610837907142570685218911449822287157917638075367588206617876569781078740617670124311756394333123949799483466898589099603674890754451685456796301020830646188480233390889029127559471787609895365309207930580858773529163233805210572328354025468726724408212430638610850189624559908729338572485239482123786705854512913098237909799646154471265300269861923832567255623547576496305576031717334226053303575316636356954784497111628034550185733591155978103572709112707530830949810711854269649530677207068834240931016322657824725846478313046508639447573892411303904677402892955715324127770032156083015179745003775291594051923755359706273666340614789366738516316327786967454871760408370497557048706692926753433391793350462213096433017533844171170096248719140280230809550971713477611862918679591988732871363984480812214919840978666856425214706642516927903239210960886887471134404549790194812761257067576737691788399696336067889325769575588511613271127795140964047002833019212696794915649039954301179600579793546894517532764515886012253477834183212083715538952065778325724889379908290967794613576347735517952206799767889909530205335260273869603968915430541222987007079682801994016988202116516482011896267433279608750860504533232074293369571978610826475749923230498405545990615854678280966497612079905300657686568639278326224579352858558113837285220128487605993667322746165751768131854907141625236290284585545955526677718088707194261697339107419749782014880615074103476576650406703286629544807587059247887381354520752878974875400392315424689342105670349140729517211050416836809484932510087799446902038516460362869264742949902007251812813380153957985652864619633207638461478127290451839850524681840668715022803551939745225925087476419923470342599071562032987635266803236917096552869648212125163035856243396228466401482628274220720663297511144520226011856775089930974048896924250514605005126055093916864669753590558571323935613175558298190337851476282827883126877256522612626002926437931377457181483231354958165814105150575481369477938273380731726095673956568634418670981565780557309264275370826063921273357538262511526205328266806204761892611935145840063052413747819832685507365378627066421015983137422299447393083570694372094959404398395689774004316640920391186770784044078565321224312658450490963905291325117659946168890917283100019823895656510114858417504119557017928270388654481347390839891062950706939307614337521266662492063303483369134008496788570906639804926398250916574191465253693652666658383551397491457583331274506638667000229829735665224453843721564686790457437463027079358911190419251912539097271015654858848957230228587718419878669452761714170224112778617226992114592458002972902494083438042434410417864818493423294021995607442760958890853870692841125230635490964223481629939072012107164932470845766753268529524646164046709156960229340131885855157036893497189624224647773132974447338760244106044500906155526432157391989910946547256018231275696526929093779466035023886268283379606212347932827418553489919367743128785558982892909886776679089223518333981232629045700025447900093196906899545455308053132321942115360315881094187544205893007720474095265839114199408438394616864938200080372975875085690338094069842000241035411673726923419310927721148467581484371565593876127599474456026442742226908429341608922540591818093553441690142147202309124685991948299751023899370811790716260974981094389746907208365275196563718483743957905001403622815961517483943632724527062828179323720002699048877689588407272845951041360452747248594901684591764631485726992223640656109644774846757881800316074707702630031906650910127743276070535540403694384964025168406836910279330480274554529980856107089383606741610073650717764713363281244986624054372968250905812522910334644223407362235647718341403602333878478110839305891534138344784360680819549236326698359343739283689936338416041430722156567771767301431449797755304181826159128422816178299970227189849061286020333125711590565072548614018345037974521958524814849040048203432638249781858836727835244494506837570593373602586095913551262924453127076091839057441970812144379961504560741334360644362078936661514959292968191138672690280703787071479202310819334315822071911382024392582500733452430235332682798005832021991282375782171885206632815941481644435110506476181270154769821858545595883275466695586972756030980852084960333617498408691346055447189621662483034235510379600250676201804649024691421235268884484816276926821693428638317264273058514988356822756052531814237468888826290213919192171218213378563415738601249387617479488627538588602872159521406809403873678223249917539923646097373911766192941441656214114349113632428461669651238786024589918043017776684451658534310943004624400084854913491964347222755699363890815275734335358570194231139862470331439797078696558687776306763046238781800146263016572134183836971882466058200359116117541198681750631500372101787665927577256153233607530989959992001073441657872102596855926961278268772343509201612639114045683703326525684189282136742025977415955969303816957088281485579768274758517036214032536723795872615579636575788314067068423670581736575081872251997480613416242992220689009802617356096456179908412426361939364290242484333602053680795293163173721878693110256847224928579194439804763901794320014404366810146106056615311022853030226228226519484653858582473060425348242644911036908749950905990780924879493816189914399300481771871368796641269882845538065529529529458891196820064935915105471039923892392817628052757471644835023751245505477918862084900266691751906853661281899433631761569645410326518331926898550574774112463271438095272054994888585137495249277626473613145354197429675752160637054554507555188066370110884200147362645418830917103999035479822312573639783508748629941717409169341316029119507893371871209401802528309398413604150242219051459198984260120188268424806806800608230738223387433965654141023632696170294745413744156024479180740800029208901945214975534017539856832041430551592513137199489113284265741735246699117825807750473517502487149319853124480062937265824560544953517696039382037591105427736290797273698213604349164175822366420757368537113694638950504095052339995075675517367810369532147538832962634682907184457200552631857638006832496203639176595344374451715411937770499188000705955729294940491411514445466837255604254174034801101293994823456996625490324723241609569100968373535675007492373232513503741738969198347074703407720008182814222800036165764060581330394988791509806546079208587498281367699450440095946998499794905332793885075645792584057494239288996806648522307179255699807028982642365652502929668755954066179179602303853839073751624201967837332727684871897764758641935033130420833916049903814612402320779933219591159343210402794851286938959633880387170121862415917093378988678776250661279460649668364216332406629061772076053506052723765843075056188568151840886710432398981877438556643320710464434363608474117592875360083956534494078247978553398850390124891309780383144334834384549932452468049261053565504822825999509113184863731904595561501084648443177677852815791044608488098560998749235055307142455893233804131526946086716509679732484261020148199735706763116327554813193462607530679410339293226865492600852840350649943042000610476320086094025042030873669503479944945602897912722497871958185951353015639674468813887080550823163677577747571225183900862340812421246852832328591784571772752770017973560487190987254836463212697370636791434702677219052375934703088925018730854685973906553501016673831035476697824186180004005434315783842733435879332631526444519869049053933509423284060708307803466659014609159301805283193744900676747864720414523129496691912352389812148047269443246414367660546147834238391693060489188943698911328717130629671815277420530827836425936680979166965285245199948050550773203416318529669594831592960843300640245703358570332186565076285790240660793020910113440242051758120635521414543853188242221209547582553981688220820252573888322936314745139439355035704862659356029075812713950902610677806249625918997531793057248318025478041080161239338684135030848816160883521559146659295446271705249002956062182330377788696447302489655063289090478010397062221508686204981102131615928895001121073327344734462715734301758679805918410119161675116031679537479164877253537132571709957274292726148548841433543766151398681536185981509674106590235712349285030607440487420995331133526277046429722982353236800367617378370822050203423033640347774343808196187294961650051885808369624923305203218665117078744432997862908303775537533607393646852902388697997979238061370743110330228150302268003856993917936392460356517589330404947746788988191597417276925409321133005620066990912209930938294730236858704412171845894815702835118255928315451084465717264377058272754852427498534307216719508134093498979620584295586480523333041162916248887518090953704622656326173619341116297508417501410511212772016861812726135802586966535953136713872699859386826772590614970060727390078970325678482280959064807394143138184521957415020350024893364365063229883980009056065206693980573784120451456841969984861036179326295286339960707658933907524556714759197528043817280006080609300164644332650893223968259554038863791459542103785692588916448702968085327337911475366177296444697228177722343053436129021197135756789128042263175013418092714217330655678637238909935049323708402826882281225014614059242484781140679666327644109261380006071002366056991856833493427852902797557958451383260632741255043949597817083974334481883709998715795304870119705954912454897702622942122039060807594920380876922383051612411662759114593573475602690532746103594261213708291610543691467331877050422786056242236924102548795976870705580047651875724012866914218270889064582780771910630130945237574279624345801109046046567151573158345029027391232094802851032446497341921744531753643162924337956317332975363024443344126469014092220705544019117587216302495147576751359801684018203929223465157463747160902346710937879000129385062482805361694612459063414948672242358758952662685208471869048754615054574960918840336120180132381233125989068664407436138951232671545695823195180371327206946754130692996005278746555734854506672512810055388650391020597671363384205263183191463196707710122491462167776523279629406853705229059415238303967203414200984046935959268944810673118384035860177831506182656627327268157678531926210752937523011270611361575109262950977944799645537040195380229119372403707886785150724740464131985523985572884371532103249996929718605936154081585112733350579269362665488413815573177471910525681594325504627524738022708367806220979916162722137570844002729912297868687333418462796969037976029708398290737856865003296897233194519377218038608758150396294763419125981308755476339217421017084528046192066172824098177920943154633533321008050837045445810770840146106361578251599882618202551159432744245634175727843853508688568321787839378742377561033087216495071941929499323660728608704337151690026826343717645588016939333831280057277153583058047192370401885065247514709248527572269810616555692933993565208609831839904183514154722628041508170166308728281064575578424252898209355722292017799518967171476893396484788071911123266254061241268463779026607343833504318318069396004054291440539036939618272003741171405225063822606564812903887942085246588342497548984315272609390124164196116486443986863737833832078962440154195292922507293519434570718411880744460819329249627862586285855780399141963180934855881318021062475359082525887468157506815066801557623430445735633396028742829662127604444586024374195224450825830955946539566371918826837060729034610204930055856145404999106691989322730963878637362875984957879646669357246337210179500244626812916873770125333450527606496641391316579003614874495166027244743262598654434425849460343322007784913961957179653657796873412409915832625169125491174884674806291690997738141419046457258127195776229409552828903298655205503352561810262596793855041991832474466268381641628882158123338332238032018584920514762025834396745812090484339099677999368757715508290119885770342922782155489930938564262050577410597716484911237167151719753159421628241975958098831645527291375694297460820673334485745153325084945614499745001408956527682228757566927721530575505674797637046341859025496767371648720431908833438978468108946825394871248187528857376575406175803609983135123431441111983150208907021531257003730224724674347432225892110541827374415069586069535665091992921225421789580455303286014440650456920492799088349542046536361197171713215824202692444387405131505959549746830134721507724939040382240353850735437968015340519292346365050325960262555428191031767671692952646612097706649302618710524477235889819508297868664740475297979952118856832922099367135168087438563867235919311742879934813603570646194388466516323449955346312465004052592068353778969279594580523431612573368741552924938088185874778434629511770657446434736450827418567768533231984253337748895843541809299571577724847715845070011395685991518030717215977090162066567306070617220396552399177321000109015609967818966062796075794506828380966205358543614749833675336832761861563360188313335321775109470068128317359234238392636067569662926192061100947242984913788597720470996998380289162543211745670465449812669832345402883670997358836802393054631424623645472609072117095895944166482719764100869943580067334457120641547189099142746878653927162136283329709584335041618454816053822541554446988136530767110917335791166557371480711965527656123643254527208353133895796354357241514895371027713630573714089428894505073597680875790565319084964663737207700345114019081505305506420687346585178537451360565999169619840905548324366317600935450200767007075265192734397721466970772120893040987404516140912608020461887315533928910620534304373789408555635774338660044079018612401166012458329056884843033771821010860263655232419667129534103009252443322963782456155735589896560567220884153974626353706968665231905147795687967871424856431512940089835515282872574036405086165000267158368352821278555293546199948134815437279984057031383999263944472280601430279178211885641983455521152278168912138005269625756962850056290556660101789702529647746906349578536096156140821837578005637206653059756411537859652981243423698165428570275965370235846746492556585971311278631846266285369880716004076750794365658742991509034364550238882339231310849853810413979618281634489505567792192965771464351274564010121531815630641178739011447153969012689401100408111495064937103019612265510602160182630207168092930119718612909011897872171728391365079463537638126748624317269865747956520086563893282443613175149031907403176837980112042979332598750477146880127617614441300847151347178110886147550146114446078731855415368864987244029710296299321057507801831457470080318968388810367611386229473308392485850008531228111070843017273278586792047246904877755511965708137364933786916572965419407881032885814215366429795271201144187308208758610022330364015508552342487344969970808220636191090220079568414042683511285023077536047825168313967472715181333019685097422183896615822423620079585485950119757186383151163121972347022742385106875792130555040602287062129886868632740578689259282528318766609981657476547127790703079942841694620418883622285364074557255614549055978189863111822062456507998948799343672456605766477631720341520663163658843486157971668523795265747808602939842973978753183526987945957807578972057900819550197657176851879757559872285385659266058266947018399913396021525571375426360138631426271903617634078798449131855509883407265641510459563010810483254914771104492615905616058072748165360755014541054880674443978647045623043549824700862352882110952555899427065999882236879754760840154167098834288518441003831290898517361118288677683054647251153429169808329790303226133054989926870471214003020907467757243133502499992579212552968322618355128612853757822978940086567260110591271016014195621889919051046755920741110920079248069037987127992368559148709369367706386653103553641759432047850326108041379707525073356075158856002934673569612401356414903112746213764298656338458167877747005772160487564273463534580952714091398441250618760209792758582689567647125095955856033026032199858915310786855484031834403205539844336570869801763082612504935616771136972289310206717092049037689631284241246734708497244507752288882788531474036905504284991291335087626300376976766379524973827064249336105148434826804733520351612024816152667353035295275930190958303235606804472952142816261432170648636080646769881805742674237089035370115107422436503395231808298453016269797108470761576236633599260455961317495877814618622182119495148256660429594630991694880681506366155753400497173253553823021867557833791376162902353375485476360172933668846056129742863903892787801432239970562120398257027136474700621657236385306823658222462937004126085256571233801334131256418362206111397056512305665278178815234580483671557311596063191801853465586796016306498333766423828802608377931378334489795446070943013799371627753264528801143249868878452979543562728933793855227381408744068607147578204581130978128659454210054301370239996416382558613001038455261035650668210446745738532811422380218521966453316689823107824926591173091020338366583403815168528580455537428898610244462868384748862997681393001072857475705783737612256038604884352774900060847754028869107436553660635213936959644363005317254265198217940618802665912400330841959301209156397036494794733117008315655828512191793926350038096777735415907416849820844810516636133914215891247782076371976739109329022852482757304947558348594624239716592708935226745202662844120927441862240257587558517040230396229261111643033915999998843819316867817436544805883149641346419415916468547881509410582276547467135715386896149831618110394612849817803107758944439389358290140827955748993099755452602909735369391780734358677191784120396253785547733502670664951994889031425714658286439238447447738203800917449477378949961596385488458867336583145655918282369654915511579726153665423961710054936259200474110965399127078683140849732787506080576217057418939080084633398832934875556099358778462977115922266158200574748412229561755731439567721546440489622901143969807974828684569950594165401142114677011867325514184526898721435662404243446928088967865360839377564508975802429099374479694954366116796230252328673377825031283873907451840102465495729497703730266061457528048886210824223449178669589597737659611446063190605780472992154601611010255006905069006978237131726016717389156965288202526538555995401708319290961172489269420517771576886079550504099956918506438750270558638694326428304937015377055889973564681853266953817767961382057913995392307520597455476006005895864567995993476026916566308552920851785097285145624373579346368421077156888967046011152901078724924759290739988983497029794241790967979939978076586169009376634517133944158985039315322964432534411660852607547698117884652786907507780280571258921467150743664024784985795758469790633243036667360521684298706362800032471594311617657586636013658940666344125940959065778655600684211215284153399923689655868928210983287722785644474948997597291855581624997607386349982722608425562767311115672101173090763406236887742931839424226499175771829924046598888093836817413093557067191077623763189005072898874567723377315373721432942344499993450315062069379280494886806934723719557785095510376415390646095714811824256991439375050327500455918976070440238603345203523695099150109943423251807623930707037879319128296369316865969730135931011034342115819946046019696680700892689192712274217351791424118921748415524530859575682495615496497547030037257988278969694268437802722585249579056076144356453513328129208597073909657461661020478587228489091311090402603349019097388256106774111654811182528520948376547229019781761558617374478538477950029963998696149614196326009182630108806254352153998936551347295317610619872383612526052971956702111504239487113910151040653183165691010591739075671556871257041213548836637078063494980672095424902857638665602541383622292522181786101179677187929675169503085105590371245763514414907033371761442759368859133437831064542333265302380321705182450571963973506702999840770499788929473857067817617458238763049725598138334474796309253256077529882423489399779163020532369061720564071420390943856982733742403764962998311920429556742412562264873836362440872686456784592305019636186098947151860122811565555577957707747552007810947585353820592935344175249351555862695356393240056378892062110096912825754931483260223995396580806100364265982933039744824811732465005647981096884110419156915866738635591539207627699658773830607190343419264244695410394972697381832943210645577878669324241539566793737154729958359107631168336328037868188654029767401716457338672305940220265083954703041023339856284077403050445104303442775702534409416993088737975213731285407620794427562391199176437722779432966372919558012087560083360693703599699274718208415725062789493185030878156995471367889907974296109278191801401011687160132636680029953876548525396231713346746077885552412220294127964427006025807419519940292688000603606166176411513939119003903873931898711368796199585024133245142146277858257270049564674426926714006949909338864900592122666220638405295668163497507263793505281409364207868123186998395485210888272180852629792921768444946722578221517875382723816178548336508531723135959997017703953951793085923751845847897930214257783954238970536008716225415061667464881389099681450694937967821977052186436583926702821082774916316418710610161926084334045579301026438856851589694378707160503430651974042602763223469064131000136025714482139292243896287599695074959131321428972200651656588836857908006917864333579733097528077599684996138413970183107687805471782658289352765469791752106976653951059441611101069884539439921610759020312311357899363905189605311336348714631035499270067030568484242612729476607999784121703056110052177596339108933568362200982078412175459925633944533957049694056764803532057678183071592064187337963339703373262827404531934954311104240837006534320081091449225997276028056255495070252171825708229134087571003125234875501885069764704617004113105505644601298933572943554314316861012516647143006208507539005990550636902072569793852949889055849468316759608148974454232953040587959436988991433010786272012015796531423869524218196918012830736870834708738552372818792523776472739159112518734547677108541813342785797721135821454769989924400569748579335448503514608007861625870912315719284360654294821688189539011194883609312282448766896406691362968317128991418819323988804647879141193258295961058932091324449694393844522428932282489005263996426607486242746352872338682002417532964118510057824207747125630961683072355668557689741719112927822234792355535712200442872571604140912775764040211660238321847098594645452003068018334855694268411830162671957601886407756911253317930889041524528127126128519725016113109054294123622747064954522512327707316014255531247418037365278133021771502533693635663971611132496013278594046237994115732217546442707513033914953906566593373327505846470907216062189890369092084532453777417785075929800054437885167777362700185276757419541175912013841902336773164689242337575623257881520909581384573699968845085480653265077774140104658058245862456361018728827692181557240406526285997844807833341490011636862960716252349866041464021806822834580019750156639120887235188867446031327086150706693776713878835886821132111213270878521494408195641627661778127930931325427465018207128944167941816097714212945617768242177567878821459865412570861591445718363031942289915474965702489913113987520225073257576466381140867981614961983207057577831061391690798523884075938723620359707049101431055670802171998970223220395467817203570888904013011670082937862531390319219963722095521312634266076151611082316354473968096502274094698463038567825530485597982819350753439997867933510105594025942851180837415309226380319998673046229471833376971707869782710773420788223900787051455710613897668683743741220730358988185375812268395697148121908082338307564537253212504662287199231182432830018962445517717986095120161840960245986965954089858001633785167620892166338285144872664834405059298843690926101878390156550719555873549229563813792340877043150355764261240334237292688878202975987735447721917280377088487702250692013165691592845155589581329535587703396437435722172642720008306504586757969266290113892892334637485190377456869076530963534812738109049151521946083591076503198755487632723700807226423847177396087044290326581648806784050530225990808108393442502324811573227699032466911561082613218246420157077696940133182730042704432934815910478040425766562088162502458932540074521424533305816452172326150548745119317482672647814206833730758153764628081967906313407421214354153124303145197275980615681419582774557895386924193715189585199525942703080988659378691506105289261163015111488910419622836685159117681767275745375546683507121047076508440014612548219791017703412397303194528294308609717558266708179624623216263265071648581562551280919242373699795149715325563116307650881875434729539432417532264293201652136213733311132638814846977536976238757577259411658140832286873116798005855308759082686229136564422377729309728787892947617299769302066010186335407251573857480475463903233684829056527551381422816329551545765040500824570021506447925505986339876205408935299086210381152937367052139799289744763876129535570304195264441159988049523338208958639237113916090788729804648418571828942932417925461485214414465765769704998616341624462145039568306379073827791115591107204714623994236025707111278343071465087496529314574539060524161659056502817886645715222321537602190580008955381613540172112498573874925153095028374631887690680683724934321253837214403404080318481240672365315041369930168985978469373225995002116361247344124065469998425238310946304434128003635033716309039952475106566325315981561786183666706619831596256038525292414059824920052327368849183917483419191831641248031424058877799458376454321262275569175943393734177593263422665522028772371824093748801568089103176324189546511266055196282659102823743804795008403544033324688505178825482135550737528260068814659853810979380393144627667371118291770785585550711514436826396230504660427692678060077267537212338832682405402142400087842018012914552397552663257532707776980236947701061026738856145529497093321880588694644050315696378124849452042157665700345338094935718965131060579665265642258786892556363721406914082063968790585957715254217900975758908399050338110789135675877900092034822561666913118056716339406850041144247102293863665538762857985517206071722358101926123248904722310794610824493892151567785694614317484689456967056205404232571546931309588042871906806995409845080474891345928837006383722868498897584869381297637512817568029621871264594379004412836175620152538158966775969959930898520759538097031069031983637080101294773243169453400063638168336087981517452371135012536861456818332714683744820635524152954255257795853125831925516276064134696748406112527362124882634127936821605575945922350748977539340898242953467058030032358733383297925152242195113372504612737696447542169271789563336942339363409312216421983090163197664179353900564912377674121179220895968360082113219622919953779019016096194784100082613965925884157320380837143761037326003373296619652546985229591343460881613991385991332687603645812037056952780663646884554761341717034290848958003419326930657578002217257130429324582115617925320023251384581077210579832049168136431031640151249440885915865203856222793585995270952728851524291022675222009577058437420457719574958992208581821431724767191795567765322892323437764517946167740957279769066495101091955059807325035728714789854768043858429162733025008092019555178507025992735997917251783224987785839883279118664993598439690349236235949355415540846401879593809334885361335140824921949170418523151436964522010989053287394122835839947812091633297548098728461310685418833169226869404648164723934888727859197414869524106347823990590240253655271188760074473227131972914025402196067187625734431266669884306530663184553876700475704067164554706343688815193517519295052597375544974620910667242769209631518153355599218705108277379495472149496722799916670372684090175166995386758730398816307169086413929524960621496744876262212330473812352436690390874980385732329854533875263990504369824266324190278496410492209772075189489673705367053122815441764471044841778047933024299109098622659895933933623701312776823084612437356720771680895920646080112303503945912188090297619622829206235659401336021494414811931032202535814236759641176602418753957064393547291416167876483907888045903501656418796648321596708095720943360034472962989595927625791285557452964179242225049077649890015532123640906953384168278647201608375759203470593650209507909511986796942728584327083072258302214988133487021253088421129261731512333802435663392353220134390685620019210022002197382368201807188795633375049420414140303392239043672632900972232442647600838829466980347245615037196654336298538700403071125454853840125105235087579966165605837003260169111096304224344105521598934509315718891238882407770059852521822214489121561409320351189618491745913758224824165531311473266013568832843564625958948485703950708581959749146845790552840027712458321033312466277759500832186736925955771969392422783388841830505385621131897989470961558867428474776736164394778497806405463523837487470278620562292279436089050050177554464967369723161449810629750464352704765172726032256213928834466380982091101052357377409965006104031379816221213659172176744702085997374796902088736015128935234327824575176825662332512008529006454873609264787305678517587215398174486181069818163644255277311757904014018743508449122657220329486370427994541831284460279913332662312225189093010353146395969357460346280776049977756966720568293511855336838332340610637485253713973942771430256084709246856700702171948806654152688669856224222499444069928658273496261545376684864151179586472357450737804815428227454092698143224427729891657790307612139385921257549785783781464190371157821044369720064832131839863428633496839736201422377936450436902296625718677528220525453093506753443060339732688227002261717000738344287913283478832602536268340546802501161694203156004147749199339681903340122515042641599275012945996889470037088481771215262303036376210249819332495147214412513169995762704722343955728373372952089604337695356602606267215737189517451636439903535354262884887712130677774780183502528658214282116337775995265685524886625932391317221096476102837360007948309355777444254236874323495376484505668671458519316054760549365123089083960827103867952079743921831866561448233262486960510641748849738092512528211504985952134992700909580932811184833929100335948675499868201905330246394111066711270931388636974053239356989880776798344848839219801799950854688131345633076083233226330000767215754587530805693063633043705664289007268545488827181171638789754175782860364587281401936181223524477600979085593213436091132673911522074094034156168776160036568130656339483181682256763392418439612374143515427802605106013124279906982313822322411705462975188160086830414667745757766807205953249421569442879994000054268046512841347458588527747422100387798809556339837156984111828099841710668097034443445349747172651157616191329523426599681452357092820654152618483975962340785015405266756979721910542551562504995013937185266808063264010560822685310545625792515350366164488382064180505501543327517450992676472152362936809042908994449273479638711369990444842365640916440730228108225313056791609489457774744422571293469278411384183271634131823887576969975741245138089677395731051273190161029619119066932888897545629054706137481229609746656599166582133215846836530733231163179201116277216155920897721934038108585571421882757800241399240553619126228389206605430832031798785590226772083997763328026153955860999385056819452419481839198027314716541735131440032231669247070888943387158307116840686248508945187200273264800486594507921860536788495262242621644869866826998040558861047085844726085315504929991105954346076249619402590525610378504199462651410715163083064652632755706327721265999109230443046847486613586825276430923123248942888845281761041598049916868262173760226200625078506655342723362306641335214355326162950686823107849407262254131022238129410586885130510649875032890651915166288177809032796500887828823115203815560807563980708593237031094643680104222113635762299817670250233582060000226372064523932542730934648803643409207482223862433135647007806647694180385246163966271546384454245225055773252323448199555607020055085314655170364855079507483027783908363670009420599821242200579388514561098974582692814635032988782427107214382491508331365729964619904819040053188508253075144076185865261269808250134697592279129777702441078610070886527258180634305908529412473123981972250129233721976454687902010584240899939639034730773405733049021385329305827448775906005616795094110841071312889648883643458623531230581829604168199610600009269632397992187922140060937253102083579508228004593238862332373393743538049734740688324346595908200855137101143933732676420908620417610150964377177794466845853476661111013368129095635931562247203131919155196849689176707040839091365453202281726510540825177154601594513629063977798405550418151058771597398938019136450443450131081999255165033853332296449989329427237224816391199939470512611652502873786224238107476983402613168220172029124965221275523422760509877785352377630858391124114696406828590018826003369966545332359605023796563457117402965928711871046387986514296478272791279822663808886197115347597191826427417113941844711530609468047524421574203215975869062624386587996180004207480439635791592557983387150560490941226660955213935331115167056567445117613285860893262502088017782840952940601612998832581318929021502850254870501244189146759653685316449030567867443025596144344399690189578998098745622129882055711414653924438651855753947505033486322372533356284683651839391243127157280409486722651293661684733820694086611047057444470333660357731860543722625580034712549201543574725743593153767914487508974070481252382550580119490378273272765295808208035007959860760472523061477187927821615929680969877682982369575682640634827706612785320665443863104385871604652622492700911247786648064762025455260675930286933747857480197197103980052252676026211525317679756161434177945142081587904480373454055554915011697372556004963254771878028561339256838924507473861782446592774608001662060307712407721124127567120201770869440060233655484262508577657646012431913841044509458996282451955453791032082015820532353731108749728569156824509869625188621893474029490773157886345919058914404711380295349921626969264057586342679627758664094508179361243196517205186983436865992981451736296690983690427207749738985266188744967219662858323111260305255482423935261059578947657193083566837983236525119699139507863167353669815898592857195843282019001454143785640998341252276620169154663580965706664577139231638256792606056874956982364813407497166059913031578592676382460337168629751916528147347677755580008378287366007905742186935764825771202527821318414941304980472686795289874570153330779139778389204819073806605976368376452722504393763311985893712918182633503137404145292339948324456647041500793799166572659037731803775561943442519682896876490607884600844817987556994822723976773488474442542348013057989921836453494403366518411212843389374245568632811126811070982763316681854152133728096724779706115179027011206091068344109628022412133763153607143712734027878074849995474822693487122157719865661173866948811070083642032697741080307995612555298349734267363446937232664332574675946054204679478942150273286088452071518633815783888506729891890880383026502454652683885955241504229605045630519642523478408018363435327743051428873385465731076191003021624923125722590419906686138771072693582162727597530363349620005003947273650704223933146139357071639781298558746384762166788635926438979109746171063875978315823174671731235945255011655868015324206809035252334172507381135554189619520294095071874088020369579986710455399354881972718246820475693150721951682634305613926355911921008142703589105273854445866025035520426917054925603459424192530391373177413710329994406478668002302623847967312116160415329186266097277310220871873661477005494870845424393823256685746474172892045284436472011623642571541945640904424344895997631368197010466097855023719227723140751454520773441444557441949804554056257916618833281816763092929498320804276747570741722129323581596313876769285807961293348677940944297508479363903104330411981047930184725520196998526356257975298629921640299363290721098505382708093396111430589815087584085736971101580053721516088751471816137645519296827739395427509715530181345849591395444610983561942425763609385558685922326067480154396846696393751833899218447865154547339819183076335122423744898854087917983725302070641375895233059583732875244917428749596435763310699602621525765972490329976647012969918445762975088475013595921685784119568332724365370884610103820045578529172381077753857181209737384234694987682894687898199020146550751290769355064352405630977873732292144032075181390852240610707804595604822990062591478931367728125129428193117592802711209483496278339670262869364998372663006248474856204027532233711580305688124536353148791526776876931258552057056078738795187707289266668571661671875578805621841082142075597551334933920896996674640674925150105421485390131768462513813376128334666154531288348720473471447771419037526201356894392859998555814060785947215889273422951523209192135866762028618029691684126834477656991749855180849895505473009087880885872960230184461504711750232654393738503678207517439366230495672710257555074482052440219871067910261572279209769161754514163774300905552086118379773453349427356060297141856508458021456753093321030250028830211081260763970121597378835295129240611492961963929288214333044565777960058315232977997144352931138553904359581536448287966323477141254314784504479380971446828279138798087603758257631148776061125515512288546599372996646849304497659205921869884815740150293505454468401315955654919415543539048700246985223641857783269706214177619514706361633138269235788630264621139612705563328773806671917714647604342555256193976644964326728172770043029173306030559376926170307980466074960287086375329699360995561065738138358970975099233904936176088841689779471525262322219252178584050955714249569234771550716749352542028424974529910973717031340827444166862323057162602634221559761308185726945381812856702158335203179052915475099368485934445351730143153761290213789666966806490335350342169751972313722275191401000879551527520380609623129316626510846315526554184766661676291630462541734768689330294378961281404941756134028115607497655864401369431656719868093481371173288127518962965493158045288714834278506662976748815519275589851338085938920741649536449380413940552943498464588698884818289487735593293458817646877748573986383172226692747947262523826362569237527718537407491056263902613891580842694715938156302840172649011010394186467431482874227293719985253706731954171594165055300436117791153885077987516670935849580990671690117384663322374839200668198850364100190910495224306647234291101199529535299910795056385024331669926420623830574891875093718217944102486556934479876457691862823046622529302071547900890774702943573707870064545220102933417521773009964129903312115629492685381245550598820413747214923947998716749767498064838366559616587419753640250844557685467976444312937571894115053743025304127719828361665531299360569553077093174106679159810151598571664989672394765066615868245580929744343066934758658785209369734889659151525847815875655092741199713525399113542446715447654751384317370097386324674990211672301445773809902381569018255623882399474546918554888328863935794950727002596892845206891558192790481829287791797417052002530543817419241521856879986086214607568674181586543909393870954852910147642993543936159321702325272588700545781247325293806557559216003914903035545826103983399782422685009581351138875454171427592352071788099625231119570870863233273146368309885712420891619121239773630253471400056775897332581034230899355030923846438109388888603477014754234445111394478842217233387954487553282326489366474746137471873480691669247971914097270740142676856276502549319322808969012423275787294967454981286598314850453934457503261740277067661167775977301761653385839784772750651306336221561966664272432901277665636033103694584448652609626462080811599713245510469357919184764680339068769150693576880126626364605808167616637079385618197028779543718172026618118115353425844713134834502479312085854145010135520173810769253271501174741924892269535982117575899417861902135782920686807555672947050836232406389868628357842159006460369595946598599846551886492056281512984581653544497634524923728005990853350883033251566163083683021262107359575788444303884719649792097529507792025202574470884570593739074665851254219028989471266351164703236926983095073689372326206677433055766983915334374804259083129329603727591529886885382715862355143153053332055816209992603713963720950337342410297294142720857906328534983141004990168419905788366915642914749151566179536326239092950646644788733525396398510009120110188358838774184748005422038835534529903888204848492116496941771132980988212050617707146778589278268489508249816667155405694576815555609185057072186661860189113839670610174747326942836478125677282598577982280702564005369321380666762278307116948400429115815929815691259173177081058594212885199989547540530145763880663234798608278768103569658663912778158419365867455204119951937650412408388074536020541976058313669094049716046420715596477054507750968172720639885610632620346886492127439542041391644424580908567780646342658928490202106281236619584360175703423592165897323658534373641355868832492836320444500626466246421724691683517439466002986022038275687857801289799347396162815924125278318124881104280496730732147852274951035906769665821693949530676143766562634634958891801981120144733732072834339859749964087288016270543020542359510426495328086109441371697529875275542638759900397265278106944065682947297095488104619786089353598458978633493660660025290932169315778313194453268812088430241450199387834573719005239589426152429655202862441963686665792072527115926959458817557232165397377963976851408012807652760561497851306115231859347795596405092675108367127671504097785289839119930924477832297917083283092060224582017090807783628358990614975161655223494691052354266799853986245960144388846047662981960046774044195346575422659055263329407354675258091170757769643221102802298141210742491303666075230194859938192522148290406647278628281691576058716342103801001937998368521631103638259838762187293491135822533769769597609903345849140516650640968470922009903566988570270702156827049738835374718479799859481408653644109238648980887812700321586608556964223743822919892869918164327223950076098596386204243500923509053215536096765851334288429628004653595150609253220133076216912700613211624386904156512881330106003662515513811243193936839610311069510133982257273668411499469201152610144679770821825336854782668813042235319215822575603765872724901662226439329323884854215539464464021339619727803592258640195611225161333886278665059924658604500602756790299995318470681892545326707507518800608763325618991040663086824353499062996302886783567568716777498893587962508519360495933686940985193566633959564451994165450115981389254109097435193467577456075942398603102404254593314569518975279320470779417937603572517153025064765518322919228202626266803083961896905028955599266432965921419191280527873548248657595029441293928553145667303083387292155859295780526794741377791613909848394400372035820267136741121424074097516932225984021064418796887451236846292599074783840076704968637427021407551079676399360988548292546520825563263286509103331854509561148399543653750397491475845282350176273885682707853837857774921861861283919067547318376170717405793026949427667953265927920760024668853774203914402237187682482273980331610072666841693884417714043323105702245495150282899928762908846325265662112521127207305958539851292704152321076911541949873627124640029428297454683743430763342274670678793598362158793073002725422465954086149169908403593115368430668005107175872951004658227012846115419600436194550509044750291985923995948146205833236418165287956185839234493166432292692928616386278587074779960281619761033583131973202987168135939464439135859620067130139076595434815142335277787336289224101480771627078827313231099511147968960897962130441045511030668507196093376605738901924228619042335063902041490277091411835597784831618161955895244124552605265136651251310634805607463551303594592815329623419764617245349668054012451027103865822091363553204208103255625663292629534914083091329825555289434043663818816292228425565704423182959108209473047001820372632728547909712074655900157943843290358252607620354140666635634987218433959839125418662945849187720590379926587853874651233291361448257844301736740751069374195802902975949982074329810993412361921456682691782210558453543403697994111557052741914021511546664737604296011182285123835543278498754945188517691642818583421995501414677257029078640168072575301412922093061838893284340813656432334408746665338527250964583959009786620894480795225434241553047200699369483105971472297063424659450014450111606752663595821801905303452844678289073271266467591612291758962843878252386375457642034201853808846313125322564677657254063179703378657083766497277115318958239607354666304552153166859368830886750124199887978926360838528100894827198699609164261712303337381979354051525727275110340330136233747342517263443680731125668331819372910213234585439506653895592466465306276823970797497187150992534576101624816913389729217400584285350579416627074431152374999114885007338673415861768221081307271571752080164387442651167221841184609342542071012627436260435221702966862178747676087353786621654733733169670744307876236134860912294536613108352593120992714156353472007542065129234009971790496748028184158059028384049350636522282962192340404072320862942631480678043131526777278148581904227376172658041556712736394555622315264333095037458276718966926594870948359596214494185996699928143076963244777725647021692744540251000223784798231691706338138559224639876707602654641343795566528123089452650631934063841627195197299673131989087338717205179997024453033479420260065754689502346060957350165340896921044139345792854397459278525262550001561695541641089792904958342343168432536404505334630422479539912822815858532346869690560596155243027863504268964467884563842105152870672765278966238666653124613352903697093600048105983737585941462275973593695437741898155174513068083476211317975569851164493330852858006666125264889746529891680843051897222305227565548385182367223619422463874367337531034281894033817456583777166526569675507180577901401372827081790967906514556661350793773626298693374638461615856226754716113949102256723489830028110900579986827936137093745777082285052555208841234080182537368995590074890996839459278574182047322558713431722643387458350890298324243038077086522101908563283063815762617089554361247007619706335060189020152652598318117764180527913541316611204540460138559853167636148067406443348764260073265034489251026428762557431594136834710095821486828317761592406703370241249604698302859996647918071322059810097238568463323373946718542707429742852200619414305087760055678093086390191528523566048920695273135025700386899898132414971454745387719208092011029992684668107092973257167594594731001524061849408664617870108972824437600909128962277556000374959183646770959265807865946366654082669290529814010319068521714938307179877194126068141959358799583135821130712856507369753255587089174113139488087634563816094071087666247208900644434426494067734923885776225371540567575446151021163683039833028611906112292074525261235627150463321251970614274229948415683648782507053273810297027823533019375020603053769379979277790548476887897360394113013189796603243099555028792292896411587709119430090064879762232901407777836465917883350845108990690145798810919474952992269737193824690509193543372832885255134521947564674922956686608978221304595471206015677234402661556218697151618509636674220814716088627713798736932998659189661094851864409215970031388182191813759519711873726156500027236071019278298856622484434563610778176598116219437656165011268986249966738145791806454984102762898057984194051474419737915330230088455239512968297506677881870108121358851800525626147345517343812445783705456963452380214084880668307016170104730743853434038064254394132057342357523279748686028698697043870500715159525064859877733511594782387337397573100118578797484681491479400980030863356078734760532011274309392444871705568136002884802701179935081574635641367094890703822546391783227921959963250164198747703561181980715306245228865684656163468229041117969113367811600336371217424950364141217526145558785100321919702609759034602271153372322013442875090910666406557268469345883638289370988108344552234137659064701913792329154396018020903750345275985984124545973849170924553374078618708471194498932914897204987073334625775847574068956193321763112877549504431745408176343076098583380571629043952619282251988801343822581824114411614289868179944796852130159320766855358745213560774880906678717813735087317070289388159116587489412546691877643156592681412431996854982202807225526796092310153021604297662143815613649035319209993140117559838849679505421775597363743938455422026412882435121492841077040461125658753712932765328709690690697298466910891274273729410761637274170239229392781537501719110294104061467729734494720741588947471806922276992727235845128953249754807344154358569041743485592163188971534732569757031917555276220675639113909093846106361927275405656124523101205980343336356972383076269700039353846011860692920812671520416082528933115280601353719772907014067086065914606661630515236052999338278068095564559593308827768693910244446884864400829835867364614413781618897551982934319064935093281448411918419358019084777842257430435658414820044474812366277547743535812694600111519533272897494798970658968283559541407660892207884010264407628228563448977048673417122671034587557499923263825926768843089187103348604864210026210339533991656056662923318040789463411631185264406384702738788208567925684518768181406619498161859526251563600153581082471454712001749881346024576320776634075104204263220055023211480608477388519662733101116283710020139690353905072252651682325667676332745345096880718143345903923266785656288803032990980228136312997654546538334553468700813281205339314474906256134983827297069161505194568122481826266264074294919737537694264057174563902632721967958120589799721246031482180909188575602274394652809597154930258819061204421680887706207144465955961154842297971536911683160827807517450233377711105435954972802804549335964605417497140624060064373392812299534810011262553137187218840188077563944474123885298643564329469051681822191985631538900980084681111822033452297434130394952812352238840828317038794931769446530351415005941786379402978262617890960682100903484789946312819190786938341018877420287960577061823354808863213666004388712551995925005152984136143455662184850364511348894837494038221905941723068386272125371077496589115293220049420099010414675269753545983365301896406565329719019978416262924958083707733780681939633538617983668293615895600453471955788217747569467759510758199863810054559444331964059507811562988208280943720757018746272888553608587334673020847916081603341991421015406088312965097309096304087302480504930758882853412391866849131551187526733849614028263557362327177589706434063958371672408596754002170009914635151797248855851992850558511405822018211929356048155086035727802824679234831737786063530436215470000218443042816878068917983666189455740167022700690153321918225276184390293263682423595736598481237049001435017860661918558737866527049163761522034511854459653289014390252168940841599956124125582300121477547485026033560157562876415169903092596451102453757319566723491106326343762164409890537563803064678354986887754246442420500497353151647127273718646425549835610217065118621957365346312032315419162410097150009076221165084483678496104901482502854180609804958182839962994902770041344476763324496790987968404014387779597637587831033647511073783683914349536880567263498401988212156665886293585743860243601060723788620391696050693382464748289933352258984557137246393743351949485956443711947883204399160439384451887287504061609374045201018295062021453460271417036596289157635260324113389162695707912211871568271331701185665267565722539189073001679802126448496539371146999653464382549615959219983252226737140266165403332131421162209488639612553353349351875272919776859954571582117667352331224393859159200700309322537284900457114863182588795428417776483144653967125992346545272495827675528933943962203928142152337342640733227474163009522889653164479695243427970503745047355557845291783499696808733102231836847122511370899557936989537333243151836388318197941436406704362732626205564283642723864967097576722242539219412877620075781606898548560036257406390346284889185634034881040842372630568892180837353635122133982661870101789640971431118892885430987915690961503855335325659062944984617537058263094128628878453113774265129176730841224710707515318761546966796111007606369876125976831931250191603286454518961352285568253166309468741863164029562238967751639526581006601382427138697044449952354043087294469113180622021737521672154385593303574644130539849327048455719922282800182261565083855195095369063287027865585661768816961967004408404452158504673684291768329797911415410652116677271093656689397012474371346174593085795565814663758662414196411588236499937423407009007050273140240626345703551335642989855911564577193613342919378304106431021606655826802075042886896834706253816230457021361078109845859378313018685690159700219837412846111176304232231898616006651394890766935947558674769782010068246706510730314631376387274000594878804935306905059349925802712672379469545825176990120664194480833279404664782023026714562293611085706409620554847592124650086595269384393865476047426203408227852162939809575016589636121261828422772461893662176301712514455169160123711430020660692293413637663687049230656878094930680204330593329440585149148901887442654645494677445507826510851961624151923388448805778831052610959455277208414229883140562932080507787864435069044812468586444934937145841481971168345381711998358089852813141673350878981953395731267032950969722007728481030434012364867279762862496129665017009044723144396228852398063855158483891436280102289871843601194753368096408813032612002987381964213197562852933103163749595584745665565647530725704710022971778328356716136977982089435766210889058341709047900275989522733277907486570967788807828501603031584221310071631109522761774197615834233975983818768790490187529212254568719795801986451772669549519385612008940703690579978396036249944092421640556833110836849994036910391407317425885644640973248963045214333971154754212326345707581001555808124728095851448011404826434165172868653498533873325927592821837233768127423963674019491651644974012503628653742286163201295508053438574124684409155347573417925956056911027297924625317178706213423613266926079472446426559593413899289900910015760936820150247909330758806683249449273570979888168604272932740401171323668677754408672150892999210286256158817911056489996442529458598129891188592208020672825371546445389440295009935461477855923264596617753280108840086515399989956330151660933054104177402178055149558242306832998440109565510681603261894494955957227092080334445734927579272285683456402845394641576518895125765908720571242581491727702376939881481081528396709775849351761619288731275776786469956527922906325847183569690150337762922231255291651294516653051574332756520556002872841547405890316491484600408810621289446098943340093979991045124241174484597738188688174579855962674062760978458685804014600686789634308734343499895229374498149225943627469460119844526940399399600293622230189764376539705774217068526591947646276870513821148963970786698201765941420550702883036502420169834926153984678856088449223297556147150084429855653834833732658782758112611523962025204951445749256722573288027657368023510633629629424481117515272037601162908675181467010268487879653223723440339150076594743576298746124566166102632998410260305668643668796322800463855521987611855152007814690418152984608728240647774612722393764039564891256089767929705286081837893913587153392517662025708296398967765179774323764444562551401826103985623535452599197315278505869353659177090388226942306680305282718231516596348352907067138857666833838310487109719180506035684872728502173721399285183337374057959506973076717852682126299639224293368484110676847265910633746559584729883312419280545910080002403280513114738730992776519103133915918974864927154826973841011080919939945004563066686987166440037043083797483606559728417157844571765553566199313289210729219895997542110385608342687758349233988038468878143579298949181977011785411812073766986409849678278704053674266629200947509891519022642175403497587891311146044233021492428049393747226549429760433712947882298770752540513786534497372399575077284920679425807216727511817846215177285551606398715646546610514101910890552585507484957797649793053412501311594385585257883338417000720048920557368355181924071255310908617209476292914016334656648625421698821351444237950822335203692944084990386485532966714689544707716289038467428563422857880798760099973956287600380707018286471330320675581316372184051077076287346970095016646053877646093687859965628922483049798729243324346156499743313595078144597557121172768778443991262962265384701912318011485612220564462106528912104232941965577685352775401616076962500736662014107049177493269850506470483195965446223597390349435033735742550519214721929311601951629708444072623226023885801224946726933368982974670583933572441596076207256005199174097326162705190791636905581147688900737697845237040478323808477707672924750743224815684200171925273122846557347562676692252686598422879880827442547151144564168861307082967407620694241751978787222652808752040759000013534630683086849770246860524522000435728695374425981197045966197429129649297340846222969171953886254280514290295685783617127011495751488775528636040089994657467318619506645847074463947312206212170126243468014816336774334046300341724042727194595562660914956888183221866972780364139429874547175007392861253236487741229850540209386147586870413572838818277712263021389809742483671966014829562059721299723552857589961676616686754869752849856287787495735274444258855721261886593970786548823712121774534770669783177628409957512177772327930814376891887335865297201176166300253889677453692362796830993881903600312325289199110139958754362005702826771638838346227671404401782742541283557894403015754907888346787610272519342811070242385298269298661520520048568582595711271556317637845151351047040864137544972618570230722441667066369120777318833345852349463551629069583324742353536440585466382148565442764373679209572166869069987488375672770214070355261144831621051734631372357552392031722057632932509111563555669272618371332449483869121118680078088483877284897159442754751710613399230626212411102023318793412118162873864850959639732370518469344972342510775467644127467798439510331789199447506174180791350090906977051793582785059089269624396530929593014722094240611350004808064436523186452850134400632431616953303946547288267762017888219936923910366140721659314292067503950110260561836270518989600348548450759757880223477157709111245898102094614271944984750529879828284837622353455850724749228823169378238787164512588324426696862939972400407687272652957745862424654182573407867410496399643802520092014753765240219469432422738899265424628178252812944681083242148950978248827142084913366811848514914478221755611000023861483748889924791147919490844200118073978160606485801743177768342794849957698093882276844961935289508288778967116893317831121023873157284332374644628111911578143530672028325295588810945156857320693788419566174137780810289568535273811324983873392265942204842095000621510085764963151564209033204615864370286315481482320660606063231078239261488039653506034209052197183928581428687760534837317242607204272727374192466413236996595527715948210883357541834137274521513553207948511432202931860048502064470842425033951352514858402014176071063818574014655315985694450031733113072731104280424216944963268192320345412628265476815263353751501761161717303192587957577454238981253954033414840508725811019915296703678391002383733965501282375976235430737967281995242259727895422146204016995457729907815355028970764104343701705692434346670149971089217262402866933383953414974796216534175062918095824229567727071163406229690174658484026185035165738275509884371394938064621959082540760971912239446543227871529595140072100020131498344734306250607102044883905974583296133601552723491309943145909327174251334050405313469179461357610014515239483519188626184890037225023899099530461102402394417394224907558981446225232771281532269458625352201873789748132991089409285405982621566671973890392825577392933699364127299476142370357415483394989710567974725701594204013893531347965859236487628549206335192360653740608418195100039796978550950972407256316179332968197650145317189314055939738199606927661937954370210262062233443837458690160654698891583910675771691152832836551268760203151533979812685678780717132015311957370178334306636168978776886713685921208909970197824785023575877494292516311365356709637589712258431740693545071939123922113897396358728506038578998489481828623736660382666294354129825668205864087987810167829446988842589609275439609585350255436517848059457110869626339854643886446241983363644330723221035415501101599631994072266296518775635194779926786549134299877775160313685932379037987901201555077436716478612197798065411761936363935122822126466413302840517567209002278988543364774440559320251548790263517485647898280433708150127660637375859972220471457922856886157721463437324424076552112659903060056377153130262658029408479412940415965659952029235247014477905733880905550930430096985136237883919866492678815712621930805619434607433021042843911123682479625149962741564912624085278756179652740223469192090995998706466630457590064734078035017462945473933905837218314470898729534289768998176594728289947853473224665773417624422238869168617236254917057059847367694166533823885356057925732164964861971317814234519659061676405388710692523536215188142932436477889255775783636792713477016042840809532423693395991396264261439406457366601817319900921118136165868382283917458881010908854289068722956179859776377842876515609720115416423756834167193783338853045991156241660805808440893845050553547234698504010257569006029093477342705029601096975506800104530554286212685962409061286248900701289563118970229855443753516423282911237318288258858179025694320932388488397241648858738948518822030635465986832586442442809065683155637217784582084867707886503856878121636801897912562883886406556384564748118938502771047433456772912088496303366647725957781596454185745465258559648672236436940966289561422189354759233118880173207679538985081509150077136803819126479611335559097634045251903908281620226004635764894404922103491019939864131432546929872879264781011344451273803643401126343326677223440000262756548787700400470556200053025044622288057653018719517834321768282167793436253002154343034295515491323579368152935889796629809449186015874556970301147743079286805675730839422821139546745674617261688129718365481681038189279461840858075702448333074336404041707543069814525214935495176677932966464839672530756923610363551166741629537506898237965459961448173164653732011953266826870993431439320012030218440178136904828923695448307629243463779224835364958356653610801996517217079259565938196635410350633311589380036734672849564139959829718490143462372857782293698914579909244421595057552372326886293623831630888333940544958951651726861130602109603633399853274115065553809627376497140120113039535375498432978095609143466206659736562728421674917749344815952243223174391918021072047846263732131349837349566200876701706667094076205264238372439824325458169087651448564276535945025754453025819479881746045969814832122511761806115495334298042064885482556473698089697829561128670070431732793486878292600410654540590301110419687699025395667372966443817720079937922740709179985874727375030550008253299348002570721885840145809876088274351176251246716070429340273630313276997597400304380561779412658403528913432796500175130318971078805962440847570357311111630348437812605437730189347405274995901546757879794727409297651045189466727351798833582661913691970959841323559205535858543336515125849004789116117032821393311968470606932971549253555878802150335504113181418952417544094623630255308924609078345794907178350734365372076792764989118280371139857732455674988275557459077051920414031870959561432643887062109283617032551804149866107361391490514458310817887259107681293113904627550044207889488157920541796708930293916970055713407847759446687315949302926142850106821782510205887235649354393530372733504795242222309372078762289168943148936903329937968474860200525106062469423716149326325295828113474668984557549012950042347717150574298647247187660894419827634263948099798612830247663902563380692658848261311893194063207011757539658858923043365944791705474849315911661960687883843109468773814560523462790168917655701288870872804577412210400544977280167611847775532887165124755632791738187431938553396786265865075371863817932752786849699634846260283024294218966879477209931895762343273827643408623840311638207263324725962384371260289086024763081226759085190736597372855971516799747206347052063625334135962859753199257408193922555489711527282970539172817342455141299409188546475771832004241842332719311690085954506362777155017923250778082114076010214974735910320912592443421135575193948393658738424201050533712790296954841722767625536780176079629892448456706331821294019785094719993167826905350833537207733543238954989012681662867855958552922851202586420739744486761232923242819536210691814428363451106383475012481819194649101563273874040866802874147174809332741338526312342799719315371600185395604728715206871347773387410219373943220245000033001363346578072630932274271593255194108012192517382822329661559451011437812064613524187954595100131979882403259921928786769826282212342698669289543484813426980880763860086404802191353007131447909187234370218263512698187578254580943294543979095422638549158583635251251252787803511076361610599535114129919530810400380552368520310283354517565055592006624165933292214044907456570892505576394691042568565601057624773706194200727404424491821568581461474951379531508658110430425688908448959318126993447386226983791884765371044549027638786164450055445081634999385155292488197195351767748624820201066287352929896271409141949854563991732257358506454010148234056859627347618885956803709014213806195015362626506793254263286118943925934452317267392117616307329893896487119039738422033988069185608533639722030213462459317332552265033635775936401547777982457117644977800198405306994700327261216172985861866251158061604294820024401864365414473687997355147892766629593194574017461719543280520726485297515627424641593808739101409077218068732048050059083602812708164303926376139768840107962103799173378164943822453651309011186331114935030007525173173023573694121712374673630978081209359003531185214231833581240972069321516676711104828507468830081912530657850799088271615673121735278058887207158431053766282318906413296644773620159386822670325983330807964639122499127166648551222777681702061143740547010521432816226211549267669459891099705526292932485241198054626052028388696903034324462885178868737757168568187938080506528709454511237997631091986400580066024821807357156311456738698368517966945350502966602993225454344348817470344303735668486719068642799758813302524178066004626786905938047804486876260688118589464041674124501468782112219501424860041861287141691882144538554159103380261035518905786776506311995586968329335777359657655973092864635311569273503541914417920979419715751569673779519941893838454746532950560006079763768120980679437898928008727009961896440507256264669712179109948092683492647118101002554399126527269645352764892882712681919980721909883963154258018493504940817927645523243801106226796603400372156261225024859128538716646510722701537584455377558724888649360226805520643678794584302046026330077389851026623225017582099084419955084321021021772561399983930629087964777570336193164378774058579757665381090002277506656877226967918596166234296165053817876614893951947512372488867009882113535008187781286002258296328656710250316508849272636763737401104051654595674514456460518489332315667648878740884522328341836021806799460341658999219536191165832632768055641352589055611257462699539360228003662246215681483975009498477953413045564578315287285495551421818084439114911801945108813102362745731355092843032099661548095585478374855650851410815569501318934434852356033456523356233250014379500621855163891640147892412319207339614455605837427941910935003232107950328365603499219576147611762759523658113933323919611067670933336083220537071578873875255195425477068336376986823975202139041891676616874563581206572790591892885148139734356178253087967114706989894376118778123434761806759959884038579303695978073142889667729855013767432492993905835886043222242287658746168579772196292137225872811325599655290741181789753524195658226505709867131954409420265500063506565148714368984856961696976398738980145518856850049471009559021621756039510247505972902060303654158888366385141875328917680011262166542141255539392070567543248420443848371305895562582802816642144037731367472535579355862125770149541044014699043237506746841563800506696359782249236094192437932357708632063778729115794554289986189423449347281033607296229416329420304481408338746396001464179170386186016213844020112477357701074404087923421149520136273082952238443351116519089766438541879395513616942355486215251774781174818405147599968992712849700275621251198891825673753236419775536475000828872060057655633141722827059850269402088269966932377212769690297481632578939570420363925622223388051790488588553022937493867997370164766364958491024152867880724269146120021982537374440541194836299628884453087479473078729480099145578918961190232699269400108293740045669795764522849077426758482017758957827993161450066566407002516701743072526075710975711364111516734290119345483324962922363561923353432829972243399963039235219618385576284814995007303743861708513157311770189513683375657193116036232784793915922419178013715689500148487311717779962460607367220869367333598981289580001144689089896697355876340964107235636403996925325304912247192045988118651248817764939931276170668580567246181489827383672383507208441872869966998577874001265813988956426528737560879195633442470793546053539281477120897572313180262887889975626779919825540068838168947070900346585170530224918547817549840969579640454271458053256978962914421115748926550714665179245854406934668777407701457294881429519792227958677469641149379889017691916846356697812051259650734197174021256713807078967459718227141254559185940474787952347167827097123079936796742725157234021333349045971825610181286852575933182461571767983513332743693730836626183368148387558669722524365148098842918524587822499316444805325627205289766237802979021563035601752164266721532474634144247662879885809867658436681561956560591268637385791624466651886028839045765410891257150910230990907797951248870718064567232922747303268181901965002199970305596544154344204113999584359845770726292981766890414730510145946995912365485543178269332713390105648061905716091382880844692920910704111239252689099837271012474092222031235427735538367186522427343568042242306906021579346181603008552942275659404576300973566392842528333778140527614936436224391867723785847662303982506036440338154990546165640795734897123601290773998751662260731335347368654503898398837834524475349532785276075059990662438980785386430466973229403349606853309491310022077446147755190237776813613022323614767044342590862707760357442890908311210174725350626983190345682723742355090638254083665062362338102649826088015945800157146034765015206396859720472673911580276936858626167569741283452064062810331132483335764930180260450524719511901089373735186127332186963055502254326888506142148057647110233042393758691406171200293437662351538852377939446981944553639875000578949309209143773224504923417748888932878594256369321102711113813335656131249431974529277831237529234792173112547636679543951335951360137784672353657351635348380120860408822322885923503611247325756183332873062685629614304661714087407919177491419689771887505192556791099257667012403363001043326644979356281178510281641803094395689975891802634774647301450695979999198753711723286394720988785783655512965482929035870544639744049660015625124817688393614497872579263482256709759526444515333060052841998256743041502009448269173193797566244438702379162528248621726374276238136636942342836192621557708591418354684642969194816375556255770435629189204052753908680559544812795521854408457467538760462255695821485696616450789133965520794984563095504122336034049065433885200593859648089630067121275911762324729971587983032371214954026096684366497906879582839497851809843092360033703350626201711879014198524630856366763939793936052929240225474413333503952485931403444768658911148212163533117993170260145394130584029325964487320999094485389711334735978686983268564939265424907387126163309719867752393556803995692670510098809146761826968041668851488480828088804551295792016768317546155335961296915997469481003481469627333801875733500097223353962945124059675840585866208195883823413222450381780071933426143301438872321558676855233945025959786754444671511741972231111965783257300917323821322066719125720380105520040775409200209770730978213226462557214727499379007882645718938974720887631172441977235835810584240933938629870342145531708448831618971508349806908955083565225074004292850995254809385550834670249979775284377757608356939715968150759065333892125889216322548788434725665316080216892363810915145001205883761987516088757493248731244627392870312705517494448670964702719432955645544967331159473540485398565948996205266720511178927397206940599747654581222424847078027788380467912654467537077406398394785064878424126042803937537356477760846733307016494228353031553841273781346661439281609753400571990289155682404170067304804224323954442080065638958400043619826512397921878360000690180330898247768330033121125514689150416190426124019223546849697982148981743497130437413659911680241609532568374907949234761734131901431778901582064660938466717486890695488931607272756331615158939761751539092826033655360419660040474599605446105571041601101631116190919442723822910357144129637460839367280906122242580850052425990076569619695221564476931993418227573869198753350568575508076859199785238991672148056068204085515410720155238205051750514092423225844732411791458251133195475045021366517706217578486387043222771620588146307699824944047689055735736116473757997132536494996829629936461565280016204943460646995480727119647739207707271363574761585596382798589670627663353343920203382125371040779681744430268091464984363581930175919162900122103316536045748386420870850742958270672535621174259769314700293380775134257129047671974818630725953946109921322323012580215726360154988272223936196189195759962631431972883850214580480961315707181888301357995267899184823332068993741413824589905575338324237954282502941515955681494366773242805328740497189122312449902758365757315761928931664567107031101118929086859305259629061594575919849417550636390172595712870805818879351890648297105456107720563996137898231873871259025782221061551245322363053408532807404944789999165520595757103665228089447132321047569308087861693864411494996375489841838055350566685772589102573394261629219555603859767077896261485644699501602955353535675556247122512906523472897866266715649679622362836584938214332284353012134143263411844392425335778932983383490858768312323347637258940837291529737735267181348728528215722020248864966021926761911256144301867824271989370560163315012063499522575983909126355512735937616747992341328460325355617724650908538999258683809963958082447034019698778078463672283323513027097474882013837795623438626062066424344662799670927108439152182737627235751150599544670819207785417541109042451503142547815153522093117939446993452096989283872327952959047841694908516301933529227315866948157285194554618738263594341500823557500105863666082425911254862748304469908098715337114213821050175027584736075883958236212309165955003230157139655491583558662678793794977315370040983428236488935613124767463009381562857924258113709923829816242599235520240894305898186934130022559010234077336524676480517239898819621866472403468615116706488447171248255592209087384707333632828701334126424628747095256515990666718339411015121606271674591049343641809196501210090990613529979975717780097445531401895969581501459239873132128420987918150934024548596416666570041609709128828945656228480978859799028980788420683892729977876650585874459758503587231657272835407273939339643909622905804623120592030950674821508467942200433122477243172916064289902323490872306561452451874273629328201462645305746371288647954179766842707552210212928518997413163431504501393383682804541606717947460329420867383360203372964810967218984785185361137054353631868797822276021115452254595371276257943620481164927036017225022041271740779153532842110347874672532137610447954374716653988403115940000416318316605278369670078276147446045887638914195911695414448620127613305906531782455442171548068635982846209741600874813687724181816772934513057626445603775888986520040517581262909766869507153346206112153621680572643456143342793915501735929781229106393292519458892477239713288435800046089442604482052152122552222380065762759705897453786309318226745668673006774546417003953278111773101975469269334957671191029085075055167721154584428027434506025428822207830573043360001979860080218179333596112674057034857990835533833421285286830589167243644529499774920893185924699344894238265133055586051289402345119096868373792763564668935297844751008263494455782742182872585508159152738753086196283528222987224202855686117443346762433805886530849101226528225201472059810575015709229350281522554037971916558027884835716212617076804795631022525536774714427249521700187354038155414606622862466251988549443620331742564865329366165561469202473710721127623567456012275272061251811329622150221330216884309696537703188070073156221781329685953271637927310362015397306217280536725285556745239745935410701536140376644309659984950694935912427535736306259733340137357415784585746604073599731705962845883111871278843698149069837366362188329692264638293597254386266324812090362199840877646034967608890795289241923996953418464040464801832343656301710201615928503689737843975813405691864373638684503814158216292396727770516448095782261825656208783968853476697656374817980852053023611770683506288905931954630781906094136214383182655815677889907428350324936036261810203952251662220864331357788491672758664537061997423849655406555462668628415089258165372925883071735054251237260342910136106939923404481914351647855913872984873850181160665662700692305522638583016025272981994967660107723977664682220623296697063471377472975176562553872653715618621574364459512066731904360451048806290790038189088854126452526762040037773945102255699160605798182977220649557152486426054170642605069189848092454975179968402518349708159775043926216439456814833128553886432774907776845951347031373223221861235539395766336984755188297128309315407802855691853689034404305737721024915814035820636642135153534047031038586728722940863095964692599309823165159248072950237683207754616396563503447603677020238728922186184899186015232504802731698164585125327658860282568215259433030563329719636285042388423057086753224811374781368811970248369752254814761526792751249966513420360844523074962307336283751906854789577158533662194099164925585485026347592731294166757772856065993099341144599620971275015614701550747852875402589621072143515942238980489462034501965628941162951110334775591980748263236370396341461270221326642532046059682360395584336737358486213442754150630666025235826822271905760209510359903334976148614777142575226328369467630587335121016826604691511088098065236280412164951655187063493479223095496122799330792037450437029018807769223509796074779437511055014507082760451761133208302479758018258563788650229890425307530854920232151182864332572152241886303563662609772018442511558970640719347101352177126817936152719055076921810523609669571046586430689608679626886810275937971358901773530774201211836526897851494053665316876822634737120374156129960803232164094524271996367929244859598461138175704587655778232755665637204032406693619784997148862151384753864543212484731605743706028423776082501801294253664147240012914527430360731168660560806102777139592617065063591063212996054881861626415167654204182017670957876796877690383916298496279118161870736950741948924129364091105974032640010249761863929437652214644535505146375973508514172039387044140693797812559354105964871032080161552894618427430961207501758053869171392038539228875587909651810312136488289783463170164712943509041907066308068908322205167793013738928935094515649576365491950946021930048524983627078246015186554855754225043357049474535475811639113423604113281120408708785183650682964086889349619639505856862827926006610750805421441123217644164778559090030800697946226685171586540694834408686392981774847076287513341777898862169921439499230133744182935907309711202066365127498123465182718648051682630324020200287031471762656169811919001913826100358710743498612628592981544474451489856790208181488084533751929921569031825757611959770799056795135804734253012687706892435897534932674573774041581158873806317088250363979599206821629005793921902386516847706198047328984044137791769705444807144685787978563591344139029134050965519756107028229743465815093256985806478476158028585931033360732119985858226680333224647184795192182531774277150069457009328417111952967181711816462035269068311785896120787532872451628046145477017270862674500469576888847609437184542976548639672969927885740924025835483525168949659224056317937921127383950568542355523429750574900599906310755764767756150123166616433374238941047163678985791578867193386598009076796822470472238545140856712480018724685691085142530658334321093892790248461365676259614058629451098536825022923733537297353075834790860936025210387726834871467606417931956855300672026816300160982127463549592720753361121787835582516525488312156788279538907781827090769618998554800380578691701826863051687266849770731648668704859353738882966290568394272914690057951243761601432663377215689489317926034419126706994273480632487560950901011439549850937247456822131217055033181169501635317048356412694811970894669548969644630775657096073223561239217060385875529578338300025745946150278175918129789912574131005127462440367721675792912634859786403971656232279471217289980815505847188815692995920659828462857393123535863549978856213992004885823344190973704229047926868485835076162283688768704704857407296615140386254306789606480657305562057032616807886964211858737813836302476325545217243422290341624764682502582005702767257023826117699565074903994403884320031693223450013887078411199581078841522115592348100178016269613094070817937730088172992753813771817523267966297387064631081462053156189096232853027175809195442386624408846362321432792075675837542776927843405184653341716281028341888148416619766306987445043326151104204736835805873135853916739264655231903020179017671810207201826135734577225829778049014153387405337398825970666715213627159690345107391157424200659308261296507832835193501759084544173090877878634897327729862490746438179814049382646091483550914601587786247126598936224286762346481479408044835767178130899637431345199276660763102088915295198834926464051321054391373803221838721482436281319089702716860645231795742934628663946302916414624072023787873103151158157876718540084251334636601145913899898526429204596515019441324044294557175993342422026948109645735366916265254819132610531579381327156115563105961153092703548252762891968008599106951755857696404061352730928533900875751271352874997643037250609101299711460027086332385763954756633985882625747779335291208186550022430764267805057362589826401261202410114325731016978031408368341388276246631700744667069945554436593503963986834704444835691665582055195077412458884056888772557505607918958209775792850883189081852493931153718174636205622781120403968793941601019032547529090862556801695677154449148553832766177085081863662823295739569384857157477678671942889748333939205066805291638380676087437012554557320885679669266689602914243714985630484124058391986587518926488025136540292646235367886061753878004926671709086844539532571800266936827875432337759606187420381877740484403520960045164903177576041545763041068737166331597004973517275972997085720267219171211448748143756397396741438132237081403393606131709209776142782423411188734722336899099265193854427719280674224825982675608632661705789840527537843072767682793903953557117003382916475415295820068474505096516037497778694816862994943548374898069806036073233627203021334464478454363828792298766396449950899139979615578305764250044725161326393052599313106509923796101357010654891258760912809953840439234310358012765034775252970042287174303109728780722132166377515073389928027069791420972522812920899516312346461020921411936792450952449783877346449061832181794528658649036376626468649010456820295110843095776766961944021630406251566097166999457105344112947842617068308570901077453133285450556650149789054919364048573990212858148475742348705669025294507979960889413335552541831215007669153620977460440283473637055892003972131137289115395829965073164649456208207402709176191631165430589946069704129713771583336640163915426941475839369668234886920369219960833974081958915738858632374840954496236503196248827216657564367134306825291564577407882336399106283770962356245716784407972923317842215768752437948925865970478377827744991321786455282456896557462096836062350032342011745402154968455717934993149185974281065492081074184575409784056174550958744365092381421383596965812171101106024982695378443122205737989834995083585542697587147849314263367783123875819239993844730498570899838767061620237133149720441355786355911002442295849441723474980781640511302464115933524661720809461254552852822814502892969928807024927198980860637856789865994528491455748232649011404439067841444954615030833915366927006548804751340967867902885937027046758920573622352426657487372357845122347393534998386536459311120790186099528219440495060286572445165470564060401588107722832355302394572582901320703826399719575780765015433564267008287236426048912741361773638543776084016479464218813325754889881383693582243689815708123585794507951678278268297194079280676775012300622144146536134040601990054311147675736185042449471268135036263381985071052711073832723382278716074195165747328990416721166551714823853421715318403855542653614525273807880135996683165484605082897588210905207567816823845406931168408735384963368442763128967926591129542223744315482935667558805012332261213114132095445304610779809716595098772995815316502093157803902416440837867020410046930342005378673994983432293922251497809362645989743644928441719252369255486151755108290789355578315694606354976221289359885043263890451376321065003728843935061309371924916218302783202944286969834164979578727202063951040050161800148959081923819795838334970625042110750458056764295067929716728453863909381496038880248353883558730656230690294197432786019963835119996755062765627205765157197401977446302994442554604662324632166697687574649301619351578556878054677859937228104640252786291619981176532460665120316062049602034619712847174988334444465315259855142936079614803085088155826584659480602588357121840494930004393212711379444739663787788972550208010348104479654299398334802720293883667149760302824960177276220638360349991874236883291946859794255164496690698403907481112734762961648021263617083637192385799027054953476953834382334157824091914136678084228263298450276747982745489956932474765633302268750037728577157074804071081584853266223617657208590657741707133092715289866240103588686977515872634671273201935160505764422559654227187499297429405257856622300059840145848308970202807471353493537185825702524213186619828265980606566612456954444614864583868367477939467116264627275133819427272328152316572184529576940353402333823033383673186372251324180931703952145449164351513701940390894193073039815886026933053282123326995123568663593975607973764023548636881050985255594957047471949569753056555571462963267701781689571099890644205091942697086556504177099566004484926666579342772890070690127176487925264731954576108436176803680135360836496850809641236602030342114774323399830944095827209714492859261492099316256699135284551426674735392705782949040955277677274851906987150723610063257928873323352155710338794772723898128304327647963986397882301420811828442807949203956105281015498289370025330277952244097014075946715387667473261637606943538477002970719896681285788303118674982868878694684170040900444199586880164536046679077104787329724653047595339612388824528216269454806159693031233821579900278775105476485464413331753371193313517981321450704387860676158768065221266119909132813365838136455536651096879711663662985111477649773632948020369198413622513156262050509306244228421926241549843986323843154509449160013882868581191582183764893193570134463359594226570885279457884004872756984653868350186015119894483830428896981331204540133985856950186717736248788516362554967490264317469741459658568249408690311135132294831115838673199629033912919080251408542637631163129294594102151117201450487865096984506724081512848728254335268367312116324377130411608287189172897380109826912808636017493513221267544237078755152394973033889647865115860818925818085935694321830161537358325053853093941010499288986598265156909639247070824634767108332343389624019972062888672726677746359380277593868982284741026324152795775243784031080931321736226700050872618778194086385109135768858402142022242001227275361793030101961996189565301014962693383804291431244645616880053135354535576449466617917920796044746013449600273787650389264319425120527023961845568831213723117236374558863764440132025748069419503807318373673127700362156969347403544845851999153718318293192877828591193511061684412941393274461246458573035859477370540114627305460554270222530251300091736606972674067790171173481900022608509191164805493911215524574168908772356320417703769015760512439936786370292471293794123497556380203458041970977281640386480211458613110659988901627119761294368800933931591878781499406641799089721521373820155333037700533505860983501345030165012865956975744047200978974953474806585838787906200512760660917048613019426211321232761215828051012933083275494795923695981340109105174826851049637088881070239083272706033410355502143982919094152625490930504160563887246710939394813973775424608693306193317501679711600534533919041803119093401700470432320116053121177572788752533268162729452722648411742567225338605911901585463045136998062132699709566065689099445517167499614228825886961028428360193002374338597768013857454441184220287728388079862547891086321933290333132628348329592825162197119349801258793143013181820415512709797528948389762435893779607286639591864880300830235289261160651568359216477662142843180606986545282093017217664692347213028287964142187824067185411854628956254650371304150315888800636433003390777357111727040248098973890874969306911579840357620097006883715836029696040741566364869760494345047194807068229334754528399989762901108338094898365459769055277854034166328966742586097428401573733709546723483365771210098343403709093250221005738600166330630817271709351011783012053959980027933231044830222430694743053094569342274616054326268598005294824077955701935145129062212519573274979465214138151114791129274018063986122852550088034807634856973895013042887092868804118813106588744526164166023158071882133221820377823978346223809907693310115414663343151316890563146211877587833403110849490265643389843466159934498151334291763722688690181057740331340169278769232157107678242268854596696411893025207696549598287560392471387692407662792293356608383099250672952416454007440713292107723968456752356339624732943826559639695352806790479885312967046245447127686460880002851805905767673381159659285438398812413712144301718158125409810280299557125487451769344131493356511630396888022411473381494577796040273337047363340264913608922876190910849504618659004267474579629945746921859514389338153965479483957998594103915005837988456781845477019457263521042299665154369558179466475706877371662387388677708752758985532443153079090474351472255956320487310160407371761696166087289860362198963164570410648164844090027707544159510906369006486451117559360967213243083663340586590319254315407833717838298253738705056094817340743963311636058831807553267694006627044485927472579481390673962848928795842738562521854540139231020385032990382738203722833495267311071323402783934525567668196206798071709401941722412858886546274478413865032904902461088327294198585444153390731202152490599293566604971826941177872117308445276136514048430978386890444266784692389225306213139776671620534721856298734118974719213274711437444243078660107291367747276929872517293070202188903037429428881578614705339000452428738489585352361785857772590376195029544826445435937329162874812544373517261935514739168111096333302788845829531173113438098949426733255017601626204866807708002595949827821226826421809190078594270805475873060795363030814633228230396287798564163987943963910380443039489427013538046458967708336084907916800632351069094931184411908795470845675666454386836578537698792139426638837020902447980520450360104956857278581705690145988472582099962665544753372948645375439699978214676096313727150115715489677760919987868527262873310739385574726524056732357940856041523242871696731637259121756945138902815138112175151054033491985408065859242450703628059618851094529754645104415113927421950734461530633273843463124951069966774482071269268648814045885172851053429277715879732318903360033918392880242882473546264568667423803988593512906063646120170444283522247559380881593624837955208430306992121608199552111601884960104407678957511203678766044869118201598417859203671191343303240516724641237237756669558233840429574181800340613366733731766912431184644259431099683527211585032194475053946531452804562769684928282108657658181946531411302897467278390799903634348885313358856458898064596857804854960779007039434011941779866311248175037207346653747265450403643803990575088749442507409658065823453084519442780179787328590333241687838307103388560020500185030174894669194858347199263285127850124902269405158095957328323722676469388377279759316541909093608927126826947316489518946349201522849839094578570844411807055822304135562103857643074688033782856526895762508725763498073740995208401773178386110432182409503990388222473370348815085144072131905924503037198724617071025928407697889969900372977827503120634751187240912959225533387276741820323788431548887228262436167192975509488728588426049655200510217673431865499799029904115672520064072488005476870322094999144494870088393868365828340485287000366591292150150100429351040434245176617788449217799042622532484957159103321343897007449852473324250297041006273961927198860204971758902871808138682889405718464307410252295277684190067672748644976155351853863424200390753139642461757509720369989948895501275566639831282769388229438730399529774848111100297547659136819260124874151695809820575707417019811085274304319068761502530310150684813121651961785481437014235463337643098331350273202941814125334045669877717295869421659507601820087875527571164515050248181859230171891011728957863194326444232022055640316938786797056119742638340324440874043964065658242807849365807326817704886533716481493369215961450462086925962867713425516295665331580312059043912003728758796918083739118399493660740604550385796901971347850770371113586600781458236589882765198462300505337859357590001149338119271560354086092616158654435914641754249788302963219064883244453602032239037229019719782348103381066681688062045823133223386452694291809097052485106248938418335895645919302106601849901193736557414705664404749178498494224726186196838068468632108611461573758030758988282877931582063868855493569627332332919940279340981517698743138248981676749177457247268653224857125038223282631333787971227538023529388047184062400691229778938567121841195453089486811741509853007832105247089776150095239560988708867569517776585053174658589389581966471699558705869905388324281998978636832092535500125129220204024597125545952619432495641415861970377088941096766927654641302677926437833417955684264889933530679769884425326697124514685930722469056629557463097301680332395521036585950419416544865817396896007344537317194299558630341180367974103814411201751012060369820660735888297031527908870885408823013163646619594452319090919295723747851307214754664131057025655953826546463796644828209517687478218495125188492417435225252129867879906451776267618722437329273818891646830144715770563080899157076496505684086542674560309763194969963269700483938546623951120620541132393906650600659234655362569556882075632912179824695698439558823270722043667351105548085242910182819725785110523598384946867916826009615272511891645920155876963719411853583917401018378775109094840165277408217769469886078951833033094979029948955050548053264644897557844035406859865191781184740371485545190574079896583998138446373226377449721142747395410513832856517786603891450462611500390757637225652357145177536722662554918600992399018721701800035181738860914885879580875977297085244485275201058478865656499476429508199220545270710471367715916223599366608638694043789587046429291134595921027112564214659599775953762701425512873428907536985860273392230711190572944803365025246805972059001385900479169149001491358427632582310995187277273923131087558689740100682974511098542586195520447771822634406276277120326255214377270601139975776190633595657635053070602952024019494666344419036780800327618031466439819733859823575896241223325424033441665975285218466509710436372904322967777962261609859135952138336943284408837018134199311813429335414565682023145306735331367159591693373736216137603805714425210961310421212006386277264678945796220348606355751758306512885667227671098065140372901675154457942213614809735879149014168112174494243782811599235498449462155160525524580283266589035816141025636549529327788866582797512224670846359182147837172628301738456831105621861804846587786751388977978462693591504152093835341687349755629854648382142968253762411264732987585191788821947046848079296733615806496422103987169211747996399260738377618566877435033674616654610456118395040216893769789504702393985275774125953757871317047279419939448803959682604830697410128035810576040995735644532943913174929486772661841804550901674059591653559348953602419468007869981544481060898189284589987360288599165012218354874872820269301647252279282095707766571880961041025228000644739168307194373971310695025246934316074867850543308072188171062045318620910124381525128934662990135768777046229953630975833615770911395901560424707643134250770384438288784922668964714776576334834989252119005691614283900850963807109092722857415123175500081768655253360343252075039986814637150716614361384725233701032677993749575502222071473555618098374180822556614098845298021671084868243557523644418068686467763152688357985168182387197238851855069892463159658114758119116017522632951865137050347352044077423175263400175686699003673809591300930421495966798542304928898399153035999589765662810272871601173029644128064249121868583146854192083355422797582360732097754746005467854566168060016815848697711401021452526009759411945416851165944223910940717721443647332452397044555526879007569481701176525900446707270746448581340579117947310678855130480978338260245319281404144253456611229442621378103102946266333525199733709003877299502104898826317917115602906857450379997049789424061524008022227304151750591386345068055768326725050168375777277131517747541143357560086484713404443240520303727926815379561424356781797119115331142816860680702969920860786229198221386794109383913255373637658478100164762576649486692029417710793105382792520286413332492822393162294225927084004216461638898277881289930448279196870084593941835160603421516281004620212713829675136966757037952800830116743601825378914755741546370736120452562258111544125625749520536870978708605729311277677189952550628341782966432070794513075999022229245564290440241533174244973075019594309999900233284157449287941671099038606134495215907549867028434175938830714824573764463375398938413458908083128991804521280756206443222837137273877713035944329251864783212992013525898504352137135866826015266277191320322970732784935169466135007145548120743157995068507637039516359340129157352495012350665225356996248680142579983658129862049485318469160271032903858878753565234498237837139730072376030762778429175442105593059397824680310572031912765310153514880903345749080000459507176343852880720868456762572338753591825532991541481649603774244373846742004484177998266406608570544590169842485601425899337996915978604473345470067639191902374327541693274628723069013610667382070646566856920179226915633524223120393432125342645464684379967308795170920432724108221382965786620893558834302587084510127325958654467276564635049374385530219115404947956014055954546230411412818133966370734493321797517806044243940321987122164828392440714966469721799785134232997608387951587626063326996115755849883103635286085310371987454413143149432631465701495690189706389330373743714267629987750014705944581661884928559321081581997143097668579049203732867915179515862598386036245005246199916679748219370670621001757238506064977488400494619587373898533043560932961225718674763807808754165863982204225781935464900492251172089718048779960545621563265001605699001541754647765672727461606622654177580113466331664159372311811449926055546879600255882962576263857452769134800074946981432784429306816349377171096588085864221293663549129510103467692907029123720924393946559903248729869365415909534139275077609449256517759727076895243497046097072106785071357586881663341350314559065773243168364053909587765908939441401224310783020817594061436190625197155006746762780412288844655218781932020509715317936652790037902385824618294120234129918917891241104886599229958356363794293534571250062884192823545137667834151666419713943581258874570553051843852441741646027484502554477898450345145338743236967632495922376119885893163456439704829498142449153918824549202671260957705777752574369803896669943632872196323401772590693474411783867105887706529159574927078655352600373597892666905138121364219281821934361662599607676823566768925842300399965567806901709007240449816037877668998256345057324986848664086900682711512889217326982635994785728648124806078732116584959242974815626177143137483829343056564797766010850953190415082560818097652524358752411734562027837456084912031074385949391061366343358653414301490715777944469087834854046427998033148013099638597547141047180122041089043438133921906557859335575072385712832620574728645066778676450689342796445808020809443141789596661132953791878634946379580336523919244561771201762198165475925539512033347647850643803008948216892366648625182252635594509484079878420772453039330112844925481584711657950164642166225057677139117432381677301297013620478827098598687759808562081002213144654498916003705082449376797951018019596569492896928012217853904547818010667755080698839701997085798055012260506943237307065596406358357504290789355085697456613626217508282728843758771757889812905181334038867263551549858033036338316963723895074825971655707043926668181339367718331967259323047543477217868731611067503857550179803294908859703184827904995758129565537662373382070185944955129482487670717133415392027884478639832339973755254595725800564967702288563252343018273757013919347578488329151399330566548007832190908354537163603242021948331040808545793383587846827047871303680063308046263546418806545660980616912595809319169215099514092127110363874101844128328656545682001896160533454362803534322115492118027885185897631115482030363345089435232306494265077957507653330851470731679694413465559538942564259754729704082299044330013311260374875788691328631951050959194272919060240980724359030441688705397901063305996555907056227732338929611387542669199803226386124234299094858431623633165543143737879149773448582040348342232622487628819372372739205421486579735222595554983674030826517594842537775050254718529011987637441186394297206837991538043880922424698818249877848561186490164305773804326967011240248198107218889934866073421973600029378270212986295352564010540071894701037136331644858889146451572076943364549215444579823649529605052306810359983752941443372432095453004933924620872006921641586671165595412213383371955203329729548626737413200605560942629880468807482840706262189746346624016482470328496426122616859318847883856428228177213648519050059833819107159953176852626621752381596262750472929081634509556771902369181981207550541516884873232262268116301376494737842707160042833219588882167140296608001361233578099149564035347580364985733124838737660265086510700780206648751526062145124224422886887008486948567478337295842516753321567594438038382582851494062134006247479860190483896112120882912343625664366211818441855824478049722078646806665043268541579296456674552902399736567128582098116699846755616459374002752457755817098433077880527450945683376161550557124559059318258169052363398290720686326951687654011539608137701087582487926925348637628949920884127450571740118998929002491025068337941905933863962410622017764543117508413079144240831075562129585694075200750912673036240035988595358404809054263678302831342290004969433660039325631915292843495542742873884785585229068990080170424471595005367262928848727349549999507975277707995854434169643661810573809021920758247767902896972832628209845446176421856930965496687450441279540541908831508446241153339407512296052447481603775426036626436196484921186916826862717842711297658902144765662565450239199309194429489304225598320555463427467499883393804482664850990868605012106301549926039706516062238507310983745543462034448601274129286148510205364265082455067682995278770146079848680075512170457338714309551849106588779093737089750157270606683359594034363742213249992032887306010999012466641596930379917330639023697191958549938624388239909477302324646551873728125892094045043253442710795449456976689560310315876014052526422985406905296758802352503747271085694848278683689398321950443213974099402827633290061504066192661794183906889780254053991226046385590524518618170365154952034238288506970875147830806614051919783376401029227060144832477403133863431610614941274599433380497966601453352696330215979449291423898106864901839083547791656716215978355872308899613743621537103654849011191065343220342892642648020492360727776602287128571608320852887272228038196994912490227617168669198663978217091744628145077463111753213890601693967779861542679748489905969020293003529821968618233665997345153860560532559232773964360459730785195826946973170632475657147865341383811058345091582253013249391188056935445740436682300327893599061425948775513636518314181404612478238531120636839889470752285669712504385930895447926206621522589071250122421307155227050733090813831436005968679162830314813044167205102167381849062670323853423450021740412819267019973756102212235365835657499230709828107968507447797901930564671128032935990456738927251937477394407382969551039556052589938136196440705742826046479538349246109501696607705228593664437797692927351757290777697128794772224401228168398447178061292919780617528656737027590137304744527806897370835551829018761072010994229566849731307314568830307491468052181319453437906741602277893717046937536264991900160259443214567993903048291091896452474597858295217110644487768770097943115233285419126927240313386844530882229544735142828087447123354651730481595434811860359810893850327297480171279204395699862279658730523982370682092966773539223823949131350262808898609672291074588866164475005324764698886969917051808554676208157644841149292217146762412680810866285595713414354992489638318629883683612292361446112707708547736137256287937278483565434495518199786499488441411540989268040627489818677242947649902359163679113945547176588508534510081763731229071534575830478532540079816028543618768153502811133181931420284410209580254556855248019175303372985308056688191080537244761279948687623258921125705501860669502682660405178343593435736531952679484943167386454148014685174113089423761495356357460758531312887377882964557350272964200458191196504059669502760182545174243149978041467077376453249395992297040655472388736691533485510927368144931897924146583772641185632490465900333490442537525120522012686857481293465866523360543614991597088628098756155002850333973437566819838447581653837744460132857742972018081183929767316004652413712915833389296991659085312987096924872562672765116540137998459521153911960790612569688392417803040597368285355159484306026163801782213014540372380373610671602436435272845989826505735275381519394601411058270168759125322864489093475710561340554097057473044470382913525718565411091562221847659658014066258243866849413371135525675762385232709564567186413262366422703492106925178942161643054052990940732950560066333043098581758369644194452920500008299190814982051464649321909996414695214150239291753402666010511860508363541326226436246161097729874873272879157618343825323558150069961317260007825656590452218382003033944307796720348395220182896637639148972765201204525047281204121522492623872280225736766180192295131497768212550565257656062000848373726252508476501483645201465910877157786602790940548929425807051866465034705593161157506818347162170838357421473396843105743673100141230596439450708601173767353691458977136218718986714814557913473437671669071179280571817846845661033917013326091932793016535064320688383290370006940950767684052982217003060585616748543831503657495699850052026272587706886359535901800229181840744649313189637215367849035030624289117301247949777396568862984625579383550287495586903652325314245116249614364939819714225217225876398261975222029880335460223151326131118068474530994345897154400420114124424676181518752256865439788858669618107050878047524620279217570788430884107113740632236510678487483441197897340353145283169001487253162559998880168118880734209500670869837397796905816192137949779653991127504400345865235503270204657231721828993946428558495974497855426093518611079746905051909603608159936548609747525731389453035338189182709733750919422026543559652038643234222434261598985561417062326114125104773493299217277438475621947684454265370900293714057791168098755303522931536340365971720242886698499857965245317476006458573229113591601380947314559562711206536509448063971060981732330829244855421359711110901984284774995542433916074131516994801454231799645769671421597018338357888437261238066869822960072425947974775350347549301051653852512855356091311590421245797961593922633353485624181494819467756545229047823014392379048255392949082341582814449110029938145911276351450730779000204345925983989636849121845207323691694920452852352844764417313091021967015881125915220425061412219192805939793003365149756013238665603000418133231079868467227813082035049283980090105787616464859426444613512699003938888672343794361786327117059109820032304645121270550468532309574225278526588956064640679784739862431086400761437980550969105025333035727058515555241893599837325239303403541686064799655922131380523043600814200650993561031235488544624206297825573796891941797107860751223602259384834282086341007440891418773454979371162984711515011411112732133281771195477352240065009073543309083809505975435628921383507657542152743777925579549949685386863236916342768482802109686651851943080944428670865011382466155708847067850650906078363901661596836347903059155486491967503435041658655683628590809513142978832618871383355567733237640378754433677009664704915447202582566265206348081579013094071612071048718874000845835181689485477071792151131294768458803024674521469829075005310994623986124787809501286992395866193778578115476919753394833293575771533527594358419049287913034849456381647700616561070359370283518759605360417820329938271869329436111983750512910784554581709444599761038535241503738614547844846445592206786244639823569995315313692026932510571052824170984007021979324226181075946320053521498167879003206775782670565229552458886137090305989832917582571563293889012512758283435909476560714916758372421865083796186342218691507721559019052189082381080210100878458838608297356622583147310652226545283463964829135094257521820925087103637669288931448891680478085706422497506674639875422573542654785426053304557757437693958639306649315819183268484378104086574516368282185410503454138992586581994593197429108722950048093221556838796152694809898210183021904085556850696924810825468378618649281686853362228069274557813124122196404153205775472696330606920188657471780325223742552712506132995523386203392447249465087140421550553061617073791225717723976255504748709493437420843493809640977726456791757959895819917467983507744803921977844727037747605982104915974227937276912762485559114670248782156257758844975201832252399157049724000979206598607245494284610408576890015011108136524508261594350657256036590370694486507728897658457760186991641789303863896593579978149249208462533031455799599513657584118968292202706255538957951300047492760936618564922918116285010834345411887652899096619225611012117598850277852333556273054454965094034887838721195799439201169440131586576258629963733666261607430723016385876653513344215841037802194845112988719046426277402354233934660122274497199880517890557903811013949259550696503633938574795672122757031670733200285975570005495060858144090511525455891943282448435869161873757258822826103073130327689797715776507513059986115981657714384743408841998171474418786389814669166879513199611104339833641461728656084239553416986754600499490048309956201069963453858025457903817478806456550810711068643576783767855055228757988254027916052712473998416738025089050895370134511191269766433387601432701222860735482431674267095490546205794467473539486178221661988239150635810252539789789379815467904775437531659991594756594382502649532957994553084420376043623905255555964804284027706768697063298257650142869557121060123999342126441953098704429686602278313716931171068756970500786401276347814999208169215386918196931502543812228955164492794036358437371924412028181223096965148228803339575280697604904108223638880937525622792616161552886781344635426923108963631101840349001327773983485216785166592349387248802500102538092399443055864669435551544667558110727684881154887678439596269613078596268352251386139832702350651372830750207541785732390269641189299013471557936224040114963486149924819848414655927638952446366828582002883475539821264388311804313099922600621152044152267258569082858811812274837137913080352553993647302228564295027880256174780011528419961101636026509469590003530105167806014219822408911336635601200043220865710405466759299554613399643305696075530377665506852799923101766225776925154622434659182775933387592294251315038104303217645465389398775284086084135402535395977653309455830380345153227524186588391363492692336167569603498676824047588535465831655310251259465366932554251337912990937156607483962465717229695894281818032809951613255899714403585430878423028020104051201842570914523063841271589265850646526908920841187479723651970671170654342379894101191191562255420993620067608927926420624849788357326781025428484239101094496164026502822004837435576624691486691657505931225913594255202770306825645231629254710312493965944662210378091208047950206120374248774865939573018121286772742146812026491007323540146799296335145328860696489855162182068929468011807987919943838220042802540364928504890526907679102668584127405980060814274305591775346113294308746709326477209368045188644110356267329005035546979794346488434964872165185840548487651683398821945073555930347453294505399621524809880206144535212037713174703652262529128603018458926664665841335664627802158629215018516329520290750867619190362337589533759579377432269216072027374004110070302739041604698128241367294430349514116904096370979735522395566158295911939026382934532506836694049073313058470294235861929835449699833826002226211977141894678558392046949830437023673839372180248925867288862864240492790349177374654841538907441292515213812057591274148440938761841832125626312198404708198945282180254354768578160786010724062356240042997651537397691291334917322768186205520434420885381775114802772533352756736003187441017385419397669283825670430264260811316245106703186832805980546657073577870939332141649326687121558826594568072862531105203060459308061659866800639752140412006754006367497942861567212599656633426511273808761355787882620882472471310361660325785760279540297359195378240630035292168819785797571502363132265139700656665492374002367402462736061702915445562113272138519321114525593802756482628969712965959770089122169218107859345554039209843335722743241094076389891055749208438654630368074196464615945522396660110175722253838990372807448949795141508871418963436412955411852409311519569229404414339466945443465469229069125098178109693041902897751536608149090848035281874365220038326019098706026072473147416707386811412518859231773403633703020416242714562314589617934255142596050737130366334068050636169862051363938969488167984800560201024898455234187699287508505818832639772533723536389183915517122186680690973064400651038822875157365204657700055922238553237385673301967411240897680776682775946029394103362590876083012460841762889235191894907056981569663989103742865828023576230098315595152528066835816597989692896805085367134707230355574704392438393359642291702131428662875769763477616874221826995049275728586835492524097528805973265685361280058138244186315846320411584586709752439543911918025094488610154066232888612810078173034132201517261593892282719246340787804725011915091240493388165024919778732746073412918682578261938264205311736240298934603061290669205123505556038666660888602467033173938517721786580137334630152462669759228296312113294073286693535806246971029524873912746126779075172298326819440175497528264382774902059679627928802975423502711129206514989515483303542794776050020335812338330546757244851586161030431246411487052025765772228377009802782633905428319837372929934017769092915813569538609914155313504434558655369663608914616000572718232050505778531212326456336150256920367879830338252059928833214535542817078170371222645158033147217111575795223222435765909472438780619095289090534636566029887256632345407698073596500801387683538564572218592209507949471613820388281546757626515882608840851230651557786786693066440496056844654350940853617908217510357764970290839783531459112683833669208996686414074231316083406269760121263467300267813981308800545331269886935034010846881517458478868544126722213341177255231552046617936530512695772993153219418177383481301934580933283842504319399937802826467103681323614468185448272619637793522397679942386654899750262797914564985152292647072705424776929351144175876558307006014638833220135143507044249761983570845044776880769710488431261532420828567862247965011818482623126569126273246741454049017187617722650636910724592974552780033795329912048978980276042161865572908594882498068798269233096006588990571269992845523213427423585785240660476283532534725283041829005179770869718180909738080174523149780520582471404701288190661504050091182807758373862651086199076653323149006222796434385729853327015367599239444829717926575407710882452489180236864056741537100881533708856184025560534956350144036744753875986034315683230527471142646288474962640977211713343157407348786323202831362042936918127549619026713934775974674538940474154284926019875942046747700942441473586998828918298573169766371098952673690818015451436733161368066371799313352570432539571920247433701758018417300431343338796125591577101360263704867885923416951003803839629126001848242361096224720133138215900607093469575498431258420043296176482815617558120840089921290760072053520779132472859824677207630494944406766690572194213046310836044874605510784552464646055570358533933244316126460263176373695586940585011639507330634405134616227306836747036736569685961871816041310928639930489558196546574483400895775518068471235061239127003823059488926156295947127373668332139624043374742488718877034908651007662531843065030599257802286789844719325790731581131786397758377657151720918469787659174953886433676726080302751030591734814454002793933462667569703474487238813301653989520665863328318329520990656961582786086894245553500910567371416781411680188260371696996592542334199138046176335979720194689022213806902913693231839203341397502044592251530387804333591400095614235812603331572179937135426629716284952101374410640880817975562460046020021824293606423142021016081547111806573703956119982263944816228980482377438835402172157359370343130344448214862744676174827160561734240544865367527775747467382918734458310917969420903270623781583844642090061744984148879069307250037243828263243223893704555436029608241050828776256911306296991216895737265545366850482201008868903375731111587888450397304897412228963406475056534363651608893824311164841468171680037217893655651512236991545616733616607089860826531124517160250985753048637588391644687815446731410537496470864571478285754761493498412543447820197753505485232138494182959626751140736501783776664740493376171493860504169364241058861341495114454682714545315082487669316774786604153098463410703305193096081293308324559690884496437237399646540908843354707898865734159280147430940136976225801952950535428577072162907414100348533646185940279366756474132476777824361271097279815789966271791209409099064060566964527901447824605733246354549530598380673301294177758948274162818787929049271281882733128831794548471110795704952818380832172554315020998562423081097132858300627113097935886948255955889112246641404565704666492525727980944346300788679004415686647042744788774477377349657174584296024537527544021340745487498703593702028020572372804599841439723546642746179112583219722015646064197931923871205749476284589674785963481011464387482398330612088016540640674124606937415865571332193346645384828951800918195142242368470216613000559260166775850457641653384046928551411211805832966071463949752983967431171865506155498522576010156874074621253854729555182627717775163467518354349493272211172389595119577249378570949600088234100888156912728733374239019758430578955007874347659610236409763218392576632386317230378906923782115760472001056182265720043407655183602804227248862725383780400135743371621765611044773612953418789548039897702622169566674462082999536144455811559062569854540201700384944073463902624524002297163314191931040115738721151399931551079525056293474327365354513445699840044214236626172515111026382422605074795696276592877344347640375548329506113128582068172355070848913655764476146589594255293893967547407766842238688258974227773976951515871583651570905190206159616325427380515822907711676888452616179717348294888648222196609514146666147851292814502370158332981864784817779504541972533550965167235310387560987236150040486998204308928760425038129315067041675957651645575805361549246258235406125651831493402368653476436236399435896433640317197651041037987241966865848732382427942431826892285590811890465336053700328383964869201061574623355765870924094419100971545205119316083115527863012916957219295788258119194141676715584400887182100254465535688153074838990737511332275969228991024317506345464137927049696512144876936968857070577435297575529175407569012908234753989081893908961431915656617854758750435817797070570840912586471997014028166484978239652196197088510460586704587178689199588318254359583869400516163013118201983861420154358183986852298620318524782254187580541056901490782965332707770766914418040170114830346314697455180017702128664067852965399844504149832900387694381865983794962808438364477182806774253387834087834641831890309412833276646840298961652655274489335223923680808715084674576009912269103004726545267997217406200970286735047383233363708089610539472834768154286336159179123721022572140080660638064633555843372107097156026697959722341605439571151342044195100640736133916658525583504797854243927485499208071335495727065225683325336958375160080862547162462018532328783996882141457465670085269977226203244593989528709650474979755047730811713231268641448426648627286910186398290651291684426739730574555914820512162972130717431773886746522712414383334018953134005455978908683095096710533205748499321469858135720628418701317867774636984931564290012483173105633332549086283395867908501739122354231041626658927378643425339806382888918377967426468864239636983730033089984190163558860411490102730369325246147622725863125151184765609240617127372455510387832888566324088979895421652077042317720476602524583791447433200621348261691076510790643314690484331161135474557458640004954847902756739296492389040350823445813964503130799894478556435848819828023486986605186350943830076244405806065142755133201662504037826058433022867027153367308956184520432627213643576255992140015032709942747560755161436742979935053825890208168247533219067272401650726526836145992598256372034784661556209649399700877425569539246351791354031984291285219161421911422722557652987989049360161001632239996717857808632476844636454102835733242411459608315853030290856974137957747867822011945301911238683796077650297011702362122072957892507744549601541346902496361454037762840627094222467623031614651443696230424751665494158609777319280976510938707516611414431875474095269374802845571508349112208121019547121125048781107200349304933389967601231110939299940571825859216134825284828190840557503350611851995335971567498265198121132937158242632510044094966007596959884737463983973762675383266453467823436890487980415815524552029752225866672425183230354979821507157954706103366710074490886621258348382711814251561460337455433151449126959169845466847457844951549957882082600138362945211115569661745558872271891653487824436097592088832381946485704561366418409127124793768502785693454966053992494151750677789046762811907598634176479012226995636323489577807636034793377217646474246837606551144427455794062614254793690388824176103194246882916012211689541570487597080025778513576180530007375052087020286158544001915493845846457617913286659714923469416171980447057608832648581718937248430635028304718012236314517581669645960437763931633997486511454985293937031890425428708673126313803944904905427787814008416993586258196459640933143377397679726509909162271491336759424944919016015874864984368623277388447473157481988553942764566714257462511925222286556316252535709704859466807567201929159170673632774182903721259479951915006574883646609389564974783828895288347761797176736836413979482759972604460054855470700543371982004670205341349412609004019056276831679042072896991560502450817434377983731322458914377914350894444088762814962593444392182733309541018954695975943508689066806464370235549165582413115737828665769542193116702940194115827634332856998949893326022004744399275567484005383494127935918830448558805152642189893361085365236406470780489205444677682879338973875896349737792288235547738462529418337469740478304792620314188163766021363317192779991832066543041120563036862752877810703728537808576384860676126930438295404267034753116958664167072388478298545666128613117222549273448590853837384405522247071518393619054474672111472484897204939579244884125545090213395354064203820591776921455600674659840753673756975116327421409182756442597465414259543891021813321249202226228542092393259964438449733515862292441103204904932987326728276242416917990019774094776813862369072697711647812834069355009998771301639790889735546776672657730334565221596909204329303657363556763856766092150828724124284593836807654598862678798564180407097035653230646899190644249850059117002064375929847148502788099298014013493461243789324862640312680484311788285051132437051273486097191910214736608438756404570158071045315783565192362649943688884430707339063369229082870480624164137298318367689999453186260346354786347013393081632736817488420252112258539903037904254510684338147350354018528095153118536143292288501784575221662735091186476272195885464541182136410698739243390127568131211580803617120546027485909250013287471786660172015825656944300473592625724520947504956348785100943601937159578036707987000311303463272552579721695807880572762157548980282388465223017074391274511786497805182260037217568857740704989759464275283005876094657529785264945391763117275909759667404195331289008189065658462658540864655670962867358662715466803745035320036751328540931691558182130247247236346268630988520157972896987645284741001278172970958235756391711844402824850665160764131967294433603578972787126465996705481311675508725859430075345661530291173367033884152918028903687832935892608787094762747639914865406664251664055463499109234860235266131170878654737565570267899393513960470688539166328254011763639295088879605694961861431970641341705166272986397167599391579623138577302887767065244376619917744312477550272317519036642252945769268499960670549431862890160350938125878485668072736673298413284214749787557895649865551038840964595692478678821840368924197479172919097889740536917371482544465250754384110515703009670760014064835651238619887198380119193320207200235881092000452204716835580142441687680572213596333744743398306164464768680446148922069825169912870098921676495623573807483816581180630105391398769944821025998921290424297984244297127914280211168068787580874146146452157238343647833387930967832227057495764816889410520025327386621044328273377193910354752655687367565610687290881873801583122375226989273842913689483118460340366807983645427635816239317568933198576331980935210561324810826450965374162281964757414610079925883094252167714430782171594876974382546867888617572858720995267817864408967637855796572139461576718383402122817847818322420036303129239814628817188887953082297539036451912511505921100764361166093672762250276564535864255789318043774961228816751433788314094303511941024219014697747722170388631520595302064564585163392306202076057837792695953877202836313646926679514901835662481529356601503717280989342763906461551182566608592054341292265253242923037865098353614423076264786579351858462490550053467004768087095634546555948715090080844162332090176809227332593035706886204916761495660603534788431873978529780156155019940034656415661491125114591000840983819646976220905258809217186537493472793362957100435317761288452701455644136456096329927471420857711509470870210883799748731050621727508267843064106235056291818325883616702957906236539979959513467795160902358640134927081099855665026957466895636844112503798742587452769024173424802969351372855233027850898518860295422737101940635019130329495820627026847219145356274401506995012443698268867741663764967042298018484606805674250889785151480923779841247764742981108907856152706893970082585170332452039110713073741312763991711853734346203935788343996239591440475253960563230917482605442149741849969246182342375254024789899999468750899933850554809345722151128921857635693970791981213446490012450563917949088253757169965930149393039362813161040770454066679485492178760369661232206849900499422233026134718566979724015218516844756942941293496251408940601018587246589378986669258445311546560185231487110186956502281354593675371062356594755201448720916831355441588547949161318134608206413933027520853571303727018055179173221154791542054307001356832422881199302442714054206565118291598632445505191768588196351802595925476516009620878706644010947477492894278164418454099794475684974503848224143081256472498088166832213650946793953646486507000303025220597473351229086328423933087106493566836186531709626189076948384822915098680610075604416804331348816542697272807505417929229239959840100731725345663686957494642743456601367430080734751817136985910258375902821604752171718697428552618769045580578920034071388069720687789946371360500059480380052579459444848221447788235209137744324192122710576294153468938013452362503066812051287684496101344406174818293180403740900209670246713514250546042252846083563925950806907665026320194094545531653921226418254132569174921544364024794215024509090475294251606048865732234985107768854745825849016516892184152556447423774965193321376572020897374496098781268384996991086256706691459682824809591722810173394793085667020328720178790321256844860130214042869613862671621584181616559550226422947542463076276653480029843288444163935449894721422189379349113074997630910080227895860586613817969628135275773871700307135554153723357311490183037657970983772034673040114988811463355540552594872986248151498403516350706537832398273156797581595402143084926955477474022476475555551656882514359212854596935586986187403740001776318321929896010380126962978605096213898936049539943632782941631242452445236333810112147025751915015929102217647154789814168999820074138672969504824252356004833852111460982046775050248483127633053601809905523987217209517892364321623803093908812433923796609488919140145928778090039786785691501350504580816282260371901642423966378128265230254339738191577234178208495033816532081666075026561389853079121392071383780086260965618097539583738823442082052706466311593855354133195345825248552519171091658419413229918342283732888554840551960486508791164819832993950878509262723013722467095393846385127298419605324260688035969552466506356548835983741996043629866141035415850251858074544167700719433208383976259356515775910919884965752350770873913092276375427163786150689000838328807312297749558152910023665956614606619250437175130799733910120890102889198872124773267838083037618464573121385562715727556047377291836989093697464637134750974205172692338962786421721255931943052858108382202836787011229330057664980074369739740875262821523707316249457283799122380594622129071930870583220094588879802794091949376716591718442647120319725009870209290737380337517392733667219570932794479129895940948583109712008810341519385856539559566457729498558209796096659307220007873069414169321102183246523024356257792467915873079039789285481635414801163479996617435324432560285238789537042824528146801957803857069925932184645686065619327843141054130363291974020362610783981796212715153487443048087597770849701595960802337055487473804297707561995133051249847155615125738846108659755421436597432203002598699598531225668130266400626568828017982662791518068179082903938727354553400663382763259020168141927812168592096966006110926443999808191182403304922313377284307472201227777244161446806245967251071195856421483622522420670219280958764125933313692313062869426309300535465736537223836122905755746221011920080562486475613489589632679551604422654513315535485004222261528698656807898709695850983664655003842488378790348100746518752906505519603181449979681511941643145698893822175226334919706444072489396549583972579917515369741199381364684695707279653858598193220039143983347742473206725700740237111255786075810368613693109342741888127386456288642013677552990978629353262870837390008379444994439650045280653343811281738807447657691907168347884155181693494411215533348425711304320301241677912287769362683234054130189927902868812365100729874790394065250011224486626785574716704068413061426981166575042712504566520075506160213641342210530088088815253055086488493466968944912184589300859272531801699452543504303186589112422551266906844750433631330484820634011519743679667386329249587785396123415121055917898679354279087975289931469045023334060620529424524358941132575961332095985150077141288168319291226887866403128518255056906867932708097662125990085909742938579150549434564887326490469841565242938160298381591814316515514819505192795754165602968401343436619620801527213128747674757735903802198403405794044911499562770319643059653244645953227808797578483459404105672160849023636709873291887859357535949503183169738267032858115184655320088950663862063020332735191003872348387030347704842670733645938205857203195346945750864011990177127645029770063085619707448520248643725583181629958646909089290884579002440719041107448444835792059014592966568583366554511045755252328564904830317921662022000945085603136296676412097389975756539727505199517314442670136920957404508134126663230550653680140730390269133844137058504308618737958648236880703656874061107337850637741841552974457398353254311537986121063319387877336178621300544926929427726454493724564714412170657286664474235105089971987347569829233754347357167603168130580448380047696563508483268399217960197479092664015493911698814376981855781677044587191847326260010586248076995272501257198310579363764556430651959178680040548419709027557477991191549920668524687250637257084659002758172737802754210897699200153862217366135321591044343234775887271108983385747607978773274540770788157015247458892867241741588916143986724449746105538571109555096486924515494154392430981426574829828265062824258330772657084594122911919588859956825633906893995796199067358349891089314839990216099411515787811223203574998661725889258948580124675275771483380104891886610693318515606290915519259133680666516795190887614873072472240138920872006259218645005897042037771140300962208819197948362178940867259681741318529841471582647207073700989526937602910358558397986286548151211382942375080648033168357616667320875732401374413824912528956982165549158151922205815077568165069282149718350680139699583305751485208047404661984776658746944612634628208651736925092708348582368164037565138592487389627814616634973632383514554290510294828292214696533488368546805060655785930846964890571276276970431790701969985640280303618322695505581603920526872091046988171942391188775222475340518316161765017777937772608788301949194630607653087652532375324956712489122850591934458423109835622461518346586761122860943884777032127548795671500031186921492444853614190725249165294835427375438101155630737747306082978443310200865624688255590911059381336287718355611158899532641762092096747578868926837652547662108671592419463549718825954828537059388448269625418599426575148763558066870896729436936754857592581892625068683975970582212857908034034878174657717218526556131515182394795359118232721099043522955609422092621357123884248927357560085224119135265893299462922668695166583987028272784732557167677129885332530066359724827383666023913861605588702423403280295123359277184584214440392313634942702026720559706232314966484960834652432732966902950830063150801259679584012964504115053093152066132836594049854961886669420547082087813558460326158933594428174722647813581054016534839487911431163081131600630835564791429866625152870135376055223781873611815055391226819184726471908896095800320979051169084220937577753989024795578338186852221120701545987092316742415541908187310441536006362033770143569176298023711292446946049710079987202184258811147533988806291639258838080804161994702336074743125130378643474230238350152023391864029178699109862982436867791666694143784107277704568740296950940136678084746952792250348532788201475312712768533639521174613731305032363004480370800267702961854179275982753829447318524833375172629570887774043269079220936460900001230472166216235472009906956465728423349481703100164564903361559146456213475318568704732029314042130909552895936964836093412568638633772505427657639856988759541652970763438215676770457137134232154557851868349117477456389079354963101679874592611809843698343269885648247519491359525410738815235472564908823059978446067946439433142479400739025776638014957117101855649111149045103721064673324261846948758955706733670833375824186732084000525206529667593155313789871331171867114407106947574773883092408382058183729671252584930869060718459720034549166608753595624383646466141902604185829851597466401850880074835429870588794430275472647311350353242525944777362185360044699906303507336158578342258858357579980866938794654392762823575961638822925223566455099711170148891999629134593790267532702478384791776754596957162501405059139151700354810101996364981400798458585623083258778032603618852780021395248480590936457662124397579183125660924502014077360724737254890306774629646097608708213948664000258290029858225715718037256608219376111057515021011384103246314514833204036534933872126354349606599454976459761728635253846942370023474828352098768968170030220731975676289171809357161374540357384228839324184059425056515772263448544625708864070979740458898163219772372453376251822406239950414810556840738852866693485999293703638333460007625171276566226276051184143263192141744868161895029496533048521629778592853565557449050298018158066671052681895752167235397047636172962282114020585586257883428491171238226401114952320649791298422948074516937016796912624386317554533135642170395900195344202872625576017984341339668118223428462568869205391239759573600962909387370211086782719098502330126575012329288285106905631088264486701197617079548420006576415669590598646662734898406284482331019949135685276375780848221422502211310318646779118208180313747270386654623922169617019950635928201413313424492102437315059306185911545133311095357160732262627394742433243414531981789913540124759964871623264324166781699015927721971528219818094747906545272600309401666153907078944852649254990051034862308178607181534316101403886433859216407274515060781183128627109312625670487310382816552914740387545735546990954506277347362916913910266695909103437760863107033042478040529625746707680581572181113113269528884268873835395121140534400284234994031551307077846374304689290038241087981335457873901598416335365695544059987500650398806832048943830468547410294785680412004674860693431610968881771409668624111455799059809480829172470726720467352911321582017114342551758018571984791110576210331371981112861475962378788274004751426194009118091858739710843319417986244080356199746174882328734784876047386014265212845765405670115552056589442393236081894944116294190517775514626373275846299817789761255578844431915226639406126681705486872013111129714759801798415399183258296671628433957298098357277172028852539064695260504292633959785251904826002165446006344394202701709341676187757363779655477679811286664360372206383992873814529162302325903422182691842524414291058972368875764747671251857007103745867166659855354121756121553961391266057724753740614274159927852999389614787313153595643093766547157640384805246075579000867486197310911272913255983472451019411166436226489261287156598777807530648878966628892741331843194370761015610951706547460148243725764104152507128193306612687163937739579201550407500224753095155795330255369854786379785532793513099018206017344208703062589011299811048476243580346606644315108850538376158121960965523852685068052373802120296110543301326833588716633033486216559131494941778245788300743714009468375129232118851240728176295065074830547467560900480074687640391150918202190206308681746838954550432080409227196401943906296801706297234754699152944961417582438767703627484409514550963884718333887300863300799496364125443590279016612015400069214075556166076955934611820014157420230815100622334084242596410777244855751372885075618090087412018955385737284432655645724542152062614611215847678802565722404355673639819397965234732759110727220055172694605934898958386545916653330897008055182140014145429288081973244706723648457539081240848608574510682951740081882665456432232344415009819038658610512986458177610295966320430224958534784989169927276711568424225710278757039139426312400283194789871806790671972971116073922254711840021179307554557631612346649114515663787433945222936632028639375641844366727893303343665920478962734980047752266423186114459189226880816264997530964844434126881496698956793880892602265010325683529812737285066152855119934780678305551917605730652024577973965774478075193555551728647069763354431753920588435985086751921791817000675135208778259737675254658910488093203161679287847265599470396102172006649783299072530622449216836570254185276717532671075814634202526777800629745003991553817721120250490997169954554116111895040347901266501872508819621020931966536679584218840326623729290312611243603651226264652096953307553649298964918510375109287330263710654486146796064979498376020386871855845276496711236768107677878470921462121012804936069561010061310447798585006718805960464111870311576093874478688656287669186840708239150604373846444721438921772636363838177510947626216047970460451650320900473732010992146646398996320270371016825801869060966525165396823544805604982464313396729613661649651714167154816477192106642515780780439977561358349940230905530047218377704529353712809004972719485250524435238790925215525699105112155413381458464877616873181876229865206925400662347092689725725723307903140955314316002194945606092423573746787424387663727076266416230286080274374043495550563840827585957425007554399239181365811469276812572243021914963804618185958236405184543662549759664682655803690084556633512642339490701168286603496110716504474683171116881976771040572673397568732481896854184938057488066335590374753557612417478318789365915676314424223548624014322058139248917359810746434875155369803912042290709398566502129253987450528380834387122359596186098721172180426740446413231759750059734732823884649096738586762196644061746256610561386414641713759690395151172298116320430685907644552672421245126954359097934708914275509017299967276866807228672166236909876480294260608986528372389259524359555537969007845674044598929425883952417747192300035346300578092779519742190942826183518168003345403734245845157145278816848562374495671973236362839323575629751290096062535609241815031166048838341777160682879776829365018606644216956934454420809878932140378260682586502334816373672578788998102380807730467023143774592423654149977896699469539260929924777357196533144931643586182412216044629753620369010127093697835895009682086148013821749560664532824745734538814833240881382585408700783029697153375542864453269980534052844918447844601393545879477104704290372972538805836778606802669143417919363705694178854225577236663835170971112371974885361206936906600961065829106930682425558425766746342315368964352518660685548779531069928327543473656047762520538472163954250545746325104809335482069815369714441317714779460946367026653764715004950950273212738577376236368000830892787767222798191549721571163287999627568353808492094041300018820118608373344459647013994281762454481740877244359254296382466956433000642680639534872299186180141922562757020332174119567338381743750115432328950879350104322483744015392846793127916903746901424357507931770796006848846141585546163008842100292057654997379819617969829426414593677066238253465123358972942856766196676219049265212172666959437878533643801249728302473587247031379627784982905660827716256002462520517612574348316853272417242698235802846765391203793606999142999012193257111266231805820130953380197515114037783432901293284807578969522899286321869266532900036304614432522647897155093061529281405958505243241189501818498144392019379050793783164042926193546348942922110025242692659484464016158987362049375342489452350495049129338623203571532471185469474748385066576656678361376965088438409408518691413042194740829214016646058396441152891146845143084243919266109190122423866448887760138277299029809974185791457782724175541366821034647542219944434396352786372794241525871222132577940144993070707467587205186071860415935118837754578245549981742761378570423756246783864024886442544610669467509458168036347438911977681315402064183377194270811423432974077627260107900825211848736126363276034966745719295961078200448603144694585684627884045894657665425374540583189121966281495265097330641433255184990536993300203234056756245544583296227914108417304965667466650881682062536051854942446457034263812052470750745410374370104739297490026245683163025686743852530291222336702861822938997200436187681244357483539084627121148487925714244809503620750144904783348391611541413814459916510575670714547645302776242689422519231233344475025153858760705081743353065406014757448865367548288410353010101019587878153047438209825324417579499158426059442408060872019840578700832966832932477981978413214428517981353076713443734750946737104320354838431857494806871232339329433763089315954988787993465755845715229469521390650551012243236698544918141044867350744187788267049161069902470736666358653342976069446153089943503374806175179641935884469201043163844548899461010816208762025810116018824637094263033310865198390575889679431696614384614735428559373471419556386733837693620193396173642917648083177214076133790003910034324637605358483363586516328722042669141380610320869629386633595114935378358460753213322212125701674139033941914104484967733473287055864734564523993945286977836123707563527364064248057037839181317698642005550333131484199805572467397879892150167010340604611578355082923838340621922890238243543868455765431433077056181845697163016026541249972386041054625367912061602272248458061361667537949970934049928745312766563602372803199864416555258245741785318364487973052131546195318265841217096326112683243973138538623298005174796702013554565244675799012151541184925241000945347105658385293993511222538603536425892871565253407198048716152931287001396200504209908413196688020269258944333048928283704079984432462137292339535346954352805296915189541211025794093077419462041383966785854951813268407749280490404899297568992538840948251510422153663731236554045634206087366483741487553151835716311620121263527621251321872465918276280834858183926204006568531409119727791238998057398978276708783663143389969251784681809657080155594788678377882131412852564652716472794828017900849878639320865774175290928208050809842662704703446731072215524455378222658663143234601898801163568296530594052266244389676280138433209739901577219562361009552503640455286765499903240900678407776712335457050385933525432676699444974081663393100046836402392466828581702170642277167399013133163862402547368752327633891465693582995821542631830081807329015675488569539223637279422586885025458808450634414616958057173333812176693923456773819314686330140173984666788568049146242820734028180498557605731205852328271586297264659239842945144841171842810245518216728793119969459504477645864334510755278738073777399969393390288419200112332346514924391230059131533071229330172215229963359688049911422389590574608649676377125870731250149098531686098472988128461646564415071143327678303713466407942404016718328097102330756007612643630703507620398933313093465925844776207985597386106805632670442712275364456810398175286017004637015956123875402455340348309180497369644845966851931256103417043419648407414553240909125600136562073606355303435489891612296738312461076717132125608654224490907543860750653287059730360786644577042648481934267759808769774253678759592648600774882709705439887428330975543856379730927687944248882003428825473808212241993001711765720895269492268147595458851251570748521081847203169381491274758798216476839218474803018081964472693335549670315263570457698985608739816700481500750742888354472494428802860592458758861549908522357367771437786289817393977768437891114471235229153440464369156314513682107667804639436773973409895963075901819413334684055961799192333282061878475104089177298285476020936391283887587438718853164262037130204634846362304236912152877154927412914998720868540722836621357918080770353745952374521507229060266102365385887096082262219674326931250050240407992193309737301275535796564926814130233992565482575690257273158782540123351025750418604028229223894802637269648503543018239383569707915958383079021904729187709005172179899219866646224773175742591734904016725525878022368883039520230995787503821013435490180167563933337720015052179964499398606050835472851006425897927582420507561228144479925223550905417098747409071719278453122402548320148674363465513786318598129273962693361944616737407120509019930900049502140646539228446795570389681370068133816866214568622269149644553348238221438795007333455622343828888181054117994601641842447273307291898976585637788191490471547566181667312977846746822654200193977096626284763055322325887655684182389902387409292646546018950606567241914251936513179414810862171278547467173623360445736755681397253224442434031620260383954873634531595253650955903227470213348516198479562911519703620829545360901476440159345823148658425899178913131409195368381150009945944986253783371873267286577929558231554643933106097747349019017543510562734260018381239078040125785760049135659038821882954231563186208400012581754568912007410867215577229022765405101765105068663635183751583448524884894440681739082924338694601801466378948488542401943981997014071120913813507753137628426399059022550324135671171570588665533205985276297053638128602385503325320383016977119781196251582805987688683730124246861682185735390482697050051410659693475350422066055351518531449783275950130189534235208357576141857238604964535471939384293895510040048157402247439350401837295207354763556460217165277930403633297122197498096114318807501861779597294473849464082659409540578684407000890440698861140490707137970412314839957142778714874982373670164079521596132673909230037007494721366929523437983348545893486103515173642315932242143657275144176976656458008600590187798939231106069187938642508249495446300454029509942811829263717445908702686555945947151458640202471309006973528400768244728489955037029966592828747847414881951952939348668741264199784168729589756411011138383216935401083779731085552111235281777416529692655542804885290508311741276297030616006104068645625033850894332820153621802329224396663706887436296510917125390628839724031226848017333754741684298058497293353880230097532275945808379812891295073413499315805894226887682652905826179970525427791589439805770704096223553479094591935333389014416209571747160861270090902426053459725271973776745230390111324740051141375497419149666460337389869931871465669758220223924826217871185026752172212002843109328142570933497264878873275932532075878362939126535735735820909705098112370317764422698600701125070254147667398812602636767408575990037978862143299095553368745444043570316217908416955382236064317930509972358811563082944400773612613524086188401817113549697387601101210941060662241366571132108445460387686290099960878466513858066228272431933925397738812197541069300740590398302663732239654186395501330284160608088975135172196415110952000993635521105449647881670025780255884041083656402233026819779288689862126321562029894407078639096200133735128602464686986005011945007528424556894868454588175530118489030515981242460084989629746319350583987750750385718993764603799383543483215358674414766888473401505825731154037663169029245404763594141872569625930147898009258934445508194516720361895497639322997229535629203792015379577853378566633886748836253460420228139498126688122973855881208222240768246133581888554299216713243293433469255729163421010334539097288000963896837313591604095303954099174847304735927802601502219306780715807294609580452855749152290456792049577912121429668707107158443702443139560084472680958740474729437504111559242323263765688116807566184094280195025061873391676444349953053370259871670715071250402558133222673151456939196466781301026587961795159118640375239487166625307624277773429516229416826008678528017793495014133739109452279297147234892731335538850811735310003578206510363161167671410955565145215488721791377715635333212118511659481201428493834691348265628684384381987998905460176141048714660170589396639773987725141255885064164165595481845669851580428389882080706563265934612057275077747569281552090499411083867373530366587257455292332596896584376503062482273783919674887053291532239937529824283160290301286535131570603448527609818498648515372683155998499905327792676464838466713557293885890002780618276455358433696642240273865486139257580243900382135870624041156492067248601091752074836479955135589606893461884022545092651440597193661610824695856451086150164969408476581337961302415119198125646514106565220095493787152921884026110392053473382652293692973056976993673116582577622534814991108408992492260995983390102089978625274969269709809530876678400420332642176918537924892934259799464662021642682326232726749157812873614569994132742421003119848217540557739796361948810160326031915804100728135923202424517895547841152445228706608724101333529318626960478818227826215071537737232138357607983672933998860517975738353112319642039852035704337898729892532466794532863659840703407069111963718364945237131186146843587850811422333045251081713233465250154594682237545520475033640915816623755835530493862967329597413852896075597462542558561860818727803852512801452587136860312521728513724686832161386502199608582434910662681955928038878296092952979396904765106590032542967040789087920606301349142797259534814029257045993646762933340582626978948075235815294471178367561293732637102142588098577006416790078293487023456573521840293823520056260682325930412925022076782963069014979104754761065338877436222752029833593330304694904962090197179354650771417774567976452116935640042269782630414987091323252032899203658695698524382043125028380277858445564797935493233579423809758209501152383236181871779437414924287853213198057402591228750884156929751458956752095162471810341708821167128853588385101672759555089223251882221414001051365478422911503903335572347808032108576798957364461333093440100222417697104831389555159205114294926317263347030611422576871692689731522324077126845881315887435413343686191598111812716610801610179068033777682542879722995718617445977675969136262827657842831899427141596134335727967289276684914835024601965191984135964796010961819404084705872571967549926266484174955140063602170554610985825570679799787125786428945962639485803281265650899306312829356349772677966428168533593442503289195437366146051426045709982847387026085641333987610557192875295984038598794401918807479335586291628020979504318589098391396928162102926855380410417312097666750648549774109603058731568572660472088895583437274225539816673058365187663446663330575311738973091186285728726515003000642575705021707738417209339248353595312525356284795516087808402809744862176270426601609927885889501861074805241961121925719401285870865999407292846282383465367097409613454424487836075301406947026773238807849136841751793503971912023171797894935797484159240590493824708968234432000390934689071633543100554581740222168784936210633273301159346213229630218949626766847276863535315736341566236949077628952439943981199720984688777432146173635028122303929422169731547350557420266066474218062291392037490354509441789019533814286863825666535184760103954447406779146589181187530201340741909902135786565629461444083150665013018629043720584212199890834033744680251498473856858488438451235732561366130346309016882109646791356200972458125303217940955803838294449732755871468132395250310892483307131306672157283068076577303921185951323535459896031684440263872656007170566980319929033983915083677111764183953227007380073724389369980695352237954766729202861226248954312532910450000989126918280784551343402273650090718706693549512059304937593488189473842012941553609772718531292727256313484009549197482473959197886046929505774794984788438773096113484798726909277834647483891587997764998940550078377838830979373334393541678878552681648090682617646270343154567713054772245101166318697379514988363084359053657406584424281725336596786195387857082663730447319598405746513772806287748762146483344116327053793046146396326436096474232794615686648989110812299741394652135119879776961519202880024241470456922042227772729466472430120897878698491149946365255703906526545754520984891142724074919329925609692300469619712290073478929679474175418054159383397282881082496039246615300573954802898592879050161239696463739630891741448512045227313648902035186627828626936564074828625295312863128403113832935414540250832321348755224584205738364906044365478421037527202728725135032992847522362298056087335286480116619089696544236262473483571403293740032743208873103506149342786961022437303352472976554617401851542144709706349524007061730936520944437067966715770730746595388711317525431155830238902768712061837102822121134086367628626405588546040378993571564678315043935042747666639572435359791542068015317938244340655547717310149191865053015977876896483990291042258415652429173724786679865507125244784740736604965116494862358056328503212447897505433840587817659073079118516778433001486331806381921881380238336829352294680493822722390381959737980954475837560663425048982233168473989022754541440379266877293654382164515763630055415511178960844795715816033463139151684823813051065121085195102189714117144153758627797727921269200760679612290082649113203653724726066390997014611990292562429713200402637566327948818397705389465743557294105215873696801739280223403653477800002904235240061302858162767583325754683415902074988724098692731453483235156070299117725836861400723225052277715576569306389980280782584270017688574015461095833154743381519523681977258210852247490664301589496085812132529130259430251496656901763734571905808937799729642858326352369159841880557215673141393682203618389512851185592003047915361357464962203332704751116231451687556556184605594465364502707648008820590075899595379332242289912250758390654664182880993094832014987268008351380975442321370393207403302256178360351178786868180291825760494629545898088477350798003440668389720588098893235095777796586582038191958409749285083820084616889621290308669599456953370544762140671722462887285169501349488657594606415624298890838850451332775990508919240307223720362724223820102322641554423923934012623669411610187459793643777223808205495875190502219704527131678016644031595800747955232251811130985789695657953367893407768763807260225607718905302694034542915592208128669744061765653283406549616449461079543824426714797751712030569332652285035682084359307808977414459566567645720288278434921721745176266715222894127903325531997201626624413141779354864257270784102109579510632736526354018170243856787010780832329568567320576020315205346267392273889044204539895137937805747510917685686382187242288572527378452642613230804480755738938882849537867508035264616853185073866594306151752604571980520371791692484744857166420068404558785052300261948684506890845954254774523397359313496233871036633519627583408276141475010060014167513224169335297918052729358043839814333023155312979178123777079602012654954430414684127381794473233884641570698325081004791773464275843896524429725983409509868925468316950748553062427594768536635110714748747402435767570946217896383865602848219213306864138677198465853619039686621618959488536758490880879507290431361798435597822233840699385156189031941866588262626470763490737036396132501272001674656775140981542538989474222255078105994381437884085236658455780933458196818257336829433973242624440927345250779424924022476003779003424363230879742273566967499382311206081191571641444201718719623371722753224396614209664607953313000656673539952740433185553422865382399820794102600290284713141338250069544150313756129323948011699160958769549791771022011192410534704672431044847688855259897112834348009745013947213823849390806908596818106571926550435702927618796335947735943933221945260482802857049841998826158119477057293660282787820213938575324609286947264633529235967473869921856488068287742202779372758281632719154683668977462258769193140774249737009018277136754528314858035177842979972396595629362053067077583224823648632415266063590662307557714645077365846681686432261276753713270050854536785246721704159781852691460746232276752847317315816354341025241565320913045729430085060874173760843491707626432597148289113824200861026402543741826731240205220341102391109071340037096162311658915626796715606309948572502806500318927895709041760747391148078900341743526136419507042890278401280403251936204747528860569943851343457575446941253558855462707066155030872769107352434961416973996439745746316856383151259403731281501297322299311199327731260245368735970112424082751172617623053041355322318758708534377656085175727729996612660810649243547410643464742149150785080886547095079472526033947105819701005902196995766671391138445339752788704436563366954022163487963374741862426706863498320064225597826268635847977332953058699330474020795484153354514128665155397147656339265644755891407922252685373225682161071095549676098893707370107169736580838408494282161303086801544245687307142008087715266462046753170129594419610269504257991281692549901689060270213328237593541618539158542267067698096655467766518707861116195664108143155331383311981355965456473534722234478675797918857124468526601530308929772522639339351424817119976439049617077566991372367771058077366824798942496236161786058457310166552009068260185223836391660265408957269922957933296170272961907545106862682234630834878363355400031988776758814667725215868571790466756051659448793845119993177034357651039585060461434573248945684423125421107530544031986685040893085034675979682585577937712894355953624004588577243586372168355714168685890172658837350856077753444762563744652366001825203209476476738288202451654699570009225272519573600745291938707749750209086191401417659489962253557725926931105875437963849323797745939125196854517926204009795688804332158294567519219729144514482335657261542977718371032089902731980914909233950636504944470033978603480336644480073070229327404175790476673002143930149621946723920555093416511905297598274698201710902494371533126281030921311976115298975140733017839873277976363372855615679276376095831764125739968083226889382719123789845969476421209738165534996808588020122416823135593864346039594224898619141968425893990727878557876633491516650957515179740211364916732395824990731728565749830339808214970780507705489816896553952615513070895160493563989854259116747498306261479871906785652882356371670633793715320059762066254363395028607434801420330383336197684524442841672392015355780845361499687335767345161839655904038517287030460184882335267496934253480679012394525390888247903210562287855850694636760725792746181984903089605280811268609072299297538839969610625462770947567396260703293210657489461304187385430568214078470379446145822524524539669386957003870396334223163740123769770350871993374233559467706671288564839250387118681286228571069783530552536545089474018023690211268578240223774369745223435570942441988183912859980479544984752897530561701461020014371716809958355321558521011639332358583257793804828527585504983761810763332806244724138462244395734533642400921246653537979115343046112335620530603181788090365845355979958780515166204298400532205543275652927965666413065696781555651696562008689378048360704777968356474617256208125530145038783355684500812027427343238398675996868381969765047128271490962738988878764446126909392793409967125440209879603907212455330256565848686044214008236297007182603157610888090167016723746017535929907467731479353908167848375742420192123803849942013746888823207416856428372892951931689577906961958574885441928942176671020766256793811812218134804997018633488832709715824259012487959859381616655036093081438903214493631726660631341342020626346795685129881896548171665832895375033728719051920487763009196838004016235870717397251090082359566689216774989296104465931185598401705529915933046292654844249259058602743888541192231577596360690717509590906264408221862326821395241306184120437412831116298547018229385886500869364151890690685575369191327477801249464389065682820710630607470794068052347854153115102886289042235999185019851509189388392124413212276130534374394925706368421311315253363226667459259551411682757039793524479775313996855040507594897285494847864834013866746936474764454165553984750919791159735833519352080579063700673411625364170358811508481820209875060651201563338825385369829276632857754042578560893051977429281061045634258365600513514903119614044187361763820012530232808512860910420137561893579372524995744831041367859702281220131464286420423627384802932955612282160669964431181359781150276133723417326962219788431734046653543639051747704956330279225157069737605812074841890935501225132342000599346905545373435532006471141380381794694786685479990969099429390218365602177385656509667723161205499638796225694399901321175542097111543728791528819736783778984927346136798307240700085324567937990735780711330145706983613353623747070473492039716691924862908314695059042331298522213981438907888906365984784555816136704053581532965875034800537912269648883802981351057015507671307018881154593940796028853208073390510879400316680968554107531753040141192895834176575172152714902346312297191515845649266061305076411367963827311541292013120767602206546459019978958371022870346989502358394841630677457293397262530216182450213255083679944639701666965265189622284842612366239942253375237929440315936103820629257963596693640770591114795512084701344678169281048435290393759946907791272816248984732301435263845554762250603466951119810684226129369058556595115096022691029394014142238287933787833384153448395571375292967886553103455507556963188825177742046473587276346411254808555381912410237344803807732276512047840486908071745282651229138238872493361281700966454867364511698870114361010298271900338360905490162115876224830445179426938025632492799517318753249177508953371614337418879280076790954088029218059546244101815842049506882807014396786271516940958825612171835109608550587864834911294515241441352374499958266802834321742278249990837892335721873664152214431952760177274014416304226571568218206331347934368300938655949588777252484875628309253598174658124271530099868038422947723789367295091956573909470478021907106023113411810156779391709397502957260623725936238505285324380628431775219671141608326252283896462151791916587323280043975582885802062952810943343525573673339614911027679084309509154557391821272671748134465169894495235735093851976955432417991234801002238119869970964703097688043584782569092973076423723281667363316483694125099756542255133614734080486259941714313099104150143680754808232310406632616159347034728146497790025697105199994236466603474562765983341826731959460290476612642474360546603105656442377974805929056221683454755182826717114156958479565145827675452348821301654482956850270973104363928054987884960183334395218831062994494276206855969183196208536859436103672368962478368702597661852537208986619253805064361339441103341433846155991304150787520074687924149144887997296677241775312096243759010119589984671563793769532151841318474594184470181482965023067867222391003349398522019705122526770470357496681259583205121608062060997193125239515466419200290565626540387928142443624408191320117669836421099893954418740030816141049854092305355050436689798076589928551930900455682471539313080685115305594327180010494129982946710880866904336830695151840060424200318779296189992191043852482300826594154061224188344919301387381460866068283362761093773409062741664376637544141957397749685034211705152995246182010121117346265109451125762118432211423122386018727299600861803792343440462959152953497250061270030782804640029752527745689850903752167345014019887982068281291414635441652250877010904553788024938394094688127605647701048233995107655952461266468465664279300342232308779869124352292201741434820018390754819381908116432284865764797691585452287014526656221983414804339965529245053386474486538316554892425885881898266022091586533146585885368347501428445296635146205899900694193092136701172762230023416607123888130915244696788712195895071714209124148122959540279210435329255664661698172725296690321357162034685563097062674663648384054016645425432962339078724773536821643843301112007032978267379337362602581536289122172590256153787831290217296433462183338543514477727949567182273913918939426368153560995779834224680172719315720353157527260629030532697926005264370519002142072002265958322046430037830424079553346394608834082615239880374337486445059684652855159180793828852680585469266605634225072898215958225460880014541924387162893007680904073307863696540123144527366158170901093779296644372578749104581197495816533269454068509954763439464097752135483801197553453286824207467568272018515294060101320433805622714169939231513776090811431174182819538516339547078317077028891044205385066896415745631017082255504407899750053034800097854204588534839136735345716034236267123838303520768586179194376755594311242511126602132767616058260296804203991441854409759979186396266149487410430936647288774995273373438335449897556776975936974358089550790268801830400166270489857331654243616645912550640219057841802507167462034622309303695654869197253513481932905640968084523453119125908937889716807550128363044006281976935608379727423634904684888240024015624105209882099676704317798299601389447008543281640419327813570091951965787165843252427246724795085031698489174822311505860630154860703277104376384081871602223662938215098471214479840100913052358158480993099931888245489794972380955038836518677193195068496657029092105009374454166882705888065263525200460340347782341267033658297942741199903086479557492049048624162885423092971315250807383328121388651232530067317841738614130767484059954122657231029996997721707361602412794244294981060520388655017376236012710463257704798057474352847557946094113952184230752696861330483267837102792155515532199362158345837968380434887183519072947085308409045479575349656620599876828999303012417329131784783953630306710684197468284417478164247676356067055421634154068802595993792629335469860310489656672695149594646372138109927649625297739830902487897770068025536416967017295054633853390551298274428223221715997806879894938793053831078292865677965727594319082318398907574586877003282934293041644898132455044941226230537828661102800926879280933881487939284202669683932234866440199407117370608658692409894401273192237494857092498870542074825713201005145369016852544255042376737332510193328088034532006005897521466061727454540152764150620028132812474787746256424099983587825314176403919920054885025903801282849607718538038537359698657453133544642885285443749699392319484486786315780089919883729847918540115138852374586831013302365733888796914692248825497829753788512207921147252249156895569781971372243391638888525968268741094044355928238813614862902709244891534517553997953218886283288729152210567040554981806603169781490937135427562805660963862104149290166111730516276420496330044165564502183155580607161413360498375994698565234042441484736437440060210420904213846629721332901050099018879661312287913209035804193632687135112955675346934847702548508392353949540632579291842009240815035294040613323022254558130217419765524347344120641636115975809647655607015334248395082948472478213931385860826228717963359118854153083663351854123371506286327517941908089745327326565546618744743106078640337420147782095101001443289386066190162237892127929271304563145417741425762722835504808443306438479650300068557698933859786782295726256114619157068132737521125391813149184986828804211016077538024019496023839724496065674498109849320031527919388690290676848272843111303350553651588177160539311880456163204850730545861181736762836247636833064934555105040341837462205542242953903772738000593576408565114082107020562330999942446942063353482236214586223721899723924242109396797730601264427461605008121313515469077406445491415802686451549620717582393003813595946359712036601943479653188237636048187217089524476270225824169342943546393345657664526222890234708843879007991875304801059907380884711312410677244592672937529390558118416903176491977895668855457678464678221101673761171478476163341531426294322625413780884625137832430277308563127191016255895301748336492923647202027379205377576383995222000525201356465380382815797144527431147415091649684561259558856732846726721298096670415374093092554819233999670857132291117221867987092089226836853038740436546554467370452105560821165373199653592530157401809104992911101584660450616299861592938912635380754453636908161667732859902517746699159164410571995160243076418895568915494108789121386873097031480067420136880450954242687810462159572752191776694313169935047472403802101920580781255292613603082931169800079620523067978217090240038703799427384296499268691763879830624952374238187294386999402537501184695035367197138847411411298402594965199226912617871752920122369468946693328222394750528595369271023800563220465935464037892292407149656026898006148626042845457234652130199554446841287070962359807040472036538831544221952376356605072668628993045217799277090071895175240733029823033410879761948078921802822571931980918014484689062774644078560167184939995355703929010136351531588684124599593191805240210496946907832780451994404738964167311063041884503602375754299610831011296422654876079109921503480205490995200547859583350155364157740333165006669974252482550343625065566839893939397798564740180865753472947733510921212161701531689919347455941707633830239890669130123766116287153621995290994326668445440803458671696897605810122149685192735991623743137468786848486233433626261355466604868551506152459868409494973618615001073378678493579435356572277402119348837484350758699893296339048484595323030117694969559399675431124585279466286204781452278284092382000485932836248203685619605906408127590126389297303242063428149131175180975687925831777589180347301345348236728591238067814478995162093734761349225370396787168393812401171826497970938364467274288445048123212770470219180856968155713444505767955704119246054444645084453705663516277962150107517554474493083979569378343716477834804637900412859198070696946476365313895252619589425003993634126991851773219981152422164595137740484420087842686605936753609485889041109906448505542401707651910718551340108332361118190342811013579157827597715851991731224048161482096612168466016925254191494868318722402684321730887794660054783150889562993170550912907342929333000558735729368714018363495997724588053608332324509954403027879695766506844738040881159692868204657025209717584118323729701310791242429626148877128890921782511538172851286705791135825685856679121377181025560287894027425373173701844332414998643580213927414790264519676682685300265541050101548119799937313266705777723164054331371799966545494184397393281883802490309590505690605519030310885678543065170347782267438481192579074125359949035139283965698134628092915587398226965038160486475599529365162335456803299438532253158735322849291847203638446993121657691269382265817840135237867028593364248602743789748891468730918895342724844964602661543506503646073905464442297028188627567497546453784995364420547765007288361462329727337244585752649524254570626180556470917079518775704804479150977856304623606691886905280070269405624441856456826292987775643793939301666419561089431664199715463998335204587656360691880990820244760440583993247807079748382695801563646808248751765401652489019438318025866606128578072789774132162525009108298005623823427462209365381672917227293702791970201514365428620033926754509312584930323933155072265409611705156907236203700452077335130759084304453973858353937069619189786063779763269879373110975410207807293352787745933356757253327365557444733449968754707236215215353530012883842525150729842672804992046862436272931826124843204482190395192951437076951159645296226617501695532417101114514455344541427482427520064492484381189963750430506109437826817060338792541264206071718592745418888229952463642733119791552154481247553897342474261999733580302715070387403092399594757757788921240083162788003999817308286903987825226060093666059800889677456255065862227874961527112052436978682906257035843898773477393073581790672407839912162654104861767085080651250064856847486064050113866355540358464068118884644499705917963210836149277512473826272225992451351693202176985796639499312881008663785797223627141988545768555498995907391887246147150824844787234069084228714388887365945480824549314034369835397398677879534309761680932386654767377454454858644993725979961126508307355261407983530542472491438126573327768921406684389956347011512738727627849449742678107555123832779782700265587100378109371086943861774161495866371152795535571299695872551975083312343960311781360095389971958457750918063722738943243083986066104839469149972681588666955315586543679482684980173037736888193516050308396979025771089706108775047212682993667333133809587851161881029219746405001121084040925311756907316794061135187950351265176908974002268692606328040580172976830577858074820372951219408290533812591323061020818422774811573974505397554465953778161280966038173452256613502550437664751526012253598452884858052115732645347644720175093385475869041149159018703582559543332083025267389495319229185316975545359625219245887310439366306206382835892169289435547645703668415185435647280042108747127033415426196416183507026870793852625394949049286741978893567161907337901286733606577333250854953001011947871502633043269094396457548455165523285337302671341216560669722386619178395038096751195059795709316254288843904685082390474592852568688536024069836578576192765112451934330633514314561000320439503519987518361136951002854044293721041805717949432515385387991291230877745596158794005399535298020950371474869634399390940221561734306039933997249169631855712247977877145661580349882102449155003715337099196498254952606560379036510148978118484361684202231026545861592237411082020115685823101968019996940103135408024711685226247350574750690591217107062074752517948458862269581364353400644466351680470578160021905095386782408923163260674247158873622715968999182911659148580322301275892677926672903336434105216727336568924457563446806823006180978491260597713981833785412372063686176601865395600566834490667479505957781317841987440740027344379320995345500369151079902472844783231897317704767694202707067472616594243980277379699877945799146050775280895446171235382401947561999891653764395544259838929248228782285133847591166306132351646382994220285957001384787216498690029244760866639241882402704394762096375902232170186779545539064005908784047541107743051049349497054400845011511472655642816865445410082345310828996386782962842490773010030466524939872174753642375668182824646491769730253864293009260854790526219393122071659511751076156194327595963362511120282996766884076999237679386041437353580327303967399329834121986646092059372356961574802504095698810271308561137943795687205157112006277676567417853769197155323874850228092965811152243788869242760441359328176572140684146099653765226255615317626807295987801564695445284501119678804297193922693418685994596392157296264267682422279202808248086380307085009810336781456175980845631869943065269962872366817555412738203949801788456524221536122233178316635596287210312165728143955067488386969628863707438916638872708572709691761451431713745106802150817872798802992375323972571035972405725375435451002270630275365286066276814776944271871183438987568407963521453469976537820900570080565716701887939582371026720705984222276620630904827810997930920876257385847753045463992176356700647879499857593662225924725161165241489162026801890360534436721592589653245042521078951857555359661815286565299506163172339541703994887610045566547470513889899638206038034978963874033818785103036544654487989830337702306182692019657634639463778175278473011636855158444336012449945903093880924721001462196816913420945915656892937679220345247878291080406030903152790062865258291423808135623462927169995078780481101616128175013380057755449327269623162248418111878021730670028865446183383647679466566601878408593281968467148818103676458557895437785016139785518016323812475585002214716692772853339464276409528798326818415370854682808907777193483317782964395375892928541456399074828551454699008823202248457662145124371927296219581122733546956456245902256882994810803140349385851068423177578242896620404897111162701805716734091922291913914377887523398098286450377882736522428211001331506092739868904995615853483597936314658527003500006448011531518209999759694353000745718300755738884354713766121794244503809301935861793104557989898415344342050126998297972878526200179172226153420264270830240422879077843880463912178390398955910902092721999642528071085266129368252588607262026928329207379956222360347365907196594016532163038794680129819299150870885341925319144322509039227324542907159366147342724244718372796412609675688301211504580855609818354673852749020210011076849430647502731900139446381763450669555766175068033781781274433906852801543454538279563148689157686137602896637935086096790493546030798764197272616014078221042784707117899700258150520581348354394993121470545979509119732085694725331975122038192922166761868080174673308402124777315442757223169559278851810945241885034933092927188137218327174041937113282489127347886937028390903848798056653117169366211109332464053645956669766301125844650452510255109242352242762282829139457739796447716648355684059837845213327438058568138905072921330099315236967770575416212633199654103494756337055384062347063440428852377316536669452232769627578540832924538354416930328892224350742887091799293959886356500932799472576886811861802366768280793602553473369630474325074906066430278989265259812787180084252252473536047191427409267981708872747521497801759646760940218400159683788394927338485524614360374598196403710176288926522806230830733668125790721794822741694685409364699088063311135026938281539348202531337643789682278952708554029427418853361496777474521687892816568893310873795342625455830602906531771277847190156562122945284621952137649258621565897705808767640882836253554669072278314560568619619975641447284871644498836899556651604323657676781478473512758606326285462958527645803100268501420041094046622243828790753952849585926256794255497382833083079159340005165604026136518858232680602843272979806495434000363920470116082204966930649445283685973423604160866824274149224044543789804663903052194124450191593263103034240803501900545132675932749055749308284813785461537795726255155467201509088155654608582751250054902775787410549892651929677691720749369753390654031525431078394974245724027845118987993440243756605401743767417277844905680953067505797491305641636799639214030462630224472706730698674676857052349322633373240586668405976290213540170255821810952661843843121097206753491584993413385486541549271992210014295070166710321399460128976256575636054073571569719978008999858347046121360722448754957218358334769473856677303538409918480444260126716078634150379653280425158180620752680928051761194329163946495853069244061164214734521254284921047052307039818942904736511055712963094104379348863284345849152993182346493480113750211032955342048654369503098979612302551399825684589362676266320528672867190991561455066059185814127137118727379111709962892377611278612432726415435527642141406535198475199079365761610544963810266151223291789362494372971509352250972135263719731780070181400166625216101666732556493101389566136927856285274722606186917775874808253378839830535169188942801645848426068844159431407835086097189528563034020057554479382544983412693746095974436675931500339623742257940759809178734977750059205608850072179170838614506146957099323294185873130700519905827421326575782403592753498316350338632617086442217785195841511031474747227842257862518074554580558781406888251193043648003839542370158307647606299407866875882777474864755456916912012904148979274875780374921754455158910291900027141103512103590409441157730903351038586091304517464492150113637973525101725136524807512960341523535800664103530159036438854978950285934060366325364406178535705199596332066510349803306879316021247288799538986779569013721228550642472777214644665727818686778706487890722040434166886259453354868153170154685369868749874986970335296480357765329045486026781200637062299960917104522829555204166678458042786642001588274665556359013285768331636803892092017193308257111982052933001260105444497038961277285458854692275827910361065467928330397366748181272326869428662518006751885599913164828517277008950383463481451257423738681899701776224437455961693242033980340738419815093807466727863442054378521906350859287319049054655220646233943853352599621437920187290011890634949271237510904711466982086010188462363772960840819279144858888409716244130741184555819375188490935719663325583435922991868664767391849788176151046770190973324812365029206402339800832492421616697193677814151245805649827688531069690346974344454525751206664764482649092372426254398252943578238311445350846656817926982593870627332988240311019431790712156887469942857675746547422501510619550339401512090784857144273831066041100512352799497713150028609507466805732984429840948808803571695787349393102981436416786199414326025239351343292971441194531797644637982244191261073898327268855605925909967854823670419926023146870414526866527647822861634787290503084104031732733971770512950100237488817013311601125048219627565909436206106145466477377672862166164896700984189196189630345950527728357319719350921744913838125590845401983778776940645430807834922155528982447930173232933579537257962651762351817138224909593229005713615309321358977508854085247674273474659376398715649468220065495197535483013658756263932834185728279241324735274734043439806038187366290168328544248938730933683709756025633113225428229837271496084297443918251859604285821832836845942351042622569043576826607079108901050731636303425071276229501626600288536627844100064363612689352703720984435072812812342291960474695376637225741758712092334409801817309561590382560796445162349624920207254789929950998424031993407604575290963083185886374339058118283092360960311130622014429936093433737885352577941819893291217991647854930681540080482445161241170737787322172648613185474421103023340253784398603095291077952058900517506027517374514695854976450263961267559097218041277318309635708261989255672290408448575824852991438543127289247842950567773088475123148047353110556184922715822771806821364626065418761340525411543694891924018190411047274311061283060129390791355777448358075248403094373883984979955170257785287538639780108362950100691920787917507288957991537303002191083255773773705540571603670154224000619053461520685594474614942932921579685136266454537032111361615839773785094648283974281869644275537881277482719197786328217529018046035022552996587297205324913627245792840673093593719834696218271455751764682619337343953770048029778861711819697980072204546296454505412943176764966024174524139437489548497276339659886907784264645483753464803098818288529171164764507504404346888473720184262517509733768823067024501499242635252347497149175642291452157053883932973819849182559502021262789345818789735733553180119478603264584130406223069184211149700581375088143699584868610119225889750857991897194590862203161477023204096814198820457934887470159112192732586944738138019719181160172555287275807881701238381324219430803016213755763583684400023656526872278257129169387226797661795613690184115769615389896131861863919168180238503327634143308889429418401734074605281511006190114852745687863626228517062913845193950558675766752530626928627584012120524077167073800779864469810638422597687192352503763555979728577812214919359110741387534915279682066085121320306833678800778584563196622220571085079267452579702466258032248897077201894443510819999841972065241511076014375063710851870088806975588056899705502867516085437889770385996489389429882556062733538089451669221652763862916179651216325718651318345634975124280509275143749845720263009677817157545215722008250540377948358363398350819951819856183781746616344196440946054723985262080363442180443778271035139343807139187475775693138359963482769539605661729301407647242769239933459352655835872018265767762096842853136680229202419459722584214169622897321396123571213735210552103227366081974555178679172730702859111848477764704253609795888189527031829773614003086682510669022511892562804416798833195336472876601068155471708117881426363118064070347593224648363643246895461645071317776105602245400499803937872343454268183280315574201244812327427375547124467305394762764454694395570186575607682922043095633334194632485689446869110875338661836259006998808764417451764535099113348581329863968817291047730682665040455015560450344735641079283857603272144324506062613545040510870798821802645460850061541461321012836574032486739175419810690408902421847868561489674803320280734228921520472242113073938705315607243804128002440603013572503226416004804529586138894817494367166220819840873443570926424547037604770716114225110556461784962527661987267373017939936417459733082165680144343008351869331396547677141610243094213145443100889548456283624730116347171370800265614123329152999832793847206545605445876541424817946737663085197433770010472436940880679357257945774212297355495537590160301454215559906982310990497546127750577986415548224742700930658066968867286215401014179756170860151763852572426294135462343305315944718440313170063254283140771821647857032736735565270603576848157640298791121677881658835640623441974130179702442002418780892119671829540299128379290641290536395643457339031162365033952986198580735482467793293196821829591027925158448962551251522507866507203339581919956643030984694241738042702148971176556345529493711731055948458609092708859586420247083208631741790539817917930106605846820914142422843440267208967298910458417333917394900245307945651839519482023069277227163180556525976231919186636593911668710534369104970495552434691283969837549969146636219073325361243475213137633536025327615559163584069630851584842296292041924329188208306480409363246950750782955792327792875261798013079982557361415538571038976944584646564988645689629950312587302499463850554650908830133126644586676272790728753787780625176302138493631889138522766491985659994334467771007105800473056581963463384068678764139689153149016357071284566212059897235183775221906123600353200681340504756667421124788628394367658209884174593468648968281508873158110858685423941881783184388345596879637278517206796945260532298694963507492093306650229997060435733888296280645956086789916109999525968404191813340485478241702163443031784739632410328811230045999952130383362559686048230646461673161798896225247149978580100592761323456172320243822160795577714726684749441390887824988508138806486171889297571085495879318607645630514611132189420294758524094071378090029129929865012073732265039528530413732018338862982645653265337752084205035798667877772065383264052881661569270461179541046870253084688572060425058893629444936657441407793521025733520953238978170906639350965207697153341922764492383132443906544097520793632039198327436228051979520630855564822896000708353010733675653265987462589053929370365568559633008007264776373634134693948003988402557783430209879540482752648630426988138155149774423662219911686853179443270518258213420344030846910086405240152186554136949910746422349268823546325333228510317620547301916998200198764875880952789629867567943337126847169304361655454005529589938569323835886740417425981055096648905902635942310440451184606484885205367388700507383337134682697380939421405587861856366307057077712627854540815176684460934878858829087453209966930623553819353481691499659621260639451412433961577405803482845334919457326441044271263484420822644367916949436073387500996065801845354031047598687206332791136827292557382173556050641724283359396241665138962320616427345343004655802142797868447003375618636886356881458885243937154796831567196906922585940027001753051091123702688537516318270699607058695516040599384398769312595881580846602668358794523610395520420558289089352679178225219254380308477526111293362889801241498538657640339746323535761091753628755018719397205141451912440449699648231595142465482240318769357632630289943981903467706282150386990414849179383303813912263697209147597506100230247098373127763138865701275816183969192550617137728693271506101840618546134237371561759779902960607811127484194977789348388192365088367847239116083492342842142690465344001063133023528436457672688270845391154972925975392214873772887918385797615396941065059043832684029774861832966406241268774940341212353510042817485616644944659558196276380351209193586836888982500681455757755554232079027646961836140214961260148343202295745779598784473009972678013732378214444737947733553397943981534713304305337611030594040712143522877174765531750470708872159968147753665061655403476941374376451580690376576031408849670572095676554601562794681481090849911695830397111394747241062338564933222374811466941613675430527678890124453385160128269510880278285000598951937433692651459141301267962284674925420012596435578951023866931793319072821849245050002669553543803879648481493176146942211110538828267860719538966324048421658467672370465638834745280141827507943741060979985437807576142585290796298029701757317940169787770793261631712083390031608320334698429987403037262891456728834129033269697673157033944381713322073541883226952459935453172205981005884980505950966880765940052870002018621523067874089953014251931657885212774250693462223826983206012667709666714337277541679577780500458542091996353378060500972568146657481006303609584383521800594256779373857224948912245229698685839670343863129730475870391099696095969523579048048425264172364112305183224740078454782408800222029402570890576301193543702233873833544032329310558111150497919710501340025963384455514246753349141256581954968096494152098784256703238213223751260922069373064675412169614975171723885676265473191301443410432914899441469516754256998714499903064340945410768613340588194403432802461170813078291189731129579605811753883975225700436062896592807536206587530970661514232329919423020124749445040594471123747189946452102543403913427805439332059063612511680373534139086569653056030438265082922324090066819613319572060996664396648728036602617618929558217666317594049482904294126390340285991494438909912308712508429296555231008643798759160093674803339023511926396884721196106033444735832058235684143221705882785549508010369273790854267382347861268020092643430519358650822728350370025241656263942894486102568399700297323385054650038658146780454662910295210351023473403221526574705721615757429226239914471282110657339049628607589051562523016059160968202753551904311690493601918081432711031535829581795693084988250238728235485485325542319200883059663611461795472530043020012961419136709654916491594001064613386148550440129739168659127290864869914201111346297914238910173886791889649572796317157338062185203727827065676069349004227786518100523806609945896687560844287457616043615202367645540797734815520553464287368653727794978728989511107572641903885436322273441585969952928037995552854541706384645098332827807654862713978236605714150319102480215188169374121359638898300690260579414582749889049714190048245415959199151381293232491862744957843088327307884883991781495604061024099715112684693217414398899053337768140150584073626568208461843185014129225481272544136423066789222689047423328691394403561578305338170104202252153715133090419259352315392832585125062641531640045880170789849527427430788211390028388361692322313601166203133047284471407504626005861816898079145148015192570986020181241967016942666258469236465454040494530636324827309083254960628579464206211811194940910427366140162465346746198586939811500587765238101257480165113949286774568835719213030385134449932359942095848886631324011159240580967358895792458892462845107287647456233508845361234876256709025222180990804904896974346033470936512789455908669207514187804509775708574934681302231550976781682841441080277830261705788239920200299051000830972294471389720334581435467827189381071397092214312211394856483337588135374149331443634463152690421403303852880764269507404995961838450065669449318084580631100026457255167533459051708890744196464784427425444725965546624262226685210348547472020118765814054649619226529358131275152927457103167145708656543689481135849992217647359268192543749576922278624289938366988194579366548223395869526056728341606177857785163367759345316146104804949836486656038971050173913099247624453754125966440243872342624646149184985116905079953874540440716755757378231126301991033851536578371799264219507399974564018552169122183670823409947372315351486807073357126014783032754907842298410097851492004284695326459405839655932721271968146535051324435867981061144035995647537956657547640934778533986747231723203388941276857384338829335067827194800694953825799448178093999154464842119181307466118868321358737146474363870902503757256309769098837057893391413032866156134798473940648046424476273437512744263352512673657470949303255739764434396223506094736514460716340485845370348313989351579041108660157770561832623075031740526762116630263031229013764194118068556491795494546728675823034715290832936722353712324444665314062171993060393441798148911464216083294968245343965027798210150041042169335348096492584964223250061114869727308857634598314385416179942814410837672211552819650002745715747838593776080574845420719468905259805174469010661082388509323058365018907662219752309510304913093298915863553042605508685285639414108869691268419823723955179050712160384716056301008756630857612778757065760990396021578904124531800065766186025505911107281954378522954631588884937482917818861952892698518419328442619849515937663357229310778306731140817530971783141214165481442820400196934792267214374849658439275176755973367882594486669785263431688754429327604297300527173193388505763566090118420493214936810491892278756584535134636759354832024399622447023608826901620004666237759405716930671879323728989256301281605954111308544924887271263034999218100702555541178310690634724670879065824332447314000419681313846736723420223540400954968109881746100255436516156060639259852861888198019181825914671865511456792940544501910095197261491658485244038551540682277493650863752423681717764083615036819579835773620254765718760340615678610734700056631224394712044006964382603024383592263510171975123513725719506570861259850940627525575030490871649957270165408310388436988481623902646523077515851182431132633744086198128112597588538003201643396707761155394582057759891590341156547087911698318402416478467767568408285594618479018480837861084348129140872173928096583979612035085906197065790331033429064323904583719537815269936234415252004166302385625770162466598297588055030312565819579305126447627402017994554022016043970512075087855559168787655430956728011565275460619439681485776411793148297140846706945571261260673390954434138162654765713050111089220662983409253938880573429645760461961733536365398311645911926415030039702015917013075203768354552709343418566733754301563710546322910792467900234820065880635882416792392226770112322601074740943365652196067233432733956564271813686373774108497437250425424573541247485552537544720190952122500493579460599352874379778960937432656936329870905739460659625017656675273076580375258800538079098473328130042937109202031843049241073871411343921014435104973828776415382988370713700854785618782169055233246241293049385311928022110704175985282189937397426761011359420341105509702854269550952559489764751216774420695595805600551116603343200204157109520624020283919239080185847911171702203450846915729939930133147407673348396328440426793077496216279949755041451425095754950878337573327181746092721560327391195414787671889509864984826605137910054331147491734975423072236090054698046736923598813861100276705103149493957531391287728633277859250492179268859061063698287012519092826603497635210595451388064670244689243946063526423480699928412491225667747043494352327877288408895312273878248866263089371168599196997779889996174946210442084393816013675402637829694133421886468520733315735684266227131133754098650586889323229247835827226579430023858094578564099577350196025365147343328903865794973785386605888056738124244252485895497559584226847645059548887480199744378484277139901847766861705223250809479446191849286931335986125170889558398694952537284033272158770964772560979780803887121736742854588577302000219791867263656886031208856479579521863705650711637527129423268198276928473786295561652603860448807588064879037817229484636883254392251643047492027500163734677472683021464682253203978513361984762113204147406073644478557552859918232624518124303844174326907581473964647272186770360913908856799618293293158743771613183862118182213687553989480380853211297573698426539516369435702095516075614822015893965585171701043530650526131213976622246194832684368820332618165219866228402408447220600381773770910496685685076706163693838609456262522390415395861417785886201985547369290816728459100251547865967547495017782936203977713564010557247352406359142715153991066958786811659780878926358470313721315738902434791507674609318978051584021634549926721620045380661680470732187327158737114960664399680414404636559514550571997967454135091714418079476065990061770272609742497856808714200111510399380982141244097460780863386079616020491666408741337594249131534084640221168626115962639259177311187359487872141530450413105553406879952253814935101066007498493637055374945152257457612739493235002232528618864230724194649788788986203492001181749575942787179830822896326155840168913101471661535469327587272832068500386701039452461446708079092131898272454373506533662693745071521348738019619808936784831686467643962416932321857452518629777386257559054236271399357115058067930151089906163196862117386413504540922900205321624146028920944031344312394486745657017295479111352900326238984494751366714212616695954109029102540383559924690048606555277024204879473481175928242061260081514179852741318183802977742295084189417141710653578355993303772493492746230930041983064542721506086759482451279985950604437152642535201016085063371412131980195571490954626846808646723522731951696302861741798565251875283416180495843347244163700279818300326892664111714062887496860340034779826396854457362867093017236965404837714985859851730567461038860475194229687244147008636511889667496623732835813300861323048822046698652142993829150385482397213819096531094441277083253066454405314889081811227488573996445459244135153163039783433848789083164092370315860238805798407051454300750286515974178428250047607874407645449495335450309989348322475121238457570050416692825360263804555937436054632004831056996990504373359649953937540377640575381829638898435347340099475013426121782575368692752665305825518245962087459923148442624882124569958764015808997406687887378910680245386679185501800356367395023613979107153659070140057796271568298783148135610843933679753307439316193021306488970301440617351836010293193681502722679494177154173414549020813086605949897645139610355118478013407786385040549188204120196008007163732416522380385287959972010590666438673451271480321063692288660833698758481347141244513375690895695226928919946881111289823569042755555772690454291460684679152127534614186400578191969122203581868100133118108695132311454724659296693684949620933856788496578893471764122257882900904803476756850969016389430127304242250837583501273194918788742414883823327056657685732002188505385104056717757148093077013396272455800516688304578640677234755947802457699622960363412485678557108086311492765378506481385164525730400599008119323996618096203722790562923859209702406067422898584863440019714821704733653043062526559517361021042018374320972111494138786368167046117436601978133680942136224128044362363486517463188003723374535985797854966504324118920692345333247941075561825545014525869259743597583117021833904372535680946421258603023335582985676861821147218513239079372450207731712032142004201140007601350420031301434766773824000942151707490473050404370434938807748749336143008010267850086424980874207226341177318320037629956901199142369525513299340576243513127904814462801103648631123787418370315637340438499751403595003771771954197677668170980654291543459503682828564912610714115120061149476967306766919640685263072005334474368527958638375669743291123631775814866915458538904987716596685276668718197746684704763903802129732845520028954123902895795959847893608528383267563617485493236119436896658770428106728626745139517444107940590070617447333638065372239382570369474865510629132153343328168864379548875910228587547076479130145699822868043375887385459230123020912781479505455239387455673044125411017223127132970744257790543370745265416251963795838377306354722453371296088315547004477968959259096412820076878313124907434543336765213703819067315408621472998066863875890180301984477518364223962915240441208207793947689078494572021254928591815651801356588226009656015816848003958356790296111599082166107169900103183646527074979397283126070699029579273897789191443075775551704907419361645728958228629053022510143108398443177579451499237735784906392403461086022688402948062278635157564696151332680852358304404577124758103139929388140199636740652717799105583732635092115561041432971652996518107071406710710520732264725731111788423435966108722856197514360545879102982343778945849176744652322347394152030495660721538915939668657554455184744225375181602462939403322008795256370021886954950930172048108775681085448273681058461516418105281910184665209805991416801929235220797039785507709074524398650372791590976441425367697536870051795163773703560651035791185907393490667873366025606690987312466018485767398926901962308861513470617534234007399510095081526141482544343254441289592424456684210069592818112397699648054655774193203635595395665571006179034516373705789750796562754657935233952662166847282706183775446041351099578650835333586383600930436064963157587596087538141403420751627257878564814215430903902811138489868179503192529047095858136472892582299287487203176326705087888085594945226286192097405638376943985574836255232240481184418554018688048132648233477680678103978423334838162282338397386059706450176800839165249158984561115328975006755661524285547360752155222040700626995393540686667140689486110288641336573142988038675174897117528438673961663340099100721049697268491362617862690890939130665246084920263189720176938836494986205324145747505751746246571031541582698495074146429116466012619309786519424983279611046949850814048841234684937132000750485109352585299673732392194257126556648058182565832665009983978789560065628805025290033794042696101902972753457627360612731270229673444619737187054764033890647344627680434115050442852428070816279383996844995355403198224824266580780963387116969801978248585522676548176518537370628655796077573609927872604405003837946555471744968890000937353423922541071885681042981389181848907037875618288331090533642413264418531558736873249587391162328146962380543746434579772314591366563256655570355639776554640970369279470725870258529825149150544104870916542849660184984232719669434702899758039698573134307241509970633189597834698852223846532381731841465167301682979177708327494575725333780016608148581011318440593425478129416243709046596370025194588951015836487207704106945378062808216908265626426049287444649218577676030503341881303478001451308533005925652956348002111287060337729706912463674730951260576447596759906145965511377408149092972115228992487046633381724470291538413873364842521762845509412922813705834585245120678560309699598161559058613683375452588972889651342479050246653174237147812081041140484154694984638101572675963954913978382147681140957768483159519612966843042550867903799774515107904826580855025413032924624220424999401720050061882165198825091777094300297902381341100418641679857547037433802816010021607279905671577407532952104956771158318741297801100139837645412513259868541139709379901876796798118199819570932893447519038079616588527875202488224240231780123952207986746790332515984274831147100019827354452115177567698892202697345884172959161464522152389373825617482889632271854051934906110352490969692249665010166204768278743728523876562161921368939063478122995839475912403264640145559995661960805569062668789007574953011024678859512207214691808055666974157828713668902951264988961164813387744829910788481802897024606900890684219246814677798704378350972178215705935427950834055943432028292131783258460806813938130684477679857308402247085139101859892309488924459663815507207483359360049005989331356905099978618234059991847847900081464245020071626625986307641051448810421405502395132254116700580603656159795734538644733114937401932505681398208093027735588816574864361732386754527468249088327168886343158532550902486283609883060320973447891537943049629168646056295785463100099292255349946110384895046966688604011578552507659861011523182439173324805485732525253088521344112292289506437290335875738432952452389008337359049322859533048281051597471116156831546836736439176345996985526964053198267275053274279797824824081132208448810545445177022421447455862172047149398301154050430041208379255175014994722032186252139811173214903878976496209100567551699763228546274206630552561420770129793199441048627655601736880493676110667760585603446677399706933442496202714244183036723228261344311655026604073812205227120666300249774106288360566926749540623375538499339783448864199762099227756942957996449378295370216448646137464586918222240695840327583750842788193271611746277956841408716309990061209116409196263809412933355454473337348126134685510225739806986731124609018961957741121643770005394737931467882609390581053531748341176246318672943526586044627275012598258132943890947849017153711320293530753821602032943635593080139378248395184667804532872674722636884351681003828974146206173147422086424213671615712754105564039111911171804548492118441723335804677397509355321184118408094960849399509402696647485015265997744121458386632335389459018713930575150381955525347288823155071206447028487637656352771123219322158873364262732891198093806678986382137323352732311278308701443767163724883592235736183715942926740085727040345144851979188629465470354291991612989552874180837022059321308028347766008032295218331506137942725059808704330225327271117996733348425223811118136312686191105433451604035838431625247418804554720892577114070583214623183594764169607248384932704063584812912546235749306253878418203005947767183852446808054181852659324114824954347214386414960509609181514275308062413706317562418563694441321729655847797963614479809008620703987681545522978137281091413355546430895498087533773601771574304923993859874050928896895119370723454607900046005707919093102541820559002275634175513099471494691489865791096553620462703207396961330813338883161774458000602620431312489198839141948252954173370312316876406072856426582479392522355015279379222466381953244485563982180318485393806022807684598301079649184939209800171512859622129349004692061023765632273309513901957437799152656926581734270493436053498667590705292846071634055140231867621988411506554191605742281843673321123518546831706398349159631825113440872084229293121061901663600026920476479266179060535693199058519869818836667360205575116465930071841083533925685205002461308372620399555191950235387026122828259736648276102238541280386059574390198770530615197877911809270470106781407952470381014751336087838905432154928652402059209894260009847194589246627121695826206269183285898825771984921485809537705047503532930824153330202308573503533935120030313141599957937774045652270657118660926518341969225440152030522041788002407700703703627898203642594449727978837879289992264690454978718212924217651973535713133793443161239287591116653730858346452659231629732352251098099015778881719346795726318017657674871287359244073633078128590686197665833690601601938743018807200278567540568396016989562808482058240332577615102975364106133568616285091604442148778793002480512103023196515893414331955299351189581423895621953485841097445064024788867936106550993387891554921744238670288656416173897206395441752351793645177543482971903122303540814970651979440556972550618331744743699370169899394866966550835747226562291786018202946082352060321699079108169403740064625616358833593082458372760538577300209328462196501284381267970310865698229586054050938181360680284452765237414497028816806994353446309038183302244892753711421423495898860430206551981239900495541490654434488050374881370671922469920152420797133186663257610680053320787400285238626025875940400005721763230659441108036377642079303928064720816038783088050474262196292660112376140630200341882942440745267743036066586444743896433237601943147740592863511725169164355202359982682679857621429678114983796128971278803630620059280563291052424851594462668176593266353102859452512556886191263159304276175436130376009004842036265268621144598739149665907618759153660061267778152734053085641906785674186065169196931955765470856930577199244552260880578431148304538631708387507322040395477459189710420015282822245662386641367689703507875479101767588059075868615669632955162818047361456846435235940113889364465689832387725407980935901980566839407665909208758461904856418957123102437823742925471793897364390406871067924141661271358813871914713622311273972498695078862265927609049247445038474035351211302298352440262497623146874416170425751338344466290289177516464076755613608583204470987546576343165371731603185500263234807278815241782415935204721071548959879859329370347770541911234098896310641070599341860491806140149815728498961499106581616500465403649708481286156465715040583779645909819699839204624590808906572153855249025397267176740092827498793651520936582575640753507716766471484611421721875776105077802097405231931592646600111285408113849544360681263970272080909613351706333921041675915875960019669354767534654979027688609335930586514201468133800051972465530134743421358261161795580065103748215961747350857695414796421005500412889583126010602486710967922024881083900445171891181058062603449069801314349548743571979714820376273952072274851719725662713714791648600134635576249108786305761421940038976218788670551960586220647792799230287841156710144005243042938618114551782953323972627181244299451221368078168629702963505710016594794159423398521665760084819564772007509251667716246679853733619056897704955938734897008788857990944988238733282298406206445119969363837676270465411680455585595622320885842411010220576860477733209103045431174586407470298504517727982193376001191324272328425864106420034459405526001176636223424506187262147939045935330834166756237127071364804190460150567858223215302916408428705419975996951040074270075809086845596920336067960307904435825950330835907925692318244153332328566217507027602132008269177493879028165476082495388504350127941683945731046736109160250238902434519569548175106761758866948828877482869701568432401050850297486074664290568166709995303889887708649314833162126718757719475177235206448392806202550201115761268715921725245515257672319096620113847352879504086686974961279220740771500028545944419351929589279303959052565343290935896936725732990633828070617985271260571747333405909695250103342475196581504815190405105938896423660928830688234186451528658371260109144338554975491650495204647885329175676057963064645948170627315844536812549772450830461426926009333979733529326952068284080841364422781643791325279228482504413290451248710462013272961000581477887351725136052095845063398006805843065243195039414992535002834408456559518790892957374345180305872111062594652242671853404451734324686086414463276559334747328434403637907634395896763632646437729228745203481119124724959693153965020589080291843116921129915849608831346569868029096833236105711173674540394901963519723692884128566183200978293928418652453465887755240124212941755711313867052859895645357078591465848356103611883988410032428941030626187452578495750223956562177378149068592033884072279550887606242019799665120998245471654434500823274317437571738142228127731135748617294192107672014864358555636075597394190849234078161441803110679496164028977716093260419405129839951945312260234760749930682446761207868517996365122183961372148236842176226865847848639180043016798541486310809748780921694556006159904039624397045874579779002910453067849260599847055422696288145788087911713521442575559248643124689658001841925327300051206157960581696329028931816538186128515268687917011848334919540396530329073976333981592341909413210851627255764245335818627856357881888216650310261252335866698652104198830970937560109585561581714036796457256954135795068426596126821021939100837735244678587800290686232187931721266730982281407755133850768572853097215418513892344557242185973199521592935901286724989007426862362789852320690015251381827189528172869134949095982414742773191960060503597281743461377703919459238285482520125763188384534184346887072993151973651445097660249795085377199045814495077100221310323560952775301648485800085911046318684719395074018003817024251767935660644222578636597447198011699373366230359511186942005844471233337837441040245415697476271816045304832287329416871375315052784785204602070640849103931774770440110012538671524206238191888686236424449002221936399057808718458231108738041324008111660159531159905719078095049101442180608267652673040508140378781115445450721807336589188368110653740059632613622237711976356011486456364785331268444560281939212875513468930056081895891669493912703934179779073379518479396414010500070580489039558815664718393502485799498822264793310832404440314171407866210357114249361665391894314981647276311565597539246073264585790628728414026208569009796469639276412783811318433019960081268794063222886146819613871134546522895683591595545988407821571656267173419477450667695027531219820726443533135028934796764942109456956621761650477438660211981551535106823952576291071100210793932642536344855434617593290104906104287394656526669409019573420935769707197731103127522686382551471187916547439943394412373882264985379357657505716346711233458078308241309933699472624727668686590628576464681569146230429852739778997037354594922302443535351045439311881974857454611459217314308106781108701311039108954660684033085032003174378518510808418082429889238852218728272805270255446315576252571452465627391151788073793966249280735296026042647378544956291420545492741559082560203066927054751903095655989019968313769699677944434501785124488592484647407607732347436094706100426216599008990197848654678442130313575858837125338763352435603764829187673107673120558250778060396683291723478145871832050195883832513553864136593467376731645193908924308015551960314178762418206228901114515198324808697263185045138971509769155412247899069222431378955228911972187320262775459169637101171356277992415131719886979118002877058478315004921124874751192161859004625332366035627364034273507395940007056656437844268381557068081295352977858912574834642449009602794530343760303901364592243397313902567356299146264715706845183345080621365832189351023851902888194778376031561174336149721323089907711472862495384488671169967858488221564598912864767529109138375546354930471894167478144217650570780300133547427042816099279692661487038445203035785275089991775686484508126316235666942075973408791505485836826542201937140626757546335130235230282172677840596105165452264622008940541637799067792134790588929548997853476173193013976016844304865427747545612313939662897529753405239625248869238281586890961736855168662830107417567792224056510807040651472813962116386416259972685822970761043999307627227539916468614791296658770065810943927658793176904995339402494481571034232038211127766256767882663138524707230494895168399914160364119608725980287158956178433931897703790170981430305650280283671490225460400041425220865445883971325470126898341088104638692596021783913281746038624437090194128162956597873918601139917898067060008255192149101519381934129539201585275773945900345239038024467202882466530205992757272325258461782279631312534637574329448080180723136509528752261812935578077123745610086022645244959962008514150795372783288968083996018991667555114719251616857231113552161418267683300616652991336446263895918951849303487976501782569330326356959497774003830560488822457715876182534005727560143987509816692058499117034347815167927709670542064814398086798696818886039177045650585192890823495654960992126316875779327479548167086132995023198845795045468807917026897720504523606663092691531884482030562491147338265064080113977179253950316390711454936953626740542410479034136105552468372269896026154005512669223006619445206861750852984173826365857532480174267511323101550910647891140806332321481247164132343073683503821391535448821645732548413881497115016331285335027516179133836861056476740737949192791762868185660327676286008344813560786524111715809614690560802750655348945455305303616037451947161868519975264753472858153702173248720317282938969573030893530476765973527640381875490323641052852618694908674288374231894989634701919465494354196820767195808657929856955933631529947456284606240436379627203884354956087114094723777543698507031494529612835461556637049455572121824110852298670079364492794163495307769978434844332908564905964632135337160951949296678820570564222012703129536777768394284581192694895006419841938198783947492509964235227026580818784868531973428717717523359853002485065699411621019743652273397000135203701787646732588436165906770522143694279262074713951428065027447740567199705502898206883964482331743274464155703988553662213121224167710271590997424662407847279035612770864542121338605124635697828337493029377202392652164539689788856579755351392616508167852764790402938969984077614964540687770669049673716179165927786389922261659255549886201564911590309917077709313122975658711950931611772210665467857979596033204719521986697800293171897797138673987316200214697472699301780752396575985467590857365168819662637453216942216369672989188150549437636389883012249966337367600258117569074629447528492322540349051233555830528784769579447275682077560346538560415046837987955612869054373388785086430914240206029116212915779808701604708366821562502499880425580375490005349182186053450691189426963515018974982673452041896196144832213473142626494623157420443312505219031755768139080955047257493174872259337889920123254569864489926703569518587841862154656080622047947264947076361662529535599272437615776993999314057490843655595580836931344820728987574954059374842720513430079176166314800421477248532385267336835236860963244525420668424876967731658759173956793201746798033965976081407769696000992124220925190560643576494856787870415339162604166896876759378840895861702375942344211496185050832202808762379014117460178828096747465147531209396714268603782528476314744460458244702984957764145691111750982314113396096657462242049891791819497160852020220025430002823040904206291504557189239120097710159123953086656240904655431388322056191210550216973166466472761296966220990990657795693505560740086720203045346716222039334054932838147573674150760626040288017573221156857969275745282114694533675470948192895417701214991008224028782739114098091880192709863963664973329738344371308162339648474451382123040708006620866350125458443096619099528714883960465320720693562781426744998329558348434885486041735948696075714420865954974125281852740632334088609168252568820336190540552701101677492389778596291996388576065824232467737771753972583250124368724981436966225068074337058881238377485092373741867950045913421518894855913491766926523955218351349129031754826532786114105902659545682107823247730061965749873175791251672216140506864623545348091884163131764864829802095926632102102290509676419607616784834229442555599666797154638407771155256345214183346829736236502607851066440492511279423649774084928430282883694403360713150806219557386942828537176529823076828679644882693942151655842207427942297865389490401726134238859536511013315736718935798978531589150275772713973979249684311642662480427476019129319236401465360353381747470070071592582758688913267258407432672822269636292545723658018030658110101722696342248320618662795052884521645277047365553957455726105101488256849472997035748492124954649788058925803097107891823761234668618510507853169771713171395695798800439968714860427772813745192339651039666130468459280266578398984906813275835350722182780917335348806997392477407262790607375522566633159780065504707204740805861768201736059827960688723200933805816430362223439154035766244087959845360570848544391274606156593812881899640344091835835058668697825988109237187898047498895761210429550225526032771584552467948528871278163123624090702699173133165811784288424350056521050405094013361219589227694686063560119870748053825741295731221170157803675194514933590293893935623113102548470676338064752348211390523554288937762776618304087896973699482302147262900044782690971223918761354920893745431833322600802574948914178801394386913292916175122779821450219643228537123945494227833384648338431759282340992198024888367790485303337668697576223579578354417568935935928290121053066073087066558699580956997032741929019557320218576550740013151042061929462030334158785441686922121932363305018726747162501271237447511153332280428760808778929395087709627317735130909261962438339909000912752326243031095263903298554519357157968996761243740904009024269164949277047427746443854887711606251520861594887950089184003146639715565245826810941272621799913470386602547805374346206092282724484585920798937803387934674778898446954493997820643248280958260918449284316305014440232984812734566661424918301064725383640711956856555159057191171612751433737132399108407303367360648089669829621157888095648801396971482863370248493140609808590154257422084216177019885135194994803296312297670522476296443169057614243360746681227126607358145147914107147557532339938439667202601010819192583076838003112456461342578975136059560802672137363136698064365542246556024996500159562576982318699755436679571778406816577165424828371904275223892326418029778941830862308242637523118965017486487550698715779045360461984978133570765235655855679486666579768316952970319902812410161100855895008441735078666404128753124904562363459681586756580060275337040836747411554864312116538008319563124426591982352834221987921769628274700550680116761592906759776404790077107278365726244681044988875656107696881703470089393234378343692813495402417284367518206520095321996499483789402366289027433915470887519624486731832320709327614175441706440468399695151467537700365336716353986233685451574919377029315360807620506264748707827513702645290579689447547083138530530807817966897416154798935330136465573105374393007884479532294045341620325922080642030573162182616277925639747222252841730157331319715159524378966556613922164452721259408973256773965474792923154578328068435645012035591013302897886495867648874223804212975899842121315016667265564215542584075324896064928456760140264758813076807707312202985917694802875065988505484253334349122112508136544744980638895659886708186405797911799402879814823673075858927118499211361246605516645508876580602837554527735175659629433113189782014778072800565961654866093212147543095987448451639499596047961095899421406200197818030745654638110895864462861982763838683024480278308610685598305557311382523127430030130406854223590800213418540384853465702858302294012743203607809868772820740913478931733096703107410970073183286580047555847622195884027404985394431475985478760391560181016166254042345222986416125318468627211170433096614287062959627724243314795296275663327716823473391776743754596764981424989793821687422390976895072287095260762786427711622500051974192814057139538454782518807621659845308188458396143279031610067412217649013173744172419099708152786817932725167493498215131699417326309897174218558984209255668318279571785538859934293532951988498414042109642946724608659151053288119228472020013692745316605885181849451648790194993036552191067345658395974322484608637422517348070063939427933519522484796305718558606796856174852476368353282521644670162551103108279487173161113960736141549548648850611008281918259582196886809050473943402577349045232147131077261957605745632475242989647239277021453680428472485760386570946426946523530423017577162933692281218444934284435398701207652908197910877609727329549944204064524905890485137326664502729440474778934983538172901824187585695710047955828085417193637292404725291735947024675958803362219923951628891964518988940081556993539871476585587022200588461844452984809112120120983811692988208734014134111889897727851033330210940867829095990089981900797268207126716052401675329189195871756001875865658049593068158996244884884590899510381447341141933630578279134829660690626966730073213540661070040399179882235480084456211888021535969244734461892742010196188574458192489546492822934264353449178349027228790989085849332770299208059830362459907775944235034340299280715364906616858466683864150633204251906116028185378828751804999281304979065836775028329696838408775766764930484286019189580099167589375115308283915118069436064228600504080066494894763324719295136463905828983039714747917707794179980204237210486678299083884503769155860086941371131713184142356839928465246533205842232589192623499071701814052749117810010204485374071656256517974211267142260348837328112178322779327225403984965541954129222252074872233628442327185577071946049651169041237981516092241452707675066789087592535070939658176316364277684633313745558152823395374623180674742700463920106860252862856690998004016037525257752186550695840084097811697093866203055960401243135453622669802703888390762323809812473756364764181981312529582753135993338895718589784396736236367606749297117775429364203784312023820999783884991916522077506055638086511298820238039368898405565024737202000644334955251610173260792286924104766577791958306128889391233554653869284162480436004796530502829878828465679887589178462943788894676149061828127445443211219574174284959667769087549319477421345498712005926020212377945045220742139757776297101017647913933283070249928948399482079507450306686377408426328479449575746031721884360072876286879668142232039916029733863833338070042801280155150869112422271629280821047406096732950330120274072941590836089771097205392761662598569439161573194975083859799023228591070363828745229951678733734711842044884217105100427241021647315308741970453887302509578818235489431430134458907238249352509996808082802282881249659819631194607258656131858644695455702816152642863959714128460554148937758125253602974252266200262230470785941379205439685111465982129529271662817015213984773972228607813854261581612604251183838223335852790305023803684095526238295270810019988874707797663927338723401349445642919990555853234355005280104013999572062394599903382163002148206962645155288742954601931728846094729674505310576099124682500030053756310871950192882376457462559874930629079990917192384109683390521330094619137500184019564474986818371247947665889137428883908040769872399579222410236836457027552442439039818512626051523048443338707098524315319040881007810380768340835911484964938002307686677649148558171477589798197711401508501851101277557353563780805987376498220213589055536263074104700290040376290999065785899041033528968644787245347591690714842249921363974029577933427260304771659864603182768721168204773034033262871139919580854443726721948503022991634562568694731645806586402337936079048583448125938862998523923242898039712850921584313922836525208381672606279757516024163578364187839287367463172688543075320777211744769314966937184896017798780797907942059517158167264033313907760070953930197668783497579729947273284345472962386920262335303126468895984586721094521151029976695143581469516960987408288942138858372613476878727223986666815766446309392109630244073594433122343901852512336133052929168922772987539338541133982004000018784267485324105816489509803941029719244896133945397442459166247055404028152870936638297486080020137192207006103683118305260654100961423536710041660389632426263010655226057182217735482982682316213695281777387156399425982895788000909962522617724019856370860558763958298946423847246927641387139526940522705284513620418871966010060420566222740824208863503354899245574546247927379647128509730379574233360662097576387856080446575004362269476572954298411741498967817788525587318205059554625419361637522927528367336554702731529943364386220299872742545083513372370115005177226687243070109027670230486668932210790973733127543357686832287540064388445453804538815510312364425023998320439877464542294476439600803711285254350108443814589060291032701901779695108374179315584258979191714459434412625392651663862713704496809236251485810144362823852278535785421154985429025482827441365112682029185812492803781368703591082221556807741344315240691773171068785469972645925410293736369963786922032083190693505306413480430325373593193557614599410813075779088417534064617359647274751443707167268297767021008827936899104541515604257227014063222192249222888673690089421440816170570005732977719650171133307570109916174487714873571960089744625770203374562165911237127516741466349797002348448739255135769274167904454482186523944669331278072666452394465986966394981181531582459104709737623283674980184067163231561389562439519639153452637397388509863377524723282652956540620468170747408095024489078524459116796509780910301576216402821245982280568321784575666871352814755006211752027531517935441963942715868871904408702220257569184658472778196159253794791163260786026747353413664282441438932330209699948383236318498225866200374221486939380285269439610674205911743198250993586299163231891250761782929769557412501522557917760867677144261712854874108064035128265081780151541589723455643598916903184387467698180730593511808990677054747783012096903783747194076991162874415987453622681810513540332754222435873700361239162447303189044090852501903090535451869510660303380386041451966422973117574363869583393001807257679569662330369067895339879399732932693413166544322350985213910454517869098311023810224098929501998271443019236968252826902939775731849247138025982380211299755769859062420999529032740678004209584331524854468298576684633938589057875662157063150625336602264580456099552094248972742699088795458165484408586080524105629985092466002169367216956738318419591770935601361532279090873379331465909146693337750478284002126596800306339211502135365990913467224522321691033280107992271237070149394371329416922927787414877167071583477802344191928138522295082890346707156770979129447589823909305372673683613704540598937865174462921731866504476120303676272919669340510668325111814677469034139502364658299539797787444550754531209914013529914985942536587667217147182524442715359067877186997763762414194233694191492822967512977984058534593301808209848739608770965669976705257742398304971425494281695016501873642451963995284001314782784542340458319669697701709653760510034492246892627801908441022575529588383024247124202179714585144510416123548072271033538705236405200397330080965592534350409536204826914124006997951346807725517822801716989784262229486204369689278107037233381981867713869250468768871904368801025571962323377302669626999335037535461863568351629379843547519190264887138529242995813826938668626984860106166020705161606008364669650141730103409599018194730523676649752656317099891123756801667235873861696772760385245443899367841447049946105991034040428179708965364182488410192520707586061672509832033203140059435359454866400815769551033861444624237524815653398012632031748141837754993776168459822253696599602091029592352192639111888718067066644314484193759365807028711353498024295053348419155180377368036144247871821538730729791220333679265922928002228053173773515200717486944641202033261413065951111403298835628144849086642075535768740379351429378793729997518387986373557438758880308457304308478673860605395644301071181112021861847051999040844819140662155697343212430779861436264636442081100205546981453873453653306959437551197665798988506848449051434688952427158793133957459765507834843227573622772271229576187827057718080979064267472925339996934732612192002883984182014933782067433075810788557676344026363707363995617692008162648340105589365825560607904184987048946976710731898225879368695509163669582968642061134704782976568084386889428435611456471262966069624987918506256918383085268148670564455599040574508330698365919875111319836729631755359880812977316110128612545960458719863251648915612114716324082590639594298170752120794208573475383942814771644095190388468292115885754654088118849745198632338497710288107865675098859449716013982162168441435482506995339311190122368215331953177794406673177289962648329837041659195393960482926206226825124020474445566972084531424287819374062713722360218614665185403025466918491393425213104422236663126728356865196941552144001123578518008130113493159035983738138843552175674342950647650319561564526348032773016746310371295278703841167963689320917571406694801006574514165289539499693276232477542069730307664941440054494661159836002641330494448902815017061476190779810182058513678017032073036048208190986015512240279746147813691263205045960143935066357920863071872495369322789602377071002276484440205370421428979274658215761985949833767303677957615955482537167525805080233598526413267792902859140864856618838307567349408132635529348419990038585460542417736420238100974229959660947227873919193891972301558670600276684009430132377054270206564728823149288392390889964774794252450790142291476404487722945582758443543501949909408389902244306970028961011163337388946247177645550221311639981737872701491981547123374125879626507789811842854899344022303950085448232328603042941496996155478306421478474031222334089330645599072337743457022291696761008060219848647701252214272251855372699458159643122469300769225648129949579504798811427678081225613417742447695746251888089916513589369324290675367758257554768004180305633319608832728373929428375945307009117815755000052516350533387782780847388344228044440719281510891221413759490623427694577687217752117446256213204865739136503836865517074628462814750612806125627368104889944034840797828274318045492550435390076689969253144163873873757211730838341472715312236725043502490951329593456894626395336254763194152868623756354964148483038989144265462942431386777772283691094524177312046349574195443313762719588536522806718677285606637801716754833882832762815575046021622919427393220101461711805686238477583085175299379997695312714910883562867667936613063085229453928233964064709402458861198486115664396178306166659974200172748999920819776552233738827287454558037317850231917729253030986593451530964338948120837833055011466658546512940740743820206541740912942639193680864534950729482271736533906666919707533152139462494164723663586122898348294001091631401661782936405816849509960851063128572660152978749795649853263146034446984087077859522967758441409688034838176177049675312933036560457352409955853409160457358803761436373238057902615250990666586288816719724077738103466135913074512575797332693921082820678256135765540099564631895133567821933851833719673939187513724444705140689986859457333744557172454597207851743875254603054599362240132042132888777509473982732223650544779355035017148224636754051344085493737694487607997376283728920225090349351615959015686315341717852472709732852872382863961586649320313360747073549090270984812874884122510760704551538609317022149365116176404434999801326736160981802252231829303808619628915181882565386980418073383399786691851581609281155643787789069337638476669977832911729245935418461334461655232409932567323235229515077495576112124000625356099193539816799807173606888393461783523813490639843483579852400302864766367555373266037707845095828919642677309498552569925586752223006529098195630009309887964465456437350193035148100715114014268859781553952213796230241737593208176870504840354998950280648214862411863828726609362651355790339179894726722760434190240557020026027940133550408903658852455936565363027030275029680397153358871193305946652316998676755430942332891271144810313521339518683749150995815512710839688484107023432833668086509759332940137299208955062911588394320875213997026363422632286021615935132121363931077586620759703211280732778392096631463677498669295452184429490565999558872991193409563436564092446122954171253817346252620377945991290866491652788043733858029793035144676836360541056444042105806517129307123889565976364326260701905536806330004247161445588095375118231945447193459289026624906176390537815723770946167325027182906590569256041388143978883224927773962411849647677029437711640174671039051122839408370251723342467096705596281007357279956234102695576047809079872992648646659114247892788234539409055998898566931920345624928873211974716449965855880276828321241679702918618347500402674054758019291406010686130814230963067299957583821377148075133864701327571703890509995044743092062693814100880182703375766977199665558247437852477676791340143119836965125470227240692889773815666424870586448637345975366627736810238359158925441845807228571741480093729819428135554570281791611457576860167949798417554335660712076575241978663857941492440356316923864066951558751167045265439553967920848593947406017768766636995358941375411407430171275464311507448740458689712215072739655751305089733769093585946188732306577835655970618829610356629135369740712203891061485837814195493768468308384805231161545967004244951314630727103067804019404784672008682265208759433510077630060249412566601926418613611408584138254958121381019219368152118503398960774318212962044081483073906161026119573174805856313850683911925565747342990484528989349484787433099364935899204925323578302412755898968219589816415016506489824704152111499592043777895850467829455099638118117738386758448038283942439350280759834195512441390646587177787037354631085123911145573734390618862885511024232686813120450529691829236562736688601036935569466238861964528444222127382936765929964520206965922496204836413600278074345351977463340494018091261390361441100396594817471336520583734217697797209415198925561664749343905757229493532359785580269894679072790667646483864152596743884236550421985306372739898887795362204066139407496364210070749775106431024645424139323708733487424520535423775819305002861602005755409175836592943959066731438377695087443109459486576367038855629194826102035979443208526147310895201003019465008970900641526325339638270294306861520755151712909160767386447830427669855862621337990997756908269072200933222860761287013442808372436516904739872379097030521894913975365189810183969287148057540438150147454751505746152920117986815059489593266011756213795637521139222356702292027940221093075006829269845481873511297767035480166935471049283176151692592006050307536038740759426571743567307022319178629205942257886721021502092378786249800602138662619174139328513876714830035216293018712574085411138921722075596844300538849822852792974314614088516519899599383012657316516064780792465432295973930641249153898618431098241350673863181661024962789063950494016204722120674435642446266879209582755978987208488007000780558976582294453721285325563481540011643447830045740148872868032421286342324889137605184011235284992746170087235068035117928335590893345660516453884314736978788841428123684152699039532061397477061721567596270301028818626676441027970905744630242925826786813361286112553121198513547895576732695267618012137184785029464562921124129029956990671424377313251500065031549371030535636972591029719491567096117416347509635543038134841032283727389885683995771433867056703267035723823914896553933252661605952268192980337754438634578568060934837069387714906917576235457337262732983631050035804632224514205876046137690001960791009483839181808875681163249037124959151142600293661980436842494648837773190387661283178826491230909327753408706955072526089312476413867781126067144535788495183177675951842089789450540694981986055210261605808731828824041664487073504927485343472798359796743542853744828695997113583503150397300648153755331435345520227311431065400943411713334164489522751845273083582604512675405632298390672911131136863903200087685929528738249636067481625685846540612458539149169616447305585266226205592338024176128670414546376931952344097672379862400092091799782637041314259418739906800676743438760094146971963380391173467375986032994080967703116320496838492019114066812395563154475678336532409271522233339075993497548524382054405126141915626455338923725581956979670026124904380137677519552903006620830170595917614616066578898433175837033417786698632569563175100486585529964141117680953148266306881264351664448143027256028708405804317286645398105910974061369005944893922424866746171985320494449492737801751307672353500737870415022404667189866088067174444263754963015849666620268099533359475584346903395887390039307329148347706584555648121161682872211440588767041217128269150961681097729409923865915920744838873888335978333837425337565019200957943722733944571830695321405955621953462171403597035330567712924467228016456936926637772679184578860664511706186078029360698741925610771524497560982546571751052108179955132716199747330363911708326287104135671840136851794691367389872160193983847430641624974455695738015828022545223629899813492200585510228721228559430329716154325790856927274604835993225404602707086618008926774837391627525477020748201607900649773587168897799790327706936803855280970814686025602594810349471508083558424547742992108495963783525061631347733962587821838871772402497227323509997230130848046253064851493339532411194993139736161467287726367237834792521346246957376798909597212498549694414025622789421468575314845000737917649314245156261562846257036434134453803933917637411879987242838322947783131185731123919778798041487326869173112274076986499283822734214199201038230478991203884975452216108308753045403999353607311526609784688452996061793075387848037686689679075413648915264094519223837646312689872199568244619552122559904359595667497821001759666623723837906377779057479915969089048426611391087904945525182615660184210276621974345187266611655357116246738038422639364788732277662126253899814757916855547002008340005537322727417953082785726492280214685192719247677959952235804911309896451811122980179213927206472926328598903929537567769482500127970296474561689572852442002843075714361281090133536220757062557209528765989188730332621597916286732000076098695641647873330146765328212262002264527339703601372445106716423705608991485195555902733210885747142950387432982647387900724140720247641922248334083514046129204867461162344347745898167499715131895362445491562512498938776519237338959844628686982598038452458729163481155367544246922791738795138406053855848696002481833888273956908108957204824378581277786420756767454965234907565817408266503145943505600055494792514891536458981387999212007589508582896266138915888833995455717028290857637229320547698726113760565338443212645591611449912284858276542553303549143605109003734610947844515167863006456465449001435909117846329628357342620753023514820832180177237948987397860187710633216299617058931571659011408447310627222118495014310257960277069927663929413226198165863061660122050233008603909107532412777328238544292976559637415565956104474397253820077681426234935202815899440885309537944374346417266995103617639258455005338236367232321607516147743748591778658685565667265075929542913974273637077591937542795599457466058603715706284800343583412606715083438732293770486897289877788312057451906659003460247143374337600041955112595704185680387916349022928398280424804594036085210332731121354993155813144553331951632098573681290200511665744504910329085796028155552584039153848414807636004352573208923735702876038893162845753671288465474094604752900631887003779267955447254609009511085499193831590044710110848554525530100413966174997329929139886189705517373840679485034761268745906251855336412173624690676153058040441666942805722998292000239096694209146631195567310245166318362076907189220652991240994077910028181198930526340727332311059294386817365501272985579637089703301059431526579204795180366290211894187728215691277967297454067560814543335306296884674154460269398537936871556358349315496724998334325827292628471633741090851195841805506353260467382429335660006618123873827772631484498715949731953685490017997266831850600314743842394047299632060146882214653684049415337973130764601233092115979896202002191720883689637460071703851005293743467439181593063285764104559489808776509200096280933908154417784151885174766178455083194274033022408600768665176469986331171613880070235655098813763448215483959715020603135925564377560571570504155999249210075059395204522279439286656755705800714804563326300959465017763109078643530610031007630970667735921318850145856700389792876847516049646092979651030313811800216688675953144776839737757209064386819050586272651719333955943049596598083724647302502172631071887232046729201235025982676828478167773616236864897931682834548723813563363186008742976094143676210215875362688275568916170848725641718919512599532831551235937339030858608156568816131552241974856541892535923286462356399395098284818695431422232578092798183561275818036685628929989304084643923522709567597160173313306420165792078323624129169224915642160786829786983095002028773001421204279810411529190880558617021142447411242447303437946511587890081103416642429784174786403690972162317378371690662546913947225101507460818060931310260718625878022034429179930977746308603487316368149416314500700067777094937778175776253671831522092143102374418791149838679023244702529607738309007432922649924486588806748806766186186080426984306112014493712252239274213564804937405594177384444556949860788802381722915212732031002694277366074075740666494096580616942910034284880190156956313967171220372083357091668198478392774955199887208040494567431739981190986923322496954903782847208638159598476577389181242174176403246015482348152303075372720418136847377956701410718059373370747487226214413171351663187103057437702426009258865251930466626459791126163879072165221790955367924461720084079634717793145984348142461753212988035940024271105723425612242710400327687124094904330827099334247677614510290528289717116908687911129033303239770234829228043013082734537440409791745190971228847286800786638602521575522944165313104284038693430077047311452489826265462185609277846948103265244253239961461304920107586300444812073758811847855938631436496906974050247030633396883901128367093571349163353886114538798919721571367490666218693389434906040776839935467631051109310617856113758539956218782093382312968066443618189547016968424738925792270338979182799180550945364495114690718700620677777422481159499896277364268705256444916879593002092225904685539369742532981100711288728421203812901462791020836415396076966920081337073745047064719049129131023185744892075361069784972041725221786677224204438375347198790623897105625789736069325972087446031088897406654364630861294995665455849155726448628887939142781162024120808784869046017343841677571566176243422454000868390235111134252113806535276190921490368025782008315021076786158280249478008405001673492529124335632334738244487112591849216884116463124894636272158085204955114121314973885862600570013865113708827071102316955429397475373642926535409306932008731744152590696096895366014520661490627755792945001167357873557594837814733853103504426120529932328738078699048489252655168551030565861301934909414437398615707921321356958324886998220323201704625245794803223760356033077024404464109357373262887206725302420000860082058117065753790273421769123494347992470461555346772006928752885717073033061231290323856275751445666022373728211246647774348418637650092225452496758710152093984193395296013166104745851426707697647980725322935799154340852022661719661863514110572578357980968136580262831958967234338067824131759143105932312365727168897009229538647080823769320989690664819701755135627611416216156832541809131897017277668389613395046737098419122471100692334877981529582407556397516488149444932140546522765158243073392174545351393620960812732642046338081872598717986953903327705277846184405057859893812170982080637899085420028523846583837002156742903531502707471221673920462734862550532187947850763158275158823435798232242223439140425790817986095922620764954973834201692709586866328417908083679988200587542640277810178367471408714360465542288320172437296506564925709138931667926234346783322260902181051636163054876785125683977841921636770300832600025247496838594022196116960687199034861109758920684911871330003246108940337415526045201091996139738724541548461946743193928311055482969629963710244072120156885524074195177683953009671249495616820214224932403271621329392179565953033259815486000093808058388362307703112303262057020184537432342817940320465818770780302812111573273381214106991650127961329534774182443384283409766860080444883070294897641148481871653242009123160459399469837441020340012035024434350603632125059131760843018916995065565859633106715576855616300065130415126042681322739768063096615821066330240706092639592957632559140966003443702201126729536428595209683515101431382605001045367423519734233971696287030603401400476707052187324885151727380650872619794386487861306373681337416404528483303247528699674571065340905057592229581230000159699953010238416575085253396897797044125381989463660638704955901303195512466718203141868175200166486482449549853724768432892158895082266686750991480398455863911919189560440844425303971507420867382551698269820943184786232790253524123290124327094844551587132154589437086635621126865097133751229312619062713390747614687326735551139891270458814443519543506677640428948711351364538683875280536147606670994714360202570575549612246468226993493225024352035359732944831648067639996089513333315978372520594323258323120365165594274519486745768632120411546854559209459324684600277057480563015471523679820598762620693309211092822311610077574554884117181340633352705184662505395495867156247784735714027492277717516196408868232327829569794565972593622251516813453036685659211274329835665030028667572015373323183747033254569503626283753671871533358139240629630331690436581959308373611505587406474736546276773273079715492963159207421190211953714351319076775063974614961034221876455471445806630887767059301083487558981269810406570878929947882429978311370795516479753459743096240109123538152632711950698173800292489560862524943971659686524857265630403786627159015042220463997299680881906234411885658997452383156846092379178686932635539834057265765699363138288635184775622151929894942062354846304521071654529745924445041179596103019631682213516245750629616176556929994637064071824213390081066265060880956062453264228835640940328766843311172805281007190671117463749891181575871796011342850466989657889204543243563393323976690071076744428339722780950314455614492331744757136898065126496416041081204825611260002805412756449813924051093238099307671294521719874182455629339270040872903946794800507291083621621583993948023533344051519771407062295809881506207305547592606671259539713957106213401368209275558120131064921782443420805762519502350394162614579472223812348434674374262574728013988463472549031125944868432207736830072772841328365847591102515394655336872349199752417762541247832774605554961980140345182424727921746306084906765442596879488123337500357000185388496889884821670355230984125772140030727066560924166836643210723864870412185560679075823467435902189793391399243154280365745219600101752776635992773953343408105419308383767574150464419461466089252404055866189478762547232815587841485445450977713451625021329047328270484179339438037420596426143636363669991371734647976628721935115714691080003923433217602181446247140902775552020622815592909318437340443284766953400678974315584184831095932603699213148164410645176858171973092829783824216479527700750371349523453437539868398116910769169815444184932489761968442568733426658464697192118165132906281823379759556885182896203084358141900413908889672359588614554416892995620279002532042281159538832391424793852409579330743541292258957216857521213192266902775488661476525861583450148904660138573045591493689979720016151116211914854236893359538955109934744031838244538525629256837728539096463937023032242062052580487672859947071370352953008185484290857379060173173658287735898183962833560351202457474094164153970344878607295497662267046935551878992542835892362321024854719045194218207489679418062701957305966409808629525355743565392353085790896888153740562434191527058174051938319579161628263905217342061130303950233520401752789243589999707323721528004377639118313042459249063726474955428768714893406541680792692794196163399022636418712077460566891057280480974084374497060050516161476206224245788883490780408855319840309810158389431847859469106587173055700193618648351102433228966892421252111133234045064623692092037285985895816444514721747995713021097763612906868768935460250372260121606784825362391046172566431074965128117419971306172519586292484006294316308932257265294181631388984131171996842147293317144195218699554104384567014152482520590309982316029956177154061701754420657810463906919869519689428619673142038490866097100430569646964843602799285096145727756025477290347065911122080335823083230581654228833386020377996542588940873534532468296085269168631025306211068675840203903709098950991533247109014646773808138974219894030090652910729079911897613315668433174929543107193644319563137475703072055871769657628572311118460151135610253897819815889340231403675411715925138891778274464098750344993779065242228563153599656142389166515289529022738455088181687487842093224412279223876413048531217608106959788039633817426485725708270533643982606411371097573290976508297253875690100584128637154568250188126184745376406706666198899513259870077799038784083565916797259967206999241849472517704934401842598631581777803784202576851628674970789216738057839071612948309377202111184695550641346707669671053273351922763917752051598815958604762824815250943879653338152318023571401064421971095082026869456366051826431243077038017717118550643169046153465684954976550037225015735554844984510384144810197843436206319267282071665436334775026981361799468262747760180612008612000491277109976164579402532039729429933664734646320805035926266388151380712270607304839643625530000743831485576258475866517618209280998949075344632367412409608012153693432061386875983263598486842431816439939432482282471655867914680295084576816147202047104447597260981088725895579803466938901212434087852211545292518711397192457657765063296251721270830056802400809054848827990344505387341697839928031462151783425055728739763246337100629144040074411173255222318909595995209751785733836767305939321640683351463449840317639356518255557239998306654733666778859029489127907078553050830610277199211557773641271836383493983420732587739187073249635107708957257874412781962025300530117524258830790935858635626801859459019288613666530805648648862987703273744546881478000220420650338863803576690069015432693965851228658305274394796324365252029896077227056968960465828590928908394240863940964024719922631479466931230009940037517059429176140067004476495100456798019155945253141444466444435039617265337690948582401189346077158554248347537930565196245265555799446287722995305149152376448183380459203335935819233016685138008391301794123116767271031152542997578521397217388778141279881281810863119380618004061460940653744154345556346717774038932904473253470622175021506410804275943009083527986894941728364724980109151478296975746331372257155366935230961162120698928952856994751506933102234261892814076646190569777461829423030884213323909446932484172663225054958411679797717341273926932801647599021409909771660654723257042820803026381913642609839332748181372850647915385159343010173255120962738855769109415177266244364931541506391926216031263780290380698863840785387586210132499403498984780753302445649492762197793914312610207360311573273074071983493026955521011085246256803449134315919646537663299972178735398513474351184841930361797706668112754954866979085088174652391074808530328640374317605137259429149037462041233599014006480842122618686794504018335558664957392199699026197142948157462944805756873999729037940680276737928306973119986449536759596916861361565953249689216278021652864786677099964335434869759629741471714062641724686329550452962679868338351017941593819413232022459904137615031497482794631281073657759769893404616826265903216951981305285451555484549502226311793503396291184349545513299932357529718578539580819951583480238108622822563047628967974380591400284249347251848555228232104292129203796064561395119214807041687379933688667976315954001216367347851730007301314642811667517730566087440958081141180741083922641816214759735648531621875515776682519876893559697682262568278708040858042733625973209417241456986658599921483026467518868561108662970694775613968982330690198401439568777942913146408903222776799138383105514131734833037696928179506014487143171122816130777426739890885910013100707366981082327215341456896157158078121243625095960761632048801093960916266114635336801621454805638880386453116743692562442147716482205276250063247644254449024897246236820130064846009321572155088201054470875884380117883441887309126193676746530027020497161395896183151835307043321613896783846244034230034789833809824020976828093136190870633625519749813956705092676175751191000904219456230008207519700006084875112557867532403602472952829826053329889439412014435374122931565601962771930520142234917102736212922147444162098638369642424772573685697815493073736424573775156109520384124414829937424745394356624335980305084826738331060385591092396091378928711812577927715852485875757880696518850881266244971063764692121040670587623051932118035711401831577542336904074477726645719979809086768265494080118760277258445717131835242942119393660246136629407895909236842181141145021609900706700967553899214752095878128042029850106303720909195802631664961536868603031353330322831327187076813756456878215141299323082008553906089863995076802339066722144800745643306086898997878244502040521352601203411631108752527104504901819895176375192177124994237956694788922423699707097711494433319089258546672868185207904758147986222841879051224977830256288140394028476835043316873272204558424347183678279135435556225872458559799217630086931736687560417595672529889706195263295148142830368153541709299613166738079844962672311836818153382176201078132866517921322105774631240663255387798880579879985667051392793833083536974460858778710433526231538615355824070548781462095152518225620759662004892489301845849699330970982407769715403325043117040751049840773356770079525174444994871651202117067172811573903662022925300668864725842948360870659516612931000413971995765394274953696419341008527453692582953976350921961425571888725440570019161002290751983226471366362659464969209184540872783474973430056127209481981904912012682431124048425915341782770711242212962358415773530703395312350186439054748456969907944965069084126764735244721005262877353837722844881221389376835212151696292181392829780039769317000111126334868593905674314750083426119469641911442140560161887822245365730291058385447056265019385733974177576449926467646169681677212318722220818217129961701382749932284047734329561440050498095919064366700707935231141312856587293704962473580705002545990534611571485670304296045373278793942966060976859788743747198332301438987114629487454194405553943259775835909034886225715135672683642563179662853536626055663175978831177562349143564411726762281618229560235963145762636866132688913996407702706560171099682265482214412501713035953340775399753130881376288618587167792135213715046238632598150689172026128336339620789685307917631292635869325495732523322355698708253441487861253636218259685856689226353169460025824080405423278208111783229769895395079548203866169834115393373263811799576544397829003502100647467542003851919666828481376997826834963531199408538869191584277238945177045773642218531251334601212039992489968747882388252712622675175764325476726296648037420089400621954476301131930248671400983044092007628072498481883790226146090510971335474761546527739983119977233725216484792314443627328428106089610268694616729333572894473069748919138695924172977024597644495836234365975567430028673637718181512076711011638976775499465994027502543006522893079731279397051908964901311279112921076981918609481680935921973895578794274013421536786057214869171203321774405898133166585885461580891623432092072344668773244343812508579970736910647914900952391406564613361074353874036699099112058655258744677229067139923418759647910970421607246870573360483073979049826119093391167962728609183110193693035447791197018171136243447691026472810023399762323136999159814517548993369062653595542446930413975852913829617517816208270394555352364214763337739161864688724979527008107977932729426259001316180082380178251482321578705121360845398935012632404020555103055637792953881514234966015552265480562562305148323622546293747613924083822660890363644806693132024891165224963051920461487517235168838627697707628363863171897201227963484577575449072406405335704546822156320843664966272882444928225991306735587755652008033232303475758880015408450227784206601168495421021318533333035454613460709324519199223212413738718873334251242911577919335636457104307961841466702436890602128508969323042673416828579796430764749158583468798343706359950221667287424160290151853375677551785576409210963214000600743770277213324963810592763718900808085496364809952618730932490043425711012150726988770482228995439868858062533371626421823720767907696010739016538714026007173782716021337604517939279812034348347369287881799460958538440051701226551517725000415535779278178783995037663237268027219943955053155545593319305559581106776396587110771958689783766522484782922448994464976958441572640960733806221150920544824479552087314113831718011689582812891707242639566892461623585223122761664130304698080886508064432849373644975648832837650752658573912883833652230641873218772235207014775027527233585023238690989004312230979978403608466369737366341065402460907162864131300294582062836771146754495355807939504645769644583852294353766824913911271401738443733699910626696199078507910560765967703221540274541120613690584846799762418412822306523683915264566556454013082786941557422941099617273548236875891937841310210207623420137987687650508273271675377208338786256270748047429090077556157102066823036994593410343345362764680458834169098403209858022240597781221286433873526614787935615148369558698138417471506376993533837811110767974026904579411724888611554603751957796962527605759434123662091958699629407951957960187839801869930063292522181924130915958583796040282903070294945974138576315124365389032824413548252456640378001554381729367531427241802108128336348721611408676704785243833786131142914284518594814228698722384594071173990529320738463143992299486216533254700711238726381686910044674961405573611903916237233243757996290163711003235492456839760558587398761268330222870294780773152336854212219328691754188802122671033582590817211452626558990864167431351603731302194019609661143235830432396830118435309357154347829702633646334717654838092100123883462558292825026558298566659446918706185990077739936775052487416850996652120573648247759637742933894359380988305078073629496317809262411333029073463877710177634900203102933104108466367587288304110461464046726113333773455361812710048408714734926406666938952743629094495731448792609824856883577543297516775211353331923645021282109864990939497796811064298053247143406959051600013514960074765482599785724227726396854289347239286176457091039680231745753712275321571404708805070509843489724748566425611263924947886517292058923363168654098079584392002855707655233947814924105917197720152177237243057011900237095493653505409371265886400425816756707288289353677089661896920108820715843426242480324894629606388410340866901129931050941679810651762015126673992317195495008881156690560580496215529582980796129504282091343629297377053635307502980163293692929480404306371044939661883022496628538353588051353155063522666751883576510191150847958229285116121583120156116630548541307212819766985719711437317470428290176719919872246145945699880517214060513422042590373687447350292085096425092994738008193643194376032361615856682653283059224672340664405665478357850575940724140918629147725095657430039793518507486040243334651956847863197891251831478671011411596119865934159950059242068392908409052846656587646102188581389558938780466018336876552541710572836527816768837488827119564412615928578940814683985859279433659029027764441971521452001560473522748261852735971028312657593020384445417134275173120154005176423424697053524168355380640718653051940323667101657649128575083546637723943115290367773628670529178342840304187883020693663988211170508331936656428036891659882014584150253613418632333823295579314947606379993308498156290613215634217895623648754439388455547433948227345784515297343879419997278156958079874628801528175260113986161195692850184636061907924094918533170924757997778253322345564722151603381004548310454176222092585938892764223597325612001326775758428147200657341683459929190523049322376938584460723611881963177526671941412730228872389365506732458220675502267705177660827779806432021170216607111026930924848241538787823540159610284578354400610652053804909822064887472107255944438779319892862638580806710232398094274968029889783231921298842516931591225977038414336595670951701646241458060645438347360605800445921843629891478715178812469568443148615805441675349159348132311365840385092857029545653362586005329004153861439764952778396258799401186276980879337383338280232729328476961567359733072992955360795022095422107952579954723854872678950458765527111852653643979374516938655579371376496071718383429911606240232369753024803973602841692265424128890992990543429213263525904026057743026332786395556241950881849499574478562701270003606938422311100905725788105107034854897802715428738671922451523049380114826837714994924816441826669741118318903515144942149243611208329127715906918041409687513972115005895986332288031551713372194198875739878837923238905629791309212029882060765822401829789012474343258947579263551505667087698547566570144359794653463754618954535159400317916102668857116638715677744278372088917374547217701331295706208001659130096860887403879612472164771746910932270874800279858749311287223221100885897450093764652447612749183878552293069599742513649432321409131029840873141300537126842137240745749064581210895720738403944546107118422170444114936632883174762865200148587560791869223542569029707293704588000659293296466839952748273151395022680066390719586108324607360674716598823022471193860240981033988686224289476881743472330157777526977408874622772586843987070340475774466166018700031839740386902754067079581440288004298110162326746086595703888259325541954122995008803093470343131091915970814994691397259672202912516634666325531622017817920043515576518893285447081792704639405172250977886930175311845161555540495649459079742465864186249885515863559496339132976334593220795883058662334229543542510568540537718275410467706466815965815520015135031041356584313241944238192101260031196411904601812115932073899506630677992880439257376697880845282425881286144821955969498170120154979865764271309873164825186298223644969380053177719694996111084990190710289674461056736402047741120288180146976319433043874816794943868540531992836860876550648584470415841136376494497361782543609293889075759689500149291738149555886864361123429565768726179003837283483448274915002658215582146723161039972837615422260142248387876293175518813634650197683773077239625054183368282943530257974115996091142586690919997535108586093174243866408997640657178663938404144997314551143961688855068291711715357376675750258207036540765709901397614851026299587234851870517127841863757888161186695354154619956495493258336787570192837709169168623735133671613072147446587429455963435849173183158102736715381338087093869509006831036018209206478964373175999264385067370358554054033815455596305478160282973092805856211828888611291458251279845017456616115613803442347929230154392212252129133151794306895476661299917432010276659046790143093306849876812116047742859615549209355198332311556163507771423979765865966324781044170767411703317150959725631224796251061990654269552685303128921043957313950185679665563188503754572888421216083156501559565041787428867885469851585578809683104386729712393584886030797577210980039910164861044065856588574825610150397067106582580148824535132603123688772182322699909163790852111017138535233040635252747261213379730379449978313869700765250635607736673512576832685250086865537070038292354419498957728084511787489691124707554668009714667712262777653101441717272596924834424870804916815880949303672409656295927189934291607204169619756489661927222046497095803488352353739251109885190254562313640974460965499609159072609154669789799565677786129027178648633205144500284037265200472598991717196279060943933053588385214143098152271983757622969421878461989058130115838666875540991307718155451884576083543720418129322850054698105823504260258042039631513635736153115877319351976322895767328674210798957932625635445201455288613633086256097558513605477198073755876959916764987810250554653931280389564572138874414559601202938871324979340622600884312295836884191477361650896300198862645351423804224491649928280947429845996019895495684522922668754904113983317645690832631774693342452544759607811293425221319170090069772537051072266012898418644793109583922026618134372929443793688924733764726100509447087917863799457816727190203847713061459200914891995318714054789109075759943752857199238020149254069455403843290013376992353297567858123013102678721571570892481571505209823097284872646637215596939644609050258879626646074791291857021663462184104551408543696409098231097261929572680514017261509354431387623588154939290801545046970635807066100913144987102652093045409527262001226762540455719217717283048964790587379410534319007407564542751221081770046771515520060612879468423511703172707079664818916781415003035531358567670537542974355055097971598077063275079944058628026151552269506876208722397587844299340874347283806855385794736145286744135570386629833872006998919416717862198828729187795562615178335531564071322338748315495134476224008046615622543184341056515024077300039372109543947775475460877134902456610650908529054693312997595596411932360280792256338456294273552021146997739555713633343305447429952265982118587630413508139575394355125117338646811283781952247570507888847231338863990502313303196475598070322902980769285040479756384462719611551026322389425931198027468801517148630306032184811762203608559371009074983286066251512813906273547838320989466849157305222295233830673723138828015854122851992240363196331347058184020385075148381740044551736602730538682322334358126972267807034329522304617881126364252244539620061708129278864547513654580819490863264663180693260160989001512148369096336565479831403371488855665830777599163698185307768164500854672725917594486655925202573152706219482783497106412750357067000472078386552555956760146929009899531929400788579221132012696010989141460849000563733696122667314706667876501519985844619827653296823794469359694725470911024079031306680221673836059142848488703917382389969547514513608139386062144298748026663260097391964984106906803865163815608602014007532363864641763396267961756567721483762125527737667839626807889698854061340060528555379316429116598867791151296181630470529630209397144054678622308810765974810170987096547564906579485482899826347372796528802001659885292746938298606443464012975452782214248751124065670158532984562393782730722485187735183087799280093925971775926924753313112480855965748474606379591978991921931654741577326913791886382045031322905304390245072558055696465800656317283123940671807885985704807216468653053119353396757442881207460212292499240902049283828788665073643838547376281563147518601503275341125520070711903264354518840000855645738967658307071762599865874913960687749732196040256672126646457399882274282565439825688168023302061659464534356798764697556915207252749689581943075205529481148574575211261634944793976290974536929308426441773212404120276588017478412502350975750555568138790479996054793721185876865573245742988176744271869265326671888327138701886191246791380933895119308001670825441104881989125528749284749515462802109118305398611410579531813242364353684079329645908811994612922004047122984020672045376854444102982149949669405131870778814206688281166170873561134718073709723552265172938665669563497780033475965130646357235913217185078745135806539591090275113406016961732187563718805718726349676071811959125431773996048530174705381994259293260316623405526456642962363659235126984084720139954519191010817425020012682851226434601224951272418792777093941057779659031995429049141209159724524027820426974716567101624252562012147893050134471733082830221560667241763821520492292308822066704357248391278186042424147080994433757713385572475414297462945926193535710396547336896507372678859706114770976279718585133162665271872671533445624179173110650508381831732252843977830259681061210081676706994638826029757656233128506067012276163172700413793679335722374339916481290135120036016359422781326091598459822465329296126443302313121891536404514628526467461465727793211310880682072912622308868029784072748519959803376448552989905436097975751821668165107921009960482388867251279401125681075964168022882706377150078731359680815699907302615006438905912635485036631208839729558416904694824304713939136065259838171965797032011209940168584069674546095256742761522026343177084469276044437499386589157019410854751001145290531362800946079993024126491240149215021766606086184978785798968507656624470345081048810907758896591924867406021845895991995462316613009839217004335170877679141922353268008319106170315944138382944708615910385346283462841901096271293254049380962370709020173247085600069919634260896700618731227759128676700215622275136143931253263399295029477316073625182677291985043014548731452098991765978211815624754331296139596385073122108548691183945099301467926100791854845536851499560904673814224229620400772500396789512130580396621654435788155879636897032374642431606657731623454249296934437450021413049263126079444253605199985822991842822096033615212458344364631109496289085334964429527937879171359843192387961197943447295980741994132103865581489242005897903158219963757559887410268783438729813220294474057514787900944572862853117133853550223218666105491491125856570953254350925920353354180747200728175670566701325663505753088501778065975665380784791574560613059439392604012280127385106847950779598254903760579068161986262531643230658313398632827724086395947304404361314156468345489914208760438559090612514943508754657560542691892157128503956880389065499874289738212472534378647996369893671183371238702213910173446924987065454784227836041189456664572714283050191143415882783038157694695221914799138152528448354771019873643103319660506679642922331539835763575217332938833984767649178908256668775793502927015480196029534806388616174227166183809045305194465211309538138613975558165009201824103726074496981671523535375248311898649092223854869336271939741090943263082902500484092203033784824913922202935155463464190961055314385624345485918107792729830607888259782151644783436861866570566026326806139332625457540917798178725542549462332050234351468489441690170238179956210853232272903324734381699946736269533728262899027826131765358822008721570679962389426199211744709858710912403676392182167027176935163097789432377331734017854199424274790973255590386853098449284684771818211047674269220339150018533632100496904387240827380450027836925844911624691759363967685185864496988743442746713105514465006901163113831483556514228511721998218844548170856213009333475380370820129312637811419745668959534814698968372511190804224703556112829562975653117217483880843375952901763955812252902491530684595959704932211128532776791221350688473946319478433241154985359146053553375998671054734942006343984419321793391538314762494842536398614344087470365651979050037066693406205079531783961755851058768159694364176386944325718475557850164444118513942640851109353161977545182866463453243221997748564858624998651552847819693064807508857796965634323751015763301134034624253922981742585140455631611443651161281551332241141055106135849842838036567861857897306871112851835151194992810846210608101078581519381500036370822188540126211416639009015523394057473557443810584931323941962344727293768201474957713226800536243292876496346000285796878174749528916117569955788576724683709496154964508698485411937413941877840427910556600965323325999796807266119334182006595574569654352916973871213637079036099808745699387061857742462288344828255450694189763650081521872569799742357203206781195550821370723967156476706873988055823041106638624291878987001151020795007270433981630099059142547296820923889091634025806686291024734703486179131356961379281977068546812088336342473791818732582912379229257957309871778401927361911157733030858118472353167763213756414732701533614784812882688425056065626821828940461627629898643366750667230844579060259089829815044178083294742110495117607190827215097107638713764702294042102168038851605277196665469476293209848675059013618455715151392768636931579314386259000806983969647436530710615937565243949045829094149667800071442835024945725731684523442826840000125391787967108914615247515459470409797640187400831386173938755914263104352957539674883105307556643971227938465267818904729023081109352125468626408796482827650692449155419846235703019320954191319058267227694521096496914458265037467005855954104318863803256156912767223207950547080692729106717561922022223697685823954729793011990963717066169759857729924876409500662479062695377245321319952972267809204928317206082498603706524918707845941304101408902298242577080283966272899511779183259301565668518781416980253252348100137154960735049844858264962191686458640597690635883276307938056369534970226589106882569453887591276659374776329215660862094127767977185557178601916520516111540339806988805886876256822127042199110438981761645471384042980321571895080615983148903384586655617357079436790248927771521312164341859934986421851925081781660786787505866853258983177423855637631763804368461572601621747329711903822046154589490920315487124182578206290432971395373174329310765517369416214459804113164739243450904521864416626412269557915998980783853891249762006770419226409756470055227659113838204821893529068518389098181088704231377737060847578808296823810948029661436152683470877704812065824850504834583000478904673651605051310181167896372455388343610848376887896893593275501786577323517667495717338272366415038934949248258181967990993726881673724306893572920309592090588188177091692035616737263100070734199644476043559808642768385674777604550677854077370454877006482263003747768130302957324898353607994798124595673867179557767660653290930517302253703589016277516593709535186364259582155019990500946707071546272667564812386995927160787598296301918257541346574520277691730138985285356151097867887991381324168576037832232386279795473970129709382169744735690767905103601291657908556024921515974158770145340832540665808715469583387376308279456302212892809658213203394434874286661968556123191838588501347260442841165465334837619636880635300932821557262170732479730425099928574551780110187499462594791475239909913145631432378702804724519675830143851667948463043934230692132246846027846627758852644191654822866091464641201532119776224577734403777038081032610094636174776034971549143816551428958877261289949939282908803865531688028649590711501445457387568543784538722169955613558797782699238375833481506573006465089274764955699124766560556549848573314636409978654713951132336943893547683322475334466669220628762944399472535909997520213816134268939106667111638874686679582504240914095064606936891642077063691599298178963152992412766330234122499495865766184781043881545566717895965155677303486745228257348287374710786431388530504293391252224731394050781535901853075070030659488967989960515501966955212876972829817911342960246986367712973732879433789768792215498203815385467250126109300086393843230515799270956379232759700074723457099402516922490837603675651468236941519321444493117319517537555325920519529333238355660668447262266821935224618987068316705546816339050051449966787708031670587162479178750979995767206182116326702285464018509388748849807359588902082646961721122065275739691642399828266888493681550670865561093276637285433022990501697535738536796011169439286083832224964384556174476090514537521175112367423259399124736647951402504802985371151665000117051525477939181608309597658715060011427954356750433370986076718683466276551086450391587621911187362662705423521162974116198199092148743685896211625034063664563559264751455503528398838214025499924674688448956909640149972601759959118131535103007682305320916111995772391346182725094135483038572356559203332978461545608178778622262862513647298667342596939405754854779828186102387633721472136437394401546352039561977358006687713267161926220119139069696457295389654519627480330281478041452210256772638377473689093842411231549567772211149267596911790070616795257291061673027284858247619689789458917793028879747552865652006796837957458560927279631289313843444889808731848001269874063140724525107668309301018676212073939120168969589301362760052852139395219885241930827218638118008307841408599960461063744070750815567554996262685363895608683702026593471484104421499234315212134025198413856896211590908448910456124046850861949562714407717227059089965255220392090010732270701919639294107412508333192405410481803424407923186755797151719795550610351885268706072445348192582395517352321968736670988844846721737787923184071895980530788163816496450559111912416664130766542550044793607132901876922470373576194526655385762781035438683982100515572589007073530295910523076118138783514655850280900507791222326521507598373741932042333295728832143565538640451006596566382189580384471762979638115284620214593177123777395819349633558528259607315471131059476049082547063792580929264116793013279375190511454096659950482595872499252060606895608498573783679384348551166432288504361393234927528906914176976875132580008072259489215183748886780458306525848462796766715996636732819691407314187921756729205501424021419092357143070265854173564119891114928859033436919119435130920846733352693561918730571583030050635061431612451045226496004200447367519058097016476606909688188923468616899276196681748248834495935585001003474713219924876675995030536635333259714744321063973974672006877149689553619717130854135182373135936456489592389112470408588050167124805577098729235295262074797824646863178664156572277978781281075941589914165391216079731749093880382096732459305024934848067006594406852771014298594130774261744360463686997264599266096068500313186986430313832462087021125909913606758087781522809294002752348378315706903035116036640255437309083192720623693973073173576688823196343918380670381572452979982446048917585283110058097078697184729038666269891134856698335263156650991442667690333600058094099869488473022564242802451761191670452089403675109847535050189999059960790559376245742942891467824450766399276411289983930272716880727859150830432243571750902516413918893257248388848694897028120612786485659393967067042683282116433888341092319150859530877629539368676087977542549781095497954293836096323376139940780612485643013947223071401148630735557869220476188900086373306333398165783052369084995056504622704932272552894182884255662904842363223814995011906837509746694125428856920795322923399557637737684763135159155248497318410874458662322731107324890681186215532422639133668636607401135152256966546238374904174662155698144324649452885149243880859283419693477659606243087101985806366732779639682960265841352431850322809924479696424436984124902026911294956509727762717441065217170416547842754402155567503578159379948218617691535622857431803931048807642207145317156232874954689390789135604902979180721439498520236176422565114751039304568626886883967140154875749034796123987364494281862449312031016179429116375132016932091701057179495584813450066288028060496386557831030671988791981358591696994085014326458033587744429156194872096561393902757969291073873009319624060292383837891332325686805330279988342390506954451340726988636815511006580622883489641867221923297052440779647719722348155532860253390531598442498281061998560054507577563127874318111751323763379538989251058174712021401326821575842718769318756697944436109568732717120510340807377852556529907456994716688760771324807238146537847236005716984171490840050932326554906581666996316071855653583517607904977063153806799348718625781879025722613014070811302489880894547137502741180515236003257432447225149460300075310415821823566888013521877975929718180710319474281994727199693740665209857286280390603279632427653140076251010159934625364143341726998867559531177146983261882444667550154664726775250054374809944872415933513771890670187906746206933068878650257141649661938898017994027284488839142315506534156692774068214079146686321296203918275603725638494955182758928703451398861186687690789704308625426925867932805568883815571227104259088864474819826789799841475916516979276292984975545910732357295911505758572650307234641194587915611182743429731910182787960243306231827941868878098387486043512731674425691324166100756956454299261864623075929532854244257980488645454742652144991646289255596209446840844103000203378422421246783252160953089828635634503046214404299238695632019069705616089896971976428684514440795355697084660681699722277750949199111398231173634355657900844632338792834063170359750581880983057451913028567162716215907272441165127566906995866147122328867813196090631775684448990590796915715814705436116464842108375229131536997284855238648682540544142838872966000498569546255799206313644081587469869850003492896501780412418281933546187049616442215729299663277647322381974906420041996008048520953162542820549420004013513560985703666848097578613877984301715483231461950392421240343440506493618529279676661414357645884968036896355599453575038473624200465603214357901068384189134846920920272187418431583952215821452924137327405385600579590211095621781160378600505140232653440375321520856201157747753140823975116697988059867702052451538921160197243864147026923462154498449084130807294633075044944269708442065642377429392388691826227448036796471050183337887167237142237596426856585619366488368689869024740529457711353072702105535205544594866898598267891442082777677975136133875695438497611665813172309181853049497046758118903278865811187514882854107508411296805232325594783289834641217018466332774470615242909118562114875260106903689343043894441321781809769716601541898812358201484349968002416658058144431956505628546981015344524966715242798069573671031047288409232512577014096768059688175672253133347008747513623527238433376274117733723692371718803162909551081463887368215770198784341665265428498137114913118476537397475699887896328300081759900961033295559582631056314915799631759955418047271958664376618324335276883156903677183277402771099554076689943327692402985875033408294877057769636159344389812143723730712675177234755047361854765867948780010607784317264344899998413430310841438749622063740945366869491224838648894393173558581571744872296896042356992689593152794127394392745198153996371946667955513723197340249840427542742134554824973237691926851812834831447634457091457164024304245607244241500302722551063144415789998144044726329387483439473168683336032933145491921259473423731902272371558229821474868248663988066764797909689694897026927669920412170507780338771600493301136094004972265997701638313983435350764174040236748929108222212256252319177564559885446291366246708893897858937187061104309720314826554614138023131728203953092816050945726114219849874536758065340458839559530417899135102577665443999546846607822573897312993446109237366858989960457995502715305387939732154056201830366325914890385159546997170035207564166653261501766022693596636191913843847975713601701570300092209741231118511487117961727329649984511387652795272298344562211651838382295339049572735702005545892641289935535294190145830251982439514795235730724957811186308833245850210244770162586872977125492863651327091080875309102610080095261644719799977752524415180049944893400229731550611286564171613508396480262421721054317689107344982153491232243446312067949990942935000479062241923336939204375802172915367795892947252412427787664071695703721786441223934111713882796095698944196488133643004200729663650017121573048896915560567156736881013317276883097391881278855218550134270661643041209743008480983520091548958986850274355111031161205294738193112844551363055759213766573622861907427597423719134843524639377582653130034205551311029231698556135132143230310886346238789136158767636712045163306931470599586867024735256330998087799520023105572073779245128504420139235887957779762041575278839016678830259585512049082070741937850707210185625936279699463848531870342928882219444472821158683853271733056310644166615351449570285638410762467256625138628485933941731597463549951467361252863918238853735262077382970969844424178243450529193859476319348258170556532187592202113435071861817891380993069245842597792485518561573691258274358704097775115160541206580977786789059087969939383083503096937665464568803098680336823823585409444039216156582087714466107716799643280553098742787931960556027965110466239879960109429685143254549034650979868836116964711694087819376458987391952778680168720979499962259880538830096544818185220409312067717133896818586231767509237585118862260130261108697206337317927912578619366518134531043288248758558684317708444385294717951158052644611077902477620556894742167431436012957753138736665084439710061852596995326640366662570136520837991155271344468224166369657964680914812757602364062863973099348707618478283153214846009777465629252613064730706719819954997661774555692955895920373126011879409934892341191857935795846084954486672080077834898494055125585972162599504903625849154280428750757043232506215420978098947478398473905070127000399512139840261199594418201492435534641422855663015593006006410372330461337647460109407503525949299105608514897459394743883893270524709036296093372352845961456391332841632861953738018584842674785437652053149748864178408402218133031331502664506139923580970274406607232547761022563496733822393873626506098567902960465064041468523874645632451784720350321753851753311197129433993851688477243519443774365246793347662318683250106122636922896327656601838124131950233633913159308429765497377134209436072345931148933229674853748028285168009749853313362662926580192851572042772847152982109534252899595269264655222095522474387463491120513573626503778616060321963692103433185742551357194920857731283283260141172732346508265448604733076369770161326597226016924091619181593593487576403254269353999422292970367301839381041793696626938685192955130142817277768548231408897142407625958264743128411914882376840372659189244422692458912302944045156866896373541126974979179160939877987222183656674118068402483746459129346729753637083134695697037300660217749355709761540977194306855728718488129188795651916495763720037602853799660589551887904858197640210503533715384827767877344007471064942775927385558124973552249116996020662266149402186808773273467266259947108865240222998559091540559889383435987759943778904855463064657329392421273636433411150547775798833239176895225900509148389912569140799110385838660740187786685684107610631638853915672053637664165093890467070352324683497749848352508693198397969632983984165827258487023750614851248738547734046129394784077835387216359409540704550033046149375449863892113304731639040074718305392425553536076626333480830932935226695079203990671790593177653777039642180289292178938974055682785313540491587698167145183981661308695791578368461195280666006899307571433163601866032504902769979477749791645573658806746547763503997047047929612703515673923942021769401149461300800869429519241095014916655108281456737523613471905568877219298571367935805918863799504003701907676045790130872359442744340432502638911005068272758050441939160381247223318734369246290106348083419630517229536185562139266234263146671985590263493403707702934395876131275280732993635497658359141552656936413606554474556540926021276972739543716110752834748764341457447640812637427327486412648564507052976404780695572645894093069111671881946904037864103533175724815818094775989557211935915802517577280766319318763084973306387450271179243174201895275049391000846696962405204793551074191796116597719702469186587677811811630766616004516906438346212166642065097857746371255708610494635877988758333311557161236100815963252092120297426795782995842061687157479747788087313810594881546640389796672920627632448447886763911623120987041394574476293841033641504117101481714622297288673467899494679639198611235648397909213226688416031167055961232050340179703087555882985137241503360905253479111891023545990812823445837548721294602589792366303843772899583698297496032439944986332292894113076073836974072829289896741191774255498006376301688464278374221392041090277247987830330620868223239720727207740668630944964913697333119838041408950127028486618018163922762334713464211770147913197359237515336946330246492788189286494138684317170901192715262550432893624976123995095191211175845950618011593296009309835279798016631871671468330248949867154109073359761134848405529585958715115310233307569898204511804278705228126204824971947865445880842131974359242983551339706126987783531213270505559533178789951309263091040363029801246325754167366861342189823610814018757722331133596681727635503309769693047915643172705618517007263961832623581610916192634787793944762053359561821879345537222802167616004139238013599641875989236084080032236285505398476876789138642820297735859716877630363042032839265073368714092724125714458171299441547584898826193182898122437965643662587991494219500661421769597086626262574886790541275830652248950972782047579389152982222649366347691285186589793612125202356621366104531450898657717715460322420157060247509613669700127726172067955113118867061404431864563516747430815463888407030495224658765283925376848948333412260446127528932038198272471941029083667603475745310148119730052006035207928583344721682492177356035810325634535109145552672629443271433026312587948666733473736954553417306145966035740577579503708860690928499027279260769529477944340098158666920978392341718830013421178666392514330971559369240054936017440949014778245244016420167300407387329593407470169936066067357701071427732458675759333773385799608141739966119001767914763214563109381321350397339992053678457557527646958316236521180763899067886892669693733967190170909674737655391877074557609277015929153228483460419894210391892580800594752271447275218715858893991554947083492470177717152215202025466799779687867034819281622741228533365238556937814910966796680334035919087767447678686601317670201651710280929670912410549444513306239952743461035742684943203478400093972417637571482692529733527918350467865126636436783084583427195147339234366832371474740951743139316876228584418841657092854853177493979249305143852281774332634794752057188732819642817348865878245430094654825426113404634961653031032118063842359976091115116501958764176884541817679752054679832411949958053391034003882429726549154124781392783147314943264920003993338026562294701360379274440661305244100823734649115848747554546266668999256688568916718084293184425281146043055175063891216450077056098418169671374144884726280003924200218350780946965054988470129053214240824147985032650285523821238783969286632765094097192220186975545011962355661981608264632641227363830391297026307654206142547032110214438444223166612142082963123918077599313530905719863483238943780787937371689011200038656966794741825641913965260198942169779233852950461211144010772254601208485582353873773028982838563251631767404653871522909652820591021856454367893957617736294932650689740373472673547279483906389192502074021771776595942692138661328394309079544318599896176379681545035042607453595007895957682702512881420738424955379260506557895582448862855498384781225117136735954044245223974301566040409644322362853460933927359853460951613455371068595823130817245054733886149750883200122814226276474431014189776966888552935070981096427927273524093680605544452263116359134611232317849794708050645920137459875900530833991703409285608211125365739641745847366610531319835088731203772620621170616560897510298278702423897499273517194956012951793850962295129999822331113244155969110500510042500073357533044332724564826434265820548628431010573850861420995357895785149673981034048151611150970394992421297503662845819989893724143488475417606465325756922776141666074389400604871535676762118053299856075932568509106744303024125347984403590749805137189193891124896767239402533333116567922100632890246017099890380645431395760235869532813516476251491584122309436380313026939607113247555201777725191441683329974280014468677663735979879691082165915906516790566888110997912611163030726078092024332308258673689942007253520460616274720801168280945401298765802637124399550778653411408343099951869835737506999559812862562130633913404669237460776888315286985391206212793309422685132002423379661511841019536454488393068992561507730283286468567430787517985049038515905377675413355521442624490635339024785087747402312627834515178744077125570160348273072680407769714043208842294017186223555130092706256206446384431845473556417278831214136809794214161408304648725168317599067114159827837318985919422139223263571373711517475288420430151654041136782292118418695212993552787712251456981970232505322002875108155420731498872082555928375248870102646352924289734960448099055553884599865771377494505494684607550612605744762498522452847158328304052030484472606486847597123287751719964922700762536876672566443694342749014901155322644024488046619258186440815600471189303322794622538027699505785335147426393196265940210586799749337715292067032923658030527803694417466725084577928218723215290918610366080835254529552301951725741356203875396900185103933074379354176616187948492861592306433136276080164711676472320514624230862662021790614497398997376907910698796587739811210424317894278957017743491869338276641757481709157394006251894680232084272159836367100216863417385592161850671929753351285780693890814538632266692754056114953508234709641644967259397752200522655661127631731279540261823188652382089243276722230432822078671585848190469303885275200202640108348609762114865388586526884041594646778969485421963973894533633869211128035518091479198833384578577599480397567882333786151598631615444461978244383549725775934334334942647272085879357694623306430726137971181388674215661321938947053864584404277640580654802597918122199909280966385541884677399770286829703849576702199450876266200331906682534473635703710575557039110167947045230429412369648813174438854481208995537941592365865699449929817267468842502202446232290527056717142011838726475519208760931909375027700424652778068929348966701917191403592524452047455427288732336472659626315337247943627987320450806365558135170866659995296878531790603102070643045538966759258357273485709032189429692648603017197315645394099273055024032747958117108590622908891022640862405202928936706272525519888413168836477154011511332070625392435980239481330156553938411025571709939926805180395234304026689441595908181362375797154979035688573159938426215382913091274376273807519544196022825962035013589718895218363361499858321549373295722992161408845442490983946664238120594321322809176883393223086895251411882141561658308461023627299273750880004180751772428715942684198437870070286566909317024723224648384612243751878668612391774752251632759538888386210149175777814536420203064640147249442676770299143695556631551833807611659738886158401972249271198695702959163476627893028654989421519446674955651173878365249298012229760523174970455974314901013346606956713286328345219481197082944532968302888984018036308983576216996550095593808286899634651422266153461266762871692453066450210139688905953203912924866278896020918789470193583119450386156131281333168256342715278228629031123591874212301919019446815751413315598719763600225998994638671440227946870743793508890616751178176687740543432227445660513803023547502778790939254374602977371113440463079358258872015363022723078062131181429628113802667431640909828039642650927421193753686246470975082946146709274139746829839079538849109756926216565348485795345147778227698768007156058052024329446606684714467669908887022917827832688058177540911759054365385401873457839723692534070126536752604905856124990478453880405378826686604257735624646390644168899788871166293482298822218778896229007795072198860465382876813609029407772984870321615962323878920580407106729460455168732836535037534516020646255164462696798522294105902104107460971545940737762934968613466528587026208367630229689665349853271190177075836967089742807988461616244376476170726125251893795845887239597186112515638251226428625201998878022892285999737343874280057666826367593707405091664291345337732346330728094957022583628657004874782485030608459406336769831534292301277759822192558529829704348703132475793217634696553153950152522330189012976825799671933393282984470195474461685660274907930168491663857192284880556713092874051746796876072939424537953935387203488922255286729056554719705431445028197425181271053070941046502716491347333960472708912435352366902706272686103559349625160263359606092869107164219467595718893319694108059065598311484926797287207784297153790078104492358804337981929607151540123961712978653725681318529047030697754538391702002116152463666088293095253070595028692347812809864201823178228784417144804986681050956361556546010298207855647765135870740535535141080395885074960155236181161307576818060320365901282595699246849143736954214444527676565718722339565542024538209656030902273412443924936304860954399867107848747066708310219250088984643378897633956243960338273718414716150315280444244182862980986408275863054682777466472434641978266902545594714438506000837246243381043471682144402352154414930492670884307929433117387313741952791560100455490515241502694036978343856759335669295770603402625541953536705702006674805053333793199978358889324960430068664708846974781184091299653193955457901511496315144868932396510857392223036347960686478511247005394357518520348288404959659129028025849029129364993417801025244858573437132220316272256230726869562777232669988716840211923067679161193960128499986276127241440576699061889774694158961748962573335341063507472688361339351778355714494763937872182540619575305351775514618562914691868355790191064252282464034641221150975864499585918540406404518626437783748642316941325686075280029133790210347758026324644647773044320575821571787140081719204946113385387371169626435496323814931857423763169921530643671371445169629776364159597414433810574136168193949814575782475317070197362439146750140016899479085566551377374709951844145482691449872897708928926106422847109585418044666890460863128179200081051969202175085873149680928734313207591135951002023834785848631901519367118131961338369595767630381386791427137592147852414126986187668556736553960899263140439048028893483798107002213944743492493695830644168822781719574849317191805208030193930093839741417394829454084093177166162250010262085221177227603096928123068140618584154620538607151091434488427124996943108348549431535082751540372450564263576207925475885582994657519275322897681738164584989413179262994564318885524052316427866854851179023620136651713192992024678565057090468676000866569679582024912600207002848999779710001273870138504262871225827931028390588260941591811148042983227657305986904783294138833546068883534360910197651060295881474797717813199989266916995617062633599260898889488269645939278755504050792550560314296237516644480979523980971858827990348117643864197875359645481060405858946101427021415794053376286225095090421284359489620624271958079520545684769426407728923288869304110126891613266090879601490305873763866475614651230764430868417904977139727486812478201811837231140350942237343009611826796296159523002617833250711727188848289496762665335495055591566649810021588234350998263829832698438713376864359600221897759378450312911694235020724745081150515465620074867183697755776979799741403899955199727567248152217995820623138975958060792864182604233627734692655118910187717839818156385121798947847989600085245312544846729380340633311974428593951991321508090863458277297271586815715818974596485039284149543801064177565663698401495701766205725083594949825253733244748021718237639206748557114259021343906951824196560404595105808042504319235893902934462681585078717792616893033623587468735043969618417197631408980941506785480934262233769729189663649712219049940427611957750609139441509031456466087874467981858319975481774155781121142736652859146665119923547333998930743931744002043254167097355312791746463773122455830137742381171157045349627859160381189501546573267144515974582406590764755912945281148322658008613177173368259782692968832713597432145775007000168404355400713644870479053535809175811222536016127781298661378758333891909877891681974504366408468803296889200955062416625084241075211917371768331459342609770200724926367672015005261454864801663815983334336637492262359870407964826141034761717929875980797078726548670926706030508588508622346082839272679176949916078647769582495873086963539544291476791588394499329431093122562567251958476113477988147902905155605160139672697673165904721933795161165724389391609512257564192472779928560136031471027728186482170073743662708104210824210453793027005012344772639239457474028073545585863994889034358600429358915032323597732534557938789693372846407900639637722229211140023727796469491898701480591391168938885714285522947265278732912980789201193410644512331951189375806327523544918762696108381807611594441336066978003069219610318060131055028921258492719098298336157672636982844437140546259486534442291516858696201896793803800532508022038559054892337164604234850234315207259901908934097413331783658396723929400893873968229257529167950416519685068789522985031282600612819594203976129656413122006764161397240422744098209562052108091437167422463000090467924912793256030693787364065047895818453760719884053192420592712936739836677871930263117105049530081617541585668849714748730985314685742487060234382445004232997260615395665222252785307671420376233280073535209758005792639456194398041127843628561409969774816392976583345528845152290235380854254531939324159392073709356727793268930487131919931271942747878936190031608042415450555140792045117496835789234087495817150832584049553997449969578129789533667498099537972663442934185089073253499777397186784106924197842675492641394636707807762086170518999360943513719562700333421300708342240273007913086823636128017930908060500774662629000557373798372206488421207862635162575923218578586518600733584290043908151244024629657044869522133911360306528008096622045320161460630914213692829151660867121710128364921913143288957193182419987172826268763911344183924756499486495731865076658130837029709334997635586597763144402845029744990002647817059091875645592321896745622647307933924557773329889614104433404269499615082264363528756101956583230514325025543922019665480293686959116539524551721812324005466219433641359739601472779190021765981515572271386407499902660750924637347553942402722418198864322184877045082455078490652422340175071514281217877156717461061892140393222718013461189457852154381868023583439421537155379364336819566043459046891609072335946859863188229608614197533163401833274740562882656768480655730614808498383926712178563756138205822330341659615623040452696593392156515339626235605933520667204503819455102943995670200679148292463566352537635887883658534473707656262402409473662983042156778173219176754171478041702320296061564974743649162203445025954770084951549469454436473956293553996261952431829654879113680372932600402410568113915664287990663529858019934527065144027941030103218456135373295095357164825970574006953249407675151931454582137498436647941066323722126553284350715482065995499726086607072756730924026622528266839228236191606149785649631027351936848606159693628146183341474597503940512815919298626779672498504573918799252655917643067771213426930602793052288547637615233432390435703878022068187180429543347558544464599790490841803294684208466393888419483435673236145650726128105587774163721813577472632429664435412127268544285682620882360317809804878429542092847277936773875676803959819540689475332886818125240249678625954200548358931034753876387093108400557247379904961735615570138551136171872474338488618374196697208819148028866033019800202737607539106304840547322641776460775259523497503063158842744643720268792245774105912783414054722087100606505909948048919772685575457989390982082834428579763471994263142610190850265895626886736712910267563460692696911421040688939874777842421200400628950838728150513577506000297151758203405300742405233642887270335785931981604390765156140145571964259043966376899547120105942426280255878304092544845082934622746431891256321583043490652698901558865952427192701327998932504769746370534657329551309495703543571902501095921380875209045954031899787180193408899184888574474238884112327143776859957336070690650338030196691232230565450181179638737957131593594220265908011055389945982305563637463880105071757009468025192677656522543807060707574317838300417676706943140600578380897424283709010701237627619678585284218310783241505549530302943634511547816685554820602709454354000194679859256364136069794354375177884418886332573395659360464521163091372420343849339023549499063937737557334183546717313248966115928229981640406430768754201538641508893679680995057162557479311863756254507169415450221876872668876674444880145388812918721658367373101654449647440177758295270588607781033342772214136976527668264008762027465168377250439342083545496671666571719442981377010060191872700481385274860690930362753196662350181015456068459578064380359164970889915595306878690841729127518360607785722724357058642190528912228751161973530099327716867534049270077388893919826571398977352503503998739403331439665138242774885651886247647936313247078935472578346174514724313947900635148416556901625154996653478155957733152491898453536242723156387871952084400460395130304401556199803561488687708602159921582000056960388366363321246757670682490418735957039652661121924684454889599463976378570083248603664339513051906185165898322530854778440174639820398800532625350114608158842512459752278619488992523562324478048173544273808045207256037297798508665417447198652864849240443106567961588197926756860157554566470285612089772700350154875947729179098337333728537203837565806911491966403533252369995992249514111220872495839411795871713071954131873293067518443497588414390630750718727430814295395025686370647389427403251071880430314662060735892971109816460394048350454910351374156153933650259806416391791723374190786852002726234407576340848530488681761247711567009018964936114372367605332590321887563914908732284171712448447051449734829779819263209089514359719934606921147066185508084181296592256141773380407092530357696478627033900456496192023957320433589069221894224761749596787232817214675281136964988007548707359964807164981249566156132926088708870718184383611567649589949736355174089182266558988883660068004079635307497619654187685658020426961287490884394254506133577476106776487216447900923326433255481129753315514815580196599127636336254850087904488827189968564915720228233100685311926487623234992308361221803635765156708070781681193395928432044455950243672936481262103261482927565401186043553016518934485365976719717325885440307562906816385381843856481931145182672261427379535857698592919501941606982782051923615965399880254153654233130351165682088489398345017973404824840159691412723229421358096343433188674227863020382428689798215434733352040224138827487078744282054460796891142128747026855579729925161978252628440428844531132770578467331272391537523980237832244093447103586391049590214623474836472490653143834576075453034535723785110417250216567368795119401552254745692817897318666300311103389198812840468881448269086288944701161352170214660795429924553630211185008421204833983478008231270914835491205771421646702275545147507808993226658380147541802736736038370195547211939364603282996312594252803983151987371020824351820830216202598563471357074610755658742828618305137668933111098478218174435229261768789582183554163008406755451520134370868179000508594238938315522020095709944137857432502881155299198064259757879864037898551257551556704331383588344730639104875482617228601248857367388361380166142249222720105113153082281249177966811994827179680295065730915145846511482693967892029157159949233783459014890404024214782704065677046480059959818630033350315708405116746343977086656250799994053479710213224442887854725619461899404768106508500197992091154629857382159459159301962691851240102758350980178635372596880941556432283905387276250672476811515182255883722437993339763036280666256139300960071185753738745622554309899447668343531434166711301544874047143358361917282641788655890200013135246940831812285816548348835979648135003406212442699901464765244800217221700936883680385173736908341074557293800268442485020462933979156533980863638684141794847874719176706396737967120191717825699274720446946183131114676609890338683800250075820650110251472237624584204099293059289635020346897959606747579798383242121196352936514492659530152903497625422153089136681664116180917040011205166064240943950234323908874987465505965306148021638873255559493928862990663671112591366143572913092552553662146204099761328473256848543341458833969685841413717334246352325495687620982222228498834510633008720240901123678858242320200257010218108699314081322579267026666952285493366947588770728378168692786480568839925642292877090944374012495478684180423990519851679864475579826587056925966442961905291995259231311396094785964475416992981075305221307352113037796620943266097550354698123476571568529277102089402203014308668635729322035117165241578068094803387255293326316780081988606942370790615542766611446210146502057176648862371964822198579539215997542600694777176699170777184766549161081237402212279097424317920057032467437630108855333239397749966483408172887026958263405336689779285014083330176116069033048920898169767781716168422727778526916331708178246041710022530812340020364451175140504400190928810961591092355836706533745583003295486341357708772234534668310124470559057046512201560863005003438586741170444917766895930064272634695988491804483273919641388965690712500983952331696185411896950835242197029006726269273905106373917589393009575365408154993059999905617830077593276103190363728194105726643836990844970616075958171789498541123359828534330053070143866045130536263967550421700877863431868305874948386458552651393923203405168937313913036893063988087092201391185846193749814813146430711199413517091186330613802162336158880628304176690834461801889519624191142731610599164190006293162765844908831788799705218458726623541367495939914807023076721403232053891671232187959377628965148724440136831409991320750827029485635472716714725834860711705170091969739159297654817769198395451850118692837427261148391826834894641465252848238961777618086523505778718575280096493868707100320650383409049008935660049957792606395971130573722447353773098673899204408594689927656383862776015401573786469692187686278795143726662770474250633446590262479023193810867856042545830416056436656339247087581843906836047777240305609220086746670331660844560776076409105244941338933890380969191122887851240095095078120003024856715725850123837099842442432709798515604627407817548039269847020292672893089235029463524401351844155434652186398662779617021301055060825248620999834075896052769874686963298640449789456539490366589823500492106882163095538944252106169700085104390906012872655523705083683577092244924640076139697115399303567733898704286970271666794552789584364337554601622187173478489881942362436212755207118584486089998474921771869040031542409730983929388079676429949937966317622857983061110889421099288250631277342966793118780947521555360691289174052084984455246637021642935170979007778289397899802474579525130893683038316713196253523790865270539822731624596241076692678455608934417877889392629415233494060992467050282856307272026560056807811239034683148205045396209663736915268750377899040607196823042064879413607930253125637813964693609694144612247374908386344869146667102458412174925657925785231839112213499575909886842643772030463883265064776070845684903721479127818230696789633746578553773501487949797810375346598305307458314282515186251672366676493535164920256935478922929515815735751853290679598013401052812357592464814802859290256440238405215126519074143021353807575101515907464706685851372448393673491217308476368616276927930482736382082785969944866138111260402020032098207061327095002080448792402668467555550183295222723320284701036793966758664418290612957130667589878863583415713143813102720399671467640626127428640156124003472582394089139861758907205258956541923091229042132892362950954949449177853736395974544317375130041357313414833689069667253103343169522985382977274571752000365087301516781321974241071237962386142997504662930650948267273921856767947060983108191839071112791684583465218948651909288389363778894925030150988533410389698005267456751951862497410010367555450934477220416238074537977417613632734159687393218454346373940046815575066550792162579571795399133055447331867185937290809399272670990709014353921180393319621429044408868754500002145646040292628026022947881509108506800160306873366402777550308520253696945313434077218602830772724956015067932584092712707381748599096576820287297384623822318946414082331937706687259371981824775099270987724366058999053619658592873167297552084862352295907297155963122088917457205961488974210274212218520633098811009947371113096521901532385886707557245699501553571931957327069389973584534817139997275185411935930815105710803906779100750478004621461344744735674949623554019696543560945987537526298386830578660152029022363245326015198635795924853911836117656186725001867180165498331233686393212936086703732219843491334963341327316256021328267073878387493367993819182367758991244240945088048960307782154758258399333083530741615856274469351102338311751110084273336679554228348381536827173362654457485407189226134680093626425672627478428233670211421786936111636767707863632828641820175243827377096713430470396527970407830709593632746902982462669029941509059868739417201769496572964998492712583725936148343641259450071046595185457337280440158669823771532704493835211391310849934658422123440484511301296377469586307835771595630251800529836952505920599789939270336435142903423023033072979566914194979370727577338197218561778434671634377122360728450276560906526157917683406854643609544572122823412335975553111195148335839289105919115886882233007789871569106371498607463479376033512239449336654010003967861627573915954500405187572038958150336299756740938025675115292815385135757443336685807140630088460454043614428784547270721211946589780887428560407337323735236008472357205555471819129503203634822464453543679873105753668138330392527298298688267027898922571621954467649534276871153694998830876953011512458408451977717473565025306611604309128811343317841024706729416521181491753736262243083675612573877222761155285553731984029998925497648502928018827988546839174963131146506239877285241947016494100730484673822809302351542299227149291310266819492693590200533294895773492109766293347876169565975882260165687567015834567078654601518054963966458420212997801419375446081239139402474166795888679997620787215674199037285992839361595163326599633763105388884691527955486687876908686419557906162440106701246734868330317015716513926311063776616352721309562005384848231465076954443764836526575396815415588059423581690946114768365664095600245905637532911964709496075161779645152136993346389163834593862683311799316408781777810672513608675322495377966939819411202942420536301279636921583782284027069867578616837021112121883056646996497955893107218134075895207700748197507383111547974486036601499854452501094626158362545962912555331397254269742395794812646117070523556021606982457040557816924407440298864269073731333766760720438449294498509602906966286420756530475750330269193383689888216482923568672892834738921337260291755517844988433476938611331962825623419395695259644363720553304155585998220181234565463270034031363286082908203034739457371132436007428649743737174631432529233595439829884362542935897654546431782847775567357462066504240003893056937402079336343137171980299119514458324193994225869245213284650222568143967952295415720777588737167753767099821418364366325821132955733475858694888231165436130677142326051063162063637495947710187432863556965023783965334338909842617501639192429023987139805607640553292952503968086199184010557742705277744649362852868755632257825904658844105071280527581983407619362102570682145344592569533951363660870494343883366502670634429757615963076136698702969215718675191048649073273305680802604525248898404439493168775910413142080350965364195583300896037562498530977434691075002293929133594962079802176435283835112578971823683410535003398918132770904565487641511821460330250481332389387282553318221424568839943857275604182813496893219999400594936584471957239614921043689806216403532146284547136147140172936140218820444557865755938555112810558601027916292043293075054320159339370640607598255852813482546737565407332037111589239590553641948575434981507271297610293695847389962318207976307307417037707657894892674341469710599668747873990943429067863942119870878871631925248267377602883382298486588600371746185022323484074304925594066679693434098523271330138424361110735533041385843952129070493010332205246598067002687631946791425090472194472719750851595388567927274904608450609785309568694174310281660528991993599443280577972310082718952484620007027071258283112381702530305578867498543766980923884737120094951022019633705552516810260148805810813377835373989905469562647229849503504653310169354988243125806647221332156987929549183976255587054452927099083568023749664571545527377669498941260108515183904865486804462831198099005787323766592018173023125328411500911785614938616136507955216244380020508083204010198028731557790523893368092151394400989657547733775603529534877351669921326935177356140040943353339936317784069010997049672089500897912512707019274024009773405702336240137449843749104031706888573128334055467207480248482219172027137596543421618594698969699555063688345124175378743565405965362926597174298796010400791358644303130650717253165849954222925373233824651228859897291414783994801655724654079206670396796616614881859919120461733353794757454121331540103770680813158300995505437678396859107186156139362998824378039868966013490326425661453628883799722935736842002650029343677517554141612974302942702819111183029225770276465377106218553833782370004103762619847678285357265980118669633354513802739444071915393334445060878012675644785767851426545635298205239799863949859446545366973352509688871910455724125471337655059349957657232352250027732254858945451366268976118102177554784669853745151247309465394796421797109639054795649137548397879518503130630817674664828413636242703905206012416380626806102847540593615758684087097757541371068719537520335972687342187457394788852786911022726792462658641816071226971526294269330921062097588592127272570968662954406405657385925341213940819066718461737023664182887322897102599106142994780193886733296600356644413975861207160442415090012617850608149722288960250806125126010884382880735509849061179692592827692155253603776423063045071702995799591827032800351873669908757084035341405869479194173309098578042212625425378545879941010861163358201664872879048381432841054489214049892936290398243695246166621009296399211110104585943904485986050552384473941048926465543982311726892378432840444457534490418806683102719911810611431597190265259176281957964426456239285259193531119638909160684766458870735276057897674224374133301227245221120021421009988120733792670246804366482331210144872975668876030658372675119604603212848808723218771237981224417875160199789995360230668696332963174131289145479871897206696787171122461396276989023091815843384785773044660454210155494943753594063340981932095591928542502819552899198996719772640380324141754044306802699519135439741048803179910218185538114974667184309361475716360416986833330970834149585126146923542654255845885999316029235043481481151174842734658390806911929475059009292773032363352779901706913700156445136134025135459289579472256508151221300571888257805609311578136272132191825125798816610483267382097587675553067012185334985250928434610696442351014213879823468710249999721461086669564665778773263351298273194218984536548559609688666471378582011475098183455491288257004415628625683431019148040990863644181189739078482253437037543946432615275060894958594483622035480388945403258689605856596416085967893552770756987427203794701418780026384098837225537148081747367207140355767730663067880958559371201586905390722720932391272957295326816058978092896698339181064499223759077767086999705392620005840091447880451453722390449389625327663878299699343915621914223803910282336840551504048701715273677757369208647503789718438570718876433097614200038341717539673036640703831947017923096515002174900772997992325529583691865146354416809797657281080846056689110963857205240169456574035577123575151865826658218904824123829345555109021547196636837008486061537515870558714406355544835071262691348636334083797627363091849874649704095043999643974602303194714956043821281623883463285844039625174563859788178277041823419804676306407005242084293515802306223594973155448129570313991649755247545358149972736987046062913465934193390491980776321614745503193274961415205213800673670829037433126079984664564371941220812224093697251978090724989812972055084780286084200102572343186798921696030057046955866861035976214894163118280500517850696762212624938873057398103658052506397922326398658629676413386320945848886274049647499956820008067365796838069148617591761780967315794393377501232366557724291420124552936559620677405269667523542158852176159574943152008020421991964408277473114005223914134612589393356355669819158270551149965413205978043999441508548034705660901967600663822323360286925817930020461322043326638143264534821047224857715450381976839050300711754830337303177023559356381029083397169636526592200305359140864486529906252404703622120670425997562266008283354205557770632739489284654582880754842484481075852705372057604280919708434904674185963523112219481851836392775712076814662676727609141397376903955431153139331916386247538473448394231131076211018395679085034556823025237076405251919601182202158945242786128173657550995826255275032023401065106552190578126006483400048606635767948683766114755047761076005779196657546065610785878493830264015536792908921486344928070144042255189846717150001958198816600755998541359805540968571277745653487306357354025699292000454836587902422007359687955467554894108354757574289305249377118919218709739486596755940731705017599422280629895656569286476351838328560002993987203355891164214996297445779009249160754689487662398600096866248977458229810701988486630969297798842233946632409601477522238988182714264606133396781076565042522625542293058954683209113846178929097578216695212359262484933116420688621436866759910489481461513194356422811122974715710418635650640483294375831196200102829127704595754744509988553018564929105305587549628873775922003233387689883998952517991329741348880194701224705372573383830599723540865816709170739783496780198422147584373771908178403578120237347950889696019415418754363606801308490019626524555082231837005168073752407843162433401134379302812963260236356278052545065486249275354996349325142833358444210713123187142467740163770319081357329629561235884679064155722987698161469780696158335251125395994943186130946672444338524169739855361984292142107680737355849035287357319871803631723758416870483909918343603384925282939033489819693522056370649936879975679867030625006931106739688025010442476782880474475931044880691896404640564412937342680438237654857301410502815750929955313478005848161293333139815569849955050261282749877030505251518898828122673658438578029322103487116875935726723205307729202473217325600051814327177467190344441794494647149021441569284998167862024053359963368282611003570831022575445474774877261911381084159372218490174622935317992169129171365853922735780653304174451535243857374589184067975594639786576529213169119817043636412774048453003430540347440926724720189317021969734116491173912044634626958018940517329259907911443650243801433004827125883404645223903938874924267987286717809838228099792145728107764381107954591113968682105126047907398487204947869831218276102249512730900249235080307465732310480016945040767364870373329265933099676667365673641502808921586034498098513538804994705117224166038611974265770012654040705143154558816203940252177892110187300131074722597051760375777340079835455001646505354127988546601028705148707332263341242390171045812032191916063346688360579348901640024171375414200428491146383395709419235919104853963513186101581165771872510224505039414196604603812379908194469502322077871977715110948498645115227072566375016215396228287109412796921753659841948601509695300864190230188545095328718350628869823941051621877590026918747548603868663567016543245818451779805617688099940641979846209322950277435082062184618027532428240400174571617749750475042066514776742019883807239741651464748155268944513136877457707063389554215195278321817102401733755440163496993019158242248496753397356127829280732727042152753570777094486275128612472357073044507491449911647810099711040298898133306268100818014542503845426645878206241976230450140586408114222278414211528885374750731396824812874541345283564759209997743355877857003394335179658116026843753650851299996685728864915786664852215200297870660820001275772145594742902481632371289681200021454189671661070975630907634637586986340129965516109583312076766072194386980615805972327179877743789022370774093665701148970264533090563331225786951989322513473769227299146950473691227132975961692120280591283695206597569119743975545234385507530265500355895408787840610070411492936607152107878842932285599996414621204764467368030683596500583056424974314373969682279350718571939662160221942849637592605812370388457175109853144171128681517874226464228306464489152301871067262048162254492125468371748344020104069037908881746875179307566605919128000716343636093690390839766093044596395854692246963080924389192687285338518446222553094757636156788704366213987628599736859545484470615627234387342260512349474959306007183427361165124602700988921420481951676297072003599760345860556319354029503577468125457239919379334720725524921538910970509112832410543890491292555233772418597452981283473840571058295478916304881432895815908935762899867202467602364508019247259127641026608284722893523960553907373779146798054593410516897433838458058432131563947358125477433530800062690391670951838285131355315984449414029717022952366365884578083713058701668017384524527175097326502569090320318527092381997504431589187956596763046579875519948242978651254971181871090627406906511398690950112319098880490618403678884006353652364603873274980736978478184719557097404027574329824628585070165381986289316596834309705368497546767267515894405520592891678273711255467366193445863144607381113037878745689186144147257185024568138706941696109575261166472563647692423520636558015048130498770108743718445615226174780988802474247610606555278288955061406220661983883893546155051033298280952097712333618715857400055655501667788141357479962352124963499959679750089557588162369316416444857171437345777423487664228099064110561409476204262987569734906801865560203695905855001942862433074305310000836852837263181668991073156970499375780937358391205069140535172983295241858491868429924589023880702891283301131346676227299863946841157711639208658667163105201271378570377401198377450829176720147619921692149733114291686311914104165369496162592585281171816310488927917070541861866236834357099994284618238664701834655482651202099607387860322868996355462860592921808701258093889564553479501075096997763154250312920814814278289875977247463443606443097014260169372281153915793403633168852417138732653653820324075693341664751835969565684489224668142773573261385265563841909197210940711000508328444407754728489549833130609237622573855341737942914119783068233990921594046396045196477928140776434762348000167204268162784164468413921840416187010982487593828522600739576536545974074364747562525584820779987031620674531514357843680927303648077756301731277806997138787606807375093012565692675987499220246566653725043287067598897053936560568858241612323525816763125689942749766687057174583192263090877080380011619657726714710082858195823896959627967823896739202208567700425425713196220835656789576642505217503404044482796882170252533201082801567152081786102958494232987845035821175441756341244105467971248182147128142955138997454833059664685701358367448757833536538421347880763021571125607479968997430066601686487416655185480738146003279983245148375567385366944945353952691912547800959804971826816309715468982266396875287864182645339088670617199812203746216931958123208504661242233016314014307788890286493436544769168100167366896799450194950573219949050702656319772733809251538124036178131442453930093142257629312156933331868033247888143059828487971347550607452682804954540031226439182029622645961360323334469835085330235079479570769187015346115260838483517792897885391889194634832439324285330175811534253093631318042794578008209825213120745106206557505928045727333381181034005840139000096256991226729988264424489942976912520118720747086606196992957299633244920998241165493198341598278782421391499201744029019550275623826881598848274187692564045646861959858971398576375331429704901850460990335821226468558184043771725567655546016469843073783925216312143182461034610805145457790979399232027610561402861553605338697818331956583303825410057648712682120718536335207181013076009584611382601404835955055327767726588917338280071542958791108168349658140476617693965121360224534890833508414701849772620306848336344738052118994401496254623895417425717602777963573599445734168842521099138014031616978884698330345256255588430626728924081986487829576799527067089640989919442757464357278014720152737073736185656690550996011266401133616377324840329155206973438761287528018686740536975469911750903771460279588054585131448860033884223657557534763749031560036405947736796139324958764257676807163453568546606350602554789525465368873068674910451501291933626639192508797504306447215501609533062913502303865628413293310162964298621770250397802791915600312923946428011612353451490229942568466710761233081434900778083639040642890351266225099469297037371037447426977608153510132642424700879956690081206243214692302481758320003223405177965487073374803985966409108513022474770387654408541220324239296663329785281528654295954377828972671717802490006922433541327932949610428582242553247328720271734355920805017578688228969144813065167450886980561527360866820739654063748486070580972951460993641858547291463487575422309262706960995814459998105913994106296001387254840968583680325219557600961268583291079524188422422565557979955559829858958678336319838197150587554296926704953516889121093763394766458253151144965860002591251883599469681505651701827372497901270488309332393601958403143099822939139827094496190438511810919751999904944218308404861822356762554959632619523547980554584372049812772153839648890745922908522299360511013125850955654540275389124722555777827391635620295531278573731533878671989318911215570921766353791409692157692028460805356861384036620716243978855181380684185500873290022420337768326184245252247312631913575150835392005600355741977187548809971335208570300012879612757642868140755297485319810451352354194613503008525850080150876957673320994976414830531949545782387165097034545519772961409191293521729572014853457106911691253130441710727326460168786131190452513172126915833643368656591663919777020533512241131110842258821052311388446980215533760171341874247194208918953591084425478893257636344032240101216411104002612050150325186257728377775005753880352754186821492422867933017243286664714405400148261472939391418927510912331678998500654436570298617590797289971081382582837189167013041782927978698236954653865915517498773497142422464955876714165445990391013522194594829350650345999637921704773317824848023498300335804521969229867130168278264686984515200811803779288018972245459845072566096306275117644229832045316911422725938855883547111437796445708640253531862522677850873484720953386563880562747303591807604420235496044661812055630106911525020912047982311365603846998792340415821419964489553672923778763828484025976083958968313139004467984191321433445488976892363928901722860361245436888353567250818071513939795933607184340695988410354857886443324928488078006506706419910702389656157659804084488691190624865393422921719085986871588517904795595202599320223520300894165561338699631060937905647184319420684635941467411239619778521740467749729058346448168492333480131594399176965418668714725410010346076667857280213447985187074622324728082528955408725824577405470164539091827914078243953983707750859554305062853925003175133874191981839291171774384103132219538055351652428200885063850946873993533028008179405146203009497960360772665087773569114736985975110711905270932856928889658820343255283040583781339354024843865451067241647667798104616133509957128855964330154282001233539159997317612565013977941028201147869113558082101749864522586980950445074376549275326066651704803010949900206673063720518576412800550151391108685741873686136728997330497709739540154831842587176618941407597729824624540463116936387652605687001116449294267010647170469645368740060225360781713467671663511703580647741471815775437664073003825097986512868535318104248957380521466280104593865317795453398995781000033426459840342334008238981375292438949164795197646209155414274048789586774789664232326243797465845616032064628282206122217355242178121016644599404887091713059498996704063325109384635611496325635421625610040425631903890398364501773027940289177673025149749223300528189046214582423235628785827594654072569219159421836739245645641715290245603311428976581940352533978991325404615501948459799904117864378151479619236929187333496674121188272022576730607482583239887240489066973055113788598753659028757555201882373619610448011045533095407406967544081524698749066398819704972012346611989923586252293942837939432163253853252490548891241781299046140436191228961771920386923994571626907876723479466462711392136811233555776892770779408106402250911120442442263220915267663543026149068291538262613025446143022655126549718410314483652852904577564588744431000593574044145116710017187563741205766867061434825592493289423933854674863705042722482902445296378394126757336303922533037195034199576221314116951580441500759307795139976035129867490538357025375821364960927099961035260258114501832062377236552100445933219369411196086084183107625259666348812938342043702810852337832017164687541303453846353195676714443248578296160049083500425765174590235720714786754983122215165022419269591643998057769823801170139982347374051378265476745477978961285762130941333870720995131281340256955451169891563706064709354321347825546413694734722349172145889616669217229229812167797029045428165862513837018453240209614823565139185798082179110557991950867451342502569273045259478636672909466719502821237260705048590582688296035420816403649621713256267865311229840455131874777497476306709720131572285443858269730390318180396879371988025203275155331719389679845466988050909338977161665347968947726509617033284769047160842504552221275498797454339419825079003894973928156921370750175769656762413746654532834848999804693268516178196742606958342164659617238227073092056645654955159511717368150811874868834530946866591134499171732179997512020031314669304869419163716795200227404783962575089135528155606441193159418250536482848695466557623841715575509883230945637795568257461528013443658593865266478968549472373160682198164747263723701318185139616828006169315421797088662865026995876892492377777055310553399036805939643673492079967896955148173604086666346996982223958097310872934761377397584540266959907913196579537319399443092051479703391858930252086053240852622044113041157998947448265806139322111151769888848989199984805719710333457540750317143404449838423110279024521513592154804354368420241950778538656330205755554024272847520096824640780278708233469243403059300276229027095173614803198557364173363442027822134209081904343543049602061317804688578347943241767742269475740800275834363133839582546921816440446640114672696436983233515933921098694003828857352795727679902431593958683835205630413123129547704492799310898630849965209212891490054046865036991583923649027996920148392184999185762548612334887344203017345545899335076338759875001701374309205489038017334572939511888292053876561327937213773699761858196004404789713053148412135030418829149050523374102240961684072164388360048499530217854153022041319070170004752502510609559221536845445571361313860469821786504468966556822038087706084622894242876235309502856848767942499019599824463643925904523795815261989791380411329921144384707586768330910326154062695666808567855075922840818060828832650135026658413163802655593646569639139514063749430007603456466416741890680084348003013165422329822568516357858529143792908450085777689039868741278816577756226800591316814910468568591014746228131140357071701909216236461227962559649651723472623885565671271016823220684202663060390731502057285183483785464510050252090857401595716823521089571667126141218042647293127810279805839183707897605164441035472643319772774402438913054531148893480753279543813396483059223247511519601472789419343800026034731750284336876615254030457350858082019716821718067919689039738721726510692981247885533970782207405284209918257591463505419195278676583405332737296940505676372649384995285614533086179225758091149210866301911578674339066698311350162441486659059108254965094503816053787738663583768798677864855814545521590482973944993703934435745615608125491184607356010180104369490902290216520311877093553954224010506241077604983689182922275113271420200667977573660899583714853675071120273563183434379231905032250957808691677659709649765537945691424222996150865309273718533966292677958165514581041530112015190615936246586684969964402884315894882816881441947879126805984509130031508905779065287854996493369872325788577800460567255374469209636878827669564877278190675491988347080580698671541219078790880955002733990457132719019123156426975131769644541962655878584129177487978924695962336609268223322518604540147173898349293253083928778402229000781723583050465946921718848538092001612349393154695029392089736917618340178266925964418143855613533513058401454325869476116962858523097246482617107391132615742028934695380743193516222122706201788523781900173140693523500360253066510500788323971419719740066286104069343096197196763411156260903137268976967539955210759856925784404587480766073102894424622395762954310086109854501075477107469690761686771641556866303026837002021318728941494152616101984428367430277480367190923523587009657475485480083635387193406183975441190893492148499831061185441427329723720996842957130972894369234296253231261440615558046027706333666529513591144225119970384108199929368642662616798600319595541985696782177042819233367568630323409755261908995596525161312672930193602092965495356811007189952781583709726686623179111677705465533758935552494301039970376936722460340855641239057127257554263341097123342908912993307663554942115526028296253516808853307373488256531645726954716017932019486475123774367935308017693683694840388928018191134974914099691561776197431992638861742642673218725004936864070256944047127999705836442877709888767800252996105843140085526723816269197603710056596811006314555716338330288489128891544049683663260231768713888726266568893486033128691881422748836777174807462434522925623524214930743244102819134376103678292349032130533013763389560199885574904273679279238321015849529523102469921406368921877039256674961831125786609920079302632354950340651271367548158797764162115321876175920384795497364778733682967853719889258407847131559248478658854790244502388195234633510778882934623381974596590808186770672740156555415412826401504896405314520534056698625455419405007376931472949199233538664357124764714332060603866226995580135543901122252629292349312931846607385225909970558157394274584778026386015686509257788585017531197051912905430907168426693411472566015173888192203708071049236238367715968819425853777985168007029938819176067567991846563187229746561369732642352078652637219885455848347659745358558848452524120656651798886299191541008853692330338804360766943818595789342790646005778672380618461379595491112768730924687821769094909779287679078349479051658116407875354461511546810041956930823639420859515292278360051540460169631848440091405910783990771893995578834038009051211152565706360297276739729216470000312569170279830101063202709496004544383937850719748773587040218194676150908077560915425591355270886467802411166031472834306458638512487538903233356026426668550398699716815476252237408637291954445113793883667667200458755768512546807636344651536702069853483962948778801066847189379694693153114995059190861198657575975214543241785032823750118069606893386739647326632712624768744240950913473965981975365125716933783649181654405702327874993792647936995071071899762906373557764656612532396378212359794574674123555697212841487896442051128250249525525537147455014118592541326866946184075453430767728650203436392006610259245720722424488686880593153177626367454149806054082612307399094911452472089647832666539569076497596875027784523254030836156520216920270547967631460192235949892825894388506026111342696036800380667905976544151141555141357496916534188876650579144739451163875685123976034297615396919806727294434411091564081557624570763825454633631147707772790100461337136044524852246695891080802409509495510258584578813546347165727089501552757514212308120347855153861560594006371338926703565752326546359940559908201153852140123092280197992287400004119486176367066576678820547319671635474768193787214391234558131543409982992288178440162055203097647829650422868959050565684785660157218292513056164782369352051943129537019175445833614135653760733674578116069489057760222406367651089517178162650139069232774262875519324934466903281451254807435259017925241173020794637682156724456798656200080008939258443310053838961920031592895792585029567534830633697619657423387503308633683557408357960739164184215875414014250536600853250927915123072087091974651281405372997926286960208882082392523035580480023676480547684470303000365191923847828394016819101754801863334757996534798418309289591716254384002079137284806691403037423410151044024247650223036169592804137422520701080265374103506743434296606518758040493099891717834274907549042744040401367520184503989457537826946379032163324533958625045341328101160217558498764290732569640186651734273151489333345712082330303189363122736821460248151521209265318379554285415168529379791873101441884012631131905457266115049239441065364822719620564865979535217900281243255374634158391481874812408013538963376460628289794739369545502688694274783838355046088228367315461175444480340940861697273700119359409235761102563304207157918336596801449940614227982579609355829651157270198149684936199264788065189365904647816234753244340002443359579067521343408035393454730311678584761657110212253956158569271129734919416204672106279473290705724447814702669437065088088361708854162120639176661373451170837469484025084291799912326021676074723957006462633423114922489459879038418083274676660129526349176166544600160069849623337081969290128015833305807335156771835358802282584035928799178895444134477416617212764504822598226110428104887340521270305855460847400083656705720217356664699241892836881818723290488944171942624242091229977741162662403567900068855263163440854364640816222543483486856601316359646106298151919348367232375285522647552262656579754507942319518770782904310602219382475977368687833260026338633286709833332934217315276794538247806320235004456534237381887536845943253974339214209656799337202581263518151700867133459001375344191301837706164571971978307363974633524762616212158252555235594117621511122053743582565255986000602927353582646801416759596094360942568646199040332335026269432254925483468757121657586964222419755445366403283464233130425195006117246074170184518136300154561287578638256017219451083194891530786041020140250422592262199951666686231162661971269930608556170059801263151846371759642281981329379702223140395542452163356989295063245011110275267993290716057667304428916286580445684957719173974133654465464425861272691333866247124798121673664672650813256301618179839807532118461596411182703570384406036779779752695592316205260796388891556766930923258788308130427205031962203823638849999664248492352267629657537758062991968757261842671832242023228570786736096190982012223441440046487894357478077108074051476569083290378038680981973181316953211611687283784367043067792277139691297327763971061581042558514223640953283303360047190090161164898667375783124698463951526790719191329371938923909039207285206917737246189583736996434763344103566219497444710818169411053482110557484795844730355284323038037132921345849502835507155273848673635204330613052335089278529684174493645492892840990274431799791585949981121894459660643528822812795385475368494411922140420103545891924398074345445235641266007376386740315159309602427333282451419422817401898019816270122653305815879088873180547633435972942873914721856511396332430481068159321344460974992607160175273737011227715117019968629792872915989498798275134763663828001292068301235122682038513624137964677571821439224576235072278010709493761818472412270794692124851568376747272618575875059894373771753352950065807078846374835933480381588576406159400514939831936140550081575010889002964373934685327777989628807881608171019054066491708479954812687250297737146865054302420802119619581036049824065582363894643802024833612307433508664898993432615644659663051067112455885671866622722026507787948776597820434103597319143472802885308353373789802775095509715329492156302159316657083897934843426709093881301183578858175341233326494601438107946361664840915574322844254513070486190844271888033372678961038050719669133024761969282455140054063292643394371139979087664754166936756734947147242704723632917460365086005674925479172950466128730798825295023240200347794106071959683523969741817769232372091156153888647201151107680300193423854543814746478860003979434659741988815031040629464512747414904395298593232642235318201539860778731544172518224430370241836308501301269066639000032202848939630456318169534263270614056995730631291210062933843988155646848288695541527697867665966826152771266564210697155886494344330579083091612373636188470458059292981677142262640549431931883400563393377061339306030224058817955271239239374578123890530506698385026059179184600685015558455700954248342259920028210772216411321128750406144812233834126046085410482841876608031432954583302281859130443423214776163852464934777969661295011148560830876848173904735019228709256921070933225817783738979160590101967927818862038935187099877591008213727953558026502598607989950081856363706683701821805579489550603157341828116322431065224570558546868432357514820594360700832869029128292608961915155920528307825804300819094080802302868362798317457206526249238991635101629561020039715669810132671058794835228692861309349837231323905959714078798859974058444483921377435515944348523869622570057453598410696496522445867956369524748027816399289411950957958735385353708042650316047383226705527761562208234594542324646381328405138501485504374398575003681161276470461215722937566054016452912992920049089472843373817599197375209598792027872819034526905650666488121081127850418683794443226550264702889687356271930186687957849133019492584117071235459507632090751623436662670519695233189321440328760292879568571370893672581613085062784234338025846288241343625371563579580197788887286248925342608273744874190067774766721125189115370794268835208376172397236676200149787357703406543572990011501651828533423989805665622508513369964820534165326704695078695637668804933858531095174186076308166514281103464035786984652976179880547979285830825705696953883546901410650656520095331857589184154649601596436721493842734877088553566124609366704544475659239925948564245906693391036116764112296676453673660036261374332068115598887168264988629222564587307047595641741255868742553002829698523946869500950030836577882694825757299629642278709042788383965797247138422062532108434566297330804814169530008632902226965693132003852179282571951200473941397587944910411711268061282688265629481608391195594714689500211829993753848861887608666444433639362697144820492810502759600241046689450058842425647452762461972238617254177661812908953647271149509942837075492809446349151450915246108549030238765144302918218072519992792497197113268103242333452539494623785421671134109071964047174410572563651499538569913021148922109749167499964158163465238501604889018940923546815641540224005181212779689517579937795144493438111870476617102513016927726270306001664407259352389946456998684270095885275429315059821000121925608294980182002462305262742310679396117484295674306502473862061600522477212126244244588591280275513369398902035318376269802303543461748548556121806077788402665906946032268430433492770545217020612411474695909572209976817883050778556597571041753720633879209221344963933075249373263538286979323926282059587867183174834539713324721949677872335502223816364385974883684063107660372572775690111810747289566505740091321669909472475070276851509686160123069445506183670572293163151288038480093877646234943866069213311919856895663095023266141608355581446821332645679310316403584112545611245344552608437846251308151226708061952379242692310505887747749792978029804290293310386977457399366482313489344435950464261386844478578755106361798459836871841625666030943281653416877242069185951286519761262173320840161380592326899355274840658623431950040919523780839339884569966513752949196271949381719169684752518712379148925211824358979219156670795821122689215005187715629285112522362864879702361942009388068870225115510347738287284570703891458423337975965905107929465018639597303605587507084268133982261893429164971299330403100171355043427065092278985178458473911753528373738259636745239535567430966341990562959278571204565886598867117512286692095786913820916640233892838396628810806459547595906169791837580304498770456315023663190179480698520644359442920252428661354193716601192642503935187845628422987614560341248381082503542013387575408780604512846282577833565137293588637122527575392074246275726474126214753965873113818954028693241184822458913647181219482466358433397949230862293226846107608934260877528194096850949997998985760976076959052239941433594699613498035572855636187082681492506663727681780710577572666913065196311957612559499899220066687323740844186610268593728598463693054355152449042758817583229237634291742574178531826008772159676741976696882925142313080457533000436290729889624172961359171723474969932112901257614455962282411084557085076661103064315484196155566358733872322678644541456301673354660452354259358753111947225240997705236492161600889796756922439925725409457750530796674935779677140748128787400174011505807192369848678727174124148438056003679833056256557940420709621954114072697192370662649746464888425297022992162317657324155339287943510259475822156477560480847587870338182842972181999062841168847385798453428229906090821220193940152343131192475796841880169666754133994836363542739998773317225273994266324403486962586677250549899065819315805595812429305701299878746704670038452199472400831742174440927060660107541944416836464941622717881532410524249064706437878923492707564684472118316735592725873310334024639038774139343754282689825502633042530662415775912326850723335298693841734467741036684216444433918165658412187129209177170426265841822626448446255871827237209718264507467537193792666546768140108807763068511028729651213530739468123266607592256624274038098835399364992574536863050217983258754536481808179507009697037967936426592822140251207487207348327857714386210392999003814831223688265209747451972859780667303853571915710560460811269667542361116951116528581734492543486411020746319226063479083815212839600540066048162695057269871104283604514378809721084212989268635802770891934506665606933984284858553320175639340982479887255972148206185817624515550368430147655288489524913598400752985378050290182282412699249696156998755817691154081834421610549283121936616341502900692196802026474392902792001061716966342049587715064176294429345551550877551695137436358506774474075728732112115458356715033553910725685735292386987347285466628926181878863851141599717480594871586275795767439223012539931048311509813005611996594726211911103763136700941010552416950128757348655839578585106357861774599061404123451566326896052428470313247209175467528685483241879079756691816167505815190567177406052291213866639292932829330202853827441458156321458051917160543390203246455931435705937007637571336398155384837743181229229365758624578391895323614965610771158739332889656721201558322953192341101688558351325353816253141867300547983018953162036428309306987175257219292488581304555702221681947112460593053973286589551433992627006790827987909999277345318738075000785803723707856939777186666475232520542338718402195436094741041023150984444461964867732946877645938989376074517844515075343753164302974070297642571029894824490250772151917025792635113670233655051427097000736022431031398947795958454973776359687789852833951620431691874594888042096057852625416700024999713128779419722748021583593135777631952709163150473079357093376526122533525248101907322800426224670434534460039189204045991203415502964992996434374963134129431670635031593727966713927820024412442890821027815276794173743641085318042813058483658921366513259568826635237934207911371879695214022034680406000667717041833650201616284815638819595915439798867974684130463107999534763515192471376564420519662459475490356967976269971998519217055165873874551067467721551543630138910331608554676706404096097480543108294791102706717569752869115639280282046350974281333184125425521210844818402191034368373684281315111520174208156736250704923131790883031774691633984899672787947159389524415970177372045523035318334468918596470695296049449819477272091931076187652673163027383619043192715141577696239487959357386238725235518616783386299189059809183745752830721911616045909925792176031947029686025713967976710836149739545675079107931808139453599397312093217958724748641033072130768104379632549498424334824005858007168887830579271398145719671986599296095122615352784275178718210747753244616910541132826398693736392531996542301483209596704914121142711789395203534581484949813706213530114336705652765143129043456790795262073321340428435418080981776343206997507930884839459849392952582711863228836095505351257720833612805034428456929648430692291724484555921237608665723567026952314529322012231161518928241017996976522710190816521987325540182061581293204405546655825950334501287906711331261661834455031822801520742263270582955475934930672033319417682660657545197897590676048807236459242895976178419987106681907749313244322728890133520709857012621301513979787983083698557373631516681088771407200951077285473686209741489810903539455636819364460997836508237207443107399154099091678413783411845076528762186594965674212674875692586359523359961139920585882327150592261842218322751807433226756217700962742966629714863085572321495224861793240313859066004569925440516200701374002401496888413015787761013759616721409290048134769064827733492777923758044761087506686001052407178157681029981758032789946809419146514013374946551604552770309923083640980403425080924063206950634343140038359299129698539260139212881331318705162825986739129823626057511654919009220910414000486670500972818925077345444456436947019400481821780999794527267879980357114236748464877405934666351527888870713484047566378177514750086123109967237285846451933114178353242920850243015757143186802809991241244151932912855298324776180383057840628014582082241350078277861316717913454481602043635191324602541888109475585672583506801612668659319784646078559268289846427654271076186475996080746663667517711133205676133962913717577843944579291115165468321815664482849808899594897944326194212567373269125562696198964063127500294317968621240335319556804486889045735459700686543281387404748028431336729902151920829140190973335442612206939010341467868198581319929358156244299029697154821282108590467142378993598268348986573704619506028708042615504119413677200852217982919990222266187496876856640437722762785599061089206317636271660775884303569038529877663365858505769845621964832100464796552145853264942708042307884468196330285883186566331673555803029337794694624151933344993240886507326121889244886824678140833857680418599032010798594257087762432319460650949090116060479561808190169724634980105107764968740075174186075721657893015660950156444362276748513959621445922289025377264775125409004428721422642898178990167886739552805975675164741739741926624370006156859232698898864862964612707400927068943443672152515975320570671520996525526650489340499723129743227887098056539648492606622744058957801553945668232996214171071812888241364361184610834776729162130811944878751754846302924363242432496826762966998589606597383207631729377426401116879759181965793164720908127279098190990366564332028746451387322603488811865363221266940072879763415246645518249360065088568232940163988914420536764963547147011860446609764145564780223153294662512549791170970410396039722573334702577281599951379465274026996747623105663374620693369492873777157768971171360710415150536990070357589911796608771176911388749825171876643895206883492241061288113870971195067854828424874617735704884033046540157935808046920502331604568388087820221649800501701776072588254984054319429675201449924083864326162527656878233999260406371824576385834779347857167782598099926595584225058304319373152055519758039262166405630202142619982371059186427919931205392295036631231055662247935957868289337106589366979330536763325774816610556174862038457855341305957279920353516644899369417916446162029153135425123333272030342244436394874181522443188016584511426910368893437284134017616130253547495311604543032582030572822907915268412747736982984069028503819901606833892838461713333939632139330906426817951518484909215757101165411253305165923774697221558728081095540960527361199251544750714053560262969263380118221006186132113129960521763025841224934122348248617662263457611748189299866650289917337023684893563563129895170247600635422884296763787778256658724201469330110776686863336531722203447760745531484414579971075451908530788612628659884823191312602131690176045859011323892635743313349190127151972755314505656375107100437435833177927645957839637578911538715969086586050858873350551414924079700242459642270949790151950044946752980574298053313171560225679965305590587354903439890177254792283874613398742649611881878293357161945598353252252369053373282751002431440801445401969878859910508070785563746661663716509694645151843600479014230279914746143093284171228412638426875759836837252981525832828448677925072062568407419623825895699325934928193104151650381819293233313833439264495419864443976160035162248404250482130197354451373240136854902764230169410488903268783401614849714527208256893251948065042787065964157891716169394461015491902996750907924194647252791810412911097348118005878357835538934893436684269579189521203746378588722704230041576146192800311348598718938705497361872585481331161362124443762700394571347025112551739323692196835949571025681490924984797212262964879766071115577501131065046116891306611777130647766252129301174501696701216620538310197183762838123645321529304918967976596253986984383686969545858000106737242907204891005984060817988483101332868218358369978010587836020701393208838025314817347129371434246770739499233920849045654481603809833079643078621703431027564262574788253307937707482668956380164553943691869607956281959132274713469402596008547226388541862566933483066527856257679468367959891071668501023821266470315468977051146024352834288669231229718677092927021790370289285201820910054438510702113564888381626203358263625061163916851872825029439704206888032496320343190001514795789058005698202377926251594232427186199432141785327676272784839201966391484392953938988264675072304237641963549030365397115908242384321501679674924654397504649481334877602119068240073905444817505442903631796866842302983497532043028797751830241083078583910836187193650106688013842989700712040486391147462114184877374313162719754551939128101803238373604570147198381754255301511537650469331177776407604147453820508698372236459347367559929774602914197550698177276087628352015505018128772025979784018956775847493704178027467979920672600934113431276063759744372542703438180427696935602458315875213808963582402960707027686374766410434144458918205116546710505317838840746630647835584327553435190579506112511902422113888739729217530760060167894063510677798999921586185430551407652590495541575292264228494844980912002776645364493155784962087893793989365635242752850253586328598194498243733427107510973746573559021042355520387156365460024352960017588966240354038863173680491312449681828712950274056043589524896686848878106293279220937205390723656610306407461180648538778234310611139337969173668508406789812311568774235920375014173739685911855503434624855478415395788593145359426145683165809215118549374661976334641856798179965273570732627103100228780639578829639753569136777113990034744016472824120282829962808586753603615088739232071093596658937165213516878514595653765574230200474017673446451947531440653542366285285114276452924867132022800842528547611716803556523387392206588387985813281964433524958292486329890715639051954678544432997105222038458255337579551042640838042555655758427676813599650081375007965488828247414553881555658764395228003561169983639733918205292117916848714419257491659312956938641165981998295764902903382650816178223931658633441120484815769830357449630836130364821311892027088720833678456037123273747270523828472495749389941459624745822011230184874150559317867592124847185150965262284189987958030224462794109305056778553063856784348091694666956712458546618546158278872872211934850567943232641342709914866861032976546535398209666568192256217461878418561719423021561121604061110774993875186424924294801243032214800855896512697956624051406702527924009427648215304504416236520656565361796954084467965912290265798331635351341651648893822467257425967845179981721332262309606865133332124358029665141689144017978943351819558462690628160651920561207621173354264238258607279007413835473013263855869676414339823104690938301793343198045075042372231658968306310494227681753630229662932421532594533869830333294410393690055932548069282224098163082508063680200785898375548100620756263487325073360986123766810532298587913200661886341987848873159988364767477644146515733292379368461902133347516749949720797527137949420300397050639194160932489607709689015139683238182850334638873832610876251331559773577586311820041909507276070964149718231074735432676908248401218485669218071434955876025899261397756893386784345619649232578507315929773625756094413459722308679423832832022425652226429236787461614265566632511104573225475718969239378297069635663122857592164909770083891413885932801697109084921548504956431533086441672681621456220005719391745381028018742636210214118026315332839413160591571339584697972286105433879837929853980452072878494992645568162329983624697677429970415454073366168080755915514630530615125421769818889114674598338246160820686977953917252493481101729167724408803648453574661286342765987609028369573821498034192929372775327628787795899716046797321895521172982676528628163627957152420390823996764097236821359332715344545244817689836352752762392637645844040755139365509002198116097291584971204265527605949424936146467796532051487976156106125477490582352309196707837426604144634664842785501586727118459967722847462973080204369881903391675467648928755758789259015181361704789344444438280802181822812127336388415287074148171298853957427909553481855716118796357070227413690233689578315510548334584631247214253642214552819467016520958042655163049291325275114472240598316234715885282469665147148074440267993635960647582161322086249707381219194924822545151493914206630946971866083579245656978012683555749089077676777047379049289584649930768447455830727039005753416171954185933066810728749997168161122633539508167363758280486323992365561966149652179652079244959689925631109591838570555086609256916879473270104792328639744077854392645962278753716289524469315611682088117593658603639319722049596161646234094964263985469370039490464920261278649070457252064064793595658410567576872030763150966184447467408004786142695659306752806061604233669286991424839552754037787325820883914906893331723615095896514554925286525189771558873588248371059920504993630947087195927959456578144087717656222884883246006465134327462628763461365826098888607646178102146097346799126112631237134007251185190158132517045056739875153857876930047321506834375641193905126328560049780543108531877559016509170917757504729203581735299269441795080294952966140358294774273294827338841655298104298863455539292979846571004287284034486990594424605574908626688976250025716237227499729853059927946797679483325953328195627375118259964394409085243035499244292969003501543914360063812872450722217832020204765830482695388090099649860941052443138316855931589973060822327270334615735654852261083243018362961178627213226044744124355114478262642053638538093596460279682357474836687194541156618136950231980913044403949698257374531349350204065157425430909509125945195984506479450936848736145257460750525820383157118677304179392715248361259966295523995816472338425695080390751686145947769091655261233165628198825217063578137086703125385952137443598551697031052163236781796315033749742244070212342330479217719667074906881432323477440220764753869854016159404596991327728615274725475723316232124598331915213807101205167253074850578527599583454093466294482049894858359662805795398680950749760698597192272225999220821979762791311286861972371101087186210451968570797198400775859968527106066325754483510084925485597439376340655917437658027680015793202180883646961762888488907668011189306583080975016459617196784671162333728832179050832903745707519795938504014426471034232654498980357946766952674001929216074032603569306471795766885898261686679988442021949390536341022040277605760535830307652829920791256724370152787910126178452205028663221405745356443041580381931127738299642955756311007233894562308388907002879757445145113273019264873937978874541336360249930922843839319330949196071623342660891561669154268400105305907611876455032569044527249671054685188796617629526539976145063221915720308882584812336503136606681360571262117238766008463168935950192762674597365462534046922011400374670898240945334209076573381810960408113009288306200818162715801890466129542975070601717632332962116121177521354777052441942154630714563915409858661225851095332409000381085491784743105099188889049896521368012623971162701639003982509703581507985444729273915955620715457472784299423655553742053721731952010637538825948642675304997972322745940620684802444616828529358929196004138682759809533427948692745775753031504246399761781028286870694643927581022649267439272404468504688933186504259513053825266556886027057350383071807256438943891736901487558183234912940600229393984311691094737220130898637441068222846104904689082230854531091254618592291716207042714259901250100259548457723697766358450116840199410112128393705626623939280522261562813541555535791219473177496367038493945004827203835191387387246543785722535940316349506129874284656462830618339684299780626374247618874594074091115202523568286465194909992688955582899011982394390614209761858208233751847954862191867833403224808916010962835826811854448739643736535005256529231708080625318120768879967886220787840706893544391826950011787492625968365223474236724406503117930389710439946380238004553479039961146907924302375630386179430789885451101863369613826214322370214537057279283794228998106946435340209591470778589543060515351385264690096184285325017643406414555253426515100796037216995339129175537045373927018628811802919577512899472906474412932713578887060805094901020954240593469387539162461371229465162587574144471952716429132813179467740606482221616648078496492124118260983957901201583700170634058523516355519871735275048021229598692052460723506699331511452585714165729432599111339259381186270794580031400538253883960947449612163117430125010666951448171884494723110564456463386193503134087648652735838885164858250248134504869371113187563949662908934105488296839183136809036849377880286785576525651776823415521761152873693566097007865056644717449725907787883764813121737938881232501756363592619394526446494317499386312470682983454157925965084340917536019391013569969756998399945337056303323874349167660249230185080013176037388967618698119882916075538677270637725125412391578087044661707078064730798703532518720230048590814284646983808878234573317272300375757234467008625624810754071681597197895893770517757738092176191344439100821109146534183972560944657450962579664576111936301194907566448588461766539182797160093821992306279367809352305550370566961332413203878127809972446288046635322819792744168786659866986518172412415223450398177367721578210158883866978240512058935360194409263283780749779010859257545613138791914497670051571230258053519471761110009642264634043099824763374862618027464807230651837825769476486118143602197804914513681152399608315823528460406018491625631476210367116230712377664882924598348526928429467937763492312201399663160497953292729726481404411083231348866312450938776362440073896248694187420502641281298898882811792544736616651824201705992203865588353986281409359372032577443109334141801372196124483243974970155151713745351432965064665739332942442324831955261906472996730033569557595811241255945422044927723631538608953701731051046301598920093384626924515088210382694166727333432736124211047577119521314782522338213352250615782624646587901189509198104003605830743219368262497513586469260777903780623414360045114196974944886794265708827721604865709467569039651643510694672460312575053945080946114238808081437386915604330351567761134479148879320666537070399948367251738043105157927238166124016986777028437339181505425817845659197958505412462438861156198742908274986198359703381139578033027190067842305379996101109053240141801432269014216922667272534634805976105434902825123054071912240819932695764192040207144267401052692395918615219866782060270319114208552570649801635534232941141850603883011138459712581049761548280968505113529219964912174476961448489896554014501674166480777551121778509878728580160794796119321009127735038370656050903602293348557874966608725429785223463680955790937820909708463827176324444967514348282141750451066881586751485182345801997162986626074137587261228197516440703111156591693480361452996796561259699478300436000981775606206367055058531274332155300684129347362296257157537266991697621907964589155499060697656978278085807000266864545943767803985137305425660926195667027227819717101167701530308218234717529660913885109427627799748637934679131172898953501393919286631650016084327902977744263582371225305634237758462360319213318085000340620723264490226971918695950654333258333133122031142158107312057754758835223623411244341178427594398727165280338010918576919856188037771908009012977848082790231992592938504549432627399770062047503713112229302397691312527792427076532617792012644588500280884327478742421029478100744140771737904964028155593195062161409422858136405466021946611643911351052972814415820878569626320921277431718124856338836278160562635423873089767697970368133664753371946298453380821565819213526110274005451287772682867393269587259537120595597216308046601039683708295190732931020895835419283248775973756218751621924498559406912295295322559094752679892999335487297113894494565820755944876334553402672590683015827669235946640873225054951754405487501547712452653384977706679407916771879295650076560953710787137177604999457412067419994818475121883477302096827495319251600269315039896722804890011809399593754292198785529293658653970579494845706583600930741572117930813247560737054178939920603646047009654684695093922638601488586950758250572712659819683719551369602537209914412584110371432502542353741760544421234161463958244430564586079984268916491838211002310582178565867421068637183358256901155934808460958765050299156976031263714926749657575605157343033426156971223401997734029807896334138280095482465116283067450612847833177674797672208529476706531985265910056685018057176513811758593849223821614807110788132413085989203600900530540543142205882485340342291729376149649988584979486268575573306125841830874700167632974496368160949925198309255734602453904607370742424606205585099894427473498885917453287088024665484383636437896400642767273865715485368407950206659426945434766995399766718266617613580478433589435019445718306976847957661562395069138576265859417961848347741505744583826148901607508619022109324538488047546962241152893996399831536172793871753409570024986875242113066007868654866713560074203627895108576836508466686253662870091634545352606070845952131559082298284535842649978357851380618942378652822459055821544174131424932868175399006595328471630096060972094347123637253258989912345796106593952112339052534751986350507605396795106674668756422887410467081558199405879800461821608261527034508768440501084098129980691603999430700788757027244352966689573291808344505246831393280559229144999237103821887315273812638850319641575554223337585105232435760719141161058642439838081692106321319994852249564359659947827744803161802140484844027422680362937752018460154355447856629341597671503368595048953804628748074369060748044863849563321274063771616927826112863846606079802896672279029930591097612013706841280332466590818602986006528720137772478391341100949847372831562394779710589155056702200305089877165829704569236049783059249621234019554390600810331574613705873283523631175307361410454370243061640190373667900142533452619644708884171724576482740383746339928444309209861528103577988662883083339317156151301433577287903244993213482673844436592617248864170153392586734006992092618834776297271576571445957493344529805019762686590034588935415843184982033176530854570788915659586671613025361610383573451784871562045111148197062006503016870870690155979305905143111543574056989645903666189141160591901133093405198607674517443972593909427528513595811529481628653393786124629118961010011573121056278422437425990213342477645505137201724807379505297671639722397313888426749077858134843951025344365656454749240051487982120191722827664638441035526975174525930027225179476168234156047302829806649490380310839993486375361736513212906867389797404908598548557200597728418130338798636630097727837262237316593265452030992644848622966200713732425157711005291673975156504310199301543450831834945584815945932485440610362478617294869115959378485992111060555870863050468383870896337610726073990851157155825562687065959461501261922035550972738260806842801935344533996043912364339206087858729679217159275804358034833970882483967769010170446523487221575370805016940048776261612535799900644928651607397066148634627127177180647272136100354445919557289065101105672822965390065916922595978262588824581660727716318369210276198990146029471241487837185062383463124606096316669484558360276098742680266037821685591501825183251739197543315807005921938859895857113560541400738226469122614768754181766896263768724400401800296375458564505057002502758863302335255923181757414611693284770173961718292865586468123116577596603375008475634854423948982794001118883374889677917554651339820897216864905357028840361904601719998737930962669639079322387198640197556327125696240038757723660813299082274844211535616040743336024868912745877433216922785585938030455568687860859796957082614581013301731682143793155147569315367692994803663407108758071848185700859666744224892655425046424092573681413930975452644272658572802048146996394524495717236799353910231611113630537051899544940437331600003367474926544018989763858345227664228674667469227141616770559665811626862236770300495200097044916725750608947318722741623385473401182981627310909281385158006392615738249977051259110113170084119687557201505393696739942653715169051180903953842914801416790502208818956447378546078385929267904704088439191866376186365045652310896500813159546563821310600282949207796984983998224065243601181978970459772036072172457789280332588545720574301575321577204764577075569320445633856137208817302883603965851974034351795825403068818828862612530729639430894273771519159634350225979219818116373566863732922943683667949574607791393104542871511390351211288043906161409867343803703314087943169006411978684783588764437093031930738085252416815353220346506085146828692931095193025026599830971996369963020976908624952931804734612698858053013462001723565623924259162095374134008066858007069158524090817247578835305014219368006904591849904728541069275159030571994633936874565103476276561173281891500054959447403616160608330217822288218942561648973988200778299441637009008335429684080215067633016767290119509007399007353640353572909860830092244722371978560799498759421484311573177871798199552777579053058497539119266916441183084826549601005807588974528166580999675452585899694231405611099820339825427581160893259876686498539807261729449498946107246056685489570362276304641098603576184398019833904335220037790114120175036365392835181291346626595562125984912642663702212407852323474511798008642719346618034903083212914361158856234807223710549279869211595107418945131370623724594892160540838975586668605892229726517795143142600289270041725735496614599922547920761151906607884882086530525889973246511797083275464392247840280012657681916421772875702899175939834443719326280187960294799253887108384464069517689072447220304192202623320846590824690604240350227346314895258518326648555305840806007760465289597605000119131689801663910354642136722195649103401041944671374485927948435148524305844861919985329135319278635574222870810315605377359312463158456804692198722390289677711982650085582969310945557038423738672006169810397077460819890444958286892204836932416257380961074589434133135951827398019580855269607569593504274204222730301958750635399791075058768500013950487840596796077711198139927675794728974209547492922859823581373257480854391354346025861674859976367604844406241310683525421900270587591301194896539130774726931612196511154970456157983784780027980379263969962078119255981434315485826421014392729039355826990930077514910446456267604504923266420978189035087117496154747826383805163461998179700776825779129648332119724357498324730801596238000714833615468677031548209432792944917159295936096441492994119757423012755363596125343134074754858507557505341173272590285216083867494087669930491436938745827150859813422789094548217598572924158514977689151629993457593978331412265360138251929682791894943536339303523740195940519600651461580722194384432048788120520126021319302354180958201395592193684509039735088442916284828242629582366604457154241566252483110854510453377530242245914357020272090443506950990836945865509554480623935466952238241199004658723733583997065149943100452710419142142468794275303502101835928619085997957217049697634908743577042226409450485752505813703272655461241002774691870972684230622308764931269819394779455752156608984883713947828400483733192272790410033437975125445802796588482706963705553190413879832495779092459937569419655073238219117831031662768985777520420790902183275652252315679901760273234777224562126830574610249058794619223313649317764361096793753502279996812793279948078409253624187632736610487497341405769270079127632302238266688512037850285116239579614040240080441575440509286478979904881316068326757653458899418405065433453552507600529175934669692101189832634057424216534439660217470857751633165688480738324982471004273330545756406527959509042886874769507580347306860997178276652638607125378600207416851253987054234491081932852512038132650567712685207963492985431632712178389144978986303209513700557769062970699649960915150543074523073129701891231223068961571402736889327131104698931700629130589031590708559508283973307338139985281554163655293646183342180406712045500248920090255051965782130246318427593745242616955894436884367195520353160755477684979825080677642324786315687556366878160824857613503446770952712502567068194127665604433287159093806362341602423672739316321098706938052227435498633060498016472186031605532085139160806515033328643375368684944034574905977347225502815113548754863725364006546409836773727678282382569609221662284312382850636077549619961423694469940819640201260131370218760265507208061116697586413377873606924927130987622064396857807230027125277591802980218864590200477332382143396290695109270137993064951017476539787313549147977283784210486690905508667425023626133148717184344296776845968405029866964566883247917335337672231134496673437145870691213112076811365796540730784217448572875479993125007590422589893357776741946322682621731993716813452686663782563865697304891569263134672719896589092181799228427693518259635460638283505456181173320448550012549168891325674257641000912638183537481721920658809998256816805432689331128488409403716000758282706658967616408568438371887475168490204265734138498774023876953611953953424676715647781886405505517683090567686817644861386954147289039988736189146632639140562226529280895877999032478988414160255372179346482669946976310130516686700328185824237176748943885058363526386016629739928344560585005796880543258623913909579053450437921384434627851347476430659514164401584914998890508699005490554551203325896805743020710290550907156617128136961107694636224080957247096142515116629186553276754690372055699622443139597925592037611657496849813908900837256779117478256096528899347939004501885257540480228844298682546686608080429953935461418258727990911658094937126612497278335154569373401374441763579658093188959117484772876267963499662905416001443799934382186936405551810139075810155575450892135549761001494832110453803917980911855845919418387358836388707189082546618597998275796714833214038693505903519661952278673487499422558663763381573225374332078646787900772073556941913221313678887435914851669515863912215551770784631826625195646732727072475499932487445402153424679742403064100194130767934426902637406456043036983111728739994148992043126632778102502219773753854768070961668596551782407632955415006061848334139831453861921669635081053616088718242612082075551748279336635325433057501832647083954884334235453367054377887816621287859802329453718458120996615826670193190995791427092303731594651166691884350993624921315627286004248359132975824989393157125225655028578353926702914584120101697385272143354043107826858884153426339293555428252579103656510786953656603121095397181701560122893732114832523877490465550383977173893102905532620351442930834859650819973117572289445290534922156198065958020081301474395015812451931730463591807228320147603093228643697803038423603564423319720046259466834756487375856354910705687170156273984836474790743615352218237101658573407606654959570441828260644397906857915096156166359949670822814476167993829322381417889777993615104130961795286732354977409318648959573623777213499618540498649170403792026560512172239646529233906379917194159717195621860184326389770351261175329316380628348089154514374811886369573811926137205145756715053414792480618796232252973597241017723015581529031947371930187638372321550329259977596428398561481899826447095202686893980071839405886647209851354256708302533504665861930033508990668580511663100723415804571200467795962379582927267443313954205244304157504488296803701068511267833568678487675511234519993365794547249516565663255327895615008107771354323324320750599501386902844649443537087827789977405630710332051276148873507031455594614151961750114211125704144194570075692926483851023655530333869482314233391112620111184670232851896077378187123488128941325083500538236139016248080812302244114349085529365648436158806609939321291823078575103236438305262090023553009424105776994514509542552598489330850806768342575222940450739335297074282211604099590973244217917688591283110348283670477657217892608221380552015705228556679786732007457605252551414331792936724053483371874580778514308708172041461361813802156390980834979771527177065259185704616942024415624028629545543685637949857426643150173578702115626307909235719654384487154695172174521990379301553082808963817040454054579053164889459922128446780046438705514672551065071331839695673210743022636909278933939334896959406375392077658879683351418593188525862212670162537764612408212147183298770327144794791648270447896132450901743185728582439069475790031359217667380634631022950327911399196977011761830853833985074042534860407349199799179657316413798580345819667831192875108685196510674118192959333045249219247784169348734446130470735526810587005358555150942172877598079987189848669782155653323403708442748331933546154858964143577729719730469422189237639874809069040607509359620411131439847543551204220644120936755552542386142060726364668510641549228608760703053046140881882589839976568311696629840777833317393024745020579789741059249854205514241475466262256325143225495422105123719673414872322880919054244346646118410165214428001203256124731601040463177533808323320811967563482642609627154632113932794037628773032751544914989184256975057727449549495630174982972852290167136591778699402426306757395772663960962124597779745499784235066092824078455484203977107511230216662729009404766494687665992520060363088412037525885900759294470756916997874759481842459332312486736048348143174435847991863393628027852020767647036126945941544844787727217307394988883036969015140102152937700535575029856535123261561642850156255096885879354996798364493970981149268508895655202735003081878387889516213968238095348966929696178661261174506102211011469023753854258498485653193136927638288220114096445129564318944916266100614905426837975030909801032274828536603299163075780011177851734415256787649965558704386525850937070117838406945003635671273260354085638331314754985831834872619014254163335194842664838018270582503234014123856685166389822150383329518176795769513937943094955685227263794716915685594793171593003549340593270144789562865967950691961297426901649935123432164289898209186998510269008328959548093702088043234344020933134274004158983876051498721314897942001604022270081549507207907472670884797583480377025843033105598424961597666389859966168392847771021123134294754696094460276670105553273488029697345530129950367051637067673304299040781325025883164453956926121547404841371833117607602995139645279266161352870767561924075743456917928333816573738980407450622393953901035196867604165252778565817898727278000565845175702715114207613473545705703960926607843592780788054221624930206392379017975341303645678341126635901316972259112222451222469768140227302263141944996228469081230787625493933060675794543581452218813689702364708913361397397839268047912409152995954962592987691311994443496680387696043553436395240670845934302881478098561653169304880236829861023959759053902969767114123423823978016880960454914599599302670907921500640325928094269934397823947410137260500394594699261862948887367718840685426544426956033754712237486942982408406549172935889406327539019775396741889250918617405435790926505145405023957334018181613906728407250165597102684784510834956954055722686960189631225161179963856854789115794184727868261463615834823317604092197445409515993604389317621465216342117352571309900258935370830775960404217342657364322281091799518766947409095053233520563637325952334999789617472524810372443317525410172720305246633568258148636722301924844443991783053656336911263848419753550987245383031876826275598442738510075480990853811236317971787879895773483328023579518949557267049435419853746579071610415018619012436279234980882504230854256204845351618945702847015682348724321761901618259638523128548362255929796645540024010907660875529475124282907486037327652728291876085273319242899008826642071450689726448422225492328554878237497137812268861345836492120750134746753062406226366191433639237547891622844653927304462403530729812300672408771904223912987437631046795925658994629789435705797033094409879522462410835722892309717008593036186610863824825325535526534460565992147610981586049777745125414722573989966593467517279752825966616174149203404436709281631271511892962847739103643733866624507959308718838873201935763075193606861461496368949222658446410239898741047630157941978418307253301180752123690779296053981089015261158979927997742548306456392516561826575294701293591058990646463713442903199646161260626741653481547110774918201183698817544468659382264260025466763382444462216339009202275705954466860391459642874474825807486604581567829047820711427726290179768092668973979317880185663716045451960137323830357663655789020870376009238526134865917383313716355085485953968134731468836683996507432510598393855191926828308275072509285532126643581633863768340435817911721612206802723670859873427847415105805903195131243156780535013138623239061567945728721260240931294200744517373825709922659728366446295564738828479553215477235660666870255849998341939293072568431013251487526343365081452829520563155970297864977811320516246776006178996307112924132524770056085570633196934910154708013526699895913353409985825886713114098655303008790313608729270002336786163419992033306208640700968841423478223913915096082424717643094464148387431002189267673105070554366542026243105723471967945444366755300327934939303460554419924634063603694528473010280467402522625002092712565846728693920948431425843871948831756509570126755545296360286101298908976851724287555929884362461636680370032495811026216345443473243099153246135224808593146061343049581048760060227940859852001824645217757105349699947080924185831189118346971486629826098755475937344895506306253892418860592182273277699780963588291744596433516055701667261441852657807742140016030919430085876776645339861372080394209706719856490988066738189835125617605568209851603200502516292289278285612861016178730199345837078678124358932377659605989248624523562222057237254374949778373774146912489786022467261257729899372918515077340413640169860529705343073821713898335916821960398444538597758482109784279905973339164798145916225348586817406716210157555725839135780897490661168987226113572100387992404711333906211419880198079386082498254782213816089321166628453040458286144082539304181034817067177421259850088249250796140487323305128492895603027173597495785998980436093781203411328685741447319789888559102776384345378381351749206199376463185775588881545340999257175768096768899385343800640106397741134435596092500151151610127989171747183304406555852806433847004139451108108417459657754058144010597511682279198000820647516360526493635522920098704345321533633312837603898392014862148724953784715696242074507386935299223250685672861337390675020915972450080605379579110158747243140522497014327870425134205416832456797717729007763594424173688603458703180136911792071748798702824307341389094175211960980709790798359826983192586361513732764461195942719668034331087186475900008845630382788413216332125059861662392050354220670110812507032266500014612590559319985650749629069616497819790580257845570636332097004626774091282639025988958471917793987275589730363157106499927588831020059261667383136074976169647001523293478619599356714467354821479985900709455788169234768406659884240732993288173526115561285589619547304273919974474953394083876700376442839133315534489069141282828232726510444359692910947398062908165930397277309278830093364977726385586721229522623691584702276466963212922681231984839947341585970787417384289942550935594501880930027811406310430868144939818474083853637713144185881534555064125390476297385156615997868978452449960794374296610809504774635972368030408519102130948956303320656506676869717745207053065367520811837637985404803263806378910638744900584660868338986054647630177370100649488852131034684806217725336574594607710080264970479581001656035106075066799665664317234672412259491719044669900490011337421687380611382676050139088914867548537319770866535445584882367530037696096652613805409777094314826792426978607091574688624799797925641995121550081894480551571562388816889136916294086408891133858809645567532907472775456089296808287134447880828098622962644977807687660185862704308505264448142169208331272031980220382154564790155288960877366119698200097723451763016219390437211933966004469191328283195095556091148186954947150002109222108956381635780703517211884778826072725687813210851727194648944717292947994732117974137465463712473556357537952177650281408743043991072305634935902443120433631791417422221654860807142273605468415968349736590960639351333233310480676514245976560616997693540806464339017704107293608921682561169897640627810964726203756597920349382100181311669956599992685696858707969671646456863238005495859994001263996303036576656345027673148759779221027918927181506748312073193480645727353904211545199877118718938657920612719285430359802759320049663659980265567559207407020368344210910207346855294480386287439326033081697142921097889973417756928030733510214970438673498348514409549902262512615871183203037258765185003338565223305953853724450849137657440398904412547481734196474921042897166370058206452403733412993622597024900733682060589346148913766940633381406142088938019348677125752901704125210657676058028919737080856750325726659944370924076326827719849167324887535782174062484863336383995319890784150989875970070329934592516934588251608800349083070306601485711284416265430360101759559078720294825719370124297375296111530179795646483855840715379642577235386329776202405960699845112380679383567259142944372276798071235385485346401260465611642290108540257229147315679225695434203842594370080740975526587497457348103081861248524204456501806656575799109384222838565892913454748389279292973308152854833409494840862095095478801937662767805639919919378298265658668764332158740847736475160310003632523964791820027501781320039222517340713408955126516550142754484442221853650904927702891539783452168840926825788828682740371360296356919071662540905428037645984720009134860022608331793309119328947794489078044807399664945031887987100029416314246111756692343611135416698277300926790850380487170660321024466703145217960182954629193037612585949314493198862541801108633570446512589991601930265708903235664879549452543019391868084665003108807963617760564673785640109429683197694813492578778334245285434657069382199407983059456601829268839614748063427988781833611749787567272926852534091547038101941825242175602755360348339437702200409594513637411435748567464168132792261446890449926878917037541534768969789999230056408112094509513901153933958409112247487004200394893436306808616144498889032608141807445708829055733268618524663968324251950817123459363817435264197473520971936088215432889473805253988059295772621230114692041339761128868205342174331194708435711570697158251219078052662081018206754307735795581377918126190943469727045190676973333589367286144945578900808349835469305377881377132923681071236133636108102487211182600844064553041428599975715405173458098582540136489233595101850741406432261528121535838125245188624651022642130278098976353929414705715968266916521988816913700409987576794913813007558168521898879886849993030482774465114827452425422656035507140553422307360299102256404867471883261093030490780594388800975616858883890941787150582964025125175914077789889213053305224299206050922885446703118750436543769887757191340887421794666686499310753034572105616515437961352309827083202598607433832160013807823207484164932295106421206383119944424415869194113752666520885612708126415363295677735643351091482045135800024398903049671567072039813995800377916125418124449773096077087447464158199895889420818892552050368870613770151980709476702006775211671595561066738719033196286337311498835984382437371964707082661727838320523291979678063331511265023822231139290265206512468047683734510177200909926319210882816071799756472137398346897277025965073782121631156019108217686072051473432787517853228608963522734791650785798646634072567286424696969445996953478401829356847910813766466481693263244918061366422461407531674298859267394347708115208476414027648847494567303168068651943071879519684946041641666761782679680357143776743544756545907259219443097703558081283125398163513363003465117832096303354856388572969058234916233809295698998926170624082305999027507776597199667178078608571328265240288195081402849845766750561873428651173311962557347244223368827941795331799290519649501034085984446355942247259895239107848327702005624648987242620611019952054679121063382359582593280591034851928910678724837448792015363295252267727273758043108046458043472312411921774164635881675984048482911161846433540363414444124919377370463719125100590812101762677164529195274964023673560927309840040121741013153531723586934715174870830715629910207602796041522668104319257848935102833259916168126210400753167091324412956753127812921843795462079185583202467440174993227062705218018294480149744787719981443778412005690929638261271725494515255223218824814459120049237497042428411143534747722405537275416172586688146132618205068328844331426182513022584937996140419528828930702771690216550863648253867697731944152914745156324393988405405800706064939565560101897592209655033369686510556423844637873168712240240039613411748014382012743957381948117450761921241786264454160444733015701601347242451365367761208534745202090194708682195781159944626541545999843075155029140554848681417797145762011578044266165152424341213407608859531469025151582347040401386949221087513173465681312680703445919136554594546133149355077616967486361546246963592585607734095274371058393792428201727213177713096587063128006383725363501830391113008082544931367129962277714431610840803611044665493641953806493694842430991753049409426395898792509584952977439652301791860649981226796365424563962775322469795469032245187016229521672513086974374683784784360856430441472461099507837272081983719903199760550780455871773371097899090148166249267403088960423041755493715322822041700576663715885256528237898166424779853943452728113978853991760576678754086495998256049783601918321956954435289103787125269130195089918500375441396503301157157374599101920739840451312413516990033579452318652987475985442319123705763375474738742520381255749351328228402577307230543442930376613738864641831564113848516706507955119055420942456586421418315896650516765260385063544649005401215264850463034005266919896887115788595680617099183827334075962990682303031390466085345370014140045049803243974356460407296510807232336709219414839494780159709768611736352716211239708839116155299935083248899281526536004674011083221931200376320855812961217196159674895506858957890212794786384505946652823132514682729428394109334393196995790507054637605004479406473081129588137912909343224530312728335202100082525339188911955956308117599909895867045105129678623081214141830464409987589679709654277168766170849835648686002590039169178978605235644546899987758883930293635871971212190588793451414925870866558634521223489223102647718739451542052872541031542337172680798545902011576650587797589392366049935748105308888051584957948075063517858688735565493987887693329893569886079459024603685511789129689830642524715141927849223834466443469862052040253843515313006725168129340321656310306835805997783883505082824356680233809470530632556002141583314992385467029348118724899979390274685037593683705820078941021407408893406849129049686510755231611620679498771406821723245060396931442279789035311313039020545205498701351290665460067431478546321290778265051499769503136000573665138661186188159342372404469000582910626493052628513327868265853149921640118480268928770135293650480739625744152545528802344690576750258065144165665112705733812976491210289676152785887518174735541392410302756772192664744889499089857026840398265930822826360958600461529406743943506034485707128633752946959869052832663190300441379556295649352544716170724002018385417873708423488005329773849631253827776798463372231545530960839203354616145632365793336134160868961948032785955450816231818270821153475898133188146828337131085565005582684779709560700873100195305146021535830918636748498250674847384081618946628179803500151012757699535406049838620435461452298640418131224352460484214922385069776861938228885416728913261128758642384358785707575359602051976517192176398209427832195946200707626435579748499112734806373128478904454369364705617568753665265832287456436394087512907369973002719825178427254029461262819901626352688126100565794557895340235329117778137087994134384191270666498676518857943737719376006279744125723316189479757632170679589014414187734444843707841361610312827412330208736585977554193356602323479847552049385508204335149842175288236283421139453799946660570579026290043383841147666913926891969657410323413668335767758416175924845569924911162394696417505188829876877184579903294868109621052170596923445263432705185596299035301764513780875648502947154545982070367611445336918131203169707805936876766582049922190615105939796134516625840642109036018406593968007466269876274968415548902596518872544214577027295324191194540919134456540064010656319216093742444366963678812658720025094909049023310248283920623898087474606446482763424915836084857617938204679215584047546403383020664675552488119106019465300277010443101593604862662565935046064691375585224941997641766339317898674685761065807826771417917546392288835310193718129364378546138926378930278668536922082867203153322301412596303915563532375334876474474872877662780712449659589851881150475140481521243026642946677658609978772912847344478258749929883063719568736142922285662734709472686222579016577752266961931399698123299500028166093990192482939613802905184252205333443437630834213548373549257094586532436682149803673975410184932439388256326636965409418572179159870621903508105705638111128577365439250460533667023964295967595034554973181547740171849094663393681012800522591651267624602522609392530966088760152652949507002422160198138414988178158227004920550467878839486081406068727726469309559651135766950180008279822478868180408962339734888219673221159554443590131931244281119660792406521327614769187625653130098093268177835943565279393200221237266501349714830430352488901533586392299847560144052513853114845079320268820199915153978594389097848880677325948194735332054635589551163659144466541062310957721789361042068923341441374420212693769314464649143688562247877088534778028156737031252724180491701281578087877186190013730914711614603729156404125933585655028678826482663091101286114620032398266885722422442863633343423491584097940290427521763694230947405836678758315845803063766791842216431447317975642841677565055875850995703107942537504728538298331795266278146544037520620610640400315608026049921389901220277089507332129078873960357799490017123901961095155348116421065580998490592770219881428393164742364796224512803981222644731749496139960197731842420171784754180184745967583364440711892464004771124784446963065122669150618392912779444585003811685040794070146425524193139367127289006238078724403915727688920935402031838299823073066043091343042360131758334945228721152396059617426947647592775256594728348644371016877952173112143397150258132081036099052346192244133942479097201355253987535544454491758679765118533229445806200102656591860303086841944938728304262744724788749855071072563112295787086636447467342229495667810578348923300321866665190820987124505579558657056967280971315033599069218765428598256095641594708762793177135370380403101725228775032351706288344271347354272609621016010563906388969569208447014939457691932323082988054895428653113467174314219214339715106128547340572485595583834513289711297127365423615654838505206191644078500190873055857461454590341417418107089742525726750526652992132881990297391958659056176106874496396647818556206842711752560327098660278626029381518667880590675564227630483933361169348020542990464315273931754000017707859216547634013629662607607971939000228487193240844837325521177094904079419361541179410065337715990831584481761287048063296007561150527530732457576250810285456872932612657065865112502344863833428709331672742794318506654375937887945121152959095820158618040391984371338356065702679872359054480022186431498774157902467295518395209886458036936149866960216329823674040625968617636377910410493106480113515972039506544530598072230701898949339941078668222705556001439238140957429613660023533474167320121241357058936331588603808858882169761639131120869511437081602473724610014717059418492609792854053681637463007571475437749654426052381363998290722324472844068452406898170190255848595682871126824005782973668411994352400660377196607220002113722681296710094284099523913858323319580444086150495242473546847556951619391213848711755131693328593527495284652807138369338734029922801700982466843823410156554747604982310040295075144963863133896389945623667084811697763096694389848168103126014762290359727390492312928759611751425116047041782658585412716886355429313984367834596869152307519154433043545919077701446663139666297208360115688848023899616342876167668630754547714946629693357457380766084885635273952985821847467329379901510577855061278442510167174936397790330917154262059144231203818882332120367261237830747655558570104173317923387441938541735491530064568953549741728607752453045562452907156641512198678598019094134046486472942200230284178091738008017364634293905653797902958735780130436072172540004998148284010043737771438596462860132367412704865905470236477444260812031226991793679369405589761514003292034623865853024789443713365556256689272637662853139216474538093201679730711004859420674317698029241841957915109288904487909105458461548024637524872144720605839131955524162985741500317775463507148208936606237919125713092522901739868521959611742073835898263183191750575927911652565797480408011490503435254489875624755814325668401481987890630825379218161827709345395937009394818807945824391204569392781729724520504348049356281321876835076275882357002280415338537284979036185267080109265342204762427017513406058936052068285714751192880478673888957803094070807358068840649889614425765967853196752687334593362348963801332345111458178459315801448711442034330705597604337784215652120182763973463699176818530028819400582033082807032101780411112852455988271434084132696313295062678114196862240377838148812777087742518657069176666826224497550349030512631322335475427074900457482215601904953649277188022391084379215060892072636305630367180488384891202812185234513308651099377570937462039688661798220629168738714967795847664689368593679958658553576480377534112530677768351277751139998829081703642294958439458063889652618599128523548397220392879027247565760602314370436906719004248596994372659520412767605744811396222654427055238122698531719314003988539515233628079698845911470981866639706129819990977922197077611533129241452128065204237300463905545314045318654687232574977155585932621594764717240062594048255361474240927963011032934602127608363111516636145996824903484891303861318962624629970249577773438298666594561234995869210583182719993423770326008315130896881943710172869774727376633551822842138232448303083166249494746444562378000274903396650569103710595643235892892876506076297422598086070047897467007947622659842126749575902640907796069109771535329425550905664529386879013052587516181932377098578069886904755054026822786908325857003756129918622487729224346990819578623554474313532391826918616642721048711985032696256922964254219722445653662362901482920153040295315888416381155491739234200465074960929644564417753683807825721680131617021589881730014136624084007463660526742405091737656876841927507116269191904372158776244234551464489448364522360057512908273916958478966592427962557876109345001440726453358476459986301502203411862200291351226168001008780769685692029233573811387986492261568914672435237386335421675133239841257539795796748120673643726661233590433139125876605609340778585553458198253482370639811585914266571370140417061847889146271922016684264694255089943001293917988655334121685661172109097360672310839196347364500023731772037681512979500286122332176208973313094235590814563648586898145508339093099120108509564141610370222091462581829306575365402446144567971362350135466304700483754151620221742645987011269282741909863634435938535149642156102095255739466659811378042254257828513694608896560013120552723576652688743158550100024875745652489715282258306388382368502823578705993544044840332213652828684395799527692542558098921237211513476666604249577335118404207156889606705289314907477871107051449870842737892863956063351889482417144567669271401370201267368038986127093398795445652154846408466194463072213528625073793223110763588996080826652726490320306832558890664489451604152095563746920277033360292237657185273995323307342924121397640428736935438610262749877234611369645591746600553819936969727945600717331034000548191619478892562040003022026303366513770990708240812825592641271855856215508968281685261967074546779666148404887037757968859177978619642473477215317532049884162109831512124055842557973836880090830541716424641082770716413117434570437610824747097493243520532078362008359008283053085404019833914984585986630538044931945804246270050560821998519296834686884533125078584392816381373106196666084152610568158324198190483130810674821163705373394901918783302295314999369200666187783020292987189848000715713170876148991163321219020416694721256597866280687770976232100627338384525820207017438062791419425627810533383823124403471824366884048211741485815638203349526024484181992961062371667234985332077789405622685472071084444133862581432652737648347720453123394930231971649246744129384477157461886637633439699066455896002080066198911548106952285154793945305928665575855322768814914879380259070454092663439144918545058798881502181866557149783384402339417390946030154658924625401965951778561554072946989640684029325901814360291535146464267992368025300094323062392029086976308470921600392232700485962178816661114331100352086210507043876956980511102565174678070867140376446594949092083655855548335201379315818127466779227930938202560088824539457884391437437667228322339822158931963783427789165505995837619222882113350439134951025922486943292648301196973203363570377578027047988026265292737763590724676856380420506088184775707372165150839894867183586976060422145462530399216117888083120051774868202752238340389654479825690073967417351034886961786502126639501515865401247607177010900362356270310885393966121460402198816218474710888886546365501624750136588958240725109334564709930007657572140283350745739131002443329508467175790851947380888751243076517445104090470709440259646365685352573424505187485790555556839108118265871903619059618476924458560007798288336081949383461662605191573795740294457035835769744574014026369818704775642279166792850038222389864982447833939943671645453634084399570117918555922936252746751278691292160459861486007617023558453621221432538759485900795392221206671008944077896396676166767731381641065004623376712124383302466813346436649985564043961588067283766045196471743042988013437283764290097960111670440409835925794436066831710490150349703292025721921190108301159473773331089285331473309683282553434613475534912485613400895688255367323228406546889528303822317891383812442522433262292996178982758705311658716122516260556771239171405178839223746978392194147942132400313894284714438182727569422387223086780936090254248453256061722291590378963582652976872420507668333512471641698534113108917308559173880155021471936233635646254692345843999199731674876402893276350504357727281629120599195294339466684113719180222001920101043302450266146932735432092684970111819572963181828451443963479432645345245124939549060091774994455638994715806532287936398172640774968205776287982791044207847661000187178396716123157007495083574367495399316145100421966610477310803382624209022888893960281729512874282024554968459112233363631526977604051266342264636319094885984342911069869713377746008240965775553171821003031671232294518094419094965149200929357874317486330953882186710385035447123927368545685682648943958170100060354419565919815633855270899314583784293471096018158942943838143077080590740076835861432780528572309186985156910031452250647881217122940496917432412831199431835007955300591383013565541384990472729816741935442629290532534214392310214066474819169962255930110729546908620308592157269661189907241793882972993716313083723553050209019104766142493742798057034878084958914933044726232322157537744439564507275413659868391801575237626541816022289038050509471231983670877817064490901546398850741758515697517022961312822965063695553135566258364801681802618508553665875250585735464003560271126265706966990471452699012128502694401083781505012327384802882154518912147547550299549678055714163033153543903061895593872687654650091441559641902336870756421934932768998865194935901415058901306475089946896252285004901001199002271032959641686617505779089290233518354281507546249517458630441684958337626234629371487971770605659882841700597236262316422166831157312408787012654612537182252606196149145900080467793001184828148462312890234948430128030741160743278000946912864377429837864147576019250986313536775125738750467368330439778964693055136357783425286550661130699235649150159367874265485102245422490537870161134851979723500047018124462527383566507161722049227346545006165786752988673765828889493244467151865033259645998270005856169618922835876240580223240256941953614192790163361785866723492926726872232359856862864154714130087682530840999459285962395835001680037309678228611454407933031984991485817744163353323758343753870596177877204388941796204566766561266395771371942206042509185016038995659798455935860971958866280567257644729279820667281149678629892201111615940185026267798626169967579650745600687368303898841690007049704290196574980212042274801209237491122169768011401636095531634220006345177609270424752912951725613446594423725767307794242842502996349497956568555674410161837859235872078940626099232576822821168400884662945782495477964833591813545587430119989048467861075866704782593337185291317443616146038069090499434253911441271250499348214127679086454285048789743878552315054719582714091248375515286662025051435832293973064517860952982197275392001777701809421876051816357678387844326365650227745018524552293720625081652515327447762613503899120739111598564312973770234521070109540175863871366157480889891651932720250104038316612364304332036381848756589213004031620178861603770121746593916673114041608861059437654271417097439557960446051343499679530806016098704498486943642200547419104201580646764964700999905896687332635152427972070654029902108324548502811423316890276250258267811991310029293485127974595090959007601601897758594180133143569124259551941141412706878536304702372374958724164341397808539460591336640714398602035192879939690137364590102932114855340211106506123327562785422477958679238922725093850418501282419569929755874725927799239898340778584841384798957685473698719168594970275445387451332711295805789162140814367612367299680982504422961068696757516633306923274510118556273820614002196109360181046373080342714878193191286857038824749232277780278345001049414122444044694219886174393287722343853792035355006655825795895382584568738630066879190756805287684914740493522804502693179867600701959486437360209746158787667684027628551566168139766016694678080488456041421945338250729800283528860884041089235018262185622189571347488635929922829955861663650806000112697751358450370150451699289871666947542366108287333478372612092620501569616975147623302738405293298420677372543874914803063483404604278468375743161810926577994014623462250358979281506409079094037910134133831106489450832225881876312629795248682661815021168878843798275777618766047903364418549496799544501526524353603847279887180525225840244133187045198711154232594400743016971316204747991700293507545680869966284034588946265316406720868307450921395405002064018328210898319167348382999913136010020870237146573274136718279227592539651112475667368161515822727899359234931185698835283822956854012475082678135071753687980918156306199797817901789644731872103680429983004901484643178932749367260922462450725118760443782910216521523436149692555154893002432293741795574033639789521948535999630058851524569589524287030776241124004003852139572726911255039421261698781159400804225232894368297118772203239431471882421316213929917000687592177179476306104263089403950673311263092023383362750461239238268115947129642156588228575339726442924089596426984895734691896121777615162552233105641452576696412728044472440914563749275291293905067730440786824353513559141676763106293908235301423965686138629298733362600580182082285569701627894196946261647148530866575853427849036543370377798173895882944586169091961634337370479506370767209129491733379298716368207312793642003807208645201017133063005273692171688474310234726478018884707765169312096408147700428355626424876157424810196097788569097365630769062819877786078638568057439904084662809398910203856732443246661999108269762229917048717234656095578940480424906273622893736414279409327233028373917476105847700600397960911216452177440384327385197888208681745430830565137015547925174848698828645034201502418881552874062927521423665813594305848604943440611960989837049094420925834235246258944451248283845796363740738179274090416045896727976567371930010390894489288656251490351265543964994331811714513290973114020964655242566046324600763828572945534894576919040029835997847543598878651371796669017119265274397991291566123913969113261676780911833079997524333015743118699658093514594427684915405538492259831585347487500121744008560677991860928987222104217423620925188897383294229612565071657765600141451765916617099419804522155060716513544506006171569249966116175512856985001424514144686678530787926386242420805921671534959809433117672823358295511909425024970364745920301252416824116422990176731021546603144173992028903259240256703524866336184470411320414901346008549095802928299043007302714556033602802792346303903077103111879850304821362338052293121214837851131927188602374445574721004580284514411563318245188705747028627052501546195701516091616971347350385855817994276307576351077427381448301503643791856475089252449653127885567875815368994166134494572418332611583036940624681068553186239166940364126006250009308094616453476804192962837125477263886171961199452375123466771205344457912548609193965042224318798324806636934220555809251412024975782667985981283321299832439961251609559070221422912599278659072148441705448708844851684215271367287929043724612811838803605037883426759608142770395452525645738064360276942352065669108215383814935970322870173881267285837461983681350346968403542670675587774290725088719395354652176860821970556985457501515899412106357558046715437301175370812430242652132095167943232749269719745491827272167118171057499574803798658794807200234175762592160171731923323460586397279045382490480972469652934132639311867099718030106369467815548757352618533302572202852724989669789290208534611757392427872782350322401535242113868416106137960600245039661678602816381916473969488935428558692112283205806541956416839842057821879721166962911792257551811811866472037792984614765757724957460095021418457770562355227388005297376097907869546144771105511006397314509733765163608796898713504030819480043524592016537392870581989350370968450057500603129669657657544431780552993422348007423931998950726707343540742880414840082682086488886506342652703551436865203714895071821855471485967319074944344234092997981320981713253246422533552064837300931295755226810021292902313309443177643383476309359730058268737179496822773273222896361495307595336802829457850804753295741975323451452503312676418824711274019418112506817403776575268276054706899291311310507409990959893310171513203643726381544200467937165810109594235657093124950893800605230241240513846567114205078326515691786032728121803059024253958946862823164853104334792648384394544485523427176682011763991835127289427260154861547626192118452353423635628162005774987893775953553217020209921555728275366642222007877108391107134852496584995139022635317292445083059332343949668072481674443199859237323678433597835481940441788179532829824038417874681196303600381147163492723573709267547664193406368340356646495002037537262350648470851629982886284419238886694636159482548291089394928969120637388142757645151930321588613740435759624789019762037177588158064105356565837903316366481980686853963551587908532017107161610965553600507039608150436196618866929082004410977568976358877688370175386983001399268371747994439396794019245300098535008075905293245993949901328321789751012870426542153326285644271368191690001628286804045611337507119316891842436011295487025599958021417054400899525735276676771844132421809441089530648409174745107560302400868254253350716465586045343791934120666218252054969901013522211668804287943553627789643977188733763279120102672818361097305582916063921422230778398334855627422733455231014752808624830522068863633503853695757167145252586979032974526942814216022778492621912566568519491330372162931145998314154567324359441313394261461947600714605019559782053548953317536230826097560172097551120380905499416278094402267768192738197187831936243169892722603514808970489987507054188122159591584796110047170026427459239330810032633828137975755544682324995032275150023407452641670573562332145942361474690277040729454671109113846058144687906529138833644314505246887322606685739536091992800582434614963717929833637637335632227710420118540889405254425057212587611676211303102651668751376906410408666237134144071376349136922903431365729006684746778690393584723445557951418832555508114076086048341693904234621933184047987593579440826984194054721628458953078993097417525535848453142072464200182192410520644646534802314166985068027675263539306077105756231494051824715913362374683397798164353507688609879924350992747159990001797266838413794155342878249670489034872812670382726264801569575191512256683225818950386021455669245091594236050799174061219115249116636872480846366961312812999753548677845026303610159297179165337614021309123903795430797201315872206643575047126085951923088410016086547339825385291803848007554691015380162213177655639012008357024748272704486211594602919227283869579870149644238896402895550056288750997689339976660062923971366142103255162333580257424745270573228087272081718804095667608583820277809203016773255944092975394335528981612083792536913783705777718339988517988544147350757011840626480063978363019689130316020526009003617909075068782549489095644012607747542402436103024835099171332536878060893959813581889687004687917398682035339715629837379090448488998940208690717040685084446153646802773292369249280411434733308507569391182955196832154461440795355458580341185580711157216730332228346806101457876302412467625360942630131693584892541325484407940003030322185137760628105243540369929141764587918554602289508312181792311544021145253015398786603545108410953854820036187759154036748347731606467663228650940830265060184444430616360325553220731400492623714759181771920717407241967938896808280952916024297686315032113444373719303066197485648900470766919095244923164485331297352131311421942001440726587066580949256979965183786719839107915312365616720892336411236757717321274307477849039202922379532516724559508360479406765998790237416438465376364201866927478804169285144609487661698408282194054883603057564756594119529477075046372375248508306005480754505338608973558921020288106219809247035702496533857085236438291090888227446774447588925380280815431972724903960582677102802725320343105282532752288198693616043080428808467572254437213036032301105446627278565954304596184411837711735569902195607903132506918999905425512773920297966372236059781395651460996538746162329394625721998274913613086523260879420703920450699304309149809433749804897439033143310933165811223873861783255332536362915502113419373449538068415217180526357841028668267453063941192766965609367509907882228322679524000517435445867640912937291642068831556669692377187043790689237185851470513208636213824187506472382435234842324576256466171493789516957824978515255657636875732995153088474835443810716645474989733452474027046503581969558188600891434333511133199599563251216104153987465523578391064333009286088815139620970448927797148151958100231062196707431443034455528395974135379373358619795783894268839550139796582375626816416405923541993617089588954339086513196146587411271723959250338985316674620450351908774814376853898448108995492949070898590938991701413461540681575373849524134022632142627529799978549679512766598735287327139688985383410479075313884922436095572585153178851152256153067702711862677493423660732626778031294209568256673176461717428263630366823489362509418161688039591900802829772956284326591257214542838135520167508844343601720651498338462932396226180340071094009415883449502708047504845409939890316852916644449024576405852684091147766348865877010607783976343458128875785794920452020157130958743610394447496280493659203486665745450810099630297159396110317310388715402472097034211032081476551335039500428812511304720295212582334612294615028384287237360897720994246469884939265940107696762593255578196753294061557454636409408396518252158852965420407390056630187626731976002161627509002259352025806195916169996874266362966716245586401210588005698784604746648272660083791191673150499492822365244293243627043156552280207058460004671815940585622085617908393396740676044537869368915145332376515916221730490303551121848694891710738621759968133542641891304932580125477746144141736812859019814386565795452980839121084256829549589056799589217490735997582065944314723809207434492506827975462640332744346982587279129860919411901886668135163428119353839149985482523976179016232594088595740453428088966352877596037253218463821732761365931778679820608646881500731714895791884356179926518913814220576598380640783501743833409048444918194633497709215408206136822391134996623337219749745768448334747840622545617082525753043295744202906627948081728105403891235729173109621983483096160065717605462531640302131209130528041067061575028188433428096536310088167644600291679452696027753175926411571869749309701890337127034257584551596297585162364971682163471730747759479831167390967509103734244626037343309808457826402178422597246998140433579086792663858405369930943182410687814354956731627708587200672562030950331555962478866827452874292946813133335094259608266955801157806019589527514293012515957450727340905207949645844728898126891267691401592802450246205546584477485914272955341639734804219096590420330896553888226196623785641017198493977899549802803835967792460246994173005701469981358112832246208428386144905482999948818028672627189709031795747435930540092441912678831724117957600767834488473235011500881764052537515121557316525765628847027020762460756793516972117605429398595188227460393068309920469018628258424389751112334810397155456276311314711206431886293714121542115232942029675608108420484191207011125542156505240695877389058489570877100809145279227218618604826332553889666114242975649521905497741266995866884090346588562999657373173317798839621800769437407905008293246269855380973510056669621981978363959872533775728086655547602145577221730448344389753337502108606444632668966781907897013969225996586976990365168883974289642449048411960393452146941916313343605894058883611868013776484028397997873033728483308324111040238826342231607936684954431236872141606089132176001887879154396252447541601520297885129418210466928461276924074076010544361166142979671111808843975788529805187672086827043662719808571607063815984349294091982220013125127508148952640742487942725744639579858754027102384733723807767449246509851014546091286365523804120356376758451096794760744947250484119297148232089458645804424453717225549828656544496351853906943045255840531294758734215950745952810317284632120423732053162062773333418661856328363125374832473771089045717917810127866106181158804569817639443534339450588072217000528456191332114973747784022059363705448956616625228873056147655398457967768116932739514109806501802130707407741060220828779724138218501570319828215328567469528670830807597289794149892995733778277451555747517374214041709823354809206605130791709207179816015801864102761939659224908024606988059484503719077206294040717851638968605443490562578934176251525058138292335038972451054793614306576744645230695472522724907814657818530788137179402681183388641805943461921242085561634663444961205308258489248583250275451373352071711564229848782192829519653093528772964914202463791927705679579309719164807171291575434577794210279297681641236482947686141842702901745110849688545214698029754162796463877369377533592188807695288635216676933821616025460508032409070163013435920783866799232465305757439312168305951870382547853421313934768868671854550143915563269304412784435368994125443253074115894574762416371452825719274973296210785318616184796282848419914221872448654701124515067094528260151417180234382307858405014293817331329510970924720158060961773760546666209678809939083126062361643542428294260878496125039848355533039889146541861727627319687623165095484308644910452243812570326177949574603126283745098996222147378006415008267436489268703792683737196338433840119452510725039509243011016399333499064979775077203661612109591427095192835784923465683281671366575040271329592937710663339818906830710170132363868209350285300659400789068344057433978339559171252679696465827791021164201920777178834057355518544495771134026383631333109477049464801364377357922530052404565452752335097209107954957564712112850575077547598482046977835315461150307801585807302106129805135315471743308020135835296854330267239264118396491816083804410719287857250143869175337001263833430668355462761285924480482285551784827801844369108872430653695273755502978000288126748752888515134667926221947976999801926743184480344066919201586321929525366922551910156932961436342909426469448658973431172488562649064528258272033243509976089527513759691326854285027081764869790704465700318923252680014718725815282394080219267304037330901341258681855271728557127874023991866272446695915078149699543617968889120684175982720987907342386724201582813162582055633552172615518914102247593245485470513950129340309769932486759248762989728037782313058963184434688580758862645782754476899854519109333127674317922931348962630027523715945242918774349069738792447510863867059929286354082351484929566944281826773692044428362292568321840332415405972140648329511315882899948309147976191642433890117216660320274911954497144314084756527219276411715495451291052927698598538790977897687574879614489717834029053198858317242128018110384425405171334438231784265521955222042492275146534645963005111065299645497080629925124612255341399091060808286756231575084893586138238976629557527139800069349335618501711730179210776756294088396475138723883275517975010627219980394526675454852997110875869230606927273769875468031047287644774557610464924435579146999650572099378786145626006698431986885379621084891379499633347108446483978139452682801343977158014705752111651110500150343802273946308580650925752633560401730083067437106818910165240189353695575103933870115927866802714595483282983961698312959848526122044146558400017549691174262112146097801728576224436743471433622409128146359876155878915280679678059602994156352969371832140544354706912186584145350673481669577542419572920404281645517617142666286421691253673635961350700091961626420565543516258218584113349591064441541141570610998487160827143817528187825927267538839720239504024580286290520470391309274361198474878339595984966319112297058494569859241004265395557367265360125967865330018973240479307801704344258592439133038364444136977580046742175152925706568357088476006538944789161903179344310543244376384724370343402366051445361752330801866133773356459293760797244744399003169707034701148446343927731815783612423511469587377530105493081009817314969626958546720237651661584187107500522040148379525147694349695859914498147761999407382534929437840854023149219466410764630247746840659134722329779020472074567830109775607155869377072375024778513875253545578355708211349762087069027122671482248667686476658146023069912749177128079973625236951381349289181912901638562930624260927963977571082777194419940199406328278406036821614055714330349654323833612876985951846003891949221406324832956230129578044057086684021381404158181025705683978406440514685671841450336328719327043554609234861808387902197312705574691200713477959004865795213705683234756587575210678856508661950272953115869455210907696954299078376457889259302447743779460579974907566555243411110469781797750320686109176745833180413482719672004468941606730850318963531830057685918826497657988857502093979971962702210618197476634335465546820543847434054703132942418164330734486557119685655310646995308845333862167055604561110485599551391358944770403731164751243079905696863087269367422024249559067044131368561384049686255416594220089572212001598709281740674146119421933711364028677277236569131503447097688556910707867503088378907687087571553425748594679949257922528745478425100878702687812718941834558378032714530724371364870877034138502358284577497557261045530817100015938632197745213394607345497368740545251328612640133085486727893497145335582022059689163489675140805087164690345261023507618711812659524591214205230439067543801398407227258000773666732809577693390013819811988136043805347329394569435436305155800514363411477604519817978068466878220974501914217274472577383482163136036901958225700606364727525933698848803234422677202576294244591004768218218921046849724508020052324697459552701260501387129616574383090436462202898857811284559157514088857386227812988418991778771388652577186841276326246292220021611233218294197195512474524680292609186567194822302851674218736481546837034604884415429319076617010948110462109728246290193612998535924948715296426463282139175183664009831442087713995790011024164816193506204076262637977994382566447934864141082628685968227020341965228317482568431911370275482552305588465631028651233770123030719728515364241512004373411689003422817384379910996730597042231159021747544011367813439838947932605313306163182397974139237576730161251587763729965927065191250461250917379058007823356598473544723965574367648843784311784863772266905269653316039307923124849574154610981704877812006145801638018515906829424731884674760397269434246296140104706510013278609289543105426765820123953350991305388690280215352109241337910923800971052733599300292312952477437323630649860292130971521309062321481498894027786893967747102004468157556477883077291043438701475592011804140331446679949799308204648440919673180079853612055171430141520693512771176926064854995901936315619934439807095177472591897787080817977435976366222077658662555515839237322940723857551921232311306208988606041877732749561765592811910807714378286832585971454180840706388433984865000451580670920847965328712469722876620220081590433305180924206035204770620740232300855453600593012427790293110389203032740135387586718058244080970944052305123072212795343153732097218433798129336974107666575269174680879176322742326798181910120406261364550385362966811109842605965264885137170255049425295238022205820344668149981198355174324369227706453423013595142424172527860432006565342850227202469180235959061010034082858956806263520710574305027679139608357126202065116936404678679154792861304673290339942118517762893079132581417521709717475045279579382417462597839955352763396283716251289836675603835163571765356903313328897598581823599676643783728877683721346424392257289012280209652730410143888417737604127376109034361260725403590051249784620201316028357731003179933418951122808002083097725154806510155445415878953805428878626490305109031177861625425734308116899020436383957492863622259825425189228176303889815264937636017414444167902022071248197410411187192945632363041375205099027035307942316942386300103160795155892064606673185120238680451455582394619854337962516959699881716682646457287602753633025601154067220318104360760566400965750811451081863061644751423286440676904453690638002138713612347857556456846874245955748621407441350986432975340184366604882870275303149084263711282386104987068353858365194902705701275740802748159072251777460645763366976719758593419547271206636741338796092056581007982336656866316546932561612835560849816583558409793133793411001202719916708068078661039703767321739611724639242221207077099521794193467624029695796158470744294019345175683164968752970237596372606592755601086866206931922658331224264027581726826707485824576826913829922364115415043833804466082515225722100847309824873558520065938438088747725507023233418357060429747472881810461832089126157398303948243457051161610581770549976235239074424281170145166246413454987157123807998606347224657376463710375191277824992566184541134252573858368613912334572525819316523832553657631689516622939971839666470921190488849734547270646962624350773583921398088989062133275895145224978126322780626203219415521223648299546518713744209398039947899921741933746180502390040506470728626708996609216073223711628951590855500356285362891512441880755136946841037543140922412700049856314728925239139984673887687931434253784514443698838885176616476416212856079162385218273064744262418889916594336961519541042518944824963892294070787844643696164585919240678217896400007580978788602085179503314239712950513491945044640673981886603382531244726421827878290907074615094771166262583110792628877878251793427575625961980814780662612308300777417183746488714682805766957678378720441116395928169269814508482980404706786607613093073745387562979431061414456557340351659389804755869213945203227209062422734130021350696851469779945001873797589681186710224606501133629238087639725561833237536371474157121303806857665401111648033419061680086860595770179641504000906176542599209122163440498215673888316863194740228486645938720507181425549801794322323080488052451431727259843749250490800041149406391094359271004723225990027458429079900579224472044099942998513253338348437528062309966520842661712659315756055787258934616046337309329894636325956940892258791554674360562769538985779960324497870362124071339026499158595564735891983413053469016062024996293080992771760931052510112669889403566401960037856566241796754882681784724082843034863329296096393437434715190646981072556298371507047581223504879241809755124303611514148252949120788309318391670604165536388647154084794244646933258333020103026965985733700785649263058930393596650632923447242063768913970250880718203261730966930616599268102197563212514212001132289018500857591421260292810335784986713773144191046604832263046072227841153019227754344069559444890045383327256743216051749620517255377271753310919082435711370304741960777086858511269424013856672582606837920883362711940438750920742120294453034971077575111120699707332258088626651871684585858476638414064109634979570477832178355051741644813549082127721512529126242788956139771222287793759307327244427346049671861007944972961337603521979686785514572419160987538957061726860505309353206615084427546560510720853447588620810793754674400983874772099149868091279699896239476471982074053015975864595892399113855139663533717047459736703506414076772232595029916367121154148512908471267558508502709328449208960277001043572042793696988997015383481821323670432650047744324653851659238727854185139225021944516719859904443622816734899485635733156274599294563085774953229516772703785880179118596002031397518578882241075936047384981098430049936341595820935766356685481626640984533553732413667796867591261482300587053261652914488217519753497710991124012683021888985560523909238951648807634782565046844153188370436982096499278609707245035718546321178519041355649170080962710662998996038633219387045279314562990686821091199752708729706810965103968767566338725201804917817392811322648992027786677046822638592906944088493994991569028992068018892733734254567681771974922157092682990461349974105150366204251838806461231378604659333835755687549171987112981807499872640823894870192199320280601053915744894687458903132640123062332468313970722429036427935014494175704922319677137579564810210940867363466286007306249839663701374849545199722983845197115232835560748821652656045265244849141853008824881580133075137976055804702351383520141386232611667051466433129064152183705508631963952944144851912836683159049255262380230618970357993780111640409617186102314409434656900990279711631293391348619185705584195168250535147250177118752301338877351635083410887991611727980823557510478238321210876137937522979224670169142565276650435049556265287577144973945580356932552150674036049089988327586984835265391525280505409028474836332018180171187126361369506235746442076007917923652769321776647623903463575415494696693282637267925757491997824789740641880473237250259340312897564635049000322450471191540011924234238137954796753908313006031074081350042096939967221290118796884107381466339467377617116599572804516016543150963879700979743369081319411108508572673807316193456921705521793448279639055594805325149203259300713141501677213643480991331172116135546163537565437898029966068376186325638618351756933575638666594612886984014666318339573029310383550278773671581892503215814925760413726156038189664540285643083255697996014113247332472135229816211220559449950249871381660529311180575832082944037720047274834667755209138751863350219770448977648550877064890868003201367078115311572043922119003993345369010334844171508697817248213326541660668460527282420333561002438925504956527393702140825508054552791399264739803318192466070826512417698810318799042480614036480666836995294954927100443624662259971363604792674441288426154545224486656323897840819850745807094576541857982817547214192462558803588592357436276568056379230294598941200767958789597994181130878009448286548256044108147068163035516120771499935586834753479778842063611215707437874227748630650125941644269934608311256915832895258799474864992479852710811152275728063431663176318468833975756867155447756042254320428328359999266253634010296120340460057287524265464700364889460338487466424345895623415721138410311178660844041681000547535106317496889553767037872251775084844290959520845212501251896136297676190767838460855084893438715486134191720523932150071416658371481559265140344512996475950304802780150556234659803309166904593302856425006117234211866390659322672671900080470207036241118992773522089320674668791436639816263751172605774208681158543370138644785907271959791288643593961771340504256311958214201856071262462022087083691611969312859022510597370343152405232640048781288477664932162049479502378554461068974220950554844664341771688943868429197042425716935640339779335484388828786263340159475876008761431519881905736731622007269496493544561193701414557292063689592124659344611226997975120552894815330822482607733062118117705060220319632839614236090409064398505277495705759791182000813020435178612201323411919333828141909765937381381725968195232761542157963920849238968115533343837651978824977383800096107969077369915718010000746071509695891151030318398766339594345776251994597553088122670460054300821959188208602012077903036904585064277597059510163422480814277793191381866760930642005180498005716208596941055986084479008669749906410014564542154330078340591555174205730816288532215704689294117451666450516609493646312799758041635969725660522620109503340465883986576489209262822427509616078769945806705620172670011182040328176862271170495062580421265751982974853044818514080514550440217900474660822933238594875743279400250773933911305154000331370506713526176567079434465721452684815835027431508781050268250727461118231991154084745211332842292669134189252703988196101162596474783706211844618589564938786637898605831616365171480124238905765875834621916599491719617467402114954802585542061177852628970352892870227523304918439619027753422486541768208810792722992568006188221864043836871784360421595174348452295373683963768047176485104416201150555260897927037967735133138710110159078697872816875033540397337446106463571272606347248111932797960269029420602793625154133763054800291048322755698236583186036880207787085308489472906150035532455465731439258899155888374519962115394595995450791842154682101317804884399504667002173136514573694353410086724089088889708669301899091830212514210751188401300048530048486337982291430442456865718159814825117758845996071630280042981901658374801776157373363078332560590583381418640067518143195321742989642678120622882091292817769753272942856324041134826871203251406734624471789463770397528276954026075770124592228529709722949546766373594800133618779668872341718640490242402409393048733509458420293439584276071247583808158689388682880883712110107408810450370569923928828978126303041521027684042742458568108038178222050552155691192951590899075082053336149238543299916019669234886912322787374932841572232836248865706613406839020619011852962272816036102428900567706746733384997898358282289626102084554457336832346952676610802306871200005318849479348684615501327443008352234799858204112059048116866654626598765705040871489128187245420353485138971909976589293889619339487104563815315764126451895892563480117128430914119719131851598649652419028606465262176812266183761907649901567654382717772789052915702993053535606989404154976847277693920326640313645809143093746666037626713004279631485940584251636947126060447500868311172111754462526186602592047993835225689729775826179111670920477977756772444543826258236238710928985095874860752555258634006569534730860923813362072017218853037139658792648173958156178753348822155248073260281981850776837244984340659679454659664265701672063685621496694394971008476926761800206042348221707565943867096242224697707650870863919235521150731223326923959506173000178870325255560416584995768305173360897756805809022962794697883527859725853929687807165096150113797273892480485812926199661958970672302348847583197438243756999538500336374872267423558178571437890638551273718918467838788854644717230703706315197760585468788582847013276689189563650287301685651952316106660742735759179891279958623219909689820850367387214218355896679565215405227346910351454469385599258563835620911959891877023586315378206249933083172180678767604491296684730424202255598249918092989318382387901363114509468664548103966826242222872081602185283834743854490117617431586182202288574545834771144837516909979114382555072395828403110011181905471880809511399249276025012683073756621184035529742871966239296477360312597967368999941838416512689441862515568334125750036783359072225986200187004798450387701819156971244764107338788511119714910729627845740066363013579799882925093696986298624571813022776608648699090631538647504249000696755923874749294863065861445355246500829544394646021850575166201254844581621835332164014105606073375653241926955397333424362609780763783122432714434167283142914310339370407662343050715562515984694134763553486205774387582519615782504941692810381222465962373935665622314363982171948725293690813353499950377484664396683140861685450142032366678295022837728108973986797081547847000667009435827352297228757177160909728785200599230533582188327966383098198125357129864945114989011333132655466063837539451640173414539619550767682911952716910617355048499372176640207312534895087826915976928076229679160676521495194420295932862180174252635243775919151207836213581359951680931974342501829671051586926558892892510802367552603178377984155642245292711183873418090915719598271144909333071722272944220814676656505278427648326883005992692379058646444831661686866598546808617796449316290554271767914236824509166916648228356912131555099852623660015211146436692713677481112505154003609126988034623074643588861120773140992634533115442127236651296234556219619067777073063998815241067560409286125602681232595794965931477327831899198616293605028147530113852682723252262812795772120635894645838525546965620973517501594395237739231359433505611808245257514435158997420029408803803264096849388284968776033027728967855675768629630414874086418277698419064623989473824247552483176793847934135864379005487307621795712048624734956873601313753443401590617755615725379586473571966514519442452075733206334481406902497454080598451215174064168863612865519806057876948115082088823285029755136437481751461846892356791105935339209413267505763754106958999883699116822770714908540480706671530272736264520456907974793200052371973591070222220470873776506208302654001845407920301809732545547354920513737926830774185416886499820495172265303059605982775992880291712964228242102949281639139596615898976317396608176586085833484476759081524471540521302824574026061126337872976974239935493475231628048339186748426752503343748251225572018535389413921114648587278854701487638112876111836076378509923434922907987327742560854314992274034372368180401825253360567286840976511995380353184016895419652566488616559991506090540938098730459488328344573093833105842334131158591004750479547162739233494561201888627418684359646453394598177539764855912434273543959602238120322511926499689127378384095877151995726120894422492812024438392296575141803011601155060640997061544639681163573383662239276186346512879160818492919330328051877468909109231034566354665842928362474347855653168447647186394651702739480624625734529561784391153121962710669870496117246634825684285451595995488905989187534355073702811236154699660258375319414096962171142607850404209859198473947087644369591932215104629000597703987037854052419183932667817400723402694629960970722468401246516098422501393363991146830610128128788819145977246008783816171645894341705196896877634025838116353517289648793635574743605650017420380905994219478438175108834888565064420296176141668928144795730967061331828851063260669694296147791956434017469689698708622310483025257612252715920525100968483538579250575342439573914149412276542177203084396033265716065419408299115960222319928321515666312954354222788352257886220423849699052378717460248475804769787371050282489381832826678180832176015783229236685645998611569315754602759339368492505927387736269516832312311671672333796720259674683070420717387172358676127955424384633166007517515926163482817816807940205321558615952662025905545137959883253164454781337700923402220629624912324080463222346153242492416735793275078215703723446038651635057723665314929757684162734969749516494618865643560248478280655587460399401064091242298611370795899981433328943545105612226788895136192327392962820501019986717756996428282560193012539439207141942595713593704997054587754383921474605535951390076139874488021112591167297462159425335461878015364232107557363830980903488444213751923129564550156231517228247799787196662357465512036157850118033572195147382379672652808953033095118928892980422750186145148859679900733965293370323627049798687550284514415058236185522257901266653759118330566147780956554038900902037003774528080297020188545588089597000212932302270719597380681449013383040796990967213682428539535326867418760776670357716382042613382250847460855680563994772639073563650155075556871412807544886483504079693627596352566233337743485896149218233600366816011243195054430656646494244681896359215500922057329656876755855115072301465772431981285620926376563260484266565213099436984111893133584880043040942384500195189361026839847113861759966117265270851328618782330236841125288685998547311886292339085063782861330087543189508059486279087002101015318442664467489623330750435627646381650844395904071006913756265409677994484082095213520370810867516162109852951874896069314653799168147602596976056516277415025332630341072439747329294477896659499815603366044217058895482428370627291160725307298176119237676264324650201875747111118681983229790590771943026966608212822227868570779703639962822307269267299667650268847050636160812958466062220945014264990963555010469466038626442117780098579963569615993901430510861811025792447072692640306612557046038668871916077382312785137709167933896680237672887367640390299936139731619078798609776490183604291784905902457441338639546765974447345795306853923938748098287690068663325676383442494849769615250793990321892915659717238027392946745045326614076210083388915015684354459216663260171743497615581899349753634982410324968116159711725853002675845132372814070360903375687676472507207132215608299273330599587640496917344507941598940739023651502457564570059339365628070082294618586523966339474857753773628833924651345743258744976586430291799390979311472315231467927474837898586554815934522670040554279218132034426534768461978638089754846173676875138492692432298957696803751257787111512631023141620091702433151841005703487260730721273717737500557942241158628880784960674065582557279011897508005098151583748482271120060020088295225865542744878392157682554324498096621537445967471527548775405349204010081090687351402837669204690914841938140624369670869589440646551410975817483767569666957464271335879268947324754074387940241802960413573764994013122038351076563229384797030984361645002056120600270621335806492823102971383309804428146586512409293218380480298747710071572694077201832771073313338248764941550543494641651490961567370565220268243290066441290399830010295659221856932145388710165391914333814971125018745240958960080241932943066722692742173125573794957150156405702184876812135887542125557077039546190222185054093928923944560019624306275774715439619135453390626710313879962635452920708097441873551256685900385247247798691751892545955146570686783455428274569034407409749626755464440808144585565347611434877412395371033615815423871419929559978277287284761131230366585361618786684929507775026170468864668222324874990107795645010708981827338139520509141816674349365424750110246171528300567886819700140135397815481631695309821475300319849753791847313186679582260831434907414008801273492601905990247683381326632307047524409396064671829381114637691764514096396333187315606911036901205646592512423367810836946732088515593892242530961194515534486766432216491063491613953879714404400647364745380016353008794134498128241681217747477704983216516681940606033590849947675108247577922550686723709886270563940990882628694776316059981264609969154192496422686573104616867492663024534169962037261036658444949844800450891543271959890101520685160887808486110815236643131364941056329005148648144703828711410508654719485779310450098378484564033180506133599768801727141175068150557558055389770815538341106705786368863894017537615928608247390781689052271380400221530555911377111959205913043727566103715643125360000351308215535774753461071218804625667768809590796075497939265553999367723903654224512407240833051767851792641538678482750664829409169949654625484496556044276836582312955019409392788637947932917813036493414623036114042953663777927290832826506180389269912358467499067173460647431305308182520239874805416206537773192899857978753704317897771038693604001793819111220571765354015962765826728780751190742519829558670355688484922390204041758757868193698206872613377190382162764656219688242721888353893011879016442469334172363491119682841582056353722801323926791624888397027942681270321917114325742634669975989780165867548540632691636117206936156796902235240197786810034357794168776045561113874354099048813324144567400930098909696113648231340401166183499193598865177251651257707889344819832635862672643917644514190350867924145028602114244430080533977021706869929184214539334442853205189372749208547035127774950174735407218479845832362653195999608643248825056965501882844813654066283917844791126784125908249794850481070812195585626142128529328915109505505447394160218745757593505802155777078147146070652536653268864273019933094530550531391817261943181871968021565213952209837157418750875074810539597952505921458732781844771695060815381226485635531916405869694893724907592622248272217520674429376745955882456039984916166791116115169015254111007487097553085407796874026381114338691059205534244729366281934131504504398690529552866586095665541022619068838678916163642947471291812323715256205945195220284357912533920414987460512954377908151702289702713993952667940896376648408630368016477200498743432157964904622114270179988918687097307226228117272061625904289025860225102199435335255034661983062907769990757325799717689140277677589426284916876244344824252665591455007589888795635556159343129996678228177452831934169765668348774815689991689272056245991740331814428992737618020292238971385814790339784305372603550848073569458825896307197281764423042373289459657160558593511381591945353242719087194645458034472502579282495331940089237295682744651807208752357948280392107017899691188319662106547608530258485122160681730701908849916894101682921242897720084922187545793280419391339106663998707220627426929923406155328489049800787080862116732298627144433982100114119087546216885647380545965657208219512642678670920645420795801210956808138611292365399653822468887915797039521447193319930937284401056233094040634223603465925372204068711485225229492010513762147221290807913571848873091422912710387373223051037617419937450678658839397798773608218667569838496480030258968144777839141754819677603734276614844736503675494956978936565974712350310813552518668451309646277940156482727769572971924215909313867046801964259161068203832190656078930907583280393804685419582008965075794951951529187382765154822657053445598697481517037724789323869726851617904555464564443306321350018481986716626974232550377304620519292303867932061514955484599308258020084325931623653589817640244145992162632449151254805583710009502918729869667247638342883658225697354880362062281016170784811557612397266989471700054804223927506342735715062307873288360906840273261239744582181761957835529848581566133681848210218230968157915935009653970934637574095998672409701663719228446579853291066625351691000649182806295133830384455565189313357997951722671016060904908420818212411342245710592314649491747744996037215986524972978493121896117866823491455032471880803190434308675982135014083463458064348444420908732386555090606811779501579371109925941788354818985894671474917491258746116125513081449899271082938862024638973950497462371836323003162183595881841535465174452223870591848146840704902863170939188314756500502546547928359119295938036154442137282099811143455128572296281965522664816234752913566598783090783066798361514374681523282969974211396643960705220472967665321241570619739305856288391067998603534403467371135703783402235726055719421583227501183383485943761888661794824428373187263702706899916863941668031963043804038166342803646996273367004038544399852531140659084285883045646611858674114120039795296273987120322225839896553648834370478221400166476290970540443525828965947535191810775966673417597472920477264129316761371118490863787661177777839916698286451569341743423895588452025679918584595576932745444154059441244117556337439887328634518536296843565384929987304651803360739927107734988667241012033380786893454281208121935040065811255529475185852642316038465198572110690827203866785521151270007830726307440290266909815141061202310119413854819108619026421496847687390901279863948314171331714970066372549485931252149153040778159918836481434376517727266745715610136701724585693959951437825887389968632194188593914232972488925737163958132862973815925048318864228756900973700376618026219106482454901998374890279678323784450405127432172343988974068727800610833326629586547388178957879043433952693585010119994623507341715431830085632999559355601785107371726215893279747582969193969560610539939068913864347890238720544222064833342414258227379952100807115907320960066428938135602053120216600923619584546977039907853214490582761736363587754357454958247684173918152199300350274837611201215440756920832415168560217291539695290944930341218825009985622133561135423665060658753949136367789792780503645744285172023516558801414892202533270183994089863389805578972284077573918209876665377269107355620014837934465607139497995872595130240333954441982067556594762050459874969284461993217557801798207132340176519730477511066885632408004332709155663364220794673459761424194549833896575840169905761668366523591960095282181895964989117975811696399917432242558367699946477690730836568677494924950942202063548613358704208350338884006888104523561824601598152721485271211927183217640814563658792138998636966801795359328727451946681357747806208286942440777072925255402830201446614319358759216972320798547349133045011931714512067315566210374332749389014717328860739401467084959242413891781315558817179599138852814593171624225416552687020888968780735317776458212802061279326559299607777190860611914548752597460095634262186296744848606859732631011406668953975956069955873057318875791813949916811352408619471577265796730954272423971783543390639865113754638869157846615755198876550005822801546172121246214766403706023869844129328023652398236381140455933655441114296219711352733785239905469064895939326908385932194768582603620632796693220330443951881662580794599579694811033773218436562131882277615322035227035072843037559903958044638819334094672630711792648239135687369578550184441577531254160969584535587697398007359525482749606566631543168234024180468209017759981117189996245971824820771434210241054541323964557304858502381008569145384124965251166301722133555359706753039177135455034043431943599342081931334630363587722752275122209471209072414491173966699354707942794845381927912707245375210704733556414449072334733977606536199696945537791849260852213923402325961369347703939524176581520431445998316967912837563149426600774034508714508631121255859766513544525632417782086954858308600585949456047826460359761613186935253253545599484182019138134213280345839458487272389076645912386071406725407690233502723545093530491016831811069909629693379460800764986469113856698210502144655039060841285521652774197962805391807111070735096613454732286417780792267496860926451204305591231338721605455386121193508425545940034614660776647289353333995729444269143605254615932139789732079171870071410750212050997440983673775315556762853399977072316037899014780588649333904441616105513125446449216456595532619337962589023943033953964290268880238121309988543559987489827979685408681984515229030468173728780065883737477745361282799573104053756136481237659811502324003821451749052316835018283955222988879096714201613351126405190526060770931302031512972830311192483220850933918347138100871136701909816403229255210608542148924523854849017931214437227460099555282330120942525015364964922367574740243400850829029774839827112995967413719210269439061108101013535637485270629114101172802459803835864887011114293366336260683293464485688497725262711792217865765079683480608475532247240364868149956549689592252018786560760244639118617610245276226649456648572231038251686730579461497428015078720000565560780637447780623836878851651809871380222889014418504221920429940083481407134227948900992431717836787925967374724897209540227815287521675705282665613560421048221101128933500467971143921672250907772654907401180228612636063390702986858598140090331783066218827746770930154774101823136261660683398973536179405323743493628716431474134101735419117868565918148884787682223433593391066900731337604825626881779901826449837326459998012986915845714273472397630915921239427057910863915042729435470006840712597698982333161122761979429200768858667734818314110072038312974559248964810680367248229734825443380556533773297830632817422866673235756455705400387064608813136860550214378488217908685546115880871111661456649256965577321982957164440218455303394647200845698627676160081639306097803546700244523908595983605322472285631202499854986413710395983664972181487327483191172184338634876529564640724600127247597238113835941912037464674231132602863138628545382796363865726401192316922346701062774112316169583798490574913368215077795073048544729069051227240408150548973599995722744978592843080248975453905739870098156353391494077948986147468843896567348521268217901153339608531330804335357047454764841166963457033134709187911973592244473854941251180325535814711465982865274223714122869611740499830043047286733200016574716599997758109943930787419364861381087446115173229464082294321724325509464973565369285959213099987171081221629587002211853922008330965552404112813895324681609533447916516123786405948819105946421860986707054563502033747297433697542838297334619368824871704635542149237956462452113856423508161319460779679105561346247071294526125646894190993162991922253115889210959417065135063590247510290647587027338571307997640849443254053953898401953347962644102556823724046790422829442988092788075319983952873195975471478619161786255381278165148154610647568699082779495170889862863558307130178264032322061395818770754797155013292384824881062778586197525869466314374298074809703667329321328926866206996210752042014773254246459210742178528663751877617508478021201871630485805718987490025986191345494006639413687853777168394894683444307695290589443001432931220938580701977228766751623366349366409791631182313127362797046863809187280010201215444124207143575480110923708110757330839179463849425715658909564473746418161448221954638124821633626410477061303160583940037733587338143496821502441488557581727293951942590364428469431271917130273446359603849667626046885990196347054677344281121844896747426673815450754655313566179521526248206696666899711917884551805503960357465394494389543305279128337880080066055583502812632855142756686674408994774906118290607229591579237240019168290355510001906423479833192415361384407678377314807993213384756599499170405418072794850401339424101632116310993442332859275540394054697096700634031608316758649697484661489577962620558781309289671322540757446328308562452723388687887512702432924557283007365536388883923735060218778438619534582066376008268907214744916710727340415039546552060956489760149298798739327401346531473113446243283927485097026121935301854597237090448554992087239502935343231281882530288033505680870909986783575122476744884893394261066698113016699904181322331365168763208954126406740327267919442898151067875694341376904301109765218366320171670152424779371450534154597402568457877834414661860295158765376970580694868478260169056937518409301269532549023139882963140211559206219075760971089796248347247272354520056495557995894265078854198248758666059385091244090723587950048376519440453544252556254288143986919407033100737039875812177478329023133164468725353650825052264032569069936834314552849587875465958337145394045430114968043281764715312021974392678847493050411230290910138048377318775951526708312843619723997092787273454730327789003393989283306329542496588090069173068525397633965181443262326468146133229322942303217676549889835674439180796410685853240294121674621787171776952859843498543249657795122272345944729081358383644887826355771737495821115407839096897894033150059984543182428264188227137033476495470680385233728285891174608436993395850494838178929690190319580119881937596125978700933262380226608619289629154676286394573234728283317276391039738688648044371659337243910731928602981386740620167999100492113929727918779729542302401833806695734882880525308357597022304544885204108608164777777234946572746970545026364698541896117759561491339749600118802852073442102572193336868568885893615703884963432441387348369229195888442270086252943221754737476892401754084662418807151369533987768559707496345268234311376060750722518756086518136366582427523153332361182303517010277983987210765861786151376500019362305536740167730259492007318949931663080318340778662483191919462640458157374089287117485999692008965922117655530883659515264147986154755768000375880971140370546100512901205243316004917195115555548793731067593427830890309689317934161500604780593629684042179864680199223436912314924957000011279758324766952568673401715178693246430142271412121633474211505204171838713970825006646407738384980795621096385127787713729795704371459774043328197120729903854697182660579766972270774186541211627535368635959932177061772335775950821360093293594415245569139208481075490522845002993167549025397394071348289100053825700442822596790775874449342653085182833366424848697909642880725106030420831052660450014831955417316378864869402090623275900169848159904602423150414590784176382526291776113930190089825707562591796537164769013880118460031656273717287960204617816972372848936240774629142617546567770544356476556268430593354938049501194294404993707816031424346501954467007853637878535668215510857906594650503730547467421904558899993938530934015295826045880004591479676168622215835158367030610873881011803635841489335161254899118302669037757183708142779686927076377687365220979655406591630990486649518309014956048158202200503553732405998915123124707663435483236874694732561328718039208288452699367083408672862696514819441005417108144310488965470240293181063711879070949238169279247704357876280470573869786939038524412883671701141043540452163912541562220892112836709568279613375909312658405362853822094355738079133309231440921814588719804539293425154831936240664504704335415735434348732849256845588604348977036807823722160011594275186942670829074904511653214966688936018242032071172695564187183257443543632429498358213501326625273863637296105367195631371470246742632956549246774863541188949249783355927786808344561787433060350055590477014949510446144355016964312670609060663980159664680821119330457255878951512401981066238265953223232141700867163177818008358550119326497765684601600414022876659638179940717491161192514767163311463184306769325348043913732082781359506697520108510293784181028644947578551687649319841995047832096187352082969860290828757979372951534629301187186072535954851741686847730643081630431474805703940545355902572365307595175299902480906996316048916321404308481851344874950848225089990554675074459796726547777085524496657425960461063591139260472152016110430797193582894631964715113534549963870840097574138663820834195479888480669534778209700527754672557978351398516832451310444843009584025578763962202960421630547078595719228699025720943710124775968122891473072447495895947207051969391033089573044358824946257307628435746390037522622496430543472005387727229774878338555243658118309740054358822340847533732270290479308277322268973182414046817251665568559722299639903416613615180570804487275189827730361225900294141458428176251907211841488031177159353099970641837253766328093515551057809498095884956386616689314275404361282295973594624715391755752127438561738040361744753431763897265240319610282244593630608474091850555213516327615757210180746678217545212213306989247178135752067115259171099606484358693925741242691263249736434338586831227004034333590847061657164426415978209568758430088134777198461882802040197382316666297203259893815862032902914005104392483231213391011040076057861519738159001550087476735669542937602872321797597230771758985175455351157686201187564851202601079290917547112896659876528612098365243836571551119313961039814500743041587959138821368816584645413995492143355597442759325634663536394611757717728388872022220793571831559294430634499312518107887134464252751194465977846151551944482596738030232330118243199036756218169056043187391538124482269125180089145716141391843436900511568331675713945418695357382455765094083151994497117221954991655641599860788532111009269678223931505592163990501854375754609596360449448771186232427630354262639664853024913401130696498462305885210843381886158897172822476797515657539478808906975605733357687590237262871506131847780925522452473623838758516557281088504486042395490902485541927103867941837004205551680610080499400680687364112119988758450968835966758428517826647883492691445650460068225682653897131714180094006366447550574027642170390696807892356354494238138525349855127545800948663246350303093809199704242576057679401547917545940943246656021566272379579687462224231402066266785995163349587210305483322895229532742742319383645086384231824752550242374399573331736374671166309441569154827477594007761907584242444206395281053685158005450076109847368791272609824152095890326066661122359754824673753206818014123012886789958044574388952443171414707471457033328438888269447549040955670433465976096033675394913153429765493684254913532873813139965281958393194774850063093729089255243093144948800205519950020550950627905075433566158294806934305834761150779123812231743610431787073050004135176057800439859417544418507163113901311853599779057571465937525997663326306768890587513586387140580399976217323272367593826541970412260227092122638580685835485082198130083432503245710114586419634457635616567700892616920883914140644788207288672952115812381794332482322604350303044029605585668578158377539486904973561349650223092642907441206912657628964398025199963234974700019621551735591577044562165976731109357617835796623016566185827478226075756928849387865213708870846244198959793509830627872277394925851838757552337273173498873319235765404321743928317219248990885363491413915371601015469841357146285533729871671495025626786594088285255624549550932695684738949369426911342427598540127059703896591220376259204273299259791579449876916706730031545780274131184389688387812359158611772040413687677702771267366808240408992034485450381143129633003258649633252759059897696090116973447359369525928476841554600948190490299448898147007613666760628415853679943876384854251330691611472598054651722934009861551981684340166703034902523533983913781498577315056170399552017298455902987620820625149145245924757317724003718903324088372737018582409035670667142121991755982827032119106185255043271782279848220301283356838741934139238223137568083970552261241760398694402623428777280107684558757101487173392130026125242580141798921619330197870022619046352905851480562902726455294115382004479962798664834964067222706487150636476800643922219170578022342579470991875915527513336586903343395085743503245131243867293586074314158358345998889011307793904688923260171828331658439526984590909294401532985792472214917543276664372494529523519845455385523223850013570478065744878139611625020577734833630930991264511682100287972048195762856561548453366606212807657529493803368150783487608937120863825060750496732241033078521786567174298067408204357360981014660198166635511155235521900522580221309580106176317596622806558941683068561362998452406035942370295285602694147558875396920987758717946593571833345118387584240594639621649223515127609738504367992497660846588368951070864957294970975382840292059887771340101363429900595646216371965550597637853730553953195209143917484970173364943351449022941148789290410499001132727841339503987097603413619143355139934190177786587347447526425211195270927508717919857228185831080569351390525281901560145404333647910252802289881904193164636075508407917836856974430881979645082765682188412081959809241383702227735838863047774149633767512393518982756387011088188173453960577531328601272932222808159891706877246823878160932962514997859148771288538466547537728533437306478475414593120994023549631806958809116322370509865436485799436848004337969139284977559152512366918881374004922400149733935933699067006810267344257075971884522902224194794693019359824717100887926641497718209544944746767906044630836596729149445180957510108216626362256884710414607710779015987205331397273882326393881103298214901820434273830985225064778615340285582713771401271775694258624568172344730508467114524040905132671273391212336292496965953516022238108226500016480358814702267749539801617103372101581468163654261933821024315087197650145345424580219836301980241848166287736218533164867839848421059391798665556571758288900416548107412327781974821193455471458548495706434753140229671650992126535847287665710737930908993948509637927603953812864950479045142781698051150998860644836764622167484441815403198487709785206941702891503405097576271081892109638424655839882210218688462152488598535518638928768822626838499196218048561185713902864904353543385079182644298393228037805968434419129136954269755526932041817951294547375573459737700919079383277627013518174981562765350717401746504391294773672603921630965777591966714213421300690264342007427606310066037401432307436393311682350936555023429927851909946331779806696828081153083772150521973895687243826364550052202931101116465275463312418094187853668990159796231776918307707875627700683281601653902735958324737028375662310557180165058229382270061329440282964753809014488607248632735604431776320564492006290967450524838504830553352580264013364819631218165277792022743398183939100843842497612051006606397613917980131645259805751852206030054839820600228367793799962431046963772700151126454159775797031099169790489097931176642449655512098715378764858933142949168651694475170437828515743048719327145228755861762619456909510963011558465699170006353547360948396643664905460017911302957980447311200973072833217218329181792242474906653571483611935562756408396076729847036886661982779063864786926206492944891514723017068348486225313214951177134061159407207509636442974186382027625252246476883491550059780306928097810525331990428657146754320940026673127704181859491889009234521441503816789877757813698523608908853361936719067391569343258997819123696074481596369117789406298629727797452955847817215393625147556716836870223903794283246298572567799439492653835243513702126554727910522216969114625984502929400081768094349701439629781324757559276938211438022475467753047903676160841411722447137019982093046388435475414569103029547568449831219865159446463253710921735535650752949807939282767456396344137975794016675595013680968099645571605300400696731080711266967758834163952022571919761758385943996230499631619292219806108765864564246878504574940741097930350335357763376803503497143169710312468408167564880390872946791501756690194365169301817341931000928731576748390187601323734172841955786493644209381360832539194281573601644953947200114417884792744210661178684585187956594561572991864381547666902316819290324302636272330073264350869256209984720195935751624294952825812814871090386386643454793904493765087573182651770743548334704623153743430752365578160325188261124309113974225223357595876308196594718689708530427017935583704895349126658725470510613705961426848718481523454402215733993413073839158726454606157918486519686282484070052454296375602420295464694173610120572797178611059109997802860017472659574772750801749267012662009416024304400694019716014035935475581752206326526673386272560124794660963134200820296821485794566195556978452678649372007967519914588701780638932181172107603731664178814621363450819027849535378171424725381817488882465142765554274794922914582349717011814786947999151907840582628853123203036832899325047915190751451468554891538503932449755731417515329363417677934311517401873890429863661292263485719555161684466463941449820670026126343361723862333804009598337069411368571693580638091195332657150545089101595202124005714665411426634253325733206709770473676934429311241471393845131044849898263030343501091884245001781097836923856823071652880210956104429134713221202074778574109965609072896547419457379941784832437021463332531575725110799367314312034317503371610611845969462585609507870621568012995759689201684523672303874659464748810623600449661771758700369020452217775728854470398154304827043963381783647646630637443051380435400840582492943802224344343284031479990587687487775994889922385802080989545861729351759538242673740337796699872327363271519452658520252129178888310672420179136705077931324869396773003661855703811345794153913252177181560894926711690592031183080325427838762645674239344253589512556425192051203514288652666976877846912311323907917229829125990668020947264785237990620207982850648669380336650278509942451445923491757338948430636971262859556842631640609481626549597329762706641293224787097757849792433175258297784728789288078237967569479799649511728882848741317241482121625234823854101006784260892570288314775858693769347614386446495834879468202466516256866560889915719971513918997475251350382569946072061988863192065174632398980608862746112991761338516723437344627584604189912878784641836505328677079713874975473342445552105629091269524456473369144868175978193052484193529622445907275476428309949090007254421496185138260597485048208294164386155322447316324944614881017818369129034403200255226641126459343621658841527374367754004102218494663808626960124704497307359562596149531868274242662906759113599152400849631599591229790735025809602607156889759136963368040448482221671662596508867210818284005543145358948845385726782342646849403483039305250603596215664294809738458840796279873746938229748708144880258862412768172759014128708815975397696420402330487732017386518082613973620428966918176497232111961943220994397639976091022063970440044274352059170367811918682825712844315769097957720090634511945266721014262607541585003719706214833277800501412250728879993212662552758198351445393371230653286171094408609095523060054073882362909100367176001218356038012450118814178928417197290875983936930167501223259473970653941000540592698331869071213565111401902528424038824208034738168444395731127569808072386543074025811460782147214474106738345571239887055797003431135183300370120177554130390360888823980567625747617728056813242271161950747487466137889815514544890036939535047504418653372674111568790703205224921819847290855143986138866135471938342019609885234080864068349739751320025100318158839611867654616577623225856401333276654978740446760344044654904441480655752317047885591703086204790175887881020606766716393520295706373638645684703061981571581452232052713877660974293540865007343245238028485048182897343299268816617385468753183134787741868976327961534510243142151371398457433902411053706522689401527207032714793795522857956933946203926988237550208866717774108196153049316474261336328362140329295476677582406230745905450816680539841930562707434767338909988209111361859276962182774238901245353979944022289177176316635508866252778563849721379864545044838965552163955993168864030153929106569585477044077695361461175864600294265092256629436498212813124572493244914701296087174234164197737460045502738999290768903662706281964524567075017947932723248946542634851599821677905646242539257471743293500735972490708165864455951058087211868254132577244760762857275965121595254336455933420196976057548017590969418900865676114936587990986702602998249267315983953225999873294120386815096665154097273388241957609321294154218869592140221502626023898569464042171917070513567748229322045740531681615026880670235579273968561577920308829114087152227915807630086508870130497495200262490791033610425982265912764987514514936746768995719629511402988402532102010079404722887312676056939421261500161387415026940774421990890224680539672130311036069511400008976480208943048102643512411036577134470429732407917537691677955428465504042320825179638259450475292482176556597419011007007348761201871499712549754487860915412708537561793327895419453205593816679555462274362950565653917665619200026932251265651921475148663835330743326401062204361489239268103520207721946191275846845983013393138146232391493801648954869144686595178596800816864169134674780868588772515328018789112744523850802507258541043903607660650769936310785071421068925524118580747923650985168552370775745286939073345768252649434635418081393894529460387529015840632689051154664318640434790849609206914398383773875034604248894979608686209329061179403895565297626829187358229871262939776757926479782760904498052035419915319128463508898212593134328761789979358542278919132763175143136481509286142632931329841034162605872692060600801264348980109046333781994193193249118701765721982846814226801060969754383886108810247309765254045614639659414662608006728228155338770048953501200775747576371619477606917967452225734772253013292128525300693506699761940437923197770566140537042071065023980721999602632210327060611862762154475072262758117082029419184962134592979699668403904573769067895496316298225294549931809941167794059158345008076917005950493159290379711645430007185805153319799449290530824897509334884100258178949715224124740456720167292903924253399673620458884905300477325386291029581512329147186849584610602222846541860450742219852975405616343037482498560678205215609348350740660920826978314564071497160613534884597851171427703490942529673016344996502615713021110314172414766503641859422761197569290430715390769421016968986090242216186706076564848343467786539477019679479431934210756304797572832319321036285291959700476268083083258490332404095268675375519588128359919591631387952358738515145917044181302702542947453021905953457084586233087316508802325094041891481358742874641393665636514571281295252522076283355294057241001420914554082246953861139556987678745464611861169668157165512439651741684818713999334901353835754133839706683257443204448270692272582941825107571182184556001890415846817585179618215846569833761837316227860881368804111685045408926752764238459049597994482571073483333261759441576263915844839131782459382609540527559060754076777495138828932216731684991272529282789874732064300810705299975526190345387314117924447006439463415301188423235966809491289134350240869956917623176789401036060571306747644965500134790491219627575675357801584392616718294183792130128356325563217778001221634155760369172125163794087385713823704675541637384726210814788942769985732752858589509656468509165500850267195499749961614557375166616536518806776364461849859962429076082131347946271075578445644782060648958445406364772961154636208745719029045796302240441927268338629155195309320074419017748966704087291099159285109561551599536728444269113024175267735037702741341070117525894967789528637807717919903522628736393718594538090075004118014352948992303222228669718957725335829634130522283492228186817765961721963614701604268959165703004882685166633721092512790693159416502345698833015418663320350897670900614277281428131057168698676672465766382001980758242266023060638033790610793051027666393762910454759518477968785716269043575015985473497039863432513623672644776509746595478960574135616533974025414872601999485678836737240994650652131289893241868411472908829567651672098092244386781978930051878885091646210515033048057840817967558538173156639795113023623779963290960091420439722575167304554925519424531291892943432727587779622926006835671894154261045714486633679446126012703541543175924158711349075367590197107566380340361185542095804462560301220423640149949660644060983568781311876742299575754689329057183921563871375172411464485890574011459964034314717972604614079415147677363647150563511869728078944519593739429994746994185162832220852084359146579878686520394350260933161607271176942643576304169649795597648584566380675318272663674186329567276243847863475404299054271182848552531429269361815616357963257538173428593901981019302680474045302712509095547661021217237444082406462100748300596838750513418399969506259438416909960388725186214075515010237739601454215337519610273885261918700428797285559655737769253672107200819989700099260458738006982410667212856169580691250748442008364572401733473528270080120089975970199193634176464204806210011007609912881091785814275160458459939758586699379957864922674458408482871749314484619868867558652173440112347419376472137450043574770994799088609055541101833324000919814903736856850531732389097400452138546506365980795865013161481840210282329096657797445979420471696500335345192208807552595316753500026601602617080318681191749789874315920986444159422696332041569395033042078543660100117799220749054880709297276867082733492373107801655439543627683677621273794845843514020079256658132700778956201409821498253586155909836052280216520868915326857529512396514583378386786616316462954102629438878582834267246176648353791387777781887346340506683561608962309895887717107640682478679526599634933227293312299007591997739741794915235676625710387448020496452539541778275315603955508737345844345947048518920278040550029397654810725135077772850075270755080849779336134032610633659154513353331440552810781551792438629620975442551718221490037694600126159707896288581490733001140157479339809207341513017385187657496036341273564131887153852222623943193551048928251075862868013483099478249253216517560399824805164069608177377018650726393572289514672743115491743566551178873947394868946525183764869973146595249660050607557008542482802942531148575121250970598642775669857573955604904457271656643877156389695537592988794723444205730311890000195446470156062189511826002465144708984040492693617490725821885173329188825636611170444113930437446445389885698092387078000829481953834152502850030433831039892698562249498348117754832317311912010341483225315889294204259115797735667200535192355759131928680932163318039152427803510788327728673170143379488027534076211085184465122680413417072148095846071322386367729463211331116115308784224568082574635299090528068780196419362148271658570582943572879337017611777677355920723177876600330212147421788741203333371948552006682381065907678880505591531782547487858225995064547911935757181052669467078897937001524104194473935301184213200310771518302100273983859135976905587523508100801172868746569274309997644402517307509681400643061050477085597741586686872910339809702467971240889993584447981380479239126543351986957763177363473692207201792135096181235550527603380459163281731370053570267705086365044373419750331860760334124857598174603975905466133500950496037508530340838086049102968231465889210336846942505864961619141317528341582289173894443962498482044889245920086823573517623026176446946159009522375316096039083222741242766392283253197961990239838951696932313733544096917310463575635545693278034218146110391019507693640655295513750840997891669616607351317145511557913414327002228219579066255879078722616338068401127427226136151898181899559974231137176395816123840194371823658873319323539684069888861788847588421558828380979924160011536177648568576110726388566344562487617680654386555659820513528920708590996882739031580552327794602352835537142332175155538766754423070088367034719777315816063700663526928431012070922256017168443295529359160936555320529289206255533226661367238079052376416878383682368707056096918519070430267140428773989405764402256568684223631426609672925754951331409234847823429071718074832006515235854991620968889128677707845567051456175408013184672479466474231629509837156529968164280501504343480920729723427750805334813656620624817588281362347579473219665476630851008375847159543426486695470181366924624038102288267547188182758648181211633940458673256757122285981287861980028063428075029041712302597325714769872438248776702946568570237108553046130184464242148695248166158275202962368535580042261590132645344957434237853977953719056374090497697700871170442332762767799468104557582200191105575377825553327193455686856322254440286591292632113513845066955854533152404856206430857874613029741832483091501546563596387708202060552728942373693585909085183840932674756813906070417398573515960621561107829571372134497632899407308683404575212288945264641590735807663149853124389353558391081800587115438578582265364894541773102774313898728798562411292970429215697433206491345310262547007397022002232992016097672501279059925980174065356107532836561379558505733559389240930268486302898623469142862667339463777542192266200517002826498748832850890325263487062369654346569600467369769358763439977445359948700958548783565311425517472046895606104161718448975700885588517778775309200637191750146817245021521436722638249753190429840198588903134591396755791421635767208108137008534197018194939654799128985585871098544565632468555034941888202966931384690508380100883310517688397440868323854734544971374389743026260645724999817209517345847197992242907083687370112998450609936568380773933422867108599708689313177393343199238399968824616240632998389103230901585615723246894349482898563072728470376840676371320051113592217541902267057683748550295372972557769462999274889166555138813519756394891616745258948659500189538900140305708976857873590150664579998391773892708187415646105511460623153286156992885255510704438472860567137616971191786100689078417427159829437445103637930554600078425995206615015827953463848492000246613990521827807284518419642534901285811082410999722400817751486049997485011567790136022679807677676906317050867512897465321922840627172333014064788029486332104727838601895047005598807294810401369667668399432329192027650291285073085403593930008329017756526766246139375884104617861544727520121276681412684829301455157010633480429937228650736225140262524382539059588932502531929993310506259836789461297242775974295262358507765116852657484347524914743390816786741600048940982880945120336364371575826861994588207852950565181055172195921238994292252483598917316001460297939884757075943066740902659006412462156498846058060104358859653575717633154169432046995037335550198281446693367739308973071167485416481073712143605067133189441592821521911036839478604036201735177369969311381100850581647027314674282775106900313058220376813847203953688449681420993924555644661516438402895727655702126613774583687030346425273716330982837620478704818393666006919057529997797381712943136419178005327585734064410776186625076892670629734938892359975816667824009977260994462646012995936757496891200291581488681658882102503766286197995540303252386519139528634903539403165375777185920951089460294049477359603538188996503596505178807564950255570738139233658940201214941951606590891828464517935797556937503068365341324633445865276565063899970791983144270803261881826595194797906057774076056787419414883313893672325854777161397532447081441551956563593148864739208683984690613108985020582765987997160259178286083731132828293654219071891711459910480422592889063596963167952970959745893551378603198953906797303432739024626499731729458389336213353013698111832372868613640500747098879458507298177357332052204245569576492299059846057519839692671436767706410055383835519976553467481680288611514249796837290591229140116745231471133593985029484469544851209095494265878827167869892113516292622888771382845669416767376602035999251036378270180604358830905388991425029500342215458356897153983639392735229720824239798116921922937392453228869091204156487511814937449703968515984532106818239976837038573885874573573477541354596604696506247638022707342186703912867751116060704274275070897439550626249535170408499558491087478009723835045067532780786884652469639501349289105075229774894116098819614497820252331778283264518647372597676687449335970038026228738256872367669219925081716320736374803671894438055096654683951627446437042262292895889545983085342113022835182339002250635411336117690920299722470607258656454828053614283620526368649416734061891263665336492250000557209632441880409963297742812273729022312672035056166625325295074912840644645052180575337600096864624554034518119133434780210741111301222386373975621532581071114777388381022838625675041401947260088810841369158937018740979466801714525765055986144238181221076069982975081314557227793649501937538680117594870422335715523638653238217290202655282676401942397504074192232469219287245899011417119072433020984500340773341002801453238819978024915664786838447537382193576871380426092855462607484802377967674068038801177405998887968115685050587131711218115279068676644439546995813167009132962654337609387048547129438131681378237538072421930420031110668940852271884085024498216999596232725211492573559330127895473986882271920844163348490167155823986344252835608474124612154178775306507244323135164011400837560495677375316396930240978302217420214102764975955061848782248035882874969176768293783397465558733558771808622331290897561513211142485500008821310352888435079305069056818844712874435098134444534819210339309542047891423118515740293154749918720108620099461745541305480595506072306889415529771953977612827884934891919499957755749287262476467589867873801912451870846773403007960298465587353076528764465325075242756975247940855152601122884979433139432480450852593569824055327045667828521115995163747601591569465645567091213273951278076305333567439495618126443842179876511018206848685853900040167261159981553538736540479239924049596569236005727021599069633858764920332632215379681837282403783807355489044613969792359206120904510637792161399918706047575815047042891537746088844982465825975314767373986717245858790361157636596995906378250514348209128996757521457580721070477011915162936490071084477057955898495992660257771829139398206305531276013669329307503180402621757692901746642226286411824987606629740062459515344406983358553984324056457237602689573843500817514212378701096444124855818034543448482331640293767919242596471078106201456066527571450794881582035697796160227316480647885081545769739024641244279416919732232931845826758501683536978844899394421525303505143187394526154571283214461269649221128367226443657937746392791467976133406218081445620928592464209431236469970815619056635487627374302927305781222104756209442822469135775676917007047108503340701861601065989968358730974380364396642617073032009962330891157634693062433538097493726365628959643853722471532381094728867434399650236062075038711674345224083162037867485137241393026064476627772028530711354764714211900376929626980701185957698580173005682164525124155021204704333967387498194275862840923665916317427026370242094457563446017661605322144402369331326461732004869255617362282785165092865345187781240554191898132674033001882527931595720759400024567752820143150662468397053832254690113004297912065819523000793075291041123546927097083638704451698319884963642453173869169028356543659177740102085756410112352452471664670838054513893115822271242290622330466940342548449168436108943117100592038918800993644247685829607284371225625514916351176008615766734061627592821750894513679545472333309451478249421887709863866669101986844813571874061415609685185350271091105078895774656949316499232688061104084335311851171615230648449617248507138316022871308075520479214705957432339982421283869004847957641520925315265473327351976469955367850406611661666872884139088998494761865628646971988889723888204989698929312679406916236184916964330647776769457997396142449133071500873993230571800595681258133666291907484958140189716995704081462993586334849712642942652098016844880995063172809742560628829070987283284540566436511783022028743640956730915597454059172315516986095101136706342506102958790847032204109228481488494606213000135968273789541246650232687771798377114748649252823416656414053588669494776775071946441073088178461542395731609349130184258817357630016153333701739902065871715716326998804665749010387442987521026034884077524851510236946708533830360336454295300476063424111300203060937233498482731261307418871275247713048187733096670160822464711576790261644832838901401341268400696247204872285920427218894640902120840379584701689466617635167043730702077253747781946909376954292535590173360421228555268794880271577524822463066656668586227071827834241360936104356865707915054406441939359369264873466346731303407221117356828176143693058228564017907745158276400225676401914687820299232445741205865074235460937802135111944632007006194643075477728764457191806563143031618823443315656781601711264045392574306227519000454996497593419497671507426142772676172975661169555012548173289965907171429805901127275162941058242854836450490709521882613392623925521200010859410472422698951525233707629961986292749831637790548618873108196865354746983280780342394154747969911740578795628912989595129991480946303022268009322122544281672246655310157814607674372822669784579478210544188513203355377651489549057288898498755464790635459256521308515684716486317103889586233674994711986905044300039237241469128596826899764573807046080463816813926179395753882373867487628556444760657738379133543485851591473266511548314003344760982563345835892160587512594940545522416628308262367034629930366442912635468820882504982501078148946284830288571596513967476220214369056563575561604757494156552819428820998105898217931950533871279490610305545205977265756006840442728785789412792061407862997851592621909857198553344651111313882335488223424355271304611490560281599948908022718799270466504298531269073971242915905014834624692219750283979467939351342610488971165032878103995648625987332380445429188746493173985084282540900903408640429304111776864363176980570046622416909840530617157050454983124549187540314614808844495446194799250605580980375080602178522986430695499078293352907412998924872035123592459016142331701357124306289865287117172207272137549114895793498715963926903514052235922323943670317475264544757978456072625843377373758802990288082770457137942007938647241034381983641329910337213667198417708648496564238530243697641429538181565266710350021865518856234710751327407020904958928556664433826574181243100709477542611043851759947702119275420268119586565823482952813536927233557588698150112462371832903767819856819019746961962859380461744007428891980587332349414401815912018170577988422085214597867602189416973929596949510833903539916842299698243052131333479799184139268649500493933242737994755840382250731215342362106190466891656191828838072233940671733364523254932052938900064661419720265943731562879185279825551333761146414829129099070722868737581672509876888578921764026610500278292507593537568389017073519945639416953478943236453631024451319450767021241199453232381501927892780472376952899213007035932005239042321851591191710846023274026577531953074479285477653003593775196721859893848350294485598206514187040337969684329908370537728896003726510141816626402686114975443687109070606899290091306134500051460364836085107129681045472097644611789894425724524384841443241959676404946255421813382480382858265253967710727227502858325327196688510226597969232085136167326361664634070968847731789761564800328401467121103648981030493501484766095722591247685070907098662544752753632695353703731328075851768600590300057935061287626118579279919945973884503002781987080877695134950350208510225707784897529948378223615119901717377924454642421125789430539719942698197949961402989496955445552043254892749825903082658207190273306867218269501587653195461747475064266537769970408213387143635043128447648446773895365976840861397271133682467189307964067318302716269812188982377621432168088934446154277941196587218008678932040126187608779055404395429388915646679932769130717699924370883164632378584185446177790946753921758685977646638596320601340865587999051967125864081600882330417407271170107287754947130310433870189664574434334802565416455890202659012050337067174248351586407687587826468389596725996086713341654171579290061840184479856064335143651220490981265512621446685149649476987425105628489050470382766110836142125443755622730259347870903367680204186887745444804181976711238501003591892371291963052386139665520928001047510102113349560046048717296648392459630629438298111210351953498135171518472995699998225750112503950786519020551929040105425747270761834032307232776775245857023493207244869617053144527202559574985085629110802424091224203749676756711379683210368235618862997756292017453870234273584318932833676415282393884680599911501321982825752229198743581525395748622801420201062286822487914543877326834743771468012029705481844856907404481712617610578338347772129339762830707070652542887485026699709345028139374517431825228261824974371601279920337831964287021423988972419833204298798769026616074479578700260728445823030117588975483039912071905082093088078623885106213389666114015859717040095879855076571241377825452364227509500206702195388278995031173891218147983576497478918106304054585982315827825048367506098429732903592211855847816718726859948349352491275267215569004332913642430254299581091318247975868236123346684410286918805984377697204776262468516412162179589894543486049904180185398443759384111801567671958779088087148721545772314363931287731291069985137014761569981203849576399022060413560508908707718197701488754741763884538500094991438307244515621569328201454199545572923498411394220826225185988226440969780686766832687653546796987121780262710776516682510563546491134178713533649002395895644188141376167260342512129591542611923959665614195243183005153191159054180779767794422915454442648713395926713113928165522835244474427317084591152816946662232644574920288850258710908097213705489483872106422204388787645468847678042678895722381648765311104980761202473521828984925462261929676219709623442171420556164385785114292694955302027061873596505779038688778806858303252816325842394884915738882956008379284306199699278368109111548786562009253494375932687193680016728806590697605116239702076375680979611689740955634449558338926054511512451916068617153674360758145109997670014056114647655447524718226687813721753985428312486159102395938600013171297688982337290479544087209294620034011616185173160244716774785877233984392454363595520406422580067732333648969284405718305443477846727675344596774636368011777360757200712828937793663466274789370277889620998146264806794072477426064952151823958252475505886997800186771063992912695437406221973576942046795363023993153062197835775343743616468182534740817357192807157237355908840493460739861976223041423416638972879717783518981113767243252914760509164068411766129616877488524918041364544183590228262113299053084855969455268842896523685903660843243146434837039576195113296020769819620537973734296658387625031025615544062878058170816624189043071665769822544149318668176224798750682780113056772853626024938777633723903169186675692152439248512781304998340243283171783651247951895333091768225404689080499878379262065621204355903236203115258321815487245375935978795747939898107538561435829583457780047901561726081284214434686096724817850573141507805318191736638129028897645497124170390901208734165274695680124847534753560352492619483401979765007596604547757787356115296405538716079004812477833538384887242837307378474238051645936264601230139320482936896583223308081290066780224381567029122003093328818455517333131915167260327200054453348317168863835185804834281622807375436096956221363985488700927769099067302224225796848484311805373648397652775212644517831252473792886533011810420959572025318445210609969365256412925801693196322346283366049234150284935848905817579483024269530661236250515220882156669116243674144722797226931658672445476778354882003840726524256440764382265633123523832408525940342189682964740810980797686330857672918294690808642543654600969673309468271419952100394533923643379033954244900002640921189455419275473461928131386634383719475754237946239044182199904239047042408237997197050008992965331052846596432355169649210482399516809187057392018992715660437698886768053508206521043605665109620890315474985787247494899427512631078663479838950404173451862123962104621643541094181742850639371994227849486211787015776314982482952950205549255849343898778895815986079884378850460133393594455032764824046537821533811776824431371412122583533080681149886080117854141192006995579530845689846917510220054936009985516351956742216602624991771367793802497665939079370389511830749818984878946274565748682832895205877549976785170942237882790224156434943694756433496980887872849770578470875806631560262569001617726214373638227853271600149298341910421357622549149914009736464121643370449749338223707941627009798171174214156879956171712084348053237074268748327597535041054079318441981605430809761388993372297391625909543370188675688915316591416211972336559083432446402268847097742078292587938708804299329322755277124922543984261061539927790175697253272588157169198770899264121132165257989607488029754346637781612838997228773807176336473281570148109393774961804987928839476924382728878743574115049108688335009372414747029773219290768150329952607262679143155834879993170737670508784911883716435608009010597830848579445037276938287283361489122541845581750861275783692225061663975356105958336978155226157386873844981841622691927582654290808983505136460434352208757292806166404679791854827910833113225161690005353542447723299950210832875855406547272427544773135620723293213776082380472680852105978015278522210863426355322856467949344590691827358313423083875140739598304487099418208538593508427254369166008690042792861831882160395701754611688458104173561275676554497081972810685791621224275050540722357972807024336991644643762638695766937396620860220106023606323006907551665488963229752849470717403247718307907599449172080909247675574146037543220431026209735056878706013406167249279480458726168834013206896891153783146415051852619000048172778372300779814008150430157491601123729339255972024486924590727542365245466892216717309968841554072510870525954185111447319322120704352087780107055511924743823019729732189833712039280723656267472558675544101133200271052255598255447708950771770805065493438944283068776258501997870878360426262517104028171368900951671798943675782990580395528405581942529019901289296703892298655751904544296421382942313839102089685515305047052208069040015568558452426452265761491928229954121938721788936908775089669425419922587251011057263079556832738633386361585154990174339556563530426377769268019579732009322580733122733762838719390864085987879168645087740092527021191607001496588310147706942208716504306325166986727029488645793271788775978965361477808022430680549970598597122029971279169496400283470245924585087143960694818088527256456984797927797088267379587105422429701503510722317344257721924306502108711858108645423147076513783287232831743704824513317607175975011324835923457362474153866760014390201325283445276154841529517924391792825877201232790287589019936822114327727880858610198210334149233875033318992505115441045730106713577164992190438070427894552671309735480379445933524812594866316395287944405028512566359724240058957030537694552867029566528244963024105451647663773407473112351240548998332820877706189904943050668184689643084135281748077606748665190216456848476576443444736356469908987400310742881170724737209967622881578534495268022974297737900689081755178215499991867937117057755348231564042960134375121084139276523040243287924029322255882110393671669354606280127810213305812643779940730780606884170044957315706002720453592113021119282142384694939895815716154637078670382075647235630748031444276671888950599534994550641344528869962468235506715691916920644597885424817358977598832080464126681909773109063802091013176234836805738148313582559262991577966060997793503582275066620654550439915814934123337636049821790900460104293678390927258071602036972803894715641348377493005555885066940743746796603430103443811940568317029438205534984082192302684956846853925811890879217135528576330788516191536539630761099027097325655027162320719478041464675971180657743630929136088893518569854016483196918984492071549091604513369808088730145790971589145744657452236414448931380808598958141934504509671962912763399391339730350084874942752317243485427375335859200134006088145901978801926955216871617824420693096382262806245692716328150364726181993523177837668538288551127172894342467156438960509363238048641258169720176357771144104181693769658467541297985920115248755490552016604965263216446530207981408508788130474711238065087029314723419191856520095962918195109418001110475894398169771015357893079504515750424156861075815301450134329608371654964772659242668715452166066881541672291364987808791138755794298583767329382783116477898122194829495427376964328225631200972825511176661483810686555418472394668227694117284445693097330028505001737201801344918902844453689000586112562691551776166576405277883828662508764658804837705907212620273819199408883389367635722149348248236796119190567040027563359198396561021612580619225867010412254404513643686993047609912147824048540760456913644298232802844946189032971962075680406189748107088889424214909887299011910799703126979162279284307863104270380535710875400411729308481573541995197797954887556696660178424753400381273514433186420814368413685040935364301321768461514584009601727962438742308214668880977689092848785754557658369577519417541762776809634491119304532553108193336236215905192840266157333211433043485965832146336431027074329845311107305009771170944025409092183815694556998816294381907325814070354532938928438043531634863115971116070967253941633895195777804814892200024911656728685416899633531237582900487645501634465630608192950384189051451724116481874017269649471232847092516390775575922844741017497357263208954875536804683039303530840094766276076369003831813300503476719094294883147837877694363407400787375023112374244683735366681744787348947715497314858806678819130472828231370108181540659422467000104014718637754097514026771777086216695725993450698562082691207355806157215007471373574640285245080309806133870640285674912974928518736745231126697778722066367618889226184000420530614949218792890468530968956388072472252796404606016436591648315519373493771233169596777408196276666516118248460722577730453121484827800773765397009147717215142191707660157210948011867787126272828970925525278564948319837752861552351421161779216544520151429648543020113285159000615858035397054739226840372962542307703805248108754066411753525347649285983329400986770473758391481729899076948071540798247178706420379382072587721473733189972418686773114855340922982885320409245652653810165597404774058952551032183437033752067990528019651085345517759756262972202735203747268423537742308193015925186125862005878473708178499486298916527296091379732968536260076977825552648870897414659407288582199437815059263689284611508312072783676099692248891559014222766627132716294418864409817817657102783113209219854058457923685992721421843082077801059214232573420893225628831987982053620580430217520610458778103468527614989147998289847164198819638670539734729976962508286584253149553319389988726371583544671650270594118893857568382226376942534099069828078482099387999566527799348104114938139909469676033851560114433669720777385185543162464643768294917299426506370100288414065774706962892586584392482059701996161354352508163560637192663703108435272477037660971439476103548317046206704427331642545380638066084921262071207985846776540459208086674805890238386420630364426679258106260337094829889343152141052088542730141456230304381704683371444164537041472133112653834462220777686137146796371308865888405042797427876969013491889199008024491998385178777847397366876938830675450609442026350851394473634268304846800786734525761430798644635198009508516953019731689488083486990843647311685389847555625419119239912868950723439450231900009198639148351743233335226444816143823732931663540517174854803582090974284849185026898071595529458534015703252574601626356679795085391167051265509651657628004001744663227035454128223967496075112195117505003979347081245214139442291641789306970254261111805042399042905751766188488311081826484225761104771698143529110633033260525442755744322089151736754605761566999448901505056743773973720808717256950613459781264045391029098119608066937312213626052720078726477179065035109254159063072675417458321813250356450713992251792297863322836451206046537014440148687027140573018849060880831798943595223293944227102543141498795642783848102282263220401895689212444424018352466114618762197734855842603444403324134236988945648719012327005282465322053578271496001229731993110730108153334290234403591175658862997867830675366571033884018445684488211862084838613127314917536438476147674526158169126739608518950021350696330657963460288311571859763192643793012878784696746858050686278842997150240204026983162078263768874956102990043492052624290517668329748710918265047380731427299291537588491548660104377800820626342248651530144636717374967506154794092517291752888515056191200076980457912654728204936137380763793099642052135990238416323255897863673337926228349939417273054579374081448213778475039405314707961711172670752719124405230504047782849292734644863810784043456720655196291764642555003683560600183856896610039013137247141627419832891919217572092594796587677155325867299453469499377502638583854341169878776630189593318733863402502041912713510566781386117168763220010266170653486668373568169577204493060851635441210310114211218011442693695863745920734018921896948651985814888549013459768869994637187994455755842668462541515717625766826693846179902429831349248372974106120308396407509353954343365364585799089449297313048146670842201662993840020393171514441260033061582851655945478290657308282356027188737041538505376031173228844147280459434472684637430307221469176585435639938939527938291350927586081564099580329705748932291243534278393264088991432715737168622090099129234119825366919360818672396138992544919745579664151782667263240603559197499582624197027346539864232377360857407102426009218995424078185351849592316651067825406111228938820708851192890267011269460057148492704848418229882100022206149285092269843285726839065972618618010384432188732742386616666232714791764821141053346028489996796890414201751528131944665839345615533010096267972466248696015680813467508465417767611669038768676092427449846435036487416449887083592993121617667678021205904238243230688408087884786779399690420909762294406879630405258507349218304132515233572280636113805158613847926289101595162692386220661945783524503773223846180185693061888341098689024945943061520431946388348495244698110754151602904799881196167922630128611845035614051838118275346998020160439421108400883823718058508900828509939200300130926490181435300876254800622988034587437914048462894112892109701216863643271641517209140300980484825847462468304888769833298859238771592455347167291740093999319775595212117682132046524222545761786138851372639193875178480253934373563484711667847266777853794998971713916405270011968444250074001871172080555510950927741024988857595487298046709207806136823127601772060371829550703033024664055358376595076552688646344790720659484823404495347413733029990867976141641249609457888371373819351484504565300134786193336580429662568495569207448995224629834652913197964413028951110562716858791359970822794663410180786329626204541718405498008056644381845140517462876601784650293807586461758809549348423343683126571807136315909168904393694836155674883499635678137365953848931928067713523512051721996009260546302509904901875686973220232407343224203081826581214367586363734782733289208041840926659847562531596999589251060271576145503087570703872060313160234755738236174194174440741804413788855793468637372882036410703115666111634504866670994936090132369312156180835350921868129577559774106204995530274394211510723801958004696796874835407475035358467060740294283723680202131320007970841714143425081647290143154558799131444165891099379728627115657879264831798684913148041643164046015026162172948235789918702464339655975735149443261926013017919409549542315608988200279713229847217575514439009074206526141015434801774145658305850770018746766949681190959087670141758465267157128851909555927427617763691964759209124073536402955035933631825145952058519135047845381504374563273502033365943358054489084725882755504901789898029341089820663291784266139836980816223469972436004501200961243127043313719863412559491294601259345600287428565014759442523992851972197030226204532985133569469313337671225034970253129110930583268710830393752498692513829315795315016739855899374731652885706315496469669202985084042902375256773868103959681481906470410519490587149016913898784100629376760720386763072764116425385185284937665623683500522181969194115540572751709453855281673618204322547304147693828334777797778709322027830334644432646441957135875421857760469403646877140592324896379241945569452831273697888031360477735558214949480448035086960917632223280977063709202864492358911442650595054445480367657318295093615060378801289169525994246626337647832026470696928303051795063376189946070217658501145446949358556869987263585660836186066305429135785902243962018461585399548636860202517614196322652327729092805212115700285371124815182595151638350633527079958921738423993023453816861411482780242640653983996793051074737168589105476297246457203697658912992781074417142077128017855946291782086251414187522465654578561688560519818571908439633164761354526075457139485948300615325918811382461156738019673461920109839868824477136884626681471792471331148573591079376702665786254260843997189199493330822747740610965784238612122595484416337210074548948985779753876380432563909200119897305740725864289800889807690126501779345722739619154448803551711579143598107286528138977788980489134739390189064790881685333147081959280748634993587478068076023520218560177912591303650701517969432717509904914611176117327649352364254925247650825078678362285683728720415156173318601864324619441150354199274318521825934178592832068840820866593889112066863097618085043856047145696598465007550198236558980999138003550030310875817281760725276954843931069358574577133722958580126409088624603934384657234701746480869067798228547566562223717130449657569895612195076424872412396174981431467967608320251191433528252738781988325589830416570683048739530073670030064017886628250066145913261338363937150304855556431464858458963934837453549905157545454151104856733692614628706286227511777718228369023406426980671609069969393233846679477247998563215617133907418004900946872473856992138496039614065474770646460109791981973426881869744533499211344896572664564480483592521988337326582105333072816428088029225703212323469876343441816325763096651630403634834562621186362623586626306206418616805809224358563515286251572329452130313841887429532510763482896437110929605758972547813874926565552401036375611996630105318987621856757187191243787034458899791486616134305388636522217913827643945170752748089551343813087117199232416275676670367452978308753566715936411180333077144534961957946754367517014296693339677413299009236457074740816316528897561629942485227172036052305581097276044083140539056984677606426318324978860936163626308163862743642232769649563413377636372084713526272610632450451773039540758045504519858842654870504473399140932852744962797546445668993849891083542620558844323618540573781443497651468154856145510122170274286587972441284442449024839267839269325719331473664854579540030266612856041994765443803294389200564493010409374456158647834955053421945925991176301587551557155752302345772678100610891673380490121466523304060814899512503976413934025016000404522342588721120548304770913071621084655402212456838668796024257762742308950881113615802453866882412972086747869009491425218459099985772231568118402604161984821296697205289889876838301883875893366973549427306993794031734444869425405311167426801603416152552412603858711474027295521725243358981966569723150015992218732093736542316657784980043356738587539288824280421544563457216918786997645546296453627490188775485136517892651464723723900859537308230207555722133986672684066869485490312581612092448315196586400390746971489382938631633296484553988040301655657843665110840037575660335946029523859296934874618260356359772365691262047156513571261374861512493120178334678701279760998652447347358645637273850993274399808892857562383505498690867968338116569584293799809300546670974445777929811379863719556935580921591731602408429909803354727944423013725562523628562832029804003399687812486119908485156074622735416104719918485154046071953090585469013443424257497611767622039623782532283189199624249410826558128147481165807816729893863012857713486542962703334572990759211580535048365509484154100318263715689146854889719782101672962535421364299045937826784196306539769904688128279100737417372649685496290360963491091179254329613728053512386260864585721568908694425310918797259138846626779171704989347425265603667746083597854406128697406952658476265452677155144576665833337115798420517846651446213380171664559512644519932051178757656922765077077775404371329329429680759956300054655737413986891095824714603163196366471004401892322601248852970701942195806391576593164929025419600893060644650123549092678965069424652998674600059665140865970358586415421541024738764919561386009353157704303598430822227769762428554339941370998143947767251100829260408733152234975347815594386193923084193783296617374098035062996157689134249500209736192554351486787201200661525650854334691647052013123071847266519492730887041467513733285675713198888272114952789703316589586761936669659236088365185417173754381326535515915502272824167970262342195499886319658347430203552001058869716554848855166628354148855976284467700866169867590755136863400202331542967635401459976556473846272981251373184150211275512705466191194563806838277380939601629280027835216109102658052632814818135212685929972646511838969070148170975300785098575218533119049205110182156459069800028368759133475864585666406671937307034755138465513418766278747174990382394319769350032050553186907114911184313740908562103502136303138255108194528436936560460418081273521476589881951551590271455750917423306764788813388772788675975097218837593011084675528498058954404816322207151541745830661913712892856584167966068396182799358229075922210584770406298775326275044219692474183722111971041302899429976624763136425898847789860101519815516734278032382142857657311643416513902279397467462358109318751604846108265893657882694718537837360373353368895546461539119341451575433843181157291944121668424992222494495574877129859252600960550093738149546034499500471105189513266728076116693925697429106138356149906338097457768668683254662468956804659992096843361437057976631806968600510167000881093464925531037033514919464424214801359427557952462506324953087741921375084152214169479139352838643410273260285734135525478923828048324466084826627952988411555643767164780206366961519753510847314337560708496894706240096955652449173578724103564791059595077808469989097646171629900640951774370394483490227071854973842699544177637707658706433168330155876120500855837191165122312283824850986117638081297056252286104985859541925866816947800122723449406137486396279118791631633368480139449698886780331415483771431719726921351095002475869149630043646465019324964541366988859736284734134798939289214795969953465775806738963718071300130717218454772859593927115667665320254748163701528055567125778239371891085414633396908718889063198903434778810196042195532423427789124064303572718367247147325011876714186823193367195712370585742288634814282276592863695057095116157336851577782374763577367713356553034422856203796617346932737609080793967752712174737747468904275949359662160425228230667985262416486012678506743107159638532405088716999938531444958326035801066997095524793011085289849280876220350507475601627798155669256425455340780559775498345317262218799339375772425898424793097134567231547938129627558299284633691880628969015133104993756019475091416766619008776066798449015053685579740685387177991313739141864797611975194916550699997462012300388056931130801095900904060913031599711492981450319397332658047005078044561762382961520577293705911959447004481974643198988584107891600865120428928626148022994944175676101313544998371158947163729392369878751061236862513046213337653202796011758585407941879695781519732539559726418090590717420352327743042631145174430461544889540982241296740728632180048626108159856473378103300870813503573728340520254688907855513282288076636788046418165584587030677169630786255223708892992141718125218955119835108284196838370939038619424236244695336419999667882148222716487081270341727251880135406595794886166335109123927357303444289617454269318302104676284366414574151272208696096372735133690685312163320618461581708419366496527415269162778244483999374589066921095903060965911742422125884045471991028705857224184692349839778904743713200557715693252246960261222369141863251733514540450826063180880745862633284981913536208305576811357185911495312122357591662561525210231979038485958370955261462825856536815737002683988338794908972198302022559411156585323621755230816385656693580194601727811369381272345516398067574218806772718298008882591869378088254611254535517450129264655713536712224014062576268460579179077161230117318836664395287826327748771491416088587524417767289234507746489802234416196351253438154123080583584063939447161058425021856320279579705983153881861332366622808988257448063767887741841150819334621531777159545736332534123494399886626222829477030656312571272666526863623385349824936582915243751497013570096667973186318991379468561585598607787687083264985458673003842767547776830858078303562553843995838955009867205196902275796600019252901577789488416358510730825882103755796174498504173868641607220700804425754175142070392545537590305831084437327832007224585057847138722744924168881571618524575096991397500816641771834779636005166375562925367735013112531168218816710243213489012158187876363146324848851360984507184702170802080606397136134959272961075714856115504802486315887436012135223273868211004753189267082488527021723781323405005460333810549837201936352171498266070150746984579326346073797525504871884375633706676970716964894530950448119879615605705944768341312333014737063027886309925284157393212452960508293927229696060442219041306405800608222135081974798849294328443445301518138550796305363060831518237971418256295759375100130384431140369648140225650594369984097509259294583958899337729963236036678684637666929179346484902919149808913851249692772061509945889051903274261533350248631653394966686543237335937955604841470389783789638942499531775898933241763032873972261877783554792338845056982146451611910600959383142625119924875243857629535797584692386979984471949209929597834145101975116331868292244974654209629537333406198294989213070046697905496977943056962723985712510062161129043512840656680443159988197120866049261157430674758977134634478063057725292535096983755721592394663730144609467369376794173122543431766869301032212533446938242283544120054167211683999381584069696885954102269353873972209493742098218138947233734023287862815966790853521823035573690486822446876304031067379841790297376177542286350895333359512952736312529942543389936860690418901675378910874780422654932360109126782260555936373240461812582932872600506087189282429629826802385523922003069759852521059110623956319894702343797736784635933529815336388423853169582588812705432315804257078466596410845518485875186246435317329022996142774079071143373454775968867185568404706901438366828316471908189398732936719219618645971237765886906158888586358813907970470186562263908772705348810408100863744514695465444189518846754606311486745502161429347324442460996576240740647068331335943054319812163472130929894779260662051246702154984787311959235110238148954064392742410044139050244204837176424856391368817800435997451511117762776821307926756816896209394977948881378779373467435255860565446564979641311303498799751267663139288903394885604108054994746212533479805100601139937118134272366739892685958730715205509564734844559786090686929219747749993539003044672356645156826411071100680421007315340910777698882041344152608669684279121034643953823944645622126312364335531838157091866269657621115628335141394122197152792492643448003007506029163484059302332446855007589144999876001653203321529186156109789927984411099135372723310519760667978995211823106542535186962040714506896552052949328649619796528414832495751594422850316534849635919765147437233379466754247026339788259739687723971438427311866579370579004076149719225788769020557363667104039518927129077359486518256111656424592555382021901427811688817983120817309538424369342939551225853603583569379716163992588179116474564595279269714215432285993139170832719490053536220038665344879872096042818248545154138539455949882829874353776206321538420854369693427105578610226618351228681490180988582771186955423900377951895143111643904038475286875083909846719734782161804478821390580781053272468833680008169300366218912982515398380704397854435822055408022325691153096978580941010818929063134392906331879750309277099320053811588260846421044573198614041463359850478825818770003361424436243647567718075454046243272942447116885751445872724973870063632006589976491479640137251029197657204662794176155068213977000948699757133336293278846433092284118744641145581136742552410894564464483365314189069619580267218748850290949440462917526258607852549694582808890215789988256408241867949513588056260398425422264400296372095911030467385686964498980864453486558590873320209691959799865227718522067596443357734021801068061039586320921726540205816703734326761299725722721432966337282246581101903463357975562483787829343609254206537011236012584313014442955558306147053368711761805664043401699580829021834068765266836160554066573377009816934914193165730210931756622286002725321868247702930052415501624602399684981218243102588995479144330076335086920771044069280435973884085443217294245895201435613224923870987697004285489882283657403729651867547405394748216136898903626003230431491200504134361391364955611498340339151130146584814351049824999264992264395862333225504051256294465081282088856324929350736737320967366485135863358914603428835828765866390617198030299818926194157267649893216295586677090554333806758723997419633004171523869805215442793475144151246006603811999319439270047306244644921116212881372758214791546651476530910158742272913543613849181071944061255802050503938441422723488492267387794534853718337309531949228892447132464449617939489568412722065417438661459550531826541805667166522729247276814384557355304278463725509313729033923221093101158349703914078120121218180197079432954145339870889568265980433257612113558340998019115824665222349005730924116426922342243081780076299844166344199253977769317129274891963843968339702964110104449964324755243303353236788860790552263147459070369141396885991958888421652057482184884333110175376002920976705497067138111369804512358697576262370219777640046205889254379604417178401612100439966776428364437343934931643175316238057186157870608869003331028231703717689078004711350723785340074442724711666623035477202005365965385973655486051980440096683493422073911689821009056939832973850163136455515908123355196681231452704127480048588978535979452029532160973281230279923626591084332618280378848702534112407429354547106553683145583418744456449307537234445241313036789364111856096598424786972954398480139058604235675679829359879408161321980904775384085537275823000120854836134756702801048827252390365578662895476795784518576659865934739796423533945928564995127627633405844616581655093969882763934988168751075544062079099392523755332691635721081538436530857665316524490552399491392819133386845925044548592870568189568185550227614094687232102085182748068502689114750812018010614353281727608269325875277880624378331375665149142159657236073755261886595690310137092328645633211452642900313934918836641858168585541575018455849008003495404640986867426768644657538429624210661678411741016893690227034864567386774122659786220862691105649401146141080119947851142450155453443767406689746057619261518325619684949420856832590348353757534632657215237983953150314047508164310627574512209436043319750173296257305677691285414025499832431450070662885070859290421367369916811385232439312915106179986870227285332840251481294839936337499802703819571898850906563922418094709298863054448822649081608218143750808470869276466503251151952255990903170583974180167472966562893958283400187210720304584697392919933729727513261729599109538776853400102516516188814366605353776760619607451766797379066872523489851885037786303613601204221301284146268583395643372378767212661568080676393640366478356830796840207831356554014020461442566996030682404260664428721913998853388712839097670585124962932890234487712580784170448034215805409910953076727567767463624765695277884114853900424454508396903112873124525559064910196111648775086510810823332650509218947226492452047872976894250507370237486658442235968050784492208449110850995042022396133411603256910713566263032575343441128055984941162834331862206568409568259923002866397199201957969278135475710729052480516430352047773773038608906704425518221698973963035249108247251177384409471218028461798425235615928419534856966855281295835512369127614768807957824743337627809749328180204712785213551750054962368408837590139469596485415813129697168386212955436104382173211412070215104660198687245842488249847439258961082928684196791167895975915556694113348901382234437189096340990051823375718536221295226940534195357016788348380939231079033014808814146835256657825847300736469896658745333162299044092696890283808255915259231507373588247956731868405554434809068229466425934300396387745539719241684356616071822704376896963987654481602880351313666034495935639623564028354744154622681388502153626213584395073516781242579804733748079204376797881600356129032521350075660528288688677470618090379639729591669336511957828188322547314508335032899879986996636744910911488525924433351181989865893998067498986235564586737131134990403337902612152384038645685652302582062046416151145502559044122889548272227927415811558779849381511466513633208356956409664935078533755013768703857365157033254478849606991392773815216386247790468096196178895173691710612589678558218555187068632578980263975513903444305366801983214513775839607049457254572278616369047750426280716515431020477948643677188777427626132505753443794648879955371927887759325762874053702688562623115560369547650184382834978066344728819949112301396106369784516849927944055448070510393251144454170160443264800635939544906128725363173521296597088257358174989865454724440217282190421551096353961897193053041673436301059126471450635707148158410265183945551344523788294002617495237752944873153674000943087235604122270402275214552299754599934275568347314678078171201018086922063839976869155999868002092276715777298920156126141652590982244152892778928501373253769049991580449044264338791543476597389582638841019840716526825539594619428704022564928451955721380943087119251873846407513070283432007484667179325578485086630825230871224816900814175952747304329628089154726748177900740990098591803910647459141408129177916304372085606149521893151374389440070147202490779363729569362139387037558044590783763873321861359327480798444353290803108342533607450892401299347749307310901586519894173170817042378571499929078615343336702827257431218469317461504694787891789675739676186490022443771390203654073222681004866036576503506353321198645197233085043036521828401068383318289672384325408247716852071667416262471900038009737467385419832694517287711713545846087639566833365856667385316231518516046075707236345784386275003686543498306147814940774521060795789630306674104133174042929951447491754577196317623076176854887515595055884078380395340251864043298246242623128608197026728040757260842151697662469104623114706855288211275977019075445423819243867446579984683035823090443486426271975959481435041150663458948774313096379583063300812433588944091112503711153764903031590426991014784690743448072913931495801184286532133843200783673381101799171273679532396640408986320803247686809237054545251985422186701754719169864318624515668712421315126175228858750234426435427298763897144359429931365278644553207253005157031472280806353293246359496994572700362521995387298448651612873956573066498531572348594113138314702171035791803108112726613512827393928177416465795479112956073485465172133487706169374356776965747329260518265597296127073203917936303074270066636544281196664451633011765942835097785822911229691910084553501771868966582076636834162024392398407080278518114064608678398484960479659322510729599499558562216718118621102057950221794302138726635607291509321899435439778411939686230981511025582180910363168709696632549634902796679028213176523014315879416703582096838180183498666982286088488588672368986900327449847162634680749673442172745163303192490289503039753526761578040672510507528487855220233993221054512063799723766353477226955065689479626890831666369813908366151840972291663485198285826414087383542970797985309698120397765314937896104666694087046406206089365538971346334356269862654578482848141391029629061727858919548175189446517380991162169504034104440732300014863586857726626724502867962587995088044398981745343471137005613023569961822705933484359633637467058385563037198549952620000133417336454320076023444275708180966734091480357306326859198650916000435087409789856842519853890674557885646640090846721642136754679937498129050334697273323086149476804982911354322311283033222192421076332305243648183031779147082309845716310304118466041530447229328672366605559226978878939654799279181751702214537975527303722973427251099406584916528201073001043889581654273522112084453877548302279027473669528119521444537424677883297628481525226780899475290315572914676381359322448598251819365172423735088515299181034628359922120872506634926336196386309284295608858833327375700774265091669323759242936204760695334367727354502841123344905206514452477411675302236935389553190142607292315434234689303765366011460055835770292228372644381943688087552564342027847046247740913593153752832401771682439743356819752408244441268849094028925832375818375644470072860195158680978558583144984218398817589217608134146629440710181486745880519818813526544550679939989415849949487326250257269323096072906438252460823387806388318600816098384464815029306575312919809393508102747401749588110313023204382170734006546544280484265380391012666333733307916918675339529418409307828169451365515445030331993592233752363899513914879798068261365014704754369959496084001313039273500353246540229650003948538936049164088187744766642816524560247819359543856766806087875972760052077695782937395254455400025905495014985236539986229306963805773798241347316793165220631506669021471326880495928295951905054792885975570528154941197760514432178447693187726672108436206000033586361567858124789301026127727450650627915284270386937986640933179407939883210274976355154558257609984039259218527581411995266597251738147876874324581135793319702182339445288694583467338791283311065825267434378935791048307997652585486136742573605062474402671626738952033398319289992593727671541807412939026489060698299692827150669822335061996056740700383244161367008855213277485943051995597794537466538459526394282742110064982101913817520284732043512435988776920258465590441734751515727304506392540997820052043470837324331716027645522477570440091626621596597239385167488979972046734113492939539493884189167024756695147722247188716910779528257419696225484922482249725475118016790387429147111476283549222116630187037647232696068519130150959499982522580898826005375250059239858986027347247017808939647770453317664961735954228376781423006728457606007726038301053322864859645215656693886939644685496205082687975519019294860575019372319777608213612866113336449090375829759899157656254036240314821794329294898721053032342696233421680242207391076335279294626031292793584976777676715046935351212303971301279047676350805724848864343740117884143317272838983850690620299383634110823895469028093510137298173571025289270290342869944125818011772734195156627916516843892688879429051851864924214722994372057924284496200062725341567521758385566224841105992933032734812776681766077432400299331883536664478860127496346477757691205500062451029429764583185810807534333328736008409459485308671715978988396621281481912565566311706211597625612580710120536479613549335425069387098601506417273279829415545325926191847716537012710390039084700541604232848753989549314926393697359023950021179200903817351458685308883620717474930095739429829925530723517346997815561561714944149350902058983250960585448263325283452423386081726797528306382392554789735650946130565850897789193781135886888117224892806890757682827809224396813653521229558187996550251235054786174438319326068844529652507772867984003672920014364005722271278086802019704621191549235976677135053777027055814246248372782848101105430351677691253286556990890431340463339460323541839736078057157897590743832939887878798510832610425200132866861063834056574947836676208340640706968508316603316464258744094825040930269318657101180472635689021398474530094027244143399829758447389721776390594405590233814939846555601750650096703095539044871965357317799409089002841209702512209606343606317066293034272055130050769807082614466193426339387348695622500883129163852310008625956663242050291049945745395765997660516498285499895206079505513174035138168024019227361788032424315693864362914666508077199313264523676951922315189291838654552778537921019947851385272046315834306086368070378191090961812509466507837523611009480540851017815489821053664793088064574465004583994357321430842518006775209908196641489191506424851033646795631915058576683090117045281125387093922204160233503539263383904609360864086267637932482701750763453130065507159797650497815512624760540015743397150740473166005474973010431151473228641355996086203820138331879907823276134228532586450607402461221390566388679251980912155914668165138345615510248944931725331115527922670040362431439400096346190562798058795532520450473947470023583386772214255295160318254800197701222243860829090792607178470900873914517304311634245227502190455713013549655498719415392696912619405221917851862925034456073244335395385550254090987606096736806697383128980026129880608637398589580135357291231836366485840095549982218546008003014270267711901699703720828555527328958191114738532841467906391005591266280045130223637438177757274919020569670180977600079136839285693611739425962562119456644088387956789905783455479701394288306772263076365139367824806688823326055249661075887337827708222524948134643994386669793355613644725789073106340971227450306390614147433501770388287464384468398285928717145503558811296944039396649530362095449993320703021307153431916629327819148249621221805005522996373742749516441059135575259528259005562695328327823888132485398691199265644781413584361319305934415789571230143928190102174005874416622912818824903384814910008675144960899081479017871259390502136114443289675740489663944961699660929119112665255396297712627403265245401353781609425884343778649129176465956978699998824916409933137693086083569982567339735599973443376767881988619348288388563527735269891665335655282060313239165510603367506046250633598006651681971641716518198576750178988421077262001439365617047682390116777332472758491862717232678644461861282723042154321676531791049729802570756152292521407790139682985928124535896621111808516978089075221695924437078899655330475647074851961330035921296827898200774671180320592576481453754157594686955654135972602808756975776992579432023956663039974519962137699472404048914639431380834618235040980033246159806307473629608745644664607346653149980928500034798393888181076870410141301433650452873144846765176693558323289569827653957995647339258604769555206071195699116308380704834655246084113232861397756419731930796038551866759477681950975862082216427916453642190978349792623549796236878943758851399249325204690126366067479982136795948743343212378762513251490167517081957885274090922017685918299054090905447242122629355337381707099104899862018285843476273865677864183295579930171005151915561367940162643526441104006547841183178379752408125099330216173198886197357413935463382068834353680672592046534435071021165859949022657868759830272273896767339732869425574145034548610254246516640654552284252145927976090668884900993516247575453419459902693287822796568698977390909805696861762294375428005004952875969919276324471289364412320619915151299406539881603387311643274129230251894716442910402195005288261059500797499239210260688264033514499659837696622776645669415027100313309284870485892703195592315704602828016420007677855604368541073151186733157505203317813284301821194519526392510361498903467735344728891787377726576462426364274255178049230887692832548117939246048291571592371460164112013744089056064325748634444116304145781681113300220231562056250918922742079883791980119783492422985942101090048808493666503237810456233675294449131100097218968275781883868628722056586541990958048484824757774406375777063979280225388138596674892946307752417252660958869171056537097704352237177598557869117426905874900055080790929885390234217447604249788131831986225675513670070945172372341976086187675116889564046085455135268752697987651752552456171621244743264904705981223409439230025471262227308919025876941729274832462464407009426500147104935999180087432235874509446834987859545900299194191422153993837211883580897095683916522821583160516438920786014041494572264365822817806455398007329674155358391403891595736959820990987434831428832492351049676848438899431555005947178532669045114891677184845821888872736503951338586314370227296962970636363505626761930371056585790294344620296155446127042354371371425328644861004618870828221026668251664477809660843066573883928276462777343243465308897713959115918482368332835557563358476480288652638698856238562756490731665095304622252506019948329043836379362103532790680698358402064116182503311941173369452243558578456787299582209513643713371894755134348728178125993751653537154536028848479514843239600014602140212166953331650931743438824328418705665182663537019430970847774520582692518551924668742403693850736494269278293790609480538670648304510025082169162465695611858736047218119794591736458567321197444585095949727006327236619973430620178688975324977370680300997069414754478393387193410435938490479255009440928797594411217440267197618577481071057332684667664385103041156592731756343571792836688645241163595120350509984196869393827460465075005731527381144656039450094753860883484159858773156609926639386798552283474290597323912604014916912886485577939190057154671140245943972012120223901255425940016217627449988092273161967461514428499735843555145805984268463785416106964869402246585829911591814968711217791220426569943295859473394031825905973822133044316417989516402804379165736204388819294635919073423056782905805180785848636383727145830277849354239934789791312927853760282156433585696659790203448801167017337017361758937545330751199995951249234659681846736744746870715065564685020567245125432412881828416929139323922893803815454915872538321609061275189210515310811886311002619347036972442400738611314483792265946016849015732214646040590859739079735512434112681168421562783088492227953744625251297512696875773880583500149193204663544984528138729120359993491576201097547702621887963748254411797469135103821100414060135283549041172673767618582690041784720619231496725370700745318203680877067873522751477582315022679707162940919027393721780942818409118244649634153573192952833108181698084352681034354269511989755802785135972950886530942127040201754549066878659243162828095129603750570075563872079511473693856188480221648024928731045538982036024218780287544965231158473056010181308041565493713674255657288113300381871743048741062527423320763959918932339407252184871125113543325367608093789970868999947206431696799638924702292498788556531699034591041225923741900627581641651624585691244068108816868996504571274955667043812101164537404393612126083035043949504173747258875829501705750640223993532420920650599220992764567560114229879830867841435621548430074566844196000241309896505372945170352411452380411604396181971618900613299235646239794272243772669630045093388549975499583071444512986700869205255375982162578951201508418612990334440237935379595003532377990198235369766381400856887928091793921463113985913031427293766926727491488245798705503024180163602514898745491710057437422718015354175745332160273432062783923285290634274486235987841349323750324742284108460426343187417109128850637808150758039137319957304698017175550252727232217491597802932850059915572865074701827619792538487272572192932326269862709328572864046318631856046389958354668244617742921329612359947460619995908332377159130032649577608529840194840541804506207217629166760285664708635082968631150487928433286616084369427056475945632638928150845755327281822603091691527515939499660760843999431353977168567785001285067334491803230676842276573000687001271117043429881521563146492509648900964361340199366070528284800765983689996679179302523640724420909330607605322311350870134866157992797333238065879390404163195899817753808511798958078662068564665633794141931643015823380267359255384718315387870189005150109787422820806329377028455092554880367862579169972145003664577343958318006927938591989749843138809278799356028801611314859384349691066322865506092218836045148099881798255864098061950738164904355330757764509858139382679893533503699264272098467876802510867787619919860073851242106110074053913167484359157137711675815068393628861657634012615421281997335974106758056606009279378845816661227291590336840297667731390049903889652413985624463001575869503110642935140839345961114131032352530487240515493229445370271477729533015467500292809577601046680513389418036817184289450039656262150411499335685530183570331973738111217424090447756497631119332640803422974613459193979101423737363894579360465497754413152243839784109768101559505771992667441969223567561036212748949262068714513394757902023972406608000208604336175391836826861394161996322657207977348119926139442445026542891460287098298808626774384907302311423906182252133637738202699857382910960580559446794010778019068876762120435298108393201125286720551564754657896720411874267890708256333801169805345809438131162376347218786463561316634475331002986731576702154033975919100559712524436813705029570424334802501104324400486747250950109711933379583591062581714733553287252495607228468946628907964852424755708739494637928955364155079195348310925824843629664271709324660147437322150498709799198248832545965744781150118036959396665583348373151406774529350201126414805123355709587456673618288272790666523003095758049741676693754300345976497339016391677338337755313491247769699505357876274936995053289054254511840992856219910990610133771578057643582148045750506499187833886567178489054039168715497299880871655656728044193796732090310857432409042558068713497499062927548366151522833182905088363042613780887539201828729192503083762855167949997347063016353390464155628415676588097023656905872701093965290355423905781443751098581942067703136568069294589904892574970172972944303593368707728446474206366783629495350322720374336886557199043452498728651167042439007231201435637991266723254131999235087539100706453254418700459443742566919315199299346792584490701588367516992731239358324658463557117513506512989164161898158042663147146053186505455645582534439327649387262122367570997522091725971391891392113721570499410703068918918624127551151225410178158348354881490905116997209581816965506888805871387117797425881229069269628602907397943890833587193148927349912212388400130215768799835394588151293179654019782099520714266232255495985323928181311887631700615681233480480774641520742025260011521121541154969235034689570238337617898436279627777009833212216697782673591374923914841664561072762089009358072312323721006777565764587388540188084222515893060305744742557943259614794855665849122229225408074090285940902841426655626775387748249588726056094036657877212081325266504954293769191444983885780589376083430031096929373103751052866205440904988153823466865158097666401042087489293872665387151629539398949834424935567865328153969711600402996981995429703859651118835221682080264265849992596384793164656580543715795831480190981601107185215640851675575495612178628076940474397276500702906182626879278766561194188461574470602516952449048769850158818819138692630794473361630096436791850560706160179804912941669251002435999948883228524837535560384397061727963781314256231455955188739668692905898333183648153517342172917507913405515070469844026054332226842269254651624997316591538413632991683754285963699276222119018666862873604717384658097072208003489982403539469470003627478089430192605378950633659672237949809029833925904394198571943219553047569931264451908194706804392093629771953444021996650411494715955928366866241257407680889624139375974466683770985754575938748660300544182410282855402333491189833809044080973820619887223505319358441219997593349921503805998740542735650300003449678567034817826127007808028169549711768906622904673774065112842528194300790961957994812275487376752154426500368072477346768867494576527702617702260430323627117604448111551116403488772967406352703710502608036424780002161665896095280244490316286852412578963642480419545363695163980715871248931695868697219797900929191672474869970726198987425675610817629042132250599744565487151946449281863088576061269770297391929342123466917734869620920120081917500467999974897475825404020821734550313078352707048983844775944065273425322636779928752667494017679267689432487370490503181155062669730436836207380434625194087214169710203396109443485702626709924551008093627905945435713181490157168015689795261433653331912844269295281190692384574706788124118406734452424024767712327569023254019766285069289939611275136074567815521698766051187342040098255056087686516971456829727501984619122369775839900388765122587450545862791441551220779423640154201112982050267256276774120723870836579684506868071208678857761181866808032459633901157899073566295444976847583856543367688985535538378067829910826789148772391274332553854320091774086647109532916356083892004751404867498895429147691486602794706424203468737392436022625881004682420663528231156376954792272907218132683158852425009162215354822362976627533377191520551321837153433815526785882511288739232105594758063894373492909781133825506800328923954617230633417009457179630797788454749349856348009964217177755956672971112177405971599835315474096418896840456660415608522337634694609615352103118946061719190793664410068522069534834637332046898037092053814330604768889198669263440105524743726522142381723389679815463707338908150519761320129162125446482389604332103225904333943286378452380813490709879625343287695193926681918889508284497210676904395339491692660066787449475391609607811815878993031523182110384948360524189150155507520092213615991768911210334302480725522474869219048062502569770375380311507167669353172068490923724325120780588268779122012076593312070924343432613760795824209996353552156550710662840390408646064680146216498328973649073242803316796977315262328253515783116420695214830558209219096562200390829667499476128769763039929794036030980084166533127347822485370647563328415189459722669031011695592733868826722048884102517321317907600089036341234611066566892185223805954384175279653355655110714925791949437342428725355961224563984025030904771038696829708405307009914866956028540139324474567218828347180380609460662626441027579641614664403694970059352177015053564026229346697667830731528167425382906808741412664402462897152471773145158759363749565012481373198156661257753157331330333176534266605861818753919549330573177940952813938135175438133690442992983544204751073608753750479236234364292165474257467558165794236515961119867346029077734898297326568451427727106802612762618989488451961998472151162195006414942800400251460717575762727304248111512642620285290585054273159323073472316495342988515613420463157920784347038110916718791486341281184628727392963864993528161864330854302341828928303458657190793608029384153444240417355558993229883357176964667869838529081784701047968120739369520224196256261648938446764878284458410391346717890193027582362088365386347201392310383364855510000750518721471068724052813052814135588468365596614266676281598752050494181477001773144683396794401884516228390201847879589450055742100948039315451906744633172678119923610635997997589325591878484600496529083452509363441726935567401093736819133248006673499467053878476842312137400070847065641732028695013033593178372997840418741791450647077177160976811842193134514347679413352141098708208237464742409811895222664636987688341835901938542212789634470174196843796483766340331558361184176374728774617567049837414551958469892807683345297952678133160759074724516846076406104906755667820071677429164473392702947742151221328922104068189534444326660541720242921804053857879719813833717972220605784033079068103108623858887275861025559517832342978756032022259117946434317314302296261703463827169099846432779005655586394406549430634516967930867438545224789979604080538072710666995182168193409286086095580461729479830873402094111244077580885778951358276062569166574597315300747910046541038818790147114687297742550818963679892834324400634925274327985908410978619722164913072475511074712234641489590802551562488568491555856148143786850307464786955170878382606083462374325565612572361488854103562366132796838112479382730648901952533361837602705013149258977278047339831954137132129217196796992018844648795242958171041784423700041630157444782047293936973802966281541412223737146062078402819441871566489276053264677343609076953862360374994791309269773584124157466365834458586669074737249433844113907944058592583115278396824571676362766992055333645770314532266109221139380812614991188951723561548353850240038210408879856360126067591340443170473006547542770085117396037165387061496974758629548816491591547508881438341549569699040542613824533753117427588568377360230609690166004589036791968799751093987667315432510795946379543559113519176273050764073298768607920079802147597868452604164308699257248376465603553635121968215450882036374158341169993230379954000384158479191658972433616614107845414172095792911362422198638883176576103122387646675744908108179356262596676401312185878635956031954576837840712038151388237392816078346484989547780065957143096598061162742578393318483285378607008976620749280756924744958328095224451338484788227717892973124641387544146607725781357701622319428367153129274652826933404979069803881501718518545755149352554651350247841641165350448960429742110399225653784215268296184467002368138079514376548541146836181002318755306468782200277738483853183953115375913669728672972250071324765354127240089938382088028784239773075981023054574521140720517372914805851354323807714885173535051038083767096444793877055806697346879523569394145319623413635121450170901147962304753515069027531040711071731498290554762299281970327002150270031441021650392545622077367471706108994247923723670758439568483197715582890434484460601360751261763165400613451545065685763915098002581107750464951054816641713034738535564127267199471445652896104045476534333795192875880063702368763374581191535006079659023995418806767707146109617216451036407078963649900883015155984124950188663109851132345309419664845085818387223236108941323851376717714386067518438363898547874374148693995788596555245013715736324675416334284428979597224003962950802361664637212370661844954344296096339342319027820939411100360965142260498104572209646265524582713526614716429083006203380108911211283846004451493549673348676119855969861103233720497264828315115410392506324417038555672879304254618225774516678305468190213706958802785824675329776801520358151900121123748948207532641753651773285715365183396521176682585442976541270596836128733999351012308765578810450009780810167993288931728195434856991753723025532596901523021298430812219582377482263589021732485357951519149639116777546435186446083366777092922545325701299201512967572172679249337443165424116319556711332620645764786248008423708035613618113757212340177232612538551710974572350867856074518244250674580621709129875048637412483269208643933364694235868594986326308217563519660059984878457508059953678829577750674707067093348428073118133274876776159086011295080855443749329195698398887505585937283116540265779371878172920894398783985610248355238025261810896492816593390549576125682712221394843032531836026497669637951261141621143411458325910839595556177348258342006143431346898476263486694681816312312416041625085334372899616803943562782592993828744147049676550673300033491544138417969988816000391422674292185926104194428127892187802174817231550500878532298401969771146064293789901465753517725387416853871796390579117404620380250208885622147851446902598009441065861186798254139505874158108245290679471651210505012564719427317154913914360649974440607265522069321194876849934258591583511718447578216831094466346256968483703492588187969782541184134670601064330083953413694027142794783576573862065080086410983017811043513941636068828870593286584495369063846491951926206186803769643916181455099081834384139779176207074555461194402383594188405214074634435252284378052722545767870808123558014812203617550101791664479655744137456450703060720785147785653167886416510975655634686047275622056642792173884234722068167244369737389336539860414310857297507409087957490794639711907313559062332496527125062616279644004622559001820664494823148004968335095926876289759306032010237845416643613253569723417968038104479272577065684769525861651689475998624653436226465639053306193589058571438122556855372659733059749097774383849179878961933345989987768542558023217868438051412133909545611426756565720564990414754840705354134612834572555274436207344098900177805326083421518005732419187303575048517515491261240552224875761100214922561110009848593187540629860616786334645585176558023123823648632928605446069707767703364725534709373545886690686155810355182774957832740031095997081790235505331009179793951963133030307976617416783977105847217061013715584823634284273748614436881256083959623410637307202389507517956951627955138932518268183855220939956039411903924626703034773414890678045611394868157513107286785357778888729432556874262385197990132751788345738628454933077211937811291790026724950729201402122724879224628437507307553527034032365458726311525692091189590715438394649388121765237013949020422168200856124230655641244350929093439999036081672736878231236818567538904367128439175697211446144202258532115680712742893877388174498652813682526498054770684803761720108282028232996095561950656876092681154728451413259721139262318046968310973170303423093477320769840923364908122328976249824945113812055853107123956048043821061068081949728518463770358313821956942238421296361567699194342173888947731532973928503100692442273601339388110638928075504923449637806759275448308543509946861204706478873289543565681543614929321082243664854253270668003625934472080780070067345825943622618463224224815497107519047401939557554375797632661979309158363927146754897346600918818963714318728392757190953000783821236246066643668872492007304167093403921598787515081842384714599938935971073366835151800878114555802524346069133817391258393725986631581533568719448540875492955219588325715382677622988648927458975199691147515644297782408932883308310695952552978872326805493600162650966765690334390802726279746913254324063890029815663438878002618387981723822228993871147412844728330458870630419227094430112434887793924936704289616695111618939302893853925985349562775364807997680244218066555287724545700966048284918910758757274034020261932269214527597423579152182276258901855782589053326438424510343600856371240088065659152902714742215225652976290210676054797443156779413537235901153217778841751692075547525342806846165950929288398722826687720361149750746462158583410619409314921737044273758161461276034861796342926746171242977449416832264351012450886439495785178459467488680535324583201972928091726519856529039467462771637265158475796288842088157373766420500205260850286278757149162119495927820628500083632870359899227009630625729276323272075764882502636107283899637064507837997464178141430775520181722678006700832402227382154087871929024097000167224250351328287482460626167231683284942045107303454465738601640820351512778804396266454437145667048018731986438040319784630236489245946917473097529669185632987966141999884160817694156445143604839883701590061075454119490638358051761296875918817276854787613894093249028467374486864228603738688013836964848518924910638987312620302693344353027519167766035059399544888849366842208782322362793491628255190707104180559288488449033282359569303848134905662001770620122621591053023080846046320105523084155594468569273492082618145693402734123042320526706537202456207941489088275534623693768591679906851789154271002314015085103855595123295087047714681843465035618757929908325185649154475936520773501681127107759365329146468334883963015854049887464248224471510668499772316589663417851277711939739364458346324009986667717320468045293481853990631037314651442386904950465140456672142120455457611807739300486735827645172761856196382858776067304045074687709685086970081894992105132502228621066508260663319998980619286048461774962377389111949444432929618737760762103499217316518901586700764084877083016459478542735838819474724041088354276563515303437064991243416043580414060725910543084009897056595589417363118253357038660068671844973718676561811465021535061850267249894578864895718935492730613309911312910717503890623699848145214845388531494212185025675790282771358711495082210878040312753400003593348848267824266570811507491532558625376297730780116903514134900872083622196541477470768987307525935496034922690754650227320387413203448681802936086384942727498157277147320439170432127788062846525753055747001004787187998080409699963472807291517545487773734896244799080296484466402721647526715709051095677686853189640357267336663234167148737102873453046991021050794294668657672416670005256285565444309011592597716311716821599028660480935355902266269074018492049588885578057156089315820576211044659175231038033939894219153530677162985197361748643345057367635533667693785510514882625255364451980083263021815497751076227946774168319324623058434588908256159070212698557993695391747643400723011841393289795762008059969336327799994465843908250452560742479835400445094528599176181399951814978528612498372912496149194875404023978841945032577329762667704886085473233918294271989051387904962331602740312928680971004126068163539751215766545177870227832696376842392058246785644598175189174949082869167400388669880444731165719311212561326189480605997860742766509223813837578841564123786977305224477694004841462916408809293933834374152906293857892135186120954241760265619315165360376562663933173930028170315171707176055126315631147783266019321743708204921692320688037361538441974261743671654815034831466799660970667272928680187308868647196104692047192074407404581806773022859204418356300050028792169062815969700479358174473587430271190727358045798236417610256108915095438865092403198571098854426641685936065162986043615667066816388380093836514918455968336877557107120210112399187443387129894419735014043868099618041967655146933864671260322850525480186491078655711752835967552398181645553099967358039987559571965306151669483131008973764160611435401101664357048929616946475473888982075812737909009799825569648818715473506418676605686359752785454479047986513087421855285754049103396445992430724355962735550453003900170950167628575618256545605132231448137578724161849853981124724288159895829346931886129253868430366440802318899028962276299130078975737268276480760546154743449774187398781169096372167075357116382185943177275066288502517609026246576542460850271230753263674108391451432238775163474267036897824644493786535544682116074298017709765138780630971535113893441136536305500221709616914154233210435201488182796629694647166096862725157257089892578194439270816312093211597695361654719562627604042988574508092281877019744984130769430114499118291567734896231888734306367638467517583398334144186839272185399001190958766826741123405533041172343174332701414764736418613267151811090249237934252949756796871866232816737909668440360681818446474987712544223073080701086202713668124057531946243465170699612816744117185129730411002351134630533309130664521508860293261974202496823837777251886979925425532613633451188281306477535717464208428044975666318806353342545639757033465111871079721171883075379793250927958763563011514755285743493588971448572229803274167396850628234399208963471908275166798287605406773909469623393702243171489644225321287337649341647301589393372476577872881237125677676477032094006677601519038501698182732635566804203122053387897507710045830815780186319798457523049190631252300293297019090327224394943207173409885900900603796342854889981290638043312807251981596629025445431706731407455129797520729261957853098523544634078620143359059617285562526933239054447319029496201810183586402518584337411543951743189588246941137887624665650573501445562782694292113510544743375466291008189526364046817729232551338932839262044184107682870580096016316326375395141585197850418835763460175281331145508266310163305134054350845742441686228590260431935258873589955734877622511052751815094567057859187609105931152384703309302843525016431134900411076093716097090941894618956618509320397342965052601142665798638450606819560856818359751535716316225670118262678793451111154504618995064624802686101401613503522068230273081235211012104336878303469269131267338881938496802572442501012215819110361468552438881765820825775019251475591007571469570473519652306949803765126046720907733618343647324192991159659213420901935780931149571393357618601532586831923379514187019195053272495935096836645337757741781731590695955497638167322674889621218562440936287927193894817853552964057963464064216162718870927399280917094684580693554240062258089135500016710199216743499109193086230982681197848558050625871963793553918020677844596282622062176973518259263304429316555833090312845487912371808695564895266737800461292930849894647958272208271725281170201329084687384644837550341942502586261119904276149583438953282967718795768464985917085971980410208496984076334680934128244535212386342680827296874437114454034483760868330241476706046441956412259468060731921635428212196205669791473990577215321062796483682446103545685820989589987875811343342558782170524734068883697095074042091915406178633450463470811681191158419814047225634277958350489293964553857770961623660884825655100621848016554914352915570532437053047486461681402502343122345818229542327936452572708880710408873325891811500646946004915848432513066810766452202802565232940857195315151170346160832719092657234770856075037580379760144663597275342764044073357873898485940844426811892861458194188799036741633519487463248733274641667608745450129381887193219621572276282781657424188950017031727149914774154233160473066234097354272369213782058044646858918859148055137357031453498303671944725489076661448596194270845819730125330964192631784926534977634299903992113769179648238150044273017326443888742701488176151394776659503707047934652199103830495418413925441022978257843355230751524879351817584388222971084468760628060209517757721684003857108917508367689938975914860526991304323312875567827724355190463220216178680722617034590117742615022427995065621912644515077425607878672718452467466995546643905296026809155597910325677294667064111677575824911816854895298331740876121744855751273448273939581095660563109108311028117478264794650121449472506627082251053230393343101277851387351451567971463854975347317928548124193772488298781021916970250444698953908794218123670766759793918497183344348383961822503501267570088249141228919647489259985133304139928450000415660442829471298489062791743732259439987257386981944904929905816031351794614012796122546859911128515515775234094424933346070380532708807954801463899567562752592521853300298449735606952884770184648811007653323737049697949064323106310863231372649642742869663640219357173549380733087307416308383913534209351959258810879813207391384558854314654940297847182799521838732590682190146115632792407155358960888895776885900466425279726991309888157483739343825721661764107668747814907744555948646664158396588291057502615739578018775561645684858738483999502008481518751854324601869741224796218514212591048559787096903658124466062459253606604611973391985548853725360312147286390600840985770941312158630136444619429440501044214269282840781286481977947973317472824326940454192984732621000248997589494010146287216077779930270015410056393284244470073782585948039783417286411307253674194719222930539508791465126440817812085880457642261506484569076073678764823691336267313970065710567717240942431386400904342884527753972892688877954285828936469140794638476222575085816109921463674098492158362391990039145487992236210075426404126988331134922451272250954658685292795280066153408915361660071566444543690604893450172348224432873179969614935232545470164225325690148304519403909092610010177223595162063363064213774722043965593428678036701018828539788576516786389400347635473689393313484602723281026308321881506909629503482514206161303473400182159249731036376767516349558898003377530094824295145819217784063454358972130399042376658826716171762810334688281679687268735727186042640467164914913462214347558906808178732086786697885762294860187917756124696008782989915597946549005903786512225223421261485449552915194725688781415426499968512184920358128933613623043623441453435017451294389715480032923264173593878729750706787119626298922418127440883106297188685833045611880596638220122834004022418227099979610933509941596468689811694826555456178226654520409438520821255688371642429051656744530672753444960167233691173505242743578000565782604219994512490015584908115775759849231465708774247955372050955056164739517784649167083584518117583409344876001311240161693322367905340938391140720518707512230366351253993030371042815717732792803914648134708982570456353200458153825743312396215878173125448563125057568848345999919325473078205670694096658758415927852672738562638931058734441273187036507692910473627890832282682970552260510771359963933699539789054440325091351686875260320442496953325317110296573256097769252640740080622600213763041904139047578282816927835431454977640336853755717090473530747420370929443330277503225996689367618139400703937407721928525268853912730489309436328329807575471535378053601975354042806353139536740412473300783407866705460678049190434824957264357746082680333790697343339151381610796371044156388447244736332677944613354192045921441028527763690091902531141293717404097025283104140828188628427355268084619732423142587887943177392901497914866787049887565390098670689047520113001112123698122322414592180126868738330079098113998895758655888571011994682508442569324885814409443313123280408561796532839228416713102756382244516161825645067961201649098003322258892017289753783596795115779574749092417561781564313183938448976027605844100041146389997008214370194353243103324247949314074964584831754896519657688780644556005613573130710129337080457052528108402851461329695183361374969844666384068829035584207002429672972776837925958240743032894261054843006446769993555621212943672873420606125987401197360897850836364133146400371109616762514950653912139159947094447514015543852839968646747570779349383664020373051770340080012775275846852457413957384741531136093107239983957145135028383375088515349801677167448341708844364479418855123614535802189280454575778748131526352144047021122496880327308742682755489841977680130390321381123528402152940900128449406798448895589706828074171623235183122676107325137945644000220529354335334651752374136054711459390388561677266777913926146316506200304005749422905641891207346113593268329238444422772980778390734851185599544748837514050181310367047977792560069687415479141124438035006359120986344079195171292696396795194624420848633896004634620388403383259899052685171483925810723277202728986675595511838880213658227579158444822115598235043753737896461650380432495860049012947709632811098014326480823566594213975395529958789872038539689158011188623487747853087997958104192036579457660709300597834115871361809786822960783694290937714063994925829889599968310913474675171770642656678994947902817781582799356353603502604305498271944851542247182230760710955507072182582793481527632984880655127563309583876510798216679526389360978833414989030394783577836084723175220509771290012279111600316415401538264504930996789064368510762237672091405882496979944274916637638825503717887509904560942702835877450789057066875175330700043594278574941821133386592063686018611338620137556829681064402577946745276668674870859078893480999226147999600581412222524223328434965616809401390995521435008893186916207556278260003659093111029482696948373778140495450480057546554745487198495668822838781390407756638041792555356047329856485906977641575021946698613927785977090100773330985462967259219514682296767516836080631436813469953862313327796728697506672332127580384473716998701752690283013292574378311431518346745858303529585342566266428453263848435795553665330673034983271349101774861325380692436852507180177181267137614669816883089848317857897716021789480293747487397686828052641373314493765595652500439957305388166511833670318103042274997630383749826299852095514210691400201578116450523918641750553309333705319906887093039393716917390585107373016668188570787018285748871617295403162499260037045847043613012455017168188271770994898775841652633579788311149552642340012388869593298538469142688664222654055845394506210863968139086199108803228320957304816904173617693020918807806929244532275031115555351410789275723575697982336258096012251079423568587001180548375450662034863168651279950841306853620745060393026057571186091302009545014589879546113779834160844174706449866155258750127928154816114426820290988557936197925929289316603927167859182107318618515365236453113339358533698862331320188593317406813597155518292462639867580186854978601720539949079963780137451589633743146071150827677005660239942276187942578099195136578482782656416918668431383010770736308926507578467876678046663772423132021668634078821149322083637252592894253930930288620822899111791188308946257556763320865295301288058240129494196444198934749735223094314402413200057825546194621411107977244371140480565748292546946057835355098361364249237410447649224640296263603865581673709922105170743870512423468263447063085793662879885441658353123951066457574221041705063134761237658387099670685092122522630417074059895238292091674664691040021141059875721324446150127143227140357297158593029713701611260885875992853800401333531544177790134203351414446637411139980001778369670999308281505458968474690550515222827649709954975901684087848527166113287041579759262179054028239020521417735933954325454732340785330300225335312884265105526806516649944209141307917738671485820031471168138384906084338933624549766239035161066180491779570376776762827085964147369212756783268527448979588152833871469401010984116926739972673582870158960389451993812055386958761995734287883155516215028285126767128931436375698079010254312634893182497987894691536749770978297847801683925445159357473512571311397344510940950566021888674524425305561392259256501319671882518232743624990051660818656411949557197217331347466189336205752985615094654929375654384026073837218558254211227919534895971143893465272151688991835583049746211465376308416190878347559074104855658264603257372560117652168265672929594769012264242728702518012681412727156692231283428092326295863423921083073896326198564609564924035339083890093479057917641459666912806127007315065748824959040372228757571327469025768680608202861382119953544650200740150669653211099457059737724479680185547785817990303017404769936402159431975769618323987678541555941859703160620707374759611700097464929296314806204612204323417131635110775414024190832328661116837163369100732699181074138024697275973487056828133694978773525540142385344051057718441328863704380315546870090823773294429155348612835796702732082766851588439512160858139514578150091633082623778167345886185124683189832762816897451269947289048010571561380996710239427426330708809212614491309426371172038698269349714742552029466286308200755880249234371412858623857952271701238370543457884842870733143783663877781619908947441986847835053505964254775147746883954967416520037175744972954051506030583571014650074012051309462861586167008787610929158572571874614292683374394278790684383288139285762072902403502828434203214264461112685004331271208849039967954339211716739539826360362501367020776924178402311640290062094260776789695509085718041925891561206351787779122279775325122543949448724042904115920945620035879622452097903510899273370502039519760115951743362068388008116381981040344053110229482607415275305947991870266351684665111063195176164350299327751295767082985071323507509450547734943362227762201051971968625601500271670084071580338272187095201434978796690308122302037128855136792510441658894694228719120059538503508398816851586152653098772173981587582851288528469501668439421915469114654266831924789653072370661020167349744015068141404531505919940968343920388682625792410244521941045710711524691675312546402628582897285423419049114497585471360771432179197215199422090576188224313645899687399830980809270785284792435017938874237741028186981721381709749207223759138500644271241991010047373692404736755132927496057826071196347218269816226664084748012105769032615776915137015894256924977121174123737459225420800833188028173520034715517045376360871134638935469350055157301615144746630186532029905475702115343128855541126613020860619735812510120867502158751825078638299817328774176256684123376498204625117512640167827469118395159179019732845676414124668746166898998230154811103036107262124762716473721252816915637980936092734718820328239702247534690690558895161734451182101691189659238489101721010314357875864153893846625167955525053110401889275730540608425386418449998014552305996533993283898525248807407961892167103809158627251947453214364733320503991699868247524116881676699585709512039891256364558337148809966391165633944777793989270826474127324661338964907502045384094969509700370733948451121847251109119004025596459601864602635877356192905147649711406961130591111641864467464138526538275618395071303619696396407272894757351917968265594756775778902864424807106094048158053894148780701218703496735542218481543444511662405444761977189579014986178735172216292902773144320535131114771892586924453436231863724645459049278525007636245678244414364140863498410793141423210940916768283707169822598696204818144978849874469332439618842055894188327153737549283127344948569242896902184489899882374341415949617088399301768236983155400007604269576340286537197415356397462532844316126476528314523097088403321255849383354774419867555278974835438602749385108594746546928792877868444114116566299750264396008739584080866430489497216229645913406212480833942498519920280204494721653302599910167544112742742468388050018363227375609369472496403438317821217243132987130566025491326101881330021673503482283648165919439832799465650215754676472688084476064335811271049877581564771100994871391199690109066022473698783498931646796355386253352289550596527938585402462902633302882785447040125944088201384430068454665332896283079616606059292437424534843479634776505907077317616458689860325074885393781805419987422278886732693345771993167428503613775164373439099603234810141862986712763996931357080216813701843857063044455640025797701574322934078314372995524047821038669231968168410825203251523693348855090485468707024140306074631998667639383270126932803661478393721876008489348450698209419406571064876080916937769203971178597558416553830790696205051487235783232906343552700778717763888612880177187472042312849878165113421143585797351275584457730490156425851037794579909887197841835559300006070261915233762546989926185158635279102567752739061688690089949644111912540304074677399788871375730914410969356273475602164747742065533584330382164944219082124911457747595578030222150358683652831932918861255921444368590117563438771251591655910189084075570812951598249162988511989653492069533344540545819308468442467545325802598575155169180843638417993653776904530458983120356286596135984248583132708687363909498807676968490665688088622546427730592936223757124108675628103076552901865645165594048512250189688635825952821152272643869765852682227630093872805208351092107771733048370854449886428106434498179288901810978880032183731642228602672401015675911914910492097294465085883369677811543793435520222881005594313185342745224758067319053710443783437628508346373445033822857718325674014721138625404121847750375185814698326217189054363447924425965818845445425406696032692682209824517818257791437063140190789441634585082866846070263308641570144838321967140538025442804789332614545812277781550086595208806489726510339276617287222597264873163790013620012099428208943324802620230311946585049816873564570497656986914955544388350592234565367210075188644910161206681158532148428845340596292474599208873095069286268192024666853802866595286969928109309415389464877259708467260198697862612893368424889362792745724148524284358606396066580080781301116479596016637063626433613927564996867214344438015714848666639518115758927875538743239297034984699597323630435573508668749544423732365902681973029029346841517407500717093448726206963820984093140519954506676483972432009147737004157204013582851008808749191443741978064223975765781102936441366594329995417620192581400753910697877125578796737416459217506158392647774958572987899323036834195098539205997676489274019751722960232511909000185438993548346006049345544249258040424796695999948983664493629181399735357359776007556212714405589166660179964146842387965155637148810458036151826744484737226919386063543571488183719777834933990557833473932986764264022007306353915344725223584105920560439108019782221507924367696959826670493410134935876412407460477642439781403853092513654497619794414412292507355279189112265030996297338329783657680091947983582705154890855597510448049522929628225490768410234715667901619467604583788296241010603830585857248252402877986348792782931366740197930354877682717484748433825631968431524654045671859511453230335940285197965675065564924831672070823095153552104759097241058965567412955936938214799378450090954095836934529565864271257227842736006742705173654263815816413763001795515959836679356933382777874461984565962702596211761986650799940302188750721482673169977055274562835500596677816453987605598069249268723273336921068908609519181500721022258595990537266637609587649580961913522780592219517750548444421446065382176923905741590209456376057867746747153597016725612191676960642961877057420038382119595662061859219428106946869850520873982230314239524091437769495350471558499925467346572817952719066879066181654408981067360471165340656332165615209027533192250989649580257961885356759016433413263020056444626005568237354925264596303581929621532399284640595406727645766258612940173585743962177223488477715197509727475395296021132418322811198451872686218218877860186656631583759392179568051279428502242649653882101473295117031544367484614279762061966606008920393716460951229795057142083777180093311380269059741031649792848188017872788046262410924280087123647908693671581042484433611766235718162372407498718776925382488205067979246745720156035235587113268520820052158597831471850253856426659591192990047016090356106208337585905143998888253978415323176998388440890634620759449570703001067836345502432017789585034804159760896070250227210880639624841900848544051979278652945346755031930249924307478257021073723847789795555833861810034124992867649228464519103926524122705995446438862385833612184238225103070899105772654374786706269318159145025920875983091217369668079606833918751536663151440880454526774103160723430317476384730834016390047218349859255017081007562477597160650692940640904461387489348455556855079003738058366505254568089950061059945537631931426504596918888106339849166176317401363710334721774784098542128620913865729825693318598277580804450875549098186807592688504835375314948203676913767199536966943356679873797575187723579152654020130468705439649314330976252213604899748100876090602643835773729583203997395768025934890413075419809470127012503097498929466967422017921508584044957426304030167569354410603960393932859294127742821697006297618102708757110201605236543254713297298741467608897152637184472694475367744446818729030922543707348141836126278594630917243870578477146048820166878817015702395585829978936481899546756019049659925446230602296033242236480271023429991296233856319416928273977835181459035476074930342185012116790015815953823832317515761616931834794093030660040988777731878839027168532395436591571553999424180934251943824965216502527015774432425381884167570583221990579153934800404415409895389989484230227647580408305443463671929131667863761380437869478697402836935437475706550513252560331374317207853149852579083330172340083175765723028006430167695042621566428027640784702400207861559409335755748851391555352036106499362624200004448212082341641739193281706793201681250514245181223743602818784539667736143989344726421681317321867882064664108342055399833140749307889869438586129310105511063365632427769215124714361671129770960369676647201530061860548723314059510041473242148126555137427089489299590853924678079004052725174903663322962410091390340971544583534856112020538991242376198172801320061908851354493355250480839043857120793844863683995479936956434841017427693047443775891169235343315909149218575892474745200268751175079554760645149008949013346755309283693865052013665681013573002732905453908304408779693598878087004235983726561563619369536155896384351328615281149656808132091014529682576494166350334900262204765247514161080175734579393970237206988874190211198027959560976085311147116003760146442581864151157669656313216016983079041075727655477588857842333623217669101772276087686833325410907867037017718570308255694850213329060288836907566642714535522025552404351327508238914373452583601563039977535967128160659091624488080523463825550710750832326438339314873444331346500335084366843671576949397792901867654037019533619489570716969390836846704683225585144354079160833632703135899875389120629810539250254998549721468280067605031585042735341254749052680744048399461378377390197677438042395041055413196920002098572332488579363162688067559235037411619577718142851803520024726068129646166436324865945596890551268227965781354662443282545266539246931558836451478643879986929879511281463023347858878965810145375089265646729651636601938366305390433256864429114277359825331777870162344498938363897906681416516942033969974682421216789518820203469214553153216095358091091598154768787041990474615475901559909187606052823271996004743737252879599024095316523275172076169284440481476281500871335025015041229233198536919388232607264326124938845208301874882858981061725116805369625152065447692481590300647459398679222111620897114419954970892348512450959887895937551774007180441274874227734160385013120657961033698608139710787418928490752202928177325163041636519502843560872177219401150579441224901398184671079953926535052610886806089957442145947196666678796680788490198774650316378049070268253077049267953155258580498607158196881516195328042558129673128956478260354858315647002449556528258444074653018662782987557492408186727141724778578615554398909234955271980462521246957513274723459499354230616525914565987237875163673616483145662226282329436535454565294748522395780569024609373476427408120905942577764215296018303233058843867116372495680702109272356548560116129031259154657883062802254614173247604406905429252707251826935741443128801435489659069894519062481707768762833783824410629322984504894429194702274874254277991097737524011020684835836223872026526684195117921630859639168515504918746711222838190670705487259023744245369527386662042149951810649149725188573876569677030471358173599602625134617879099581861722909160989640865936757034024163749789477938189193277421041079999787716939195299464352200885059671940005191000989416488758742194160495151161645874391389442625840602336527217999264695026112293188846074663923963995857107343933847904863209970757555651128649707960430428558230643067082751534259214375160956682217481483643003556896877815693270916745491337703881724800578333025486584981394630705974919510218975340265469547866160284861880533594928913500246042629964825621348658668458356023865381278867057534697652531330121822195020187551028552358974653125323905986496770808447001448866193447913623971400711648156128012464628713044758497172993107849284289180078693153254625744968942831612264084097595989063959401477456905626867487450365144997731942238647818976609900394892955314902501678420811026773577771299271262328788948792186838091634717653282434440845349552154683988941179707003681086645597303064412348305785362306862530727182168815422093943795082995648895571575330715706383578845640187707614624263817423395885125738619937257379270035235461612335619334698113358500457202571450893791058849460256550666384885184435360003406885130189607913397222037689029185237598333795365447703706848510350208726193216624107438612781636651039441759851245040589430261842478782755157295341128706579142216431288837434037216558717356622734324476706301730673328616346913626319783651025711499161971067991699781990787689022096605096269991674154077672485077551849718245665684233316802341372610845939903416675591253918169790775223864289239085376691350859461221202204057817718800323218911853819541178648630607636361607972916015582851998167683681237426858235436941488596282122390939160760828807433505338306580703296858106088590401323247498182498913251184341810309719266146432697231036827473149721689011778896099380781637294608910761504606368102215348828272095549884874189244560586583264106565996518168435778010590037060664724345353044433019416445272300860554539564319806885722772313969530458895024264770392495753211996904577312161189478184153185827797349408459054843464204003425728924437296139066352026790820394624503857989819534133055052925844975791515220719705379240999728402074381349071826952993859925819536801609369478841674319277657717637421794466936683450033378622388720839857067507220469073257562027814567608048746725222315634878282344485434425168804965424444310970532045479073017970765757569299515593703943782812880581347779277680483606055637829724561064681646048925361856780556475171238909733044611779883471838192645386520369918240366288049951865814412132011437274624438068031233516122995352626831182103887665820968857060414622893496447405239424095052236630428085500880108897002903475238578892603867148378009462322794651325989751499201015875341022284879593107611159150209529864201751972314280176875894945296241834072347726377567862669823114183444057908782974556221245115331526258100730391080380939487938644391743908583856330283087089665942593759717863275309967957761472216263083118588948851556376836411784034550193459319958028258000879612214661409699125415033817307433224730969510044004826430547558857596869703721451721663437085917807077433030344577798789669772473228108874795759830351823085329819628173656243496939746454606966131156532574687325585407565833261517103891058556234158339978089492562676938177191508812414003024443601045579375341684381248483008606168125238003499308715446223072593524934846247682947409138657624887883793489799072899747396946515948032929623535496347195857858607171932405110815704229217164540670064305329828115021866603448793692622381434194179570239740458585088885484158576134958304663848843918609757760714212180283974193799319713824949419665168553030061281579756160689691836917699638875387984327025442301235160924016573794689157058154004469946753372571690330139029987461296004560226011523633023694254849322992430807374931954029618097988605998485136921809417311175900438043888599363326699504053370381604251815584752477894488424021635742889077236076740381267501890119852503216212620378307583913892655980946042670585446114564971501496615987488284995700005483321109445673630733881648400687668950876734330235712918680163238149004560374260698781066678732758705948096887837273148974152959626746573638913863718012178319997241782806372445630550583206292892043606301684424733371857273655022702324269620746343034832423975761098805888353317113383732713483577482788330134458780226574885253293234640478452028580850079592062553578772226555251224765500896510758303580875694155894056232233135066103048245299476326336163165753052471453338969000243552271573095577505171326954969462647729297117464147097546428473681939401071424312127811595038990822786674835455147329378112538632215691801485805322314673777584263375953144380240973106850539404947123083991566945165422041152798692050743254412937238727087826599356741903463027688529182021658921759494888788142291366198591386817224537159638860665048901961882718177816208529045232260157550668747637528973460690918290744083138089104787560012692376204945024368452895735224316993752306186334147179973120182187036784905071882374337625720463743771020040042791198956011278345614849789112233508473905050999172877063722672191206207774585432765999742294367712903039489021144550365911807138148890403623952531900189694695926665616767444204506503231011064754226023181125479058179764693566830436978655376182389621116917772423797807776625516347766235725119503198449403481469902253303718966767358358961532421377473516051301145024987346536622763266358812052747953287277894889355696959032243793043654952837892411302823175371893903474984163181820813066030740889014540074230562748542785224425090901922553705954130126479378385864230373241823694747695947082321002628311575138757305083049983564572267671135746472079097883140321315146896495948589149190642615321637891212202752171940565092448271118960556498623856638806748531782386325328544467250586780966368292162106099284046165596822553533506834985547504057293768896354182479232628159896336332846893492950563609756068234145785133700503152069239454579312851819920894371565898260151804190962748350612605630593700834467734587041969184926480857884398585706071738154512199538736632598603417741538598779041322165173107823686230274425142926757295817737555213469157712356044189084560480355818385623487469421760666115140807125544690969660751173777594833638199337430057975299269780847016112808928333794594865503141577120487629381307474382638483611586761503314328852123802295445428006004596109609521348400199159987589996923244486280484823302438190188935278776936029416527886083134907049974789674805255255821515923964697990726386388461886612359561656803218665341985853482639932383747584773838078204033816367131302720638778731449505463048993086987297084762372044692507018411467513492266540548822821238376569455895096469412616579593289335036969148535572510951171758962234297027898702252196840934333271135666430772131058268545352378714921371306190254720380131907171257179833594626346809934708584900874492774450638779779387005971779603109005128443149816607986578824566667279417732446943392197355216994758826089683199711019543728584751316874952335056948325878621550460553361855891760437354717860376442091407809398747551010982946275360040556630307844773466598049478015639320572480673844006968605747991137161356661916071881835561140909848488497018863296485866563736388196446632487589747045738906377666831070971992151624221129446600864010635678915481732904008009815474576513335274069438003688244732863683266002499346122426494214865914944017425692780528155968543102286319354089851608149443681280766081624940283475492163981819609402576435046267377347104573512090023809456234866012148611107885079217622278407469876993923441621949331619795029680206663499341360857116669259332046778003209662976260653375626550985213691497288584090193226349338681661172221032103437803972677584524160711872564317512540450676630224279056968528229250158357728158655454965528991976277293007932577401973655213560239269293311114159429536964385866704337773782453042424769795322531826081067487387451413110803602024437775216203888950434263602766034305607919351540632069793169225984761862439797973032660463961868272840376310492413229915044413969786437255024181734357257143070980154316070482218759368129515777339788252079436131873760070491554628656655198028403407180223652486903021709680211318604561046039768354663163234318885914549826119630836737367935381700828503928051387747713547069030348172968028327700692664444795449725807155923334781839180836216252512046097958516572111554656670264903971735688075647661986947023397198636835669187559242459329951168264267925948651384381931513735958518686258220342956236741268268068623745519536317632094570176554484421520773569713979664439422896388080370257334798856975754899750493430968369946787841966930957458628214370749861485877659580402094038329756499559166833978781251889923984438516986921917626200885300541734890345416092180522948101880979309442905449961885339539188157032302839930009516456670593271735275333774554090086373529137471666545074065434207714845617457905735516949679712437730063347725779671019852025095904497408841993966311076658411084121377262772136475067477953072793072725195200573232958050825038452615754179915126140298141201155319031602564062928635556175206726229704353391266926847307847326163608778125824763973585382664232924242616176651755603057120754522524744848159918100832251101198426476419384478466013582136049962306000342480994494296761400204818002655613050668050386887311243507297112793948924654593812052497816092277917377959863383417421611586846278982779491987645895150723201979053242228331449511252790495477386023022858296109080547778477452734846885457531380667593228521080977324934859011141788468030570890906196968906621636397540062144617703509756012780611966727271307195262807676140444030691046455485695345083614792429663049835244285224242073280450639004745998200051837111705751893956848346718033608809152283764764817296253472621019495161099596771451431744916365021594655041400333239261713019347129158751667192489972951127672340612239448181656022075602673846716840652335711711209900735387219899013912017158442517993591042156884022257481030073340762614386031015624374065664528283663961655637896077498807242814445595033710847804719643690512801567104591925640495796541737269386634942647909200194425179443576884169810083683995190932476157585125529981323009557435670865720114044445108453363139163123216235149293680311139062672452529961098926489272715686736223063219442814620253985475737030150030915261164100030038409724765224114227752620735783724315337303298563782226917891480969037741720186172750212125804312909375259177238475919627090302634894195170601356502004056479187734722911070072714626566728801555335293373882038519496522947557608902235140589451424175487528584820885271845119907404102643236806387685703567880279901123141170316934175011807970640124285120833726163356304559635315320787680701983512622321249513635303906329850076917349475133623932380740344852509281877565434449814535730078552246330306555693920151884782481902219114001704075234373142047646888873729608766433018964356318971441487573940511627985804103439899473419850223982243671229487612425196192042782497350251878550066747212006203843363041143020453784759014207022560110030603661027533384696602841951574732622332749893189796880760652150151003410478626189078073933838113707158323444685795399089169314183228177829879800299030341973439035348898570798987754525841669402699716449837682596185722100246471425589574034327344234597803991075173311581817074736638915924018085314672636010420272794844338488372616866152427497438599463349354624257827434105217294206667828046654024655905166637873437395010266135994430913386462791309192655714331523244891688986105908939778059510420526594098059206808540040722735158229901438117297134648163240004651898665150136881664980101838001274065908017673335186185726667786136422289782566320306935813376124279882026760746936323734706456554093403506982980570587540306820135824326750446761583299007996481224001552085456049386832314176006364367553589465013061788339027222920006443424365789968257316891106201770365178415654028884384036524496925362253006706319169887883793742086364445025407327205766416074708694649811514552059659331980930400358763951133639027097637185109900887936131181828984856697687671114717608577429586141683472133960414589681023260794415947408106849294740538256275525433945395142091999402030583629496259466330429720578453694905094021045740480020684043938983610227596047560257486881101988746813098842024823006392698333555277232793189760014137815650680073367568501618006325666266160845158820399610062673783695207660356372081432639144887170085073997285826118975397369920651509986323479700633771749857149341105705033333171909839099712690357214935252556536722045771647769178066467682124299889433212054909964051492991590227432953139995513791057075397669589070175216132190374112454427972773640138041980939055101438235919123510756024860632368308782522443033999066465120520715012878792419633496205033896832730249365148729575982938919139173743543499477636595746464637449119196099438574062871732305272626982948828563710923903815266815585242030489501439402691524108863764693709511361899359315857422530613730232073471627760749734154991697229671310848380421621843667469635114427433916486999637174875421789745067448616231604512866214629830379825755278035524273005339347844514480622931017966210474010143144768630570376268648653495759360616133668613321456588714950755105744141551080557253915749581054443528465839463761131072305255517380027525385460492444261941983471642210291304941616213655196472646966672562625172863251396335743577455025153963022838344476128499203885984322964763729482297859353292703611766751257019172784936335916572252535535682830520190983661483477149139114913194348085111348580192971218660579341627931263333432896853377637750473043316066003288514854902479040124953846830594908853651364900744207268711543221271441228604230311489750031066923946343063613984826928967933438420157327709262199657695352857847414279352440685274039103468484110455505049207011968131591206726935663485718791375690532650270393338876721785588734333404148373306589199578146040208421326159291094048449947515125548120594893693102415834546608385223555191028033648676248588304736129225399489327272334750832241317832188090281781179974019439714352272680374801588334816332901054468403692954672969391457529065092779328332739058819804205847494344024756845236483060530730087670861907844748401682319134693481104510242216627562995403117131694737259318881929159193109149987561000441311752155622826095602684939417556416170416131302822042515339032528902489654112315826600373628842303871494540549963315143905792973031844095912925707913578382145730459310382766974037637845481280117827949943891721208126235800961483408470440125168900115927440806187482008828232811372900864509900323199469642525907708293948206772370852648763872794447402748491454963647366522344948366308391794991426806571017886162846685037665212772004082104574095950232047242804659720576947861745162720415966656659295033241934889325094650577579529218796084616620677746385954731199853535626660909551885462121534399207309204215328661502592376731830124788258064221634829982344387637216860394947642248430950259080418561890117546826461150877545979884048925678569688194299535484018247410335649277136271464682719631817606168406445069632345645718462199515556737794203563663644031347213818155720180345404216965883019815846981849447040828478108752019261490384999030090897681936200860808705816289174353307220292430064829470159094777255824344969034289963484810908137476270298216320233864087776621793995945924719102739437689119837559166144761175770221333238249654413001337151716022965251569342065903297970945332478441703595682968399813003169741551061987513187069509463812495754335926980066603387815017284462972543397498799400267124624201448407089064044373887726809734094658802175310646264526866132133153791168576321198985279461419390643629760937855259517832632144652346402276212627407281938022424698603470563028747559532800424145391218934411386567742506485365150644583210687742991046003299423515039469905078440936642638890206403105558747406405920617783204454152915851773830656668068236684092766221029517662725341424944792573022159511025100446977809247842065322031558581208863387454398314406875560655623727766367989959611322775195259392355223178908897628137167376996782144049494978940487777090187036981750616899694696983042425229633688396674086192112469734672235940883635149469102480728123174080218595705180676140016434912983186788379537977697886429398645431333755945815783810009783669679168061992357240979130716774893875773383074599373520951795025245546162011230506907855776996511220769718217712303659168418221176683108312431807682609827377444710997805340474586295898554228280132937752016644499930450624845575792944642153516682109688594447344891370749795013333106317212205234101756571920077925028880391839994254248282362350100364727228216487383708300978066939289887217326831811698418610450749721559942925082202511379760832734886582150809773678229026788942495260730945352756663140387858811841866254125871422350410476021603446937608820479962636317372768545131489602490224596583803493745981344834395754006794051475075590722075481502478008820162705315498472954046864699503260724498072592542846907056823616906406200868963707442579211920580025200539757125878265863709649871789088791923050297794606849117635085057301599623267888133286770976908784268118108878042452610270081371164385733532635944882867394184656586086192135651188524242269630809461910905095082281328700270499979895845444659842506940916347456451941335478671041115115480312648083563214957678710906369238953455701520457439850473526988404506616117544439632099035764954030193972982998185480159954522087119044092415434194111590668029684720606728434767989991840372232268294952260883084591335023048405047232567473802546966242437297795590780570817338191751729101196416479326056053166097107240357322135760192198971160388342634003442347477570119068988059771518853566177239527636227931811985459841047273070928545973741783551568940289829099768561064857152303981752244083103688489785775781018338182432288680453173882428479520840962780711228712299948471657626840577395680727164713306776063613904363522430224812402517422216533084178927907940235787953548411864724838554251683727704933951232201310914677793203235591994358606241092337214473801301707344096991503841390665701672190525708278059221698866003270482806644502285954533372047168508614768925381154301628606483120901088144238928559699623140685004059753995362668725423270470120079656248345804454909977072676912995322521982123497064429414274542957191858829037203846670262010993991894990888639322631805566894459749031803777574852530317782824953273082387223301301194880208836371482451765016814569331911819528426227132720276100471597034171709176492082582868162176025934073623333346448969075884579113972976287144014528459549518159853380455776089874640385186257892947618334408623597214849316883200904876663314969386648209308245112130733377591178336126020447870254906540751827720070266066242577879738176473706207741662205049872839645219778440094900817231412285318181719184380109291998440494685229198173926543997335326920354312280811320780404311631927775104938903670615304469639753830846320579102191036281379842428286884989250320641497172876298022734752474546372271183885546387287629617384700145438073338030112304327940832054228738060857250718933216666806198142918779963787678934500762735918230991832550652028221988909512058347020269645941981459369487472308227014096619818529193956456123967728884630289837852387040723284504857746987272983730053630482407381967902592263957566319493559469285732169616704298722778412152221714871326923669862262297956104579340786026797085493772289845330559581833581407466294592603685047706337150585326669410452831167913891020732368152072005132260931901383964648651656044220048698420293672115564536179248824238745273866550183358033766764771832639747385355703253615991410049255839209587473438809401664898781844753987807188787845104362222640135279386009240938153090193929179524952306856485982388514236104240512666376965034697756505857645966483574221011873529773744617551236387707029723433051042490501600665294290668117413513338470822197398973692968185511261420510406769193638554592012839814037571264597450771233231394723439662860015068651105285011606994870733977067535613703572917243148756771895839440948021977937174695126766420756926283207547162129633461381097391928705333431349522792118628878446162779724742575815053377647847736948398330196619543379504462460880539827594282193873581588445509435748051357532738731810995581230743370836143820336699294520240195254670231445002553017313504275406042286066291951070532837784907637074418629610026335331934420750959830611539619280274950518176631046213863829527271224061374538193731144838361807881433848187870061161806886147695184749391170754354523547422939517658954904123504088877193182501564916516798065580543493200278774724525873902868978239177246027049620134321930616823991883425767314233989130307382618458535465391846576220810670133891646786797435884505744454033681537624865330034651392091897401843863388553547554426244176691091765149504179657443044699221726846665716637199537346824416502767312456987033888563611441558691565803939909571240160157809061705343260773798809551893258975648902695710054189393032898904162058260344919075268632345004659588568931747691985705176429276255065475319198922674249798536770973060287668750939542802001887483178289017983995454715683899692748923443794299526250082956086975163876712396966979229062601404078592094324888072765841969185388444035841297275121743305355584786270342156150138768943859854722439785241622722092503701336934189080727892446322555287353475947382377081627394116563958911238477719673067688129341267993029017191631190851116169912146480260398257168278831077756990167910485688024422595322075674230992117214746839109638112407948812006245914495987252019023166446808898830577472869804320661238450554000059805032096254280004608820980723697150788008168441725282805416758923038708715235533610539831291922094609239798241655643537912294286672884809223747958702312739760260401973838883543840935390424422495425095989643005025679334024515762697190995924337666152257782343547832232515597971783968884940739806809603715730873949148290002424862116403915587489582247830972406648613523603212651804087167898706627926690756260250225328505864590917551340718915986686142905612508026949819844044349702921657998531138802483633626516688112727575045420807912456394869995685746191955162222589049120061445243474880193239762125972834255529278575539913121517814853693018508214921758783768362252649219721540290205639149818880614014409869081428852833683283262518514982031516688968137348935501631873864744710613046993618529613460240873551206303079081547830056903733011584122130140289096357535937497799138132929822260518486567375738567165659626518593701331659487824977471663041789405380963869162708755569729799064560524475749530064385113016569428001308908776047038227558570412579952909265933699878487765717839466033999377590224069414866032795812587650053377706261276390502769584422053412326251339168076948645027347421240354846482461871468374745401065014723615435573269594869357258053977423612181091272652845678695335622833451499085870256997965225566083645980887489222057364689161350104212251818185632702561202601558159468050138378017863457956831339461996784605531114293657203614283428335336943579183503853598291416137404259547806700534997991861412108987271945875049493818599997254931229996771353330847196905991690848256949051421560320297779496679354873762975600232445409374857389207350106548020007750405719230625050948985244800521918826014269077000519406814225929707119044901853620303800257118266916680795938344853008269944874449883529563390972032391546808120414625972283677186901726276297359952378055638231990214048411589362007395412579535018910240028946910296589594344697083962009032493253389700575377755916917401052302109684980685517620973223942761388882252172820009781693730711763534483538239530549085884394933516742471141448079436409137278215725471131732070800641470107061597452119245808155441675954201281837281078748910293897410359694699514528052583006079656566615047934836795561799373685743201236757775698134663974912973498598394145223733467416926168242174611349745390603943017256166103239008391315943330951299309371982141715189229224040715237812920157355157112019543210163652573608997374420814325128802013106659133708891394197016526272716465632848644839766450721627114970436541878159829141270900348109143952580086693349861793876625250079980961904870602532044818829512466312710596225262832736151308866135304182411526516640222920024581164124704899441749437079455448677442656884045717983123744132052124267565229129888716948597972684446921769074982328963282462719502600603055099504190407976310231553413468016919179033477096712529517110414357344393791765926461967587731208550823856373484854472549705769587700605359148349465834049215664944353028271588107688218208664389348490667341742282718702301168998006053955191726959277846770808919209492739518585664750200896191931994705755580963682095045359866670734532701554381223113308572014412498899612134653400065065676371992411266080256465363565370837791351304605567138548739144167577197277319630273866623771678422092274302468737170689489976330838686975076370141721935089372356531129203946142364190207365159849162010670958881560476099147706991212542217826519180849239602827639360485843730450688117911618891765843066334823569243330646164020621044328992761567175618916913150660549208372942703303348445388781210142254016465161746034093327483487370062708808662392415823808137963130678493921324216751830049122947832243687870895107032841728073344420985052476043141629859949432072274023669568929764161356712201491367562938622957193603548842939920272812697583237499902433775945175907898965035614762356253839946347359312476026513889820223883893666819054992348037951129822369348985299813453114682528461051202643029548785979339743947695140486606094023300472229909829017484387186877524137668877458820466202270807164015471143843650920709123438492677016980838306375858461104562731349231832653281293497096299637653486558139184835882735231310415633270008121475430263037918055548825716907760301911261241690561384684237086250498220198078231720195933735894893306535646799399922331368424028662143555994071928941560160841039536704289887744878575367503646332352329927311093270828443177344214515882743126129564797514001548011251406097427204992270192844520723353939154512224006452284044512822936342858415549416732675605905432115865898553002638163687600950661479411213587198394180361583340665862183939966012304098478049826173262409271484355623703176690738216818554721018670990448122240252897666787697571651266640630203076196654717887146043278529735635193042697551095931814729875075502805245927819825677820190180350067633112900550338224235985179095775468303907377571682965784498524116036158565593308822148450905190290384387253760992846292371444192621301207198157627157639993503961622440583574428664055683265413209551890884502048485369277048325766768965308984634818975800605846593887080196847249515572877187840764157945839292103576642395328137088078868994454995279604457841898034352768914969978490874696171498121698742827663930047631158054671847380024311519970164082443055899757204114000723815993968785387439581116293533834931643877804038227210351194736241806479207810156683736322190626712610576463648608418240249500223654718948475703644426204402194487372230320198162477188077586257399099522476993143099442402359376489954152679663825616751956554302156303422868318110797864466043100755596564002277520785975313964597837632999866727983744296123978190851057594854667883803349770885849652042774608498515558860145682018529708958835630742465006720681249434105631592132517327979779198154482096103361599250011863677347901040101718507435073035777718478254785879272290273744137819489370491056723602655264855481629834902775097867154189140396825736829096497191713024349757763690784918685916245950144108558246611967951449268413305602708793065222644308310983104198355360513795671200354668149420813038519648835406410425682608901818253247949271244299009134092550346723264752346717126428361376766390399614007057902566694109026389312881612813198849661331832754683503654334507044158229369086892902955980775565790721766939449641656706293915476611610270369879696135931402421889730243619515338146915339491842374914021387695546923525580945289589338976792529233009436053176814534957275102351487176402306970937788817156386246009225964935876401315037749525234127201929334604845751372391498399692668453317709571949259833313288191868760423574955801378170037445474042714212074360370500802871124225217634221765786673870701692383627851487943293874468022656888650410661599564536209976863641781776640588309729251674054874465847417225751780785354857497792891162157566422098056637484842285861491018986989234526038132932310857847224730151181946205759330891207552482199519112418025533001237888462410868700379522055469430664712651114390143592935336691833689410241109482472124730237294410194967311186662025148254008810867719079630459390523437929540409216608728755367572690278755913463908440430608762802978805657019094378715540391668735742735767737171861399636814632497201630086142493978222786211152052627820627125647623371828407109627206663154970989027405907004179373258506439081615498684530922514413021413407104222565272692478154546089819405195810026784389424544995491343929175401387894008144192370452013370509710633291154987182033736857115011814322746998581751329960084137557293106768415656884855026656168048646116232559728688914942312171191363570064338168007839765699180526453688438976689551326437172403917311381852653932031726429515125566625144038794604055135604207701492441501170305977288812333213904874214216755067208592947771877211130241159323644202571435341951728118154825750181259221871381466435193420409584646115688909395389764580837917894059903600825643584623430959440643549265848855768857724992042173332161945766145840691174509534045260314068912231796457119055800125461798008623335216360918934081417097987147238585356876473137625579522752885972167310508129000769838108303979356101479686431207817959663212621854034576743833098236376540053743473181385557331175810262865826493608911529124528915931164251749986735579525037173137823785229221597298227180805295400773558817453764240412644931413481333636096713910711270902761962883735101853554360918411025152269678032769748973903382304669599564696174841620448998042003494563411931586293552753899316819514136369584819617519506230196788438318657019518646226017711410023522910832774032638402139225925035355611628591611899735968133146571523199296840560173282861385701762164401494121117995572127640066114363456197660981255826139799535039639741492853369214075687607798296269532892391917623596631722080725058373180362828046460244526228944869958575080271034203756134023849144572583981956307616182644826805178164024648878871327283475284008796432694815144455106339701212947181900922900414117305064053804626753551295849818111754315961952338670765313535929064730282619206670525327399343000219845851945411036191313131988970749255841894229274098037928300130044171380799667822329739598662042800811121604550172295646377062493083002662345655349667797911030010279903205942547159184882138668886713915900658883024082262416189143234997348108241990856518003622492362753111903455709006144325679066661464412590930517995907632169489959916711228846919848984837694580700843403939658490676925377174030360706060111082883032604903779190745928419088824194973362161720568860788585269869737620201890461196977279338868996111095215830552797003749865428195487487522175373963674608197739288184352390886014993269807339282474497773846696199874690574256266656719669538430557499910901451565710234334461816529338332828731865022219199137099724548955527321269104724449424266076425836144587189696530682186060949782749793799216558788013165791235426398460173513096383737329751780559634476214872603679525883567583779375751589647261158535663370172239294707315506695265321136807797880182793932750624222463852365560610765156227428195641681972298800015576397236670993275974658176046839095205985928309689557789708090871427870671954608805376161530251337777642208308571303528828888519458344784675856520283595805009039305045136359296135294015478607571936160051724790139721517630676536024030994239025153581405375126208766386134469778744967419673936137349473527314765386951893427381410334741831146355250247762143442053762749423971754738061591511988047569707050618892778452470811048137585799717089264127164248568861500915046597457548103600042803908745640344271649349832537732107913302146954033437401601496446493259225668643298621673054064941443329848899978319481716584673553560837745034867998578168548376759127496468039542000305597514729560818675560136429060689036243571116753488083068759206406308084778993850061201464844810780976833238406175321065682371012749463879081260226300933666911578494765398570781816840336236105277372233289722122597365503999118095791034625492392048187839263310141261823512747065811440401370820028224920126578162128498613622487382574186551087206986853092499474221538503218956916271125949710855461972714899812490591108590298537979649941674072144035350407667018619815899064758325334260454790452584305992823892175061425902546007012276804424749762043534071494841494097670532834930898297348799666113535858093247533899207808446670393506896711371035350298533341751951224654992958768282767092113169019600947269961049408900279530280357448452320978551843163762086190194093991596968327733324714434511302521356953451128283800749731668004572818308158000466743139701342765393437557622124637949480013788102032822350341626229570568181685197181684251296411363362115494848937499138296195768070523988396971141827768449438561524636652261392578089034429187749942350908080424778611454225175132682402141052741683199950862135078357362666482282479281875921327372516743145077045560165655698481594181350095345823674033312252974218001178232318006134246311394951602095611611349441005417860327346396352749295324745444682947223172497823292346189692948419602927798446498325965473793921802081528824445623281653867421568961633083502251540970004592196956952402585464961134848558687753441830211448233523607348835161400620516453769246143137155699321710340800320424827058935587250282902456045664805252647227010071689480277423006690782635043770737742019218268152947774594518780569237073450911787168926621295128581179046747124217219411221520620658856449877710149565279764531074749507809973805498616980769485132715872745777719877605572680389093394765870206015944704665978620631100607770556849912580233656335316514150141896602443072707934179433406494040421925885072736408070986409749039323258185819447887982465709455555767942660375632107729333326864673738771789645854031665999912349022176414674752040983828343706824230445225856520209868844765740611016875905839129621075955523816087696867772648414202755692167626629785575907428912069073239247673629810577442924380451584919492107258303025501034829609182550182399533980850633031711658634511428949231882343157686439523558222816592662370147745145832142472896216763757284297160376260967546597355968091973532090934010230065780392709323550443346421929239958841655345603618028578781940645520521560424719492935274662302541195502868160087973981547928854849991831793453570308356606491793346643498910217689920823354164273672763031049410565524610811395989135563458684603739819322650306404364714089988026360780945488357026793886169592474496733068984499327084904924048336798738962001700711156734784162259475044933757422380194686443916209391271189591716792183676341052590186524415596648643562162321786994822928589334501753161365736932734362468647077561504782349664924837235306767668561245424652280489103793370146374480526779014507602176426132834572414888197842590846672619612627592023859685804137755628972041501052938845303262607383108039595407796648137225360006553392816109494648450070282925913423384563020113155437289794189259392499426585171718112306348989976971379852666990372530336272563448300717494692145724231365692961293038770927099431175951984869201666442321948068526176177333410119631862323701317854425765828860777120656718238681317799846972895245151501010530531565106533366561777961371049636742420238801958827699958358318286293555072708142124422708863846664251662303960281210801927052871549337650913507081674039618933726553358779125171128243924358849268079459466325160161687055638499554938600229914045710711462004016961114703693684637283753476033635020779328507566587949735164337552735445916548301408107680479722794839501002315654194451729166557971894354934398749316354001572828189921065712388006868076230201946316891767239459049868713654523316414359813890272016252184501576112678882453791956032227745739181402994479932641653773566982173345034369093287859656720170193525265787418362831060155461327877805260547383925757053319041200362264873143209015378702953944469215804134853190781323139780825926703450353361380190227452296965053206161906362580337040971282403350622168827085011800114955787731575724290639600718365916220316572958024163182014044865815236706574664745119854570043968029895961159912676068758484979713387725759584709947704715063143228367052968160810517907627442073468445666511050638194450704315892229717120757005213163600072230169384727003860416827191502452476090197629675414506458744958862623684865119602008435846665985697039148543873270209484347069703566930894860790766435288820602682522192084207762280218386277864476753207098441279931544573298400788205810512948779203871755561905361694175859726248296818447552130075915035443249810145563625716393061328865766304692655467908070065353659427708854926685548865662215577837265235730744038263269430814155826000725813344990501557169813802760902623680303030146352691535030966692587770019027857751891196515508190183935885295275105951624276076172688602316847538175599640761867106203546407270779580826941847884207042574239763600161692665201950018021397740064675998484819807983999401436582555303681097015074534726197169984345752567339684270142744172016103191735076527284902223881618307895026872111978933280913168046821487967517413026209199550575092466275591901759450722691375210098082084077238378709462468971937074939259446513408966629247053179110435538251773082059768872589261162871839621378710680378063293580502647964375928783590489905088571332730571815214366438224451755510847471699886161738097114432291523489494332488527212585489447787134172726707845475739329577090597213170162347488210134480414455791458335109632126748628143518543440925438590403978329422148799654586894923688394913995083293430349464137465552439196065529321365055150510151673528221642107536719991137676212429259772501233342509654174783303264441786105502562702169925287156223334842630230932847004713098531188937439371385816560176754367114623777766609608959955915413889058276821795621723596754942366739570048000471323221446829461898201454113520551658224390984314932069395322755556856621419333978890950173200658097110818855849944018968853490144982841139379575164113417222861575974307282708661221698622141147317956860661555896214578442242687007729136091595581083126581537031255268476296634520495616681291167077698737241619006689874946535805885376834831547796361934551117014320056551590173369678827557817923010058472621623065702789892148034824519904230844495859179554883123581009175293313041888846990852422058666986156334925818847219829720087634029911703260719788220568930386350793876277794732183684608219197483450915597942364848613204436235944409612822319121370262226429972307091446319498279576515871709694353117851756333320971675197976897658194911298963945590465045881145651032371452140619881474045501704954052421864177290805901947393210498648116159359941513906446195721717026210100067018382932546337811653387576800766266662277000634957470602501415849997978743485018078935326846126982972734115901770234493985927110427678903353232427933061239961698587204745770222437087150856687879763557563643187164883766704945160062055991433283642556136593253120264649097800426871714800726155205308351381357283273974983513601219223406971623614889297782768080178407612578366172615942457787088926777649395368432338978725587275120480173019421057111818149851669825691874499884593490816704644416730588966997146992779374592161270856878562473101444638407998136549503900412912026425989687567209248671991533927473996352312239795318515612498600083248701283819921092617492138739190327596398117828751580846992342453729493030501304360203520381923247728421626201756359734532919098788598895447930175861797685011182596443259854209006904708070059240994805869040294496256158592898719434711940009284199153808445326083058217161700800983732432151459409892344729443100105051608994531048748852111434505986835953491132148820339326071338762182241591450559713582601207544724049757621640075869964568817146137210060455597224323339611090791474742992422742738108181636705923630912202015261389385708865939618997110177977037500310630961170321478979327510741820426297982517839860302446241637438184851324410838818413840168724304378894011549816921782067441635792803003387365229089003417148048584420638948187088141023757674429718364310337404828321593735293780588713863631542015285203157696574851439032610148401369823747576569950749493807349658559864421341793831764932607782157592309030878431650233633134996345940080670514327224017962410257551990610715336058519755063096675618038309469959885882649817111661799744083510936563455100875979249134241514222794611796185213822724357733621387408463336619707713606706361361114968371623686795597999674501351972878499015038815855533190351157337243152712038768042720838336511873751688414706400617475081983219246560139241201865082271294503455726096572164321828605361418184523465527204320565020452939751370654822194868601781604127942910376361476606073305792129650541157913726395358947120219917437334180532174306560927425765902629715048447709798735162095992593973355781415152184758387227632808761951119653390036771498056208465250967911015956259647932908981338056326280564170262012225731535516424509237591440695061857307194962224133305550133066198464154644427533185520027010655463599155701247976904441065443025094972996139402947307648448054383536036103786807336462956526850006624751984357338547978331420609072203408332656378093119194326488556922842083895284291851888000588166854857643588567776370989848985961102862447794338289163337331491656246528191435093528035190382664058232381441457868773063854487392114190782486218490543891270236513327661743639619751253086048179623470533202216753913457237711340950621698230961177584270428423701954559931719330294541594300572050335644026176261656162844182030550736765161135804765031731871792184248730261483369394614969953599147102189650209319264332057785260963967897644586924104414078681701101392063564590252802849672962156509668490145476857318442391195659167588529010260312096364366985805934728943437268088811552778000019662644659357323875685651052231091857312729910059374639295660886811315681889481474257330191934422720986578313724961229134183433317303155506759723144685099788421195884133662582940313430124387699571031797609173472996028278917469958958457740502360540855305426867779452576378184159328136791696244158128032486563540760853763117853992236941522895706451834576799103127793325437872377137897016463704447858235953581101242053638051157950480100974247643885996772175593373336207358178956933935764161235361461650784654349796958122508721915993638158309703952427611985936602250837316512226780869355555760307322404601162464686904768682938490260490651337897494337990461682024479864622789986506588135108925663607946313031017128223051227722137371763254122427802651836080463680041698137319708668693619723896707845148560508945377965687838180424587587937481382663519714541871028784489013614216716096106863936961576140866936100800419946726323294053250700749964867472526395348068911395546938180034203708927254384907242175150690941945302701118761517967500562153973601592706860000295877833185332622865708845534536429498367514664120721154967109638730579030022155575021621221368191182385190267926228353929479745789272203256767222874347379319114508225425636783372389745656830831363895527377560097268281036508489439652635806193073373628658767842554325302507680119515533995800099722563796849373049169399313300817811667514923125713542783371148883727337377854900691095211738826876237654185878975807353352185607628311772511505958743094396301612667071749802878007189685716237565092478063213977995173865070590209721392073668368030320978900569345102427865367546378576302317607043254114389451638733929114223955200286072504621561138617431998718810993594877124199106274695769639201733819876138459547430102324893198883175583028377853239017529597393092555445021772355925510111263965041984039132818647326850596035955778658590693835214942116309617525322743847342291091148844068351574997623775309276500628387505180271679623622644596350304954112889944129323063726676967805275767878277925650839349791982198772301253171045390062545166576671529265516477995018543693931226707993455813586005689075564142755130625684115651985215464230783355589076427402833760207257254467760183637045258306518628926570420590126507753714542589057010364224669724617686952946427294642302180988780065533223219758682730229435411310181402559779499055366174730476599499157208156891055996769020935027044949522667218177638363644808818776834272662183632385375459018066945243335810188499551872533143667616236452352973523891519554886814442325971492589919444742212827093601976276503468114047568618405348360412143575137656413268472381709908888314872976016687284224587727602268214467922828699825550659967387367201172333959045075744465204557959851168868839239011096439299390213525735951341072365658547683983890997280415302539911199277000493107746633697319860796330127512846588837270844644353448978859437175272311499509157113955506122190323308326349068938202729401403005685201721905103172892098400600233669704261751536078672082196764870488810283495501135123390469411614638063966699821322038541973610808690022492110889624213180055343647351306818004786272790085767397653308559473067274816019787072876281819741838362914935786394839713225885232326982912521953183648720056849632622573797683384375592161182736995164232432671432925661044360438632623397498912799351617477143066068118589081626944607756384008813129195355639589522969779331249934614768628712234060927245360761118761150158052889242146460526452757679385317649809369074956445386293325408183016763064244662878883594255748966330724648404627565287710475994842097456596725703488753640281478140930266757151827752815471158434506637726040928267089185997548185632751453501787908011395325505198712908112523402766212007788387243922793186338878955150957579525225500864967569896212927988091151857839924420465099255984180496526136286857252711818865487001696135021177473264306268799242006547499725366233895319673288150991342628793832595953677809264150299422131484023514620037292660583979663719349976028972551407236897799439749083782793111822432356347420165425607513940082293008333882787783972547891198413258681139691609615692715209532816908201383173775762398482771642572131638486642953814106899687049536710406458396888687546219415542934015070479422014072121411976727172990369585463540271209361768279637516913680789639156097305691466165359536583677003298764619316734388047711143204651839832977908197529458139544942387777890483682487391828759519199671793219880604742851951365540359241069409205175441171964185660659690383006214593057342141875988698645983489459792159063123011690688093924064322874310905157004543948510086070282038262711387828798524365771486127820844818177558145465837052915673436205575621571396122124258982132925002318305474090768926170370749982876248186870824541998252062728631189931471573925516352260782106147606885862632199447780330013458720590756847523631154314313526432815020333544568124651007680638450929068271902623368815277574870789523424312062347460070536222168750163865259958933836511039942074898565597729337879321750281438397222387756471321829303001614154286075348851017357469250081948671511383837347795514382761317057365767868135811116045131908110826358886278990569519021807110033422593600337319506890254528484021715369700372754110148699235118029182190130424629893089239410620438357817838705238657314108452591475242904250426371623231450635575753093159659894724178345644084795318440940015009073096902662490164678967510486420347993961788097261991541846194821138318146664284293548772037997221729871178199540818003095951086083899403941043584261784646020044191237786014280275534358457868782868262660951687807476942649142258432412957763598277641060123767464959930822370731083443042151613538875115111755847738568389137596782159686307006896083418281633281783526589059145758552370415680702473807979181985006399927749294522617375715957560452440492030347745528165906930117163211882695324311592709277370324022749448763840903772676923577464871978891397502149696385197107202911599542168525920031033228496606048117950015237619384545314149238268139973184419694574856174692288204771633356419092511540227613234655343583473577252438430988446581404150828411632160943270014704412884003834256882035805300091799658952056127989981515967653598642606203542078300145189431714692691778770508395148701030727592738805878942939022298514256724588832633903725893473414465461288419310129822985210051998326633596451556923092897278225779881244679943537083645145576569545162003840271041600960474590645561455192023807473435371431182844523217861991716522315533077083119876352358806615424367648881970262904036328907904264387752502712611093306374002452293654554897390019594756378283116385862245095744941872350018365964974498787450774472846824834549497631405171049621084610416443133431530150742419005483059513234014445139785150476657517604877159314190516634411698517056243198986947156540828859958623281945982368443803377863634170774493549261005800926966182693212596740605576204597992348390017818618706950959952989664379881323334692921307931845342687345380381536381636725516041131678809670785759777318708334271973333832082486164178901465440066194860726068043339423303750863536306361187579360545446598375801993400872618546533942574864987914321680836163671156658012758100819678691329345054664799843455927423726072795383086117158026388344617864047353225311177076381415827313552553189992706937684335440811196918785124699080776091109501720018307571857869920729704471541587150704318968898868743098449814505091854905300448213140405278225451807926867316347674348171786352400708654211633431534395728587666754093002702041198038347839510378711704127841482748858623280531505413428462667356695481575121372041392619991936079541912421211502223620033619245782108213548597314487488514784928543814854796776588793543304056524808356563255455115190818692504343066163712756459576793815884298095572674510930230826905612984187293517904458739142334082113214243729583521105787636703712252630713049783157632087622490587952212594576255777431210979799041683591997280254912329824395151133335456991993734367819145821679388199970557206802528666668088542486756200335609834809951803090911344822744271990833864341077214431923445820518769210075511405047560988559623148936845615252069984716942266470312825680259188417201496094135448597608603154726419755284088943807890605915447806933876660290350927918873243637484828861201282865159681104284886919743331109627805254068921143930578726665182143570306127142882561580136264658941877395373492846471976230009086968835000863546245943109119443417128195874913413904070618473394222776074289146705195867573708231872492962350711593133685995707486583767842234075500766909958384280990660177689337617824946571507319019175019270837592708882911228899828576967327333914996585225897438585277968506390130697081793586704823126104569690945279063640273623073525889335311182627934117683400006260150697922500758671535986062379537511197794886258963824937762939821193898614283060318678392252653555945738297157933894551566364388879105226056381902899311235387831800451487561204158495858854023838935023928480641681570906047993026129600366772339642041229722266322576529867506028625231437421926099805702996652941090378745467408871105406555791792638514935755563030977218146964985208090282033004442345621731468014189805830215440559825274523824073756918962445665042099877906222287290866722753913859089432327700822240242216002521830508581063816436272067268204606098825079112463016249677254601077615507130975775934762918523621034300119444012172858679341948192661281709461777738655210654876849297259715102796545561022108635574396872521000602347087422882445754332272949072416847812251475003392953128850676529553353796797868654623544638024599885357214111051345597335314895805034612660593489444004967271350159730564828181581002529823575469731260797552216468012701016568644767418345975802706088235963122194929415359727175849646431756300616108008922391494240503808116651669841266355151322416805592639651267579629413351808893806166280573873180678009185048435218163962263072450440841316069184050114877063538968148894368438730030395555906749681586609299594948338852848288425281462316496722397124470320118831656021611085456131280465186934139665532066750507714374849063078210332860246774262410436147194951762935270951063042020115738741517403102243328968464952459465333886724442996855920652987546697583287699935817580670804617011713213793490061015881153757539721491069603750304930967570838355466617582122817787336691811120974554780657252297871398581377180869893166567262227989092683271807322940635581465408810380191320670580325478166498648644991282738203085849482906650695064293863105408557149841232712259311821851164936305134026023526205502288073372531352666611104275341293577312930585431643177011621435100636145723262968158125374528710707572199555941148205671296282843388871421537238287347661081620624224542094939726463613579612950315240522532761645751022759182891955678170421405429408187433020695723413505673216546864810468123436735249009702596764163879079016450619257835864571160700197511356907597979745994376408958468516240938309226291253483459650073458885290905251007228514305631996757778083481668420640089646159702266473193634603059459201305421936757464092932518741440654261043192674842449468221406101251309672772458486370327235284527234462920255696937360056086930153342246576307430691660917397157518890311378761375114372106744876608245754553948460213837343545884986091918792158378728832679440845672879725383353627316230492112236845655132757981646674466679133748376493655869373100752472331561201614191568787107324390444951139141769991265929073592820943475894820999037236478776786625321389112376315044115273884605889599491893237841401789157402768645040571599187866978994019098133713389110170860758413386461455251488412566886076340311734160373786921584582180399800697618949999661913714561764930215787191155310418210139660912717541155057749373376257531249935009998761293176231789241092933922681650540908966506643936432224379703492796419781079803899358076628352748047178276609893804411229449386370996856594522339489657954731483456946608283198167795399674490911877748483832282906162156820118622678932816720743787841397188427999202284964296151328085427977024457096276865160838579603326565531285367094303119989921372142035698969365396213756532547582371565541485269817803517565862967366063783272684552155417411153628137290629859486387863508180188232076847331708097118657904362323636649182490650087072165012507513954193566194995403549365138000867786523080083279810886457424960562153600447642035820875016612421257703979088052371311181711619399468730867686983052520914042090987688347550442962174168677999477972146997817424077366035168545156608811359627824886193332441642019841889602326427694512761967221241115213738870851467422159928789191696935382017725657640599493573964362103556125830523249689473870007429828404480504918836221732583622737985936455665821484961454131761388833948395943301389624105840883512017096159976670554259469039503593576651888397569355874146641798825882620041219081732433740722862001590144211622027741938595725769290612586092700134015240377861529580097104535663817590502530362014818050263884611934578858113009359887383682226713566500356945427421813096401933159217614949239367637216186401069521406051406785279085808614958224674603397361771037383349098909529811341862763776736637256616869620709849247746577804997872142903444080067950286610140670630406671300113269328283438503511850279675576825204630418796294251074982091720903997258420697131215973510320078435886222702613516092229436191607969252117624458514335420527306613760819966985163663175608861191193868577992302688458853217779914996887454950690065963788950842955279567592714334804737866715366842885352959813796798377086405395270124570852047753991285175761617677395222759106096873396453267118504507902736331114835185220467373900540578506214267550918220850002502721281886542995930168266879325067611393441817610423883395993813290563217883784699289465690189987602056648507285293362279494745224617526079631732637470033521714138134449219068475005768966431074453134040191914651832011290050790515082394603891178633194441483695110527268515968098598567833513727295786192096186545823461637274755348884273431597953107135948204870941720282163083797024679097046779198376371838636250382495763684508202323389354108585510686546625356583270041837219590897317131971803493229239479585866598511238592439303236689506149954124840927167222652258911110336423558501760186568294327704087816500525422100130676277054110414637921772132991539519587236848160905065313018095116110366643105207798494219612066676858584217479320149927645578468731892844968385809879168536115396539649807956314496934057405725290273947471325573465393494924688890673692625163392210562614084363004661242643679845645992998162700868519202782558268341794546356281554189053675595737418915963182160390722497739390637916307218200089741766739001514662880410125703706361007621260953589302542208530004086493176360840169597513896830165050058678878031163371378747036069278587545017079601974518311153090804241795503557398515501966249153810523120480698224178607994521574948882208514217861115033354323825908776308427790140890171103356771768004087448825272871006557780390438663383437821541306354076187856044426545842561159160134987941571157096675789295068863439852138277942625491186563179127704475615279286162219337163086112073264904271177132849368239014142759535338198349210104156197965173448162747382194824885413552977124905781236821670948441428852972948686336787675405297444634679180793386100505383437048834484232323694999016735997574408075103842047026461917623381532477021617094001448064475326466770683076184017273796954878984439698182898652452485899446223881909328492237180211399764314693755242025229442385246436748689129943451074561833431299610455557143511249004519473880992597916101453487124186137477747365347212828397319832884997749776326378711414072304737265640206004841674966320661482002014467170423924565483436114069661866283422992073785775122534488526045449223047683207319022045494798189741435047731685944046506048705891170198172506547296041197579895978908133803830573217850372711557077115713686012728524254324708563753956370042314851751820621690536784325458001593588322039573119443230356554517125160752925822667181287910561304168613778498630885905131856407005445735706991360118986147082704618317422831920763606101420808772680881809384831127868884894731370859386727501723216371740065674915775058573521680312771780017078534480259924113738396102211538503621410031950857904564076363511606465277665331548792293667123339931127745673954993450093611186872765002926350545808647099353611744963614326314781220005368120413059300600174504472385332051755950427628650123135503576651527640282510545873348618948359950635960040936944517125206730178654275669889866490479846712556172812077391360538193893954357055994819644523048362186267167511428517569347262725858800776813497620924451088830329647781376373850142748292386570681027796517646724955011548619770603873209458362485702449004243530310438329185483747555888066623994611667046767147319269447552048345550690497036977392169804504797665848681200231875031277376093076522828514697057267799224774518928013734420347124997564214629596274097976989892989736599476422752015758630396220661807830417258568587329199913304859101574058118598943653922466297589629034452823295417185979805621774010417870264156950224604951422907811415150346787034174032943075749728455564684912878749681746274959033822534974056665919672988211013060295856668735993157395608065278411158677292692250351505404752530218525005412718503856049765474748241702659528427029168123639470202832231664428599484366973642764900840613937098116483700174145246168501556936957203767967141253329942408498611489115527652019887412031030590466882287477358380082509031983208049157140995372492819018864022641204702877120138570013324305778279480566080384825935014464733931985433640688715615680488889431661818919143078568406682851337382915427690349451350882178875919646137754613491204587217104471714926775244391926947268535250945787706401355749855230380192731197819848075505479187571135138571479165873778950662136631880956975134898524291706444525944516034101135139329333441606764390982905438349267777921056858287854926551320885126937775864868589417795463019736979586909703979376655115924690138865286054920726273640694737385766879804522673799690855852896975598147863970271416354643809228269036656353596819566441807345115415290753688517336473573229274222747162629617019786166862893034509751032155357626258518600946465747732048137996444127297252781736979748170803657210675027301443487247263645354572131992332981710342041320352778540658338594017894912569204187861718914184649129164839696721535872233627409998344576744586244417226523520346622117464818928525447640380382861659310734674591116556403880072632358123831881784160256621489984333991978293611860313968373713811207699326451606897376533426161339534056034739653276906001874629784154598489742757217900997531626522107836271404233422830324140784261171417638598574209208780651694501087524020189419442523212723284103879263648787059416699560813733435700556548250095271278045123668705472260399352921066191561188813598196695106616805460390586485914824521217324714795013333592436075480295873588000624526217824909745610757238675261173232577787363190649408288299195766790731510948250494086762652162939736379554121614528577432767100459956819378268126951287908335809519348942003675404637530287533146977522903509028924496205511555176895125441103077634746307841565730019895422941466005771575026350315330763377476351338530377741501537988145295632991966264803538993821181674746709201294186813665018287479770026498670606029658900989526503209442869786132980133669670388440110608109516530993047449955131697903941734269192833021113458522552595853028667943059476497249598890472338320176092776135731989528500504740067635711170312989602110460479149935993094737945150037649344395115815053778010004700625654877816047873447289430897014417157470884862538820574843280517282234827435781125844748922120351287590608483410880190508809563315972327815210754946386895969889618656661813626156447704583844148539800989295454592847550968616506296484174345249000230990020717513117318840939756898129477795925016414836868000396502152617407400279444122812853256364340996595558401516574652097111681001371593792038987796672886692169705272451972660026000607768828723806394480109474540132324534747889769051338902202985771356242021958237554662068317982762233234435154961418508443902775386091986138985636113277649810466002318194497308189716929303355035160135575510810952097781831125565469148704958403886468485647662149366690391280116532114334796472243047485549157223280587180297006963462215013907488160940709856840856732306629733489220026524752200341046199618064225970526968344278233465010962284225882774662903334918247496290821556099227687692846492394972679547525317206434401659677077661350749604475999277878482803882448343752825015374330538731321351223241104449565556378988628567822262262339203765335430892000713715594593983821474679902078920396507063038938706691884806937930630414432795694787786404049081788554200949526537997640226111832255915706498672214303638853136890319584549818135673034547010468525388107918699420233916175066607794357367721489287688619541504701230937894648686688451079429641726880903269532346829673927741745889923330572462864054207070293258319023589031884915384984541730257274025599053346965275179322058980937266357659264767337032510085617023161861650096794870540514449657387056161616359049433911855552877114089980969645580453475200928823260928606499933145365969185404169446602357897802829390925743172877429518622915198843257615438797898638066412266343085060219132454747587178911040905418077782862824619057083812345021604015879341711540796810750792172172477037719922858779118703783222431358636665427992270059459776022509971380991308444835658695840959865615996867574226200269466481847882569072895737351319511648038077191019214654910707431724285920131304165117214494389168382027540406538825514006503766759982626475940548871824135975594134635335756329513065297735270847789342524515586972607321899635498062413066963402769941767364305043420152403364930595545247678036100704672393415601064894540729237946436633892440650843918162683237448221297263306899746366715802980463928478501438977908541659923790593302073970170605313235337912174327495783377162881401826965868645239615293088032524692589104377386877277161704155574802940386133046454329138201206593960604826212491138032682518484956148311005511678337737224245840943354714810638472982512747557881362394202057623431407287820276916972705984216644399760283236650199239761071996085285236284106551167059316162153220085228635623736111365012891728535663453797017936933629229910561645348928936706370967278237689824488137955520362416941036822387688263117986702602100484033351843449036311405791015578450446345065080747183466312663313315812084358517562451189514372345737838296662958464398255221276449596822714410468812748168525122005130886374930352214112190410835510325283115660674229717407349371693265993895293647692038497954435539496383514630619141857058605806430664890228098457134601421828152566194091938972318630510348008032418478765043770778286410839581517440242365949671572822949223277139276275484110195046536984425549840182110604041941438511547819574899316545443850648399736218570507747215321179023269467022310841296592197509606482525928816097666753786677342081604897433561471405569398468225941644577736172002431292633598427128578676401570206152568131324166825068820476694833155294019041416591720184600594424988844167041478038720965398253785619373241125803454996113743591294613481541120114687876062349800667078155748677292977957674839454047544875895422817871918999997513255767467827061889540469673546951732146791664710930661047905448141778579980948009583157650967230762930931364674565456355166084797580648743461260957904017832255976842922176438369347245613792336398187144111382549934440219867261169187746734339430627172449817420058799039198524799345352126545484308675777805526193021560924872172529562028663447657989273720483928711682173224205521038840032945925220246483167659174631828004866132245347409736021689767165207002706247761218330303788366686104271625123024579785777010255535415751486591930795170640706183137432802398794680109014366193874202000003763220850382102882859281749128865445738783898957116752987224779413989769997721827861285600323955800977575474674103025521328505449020068065439801238827420024428619443992116912380084048298545717881769975730874122646664807890969113715489741607699307450076516757082534241743818852532671912730665250621479889456284932439934273720815533883463783951208701984513647053281709582312611923462851983976046481922948343895739062730749982351504971286277331125409910694213072327868399100673923465531285482071997422901345428102429578501941677949141679140685745376329749820770527401537525349460948528536350625437889308015772257361307886161446212445703704912804904562878818144027095236679741561862849671903317674199550408013048972884775674229867106508119089071020041663105105947377774747791207213412820717304792378271793490553976954658891233351319127712620258093410589038387203549052516084997103439068856465409698642430232741820627518444095567985241069338506747412858532326868380142588221758660180737924214993233016349111458301761094093050202769788583814277873543829304344049387380833097809330892475590381189304981718161797325384436204471861183311466382374800922036764294530534159969840452627990896222084750425049355198906202390217068646057979306039451987582463264101097125307212727641520725535333539869603498398854303282775102482742499717729203529182835193040788145318876167486547840848748659938933818041936638391344236243673829399399491317038259132488013025572150731136748434835689176594047063258668537432616654384955415289077778873771382351571686881484629920048281500229110657476120063446745866087633432543976478822180629608710026770049551002851111150121142544264944661552470427541068763283786414552979411756624118291006818376370211216465726639936670241634999223621715743378947281657898187224240637628023346670362522549045291480239254251837387023709555390535093016479513770005950227321552974057659228731058350895982411356052395658207947236186308691049024151918210764495036062237393867256280253675701556200074615044262562574709537000668600942795686821992110131000023125635643327806737038003750724908839065993733227702749082768005353979387363738529151392105843036669671428985466510455523556532428595096169440502245386993352226810846200373658587742610334414950055161653258609534128775182623209449458547077858428761635582518987259311152511873616259047699311979703199190675037960343822636543709024741609212354977044714203929344298951161006897738257560188202967984036330084704120370875349991682219677968540097642246365859830158140499784372767580733124584246045881425503405654419063297799342989221553651565569493889630628411480881251885825680515139755749428039878669005616924755124435864045190512208220516754957390079453386361782083330333654354296755512301962059559679415219931951598033571687241231365552799881502130226644849084844770001183033491078053957537743810170228171184061407265523233190454216035611550038490673171162256194568205833936058183922105771078811473161033017855353818741406998599453961158000804056791449392142407221557794493386810016714263007793839777322024793934912066342148829800354882082571035147091917699695859380376882770943905427796050085302861436755500297891432404354318491865518546689025747758926659808120328035173819792817467947924074475597712422282406510187657970421859042455519112882507907220838542996853465817217403217318367085578220191578518680397646429549586462230989964553990431565813028697772566659895382069768496369036822960035414979408680380731695928512021011365477042577062234721357143961154441010146540843545157368320157162887942610332927601525673757603443085622582088270388985806827591689452039169729598586481587790388729457916632459989097350820425273381882894876295112554965528149589237297764200595895644260217250833110294650532873225206344742411476624932279802454322818211914084058955731742037209485345971047184516760815790213756234658304675061221244615431677265251866511921631702539294321016310885859645615785781398808108795733785916077331881587571357611714305642940696926291894371810929734971216378466783116508929800244162582401897884860308101249662924610710045617658438381634831048080927079890276387051504752608678807305894492689171776744368831971333219275690853161383911833093843857806223957063335300686115027579329507488380070370377258875384310020871853922134492218170995413181657174334090976004251943678013188045502004826057824976533554180681282617984410905874704827096701961440095708051429827289167607624724893251224060458128715695671701793169802119491103087112384325648049439892292633132512482946902718235370533682947655634679907007427733517137002625880588340384536533904679898989356940743577002143175854502976509015345639444306146862361546239683671852259179268198579608483545164275279838229753984082196861731412035227045744544092418042894582601881243304134934941477832268981050131231303327326867630884108165318599299298438750940490252464203453077792531484429628333526971305200304320692301667878029573461924851728453704422877469392201763620820712257728144261891515074297790158177416918942382625250594265776390237442703947381490614201448425144741896122025195736137046496308034824347996334223008067595244198501910299395213734071787603120510765679105011206358092324117821217710392342796225005339080226540084174636513869734945435814417918435759762051699097873022982061048685039905494181663370205260648344494538973860365691047467990064545150880698188931916822427238915481726974454255410617431881951657387620195236581234075327673250728722040286443756884720136010143084753431176403054565607136258575717001317307844333279438415142255782456826743552002586087416069632550422508580387273161217976956762925193687657745539522331924267376552163593415305471566646187156950651642531826642021009175654669572318771631712177022538757242488706979621409100851495316441581626776560766469237154501200595428641324788279358543113608822297762705350671600026347956507528906080259511720213488441461643074893658467127001084925798658357000833572017132108994720598884956186269698486796554074111712558343311325662654973361395752030381139976751776763969632831336402587358585190419321669207007955658538501773103835405736453106380270389859319816779587551700015546704830659342884957243484337666399807602557244543740586986669688728037097073889421839417263689619396196674967366774885636204945510230452763713362620249648267743169078923146057134800384118434823606473480451132879951350354235187738646559178407688829387211940263568839019955583164218758339546437557441997251672572309418930005700912620382053490016622704892513829511487058121478191413478578447902126908606456666818189256197252943171398249979943389309920817699402576364158345039473102781421517687037785557947442674555078163903676284103189871341818272664591231200613145433498258483711283798797931649658419025433016094252789025738397918169685796278129549481782959641946300593029690365003968711114248927555407975365842103639500247325242421245084938187389195444934739975530753196366691739712142368845043330080156227933285691529790497494573694927210584523736182252626919406398233993697497753760742221313610240290656345001655831693616275466324922611114085906552405170389139807513287407153913733091754291873031243034580768731468600411474931513078581684579404049200110489728750032577682684299963588117196283281328175622353386463103324247977913058881981570201112259053208427077105808850129311811278185217220515358766966299598899407915566538281672076947754135276878345160067038305327820298406673675042972621734241101446944464960587271996695461669015279207105778431950716004592607103225786820211905440347275387408670301270707382128365352125201188379705437538006602767673598267989409517976822015993918105062206870944466973428221533379508621989809266608967276077437865323281715006916051193911614788568041252048645979448759917091648064201013553806048408127718087775471940380404560077845483529612685663693495250758081773585468176115112304023739740226530856584476185557212764900576807091361531306179705859771338937869059187061667781560458910328619653963808227802638749536528815280595208460084649561482065255771322192952306992529146571188229758721814123900843707760706773931895627306983619378023025481758314556607131553198776154437184060855922196176206802419208753724280405953604488186829605636562568249459675328628120024736489615291990488803539381327313369739963919775858106286241278484511194505786287149932072783893604961550207238950140385140821157272520174045583365321214761337423240141148925729098139526996535274984137817253403295083395440141028282919446168376344474917208551295831366430150576583959964962229180204554874289385205989923462720286149687277511184322346538629904145766978252957821585438109198645720788274158508925730793690305108978731843197917371379007722463157246811849085334605060165331704715511250159826074160801340471307070686218419383760598711607143001758736609008586414197532446243702839418661490319536648663718518900287431059168115145130365404858515889523453046648593594221278739708832436905227802364944483462401664346355822013514983065051367651674744510693658040090393988271601431765348541985143099265206764041778623261254961926651861542872331093685227707623830857544786840193909084788059496973416180041080375125243825494420449552245125435693010457574565155166425912136869224737730458848226011333678904051092236745158376916046676982365016435815829961574204139126170669390012198606284548813433604246225755687609586971762212588230488055358563734581912302275630655560723806678652256734153832711942591712529829494026243067159393785403834195614557622108587223907942479092763362110103024130492027384934765219731802712966242992993063835839223424259646819368837551805624878636327337512922903297235966225428103270327496830493472178463975243619323549791798190732012361458595543493265198005762064670417751929482608934094617518690368306609449085073083999871838768726842242843631068196151594829746028552268476552282375551250938465941252357468998252303969394803130176622379664125476203768923316804485905961499914007635276546573684817426917096254851067810157764668539156663236402004655759011134010608146118001084101447809204388379683450763594018828550662847068357964562076044768556139003424033026106412976776160187638836855117192903569642945488332163395393558929195439166726773902587290991486032611490737801658971355627781604528591775603437224422437941943276292760296318918368614726177424524815293983057001167950491154821514219322623948120472953410710683768299247811298504304575270616548802658089979090622883504654925797104710463538027471487961643044944728188975975841780470911462541049685264825595085430630836945777832961061622940038196129672444994828660059393813733586620660763361882945928472750553108486815897080931663743242632501306724313445779405498582736415854308503374968648924028645747954305227846773969737041046045049207522125569694112319473325487699112154436637252857160981856136068269968429498587061653144412116859299988531386537713644936650632400938103112158147017803479567791911743391040561556974286847024475103407687027036855397371396558267432695736701680357194896487123365065863066616796603327460677357504631659539012725122248044177684211149518145399127048850033777554029951903511517028617200446986806355216633328842717697567286136903031184928813236928300461713080382292179616090300808811815450149157869856517146603165522366600164636448769090931843470149446937243341991359523124147537812740655513096226948443004484799576412930348436821013937849101913456722371387900127280580689165407323779648852583092147214020360496691558047603580037173630972113722313756024199369391440612646166452990127517361195079861372989502505734763171750219318715398499339372508114635733317288413082557408705501418856615259681609908661434474206922137571747199908756839820580138886653309565334639124518834122930048702228252209546993877276596066519674974343607977522531035481687515780736982656065405377237628396586891807914666292511938626406052327379888198181854711914087613232947469917365686504139007548771756030540054737091490655139150029863099450670173642605266108821492067760824925350665885649881457509832184471320796027662265734273456838620858060989542904659252920303856151468027076003610445569868724060934424058708531588500977965735541890977011899977422085771719980666669726615403594812245198696759193958530182388252944809246605119331931868074404714290722551333765886510393475847155795058843966991314518671043948745598261398219954428726135354669730736846723443303624868730390439521917532661931517431926862404370471606190495494877188656055495023223552171967251530757849414067141702874825893534203863486509770570211896018023871071016079114843167513727014297022587874453204672552400997950408143223022302822533083706653333378884650500063303291364716940964715547701199156964556073503664204725683100809854160044482291740880941215233844665619421947650951940711077893065021049124886713339805992356920097456559435263219365094919990712042659449501893664797024882438083009328411706749715199198098441783957460283813550139194127871757108436558064334591798459543594363711651730808842927675273322564606585225505876099398765546636993771878884494556688462263693884981034919058903410161203630643206925151677762199956310697929348154715724804801354486630604244500501380974467623556046390180176266068443847738401885131307115472559885973163855917525259142755694176129302586094387102472375212435116251719041595933371428944517022013263596334547799341179287609511194226218995739430440395668710145253163173302551222363433935609768636032975992845570223702789341093074974936500607900276801817815313906794523997768827989711203381527703269800546273745006523001803586600550726596322100594198216818360099050423423025953004891559229619769693111233342714407985067487066913357082436100676933337825535952452703601665931636619915179164088709631832027891935634598448413640918455223685569587456470258977476329722121589631797151470781141356583096459473477714350174514492054900570329176214332424903753584862857489676250671013508836216899484242956048640532603046851975168657558907511003968690578180209500236238070486606778495514285922148062495750945906573714124202583193876522672538613481967422140178851892982063670018255514952970342827930309331756639416824084982848978801731385212060551363092015822925903406251466748110536565304106634930114024237111406004101254715078827496529670601010127780353703243468664757429024076586018099310531040984366283689409054511050521610611280330010275875554215391633785546976099109813884048814715135313137110510334697278998785895763903219171766282844418592338702800270508771792779233712352454935232261889398730999940379684925321883559710652200712254559533027273086479713597571407942780247744910308204303911538992091168418973823130598987729824503411796798371723184563441480844048176736087151096828102603262064208522586300269304470387500726055007813437609078722142595659213494217143203618129287077945486749137534339127594078671159231041416735807669226274975680604159770207125828930682895260343592199446591264750392161406744003411662608491818260842950451365136684323666419499676622597317136762680602544579746252904622075021625136960294021061186926886764331244250144906561324978163429052768169260685136970078345076156799151207807800189046442339542579345651629419198254006978612770246480832899323436294981233395363754320922675249254010602316933846474209696965433602453930862121896418483962334135493405171941583929087659511517439297476255654111404585833993972849618194624384074147517104813644331783218295197250433046384432943892518262627646786821324060567516828568742399924621102513394392077631122296138922870255490188899518602657383648574457958781491952024917779779021133011764021207349058713883690208293087012011541450657437124372310726556983106634029601036494508905023263153622453296408780010726727808262875029452476334195499494497488249420753935522797206256723582401408358088477042392650638948844945277134750537970888818978139902782666118542503520997652430571603663437492911511372720797888644778134359318955553779928073716335556370228796719776459104152049781835509406452142813903309494970842667110749083312986912597211960710328573574718834125908394643089227854885569544712131911980658793014434096634561032310919750693626183606897638036841517305456620735902162108181848220787047377213756672519705012358986882458380409361728234623413786096290445467683677351363833604718201194665751282130594237228031822514821232880653656660759733069167876608584513654994627095888412588425711137389921479186591635070962604505371466068892067930211202470795252405730754983618790191156809737791335231428926689411901958691932141694701252067885982639841747159065788910872670434940133724981540131621096179045352665716663963920452566647600983766399812972390696609940169249475959184259428311262446345475883593278728029809080291570238786180733562557114547417544543795332801955657384702077419096548503508914284583154195982776065248305714865718672298177009892149069574793349720367437014738000417662361950617279192761855805909539531381786696374733122350913391446290286471454005810704699494848434241224600549754740383218063810979250003215904488416189073110186799450593716726499625774670233592188237864720136144289609006054778865075660927035650087724652802535510843235122735017214094347138368061411118588064791610672254889044242398114035805879383440287648199423584126880015872737844701850774970002579721305518888642743966934361145146081522579342957426918467384275778013860657582428075646609429279691696409322856030602238049161272779743565962090827828547420868631609057804159661991659262100269813077351023927535710579198780454929159137234122961464330809417531412521421837715006487238150080821050317377854761932030258799761119534987472210592058570765357431533106946151807057587313711274650889214357120351117780310237609901990533775421882873058727771450033428376797134554368004163228771247594161475256604614704736176047033085694445266670290202449956549908964036656631248790336069754973828835385423551060593835861666063787425857089747298637764537235160391136747762127950181816160184095899891623180727551166595997245502488982684974745820280428927417967433292237490978523603066061889288002135692056856913381839331718075974382198725382661821088874139737700148035539341412976436311058634137441071782280134543132263109666693390469488128856948533007126343731828091869727476158572944506380747817011197534580882485008443637784319710483681574028193463104612416546885665451756839912907542556659231340304639102819786106541478036118689625537076557241678359318907916169050107730989869531127204773660136508860578946987036258499327083004566277238601147542246387534036283188027013133432457647088707028215306115842937782944262252380122723713153669308786230695332966210143933467259054466702193272320313640720310598582258495531648177647138346683467160796005695948552533834651813230759252316913526750812824385583063317352458133455285800109177542291095699940599307618911169334743739966606869125540319400825908246650591175831130544329060471744373413114212612964269288765661374464034855972576865083563018035541228326669615817225661082993588905987679177760872701263684974913270466643546077123186010455593733293730761296477506320474167474914244430994341091023451412073872427324869718582481889184057311742182429201507583307567175651089115395126908525052968575113587763367584442302301061698540019971660905725434032384452764710391290793822217236358878628163852192288224882405893425958184734742960306556339911337553336969562508732689940638274396483526586212384479972344681805281305557931134027072747829378424288193807557186912581526956210285819285054802894126300242372571649922168291126444599482820988400332495762895975644051019894000389511942043816459550739531382170287473016181500930498611661452159557516328640591191672015937934635318209349887976966063523561139825587507878738910828119691858225915278401832150705694382542021379509032804856957203096383940179080207490758366612200862599602226883818060126524911484546821357360820049627903315788703544659956020824659093804532815908763467507977902554057095033321509161061117550054488048009139108039884505319079464843463692980807814651100682977335180566069998177963404548402423196814013488515862725726441565444963251514853054807004520756424665159958119674341942565338634457249122695930298624922867793227568912642732714269747885226504626961075237257588833581719942833164262474592707320380546916274224660939145288362931934340997510095366477594948741928034759381935443962147149781884960514951148008513057875254060499937153286145877333874627035081008271747251185489575233621217759525895473242462388857573321449088689289906005671598526304257195123829811474735323960116531373684792991997253078014663774425580242982727554930250822216985536377170251426280159990340199993475242233321612255853548735658509306029733909376370952948962795329880631991204669173307661616999699024476949852684225336316128653471267432462759872524576148800732726613674095770995946617734880428267097044308183057214157759205484724163226463871373587143730180887403295339890556149023852578186362573972439441379814787204965180596321192434543090397274022163477430566258242338379458996994780482838277822389279002479767853751320680018925507798321350765713163601362485568290732748964166476944417139780518881962759775902105933299393392136928710545029518774501435282156634766964585556570305288793724369656298144830433778963217639647065391682791093894479976046080081655316887504757505089839936142747885902977968356784000021689745844227581436758390645236217906417449366026326031510926930707528317875983947108821830640854838310094360340538567996262381827661598579574130107358569759816760925838436795480136517230635344870111256683853766494686997394468920095898822728368686418380019958416605876613646076872772958066735317607212109973011992807495945786892759650680131355740995303544808345177578595242791618092307040707940720666910991175150713760336112648475688898348438770971635439264013045572738236520063490311693451829489927499390124773686250133138151689728262012613880860455174315776006042567612737208192911995152705510948823759413706814890712109086275761123790666506059448294407462018741137080371875544220956235192002923795655458055426777226976935001320892733561163427739754056563072578843463313861247735869674896226110325787628595117256702862535566335582856558749794107793894274019812074541363423709472788938539093587391267548735902488277966334712345396066989751766044689233398527667947664635657377324574204634437425054074552240215288813470282590078693734487214662503595827640019213722982035315010635437071426894473570623971444326031553575218305681904877427237717081890822919073405009406962845046683825286695271515344400237276819863731566501885211839520512356678471869396043425651458702352965385008364594366080849244330515347249544015345967613342202509796249546614403786572179079825370737106735456351941505319239127858945058100777586162131818279763630843386546081100233567425590963127551844412601737543380545026308411534097794237870024596165731001078512872655346905248850895541720711991063721334723263637099581804576532897981157561494223398475659821881608969190337808151885028283743529503749440152768185135560649189675302580738186059063607602913968060617923941763916698924737998756662409903791590359643025937836546314684077141559911917116658846504307524737073965907760458424496040240467876880328195967626573911531585665995564588286445459055997860991749821578589776982401871532829031064895501437796244287874123062169802216075418328177454669766295533032993975334087064751013836237515799719950934468114288781176927585004532305312683967344726477952142285827856251015532834263478017544093095970881942458552851858759988888873374259436738481302282264401573043251082237747834897505147878813849041043566237965247994215925788877314407744946175948280679111641292400240784015418842475166922636716563147825255989396197236945292034615222582146985248183850013113082347961061862117378742279916978274202149448650481713035055434035780334926076164475976452015052519430874533874398058808727690715228732261390276969630569929039613999690155679227577232934007965460988876192527204513426838383722446450695719974667152109743089705365263953651516047794428850257572031816371052544512816491354940921883213267903506105097111459467418436479827953894698456146072618588733698515647453350428468274867360001904279922458714189007857365359980568397837397436690275491591171510486249362155870355661350275859830942008835613922681161734402530918194750001651639132933737899748536566771670171398940339439823390210732430122141085432231197383655693426824833809702679908376831619220000337531492278724133920302125808317148640876530256100328192893685965534484386707651589300509465789344705244345204882530830749946341965437330128382673885264234219204455045592975229202498657668882162520823189059635465181733872711645345565887599650806302794450520316129084194068145872104803789000822816519725887735027256677616568927667790081823258889390399759002128748387330705090715806166268839057864381162029790897674132130911448707036697665084706246791307473476034309417349828166215221927185834964838428100276254953611277160530103259130448328249504941283634009954396178629327797190318243243173440844410143562222585403327005846158189017357862337285466884543193826272179854935693665405583850340272061551160240210017945295275330564805809951381461723689264086001883679810057374458320499968951621729359725757381925843984270075168731075203144818456605916969093546077378792995389591850012249458924416186275862974212718506162124673087655173941011403033755326959170453167575870022643101962850886166578852886189602762779653750352065449767473449514422429509298571449902820568993961278192925976395932889565390116756572338681785176963586010883189561128942922505311635115838451605577480331343339337807517697754124800013679552875471059251482628196809518663501291193265428072287740562331889828844430759717885474955427745044796674932321738672925038836443829711834767991688234945020712700191839947008634669053737986199021976725961738906517312851901693009143474106258441728430555949058638272249346368927617530447338202628218705684331998750549832093241426744652231579775434446038196681786099035058928794078171412325946492301595060968188011726860429342794405741067795160056702681551495145135596082947127295538550101994454913778120838795716936883105556484900774765561996226369069680718896319189925180044772056937393087183529663403703145340903728445756316866907176629779250454480025483120505178198981857846661818071873922037723548484567757200008958505373570065682863590899167987346561441980929440927349832053398087949566617017080659642355128946745517394584885662233839317506818499910547458371755291052634973789854532010378154661408829064052390176811887848678881135019036457859290959965077803012753888490816975615676175034914402635174406761715846388559357959962346155394623267814477912624099857107588907309270737661341963129226749121990714115223914093950147979794244514078681679812486666362876927245260370071635951572901852261099552177227954844829056166995624103257697499387857553324742846835828933667059442309878416370067822377388396748094707388407125412980802786279014742672460249480852064847976111654210049559015126935506162910096887721964475644579729454309667814170155340871882937055203165498771008612348020509522785103259462702985989966330660313112928518918396388389082213677924595434641804212890947126061996514281474926171906770195945767006222841312224644743294863914384458662509675693597923689725282298185706428089179600635248451789451471066463986794428859660853640830699046601252031634740102266812174890642384598237188774071530056295526204756365355709246871704407716915833436708422827328544145726904637332939711358272146097485825134468362719263126930841215440044355420649163665944791100630928828938456386474995242575625307968061193321267913636072442194264892364075758907322780407099031324290529329708648695605465769404086990808073628847413223912277306415596668913567316658873959613117332160836995974873384596744563503471788447972669450259040643702295736179353636502915490424553669414825235049263268523951115389701610430317355216363534220155694004873522346520472935307094829092937799757821192690918402821066396080623243434003149814158625577489775411556333101669459360073026490951214576539253989496918853433411904998174817031167610008910363006941872567847485209110657131936624965928913245980671118308591808579673942076157555072256719182918646300036224994396116930657231030375218536683131255594580496080065941950015538251318771239266367111782350541404173287580895837609059644854477419496100103812540933665463708871912034740171591706294886118588595144320374435633499915179636040324547280733174958831049483692599909926605646147434229906729430415506642765558174476567918406514521739089543397906918606424554975646666329483727488983530406146307908429640021812106912386892469314950637222475663005695382914201775924666289367604018387158966325405418545415211787002451911448824238027877077230577872855441175256794368138611901023273027090866713632790280720991411084585901314677258250509559521898773066345569650901344046396870987871014762787384578844108995791422328760076137579971383904953930227501947935004805569235444032929878440431446984536397759630449134774309425117173326134329225498119790117119844455938105119407113492866593615506627565645430823335934702634771460857901274456748745865236442362997958380078646026292683219316484923693335154697642704931660274695377693353131287660096126987860242613388193372799250472703957982083784556178043608392978783589045763584429096736459574352894568324180448335761251068765255832529115056580874853746304139992760287536105218103750780512028539931705404328513405351266234757958915021888971180159451718889503742448588637242077436138038769952100899718939348502391844780905044982143480093074213576430274669365671827622802699259585650250040872768740930034286322434189737857304899424785085947390185570364377131813506673782635624489941449878233749065914858879298011923437356649717984600013642712858595574435662557860997163975197305176925342556024894754331787154135069466126978226220776949525845678609743947779950340523393453871486378388737219641776655955973759612981679223222580980640661926920071638887511116551241887938916245286189302947511549049454283018558361573029629058066062582209620406838801507028452739724075365003416875048059058357519879310293194808642174548329094547140435784824071390531969293339652556105497102803593312214573123264575253530782967628216423924396791796162588196518907899835818309163808370832181425682453072681662032591791354741903449484682734495345277255243299737405267708375135363992660932044061595092046195533864857585088667916138749372190493045534917291624207303603213568330559592263290316045706828587670226245731496051910012646459805325144812124641322414477810544131453353111081155397881808710081720526659578805423958017173445361631908957860638720899039667851355865904270384989456371294502675120879171805543325568585541885949709743475865991132934100150341718087311275826032845519513774359655630415907890460340044736736463923317219244094789505364224666890093171588138387838550632995343369691581081298149009874941705032394448214223109937637505459744167415242966777618614884820199711247465019052149093833376960987039189141346504266880104030262563496205310453415651929421207333244681474016406127834929251009972608719555634452609903135568275501462904380559776412382858868028133130918539021527473933200528904096520401390681387230902431964835565943016175516822208853089316542004094965797588392689438424069758004443114202943814466895374574125866004106896101273536791600615954548476847461162417096754182807975022991138099769206972362979298974261180453286987118165871098367392665501864914007753884752707134408506724317806501520216580454530504344309078050614360669611596022824107607752073894023633426590598598167915570863022384636046691163366113941017268863374628807489233787484775562264941124736685949104456732097529448780910369303023667175419460280878606061288787804500586270793713220985143267293740670740359653792574980633541457937842466632662531617594158252792480344835437385714223825716419829724961955417034372503604768709990828912054621410016594373930044973479166063612634215275802973408611718357861702788184732923492789224740252193908610485227086836955548721766465567283680690687056952290460061525695979474973072799331998838769791089919351906375047424558570332575126427730905282020983325455140504110482400778905702834231107906519042082608909986050673551199940395712492510736250841687762874786469105700817504635340278851903578977888006468332961021213197271284580280283635431643931149760786711271138416674888667572978509594390528185501939158181471616047570667548013355361458798579525011646951922274825259065509027694420746758047078488975302418001954752648229535130535747630164109929113680214653589612043940499005978982913747450800742215836782602484532628269434237192015964586679033526636655532168860113143195605620312444102255563213971829302958532584515107436164883627981022039285204703431610573025537176472462413684443452876105843207025958868660985397473534512288311604091988813536709888664807620832205971013092552545873421572667058444285046302562084294749921760468431080455186973573537534325327990086981639420195799390978768173367532227277129324802898173204524775021668593000648615232236138690777899100508588975479401583330177311965162191634262707381963196629684349506263187378517204044590933467980754217622379379634818651089774119639181828814038674275964380865260541569188486568759849052067514478574012031198429154721756172289048303489561073426151914408351937744616095447551542923637405965387530107686727190560168146288070707888221462868429101499906183320041600946437799240064692086399852500111042589090536613003778190078608953823273117345560622937741914187640828453966877665115920862672275515179768373651064168578580932689455144474138902542220401580830071529132684402024373030221655421846000751956328137117734740686787873641671130320734191533306386637936409703384363980943282326901677623199362364024046792381177700780232179503960070348470532374082167763537673616134965012147897891065407451811996094898560302049414297174981580154320422326498415523393050976606434906701443906644113202927579849638668248956611222356320700074805747676915482897197470638818603031830976128352846852765598579570094733556956258533479824476465736339940469736383711060008550530216311284476870493165010846281040798429217749106614825587115486614406678761929412551213374398918051323884590804755465764866092926545490971510719453104201515555715809099145107206458474164628270609517548969541290532816390309626436772131051688821258683748401255850866762470785426409854690654939955630859757211270776702052705128913032381714848195998220026067149635182931300465159646520527419422159540755196752504608712195588947521281630116792064443694931282928216454151162709759995808626452023480149624168723825770444867330405271974365285162706624297069240971650398138557476281223253400380741045609550301706564750728099447940444956380135899626751361618047544053505090502180480330853539234887914507499177450098586572661378310632072388244504198908642055640921717785641659410837016690671213572922386212314249087330614431756738853820620386906640216954503974197317992548320290633876193116430018982012412734834912692010258014890786694246438414019091910523883759547801707290580095509226547881357750332531112495114138863072875576464889891643544720444715137359277397065111627072266392856036626995053090518571569833654304035277629984881306632578641124514660033258008341015259085426435641897127073508486344325456005482887360955285282045440940499552088590645290718930024955753632098658137454982408854312450875885181093768193184751439943124782852521688966710937870519440668443835753157761243038745366574335340437540640486121694350749750138285857163687401014402767123149605667191977103130998957360401858456744195477442523838556183532186746343715366749362594962949461174135850125862318140922522542394591070234801597337392938423781191588988518842934501502495762222277629658762775944562652301844092279877143489531238675640121122634860182405643117790800617036702735323658858068991896736154051195814226546721771009105955082161454725129014857666636786356125988826050131422515505600359585339329111058237655786369983882800474313249385537879348414348641502891203676615877676117859837794403374476143431958494837019605807913080656024877980050032119059521482521323405405772269715911553567239666802670823678587599458349476786099757842920389287055612823597463385006391800134708709957452251434312340320956882623690759760803723936545882091521479735492963822903920870321438944468398496331941278098366279692673651877303912526759673853547575352900228261907822237237936844710700823626433552466397380770121234399495688774025774165577408051569580905729022265903916905817314628078897387121725150337371743110015855439312501769908838425778306290822367481363517206480925056864759584999836503894992788321545918537017542338054919881326056671716635593349229564662924356692077086943309058262810388472248231369237605475700795200177087528697444336023454804351339083539885418237525111701616494056446613325340036092059303334984473945907205241361476627176045849953975857450164682743242925872572275973941563507559176672277868519809993432377603546828625992735122401246293319988844221821553593599355284123991822815161865268557925265605779808376286496736330975256874385510190219149710219884980491911741293316806851724440263023172167720566516099267716947548921182156497649521785160875178946185877178604902825231088540591592084282642559028235992026528206479128333864580049471899968358613799159361403390808538790488961287884137975738511092918639820341496140445537536501193271775460716159490113568322689890953983697685696288271583948790811996521003366893655119269002426809773926216951560484984988431394114135908235017298205581111542552065060752784506999623935750742220947843217878460211742218714944775247371826460628993857744762136718127811235537947018132660527196738940321860866134993795280382863417011094608428835315727334932652741422135827944009283415329685710605270303746341561787240289957862151885968379212706028963843822493801263243646121077260437785718993136789192306044269221155333675639342690432112535435373091901713783832126570316776622458034097018159142874178118078485872107132082952142366179083992478300342946046103072505674774737859375980216337004110712838622283700664566478645944359184673883301631670670536223866780307232995892401643111489733387608166000181865746830197724865934312479494929104485251294957495910682742340361088502770347178795730364948677506813327674498184839443306527364591319439076272800166931550182386052055984420616562383265479016269146882635232127269530432048958150828566143521151465689701120816056896055699985659605947499536726377251769845153207061821073749323590030564787052241447425971552785127762515306458097057331792632989624956504738703998160073344993253564428693628787885086499802811663069236891601717353977036803010558396135008868419484262761841279444345528683051771629930978360120053045335083290385074218684131658648049663489774833645611589521514984127385331537038941275263692418231667611959702074499784862090682321946913083399049099988724208204711870843769722389213119425359110351092123358210890984683864550171638578369725644214653148358061221792674597541342579433237402173642580468284368696977418678719381608162007216313387757372550067795715849035772843235662761321626786493327931804146352537616688211328223835662037927246621951245026446646488797047281110595512170459065784895630279762773072881869980134277221402226489312793733955351314037597182382054282627543379951023639925915516479929186282049315251429423691796347252709084493565874459201306369563674342114095004858450634377848078730150138144575172764558571958852096106762632357220598755307605371727529694356046867747637196652872127839524905586423779063855867110620919316754217780274380616613034118362954452774935132493648393617841512340791661509589653836411338470226279946369173692254260363768232985260766011402365968708454055358132761554960993488118834889694590104737642390191658320756216262531833789313123238756710093837552333654696205228730458955934056030782284239245445498190355533306516028924857293900413496917446624062550236127232955725915821851770642231887543498734691820287764128560311492755604434344627457980020551144515895955328687184877090430092310442513118711831448134458027939840530770878048400615403438170372761278943702432137632670949243339929677344428663587281770472797785449160274475430817573007239620364432422585994269791579567146332000601559019315987408684493663515591005130783814547815128964945220008766285400330952024427718444599773526291078020637549741072800093122097067614041047329841553440274875152898835855216583284280158104295458288670603643809068101893237404002379256278190310870998802559116309322411282691240770491635023487818942499428555390826415009511154857477192683445859702751311715066284968198176638663527254682143336058058941407782560656156819339124259656007074874369817257783096808198930251965487932120268392743270566563602017339892300079159748558646903650194789819057972056526025905509247645683644714139511543666885247491096720177096652778175610043470050758833140781989156678880561089089336337584588167135061564554832040898905558555037172081420292067646819650940931812494129295240704566442495019014836582545327616214354469823652595293150506587352740450923437959362901823185603116970281557324346693878621432893256498043417146356856842281434265856970384763479874033528264641909355722639762426326224626128602238830937782368852306085104997893948727017526223145559229122182948777236349016618058271896384458966407239701346216580766380727025561578222797728170059751270353317072750323001219605664093667134624832065369071250793606438730699318470785267539008641681764159523452338827842404142803110244392232591643948176315812775999361448513005435335229773278159999029517307394614130270882349436630761901025681785528259125034021521698073373953346389535050001760136459838150311548087242858198655149470143767714455275427682646648863245353880345782409532489719490349500034044105698579361021910310643851132131145218442705641683254406854785191464138526164417405622792681090236594153155817452160706532114595243769576152564334308935268982224180138441898268881245054454422043990641964952382480881576289256749678641523565242537733454364657066575132184264851271891528309208233867228791831131244817701025424731777806834143234787379525180096832839423401114760758111159561935818309172400509754186917027617779505999087185070376515528277279091119289947308871521817986735297017790648860148980715165199112435019527038412410367415909173491277531501559205954251700979937917430925469908731598563799126563228504114635702268064999764851338440181874174896734688956532158436305076422263302345693303897101748849396062732314744136656930596021718739796971817164492866189761942124006007110172871646719731351830836632349291123708937315126342405118646776841798462257495646860793903615341437075891068544903840527381568399132789343934441206510275386026959589715692660330316254350854233594617136376641016080563975320582116224559889321372436120082422363320934710127057812789332798320901739795191833079302288903522164769504785016082533535046153787522478027494999182499016560879681489167365831824388032478221520342678487386584596552940622669599268039111338106555164292297632842657353475905541296323538201297217342084204260457382835581847673778155813983462708675277378918783442223130540937065207018351412489874673052939744535104163096275140856915951429774597559632661555331574473935412693598329493091807703773823175400455170967344278284446332053422174868111305319563883351723185808796701318129075011292259170784282916886574746482068462023977092292842243616584259878140044908428190158159761205722652035949342340376161195090614913609198036859086306565724467608505319101710804547258656997493962907544409579012634542945950540579977094318186051194477453138040216300126398245955295962574564407835160910581208782006894629101164960867025945347635640622583541675757043430973838073508663769538754066580482650319634567033708435400887725513941634204156648551741711990333619436273720793201417261353376295062537188162968165468151023196106429182570600844469189926670210000709495913990609196697348373298092394079031461106008825065432073158722062637498373312962917072548780522589728979987494700248753319444818898470949191051821656479927102090328646522023580298134482487760159613974221430995123322966969415619387684825500949238507160121234655043305499784883780091771031120661730597094923155133880298413997208433330133953060310501751336697463724093278015297217225178456830626165902109497238017550432151442024160653000610676174603085067534201387028183719933077643679839949162168002256137228005007562476005994329109330018852618976732279275320987160964751819353517340367737816244814636079161371258694899717683451498466453859604239216716520778865183045878777450257070696497664361273357482069839340374251088202625087212143620308366819565338175984188639369280507566432555273026282346739109656620636939453855761974377548797364785284339389287111402915962387289776953568694115851669305312687439669609597519849075499636149953366529211874777734355509061612465237702014330594872828903442402418916479322298769388369775158828114012730953873057694846858019880509518355095871617275914730419855726053664207403734990955508301833480051997519293439849370403880777896977938415555321732219056915979078860761584281749278294804567635434071384275121795910738746745318097582722905736819411042737063920901802916050738443137566120986966851440353895382446663543664372339876677619244886148050531490670095186580324456513331835443140747768322757105654433634142929052938449986654221997404431952208712535969896192956450328021277457489269806456788169940095565772025833919224714607904023331992760100016097494185871899582845189566648120892881692600944840530979192958073428567394225613035978256153169993404760993134780397026813101159701348791156974655915360405308500352915252797851708612960331027226616963129841949941000286699435628992831892431964883446581901886227076070501264315363562896873194631838230828930616448872305418087645526979851268548573260155002279228354905148223030499034011439461558828018692845372397644383211989795980635916001041385599457190951250039080626680700602476532704519413466569631792455379096225167740604709336130434097846621069559726363138264076158542775424388274852597083854915157601262325147512427341898531562986015018942535401673833261647398353967213821100598111918937690645220566814143074939176413048763081891009031341450357466345334885092238947470593299065542371829951843513738329987739493845613994521261223717913421510065742864296990473962102098810014287988518134190989555511703229429562597684538539686569125598680756885867929750006961179477255996056367831621760131249486183965593312818021362199755591351890844064158972113349635764075397706296832954505473002149684191638502897940047495774960163849616506663224570708042688747857917891886317696022423207226105890216057374491998847634605854419389393819484711851670052016776924071499517945404440149602745693882989642526755879360200591478800599756674945626555051286825396658283606013302343030932955580002011796582870807901945990978262281057848252104554326047523216142726356337972233224983904335367276535999839636887555772866409781935189574269746013901123774022546476200086003335594150585732329109692227695001850043691446957349761468496030497189306360733878693060328405452658892624637604046174952585456510350822143928421177074359617993831330914135001058302563072249109384888689961888818421801275044334103980059700955829640561185610254415502783787114816613857208025314014242154970432248934036396037395180138162167506410179023270067834824170980341460489989697023447196792889257688127931735393303599877890005682364120746153098447693524324873031387468596519071137915660802032750989098494053000557512823094011889574683127637754122938863780657648589939135225815979234172687291697490257126546437822584196047155948045556915644645900081834558900613395566599355881468055853159542177274350194467378845363550219677463031016195486357552717028724546226280574792616233670037761896647034877495106082569091361971185471130479833601522392118823973615966048655441104090866018009768885660196002431505041854292793420636221589721051056851299593968126971524374201202707928490017126359896809491998032825270847999279810438573597018063076645081918713682735855577465822692132810549275343096883006145022328267126968004823049425385803598381808190773290476180605868285877476316604844584787220117138047927711007635696599359668030636073312724368885426374021000440418302971695201782133280897651746366421110362615579793994610314360927718344629861556214801806928316246905225984822158541911012491605774169754232463414354133450693782819238388400647578788428751427322905454161209939438810081396617911671832309447997631974987084929924030967409045382865325233821145240059723920338224162111451340107347162861912530169301558611671672508362203301732916480653690879971640627657588343757184783366396518494899318193590143152185948496743527831596555809295531080605490863219075534197695514965873217444292093118572521925243762840203610854663430275763114574814033364848532308238578766955728319762117223565060353478261902045183924372492480020319530532218613858064664213032363806870320582211607366042292870240657305920601876339506287159875051488903699582006559866310804465299468125346883941910895093064346166049085171788200832573323396844310985803802373650367458038697396984717004290480139724031953173037685675935228570548956185396062476151705405378969264157751938019425405369539723319117095373408626702044101283272771307119469771372990838346689028909410334481339800358172873718064567605606840639671666505222433399267762749121134226618404311827443146331517474874572185359841512768142127555159350386492064306938042060029358189952758711310528441054849349383459631498460102211356063192908803722641654243685793407902169358750610477972170801900857824213703573117017125416861514397269506071178662039403182700925476029129464552705435423144314102790948532515576127606698556181928691292038547807571811832447473724511843687410376202254742039602760040463125534199175252731757366578669123899862851079212448065383866856062588606081303471560781599991446773255563371084845096434186671238541058707816240999017209359436391029918456306677001919318866369858678826491395914269391388104057156389656369667275966461424121272165282180433400155297960624850442636677363184589238203273434252919654191392711131400509668711666421629783523452680035156931182770397046543101804887926848623693644211296094781283886687788248696271487214195897903800920029444831376672454391714621524209002994324926447614318699140603115939914370781986038292790454459668874619635576031368222640479504674433261134402354118174315878587506533576754832639394594060045659354160437670957042919391135227570164868500221370065669406332604516790232275348505209473634785111098954974169835558070711518157348522871560403360215083337709728143892291359978177302095799041791605243606216794668685139888446637915063792896322949947780489509937733119440052009549975064812690495714112696316398274691880930667086064252376372033038669534473746991888055356184131845302756954937270847436981229058944218206188737429880429911152000828104533540415503680363174599663145611223191631728345875730963510259979568441378292740712279957222026188010051831925757270796060539751026961694796719404663620962603162170377569651771128067368246391499747424381382055442306314737336336185995710525141738301216456901027108699150802238043050659960825728382339544845730165465856580867721843519702684315196502044030395957148232498917026176815630381488450957414600896128540890482704238004811606141983231294759147539934773252025258615705926750796955591170140551174145345984518873661936139253581394696878066389882052624269879010179272238304409407584417420440599993409765291060845663256910264347751839501349351549313486339557871938913419604053727217020930912223651784728154169828419760173174706133350846434063664626917931371690650389534143021768099439043611668297712518209061302468891134429033020488207924935943976444538338819142116588888686642728487209969020968351087535519176724855925390522862242839985847308267924395301257170442975604201985962053516705074511102395717598048976909032848809123199897685487060588085070486747504064387652390250543788076925434324740635053184937560704632029857306913973859498448799011889065671779839422105358050481475065307450074124239407083902906031449597236518429538649854635128329789596338213504728618906710624758713513311481682596252328245065399845277499578541340327570664613082452314791326161332262639471148314012857059400271154358441972625734811790176659040847629860494221271592544788029851831270566297499832178818879499404034823292058265435180291426063749347698876452118859233181408337767596553111750516382477674466826017259146327478880565244257119559518076069284991272739278782515598641395794332449074224501529746235696933878078281258944021651295362270109004809168874463080921725674735391952181895524467922211569304490838698283610759184129422898904274188855321954574080614916241489999392540598149065108796784719213004598258847918708508554291475721456433387714521441374224763167110889826057057894818293582647343336339071958443708846776066854579283770248726720874686187423195937391120997866694425587039734988023216007294659497082768452930672593671633900076365696638688468542770201091199923951488480176356537286727353319196494729058253253802330674798935124290716368523107844687395836739759670124969412946013057467312585372037846381652185244282904539702946394488610541367856508240403139169793162901991635271882129003347687080713968385959135761217008437453980462168558175108242463338002832070008930273358761533784461569313361987948935921772974767957057045125575765207207521956531054999856997297784282928522528505990518543864797791283970872046503259075578855000570851420104540653852935516346321786559776646534942829492540336478896577998914064349373051987755194342905497478346206674326763746552034160983888411043254086702973395950735450909036896992110516795621338277564330654943718187561451492555071241063002995434748173017890384993777961272708039562026609330929694801004574414299027791407996239599936956264748504625082769591413349645721190302083704368836732414544721826341554989562420016227238295971812365382922415983866956011823447418464950541677100127349308843476523062875232149895590935244600563370376979424855391075114968696441947359553614756438517785076631651129272092324619127074615151601807715023849979333518695811505942815262078508166234802422510203544868441611993682472378377200096672319534239056929731661272516632560133119637115865664291648558180776018445341139931687502892147244188085206955939326626338958415188143115424710704460868029764147892460617927319369719592533725358975582931591703864335095233049311176339109965724731653023845233345325199400161376513152326489924168827604650712166446678167670257794125241947487633365961598857864124569265267856215645846229285139546752704714283547777197477513771480134834090016552803390425056189529669716438068251527900146786227492423368405837716340064954590607730682309390770837966059252521183455156103425114619794717822165775353809459684473496043392192606071267136819011156261360442618529193116309222175143754837771260138655006263113072495638810732734112719394297009943322524410014710702077709477499082896327740643628976257088856844786123915164291379813395258692900484171396807736893565129573335160048781714244971538903933483843337881607384239373733957809299838892816293241111736967067947285690141184646969359384222913980453537465627744894954427395697209974803754118361656175870727881070035293703347376769255702989707160701708884198001844145772217581280955899639718329251604136621499956944881309064849492944174252955774466225496380149663570227372676190938163821156811480268233550579980059559442095873201011295792599858111974492309685830686673629542488712093172629044702756193442304264072596376522683133334007769909304629582949904626016771578732829278071575448236760918576954659054282723688286718860190319819336420989818906777295118768501821792984308370499996791605384311743318232453090514106106283196859260119202777155791248246553201003112904637280953533244533368462411097349515756987546533512055154328408453557796265638487622575693549397128095309214720456700619769031608811112500167407860975112516641261786620231546574756473599416684601733818641829622643282130840200335557270421727393874960946527653384488409628619053622973239409122756338045258337461879830325196895439950774236954358925464469343557606017232701409780212180458292534912613428380854326412508796224675715798415580016594969911574826556741887511366547080817668270245564675995330179350130979339402416725727478527396523481179638892620583907199025409875414157721940226037016649419516339358553352641632624515520111991974654819264325012952534172234641006917002125015681718941999488044396628735558920641398796690823204443767625439383301465264886935271388365103159755828544958563033903050553670063308670029063921645763713451654564866333271125138273359668949231160489727165321421884081749371993829440083031415923768077398255149744160874685883699354046192418010332716804002126071097196297887829619920817234049367171495412132378187720763223657232579966836897055281832187020571086251973575234888093167023648917381728292604730108328152423739243122520759934999203980813333484844180349531934630445570264524068092736079232269434074833193791595675482619445354005165514862550204496535631358717156503952388827561923192462980956435590244670249459120688202979594455869043557934955052828396843423867923961106438479945831264923893834149498085654500519107989511693596037949106258006321155713571341711598000763916351615364213632673675953704843989267343685920545111961944986198156195115904881346627320660339516664053772526306968962405170383168312563990762218786002631178755798121934663808919958452409745717238265696332113384663065539780831704893741804186193265699431492294782019715702068385579449495319254821282764363613462396948679923590604296824175695139952135832135050013155591733705186969119396869462924227088702528268048812986532654141124667576838097060971812180633053275785015981985016511982636316683822012242222378226569273191764510593863833385533540034461199516094835692455900774611529258119720290390243037688875732083406948364505821983038570580171770993247616546570859062138024504941761606960913156396955410615177168574184655013183636154648711615696974609327199911000673590817676100449829770194266343740177237834901905223510121000542899147084427657554103993205616336217866918648075836877575487226212157341141289314670753327658426258591766354629366729663265438393791343401502413942519429838976776668294815771934291535966870203139888909584398426010798934822013912863354675310424939790246792057573104156146999581548992958328441609614683626363755376726554219730387499867732504103041602177884267542722546054339240698610793855521362287063449546572954483627712998453334161074355601472486397211306905640869938425365036921211829587484581052968102223202446436522635666596926110606555835483855199359114918877371547082377120448333286517343589972826128422235822873027368912303215184829664832341056083096180360927924042948753317950488847104540666608522887264920353091937943424086484572308716015132771519287710087945424552728891066967502672343469863561725351342426982688326258034724705281916511969430503723900741393229959696044548503623343081019776460603134311544889501228579364742569218464574449734443473967490675026468566244479584081449852589948280029496981758811640782501661029079407297589651937054957467192486637907940841933333650823927477217728836858209359706738657176478025380132638085462667380972881169194106936369687631915574555848473510791131890838579763782398664571833458881492158076848084655377524288775175723387620549591486980472146332062812094227204920944124721407867372255758650373342616404082582152758717732730522810472981228062002062219801022713316237313633825439222118779853746575755858903734768474682683358366870484459837062163986635398104430745880693864438715623076194502417267553801870917116686445021087200616560389997441796299431500221878607975012618901563557193366926550872526072623541756510674344941682798265768575394201947506419201221169956975495957623520098365954581436594941948010111053569898884200195500659977470465549973210056977472827293814428518750099723242695867942273532904471569746301268697848648238803951760740458609702646278941050429335104655295926189893004361619193038020755085749189035666089259474857228824115274868092308805593527631804159677714823158392692761504091688880253254761138640958655832156525235898988250674414075549061314086300992058574632788809683888558638910070346825704223700015873010022084430263465397013371498834724974107911321489785259145521313167206997050721546743038321571050348946798476852071522444151302199687023228284496456176351378274165425009242727395955556533856490381221195893958637375123165734538772817711636546320883428675251514062657336594756773088030766292469879637192938430251227719628202011260704434205018069317132452917528280990031130616668201342561371261577517905407332025446926987018053435938108575948433449216065459387527703319582466074216875187711025830992332755081242472967234193943253418431861934460137976388379218273389757173711088221504458456578220073320103168728772850847013114662508120731597833234042098567794649227818578622805309469782124439951224287918796898212803701230065820880251006534600159511210289074056502737245719956373973659974565011341115454645117361944883471216142360826097923730594596559864355438141872706425968751388854910887822975299665526802125908902980511600950906319107531906016139750722241000394912845694446928462941403668582345580367667881332601346192037032178975981303723025062116231086664592715855855458577417705769556317751062107133536571219715010834332565275397177046527181393015896002624780170672486372224568551484546439119881963427599026326333381244133186504574994406120508000298314056673950437144262391823427031630663033130295390487243728561420182498692667261630525663747790000695550169369488348490582019802243903870592145087048402726564353252419872580267426725044521971939318684708206806440427211289173468946718769258137476279944139046171106173036149662632221824351441288036163119237195782327202610611464170936872211790228068944934407446603128328719304266201317426617476893229108309562939231391813081583994140113598987317594163429523602210040025982838848490738479670924041069111052257286468912874198319140810217153037210537059433789464052702629594170275647325871386433663527183146580008631068141881202121744808429395695874131596231372626526339288238709445572846241646898951794801773705008283648606959809904202498954907325332046838479852615281026939516533149884983550259685345076770661693083417522209695079830409430037875001855506891325559163871892635102201623927175976605110786185378177924133814189294929493140310966037495182987424665900231446421823537078343795983386377239709791979061583000672104571676322700241540412811259126647171528516325418886843455800164343025614566034221074570451920423583654077695455935352160740948611232165333827820949762783602308355898195554491310810655028496626219091058525926683732180656098059962528219348480950962807168724157050806963774955367598532140564114129621112514743720361593652556356197810279376858269386196099168951967278651654007673149249452231976010238279844791563655718900266878787862676845885114067645145158242431814713156212084699810885154780555874461929182563781166228961374986220224603191560446128401769671853675009313314615502749193979855928010086168480010582394303176235845724411879946180392662750108103726571647366921523834498181442294078934597287004724806727941743424052649942525674287295481731686193598332711996629891285623818741503284032854890398256576587411598380442598215237773008319103214925841032273362546944716098594444823358778520486042046101833433611356561914120477290779014647223034175135453782245870322819962237004327717755933355703405534314661910482486327201097946375086676803083373850735642992281863957880976770436579061968410515498185211461572485277936586563340866967494041061566484050190720283690251957456475483268286420044310696768317808511253888120278497387630467226882645439326923583114519985017866258522024630682160475175113494177220925094760505372916527770326922584566984401136077062622803686105387959972136423371312869251543657795638575049404315064744964415961469955504704709137707794726688233605750228945156683904972143056545608423087523941338531880532456733369161532315707178239006385202985368343646271539691967718533917415919471090159706028517995929055601122394111265053546735490914003205697783780407127146384429564908016716473714653656395312135125618235968289353310061326201919264126391492620478523874967043366733143452639170379455923687230481631779001460633596146259684002046727033984661633631283572139720215199696159873815706457874219309192418086857796705213643597195476039125168260160689160698735640325756637006160387826398076914367785930022133484070795479403846165599349932664391033388809404559978637442031718538742076651161480230334310437926723016641929862145661206330718852802611187876753507092545093055969066747523677247078944139625097778517824842348838540586971440375182650482955155057359808830612551359687705924266220988153843825891613101910093029448771246202493715216552235435655749478589984927381051439382930358566021668019853878707516008425930728249700043978326504131156088226394049184715984948257588994930609599643722718188036590876096451309536867078086176797751536853266376525995107972483328562616210789376181105049542787977225763745413040762114555030229935767195239867936094858928321149027900612853723523378595411515078081197759892636690812352873566893320338503116492402809881173767764873243037165572841060181772698076520887559012894211259355084283861203257259086426849290583769796735501989450356648078263305899268689000637680615804401180559838446776960799758106341902741614017325551043860932317912148627965650357884249963472486487427827794784298529638269608224489448318595070061956893839351832466954389400390567558490912688965723838836965784610734146259386769377620414667616052099356005608933144727414014816135094159786143042749872041635076749656643483662330560733018311793848524768072071754222027895395157403582713887016065146177294158431393000515811899573811735339390566595717258288938201687402466942130247985661866666623756073863118679848303067743348115705864144337449644087122880432586705699834248231774045629054934555844984053406601078307875600039019403059841865569515928799686808512451484504612651199992259565501372817251219312506072625791614234497026392428150882434661703849280472078076555886682086528100520427600948855843933952960002137581282358319744402125074231044291264125821229071044000387440732528734038788770661409381168751660995012955145722047282822965226952961673209544298149761096551740570918668741328299612361549880725720342989618668728551078040742066325498132309246591796699442764707713926906530573247316997008066132044776907322188341421731033715930019806386101495098092896968742847750567154770232902957900102039107815309234151456262114996869555829406372719479921008401307259543065477471823374346847998261337176449546368030457399074781792886124956804605570068688692036730034328003504990156521365828580585302723861937088554473417891570813842315994610144869309518407148215788134335838313330189087144943896988806383660059115530581915505077925023463261859655370996610270141181030330189033485583202191539386715396348907438217733406086094420758696319717069903760430161276417835513215430868484518308472449114998204400157493910303735114421641774056290652922960314095278579639661886886125985136901390006029125315425896506962871263777335904572228024592027174931283684743756549372842048026016026159211068444659867854037209308169402019188529788080696159203544941459991944801816207575689030740102464624950095443455444486214168755609468574993714622314841466711987697142289327357870063902274691724288073152337861901396405315145472571639722191311439496037852055169203643021787141438606490119736446762926505249157045886659928673848977862072478630071993222346083348141478066889842583185973516028678240772903569412001002349032454998108649071198599831136811473495300914886331482234771200093117124058059153281805697381065863366487635581129029603248714000144164706786423132180310890791674109795919130540113071515777835068780369540383249959263838751084655217870860155726736790570302877013787834284385888375512410487148341919965668558952560190311513110467641592094301713508324609314712484058225223842378366438211416003258014866205354937816212550714661180967273600567487640078889994813436663949090282452189701223349361591464116597188839024084645673115282419617988430864576906950699144577335679622579521087030221583529679107803883075853408685262580489715043604431724678813915991410417681990068993126021379795460209576609709008282807991929753052321891923656639783402244728060878347150486957850837429286120174353503150104853472467035619580405228323107389854604562464840054342543889891932280222406616480919953800687898953492215493066899416519557030914934666244449818367847428772270438672946376176853754459393314229890620896018051204745153111597361105592200025829916990241548947902144130950193481892520014213372339301846693683788638109905414824503760469364295579751752584624091378537153453083204718962219061449715275380698916956567305650752056105139797999278755430649389085837829274537674174549927885959364452889712956531087115495620213396536587844818719841295552614641049127797805318024932817811473500503794071988670318839348735647946304435305246803077560040798937515030571434148044747450667580717285540438373479847488565274162910938581995547338534949598966866627656430020059046010310422085470540530633546703251289562447372153559153406367650558305419316818535550978966669685621674192107309139926726695806608406426783122473112531762100510183143416326283319418476639670704023452470199431812872817142695751263088055966670260328810494176740560309120131238533116920685274410736989274190843519852818995388130595661386939243078923986290954507363622004219229766856542965265648934037380029560889879180151976108244264186214682961845802883307028813012559347127265004117920533073855438342242219500368423592415430073955600562311759160507104215771130210721553102801879963710469658094481542129720222375480708737968776109346896584316460126621946401318685482943521167090968794171871113940660371748459836478879790924566998801420633222924898673753493886141842275017092002755179001941062195780152639390410206333546068409346054698153985913970095733180624749146288487008274908784647835785279426883070376154553594509716762320725851091461718771825864427945227297227105652671274117146930373556331297591631550619196346152451737217291191856536028307346626866982318757172953972586087020799434476929613999481031769813525503405496498782765799675006120964747672207030294569522427015864928682348470480982613953434728936700076773052046718883219134406944239030609961110344608169448148156073618567220885691370427917228612594822680841081081867715231960903241655429813456683931777590416544012682155412683386868559559144629367627798536955197060511355425687818781995990486619454943262211148256107621363903682424000049436472243633123973842152994057559844423442663205333172331133618725301617918467831141549974624443045521129017423302067351162187769776421238324178613249753922153134048000426496331535456384878988979872292541750144381709879230278390172380666139630263589070000594715153796104952315436934869822858106373010911759026166171023051281584446348028230544952972785466664462298520988923258816951658611998091531738842511860036135970852054748747724394507692467557664194237927171062154264377837872214309101573161270565183313899014037964275085660166742431743955365234312361595826434621379434345081946972465406192363348418658002797687067543173241384610748251144726628961370823599254901736352431479815072786643877602350477899180210249514606391004515529099351215455224738032768661940402986072418349386400260922996065202284949998656912086693902419451403491054414452588940056423641514932369418199465093424139206295199808261710194663900257358456400658636743819359020216066566213738175754077134008306393029368665854248849285618294537935337005655680874131927966309722131842086966281237964303625205891956886293041012164377009001464120912345188615768098852582703013063082631435112290904324143028847114031725754133872702451619302301953731373346572048600843226711217959711282150918299754443041102935169673188474476002788324839678310183322810689432572575969781181748260601646023790326760479165674884460431393518112074067871835649734171756410402602374398450355310839424380491429016331979179326031796302410953046760348752637203259993086052356598763249046919048902678640950759680338385518160587873961007922085097793617403755899936521843808222239486371463695457686342094921014845921040205738383786516972741611524044033541905854659086032205512896029737937119851840568644167075278840467578671157437466541224034008778465079871626037393486920510739578624108252878487584364437126441337131275988369350529979263602733587290927512334912767234249085305380435209044508689161600155526661205035591602138330754900576523761538895533001530094432166892452305967276529415395817417478900747838176438077263400721898380282559477812835247284460861878101565725526352838562541925763225751822188364542981491800061980540499920554463333354732386825611404600617955696385554981113646566889247909319422514830632581659060636853890722835961353182869081844278156635037028600755265215147416899313790869977223102958063110784728836013012201584084357503492460780948083268707254982804127659602380927611783514090628494128832697653870652736928561518381765612035835956428646447135134058787987349625081406637010088450866308756469556200350203380299423237795194548349240583142254642906690905943918371431730952630585395293464103280821813273767331815708960326271073009110751402730796658826777870173607607976040632772087697020644121860199961524746149804464350894599487204615486874245815054538967717006529441727069976728577590748486468476763982628716247895107259817654793811083294996250571904613476378727831064242405865272665269597500772809666037112734065743427193601401911671842359757481633876467572918599451139695504166859334308134012609266874502831738330281565780058548676478324563214371464882425385230773505040603719738325791645435758219092442176422335717169242573043807092086931929233691701167180078769410618479711963123331124579080478412370968738958342948864150725429633617466555788844897070571063192174280257764433570396273945234873052562151954941479253556650903300016330314706214684635081869914721967338395919462740065996082327752511041530545403280807596840049023298693477944304030169765450290255911222971293837386677306991025486819857718283004046206819286286756866320719934125075772778532989290303787488482307891812057700065861713845052131976958355990688835179639894680517729710176446352484329206276041202578457622602767474378107371588955255680177981843071162388648770807630197795417079832870011945356203706850941031304932492135641835543197979064342716385999750860510375238387325532514755914054951096973259392384342041390762494561336058054996846375553755546466877293212911819344770251632813372309139182377564380866725139015835333866105902881730849361360693937648027943539350947433042912222833180496398964636283725824384713247898155155904682668647386566669534985501685469110108138396980406727083070171019046703812622699274008889865017081956036671053508952116822373665168446944908117242220852398981205933468808777582554342139158415359343161724071989610788140542793822060832983714919566850113497416148426688294061848795235095932834764745364316469560733234882981416770364392182594875579162031174495282615522347103461737217148281425586825494722197783595861452265738917185652707842097347159201431852682397421749464781818355063879895707363192448795285254781235953281789148023238669244130436359085261390201539660540334467398887833546291313676061692300161618860314676927415977180538929171548342067931182747881140864089498168741678443620879085732724884259062017396253744112239597563748381949356177747915458548242265516683584671556436624538830124925330695211346227641623769537979138090809179320370226781676627958572219962193688601303558228672457837916749122886608982565412791970952421665685217371538179697455954867112822664193365792153340536507989813094996676196659373604769300352156113145295185164391311183592931594942931629791095884278879736740271910029478110763881518929752506994110023512849592565181885312432771006309833613204637086423190326493916717903976034271637214448028004514513387517694900124943855051361887639815050947274231905200877526478608000958095642971942597202931041670524629063530213888751997095529989207015061780689272464584884129349353796771658845775211132829560207702962023578130395671214276365290159612371238837408845637296598171991247733495499132901658114022056702999156851630968074782430224003393519711272823699317948714952014023585210609455933929799931190772577457047328120079446462338747069446605150497839793290932833968668641434771725912911023433073074105946604748584923298753870478281956802218558510172127768965247610444849754011693452406826465991127473639649919627885201513794163224359242524738638843309582004991733498542666807321620988687024265943301819881325738890844588044862111698853955399675426715385411926597632582472645242193718663784112016850051316438178226692478269884931693861773121485823779204016489235885851064309276627676015451266679858274878847629565331923439529635368214623055139466789075960308624073110030783955869916242043457134072481498496903569407248151857809420028639784026930753016376360757173455415161267988611908039398202351999670889179962015168040074498874072988206707530487901372129399485306119566342501668668252011406256034206787215563975248860948891821027549937835772602391897780905363482399839027472368305752031237065340170208824163977697415118154669913510353547479899377755041507100171406791475858230775305742160760515228029561726663908289208960092098603483407113820679625133933303350807048138373112994544544536525483778215907676441092174525618477017811112173650127187135041195035672041272675170574318266532602068485885041496842031927817159071440288625522793054362895632812442938047215633792047216643770922311855134897196540172384660913125766480598227899007823004848038084897833809060261812950543846766781664865259509622060011764761323072972761386771664821588764057677803449019892566224551228494395185842900488260523272918858598018691847828218870086290615057403464444732933354465833450621365508128858709429681623926999356355294755414237744815818846066165917986899116439911201249032855071732226058256541791326905331926006308920554895746774149921524155446576963307244700669210452212622274415194011684067092336728651108849244130538932066323742614827034322733228012646288094493551984518311026412057571957092305882313775532950801995816842041216209025078423981993328607212304600035397170443073743324086993179071954175010170265309137555871193431915726503041718283907927884007319014555433529505109375455031274886421242946021666241245010930656662687940713469755249047097055385363202307731965520091433933982235730540246386925907267697095800585564885731561204399148822181430314631137816037614943421704253424700493910212187893727585652159287141850686095925488840275059344986093659974939998312034243446017060310903191121273607536930661886687395867664954798606761267830736626563541922013482195372290211277166401256719464689388667758928466416794547092858763415275599199237554557175283530345716124650720778105314750394358422900797466832513425525199753403834447632856490370171944292535300995300840735922283505127279056895357178441167387071936899086532982679120847351733657333548461227953113753588546894555277546588138912175892147568920899788375177209630380090677129826067002877803539024241821079578489053843884879463069300758860432490311263710804013474662152911615288014617315933636610596269877359759418122557771400266140580561437535378436951977890950658730530598125118029794537523804163476124762975433242542286620272711182184868406838337207046883190343255489079842198526721985871630752708234235630066336317967850015307769458039389824711866477543572573994612129499006520033037157479528196135613995268047004235369784831531941953006897194480588289954979413412516993011175647905541075894347679951950099059802270070423168552694938527695483269478484791850657635229658110504020270848327334056311045431046860082458607961293740298892653402359082271298219351762629220599283219002086301421763563318514996626327826009980416520545322264316641964861129480283940203900065581286247764316965447674950158548481212419014618884186094656309512561766500242601537542342524831541383021044900902769047393499104210071767634002952231010541974637814548008614715130324093417019377256106746951012161703827674976778629404224806769311711737546940145810104278051779748296603307044153627518772820558337468676636215434259014895167196934624356982769631222718084731491200756762441100535601553966139443035106847875447017779643563989394256744837573455670186635117641366734105364441737033092404464241378328829032339530739247079353245140631990434018317599551805088344663250450781048655365969840429163839530663022148851291802645395733865035184892070224946487393989684600098146717901780033181850262633535232876531305289726668417114076188244973876713097346857590110449653256347618915819879026381223088518893737740318161256528061773387823262025011679681426320632915269704850306232287946627457127634273828389321133784809411504623134957318040420647293573863991697846869246412187992986971051673075089530928058972587878254637425841468874488399253544564079295115247847673967102970848023524132116949237820376947891005202397248548364133990125844728343117668898683281500938530803244557102200460016221243257568341023362010790014687426007840686428156268513152531379964912662571002119458207969011101054774987729290207937172659304765286933138381431335141430060407610201409665183996350587753436402014374166930273139255112153240517969093845641364374998136318205853494634753655409836950180248017676103860558986238268909162972966970952913035974956303370822162777089721130087471285557014574209913850665827932209636021182555554728335030553598178943821117436779200223557970290162101587193619782118950639296599121805708723718318163727827479476091070088201961873846819604595694981163636842717602752638128710330232570030904655110675770758706805481126305848420872240294011354564314089303270415395689980338358242057813813871688286423762986707715959832996902990836821300201159138366220866404013610441231901057151222988808901498043884086946382054087044846289975120636776453161671136569719574840100556724558144850124137095217107238085984794489131788782518115731452020696218029655449588167781074027899527105635485067375684399291446100568250355304100071029863833496262621570460785747367978179648525228391879112826495948226957161571997681060282300392661983548213192709861779805089153984062426825383385827530481176510151716951202929463761592055128996926769685439688638840182721494868048800259758828827969398808639583657005949536435317985042616526354328762969911220308180008783173419162082992678090393763569318816342840493481563597697632100246986622084760425326075534717914601659671694722448628924537923615973609368746502002532344514978190713377648688425937991415891505007198094190356332464088449033187394910872089291807112285608790760537415326256004527778113416580931758885797537528739708033749078474415237120260802708770785026731081892313846196170963339996103506762222466238835749088146578004691207236110698239676705490656359311090352379804980723412602298736174147015794578631907240206294509448601563210906700161388854797453365455673343026545558547812169877454171866157958466923841956582563785731261886805248335156225198840082858247027339999423150224287849849978003520029615239880952253532666627202538105948868763090912433097938259710732715507300136421661888529048138634989362739497694077162249504654313952641780762683574132518407139245957745845361450477013252686217917506047287839272570617588777176370733538174928793046598070844045568300066162407881823918294337943884144410218906047027350782973856177436327710074734364586366950751764534748203470745500365326716624092752423894535899948626169212914299870555409626277153382946367856600716813827832617498561356158415340926391931881195536281086999330436528503566556855897337295460856624701075271273834776314484079944295386161082365170494126698241650100165847513074499458333419024672059430538077265559373051911810714232301368416895664029261944504362092591284364629519214399699930361624074360164048746079742167353280230971285715383975782035796872016717680516586834033203084512230570448975750307743145511232599980512952835102963431733683300426052886389340378332683588712429324595423742748985921707409104359285024630502904719603108676004592964853073304447134835361246550402166767393141613622573798590697674835838247025007538946555685624953322205081823079850131651864132962306766472418142045770318132532914173845918329519608733063679149173130263927864461933904426890040767860219254566998752394788648603776611495475558201993951166482429743007593020907296759422619661539251268328143216634126928627563803408751237346485329019769612963324302151094861183002685351047851557748408382107344268470346218514084570569476716622433788539181346702719895816627176362488983240729354528592716303790094363000048467720777976703721285428474492260768300086350101589496073227355874761441729919541498896216852524508498793210081681934358050442463927113022397920745707836563582692475986743799975579125855906117911785942320173476825935745630935057731331445163160706370271594186031032924893662005724554500775137264968263870985807130434679615759753331389996501345529829227411695504893786055432708304616223213562245381832517433175126806694110767651149654737281415028054643609511096201072705003276477408299789844797490515529174128846534210922424248312097773121533759619262926867388493823218209613854686494760725103549881079667842470012772973610595839500372099506482943573935800382181825234714707569750674766230638003288150333185190022289168026809065497307151007410259965086839147645231358229676947074189412061979639681071784842928724302035302789752195054007296060075583970924803332214355659810241312868844018920971853907793027397871042406903677704561747153235696869490097122851916759857241378275550739014032739961371307104260526241911313443269403676481754439768969481235706887662243740973230635614877390437756802834519993651230234238341317562027611939213232942680604173162692014183872284980878117764660868430101683667142971809011986999596090175501931790522418184108646083308860280894607905537535378115443068416319304599735280042983581453099526866132169537833855040063875327685635070648356295429216971492051410694995930062766912067973527122677247204875322994918751576146473203970971963290406753361630964727270811085988792670110410406712249218957045823242381510439348177099433809840969001715290352870424525132038508965043681870050339152300361118144365018881697995904180184777299860903843008382700198915278116274118387059524871869422557598559901436495325149371696626407494088435337107217554471985940720459413447203034509809451792007930552569915737161030091678738426682225808198063436250887383922155006342180996279242503463929778292790117501455919613879158118340240036084242491681437969535153314951363820281270790401035792288454676650916158531159308856336373365909385546227460677291333185188691155449988329318690955846105986452712639534359853866170994654454519708829657798339584852994403581709934565535880342883641034781795511474593581440781530483414998313436864456513999664872018906525390640442955428749642846950513173984526228472335072750520199235050376304571159560117926017559674189235206327176467673062189181814281272473999873497085107578387824336475537979125145750583965343035011080460466771043259246901904125105969405110303602163369342360955708073783311226411613125214015426965267337431489627536688985902225987018221808317309608626631798004791801709844711544473353924216547105604258224931509530817248810001489058769452289464911430697962531119228343668004841523498091726104161239342550598518763993055762139601152096324330237905534776918066160777046547529439232289713204177133728407021365756791080503078551310979755835400218465670884949116691443617893781682833191284423221907209459164162651645131808375450114367263397108012339701394744363541773607743238718006728113290909273282417712799745501720818729346671400520900385859824619958001235270506937458405486192171533883582790621795562426185621397506401890177455118659640875177590718037297909589274100503807086975390758954882596908019816372976724923864845091656937509729608711850351575472825274920183304723275741337958062569907775104258416923639237643784265416520665181753147227351171854646331572176759960656485355241821453937690473922539144343008053106255473032595033361521948644407002137181087580639571707584948344753751044802092408898282482825098772644545385961525142812460843279559731909172657127513023327225021501664035175123599385251561688170025046230552683572544404349335792256693322659973103638296194817278074855263171736309723965585331162804198717848111398754823586203972089803810810449728742589601460529712025847984513791304968285090521326242263141874916959060675806992014619604011910267893438249512712373812072606277795260961874672284707858966351174042042883793726449813301388479856389090888711180316042669042809706827514206810198465131674801966040504294643219606355358164232423940169484627219560683348466320934505919730423632304060043190039428583289472087891714700649031644691462515625089753294319075164600882746980082269655163661834281402216299296607848115124676487550384012846409775702878070104938361787154085250755271251939636105820961247930751066412778940774746925531104631908145050212744521276483490970307394718809331567654622501278718230124835755473264933524220272633988057630877914267846382398634403889334942668924713395787145794913812426078586591962705232585528919008234718171262039309722966847729154225818743255663637415380847053745115561807306486077054803028419254481808051913477065353237959467944753017463830679490015624271381997766916782164483347970316274961570128654640379524008828089463761594341667151628915107085785493600008099062188039631749897078091435966603434194035455450065696746354736882505503425831348692818576126581340781989289877395841004778432598136773034643651682270613400129448014249920626523913446247548520235210547079680514223457208935827747761799239840884902393371775719981094534318335323202774520994681116714605387328286673551982307505383091852642982711998556895381362896245645785283911603776171977086799088960452083947308407659992394679991057207000457433538658667712383810452091140174778489822741769091813909871888555013607502933156159576913188602732039710915380235215843282346563803934858378546640625288265704714549791077852240299582494347516095104355769758222334771322224242402727486917895355538837728329405505781777766706492699882954793330059566915472611368747298320489112308625189217982092149937130343584793411885565617011230431842143503133857131622401360526891557966061094427688814910015405760775843530111007153891760044230581500947478449109564673356521396813122062809554472173096834959539193003479297749475946105152551577170155640948711651390182059441006539935261162297323704699239461077564175846400776499530552016132770566163304377726786555782651251549535813193622107335239180915669998072707828288573085432467641142437103133204304095467004041875274014346055895109033960852231065227789154565279066674010439839646915360790502544129395285847316426439810741848868937408630848606111395769152697071266110383874587491290407329450937357026872195532624234665022222388118876671652876535568788643647902084161962931797801173823380544589963408217372637459014511102117741062382174481091766145203793450960606250920187390263975204406734346595393243104514470829715136210510412861696783153632534052983501566656633062031954354392228380965101452447865320483148363417620676686643222090778118988824024862109320623324998439779230360429485262537601528561108224658878487369619383728683507856048654112183913146668907108263370910865881957876016472451749199440487941303323287244829205228235600270983065621017354627158321403776389790748808750650205548044416229447346585002819834991282707988186901013204842092415966250729371016261846589862720738986983318416592518881646780625969320112127285159827745265050705891800419516262008698472887880534442839505202412843465863353728386068351085780092317813826644780844859483567293393064760579457539210283066791832995480844570055072863841598540818907371364850470044651843826882988968262191901028568395961564583794547546496459712092906433204159019315759401258151356301033400915505065329083313822813873088323320773435360954046082811032902494454391335005386015138111488257926104710712939010925792344303786977612959113496807265629829414247349660740632159486134771777305194521768817812264770132791358923039078289523208618011402447277601464206411437605352695397546040952981896439588493069279879660285470721768788497521455350730780759394620440504550947388060566682322752277423372745716281832281926001032471645695848259270282452112506305496294665814095383574219982156713836680859548090189179386872248893427938910525197411348428816919693849667362418813811049341613581759859224793085610617159435439853826479622219350437619156347582296340297370543723739375243630791676557502565126290517483678294517657016782380758330618376639232127089622227033026033657993190754073343290215581431142741828984147387748061850557020009871769071977255748062633387673945886958460603140153615180878770602140129142118606261104751208676929169558687858932346202956630874091660577367652940934689460014456192923054985113559427487729270544781384751743062958215863372630090193483590598842908797337128785866871096499125620844969903211182757047192175215971890258780669982825777271604720529841832342633669002792539380968984965750845268579021929058274529727504121425170977421077165422855407965040827588373087927952061786874664685966188291308214445641935032800691154034314544278790456014993937578294375641007547553625690980624214981453058768129695132195485301591278200943994562847035440389248134273864152955666841565692216646376193092086764148012525109335862285949307158012847179306134880863691804985063638327927462106840370266461416230463628755405753779388908927134736906172302818017051186005249590505988403639993797667537842279716608626148950768866733445197001780195119053694009828306187857497362160317580777942617810881382928149813150021500484003880603055252961138434004975277480218427685631424819157835863842177844113982347330888862877719988254596762107606577607926322048520848846675521186629088822460579550730031883272418120451772589706714666097233633166580547247965491717667551592324032172447069779436714416870701970559048025996046368391718089425971841392527365965633441043633551779561777421617588910580953086026439420695678934358073607053915524866314588676799210424825230998735784406560582385249742367826729126757672770614664439630415537835389374923737350580027134954996088170773935486556423977521111588777021376850364403551979502627607548963858797608207916743367239160115035847019976208529837197553318523721176544137496494895404528202842670299185138522979208566993545226766112253015565946535401550017638097478971059443403639988535555684329904684679219083753839567599949086816502220995399609940172037060207801752254367503630861499410282291050738272125181716548689739782994799207502981673750349075363708850244797499167739810118257996745598569321157973813917042450331542115717321329012384142139908358191649106225720185609194896237704654907138077348588117958002450195288504805021175243581668754459120033602911789504652889306433890589810633882628608314225346816689030628617371510338348148280998785968837456820827814592564691952256002594667445355981951856765705855501089122304009015560978846867606833433501821451221756598932782082402764945513856158728220753738040657725945428947910468243872754817247517687037067721276317660792542930052486175437582073327247547729772903137293627669666055661368450696280463742305924755334453004080742688129212878109278441712331461704527429571337322861663458041876167604862897428178911839471175144970637989171626501208148567640721248927900154579218014028686718125585762512405410268292005172222425609874349445354399615202663666465473871053901046024947721353434572269861296445792382992065444177350022146708027061030038364266095714109386233832539217545558345827687527725514070984615264120253509544203344303597002915760178349548639322621314159760319481918226336720461253966123910661549964021287984654327829960904238694113360130566518167044496318440736117082920002218699437713231442400708843677807176978326012458222772100400798931442041704766104900254671227089809094525840690239024640320421219625790324955523728869779897207113974160302006249511494098510506699542386972515856508871288660129859807477168290232808764021969806408102433802654065182032602256822174517741058427894791458902651618230759069043157625522651693234727685144346133038339694321800893239847797188382874593774776721979825247266014173117493391551734235905765375893467099597514230110122826687939427162508878602800685362256626325815916382268924455197460709199245336161116661304896959650862054611613387433542435370250091345365665303196092968224867936520108588787465118704346717490560010686377315130235726560845026007053767176648288346634554498061756689994007170470860401470882091659237617646547667153497306865165041746424366227918402592388564625934198952938936416743468625502315562430288773656605975434890921088973124713380799190939311017092934807380525344496155410470016188437994313254358941305240388569082004443615316848187787647929906445809650824333398919501212582130641422477477037494803320230807637050780230361352535616301279935772090554173744201759829510965854374910840279876250143981756185136592443098350137823279212860019592331990494844377265799530378736087888542403196685852508739509122962615558529706037506486257175728881633844410491284845246492426596700413877419123609710228937484351425709171106360255505607784407802824899932855754791035138910028427717303488344020396090144266745894394928965334102351444767092480946823814456041370574044005133857098177768127456771760651155055533553292593724703461356350658189781010919836319058887806461420412157833463953038001979263835610151603224550019590975583434028262020345834094765388083643366776146792207047505878719849263272606109978506946128071828788942346483298018486042606911688070171348552508612139536483835436350919231114817304466431163838387017028455483048008133115323740198220777726888635934920294983259392936555527196509340940593253043982427093185631877055432197153860712732631107395293352726366062892813169745569643812568635077862822219439336427559640346957700741854206714755674354047193307835795509892852376196104746950298071308522337332521578083500899229707677745527351349050378103592475385243743636550038466193405992919033373100432516123346013259478236053447059219614582987360590265451671050850008107373635498333685734691721476299873960881256676088005889676342270203909457440595168412870900749098998690206583318685775705490093148813033414898309740785806539058299839768687660293112967700544852328652578527865565060970278916553338524084357233018352790142881129687550702325138190977331964778666848493631136440901914441317061297385902701282214970393868829162836910955492938251131194105950769679666057356579664916279748307536658804410839675903702478516877136652275340645095238604521216644815276583250604126213697285061363929262462115611642266777493867895817094361318849911236900893178532534823046330667017656241491174785774495489699017738869001337150634381068195010250701217366875268908897868527374333223385772445381282845470569982811647498473451881823074437116731158936032704392641136416181189234793622298268876711922968223192088206861911404994300390433665120512366257812739820983875529408268018918177710756735237212153295331443483630551224942498965773140489669781694092183303428098908913977597906039612419339306740993773809396743760312922094966617878403024610290128297856344117172607422247363152693079703862942270567643480174209239182705009346060391795961939031890813895664320724779072159190664489226126102515935437187993159509342850091258468565882387609515969140863191155099314568294373947160608598419785422200413201144786164849461807087188975917407714316652465964033307548402058450083931161512443699740331505431511979839048662527279772813367935294285348047386425820260893960723071762894666995663461243564102415737777367789903393853974629771536504859764761227422565035532645751971577579747927149577104481292269571039082192736639025182864306535795852293340918119354054506087467159697753644634184541360724746812285638687612002048418208236325140089852291283707059242394177047745487630248446302287846557816150826007719988491834586467337844145370416455141952747821179557756418919388373801413716937012909870371508336918337669919276376752821982918417405632558139704755140771954734866973198478152819457779988939336091932244646450275726616761267470735490646290169956765203198558579322856309647745057660845698609600235082140664660349359593647218278168138006653764714851363361211623509318155647218195245311929849563006054254859271600444444179299917153128275149156011786101582024115359798931080567325003209043751628961613126431441916078469884820528275214047972534049262357630553797031055008490368701353902432475906376350032036278651367066792924591689546108217461176487145825528751738248091442951108619073819890845354474174589530312114813959536675877171900099082439028092492218426430210774845558609660681073534735797648160002591795895789831409116975377956831058130910459796193708690930001379535109372607867792952701829514940527106700063935986166347432198991864608937398297060835484947018251348968416810036508974349631109977734795928370730365386563662178247454416128790648629176321804299310151204280484445672830933861484590931638516263381916666059705697940556151162698446189752111279350247619564367937395174716674341766067097600512721227607545207891032408347090639105456594858933482960083139487583042220784927359429021541233690131239229981174143294693244387932094000958380484425577121967168454188201021052823200915392328624217729722224409753697279509470496101520357565258172038854636361491953762010858990260556377296201319704974784846748548352253821526063001175955313831444778445010406624712149361100706297263977820957341302110199311399137351981468063660083363304368996816339889609683268964098727459107060700715160139971638584490874146658664483611812981178618094211901331661454927214008730118211703489166558704584465755816349468870767240079925525111766293378193459659973031334830593289902801057188162384098029498082844954146463958909660203198775839823866759221131472644561701313222651438327575740849982077205367512454398551769291417639037016107348909584054207816023785885866381322203012858249385306343631028159701222383364491680639209285777034223218210277731218043009369850145183119226807566288145986268924828287503108745682009120279461945084959923565817555186282530214835569377100550576018755205882621615547930298312505928665572533649850701540175655669834690910437224270951169101629802904558042987537896152447501321408331158251785757168354640939329300962092138844611732360065904122717470772538504142319710113361516316499666304196378547562068858398971234589442101014220690632928357623860425127750567898208888504783756491579925424581235494034517693541238609637362315344894753710860898429062818295769661229229108507729610526276163353364535862726853731501075562640281136519943818961916883853426682738639648405972986485138307651365710255113842782831150493668614543853042181673604158832405754377297742798578906917609955009714418771998052470580174273817699196803580351827576382432594315024317149446737257190830902910874152159288035811589745911209836770272467056107056793764394330496196641292454290898188388134899254031939095924395803491111871862886058566451030926687554925231367696428244746845167850452107615615332174274630398039486334713599401016972182173406060614946204004705924333995056461961514564743831514762039626243797063711201234335758864949831275001168878818418703912360160848433159708400328662464872293038375288021802625716781519349263537831170578609310996329464894843672858492640062045675446827232074765756105502018377501154784995014881587214288327144903982466839178780899015481358422967795894470400025454380587272223520680674106762968193411116694006366680796346027078817810987935247336230789504749931955726228532883729227044630213130665830236264541657453002518129772267631939663483464398594480627107372211313157722653859144929886516559317044342585498177814005490304859638861802595262465058743106738239502792888688903512703136021167842837310863366875823193344856553134925759998276823962888417366321427989397872014705435112200153666994369643860767475367320632880937394070791545020345225716768421781547599043662371967067861036831580707842424539485077606012901428450543005240444599654507469198567154503768608530338140299298477008810605663438694478384961046075699148054247044634298355312481456834930670187119678038599294717865685796086745118407271527840987685312709703177943282173959412262104611629100376971182246829361661109057444213755547775485488281401758049532583135602127443864404436267701534180061680503382614429298742772049389842339501737399260866792184019195795797287439502836836928986400050204243627860415106146749101864209041085322869218086497911106574205787629548196418616274272534840515903366706618904068546862934957554288799451477600450237510911682728086209506816960619738187505367363594532013623564760661612952469834348659887204102820445379994086693260197574370877629932513851779101112911596228971606501131519191323215429581470042632042191742743248895665126046101208491582219648217193645400387512917623145722309519319751346600840037822485189059100358604963073140986070609523235933127740303165358863579804227820413037436006204730017388575860784717654796251171296383218342260223092997736000799092059172071695387305140158362274145240847227265782402251741172976860475358026331053609992485669848362765890194632441388933802223317715203229485797176801814791910772656325625087451147189061021515978853096864156417659214444322384711818456009136602311166379775057076037523708996860389810859389844136514603107076933730834485219072306845404816932757444243299557444231312068718113826521765010639859619300148294853072015606504394670090397558027683642459752430851247027431619154442514972509447412175542523353261450202842245731518866452739079206159849910710520480711258783542924602031981389749691840756050103518735617482878279880732777419546575006334676941003080140149965154537049738742282453677965528288961580954915367608468807652985626405509137851166448570626426854218288408770559291195581043649615131308489554250528067692467386319780721441807567958912327416903854592019317627447357387127014705477950010723638665941573437764264017487330642832988805971640292587086169016274595722213119241084615485181393446349424853151361982209584201542049327460356742564237930844509820423255693071031856758488174630708857783326648152967886580110592116369884020561711293497333808297815274992607230073403400634938935446222326961977958123382650889976456271605652178319129187917068850797430666370312375282500060909882767607503090266196002590322444803679481907371233147264648003890077878075300109730489916468786790668306209747645264356680465758576882630263782770465841501545141413263647953488926630616862026571382712116559463901873395832532620395562038686469678052655823305439025628252522657462121841482732854808884968300090967343843745449961617197436396712212665288512853489048142186236004348878882945782658262235642542313993355071141188583631946131484463950877467300534654355546798933818944702379807890478571299522450143228671949129304830401456416055127336095771330090781777734089363750755180535338281129520536033124294461647529694018752517195296884718227634356772437115454050009849766937299775538351201104528551521529351504025362558273247657111822069712693997686023952807937709105404051330555649599077303428822784095142890919877441370890765143684384343962823172078117625063114164891560228415304570441886623485015631504728730056076706931150282253988755044601011730980333390746262085110875784786104691482993468399826978507642501858254037860171858894203947874391596740417342666127950141715533164534898546906551782475424906485991794652409812071133504185943986964532679644944909804359248956444375570768072769664479103643038356799829751263966231483356529136880099576627531607217621102276903070314500915786059241096017505508531835768099861689417123164921404691644434035196645105632136888059830065496766412916244275816950118839919464073223293105594637929882980171287748915416022433325804659617081569235280505201289088271965181147410602991540593658410871722442666544464655293812717806521841669222252089018496618658479989038609351927862186284329916989505756382366250960189222366386229396920332679121276947546186739155989143802195808480997073675839546782650202396369223552388684431899410415751742874027742002344806051997900066159809544001289941073027892682804544453925743910566941267083670352511356663872799818941592746832613759619297663994060509310425358073190229650480981804141887526212947427547826210836856217909838548848741374569455066675381917312873789036534817095044417027398617762724272711834783293134237916614251743955368265137495580790145931356591929838547801993298090086862842455289736893026752888748100047826192924361004411705056286653904802216448050378442487697956075952384570511556011292705929846483782711579383573182770132322487857561919639489698288014509289112171458573590337160252338954735973441974303342152404208886602940045478146982573565298928231575177907368302141065400916836094670251648778734100709178413471936594520474981667242433440867360419623566878985772916580723352685727552254914153971358244956360016606069218518971461516651014146172151421316787993445401172193353878618397009018537582752988784529396406844633688928987110678013492524909645223788023666628748025657511855968458505357158472272051132743303672866308937274825702516297168888461619219836703801627666231139238966568771992908754994573213413842716930159013451245070011228038938734574472915652569297226104830637005984834883534504373891299224675417049973794409606084878210462299689713412304224546834705325760825028277859268148944483383198397950301782878376534644616771677463662523251473926580243348961815413957612018596018844642448114742081546959338162694802721372520208475085367819570316073993832959239704638365717160320549203046509942304263675508117559301621041517432448203258573505748433812272676349974903776578996716814341384773063240264376010299111722293341204787091248706827736606565081928809039116332520277028570519330520118517107309840834280932952281630217982774498234908102396601457827613445091214162452195939107380122583115635787328035401251932062255326408836587536608906785917511813427093955489138951850012454614585906885709421337969750639568605470053756702490228321604351184048801189356344683051296024286073771164205246816205875733436443409840738106419391160516201776551758496233340363761953263812204233765107963575085849383738764645173321269828190112214187409119695872458367027625694992223768276319986331802104965072174296287913972424150944548290570312101623467726675561954814617496605001977336063556487181369726682211881154291496000853792432829699302966123341034417647849956908737953380942137094844590110049522985037619113251422525482830515604124310346408161360272857657005466283544740968612229553843772079953219590855569173581672464938515958180281240746063677754505832087020907116685649194757080438167475879588762622789392035681242765842513775941523208305511237084235940228426415807840683442680026627017417951939604287429381995709040244605424261439426902727545451179876184328184941625780493374546389409594778099185141073343845075720528366859667598637744968845165021067469650752128144568672171183011162090086737601273361970109121408446052547122676644174706980608643310017609676906473632246611611131651219686918906367448665635992050537089439307641071618055920383407234120652565571709396317110394252889180105375462091779969433494903957780744506931233340435014573764880810126243719883868356670920964843903237802868791961154802401630743600205294468361994988214748112087442670813293585620675492746220453074159695897186660538558304014023518410197236879243507137681806095053458054014058784435060953467870322421818844894093408880884105237832593993568723412269987540434269557151952458501726144251358959372045271152656767160066912150561453959516919317306550539365771764407379786012004989748765362489351688352300852273744683112350993711178759540299200897526702101391103287828488285338197491928197572402822615175442131292268299511014596491083551460352004434930295233019540180213913247706280975573804683025627378262555719428710018613143350452929425691398846977115073302192512751707879566554111925361968855165352970804105537096498914808275489456952341923541035107496013857876441862887344507595801950161733484087406409962030452686620786153891243617699015098987236323784187152418607727122618865041098528854320084961585041793179782844033091925412007062133135793412615579249919878645265882423669579343904335952884439430237983956539912892233456433741181720196963578612589603804890528629666994339975089311066739502478326622606283465986042066067857809650303734275926456696250267471310317384034332083620043939364442705771807288065560712339712263235737523816199233310868079494139164780291450767312404683718454184251448272997034211563523144223619600718538732486382659322861229499418484253140530940186126680644687074909061426468512092827475289868299255825390554846557266843146682805292442917250387369361030787814883859877251111496716846240583056853344096640044921074648706063790582767601544326477330078308730811951305334360988566831419999831775737160261991627216518028160511833715693496357886513521359660157122014832364047848673909054138854309265512862142692983655791058919387332882253982836689988508920510035709239809802420019117345974793579561801771905430329005046725981023220263682376860777094320235026065715390681407050337408623573159058369377501226250642039158224338335316665683206188854693961871625200396694667576188141392507013417908280099169664365546254866152283956601654151307180158692748558676048695954035987321526026559875987479531349642636721047643994188540934675410068231718680246934088553783791620128724048296630245679327836684964111064929892983577272071008323783090500482928589461580789437251971624710274715511654604451010918922888771174781898427148226665282927655046741785093992367497065299708462995305506493191543952660487158018238266683848490072239428626840203090179876295622489280239753966922564924659947412716434294845453444297719761708788661551554708482673976263095055104872782301962670139529897087411144089375015694186096422723425638190355672940310786450397158886413389815641963737386840489444654310632179625797674430695017929550897753290172334276959732502168731754281151347702550709840123966693535972689733965704090335490074978479395336694212815217241090629313470642802330716730497522042531587352743147555471896600457670785189829815053489749324142603992558358073376014329108007837247640137323058548353935280905969828972841408881845620008830304664509306436942184541299294321239461403363043569157764107397579340294031622436523097470598430009360693354690011647160128704187626603691123165432303933143315265380705940297958019608664102011368003513204330247837871628472116262837487452407755757539241512905001622221172056639050516155443342404370031222758561307784052478371821364880385267264462006358913758024640899880794681098204991876299084332242135838941171131097909234645568852492425112273212156274970671102408557324717806506542573352249749172609135592753290062489376732132854958240526738064113590180780189560017947952723678666744115076503646815234439428306777368709430437565176044532048889455372227158752988434716056023122179363795396236212563871908767391187482805289442635868765843532657107496086875746016677105306935079690394974913139834590937999477554533804442824856471463656858500937796022996703187818677346277072948332952818855546215352201398138307238714799724643649878503222336037496395795328071165827518777954162422622276264644091736450514774565198072162119783077650293173293636161551899896240815446449579553137706268139336864668013461164720968396553036391012671964861666506422768658007623114332205446792974793431081490127375849985725016115943892268479773313472426916347852055003371044154170016499237990794623162987095111455689060562721557824485248233436090310259762948510040449880684967745134124325057258355634416934570750870501014192450236942511282187159189323952424478086237848081298340437337507863391572161747662231841703255636999643816496518959320719573854820367744762711728707675222856870962296843976822944096226112631435121275478592457066775734099495636649886814080578365103409746787040222634962697919728499730760371819994512377705623557024173150966275032450120524488053908497226523989794249586683263414280703527305613529462403857386302100604450972290666454534641497323479118645002910959549574068715696001138106409349310906596020992283945013015203684950054974671183858440858068833375879434690498959326483634928362453199566429681592456904615604779493191969304191658499840220528245136597553958554119867565879875300891596829834992329445003224231597251871677351273050314491557176740900721392063883723964117028436140984886655738210197145341550344204462516549327276876897276141378400166236667591493484166373338892940923490859841913320501713229318474798359359153097479947035220500507696202102346930155774032609750649316683962902361925495335195905738248849639288814685145804542643024700586915608841187033642595833822418459820440196762962808818629054133584044380588675766071597723964572132263620172719569039362347253206156224095284611867763704777934976775920117448649024706145690487117513706816488866789577498171896221957320593442765806554738474240792869076969433556630100692378350369750894168879755258789558697080025867570116598282193765434195217254046035472974862759006739435770813003697818549762906208516421378252267364999394683502948918154630444544187367936200344162169779825948355041685617072574676872972017121020809459533007229627959616885652039935126939943725605452842730652971773656393263041732999976408812163247973428835036693198352337669566923374830294674243564400837036500541633406625316313516278374310255644748799040819899193432933901341436299446188534697399354742823316317598245887738998873724194895139474864034230077723037503293687095290781454320098493027203901777680707633150870972267409249492317298978902312372502024174473959428446208847290571503078395842078383692308197102836745061442866385001906138472776592506787288682480950006597602987697011322006881867687335488856809113977083267696609650565794641336668045513783786191422406336389969421456406496391682606604756545277821904871081476219266333233581612810750302467746534707047093173452471723096523209514319056023015434039471420625803043095838025908713769189094634033222782853345407711983365496873417435163437605868974829507196719707722171126644316938642962332069495445807095550429231268875839491025252608586404202775192787382761583083557930988586191759523298403070285839716801851526270462429380209171016627172860650610437023594512631813357745116880649931499783859040587474953701242306390783815908100288999872678437577330940288911872617564790399020914473738820513073991044501076595537763315254715325386246900170263671078165941598954759729849605911472431476175868846448773963275004020829167226683283978039898317725042966596588102028258740428032535743182716671925060030824536920717630211471948658096568722797083654481177078710950256280107894936117723851869264714590533388183192101975321296315761008600575333223343389257641641123635113177451458427691691423516766672024465788183537722630380289530246822424850394118887780833106774311011396320216925102036382103507023665413345561106950008424795850942962404396084019740289349517517665890584139524495733950618204958559209481466357080971351929305828022197585991875006502914361375306638256867808421605378504733592192281305157025498987674311096988093760490027920063309270527751069493428021783936219342664758412454861149107894940498856792783408782946496826685142336929019940817917009423860837757623480250717369323409035933116804342672510593337571641951663819214731316659362588653558815071104719104224814790603889875524019093187125422505856782277637855124343731037457542246501120542487063019885331274117118520111184284971480604997725604151262258506886424329581607882957763576663457090621006737663586913682779297075107048257221637912869862183627450356461505491693297246956571103374993414294900383160495220989169965557043224727152592496696268796462249050114111228661986878896963246958598895092832015808214575485346272579891528657640156952403323616727386848086292947493844320781585849320381474244927266390003990738116403150888744385383579585083496941629766697343407821584951382631966270705679087070487714885988183610123148972433427757342125600734746210731011410228691332446955790538878006182117754786065267089542103060166537046828862113843236569665130138772887701968971610187430430921758460650240189817158583834226409612475831671153384393929817642923239351738567393626835779893944242463298192338291965088772621374420926305670295370731006682145106886514359227383230589431550041998338573558905504847884763271349483018103650253896639323347587011928546520532155682467697928159058640387296574129078395084951286044249253846280815938908979941820129862910678005890478155520098479771240670804647566845791384706186376799649708775550859945078379232923888422371298687818401743376271875900422469560482553767217608154185130951123915293296475738483131147807049692922249529923491895029669499772187698439098544196171415455074088636135039033632030982340070949778632758200249882199219149105105857855542945860496900347349547403222590652074563193622720664232421196593576971160365483784121098128761248992587928820392272604959389192690631216145888359388881632227736968572777167791344185369389748748292079087691171230289081138124886780220338945606175308628936121578248614504810838093872384413466803886357982456188663562914069276167848559840567146339024338846514966797005457109837500866606064877453528012573642736676849302211662432734958237955858144313402166529464813209618886408082065193231344540351201559278187492383053269250634267854093111108424279306291635750316474488016820908635568290167805631174582785504526963130775797217445294430330845141937694175424103058531068970742522996391648288237771677644886452684948275694261911160927217193918123908407582349130658223047836155060651738909505566742835648509231610010656694713886428600919401469483779945642967197614825063283689121281421799219978978754079834967158240080308233466225930670234031529129257819555180941415703840288797676755049464813908577242032741204213297461636350656508615433974834213274442003270799053708986454471289216035542662128422560247566333587736531446882955256471848571337379023614730954868662481918083868625540987944104647438126563361006587705793686770879809150138490702106873232172786410750014434396551036212560852967157676463347670939665796487029485914478288291694192652801648425984506359656893964852534717497192626393978179061147945254269333963380990103993377344215735796335721956446250267139616437629688579314703776394880046445908069325154249156417586583625418277861418361808102848821619517677772865850540805505338687622703406965001022185531600992058150234067593415934272776280834596450125888732592527733996862150482475579784183759408828081905096411891470400996353279571907666652035306978742977612806780161634236466960431976037471282779629832157149233807410223487593875837215731569544365929121870057334115135485703564780080842525207840839258747577900749538851897209764727292282915207638577965253576362507022824428794763984159992486379904141929128398063648861715866468148051885705127550240876288685597876909266585310696337476959923686262399633217257680044155086897169046642012664354166607532082592520671813119874782092527552514341498963251742199562793181101697038542883379738245622776575452808568975283283985579203101645280596424880726267339287759818040993822522030655162595918532652026849047633198296063974049289845279599711575424579207119488739461178608684520222321305925598735465166137294504611227749509550279578628559488742170969764143172265188152626419007780472115945964350041899984231172369587767611667962276774959978367488311462594645110210056692341920546560611528244929578127954134550708277758771394443517638608833821487545008616434934915157417702325739371047357446601868514268998348406271754303040152094813813945057976685495604178281776426958042889679523897650176732803033965881135357620575247865018523165292163701194024026375550176986362056955567160337648582182338243262908406921862081036691176555022817187571412350650122440381643399931731868981410011526120257795338028071498554892715447349575180801912109729186119251011563296400686597875495419395057547561497288038642836530096034074082689087791386827235241627010634534051109173005443491541313853788726311426735620976515445620605020256223572547179998389347867284031786039617927968934834441692884475273489499552753606041057491005048648993038184345962650049474474431728386464007914759581902087923404935081249320085800175364854971732828736824939419390385229832416992418816570462832350597496857416602214150841087573649206128795164146556759389953184966150000621860472750113971296430838518128179486798929282773326327196073111309382842111492378516136210749546976161611040733907896943392646549520951683504531337016340050543493508654194781133018107549628340544228559172303662313667943968614615854995763394647201050022305344820382496990962750068573625541013458455868225551408682763158791117750127237538706236808684601775575665617869577836884769640387042058905765021476159484861124467290844053035239001138830911759592927063729035620332168892049714819332909763110659694510395843249115956757027910225724573166908857791999872511813144080873084440374643489994453528123636285601104701406481586453841597542478069494844214429527930988743293947410410314432405326960896774952616489446481869048178126570553264318129654029699827400278094181762364805162903485442194133596358432440438097829194229377544675040072497048695585600274461061281731086384744324673512092108202038030510071516604575172775031734765790288892687769638472544292324106524344955858175697936542301695323724317333301808437636078258445572438626848868973051149267059791980070053413559217097494746523501807402613337949198597952595736800880573653112857449043575331886437685921022682755354705154126469740526273779770442675640989214409884431330648183845877881041738796985899561507512618974151894768206558642062908764679231771087261477792144931553004166110132417331997495548292282059542412043902711411025947317249700073807487495778200392022071891001023757496162191908313251219987240628902184947385912095481999119497717081118166680194387620985756625146665018354820652237055272294800464603636132462633497067432649752261578014815305125088776456585094552880502341185138200179055819673482407602232314366423861871579363658133154279158398031315611582722430413315343638176995398758753766743116862960405223373729105994337719256761571341412281041599911429948258297412059381419506908663273011790314144569705285106003854605996570839821225907678212901924322389626615756350418101683852878911889407617517389947497080808578891634363188663066533344129693635860733451049258544818204151271959910822799494498297548485593942354251193079714201823683931084197268834225580258645351013694248846331855969687662009013152676710981326708145442294565270548370432067870745206967143739766861611861315115460296301392329352932662991646884834089899087307546475487246410504056887353890536932534062195403157758655974643167343134270214916832554849837503325433349548160718633985726078170379767714447233952740275957471247298837037876608811391266352597775444308809308885095107309972140919277565918130832397266104356617060382283710608069153901509817806936251911096828515582069117626385599204486231739008645618335600601721071572073435981221257504431726206414387653205875269186241619700515996864645869867517578286156775405747246217700188367866396567604375701633112801191618705504499646673841720260624615070594613070737895316383582036645873266026087798933005394280904626264742049768178406223867036500639225995481623477133499777441176417269414839136196480025449899838154645662554529477618472016879601676767395774602523742782271476035260241501273374962545662086828494096464348071239066798409478859634260634687945291641858364867960743630104357054830982621924203002319683465067762600606327909195123723498649382455889326327594403040538613981973607826993109090842592510160761005201569130070044820919242200555969433123721908147215525020734549775665815366902543368111693805347838258519652137963401350212359424711655056562311355504877741358409490552090347048222638345739166093599913647240366568446987249431281302475024551553186793116467072811957225822314764109930041230178395789792418984871668647147584498632739569125344192914692216057832951734476848351826486481672648266589747689169923844920122502562416468776778490338224868695943671325110806013185020979389307844544972568108148561149927025896716372490332709985220105069717704701910130777471258840068294804382413290459599717046710513819455684633836425498615266091038504719763019289723436054513186739527355659438454251124021925382937004485861392443451991035623203178261337017779021335320539253874941712202799982417747748417822724984411179907248758665738900485343257500491440382870804050182846320496899005778502918188524949421159869585977853741237876495786662355336509504072366492878044647243889601447837680225278775048894630716310549633793158255287607228290111865283977240453030652167114685535866300924273100242476025266775362379192163019975695571084407437736922399426130082443802607483992813785386466508081016112098428329206900580514647449538055203846679501256725207057762611928687667735488655800684815759997431513422927804359430908897954630551524501450194466470942330629953424606348462876063159759570785942065726338062681852562314539474843573844553017584672482155530389236914339300646627705336139961663884594232319861529578828720596797180885383656298669478916297519572297194335898178723580828010937085623133742234403077881460608593272142970708289499471089881083005917509288670183174093791910546708617798836537765810653725043161272693903729917246973515439038290664607157855218423705896078147672841724307490920818555572068108029163770349479675712559546151815550499267949983728841151078162238336252622967570645251025687536088858701945327564178745963158471985897832073004914394374932880465780917371891938098892439287243457200635933876655551616493145373364977268140345810789648721714932065191019923872700144740519736200870663846861739430516570333498762589210870367766633823638052764884880258373831817753756943818751718643392726627166665221504787534864137418544965767868050236337246397257796924676353796590709319044264846240373665601421940018249122560941968188692572027410940366690826962700046187485871370979667455741249998372891786217060700654607057776176568960339080363221689760273845770254469073156848719876216874886842631825938403149862716038492407805644541514653838137081514648498643792619419826545784907497027412550507177886240024218887009848056979701692283055322719486197702824108742023667499463300266362938196164191056633311859306632633845512421325423647212633339537378420675729069159007526574104281548755820429536852616665512697807921663476174798155692305619267232362121051326899711138037051982663630204876083792508771153029077083643851844919849102627253189287900618392885252088580156771502116213936935603598959941128815922558281249752227598076013021584100252659548541743942569253217548813604399314081777172351236194036511582663378769910830825487467495351107791960991981614160005946202780749943767702616152730230542186022470225212370579316860650994753440016381552003007346494856982121310583802499188494543556301394664972243619589202499248407574436365926851800677959514088303372944277413664486597056983970628769941698592645665135463993355722372657364661067474158577764527619311049327838556929291339669525756250764431656944157527810436646291551729405265768235635180817427310550125369177875420082027213934417394817700399945078619914904934261242600809081382871140184522193098632275338094258459701838668744427269996722757614570280241458040975297088760836460493421262801414584729755671519704044315134583851152996876750971071868817552244274454374839936461218345311993135279676138502564960283521604118960479473160430987682931297724631645606040778354386081024084807016469548570704912587335578231475276482959283458456313512370080466238089415385159197039066354233478706749405598953028029747019045348945297128214093202271646719853823939441648001523315028216862048274736467466887825286606352523988656779249417537274432638443305651288550109053413485682355071193139699863039940111369550958448046100012417893703300515710909552290039481420958301089492265577433592998324210528276017597368692117376737482754398534314549189650026822748469049993840964570440388834280308897464079963501131408588780420923881202603537277045714907561188632503221568083458056186494310963442022096913190655744050792085162211841527963061552080505584256438265871436506645729760216345825837439743882522276745657894941514855755241803833453983409891185737579123296457366707328191260196155099767754904536410280299046604015803397748663116848800956840200581944734432205972768591558988145434171840717449742454267928202449392990753297023867869248306723911280646408030558281051197694449184445438734438418033106028301499590694863240062571475772357132445003504183302802057387137522196721808667234210679447039377257774672766644828755984654434153578717038615979483877447511377719418424807758216236287165040712344724371260823581303798235993743768901792087580544726705110820008248834072492663055014498998062272144907782020976325115887843294093478135349102907909489977674539024739452772747961909232959884336637749908466032303746000136999206510138370797613226332505264841590992053750577451794420849707757902478229149789278513387663491758524137910892932796457829055517892159022165794721471633459891755681385395179937858264111516952162546760641123798493065975524399985953264845741673557564960489069978186767636186057243276552913872542362614911693358728294835622342333463515969043496040652319249542283601059942543253346023013712962289957525665703590561113087597350896042184316873900173348853841116981299451026975553060632125999824788404494720136243743376621542140256633023434090930629898663178680993155449677725192212745309617961047381210899378431239650501744727552006975319854788127639392730349041600921135894451558422984377400231632936885281393465867474714041800508947058078217428591236934793144155163922304672437821715332000595847910691782927976270452883868080884795193335875201483387519417501022615189795662986845156117359391624827656633785245684587465674355630451651290079694364852130433603446421007205063639752040946751984378209693518040588057724776208610157794477457845828291892186010087878376295591380396199829523988864597584893839038195803857384440964979429553703689593323795293137213288450937134652516681956074219540654413369929095056015616284301859448510167954583094553130023890775188789109756473969552695932339755393638439986198237219307651099289516596935717057582861156099582357011512194330969536253045411086801462359687531359853121146304679816446217607963963726289777761016701349677689430956507691079803341495308136977909244442143732534526821389554505108560567481881158678897882637807163450477849263571347835660338332294168505192657992654548304487520858449341520254641664284571960442530343860138572100721075671469437193356717804966082491076158107041783591845260347924246764908127738388913873681854952388752421266633522835455519768928771712492564545721991311153845731744721882212655727525336145763055933857405516169498583259323678921265426282769784146637492486180541513038251569183884406551076442970088611802812469818479978713051522175911880935103671683501228351205220952741264303654565475769951283586764554202545811327228114558091321389621309704937128735499860186272919252711292908471004399283376207937794073756784447763916449096504618055460549974545956443141442886062410498305529342726550471072234443690972962413790474880524143774809802904727634788037722284754237080073044886956716267305360892344753102397678189945158563194063429319299533590122755778967265349005246486379463784803560625422577242307153099924620935495823225669242661041895896052534686617158427226703351582421831199472180973453167507236424629390756322363307960342077767013114039590299275984900105241939400640303999684424883323834521823781583163188651133597428082615919704017670886785199006031921289829210346031652799319381305215383606872496774455714999414993104287612614681464638903824111859895106610118304905567620833028987259540417561423795552018970505796071846464579828589189193198701116750468847631852968604016348690487491150476416206118254554939466070129208969336782125861460550187062415210965399457939223603973618198255360503484783658175985172892576689947952701228521225388374089298828223713846283939796902676154033434774323769127164432827473158747075038383502205632827680727679367524708432402626581568311928154314715438375112424146796637358840719268642576011906720058061491584777476892926526866728403911939167945090559306077114940084054772410171406882815819969222304457326400458043994838220496302728446010089869427534185245809552444734370397645174139467929124591563436049114424536910538077051145417759577010296612220345347549042027156364881127232959782578102995407954115474658513227228434197140273598476934633819934001040018643550779622986087083548786509818105393215576563758362057410651367659747277838221533730035837236266875600084396337409519663625105894231063428877291417136108971765162902094567688988025713662074837970970248358385421703172671057048213178746744987668264830162796932188576475056865529565385269330116043469801102722962977907465608307609236842477751392747913979032206725038226070454790250446753751332574413501911456253035097417591161644622798181318932494093475119447828869110161549961866058135615933556128434025115820060913364480920077310847761153153331116530277255022393304642002802702246359303911935569318962384164646548761536085987290689616098979765587369961746168726551876118445564999284892204072815026122441555749488834281154753615194290962530368850718459409753086228955760345479401326279593748506594429691664916143256597979886804250591322043909078548924171702526430255767051309778263953944892735037091250498314742797072967977909947275972585819307437707863942629365827194292088327170043534858741161990006552396356953411453584092530066071157290226033341195295376601452173283369880038124816988796974109997348633465138290129188615000413158162362629864926043502767495484380273722841887993146002459100950434258343530954956992769402320179071394982928226663324973746466367798898098349644935342601651037403161185651793193290160336120770410246068773570763434020311874661403592732130228147375938817383026882317521423768532677933980146745930312981466508440774122839573309605491747704932929124418871962760089612951746129287021920379677230471889099958297340623370639736142191361577815379342274281048126102159018626510062228810508051304444306618736633971063111658886291871006098219244972578453702689334682729979785823582202108213775047481054175670809608110118204014058875663816843828444023097597638720664038554776595373318556487634644916006833583394869865590299248443369351731785918520040239618558182596058468453780466174908930913123972788811727543187010815422905843958468588009661570303632560552791365913663119790967291385260847125004960831107706033603235104243973940973866646973045176646020517927770560264959918191832701942315985741421551922568205872532607243533790500152278220761724129950775875513546258562051264050686005209660957705243019355783712828865935048048156927411493728544108428341564820620187007788002196187426036655781488526311077836274901678731323602871770844854149328493816612414572627465191751108119790869777355125657060956923515331292022836385630417970782726145682561551797859945159201933138563752735813039109595662403646079562175846068922288329249252829195111500055902169188422402538737553439206899207208307166820906340744773604816825864783948505925224313975941791868523529486528274100407917135804413920216569287080725303446189110088035623235772957571961588995000494510207692958485963780264100915447632290998223355807639922508945359459209685965100008121399660552274623465744583135054204518364675158193784206362242232069809457969740282171442446152250284157772178055965546682383247760773052775366629862684041873697784417940692733818518570473047380516039004568988802353633392177457849417867795569575666370190454435858502248588840694238308291496556993938762443351983589240943907981054088894798811410212661396325152145063323631524403506624026264351382983615413485236511656338813913836511465554100880517103757966634489922296894797280814470673806380200822451572009493917293194970982340115196787140994951903177347575151709338138001662899188705850763632757082678607311658432033813529509078890631232205281214260707576749329192995617191671949107053194742582805819780449790168230178521063298656191618686684208144591752944881883038850684150189188678017964105238158958591175885772863453300762232957663736090966577684777913555662220155602079868478206749687386504776610714861441570088123251116341812654783806916716379947132340510002310982322365132783053628415473289086208934143261133050145375900166099001967587236880572381224673569257100099347379209781234989228043305893371029278765347829558534578132523806016882989930373374040407659202264246964298901423002702858050173778846403588809147024073657716448260056634131437864996121427054339984038683170753989059944488739308489471560923649656934098702559177273365959942482726794190774895732971988433908796135026179603586465381317251689230634516743801800022245100850500677639411737428344194220774469022460159921519977322286515370929712060357910568427735345280986294504888341995450232561698942970586328267292282606127767370493481792320877226341656618799568336113661540259575069053555777497725492201696015485022611717514467334880697311369467467289373960556272321909414324365800095865566774059851489149237883928570205806105721678943353395031136264645921075398832831690742607458575733282622575912735583536699444304817679799203704655672165815445020763776901292519692179001341665377790738891027567746444834132911752725982868695106146736453111686930547563117319469126579261780398902309933242091182104107608990008508683037810633604830172914854022335657462393713913563362808792387195374776115685468113572312886164521111364478191464011570922593223232096958008208736202979754253801461215923758608324083134763677375074342783752979944025460124508244082724053370488125461773180352922801471798166393457580645011911026463926307194155828811780638183781135867812040323900779585934158594360308765267748680998363928265925733299611364261209140307934747650900662871823036341929624458004699325672540971763624824571910944224017401235709072134949847951538202116481760172168972750701147602573407002524915404656136252322175248941785899630949177257416724983043241793797144430170108485530686411201941528528036967260321199307522438077948825426964636661135254860181278911933470399971330709960018499975866151700673010611856356418526444626084879519858484958159734782482425619308338428878599505822838668521030946415237022962298180908776698503363070023806469057122896842026097128224549360149134105253440298801439841094194478413102647564510312727839335013604807372995707366290836916549024611993344774252638515764237393321526790209060470959349840390681534375055652180865849523962377445821002642748388258198732060156912643307786530984252807438396208153811257131927178195102594041769336784669007220230993025923039327544888534983039117898860369796260725775900868971808097813405676650590322622559963346558823301819870268626828260263688547742625850649915105945794483080949627624992815248485530396013165604154014562279533345130401345732810929346092956927306147195371082430904804275704611464971500486562214105259512969415873088498154979522590832318240392970471160684068351651281011360353494837096496683454484681840246608017479457495886942967698776044148613680600730193342252529223314658580265860218356247067151869303628180383158454461081478807049198400977874879225614492408723848867005060264115106867392851645516803849877011154377636025752398924370913689441412656919433680504908070680427332415147883409506198096441218702325238211276882888502332715012273797685528131233278121937011467795700540511042863072485758605896452846262197696012418436910911374571078595699137627570404464684389933403562359372910223211880715645300545709789481667851431556540330043561226691267622349917831453338857130508471432649540787926145000801842317942144875339055570993214485596392335181829296708319828130381249382537263858715163375456130001121693052964108086639498639556611029127380483904590009492473493292587667746230674122004097741950539702326311068540648485610554231164037373107641985253993110882680885597365607418915830705277717674817394309344249445127426545762916208222486283070187201765326633006984761147681600815102362121243224901287035005615780916636072749932504797591939742705987729824510560638502225287229372874971208152468512362772199349232925541363574627295039312296730551770194866133841013559594723840707002491870155620222665069963710230636537911860017284283096118666652918013520234269194162003714676994590304344370312613938192150909877368671889862775828181413652674130340384184258451790492375768443450696658834884368863758840704999516357747525530588285187990487173830747752608782953613221804435599650351519972657769847849914117050151649719649559575852881157630379615722375615036604855177532512172742478011282426629211092512196690108436928056680708702333401240928380657163950742524185372699918741730287928185897380201092229459835612121375787552871171711335941700145822190020930083819844806071409850785857448066053892554557971172442912648649110780312675871003292094639120210355749375684714426082082381394429130169438113029158075372002479262804450349017731799463551545695666234050015767789965884904832005315465937715202909239820904015764923431344023584076157886864515196938361346229569392168916208226030263889016244271084732697976281537271033382308429462905010947783968277692683560330323430908018020179998289179595003175738168174030916811916950061394719092340564349009566234419008664146528772453429707330423836279101988531811674004608918567385457192189530720490599374152852756199906437695813647491915459316272348803222415383470426583241178304174017551455512213383541266958909232325675633899770964877158318609262720368472151251473064214062726192709476207029005873218008104190862766895371260076793448244643689401983664210510404908588118691041403309799896812630424189785245382397452739920884902516285340993918831397447482114153187871163847625214853328200649610295686107727485349295676224960542488161624071907641908308169832709410077900040421755739411886218402193718731609975865271677363690738834404884154652538393130770843760014222206294697467677444146238123721221212975164825626594153609775809989664896965853032940097943077124856605185647435061366298160306153739076919444551989175829204319325172046299807975735629083183596616950626478554862107934123796536132870055286143199528324331698605825390228395817397125972305047841672155046171600608360484920306251765518880588671229060762751147695261463883707065958451393996335110815607645706118117719847500921339829152413416859978181701638234976179608362034779713146935711475764937035507323957600580431498541079907033963253715234628863824471600566172181079197460755683141433525716268113053914698586684655479636846765574840554132012183803377523617126716244903951790786975668177007609703867339543138313059243357024085142792106156825671541978574885795885662632811556866328176214782541577036882016591424479413414067002682565225670010200886577799520312899118646303120863904240248682009368003417715759153101728679150956445947225493683947985278246701667580999228259149845426778443550720228567201825678047081922011024077081117262314493197786323228048103918783260416008350728916962408674388947496150962866589744819316514691952498406357492560370040489187831897594584397255484411410097335900812836970270445203719344719986348752599068866696952964916975207371076290818869669486041491458935292196702058741837691582438669182620047288198572973212677526439675495829562402809457124050960592440842960646800356175914651510139948274871956096286897459947818931005338354635908929730384063995828400337130530643054307691555044921685464219510328866860844127493962775772829152686706856137372193346168672447071674465908236160566225981741078317374839585570191548662737160863879444728932193578634914828443163232227300254143383649355656266615270482513997984163587348087928459616395753254790090332581958440487841643815141904433728193456832369447743826339410484553223333797970398627155468787894069247159871277352335682850752412702847128612032733718493158596687618049742010801076238760737969750195084352071719405148140489762433056975462920059744366251890826882628730700855189962850355948464643182902131672601875103461190402591278797369122710499318064716756425285043149937427967756594660567652449360382205247939070052178687145433177987151632257250418638876494152472216916660001261189460988286336652349530776594926949733796364772498266718011387809493161069339945497042496054243328315740129341279135913376621372643362853134790494147095664505406847285373356208349185341599886102334560983845807389368798396693042725241538515240245836642287373078170523752335057959203988988923563145370941446380165251237952722957657029040837708397885962388596906333066469062541567786824754699163478220087525433932667375538866713236046617981912426986339895881803195175695206252401602459947599333645422129265217607656481979830425217374097584410110654369716165165636859911877782286764844989463035319877040596629502684154840714463864030785139823226421931197241494596911965825331146408364162387754024117984475329269616565204826854817279123965297243683118648431005795046004732613659136457767493391413907655974315713811799260720770910557929893959933224818307298063558371434242794999685654252004818502434590001985762110338724064492057826390470400028904243221569969702067361732736327048847933058929770276829225936407247071034381553163397916199453851845310111199701892592283172533013506216272176026096133022152857147840932866494642746658792135562043550887694991455790529903297825300079765320981890940017276417481690435505664310016103668766810403234597133844715359958685945009353186416948976035699467122377486361586093599167983711894752641704498350328822567684877326095485703916227852115339988492340209821279097903017289843218518147664383476930229102968281410665100007414026788137208555609588975154519079583854039215407106104543864969231599312312347598742221164482511998351078564914968838693923037502362235927616589519393679724683854605565736310517951710095062849687951364153038956475114044065955324936133052755982151656496615169279673632007854072279219963650788589327919606134582183193358161994958640597316175053071435243490473352574065361687035670050028333428647438174373435204015842501031258847861548679249128216641276016361002734962590597057611224429948203199972476165068474697666791271971348194935672481918129950695080381655986708251257842108371495996762859183159809662471518523821535249420106477833106733463145434836709885888848149949320024198803109814892991870497954802820446556774042027438134425583607077411818114067147538314180035698542369986849083874878072364247179675253510801716793114171679601253337250706423446503490289734248414779304546053533668927679155007409303752895887059244661533246089947073052032107330747849741337638533773061091877281662734957600716050998943991601002732469538851236998752299174469626119147005339288469105327917353987703737286921351380380483086212818557202106429150891485656739904973748138001615639422920129279707365341420176717379996871386646491373121287264714399262537345028687324289866470200730676753744762321601603884691307060571062681408429870702500948580550320891783354459277685859369849773263572497042279673567011063028941206111548430083309611871186973628201037874043359278094684000988831128859435966008607501642085520232937097438423775701760565130402817657513758714910831348843388241505942224277746577313524578245710205287281522687526202078981314092769258040756368818272617918364072458737652888610776736021579348018907926891261759394538936892367080144932731666341655384691332480598815225465301049830860723668945813122688758651302638582692766687699909946951198458417752085528482365000627056210600126208223705022997535793631107357296927203747729392242170718438004868539365944448298809565718135181412160642979770176338527877000857248542131802279011550689215743991787794182192442314064524163705512831778835827669086355305422579692513674079720196241662515384741090279395682791164843519280038385590897472808945293439600882851861968800285661996325520389498412655242348233750603618082245659673929096721043272288800430226537233395485250187899738370757568946509224536020931209789088308080550195168673649028569163490979138062007193947815497601192543518101920061898272715635329288641900612962317760709863289321685591425815955560393860604277678997392107104534532711033573359550019342637432242296549905241906774750648192304173373816196237781524169155381453861972639520632902935994369942641186255716600658070237838736904722753520079706531118133444489662132955835773344774184766343390057958670249471320382623555915539904833562973314098255108133233797108462039603562379202433692523189286184620028306420531255719011880865346708356117598910568976665180295987948776760425049147148110183751917287586532014903732966129463975405948692456903636854114561339978416067437883851523043906405449155849497727822471739249658795618470734415027564909495945670615364123955977021944262406615702600075613612361977935917456330050293353619189020027746153774738748151207616244204209031714281446979827302583270114246872969305836999521441832535235079909686467403938137332585466371836668613552723242773428417964449039194398572432972754023469438186525964527268427453183599066225193939046072780784823941360344990386037263480669063340995460044174380661880215048979654826758128018118377494358923757280489663955964533604002956023790081284894256378987248857552606082846676041805286427096508704353752601594516172177591690327316842138291900441577951742259484411549632452374744460097504728213476791619790045379727846577101364731010850664207612307793363995571045220648526926274398047397719962198550010325726140250605705959105995801476889795131159872497038283582714288802939087276016731908605154999652830591002987652898268770886829247441703976697176793841048194073991200986107893307115047739019994431830370579084221311800562453555551283146708063725148329308363875070543489701876703397807622715115377528846424022975021310997417268369310732869165273333605252550729591950132751888663447249952249294996977172588438331497324645152155453011790349821524125088583122161487446183205296264742486713728631347179177488919745906903500938173835185153643120034670920836441719700137413599785525331362701531686965639738429780293049348749519635813679336535968813749944134391434704675120055113767017365763079520727954383189407723978734132599406136558409741887611524941845704327015604770712179840916202295437463246842251517554972511289238293428779655315712551625485086149623376514475938251192977005447125293871929195410455197891248216112710208275784899461475411363024252007318589677520329969427302962354882438630946030048443428507110189767605395527565287580889244522669948922315587586272387600525401673352307117771917037482321898012293829521661377739017422770311767201315370146614762458499623536591604093068149938253778339268473341825894947270239010405539743794448520711104910955485541777215078041510750460410717875450504692209439691559517860955482132647111700626194628519340797106719783295146675495842766474563245874942746528991422982047428569547906288813241357820165685574714431633977407041745408203994365075864298324994407198312370905074147551503861557549301007446614207992058377703936678154686571209661811363018090939096846268953629150387269736895951661047349266127513119132603066001700590634611364496722561974019899745995329048389237055855763646597709816949618964069884462001071718687784146588852197269703094802992816689046180920580007082932752276440272625635740707403561580872181255631232263698583517658452738296595330107680734175092216315619668251200959652138705537407712140403498007939816138185304843178271682146091604321259877216490158374716755983138611251544217162223954451781093287123704059111095776319495492533340211000029900439819874109671396026709666238631617321853920799286748913596930172187019750486435482058585475244696887727067986123761480825359932011060378975930851940645790309586669149836419965757234765446285826514916977227446254078830859933587368005087222366395870792893254335399182357842787844472079875276868230297620526469404211879885769882552831168717316134869781844481139640648918396307859380722241549510633093850577442171324584372143436354182451290365225775772559007882995675082834070571527588007355396144058750979708708300853880105720333632935933118662105194887161409680315702070925793066858370288576366362735746465416417456646500433597550914235518721543236477727696510909798799982072889700184825078776139923194798757565563090347100723896453309835019156911090868318285751716412709635296245521347344466370149322046365763568688645205204132627150865129819195258491604810265989663516395015220695226341156195152479824557634946144286001999177942938519860495242400075671109260961649289818579240786567898515602066333437150472526871647744762252406970299579273969862332312335324866865620312788377287964781764246564012199529403261633520110472032928004361370777666139392950340979626412704228068662741082503764813449401398449343846996744263712783720173298741139165763602057995460754662154309836368746988623083443422360996377359047267236817096364419363149984747548659646297198197615569424310248766754133901913701948776081804551974860732489997657853242265900388482386276802238080126269908205562047407605993929169218808002605013708313618672578981135801724513701703104051250652852728285340451281437741387727121213358247177763738401214426381822006878740854698266880671237880599448422837053338083309711536338060331657320621196959272513590334268401495672766001883306556256010488506114887672798720542340359257474122821052301656133567411207697204291355833693825723930742476536190287483825711254266322687897535384211430677009661546177401932925712975529898858101816334247819939769403019276368308847258048646210727173930712783579588751866245918696692743502272464975989644836766028937762872938501508864062131647568529196503555643159356167625814222187146686450245577054803865706256678211980720971596841833959383418406880499243657706289811751493542810431535904626165564894023136481174106882100385349780659222474647308099215832362203814375424839946870383698528257475297562690525507445207702742926872637714970582120922966379958026526817659635162071023917067969710680570696027770489428949643215195111092406734898629596040492431869975370950983450646607514875012786053090675187248556323737921486924624562690250374471284371615807772440662547571896805656314349181499584046019625198891411607473452913397533418469598863933903703211652562280344132935842803362959437140951215299834695945700604237269375105466766007818241379572350329480840205868591612411673865468140661963520185113382481122651071284217380226769211770843675341530837740112130827052413200035679108578272082831181894348054476666258800101429007364418936338807376098550894925313372626868213489854812054567966446892454869757938473623048494240422868727373224911045129698899720058354237960308354961973787670920130135212774135724517321078101071042229894684714721120246142354670663814564157297066557478361119087680399896898512831782219141598617634422795174518200778178314871287648041466092435452320994428062059038254443419719967401063565944815653795869399935566561394132674228628360255830580522474958974706506597289449003600017399249115070407555593623374723674057025193654136886535213973247492873919058994179893668469512703589379993266168255857551307012754495655497307380922824959218895891028906662356411607832367675036787809969689001139866098919763167411032864246325459864771357600499594740914787503866908391307433683291149394648411064378850744634146977489869584556381469027451840610287062110021023331494822471793800807483462152760893804164363667294448987666436939976224573968445673773937107957985256054913711188277266041143493183518028951588472406866796695895059328943340859709257286220368551492106291228033832323674298659495777279890873392435228576766506788649596668299883246462544121547350386464545493537502811437895440332031235208097584218656574164977179006228835965973651789812574371026300249974629245598905555974599507198278779489844403814433591827674285147945038544629814955558481265183738616919035224492795754971863206079085610297001116337304613875097552762625626523453271305506449153814673575381269779321711205754377634010539645541687571245395015885202426224782755907355447294216210592867217522031319540441571164264997576051967708685360077637223353226087050522890216154636801081792033456380503778097194703649164582154917731346723592364525320101425961813099570986793007896550232244964721839311440660712539729842841475759735772309775243156939946436752114159585047244188917843566116433482019409933021562327464012467384070152479927096701738316198960881487330937299739986344430848811551074212128762930541503599477802027414932473494859168166390828756316140210750739298622128903649737953499111674652442526220260898977937789692588856551618879114383905776174525620979150852163678065069579890426936845115288024656513288464225844681913674921686463406325403161683837575185426984737232330231750466405803953383026860120808639543162859805730568309547010329376198076693548564544448293476693929015058063549079645623592481796804156239882642523748318088697220678760897041302207437205838245012158386976121105943477397861893421911181339421163690006081253214432075692111942471543525711709944274119240272797194350402213426917695117065394492147634928468271219645221015057478217266719986738724357826258436064942406671875787183025234549772746232082276770268570097411390101356281335004062684384341995874097733433987580649467621226125246235566297188981321673252857005484645185233504366154080583544183880433952549034750479737943144668446501651647719313478739150465640085174232151394180107256976157037888341547584127940858282172141403534869161708711997441394258866636655967517929901848286638991462983847390311152734963937248895114046605520008970534085815818904878047986529746899861497665656758937808293068305806107952607296489779025132148210495079507827570935593826710837495908880062967917689283841589332120161717966545855514703205319687069502291370704378983876177565863681938258558349551590061306457123831537394434591982586809326357508530390023103758781368049812724162781756956279459082686325111619468025836334094711287593274098931826661730049657968575420327206118483285175047070041476037684137106121537513769832516340025653947594711547547261246106319182707377986393682536735816777308448335475118721281331582655256138515767931898732432791403324202646653049833801310460784323432946643436745747874103462132836386623355418924684325936680692335231812672092934746955326543318085928575207961316154610774105665327885084777197611745554414839895438250156418632576217114504844572918386314175043761575107176675148056735779496140335325791379494747605444754693859449045787709356828768498675850781079435250838377929755789316980660803392672390299967738798663300078359466155800848142370626921515275040940546502153345411403434787595119306889538276825131749472361486045402308572839394118097967455409307463718767415667086976308125886115569195247004053776233744581707440402189332433918167697186363110994280737880007889235002618404535269625165464959376137345655995092876394040937684678920739481194868753898851287275277416047694012108122738130985238993418600125689922409052881135043625413010311795944351767570490119648353039428781893287880705319671267753449240393085149588535530779327559654665688572968658307223721343717939880578517957360945475701903107506094681818684099741367349886825306141152556387173994609328962491602047900056007372840276935205407333729416137966824867259589441524415118325412459610772728636453572053755113089477140454575757383754714964260469461844640810896372102742594167220597769872686319209433058114144722300841482330318312399130315436869786837118243350468646696373793379253564280032973531615528269506076636805526605759285937542199822076158966402296788555888559703091796023375037676556418090751533955390215292895639646448918392308666000608584162589141454063028705611411041961157177671983319271419018170337792393735590205021599012491256462925437311045624038522658453790557358882965806862260213907759646583660833877477497324439267120774707977941236550741661640988894573088796457389190643339908120650974542644658646954612334375655223028979756286180113809673435776575260578767908424294734793323003904889875214811799241171520887972885063132527197643881687104171133001974979511053116801729887700213270548486075403132974601769818079880212950847158695650605036170558911094518364753962444475255317400740644062643072592420323645919044335035787450883341095185392003048476514675492238151174932604086336767990578448940680158873716366528501110934191950296863804621786385731151750048817042143245181477305326269598158083645209754618382910482160852587281657665473467108243393338261311011080706035367645298742520691310537915032105635253282736585868229439967673662360896978144270085760976828490909859909388941545569658657272967190227951975952404400297938063373084904818849786400892759292587064648876747406866352932007929756938364733834542781881357378369601416743164349563588847825560716213520107449312179774921661333930723122773951995083167070376025995461120980092549370282539691522260099109272243352504605273936172274897288184901674886662802886779936022578850036623890019063728608232592404615128119314422627866908065832571801562476423563111705581887548399569321920525875310907048533604116102202748234032762828414637912792377490076287671756843911997850400241382828941385472224379926972585388800788563203349771743272490019072845141695830290155644237108160742248363630611979741162751740363665434861000598704580979314931614869815304241977646657139190749455854456999513854538475587155599456158387849777352867598841812642918475860646964467064918123685639413015152880386868191266871672553565325552861689942573727623519715932806269064192958209212943282535233237235983768143866971361419827032255058131458627190078094221625987484571212938672725663509154238777584116970941378237225843871875928988912665231091590415598550818281574075093931502533137539353581760698471919712663762771382413618902259726916495057861438141940804587620995080183479705470984805984594429852021376537425134853113602210591432165746362694590989563032955802163827448800213856569769130164064022966435591084881762064543452674700961736122483368899573936167062776295827522471574380477899830930567083019201005670741518545881308162558819784313550126597724135694215962808713849812061613001106601600963445789599652555487816917080403780257129059377516330219276484114741413575274533755456134316516387462803811579717920730612198408655924440200979382616400010679139717012045949096460517706014515715268111149258899071185919663192738254571899459337772310251103497786144285152933103697553348823343974174324590678689220811372840396862778086547809949319536162551406578535716575399368378183839559046094891295380834003375399699041078747144664388234919438936933910170437966958679687179011574976794277139394087641383581729608222551746552323248796096725455901691563165249882662561292131907927659122907006115659765646509995707623440953676279136527859237769948405924116354227932192556563889837099044522438493036725800992468122036352783499698232443598370158160469812129797457937619735559383992280827003634004649531400604509932910133589515653460671775129092276357890107160892918997689410920567019118521366967215461898402708640432852058375130635638302862822792675953000249971855894554759229572195134856194210140877018511314623981739749459636238156928395928076391436653488233780878090651229474405796036693302292328086839062478167448057714170250206778335047880124917312349998470846076051754850980408654746325892444095692202756038762564663891210967507536982835996347032782632455034605311797174623564545838570713965759237833468329341678086572447953484068813916746670394534937783716794008773637945968022477718788526874538122367064201440900985055294763066936318484328800693843306221909255208415415425106144412349511620817092804862620904444587082326331616722654882507541385383355613916229117879881043742927593280609741312912238108037692695261626505407114981901962998465990615649507817226585390455625239875313821878550796875900401580264140805946221328049587511800277660733065866858866584072732540577270522150774721373826633612920832493858445317392593524207461780355198201941823693739149268247315005622219637635035831982784800237502319456258713981366082350982631768090102605757275358745455416057845308625684501785483387115436470841449012727563185838098952866929602791385050939157507895154516563361134506927928110995819943270230431863730090171032847781717006228050711822329002294603414742212799984634524323478010096358871918105033389051697399992599781339669681009093303825275096933897440262798097675760113847172389237557492880466757181980447128858347912640219999348608944934597062262684143092877329663819635656719824432039490070997105021581118077325600002858306419162886949649768874040074117057808609386597645249938862359400261214800765451388689379175531912389674439641154970836176373334895359709170825028912713258902527680526262444559409868536950807158278908914045136937738269002095541935700055218592418223892640414646921738230952298732447790334854958472106738641636219065682563516384560787466948525742341284191361751662772513477633852351795289397942191990010951492055318818825306898587230559101940529587103123456295428454287069464276975222095277868472182376560137784160136992957971064614000810059319624290032437623214570184990525364299531364821103458559377324636014778433478411720285236311827742216183116755123317482091522172619037274869898753065811161721230727568486081886595991479342980669684458072667568333129421524078597548816256565188508732632898184321587569075425765068159527233580778390616534271739516622580337505845844494866743393490352463680482402696263270102782494013025349808610064540632586848678097679036176423483536511729338918248948825069355866677935276972391580512738826177659060100155864945950575555142545060840905441061995245313972261003179010916115936061556295058518202948003093937487295074196256582901911552734951735549586369855061089517164605142924029321447459148791960945238515717957015932306257427890559343781227533544926339346252934011902897155326171483585165832725364247850334367278789185673027742351312167704645478776752623974939196009535603932695972827901942457872278302797306848020795595129562756230345495057267334411426266804321985527899017561722405802827201329184576820116583953959054646358468596068777330877435936439053237662123017105213750738377136118028504932213103539005970536747949212482864789252541960312167557640172153405474808893484712523026901016120584317306796330633570823031007139347791521999531840208559822203201662343474640473335223761160557257750810106470094493608185678179684359189867950959907395568907161788623859814513300528328557808685652553066772840820731325619612122946814825562910457136834494163184999077288560417551384586432279263534602200856529551395285482035462463074191766877738518414835300535621813826717471795656922964072341607737815935153162924963448782553412877947122643035584799279246184823751177943040296799402523104130132848283038567993990727778266450408451419414329280282642882653165187232373303975304780201591391267589543443380784594828576337634748050525969559258297023693508100859814108963164026769298100586211277423204061974575558112312626261700654215703906343710554655228585541656122182397146512875479124620427024696447690904239696145508024404056175149028888496716856513408278178853707143163885538859179591501401015557927657718177767105837455580449756432404338592461111395234865991647854661838261913113484670009623319475091669941971735054467835441436849454525295330851446488125863471422859423896243121940376907473943172822804238088472816482592129516810745472134582208239343161317596775460555135858937626214296834518793763510067630816811785319457939134060432035968085384940384480257970999097946318663763382968560191400761808954234181899525541097938164926183303015510008810270530458045517647998188550192845412195505136483260035232585363249169924801579893953382419466629097547882243517172769187258083689423864268921035911574061806821950112962021890733395057181537503715889556920865910852479291359072554498287390149824692860376908963629844700552157655713293546995974288103759549636256849656090178626530454172278537261248510169123397918650059948526486986733078727500854817303830891174640111623483699490858750655188234920187535034985271028058970967384429087148620494135351048186403329045648214724401630452734126880377216769736338035927687163701046004000533116643043633505122164042755333037708291731779604575965312883045197957815588622834077463045410061966593570614482634486786351223274914223592194872505834291397845355649399696579893488621288736242463826556098336418015561641749779063091315143755582341822880805200022875256742916397581336923850590227406250363783768524773006877362878539092942900340144318252981413281293423996440824345846962652796712839080145656230307955924543021025352531775671423202603338095172651285398770795071672462141121455005092090807920199771708378911971190368092206684895699328875139216319155195091213474972605301348997757352322196262708979774244159528214989947463430955345701823803649426177401842242910955815204680392797370402635283916148941110585172958664503542630983589967245422685679406574529780695882053204515321641904164687300823413774700287676445737084466249309050165913999076741495333271776694578878340854094776896644017634306886306306342550058639443118508956118953237598706222667980323471907333653896782351321541761537608630977127146123908871651703489789204882842507470629482929282363485968324661713750723301890096200519651901101918656628956082067974616449157889347621128434230887903496275264022833887449257496949314140564145001882092245019489021677426135244111236671807820231938829114277411711675474909723110182707220195665926395348559100542910157996970563757916112463432012381642910617605948493302659258399652728813169192968682355278676644100646893810881982134088432187108843698080771791727784534248304451402573211691314056233160499539586978989523613938854354688990427263184853753087819477820101096909836758800569210387728230094635038801507496535726219798862558215178907096563298975273990506139010476826672738110948092770158485468171209245926331954881691177539793090784281536752391020220155977339399877037928525875632076946508002334210718639151351827050557828560493966300692948308172809414630146919810211938726016671027560395752672850317848721904333076200421511706907243864628876479546812740449188909808699472445214895369279568802074058714962429198572464243960163056588118873237197415645161102285435574072281105142246352317887547942016227046753252087095233799298060312643435575783062624536912865764433195527132635365190385350510513387381916591593863088107256881637399140544221204400370188378566124782123015470600735083437363004866655642938723436050813674932566787724976538712726979805231330787426580431224672239042583529460687715826434982174938165703150931816270449502645408932022303181814051138315504359511372930877106458932327468749371318502959910187371556246969986625406993280485570253629057407528883536411047463800442931820866324991126583780589582708998248799878611862469715406117536209263493956511228501558342142036671567415871284861959798099804586374507895482476718298515941396075065761558868312545856966041452634526388880616297961818097522827019190249360824575543911730967384182411358988178445590891629399957927837579306033377433499255189489290972215710972839616404240661693123247995554626414050363761640877623652799565249792782478567714582464768529509374438888960224637705129781768605655695561907633918047853223910998777367606149785736966962415604904289837847370191232466979155401901356056897550383345343206300230555934445360676533644950862856537771885458336274008610588802652699580670549816665215441317543425346247072618821093089482710010941225799887275055142529347786167204933017614818072974166665616800283881072330765834300476793309646092111118071135429643532099539510718068444432260504542525223653843152958584569850644199473167038978822179544352952201380045269811072759922997868930110252746389340895755997547575507143284518812002259754394263317975421895489403437843818601070164706787552751273227981471011732686989681127189180097416949998740171010669756954098216123894355877946007130835090887532906446675772463332386517451682941180075126285272002374651995064705648514951615415987967446724711563475853948187538955832704331924530726426286037673574894774901301187964829635059959554742195815908850243384863423853278747762826785611767008818935754554079766006291180158016840447162467555851652918930752813175402462638885781483957298785625699715122267284160928643972003432630905501471418673584587958344735823901718433398260439306043736896181172526681146864563585029779707282020805132722071671142639423830536517046304862235102991405473771173056660289000105827950069219464225036581750665975647501795959584008379378967959243118994222752604222288532156528525088334237667018867223311592642986151434975328019841636274640645153182206455868710274097258229049260016021721904465368357948740903411536483554657290481576505717179401107781202645791871749466557334523660829117185978583877814412170227912398117104969037011934392888913082831976808003449095696792868279037769690552817310804532709733763041212678049814313355994330129620867340762774094083812576579442691453702237409877825408187596878238710452813542207059232328547973213196999648453117025681124363508343920134277060885340891324871809717793852095465259932480991794286520099121464106205007271423251384110223659405000993145036754385437113485349429768322565137327045779601006820091222635416454150654689949388784974523185725258218011447824160357370543320587176789531720104558488409551504031553743118900674258005490191176577922454245941674962307443445165879552258964789623540125810246016674962355997411804512925972081159882054434767117128294939336128135357978091196500355515819362223594230752183649292510145833088548286969063218231456482114230684805914882469043815672894401179033429093591687596897018408059780678671478586694569150116566928544565942505160024179657118579798258933312411409505822581925874386607599824470411683486274666418495164906053048341826980504197078516157541468324533914777844411841228439481542993228552076688748301084288654413098500236130958900413076875111057452822867561385674447101430845996622041640780332583029248543930385600627482744976084560286129022623690286304035962875801297133954304490299542068007456793235398289823595823494416051041592357897582740723135946644070978829714667671912639456782259242007494157964228070346052952122415416117509531896478510810440261481280137142352613154674813970007634334174078289040293470786262490565551936315012391279508755369513693451837844244396760988132503932529772158927485624448419093557622849374537370498330109449964532741603333922735634923095471263597267768871879778105909229376245900564994929099614547861331425220123918861744399897734752177968182192698719990228663718061876613175002896980537230061788599242934210150701776842475142828247785057446380866709581495798637726880386685531832704868766438660915718662725818128460380030327935283207206189641757940761569366338854975254139756143030789887728620014586054816493999159815675148852451490118763446781354543414365417593780327195656300935736332977987420086784901447052483059973968650902222964554362466663225182111277035528055521418045820566820650087354257061536775165042494062676688865840881944152662505726558750355389229402961535148442049708842017882653276939141793814176342978015297601059211097990739915514898613831301964155984900361038549784454964562235647749953162590728591834495067132794361572623812571717401244907661358241272328098670271888250449199289320492766357432460198577581968037640498680790881553592157987127590719468311001873129835106247027132019180585341570663521631382603754374141566469006142882105063688583813418598132245554990057748018222526366069150548074823421048390726734343401425157028425830567554656341780530208221285658117172374266216629361595143482117898653734913688687916798747425095027759418289211123163347722976207325041345593173695346808037676827707322613683785180513323533355707081240834858459325102308377688813266524997530582229273056735556503249605283718661749262422582684581243750822722580005862904313198079855677181437881711140557573920434580093907324211215569839487537076911565226948052861536898485516027580850899511034625707741578474635805499493890656343328027080933834622466785386121406346560062226270571675115230706036622126740707250073947516789034308502489072640779313827569570611897087075472629774950185150040126545369310778143141206538326935596643131151283017904906190735421469125470041507735024157145158554578224289793129399612899572788878585600432987362805375997682244101343065198510753998015711294010587643923598606172346134999883152047074688903246246272316641677679950115566955216827169836522833218996879884505198355728390601897369000109204981904052697562019945354702635436925234391662254355925199557825975978600855887716473989578111511290938799600615897650792811379425761665949697975816808293622173712409464740360977839144432380319557402979284585520278697848704576801140548667375646354831000107848014576563786872666057056682764221274525091778387706758744746629176127491423317324482782943133972774363484374615709430907947555165400691423376168436722487733241887426554068401811302907338189438832188822060529705381658550949527636101724093370574479659764517755229835690226218569187696343018436292151081694528517538095888907169499231583700602865411957499316167761040302798043246925180687420366811790760777931527092192793564060077883347071716488285765930926016614451909225974509962245215268221908404390450233705077018931123832274274351006376412025665797554960492302216194307303349801831314323163346436583482949317306093776327878807390552064354096664246207642439418739722779448493333222794063488638430687833892132494816635716678511164351711150107496785017749351210186565060313500270075606643484355251858924661373610657293125740262432421827227228105403392653515925905228542459996538239371436252079929194395727432074963227240257056624691522405066887446523717274818647066030291778988760871239619517353373351341716749894678378989592209026803708957175742639991341685387398424325900324788082844754049522209894707065983618417827133790486173264317642411103497066565847001284111886359421572777508214793385263861594795724344655368392256043037239124918452785669962705565442898356210523549185259184004844773089795434594474264930380433866601484530905016280015878199887925004651009017747463829206530669702245059027410266336902272760813190482590936742490930469809156926718056144556361811028610480307903260722386719668799580783633912868807433481647471336207624780762498763514566032046439670157690968525955652429133510940845000669728477446809717804939918139827817820611185520485093086596829750070308854203250744333157414298681343586064928299104786299868610236960477864127379228959264604607356508646309863727470870517074222007865493680086466694324303421435619166788220121836872820893591627038260026642214741692437792031836050633828129443041061218066255247663290352340104567125719834208580326455680256784326385778661533447878957160369056452440542571675263731087046915769867767217361903355758981211674939596133364388171224859805721990249326989166812948896850545476311624164429289993591981377247303864842980133471545663800144113880922873538692915552931020763687013740599410541422894854022443309636720840542820774524136159384082340488596856589266921642937081551146117694991859619724975723597174586959646959169393284037230184267329424911006638702067471872665470471864176408927339852938956006178452911097903802270668038359288196286643335293664636649658282615677040337237905308132779087091439089887255823755378298838342506049149095694307303852761849045423529888880332728693369759374732203331054194093258303037579156079729255594699336577914531417794015823606351133786791474429199169937327839983191053398219381924025174964429937027000433819498653180533025573508050116132341908545052454529831729474088998250141456208200693790818644175644705703410848063208048558732312454060539751184655619684567872477019515017531947678278504633353176572304002280602177534479371305344733032279999579220389425179181847257947729622853283009967021151580324432916843790509987915311640254139690301095616968652299579983662600098635726365028731647533819760278445162575604375067614551310035175913122330261923244140600152245459331557306409846930050830870087892552251215749509618549938408656734530375521327668615401793710238072297661302707440753861942158980301550332019163329724712150041525157627996369620676710180312853204091957278441421790912373367390418187716135061746374183446247661802368847583523616213046587977302840464786355412338028607085697884950498212476800393933884102693527530952030889119270311652481229474453421763110138609707008209955011580068334426653293547819362772294146583310223099593630325105539231384897793039849707381895343982419594054303583042476310895476939015882023687075587290128503138073766062358031543286165957786632955839543511740701680334155647923460450673560188044693998993098533442407372992558629735266788830817370462615058031807043205405420620259377469740105672286314748431315329772290426479432628844675480972816873157726020221781046108455321826519143904571278398737085756756763497724360222402633318073222113188474976209710228101666229181357223810646412961415325080754079787198700301925398208094954390493447879833162024671220915359730450282864169415894751035089732293984932479646183227149117013484203689202072238506910771657949532798163101205695521635184683540338708845925062395919666324182550455133958492647919835750579875057851405549437515337559418198140618752199349617940724120582181625274962923250165551422555063874582986842533541655785668358853941120809783826243296127744313230185776374599053884420903041928814819814189131339473598047544573312662872388501234322208222215331924701045236933658108328365860192703268040121196643004914363632265391213082637967873089259405955947504938115926084748842126338219593952421648806300589802127296450320966328386595945931692845194933133251834828929150671272249196972739742566241645024820881557444455435395272104968032195956055102171160710615685456729533276950740811533000093637074671126562044583685731791784535892815174415408388638219199885203926928628001922623361185158137250039815963916318681202534764088136009000577026821979390042474119873993832467121650434080581124339774294037563245819527310774681750516246783736220891904279930135765862920354132399807787483020623628942188706537647193466618231474791374891281093891520084909556932959647986561326019614058524815074887933577117905490963745153544448004896873542073562575863346147700712617444890678148128906452488534687987140319024147255004237197418766793426973501333202842073562427174219808486889861409987548022197584505016050498073482930370916285907791012944774641726630745610559562886502441314984168219416574891591188942490977553041578999448178566339678393578421988791873551801683838422739456889085053622401069762370266125332808246522042220716242049181140961055563058311770370639520235726693818596223902514441244448693262410871908244456777566167956404103106682651417799257110522701731951147095835679470127340785702900199413986815270233004595660945899004074929893237790966495502774276110347460353847953439508122408240982448793449692922055189533795595276972047341655120191867870335649370438529484773907413443563960952056371419729270362563410149941807136047516547259377626817946170928926779568056172660176923942954684295156379248325824991567159743925499457178648063609347095212587480516799750607859121289861983343267954605212541186121284784324304533452537916441309236227848468211757921958053752101990363068367514448893843675458748542804671569167805352806540380150507691330809611134662416532363328633688667737187199564398231216438052194594439234676239600276787838471592080246051786135595281810817483027534234628776054286417737458653844861736612689687721777553215352400389930855238296204525234957578111089756831273165343157088640746290860122563628098522801867968222794202130367828939965937798064231612556955492866875722599806843363469742019903327088029921489332095151649044911797577763314643370675047843513471677949159459413468236322552531993398798413197738040712495963419868883448368788637600672064800938132436587689676606950932788150425984548780057300125104263902580243568972491662152255945517702739750782116256743695360121274185279087914552449091091534676952583068471233789303283036018850271090274433164915348739671724902588872372492602774153356959125021779256599222867806375036516080844079987875940552142587750494386981372258432974324849859361585395055052330507601968464290222100157813507373433354225532614489349471984333470392530872067058933516145767581355264472164586768562792117619257585661622550000402716814213620018475646618960418442862127455254039236765928617282269056771146129657524996965326250884064489232817874547824309121235206296902012232749003889051353945264620462534727061541974969675091932328198376513295944661884890849321144556725363466779887709940300206296069333557239058693595640015741585759302179004226483974352308302636636042148254059617274289794992676993571791892327027140083968753017342879096692863568315762496580503514792380357024243677952743896587738228407723823089370311278715490481912867100761306407336432507134445679627765450871902598589166545997222682282794927361304877863336869941498313936879879662582736636111959841105704553661825767293537524443324370937406921178199374685332715920894621060023965567938520516613187482909414010245821173853825671620044118283293816029883729507280305184299510098210064531841420469591455482574524210639367667913139127938801389513904147866106821017272287932185307318753025038694269820499824401224233337168951534141940994066868452663242003831594431728145339023429108920535178024666965813228520208243918376970059728487512117332091675915104275010918875318023890019440485124519182190997858474616037961728214323408703553123893858023338528243031480194756327344339697681069023215974850238936884183443336187166655166745263322560842139266084300976845787415868851695913426115223360200272367704395126858239906762997505126894670951193664748889774080274368820607306218364307559708512398358309202211697494472976557860679875191162445206551212770985531124035249032550116705018577895461280593119802107890766656598914969026438296081918100737949766869144567444170269368139992402952121717015009317038555050052980854416874630135670732143762743323406748836401105295406113203509478404813865100069873330155694760656321137377626490671751462170740102205811813041918839964205030782137897801923997874651306549641745091210818767315622707790424321791278182420737244565870244612686863272187220840659901661046078492568740739928636915950444348523102241009690615000073648429717492201677533217680313009145121892717847107168224826742540174000566018274281720118472029531995485537221548556325696131095043468355527429509293702792031588959809104361465033885410140369005653088288388643428200227112790024866301518598967418083432488898302921674018616360590818368312323173229100775640212043003742009681929909395832933960039987706491688206507403113122987313927480410187786164026891865719800974023052274903715669169845278466785790957434323321012053702591472088391720887731780080052644296590056612452446990224861755227120672607200086625545228845041864499347328310023606567839000215774259918653713445014077553847826306945246793779329679012063068025569072631252550945142482977988155340382417085068415716471979516484376047591902905229379092269740684822809343729728210670005265837214786400403456808865905317880315016425876396700217805424166709377834472587597076055460371595508886018027946866777118189547560365708404281828178519457441680218225143269008369779962932693874894426278484914706379948641951212085614055447650013916491281205706215442923324381527035462019158929038218207759358544059525385385259620115423678605142468583345655828955621872019092714479469095211026754013833685357523330291031008486438882059043534124479785859727288158769247284640923844383125338066204238306551829920805363185455816074018013644198071249175005626963529716948901935352753771708607904984895542935161638965775685934768692413519937034824879216923078109740988836649139991160594962252305906950803094023916997892429934167448674392217925207844576994851935595404576384229358813489649772478129945540462422047823976788997033724294334029834595161242077891001384821023560212555919682289396391378266631123324717137415880269711904817114069787365784549790094528169870905550352511871206014712634920439254125515249089046671857114646867567183938415950238595010259276926786318203412009856934920104397999349403617050630574236900726802036463885105051602120495682908258944450841895158185477635989566651690997181297956768675178506317061219543458362784633618947239541084771643434946076608301258175623501569825521870093400930220653409276434289860335436497838650054460203887486932185766113563577561808160083523589611574973957643804904074413446703068196747748086391745493062938925863233457492024874080320764823948040841600602378894748305091621076063567606238577982267044354054069790824825805918929213491412758734472465492881954286860845557296735820017759751469371335516116195278046069848289869088073153937435359904071092075156183495155232422948574550545623811722886403366259402141899915881468311591392726187728585937208480266401734754489313945246212302556732557318139370626519906223640458193792786281016318606830151944361174028592394801348796372391022511443478014230705936680495010500775923569814493893838025098239385932892317607541136310059487041014445322138043394036700022462112476585541655864958299309410644985111149392777204999925552795527012569130138381669850002754789262681514328956997134087594331465069259871912067153814225997226088411149990098638794386983518601575895725801674179499614599798411179745994484109933427370129580436669282595231029719227718995496210257508734294729301742517175760584962526256118266356289605743874329188811550852174100771031317737425411096714778791619237679082625566710118274391033379375324354964070136372944948505787654401611724678886179413513167651478883612642103116527857953607577470959103737899641890205011300767807709506267787872483950050935286536175604829564140141051838934483610947430467386174814484302983223266958716188285610558500306199750894311063708924810430300854717990494791535303653347733421466256413449709034355037881205245751147324001633351631456267661996992855376738423043177535696879274923372987616244998969487682711541209865575826216130567166219028410526795447480120299385622971563292866101717772714260664872114368387077448135644649728526072122267817259641216999823839329604306200896342292022514801155605339001762483762390423607974079654897277045644370204453747702385721780463186455874331949303319908078325407709921959865501164092190924590423349231355180232163418614341016800631231677269588518120533758509520201041304378263243087346256107065296613812280874031067121340725804444539035586106045861454545153201641744760383926939799164999545396736809475370365412225522861410701035415922739628913579558779532747817491553256441898546047901012894252451154548915943878591760458474039261129332817964493902636524404714801247497340696767536795830217393562272060803007256510188811983525749206325715647016970695768298994101911891665469171427866748211479417313624805117771510004472760543658295725935398802387096453718375068966462801461247054229649962599921147126751908655806340123060477140526591980246002997972652478175302409264093411595619045997821959631633726825620779635835084801340362031559343914008320809803068259411315025340661952737255087349828691191945278217451335160200282790899743049913658555160801572461689087454452004140337960714900342684451206326421837734910219010716305921990083975413955234638469421540333642397537967080650172482757446923042350504662875553506022567190052830814267345277512385769256265728966493181085739139589691324127747180045146995376911317567145201165629047514763050955725477697287003556403726670091960273567136537568499092086534723268009290641364444896959156965018771774127406669921211043988213100248842580881865071611962744355803529094787198092975825576930909430172943894862846191210802496712337697700730030436964758254618062131600607625105216377604145300451014476784604911329891481690442125235298195530837407636537670500735688730653661343747494468008893727433852685407021687006499538068406078209578712148636598036150434888781032689473022125512510967302229443985455901079765261189475565928508780246702101108461597324758915429057453906988335865523000897067755858530237989458142817420536426943470724291100238678817747519280519632092781808978534985360135506661134954101827210277124180078296807505265500779519143280518641218216221636575604706680475740544859354446547391222275578597224351807742426395938258519026968471200263788245046151272837706502229648993609886433918714128246570335822208939223887436605773365003322256150211635016680874834389015877027007141541373026502449444635755366484931142970119020834015569292963812912311257097156998036963375049379909583803959130199607902047519360287223079534852307030942343593641355208302876874053379741910799789598732137416377333393732525289644285681102658795099618193793955784448728579308084753169390528473483545382236308545936291869141650315572201252894028381606667002528590075704505902998916551753832279055786559675703067507000610558707943494639828985141409879483328850967679781023992135446540300562347507947360142646373182615953911500492877716778325207890794886062451591745845909431948563283089127518122948939039121148300638450387724690144360904096219511091701222023351758530986126364487299714639446622429425463374901225835794646154860238217866865271595391291210861892272742490069260785224675366926883782571587712165201354085441633508502964623969844339530132443954962800374265409454366501553987960573952916640749618975175360362024074604530349110929300197021270866605163121358449869024951855747347345194979641017658798576435440402489839893000922512725482021964227732478062386728694554183538552901010405764000452687730192005627471160720999977008354128256229314737373525175903235898446676166291762382053012069870584397727783694845661425043397510423856778502008028791491703973234263632150845418641012179629014667487933555942438422449827839157243319348782582426832319577660904750953369585236941390788020857383751888985172702999407618957391860013382143322790066182124815395465976922972815902649820825728422182592452195628185090171535123845934621357748079957003117666773413814621232360515320674131934183195248412451713358778418063396464959526511463038840318776451396754497438678147063759479783029595898801898997496181448351094861439380883863593967778084735062614446541736162584801683232573157431409980497459162502468676373343853293671657118463293108846350867682695561077745455206543633527390827481370674431138200717997070508720269231847370332368192221552228749809018825349280834899747585301250395263971776603100240100130527931391121340584072700981909693617136618293350119971591376392297276574867092407869675816509617859147110609164030124340714373730281240531714669858268175045577819428711802229451924175418946371966710882905505657784178385113388087583869638475715963087356304708490453978528396759525775993188907604257593741683788172942647810618277412831149817344531890085005165520474665230910498441812654550803599649892782137091990436647329252648764934286815076838919438186329477366391984175031219936955668443089327234073237922022600029798662375826667804887225451060220805718192479477748015463460644625836102399595205353719427780297359434250234384162635800234278617245755263846875816512671126378849634803841746431899536669514474909049932560416499049716593838081336257935926558995409867787535886081243038334573375841545317409033489468308404757279379745336071672233242707371259123838584535607672898592702102551555591703831601119447640590012140992106640615874628436822565741660901060359800652166591942394163331783146166710763904503911857268691577047120216656047706384562258728312436074787948998526647116853118975736462289456180311091819635531133655038162415660008990124748317513772612977627698211200839532464402364187943612017605182738096111116185315798159867418879019249297167708974517889080916696519178527209622247976506074010970440296628437065552491197038601769401622594129204653093814631156871351208308143722909213914281559848955258209754075536547601153829792814031437218580229780563920287015088667846671418944169538589031159292527817646623124837427820837138272685272185590224978388919168641472953479715400597322393597243831287656529835766938828162091319074974351967162482488385465608095297712818959143148563234122815030807868601637492285261213590514518532181430609970182917725234293479819045037136525573597572078241402424760474601689466756562759545556367858304103192012957690992730573702763486464821409314534899803918947931944432931341073555051436528144200464287764866618311381950377339844707535713048525400224275492145844680568786962963002987677224066580467107385647688117337609184504572692292203365239249641194056114866196865507904074852677815346046847197980277984783166827887478763882253586385646874051483449273743079512218659867625016192870812096969616595898902326094983190686231111796167583310744598304122540277162336774016251378992652444896164654185239461711742572627795000201174950627831499564325725080114005452650013079122262679755553590483211307088363222661737893167604053044240631694066222038356583145338339880579340669153395522621104428052821475770094723221363265796468526322500510993689857823371636913714920486934941336292510083832133619220294061361951955608627111366850960239058267872441932925849495181521104700148732467238874558971733406180946640334769808600746838285046842294360952668191676184019209296524340055883919500489269492102097832508295816291447551450840353429108875502043014972347902272986889987731374223713771719325489733113790612775374452473296381952485725800929017162785570713827555741148357667022287265756672162952415083995940426778700632179255890759999310138737316353622706495449715925024089842100665714623547213473943916082805368721655772283899244013860841705017854410112429170360292691235550074106298435029493657369962208051741270309018917555541695162574004667219321698094553183865382300994112358725998155270118236554183005052436398885326619345313718172118826424194140005568954956814183846603365967921586897903780648591157868182117190865909596753676878206822484774825503995715194789309013145464946911374047114512338303746534170767138852781305040361358313477692326792730152656953932667836391057373304093032413689435938985469851616249932813200702993070404641871591811350486070303573314702601983750105007546322051881138759442499858360394380855822715991481284240674366549969951304894355738584070940554348422720139600794952820311981886366238597045433446856680277089642943016004918359825543998234404540709827998079120726325953765841903315118037918596527837091492129037747179356477669521622771953609089820513580992783352033913108143629896096868731795349527667779198724055690647226503489886905625526798099719852038149478971347975923503171635794711220790414592512537207160636892419675016514639688881137472968454350289973897089391807190965326869482884262998721896384840715296989913106662032339690859288305705206018900510531870275392376034760776615587774298585439051797249083851501191778448945261255095589176831804522774915108093239957272904757292260196114106281705221273177388737940677175348806472444427847616901709573357718104036139255006071464532305829148738518306678910393271887231553852595178765744535564819736013932761542374941425744992061504691283040172603386866040565228692876746018593063221384721895083327199192564115901632358542576546854903765080749595580485328302893307127938948056329433180177444788654507289859135366372446553541024530305979199654423628063055552515813562955568507650061903554566061803924643221932767118808879959011862436674830556695107383216262751408212899332202902177969839141040780443750051209744403656534383113269374334456429481832443140055151131534791372216567849867919397248007686300260683818845390261442157866969827975311986528658776052254562677147700007606960503591362863822120085998493991103972360806814160237051344338316431890747430983117577423707750312654650626023749898511090715676596331696936809164596407725156361825479196238205087634098665406408087819010463484990760503546488908751247437971373436139029197559462549269250989601751092483384697994238261739366787753393386298745098831646940839357362834371359043826960794339482129846778379930207877615262474781685447459376385561755845579752213219301877680525264465629604521842483784226513319602560413238810642878330107576680480377599945070052285862140659092826258174136105378303268890339355493526746434772636621572551607510686956712243479068724618333324811975330177149908356572583237674956942608442798988031967050041834465776169265274900336384780396595016017810982261785810896506799377227183297403492666213471059586978446977963219985682580314265092612390827476610933626447527515719634730599992224755104893658998867611833214356161119125690577663811955281758223217126425170084657805793269113199900967666726021664878115990899481424997492019855143003331051786649985348931367889563343579336297999358500059497840788574873236760664702961565541877167424782522859554904685879363827999105558479738806619311691156030567747615806189372237775334745525786142835874658804307883903491965854686530023453321136547464017372401954880116238090714710843770573908046685048617235939500334285054008073473192848261061420618155041056254900628047576036051274570228105204774785987086681906327003981350679966531423960576554075611375598936648426597725831673794026758087742095925288982756821577700925456678787177114277261841661613803420647383140875181786726298410279165766934601169549092946751208365213667757961626189026426571444001561105451465562911277737266847022415448842756562724706854020348931402571456419221886377843827060702055474583443185891369866130442801917565187259812029247804630721134545246502924466543381316315052988870731838920709127691776880507503895749672994949921044096762805799433675595417000728681842028538214970731609891003880112953273940941264028347120392505696029511289987923432942666179917068393719605861744253217915596016769734847387047597999114249817658092152821451784402443782989633269704612702714519308326401529218018157308571165383320438217518000408364714686732431927101851075588699682694150556044224481207323580647726969592106035514498502945173804080029774216490069338198426326040596342666268388303307576432913003755324117791877111395897592943067084339158519820413788859211945382152418861358357074860548929073623188063352956132995546433634546277585593443045445972289995415861228655013612855915456006034342923664822438159296935989114084330942596268326662887507265676112828962073451080457632576959391763554179352328637215963447858353903878756864552431990017174294463376044402138069078338152547591588341379496820146511306256449601061275091906672121406645874609542250133521237035614874575743445147524331340557364194794145271427384303816546741757431450906289396353640425184581078851303964595614850637349449823118149022834590795801482684756178969765999199670512341565215189415746788702769227754414981175316445325266079406084796505852106041215756669354430142373986302206465919727973535694412365541537454381422761331276350755912093876280101727811835130228304573796764012314806838882290713398712148772532700989419671642225572962514442056788979178228057348212906492467507529561980346739932013669427425436759940583105498964650786892237197963389147513480828340220861699035244426521607012106053698436535554759592645682337592208368256163371504149282977371247779111226828719018995019367907828135506482241642460665656559227758158381472492865498121708327685398242181711050833700349599255367872628942956126634333249665833032847298256650066032788838239207663031347960506382054366394492705217746363988462751054582793096180652235273312773278163533506679611996853065206025025731382054506651631183421645914198967695325858204048199594136735701653112372841161986304346175360647805364141591505342062196706358698579929760155036457402941631234734784850477260238390217705787356089582791474322578148468723429283338358334347824812317817775762122863194618910711486491176766526085748197544188050590581855319507475051220797916941919659995348270075714453427999142837846323380908828123078971611410881999790168874638215896226895655329098229764194208988135008541416857571036520280046436127777766208042230798339258738772078565375542303213659526631191114698213647567140372334738905852327024454490249720515302654254582529357514469450495188518911651723396856299386767593339358798501077344512549404234027465941557705434265572112690439847867326636651789734523473123685810166019341844061195795925650854049001723620495885650664984890072258210127041473998924840532506269781659055693611149854264409434590462276622944956195799545191886252651896607096186502391599297507623038486181794548448539053932437565673234009528520240728423214884102262862156056953639838356755395993136658080136892997684993058112447530201786588694285373073263396302643129286521869654679474956018761219271254151283487869728084772609427185844542011810854201174640197913199926466134888940934915040243698305592330468560799994843909871933425301024495983613176677301517916938753248106936914053443102592778061183634405978895486985918685202709307296062889506950718569709068521711996376042092808194822216738114185752194667728374569207307613439175453946184128211912586820275273228966342183355150202658791747086259969298604796030819531477409600178043069699056900314090946597522644778075893839793291141452078056956619325878298588788758980377181024998115020211189622022036240271340418726882248024226708201500426538403991264134459534502095988686671649462977181759430836646580049313529278628922419001488125735628872676868060108076181508276513472871024859132313587751538814666664657946793633117927318522821197489258633268656283045491982211802456336338802311838297358204763725121007295526586619297222535295180551967961067495954517252128712764606976994428413939300603866227653612682743754900896355421713696156912627925642414224511520639760799992257939104743221653920997238374342409273488298892555489092501169455387796763701261273121119395437892687353880438893940255908882295177196479024481559167195375905425515577048101239671670787471256644358214961864621180453303394138386109470795920434958432795743592697332739068152762148925571773389669903998306589868719103447111184172648625959698866487464716197062087852823813672114000480539826500231110969364974074978992629100348509447534915353484128054632952583438922613839570667290683333249515350349745676664778928281637114239429603988854549248563482506385665438623741315620274360746231139515251630727775107914144717609968082543603479200811221851597167581963004112756727756688823829563145014674704613926586186249164336575205883839750169107413582847414481193021934833877197039130980070957829495202979238508572648611901487418579504725016485489393620359747273876475851888923550284382946763767411419121952728889188772612074621241940562695745099382886386467352181959962146740356851046850568496596035040374871151946291424532396006322365050302108327352760532395189461613551449364728126387743732594622148171039724101267124541643375368377063239877171045157660527103570949900172563387031247024149502512137700347183088229151285970953146558080967073986403535028087943366400786728786927375762098824611661361597953996046537920543901637840745455835130479183268236397013315443846823077208330543954893455718168266736901049521727625962480654435923970548210253760944251382025263217179703622553266066218478922598145463052597368333574791197766718921831947338950879009358059168672007454499045141212139770043042867632445222788742966911518489844932604755936024798843018765264537435906499315086266236732938120779084882135112707742877150801503210550008662162413575385985873636320411692806896463476572304296867014502670686897950750187287902570604962454258273294650875253274863410337408528622968247441562813069563157434622034326502528348787761810900075642098280041364414949841437717442053515882607087539310476255967084725916126348671714837014085398958113776304469736153120247627234368377743472731196995924842006833872771161493443892782230344961521552482802949983253355651042760522057495914036513438224109756676117650705643110026916689663465439681426427073324818456846728172603796278532169580036895261254875190142927733889535978568142088068500303736577448865908408917377725474990883481401658719434180944363939193025878400263140772494621369626650790062273058855725303091101926471309882156638532951124993854308063093533725218288655469270978596942754685046895829339327784169324175810510945129528463279293618404268373736844779643080543120834470262111815545347174903840270334568672214047152345722634908185789918309589900192178302657010787285441197010829220000207292696673533467896287106945844574199811367608476096444287653786496533084025072652236893380651736665534295995106089140878614838168610592848791736523694940959464037738900453650584025686672969139948972706704355734688538946832956390880165252856422826593758615286368453262696839605587021892370571503322365438247689436712236427107466998930119085165858295019584231075232645358655990746188215299605582840499502485112130175433216237124328567831429032454250567580463690239218222050958166540739909266115971196658533302279651720565011701726045390196963827476937914875378567481256293920357586771250365011396190923487215814078838927506697121012920850282737633864034807622862778393997354919052858958747874740471527874286428088801186884907186193645478084405204456230219341466233266059802383170077091228812446102105364584854940134680421535058383374093783224110647673647700563352204690260970489704671496803627834356763246765762512583774070284139076684712318128742335586367583768052592710116669883194648458380594958609226398455940098604319146660755382083431843274052576227318847201388953692565676529829495770827969589396835497973681318992387483335985464299131507082209967103200142181913795358041262438331534565701773150471941653668700472388977124770821106526734246639003090706670371327190284502510315285763478363658372251426628576544706592133567952006370930728169916425841934922702887289468366688583833266659634327412596404985220066881505407931725940483620545421945876840467270538449577441467377955455434968995426982491204751930689421681198776120917942481462068456529917402816408274201027026403990111546205159246096617029223416863211404595332486584202660721271571012119004080477004119611769999427541653458695737738162844504351496011549602998330361556911532709052547836436202959365276336958099183402054495907263559037038101120659219483836418266390750787591611874933301081958266063412008723457692076310841817334105664817216724344010638042915947989766741584908668840903413030117606395147961314674262745956874567013450438036758052353635834980150228069605507499827148435447268425684717742446136889623096554755546196425845900421997006117830716486181672031555326971694148320438714593589847814013974351637450832571477148665248055763470042833563642753135133621682669114609623356247929163876629278946974721340780795445415093222187761880873963826693359078545489766319938528650922643503338331400100541394298877480042418451268044102773287945821675775629983906313608420566251662652122633995748682908136109201363118388863594911082417029371048447503309729635254790709542432211617732570352460171037697343802095900028910989445680342622928968575537777596368976824562788667725231809103578996522334677989129483004194021396786615806418998641668413909936256603884264083333311699681567352703683053004574330461346585088142691404980075673994616997016212857687237427947229727277697691947799109741657218772544444032545720434165711807487751351187984986333303639761239228306093675614904712899616839468582328270303203773440514831912521415416154982141998423522529082430262879697222262132179679876896042494508014573736244142369182464947957367142650336383902393217247111271668747583065454375649393800127533911703283368882145262725255423786075483629559249735339846576144011075086228301456696211041788292348561017373947727531293140026013092843430975447398875298368425010199536364892314597763161249950463040890344218531887400807372677060873134649290608161492081171102458800040004613731357596480877190630150477576477713533962649519254142042130333515148425775116691866842572594119033416146159797163440289017729278250457906715688312733577473109611887114554199498574958154152577526167673599527534975615428472633110077936704441745493545407376424480384482686702959939849382967070375659841866198367364052620704663664640981904447843126460274988418142732486749487654833057305124200661828410300226951493367421727141766417757235620421186586827866380129866716253084998162984599088591988162596166043090762064559826568827522039366126386584797401340325170612209549313475450444082952355286654628490612753654076734494396228898999661814523265491829280198394578094526560400906805927293921530005836163199741488879997601998564936938228575943173188604113735911655631294750147027947564987720550227560071990631398933038753851450756626434776376503406108207730229410571848369597386678552404286028125833356690210748384854659171993599429671944527116959202873915447335939193846746773471569733703756555345201353725433712420225611221608636056338929751941478917209499334215447877689279227011802201906203101560681108534249474479166413356217717623089666178732440694300708660221644430263758768470455188398978719265449194930655501602268144240349200907594845069741432664343591299006471802542305318621705926909570893886968051873141092881111821302122756929971747136647036979478941978623550910920528385406556801690804406406919977496863975537017857145294150544954147026382171813419480344086396406990592856933282068911524186223646607170918146220768423997561246097407725191247664924097190553326165413893469020298917752968481147997626727887379994483141006401172892365171340127385224191038009596777056359189927414933888498664401570074875644747724840458737442421931263950588825170049836903411402478425355595409069363369218615913311731772274165709890920251361449422905244339559415923824069006171723882945106178368599328579324321755022524116171951804664187190903354350137422338384402196383033832315076980714167890522259467727046121918418826557629525840066409506147886166027137815977710368340790271825466807503538393514895819447339502949250525048979325118494612809835166215966178372103534907810443240287962064173657459115548382158729482767546150009683891462638913108914949895594764600040658763981781513820853218319515672696619327452370415000071762122432498927802335641507367183029626823732952934386788193766869226226854103961306377094202406493188941956744280242474078395102197998919727416223022895438258133716504420158551269946963167137894732834498454709661255154004044413451181636553197665191338373618943517612351059357790551670102595781698753669862938124650323256255991912127257073127145082689227422384613583957989704302455572695010531464890946792367470402337360693578921877212179476888358141993047340065348817727910575769553393325211743427001754218448851604746490945281370009051378628100147040140320032685839633138145304777781820680927082040223670225671685079031589867018288353490881772921161993393390090166277681531764252090668548729249691578626631180807818769415850399937730553788381625281903908455915426102080977270656834350980756144627025848209335664133684212118951654061214160217345323143344862814155568661529780339239779877904618009350961257009379077544816784949957737008637226095582476944137581154357463995745571078341476140921614842281700726521781460891502803119534673569053890563882327473670227730646077167743141125623694083696498273700685287041638888348902304231324669585528210458524163758572921753468750670366340357754327466723815500541478452948553601391525739887986812955182856989886097112936984356146685562470892166411352145822451704082892023056848213442177193450832907667260500499382263788087522471409273091287437711455138505414952947948659208531714736115486073110053090937342660749491727267779619271305991592015235196411639894375346594325817365855841936254158137425316990827649586843047448695531159155238106415085619407036465448147485622234038913574060721972691744401449168268818513011947185901817112003858280999892567834467960517011057276211544572729630617482603160928962899899693372107721044006330324001039023123366152269189269685472958539739926631553839589128221657679493738541748395144885771669334658023158651528583661321235667302155683565529672710107859754028753911076418464084046569507348891468379773358362029379544487528285379954739356425285156043528052304609923368444635339088427014729920721091014181313818051040729279138643756034319246034213087314419296120864161908627477800108655803421856470370884949364838292982692658063452639422292355288925269341266568571720255131802247871895156600058928918926300317647881017496335100135210856634516125045942165892828219564823863622432181207465909137731693805708029501513286662315938865728110737312963991218583615683029686631340653977197640326029957387401963802395597077334508932318342682004265595561227534057274300189599284284927984489943256049699611487532216900640302247867365768457983457753168158744090165633680320053524228579299324930475377525556458142578568773729949776067254341579362720806302232631333101476375082814401857941738710281501915186803681719846919994208500052590998340361325475195595507588900189706908466917890094083865195070302396190729616599764195359839215108227656156577281511766575950952008084287398875835791314303610475878726274317399801583920541776642564325262266143671737949474484228130257844731110313383521440808564685200696008876631904165827993153557659919123061323809163122120729093169312581594637788838067075340512374953885562442423655309932493592443402492251604083947228760758562483535473154070513496218588130130157167710868293800721020051925439028754226708504989648641933789027300100405197704275457011466460830665392760559022639543693064862690879833995677544494837050777061153479667690511536971292260719361534611168261022676407177903464075407516218707686467752063287914406250562589112345629704950482798433037015109941979493202740934717183463484065054939911742242361073259574991113876199841115545700148849514871113698588569812793945174529894714874329365777727879839592037686140529488902829983582147000419385475735727791663022856670758097374169556900618708875055342507886976755880662152203496833762425983603602135616101822070363648178453730232640196955600029524442593042163183442172979423291803870017351473422015665646690680478052220618056607392307826426740598189823537203000085369799874532115594924629764370551570028520785268222858004235537465251622971240476960219673370309727189392580494022103408743312522544024740783406977358911575693166845640500041987475050839959932083611593758573131884720666624270619405899373713626359384848344032548128852423037280116091701261015729555850985611352382906744758414471202660299941208522936105196688724628769463364750488815837324519747054345494057077681606582867177656325440873705557779064327358356859622924991570616445305465823728743200650084651339986014789333943362981348374393514156108014918700411643711549739348305093381300988783937378531565707878985076261062149560819820596635075790316474419162984956546725056570243974764103340065570448119752247581003964833696771635666774914856789982320398452004174878758463181546572118691770230375202657952137968488300230179749854469508311145461466071624522048367557949958786044261957219899342107002551820165618895686770733093538788918507838804440398357990731751605505776874900687911862866868718368896835225556408958317453786661874585854639953619204960525307463714866073801490875158036704794632535953021222103863269341112731595856322019586164752460403039948503569938325102003040840470175095959857393162891740543661019300813472721760824058773845575746052682131712414257846747569324592238016083769747874631056589098375372918531345266109164569231020001172005402499108440181625210516765180023057756293320156505119125404419035779029236117954570910815140750276511926490984549161126170745037824302352575080537776485601041688431829585369396180440925304309603107520447079566390498736692244206423276699065002242473709196314490241698192756583375067972571795501408160825770549692387719646678811559867631689161593215459483187805114588619335214822713068217759516381254820064026465431464790488366729275468265527192616672768078318199205654824876841989829940650973619486302239106383265661160620453522275528334549004102723722278199670279088495016879240765330032035693134448825851857345430018654969732370961907703418289302329319476645707879576703241653913252966152905635071292515803679433108437839903371481428355297320912904352359007076353004382244925016215329297159036545106963158637248673576088614140507693538761930667675475596590375470697168686846832713995756659155025013798105549142496147397410506240685531838184095225678358850100504530715841847963057082531790590062931595534578337781712319847397301628598897467241056551568345130405634478744116274823124330040243013731067816488990193044076911657773358096985398850736693131882401861597278562447732641307509754014870545160147062391128390072509819999578276233038458801511562487335979889291138861692287632374516160034430601479174393004965937646133670075452923768913074007193046308017295172859281442903350155014856509158107317880874518971280027512844043995004488586439506335083283142690428215164810983680721312184306507442582005310514990950124923008998081597796374641983430103091781810885747721466048753035639609796088762435584577592193760375966584749983586278800357129374445004294637016391889059921465469680720092334847893220135451208840129237592386235118714908796382685412715158158642293916883329640982977965687622950084101574161113915536209498840180356681510738380062512974308962151730175733505738580042633314809494631005525119409403304882848744307498782289093368839920130780003110222156573757941647104785963318208261878715435720384913372683817547693884525303201046193966232332103782389313002416522764278107961426141875875194450363702517830640321278303620201900560510776484398560206353668307645681795588278355948906266149597967290889924381174410462205176718074066919566080469126372639383514407142967361955714171442341218466000674431748166884215068873660926560964813303533593376797443317041058490914471125793451342790554064076501240135296684037288848557293085618865185070291599046003009814938675198298285253162292239735936555663013046774773015277316284213030067942076703597539125298301673561963322282984599584013856359716293267794261894623889507993128838508863525523922548069931030703463868495369398023361511735468120373405522856016748513505754893703694184638098453453840928558443805797980028260853890774799089536407502544131996267284989846381555967348767873487002631417681003317967553225786599271044158781785638025450172717175428651822700175614433550063490532564992980121698881033913560574187797714619091378883282294690670350109651085858504964214483877840457377328130686268491287778757312138962508997105972533307672728370226841140539731204214656306773302285036272790111615573706263680293077284920156005108766495680921168983600075115211405268596035860521400321070863630131768736385721549894168495820886671498845437342464188631952680672009952817356938939424593127953498481282832043024127238830446918905150532016252866124497210679452436627778186409150792560447789659244163655918026531429237649689226736016223002409919212772472872737690898882834456368373429589985732355970547860523449707670860554169544384628999881887735039167494956268399685263028434456243263267881094967812975985774363488310915166758754916466463682308765613177747136908240873759203152359380394117111626807006295066682302892995846433938791737519264147948969764634153270795735075574400992709706630970492165817590065434680852774253890451417971759664888988184359349251900716989701018728760429913582414861503596622672177187725225781944407407922392342867371880899595090851384518925636641707743547825612297766798777252769503710098856644786478265774902587233759625258196747173191629533634343903924433676060734589696338138997995359208768660468367485765766545678002785175939824389744551854264155353458324679128634132917302861792339998179763773076077723817654686351316259872220550873002813962022226435264202814671237994820075702985398743144824194057991631761447193810556332077149325294673337503149091159663896561816564133620918005326657893950728204514565139148455039644937865778166731578640160395046665463551065935463827061702038721648352911458265025301916019939368190974395862772786899711099163042285312971380876432649903935854982464628817426078095358378385381420862296543308386689529704471328809847671219745282610443506286035089115234564146409986228047662454994245296477274049594042193918681853388302798947227784135122080771559228942600178093125653264404755864340566674666415936544870188276979307061684803802033962667446497622057701635489957286191825381127415444297251925889676843287910273088523302363197232713155132798760245233641780116533401640083595330906117712638790404446917113804230820714474912436806382175217637758106413093968550911954773820494716889578285821781398995102642202534278179965183888353833458094524360735733588315562032089449432283630918326164966514176349980323427100399704329287055499079858812867913362974280315954350386495156456336491480047600542634638840735475172105553302558128934415855423426685891930717511520562754184452922905943069903712866821284004639364673711509086142797516475459443150774620405518525444302312478438512408217797294740318252449431043871242588625729957826716506422461453663009611906830930635997370327894864793880134576762487028246423313673930085600115276498527100094478326913906209255227197852830677365132450330187841931329340436445286570610411693384765472810175588016297614748619673007210308180350544793037347278464391596911502770109039669975248741725557569780084568906307071621224491936964714752271231819505255487128752503348079801429246737847697255736617246713196030682846728377136480881117247242151434330558434198958277644386819847606843859789143613727843138407890970291021015223271513906073091581606451393001305151739046934336493389542987289102921049924675935184898819460804372746052816462464063194772701996033828331535257715345802092305442729414577613329307304264938721608877883346034487604763938528272285337316982540856826474736801792098209600133239845151336820675314033443348414534226979069988381923707907457869546559763639087067650596914522485299389480144751745552363125555030091972989714500006591669232275179191246749179529305139494815070099797851725038163826586961239357063653462195324290723685423474821749771982399693502806614957359795707697166014966951566221730273610205162128088117659523490783474688402637990634158212560590199454483420096382561466693195372405336168092518209905778903373034137715496271127828033957873901841363549640046843504597352890519920345400847481298755977690894637784367765694129937425135099342089706118856701085322448261076103735135049513601185417874739742709891683097120848913567259963750103110640140932184267278769035984018702405223163646948278437870639631379097105880721722083060310063303011465902770623785993897569961665861774535161296446671271032442496539855774400927713834651279635312043400747578299038803567120893979879252564181985552825677106828767453230342034687785876291346042225639934378531915347372137850533322777374779329297525753739700765600432430815658016053095224254525581230994852886920549386801707483882373100169308563204118280016521382958265798267407023460297694709673811361243538086874514483032485473214013797299949648039139119282525196627034604455680913700542420799592330546244763853404605369100227214998411540628875987642790070596226792029137817948110061864145873733363102323361570936849771727893781825956972990625001749753325904513455640424870072282336216560354930068874321391472251281134536545823700485412642831724628397516318229531230068471657543209838163656731564277078880832697296539289873728473614720594211342169362101849488327600797256954924669107093710335365178813817904911593929122213904986277057149004640088020739751878992821169199987760989651015816084127508452192913735564551631610049125358487542038726427323998274755363451514093824388804146655700921720762045989941679970586276598930838699729488136777873341361415144070280079238221502476577354890363931262024522579264779005958760769707244013512662496920952692977657201256545678985691874884607947317819843722184476714117477561022109031210603329319959481726279455880988003646316139313999816937104898331723470274983057071730710439824941565615851310427463597908528040168875796609737525007709810054146458021758724892710846362049770168626205102443357529872567211131970479158192210627878033381212552954020000383207516588934695769583293379402257049630681810847017244914763367224240808148384817228202711155733100907354659968392760234169722926374606092402702607448955939649036065316319602454882489268763746906037536178379470979644148483746437014019364628992879208843561159000621958242269333432622666563212434934669546826173291721907293457753605006414894366947914113019360419182337581365324095893912093520631341698905328388166889145241941689580160500987871765494258915553827654645831375016927212896940418273735702889131680903291386071764630431472801842447101665595342940399322126607194092578010569224274537330672887119371526817549020819217621482759229248170676229431277896130179806493909937300495089358015894995766626084998488626985588601256266649033296585661138919814756197831245851708140245603835375371027352098627686219958229387720400524371697747088348165565603497160342395296165770558913420631124738837908646118790640145005702835519840054513115727247744111833045701784727421670379611220682060984201014110347301844743860368490242616930184042059653797570289069450877096332712504076431873634850752169551699561966279260485776244891492189787232418495036099018039022139418901969775163813248523580893767451437846875275163286383755614601195973706176631920387468063781992534203274349299096411999439903982313168887148586170510383060368596410837248462541592010604673769219779467835666951143616521184700934232653419300727463755335624782930270742503497566818066553025047124399414250909843562437796156173726100014877324124035937587112612523037846043086212486507589581424544306600638217917362062850440353114539726197382038067498566345204725657163681003388770867313981402808312513607518058030663567442485468826404376529112692242563506081934239261152634076544299204239691730041829441884222667356653494979815116106276550354838965170475406830764279645527185146605645115208116049338921362457264307347480275066697474999317619451653290703941795376828735952999560039444652491405056476922637912142230453365287259673832806292641988392239862926861949560615634965442592249474807663539826902647936055078080890404232753922252424429294761858145455452411178823666191001522439163828721824191266287531836378503065608760180284275307587253444583247064888505726833030144318287670776472156606773251533997031885642187643628110773338542345766177019546837318017023385904908674050337099752679837155302811811660498863677058345315883861678459539850255989521091894947458435135339345111917552486465770710298280745198509766527135985101680243001460343632719383183584032283076865362285187969874738215066911977673055149150119873674920035799291689071888149951232148148999422321403628918268578744683763108137574504648902854695568143910463846725189716554874543805578029441743025741964718210737753581592806010590385793428683574138110435469368064913439708984422786363403993069621380354996278244661245160518157076633732952444934829750128464830751041679746533219094132874175192525033297129391245917968132086152518581601441396191570873461798344509473479064817404861789564108906553032908903181200283755953056648128979383213977982320099961277768537436862485613255778652233937996829906869095310928522843758658971649835814217286429059369644588804354207790120662224354188767931877148559464629040963127663038995016622110453905828595083857424318903593882457674580813528178358895787995689052076488006806290875128947878756681317768221915587389547328909031791822110537192373994049378741235609072322575291187435851557188109728243836926441389786954068436802244434088470161424086752250562048402378469474233648265467493886695218755621114806933201247018473504645089033630736721514893860503040210073837554972613771168439717065259482877799403222039066123792189502898288260644547331710375568017362010297462523515037769391105696460201042808988250036887728184554316342695813004906726895707478326733467350006149770969144743338826045328639247054844008793830822402940127434288154764851292148507499774942090108629523245284528475122264888811496412382478072199837893812076901140129077869770541110560000043748254357869001090646143414877213797585876974950723761520524873604860952521161735311311455950904033989219849642769124692787653116025973793845730406762086278144923220714220397578589921131376062947949286850164875665791617692100901535648743930915128641191292054195368100724797051441083174153506441101768020487698657465202323872197893492779752157230505893797583306227440448185613922813917948294499158523279607732678582578618566971761834422556431437569669798639783558008045435930979446259861134699929100407683770157765103342068421017961457474752448663813015161193161443763161049218265225084239843326074610161203068128420545429476781999584202756375928296234737797248859095519587382323403299120745822972735631968997958676412188536104572941770318415747432350237540714905373468793009594996945739441129668757941251561466098845966133683998703475418912365541626224175209277840108781381746020287371076136995412822069329136077200489364032853706250335202885828384083520400415181560646614811656595152739668709461420108872482174316211589145983638071090683642733422410845803448854881604503513161795123786839925855873058159495908410928402031851784448055219411080956055253598240543342892037195570231911147938536175809480590722194692492445655788814555666317580686540200610506340365479099975062641204296838638874758265849392743422856363634661406461175722028782742932187037488505186253372013781658273618352518821303972973481942965336978429887724766058182219905949761581134670692405330771055777413806105057156013415981789121394849655337620029703862498981380074670809465730147321243562145936238796016625079502293426725792959331915824124549048566410784532827195821305062810013440583529183579378362746444826933759218026128470235233467827973962854206735117670667128634049078090123442949419817921128723699870041624201129460031057809096607117555528989473310336801161776704813495209164867918935314311586908649395647671379010593099712789331392735361737571811215002725749716976196588871000111891914493104028928278838739954417892137419393344786679803210482370374145209439395485122885902466900533321797378827929507553616535064684086252289938644160004428038181987844864672827642266732473239584297937091015227359642228575145251217406477343972120348910049976053918837274121050924590482084142811669573583400977002781893011455934800987068577974264429781263289711157828714645807392959287446919232423545801218889735310690909356419990522812724972139262416704637020853837003312235051646768164880062134410796489542258512246003275839895003089115327903312937238864377595434011580460969587973532958874272178803328931939059481014358712486369963182774271384027192500437937354800633138927498954911563916957819599283827298753965200802626452449709166616332699755942816958768890283661346914603783618215862695303194900035669262293505752499834100423051403597681437796086636343141094980464894571615931794881840484222735757618344295538516333434058626611554117888881264816468347806212925636359467763705163737173310587860369690254793658697130755130000608280798675473068942215639314900165293043636383515335905792965923648178984893645255310430896669528869394117775646799298302655243864982893146688970803236179945617554895366945578806413614779691766134495115886338238052049574742324668338926880630532111148523819267457059959453152616947158083382336008262016343710258557315473349964524838390891863230117116986512305489391956527239769503698841001339140315591188627462568280937092051609087851460535950647016182018721690835710048850079497939300720967379450949699708282307796594889878205343637823618069087926192228761550867956790713424557770687409039746212410488729375848007433108112181435695680609412704802080473966961537810771059891569020941079303517965535262137207369685899243597434156917002049648307021920476256305554107080504855399298040909504065558878534363993124021031015650251483262734642694916984869579628192290207536549124395821560868802494535669364407179991526000301515925523396308279989139165810323941566397982705855456056936464934968750550852538441573465347115346881726769509149256646432113726869589386148039785091110813229123108756890210800484755205923003006082484004281296292577115864480926841490477611935739564121939880987495402729920422680916503683151644265564879816294453907031181264730587247795552543057472480179954832894265873533033878168446553813922086631951758381257535474147576214850568246231668046401736868434941448889696038688184836589834130763777197836474720421576734244636799487974220432876482933604216479426453051459642551015486834900826500123969791894829128952468410312813111547357785307054888348825632638934354821868831420525119404600202074260244715942929726928907912866572151544918472427556609896165376435026068315122294613728810030605280974604415377108699916682096123536318856098591091549090467670252199676914123755962089842186210086051174339888489081103897880375743777998451346583978197736385166895695622814793141234128638260462286821202844978169537516592777400539843946497476877812315563610072047951943954887202603112917914685588667074371677762864462528347244567496890357761402460135230303442904242131569496081934275481638871385148322149794514764209382908915474911064509072561729122117929893340675484899628895958190619569186612879890097395037993501893445697808850000163551131708966090368388445196832576011072289235754343031521219722146464708430492694759112894583279057228819355533199786221425816466717139817885866991850978512502497485400662595863402166596036759849393995455012677550520428160015607130081168161352571291615934196347718431091463331578639084533866611548013027348603271512688885798576534055174769096994141328831478644230200690638872088656424359783702806761706674813796805919517587901916827086678769020041607339137357838293000844780719794270394784554326665312791716707365351072570012028385902932120087904964812620466676829975843323752429544475502933628930842977058108748387675443388325933768223667584813812028423531177461021343997394019380786254545235915236257594201852912901479836964863129164741719733003231685028978051554232578539635576508554539792854787256118957540948645607077834441630533588515798807682151847542876094436384586373774798252069777815927218643206603137127246428869089237949050796175444439391734418447211983893529002912748891578823536892708112676121476592058871294423695744948724524146629652125469823949351163731986029358238174230648368996370911895510316096505239956150280391452349633996359155973889148977093108928340344487207065164771032549407453609801533946505747029865141892601553983262020768334900956003088472175264116126085632803366306083240572029777676085540957160657560272246012912101313936439728275950631649689106999404361486370393728066055556864099030676070961883376997458007672994174178100442022236941406521337166096461121422079802982100953977029595109925143736095673208903536965015409452546748679809267830093702077688976710459066300405717982506602251936845348627141604915636626191759365081626280267694433289066159947373603591464385321011208404942074717218647273121770156763598104789303971288313223843765280936716313536894429957805839085709752793134104809527879790045970540825847780189216661858530582221528292309591694246069954153873782569575056762934698428205941744257668774439002099747920366577736664949506310723282672603339832555481966031216280840531023937373623625927123656011229973115694258071735437234885878645889401217368145472841663586307091761889793803544100569905950374223483655191453359114462361705292446870380493317170317242495368365550475789861362703021057617718914477531111319092831322904592925316673916022539384844680614379957183774223014840790831948841854234565189013692792758271309046543930011062872483379233218599408488141079599516816270655010226534953809944060836159013635457124143889112263711589640850939939649614618903801123796005008079220336894665203667113210129586670351112161556220029474799978870933624552448507248222956674761487703738355433419612625837483339182627868954523191770981927596572052012566961124689240377434958760974187708228737768263354614587847443859012699982816562782844877620819360865994613698805312265061550272618723018465173120066632399878499380129999034139525551228848409579043394143630297298093134849964382533492000186658266373672064571440241647965123886832628764003853261183699761496366659753933479870604673456851011829267787341945162896847997421466949904431299589769020534144925933178773572529194251255170691886154732902350793332562311573405085018651453479694422005434319923357507426619928535584234907774207268522818141869297643754214056226655963857523686498846659803929942292402510790273706369917270307184303410471959251145990044457173263314406245821960394534410948469133673835455767837514572475989652334695677883777041477522152492322570298401608615971024592839149477204881853830609826413698974223285984690382653408493888040464224927970868188808662274983601526282951301271081168727318480557787320358913587937062464020528787377607569139613976419782676117014552695851862064407405213682367625711704091525976448298394604296840022988779937429576275990277789392509324151838220786145666382653264211295427269225130152709294194586769519775566680024788406336638499206618230654412946734684710300726488300788412670090434211545517753642572686596148028056217402094560553789681775795173725229766177220406222565805681523129813200861505781636625809608231251947234635319440866561391305074422626243049847145967751988558921746750577198218230469162867144942495703295069178351009691519554541742565931982613001089269344968590219264483601991176422847562383981747544511860384957012000415065345642704904677930149822873408306277767829899463048851379304899347975994879866698137129305600167218117715347410886444964781918305628843425894568423709553119459009148382061237953550803781111319088313145682279199328154414933513257651871503998071028331495083385005870773899536630148112233599061558109946867761284290850957817749831353100305645281297036471665108855173949858718684039143764451413764953746321693140596282290136834229051892278794352990504626569330254762443992825398853915009591896428697762751768638034584154382508374209395363212217756178595493308448886213909871760949514192401736811895547063746271747641256285350322318784249476299867599160966707463255061241041873816410931335035152410465213237368142914262554841557512973795869195574812069155805754217871845231396437460498506798933956866254721201926489205546086895539212583651740947126249879088999073546997131614295265501160203933590502482166402203778973037784680370766102386930713134853395898456819368468317599212127079716121942198703873241731178182140189681041876945958484688823188800185876362677640009041327990164294647388995064143605109491275828687300684879092028856846326734110398957352343443732618552559436396062503032990556247976743419568381563386702356050986000013753071691443567272691820554813880991794968292191253127416372714223920919008681746447376503800856846813382791191492306859281190883234650229358686222589058696041585067392153157998635103736555860713518968945322812949870330494587031422180732196757390647541790266771509137184283614450693455923253695220819618057129740033587895373926398740741116592321187652743466467835545011912654261134537714275774091485774897677986255164793651254696920504973192826478641309998944204345659024060212233203293608979414294876192175529689963044375022953183417462386813071005726918051782579127896813628399502067934522251914188745973684780922276035571416747241695935763318943065962377652433770253467451133314521817474249871121369935600059601497332383977313565502631566617859546464978888881445326563285526431084993086317171227936829963068218250064136799261693303063613382732620449234681779196787490076669087288703710601248685685073964914199322832652951141205701818689528252018006378446224487501535221997376347721733194672545297799071983103813951849646288128967012566068999609763115684077650161883249316415391167865350595549970301942744790544721864419005523781556984615487427118427975458799154653316477599400239105980779370156491761307038274288028141571954093978221087441048512416191210828147262447543486192575739922791655003633644158345474607408553239022363296796611804843883704957607480526240992870739187681181045018508822194173226038198630003666979548587361827645549063587092032988333474172389894426410927431786327897719161218588063909547650000127552988634711803713292178731467358016030882171323110932302315226655405046510067542389280773599352244996943821266918837777573326141151759253298627377876294702901838997892550603579958648384653383591027737345259538610858957973395554817837540341391348196145041670580595506575199739610145727160143273799235338431059436729540990128653527097640333932831191801952618355445650760726954774897955185856379689439176186523794543743568951573059392964509291984789451371872597082185080062734706768832475145689531984913675922078794429051962202677536456746834738277116856003270123459142923936917503710566571216759654488722802365489184824273646433502107240386280560117619660558960610602828944539851421171068931916941630017307908229713209496084776229287445072418327572045461112138285992075334790217615361982249708503622776671913188784689873177099473862692220802789970162796304458504292603833010904267988474963946659533942154722068737198282281227335457206444354822828778588197936846245362780812767905825029077133185811624793547199570524184941139506889674343644308143537507824794325324239043273786485882230202277347258317870474420311560405135534718975092464019274466148214219683014458565900149095068199526378586690390439624058540717739076411423172863973923467718749939009152555025726565037150630098562854142587771021673145768641587821293047332610900885576401294729018362636649772942651201291748302444571443449224899649751027532171303770835562322078932681656198160861298405607183797091312516489541507767869113473534828775138486610506758030343060200671524413823873446980313880680091400483209219458396512910606649648478548805432618139429030772853302150234025725630860794916689448785539709701729202891113528962629117608353273345946901931962158412869090539894540648725857229340597591819842346518458261252235713682720126247081782517311397915270675437877523910536741519936028240353683283037549261275781911266884762038611418850954887761839625852534902269644887478061052190947573235318394251203006649262097214667371847735944144621840332613997625814774959405245901528892124231454707037163835530412995725908333368544906214158657048470202225009999287093131478737059868853144960124177239293912987323636570911288554085821883000751051770753231770126506217019146267833637963098838153134292400255451881830894414075321607649349955551456556305958500000066819676020913171442302747197556909022876935717304145494930705146704179120046953390757173161510831117551394114158551441630647028152225539580890055869356516421397083232178321393999439521913232910998308499451642470784656206912880426223868591074068467437457416500289603704477852280402014641746559679742423345908952258740313666052030816437604398876124350462848043116783501926442407127620938429819464645528109500731197470485685535525336268939891303144284890689681354385271545702489490181172818368326720446553584549344382909740407412341458415703721421704321208687290412525959884273408930076040906042196455331757801878288604692788592296346741503277538832059762417132826011779402367858736859075988899479055789368546631623110183061973276336104371264214933087224853587887514362364209599881663700396172057646656172298828217636277774952994698238070404325275402379398308987449804163613593541236665131155819228363642081334994559928690574529202647277842051049139618542522650535450452265626327730388394804634162391259088968179535941182249086759644187322098271739722886153908606140751207063845317392186379788118306281224866010584277653556126787524840966322400833350743402002240123838733230995101883931079019468190671490019181826847461006179953158056665380948545011393102529930543239145246205170135286404512537362356113607530553245808006591051921858821059395398336159051768178101192845281015741878436748229868198481635022814095105165348991150821367611153113296030280650945624600504327950035714673542877415452247368887010599810769283597625619692339152765372968966124000285976249361298470666631889670377899318294475722102231699831047373087461739640860625527515645238598078612998148522076476432262413460678152979336683859241114202632460289308199211460097529277053886750199288689189595213647477067284047486606972735311450022031840785675157177735682054025447564764080284827642813704160322398658781523874575053647645707057217153360813914059045943595697579036448985042363276094919470582711457090175811311040284428036242519666204635238285822825253791270996356117010186917243807094825431228398680548916390631446200554195035588531287948050089598662614666423167562734457844687029815666016920649635763938395811033689166744074308967951570108370062231819482513053110346513538073622290266022571889281968539977868171173143517501385122061301193940540295429197204531031371426910569660615178198981085377239649957141978819591287177153950339386893638268178639411910880444795842938033458971989591358076243174223216057340660279037615654346699524766696129726377939758939372716878050045358716453283149072123407934820862454373056970874528007651934843812365942891978344007709250851145125564526408074850906450268196168585972251452535746944896416955921569238431270656006692628276768507541022579060434571926592291667242489120699116555476377863694332213879810446396361987868305142594947854514392804098003287591738574485549043877149954826640816736389535600674828542472006866001209411476073829722095038467374234099909680856324112437115889889960172838726482103730119823927071294458335698013639574637877836891394695512321071619135647808505208106159297010449690036688116169807561542891382079067557948940424930545485410326398459303734437307174032348317760971616810337499872127897338515401659980707823640733003928006347568283510997139735690568378970623284878782752340230287546127655558881315241631178534124021767350878362104876749101122335026518036436714694432027160285879123814775733109828718453642791173175436830827150168934761074069911444576634340075132526774294400643233893131335682853857124856058619472470253061771380339011593272273467934780529476953993591572089478877182446138090939934942987770117900649449525365189022535620767714164691461955271915434802772057257732495687958329954573882436369501151593533664196749463187634298954062887228712082198276335600280476464426058414201328730221804775627640064831365195359162449463705539174461550822616569015860093022976393494647006266062529244678969187471805723888224059628999673126231653590703102740359331252973309730911159914978174042133103073494240701369731953216648995750513825257988457602669185454801412610228726773435678493008284289605756346994288216681015930497580566897223369892298987919255390469205383070376129204350637771592645740180566515673126381396710608486056244599370024683155646154739474766015964750873776183799452373949408696408213870921358920562706490168706396167442032427660691279066732885289587668060628857963478367668161859038373064325392908696771899314898836328859881173658803603968235626162628217665423370759506984887585874278681156711367433940437398634072023939625031125037119359700692939861018424909890678297992306252262579030569726657574415452998037526631455068219765409999126027064806934321509363530881474155290888690792306133666739748518258438257726140716833450625611780430208187223621656236054016220787169026952450527516733535525479355029134038075710358652512088933315059813669424424794951129476806767225842972061176268118569784795601220998225180613401122516307524280317748496495506705915614463802118646643561169150222303569681960460092725288267314841079860707530066446875284701908483888529758450802373487999191901224123194866519204193671856197143942785510540904198308538827431963070862908728153340420516175103804429501443248102662356108306259776440217050082581531958968630440477363071693234139859351968951977419144929067635870279960532259565844403869884024039031737137434006355510735732628063656408650095596393874284035637015693585765835179612189702592621826484815086866181639442436665852609078937667487433836628111329766400277703939933770083014326067116422981903082111479264708604785996307661001051319976980343691189649884368834454868618044311301655102255679419346858287882572923858045330965699269642218795259904922262940316719608004453500517217911397434418903081104255148446640602381658294941449608144925383526523867350262600965716019605083472130461252136341240632135431173323951602077782977454766764080691607487213079227056870046872348413593406110082835024399412815251585894754536466322467505574975441836447216215055722527718373922780987018104627413062365418797590127807283916446717441137164544598021411850233388847052972001918947309155832844249161797851043395998190330178038888984384505339998341432696459995494445362113829926577728102082340432363810770732065150031412913414706742670969285497565870745406364653001029737215645953356373329660385465163933085738152102922003110065574132641753963738911297443156144448084087334202513743518996185509407993106005433430198578884783710012251263487890369403105877039343200323407600423774771137078825691918383517770371299900994856364735276048837362529481499550481644877841558496731715231748606205157085094840044067935565410089555629977068174668119270438680623576419426310368060430113076389493549808445859868329197145684090572827694621732267870708647210555490226612962370626700718235617150074261402907493928430466242476553745935356362017245576068932440235930890078242897172127328776301482743167106022822860631310950767464551474936277825582373862790883486924622385858500064075479920562789257805709202829728325299435368139252084902018967008372192741650393254452044142221508545178647996959698096994754621222777848277705939447728483353195292766895955834739477567801792491139050885066446780669306776755243450332942166480927515512709799343833193901637973478319638098034129537560836819754113684250059779884077612424130527876686603224472523701413013644322255482368452095350487569837945573708993033040673551085378483702182797883903653897746946467491418180512728365597295158078203337349881144374100761321523349283176778449768442764019138627444200069499200427909625516134450463806932726426440236874459530716673375576173207400196760085533766366247773439448925475326355973220743908403849131959229526491684902813018824132749980233489874895947021842293074906475614274573134296127495323694436064369899736006502825516408783319094048271299436211786845527166258447727048171718540258555795337779594035227910155171896909283623734982815392869885624992590991242343094107314401212760355896164124594613276287144445681333866466694827234540773559697914995588091323235046063617442583645598449773759848245066417069172915788705422299420519386430444335342617452213386777150164116685264897410243408867810849631607032777504539724810513555270544526946104443924420000407574384705065357310186320450156521056055070079790236076927897873636123752870902974951743474720331249883594261221482533592749626177106289853598487425415898302719355011696300822457912145082187043592276023876293822521269458253027666099218796490107352883008774729473053411589465555130966458543569482380214862010256388934934748214929688387150364534270069413967575051323241751158131320021143303624227256585584271217483339759364681694802617595114446722001791376821162115510383287731004799381121281783331586810220184490310628064564830280579721096562858476564516662761705047898075900177492019974555334453316598434366299584021452190102158078885623463588759306616464423216244556933014138705472286746847795433251408109626732512638238566707074351322937845551077773272957103508190211246498635121120083020706424979570672696789145152967285691495746972748079658467187829841593997598178999217065475975675573313677283465744011927687547636670620657150088474733460388846475242908352935286169250866176420058810008891151922565465852741885630067291003969677332101086906422358341381139578317661240038357243836457937382300480151671663439884191376278712982034336130042338111557139044298882720894331539360438047759669974987440669502538194415363408125387011352302963603200508688886793694630037106028178116505620281279481628256908208568618701982693956765407691309524997013348736872214214420759088887161084128354359443232692557166700588418114554023873971874401728826065633994815682012300913419644788963509077496766623876811533368214517787991246094490782995900205303922100650620178014363302310480193883228042000638061608721725049413322556307181667138092946465263789439472138086785472983219724411331901653605846860131410723632123591538552408486408233200360339244321308234911762380058922671418449516224158021222829857857894151852576907897740489871009124978728189337820926669508276228933479086150595575030219585246976848535656034672175775439085765043983887245413385068679369007391546934393128469521513524109157280922419392133469241867152574554262072699309460980962354951407052317843835795989300010746715336734318867516539406123243332396049029351518274196563374782499737677864234128351727800586506809273452815538858315938407839069091312200340194806935912472652317255912739028413873320147757869142226658435673708127699621982851200114812406573420272054749635291611460086442972522574107181523739638258387326001573060286969946981942184115552403153304778372217140783142959359052639399490614940662465343325718213194839575009069655883936276502115807586355992873582945453647570136313378015026639543356760449890461659076372188399834418239573604196013916952642606918809372781714447301790887672158298484383666328804163044928806916873982728110313165005596883127936213708412108519463983348289856478749626035571284050149131094746348145803092550017885337171298178260903416953631086630709436485398368226244900017675404764348816545508757198738265668740090118235919675576719766384228168752443978875674064968133997516069740910559955211943972434657342052897730754441241188427576265824520042555619031828226030091978449932573081212040850569514018562954077617679880389761654896549098574107026561300187568939377823170800333430831873251143546175353715304855787326915362357048277417822079868004928287898773368287410639256802271416173941954422027433139222915012356218557161891924337223017867457030726005139100434957407041324168236834854202564994996398770147468167834353858361050952006768250268077047478277397101667302832600203903250504609047058942480022983425667931159291504459630608960802145814906131792471842267075608119123124852793185945537798947642810427988100848738766624435318342017139594878390920466865944729978876430484521856490029280625575957600926792658881490639751300877799508446455920055692693364606486794850354312309023111500091118121137195185659847819840943161278523285647557302684528379277443528815569352794249204810780329702375094732749348115569416365330015092627079073745172573380849744058196282937964249089970505768450964493623552530918838759255946183144350718906503288319303442333056565855674184645980813282824722413377197166306386997494052002510194367178859101218832233008940198310420729951563616139093711029228513917174006345561014563388607114490370611294865444521664079547265770066439423640284581297152208797880402819994019243562375971038416106146314277994664389431779880632962652211253449658276035280528821338608116117991551111566181202876637239220183471040049501462339768606656789977956191255135441443578318495745708081655093745694262751179638039653961321935940162809491295523372834953442775458940693026354324076303344702755587672053872680046248793789596809387611590437703978677770970601564937651264472172033209722258182918175797705680748761419820553354939324968304142354055570619190380128603480621759595665178378357491267762484904661884282107932119845113680716415357706990543689362417692589880502523694301880844625936612456768911071994379887105748829776460262491344713245181934131216024816244621624741765102109502046683340748322737656013738642116290284326087788096610253623144079903204753641476456666480250265193308105395462273540270353328755185110634615107264085415011691561485347370287580951747221992189626446363974346858007395707787559603695717373266249855764406361496175022555984327279054681665900129155423446768474130538884727633134993936130501954834298379306504799042573161586925646582605284322158836462828796646176687748962434597470820757936032995310337628945702000393741187286395489288106920768083434784119257045779963381297388802956875799791748464734049690346959713572764419122976476251430596841613056969231861985581883069181580700612212350607394943987529024700296146590466262120983835705504120886152989437318899584972889323579445482294553057410144013937852192031108130383026029011184798730881378186624667069676422052940568549001850462136346914337741777996945681115606496113199485460105282931823034598760486486498468653961939392408936858930381357986958243973951787114104075290062918837818291384650018025017200899283258727888442251263179585136139673434991603451179916576502716643178955866823045150968916805675075651539506271895999586380556367074016847057550552144109302368587436188401607326561008243014516008805194306300915073813204990278991546815432338085834173818032457546319772066550276122342502026496244997068137168822564475115099652671608954398076968727366101602226224524559953280623619383522006842166208301310481771298386977646075299506086713730898331692089916171000236456378652823642925337516623940887579243815900489088898086187388347891043731215472857690885128623977133315736967936605726237120192753075384347404515300701751162574187260050371561505305989269339395517588712693414680610842994212520503622359167090069107969804051974346534746276609956000050375432277884988297031966975095164552409779536159206118443982417323556503403244056222051409467476096428854463848661985038883699851365255166806332595952395161500464387004341169761125190993266343568416737279562311563854396206201476962050789400843680969191074043967872870861185561698001247616456729714940028754123337565258795006625420671589670186415823781574574975095652738056752595575770713990160446020505799154193630026688444472106943706685977785496668996116102313233388103245190354549116203932779366688315251153750641766389170045349302379793807632410340220499676286264743745215106751777096213822305477921405720714370854379422820678071516494792545981514130156200431880089277088685952467811780145301822123488586061237760237898226757961494115875405381302173059681986619283810089915989034963436842853797517693086402084612066544622644852473996930647424089039441872183612391156212277240208454073381866355018443077842023615064417459192079236749656869556475438043635346927830270633872513220147705281913583080191192410284902677178036647117021030119417869884461415170084120433190097879614710329551986425449297350915525341767530989620236150202395241656028099924279304041079439903839191095881135744153856760681464556521339366909325091165915536632677935555674640892400343978878343754281112992140262517774796895618831916306294544643036209150269295145878550973529047867585428207982779796942793318653121821789026664106016707370252424012047221204075819907460286302932481882585786608916637473165940503367079493254604783153997244270162584799974247741546363206382419308551908112513017356523593006711186435790945814073910443951344389363960072582878694176842922904363779649256767403775818521657382840057278213244480167253263305093088578982204833729783642454826623325465452806763620585134098478974274859439046648923557862765584894104606915701165626828157094074101907706565917958408200779942290836528973330353840043049922246781427293578232900887956817215653618698291526878314343105595852715798818044043834894909904987202444233510842559053198765130755864851558315533320504062938232124445509711867923140724061894158022650475623456245007574798960897521825145280933419661550605468798831907979455183860233339250973220932624001517671211436603330887974510857376463335958305995325431307894362666732399817156961968393815076338041640153373093918416193619549948176089403859191596924786097323228794515179341417618495105442143796092994490360451392907057111863586828875189417578948362536386669366665660064767019777457002943719666433147925941723825675923580551507141802083751496699915276377816058566285333068074669350702629491862181935176365793647932829761011064166531741212557526580725303166900009362202172057247354607521666107648582508578683938484712521794237987494703751515085577896000073473391865248532942035070615935752939409856560445765357981215012140224778073946745827598914932782173249409415094414282546048885752340240717706833282583436725565777252369241894247213073466548646498920001627019128192363236812927927410986753101593444305017482183360208328505781568355630934654130725518772708204873129726306023776189134663581891611468699801373143711544829974660007164792082879134875974428973570763232262592334567915347752253638249205635326258882960047417374004061050594603457761313426578780402815381212602840044429113530529328722415239833922128605138432172753836301123604084158534087856677123530258435695356321349032818619012454708576082930089271077193887773846544596647845676591020033868321955437969347388171881408749853165825006821653837714667272273560719492347960559146117439074286463655653451451291573551566109649243250526289712338109325240577889922926766962886949323949894331295658058634567776005133261144816195816355383990999776139253366260691042134227449436745329195543168348922614368000021251561043811718379303131523675230178145407901698431174152993705494691365583696266598446034191204018971035250562072455290153767853810260831966262926350146195016660687663759732826217064880399894140954017064232306058208842338781258052308980228985961371107786727929870814008225984681427121255903543721700147414879867390110693841412963596642038122899936925799239956463976326795092772229422454227463645440939541849627789371960273933505326330389780713150462903737116947602971794113452645677441361726620819989987409827087993764818850531954129812292766315411451682821965315411785469246001087568467691869436181482508229922236162704414050539517440682092649336887841425684395939470641968042708089080778790013679635295922289540935624285839612138601977070144642159269077758649658236988330569473543726944084211915359609265715292835056843338516087933411446850849241155155663699739579927358870467265710638222548594554544838459637850714569196361925100409983639138970546585986107247153522241713929180865198309241842268657074404331479012993332371628081907653696595631010277222567941320646597432742939917124475493871115376595094488808204105696867017036051670517127596319103055632482144858524615542376266901942938656791231431687923674036138493188904699359263665159075354313342785437569674612656783274428343306497684102147347772606748241135326779384161120099237800194539895373855695561848801675587583032153275547711013981287367999090342728660643321439230958316168041819340442504421903963559414285255781111179094995514312499418845008717657547630295617341530742248449316759664702945620942064932291570716601502059692633420248797034947798721729617546691656910882952349660289948056538332026121295253004502720135027978337704998013723464157645500395012316708220748535285858882943847833865813809299262620325795299836237598788750369499458709831273114273005677316705437847522094629968766608811771888582918240876273699276413100842569273060965509207669514288302584901175450404388821233895164392384000255494547236261439690199139584864206423074253699669577816550831294423343079143424490135287286983818524869395379938965286608451563628889629684589469993670590186735275898556726467934777217546380334608613955977746514725443294990767067047969203857597513714661862266023726808067854376240730109495189712379498528444974198959879634081634063123965931142152178589718020317990436099476199525134472247168869186099667963868008247791237423096748615982123767285885931400692148882999059500974440388351704509201014722627564322790563324790311128859883295152984456926612845262597796844291150277057983986563781232882269239632510268355430820472015883528117004621476931072784222527142374467101381969560181079023142841082306413358607097614421793967785558515106752021030541931781660629755583277295965516893298924417252215183870314256717679915071584192746249844217537616916380035162870965774911529362931022819409963802309923501630521069800569262965294146278580026713844403304068738846859278597061206566825479704522634621964185024147497722177195691829062007700544720196979958151624929617472781547550215584388018470553803133975575125452164207381028615519625507512501405277838818043650683612969408774700278331885746919756398142218634207575282546757301737304943126563296234209677787892978583002130791050150013583992556365715869552999507179731041545598887111949676833719640850613232372064679021308277791115029731372952447046032934997028906632198062733298734398825599011082849039069236867744740242504931743880915220902026063408391168217624858450164547331173601515358509975272863429087615054698434742002422637894036026690123319757729107615079833420844402829881200754664462410975517482500926937369196874992872407774690758532381068499608177884627744224754401360742054970174822880316146256817706431410127660274753308616216985158573154437744090202922875824197800191428789949895427168952703125446937981203375306210214194306439605262420050045067996277241998836806490168433042456674300781408735016230440301236750769915310085767098299540549962553418665401104817036277439634345173667751763063750163934829500321139668710749815770722227328734508322420492226518246234171394834143955514359754098926252549209144102507230484519911231929061299849270518402857720931068837682260457213300388431575478446776894105141101639584639167579977757947370147457364169860340629981071081566779492275446740713021286580703867430315258741710043237340743459570771648327145146896233713360027675858192262804765172629507649339467940896111855125344512310698976488816244428209436006053990464526874290678328829195304711048626402193254956282651419880756599211099034836455739150514737316954395313206041393793503624320952526393602498012867500301813354127041307546254866643557818014657392275873898463155939205681953618870472733475526000358379387009058175709342328831444538920002753597877197509832305688506797076034759857681773291480025824094229413475249840431772776831254675121780685109837238473057402434377758850752052777504256265738539532475522814638250839117116658951479587709184327381573041762149442591139257220817028258303985615374643224097525764598718728575530185946700011941019621110037562488797810955252546560602125301746333181954618659311750704746919917978972961689800834492049242433841573678952819683108804634841171460878201229180124292000546740316909398703617807776798942296168678196729862986169544875024997795083884079940820783275018398328065995602782650166296651869019143895305978582070815686383526585807356480421931062204552817068194939207133401266841716595214752188080471593833969509482967947923836458016902409602236528225348042016520447061539944472055181376880289568813183338656910299195307055575317362407142241430665036964923300065233395012232191845329945941904157985770716970887763356455066842725074921018164487580946899836038111893818477545836725118728918157379302220301575973308826637153727352928085764818185365984319853791461417625325830720327465546951412346203686681976878832320428775279722576788577512959778283099583186385583838031804201836019686215504660023742411621511839440315693238236109137983341190239987609005331864415199222287859227258410959008313372744228293402587474771084070879338322090493838074035905242492834760304339513500343314493180202642277461837665290821422800135605081675796149928648356034164211347844815874104326996085976693899413099695274449381937021950242190649757373964604019444636150656396646731317638413040163416707795374202866932802433802146826649011574446508248819365566409647338442572055118162727320944845771502129941273835423808062964100518568427406355153523093529685798923713608859588697483384020877070488606256604134300398709612014381648998977917033600805763076884575287634238099825594884157000187665557256358024366875533022602640995347700057369399650983212380327707305996944631989014958900905290018026579729817583727809094112979290694072704642410403288239950918088345488761452885338794774804383721978587807707152599163357588250465206731224770675783904975464123738792599105878000393782185993695209810315522787824283071896421662088262679737170900476119942053060962819433528789159463712173358842154669466378219893642628303783341772149567820064171742896669256003217942071202416691541116403014307202260688751133722107739759155867764520011165097529823978777871564119450016382184673272229608998132460946197786527715323508558813462624214753807626737276574987266529326111752407135081857946364036369967195011364421024749797153151803391444859019291952213355715637458230075479803748464385187797750440106578866412861904006746702101352828093968824267328669322434764235403158780462794019157994821855485273614293583914380513309752620140408581684738862941439108046251725554907208237760560595276885129873697246961761488730616211022947850511745758207078818745476035833365714146195383353182795855785440276069379874992758995821788397238917708066840365185628533947138596374271511097850627807396151620466676352884746156556658970036059305492107202907426561498072625353261365235883315716357008560716086571031360896014087688796680338134514961830403284040693736334990515243528859239209675496055209194970179843957755537464974677030092974671114433625882608212283378466344840088929051251179008762105212473582855980086607887943888442446402883914090733988119344266026059972194136062798801026018115971689633143470844887768736190652674120371658337643594600013667893299843897554663566454652289779117160612457141866571900514783283066660015844384647239539651747080105754033332378360805704084395674855561105943090640774486877593448656153490275343325248450323922411343252531625334922128927813421684569179851036310122887392658662763240300025280464531167330997075858317506808007444775403189481996046482623820650205345584055336320705040322737690434160628513129170960514136019720708423316266216683250737575180637360792246306677264514488159567615752650096376101870732315598068735470937721904840100200465136455505247327188879615536325050024722570530648540259595913851975252487043190903045899277787910736975645061140240337946565248967148936312478502105943706721593605293158927227869708843129906687854569433975934966488194796029048282391071862108086637254320232609191254279090601799487074292558603590454770989380822880645484863788682621816561742425239094327895874278763924650048927071708674023814767543033341884203075672503644734436278474288793551063012155802679200460309865229107068292789290255933988857771098226068126600244500757292746367262829824826787090654510608397966680294659177422883078580613529359972209657862601936893044105118519080390060711736004997014405603912335396368937247538839497019613894159436008805097611680159076249355997756981819092937279882061798493070010263254095625482063149537089759962732029436526757325957415707423314938576595979587120770235794388735490207831908849107082924136013257357358622978719562766401122477298186946480806102516652747979842196147972280682519009932276160475508177558194246917032625943216937395777460209281447524959554131286626842149688923539965849329432488296538475122024186875088630399784145413613271347970143551353769208568524871366095433703103892703367125061351236015494646951948615161040990213240597035900998042342163942935793452704968611953477440278477636505752392477712985549680255196484719305443860824609892307585156730872359323673151322882850008983225230497618621982719561358649591169482789408714003660514846747548235860848868667415264932820672855983814836704031940006113916420055121552386201180578832730773213300102174153018363915306423702712817168940143297042453413694599677747232600135419061691577727510052689725253234697832473049139409725859256973832913088025163153499378822799982147810825312378149489553242080489725527198063518219622037089977557276367027890634320072044274351379053685764081225595944738446513557846788821620102955199123050273054224942868926276246824197127641060756872591839563471262289281349497183002197114641346614113933731778374535526986009205139033014646419506393647334894931066611473527623147142274610896257605417458258958003739588569114981681701987667156593464736035595279601431412859777273209034847260944402686542806672377352065897678066777098317177427906607764898673686056715227360235858110112808758655433755694906915824514928194698935238113224260143805147308780172387430965771853249486682260320165323792111020911382913534661892621903338653031891282736202646226443883567202684849380891665534716161267759200636350716408504008533249194311676838145064570608043863796469520770490512332926610031169904515883983846395989896062707968636646577486940465185206636748183352903162896775731629582049129459382421485354983616426959265404307159306885737221529230304777195818227322139266891761034071774821341176390483487755060960432873830390705161562687855238527433730861649404230044733122790574166476373932781499593593731872360149948025783685340434482969708796007168323275211213890134814305936850619099962908261034807394630252535200936779899641605192504952902086062783116030793408768394318730090397757070344174951348630348549470620170656140023934041744245852498733590994992631680439488449412318365591727415422272419166806793882913711441152319824514359276287427560426867128448016418025289315360695622291933167624494227680319595141695703813939694064119305400498018566424226043250843014097282893228579538494708685734217803996230047398141871097163817886960317879283527526197746673697358047014058935060433422904753257235944912258805026722393778178833706523215259030157746158281288634156728844556563676051081539767432704355082380502165319361233048769424450820667382552001791933071370679307259443265952761471495369844268673871797388457786168030070889138028179072819622556442675118357005732582239936473196404289160323769997121762083050013078619423560394542720795149865216468301132697218384299388014507685414216991944546069002295421945229327142918802123918417396936303061211977826451458470407670762699934875352501770679060084173142355500685508543455691065488084786127254188398092179655883589124151214270490489413803481003665064437254040175417263341190743327807437052754037511482090661171567036119057460065702537336665884202673195840885301026659963472571146935463188712924535302848260948671966501347007114415268507968148700468092591093821804730451345480899237425060484241071575027933704745530684758419008375424069710310309561786141434805259760610448195567186528784435791870119856363249870839537143523339353731383406072753318077292434690765553096760590976540040516249095382571085189892026567588602799998313893146573204852377428040642722167065377973612603601118675373787574815372308838499587518285746755574076037753494260369201936515495950215983442714413168859949456079199604398785069973547825409581396261764120849411427553609361619428955710807690773355238622458425886040482262399682948879515656143685388389582982976229561668457579004725546221314895578329258740002374841392803310048106656298044262548590730705951579905813355217769076507111771990733531482610072739045361510639851388892451022058547811310650726099165303124595867915067048688430943640970756369525789484749052840862001788153264745224663822305470334769010564052402109126573342425010167070013684096974496298435164672246003797217383262134874373485524101761258353108152701611444313311956721001511807164366181124574370766094049309158551801501175861216764145856254708220971515882130220321233722264350935300852485700550114006052008711886046975356528387205446244973131637815171776845405933307310909596823514712887359148167500246157624727164216108797185695620112416817876267169022796321828123331005850375239136128546584173184069247495982872521637162243019402168609139076851658093735228373341218375988341476637057217151148364368323978623108220460540317259469591518272831090936465906299455055709577925797268460867216377420955946233203904040733197467692673160520587555997414714620367708978381819865546884896843827975727845420618357312794016316954128681536242035438551143247531208607576702590329365051569979431046267161857177669644838028023644912978285867302818422034756102008870308987593352597511519770058419573631118989284238517730717087030497379893284777495740387148024686663691823306192144590199183405189159082127730253334637705345680260621844966856495366217424937395803481386413329794178683137409997880090638148000031833875900645875671112756538404246322658817373345406781409530981203291043655619321153385901713852322914741289589682410684828882099837585753500654524676219029630381233769334458624116390805784375024254562979189313441796233102373506043022635372894737184308038677949894851153875124077167866759466132125623157064969879049973705355702901050684634307346752157941943389113895362998873519294814862502782982129219261495872828481878115775446193597512099451842916420975590640326550527277482204039684988650935180037039456117949257991657991038601147031645462921104211967038347656188797695809423509121775948498017332310905068909382609575617012510385111086185431762569610621027795014497740326778411556156618617129956133507381045161762146627838192239306908509005184199299972927200032793972088355542587697085977489451814959733853903218065413012042799077869579437100987138615653055284402936384936042777260776330751649300519868187659780801727908827955959961163347471358321850691505961668624198206241753859589717248970139945640047984163738713257604756623611751069536023836966728581848103793052215630342924249532391537867763359434286635401765043103994661355845505656980434416180288333007627266229899303477680862895173472809604290518342822007604025309991775247428651034342737584406937949733266612371575599570960765973951684973899732554384169396160262682600248578263277922096289835252052241722630196325204040947678502481523226763659828801332419706197783939445889894550324097358715553405655397309421035735355867793451310232124930369708700608656124336380611208002989583627486775686975094919025569436516921019626566119869615879313062590181960723342929742101032668971035073209437741319536673931094783488780578839381617572122047956012862909041666715059857781232439695129079758565576402540254885784197674071932153308205451569918298784709712438598769153214349157326828315499091190255216710249581729142679247550873942290947185625677236995366656832280370327182799170318089410788446747303107495742779943070383706727730919253833253725445928093490213160884050755630970591221437585262963253605980190421094760088495251605368536970703694379031521905746762741217363536269723129171620903176351214050834806652782671561348182191439948569469379646568750732176309912665199487584051047429982133601344899070510144903703778788119474901445763964420658695102052692107072656012470916460348181949428468859529873129739252912853323026133053392490827431388393375702320000257168691323324750799199608743412082485718165218524029586090244814092883653593200267821539318025692067474902722539215693688423945827743958875881502295370631215322630475692653110977499083478257373342507815772617774174077930411176169344347174823403876324465756840999592062329318790976110400205815420335559540033143368295176300196935314191450755807787384125323222520400939828689428395415532655280100462885892295109973718735716214114286804050844789131325207281679271363628610355376772387419867072909646239864641671848690789457240918019246320803383296179998501199164410624476890815358681992638761754172357439319642577992234307848592704728758580513297603767842103179392436785090482117846318474615585210184572212966066307891758934934278705155492687487851201263431729639468024633675913738141600839124739491652305719580880969602711516197427376883230477495816501488556375895032101842996884780204047531505131573968536984547403215741771411528319489679113613826315172409927460393847351231550276535420534810926463764388429664304044943180087311356045150343870740429359955016977904302168778834963207726021961467998513544044580610228104016741045644136196146967374063360044547000185142935414440637376071479820583070839972899001948932170089569520291826060512949064161783409148192335442670956330427543533308192063538284955697934898854193663814159925256640977499988284163317835544631413102134116962348797938309454134311361529805729578037257685909566905317145093401048007836398030647573081071301884062536176221170610028828235778054442601870181607940248085672000669026287329773384595466923629339870838397626446984535969903056722955184834546628523636352647356327221997429862488395633765092073598972948404657289068302179403132618071929650122755724739916544143824195616164584232252474546410714023486921384892926282386455002914755851234594804420465199058099406506293644445636078475026017793650362454794056262792627266475986952300231277460341768621992945237465836095913157714861139101359456312460577024631002803618137787024158003327426425490160673288724362084189608490777179960082552283581804079402463885933100068065738667751234532447028542851615664458598482935304701352261234189938092915113363259291468944212918319242020605793518581105801844443770581708773698551062940715636989885121890818511872788582635277362519896289235727478278526773544962860341401744027585118688852515254394995055935944889310593411957624684064270231812439415554592265697750292837642546510208080817180469013575293672579191131085483695892042785971524362896027876296266135696601722410687474220203098216418684471191083539271346498804484465348216982051085278326539073071215826498228662503835412466760023494201309776921677150002201499244399520166051172298278233433799101043443226737907594806775694903852420942467136221770878889854823437341587043817771940511433390670983849867904059865822103211821154014750166212534626714560193699851074729648415405336940390490041421077731182194634228882929101409394234035536244286181139536358407991818103137546719073313947586795012102089419186177583149525839309536334947664457593271061791190652218861430137459360452643439241999214816831391248738430841557409158434231388080616277515559930380123341278122740199190675986788201721007556826621006104663665226280316263727447713977429018136823443450083328595258906785219009325964691244508410242396752895501063907624446347342725947610906440221302491640902015882189555563773287042620676650984141572343146706167977593071170314716121178676820736908621161897479444191792636096387414626118298085610650533453479079391537622506268173131257774068809238760568020590169188289780213732902367331046205669750588160430395499262876773718321218764042318217140517486892992643617579742235016736100093550836091089128454225679920392412533935650002675682505997462512149496878209638702854211850725280504246154709799327276528718967182014377829523228941591778976390990300833808998472026767105373979153821232153375767506362638534379490181180790192826903302824668345096503696392588512104280353193748381909339702125963044357347656958380016213371758349300690835030629071305479119544977925255622896708495784949760091382255476238676904006492399890290189406817474145972591199939571252854754097920090244509890546860017819397449195255136548133715349883505567175935818164304761504982342615791270611992375374181481010536510835973997250740411956813464651404564963829822002573913990604743748335293573105043956626992686047210059551850173643897627118043734082128159547562481813551378979988875637687164677741924164134862717778215617880318778441080992090438612103867091770751543207791881503850439900461835448319671298248984194246603677011490977226115403350203867133256844728045458608526486160935636172030461759100960062534983462827496685954771014635200109594461964213351030082102276162185982537071681916567850633285196248762631196239665128466894225601452854909893702205510500498947532537630762825397555793550684046472506828239393723224574148663189662988545779863596221637466380506295937959791780727594756501289330937620408404562156121937461219116406172705666396680867028384603717776683531022142946888034025429091433820587187603176452764164949989207001345424641270330171448928097863354522060727903590898832686512787004494391856306241068090338806433816752725893751096617535393017850957294784240394100403857710348037591523715067964934958134380232388158892402228364100849236926252275218232730636202152687475480201699792936272045139335249672376359383241891889914453293086784023333476081345821965044069703521677029706301198102270701063032998963097381832241037512038109297589004980914364959360515080986924943466585078378876450783083981709485070007190350954722732729312700463641920966825014184603801450458944144626017461596389232212196699683910971296919341832450936476966994957012130923229081423106184249984422816798322156716786246039168853671471857405585715865494548119327517531474129372466806222920498845121585068000600317371215504636820668434753349829495900387979673053383517301971946728816151925370779449643985929865690584980042834799236934843218616911263651224424250333361822980268444285590659962530029139706648432418500014963395259772822931571710881625206224799550981874629375034059445439280948089304783383430828227877279916267455096869409084581841224081015719435888998286348821290751564331938894045838244590734434547984690797518713762920748540156000827421675822406992929223743054450939657213613382101646053740693229516235792246021539650259958561556310243657631940784146441763085733685051756563321124822030385915126198431584178660266569743907265462984345477046029895271205849550400438836086916573014671195641860887992080527823784676067443301152556841876592136958285907491202209500035457486267653393997410751656152861340500972624499689634765358062495622246882875011796732172188119002156984489565768774190428146892710643473584272610239369572481165392937261840902969880241772942497060020794523403687586169110359770052670039312384323808371960407560098125100614429170021759101886994444075651571744769184820228978523211772908544518869631642024008061057660684931730770152847574160266136933138709468193576333143156913235898203957869906466323873754595430690944442225827666835885588627574378722244571126999957316725592522042032553820050132236770138129977517073246690016404040446660146489823412635474823030753505650926861412638333037564572480811959813321337866281913569863513447287569742636058398678746871066168801444601083331673963546116736475952701434706170302851571342973660962565107126353794107443441743203134979663808033557684001291170653759708435060878737877145427574083779650196640270799982232192108783451807877577356622240271028787844422791122237805950617726133687242768113087364070340208038327096122868801482334251774694971247635447238041014308437754878241415017049609222708102557615557764134224330076282330028216308483735769715608869524720122913812750413357584356659946458829600560274254128814230478893831654197679720818714931882021809024550692258605600094160060125724265962860483107492344839315556687270267128500507391359122010087519514136294164225251924063544779823952153387058591413452723424313981669189483165419107381236392369507511645595809102293385989811188449294631550037761113374833850167434625234098970155521602949928995888913448872543554710743716637758991255399850686747383783168330111444279850810270124273249912276842694861382240436746855929361527039487362612783195743043854327688327142087310812310045863268275934792146491336774061735963370942103113835137209678548872450341533555814257336710691956833252326253205157049317062246364811221332635908798950222239928100700266599716041532568934247652050492762083655501967171063662452287170353254851612310695482941778778015589480208888156695792229376055720082788282538846983604998740150964896495376020089406442957462453999198450593699223506293676269540756467383884384714285796589551741000570940753929815384503273291156290113413482456144523193439387184971217220080564261776196442704689456716470156333094079000753542109318158265588978863636791052064871938553980445739373114186715199268348136309127398888340393569555191793190899813770706073146894088563682934546711639707494276282228672158122915804265657612266643133291444971566190945870144521859694696750065471254114306756872535648597402094598798520643575164997393591333911183206668007108349083669954822619173678375006541568006930908410936906406227464920163201957284950184479234041556425333807513139298208281355661107100319530715893141095946328819165496308412533931877679124436477204007813182459734071428175391471528499324825065256314795832048225186165841085955125104102955557168841964145315777660443452738614527057698495823087273703752678091359041774034812989563555237270403795541007163815662299659028739154582043788227655889175587093664175247842628339001299039433436336875619747844258206294254021079191232349783379939707957570275987503450413359250100620473795875533706613159141237310363540202465562091710249542211209214111533343265077530976312076035163962041948132626667924347536653948934456292790302725739718109673718092457430432681489479802280559541020671479223891048022814140895093897639269481885524373407527377633424236752605655248284403669018857266498661441666312747744341451178838589857609035241301290269710357919082070307225593764179546998085700089731926317392262967181078992213636600589293877146702114725210004212364296296082453335322489404846247435702882103909477133446553533005712531241145549451646773608857871009040028228748669917562347373225884233829937833056839303928756655594104761528316722451038482532443478978538940505139514879715945769352517343316136349466141193901992819751526648020070209665277811447342874112497217088141567389315682670948985089221153730574833986471684429754437127682676838145633402923365351411060009836448846221545415268011211270818728675266862866239833104388303236063346024308521966109327859332693243429642460292531759774980417708303577849759434762157737349144018699831093710876397931134427664434384326531557685186963394529379686824295049216716200559066356851898795055022908502632648523553289997311141681667046581892332801985942256392743872807597556931549761013030096154838410057223309599718558159785833391526953099424620724960088890020818341946864037086863472670546175835181104593384236626809991857533161601189606882578181689030007728678707686397125911200222510981601869267002624103552250264319306513381763798618783104769999165057135626274064915024022255705867026369994363218046195173088384092636019970150534562451394035307297746174056565657342023310998375225604679633615197769343851585851735740803971110331817771271004285661131637149338852055325302963927804335512334091229123149067000465609409756456453849180488465863493194395606235081537317858664101726754383119886602462320541530044227817287613845876697450379089004090714949878845965596850974253672270074032055425958912719614624308871684801204258474760396008222043502750032124133597903938493845958284634398253051509295761624014189215388201833149028709214914631178590468010485427147427497989486109493792090580364893769459221374259930632827773429925555828013351034446937509931628766011619472942132806122922480346167420245890054192277749439415068881606309348867451242414576932180578797574446415974752640512177056672416970713782477178421230026886357154682026720051248098830433497725321086966849631682370019831441198758111382155734727653995082597984362956281714566342955954136097762387170893221053735107879073504127539013724556490093279014777953964270865862671266971196731529114587126463785432869886908971244988317607678205129468892683033395706665725217358330545430729732168612366441020574955224810960410491589946360298727450960816049638464895883047710722527963734621040849856820500564213145332394016531288058145761057747692712865694875138983410533726711288389594028201535179796047156891049944092196683675963927874525478862126778021961992627976277443575500524528330882495784302289742603901239244859221966310048399384758550905213049481701725308703783294592078291008243736265757290415336675976464176645914042889886983083156448948517929335266696402340427227043106531967051152151382120473706218676730478021516714154264758724897604123999522915318553136961616756942153953847937298330003149044817817817140265115010679261043431904050494653383713306768081373241773701476590846176364891009057846113955007530627706394063528451610606539918076999951215012116897027094493714988709607316869958214207567708626967746073033927636930224740327948617816423661382659847503969588964220434164647003453118261618700865805886625385329151233213202469387255674224442178471428923347357271516797106393692992717735500963093595668979036444115610052834160120009745318331472503121885541818613399694035512848375155845117097080456802334691238836402238588984829382346137504854894513959030013055484025367410620976672609812812207198857249921783888336011601562170052166779927975021371718387465963414386350605294769468515585791354057290395818158330869868381004272880958211849801273358254934415046978691175755155066416286796629892383648536014249901772603583975670574155917698217785990350195084929033153992095950561673563680955724148028151271222515953381089934729884028108854697380101508578819792995302925954445121644721900285747235643469513355660315218862648844667106815467580818303911210453201891121808317819369369936344768070378039976790814268053928833275259494033849881848270978165246894271244822200286923824722119261507468165814077811212725807080041156689417574501638948089642520311816378880853268294827454660297439237976496256554300638299058532010554066381951960754254941425249947396387555992433862670961553945563220556491240656686825362732503522537570805494996215333464063935092920271804339697221056141981032909537491386535961195106163599580860916701027222797565693914017567165125291569548611080373170267765334724129434154094388715489901470518124511486236040402286131120346172113844094644469588053566131550573079967422636632244823221445397934303718983419868319608920795901650237663084779325124009081142872237141973089813077003540452983217729264260863194761769718725503044769619836543733681965599588200072325121268425842746523148849136043824629224201123093234221670731472531632776810995439959544379642471017656538201726775791037150024278191761278792105772378967480308389347767470613872521177823032619540657286532159644423053337940633536248125857523681158055698439551332547140090766856072711425456418221284994584904710836844239475985219532590562222474893864418314186304715294373728418099998540788560739131137545291787798599475177610906303663302975933478793043236183140127747972259123850127678967377635760479532234615860760289923893831926787208172715932556909581992631286627978466563580538085147662081897682452899539303836599374711773806569590360252020606731866608354894443732484809172445008923653093423263323374782603124647344720315480094879059712226841556119407170320087028301659448537392713689931622812297931453259247171233781598381629794787912127641183807185133163393452749846823322299516860567876027425424914974792626409386088976537875529158932323642024006733014425163250289424951757933184641211197256420219243693469543676269866550019548713982661351651552675433839086997069479877136637713374581981692091316235301638301533806766689400935217744518575227098860338803798851811658733575407387740155120827248600519618469182528722251321919740763749332308457354158475487949912654808407781236773478298880597350126765016536186158675121435330661902699760834398663653213203289639077033793196816698394873641496210032533230685613097010909254069441990934558910096481619257497305343322944261696235562226304459196630972979737348682915188215799258097295758009895384070430987095397667441614631719783136116003980180419978776327742488362548663989829596990146886415773420476841694976606026174429508510035599536079594956104230220755436624213369791132586972784027172087782197735842229754031051896502376916594602533502421048871550091573473804938367380189940876038779208677778883035658253841988534332940233592589131148085166127889361097273827305794165763825189090670483928742230070473968220291355003009891258959350798418755037021434477595677682609778095724793677634371747358326918322304793219238319806204608165654846534128522334877768396777904967874877739645426552963318244893143873114199415385110748364219781697632174555873987160635165764838178919699394416681703777874043111793636138609444948329292067353462535748610108783177871298077499232310560177697149424270768563388627824623287298790195736071406930832798284389663909873130091731759543051264644394702911439860566331210268462913718413598092613446539241135842460921051445461884789321154136657736240656348605552750281690332120199628690276898942352827043119328207683426212081452739846968455616601079192899695014597661955166681489243230191414900377698016845469701706184111447839288491905153601858377216203438647646853358957352312569198057702457370947286509650824410917120538478269473564706418354978060986220457175782504632378129180325813882793059963528177417359122634402354766498747001622568729490661283011264758941150510530462604496978139709114372928200079365591259271436583870271688369733339989889824540905344590436906247371844906895317705766462838631453632604769957207890613968801468320656265140113609429082450701753374317602186855278683933087188538497103581175492368714183951141995011638945291820902285204941170049603911581279875522909564317492921516283491841644734546041028945234431538863999743839161026002088679086413428634991115949764731535733662401641731469001929027696894958307672130684544225318253938615296327716889964133378495236858815498459800140615006335165726640878087155932541988834204722857974552133305916271202574708761946310557909564460354488265099828711718402457035355686673271401642012959898516034110494253409995773732491903641645547123052356227910933151266191796200873969950086473567093277120468692207614211588948664782586016985594343062546853792435671584089221482894771459792580518510414241203516275219122508464032736265885756410501802368347156525494994076293542789928360877051055640356080296410171279783164801472776690607687829962421676526921180161256192648193426347112683265484699977324127170556935627678604483007360812125649685205868691525090398203307853992110445167924789988142843429970690814216327709192701876892069561534316881776195865640667126864501342033784022835625911140528088106726011964322646718908499392270730472462965527917399904259220606552009928630357967009233874521096773338521070560109795447371067220311512061721884018116689460270872845445348513355467401075761841384139258151677652998332928791418925460265636563109144671448575211432564442638650380926832835690054979823173278327749007470436168101151079929603813560962050448521787372098215725270661896750824134083047569466034280916516530865060575635382012616329706633042947910661643152761968446503722487497255534749722260440468983447706454701281441643246561488801039696021408229572134697578124881545247630838108042582688671190374464791713631791175858191866031625690183987568422513010675542862113174794045581086278122499123095072306699119589340369769303381657319834661462019168771020718992010673858028352647943021783080916812308995282645549375887009988329193665219589699005880408644864903107132739330722111406375274425228616667084516273731415311042701504778847932390432618523749460287318985351267659976308272404770013609793676793626649375627685239254878156015759774679508005733592537132540612608837383112725001624167311798013092327233681452934081769318860380199682520926691829085281430842496513840605864052665864190375114122513337155161138717800278522766617051579626860794724150788886897637222915269891335328416485213848801334021637124875298901884174136050434099726061714540776623536307815588520342672833093338780368427367718547226860392120682783648778717697000540801165867386048534539179663252610548947686961316272302841801491598591079341131025713005789810171464397390744051413164067307869593734097667231238327860509603888827440164291215542533415399816403642885021582285734060178022484439205656132098928160780489564773422152184112628723652625102476530424631030535005753736845616801782704325394185752113533236793423967155036553213720395394199639932404766828390863653501526564012224748706387899750128887392629592255711027936515221679037053074325140532300341803914181249396942745216409162971254654176647473006107941078008922140964137856142431597173209540622278424519232766233454426903337332778020242272381350981356033567596601707036384343390069517577996585497937847662819317315653041829222636864007697938712414460066483240017747210414171508451971073550776225748443598775698605708161294907095655967706984490249468178972242761052742671546567021023350243807365929404988610094188457995495630139930618266753191620172483118696120296660740232379044253934642364626935209517343274604853856957714297096954010621448832266038661662658286845979932350057296611033561507780428866662407371585938353646307722906747053379646381074001386303049066622405255332352483945590442883466535487603535039009998203952397679027673561534826439324443265093633766110616953965118721467037444007017652417904621132653921291409995457403646196727789349812945417322122151782704228224759209266783998501933351729857444473456908660111916818521134813290410515605569692719131620009347345622743410086552251374371069390872291085715095695112322356795317223815847323921003455547004632208944055975049696800648837709230063293144950934365051329657465372393358162913758646270270170927807042303840319260765099191312625796063072308911420762494302865724940039900985139007244787188585884526691012748084699376235115394889272222142112618682066869800235090672728709649230548103746253149813279058691109601741011358949705799648554854488070721506461768016382924143971308599000794501879688200242079743788937399568073904841323635572620221865634019196573140236758316430697254623581586213626820174834804125064091470095639152089228683786642597122460430422507266405134983625732066602085637030616280384119272153232020216655111204992715552831578980728424453978609718684842627268928577472567590814830419087903898890627456683920996545024345098767097610293544567145599757128830071782774560790882254674888201134336579902477027974301869137323109670030077394659542440084514919999053707535117874639391351787424514983345745811718039913119864105278152718918133760468638984916392479873046132126383723943801166872942799653960471842329322574372402290222456356010472546434881519366505245642686662930890799437799868583559742023993920868940844644157038913386015296034981240319383802440918151029560871644586408357183450226168571088723182823137734042442538614966779335712801163196390921700934403934286136829745194797449211960640104052778543779965702112862414167705698528099314256093948804022605075294164537477104216738898234893975902058808778601820298959518388838328233956819221703117591675086680490061693845220888137367976561534822860451020201475404536230425978887732139024229901452881835804504777728051990306568782560403652451510892223776735581225817340098707453236462469184811135603580605413336896693016758069101111357636725628412952240530050841947823077618240409129805079355180642242478851043200895887396946877476937093410980467293190482376193670295814816125978603334402074856087161325042321720482517191123903296911160785599729059542377435152746302710310484932426638549854272800633852924087851765486284070759985436830145940928045124213024557092400879546844956376395618426316659307956199109802651640770316297219667017923078328028817067555178467460832633709366589840446401895457349792166310832061354366980391712862313150698536825092467298175828285879498477296364253408914539147487184764556646906098426663391528078751387807035833571842970354256558172488671730231479026745605317799261952249376527222152398084875500509334850162236484336033237629956440116160471139210273280514697699459590394945403160378106816945379946955630464864293575645694727305076191548313636881218706305233492498849726972729915232716914810322741638676894459281675566725549186379632463623399038580186067918610205022381401684486286106108663082899703817671957510353761044244323894022989339470115064196586107608090251215982580860075219880152501143791644608291207837421069698107433252164626612721708978368585689724987728576226181079061091814578547078258262359137543762576064314056451170003620952234302298683852711539964496418999938659837784580961026423693310848438507253272212706416499812504026887953973202028390062948252731827565057926373501534878527584206139592071957154279260860633878326730012188753933926756094935055343947148073832690239180328978807972871649181099155361028432700021810744132302522412755406043621359555649602020841109851083921315027035355983954711315876327587101329580412476312214312825047581738973547070299902800717213542269038961663469577123394992349408675076294424298993858491855192805323751202766370170603511200112036642318386867575662064208750275347374447686473807734482585565931259389328098467065177898148564251392712188617131473697439878254227880086789002948180314622360628160541401225708756921327722609325652882344517951972566932650299993122265841925633140900172905091404847172515188917977717899350021336079406731020693099000291500588693288376592509475622115032153500896934673968153557293970869669692114410852854281393255302824171812116609840537302946325614690717717531610499892032632569335362254269619718797866462972583251613786741399060698177939521588437904521634417743863597484873395431347267551120279364739385669701935725806669029466736642772943126587458888887866340987769231642101680727944609846759214358714615201825860391261931547433153163365471331402853508470977241961946558886483274174499497787731860611701171708463342306936216679199193506763493335636012918013553683209430027325695583432326793774089431680657800886929541216418436871757321954442839048606315975282391460124545261759687844573512105760379705406496815423762357201363758228508742821580824557797688544602490200239926551630532819245165426472603948939966534213699958995649390379916234683341385323196388395710678618376053215762319439468632094737269118504855740829003891426557364354904493091296778216620435701137296292328970512621157229600022258673938046105912530130874387620352436795775970987174541071198755596347169073961193771213052718984113142311501559868526917900995852052612657232486279100936516412420800032331468921031956865270003709975233991863447683458177252155219459672558639350666615663072119212228442148250238072980017519299280450657910399208933529954442932142610990985972844306624300039195377134265835565714579420299934450066886150479017445738429393302294057947266909785230609536557480618567204290106931593530539240236393949883303969459110885155950845678714484340611797408318531030969528312820346774795508907904465807145404931452760215555742909678013385477792348506073737816447316003808943793321948387261574418738707298768770375378700018284130917092145603139789835979675621058881162488674187590848364282677541993837309018025523970937050812154909797263291338202994757879727198382160222958584432012327203320494475709237071626566411275243729218874679717374778148375609831507971415302806238817399874510191846482956876326243386512182774184872771296174654743376938243472536845503507725558856318439419238861992696124201729550408485739656185234133884076254204276178798585492660253057659377754716224587250665203046774899261837581173025510723185859875141317689934194317337827258689118753571262974111526600417261926319691869293416997820052780079248212245716260786012731119426260741337605733787906015125499097661865563913213912729925511585359238665740100498423366084132898868450325772278732130027782522208036562455661516272150258051088307712467133901815780383107138982293530757068249153117022106876774664244129652830743931725211154858736584616812141209227578653708332410446325582295001626892485901888774390003223220086466349146391690784491468809721363103437569681019329320640360162778078716229425214596609489039486513467054429605850587103047407620650369961498563033848030710320342464757097075767023704796431949004229791379812674285480723689840528379535066720197380045712828760326340286148837182109466348475431999033436329793660324120264865601180577944237318004332704682886439172266894686159970397334819012583574643795999039807481969495077680208049123171438221258093022988397600368861060645481726543757181917021482217518971410666872313229493194990878049311000393489094560151089992120119535002508501616468979130200589787831020525386860683516896512117106279179223982476633211954822286516457150085516606388781381511831347904434114847172886986235102130701119733836459386643530771668522530674865335436566767540501673954321057333914699288241686661968606526566317048996613974930281063613813886074689611696109193652061672526397767521079221007472745019651240707830096751435001879511962211557654108221994932588992239066509524854403477775576836828869285333134299040117940887817151554605536686231321017501075930419575219204890448182442436517730937136522798645984891777490973339185799496506513335736464091162960815788252655490930476396732795158679251555574073365467241441510403635688930646763440473990068650129473173358430331417270230238128676401380145882271600250184689926159538885420376471775870220120291085580029529786432738634565809025667570108280631877286299833626327451249948428199833782387624622394116328369092973338852461281870602202043344531198570441865485859642790953622663770223720575165123507974283275211533605279886224480974734757475980196188685244287459836449142389651846497757718248552328471282270093355592692225275618827912258999225219643623247042965165517318237911564075705324241553953504078518116639091730041585288111697786773042205716233574244376299097428253397734897260617074812492796077600505468666377273789942910957215119165856570656654075074164947727349301986796736557918631401963158963105468317658792844040986783800864948208532845607803243834517753842902685969279189451139891403542409642120042346029267529991540072665217701312580244834371137358052242317271117532935452524137188848410424666488875834040434653164015255459737373895836225716116001594712779554783957716706196897101319993153510091231035381117277454477301958602211261756600343144109982397516040850173354303346641851526964205538284491620306806154989608767835379477823895716138855531588022951856974700576026783995038395153665876508997483582490903689534085846232178861975402863873908182241986351435783727473914323356193055603528102144447844356535568580523455751992531115934398623244155877939757277326206578957294383448634217292801189505916215753854764893324956846696656867584221501686696993387881750150403610995872652259415334143863632941787077591497661553267611390388162610134486993442808593267811367029050707474917916934091366526354209747266522137419258634225515106097312871231937835391466872764801764320160664646126221835956961517028028941215361069324837617865805232846567212430615953127474372044057720277707751127499173317957863596200702202651218520638593845446137297940006324151958558131358885331014430246474668344729014255655550243777016561742305225023379082819672626468194734127564992395906454045343664367915809463114700930360252559364688736727134941344764309799628413106790419417882999304904136933009356982011288445806998880203373865457619669491382158131865908170136000783134032022111275594550162859711700113591430635638364877733127156633524491484657463903104078513961989038921411970277199788004181695935159759721369033570740851071888228589526932769310959318157879685265046120115110736658602545628153561387028607369404263317606219658713459183811612707401653837030560530548929608212452819150261888217786393073925541546591034469346620504211298928344009280337205473502641957019324436585396426164331542012224459167044965727099835281012253637492787189904229104958784131187908511697728611095698666655383039039654549145713920665218710361959766960031833269633536773581758766806227887783469670633539225446964255765653793706744047534348698910476178837326239217998088089100245920857615923070641132222815426483993587314091411529566768401299526060241616363616115281564555850678234896323943383784066832183929493765390306655041406260471637652064444291824359405232482875014794981554428899853327975607497389998912166597279296845842203976611487819800805105766982247354254953610283227630416451054608474796492989504355109447931104412262877962432044647157690968042444149238103015954209534025896326590190581482956959164556096484707518369010641766494452950292928356511335784604001812598744994646072748365679437505507809717515658302864789234877200673540363952536152014648899764848851329353902875625691995732168677660151372121653751918680255039133723061870953183571273531652521232029174879436623123757745298562141989961491408577744030154859953109957855383016258263550325574812784832357446550857934799630289849810318464169581832080082314567973769819402487688764691475583153877720315279805197491776150767399305227359164885997082057285238946724543040682867906227518139614357401317853942023265115296605344203354078989631459943722794061278481639062838581815338695221135272962630304972964276094680908432106468054287503281857964586383004709668218340539863329204848351142814803135510331244358692854503881897709370313033422541380157046046534558608431071343642918213817104523690955551538806988963839336689679910423193562902614998366620909821428466651208380069975596887911665964137584916254418414165949067813652742590422164865206889321644552665123027712460301409299477043690458897514489134268501169894797216608672856237559159707269904526363073208716796735805777052661393963022607826528442493026887713172430108414724256578987414973328019239259984248572006540723558271814105244492154873590967436158076648039806820454930265508682331180827584325808656754756390856741589988283033782020252015643519371033347761406334750266262062064164862745532819231233041671380953293692682695193747643615890223068488514030615163499614383794532240666139178551151313146085990209018948337417520534968585501974725865629062551344047871466513128526052469150349597275740076161761453941451516570888812615862430311887734417578477542311752332633182288777866541619571042882275025456288672499906794799313089827772883663020362814175454109823619105702076765020618267126256254911564619701259893568390988002823145551695653958746104910454089511807811397243311561897882185405355553044678342135854341786944476554271695267180250837690773407883110327684365249610395976017814463037347993110426266608971029416859948951882218355105172480052997651511258499913061615285401706175763607643938935885640613892917670304931632098450057686049417725408923696922869634474082640894421531048650766871100991889585575533790414109328062521273132775452806252496564028529345830648325393158065118863946670958739079299037607416468616889769287509399984452467917668059830134905419764120825682394738558879288862602805633551557873031211479179541228683339392862912772152108719593303493178142302852768558169024405843438111314794823555389266113446582669364953636443634061329890582833982331295628987252943585538895144720281284495866588109790896737081583036137675561486950059105317898466227747767285026256922546828635419335250040318509120076237831679803147817999833437328026478782563260157031358243000876904760949354474158418240502629023487596678728006094331726429831809329026990490129462794278178669522948088342687816017695804877350616066204093548348345614690244266468770737300968908492125804688628016268118186567542783589934307576602541973155865473894256026945107336846727670980116215397748060868257441228842504811763105893565313653101539938165296625301724665873603843622765198444571922585843614664050996076554114833168091160282285302379412326272159054451940646725584688508904389962054616358258681806509027617161363466240094335359830908233262559018200604639257775381679436207677543841470680877587044587118626348767841357955311750726886284187665746877394072654865781131152667649832154224484550258741725180452503166981955105561151713103387719841089916952215142697967416231709419188357797359930270480848630688606276382330405905956144334872505829253970542090694440757313445729280538143159946260436970781341737102328813600464151479185427745047029663047122621247214901590393414052494534015230525958578655187961708434956571406663124533119386131781569777751056881654766173947817357265714149667527728360445677333729899197482784226185479977843246771270129396272054535096554952377568553959757591371863005802136668075678505912743990351477565599622411359121343348584626292979268729245397128075681997819699226347900418777152780103405452285779486197660462827351059197175555965332209869625681747160350834449067683565621139237102833111175071841018907740776581187167437849809185585799524779430757853319027487573656865051544229649841751990205837444936911779249017490941602847860461512793149825746617868758123279711652391857049778509826327977768049386563050656086436631652591815045555123526438408433072343107659919617035432205841256194660247018987087222110612685118303814812683985127871021753496478149757772952376376489471259966541482200220847387402404023899955570480633790746063347470367660702429936053265011114605373877560049972420348050757759294869967217428993055338956550756192119243787217266519662710968863223369294910107362487737332600765633358384957744056576788192975040224399438816324024678705591029140678050687962321512626597510406353131222068422574249249779766251853306192621023379542534149894476471384088894478602586216977492546227993205853517770737080417007980764693280990457915487375806215622706138183816412097387081694385217847433077137183183182092815364248883741110176456232567923094738018271813886560844821543347493442407247164955370938864348058215426254711516795292748792753215296884170241823983492087608457415921013039844051399548280577178343244089891957913202257218897332344676849037943669697197195439275950712918569089514735126866944555985134799230612592338296796340794121284686306068597686873503465357751931379420729621923904402946851061000836313887710768586063134426362880430628923140294461181351146185072204890578495227894057954535484949380140990739718191202511137765410634523831037254271884741775381605652156109666512583862286761534320300188073547275294206209538497512044726457056157220872512184076658154780520493697116731050945646221709212999180617434367448681257404276212044888643070958494199743560087147750145973507111088497990746124424337479110359002966301041980432151242450348448608058593504483175642341063520824226193135365421260091639367069103566713103919306084223658489781578507812153014099570466115708215508696014933042226095319356296749566049342929953890830413863911550373320170606330207700334131069800175106446927878562454234453211683065931006957732628826714823910942228939193834047665119079627505922337433200464102202708138911502249982184803141332669225812455867431013202739002665570048152577710013920225322098531999042016953385159178739947562575714636182456727483314526767408241507144324137536350568154980698285734589928028620308900845441554799508989528230883886858575539896647269483203691671280488241434593902910015440911322868904842500231403887401935034095928742114217402922995953734287229522756861154939973175093572771250194082594918612411261576033673759549359002007965391505386556289955472634621414902253552124181246197236014210297290774443033568238033862228236646902806526768688130162959406589034546003631606097614474501527963146396678356400302710806904657545292128941829679602617643013398202426905801575578581580844617327410455333995296368938145480384785555770503716170428781408828226093170808967344993509021471848865178070452573097975637203574410420162777617684984112688743790718406624503903931668379302346907605422481406627604421462210202990928530537565956235917267858446987284565992455663335840043170652286744478674937049601926300834055299158401983923073275198324189941658593402083963355807332366819775450783872060048929986839774351287675002351473206738071787474559088864052573372179827150632977646775459001586968090152572397246304473889383794580374990989473560519682507190851627031261312309711842158169861937637694351316452942546233851846156281863803599030793763462289947705958202738552143838683401083307721299024952099314853061463520010682598504003256033625723478588013384856028649059702500926173797054419146458782534653521001232706169241373371879649089682830460819151004300891058971239453257322661676078292241606751121897983610406493248353091237906658386845621609665443293359768406324786785097634906098643922275904818493100151889451412573601821404349347087815960206550221956552104332440683725604796221512927766127287277072408368797303123958947888987569660868222655418093109510852994634786135882181012642805891119526292013821375684500749333656927531044653357071142682949161966035835601114712089940004226474477142613166525294658552279317207806458261376773880737493186243115217176421381258617780466244343440368332112213856459858257250810954925567136723929064784603534712972940658728505640886543376610848098504455719013578446897493359259968932121073408067629665049021922282084454449752679837818618538450749534655103898705114021137447295765118174126907434468579832226540053191647076084059582389472517699674301939666879616336578913215433272792602293300806732944527199693151373295339341885449908397004850334569112511396548335154446559618854284534429458025162360691281169186907350039489383645334667515450401171828138846471474168748020412672738033639188860869806059029649887610131608595716163865885383442201545872451955044105436426127911268532207758812891778727617072553178711032676362342613486440113719297975338780160911533931358793970716308615582137781912725014384787947827349631372263968514307797423362299230496891065268006985840897819925518162347317645689900061928342150191087270454486240475597986457564211105845325358207634462142739123063013895455584463175870195735643121242574959693944038386411770853488730525808014601228695062413672757903236821025136308739457314103953841458183972624236077336692005884925301427484889129345040536309034447826651456710191615493329782564722376710432772715800791305272299679368504199021418876851311580007348094483825579272039179101201740959242040126706652937652063321949663475767519345622415704692190140119770690468633055112637202526861549032563993664900894155216694673451220593574408210982586305289194346448359155513356277027409268391759392846444979772726912051317754713624099094671070841261811300171281422066307579579808189771881590970327789765149907019682753280258366492797744725048175025796453709453359048506991368076902883558782210359232661117340170608049546840294366624923405943706134810970440098415191050518111712082122304612907252210544521590010524686974525745399002101879306995177146476592161500285013920870560090645954908008633920042899197553968734350534138305890132734219623330822803451256282984306800940268459621569908550104749806807299259331177321774686343273164705085240200913580921463626856512830141957783862461355934906728080300857698961630761574384273750187105440863558955900757414111860000710771166181045838394040118594918120939050777324086439792446094468246841899636023594971436317540858175231713616225330931275325228852665277070650523114687512466948953238153323017611802569157215400631294917047909756030838194005606365206706881149447870434401294307819583985529656246839518605039477284393017552305117951585236902340443801051695132446627146521352067693791387226992496315687814552292830548306007702001454950483062912040098439642187670061747543698888914066180168620056424345935158916621814594478459687046022091886936355156522679050325937132305363122118809989242698314636627993403682488764453681058946825983851213640306153182735870729505013862854510726354053115167838943540832344256766565862668743405910576835458290606349611860216739136106959779627727967613057855932498773762672079109648097070838651107708432306067785145156935212160221380375432223785927114187171789096151751700069752278800336841757390268960233206725803688034090957540403286320713427247334571442941157653920350030128967465886984257474630978726653834307785185751490043045005247383351157476841981416994387768995941697740610119504834352666688401116286133888538789246480197245578661223614801733088354689736434472694292277513465454503324083411323911084341336930963945792753625929923870047523540581772010886475725771357900919236223029407937348674930985509657655721704056027785699414420334777029731672276173378202279402757969268848364086713201659447760159283748908291722594852715833160338244565695866597407313211331966358327662015367560610589378088759727561381913378386473931633239217201966679069460569593622733019374181420966715359498422586231008606705904390760270673062343015001619557955733981583645051178439909637578342109129592195809251607879064433809467947635992712204225115977957571176278555062869649066796648046468745261185237989829943292057182246089584665508734085138764182414567021474762386934470554265103314742286789357141594788729659386961463665848991700188036544927811204251137270704077481799813335693757457281286927072074061713522799272350081307550814046784457208720321210209194188335225026329751931829885783654365667837679482881496447632063022201543942551777443063455562707733886119035771996859392708496373181449526541438112287968246900023339206077222769887647806961841525965903762933559191935261800735207909948143922280809464558706104589090494974742281288132465590702911654063752943844402117959947290197802041270014969585300553438121680622575005065264583228724484843364985659218681748260974791850797640048175024000811711413414664266991254157152285901660557528805559142980464489641858141875806990685042358130095981161723270014612820337177467706903078970562151340682696156525994281379587049223453871317716528457022373668649482336192950694376443866293010069131444307602602104674654778119324703571660162587537598684851585566984587494205968717176366536420530135242445707224143905405707343307580781385537948352611823509660406698818824227563016243868621773051234587618475492429718436397009747218438724340578469857003631375571213240032048408191259573929708085118219457974487069303122372462090518548569737489826539309533346001582035853907545913710947515877760743153519132195706789256230731295204588402964764518763682857812269966409648969764951922497133694785032990493954991092165624743643440985541797870925502194934286789467571574366429775086190869096172285826380598630204337348606563085772094090359793439663991279954402409464106121553544572500511940028502182113741646070435528521139687837521672069707689040811859424228349057142305409637060936504029905793328326579482919641119318629165061248707922766673324072539061857500392994701067299790053193689510822312250310479965056220399008881529069352857679266289202395969601793287157298673580201750911543538862520327019977670069868917293639193921793744600830178285996544158620001330690116196856080143112107181866353591526505601473005534676288364563853402714303174801143951393591384378276233172732724059342558757134600932699633021855908016186489402862429595968944122749070870956879170118704385202099131896052398411022616928546762608658083238962334524211402032342484690450832993920463955408457180874252451085745770344038424842974131068213307960601879302345881016640364657909637292163175053810713982692709180636875241220395021986174905205467950468778656930427636304156189004733252734780967576916875195597942493786994827780484683919434140570458241826104426852957776142805548756006128099875475235810460781263028153832815178012052236600767567964787746136298257368279657587526478345018178990404890345073575514626214176690196068417827211434254289357063167185695479895167954541459495292333156249846925208813931062601010370781011312251200816254140085484745845230820099409244970330476200507497349371657744503892482190540519348578651369797924859536700944161179267817138927248846601498215032647196410735380838248428831130355831208008349254378665033670348830667332549251605518984057587132492157196968424632666387218204339918025985109260369055033405501424809808164833941380567439085830832247742175499273104365055699467207638496001394617599020664800623802589233166958759646507099997126250710381603594604428684357824822264204625294003296647437961866933483222157658425011122604860358175420295434020088327274093821017396012279745460634455853012827817571657341991486804269701587542119143633583076463303645116528636269939700593703130301087215475836155389358248260617682371780711693952999042237479869618709314511763609574860433288013566140246231981887884024465733578407709828311671831413002521797306328028983442022544695975111129508221678656789501960356099466470800147532006343576183903512084616512277542920857400540966439089143470704353168086785764636023701420821339532077071961768073290398993483545483340099611490684402897841591589116449379563645530846893197468877429356537101956135680123230974750414369531951953244159145951275877530614934427722038731586741061327725140900471995442289873757381873721643373969267635543702495916086297485200965048202041245057603540750695905112886818686103523126587179050168652898533118239951082703338374069192089333153751992284686804824058145995120570832114795013892452581742743251027770449074295940177095285615556332675965919209436535403751368467326165362139816253720439126698465939924480495217754762823571127515554164808809752741238765941931741046224555156137126703179579299968311103466460259076286326143435463481781764630961848056112341976589636617756250047500511167348052033219131643693791610990433667182220112172724426611539391962545996353936929661309459204300069319588483476616498988801328742336462502333775135723608691085281016765267480360881551695430176399966616926451229256468725952895781671213049634863889526821028766194548646961394093037045909454713934059170366940730977985749806733906992214970805376503870222982868088519070375306713184698893263301097322187980633168477796535195119006756746366037056765907085100040552271280976623811766979958846716541767197340161662658739305985171414309094047725420416593235724527784305760389766524350308362318672569532357767363251593316302888419126535583977488732076722832356346204584850479622150434796573649202551521842301861131172650080088964003719308662849774517262976399695640823551407824331933221188182932181917990721886506980265079682797177211361742072348151963533550676741902963612552537370631108583717318534285320080204162171766819249402812014318289470158026712922842267839984763467468624520311724528949809803948133443097902677305722558287929510600626169509459054948838033580471695581761662012151035969146206335181806327620301091638398576148791112859923566045357360691964331335954258879302724319238196463230001246744417374155887443504637389167208190778530116508069518012579636869379632397660483380722638513735768326936016837402635164627657662903229801158527209933077872997366886530671187936571937121777343869588703593447885067771490489130385493573993990121264368997494000532771317771311556707741305736764614193055682352612589538648416985258236870071664355002567083988395760815134839697672461715048420082773946944084627403564793363883451133208909848683742666307200916933294638326179180091022206574090160786219743063638932733838568441400223400045222921620742542030294055371231986978955645788662717195484526663182670071173984808855920742119006946705323418186401986110488879044858654944740498987926847289406656372437400615731196704979209751037506783498481696511277181541315266718457923883323151652185355662173896133105342033516088957728240519350356253253484159152123428474137707168362860460835891525467648084763464582063728409634706621357309237307333707628793699847120602411017533780849479049262448290413939042603351512434416168425107792102474876193631456481249445930639701303634529729859414741424313893470875868821571171742374254690157616666843395630122752497780581007109597780145242270405877287362701828650461892297872832540045686023388079441252514147666200879832600616487671459741464268120009818609749580866649322718609991303012329409126708194211243230824576567895832570061660257740341081459976597321349047138149070245535615692063570192590078741741368745215288459866155385745018161354470557438377381255994101611649379126273002883531422716662989027973684185580905024036314270598131223451143281478916996542754878313294736750905214557793136059245227375858270779542897725904935250436516188359308616226461589931107838969354979355598600141380342234350577369458634052281583051806852793363001935712588930482139912247026668110171436157862462661032911168973958549376748247259518693164023772833059619451605832042885131362854132482123224735266666890230421513308489863834599890516461548233948260292931057615349822535985160877745615538330786075857890635849513905060333629063404273989264848634550107549963094184490940873065870589448575252649201699790857610916513736715062739545330662887614762730483182209313812873407576143232802568559447244500440520543999369829461100160085454967915049973227097624539266586790669361427097772641855905309117887430491375351512775795700775118263547745288010665854109339508319843919714273043559739810483385855128031099414668881873197546826633980899058743559383750410687415481132776444367142287647839119908511305319815537636381165827235723091662978141192683559990187239881097581960431125526082587712490414671358701095412426942409474201152273450996806333076779653395993897010370835267595055331619508584240817761463127237091681149784193340304254198246983135615590600871849585843770895576866340472516158764308232441685080111692133215320863713298430674600218366498236399731887014643137857354188890160572841416820219645518616376161795061093135624484157597573222937713100231705677622818556812679710333147444146851044675223659902736211328451668418200286885131033378393897188134450517673253329594216724672490162539279556836445302021678346107368611470958859689620949315699818132201801206125316629564707801189886689283504754160260942421612143954641647915799707712792048601473324073931106652070101582417594018401214915200234864761366486022372869360326189452109964584098073871090693280575748418636025442888717651493698105496783718510853433829965978833650096644509696575841312757214081162946517234607985643711312654717702936377427424335722744023839740898582980364701336705420786351699468649904175535846334395322525753050913765146615730710857695210661455111567780265735402508979856358758308892269481524007663823966844077979826659081523577848613394554451153590971869424617903466095955129288429495030751732245690516874522726144445484483883729581086775004651051469927824003832671406728675840387439108527878300739149256867679255567538483678244502728499265848662469416649474180792341540856426441739710227934816381616297070112432934624268575638783002225313473051714025835472613524877680734178143674590775066846365656868240139948897603228629280886497030503778823713088768704549631635058642311841789464572125754314870522806985290427005750069824880424538250440876962931282392053135500363841284635222478074955247360076265334609757684130861885333824858723382853365911724806927554124027997924853817721794270286833724209841618380774508529181975478488602756194786649787463717563307810787395273719118088509249565540143821936570725303475163709023718508249155573925656496332704630247836879965754616369769548059453986165003881657783359932431208780279112969241098085279932842748948501897380348234547272489859700994911254182252909131250122140294325653683205159593064652737180343704071069402518277875134406985507303938220793048796774879026741738290846501617556704536961563988154571117578613622191405837567406928190008404667183987569342554280123662713437446436626321478066335044410797614275158382055524623475198358096325249948354436978225178252443927622150983737366493478940699465781076280161078113835020713085027167678214779547028074715360630126219797036250999034693492905317525339856413282284190131258466190302685172154662905298196557365025663610269478016144586377749167879060994190639596029817039215413467874926770036187207349457769708599823348489856406824917797087500499656633662271224056046623191627520626774064564139821066101638261410148105537140102718596036623174050688633181559933188539996054389621582790612186332776202337143145557600313666118283374940668167955482808298588322731813249528790536889579212571151328605108828739203931170753528879717027526265826274951275221890596885592165375908134291788512047237602979372028641783699889538058428313957965957751849259023019883671503246952918658471154228995282664643032279959629243661865654895115637106460431490938299780352531673897186141108068262902019847656479252277410875025533485654166580353326907940866407696637704395053764225160439007803684547158647716413744088387116635573738956422868309242938717533429824363256273363576511002902105004952584724711618742993713220275649685996989057883688839422159193801424791098402161536298096872536896267040305947246405281109967846456577512389788498086858612606494565315192481249096564340969398903222288554412985060709506702874956872157652451647206570931949855177606775047510334290678211532669125539972800128468905441539112338247548194248504429857120402006040016218318803125674477289426437804424674507397813503220799143530962194294966021394308783526639167401975443662846729085403448779817911971167864322468517307442304394871443612450228597559453744777310409800397347567555179937701573146515183939965169269094369724091010219734263348183488768790301042223307821674392937717675421571188481386048483890737493606855831312187463049751285583656680952897284216846060213524880292672063177950586562340844802650130304600508843046661539413944609665866393555207872676979256900758322027726957154519929302717192669030643004940491612052753108356464517151371056859102409894409289880597684881815934971663276200084415326828726978508636004451739332036190075411955588504690964461121085720402144378755887853201305856593335438934717932642071070860704186835820925064313503543150798246368258804152708320932895525311862557291602183777019882908662483016623281231563715972480589075821036028672567342781517561632572099043497706971632963478095575741040435103188160736641992055037417269646463483454267237548062940556575064527075757909567377824782431744863640835756033379729937546880925579723845235809715145290688951074682990780804116423488537874649326400559888211124124705534020507318380851448150444455521438218090999948556856660218838423365841181696196716599255448402396192505649624427954289959680638525820380409572437762089645402888743362932968436143689011107725920701391991690157655064647276252580574507240220567257443595200002815602622024372461819169731737697119401102079742356637472339370651985814793931570879553460563431572966516106219866181661620420245174164293288309141631826982634051489607336404109978625546673891409434901889153053616338395707375472249242438018389480571724491718629171266588200983840529684809861038226223121389898525821465402590009821523894958956165321663777918928556057994549213533426034288376855561698476670740321752537838540640030644977071768927462041387759872247762471164326670147527315170429455239288608453651004238608059295054940936776894935241102198843152809938477739320656969293395495581219499493829726227752002770791301275159770334162121115670173700162657121660414106535323191182535476886091661858949214567860340879321599866976586353033329745276291210487538971144056719695463532556704391398397233501962140224677624697245408389187483720493912451075153632606678140084987762169467826205454165443678373107336517531729708201563889818420644294745089168207437500999619707452559321621079250548232793877297316304924209063255577965390552731138304901425067688750372679067649801928242362467164783742673159995746750990172046623818698000549785375820146899550301721864754173281051409265895370685520086896005923063323740434067076697065093048454867933285202971396032460935842815245870658960053720109226584921982304921129079771234553616589340285566040447407872661047116592748796096156547186693820137794038581484971968059626514640705828512500403818597238548474575095949677637575095507880239127729562714622176709828859458798607563768779675869630926722365796847790630187841530883910153178503153544301536048739028222794012728442209696783382768682673468436041490694411710943991504956627784692347324849550328838781254432444768427096810366527400936046676900910148574929428006013674709255153560752819699741013050936558679360189083199862046477106570000284803473434135192393705221626826425574625055509245437800588908369876245565631929136686107296114252523433076393207527112274652330268162641689552287526520609105177073090646436266369986000730609846781668069027319536938972136448632750206017445977040906755121246273995484593223304060517553533066497056564429000565074175321827821919130396393778880782491750673237243378494799917603922677183740922019171170665451745668949364519091835678064845390911437271062514051114208290858414261483397214979680994276056711100340000798315167583125108126290043270863344389511873199654471672180403283032184442349147761666022966678337518791523720255846575567531412352478836850997486608766126425486676743079486152787769123046478844186253905254357988361854676930585215925454101304998450932208180147524799876031940647399931869748824448547784765633110098252426756649666952724043937861252097379405005136214186648298673425025351719493613377676330017819966583649875652519387031837855124979347920495348759774094858740759920830017329401080603127792775251124504694500856814765725853935512847343227034345146852715058561842601174760996053712494718945194139791474260982339507282642207442659017700753020617405813485917083204244210531219178645601685433827481736593073764057097637809805852459331025697815050107065035972972471893367696773737637675374603109556228755223087246017242984372988828095275000834129648046019565080575030350655429375226800213734293968291616878910859294480453782808688829944539668896522236524031678489257017566697689519220013472128289516820129790560041093645782855630666726816469979902938221392943765440831593352983881034958904674629774797810380422547249949147602355427398860108651566246787418557116468736181658576570489338512232756138959851051815317582364687383898818372260873560124783632659498384235996931183650478266408846992071464721159513930597265283323168858649290884567200204237640003422757821069528628949967343828819768847279143738599179409988360631552893084212983124561130250872309295409845722159312771001404221900926559002923188057611157260097229706733116725704115594969700512191401802458552312701016626198644751919785533940251043132487068360318883788813380137561185092142135695526234282454566135523482063886767383479146723609291104946251000639578446518789458588676522094778135492528367000645292442913577465919428239098748954998966485449004234228550515882931352270515851106075348415419983669062941509380670874708023056594957956092054502016051557997253504047046783686827717864098042987417501154190039690129944914153422075788905920747415203356764441231512563926505551239066659828033955918084282835927459182379408761887846024174753473714426115718620847368003044305483626785603510494726821801863870294135909248508184144672391465196000338517902265100685571277022196020918352595147652474030288132224548214654042031792326389995554826585078434042785904537024037991013511622829336896974800499583823306936314935761120854915871718902012054587258543351004755566335919661171008598356277571024813514078550658788960546250353030171374440765753568308320627553752120748087546812859660485604085068286048856013993775479485010074845403581750912116788053404895628878021886865960008676413429091324008411529944910882541131526567726496498311968380758783289447160931033246789850917176818021234352414074236978976663098340039775889637869110066017869096689152140752335680488176494967742590017325058549940671301670189630966766502199731736575085549214054393227650271813497046909119738974021672784922433278327178608949948505636702781737234263789698787038795180523580352210811874987256174282309382774164877654293868423629362579204308577056741154135924064231873699448225838616767816503050142341803142183281689793793562519002064689458824503943835587483193388668335108533089179421587960728930385988723395795536962999949776778719868711257414265929583700125103055472160193181235236975029191566195086585592538092759473685491183348764780003994414467774707628043625180750292545919619300395560762478538793560653782674598975898945937052928516816773569440862609714662755848919644569189702967008880098651543310129232147843074815517452694217981997473696398899795722208094386864627691809738143964510019490510364664226257450231704067886988528020134449480358583765448153607721834373351362584108363202231575695516835604605936528266087590093662356843113739130126348121626027568846664786607643060118993940889381298296645682453891986777001116497843311524355873881131084376460228261674096631768197591271409829901694149405141785802319570448529659727539250662797583124805747593978550749440435744409201089463541588203413347048452206810816377033776058082791192727584140127806523950492237606523396318569602356741696159044278357838419247716307471323074500361521669077406576609651205424745080810684177027897122354491193118084936445612889944320802398820057547654098632286291830729885078439428985620753112263470055443525079707764519618659012568335748223977696489521964033363312690151507338837146583242002818992184620355081351404650215166622167394325506325361239889781240240381043191926102117290813371008630203589728106094725486169999744970902484032261502438636265261721930182810912710284421457228828223005962368245008315788047654092051557486042763344519073146618323129063224439206356549407774653949645828795077462823021644704278496486976142536985685470341846080237322731581450856416058960991016626113037378838529207562536200664669987555851066233331592127302397429529522254893585923531899472259553642946144812218534268524018964281612021598431934972598563100927399679647704587463117443704004033681682472756430479903127747718678861414148326193593323776228888938231024954110979925719142253339573140940173033227211789550471670214705473898986267549414955236495316926379742250370225321478800154072516066351180704162693143137301068535517073690779536558204924215928927965053735903063222444625224349343764175538009771230295785043418320717010521311903365430964664019659090614456377969249252229680431431075820106320989034988387101521434707388696928764747695743808221670610001305475373709234059352657026143127408298234151308312072588663509163035848227148386142629481094938961376519084275007889856215653105946730512911615036980957680826893473354687918517177372466662305386276422596622166111137305207089791982087488608162049281992263315114339131014069561420426831302480970420896995066148058402197033789964455210965656602017819065561324757813078524439228123179991102100875013246161322749529531072531540007595072595857331485981052041951558141244543211015472024663866939542479179214760277201202050685097501050839029817485614700416719282830932001604629347125687009378337124628563515714091080781914808920082388484037200018530969059469779923026890159391175866275645385096301469485388068122673336019892278799150977035345822697327367321817723249183960366315849996503267678587708075539107258813983683509183041220944278812074966759121034033219777945061366711469096180563979159578209996797756097988438466976492631034956829421797080404547537347407733261373036468446209624746284326949413490974717274287680542102301643021082218861202946626210473611915212926424242449236418582985260002604796903713187260440289902240985830567011809137690279783506913523517185184723013459512235710353074919523635054918999357535835327695127986234099762925006084261691976300421896025930415181708691171779992905811380018764063142916190203135655507191523465560238226009005582040859282536209914777830556916039277459057970868148444708991436309035609205556242912044817485070971763165035437779313753248458897998826551814893417974330696077377126303609973892723509504879808759260590580201162444809790634065044247030368288327636288156008797932315983959621487267094300142094587491128838430465774985813342831935783793948555848588393227383512003825367556885918755833789282154035416626965098822069486872595065400620168317452313982050236100335811680390910242608427772308862401936876974593285095382476728507032119796888540695057225582050551773231531974913668532382968212943642964024875553059353579231539816185848103136774981545531152749889856700034989658492940276491339494253759840379721756652665350039398422038916809252547457557136145422322074561130050039747669690156874299377428478481043186800017447974490296191124686582119037501371204076006550612527657378743607944759001046670201965798927946156010342281103727840697152743319421956577391869717284511705134882785289187575912271541522797128696809273794503568371689988021380689118482341585982230725011301458146002126295366449809541222469656561865938142543058515935454069659480314571296887033501762577238213762074157229523135762015163676347717287544448490773961527653405283225845550715150881187971586926597139629458749105821420727753176174079147260808479732114706278748707813417168633926138730058722412923460943612132647586915229710121315777806041440717718299399694207531312174802832125242903807176910691648023031212376093001305178476235814046755902210213746360460262757012682637138945476021746678445253255146796207257072806524205314317384490192644475777075963693298230524813082599957482829975269623756581032004433421379558720388986828505423540194333169049958899267100953101070076797612716933692531670455285042977173867210821440038018176002367270118625326862400641427976032903389651804707238069011875559410682909534744758705865261060470551538972572653948161216176941497098496131601059662418178912248625378408978701228204273100060706215788091406023316662508828790682441026151485927908506555362464281889881819262349332098847067392086247969628134722928246332636444647821923298212537125912223873722758187704874102054738521258955172892273565347159653280057162444879722116983877307210127676358963716754379710106192502234998857792308400321849856416442751764425966432370285293089359368939198796189797996320922744470782046580875102723753371500964425514716873148645814221558371675641612688082383501230130395501124715208632721369093546720572656495859132600002189314804325258719354414710584311065068404520358849093429966640503970809044081547203846124515667423091278860346545786902631742515359339031122958832658894378498236440285520204140683691048098167760861545832408717778672248364757815667384559474776829709941791850195612510849531341123261692237101930472104581457792117747770893094113500833297907735698442417338388043567147288870881342704359909187341834457343679065019553876633325644998275531804237283793512236527976036964601374796296351218824744763648353381732396211065433136115947973388636579116299005235939421077602955441188834188249845759153170018110400011290447236538042120205201164232619684632369538459735097226130435486596710365570044305987102903144983958876509282448859694039030295752100988177876942772084139497277126804420195383157937041364757835284376089305463293065668775372659342904273486235907347384478114847727676230675936480376536095545652792634998777121289094786563478581629345969729191616448173189660750858627588319678737535284301183613296706394104805483150878560826934708327657667339439460951943828391500591500001611305324593047375146511170959613475712308645543064256409124722553740877307562853745420746552061181969159524303278705749933539097237621338380323545963338616965157797511935542194329293259927050949532524909516387784834722041072691556709314571561287648506013064917288133642458652214102839406410156529831077764075814848762954175570685605232555340982076864417939202260908902510167268337913941428928131991719935513658390839796831097724531677684979407997035185328861757922259051044916318455905778690626385710163498413288670120488760877592219906726487356652649266637748377702530766397716335198667946235917745017222747776874167661936631715901281098069158055365279467877400722867486694083921764792824612567585624634322765606154720043513496048657386057465264450203531330605649266804569824783272634431574928791431388412567337669498735232604799844880824177664800923224991066656309173084848306282749030724355409200090010256026968897287073807356171535086556307415966326836975961515337264962485171260909440816028014090183533560947242311176462082124623209330901952000651306532949474680972542000727303087125258535389123606702477480751998329387356738443576918964541836246830527897053756773971216557104587649630878289166593257240350936702605750026066436135956603966376599192420217653367811134957539663823241917098374408025489993261106727132917524357867143029824421769365297587619918696502898561675454101720092936631117410539255761732578255034169030692989793678247909030098544286205722834321937254245020193558837874570021294299027632361936188075429678024033350923564741206095722395250446968289357440549708663890775353090114162457551583916122263714903796045694473010758898984396239969398149202279280126821856369564149136542865914881792728989587734958627277182699957012622630635197689091003978463447397361176610083297022711040111636367122667360935409558970236015746197251698664184877297218036640092092812012776527315296559736016185980770869929236538048422375081640546807781725668836080494893479252077260475828443079165092371607054168549409482773153397408799440167803264305847754126055386058659198260435294383477705134498103648569538863492379877537083621922743093282497293744828255353716898934916036742301007210149754347279995175091739047059705373894866752499780376273202461965583874358029248031864208212878944780187510875392425712766620022579515208834784331771281089318799083495314646295575444749005989462060575857334042101270736138919836874055981469032762887257358936315271116326081595108570689046857076619642088169781232800440362835777693196256270756020122020954289554588279287611788973897318197317510101578030838893720501771588232497312156060916512284093273005499024762392807514099283783940619421821282308514929659937886979539352419059010712600027963806925078222475371349321396261119290032591246335056865656022849730624794034979247882856030885343145036895114447981509303126488220328348688710374152345492546916758567796615361269123642796829159788446482070086542961314146727032988883454716713152624016283293961509866519912964346905275655332508371412385089826621263281189581392039469716751703537870448726339328133311437857240085381070160079331840309164507743328041202902131586402970030978531700000908541428757910290029298668020094666922204575216598164274353278694535726779637117306339759155758262730433812047793085556715589410338083624679282101628933971790923377473838854946533082003348268498522919155772859991780497181306932164874435193956008136327977477595167429532822343226081343857871104685967856857264293985123970878906924873668250455995644968260299592397478196830299934917568500426969703563534767593075576368202087578676784413732314881228569270476233647739387133901983911863694105359908961985901911219311115212131866749969773170171023827540930027282787185100549433709354581934536812139899788501982119594413714179950673346407652456052269562331020030359360490348894740776223437770754290708145585085287254481447719024942168608461690785818500475492723181326622542460102266663655010012395642337067942847585301619886257450012270778542880216432488016913988114019700233971749474399766743180192646782002610551684619064524095828840820633585044311425758986317565262744123005755987033001066682197667043648980779764561935524079346107601904030712136417263071793392812728967524875960352318583281824305921463914745044246715538893456880466466753351957816182991140451713131664438467036091385496963593596620571659576780494390722294108894731516060332910793146929305985686042845080343566659692235421608906840489220991340306291608465912427479990420364920967410507540141839493233159935904330575700726038848892927137907168552694055104583058324196252529526993462627898715227126192832624988997918415071542430332604687145900195288205133922909346972637869887165288482285170062421739427338892323164042620774318143315400417282399458996022716238293523725621006435887370753216404316641442989014430286353134032777403091368864867522610788087254856887245031614679285801367916936754585512308314109532599760818658437605076652328499241264555675475660438253568383463548542485614285827079816664990323006680335720138619875319482163317475118637809614924610367211353103940104298143809320134882484949316569251989097847566706535597341600643368536404624686453550351826003660957775445334012286933953954246094037144442579716881672251729243513410567406871485374601700372540625132005588480506166706076771400940172755443265030988351501082274085141328966114271437533467987209760467601128405141809725966707696300575665494730413337218978104363879432603212601124661261778742802493748835856456895943808621020272794959277795818858507769426305869530444667467603135732951077257663711348758929257675202018845360725500255923127370793967187806753954280518472388444724351517206418964673978487174397070676883169719846653718983377757174077593131131586746357673515306422096940282323907213525166571769049811812370675313578059567282980701614926762063612448507939128954621696886907124484943702285763146253250369941574443395321205089845245678173165321041592292820537827039697537354906691011252230387900613666628923756583227796297547895568879725666631742340168862789212401801236022389054107471590677166357127443605022306401219569045902126979979309541011580213919547182863571167601038156571626218684589637183099578585179422275344391813120833125422705703190107047901925651545689025049148951290378169369533183461006491272551706826487570537093997769871505988990519467828376116560685414397522824251952801515713296979998083187699924065455758690837188899016848004079281983053322395773418344924166314381463829458829234036125003409353414212356159275001782254484450294152247472704029575933610186648950554656780447915080032918055318215370467832494734134118708394411539410007394851864129213208724547506804382265307660339293200633337141531204140575122690211265485186291667515601710804751505103752563371067020935417928999556829025953123066214082460240291560809032908920192719147180769911242727715427729031452638168414069213423047332036985527116430289102283929007251291919437393576841122660975005449305866831912885769603475877217476765830550354378534385375332029272332687246176667015789577255197242251527219141345188385316009558197940218175572005072617498500866908359675934071426055833157566040756593559866653175270743848268506363124416198089505902862768122003641073194339986135957981325526751248094614514007410647310984268377396467724517282666473526220748289198985770244382117590879090561182163931092692727632076885504650738606681205435446660728777161236616725988076292970404012816256665386692891008312828556802217681726942308849833407652232575363209020009785696312900118848261890067215281314378358622483599900086986655372752001414308698543008969610717084566609775618811777161142273617925099543350673918912629275678880039172244296594518446333084374481885588922020826687516685280144665143653909774395354464189443642293908451958841465477595837608138697610489408674742013355915643754281809137643228159095734862577182640120905721420379552458821294200149531293500435142451452461683296714263713694216948782930715119893108875161091382063883896148886002515895113362756750642877970161465508079370524286834385399841906032844920686998548670877970431248672870093813753753957034788092631662844443309077800259068066287518224996058935908410757438223887578924346495153534606840668341115519159861256998822220867954994095879847573024316027421149198203789280575431133268655254782404479765467944373843354108932668630896389465137109133296713831063453463449597479022756816347063240310237105202315596828049484415957538458646137143908421515123987706890310705944001091692716037884666535933223485059697412717406257354765126138360325326799502212011938247514243216417256958261750121629018314703645194789225890135551598167792187638576453827463195561192951506845715821830057811931126772089702771394927579803444576206033760728551461428773014030463480121893454189098647077580469516124626382257792885993634477775620095079236916176264555771397905410184728356128922042154883581886597872799632536265546049917198300434853130063218242228003472008855260832039844231950856640471638626840505308747333522899700253107356217620329745738265343313364447772734056061795332414881831622805267756721521306946610267386477771455607981076258621806502904888615523128880911802689543718139670219350276615242890870583602046049057772535872662395570403530710909195960210775545663218299752674279493349463680461767522490961831032534991423145791132908822144336943757861298505197009945528626645933035055457658783455911258553933415647120766784000313704602035023647736648655674768894256463852677956817412943066938633411951584081786490721850675977468332862511931188808305039512116793857032213664761120323433565038643474093839935811116969103788786377753025666044440914109047123815831142442792593666764376990487229402465488833530429988536444988518122769493736012440705397099557241059183914568768022731689148239971006995587792150323167652944803389293067805994730609479722571943146015026702208244024140915368681311910902141127628624168888098381165201587025970156675264459730187305576907040087495859026032339518371268105796714735498363375975083612258393680945705914694193010859279186202877375181593487411806688743014498503264377009684252359871704360218239239315422195761438387052589885364504755513386957691151813629835502526276326552556127983122890523253589365887968507538503730257437350892218742508531362777812110009895395870287473254932986403227518735547835339575097399057114295285991775760612804285343390087180457219279869402349983109464692839182877357512010900051334486101734213893052907587124046934286144449126566589065060510186405088090924317582936639270995914816188128563163922221743198587860054879266089829050492710960870009793489819996384989827385264725282559572657925731665028655572092998880470088020367204857108727863996134409425971701098761186380481858687428809957220023088671611900575761892351829983637402531265612080301711052334709160395479501195753336159773020842062220868297267777562320086135663727488144665090430025941841797223298295720335388087983787005798780424425974903517549146843741892660048158147338903105049528191070943970398924989578382777309413298596867370420492489509751674018950148730230471153351184019279547157789954240856271101947091972897193790217526188135915072120893335320164677167358225032380389090322922727510566629962278382930390027259356857340455626632890946972834603432965474880605024172468772730827286490520862518277688727696436143638122591426562099735181773424273921711509265568176782926755217838640528250803030231868142490439561115684036397904051718177588484345482789961452963372444350056053408833392087014273124476661441996728986017537037049044871054669018313692982818690152079190558627572112001532952880127988429361476868802504169003114672910224126613077116341640885066497573791981785233353460547599992927068071168767137425691744077654425447867964862091684581259493992521422441691504472064271448051612102947769716515028037644864958315154644641435704421199801353319560456382458029838985472190038074337194421333241550227901264610073122247037164005140014283589396107803939935639392253951209309353411593712672015906385013796893289475224616291358088827411329316653719162927742629945506633974006458341950275460145081763702071434139061416056842222761299686980091195435764661087621935702985618211250102431175728979974271591890377771345024427797893987746057217479245672402428312922880165119976387866362223442431343289630975542539707624053138665202815247386571410044949947324574913106005352973760396100906817841236856747125815612088047119819115740187398277163399897945729910656072336150721215939588569821149418260744733189178803896301971889568633524644385185131486494242930054374546570140236937086960289858126735817821690791433150738578841385027498718107736097612160485931529958022473039539618384901569009868034826099568998458504153644723892116453496833641601851379461773944645060681897853910064728455338638234137757501712329500795860850819745240223711751092435547484167880192700937087753851762772474607491907280886621556653855681536325501825286763577018747502118840635326716195524203965779218582645416021736150253945151765543272135292527046958191130888513504628625925289127957633572960289656103919476197098712835659937768783908913681905352190632865729056989645887096464890755146434126253139421168728565597393070515257868306690164042976757904086918087648124593825970280807845099310693121295257181916208184063213390471547954568187597739905857415118246357114100260976412674206114592816597214715968626829109505670921320734749985633694280124335942099013468552205057498263115016792519808038231608047572191252692191209524141440624802580375627693194687614086292128587421709730263631776763371387831936377192043794772938608443014336063382065376112948011637711308215815666491969094958212818929831021305892818721703301546471311123406899058073974515522995221188044885752574173232082654538887774487073187171088708519720953659413117858475417902945663721961109385781946938821936650749125561970541729150197014624672283100141717943386891036522979653670068549768554364560056104893009326683354885958213154036501596283235609854898850714486051993847144826421866324727449052237930924095300462817332200070144370484228924654439459557654861107378351422095254409990553413864597456575467690933654963073110637095625240205853432326748358200078644491224718624936126036080257638635913137266436483418572449738791279675904484930419020248916057991571871379757458001319871338360021611902955080225245925550531400314082122429401560025805333464179583518118923192592371957036786183166220633488235466750180655213760407570983394456851240881671510457411075413919858647119772101957846300852404106438831914004158938088755163208137987501161389913774659081063313173209150532720420696032417276024987948492156490525890290921097884481440766279741628739131272571780551950195927860832171651225716882237607187621410368177068437120876604541385574634327496217071878265964488846465208947905768492909140154129093091020144477062162265077122265221914399013454381061577044733427241199618095372540598230843957559295261928351492760050845007576769283410821778636252193898746808175014746978613794705944363901404581787943302163541962055187620173672843183028298448815348306221788733108534596004175544824492659549035574142967078694671530122682135029387899242913084551235955071489343325948000576695087506313528937687062394668060343580274546887318926437669621076042915217289889711715762940015101295002505598127004011175368961894235922757882968817702823398270343032224624827710364866451133262526524125524425033747548297202450180652292952041857434427330926080552909101628243965308121207665621767506102040663896538658857785047162657610231532196301921609534788427831165879372314445633818548592152086750780143737187242183219194672765942463620669373715787950140870908873912433248142212374092116851189354999681642000462510201943094854854554825754693559392411222277579674299905985550203981393629280516446168441039921475578957830748377256974319108765639611032352011192473482784859293570986008657125486627507345264036189050401999585705788620487740846730015091383920684433146704630976265122718960034902786112124985384347000794482914373776066611437893066576780798817324064108762340005553515787253277827896546751196836239629980567803710082938514237739424362725102997212785147585340479372112022932660123101956609687399229248906817822912763946870378216233739740427795660388561378900357137563824781719011013830622195194491785077770315215059610358367576380738566722924879331786161293167962302205651698919772101134008038104395298774978187000032324274887170264439452550491027311303032757266897064760896485390564024392546677911929585534262545755692109489518095343148804922779255987832656158627400045013402750679628873223903613555146328994377588018971233830932664958468455700019975510983750807316324790112857642866406135065629595814133382083134624028861575775173002819881048453878553237748872436748740786423102068802407194914884848409177816353038628394181920329332029710489786553885625435157140739050803658849283475505185061432262014324684063790006380913212742913555641145007861717622465338428962744217984929603396466439714418139323289601096188734091922380919446678713163528768397805533725324047102817606050879381143836907367433698024238671625910135963719078917571391575264255656315980981766094226708657863140487459962936942611974387188033411631999933046541531332300486743414579547599246772786296462839376443581759280413519108106196042705199761873902685682916049100409886052519470304094767532347154916485049832578881346151116636362659719494107086275613055856396882415349297645999752736707991239011995675193759584296394597257496561650876668397299596205490741262511777158360725185411248115928630540750496645263560421671670702085970356123076776930834792817907890827367185586887777998009916303837903189608610062954568180915012426067382491271016048893517271977722267135908144771801683186370296252228165471644573879651125376959050016670574704352207664272159390202888455874278820251660559806035554933171632621170383323158183027526793179625802381857248812777883279789829272047731065800736083110909613536412132546271193431045661710548563979643695471785162307020537509810119904108835234309383649482015594913182385259479185772651568618908883509411972267260456456025176125913849033307012083215675947077860525832922573168628714365552565333046801454208923827024566735843247905811649697372773157403762407291849016475754495886392340966602412644855461647249876012618474308097523956982887361531872595331272049326236552184118418493218308720032026132173569011158396863170568645298768936107588839917441490332635233961143204528043793015418023165367501240816634431782976037003113295193945761662043827845464141296093013910686487885927537375195146651796854813639349345164380706501117590649874384219849641055714786291736758113709586619903091993330523519201946400312149055320353007489303113549569465649804082402381633556951777809676978334684285120363136824175324788934123136456082974110799643950073235948308485567179886850977685144843294687432860953119452332861246323625627320511721928928506552928882906237372665101854894109969373731325464348916542297015561260714466309010786027225617831258268879698741203758406708848094228598032140676700637223356333807606200963578339687801037439301314172227086331092988385566488262506543054256184628345013574993441432657293324566226521133327542301430451552585475079098789634204678374780343752839306149213341010373919321076318618135178128741396304051805136515712794768988005862490789342980011643752609415283429708999993494263173935281972284168953351236276263945060427376564400336934135301910465624746861204405285985769824956372018301311931308467958062556412577207934146568658522943014138237550430268958827845333143376270724946461835844929113308990960982274676783321546825979602021492039976938757281967859848279472141115754437257943272103861649663954250280910378322876197279023492707392700537478284356744344045205690816648462475488887036157271810509289197126643458177596665054271242877772970933212704364999752510735470775665519450257436931838283320414309124482104705731909562507405306236698443219850876179703483991296886773417470696951915499443722851314184169726836415703797236077156692746458154951270022616379996078912086142863170327064761054521922821738833366659498303650835057132903624266026483546790130164089972807766135813213291467553742750405684147527156360135587703454882431154294733250080316639348726790131771477479395561556385205326905556652882257749428054140459134609397294236663143589861631721199891569088379254988540556708492695872816820030166004216927499377136768605446817814695670984289146528156648209026568991947905758601100761222369924889971689205766393106652381154240482613133933875875673637642412804363336184575014238640244882117611738181520558415628141900360606476628843034437585410853971341986313951769491656655024086023928489191868320497356621137414659453122457741417494765119717241802968738431929182933176557219424862147841231597226167365707565960740183525470151143628714123825223534666858527989042743564707959965669078813415596442584013444860092940782881264512991645907845674908973122210620016852947200769461558705487888916660995886857198491435757943356916500398159900664844903557882696016657838854184544894952190059046312495098294180682543648203051188956502404022858495256759408288157718106548569139345895520343442975659235100441851684470117614828821421153705900992710740384939640621405984252807823602401774099044618854106203274829536285468736808234043391101642658000056536516415786940680355171313781162494592810727308171865830176363566071273466873512153833556379261188897845024899531034516720960541723670274024948887729052408663036024688804624124292462589115990142260263113499005316661945297514552390678798775424590452844514625367554585522297509261240806856213393679021877902394829436202446921817629972601408702216594908630812443217500046763318367612270588428059641193948488770739487661138543026077845495037769428788313861252224287733202725715818260397846757671797305085529543300039852232007117122377877525486821874266407358310487941847616302740530026946538191576874246339611430782134589632849063016439750015612431300758097808365493419235880966422166344965193015257542855519030867298325654186261178267671178867299788275516238632758162904541112864737102511665000498304234009449524296830266476913067625154691256011499757377803015375835205196738674842815862057660735376819863078644022077947054048745530161077161658103521912578197257566301560507099791627552801240029386913294904121580409964433760511556993262822179251939070674478198578114044671586806849167215829039807925403129965455190550197977420048417297535239522597163681051221138675535380267528301180522070770061836604629799942796141798152162427722711418481630102650358182970033879638201233311100778457054562273609997151149099641908890285792480227044542193230565683669943385510739486857341715788898995811433892382327481846154611630225227683045473670237039004910944355307205402296222853521234590204291278002570219757181498319985143303371235708225248453089611641667134574478704079608531508514001327999224347754107053594954884932072767054489235096930939676847739805627491120533198548149958781367441930292952348460682182514882115502236359895019481472816377353268667438532094191963148558140909454728024353824626576192049984855252971718278738423626609652760910030610493792573430059324151014555001559500542533256052533201142637882515092131032063101279822249223069784290080456646658538199858167162873589952315049616764083198922493246299888704155659622211412045226516237653468347141871320445754742095300235866197763357943371698244006047608107504113142814689467987657286336546748859837531485393183083439835801759917702714035953225515655753539647260325406770961524780064782649654615869540219921741624629731570912427314877255567778424220015192698215057729045685220544131214617851129149766314845135883772492421466949517733447316900407274850680811898070991696898343691033718501362319829143147347066488598417422983450497630696543736263528119569008136078327653403607450474884303280060804516127626394626643901461017469930085389756067438711393160239894355563289160977654467312346568271513358853426927084674126149328802573745195382823406948512366729297436845278678162105508505055815193643530144777308801053665175495218559867830615495561896542184798448084789536555429040302420354339564859194813238052669242473760354119569982415379649306287721745777811997391558778025833680919054682025461801864578021684657929200778541007503229836278434552113491816035183840550007276163654671454425036183482589557800454330212993901462958627273858316582746244501801042483585117187940830909162513332897833108943456229185973998234442027676651301549603257578407563582563995660612015181030161592136020601984434965163965704494727099565488946816209372637299299735124509855226436981954454215134386480578461769794332041512848532778301024889534110448301660122969208875726179196877706554676470476027211146676445794117542833373069547906684680534835793263474446341518797586840138722152047193777588453390382097967226144706229014880240682264796504965570704047430456881372416320870000962909326777545785322969104737007233695640015457794911187078615224982582913952964154813204518009346338342085680013233703273865394387878968240143292914132141428418708974716925579643176999316288345966827932504120380541288429057765060708641429390666995255970305816495155173638298621601826244103798240613909923557001086667872606263204896374509908984901875749095876242516376165749633707122206341650659869486157717496710861816243616262705542645253603117663902506953262138336621863736580256009473492111502908271943434771213733203048090072957721189886314189205659172048472995484844685793556153702756776017317336855656104886971101891039208003811297690320754423374918728654893702810113318638197018661341476022964727616724955875633822581631561373302089662693291902828243692073931439292259733900067341150084886528198196703702160186691975937723049794053948963162152155924326421353497515463986107230965531230301839465260549290678762432572716811541848741796179228596837997116597578389599878027260812002784869263107859408050044762845656464146737446569274352123487058447918576546854433635706439734906330771220753264228958793386781152443892214221288397199614642758617732228325311716581656848711488200141131075523164569714325115121694969118065105479121615108224967981872666343283604150598714214289472018925176171189721995086538099203488883158921803138666334101345455043505852599472698015548664806969935586132415101109565050892664085108816538236140915448413081466279428900852437690339214539473048055335330122495241597552604223901117183042946386072143154502784618345794686172819620361618538245459040126399194531866844175513643099946506477972592752206064333430539697699742909067678032314488515646299352806877397009870096131477720876922224581235273034821425450758079063086395825740589000950578183425384920565899193098162476433244207633057098191066821797127254520056182237348946865945673035743087231396784371094364878658861028450959136289499881182922481498302368757661594816416539872191489227673750529828128160532072348453813522279051783306724690517261160567334695884208773326263070273376408029856881275786898028944818664734382754469055159642822871619121998155799596497730088163230211759640777744435972950374139131832382169478514958605548954454066442883248849827427210477134120296300809915868978823003974854321951067520987756031968734767706805313999522627002741299077250619195114536502450232472258545751938848713498573861122964162321077129289111221182200736188714915928881711263265355312030673740014980865503094635628821895086187341351729947017592673171531962166798873243239378908294872541997851373628018780917945213026683716357316400654348707726459603049022986821857573531793940498524310470271430598259163828430864640768976407128342276870068833294403942325784781862343732323210512431822419560089432774365223270200190355150937201354529821744987323339172544981482097752657735984247520749287626465610150389231436019752126418738772169719875809353734572924352794916153781786786689069706331554884932088952154395430686844921194277520409705499891404465898563792768144667998366343040973170117268611506578152613217350763938639046485153352247755823106914849318009843990166377238755208470645011669486191700073397115173579569721117212273263039759382013644951216980478606240451063513417364932712635241842361024361637105621993797123685510812507985883712703557677480215692121848364283392654467508060424280096059921207137787261103465806360466477453911631369588492168269164115177401820313252938114960731229507818171526030281403712875786924602061916424857404651152169642038380394505156268801327884112572027783046651340518602266535328487407429472125938336365966941974719023741128578322415647352614759703903110288474361213208046845758095472886623889853673900905872322688720557428606530001827860281314072195304201791724328840899125236636028070100711024601971437019714551550454403697618000723407779296721293923501852685024104930866559906286269616725295939604554998039439973472053281390668818351965624171519604775949922707785170443389502245056611269180812092222831283261223032105850956753428475693829194253376204091601621531722143532206465396778624752110637019873646704002768550256328775382457481671643477479801667968455863787823690431952331359791096774788931331349990583438339869743397883514585712249667688263499869789950791757470606413989160716418270032639146974480926387194274249870141862884697928765914046929076365367692263573582978030965904897272160919382406909078207186634523380605285736446255645729283326542382931702222892606850014724960131695525409986109499059294786864331027748277699938004620917241755873888585725785402483348253264089536705589001750855883297908096651782795984509065556632171792725577453644152218564516123337538238988308467784984282414329540164888883101768510862837833787147217669525839971623029817239445961484068444996819529164031208146490428877309096994462358910237389431592134169446435650724359776159017789208781636736653077392316888873578742048291494058857725706065186597855998119607716005916355976756780681809939113495939411567049709867437317246155452913469371596305160947782295638590583540713922808944884743999772766632867334664207664765838857400083150888861213282774300761876348468056416973259398444026214558256861684856401528909801687437608925449878948205124195801272991565133410237315814065133945278414308032444415838892587383804511351098856507407694621021621444869610148527051528164165768814642696992225440081224298500845270099101111060752814112149714254873446900534466029545648100358550858324380474433360335956223036529623761562964813443292157680090215049934429250250164629681212747801467062414305559280052285751534602738615140254132604428038666171490039875948187544692134217081450277548692930992849083749796538364492244554626808486877421425304940779834720776439557692191793387683874948011262170343369738468785506071383472164174806343779342412105466012271667590042089691619240375387692945435155685034549407067420244088333452489784030711994932904387491935447582848715067328843856935821640237554709777051585142672432514575897417318995639508933807158605642379105375136252471859900467319139634974885323707045430148714760867886479557936829710587735908916451902235483126537767670501036972115302072235769707646959323752939508377025375252161332143496644454937743908509320661416302950092899519452641346234482333604428204205510806874203750312721117577993712651816529102260909161321168093253284632296116039043782352396980879180383974571687385881986612727591448356159942421983904917037513053273522738803655951625583519531569946479574032311415983966048105144831636957836894363415370941767905945416144168461696242354209876239253622863204808547104856852139763113617168545006352418880517914910377685737951988469072286916175296915075358484242403501309948697861455758983903320767651220354020515001047337159131701991439905257189519811255849334819085005859391434047337499536984228359007982374522962254278609320997275651395437096907929326996760700928505998989142197272992332654952749176271993508480313968215419097814077318311510234357771707426192462387304828868306057533433926771707427794940769010200876280441828453316275232367280107411960270818997670179180325773684054979926103515091544229983240074094983139343071678808741160576512589866826027876036254864031702169538113137423117837908323119740814439466374546141401568327844851689582856552559887139418511163837686539778173807057728676324742854993938536468379568482705912330032308278521895511910141090252511423101387612635997366221385189995767318370269538436749079167499521581731220775981850193798896068350724064906587684872565456092530636673628818679700795699668125949933458199813588613206396516531471237477938588873350180546884523371966771599981429292308814248079329275938952750520399739851656761220146866047098601759664438852439917583636847212140195821600906602852942837215722844865791192743644601670026810958332773937104705570568598550123282226970564140587221170328098874648283936972548391684452147139365482886962098908874470531218207189192706729651761601592821748363023690333481213822121087847073159735086179282783358223429017109639254770645473521664820830949747646637010728569017245968560991758698402497341826726063173347178021412598235307028818847994992554126307238690870917900662723895024382259472119132400486466531516733392407046464368342440560677093211705454238761179605800146299154859820011363817922008202766278895425787920233843057495126434766312583260251493292086653502507826156875074565507362778745398105937953171910660340782688929478644470453140855748222059636504567944248230486969577265951611386045940673811840688457169957340899523977935870143303557714497389059829427946563629248436866364140604040114711977406070862698685695199199951375908292507117940200115403776586011933617106397988324233104514684156089962033986679250124030650217715735546526692324349283811161368950593611224017904826459121628991652101344770195257632151949338441607151783572897161152952372247829628835258566633846690975078057083076672063758197143773354227819672024662648813124862136196204216631221894109251666742699228451997623891721661335107089825848780669223373980430530235188502471857029426961058697497120511698148200089852358356062183953720311090269449104220703121667478891243154973411238440547778168338779327324108216626922273637822664218314212256839528347300260801411880933291261812552729102920200084489248603927208615322301634988178339510764250081709394929645372436966124112855961454497008114407051565706516183238075837207184696805115131497675191558368727612646450250468420563383359939916535212152486148112696141084169753299616857638739354843511451800723461284110299982072505279279833815996497495798158774625142462037754446172418710201970730453996727719027661318063645295504138768316304603738023570793632088709107244236861221493519104824213519712219438939795064780313255274704840070921912569523164496862058063008008179188050119512068898252579509496701719766492591858029321060980831339368221392692013727964715501573651240497635956859970107893301872764433478517538726840300245365759829292995866262132269759184631763914362643584175672078872305295415438852391771668490593659163524716318723839735259968125748939377539419535537443076960437612330712283523411349388556672172856132017998154168882093237773114618953970311302807383906075595315844789202578229460951526350622303545700682495657786577522746987932863804461562227670617613901916297815450723292332454571339237633456717722801358723784737781279340723106279225108037995601105625110104523150616235703108827731968745459362938912588645625800397384197003074939592042057346938727706414333303324819351960028883843574444918773421754375404761860860533711491098248177448196970718584636090577339118412232090263128498186247606186836326806000720411084956473751361848956395510030304461146412637174473489416427219157952609992478760150841806235457247832130438688951923202398822805886356456794022694948792561304828378035089977023147104276483404980292418319925456198956784418525935618820796946655900159496405641414122140760992102598859140415200975673079135242035152533376407972195778323563940100285394463961819753035118664279890245466668166083227759338749045542288982407484783899197292953020762354430771620283855376771975564246696038173407200473801346058745160337833096009978407928502795301809313912645059121228891519203280892682110879642713470334198065809288612149718067551241010039627153798092270052106972549289354953944655605067880351275586863709965446190529714603750941647685780223378107124516091165001147591837467667083520689902165973487199733703116993377269609285120410600572634809483611321499918068853025915032469630687935692835772702257182052922971827673952625669426847928848598160591070984746793476243602769410969478629300982415759325459282972322001666983424907724491232359299575005642036844373425761957430201334151686340943858803546517384496847141915096676147024148041851411468924763889289986908156559925329196623182205383400501007179379846355814535381569014275212638979148383670841695256091242151920314505987851084284105470232483985087385135086722995146516975359879949447837595314367510446953099638732280363280865181812873785067807216453937611173332006851451338646763343759486562765016587608530193802397379073719356039714782433732948227891421892213711470970338135099099400895027201335566199190073091025205230614918841411670484828040369944023857849243578080728520645769550133059747128350767492322961663331894224913258591140139391343674786001115983033534961000231554531182382672810459255517970073265075029039809083630445989357724900582283244467190747890182463596428215814710557423199239785713529385178539786399769027612205052273895355565965997420954556148066204520943186893636522182330787783627583205463798859353192608267692515726641602039512816473598390429792726317914778211074700275514857334850617693072248501729061556073866167337812477557290437046538437515912527423082860999341022865663444721518953087810026491747847444209705863839813836995742191932044800565615221607708101720375033256282887345081135696375743040942065121298910438520259838123897231897255871060700932939353989801854400826412037133863167446062467288003494962459822942138657642654427287087484481332018153987484152244044239982737017012044617033148144643355730600896883661915688966057553757537221186595168143672699785710215610600710159059437812302868208267725406567342101756593227392482803060781842615819954274873542937909976532275491098347227516373802282226871494083882446738758926266387691840158261778938696712036667382572030978977956746054418747884026848493313849251078902815814817001538198250212571083109853188223534292396861567961579629005081369772028435929199002360619986821662200231599544837935541806745719847455475552445855843272097144511439603265761419792839919314434672472805290290464168280690540034695396205380108869113663737132370921963794093788663321430458132897858750772220772790487004865399536185000135328899708724412753917730514201370340281701001983357563467520569502483988122395650469083088080940314237048049141605401273411213665262604766878626362379469417258748796333726416124271602279886798147433756458153866227654690746081911650359316174690101514031348921521672688752437173789936617486529701654654641147107123169866553312576710300375512158402953119017015167405750607788414910730315658154861002883196658447595825103506604841190573619490925887252418806710417965316410203449612432049531316666948485013571787444386537383777265976970466062434516546759126606437068775838735361768970602494022469450044580731639514029998334333575884659423353820633308591250101037689843839436295001169186140643716927612285412801271805338223313501340014978560444669023615553312427671015824090302110284082569336114349811461629588737453017728027463089385882636490951741682479877253316187857299339429248127561419787947528346193087395889795680030121609181632234743187686696420482930571041751261462451582973758778135544729032000794521739335800122610497231336647751929124389321053911246653343527692172050333872106364481075912721994123383932451879683628612892811459321258565303850406982924056593154829260175593993796143040526233750036054815591372753965634723302480976352007945906614294974069151406277960972738826817305618686977828197756642797707863834742078578300335979901619283651011474672940623422146407891702855876537011484896941626540019911510620358384868274519935084928969065418672703956582043214356777761595409941844462096672441818683242996305223482655199172455151428788988600813713527856173999513711353808243218833160134244480816544258874289362466366174156347217672246588546871336647597102737701323933559436010651044443407608353095466179661722140376174134784646558202868704779415578127925476532920280222394765533847543628160958874553407972693634082504894503303725034184820154607406299051329480647974266131725067555739361726758918023827908031197639885428269699450291374235803667357497082035303110368590000085008881520792546601303756992761019917436849650676540874355965796146494649490877654090098814538665068727189758050577677953876621067915644640968002724912070043023217733367671916842949679128334545590414744007919056840964081190902625967527219309712258903292772715864090854980306359007324739369833671058847649455000820485530249389067916567553220125057370453413380717196423597196254747443393905266291412742811719490265749944784059121286706827027957790093089295327790222994692780851678527063391971151328309335619658221556896805126907333974170571494261378537276867984580700090831974921280877073727216987798436024327010640666670791812577340134557191802658480087722416454215969047804641602876827617048813942861544119840216433552788084691600363865623873420806898117824603952386485100440418650330397676331805225340400653994423468805318160396076187174920134095084323242048729651846758883581399637625526850549870400686507905146989278311938644658651648394767121705348421687576930217205543796327376723059555261009895711392111568580410886282571461458902528664510089497015480102344836792166702463100623539315297295735226317421139934080373657704463666189418718989971428070945974890218907153516256572213692910597141399539137526383784061315064997994621315368546203421774900109462927146126102151165764094692750714982865888530914105596214710335184844770495913203768674212247099215923547849090472673377265916506340312298495512910293856647998170344198695258641584082900617698481739124103749605337545575395845171785806093940363157252735196480885360777242613014532271036986448654853475709895972823745101554708689004482495126923555560125052938885638064312353436089009224053454958503051598179349641757084195902104858283935511127925180538185536204096137633281804882494077381245423812552351202703738261852702874983800348021834526294562275142058361759843870531647038441726196330937074285142177031650252264180243232560851358371242319550824311026261146759702059228632905899443035320730753873442386241917140247392469092982686500078333217768698085423659958647506128516059657816223095416418467082876181190360447478142419182669071088039229325368806432070571378884157762329668694333100673904936244885499770918209128210470233696272973152793286302053603356292049694707311648782203483253064733097174561720678336080919468259665017660385556082091033784338814838191856278954925322958010996773010493151289482396545176543979336479429593828709967213438335073647476468698202811014119572650837967379674394023376781719519975772825280279428485707837486740882879192084573696683094454814464094108657262065352740449533074786911460720124649706125465133490387830103076052945730573355396424854132742221728732384302291750032485016547546607828241782816117356441885810932795678405844179088354973137588494889116877219953311556063893584337496217813995427819233077909611631384280665617251160895297057083228400907970069207593851331686571491022583769631397936491801177432503555151400216308170049361160126566007508895853949734101832084306071925244216054076570573179996346596972368040672779402733668688052245415642818077031782016483575066875826304799306781743942848580056372896049236239104215113273933158406895564793256613344415004115367380894951034629022718249784844440501968516894807691519140346909572903404710476503173635667606022760864774640509223908108873634343811112520758786688156857087269026991008833567535426299065944691023900947903687977251568985538850617502018026954015742176597091611862577153054737670876268616716445896165517643259177002086169897487048642306271163794376711823219744111193788892463001119026616486776364859101156021667049631001707405289806625667120791751180721998659215168659003176173116738640908382010741831554392280053270415260555756377148754558104570621198362554583104528430520576126308346657339152242050526951608038777856598364587078137651187334173558460552503514554774592713108422532860708026795706149295424468054516235353799286537540823907484051657981129353119787022039596546614514192859412513486682417728539181974592179129581545546258613381956771704255186579967241641584080414498462650518492723402352729538111852505252547074065330356040684154156385223225593425489823965029061224891622151361234165606988128188653091848408665882353960375026000150976409664956586489880608869285018781824555212629035764480220545069773425610273297963188177448590607224758625108898095435174013073664997632905223590385413489053510907778962376121392090205348198558968966996127213547637292849491699712977840376123322334990323561212272394053785965381854544968002078811483041482239670260910569925878160804202788944073268401379669542450387884015263691837979029795597736567332694223946349184644182134365534430402080555931853407248692870146652156113897248048550316436294709889944967594648622461132681690764856734054581444566978536837056363846483605573780491298787257585566839483369970008899206719172055882395980017861109757750990803210508997679341231291931379308466961417663964021689040831106480172493800740279174083043386065282230288601698588512725916077214392028100555446088070840941315087455187481568983618155323973629644970841437556359117017269060267828964543274858495233259800265524916978251324832684943304020651199075111163346524460182078762926263751190732437656130136770908449509848413094197597343517997692812839216274668414890447411889992479925041620062180772455459331682494386785653012882590227791696266567892042424344028759954143066885200974353728325444369279352831453564972059191408138722314518294173446373798055277105601461789349669350974555675428168430371562185614413820810162475114061642610028145892336698165461588759621372950373917366954234711577392636993149449156843190148594510122003315661477178962182675618815291563740221944601007118519954277291980950967309513557790349974407019674562386924384738576788637468242104592252422048090357798926983456681824486451081113581942480219203260293304047115242621060552450010413522511171733167750002114070000998803696435588670857095068126953946097208904450673332777622686636186488764651501988265554715434497834132586927985062469135802456827501731153833935312752901276952746369166507691571654721614391124572611641614367274818897933418756745263018825721137987937745306738065014265970399926477043706983631785941860924351985652000922614200097892595117674472785652188657953132840923121925386238048410700060917081336916056890800609234891616978788948022445875025253709152407351018083932668412733198038477680706197904910098067669407485311256664161021169244954681201584106695595956699068522232038029568549984333096512370990342268431950498023351639955125397944118721360057667949014396445915397487031829276655888622037707520284889908157082255331537978871425878687751073799922208359496622365014139067194542649162055372767810874448235885200605642093487748807543686565799704730186009297894322870703713534195229130111543415321904911413497895248761459938278199873967382722420180940191409523936794969045406890342515741947001618346937668564469892042528869327555483315291996988680592538712803653241564373919796359303361225630377414102914344340521663962317365519182855732738677654584007747864985701573545025978956632388544451404705040304334601364269123080440499589080137881031484081264239678816341161337283359390089541646885933584088924891647367956446993022271221405268163686569787142362673353444107865885985677819536367816072646673749091416634633570871901823550457703662607619850560268067096440564727190743469889380128714068151809240366050375245509786274164710921858391123323857349921372644073007877015361700177489771924340521396985205542726950254881455305137035673724672271191788401773737545630275883637014895018527027543599777008237835083806790617410846656580850928677211600703131673286310156565833761439048146785816480844140800639303474349921884999749302510167705023238051987060841053978274451157270598181278785153770262662172581324951324549856117832214146132546270864995210347801995466934985274259709226578591976753842278308812326685339836947027371504518683198887491045177152780924926166723726721784517491719751515898741090809771737904327706888401725650357077119437941285539100941141391009560417126030165023529649090974494949026892422398659341095350968980076153858988147303741535475310643583660113933702219290998043921788074145708384363786337857919609945135939631774337548164334012347213564418224713922597911630247276330388833713390622310085630290839235290685259790822617958373651240206975139289554471886674561931000489237896131906375841254172956977733008668115884414715586958910528322965849781245470489592412587719226963780165594634195016926908382914663020526124398126131835408729779286669534050015659176588184409213322853546751852624180238855459140635838528600563030688256494434339790512982905121900964299077597206898775193943878158182361792473056760490932513088087768746655749045809735476358814840812600512551435537320876988596247856827900811986645172571877442105975326574185817751406002627104224938533827313892510236919853207384476461686919120514726432700723971361238813910406592774629953504783638649416740235693161435945516443362758668785114519784015303330197614100232665581012254053080722684922852815896123027520664258474095462524292788458170972553153469210728984408254740770603269642069697024359489370269342261494184643886527039896164212773025704955717849773197451748401054599940966195941097720285029087439849635143509477653079682690040924708113840580084761639030055242236993418373919692751679652952571197339132110284066740181180451609792304194557652217085752046169996988640823049433826100070809040122546487464613121767007971099946345434729875805912583943478335414826714577832786422542390342749282455222534682568109177650564393986163486469141771247029161633572419343756917089754094462984946972821768080507604649216660730354041741770128267286751688095461717927497158909920628957113478147965984014150939955300345079575942953372699147409177984670199861049928136337727435758977934249152666408759963085132606412066076907449789693737668317113943474388158748401962746758121627263960613381783972589956947426281219780244508538322131177802052421560196748520124255753039549822312861445495974608680412946664582838628024086598653594524324382989207992628708181699288947951561439215191550726025811185587435056328724314797013298491012818221075215299536125652154342502059674081946809642440121523441093877114021858405822557426200787723138924025357099835063672281657880779764725205307319755096006938527537885950652276677033650176610256247333108425027399376119898649674264888711583762678287369091290925761753672128741520391260806476259433377540561224994467134483483455874382532606976389944251900178972776980199005518065882734732953223234765713482033826266249647337903016563303037750471955332489040064630993747740068363990920717163995621563843481889282369458684269493127100184600824682543705445180942330213563280804358513084175661163593224944001970282992975251723892453321770193662168025116882354314285606825559620378012986262417235393462411316581510886174124915000692823133073050949146259727917766156938095856303930452237590719598331550428777424739325557078016368728353271440498631234471922761619821949217340596360000240776321790336395447984803761407489666595504841212317483480944028728698073113423458057325635738062100352294022967608273161258946413918930768932649641320381830639269486179197342069608344290128392988515101280407656961777467820026910228209231984661562971270736275778434146296098066632814380048553118677103577109429098147678536555157337183553023910125120698657095721318951450583794414237308267603689837872749573880293169447458963086986398554974063786291811246391382194603907112665094623064036942122250704102077131027269751675695543761537516824455631657779867970767622737812174947006446273347302847389693319219286123415895577006603583069753400772332886195937934962799478277602076852427821821555259559266703001978982656290063615804140188360132779791920258831206949652600850263299899665976122340409980034376238560891842427029555221760112838413577695044151488141991001169707547253237006186663851878904250681287686988792291824561372010204757296856027120537412010567903697688506174278820111381277362405794193869431837101450957731173702957146418740382662465017685101469704193967133174727775020204734490741389609599694605780266901088928786745581538826827782316395338994570476977479636096270303680594630985868826946510013026871296324881637685672366535622417840058414238880396285708509720699778436738771813283327852539121414249335354600538240680556716946948257929568216555231277788110209102609300686676323851602409997777670065990734359991893891414856051727415380518112549521229077480743357342972312858890619318693719252446173264752389597676666438653115270794036820738396519960436568070580819649543223989365366770534752681490368857509247967045649710053395710261462697624605155620585446605244286577069202743007904539087591639025033802950844445018769741570977194602038705030532289301535480120606562780131216229704395518292195702848053851178251610011486563891082660547247364639173737719577788180287013546725789697500942718969539125248271705824801035494478581867793736428042813082222157900014504410200492615215068906896262995415532986871246141264097466010972355006834855466333609178052102492348258213656295952275227619794309893924761119079100422191521996719705431671225934730274504176546064671495802157875837876870097441083391003473602730844749567565026424478820076380578966681079474444991537737751708500326493683259427419029825880028323575955008172009451744065774084599490019527008966777997698621431609360660205017459029510081375500413699133618668632034819990014732813064113056893216320143506945100867091807209174069563457373999414325399695181291308790425891575393263627131994220145176892927937317290170777047727431050729291327107701100928416395168610364480796227325020186228573934533755367326816363160961878912390109285508195131719409207735482471595969591410800486213655084296066540544768931235841036139791171022824093374161309866153896541659198901046588765160103146745911503996559571130198625883749328524891703078475352471869740370439831762427552729982293155034054824806216769300535934883158962966499141392482372607150582700008703623351878591683804815002866603512794095110347472126804300109625659672500681199898999117733687621004404921953766421287923050187237100194992110842848999567518547759716507845573055692689428187752455866104162745178858515253541928103310508082928650153761447210323373367230011058842359904928675148158011773829970529924076249550932181614943044821821104507316384486611681601562141417713427305344852040792898246607762125115315829178262910905158037941077852511931257751164237462980488598535651948997971293854477982443107193473015890172110582805037634073323020435510203678042570338520511126825326497802126802074611902298253646074381045664274720583661584239353058675664530201310486884156672699848654869639766159861023094792097678979220203340997792123925227039246035645967033290746839674528212361012572968983732849924301709071101350186333362537800822685059751181813292761590439502014570273123161677849243039976106133575638472523376583242058385213421304150399038873401576285998740454576973668356300690871547100197068053852951816029327224240855421167463743031858242835314380811761740212969535408474632565193692879713646234392228629017883869302276162804157265900231023340063203936266711786193496774073411303140157803849934829430048956865147949443024935291640579492599448445344413856280264590101863128338768740830698046396088534107484183493773785811805649755788748092821833789072571150026550868742192436542691667784147747515914993191034216242530437178158539088737429596750030603097615708774989686579351100323657387162294707650825715312312187001443628257796597809642077871804923883291801280260123652400579571913402528961440933102297040065515467871028213534696041009476534033794430492134806165622207848337168853006626234509456476874850696984519441655781244486379360887706435684090981157738889746280293069551937057049780385460601523115182099920743788181619887006205720249285168111169701409391633645945100518749031342342904560771701874084092543817290190080393625104406272030742195783452336171859464836538986483569887168391826920388212330808767202439490610652578476351832399610324275055412133366820610228516275549289324651307706885262405404549990444589256548344119007064605903841750179943840421383300501173732173855609289360351380201607737569282313316654275512785077706053814903441452308864243992318233538983942196314132306817788729623037747931054093358408495636902967515983574153047731957867497331732327094607691115813727881618144011497561890945153700713120187759322079815136188924188072496874053665717902243930902797871809638518245447243095516146501475658424909867983870152755456671635092727716172239056986604418824593665227994336889775674162340325978871503779738478826945027174894734731427835976077454451111957033567118612138752579509570099732993887778669063626635362926731151171541639372718140161027073729879333723530746287087799864546010455631828926610980784527337185424033465846514466199954977718097354690048667835030516459660710132614777057969714741291378179796378218725875414058576078539714168436640330905500143375194373664316311317483821066056589772244688787583077553880205618751473036497044962205510286099656372152877674764005179835620710925710234628564495749371912625279272059775771643843199118308485974873473207163886411140637609929555407190230399475441786969928872882182507212951200397307494554575747700529891461982660697471627337227964109356088221723769514485972285332636900252362481673830323188674951277256564637143081942029837459819271722335217726785037651376711758711211550020735564998395967415464031247537102188255794277861874174853768033189513494426886507206297708881698868904488235248412449302591821208901530818717284015518485430900355256701210972646979505783267229163436673947789016473085535526558155050283544950542986853683111327237581432873625908361272579007984720217871107673084557229622598626385951218206983792346234271623947500183314112393715950309613397972921716288956965166764161312742726757050355105801617759187361652391667607522773827888932914586916807674884357963721655307989883797320213448795762397906663508457901489675546698965293568831857348286047059353789186959012854556603390433267236805697465574626709769741428441387133403278956145399546176771883692663772558278272215171532149833384649526553371086983598192770182302507144324719682875433563361538175268152127457059359280388701279836921360634778861983786791438874218089375829198578023210540341163505694844142878904219274549759860430081152369281281805647751261494705593064205545373152838927222653771820811992729831320256646603825445478536881889364009689648304941498744714589840134854859520345258431994248246777078749269606613590749220917452041374046918635811405166406302566771276940740040691167381269571914433469182227375220499541992817717612929663516312872927848075186034583100637801930753562018884912197732991085542341638186924563545651130369797862085248198878462415271532169246211664400162293522129893068290713025878283511468930919642179140766393940494334422512913256592652052133362208778415820714711088938523556661076342473328054425651685111394162528534244012713558130648191005463848973577182211282533782109371481314596632681318877470589719812689622019447794075231832368322186771670708585626924241355050001628056881696979187874052081777904407524010746765969242916835336989060102388808609815029672527523400537588688950537696751419129324435119837970241990085327124612901963780961802078841703598751547076364204805482651784317693591432885092020506506844601803414935251031014745414604455672371048096343161812583021028514588291388762528057818828952513274073015763448058609098561771123780487426098093271092070442489428234631112013668533281377314120590074159511275113015143870317730886693944028528554956199210738305342211284214291234139818219934145898153801033161526830559952376921882229493064251053693456727698825143993052024542018331869711426603535976227737053421143139079178361915905251229201174847800742505979746810973932407346744531753201571786212582984946334143128701166994515900117782451557253325943621642033510327129423283476370726653670418326367378228241085219723486119293092434452723986782587806916745964717775208345539579031616771743367954185200148812900383040859327671050082394997639382154098697406201940065380749535759803026969194594373684704391718285845372809769826952333474076251313914256462842297867124651554765306393177579812465916265765539000234628152203770996016078183011522259702502184293038259116309172870351060272864738786657642736801428501277061603003542283421356115140545199182476782857762521239089344785657147061439146553095763394395575712391196002910829908697568366181942883654556450261432685208447917843006085562927637761177930489518786893599499111893084180369197040781849081725806870223147178923734219033468446580228611767797950528397928963631697583409635831664988082229120174052638752247933847127282054325365938923764073396441835583974316351812421595871398463596317790839124267779873141175626315615544157836665654302486210343938073458170682993962675840569386347049301454416151338536865266998430157067096559757320431799482447091105976669744349063758098790154025691117269176995788995036501727648316802107477306891982642038442240413232900457527949901163294021320190283664180878577619971368464100683333102976020186632206266195426087052841178316488394079071317380648058231905598156419466568292130227357352681881130482055357341905105189691567111215431876294050221869070857671515039275048738205690916919035630636388446143381527548124482417771160177165388521823144560087824586821915713447006910265907751033056834427344328548746665217647653285010466389265980316258426698726849067765321664124300010524220170651315657959635501475169455532725778758203658916937207846783329004456794885936702136734173313882038440065038634873651789196565047307016254269636095667826538007452845877275539687636505022103266292697996874239084320591786601072080968050848154879119600754708336043580035301407850582675793792935469206347184556464166223094003727195697510921645326494902969620227276514931338833005347368319889532867143471045569452737611117659467050983245488714263862579423767806952411827370125289551626691875598624032674242306067891660183666063301971956100209134790907559989084079640484540378506847899504524633040029791282422884983458956978537257823934877528472268252514130922178081085159734427708615962957416671817608176405756109615460534559256928680486403620567795145110981893449011215262313477901121516653622644136683455975603393299461470853546896387206420546720198985399956665591689658905962123432743894119413330112947542852281500379556214462284125055420676903792849940793039536157395344475934246658873720014478750468547508179893087738696451463079475619999318322157323125738550132329460941729618146077162220022452208282195433880154336411182095050123036354328634131127470781274743028601995511463286788712053980597594844477037653039187553509290345612832143126216660733553907076837743860773352463405523615694226651647628810346078411079653582681372423519992600922851347059835586867166230924877238975579880633033273593980369760795657919551006741717570798708109294271221967628804567010528246654579984212551885998157480565904904710868556724626047511602941092721075634323970943095225207883875005131139978660734101463944597047415173707930932172584081059750994677503782843941598228169884311484307535734671250482826336009910710343452385364766092515406697574588818822725014189053819640258935960018259011339224166997086142900410235699849224630660062751168217365624032132790731611446103046238744844806370645615761147507113877784126432916697501892997205653024618838689995819149184422276250097123301941541193680994597368239436666786978157597003425490453512511895141802946524318281271380166762602668296981831268630798402227203667742589550775110494204320145823529581694340813753371632841015592960765709808003709117946218069603748405864003301138126448598493711165116197114343500451055298683943986116688127838233000842846109284421964602351379483875326722405245055886680829770357456514014079906133529098702289047109583000504030134364024379451507217003400328773752455691882934699293077981982174985639094966054938880042247688866145414648783967472825898651400565619043757703790178778043202111855060108601933073955519979008348094912949675055696739451169132695282649191699377732883159365766038942622970627795306380242686577730189545497606470374236557369762666910660286325912131649599714922925100813305466537899714851293362909223938758380361797846292378497316004857494769539815601709001070930407423115692971603493209443045502819903419629459905591287124733438721626856299118993256601069655062476486877073405660850079957966030603643500434405101225738211331508082927602411115320317142456190921830008723040014191501753167844767994633440087544898389068353594894205543239376217570768595132917228521019990678028830693006494372576680132360719232081604214490251983390941075731382537801342574040884981156081465889487251629922646822786116908116519655350425097975392712285902522979700283796737743960453527802358832053822419100500632732752880302027614135950587458699809549873904905813883553325784746915841899987693212496949861832863423813385160591198519756160851495514970740991940142007077988618879985595844561773170460707982892120846610400302217099795856087806551467316911000377962997544806589715617912047051189152407092717894366215569011093324006170697492330128125795098928774486108755993184636575527423365851317729731034425842402787068434945093911436716957650131810838098060130447604767729701798634659149581333034291812857529306047880293484835256762618816529345650363953916483401188095129648854755112833493420066931152969382980077818805579134303239075723705725025688453132954716304924782490316710748542015063501435737980765086957309051553442728002972789948906687619253332792227120532402530535230071663073241616984719822485535077528564117342058885919312755909898836007765186882721023888426309382770940154169886957219837357447123186896490851570776170379106223721385481075538405255975729415798842515409497094501011628985397069770896519367060202016026893812951661191051617936149588936248081049626970495392552822956709264307619585776806431529970612416305091336667524482886928921282844434551638779999123497202289710492409139948114486993054487958128400980473085687775771976193452169674893894304346666891413075730149014349858896527756522329705698789548667221884517478525452855397727173220657920432161375189992344626609088138405169004623625227389279171084440332744566964378752719394183217089878253471550392345855681259554796419255398314568426676094879097283137171606025867216388052255621494278657224429359498289356914160019144182190772941272689969556784393898955061303527045908528594310274418541772816550232628143355096030737929495241243744264631019897555778127439508307941249403861787892270804981497389451367555236533397366405318893086751434034187438944995235188228615823180132927177181924424196722218991138089699602930102428651552466601397406363182274244103288373874002615266061298176732080726605841666033633668863977426176950857936994972244259582225632939968119914793438077252852213669470921883929629311354482789863221685812531423549126922303511218658216654273805027271131625057629408006933978104794172410663926489944934608010929907000478553045168141108903792708411456848452216374202894915098882431764359939271693491660933710396623997371521929666880261252009584885619972993404623536215830567541322811176270244792909942124075471644147084737964172163225021868403603826830685771117944032397307965584369499076299964319018228124165800309580326447095615171607033790560339699766022208771102100831910495331987276588357505231543367935587328909957028409940051418355280689227667778055910725958127959667035132179338253190590682680840887643249027953315131306651795439761420554718566375432653824955788001203631103783824748657780920007337669904525272105761865217111740222703983044308167403802907796589711819802646806631002946333733027959813259866772678437947235921755856968831176524000690081202651358103439256741137349882785704790566241350875329913517876373936229111460997582175632787008882757629297155841010493024412119182784931045938128686266941627387994487172975434092537851729772487918284212330403052016528811138947217044244415507227534329457045273396223801100226105739514654758480917554715983892721177232592313107516719671028592894033208104128764399193360053042503444948043949726347095903114279064508593486836515646078065915733432202131106868133219287439484365051906963620956550556443018597774630842599157402723875652970054233025211579766286679015611711042875275269691194021834931531947642066952614724200685138987906479800661837054068929387519881613161475236794051250445352143208151393840445170727569050123702077002920929812469227892932373797836549850839390283559308115072789281359230040842733465041404540109823138497405206785200911923661038259500184447791443522002407430338404150586879149705836498836363397450621514539046073733323315282199007941961716527136775538959921940478047913121470055722062681679036196847457287774827610672954202529110946374930701900671364138219374934323181593493642327342886494128161412629558624548116796856729908254816235962538706294414114524847369248466393592903628715546320208497537278196922967298524934725871252607500009243262073199604262414968283396268796238900190861016288589897878057587005805338207841560729074424757209772757522520267811039034618636037768945121875697030874216060527371988312873403944897868921859799346730428805450229680097392548846370371187678362628633196556556944519584687221085896737738504251447884334459484039852420354961898617726153302569893407114135088542818747770992693922726178657114652218582004847612098388721232742374142190743829996271815469050808889602271470223663764878553966952822232114675992741672849244767096057090547224126440569298220069527408366393802606189724813559522335172290441162462675808075331573158995006228676932146443062284927606399388406362056043900255719062086900520540334361396135525453680611422283293766568382881018892346395593649913845074272170348449501003872597661546680507633193696319524721498973755142737663919453222118964498531036873619867219916459518736485617675883518005612798438201397149444110704028079053199263321836612517972444255856565080844523586789161297960907569274506640940521464072310047302218570049947639802447827932132133330958325622019379669047008763695707759187489190185470237660680342063723060581669623962120851645758814349229333948954798220199549269444174964355550395112697385369867289436109092001335157154275867301838499573886553634007852989215085440790359060234349689194368496477673354946222863899697790024058727843381016221587244415450991027700160807628282824691420733053917405558548088447195348955133569482986301952994789582971785337270526631661207444643246482170744435309360760683054556430556617863482281773518272333569763524399640701857934101162152348090784698088090806831687628394821291098561495636153412930075869541868134690913352474539566014672338725882115286191662033848281858307078066976313263347265065099217154940507939648903831869794485183878874665150250644694259823518654787071973925282759701718027627714287151979713746474983466174133511386260548196385118826369639873753734974557676777792091469358946221504609666924686608793248097154620971184695934083759155354781498233931106359149344751523615726766736191299036582570588327277025828464274190884291356771671501227930389311753962546681623936889551089642690551284431147853970032262432416718168330179561454048427132072499532362606703232243971056734396336944612654064135918673240232484475089078234324097283215479469681645167621255586360274797793689753106309507883958058698997808918633020042802079814220904820884513861801980005089505263985360651908077688088194318089784990996572985425398989654790222769039863877916010034757782958247001471540834145901260745314945703872027674749903082649062980579359535123053623918521588983670516372067256300986035506480355477253313835207991500787826563979214488901611341268012598543421515222975102466778042044959918471479147478195414999982976235874821452220681746005447486630437823866022917909953546452351669808791741448959887134786462549296943867505084070380593187117552157023978998994548214778539083434617963731540289130630667484553402599776622138161086579656205930749900570211245063420390064517254744847605682055303193667492213076829784850847046527776872146554959320494054533452933432894119289501824182092316923521261178761976345836714407144093361138298515791543146709250007279012768539462088935690483513335246519270329125868831727763678932554492820920474135376343182518508641673128865410459740340610790376498928856271912517671294629402312814044271534122068732974899788414582616473252389610011140428817024906679144095952844404973667971837211433816531525453134868642169102756519316694429828914889490004673201146450887671338455560438341813313193045643878053556840568895051111435383289653470098545587956454667054027492691616555250692923607195355621420241342779675929148763528350194232393362419626460291473976398490394183383041046352733166419349237642553065751271900324466018838122289106140546454140818601781490374057607894728419169609344213164566498384422886000601358860374629741970238313788711388330571434531107292180040536439787321158442900626554305661089592968268068915737329117097826984466493552363438946818891397815970119396432561259580254666503446474647053012502700969724595301242270973352486948929156208315894333835333743935937311033262703062408371815121502716135916958837694844492026459566641185689664601806900575856124967652341803747556086919488652197127336217778375064703558956792319167452658141913109805801740698822151937486781627958319769471798934095791498049830350970439186749575437603916108697459343297371458874111844649806570640642976820305947250942431080790631327373223423858168637523691652222825832533052539134486810957590651930661825386715579592252440000719171521837577595542263837855887479000765431308439083777789995228180183233338798191836404456530235212874846269685139864319927864269934874604722288463925798287466081943513513693150006173850187001914951588188955566103053645473524793188809022175210025917637803553165563383633301483599476197868085886808976590585254040129456087890994209313860371006336378553574872025075666895664223976104822098505323557514490689018886719332833294987654271648364831433229956967006178250539119276906693626063776835190730808007678694559846007445732361400688442023372900496915631267493065042635600664156005786923311019867317637308419089445434388186620342597478714168749090791557004129212723804272296775682471393468041728855147275013367982215282672899322708588229510190544022673314433313013058760618935546099202182847163075877732905178310448910309371916455413667225105519483237892538140897272526997236405181558602876375617559091290561747473350927539098138945157096238438360403188322988730057991482961418843691702359870265473508380027770686603468753505823060545491602939620255809242752982708630874182342783650169555233839212058986601805594589584540204049005154285652460178430864974386468082695971438712827484059060568106376629890518403531668177123966434780807773810306384083689021357452953721630813439800285137869011708101956165294097575076045379310359298668914236318868243005537887930529500944531881953554833603573892648613968456903100914213875879031846816910341491707171683710597318465727996326678250901103680770194198896574510888951157025624734103133484821617242194823302678629745398483908694434035347645797497723611644694731069510187802953243423621560470229507788304400039022890107292154083351734768150137402193155164173321355415256152302785747865738672500102069831095577560626830130326235028308405718626153890280895005715845286505720731648796072019703552400006419605098287568366281173398791493924890701603301355444343990364765377861122446189065586865183601821859398687204447471589279373961232429814672374879625187014847369029648351415138578856970709097574942831080759896495817794080739899282494792393517306221805914727398878177939792312816492000505551519063573495795802452795865136823933137658582575914006095277664891044043527728871234990243405968828591492970722545029824321005324052362931609002772957807564699982949820347512505157028035035496155217714630509843894462302154890593952085036343306363819596084138350751025278595852774956853413922918117407757951302555415464882333761556242101664710614898489107827791113681621780247773446721188141715901301419020515489277992113373708651799755909653816371555278960960485959257256611076156359187897009640381712540021461292679282372548218258802097072512053142489179053372106800533457910501154705264601707912699220920960001222328846739217264242836131247121666795061577991023966510951456889985766244132641842335402831921101013683770000874382082228844953751813172720148570188744573133673033660192831240320043306653803464066140198749363482044560132059800478331498957855422757884400915483148009796662570067891833185008519498677209269510051414478494177392022662783780904271256126634155097522110090534184377651241678107786665857482821389994790296970706146465382881537372766085608559362725574352992723792711136023279851913011414797858702208935216563416692816084007265157552175153506643928641595655491704711524287755056164084594757646095356510468436142014732346790700904699916747748518422340681716422479885920957967233003108205828702666449599502509146381889232277435146770857922261927953019964527158918523494094930332141749657232063255879309225248077851529316550747621779188094814865815695660783759485030158804763227217936577988486417887071115076314110527223078275821652184608906142261731492451223495700955753059109284995635015407324213143077246907142831552420395251453710942893320737889068983113290213464361468108796315908404137804602660086143100082102261482866396599835086658478652555424882026801237125196564642127393128185674024775051555481307317027815235786856067356951612978233489711139451180348747045673468097290115313797987021937369097069962522366194810614304761105833476165546923232825731079692292232297272145901598730067400354346385665898381688648255857683655732204274404947046567425398236696025390247724289105594818290685077209078531469303353351999012845722233850239982277350565047073074453821634374724569273727945930189433635218010827676669052923640955478052553880972773830078854618188914897026918171049628211359805533985513630729119399688478084384177076107159281787936976320824097316090348592161132107542389247579228207106937398746999675773824480716718659756703298977113836719438394564609738364493603065966039374043499444781549177532895566451470218344912711803439935137485906394134599742668733729796905909429687692081804902636979152177993657627731476486994379953594025980267566504911091638353300808664054515779049929573131385064095876857965194632001139778598791524488990694250760484399748474988978505353206878353443887458443226616591793577600777115378838418966482329234312278648169873850223783425378989486027454245789090997772713572891719470262729848842740769594003498157685760373998694449106200398427662489246918125680505781882274380833711640932389871969130025789726302155411927649535478138463652154334040617550219584730062994402011360524922986570477601935145218405156505691970389347250750497304808680149308498331567498873302054206730710937316718929493502740271060491401145015665885009715216379832231372341262604596342110508540659617256550983825684447102079270131385939055241663474134026266283041904796988927007461453083530444462098031738084063169924908847662522189404241378144804834786653254457711956276528229370333935503014846032808085968990866575585466848380571266951291884344782088119443810173325111910952830020526446234676720613584120814312734213388475014045617631939541584962674227854477386174466885005077163875270324463398703269422743322802518764926021514936563485839079584303966327561532102825947627966849600117927434550882644750170881456127483721557920944288602719619912921090339761179804035406251820279682920453297225898501290920386510609528406781193345090893401525715761398432178430417560922923879966623558835586093855260737256381845011728422354354554652747627252522720441361969717826735635306054925455809172297122897332751087916504516575900014116628463371867954968792553734298339663894470026369037319026006598906212210297940953996198738285505644831265979014219993828760744463808399836289993965729142820356659876476354309756435654440649690550677242345281765562395836193860171212442197108651808933448644870781211379318359465882854142318716835114837816452376325559991667386273337092482961711600459301808472548200242973197625231695435278482459203223518795855704784053522018207426113280849920084092148157023878017594812607987144351737204909986626920274010020090897380112047074134526235541576684276564867985631171729970577740488199903861016138309245862743979317919790159173553385566169519468455129270692934385505377725551077512807945168083760593438839141581904413593479214678149529221892050656273262690912238478650756805251849053857932643046022159260227166561244543816176714558312797432384478714783146311114629687621512418537897365301937444437000971124632977232178127705220999454665785645843812699974394476351678812039258042773543988136235753162865467745476328509467277266563964565136307952864563403400636336602825580578437258609395191242013440353530957519831326658378516022422064164572959722116624458410717977497375800891821217093943402950751208561655813475526754555859155325267309797658755632186401890024649409014873204170195718049340750030859358697846167671762841614743162313008682706614765233756880516710126534968847521804463758421368616835592960107740474846262875097310811008052897572295894027230071707526728114836288006127778936388417794281382064030849515978573208234629660994273746011631149797308088520990634472667562463742590451989031433387043039986356762186312590808707228854322919094712109990493564370133633800587955136819227136420720767501999002720394301465599120819849128828281293785315660007223029155178081318431806545447811273107095901443913647222308375870828969755855966625472197373008946774489947419395211120595696050109883786690825057520372220868184637591786270595850471349093217384145668409017614693086192081048433822526408065955753910968165267903670047891177396472215034361032592813768618733697267230411741483395276131177169680648741561223112714128001919739470589970638251009417301952250275257594604398358904547146385509554877612623754265405602308995591613299030835270134604492411488442430886007190394023220754381658847330959138228350362205656115537184742768621343207175939063477785012454248997208406889610233289978233706884034204434506740438077683191862369651090615923156809081235940303735876200159740304393661103016139861417046937381366602646555408798653228789256021858880566217210416633041505671807339480302094068986707696490149301159662224424953054623765585775295273952606903999451774472332321705746531957547993145531342064419534449768453240590090146838167328322689698601118176559541788148414192694737811855624338501826265747497594042013397901817018917398793476218547232087996802233893455028746238688091267298769990089550112870744489723121591234531117508613701820626800472348690019765795809681148108165094986686270925948978346505611253322987982251940693401350242624115766858446715214498831528177414519457854090889125126706334594281000055536393893410684991852142857279749163678462098117302414609729141080510036094253555993914715415401828519291547839402296908069597607222467893196797790216366836431908917518900751409811098105032816373992568990885656849969198940548490107812398577098338094102795562151247109428684538851826089909235812250533871587551945471035053457623926909785685438066785822859562999777276947854931331437841789547267988488716998274594844190715581695054147026968597008409774034616199061621978648865858271151845179465508506314415503634091588487162611541736505398594171881892193306095260158680638734448423294508016885936786538638059561207856217454169149876085977715153241670513109391336024484494903308003299993715586384393727575971838132587122753088719051372772716751777301025260837355123991026414572423232341021609456641452335746008890338606267180250006572631012720065556217611719540702094273763492261117089718485790809570971010259382969361898158743058278277797968820018187428927573227072858481502387255491824779130722055368489097655745728300128563464753850907958232113446972322191032053062045613806074476138726568614137541889345153860670592201434130761082191000077855938023274170100411387891611963308423414824117041713178562395782398845803028644905943344857416645447076203865629847438413085262335955963826447629462406357919801201849179166823657178291195977156828891715627833493356678808984066968018790118978827839175017249822690534625086519026896494269012033969497178229991320785073599511102381323710311277754053454757389107864817311386388338341658501014912892800315870122421044117476461214262327220570940112733362222883488465261922035023662961001409482654488685329177487363540413999626581536284559560572971205666332247488615622631888573855523701368992092522734548835696055068001716005454099883440444815684793982407501510174093161929328369488804077383104677569764066754406840453836984713046868114995245230581748260675763456591020840060534573489058864285336961988943152822409273596214755411703946425631902774947702134920681878082522117985661171061872645802299713948728380396643386320459054512504767019829212136727871658597782448805855863343435062496410626082510341145741816083823165240677683001585542666514619097879963719979001073554603976216458433930497792455273398021744419502032214437141011919573308580746242730865423355157699655228368102309832804374770941275995553066083205834496778869472903101811677328841017188033432959176569571700649902239166577301288000117568328987216067911507715878321935810881113065392965087768768866958494953593277182950798895107520994745780488561026359346410721236079303973671102571816440097899549168282365935679732362658817512211958323952822773988023301067072347543471362861288989239403675398680747644117699007400724029157277921991091061129352597278914840225706437414777275375487431755754040630040336650149921128712358467438688247091588085560340078024094698168485864851751331310098165424745733366782319884814049713585980813181570895744143555219537053936090922327197002779112750334760876724305104677572827227012520233297330365707607195103859507909679132915143891022394241711923127974180803352710223590695355589361444383542909687411355687739107368889509060837229406311161699375843292615245571632893296223363918730780672105473133213288848100984990745034399325648131962086362512670439781213780625385002443735199433436627108403249334965405075607147170591259268650680725667147780694501735581459022473025770745177783396635500422794761912665890559831504198512461916959173233290331469540978567703702057326298128527851895220039181924920285391931849429144491364657183181934822701796733512542310714512804400691220902947063939750869590395505442986624699580335985425024817871900365631473112695749525789995112196556694636351691005503033090026915121451154646862045245760620749918159814938556676230968328394178178104294127122895685018621748143700471398927349599644109760389932298133062589902503532323615976714259194670392102526152543172727608979372434490762499632889398630451666270862911947444207285652250883678207364308877865512931578918771327505826816915034675913825913013987367757720634329307920823685954800642288948999447138585916229858515439517644223127925744150637233331380081704703993209198890625243496715500361417319365304404981371849540002132370354264463880744934587592120162744753996426216459044515226800087696448395024898653415960476216545501108382965654484583985431110957305096917557845504316814799010371924112211957415894002757517905689593292739182916407534569174192769648405105939116719555176646711868674586127601335939346124581577950846652661488045556250808628356091085702143526493817978849276838734774175693864067532146643768743730626780974719407000999967312104436812827244559444037621298785304873039730488148465694869505521124050873224651113180197713881202402167627935715337541330296961735469916914604539491059059650632648087976089347098865411635828516394596150293101368912610200142143708723788782987691893538377271621317783143394155195900021005195241796693497559958899134209730662025937172629938115879158334069757261280494644865526203739550261093738346523951809715590608549789532039039038227781735065948318806764077704592427881594708907721475972097940877807718284112192259912600925435933729680343954926774728594874198298640092415745387030017599901818047223761957902245472086863292931907779412534678514122664736429016533608475218167595342567704160391159894227088122659874403872636394382563999217199405787628779617526703342145844878468748148391944392493277920053113369148974443413332075289426089031214314602089675624325590830911944625780378707115995025757723993482483781100595167801975429135594856372132855396609366296392609315027045509789235841706485030245918711424776609582586169334672340320738699902075085992345525540031258200187097561926989301698713610404686896473130903518058387600465926716373407457746810915652983382463532420101543990722146534538144093597066954408615476527169925113090722811821792568736693557196330361463802340996652872309814682191087260166091257061328843718211617970090133583938674075224639562690683610668792463449338336028682211679982534577251592599471105939347278726563108541916964159153975708998627900915944877671803303369665837486034566384767288072191088269590417463319254132232039137899876520142082311981302597581800175697409924119235252786189462727747626796281892061823995344012967573533790624967260129779165365641190145271851202889528003505096365267340104063854877012253237774191556345362092610893060951376204908390428799406219957373884725035530071039062763083967131838536141122632650587272313541778262706585860659760827835096465411372995385558608807326100870467254909953553288937875082671203290414561003710398766195398404515094734659300006009015056200732507209921147166642854082305029848337115355871078602250899197836371023733163278763693432814604097598918495751282213058439456808908989450932411847619260645425714149379853965726976734852528627720044945996402377993684047666630448640091255888237761100038414483787578736717187849520996212123060138338825939167655279906415911559921178822497202459678240270347859699064625450924682170331352629558987768370657636488215996420791644133234096380906215756461729914276890772342857400553247173374628322292900527004815143504693272972363738609694877219510997902040178448635784320719432268688687746327496946448760898556541306252349449850493051306354748696108313374985906502279426901540736723262375749096979597485216195609512557996755037915080319916764185826303657358557805802198223943016817169443679188716702221064141198227881003078113344894659052005856510346873552471107509648759455088257924458002066121306093472459499025751760920226096586139000114968050371901229468346759002691486331912105273778045217479025246066747325751338442052087955590827945370204387752006069110918095364156373859655455200602555627705209110308872637631754780041635088509306388083213148901292591584930412988409179398961577562421692376862371637510992988035416682663242595480858157453516747967925210660470525932482217443366356427586441045533307980211231247803748673760259171677934038233575923627284898949795292000688204974045791106058419086337851874409769373888658467585765672786769721665371586505018922303706419810680794136977468521611778954888322235883316137322515730979099656039828096816669006266585853639258399535436089741636120551290388336076752666249152951230762627312853247224495907893236783116845042630177814721695981962263518146328387445225425855637995796307305729796780832980805403509250311790309375358160452170639435112327134530673220548822223475574341382207271151237941367403004336080345415142390064658606852939421172231660409200294719637616654076316678711651369382086073748162893652517004684074407001105391866101684463913750780930660797380598750457626574337542453309643812714241867085086909479375099330194342829509766357789692163917485450291888810634690527285943015920572821345116245972937058617415099296161056125086802882709127603894662766009351307678232487830516589393146824627338894378696420171734435220795869788613897259170895652466923489181594204821137153834188774427813266761616233192253490151597205275244431153983771572099915474002308665650476504994555806110632829504515425499195883466505639367165959672910527986311218684423305514520076707895108432360475352839796337445697568697061172830642054410472452993818761085984566936810181421077775538750450553321940276915144116823772537936492647630206677810468910466339993824226906906864706146879730533275837732049281366338790113853492533953935644913459750857021098046517602443454815060428960037776288215014853199473058632637004887238668307249930505078081825590770518579245810480862748514836147165244785089140585217170065325369364333871278508190300684424511794242590810986851711174466796640766461328483954495109950788665908622340964791268117579558925163134593268433421364627261764136823379259215912940088356097347246791467811836428014117650944280010116722525424244107016052942988374105334514485609313782001707724732194725378925755201967741721578824422442352989550502970719897192478686461501784786502888902325351274415901363790353971762185196690095790673861953003232529019272355878623576442923141763599963060928495407968445441183466867429892533767666116381640405348619024888542040475646639545607038490513073311427829849729729997506376682939523988863929275412229490162021090011106473344057970838293550143084281493016535890712749385165351262641695976949458429583093993696438559343842861617787768540739018633893076961076415652059074865745454413807873234445278028065723599315046389318125726737531307283569646844967008950667728507766422373852534001634125231591305565900765616798053564767222306841771577962504799661889317302183348176492406856480914185120712437896633380909538725813800643933725886084239417765601934365326889792712904204275888737029717890908592875419481113540617484339647874416360472373060809588684228521398770462461395459012231948052896131934139895153982584798110078106799835440064790711642262340107754053066313349234053418356646159037967728186683782559141036772625114792369153054870076800218606298738912234923931001533877965743032259673803932513643900929106110968693579985736462556215661762089687611462537942546878522932931298180502955499637651165577028088039052846902365208014968351956692853317792932967401478047504837521086193617093867711059223058281849992005481614640272869061118639289044734330954444958828807076156881349666723230499748477938494912868077533893277341875499636137865975624684050446815103053569932803141396624098208436926441317014872522725784298120742489640032072390109377636693624629633869756641274233203801459717228106803462477127367619710175660172915422408262398535564371871034632987582730621718405659223794342054975577716622837038247996637133160019861147972359305676980481134892420295064107515008930786374718160300391228694787540919544906355740012623303537518702461324337318857312719670022287457252970225868248072485725577589783331899366053286053930329168363633005204547254767424135571131805366815315579085496930705776570335348274230675659799646068824865137757918271617874945372610173030973465807818189944629281783126772042634113540953494012647516539985030674160513378956767828794684629089677636369401701501266437006820571734755436989672192430350686825554938217583670319462541245676198676171746782582538056237951336857277775086081712253019195012286245029815056063267971977774086276275615554962159823579076076581700255617640590215034783842712877506779160296119742849765829408852130322676958544416652458032334502925761394373582276544177381580813083116757483288606919704523463377195620098354981852358821727498902997381303438682705059577985965903210502711555451969345910629251007602460296750692949362488304346090974770325157850718067965053976097586915697598811937729268963320585596262235495963891565178314014348665104146706205421357665577820552759406482872838747812902595460023134478021669894555506282151380537924263759642826174871994737767916265234358317444554869120225872255542636058665337438389827752523011117373563312787365409227597637023986687855865741826587918570688153069763868460743338267291067859360785550825128771372895395656907990341578932316614331175022572321953247002665389774213839402407661749831202279162552854743170458448451236267334970927521078940459936879003845218167100235530199035909032240704024037077956260745834658761255666861699619146734817351153418479760312604569579237546292715024841602227984134439692488134696471733904831696800440772061500508533001959717550713989541034361139177974015670994460515345315850300930628405817435757528515732381247198601897029674134428603222610005559873279937858651098083239187543449031374976547473217310675031877109127131169838908568554994670297780140045229896206727261541858316063760158498327499395623742474765008671566014203738513883937359186970129851708057333484302841812883873918339730768784778112477454711440339496655822747716050799893434180708494685441081970761454015453560912411573241763822171782294892225076707715379053089335264446510140905107630780465662726843434586031863160218868727073009413324069070113482469739000652871225667268285725875835036275527789722323427631393594259582602387652734088400815916630952129153105746010329824387876267442095052668568043769324558097545540062704774976560166115894617188889495112806791480323757358837225127104930350980456007749029230459924448361067722826752462005062969065476202477503104270371715882364324844787041314257422621387880176189544611198946572181618180588179283141491626866505100947533545537231989836208549922707838362778366828492010827957105845332129669305119843993200977380703266313029084006763493876699084566724308968248363134702539035238116013139390197881116446074155873441207469666944188335928214471509405302220996601349410190059796535020254291515698310950022565528468375549206214801310777069639104284397556043986155979933115733616186633555597073336433082601990381769267901448493972217034340813492330242086174573204200322140457802351488003489621328523833115382091824663554571481017281585085801634733489067451270718157389474554942457194357544081592117955631259266493080277711921407232448136371892595329902831401566311834275884575511278561050006468587396085486169391068799080645825195934361886411922019458318622876754253478523184431581452600583567766799280251825017037745070819397748217246308712090777268444951127387457894814822215316944453456017387147603825946968518256409619119036642857710422536466274664772799261057911249404229191817475718728823004999324680313086922399909801920319600264172054585320912270872586998113411280756084087414139617974131265498954027564490175345327612504986646276708689321585154774370470649584038220221034101401569399745119966476127939330212608561542293051540620788351301505381714617624977492306623535955043204795584761723868547600923940265352118233167474232348800460327661102136344301185022501941701207778193517664798483281145989516609730844214252720665684842731058408784181787635973113092901832936153387889268887783026304538644582278705070438362726512300374472623871506634280514019088093168843642222377179469433548429943718727120913636611428503573009511284576027482024910113579498373472867278565054336306784087117203934969993380761355252541509631103255982787559514820407108111902526455432304775119043841926038893989917827729463470205061207506306320057159522483107098571857633096424600891471643653647645989658174624049156003147072289556694027366749142794364056965345878448197922017558010191249630051703771609502150232447517389077180364471642960617244782334243586530001572529611639331450200701545505718918159287657285361346441892824480664013146136453061344953886536154091243733770655645075597064943159287179354205351208646037919737224689089810079064380030692118315888093941386103241152219657526122488346696307805961481145411686586225628752588782657055248013944972271356919760661518328459777166422969316373657656875651378008881003856451347023301640559841147376061012413659738204977750825512415109400902696132447999757930979557336832684531624502586347750578871855132209371730647358240831534503842622807863902951166245447675550559359514639294290731880068642373510363586384066112921457627887166896819945620853025338487678364133093416490235199530442337305289219037890221139476558045483280564483088571323566129049454553768388672510813394976561185794419160660124684648031353695315880051061576653960832872642184014781752132327603715360517061288813827167199079324849620060537662826304465942898498505853024537947718983385938373379555095515922024584215230332309203989546367867862055309440937126961890198598849952660107170008948534531933532509695078159448628800187740791946243728419313837459142398243411405171059327532275950481163147767029573395774722702162080881986226718593128028807264997102422968920669390142361040908549699544407109406613288175722497742557183841852766187444887241863976539552718620008924036166941763739176898868065052144329954285445458931278624831917384624659590900118264472041713282246959249656046103949929070504413019198097219657786906193736431436285302911092145748433803834259314243348238023045338074757115799187112091481674907349409788017901073628329391457099236735887926158260719046743321303095782222257256105318430613798923190869875755842392822117698172685828386715392487950687696861196091880639510227130863066392784281916172486441337369825085322980063683855738847422774181997762433078111950689873109102806474761823884312555552579413469458694087173330916866938683819451931385529355374986390008520003516865447169972449246069569219214054029509564876486803024369801956679865987166838587034027352842401112124017974071861760994543526811137842971278553028061853071579950380954162825350035158031350080623930698398920981297837598618059570160972978943076848817062627252543795722441339609488384450470976665613841628067578598124129024167488340740844503729721571704408631839441782804493114981345556180969407529159528552909201615736672972619619721770407117670011467539405186427086976631624916131377556288615582184053507681780205795958534477581301592434446046547811132524719935767366592302349882646495400193070256110722827291933214318378824387819117488462094427446068900027692049336452068468990473736957022214362727397042855292392202101424696684280421509161618852748274771945298996417047845143938122026415940182756475706489778596743699328252336587504795316789367364246294830688032074744409896779265214615419375412805635611604216107235227765469102913530479883794664051306876093905513167594885224568349395711869131752333374964991770516709355598148114165039395994138586633359597373673562002389578459333127837378087677600459324338140985136821651337869307251726608498332682985788560207510549533017441906645221377527845495920938645625209935295945306789794150537951941240816516708433952093896214074303097876577362829557018291526784377689875683644169266074262549692730831982261661252097801737305382102162861370909339094055793817217970475009304556916060992574685992104017049628628714433845976175304449232232975678446610325762209440713380628574152341896605169272765652526125069427217622816324094157899300809125172855002494383338536568279070564937997891827172166813588378866888327989137651649833670632424703848818616429618137533281929888225698167403163029429738317491344714133823305700004406736218801675792053889618448474694243071497051680539835040591698760135611979753596772747015757476399960528003581123938431684961769111377623271008228531578461256521494722196276357142398049629539847910121905853043492254073401783856519289036409145145636524735722750109411178725997786437919515167071790886177934161201563787363072347350958209152328094573618022209006386268794781296661761279868163431909295478419242362214368177976849310041380546348351437969410309479596220624341242270715723083433788458755647717874761829106901462746806875312752791549012568310121194587444641361946514194629470038285200694640646548071549958959368460339640573605214250278483986500712645307369660968842228367936350504842598071415501640737992990142434138733541014234622083243760184322531977829891505365702063372721963053510066097445490987459779373576398555936550156999687469085439444340693559489548095310606924755251012755489707993122012625431713407991919151322785646115344080718307847267330049256257516973757559360958326859577673073382476000257329741775247838992951007028049608538423010264958517972159364764943423210341132428390700852638000905860546419497192436650118633360442702660580933714785520266975045493114354490409586535064763540148070722552952606415615065720077942521946761662273248395595111861488116619537046856929096775167511116236189339728118556589676976220191144241364388733456684798474595894452768513019631907083527942455160459581877308932077534001421268909006162814869671849282394456347415726900847907157926626066387323989710062750328979283352177257126811914444661078700064372390281909879024209891043780119576355327274687122747931254156534663593710294295959884295577307252764618766769623954447631027817061799421664370150411659488422556087778649226281214384408765925316671948472867065513229620851270195068813595187500204956242957402479441150476261554881308542262145178153389154680487598158271238475044546612310748582548250226539608473897105161339906540128307198982315236683549052188424434790210922761078330060663732104816033449451567371237065978429940992875649368393669196467463052286842631614808681521637350101301919007811469750030250567300399065566133960196464327463425228923762131277120470891015965779009592495774401113584860294120431052462060837306600596747733079680797825149521464481506865244503220538846067780848169703768549379422447089141299990924293931409830913713590409528843257107926443395484102576567860681179656680798649780819593564248327780877369931647023359910131753810558992106669927620004740574810339122986449710348347211348704135480294565670382796226126825911626676189664121425505782623185862763245666455693923891438344545683892876336688708201166974412082737502006834315627372720993233730354952893367589944856498012275295632327513783252327061858265179882109363558849665283768395954522249878839061772728797475555390519463539370777785428813224224779890648523227675754365566185365144237568116844956919701432750034579007946847493290002370312899573995491185415319302491867169665226776506930897447800307557424483561437267205598628097298795312249638737827997246394627483730575679250150028267447271182186613105904035581555453792260120487484787264034063355469558721644058638147532281812446450805685295288582518785425177936712527488278274402217795254402377385529460355662529114594774781665933608433161254383966584219736846658847830675201729559760482083044976594587996527718823509471825705371153897608849614913029165334520808064301372379709765849218155073754084150178459246265304669963255512972066159946032764632767718453072840952564087510562283491405226672405724800075316702343776102068147779043220637258469928775532462786904474854403994644046149814770360008607685782909034855092821222939887214305698581736846767422792281998139422604312993334248820815108880700339049118109080357131005040530924705407713712080076389506753836201502913429996291009385479617419586842543888730278656379229072318951627126005170921897553700578065672356923570901790271294775339805893418259077453428440098331617151227792986236307870511744218864288621586575050082912708721746383207158066778232338338750817592287684479601775497318413029528663477924449565091843414755334125937543914304322581207777313893933903458235088717558714848967407200320524384807072418458806871233342896895914514368967018427957675263495827534854863100675287125731503969668152220351615056741929221012058024106174432533585635866383554552007904178870262040043177872494965102328427381454496843810601511167080409648531298710236529287056752417210084281774171905937902334036511759751256060133642590104748544954767450264233015963679965905963432838409323021667653270127261734984982127324330364864056281256133075818366301437662587611872301131367806113055653322521054582301403871200769147144899812134978908284674464168119109959888149715447551762641472440706622627217101374704119567051848253359571367494634643848679952179978240741225651319882055133331702971674248029444292224579333259015850736645145947087775853988451655835084989384044430834784760990930205658203923212547622470248225570494936688276952992089601208019348075716150542459094024859829685423403358052083824852709902517173826167020533342486656486483078192255310044842781902644453947744447519503922373974775970916096672455691492435004586790350785389410662479754327930976133157511924242187846661708899779396084610515132155950905942291713578945548754202269843863661648047248474615780595604330278331659399529582139461133238386677699052440234063053186816820148957532239380044832209114995085695503393457072964398538778041881946281881070519516224709838333578715294827801874424014962570739885030640911278843586238700666731701089726853553388581754779976936065928342479352470896391415804744374664233998462563774739393762924233792059748499563562675636944994485414910257309511717884346845082218873212522840693636626779706352824235602552183375303713666893980360086217657629970016063787049372420707740582403642838885149487745298363951502651634191258909911621316734346811595072005719873550242823267917081125201096516449489769805708792334252240518248915537024986815551767673232823685223418367956409305334600758221801327599211202503022541536103778780478124587357821523912462848718569395780500696460379903474187887162291317537866174622591638016584543499795012359638930132845190772700642393724399970986864787363457486928590976444754452674059515761312503626539957838344960999111870476099237564677258784761108061628005873378958368259560029312457711813861699243534499040358435093994176390982614643881661099399220187080002722616581995596368824334496139335634299363692442897372625930151932444338144871851553009783413577562849299998262068629346917752701621550538352225750136258630859194452167320361265469017662236083044728084115983465801747851423252053356515438459471269493339703529441485253344980848523077243781877079088834234218508423275332491986659562737757075522111929850138445165938710635497949505840247009908759280183498261837378618287611924171121887606344372588657116830081220451834517244034064783121872807148250627609644872015944516998738653796899183276067293793844130077515387560491414410450672459069269552416877900261632989963494785678708851963850212317892558618500133290554281285535569608634653568440970117761403336274256949144807529555275923366180225038343101562551750563475722159229982942636395036034290904190253611557219653453622734636832019792529322851945794579866869935136719978101321864575348345354920944236236910955860914072885515290634246329496061769264389552958216169233313988749370312700155407935960185710619445009145045048301579012668989080506490238528252868605051491168976929796692646728455591510015684489783667315244214002384578427550703167855710303881892931853478801973846553371161711347356630126233171006177177237849695997889527410735439837556587574609254788599820810817417808271733062889595217634535055008865182897389593758581366561237992382977453898413384364226251961732905376790807397276296726666817146364405742150593745637322044320839629704510331556356885541628043966609824013600786578960446631623973603569224829689700891415935981971732486551988973631397941762051369696122940222133142691581083428366554697593189329980421326909138480722515388639599546030362697429750058414197570546449422214727814378545217375267144712615190382599150527800678222469714856236609280249749395757281190491085851994284997623594053001584451003138775183081410693048166124984499581289732321765364963887688025553220401835464504486812488797272914479344149330968836453019787134163692162334967792323811954145325980804897703922090787237633586156116792888014283625090483731767228052970075780691033922079911715894164031977958872052792649007278335922618344933820243067633943677408019948227741833533871256847075612617735642793741126367536213105005766870994960614688661048722739692459717017881494075494555918538871256463482904268022006269160745873071603509092658537949508424362373711392966341888145586539827293620037573249802123077512928613391333303070471823107708284676816625784992560724021608939952795499795847382279200727058744210318790526448802952237184313253694071441096989627904772447479430688083215737821479729821169397107810612368712680060649627346835021813336370736536618836316355143585705501285721298614428374169886727526224069265287881234252436528379999678009688750404891127579893823355821185939519085719912748725583630898599989318544554867360032954616293041206319609940193174274976946261893205516317579753527974691992837430494027685792576972864449194737347951870121986978980862586540044303978016527113997859219055773284717914021807924926700462599409804733123053380925011166062000852433189586164709931614056170132293677095222511477682591781042978919452263087850287246329003104129555382804434045616584672843397485489155770742240767672801881792847416451345627311020084161825808426484483982498018849106702804086514841354392597369853587068000791027750564161305929249039544552721824631825626558502903201502014674763201509466432446847487203504090428258052260330651310086549961342448602046923698581238430486647229979489294333948044308673382567065031073447322738944302677683912607433751664562777306013251715289589170719288347290393223493172478216436997847216353162117124070784476490796716352224792941508015709275523161274328725657366338844719128075780074510819796158146947682689065823778666788296637430678994995978864610964941690963431899314623777239036364194947511923115812752874030098780643178888472659235181776199582456686284770131860430388032426753088323091244078497137804402883323243949098445854930813549915340235350499924742917610329338951786357919261369235324979902923599705997865351439710780471636458885440316679312059423468762817928505452641139906933782121130450401431019392368372344894575543203351997765155831799387721863399584124566246854595296761237231408178472965001408605450281296092364677252694369118633560424926731764682875970865729289026898522145352647416721639919275818312239499020792612616463840623406858623534661778427479903327806481372425335832399215971371233772407246610003582727012124633906764432502053844797997070100512556449144806984316153027157838127624351810255308973168230842321801211736672467310228192496757205117730301279801189709295079566652059706322008980517983233155692208800824851518926486345853602103695166457853235775390669602426983891278015612525608410449924369446239044102174751168539143034933079731845069386950432472865291855201802905443944347984661276399921393307655045146693596652566601403883944346945590055559851782364945443216426992416181374154961966716684013584952913631411109100286961070595396982666188226847365688155545240317833890857175822539717856834673934953058342259734833737243838840445662991640410665988367150329831928773615883686810920320290245437615295234443641248661470146148697018102555775827856028958149072620067792875191169467261621349236104617817203072171598549003927604914454889541189532067209603725814038197250350440391158528361032606766805547129321907095061608441240243788179964517680648743771441821735809720165564841916852834334546113085575823373983771504583091260131081712451897230436615719775108671828713503649584595572060830064858960719800467100935840610683828065684554400985089463024637835297871278163380838379489816993781978847279507514495959173225722351179954269590913286393200545590941333859487123254233067514650245034396626126612956698774453495914874934484244492509781756833238877730032577720560644457247273937927061182466840130246883178672919144954414264326493883200941207400654131461640077451746902245301834149210121933384908350006506380185333978885692018215240701262468124372987328727108328933870667686670328997873628112599503181911747208449158657903304644933889431682830929851425939280376322696131733814141866084633226242946070833109641920480211433251086608905934361409411453676659270568353947997722949585796713900522144117101388699984180494091656985762931131143684750408124557758595059516954230721421269458875794789702096681420729870612328767905359417613775870457614060380378267042086964855257281403348328647941512747931941291140664513818183412771099999366233197816999613279975700999884802324806696483635359838041750055803594643920489880344119533507254613914077795907381447210644399489484298930413650359739422137629322054328587172749120041146193682038304104237290894084553664983530759265572481135076789274415070952495143666796179540839530731883736733772647376639821605319678485695750510858569446364864581520568704890846035620783470595395190798988301508717167024839341282778710233376858204929666309678443947602069760277073661351566101415919577994869723087329130248688762786667906270759402448027697309092847387356140345305362218291182172812321550330490476950966893312081881911624842831115660322658841521137817284201986797070308535029726022050247026317580560521633389110581387582334511148298713979210467306646953684996955881900262771931824149117146963730120904490983122895014881602743660898810381194529766985448983657534956941770507165179676101160645363199938114519460125054520728415875516407286651333891693984969379938125034545495402395329379894930607387892175575146161451598483858096626477751230875432989898423172886380852753537928597392773258249808790826247974958538459846281129461700513338237859819679011726900491963933669397553817032296401203367950252235558963764200257719370543077085291957071226328520554828881764531189446746040913290059630557162840864416136361119463158784888897244997775503907795823461902734571163095891450392528872328056940078905060313295918017774015051563122956050961919495521985096407003974789912211725872294816188756298844092668650400982069090375250426430638610739280624870671281661237017185616141982268326097506057726848532171744049193701776646749060751530578489792329097521517423645105653778238579458029940056207336074227550422960349755183629542010663875841170525351511632748048698724706340690655733021501582927519034016002444376732176942139201039906275104552532858719817221369556246366947860479032662843530799979078974315154762162695671645266470847489020094152342540248032448255548484788844535049494680803479114588896270706085867910410497368757875277075024511965241916220801120605204635103660910247135808834095209833933974786454834628058420251279812263330476994355355096123689690579499130242007542647491646059013365574269931496315518566452182141781700006429092889683408019504541520555034771703672465665671838347114993426544228104640904896026322125816050232791112083668631080970655638768978474343765118484648544030321958234199474133400233660569935093766356384603767789659664759667128543249811557307268365466247967470912821605857759401197857557000033152880570290831101561652940078073139397429695035271461400952304413422004092297019792745614715712337151426495012264544359433884668321857865376003294574900595209920983750693912889754607664767981031913625237602163131707535760117271243326227938230479462583095497567455692959999797567021389219511027077872539111233143779936095911073672309284908473185530867030780968522973208724833641784771346660243297175396766342867217910505689077947687109251781713780567516757196750238809087432339331708040126397129867051377843108698379403529104816631163944049934559421058222887810932308483916616275694672391210511020928372559875935120930997980537159197213074771842577996330370514309741824592356003020465770185476109701115772071261564643461654266670074282379986761839647407933630593167940456837911147754915352102204160726246122198678610379678102433460889124616827726585374702086991452444204337696691330797830700204275930341719410236998205598997084634627707289823619392559994888096322034540375697783037704181213890487537425689524797539182267479813088636217143207828218253101493563568714384429276252491439066597178291661178851035411609271638668928229109946376508677582618186042573049146991264416177188860943763209471842953092673548652837213518993112221379972663715149540764284120595739674688831628061085164092402289883176042143872949948508661551295467785109297833292056363345212100639978260314572415455534770967654375183245802622037744815392836334532857560240022046838439144688135191392443081374535291240513320700623546035618415684689416744361962021299007556181527808108387632627819812453939281441615438298273267733931862634690288701270438143854352542483646015993966460971504819373327930046945962000109871842210068732054227189323571610607622963203986434010338622056178499257950570433677937060321965479361426543492420920392189829970163837264270438348191186352357487960540814419447961351894049106521229185632129290512965575670356188825252946592154363648367032593290606582352360578157174436810653913881579671806099614638116319256111635139247854611871563511817570612822970992358015583910402046218660746828959447058237752273999872809145425795690543871975975775156328141150515777992157349412047684523719532328499102879893139669988446627375602691420018114696820038638018839233942448458639000888719368774594835423672279429399012029984952722358792759983321919581492122483148711486946827590923000885464947722770587511012358216275764479057048154024003600312758725344916390558619935075333127799601612386186447211244868173317378766563651693675045036138902595548702858462645835808884099788878587792994447776355698787887383594438246539507843987328586201991015817433910200670191736622812929769461872823305894124631088033908902135446912208648543398703942140301176859510472943166010266310197954141070969424404031295726130960557401929694758821648417764904657164342366117529064588783875840262673122363033195375812751491933284462891949135913645117034658224550630372023131292104906222209506756397686612920488531885857654766791705551908853323509055011209769013541716931506831243531586653981274587722514407330420897484572814326040094665736084788290447703884714309187875943441084096394353410452303605047240328742910271550207708778386408930693884464486061645825041250422146821953585305831643943174463574291134245685274001889142449380370052397045496175256239094602612424345800689587719501058555417116413598337774319376723502124185976962247517220427536463879315953142252459283626722804583293469297175638618253596075208989014537222729484025018451221559289856694875067868450650905498051420870920666171254866846462720087883281014188849979738214247619520211221082974624199148124692789789755547616895780389535077775411737331164933452992307574053356542321384823284106534728005667582222750460781886690194336992201277878531982410264670502772951215982506538314041777554947713551372921518425209063735433586680324157710468599905481890954691707914660091640129759435687577549022164408760868939713690044985626169168585207319634465478123570191688058256022982699063952280931717882569345571958851643844682620393845875324107940108883392879940931291774143212943721741501586352682289968267429921870427090336465784783702064194317142389265331633248663314579320701138316623639785140925905286184805539540574583079001611006354726894099884850077382787452601888346957733288572098457367115357261413320138882186340207452143971410978514380230934152553763622385096508661339740870563090268862608862515986048784302476111283635169409034188896541384118776319961843101279126715767911061314383425726861001269109357224596602946716024443340129461604964200141535929458127162366346667734088070093634481163370893899775916326393735382575191274709235633536935004134546349649572347995875440903537818317508373015390310542201404711105416191082311414013347493833567773886736484482362274630839153977870153639734634466988674887068002959384905479594652355274004388787486021556543773946918048290352460895975549938505713520913958672311480336937886392676589126285112586516248757642581058462077393179276725385504644900148639540120258423615731421997688699229854167979282080936216814663628947968992471795231797812877829567337999451145990016616957868391894734414280023681551214949944507869730311385185559517862216390244772612527274866198059818669247524585332666731673836342831474037544335245522602316985467635472539797383875146925171231494930796504701148605107563780808207546878947771252432093405974774418517991207139311297894112411427776318466695696007925840807281719064719525906095697145295431235694130887281659032943023532445200875546959047013445475673585028594591307750903659228234883919155562140077540405439570839057702175650931545652264520286555244626088375531419739887399899055601307211949160501112985706128672112376495271072772071750195615476431281918989843612726631277528048760414132945584077174347085181280099757394963630451602611823243386911752993655547022079928119381132111057646180849047901227812118065939643936078790575694843003605236736526221213570696370061005119322335466983254932648282333311568033131359721504675726583059834849693943459234291874613881570118814479036504538872912013726946662895219248229161587595722849621471767131218980170917714838891391163107058929713906282361622523186099709879366042948675368879507442021118972482018650594030814386893478140020757987350363373944570790705543380577161174025156362823521029026379577876962557959118919390701813767672420368987803942270901144428520202288865912765924286073124210847136285861408511604206834065047398785913817560784011444726177223836219058480888457215385953061916818435172301931840885401007902135005103729133381386082790678012732353989236101598533438391974670539222151150854744389128496610320432142212250300134302295924859003420070172639088270089440763956984079843747914757699334763564972311444735671260657005274071104695528188690507203868792619999380610284170844397658740103685243374198997381765076892257040983062979024750345174263258844299773473997817550872510310329893913224351833360673987378608622484692929156477057431685481333208482442688063723355361860149177221502443357066364430049595110100739538489977748005687225172557017635084415344141211954068767945238334977448013365953714019382762134423360083703703111955809873361789584982397776414172535423496758127329065997694412822687262815001697981764151469615150731322915719290948369041179479331100850063295248096234429682535212005387069823835155331150728024832352643408929029922537330575800807910222690339893967425765453259308479447420105307036466848752753321062532177349139782007983555813718203001791844498255992553665959322476018909498690224330311568701930683051605646412436754971089096621550519899759223221885071520999732449977042987221028532916042713996280275567224590027455317454565798087103539586186851520723373023513323151443667428760370513663522416379454797306140558104396529582245322004542471520736317689745099105163320372766968946779166474507097560457956874495213999740698141672885409000618336946183899519470244909400239894541928284372243968061084582677855513679663321479231518343208663010016047692398626113414032624876455851965489015034427258046741494482053778314520844485681224346293314654423512713100333119494346193268567769055802158594236510689046068275668846053571239358467747039638036054620962498310043902489004445072338495389711722551305074126123143297557936852166069617851399197014794109154517640300305131080598146150232626942281830286843978586361694139721204814340891071985306526708286263076339202145369774240590607321156557801831044720620537269406354092076613167369252786090681368882815163078763878719557331411364066655839669465636168889475472544217561621312388468504139071909462857822057956143512803228645366369575002061810011901151524809503192819698747765818149987739599884601362462301413659827888077681823874349048439201826530309422286696777325584001952052832309734989290212488235634311907732170568652264533314599656447739711735426919401044589080168367233272484407278273724064181157900755498230294779897306247755155384724021584284819078677036448808068432589343297300539510465900908094895565496516884828154486567047089848661478164189798883021535035442358791738130361373095687627312460772427263774952250621034692018629113599488814278432816732874285341675321821971388281340295207558702635824486068627523036019947389705618639480853900685532287323370745663607883095601472187609895137747698088328420382432285394882429348037404765051259895353501962555019362122305819523452946732128811447778485194238657872522367897501522464113129675740507034779420296393710079379578092281114483311314788033698154997237814401754308563650827636916382250030746040890005063402617833719693819439125971042316636555752444033338024596391670866777008027241362727872196012958402850889726785058291168704786271812598921696381344726676157915947293586071254246602244515587679286700657050222394177485037921430638893120597130909222182812746626636965397045997201532969572323559924588804803772188702428418641313788485222804358985153792445737376714334933552331421863396012540354254524362051192948651263114925699484195938681286213037559853591088685890320845262774094573339006944017396907686494582113476120830331113878804150636232769189558043838174278861040550038606476397587781187514200299561656193806096587551687318920313471911933539616497565269368727441606271521968516517462831508484616994580697512093693017536290472308620758582486395506060002582043292588467234112790453510195517965533082401118472561817374506059594652527289042941175342665871703915444937654731156094484596579272355166667943057367639327105282231874581750060471183075352273731081225296180023628474571572328577685914031983126656213899715056910994146516771815404858365797436088775778214725151414439292299047291891530780808717044341568985278119089601024439754758281011813737881217266237121349643656335928304991465680113687994412004053462638905922690118180126197926519199822958911637931163582620523995826468075893584306418763003850229994235511378701168113220432201024912876463064681554319031286723621200109180785568461371037374835577676613901220852929792862912670926145759088255220671120891127941496954104111050705086179441125253283442329938442255617913558865475233967647856147046157051565907606687865623139319913081272803542016683222550780478076618934051465161071195994246402073301585500664902121967677761958692030226197876445096719158006036318342273045001774018639322210100462128034995437857311993825784875590304068504670461093652888018573967238008662908801996076756051817897639278063295613320042585637260322889914823247051443298143582888524388058363493238197631511133778024363491914611435045042973964551868953039607770472249026245619746832095471585385594537609680912120723912337656235778407556905657771674960056751473205279894780097506695563965083753563104589130935441356738477911925268491289088218878983361996922759008899284872842405801824600178144780919205514423929280878239539993558903537397215657994181075579555362541447143056477645726961320413871216353055924746949083792445613651522656110964287065569856338575498047416954384351539845136939582769588056453022296673350956561171931769156581796270542646581558343577738295551666868811808001489501418656542911586107079007369466566060721702187770256347953591587543349147718779601203916200890842196736653348366894210538769804589811982965126030772466142556021094984518562955958684714428622068303211018718880793820251329647801881178317821588477148691986565942433236674056650908824472753906628159431356581576893658743200860689228296414444110401577999462239511236502394186845841311174182987306734672942648205215261165959392291721504755351884301326744205247934550808528630164669058300508293520558690746842926478085378992822628030496508284041596611197351954061097527075978796905723597979712627677453660196993724160292455532516958695143019523663915260445428453193056085478624016398086641468602011527010111567218009922552173554443493109209920306627228102865089192084909648075716817368705607168949744922910139671744177206173281931201779743237090822424243410096405036696396467671340687563277644970811060591822555964973590278051052453152706104851312925082324934193586960625930456864187069011982841047495947348091915003434511859827259026604764447116704546118388707286637905866113197330969997659284760013395830367765842061598399255886962107387493378546153600341359643251724642699634401412300848280093830395518117229701542036666327249041856583425377272604731528693199953378012174334300268298879312142792072623211961947272591922170389802484688930615841475899700217727569458820823621191212692148120678499211868932523163421909017571761255104267506031072974036849013558196123933775292685174206400378132371743334310300785026955040350375026805749384163702573617191830008728066303992856548047211901085789989719838731550034729514185236872197061618329055905333353323724585697044858703601182769393731955866887057446299551893246822403978482921936414308731541530117857195385605215207237536221364558765308065068993173235852029622367141550614886656347618736355781530850554319799141436253571941369093435197012559288450049115449571034351968710670458540752585736124769873355222134224147760963702106798316741764824544872955140828187929869969772744964853359762473092023451538585166795309814273400806844214651060372981522533384436592902979059863865497824742704369483614070788284525287820664423059318941291840882747358548351010223134515582344869306498480741161482064309531038060033564237332020319591533865911508460074806980713457603130265830953213536263861351876957490121298572116447561543054871458766411237714596879530102252606940140396663526721433622999197319878314388460297847659548833073179877168024634925074061650150503823983782335760492155101421637504701517157125359339075582580656980380992368657036140918183797723767963220853480181558055468577832209065284762810937117325811021400555111720152283609410171294925646313022485448650651501329617335984711591281053929463747087781174392748339500058639777595938899958055957040561960708522755069164232354735851130666055461633066129863551373285842683854486403267277576287160977709979906508700906589714697693594766296331561969248424032165550624398954769265284689390117612469020395587057104882553044288055382372324437507695203983036749745806899051438996561892240547397882204012151038945720107215515008078665672978356777970551423910398071969370723676185296770281192135925270509124618665577424330642248214359879985118477479680403248824444711571553499540337326160153103155016358904025661251385465301688724226269311450371745226862214339075056029295458905970584012498987631190500744127905135398367534343293666627642656381349910195520108846899782648628993621038829965992131802673672308582656915166247735036227512576159805679124267380919016112019049165141359902492941199301760248532630314405849889923303227460361134978995221980041039076429335628670645975036679223977373733913798949522374921562124562123591227739165812845352348582220071101326517168585398437170425772509025812309956967492589159161183721814701576310806822048100538260641891263415933284264554796288879880501038610496446501005066127400482763018441547697037413443341646004260627613845690994088513494653577864848728984317552945287001917342944650408911669389721379923779601379653153784614910317843401631624463506806541228292054784556889524755402235852074387766794288864430474768330921784252555617126157017458853433218321850174598077872573868306885996296561504688856186479940031502256596389651899578711818454332329148701153647175379877175362900500141533607105279595262474476980481580380572406902903308301432948058234715571018257255177903177439763848859967044163291453932418518961068885828031054485212399466392444018014947161311297714052135728543863164842545605736047535614875702893020408895935246847071184799113167401671950636996274764078788986285404662726167658792919074537657501570654715681891579926904894542521923502580348516258147300467239745953932555376657979457958537422660171297641006772890790415235695110564621224419412016250451734380810007266848121305388040406051185995522515761715734464477783164012679771753396296990584509332675978521731412842547199512894111757600424209293918063592516091931460477042641403304970828493564696462535976481851907095777645178555109989643922428305141297980688813383711427463990406564947188589374135990651408946087705861557644332665806975971721093369114749200628877029320560439016780593645218138473160839630508152358965569786040446551366211775111339077580837830589162306305261752663947812139937508329420284717646326269582125055830745064439281905504186810152297090080060720428148049222361075097280862337298759899869366255147739482402331180111425543225228653262994476854745199960714575431845915644753836945354425210305815298367614328640490215880867441275834243854640767335900652454607962790429450356869831297330907840993707914801105587319748642660305375837701681227111277269210828872247796004667673521945435662800200169506055544305617620844159038991485281388984172316582152850047794499118913900121513148604416372476404054663629232953793542572830763310319081369584757396640939374077372334097360805614073042586673852650952972023201719583357653572529296547412008714086498355575055538138598548969620945199363821736765709155904270557870824797195732914143202694483547124010320809087133952323386271485460068282499219210852066173503580175636936417836898506056009576498442359347163952288463664157040116602791496899152216718021196742479729350018081993115564408049652817510965427509345290291677302747286471971258045487602006741780941312540697461069125386440423046827729380939497164093626889012561649567193758137347890314776671205664043091463523288350576502440545778488904071638174819460092283284467103502807892336126849595039058692265015760409957950987540831538719940270332068273020150345679617448429148822393031869273698889469094485016296070279882124279755234430585121797659880243162962814347009918069986056872224041646847454332241040968606100266560043783442142164968944289775175658084089909636160407684952449890204517959371668102479946769627686501177215131321425401133704344359107594495362674284894281522842633681868812528961275625578836725456396990663264656244198755368784501246749111268561358215791614665843957850917725308496313914247437958518178176273581805388490616370260231145264577573189996898056158114005781147457133660277189366486083587304853867524927748822962342208854844696544054393136201169359098407142544279943622705953296657074126399288212217970512579550720699191063146674824206859053307168245020941036304393617272740479714600255717179149979919469883197290442617844915896537631736813954233910740097500873756640639412438148468098361716079308509058464054334767480245176461653625389810009062948188642998407648293323679588399401363640105243605000939151199666175084881116093864097051300367570771137946362816129281715568365832645692563010636888077609470581356522308321350428607042066783830180597177659211700997409685272553600268657227874124514102044305950015815113644998485760141749442074135114775302799248357349188917202479277159888340872552128748158729891150737649355570778284485708497663377935386577431361135726604789154326874838590238429318752137334814391892912864585153534377130025544310615727581302143343977715821845264911440231569487741755150508742600774304154001349658874471548887692355802033374384514541745794329954689572597487684768617944047452810421429288770979430212420326385531773393875785131547711026500964540620810567318372066592569143187956658835748510823068190135556694480022680865261299769845908625489147333770799787298180940057306911546740790676866622988678775574879982131503106514134672824837377956244811954764641177323223662271374329820113536570798780070623512230676229328727134377254895534038609206077566585694143706922206850606682346368644625956743474500944681462544937379405896488825210847134366596405230170892597344632832587624158535634368030746405160642304675560316460014384166071633284062533409949992021610971975961625450396703060680865241680416743493054092759739441755446157933721824057631348782744526938545391882850685954558318617137189492713347809187677949120894989563657823221712012169599041064923915939135866740528081096079911599443404976370738518951490971119440983398622515742557289065567995149579869799406739072567026884764054146775944461700264215211368856321873199389053264135148555533560719332848042048982696645832352321898143468109438203302888475331239443733249712980723430424165228121506835894251807708492799073328238817612779116186097699630911488592073850272561543408973944139777338403031625651584319016162284704742593583951498326168734689136897647831790020025019928327796119264893696403735679158593225810020505060710152312393043027678426777999021992105005789313793940200160800021555117993211221837803408383625030762309921292195215388526724298935013794249124197103046837887751987375980179736097375417700896855785156819977768739110120842206115689579264824671400273455316293435105800064643292707322895863140532716237200501200315952805928906923609871168686865188744050760040094102325636729027614434580579990717287059770711945267339505567150814879418133734667448893457007077580312880852611048624864929770272827413481363310533749699321950147009153798013449399941594725677302439107708666276452428298398776611923802325013760896024063568591758988940277403850432372405429941143935507041449568708102683874812529305675337688984448671188962836877109286156426189348409390609392782423901823948323736049188771698873632850400425924573442611851392972978438388535629866604141111014054013010966382085081364655764582393500158129257284763312466401535286189003652292732893254690717570913930805056393422203519293503484391996481149787987482227113291169940441048790632343876818452589385245393256582546800374619290414322676938577541827382283487186681506508272561435170970543159966735218932348480888040915286839252905722186806172172732276397282041589396565962512500394426034640383100088623943369401611369280631107352697598040768754616377914794160483359549996691181072558775441131237464819698217525647412637631761857213053490197003489684018513532629679139892955510613268648358110031936844038375924975703520257141052983208712803683928990229472891639519248550356617864851394386789948362776125978501557390662457257764365771013414272664487154865514594236194695543810258014336210941711811469723853400334332132143580344498093956135919251602045492967516094502072415388978407420560437424611110176598085347937300455991489292402785298948009806979104501238056721514927957101379209402677012894429899813057527530156090793329240351227268915886676280312566854157155471382895682034460697423735056952223128362984517902811505299256744702468566521438239954468877231895892206606423081879512071534683879669901020702411859353446546809116206351282326184378492459307744320663312308876695269741115970200835220510117261834972960110270759494235077554993978223357539399255401136876293991785225376724776211363817862141677598596186221955878109806567060192247606002042313138533137705065119094284553786950993186095169175023921685335507122741248593980765047341377050601956984818957735705787924759856035125995756799916392024454190840144927033870272946449658108906177697226649284825856796284901028157476824911010983342989436005608327849663064757227556941593282901182198686937044528679766236527569656124183387222478405321061929227723506170961494595424065842900890852824589836528279046707013250764204990200801483499950970958223907913523380866846395102146710472014981392784472152111365092061665390594433931285173770459556549637663183304790636510919005789477977108995554332000626303773941730463850028972960383865381750865117585817366652537763132661444992177222178166076839779510227858330081354983753660206967847877872807116231235301301121017813357178340768455363480770396048785915634170510773747213751846903889607803652286229589934674069079368383041009998015495999462990183900347127307070530985479040285238803189404133949052549826680851004197922742551321617377304452574904788158754068108355274431974176652287141984558094909876101712653304559778607412088759717712012981725745277332889698965728706038910247166692146148064844589250063928825436470402324220360182598906411982293400746297608077104274663956844746968487340598445141620193994836510935036764303116372676299591570653426738789467403285159458216501124475056863443653145209652941590000845556821264894001051496968379670645484927197145051984240035743694244135475571461042412568368688510840929933185919841117837999050270847766710736493693218495487282431910671382265663385329237852920686661407477836362342955668620846093277289058888974126959861574006876484298643988379891424998737070372405482233844117638579330980784874010053578927732265169851633933143405948787108236323494957236713319016578441354286924230837431393793971938629291920690330454889007758381120205990443575990206739005412890426788945818293403876295257853731522055371266296241137352099733038486203752298341144226888944524388923937238183653668087161731171376864230201333312724791215560889517626899914634789487483621319287818217586889286723295077015560831809297828979978126902651984580026026204718334876622257137302776999546965126731362719895333765082940493632241477514793837767447947088599382805809292797129346279768574381871490913762341843117135448047079402777787715142177461326532940583381846314648508952278534039551142871046822394402120685780286486973993752465353641994081302928023805847350302663120443990574984023994303783058695101639070226602211336524374197961748260907230287977720069271622721727086946171577992431425530063843611635817547794096870475595052191904254889694981894574592863190351694702044180164327994680225365374422043622440412622526111000415303480228292693854824961057084398165710191263915986875816358504604044336327316909005462895435200975191459482549066640474590476612799305354285611474516977122339670448465233352883593351263651427059219281758795175749993256743889434559856093508623360699245031981594653621121510169742207613502261426907894878618653177523924476607926796861231297523544488012399438811369340695553540068400899321628627223833901265223139517111419597027404385203627432698538045896575344107948976141390870174913766566433504129461643171971068457657193522613385017156333241718466753890467545646393150150139640991392557359206796269612439606662368233942769480991541104527459468259397096699499272729570217269028870171171491493585152377469987939152018406318646792623878020784521942822369371082416864096087906186288158356863019838549992371703421050702347789424493132369106146490781341312067829424056752014079114994581725866033822562906692976616724544049712640005730601226787394260649145225510359892912693621620152810330399040617877738820101274571048281328016471063389795191377794613845205048736139620906477123183824542183745349183001902592968671316409538069299059108369815446206125139974695072435925357391344271516872600536919494894781714625496673931039144634594198660937961370763228263876820218370287522459157764651135566434690912561898794922440668523150706004769088352705384490792115485056377329372546273530000788896490468418832200432936659397525358524221682769831274179864961898024520312250660082816298141491443584574595683382248954657775392880979979943912179634747543910115725443792824156885161830722125818211260114113716875569721912241299731270891861781461250049274485190790763510001424289788557722173356526797429415524051504942038781825015931160337844775752321306524562650735715443157817042697122993621058829963944771822236600033203632010468289823350375950632297012996172721230881211633692870898518557846526363433156168824816412365474669710797223353485863066158933873340172310176946927324047328183698301664800981967335162567280517183991912512727581834082947083354027854751438664544757675355768488706605162214048378628440655496828307158156144788604080444248747797708274956781453147080359800834274081834896188578292517484967706538289592971414842691226017301245473121058836266820071615888136814548324359817053763900954211806292218122039232795388123426625003388630125646761771047184132223910520469214253571021801748130340635465930260347749342248147215712056281883600808535906594007718213622473840643429188579762482674983872421556534035949176685627867002678950673958766551597002555653931151555873333313641757484416413388802870110698133658818279222446868507738186748833781528478844564417498890259177779954444265861257326324998144836899000496549652439985888782164377349222414544425029997247786976737347822229775187059580803360723426467015316107014959696709687984118319976103240561008757769776877756405844505843176946893546829002038267049409354818778146356497590971141411301294285999734458171249690001362048008352989045670397392603806748450480276181963595834380879491704581971296539023771294403039161753480158327852454160662289120131135315638553438790742355098445178755802249870818206133156444665335756767462244360810245010525118130815941736474024887842526553054468679352775003820004722028314058618232212512124029217334559966074916984525417540132156767239256536519263030494016954714694626209882882129706921810900582937842083790371340200638016542019094074720243869328110028170417724545997108445368180369878550475149180863437366276695844959168238160231301517335690216504990683920915175325502582879155714903311609978724177934708176286582327916771290248930386365291843181593608357294286841181934765312649094634035495068240791740788355147635238994043233472895603294443405187101802994794491520266705253024647259352276106005563787510936484492020584331898178654745550968630345188336476250634405130503743525029596970563307234694036441594351200432020889274567628267961265759113161322637048272971557985949860133106117942959558243731463890900291189252715134362038649045327070101580404964595722153995229665627998187099366264462997674544495076135984680002824357606381286897149149181614570362766098547840530887474350437857485400267272393600433470634709098010587465859186640291863672404391440366930863997677852920834741008317892805352756682487631957614975855999981165538253211497047095208315941597399160832516459644440607583070650171610120286098409495004361259029626393463890932275911874418735647973751163377933568639743272906561234380740222266183630663252075895868853913778363285975268257446866021976439048258485561648857048806863002423944763946850829982570906645374513942072839898247168308430340501076488993224096266501878064124315606956236542406580612924388400381856285696111563853748464421938346192760657119725506116451133570926527502315787300428117784182449387633910738951410588624594899287113806418363523491764996680145853288155713704597330794228764704093632146471575938771698708328849925275369268198287916539082576175465480621956799891701363916234292162911855370881847920863752996924739689190916308894574751147004934818288625679518894200088973412643443247452830253670698124499984381249998900690717208126028942484740644381340837432925205912047070426722906619369075937212779720218779862835191296545135864781478866406816957274533718650674434410475913012327208853131343253555521693066316527714380964782435226336954013986341095748159322711744733119516502519346533124061485005307005549771381652349665166840545382401043109137847453074260032822434617638739217038888057651481200893347264594872598408147442875417695804410096755807075580115116297453376528998192967631578284428952929052989327742593370998249247783747824883141179738535237947801112881676285569048368233126449040752988368479746070243936591392334367373944719411803574033602355560519934392756114446412180317081185105266738976256340095262947084507947112110525022073644913539531201572644536376699147504078211402888231410877077419529179820952822233110216364320398659838368857410705773716574762333636025680000411612881481628379120625211023448975958794560686199941926058659302521888304463007713386620440228014643819873807260556450470751534165229282764406001989893485858588592842386076914190811764870887997294212573124776675614001611131312315391485186024540830038460444645743431777607752672908994859073584192793278490741813641335854357833604122495388875584448220990253381769364576544856272425215098447130228884126270091791881919576257521262281044111962014521421013235317522028335962725655116791908107382202134930327841060622300582091960234258896633006172203494173476208827283213268103205197160760730881853238058384835945460183798704488051487102229913518208013662649496402474843144457605250826382014090451780498812114460840200292759131992093093723233106087481308085173963198799134935229978665733880160695987949015086326316632049441852548468399525248558472189228011789254518947855245024928629167766702685697756849944653285832335769114346177038931752755813825357138616847067324533557332160271310528378765175979013441468815437985092623926490293106050335328332774018358503637856425428296512796065858122091068259289261678350304194815736777237271346605314071247416901150699395083382121754824229705306993456611600030390774771304744026788387135952762502961872588958259300940022609866740953074988127157303520948415318414157616764217295435762832742685258754732589200381048278774599423656579986475521427291283983269019269379028476515063597468567657613499375735113500729036955242055747094220698897895256756077229568131798614133196074030278516183996821497122722147497307591253908659519775034681743006650747005384903449281180640543255999645124624913098864179433387096018398194179604845990643271817647089171482638630522638147035789301967519628984496125112497711684519247459919918029827172667497552576307912440627518728013630228235476823508064411827262155802543562331259725012517470213218485637723732340676691367235777714032443906413903284777369009825961419563064447728088577190613633913194357401170695813683096903401937611456318805832240550563189692090248760635078468606331089303693895466924767233439959127491774188435151185453506313027998315486754401983601496372165665566730155905786036393297136920108116813399019368290137583711444719178217601253154028614534758422145021977191130363117100376770068612914052685540988708935578496356242339445010290330486010736451268911043247144242506476210108745575300532547677053252573951762760820430713434982513736967563747218480600396996170246728447399415706510647874325177409732305286786092680313056876097858617285012831267440443648844286502709693563191020909505959942011978172329372273977148357254721443522729876677299309002943307520858266206447693114817729944221687013712198868640989576615888363333581038319672321494671842639784508381506172525969270744616725048994829636579994218905361156675554002563155651786321487936420063761010356316184312797072837957234221831821281525921945397834913950195864859021791172214561301334390440863327730504078820696920161613248239941311982933322497680732125175589561626314438350323551688226344942503494244856782061004986284445342946609991281158232297383491307861051410603279819389240832392936341537344095497336893215550985911265696847908110537957850726936486209793893187887229077740949602501633192734161998150816044843577031831699395175374430796991323322341662849096168518180626088350825088051892798090200615726125762215907933178058745020974074015659593136353482045204604879275710623662383746034302732056703299273810693554794664846561142924387882270497758493842766820018996014315993902826802966617192959946297303513694557033735358151323199167852049874715379643520125658317759476927184495285965446362818384497395275209669921095301454629234014621281942161493055276130286861610196058613992448430929466419761853688483318388621419205425088864038458130342003496166450576318144114987524578481290468659522224385210998536406022908476836751492575489254233865438050389566367357416279220113066568448729683617030212657214974655910845326749889860386089052555516338164771737338611054645353620457221803491574907020778754273494372253137708714329925510313138810533494686937149936421690984915570024697286901020838568003281247500973847077292175950699492262654470452220983719013031736568947984127143124498604467039656011545143946102574620524070593374504516123839026453592966971079230834187560977526213583961933641597553112156168249371680615481652793117293713670558494607814663812926316125186497636752962397273807698878608835196080634591670670681773119168615213811421631128487670258892987917966903267951094936139471436753822200816629278870912848393832936992934642572379119371734377218489160184237206610819570078202135119163936900498879977739969815296899712894060067697577586011586119668555256380310493350474520407399936457081722484074717801205690913746886647032299462027705291207366331690380470104827701124279976163479100738076788234542798629720088588795131897398221414248974070195349122088905366969745932031156548321589341164005191372101742707878033807515484852291517661227979657479884632018442013167590163633425375547366415452304587202420882842836001397379101132653191278299249550620770793906453926704456222804707977876991299095593657327463393322343287356865756214011521702901941878132720900555316929689984438028451837174017387631339710149310613543821003567235132187521780623605290934993073668219407241228368863691699222838830841768395128810187971915047784650929765252693821099570448382521505316040269233787360941400090892091235625244493795089837160688031580031031863634966350090637431931644932953899648029636191015113002212808220088553871989973301554289722853139609510432174644361035746803552640756661480081766162823127582012590509067416373123048290942433882161212517385497727404084293037317181461601006642085205889038997517971755187474728248649731012539767574908562374437200767548531143274019148276784437700577435444279882453159872644711038601367192969908363004404635877297403104292951531143279165718158626782639287200886980087628234394323484097863212212130244267178930366765438163081506279214126793765723213484510024225769967632418863209809503232678884454559564233244603530432134443333502736679461766369938642858697470278615165264378911561389697102286598523295688164605979171394266286707157728488442070925632617264677304144910133368403843297788426841329183845831444922478539282477707447621850365230254003762142122050935793927048903255670661291198855894574078939536644091795468693226729752472104826057477671406105378977191836973901527228609839356636611816416969256545915569888956108118246793414096414633819965778190727475436991679552186458652060069508653650469614585495519142616218485883558802662307887388256966481308859250199350991536931891490611021961649208143171786462268051810021839856103961387123763775083336264027258100134254713844119135725199555978796908237513948175669218251063457056093343680700703072492667066889351217903626728524305374648176161679055771109450081657441908570307265283924266918157026885850194933234319886327813127127228796596392679264485475194871824278303857142407342362896993473527797220410253038082235937899475959883120402428978438702518967883185428026213405860690914820011934777366019651230005620074201903000267089219428634271715143027529439145610580948241720334581107169901444130695568306845541335300758202700601678599343283195244688388818813800526693653906304911380328975327017352132131986543420941616473976338598600258503887030467027509695253154975508422641525410719424894996463157191127406630937576838748721915919524320024094374352466166474435033135759055405081261718643792550237508500891425122752927375455370229834890911763564631739549055843881047544638118329747922796484607124536344261136952792371396924918287511098265348671726361669742907107409139050201218567609129243974100886679743751780014337264975872810910425935222660229708104200598822722244391904746088406293061446050777331572861540069612429850343062332870091989725547493402358425179134970027370072889166359929235762456793060281376249994334389921763471725196212293868672344435684905454728798612325336602242058369146354450566177403340595603126630290342279671674693758794933227702311359763105228918435090060812074619094133908450934765801758519889659585629156515159513323500013349890951480857306603752079236509127072791009121746563004270897073309510213384815398108739173037713840653007349312031820435094894209567237759567428847567832441425144758242998034490439101545756266665349345593304195804225034942085241907240947978233031329224378262547915640794134307261645877936669103163656525102757860512215643712169020295750165992477698528186591191933162473118853843623060037331157893321627924582138574963915719909283490854344716513205604967180339012543489604476606153335080745020942698424535646094007352918657993117834836040357854202682768691870094167330043259980793650678836433325897505135902853595330948170724778629016882499590782012466390802840776560611421599039330859182137846877896548599449455437287590746817408839640929349277831669310956513592255682966720754350346136341464590828310435764223576257848392449650188097644602793347468764103737542650350146227961783603914291109287697490322390917450451691252375100086481595302679579093015617913675092606124667822173724589729392322922091929372969431668391377082904370601383269699203518100304431067662508042204480245415336303702187509105257839914933751807613842399612204151362917525542383625107949632927417048001566382848496431797856285501884201492101843924729055470515801291201569665433625379786363864143501609241128370455566347191211344868914219603608669196817093404818149201535757793394739529990583253435415168853070295224960818607116839002335443724440408723372863651339065588582786878825900665016783620299919542384732665997910878436184044691689581793732213514090113886218338476601131425281117525996222480609109333207877505463450943427305653262991631165448531554173303054825105908285903443351742980006824766962458740895261669169728268031794751865887269682846355251304930368482872229931300944924285301751460010671836130034067823189668151667924419893193586882129471995681596342265955210147485698155326818705094183708177092614150832803503246398957027152313039823383570469276747088212113039263894895084632814718823121043645993432439684465940099370531799466601977030401877827801502384106428493652549498488799649338588986477028563468227576753110609755001435557750701127828603638142601517142862816073987830117085620517189912789459180580980778439586551594870964618785036420229132172410089492045016232734600138624031860802730326771598734426778951293693502310040325680323355052347548544185691068661107219551791695562500911103891753960974360248176887401899507001951101880626908079790010022415627894902529616591375280927792959508000085004619836331726486284638565951723778671085759573874744744414974791022680951102141326407866390976318143932885879016009562415541902871288016204553822806258156195651135317405301359269361822679107418287253020258735280552293168812710019117748685526281756716846036354283617581861498545534197066694120225681942415596623353048226124376584812070079628123705073907489324995191947808038687972059637003660800268806122694713451581498636422273752811784231442533005516249743770867998474870399481742193606230230924403022678145216979534000161085160651672429449610298463308768834119613292382934065864463423515616109678300969280242458962849862306236202483766366537692703951767183175384125428513414760352104632159130770935162481606199901404373038110830675111564309479000079642018350422043328085007613388863200238407970486605144464534242720589851791109685568175649687438854329039282727617868138739718550832147871049176027196619470838447940159178118005162283236533131195149384486163459177105917349178219685872905980229733803832688307604681616378330028750981401984195409295858502125933903740447098246290239693241415979337768852909303738280579640121933441196892227261400669850664854544621869606691485087587040863867726708447565968210866002279793507510832217976977868794762569776830812922142291631908400440493824214221110361132850776227449826782627673351648529300860962777386622026755544077958999422161191648872483756226683207853884349187252604940064790169117199190379757707755973285015514982913948107497987964933655310509133067130896116982975992971902281721186198649605271112835001761745528039837033916802319740591761662475007509254705470136375418774779408534792850947252350135379669086606551900487793453901710102506385151613763988271391434804598475303938111612659731186152836570684728232579962129397774848752725994280763952447433876511419532796010221951262773629004591959031063466928039628572633986705979831452704604096151011924324196665582191860615930336682048387861124594277314327156839110609786414468986712496353002793881562726444940423588217337263865912151896281055764229187061196340815655211628981890839929368457447945023032201099379419254309651505138378670442395414257653823916340775512933253256953256918563713352323367074273421620491792123640782687894087068754664356711397771801311628073649088157267651414535633258651661170524716354490261383950832690229865757747954912461099210660500429910004469042541134706250082572386692020526937594648359274802214641596628269979751113541427008354889438490660782905165213992889560252864332900047338108763408263055032195025089215381858194209802026861300805928187684351897465785867375087933237964892802173017827045851574222011300658199175122674529387091669031810065653031428891715311686872814688578640289496638809703696850288181096221451498064618511069561706449493631934156511289187515345594113908645151581344909100060362178933605678797888096040557925139634024131855397849634514837354978152839527934650420987395979059276286525291865319661480853106751491983354886774220414999105837968932993660341535172350094883442491153145419206062651576961401734868071411660689641998831310894133479336998235123757745389852075423991897828884932704071713190176778060201277595233218055561958985132238639499473145825974505368504902759262760615843869289181324258275105590389168329942467687837342307008559532036523277468595979823290219349160749066245532249941968130773329952589976157498859731679321698813441168190921952357229521003015161733967833295845267992448196461806527502981735496629210270741224614209855989221250119204568605984209017091957995966228304552448795567845292612909103110300717146707857134905923343428217479437872834191934069923060164498220308729731685756531338514488207947328762615088806572814995072732041284694468414785365004985281628386960277074539341652440726266182666460719593472257097407011007110467485495141924837088950693245900892873188241575896276008308283172021270947079253649630431905637382252768332984535666182938273434776869295924359563795604464608452765539906846295100100748244408776465264746759743604059702041740237227879296213743339928303620856807795931516363526468291097666715715841326511917000753794602823789919942113562465817428034244952160615924262852256724596734211757442045646400306752292184877334515485773555761958218040282161029361788762192789005292684584613425318118163722831713668734612154703959727735307476331700137471111821877615135701348444435086811271384855306539563360694333223247643582091451582204030577298124566554329405426398572876921858157730600163905493192356323048323294066159013694128481059106959920078143361688484687560843705706038451860168588969072947351564002378129854940889931205705575063393233949653500588356708086289060538209895230036918654062130339371882967854483832025882772308013897512734194208915488523101504463372899997520101981880853282766409252921396243132951200192744543239894094222331055892510982544035432508410155755348940288131726664373550866776719075763149176992724834176448989992144388042191397508924991570297472001285911807866445396859522136183912501927076997332015890898358541925095033040984214751028629864502683520400094107305901241299497013960491604169735081198915798267342176851034012874648403962932148991183341076905812401514992816086796669068596636244072943861161978836527192277449280204153768060446271635954478929810159022796015996672076916320809263301807159737050039188084532640237882110704188140449840731631323537703004081713148787133921412410175716760866273387773778477318527980705733671196909531047816092314676187214957899703583354851800513913111824772279194132697525314121161262479693791822355719030896012692375965891910870259508014018239144190300007025248569638183146964795647037145439447438319168768420399939614626450564106645387903126201644377308661857352781381317290375689918619612179743715678666720855196217453519584808006821466522207349804238196919599013477680463376010665506775199726470750615590530437752840396787922217837231990729680810011833441913530456378940688950798574668998560100510528123032213375392456512401080027105476033497365997205061081916177992360828362628002499351720096235349908421691045391479201741039147333864380843295383645007538628180990470745112825687320726007998062210684592700341159764139073066761157379384625948816884609074244984860399161004977663588707798554898340619250782908128505250135988012835462449972009192026529233342868157279158125690140950418205998374302285873025654759951104659549597351789565838102106036233617816943360666781500323092193916971944209864583557720174531906166993322486347446643943689505098260525799769083939033845808337998456069468016013782553474627885230253909317409525058444696581692685747837180891059817364362360640048504844555551416414964279872434261462424305623065337176587635946591500201662269764176165632002980221401429309856716151559094908480723742723402783930248868064460217656499332149004397534823073329699848803725714355853096087152609419920328863023738602334164080042942664118155533757977956778701803377965659613224859073341982496924583409250842641332982396234027279177690211295201311147933227419960912096872889525845253470076518662626037028710973626018509511521677871292657012630437225543588687328195108205115477578793917034560957088165839552024861329790834588378160683955705575165092430831261648743006548163242286260749368138322997766909435891159169539504624976567934617315262618105697260116916326603318386421409455838591151535141030059480913649291055914229331598828822613715990704986643651138871859435110856467131304257868129420070732766484998206850742930932662273901633635500313247010640902104314975519667222994778842422418712928428857581134648881725169935027454818837165632720257811228613481243063779604565360487738834828753294535912567294640377304829196703908415463404113112084375391112423910000568241174039613601348981950548882747534185931366440846363839692516742519759616245304643142313683125357961710302501700546716122393918732629201378197370356052296849811837186173667216606907989180238098092088424131346222330170960440780975164793946495194273656413636230283083966615860654748759620821129630659711576191583937251075041902860852732812609014131181692484616355394056085026618337099473311514393829577927934300765903487029123552284635887424271944858384476563244163246773786054218208644437414678336662238884309058858500713394927188439710750381426871146635521599681442925711201145033035293218358168390894435560776797072355750991690599695321183557807964837329837992516338500967451850560082545325768703293093430249081812685478185054641403890387655420870712647473782068737217003993721262064255949300582976964516459819752276465683234556303613875244118649047877671097340181320413143083814105760772074589625900328227703149209929782105027150866417148073975277940811610908343245923778972492670023199000055459485024466634123617773767842523559092905254256216456966480354917768435275859147275059792093111839318648006101856584552320329597469239861366626512736469602658272485955983292999021458135485109752543970642955859506838707671443088899085262472494130229933765909106424597459419509640752453690828798519578006310782756798484141336991152922384356195349771971499882045168050183013526617114110291590350219657941035791602198620043989251145387479930172124353198898945279634848639174831189851018014340202053448459429105926696594028197387475352193674637247486842235312150630963693243689493349663721940158897776606173205327158439899949249725220179310063263034040838587303668554530182549325572397783272890418656470672435384648646520119860310568928097567148282368457339089133804741485967909407507479650858112482798720816893264224046711505974997178647156587591491151462113986164430967607144008061657862208921147589540190762069273083817503377267605791059522601319492212645755882100661186993366103746900427800230524899718506496313320041239464932288218187943609159352669492624260181689235568560836146752794964441596301017320870541688531141881723810535299567534146743620316998210166266788400882349374766722374386454817029564684116566343472042796611263604301044594867916464708823852430337039885043554671513042149231373825786157971696635035705858377934336526813465186756399049304941340060991912635725867022563629221024827913700090788258221783521991490259631503575879717528872337771396641336184808604830853309876517303577149704408913919284845800939276176865707097926241280380434572313790313417384041064922806307344389904220522586513552951296605325134367420693776239079818913171590497840124360962992140208579808285351915526051524038527275134679330432032587769424498878738599384925945254400840488138805791655947642009289189352703182240177441199217742348757525068624057296182384850492199803244087292607517382654282402782295997309243186191249626886687558590806998792915845963513252794845006248692681415592150332298326597730489803355462099136508329152883833512328900383076381524710872016183903784887951182133326707000725769013122606367870503421458585622534836456781189032238061008204251128482708618280410998052196114615899459483158986409165982788677150893170561449690218177881455860065269954063125377198943546648583889689705498225729183645971295218679379856669074251082228046479986918861005459767175465866503940036377256066122571243933674049849814170656421642878856622311380733058908510888214506128399381867551971379637055346708818402646799547340318804289323473132786689144195512821493501690104530060729066857540282104526402555779333771836178376529588193770745662327763435114610767826392688417130060686317312127869942343155849069881828213033452759718748806284423198225824528921045537955754712811854586187476520346517577461332020861123869716181990633671779780135496838187898913611788078492830803844996240041079937642238135284433049387824921316941745884936323290549127912930704211958325702456308272351358702441914316461386210493528075710342845088064145090541922454522692627342873633904574188329078315315871563967276362399054773060704010090629486475866184958379069384802522571218342148616194846555681510168135160069238758610551468188797176663902461005072205431076609050040716617416589350808208377134359835575485122445631522884219570564227581174258322467109021761586114581326898978931376109663003960592240613661417067850945745009534443078988905718607587938426240551727143738805781758905619421157920184220434078109231738250878355881657709492290908380591903355676578857599623476641619888716469479595972446767229586901106648364079921167171657597699428242372918402481487472905781906628981294048003888620830643848532631313955721629625867941730775800123959805220213102561439054757943571038225044227416987887618721744013140815470444089541437943791661222702287572790220984351177835048154496982378218773144835638716499175114756332303967775134177884258387755064823210785591594336808454342181917278039877742199298327341988282786383200532322824658782011631796091840668610731951695050488379783599930019246849221496616491552128478240995242967757635115149189517077998884228557396905154169954611437566677994535535646863277614705759578355591441689172163712925656411286187630102248258461050337016250066278379733294500046267473032794787125110596815876887455625166544607507066828333798980521773655974232177779447016617734075246711281197854984368948114058909242738296099650051485853129850853308898391693676925400868975055818205512785209846574677061344722170732976153631741613005705154114344053182758694912035731054235514266138492434774194833855329531265196782237184377891181252283643230785010516360444525686904240216518576562325726809667875763761737697694767475053129578807776800691845737610608141226244120525685285858569021017983486450129535850040949822982092188090643332264993144682077895771056370860512629364628747312712712585906814733330934835960019626995679572563507162398078439656433594999085321390390274448216926775526750334596112803728815825911559667701016774485287920750399595003379565376666715092372454508347083950322035121039175759925003987242462751190516624484509730508144509441335663798669392577846297784373658313555754040840041740792907731368238521142429498143385661965292310467597214104278953624423734394371330358742161931863801700690787763986678819570268276656253859101242148574022419871975773202579035334315203650149262871696276084051113224929472452091748940549521526427179486453423701571299213544989452251887418740321610577645267239715965848554713783139457264360164484449667718670767652087809534040735758826797230169444980483627529929492167901982164064746585281091483820751200317538038293680575521853606195021935437266016497005747587572054668121726741388964762472296307362668178017897317236639621406164302014949711618692779261524621881888118819260857911686100212963747086755936774683115337616798067711883098883619223704042268488347224376976952493774330801212170642384632113888158189785881904091594315403057352428096073742707470010521282870199528918267411582170689065262950632111947723594645096749876153781383280736097632431354297387206076070517779094022021052957678492706255428723861810537118780727019382164519368318596820242040443011904931018882086727452343624022383211333494583363830835475671622697228007241907352551132427156771303340961310021001461244287975368404478333589318030935997933061777170767311328816588410104269032172585166250997858001199212387286670549338492794068203272507677631091675980202835726879939666157591750308796277811513346992075597452013950938311691556494938926787181478556398796117656150261319808185850477482434424105200774822370036972498829320163237859261343848141278045370114684967212403264789796780627853034637370249557378197668359135859424146264963406901193260201594654500743131157027761275915444582661231047435669728547982041648134942040434316222963721215232719918965960773426002666986767429987071208216435725580693029784610860850604331535588679161614035187403371959379606519300914541897915609215880862173185275915837865415692818497770217594795805175774667010846842715312332686645402943596535069566947753157750481277891474856354624859292458932796762850461369253650187316764436264284641678179480850071047307390152961421413824252529413791366465823722975738734081678885390290517924797805510873387602728317177250080986353179320354391651109814117104481582567157642715397090523017551977733954712637930937023849687494718303447231650666696462978542102548096918393698238190682620752128900952371567642765899356720184474976141046897101808668967486762188700730101713287320976072867933747833628155929624766010333162912396584190355891560658924739307741272088496676241436892942247515698558020690083595956832213221273119104996343083280283656550083516349223707245951637712232819674698117238669682626659761437745938999066740349745514184092251466007128016917236327073375163723526733409498025820331303184998948960263471805996555026811114800663525609223851849067110605908437125915351652750799591459953274855456507526650672348948378662880748668919214311529135469733994368552894002260976008544854683911263869081759321049335796162008415987659539307598870238313520721344958126461493059816830123032904475132869725228118111125164354720958441635507035104404098550317207236143945031318626056406740117561367392113549384758194150917831540334986113363355417902880578252073753339375103156099407230770154370771528531086599524665377801019608037974062533104842970039766738525388768519499397368440292262391873031474101598421127146269798195252035038967114503964069898785669338586911018498872398654637089682943669513932130873004049151051692853851087016399718115390849467214007585316661059787377964162501958804982112672010769280045854229398473770322645171097628639861821839382020609676468649298780806360031020188214962614492702124897254884635695752751472147435834152722561414795006647626479170968022107617617352472194387648779639536919586495022979223901078664821229475412211493251346458085326128973121689921187199224127567900413376748158626673934445622896011401012677015303064384306084272846653340596635030454829608040408277176383177485162124003962277638764741893906692231701659234350606786387436935429995543090484901460747256456448601476137304121331085209811088280252348048968376538545455846451475044678900605867396472394259193717520434639413749306596482764909314953416991844934457738683594547857062820351518960874782675616463126806382243846114111046930145376268670387353877195317723397262318002047429897948471291791911793846155439782269098817617863232716312303580836748951947268429892728412503951529625370243922359809278872962820660015862390385475568739022114851805867605796284077217843424297286646522854807397453170755728168836232973514934405295403917493045220128441666577509019021052723824637227436345727662048985788135422049935886710477488174137487358492203111649722688235213084333720308768527837067514954806380749446193571213909505796649243956182305252461104622007394610419525754928203082709792122444715132006691034200802840926340312618683131152998457479477941177722496340455103144010952846309474121711849454457167894003780878331808803642601282602655049082088398865738486543158287124683502735013597668916213144824273306671026708688581787134986153163602818158833771737645974549056174249878265513343331302692736902674312058044806703516073219597031272219118732054783236743827814621078680888565180129698647009044873695682381267373214154383989506586028650501428780323425066873962394502157487426580542817060748192449654087218005459017242571837043611139852532319525542093892827935085822157249574257873077464894576718716845819829837271028079763153649547414151732792433054489349375663729953574083086695795137891952640038364454277105399156895046401624639053701037638943690548292065786964670437541822540058443410611548094296348747237922400787656362791915776695481031987366851330454596340577038761795685662178182134072858356657252658990544026381440059546206133961206232633030961185389841034040348165979428781006346315179866173034181070595337541884653639167626425601429345319198950470452146788259577246688285598297542127796889856281420796218937107392150274120055323959659454226521970708514020063898412017148633043544858194533107913251388416776980797018434551623408810656839589806644529809829718448181701699186068639139847611007928867275779292703942767343927646666844354282837452678476583212096294354173477762935887342573263906078485464704039026187573803627876026210893092451063487055782968994483703343893464292497476120782866049401044809375817781915346158883470197734640564504388687921746254406321248174440578325945274092320056016522555694484573308618311302083906275777774154362864953942383634356278467510552727138615440110661495112196203632725965339192765188186237961685869316188896683707850355300690867540631427509014763941849381049335212735938049791830934974926839224981020146431372554764570163292145867107756359388464835296589884509056265684439860738999326989460565434904563834566548961371073589368808981437789795496194989676796035220199179016326511092354584171088471235914710750277325247034314272015482974387481247035105294496972030136929546547522188039354962249152328965185844761328214717679869374472726350676718325964958127836416495000699774975903071986002916289641053705710752983463149158876417928711183229335754969131306852029468658492258540602003523696372397695839094884104667352139716304473494885853011031555619957274808246548427821769301152585197704444202453128048451254944552817878531104829208990831123738006693985802723173398199282069754479808801402717803549196343652759142582641201521444126526633800274052354908449646127975648973901481980703636208781573246249512375332998541326106205211265691623874026229712006143516378496633891531540070087328160085550850714293964218787428618378175142896296040438007753768597331207419047339869126681593535888322170721379765188646373342013443198312768136571633137267438199912775838589325036576984596811512090660476101415017390773036108954787259337589409426553588490607756684830115039423085538850689543000885599849241870698919544733641284752438733594900485920145391281615985969380070344467607817262282243328186241304369511162602700201235510113400837201334522081094504031931283038203913396837116194334331226299748831247722287802146621478446756730352001232035447251386196776220617816356189278071780555213142094334133215317930689537777319870751434778905875087737008927070274891777526410726204504179476989029666728585878119740916101053463344495994457261362888322960964301862591673974243622635514997824525464954502565440108007597489448842675265910706118352313237081631962279530687550133610230438626061736959547247907015802879571955336154014445636598955292766402838395697530860911142987982253740724308416138643633574667446995700985053385912207067215228203307437125704207677065376651128699946246148484128235205093288352721496453921171067853654719204295600983226494559554176521711467345018924038707158643327828207170397783378523218902487021778082932795855893743429218724031114489496313851194556280778686997146664258169325290583810079394811860473485828992811975064076681058108400826820460337439206040779832278076423008644550446883974159642788685184354237495458855928175610469961151935021709112548748167187218510892948138700233294070492626576766918939762376019926011967451094082589113480257786880628472463970275779645097582549687193339774423085139493295268613723291579506494795690453878851354881407733831057711301727606048005091660377834290985403842921088456345434343590412499815663048917813053116642535682188796685319228500144038071169047811146509807366958233643617376129159062211648230814712170132304904546623378205426375230164435243557000159086167305242255356051912164205969064452689904593631271327143786094480819318330061577639502954454233141279642890558419804099504737957677260362983497675146144271983303046880554519027982884916136272697894846854492442469850064642153764905614000166758944055828038928581001082629652171120764712233660135695675711536755219608332697399916190243335824060848130163052278640515594995041246609709120708059017159764415666671844469130542122927589753723477055050368105500728272389928858871002171298586119785206098135585321599106823453783113739785064746234149483545061628436704290681269296255324804356787690004420616552807608830081323110005550351036104029685810754399873637635615105064168379913706968530595454635130833188785520791510145129419830025512958903428566980280168491413292275839326922531233127610719441573642250745035422860192184752856342121943849091394868715979818918509920182618117142572610738474238417993490265676002434539374969661318613058471784575460669330971042253556013105374085270041768083515079657169099371357070898804031533165365391248626960462659059976662756579849569748039351214560251773811082335279715211335195938713331838218654077767370916893989342736263912740131204758686894510489458060956019925774090261059794833213682613447516996238102027039494238796280017505454132377231908878272729175997348081999035890269301480086284580892744371912846115918219299862094740590191956387896006494194406471283480440359059323383015671545032172685322987658235053513705826395078731671940723353105398633641686985460635435514190151107585612615075077516580143870394312566110414113249599636897165174484576216667158709022116392964349309715729605868185846816720835448932394363363936747138537767971632773427619486305035934775450039528606494562476137446116590442942528673984686372484238660064073253858544407347721131307009166461480706402913139046706249566813015905467283614754461970252642988484464681108950978000876655601633002818186959075693878968910618071281576079032405758790814868117253240631716641076193108699340531085189418257314327523902761858876108719907667674268707956514451180137689937329028169195915227424330658021573601411023275434701007731121969678295479853925718113615200265448264907447487120682368404458713718622100019106469168926337790819861878596107515761649871864896002197604128920203368920328074665039031442926155088365649605567279612260283822949227517319148465797284863218677020428069061930167940483604345143005041509554535578828566434995001048499981908190813942010375010424992734073007315039608266061379753244819873596012793251162141503401278378504427991815169932870449397928123877928769114166336673656256727219651398983391379347913371618949109211905013943664796676476559343433684324816516299839020240745972559768368782774459255370188221137261004617236615211350118845075633840465792503650364913444543198460325779717986802083521753878041181215568130361660375268108833273998792821036021777440448934702156187142675300985229076028102452700820242092237047191383981424928811684529280543906286475989662946009770144799384760246848622974740948165212245215974387814111742176174838722261010044850367011729227268768225962490866959478926833224834317185572355391949768986068618066078072984678931391959506976855876144651000646523013870726881830028689348110073261963041773474037215689465603444790087039402451931773272041858176883684276440281220135072404821768281808663126359415401765555744707536422260901337705960208149442696875793157718390932646968912474674986308191004845851110900651242733094009048901303437073887201097311609852268711778631847903537671900127528045054573180547348814027844485825406263984608868972498097764013959811454719252721995129282150553486979072235906543472357239025800609771595443730602272701457628608139580886257400725660881867688231994204115646980941207328660343287520449322623894720741566722395388872922717326911628960951184182575121772184243328470354950906477033867894123871757552548579417286838984749044534824322968405294520843857343194965035123213769928303840161803162274042301879086333164971121296078288636138832837357021234266819004332933404158264372912019292903185352662295463495131439833497029559486870131598034261017722449888668805159959922728635925879500575359053728694600537991129486306022144967596379769164373065323190784027472562616568709808705331303098106055608725574934143289434024120832750408122254051121784284197738432740368772840021735349406412272280985347345772909482206334617434544936537504295310426651574241996380880532332218607570047718402000458167409598252097148537183664098210119346446280621060342399864611361049621639707406339598181192190881840822927667171185277095893685967205104526745793001826116631296477694991619524513828780098739275979038467784725940129006244136843658168174445786918299861646362091620753161237488719330048068583897790903007198405534023418210075076054559579022052318070285706490102265495773818056514883309607880497836969328045549228548051743653589318769222460083916609024871485430421542586408174059885123260285241823544848227665493976244491380152187588840526096882746239777408345155106098051344646405271409723901911983270297941810048477283744119979420939232749584546346248852959413179424437694081384121211363737694436749709844443895932100271345229589392782335805328632033789056237573359490696151608247749779170936967827477265636349772887200910748314906094090659353786601975449487575595031904917315123169933333479944179726682063295244931328467743693916510014050711659283779756110126330313474931674775289827411869025634009857533359533775055634098022460762677690574827883969667948094116246230986362338613725642545327006032596670306142522545012816220045605940900399842296046380409628906286155433041952630684628858841801470920215606273759522526154331367897883755524575754731687200615458459658845122200966554166532713273978174014302762866367999946550586055671830512648341222713128737187863174527314353470981312468330793185923751847602093179089163874349483284242315029043614502388863858518901217524059918205917256409088866753822623843122926872400108132279741167521517226498599790000364337604728267155637282893059610149237252262260059878396447998313787643882725034441819950262580701205244367110992529908154577131362649657670420798530464727257087283634534569926795228060022089215692661740438243531045814804462156891324852992045853568265161232952936673658273493554523816985267803669760148885016151509127967610309307339703869965167790502952637473941358622381986563824187584203022972527666791907020858368851179067966246180867924626906028866536702866494870191416003823904282669929218024307052222502369443107573499863441654085832681807845136420400627500228919420706504240522640466297179588810243654320769448919210402195080707487964106554821923664962892257436470796944368668701226151579948179537058446153422703860856081128693191912965124795772412405361219838119659765200477077747709562705413802168068459207511566157318887776688175708890266987896521301551674908852410053556338123859304427667862421570041027664582666036517230912880307015295787384320289786140238024901054139499388629648330392904013394524167354202128959458074630602542816146429154394714735654483723390612921945572535536167999706696595087376000273624555953010500616415878690772434888311056307313026251705312935109595686441626780307257695930805937800680823428178471039205220391090156551584287707319066663048836186432191934863794535499701000795475642247288342271860592908807491188812684210635921007410410687175969887323481157707745273052681981142731170513178797006951400377448274782282971672692750067911276583898364307159137311491463791953568078521198246449376502817288010936893950266045212306544693921362207722645170514944652780485110893674173082312284745345200424489015335979572569833778887169757621549891222940958653574777095147298953133046613377074339016500360906455026702448020779709618443241115592083655869239491599616700976995527314355402991462099268098008319524302952367599490845252655143922746793781897803690711735433391599213292510252200359973616887154404449048760065245109938350686070860144558803108399104569180924835702087144379259028356599413645688978186724654646291316067349538331093561465384776090462151952168828572194415199968253796255785702552125634469793998768509238440685070337066932662591011274845571913706323825387342992617485300241344647959881912877631192176767122482312001431447662143649106680809122059812723424019426314923540249282188912459186112977690248112196501550981140086246574728051908243522880719477989404673165751292775106366454929685011261756302979177248019666402719117850275536098373921383292721641951607426102199792900256668044233669408415934462262849402676864824559442468807434221738081919946529168357292148733581127773184288888640024135351607490013780816806301513031944627919855714162319350747258394444205492556269826364576853961683026368015019229540799289212433027914837429503963772111059993947482634552220138215073950761603532497244717005894437804634867119558611113112144535806571915579368495914212958972172767697731935660266772276743397685473517118042056518031446204894291407685188992503728959523727368832732596354222208725349588121620717747693785336463809471043107018963632271850034748507097754911187347354542876910288641958304552265366819307468389234011460740119807524628338695052438274169374058512280785052450123926071597454693020784675108163573095170988718858839671581163574924428860711621421235589572438739240796417422124474515317138508225317600897290558887109019805274235222166320159162443176080161467639095352084624286501428148104910856010309130464394069465387181995642786255318649163883514233442474478155042233479246385663830614782866436610451313362470126615706327581135822801072532215898559617739126174400326420896182708979473802893555141425737542027483184929080784904951301327269010989875148208411448779636684964647536824409923196410676379317428840497417496825808728663886515084642559784440456573629491570441367653077745855167301051272517582190083893443841973130270999014377220819638974787599084615813635650088287718251927507370312470341748566581473137302108172550257287420347256542077577270186686317812384343548766504727766566365203020891106799460481500080266303841579272047603027913901655943242259238122455251622893267599705069489346245718161031485940966003432690049417083816671136491581562787604924868746088340048856304532212297930377231115256199036910027036616798170865453879357888105622830314751264105413193876901457547830160718744985348697903395888870921960560908310011094932803331613025101234927313374330515172729046909072659597151605459614589553796764149207386344061017325900758233826253816663802893134823796499506742645127079882570333245770740468367766299008265386573045988376983614240840327411203034951686869524174951359832547589508424229014543233998272579658805565517876934657997167330730596678778559956382713177965123535349817512773941124848986170853152798175620256924943650100935155632896259091041609092720649368316192198716342448198632182639349836447928047489602676346109591103986181119800651210346994044426434739974496450612025198033936543444530596935275766326406956967344204650279652058974911416697953770090904795616512618818894095782570704650804675080000334496768914424137442862464140056736940945118930792676163998513911396453372241558843604385074668287389738838733850574614821728866594317593037775906854980596220633687406709873656674632162335155859960972909963490113210968422234493802914578630504332443497304884268310680345919681652457819808676992189637133051724552020234505643600064944394048004932291860772744395372448088505536538288886830006020376147507814123744436603783453138385383789233221875933536404767669617883235567450083142169062270502431211576381143050834318003900218888099797763188762145856018501093735829767490088053454252220986735782919733345172470403160923480884477025290616478980084001049748361509795631812350744308266799947178616268191732559850790032854195741666169910579355563949659737093709785058824517423814148728274104731210022436684787270967143165600803735772849986924499720406471834427691341872403781165745116692601085232512418079783134588951736422258421129911661328726439752036676775809453328970127791371045290069769802801591242590995945227195037895773520722296040273460162297540740635449042436284505668086027603325058264008086219442000426789985464788466757978907849371938547709319949840064174621981343211658220965009881328050899818361018619867222766071012940255797750298917562297644937944554251426506287978951970756391793547689139722465497167677288703766699970553539726256767952545157620087128930523924281287487065081195742832867035907890727374282749922830792761895444957619233131432478799389590626093470501610016280211797057632592622396816894624991612556149030532347494001659124092609866764547749359906549491086051460802430356362474778127259202804985547370041345758781601281148151850886382106525879769909111174910662817496369902988497002746146381448722262391683161742967661878568888972288576553863091345907274019931740162481404584940359246868776217667380700972963018847119044139428581061670185713293093783461698968742450933502249542883158993486405498226972524727358580647112015990624292572943667894610058350123103311119817153026572677894972431291353378832410520512483883535584610250325216450100217321102826826221373789453029031439310199343459709385432662654084653240775960767127934977634100397757247722563356410822329091806767547487748427143113841373066320639938229565569545254958950371254223883736195253127005055123124803094097507543936857594006267092583266586298858116808804524534599588494610772640709436903646272944563632967584282279915581360389670704761388046597513673321574067058972398661834501719043448237411451469875883662037858901580390628098105242690038414556354283138391642222830158678924207005349775159398269241774171320146417495798552696760787724794451505151840398824483231931962306254515903375650395771743972777829148768514304794999700549550476818625704416426633394260383652999307266081239340652064571475275314936224927309147501209394852094738590183847744959804984755826418198861883190764780551347167361844441969545113857507155599683747235855143479628798518362407753707803378497829888333258450139396632276796981974082869166985186060586892655490388690679449445633248465770618195697849914503885495528658335367929129913838776303568978440242577921392209857417599518226650723238883520851924753050509314425270292104635688122052082997142136520750308384030255618111842287643124155884805225357757784736519939404579511141095145724576380626373719014892332644847678711180386466672638759615869912623927177149068715935484001664062554794714704104391583086671767606962126980276751759256494578068678313652738838412124374117449713795675781127876330414857437761491084689766890167107313531812856248407237448700237362864420770307022674527895721412201833191379725972559814119981027242060234853040089183853560766421464113032076142243170934402316365002205907392618267688541036823101965831498240408149791709169695792940673897275031660708280568544735089128762284613158834871654540725961283021859566524172510594120817841255521499444814897952481370042757424672613101432120327084521180087960258483351447158032671600386223985168222859599845056969049470278246461120872627207226242969951177661103885602404000727281949030548911414077577650143765825084686238048827732403426996715103923210735724458231534766925949517668715126536762642060524580100751627820046853514506273814765668878228949247938093770689515883104895386136013707638324658429010326413982746473378264145676528388742695222730869322922032724443945769472756289565998462100638270717226955130589771260068253270455519605153691808019821406946982581887776893958768220984214869858216814188790112831294535425391279440414466326477811071105238026023272385117919632469545413672225594008852266117382938690107968411607753274138546022207462324160886648637299604781083608439629099635701497599457618495678653469079377044747111635445070509160985609510121048615954469884470162895946576523319783751934355890274727538703144618209174382257367483767566314630616723045765350785604299627452027553988049544661424285677472344984730403371685472913127155331400327076274086752863789224930885411344861853740162836329553417534455449243165014644589581845239246326239891924928233371543457765386747960231447246778057508782578565927296821541852206242106369646321218633428565403508468652539528200251521044557666726977237321931965340058793209194366180707432566319321793611087567815240655656063137130726927931432461351553268246267392602007331990481881256732569519601093438049983243308789715272255307102933462790169268890360881839025540426185316742792401116106848547894757702899475840674601044395319875155839927214204356193820218091910534396880812289225126857793804858996095953809588267002798682436828396043884680305540025766226089591024640458041736109548149090106452966133621672299793782824865253032397507299358978533405452210740970545745842562351849238318332999752480189993411719612477143339835098827162775833541208008013124539888192781778291819044563474982406218632185211519109698211207531471775000773762892928888761521026350055479792891203816424729629388197409018408948669017453208063750122225501149279557379655981947942538717693692465263712065451426243761772807442365465378281372841870932319460657339150719210627406204298091432824051807297784862871392447920404510614859428171637985117606083799328192325640266775871391791876376549112828657256791342546105296678389804713126210408029396361596112889390766077758714101402777726097904722398545488074820698481522787908646429728243195586475486228927604093042484185937036615619106490022756383514137358539078856827862880417915309500808013584684990121387424537177412925157212747737520045213492812836804346450821628866491406743796407875911602533843797730447491344029987793503704231441331561512969175149940306065767911923912505714588394729111027307855927815094190046572637711116733137197357078761206271805809019292458354217034661878183665125205323120053183490371194030275868729949374256988217962911003416523452496324824259845043486704050673620109138213331152282153768599579241676251626777252116102929707640061050333868707644338053224425105713747190002832537101292847731350826295476217244019405001244519217428809078073541495349892000954004825054397511863229422736022302825043372686037881779975173203218263460118186845335839675957539114683738047262033830818858884559053589370166557974598274893823421770941469760214503089598638022745183920597491214793446799836151430031950952791791188950059674300319224103751842306643351709222052987823831758169735962097828901623029760344259276374104194928969460771003628168386217956188979763378290815847029020494240137174537477763334787212439125418611797696002293270610326091385575398110664567069848534611987076844604464597629558284564599944438298882907356603360230118799857504826884338634847606634915898745055924296841246821349547264117744827958611371625300824373629699153483783230420267718997782802660597237178369096131202020725796119896730036703972686167175976403160268519176480808512303396832042454866057464012373846566906881282062912753134753222057752726760554544792166377135833180097907879901135171559233728446688464206136217861641174097585903124802543312595789452697597451371027265345439061392204284691008487769332468181358650623039785862150656675615556901180200011835263816271149047167238120269727966039099689552379502286882690238462903154001182881981553897137354258407603235711683776086575381143654151914561596334799754779190835514772568561687339242249268628276916625877915427791231780078940175895140007837065651822866261731419004910617527985511835887707109970139126712092343222465034856211960334670896205082437619828318892357647839485227371710795173242429458995818251421027423805826664382039101535777644506392443105105325808575926706774493472129855734312965427808576317644316655376983162352933671096824573024805664504261011180567504781750547333584242039163613359363811669887043850587460079299486080205865065415263718007551835428217922233480738122051883972452393698365877245278633298496591657238866203987660287638511450271319456562155843530963994628251334271206590678729685969375974981636114593557561679598335444260794325586489896684103896822996644670804484951429732359533936384974814441857352246139577482626199610323106141816019356954654159780966495153066203813001609162465081297473730021888904070636401212333008241851525185383207493062095725103260064551068193827568851601182875855955255214093947773547587872819517537331955062783122035964899342887533959107137793671451556090262825406772036185466980976792484419676326280194149761760170497814271147903126905240150513831307332688669885362936107550508245167073016968928618363413282490704123907721497682438881710351936910512555194331811175036064816822006599881370953204486581044286455390229719312481771991567661673373020316091711467918491734072315182777747859414230731282737241665106303270123635007385079674608424561711463245075575724368661467013806942499002587817804300613442663143129183171738390128818250433015122396824702225420610508466703006336106355102389394148307009776485068508282751556744007081744335893508445153055930941932559976002924376816789640755237598234701098857758180875883725988714548583108307446634443186029154521514495634216947168456009581231791564437333284541445277131415323937566615577374546491273842137821029392639636455162206174356649348353112637820503296737578609261487744062454295502534382118320362485126411496689776558768529274045552130014641370283676213729214441076720691574199485502873488597884905113053863276470181960712463031861965525581249141803997822738623522950838932470268218316669966757073553626669069508200563966394463356086945083971198877941287681184073705656234528292825319308785690185590931825912755961847551933105657879832693137857067207629153300054022275232869893649995341820611948256111021092819361119691915263078444727240430089634394378661451348608915761750350275749505170061927952523874277182359019531721148505118140817664536399538798562615715276033859989022922949319001597398592901705448904234643251528706408323039518512974643265591253443530448827734996936141767763877804758895870748681101302808879279305571165165423073311681441107757276481194586490060055375968114081232270166233116638869850010499573140614403143106125723057202798371046189731396048947092598212714213372629901249546664804591984886677576386160228952428707505707257171304133023258710611021789377859039870657917985054795835486793282695325346806330188470930731102456622151253587168286854011605860455311913781584501967016265537538144919048709919053427089407563914707737545100968752680267892197237633528991531052788187391124488949939502392364253115683893479436031300059591004476660477508674967926745504159986333793774394386495107923014875536655448946387007904191744998353591168230542191942072848587772730065496324580372848916215214079803896383217127585138213408338171428208224958511667928389758738916869161230569137279883415544085204894121981018668955522994030489630480480262948312345220119205177644731043847545064254924638299742542156546980926620579112845970861090289047619520515100511838007236997292157797334540610578906183908318382837362377173894243493617131383792657553059493992916350527147634413385893858181223403781777154983372327756443741816356704956192753319355426249874934384851350172783080365970854189442039104106108859596694191740646799307851305648374513895736451330448200038610972000826321695097326579214255347328252253301183897206723960483560021274195088535580814546360144477386111625650913204063542992336482569684917474712372145610524432257782461252760751789566478269149242211290790258771399816264671471562793012290685549247500061567706369661263517075528608535400397657346718023899333573982321058403738048001652499672315651336554129747928025028342352435365862354411088091247038690275718443979286643191741830518689444072227285708305762136588334720500939343190573824663653371582007901188649352326654080348506750591954837043968207885025591346198579578715268001307011298997321465797477036744371879358764496854998751797884730416437861016045631789482688286993224082250067606947751669723915178831713015789561128542807691100150628861783139630450960561525060307889814963947124198984459290149787761325960435612793556247625971991258243787716880282198310194676105137904337797834034100294963013721224480188804656085762247513716809425519506018821373204844962401704167079191854615499807986962134947385856656569361603312646304871385697348927683955978642169673867397336654954580655876780221069087405628619252207385951950894955492526032435107656130891182287288518283227958299049900708139390758221832459251477329431213518728370377802238523427864079243208015820494366485683830328010860400481676413072640066139241220390712251271285443202633480747602578654527302970992700851651956755719882646615424290165611457690786080026601877341287685288668565288449591885011028003966879445302442872228914673951016211510501339569101830844863697181672763795712418176393105134106698453334595233135272288974028192342673296667968607883284539629817917122828280932019406088528410033708333638049783815647070280303551271413356044924431461175887768421123458611404056118118588992503616248413437963690143980174886633345070114898457863490419303926782961008046220652297104044880929947048446773508435808740020417647581959353666170568222676245176701917335754423417252376221495798635808942201500374892838166336367970422887335395032012771313750102489652419395709385749436299172185308606156374076613433150229704326727595193018245498685818430474719983613690822818386187207086198552373656489654676666951107969433979913077358174313921674001388821675408423167107126506300423144442370816506042067925361491592567260066175610513900413003441547516605563443853522733414792839049493835552969351110230707133736721821239237901224393164901929720112313974901161471694780669336763985002658332682737921444822252588271423385803607330386576229980441345189804534588099040148826618323805162653872231562971736650287179806565580778693473543767435337331309673466426116919053086830975278516018429361712344355652546165121207731860269151646018728220460022701646323282029436125776401642226302925110624489216754189605227950090364164275935143804388944705464332624500229157601106683629082595426248518473480354817459220483853185971228234320604495355243933602644963506283567890051929809679555547496089394395420924481584524461587057349325840630669004038370204110476455962225684392121836180305707577648762566329535540680586949882428720514401646417403555396243710506470821736085100174201260668436503100048077440276274533719929313679234932942951193196337214233565580767308572590711149045719552408658407353799822364186258806683457523781924322182963498358159571949684868934502828329038106705272712578488574146726571399794245663487436211846124097995878597227097518348913010934638140589462846117801391531741030928368296029468618405360978815499202343027543476763183100663725383702181404736984163305245656731879459994511057363564525887137293969807186438767851201161860210501287095933696537487432369993985753531194075884452491462657801157591193608397176225610837609897611893178453037351763523447958571186124435091438036792500124716473603369638550328249297777040759252914927818313020972326376637939524829655736367250380108469285594936002514075736824154729750120279904199462540824948617008714719130251418738627385080357123890284513798208701397675655398049299296152895342642825747542462056407430398166970666253465409287741096572082297648786164469552178544577402975369259591035713460726643342290495930054024461139452544231032797291074339701413364486807869590254015180959146878170019151369836504929925889914933921978139736594860110392648668429382953678743439293969903256078823092975054910173546126212964705614910317136852574253302879992989546992008943506479929314053359493595050193220089016676078001171016234402442153877601817961078780105306062869579152241264387707988167910609233996296659309394610791044073706403435328379788859285575713110746335982939865540480561016458713338029228934016933793933909779559200019164765702836781372145377323114678845089755040692951655462263432910403287948998387731575790378557699461801784243334714456211404060996731792989787502632534378032226795465256192363507592750334864422542463768113004594564903750553966104012316751769618857526601952816533614096371375377017624201241882992504008591569554185662311980008853316509556078751620465791070348334900229178205703119473022164196281341015933514957298339743844221809857898590903317824987116317343262738718381907033647834091751963445936292018459259391828445525642507789662014904500630966942549749068809994206213173472000153724248291160016928126983661368406821747403911882692451156354641015827367003202577573184296461605956081764442541044463246142308727349835637066809083642808149965826726230560609598856341790038533326606203422874341937608077473634396128552308776622504308614115782624401729477636550997575686158115975913273489665522077821815606264339071416136713983518251443445685084633222440323230767509295572266552990816169806962913073833999106037566304658194010107763303087894192584511800004062563768808709774308440623177498734485743145214464226104744877654376598397107193837253909099467495191103392280960259268689839914535249958237800166635711335386450108437609829875245010340689866791529885862080052964640598471667793385814515066209281457787174126865735432052518939862289258686834814292429013852902336595220711881287231314484306917361371155283133962102433260502359617987617693950394358495356653787601500359597865035047193492285615430713144619466371556651697476106188732882161301184660727053389596660825923424845527664671351321744583042382730512075687104116927648044409829138586055830680806475712723850540024417244355085531200584302928728334928284618429185482671863722598635634388928489210774719604257286016347240159992775672282229427173033225447606526627873205355040405064343585823377456351504893503326046526024164000607586489790555913917541053451543667158566002908984114653240637770192416519593268483572326802340649450741965888635479262549233154936477656466614875298047200715562882298584696773244262623037737126230599930324608464370281098348277801906718613354750423398684143137107112715848483816417075864482006375487524027070662389228445703327479661399456944369277249347277790740215422722263488197274633163970663608982959754136491799788638265882474400234552996978072899458752315991775031102770243555973530143514620091106568371024428470797773594946897571377930930743308893839415791078843929193967853045794954275163638862350513076475625332505584981686821668759068613497292494519310237437414117833873953020637406560317363326143244514703254599522119682241933758943750439870149487873081505287097380950167722659683234579704947245811350953723854074021271302017747582990050855668206837831870903366973816782634110931691408163742382949772803117882414097871038804180568917785529642744728159664601422813693075376859283411082690323311084362909562714843597708088865889847258672544270142875535882174315458081037257018712668046485255446152946055629270067734455564040257246904605227791696679846719132106451507299504833343992148249057644525003833041805111589968980797982731240838941814700437413851668538641883498398444086610351283162214711661757803736917713563461624398934623827704987822686164718870348769484713716273440025812721607999341904242694309783949381162041385074833718205538001100560087452829568802856138480390513873146288472023858502504890167330158914675587263118702473834361369752787698949908910626857238638848930783128557761090031694292983481776537831628688138049063516721888335249915128569772431448979802357086204175584362397113180556112424580791531946175018138956404234421549864416312123898970435879316726640946950944405229404496316173871948325875347505558289738768569023256531279554019814489280381073182459950785159610647637231884722368577615459262754208466911637138729999666226410003129916131943455267438171293409197187731614497526437010912024714754712711974764792575018125225400465016949128639601007528198455042627019497307312952511491116233187972726905865845698261652020267172881439613170571140119717399942002454489440141809285403596775991559583719957908529669687437382866846650374488299971400391465862520407351162892262489376358652545102203628568992536422337567254515282342809403401381966316387657967027051104130094216606789585591716525312449141287271106184006931762198082252849928125791431046579980651504532962268346255419178189936800023418520715049079883417141594792682563927079084439628671449905087932377896490999516471101979711751339229560001974434762507910726755421645859885393138019780867464049737201143763006667587539610870512525218991438980770099046611705932918443034278783843198007665174913750544154296149801608968117037186325254849422933328625090450997688184701353041799796609639544144777716699360833782544343750345524940356708331624594971195952747800653454364196868484683418451249221655899771226442880199772272488863975671427692098666387019202326320553986779049731775798106556699069607997853249127424899609156139350862161555225813323953219059333194071047439314657931514614977846014649219174729903986504406679787676081164689155774802344955101358280147265560482384303678164777420637434025370408423458955746066495676949755161975242855820078351039694696229711954427867689366114693919141508255913872367864316524418358511828955744540641395622346782749940364328313707997909757348324455861200875661846300050799036749971985161167703652276040475088275555419135741438858195414043369455333152672551596558987879503082382050401574912293243360304440227240398516003635069363110048937901472159124032109164784815144472461835349421411433370329239202669945840520823980693455854313126764461503650782134214466685141497461450351436700859320665872765472038648256329222070954782253496458353812036460097866736128609265230836345980165927299881787022119155337288135768709171559838270006104852931150307405954591954157275362655981314889458541936199181883185940966876418755636688453239055390810411885628832984428807221708513497463888994161934526829099423080458096852356197742161542633631021114104797478097348135898050634273478941870315346746538533716743744159016178775289563058488145306923225732222087751729197136174649109725918123648221949145005623115054447262072732412098105430448241498418016446674134553321478173157517411272406928050204280535308310393947724745521476657263698000235057136388374419855572152887321759514038402129255506604295609380081893493482143487457845389562598048794194478446718788592058642811346172414311167988227493308879751546467522748895100294303170910962211615436810623573270012549899928507241801642568117454653226532521978249360099871953528030354221579645608886270508650071117476934672147469817642118252112778870549065833070366819484627608835448190593196056914335039927797403393677887619969752074365892736830941412198347778423909489392625584718004048694861060789296492592250139125855159890465272768267421801166116170488485780427850540058265272625985912514155404724198011532981651052021604942534748085575890594167955504304915681585789675998865979495242215723330992262132083805404479250698533472944011790302058413343818467005820267258020897829192413746184059010754183264614904881436804600101542730422415191234067106960527509985351530123623550948787870530488541007410319014408239359026144862547075048384236507442675817829361895222507872290361770882508496122910684044672729337260119928498346008128001658232096498439969295988812520863912325110770443645433600076129723884902094275938389380179088650648197146547176228770603555452937872533454632334460954637766799244363956475030540731158998907875267624296534067305695119173311435660988895152444926519831237577549391142373200740771733998933319075719792803163989202422064595117494317791523960310322434943596726266217286424792992112260165576658260479094042631923939234104274882124386235741583335598022664324610711992748407287176288032110282905390673019709746225814078016993018282635099456826335508953199725740414328294531304903888373210192890856316859420385580009277932550757647623608430800098677148919496892999002436028864247714294749022175345546681934169527925843674350255953814663383546629429140318140630382867407916814805241331257435311003182051119285911645288849655132242911649955209806957362754839081063422516800893984186263377984108176060519640823440665493021149003780523312779970964969179036643230864613961350561206315563154332098629263687765341303329899361870327121102026982896898998839187676777171739163133780755624825212291819961619187404370516399639552030571101498779541687666380376198095181865610421727615331832108543555598867581628906141070785687729004675231987216541032580832398129948429529148863081938484779717381058773933334610098225011092485499378935376523240652986874163369297531600052792003414969505308890967652565123274018028213383411948129971302131970779705122200839520744794780182980997370543548815576385120231326821976047782923071068716589297251232426265757248696487977390976649297706984510186457917088179833653660948329944111105743630683097733470913859998427617561590848761557743662938392225243589863805026013802415966875679003001064603038507010412711946042529365467898885093271461343054503590159675827376856734762824093671130197489596075360544125575841034218435816183333377226552655472847465359915770282464356969027570602577600570007272475393546536160212602470426641984531721193258263911590401662128836306745668437884815288942468709192728271780783020645339795543161992488297128920562711357676086270663938233259211049593286393582173054340320237641425160910660853304638676973848870271079273834921015220992190698434855138278407832926795982968116610329680769258322380919693220337126392428705541185533853333089934626283707389711337198734145456327324526005354196681758288600233234295889413212195102347090305738177107939839684855738605050498938660902887343374465616550349899181123508395524774062182197197703985863967615706668695929724952877764309123215716484809450554602115726006836193692311523771858059038342449831141834370019201814407928642100054743374143308598593977962147455741350741254029909027419288976217054799137550549267099091635580721529051293860053653563254747638692832797533770071843023581058923809711523515963948007204451006034036260436649022243053863682536613518977222276312150755288320699825157216176121538238409897784278576938670354343788113449609990377586568870094562254110657122669852348615852527120138002743330774686959955342330086099110399898161090238909127380544001648461263487310419841407349092575693736740172109799511109642774982556889409915838296120812680866053208464660699797608438620835822230448366472022926202566096707180792292380585151765498318662477740852818377348626286828127949663020097930887040971330003750132562806193795762706276945099717020810608070698348674090123522104958073059202147863097700605001924065659712202243022449356957636808421087899385613153983233997639087588953545885164354925924257744502010518708177167940992427968775887729819698247731789298632208436664363024424888417142417796178474038068812791017788519470062622520571709113032049710917125327100628998790607702711699866611290349798680322326928635925346836595000989370841714836225276301636022450821040659663790982578296254311084372892176477986852702414007593698826790715960308065724249958539173615416031093091158987462184464843691072917990134755179206704664085681435057083214801541196358317126506356535976728501841644279588926749677509823913254584917120463508052876082768591515802707153562536277298592690560915642781640592570873663830080824146951587826638861585226505027268622147300213923142026634916630234926780596003987083301799470969166489510762974683779665237312252227987449815127389182156502392430434743184815687759795463128208069466471695262706018229175786502067578723009475897500453157283959658658818977632493966012181126946736038565750480013560885213171273764337762702824690311086956030243400898482324090679541446553081146087544858091180874782519037000465035197592089972203110583667497395908603233841546029004660128507987326786338966330276436597290025649064190043823159853077447081952160519191678457605694346340642872314893978983451391658379931708787772206376456539795344812083896854309627926832168912958376444766024971921729130671707047836541141724880122719954855162979164405429602882862743757103785465682292443030131257003791035710013408316808295391134211820228240411344870696088778069948389771712076275943623021837470152853007502303799229828146127374599777218402493706150624544801920243771065924292306318785052315512235443435295485120953753494345564379191662069638047883483195112175555027028105848086843906082681408828045701096059777094760710506780511600463403390314474042958460868717021605137195546975679656587644990005842064091142880229304196934803079540047452864434440252942165971690366564126619121048297785432516197906167114728200361598680653020581391273380834298697342313517261549266897193267334686774358447566588700511877873811949373355556602009198254540903152146054114983646020268477552211384697263590792555725888692840112125417399650646885471369995553374257444032210707703260007416017818167377553887104081897514128423479143981128856124431730396785701272272324010390874696529731081398069931767342124839951195613472641408654716690458283562485907350215549846878474149285425047012657702971354924182417405654943496455260461892772108413487836346230078032563956031348506727695530621405620086780693636912782991457238462786938321878157447703038260592426006386215593029656499666587562277282180436772228830946785735398258026593397460348805653894735826966060275492976943302654379852895459632334396957207012900610106283061151821886438125704987365457513087762506062773403638992284551200965034736369080679265227406583593536143503863400281573324800106832111753417315044373083857469744119509891575967974251465937262519479975155299214854330966553352735540499359545977095205175747822642639640193053250420001934350555340139218224412960581757288011422535387745934681896779054382918661236363902302880125130093878990184142677577319416702864957502141813323506950091238036074419679857736313983994743742938991422625209782152366069585645674297414086892498176534286671127233906965853352173334852610657744818824114995115058172881536893389514193304339567348349531684611908935007440526713388563382721455658674725677996359453211164480898286574019583625986762075594001617093957472133254298634597046982418187352847830233349522136541821281779740539844339798608276343884600030932547338840038552938978973482086141070735287705069889040454458531368722589827417401701876731243218901154172045560106879989143359798358212566798796949979779764432232488833759138247769112472242843562660508433874172766547101360468093965408468454336611684796434956022448460852333516509949755555997202585697467931594659821818546739276958968622811830731029691965756568586804350016239721985934439829022563613538108419647004860083880378718814565738219748478978441853885976818809371712488033096406723983270698973502418666101910847676608434282507218911191346138556031476003987490052206443017444486143516551604292109344981237101592447111452758255647099618395991254063309159157160757316255925434739902374545531371097177820288608821706456367367889829715708274275726934003756148853468984240440872448296125850025193019480042128702252943378644004153632925750412419774037504548852961901843218564857467553384998641241597708756537568665235353203558152843808319167636434008637573545864355207768975723587713629723488045574721422597921280114110738317040341236435110308038704331844758542916932676435173083926851928073833971012268603169281150072774440111762005383027248197144881147326465194270696592195067385491439066250607317433015214832970873150139746375558749545617492037535942784426365396553330769781280590631284649019676791495442516778856331130772702464905464514085419440969670363693455996411628051062875123032335838613411142632898027027226662374373297443238848012925975985122617832538616177669649122819453840202992726427520602464210926466787992279122021073446172472794048279672795267203841624770650752330362446219509205142128002684914687933383872615621324339401040856156510903023502241475132618733979879551252157138104570033137879223946457408654531811307345482761257592814206747432988839079969940393026787803345116411411679533211064220693435458107873537874031236544521287323075243844127258065823300364465046537401352021335418209447440093056097439154016306735210633111111180506026001861298319197712798181124904152504510643117263386877367633936709904831705231512866732348736551112079002567454083279056693071071324538384484000268108961119159334882805570024368664072847221027859393515970519705710344217804947004269009689440453750296094118972434631528998445683331463306122431957390639290238123368794828327282663934681927623226253648304831080041177806068185422195403111276804724351486841455134008309534589624291873872327139332289918447059566486908069139648974992460110630961244599082004520210966649643720207986309196772618088601109709656159821178051330704916514422266839845546599827690193644368987263093129625479383690832200244307406973543252051825730471368298547559104047985470213724186452209481615503094045040875155605243443873530521792806544114177170823647550367518903661702994399064253258260741628302009144821741892499037621817217687785687915596705869730514185025059248355051181410798633664788268799298801525217036652084187913807211559517466805886907431910362117830567410731420050324748638698992548970459113483059119767490861508136782916954110752997364648591379040108892231840922614774810662773592704562261606872392479677037108420347929050704331263396027669916504662268877586258338216827810565522649088007101814407119063103440786152042584993448491029975316148943104149418971844862516373466670067686217753237901425149665620179425932208874001607303430891884556342788849437023717153447877699991319402739691782609059981322546586442395804947694209204595041096048280542047408552039735090923435839184707768433946628596277140673027501990479119203230703493657364201055570940878610214980829179661873720543075528481782071652976382108741864265313156190654296010326409044222243622725932100599470345641049869147342397588290607986754029262568272611928614033656350538550887268125896771599186054239240223658980263445975992118776083842040930273252783515907762514006977493505521986792516079251632381675078595859046344045802611459233808821906851514243758612321223034680426271872426828169387598492055977259306645445807375758094042041319244501962667661200388937909097925460655370447102134798906768213784602804803239193497089622303033761468041575114316315221278543144731433571997643518747843913619135676914955655147781478908537569584703622861865677771305012165686572641117300522109896207727076683828038091128534409145226077840239291648580362000896694883349888557575686147170103909866514994777162090764213794001889014443732657538496369904871118662926328015439636093543800413558801806160151882662349714252417581670915884207120723883390224145082772906587873124784938342348183094541209525839413782217339109678245081157746869894515236134892296312754398792754888591571106223600534146265019330446360192017190172657794102185379833042318176296611900905774439764191147775122600920249452983837690461581482435337649362086981379203011553746024309524887345699011484982291456388013367781018030432434913122891416021126222721297341986222026219237991067356231386473571013797345108544634031525587300883595132288194501208842271234053596086792902400819072106980556430575301465127560008564070928484781428072861721029071736849217774893577322166086909980051730441042159318406176350609149163006570058983343304631300270238502652997338567432083540064563177568312394016485137574854259765046065964100945579333367802697056782395413259233799686738526332686341591995531321718163830697009420663640611481020219821408056455868026774096160029048898889989442542374288959501332645723454076495075172744682980351379615441437305157840941374466127594776762159239467830776677759994353293472378390346786537959035336590107835057218860286972960781429876291988565599478663534304779633539598984897636653892362116123200635953194946265484304946680617954471526797624470516828486543745765039838739506209142420434772312562069933735096658659016238593831105167908144526303187494292494407818038359815387064738314477019421087788787698901160240213262241331573136306056713695334210907826952688317032434812698991222621842864747729311421655413473151238451112027844422758455515492681663602072948265690209010634271231985429416533851452693616731767924523218566018964022855015410692553059351720077610793474616147572686311966322258669851629784573862376633232177551684762600895502198060133456875208802946826033316374903982825718176853064957175723460352041591927740144806588381959670682776815965355203273390849999314937167494085164383687213303076730518893208822756813445769196628045458862619934211416049293932304049040785862606396227097404957459742852663821709272937876347244981554543239052986608447664456176696411094067916318941029160087323997357503452905687157000547363313992975694810407943732085168303055443297271765502575483660280431839207430998119936796963297713094628467214039934255878392544398777330669255674332562310687656979663411547714522385476075644013693296023601924523417420911977246829022519981038184468041199655541133102979113724359473011123218418673160224533768838845899507815108239704993785318136478717191160322977334536955758259687831093916476452333416747008947455153555703892765836644201461970170118532835158134228486171820412957564880432654459596882223165362642817376512800731503895640247758683898398451032072493187675663214400432946375922716415369006444980102948613916762443003607562391558512322587195902750820920833868874267315984872626131009663023396350048535582867435080903234186536964628989034318088431978034919131039798197987082189844211142919895109479276779597272990839049076699639431013702158019538845833439328505652858843795325024137881560033453209981361419849070229306445052571659741941539748486710431781325082873139906357866404785269644405832735248189506188941976719197800572580924392380537885636600509386639908281321459350937797533322754381418888945702515434027511273086965944331347957278135017683982199887072257436884210714180964754917602310813207969545866859539673204202605929969128129298758791958554700541198121392020370272992563019606190662512912741958293078367663362258148072883329566270240682380903693374632051087852489403895475577446577847223567368490613751179396401523185903783026658006744871142060229936680640193970445047239428249044405137612477757792160545379294399497074079182902055077772749944894711352406805721098033978730528445745489413887403756774854147783605104669113754355078584492984256519970584531491041853216479801355366415750379565123675197160848514377341559642957467472834042148426819179844782595230646486475002551087904228691547305222811564645780100421438147075822371511306832823107556965232540087686983659686055535057568068723860484747839615475611007340617639905618426078667285868225302914811599805717281454261722731605617883015188480796997478568498170164210659776905240410230097444801151777884086163307716485696295562372871584952042132687697655894045673850929200761086789300205085585672731456707272356352966531291538396202951596156102002907013422590786086619433603576107292423206854431909756985817623000742635737245305249596222160220280354134168855116638214821506520782864505719556762866017240826631867112518981651361289697954508913086040693860576850245713963515747147626954849572430034283620820671989739457439229488069296558995361094675235517660816808804237578031748801330292317025122769327729759841865053722340997342044018951469376511051975068072135074179102109561137730643378654764436520360780135665470090015651566953106066330563091064086860743900405609000170816361619574545187144790875827453542135845662357544397739772431980081506505185225355741733018153461075992060833773181773122121880769681309021431899277313258215007486583479750872797601414540250820381672274685081848724887579974152716330482005787275229495662097757141694443920734739631393760880487567661800545825653484621141301025007485151097157807576839359544951853332642293954662961692457330958941501545714438345642602473515899985814689233204638219365713950694064907504708571489533165834072836622073294366231763181277964693021908930377131143332794036022009016772340722930428144188404333331343325646721417500480946560289570453820289655718665557662453875712135165191120117276299843865568137516550357488732050043227624414204900379522247053668123531806070672914886696832549760614605944344568858384923810174526372554825249989974711591779422343279064811040206615709126853218283228277535997989389730803873354374601423540417277028500421247402026103466324988634798457925462597329083987241368213705310719538233376721601070101778098075698870284274857949927617481856418994727648189777525244269306998942423674948070090492394681285908513613321158604874678922552861752216495757620664745684291151097363190847911469580138226495184095764495995538210043949617585203099235884060466260847143971433072013267050345379142133776663578747737354072432830680136308794825589947828668251536680700011905984657361380444149268318974709096589865478139864102957487707589122390020635211704525173058902048348470929647570087862232085232208059550143297809439564361371497224955179582992186072974225237253058101827207820978174829573973721153725016959392569031636976791920484110613457610534889962846979796142496200575283816158333611847362421973463083242823385933610543325733613609704736656593108473813888856300623619540184328766650129413862009297084092997632494679423983718873243738098288448903493615971685847895459997138019730650575628564710086231075184085178046596383045594484346724836917023620839362733338971888217333623893619219313672217793235712725913404263684330573251030171854861927693897761792720588789254309976894285936630312914538491372897270944150834163110293625796647923818642751662054951911587839551617204079790287014132534904333735652629252014743804628826883586994560128786674515471537825630180476146471694302638426180703535753411707200075436082377512591503136684733701831753583842939511533004337427378044271805373942270134949198022190902288959818514173688345159803633952090844927354572277306373003031323693666028916730902055577026911155873192062959892849395688087737844164086577634066074829715098077452289131509288160393985935955109585673474826733860453866196205977508914349109291941720064232956078456529925002460743254478831562838960616847946075450752796976107245088699648806679395770282055820242179268771260599420068056598957225226740471530722723741081906062183655882702002359789721196995151708707285866161506819940615739745606836598513313881837235568137518516577560103362818521838280866777017753669463012440382004939304414612401409431356673179884650991710573097877241618358848408259776506409010889516260156385067985260685276051082673061383319271898746683657804569339522294025109172251171075088073718798727721605067357180631003733100784851137172873031905154667810297478542167919986329101545312578743514049037012148896219124384443607324655600515337246173287990054572657163948078151995118928535427425572590641215786957870417504088374423283709360531616485051351170439250635508989014727679463528214411449511892811513713760788361626629717573054752729388191300972362726758120656092135085778680810017195557795423317639556891229562375961365165030538248527974926700025510622973410734158776116218087947036823137060326706947068279993705297295745733368785086298950278219410395224489387656943153786956191620437531979875856458896869545344844307221905835831158574239488036671652057469087933402573267093562563581411625670548722334293486712158666827717188887143036758248785755643936725895914400355596180921620146801319166180176492681924476252658520303312924987406224723121615054085115150916959287177028616888848827193222865567306571046100242122933753561555715249604337429841177065879452352282501434850026497843677135897945711547950957293651647063899811719219759350577053730460158574750209383524823596515497107799190617929691477174155272775196747190216212085778508634417721003094685794878712914880570514752410808713615031627422612781396405097210212847319171789028933022985577840799527806734751763635540009383953930870925968818270763799519578517957111538912933463923639068821543763678347435646916546130612601951470668749153501613321709381505690324719359051548367443103379771411078110755845608328294695591742995086297598477929282000744162923421404668962037729762618941523891058053976239121561325946416400218945325641911258404685335308697298653115589194512307770431297881358807296815445533504802348422744310105496571955241525403461921613735125126833155243752456280740527757357821467952261145567525421875040966597376729802559315021409187477699142555105088228628819685583507053080071531310510953753070279589686155771503438167479409355750339182677359267563436031034310636577473653675560859254240107165370332925623034811355563706797201551969846636495124686252747417024792117071051703559330074312212873748686900002786417781067404510782713734920111904133685033761566809756727222289002034853875168461171179203106972251275127662683079459809284077020682314834884266814625721536157736336712764971980116939557765227128897769132424970027541230647833575474211359128513835364582315870141555436284510417909725680123400329593266216295556857735466828420368525324034882430148984376953656617363324256193634481071292071401623089914899358194013680522390906618946753883530324186633981289880444891222688293591502381635849480622971127541172663016632441394526076335196310918960448170745067064242052961348058280911645544701021696462936253595028743768322595665752371729608336678085672930280043288425496225409080710680970146204105585296619259370984688458194610945452477370776487814943304578630417413366460456534631321993175479837388084212970999077380055802483039320639235327947238985778361469534734743875097206027962002852357289035630329978769432471129376792027525791367266251495587633413302166559092657440588780898175564186150735905963216984668534277790794250747331990462590252946996804842546032720239298920075844275754414310579508237926060271501959630109378023371780340929445366675573756736331729235624390828710718730283249327559576012970646968107889606254828166615616529803065263066752931693387154972905483481505875758068856436175995497575170493011789098577047264717146270363654397373154041276054467695121647265619546178822595495601740617821647919047245427774936143161185600875530054850387477310311495168794306733429243590649966104797015483673319297660415643607847394580393394671783147258653560658717048970001401273169929269567279196043138051545814867958816205714098454166235629148067887410526962315691120550618018191020668552257140621492593699304431853021372798405747752079566528321276430680446761315215787230715481629094648908673335215541423480767675891676473645259971029108428351363287450956543568077409487199586855104748061663114565128309350853263962286292833495959620462212935979550524915306359107192112878890988176615914114674295174693428326697260034837818686324907974558904613800642379601379923433156131623348333519231069023663124472600410372811469789936160481161139352887486138360663955398959061177646469798295552959753104059483895092670180487562244618508017872850391629863513601766590607455019056166586343786873957479646236565613901982911456498207582891729534623707876968636137223121770142475894365122322049127967937778790278099856831896194566396331113919925707334051248477865066825149759563726905800242549828943691680055263521385757680613220107230642833862369514837446293969157794555959551896453090666156998139104851601991168498159138478919156333764182562536231975203970069591869674043634788691554886608840965727237888950436747878452166674376249789791712798400916678529944397450465066788885485354744054720899872262183770829825063415178354064361595103161842206652702084150933657523836412615680992924084775295832552642493297373527661414791548021743937437726404854684778994187135700082122488260821176552612376811945397876882478984774028397488237419270584125138577384098955998654738025745947263513338182079972941885791707842742115688684277968154540046306639448338664380501350215711143738644851904279525025701580601672353057404394535857407016305736548579447272249712450366066776415377299757784726436663055589006621542069922679778191359310010595844874456622320946516695249055743604843609487107938731079083976956825493790043640786903915828366534135754687882434817504173668618428229174210467866054780975988530297265606418301935059895091695225538124856750773642318756349589466646722790789048286634945819050417060584127502912616331590236604685581206067564611441814493872130949769022832118294120579355206173393302262956722939900200146395697217781192855352512624533530979900892661617972075747766314102586700627166581627787779177517098626937193368507482279757730821824731930719104940878780027838400635091582756959064860843067582566391519090045860967131958172921140864822444049663925105318823611759673739613616262812686737806721136974159208410438864720158881705523329873568356534913157351419933606221436675518522234166375140345473633607918119784799256941528568452161873821143072798960869773136850824965852930852685205684212324510496140633714356743060092002299830166551899818039053187310420986935993002479213566338294641769460459627272863580733443343297288962068210606636838114348339543185548760325751419369575739036307655803723935603345561797086148290846810371202149191600122380248897310578929145423138157890841954274864193779635626246577437282527749918528844719798319479400310190847655663063491765758842464953722522891681461335111798864228666397589056683815430165786065120726029765899530688691480504937146739613669366348590409524876045412959828391076863737784502677331586539566142075357365163471771567468025145034564994396506976968582673848628651801602879340982075451724130065026581107915886874526752354371015971207653887810225468886819140624273692786760832762498219900893099326598243308076141885461197952482967951819368408054884154209887814123695414401012766245558873046305068929099296525329061870627509521029520938413340475603456722257541200702446981066614682236487882370989236091427348900058002065084539976174856515175508066331743737008365007752259056544555400016513529191875220131691032269981846544690735884166801395087200545117998430541001680647237374638086001322111366989578530024717545846378251433020087151310076378496705066678926333222883626098018960906257997266618906446661476458047163272648168259343127721969796948926717823758261704836966180233066189925598848780330363415258930943495093449484296978017573734312144216809674508531939247257232571403784292327645975926019944422338516025143850922398205540286552649104613820743469721597914439040344540282318867938943794093237984732052535023089941126920870804603641024738924743178067029878017638346732294341900052340197564160236340312366064715068245303610593601963153255889710011197861645473552495023999615684023232256885279650506595527198813495524359019556506785194769626167636538202371338152759482790661686481538621129056492852853758965277598475525418578549156865500745551254532140706791548274012189013188224380961223867825624689607399206077962211645714883198661326920348628453585612944340581619645306208953471022671309029349355302968313470213136860033902717022365757537089195567363091828923505330627361967523136512668614833303200875341838353147751520893214644151910175789147162543256809629117484625682727797377819060653085093410762513824431061658636073856340956925320754282657535252769070994700099672816499015786786727740504074612650866958927225259512795110170696496681242810367855949869742939786097664499707353291583294501448864669600283207828940293004512812910639242409334703335110430784720487020362203143100970791578460976333202659558101468623342809464618324002595092497760285772376316927796024719745759290232300925861647870664943780181185176697696965335181733817013458505769323105127306508398419589571728251474915571615996964695135359344017991288503926949787133713322233796747229259323500283411727598012233280545639339134035556076401767699413893722783834652719706748719111754040316896428043266217241589468756570276255462934912191793249161974331556104604535265749897377366318701233121553635919752095003239645399153881472505889852436319182110896675173241298555668182429541260521753083408090989159891540093067882725793644034202062850574517011727461651809264007735598682674118660111391023987598250392266378564490005498190465605554523039246454522850212851655713866538023801845748554254589282062766030362034491726387077636250198630659129008510294547377035391022005683803309580353749767059193351536861105166614410480255898414755667663211933697249933660017247987918832872387463332982371846394765601094130574407946843443669788965902848300429186020666726425220626361618712566068247017921106841823583722836840470719987079414720470785316658034552953050470515197144598754360322523854654210386787016444601664856526574049234806040269814298230659265118057388570901456211382796293042719803604164856098253773414717855069580198029531200529331675183810744474076045538580428072085375334417058768267133859619029626787117960415038121835003813671796389443401293256465688348367858414079100947047624247491440590079134176099565776585232006941087179788413498400460381465776805540538576374792549231281645876408616240877812488849329664437676582566225241014786604790527882190054447838911851625599391077450379302919530040302613636840168070420521153377284001333956741745396100670890207372613192367561120826349743412129832651294314189969018932674683752445529804295031823875769064895242968058649424512354685713364932717863584942564742661430870805729016667254066351518435094675604191428808020103348054217692633125321310897068630251855977419508304382988037995280030572249916519290049737036692634672524109222591137767796294488924629446666653370109512698269061350325643239409618413027360398346286805978881166045845188009788973346104230370624243647455139241692278692069845228806358000111816706571946553746202378295715530121795699965395828798112581962539691718740857858553670654564230357835539504907821784566602972706540056778060412909681025520452773869111005407945127977361936339608041841209368609330037155250243171640503266497296962006269637126949308899623787004294913902326353965155901289287182769848364995023659310541550624006799775212833986132020933132238103036347457458099036874219635947676487245594374234373303148133415371054471258218312443916449879885559919357662141473001877099838699171162231763815708217245536687784904727654474036401473474374827089686789602890516663896756591513806107439549435237109932352723508442032890358281463647351147157317494917486166433021243313511154740326015086064420332627389943226583715308162781136216383476900403482921059152919708761481149812580261994267453841017124136789023925763434555625568805362601268790430294543584784320898113780907440546483140258226818323531986359714304085359655422621093898159762226395272342797671041610921029633257505703769662714461913364378086309327120376656248501183503443266482603422180081071551091641966761754967654065612211558854317583578289782936060828324211845656944798516287553408978671974714900606138566427748453991852651087879260684945830031817796786410704031720690770891049761731207927592157121921227744422140517170714625563637428592258506509083100907750393791342647802246226416069695425305766785243731963778690107554672363295127472051459195074351492663115589400090610218764501009903193122921309378247510747911481144919722291997251910378478290243968738629096069522820854807087589609235183863683220152082899094342457293849792092020222673458323193334135185683694049019380564318081124768304705124340484524571273280471114127259684333259803904117564102516860131928330876266123151690617118917002000932507979775483875627631269183600615772815105590092168409221374397131805799879637855762659019218776053311224645841965714203688664235599727290931114885347052726792298211992924921201688120657178084383970173851038505578284257857300286149832848735180472885046807664908581320887661104146864071492887798717165914890108574609526208881629167478308073662569419931080568030638675270655263732172100644166257813008329440729651207545975463012227602203966268982326988214104030411869787702400953553546103770148100248671279860493049570149984785553888658079914535494588180845134709450810186820253529577300380833679401944085777334455831893550280691570611972123136116919639697563280225861114733809284440220456549415458309339269757262059580294591353915303953752131340909476295503635232097582598715440922998181689403028013553323172936815883326069509755204723943909511518491967094327505172418170418597509416505260452334722359882666924249202271387236504438839632302219049626609336469412990194025431611273114656440896556300537607019391132663122960651745754907559260962110899269386153949628379412673924438691312213203832140514412812121357613203556642157921103692057911395944169212696147505655904009173705993384775022393793048684746929580371010263113132752694763654263575790338358482032011079084947925513894131737589082513682891704352404591096929975033269987040256074837490836294277716036869230039027377994017786331286685996142396905727301168504406790159355419922295216387130901479410390463725968270619669389496975255116610881371525052714370579032135096691504246616952833342070041599041304728041648051249738810949211437888402276709456479358624284546301550149001040946354336866944736564285064036837775787088628332429613473286269029313546040985885328987697105370921792253696839962096026441851631268852579365316889285827003087685005839096472029884107211296300435660978252993943075755089599838998746783355416428108336742412949441466209560182259605019223201669696483770914461714316020374673406823572552250933744151661406369119503458182583532643027022822934999996738452861779444171084300239031520005226329035760740745974047439743065873935540474864283911279757205785121691202688582809075583470018430775323309820976272174637341024121907202314450700150657103734869756937058527692077956691254822775707033054391016745500318433908121241468725709921804120400221251909535260521590117821804172674967172536727963310610995558400405057034127917722709135929402833404800902955216157734524028949997225754200045458593583058810890364397529982645879673384972318077325445191279365813083275256555490427434107835229161772371465787452813739220904401391163052357291518462246407892759414634933851264835880856816244168872297742784175338619662949797664448029547754316083061930510801986583729837374381647946205351513483068568231904987748164140573342757938289326625497944025864548816362254956153493753010064221780272738372440515465876677494251664183848960290511585749010538876675031881825940928491207094452301282915908761773856597696000438380634753522626029396651572136579353404816441910206420338311015851750143764568202410477017085901563154950205425193230666252256643540155862084430570044677746565793973243660579900584614306327966982964243656170172885459244453785599704680523183363855049634166133243661887842473127046489648576437961921853378878858249399138720023493426858872047901596044838905690045083160691868770649597800100104974082895829249805444123886843462043405023102738993932516097148439728983790740448146581555551213751892852468919990003514267726212654507193010702024016382599979640829978886308793444427436785355387599037026217661785952912311724524913360364885015890506658663031166577034682526235725913080836568053408199280685061841925462855668386513944817828961398328115367799464276016955152151142606040989861144941363924640451813291945662209508326789413672157065986634748856834047179344244082061412988033829379357294910504429960112717123491614280332752671968727967450404550498542564871379579288715292326309145914611931224880357951957768357817058770723952719478099579578755959415411703240995242246595125886320249291757019658567962983647619505521846766595682505970387273081468595758370439484371897414275329954278915334406413329793938028984597608005114274147267800101426762673997419011363092066417553327539367172675430877814338364647606545359754331030189754913938934974079300365488722558742070491660293293193749690219496369977598124522823643898396991935475582432062198803718800493319317738376028689425552226840626205780539698644932037844822531995851231717795132649457981285539649745049468580544237372631344997701308663326105786100079177488694109778431222009056665223057557933532033193805964718339048610397839540063476316668613009159145057848182464752738065115318004117265936828564168160749205467449269727523038490851746493824951698582572163338055699602930812145320204160025708360852256812865894283647444425753676471589294805110084848498541964957429475566539914430400668403089572957994158237556356675069572717601671774374900760296313608095485961310686100390603198948654265610083802954136856650131763169347997702759459456886470392071927571105485749314679706819909250242755192143069094899144424078923200494340972979576938267018090405118802861335090895878328383635625184612746139646046208394217430043037302138969932769131949667611454395599078565248700960942015638648911620020930056960787263237386157723942263863594469935252823586248051595832734801036280228309267983810173230689395443250929189067094674502393390523493283812014766460208676205044245605641310289193405376575486448149669499446227541142064173410599058317544770370251665195731217795109059054421942237785857028076108263271826042950012607672936081060313501521003354438696976056372530620625885668642818512306135101400856359422673991760390615214730379412322619223832424676476039843281102715624878373497305105673244135174919743527975959101129032810173844557918013391274080421270367360136209187097389177201031849638460404380195328250172448568147428263230777882725618984102501690266449470385024596734329571999406936543223366464242968977879497968657566767477179180624530012091706612288224484280300046292051824580882614210345143885440296275397291228510846734076122328233108116874132345167744017890172014438594642605652506063617598007604748781540552581275596585580767105745846758000927938418447858531187637453176889010887153894873555516415871306027957592406169393342769719803656318532212839546086925832516354688881582614988229736045767433449046127198579345766317405608398710715695152259793365819557530351406586379354442821053688612407358525271370197718000336045233506414358443416630616193985430332146867285154271797965369371156629310681677176583174033602922817147363537236348140645388699910446226518779046975578313017631821314189869539774355797863224498879815300594114070073893967453698669524219824084772953654666143358217946858938758120966820364252409165439469527551021875726370606415973848490109183760594528641647944608717205768329256360301722852785275113339473619698547573538159134806082413561500966114842780359092278877760624686909360720245254227798137964325751762846203005998644086007525329255034463627918664794348556166039294876037703055364201960311162249488901967395462662764436977453407479624569493422365874910558844640409449583020547314828793326758788898283320765213900328340438666533245185614284138823771767739165912990511569666304476877093486251977714756851842583290331844318519454307230749461601701212572291311880871000657260232967261754913406826942272750135084443176902136442008895138361132522119197435276318940666483902373621878089185274068003582841933070542171543178895556460849979536087141485956967833976282092070211587736453859859343501390361558477929542065750863242952096201459907678001065284950697272164443276333985264000764823602247301497853388257372761709626876549396148581279148644724938867380556331567881299907445035666793700892282129378340344991139780258726830823282625474678093307626484582462997595165361907470114498752017837672313340904184636888439134902634716381777714548189242553237342255148908161024181173342988604668767894533617744873120617759510541291216415808135366464757190248208050070345044636218044389340376692515804599398645703977982365435001486913231811932066882234492309043629477632797329096935047698927259121915738708568765357492130156098469220096638731999908212659441921044030119116739501292771243624257374668391889788276910173930714600355210653275502471672445584846328753528008244755119126642151985623482971008074792148865500069586401485665394684380915168247733874707236073756896762112571986153883398592086604872591025183703688772308392276113606526280667433643605015058919330081471158938579512828740392753410290740148272997978717588853922315443225973891344801397263362198871947488430099876538243853477775480501750359757708322041269836677341580005895481053933080825436246883312717805570073710582740080664446809524749730778403010038582395740001893517384575094460079621408055131430883539650844832309066486223421539170593748532503280763458302789559208401972103734396447858554460067468730850867823005496106204512982040635144093408281935490486915791568349484550488935894551445926328712594911114503336704370202158641440932880867159766605032528120781319429851596836968052571393806113693267711143290075225556623777680927103372175035282076358068934358486531056108894403356098701239398799476295618410032244911022603842967128821063487056309663847567344790217535551239433793927833668432658741835781183660710536459169250515311324899958401510775417943367217022236601876025455210101214571320430571684810231279564823109627100536747143718509007324777118051527194742997402133180175647579629138568114236639252099646482134797785621725086839427600363883154192208489976374064299010525834362779606847414387707585227557040245917690052875156248582567074288703962799431487088187148124141427632644249490391842213659116151231453592640175115422887925105198950406292986634507065258506833416228072782745344332302260860773379572090261148969010780920228062580063313601473172011539789050473294094769872004553558385784827090376267860005094286050084825985117970275520095466364218178660619692940627690595871521073517685161040547953787826918139740506212337247254932296970371067063341785801151300527228631464296162566727946417569286714153344138232172332834900156737211042096296539664921506572858936749954284033023070443410556681516837557322544811319979471115472027921033542649243193877445947815799216658465656796213236682302068845218302117506195794206903845177912121163623566561833079605871129098350200826383207299909444658875558083227917694817404744768661556507594182246366690607955241993883907470574444534443498539033491294981248922942883778232931080338594821279761106280476295311404354041575775982510274452624798315909335893121422372303263965300578744853396941111513473888186026576163417737389012732998480002016565872630018873984428561268372887770099278042428140754518140429407664165888226099991484612394986331863209799650185756626282645166016884156694400712723582165362354500209375183066835245094686443225360460312548330619125314781418555769463422567453449522177421393760693157807133484422986562251019703143859594565726276623950637533348677828856981217044679209934106196715337455561294421807066236343616332706538072069092686965766976414820912794971105019782566101531874604727998905365674054641397010111661143840348607900731639737752101131741056541923932911606628686134898341782130687074726876281420170261489153334335226800716732644251472542137591396597360857129097850696748927892069843762358792501591586754712071211736340763230631499739273072169362471192601648695521966539637146313304967627421262358406011202759498727965801005863586769122847494764164307878616292476067657885849004251645566263663098791239861286465351272019443068143139255743878665959492213549772882338325575168622191075003819653544281361418068779576581178251568233990742199516916644248858291056742186604751905353665342476735937829115043839666078746714992301466747219218751155102925507274323670433670310044675432022403729299102830066724275594054853971865407120475564349309609278123604658734498950962435177995199957364786262198866032109224297226033495339222792876001894213583488678105040243406418141984676383795504994148640365585018436904441138481591771567704417888826259456116407114712114947055084707068079406940924376658037594466114187072306410615900344284484243194051585231503396676142494838624867654945411091465553492130981311567957124950298143520306818865498825860662462229592380625994547718965860881875624056490785476884345501206389917245818545056891318894981407120869205160882938007141969045953261069942385174070099727859357176175207267853749324664628471109291287715722066780215093212956154566471478990157510272143658107692185864886089092962561598163996492166618710855574955912178812203961672941306622396312637972228738367094771081561143352754115119560020926769353285184886904365627983055256215422237746919697481548162318375396541119266599346952228342395659906712087617614383828787615420698122610407625971469586595280291615085499351468332275151445208053244997929184681813223999465327642650507577083802902291298443519757429082631513011803588250646958244747685681423586010646532264430753841854158391022153683091581719683338494269400277432080916974700486152214230492862164238826403865821465964911885987970769880029645168071703284118388956501610794538763845601631311537933948871987463241160210459271881223390644085911789152639271142613844297553665935599633538401414038218822786760552729312505144289851830912664403970355995605022254644931252179404349215070219789869160171142838895550051488035309679852724497281407432501439986655214863245583387842386918239478895294814122391049501057624163692000464528705354757766683334687991149307697013885909242183226232266602941198650973098743238137346420372226779149356431095486679121165766784874915627276158356946850250889412775274943334614943947279192454626830780303585321431834936255755418160140732871902825428089694234697179409947365751710915984830711441123217642644283768673445506938764534175273885728605578854006258328317761718258511790399916269254343109143621182767764716515840155728159106607075048458388786846616997063574449928664986741532943678497509798762494004480557434254102394440357839181252636818236423073443030358840262112076177673655834010199050460291535456076743673797820249667088760475727214171488424848328557845062525727894207351974952088965678766047987275260362757692282640679505914801427065961742022963552249240170019184185114127589690290426005596537511139932430112643180656278910888927656401375231343406271085834062450190697861989049298108838295282719480016098058538498788343453150468398515238362290637173007766396715138631054649794920707116531698218894873438679450490761432104524031421072310455257282062446983863549282255767291518009310364383574012945712908494936977114203288581204343040552967969248212889529695766668241746739032673880350947067845127991951559603981304007606946783807225215964804239551510635567101244776164012262189423367323981671065920338213371563310901515930885869631599686322134392602397878378011607398199238413434882244011075288386770862811704354745721931299337328141772494034698686181226370189123888129647325523471638706812338684516552088491881613727825459221973570824507862499763866164523210799526232280684307851350282530562704972689275786479976431149496089184516729874658988188774670265637855185468932658100129624046059529039855153755780813985369684011261266892840289165578280809746189991373135255212809518587302952811008504198650836095856150512560695545938066614899571349830101152210302034775962246488254045601392701007880153621237567223550718858816553510767467234617310922555955921153043124774785792103359116258569206849035861194978666538306445946438463167804448926483052963893834106919098594927353197559287260629850011483732750736007766322106782521077717540960732774528657441127967541124745951084885234228546334188971287356843399467253247351910564466797710156304077372617457953463958305504492055218106168108153360862980160467725675620655787091363319913929725308064310329902463278007991419110530614128445818468598856617335101187485674015733436183600305880414183660012617334268191105347074783989454240276471455270259873135991117838406666072023591167924424718242645442159029207767427455486898001351741613664711241717030382392479296378195926875944245024763970757822484799705437785711314049684893977041825352595549127394746724600767759685004872062307208351702181120817681756916498915925325450628049380575301108837904540555358884128203341320213480657478413676971542885546303749615790683605596693220403133356920853514973759327644734413992849273612402630967093364071200107811654343862245297589365626041984458712825961058446147436738996266309272698727019013255302746211524175890310178736632897623004291963052805814377836739648964064859099938466156756966651638132204542278603936349577804123922430290726079660621613777734149919955908446924033550781443309237040527330234205373974600647535430981009653002243363174694168997053078377490588928218012919406682308223309610378899782880649338256540177634255079181576358724525049329631736853716375119762462989463709707011710104874231236370177308883885410232603627137862932210374626504753518527578473250543545199971648692688343059356048756360617791104621149005950417359731651246215031653330973883759209898121330028489140531331617390859836241712536663515688210163229337486231408421759467177421094076634071935251586269086705292353034887413660649411771770676789650618506423664201808164773075160067828797288269815390615820198193371513464167462521485923723536632573181659671625329423609991568156016122877987812062646534128527400584768819025632748300815387847623083261114774438158605597361967527534256616014913121278191530185069628700997964958533164602005947762711975578619528149773100901407788161081278420897527017903703220596077917709543804092637276121847916404023495281970117090779783488770976388490487038170442729342902879819384956647511245444211432527242336876453812888423312286470983519607489727745766809161520624145469838817966995888316417590119297972766471971534691588211477991926380131959250011182795230570028333146001826059474852176802574981998567988584247959890980430899985264072855799942893308763193441828981283603020095698040422133733086504879122159441650572520435421375520463593498550974480295753669859057690498176896869302003993786882873181653486419584227331661119697107287822769383736454993393049316776972802089347702769849701374457408591267310483861636150989091630749419861265925598185577972748737089201750189554800590954010029246233771852277804873897008170497459435266808859597302638691512837157739976887321417616207145725672777679309197853606864824234317148062228818323885627003510591308727524834379718994447340958077944661453498898950929910256982641173780883585097791370044922471844797285401771190791079315492320701414443396390819772919320899770319006887450761653720548972442786611667804307314452313707362626834701117856890229227041653836997749135919855025609468985716502854580929109370019553240576622516975877978951661249153117046943112829795028571993760325830456445240079165638591717208700865682637545384452194228403825039991768469508759464533522530485640461110427834119976438555477648624748516186614493296182215753000905277102124232767071330851059914801702059808797198765576456545297114634777607564762870951881027317424448510685533496981846968489102087902195849636613873898668731400659000879028701203506047366922152223066702499914933708268161331919772906981855655449445085063392931212665908280091321221180628184065955618630651350902608661814587082602876742972636662096248684298632886516458487694044647965437219239022195001983636694429066868095259036057448310096370811986776329092844841561487046189724102140617758831422922650476049830567589491793621695702892336488012086581087657905337695917656277067051393061459894908830963283257058458083545426754736651242633144249689592642029693248407709636466733603198153206039124396805141017947765336477925822127399992142090685856580359096027526053305771399653813458550802859164850906193755216446285035818075734682563395379168334166629447170151810919006397083050734733029954016929409731301230772561109214028331379873164960138338598600358375324273006901028316432192611703124623751578177313310412390679687341433801735656538011059296905479297715117242474346132349148278930258909241403110708717206444744143656413073384518292996836764658284697678131039553092267847535061307046957029800141549550521398247989840794817224512505656726119066987943255829463749809459110417651587461178003686537313637789750303948577336614995977204278635960937808933085677590206757257469988735316864772436834910904700237262326475395443109998313675051024322865150971906008746045004376152920408882839609770310991757471462669140809555973248484540427159387880116987580723137133754712857779120213101282105172895035355983440572743951563293615986321207163295735479424993709072046119833498884476589710926968696613762818681053668356313353380300553363162448238609343394319581484321014970451580931788257671190474489311623733630334689295072948393219406102904078179735548527181714398788608256474152306465411779955199226305669675411783658040440058412331564382258375181211684237632189786572063536422762604198213726043377703480539212978856981934133700833534536520276472564277613602948307361977153978318921838091017775183227978580074433293588609323111569467834072116061754302473894049168222115371225935320532342590746145840753957760179734275260329084707562746127359569869156900917628450307126057374397559108285149840130195414946165831097865887131043007360656737273154399352548710271713769789442202797631362148137115427067549530408509022630077946037823435008033068210502146676282821362958526625152522910923523503677005799721651580994488614514792545698038382838054206205247668711197459225660230947785486623930255448809273333702754688090825429147387160433518613145699984367558985669657998295108610276301414988607903708155241401518884890451441902424472752566989816594786745375656773578985492675641916827743878263304831612412008269186340338111043244897914189499007188165057345184037398020004346909192868472390212148727340620263736792327669165085350395131271198765537189488801895807515603030422389906115185559619896133348606783326234484632132766472485826667035230291375324552661031040301759387235612247797182941774116801327871776346730562622725827264721142032861829541871856815746198364719693285850956922981191333183106377442946543800698437058017968697058031271661568852150373493486339853599118959908828074233720225741756695502794171568940539579007408774222345909640342755912338923495126102190420092725559078768564238268091272462676365997829289046631470350811521409199812521519187165520955647380199399699294196752775308343371804625344796955443708978116455798623443811993430245737521363224575670253339819659866806222795850088476531578775496325153299985307342767304217057405183053671610544897728061962140749493902713408269478658447914758383380759512058721905019246465119045752342427464014132013799744836796863647442057555520595842505471117688833496462475687022984353976714663509713809527212949419200752213916794876715750060729764499222947064812174018722754412909834001501581562986578009345877209153312328578018280585573990368675882092011173848157200735801209657497679750896898784789294168188084556309468117288543690351283789065063440982267754136107285904729090387786644724053365340450179576900210355620844084689376838056274689911578126699048439746336852597689419629144394028295536594975194581111753297632431983961555406500784203773862840950178252162271068802554441001781451659089772224180959755980303946710910426868380249751038269353549858938701420273891737838945940162091869170454222466902655176301033253547190108488912305988426824448768832998325567235529536385744034674994554320855980739078532383472216684134621687190850169465532240877408309998982466321098420956907535765051956646778060326579704268641611380131064989768955039413132918243517959606417236071547035123145287723622097007416900918767958117691144675943978004831105413384295284476744696380354648489500307954453522851309330124974377730772907817082746545520806944414316136157978028954425956883536979632808606142743056591755247586885495779940439345265083010750149249653887944780708046407459911833043043706004930568598829391699338984136497713928523493007919655237814147807355397005688250889325603956845492693917693990468143535534796796053957169375066220750300675627778182115406724499957663086008926379266268107164661738587446432301212630975984396885502373821913062580790900720625993113529727225122937604625496867983625131948532938289283021612922888357226963441051780790713823149615573231135645696982932853871118643490734983169903226994253184346136556788752955492873141665032635840830760589767957715336918426624580143120143343399358875315646581698949925103775228922621309819762499158854914032846217981835812133389902250287029817085218821424063066675843997728004676400909343318922707852649931229627880670874481204201935891916847863071242170051296661629777649385589195002577591256449193406225482754652558009365289232687476744680830289171018525549070359120925683819860953268181057098281047044589854348016301644800158833896714246874943958088090723582409493117807371339654445622808833395651837432219031163286376776211005482369486330298751458435166355689581216407479016397685786571757588361738262521531000427867454934659507582999233671609410655985330466582711390014451767242116744816764924799519542278589306324191716825388473478235174413186019742153408524572345690613831418426902592400156812545505836960824196311778515445250618930222760068173766248974727013417494987202443956147463341528640015399228680694593074940709516906093429640700590425016025307260978513498979062216595295014938697086186567349544533049329591859882173485380399641324496987041091095329378282545032181981577761443446609992990210094533719399892439325416444421389733391217246312691725473372004148894418981668960253655170648285624699952058290873952687960818155618815091750169584824810061389510584924889014703094559662329409801740499213838427204091345289951257338045415826157164167801675773726728478528155386938249839720463413684121548008476562737985954010067511161483675942474657108620522023441798382668828304098595200087689933592681077042474739807663397946293308277643666659525285867190243065974023519968615120445927489969157725325959782604928327826599435324043116993868697699228158176610913825869363805994914983406339687299376281095762620812096658119348735429828581320488360827768864111246243708961348764802155388912147423088575337057973108163593564634116200802730280387457246390150049053621977698920116688896463235447085913350228472771120552755180162837380304613541021534663821831759607686956646728088928469357965068091545193870678872399419426100729418915371361123022816128982416760080753531975253632661932323629823177357062382655317417299948922701428154873977765169938479169897960448442921811734769897032001557415394722599613401927698045678973098032162558346621534073681818106349552143691972078496368723536077225227746989126004959791384743448556212044645816233986662918833313328847753169276398546562025723336595017824380574682213258301682300056298647876857212511794006856594067329236604371282079778805277502385519621246553089430250036895389443469718966956602509846106694259266259603902533574402356186455298180143049538939791992692676262032704846800825771726906027557495400813323749409390082275860509615608059447043241858711633772582281318588722621547060276623888791576092220747123690482049139338747219898754898206349353421736429193353333838868661934611720391020561878846735796033647840772322191093977656293599559671173208131600578056146055772864883075406381095436704404449928979252648075689259375049357622503856055913512904291425847462901503098012492859357635230221003421660575768486172836783402159771431361424266597991795895331893317947373518437678429271175139630411607034660402831139192138641347474535513114535915349465948110809860448862688449400792179165265743575745485906464176535775457713103018730525413911717111099912776567973135844116890919354644665296988914341984521882652071187163652640480552018591578087760791860869863488920924186445645565455385307856134821830367869505947978235347913730529802601030620196442645233202641915905331578348354332904888703369348418721102120825000469327009243309558293425980590077090564329448907723087517174569352851599367099740443521167411557262550380895817679261574202413061633098936832789243537913853414648151988732921432642103098834884518696728813239343225345824666065961955342744792770589827708678519060990788320476814579547176298654432562600428157576945772243697444818676231818726297384063453859182895162421195248805233479220034907956522233121594042543520826054479866479688773006168456318376748082302559820402981157695961373796740785167804091873976226971415094562191671201534686603170664928936939157209652197255585882399595082187791940865376559155330497880075628070496024259937835912259028847284092994883145121642460129523504079108865349494262161754264879080123869797349670590452844227545333837095851024725747161751283242923887480675063739088422516147136181804368648737314642743813795287629171788236696668176689154744213438151249691469641967365930911235458512204901399998214917647509010740175853357811370501388375289669484938376328904114585983759811859280114159275545502466014852274664578470643512562941085249792120184578882560552528147823176055737023330936473047031194574535330772690555938061893257312401370573939984410279491502622059045703243951981231717655819310177121119356010611206037900389633952935439533373619257389460726934484776375981305735808480808167936958398416397027998909192392439431028657849628342140999261399411021045668477802057460259105019591810782779980132553948666596339480190748090923206625792856517446631044673695945765935573349945464173738136682352550830874503952249622418449398524211101619082945951144314425934383848413563974897726357444794512635781753077774755927104486957260123026869926381688752442738823396635012203136233945392573100418731526551384231320718647541146919413032060922296970740895811231289474551232812144209617841397026559539840843080218796945234756815667808125818693242845950711375807301744550713959936427633340297757477921748204572998999375218747767095355989248029591579046712619144269158435104091987361379528226131466005862996381425333320493838024904885808233276301938735052880553735128475243657732995873111387737692679259432760465723947936143912245734220254047973980787276810227451400152828838957855463673467786303285389928576804068495892390572915632771240500662994408392257348356742253725762811403171012477546273370789651365353154663559989844706941930446834627772875604965758198145282060328033428501173255290180698848172646738791090019697961999555429975038650133847301584840467843000157475302689467981123631518717182955803227419916418506012172129770856531127003276225382738402064247617191634882651709101100181414502367327516521004401917779522283829074901569817982851241837468173868922832478569181766329637293994510528642787785492486751604707583866538608047581930054417020040899264429541738059906403835059236864782628699933836950670811611483230674517659586964816708675831263232014043706182680813785139415201715789793056528172985259691075735414836578112609812070719671365045158410306835656796367305066943259893705002543772388301455996158032796324871744917391644362712204396464587044667381667142359386838866417467158354637694794185328107859971270599186787264899743745685026861214654469981724812466083923224496596982197816197548819130787977788064313023352449254407461468867524244702965687226890693624320714805419063306875221345007528239152890032008974665304684283398511506086602507055756049826754741087868498617535408113044469849536760975008176650204543832763480155629044858127941424197849983783583095252852500224587778342120776708296419358941740301570813388465694532552428717688504915654155352977980716384364184702731472323795757012189853139275301836197530330226004836476717980333813499812798659989437297063355447291387410541637894106859713078870530669397084932331429020935985926169682299753451325647112332440713479238899485603717221708088988673710498454027063315646692632885567844840901471317384873060806525555708265041408501270439982916189008196496205954121546157188640961329772822186865762348337628404669336590033680203661449122672062231484135051643705317972214700026980038035019364418533732162270536646969052634024820971483185133302923426898700620163578759738743039333033231613367477606249294813773117426267568948284218026513059103556973516096627997686719641306036060411264534080482688376678971246295010561034786521912484680574017622205686538607050791716211375817008232615322012594147669203900194503222654623149940269202497815062619914338422167751225106871261547949899319796807235569817110112278934864539460232312123210237493084118680646760485471841327092767784807308892757487512483442751719487104097999849266658487806224723309685245663757669376669566107771153055907426425010789879817269776427424485193014613253130789410998428079035569121304092342375419628706980390621107261579495298176065004688374241293448671877038375568743077242248933007820365894323049303303175654504912651724227653860049998518148849061340482751626862734963437640511503848155015612074084840446345131610933381879788088854761438193805681803856811945721569689590640001735041952381702315765235046858391200014930268994585324969974135835770387740766985343873222994290362386582845536543003674028131011590509982390024845950949809980839701678679357874366288944911384616697815234681644842951481255266778364491622277489569725168314929906088762441837936134032650920328166017096635871061074843399271268709898057293651233764309044917663450119956478469954928861365062345495135089276234946333314922261086445785321983946978091734375063354495940878265762772394059439006185526640114542158219900675643649488149008387036652552276905479417045603950578891753062461998052362362796865101440510844948527708791526897160961266452284157709808219475061957759957674116306273547212989364270790473907380865496069813661397057483286292156422444634015300256043803987640761932747162956264562419212586209218904335329082258915620154667932494674607760276530879961864366148746677842194351968944045398621627613004560576391801691091760506550356383621665581193631509276588028943558141466845181024666128291021045700987924024878634230788698262586543909249567635684397249752056585871643483440066064833104812781648531397169490027296401830191507557949240651144007859507272018029902039090514156537295580239996586146405464076856200409236647971778881359278302281806901080606376867154408426503704643925742316647518539571843450548987617440205226873074752735681003098810737985044822907781373937820391663987048669719961842909875441575409255937166192844273200831611388321450933448147121091027864227449439803730053174053991872310949851589355281491870166865393189046676540791866904307306500289039664720954521921484537404470696355517889042898561314054009719804976791053924963546531055355925867104773963775935175611242767446877740597604492142511803089783563247234849839960742291278694742488763249834289654213106711966310687313214428284213649718769126853478389203331237108057392811937875939505041689114280905699756807026880399638164977532537064420928794083212540803621975782878799332792269194968356205630097566070722929247947528339212726111541039178370333094710342383830848966986528610048372204951565700363404266730759182018264940257620478506394046329443907653973485832847683214508066045345419653978513075729810139925078070865155328631659342917422416365357677717319823825148749458320885669910089496366013135003602242935307214636677001412653578857404188287497462892077332180726318304269212406920536822574854252407714503984808697395097911191884231791746057915580690224206268571726969010739979566376695786407197727874443947536647320234446108675439094089880289109609497794674561841568731927615936793897724349852376193529411354328894834225680153775065502876627013732123543175590840027403113980173725330038389980850053144061416979549801330346429178279393827329402917991864185712976346675315590317498217011218937872014166685355875363177507697952290287706368134895146830585747879553613213571908818645877406886707651982099191295356588044595634799255580945119531467935683386050653126963185178676914546061673823224692767164438067042589199756884648669480494554634725880382878399064808289985970871427711373216137044526514314893299867199206268521958253087432826246847174864338007498853239640841989705836725397955342502205379538585311195949364917773555788913223313838940067351355575383004903566307784629632462735641800974160470517143616657397733776237077340926044038978827904144030233195592178989003915813510071840756800063541289889786663511191573506195990594456425181466090359004222054361065046677999023655954649810625544739453355638214249204279196839547704476975839164147472793946688735314014055781569744485375043218001319606835937010334951492414799678381697722280836923336520623699908730141575054176696320187579821514705106317788137508157486294770223727618353476622154904564340634465693750594167771473150869057266943724199053174556197038510725072902087932408741814691166640017327933076306619327701177130039010734823271028085052422906846393296064825087169444789280626693722905513787847614315040312589149504097286768340474699814025633445885763782364791215299961551838318164263559390114885655682397421836223593297539565220600635857291537691291649038392455813121920415499750595125085435668005403264708556804214434995595554015990556169560293327801368949719178283641855344967924543940284532975434685443737085478897248967065407306873356415441985591007983730520467053520887662718366664521006479436502569591965453311518229145607079717664322970040228235039374092330724553714250458665879795879568924085500153256116990043956131302201882479089917318856972991855160467957515993771183788569725498201002364475029088023097923540241421748890348897852801968521661566689900646251971286695190099871245530204932305590748054081403356027052272831027909810860334447227845653759911011621554236834284307107117844108033231450922976237909248061245754432203422982847759959051661354910638881431294441356013027952312635038685772807271874650489504040092676450265902299165853386181341974515509891560594680627835303767907517485151574324469426424820444960551382869999802385585519668758201214361213006811260168100380320772563254326295311525006107952984630996977538869395945807954897806418699830783601750834937804957590020523724275204987114287970387402788575063704801013723574244658986740102195899185585098344477654372683557036536883008568946181953313164315203573288373991717582135517247081243489717175361199829248440206429525649872152934895580163820163573009795980595339301836049067001742875399911773469084592876667303109120502879900459893255989063605782815820014765333847012787528437408090674681933156503134937734100451967321274965891666511395697610120769070685760080830565824993583437872916874590241850887066074516820932762994510704740154919735486899606237531101813800133579213981703051504703156459226359034489263838866513527328321162812545053243843733441839068779218511642626896172417076036875567722494239611962557660021733222645197339248597516365347913425454624227521508580133118646502402307745940694936828537197413694989462712336569213190831516067289178052182642486881526273836097695943755906282468896091195835317605669963417909366709397322068260001891344702548809579977273025385101895538698420980891636990333620239492005533977359667227980388277812675275666508677445665795771601520483672342832985166334211571757208439795347437704851289790522039764785715795946728758973168397627066324473769313697697385518876020698653350854807780327420719864886887568520526669263327837242458876418460827740450443379564468723494189797029573681177245458077175926853748791387418541446088704690927238759476176856829721884469849304175888279980993756807444890021953587274132665263343596531403555206142715761484967171434663182414609519742072627712432467388722700542471400065868387697931255357222048140025710171417748669697469321589245239964805590527940742110621135787665766666314358434827916763336111590457941635381255031581581807531499141234960515319161109859158183629498308175510674504125123593248826186871123383984184094044432800178083877174609910951303469765452493885790867341583857159959353094992897446949167952364611614930519264168362481979523122533042918919604563301283707014993275372649773664151629966871308089020329148774860674267205786432329344778980840435685850961044071883850190847228045114558782343270448631431518390383623992413621802970752269360062280399487308865995794234678667304123030419643093390333871753119248512787044767700579517466185616090878220499045688847399754937536092438688884171174939193784149082837340492715295260261559496162700625940151027727921546136366054745031045730753975832649643900456416479106253351191864777676445784647732193111318311267085570535302511672484050562883351307865189672177508153055534920526326196375075341849361927551029475285983853038715344372607437716792991943582944540856450341233284773465095793279479652034768431277987049138692219969212058720004799572706915872651982497432885581358133660516437123580017425396372683690491965480851478918596287150603757635368542980424431061439329265509991907852667534314591554162358156112547750898194005717494501854672763730319763990363176126859074187003961746857166968757338068351887612748695662578659675001554895792921199026871747965523692016880860858737590590542247745223914283081959887051864731006652360403125693490530148298192640789106610755942214262101585609872503415850648823273521000953733355221868544867786512552892182409089703825043075728214774971233730241135892317658474135227762420602691675157479975202077777355291182587614198645812384426470441783942225547219078317889372200775407772029925144692645180081159891660627968513028931420945904619047722536453308989641483315157769319676817054725399741095816821277558162923516370785273634943063935601660410375552952464438356901635772838841318464653882751172836463843818568164454178098304325154926402191670371350082672711577460431882958637414433397194623271004175142367406530819233357103935213586727867980181047546696465090284689263540156507209664863920667600896071694978736351141722926273488625929753702124894068275848733396490757939589994579709536215297153521802820787389428356626884514719024032018606894365623364770331741560792566320828431251492326001161294102012569991259412071914452290361284769330255916180198162614480026071250500582714423980029701854046224811454542337960179942168326102199642887544334256706289577485240425734707420780904960488267315354570668386723636151243577552964325045183204022312203936889258100014786546305170330812011553442912314963506002418018694024008755665371722643735254579394961690055467676478077693928294091503901266042154479195517489127063536321423508806100394028923870797239627050002903934278986716191408263333994876173094423390015261017220338543017790342587242353084466552274138652887703771386296975561446004494018426498203440972009265928911961720724608047024105143381888672703690676162978307024028004403824622110786577921921966451337620110717260649669026957626268372545654273347943466924488822304057502948563097960167248145401951341897642947455375558837426357685676138384592645331324285099030006113991458309752734847532467687672490982884207481726473529170989361759393872076420841297689521307735712005438840337146724504399815514528930005878129459987534978465363204157588720674841179479152461068887598276153130677522773198407232620434800525089567524497960263154090503009757713280476012509653800597692443451488250276830215395954255192666673717216381953635830910402254421614404079507320984831498460757176217317253874353867381062899480537668057919239558361670375149496836100520198696692676345360198367101749938927860461944634176303634455291030712963718338732319197095716437685756330600158859536015246904636521241543653744616947813242921468739626642941485697154015197919950231854632377881810959990572500652190156179001358662899410672460235162711833824337642268059544641149897852130412637965609861491186221958017032642587787404853397229631068132693111679923948852231922579800569469631289890870394011132947778168581516034438458419714115093249311414616882253123705788453485743317180086403956134033630389896212163621744435885479849645243525607521483400244962065289644953603531779798319234859431245084386408992892933821665112626392632056421893304345950857376455519856752279890377163660388805554869760499299190229017677796008876545612191933156514704282430968661961653900813979318542311742597302841773222972348890051020485804646318201305888187569365296927367490082092066327103095518466875700482583735584562982347801370870880806749181367728707733779758778256540131662946499824524103296953201914186999181606223971574489047949747417360878180239163193269746299948646688728232851466632306206563660016715450334688316544564958026190091230096906985244918254649716561459056300041737406280727482982842603698986034163477708643120281291772094629188222979015359100450908805052997962675884080010660564804682283060451785203202089424042406677537379807555576020987426118552221789294742734570252626591401335691749513338052539519775388669062990632563097132908063599346831232052361412068031820936794243547856491523718427167912660096596926595467800021974183730586546092942468715487175907008463128209847554355957384344737504083371796651883906325644022844276146930055409131082833114812990119507622632430812421239262016055947502581294207034436576356160256447752285600649912181989885318173157651346220781769823182569406876897624606104144973540000739017982078805113560515262410275487807521396093118818226325376083515359714036202654274860934727132527861080645005975472586718235079672678007163191867744452387714435958972013694499074388533479286329476733493085487740642656004023214130838959440492496709030426960625156264234989952787859371261408383500505535705691885639980355722898553042234723092827278993256527291261914062486465212283911201451961750546214729033772046282758803970261660948098400390907805627277739831414313099993173768455462098501092355499927986642056049917238999447393341020872882161858113407702412811484327779759071103733356212696054487923951931255397768035725111560696906734019222676201338297827300338029432234618343552314834775019918748603423740595113888765277031085458286584157690857727102460728682960240730418654262688334375305260893011384656416827564514219104341457787571844277313184870421837933742603969137029759057958467033015485901219259252471598112000399441366134268350992650749655640764474585364198069606928038825809289210891639258733342662546247837180213150123423003851239624532903356155606290059906357306566922693284233528257462240994174067835503287421506824706832631545439831396933200490906555709047783292550749236848673221192185198536797634876843384842144327626781993665992532708482190730912602599060572930297811799148949010624665316873014819086120421881072527786909330211225449608677543096827613526428410534692327536156459807716168594897466477833605364355287537154044740846548124741732157540538682849374530532114481471436108688007689871912754214934709884305966908357698936170488315811321173046972303279517335868153894060726344765073610839817021638608086803277779933418160007382572161682796224494901313073812179983549635599791050527161400098459609470981558614066799279076151973902541024302111419549918987841608673295615147521203797610347919302668205800380155032608406373230290915528712444616877208474611584778016256088320748355740840108947669367120599683778570883496150171885770746582033070044105514289491165781190143785857534933059845007433998966710477732180651519819812016007257418134900913056135456911893415380517548493509391073999119595936799091622997858567671535646551374729655274680755487936049017081787493113645507021014496057874063780785055122171321551095119224093077364753394644779216543069540304044219077587966175466250573264859437154417824047468332580263603058616515123112112384733963210087319295286223734969524245307297452433422940198069948816035506288808466038858855493102571011696217609867057848793191410719895048869329768144443143084830059841477233890688170237286430372652688799603820158033652590830776307416428726523827176840248117092840973639328904263114647664075839161339130881532532796910966512515764085047693582391098233907734299407585263645897333181316542038820757592851684055066814089110352374074931838118446933294207981174204406436676185235237373643873807439522279226942290763489461950673071693750946258792931218899499629222186904039020659172384614512651582512736404198471623933225371102146673522462864821846700140316635009058613068445345516265652196488040942068541301580429765631771760525128766156296524897563500079389342998622414858415079675560116124684305340223358479649214340646314236800115103409801160468106408052710028410216632948687322354954438407700846697535270878082750047655643683588274326390103035640763530178726259565093666660142987440559380571621974069986283567368142958237687898461018084864961794133200860756525376266403749557494515492967558490615389695204492826580684293855316316581950584409520020546376910356193445549263399125578216842793223108686738821714023139142270842666091279816739425696275283525907847280861730311662451523727825190227358653005710541977105063568150262116551841915064541366285620125294541667866413922729997162897881234972692798578976300500241084304345353779421238697986448585614765063879354593011917218019450358993658339985602281490383911103086064917657850655761189836375791285209419657770546200600011666323766013943704342471452910004472554449802359385944081752430082835066766785554096169445882754517807667138595467288307741138187798001292490590838427009209184658703669989106663008214803849855560867147232637794048427210200169006230922098261106362261532400197393731289969657028950263232701240342663041766310219540209920756423738884014610498677655170067985150025416465428153167002145188662809737197560734082656449973913137832473604942958689392330140911706983733881814911435577725558994017281301570204842231794399660852274124697059487036074429407451221448351170885267856515867706090852738217632888025139600270673678085175732147701592499270708305886904023078607818161202529137827690825857750626422474090949898442956792718997299226852062466271117047407872678950182907071536542847257316542891596575331209941640268938698254360396362982529520692550953784863608887274563615354038112019876605402808426267474856062793700313728779763180486945957159225104828533264813161747392574086695279216175058460611561288545163732893238352810899926297780937180889499084629153041434233971868152420590126140185137545457960325605118678478805189004678724413583275805296503390279674634461015735096080053773876907485790764837441905358436142070699801336189122269917541436544375905312009275942229512883254759181048826407237980756851367154193736884122412675023207000044708927294560742753424431877569979485316736397886330210065946113692308951221442724570244932697510324095462880842856068929702682199740147167823504745621927385065612200001555142304120896653463463464090324607814086625416197255822532833232039917123744288665578105568356571782561155097291348103405208983223707897175181045544689197937968984964173045973817565256378853161745654985985949398507941886126604142472316570233019067113880017262847764901860929893147379958002352818081766612059306444109352584050829697650516807854016740330027618356801169577517998003963261962916118163673128884096565179396293031337286265297808594112388948416214490955078200240700566390779931305118833041545788137866281458567487753069379040561685802688937463693195786827304172595197246701422694545521232834221578676689567605444043573866668487454129436602382716820698659654120358276616536708983265224967320443120739908966425578813265789299701380933591844075282572496197107520428720240557939798795539606793772419197715836268488381563234578580317510025810723711060718849775102074238175120677325707844025258157883338884108230773407434324488526162768619042833249769648614671142906077710854996201643873254500145665842381764122225319188133232616526757476024452390363720745479787425329810051117727228318981526115230707715281133557663079988100667297858086140180151963407407305245435787090251110110670022349790819988816929635698926634896100819090635217842851400697467222020304734170840982998872742772710038622422919713470268883038821952077226518163321637637458156139603749825584795895907140957991743349807575646692615007800708401096226330579344408022371477472185907366157750478206816919295910073227232734984723362972917431763982066102011166355238275528113677357035392402553481221248753981249925593330390647411594339879169447391228257760369895785310315545460411012506100968112887420191600109681171468367401954270534700749124286716758907731912015044096462392340572745610734231913040592168307735586328516937745271120049795297712412689027457720354619500907746120401388502275535069445059059859334692471499993355396829635256244452699229217820037555433374141793116338592480675057678975371876448071245899770249062603747134916253256487669119906903332922831615365142564631972347122011085098769891370720001602407863567180161137673328251008545099029939301486788905004721512451507560955748759402964699673904695138967255277492093383038153891726582453244658669968007851490862519130323394627710177688014267697789470739798313495402061614673054872199081276903671316378555835180390328966097277680208191353150533200829167030960669025959824904518725283324115857889859529835350566812227026523114575500615478940029163827337847049056346792464016239817831697200579016765027824775055521664185902591626095707234022659143939025182323446298358470189697459942719888481268831226702837842755618212109429684484298381404466763146194892767531898727636343373624588761395195111247048475398043634232670759059498652555161175066724206223600197934384911455779081993633497882493565473107576838300210434702681227305364878958751500397958804755455439175529345048941972295101254903686734999619165015664354713327435514889588292998332474713795818563752603370211670245099492782142947401862070590181387217828296871861434810216951540123868900719130826382562653666877469686606343481711592054809716678092146063713103157199609233889034434888571033256032717730395597484373161835105535469480389501978302112383923614692419772577143271643149652997068146467607369035976008084696299933024115615546980164549207753387648695683037374605900929079620831752176759791389900479007648838418577553158216861420315217898908001248602017476874424154774546748972688805395529569557082888641945094624197513059839769855232973434710780688275514165088862689749788787982062351293569994165321261154380353813868838573050507822158463266820577021904534095311873391803666711239627464812550114152495919373099298956542535445812493071555615691687072764192224697168107059998481957187707766424065282613234385921428143218688555552045713648606923548175566206756999393942542760901449587410386582311642497061070405862076529740376447907305973047139363878392729248022980062033424217474717518581057467561458481308744716923777476283355255087156293111596754753800691943829409121653710278871891036289901380284834675899963917135975928811376984767107775254338470087003452181608131095725968332139548034338320998120202710396373704342863102083484961542252390481458100698265620335387955657242574707486841211978809350106593468854226670223848714048554347938768177513377469851442821349133707131203427882643466818322033775652005912604991896156078554975110260332385099055098055793365390703063048178358797986502609800660127165408085621878493695063765850127192728892502797144107892457345113780729950996041232692521971569950067303380607974914932648044956150498922300389306991538517237590588931963840588645264437822526379509205214129946066163540642084137685507661789800665767317271631862749305784207407157415914835405406031018655265821148493246566499341515744150047936356451020244636205406088106537964851248286641422886474419524473166978185227388630492344497987163533330305346548478873058162706421633771357812453259787634681908968030044380340604347651401478657499931934689132853689695376590402282895808370550257332213539486874209802393712722448761971925019070317468316299309724403485560047903984518046639876370302224904620308613702894262459728896962010662887821005169740028699517451657988433501156743848602888726951293791286682324010067687921199963080706603439133177528055026023181207846483633299184756023212414536130372027921815973952285404274878751322319330504744794260995687305616784984778469777479634217431552098163575555953154788587077967561768697288384208212314838225624463533560230062361646588229630745775098717437770150113211518220974353984456871687528537595403038230306954858176873322860515664467935314436104690812103722723397349252740401373594208953209676839653237865620852942308480168150073070749062749718582070513802032349423977960759139527274447559315146914933693310208179906621187657717948944315732605810909205775801937744554640126251759905674004155289525340436933492340005883333636900851563330435772545182325848847956835280407611597507554207932455713733572247898132746324594042170972305832862091294253166074831668759475601944878178955380890657803785428916871958360269855442783294161233597914860287802177141929704042597666366649707896969443188905524691687235098093614581061186495542506170242109504419967831867358745734801726198774167676820867919719518654162838213898531967411894630047386808005852071199516581623590719340745492357609730359954317078285418097027987719723702917909259735047076372424284297113879993336628484393625861329175772067893189043487317395002677861192594282183604341968076707368064659349133389189761858348259856238504893496741312620680236635448374253099059969060927322332749232937934533323226330020437452488351915286885723780230231460339956708150842720062659592929845036494391602821460927503678205398257915387589000726536178635103332815571611712337060836677433599612634042538654836058207131618590743762957998707302359259347857297324142760007453849976173816024427942733417453219049296760525138811094173499333462337494567118936559222588069719864762487823941308103534032839666515060737940973238940893204934943436267947887442332723419510421573189727387307064684289320668605616426299495942228835800221187346200475635493272275827134830953724943465826406022130642944542645139767766297119243469607758581812323157793567245339650560163174598187269292987618678834881590821763753903927364343625184460551390446963965391775764899955654792209692557098058431506842451500040196103053710988740246217195815613566512100291867966084039520972455291752843224776028775533198908180012402183235240591510938608455570965292459187949389316669133718643780944206924089211513192858290596137346674824150132397739562385503256796141962255074316332615902527907263167599445127365742863715920205387316790948023712370197527626613087090930326986633941620233034712738742548441006932915031206012411371736535704692825189798698002212665711615180090344541138670031647426029364426304650943350208901927182312048245360359126365672770853889270416038019177070998103580673364230276628080438575381762606981432010696990572617474520112577033642048849676644654151644430283127591718469717382074822463245754206539812454032677369937468377107494647342532429935659554914006673388636108478078875868853989408455276995563646536529498047870142451547258983499013723278963294328214633837204242939716037721503304286622875094373682689947327348184321086638477393812480895194860143170026422591748121250278176979465524260565891141877550628648948412155344515548581960093932070331569305076042929434480493520583010126694212042769397824108130335388255058415410187381892968791436259477483645092704938294588930830466358066935672465935556179399617703323163950508994438274448963120232244704843092230990770672421823843661218495807899451022409488883772287360386143080624532325187161467030880135591707722283030857398515386372041566582651993931293838413362975670155871612878001908999893043738342507926561841998404837906320660572046407122001421887052542293372180329959156663306213948167036366696155378422032894221297087296864894138329607948319376275853545915075262538482388135052284731967004133530245071256561013288920894792420213403986225325395080319101853479913560355006727427579029732434239559833296199670496854473362201546231842269196659799789467754944837797095452203857712971878462364975874712286258464181523880283812647443302499787611437778646305746891842090999841094481322397467801494286860044755073534563115484412687157051476297941869891770892499511702118882001477876676674868627505297776323975359015772220195297124130062558737605010999633642329401678002144323413099446304234042411043955780148328912887088330919537354539827537399886866891822311550675691949768743110431952469302153891071839526489131982116507069446268177131414367059201326941410858763360973378812131646451418184961718502511570201744131701539526372037749945990390320555218117253701531985651288410167210358462803569755643174805057075127521852319021793304257272995943599369030958484024680413722074753630940293715167516817326199576545890339784536231490991108904380725665634329595776755953609342638610645404591494982367448340993982275938556906774180222892946114645470640615625536624511218875855329203157763562123141031701950572582960201623052943641753450908083322464459550456708420624606976714472074745318255970189159586814071484778568200980918220983406776214636752754024484729648366483162317342283480279213451961978186097484412816429630521975656083852867995622353267300474396541031124835147356355574836489388572814218294018767537879231465132238956456065451394821006717430001690010240249820854629407994210865846894437045626590380038826933143176255627938756631156113671181921991042683660526505696471500642557943401443802549554735630371220933314618340697356255359736181368824726874060978797012861095748225080532155425438878554047342378942955599943364840281981832303953491582611702479830561176191350008260467586241011966538522655419974814659349320818445699540030064212250546052973753296884087257639158523382238416654693325040106200762535753011706253434446419739191557547109705315024521748211498678747742462461110754065331945018112411181069727542878004435605412353597463029880768294408508033017516025341696731105850711631393988784018072819636983114130620750615596551461003779690241046387811341217166143443675058368251733162532425092867285591654799746115618059460001150595972491915696655645997897624671592759855602698884435706153164625437097983978683580193883728709514049397509456544025121264858156152110857119968281438848090063541418186274139214617101902944720868543405080266937555516193102158318441497890544960078355271948746538583227428959600922936428728744749793852370726566222072565607190859668226358600941460403533995618754719834550819832430619840450143396947396174966595891619050161584368398705652503543201810042995412932681818866551350486622136875488952411915037481845252784739593602249830641118146211295611494952808044902466901264808806562853937749673718937808507934840161229269804757404587414630883277958699186422761948175164518324215641384422227378666049415583913875125677052691157299051576894332555487256946269542703461202249935967288486921383462328889262859007726231120976120292902172765658828407004887908299373226461148001875733942630048820042629011066822404774391602167929582529114137281467607002452311709274957120538508674696637683141111937158117181509886653895031284510489801096326940580574917126860924752228621805999082481330870203844977120517654145802447530546397351111270996682190392448943101627185493177762162342902634170964718710157925516790951622751705264623840667559398330225998983043210544948239799247566095967146588209545240415355700794135159215691715151462499189428417190012853762537912432706965811776661513821149065519459620513994550721875908234306835312004240723345498007539318348099820968092173849109182389514116253514260319760941671391502285129317529385773252140341171176652703291473845878156374081123324500831403475423389330521902676419804597710238348860340413698819554081215140021227980669762904270232019338953215997202551374980161574047682542293388564338768499746946218557560393519808065215238536174322371415598604675999953083742874581768846031209487311502807875643640939350441236376813162961726049980975024473768399491057795496970379336542861254034518051955412397254702620665203537425982427845535720216360982822379430208218658672778771451149829730027555243303292309650777670155339497276123853721266830926353002566669756796498520504818410549053175335548043858440367067253841048394877705303459421375135077497276891263568419798273611188409016718435197972443751219438602974892777479954100978672047464814168032381175715268047797419991413866529697754477112177959220720018017303770193779190530134186486453288229261620732361569100305912854890909363908825738589910065263837870390664164985082611048215773967388582146326620360126167477687137374854210986711598841967657475645205425691740678564716480440277602674411826935492982201370287670003888065166937289722864173526587143302963489458110822667935130833068993963378211140945926195936741867244280331630733259174019461355412663078847042697776974195815066263545789652951354918877314298253545915602996050551472429333254186413264164977161951816199226351949595169310741953659675280012687818294278952221794022993680559916133543774973867856298976282213785570718307762394126866295419418195058282434537746252263657928626006487025255371064521484566661253146506471934975221315138241796284608341729916561616299099524091347013261094160994591360596514537282360346683069087452861572929252229265028696382273115893624723626922318004624053529004917262493378490617321501736824952087633795019713372117031505591087921069866390458346236546589125223752813718089913217776346334574324824264667866894018182824371526127398356188044557713993840296525724420252343210804844109332967131290796808830924534435885011055601009810679275577249784772961253452307447066306937284114539441224501877354873376557496447836362779937138117623441719386528176342717500177375713664937643983115411312090604343613915960071545289628919153255160069096755382406722757000718822423071368656574951001748555408850142796408239356622234451765834243938826582473594815279086375896654152466975557089377112066550949871570536179276035614731634463301465693664393812766691225775040455543402202387546812632313246697582541146378726768627730842834813721000973913481482431783759538051595743516389861327467467324023876141298954431618940570013203358419516602587115017672584819276486547843538756965585777180665290001881317241805950866584281392677531079629535329811152398320227744232729976830561653065268918748785781317391264288775353666589938575637022488344333754160264714329293361570587520669890119406661507087779135414859261241489067159956012066645302407814422793649374310107864600218647939386050094377366693555445806691294236813796788450817283235858080499230332918507374574453375584010712791818574858376021978174067630109874753281487110873773742101723676724798977308830683008250733946659326505980955084517526592196889817309626174945985663731427130110314956436287465179625846665850389440413422765881307582030479220282549310985252089933374290193660831421685896519273854156183862560167019011824361853185689636212397860288939583124455924533072073695718183478004909906039143276215968238862378548789281249200115744055950714908322801596674367210485905991320403337142459603532569614193222899197137890296608756968433144962944482841684970843331695823485384074743674774023268120165769016637384298201564299135198351662554247499686837295994729684922175639611812473356187630021894301430186879502572732963924623757263554405244054741287531495549343881268091632506580614164332332062010369293385915486313905807184430040538050348158647381176463319346999880581049277639435741625467406944545206389973754387158269787976753071772362398284962571737836944297395726619500100704269481656368610326860285104998204341182102839866650968630926879480773842848712851560370268770421898139494882220615301084885056488271558912830916797386064038918264063200023584712154925609991652103272661678565223634700780916245833282865540977151336859729874945352859287214115262443914209792980652544579195719133232573138664171646318790815521523787750083936698443357957728003082471886188678951990935520785319339524223829415247653838162093003320354004092515541149518331962768921998245408416726289840384884225613016958748251664390274154284905980851081052927853814848510651203309363524015032205956567711291144033826643217109546780914523002533211554127699061914421575114810830764502120653693572061267435221113995673811706747516134142359333225336855584160052044486431769023811379826695103135682151233294310010014859878223328768906550888490733717706187122142408329701518394335372072632672449907228569950526758788390405329315730614321970384503607619706644793203468813129829555023786040503628121221757726194585431106320901324079334982464079826858602019097585020311015483880709418915110192271195103470796987970120384991217527281359221958406261153829006729647780135893927564821780520495682701510566613232231498924969622857543582217685039448270386906133636889311178911746056789469414666246611123909340669364355644581399923006567840818479084046425504652537101927069323342948575613203869979199020104087636705215951467613250363481948221812159098773483143052509252082724097118915597135365848822123699874199041069329070567990405497466967541793148526794975304255212878437956883696453557676560499502035224160593677296145588793240165410275210751746293712078350958701773250776545000574832415709213946682384998360130247098166682374530361781393247415689982540974023932198256878525748034706535296361737437008628059062947586481551790045886363759198389781866872231573351789968634852443567260249825848019954329267844917571136043192383860815515569743010013032274044102031384861994701858440623494662128718984364862617377823491930344318213277657723343677199528061465624554582840756859016211813004527200501283575698210145034306021504331964876699981636521129359529395860227664356644985159751835498713252604819647632950864795669161684260573432802789239851267010430704016985252685886010070048036094713976258522577478942047607363528837642793062828663829738171109805719033118178844230131333903326010849793604732264141876783714484061125832254478291168778084248108064003964005197920101976908722260791761912412934346959507268143055722277821314671919173809566929880951580508815064960298805526758447422734058121901046881948426176438785919627787241942397563205013584296634914709647812387288860270711263556463921404015866528494367858431724317850731384153556007052150232754511419409208089822645572854740908016682526450028371447586729088514085890502649366258622306541390943123998194995822789343697044670323408950247580438129664648172682890055687240938198860168966735451764865009209853557265338241004086763834910372909209446997794733552588753838030809665327266579310549219215430585191807466226019686683646135135442219995323505872482874829600302423017613169039090158690481123406574496160314168037635014862852299776927496146075117964800946451468213551524205635298830277626552067043154207443103750800751494165612101956683687568754376847606760873251494041605181182858143916287655583973794354339280281149656270990040371834178879291068195425613842333954766284541726254876246878660984570857483219485051398992831002014311111546680476113053770634305836834123428454836470091946187068816387329272568369258359703144880045503522258199577909201787286844251275652773322004718408950950182587583846881450718243561363075927798538365228066329059433938597782383496952541397906583903602407928654699564873933921527401513246793825846303572065609535406614073895315788969930724520511482212508557294414683136672988200125388775149479953976074734225627393003529045155680032805284496581932412112229948714368027068471019496316836494174076388068921525805072634379648078044850659430205393013852302441119019486211082921310589813731208050374660881811648757856135952314857035418385753379550136029205325381604207683674183923577079964632337979523440360683641703275613976411179531330457062399095724183122771892546569840526873796590790541966919102397193824312392743062137635460418476078307358281425151010433632071436145799362252630472474216024383971763450417466230658446963274832446264720992651353579078530692095740018838285824661593901920600924933264147564945902858588368368519773797023571593512489958612397666896914476359070574308536760574913208125659116138299343182976011317106063355740837353691639160387485334847433625682730627480170085776731795298882417001130021400912301342306463596521823451851230780198937843372298996931863603055387468344457886444889389202122679835204226080031979658104972182083362671712005380502338135787154811871686362451540914459565174240246243352545025933444151570747518450729335327648882174560444383717662866499469794585501635855426690573986191702855949365777280799696466371864085322524894960126318486588206936565877296347218499471882385702051395233199499954117042578232517297756113816738824798567411800914956367914590512543346103422918988274470280479767083133388031655558267017981982229361314375976615081480809534171827163727419610600730230900066312251869154093269771590409661413091360614823511601420037225978400017829095369227586894151624727496571025535151796635040445965580731991014152585400520297538354960448731606716559054707450393698859971045149696998339301128813504344645674624571220006404338240716609689340735967041590230370371271482374573574758084329162555112428296880457833645670161904602261073747390093513514688242663795237351433269847778575276639544847712629252040139702706463585127661592817047299473060288433256709486165150541474454187918028229317661926858393770631542552097248464556833881951972265405559884418367954789243090945357590583496359065356478861100952954558948935277982926865282152034961163887485915806023490228688842026166770940418472487077680015933356108604602412096105085335467999895812312193977166107605158602927015586823084051890348085913851516173592218570609323488343461121520851262546356617392945820874154036186610973854086984974275927755761899710415904967931664878504183010061285117830215781183046900321521605085893129523216141445478318397153776182087081367204903392122327022950124253121461364785032646644290566497522201126541264598915104539861617412303054601211010923334230672322548458859529942673401174699874077178657705948245528961280113873675504567541293305633903837578541338939916171597850744924528249348632834250464505277491343215467898190605818732917989976001745640277406331383953482491140178977805660945809601963510616519924650606322520481446101046868561732749349481097672376177621416416509512411131347166006000260319026820508671435217153692602919131756793420094065124845278993014061700475743982615937599605526718749882705148864543226410426984945504318555129847770071119562252708458138280914695284581006087362067338483130279708491079778528444748819845856222697910354768568159225843741962979319215403820403227121424039865896968414401724510859293135287767330703672734144231102620643254337055578352684507163639771342667021375697171300169916068738398148523864098795220567302637112770494541013205033272386854106036595052616678936840728438609838971697500426051419652590448642533723960886746182658687737165965653864121653802828984005689508786865282715586526752053522071437631761286815537921173943793143068672560188280461526295116130396010117937036824840657394830218750620836270696046848324018644022968264023612172872545783221974258721365466189700902060527455310403701404124822936777339567915380683186394006395272449842000598027876762531043210806494095161971840429720499298407985416345014517306193908825679822748382452069519800990290985641229846224077222220720792141210754658816171429013990168036531197014254185252440406237129001662492511642605364707327826673869334049837114354896527851761694131708369717973333445811242731450689392824914709274144772774776045946374962970981293307201131243901077538776204584700712106977305315291006792266807492560778248046864533814686092386134209679440903024860086609478516166663086857237118164692664008455892403130550560964839707669517676452939349580191051433652636764710375789669845936412089889158442380356053939908041671041561666147027491895361056990235035005601221624876022928135436776532028575251779924421944480372258908227166614983847262557866918305040436618346680997442296654464667695975907803715823858649260270500989189853239199649226469463674261346165963548263815939929580306576316635547521311648287430838398709357995126176912559756854608553592081926953939302432418255947056909613801196023153116163202779308919368720588590628293172235929195593419383111551881837526771484459308361696455900649250967732006906052557669716006404265497366892068110039298474757585934018167861999579998633675216441269495668108599950169538386258707386103267758433930942568634794085169917342817939350968138233926941959100429792551220578633098482816032794731292933336036057051859106639184084958624226498140927454298638145211660025792408972268365895487778765718741727831380448758229084092877928370101584675148478639619737544810852700764703681565775165388075347055173307956137748313007785408831804285738911243621093961850844314120548004485924767298776470785529512924580499245869251209266736222565809294616117335352007073386441183264792663657135485770853711277108948538141920190744126634512325042458003119150167344557296029201712710295259696728125222204054793882058643122050293010115904854827470790921435260246461338058413317586886689571377464384636810082133279047312629310435356955156655254247778573569854444161674699772633243013392247139950961997861662638823430947133310028733771840138375497708720177703787758896564150504304935940355501055731499267714274451924965958361682341509642010930344834926768721883915964526756714792331971888930995505935186810696495051379742365720768544528425835530119445672404981707682462577838900704551072490083705899950589264574487244941587494680889201534757637040961498168620087229823911457689256457926022274677950364421829875445659400737558536536788904810355962542951966532101656784296140639583281425179689489390923817610419019381676829441269992639349771848098309936314003619512603179477409482611596007428802391268329628846587868044384590762585913813054619094405115270756070646530750539376112147213546278239753919110111743545767248030920470993066237798523693555341976103148622680664190628344609261052529665870917941759757322349012412581487918433363074736861670961638563046173036326476121674488129468469014460220265369171720813987316873301776631235478447138500885504397343095211425817970579756570931505710150130768325966308454507102381399404270423558712674057870989914271033385794180735412222190886426498472130316643664821963860121418752960061033196016912601458717821792229936558441144451903446517949704695682909718458330989641358249200543959569145456553493964842247108315688327529013879742149093757244161317797764428033336957780788475623676298024335465131227035076144140048413721905053938920564511180295059425066957875297696726157371656186406575983474994991237267529597526352873941061197288195896928203098708633038497198469678426890617386175258948185141920152114445217155262923731041067935165130349280290427171371252147904339907779056293162122261898904839278813863420401125525114260486825710123449528997062045985997920887368601435710986944378982506852696495677232824528438156281618524778951544165527026658103336997880917285424584448287214520083141024715413896037157395871988845266848148560904042511022326491829051620296398358184244141743937107143602030200482198783738612265871995291658228424240007752007876032405567949160490610674887731325832831666929359643973465368010183566177455428191760120764874886507808768212174129594362397761380379789726756228860677729860100849743685266864401793675571877469390761926987494141179486333321970933562360568858820921151333021147495551917782867003574019714145985164497038494004727538519516713501646070965372470226423389808074448163085664764332777821846251879604029382841701094430171543838648371632808869874666238267573574810421453585112166856063664200057244260561493071770025580291421789347518705483867249895856866764892683815790565291257709205786389928003019650809599622087967584448165159684448061120272941416187735858520379889825897643313296618602137794162555169964011135784990275027623480249434455966123384823376161922211174915518713845237102689227613051450639481427848701874472586167609766591682517689775542662680401922653617526001977053374238026145760317941541148152216519125898854658343487086495852184078668717807895913400209115051583549241729563287741453464022315352805175589882836153659025450592643509410400425663594633719578178504476969240455323813559225671173501787352733779823358214516371417927333106247003384485064534208638043143789305545183640531378918728140578970721974117256965585619440545844159709605822458940239766072687950906254200446342363693626260587271983287927779936504824853113945234774216486472462099115336395805315718061346784316791004637740471115125201118245958000702430093091637845445063072773248866000674526666244667443609110452792829384259957278459957755661743396406845699934878541327744458696567321186234660830415507278136060893744715881181984809900243901620572087890835589907618943065850111679862111163741471162888665952455768586885834493892478743938633087062629905874018102569022879365547101056831653582416740777734323379384426683831798229373860117337589806983641450668806032965059432241599428636721646691359046131544310837867021770147707049659377635755561296763263299002537498189774253186155665848630661408266331148090980186499451639774007592734016492735653098847347604557474709528522382953489449383840716793323406606583352825104412139972701279465323430863986045760923616636518097513388141440294027456578497048645795772813836971873528974341965063406389325659060989233017549346349540524198522899232494189530477910193138846528800538074315671103377868102186754591897733674039344569078442644203604967764382715488819524098030243551945343040622034410207730551360856512371574422201182994426584442188861315079890989935526885909808785512352438993810761355828022907276067520945114998183759138256777582317851582949849082852035182601126669151086206344102228685318511709318231828589931106156506932901792399637991299558980490234854118296041484971787538935647644379538694070204027838058332102824886272906491225679268478241006354521384875607514033273852640328751541334360642688412831597406928264861140102847367387788237316293262152222944887669964208462954714006479026604707898488047814058020863810457517824955531068924345681893748631182040012462263142697611421911647462544628127000824381580633102479192983800648482878656141805492136715926092901385250675039053209425077834565026516409811488067085898648132358183324334073258915221797159098308401475830700849340294237508657056469530935539020770137196337564518281855445971700234069611594470181256738629402045648296717496601065405429346164885428758279670420555985263891296285608984652256740292154465793265293557770368021073619930415040044235006165502504432098229941145584883626063071473413379926748777986558872280844991100389291533561676162600160864780843011166067335566934154554641155168722655049813117799303681422475568401978058352390630972586466432518195409718053761373515001452983270312220731886599916487396598504509463935966032300881981010753510390194367037384354563782322228353207296885964074243200740440880815704288498973226023997095670326221469222030465194823911246870443647517230084175276478428697665232446923074456281588702773451866005728878607330898536391037126029743832761141058638141795212175213160717654942772856949396632086505089108195431889727723582701001934086125233270846195671502813260383195613692600380743989709726646933749297291940439413239111641820671186028605318122959932079545501894007358184414956002915340643569278009471940276148134182412400284271943827646407291385763383853737698446396708110995802647992350835777277929485199882706476782230004826018799685484535879944806882977691461625903574246658378728889759004317440769226543110377955071405244495031930979191703081346324103657037502552107444952235991889958598686743350050482127829792843875820038924342832864314385450399387066036826001389904742165139582633834755178615659477796992892488579111268434686855604649473121144390393351903841863577929314630651386451568742253655119427719710494876033063761891142533919235206099821335019574488537690655448534327690899317007881722732400586553053664788161972027535198732826272817588695113014745009401737057394601155780779495826260539636697106480921677177699055359989013252412038816683046757908295859934405007872246317578082580598378345540096230686545668553432011300786615534270389386452672646117572576830317094221971371895550228311843528203595979743654260590242959933858502355511970618360954665407529298978703101804119780695239249566074283849776559675789766650928950519137288306041249271319834975644988317940732729472198580298075808084392015883623690120328469776878076878223231427477872136191101040695462623385389716126495647130706603556187138447068495697044010213699816145012358953101696409778292006820418589225355307463975315329189789378434493284275458049221282901980107883633582127974003078605558540364686927744253868604499492002095454750796245335155061669687302308822922860301516022749640337112792539965017001719474458412548189119687124230707396739939255108847946335522645457375683338673238736297018965084656503033034705217601369194038103369747511075869527800889894676407889243808526624877261683773496960440498179273160056570699253928547823957467998707988562670129320697928551691706698868526550684301378776525293104275487519511646612043134867135797891922413610611422019622397221284406123529149474885102324035851464528627087478357960070743126999586709535416969397967288167450215822337944426812961549050721675792439723015625600111447821565287402562741311276720795539599461012228165261106327358849202593987440567357677179965376748924010479421192446512936557612928765682209199269635952011184981790082973433087311559192989225240593875277648456532829760547243125658891706337026461000337612135605514487145609294838644358224960089524043885111074290937389452148322472907215309103405574183241180195285732309947251710761596112950296927452449473292586289677584991380021084092680363817507259189837458118087056283955092189390887426479421799456177580122021883747202974388765236532463641190120215634382005229449794594229783952837450115411610796174352058847240800713279906260952617648967711224786432881190029390045938585584080811419952443081947968180121476985514329346212426011396945395021449324464653081520095953755974143874590448294437500595454615664675661556778348066455942004947346479025375864625870901690736393894639209437666316327248884715325371156429129120196040903022999308451977493198283059912080808691886274323053242962283415983690581792844061549140910348004815075642498042355374543593015984888442841092791800415701652451320293546140317666777389972558574273736706989054376145459791422085596358554919084515149039914111864476925138016277472922597687451525127072809421241343774060393998444539251697497101894793363413583750131886992000908043863952421217185427027396695905970033561354232370511828910951922295701482961648170949343201331611525448936042216233760131161842059623883870350196858881505788624000358764318042560547664259189417049002882924925331444585892929580935686729599198740505881649864804364617059180063268791193504738673303191635744646820474260709242887005196878681767242773048964464377103873207490048208464502242508958675380541079255739655664762977703788355488365951754024395763180728397857685403445429514222448446556322586262974649766115494109356641465965153761888603930544918465434473309520660092726308566920989056882460589088718735058106645344216224880548260700379527251936893732854859120293411173100432953979941143677957891746824674118152102879285739876840963640570974979752018059858674777551463244556682106970587782697023755934331143998537355454510935864759375863146373265567388456728315282892258276153653498656241040026209579084551322727209991425547819666337961598135120479812412776372424442186446055761011393285744206930818878019136646499789593767443122903204683053568713580471254352288953105241618845095725333956063328343834917733870938656231607308196990299458248023657375941194432502359259209073304499780686332052090027729887219303376406778365670174565688602749951979469002388657486549338295553233834217928051996388948851067517360982821862733900580152083519771770243111660024329255399658729065421728707263468404704640777883798770019630166496643613206141087901604339199276051279527635508917088138865217847418201010514517914963150429802798988296966333576402534002311589200852481426713074973936361684875088055272640469550837702016413550691228150092639639305288129172924334515316611419762778834730591235919561122168798617525929855586720058498081721402009611585951418842296134074848139124632489385541989579605527372775963351794546769496665796598246004846610995380206216669924722020468622411652901142883540128471642527633773160535951378376251291738787997954408714524330945051235070828247922433123807865385544014638065716403112682910451645600729333498833163820329429806331782838862688215664561086327188179522835583001875142275736768103215794629648978582805691474092890589778050451491934312640701369740907749747699000738863056487466287635653720384022679536985960365209628774026721954450070964494444811155702914687717831252929984445960811390463779484285502773615829194689783080889567015877056474581644398395093615141610623527883172692706973708643675562831236972487438836370091333181451332326136717802590630918931933085015510423209727214517328230315227266245004535796005457086614631352351071062252562652652768030838089982875202876151556101733512030864259332340512339530495257720097186929464912055517526847716669475638107803174917685752705267823988006595416046528026645366518228166467063485737570184829169510132582194351113186674400777872105416880487483463931030577361358084366533044857054041741252884867870936204199567001288474608620237433953276241446918217326913722519287744249621075403108543664665382847803349118541447777028759484949753748649752451923662694307252335795432774817846129774492673572684238150113935908819948419155843255505135788881358281703405242427337350458657515274065778085906652568425625668121275896056781843240351780754338063478659246344484942273868797983967324426737531274184823951337952295327592807702848234827861537267250933877006316967022650933163377869566712087415736194675078261586980394785888132111391263766836412408653406136765455022667984524228559187826506512534390687193497201147582637185231323355450424716741434731552352850283261267365318546191635615131163534411408431650350568827269803551346463322088817452704328526772387321779652173828534128214437142102185408747588419146150682267086593287933258718922532207737986416770503692733734219997623443807219269678318079313902610469551512171543755779361345760222715419118992857329141011231764449198923319165994266808840557894260704537461701742735789030889571374964700315974469896433025634240453308235338529367062230273753349626076436043422430275685762599356356007698160773235347515158667666818618753466552598991488694238103322330952250944382690239653066818452579573860419066163676940829382461946495492771123424682936415072838287436490546242067648044940657189203724451830883856190835136049638060818796419438963638146349689429684896929151128466702781485916373044594247322248196206310372030304556951413520343004336791499959572640736584530112336654948499556338662881031184079903379792482979880303955419987217059623991318930767953607171596287470128768094603282738562197764871062040261213884275982431582128965082687293233405424473789094904327250185605298292494613686648526691660715269976957894904961340819502230303296259139665088680047262533386119684590491554910816973516572682151970665240139978562075979446222388585906049937528709570568334427036759707439646729881084470578453044250356665059241825857280344347488030758498360598615423530717311367303118551442478057397580064465792081094405943103083173103706115723040333391551293517007711864861897567432303446099939576430788533402209732944272586860075642988043792758340055511564144960949237392664886955851370547129556216032659721671999393019988998733811503424949165609080039418659574798373265778531289649167157271381808585491334963231048189094804360210833804978269155490972350934258078235105812628295953200376167814879647805105928683330982486315322409698705564923989120193301758782196786017271408383241898232063960796428318575070273893960279261485387587268792437972056055277995968047732527715535012545555512747292689552070652881560721177020615997798402489016242814888506178051281265633874937288500328304186194854435551933447302166794764557453513843984269928703992380704403669605246757796534326081027567296053958621184890813036850822527533482196284753687139333131105288067437223280845927787033603423091082982493457629018132342151806155891704100190923209788225224456104107426074243736286269661094764271695799605140835828557489321284705055653519449675531388555453429963870976217199836909067486885382478628239143890828849955480860818468766841099671190819863979105155009575144554757768034614047907083105612979377399247703811015668440409484162202270990359290479781741108394518104144420755981227790519513828967206767336503317302835166915984584483317039341515774178736461094762224778985523574930579525821700432522426541268331386540080387631500615099995435222511542601928063466298031759276925747039979548709876108307913911217405428324422015417290878981080360487518225127371144859995621353754855468743259131120281809308444900716806467893701094103134690679505819239520376882850362003206029144929146873978810956193511827363270709669328597630195901684750747329603596702885215967479628141474475933874725940909635566965707117728420618862145647342861130788875097533289365671300810103128612138306791517695377086526276857001326948027391580953515265692704144328991748228078333587497578673222301101014928906872997710487990063671967668108298418505746322390482993868795566345962281689171621200335226875247105688849575831079507456827360261691353150774173486877767276814245912441245022568795030573084948882898792779289423794516907934897186587021973028086374073502196762236091094047308989171521527599815749702351867903159070784400213863326719844116405898321709179858921210409650767853161712989263066247176037366619183882257480081250828995268244438584369146659135758608358388544289610640975268849815981279243410854047581986398788620000255798762368265257790813697745154078440217132280057682325170380811716468464994343667727722289012606249451580270760836649228119644068471313788822362994847250761558487757268633786989328594484217501993640023593027721613077041921072973623059608194487883605567744567382902495652274857719744722003577984823520938717437807558225109037302131244519395719578566794860913288566546955797375111956420448492147557774128358702976272379874798081217420805804358041190408606085623633382366490736521239258699789829053400633874015957448816721224296308564422638774323011019282593111239837826843146581217282433792648847899402300660140333967317500128686258490790533291991848124970435816199984766969638683287291261632685852440160092588871619243855000398223132486124001627703888604538136336683317592004260429728097671373032662937424827713108123748212002335580142265860261223839731809342178687579629608162590671322117864198647024459587437154807790619456676925407303611769912866409269506448429633911287287051738788952281189187375197681113907231497771738001680144317510340881401921460347631539451824334505639207697675109027619397329476119943360871672671489516132068551135623504278154037731652547759409990833102484984472820376330155186053850698617804529876249526520460503595782947385293313448590395693055313603972460735766865575682208800092549778026828481969844827075655625580872407327211928346189682695846514980200888671265518606869900633622358594564045837788619692630007247270771517784505915826046657984656071057138110622976141573362028809908200162732175867237685369069190184790589633419280398651478048718000144578891726054892640360303459117733275475642709946931553049535690881878254038237265408945309952093769743140363903974115713177274926533550723224447390815531503857814363471556211058021319777863582076906290923734726714961621867492554676078925042657927300793025226642156136119385588004250647007336800144556988048556980298341079412649144182182201812520967688705227797481981972075662479797366173649745463813593059551378528220949792267945716518862409255887391445811108237586987418784866027532328714245018875279852086268482402661955121270044314365720290513035177477758807592098774865389713089640071213611617471661207757491479791431846493923838902471689086722700837975918020132808070889342482063154638897167660883631593505606836624741252431644501257120460242041396133293449461167844044645428594473559801125178022415731421507108629063003386033611517067187721182122224784116036346954386253264467994863513140479783618966839634737563274991398328184989082930171272204542507032060160830088569519391235511382265537942833733917256874838705652325799396612326360048604289934293506752316671994427877217335492872876537848542752719081845959127463403297949547137277855632500784399035690534198149551575250288502077953229502632838772787456056287172733331942639097930706499578594692045089714115934938960723079717513813011890595962418463432704832911798718067895922517385827230160380481655287834312665969330743907022982837258282178245588989229497166089076867746887421834102346220619542646886256066727266799038967790893584513916164590583242603817827285046768918136885687822607389142982957293312555957366418470263042718548133605721371645395103428686669205627092504591773801892770076293473299260234872788410503080293844360816326246526879900465838675592751053833566930076684268837432635378591797716588652969210063370221075103930214365683662216007968727112160821612658643880366682746307878901382218230177296713170375952181356630334664064470620092846565259699802319538886542875781633017977248812382579716748401590967182814368813186482529235621782333576749180392455898008012025626669718270869378864668653913625608408045148292066533514195573922118852435702022114006032406242880105080233723994048649935997720586344457608443977419199401905194470512671758946318237892184470693481885749225295870776158884965829431828601410942886006236025177477090038897094223240941929014585331650994737809621146390460098115057653326770057352074944732385426739837969862051860547890894205111772361058562448115479932593686621325535234943208987942342680851903123662810888236120025353351082784039605505102917867536928842216771738603003489323033369215972744812154477605701809870607867808559866755989877784221713204060941486134954216337575506492609815699962139865988379105704068574103959433163179075745096886512432471869717693589838477390617427187899158586768151645735374042961282666065584646349606565707134853234236197935613470765336716180666352350094673599227679021010605011208168990765758936365063454267704019660651246086054061239710706770597228609679672684640256209733418356054396858436977972405858198542652248554928608415505272969973184688252102149941791539064415964723834961610087581787373046798270356182620378620669150145441733746698673014600289445932100532815098655647252598724732722890520693304041376676688034836340083887937151291745929559565819138514110151771706358899944382280199143203625163963622702207548571075119971979790670989820930508544163787894252105450459896077435749089106235072519889387175939583575422926464950382855113664482627849387348838923368348102431801747408171513966316759155660382550276036707618903309918180578817422243944295285671682975584934238993124695761559307669040884899377583287347850107173437679993366858512360100722245780296340056730672628551046265956559192855168394372181842526613953138031508716458012734639890387795316863871502605314718375195452668848551068115076373028745774539177004897351905609400118607873852461704043168311812189307400233119918255044046583829070590276251022790880450227839886192416060893500879591972975046656172077847181668136393218099717626640838936315164521170406562076555951667699700497324189103600234788018997281882213148661000838610792903687316410741570445730708913537721163382796460109697453946579880568155827664474304849216118299569027729605849196630564494413408399382397955950082498985340483081762553403503500710601151595736926499946130205715749893247460379421977981318394871042272136114714329262803890968132019850507881282852022103616202626332819279908026911885190404922530276409821955880635218593070873193785472968835094485748016001760206178859623429196207861093488596146365656930628688133316288939341808229398941085968416628121835382794268797575694011717870982003686994564521136983570504958630913372106209142132228321187435069548439080721300987244547461969638272263527943450985735862567319170292504744679990480231477396548577380510206212690440264299822793359217951424519491335278735280295080439241112660976740278321616143729028072681491778876620719866725396049573381923595599648584741488367490654139757289604800578404269704775116998636374460254149632671109914663215120011788181643111353507408881312076025959804064242867534213124671070652369018279764492972449303666933761927281767550854364466043222174078533184925561954182201220887322451963692846479407436211552028773090536213426317536130448537518606108598124942607432023802247009129710890194602862631181538956343482186345756573569810725576644726921546115848790898753408006316789916740602803243515578023213307593584040860813220466268143172716670005161638043683135666795688145961419864426640723054706172896458049338624469887426718278334942641404228296618925887277190559678999730446886570217008854459556577919864263261668890437890148195143076676544376253977122664430171029289832396262727620664133622213350417291719784110597912197893109808442893719652296806887910539821098739302322863541797732663627374495671661216484166843902072763794247898630930574640674166914867966783851923408986346350530498318131837895320327554142136152351199780480855147351242538281176333683690077082475178805506884901402988286286487228030950607008405864171181607285295335997857975962360570713064290718762285271303948467506865122268325360666500428961621021445224997878161855213751809526581958050436990875444569484081246246263098504781499804589041159537186920499926651438500355855211836893921333425472843831927178771194692043100673910747629224205165880921456226542825731757212196717596208842530762531498221970673897868813150452234808101091525055361784572692145433287532323653390260980721668317058313907555409151443842135022699108042772712415012095636512856343295963044588917840513010016963955312098835868165958170329438460355363295461154586345684645803836568027767388150359387217970449285495010177932717835609392752563551820673942979085241526976676905699733791304513283633451623261332433897229453382217909397690726156111036910307322929318338252019320425980389982686034554592165261972507143611022532159532800754833933254359537146761194047998446985756909003827481964427170356975819049554060163023195835859583480451570097481451086078872262036927038896469377894789439836647634017663904683243332768512115610270156409326528809745401239674047925130077517997789276126983358966786409316866763469439969254993032239381258399977634063652511027397341805339155002397034596380719186742550839091981375612049523304505016920799298062345894374383579066316212949570886258989797622255758343445260529415195935965602838515216630744462152171298339250374304733953184465372792646191766052550593133850884039434144719097387084956545480516130099481344853198609186976961350919431235844586995518599949260679891578314232427196482206706827935170191220123142330502020872610368520773344919804198775240019562485860337067511143712857617694293975292881952797481272460593643942966284487412803892109141857369061105096784842420831177235786676637779323109420440343539808942825300797515929567040861143803678465922396570593377767997991126252978968261502605034079627648445648714136341283010597536345218851320879750323530572296238393695819308945153484990181858251802872252300489764699504812013468788155804391884289196424262601614714337174715252750909335135510218819907656055738447804567838760061000406140958663873750502806721761314676535899222457002515757835316049677535109108555304129862676295185184366291686784118453835512062347105264316372959012554966181971252957360055236797316575650948838750988241631133201724937329577137243339483498219576272178840651420422494159992424604700775715532943755230787752501384034365639959507858650366077719832849848163061502166976886692836154504544830342566941918178480318046353785725737741090952129427707541890024265583798304212426401589463316519972328387893691748051312561452651726642844574564431928857789230749989949423495408433692782771590053875652565445953418343191209976665394520145375339172441480647929257352310199112987755843641395621323138559802162292080795242467742537528833729117527936996114269801210985842693455504128637230522828074196117883080518109294794616764227195231460484792386814991950449770833820241173178698815859391136810953632522071254081059331801760285284815098249542500239819093472889173240566323761989807254479180316844148999761637581480307615600137281077821985583102609796883399361474522159820690821840845372326940548968240873127106441516871089981343880324360719586312647034802680885682031484935154520978332021868601977270195606673818393683402550584774491689077446513742507650219889485228313013484706160053032581206403357464346583233210569868016406616663590938156106959355661549023770860216337075726217720532831149485690760579202584007136124363081555748437551293395120403036881140594301112453723059300871566735297775371931345345117204790014536617801740307226650909078963501528766569459635489176252791248303667524822335837583991183309034463963949332194997792459146702119889633812128877250925679497545183059696703836803536126434888995707252959929202852870080212992760474587481622075191676109818039240950630111615286569353274331829997442364866977647255004982452219433181723386993707777503687083387410402286212658297785628577802571867432401035644319628412258875075562367357382960884762969289108180146534449544387932892116625073381622808476914714905256932120494040647193676174732541108758019494551461612166924165613567327956662344168742621400239841713076955376596615264046481699104873575144922052071446908695293424334628130685765755949197029666751954691932589021845360871214627391756868994655000483988457549177465213501219279498461685021239669850267778441850416771957147942876763270327655358611883547261381486278082484434531059232470110193691602033225980362212027302629969845278324277392160859140450387270702443230120253370368650783659854269528446324819250182137485910351874446044489406479430873930710615657224561532015791887780151607886241097159404980378912535894456858803124206266032162242177259244597112197711488100626492943594520352850288528206576930353445278414460928312099530680505005604380135028219813270767368243857162447050862467380639608326546444798773152589732847624089352368231742061576881521605042961519901331999451644453276565078111168073002335367416537295578153421671866641125166127958306511119133524803676699305369010027111035255081785246401801746707464878050580772874293045466383091404819877872521476379039742556957392301524145466884566355006318402556125116948634993464791371987085778735748508133010771414245422189584473133013355819782251108117166960491294129066764473202980552337839635180504139385458940898718972821053986780610461339692785086027508180767147507962032247482146948901292482339063185154356384284432624480665231226191341480698933866080699725489519675208976666145075597608873556920585683274561228817928270062232889170902168051485837948138877650276905038058744601335843235458287054055159042392545951718508425590270642918678964838516156416723804185830970630834318822699524384042844907500068194537570315598259601116505954919607946038652890980227634567741144226596276087083592980960941507271918190060502291709640688207783202202145593782157351288702919004243189827427563413585967037907747001492858498462254933742264045288359515869751597269304763436401083069202990905142992496081321750486637431403246309473375690512238999020135702200489553408321821050584599015312118181996777190668553084936763568171413668932372945842806135971854135737544622097786978036386230803843280499573522899117897507760883092936437073407322556615563720964204915735575679008327881927668156219539571940056367461444872223719445616948509009878469231559756029818616862270349084024103815418204604637137626110363186351821021445844927127495121041173270762153192473807045097361217106365581990525769797611044635606094741629551418806299546620530847276582331160138073068202591923353839202375279759269120217136204717990045805737117829708443474641465655324189432339427827311390167175991925617429411638259325461440419681863728174185289399762008768054168530721702708666074799855747983417091364367186646901984914461644965644552902002237792994709370252458728060909027401261859670951862953949208185598802140748934239368793309599395353344201011776478075432338597098885255499164739543001820157033679371643722162051951622001282582757447183424595003421421044453824579442674459053041518473387672052690358618100929956652107451719868475291011715673661082579085160118891250419227965268689762744471209202357562666599110200989136924380782406269038938621292673136524435065980220464599020670784260797299244313313713726038529562172768806982347838338108711215802319882935579232677297401220925689261817747442271188138420633257408155811575996047180750685336317888558233492425492938396402926674501804817907285195651423341974591908366312585787106027534657788878915103860571755755499385107551767102421071696664714335265515724339493158732934216433535322592926290836116863874281840075210229860515040966439449340411969330775536513358238258793486021550384876140755900321101199069714050774908545019323950780035396634385861124692357308612407484607693075056234402954689693413634452342503299871419495799520035298634549392799776296945713171144807888520768899639917319730950193121460617852542759077958561629213020062100324641628862187340766432970838230302015726233166787304812281994521103027485931175353991287965540660096379190336778846459338941662066044590072407329494070821523645528146932210883198737065670869436531417908649206600667698940792427025774481032741972110124832058476463957209406051870947129632786452032789709248187797040075301688821599834539996255454052378070376582512323381054559844655928006872546950360307129794633836167597320046859905793906281884047011173407213247789398297562666560322468094393218276074128390780983373318221933071070544691166654737475774257707965485105900357592078570520900348534323692886164954717441071759241216622497374410322890398618910541600117549802217213055216856262018638171675348308408654016464939133759382666324096423345274799775221614976555439701806016311984239491372176191776365084095908851410093396499169818113998313152274732916625728683771054505429674398533413431787863758625350861827997208821335023377249462514844881901118038257008440118259093714858940515299047962628045335262349204931603135702136196232085951372809283106915031985142764618379817581992729026339314647422623855507610763366765459635739407323973848584386941753567423128827123680206628027167651987174797007223796886079240593022659187060601805279555814428193197748458753792403047212135638850515887850674625370307297793169731566271792349558431461686415733128022834874082122406142310995188425399428361846422398751813469674381297711306404342480230107502357743323055263780015575767612924214429560473977826187201524817721108883543184678999823861544854633252347358030222531541340068995021582063569958820685649887979291059109736367780337329707080649605805243243128723967952411867639978570167138013760872550325986429976090594046533234648472827209143791599157031778813009138512653294934192393659725588815786027358365605311056953202955088537642538801775148559308907419513729955671429063935594404887858253232072421733370275329443697671355727829199524430827584473006075083694238570082429455126162246165850900382505402158220935824337299581677956588861151049665129451536311209780668916104509529399925504270207890899871431181087574005702264197534862981676091297679073102054235431549338158963821947899946352192120519625452548740214049034219650356042581926505512449380341556796775639680792578491679959403979103362811734183987709107871256109978318852997458049257506285422825454746624662183880560618808498762467666561159387785819489998747077654931049902126982802804767568979498574823696036144835632073383708694987993962152980126455177067609795529791804300360620429965891946116860788879462720534717729583072475345391386129301682275079886595896395394226953661690401189520922477071385462043166283078157617655146504795535877711308166714824884900002534332423582838944736288785687906871467686172633586171261694439933947982327503638847539292123158659664370256947557622488686924495386642752588268192806505394219163590215140287444636886421457400699378020143215357345595473893942800485197643021156580925508343076849733000803469646128978353022458194391790446960018038133780774253696480964946255330435832483352254655363155794675873838094616108673623282439412879098949004107135756247275739893821775863493992402659225150876507049914474532051783907565958178041650961412438118004551231425350382431559759128335862575502149294776844616551207453958320446851053261179014680224946738820595571913185006867020345666364439157286915045328022137035414323885877840226487474473616884696947466848253185567427488021566353078026913447035584464790607856273827358511074108481088567097703276203640261914880439214971349098491628156856829344990816769390464833727653636914868569969367855484221345609845404306273181857938375489291264859339290057116927463732594309885987454135022506568117745488692063752833890369183070558400100787834816341022926184664192983554234454743857964221785059586837044893560539185493619615791441427480300352903460297880394412136880465593788908459276552693335958808618316279343631035598775010491433471654042934109863383272336358565355700909471189682959028269832541208601324974930883081140712475001815119577470634195379935493539577702979398592444981720965039530621880587840526463561945858208623589644382947499868516155404585808099888825123917172860860695468403794893251860277974758279766467998229792609361804929542027245436435902504865058109272767763411234969535614557470579505271210597703494948787367332268588344279583040648847105765563843083385119005580928178731411025236303623504833177759910774265163783544789459789943340622842381528092649582044230305420004196407477175641329733637003337908565760833874169602487783756151704288580453070527239015070709262299795214423885205738233538270552177201316895747645367015724369394951294699760129456927877815516587457834509246164295310696490627656726855001329123659436122456052716676866563725363136224815596327661304572556668926911009613398469253352268868114731280401298220938637162947648018056364810310624746176674937538899192356756466135466368342706728241232842612950827550511454096821979898358825989900024743679406441134403999842729035356146334598447208342432708168769758803789302242828614805524511326968797239662733144269620907952048208170079909102969306997121333742426011817143124182337165964699749734630050688132634569759728649520977365706658050496348970038898271010639629653157772442992516246989468498928495138344868779063518115256484507432248609104392493332292008732753937753052382498703843449833912069798620318413188895917309161795719254358454391078307589093899227236927216642569623578029897111220835510959942037272459932208157742255106632479720796572889147560999751549936315854295012356695557497413284582514533202117656677712501983415015057953962719155508418443031432966224497763964520545447967782537555894603770876592546052264114895789175352611299333349657735836868913732148878621227576561874058469519827462300612602099090027794384715453046858890945519978481132929894594369157530079974826436583936424407338047982420615320017170618160252175740739063872747511563891226930506171227705299064512793083932845249687553066045689032518578677130255962069539221644478874778205659210022409535824288420415023131627764265516358831591990600840576826661702289587501357800188995208212999411066546855361130057791524334319384466682740933011598812066671543014689528596837467412204204612749147277471280581481820094586546854908493910003810198910277028230312078211567494126018321073803337697948697369279732840509935975544212434853226726576105950695378025653810280846172601872597506810517822896594867490810196621570963282324545545207871483611112735425547124555375377871943176713327150719682712171401939031364393268210713210118731803037889969786657264323297285466528616203816466628272086287473633912892124594561871580136117905540815499650236472837385059466238720498585224994935380733512644339835733406050148177440253196714276865045294977515812705830586414925971939597066059546740971117899223124590368857446018034232050953807738314247772782186082154122272527469610498229505213431808341262602512674295308613149699979400359548033055142007403963047660450643918217047492851280322835831335828391233562695151695767153826341646107179773112783933009272982614817173141216790579329952742743352296810246120307813006991780159450528671307689758999779728588356245157380684653569263470914736729523744477378607579465608008779437251154178316975969304384426663924428448513191083817339340633336086029565018017967565872045516778388675223926064482683505504696271718814121598496312045445902547225785833153940000530795640683613440608936481955150509807824408716961352882746058912046398325402637443374258279125594441703954158208582619382791689610175823602296431896131233156237431337370394597207709970426590215389947431242763113350535819514086585956270785335354129496379403361489600816053059966458940272184924912757626634298866084997493409044149014285833605401133941096863362821771056163533226527523676486157669419064029907082709552192215802698861152889141729628430667209167006372790068998815629102453379260073413117806472550607450754377921371637057247496788469680299364947393124778089097579112631349194447222267344325199434718955029895075459997815668700932071003337666797299786704224831415684400759837762575320005440239734985118453391929358225212565526155846445058834596050017325315523671839113957772191298513029548036973098839778863009254804585897109712301972276572944166421700784777391441221970613943633931637264596152341111732440512458587996783986678985365805908935979956131096535671864706870258615151983654612164137109317228985405389349381783167271116565178460512160874909916247544797997909942187902254105996879142523101905100216626600053693728591958225253334908321343730842576335512735645855518435938139143760856409178012594373414896659795236595548745335186586604656818292749025916383632365588440986324602546788883600939226336015748366925821765884738396740562419327123284594157350707264236131584599539464961811580908641922624117789442214528274046914660690369544531536854412570827226224414392970439972698343501541962809409546477798230136778777375891113778683172284208170464535163283075033514487213276331958687926592934554430020074249552311272521864013941026314023315990977629033111718392853082005095855277918755918910337701462777459297626840142470001387377344893044339221189145057386854000407500836205372914972025498807373811256314977415708516612746543940254089138390824590286108376329208848705525388582485545197957189145394850448201045096547121801661685232580313355882448815449047881942702011807575234210765460580667126039903590547387390056204881212797840863031541778619706353055935633942464901621756464378213821336709462187612984478495674802709266247087026528668468861056148509979582805940486175657784908782880001896241259564534732745297744421187290155985104103901704624326591564030828256873535517683208848512273452481985989835395702190306522667075140740122814154545702773983258450372381272459625390111083457975343950302201269145242513667997822423367248998775757216806245910503503863618981051043390752691348572655057866943930476529548688265285396773846896886561349730093640581756777095801142930822846383558529423692837165968730652800451542793431558702645644610734661934183365679981990319547171869325585441421339235151321575395236023080274810413549508887145759837418367343550333448406843517105479996705519449593482525658629893442746608403569303879789900280454360486199504269562179867211254643344368348488836829944436238059999129192317972835559016488765725578242608968456391383832587932119792261119690178084396234676624884643384245230505603366506481209738099420866700992117747827389021709793111527645973314861468261487738829057198238926239455675563029724718595391542256076004865497415698845515220118405078184442646712036026094467666690933548806883322226706575075778564506317190533222116976976484869436384342544197299591150478682453568949154559294384495768853344829216454153665191439631134276118771035689886908318961859263954591807087786344386885363848605703053235918682342721648576645976171903776746169268902438137270556513847409014944271992922344367928172061862915039170663862859628833019536942205012864209703783629148932804618359484736907429056661573756851579463922749327874099322822150893657711211180692457027939821453894414139133926517338390308037823626803579382030850971952442728886731753655596709115522499483634564984781873035511852830519487885873040437299685056365952127102890899781285032328300938277276300185202295497611242525891886200769726563936914845436108672899236708710734306842728249172741326604426107721435139827406446750456072370285166944710782884086411528545322770955680835788788963206792435587443492703271318037385276471605278207277757037172578459016664089174453102002877504404893439848705879077919762663807133800468283623324145947775055104963668492745379935618351849081507411791216763856101089776016494070649517957499001165922029541374031604381416212476386563423367972026502100734857900218954538653389296063425571244263564321045861622702652475666262708153198031660458537767626939096778377169159448497272503546377153376852436545736716398433605935034223451473599869772336068682202124445359347780507299375090562268675292740400480151993530380488058041809442310866414229972350375674123812707398860610150688734672844717911446004237178748643638992457159707563142716164097216559228773537801763696872543637998880859261851328410616644203013875421876717376743467031499256883853791372980000823873173771337087510754459895974690368131919615610496121683531957010687937001411044481436820980168541841088025630690640185225133243365967792042689147152871310195919070528541541151064659921883453113319976361719453763348418004769748233480953689632937082383475532807827745367021297442925443544201691997416248388779937445063338269855529814130788831878572879393202285571477247075219530115791171997264016946221959874479878494215233970636573274540924757555306320829618435946455911387503897431434033324015056155750926965986582729363372094052480888557186313452367141142621988083418559678138040659024376476948717495272699041505586231084934438683241934612879507681217337364407423368241633718248099769123843421523584098704243088791696290459335755972770198879990952719513189294095516242431846456081767942967140538508192007042632138980612886778966282182660510276522516426553426386544795651561024589485797035825021677230391859537593066535837463010692557707698109707122680201873452026521725892549014272069753724508896232917987377804989619791422023961834580619249365813106305163169139266227186128495523709328651085548654846724402543802816834002192445057951256776412544075195225879046166353258499957383535516784990901615136255280967912129009362336193352224080649251182330699113488905970085155434865270576540367612024125866382639264861338598939957182618953535277276791348228619939023201133379686138253850574878812363031573286585413502013355943074441923060517640208900488018380889422015014881519821366077406905502827360107355851063046136105891400551812101497844580249023579918341158098937827896542669979488233203836849381230723733815117530549221234331569051862570746078319254007411084458469816376557247500016371902718812320899581546056827764298681697638513961301320177690565364664406681301847228152815872589087502679834136262750347869482537360025971126618274406852201925951318813803328059926056036704153704819568368180353596834591481112405616623364736937980074593810393603191267896119107580611861447072306738818978238010385544083196952302245945834895496641236057398115078446720455663781258031705974982835179544284067953273298350983780055568223587688368170193666341647033886218349677830598505320048037826795179877150995628034915741546309979827627641552710443098538624241319722139604573760788330722305744810748228027964790699244318859092745542556722967734305611755276803373802383959304698007618671312408874358041320155753556823669284964246168985378883339206501221401006575907107984765525830309126647176077384819813186636720026161615528986207189684392758833985127211701652510480253652503149525528602017547575148541708392197995181867496949947260246224213827771426427602215986547218576113161789174062292040547183078895644225810896917794088044763949368695797137115872441963051958574963215320269118053335288954602577454676694852417544043056318242920318733952653758668303976998157660281508884156150747801528189136647416087029953350255949639627504819176543552155656141691910383750350513628086183361929438105824421573463498418993174047145911105010414110027676633148577281909605714523545294867476678959610980844205831002382439449697403427425783683213070330462586105521569300325024078250774864218153289410855633545712184232909517597537627725850728687846083734567716052636423441293441291090249482461223709657887763151485553438356846096340700179797206153750530778326229322062437098345169997354599700358138584838955356870893917920141223387157920239186892584128500203678426779457046854293160904047196718964307261154226522135833814885498301022397500361388984844702282724822557398890676503220046143213575127180169467997741920190775119293651768784151082510058973440819562732014990645705506215840333147814864758095747177374048265187787363407484828328400852861028449309972319185330323885730501761619371296637591719978812064627715960562398463551746853894295819329999633365330790134370358143899286185750508196464727367728710048487321990902877113876467588951345470535515719823467202017478987914899747815762473539625193051603337632314322577240705295542057387423862144921543177772218202526420734442040943919753539267145519117695990879247281292853046245836628516036578217581672108468630499601561834245336693657637739799480824502608125603349014993425785469487097903454593188146604689092999536455806754312039810451319604945587363021066080420251491957160543927403601212851874724455490189523908322164388701923784752759707314508333883625347066559698586565168034162679227634487808173262768631596051106776573993893044099224171709122199049394335793018427699196840495946399308430355545120786178304571018827268171002625541214337025606050635058561213390814679133600785057076429660523918715777634790193650511670123501978125196038283180561751746639351871055721390801614744268931756479721349130937543421266227087690748469551405159020625246205842610085866707441047122954163119229173012008340960743454038648806623098035600807366293423369076204677355434215829541944601706727640124053288045786271463599875477324220566822778736492469038129142091878966974408445715732549681217727975963595449276012779443579285022100256687226822172620494639439003338113318294005358300672182499109439444372839604698190286884583464974914800717069799540605478937764889388174168703075818139232740173390526731867138106477965743882514037293457522638011484006319765462562529299839610479695026979819514120623175383754466855534415833478315199409729311094589226513026007872335975942328521607599397310895916538517845589114035615155215132602246619204646652424939883652311594956248870783628134158393224489783066174649443382498078406362426827318418944761507913872066106076641892723903559369157822185401315335726711408408950619901051129148241724754294015209849703455454560880379530221975096424191084220127088715984379516010186714870427031099010846922803585577952808956550100143990129050169705074164980718031018625814061109289820216722012809772961665650300359270821279161759154514140267784689633528459646975684621815020727310782502080004550090844415454505616767479459094458584797246202453053252786427946431905937610149421685570454950776816362863625991333519378820367996252605030037750180899750922110658630403519244997720792146530626684324634917611987845743571301948674371675474770166241542149941678464375428539106395226468855132416041117285040373856254937073450298050909936075802653353703098988591093880429137653595965300192052619343679865092671690162254963568961948478223673400211851107322082274358709605070448981885571315095825913974508546573735286464957925257096704889913943019706778212498547794974656825394993991637705381949534824109212543345792667276588858903531192909862147572166520583182493619505107450729938494052666839232393689315744073034388497657613579666778977883932779110290044299118871697987814642760801156442085564934157378520200256782058654660882460493999248269639808921794591392470965874349703185377500616117694392759008022786709219896626833815093009570073646325008182261389342856673820660496198122408886126906926887391995142975345440929490886417278511202340267213032241760212447810295903507959999527856532963959573057694948976122043702279589682080918043741830569931040178328991558483608959276209047057912607602131136498395588964936988149090014586011800464177011378103149435232323510726656980840029092248372908445171178687687402765656595343380145348215533215864133874910524449786153221701578953903139106205475827156081678048902097188248687576440222067739655066764982093569210385869602615532536038010074668316758705150693573074589021005167579956438290793468714578562725101737962453841957116226301335525034546316096414655956485472812796110724911124888986653368634584346546202041711328167485546705254949887238568345075275200941411047610335866806521297117111770140168584225726897501754228575306691856778373460918311970738065481112483299908826242842194067595374209838911806771593428232258990396959246508539167334343267125001822254637385748426078035696157807561405354815328155773883128079084142140297272465412214962760309823530702956422307983428318301686588918968448161119342525623623802789373014719925026235401969216809103919587512868482340112366843308845468166202611361230269511677630352423641230074652212456749137755000630768923492554942025505268358798512934833337126369868416687990587873467000922219046046685924709545620854992651992436692563158059363918028579414457755086617631609536007430151842795665140264156507491658587847800294585470085084899218319537515999269285225239220788466790285882729893608251613821438490379554022409398555003488102564786523890985764339680650008527696670855679150897158032314038338468521069079060228031970796861122831802136495561010474456467628405488583736609230483431037015975138155261676805582214241019076269638620419962239297376402030710128380198689296990594250801154805992867804792657348375433955678863877912982968869837131989187717107988380885823061873799246589032696844826999365020476891595048625612005565523903668348033368307974227959026547961746590113909471556043604249865412436728406271457893921773178331661457595999443667425009549308549598780049260793451920818184496102697276654948372135500848047432147323931000439827426766692595349459786469399144423847669927940114470195496832679014496827192165442428268659608799113036225446669915748461292798417893540838841962111131252386035143874465842446244175703565732407974611511714440894708797507106803963856169141992082805258909845037544944740669788313507602529033175148795168296883091381925413205265306682307632353247674264549860582919469459506611863183674427083397986968844476337397712174523850154717161260941835605717569813404073281003354684848946490391531145679297051745671150928613288659999904342540423303704420901242699560849371204584954688131188533300724965535155673281954874890486573605536430732491749011749094052531159514046396123777927373763949295001479477156735220748459957785338657727473323440154330157771049050073177096548267554851553023241134991118611413293150042958979303297989300834443463851686549606826763008999685303233861763517102617825727953327862090388200698810594008587671591527970133862692227019742095560141847591970508842013283445880730221281370080137189777728897566033794473458973293586876716994058597276197725572480445384406775160260122143230983268124019188560559078197932637129488262202119707033028961235149039140050083113081277794337854283500489801448444801657906339089159669699287756794735407956789359485812759714104546615450592679266844637843666044179663323356509808384195681687218634763012799707901496861021484699959907753004340955162680513472922884344772221016626927649872966387333258936211395691534180911348191017046846674201931581842658736183644031431921339191301889096777533323980105793819574195452989435821979561112498179967288026800153921332680275164558046033884116465105796844389101882721441015914256275680108203478690445095387012781503956457849384996497347703254900345659283163927964233478983375029004836214047663327849195157857686606949441188673907652581746491214465935625996779528387666433119367319919820776098884282632463699458133071163618402234242874627404984086426461822851794005487331768045415649921487375832155575591798392276437795351700854332699415983908011584383911564704247448606096143806935497060973070240951550550321278801395906609981155506514405561059257931620937615891506309964796345343570437991245459046134687191899427538350777910049416649025941851397113995789261332757087518896876484289118114255729382276481007090178924327689022763143569218911367457787130483800255238431244372715658267155040611671443747314727349317241627138845053103255133087432149052097321341696172051607986012889402575374710033075597732609097741322763728744920211029710580795739302173729884638347336832135628143621968911227124310546324966691659171853892183736572453141043605338426245058194949803276372405423607967189871186785502484888836994537522832397167429560181536632506713006606099350134700486709947575273508940692532295715201277759875189331906219235763510704664208919163669989753727750628618809180419432039352464451191202368911822982988043278413493417751852076721797201583507689621679557268135422155039843873941951979318844731304638986951192117889467886681690405107413078507759470715839129784411883745708524471836940380079263013271733420755855616775812487225597394472347419481054027648807856131828599948365761042295905721676685770736720128059393832091384354600144581126592803244207045762682465202895912738669222838845588763060016575500498988396776098042606306235691656436506666505505729378085843047771160335896043114806130014993948602574877431174269214936906786526935494329652893736790630192921086168833686569970399262956332148362746050281016678603385594243553800938837358264975889939593498662109827236640316655282558404103010163295410710674836351510401033082149754605947958308059654334447560413598339411693887746527368977237479359685183438638581654245844325111408170596047439472887108489728495631128532955988075868304148382290963082317613032258070377712490385560075705898252179209917876720268311884936130142216595129471834910254237052019436803157213615610460025723923846135541080072998261930490117245345630355859296366093681131949994006402166465668632565233629775861232992136465551295237376237328923859246152943593749600487277037702399395902365953887175268023441072587012741424548824553359266984462279993942518662520444506922225570011685918725571472012316749319567886849160787227025044677728728305511871677904839656251405407528262550060049433190085272902916810180991570854635942974937713919887839089067585822323463103445560888930400607781685118065775022881553935705886099425862910283944507356036504947945170665020170146950208068951209147386924273365220182479499177807370305355923693125455664082802640749072044145250197575986506153833363028589817099533800078759684008066927752922391983808272860803175836611454478921405928642998612803055335948883297693366410654744930887046968594249420788693264996639585869611785788534774632207888338852216553966297770922403773360180163090687212016753233524785590619289394401352365811993547737687710785280458169710057323727285979260866010184197411545812339152547578632186796633085302930789414768629285540134348870482792110126373179215914371113490993337561658791449278572239395103126607674941912755318243820095362519415861137866055149663476433367876330876441536369123462141179263699495420267763472759843241156564216644504126594839305472944092545130807194471898924140216396436779782821057373212093080060277916225849611422135761334883373194999479222097868326804210600929278324682109196869065388024810975181345292095200578486490187172214368896076373575463557858826782307322988036434375917516507349967635556850969392058564027463245516839892789758121929215541329560417409011086614856916181330156478753102917265604949122462862656991664626179204017177932493734990523370794710330802985077371748329459234377910649627815860594749642593816125925204808365546645857305734434426059353675599799311723397684104557631611006885150706968174967716859114067182404077829102696698517708307250713609827793792283179159364669351494559496489117211366475786758713613349849562861171650284276389660314208169878661912139721762747949998452186640395347155135958114396578228497619216146148189933752677300121466656804178254287961649164110916022407226367813065116826767020707298001695682173999891356788253692157817019032427998270075846705440517830326064912485977872547462529935560663798961271152729305110841540238035108722042451456322934761885259811173140107633782921719695995797257594992897216763164030398108865401630503138695191123529287798684152247516986780734609256474079765007203497113947176681594252080425587565698084285892409658553928780613265769476717618793559707280026179022790903516476817956849895801041367527185542885936365452526568897988656982797250814353707839987688670370078754800933874264801882212639478048390149813240949155125845885798775079829633822398521339914492415710945161939815304192099427071594061624513898745748754371485953860231980601797064629800988747375491386823597045702948094244462087207630981573206724972288653923440244964798607730289080181448223692669440063199913664518160967989479457598985405685586606331794740637429495920771295134304243198923935058863057861093883226629367903360927600521023022133455487054573219004971812084429473009420817898547736895496813962750086564138257653596682980388558883589289493000247387480188336308787696711970583561061359889256326308696701535525807090250157725476246668614768158206043509760113491324483578177486162772227043986845414737346364883200344168269472023643344797539273297454590077079996465301834689849426230307590644700179282287948680249005359634668197385927103139311122423665534804363562169820434166068115323754862352438832980085938688467287231236496131779872465483847107121633220695223741918722734776809355827939782116525509962586759057558528880847899897422465643047459793526899410564765630401067021230412433701333633670374456171189831164599101906971605278239661639697035103339999028808041990576847601103505723186281304509881063019406644219852741360032038705310595329026219825470314153453211762163623219340247823369767195395419616378912628970173837152863101390760972893665852541307216262027535913068079684754218016150335171383993600966016358630601622902876074464914722433604161797162737715972339317658422372182042847082394705274671412619284899214741643364323549787416404864444439376472299276883972228542467554010114407395046551139258440826300753640995023721993567567093511149687040749397295371225842482072037169162883610911179272151318232300242945044057644071945310100175505888154879201573831687156744519929667782677936861902747685584873117673041939697680706243186418591083800373001778629896780563168618731156782348681890102880638307899955096026190632905886799231403628088897903548755753483334289064668343208607314482750693282295474789683132083111383629122964186348862497205073491439748350318203511072067103348496388898406998961149589928903920814593901815261145903445455941421666136288647181173136535284552196618958372067483580319710726623115312162039620852968591619736672644785125710942660062393634774052782480143689791623185427362919894145802113146549295530274789588484126633596712236010497502295426751383407528850151226375228632653031012811521887991396537724543442969192228682358370016035542259222608097293219087012769817691001186977812463599051911092997720534488922640966817250634199532647245181850023516026251384332190861793186593389906277616860072469084459475151744618670068319171292025640936629586653833757794623344460283984064271592869590792409904133216080612654130937862011189289773074158945360118870259701207675973343162519138163849277881608001315371277735514675337016858588988790683201750157069200253294991890716646056518061786204063554121620565877177891997439964151809671962102174015073526754204933831847998757348014508320772180840047050102888499266981480258092552230286294240562284263068968055523008095007660748179647682925666014734654861539710154655170491084776956739355759491358553270222048627150856304036677488476463889614068311874915602782173348054507553287177506872306564984122824941945781451473183054799614208074301618075819810252748432272722041996237090592826206082016632690325156185087137980804954676323584402911037954145084714914888910434701871945882845185223331413583800668363920456993686854343466996221283448574820400496074798838464659005747526236030463966811653439018266907876381792236559406715740545878906252852857057638173265709959523653378417383040082327190441185982550560690858919930226647081458168842648894537073858634734313276285766238713668147268045851331294126338563499741449472171557393079820996163252691972752626879875426969410148075020443143856930763080961302359238429683041682591676580350676976370338013311814886067428814064262947864169458970276227275145188916636661717328016892723654615104636287389882656957566984083070956511017258406691376240268846403678906017444048714340753743279556309419756729667350916650948023907619906618000233392419467704965147678041300617107830154462655872041380097770415330681423207859631250590202358926138502494374574110926452045819510280487536714741622416716581647663092616394146824212285363568290715817462867255763042723663976662042107374106196592049978925712169051385278316290868587745778170479534606053147915944838983929390215430936047354588937069717245202793978817878259470726689383631578984675333938191635261424242753551514894661327596953355396873105039046387266836000080162026500356703140702286514173495340536615451986857234828097657607867059270982922312121149298830638419469434633495873968119626173718117810330428799979145996262463526760660071877206313222406155549475240532186197652981085993141899908136836391884908024229735496700655209642363063964312054758320985645493064646611341849911425878670317619800545919313795623901556618416634470982987334289054289631637134561969661589178939311973145370402851717768799237893707035900357828639224625619914841970571751028531559831381892271650645616082711544677929312150253583721318268296294661175162459913219074012386537668469188045759902279819974999986505766112444366891538345981537042850170796093331453729380569054644075668810151069751944061378294573138711519252320403151876754366347149754177969598055466336671752050687453233610404629904399748267882842603477886233151080184183030404557893281170467957015985425898305386048363729304328106296225459274377253662870537247234668407787554449845418007204417197104107068455695373038300179928518062433959976146077496148824776158335759209963995712942914174863007510996124216732154179800199559504712460414291234304011108209844024046085013970111166388549419831356954899704853453663552349158138149258279887736034757488400849852153867538944608298635191936604763737502995005230435102475564341860009791541367858195375292243978918596955379745304670972614730815524896136937624497933360270043485683362180066875257060096837160005333833950710118171981169492969169900850212991561575439602247536436935260104574414620793818987056608054876950010368656212661546266312268603923010319647959428346609517198046164378873587819193913611467567959367868771536855184791659069714115411376793549655741134019411017774941892030561345366730943653007030942057303585903283647665757360243479453530050714789401246060273283902758886476359447315325176039680500203718582922148155142463518881904539585456595537440537224175227397290446196462215995764893948446244654512649047036984171589027058533588877736026461226169983068129393861141525370503140025169562959740278867391953221692122344559442900172677081811905716415841237197201842271547977588897751617257603856584080648628234897578821097940250512538003471716963755485012203704860691628574941840013164104139364712844405304985961689606809661742222055992811051461240463780553004511600160044569256696397816453548638631990506356073391737282899370687023790938908570833367393181159997013879627420685094298406575177213883203648689935098805052780912728662608683164880445190073038923922300175975701510886314526984256714912756613730981653066742597775893458352705208657615391762576779818480154188389954607203524096793926575422888910930734308940562398927739422318490546828281951516281737620343429329930434768649426541006201296402125860210756740250587103921182960022547774929823458296619517406509919706347565663438904292099682297868340808642227800747926808737998064747980464066219690984534965977522740811554744754412968451163325167811039381945596762534170241415736672596615031657179520037492839479590577191471164682217684401020834589530586703438238679440600639426668313799287190512634723007758834633711425460600598541025349671229813643977972744832418616971914791558848348489614534767572464828618566297133579609783452165536908407330146540192595168813826219145852459862845213909625568994389308698036556563091015162272058236052851575840658314427080041282494462990323717623579619880574885893948704781553202071367992883361906911569353898618796004920807054121921053007935635552476482031019380314550699000256468138511298672186878804264049862895149390802941335742288465478752796521718498750926218253775442719280650526184222404725613181151582590480352383197016472058836974459618753530799636076862682912646100461867787611722168112946734286489820237491134773193250967889386641043070119470771766243283044150175142478156390360423058698603631532836124991578740036943184494904850372414191625491814028821117024953986836822230579047945535104804530053260019202654280469968122777843204472126981089532999728356620001039732912078783070654227283397572811494306741017632653244777699861457901985588577412005528392806544774374559342462109256256645709668482434263070270845484541312545489143446629868146906474215304259326616998891109513620918880057525435567756396663421426283014379982313865721862168016879066813157992233101351322918060847840418296598079716142720630780176116235197356005478224156519994128582538127504932197407869297813189473636187644120876404547217673244864117496906735091579749305485592532697060207047483085948434460793182267848203119281917003339405436984247356105366080660202443362094361060907897769805355814444405730448417780536669227387032765672426987042006096099828356359448677916049831276542556209044714218006710428274625186770807217493355613648107166032467917847064449711347313734832745408029744845741906983992949738947618538142335154782255120654620180938833862784715889078313496453689674633047194772100364867558266570846591723643645407204560333023284804385498062093633085310338889507425258261648557579310193112214357821072160642277737796619720442512247484862028275306297747703564533167519919245567140848355204238304238833842092482289603401806626641756963480467562841350127308899543608647797859007427744485606117751939027232473045543182360752693661742714362274770399969296178239306970807561298679873249351043039004473538460742190475418603485799903254270426426267114005495558136454464284938722141925727185172036065540969797583794611821467560766714701438265095609695123868436232647741973944939232422683255445325797956432950787103495669572834926282192917711734622600838757486780331843267354450613921119570583023045456950243206742241619206042376096470867623963882526960953351134929764932312344034361592490011562547746020498990482978646231487773879158136043382063462720095207247264938561956132019549499974596529889226809979060103680057243264285435153435172188102565742612149870104430854632721780730739891215821884008796160631902740358846460117168237442490147267724598572532298934376876734596739659062323696389602772930122210312669667187143359764041802252514565358455825414332556847252050074130392265612850839821647674338286550967267239568689983839730133192116890339208968571521468381433166083959330170963439794000562059524146315949932148154034164307115146474191467825057440027311730455693267178271676105631786821301242948765266694857028534352193537894914758863687598546014129250204063615336242813753618344889314714820091301636855963237810562447140257124793835911489932886616169827290356963092826006682536662005919477085372640956670014378610620428524961026089832905445981162027476553385986807780291800420955538106777691071187605706555775472907076074584910621683289361365812743071184350798488843628512846325977491928059527204457637237654249377217294960082452777707899135023413881107333789756015358390574000296486095012832105556736029893667427005341321658696422869269804473124316808307353042564160655245191906455802334925473327120190305914138544619024531066643982917827373770067539782945350678898948751500646180560978474965651536326493997016611376752219146660372435702563034559273722916820928947879696024499579640971786480444421536603650623090745772104179462754175221380721245038004023139322882801060666905962812855015210357213613766510672964707019024631529291400014329164102796941650969552620869804757967950709077742276288301893633081363875839676708543035396561866673443083323250291114053513760435683315034645936838877066320404446428967883264873204328201336182797388590393947063389211204278322103703377412967075738853974303404876431852884003949342267575096190394022161303949118828266373707619072812937495934239447624836709064729714823405317453802452329839578748788969644691826672546972542545680266745986595376839400797324412032328902709524578303671359362165845434282404637792139050432932472619176443913026089501177594978608712238710835133663050785601673556697292373210990003137567622757381786345391936683836924021109601874415172063362089559024526475216396825682560169152228749811055916478580706086426824290351985711994909661226674677885580361167928514117388872121006574856182037349280904116722504003783243155961446445862626028720946340371663095251106433961840368222468080199197224075967925603520593373798757104569898251164218069388695844821117794944529179397916381250088145714059770936856641088549959835550668962910950648043861471743344450716629031612055916243803199063293630205171128508960139334860640772390480498792248138034524298006851901443846383765856673979395587519683058540765817820416811295201652797010580216383280468563751854673757875290201579881126900681805233717576424985977779997675643371194176649936925432254755128521868720290486892868650273425683953163751679075641757820452175412849033107968355553663333396724493787996615257634187922580776137068177481174968827476815911753170207885273655054954144815279522701549917521169951476268455578180466578764124251741523239601613370291126996847439910534686549606582289416828421576697950560559804844585859965626225437772022651541806793272899603368482257997119367092971823829697441672294902695562013895530911273866622157767027883765294347300197056055860884221823280201558930464639962370448030961252030363792040556354402165146627656603215813532030324642312154770077900336510918432616336822594105045781080474275187251134068093434568755322360039394088636250409508789818645829710064757334554965832838497064475509780844241973226716156537752865672491834669889926475281909052179809113027973108016464736861236053437746343602343701553019829821675610495785637378851906391867765731550514605842600810663202411460951815976948551142385430880068221519286068163273682858927064637314085101822583672132160643182346031876698990308467499378135614933168754685094054837495394176187313049753405941649916878595249860296977983783480214620450883433105388528162986810467187793768195715778562035531515777903830041558423178554495683009524817786585172971100385963043285109754923589195915818486731556520499469680898644089524215511739096743073883549444077504085527991981019882312644031927709352709279445181916881555205332918638480720436349879841470834604494938170631829130800722441185547252026326064436581323929464175239904695693802614923486339443515496015098226774313246031406300116969845124554742215844244748008707436410336612392522865840749810425464866300625503262130451633944594616521023843681528817402129254387007199971837513750770967340786055833090365548224071593570817471798769097488188305978244901535144016673295476988410060357068919530913224423062010673347108030097203072558488652389949210019595896002084497204347420774339252220540227300550260484675969998084084829100829170939447373345156597116647339912786803648524147542013454578635710056017020749063888447682109815902913708831226933709696556971793658014252565444926465954065166596856765113617989403528228439346429383070737862886709360814655342303874332112151899477800803726994488519135660555611759089099757915278901946087037085178578576042039507783855150780387541279177163479903729325272250341428616417126017811292656243144645188118648396278049853158641712044893412083048876706681114988877699611177435277456418820031790117286737516746936836042214662224875377602090328544453090987362296389859470176381198002071338791923600942318424721394672874511235351390670206578644782163231983166635969393315514014658530121667912465016453660785064872904333652285138820910119802337252794108822488887990657672467342358440520508625204587779682604949283393510070139267377245501325862604373463276579748381386331491362937604967302443257904359356613200432673250714873913145812247646783947234847208907553093540243606038916173178166253372768933961190957082919929157118347188080093805277475705358957314307355918767436231422103220751834994219067190017116377861206687005652780805234370863882040207429640223988964302582954817079455884234951658422449554754995077963952201391873210833124681201333733450715772996863507655876052615953569587201241935253571897265686770594002879363686522044139930254348717001485999940519030379440561527430452429162401810602860284207339184605468713371951400285069893731996332558435492163153613069467605754590098224636766850635496277345101569620722166628046032285844865517939567162955246607366329361772338746764329458933800736767176505092540276587364308900268731246236959495527083705631774361796708262076556189640762892488931933162338172862163730521765893120977871508333571755119175023543176376912849235365096752519069390092765330433000375717956012999978605781837371975628277506896291546687270704283528225646749947164821474704928025268275279734888886675377406600220564339212805888291879605373046263857534094516221505207766711993917624337051053890370710965475426698487313169181731998039270396663115531497389776578253546667455263527000708664530024547592056314244050226398487753601984526938815545417432650406949094413613586707427891509225043115553298144634366807161734858124276331131023530625248342374633100249582597716165711022673121841957484180508124318948141229371347393646786504854040690931311613667996524993855356741649809815659066062304433044184693338353215538160126379909316345581980360187661862106222381199856515940461529273797756041637829944865953570949710543397863960247563212141881402189167296962659654459926675618707321735850352088221476085730115575149474338626908961628852091157670426944288685594150347524694596409416477793712903646413887561120918821259249294101188916764790136409447901392847474741265620605998879918004690146987607179037702772710152162837120729858707027993684279658406600521704437144148458238678053125944919072259664432513234386600665653204095017850959549634817301930993514823689717046087114715033192237513717942788379514516649464089271729601341797364929128917578751444869709896515044717832831985655946489547061045035282109093780910430586374499510925339891475960011652137522969831902392229529291257976384701754665324495047746927620445010853857402929508446637187156664848549363335175270597380741867005469006245066226662539071616022269701208204956721492505041946382166131785411729889072818761530693076857790755321807069872933499524429189004450086905807850454473233428907612302145311063967218647558917569723066053415949232367218225428740858606087704003707545242135228483139256246038807183315554974236499607738824293228337391914208174898747786616319561725422579436041632366350714849654408158870238207579992380630286040304344871838126837687669785823237835836911520561147309914230902444265428559430196193847906993962719334777752229473983976200646146852670572388283957905579098371669804818559378068443162899870295935436065133171166528838765936154540325966376469865195098834059876787275687499535379288938028365080484337359119029770371400149768199059204481486398826514887004859529340387240692395976922775597658036529842978568314861699769519545421789269724049614798415662038045329975905863336367173158513359127896706480002409708786246148668818027121709769506673450275471504358838956266812134855941059362535195177587343970783346978171937273469787101128464105021866031147676854060033177947151955624554113502434620986511133722243709178098916291355516583183686337123460933279107296410661471333488248361332180223790761302134151837858729757991189735155927379243443046652435851779453224357151319225559235026858269014127611658795467297382301951954072284965577484393942557089730625037278529532567040827469139433233198619220138803356985391020303065995936089645652234456376517538602310730042423796006460093776608608572997248201988377435592037564388462882076111905940962349963415176029022388363258968460083449838573627141603895324794249254287770302932300616754743768070682566357794486115671587355237373248372426373448478325189622296944927653148905133445055694945368663487026373419963173874565790752980865522644382308162769365618735027740583762406592370369990864467762106562010734747840036145364380146134630786959402210084512676037761789682506345318624238921737737810738699700774378340514572962959174603794509360801623937701890140704292250603908100169633750508531749882881294783695890517138807783837579805098049319896975514071462621869473719415378538366484158999811563433281255823158453394660588858054389128922265981874801281280341180177674171105595124485667953455745901995904404774724662229000917366140535489079449452946688797656193668113256940534159543198521656264546465061483534903982490553837668952658848494114234188179368974297469237794219159460003538365276405828997636037945359984728304455343888499634207041888492763483515554282890933320372911581602217630061289358971996175357083486657070563446418968070960298849804043222578011579610707844643867343215725700303273784779200677016945258231454252196103112846326331997197500474788947284260672282698523477414524898035462442819881778131603364454151258720811717015247006282409063676559006853852938199811171602433435207003524931007732798906282110210620325554836332594087149907830480126819606904914315964483395478203429364741950799994962425026612422866645887227216791818952299154588071942155608638768671812530809507668647575480056089499954916506258895750229159171620611532221761402682760475044652024835925004281682197740144141105352803457537197903762003615016669062303610700656646821289628740263619874174626147429937353401913508899112326881582017371623008050146349831687640874886020132643699266435710258350186694203418851855779478792942427315801663801147440888448586793374623215950017055866433081743787152717494052853557469880252156288453838503854983574246053831927044270274988852227398863393954115074449972329576710631503338999857709187760154838667828618025476340363528889381005061172034434888110190943440396221053185365672523364768512310239966691826173944025564976803338753938735695253309966077406074858894932968426928142827382888560465051338021113079447468430150150775068929911300969873975467435270157331478076001395119266914749167396436568346706775973554016809772199479259233022948128625999771395695245132101539887898012653329484605834753024856482572239189662261990757948504386960536038933556484562690815761864429578008685276438393852982317517279731964357321899895404288348685839768041009811998207045994515599759000487572215592206765649279441963611613978357306961070568765462219614497150281408939802099691831962718494913245481468699369951216111531001151675527091387481027576587490303312104527760320806314196234925347091112236983518200127415110602905442886542102684097118071460075552012222102678767092191494021028623964595436784273368089357206544972489709359305869869896956816241384216354148003927420029852830783602308780331677584608365518788580091083654416058440903980352514511817666346551099054875211915246364551354882921176654846801216001873191696399191027041497762541044750883687642677233095336250768925994088920896929606688157498340305473430631339014463487219916052218708964563428344143873032708524940790382184595518266361309506120299223486445562421609053245840722973637972665280861589303729496449822969755971699327960827120331398992562825823205171220805972254085229961006919912162065925064206298333459329114591427129260340816133971731933289265085633791299990494965324129166673823113469467392991506240124328394766996815458576903912259595951615579654880939160825786486714937118316626373321834966188417894813323576227666627917370793224513810203840149711171060658421965815854250977468562566487974077762221792425276625550959870457638181400360521202650667942326533453422998726347347815715628436790108587710240403856924215916215707697896622179326752933277105291017315224245811298189125021409228129247714384506073552793230229240802279977965853975727473716031620749276780420922143389189485729593057339224518237554111256097525550698187174561967869497618089780813411671244093122036845334211023288030580226936622415044487691638882571160759216942227073253447765501974072373723884476098216758344490236682547615038438831797996739533234007735863727430422651788190623157238637128581991265735454953362057361944079868878261156051842657241112579748603037065314766806401064404597359662321571968128581314843689834994603939233709266014803515460265857614779397363697933765543601275428162061334023894679103527180701428901622661001795898304125313630597169407585734022242205738294534550601055262715073536182307115060983036416387992342891393526004257480255423251143320334682167570868536682830380147677185805643270484749950120387644206137681805546025701831931741905337709380987478676931431897931445940967576477946780999053205268823361801062905615746596540084114772780909559973745110387612026613557925112501263067115439001527839338973351763633513141699468488456970105802288830473543649687675183601484988622562459899258836512593091016172702576105690338239232670142138927703422970371297280457057189354572876209437910053183560117861694080871408130444789743152346026527479756333003312724878564732189560475718777510061204910376366696371675264378974853893431222930833193902192833735438660708810636941155337625201679141066125957821138683479562988575980976096172251855076516294314803363801322712151161769476755476527384456667907913131201417589612644777405807707124617566688629255116792850682119651064515001827400632297091260958535749897342715173461180643317606188626940529279891566635662117678050489486901832746595924862055314589403927026525795426306532220351312133630367996292617150895018381044425756471347342517592815359860719879305897572705643163486877161568607931547845360812204904913593812487329734444311373591451620793452904373216597201232214161545329100565311357442254406055819832735105705602553047536049549290572746006192353730207376121145617461087267024999681810084374701552208025412621862777163437249652375122664054676234784259537392098094026143456846493390695613318108372763316273011554007636286960030798272571886302345450066044677763352780210280136354402800138734029652067933788371421509256449389160682128448561840250490703359640391757412379610864845804002345092027247450290911992916966938468090107898678670107705408447077012838352736703813490843814439416639523518844892920613122484327648409062378498583444684883521844351797531111565671855612249664319409753700594136051924191805000503453289556809637347516768756710783789369259856346643397225396908759114475753023877967423172041471673414635738687985702180533627784692141448476826890079675864297082955238437100887392921232175218164031417538853815997823335697167180401122524655272785883118546812520335959423718580256396742283758004107347162098934350400818690529355575669225534816350344421905555460692095856844673289426222167808833183779217482042323637278738169187581865018241129021615431980762586627064814667848320752890805538823311963626396539738190282801723213114911342381845574548007312698852429649953570839547287713417781905227826079268204114327565836824120352806716046075916327232291791389493256335329147369373562936281376781176672963055694973347822168586732905039246030657961342290309899827416580482014278935688096354705812620341855167667359009970479508739687182068942413317270707754611122280650102204087149065117454879921515372235876803059999668774786462801553978436862722727401761245756113727847023390374405786714572024892484806382986815863889595984285223896623263445420664224450483215501739249727954531999516866012221184136741580645072210066390886369345662529837452745563241126149471171927704613626035313629073302547226461756147979183387047061481027221336812385248926510488874043191705522269517400907875986125464018360968740756470208839311554810478553967175581555311599317151632864730330377109235629399512072714071154257531579458537203425871082935048300715611823371043469401724604400012812146355571286065185655041604444951381066645120331462864384960217057119042281123264735424126711907195327876922470674614887718905150387087351821724960732703152170793796239273467927415024780946284759307334604235427334607959480191121505858220845137155200440716176196147342964634187499043565074650480067980623477595606079289557266335778806885074585079406322396932464279587040895082286197919084979907005321592396436661828125943659879722306501119320793370658587308094607906116345666125488995010256370877055165289802588303795068779157884717123300322288437286950417422313471360810998386171661449415914263023435978606680344782610296561184385118613841946243307099915298152115262103011884127132114483314710556027351046211765393458480233403178246123608957902296011887284201684881756316272515761728188564312620115629516963135397908136875432323957356989675006756965722071554662284287565369042011464580359231273370677420212748684112978673779072387463784680965143780226565401414232491628982622054002708556882910598218736663530711798406249956903313356994697735424303918843721389836057968961434861054065850838524096208761398036079631261999596879471809493984852478187649918331001336389106419136253792993745687558599257317026440752658212735240034704030002084466696877725685396763232681079617919015779318110582410094619386740863723967719498963152656479288504309293875715211011002597178626964562906592864789927810445670270125261206560377148421522464772798536949261031040602336361958768804525485705839377005220102698220167709299125750791116555643907537923335572453640630577225168718699576578216904622978959289564183679581824471416870896975502243343978711138734850924516678077270430383597415722965714422509544389137780510784579879702979483759210079237754317721302686371241927536081724856922137130031678953291625518800791928436761023180990192463557703093847189782762258706612295948709845014858653179298660490641559874897511327858485068755280029551421166028084454452160936651303241922535183404501305728230561463834913572291343936663960576594199566582465457900955022749345715826030135382137430298279055196961299556590922296765253505215496409686535741873290191891184978199659631767375014424539644504678710383670250079964940120876192787296304295638472289305063529053828063418394072151151035290580029236756087786492094491888514574686579419586256566240853763776195619770921000733624306317551329280488471070705130905477494392783681695593999397921023910980435394814447172471791573347397854428121040754712397638120535316625548433502045628619025303450729663552616838998247539482472228348386819871072244150744050665200879472297692104998383051291450011110285186906050839874599673753946344561702963607904215053458597879679389391890178041911326110521067564626980378484983862946486900359506030257455660161339948786509757768875562788590976630976583270680823929409538510184827857849836564493281028118515620127024006525191720970886998430836477176825483094377429369543013745416192039671904962083213802522587990463554039229459683670993709432581039214261209875022172839900480839205570104731562485298107324300621004188988654699024316699227044960377490281183758358132436322984244842588449723885275644874249564677852767119472994004337640867450499799614831390844759903409543563289852172420581735394776060883811869552103448100288470230609721744998325836462231554429308921527800512717209458531817836339140498319272628727737573693391897568301215848535328230833734689046696125024808074856155595583416770407668804560288414533674657616315656836442831842749643067263058222293444370253259516843501067790878144402009095875358681627026613433698067067703461547030043667152313804649862672342204434726341463460822282801830185297222886358528570765764580875019154045023282868878931661480630805696632339291088581295714122320256647762139229176675095772869621222587416888604868583262469304631569448068145006893561318045410920039217752706250429753045751448094996495822058771844445643179240404717431930389642083915182743796494354236685704465427835416632532851602656125396678985747187809445371735483413433106893108598496864169363523627074512711078165753115077979703398266604962158642914835334141022021329921076106584411493617799756028901745437859427883624393791936342477487552584247308433922683074142446518848841598364111873688204975329559820172103918971426100398799114223645297347454783938694415812754637425053010391700006343446718247722102689370446157089332735325239772207935037907691356810350469707592496169712584828188700741939130886183144433989689899432205743840791620380287722991418546288721904952996661162545970573858532043544063984907693822074534442133700046231638688817585651984560028454249660155154102473029920636186655862735741385002174256199682023043430317020089800669294938317708050869968264241375347853275183281710959981862478543139618744660216652717769912098146960064369605656309129350787042288333724013546415536664256855710843262790381233050413389028340198615413247414860616544107601067404686082654368609451326595790705592285904665024720320363221111858185831047548544716878461415147768401853470675766984502285639323436466623337925988690380007979621018244566636150634456535573134828674285656678993451312952945838374429649642094117584482883184113491576373069847804034654941940377439838735256734821180747145034892115229058495269988941216678465564275929638585157301330613931352944553662450189515330180023797991312357476231771606500858683239037626423346952098319680590365406332407403564941067660658222918712689184151218974709286191021924258848678433854726799493081813792027130515607773998520157751740116951018188230541584760073031631223102362221990092600675482667290128148070104371256185036253161739290605260786262625017434645450019124658725031061583264562088646744861277562623356117613420286797539504256730384418389477193058869523996968234664950874830659736727282064791252735185977350020231370817043433254095145205728278846208498956462701901713099244914581472011487382507386316148319914317372767609234617201397777630449075721012690381227876263262639781429388159576064849335696645134480449895950176633428829402824052773267634390199756504023996698623369246370137968564015450757463734128157598058725989395185102596125966326808989717829865451074299705461439677199008072593612936895444439697426850552270350319171867754452703679179865565975088806495532460085658602868705313930706316033824777785183837935294273014340097793508531371923840076036569802364531381293632236586443841617931111253770937403280976762428847269401896696457100324584971997846199868104946771119959075613199202057378146001970765475729483929910553487020607268138254346006545147725825201752337370009247890030310972985623150840813887090652601214453357473358094827886410914081085808080874631969567945213339506701262741378130626557712605788847037483351090641997030758768021461324977474816834376013105847695654615375017817767254480211257488484750106975136098642193566262045775671584302126232980514189026881657140678840535395222957334392354012235794229569445889159153996651382800518145203847035057467027840317406493686541407572672124280073893382417299970443410072175109393841871666456383145603672314779205870012940358893401507901880387906313192741058699283116425071823628425426649086336052801479235007503865778012355282283394353131673351956989799993292427744914074288629860858785942640712556622339899937018886970242808939017324619574557848255089524561361889959671238052639092238542870811665206471517562516857101284276032825346705819043105550348979173866222101171473853933766043998221771170958244177099469004374392122096246765182544366998172840095120926905246977141047539602333981060011594367185208952267881477083729412438755410810895023137122276962609860493708106325457669062480286680247920118256458080048701271579111912422688213324629961466030738458347683048772353052198445632949525804730847125224436016740746183422205811477387777183672778215582298070818505714225045643078413834656919934961501689212621075150593572772335296332714897514533778444393742800304635649358246031328026992629131186656908933507354074021155226101055830436067019453634119016386637412802631413085628109008135474225387799912371645557753767006236960125674866717591944430492714397042081290753717004756913624911917787090125026686190008896317358380564234698966867969042421326058388221307703265364808738586879060245731150929156098333333088744162635140833587573822124293539863347498959709386314521050602507381806418513218968239278471524253750559290351009974260288250117007512118580261897703606556489221998000321808141224128546946891011767169728583247945806296280885781311017153588543933729383591345280945612212322115184736463016293949463751368478525069603531345636179318710792728421434013282906955599901616269314439694638794762739631470331769084052282649577582251542082528116086251986144982065479460653754487004594539562115435920255718424017737333931606872394845377124139337761116758839683136586863350255485101212928827314314967303192818084709259655163920952447901774274897600130713757573142839680383539101362069024922503335119423059074499146545329047832281081336598593247491667793934270065587272181632633131463360311294774388624539975491221608658636983650565244208949095989896309163267115098264185986515368161018461440418956605711552868044194017952285324334861614745370485728713216471394581209333339532558385126678648281759670502407038442232057492150917082775017776683622314758507932479437747830165828726734552039986324387747129165241714993151546016009787647726641034352923192129579980933018242336130544920272860644925290689780443454861255234922734967333159098423868190315984579503685130698030922309424763275005314338416376529735133002836025243662930198467389333271686241417345142768264509068058373879493988755236194269815400133281211422296588631810463238718643892232148210291936801294797186565603759088564758354920384390577678401366957284873599498724351083765250084648617161717543736694235551480000587201256872970845903084549923609519545979443776098617454013862840693905978413973246093237177391541617627008545215153206641566397155127919668160732390457003046645730799044415689691464919064099225652998575112938457391678939845212015578284383503665756256835344888067555457600479187766444073576694370621298492539921730412617974568978148799598792270739965482438854004325071449636729538364224179841615425478314798160014681418706550065654282087348017344400308240461865398300082614960351185391641688821139217779506198471094005620569858119168882892152902565707651057742340206836822923128699815210041494982902052229962814304896417740463382974920071220821296237370365230734887663273037291057592204916132716213136033891625990462354889198704450966827181996160058808565378670223602851949267481276028190834723906849633847876878339946808326402767541676033022304286670421413300678025900579810860094633052449595089547774163355943276219164106454604636180914942622677302004585890315020470794997344249877438670043282765483152748064625762158163550036815816302218372949179845212104804535090819587942590665532217369224047420177892372831566407864549941676139899020641413450752378075034910038756336240622352930445694799209819526940770097982709543181915893667621698396342203195150657947346447338288408466342718408645529974695992102674588837627827962716497052373908364432366878837968268823700352575035834218186503707009136110528432571561051913386419010895781305673618565930758290969426784881726093351228695064019745452993014982164332034282749551325410324344628114483235129294866733627108597259080620853277171707602662357448280691705202027181532965114439512249722906606866283837987856295332775247618952563482305367481062484109190418902737794460204043749421176566273739551821130717551262846784786667818801197226336974165476013545816805469434212927877026766226737344414463732237094945641414474188252733497983501656837402324383129411441192693655440465461604979970621655616329823742105490224072607421188779992737346627760970515960983044141666611914963555830784093865656483673218420849276452413005187529725088973903066238574022274209959905042512852273222659957096557447135260115340192125800899647687396560403911870086037492607423036941158997554380562825332911166962245769338535997867396259864139155683554081655468071910882159108067436065749515066116112163281660020907142836593863217703421098273908516703743611175522378728010780460716437344992605146951487397321834640377367692680086556704033075526423724681661331974145835155869740584150439853641205079738093039169336639587850065868785817472802714590471768593043388585775390259682385433487716278182197466488364240366402118119490653449824043767798114705053202505379501182820401807749444445804046995121969731243335876418884209144196329948174493783971764181678791423725362869783963069563106830456390678513423617475036898237500862661303627139343798771246330311703343226641874456347538219829343544977340888016872683837946854141425437873321236835567635628998496890879811594646198220026576145276744710249015761690165281379404651973850639724901555057563998860024581434856251952965682375528478404580591693963805358215535113642564842997999443767118167980775429608305877490940999449682374525309193600258591332244362839349599743955187666808297254877250365252825279623128658729288343566296595050584518317375792320109437261384086679912304753599030783335652129355615206971728450743897405049516582899185222997555902403517239992166887025087457478464937588106000033921926277010935744531501612804004765223773588920494905813531894434933768958401222696077730533854972297353543608634481241720864689963453298085697136203622663673179835775887829829443303141617266442164816578923730158259143827472397812674459739034424388301929848494942779907459216484908956022768588452282334949104581950248372295368240665300077057117315161986591919688013685548379793723601991248017459419465674179735305369034344531496983040845658703493313077647333631739266977266021728041369206690151941813854918534268141978410959342644502093317770896415633780701943665892376769645134771848684315446770870338490248337237004818734799675041381071470900642210894289268038403966939828396436351654306492006498190460056113484738775023775068525370464776458691182585443214403374983243804776176761963533933161696070987134133685354712431777571771436259991561381404869690554419684000129237366512013436136847310474129776399501459854665308529475302824581942429525813365439897464678254013301414819106635250319894798763497703090285396385925304868969719078339719118901447134063887921523589057619149121179359466584389469632001805870193345056951396854534239906754041653909871995772995883975654989239826261870143203985355852546968201022036769605502976868204946926122230546330732896297064548688173305727438016706107292880009164227258056390455661896798713986735785185175970253378064021408937215297024025680771685610403540031996087863737871435275471415710335989122947602295541591796787455522406755416628628837936367437394564867937204525009881688003386166218799982607642823615004692955081925626414467043753019229355335668490869288143637075753893778837680637530941086358481167744549984258011711793458715322097838089727912811353483782610923003896175102901889974815310663174727429094423664045542274149079080731849411791115960699374580796081200553993963898139160529485275809523254039057824245316464936816453594796749108059011875999880190687889639728384864162413784680840739170759048275729463098501041339268229871709708787466149137032314569211182964202592706376210662494451725562906952293657144722171895491178205759661313255692951653647119307381443124318231655420493102149626323361470633316664186811123987840575911011225501197830861224037527029696802794944819044113588033104754779694925851467577750322398458289458960003488340562969650014030861746994357513295055983056797103682174141451915282024828616810498068253365484870804228451954244578528091235505356112424149652576696569523361231214201357683849937327552701307381663532091698491198303810741055392283114660422147414855876771379763320237987747487765593298384269692101213626140569975841152998168006797795115416327240436537697717632566400937900639368107962926059915139275353123771271864393121469682608419656749662229576961460657363292830908765436883790978402654033942522882258891843973341788890388914710384316558272949135277381268621873351194979065033083000039838801563511264164575361213166350864441644952554542073321812236903125014632546804481860784418117637416995260123291363718965429088741550118542928315662816893777653165380003652856380451157647421757359529235815616284574418129378615724095876302183417422152789926826962745309076849096055267268819206375300447810459181942491310992140345606972567135466146526540458721712816961320123229423327718787761180698316962309547503143053337959516229520677950262299260829314432957296164536415061950506250567985882760907968584909430547166184465634428965719535418412813906581880092463660802822452254319002864598049109488914326764958697757535101162033110544150348983290478601178464826623964267501133168274925978809552420123113115157638809406051100542854499991510470125488396905076316412221098076129522381767203280740752956239295488733705508354276729210358554029358780676330177931930632332356038785341306306328328756984293700663485615806324894589318395756657809681939965027345942486502015163240663442214210839452838986772319533652634535349737372852205086018324205097759813602123395233486854978007258197057899436813000458974362574587870748293195947606535868155160155370494542215913336404774114625456326199774480574557878948549667170529800634257138258377464491341983452521563420681086441575806647835186189415526876558779072368684766289572546350335258489776579263976693170855420351761666906260600465500677413108664936202900388220048089048979744216498537335991842216281152697364205785802288542775056257871829481539402060475284578914814632331358434344982019784176436833119669422939540827608155590251994571014751126840927599553962909236903344253852029456294420277278377760364567196969794679893900991004943153522503994791136826809362358878735331254756495355020261922603364291924686746820330004916935314469577706181265526258853767833170244226817548609837690368923337578854628067457685338761327328111926615104709894939376012323131572837459897491541509227661329491333523231455060826519972402167265678587837413206578253444236944010433270443993221663429618390853395135855585916406970679310438883581774408787184198685978850692042507885630392540804062655933224158657574981364031867674457946607538938393855058582245421767510179334064967044195439007848850411321992208594042532267232971703962308976700419717485098423955746470502678792637067511803292707768542384779531213482767385707277716407452184346850491430856117293394642199193531664213173683802247756720888415509775462450949450292629199443318510923134858245130606428147683755859079507486533378162475586553552756675869353460329415188202237999135939974543673456692507162003806929573553956647690172745095967108602909626506570228241676396252690812250517750746240260223237759224272283179017000030452475833054010045558316489324712303851557701749240565549905717519062572578391780691235652119555964329168668491135226217784801436395375587338667480520891504954695940789332945346840033944890609822962485920771214637918381798153557817403403509985214809622347278949252385299747694086095773064997425135513919481777509057768952083406767431841099785050078103802643777160522478233832629244563508860931139112605561249474780273492857528241058628270068593623083120268821571800385553877536354760593815957128092825321185810204505020613315016181476158210296001677300890372403525700989295662028100639643738915830899368972874532678606133766995648044894248271206143384157681559674148245459973421125479355228863999397157922884157760258949379900066259175146346419224372208660024060854304732575638340533841576113303014904735915403987527074188799084475987737980900565731185688738196209104377243166306887806647393588505520408585356347362606075667543961563930287882136239963890679914944500809277926341278957767165413934832017382249429863278829805999423158811011793913240011819441328572667708463310657390816935765488663603129008294482802745155187415367151515254479247572276009420992194684440087547139212974860103326658260473994579684805159936072999692535165351516944319950070237759668131483430851979034491436444695998705332960402736368952795584198184774245659109781775874145723572958890123264211242049174649411764002421656676181915884644972542135043744443214556667056925196507412519258439308551823814012207770990141920786473999611832107210580316331124540600346871929598029660280827770985804907976396722488842675951284879231266884026332447992075334469160795540256863843922252019771027771760122972801001144514392908741483647373630871427103050151238330486403332530577184953947092058590845460411299591142210364852119849409926606660512355262794504180416066782453266880671033532176914105258723755216086908314658013641103973239808465489067765597454949309784339988866705997189142852259696656490345133655539171648146913944874328960779552681390741700136772313189617352386345909160344633870547519857503997909206651775052272124877373942287036461606831827546733856051151474590123261008299653927746494266379944934631568830332098285421902535499108808408568923390513333353302971090159938472155647979394929046408309997910130915152278649327518858208842026403990559698201171371510644314160631978699494568405687626261048273635472143453441589263488420990559627575995187167667822419514352863734343050651240940161115999555761454885102635517480263541669634512252723109112086062021779755087175946919388613519001731186357313775940345463960576172975898403584435360020663106761032018748412796056709923188223075561658382359935462645333169004799070547735612956577282123526505861320798968256806624619303915316253744391318466220049497050499053274497352909830742231229226649816386314084525469107040943002758808985743131439954471230075092143678866076733318976333549348823094661199752475650845239105849289748393015802048300130038798479775189442539323979812257618029254942496733393617333743427849580091029483251293414773883813127887344834989627136435285929530269441529419446242347003877052033955074154883361810368511616908982070329213397773407826005302079095112899600859256888921497999734034824746585849211436177718225906346724938392505771177368315546489069845809816251557606702825782260530892557396536468539689670221327867904592832789465142223494065529782045772693913581179195881696292088301523053221539819939297767832827147563043395256687076360123409297197395127556561389076662775711617183080051567107665946757103292002875542021039570899806545864431991883168484517677577022821123537708101719024751661942420161633330868748734850014171447291875626462368275600769287309920988146408738778345983274308088756682831563174637742401409703744859347481120776540529003144652037545420180997839491041975361292086861964526708531199301689167463487736519899317022520578852647671439750506588176423452491701640975656888735600453666189092842144400463138111365114522844875677581483014408379861641027616039060845285777624648925919968887330410812633329062611409386866113358724710659418520667883367467409524828411407693615622470553158872232782417187842150235527731041153652618857740953118425852860146492235520500740862641020162220892163767464820390330795255281727303521674301319089562332306267314164088723271996971779389848981097138726030368352791358395786274130856234071159605670600204038480851695289446537794752664779814275900127345486918558385266439925403615083739581943663009872846781885283629103943449833848706988132072107580353164507192419598723667470447405564301005904725069343733553812853565836057112957594892394594787348174450340246117981349130880532524003617473147707704467955415319053125398723559677563056866073089082669687560377198589541405563972129409890235754545562323709261085237561736664419326411593085664228283197345032247876916173646477508456607334858269854004478084792024532981364018572313278618857451751595372609990235132020071723221237715092737037090481238289545906545323843811184250206470303126720506501292514020715091325225967545305426292641997784530065744190087768177436009415129787165407678234984781492456504169872589261457886701267221115765358761516363475926028849012541321614817522861647911130067376422550338973427518792571230976136648588671433531757647317341461041011288450923400835243509335959173684426981151739756311352300127184613555633212376735763466419443557645090058258226037224112802276270444177568032261514050100149501588872735731965053865033418146190227905824748849889847399882044745089723782314742174780829370257922752296289391786630888879464030750888520344782721486107984818964203596605417680705632742509863262342903761696814739636570331027209860994221851660745194034458081123375126115486522818634086297495442404549312585447908803024498410976819504829462507893552820516791334582023592916477341821266487770205810568945939189635258436533704073758971577270824592596734943366984754517790325586770297586370711099863856032993021630579842203556424129791355247473879924612260082240302438224140133040493327083581785293205432569443351815458204380589134184996131538489336514087525736714921956266196909955147593330600374193458946606277162186772258264423431129224105517382589834887892712373241652016353125908499255745359063345184494056376437719977547769400932482178205358641948402155840646564908060171466832817202031879277462337334076030043423762828802923757766570706455160061206088423131861272615297823604370062357359898353689270007169814034002059770028227629487294445238564858206386759356703696803457267769964154168226734822324940617125057927146142378348486442791038958983779204875267859981122445902761656814518903437749899085708939883860570007919212441990680519918823172456948851871796179514738539774591160285052114198815465843248408853951990197740441775835099534271072419299357164897439954651469377359295076183711862246774675618950894244520220712993506749959448459996694637547556706514535234034141244870754315041080319490677583142897636989356108099920631711884547560204206445076063931986035293290645994810341624304051086659870275195366472904839660178460436264515782828041435301536699628348912665580281876901782266555084030816633939421920518993803301951849301994363924734505778340932465088192359537186288911127054904457720305600664528502972772448083327691006112630731199752529504199873313566954090763562769811760255381126594988441298428474491204452775504450680300680836404770241790917494226063261736761093886838196668112673133402371351800471716577288348501727523500238620482984776780231287238328636680771996820957646977380186072103653069921033193701816109830063286918442019873797819619449137182859785040541574380113765046692242112026543174703800707712262060718063246612741860738410790242382884135476155366193819138279124834791901894189823125185254613879849161815599864851406207600162321520610209995628979734062868136716494793560981665921680197289377280381230869777632545796001039831329543784030570201541259862895775544936985274020803916900029844076970966452229960942527200301909662748213840620679182662068305184643280674388161177881391115612230656010831256357538803181356335730254082082661888940040777485102679210009271222002559908384145115741351381911389874691454878738991788176119331576350785413965624210890369054631458936794439856829494648912527981835043813292378495965025538890545157169123483326894580766182419818288038125604520257558106722133705070035620389340416282136271401158303355499691572172871778245339123499198816629193084388869500611065845919716326367533074008846186409963552137836028251925008650484813178910851983473330733745789043928422225147961917745375015836961785028041071742325360399586997700708517110411989974792844594536611149652251872382734819755672516793248627675905763181078176262550310307571306274260106271058543254283082725366895180349091022534880347753613013371007078766590105347522229570301268551059740443404195301850438749986362139413822304946458595061518603515066251909217314234381869305096854825336801020840958304291153241019718707924021410234510636519998151578362252911543750509959994226416804619709380047076111559746199701669239357123893057299224760777634906624102410958935452358960863091641673973524310453377396424522076537279522559667629610638797300719208010495788308939514790450454902569535962049923534432553833493907153866947708822616584046896769148991871497557939670786676401282792515644200126455374754921085868462015253166082377255180148789432890502209148186215946896069083849348908576556347161497972080283159238661899334068543384542298133273748887410096355133728001490742214108936490048748407554693537535510852462509231012595176321832299988375040816266959439327904058892128287122565584974718893948586598484968508104024105325210760056871768151574963521713589026390073325001545994730992591556824245219258224443259501784533996041497187690014718194172589606844852527456839777792643021047177184790322922720829039446803130055182226079847031359634766221950570341193931591447151300773612099960964460670865787303801754293256385048790634590535784857863380886739569051892468831207393037976299985089582849965008211855421009242240726656682106299556868964917735914477456866987429915137812409492497634192385537718790147095451850343318433082781232559461120373431339628222642823775095461814446978299532194281070792348152339632976703390449079321471876893768899031211128432037129300552146993687805259664401548008076062287316461852323112543083289808132132155731369348080670653323627663915782001379856822615436515349966856004559101162956518848133086635268501031105198025095138376756226900410030270773106486012201670526897866014283397981399123148277950225505471300043321049184999040296345957677690378282507472247110271027054233030727055883845240790787658185133106537735632682657960431969919262976153250676352957686739557189740312651907833147933163802134469999536750084235041921077487046524375536109778272141011768634552391735838338944324643867697356714108447270619235718746758718500742902491435375434889730323480771567960148035240459245123488474852239763507271633723810493938620663940288235725806743090223578249893298924353245194453219070849259257925107822419466935424281310057328278785822575996179233328438889700413934013233184530422218793005598313018896690994965630255201013078720067651558588506645026407396334816829100751674800379652964485974461869101516099376286353954663556530667932157771292025471850811084508840948499403254961535658432336148728993872789701475363559283854670331493456810818575743933967552212787003691561541317684227938215049379443275493629044116320343852726620695443634870709150546375676742859252524339246989882604370513077922603662902078485251132215334536056158234335572844325360302469867013823852177534389681962379799382376256245946834632637068970830667175873288836557632874683844389284126207373389368576783206322955379538496977114909074502454822318765185947607185285075117627142448947354196050695641676251341770861515920433177015058900919582882766478192801221092867825668732810099345434042022556306289697878954528888629803698195202874493221763180886766244877202268466585290803373141422023465688046120509672728907532306684778747851962877956917524278614496819071690454479917012196710423369737055460229316519455711364131732529294358772378956585773102340113000001742286358635057286794938561100148406902354242413693115010005798690493694945810622083584518229287704525777005069472617191050441142091492399549680354194408370723781027187236543011025503770908099398758853801363332602177127891645211666316349225407945246988393696985620987835731508795833916028822862445937608065176481199915138694792354382173292512743258873785468184838560892974863027108052574627311947824989629513094430964610714707266141417373599826126638336897143080638177444031797829279522826847969591252208914020670895602709941694960556777420801320953680179106974966178451256572718020281867887917810229373321152909431272957154339488976700582694522335539325077736220008832816945887529228665138588956223596383157398467036947356991807879971251661053944689469301815120403357229325413044188675178867983461614637541536976220600655617631209520634533756381552216068434285455256033135771277803069117957161297054469141443015619059944101853621918151026087965154290866401746458382780461135698289730120406371572843210407021800139577948877131791496981363101251652198215442573345075645899335991193507622330969009989228807190952075526492394144517414385927694972385737625017526877261852162521449316008620848707580580401396530986089197406667992068508815391827242823309270548744512589767091554554244927585703244829935903449023347201707842789350611602544491641544851491227475884307905424301459437038573048686272659161830635242182695547896344934214913587220545510352984153669125259358003902282183623703450612751691576359958904416178927705647839653439661861064798035282021639632497406640685636513131696150617947088592290010485447485834518580407728749963399440412873171541696402289196149948463688478229698171793196662231525764114871183780182626281256939496280025337693425791076437955038963556214370706845222376829409445885206503543996142964144570239072868692868526227475643144618252571435537656249022792756028879467211583845210123469549137352850684816108028929437912924909733204881315347064923175305330384105411517053525503411357522973637071452585282435867443712217660394525745679322043859616055435921430706301364319407443857331691533825182371669057817455727655212934293597747575568611433136813059087605475987625994686723235145949659242623213361673849891328337143171516669613609944005712228240583526842281449104411079738056165982048443969906581507126422461169611820611906650860341470835032090834656845668552208315230316209354093630181069787049523020486615690058524370722656417857887856515068612772159030238211621784037840650407440244611417125889122355488731205709326413051316101078508580963271564106548291342077633759445306195162357839208196114975598327791653890545440920230863464600887654322663908790779830369577246401037640504976696080598619936267393701104140646466382356121486299818304621466114428868392427610544841633088199749023087614086957819915297309242443583071013064240292470250796827768513816149700021693775190254601352195971951006140152910847685654152461147838350718819288776200907934370966429687561522633570698060813783043443151219725231600645174550371992672796364041323438063001438520407097851020737262090409381217992446819622590950525499992813851549784344991063340672206787090933257406572774950067693736797853190498065705938227656345891396597216556804140120746253763174290807222145339114369638122956813379562002499080440505952125951588708039776188582969978832915954260352608804579841461689491785465318527532166180352153027768787369323998640526216855133254231688734732144445626099270130794409867777783261648839507062142771503142940049161649669017769160852835612854804712882977889970120299438675226394390113288884049781447569059200269548229567970585022160462335417832801022712722499291920005794163118951300286382460258655295202257340831951940081287722709591701099106193757744010528150178005023119307556586798975235536959916400472226881428294823510857092285249340458320934124874958223241001402412200910614597014126324726629643657842377244627247627016316056310192275341647962486265136964773489480198152574358438323150147114328829334363380951633841846023084645380128535356552185181327221864715099464683570445840445910896106578506827047725842981279282778608963809671643696937894027020488766390441219936536857458749436487889712791127310718423433196182109476750290502912056611750409548700404515589160919612720634263121226414049882332296702384240096932397217146489911317209418422107188539454675100696781938865227628430442849005827134627031635011563089882831883138608943229136309689412350306993516114386748809469267181864628798259741501817443391406807587086285307063639774617981317575147966902177484472558299763932196988552694667084761670020649287998230581277303959646228333875676753700002030466129644781611490586895767620488607274680985695861162583230537640979509343885476243482755946828702146285464917147448312840559234811392745598390100636526186067409893522320580224286167947848594803365408451389333439533636996070809142837048406759261927548134220380407372039601863523123885287020053075933111676384101163811904901742516807363726682182320904707983797631617328084203528273303212052167207719268974736937326744630178233402061858777138470159502490889715017800907073515644138640657122225565886593546667661153399536850645245292989635489084695460444184411671125977327747921952470262237834286361131482660882397944919798200516224682282405795859185385058800071581701828730542271398297164958617828443151892251143287059833381001557995455287261410474962485351973571463899634984515201777183004614239112419820723735883870334219087902273619166013746927827445274903022972651641534835822084739889755682599507524320496565242316264984751299583787378377680437120760644906574534170742417054232438222971638984796391681303051528032043340836451063904562176512818688037083969159116493113087326286736014432291136649923969695796028322799438308082422739486088141807338224204440318308116947578429054518729227257573391976161443225230470403148597674011980742730496874537091951790557335317131155302465603818329848426503279890886332581303580208292633169474256124376373720762833100778491129689932430019070215998665162279857728967094266383764768105908766128428297356833074698066740550784477124790427736112836553699393663384583757890619018651146690260463684308419987727769387573865806710477218962448431644448729739744701621525065135430252126313160387269720197839912971656132656058421010976028184411104637257908165121834428482999048304205658513322404001727501544752937974741786764495137064870204403544274765912567221714613396131197227226732951004214524368917437846615111909222668477787149349537814375075000022522580016024034821890867077592310237493037179007315058085885905545132771712350732588450354550865052428649898839325864766388331830365250513088597255102082670278051163482941840243743357015685253757326031815098961562889086436144945400947987099879650406724448675335312591910917467394536938408155152477687294952084595469429312917522767086547779598543648231113702474132941131813621621603703325772575257386912564418109801311979638231388386334785819249387374497657983258602996560087632705706295433282854011626767628121804094822123278492748000414940636741963768235373326413665570704895880894943577195410599936914153281402003166640432887990432876461115640096920685466824420890571052826354024887438483625564642392974292802406314489603309340545692247483892599559185552402542348759175445943224908273898427258844999602578732532866496266102584195698323713663932364133743282034759484684773633305592917109518608853398065624841912223015119068233478933158606263546590598124771261654120093529141526880671101337562692507081559067724413117344607289955803742417485271543816654837982168811889416373109476624386339453882371866727860742059187963775173243062157410391384688999685516167714911347507060868774867454431866256534178717834372793385664872586874726654380083363671402633021145365675203718813268040417602102733360594703054258806839554860092701585148349015883225183127914583955610505379293869916519058743061379764520856033244891413956575702473663574705318747863726112548385518594968744718011016736783699313511224959877013447077645460963895588242230702750056042897962970512707793664731583346054994335505390756297650982977336136100749948152057749705203605949610272806686961035117326436748313942941452178312290449973588273715955106104064396492312702545126119788389093153741344007601270810817333612156333313493030637928004116915600153529389223294375712062692855773228611517615106920466959590062753525811163903647259029551388615041343664330501028428603020680233550237072773051718003684962407156657220742498948957506199905587503415724614379555381820632368220159282838998484256191927766575164606280798102472474418845834178348156017524453972216560017901937495494113790483759535270083230715363153368833271448667706121697479299154622690805833828087464219257470520535663097440390662616938118105107868064309551359997017764130316057042998765229858413470045600486295480042329430048677019188451351459913931923889261022316361521574654682463376082128764452473518847746588949429985942438109409261592456981000229912117129813923960438202069354736050389623178002950114217836354226071355157296193824598907016172731768722788448279914873523813550018012223886327877072139830400584010751459512402864220536983700768453408216892325834345254278867389783648703842787404975090409762753304812773040679058964610947037469214657780115089014483836688736494088565710881532916572889433727811539880333689370823414503088081196415881982208621225479343106459330898156709499990771853199243688670556856222412749203650740395307319034995849219411140746615841554141816492723279904088970588773793067556228017790386672579529563876795074714880167001966903744243234327494733962833311399473424767594514068018963255315392544239007530933958086864196905354001212581316305748008659083691552983096014192348361294036107808047020010371596732826438506424113172900970388948783697437485199399605678057939888397568257403831902974563253692194950734372534577646226213871046989342605484192162289399101393495153620804594651359142218557229644530497694566703660189617107583012489166520611816492901369882283269477435485212991444835002273235271918766370978184015162349677672411879217069104901567806464222111257878148830117773692148371518496316472378351823619751825151860772265293365959980914315529414299767026931889185958751776808544293796472291634143955776337778447431309382620106520214393032695182289971762168044618654495323210052817860354940564274183005254328831894947491266963442220583109392461501060994896995473053537522296060481511897645482048697026238556460646512321492721188299100077634598278692489395214483325397610538835162189823741553010372908232832846699537749436560420141102743606172949779017758681318896970233563010589109892252144914609758802756790781100430648663220808641057263214429268173534408180930626725577455524421716334933405044351929068775751826934232135182729055759337999001217684412153702631780773798235882724406910537258794945812861922136990365256009966064065977481654194957535055050815382837286606333970019416592502129538919815981593121595018717966622081789251471495216387959790146068604302915673371152611273010592329271769747362919413437707147106109957908446349546599653011462042333268181942940177601050056916071558094656662577733561514276436145699614801479493249167685273358747325137358988955020607283993335613648588735222190786238188626050785193002776269108999334203092540331802872468314897155896903254955464172195876047537817943057126800378852078018291012594840799108364194084848989528204104744354961654856442003550485614236107160152133737372455023144512618742900667836244457717384783283056408240481816340358398860147136155973082194303492832914162665092221468743331887049624601087468512112105598115006998940246028492700125037851728844004022261852824300193823076522694908022094110713455832657726036120851793185797075092042867186199188430854214247030582532288062492585149463700350840053830774710351524903330162025828974622638275129628728456942723258517242120410870712622321899776396834189531302557452833270095112085447690925275673961086461423503892652684000264745396904345338324675906169271175205507450373964804223176743638524413405476732761722592536561133148943868233770975335355746658462064228124125055941438816578151683070415789901246007252994263192634520335171586948598264430183064225877028881748773571035830675819690587534317248849805780773384864711322945249494228589400390409392946199695732112097875093147631334251725684097090816158663735237034597117512955248721959308232277971408776995312117383927146820427814452947590019328871097826157848789241392385001243133582903072082832975275627618194187321220701441946174969438266469193648815647493208262257431486605873479052894206535306849570141040062997068277819364242151167693666898268168828735795182720358236870454276212142716856856461546277783528561603179803443117637159953085844007800393709277016210967111201152460936384830206713191970665744770242043458488400378893605203133665012110343728218632276017414800381787396815935129069128646529455796530131013451112850879924049096402404725304526160486464008709752630714692201438231237674108435025616477613833850677059241765675346186242894789214679965079091085304095344377417835756123141231124173660448734560783547181161163914584678779743218181137480691814950569768856230742377932247999195600604002892234507241634087885379901843984978116888067672231418859825186704995822439518740712013752624621661510130561745243065352420845449880696333366452493633847177021096452993135491099752266687863623374151890348907552758911676122564594223909336589051205977386211144073067976017503897501786975332660436832885960546362838560548284791981702421131984560271080393495227795459503987652782036420967128881370125679681108921094260064020006575289242661062784001507212748735518331028087714701633750257947257306896992457886600622863970108416291912020737173816181108839370904999390411857769732537218185793185515341861865145728365061265295137775770026538494030756032331976593212741058075047653841413401789473290235142172602381284244116379565339974022959139939072399200843924949501416716609518821399023712681664525686970733036472910323165913031829127237933405481293994377843546035018427543498576406833619470962295818955035422850190264619619343755429616923723199980868392533846644351402809118284430960279740105642960445785361423937580087299688546918608036963993937570124180045529927716668553676527362325697142605680151568850311020683792253063879142277665841771772636479710610239934642008369693174463979098746931176919142272409531472034808006938196332798293129275324595091768010979452284774758046513986231670846332112686645503064515002990057910523695528289330233418296075009025490914585502496957410868394352448126940554775004635761543210895108932930494612957883417790303544027556803955701358260647065413583770246746100678478771097545489278974464809365829055503331990422599140739011049588138928061938673778575541433482411383446818784744031014661055957357471933559031868555308016122795261004406763312640713302595145154446202136880009424138756457384441670207798896335217133039270786508851367746236575822379082807219106015959134106237846691609601834703849287346591052034997011119368820949810415352516324172158339021654751991573627513401646763488349128949223131101046305914402573557034508336851323267087903625914436555549918409565663655096882076398757365490466783744485782423084693831747178392372235301241232267870957095799444649424442235052269232519519430725191768969379686636951120169397392847900725820298703648093076827857773268258465750315986719662605555493936619312991440862286985649639138493901488923092903341783855608995353477652710643233447744602646202072889169955928807495716925975750440897007207210068236434980645991733312996286370426547827846271471846144395339834181705118598465381104094847630590501599662451132810508028292790942943889569249775205160669174954167729233302261331698445367189442212726275197250816755397900842729235722674646364780890907952041717465859378879913189998683890479885830799408308411865237850428397697425643768529112510376889824262791505658880082837998540136601160551767585629759663817402452360288153148395831598989512665606596110193914750987847474066746627897175011774408356717948620783422324195705179622254275235557050419456675722543915604133264981606377569038160996578099096787377389245685680509079798754502338996843031795743062504943453045522605266799149571006081915203612147605270677502574775329896862351203399543473932690191879444551566427261897870483140525000443133572827697480789500361622098539243527585683372630242140213094280527939624326748548110797685255448219380601426693082460174761432248528287008137382193632085793195148840027119462609888537519519802785992009198891243721350893776653064319859003310435966634364907438496126092671612433943622400903365884785722230935798253794129213141491535141594921282405561003611705287859936639653042503286704998977300650829756084829764158580994742498157246542425316621123294820742826628971326057709687773192490171500189456057742359285958942013953394559815496138668193301116161370141606637085801463624531090709741532149199681970848416530461509183621134468460508279168198999754849883503422088905652360294176472971656375447728217288534891378355539342713387255828592164205694411074226050806846651016535542543894387043843971612138646039362219143701935471130171775165890731438472750823750962820358662197696191052184438504329061858370583114729433562605570322426612530742407282907995179961313409454755167507070487266534691325492261071322983219242549576388397040395938248024669244012516187232426453732864217226016558465192441755690219200525131701749218450060034222324297915809553444858397859778673008058863513220867039567508441553102346011015435648603461995503335824802222884152627563225248350270060383714241691933969416787055427449729994729547104263792645478305809627395478207706998497508476354879285235767110570845340104256620093871675728392670770654329619701972737696311184119991141251616120991284257192985775179862813935265494464439553762413777106771371425688813074356124264618691233370065945254884743677167799932653511003559720745858182382100971070861083823673746501991266889491573802927675066538452598932570648057532366051534513771266214305750811328325725419602539208932855651361998391727037073607899516128199247855850007690046585859219752316340741839722148228775553125715377139973691311002015457741676061114021107858180782097537777341613690457485441502905721287545145858662979349599185654657475004038286707226699071541525496002616205787664764664762942823789103684124031066941935102957460449495489941802087158492644862403167706659939820675824252073412249136644674006430276021491291896128751280417281394271489746849301004884609709188033621894043192002191813122468478124079543239587339168305310942962459155971718748632388827096261837658448878461848202352939186338322683137028156465859571064652164996589073118080973417931044964898787138364767607100564742252207594945564123957683585002469640945586682909472545270838207362304667787850586582789228538133798452572777436122433833742093630279043969955229701701800311234955558028680153064624593524417150197008559964764686205514163402943330883493024923263746091984068401484383424074793922126450457113850865794546883777237326063450264548822073082329304549432071293997023432843013799377436870084548470400796190056820593271412647585699594997530533987131089271486481779784728799652994343947698733701674503447237120240272064292737792341672097479206618501988815568407861131079040099738799715858608645081674321665174162841965037298087357937988869601374105771316247644846997492043235569605089747672639725251936094674480371704045632699843323239210743761463870076865169637486090215338311906928762259179908768401509483015283482664760456635736512241953135764506285925842497796266216373084697746570506985984343554540519701990216778999959139180019447361401435993689779081452017811840903064404194205764928063437217752079446439605336190983508051446524532084963020726626136001981834159984684350788295374162143353762841277464313099099786463156763304938828967442578653910839003422925991411837179768869054270689829886788754262074907821689997111921180492090461554166125535748297797531507893529504929020633869220916917484579367942592092960444524735648738072089435752773004658414122162386507651345388977161700933702144482184797635597884103900828608948069302217625224495497556253177680106688825216086126757857293590788790921022847443983508478631708123870833547660755931766609997597308707337218685323413280618137041178307127179863007566499481427002510446368022184054262681212440295715142939199958406954496807373229297753065857461083229507552300221961187409555610953272970150177264267085022327630077189241614022781490771944765063485749509494453256897212153297484248277349426259795081936269250957777690328429190049528394400985698663242685693308419697157848016380646655143922148095274921087404193775105462549967253287886630647085463375867903958020609383841231479588618686452124693321078991343246940846524406724420990125487579942742807607367260861248740747040826007707520613984212654877880716397085157537276882926745777363334370745195330324123252013091588871832667417736329434714447082691390542061785853215111980453339820216460485254025541504400465663886876692024692906183149203994281965924178914857886215913401584529408127596060669954911026108340800355345992472527007021430388766666656501700615071989580120769492738597740488446479489768684876746347749908820019006695088328458166775404511310340069997310110842685835416570378116345498962112163817914158714742044699622958744255123327434890632795392693560616202060594376126883589101216381465402709153764087457268451870264486920646790731474851966674582342292609548431902488040918685268257316112643658265772458867509610069088873764753180511711436878771602002364251934942419283278435218040507911577722733554334033810381198478313093405373450334863340659201866402748606534773725686689086959136146886416015356267484955230936055856884261367582392645213814554706643260696297278238060873831967673531278180391001764615881847235273271156383952592051172401957949032079337437572970992142840889480731659641902210107235042696077005527304739050071028399446760774619807958245771329413087448865052751390209199476405453574109277304270945994903217549526134336668821427720463725892446788056709717588883986044385000564984991814623959744123425262931133274614406843196334123599989939545272039978240132409198753439624331917307929286950116800624419658933921253895388941789614637590379278316365510469191424320580109853692876641478207461701634402564396642511805212838343783562682622604464128943993397510927905103296168465926733795991936854988385266298555881284299466468782644884885781259861479746764847372515609355994292448110325423475817101899465693178893601912447976660797962013931826327862827591845730081464428583642211130203516903848906537561710060291477089943595843781809988938769304917827094412998133962888781227614944567874919669989896023464593841715007832964432505996399489446521561053047049279995124121973438657013866543800600849116322136612776799467026038840919027601914853010780899550318033334881751153949248282951111198956470618818338401878925165842951743476752342433779370447892605619533007292675271162749803448998408141618108714655153112151450814548723215610482514872273334562328911904931141863563948339653168514914312468871792924947860117138566851903898515293861788192616143257364281297430004313292224101599240740060421116947884812410229074684509131841822514049908568348073165236776944667508974935770140862184152626481789463960169007792514079114347453900179435651814446106046709727642286010586952323459427262463076536478367908023383613119194777464355800144044718574284141603866905380910772092122960599230664869438905025996222537837317793896985909113352812180888114275866694929455018066507047157449025525338032263137123985955899187568244043582638778329824615912063816603399973864283748897808487232638333099544297576577015475592956513182003722479746204327258666946307508454646424373016336792364608453960308086890490317830040123438846905307496189225175548804594116647630800700607345673774451938251715278310280941347858234542469890186481990877719257927574510084787174778323933147009062897486842221354975058159135984037328752011060031143884146127487852781128541969239326002273396788253202478008419605433529408040989305433061705001368946420035764705915422564739055633228275281680590308189449810865640620980643601004295415665344107373004586614499519476519695924356526322814893559379530341566186912922655859511880225548247201361597899826156619268828178611055154278709500994922768346732767905095798576356114754823719017515894718749360494411465821198857258183926010702153822682217084191320239831721013069570869538586764633302313201344453366433967733834898150872446137365002705084297414699790304400328193922993320948309563855898093632395908015684563066116084017900678440891192593917639211023920932570016780201509234901826914722697166213402672469496692804701723837322020763988022712196713007118189418313886480909701678587459862585894131238457742334948991501451274485042235490326077341221977093546480220999017929568855014996658413951954215483657235744009990369540079094727617674955616874217289875563636512864949274929545963773803739795032764726838146870896342515823097743059947916210209213413808855029571459059421545599712633606119626615616803676958515155630973549028318039392695129687447012244869754577407317826844993989295816878376368513604385852188552922432218895149293821225262744337626922158901920727708706012471785630041473403926577224384219386243460086396346661447664981045226806420635631010418978001535081383982398719020422645500141127719521857495487280580671421362290458534455803983229883093494945861517857946770050835925069445985959289189043903620375538315453878531061322389341023271952802138291190373521073462686622828819090562274102035613905237412038357559806368740316712965402809326961085662576879759853233915199408798422404309122530351482182598229174318987718576179281390312676345782401472760684537664283023967025048699549549763445306045951556699868496581664523013768267446594203286188543449259628627544858317805156025192255834830860563135907944893950674737437593499404321383828937846153754733277642079258715567403862090988513277600604011720409196444516483668504608257610970931807812779050654479427728129603395021575376203449817301924073281133937469177260918491633283312609423263925368670687467883015768453260986115745297353885136218813744863644218828019396939489598060280489157051115612203089391118343723038736131719363079870381719363093309828534781326447670748251400652720678220318405533760366451269990623080399081643727742735249851452555975713560932586632151756000137572027469337007676566436787426679073773013485379510964935838401208465151492611425789346784267546810578929948009556670848703616498186272118478001862190898256759923811662203084928230052621828848851885029418385747183765364418905144260582601603799626990798505296481230533791239745873658217946104376835687547322773879473455922551107161853522645563131188590078277453581520674357192343784276908721783867865528918834323968132744633551800912130396840638705317170069420389984141316807558147738578957368725219676815879686153308230988182398235973083690223446051526666601888438763615965210509457424157209198016646516160242762047802620203735667066209878430693106156139451574182209756844772954495228209578148935947648290670479960684075591742647489809953006318843763066924300337116991712700379738098205930129688478805772242903008021459559108891149282724833459036483503922605887547999957638849913831413475672819548627851010657464088806590407772092378006898742025388902340687269892489140998717675464508255169133028819994930672669392179861772840203941672172974520117627789487708530792975093751921407010626670692509941934618326110506843254828048160925323934577037486572544125215220465691440333997374549605734855439014838166282610836397501091573147087713426308292705597357298946975514575153564349033453417333027803899120739095104178234210147311574607726078169098554949073439319562226288418451770372855806050043712098814361670485176823359525729127240612634151907942511369417998549779936420454095100902746817653443430040874546646873238529374415665032935546893335541358221476120780984725980227958743632290972789848055657904075196581027655718240498886450079149377716292811786143731720516625837352616640429480988838127078452742128411776701070087277829205144334724280539427707168691433709510025355060889582778427961318743694943649526022742483581477653520287211088799561506764231934269209755500314675798409159624673187575920734967484754603983227828245593123310524595328750712144821346674096972244300421116997555321552682052383251634300344867507819053288301499799246561771071746305214167509973600807100431280593258110000258147775962762278951068771725135539125638416750262992565413080250302429728762360431366485797671193864902124454268224098685863582622780798774623483603906033804983774288394470043400638219612169275719461699669204992317146112509619984656977683563349641578389397482920838450180232745026578666372785608102952900442503122077848030242087485858936759680475007387767738568004022747335872129719540662987949859300223412118561298432308884182761165479210828396542202394059397437260314114604043586756880636718484118647018743373392938408795446226960266996865291087625205821149599425385560309990864671184728822665458315432896845502021166158700287351171588583822097901291181777216978207472027178389785675850516221504519692742450815936339094893660950368675334838210144087484475303650858232512158027348427612854309475215218849589220312263950283219757497773954176036382220659225776776327282916128779757382749616925531764773393502569514512096046308180667227932307651430426942412484015703692891260161007370508125346423365200477441639430364418979056831198898123732140325776930803326893723780825825856124969913944903305766103175052661023676669188989880123645023623962941404546231612501268223933097744994955433409448914078272243469602699257950506195413463832414502081485573239353802400223992826217316317782342170660257051409207480137618740821379280867867202324894542122955580188142481417159973248472581334772823905924759486326175129951845318440756226745732229372958101730067594153985502005000191502426006488829850230366814828427754750549449915314671105110505167825242321205756228612009558997549167296642895615734793343114987361925693755704922276420895758628913110296497688530525608897451407599183924139474984618760329465025778455165829993071923937262355171976417487045992427319547248569644239939973682845070595208933469185198710610722331339264932340681924116138866347531529131999820061721143401103556117700329722621057222834419240382030544230021143897405320224069746316671842659330321839312023664757655535063342106187642925846315967572046907375361519649346296914752937451307141899225210114873168598336740590070773194888305189081554529476980872893863682142470170151049822395539964237756758354290573863006142232854507150055867371091228801517328654107579829638898999428244730593528607569463710188807648223186498586488493246258563058813761894032089563810667840878992349538720880902500775197610115143152267756400716544448581649922479979889999814484769356029649026638241875950541666727934701300545698624474145664223842346591964549990628997530615060400340588135990441844225424534700170535807254958837437264502010665781410982200380104460606381084958558322202233822690715670232858519833321211956116562066800962086594887757751079659785875633750755601252306239950075835771894124605123417242625988203785971818460759536998751400225362175087353529723468874483658143861686042077963039022085222790178950208906408564550696142629394140825961337817803432802160559140204452114243367559017499275490900900050049862873975312713944137912573403329744146139922851466609850381148081953543008336055365230855817652576661627191258779269285826058582750403169930507124103736935259456732325511790588618021577486421922038842822989836835280874084897543814567322316604647534185369516129601171482145760853807054926567435370521241294438126540753999357969740297424356530674827567734455627434181042596324117209411438307765157004086547306940063861265123372019720582060398225372235351831933499030289796347861621675543236751618923718613388026560878307560508074258849607363273560871721491061517327053768069574957060650881816206647372019608986900066175349328136071479323664321509220415748588557943753453088530007780212738175148366824743008871154047309961380026797249034610468728080808254244060531995784736133458587974162518990991273089907051239126350898744799223548150417918825179631919186216810166332976564227915350658219040098818572371358968864751563636002324412652181318411363489375883553699731016545528951262262847401976759410943762490696332157201151689950406783867403251380788681831777776441960166383828330395648356889826452002620699863070642815178141475019345007975937365583123034569566576771456094009974615556782246400854477113877033569487113806093494736888638158156514932929939603537468967788689907949949780297503286301053563846893475153649325655002911301627671666640463288700671655439852312542807997974120047026016895787010445766549304290489352239304963461362871275730426455415795788554918180819189261619553368722114470845431497405444052312064374114350144977181568947348170649352913596718666470387528195664206293470789829970619033416379525887761429004255661439337177672463622358498857283018421467604953935144880144065923192696508796589108032487919259199674628685956172559236316122832873727715056435796131924057885211824030308061016008824769054850376742546958978144925590280738977024214533796145237258704107366914346514046196563664517522186698244980937322832170396790317731825395977209291384790149401653091449039029970817723742611716271266385609583085621586707109112587653669856274536628947531938574108293656470438850448988189215185994845418711006254123484359058537581928451879066986329583561020760323388766660907157785434225547029781477984476667071772183957185932500406949038682065851805831772931069290429010298914099622474103947624190710190882074966575712608194902480525714502851404463676930147960080066746225248073925375603729798398972130804275842124770826624070191512021160391392199896588765237647785271150143843133807186786452171330757426741732857109941454509282240275821994133778961207446750353991445358268478785493883098599142890142315830490389569772048134792277968131688879823039179066830707902352795439187199148450058270278856683771921647534835705750128866508583064753292499638673594635341373832096368915141640171096267622215349879599574714199246705238476777576247776474065443762623192513730684833693833155726628611178866307611831892973435086227421749665055195473903518748207873499588560545079358464674525312271054398297917348496218124740184637217972974891230408669531365455327347384080018551216365405244432506869169916498132251476030064221069851511453237157487485694765990121169444621760095904825784502988750316136985316505246788729788974908835470219239487095588043145885010191748853757274806971413454384279459893279122181297950184520907744071081484934785388733323724068385475207238246834938181882373856772914862899666959548324478699777845610527149252532875404241626884819131821135596980760316802717886089183884807952485219674387234167178614892562789501062506574988409369956268433211105179972991557084251773459290958355082123192701073214145934567868809664142692218329301111745435362445680212537629644848186576612792465261316999627584680783418353261680705621259050802405128443538878442028262977048970833811921300604888850738815441912438769880439848929003216877097810393867979652918398558943623671413864322250468323991598515610703663144898981645260063734754592290872083963823185328340479328890461193495229389910366235018133787078123457768566442164510865052725631489458918802591827422554945908448545026487724608082434403019886136020490855640187541286483490912301522175267568621126788258777294838156530244176754289648428856980242073375947634317104922181824656356415506627157963569094681475819441016059045572300361650856006934038644574576056978230530094279236227696010696270140890597882182931768785386043666728984535282769431218795793302498407838501182582041933756759912401622879622488356168368834134765909722564582828107672290603474726158770178631557553211508162967953865357570716846640074120144736530800633872568571036359840302258612467211278381168441488491582792192048091554955119297718397693680322860475452984026018996333544603465653358535120416723773096843495145861059333209979878844117045500609338765583486559684524808629321735322175847977989958610313435113322045707102493185547570779320767688553558328497791411813238097147557803882492264242021659128774726344423023211987296744976171222208556023621681499528332167159569498275895872667665918038457126882480334949275521921733167701752986089660285114407950388532865954663018441662144297898738911644186421347501048903437129621375917229508657338832096541624657996737444493787422356070523724468705865232942437625656542454211092270538625043679471348571976600750627701568271212328230256364650067369708948004269979716616246895622876267928564119203077242550546578874533319936406247855843977825054740002156179444963901465425492432058204500930212956268845086941835117359532054587175284880267321619205734733986897735347284634593228505860919479224260143064042332402624776745925803660485513658726109542335492006500965452038517684235502420449851821693717655737634319229099763945194684202003925235870867774163350250817308131294899536275672817273544360646330310319718420538110080313505699915738308784193280524089471363882250670059239746708992665722233309732095755638915547991987894010402578098682011568882926258245034078170154517023697925538753141742011016335223417527711580499075478017978504592053526160517441088854663207968504193373976051728236536383497635787009853133313806834688320016268753467235758091062156311378922873980865195955088054375933870367273954443007233059913249106386614854145933277173462742076894295282290302074167557130752748122637065386055640440964201327990379313251714351662013039689136029229152399183018667142549130890544543725218927896361338227657010884352447376384378484069408397952943273986154784694204763842696776732381874593131710186609157656859527815635083509396784800134726012645159593794302199068190757574072519884756187768800243910885115934192812225169556125590142032395944163719337146083714602601506249401599675563321437392423324761719664622661645517966500129653864770145337970530126002613049682308402995553444264903708966171958656629795878881688308380842043991613915915269463199471860311542337314847649029332686166235335032051576928313172639521667625446008811521760400886005316877165026272929364546767975073327361804287464118210495038176152811754977549765182631539819159516810126585937312631309031148845150153627757955627596964762046971908552077570649540553507942853202937077983615482230257788940578107279049877087713757893297457096383434446708080609129851472137179300253792979272485198163475043677293824281514692509024016327621930501050609998314612229912312607964147157017024981578475432255444343310307263758452394812599449272736441588740176262922471390966414051359814687390166230516996662115134284605582439795005535855540441400565361165657126981873449697863187696994647863123714577099995602226591066715847446384080731804062915857554634584005375514676597228680586422004039857122924695248826218957286484454272874635930099845813739123091516265735412066872375223246008894505456392636511977124242093038120885540158093064902709933186087036337500591421992017298420579065139864060975313493753162907919154166725979973507075874273231541432456212191691071856970626382930730024359663567784817616710845175064695671782347107370217100073634577912144379674898848130915260409177917593909312733498920699441226701834221389891349187487750004845282244648477901779418910359302671407061711082346209763769543948638514761169074515515924254695507977266098774980229782010665383443923935814759939293421330360487099614991163385620409098195350758842122379614778965201785239597688945867738616350834507504977752689323610723878315105556231450237990320820159681095434040324386924852667153883740439786589769146142729911418050204954411324597410635762040169592475907356336004879336000334822381415390620970223262463351778968744493099054304458513922689193834852898994327516297170907109025798368835833524812799785186270481705366835612524291744676442873383095898367878713820430612733343341702481591402536547429915088901953950118074385583407439563763872383696740493137878060662307284837699077343611136267239400084288395026170062457475285566076234596631228008967984380513018868873688792009759057883481227004920637052909921228482927522336610261915077254023695572042856478219047600867116632890380028334174198752104147293036010917466114970376436575164494226514043038308028196008075311494745029382454537806847662309712477980305649743083231258503948744114550700821159709585146704800687105679901708101483035223912058896633825187187283047101321048184344658098719330124132957451794808538999971828453798090784021020204930247688368779639809893062428138128014284317367326419084712621866986693040612221198732354714059003548008829112689276837157099857131571465001204614633099638309175093064167476777841382580957971749850387344524014404460123545871124623027538735103432861459173079152307504949983442105408688255167769995652623182804146122457011359886394355989452677558004233896189921155740038171262546156899219164157350727899502833896439362221936345143309449115328021049032332620845435876489244618323843117006057305864703887013448203839032931256756624301431774057015996673705531105267605244762945142753786619286328557736851842780114770515112256922566077120682811018733439456661241786524365253670582752628281158730466642512305263241845749145810086272870612809570041152356912458881882683653952741793208937704466612465393784589634622620837298435407924386198516519399883106088589793399574252375366460395289955416413870797384317277276295135635330198522726966311689814744642237719193857157533681185222037512963896827185208107400660356633695514004521542879701379195382590186769460232574825863473582930992519010303839030966466648085020088672764164552880414509669969833034368766581854356161550904690854258236135983184275405475899650088336590127712636933420614872492361074698701584866242754752709186363104973460438509099574721475499717907510001581692191415131686527272587133056604112172614327842505891033407471223714668910864708444619234615725864586887525791037484039376780364565420263785085245954413700880569868723371007444385721563202605405424879883074724888153034173454622022757916689170716176514964767628580269684962927754360294414722988866802898472336871042981471527968051772143736810399914308752995970503418508817110664565325869610934812604636477672660702309876593167481693947980536688787749360255948029393627708975069000419167073509129060975791859877037811748827470062502731174186873727541189382105843465924184574057507884794200310464835413759324935293845199086687473515228473956610953510489227009917431487730929108233402099811254059884392824421076664541545483968785963962601673303747146004469603746260639469564425691858775792075333609614992622408639968627342856253947422646590983425939813117035933232971242592492378694908697187558332159686296568981358800671450697705967606572157877942106162952612509846112127640281483220953348877260648023491028921323721293804645250769852791765221927362841134843563958836382159878380738290167076864829925949914233639068081396865054003200175871801505810022079904882629219267896276764532052490190892035710743142957084906781747646333296538004325619814432674782327866238675592505931435405201023664873958168904315634160082927572771846971744724665582399561938875785837744468115811000138586992897049356630907088144699848239663325878385615563444420250404411990824561176078397433958955203293814536245709726504733814566222899253550346145132652171796389871591873361157569176832274459954875798716230766163602262086865245082491605049430736405134462585918976523342683114285622325565130585022422677179889814816178264462611225889681881036915933601501162215072056244741805899513538214958375057308832730069371823165664745371387026293943042077708939288997085098045285405391133924545320780040311863454651325018203924948700427420595020906137166075139214237923851011554205664182102840491716633856799105839069144896830444737980504996201073054477294719554058197684860094888875918847947361283603494908691159529258379714637961483480488999470130574656336669156459852048817470838165896047733121903064502344777851839665292374425355154652540953381792991399447184852609289331621804318771284157297492528677878964324795151919711138393451522051758452196917644719692892512729160484937173176271338630610956159304715960878841298067926537034673691005996123597263885856262117975352660288953747883694095566625016210039908505985037547315617273051780522524810824297203134704868729767129364175628592404741682582809508165771736291038693653196132046078667103605458786691706910447586055202124494806302138664913869969952609687982946878785015951973290805361336652957516819158572150997463101516591921747981618467633426644926318642410028478088013779606685326999878620416945760518779787737526765407699838726971868998544272232972417720364220861224037719218401820036051442369560266070679742784144418218334416007114531693454447756585278918791386592231439900843607693920665348634617743751506080380528670119895957657161544689533420245239327939717686213538682099377018776309302036110972194916508679201985593112170544057700327763559759908072271938205775781995579437726875036905891518588359359198355182051566605553873912303448100065468826812952333816775219056304122499347041664699447842513637239273426018952602901467303528792500544360978232681599384073069701630137078700581302492633195790947426141630716651875606836809496461959590718713902123681440004218878645759821275430807047913742726634968512958189061222907873527839530289009660640977301699747122167862876948934640926025652767776575532660938539700724458072694323960990354221107083454447577841125567926081076109045460820582050148332415996928881210113246274003565615866461744467865290852195058366744227455207442152760301300866409079909505012068469953596929023948505377026718281045906722728655226240285329453034264482970687984782577937103829832944731215949214235891791151813517426761758446105504876790951450806320057084405901080074454236580817169862728364896488977888619833034214090292144315608000930883327508885403433572324076375956580260155237744703999078909063610124824956708474473883119785092248717339427193238061077092830871100262893237558027117603048781165919135427923652041580805977746682227394264530395095618858641982419611239327126350795191782006750216182419244421400627570007084814637611688036555591853845922638309740244623160919796225595921266605526380899370284127373766628642368085972038479740546338411078740713444169651004301388394333647839329967274083123392886277897607211513822512010265162383554129259006810861196260581699690479640557993464023484841793675363058418319251706198993599298843123926406237613042667902954467382792380091625179800557582366051216140030052402882579050082603892786444419074806589568995863998312603097810307432389948595526208742370613060694525404819422438733372285413485452518989432146694533339562489748174847312471119970953842927867770405689851876002589571151743822129725895718070662401679883811998585379590266438881693442859499850201547382897857956933672214495848116111796327214898956979847711250306936610660828134017936877673715520479549480919953958306603088763104139700534485057948274492041173340002570867141987067211070376342031432768432303351142021761024169129924026930110042867859319261707970284097039996166939903929554477706215003382588623514370531019819032866204698641642409196589595874869672557266046946195466306480321222957911269533430987137211983887137265917376807559875902159179243374968691675883767101911919662859689871325730464538246002550344586329471729791451487882228849545639968293033375865326773540139418212563740348284261702828130688302989792593459221348208562347772356087462165428128192183108402250729397587119895887952545589119485167601126487428198099450385959022993223103725875764788016216617609004508434223525567440345417700512810265198901768202746900943236243788244028706943964860167325068526609626280623090529077583583037966223529260631062669362698225510954678984422662634487780027701890732598862887657526156717005448971683438981629579801949464185832601313620507497825350421037788771468974124714713221649501330019078420844233123956563152652712603609978116689711037190337354492416291801859659852714818836680281842332650369377361793299631493704580361959395295190388905859969049681935168651296033034730819622037235844969411278289617038082376228740632422587126398279127021858001214855746494515776852352173821431708538520075280791407059703796662054386055646729629281104665278001575409863239162867984176613456681845248192183205664478018035237294948645949220091805506456612715430074835151045171590812771075382446695345239638752046023920889984954083387821530587333461975599943813052909265674228946499848678413976523078854028952174491358992112346514086278748651299938957729259872705653069463778636660372612015613529464793609982941473095526005369537184307970136439196805812609928501298809047187317166762644148479052547346477309502168443025177895079105183528158791854937820284866306777428054811864097006159096835930443962036419187413591332629035373975163740462904078619065322838274453425674595734784114637524169650610413439608544752913591529309382998608215552279193203170948447293282843385101413243492445860418641732785774952871762707934048088743239387826959224810056117008355470221792279809128416411718371945929990245813025838072926635591104726023850553200939068392044752045516697267806399412049845026009516203296623594656701543690388411959839883656432471119971198459419240676606795658411226542931370955628430472111726643833442752402876229946983469451178355462188261876303912860336404300889598881027484610158822927305663590527463347011295468109816650859558331558057315402399981433509365162488779257923278031425331917250403889232789723271494989016844434765563977441786948007054608881675588163663581114851744642308580605136295937347499522407254334877226435383720594245111804585358802801912203100535955321490461402152933764257598381334730607584200961190667585138581863395183756455671938223466246264284107112958395308678573323091217937160973874893400645165598825998429456259644283988018184355990720407293797338593402281626006379468910134070823426879363337869827163655837482529858650170606447065891250703602008831252969844872750630436322971834954433539631211202914275604232679618091998544298467396900471898951447062800678082773271351671978350958466912700799935867988490774251317708094895476253035990840323825123421541194534547818625093802540799578165136207527715315820466334261719455512924388991168303754704012336237707578875618291399506511972323483411002366121195366942847611861244194483831070107945590143564997782400596624162428116418836413241641828861665570906536990929884461588859342883916526708504717635080664689087444107123444688380361522513907374925198845872024362211008423392667133905034329561323898869175565910946504948011932106252816877099864178955827065631647439063230296970784400182850263218980567179341688942209837556850004507792217512823021425628975316489148849180070610803686774811005207567355059701132489743312686753502408083597897053528319292224138986314352565816083386758771858123621101898943680246845011517873498930332877066896674782381119441192936288586352371798652933101386847139990585346918109267494409610169778894156259202176662559635985780480500235326015775474248985563006740371362313019147027314185842823800080243376567249155018584744245566513410720974061458210125697946011467175884211680543493446277799974644653017153897840542556308191113218703891385864613027712953897751509173113252571182716709585217598494383763769899979081832612523434981842890496383850405797575395048973839716213041494862967815898701593618076168788653676326568643835551085541597706687331924723156302099834610211559059076387721502224087808793128545825613845025524582164010527168198209423992152777449916448850844427121474515068751347041603618662588941966141312398432029501121755404596238141401515884680874386731971415542057731356939506046725437141530987652564124234409461894958102301881861780578977648518006546413724624673639960288459790451924573940902337415082144877886315740253231994807808148339191412925077744636443518968549560857346938772300649113359722976172102435945717643259961075809811517086328321265036027147682646351042260225304585891912993975472159582434022687426218700345443375877111070171646602570754090952304937635816309352055881211618366551008839759073030026232195004512482057261281141917799108211607143980496325301133316348559575770525092803463917197177000626087212551887301713545535986701931497707134778362354100219812495519748060423406244601361472325690678838214530823401911805091143974860479045272661561278382350597355215371632440380383111190119468944363242308010649881998209108311124365636608819648185808536467909091375271275863519828068938699087177340930594539065693145779434158479286773819262701520411788000162707991955449772193918134076851813214359048790287743824695094947063793772161269650820368715312644557979862433024174189476923801175374284649413321220057878268593575569000743135342008810415508169477241280368512655280730399175277625927621732942017015857147870719281731243927162677536792170523978578597950115934857993069448279550815821798996853692812689245781746702469725386931618876440223838965691494376091248758395379329883189414576547214533019940073455258659898444713741978101061502318175358198663691975055342802539355582958361168890534458459537093956433034738948666518614536621764859813520088950218488073803742602516970819324478630238176125723144436477014855202327905788655932889878065766520649988670480860284571201414714814177644497513759318128580075642950075845710894622219238799704243792869091849963144964751664635356740889259543741045934433805576144000357242864432352202359158633299136454255487162367466119837535204054253540483038150517003337827673809816713031541446047264841839030649335234839218561576442587373236201998298459656416739050484638593369537194923109465380396600286383688713992896016181203710106732577988673832040530448967007778701822394634610342171101741276059132694705247364811654855445550097578088599631952305054524077914340897270140899739886853328321716509531566090500755101299414892054272198722819085686277958978990719057426034492463297844104737265295724450725637491665101780015001248677143427414980160486638992736766948233803246118321678226057720419922097095962712595058696612953551100069660255927694657253480948401529791777012234214182171656491041619306907100856712080209761014363820580010538699417163826531592993347080693879413334734937332504429007639660487831180512318588111164436826250728430068129287827030817930929122766043146626087160314466351522038843492209150920587609667133762532114172275950289291638256590841901252818356442900952491687135399846959715352511070918095342797335796930219592690826844631688935911848448906459816906631905489042440644108723813958352118978742143857888687208476386183232179298454077871331184358693947476699026783864901816581342399800592456799752546775529257438453929423380857008249243986638489133379908512187190579465732157386704314085141940442658945626921141715792877839779811437203183440228682891854007186315372967336484530265906843663853615337156499140117544348231286382685391745317408690380731367098970679682014546015789655960953032411611702687231195640882639338693801410913217473336305033016689922181887818948453516761156047367409901688476792561575813969968814934330823539537784102045309122367850653572855451565367133113592482936768893292847426105462491217749326007201626271376516537180122361823545346616581034698205273824646799114150396060534599498940809350115189620610273713065329797897982523938429060018232942905538067045386873039801593033451831989628532701392945915969020193656035666023480503413454284187936710969336812562488942983433273597572140957371860722809899317051255491302647598299853808867259518925006350149077605627093078864544301598744803950173728912975718393581042469643616635301790949343538839529113240833996883120768743422949312534899995993872478319253996441507013385144849875260593291966251692462497839868149824361580070525058993351403252214989675331237807868689176542224940217466177309863902329162804893092880187166196947616328297763811391452476058446367796431734370543419217296369684008599766439604304605603481310161732462138789051195463913431403467804981642697139534396105068680883944368437043135929202757321027652983971056135495802067000344519367715755564569004522905254898222532650446196179914327737379816932407068998722287993402294410602499084801840559539730347258290924013402421965481105932485561434639349632682342072145713452950683426768620336167910298738601499594093559287543038574626963607915103939269918132453283344361203898102635317928816905904146615822937265967733326491602206612934787791120853140393635809957551034449472084690945794649597792505139583938979904358645708422606492425113230196808897834981878890243034284507190579994313984605058115289313396917458677863681217132270996214245465748804653902971214740071445566433311495218697574937238369036283440391035126142963452166344592115036058045107397837861126178627328382844604846261292775055678592453339972678286177051205362024148747674279555454090696504058993558393947959773998425466041292330893835232978644768402817969361413520666736508893221890955853383580300181266986398146869746590997198959299811882414653819453837878631051855926972283012116801564826461091491196238484430303927232622711817129774489106467962518724802312154121866442830492466088164670953133729724840952675603242596201931653226009344560567880659483801448318159967458789696841515915798756320607815093031455648390990731792067299134503516372357921567760878463606139548615164515971451664115713305661871259945373938816163510145797094122523549395659510704397018263378060234714788230521331905179454252848938024183200695165843601067246141969795749617523584421886996266019653985650721663661598677465728362063585315017742931057070142453558727330228808290763667275842687633846802008062806943582954080912804385620062938100547848936585262290480579727530151135369536202409860219985627341117433602465820027381325675285594331737421764207804603075750655037458426162476805762708056532921030912110707932813663517624750929681558778547697890846160493892143256652787897860349051551191131442971752314777890177903437276264761873520548167727016852584791751752107134318070703061104010290230956004476837887017397357532504836171833829208342722197723189182313133265091388582605622294703580768285019082327731457494574361992388394196073078420108194365488470385479781674441667336716779477379439387194484960932686723772459859382614664895047297742930256230009887853374442944636172103310636170349363643541292996171624674663757645265111190139256709530745084300998616974369322579359663337420873872950138829336537350841549721727477147233396727559340177853567745175044566133130914283274442089305810026121949484354834540766601559437747153593507848544492870166689753579432901763214481716924718887427684518407510806466758413110664125528123427856356845182153742475496727724623465136718098107784145149230267596258555636515040911433966128003913534911525206083874343897875308394335180214164161635784463343916790463359622494094251097564190594142739707963492522933152610553457702394369770058152399340596179687894912485466060742610313582715707400403740805247666934350328009956667714493580532467032179238879789396138147860063496086628831941813587556440892389136982339833564946608229516536076512364696566868310656399113038833063217521868518449772925419753532914551458268492134651395914134456900269390802936512548649294960911182870020200714846527821367611500888105267995786066090282116155523222057860329538181426114480201703307185708794708909446830573226117040008846170596615052425903197051299930468452591776213364101878646586303203278621700220368555758327492251489588602774371385265172798219611658912679171088174744567297013042071848788482258293612560216147570298354063977380476796086764973271742756823603166175877399026495118790568650264236598488114903693752183500832601840684381554435880673219376307566050812977280566691807817074339637554660622171605763651040106744992449506256461729656517145156436898266419575583518072527863750156083569932293964771917023212163553078282065011766924798014651510380677343822592735703714454946002854571696253233975786374264840866935629203269554146569510472379594409298846922942526674583048549145076217157756363002458283670183897995935288899793243704852746312523409997460472757364123386429673997700523555243196832928362309051886879313466089943738223992162836699495392583104034416007309858781032685583347774306218229238832181535180298838667680366766228925188802780925950281848045359409374554778398703157384882660474149198330421242359057557837283101121693930957218530362659423175602946226309391399958721434477732294262281691735877112211408197213091055435638423318660580597369085889956930948005425883587262532102818894777686469266758684724339361426461158741329926866585642947702017001266962176031496699904054095720486126335611138707278187292107601687398062092396705874877421444935514841609506653197468216517317708682946153211743445695839511158420161569708098224948051000406241767247231952655404581185522204937903867080378060467436888069050951891127891313466899348771226636012998726277009645139509205359270843618339543358079980852472840577873085310891203249156018234362239698344599111468196731587799163767259439695009904825277037098665805832175420799027020804495035480334512663886988008542076990342259221046687131697392860832304989866343539196096628701279252978939421816580876641735560755676049648677076214841068336407476929916094233405168081441196635292825704704467001991306641494819630931143096421585816130827075846731108224713610236168215880892527302211072965265526890621906684518527866654369864979509512240650488174222349658922937419792627736424937669603541689666169742549140968412256838587681297770999118189314449776805029197417010207963032023049779044907592861721541659476435772274140048927246133676133872415833689100449471716192824281875361233246974651039179930648796994339222827307312581029733524771283846897412908408006710479568697811665527898406036855270703817105037531818930904664018569926270770381345084723182388449750991402052652925277846798708290210121976436669105509787331234391407839315718773901416069992135966973845939626248903368112923083926209016898514616127056658921670628152704954685262175845492563278803012835010999741515703802438109573887302751198258223939549987696102392351075802057179753108703011705130629192592538343023482329173297047901592357332048604700835187209581513340999365296539963057195155869060244466635383481438001107671857538510624197084455753124996442310347713731832364597109564425355305747154697302402379680430800067829972914351939931718202986088437089318838983079663410535259899831026022609799195966241230204442406577297843815557729673169464002382497708354222821295127817167982407323318133284684694637864797205530521803158360256289420285272059621991135143841814511931011006035617178848341672387307959629550476424313373352203059067928032745529926489092940022185712538155927097419403673042783063216519714523928961483324306698459212647764799496779507697877550703587173300077225509286443644175816087998080352431004677933419951332414999232211396724716153438243652162513515023690338239767275075868080088742630607508146485490556259553169208842085173726736367670643431175124169455589168366885808119917320762572433949316034356679498438292721739563990976782900576157199847785560833193554410443073484144973053761602878859466884558264203553014692860268822770689561474811400083914761246028644059568708246366455798655027579881500315492231961775208636825055571154030990846915302737525515825137482558714322546937244623000340998635786300644189472212503952060126956005448629660313745249898955632711370554165312139235004985623958131463320859281857540311971191492111825056314212543196949209176752002803786655495353744573248740868799124007574877946305118642578750455140624929308072138454079789096455034594659928317529539319096290595055976272862113875839116049903967092964861021292343089948788587695895462669900319896401228136572789758205832278692992558102146922979071790228884609491383394680040843233537410932240007976661650845896322566721739738857755571606877710773582135268232088198768014845892905957215618181912427428109153829609941023880684552801382304984877919850062033660408668097332983468310617027890684730777647433933089322940133158184526929921396154676400547249705317761547632959649830883133582972295707455983114891398719289646380302327839466791961581669556734350732450362848673302774912668773154511193049688771794678661551671900889932645508307055124408825584652202411966835389085038844449090714062211174101108942898060804829466407458673888986396664857819235625614338831054083074385522577701802482554637153387219203167853618403278216949861058590125559346645269004545276996543764300270917832042195887213030001902362688940884635391448213075514697231062648546187280815671920456869077553725783466823514551191963985159680345638590133322876804782847352194899886759756818056600545246386770987360133156613423792914911357610574508763724642159093162159964033723273285581647297591571610546254017309538445319351355585135654177429455228038551860945479446834351851711746313448290520573845912603402473572796431723235242134530569252857064160169708380059931744352083624723340677066584757340183679214589131223177526441991925411084853038748505262069705889951453247273231817334983883729106501190911978942697275386506112855531743609734225146756599119782176715360238630087565825540483309603716201870183498102385917348320630303520049311110873496881336600564026348358209831799362554300015726200383631070717059982084232618134421886592621172548321215931388385723601006028208308056884938314738459903067191834321346985030272758768440693984569767659969421470788817215198751058594240677796710373269905304394728145556499416001660637291637454607495053511081468604988039834649188394344362524797577874173679682450803706906622216468922409536763277185071274816803523033817063380902776546817790216432965679973726428662248930277210154908342089072267012864746277303701910077113280755639863988356766152881152881264022870918655792285463645241893745134931985984251545785023463462898148670630546441552185701069418620595649949002845107105035203424738998903732557484340708906423156604987389279790493696131894865278997828821683510569955581435916418592893065217807442443514389763437194183732183997028982805039437062186192057108162178983470347917254281635028133645492386802082441359745770865386014118092416057627015638404858658220602103965614525387339749989901575621317744859664890880661804734683014572481216145181893561065961037492885469810463530144400605280740899597450637088171775472120647799151427270443004379392298396070651061684640005065116633823931219065747057311690605294011064293282709521215070403892653909139507931386276434176523568048092359938183858387564708245660230801069840723227832889274974534523401423844728887169460226447579523940509397404958022022769151014407121721505979097230256818711457815301742170725722748378058076772297022720173081041500847699554806932673654951878172317841682379683575812722167689818540286266887485157260691523492393633082721693427982490371858765154242722888563196098242873031803693652265541052911078471146436896115385364756920224800584667350097083241938459801883261254920196845773236439907632855495615344530961298228547108682560332030291092495002896153874916630158717418444250573663518100692942939880490752435727129759578250653971511124248166773204102715914311781554597654160276916889847451753368908862414674367003734499487188612962528038864416204155246760676735268991253627071382849351217662826416521287315564144170242141632289376356159818480917293493205398473091174685916454772658424659159828203568403757216340255218132699299021894233243348190882379138092545596081228471334642294756815321704199169614700133585720750552937449249373125355483827664613522045051480508142605320647670668203051092612157621547106368226871066034243077791891038893076928474848589425677713976805298737529744146645049799025904996166777260532620212422084168255318372789270599978565709435593929864110013451072412670251134616034986286576737534837543139693386188892925333022497228295035556479451004905768325663215225492434245436156835704522730274040366498087486214448671290291773217945265804257867071680078313132423543099187036370438936459950813496770180226559610646388418338785395222374484009358812914735945774831736000657805081283120415848899220435258884723736607441889857919044633553999770533149976852024810000731952097757645341781357788844158860784826706026348804617632200677708914204282839097191769934435519193702199866289550055084624851043400867940375651499179398036453191250263183675915755505002658390225557828659360340111678162422200612614622980473662145032935224210913514093652885474000573126356162755094223598298114699741823208992121434007551238574757721553852912417814297262796019243999294471285638296828451080577161214486683478190572708159642557270428910883483210310032998744504336438919395016210360617281625689046193083603988600786178431750873592311244803767158103309531638683151718203008562829262829752350217327163504733587548569764356707716542990323047880496355951989478352932878816175612305495912516478687932810237952073926669216903978710149251771330805866636121769986645807034092529247615585876709422542039674033559118408166654465254299586152763110111180052611116937788960719682295175095084199650652335646105618254325271126866071970542641786932327680801383789769039065326237843214535805399619115360588788393699019736098612736336121647102750512980023283379871406434961380115608515029065462839623764064797762246225628258374731974779334083139449854421743229553115493496447313473737805020709711204500449210163538790105526582664026219832008417481055923621028388214710066479283007713959591796159005834070702721963673130541606628902965537176388363839931312501221282934311697946664988942615632985925577429198361018286223100143776961273932731337907019828880705854305190041239106189865443642796381377842547458462439817510420214205110934894257090589446169957435805621021038077598934864934072656853967400531174622417845997953034221940698504151109341905681733541051944155548517200542702319051264534525697773782801115083881836677453634076444122340986345810710635180431528234220014813887424116219477165688017617826414413238869388678389185764948472276883643222091839334903693857769380737640468587819757766326167808062863442780020954223520285799588478829861278594211438327916227924362493719882384270351822221715065872190098864929842183232084269388963327253416166057713436034961036057194295396491491161002386543088306481617704542720467912498449032403903998924195524286893887104938278966296652499164467819535945612539379559024609468469814990325932189633604413439110158214414423255194169607553644131806914491730301267906542125277269124822087123333650410454456499129567479610699189785178852958910639766717530737308616363258953879045269418273845590458104704278214101799514561641134832354584310302515460498846474808965759614113866364051544451717386915421100295798057349825086545658397207360693355865047468362937792898354347180929451968264583931524148869672629390381468748889082624060023391392549233965773541860921912747783359955661456903198850033049331619724348178916665808904375677937174930807775130072819884607676607910011471905456367615891010914774161562027166704325692435243613969783592967004765913516388284776565082614435366327550501565847824263636255731375887706539780269180538540698801474072480220308655323615485038335470816567559324375650632076817989422557341021405361951517137845919008948794375261819338158689618237917438146749233634609022863702466177201178283123111671640404420595223838916084583095411075944403118732032997415791864694412863914547805323357486081413315622342357687461067700356895126159126208576218850770234301998653544067127792514940560163765443285206452816569818939705066922730462777614455218505255806712547188696849066757954774715692038179525934735715001826492518094394789164481975111376188305058120141467652327779318323369729001543351065330412219143579980093670347394625588977551755369986032645289124528031885883774355109893071325280768017010443956380118098791387056182362803901703572892196777245788119225119016436139951672181638456633265025974057722815482193465027800745968697485599744651196370994416860274308124236891502890433037669299983715163440391436852054440911976130749529561067872385436374718527178745175098081562454732611515489707705434511132591119184643464387803407185674088283853940829563794031639951807239682273803992911874221369065523714546065022520134872093142598517175010799566703653163033267803744615639993249100029229845157545518311831770106454687570512530318695945265874226876462814521606047994532158129559150481667519484602057906838691885420689688685310983480624999505817343086469011836589278625093482295919029042910386837283121070000006447109102187299184859666988135736073767910287128293275097231827148191425951903801460328794610457744883596042244029349567334176479838219615429043213401487014243813729677232348258953154483025639948878579469549526631519248510091868327536454555806810665644359210647717338829577226319404592645644377423376947316903743688067515299522700196744154544983180929466191225786065256716555714938162550359949942059690281550310919445373286013110954819077111140070046218543639075574229106948636021171265802564431350552288203235031540844573352934338080222718199013393828782563383771771216594779317811444700547894895170879043523803761133763182796884859946035789160590461898359352294059055906759522631895902282358757544492327418098324556070195822140697350202788039054236681882708894910005647589982904558149386059653298412012294049513253669273649761713637519300520091272066492237212015048799614981851395950621088558873160499125174896414612428708104794485192861623613339183741129380755658033213326954953314455328494875842823630552328272102116413270233295374126870709897461145136421287049651402091017428059821129083075028581735737960057795063328391849897592474323727790977147296529475180677660294637062356424791387149769434570831558483525973001315739186379996993647424761658122720878564500484418515125431044672202487533158537121674106216905651884530496090122661328919132891452980057882895804747810166926460904417442826796328570846788856951365864170349067250093840323021154552979849190625385814925410307180050655489119000661507812649663842308633685676241548800421372530766135757841905335507685475897140631219102397493488355982342947218033337277917732881741177875220051398461379577098671419971559164715435060268888272642617015710621167842949353216351453799314602620579250766132355592112762397633131543109873387089523029779154128883956067621445962568061668842176801952562748170667648446175404701465162127306099214358037121095436119329516009302990243213748198278081535144526063448972496933741598490622472427540437028697392286873202329237577006163880790713713828667785393014885441226609762380970748354736503266803364701529506420128357654214055861077520271339422410624163148398021123325934671118826992572988634489704915650661463820998119336725842459718394897051528713141677093951607427256048602274151852646445284803174939363194827525634610325545069576842534791246723835579975008513706699689937611455294005397373315007413519464277016959617637122979041374017527331053593028469359452728395614880688096232880838626425176906540408463990726989263405788436368438622105628620521271607526542867637084011170724373692396303321971404946622527000257000673728877553393465785876538718207531573217388097698660500330503408515303200867854237076776683583101117765670579639291199108619861977310333776551904046169673333160261335648478122613832834950799119302851192716718816681919804200373665813455067735975304677847758128951165158935864401061155595509463477805704175764734667167254455260692314298080600500966441746505118259814196570320768976105475348160825218870660036345704915755741682515560530573335915866957922165611910824955629792554210262206939664401683491560573180280290055218084106987398058487604293567439333163981189239933035714240548727665279169123823491412413464725324174221768690759841417559331723381077802998577947163464316100840753967585653036882449087945493165849958459804876808577609334383271678701731319138979892992084232424175788039108400239142981179367287577384139616923551489274533547224580983492495659338862280414458765519807818003127044607184674579161997160593235111323028751384346093974912420121874492718491656733732325911591803705798485751707310600242507865140670293209614648468716343522023301645757021461111137313975453063723719434345110516800009116065215144812917512034522185483550319112322186376826011706125059035287655312813228865881662646556776953301282197944224788263731802555924518205854180925195817545342265153320407377895729440817641886905465744894988223616403461418673322461295548460488305602947725348798271280015621799450935210280840919128321779560241712756686016989921386167353875082329723674514682640604104467115830803136152917017371207841319350179771907048391512737638240245674137136534032733863912908958407251279237018046724524568449023851468709806210812178059158586355201519933805151918187747156463602593472977736278681207936546059774345565672169880771788948676484280456237885886250810210988504284246582302384992376060864765743209669643108653714012282787925527661458232283372352605201656170865022834618823515510436421806275106323862149789417483579042836452619033779129894061022163799045945693904831289586537679732910184449362064372947263211634011910620314423590864669277110478718037225064355336786657985783464949638796579568264914773741381503301186986757742872440129804335579813281338730885243512669278219489851630318955635625072227172582358502747055532702125458566002956819934078841050455415087219067564992890796102055903997488604739831492109453801245740491400187979292552366303251175813318885040026923557162628427080380217189530093501856912642925978821275081400030399476945505552785502135805639533637431563937869366442035542139627430276211354616413901156947210847079351575138354402877510056826662027014158667505419545358709617002548815496172351363397860126821845675382788474297320858232529916436557655769164443150716010789193051675747681743496239609315664707880150132373024828004206266802109262585300882121671141239393142106686185798438678530251024574862936642304941115103540539025550308128004042201772014388454472964652377754561360559160721618947931462828808242301512080540617019594907207624931965045417127059706017818197262342487637716349882302564518741087467181980588628762623275840489246991897435257930339721576058939049353814842970968283518509293710143795333508662303293418938010418494902344561951790709074199429594527091721526023639369189618549029302247598731520035067868907928092083402981985596413502300284354576621040332261690864730639445489732914610208436216965028201500336151454674544125309856270467724599449482132308899092364334515359556211614793796707989199738858117998192904463778879881065302900175186212786835186527154498837909865448520959910925405993681657955377865037665954599484737784488520801114755596373045860050146558786129826302880781303263318675594173305977288607738301224837372499923589111978976718785125860733788237668201371481490587743724307251157850366255748480631191393879255974147330223729612048058095956416772188402212304010349065462817714233890088894312419041630785563324058820810474180215801577773528908228834852875299932075841716791024548421991666032948357996233368649245989572992738628065958505629976199748099334297238764453457284558972250758709227203295646378575117216064331140289439630682032958330754006199624762658443508406818503821163129312565791535431447428737654276314490510768423030955280110151359112996324152830624187706450814520602464107572379485674982599891053184528103247399221243891678924643688412544167914352635575333012188223580467011106832649040229901356073854732899181801100367208317341270049243705157048004973487208929737040835847025735696618253390690241626371455348558554393360419661803998933860364004879476604943548734473748359508372778895750665245071723942740228140386066084650305463342121325745663725588505728274740911782078626794237494349629177775036857047321683597920785603758792810701069787658348998332289412176232585352172405777024377404514993981176837111397009468151886748273587644455826456149810833956884459998365668732731434747088746411032504442054258682812469718797121678336620802726182836752613197194255752042281040193533280762135966649850757315231396849261300811274524178311743580152997439527492653774132538721416550611997890139378124123679467841703595464816852673153967342320884104801391198635142389830999090685556114900979028014289440193972866931974246970400148483832069286104446223534248919372956066736545604689274575807314302978391120437451020773866932253074901882507176803150576164867994073485532349331516943997518252722593122834685451405185029782736154803415176346983919388389122848867125802001167776979063504604347978634796498604734460137850753667999147694027073547280581276832521445471234494438703656999315606545249373226276785677985049488373730288474054411041634956598659381476971496057335750418417260016590046169237318064682969798287433274037865781923625073247088227600136204846208813155218106163737144016373780195386385309014182416642313240216350573291115910057712079326907504228072428793634287535345617294665675724071139048395543133137335861915692533406533158647498036587485559753389997915272231172948035108055298537784084911675872358815294990801376598004746091455198659845360062734347495036288990072980955147205733125862898263438748506607442045893444920708211643793149445292037106310527282527137849298628056318993508418298317536369117667895167304632831444776640108665306115848346239742052212355083339376018340606315178723799226137875627417126451598689866744835246930346886149137429109965700720890454038253115486673350755374218910675916409974867268117876761099417633194211811629623023100119539589505752578000483773608058127813983474581880010644262832040539220147469827106695960653797048405823739522748490413723937864579905422843983903177502644654018752368359997601188204966073655575888699932864438071169295323085739384650125647589417273757335751630210583113448369476339854640845400152060326092565756553728894425844858061303934057497843971753191491866808853956737346659468148103249523627320995884725342599063109474657260314190202095147392659517941104582247094372061488917543184052904796734755051119726561532005965358775500613862779919776537963242019488356454660639266336192270840336755209525524306557623544963520507333343984920211912264172520187751054045153289372683178568125385553005428725564428677231648455502765037424757669645452388836785512658672081229533745972672880521493985386444221959664963500355489942012816394308539338052148529972311266799448820974624708244023528958577162519493204672208846674543912166013154181094626641683374308402250084220566895256920578143750809756219799358084644248080373586110081474019102975765789327231199704776749229805393674821340205756102475605574334063008360528810101456199196353659291873300470983303203904457894551135722057393419899075760404491595767785917764698675314285214287242898578508545086345991599277677804269141409735491688438756077516356750745937005272421622604457649793491513772829199197540371965376841691819543896945255226612519959029009923929553749767150930835174002160959438443751271068436724705064908038720664179481196693266476346534614508389289390132719829988857378378936432135428001289700954682090662863486783435030256930378283356096610341323135805069199808789677254518839532088200496245513352696468254189065002339703423515111059428965266416622794394054956239311493181002982541781125887513276897761353087238598877926875127049263023533341700544682523222658056788000149073431190186830278954807098029536920852777014019045990252141670138878192299136762578105637146426581785567152476875856292726996863087163211538339908436362456160312472755812878625326977024465725657143381985646766858041024394005958912780839150103920567647610345774968581377331292694675089321673740987203061946530013264384880595978570756333850558292812666594248227707757531128588138922736641247073409388838771162593029136847613329924601798709294763455112722752186340906650191205306483892982301800510066608813741702992694087953540488741651123408017216027475975167775541286845538228825712195496596963692720642391940620154079694857832590559762294030116775088569816274071046606111970712413136331089352769011586682278572773210731668391391073396744284539007481016366316030927384675306011317372454384227321051805333588433391924720159244542871008120827589255149023122847162841747880878162334433446038858848443659703353229589697048606402679769097028339351384069554832350350917000602744406852126078483706895966395414933449326512763421381080861323952634060689305879976675852150862029512341883285097918783684951843942080456327062484539864451754595912454669593102761845362725844711884490740855435941851160584179583553314232487176289757806698932374558930345734576322360983001558726048260754065145698889395251581795348810460966316228241066636298365847311351550925419900455771134892558837552678821889155076429432336830579834371793941433516516550314102810751014783638040927655322080992377048668471639007438816961920243122111871754948294126105956626715318046441490129077377506402335465960574208982722359095831407958102696681917295856871805732904656841808733606778953567511098145997734148974612853311630845994115353583794933464225924692772419142418581316399075986728769752659900050817701441359659718929680201338065094288273313861106899884326045580668992707634703122479208126125221425104385565924461486677543537997077534664083213442423538979446168601063499265734068449317585747672163311799576077375310967495240221627158422711673258776208534331429285488147468166614927565108759234963935810712672003584666191829532907525827650737665287482749793015775525393692070352721473933426254189773504961248188950861070015240871777513944255963884532729078491553814336945276423638103114169337994550539869965152080164737980224553063931227840447761757763620007262928651195967388776438327928803944464796288557870749709748667392493774836540685472332646853464243073962220856073715649717526617900742896995934963438123698023930419588592649863095463618911640143021489638035784443666097173195693341573655082978524241499949132553618000611506793895803360040973573513508760484127079590406524224344742821817092196416637100291103016283298779987089835196158583656176994552333323662672644626035722325706101774414688928579364734520646644957871548405022196458333735303505465652925916098469384461374129751897273099341276683605537690566385541175302442342888568929335886727860429791867986759329332432553247217565394634676997506415846291255635927603614374355036222302734325016365331714376031198470725697390853763371742602346920920065964377494621919914164117512236507652629575048551653171924906234920874542042886698924723425282213360230036579029471852312342268748535869288364444645429761655248457078689412826669063974929747911086151563343400442774730049339294118024490678323944145175611346404717386925062018536326237117361553228031763025292502049685569265711494859229238588875319275976374496150387925163990402186192002975289725313278358579606467683353396248551888416543389391716100698077173928694392989096456361952780446989676556751707514996417526918954555051004281641732672941656049502946847029222765665568971010463917430329615242800159649144406288283747592113493410549204854553543061444981131445970230087625403640120799360671577679326454951817400779420978341932698096397888299943713944025414306462195137510344673497480811683747402404732489542125795852737472906094409363869664942160323632406275630394118911148907825815217228472187847847913127242165240743628059152393788346781879885598279472223344619791598861853470362149020420141551422952251132371997179002665694110426282401619587399650306049561648746314971129581726764860712257278445041977288518995278071743297644488257080235779426274094474456008928337323584772674712534638273189306158693364753611536440092069056959096365654822873000705976174205743983370099016047578883776464428700776746872382708324898327980590257837232748866276055174971464042405541336472136596473918961207452568416965934385375962016379634285366336231525697194233999114657736057896347663970953269260784324760722628908178811127689676495388295678423305477865042212810595195840646764266474151767847660185055473497329490706288579570810696542911829131027219305432968351104277019385863615028599063334535538059414192637163672207128506108841929764169621454558971051944245340962600161047393162024478286553267760187280115357610662579837082963887250684842545455157263783197182831951824834886914154579447688487887016015748337172785989382054366977260268753785549814234095890675143042399738473341667030612955456087105759711536259302457763090616101228066597680053668736683472324193537543435925667317954162461443644979137518574284282866190576026673914623581867971660620751836591455550412819570919212378950781343944564771641653999349014138650786610323179308935046072972491257428583196720095507623922073914738192028222409697972574710040226195197071788187586889751889638826593629252283978281618819863725219114374476533198621339422503077025196087530234950397486597906821958122249466971799478109035647571433122738065544719728450888621328326897924615579660567958721372776544508383195361254088507375304972447213801522677663245960682816212717179221172163276771584652246596849107756452983892636178472855130787561892765135705752178874075932130145049182819363326912698747214331404149517629860746403523492542054224682971336110403883849891635057607501039607311490667211598780879526575204009441678796586084692955774098592604387598140971281907877957046979808255186455846906370389112614239736850426496590610662955008672214701655303068090653770601776056681374465325780527205752898090909454728652988635756689472929659401959548458619010711691234986411951581974499019580057305589557222991667944225855944138780522672754536833074533831922218864323895613419992427752961713636167475262572569813726501054482528954654467317118575932477274651594408340910371744858205355551573371662083825962128443040059114010479482737360757446035535975094200255784154422062412731635410402091572298300159947464387634907564831832924270408180264144048670665159186118088668239379448282566337429524277060087091079759539437538959709329659741580075560466443339949972156314305443493645735859336793205526430769220967889442766387305667657854141641347303949980688579281369260779729591331779797777731221927622707811460668321194145079785679317780494462902170912666474765167559080978881304642305147039115300628658282688615413935466544287049310573840856022368309031139426357406900366777583104704186341613977662523161396887204781452936745210496503413667187434092263126268788575281555224432402684690225690119031561165813218531520816305579804851230377806161537176692925770116377343221003478990317685505177016504755350712091371765968577439667086809750697122898506311513814351698290619531410030148566415963936780783414855337477752692989653480212028031260523436041300209805698372337197276537434608789844664717637780390129149353725247423951658020880450696038752021548472253419691167609534741502833279556287698726892018445650607136777534877112385809023628733190727828337580649045200653476681797419237685884655007296851699251030982240291218628433782481563369235786317803880324070714795697792200778921745776513185658003986468943837670992605226804608155245048205745295640141788874511900962108005482131119158624855697670551515005646801733569558050330545913279951451552836522345899115396433449839351319256371455970560181011230354751209725530388822266087613160466289269067036915709445257278177607728224580928335928952935755704901021423770335129098305980113656052423680689032778508569351206886939351035019532589258746905244211660092210709041807939256349318736302193123489514411379599393530154392517054117554303461988408237120412484080843643301673324980508703547420534153810503745142391393061793026978569508020618392760995200086628763011249340743440245905604087458618783208803368121037265776363331825812832756035965030366327956923560459522448188607718234328337487360221258339574621461905918070869444107447754209450581986644507721664035904441046609870384314444612463804374422654883284901707633881750161331980469891777118483528348181432392342231463912227987319593002388241715393343447424854621310135153459583612766001182948120721133631773859140962732827353091695008895158911903742753141969413987469588135624979597110796624168925085906263770683417399677278360910338231566186273977350357265202980005492565106804779617109261906258749651846523058824236545649165909955254382092441424728958073156427728630042801698096175017835687644004304866995415102841417701833078426068298573779962682473315543978819837267870388390354073922784825839364600386174880322866096078881544921002727120717582627044016501125789759875522926724439655874926060076747167162345966933598429299794327292941032012927768598731688137143100565535143032291898470980464313144537599215524425766309581731065033132421723501632333861832992506599383323079926073697712530224787648096499393678731991140132356044601749511132687884900936429094501158577335428614408132388227735553025408278835598537610916891634392747017156444160230070195936465730270532469256386211726839885638571349741017359675323116225133571802705753714419438197008980560588386440935977315501321677532371550794653806345718821243191092385234175938079299436360774464083625415126468222758285753287340115448037622186659462195753401274262547990207208307329938605432898292055635415144217170542282363509862092454434128859947742260826087222762284339677571887138233116542077717752501146412616289177878488221528309926978006121251105816821986482121955349374033934029493859146618993733327219517847986399035940321271150666277933016842436766159496541754702631404298381116296829050824507297941167418692243339057248216665050407438663374266558970556632730326610476778043922955847451405639904744829062209964996809565154479698713100620884440996717952387064457264881254995920235014708565742771697917395407734699872425196745605778269931307170425756136144345474560996352697601231566315191581057279427133465932033973636522567418929656316132128805937996888537594869094135165327150991579858476891701933460132614783120711414125664083783496441013836395201798858967432229741079280540496442703729726416752765420083910431837102043899353081583354067318076672480108851613653331836133729468866991474607806539312725352366634526035471107222847899308226903927502119962785093246019875191833259906734111349923023056752987158766350843914134691522379831249139650254477650938865419440268074020945997259706787324326876171997606128750574648612559218111322895553639444185092409723957488833347768031171154534947387889819927526654500563482646881901697740165612237602250761051081614936629325594491074097888799840454956264171406430552262017037356778364950675358244351832100211195779482967900424847114529169282091760874350356618698641538572186965423088178970901469636087565127737007550702864016406409141253194389271449179665667644452991623948266085316276001571195263409231157103086241527375925409009657598517434257996400704713455818346659182252751776352375114449039108694942707529308413808069486977155777406345844089486815355629035364408971512074934501082343258432873100070703054564084221580711555160523674247939888162290526169132304629622399578243291002730036046289689115276109540659208808274863221710791371631505123052163456046169432398923879257059680185192282839862798516947756838466007986374143163434130778278918844213213998774798850423572417164906526495223322240257435352485089045226029212158835724338525488140888393263930884448473113248985826702312211373639885836683634830629791851384625837829118305736666192265645270224986929740223084064882994428978819048038678045124772747235751792795054589837566525997637229622659795962921824870958240949426533607563232688971773008951361338985212069546185040709202283524355928238152494715740713709989532389924103808165749480597529508326177092651543683484356502192904367681824922412381882961517110239100183100258428188788023818455552861773805866835316258318526987205669159293808304705810858171876892181875243452287231544286201470322615975569732989005344720187929331564938314258352040609668073369022198181380550261149417802780286240708403987275591676247397328288229431824085018089064188131939892547773184835084459261308783537033208132680735775902131030375442554819155698580479526712974881501401507983338122428398849072886097193490883066961133489465477053766343945438010707235958731305934450428840478308165479835539879223159714084622803581346377523432441011337784060927789475275428487403505421995830181862181949809530518978600577321639871944470911749049592086101798548481935735214545175705725413954345366180381244358015154828735033652104457599988931636102741058771688218841395448103028324922112340962419389724915084996242036076717903250734535979423327581671612161397541480598540868489888639776333621436311074528567713038182833977573288383672058898614802568249910983340384348946170280413768324367167036361231974368165568221503636247784511037689753712778380299661556019009256675303969631018474034305546434465437402911291719090971221209627696488210475440627161855008808964238233247421002697951564096773912125000500097695871409264976246674700684546674747324739552115894224336054171316639213341564480185305637991911732637885722272885497357649481868606871556576338737616301054944087147737013275447614380136196019490508557774067959163938281839574892360183028540831473072179510437582543837146700580156240468575454168992874484794609741221851748765016684505442035495237157606154538790511356445999744392254606503421238448091271796434434321285654279573770497628868321245802707593306753779322267361753259518463661321133093519295670509983550652243659352725684170431714570118694336507288080220514855346639457553901303660450983443293717505978371914900889114054743119241018895763495608135143761924323772957042094062896131328675927038387901614882831020642392225274518090123442352497692867574811968567712095072703268735380675453620359633959386659718375438776140059702211791217790584936127823056463543656734058917297063604294399450264060924229624057732193381837989982241533663569980136272175306357338537394693717864977410456615533483338873183656936372595470698445469109925916449881139371968124081782128293330008844555814665722344891634027446866915306315861894873401466092399480916567440345269639846273632184946496547805398872348487742766660550500242792360076769169523156031539605926070087543114257746700019319050651344540100642343844318116743946218513976940355681828532506780703358982692562034586934751223842452596033358301975194315774517345581813271122267912895140249558439691713796684677716538881754250599477751718942465998891071453761019601176957197980052070465061247793563356295915024258912376348634657754836457842601794184399319569496315406868313363993591446725885001622806777174552492453522821455607372105068699925844878965447694767092449497123798639081441325811822562524207635090205970195095191808289064948954773105212913348053066666491889822494003722295177436414816430214205496273835054473046796411237152738656046034989445021048510571959689410473589109421082767028729565142104520033109617127524353295148586946174481916332132612023132989080691086604322350213194313737831539276587288881488008888972526990286778354289355643179478147809668386341053958216986415056978871273583809192871872919058296752903080754884305282298885630971167201672478886463691900748733642451410874471390796743699796509760157700955364129988220946107789770810963181405105103217248593019676558735669925493267996205962875195608640831111635488068987025142656128097041288380344013731501617877859954498727148577640878842369805320885897222899880490565880215615858965244335507981513799177902751258827140671303557405305051909537058207034342638680698957518819822141729084436788736993753102278335305348077236788650918685248889756318181123720485705244056643953777159472739048999578580247383238024905564742057815159215242851404082535231022019811700951129024931028069635256485720673242368797745319620569023221813181824441296642977463924324581323121656537864611558180098346589431459097274086927794985742282550188351346271885961079663596823068766290494835739333355158296003425128657856690733165129348829560284568490186586430175424564535715324557201227180059807349500602241630227867714313158391548818434073060390139832071752762804889682252803842552309320894761646325632968617438418482892177147948848816373876573127687748059487624181408413285435687986460420345386027675653355128471757585767697311544432656938892986435064879847279215400816275778217445280901896396684906416278802636867337963095366206118189142548117574491432711176595646891699697665110640219959161724430907136240031525153329858472239158258595357880743410104732674399202349513389561631283768572931043167493222923799189785879427453850178664947762900204516843055501162569200141550848312751932149276932108126648229913858891202009218882207371634795768326786004134429739002525933262077727048377684452482234081971358876372483442822113171022694084386943480952236531898736221721439410418709726608540684784509233531308886753553342105843988150974436373851823050476571435530219803759718981285709978459959343522143565033460472460510541788341330081698092347583423212825624619939839934397587563768621895023769332728805646233486640905077356066107795239273652645819927746578522012684712117661365818326930218814441655518414155542384662728649624776601155125490147000758320918367461141336877021168633857318296436688725212106850819689454291442790939734362588459391385460129305673648922210414060821454998464345565475045851328727302891113662354350261394797560594043934593598719657471144630793088858572025700835858413293214915652957234473498583192972105199642015666685915625344327506941443337387760855752380904369990590973507689032691270819794374064113438572602673951603236232706903846248824872414263225179733953609376218526722340703863659320471986502272191508718236546226321662478861089709282012814531136692587317745055100741289794858899000523831193369513391818452768743003407085529675413623151231726385644579322569274401627917725902657442704761007214031084224457405937665406469566827098373840218920981065705538027300840522115037200926690348931045473125376001653710004329745612810353407378050479684354060124053363580723424221839348729886732498048373845709940778713446597446809743033415479776650459921951048504616041447028317145451162472595704398446868981865105017307993674096963763961943876507476461290133348414354575951489037745486736954372777756549306885072762710784604408160656141149062018064517923195309876170180945359363347697151596399944213755485761372248434212607186140686580501933624288946372794028233241546568784372405553654566930827368694853158562164037399758854609984339995535938898009658068495523223627593881421363540542852010189131264956995674552594582370693924078641226223348882454633789204169923203580145223730104697043903677441387151790329590591418617899330273836873531459054613833547989562078745539497984805891211640239084048381588464588592855105898290644833205107985233737405455969674196901764336203040533300225386651743935706240939423434201181598087370665277289500593734906190875389153838106195074988489228533923693706824762901944370017050892835320578245653522641354513192381945828858072211087608939916000731076364187102629377389055968552589960270634842261454279425514601246010862693931963159261094961409112749358561899115516111004259109717867929174855622324922901331562152159237614131030729078274586533579314336630934080086216414282419308561234457947440835790307209459195375700938787869616451120539015120975899448647364473567906397760854290206666140481243231089003957508924781895708726363311085270983339541163372027412671623524277091730268398604934972904368770987712694105895635808822434004782089878161914066726188395755922103622633489212802294186374002206774344854598631547297526344921660151074918947304114497040130941441866453271667881578828257823594462319010923781103898549438797631240826318203151150466973859619648512403524365791712572454950611235677564289064899742275705848149382665050911582542421861832985540665515317964170792680517804431601143509318316317408638852286865348878728510865567581780286362765253193059584946932052970409394863657922498347904348289637355499324573957169528545371346435972580729539294610244889725961259149836682884329683952953207046620668394319606394113600215463313065965069522007330026911851741044995511072690409537253319455914116386243718639007774129732662764654234519077345472271245879482985523364314202000265254997740222370288185382653667040886054182033635510298418138181237681851401523717316113282689040901470700711122254458370518465241812023436889262551919958822750655755478027831347313957444450137241907296595209005365693942512233139444930906989505717477353167435376309543435647002606734723507544545435487477766172350635008915810865150441594750101438207120155626841736567711873574992936174881669309493212687192130059148612399216721851448795438229344527414474707391006520716915172449643774991362944612145797194426193615236516343964351116198418607511045712289543703413307517671250651531313770343048563577018143612747346971969861931636081543349775541013399069340295653627386474264688850974039170695057138150272671604215191704630165446075568069492009834318176770269134531921902760377950642108202534796205580887984217363818243787571029202605922215661535629892507476439141510538820483458458439085492612785584799426304772759354800137226653016708520187389313795009996503698305100894098662489926911703417280186356932942630574845565265327613576832173001531113578823831852001218621683567543287546762071095139731265655135791331759469757736770420519114586174829918326616461928360087817767525999703524684537485190394296380246999019644631628571456803542054215108887131326423651982301642551956491689989828455560324264683172676026146181319124188959573895199384308914327324984061722538228452550338316450801803978292672927744003441878880877608401408843528324612967005296349581217456092912266759482840887567031543866578330422903171404430631291697487059852831287015057661436681365754593466281876029421044302587901674136012272575341433499234299943027904856481014648513123533672306984113491196209674984322774059212404706281121600280481330285548240222139497997490419291939879783970434907602560669214305728280675034291234615800783552658224017882581545256200429182471204536450467788506686578934338609508118862447075217953174059709093797508524542096848509341605786372822859135893557422770970423942327195142562738510768949662187075227160315082182050636128487638927779505294977740607394160376950553655429646007198254946518560227957560147986821630056190424952481317311337086746698322585343665923093234446156188901832335758299495974328188625013667692810625520911482799946726162056176560406121213941486042482983329319215069789128581279866709768449581897057177437424398381776606984599035775918383983596961326281581344385808257266983501039730701775070787730472331447288285400204725484364264208362913290106003491313624959730869727237603419983355474949694384545671170938487435946812614847005818496131728501462700889242747923134433696386658107604533237858492512428740679187553076598973261209233882933094576761996784742301942666284972880205289829677636666268654014836021197720833382391719107133853492420449474315658237986845340099620519440039663189732491656632368183492959748043574821639143203505277614543027310009847273029143350593897974766387808241723793048322213939479829715989654684834669119525721926204501616384936155822899132652368221851122153068680066309252347652616233597367162855616737870043602903546062600731262947619718381216074763637507233021010585125236831407924800676904919252657753383583808606468135987300952833779378126780548358788588124270915996421756308329784524573411552495958897354386975319913773938949800367431422418087679156706801867521885569755795456056342989955685567577884163039324725159250485129019112021877160450484904168508954141507873576965256331806369415440288268977377674908253212787156116227082192744300652686543207003274420415089435307747604639295442702738550804753660572007260427511529848566998463707101503642016357736199813956046312066028495791696005311389952588645008895749698544264253146493239904727568305696083652927658072134038811334462429055821716875227207351868612777516500819041709561187835970719843699178906667135636826434953288849163904407693667742951999770446541364548859939481000887338770188325869827806212009781618594870795647522770601356089804838752685507852631386943121784020310982347124812519493747260681611899794115812766048202614509485233304083907206627043658489149452432516978380149371651569126218397612426968231355797169959503217433260160361561837023893579539771274852574597491221973074418464192913363439712972758357626508564849357320112352101845787371593301975690001757804577181602726455303652353804132560608979522365500187194641760455806912890140774882431213287251148904513443899104208062810613110635179846081229869055599081793356243585190071945942754409009163284293182072384336189369166001595424449338698505947590511450238999511255392614797603285604054421279670759662638734364839946059856633446843026400679448372280829109297222620832530879612723708413996069658112645701069862575173975191883055261302345734445221111905505670980978542370354236228727438192695907142708110412797964404930233561251765741647695763757605117357634519651833205486760891201417123055377979160119976551065044536427010930574791917980222168018525280621699715744950624112127207936481865417774526953593312266245965086410349598848962247382711273563203590849722120875386503722328500257052014334753773052733532539493850986491304401410762526228683219957329756401751952162214286728208406885346912389766266544413283089119795760053610735264267298530229794191305002199445371529647562732340595420464163590360298187224038463881900975113184751838520574140812062516770997318374557944806863170814033902263736610339713137900618308839003468778154358285733219513232532793619923680192036846237413202950949597244237109192358095245952187018426149641109851383521729922881662335682025550950376008682330440660588603043896176373864757356937791935444512568624441037846776360255935375236261436375102909416104200384878529146553141346902755740528545689628759938974757271378332681249641413070681625917209893146548693934417206923996666438916411634899082442582443776127665445076036313291788589873596728612575907063038019011368419165330052563921091934197747541770865193511129457928166167818664998154835785475322500014848624969508836969185726834307846544456483125320653830479843647413224340883793806089938942725759994517076601679835060960823432245749420001930271435846271707847737173499395258802750071833942674721884512463085220420587479649983469790340590009123349853603543486650113688738050190054322820967823831847630381440837312480301078475168886592570555922340360185800135506921356301863798805453363858765707377089192899895181881777704408532061187138644755781402691833419306510707830663351948862827268175096973225255002455278026996251483532594002356543702215754633287604835458477234059238385461780715340600272341424307724040378412425432592297897855629470123793135065098316444933513687503799340433228276201558720245402633178531465083559101569055586011371272802986384944479536957671505404593363892469041398917850798315402235035992922336739928297034645011055878375337011760576898608007773275293496759237209902740366746157877243510469031751451368799412601076878161337969834416891339779325710822976389515383484081072394205339379174567132570406611958508107687737410163053757530042796282849584054015532694147808285760519704344805795271269667062582419102985321199703259797932421750250269958860916847291005386162501094485926990486553047794361613981542848706725807380353332125314351483167613917284871344064992627203035918853429318048909381217707438134137928471977067350708061920888545786687262389010468690936235862948884311484288410039215686512053053999109234272778644534715468930429530887865294995703409542721280038701849803474795669941723726365856429681878708766958570106049302953872553810890582996935273845777746818719387686701762814784921460432418907268866191107288903219147710933445287557862650736850146577035507215814677674337043730568746338160613960912594114941469041921095084133944343564048967712622934068652476291210161139150748022033418862356584894905530154065938213943401953844909959472674034386412619524719661327057030970545963282820610746260579558887047489773151861297924927077740117441855279230223837145322668879504701957197669965849928090178403971288119608548855698784186815516706404610316559532892483647601200712722212277670192215468697140550098721298310373387452697504694370503834925652194266571876183441391546433826978884069868135431292544406818180166464906446657995547432616729840231650721954172317687202670224888951021942197584377649594369332425182236123348970024111568697379143028019230204969328195650659185330841330249475347807253529076069412384815049256298540031810436789603233733067592942718181397160218610481449972285425914495364614263826307357801881211386882562843149352984821904247998712171297914298103091127696715798458589470158610860814023671717621868424783705627808359670837561003057775905853728370571087580459974975872548593972986082869937833167867697666459222222719880982205489226168723386884784974472851867362926021725316259543045085770639966412931990813968945973171511765890824830644846771335238818213214748064532163183688401756974433373041233310092546169633571946991013028398356672288549058279338331672118794175066138766986063024520660927656204451820025814522149186860955331307072529967722533885131911471148896659341603431403832060793763757086046712571049764863528461480614138393708631898534446780018789791028825246924842901755367832804936286727019940417360354016412616149011283028882768012771595637478837179156347859000976042527473232955957630969965631562730454840960402783445158573585352844819540658482464459959869271008949263926987703519362519980336854676721760022799331223041052871429313211070468464848414630714317181939499433638204883064032562429804046873638364090572687397652061071098573043632678417524923155169707468053535433387837180840632453162821596822626502178450423651715645680628231438707767122226024056346529345471911082561630382455296849582596991796985235027354902486404900832505060319499005011035698544100605831141609159403595275008449103126437408587285810423636991161543156634919308795701132539982998575997084831549778064593130665724274464765504041680208868315446474027738481162881274181184699380772871772540092726529270190312154205212486451655075335779582031758296676097317724858148896381543208667170657625442030896181603335896564977908786745339315196709606859003166281578459721348177819490842071062068240751388527874011468328111339223790290333996923934605226986218772544245536123118960665684801979299593906228780542999428365306456869688186197725448988799707907488461871270086315024396171915455870168830381096769333304395386321996966003565935092062791914030580374005034342170754067806193606468503810947549689717816271385879009083031899766713753860078878155578292998476949055182903689896414566432863865202005166023727738954092692608345251581729098792557125165681792562217873121724299158764049576963583143572889549060032845699021094740740615091754211309889487220400252411494387349889807150187617031490490109876780476839511294728642895546322557148615348533462432926552149554311287841742048547520131316761329403989150672882722355275311676434739034958693329917032488931625081127471925270337896845004183030119333441728587646399868490703434315904580687389084080262528105624475953673447761231560836774959712087178663117189435747729512823402011849926707856067370573181612123104400698997464093410414485581540014294456304404799966978417738392482509016333806531893512285365810099759635172657167965567455681994987413082849064076010800157141895697716920802765196582335052588853622605214397238970715609946263125568901665636667743461282000772848971079106325600410722487253976172053730585044241974771110468142926243409969170736049943953193627231292484360820261590272129680068863296672055597723955060016015151715725671039871000397032732672656925551958908030213406647367834431616375674760604883313284822162074144867833964649602874112300116849861465236849131632671251739415575995684244929549475593078154010798938006122016879071296472671192503937681992122993423724460488399168422571501942218420958371460298965832256447829412070018505113120255936054692759061602719286744811702854068473730434086983945537874163051661190003094934709401469822375548078044950952787102243704128021943600714271109001397411650840610483026891684631999115748140960120215650521287166371916623334377400099543783050260454697980643377258271798936377020498538135458649509460847778047473779804857873395955889154042978647391368459716202594710009628988731893928599378423456400767513325197721356904803930134520324413489618601204201086965980258700950513332427269609147648739053554908828869909642594039179115397583022535063534985869725697340536271937508496256999633164997470983344427334610827142899158708769710499906363035431608773976912365659981419551850042588205793955648853408966966403500788659803837344585640155797080566856767194352586573166555396117251256378242911784284959973905437192178752824471074146039569272412768537700725820146424779410716037331656110941632569822862917174911913312385196957196935335994592883978211934911496293621801629648705343167765172542471946662556749748409059677308377030369691478234624074614635299580784872699130886212456017809967542299230005045467089036922809111331128672068087951795326456547942825762393886308784516396149327208266427648665897006051052745503798296456275641690097669508218396072911016766573750271896333536588616560722759780212644422898382801573844399226017185451939527508135778811536807940809559711505624952904178539760628311016515458359206128769342793140047146570531799871807400627220048625273585645948210604998162741605420148583565777351884955416513065208568582938493159093954076129746418834607756173078297825129838761635544409362830454208150379884947906388494592938946306871581481590851383538050030910043064421582532438613213758942966972828520654379692502803435833520069902999308956097135753932278557534513578444801609429825614835261543777220727480561598669413628459429664837620881507566566603700565924288406068391591370620199716115306740567923955979819853670703961250481130773089742934344770572375834011194719253974627587870008685176474401365586921043902808619468962490274110139552637050948477226883253663558300378392373275727536662501558423059126439635665737398677471263781854414794174578578613770700061649245727394155785875365637368567979724844727638840941280053003583441453805664238435338184220622636856398327460720112183633895828348491040906889077676589780105290584152949145352512650271499455701283702493976959840886933230479915744900367714309731662716711149427174872668011120354291721722194032231030001863161045120436368438472882905956015993239501941446183365314870509387845581437428014342994843561996599698219841312862222816425456342850010142807796035325563627169185492987538402821215856599975765681031225369182066312070638766391595160040391905120463007795409264749967356010691746309256403622966875153590981627853965606738688765612856124322686288523919553504075603992260620732377279484501079077243030225779599184068685280577965744151914921676143261111785009064912758520766764326600137269870307487278278589814998542050754255185667276517379444899678202938760701901679952596454308977620301642568829922877723942399740400472467245528361365604985271119228028837669763339274843362482986587674901043842601456803973177327237923209226722363152016620915150239876869841574520281698157055218503002320561717782248778791035211030757647290310784366827299591037463677532849508907963164992052719490149012292302069727486489893801146314047666575034858579186480150550654445983211671118759027901075595684863465203170170321867766736900048278234496694472922410181306580785854025396963597488449958377889360013606963358493067971156622429917505500421156486787636109892358789509670724749300227896151777540308569539182914365324815144518701593876080577621525200897863084125501546559898458691975894063595257436094588465270666204596397966402420618342960426720389142035610534151463493765665741061306229071695866881866530062024985329321757163594952242826162732478644733884206505191098305435283100826806829215210276512831381664163326695745793715866689238442548096521805331116735128618820807213531845625057734445852739449254484965434200630856602483164299302762590297321688533067003201505941848512192261847585535548125744817704591227452074860719306354323711272496931945381006626908459448451948402611711611606099422621256933223279376149587655979214937552313072321723810599849147653855188785880651789085173247398764626787396546904509765854304587685146409507076551947167804913397180277780051239222837251712853657247870205114108249369797948350698087954432305842602644961427148616131399721337832236265409908517825704056710304493765314874075695776614995979442797311398382601890833957672535186736345630369388973243832389805283612103239790845166321827346514723161014326002164530659819526987273558634758192567231483320908637927484235063620547189358370989259310574105955560035544695078200631696137091570958537298040356125408758184512058628826009229183975394294274360860928914644872449128433060018037383623273180929572043445868039092154808750335678919588701287551110955504891151690835023726917423887318544916307499464936577652936751994486958387026424329879302886435139485634902314946752652050204523436147513374976669477668236621938254649255832074428456135469792396566107427473162940713350296147380664495496192775987290615140157849398236190648077575433764393990147785114526116280227322140257005910337840242249249632070957441856282938075103969886350845848871315238427841397013588961680197463784333779638482457068572201030742500615207942227884448761072575883230132167807789510035779450283734586224862221859000296420793657159689043723328627718211354256725180826276279837805259414299563998992583404617267850110387411458287095689070125165332665669210746736908287840232463877946733817601731266486067750967835592016909165904319919424109157564244179418039693907509289694892828220259889606181647733759744930744559212017250156594545952898408854525610600238471009315227641974962836638724679865323361808397353003155210988215273522846651918323710026454132493512819148749976131979754267846555408576646962588697240214838903574903412014118243505551069529264219681507520560851157930683743896206319377514633619398427749035889683668273234169322323830294436367470744725017993943448693305241111933774662720653700777915566634266855821255563790053806527399948664204907219026895677279888359997688911167389071786718197267103675694490625025362271169357597200168343554020012114466309067778410344611083207240802919575221496993104017147873574728844765113237429577545450249039330654172328514617865847934218584342406073361625314813529555703076364365318047701051773023384607154897163543635801958981442133487580445532550422984911707450507647177851295044483672777979525985216909600850765241588086064770919092128405335450210484929228192989328086552354162390091636309898949615073204084943451296725946899065730041522175030431497852251787076715749328507057047806156214292564776702017166837585884615334800233949371361321915269644885350989922687931545041032712473382182542769314978638657317676949498483478928540166261845923470010019667485361297564639045158228471724012136383432441313415312570027660942709762973394050003354513597587954723890352669899872118739779010283001455132838603123999590907523604552279073131491284453562132639167763803268434879230363116140514061871899554544315328872152530565226725803283277354224451275165025814031801038928671726683164303456313964653501645857327111594849210814963358552351723595479305836159591902943975891245769972460906368801500100739975650400552002136273755707194451867945397051906596681427824612481586688208761407915067537135405634991329844004069481568610935537202806133495220635030770471087068962006344959753035158970644438908584049140332298524795580483681356859063923926574534165104772695901234080303855230369982705714052678926425978834343496035146771390736054736383796297015697827301476202465558905779910922639653835348814001298071214845956846226214027787626042594373840776876946659217174260468891982710430714002835458751878361828517527142397013843926691371357486536498793628808712233213667166902037367588937045803437038675248191633004374297915707131330011037331375292393358143274092132265246935959400424350346367540937915339242169586493530836663405792513623732323273614309337388927104396677826660278392553616620463349054015291596716762183311956169693814898536511245582027979456653721446643391064266923625223629197790424284533731697713936443306020054258642466779788523236793231702476314589347159905951406429144954224824438498094447992185956536730037234106630223093925566974487753933834400345283356259419059598688039234123522914506437807916580332077499239046328398597943877635585633636029117818265613381613721896112011910367042098220159149309097705500583097733263607688153160538720057992771609497659864592144830374275438990792701452678985137244855230816285993953055697316788488993267542745169510197295500702078239000850862105774775959247852803739026529800501593483280111997852365946984539120413363118220846501399120780669958706320369544959963401134531835654779002406833757272972507541877133412349700906305606160695552665348059280451054753954122160374607863396526406511371468647341580174370655459271620816785148648501090451532129683983313866583483451806945503978625000250561596551555938377060269679900865734632772200725912854802425524481436196163427110097362835253447930346617949338565391207173561153855362087657242658305091840614544587702025265168097227706379843061704107703834529209342405850043271452003705934842818663051562780226717099379287930358246818492603442351120000675148441727588003159084737152072114851126568801154350579293858648175161245682381768827232260769015056527336204849760492491674147127818961937854077950424695388551708158396662527592856377696248610220851291691259337878488887186360184037665394645263659028860415660979626893722859379253776687373700523723755883974749658112726317806819560142422927858439707155623290717331867250836181115096766986639254506843482550813848193141120618500664043422877000910935548004937812520603586768253223958512859506973383605416960744815506908499689293738701751096310586095211993478598726057110159854500375085064316651156430936623409703054023951229243766673859219908794515100374139547523779371840821833920419802466675142592298939411450404994541913651300928899001079248141115943236897822538210449376949765457327118224269355591376860558379162475246562132370999376897281343410990281166722878822215418838143527179276174378727278253062980090776136351109649348947791515347889679414705857332633820457490541029357477307127956524868175496676269628111934593446272516294989595216486385488923268698604944398188697200764016442345646199409051104010709324169752643154421406931663757058030044215944091711897331830846654528769160156562898870852444443731035253113136710853573522440669498771624359037486829385115000653498953738488087128684760134857147536432461177096373986706528237158340286664762692466633528261763694667425744175637951149360021714231950857826189362936301495565444142997419141567518078437591225635481428564099230486994466153683334982290745633018641180946670422229877774341480443674306984111171210356184171357049981502707310150252682373692434541071738953358621841685070382683980541647136179096408604578319204284319568535693900630154917951914701704996276244403727044544634009093475756005398025646116357453709100715902894799955748020599129127345305760905098510670041541934203541868863788693430919283567670638336183855367952411248459930981943345319812109620504906715276414548655056949509789181485523427269891194008403605727811611398288637742223550387759364205740004957562122344158731826625966756615568995718697673203401377799679894890004698134111258418426284033731183127476055387324553343766510308795051628661239426764268103678149328812833606019700236816466258280025164808885553312200714707783515162209201363452596455810764423794054169508221115839894633624273514566353176277471255235970205873652342368907775545165582212741604856955800033501771374924622562590597146156919716785846840150056755944195470584733433118147846356740727098924696437817691297350782412130805700766155167784417132513315165928896862574117134208012213135766108871130590542449521843615147679157131275511772444495032667332829977163036855082946417254843115338988636132728416680415071842795384343769203096096671752799548922174295320613881566908183734508960355119243895284399248338361725606723510226120463102476628738231550017334938951213962043377034201220188894586061404646585036615692755511411485691171619116319930645017393209760199280189075102785008327107997954577831510533142140716141833796027918518468101806408993748159768637163471083056075584883584354444326509712767799908201922577176610549162346996524590555858046489918654344142355328652864571368418457092130096232814671476190629237995871757505938555740396715675448319285727832188564477414017638610056505719603597393605556463594753070821575486036608872831602199431512095044876930711832000791985544310277182421883406015322048985865082354763506168201277842322019056985734428720321178690394560326842642571450187097609043748759271790333704750188118071826520338181171098444263030806749107217579437230374694439467228934787296321952253647973890538824125431120214411961666518389602589310291330365336189414100159269485760843100845334204719613529448974759984493541256358571253441358397464262585770237357687248958886952957976000796957670723638679088541401556722112724933651794504288231256468549998652254749553625441458890375217309990351874181651314602175387579488071508978886171423592627240418882735844208914038892164437700180159827711572332843096284449329525094521385184093684249044398330028025683473860533326530605928577872100156667046629543965180491444388432088303465836077444514083224020565574419834858009896640855025941514709240852736032855831484974061182924129665354947447332645836576689153341126327778579297740434069708442098654987148227055929971563118785025631405672364678359621767640149758873492935727893191622572287523474245022810063609883633748100355103162162745866497740404004807919095647927326562964030416158681013337546938811885590065021003767455171487817128953588133116043242778937441614185314164874598622979282993222877553558211439365261951103253652310195639671309879990166871456886674547797632824439966812663155302750918388097490506267430177022857699837588130465231605994293916502263402546582040222647804299230338107051991023213310914773682877241445247047885593900729636602790388378507096972702357727069666141159715282061433698033911309133807724857987860516375730095655438156835445552459556631460864221690274667153889051725097740118992458399429564791670988674792462935792271944056866347509865210170290357603473139196468054098384270942218086451310083215599058776896001824407055616964304543989654414497022088680591755755323315787673882788210772609988225594277735419204091749696800654552376016514547242667806376534250229057093024231734492362104034638450766672203770596014511332508281108041897164509692375557447339809303112994022475690706063913433132688274724662833411789585630568977336271922918673870920771670800250945545239606947037287469643718298051685555707446546670623655668984369611429529226143462433859835541142319251940568249833590719278418454003446413695067359867052356107269661998605388755371004395291140972322326836738577535854535541396357302898142333295069484379448756532578229513326087681513533228813683672872235634387042402767929585064147852593067425640161505908688653623254523041887666244525424877802882398421591906611564967895967296481875387098525489316604332396764716796061929364870046592708146255852422131129705492551634583001827584050685331816967305249370914309033774924683282048174156545884384742817183988163482778548731533126521255826574301999387502747911949992110371654821150763159967936527535878149010408738120715720057550634993803670283370088166111725253979593100608616665479137905996189412541215728719794550663473661555682916163865806554155539828885533534837573699373856164006294643579009574810576883893906780221474184184485612039793691666401693873930131030715383580297809918449062381592884021606577091011821369799515118371565056495531345159988408892352335758142039807615150552223103466353055224742696604457879481431498375816966772962938292610014309665477449162200279549304893864274174016573532546910893559111659303818218491783780480030955421866313243933854643693482907798897305613086116727421777124897120382638266950046320123175578395847817121355044536740939949449490359703096933537512681642570214825346112973258072926182634482217133246965115383651377462022679479755376743660353827091914562545652786184540921402250279633141285250884535495240615421254593546722010626167879750944546448249206412032018046699276562121370549248791641629806911006525432444248441761640196521506710425156589836909891184059635820157534170814071424403358160083616285933373165606338410650320266987581512502820028054429632441848034488879830555968743434061071693339241381651589100995297840403050225744983641069301785116066267270532519099841747821938521738834495142988765723459115941920270292048265354885686727883358945885800274824826414754870398027852590468535493153268813260368284757609198318228554261031598447711035450896274280733421666262999555205621591060846350449093904973354695353441248815022885325535211225157976938762778681961631141423300142619439409694295440901640947525639357395091338500573668106441306645069270140532631234170108277454332656852692835704407515213357525867197568235929718924690813544310658708450676538349513294620714482865059662985687229034686462931963744799054794113481387612157469065359583504906994101060751691487184711648330522669756725163841163653780127070037352584449651645635832669871283118440340639509058251591048688596455518221123665442023664820102796189960823174523812251807174570012294879440837111750189953677056047927895043633943920719217248269555203239940637255962989537602439752640941755872697961079092869586310216095149001609555254272170349388596921013836205772808334173248936896172162813802904636228771525686976248016293247700201136585784960113737515768562189465603505041962265191860412401111748920054933079579445196158117538887375922387416894078491861626714818127982336579132420765017357133088945315863739376964138410300907633523282600894116844629504481048817802133108722913229886488527302168647275144294264113101590418704103976357333777342420027748846573226805522829527471246044799917817727182368394908013562834537534427271243062560556763487330445842813147281318914653534759394926492551683105578941552728979786954704551831566500907240973834318467897463576397445451507818942161125485203658863279481278524467297332976022146894836077072374586841955415559415429917606850714724732589431239014031519999540632989244113595729837186138391223878885943953800397287408517716863064327217050726403395473621478334511145693132765452215128353859948517921267518043046551651408518451867611144274791241883762342175753932767834880083254919443860819618983344848213004690165618531495097906573399057529679945156735146184409863041070325328193681270769670607562692225728851839404770444700917617763431639831797791407289764988168967980055667296752872732219971208398278029082705431199285647646330443900765295503642161379847499843847980482268644636530153988317034459474170899063173414542025868817577782385475133904528049143496705500588586740195551962702652555144679279776878598359948148471270177928935104074350512562271383946122854711140816348096299822667843324322489608510245967607823372565229643931555035730285012548527055664157182142360414130337698906702337482315384957032296784788326167470605511760660540647629045977110465884581905936717790498150534472850336520508307102166530745679928753677981748119691291424866761151692776048697222076681656731516007552027216574161145325555920518858589228221468968294374965281401174526623441243979369061056711663010181848941935152442034744454258062948694342060051365072733956374450775347643246196567131494473649809059323264805611190570901744565365029288109206196528102394086047509072907510465423853714242333354666081743695528265009476000315939435975675732150531668658015485840178306155379291867758866599938209284006572014088765585412693146490039644070982527531674558880228981873645562448976477875831615060866119321893012901062984512433625269264922551568796897740143248996445225596136483583953101065335945679141008978193197330093053506707135339919655479949127762219572106556776183547189997506171499374089165818778153911634575992308444014942510101182238546995518371384903305587684464947147945200744729438414451652144150049614700988932698726432172805817575247400473841209125147602738988022360091080293704575480554080825234077832962858436094875648430464022102234634002780193950697144730154297084495462953899027265323475882744708022912657980487784168474382780871054374877617504815117517316939103146899461074166696533880601509794048553475334865661333035856155468849147856182744999231658780356690974994205326653601585568931735247805933394957791242051955343927384941090771580746720594762364417770139915211747322513364759232343453372626516916430692871998817775227611948875878691928678549543451000451336654112436799873191578312026577189568577748896833729630854998251348341749512741824020615656280357674881792261663121651852141736751159799672656321731193111272410164891814798961001275840710245083984149850431439750836327477030350674176343729109636809967835752087551749719311332111117856131355980477326119632214633108181603966626686532951804034095750551123255773104000227103343062666710336179835265375183567882430769126879885663307503213161897080640844262564931845177731560413327617028897322250458144671717396122855286355911460095045198946154901586042638872622681733349678802570786126101019879652129075114292465332946197715087685613083399530720961998946895923513743399482380716876901001583964364289148253405082055092049978201073560083809842356395773351445577235565197124950377767030339740897208301035303033978204699095471767937660109934296934274943974519570281904162422889892659640747683259909183699251187827826682052674407201021454669145516442433584967010136597997074923076737583432487136181196202117989809152954875316891949980322795894356094413505202088644134573589433735868037102916996057685685562490694080943879588057976118483284351274286810944351461424387503496082397334389169870217319650685305943742587485346775713815186880686157792479163921269692783434224794206213696939079843139554924221941406276682927546071327478613998601008518093176345686156221727066312564197365826322642207331063919917534829738547101745702359567671512310491531490718328765024211357302696943270271603585108172724087278139716120250969057249641273697350602132537974571221087144999036490962376666638547159366913433198548059446798310801933627595665034091929767353850026758231907931148801259132030708648751752787330554497057878257896496926365978172361199865446969482370919913965636108091533949215378930612321271633130523089906515127424370539879355065979953932753674411373662931433822977565482298123139432892055110410539690056926256659493975642535202442470644844028656509963965692478824206823710345677327811025592023467278142929058211764427757852458035488511882220594685191908353954767677744091744432689168298245149589203432665236944660612881268270219944695281647123893094598703907478671226617641654170171153425251688176311927229808810197790918423550856798446589310451135421317252494905707172912001680779345784342609481148668505558677646294582436231367117562474553317152878642013090320427099586176347655726403966235225901003347920879889600547988027649423530054399461904999453040931075114221532464481606285531620983235514997013826149439505506980827712411443823439942476239687031120174718442425440086475520792977709437144794905775000360432586773478348675877131859877467215995564128936792634974019281706458683713347638824364403093287969786146343978561501962414749830270954764826293455804611252169066215800533271945574481921953420862204583599666919876655043027301205255889859112657772312558205213025670776221983927468273857482116871535657888742028859975442294302880116460413662656702835909799100843618524726080190380046740695069302788498609032861210382681783909498801592155519315624481560336941364841645063146706092222526713241974851867979806615618589740937209258112478776262668709524650234690686820594691824904318196191687923851363828362433114165171621539046910123660113729617675789728309708239537364532436669229111504743495695166309671128962141612802815741833441232955093887857178774548755966768610813677589790599756707529817245078971852255334790433471891354995121244808792477499307897371286647362386647817471992050741650015826970741031076096869142296829110552593353313823186393182648815548594139399938845563072489688440904835347234727949833753422026900983111423132645989963736199459384247674418784791974071273669017606985913637708262282606994959359440225670879760450954592909105428504830637644992666451110205636032850633296063430172153956774906439837452013854602118299136528831670643504071506011801027609160303384246318785306375186259634821885002282746570676161880109194865915380945304186334050256660768184270347863050736855314620277918247394328697007176160847225318937040895558106791396793222777397941615711496818638412339956965912515584507366169126162718480749375294725339158925669841422251394608648642119109761110387799993653353144053852828515720836515127831113440031683978740883538636982624784350741721702794872709546585333603322322225072419677822339706319368364753917996457458799793269153831271631529248395651238157646280515537244502221495643792377699620485236294944627657449833612147769711072447292726231119632217826123265241201672685961951545840693437905342862471214668637291654100483455839023637115038977233487742527318790917757513267902303234740541238090593441595838183503862756796769186026650425379063759867555587415291127533437096980683861661429639214094010545572285216808840237659365638073887375671997748955011507007993483650856368971699886146394704787548087528531269176193827367400406929375724043301707713365981298586730444783472719602267366707867134491283421156292357259636160944585947808521241287321374383031815888074135261634884005751787876914953686311424976293727551200139707695589348871676132515917292317927792989416278833097469476405540516326546585500294334978720988183878067781261144835571252605238816443621749466383959365556600784979022047334080739376095115476038318407701265284176376631222868341655880733575731676933029204730887000844576864318835277253546065788267622058146266923407901184835735209697932278364384427212755170404274443439985546906819614539955038740271044880492827077404075564390361793243815274813309752550915574944971076178510561157805099553899230962813807850271001865750156448015184306645688728952424911767578194867071008514199280046912000414709355078483581874015478753913014500822632327195747800851659277673167139505631815129342399674378757536656569681864076542927617979333067079757048120686942223660454785807896282305221287545570394070767819884728300618506892414256843863614402358977307802631192469149090300494885561395993900574839669042329252260228034189992017938678795255660756188001116299885922411433806850463724992539284291713369560708222920475374264549611543842223241893827385999666224513861357558762154207054154925972343737734404228028263481192815186560919952187912090977624566989405584313156853877973636797911939170959559222675259212284066220905906016265198715760413590417915578229880851317145471974683602094724633037087410812615248581204059585928926176308392906245190752177009103452219541245473947289221008893976713419547509861147614974525994843563715832760556497676237308894715611071419638539149885884844785346099361373131346076205130789021589182675778819964690678022747744844025084948444799918387053734868862736519697193655319323704058663377202690221963894243124045388295452210511175147499722636639207334504207272445797167418602176684535310997877475856574247201943367510416837273725470038407671391360372147153406017489640601996157936516553158539057162463446801068782146396972910060516051691046727387292573634122781116140389447613203650363486775213250551583528904437950165465137680350550303646864037897602722387885089145210921359069163361846235954610256435766592701351226727377738007909242602604104875898993328344733929233867222583176729732155478688415436094754975452484040330765174444444206915041168448782065351238515096812895918724884909488707364106060623621131731983826207924537739936927974414432755648261177328876378860092319820173545909677533862366961327557822430365160727621877009923384754331310900837921357355378531462285637801180008680050231774312361037919401109389480301881740940600073518511555870575310657120012548322870769737111589560424151924308489213685225933237873326757706082326081957244388599486945223089299540878275388269918673192283874772473734729046802383171059566858183918488203505761532245310043667776647816045942676743591748880467605853351647790016471329347019726099546860914986077321510899290303669931835278344925030386714598012648722858128224933656380559933372530997120237333098805274059635845524145632285656527960607096847747681415141280648677071695428802025550372211648133293920934712496679320330941192411742025064341354249437757630311346416206918798054332660953745488097297757939967142706176838038871829431848140214516634161057955207540246033562001786629512893309987736315337989458192386907116012358368587178588001235476319786181352035407776678798793668461888679052871608074252971780643126252740690676774544463134885497729347211463753072867961447762603362436936787869145301906645606290918118827720862334525124807294689214025797967643198068174208909434982769302266080521256127355433126986596910985623697823604223143186636382912321970286336544839801191571495416814983095523309101342408821428985211391048166124220198278536979216621348659223036354169331039133394524241987990779266005862051482720052396444762863999220212441736789134619028797200863550333421249172716636404988664511228650551571231012594764070883280227714129250978984159602783291131268833405826254982500865562953357477172873090905029343790561566145921177094491358903631884412742098013058441653855731037727245781859442542357393828352579314558763776292330844575740761111001493750095464038298472679347128726288241351043576903537654435364959944611457717136693189653880383277133193541131589599234726882205451004072422878054948739273038303365649928443853823158827634754534135850291036153771456773862003467478823932166438953933164188513024944021546418413828479460531502454856757517726285845704300123112587193530294073205889906768548753139506489117701817795688327730487337789353162277777738691555622660231364212963965558111358359216001716121466711799561145349832447324514433666660853526605946817918090273980329801235453113676875505272513149939856702988160796363662453828586078935722646927003279104786393406286578578472106416499154056685691502596386798169172905151940856662392350063634915599129395418921729186000742401472006514569338663272010871107316091980125043539782783014153738443737493990223632268985785073364817329460267497733868302360839214826966066017325424821948973296999999886866868391241512761841939680596848007986889332533406880265568372178027480150679462439200780130897162765926148035439273100549579968089914889646173211342655522162530173677984183706020408472934901860659350467718256933655875968617515224187505339158946475118034626603264709643987327549222942180351872136923472123558639383184325521691711402370297980933242262592745662396316042072791885980125932832267155138868626690894761477014450614681853643766464492983636241465624488136722566450873195579936899566942449042989224437295873646808909421317939225813799428304282587465222834054917424809569753537085929634386370857015901164051600387306711897415997031641783557439108722882655487262906431085476441633105923273617793275134716408177081437726651846502156230124756424985875331178800608382420193178173295265164901187577563069270190057412024574626419759072982313632053687659587893907318725331413422550491308128177218824020989109412853250911452877839590163835236448676954629625874691144438435654167049427034581364413411631557089574044526750119777683260923719631000604210261321214824463134757806998419687188717870065199658809736461927101531264793418660585003997154757783132518939025400149579012243240434528986213842878856584660931158802588309440040065506863361323117894486837161530603149424837371685111479045946781340500715640962537132453346666152340186155846696986445126836503571135416529899423754482463510164540144060683100810627830484114185983396733490287149744396702234057856191102516441929019611806914973430771324520615514218709523473310999754055430281080297392304233289919224800675001159134348493339943401782265620249612549194353290785432194951097422724520034976997060602093085254425114335893019947443877324085518351725104761824887300450111794490676441775619332335574239934442708548571268603040226095586570674863768524158458116593004932695950864381246349722165859279689680791600653742550813729076074561447458833379966707354131844288655624110534585394336283210040503404330082400233019710269239503481043524892813933688189489388581466943482461237948988636838038736738525163365926323159035133605701668281034700844411983971673350222203465899175158140109014765829156473000546300637568533319424594668373413336275789446075700436852830439063611497958541673558682246404294422787038641653687895650646981683243844603151395800762579365321559566584866007417507111151824674176353591131340524658545038630414919687301391404729530222446241605107006931576895605344204244819847921686422735844662276038742707385009234265871859232614974325611882879496661774433969468701840652612870936128240966664564181534364930615196197293112739130341794395457175954789095118064098788890860250810087683236148629130580493427716402801517539828166612648600167060788056114862954572101969100541100348026095796863736069792020571179218294725915725009378367662313791802597330260740406176153403408426047202513646531282849807878486182227257121493584062250182108974095134076652226454311913278118858209944847933777792638799827673081654959129064774842839058625537638029384682357417716330297262954685612875565625962982195776868952591625857240603650243033927145979094898627645684331765786300992398716597290261852222830766950738028093883819413710456217952082471570382373905322742802471547844855587041136475731894047780851828410410870717786922092070424024068496696445542512632515349436074393436234384304313511091108248808633602379149312363016916488553038663975754158529038104832668302229614515720801499679202365905071426863849611943787053336501183052775443637944512336666669149601639306736631700026522639799737717866506509928243665794361614909911601065477495876257251965307566010475183615019823359042589314489783663306166497261108283779417888617036243076112022844205844898423565310366849453390893145217767774571009937758121479413169397739002951026129067978750710594255265441697275657429171103912569151698126444853640888540831322015094596945608087360601670146658169407955962382181723129418577723088368329628090411262980932001515271151445108494746211529756569692012213125525022436670475584436623230112499433706821486004505690584437050095208447769513267212098004636750174940327982404802077312824811469272993188531555390223134746313737205515701972165027382550294015125547819737588584130583894256082852214311281716899137428054730064799969692640189678911183287381336176977000004183658958277358044413802888407455514216556570121012515646089791591778668303955277096399422279064960585108839553443197389823050009958679796398286643144041805402915018809992280721028909383174625258448197194849012703061242815187594896310200525738765597536861818077113260185036383884344409862105504425613148959558021490380383351618498118132452588424298494290075487939384945605132680574811282017093431548162248610923239655647881714080705409112038454112306808007355682450578431031546624977652911953155248906172206472138089088428197871115804485503391826348628895519188361045937323051054335326349470051205840959667577352670721103464894572852409353269116514310246664892112325371150008217891723169362546136805008815712819179544074968733130628461781423503949627628377272648354591230086947564254790195225993644320790926650733973866073603351517154591565394443420417370065508729454399214463444410816123983344756503578241122147843547085144470777226088849263688575088783703664695791588187072640069359723869707214823420950785932704431511964124976000047708833560575608290720861816190025292730223593009405206188684717859597142663459101479753016026627072312194899187662021738197457555685830220328646204524923332661628307150636174739367579985023331291088739472340812090704619536302127921836420930690227111329225252402333498695812083915661608660433122071355038756366543351845502404013155694145592962322671812448040637992694048968515599540632218869584875576668204752434861153252020286266796628883385962893169264303145394653036247870923473573446459071689569920004034005646787494876756222293244824811973195860859674708276189269298749288042593419669258040111190108956406830223665398832355305190524085737162611421935219219499278990009399869030045894707033135206856726832222640611011899685897468575835353507300267904361353289886946869181938048582516524173201639100618351045235180683192288453141034720646173586251838987519290453092160922232041153357449372235416769976143634004046868513509046584167490164261067285667145910456422800170911835083700911715305604741143679365723734561056259609965581749194312482314206859551266140670639931634479225789598341181190035897632725721831450197288352187796611068993615703347629218060111323019018313635729606499453322170314522830348837859165118112716772453041063187560257891533066084956223132871600144311959353236088984711804140097108551275442232345730638123964249066253597379531639868174792017072933894019300726571125653848337769858662825458694958722253352667247267407198303336196237542178252481437491712452081450652784108636507695251805263793163636139379230901218619991862291500073355196030125653460545183187230714354883591906016148078787980030619945081425236574669588132535483176693093791173471089855535065459850506143525972861669067431357393611961613717513313589819399236096473057214506206228495249852338186450449072495692443767976725029684949007634277518819838943906710622546823457131626626690631203960588436908826332318436705959319107519695602789803831175799461891230411574720378253683771381666221391497026723613766417936385706292412543554874584215934279854574106776947503912288405257921785040977682678454229911254826094948874635553905564911301713128451015547981415000603156684536851334824984292966959361583065440184858724636585130841454580238324154810401807508041115517708980757171962578509587406944209327014501725042416176293477332234388682437250591437419177130649204609650365518295085003015884659674449697013946136946320289301054812145923470639339364481047075888928591205249271226652917382324378746178802794156454961800553354365253911047825835216888835140719163161140898034189708569183384935330207047536958859753454183011311920985610009063392127443329838346107649094902771808935813749427002701684092687002602250698273438545187516325541484878612469838601567648576771759424575853014411157053852139185648533832153118199477972113287428494276188842476854644721222328732964331887168165374057800719384297155479572734881599586197619129739770850587769441528525875372985301640906662134390901838856597823245864715581149776732590382403518454996102264319892917615823207910363638184928597058322729266017111076481464923722998946946259374586390364049398989947203784890754479864937221200386362168536848641915663077555895806119176005227300385771442235402987431830680619655298282331564535441578528852558952721990904590336951960832453691472906583838893217807261215306758212097590205456946669142722121127158188051241848576083186226194443566281174346052239644081507016005653601036522306668696087200199471323185803672154198075954592051975621247969272239185934075430779358971078196427875905593714567025058835878902036783432351460331532327287867908310719897168317545324192342288118572470555157919774069203071426509811600342317903991143384983149015210929886129697983206877403077594277620151961635341349854549928977534923812739488217809340536696121669931196941047310215456407465234246253749407062065956416764054888388812883434903290015755362624669570806551197773882288963237760293167651746971161259659302436603085851086019148802177916240546673728561508161833185605090804520049256963844508192279127754176522559775773192675862763897577332557868159894489039156749737986598979411107433786960589445672789387536820036510764020993314691958065393835326549945894823821250891497160362348653808235652991494801231824982153907890678698615558093498404943098954514980040561999843739742352120806614297313818879180901270585733255413010461073288364414912002457284683780334627339539235019151755978958068269450370734939649271278154043342959627460494259576992108353603873201352364744100999246286721655186535355855882160944438488950371934401647178550928226304726083042165119500644546313747347821057974019692922946763021017557181111299311368346955975942124301285955792952877704378482550786368379494274254063462998459440211747353424755964782342347145381018985126224098643315369345854223954583761751806933433940724439885338152830518884057045220461413754168143796181057985013481232043591277053199779332744118981860356474729199908932621598053415148052000516763880518796556327570337328601751784149202609743773506554101368681468379321733773836889435141001667850574334120673892241581693874608885313651669350267743629586106097996765172333771634934841944368231542817501834274363661946828420689498336208621600241031913655487426272446213802657020726988902862721973563990977296473784734431356750484807476822313066926598687552766216503172364016777095565964855241886966112080913289847154732070671055301450018291663131029887073672001623071123598934820170913592102526359996784986208490754057691146842208085434691142018161319678681162367003218871600009429193041351624002861895402842073894308364983325003482510313970404610425859487677461532204053776938529636374254737739684864617530186824595907372794723973120776773702403710765632391543527369365669668142160837171418065067430759752168695678319509569905905468944732724680162942316548143939096714642825704897246706417190221852469037371785658763021591856090988986224266521939332030658648916918598288875622863889213914822706218224600790480716115915624837818546738739203000979374652150645333989964688031136872900660232005791300136389982155279408091787864965575218879587339778612759816306990122608410450202240387697984571576015318129937005909621542523215544443460536428337849608688686337697105193344096816664851350152812922164530773800395244867609638000571103006111797267844917569737933806812752247382654126729331410949106174881728947431169266378913648519699875460528948979433969788791922257251855334305013433419895996066136895041605199876847287898783317109630307555883633194076090264991039054971026500287716449865913579725543535299360495772907765482133937877146400644485931711530872999144866596473596649666289089288506349848337705279499697110814540381421463464165816243486538682658984838923098497306174038814865222127752149871124327352197454018506910559053707034521022934485819763582837623741298352963775147802005932659206062456799517492759928100011568036610713747869277389477880959584617060066821843155307350781045341473774132118636879847827123825630776137204833676397568144237631523466219112224738509593590469174674740690478256756000521144526333870182800026303500879130922934599555861038474834584385370650780435872190556022253407639264958721278761648646635281302593805022691855353374959675020534297840319527742995843504388519544083574756339730445516432380601929194981932196672752676800891095027100413826131153898099511191986940591033612651793042844260675317362031425933956734138920777233797201013855319749391399130684073667677785107482435183857200717500492924193710260487395023755223520996823518027815847550630234495849469820193528575008053462032186615848641609499721298265559243664767411047150060008815955139880423120477952990600383799939407783174439044368540754082852276446750277088041101319129776355485672751421055830572520025038121870806775847935158056716511946476665204266068428232209768529716704853543018195623848006943599431499992803780383392534703348916531300373794512957925596494965147919916942295363545674232545564737095386269883766425230697431902352459721999969209790661444537393031127686023945977909197257594904710453728389679769046382814098652305713500289546649187954420604887765336057457451721260184965821626723749012484609050778496381456955455532019668297753999211216326621179314049020881132820930383379897108275623939040171951125676974872758118772291816548558144352872987522898589852019142876207915116558127124497762556466125198276798938850897719658290637832235098955183463609664056139428000780753054895484666599329550847662420065110103531181100671640829325376278359351484614988347389893477491944318853784044897879398405631261784709447953571357623374300116410063108863517968643789570296772553206707732467548900102908878982559592106143710309350752365540214753527726919411810191411289569709335858133150043143023137986761633861824773547061199107680344725768909547864302323769601715339462689860865463913063746859546431617814519934428088551815219007435094616532197900024408419059324012694061620482454802209152200807769088147628606564123492106798229781674084308262335230003089210779731957018358938917643536748843657599712503731081123488349956953060197591662201588485557261325205002637867670265667900931053196891521285259550715892632549820935457721978919261843394352458458608554420130051666057583415116176923991280292693784126473515671457788798254288012130730053100012971343530251210041056057050117379888079002353439215519384895101739743043511934531796799223842092483917582018962572146977224853991936248509559528655204321015671219833815677407140130013731491293597908833381472776707475071011962400491378333298585818172038632286428848539119152656389742720176810217713783004992353921292924660686738766171352199057604973910049072811073374681628732564517588965546381346620358950382684074745855107586239853596884809087615895091300599646575695028424251624439403408231902074698737782010976005896157821415314593660961620156104186065862160353160022690149677429478920783605769053027875757791087067783974371160292461678550465690116298236197465714835263068628033211732454571288564285240255233588006012144347632142353627223874237379683932943531212116047923891769344598911858996405883476165736608097477848913508664541137350512157873224907481433349889767247324231508684208660924426290758097822859968810881158786351330334125053552474408536719266792900499023059248741341032149003233437666124983024005461643292466517553261976268060428453154036022004033287411031519641796167833587751082258641120586244939495354058007624276127557052386493266434625274739723538928673431040897236619906346287061126953461572037712082639910951734979839664752880634593755966320594013028510588824570718770254204646223192412521623603945855326189798016264398109946815253571269948646166589710040293083385100257053799804426656207035688638390580094477334992745890813955087169053032476825643905021363859243398209770623017281422935315986455380108235200419366266403349906419908736454014694764127756151104441970998582079213811986202354992197928320137975111699937905417597595833723931291956496225160287262845929490087182175115965982369822579294509540250745779275726095997932813375920431163463136035220267857820579933842166922850065425540606906759760689912330555961878869441229407316911791673642692445868166239504405639980738625362442909806712351689629572679387532212534813769523052810139498394494755875029024197709012867305406003979003426285466098148906957418945987284205254393009382630046084376538328060895592639478185940106805094080044263439908076191599809207909065743406308643971688912227437849606549581043252575524100103721633364302112456050048375989020819113054677459576458730568686445331218644868695370462731926826658563257846574379525971878066693393540674015821238275026574199541245026616717433903419533816548967111319126519079481960686533101555798773872291556018322063050874425799423812538830670459456503354510301148844565959428494472230352841072268198229555473218327088008819355979425604528994862852394721167743288013527709162297149397929439271616328342289510788446672809865882732610454215630215168743435368515058106208935957918773361639988691381900792865808869559101640876039257192736688179977075692095403964756668972858973976707265626377119399703461101519793580560558085618773564807041425399208407638659783556229755479660313060059735402345574275140755916454629267191378794074271555902613390248463557385151458156409518997678023261145148407743256058922461219973260293221082052917213442713963647196930941258740687917549344400054527590766916074021995381889746828352266870859494978523211624635906795803303701316328179832828211072461082990696281244827500973375312312218986948146704109841286272047548365988645384365013639025162407480931204308887068872657482769202372714242400397616548549667225041069666466918310100392222057015273192240905083099020304936942804020533166194529033684729143777971623029245640393175710942636207661133247411361633768599888568022614585598174048464154441178635335573005162502674151393774804822622298645997483607857777701422188267512499150896206925392439053771700291167467923960711844048981721309277709465049546333269603975711027296343147879797452306416860268814607791024447717508077503396064363081702384820857553602763486691115434542185612025061549269061063233362849885163625641491137982046870748283415385724353377782980340508273929855013346536833722989912482131471932767617619434159304463641929678520540087812591413385958497326867059981062992513415859675747621434426221635285232723575139277664189029739414237171204038756269500238860898459295842374124532648475600867397285090993095036467264880750085289870376879814939170184408013181260134814177778112225604374516035550640286937742675794111434117839486557441864248290600683878083094683189302112217054031761510823140209183957415282901538719190932383543684037021154793988680519179177156497746908600679877148367093834712464305566140660482646515613103939711430314943610520332996393881642134709383365055600947279115375975578037262093768511367466124010885340810598728799635706154457347938162849763646301485713680262270888359521804357757768380392201281685580372676085590820530501307276485398842158815591972305426486694264347409091848190109226579328467669543841663036444498222673583393198433658132973877734364032341295274899778576059932225846663430644262720190491006399157621428372624953252912080795689319654634947468015911457703129798926240998193718539557691482164097143176271135195157686990750423622297479631801056975955930788897437616210695172706999971030416688688520590845178423197112538474092444172745936496538296027429944928809399713139658426070408046929436880105354407543305048458317037149218870151578649498935678206132202419962714217530674834243641129242635298968569161951674619819174836549705461010404490468990770668760996358324400749717800876856349151739290945904834615475063670258849592585904638304348320755986968193412886229582182304392618959582785926231270753312901201211049857943810351274162689405990745122551837778609565531660250599500694299175957922208151028667167324216800143982749080928580251969175604303959858054772482464262466873373889713211076634169861694038292358989344742730550677853368806619392473152696361824791358491988826238834850016655286181090304585469949837492057226925418734897174302427801963231399663131640839824956935217447473655842700659380188694277164416563447559000843300718484237403107670206707962774137546854356215608790310289446065407051970543464173393216596406595890850825567205217223161744713341409469495039802973241587522507860891271363602107549194353825653814716797591795135502048296438556009837220697277981526515786687785934019086677175260185142783578867813923584906918535616171197736764149321593565348110203973948809955844191541261590010664697878200238287606875388869285119261985330138315041782356123096079692624965868908509439977259812915372588089366070566414686944815170217443638969698404160205395396165525768075891964871864383743063861637321913605132610217250298742462030824316348470627264949651355993064513084159670449495828713570222245388973990556313692757278492936199889313094211903359186171094921088396191785633652406110469898238220580296655904417576036755685566265706905306449534112046951911470810057058316912975416344502401373952052642957052953572480804205616061861271648679233078799504330496268855229083351311753988068826489090569132640135746106557219971361753972721564277258739583729711297039357905625731599872549474904911973572437851904806193400325575581077098867946674644860690380790759482516602837714490533369227518861669107668231773971498522515189376609861258104986229921778190273620529910122044540377131393206484779974767096004063574573330428289873238085953632596888175673688110862140551267218082151988518458872811514368092755249313017933346704837422264919786709983712230001818418296927813254154124560647304722538374989894141710754514288067542904378110442249623110019192453923462129883389465064475350217903761084884085062895080419255276064927732564373485237392214452508849136120645407347078860622895870283987717384971437894872595750179933079197856069613201128835003358286260363187171154048437687565255594614969245415075914083907403111303445695317581531642960828218704793599492126455402514988719737806702513619228035318449368625709752823988082169876213642559676033131718932145952316573062596138536062136226852051966475293134451464494771325934050727603939470246411982306326623031780027610282668223414068114145087640679092023082537972591848909333698557223865439356326779791086918263544483462595578681328460841361060040564625134658137107498063934396910190823942022160232649263571192413090486568501896639312643468084273951629176484914095929076884198107209422386791428444691921699566018586806241810336039734291627115120570000061754756400061755301079985787936265581117852879656141704570237540924301767114829779790593730542484155809579720096048316647558520319338877780897675094224921652925922106865338635457066738580553035074446125639241931404961035573806509420367501027755974257539458238323185435470030670640992466694648971540030818821403527744638246594557648794093362690090122238719270424485844820245724673107427178928665662474994163545723132851134807548725043710788454195625746480968118923878135806153590494926526189051911207610647939197029316120698825083082909211457464568444252971825333870492337268038035455902718209552163877126754299022123223500082923544489604461513603097008600609357500935237464886045688814482754865378557480193888674022928309002639600680716979326140574337794976541868385932526386373384397537774235140324196574389682806957407243776349990891717778589338246296775497790139882309262581378026251320210306748738979994291111582301721680494727119578429261801019008649533167518904528694496068647427913376293243983051544443918025364271376613391932846889767575223355070998955903628476984836721932320552977722574404423329009463280851253164818214142052632980256829986430609036880666309541288423857554760566234009878288516662275602325622820587843978147262385204300652824958379550090391129345932572201357579360784416099780477486405803819762377547382405580701690920905546745992409751055975657552687574473779187263014072523478805165683237034458438726093842157099235586621135941543708209522805327018432276766336113467883006656457308239813734444588173186209649961664379211462185290741047428144276633087284167686819383211637218970514847920027967527403527019616685181021401602624604728775018505619848628687494345231846165826797804877438673876719879875741423214942294430769919885677620037736301523597527392275469160850099403867824712992236373047238453755185959043872658803203378280112597571321227611815804108315634987054299932688611433727174834122110408167290967663192008165637282087802375714350018219851748435996170513467886906240083485893448366961922632968827941188327877520754272854273934414811066979541423615799370975427361409491439574890729994851491786905125438138810418031700092662823817754708626767151154260795276999593016224586199338627198755485483800628990817058551971728226131509819945856678693581702954358494494556009343312260331564166555810956990841558844911321528012718032613322144944014669167761481530285791744142121238139051712115748144994885666780583645149679881444219316683741678217135307646265013788244884067112022512454754470697366928697541260381033757200072444166525935034520233859431297682833864275190045453502169098554875754697478797114797372536029656119834656545080321357610723918349623003789176863036813031892617262185153678792176454049258454222288827243383408724311843314348141487120076533123422967389054683067675051575182373889557791143263814411571311244534102006444828241914651888459778825985605125160899424629018019555208263621508480330819764394917480287337013741285405925524870524323035368949495534878927478407265209943231637652449204167866623591096321804957413041599793300698787402568951406730525301945664636640500689317621977591943585893507829967430071742055534761657180466583795400813266577090448825337717278661551412903130995333990485350225964304221017984155207421487574853249301953809053498614722519074444725946297952662527327268177355693786031710380014469963952209149626925247048614841010496990543420510939444428084841786359353959030022692768346212585155790876324691222477996571112533084668108473901131194652989877567685689276781339752904846850359372883364611808861232057306781337730758935796595628299110501547898605022691363329308606890228989183040706448869234212432694701585097333384346021938514774143943646475194183898500907495792531805180108633642419434629160913548618508815285546543409691038751580717588124718301688039987517661993932259824913678191268422899546964958511601587726198312136719913023569854236088552635602563413267222386951998386166061841781207746526990353198293811292386766882745369309075340724314527764287970325328486015228212389964554842605989867022849886837760164286180983115322592874730818966704526356992188831795312312615563316724051586749395115387781461661363505363768884284488558410202319623733149173225454992357368251919138324912874980580705890650365780673848152587906549279184177174843508108402593335288498174749886182012545240675215872294428220760804803787237181246122557948092224058788184412522842068133232816795089790271765263689825668543287006766042270016623669272608725782948213749401936940211427274053106140457124446929588695773799492665150274928961040144572640209834329226876922671817686036191861069937503354342329721248487761575207746885390992683443582663807966318811314221984281683288116089602925450826541941194068667162116438411883695594902775625246211708099796737574126080854335031437488888302322591651759115031298161008361833661134831510009092359897487762923249189215448828941698553518777761686581972692418019051559050645754108240210499267871042923433204688401980773568610850297271889862228771761880931294909717210428513846037770780915975056206511394785481079993611012990192911956450761080518512245971339904593159063619678024762943889181769494655618180326593960153167766840156145802954611227762627281307775616013592948814787236500248404704841513403229594505821218154551853502650185644492518675659750722237515881887119228336838697685360006260664922382445247107660149453671274910498361959122417062916960347575747401175153632359096465683105174574989161096166146008312283606074466697570672830534943131465873665053361614953893628850242121376439562529525239566330050617226544485998145839998775683805431030483951413880893741007204038642828004000743700034198250347103747273448749187322352519222386460891008008033767369832022519881242705162521731325903681549950886433220847395453992692490862900332337124036363386723577160719379812693795563338471124147094376086367922782414616261571989524272975674762732117631510377404218984044546361168579483574147540586646672953548888973948956950515230678936990570388624489457015133577719095389937226986704831362834741304288167209328576271991901339007268271663226383321203387062944658563893403225177789133297714332545004579996529089262427813370899922582078368771177017967931386501287569017165797585230254296634186503307249603896792539575401477965705452061230429969130524564534375347637277933371211610361065393622147891298466597342063820217767150329863468743508617032367442977614182610554651373928259996497159236338724664596399502524963390030063327125074564320449455820540809147080438376732214546247949078315065505319358827297806210830096486585502871535344770944559756733200327271293539044908088968258300344359325576915484040701799659071157128223960012503003708736022130040529645165952178590685222084405023684408343792613590412042075954640888013759276141135858713599437163775947272259964498649521381613586081037183280861369136091079111044422926444050914373209735970261409397207407052613726446737310093561334864133587709258587854894252889241193273755276351579420904321341702936937249591818258640716657912724300561129412919901472909666102634796746624277063149582750118742093066205019479761015952731187736081697735189579920545501944434975605263637290139301523484255611024162768305545104501203461142106733081602061834301495035673142703630290159736921605827239263845567804492901499463472474479318571594453578482580982924552315702642392935466072590521409456940374590501464552436959335776792709665537909692202049860696118184892171102691620396851481768345377501855448170859631899522571317219548564637605146530197958399659350590087646942700009037364781183088821685376562566834723603793820110349081575320263409701269239877302199062501514709497283356964178723058024994286302659074264556191381102125352734674523678485872329252458448245082877077526878899643876300559048987687111907888427196053968604983525970809187541406334774729557838183755470634696524769032510859075000855288220040376424530614424312172610301964279454895284484082053563090535812908685577213440413116718707372199062036815787837459599619917354543416322303544959458083577840827605016324572995760698330101792716515426221751017695391210441937854358323105511917318358502737269455795580395809613951761229798897767430752688036342812267381310596602934636874600574786385329708953590876824988536711541119850259332329073768783916008963875234867690824109495804547095013472335087441361337559296148424023568264034464740010733530409362800304923435850464177784140100138696061399948093903542663655955876640609886936715352648028115402377279105569000238699973668995851133262438941222476251432884479425352153506861845178882618535303073943421520043360733984953047706305156857607557733861596239044192118707064484205500127577300192726229300656117915447953718361648340809894222684282498524104362823047946535524416731473858966800050503542142252912143885225625576673794331734511293407069367122292649998234709323624843072469632163183744294152940892350341476877565594617695657998667462599851775909516050538799580553342699080486941623882061656872147090334829376995103133372586193410135003439679477441947700266474473319473830487714994617566983925637196670398726749437831232121479841940837534023629041936793485011051301040867269112791233112306678414573985622490625335958163311083693611131863224704439884099148823451050927272771561440394141556545612822726010907927677252561331519512628148753349658798752141343900322238619140491417312888511652068702033711407513518440033915757395168462743138465011369730802561505510984887496646672008935513620780444847304403252612520772921245598399639466304333688732537816960174483296121620580384731603965467808940562357820800693688678159329879002313719294694704025048059125011274683507183136988831003133044144978672708098609253775731323954087355268082078369597813200394722747880794595194161966458601208971469929172042504070844198027512402935179215342803864019568812993862928643238016406455141778726457699861168613176298752579385713132455151366983869714581861392824268080804582994052050001512693292883338882536257269228246335166504341324884877685896978610651001472821076111018702135318261799018737321978916489091382676329213569798736602956322342628924522547219950759689111837643548970875286464913873018455041962343426504970580877165021681309683496759146394899425603164165799975916185247601386900380084268155948865343738583701566579871449819325786988673716514309039033588032251468368772077338056867965308042243293820951060366525912391990260877747730268278122834332793632019546475011707430625235458306393578667511025523634194726683406627359209273056520237704320280392301769680375544489384028453601344484944369871658781301781553774804462830422428640945147734083939761729084250986282944332971034437630587830682199045387811537116635388996196171268773180701344135273580269517623937029663643394129329132971934525327553312161127297426877565777354175589316395556569261888173451331463681360416698097202704885747860622562861153000491300705061210784963199567555758105312854646921764139236537924949625234580124752112777009444624973255334904908225856922990818744150723720219650173140743432696589879253229793991426483223375468215819130388394659408176584977997860351250906186787882564480002703007489190805192616717534666118989060138394442503411606230586340212112819105103492366282081291695444092292957305516363797444052505162041537842768193948480797782028799624048038547915819498343623934642438553910495694441825276910696518177199514940751707740289567002664009874065215854056002088320831616068168979141810472903962264403766234898819510978989351765698950526940917352153231609480561886240706431763394758586752051864883681727698355298140826881388854187839660181508056749381725273777781498524921356244066304127512857484739790813816331564930267261633025912841406615365881706097335362517888698457217708875513741743513462818672973732772344833232462612056687383473854974242998886833827970836419807344520399910736779001209572989218587761096744441032765647545293018005911091213364332343345994208358001359474611254898014179568044843838569534338566217365564992522591469570655557402544910007421260430119082651790879614829947478413102265629791540842098940668474717215545220275341843296789708222847925213672610079662468778923164507418096365879279517532823394935176653487734182944107474325551336317006609778688988060726006572957097669514933481141466153073747784301276727860490759283700634098691858532732426378850604009233682648859125435793763611030964409038103193990522281191926740734616988033841337349141427450434231236710206909940701873366523771217705785735804618202042902536175709608378090014573390276183160710864024660377112085003475488272950798838400198040184408482244952299491799962440341656676789430082889605809146555646910786696817780366025567511095382673270807288151217860955860324752275069328787052610210845958689142686832555789711225438600428034530871126536943319716939519440761952479275073290316474340116507537510296026875400270082091896860780023296745626811151456732319402054594251755800318090065406528545867784290842614045985764229379735644111497663734520748094525588756144734387125121492447326413248514677799871715448091486400056507944472867822724882136566794582008007517346800873795225114860568926763040808599449570697844717705084520982020328936422328018738371378165001643112677406318558883987964747333093990883104104736667656802153067497456608818625799645647903755799572196567614005564924033162155398534714299900182961184361474152608192088635982244467920080445159914536693122395637774353909316790219677848587986315577376469046174706365734728816790247333975563550377856567038263484635330452599280992762428712120447385383884306615210370590973776081607215563945060374217074776205795173051089049032212903700816854606903738165635873256738122783272633056383561671486516145762318104898253369337892988159976065604638535077075693539874314829145881154482289341954181449256631734691056899215418269789749636541819848221383669626473563822446708170497177493095551468855959687409606309488729792031176147518744448923284554071242253246283622727408884119776727766088228035036612843686228276248265048994721455907473878042809625486914208236840463488239577466620963069867949255386645086021587143778503162434238227012659215361250688876980248757698292293367001791792819335168927814461035791451808648007414086114248802118030835272949739761258707528129244765043992485053896389639722296742053766066633636510340486630774106324689519009407570585763199201594042243991415408462472294241604277403680557429226958147447492735223344636182191604040795736701788430767241969000961987471301557119307089122484963480977710037006342967980053403785004703582222932424876806108965521732441224428750247734370766294617998198840248297496888684061069891067683905271982931342928228970171491838915593365704817923471965886140106587293613985161610715010926759978838909492590964948888012195866038334947358905050991474119356648597799507593200445411827994208235040795306071952497050570395080442450649790196256079019863813498613257701210834691163092134701549674044774789276570117545611328588306327168289373139284896879320351542464371526871704119300484021357492369091316486695871999142402521636970790333109333642548329911702414315788435833636006657559789338260583512327325720987304376299700302769474463336790744609440902063862224461770398467921775703792798731862613963748879140434734338422698887612996862629856769961592551098120931207589014428933537956680043860519684707520674223142161983297885895994659533198951766431835233660469144582311339363531993525325047296695265108905758794730777193920480293463188253627780878318736086493504001904907355468333158963529542847517551051223869430491610997532188242200979593469448364157861798594576051317042050763215396805505188741396627958457958769099163991083621932133070876473837002208892001977255900073327335688087151287948038205539120420671445276605656723921712347368272596143647028925420169173374011028787228958902031616521985730039099589335242191767466309898795600678811898109721727717885170153211314935537499527631708699330862152177870712479407333355836577095686342776623638154694418216880361291036163000467388543043305763192570091818713802134102804097945656666903720942699827699100968310650250008348394750018951804181239762318893078956604793952217618340648473563123921766101145201998703246967657901477702255715896291169128747113512435941668680461339004729200780201145406300801859039993487355962236035335053667362323842620267728048064175650405112186822513644406782249533566691000467793877394211005658866428003538738917582169437390971460657952720157330819366089050327775022420907110187294456261154179836565934996297279668784658855219245019980492463463907459264468852280240557847656654113081903470409080177960711161261260733318396242144973879529945595923464873623360194067345743301333091087182860144819841560810013589268076232121845090001130878609313800302893015853527451974851812083288851498917560696319142654533199908185347238783317776112079700025634771451921475413457021107437032239076835197854701378428436829612258736731338057028500744111997297998738987212345271497115685754078204890437477043593027518967167424766205405276193208934726629579263581871708904999189556256945493621072319068924707040578497880378516787075429915545665074112240628805086417068016664677259555162831203920638544002205396382140257677971601789076113401642021992428873111564599662174565233215580974486789442424505254576075137054874628376171904489972361066309203593838045928008702327510862202594215163463137516685800283935973018863094143574352225429147108965856006392781435421196134864929026782831224869059954479687096036274318455139640500073051307945049118209458646947833394102103572949459533365877832405203100562799564693112324333610187971403349732899789588171510244109394029600918271157204173483179094456594213629061470131221732254740839133832134146850485555461361418459957945554276757202356197434749890348740720335713232822462455773608317004897353589758443034616737888827756189883022062916548790253201460649289204139760137577352926979413809064686194948322207557410308146561732693241573220221658029892944770770696515314119132779773448241671169124533631386540003117224531578371894622428061447854895536396574836054569748945522326113777992115174231391246440681826404125001160446673464373079587645571919692577885481815412080123970156446627702211214014635789747427870289754403031330066153896194912130049171211100601518323857985123606888476725951956289102145874357135316915237885125654300563149252304444659376669277697993249375314074968861570909693745117026630402193119331927550337760979145640049355945648190674654489510936518418638996819858669328760040040837657140064301537868515220221900391536402772387221615321526057953179524410045144661135402292347054524508172656116094219569225120024394632092624746686665889310014310235927742427764717318308530975763683062049710219134749668425612734054238150667297418290014835112322449758223008844881071033661421224774658899886245284891924835079537927888819524381428971682723125556498560884543352004832420977063965216074287961421630539785522292135901144904132459269147055968782105320251726756212388554846261233997750880657488662386727631918549674409201308055441660472137581382570542659623391543885285807558276367020986635667020479322290673038365088401688370447647813767215489992356637200381881274336384777721042678173641950360912989943837173822478781141895161851946456183298933421893325509127012117732845506421985331963581654033776093899761557896178186765901658288264350782806635708564844208123612834937670131941893205838066511604460589285313412227087609403106468257990289511919870875658600191118938626549896997555247871505210885422461524151437889868710113201848200320472020288588784455041471761371499110394911395991452906908662404218153218113480032802297616671934856836163573314458638665488658862102264603190469805794800040931168748409875876531862281436271810309278739178639710936139475973335466164853967668549183134970379123684821934013773906160344438053577383257868859569692141361455645094327829224144456687858425278210936530267423224431435271590765770623364891121526136747975946955274169763651265778737653325863289329765018696061962170053198386350876936237381562666982248798608314449711302182647799164821347038862066642066055107463636665966762787793690618510893604628913091692620458544453579062261144423724902672545515458811260526210163012618368162178273389992046934766594031424903206222169862077761472158837459322843227905038382114407657628276246789476465864911700390673703519545209802390747164477735745981935509786202554393967675941687120494452813026189223587101657043703956686971265783526075177680186650063452944355555789823662777299322179005896247378479405612642868375848693713922653568594489674105051294629722232106121565255897180709124009333709611437526713589907075394162382812323620857470386577836650725987775857629242357360218742142289745162032808718737460868901790509419570230261479786727681239531640282893105638234688708635893912991872892979846779077751822058592859225522182927730614592207391507410995473598451362309346737683053912338906600320118346720180463943115770743740677575421260131457270384270918322517993916360225451001286220588217099989042526708344491383328537307464554644734836053249698689954098300325883659599356021624469228230693908516148759641981123989920575451455639805968071342757176510991449030240205312403493836812032540520081292021570525414430442321765132035898646305640788970738092294760680808778467125863746439828612232545690514076710656256829137477871371100958703337911992593741407490905457232372026445117963793456036041292554365209676374000324445934715792452283315057350586755817674162911686646875229520966882361664835814622310229038916412092643314411335005592555227812729285650026455046830858680345419679893318234794866483737984923710154409423391181289071025188151131611888613886790122574814178589744633565989907149233739629020818039459480014448521471750543657994460290930461503147941042099534901191737306745384100441433106762477509426440460279068173606282119605654263851226569735667252091232950121797208139188132590393184366773034746500822017101776526332232955015360879871753015228856042324786881866099590572227939601697001265254752746927103170212358680833707067668322980633269998639164439160313777151417444870650055672765661927227062660339697272425877952841555823888982984266685113977049692081108177202535406468725863360935358362164551661960149447998134745484678351355661700117971456821354288674982699235923978883120974392430545322547183564614186207431338764412938617713862601182697374192430703329048287182400827381708295292227896190775489226806437639873350246755142603401943497560191883337285118989102327865780586773360476697314532211560552703928691047187346058803617324005956070098707759849029708888654431520919438653885174462151455157395468619829782369323654521070974601479681446359299480579857299138757201780284531091420152953260948068831571890429253232069913435366440525532998644811516534892526939887186164073769760235310345877913417315950858422423091154309608330648739500151244493585447717081655456512407856725099985298897694938292446541338043127928957291104777886944936416815796628971242854471229920784614091473649770706541786729445373017402300711515750909144355729779811017782599124871591382995833978994976048646669399374688640144127253850438660280109560146127801395666322146076665520470436499170876378866519282798944145407011047000252358129865692892201787353264578235473567509603808814797142699546350485803556842996318070077264050476868837565768612983494319941297418293045477139966713638467687614321926983812597479405497078099731746739762767377966200295321842287210862376880550728857585394120185523706022791036272872038228577467590600738105730966484512567211963917574635339398724226015874919787416408515427443866177697403191119434774021123831257515670624594598611055991085373581431624044364953960972938443508221987716848991598795320363282013603375640318786183131045247413758993043260229443383414841018671501503337234978637382445715015575859604570645989859091525679184039461504630834193850711089668399922632265535153654600846942645958663859391364093265037837725520166192772341584794653182377760621930104427682069824802880772804964068088035628741396881276891931414605719802134069800660537896211272102611192787282455172175642817751023690788173277983433913665018207231497976210942725135564973015050507288742507689410350490773081609949815527767047066850192363971206240587161649279978078989889616397667722906498221453903253525999651487401668785341849806635390073522169295201403558336867208632132670433721885547311731502623079795370567303477448373292364993879294167120353809822659273889024183526718428174719528745264550147025761522522337492662144561940303329320848533467845130341239915213806773862109225486415788182202353248074934741248246964908902368290019118126966662341275414553448376710178048859228325554064768209505058263035080493630984368971239326084799933061682690047674191689271853831711069482169461307956374084948008745211096171143497639411359992145122032836155938765963966446864594606721231566024733692636168948785959660490490920344708448334250208712556343873779982862246860563058078080796285921760999302906452848965868901151920805299758733957734565154993800999198328135684684820780619589702414305283429807870186113687998237945911464462194986737184138049457647817313148086611588631918197062340495538913982358285640146361729091173092275398542839987539473141086755571496498257608488804996961993577237102041207741958655249042932091895564116097102624936973500507803831046534473943752106387592395884853856727332960650835130367270175328487050771855094954589751603312832878024533394143220139173154909669360646696038578573054317920492867041039783031686919651574631260136897801411097726555963532070885821385179734687701837187989842687475499345086558636263694127381204423227230299405685623587656842923924412351836943096597608444967854434041853948682628568480586645539761809624973483574378246296914227073394070790432566134794789286163029241376957198751074553040738234670090775053707358315534267048837578981663789898346752160104481857236863283069144466129961825994961687447021827743211613798199472597089150725792951716427871637559984837772348811124719669203095490308454941489425874488493067132468543801334592977248400658914724370179541440219756467546864188434159914746886887746402718518017281874719718144606160771929581464216913569407515806155351051996311333406237939701821236345040128937108189663313211500905882355952133484126048694575250583843744290643175379678114944295845488518333778079234880449534679642578292522961231570027880536561776553388634555740153134949489024092400116129116605659662934893972151254668223730750596996547838307454247159987345912706627745655257516238532944076399501135188113774941039403997049418641199028375629527649105248259056407919549545111439363955148954480166323174870076755912488360137174630813997849494032764746122838307168392213206147780729863743201939936219894451021993012172746880665606591058444180588914701264227987772334899106098636941506763235343614936094471151817195423651631428509110375278640269310823266226218487383882135280515008560230621343294802567106613322710049421839788793523181292084021894634953708291297108668530860712423828002398052662184077535292197758119322442742889966971672392696370685352709860899164907605974082714174743611164150040822263195882935242608215819958561618922152917584885167872111071868711649236107186549850616233652729961571093679518600332214300117519371181677866322231619448006594291880284294134491651688605646255686850952640655403332532804512269642469403808818895449558081023189879002011725237207248580334980502587175368115012824446321015736743183045789596691213922554370834190542143146230798581042449166463591555742363589933361766738805332567021902746705391021352801557241061683475878374619954264695755963189593554762034508650465588204854392390486230386122375360343347933651726918805895914881613451104804931360282495966470351551595217638068456929001531889066057807265967246259854648697636063540160055796325354088230855405229592682757639384692918025067168200104152413508321805023270341062495602037643517321216418661572586985454228257403672544636862679583277285949269766851638601465974089877093032676951774265339034256573614475558314382661206856961317288754365989351710972117373122894279779647059885062905354715375215994901170886078434463617347529186857795021412472969736587500800319158007945393209834321811603839482379049552022398127526139738700378041815234476433171265205797106553914655999757991474692641308756535508677710647140672093890037682452984864838134661797586546307308043054382641538179781182662392943785090714741929142227622841756422574029135997178587197463325393005333970341857021691403474466515770671110647659807407826996582196514703867055705769857992115627225450728812181933974513949541514908812506810605394693477312307327665991468024433805510368002713104139755054871940185320307416759050332396622972828051103650809737992837933798647718833389916501933723048072677638452310514496957651460418342388200488842498635176384668087050237434523980752601805375923410164536969750257748596443481541089217216150547313594557212318858471495915772001075104774908914154986076036354334199791017410041586423336474068423202469894504536525043207714403741950776629353210448142014595675620317142684947004827752731093637665149007175590743544751305287585309485782339996628335962281117219285263508907168774019544868062625985768552990398648410554010126284100422897079840240428822038867113353574562519732934770338160864783351728635458390438217781170448337342876296508731761389070770977548494781306853197999262931259563867584229097239519882023205810659577315457884446926882481623028250120534382161583097570327478932870545457405074147785111175907810629408927321310357233652033490943454201693733206712727236866520524185232808736554386397924729034685677698698419691250910730850754988802824142489819062017460785983646222922512555819280343458705873608596022021100373251803247055269921916096957960761212716367676601072506179718123296982298999326030520167726862073415499790756303240110513195572029901754710935620502004600053890384348069974061620686188808270427952961059046936383360050779502302473650745210304409658660133255455346515332932794227386628869271826103442931916916819483040653249183779233969013114868470296754234847972922124412509681213971134205673004072399496166875446352527588859806272701804482441571821028560640699766511170055065383296194877992378523559982904849198327576778641284957107698979627330548805387598950343981063526528576025779977691804099998060018304695752355319690486096682401689338846217261915304043682498992977711636157543653947755156410092308161651414218805740608708538805161965771786951348747591760615086573898549014954288929029355443028128732202897040556271730367927717160483708310356719306936049761150476957541468652203706303498039536715991522714117621466775828254821970724713671568270268734082676298432754858528866295868910057153116969719731939658072559992317898341662031186493883610279111768839905715320991373674394446016599697868679657889453264626827795443004113359743796922050787296054425238867705888307539471149342744798374098599648427053822253362386655112703016801010803405246062931030599176398569792923836255243563221598253549631496933841948017732183891621077666398683581451296376953764469861540304921047314043627146229373201630393928420321888962765812258622993784704873316311848616546599371900417429348908873948645028061682545996011528293960142314250825536861733657278546697093621804181161592191461522911213786098431030864995860426727797174330593359577910054045715014710126719534000708525578106442143359829461468690795311639028946134071576050816567619092251065882647467434014026606638390005973325338555994534113234577098837929017135986215104236932951820186512007572965116255427028253367884336817654876827336731782697437834072419332761573787392632448147581196367619296719400700213804350539921228144639686159024056659551961565815477742151044626917477300192664652210191654933091422809241047266505803442630829100792697027067292294560407796580641973283117683534217992655588689751611774015721606931944075637478730300099645099119154841130219290799645738707159060121335540251516273191738916499498167459431271072872817788598247953423301263855002814022970620758997245411569735329879337109710667793780880460102705494648852255643077779449364965410152173399582944445103571963857448377770920328976862352668776692041484969232087936463436259957342754588956153837304883440909657172106767409019781913518712033346462495770820350106024481384888801580315862884003647971013364447016291557800555366206570235555829216662281957877344629391522754452067594772404453727225749537460771665337743501287685722811368407094020849001671284595860296013046231194886813332409519487142850561331238964731793503563530415295335598072086834198744479079006758919577268970608760510529645477213968744078670133751414687984696911851402169393783037258734060600839300093238072551788934259115075743559089004952457405621900461807167959970414428018024084751424109824254422386614378162422121973758186935640926906084193087756825336863806370902836871880894015961372400412452936117703971704439271566284051812981552527848699042888230224383347280837802954544748560512581833234808175768473101325178414970521956325738952660708237299624413381463395010206500930726475387803029396469496462528414352731232851632887278893879721148490185082834294366367534329750588565121250132409760019063777470244569509306599740804334315932537908968990049505662058766902227017315310760780331564086639515734930692095158485387636306410526519523047385241718222636574586090016436382140622126956877743995455979584847237533695780480513522226289437741771204011091852023575442657593605617823513744051886147420902504281273801961609644223898394737478539011174817202286058633824787550531024701546973602956576358774461561523543363287632271013443982589770570168094229377259406454889787185590274198918053522991115351269121662601268529696365029193199749920292023455191666684904815840085451397827681541061691233770143914625445601020135234755636977178428628279027863865278173097805338489971262483863266516571940501235738004514870578420749706546604515227093568284294030533163135108882735662645832238934908393721754175072912325038637689112931587158403853004289108816143436123541142408823098713894796301099458159669775289513326581135307726941597275094625894846947970096460430305990250150075115750471357287671807033687944468637639922272784625292000169765134589820532446203299827785201780547562436069221449365430434153186937817625586766139415648345358595124600207276229925697790201153796391153902187998350229191381688321111028730439158428452040002039016621693464172244834542013492668748077314227372007934657467825546925684739195898409873808184828930533894988775314016771337735002666591882651940296110639667492701035714869578552718797253202389005484464371423693554737887851772947268450343729062743148751412110257659288709183325872561750906265100830050246423210391243243959595516393275370290843725862029330704551562646253240340878768811783075003645946458105020062196505375662221639817722132468186301051227730395092049556975034384098989120525882975143401689634613878734919240075177238741276797828960750670131863411090128449977261437501767028961394390939980100014018074079713295183190954684046595526781487959269769141932308000989290477142071900235170505918667614091727806741870520778207820723343165150722027456843043294018507643440309039105393508096299394954054538834902144156603198638183617327764765036986552721731846653860278888126538908376576906029286989510641722466327828259377301836333871623127886324588580905874409168032396681098641133776258768404521700288829828007249153187793328068203541417928015460143230224374886183966535181193673576283684122580972413996166160070724269508960717825898521805701461821002616282810855526481857991553970646846851310937944443855739824675824233631249118897042183300247756264893320727375639214558018074983998672694085020286734191197778790840856036380623131483574555289793256717308861466565091418517739856812618841924094981413941168858835279389796404678487700783300040631750496173835156471185824403177738496975686900524373126050702557734771859700412961884165031911949433311682609998006360470673248956803555242959891637550926690958383738391804247074687164038742258310331814554724934341354332740426255712203187290414592899549587462455498526382259862140443707495244400342489215774264583475067582739576520465239459644792239416154586854229266569822256253335083134148026331008163020660258702436266358650157619313018092014994183186778918709937435873901676897811839265894878495403171076409731518012853996215066459289045703363015942080423403745304168583381976682023110365219880948711221436929838949507337872544240124615447577989426816756531823524726625896631220466643320424390948517578036417419574656610218826023670123173971425297354499252577254379830191734201734438139788907922881655223737682744542856872791365990037659730124780666929916200412489277331765195864260509120527291063083986757543905956358374923188813401941527844886187811482575605936450601174889682707773187502689205046703219787519563333517435592637017658327402159901549227418189617475335349638674463869066943176027474374053537607765648695121908906363163715140847387863670466774511212101003154878913468533017631663941890551161949964781969440560878218566964213406573961174931704454332509014010019791765828625567280806679482539689344228759420686117179294086115039955046679194173946681620874754911997132514890905642479147590762049566627103587882540203375363730563755051999784311316973159094525506075583625173901061848133576519374166549425737058262689487795900415802910909144588074919620465417083493123266676501056291027542752396209033608090774287887144025606567809013558474233891297401400560535284927453105011847786312404148385834820036624606962035600858354238506902916743044950698635867027540896274325848541056992782146302125876857561001031943478044396471812075435492320464378203650603142805346992457200986270263003472430536477182593462359912402456704476077327758044616924253103430603187019000538564886333069424941523522365134971913320300808812487041395054872901522245596056965757268190394528715759284041995936138975821442251252528243658375766034893607124771975213471881928384884154683294197622259583338925161301293695498122189035268910751219774142099726016249116463136470213283445596664463882794020635458861148386908113223109195086549180400209226467896030616502768315013030722002847044648008786677785185595948626738801563484576491090578255325804451244719894657656530648342879698403970855491021637082297092075684368234402857051193911235554439096745532924540073605165330166504076471323126309765058512141126852585618102258372204006326404702767614387197128948264069631569757437812051398651039948479037512172869736104088408503817590316249935366026705094123749948557278861856063883878062656507969902299040590641120692567533682103012784005542988855550223760435776338692553002923138650701133914290001456842147253075289273230517065674179314045613340713285540295159815246948569071872642767904697594362666773022516999367794206025524309897818676716348454897108890944173201407942578989437203851273144034928788719036617440014690376159348813178440480567345173498271694423067535966338097532271166267053159144572029722079055546256016583612110984943404210988923930817797868130836412095197505679555252854982178773649860219217327761268722378987284523780060480438746328522601296714844254906510122561821935106600456274175879232691961247176289737922226854518192870799272900510114693309210168945291748877696315380035004857959965231859337498916528337078587459712063849321044309324597428585477368022238219824633059210504958662393653261700692246972997267261697937071421505823245618453580138157937527192737736447766824995076113709266947419486426201862352101456553985246828996689263551903105398348080108413679937883290506002917330721767280330005129584725037662038838537822625482223961398665681611463902027262341042267297326405704368446470348775328214673685943814320701696601606856045244027497288195387696620281422161670632707294207780438619194582853372062785283002165380636401464381121665461073388432324877249173205876648191852404372662516813122910268388665997746577800360731806900107940858633470669006015154802203659823789420408387513167731859729705881285222317307353030374151105058816770782426596411024911668642237358669184679568501029281394312393891523498109331486022494108258858462094518814685501862109731158826880605193357679195855287783258408370385065314468779085828022382308084342994977020144519446352151439846575434718864577580338013271109920943760846583550148488091657756968645927979046386967881667860967394719580410003583070017643481453485194792458880636689862063774344675960272782260849027473967132560681928689592367069173233483649028433788833847737456731411931356927029117638928286777176627262617059200615767710687672468119242027076402667585415951333274752625887384735497921987416036260496909378537404096105502001999980378128261598658375880236649657982480855214452726398850571970043707541800708984714258296329982301655704367726449047315636522551039494015977871406321563158511495709549199831800039243263379211626305049427055425025592535428976113657767374465938371818059507847343307313120675374665968428894506100067193123969966785987528920520378803713065225579164424537346360821308412289610888965647995628236263333737500711225527116023383458683491577950815851965056721835356271613823358556838130737091407969015418030020793781669069315924787416483333203993860752486507511970097962942632181035211697983078490064531506513169067174513343721943420707430168956819616740431838920054104751997156111664083968295341187493730950007009537497328321599983180569466655689086490160879790191401252628866122471581314385816654694441313770003170910227933397095676299231051501988018913817686036152371443826654898041966985064480524425279974686354313827425802258424211252900035316302254363212098462252326302210222638961237606284588940670196102090154182986092885065976565351685926632568538839037119175214445509095338529872204812893930818418224931504775854234636589578593624476370787829090162035301254460639390533927093642047325771107107365744136672124089836963518369011407199707958809257718108147587331130142906771885018352711072046415383681044794412331432837891250977277931133054545235757905354740404553234848751565383952415373714866234877854613756980219487419271919507246457714460610005571254764569428013187112131716258259863301056939158165568697171715278232754070840961256163840649036860048259035183863405028284195294820473046964493078342761144677601541099885608910391943363231749172284158147019232844314781515949876660819149013134801233644666306806048424202341439106812402387462672354518799763360021234814723756858217811734508327201577260805571259351944917751190215294788068363836109256285670751012088585777779727534706022803426250764887890223941395371673096685660885839936131221277380862148599467627314123290059481413200339781989579784345421514687644881355416703100086336821554250903520048603104845593415514461986381878791633448914147862079986320386187765547805702648891344656413911423104319572581887692427223063715027679839500695564957915609528132311715129218501551016090815225809348577458197344276932932386780048858420835564267337512495074679801288936249344290739378371280921704841438684441491238433852162053386584919594830954342924047286510968672613094077165532186377852560340421252750617581180932200538248793152864038439536673997341937606562242984202437854521590877893803498010540561116067111554786720454548410700864470345529620131392313822594335580648310388928779764445019689575685416655179882831997770252167291836899419634359294331837134737916360129252668124781912814256866718473684225006492508977201669656617179859686077858984108295972454375993016180526033204839803445114085975140397614136311277193919015597702969671169072095495193829850290766727278316167880332004891737868732558061469119947608333542972474514330175014001354809628223072699933794947631862191697321678105268813124682267651943160668221896144199404620642422229520782341934145602921343533684222394230319554456691115386035627736902362517607834195625127559045166620796782392144407026854640308816972062232310071191155507293675472470976752575045731851407155460831077703434242247274522963085119568093428100005156137319609531269371588554232730483928164613836888861911217530117197450278800315262529875722824751166554947472968682106983613704442087671411244370528520194107157375619496270401557746139972467808030268130232949148775233588679529120528191163417115285145280827502950939736688966042692702768900108271540265525113780646629940890280319051798010812288865488250637569952993770671635239326698004256409503276166331558348238598676969550020123874846576179129945462692523349019454212197067530788548003990445492690190764298194343799208637567236506693011691279925437354024427755892080658312848707976965503292204183461409330061776173663628641742742403724543660477062347003754164531646233480373173156804127846323508863462113472219082765671416195944385442216937587081771499979255327665780314920850017225360606714129009855278571051077713253919956636634289153648001254495452789839051675858232295902451711303664775539472307404074751383848080648358942309554789258830588289844232921223155544788919061108487974959627457255417076577274448629024773652995882391487361362050616067700193140053208233492703880555834793215466989459839155877878488825975418094494904398518263616735671970114067821679948879457753496416979672695783614287796148710312960813068064384800078245091868274098575193672223453732594558990004601870844274106493433243292765795025714657466718934037093369503466108318598422218604948093715089621677697624798110772115022870208343140149622039334421346567760802721917880060736686356185382535663183044267677788281789091654108551902865466449557628481307421234487565869665768996202512712616069966598409998620351925296177868194134714981414484314301269683660558631800928867898228257645039248859302410335663986573601970770883075063381215915168749187159166429874492813388204569663734339142382312452158514697375002069163070518755775328360760333022276296271127159998925833485219763911293420621743036760111950482567649251599661137128731546232615173176972799491436974058743471203545980460537340037960603040421766733843836514489441583750240317486379898152072740105098016664934533230930456358711094166536318375554458917697434412731039350021817267978092181524911710408921150027020989319730689452683284985181930806690485351229729489534698749013312961239277282530755232795202696003095587162700849255909999137691900329877657800228114177169309187116174852370766066088701896118903065337728236149683782790255729172625922672919313895656270329235716610513265372730255453957769182110434751883486019797440077873781188275318820402701551274601248223028613939698765164514736436517333584252335750183351304246004938950729356568548662799277604908660213257427695431660180493096394226966683198044535078089113748135095873770577072211135974531425422722141172113382698055326745584421299963853948511093923345357007676717670581343529510067733837176352737859516272780509896284780192310695979061670197911786164020799311771029079274258882126872690707728125127598182288373997740120350294355978006611183097502539863250895174761949852342676490900510610190992295973572545468745683260247264584458199433147094363086389752855543845620699928203674277056426054983354864226683170361147191163853680915220179974320704562265810095042790132332413021110595261278116812595601981786377402311072256802926261119176455076847487007140981969853475162805126213724912857369896509326918696807621508613356932099605903177982245148025849206471713270618838574200670624682842740604342310536714480718600776577948582132914057960377579557036659453613386962014649707691491405527646820657785938925368715480294027643879929385493853767228157838130671800120072044768330396515713045527489154483721906676829947122504974901631732068070676399841106774130826784439083595984126271696244662801405624548163291457875964958298645067610281040324909605857265259861122035441693336569985038368288695772933846381107219870503427900837933942778624655675963710879595388631934676006005229444839333202049669499744455251742472196079365404244267026321172347435083278317885565023715576473678076572490866348657565780298986407910578153097732750346758805780345343896649167889745985733934618258054164116443170110113577459669769782452319563964504128841277256823222422272406249170083237761762342734403045839686552389959055900714799686415254506037220642714091400864125645781574489135815537157932854591936144097145045148428321601278637138490212292911738273404991783990865356048278202391499556804692400991791403693871568738908671499261535212283415602663930791108116956840793383563459543816590994517524980912833072215217640328233181816050403485974583893999917797085617951044070075568701950372606776071581326457579667889110619532615380084026545968182988171726277149728052138321043132990877633884218440025499057021027548190228640300108714986517971548754751955561020009254901076334023792748380351940759922816701400286462878348037731650501900428986472513467120928796860410369161380339497794073078786285515488087129625169537226314069799359277261913012420320525199743406711146345907183246337234968677858577291569004316114164767881045733228598795438770829191784017055148376935409994642160138650864954671725124511522088537740058759175446156701056391448210782343114401113540756760297703000140313797990526224052942449846346089286241624355308717275792389496987121122227234694047801187463901194515902147149357797788519480194277154597020259472012592874097711511569828347659207263453949450108361586849352335409271179948792005215401685530527798528072348176462508421114340586261147328119700459652937199178715777476373494496806105530752361777367759342039098232333581085336290467885594297215060999930332910299130822549128885147656158378699344295131550386692840932315857586447121882004830930695492016039339744475892754565701107558409035198596905597267330501092362171578146338132569600659199807163925832585222318936476516866057332249794732712984572943772148824870547448456958170977392590237086393256740611808800273223067349108753157623580081391281200952675941675529599504244218328084252108143472356415930074396042229046417914019812287254647857975448528186319151951309667135569051973044952425639732798462801916752573719849398582325819466450855979619828928656738530651350295807825757192578519320724532039939182367299741197692853046189750359160705549183507637837491437601549688249295559540776996941793894837564410091198632387112809157916641723636357215301553156971718851633922757191127727108105716918223900335492853679551207375351391421065500282652855183008473629413075127279983461106707567427365086423145812840054767322118137559199004195352022703770524601424241609366779952084493652328832883447904348750736953045140866949429438613624415921918091641142623993956980809411245086962315589695808309185733134455501741352508070674695054608988328669446687976968399974565443985759297851627923365624282841564695236524111881727546825767419319687283146190559097489971033618136786793612744712694335604271158509629207558765667581670454409551272023053495372435659057332275525771173576262757946568401285993851210752889680167273290647681740312104940162371232845151107802654067420977198887368933565005920726380087973344326811332271139099001453182169857329786969461890315602021772508983485236844026196728471139045300190783182858462055191188711310544368049070580007879992043402360143722254804726603215880075294439395160072338368502182823294190263185956355906279062385972873117146250714742143920912582952844435057703167068462118764411231710609092964325330350936133162178688454652609699851535696711219777445758582997428131252202816912058743467681977851862785562391319649352615473181209275606777443055313629668806461909230159441184289625349606948732673305437830093368104446023611733828932919745054828964650501111067440092446679713497560060464904765997186535446552180515777969022568091606422811809758514459519605509921497141672392412711170556085873340083291231909776293252553376974055489451733690977121393356067374434725266836686617028564130531838260491735951633759797033260025337975386284639932190277735087426098661012012233566222193795946188444849965761570388787263873673013160846377850145966132016864984982918023127028768728169526705408250698428930941444234468779649474889180013018748154342806472455178121648359403507576947879631836676186771823470667923479450053938068840642951383592924667053868615583477994263239878606517674902347683795344228011254537860050477839197359071857004269701883097385950887930141314260963510704278630416474900559737223438914236090183188038590970364649451776701540491227494047095972788922199184234675444832426518314634484951806110610056204241668804197900891690877469159509991692785508898258023621858838704523798309845327369078599013712366146656231574567019374088203896021517565842127164748397351020504069307620499737742961680443813677676580330162984190919024200231162476490877694576315670626241079941072941611540411369169028973438591461439001255204490716224983904007907406765571545327948585080813458902261807191707618171058292243175428994958599063961010582222457679527926498572328386049266588925458628941006622003967365752226484381474160289675493606010116793972649666120894110275067051171092533630177002119910555399653242201868114030059127535598941717163731259298362482612343267554744057063817053017888204346662105252889580488288789726811305557743455237557666675759218051643844458480940948481480620834517528245768626353824004246727220106720369510070732237422096575303419459722962957658296144478101134582296009862145484437901571466353623787602166980372349217969751422727141546061833241337856702634359016781664843449781698614860809910666149395849135798049316510125880874908346398004143061875869538920757952245148875861140133352493574837444712315557533613657044125455249943401729129248423291638093301861509137999656036793580098957183645604547801884378417799743063909233516988361291556877440077629533788387517811945081432003407009393537985540584127777668493897580342768494268243665799534128560733265756640696184305512037734403024644881267936763789349130296714080897879494525352054587257828442560518649176595849260880232341101057169306195185894235014599565901043547372861321072165761388330358979444285854232458062557025002039697154330841013333565127169193582621928155069038717251770365254673606346900108814196056954862020360274784805967811974494230889756634565732441258237545235340512310990821815376883787704811882563767880689278561489694896388244774699972248704905477319004992605209983900252024800603174202535127349424849926073465843297544458611544918145073143145066691989443464371882546979118853810563555913331265663352978004019531106913088936896261776191688056627975833780069306023449627231065633840185183629255621359203859324892726899768844687181551478115019368072130329575861913308582763242786440351697289408213639681170843433826668483547429284233424705822338173441633909773703296497651261809571062411573642156433746250400324465091657397375932389455440641170403113478636381286775624380691737359450579258018225327888323640674285060462166716137519629139833282598400548479409680133296116374680415049039944904365718796032873135434243951946843599663769595056272857744260474592364416483289676954852769908801001470020111077843122219110003473651870616160259758573688474855260065092386874062585634210312794070075153856655872180774152149305176204486389397098429748241560434797010095374584971767651580263996865832854072580637383091473819491969245501274617710464512315017074805540852035995400972663984706636467204689090665050328123045922078040666877587791957268787426660215582371757998319610475837943286138049931096310285469092636692354496478638979649463727194303646660212059050299688406409332137108221810194214300670301672901675348708214424448326894465886952442159646036518254229977268274559541897566834430005435226331697631255853327670081356858145165351221397854201506407891481503992955329343033592429919747507904188107154994046141776611439323804009173137109956106223483639962375772885562185172026552232451642205577177422906135325014447673720685493670636932161004653261319157727843506670019842815334846019450712405646468420678928305187023846889448866004166971158144949385177610962580125489788380218059926945993220190837522087407522981797801064935735869242900129220985440833228829491701998833541516363099721057027466678403626443777057815839083868915310915994505236869145139622254417578260934996671962264944113256993316105312157430789144583103018034761018413769722483026752651719577258278183704995057213712561722696277130872154403017116974852635477309366643465989266741729660501289389267693594602832617260760907759333777385106255207912899068880203898198673797470985694552180070935723866010759094656019058259872599034031305898951177960131375410708125740086857838378329744054097598585443936712614074462831346484431716844586698110262937327788307932202913250762143712421639066644881954362268533489227454400809604958247186897293599897293382200543596836767395931032119160098500172047205857640482178245534603293040684106444421012771065167774703146454227409268589222162917863707587781047630540727270898297599451664585109535915954788406891724922382414342182947944196190627941203874982741329818873346476410341005161091666633280217344914002186252781650134899810981723341284263816619638901591395394420801701080348068055708765681936176032918489966912817278007526372394157831572138622687980149355459704676491584482622260590023924553744972072084293641842718236527618906362810889624953732304318177244793600741539471831489018170184679491705425325800058326391988941057874675422547336407107327623385612410925153589904756183501860209679161108932721966222968751679112233307792734773354301158192043107702188222561165138512687723186520863493828927402576214872631417833497863043503648181942946611119555763215428787694459890437092372884964909163910589868449940906099652931193611149169399298469677839267229260168535811708158805331140294000278738139366497006283491746420330281131881941683421492286758305526649625414163855566242455477671934851019220636903047339825126870777387033995395299168631605078237495555766930508032205707339250779726869222828697591766794748943144952865997693418572606239816551483340659164534541780244441795817555805765889285330764465922048162500103468665168916965976142501922237448085048071392243795792613992149252824989176862231800264329164466115869416531900433849375773661837898527870496276783191477135522442488049682077701273197418063979682548792315955188285332124413190223538997234004631745286434815658587213516476110874451217999196019066372832190000607939257434504847755587463041889295434173910798471902552949734880365335827062790476098072097710048585532015594863237424150617731551266923129647469877483723046581707970894788384765962662140813692591429703449994926733391602230715756289117133645776648651186967583415528186614544289257178755792381295505654075456861713059872001803848832650717514414159079399374473187972676746722078702162960336935057532730907888436132938079885052950701432755543024735887789971179554945405796273937190248402632135351338052385787784021389199406306141706946935201736604359510802475364713624618116024832456013791962980411191190671373674452730582742291422274187069808575452701542168788111015053620120100412205692602169053829016996144720764724656619889698866418806531169521010837742870708190230057821619405798432205884075429739224903226257119409924964649077560416748250213065034605505818341301476894595701131084216358029490395237923818496468598583236079055012180469187918131888048627571911790251825514750804877058850866926242449317593310796405563718512649313471573996051209649435685031350441354044177132049987287101970317687279904428373300801348535765397237165832312463540734447074841063280702576495611091027823440150121824922569807554423543332997617556744087345716736412428216046377652163259170486964363111120965721507814158251118118408727199239406801209305662660733402642310900438485268750893676772572916450692839761639336054499349318943032830483655245711465006945468274274438067499378749078870018261091930323196699589789205430954545273835840544223721856589217439960220308334413826176840241639042187134097514297577680206388486120049225363636513093657539925204719948903932924247829186762356744672256198550108510586190195262814356779379967742973085268610187361149753404209339308106415491590162374542078253522319130260836123559905809464824968397950756604256424449643228803526388452100032370003032779632208696953781395852785598096262407708952924835823298586711600835276610049303922124441251705989246902835915969163022805103003086321111794899492529477651804453017351004166387409389803354032834688175924021612221659595490891106608562912903818048402725895009180988785308966682463975044642089166577114585891593851220612813656759272794181426277027454261948001019759242965644542953505185133217916122566347535889202062942181427129552897555843126308011889786432034451267379638984095474763721613905795103711680628819596587713980892964734715490100520345058752724945768060396806863012601077820208834058341486629049895873954446426892765406932011806804037053640480522772697476600942373492603289719923809155686405689254489435056976053326276310486155417501651470466600944781195355137957887356420175089699850059866646001192234905179229316886936724558444587891743708578924836497113801460696953111314999593014228355100850649515141265943340447655747122922531095803145262195227975032597559772984653061733465083589034179642593614465347232594591424720703357436545563483114795749377504319836752858812926503466248432672391044889021069564422963915751432699770508433572132380198940174490404458391127100330717164801518679777211447632217925305064962409365177724010227953119192655179223681710741182785149794691675562962852524374045731527364884157878292883247872220878621694421608764484558306194972469843495683855168403125960297204024463984432751511925532392861515230456425628385869351525499380108655381157879513890278237731845983657155397066129568550167594645013244982778020116521534476436271810093732827086829629379954253789997608805610201134244532405569378455685136984847940067713652179742099482799685981553218712406453060351524117865121029227645389747678328418607648750370658084643961998322816854221050923240890757343119545737750742192836586170271068770856391503284027108526821426455861194050733136918900347072021590119503984155465012750741983271879415814818969584030712643496660538616495376835955602627891703219145865280809969542936056981004557677599628490288588741004786355276662855586099972906199258990633249637965529526634532829148451834155618151076232309470359073021653886200742346898774152236701524570786939282501504820642225644569551480566538381876188471756766059872147206598717215202767947945071597971024017315155651514769756257232008490920502700541547629392915801856034145696443481652873687037283769492770802105075363028868577043475379912566028256777998655638704855532723308561373962952359347353228302721636249443201305385282664730366046005014508454342279945513813462931160328090438261090259802671662831610350691787580304081864854976115718647986667245917902522877207185788982017142746905900194099027602645426873172468611046008906767864059341989952086004337270892992297525319358191430743658354887712882612953583530619634409182174579862606484070357478031909684946389019459654657016139195879711759941325206065828715491436587596579917155152644314309989132839559020861709703170035762911890282797261405458173540469663632454832148716206138061162536264528484965451904862930015828903754288768602287396217532086506460138406422915008189317332240710202403623794738412723720849694910153452708656558707960005192788797575532129753862019953881311203153055688805292164244732739550654992114532472041471282810318573029392306586883841803819328365996323344782423735887828646886316306351385227582250533452631666325553297794342353196365475238396541928987765148309976875439161295013053380760495355492026255933537644546343062749418852828306457335657959974781145517732743296930661692526979291977123912863950208526217284533222791735792354105631832879768476345956942035298090807677147073400556014078440555410323521057441470794092745108839158881075423810395005142632052642066384633961263762543267011227749781282642455201696835028389714849791775001904963454876573462242403065742965541391507905598272476787414548965892285238789061346467123066487108620045640587939342206899001795278495525826475996135455054345407587197747806497814431626591768093519977453861500201554087761194078166521847310837731308112895572082054127309253412651873726150298080222547094780557454850242140035281690915517237439078024461971708045858934490646183318599946568853493550520674879686984834599678996782575515643365010566036228051328731303364390956452134342400069151265866749328883885797359056897084003086335200019295671448460181495148420503379937147264013550808522656919128517562571276051006661168577370641695826780644724374655938385179767866130588628031705105512910585814631507894945573601927240228734443464782362271467196960855993746102746842392176753459001534087402116733329605806863960555082135616283110764897360722559418786330520134394284078969827143058407743870594164429916234827750742293439264519689325834317780424064965503925607012885134878294033293048492764931332370321131090722104688742210646574363210009280469005511433862154446764210701605167010753904313900705108570209581624353530645261343657917542071984872050672937180880897614345244408175145296695227447898889787396682793049990571393913568923018087883074982917291804440974700569785627436748281808112569635684444105065292802429906866392143411609915293755574173316906337956302190924188589452786262531974942666400204118715297323384626488327950183266638068719928923706203824340164018773093491377481521468396168917247038080881586569122313392929474805252472509651778745521879954100463551705193389076558239293830229366085332102910317248872534303077935925429899147716913201613025619083544089076773060063025296642252172608128269678310549481285908717798661442347320919090689357089775948783824951265512502932765682243112199212515664058197948899202934398638727880046106765638792287364014101211454832777932984046482868187948598669486414296623933592995232149605425928024602098812077668800545602854925805258982538250817427863958952777262618225962892007746402189071050713727940660860644958673646817852574127902023987182740193141126136099445372293886479145633236065968048249582821974090476239271830965779090760636465855446677409630882794520192288038990542758691760869711254397711619131353071274655436261038380901233662822227868401727031298362135053757944695079648161412698503138718639912265863055775595001272498678733753130761403780732770066973918811282669439001865626052491301241867165143574598661362333596219343671605478522041123352388631005791445175052025491064537941792640966038979869381626542841393090062987218920268459980279951211482596500172559659496236206252906222196007235813657792301057589301248779138413002977136237481782791497156029378151464888092521772502849567507710457004386665885125810809447491256231172644277014569843242105397385719561967778185759773162742991832728256492003767297410765290258459104281179886753791380578431135564846599407989603951504071923320194141462354025322695223661932247497894661514231070855301590746012280336504101148772484545358730741147479340112224979678845056032955026518867908630084437769044683844640756966697118372669596949227407216390619038252051928606464518582003116761230185229012312366635524830324991494972522478718794810595473632421732438742059774221864740329948911325167835859016376540875584073520460834765157069480889770953844852306260131534798761458027666436720589018680141273477803976991817533646712740986504298561643167359388205060502851946530029689676917567238588754141979410748569688484257503256104419202572210655627038636387754973943190526564285994920793358541320703087494616458035489170772164232282722856017044966666357486047141378207394752492163905657147527688316021316001001663228820517438518504011991110922845550478473724456435167345302404226929304166039053223018202382125286909513136960020125253214549045328213699537016023267479869310472847156037472916133475559574455952517303320554514853046272733493391324146804307526937100293308148408355724148691691476230447190263947443567634973057541647595398738944933327992033867708161070785938127575572090783143896693256408607885573116588310431581930908362813989118730444343922631944567859462962277529357888381427694116204471347098466623542785664191501399444464334424726943763263442720382834109266423922725828725986184076664521699466644740972235958242206406923871856673921480154832367709208791818992399191295009073563850902073505910095674380709243005644992502975236744209336346743664891402040273642557792622837391471925150870890246689983342554839695050006967608223870325199729513717509623727764154215263937654892041206890997299432181400437841659461859822653177178964252775026478197247048077034197808148251454447487531651890905392262789390575699645201461367065486815219167760879637197359287907075273825932726479159428996308106203516228292540218392205310477607840899082420075743173253953401871082309455996448137349764092698043965611970100046220230678818187601901172099101908971483038718066777934876549670052872600177157609490102210848215321685410707034578158382307461014966668988164110869297399933806461769710329663525069360142618271695264951247126691346294189741102833810431239118329814585157080559812847093327318511671904815634300029332063220617218421189486100263691843108602510839918776776429923703525370401558627907524930853255647634909222468994416037447229400335284466030486358959462133787453369965453717050812625703586513285963640795684560741892338472296193866961517245562441537430756556241172122530451112309803597769514834286757494696887518821120054206748067911651198689877309920790124803169672774452406729875697486177496332909612008709739822846792343716416952462789272740127268523707217601946376857618736832434315231367248089371125002647273297876542591882367995633295319627104792396407995644991122378339078151121945857514333063896747172697387715481505835243901607207626395230017238186880224601386539498239963725492658998720039487415558315100995355288450520166664643394804222272862078944166158675260135003128816804868829785698700992016113933773568855106741111081966675244312354705877682821121553435084733166197490875519230376438841600228964650045851110414862216252217877409979694388075895463542187887380073152624400282250132226994715814381499009897146636725781152697334562716888482349405888783327189092335024915309313119890427045749137005748393033514299657524885979128916876366909917483978215594269874317066702553541304784001806940777233673444257242595413677713113602550155297686656319639167726523192587267923134094102133743553421239174050556725932928002424418017190986983462527319170509484180230516995060292277542630130487076774910887491053268272604921230814426578914346095425878736270221383394031874582035377663632202115086364032857826343774887223271801346638150659950878422650238416528638943114248557907662818818714802104801946738177051481963460657670159631801480836959989134684172763615111606261857210261660429939148512656672543184223991280435663123964597976547690858482789082874954255397141388873946005913469788939427940748479142705778217067714981453955325437147672832188700000925628133822677918857810674312717978444012744258663034252020528085547973443506479012955784056754568661120081614088469280497530464384192376590598463997311904494881647722626054122413934783552130081723821036761011065602028215646595693031979261563786229532881756738035039584009787963908983746808373929940791436153136282156676119105530955248543651130735065773000821365278760141376330311895604784328853031120668753376593794590982334257909803805546880663657437625590639671397651554055421226090909101407702047089339381954403450694592026603161798601535980260507264000695260186010887876183591026365078297915565522871575487550292122352562211166431605189184780470487738515779989001451992423108923115779003446679663192747122530536929298444620156522478442703033692824199649857419750399426944948329949051424073335305927236780793557133352086225472731012422743045039056115701847565756315725586609497646847814950407996077323976630095561893921953230272899176580358479448979677258575254136804703009571182789510700275315392927575808511141132848367976307093941368938001712362504895243460044630257863734908887049324298050088489345852100508052626625409787943762035554747358162670423679388228886507879945260342365386763182134526694939929948955957031439411296827745263901360842380965811826890452883282135245952581706643225108439525982988349267137554038068293997204668747890465455714350246044047444697457328068765875242668719913241201756471374083820752181457796160116474319459137533607407229414592947772813617942656557852016534762926929892638987443216032189609406060679616192112993820877576278782195773672115773519170772887170306289230188653380464225442656698739071562707894375249123997020984687925182855180574404409145320233861102909018555281368437812614123153820518058314110254965296611061157868413870673493633576062320068558837024800894744629885564714748116430200441874075175652974371615124393037211476969264952610775641436087765077455844823928074468964916401263645877287174054497141279623582576180093286939948968467729280629020298248319004705553352416432582686989632911899165460815366120013802367679516768788761968751234754710223030384912599132767852063537110545758895478903719148372334051251715954295608274004679299933413591028104966178222644377591973195637982693017159500779772917272631839557987819531231050805726280250065570034052235339939276644728343027426631696724985802712812359912441047363689807222336863794079400843272245763272317961922966878820233402295360672634393632956415701761229264576744974860824210151163539157315280331153965142421853732137467062889941814200828652803396598090327510608842994890618498567039961362795040567285384722182317700947234767231984249083838774506215215789887441441112561754471601340037306924985368700382692569611022029318382684345005245620776483788957368358029651646583428635711986347226204883611443307269405968852298027250054428970079119459154926191961077540839212695991728671954365977067736332538045272067883098157011040977529587589283437883243991664215357751718012176461112298195684395819629937729578598476917376932482911071838278649578120750725816085842811712245759986723497540894966139252696327078158122814190376631444315414617734495227965382431347580415419755285195732365992798265336510239594357551590985204597341863024719869047570414176472876595357891773525618532612338771051897621113910335129179466873085213335978945057131931362957010536666027498161550091824090173874904431193403261730926649457804246359885177460366071816444135128686544778498928918858793468769180895061069071604894263185580753216442625775134235530065137529448527185096000149246231808288764974666631496791400796827844535888224750691701621694577310473315272218452202136532679720485884384343057560384831643243645583994024332476007492426572232299190899440349788877058138703916995285829256977370526015049959844857412020372331154429033888989136578325668887987927684198998079204167330588272696770922152112874329572240324940695684001997900277325289323529178006434253143718113990518500801584749753173821328732343045880834678939790555329518962898531330716390162567254813951140602315433103053540315385012128480929242835538191257829081301628673340302435928290259764336168557267483604153502546928398310248694381793875950122917361480584867453365821592885985894438932305476062656756751060567861837432892826764844202547683755626887482808259534627202381762136626063771029887144902594827055942520072634934436508659229115717244175026634628132479937780830028278189564790256337947266095449822808834858078273513449377008900034515107102685738453401179240113461512385097752909578483636320054469359748496500434081715197847943049138567232767354492636646217590569648702418039223602528844956403414203492019315282849061446030296614146694819592729449315943982045806350684450016087287519190212760333336610941159807845312441564278097000471641620279719059346622038854697292369211071339101927009011473237424781477656094339390532069532079849579002518788954303497180727429762173453090404203798729563129535293993746106299947762348879080861109302959602852049037872851787094020436565711210948521874889198534775074448543252830527693533409799141736455775484651519049844763357919636933763241704750403423039131541386371014017233998933308107128188502736376449933705338699063606279644710613025910521037081820311952749714226774310524018921073114470862517143319237655237514948784018206274016193376327234209035368695982481261338831655134629395756494014933882042080607729283221960254406214656810748515239009892687500740714766803181701497234515093554883374419368795865797984343141881441720892115161534686039747323764444964613007412234770913152578734926501836126294278381725082945108778413375790862662084983099348245027049915753667622023294047354162672675898305837130632167569851455623512243269319782380037766740716824676068415701126145069520056269250148924652366818197649911931447127400357335594329980759524306816081544816362510225959917186185364623225311138980884337137163140585540831650721465874089663183458157975996848016925653609588586491572918682576790411704426672089962168780279760755052601309459039533800985711805467856122654019354751912895499846746652266320720696343528158821937395296203522098069611252709777210325822822125798043934484830595142801956338075718459110616199809508979795517827426176904603799040031227581044204681144922959840871210733121618838962764025347880196735451822591310517747856630210928923822338391726377258942546511014908912850393873075973727749707995248689894161240867859441775507792905787916107509377716164092620626270053948775428065863089264346284443227127905642049725323877449809325108922356413911795479676366124466864198564868472382027011333240190604799087108120399419638896993649622053215858497893463036277121567714897389186714393268282654991172878277155321798050336718724678653422139436601985689969601537638173485247673349429236883693588386592288416980459996762010930040759640749847855548681912180457231225132755239286168259759188916110595048449196098919103230136835582072024370793974549337224552845497285175381605229523997477514816616221039465431786309590645167802771591584572836083336655395415775403189701400877799082858609753123445522769076669399846342351332196679553398759824803837956074495638739131051995674838038985300783176019316890315741845909462374714437840728266118869878886925735253645660705170851012465544976349809833637219970476251005119090294556399250265011686627076977340800371520254322885094416636497416157772930045508173945165801651190516480412356799366100630334386984481087448836704349760969503876262114770047759634317245952729265767378690986069348099052460850561784908839424318950225146937554169551896175967273209195158227351874699745202862084025204099384737809348508813051344908236089624745697429345255339936027151959327209636896621717401281050863263378663734871928414298572045240953433622250395954461948886981069254577532203636436081009365081506375425345077187999304868281187646822013371177660062953977066990569596775829944909018124303883447673506775117419553115255989129275507205274085114265261467237874887656569074300333354984910850329755950824809738821739136946805818751935291831772787947930324628140072762480002680290510359706893656320303830722377503329243683092063052790103803350523035857234630643408811907334354173287523688386160032929374733243061590981534929189557717950288208424607130922974583520629481104812751310592852906058544363605082489520736603497692347906979204295506007796553219001922641933685198707756418413833386842298963796132945892952270746417357328521410431775991435053120271461041948691768957660179746781672946643517184374337231607692405020685675278924542170370655391200192398434706053968503434326946715097845625739693372976258611389550863082869266591736662190172085360721087275462409294500728739433452837162874856149663466837290045078342484097996089950401058268718689194824041832708786791546339822196122956556016642545130216041927539504676592043290160735116854628967969892204239603872152658110093783805093723244077440593408463540040196439516195944029692690824560091541265582696253219172679627439672345303770338718208806712158718527025262939128840120996294259918111303821277332554400696504816400508106331632317674210781202812758125466048230871248751251869102348433360493997618319855293895561012982819197780839063316161148063337448356408612376444256476978208909601974898773789059040145864186172784742891765205866629176356322546471712824619851964199611239590782990090227809553140581393468294819152976479699681547706185393699772873159575084078721061758639126592759348370306726513822056260743831763160161737870043094422047227606623332818893151040144451427558243942064216123395127920574643266755727829192110686553156428076589794675726089025784922822313499816769460704996400971292451541865092624200178493866185176130583933919723910413819489486349220041264918177600730802969850660987127118328012173022388547254641522698286079326737565388306442307429347791175737471136866356389325223024094744645962443788242263203167659888977947638389661998731387721497718814642766270393132040883317766824791566001322198467805901786288274307289304710043750433406242278608654575249303185078404624712562899492502290122834219572705119228758040998081057846049762828344733251613571150234504000455327688441704328587180245438729085549221834400867185774765938769764434949953709312207066596874496374385448602313559396305238829711791004178529907951592941085936027751324744987788512627720448020421286656398737814065848520270190180323403260201244670303844046056677906436494890574498711142131181704193938164549198225913518139241124221370844251153374849133595752267905972619172665750417599275819434272904850581798926717435798412676417077978970960452054325011446076727401089566585408993660626109908140168254336135294684516882505000292914988822105385168071088573876267968814398894765567161755017352983263573190448438129111293143398642132400637788646328727836805468099543791546067389846216083562795169863626742579865843206953171561189135635577778606829093591900605689005224182849403526173786425496696786640361213679489127469518390744294665101512973834672813894115202538976577546634089680246927244736424258512565187060838465482562041234050516499100720707883956490697771471215396979680082958842681777052269456955327586942485126320422127245645178883351784269355126885233761681161814550503397842119374261968610464795580311135905119600530108239543764259827667448963265333818473853464777642559565342092993714619442211280526042701450051704512380345545293724111025269616178684743717848446656408144992096043694972677081868042925270009799763261842442681443787534703100952897792671974655844070202756145760899896246680780022954284942719187345663187278002130952535361095299862483053743377576131811985196652367210242707803521970451348277399590924080563950755224412561073303813731368326655261239920045029065375447579715655605578151687160775996117522231589408447968309622857439100722979291906018410794176364091803629488594167120748587008357170194003678333111447529576563962161330756292503226979809523604343529564186760795802648044287874737240874070205298792491091790916269470890491031340162693440428158908154765973004068776328664852028241902982137334611063877971112586750588403919318851652959805919965969924429917369592996423692727664101830627647913763499366523693038538524204311782789276614080869913519794998148728990422524237072905559329371000439141489224997952799815687221881048354141872862071605292273127504788678983497914066272337774641382938340400383396454952347443784479141897788503720567317729389096576904440490276343474604604575898400260746406282161380591292645721532068987503538489626108549309436446376364732368466335430665129821411457493048839652431468976911997512993142369981961676317324681980159284760103903292599968898670487095510970961717188719033493941215919094091879985938563814773737991375083967535691716704110766034228141765175522587414492095028334567319031170965506669373782282091696670812292273899377607703413929801873538066909390857808669992228081977043716991266708093133034441698719728045979360865521272698266612190997524186435747400154802082194634422965876668380821809593491122494519989546124266391355679689466764778106662735106674761784638910415208799565619294711631836220263766178564536647590263411516041551310793645490651866347615689783648956801583266855856861077085384338738921767662319840807886581987933776014175998916463240846004480661968565073279244824109272641972423632839343349602792383631557082645978159282551925381587175108752076864611543770383130147679772222083110885619361603854516870788694736803005225801380096145406286210877814204657860090257631286198368158769719589761398581859374804976551536520269596895401175326896365554871685528397865283034164837524844199321884099238220387679831086092595591072910105022347934663653771676574897215655671002137671077613507231928396817884751186192883617683032298745065687955436083975303637952889239863780413740183986266889207042704341938471980716790477615288899371425541034554218507249723127672185641498661107791661309479446339801344181908933848379999185939210725941518269388625843718119439864855673006800740204239285877474157561617052740840533028264992151649971695491842721427276031342254173305905108995263162235557132798609621396797086167746386731434839683575621518659287826985928153467934909453960689749649982834683509102932073285974366394683672387794092072935145497228989079351495313110680449846856807601073879140240373429413250399440967194619451496248804308270098194930264511304408351546727917014624046329000070818388696501913319180460355765788322763551183600664211475947576012180470454654853330633454805123972870312816391964630133236159329613202143789480335949366108196672015140315547014015598235417494893723651819047630358211536117933654520917658036998379140580858682830027133675530496660137396402653502635736231007785721185134886712634982081380958751518174566032031087997787211652241924626135502006836285015245807410301192423517663611315568471270019643258005616191655629262044480312588260600586854131477887070752843525125721699265980381324756790669089160600715441524382946274265048054668366291013787343849713874418497279843518007903581155104114893924402241071964772907950092440086497354685415119724598458845621573781118866887223643547047767877218009172277189003197966755474732544259442312793237663184524635213397599310946484443246719836673635203418666300892775166335877053502229529584885738668780252144548890247478227607688731056069361164696309597366101686752592106242718106679473089317520965727930921459982274691940123302714719489701821852218371912864667340673449030060852331209824035290131334379825560163291012844439778899751696173399492103894548757890653951802919711265281682515526696961627544899548650002905573387265697699767496473366595082933846595587664017290860074228707426225277373951107196420710422707083965231108335554151925141870076693668279796565760580602428982254006553393638365929875761360841990671022552446106420530349998616618895765562188760213883226265316361998153934072926364132823692017936031651635186770453258939878025623156901536343036834320436239059736419803153429328549167411382571941137028966533775498671970365229091886918135793744957643114712593932217076010506706244366138644071992659543481752874026783077172007222681522822260290669431806479343227351436025841578343968012326052886111247044854938550023766462206847348134668663222021796064821311221674620033708639286292707996503802553044100613982306046583003238339019046126433231582786702952889099215259376662057817262944613877792047438059616191898354974131254863757475732527113973859026742837154209449336896755169820825836184671605283755545538386761940867821586204482949942197583239404305146326393218121783728236926386356542804289110377785144637162939419316952541089858468509306744945889771402218578920038837090256725999613508681299160711431001117044919733948418054491596406505934085872415950266205846438299472713048785354505607141058361734135796526053966682048331163200679818296355364923872331815554855637990723326257817463358317579618533550028958670610671917156378847620777503588465191811610122328932273184010194155278865925447472345775265463006753235518443046315434955350771856329629217332446748022933107519986693825698963897034190952336911592404021715531818921473832777389056939419431953546513493172848910017341196372945370154820831609586282431004777156015551124437116700415494774603595734561314001674525663867055952941635038595131999454100771243095613675081938750270067514481493530556800511421220092234748832614856663723566960856328518309767870647150755072934302659943307440085602770664393419421446186310030783040627494020481621139770952509724127570241407443642356513196997258031135096250033439826238853205332810928032469662310807123762526524730578470218493979059147856736706145101451565377829782199530928148400793048425310664329479852806461200468050991570567228173843869079348178300788543415158781599580288957042075932982177971060786914669627281209674810542439072049287264718753932294681400825586773304375709533191916460064140880341194989648251919673626255805979579534113088988204325321968132508620033366467894989348115346258806582941097231611131481134885311208627101283563344939925538798817726712642224041382132584451795666071477583301334035184252513102918779364813474493684027933304855238644631101107375530911066007516241301332518606584310430096747514076336763241865040235184681455349058033390398739111815592630901039911186591409387429609818879711839455789692225574738940685083986883672831510770582359094371586522629427359697280773914284461570582893837090482645811286558716094556268241861957619060255690372034284952962657840823949790789089486079734355954085103301050900071428831532462705109625339094225225210157161723351540173852507271255572698635266409528194826566866660611389074429657214853285573631556619453486626811630476365102860133041932411221390458571211933063671271690982571753027955515306527009217276349762869745118802342277291359205231977399898507286065264546367717763101252532165884459847524062020156179053669541194717490680504975495360142793296072752096938525459273973479151148804790568191623249537271509611852560877345360539283013441820120682172306230746429600277204197508761471270023943167527987623905512928217820985318064099494929719986306904695606827818668455454176848410000861578255016364781890105517246795278674644261357972778573744263228279425914314855234854161701995133729533917767412155027882950349670136976879346187608439221315203513153854307605407096422873034484204080699059707389822377877149815076021881083505229520138427984265041860224490300305084839476321914708604425702445324955333082901018661398623341184356716709971780436911354196143414847047964868651613872657767294723585417956118937851017582637249827104330346723440371305126708588539514508762013750055849305639480448381609402124258611533965928271107578813372326318355739474646832068694966023312851544872076362804035021915064309183094611318534372283030523212456788897789307873325337813439293852798526548835237006723197287601930460822448441438804839200637210274275201579053858037344920821879929012484453889034538854467865590698222738477422485977702152762386000498508526850176505517779566863040279700698178624569512268906089859636942936445239255237473611482849383278230889390267436745285214095951600113599248541840154342330923089613498489211547200209536742712457473243382288026756468712421108177471616015849320372886457063231994495176740487263602746452367031552133907297456096439988936169624160770669617653436080716837621880848684514207000273053234036908518518126865073382098973715759190736564671160178947434654000949727030372861726403747343379424814718405319471785960605648357343446151672890065681127165104774305270617289410856693564160641592509085747088815856211487873789493606981807903142234919306698917757534993017888909646106257034557767415229860574675330135490182381995053962740408940060566753824901636544656040874439298659657876275342246646606953684956336126417700892005581740244469514054178351626165417039364087745975389545255542752387485496332183774215969698432548315527370506320906208791408260862008281178850733263815447693926384953056037425381433423658025390607422281138221758658386763939655862633751401491600382138880078960062244697798643134274904861230139996747407450454478215455945578617648172316703364337601347397420982083233019204948407341162924323292835481115522241416263575988538800303857702896954519824734597507680532961510303916121862406460995354889443569529657773383602312746302285870602887737368795028390564214772146434576305334172204696020522553176369268451617412819282061514393115823372151992473822674559979936844533351532004669820079798436282416080903435371665706857464064133486683629923328361017953961270102306546106545777208919011978453988347745319078329550545660753996032550004621871425502105516089271495259588369649643938237855523506057860122619715140689886962758892625838122700177235449029155677140438394299304854385285420187591901284343912517077695278255723604385406552861263525888846652223951786504535843697816616263153326164536876635471592978572394308262113676600793023681860045017529212697205625492966994117132906798596333544838749632082866656449641212153273503850402717253317155164610673189620178614182317059354361219171780041643028697653458381360348897426553060409788819270450380632243031602121086157296243592173954581812363849056218265785880968570858262941830015726355316409606210337708296220409229807969787769706834092056272365766618097840215756768067428783159406416293816966082140235570080668054046329094923329205242559449338426076248428325401816992000072169105021051738738457362621420129965571464072605971725609807686884665957553681183583511350046402687891726464241037339883854907753874308954950721360491834516082843342270510717775924884889020016072615290820034373490472522585034991783533377933741693928595510063063692741281501039792866799508223970789086738285652350096216299754437981278898380694162848060233879080183667550315924651027473319701460991226246911759507544030023917274905437036049170049160904700108018756812196791864963947505994079379629603148317431482535849955853253327779260992425358341804935312097364041141972621045774255939189499330526367108290977148442079027062772204737180487189856116686802934910828580575529782179745675458684556922321594108820033911210600998360832651323353954642317888591727890521988522408888459621308501321758530640935222827593424012453867674731589069932588166403284739729186071729805553287445539391775062813886832633651239369553407204735361388127380278851355383154455768180291722041549153040183486124600905034608697627123209135946403309279772685559021807847550780820324647601019389823609012242400315042975897253619569394978631798563775639625213066404923301277483738269131848115789887698700521402405693838122656175010755149179704975790537958455352775869523516885584104725440763900594633016765246025352987504762379963694356401281755567632516794088249858909090057779469108215550812018290237858218842226590463134288984683203075508821856166172028973715971948733117299772237079265351729342709206520900923373971004932174173632902949866654103232321287472599772240119091585759851285049256035887721881842936541831549944718839237028591536738386972007620723044912638372241707700095782896089537499888280962439477979349262156652067720195600971856697958324022531226876628552186130248922881069302309184246555988392182986799708658691906472573675542066728828551596763941094257224593983299028235761788383090298792090193225403958949916023415611244749653869562077820996679553668444411190228100715065495527959884123842704058244814517191910119281388815974946502279574241527002281379317145733743280004168987090044695461189271598971033740135032579838408247797571829405623879039589102513031704855803330608224613596989162855271186746236906404251270351906271229464719882435391403847355106033542996426702146463749568270576118307007993482045467939078273984882798501770188242269690155568367231722970973994829576992077580582138255203183126785742314698346055874835455662271567179100169290424251600566204391490838902245788385459149744422252877659840664149735986862742380913571871126261468636354811097797237847658205187535616546091527361105704030245919862801431309994067373997893988644948692903146186293888978151990506933944699160946948692328035999200541482823578149565372743849664525427055651019878004503434460861830862125803638697276151115369354574997584461680195900873435743766840450287850372748369872740628522230984561183200928659600691521818629622095858363106180104448219901543238197563441236332037151937021080079413732077478500676114977373818793764884201700561107273370942691379063366334265558259389071112513173359198201686498347686689129086298507511858831560625045926509229521043104334601685198730960613042073969414466496692961676575799007656878833498228512902784327749536223134484372616965769458578184517549624565749381201234975442790620489536082180760802150033509767837658022627353294285360452042795083816812115003170211623119062327084150964847709053457930666377748213744568972282667725426319294426975935350883225439110794887299813388897853194738701633487398621118746106430539606383217388761575465245012628599518187743963923613638355481452742263164435882823225863080656397735273633005645815020348685567645120910348094695695212194162289982300667173319098814131256552908148343755810486442724011335079833150431404665735512600584177299705989301906808795661729522326782142239288769955581825639641404817140231343728014561151633017359427236469093379083322318752994609556918636181972421203957542033814947160141923110330109112655601262270191000422625706010786196277979940311125494696322358015667305365310255765666027020990873261755949695274691435259638693484065772706503834126974980202095704236303752776574721074808101450742486968685962989482043856424763781009421952162314327714475339720507529063470423892251254939736961674400418899683667713809076602422069521052985343027646921072924594352716356763605724637737748623929351492960524749394544682550188475594041088423099030553255945989550405261548687373072647706658174218241207287123496624521578121456236303280808859023605842241198454124086662646568819508787120697825302145209026461218048608265516725926530707078943947317457104279989375336164794940577204979247023985458189635832657500293491604227225741796157461807520609998104989140730584693469713505200954507132298536110455479821014039454223691242173342114220036724124686737531383420784025721591557733327896711737804422504837938506460917846862368684099829299347165614145770876372294755997676909732682522147056160053428361920249410086969362132571335589053232036730864105254995219997435791026251933813761769920650104899416292320095978017017302817090487300235638058071211921495032867307036821820666039305167953364653448351051866237472047725064616470610813192252009904221152041953404652831061840012995585940007450496721065905682220022473522689225498268675629919738682139059992579789916688031463381410795628416784870162241606659967489609053804489631420012435952840107720277233402191983260073169635708035708636613904843495482419397066213433031338613742566342305582808922165511104632415382897391027682289893053847767284980921116999617037181683377678716913070288392256866543641115940579582252530857185223201850412422160687643573618898954957821529221456257148807568624860303340588782538234136750704458787936050862477181717671497967932133364705748617288634613155473918066706559843050540045854020416639244373470936461460960601462374322595962250320501391623750000104186658564227932527530113837335977102372780657317181894176492741571138175190198717593867442250781403585071294457160452337343279727857097012014023746265431004392982486015511204771897779571817622105849724886109785066043176412121027933262077170954867746171757160559037644564678243368238274336385257584367117867602872833885753813352368794807618063773254871143413019941764241610642934365108135248854742091736381920038711629699945971714336654492129588517155276252842990176771824394206065604828141314358856835073084996424868873910902991068839315236527866152098337403509423240881221847738170909213783236742556385831571503057746176942906879801949543784905063249071614209028076692013107573732075356906332463920538692623860574313282884381753532920122418314225594615424466196615280064595167453654598719252639128331525260766608037867683088215900435408172416481649218379336656698863520950333768235750889953170159634462900949408810263652744466177002384552970651339931265990402422259577321906366547727015030117355731964306866909210730974708682535655876912020571725803593869273084769339446848196542333352830068781449514529892043204822599538701437179348423977542790288816151564404059782650611687006675116975181406178018059314626916126281510251061304625637405843440542698342273268271195099747288432995745471063727173590014944148783246200644183022804115146904752443955627463261772385857246664575208052724161277645563098622461619087789274103251979867087651493880910356947911906681097431581761226731772203177245868483583739515254898573010858516528982602713978647531931893561549897378523436546797033321425521359989408298216333085530599157173393619320054762306174329250037483593427144052346602371336815758954253569566847467117951219316430400026592431834714114999154789355841921479604162032736598809699616578441785749666519253286601586311543509333648082371639229800833547978803619602370858432406924431913167673680373646316845323636480224680070028437450988078505771642798342989315955123476382374906259628425929086500923332375388814303494413980224137896004579085436634400888392051485446848423030667955977685033919055991564866259169139304291252605748346951758135388085067084251606182154222733745550902923506164419032192733238885479869935476938764112086966463537939379889980160313081380580475458877422707401399768044858274144221325944117979968742464486327281253303356790274879256458489618641791318592365400295968039833045530983468861683109994111252652078062011216519608811139226435917867772625290208499468836337039441413726261628505678805928719397197608127652737165473047833626149415788270279988170736354191662315806330630866652064074729862977295741151118372592965036361518663108274940746492427590812704688686515249947095568448549721383319738614297972884950903462971919654689538934361673004245338476494146436793969510220192085358499475913663246672414153186454760454150129648702556913346325342165770458864994085456239423044075832207326104530327265552541224835761732395894892125811892053531267643184022581447800159006861757169000208673914628632769414326948611611151918896779277150153833105867182726420749916232340130898462914619409460634073792801937356887275628448244253104737941686602102750012147113333829513811054670073821043220664791512725369095998410794159836795271732932002254681295427699606278248466668818139775565646409261456266306384256158851768112911118270970360251658125643283469027447814969943660431016091185818872320308611734978401378805223409131368150641362373770261015588687070017116869205192908345820810492657674567991541626683627785118645207347016757355553753987454074291549250201291966866111532121511435515613529416003606420036922460631960191587484754841906030512410352890503150420535923164002732079278753987127562428485026393246138767505169119761418246572382035786013546889016873994712050569315052442503665389333451478584439456634954755448139003133084345101473541718967000834732269924518966659015351649233392348157476980572588506385062853215657763734172440141721244374594720583779045010440300300093333751069889316995530748610916076387181980032146456260633272632960693884097116366726869556928621935712974945515031231009902638881290470570257694611367304649528276438225284393551146955398145516925493416244758959401343696217357938024345321179244423788853790342892831506962042746255579342494851712894363068786130124472151157489906121793046523562965409569771570027912034906704958979190537931237193356529862983086287308935361252381343471976614095610846951132449633460257348155965186360065985311973923500069586679358121253107452318606765863973355299691752218602875150179093506851690329825940367708831767918999486010336300388064500345126525652076065244066406602742680951805645765606872381738010343430457993694235501526164845442278553839394368283782373987603494490698902416859910656609788321836031566275457466147909083379344804711348715530450578126174020022756719187469699778571756839747006527628798842313380760021764205787430674442845603554489544160915474427341853559292469670443915662883945184028164382125862400280144988897969459492788163389955753302929998033717212131299027452783625383650393225925158584650555645690269505649321027930752727456760655666343046813715083666261824478506609572689344538014714406804412701842808511553438206880054110464039076107551964379311929186564216416766273168356765023350590026172553946345030250892424305641554092716455736654607031988628800730201300561556656425054531816683108004899689523104924188112265492518338465403487542062096969352367761795979217641353082227645463106147464431846821097050449349498487064120125018227413650242895665916086962181385204942754069133693566798249484426759499980230279180889022105342990961079696750214228837366817676977573619782883426376760375929695935916287846872305948119963785733641467020015502268185200471187999948563912288998026232108971473048785918487892629191730960897879964569342266033882862491421999218266846912383870947947676013418800142298276470819077762806783702149073150816528728153927062162767492899004234227683666829343627555481956372186868076767451980187450247498909196250143959155980370305872047591528318542575733286531505949695260359791740631184996645563106620958501859069524041825508442266624184582691540414367793083164866623098329437500211417810740673048318089652181697481652661234613562276705460334994771141636252289413392983309612266798017313710750554394247106295073655884723570747630562879386950733685729871157988149576069564895328004352720854819521085668504563855105957364554309174939655558850476248123207069601700404075858631947501557427483395580876377871956692506149088433822886924696967026969027744567483176321032518911783043699237225822373888832641327857291742897228342161796654386562218374300074753800270243858134345105447730067266924454252554018243491157035182868689721211904931436028769309942467082777465150583169419073537702193430736424855857200815867131441156177193205728921191426502686888203472142909138022989076165583175837610300457813021753097317787827972337499868522519520018120196907383377076433399555442127977648974606233698032257778227733148260914445295942689383764299063178461944630466756456590768284859631143575173911313581191373613885759571057381698020994096073594201501691069956042677724902109629347868509737292628034919495044450204689632798461453679012341310362011274823120798990002692041520457438157165277163081549687318198253139869841595841113468310323172388998713097030589681455762555328858746771664112392522608094511604021925039264694224993998977116203493442582301299490437532970130619409325934060953748859081854091907886349816268765615775739694987272157223292781621261588600058317988050434694947121588883914694717265933359789732080007301730363048268689605706921484967642706733875661822372100981043798821487757331984065075501289773941786815149221039730371619295204800414753303857561857433801212124343851582239297202569252923600607898257248058917902285952631815225154638451144231425836347595463560659036906097678971395438592941265462543331360124827479505366724376865358248491459536513581310848076658431391150094963044238886352061372173256717440190684682595402093516347280518627471665792923992337419021833328044769555037731047216920335863389152736454061375386967061046683478375801206085000996400238278518739403431274833405061363464667530928538933753280665795628345224061558599937752867608962035886372032296539807960396279909507091164672719569025084042997723833563724281083592351477881296063677852744473884434097849575094187513699912814772341793586507186440040042287487175548427131556883067520775928539444151554290195707528537225680300017529479215815754675451518807042959735057024140361674048878717641053859670472401469483922582555433934813682772442056829329543085751302588662216928303677400147952038020023153299591249197805107458851615280911020868691417781786768727815835351604643774216083974806431952444731553989661056764261654311923156405532896208592887907082886565224989570136594475923603395171772527977811803767240974933257562232867918820617375405608403114627186858670306119980606551080986080266251551638877269772678998941099106295810187158431264610722202811205604990814936399386404853251677684402107812022972679015182254350514753406568262131720035640568893317387072801528349261268594101903951273497699790342198641344163121677995509060452804478198903884741874624248573675387194770738894253975585780646076039615712394841361612325999040367187112554486258881946520728770844444001409157010533815295138066611194372529982912477644988353659317564612571177539974040613067131045864775737605610637498551901026982806217825726147418939832288759437887977519302418830936399576237983332333370251671835616086619924590911340615486608313581908079181493368460525711879258256648811148686067403829576224838565590884083960434688771259270104592780621033539270853767518762159515578722707096510637471401386647971335478495657043370070688022335610000225143040563731007670527611155670562782898647088311564918401535313260142276264765405389184374335510485694681934475701698149601119176401532134226496483184077514740138835898737507509687198099853689793394743767014066297796858542717345552586581568210580271804283007488519337398192053561002584806670307297623385062570110643143286972712455916548588160411234536336111492170218697938751827544614622026377717060407866929237105552813520252513651085503925425119482133614932931574902777361162088738853998237931283195446967398454439979540688768689846761645779764681329106287057417647711967556313619504173510018955885350744622220831256462454490207307330338915479316767001673929203728267915657791165394969299130349503011518323183342916943420098798644608911675983822226749728975337061676404203446012744024652172325146657406637981771511719077269255119376987340810661774808085339022279382064944213278848711687185270037196770951432169685963442136818757171330526260002129593244867998352241694071058763267661765731608462168730136634296888704114509470364861646293872713217805740994710350109853015064525472252567473200590421388096009146085137251289706702305677611527207412218702116832998530302458106286986886348511446079188794421724694271726111584232605424666111245235806291000005059229179438204533675410113697076201217030863952721793912935533353615842031264379481938938827013336349029630877452952002678758113273088641187077141897170160859249975120762860196188421914347268599690330421814139922065966243429386085140875640843721020611727427953787417124057072507227920617014656153533047292075431407915850568046750328953301181320920143477576219795916972039526134509273121296790464487113559289694120829130869397855759608580576454670908086286535822005799893578232200361044458253332389820741599041954443172428146543366786680110978615363676419363953004015580300035106194336680055859562959596244014244069455978877646038393615728688773937823110884985260025440345183287994279878729336022799734749369106190812476327141162599715411083962545382017361944559171373555549044653270969987624990862584778701292979481536625558929704536293263950220800644010090981292457586121405762546511675887090447202632687908069063429513414109864954232888988270722299487870649174206240789832125142037084478170049173148267584216065224096637623074195514737824039069871920230426883962236800172657666795881669784370806892100416347197452368751059536746813563186640719218740784976247565824907169634570784644266944588093731393669316778888273009802962488997013514640015212023791520943325104232822063187191164632501980220644461090519911301802290057438484937028639686023700596198524273189103381931206185965102283378842520903131419408620444901766590308563864385780473175881958335897507083915139559556745058080376341135131119410575367569745306497233441764667379288846962447301115127693635086432232635343775862129479700971823583961787157609774403024479603201019187031680402079060503857065129421667442743338423535033774272711275196872171054232854163490100760877661133328098204590691163381434485681747166314502741975874001841223613370948519110991775724271497984563954066780367855584584974976756296327654317184327829808697770518874680199412711067974616504097400799681593083381626200753462488095741644639930306572411512904865494713528059016114567051406537001445155175049985075105464830928761426628091814603936327579844423739217062813407221475044548471979057401184072336582417199831712790307525344221991950254405429650401430834726555696343264556407531135985106515432218596847557866700847685165750046371346902481730265628889863762771479503052094842416193925173369682722101489579847916128333833984285085975147343653599660549716914034521116153290512862668047028699312625729878011059591711218085573872781010679268343189060558806956590672941390319430222775017020493924534320428029630127179334830181882158115461471162020214497459105057405784715886948388559683028761898932664781745254380678919265908601717511520003124673973910448028451974905597719665181154456279392552784778696869882292236861570333639931035792347861608066185605449464539240562817318286843538627242107912777117175308950055025713202108851960666169121713393730143485399611525508567287304682965425591063939159115349193702426929784321599957900304953669039406043664029437708378712626905587566763479195813352004963155411806793587236481914965018276705780727891137788586228845015137514327528419013591499720579496763060669420357991961096072528224911934972438662710854925066632528714895204798883036697632519316431846006604585986550746203921483193052756969365585199224834039759525450002477446051994286535929092718293682825640459595250923222743807424756650737524025448734059696154042774962465398333335209597861247858542338731137790745339218916146975163884094127829368876545523530222648781928913807999784102206740568557550370897665870948114937997486330531802517529339297916064825823524585274744576500335886304964113803468506382592957070242851530631369269507602237650389592012175051097352457942127658191925681145269304464035361575945091720475030391679940056009107292577964626435835391357431209750136163214804193486641367616110458154634456252148901896787144567244674525821656292144748584952815641953670188152584997347084813013723852124507352128858556309090539381190297853060906685481717603543993200757956230356684182318536392847071573431131157074943168196579739606243394304478859595917370197039595996070707724846092721306565921910107644993880678514041816986939376457177435052294073681785629607833844534887930666729571884554063497217627829360485538554965957811662067505125761905936570647592433154994349434957529252723505897170133248209195899431494070229915954581607516941854852491587122871386438525613074036378888593063898336139029127608974395193149997804875894666794185825515125861855776266840417787300437236032904887156976540485492127294180975306735071967646546070424204162173845006254589185451455829780858682004060744151752297716359338241089015119719674119207496543055987318926532654093856052321035930272276362410380904310975316434360270382157194046192132139321829800517906408214674740870923158468083708522874408012933486037184027857573937275878914463864785910271416095093002302569344377399984104734450499833941443688316526471607114010350534801296256664780740009243819427057214721766377246864981709729294474967408453472281466457770902024854534776682824730512960109019795249152034090292484213653857364364372670490759657611925364567211698868575215793639541584294789337501138839071610460499292368184008976608490446750926894892242055110933281516630220863228070083193061319789948539859500172903753975727858250973485701053952313388378100779900026273731762046109456169467444994346939086903065341516287722039466564625104329936175025784019242208968630959898017041173098609552329501687206803804450737923419426216048808851933890755918818839247074418641807161156262500526081204695978867535657499586790111678906129190076798711306082487675332867083030851138397256897974759382392095755221278852379612210751893931562443809656083109766679246937436850686108152788651295375001260161072233169634438666530978644130729578566796992063875520425112167562428902051982300068261614310041342893263969254511277802576045216515437779156714423872416700877794882205157297918463302438639081571792940189983653582317943311962549238894648817590003143960843555301638997337988865534508131167910554380461683794560122629721858560344424397059454589480823951450173092693552465776783798267692765581911779592989199967462447893041055395062032031081205949796984197469471146165560186719535645368605602936857453110837979946013540321419992170671937300087109241971597375201833151340523939856791112838523513230922436311704059874527350692530578376350441166051723952629593694343735606074678946135802461334057249795390730726498034019704810289155669769126900943716734734246945382423094939597111874190877066398684400069205630394144388752151277802375172243982586922108263152778189699701627867098189927675597591316790369889459169205002525895933652694371186769472817839878463060097236746977422739899912259801449896456916136743265541534371992496587334965978690380134265989446959557167513773409148148714907759376906676391223837542898395151240447119936735714149430140648267301171739239174816189539719277449125171886063158272421196600236367058148637034193051430789437403889400598178005488819632105353574056945928762313971273752250100864911215762989203558530470559739691742347701830715575260887593773536756031036949470389022971967480754322730197212755691644937991980464536669997366854385862746409953669521990241359825211212511541306692107128503177342928238016999525670800207393710784065769071698401293937915044863205301918075848327467570035122227196993781130526789582296548966383283372791425602408447249153931144069985479819533688511252840408883812284181199606662866928652578311933968252164060266243284256027332798328165515848098700477017747050251290796575829133605735756464617975598773759920033790649242481042306939294591482075559811045261167544001851109440317417816047116035129136895012900294485840584688458887813933024531215995607283166333360963610306324568455126793381352152099797599318868366709245346462698549753905660850089606971460545389550354520448177683036813947056637916626458734570972758561631270970323933847381373665177957048019557258232310640024165568174693475183869559847066718142115787704985441393411217369303667745975014824013027175815045915605153785495911203665162771253665240663171551152624158617767474219006236364701248565700564248375352083514327803071088720182912803348225286753157753758535284373951837160980707759133743061174163423208766997136420170439829318616179821730612436667888270660422636632620202657215742058627676569642203281919609384476427787398974655463078740299584097323087799825502527810764267973971142887311062792294617064195840752816171254396312881762222332251434537283192930430157321768369928967740434095958518955297236265404423800237680327713549050695392150037530390887540099921447777435194563262937420378319431773977184948146770826970460251167948286521093880329604534306830835245890093525330180185750812032714719619339278645109469199882206150037624062355283778946428270337000103253200582880805376237042151064939591368968877258275874948436281312620427750496459925893308299747411078788019899252614223650908514459225001369195794397720730742468621203523751695417413191950568775666814120797062140292343636736428638959974355379476151483272634330803454718249296934338721291215565188399728787853237206301645437311150792003055679578300864187641751138126832377536629481004237492831079205307649708184540942000531801572278345653079456336021987778953654678157730012053777742713975776683170834429841307214708456646974697577424041643874879602443889369571393528776150163736066743331085044104325674481334290539832312626835206224997357469821525698098131466981752537216421731878446033281948616137155716479278403496066862845430134941638405034154148272650032411432481766990026393004634736403705025136567707047200594781368721405386612666989587448418896943964542805380855534737490039741276666061311780639239571140322386809149822797892416054500719188840568700022232208492852492219957258724021689875355858008303944429020603505539094967079044595384532020766103745058412046443902425712824235530323646295098132403011366191772424709644118921560628460421448324094530838388292477605683014906185687109074558210997387085920768481182701219243448911156350609636011932084350915425969048148749746047051111586479216117308633187443852668310887416050288018021879723253325096655976453865090941455791542072306876868332178413164004706583974800053174568106109664809014395192951035332813892628941304143087991237557055055871059561782938503377890164790662310135016113451433007273702550923096286381088348889239224379268704949746090318194340969442057726939908203064306711601204696586047700468144412582284210229675645825824368190528083038295544593070912781161546974353183912357226705851628003018722987436562930056728650175433099522238322329509825745243249861348122640933310959468305013636245012872649908594405758778575903318362169039444530051101226785868493574309287665699906201497129228632461806641155893892697804356373722389235177797281502883880886751277531905384918578957398896095480944850407359541294916498836431339463615205403952690437225959371726249907970558868217606258688002640820149169667657189972409333330976080677253010306119179857207957649141251898609333048613708786252844506242244073821648640757635358844580460251838629747335644179258052382454828758491987975064698375293660494105155270653560818092748933263021040051038544957047415254436454611891403964305732646135942645017919190208334032005523530912694618456814811019913747420416164944914427286795862771300004768169588606559737780128375743872330209389899234937274873834761082413580999797890674003277957337822258031505194801985632293084083402517500511761342475540184355189638331239335616879861386934723159478042837823632768768854553796483385876713495121990095715663864788222559387169754525666282960615969581195530335029568947086427574153436612442566492232161418893445252611845857508830732244169165026440712289527838737079129990849132415710555119262299451316290971937859044377754235081499250076516395747771241130853815212124995432462110796541526570223131570477366237786527877035959371366777545307294275185834286841035330728940733850424172891390497876711127069673403597619431179625199502518924022895042504316461736535926339837799276267559432917276984175419378212573024831535747162163298772785408035235891394611207076831632648545359474941295977257138217293133221082437386172908739978422763463234827046412265563407274472180910135656748511909025853349377151090045866709820511216229341038909893684807276392666285603941286332262104124629035423339286995335391305993651159168466992161481715842116677713750024353614714841387141349245920469988823901931331946757152585419823255856682189614812082696734860113555081829999970922590048011030290208275594590203178243631344555793748354747425828162207050385106657969873286517780985361726048726530323135402957353791253062664204490841802630027647178936878490907941208317949582780872393922678954462724363923839179546372972533593022557108848423959115366403992484878248655042304225497631299087061087280511864214008863464090784639223480256477535402397187765756303374802672359305136709923193444303297185612256783001096715386377063304790475788813896913712647793367938618043547216790792819411216008581437899833940022865440839517898561006267721542449462775496482668326595294220597615107265200122923716795306799394484956572685671954548734805276741242927005257538889057443369989753292089033002170588416271763597437671491322225109932610266173650805235367924798373146260734363657405207907725550743202893877873576277864973590522060847720372412849067119314955303399138224569675197267429791132078825141571062901128467897128878422452705266215820034617801088427247461122239580114444437576053697984366237054517658800066041222470613992051277511239564437665437695665912026726163473256542337741294798640171310955225103228515745060521346298538736089874663440862589271392049576090651485303625602372982233525092116414553332313718656186582870756087006878063101753366271515441066082635532279869684624215286810050802733630663866172062696219501918222523345221328360553468146282366408966629143748002956172084687114015380444197742189251752100429193842456515339215910274697811741216774244642278642529270798759204658491117341932104519536023429658823899883688151000103593414882375960844904160296844838146029479998127496368887909145745178807520801559760293216355467507287911314059517008241891607922317646112233798313286639042037628364993319210717315224088826184524052009802356965007170494119905793704748529566418466657680601129111229460900550621399354651888244315571954251405817829966823548115140715977839893944790963061713438316388147676932412526737711925334070137204235666858813285043202883104937917756290922212538730651065924311974146586677921617661040959270677858450140926576096932993378546256662572114957030863493281076673314959194787179113750317864580670784342046600121986738759577734614211788586942563846087219861992545570405136129883559897026692838583598636177117689977239030678892271051595321586177443298851389527008669583335511643053945322309367133613673512291785453762199997782832246308956698979347702744146963826253435069473533708178356341822285908239356729218566065012717545692823114382510125788678803140603577170220799365205173869318568243053197058746675558138685100548064262104031493185159699481049342861878638426944483659380248741384176811693331886811703317714300984260953459853152264270803231362407907439655406747529413923903048134295646897615395214235873941830920316767291659519184011838617361489113086642713705778159642939565035113215122865880352334765955312319710839400233171801310911226283683059002177950544389872334890661137862759527985021748404521188348431336876891795760260472611209381082014113730758806872880226647141972317057543502655239559203868141247332125662830648691473318623560575409341514843640780136450979142759241417550149167400818493792213350565987354727961517669805613203761711568861698934178120011261339220357941027846971082766660034146878693721923294069504066055706215902027331344807331213771480535517575383738902314303282599889568466899499586365117374922225439381411653815390476601516357180874920007531381553856108221777843397857493084461610771298205052070507005737227035425428017515040861247869195015153499721711373584537554569693257743278139313529286612616517171943149345060420239761768055097597010038309165603175970098796949555281192006318051136608205326235084258481209773897715371245470978970180595388585830441427575178764285154469932225108896282357163583582059086180168555391174855067527710375239422201177502429811948513132972982973763316693135424815715617936033967511241124018649026456480144034224233020299959574343881006019917651993294700929061625754251310817191084503778363674953605873314300019542241416131041168651121860338384458070788119588211949658418071013488409273291500594776081894042994078573274584342510402255277684371607996494999432881486199184747676003811915217689448798257005171986683969797445962055259588314691960340323541251026055173378306508429848978495601707302937165169584170467620601931089958058350933536069355823961175330246472371585760923367438983422103023558499943444434435930418070769330186625146922277358186817365988045880830477792227015186570173763597742679533069179272863086177986753323496111607752646244758734838636747183750067734594525479885097421448958512526983472703858748444889734542291260370963996316862172546167035540173950125393797101545555734503261843092332850220404368938084565450617660519553495070536160446196202157718753081191216950531438994870729332330481901579382697963901596285289097708960013361570394433622139949127402985623417378149566855786672674458979921462590520816044235621666377023294882940476975209138744838724000753912420910717279920690521999430020830377384389026897181879399719169015347686306794917210917668284785174267103491371982010626769738335422053180093143929191509315005283195993076884098625886139448571259251073251594595942923282568952315905820067322499838550093059810390943554472248981723209045234252076212613127323540723418871726716162386722193204798799035328056914029720307155400941156290658301554380152535505019873694276821045821179399654693295428224902733904904073504612451689153220970928315271572437682010103166255258415349235533263663859067834017572752071944205650524901839943020636518532263618780374054541604607444117252523575947880819661138097401923589122764096302844380834094492865067937575490087572696419706306184596208476994955787043967141268504727720561680955408602535202739902361419657264049566466779124239164078133154229473236878396280197848091025962099046524545495220623395383657022819150491807079588808552982310332822744180977355732037221706490933195227060763999112022406092180901648739276284924206676165725871079641850560838154940949759936025583837922248164181834486073487934539854686996107305977566639799572802562895057284466282352159215106559151655863767793386828793055346800655775566049705460021843164257897396042491701642890813715951224812699403928345946956007613388865957111299950280208579817219307241783055840221794309416101280658629765646339724093640009248851999209987293204486178950806279819217842373185639597254480888805102158138538928067836684797445330311242734691428816372164845626945610606646194112558027272842303541374744133648810328977132518737895346619725939457533044066490468299279645968429992057567173874568642022074719972748167940861182006198582894535011583064589745063526045544254725517721652938991674631740174531368197317119554910332433144816308863957274072378469687269090668322672353112412944277827460277207989634816168540669175081126998399696793516065929813911712833082469134551512481626756003326224608812014108900979204624128389311990170616130625405139965653363902985443569201824184049067617905053659278259720318535686428686007323823016962670590112396531289054949779414395590228011124837370358755372355534169844505796924545844105921904656336141724632674945082329994767997999326361237952063998060999534460644132204122639707775637983019089788310372440662355940349346994702924897940036559501682958637295878872096721588909569483715523837226739055574524828089833572744510400409232043467635491738556085880840316291765723093758323009740209107000999354462507148723094812686976570026286417609003612897146733323274988818846770975835686891335600241481993684092454870550031523673039474828937410094164463630769737006031182868569530235959882387772226451863201941656876167486885278833755567959207875140688825402200681996094868654836150767412104334668450005235724028583079849701862435622884381064759996981214175050522481124405161441790067256013729796289507027696709796163567519236609992385371802237648496006965667252432866823810791999709664784470858669370866195251322695749129830509878101609645300750497258373642400138510460274568470618048617088888382612988399108377417650750834960451441304645588720746219467579855522693963579521343995469799466350346096399032713404307160218471609747840033709359202265425507353588471802924370179821902419895537210593047637856808829838474819850655770706953152376519125986109728500149130437001830560249644767702934829295147209396919203096881531617666480483268175318862163834960034742215529847297946160300213420417548384099221967435846553886206429477514734310866150174116027568835367047619436166152359001419566736316344339536521867390492889131677341348339364301263410476604988222031227692200419792620239296100816880663030574768416768513545125188449147078477057326576974866983740899202206564443500859756920956174002529285321645028976222245550143304636368323476102615416666865141309498165205321658840365045854558959953766885261347983799159763036627169670506458301627193024017805899802288771149230935447189612532132660079168588504927280637970008056749550689604165544859923974180237898925163609566319394288266246829264191155260860287040206061630024514468254473076610030138809482203125533613112857637633693011711496676606255821683200956763066835182251112320925274164055549440340031002921678255846320370275028132716734622919159560402617874723906248666832549514925206860827860118677504651001663914470519150793304461418044707604998526419378978465557164184019552167355021958863810536573029219936334342396876221919895810074218889511715371029311531872721347655307556272713704366166912731457760197331875750064772465518621166685974943660766387268860715960479078397891233699000982792109645546505837597143705325496019156012398659576067337693801088299150908306240781806466545763140838248982471792839615251482047414866448036518724360846890970776117187745742089132614149956360276745936232082855136024400530703307534376600975801353309931795319393605238483303855669485161026044627557786211762415006299422299991639153352110155447042955679345542406112528771496848825478564085033701622385016180049851032632365888861627749611580466597658062951130956120478794510286249611262516778027901286810324092413574757383179147890786153543114193830788441950326772441095137362907454026164690468685167771458105298952182443026213151576392555662747963205426705637207212574880891615141957132593837684394373255614045716123368121701529911013785250953072217602650855306842134471848087431701852205816919067071922457097941532078348973821914686386761069093380811382594243502490442073946908612471302959057929463833045277072225611785489130736191523252224273225627858010215489061549075802438746495207559520289579218829807312286808249801153704573277837802698066312467870704700890327340699463145006903511338050889764944217531278065348583035978620186866524050179974072275376313832713495404687289152988559957439664363475002528791169759775946676935443623294248309169075067396056960596852216287114428575286984638701207168906631226357368342586883932477450503735913764731685237110433929896876839061533875038208817736944888157656571837061662008514216013456783535724257186329909863473984438356021749298934082643658667896307483094074202131625436837513802621245365702028876604921507888702916546147362442726961136850635565053685420398541618707460476155419322421916900442457171439138773160347061940568710584215135500495195170353694969048286057950452079805569606012611068375828246254812603455369974482004671853966006033818971038914361861762093285994482563419017787277914457686378602570691947899378525411793600576172837041706451596264860063680087956876928639435064072194278397169986267756257234608556354647058606607742390753796037329308509910122039318377296074816653208600037404357651763037305126698105581293975972759160619050743450601235657031786271058038053775028262933512333611064727087342139549303254496988539475616781004840095331643044973752869689129102488717573056443026499997236736433896896665812717782163377452078955231400691814204475914651745323618934240123414469814825884395287243386519147072082789043307148134574362967100302774766523780490689044685642177874609056604769752944489261357384726492078641462839055013069062469159389398218428470193782315882166295708443092839727945576576840133791068799386534992595688068774832066711987962660037138725387539037118433503069876270131387303942467604936296011338892517031153919466435771330969424310086291306857645806946084871760515744938869538295862846021304599752889435334198840079210188455327762785917055639947929497992302694613745698157110728248444321687848001432757428062953347834443915962410860203747005290965318109295002488634721058550903435080491585301075836809220599732003596925103670993667924679998298760506351460223487723091100609271082896845198772668073892002087764956791495188280044705050456248623108017617799739002550943684143198764155958375309391269887404945357875918758247035829212333211807642936363886329488164397942086432014491957363473367848609551763985378066335100844274403807834316595646059606171006999725130351023015679905879828478011924243139294577015231525872525239278604540583430891117250796970116152307641067030103982248437262582753960130779014808443398804662739705734833699084999533939639641135744850115907067819877698185372129208882742997160154016393530636404510037220735312851164250182032018860728629341872163664837407788293729769940060238108230144913467568643819900687184459530298573943284525284302622862522706396474861090622313418089840305015528376990795021631607318842857728460749429111913994754388151020866189303502196633668099057060144525709196105038275660513128103265772668475305193725386293491374520562924616230344282909266206262054945065718697149313439429626454645340437939720053976128405187099305194462863606613767579313434404342459494245922919499567366757461633239759386096476551869729301122483149102621305841782526698849198013249387403203124249870044665415478581000386740824881137858356842469527315671424284819507066972471166909095339974987209144305263280576381780224962975416911141932474003992331777681082287941299177210403668922360747574374079753108613090163786632662989696949494036218972383776862293324177488353120760100047606912533843482671211274857384679978053986976724483548595228632296926956037797444286949642338816459690218891612344189063644732599278566941258059138894552013593641323357480810688206866125065278262551122619857707756368374291230970616969489414193648541157963362697917219362220034149401083993915389726019722162542392445773107947946986028960040659695373045955688316575769824328530752489756891086844885698930199276266314968652204459340101986895180085011866867672163280449825286174284620382702076341687254515538792385492793761557627205313912444971353738758334513256551894688929807342024656521131812288380015451338585701980217879545782280242499904215493466438849263475821065710727707242261992872762091770052282036290299678790963569224082784285002536225530898855592901022704828412408845527029237430783783292582722871962366273264867912486191756105650172656808668738302040931529798055393130123801851235738548973669881224929574930601862287460517164146632814497455678376113958130463596249519872795039160373599799844280807652303800598957508847649166829649848558724603431143223532181569395058114210813204668338437216524794033290845262306301987064902501086693018817081521503330499707258803172673348719604646515032582005879648777421610182180492088810385319827693021208635352606569592730475595022923836311301475977385458691571784011921542115034871061572221007869325982769174521209035404287443340434061943111531846873019617881277967837594926795948974742725625167636037757228288968991824636594314138511796025107223531561698645540260044488633132276687448225226552136794337456408314580635241207865283256363137000671734242364925092271409818168640651296858348368471503366018986293445421318817534234236755957559920301225624871025584317710882531297247310677771898039815331529318022126700634602884689461531755756910733370767425392176559322536510189709292570586489238016742378220400727470544894239893314571828207696810823349850937587245773364683044015058406727157127529952600911006779298793201944662914114327848843154486812776881964729669930246982633171724132321779162894027286214677941890674748811546390666643561348513004897110522524284086161180181717020112808069527709359382792716136678663913351878460173585504059074782460240086402218715601527582820054483696426658208023206816996536243413701556770920613436457798439813825459527998042036272446435379167436116898408826894229467096504630536127719199639092393480574343597592774510833329007473144498402239593603214803818890159170458454213548690001381612658690888195959389186057558836844369498189268344232716137529231219870387836283458940006318550542227723167965173278564016519522831132282530263357543584607254515905505155990750699087644207164191949867144839723756823370501161739439723972838083760225179323298906014914677741451771791586402945305298914102120154082482975459444708213554909598001191267464839317003023744870250232604454143301076996541094076922198697815785682173576597353175787990234858800080785524769313642359376686988689316558429863895124197675491269846606256339268422434606605077433637725508152010935117793513611906577126068285542223223466596079149420168375116795543901369946037023183472536872026188948535680234970378733118194857721074544501166404011883636772309585242891814423330833004221099915034340118556448309221944551324392307171355642257332218799337440240333206949379925865648499369544445111521334000102708947551856742960913302123367976534071149450263859962025592319638211832323474952216648013000253523707290950593516058240305680138313608885084015279906988513356685163341876017345949906270104704287081044697183771484440330959037913352971232903284160364431242442934983798742864099880381829268122553606976939783423220497312761966298546296250447139443244178174675543985948096631587977852790034436419391683968853908362266662932279896709132547951143181303599275828334315569308128064843706734609616249292457488650001841866111954181391098001233201548405548464854444180754220703778175179889416692621255819296472895861084566676064745996408793432721764418412311648615589042115989225345011793963704821815766545994202975513354735278593711520685040135914117360744564544464589008381992417505076720018436704786632671524596436521365953811785339176967883554288996244382638508561037595170196786390545573921724889173080027542589877756947163955584562539940269274094861193774288853161805495407075062977471828627911269863766477056907765315518897632602490825096048161010490497127925331900036158670943099699445222302260115490367388105048895493270135911342310666314651956763795208069105318657503805512543080352702757103632224927878629634460436903878775961882034295605201202158884263079275278380768420342335839263656692816515420972570915927840800698203176069859154838429457104933100056615467585492294133766071995383103180832629924998288534419765812026452337826548619137773463725805190817542839827508732183976927724011468352306607237112517138606241227246790565533711752001860157992027433884413155530407664570287942224539874696621705459700972338855116200412109914244598968731670583762709162173278584410994109238046630981851113445897912782449751499301012385729776181813374487075155463648400630731090989572585162148345705905705705888015926270897311517646362908994516028352674877892991883026755655235531358844319883889681033438299427643163965539845922598541805426539114238872797634313958035216582222717687813137210086061080461421138965849709793003762542530214112605587633950345817739835258692502510092001116531210256249715971121749797159774527132705837638796332864081574046827276187443495329518926039282196649864957955852157431522623106824113598300665470108878367086095811298430200019233522108780615235533325216568615103369473187455257003307803011393200681024035049791362836044913748250659890853814291303245667471919850235238101935272307273216933933448631690254018376822409209663932046226168952651499929550578457033643011596766984869707942473144557492386441958641336439759763781984185158029883650277582000127098180169504165616534110797704751486883319751181434180604745105859465880795192384816557441618766842591366943170207907883420899483395813776101846599410330305121826659546572120303769123082317924633236247599548318186473803948654541194054665115298459991481888866686588668443273122768277756718356167811230131836864198541108876904526971585775369124894084021578864780902845473375805060052659424564479526048040750666231342167970968437290054114825828011061974823429947168420695713541811755678755432291127741561036880614579927982312432305857976775712559144962848234670291860266159177038946360427893992679138534895332114431477376241930735557036562548346706719471290854796946827155696604734478482633860119142154072498910578689425786291938903094193150753016068490231109005312145881997418110377071120919334083802342935597055212596839377060878155315796177125711984099842676459016422365122201158305828623814229194611901795909330566589768379398638790750346682562869303249357286357181894928932616280963629688430674202614094954045033560380322897335885062037566218252429464887410774056907663774164983391362828833555880171342871233086199595419993147755721303322835106494813466231975407957456611373350389836645606034002378714213336623049471535713746906126049103177737917781484451463667622942428559533775538660236582173729702708795663477048056189836787742929257800033702250459297741591192964070326274051453684882310659216271691776161391416556375123387568713516772372470357027207793690847752837667954643543187764965169626899762350339927974044220946009486606115848303846824472473952911829989989761864710434684299133157373701514753265759547450794225644956892681384036401112015726508376616471370177094192175310040357897164416833669840056176289538853000352377631061549565730845578029860619571585508516932098934660838731652097764394586184570884483455903770552402998625419892947707705260922282374533084344022996484962809300151347091004519001251799881659922955265335788906750959866243072728783873621389269346860402859625934954626884288138622511336578157044383901003323982153136343357022906305167953947875108247451980482501464807121885439686618236646286443674631191224414003606073584401173417424929685296388887509613765601789395458463095041098855664945905382261963730391901396198392384100069896873877225865984089895676809236422046613976146342529880607989101301062926271261792488668706822449601946063181731353259882874410101618761773720495185002528734571280355973423469207095039462842854111672082492750184280728652370552108662941229028174844512783620906167581671302338923078454733280087023076913247856771013885713744327958033609102825545614688817069890302296627248476025341349364842025127524411187441534051353165070906165218686398242147507196510983946999443984552864829446043949599106357771026821129310405988561790357435002770352620655299539033122284555244816300490246592417916976054494932633224910714363986106860460241514236760323730858622881924341736124059790234055218517237192253261305152533362228283656540808804064181453147407163702964504838194877979884775785228494602830055256658202547990464246163561331957968315503185061150006731592011686569300898100653547410752584562760950704995587344537025386008360042527556889655205929218275238647646659722677883857352430697618441470390021063733001544491378174732642114118363033263099185634004355125240411598517406759216228813789339190317648142808706404959515199407477750535311714402077580502843325765538270839779865540774829599276411035854528998974772410956339303928536619156747307270484044275832646464994982762956501665905163262498450052750296590098536441230176454022570366491564355254760468180026145989166490289990601236018901991312675712658619886176577586325390062260703863205484148546768156224436093362364565095651570136796863010779817280660030758725140700815754735639568375105728046534432103915428882765216790527375292795942815202255637267357622820145412235362860752066115244440812929605947388683443186666487890348299008646356214820438327212337543915311268307657964792874319947701500775117332178014929612769274995709903317533650952170127729160231505886589034540256378877120422516880953213218566198219859917044986702967634357109224099670301475630875802989371024872642920951611233156823704790109141343555290033846681239830383993819265659834261968549783006786491867227400738734994002472359272472550403909121253806226270538850191414301193409111794353795209756760045142492163358443187709530354984289038042020514372801120061426561789990255797817589146092246575020991804948832273095818224362200883427790359668578837984795207016336634934424781756621256935334828707132145516724628599851262049507154254803199143820309950963588613557807986668414189578437359581318267049996583461334905602760392311382465589382009737391374304951151643178152346893367101786856659051675228744907269183058298914743540205618582113623100713674718744615887800430206635295377851486409149499566172079840143156830285206140043555058229048993018400917406679548889786777445979905689724858770565421156129272267522145586082082576690674133125559409073891940458069412458203496513332742622397009735482633504678947721356434150047316148252103381710288584492898913804062539672124996614182448597838657574513056430082158713863803692811075177150591551274519718807919140303221232129822868581703324484622280662384656508826618899644954743011049986287082801059433033480853401520007081161242228923879966932104539992089099575666457554575193676360431482511620153700411446433856435422101169479883967089330665331114286278085467076540656860670099783504268177280786640283772373680169186840691752044161813331658107790459083160506758665798402599175747391721721809274913170319329979952773019199059517220434822066568102694948984551424594848984453144837922092293406553278520185088860351452961893573992709830664932411466163759748015645241360202953174245984683826412070147373176884758041903495503564272662385165979178786796780240824103855289442524157010009039837783426963833101909541874913101896143891060403516369423006134398263234015080157465464031555658052479922679421404171328273767174346597044496754635130280004176113540595170104856177310359093873579495811154879645282563408791505600168614892209499457069417408247358381257913457326783091815838250271080301753598506986319764695548284844148872946767974190918825708566636452082825935662868669241369268945837217850374597111196137118022873209939355319488146552226505714862218363211910412185036423509717289375155177772559264336096933276926458228815340790066820206248179492501310031338813216722431788671610466214122793119868101916813766298943174780702314491334598208354901902574824346352987639648383418815498930786024740692298717611523038645818290120882193993179518582793345630354688704589779470958566355971288466995689234032878667564563068698747176304144837586562093974587006588188245981886748484287860282407005215879861413035152425836051602723805402182879730345168957408779614909003925598182980656874670450353493882439475118419181654068837342307400374366215201291261059994234352760950887739048293783041495347611738733289311144298007966609652533169636073758842539136064523705889532386655136022979197310465339269736658840680903420634089003027299506654244709315234141957397794742929127375234096522375927338096971264237182548722684090505899405161376850596017778157089902019031891576318063326083250052519802548806317291735497673625915863917513597759310699670742698314343500280118422242300978453820249484820722887738868410571986021926537245779156258375500925250470630266895205164386184565262336967243887439953419377120898370956923346790135333328694387176640412177828412997697763718456185769042233872610329376894502513839794531244443955348157818289629951501973622808455126280981490662576073908592315806542667401395773583130137625409183033290032455481715494552678994606146094724932144804161951332041937483129045275627213606977840879008708782771217254182412376064660353997192034606336019645532642420631175424198184799125634170602723383305585491408982622556731172698827995552855291553854803515597217925768892733537352919890706839901365428990149406873609707410748435735547138025089884328749268252228416262670662483270773359708329978021078583853503436158184766487010073541115315321680020331664749054357304330981764508177493020451150402529820129402101344980340936555063175723638129870121809786587877028365661929390918379836921132441170824096272866463541232532709434201061120723068038934296307032115303772089163998535893018163926752929002440320841464385331424630442688730775570490720854568882543065296262791418343143482840576702695833763361591637727839015821373872235943447234384181218716523121605822078692430251825210743544599266705789962948172927440085765110279372957554721013727429119424282433235401193863951490188523229799380254803470164323473933345110812458618559123577059562979073842380314952348147039736825185333591325127587039493206060415237771439856131663357502769302768634041408047857599952290492748560958023644979558476123770699051755523479589904334536427107462331175018046438421405960172627230152558449938408757271650539634212491429027654566285920331215477934035119492687949918095997104215338184214422636467399101356676950311898955991511156466539189789400386998991046175050076699367873255840182565365318790098764391567022107768440140010187758231822857323838693402080454350510867864579040620746073432709712466056057712429896997102199989410461597532364756387175121452387159967401491100351582442594952702804306173547768024482671196537935219831150935408656209348766963820970763421426876617654338586523247011999643627430993624142823405535450287763421237720890031335664630784308573700091966532094464301538788387144495257120303886312434276785022328893841888566650920157071905048813925041912257889268788150392617679528422299085072276521044252342034553372200442585682375848952761885908040281122488375043839104867760329073631884063351171815234097609668291465215292396729370193709009943525689295756051606093755217893702107393431271583527460679485708574292780218977871620145010609755589718607507781306331085544960996441136942187825751524622952917406162775201324567118010034924618547614323193784699934607069564676015231917795699335199537392788568486979072013619492546822279119545807850348743435646162714489048344790836724010499446389725282868751571551589515680577156265266240767687909596195980602436040643297263489772588825468398453895943497995026713158142829173319833490919219560912498414944237439315722459924243271766208777333241872384057279169877752931675311125779674966017098884490967440230352733271488057557798903187219418010956736085737076954456234125100569747718208126424329273702340544471210368233744693184261896424268799561873881196959414873457478440619772801511965482597446730332112921100114512862132974710684310670048009490953711084581985306492189378176705699051239310543132434391878849058455265975076436452669714895141473362643978733697381451023865964528912998340223712528699446753379826316524477859551182670497392551739379143138042862387271485277777265776059498250734200057924741614086615288607488740433940890746642269764823838774792438214177407403344510817679452591487371302519161599690869063802751926914485055918005420422324110226556239845788410849473277636376259450142475728456010668673103705767984978512503581231291122154195967662734768366877503153029091272791394710312742087881731228584245135002679524893822043592306242306527543822640098302684899652881742096469402655866982387010596064016177106227366765766723455800758871775735220530031040651244346287162186388807920866258449977467654506217451796754630736833377526017357270095297538051709352637829981846854836601990106089848197639548321536152475915706024257950750152485790045706872747691130599884730181011323257704672825044238466651065845210320554371873575394230897905430226831524157671258848702585824449883365205511464395058168935724168263795171710327181624075820973596682315591318817387528357577525583695544065329110239132215276145175234082340404317710560448607445905634918115775354447142244779602124231315241646422883657079112053533670209160546906469925986815985650195777853853166195026840707237214245806244250676893405063213200626080950640579576584124241418524387459799787711121915858611270573071356396506223257712925255158399111870120230818234174409819104758633681050010690931238019301854296886041151253669230328792640012636493279511830718417111555582283434438888510768588606754638809678935554796560503707998272986675999978451732039001331420995501540228606498968546576778716369728777812930736981249506002170482505795879475701132753834383512218200476538481862644266765328889051282893794529983517531926001464962369176146430312356816725469588673825660653244303404652399739628974771450590586976108523609015295083255267249948635083901453731440091835185469923336026703964954875198621022392272982214562518553102760220314508189183782698591794416337017097731978105418614429745643953446136501386793343033550410845639336910781117959960420728181380585900880609123542186439737042810568004568661237968038945996489464085801943368563817466352950619331086689555823084776841774861864395412602541580736273509820895781610235213568731581157502449376297405462491259704944754594765405056126531473212371688311128029278354044055802171900550317526635280209181817916044231040498847558196114107297114658740356950079213425085569244825070831061186533415201025384269878244608327340074365748118266034671702942560799181189399707495147833544319734274182693827687137163440561894653493630972015170462059111577779041580952841905592377572529425312881466593717469029702578264965226929414015049460878178128847084799582400863504723519406557706238533201784356133686922014590767419115799335128493266484476779983635058203195762175924072004875179391365995483864670563176121113365749344148811206366750357248960240553193847004653129463460598231660499376079133347412201033519425590898949822935916885401297352625396006532594480597215792404750337066782009634504777491694173009008031052006682023093989151621302068849193666927953766783407623749071385306306081669387187831855534869408139936569708614307330706505494725412248062593786564146404945825981059381776433687930437320237849667989250336201904557982966712517709587429242938312881045445182122522678495474988535949079021663388144036881849614584956011377934705265797792443548411882470886327828555723729072040404835912339798368882483031232987739268587882122420627913913794093820888437302227305275186609860775472940196284504174566544757175317168775219322787176818340948910154862207741856484455484333589823616358946666335416911937968565443939407535234994492029084713093416727806460417555239672414275812942996693386009304693275184629808476836821509349077939807214002985889317325173752135399786019319606734190670093403408915518009241265716413432975519599093199584253478057605544036432367317438256369628952889537354584567088822097671309984494056990359932291687203382248677544606787576218274445438578437319886460721170489802174436688291034643936671309375847200874692033876472940907078570454178861968540848184259456051910697037620570663401182889184231949727615398060526074081713398395181216068686757035365913443317496303402331879425195669423280916634579791573295630154240621065406596649235916075556771937272012940943901687289909002059368576270280615007777514689089912891525073579500591344488847648440792000343175111395008305441726865664734662795436035170755341942724571199645455176021173195507719346367085800383086592121324814903728479876474371346152744919664490100244922384575019190538080748517502529846916637555172313575050794898464475199380400571007536064853689416811453167446227589234072068694318047785502440303721334020766067215040956212223491153991194014185248912823994974259089201826111110827120051519226102702837242708318920915278790008017898371359372893757173006176167363021956630276617338797828795313887884677630977760109511079240988057461988060568625620674499280775155773561179263072878978718405320294425085478435100589715375758968307841523196873458229627690963416399307294008318861918831599539243390129612818440488659316743746351215193797172577441045542159661834105544070875591786895985990637854692537435810486626995066037779597977479591651110686970813261982773157080653321271276044787362587382667638543099299195126626592581007411008477832366665341896625653510692617564294154829028288737708688389278440092981137671913275609311286398518312244886442201198619902308895229894961824616285322413777776753322233323401972103480735463388003822320653096825195482085587995969192282337690412843630937259315435231225667177926036754732531328294065171636824368909549800856215250360634049002618235127794089698118918184950109807411111378975584898396976851612298341834080228368432537944181000981311094059409295054170752658033525859920330596036044465793234184455274331518762935863786653941523126778234094351427383844185480364794610434377781610644538940503041870379971516226823017153736225844577575545598589719507167861281443816339924958160337250238420850321792044538039043714389782725425709964934533402807959727511891196766187452941423312610288481126920898776545265554167464102662765446477849488646410624833652803768667774712825336382348083651307107035704802903864882447889469621775873211095944823673890618073149890229222158264826829185071338205458450336432181730690137493886326416598139878200651507528585497303945789346149916413817622349674714060864078229573957068850786967262327188872358683656347384862144846703215093823984362784664333567206448942126483129456139440966601850966472020362623252496945528047007239895876906016158490382721083773219010081959683640873575317579955696825837447338005899959514820440487769836026540573718513622338883263490645971342218674356074213963249913160094387653170353805778435498942563508267003697774975386596166311820514638286894132219570136356917229685894831188505293144190368458296929412741750590651129022479394015553558506647035086849392073279947628873894534320524194684655585340914420261691048514266948515291482146008312461392145070779202512581160721522622700473428733077245243445435611810108984424746165222635299494915117068130226066261357990039520648775760728356431998808065082464657969142452161898608320118752271940584793564530221222002381214042710102540890669239042763054461609522744693303374956929285310680530512736071348095434262352925132051711166104797279852275629785264026036803175229567062094894336312686640973902502177374565594699711504310648825744327582478799017314850826859677229913123782000635265930834359412020386833532925461564182257109376627930648186877457523271755826283744444568054729285579179014949476523821450519082887663762672416356722385201956638983080525371739875538889863578261361945243116605981887329399557046306726474763403133866687840918629990192828237187362371996000244291223874218606824176513034826447987985140790747853153116331602880777717501455679517997034778562195071015944678428406267330034775367906812458506755731070850626312156141318579872194841787398407466722738370677541100642911530073537131451996257003400261365642709770084052470618552555597947950260181486217030529933818169943883486720804094622384644992008448131218083813103732498799930652358812792583124804155837155958899499128892204937233356685283256598052472440073186661793346549976670321153258578044733579881205768237999287165840879587197076044983252290531678904196456634420386069496848944194134279584261459044852221633559468635808809967298139904171961217093143081481887177130661742990530106852068948480106113958086854507799299669937755468408777925969278963049926118644585647561812771202674980822598809354892913357345835888287127396418043657272990556130948765261849070549091171041281262263322423892251023523651041855841716700564530849642009636378000430834890407626709796430418228194944279657718382977715498347012229867780732969088192810634783684062729811063717819994185986355715667624872198538305307313848026989397214840975334243542523973068230855178447717769607685632343069901378808765649154862176121483504695038946358423961741306423424877987439443097141822565587298336901143597650774784924987194936955055154241581083250292759373310210501482753587417947312791526200351129200982550635716416771830416649878399872611664943232231013670656436235941865443093737242165257432825338142173830600988256865955255662722645300308787529971595278225536943936703891585216989285126120898854051489304323933615514438147912019740430317774312837697821900237011846723659431810387305514825582672666863633724534069877998437255629981495089743850325105992275500245987736004701259489300471710314154714356703886976366739216544573501024118342651284738382963947675641108622345624067108100191479179819854269661562687019264862906886712749801310652147180260581150580444343785269382894401150527618120453353025564174601404351406139466951488791298214163123257032676615139184290506254319189536965199947562117369885013340138379081266521702097161641964469447075013747230402166330734425512465716487684349828579010720073214806390159901450550092321452702989458670248156097987634821796233234754434323582181242427938206214580446644690987622217691321767577250569683484996769422541382180864903346392633407310618064362527351812663952561449808298763487158301032629316555659995929507300400905757381949648643056360826109497841510664283550570983799750609482868321453748271815306775518419791887788171420505766888094571561801140472434735978285537332348762646187393654387725694938114740934985959713448642256300011855292850330373172614650912112798857756430949972382612422307919442910695636464322156725943386375136897927873983517133288189755182168115408036250227672353763469117638214848318627512840578540488378987086225478940975555126433551565055453753532226331233562669391349186049644977378516071520964139594657530765109679340129363566136836157113196593963852906732452856060696621967328802066408736334610912310991375881233436176829884028589232450810984691838864869438950638084920311383340761352488141904126522137903570062797799301211818642093027738611672441602974510990859924415537219625652517854841702546920366204530217357078011178841227817000270425688480792736246845907657191526818525503434380509844137545707635002660968641931733749850020593850080055067937184263826651762123646861657049021144790256052724735556570174032941204441414495034481333444135438456760542730373509736885395910297116607073659851230847149901080219593607485334500415337814188653591433868554954128716564315668363399376204709734367091351151215425596682888319794127686819476020986560599969425897560438107928118775539314671287099401378600099645283732314210276742613380270426141340663749620972439071547168574752423292582877239782154287041121307321482031334833788949457514480638905823905625789843757615759671131854145629105819889171858447258334406598965293290350311739728086393726171863700389051675895581891918917657471636421419816609271435229118340892497936307673014544292007833236095371519753717660556713349369347004564355781216680358173461192027508968754769933063278800845404658298950815243389626592803539751598422323310732135852770705513561247720156869619474621263425700428187982874778309561532207301920082742399396281882905194769176535782112417250871893443647181277242191909636735583980691419731925585363707626127518828083151208972430210069616351470457652290538808363834493250650520826003235551953708386417654891758243125514619553053249401832209987444018849113471769800329039617084784894753257707288854022292725014133808358396171221434136830220967514994836626471544818419710720981710240132837428787489507646716346436081601064195137866957815153205979004379424915307885161737624414369055695799073518172157201386325214572766710938890920549903053119724136856664206274526192643121667011912076520923112837665143434536102696055567149127474730777257858308829199489055472223522522979617268340112426454305380013076690944967498479168618803761337966341566982662108609631766789815025923379716583384657871007614575532681134030037047537929098349454826609524583535785731578871522619269765416717613792115669470876828318266841432440032963476637356865423157295340831739760232093778519581084857016872318954645386901874035524517313871790289807749645152311658561925438593228651607860514124507552257841456310399115139229876635946202218866746915408561476213465154599730555746571148571751559358183167371276489689722869174432373345945633607776020702781246083366518315379620983813040377568738548093449808526994895489076968943371028750088632518758772891177545941715876174884295330613265731875998878435859945352027735077823665366926817330904381110034769112054037915299976788622235512942083320386201838570180571957253972839221044218509274184599904777296391063571954330987228031436899303254338259018776273862756807961570044687982741506308816966987808292650045396836159632651613669177344979189368208066944749721342355946805038054650932833192293123751898664795906489404563765028695229744026264595489298771706060720597294997231688985921112474701925046223802755474365314609988923434584058049171018343423972578582276874351828336018371097437411210491534871682388236812411279303176484873312377027884231421280400394081729357925658673614017736678118983597623051036463406826309697635989590374576074276772630619187898582557890780305248785458753228624947552824610003022707794225758043771603333025959597166610357823860345863799749604072538798372174830815895734007061265817614219879870697647989462630861491845219529187200251705616020816978081890687896134262195426502842350235696897773213209139900669777810732376152732194610769675046672746951765770932649489982755579804221323069056914092990341400060007590823350449446391781401812353128839364430610522788711372869069089268562612684905865246449247275257257185564386008408089779667520074884624846983683011757552117684728588969735079335578550467938219229406211933106411746027143470731173809645583745191598189483499908499713080075158880820464005910638321713926890758379978354069522674118163455795171272744505587811465803111960013321705306351138381305257110997119265280231417150660275887846662988157861149651545134773130215121758563284449980376210555358578551188958911099933260931505806183719686217353683576108675134587468881423799205554174339619454452306056974400458611387791992454613603261721533163535577892226032703497431304151285199902115185623861404172793728063401574484658650928318278376120401336678513214468229175677844546595389503705589947824707774199486806846288063736646308408265441962282838329191859767866609575306108613563469118783839793991630051636184946061209565714391880937625832518847886049412846101643277050181438909013748279256338746880544538631954532344681002388655645662900662750478865829577460079808728904549895107429168572311052795476916716546066780660743855933538794802887749236005745934787812428130828465046020327414675134263259262584836504431367687494253411212919612737872596677647014945812340780596122628263538379236362522734528809654575432048038490372586662005882030301665421793872143479760199646792757375055720539374009071969625021021475615767710830653736319095726710025626175218603192788751121643042778082391169167792190656851792859820690889034144686146247981078983322302174034640147980663148831355337631658752689556880062179109025242069085819392101963697713046322124427418652072798849702033766206750309998173695407509389781616301248681710067981136365981381697648404990399238682519336753453720535728069942758497988832300323764286453088949584333289884750829024343467676831486461360436439793970786544632546451532587965104682923037703966503462620270703682863438089170246061592198559279611165726842990098900742658533931541943948203133041386972069138952861975863641190508055584938366629799779282157045919337081319482628671080886946629758621418041456348435696658529736436734211153834023555967165868331230166361406549463365081982518995083598320548402720948581991563523682109090552741295413738030530915059656105651862241075539170588659418528705510484730061261307046148943497839209625502738191313414194643712847879035209031314963296408927844371198426408074932461866445211223731356849143498388114080286162016196723526973939134465429668922157977284466880675007904717265545452077330698336445329072156116372533356268319807788259269404343170110059628671346086358898325491660489571794443000827357585864660636278504768860813583487039800801701240375102212296532369991306537014920302972253600696055049839687681598619001112894660124144905907024090190447056523574022225526968404862753054118570403491628185252442734909376345990019079536327072976043247901493194637206292058635467044509515461601302196939231539296577253310340914625282525073889516049078317617057341601089770321069266751164114988955711268033429857236352842628111139271452954567483618674949550457988299087069045152374775893612812690043349569744411114314998961592651009894689807573978973684893715736465445006129611852354710932769963068249727656561177954696641861551367324097499404960976774084483117910695273924141954625886621918244317338974498959308546817834609600981710187308800827893925724152303839587633571915176968505845095560043159513528074489215302536083637217670886741687341779882332586502801916958675654089258343772273987844640484924252391828026738551175830736105414566690019542037128646768133648619400722598222050744480863858473960900209074717989899858313468627449957509818821979162446028983979377765820454265199198508380724745413662187559936961149316010689026512453187715004714871502298382051459243430871695684244923486255046656419911270414806574325884650807427491308497466375513315919952692502798678580059728446693895115298449984093148256006767666737475062274815948530053628462633443113995845772882103557353991079517753794640917777813814327314941280609577952165539806155555255665657706678527785096310075493603424550885360200908582695793178693120781429779970173546004436477946239726166187449253408047160609963146247019232887881748773057994241014418510861601462727057374776578512505003693992152244037141179217079549452363272631625569616251845319342392673820125925254293953503724597038529706868332931612048887897267011113835247306994548629126832841926638702116701342887361974648695442682996250719129301226426948783423762290835823690667666014279108579048925704774648236328927652003183324450625615148502491248156464124198752644710471210536792376690236611727929433093763826677638308975888665247407930582634439024761399791336420188817037229822990938876965465458981634135159279640609957941844655401925468988565138654704886271685495022580149240624123125094239627935096613143773449710668528783808892498801240337967913992046205360870548159929225401631115427002239943254285229325087237006785366423070158420060591960844028193104101360360913583800381922429398742138043901677614961817978462186671532493877093882500529780964010944063064122544378382482960683763981598168453443212717267123001920919828435532688157934853647724268490801414312328877746192541711333718238859819476641017172555899254662741032369336282443650445697215352387839413508532243319970662359977396874794130154347451016880206969793616669936479610491137683942549931214157424111177456538706845193465558515018705917383216422946701077146028871222239635756545668352961065383704855811724237445419280803364514378483220914835150206309552869687713359474219477986932113550874485076365457968342580702613446056167506385049837043062089311058477729832678219362235406194407212576681197311514542075591515525227491836666923603244779199951827880453200222376960618074958740063861307584164168064151231835688433319427592697992153598472334672705920956127547104466867878641435020147808187643090049734881625859463713377606460371246364791970351741013004345538895200188070019163405739497989700035690427730510878551729230304234114203239562091571622067362253811122059592325303217197200794131930976192233374996242611500471430056186312222205960149478671775209962708895466253468002943338482584832460697902926603621618306328363490084960485854245878660730596704704751965881704122584972323632725362889959526119374195817437798238994231386828765119379592654193694445714335330363486737193673055251807235257989390191986318145930107867041615993598422639333084197449177176708530856203994565525272228747073935771355064662132697571366272872383933725206212112595761646851944407574608955710002120363993260269212453502965953897018386877744573981456170117799062405070106909027560644500539811967647698529520217525906771669303868253416947238519384734587879823565871957112302239893273733910491726113127443690102923357735049977439769924005077490678322549623725594775294434281427249906329631406737083656999325159132023933971076859577530244960060585238553713462177237190102665984533563347994277176886559226358274056096989002758766745202710514002219760980981322069744404198871324856664177570623378942317655838475465860929979891099757392423093917167065347725742460232350895357903380764991028855873881905885352153256915523039216006614353110381721021719197365292430678715962052768531144427450382165234445882193794236476872568948983195840378378747253892306221743450637784577579693999532184851195111362051023153073259269583442349691500579805061958787061155373138280615892189423875786877105280638286000167205864942853614149103465665471538770379230197471841951656128607367179372109891375658623782394132729559660807819137011359675289662442256335285503230320008485044303748935502899374629214435966272375335900866567228631970455126654409001264985627022375310676949920688166796856373716399298088213426107845055765266507720042074110319479062149731607787660812811644163245841792365852288804979777400983619698238487050410677266097762291254019708870640623279356208509852622214000064108448397242567183398751481060399612446727827025049228867345458102905261287243055704496171956855748981504204440855933873582740638511378935109321217803292385938854838021358334264839411234038352909235223734395334038346894551497620941127656261674631846531297432944153962762464820973320094704113670902634954632833794502466354031875236750015459736800678723834558743437421403618487162462736930193399686460581804864482031802835916754907381541914138256894541733210065221844682639954725810014235854076802077743611840120376367001209981590397705919107109000918230566429042061357721009279895506810041221780371747505834432905966099694326608848044815500639936636259364197549738061048215854292460957657900875882776664846093684146663639029247755056373736016710176384923555180777781547473297390941493183368524908556492881446497075071744195705093728622372658589126953852467972445475975500850996912685507530524010829399972588061739736346994795988024360000112537766642850292263108063875532765537833709741119415356316493892278871437883080779344240693673941706024998241203766186647264538593344454939635968409965711279902354814256182293041245991279475596434417573699652766119928293144840430519312009389602803210023107042163617539152649779094204264825579756829259628720824089289536173889992879511869451988170463360261712525460479720901039116503028839228345156421952033257513743605333212532681937618438087543095567849415728264994068078163359531989859763322631696543642916726825420538990205604357733045055186055464599214283556030783079234808531373758920005711690195812307781330416421202319097290482178593453673890990613355035194012312140028065972050292718733138459451035649977429950999260806898422648821771289646208613857037960528816522201869443266052748488500973146159726046664302349489103938427654578343347086612016019608158814676413535953581719338277078510229317935690699264855783204319328839149737761698584521368486211696431335001516074890689008159311954324377288860899647489833225197462701543591208231726945724247517163240582884360690424868599728573934527996430048930449309316503095015657108724357412185680261066401372621471220508020091149749564876826815963402473683242378145464208525103647159685638623510842047188897088703836257073596156033696837840611055382920707448584011627543453326650853582538190376283123620317007312858567733979885191920347818530955906793939261206639077887609851625974765883977551539646663295263843254040954000707580236570494680541164601666571498615804815038585203280870837124393610794319983728767462107029363636514192100361081850342991429841316141402703850495464130160237662415220892825714443375013077759219538991557778989533772898323925959314381518756753450933452764310706754287433460718905775205168628470265679574850921741965484111270675329964784046202327208316068986205732893511222474727844497288101840814491567972907067003179948905167872946537604747631325147051477287652088256041693541230320751824059934953559811500484665856621420747357498496702265208153992847215346522987046240283209470982232331689961971211878440490761423842128909786256316954078261831147236147255568613689451131488671682867199879699178976578737247238086627404821277688250530121161922742014075628908317399554036244835179132173785754970364542289116943975519265217450434374982131846870621013875010486770037978023095904629474946850970655849938534121743055569922123867960640813401399051576449348441718859951070052010021552864455156058781688261314179768233826506232227651631669038840934002379040536520863510015837754808552229199916439962091681859677925520207819528490189635414609781164459356496277191942705368953564140884715672413332327448172628919666832901144810293789228576060638436875390706752092220760985958975836711799288399068641276300478373505993218873566134237361767229870587755667611949651021886328441879914063251211347420432884244765901051668513240561577140159453080641947279658942673554394859014558877080897487873531386711664713253145280686769739324129230174805901774998083903748584001144924574290245838968825583144822849525003400614910597007943125134198874743872347641877829671879450443779935986130786168047089523276840280371110176060749270708658389549052061256640585285426068723569049813287647150789771825697783513812471413193827572057870616918530775155466064428040502594306756332512439984556164123599391044838861527780307714589830290283072121450405439724593146485262645515410602474578859337390680085548577446977854665050692576702650463665800553595905140142662317858455176793968833505076007792120148678991047384824004278192978256177378617247609403983414580112646087001375853348499875875651184647694644223602691073493771611425869073853503239530057940476461020399447235936828979318502294932796322370044110505900648225231225905794697857818163459032969391257916769254799319873108366236464821467226091574146190515926811049730020332656734952911720176636268410431403391473929631543284961561255970408986077281494029299664944065993089867839747105243025294729202954367245781751291314185143032714907038288530574348690596925919697341599900479758050202667236685583594615099815483885955697526896615500796003658978011171172508773130950929631269038152965772487857538101588536568138546555677943172610608523605376007047788117598854235635787472285057906089439072344336141613928477174724249222743315692766785311446230343447593804516495700161232187421410235940509892179870895662921539388199608390918249162258072970270817204174900723662052900181755034263449366385575078306380812374533716533076241213709789686795604272746866305200916345722975909858115055361938903723759934615476989572562545648288896945126647174249201948219381823326238085910328562263272964097490388349765786569849910857864323575538811506284790344940090028460254695379270130003395965108116162792392771918398805812169016126426520998217153449506791642965477868482323732155449605229671615761801989511608802826830717207134242256065967596256401043075039756601337301942943186609395201451763715407209361244661372661659893338487878158447668400605930797901038095472723552561391393363086903933816115783425142460625892302723310654063556943889138806260867423197990188823346480823468866800316393458285509956202323360959594705725477802298387215218699639531081440599265075929004707812123904302432970455457964521169540835388081448713470799697556074037375475563986323549003408337605524301459594075923915458176691356547881895968739293282697978678769501721203798576374677160462195131634129712879356080101623314109341135574815906691835803862968509445832315444693670973946095141452548978039647159722431088979074086743117961421262774841267568422721239204810623904546076313177256646596859588213603423798389332698760614451276536932098064351338958577582896296194199903053999077838383313522314990803747553293610559849004312324381976545105997697911681610948342518163311560069260999497952475829359418345256781184976244050212937432114816619461958905292121789986029626246195219004540044214105960486196061435118822477488017351750765889615529296795614138274232392734391385945162058806469718669393612400152435788398403685019895272719545806813232685497647986789348115936644590118454282008535311972755441338884290134341273751489214067920140202695913935294590900059664303053457934700180989228643071816789497913935337514997270579471089084495777723948490194301720823122691661228773747006709540283645471539902942814578638027653764661691781852574022453536404969078162636186342123533857472120476432250393583371591280938025958953034956039284664906930720393305577673343319427803736392485203465547143799234930260379909691096816369125511288482346227463333770900573398149529576225503440707695951506729183723862701425539838592514550839082076264103924109617402400602293726593261262765422799160445362818618523217144818703675755082944952829353614466293271331349291711314839845117918442458244856125252421938338040666893199571900446352099305288006202790019143188115111649188077718616584797015268324464938553231190123470717286996787310359388026728650570981463564195208344850440001057194851987911865814932353998530182464131363527974280006106565659093975822680791960947241300864785940672880612892639395099886952010064431871232415085991458848199708077042909694175544043597933008097893231458302297155749793633031911747854604760957210774826805478571173266086283800503940687179203355327939146738546469756891339683972401921514567435315179427183847373643353087493115008564871005013266436875480327937937177638802894708026681199354901344992498252611603166429190851824419347533062495036388325446903269515225663460757799397607874735122569405422778205302796009608107545299933344728558639555726731905125499440120602832739103249464262841408550168446650949735419648927739281447869542902849611145870007666345558845353449792434383834569977598135401164575019107168273845537002125447800431901471215215585175561302243002205967996145669341662739366407081408467727684897437809005032510462347101845429684064623121964314078513374184089653687622153870606621341329099047043124955853580057985021849806755305475115556519302631267252227331608964806392654085710206283827351550394578823238348681859651377604925010465195623439463964261747527043160399212367438357809202774151182930849831266341210051637303504655121577041165145260176590530576346991892018118789842229979307853291439188954075451653052900121515077879847175929677344041695855741634156351764244777004813797515813487017048114938691964887938073112402645634115927984166466900691052767025394709530898492924879343003138212951658109155338533075492023734615994387665666985673949023322454498979999203300652359952753712789015498364285091166454890256058455279811632312679474037043917163851763913013361400239078220817153439008442164234554624793341033215197104252417486810851881689290769480256693369515979100474252703292562283817623013577076132217899742590205397808051850812331661213600867910313221349887611433547348683781864231624471190764098651914170276060877970602246469581018107288644331838143211346354630493489736830814214387745389537735418876228884447026231792357378349335075557700309365180708201307863557959681660150383357953112295264247624757524327013317290603018703176926197522352917248244010984540067812770471721288732488323540715639825391133977725866014796577724786367721388547827482192327231997758160620393804634067902670892630414662806576098999178770778045731197746590718977643406219491371240451223864686090981360449553578671758141592010311607888177036310769846208462675213363036978634850473012584720905250385314513448091120580764279825396686333066773520176151616121664906592069956887555330509477600369222376063399846102529401263472283583920339082732984981863339108136663725223321363863125972115965110972400875552660239150642054731487714765427033518692006893718016327252822814343008073625069413257502874678091498802966134148649365728189490164805758915750225875383245263929495007489908528461620444094167784699262751257218606234518797368357584601177321233961487187948913052935180637940314133201871632483727621465424048245747769076878922533682768325727485197968564023737338907920499268631971998834354980006216611198848520714466598265616497697826140915643619033577384415667091121501972532340927952096054045155603888811561179226598600231376445766890550301761301649827074872945264969507047479307606983671757652115423798210951710451923345690317393537071504611362082524673449125145196046085563524798177197476623132797217075750756746474830970745085254151895129624642570967222196812914142282824075724883124481087404897561848109882432043377331617788108881907743499256010576243006665864792054163525051580279292465971371389238812344819722400840199091918994460898154258462459024149532863865136912059555372842964296635075353236877743255006962502963331686663676304154538332197968012501636951762864620683432116170223643623335503010177797048812164467322445991463288489086742177392415145821823143229644600536862522399909645429431339568267402151411876347550495518029281641184272310697834762324097729662393244179945941883068629699700975613634908998019515844700540393410240392922844220359459558093131913089070442867181497626204348228992930288222446992237391060826767376017691158526806321930807661355860161127502534307120453525214512532722385687934798042975303385832158288834622603482726349883035876357456172775624227355386220219630300898399070331283975694244688720989950830193987067876094668507754354837790524214829508412867040055538819658965729124096502713818379387335949211700752315896192900947030195432286801001523648341234946153033355594683548734258319845771101182571747189953593662722159041898008200556653719560906478856842269903177654692971966310342912300591500284651271295432706238376085831671436850320631097568277638563538759110683367691167445820813144932591967473012228617368835065397197261461269231613039372081632988332300138843876810193177173855206045621888727677307275690594434570357639879459693130905239255767758978412986432901256390568329604599578929292194548292143359364545404738823537305603145895111854070116395386237968087376087743549082230099603234364150852007333914287494473820246267808016276330381543695075459467293437948028930228804548569044936978112292066805346401854797787089948753990178783901156479727112643487380733714252927073002890260457494549050886012160379976731276546532728364822004720223571369061223901218083505968328491322010251424201582205560266680176663359527633557483468066012793434346554695615600452881307849760908843087963662886289356761945024400406886353793618929650144302514150034664606586393774662367305803852760886509451070175174810279728997083519681655697308068456234848036595685864248123652999558707957774496958132597956705779724136452074511588275751990713599019054775004664666053268724604099141641688118743631315892692182176420316574645224802148726199763454538872269921466130739788477301388443906703964783533740979277600400229157360617201328688062070639471902885195864578198800880274164065985811996428572172329945307487004783328264995396066307317271584674132482892684163438995679077396134187071925572329585418129913919090543888618307920625841130799747356248630982165847148312098598801168032996839589670399344776638628204432730877844435515843524641390732710143748608621251390552643767054372261069149476696161373171591824388263822178193874413874350296381745073721718945689489425068389714016136623086936595830030480634799404372338156786938547842336798858276457855738485278366287241312026419490364924515122172989810365403198088406014981151251009792892048629768425327846206827514958272913624368425931984512634881836871813889932052214822442648985065866345390906407408863716347929567647126634362332845012701929167487929304801919302368655224511944859828196577062778778879480021766183235712440577858913856007206214649042727079864608562625246172558490228095793614070255650613639798958866027645315534148794258114603096437077018189280379225846802591709286615530590337216644507169068533238769455981203936594070765980741029079094213554694713740366779498131862117937167177408415534608534012475360815162646820956054469412152638477887619061622730049228999775804588366830315233152993161254395474773886119342915575147844695894563565092840902879738274397872012137073000623016034961390802790032001788058379131790300788919790150068301117303890436310116731758193738626430184577592446392242150062961904403860266244886084814206802813322654695766144588723648367776321190794206750770113222219799477485307675750327910163045945542366615937014410514311727581346277570287402258144875179791269409027042842625692790958177416705238179606808421575370227122434818297249640197086100652491578863377142155969507191193608659174485426743063121162735051787584742017282658056799398453638308105988801344144946384154764579122952518521013670014516324526122885162825097554251111088475322163499710901687860201240091251027774711333142121319012418374626287407888627099093578226572920582130917291441667497628779725737130906304175778422771215542783623020978687917767145090143217928198796542365250069050887510569219805922657698923345856690469067603973101421482253834032782487283043920143567466044744218765607528302213445333924567968627619538499614594803576299060213233585805754928194507816045476476658644257928018464175473912143784446917432498200764515965698073244361805635842753258225919468262376875124902594457720409479207299793482099470402596024118480862215908147502729573930810831218980699122657423170090164737034776897907771457582462853716440010223637104946113405591792652812946308756500085653882681334292563184311609345510486235077390583548281991958973556551363502870969427057392113989510514344380154687454490158164020876617623622518240583026290722690812791595921331108362158185182246103382981835364392429758653408600813986835311663073380458009060143036691677136642210068558468244109014300510355359303425322089901026483044598103917577766025347849676550830066126019778858156884067487984214659003674601898720893917905915992017764800218313276016940136981587544035546556438981196902054725432846393059106528617698629514846001647834751431396051139865104092776498410721454714040882231040347600659888407148229687506196861212715704102931132760859029260908994063862795411057773507026722334783654104637727600666190152091797841075861634040754296457168871658368241348960915075864016696497834795418050149821927414236383844348174358572353690930269563307849664193640518477934959094393190569910116420254951730331206420111865381372548702343412625973659895565616052157595260448578757726351567620570347387139447275131578599086717332117600514442673940208466220772009090576296085158974782301467334718951178190780717460290035689763595393420346134326010880718493119863597418805641977022987877683938427406271498336458675742184675590120409676806899879611232219326735184632439893528332990926276465260527618731046122167286468682548353015729450602855804120054843318152976513609145701808288363264693264879435070035555801895892179343319642259703351250940308635779193756168705774716200814667151955084403889177535746225272625456967113336265494533712158555564202170275181263037498494386912534580836870375379602567798433270470712363280380901616774860963649801217921330929810923164215418662817582036323476622965716077508176989577048911404822511642422679355207127001909393818315067659845410650058329150789076069945264327583905870190567938034634751980108284574808413410469747798596216921249753902341684037547426099309028133167521070205789733291483743712332071395491984375391444477690470785492807158242999920091020075236706634898908900128857125541602587826618472522843335051324660847098213457212757337765894791733117157898691201252578239257228838713528813248432169297149559840561902923275898495379559394862097439303015891060739273878029833093635299924017294277259959515166860795049307578668357936968907186315053140304219379135164500642350194733631358225633250838611285626327858886873068057623749932792808661568778978454924633491655720310227514477290326247506461315835410965247671324621200320200454601531429503834847025657552886522964572752354359075284294003150761205436888393289052183014803759307815267919411175667937029967798328377797881013636707025221501630703738518269080839765011982768837422337340044392954307867645163188156281939032914220681556370500246250580614764001282320326082275628165529008171739173972548990142359408416584538410981885378304565895431244349894194701664282393667580306781238803398518692196936428322987373831761098249117055283133607411052942621694918098255207203092594762560144611786634125516043454791064424873069990413312111056674931428148982235729498591823533337395764815863245238055643173635648335377925406306639360737416775485601333040125540546824622470857975043787345293716561614527523970663591750871673071498761962472119112884954476867661460619062648163108451535734024167273652380400301034507847475782580313386086375203589253508136650729694437925890908790817401949688151162486552593856951705341376543971707817028504143499791450020225777637087829521984313392527837884767107005720097263519234695476389780468068642069364291567415505782949003690672442904767221579072052754753695706368855987695798755286879140105628238467731333693316305696262266892495816831329186606220556024819031218351960583578989356994886931578980409518186990450860364919893572136776911834451737192468391352417222640037258579979040865031820664320793620012386983372418953586233666815159575154822514636470234006432406039259162720279741002398654464080405776810935600980257041611181794409829542390509786693522980201798973407102625387256967042644550293077841705542280414133122741737736671044044074501106744802857649199593216215820361519271648239832139408732746944915044876064023301069533603707405164652542933154818660431182022994838505670042576861355691254285431098687937214369266954338154053455273727003099221746732131319755346182354369342639431973636665946708675589323205306628850373671542179657923449726501381922773803300158782940346667903199633359879568327012821331149297278271865300448844230804148044444224174424711276319756465073124947085996317519212794478647328765686667144457983999442878407035683918970283596308265739440336177682018223516745055420616274674109576474877894150647051853128735117769221283696587003778740682244355306908550199499604715105826460304364818209771188217218742518738618834368472596132305571701870302207124166443934535309127415596947924016180031556727873687317113505512701295877798474396214082748638775234352837630304210420550168667194127341575490521491771918529370991742430083906665030787366714531206320674918840811425296183654399492032362419474920022154422998900355344239244728035122806461603347198210350613184869283437078971740535842520623313261153159463060076098016043644819154525242317441066476972758210922289383630619488370242969238653222077510458924847207867532638655461716638871011880920479309140314147239536340644914735323646722668102350747606125922170001146574331144321646486861268813726801108531442898479303710076055595361278532256742490203761672724685273569011204107701805574337468027151279570506308034139188118055354309682734327648192442593382329376592892903271378008506391505227089673671126823182618486298801026802416011554223753870476708490997464711460856269746190411972014183637155495756140867388135416150525776956738207006889371941741239732941439446404144861943208295934969892487107715347517162347988036595223318140503999599601665003265342995551827341119807682824527864422620473972019690717617737452795822822183898781497652123590242136459524072499129038853548601838122367253815029788499298005304020139875094621527281086916010693356586971710928495010639215551813720290032475519796503057543698104784478506224675285278103111175627460152634198075132886786647496170036021811389660955866202963384136109631792255259020124327721551921370429756932623857522958499914554767402045944856440459545606261229790399107083455634283727533577229293139886979973667294362374454693189431808014180167817643744623317564806527039821345889145136083003991351585607310817037103709449608489095017837172085201111227888951623293054868330444818146556119898076743072112598534568726123145372050298682521251739543082484775574151322477701729125342399678360298589120601647022786705732737880889270012568186454399221423189129669154754745493747698677962789247924704305010003123658440044923585000297204651092085903280340193768026590812454533623075563926491364618421772390000373653002854319867804762604963992955485890789323121350279905370816685746438403923541287740279837616566907264889511116259453785419087765335552629879735398097348265596244209516462821544219567556610941317851464842228399259025805676337667696820615824246235350972961537928874534029105304054605553119116847940345974491511504142287298031173504571539088212813888619219540602798296491790312222766164840314841805261920745716943101082950286060186800925621531577141679851645740311121248273992323597167738339778330810332086963311999075123396227286061069713596726018338672688407764318311031634912901208055546365111461138024231351501373434627927400547223700691068613324820735808192442931696395853981480632432517618762984026716029599585179832022254852479404218623322168650217616485403125570768090494437200462752449785344137219590796661322676616634301530556826226028261130829296986673195985548982520230320636927679327562868697488310109279314504966455660741170955673937010679700527617639989874845854170375669840789441224227212588279966310522026628558832452718111514007345559587722775747045018958863472325992200560278369319448327066496017965541525340836172202202025342961367441401480763821506649996252335756517582863489966551055113977468226421025528308882218985304620993685029836109110467118170482097460363220806934157127099533072062285499803470486330006877648781912685418865704361919988351295695944283632249881481582282670535139779649650011894205067278519972809688237464157197706066509595106490418128159538932246505744018196272905610157614035603175570889905147339869103913431168665372356744431342318086550968644104002937172514949538235994135306883690166406557231943865530551731291541511752199040420094543203087471051708282684751550008271745393214424964535721549026759232882379541405093837479401304950565701925368597584999083076051710727161374096999944510148835833994811103626833667114217307235753110751107151137062906637484225332796544049377451577043639585865388899577738096532076186708086444582304947920702913511601148852766284886617985259249787592279489689275228698244118926128539412785080518868067393071462577898586443982733842182121364177467352567144840376607073682501481644892018973736960046291396935374213327760397971694830582897283907392253750217096735291500611265142322139256613077112029130364164602044249904763752337395105032112664188345973673453087111285520611532149168786011700550214316510681684178209163087362824950378122276091250923176645700422180073578031271454106198023700388716169498623242759575503105418668151234547115442310399826480176484109954214811672385866469297335760024822199296101452840888141431844159983787301455321024482499499495164512930607422267684453882860373853692468818690862578889758310849895434262964014450453635781483656320719385490341728249284098029068989953715144021502983640304266950706617114365889796634131413713500550038258791637050688866415070879699786018871930270583606591660626632792793580236515747058394371246662138059826244629957862531647854815740816950857793376556491610952462998505548734958638891530936153574131387055097367805554805672959638927915357750810914947722444780952743931215888443985760107058886039266430370215663816146544592035637854634353629474044579693351671040672057879479042826732850031991329461505434537815431774320385380270015540353198641589821643164593740543831615985398862645517870669815677360150503354420267678381764927317915736285374854278794298195773929690216820167350898242413217130289691748103577162394067010883182959242932220771009244751983110527789309311411101178603742105719366741985341570291384899447571295357450823745955468777001219690259627971040135817002092560846199761604357207873566388242925748551447759333632400954025304183027626933650267568097731295810419957343878561964173003496984309891370251447851947722786193222706116928927307125774613707048525537386543942670302251097722277482261562896542588635223113024693221445894040799648273729863632814381313125353124626563733835184377172141877711953208615584694722841738083357894583440801648713425200931299187502375860878509513998682782978565374980237345346942392680949108421173816310623629070178942130048488283450725992977973067202968120314441340863720217068532066794308164698195804126591266288179670249037127240355757101678023582201042072952655141708778636824210616099927945985080303157014614855752296312361475524270763371686525572764911573859514489283629737016649888782052376130022687501607012265398037781754633880620768444582504815051488663778521482599852477797676811757443696756011580582751636544178925586103452108644410656461182759451669238526345420213634836619994171303217883912540841184866232246487150606848155462486558699710294859327089082394971949480105157801284896296068918555972855985358129139134823646860104925742977633037087024590515781372963013136893777105381849993932041811340956714632770738670293734684020681434604024676784689746073405581475015441156671777073050497968163156172009735967241247513931013694925345174316767822725437095677678689840808804113606879036382938613635211104800110545563507632502537719861915786937602655264119265633429597769436022770405763638092748672660290364478034852130040582274299924919068663481862502296378035250866482187264176369011609466574043654658503627433065146793196806207049074849474818521618902321645936314925354946281540551828722207222111737118596459804301130765025037187949694922330957585594544865822863351098742419564532833902305035616861511349159953375184819340449789225701297890613705730292458370365380955594248472585652710402321694791069478361774185630562818501250181425383511456192517954166782862323625695396739444875767918881065820997231029219975131392981512899866636180578519227643930647730572924722345717226893851965908584269267834176522604993550506843227966067995784842289485452859652752472258385477265868934150424486026577361878307029176415141114977347873219266410427504708803443775979126701055772916256257708396482159884453583975450859213558131014755285611791442938155897711438224560676343343591270390761872245337595766425450855083855194155009059956023498285455752728951945797120195499722853085962014255532708215608216509911062938937849489959606581289429256731427013414710333074903158589817246712376598622767493907202138783629543951904183887890251063336726162337553229663108131389522401383664946478778991607213817739030553922578908126233417384942674538232234234804280835796092621469994883687602986504904230433649728072117927272735867793216224058485210692724855902779031564186553236029207119120415393547039934485924708357137509398224871126433627915935111493822122434165964798085639007039000264268318694766262678660466411616421283080261421243480639826069325929850562043117868976072344285489501518136012295758038668222749515684499852669804020987876711491406472835252297659666772455441578551272064469280603987565305681241830450975312296494395832210647021258680951404633408793552288585424471511937853931513018413478617688424575265477670654002984631472663437349980565468579001151006243755639131036239755960921499867948867035025804338751342883287466134219632214736169067851663745326139785498822271293965615233317956428396164233254183892535887327432785888803478087176832306959971657642030498966278473943262400657168349964615479064049855003942881739121069265669428491122038430389343798133908828994975614055663859034774732464047508870342774047872626485477628881281107925305382899937178006147271849626117230182553200906198496364963981084314372617919819159628836233983878163586424509922074597489697899807856819643588805961641298193699153909240615205348020439983874612538221114313553033611934691925837415995495616894541502072597529487724849177688821659876196453206251148788971968518672663494429880477846970672269010592963253088484135882585513510203399097739401710969505625193647111823832610549038286017851122460966506659444290206447768863710268974939198274326103944448429396970443151762087844286542057565557385553121445722638177762823775601490982586641060287360078388459402418745823309559716069512573772964497142050872422731178031042139392357259559144066829920802295242379734420391437033532893952507239201089616888344092065011733555974880586673196757625132748162613613128733607775633020890393803664683512800813100795483514415903924083584239389273570772908300344991034400751495763468958099136379736352257441109512873724348601188228692530530449329865241606662853790863850762624676537854876711776923597431385390669763789069268037993258288867227249358895135160374864744476955687380855806829064425485952288072026478231374846729304888651652403154878337622800776367470723061391987847791159644598541694033847864432145922547703809795900285181284233554050654340758181413483070122984372918596973754476663737056442059523276020169796808856515206643904217255025660822055605809684007887142884238872716509553452048684161957315551351982606897747420827118560462908672957178113701927878632070918626615641978077367349432601794593039126377939834069026523952352160911825005679595970898221450287902725629797321639757280068010520702625713921744156520877418339663850247509835599746434551410965288450415004308198890867027042655825888234778343878261931803678822527275153245609092417526474505394165540751734562222843650103834719353998911267950586228440760398365857130636645092680978323714479767175842248959550253653870574229106728871199380910881222892999872623267869343109900624366388799355855341893766703665229958705857651138895822191639732159718778696602674436078916831974534511053416722536824327452166417752925560492692992699183037965621247775440722508817329601846036899717264511562456410344759544088151763777371307034717935410329164762045232262442815502580466184878195896824377503410384099626089772679906732966957449476925469691255189795024908143220004950856496997705040172565201054364424499732677374190589788958509848405019884541979160556930040795317035794096081831621590709968378239954190847134895875659512789130664208384474186508758558507672276963211737893384277421609510581204886241709883933889717893952776439577675217631077950878750491271531763042935899306271739868312855114785973459359946762562615232215439038490918094975175550741748647016581965830589756726072717698895448398804530706349914470270811843106244924466650504711032437889158705862843616298234953470081401849650221886280292784120624807071537992232887470795346592694198937655247806710477345295778053555366822869477140911465233686466411408612019515294598627580626430631479024155141026136371033186571642902230814118337211987302190662804851599424755365993709394739272711458741797808207751863447383919423020033719985039493244385883715958769203545783761431377291890876205268457527454394799862773254053982680352522167970271634968239228908977258696069164609044902835609441534502523854813903753913606287896757480692507187835764033668361452865397665863506944397423945638799592593504548920853918277979892258057591069981160207479419217516814192320576608298644091987614249096092447676750865264797288480311633587078111259245327679297855670819186573995383073117205293609893289214101319590063109699182073045345886486361885423420004204209341873714766150697159905897537464014336590102996215947436525329065661910682849328340469204583889010678109738507459806295049000705996496026189171266340856786700696261672544897390239856902565415856992585380745524260559303751129430334764836187868726265912189745918612431354067885327346009611775845315251916239198812378813520065120827711125112507692939104744354208578099608365938096013668336983264555565576654077858850924659374476272879178518623653013084236380353004010085144999121145834223037103148148821297558405230927805034733092955300425543030125492827545663656769816825638861476980200951607215363293167921756980887907597596730922811436138253283294030153526984989049012708233459857010388535968195386042647005372420045695872816737922077025897558343651956695601397748993534069222641017457891201887422455553411077512261320134166684491710309678783117875060588446122935637311900581522586616572301941544924668172787182180883545911462224575665357799848429039730491404386248475744649159151338910005486809165087180931184482822035751749516260617606131793412149676974330691368994049247293834829123776905538071507662743927289500276025732968740616646150851748909392187608191398783643185031277353863795200656018425756665979661043692649053963259306162458682047198442352174944560523676333173797514730122181626500679179883760061413952368406877079204080769949564406761130879236026582424345550716983048153493408763513929175637631337287967481536399994490864039564530391820220704647304208137645152664437169046869357784981844251198328074679721841853684899691919825191155985510702287005031834100453874678166811001714126515715235557373279577234089120982780858559372609093644406380485873891996192344558356183856825398166410182287303357372672949500955218787013240967126096395794492648667299061945763163338863768022047499036653250981613627585568056958433530038989144100697870234245535570865786091571674150178118614348188506142465957259274602386568052620835181401842281487430766520967940312348548007018510970813785758617609025873632744261672423379749972328919364287145539255849672582983032116950362092711709214823669946448268476007776791669661462988459708347331095186099347183700497708337841419433665873218532862395444193687020992260134709128752262095262550828354853568850512914499408056623200686729348694899287000679407794273602209411733391655924877493775994005673743076618781331682380708990841132046690589645365538722738188724242009830021172350399847613293627769897815447476915434038441650207746903245391982015971015124412992067992445544955399015960400887176415859091908148650495250989520607333690574937742123207346900824358563861682882684691352318201680314753463070026639090053774277377022282467337070477381401305073881022427684157012438234914335633413132319111715826270359704899422265853988281292579144324129313911806391936715827186698692698169984298621305249522094448861736440309604943238506644982190374028468310649229600241349000749419810246813091390976176656262495391137435242378495425640251841484143579464709549444022459686535373125023343088363439213432381180900551739163145263701646907112251795011692027272092708227006602278264323414000951615054513907614616236026319302357872780873488357677809318724929726705566025870833675310646215113414645134795004858404208148794858464726114279962358312734144857116192390724692424524017512990496181203276482776034551795268125013303952118025388438010354878626937552717943040235211452643861948851500545006644425629147204158848503171758012860224638770460282231589199384081975845970178695535632668680393185920147401868392660691807657590343843294315688773254606820538594042024919366072687121424809811437258889608281591715632526743231006934808120067391086251066861005889140673097889363975932597961791408430024625740764632998014396525906235095577569966045896323596004176873823789244557259115606015850511941021039279742204058178570757292266648673245396262449809018381805693969235136379995589638930318893657298008207532381957781267680913053199418634644791906238477852335817809717383330208678546932122643988614176641467788325753252867521010593492141261643460636028954458560664448842985289710776004366443486438118392597133600300543410465401178798027374179849480945736581178197129266303176464180238265736367237725312760251990571663414670739676272536542964944357168076412447955659292559196531815007721938003715650882863921253629542669173254737732773633089336960439025188985718870730751466294548147950222748991232558327899493296662171857001373670087708732649336192275918448372396796709309512491433589202591753044313116610720484568213279464646269256862866621771524299848587875996081785423111642114701162848722103868511815201467142048276242773799695962567441211917539622381228718751641709512124473407053502370106887507674393314008477387114452858108840919297173317693492815910895082008708389931816811344140721442700392838637852696328198780440862504615470704558962847146230453079626406161149507335132364812536468156840300069156110920392621395767868537964752401236192629990655695252235406902676689865394578966103764660910675533110893016319056617348921445456808601027596880066129838813111080601464785055670812550440352128328697905142686975528596397805898530017009923932809541497671187230115516392193659099034114272080709304601938714888607122636276481551616266829248253872934763896465012820153399601276731198720111087515284331297490190870207933995410020047739345819635045827257465840951330744850489895450378400188947297924639929348844304472390677856295060261389697082347577618184110809443135281091093379710761996679300230407230155213799642586124808275101441925218140483543766156172567883149938892928295438550465371256925733192263354122264996677303226277136986979347656963793910381800990296935178001707890802665479106933780896152428375668291208890759314581820451502522035920468289813873093239113446948493960630618450071919669203681935940034235903500951571104133536804301243224260921139973366322075588871791647916760401750138998788740206194221843726391629904822426843142616491566103802061845431471360276474062442622499058650231810799116353904097076143347800220639587017693698074437866662028223926226642301668707143422439835564825250921286004823715952938472222626506420551603325719612541540116903350464911277511443686627317158275726778816080808467574886788480794649065423322517372956537810651273678368613900672010610546175864127363883268915446086770714860749017420194160063556815942085486315332465262579761113292473875283557447741120536614120028930654104098094858942229194191613335218022914574881929856813123391953011242267296846982905282174715586636871608915231261573909621979101232344988326605997424687778878630369577561529155824651314008250477492842772367453777329924245493094316272210525561322211807715236601325140568415041955833482148136238836254607902912352235976993994569552766923612511675455433543082432654945645020306536877058834378451811503456056577267129451856523016211650106442407175303214083107756768609105780907974993364033710453431884249550841183125833129180368665448650376540114396945202174953926384916898913482203596046684718530219058050854091918415304014642406850184343103027800890630590316425405881227280527574022246346233592351852149211766525213283164607642425616963207513237100475970143301991640503425708201352550784883553937500269775260862106616576471885657712033770449519514036725511855073183025125151534125163554822213772672797705570991631635948033383631920390245294192849361654094803682460864497468060709295063357968093645302047052601771644499043745867761957854148169267983227994467491740676789588178588085724051897036914079894946016985835658884087541941920428835301233759293889797898440369279480748305038580921618032029060495032499911131491913861727114070038553779655888442636978950087330622627718987805339880647867455567493770476674688130619487218458337601877977483574621493784358687230360601244525452988723177290528546185421062688353631881915267652974383917763671178106419974336947832008964649078646835614220710914827737368280524041423213852564701568929555997162673519477078845897467147773819440717492160965289457634550098143654577210162626444143441255729464643603258766077618195958328581557006178463157840069598592267898867084297994395261041052894778507086822921179217684300021668341278391838250085351903605369929785408197014959343693478904109616448381901412196118268242960149567072029168471309839774496791452153220249598942622980299523455712329122867403987897972141898797156563158997514434623558211078500433366126805596895733614045092272768548576873429172475888054335013120553959007039138509756551687386872538750625646924519744303827998970505267446581072943493886699738186296217271573537980629317699231761521810951887946412853179899073962026673128358681749155776180896670953666494062405725321598560855811286979201742382815148309688743341184318485904256522821282691082527592868138211183719004681950420945788402552980363737651770291070762045183041903964726191152233266270704951312836361261401625913940664619779154752302534183870103435842276993264250451934057383511781899371516548103849525754605961712977275677939820197596659969881667675077330692863023517497229891929763017699406998717041586673805108732004938561490576108220646804606340600559847454237907029801673310087825463128228469986664648656318880217532692661375710750882377841902920293599283619189664348042000723168593818927937721394980423515693063938988902701879983299325780866626126811419512221921949349189243234580183039534367176987947804392279474306926999031061249610230742771950280921825743796896491108776188110425369559985258585789938769829151084426565617947832200238672346754736531581095619089204851520378989516725070035291030405521698753166906340569480985676435719823250343716350535467224170269957036889544553660517672315836161599836006225824569674584261969026621830686332116744758350065056575781523255891704492249135446222410098434879297372524284649830789149238095633561574810677515659051453302211018507587264544239693449109311459117026735045997256538171875898008220946068970787984179738062032512600314367264190633583180575395043577343461646628788895351614446529275775641595807359594807334171455029945700709909003381690940759720098346168807294868909134142113893124544233099082426845739133729245177620808396255099050257446703664849474415032023986406912696997081100039090967927369074534545851471856443666291672973462932886978075265607999741534982928845742748680954311366493738687671931288202709207324229447828967336965448633810960551650276076448191910024266981054396226607525056146873500864300842513853532554967968711984371621993342579932409251531761921567437773684089359794205177034850768957827548142581735072599783352850575540712462703333724746166827322874485420823004770716032480913259203427089618806562886874856102660886012853056684202662611980749369785021720364661045096072800241531667848319814488276396842010322579518910744169374182567667627292697030274558850363147299108873202041057872142462316659101943428105429379634473191346331516758836414253169472703950509835484452607834885063318233942429572169633339853097773199984017657382982696339972735243099053343656521692001447010824033528153489979787584267318802995406765934607286189856044544740453414275843762589439503372588745754926719641844724225717254307568941135852438531506856867634838900355382920821689857462269193741101034044021774400380508342669211488572196860508147267175044904123300891475955165542772133550214565927825007276395727524849886781876882253106686919039878333696522880889156509399078957784840739941136232458593925814098133844235060944697466481926220485390057607635949045438137027712710694770671391593565282118639229286661466058967266357245273790421712948415154027013721718183734358113818805050512707088394049665646525654311091529752086750874079778640545337955590925347445376076639201750172297010587563456769077993437427591125711148283094268407342267509363992909441434015153657429856176451029927799813316814034625656450392074692552920569143003301916906591152945674305658788844936528954223956116169371106153559959336572067821414719099779388804087317454809888754913115642014654278563717820499995053408680255611502355505734464687168378184518234847322956738085877501357486807580997811109834911245792843991844308850918902587256718045995301791442803584967045646470935848386370034299094109134364393427146911467273474103844400523967967638586780024102799763336690787644157654205207861089019728276005482202175400273296695632091170913461047249286105704647825718452241120709572880039512518110306195234638071722862630557640232681893489549970312300253309143723068919051687691015801244165525791819774410756615522394879988544918804070599933062552766738721200472375811328628171281101103669986739033604542065046208833851886339220256987736333788998285846712520414359228160952748612012547789258711036444074597487571778311003954413705163417940425759729288964976082287017528326431938420510759778694269471318237877807777652697435628624666640419424413491318884267390330019875794722308637595233232512271440482598350754003849170248137091590341240958888576143430949260027254580109488119382561822571796369375044811123055705735787034651916993116555620984619446913637110106437791885430370858044806198123207551286536794794574872531452117584528728954524113266856243291865851729958750899914236037221266504393058872563519276623517318059772442807209696348451591791794340490088442068975087288750758493292639697466780215281342388863417833038456232890514745092455859054150834665598974279399466399975118146306171584890297398747642939116722709913047106277806884565149188916386862645804283416975649749864389865032974709562598318713234718029014646144335350244915027695135807710089873661055709437792882047343659993197188046614735007853029178670880766201572722814610256039800044123983675454187389449322745114524092316154099108246531907091706122685484576825608411511830184593957401992336749492748431003927674123426426789296479934016835275186869575684160974087149556612254663953759206460510517792681156894640927090680382874946542080681931765357876718379371606540994896420535503071449552591900376384462347696943523403101403007501492952128489901591848826251276806393777682150048580188359765825536491235517960548534720319475896065628222093912924660836528073332005091133642964376743696561111939865080920676151490263890597906958607109650693084393039609067790522866678220578582675347812478548306791452604569052203905844871583437303808168118399550152096860906548169669698981644006924269152020944796630317265665046145588320662686191219294090697017509459941022888006266223341633588511566405672265473654524205963709836304058550482067644171356793065593771013702334047047340817228390472734046299212154044728972282735513669395137254243312844371444376645833912553368435843369100935731801928640939648638257655138710380053199195305501928306382998245786884367007506843661680208212831884255450929121364585881775023956603819018036036834564051086640511193715138102932120491450526233917276830284640880115152188717625916680651529151994550321563820572566652176089898173250672641052832699976710965974815599665545348193609617919748601430341348362789902371416534175357612846797269471175151053528837023446062633522197491349997020207999952004448198926602160348733091192001448318891004213695055135592862828145670169028559221006810166510529833980833033227091377460975848468322038543195451097123574381796075600170385308725707851508641252245949122694594924406532235824724765278049645970509555986246100278672603233601397777480095675055788237789021260345500968197717186660988825921602746983036190347421005915667685957493341063131898034199688651042568810683302600926614689761196490194265428055497967325429603694121916245557676599234484396803210936081135342431426321206077363918859150850430971510869408557420296568732739794777221895976564350312698813019365138331465638301604562668216799033209840719467914436877083672902942007803692388013238624327705738941778256495713253851178431197299439539276269849984518808311764585764163650461491131125721372640675606660736048237559411124424638709080186558335424628580636060850719809000767514296613833909411606703283862739972536630108807763466798995607551982515497578072223447772290652805010372324302335791412807085004682483287175916480147522038189315126822373117093500181519097249854778040407237986584319711187996882450715028160208252607302097904682381431631268515585482276753346172644288420527601025584486528539813736460674051521968536059437839710942018528203984509900450369121805439453396001568110261382117657424106018906879629834334836607768071625024718366942831679110771962398085649905479861117034071191551524324556510250806804042721378216720400714171682689323237035660644046281194113628024394088463617244600535410097301928270609104924427786445314247536819593306704920875544193342263070556262113245536111304405778003871353084402119991458076806526111889140747079647687724329436223575403192484393157286321003620532695280413182095185436876573790467589956529853298479418623718537615595538636683724555940183338529029279509944629176989933058474531331689051126732711315341232321470644287809165816971741956054315467760283196412323099549324131152658190568886119627494563362279728391360397796444910727363422263208937780416199767556136854747837554106434995049008319204992425422955003992216549907341500505519931834813053669304525956264188665605329372290096220608885548811314910579988709199321171477495312816046675407064511035356044236852258542510708527843595078982915842531129123008995039085693577284041011125139414835337013157206791679804665485181781540630455238650958175846677792676856556466090560462613030588298437038793863370089786478290192873999820059164233974997858737345086019482179511040093474923805994980909266341133991883939766102990988231561328228377119246482669743813237049510544586638457689172308716065082992788043686623820741301951958982612530380815922937891789117177030269166863592290765664857789784175719364313792493857954237941310843020377037542011041977288182736358036634599644635608350667322443730754232688684529074258593813412717905737515362611275596514144015812035784257941771475000552954275272307962300679269453019129133223584418622463056064851327408897745220148689077801284379141993792648750138424950844567668603733180886674405911515757018216735929891807275861836265956794367151100132733356814908653829180349976469229278979607778287782708032984114150654074273434565700058645610441698993978629760166001644176186348752592044791651028768940689866051486167983885793793844594116274914981947352016890630059655281976274761351367890919087064402748023621069404786580075607842034173072405887601607126210262389138324459043610904360546307725438097733583486482100789779593542949122370519308801002460021853518186142817924369999994370151668525431401535036881139360668509389243968678360565955843348930050376746732281621937070998928767028269819250192803897774581085277576868297944529107317211985957083911089670452785563242991380292946831628793614822355200115058822678150377668388878852797889350032315354583825365720627005009021587153518668251732041925057993682795263395054650213766494624351204343495586443825932007913615068409973790150420709094147941223760845719204257641033834278729301872374259008908990129481156624980048897230730958886487365306446319723606308154571209667349752450402355494801832385371160284795400234669420262122273775965555068772403736106172676267376311134013865459265170623819807966948486568246155866306370635200825933542342836396370076192827005303371568614701371987567009052515964765300970778884528093550922539992956635706314573407068094399610212037533707751094893115720186633548385099207650570136533438623646219021373824740824087648205855853799108759943996863032994370494737871319020558109958727669870978587535810093276412401712989559078863033968905158621280761345630886035558753580401736720876806290526273277168074919379910567628034139182631819388634226295126497238665809603783036437666579927826428805187512911581104365640969782208398842777338843023713104461851938429218015774185609397806577019243403833088935878419567892069439572384563501402207648309508896497347051432774646687666911383649573740661833101723976996436625526726305698322463401960896193260398434101386376912584496193804837488909098210564554542907092781634041517134018828422785078617055366059742014814029034826509972446867644770542955021259846719955390311790468982616565602492897750954177457850300396343005780395826877176403670197728249798046981929977806009959042093897209621080814655101647865312905826332850388582779885360600112436653633405537298276118838288218375657839091842568131248036626196765836607568187574562435547852160117249444621702192810685206193402430883379357551767422567771387923682472634713352546553680973793184836150751022779291265451136540131229669794247103213392368772679836572939260468350251844921106469612670632745350621041224922308239036637881234177035455882501189915129290827247644553684969334799740964713462682896566535390406540283267210772352265560437995090536951559456258357473283336543249521582343249256556428367561986245544623867040293751644143966625547450348658790215403216857487270987938453819601706878770539423165230244611066926444575430888150781505234516569002134226489753418034324518167201664334213736215251280229026138190250480689405184715331533176599620460424665668281183422759939824687971354934091359604760827760058605196713890691624546720693829443769104907961680574221776839340657740526038937230844247290230139005146139665322263242565249917793829007194849223257768468919792821531509926266245190673333243814527431874323868981897647041446952845751588942654610613640268380195739552747669567281549725106880340673419446278688189142404128819154635318827584837127547110956026559671318277954818977427940579192685426522212139776326223872816526570506793176050340148516653027546796775980370180584946992559756518650638429721861619076550699391415114949384174966483154403980909577198265271729307699699601755842341133470095976407003191443339895487020074225819524449621059917770007599861646305555374218737089772956872744073914528918819193102267042290122596302463395952904561192132659061379910966733959339755922768886138623880905132420924968776215719723136718752073350687600792818177209424264644113983287590464019196308906995032284807416028242651103991418211708101668247601249604119443761505035846116546120004364425725080964096671499061140489355665236656305934256669421149009700760881314691030133724486250125668981582422033037565822904843465962702996238253481002018693303837514543733237452085693579440871193547605139394908041915810461378136896807127991036587413815362986118902175445853199262571961733572136517268019582105304919172808998482818916995404169898625833441407340758353703445358625626912338276287359247224190954653424392701105227777137850239457004271248923003916197325883599562195879595219111447400036895974664089337593453699672066230734552799143510851058399515481548066415937433791466312222518077382118675143999968613432961793386672887062635512397958396794363249767905790111044907115762928967499923499020473831189400940553518010060888937457481360899758793562419136026988462294656769072134948334891393974128703485339988294620333278562293229757635419797356308283534940015144924237253677917210328659108126138911234260488400864921972871528753371434804723701031557544989930571678714013933049584663131191554297432946573809950996087657898214770261128861706226114376991345461246766899363598581985808050632367486498323430384877477050413467296915589094223752039604272665969952511958108241323849298359932528724905888586379791263384195170681189303272021659853712973630171730458461835561050367416918285213524985307209172608253367825946581774455789704152435007034843698757281370551265627879263431830896576331556410716636367146774936097155793038136909740662634243200906059498721520650839587352507088304844996550065847534720786135089870791672466281411821242963823727923409509228494239052346784553282555746050126901319104336901162800367006274134134834765029892349369830603125255543301685930100943547002633038716294337724403177447507551518729381909263180984892301245047268493911270139744495377571714812423948295831752708038956147527932248053058713123674586499809494208332543722608858314455970749658776448981965762256231383771249752861730827408785745881487328646181265692650289073838469337740879783130099810118333453629502985333592818050966803870015411453627210091432415994779963500127747524752359056276347415015292901857301383743856105673044428003259516479729725974405868969850409865836258238415147915338338447642086592992929741040450670331686598779788159897291324312388188426450027281639145441081283323569283264156046291455467922415979322366832245304578629535576886497758195031510060363564446171864003311335961013630018342319310395927171967328438740939873630366282977774988119095633741397475163845411639549042179366225972890087335084910242214524722752492786830059885781631501381794205834422362500738472772824973139686179087849804979062517108182403189891389635329034735441078668973072399377679712298608435269070108966469390933890968462389572682638431863394555786350555966134627088279012861254802874686951051742808059425068700761011495738235763901923127138683243949968645115635889474715897636889617038148661840439917742342750952657741355024708897575830381005745679481581061822301922788425090253766674334199410201525061888886603523863166394716443941817157409080296804202711419627969860205616919298157486123420524153308551843563388751867677615499854341871968052400188961626460974381853201132793356059711040656786709865067000397925571958305760656933107426990878255422857004773991851794516677788930763982399772902633748199756067156316909596881413571565923736257250830415252866170457779418329985579469600706771994716927185650445108905434553748520825117648234696385259309086082826925447793507886332176681485697903490183982604141994051238760377818109462514541287393440425571080277263281100391554592904560580683087912401338924320684066841942310666492722420417207542583464210090961376983445684846992547821340229788284875774010274609857494102467863366771115253326865175074279535138061659716732913584830149189134389895094518889076716400676140741842045017435810514098433583651370825759766852522242942609590912789913044832216987268565769967692926266365532139045069697486180412475745108986164562983990525493354817826739115258888230873387815722481125605929785397303686206230181800912730822321745752527414670752717957451913141354819993375161723126754720691781534612599980541578285257809116137650896171685692040713898801049302829094439431117144832006194968349302294810797826242476099504072201370256021896319008454837831061766598011025494198073286251897023022062601528903000000222695809278645249268123527007201958135310922189805932181237330053087632711978123213099155855661400480407865030626030113907029298173768349392932307070068249111330468611385182742041948623637029910757121785854816444834936261817437768472471492860915726884249850982568176964418499161515719028815396642163627409548734458218989063774195381422203621764728948144129647362907635230760897858144126415790858673267317337739740882626297117291566858266871574103747006943007839717473542535121069261711752972417859166895044645905727679730330204146778559293746593721018208318443710423864545581679456927251184199772342630693172139071824190322220957832822931617137452748559504160360943582379790563984016683659628703327859033282472466026117664653353680227458889618800745421788402313998343570279997858623385893564352279799364729687209558478547292175736160728642286431316453891068578593466953329385869155289249775509297979626746741202127363752132828160085728674455784742605902020941199720747305422033028964162140800839361083836614689294827020542476688854711136384925715562529697870042475780105721407598605786410391496393556961262160158238473519208712899567619219836182007265441647567470759814929401532326029734327310583649106866384942010270788165908286380058840903128118024826028549910522597844847485639940018954611045119065064915287535780571007595061016515892716039232943886881601264615614753275519829437370601164418559630198576828226480724192508122757802077424614079216791165965454431384309972567339704508058395853681251491403641202875697406172654019185359003099143036392641879950319420584189599872879839248169952739546182478111853443950516554811779027947237744652095401131304067501725549209142843707733256515220244723090916107070046325312615394326690439740817952425494328161837535929387854992754559307221727085737287000196270668542615671638792358085575561402242288719770986718597197685570787883686710701443136480516055464191686127056975737128381991898431171196576040006962861041617503167556018823241515676509751683456000495464824612175053489939195752944980354927320815693914113812820828588770602291824276833712946981639090150951559708128398960421096939859161101939250026304013405795943674293576422805193205066435739334793770995218026673718372173331180792066854703993044330301558877053945913839235731377807663998933515214436634377264253500403614408140683199038693667587902987036346071767663804924366678403638077108080612688750891390899489846188087052317964088363523917533655455397912674066385765448190731888324095827990712520404762845717789651400517531723281973076916295976498679627369193704256745274859172368718791696904525862564886430031742777044033588465231681885464849573050618216579850045268725879976524594550368876063102506686684609205374485225527675585693106190778522681339024614369506741606348233379049112984286837234878317462527418042644977904781812398341585933690554284158096848518684849026526147275186689374046588895560862494286903204733996170859204107772912155345882438372095494768059061175200291603510119993022114141375101175643307250768239174798237656315532114247940590019884195198336830782854149247549601249332993156659392380973063031763723549852548125203031122054333742520307225909171809392673773337735803237818772153348265490538609627717969677411079193338476589623193483096556350710546327042835433161542529212422687788032435163141594815561495687524679086048032134059670308555699885459590405623117176996680700070146997957178694386885649642652049690528263912560113884081062947944876915347988261210047504590096535934275371585764609323388606233077318178337966215449109934629906764002339003786604165999509375300545689242393947130242000475327867406480683499002404220279397558126347243104056692553739351332939558514152311402760721766027354403462696528557591641436995860640796076400400724836943207744981519835004402226348459154385786797401160544317747463530341686494060338316705032048819496670898568998626627992704543815281417315808240261759811214180616805692145975985005161259991081432591152416442413733794780621930609532201171618113804974438908293741684623230776572837330254594371173958589107347330654723385709015995828487340601826224179697411866669551469788659360552051049191466327708709851120268620652726776180667402848715099149111439105600675214598257902144971024531677435409180914301297386935695632296357178249012600880799311465027530441467016612881084827228095603764653067026727640414031655407789295351228679694196147667007065225588144076474729194442460159258778725598508074424501310925664154523996913573451840206678284245207821114885228729115266028532565660718916099306331084349230801445482299800184997514802124198138696593858685323299766996951572090812156811788253724961261527640062099306918465971021530417418493981819163870086193703810734220527686968231326268062346566093263153189287965499180898259000636718350183636809706882759551102051171588548908139759072082315199688925291402131412616183563754891596108357026795234006490376925160081833671495700963289407370896245575741501528596228801252180354608882267423662405071417979400036575327193606208130149104824959881629190865283989630939207647424225287528153033603745405578161252695994344457340820832168597468775494293540043042704131252171659408745011709516402847930237984197519426946756473284742488314613127339017349019406099527222693732313932085376573334505239083249668312261289054358184464771788213212340127813056282755057041287933591930340655912563818978654391042925789823848675334669120756526523915391631796362961541538332747156180725415309813206408142804385666165145188273244413866391875973854027837777264244290190383592465550437002424771021232244914788366516215880284970848843408011347282621619497181380410021523086591780477673217000984564314306978203606375830722562139522436758118534184230378608804174931336992852658265280451255526514354889552647176712804127876906314099824740611175687601036198870553101610278213206755369384559423502866980028314272098060626631496712451738186696923264270857776386087425105578312467369288819019084982248948465587440235282004999794591353968797876181089488985202020112870246057392958423422373313293449740005885964726644147389728740016337403337854519390301551857688768177374405959289074214506164313222723620710023339318955924176436209879784177673928627117631423142248798488286752090006827456592045676223705901756143642390797258495769101388709896529214371860855378188180911078807551687075861792864362339338610410580252373932837926064178699825979642356743573510523757143824515290736437620331025553186184486362576064073953390625519762793447235735961268819707600110973544495452955702531319328248295689650376641852674223586499430445984081771911822480796995535043620501712723131744418087284800004261647208846452366913255433620143229068658855657026726008216805405005441330727414540100170981419780999947196297542726676256084351808673635435616754632804981105762070032315417911159412144201216338672150201993389254814752432749185524350848248547780783894346938534434286937596954121598884661716001787346402196912795448095050028113786982389291600548492614913805191351998791465813966563344051486219106396841670543540995540228168209815398206296560162379755540320271415098394926346473304482347199230612916541219297759908293051722495349443003200836563277287103739317151036181012178204508261800400160673324583876535020523308700849956311989368854738087114885306447488258232214398051877813918331665479838562944803339806756731374372780884314405412099619839182059150808115456105272003863475829066712178357842121006113791726354671453275959999415346502101506236970473248038125787276652898368750702473116334150196546304412816961165023813174821225258003995385046276785423951555349423492388815176936430401448798071341022142315992349002434955761516832237338762520541378471735541465469654438493746190788589663194814090710021090515141747806898198005614936147175589966887197242748414528622332203104426316769841946648313139494316373675173022261471132530999051781579498541984956937214774720635494196639789437434490891750660889566517013374111242952619867591965044157537461799940721997143603990447145469113510255834914327119417020555702569072516887343704586369772833810368440432325646137818476175141056139337988863124526999365877729425534543879327227015635141524239225972150500301042757810045216357533791692825405709930772754575656442734734834365955355272729013171754751488734465964662744809734287406821527013031109593836505862008703429728859969997513274439031115025009880387022025992628259972426311110144575764114762653940131615137789000790128028426769613803406828217246626360073950086594033053432976116455042591985774866863056089254347132926268546057770300050470445316070052442668788099478114550258280339954049229011467533485491713755738220756238682081899824388547417090718642798550348356497840495265407657540947071845050085224567744333430939293680942762201634656741771627259460680934570529066716772133959774510365591447006128144788749477083219713970014763379998178754324350642677583707615781975300362259604932256554669110528998203046314600050181001590274225508138690576446370218915964005629628467815830525133246049864857020265163794238274914798293842693389218533543265437542776915778701429232564171005686903535876896999272272066439537932709430386567268941819458638653455139868243444237853229659674512965978328996880590476829313925038061189601097472889398088378553143972674692200679060122063009498486422382815347539539972557038242739792725799398750648059099859371681705721469074484965597980681786304393414815100704599597699635195061593246134716331569988704089592727543823393387665405268601466231960926228966454627414248504117889907012442938150267162022714636029949314302498985892417485230144676385809736508374084495497500458003008117158693052549780015977372736944835269665735418449533854750097987693586401398274558429249839146151887500860450903187049153589271599322919272588944943925766669634948531127321954479604088313354943340593801335672384903154901111538940974801325426146695121269320207787249018284722995667006523313359101453256455654441018521984028134832279235810589455268467696644889597317431045927272587992424126736197513224423571247401431926823020854630290567987747192678474468783089078956322569582935039153184693508236216129249822593835504877875899430112573011345637904845773993191832671203661280681385591423080350199405295441241374745760573636803707404278392646552890424582299793522288096017004790213731097558042391765185662617498156738948095464413253475121787344323887991758384026798127696225696998577224809160905916124801873106729743404229491524653493802918486331494525794816997055155721515323744303042504863212928462204802957024616468204754059124390747328207189923973735363960481374396081512209718152621010460877458236060701648801807466309070814280177734120105205955504886998171802332598596726582261774379326905111633643552055287954266891231274352823984121775840286473668379709122581939990870918299564746213022711219555384628408125869060436173063686459458212027362763638558520111350664916167898740760396292343549785446120684559313610862036773134868552533174395325494180242309289552787998188196469304207050843400113228839456233583787679316145856114548079750234784948450996303568761036727958640028343230889544688412599232921950768290605000283247063203833208711774994946179656285984351412942314198550670933780879441935326441861099665444820031482682092082547698857258422024212938457224212647955277366612598078716794013080665275696179563920261463573230385520945586536736601190675784501664341183087938860650585505349667698981975228688681410156887418887163592865344036238977306908937538909872949840806310015808550429069847814291996687681076428319574542060882374084929022989017669027219124889821393591563087592363716867983510244365903414189763697217195623451201360555030200695484030829165175900570039966009913801936023404170662570528988797855124532581685612664338986836118118144161907717404204264648838122454009864592710726831370043762124532287610894270534452328783740085935768738313921349926259270892902477069103503889562786859876000204380043942544381892744908718479635623279022788579691639146056354037306994432336112407905310094246294190019236913113068365532921312573799269330180372959573801484743496657282291217838202731549987464526544844287351332399539354368858378073859366748458440379400872577513247269474132452639984037042784880477329407492655845385539193725059227790226396822755983335751289944013367567455191593710642738968811895876604545957733321184741177415892817033870687507517542388360405371046833796299235503743544874426247757702223990992786956821170758902485477028810672249538121040749415695216849072250710708053193311472048403542717416944970073364562364624908827832044471824077775906139191887916691937310773374880387460173549098299953564885201599107475657351148562695272565362052811824719362125143443328321190221145341957192661608577545849793158539359376308421683748030471955960988765756138120427179421347003730863819344185416642516191303277122605554994018741395533052584692163167944163377200939128641400951384619117637391322104051726345925403005625768309460389864881717434721119219073027354739164818727481343711503173424641462874620065681437038805931040211547767915706901456838346490282692859929786683453261348393058491800759143347238505225866653341275470071744286018833867324397134219688674223226059306101867084809589562388164212163986375556085135320248843471488370077370367934592199740073641483695813029236664487227335253414286569657133442558094882748912846121816732451307661601793632418376172555216711667834241275250495298196690654540640266426753591167094985696761001655469145350123423613586797205226221878691130381206347256572268334832091577053316227876001786395836755752839972155670058385448317242858394085853487875844616063431821398033635280181044504419169527815697387445398163711921744534244683051544901386869614692779036626992300211407648113432763841630403764108649333044081372574430452128206457026650442926046710698832292401637188908887771692945873834134644516889814652900048238573075862974089878322890905774325431443243626280582091399056533561036766318137313143277855551370172915704961164749372977981188587449126155355649521181126895878870417279931616240736827797604421581611850020043272019392630793376037735934989286370933286404226141593844820190450979501242960020303791395012286551786995985639631149091836193617143818447898863856527035221765146873661065314878866479750948649841841574116411110959105319353260028224923594328456419914604554374482125163091958768175966793235429573422302731962838361992774479198992690583224790332236421604590567748396982708837493802735062521231404940294938301026354650352854540506741702259948781614606306019203719629633281361413351574448642630809920462938585906918632087105431590790174322289960682502645461694958613952769945070826521893223598769740200845116476147156269145838005118083995702701281543167809594143678191313836142676312997872134976676724580573405653007112578922491010872543307059018698203004346492207643696938613372216261689238292277929959051463503962690397937090923344621553085732874591420895266418935887720957460021338602829772756747003198330515349999774501194563070277060009519699469383450639603890688402252621109392480461000968175356088358188112294053169372715142518920146035073965564374424169873764549537596455674560868014887109098705785372909094394363903222495747840046030177404361891515794365266558629328939182219387661480516697986192342127770651898903960705498778730021811716983776703126674978180174762229895450317121456476511517826045321702443525057318441525225385133687452466717752922000694985066924986421759564400844272950214657954600653551657714023171020098755033885473602255276670525308103043725026410382608754014826647628785182936431092200422543999944342050690409575856818243576961276827518131004163600919754967529146324904107582357877601249428884037450567058846853072731243993877168097073491916027307726825923083152883372553532971146657058649818534879410772663144617018110551832563004140100164740108684903771124461062060410127269583823320763314589972395703183866676466063305095992836478701580723346097271415730387212487628872425027728391427252741062078198274676373306027866151319982348064353012977648773610104472624268827755576365224421026968130633792746449234292583174045291481294085665937941628722366215175819921743533857175258465127787628134858273240562248476364178140109984799881165638720363329293463359685412802258713421469254278258344108864979722913280869370944446358679916862768201362097616826100267221315136584185899744010643264229267686041245394761521483341030349050561337389550110960420723308137828971610437381384608172083912646048340316579594322469510483005604585155137739057650934785372353771348429367498716325857996046950271931684910931192789424622976053361264029473002257353841227126512497523297515672438518024820846102391311800595537630210341424482589224015075065162283205571211855754034535712014680990059755156406929684833232613234176959921559280699449521809785297012661884744628359371873864280209325917854550483357458685429673951646899437022785876593884018391230849507667066035169200523226781351135412074920358383419158993566524268444972970138833921483513493568704622315211800986755218482456608980340922205517017259292569008059584960624637029995696665270272114193471465494279185415468052338211861254140222069987894027600278494503600060315118536762278191576367349436575634755581430301946732025145963139408958832588560775423266244332572230221654729971959085865966830518064717682942828452355137101478441974039598691832822695223010462459649053850115504394644123580515441657837536243514826978437975130040312238709374194573209051079061068243917730599751598127313952309631331187107142953903115344000449486728863663894969024534354671720129410398962086228514964984200163711439575708991835862276378222607431098660317652261431980447502422941038804325309737746183569399368870284277695470626435116213120795242625832292408076809546136717035682075744095329210304063044051515416888520956829913680478086088728027994081822108095697308785669353641978348950772575356408316603802631839675948570062644863446172777684079672254370890696093682346088426961783779354134347501771261129383532600433236409443891183301567876743572273152726353384072623009952420439748232308303213633961539910425666317561213508998530195905895840436189652874624198501571710639512150822837421015484055832047648401428988641849374323908241053045666025656728003492560429297569172925012010313743149597745835317583411698741223790643264566225108492048089827756269001391560308959510799201235147149116630650772444977254610872597211526689873476305469061826257944180529443134944028604693845017174943614107763028816404876233758535736934848076533134819255979558688060924728947213337303628918071725815238184703437874088921308878399918770909658831930316322218621919844471960369824221150968534402905060020603178057088090571151458890899862513439270151499492029887890361565531201902779016480239345795921942353117402783388867117045180116971601635095698766373110272247921608372628269004004162436217892761841328486790108820085929597528256610901250046278268306797473438987980649735492479826758750715553347024605272304642968810816223828513505369881051598871596548575063012159463102948565974216559020520987174086307078090887492938359486600800750473924281073515103586040969058720773286405741045532954145849299473819519356418315256620628058502685974081960479286158379301304855130121711868229896489235245600561024033560648851772008529243239466551357900122690056210442701821167760764402044330514078917241292906502756546607975267583764459820363595734684132383560468122496624462984839318439763284836869708875515977518101790123511478616742131816696697327185852317093727669291318508698265551628400170971671839934488375335450418296146814850183961710892174478819517947921675895739031647287415850232603816342130644359311090894621468723259982777141696082215450505065404114397780140898589369143524512051012798704920567946911742412251748598954234866655507587059777051271594027983326659262562366237480136874509337845958389742335459439545580653915453052656388720595230898301349765485578120647900995296017067920821625699160338736684614240877007726434977796956277798643266753720802687058849215674706664743337072367063468670275476608580188406519041982617265236782236950587808809014639896883607647506088015131384762233903397702080368545326033326824513917039042367062974129491911714158875268498735220939065563555460941412874329978818747003009087126058744215637150837823081395271937653479142791718143545647898840860257189493978580291998537336078101486957818817571587601462433004135200240700560720246160296159351754899420520650740321321913001160278709896234633104337141424182554679993027639950493772710589797091104998240304040845596141980464269099782801118936055720673653568008219079196964174678347713724379093426311400298445718918205091261696554777117551386465225683135049752046714440916929655558317537449719704049723877851566347390487474773744236608892018877196439583775538441656819391199877828087621216611851824725674632589476984837484268283086536280054294698151666138476807518704695458673232750111358190048854327289386912826993332428181944365256999566439223370045346370632653102330293965464837774393950586752478620921870756890805181412223259081926861616412299719469947970027064066564241731837824090704978232900016278922304168265707334956742484896213979284280679691787100468287524681953047701129175355726496577898499710299810256177952373275225858025758211935594648969956899568708558493795516721661649051721766803895662343645405287095299744173883858452039969276413670562041571158319050391014851118812614006760920137703759359996225153784313119599692299859797079622103537316247161627671406948044111647649962670165754727029480849147960518508923375727562556866672753119821770942225016422646717658479318649967244101730945549100537955809333320249836840926735281631138302572245870366829527240725282538805790478563455579962369022469793392483558886244773306805989526472611337480193837653357176863059050435346170803704645261525125660136416844987893483351034416512067679754967992637063062416785370413035057267993678749363820216542328248975616989321421311386814719416987396690151088275596113600673982733911695750459936639564483861489728141677610109003442062976935109803420269476639589462008492247075185742309077300905531905642499801335209304806154395254192001090421937861153544913833450798822232511113604396895002368425646972277717215020428702130126002164560457045489691490601264433229142646447071974268463354247429077026736058767583136822558241950727186524800549968513422460239149493740351195360807076471942486113350000432671001283468110939414396758515516392065928343148641037765732157273522722112001464009043222905395928433269187382667521773385901318970800105563405013541029532139807836408020317757906738185807749371528581860747673905033362285201902347724628639607883957016447506794854586779893394584549512100024955257774834706162402844832769827932224249700395966301295566538677813803099140766385591536512602477871832008538865946704450529490072001947595466082684973130111960241951879437851694990548667192930289467823565353012972253206508507897769398117160851840292646453067951558781210363973877799085973477808306580714519016062264752779196563008766875249928268365870697920670622663255502225561584957039006021556866117284846080081066018081212699707740898837990508618000295403583228445818389775707584832115225536486950695184878998149097207604258351643512265702868134139628600643179314810003864198217301789555254350826148723178289273431801697049298434552175565547733541026851304786453493733630132562404490737517140455441633806223191542535771596577539919888777118842645382765337040526042488640839323600206253882390037019555659680785531109535668195637002568739700737862661972140848194304986544570725993572025568995009114098822000850249145374368025406100456090682311690156434712329336498004580075616340833883758105236851795235577985738108170217354245696311378418906353908582855271325719899114046025561879692718768803077875627667326391868994917930433099515535358699249595063871874919583513899637537293988708492089585623149442335594751756152123461937066549468370797212069013153325219875568111197080477302477533400767076074216795343304760248276129171152679808346829919042161943486387653939107092720970659835876230132130416582597044586824565965672746208125814589951669161596581429316917364171829908830332061430421588236998551995027694081231470735859706980972735879730812811083687834341680583842305222825770044621002719634540894652859962790186036425924899932491782593694257074610613391886420087174588870802867985053587750739688117710597917892766891517137902617340584020701562512627659207572052044783432015899715155279462803921953170742874578897961271815184320527813138313680639499741946416166865207223136328191288866766973454581272588660856106546067902479840637555474666306568987325715450052322425737535915590128569823773588349193534605881459422004554547755070483862398669572036703615532332369895205154580176372568414877904832395354335658887689678604557229484899501615804230080298991137083183895648864161832418748564032261510728410257431929685449755677313502475760337355217352084312319904741599573775066944356478949867249711864789851829629701884766376355476843370899487178133811691897688861251259194336211538113439439580085720859736210757893729410205576299785897151472395186782669724807326605166704907920355989070238903176927068099134683783599903983257355494164499886961399446368381270169053652998869319285489002999741895537704659277167736477958013284963846968913853038318174351278453691278551051267568005773686445701483228244784022958220278885253088648727987012579914475415114734032335259787202117739688869681482821701333092666549272382399874672586872723096404925654535497623549613279039877849356406781495097071307102657596846583427208512034081299669640334265364128428923712141831929019503119308027632857222347250169059106954773942686470732353526782122192012631516603868985768668239445074002755965527491100988568319661572548037474033027399620375386314224635433891127706916155011640587475416719322096440946408085276084747306361808680621153771743353562884825001604392225541606120035790929104291694417649275644058053931872962049512585607945558373645956458927715999274529614862841863987912848428678059360653507898128769713196680541366536263600787185504051327879899906996157930389543971608666580572228876532708756242611173814799790924335319472361307129175915562008239738779983663941608564458656840396767078174557852360946097605896884100046956965438459652255215501908154350969348213065107641301185649049145406237738691527528958889150644889538429374706475023129060204411322627287027475325761486979166881058965755489264239394116494036271924034236748159469534528277493510168960547844570495950040420935539077594942967293983964180155020904473908729099743948085356325500762008550906312091002772392458805731377100846868757189906359956071223762888949523653905297913459259804093661116475969721769505842809392507436042258479474058269750786822056639573083543147722983537086111684870187656788855425970046459575893457249606964413105461423828274274228653335118702212251616131158500911736761041914731670894133023654268651959339408201001049274522388585238188455916487277976743120771190927132300699708909069178546399777502701104300618795987014058874236078531848769942708953056275864553406085886794086080892831731990443273721674333622241853951682453299129710781092844999116956943409861078854631716760632631909292461989687546369945413017925413608938744911753361138570987980608087028736191607565400696207382528963876658403542432681170771215785264679295717033774330602841162572726972192850185523164616977079036995061160821711199014024149482708130494017831442923405199443348237834297522288008464220101817035456341288913466656954593508746253713330316769184255291285563723690671077156139054174981613458518757903535417584734573116057697336631029731511830439880439748987725448183675756711867144002675746995261875375466476382233308141760553726820969266340532628054792867968815163928355065673382197290890036653543526892808505093121797959938237277022198221436565663042797669957335322541605480387895949045651553983461511414958750903061107846610844670111621221699258726576210723525799691836059330089783859895526241434263470691299819219580197322226952152799202121433913572896270795975574905920880222581630707830044360796197661478576003860405490946718518071006833558048525658941439282476346379125458605497359704284329568691227703800506016072813746256929352242381936107307737911513958567759148881255931244744227698847382001998334661102344794013551513204328823644170483985236907829729001639129924608482349322235957731877874964410818269828513548835511278552519219127572922200834661492780485199231370859774100989942974816790685652356544131489814281195949195559423784844234579627691763493014414728669325243430554075144521329875339388746390808050264433351085445665319454652367547508406284264957108448088181277696662245075056008334845245827541379942533541440416593210228508523885473887674681898513632842023913858391269756008926861422999190937145892217341082046414984702472599850062394764284417912461588853136881547709414974272224223511047735721843006033398982843234282356035816579346231500548621011015794686733550994053362016361169366858157962751631148093649694507627695521547925216877321843619651331920326136088403939957012870621864397807067371798709657027445011282375300788029403437701467147424678582991481336470398492903577989204291642319095396048045002828836803301740351309180468487913793412885526574210586178710410970385831148783796229814763324740476280027525964449390850844784040682707703148880907777944976971105970700678543278394341928775240017631985778841388480147465868506261331102132485552088965619860137102933500832081133779656923208161174814690174013956220465202105904695096541492656919431711975018905197120687179836238357375336065024460706787921523838073326300130238354095000925506830886561371543527463679714932443193868226326068500116185709477455878858363433455129537577609342940155584666413918858832482190819429134746875406317871599353785261834633802106949982928450345940205572510053682181639738992863729263337001737104331580944209441591233859389142457972095196351309093321134129758766251690995410826637379358208635769549309962315854469067603963593068221616455792287050664745930403571523301475133209787561757321179963035860836839817834998598125333640267150794142430574197910142378898747960465617636369973987623772725323048278366811698401231916668269240654621666136878074259650004935359860235345569179917835270682278104317591845197023339808023299615185112085057121111277020729479363663370926596970314295488367560233314455103083675190443832460942590289086171974548237527534128464234852808577343765418474225430807704846341901282381679655818208953130365652258282360919543919596329180569734514451800212231397812292243373341273009218583541346934234082492847757773136004565875314434635666252588425160293613820100504541021419809327081812275089883304359607597612190613020329689592740149365113737594711153409098246061139911129841097227313136352596441649222685878418348407657639095225066636123628731278727218974484284632607544519464960707321077389289460187508234046910784925272289739770477822316276629384240771718022174904909338142596571343264269933541375281174059501410720252908161704039549243443975040656934455974744192264154845306644962144838684998332583194639195867716064909630625300481489980763578905618344769087281392504888075268512470306122463568246183295228877030715335997119630698546018327327686653263483225246384699473771534619597880730492915066627997910314905987608432393253896952957764042007089356651903598617893156332232698915944193732024382405320747317550909158148409613265079908774659405536617875912357561240039027906749271766880057248754644268590620282974535903629787707183603769032426149831932273186384855518290269088300705771168744168606523277779775127596250306483872394782880638774642963556191961363395206877444829803124790377179876169515380092613333824610970377457545121557434040146014645097533746044299192822818562605384601963715622997828191707741463916150239278983264163864901402194971318007967757152955115361598969430719120276599229008723019911805838736009350022459796285621217447273474491258379672390708850418994021589214664526908558046120379003021210740965779827670771673842347494465149642893575046023446489033108124593880252477796254612633621634040836212463701731595022699860043816755184882398498833297236057540161703631027253205888322055388362789377634319567910856727124724418318167839544303702321593645561418844340540433661442438609180895964862730401084537976755185831106438636080739919731939758636879801902933281043999759391363758258799508623455418221035098160594466491364469983203791261724294071824084429502317253262084557559813216007404980879975486023512548792860909530773174905034025426406169121499394803970044086879926830713826893202396891934394627951651515541668148894539516000115202083112022203140720633095632244576942851970373530734106232285648231649958439209325257094830220704950679702083193247791790626940106426433029523326247821762969936148636267776205563764595879477524481461559933759144861199602054581607054531674757258359113909237166991774720515205063425878965030481932692182139933970272745746962278062758240682927634260588250886996479226676415196664179720589879256692342794421026260217469267327140934771230622604240021914453431878955866809912550248647899034547870042584056305461592780228528780359526125255141392168346142587544284332102672116430788750492050510894917431722505510901912831090121612518793491495643522812061337692054449183147371478376684617750196103049609474499226854294498523014159895720093754948632845267256903506348797440023309602152607069664991419754631682075295968371929114045679360080813414776752281002393114344773476264661270889882963784029741985172512218877837332331692294342959267517600639410688320339336104176689152013762228784149111967967303590939205086293402956479839247334694080894865082580811381689457062874678582117008683152867046406857548858619670704426487336312788324058053269625186677659041692323734884854774802586327875852569956099607535175775025000522876376259793598334861187123588519804263486008967368267282804381406418330306908709796862198028636871751204056563399232971310552786232332921445314221324727364119110634221890824724548351301370033608859623184936377747480045895837837202704785467028267315898995826652914570155951673999176441567890640143217204938517487765937403088756370230365181161440350181970684447666152254783050421300253667446758250413275258990781586698327771952321563052504275741852602612768642344383645255080789718219540397672014224714958973130190303608852262104718816484189229536333846304420897482829668376495698933823788248856394119017961761424196137341430765294121133585356409562912098874177619705678863842700834485661105097116797151024345587078978342481706274487585727994217900972517793871248303262133457346593316843003381425105918939114252913100256015246369092757130494696228184269900431586189315152272051748181992496525960737826768393895024554038035067192169351948967369090433867843750942829513217409077136490851985343990838400129903965376820037253789104745220486236156512013095399799477666207507041774699680671099653364510110104219409897512148616215573599116485149178304944466603720534550632573341644444642706679468422523941498824537876682335726090048127779742420496157168447732339445514379111926997923555611290046615143797338610316127148561264754231178971955771937518011862040211400452580392588899513713753049149085629537701490873939140895193823831508286935952972140679043757786500148527558393001779186290259223567028219259200838114857396419856946103625038324979294811049546019063822853945478314539335040919114770436520362281671999191536523987769368017465899419170639173155359215669935186435404060113106726727129399113486085757590436127916466103656944779756986659853662015490393286182412092685565397617738958240046940080279429494960618480876704372821208816049067148068804216913888176264192072340766837353422436186656180264664617798754784700130764337453092214328855287418593595994053747256913751916413448573970452890753748904154612116791899972645211902596895894311355259375969372810969941453317375209679957541950723858577296975907813787362973234220547766453095695094239973327814089675397949365691452642593883295682344996060304289172327074031475896098324544273863049427595114430541371448686081848242888056633929726540917818027503924174359437205622079326365234129446711532123461793365712699678037759016350608705698153860117355256538479961158798052546816862772222317548994380931824055248604939887776913534701659308250970203290275695734064690705383260650059286234050271589878492626007509241166383372737669278164824236128679695612342352611120657952186963056678320286383467137421887813753465185719064284938235989933513181600457896424479452952119765073742788676202323054693763549982584944926947206244459196867476813124396500046976866069504806980210550364278108823940786662315234604864467651525491261171779850598743639245258237505091368854718564876855881935325147413460493841244871341843648514636691155232135615604471668704458172207978598174130867192014989070906830989696669975359603899699036286976070904619900934194544727034269289630754408417727546694701341466877590337189252499051075613676270221502206938624706996519929930215688925567574680799574309979719841365243895089062865376907416895356529616576586002750810469432688325543641328677837690149058921167029002876316758676874419003479739753222224858398470425391421428815871244527981411233569256845104637165833930904929769958436175762352374229408602238485596998969185015664888104639472911796208546214680454230237826885811101034359245827401851291144717289865958349277888393788430510794806208115294461300926229275336541690000730416165755104939190320714899018907671981984319629112620805535102930155963193314553499185091627061203636106830531309801212608654826605085330561106058279066136807387650650171096156411791339087898501805421519346021441014924306099349785943281358855784625577385500929894571644714158841222582823965618712971965435943934180202573345564784481737531821192293008040858385026987381445465569076710295737590418173377767430004532814930770129591859937125524277034529055623305238022616250416446787691246793347560495172857169775386226170662968282826894698944211696581866547820485228015853042209038750606172906607606657950543892983481645087141836372496047071687949613594084502948287223084878181503749711916317974768484741496102587362991743572546830503437442783737103537721018057123359688131927459087660251367765116708608975144718715601758023157008079165994586932372340052728891370780356177800104379242377548410364043034737259006921683004933798084466559108603187596153677029159314408289718328643034286276874558333609644046046136400458326953863140822208453132593217879542170441429667054872109568781794879856692578211838850226591649605270108842022205764130788007589467302756337644776145159539052457910322444607620832296156237700514801166932862993048301592918371140745206402124406856334881543617121596942833031701826125376864180979363615665383396618498169727651578647912667755350342896215193758248520895999668520237475846051195325863550782597154399248964606563080666334294963181855386155532088826339614634146213503250217879692532449200852170222323162914925288391982537543888389165067764922022402835455161925983962773104596215921159097392332869288952954256443246023412208088846765383121322445276471785536003075049219430659937735586819859158639154543636540170076042260523323464111727195509812454682460335324654092118367230083003468197052136758077483106627991548361585663008832160037204855954260047798458243885732330726790985686829714211444010619764877448046485733689988129787569357773224837584226397390693729537155831863635424310934482252808116380803169354884098596312225694667099676716833456157714435113799783250691769421937791750813525296768475613071197055997046364555353701536560105596212019421321869855298607566553537363107207120922260915125147449405679353886847608085635403873501740611330399031251267624484587286052151849837938904121258262286817616975350339849643016029158959045076152711624351618178107081158770754778597210681974218354439366928316018007226968673967354212779381308755988313662103073974802657340730952269072265860913271971575471925602329676069143961027395374278729302560479302179239394532396747150323610671324456483231044809298754980998081232248171661234444988487532979099235081273510496102221531852265449994700691681757415030832122441051029890030146100656880522818638751323374178949716138477551742446476521138160576895585123641253796534542339488592711996957899325428249476495906857528248813573832473721689824832029328953320059121974467641620434312718743608973097375231496700189834761181088616279758766208241712471899298766522231678838684953691019699150671578180324520430706963398480523295898394769916490092380264630703712136783069155193070557165875627187650360526871510375641051508846008316302012347359539499353294313345191966937408832110430082710971987527086556858543553410992924229952792183125031345497686821388910727146836547297823668839749888090081626883389735846376084556432895426099108602327475696336259695612305447608805258204261609828433430895267629977905845603471856620752022987162539819336529785311934366296399141804497502772501769031215825946607575561946483950459100737424825464555558589701613707749852072446860442795516408696580922075234839601498701740554275343979666314473139063713218160107617641755644433545411897160536081940474767895526449929373244727946630247676028803421157255085231230231905001609221606216635457495740882061378573553255401913469569365744249007900564580573113421294068644800592696716574859512628173541647767855127518555114922239354468316834531797560779258706962202114143172720470017714073558401958276889503222527018395496488861487381547053812211800765736786813822792592080297656485164181888350170413325622344952441412251540731464287582664289416159181400950589788472401706928893134242413465995870943809785493437837564392387859544850335817839514418825931084276927097986258210496624585737004419660963219446294591106509909101052554664546130535043767532855876834175431142005590478668954823802610180261102802308063877884941319290443328425051053914206903257118348734405755953682042925830769587118292610601034459038426989097198526556873413804796833388892255973824331221017712094806908376476106747910759662166021022857914609391907992208860421687388800801359690214320353791534129057009949690170243630118311885729297842146051152230506189395338136659946799811965629084667634447351792641773904959044240930439106633589505182471291128890857094037727019762439392728500434449445041290278486341076138313385825638305237231946486386061183725441707672435622776643127924139568989403985086449330912277389146305851415282954443955289508019865833201303475614280829860737916350808207064704038688772305399638577917835115743369502713935276276938452035500148988339793286936153268659111977593478943039223991888786910603734374202349426185623386071339254543784295552292255685883310568791430501299069895227001250239187544628740075337482698225323125973210877305567711546068823231478022547482519579430262464181882910714868939466370960082949995904400329588159755172423299066802159628783917307279115407849277963626137263339492020535160382999843605938108290110643575521377224056319277069203702653339704893862107290314949372027120786773969290125772847119471537505664620429163796125860466637864462971126077968571887418161452182285387950563529996476727445611078467172562459144712228795654575033963919634956679707744115263741097970438164829324350454730729131052220428778150180651770566135903509130472381540843874811656373033045240788145257253015831422680470440798526635603795328132594604193646215583230419800098414183117157796199639868893787424913765022071137225850771878418998940701067013221077334097417420198840752940437453289460871987814538047502261939452871711090120064174791209731203928593184360600029361356285047066368140311892010788191786926624231616460461098562918530305450967510390971350197500683255633020534286266372403202966529769784647486018649769810517410514955726026999673225423260228386217032468767179322182253958323804310375746142881104729832708389970481817840842628558765205059764283076687231361514312113706279840814788534561766792469287421443326042543945740395020335287613436915249850183468841703431333655238158052002085585755148826517821167371920990817556326411363810848313460228599508967218539194580649878328246801133312275460314022121937768889707897361604254361031020696578736947867982503429594382806362910686568816495018432728889606273171768142478374926564401090705445526930131068468142345652184607163508943815657615177099572470667516874400248179057864611791461049584487857889289415286450601592244258312264448328314244048869363605797254235130352505673603594469417156097898678587091876659494975192698646630996825499891653402362049791581919888712491507974276306224326288530020574524766166205555821931092434292154585769776763902814079852821866310342171199651771574639447041914318729935576794417273170368689626718028250782999352733639775934199957717548733157219360605857147969865311512919512888777826682307239585511215239790021317854933566476641752893768360189115333604062915174984607262682236385280416904897017367894196617811983805525795011630796462384689316071088220091758856262285389342622272969454594091036767484444799278985363403783768222926175593573325520084772523984531895246119646162900983985792036819121309363403724780189714817251692745036061992858854115152834816223609666650289826036487308480714372255616826699809724162081079789767214840561715832564585058087763404957616514663146525119995836951445021275144280107709815621117115739272690182877136014934294042092584988712283422543937516850381710291549347723967946905134887749198819250482661658837463744890933269529314358126078911654260066400408267290880221540447551852877610956686636630431859822909856650377109979433315235640779377525704404746487561701540936168466050024658696039641847155997212647767346169086892864630161132112288660576136714623297701347774935758375937932878094026874161801102718246535761866409048258087332654660016810966300676897091083427045964960275800997804987312045986780357999907350728220830919451028546038213402572706281035208960034492503141702814704603117400469625022503864657263136991432515425407792747885336457947288262173810410581741428964078338880615134691392607361712264248297434994294485756175162386152296698385454321225725744122322882651561287096298606757764769281589545685457089355107639933150035698895856382293703570588599519145150210811818342416126264521762234654935902654884924614879288123373034996273464707395310284127102028589091048597815626169872220374148528484071616421554079154305321403619896675016800948039128146613727029808538328887620392595386820691313131548382253043609175961738825319754497554605811631628629040359916444418106116599347936666702995598200124764134637311220434290601367319843097946393467658231499012848549538146823492184793888377156304498719385680734232948345049131688034599242334690615077075644493974568407936611093395504781282643779607877773732407899879814132818391480672208359218091497527987891451009522738395643819401484219881106695220647869978153280344071666621791885560334787772817633996203993169366922185155537118697468583762139970560243847845095787902132691874052510609562886801019947838971154160729580004735739099806956070272050040577259113990042061541573944177056342204894507214780949800969838360934788973993636504433398347534166211448263274933864666125748816286910868153158463621417137192472263194584275753173858442888122236445443755607123248729581206660075095385226923503597597280633996144766460673695331909576559700133131972931999687585797856895933017574579453876955732070121759220358552512872741144179809399160488669750547729336605908710258511522099752203913394473610570970216821389495267572406158168804713498181029747387930907854893008475026651648568999908921149912392891434192830108299003146491714179118901540031119435243902471536660220053806634362133485885646242322084172716048338982425854008090895561711485010518813493275549785319165596521201303983539008478467410153128823976502053360678097150394638555319669370311583036587812643308650277848235218221583305436050287975734644946906918408068355661886511210566363082493018642430149591084577590462767543135463920287625016064983488547076953249536695120050880713476041539369311367509685681024089320293133330587414722749094139498676592148054041759905460371733356554992494581244518935579182350533849098783175859247787467092391740140070915089878656213582832768560034048305196793511026012239284171279284097658361203271683183117797432174174102828489359616742222236247099162636169817138500463674076470879811466196596317993846038263249642047697795065379944092649567116662290574110881836556427720839290729290877049445156512764286245143035398957395692860188048851244730420470173817334690642048934860795745315778758894230316170673059880369138598027912118749108499329984039668890666763598894379076646506794424876693216606436643081731399111872075288529524501746999042147180383943188997637500466629900466671182561157031683952305216103571156337915180194162364474152592469697872818535768380334327695420006441981532779387450266061783912635757445118240816636084219827243238442039363792747994899320523394139930880358471334975274757772820066446137417159849077136615928460705305020108953068819417406779515612799964359243775876396388653755871355123937111194006688527585203313510319974659358232123859257877931301383903686318790270030247260737360789028808034560108491320197863592527779952107159525038224131160448652107488457805510105973518596696750863228045921193999236580120880405501086092262938896937634885593633952905413400549829493021050456991226803905933816727644796825824506712223310303811764574017311017959427160062319825857708361998978261163626186058797443104486333091765407944252226831860700965520919266910751989664099368076512719577761799589866674285720694278233661400398071206115212949850611595149461911338953054379409252951625774157154505037435450405712760070373065744007202536260393894189492496576424299402863101887710204775816627151902540090356553573832968086006778770306281497668971200374651252159126501390948110575197653524115359241414256664975140185314093292362693397183374910311734373738509629244305906846841746757108573903364397775858285136862510833095501004380478970388489167968838433306110549460607457611275754968512359350846664327870195735355407167782058798187196051316794490156360505496113758740695559915143877311965600532180064581626509155133693982766093222148395060119592212539326586552588223028300441568657730419185909156600061496167942658256510946457348648204339651838678525583772103915208742389908616870626016036266303560026925329490617575168832108189500636430132217287308752387339214658838363001027725137906807562926323692426631715023634843365576500483278181150717954321983836122323203978954085901678149158774131607451761595606980935936170539347551686294864075365798542867539493746039503984352942247312978548200889010809274145784210492764109637630479404098229957800324324776955630669690134774296907179658376806364201049624395268335999219867869157768836852178815650064778185670541432291873065011832730485607907836204335995154012348357199151369501290128469629464846347688842682802623109804791584042488058597442754139765629607878290660963216469141636615860683016525860362836521593794648587464629380462388860337849251853787040312824247536538996948765443313959123007666558775303237179332477316747366534715056313021721572707462687023990634400494737380171424740411827822744184050829011271521062476710079998604284916016284494723279469816538545570056363414023232050088369943442693511694319921054033561382737406730255436732359693038022328418031889326783276271918358161976894040490722186591214254054352925638037363405937335276094319358290913856109758843891151886694765790376661736251190707656867981544721174204054349893692330316091334309947526350319216462196399965547105583361799013759480364741692858563923799986710510263537177952350022422493898065257332879162764297264927292122828235702353875672111916279088299391977548181362820330517229639456514919075771455862341015775568115425830994712689456370347841700282670681313330819294782926170946937844832668201518271304664375249805975908337140072877123644565611357694999144111193222544260340783054578488705085192539292451683490172409286775284647974225940532996999874120908935834700413078985087646236534065664202305389006785036018799260198072561291953200673894219848521488596109885325163122458556319960703462795322803394159249276637068889091907576643482375490659807558203202918318073013689400456474887759736143536699219320716650534899551109052880519114320110788527413330723037003346417883893667893563471698492788676050468552328943922431271716633568804574408290116328691351820710766280872466607290977692276793379827176191850385338512216962716095306885885916969403284343690123111241869531997046979626146284118461316051273183895053072217895507946636364870498352107123091631726484721275591709104766209389678741311115436462696902414442040961000195193716756374403489334235267106115235850445179933492944671792181064680314062087036519474695214257453540799755227547046338417664465182996516367613033111658850101288529561766480385733451060837806646647838696087910305457308933778332321708650854236654244536635639814249772813919394675694006276721289484245517381820858477589682882847831992315769998186118323479415601959574007530413670666489144685300704082697510289572694437184180298867285701699927671936706410298442570513111197401322210611797981643380171172821115031275989561041946092558910069564686252448259785908612255574962321358059884656434097989068779417279943119538330771433407288692276534952533498403183849177300162818462210186636567233686612041066332429671980004204699202077641825680035353949533610020417982100157084232959489902080651794607040032925914558164289729038971485357546153251854039899094341110079339903584308464217988147931313055948356258891856667167250949063945592690611864118854234925676763231484852628058659462462914576105107467562209406915835592721669567936932933705003427136050752320082399184925304683087387368617070857530616855856546621636165319543741109504057447564137368365887583879224088425695982876403360440188032241446564492934787781270229672002797722999685956598139695166277058066342369278989320297641164628471786118837646550077698577855383688161345127589783999436685913593105782391098218893048428505764984380130401842968838289102569019648738425328398245914271397680462265184125360072540658555452366022647682006172559047114754123765505071291747001629469610907711145665136903215879500543312568579313935757361754275165951849988667738370604026052236264212505659890139268539211671431949190290100050266265700207903526833823968977070090051901262424805860413006583569295563202901607920996538102060622308726893888306439140038025838739864698335990169645034864834046789594320683630698318024359428419232509583382672685170798649367029108620985293610211979550179414359603453993032881479206469770335907385220474068738663234209201484536726206091451655744272181491096941366336562147307027788950072071143502866608821065697692084146281389949091443166504124399449121217541286300326025167873577279640315849378453316878863946527559535047741132299479643431962170922508386661724179358138281342425174984772300505424802438939832511423267515334439147407277036896121182363961289178951220197293362037762368764657515709643417287570373876713108317122719040523583406910636780360230129337058572195287908288881135926498309756074495641398274694236414976891452140372319783349856875010093237228355130484142178901350530366533315661043541671326124472147144032159206045609410779836830288787561337263518985041649005595223510272449666269597576872892675215036459471221491934342278267429918319933419185832239325688986804700219077187012305940753439920867454060345609581985814683640786211290864843456902662940448971107200877022966532888119700022991364650419756060450028383737595053306694034916917943139021277825586021629082064796671504557016743435655724983699105129809154481063768605698321040798583056966974027080427928777711546209127573268945210829611932507338726765737238128636457007723535629896169486240035621963054239658620069873567539655432485853616063831201040100202847736522836836769243975371591300559409901079856016566879211366959858954275853972343407583196550979091532843200424015755586186134521464739734712048441334113166382971618583204650109661170010541695210574215298352171905415677390452442740612010238263891795030328010014508813421414433493124994599472747447263320978776882213816522280657517199999154630360928098490446789300332154463291641763977290041934243714063531002186870008491786388675840726525894547860938433489334247110532687128682052194551559215192289221052822520242585880369221028307642191363725781038135806059251304835250774804069669340311028563095079081240537530215829977933978624345776974417477225455285413122108983081877317978307635486058552183868979446534558047872171986223736023760184841179727768345385061221985852230801640337943314552299924503911930802836431536502030250814762284619865338296443438072898491714527201714247017130077847875664250913917692169112682051453608204538160416472707159417210768599398956995276840971038386134955765494168742628215119574728632509851972074040068107485091513097248069284916315906880485386637458261348877890093244336770347134923636741624222501356879222045364954912621391599959398162096925448050244520613513304298528821265461709476676839430176401332714092014277433975281921154398166711730303892623464679744708562988137938705716311589084208510290303400149889855070351475200076683786706239829050435007260205265611675671765861430995614136582273746726911383724651035502541242599662993028265554660986156681708470365714111905252479031250248762165768975693055841466688778091580946316759079212142002439519676089501193534284227566990235087729404829619277187977124362484763922254477468267353669200080914850930598844478909499099404068108699723525802594076575497294204103713008789852978111269579945500571500621649657947730529460424782312467912135895796212948836365590674733442601262528237703305912420943548029672106478607184502593395531412167305752138849587184515006694184548956870444383417044336493490292605380960972279378000490502680369002834679963345823964073761456794018638722674840293744851469360545762953182307218659690855843009369472797866631302847344811853627341989986338161913348366672405056250602792879303035620557092407491107081576973323475025537903854532627353539909760266475746599738856641719295336533604420704247562242247418871925046972449149501341288249920694301203880383341750164329318112025686482090601070464726158964053361153740587224962508225607821457436432358004623090224038758150448564655473662310201776961408698792072738588892754204491534549541440098243252318136867919356731992475166889859699348960195172240533467783415408195588173432543330089540765822029963863791937160068460864634173428587872628215617745454017518845335694924785581632875678531762228332439256893826119940184201900667866076092685583488804011781083078411770891097383116521239341305816519593985487340397757076650805093466797766034454861954828681051334740390183661081558278833961006745306965436247799697642704587403616922839245188942788174013064941058001108481263246621276235178936241664430987908161965856678151031906920184638060496556990063112826211566864345510910461207884024694294306885776145386047168064078946415352854824621442770104885778496284979970854378005253273953611472839561585358260289332696670669233043205379967776980123763533494596616952136513729715870195261749700282264098425820220858012201740836629522260092522719813793821836701766167743687251057348301876443384624580120755564004104115014711829773478131535874489897235655642769093044369876088393529507200207085542457622352093661866997901344547707828144730748080271376908147053851247752523502389021725452365075504123402303258512125237650550885679457202330881958205087965783263696480245574891224757205942173493033829998238422643468772762858640753874498130811671120642872697294731636328495444625234459311204179051341533256144755045387875226728036219134371489601544901949769323201843440313590558412705025988608679811192921391258323166496486080593969648796838115095886295763019111560204377929957521404958097474290560969118808099966840306559759603844115690718371507298522342017498601379442444028655419005075434305684156071190844198241853511746287497415882520182223399540307987525554518531662357476986199277954433559264211337435914399188935740555816832954661788644110044561416454932596024829688243890744430767595505004678517804509551578330818990634171226603526523522878950634800040115065489772953423035883725203641163384949008322950462515401524472614754935029496669308038770940049091252076298661625956464601632924719133679226067754525641989086255365363402235790340192294891110252358602233903765050503161243022959325230745599335031668768137566937473488949857374187185142289210885255622829979136967259229511161132799973804235956884868763041183368421992186999770255887287609010650604867918886931832826396072630599302052683164728723974578305047653589952912875119186542293406171976800594272355055012211282828101848663573516990207823683667979915138175552126139712886940745315173908503861448789063238282389280560818446379125937788496457493866432923032580884803921999888985549380634655300435736088863535215381163881444010515039496929862989941903266850635585592676761127600794641385390245112129763840414026262591458953977933588725553312081374542222101527867586398808457449659066030583468397111106039777678155927799857047839027250549898631931697863222142447866579937582755790210172249568050015576255171588931264050534520403668991441530198681276522195811331025681961346435530049054387329895293070238976201079414368987886296415738862047195470448598292789298450336471622581675722606833471318305414254602020872110056012650803870609382374442751786964441297418847947636803120473975929965935004392420549310055689395371217233309891878883629202789737810319054236794969894731126567071341978875822245859348400253451089359198576667594718037593069023422279016168571917768916982107301383620971351197534817034907943342832268908635072793148135198430400028938801088852782368754531904830587127725814864964515269453429824662413538703787743489396570327763198778759548554069776538419422611731786536049071435157696646734509113013649641184193035877951677655547337073298571635934559787965336854644956499670788919815527916921504078598963792776990527713818351918920271083859737586306285430142147150498263338722864947139594609897796941284085719720730641016234547969745947185516905313047345661704264484064037496100614668628513978382166608340512880519806240857593426972144056282493784410868380536871815830516274542003423732729152971729829504402064428042858065957905061016757198826942136191991609706695699228607114502264680248583750326684374712471869313092482297034467328974305999065423596424081836551938281949960713313066866173101169050336322023563888212606894819665820743490407628824295566556807171929836151709533424665751305913577842070519247142587709139582273637008887022686774946971420848803398991432962495229399564459330472379549423545701966422107298923117917127830122868226649110901492892407965246494780958059465473890429210311001311790235938972804357710160117072491587315122139046126853276786042952410499439630902959302359083041575612838089879077886009748550730239285803549113837296499117441817291853559264916147579276275929540887149732375108654045432141600593706548254666744527461454953804872009402107965577223628308672435926039339156440071188069430580108312737707138673081090268965714772081925827283695995640943903224452062282832118044498072207732082811804874590069912731056200685601293989508455231791181547052272165602724163409549095802656626657186172216798815105632846646167653815711363052515859328348091301733441257408011898720855975969816453031341045703419378420080926787656507191237232153897310280551298896413190762531577630555391465187070772674602663069724136108945705585100687182759901828437203607487571499356133606958034661784840485881118057580405239348588170225958691255925660218211033906423731247631251487859409199482774493724970873850104359009303193637912129276511988394624138724692611698801755626359759361297313556310926630615224811702745333878722188331077459708719738075671691861009999372442372984350935933140851632300273471542671598404761766534360137264609948307575075190945789798026466564543937564822605181078533702194444058916164063499471052381789713053972234810918888533926004935873181286926991717128629961164836803044524921520948400750118717981531930463914616272540235404405653508350186889371652364653785302621193014000636528500486753155876560100990658882999594006396186152277692250016729774956136786080100948396650212917179223443340891605286528214840271392688435910014482572920918826640249268384900233897579049313860831229442844591019377759939655163938229853605972440526981655315607534955799163138417940259533304653901263160223895756550199188114374570442165663209294887987526723676762721870252626782941280086450380787754689768575174063948213307040652759569175015877987470813121807633940398926410440060015491390483046378808905850337734456817231144047431892249634866802024669769856020987936824817607103945137107294522166608698543712709782527873630896668972639306252968182227628907765713056207447751427488971872952284822621537640241219112998341954146138708782420063846919442880730079093108268986830944093807695612798976523889974717283476040922590650667189826566475880370876876448730044654063510807074143215291653502086157380213196710615085544988970260490595193034494812416622425637349416334070491472872403615866329525474214706976103392690712288922872885033697794973971716527506274477650034257595412562734260435257857372528376130184965936077552651527395318996838454811803847390712826904115197084909396347614298662836967495984511248568278625260636630273902522330328564662190400832591042537105976039098480487426994403489227759041228593492079800496129675439375774421614810855584206381980040473594743555318033927435790094280853784091565543766160157743800516588800827248050378910546527204480485579638094865180285006729144620874732291992304601629562718727763263400151433602901550287917412740022654057074175603217141369410484323881924581619851344855743521169957533051894890675102426323718796715972637984495551758406025484612619095656857045526777404058151312692784885494481318492959967766784527504966713766333598509441467097750930034315359575942581396898442722661593174688278353074701889692090537196085838495589467058458816408288606971585271470243981231058307363867226086867433159409131206791686638850135086187761081853703044738271605432982705783725447751826984652689327236712183241312259647500552467663803677469945760073585788870208466965243822641943958815672227450042219609500129979267392077679163563056251018949192509130651863364513593138667078043630949771478267171905417230387460766434791615650070518699585253269108187419043914935256227830295120462495684774080032817377260729404620641544654157920422732093281856768114016075488730673643486405412571442373080335896966498375068227262584412407497363561404490877173715111785753842796643211027875256648944666257663335313906548912061596946598759371788006958427496961907523559476650247123231203434583960616524963262575572900512537620278124512479650841688643949465004460839058228102656593868558508091700979043757867232657436129256344184491473857702338205362613182335314197396611408930311767328676106707639911425974279054945479492764947948819496531073939425549279151366306092356927478190764950114810240397904473974766234230596375431655592529552951470651566013656395107082984351878873226354092845957504368715240661094654177332198202987937799511627068328760346157324378110456665265989323620970959795249735921403483889569771433448483435353036354712703878534407719664579041229664745320624864015267723110980500847436578075185854564426040338219265107013201611207781004357544709225784221735498766147798141435764711448158231133233976836645482412620977195268165900104914455135627822335838390362982905800732521985273668674563274767182650271374907617918979689675758718457070384127983956590673168432954608080820789946439624815222087170597430532519603207678626365100416105060938140605227290417658793205301737644778304974816040672977861196907933184012967742608986405003837770813488306783079182836131438088447900631990006126109639429904474766337257718375063682986722426388844628360392983258845401033265391001151964127557221258485043614094146550213041733662820175218495286137332425750865566000682752455983957685386690499819105257513857925775566372313901891042743507429462164230388950384722262046672670061255046004271853706426085702787855462372907349891987582770626313981649685850521382274517375885323652920221949857411412295744460624370989111466427575848017561177464478603449848170692381166887877204728258871064166880456175320031155913159336930656099714013744239595961471358412943153898402381778980978091930496472475720214924470308184895961203106553042540020815780218177926859393719762266661219254974428058857231289986502667584328758410696932858566485078265429535428348990746318734753129485463029271451620127082586822385663799070531371724058641254415217146175832286423350834605157801150795349712038004903226774023539206358099950230606905859346868745287874530097380952298093326782739681835526410027624429721855813353323353505012152600385992082869471567329567759441671270579437617774027820826180565897689060175719529282052907661137741106500681706948381146578930958874485734249203850383357838735096591818921281241911034875749499804134583250351303557533518943451388058013520819456340341823283356757734505978142191176713665121487392139061271783993505812010917572281349415287315439582453355482649460774670918484850051919394368069684720901500837514458717760322825648625042957737796788209907504393158559884756556043142151625530198298253294541889594450879979726392979912872211697527968067427603186478183778374354174433493421886543882706678797739536017435720123475014388764194233715266582786698418644619414704540687297299348284125195512857049055878783498992519290334044824476672773854429181414724311831900038167833958498940464530296466428046547296992613047704866045297731842856865206860345284189443040867994611606183229889477574564282213677842316741430707868044015263107243176867406575258120026493424777689825619272544457818332209391742008892961743236506722448004055377833944677966461016684677956945405236178265677234775984825478986270408667488740019364395232180856327570408465132703670152320238093214681522872152373693805851247368609796503539045513346848473272934263195307792275755748646374953721469513198934601328153214446977309828292149435496549059161653437656496472550236418381400024930861927549265049483820199124905886293230516139178653135880910741490328269423707528420328156815096945530804144842590542457414920277756212435094516482568826527977857001926328253318989796374225859102043973575824288042579784767741939260346709658974523484246674198770982730485154579911198740819022473388984681201716127525677781833532363059667234387747254689635467509276286199736832900211476710278477444152836368288409969068584427163239943033080784271110323288913489566536556563504268851025987419660082489332881349144654800470337563262175298773211910464319594007272100255590186435297508593548994079246722557911012170677662515057292251402043737338044080320354681408026968831943433948528229716242027810458985531145191939897175279819363833788256752121527435518896266999786275369617862229266823455741100365659563381065007665455800402499740994505816706880916456218026471467301725074777532290609943610151303127189684125206985818893718988438126589698051990412669256559100978845867617224178604664493108000789689624353190664970048685402906288594054858172519747514868609983456178743287791178180959395428529634686913935855032496019556484974054215653893715867888107571377565424057084487262061203240645436305640903333964351543523695875086852486239024373041450965026530679621926180524908090942839457687248453355792617816578872830549582607269529873942742332336055881687642216496238625984594452687433054749887254501392497831157169304195428890763507858334748790487833094108306661921545901753791179376062903968344997467600098075698569765447218807461778873815099217002194885960470627776834531550266309927725544490705095415278304248692191348908831884626881082368801801850063442308834323917057856495261959825588752103633048698259872448403195481224105090895508998361256406039179819132221726439561486540423349751823092168324894812925035366658688126223930900153294794436379853149377428899108797540428064377423956845006454594004627480218409005750550133342689757823517597889253244301377438338924984047793242939665349585387289740537529862154517329832472464845517261222692698115366880344210577855338971930192492002202976027700581308937125752017059917367174140577376537843988339863144166397658935369398631954966062389737111471973310750225438674808379463015063872603836894880388827073450887269155029486656723723341941311276463969436337305796325663225957482603569283644215221064274490331445581648620738146741155767864675485687678656606978227642598954327509172357634561864722401651674957595793814134498216043314799428691762602861438883297307430827734276328584018545401152137758256494005869593897013349313876180843101218762344383904685532240110720644332249040635608586210750524992430959705990780920150115710547184523045604007456321152501544264332791795471234184328942943561490615739509734433656840868818063154561728092661229978045807020128494763297863295926461390145834829623753109616244505228179416912313036364203356036064581222108494125665993567091279205233959071294748708461615171240174526508978481748017734085362005651531999459990580343884303401502023657171092192167566779992864671437444341828306851910058830840157086231964050088695499549043041142656322441945486032956975824385922682845998937806517704034844221238141516472654602198332768385968573084488089274410584044289889588702713987249431135504050154974933299016086214408325532554467321101331159762560782590813354881398354822561030673607741841833257033589022592920974636113159288150257813259481011701905639385467469603810317112976996921808656927271186055232754645853647046938033007843855555346349490996598566651660931535326978287225689598145270679346769300846628961416231933525640232045815679223070545739107868358378381761869092744677252814239748835908360596029403902346475033214319898083280614828660924061701475446561659858698512845298324945776531707782093328665950830946245299153959850758466814872140195992135823122605225675997226676501022152768062570594110699588664132425268796277342861245512070019444780870335723879507438683319953705560885648233382885816124895572601967295283280791782739489621185973088224957148587860589626877517589327945797800566540611092385143294597061218630440667177756014622300186683189992389974248300037232223685450597448287831735391168405264533204548124717028635016316035202095450350653984712402925086696230306042491748417968670227742839325384184179985340085723470518620670737704903613504845017828715359620417420391603506742656669286000724253174871003788748194487351711378854274856961522758471140137089800889771307231791933511301773588769723955965074076992856187629164386173304471881606408210859810688478758504558018229949221595778399823729752243518419631649769000418088118003807531919401790579981830979781552806745695699080666033002704759156285047920945265315177813770219364215535466997706273515210757205998610028683340717226711302633622462051450142146584514815456163232696737873255338870882322053498804863576454285230144699928926123564618251529629645557389568631458949749253637922262991340738475151304272267583868676352044708919719601462322295079839724756665972921004448344597831395495267057898243829170075980692989398022719666785149481076498754362659738583698258551631860312654918172601622236142024820458968423372999004302946523670073836682252213261402126003110407650045985465527013009018138414321547967026834236786972032869150724377319222990181610660237812412923027670816872834057582736164203160329254755914883610115730911437938097272494010871933427933193219062643984699645949747946788394380827021713779362733070812716264234999825871957023215932738974797101727468668101240075258618736263052863337193673185323218710736449582732670831024278141162515145652514260208808235614332047259950885072774100179455096633862426753810562240522122727307630877337909326647223383318365762410657158921376834014593854221178910922377960742310612974692027230586501552255135744255794328894741325837101905787286036039428382950769349800081410755782871977051803876742334051845821489059609584654707282149270065790360966224083170880397671755984189067376332672454401081332939289002490539538453986511269720762261064968890728803473344322351478235237470288878923959567656820217709124441536883528942414019774658065910027901727447321276704650246943571693083129636512059183743282221576217351916158025419128300053368603431644364091668615583857560827831961324854337429116744929590215987287706127853530198281106457969834734221079879875772970520738518570851338131965776830666136104334753376448958070188110612061121509280524817816125584089646589602272800762104161289124862955740350113910468011906671952843334494851540285610066542926397428745731929970634682389090693498677414165576601376027835337553204613639616168092554671960079736204472342891003593679909978481048044587873066771723814946586462615546142377013005650638310667491918197377499537802514475086068365714007996109322303278097104509446602872927333387809561775224568558147338040373375952302069437825055113978369311481428725715494351578653730598794779244943059673512297624928218359764841830564294406946936589715841883550269770402475209864880789175276749190650595968352662206554561855823078576523959850379382493956278824064500360126099734809921659354922758525809085930840577792399537437792704774257928900864150302898287981828832936544089922754226528147739569932579672957083274248352587086786397876343968468901281973430788724409680144505899501461068649850467648933941618471715089311242133243875613910059116773349977456866013600632877035452056271838927945728171519663726948443584218016595897227953772782332169304798966773275038092541664183459122000009269779140073854810880318553342888618280801695840880183390874378026144087844603585082544569887072589070452425448286158659385608189960948091260464509473342675193320384299805832246751740420192800582632242739630478462393716117690420823648019740099814558912529819069616340655322875019329913086566705736010746675047828396360710211464845951875297612664107920479661000231025237902282796516244061841295270055456449893316453793457602245584135428324964460903141678147895827654678613711251177150793079997311003728521070458903432756080338918474647778997496882180679463723175987451618300558024412862984422341532136699148623552027411931963090570538312122378557833888777280871036874064237681515603953716938006798078496012664878748878415225036862949712790353422775278054636887852862456183016014405861943671699781717455905691093575897366531411172266838713215866525928309105109218745116537541355063385010608035097727303129800892867727760108631087780449932220469301401759650195782344421408109964283688511957653126744595355538644746521502199033370184775731523980940029309951596245081559369706948386006375293276853706779478942958736880236625113612718018140824480055002268544594095885339378952523774200532486435845022006479306776251046819301500303951833846771651139168880523262231519482614408610267760142701008054639515509634392584386567966481211661211769160550025104112752747027129379467254983844729765210488941329132493331766569606188760611780169942644771471582957557563365115106512194653546287846528846670148421532245631528417081555793066531994190483250951908245847082831946418683887035586730351624670416452134496250290801782627812467228499951375261085941694322271234280445560411948193470018981559788932299597972311358903856787225811579023791399620894113430355355708019308512333893067457790621198209916027876078542891898235146984721381337214279765503777533750855705459425101224727019472113490445909659813554182048913544780769189658084937266713391775273140021162977138017839854555799449314843505555531495491945795421324666417780052801305572140097823254726957330218714559401167164509520531133693922831730736860186825625019735569875308224750458567419499962662550450858129603779183968851101522339982730722526414569760625067840236199148802923654263189304487501394493579611028438590700660407038255335465726717394072838935409393434776959801551249260120407370344814342383853721203536497728899778126012244489319781204930742138435615560271791711670415637185313675994673726049115246507901302708866269274184609458310252997752967711347152578296097566837959941343571542862684580917750795928030375377803613467297653804627021857291383960291613970398160156930790463956390000766696890944395040330238353384814972833026036559840163821171342344595792473359698512757103008018091975218094761089277095756704640037785143267010412462047203605101167289131472951107523961828753622799312776276716564855151466594404823183851581133667406784848954154751121565022692982809180997653346653183813425202321352112915792483813239249350318501752006340798001196448672788298335633720436554510813816364196021182928604932487587431114988106641427194119147530325550383100761610028148942923409660506628410494151237233941374022202013419447481654023774826803388295909481455441262780039678590060609056264995521035751664367797974294471682477005742373448624573668131747832975493182426989943813986165732505542020855329536507646612130026919005007613270871333789702051458325791764558244523520402118339884071811714757543094175200618852244961278476653083987951239031160676176191010184086879584648702723972945527517574721995961679869691070661497761511114800241055097247690411176369181180749110517808350955941810342405876505398337245554759074040149267480841516915003840983245438266915211779953509303170426127439825039269674061069159658589233742390255523471739160537925170682822445747157606113029536577972652851725120142804022509563032184687550961373083054321844499669823628210017760893848948785239537698380612369846449568812745712279924176353951811790728721181113834902562838769521322253856572052721791873692128168793798915866294789536728275279201640992838778092421729251297372178396853179386991537708262072835734056202880076866215666485033653014637166933955511146311306113837435686459487883014633490283577721104350669031864333204063084622124217054554177259113571602597197957647819950537734312549341515304341073652517337738379310199505975026530553515754138145655084770056207766993981854845644008128481074991894226687010122977108457954315877551738853638451561829807012864857209007426678385854004711561348853665111683766606029902171915479188398853756089599021956719181292582033378537285100481480418324055595729329894771272372783674042314873880159540288591334078219055067975057462332129141451822772539447642827429806416684458570795012396749414383550899549123786701554716260607674518681767827976341756986248827861968032974851204260479804903198995258803163440891112566355554700209154072700124631680310467556836678091996415248712612691137180301305512685056741930425079816633993419973249486438296549064869477857531207629471860223064185883636564371566107270831858115998468088487381320537327364333083754654078219849848010390162949391586560287096382157805903066975617480530594353836394774504882406799982626551735832085205983030116676335497396228147148218080719510655823492375736430462610260971749564026747567379903918508636747977466545668157345573974683593794917131090941887708453179696175606296702099046590814878462573141557512679504367361925268355486287440984880817945780277174442198755289554197142081482730066979404556817163665583291196944012440610720049415677407943956159960851942314419095637691814001309316178239855771686384045527477413770276328512386039240967325556522121981751581874871664401249948491895071785819161025964473367500352296258941956586680082777883087462579975841409836666514200074893647671522874870188094124524092093632833169132969495424677967913477051658739735785283456001902610805495567305818856684580005119418495864812083885187867699677670684855420538318224402739081560230772415368219714274868106112961299737403626058075590869585333923919231684966252264193496486469366600729419996871222809182154689122209148214236095652036956924366380505190767571674644139232469760798388425031668576204376488716245423721774080748466383296696020582323623067703445645729740110915824793393959458328238317849599216455586152138821903889724236604749329700544289767824670692970107989986367881638162317277589329216235283280552337758642247161527550469042070262019835812974270122390335722468282340916022879193805470522763980247293022480795952650927687576015170899067341945571366354439382410830130284269242680659849902191250931733502788545798784189822336817790908987508473637403809893313507907891324066717059553618126903059332486167466037807988023508915394750589619493152791365234859873923907718654602795634319314085904745447360672966825828224844462999973909935593300497641634263278516911596317695534742356001494862122611584879570245573373019437387210021926417156110031898093252993170711560730393535282837594741889926340638632999213646991557557485796948206805960679532725410404960535743568550672138907926265898101892613690772610164339910698005677895727331467732316769305455166919823464764061224192784888258610747696369577052206997923706060754509816570060886619377240226324171165713759134777975714687519964671060434960135705137548041706355224407761261927931061042558245047894457182392142276092922686297554657613858230182046743661914788293353076608638024967219920706474532763886285486690339991593422235466335056827750497932162421678334592194180730763847404979927460779470308748944376764414113776965817159319027384151439363812792052782866094800574041444765293643477262935605092767429656239277025444035511081375664142885061748572687037771992050200352001259109922593841208384476225055986329409842768990631200940873266875987620206154968600656764209288590478694717742992267085274908735856492455841684641129202317802055838663892219081011290180483807692581769018930678005847059971875486583901151391323996665501639395382228372765956132020358587781070277963626262717597405480145946949123166334527864587694665873785817071055242095102909890418927874761876622191517771508058867781660489722035244349682548271544138483389351248419201092201169251310652031480146379332371686807554178505593869513691592326267313546221557302806932411555058752649614358773599903212488965943105336348474142382716830558191150344671216578737415726648281549748345544285176117177287197161473296902560432228170279126085339818135039921888210800566093046295038140333458972363637978170182531988957933660968879043221903874500306339524049439521788739333742909121365211868699146161864480507331516862539990449495529862340950582642559315155655635747085869676927000361304483335591991893002006652887942634001292268769571993769611758110215995237694352786105628022039340575509879871898879311128185415596005619652701483192805287463683858199783806414377381827697639842708137087304802644923600798998061954942247239112382394672921083756641234364988493283183991256220825235039674321864116779899243601122119476259686161861942272589604984599229723860857684631815766176316525188782722397588537700882640598847357069641111366163195761222157900136501941390831562696614730560719729375986898137630824900687885616466847480010461415325982856853361417610800028030486374067409067548991130688691191817445383363466690182582207558880667735101215813280181229362173550886959127422958393279470998840241596717375063134682400772439803811633389641313634002879146903324047726915020549502557164676163784288748022599672205036564084448896859446958092420366236314057443242461222494583595693607314751554417435037920310155174144567831483738812794827098324097954590493347474636030311977937598856710384599367772406816656909084013197566110988655151368774520337118619009745172218799899065957405063576806242653179699460157599432046566842173792885002242287611194796727776668538757429940982451462591238412778594120220787283778176672119345723678316366630293111802479506074829487067101753602501192855174130303538067452302442866458329005162198169607800755463935115877440387265061736207489831187579908719783845424573830593949288382789317041462818971399009622543051292185570799133124863363530781310871888275026922423176212116485759662963763309332263466682055416988803931154394885131114358566060287974109871250588674276059611174605392894611286234363296283187364409599667483988758461789421272572366333771778518232806104078989237431958752467480097822190440891357797449077625517339505606546764382198925117912242030498111458479455858689814208454213281680704876151091762267657005468766028446490563776182740696028460592642752028478972812941082714110293819508043416765668427643234446700885012902289164945337699416371089801567960137481923510289920685718044085466388467872530786528211439532688451058877617425288201259774318377093092574607618071074215274615390828269201037675513882107636598259888122855031363258666660660714934299551305943169256407598513013309834256109674723601352852260605560575147189283936586300119777191836189864592818624901669689167825735370288480860301526056471950151199562363073252209666716576703788622997308542941385360687488390729862165918726293493221777617209582123933479459573133658335326310774336869018120251141208968896045108825751407304918556991649845120240279800938069263672470129034713256521585386858812922431616614136790958995119276921929510759203134336691831549581511773625160296398809087435074990201653405878509185698831388106953161941035691707910536888935790321474608934492716139314604481547989139272729173382447619594400508715264160780904758170752120721035015703364069101889597664817686065216297053657953220070203959974621563941409551101186361960300504513646872503344476362849121674533655423951271781345241984768929966209894518398425788739137097499010698795717873812948549922695033361660593969147607118384686254962312800811196802693784388899736547681792367810213622944994268942669225273107122624063399990978088009414559016640777958584008654383496287082690844168024473613082234849680545532252908830004386171927714260111622813885012550719472554011413183302342875856369735414397629871463837543823111711159091176068807282945204444241619014124624205963434912230683286804225047817761319659397871988901644812251672090345197901005328970368729921156471175240043773573760327114427632155178042730986612185908376430225924705559892305691520100496517151792437376983870553509068204378093121485942633665966875367337629773024231308326140329558317176727994769899014165680333491242027549379899575669803106012287408807141875022576659637982738710555754806676638703227074563252042448706657796672358109222048528455982830442788932087364068261422807393979539084208169325658835696582317749373006313889620778169509898449931719811784932093739094056123128185454080368533249968494682762681502116877185984908346608324967056081401409786739590845938555899972790420459686028010682829991567314594709683217595671662367011406966259622615505545808801159540430416433204291843839328207635152318024006861963675480806762428071382533689542355261374360122231536315660525578730962820843472757313425431593719755587038711890655621268177107757257295434004843562983709148297433680899498976587985138268994212513865585769999387352547384121358643925793873060597686889601180646389206508423456763530916598591471786308332806122568305779183200409544245132136702619467341070245454801977922497778371662404726377064103445310667135460315252005641183983399404066756114405107103683300013613511705342879772398125450930289943912221044799136420015437920277352073837467239871398270884804530006819362271253322345874902628307456999172511969728817870501375578555628128445736724671838833000894184130409182293215246155218809621428925133277054774307929662007780230833853229896461661099949003218688622705240214208377007607627598240779121008851413992445149404086707666394392350034344957936235457987463386946950307515403390013054644070644254353690443746694161921472307327594426777641796912045338457786888759047633329177587920384044344390333198191174253280694103870055086994220681491840950156614143485889638472480367184503153634136278805636466152599270291534437336889796507193916932749315212333120621881352718305916201258957740937381350990213394195687522865111355857132960280542337237488860180728807140973018362999098875656102726992632840922294925099589383571920226956115966008281401200565551706059143599090886184479860076822519339728804747632934572922728720574025716080092901597877589005372412856932912342653014356092554315175467237400341409260722579188493548444268841327000710248460050030592241951628793777627786755004582244590550275417431043816279843581090922217016229783202702688092953229488163057067308069143355583850118252484298263913741918932772153855428812496967409398728365397584582287514841520219721730888130471650514851784551478681226945672254951669776182494339078816478261460308803961056300143373273763158752842425798671626736114680169168411713572142381934493428498441742256069406584294720221754733168567108589547245868289055282566757916041255299050476452119764124993358842938776905444429493265907291286226266532310236679569951821728863775201032669000486518606599952792577975603438338039287221511570733368340084669815401291695462280492955852287419724372847531712745140799630273291104142830384010713324574538845884789652686583467722175981553818713349805291686646394176817128138821176635700389232126761969187345499873697444928553628753176677031821226550935561643018371452930614323098383783195851939127707972336463731361523254573775910976503255214315943211810633681827448331734808948842124125217680986991013886890954431262630083485957627582883814101372767097756712614922796150346980294305496763374706310081070988492509932356188170338625063144660711448997024619953446516670559882489121179680743731560035936989618597955516764257659280474833981623394432273751087650985737433574549480384065414826223150963248899901438009599705446869676842314864321811398483551702487670507537581593203835933707152269241954434981610193976855360232702172697048410834114885305201734871458551883460250750620194217431798262672708630754518193201667818387437672196003865360550735436231843605551340955759246709993410503805530816691832122812644506155241031025380697482132462240997929675274419957177078695775733703139048116712701647452318350994835378862010318446851048169514745700426148981534050839446165003023881202481568562841458671260459111446638627412040354253130168326413867684703381043963173435127901934500723322452731637537922418559074184237851545012851622664849098899290934205564266197455694099744192329683230617139678236224741539408545874700730570298355607973855538705822984275032470203069409895962330010591762423734271716842592691370388749236367358790720565550567957308683803556437033844145426343295608402521286003621797219997402254676787652620985592598705930094423269120633353417004807055644482062202728264165750157670005289910731612793021590092499999501115438826875088970903477630677093272345940663119296177113956666561174157214554797972284451501287199625690764945887140983946067912516883414537279065413062702023434502527518998982711502160132746960192882269254809581910422036368590308649907712906346225758231951732136926074221900619850255785391726168675014736203235169743610617310600839701220037748428630019316717610604933345781484231670012944483877666981944281041399661449993536724229851324604520304859579114026466471191123393263615876875943476043823784488073951886367215351910088158016002732464646157485697943764682167652595331892669218451922969271338540796642141002107107237498845922559675821886280810397084524181091187674333413128626815821355524500545240786662139886302226840739694806402786314266229834302746932430257030647553651164359743529461770723931451014712397210330544468302421949380001213210206810633872272305710566882364312643167760033373183170125824924704360711261412945687661876208151990629240281624876548110407561027596068752696129645845755011940106439132426709794668065873926152559775859799155482898932346500658151502551640459815060113669149494443369905805820948073299435781986263784071156248723211871525362635774683694061998655757458691151467653233646012276045855873581985913751068227573686785005035755048250485183483377411281354265546489903334377934038765405387544259101991848582892700529859942246744093682854612792527226373099946189965295566947535361236063625678536713906625676421097077145883831816098136713998530110093753299054845309351209213232972988656121413937499740834380799130850177397363824321198024928836701532089637071932612700755613315912449836964301386898942496340844521943209738274239095053574068338374162704626660964059477811121626569845147763652476046451978676381642593290434215154431555146510503373663208867800290064482169172764770664264901998545450435198169515599178418901814272890272656902067564549388239283392813101391978549870230201368564502947899723054599928558530383777787650316030734906956996643642702084602548935855106203776270444800748810550320799309984935090077876195612611742604859529498481505118542648244272923418157427491698755016156977978909810014976296244526909929141594238250708716669562840977635086939861721950108508690143227644616093163594113946716474842575557536551831500289016859563230381796341767578105286311762015970988143643607838463967862091969601053658852430189306298790854541708296413592250136899998153341100986516315876530208038814511562778740777334284761380444973678770490538107656164821006372228034134898481273917841736954171988750962685273170347621703628968952695402620698469271162705952543919560339950527502547525862482033539364675487616699427159675837742742180435202339455485939041968081555564690721764449839464250905025498794500806703261906714237221146962835289998981657512533258098863617125354928539005711979045534498594315132846984228327244843683105916351786018341075056709504058417017456567210107932006716219013722660383743275214985714643055162670414728315498569276104932250600583826868889058117698448526343724583514977185196612250929562625176676530630776848817409785969085124623624831361858852777464942884030494435596251759131962846902885786858722795619779541570544060504626155373153519083854304098040698501912378571168253822548415662875576316287100686223463608000401343934697139738866608623119849547793798957363518421120875236523364617066264816395041602112794975883730654402314132811036591249334471348666352471231022830344292517647036639293510413918731117156178259084082725864019684311938240703990451293652663639296338099580912829415260565480835086421824028263963988495622056236210189153056954301807494559464411344329862265201883708140700839650118925678076596133524272724936803321458122881280768014262300642507482419792741762368384899994166481177052640154228115745451935189721530307000462666368001496284038051006213815133568911352120799510956797317977139651708064163544049968858014191748984495363451110804421305066515214126797912098961557356456701025131374645252686870744108719331956212490552466896001579088300405816072878978730890290732116250077554192445376322405354372650800423903067555270254960404780102305705183893119318306633845624548779542724420968026234430294375551792146860325568259879913534468000364118100830549266614721731270625668801663635068871667071631460365526979108730278903086742111681642530491607391931172123559933886774235231648768695297461675627373267928123072584993273264883747203810044099541310606680920811899472781637504099172972286762996374256248564435024087443619096664433840399188874049967984485713436119461175264802890687865570266878858381713658414056824967928710802652410963875340317755668022348775259794647657929031830232592496372682511787590675745072936180503808576980510461640679671839924003428528751368190135527175715839321605152291651210187511403234665396532992372605540744243706263030132413893914895980821184398372548399873176148885253113635381895841153361332257727841393950940040937778122468320625118529524502417842635459696496373184005763803598424531522081831273215588515936838274877627471647408933428645527667294282320045392781133717612858415399156217506790468355689731743923786561356403256936146219502150264709943274868383855133729879749694626448065050908927388829930569636346710141978057241554568362620899313087527411892030973673269550203543669872656515785799062977882193795093238286761822051606845318575400313317906929750371071596971667808626804256579951367537641602215372968028582093796782206306138646399037558811404697562244537416800112460149541064959443876994990131992962446872337838172189071109849570599613235176346916577242113946751277860530027669896598731243275794408580333095507559322192720631418093811485892337351807610221399610058619372072093968425124980791088270404002879225121746283694652507224657404815986300465227089926836159383092472244789525951818939032710758168109881232675078184398876196122566962300679226554277439077413973892272929039063462165835032027350645968258494338863737738203992042387328047162683482094224140983646992634880970471960201899726157791931436875253264296441783760938576402390782960906904471612930510185383332768244930837903085130539523983867903496014182463265864826198036611023600028961955565333514955226592447364072879027549837915596472649345089692224462757792205583968252377760696997953610120964958399321639659744364330538502953450083867473853024446175739313865806820771804283484415342978693628931836309008182835900034993137950260179152752750465470931544975710803103316907546850472662818649408502280426186202192434251329062101838195852266340550520518113948479711814854772859653228673895277269043262351831916346617267717563934668725823261009733083668099706555581475499213081967126172464292444354234836592064344368240218598846633452665961723792702769803689599255867390645802834483615798603878536835282104096760341244900216473944572000689990563064881707246225085717680463310035312985862743718436686681703319227264623871467951069827220960999472216868632003783025122490340036925608112531226099734263672338223169497945074384378480078536100959436978826182186025034822862694663713258741179070418802053376993326819969640659677116210208377889557863086656129217831922467081162362252901935507727714327012565692737170851985087033869414899231224839143404915266189686100534298340999946362900182501518961963195892019574096599221145664893989375611788287481444544568591850631793261305639210060708033089289820616343386999269006224227875170435669658228114819637334855076030224407231212177350691527836331830709405170283726760441703816409316247663504874033756724055320603152625451668658842245745666191225885959018708384188024668697890165298252538384622945147490768420364675984234034991597112906696766940483393812452303806782338148929962638690762598803372958279683148704400113349747029603067144035691058385328798254079620941179189598177290926195356497531190171770950318913375726314640684270402813039659472045867727724335231986667264975927471928547780454300240419124631811950686535904131448399831532677176397215668690639447959427830254442493437367676634310038527631956313005854148707974724196244351772145605394065028047108516059037181979316552302580653029458317064872576757134220154584905881760236206409327756613319782253903993212706512495418502012428771357527783736246950789154899669300689034901551947080867139725102927000922336915529697879806923751051599204281228549292856726482095590699620814324025626911147610920918466033355997931015665643874193794598223244106543030072596248207189981023268710702102252984031151471506310453036292441029455550735135623612349197527883714618590550785637492321569879631379430317280191319990644844816583656103086993704720341129249074662384430958211015146389406037921064209421447617091811389804184902971847911407720755954640486367292132455094760437995881809577854857285941412396855649895544188465309002332541294205578322735908257221308163398366121566183580040350000205215239816464401092223596451994488395721876896098606319345446827938483424573657159250133487872435888856606670430109703613023655457194975978622387153672402837374473438780951397501089950397433853965595344610578604705568439668632116788334485876470432803681687540310819991048771062310868155123549670749359958468881827163161084487861107559939811502190520436192751585638030117883142672395845956885394694886049827043620911631991899455796120177325726065904486829279092185520848393594781590729537973378907764353465908035694696126973893191773315876573982360535667498919549007265825367042399708013346799081980179565955190395682124246921422337711278123324337272797665993662727952428912625915914856890111338718048601278055481700284186496940506384492702751628205734801305313351391876914700577209369561450617098872997669683032961773314302411085711811330595798145949670620257595854560295616555506374293577204663559721593478919280584377664974153460191792942000564194827122382314961381315844055393217312318278472009923318651261805727962986837849510967856559323675394920144611437302118805088409359392207313706073314786843299639498478659425819441211060174676564710426617457319978079044556819926815260462955387292358801402128830766690857055309154924667308534539279021392492712033577169927829199579899364857710563707073785428119306920431351619894511650024959509788035128674779644667555350382119718905122617362480073379318305469814554145950942115579737794038433995503676807105335725557154823697482101411336804387327262740895072435352098987435568388550069566576164985288379701665563541126144398131497799635800723959268472900917085669873362634201504348536064473692354580894967154396515049246999074272199581144882245064637905714978738671568017077425108048488761481196596669576463439253520962001400332659426266070849520849221579265879451532720616590870975275248029450833466422576413830962658995187087179975238677864280222554581776278347368811099540756405035755408071569642978286165774785179590290540314523074041967976985970617970988302103534574718379177226230313987755897887649153513583531349993198556332361152254482571763179667531647451422445492343256239348297470320988726550633347964501887161708456757568023231844301316223638035099282583716732717374620939701596314769430437662841749709805230081093647360119569026965470731060736555052758070697602785158340750554729070155775701473378081828578551892939977775980585646070135092131031870436776047656173235088284596498301670140803653803615588783447401459717030811946403336175101739658041650914608835951086554374994353634053008128274100039687775117617878437725866021357410747438557277641068942616288281063806627316961551862832084123233037070550720227328258356419123121293868859601441256980086423018760810493706693025830104928285757552045342789727469463658180116381331422589031212653268167945809379747208730386770039813639992411045222553864220130663154274874025480583126000824688632745846366366541627932398865221205525249311486042782663892294905917864039226374498681028603848251210069912279407411510900702105524222641868674937139498594860106512072099820917034804628312132061780398309641240693425218895998044353593037875082944672084293831299176861966600589090826823829567801201044344705321230332530061548276169249128658652824221842068296719387427237787633800324669649508473329351766719822780248543184132211127346379196322384649420639234590198804022287716049648707571135447410977971428887958433869773211789413460370262083778415327994308129937307412888746590239773155622975560668710437919609788469537232708628837595524090029116451688002506600841669434587881076406726983916076846123900627129516101846676177923459481614557006905841536511792166859808963262463087197774848426814202489449699005701147839174656193411479279044467316725595993471778598406237754895436483712681302041850986882824675315780509511481658742409188563428767334870830100541911669787119736396639262711010626909671432921752885834796728033056897631081679674671307594161318683953020991803312098383753123755610602402200469331820916237234385323400798309805858562845056324463810443688369037612617231081003896155757850580434400895318561673946865854974544857839164756555198286851831095248527963924582048102192228278808573102775511548458574959810666572807081375397394154256326731426925710420203246344674503684543033650593983335794504312701654809926246516545222005981978876110277667878639794591776098264527156267872106977664201855325085676073970878616936218439316594229435679833196861380488263177483208889880576436818788505265661459073682581219215600031083599944384794006079267266888069529954304678737109469770475620748216093167313651422069397043313281561348185061945282998353244849122969046811801596585849041608973592382313655982177573363282715028652454103706953693717694268815580497874611442679297950765247336819751425542619901706238887816608379304587335865571493699042595641357264485979605641271700864744756011390925862376683351873741590297692254002911318309789021440753741904012772917951675584391583983027904367538903516421650182408275950478228977040399421575149551791950227474475680936270280043399567489543279804622964152317191882927622601128899075698922395748579658163686146778804366227882432392638117752457051671285671785608257397495722737106853260452510325798766216244182989290423984475471591251421735040894024270799807254158044610417693344418601714346111947561992478081155539756141733391991548053419465420695095032183815311389685047047693566442069572420017197308717245972983705928438206202258191131104714140120940124062730314742300809397830233642543650531995964761536599834116526270149835933409155729747259217232026484478431351772730967229996722677408754816540394999831766866652808773153236185166796577077327338282315615768895280990883295890633956523436944730237235615764530453032523286322576427747218152270231165073932967400809758601363633910022194566487430502492337680297869548602847816275230607769258074058997949429647965185302636833579376007104592652923949092122215096427991891505385702311914148875365366633443286409870575765966315650134147177829453004875667968482339495583512223051230067898953837974984946432031030157064857237690117772274068348798832180518263550882049645759304122608159257531933688515438614131285956346285305317043519369106818635948046341522672103111974951175733022794332167318195798358454454714583064902196780202771865712161379618668187948867521792703052343151097449732633826115412660509055974666073314779399537901368613031783988604292531602079669439521957108738353569697788386531581808015595665158268817219572604617312912896325021241473114912856067927711257344589279702270861779687174779316958020321221927411618749564938415474169880852506386401977910870898779740579413990520317400663965661468281420689734787238591785583616638194333182248493730399391672600942045545628952862851341820852565999300897813627219722940807849871098234948994170383925019674028860308608991658860254869972002035366867687205326026537075965738765683381724658069210201550436003413539102767239033927782716991496869149353962559379324930056661459321926444628033277165157568918386598244202128399584193196015559373100447973992330434774936785862426633936008156763580361412287723149059841661639689905521228894394500323920383363342164039357736534376220501377567993031829686991074375319907389576899609193827305082649501477433960195637302139642664201190348238328475980600954201656564523480878463571695570547267133827213156426465035123869078843361707702684088247673970778267340483942519837506490917741466440603395332955721274047315465236840175534999985699162261384359838255789948853305847141605174843240848858534781168020161575242772214384170035557993902085790139486483001034186853978562799199693421273760623014451968426297648428725246661573415894786359986163733752957737739351881497538911224981786147217570505207369078977071512696007373625942297720870328381748651192153601254549912249196853843244426720254334842567028889873794865803327321033189139450981883326194313196001388575442447938922218609788003716754377455582126883891708405794995916018899359475616296782759455993938144325502390495755604086942881248326793010887801723585203003925612656973150582742603529479428069303621388516519504710400997846532383335822306210502097378984736572876528439285271869344779042491134616421883919479095813167718588373588882053607971279417905944502264996354449252203692189976595998918434827826026646637753866209842544909268297880456263796238562716198698903773721880448970404346612180996579193434333399178249005560613391858652056086825047658893185200624861425245395128835756481000463359452457470150263249686158256991156454934078982671135673950081250105176421034128419144900295546792255709698963345858071926652601392569054360492450090375404557164904298952126245252606969429474686997539948398766850845708265688268946782686356344460395627924124791423126000854552974700602521215266072802552407319562284025118209889823146916492818415609704295116404303528971375521605681855774529857867934060781211492311941201491637030346064825004085286716056454650265238994577134192903999693835048108320640336595547805520122475538728389654471497355147848570505599042876193617882980630521954860421936681688054349068046237984348611394380806006831469131139325574130055119521870670616771597052567125134323310179674001847738003444026790024645006040250530737553109753979444247880741121711998981602474751042661260659605900543197588493786798943936378827823364603345183467292652607203505368081995795000487498008862052503584389259443422405849859835421797477954647377997344381987585809140671864884815039256246969573697175611444476714944785138757441625171520197303009602444883312670704408756640627976911415014926828767481468179077324209623618170334170640634440419149781459715832424780378013412634140595648919177164665575528945899636001571520480723436067076214778344672925932543227566270597054180560553261932501686460945097767703078688690363352196747454960681914980766119488621917889340728012623637386324504558924086550884707403541939636746158103242542459891826260985629878743061800419011266572920309737920612004457876183325606834646778475785762862089806210675165018564249126684993490674935005267435405714881290911643413656778800522192388087254377305794215167529646242110613638759920088352657301984089568391138195290633789882417736209817563507028393747580268429149239225165267613858543807602649786339361752357883555505489339469674563772103429896466924935852496110478849677008961457758932134098205449280357161612939389771493522957281811337866045785762361672775320405895276897441238010074181307972747430269766511501668330545830893721371337590101501501122804306421569886470710385262662880810007103808011227926539607928664988162895617496771665406562563861630455878591244649462669943197510789725422628171284675925794791610717750682873587161817451267254664213809115064594750379749996705563904617514961435873356306713642323781780224973181983289544315055733500349972841283596509826352245555721468950803656578569077564360640835896779304686262682206362165800004090716669947059676238874206489592563860657462179854427258830322336640306012048167467308454697624739612496994048185493967654122583246216006892146854811311928236146775057466631194317588348610954704875347784385842111073997394674770099594406280674441904527420932461159890179721898025075424790279584207822509094679481767435456359547806321554934162829313750560160653006811937785622352231594171951182557138683857628588835910632302662622044803893832241274220312410864304421415552614031517294181029426038802805775916617107922396619638235864251424648266240475028984300647387063510602856611792995995063789819462665089823311325413150850752377802719760894753100841026620657284166777249239697991001158323601978345297139891086983746642469733559578707812946601347214545992345914144888423829157852522983572825130804351511999156190751572966222143128149141719244118599457732363154799691232917471206691246261618427503987190353471397302908536323988159305475126067405622276219095140621007745492458143011360622933764086774014926444169289188416326171028261746457954022403715123942477766362249189899255763986449313547089368401992486280622543723804119340903235864901139549074269066516304914224696162684050299414318299500388004460854970285578431187845308360909940019476685678159338125630221020512964680272008501997108478027826596856463521682559332209329001991022399476963494408360609543488767047080945862881431552105730332861156644075230874338137258978906333427211430114731235245951857917930664029566744720559909287296340170744864008804951053528681654064853620516333276355047192562331137473901873030361890519929891046330923461740242972172315555332266301563686292097885197233798004195484577098989705830246741370706354692551098409776970674980326426109728562494252027288296368585151388773462345723924252088280927748951221125279476228052016524168669725214174745893596428749740165459014488483719652821931716277963491005276292484452197513176289108952244796676311816399033587520636907603993989733608099553267131160351496318933459661910256751030692883013876467519490747945344076450670739957474239234674321713462882335381456307918159510032893599671956680610348542048829353312741088621746925055232210258760741408781095353897469502173106937108681122350464102521216500165393624624857054458259599382698398476579187622068754938496018660631422208456373250316929899873682356759840344832761546528973542995055722514456816268480013350980798383949458077811297763583732628733469399904177827089470484354208002954141561903501220517902208600359571905611984667650895252739819905749620730645867989368543720409080731812870632983476989873336394288945948532678392311038948703666229101916000206067396998747177827515026714746040317612719660818435861017651275797244109663837359294801959851565261079326058724032789926314377884435204719966534320212781118865202509235012913687967429437035239645338414502646303024111607871721138111727711737257986308808226540872290134816118290257818456284482826699097093609993234687979251449152246927532866793176083100545585397110504077232402218576717098789665032589700764990724954484993869419412738013558616175405161310647690411982839635762163968748941313070113220860634664917233926889901222946391409963775431218382226012221479906599721399946558877727877138638781352441839310573587512478511530621541582765697454126968028521466421028402717162403401504434634773937822152889285003590910589389773250422019180538238862962240075133367007188218556137444278334521022175309343472286492206520770279733057713887341025296108187364048792390306556392134814412538836714834776561767283816357137847229367298132550037704156213789328071462366655502197131452301669172768292768093806979376701009514574003593745508941364591893823192641796691151148751891424784471272472363948454709076080296350320892033981619312535820326689680282911406027737836806110624806695326367223512217471323027729593741832665553517550646617073558876446902690300953287754301404014632505101510272921064455900122406469269891496231698535988667145961584951612545183007004513918803076479538609696220482555129937506052732886980492164148133365511228657226546390862637570741016291686834589974812032110042423117423303240490234331791800406682556760438372471549978747918477058623524253099286646375925438803673981037676330061663137122393162569997744258420146064968440709487213654370689876620293576235842160085416194295434372950083156633043662448287017194735731661165067883348891669057182057203011461223071997990070599634614323605325686027205641507857428370895108116752810429776994178742213115237609668083743168110622122134437057486312548508631385726741806503222501942438398430692293827792152636683409364250198351166520689673917591956191447317158325649242666578706360871049850410238176085448130674719032526742988680259278274979723078459421788156155574082384822401351175081801211100821730222778640952954292678286293701716170981037784544007527560496792805076782201000273833834665352859754082483424161759004794491343527278043100227433691945805552251953427112356800032212100510378284733691986148776964868957529787657444501617123218934329941801138324533457285104173669476394766807011993262045678170065693500698875718503563533730760083993444101275619780663119686878913383739035864151829784858125219023530298471967317133690154497854367794720109191077327837255969550464894698947206928306023648241123115160233594604099339644370989782640920831272665320168142525684762859711750877704569736561293658929912846267259598291003587183231777630664066462271950445989601749895396186840012324235265280273628761322273838414242939626568815707826718656262410128574602620555319187815541173847209922661227394667281781567412046088117433308379794718075807283389731813848940342335610561302058342170091317309640128347080675957761776603560352554362541532470722291554995514648040368317534715235467538868267313255837245121653640220777698942860523074276013528563893142787966419361682553195899749926058883523187889562939895209813131027085489606508486701952663963867219799839288662445748892820694191287027076914278721749173747878420610563889440089851033778408118233700120597694698792393971332413316492114944666930227950062984804670579783046555389692759128966919476429627878402720586562164102433468139990555845941184832639407205433466222899932850301464103137148835674794871585583425863505008700654258600960478782368119082557296491990250848282247611754749739728282503046932476956138902363535249434627626353392070976184748112927588983453666432344406156016388173228416169678533597504639587273714642216972517661354576556758742868293980902927442964005178802397535748632909319867454080590188150218993513647247199354114172874263817150169415616498448670670269368995154000817811118017939293392412615602902988110396593595809599693958120333323512597815472142851560771056423818660002692171233791840596886645527802261212365616231180897344918152095721995875952028873178097905923628564739752010465785417859851429341196698261651232086213822457057908329589760222965246380016232204775119708110199393151238136196428408801563942258710821310363613320393444454346254319939654473355130898783252888682079760442416199560855805473554678972962659328590532200820092203594688203995674457263698088414909227545576411898261802692972508458684947415561436717938538902343075023227577624902017095429655940329854393653166435361097433200640691849355713977915608395903621341103165583701751569679147701199073875522289218947765528396452955012692691929122566260896787779354076664342025186650579514580963731325509705998076440570231886650072158720318928348847126438418258808959591859880427368562471033969391764125377609262544276851545869719353391312430911552245390641233769865726610827703463581417402936318366747825987394438720108143475789795645659241863530460423764433039624889648649956180408530272428134292414313110544988015700657654396941140082107264745331049960468601605429182953229467559218617256060829763503629494147284185018032513830012066553888267985867462593180099341078007973594431356952735484215646283184724641821905482155951837329730055122531977933743697952114376938314895558730082260271465340548988081844493086155840375846092745080286138277128846974983278021842122607374021186318560720716208734580200341443950674800740674683928793700687062589520362023606728729630267501961845054991471893307597632606349380562262619695540974270001051719574216944409858618450860382097137349996363374794578935993132436166245097481934373572431578004853094811793696771520200382899185464632736029286524541084812940773492193701744588497507709997411981554498892861671771638653722790899276616780446299996516376805399338029347801790987020694874089731149968610045658755621180616013069620569598408316298248666141983538957968600641528370710576497097773168696373858519489643629693689975146503072979069259214399428112079719976412148381109313439867159000913512833075643113959902800062474115581244586232211507421417524211723797452223272040485821119168142420084146758882153323497135891716293923849117496282777494024479395941468692273750998968215611381571621090556254239951048266366950198579606920336925359837860095132680663983848765952393304489190530092147303656065375980338404945225887291194525091280957348619930005479571448819135461476748419971975178931264611708200370010964245308767569637123073019490029125019471943449333906830149238281568632777866591329569740182616781455758284386421945492468482825735771330637838125216828824397280965052008908641179675103739749877983650634763199794676103326357544583061406653808659101702159294586952422457705933318731292705034794483633024168610974560588938405423644846764594252007495316740774078200661842233390674307103972107724477168151600248130708313289707832196027584550802310634333477955411445046754040741583422518734504215231567942958617151568624918020449136479485844721359878963685960718474057931656033084256061915724285739889175156823804761524598452076561110231902277589380032751512131939959162595436898049727985796509472538095401371552588162311219313732339630198808574036174528201344658869599599003324596900200966514793285398372553483910318777911492510705638850128845976025323552146732286106855806716852719744496621569159971835552546710333864464724205650368019314073895302649147577330492217284915627582845083262660703785298679370341384455339884494194821334690268457163089245367144645564106918971067215118062719701702083625045508538001371917497678010000606903190364982232093852917284188925879141982631070236748095230266249483130993654227633692334746544250359593576684050653917259548468831781317267115265869370029933521034096180238903672000959554908288086902172259565913310502155238658486060421324113968439419091205699154069486958529801948698163021679955819588396904217964547319259748821557996742821355128959046804761982474811040277740359714949610362828937744752148081893421451514787321718878888748107736581274713124821185268532396630633347026250177421864573956713292590532227288069531877524314990937870224970216731284005202996856592000494741798667321962678988093350697428431432815105709163698222056206128197480260731336654801460287408930931149957174084136668374750701032419349583893951011943253247788411425597120741015834473958253692227883889885870320370561772358157468706646847102927512449253663906267495520418673811785441750009177921656883972637551134785925322516446482808049594061181153623354326541304954494044212984129367353472312364988433130939224186765233451594765342195023178680367246222958222558753807631078152640053560995623623234381983869505431213118176507246793854737737290650202274968419216747498281671056605590436879877835061798289140240119033705033928582729833695884372868207094211826177339429129205124008522447630033414281184228356033204709571861079114727623055386389844793049199161042133649422475954699500692660568291937596588160560811438013741121465098557850210067723711563102458041163321717050321131017465035637706961004924810450366751707387972557296901431759484778482578804389663589269428507700043880862520202031370330051711034061861743313329574109583490597963802997473842310957612420960270912156630061509851296180803260041431433115838782014807505638396083442661647732485508313628339228700393651588498363944176114396082493999696438595830728820024867259091315891456010786935645578003021317860316604457277507900436880358881538859983720562476594390400311305643398157488701260925114589231438202977324976020917438415240864679181193599607190229307000970507192958272499960790185247144627239366067596536744702517066029543487315523333086399532916755082480510355957107224833044703119012447278564860547242937211196389675332296184073365125467354168856122977013593491431934172136451933805051569760061118892912553033237990144931818340170793451893510169985012727733153500304746045744478109463175370150549703614598642719134511501763679575855907093767660869928495223676775193976230555879701699266624904013382762559704756500064670963249448949435620269458578336575561677321545568266256604568364049813198708051051501617884553839745662465048461402986097711082227481011643570090400359876541349056872554288498427118437561467562087814415070490389631114508535394932939684930844562374408609092718620686958078995119310265972314551386026195985024124714501138786037406987339034285209248434738799884970418005246966853153861814914893917792675922147124327162925368409535713751910540042789631587479125248019757367287598626646880402834804736336422844270856911219183171352403487043949029794889781030305974001671406739896560233705826550753939637578261832594240748649145124407125718129433903038630992858567735781313862757033208604208043096070801300106944334438221083228901627920397807782081385315273042079142560590122025831108860444348565006937407156246531816684256530583486120174481284043191124325555295627407749546066304067937436877145130555939679524900711565407482660832082629062617777015904343370926195707990953854601019611290737712928106158453009088581190031368872279816250956201192438321693325593495339243239695016543577362495235183394636633717844335669035749166331419553869918781972732173952126392686886533092471584725100100698417429513815469279181053872347150761761875514576532243452912737505310396696875651766445778066547015069970661367309519522947983467497358070196844248100084341429003625849029535123227816216431745479209427529878432665283216711125198199907074895136144069798676572801814843895304240095309309656340203978979258698571030218620659371910079378745276222293259682181692947486095919883302438555870624146011974484845150920440124706807697251843416567517566085398015242288717834460827079747149622277294861148688255165230074413808286828317294929850696430970479824420386372841113200417867904357053530413421818361915134701588299772695886370745451598910060464249379559319896133348964956964978968602867291169230791181444150727979274380408579791828879831416431394203819998347021594797151403617244833988085969257621847785513491764798248588602629840819986242769318179534370220635861036214666186680924508056257888518267731652421256127178737824520837029719760249763310095947842100394861545884664908872738568884693672027164536263395716541121918664372231992522844093056355661798142132782346743865061628550902652558375647900585432274467259067455615339239076036593732622417933905534390958435837764220394132072259915271176602621531019912655285550012574288456268702716346187500764727009690626126594782451564981458672400279353451174478073843610760904281309087936637472647877497176795385606379458290073698284409149646610353709082632150508434367376305529368743967323003707619913596752766317914114732244230193935129024975328790283112844958120043089652549778031294216724727137897412713339321385807041679939206347173315414082244464409035750526882562424481207337650048194575352113854625852790401188285228513823437638856604825373543622918571349799726735016377641327753218432634531252648360182334348640115399363924846509488222919711735699443186129017703694531873739461800419012265717642978154581118620435734558950089078083226734519946481455417338669266943181600382485809291442654451705846631433770469266284119870273892196201389578138371585386207523076193367908488157162913672848890230717063066055481380096235301536036975966420541615498844191049412599107521192634354034231798635942377840618368412544936452173877149902636652255073141211582856737143519063415243625778919804906246842902188694972543481204057706109409825534911249051646801085975354296024978985761073353313954678096694133366831968215193263920657304013777909205403350349278016868179421905018633033494981560965832416759825388973569193617176223049664824616246350779890423764226096355932014348652915404875027098883940472579995733018276155443856628137191464680017741948423300712587377354518171439504091877337647598009364875700659684697285441525691460654384551772650513285754633279890414629995639879881135006314915348253317214629066421285583609742429141663775889633502475830405629740562707265569051946456861257682986991163518699399910004384428831926836250326710048222857762121771020843648788132513569010379020091057407896651697867673163691441317598002542616735351619016540332075576148419310485976654638160542647040676391163867218482064798645373099892170892245254526768804644712944828355005736745056412646723360198966410224188070357876884098513018792263975275340721137086970240214479122413270967274108543353662202394600237727459298267973216638491713545274012932302681320908377363252712337603278480467583623686174408982070713203168947364217070982935913600577530868038000373452044766889818159657118034629778393768748508520623710021514291018443412131121494963683305661601741429749556256292005962293983161145129272810895836374317359855144608083317561642245683762202435009610226906059620303773733150568393204352907008948112841236044259978648169731651651570979853598696366148063832991799146930786551545429188383430948142244390225606792722820511539746510173300265524309211345959555779454547065858622178543459333332774694778960747953447638718167315493047836253517773230090974812147582542315762537064084081506426148220880350984802640158260536689642200431283246553620833505367712153972453269857919197816196821244557197438858683934624073929801479962052648927867567570903397724754560959522278297389498140528686411885505496614117184680322893597785169256317871675362878743989726287146071108785746925379881219876172257787701795906110204281090080344184841314193202313210605068061288228084325524984769514921901251461183587402197487035441439551181959407729192016338074083407942338426926079149847940144436931463261459785083013850076660490151460997466257119607902815751502754207827065573027933142292632845481087783477221051635685080496451882438582450508820593475218659387356891713648008524740083889644699407603715968140669765441894830464265429505785708067575128225389208378225491807666398290921843222949276735431283163852975371582138030019421392722700051871048258081763734416413202414024097223803185091892010419941706080335573530687905858889064467245753039307125964034080705410101114937195888605700123779469384984428601571262068714351116481314745844632829078871493998125859578858516305339314576139683609988284578310996728823709536037743014559467351578960693305428245110358844860426355561226393567891594382884397737271292639823286425347601319869577214417026373542920930183824078009856172308171305187838086354986232051748067475781501077794485536116240915883456334815977708434362343277680549807936002647099284420492500150664028079809509167532968096770458926219856075177133911903539825927591154290094403762930131897617337168334726072338961806205512780956117847864270467207308748112072853979809150755524780331038750088836567171361952460916769642346957734664423963901422051570316304425339777610676152323484614996288136556713418005617502273454687481860148084752990012621795979195696378147895896198730027490437591488584863711833246603908035192324432303940134614185903862488284861471280483445425756380833058068531966692119715498970247535004758986676511653998633005724336116776932820251093119037055385757761570826079440866293452491160658581638178391613147294828509631559414162515962888302686916676653390645088889909044975310203024570063872144327302847568528692911874001473531369168946828007678729397748854150024340326273899639849697585679158061051277384742823954792047545449226520118298257555560733790434225398664568610848776744662905327779885700263879787163630310212153551197604468723857717182119424978420737922247757232620356936568403558395177693571648368079559178418873272431673739132133043686192806353658402096275914240660443416633787828129477511661244420342552104819804657277894841241030426271616434366047286827292398245914813436104757858321308844845640567211743754805919335188128359706428604717574641418018071344682768339485736207596925017405666140665303600613031797937138964339525094995087463547436365209943326255495829739494461083633013431599764279914999689008305436765053311879153805700038484353261051985455209764531328673054325685151469402235778870335924706523140705331918083586969651631797557288879611703638947019425420170109848200107719871337668181501889085038557170425790732631473764528590324214686748081201292705500373958625009432118649026416564395111329286781756686232070632587343622305979717784841702310532062558475614496370887325325198267254402073361548375639918637361715697699440741893914193847689681296245194024486819134380710713416600357586228752383359798249984481203661565168212433083299070217177250743865141644141838867615236504745255231140221419721829138803457971935476775891679258801777706064725336198570935943294400807913825622121922633387449977544857785889308948221127470921668875531615789902392051189010438178196881374935189339575257792494698482699388281407553941772811002508479829001325088407600794368104302755173265373958811042290965201277296403365384142123117176522415162110055153838476964235482086867530705047692482786431276590334676166589475011812530398963327412605351269016597169203946619456669184175106005723899356866181320587252405623368752036852500745573583441206941918762916640803063018888295004198372840517585465259739417716141906550505074906158720776327895039673824118210997923904696625149852005948699935939153736508661293749514612302152162261456651266496790849054351571191210592400007633557564332369712820372268831416331434158318780049841494903114858479231119809143471299975972602348265032999561681559648170124652896869531931108146455725425918407968536668049755471470025457983034344221860523617028400060148264833197807369342397549257547299143764859704728891615405036131758930414197437738448743953812300603732100629270372614277057448080165239993149465188559708842315597279353102457159558009069330061692145694096980551725129348580491179111633678820989178221663109662512642298302508715574242061113609155781888201318190967780970759228110752066624553856134998765418379764108651765476371389500113662792323819775736658654308018291285528605168476304434124887683903207953472135235877627601670294410918147511473937937046393947369393406995786235455246409922097071908909246446093430845602692713038909495972338353242548109408488664116402753696128624912661320872369744742710294505777548831497789044716880730243846088784558451605325583074132835892952129905373921866614918014983484832371662900467836019717631783581637654804888862997914879080155944180051049431942975905993422440216737375755661316963933478448027760336845262180765719403752452505096806139937080884109405613078262135138669605249850841418116913904881268692083388038255512029495980611363524321178226827857220052291899158063972985501700395629032391022327977257562005118582397304399263408885539875362556604306564408283277558782848098154175930408391411283654208572084629250441155990651297131799791259502557436317261969956000983878316160331207791941808158377477071480322063473086303799414229690815220099993162341610784943180484165388748132465421249923172756305192726682396313284006066431531873799393680028199069066006681189750572569261356565393305551879297333662879298785536381750854953283755452419669830029725448906767394921670074803868715256450402780137391163539707547548137955010850984018135742656043933080648349615058702356665992280765380119002263498977844640057919013860575898059464201602714685134466851692681538164778655101358912856145376437959648381576783130008559119397892984130938001035570535672670948414567516261108293899753359864163363036751124398933630622081735805586304997789512261501613001427696772641409350967378636781208083477865387695806831842883872004136304295612099804777546789456595989232324440410559341106322482121941441507641057104109871610716500875944518263295683322979487391444671877254900396345104595914700263834708018118021117030744623483375601345427602898646115555194868842599886369140697353287205521921927046440253334785626109082941303368642378677950489206921313098997560800344341460820930252900991235871167639728335750039188642202697567809931542928805814790821962866955012965845403507469306648536909443519948513422981326968169839836655020626948910008254355847553675279608401450552562016654108393316684583695663244568291129674596960457253234658977480503091019085958617147899984906371478889716956694576633825031282199580745295796007443771037231731260492425708039688393054592843060961307693733018010588806904473935494332442417966694448224202043468847870777745081076222151794512277194737034208379595613639626020052657387929844854748219246470167940817666007786427757687458338346275653420965843310881352912497951412329687968948442913624107097506182517951625305221124901712617698846523143529612391901656220431270716288898440787377241036482611274689935053371441599311752244213367963138351648095137863252863748419670035386015269435913245597779135754437838942418728783935792522139945201067279931891715809981030344599414711849009520798793767653820708108655556888969790269764661185197142661986513022441956682483079080800723578254901427852328714890568563130835292510539375533191262295711741716297745819582181037341578210009296704390044500618755307530186592359117030562789960765145865699272318272636733111943543300530277206560476033616812225342431127250194410365881331526459331501041310866424910196020689796066709975448536550703767968112233961054765450376715184997361334815259114033537617232234642912870100806064648370795920274992951512035810933218848230068552655174230047102890515773417660158262772638565654111591138828112884628093303301674119524178759143043604634637396317042018338582986341102182521118726222282044892556112659795384163473107836717850278413332153404414520348284110887379998015783936619525001190153027211072827649061235383594252584070973949969740858710109347639855207855952316555420968681755226241985518218506610218402719626775420316233366232078362825244503118252400793986300218403722878730840465774908398021138095067297365724388983395779811947499067747806219654630293501064238204627875627302509229280444388297930739524131538851109683318466400959801324647563078377369447377385815288466526843039302929307011521592764536453286040730885033395737745797380815276386640468643979126325815914023056063666554757367762294451202360520629186689508810956589342479849698294868616801479897706511867120093875191291194291042910688098704201941921879212367177664813177372349826288237375351711570042096551514868474994188921122915077088364399476310376888081985461965714049405041755814589055897254065597655120984062127993516142720290443526967757677212303812799421782257525629192488991026472227808259795742036504488226949674316320666944263900119814481198443286269936385481328378731340574943044513575403628586928923801984184678246523612446972895859706609588861507690784336465246056247197560187450822252783411179152642774735258866943833116482602581623773165068832103015966987830014684179802874739341202285427664676717774955041923555378282568283288903276913419092752421911023834178037713936061308949088619001330580220104002997887649349507843018011543471617799145122403313170217464876501229967523751558147394928648254618452794085227092094921928391049963502482088255104054817877685969983833119381152580729546254112144335473371292510044251012919477830368428669773573687579242527548772073774675605999542893084824780395924466610256476859369242791304032844770088794713728180454121290260656561591251925496163158515939235518680218323695151483142045210280213836105596670939504239511390161729488201130136008196403421657298956910748378616000660951583803491132762869518589454596998448556774618986060275783322749062883047558381894558031510571046234610089530850965950636999883759531672356681547878278562047003565706161810575078159550731444999476317787116912746567857726608075013781519884932042519917714058555651270224586088068575318203624517781449372842021866820851490707003604278446155944565272349931626072902398638839303313282757845972089360681118290106915751724269043977517296398169556538227966719377609761748027800145996075841911266017202788785020865717026792810999515869354936108696202559987701197507415004944388204715449221193493267998500235934815300574123176456094426839016866133442737681370037487828068274661349671659979518912552768909224169011876889964412837200562312161089515406118176544763058810464559550476194865197166741782099852943511916294892108923521376127985942935025655588783145202523835398660182131488602209859494794362899700656201534797987057988231060883102143339242343571414176705182632845845902750481450701116175516090502840119745314646270503978550530344355357990286407851006318407691659400947563138095375530145209834926211319177168992124987063952398919795131471959899483318231802048644628404031826576049825262765024670324923103007217193083648117992680678693300314674751356518564708042430469850537485772206978278945053271618370709099271991608536562042697742917342257881581496440374387673011278738639561557956874104342115924941702106247127220755566220252316533939542712434279237947770606757296126710294412701565208470552814664310821553391453576852388897708546711300680529164849294631036544615330571517438139492742581979675525734471920791228526522157691967232694604416855427591183088141891210141592825794008758080413474384084448782558363269071301289387011696985005079301390181201318173128263045394804318927948928373555672767952017288977240688934225133952030603637681485500956891331556532952704441740241684651629802819943246103571644377353543725417387445666197844576071507414939606258088696510243278391518987384806965889116178880327417615833314259849639856636173679657967673315697227029576469819263883817074716094085213560021656883930966417942152687907340806993933427180078664717810405132787497118454826076187991644606796880481640314023836442364832874444610264174757276798860933524765153799277839187921447303460821116180693361445807774833977976868227843582632762872608925432873491305197635680762901408577883323222224817054297634750389748941822488301412378811101780919880085669837789134156522261957337381861719512811378647157077223792008587140572699963845611815603186675149971847126394763039537068213390982157759869073737585315801563352921910086292603812873811321814399855778861832728030125154969844162640633538388183550537676806606541405699497174875457339516753320043579026736817154488490143267375626654213051774307143298548086587070431690197740689269473830571279817960192759954186052837756807510629067521075172231070653463430161038709225276761414014864220076693895706012989269835547808798683735156818133532116227427828309983288095129618422655447808341302326870367847780004223609209197158478860798166572350629816440696463755277662570604185484452896773606578153528600913007316492868893145566618308559458648455697214327998850931225142289188403015484868113211618672541962478479611837789913002859704679362666702473473981110380146744995808981777115336755079236918054991006663356392876590178189744183460891936906248697728755980094574440819236559270995904201661470489494884225149109569991206053425522551690518774136280575562684261941373145050587798470150861412935096211821353709949459646397022376043914029736125875432162066415163392876000516940517646614294271794260453618746984267856789260187189924922714078267403097066095820914988722270353858331183623991370541835850144920974656932175573532970816683406629353964872593369199248146200299314391641291932189561828647348264205255863129459337169255850773718416848841677572875104137425726764269869716002275460216526532110575029733912028507117018370417105441783673260753555912597010012167990561747482446375803594886824128157032819943297326415886373847888892164650365982950337269892081191970532224241533168707274910575346589535521199861816333077649968511432362372985356286684005071183493691719043423455471330443981457465966573038544144211647479460626710713045588529863885698302186029073836070421207259286344988731244530601904019768363968020921738841240015937015688016796772039317128255219578888030203064513641081594411222762274900357287179795004798829924448831995954167173863480168259237561287774297473860012684039415325127922808831984845421567598479821305963585086925560856328139816721897674972845947175636675252562166359125934917007076490855097777943201186417246883574589628510806317146395699429387725344416977982989591493920029839235777741131620903870320038967685057578163813678647005802243645384151341486622223320143273976975960429157814078346863841182347301982486519453635198630216830869782032971205492882963226683174615940248235978159570635699971140163893442158635874385401958080074318082969165663854223638661015199545926508459077501288190463523663671608263883306585185465043567862053931634740025491987495434826289119894271052555692461416894326869098660799214327362899467207039836983688181198727676091713183777801564396775379324672794462189076587217491770553303398558973033520472559338635587493045248172419365898452048617733389778490770256663795057759860693877755859715763358787625023877574639925788317605151736237421079392393117899414202278872827423453057508536800702178551480013211175350977614497538827093463434582148367585476669797027889273051579615432443867160745836988811400384823331779161789203005562758776357708072913048385111010118169964268273994644907576022013422115171507153590082180437786645855247404585865809128785900187719790897206939261473323096422300563970205468442493475975058481034610373210400236430984867645073678982552678931160107122174545171487118218349730956287338637218593040240093500405209407105969807628839885542141440091010004016918852031113818028481022000111634844539404707272464139107231497671918301344655627793812132316274651306166937736130268496654139775065284112655255830040397906985543741195049406919592349545717704666323579107939507562365425300199271665907329320376995123032493118308963737872517950768219381463162483640319577987203702566847774979241572753655605713683111775569359670886054578150244332416584491317300337148747068460882999485770245634645759927634666864842618970422634001600892819879425647956796185297198531328357545677278935456771197187990354850897129227471896028934861817726021435436380226742783414905377169240368561793755731249769743756936135488206373444492198502195272071884199204483667170610285525843229135946262700487528603316763799082307451167042700663114242710570623090052915655168031070688417487594974745882313828817870816520009833963345290134054181181261102410861163780287215764493409101574995435898397106134202862295257199585672315048840059565956826663982210512638060738647202816815530703119419251429902670318202399993852765973820950542257008822273313919483393220580604261212772108466053986176723995514771569677956668958941643893060636247969885201449611777352845895663810851915705452935603859399815317123172557811008169884439516955799929488500005628571400727943102173670748585618480173652196519235580734931710002423364680584815942652913556334428126002587253288392965621679811227417809929099649617705940823024865237889296589155791185189539790361207788179038346199802910476381673692555137386416608976102203068320655395165748907684591603116156036611861096257033164844320321381100835803984461286732335198245010091268536830252040360257355329173826841618466277531419824502965931642979108570160031049162123280046780663398549905750335714750580040527427770296093005313411063796119112689879423044629196100639834794745830260077735539179855873481134980563860180197589940012543763550315761313253133305645746333178435152703921529601229759336237821500425438446250412952291658609322401285011353065051713951116345421208965469805761347003404763915763229430322530198476768113862325585297292253807165853655949101677052844630114099950572117191603264795315432806929199676055442949611549839661957151993050862503790058433886459943530258720994681588859673107283389340903140345658135966250500481638140094926161955155665281466306179783976503029856765281932285235868497566551959859275585736738843407072111789133742757929588763037499479399475783625492727711173560591997872460578520550424062755286735621166740710323231826368370447933278201045217481911502209860005924659250275089245618461225356164431540815302362687700103453352363609129815999801615253499951833910608639162589625881389501785256046414424355496707036752321164396784891949197126843117152525138662009890626239397390775420982987384748872099461302596993379455643386566041555306652849064824225482405142556853311508613825447848954902845274355047180086623031729493407765704960393160394826384694853734648840783450137666379505936087838155700274185821083528679752299383208790397423264169687019769889463221923654049491858320918091987088288965259419862345407448155207196982296395026837932536744893431790912242812401440047996643616173635031419356392297205461918123952754560106624790251702704914135503089891815504792962637380981133538457719337002491785357284763342232798217038843840339607036086160653146903045094559582201863763365615418002790064656457973855385864332201741094493865173379331386668431636979770667964140891626642295072977016015458788448365764225596304365931992844462817475401135083672524991016435861182534438165255981854668854084556569200630484336497887845409384099052603424224627049378047518733110459490225326213489086508793904928943878097904621502686636638803476828588045230700448240437448932266848953902958359131177976346171424352534141102788980586443380220411067159486677805517607187521729278142443382210832772684400943009031764425036180190611066638840053682262564016581950595399642772867613788246223731520720389241665003493408218056778593583437662238897834528881475178653090176304326506765618739548061096630260353728522079700253402855875593468730995332451458235715762472929371653636574628751284288748398452638497353114070107018140456499435034327391682794562673140895801815718610058394803507377318684740006458359050328952588938485215480041835155751185161365677072345903193763009667587301674649519599439806388740047200768068143796743360731168395533248679540508964360652788419463945634139368492450927392517865870114666005134275853637864195676112918719500828580423316790133677597691327537948118004265789488431133090622948748936682340524998475968572153055289617693166600178828105960984801549677313802467759049029907715129433347888548683536762461847154581774042207786806073864773087957155350413140442400258535215298557598285760447729108167035015293564666999057578042018695468119317999794154853729424427097028252103043093191233358570319832982159993196574986494412284431529975858269297813423538548825081271962343709619017619197524132837818871986296164482995801239328233328149251199947860760716881884788804766285979755036759420095520195272538832673998593370087271867127186025997431302282519629476410524268708778892433488803127760926794532472416344606827947591331396434753129894876289928959780525629460177627062373118898613291705402819695156647672398056185340616233043404599106239817991808183386271227079816947994404993763119962717806188366523734741086873876148874172479223773956550089243226806310843425529369533816342465219205172000448688072599211207653567222146145019829862919858552314189243327694320219504983523123733286235043439087645713044925022104873739754208081004159522866569629846131526728998975843339382568519103158355382058067890314842744665580161922301276160469059091819473507248582695117019582298430933454216474847829727457175927574923889448895628537099549880986117098716912610291294059059618216446265553700449654591945947375470650944538001943130360351335561840194976642759769778756420928635151637961081737680238525318846301374047843575720772691723766601218350693210836294193467745161015686277976422115564343900348431568486128508346335647835505626049220471143698446638643653382009298017043622072464373402942657504098509349977418070849093067529077472155581690547693224377621617272094517777155419760654154782762538672596071474837582942653018331370398238314528574635587038184811501595473716508398712590932879224402124778796391714059574534355050902044106335457612959546849188245352829884882285567337626950399659237539009092489778913918069153392916244189382232661698049778172179048393557450067410493084890225599919792818173143689525223208646163481752984707933966442671495894431624030485771182223141972085702026060965355156809874944020830013784059949136694264704565831472616532142032851526137229053248494591272407504523608852132113645824258112732899640704470534885171697655495302914440518880950550393912878591968637365274497233664875056597037270636907289589630558372702132765602857892754611700772585106692666428659478735911448408937408612261426971148148083959697248012017795936580693347433510733358331664836207299560286530145577082451793693915343455001514540735539340237025413681862679023680376670778566835199259961878812095821898227851010079545292847970181554642015719491307914879020398082200934219425220230407336200144232159310087114432841234805522370670479149671092456306678866460442298656050530877853944179182626139431260579752203911795401981718119712928707535055913698929541160634710274647049026324640293464044949023225026206709359390088688786563026972638635212560322769360582314886949684060591749728244504120414165514667921645743597110203214919504359820424003400066771159563620149938293075881559558619417076827344085597380655246976495415975984482628732170550674137298270512242727862549935876877816680287299646871480062492957507048777710106838344730090070791383350455110080635646338377380350757801080464754070542637669663638225137038371632875742324489222042195920682708605079737667737167200744514438486573999885875359060731780877637960892873953093340000542279047302064089153288277786540087919780493622411858664803918662252206455926129621686374034769012502148126729444697236447840637296784206585255358038004796909298062247806700519238446596971559374416619757191004523103277960242486059596661755096694578937425276972884894470001707912568515087781747764783147723657581394502540261500741334001335226259446288327372028607355236845216484414603501504898916800317103242346249326476755994605196387851245701703734821221844281201765755087578958376356198188479036847026459590639949386136427487799421660907524231766147042272899217509768147296320573870541103385215546478130654379723057639554714973312918255316169975691193384185888635360116624318163848014643850915285920055567821890961478574733644862167076184827392602705797788289125378222769959672980098154502246128682307204994592194596031161916167820899173197195005803858935972806568378187717510778552665194031317750193799866161231700059376671829938717802584865496582264489080899443702576398402562168727210555590624787843617386315157154759574618808437001448762267829231458636992101679265639906351755669449398594312283025775982947246037931959557656976480016321824188067576319617904348944511674312889691491541759761348784557449889524769437256062087371586072904524011966861508776183366991024271791682638189623473540382542234526160711754292369809260275013899670264744612062062979737746805992446809358567311129897206275680355659149386368086543248740408803476124795113776558381260234965663409003543717582998050387321890006524970796175202699790006937450425398363615088218063134133794018065454835256873287475536177932864805390194587878718235673601011794476009060388636041487214540421178901251912395847158718571002980985277720261958840957019305377700852538831207948784156816533929762413517144017053447656462590065054374267267437976913836586530761728692786557717840075299683572393723442542922626101322641686983148362589180549702432554887061929515104720624653290372802623915582356778828992567449505717394853510662862862826170401091328918930100381342909877108637850022309034229808228153794015976523445401336414815371543042520032504969729110117659698760571641419163668236247830106132837199490784675046251288763175406173949155227686589194673958931706935784436481349447343674369807803650190383137731906437367625201249925253533999044804113420624089968580827828338028967118150096428635497051587546941948183897161636347644174718172687581225697411425749504210901726932937654819275314698060931843613512651545847732297502555478930631128005220636460685486559333170486604397996839234688272301369179528211947183672964282009630440636360223888318605045628922094781954919367861460240435526323758576479799459686819756750854267107876131861700758935125144281064685257376247827879471636615162950322834051128216133628827017321300237961010097868263324912822500876502501014643394605708869276482358615084545175578593717179027821725493951578432341204449888907805186104900163395836958900272644129738380955766860368301450363718219641388026552162794477659936766764298480969680969737592178937936146674283323811750640488809592187889868885600796629500647244755369309416498283483151553571888157457057267246509778129834958589263323323864571995182639297110867932881749422364594187849043550955791915731680640801574108674985513664427860059502184528396695653543501363219147022887085482711523995534006037801501806235210895676388434391008929075863105383682138663278412476586113432238220277150369635915692185960107367284020114579491948238384290290241662067815306776723356225857498727267743802165685191980632837448954842512363973469283924490225250945647823730660729454241185054978896551977367525703714576489933699341676723318376618246780833173390157976935724173457542821616047543877106588389161604382800077697975785500107538487415846237002275383734605406965818198961962622977790461136803252474336250007609195700959273056464753951217586312662707261518630692116012298389976551316455084585512702203868892948365873124986900084011324801536028831756700089615164683677918339423392735499474345728797334801184514200619291681209380149425807614245393211744796664613728223098020443563420512593733410122453127997853975419462348517253508198411235598221840682892584272411623232955145347102761183973411008931627473252229066896064751614229600568238625574269360015920325315625332244272476027647857178411170691073769242408975182999301369930238285271500588013721294149587420946415050028919816309770430436489062860326908619200107994729420077595898789730694118204289226904003645268342565334531587419666209922461898818899533650285597333216372641405583052392620232478128822694663352169384183028059574482299429872983372253362395566554373927545308682978108134818791822044239328769398707149413253395038192610191912626559045275514369734810139327101425383092018177299521683747134440372752737728025949299617920925337011846259736333518240126172956392012291648954702651001113459670307441854073975430409337499885311642202386472642701116526470732643583105293010683139777923080977228188241708378561459790008355400922241135304043471190592661854279895921920254711190286918922474903596298255486930274779938327321540604590726180764844860812866179718314864857388376498010578334104515999785892797042069562085843270613161296668502897035989225107338529656417917986377170050331812006502565198259362476167360347481317910247338361817287393100438987470779144300386707100965094274087332221077910834058431406490032513926080433825185037614777210260290457648032359210714545367569301321195017061812762757953848517961882062954783834319513191439855572372905117582186621897597993540692589669549563943679372349631155311847848716846969944332981229226723741678470513786261579819503821404522696842017074376300526890800759490349397422816961106268401615096895935830090416325299137846075494579123569090856674454918225324836416545897679267858538832040740265322454182513891991967923175993173428575949056451069585354264884806851810125088556939310811959479136599908930155839525303454070221206952436324136880857733453652678570781621437255071583964159085418896690478774796276349227886499584040144750146179960578534948152643545925383349085043239650640219460596611617146953572770115843654415088661187638030855416342110460237437533759189003131639991523091912695272349448080975199057064203401346697866994655544725879321246523926754996489159140960257207094608679834682779276311244901192711213110655637216729665142527428179414996318677435475011996904042394314172711525964097898169957804243297968675698266302078904412159875306949727440151463075544528243198059683559902882364674612923692084904945503337737872685761606562075835903249978075365337012830493670370468341445025904212999938930677436984869820357109453451544182835650462878864718393911183979606082053324199139031562653538169739573193663632616566371330492627355851915105882990846269695430601436698584204518146466951657243138006042838429810217971454146771128696138024502263510362381487314376441929588099705363386487297545781470582530065488489838443743540727533673631666686078042544255168098820506899710377425999106542534872470656542033153887497436543832014692490201570673264783333759197704857210923842471035472565424048674332669687975776998371761538439118294415599768863180108791253946613950633298289522702155346026560181494161564341165993095005955042314256673278497516546441614397316480085296304864561808724119122360504729994383614783040448196690910452584291172141173122263238943468889087407422593865141173631317528390482074095196440469183933729151682878548800371413701468545317113061373605003420539413407420130761026836839842553110792680284160958595952950818975022433771575998674955811174819353134827042088209386078667889268674715606956100031128918373553315277956403287351829182201175106413822219191824338491700272089210882905267135893670229615956704188696947746721979912583150072662249424970348710355496055113530835965514517678589542978264602427818764244310589415002789366579892191762678033103559191482201604847747633441269686689679283620791221332308077870546586867145308842137113116611718810816731621908302619669377688579987321236971807137102142307398100443033517124051892025778615340581140334366371562921778737609141858960967431204572664164770447433054581583808137841272195070694595569430571631771089609056946266174809001435152452143104469702199562362891657660460248296763251746742492858424295462770392338089366067515785142586479254505039645299239581930281497126362379341190867774423828494088574271027905917827143201884501192421189024201075590102867944859519145330421049192486346765642216725285090614899986946260254304345939200667319468699706046376055787599162087527405558823340954064029263243124097425736503280375467822683711546286767601624740274612811897895441288670784764712167579647382561858728439067501835576813205866944504238769936757453660675269525435361010805754380781461893040213819512866302872181886895289007439437330934301391806292083849181802820769860714906313439078258698931740959988646231447792085694320195782262769526741911392474171392086674026204988202508709838897452158009052130282082323188813511725962627828677423414701808048482795884260604029259952877070041336238184145869640439457702276448137590467883677271009899580203315992885909734287186126355433976463908337321238746124840497896073705493414331510320298059963886468379846662328797154460720499342936748409123275585895521613054713610093938139887549949210030145996013838130860776698088151213189435409219300026344548105441761951814910111180169934834617493135185126888220331807253011901879483415639651148426745703572450667299076419124907613780311185811607780730257108217669012141638840014739702903755951473255518736784568029810665934267707117131158171940382467029307982523178986573889495707801318907890546567245667061158565186098726545793728644575135349583009978644694993980469743131283989339958658251404921894368529268766473313648553373543605768351231642242121591513923718742792375252180884393980747435279498743007679110146795162361631672209985235641091611116581910439789730556376462808713148800464447099075664887669516509147892818882821103780292820910153555063380596558355023527503151719183979542529552572927849409181460016263171124456309154050166293245510323162011967440988158286928501615324911463628948767220448361397630556066622896938000380929336133866192250894916211157255282728962990602489580279273626902838480483382620612626748002850805662992555928596461665573820756621259432850441315245587823247659315519836768788643870359416489993969064165132212992263831877536910181150307932147686430386737254114396075289315950394484114497664312138176641712790502392504695035056071832073097892219534937334258664817027914056227129652249854268358647124750537356070009804776962455793230544202224388822228916327204149616477290073638202935111451748371504593714167033273250474161158257590839522097169387254792195759202894385148228116254419577453086055822354808892306185745388310270893525970130071756766397394808299092207834905772071188524646674290921095623391012565614384990566275417304101062280472360432109741987290287078947146522589807559397816995538814588385427112973211216861269658142682540847117834714105804583062475222879650204164384335621224919706620579372036545939171221336979701486588366700867270648852147576663561050024938275682956655095078366033096412924014487784637718681036229730813396188080123430186928100937983800621361103028797438476220889851719723773574819343265053426721177752730592718742807446525069454971048262436277216869189714133408950417630861620993126642303499150385098978397693960172449487832180314816535699711917883196923612756568331360814668595145681605995873917302565266297000170972198067283370472021142603658010601419294480180858968449234099582330784191866722620619580105612756279133462663293026545996819918470669926851934720078224252223024711917356083856892357851514020450683408076540613215938511046070347109879871823019130097534944363969814016289079009669942343735336648269257938525146917844505609962043354542620725013055401455861306946906236899475805954855465941992137122313402443389990203969119451429050274020806414911072619842577169025688541979810588498398478648929327496477628138936250762447898078626517689206090842439710057675626402580723441348026931298223455990898788374456812401258430712025435247063311180353823974513377791227178045456171257345259232049374949414268963126171683615122530342527796872833844896534471384700369066747689474373490440649946949462647415968771191095959824723785892774472203348706136868636434598578396758113940306957166670653103230674888573865397068755790089942002770425647204078695471105517907656887469069348654886354825217085743418724919002571074341081962365626092887661767840452180150916615948952063450620603685540139476045314719331024580344343372990700006435651453734314928909713300015897282356710491798220635798427826685157718824431956981440041621170703643859014429525895824714167471234528327018620053197372682301872109813402140443149980466067251775117058189466150184406734040442316879135128012975285026601040589611823828262142377207898050997791419320094312892151020483763210851273001417094545572694529372697024442996741449060105707675447874405254749369689596653506926372541437912514799249277980517387844225723330209429121283234905782331182976147952181471195707933996403217109134297579828978165329142605749227194099405436639793335642694064375101589366243307527852758918083398248655956672387229692284807656517593144193332045044248258349294832051446479893701936345111814830418921473700938170025775580222943074557330841612589111475310750485568805199194157529360028997216967102304116577738633489313295103839785996481601534993356469029976842192654835212741433130528455768102674274979675657458062957819303019536244757294755574880548742000877963861951687499406322666002137670899227971994926425089477685064749827381236775131240217981295239182005425388246759041409329973585365362249420825646796165300363227294181090910347368707511321633648680271258164287108036949330057113394725593174913814367536359589148664421675829645590429437857331060652696501684272272845045877106763876774611110938250410866240194629804876345334613252760632306126409535468720354087454591632171834631062931763925850970387680711738372764161701858231051165203269541302061750328887953065354332175833183010473527284225227033956804967777923121425100488541795402227090884014263254986614794130293885306610155196726596396128533329145400448258291323810020321719385477688551378099380962839719333908476751026990938839890773308323243957289624497279609793929148451749325495300814593876191369313904514901861816658489895166334380929863677746954956974304880946656329785377761697021614132792001917721910657370475556662605001488077810685251154513156595999936865543318260407669895631813467593350962004847947447836102216044532430723229169102421113656520376899097983221728216997898989098789269910064864193960775088817672073738776041273404531801913943724735094046676839923424018176562971578695411772856626249884834285328999705289243385369077351518043465622974987271310867774870708108458291096521855213804909696509074429102782496885802009322308571619851956693767058668227129377902622341394024239415822062699622821980712013445136095969275367411201709386033470661140638656566067682153608642321662907399548611313956070426186690033987039026140908474199366332966779344056497164001931817917239238219282943716505590781441238887246962154598858666393546889530093548821762657798573357553685573920164362764290978593176009475761233599640470334976752832384756052937988082611263917148859771233494542998942842154070747726213197559908513194946583935097767324308494444012607004820880044104641274656149475117943583773272165455072911181772899984965916237061136755449894844194595360808460608989842615151542289925362338830346463622369550095883684648544949643086494575689895119480271088083540532676099909560897674368870697803351066220627751157063947246568356390297624112964045788170049032599497981670847934918139282639785635030589864445817354292740761549640444303412224144004477391489249540858863989019228218868162122554721118049332135458404697970342407642346630381879220536933791474262860326155662178649246000648320487422587464286091286452681214643442754782511641584594281678194223096536159174186550965116537603847284381214124286579994633140264407963774622506319335940908092488707181483949445512067387185417076964916630110192473894857982887582428944187585699600332433741858852258785839968418110286181110089480985890404092290305174471684829440285368464147084201382034473053300633518552823065608168855168047474404572901614788141007681407388337707785375754688423956151578247434313118739538859300123488514367318220254740011297086410216672793140273468965325660164315972008402345694603390737731325346907869071085833123788245794891733642091893043972902447882567559994554156788972507076581897740275348525636939900636654013269721294281941234249603940864043630970912363780933903844360717761688007030433910771665059189985749672342259176708536832299443026334421512536457498602102924445135974660656508279698935803274808675722100667084113971156402785383657815410980418241550633372753437195301758440305564377204473454689387547635331897864679587134625843276397937273765522651642967167628536207201080005307168728227768025312963439081996133345241211023714821569182917165914283952393602561241635115098119430189103283540587575452575051717540110449872054003507682287294668697022481212480307844880317513255092709759972151368776518481392753715411786940224586873536956191449483656244735501151969853276275114363871774379161635415111448889708023025595694320709141105831391350626958317778925135715312328979050106524715474225600118120624893112266867407497506031701974828276748618544315145084052690385787328797461807469922274419284611931546468325759794159271528831277622884883113940310815295368631966219762062745255957260843937360029625724746908579276860521493757765272318889698097476418402856200854398239648896965955881572242089476837560098866407213747522267622893042932026271277057558171348812127649700165260603227396233917512759375139666646672980189399562747747821668414586429382234926290939822037987156760727276695892402352823809713630937419561416582634312599092070294278270574831172783278565998743224415850570222606107776958132997059603697434519586293228999801482552403780979600198627054644667813506115476459930950887350388578841095711689471926156219227562658641456206362845784711855017382741229954769895519734846346211669903658200648350348523300008301129889779785971377929226799845113022988981927154994009233854824493711839849398758925361723425038220690095842004122313642835633200867565179280878573022951247914195543813329963478521411606238423655452752971258397645924280284312489639761727930744850413656001530976427187537254310381885553583607783588315680017137756927521615332026229348398594667405435979202797280722916644299453777972755516947267633229649994164534828234106529201880019544897846072641594771293616416832460817847355431684818734441709046000562856707694327809063531504230106414529610625060814179224314177271467133358692238644911384320978883052200339008250029335396551554882710310623633603800346593473368649337765593845470590426397445011649131258720236452937654935287326039961492284845951141298037163512129933064204358931603625447288861535084023778848887673027849080236168621987548782205956841245004719108667664808668397703992303571603904561089176764976855788103184826860063690650610226713380246053322986463049966839746954147998188592461394942406719374267507793698117146434313415688386337470632127746248558250539685216891877211149614670596200535800980205135104506288248945733511947182156381320835428238918600605003361748447629029777786753373052116963531023952656350934274066376388876935180117902495514061850778474481893925202533996202041835906269980347926412343281632534384969029112793086689722476431671395463515081543050614230937038327855893111177378368801314180557732383613586992054956634524981102559138125235715679905512994128264658983722734887569037734766408364863908565261027221115429068675974527863801452419980293995584789047841022575792434364900060931757104265196452184668851656348708047343827903612204384413720582016746620115483434609199458314789477921180359730542480606399922321335167624532644911679178672581968628432651186242341536786067342725488900957216548770669710152043154976090042791156562848427700596036730211648262438718935295980301078995733970839486548446120735351045149594835538180705110349980727591111298803227361597379203179570804240049484681922491018487419033321254576488951079248754999998869055175680123057234957971141041649324145125435749111294367981168443119187942145159969172427473872405530414442744300068887160805852695094084643493407956990420963548072165852885752958268972139759135254087875682241773516428003735659675107280953161063756176364505833496514685059835144289918011893877039313533703515266346554052529225710913277493966174562234969006488465460284281395428698583651037908762848252726101733703263317802752277629404284616037997912337260012041475952954643013306454580575636185482310945704026977829138271945972006074513047132123888942948907966573271767180978056178811452059425492840946819647694738355885952294937064917878025191043308459533025546914370144182091468056140578938184161843070477697007679207277939463052275651470961865847590688907741542575152379340146469898896433360224213237003472734755561213091960248601857151283000441310080344828321747527290609735281818602619406286165889170963889055243954981472727940355288830990692199632441050554926116334768131730419665561388173826430390928974381921885470718687688828949549271372725251991762103610619977562161851717497254642850730040889457402273665394390123240427743363757671812618640906032400646289260271224718357437539991562262716784787105513651230473310449752634478069405333109162095942493703130511692976565405913619370993056339095468161853999597355441917754937690094936864825872210381732044323822984719410063071338205714573520339559672375546110126580518258050335688249414397800495647214024706554588889285781171062755165244262876306328047465182086356244690817964481041441117898942287931592127725953338455570830045084758428109728786562171189973135787005756173875344149304506189215218465646269872639277603222676517272936943519826426601266697450905785968735855682469693783281916883566462197044803446004530155375170076550772316655075649959865079054499205721163140510532872690437070896992987301981217471868400766255714304597514370129348654470299085696797004138295734144029050181863343332376661763404606474958504056234102186457626672901646849895197690904129688638240631606616621109183077134666698796081307602027503496564593079462811269637243834109088637995114139727610088856326812886483344289683660675060389300201723935788742712374385491218516501319663666673801119376979179920196529017003727057038318641660701426690659490203421168782435873384471132605622803822594163095626011072656345157381075703818277692373881412692406243763722376687557879058916988041592741519547741671630888784528100338526456579710576181289437998952710190907583899158246172085877137581568199552049736989271660777919849777713409530308756064133358964150865616870197123972464721638132146020017883328673456968735543633418990246122491538506919285156638146936621368555104718261423134989550230782818285624579420678918471764467455770558386082057433622094694005831338010631327030184848966198314342660614736427728684204735238460881324892502303688043760049150143391691807504047536015498113001758694015311592760354700685686681729573705276215840587325273731500160608802398426314367196402412760091826940953207898239989431266701777443089329647053092452454216625287896885075819678113255859687852643334790854348869367572438619767173259996137705819936398799953740427094613335151808563549162159218063341436900063742268591322871389244093294315200821586569062648038070110456402581747483761398067560483196756520158117647198561073928843171553379891432516884201148748596048723960636168885048240614337793387857179959330284689572448500882791642021966220379517046609460359004727069637530863079817370970453097791308288502850765374106279936339826456971456976059927792770871176972563664885472767661367118082090817908396374397338658887530391927220752497269653734756852750708249431727047099479216852319391613048265805422612566286762465731191562947363115335332496305366293472171302761276117315393595287829589396208357635817920356314079832596222182478914946898657282176193168994737909495174404210664286211711151999746819466546986472996630282196639311109582717615333518613147714027659761069796491441598725172252788162695507325577827693194175755766042101244513690163168523768176884074669591623902176499967768354280190605242761111771896230679738176591835789484703555279051763688546579554775722519827694665623957298739128139989811813039710984141031054490918231565028767568951021870251162132875955402793915226099809418859210848574263959697656958762912235096292698467417475218048464085060551363420654647748412450574059882476358049718093464410863854297899657145754025736480218349570260525720383000757545720341181365962173186794891674542434758095757319535221049556238532395335927948788479978938310141379933377531616640906138137358068828985988210808660743782843753408071239457385789427393275022193722616789516622770924321098598579486265727832911403261549374218712298104613637891831988815793887472387953256421569734395638716348639871581642064106147402366837251120338110427402279005606751721073073062507985773755625467300135098585333333635784044945339862382924517630606773181303429612907525216975806645265383135111141484187238089511927901059206829483553967429837034951300319283588662732624796133273313042214662997768027217408711362155223665159903043578308607881175269816830220879726269985745639188596480642952679651862908048535824938023859851030298107105308872893114307349211502728732938884324742808502457782972990314809893817041092193853282490214296546640538309614870045290301084756838042879566313465226944012756074314873408905880048343116497743832395336636789523721654122492514730510516604089633518379110879670525021088348373864514038743744868545285443251237999976561812912242953057373587587114579067002110172175001581662293824813582126947825750785298826700881211358064370406489551715017090744833508243423412996251521281912941158918931322956444398697665577022767448710484565987520755682761422534213416987822018107736098806882679379735630434626482366857087534608365546189301442354796262884394954785354025295428756443436739291323596518192614201239648282938585880730311566716457696535655373401692798472866761519034679062748128324551937463593608821632181661175942732236708865170774509658521558417209613965179409864046337640480717029490030351893716404811489777468660114978228021711356430292870499502455843018872616836017544299307132417791101707314627588170003987856697727806841855670044143581245954972049729711586671961752858578392000229948118289162874075830874374282209191352136736977439852338077787413828076855518121705774074803118843783114336459391627200278770910739936225313553767453656976040372517606827186059699483756799920047191046927916481740743501698167729778400856161193937352378517959497368896197393691011416277602618268885020559708870791239832790857801549667343927350429457564485286514267700336614100292303960608010611742283608296773436582268172039820478162081177291727880365682903257395386386295832245443939890486547842105704325797583294335243811187507849958042264793044736169056341135652999693835329457541421274340083730288862561879989788862381003784904549258560234874116863245609501140941352839938283425203505683203651396399759460245853269027567574165800884040617217511781243614392811206124901410172510613430717031113485270577086444927824036311634412983194346019113929561713271946589738013722355406581847490884978174785503283447369141532108874116089624146926367480530372852902365663143085449267102543545508057916349089100183154506203744137737793444108353058347962208477681394583882826698152468378478951449393539541805679421485740062139629988814883843054393982995687613162661099036872331218483345878486967373794500985442361928241540613880057302374450686690820803369306676759528331493147879537430358458355769756284528073027319110663345928311567645396134651355339618104616265575073986962058095605326323809915994917389933529297149895359314629728230888730488610437770957243796909132243108916091701380262982550530303136156619306577274381159144732582547404677036876103484846808725290442167954274623270589694266656582785050659189117326841340298109866775656359397538128374275881906095125919509542927921123638560733364550901533379327582860401573706006401402710041272589075574102334776941746297727395681665806523834934281184220959158234597251513011433445444409099015169793802600126087284793937410250677685708120291017586285013533523709158782862552902509540995119692759726999116202593441766360066168484463472715422891047642766854978402196037334085084073583308441747171741044475787213595785578175550742306141142660915648692259666750820904964352851838613664957067642600889820101591169701639996917018579218430322016909828692165599983083123877805710335651105865081673013345155502980726566213637706601100059455431492895414094570064423879600716543026060133510015041781952771632114935980400750313796915663836804480274992834469791015001330877155672738620259071968326508818625655311643310214316725931922623248703630811935515790572968155105556983345117817641567413842228589861046433313460384686109707282825083612565076718430126712035337440661805482630345697356463600207662712161825197135104421913694919447741112940761867221675916241890999016165620646600465613071747992246592315938147396190772103185817137038529326004760561412962201668389770725554825566953736716284343113987992864700900325676790685128817160463462418522642246402570682283016581222230057804879985656510771695758613515530218539473215833582183829798225895153003338045912140553584096924396140760676121525301058195614682162539856890075701101750323514991076973712917507982521542008608750784506792619920895529804396865253241297173815675916971892647322179550600398198363464963680856520836485432425572585935172822084831877580636795114296956092232548602814375307270931099435003948687151687125989974353563940560158043967322107935058235033241418093320329816960906082632083582450124495360985203111342511404844074991219362218791301406796233485005370080641212644003779238891216500584999715244746807276444351659527069416154603446824123527760841633248568264296090979945469688041621088665704329617019882013991798779245619160605838572260159730696115087897518634844302244014071132192870653140142932380728378105210967777287692067287750834482336191071417993226486236272597373930803067890830120071668924977191874948783098822688028206348988231805850789944220163932295903287702907052487147339722798410496483841413261416991580860152740870444430486780069772419368665722916111171367286199243313293455245112094531007382717069569926349218112605007822334288716896893992214050850559697833876220407142189878117151743077257906553071955058865860370963690765403769163951367966916510639266984635776878852381797716665142901446545972348323087299882493933144760790937987982280051819943086869290601848958919242572982072290090648167402153494675953603350439842604708073802446650620285688607447796739004104895596546857226287722709872721592030955545649513115693715758502298412910563563806555747408948223930543557142264974466083979314348775644302117666828868567308371981195304321594636917359085315182823834957541464099708692039475509434862476524661006129602056562513533073677676354719810829115612937757183727936155234158932681707784577639462697894835791236875537248707233910072688606080775930817095852661521758139850601888349810841653660895386815356817976838533003934395493999925439577763033368865192328348885432148204331191714549919241203370690466480410765772183992159356652909433026217553779725819424410944084276888276709882435608728524316224395489166505120717521602578897503648037369259267651228120639502773911073787781458517138424466943968284014654425814734762992440246686504165813574582029717995197508962368252575030967650796641816140788979102424351971053177370456728461730263072572657199952962328736930648223382569334251644683106632227749658818987266460999971255951269758850392622948068171425058390627523629046771459370942326601119630093540864084533400158231790380238097641377632009189731575239310787233939547403357765647639401588318744236844641976048315165255916754942220334990422982813768225212539978966983986689253022319905677097460936110377714169834344782717530867124199362901663914645671434916815258090497625267262471881359782806225423586438989216607214291943394494903495223815485927967091066061384029331195667296604013517479844332696645902794085986063380221291899174818007033897110600290085848422417068003441415720221640713063783749984030239976025118501063940987463821185565240488446194466868909965877738916139524305699006705979559357485318988177799831141893528798970651699143341580084036930419105599914376016438309692877687238682103831137719711458677103477686012039451058233893209724508544805799448105825641849169261628219424084934694338589235214137424364109626186389500717057550247868353204553837727350450351809347916178790284065195183158921245300700145106220873456260455752341589811177740144434931810059415787873206320763215248790421096722189382832394071940118871213937256284068948779599995671927197761420717835473764131243436154749868386292071535342215856548447460864586321912240786477891245221303822557544451741918209209792414548761175195762556888053826223254049536845256031471776560044971581101382516199784721881456540687170754289760392293351385932476935130264988034345722926228899626373227190820354646150345145502519663210545860232822143362203642313287206551440242333304192966201936483555696927720732758512527955766946469478810177787982992852336743396855241993723332324413875883035855714489881382476119451042977190498571509880858492652368773221142014334278644786759926600069695041854037681161796244391923939547980498530244834802386505203869529025124307096065279411364569314207839719781095572834778739290945829049499637063819137506354059122392635304049347091895730966987853629284553627390381096387761222878782120593929828946573675343305211022740412326870500626647092068286973000414719565279780288456483429947887368866790363963455477332640566214313684951636098543183154455001381492888855137955270580601322156012619472947553862634220334628419631052261883747279594543126517053507351731812215256213030541712237265538675396955302473959577429489366494518459180184354736397662252712808132541350112956834989061736147210242391642045920132003595110297524676537172748924593197472043220297108705052912750304022844837315345124245512882383803516656882893962146445888954817580934618118455024922689541804334372166575600652327128019610567877701477336561885113616804208998173641474719614145882577513929714827443072791917127810022275006128357633464006669742639938448144762866289029273893960293398262191817307002444611283882807419003080052046072443887341682687692892895005203640965424137382951206952612158790818414971863021728186880496377424900011026028226384917743300719877213599988887410546085097670529862368761520639949010474464427697440516041837006252134404274153255245234820780248246781930540584868898742515050140884310963645809113900610446844662364665689912380010450468105128192837674761579025568670146662808832937549698486291337957531604199272451534963352512229665444673675063956056506512441370842515648235299688254717644417311830610402983172329667099300486469265926014973435873428488475863356112213873673646659539987502955849770613257187364181524411256720085635759211073342306266845268764727152114374177341707968315470320373613834095908953469628340416790889722304068628373092502963736033734190127560336528307282337588404451253879129949751170271801803394169235526278956841501714666839548836580700491759217782109767710766111109996242739465017123266153948174025950022334443662148658661391629306899100775117303983626180737713692812797206849421330584503392703851451879012249016224976747018680733024450320129727876522548762777142915347972754082474423268462606866227113895977718537368907355181533917370585021438204517291472922935400532660193062015926001280518319010357134488716484603014879076089130608651348677148932134871993620650474307308503155796691242960242329647487857795889333250154795430374938669281439914051275436136600364185145866509049712240094353855509515506310088396437791031644870625314432561221930605932354441184762662328971308171727798252018254424900189397039597853211445624309780424171267325336864904091619694462440502253239645075715946366553827974732886921054262225495173031062437954647745023045355024103965393233600706700512794552963947268028909317391658653023859372160163750396320855077952822705506007191496644101285203209185649096291726192502766214743163814773873762734279063060637745543821828847129198782773571575199376091166809466124287525036386523081543940638420892197219330144167462231367990818912803408551692388026617068770535221030387686265250120137433867625183651464712771376493180084561727046530468764452161483468062495206831296959407711195105897192146189116600373409968963766292990882104166957840242191136093899720109743453843748801043017764593742072916575100982565435741021061281884926344779859254694390166968763232038291305730682452100691706602585390428488324343759452330179293320515613431715142058349540162565622455374346572766994811510037301100883695384826835542436533583107890845196384179454934711259942205291756053649421505224550892455903547078676335881396473346472848033407780703914201063931416569864312830168733538976315659073292361899715981914318947948225686278209031378349223383098364506362780873462259268826798496798439148730334774277321266026498983809818801258107096352617476315533594267850500719687306798501424850905670185697974969990216027560609798828212589708369080048204029397859257497588071622307732505053326226979562351720757456714544935481871339322916199529972390402303868395462053117966572223168135953963614822066410585857055861379531303324815152980154150030184671275188525370946816812902538135167316956969870444393523370743943858319585207979802680622011678259797864982175718139149348748640496887148922656040120932876659082184136388189764181398986261843847855329596462374706683608266746793343175205128950646580323711590514695401918765232578675190556132421997465409482998228458611114497561521266816802107960259682251703566000536895287477338861443469679583084921370962813927417100469406413537339605284713400605693867420549806799949393568837453492587754726001519577858264916177108979064184240370131788334749745587072132691787742300812296140118334533170318787671855594361501789610676695390092392768878449493220960510358534970922014829511821162756870085499981699652926312435212295947513870251707273056465077115716111478166067636738053398818662246848584929438708895913099155354892411863841658410075756960528633565074255549831830568469212176325478477651228837918640542449340550160475503684941814433872301286401144514664165406245721610357967000725592505585785784163037475142336284926762767693791366061711216727670006492712611457917542849332190945663022650348447105692723939056337394629732697044576676041667672590232820713511579677294743154581164466052875734521423780974767075209129324354254436242830155249314252369128465231910137360885552091202768030309585271843086446998502565969074375671041505711124696770510002077096306985413761803304601787926797188456922770035818316905196996723991662673966707193930827408543646986903397163480398536877729209903050098620659011232399012337563625101186340886377122235056122306679497113627267665814013136104899994120511075194105595936008576782806538066207356993348138717793344760066471953437192051514042458138912315973753257531559834652943530235718387652552537426973677483368692614226620775042836933252976572324288435474976769376344300391391035254952088830219620378561155787449428400663744340582651891966376931114285959600461263227806318439661171582228142095201420579963844716942476140343639663478245175806116084600083091677261352468998403285909553292276703586392113747383387632514390639238860697577708736472590570386348059800372122579043399782462649180609225653873255819414029092484140974780658026407318650865604544981057013906915838092148291911824148846577814138158276000308910169631713574171138898014185077079120372903282102055546666333630200748568929167423960993936951097803080682796639786508622524033973547179365560439365317452883584329961946464409561234322317041429940253903446558450303665079292306607047187119768629933485843425034639126902642052336624343009862428194087221822877875245068692138962295112589842680456262086705902373664467750439829028764554663500017320421675987682767099466289630154555266486637976385476495878713920275587516074112317477427819438849796614573781750438086562192652633994064991203215249820227496336633862608504928186380783697415341611234912203685316000211969497073373679966101759597139587868407599905928180510087911460125421034901475142591521769137819634382050659952722992271563872274801497946372079480025299515342629056616644624464429014799391325946018955159934639684822119272736624669430943769293746338460725096938561507361492980886257174187519237315296863587864235245024353498540956530064745821390758853324861323834719879521822989845510664896343251887405090046996282508821488543284264250683997633884788067634348186150432380140287815483940379252419230449024432031149399996889178554741124212359233692736746808475111748623395418474819703742514982282026240969907501314167069662870009449211136095421639251985382469985947271449258560432328380473090226776903646425345459809179746907474522298309093394491494498823736381371469576325904327261795652414229516267909991527690339919486484419040313908213055622541521998110094067549182374037838698743908931670842295479970296094691934563711464805398028287558418779289904693469171922540338826620200685532800837502209919765581081855464736070891034809001254602622410309447511962406175683831936632693499782980701125153431537438651457718853036902308222814075364654669566079577692847533564455305600501275397455424124074211021601167677834816060492131760976995730829526991410261717709393861487490455997027003063687609953768524707606269619383401440545326425469421702058193236434686486167535483381244113045490494256822306608588038307595499931921397847691665670292957482050720934196804056760124555752523539010657687277846517694080399401666837155423012699219171312738006994478406112603560564184590838998704426195829400375259118734228539489909748358281802783796888687666838847875125631279741426353712327976485149769378387807432937482104177990522706795163746282805296201419376688310988830581370715471049523626844584102328724016513891258316305856461463055634413448586480378889476726862068272568678657496513607062812411921602955559481179918066655256044575517949975986482352049061005421499868233466573118431220797916711609493477976612827957911891373295726287094576842557197053826230212714395827718378987428450404924068967334935190832375615184975691818941162591118166896023505664203416696329955364807471569935613303031776012082514503942522231681955730976814421619449056867725117593397351803727216822537696612377041140147880189389583570239363300191366699481266317556730324541388465250536437752838103832248886687440790589259711322274828086825194094540026125159652912459989768827593861212189817843912668411238229316490630321751697298915950019194981828463642837442725828411548572528336754386589575909407878248068428782722444182342041247493630618813646850367884070870194860783145366804118129711105558886616651972541401778758319679968851046574695370333441755807055195554987992653051106375481172174214909717310814858786316645052991170145166869385620840412951258413438015165605685709546872483172660044574140166897040926285897079408849896456598509874601532011806475797133777064016217146856504710203672853629502232780283136647347336493291053244632394049564834884175389907130312724678360838109516031549000028079033616564340041081647822442574475077255095584980646950180583208843366731858310804845065208512832832255742080073248308744255580757964743502445428700555734882007639060638722737097485851840766253305582214535646440011875907431618029601167282403429605810133707834827573183919848403971936637811593002604634504594035639740917876629378853371329567713760243945624341212216766416353111310182272970550631200081566904034082311211340065645729161359545130351511592431621137469083517562628729450330641613616861597605528654036464949961009517729736634199248069881152835659027835416615846457251268260896653940522710719695290996015602798853134767585624039671145786389619070815909089229613349031046041890456896351547989395837359365995861602724668186192422261463518872829317451381059327429816197253140197688464428998186251357776432595712768198562566565158597711282725982311816512004856252718376739035116218343916590569796291584666605977995144609361896066456495371942087148242211908620336829562132210207471620440866975084342117523347088057667644509809002745744723104613620723851282332053284445041166737308798919840840138982153286700957613435174158338499132915341357627374135425944089636491028853629134525682654291177689424848371926458847954041849260071237755224128319192030026091983822552249214496836570359995343850885075297524167536145369038363808379359389522924784279766763874662337883927678989053756847373876784453185339861140378318391127588007236027495966651927548719872445362929249124891847863405008542351140474577612512734433404711040124175116377331325107223768689195463400053433169843150089572464747908619085046192184717322756177654925320807970731954602050137015932046495025178359057470441539105753059067806623769951670178633151395504792993845314943142530039592645927787136856031151722031225776088571675166756542491366945305553381992058948879926925763080762083204176188393046543446159445548799960806236553723785269344063213018149437351312775741989650256455849245743397388022360640138594222904822780961897053264495450664911601495879878096757101591555526846658433399032576706672835701550749960239858677790590329122398633686386898331482654275044963112441637654947617187755287186050964016003754500886834089245404800902124714832256393889102847571335825998369072685703378883917724836582270499846265153100218306304959020022085895171601553762995158877746045659775748002265274495784868079370641074965691996543467447776335578363296946069902810737849357455004579825185217746305724128185218231134464679234115087948203998138420936029586512653256818092644488633847583355857785166539127350474810441075157912578270797684130005764789959675734749834348871478633055136659076549530458485646130084392940169631369003867378317969106859375268993995232441945167176027588478231290675065010087035992739587593218578676087397612543540414512568501189770123352608772271421525866256140678221519163117157803940389172835303223616270605934705898336301038371503104607761716976642843519713733692437648504014828504647603881511202273496770329663846574934128713056662687230391307140783861263001023274964405868958919866391665823615005320316962948764412661282215466371305780575501632703227213922895984731751170337506553183593107529778215455011484044050841925222321186170970108102393098116064327458246683165590537431434369531207991989963874536154129839818859533541945213717927779476481957723688845370004695596002179457551046329557763129964353073472780430401654515530092745447345269679737580154705811344359091724524819943164647353379340749794696483687954477057982681210632090201916827984184649937768778629262388006688403169953019384350321415180140466134860053440737240648597621128103244688340765874322207160649587633887038817158340261970155038352376935168101714755454735626305871662930548907598247864592479852378494264228271154283417304982506323677044223047708151224971398471040929398154594327645065515488382239069579003356582370128176611335541063699280583735488598009170645730468241252576842076754073722828323837338312162338858274877892422578906079717112040628160386993351944817703069326645689104983240143212807169731592768424952600576650714364040604102194331710124486543843008886796480105547784391624490142240033935231555737716171552008292831023511216674639262618327750053140602181113166316591681416126768863587040770110861047917384073223571191566153542977374601060642738584705222490208796500463258548252210641884772734718215940642487301614680384546276576017725386139214127051207539733186281553398603345543555193251148187007496734563957197643037021200353861859789907315212748413974773564917964471407097951477025012832216221060012705752922546625872054084590218865428100898927555298873727975885175432667882590520230086585454557069525101550885703836657668048780880135629594680727757976804547093383521637697624913486000922579146476667256373006378000155760332343423962561389174942823576871507393972693467678787616600601967183231376063797628724525923728137483144317868824756352757661806264717127194165920442211747497083437638497343636884249238091570945207293247637613399351941349855524589129004796476375621284139558207181562228669052094184629475452108878244081005370515140729641710474457543381759056311884452501123192992966382021461259852749218453963496472596928796894139120791811544990217909927104549327361971738400664825385190983528850052529886315368306649851069221237959244862917435328454672683950335322783105506882542377779368318940935148557309939418756721839128207317720393395906614447775237672016385195294887061815068107708164876315752005874997512601516878680529736515515431522942562712592727980285830147267237536639284456260441934584063716613819119110140064332684954390495299012036924844583843657793501611233352653576315503554768664308434904139515690175192833215933374741747865449062827534840559919333936142561913373807990893547930877119376176921649693668835320994791016034779259781848948377963821749371340081056466325262392276226309995430095942002918058788916743230601363527383803520270283436200817476898461794409176631005608825980904464259726115409133599582118936023085380679381637256464654318515415509671166735774174169468594145236515276960854048490101562198918065258174738971749978036459083969856730115603225611908196311192766531543921346623754933676745329571041117834789974920601306339027885956938683069387385495877739235935002540138291961446319537677168416499571865713989879118795703510664407974267127215370136853454971532137748102654916675195257902548140259305358641315526029854552311710516704124339794272770643790073972840040564115245655426723311242371809042461293781609645545825942935609440799388538081621141327036386098936871423715251951846187464282266953125533318131345592611208382171665793479960346041872733590071457064031228400009570627741578576931922787274928739633958799414886374317107733750507332935932011401764180828368327796009070219450046216292903990332262703203711424043151296666132324797026307524743290188490204816534620488044920879991086731777162081397922038271346516215044525824281956086582845028629561262412330663083222407064052447077733683369324151773851739556492169956152568434992033809755178861257061889013792964019200091300637595081184875356834350776628695719333912205614453526432206887431834310891546695220345122686617334084998232425500356005509625705151098420247556093011238106279428838510186317274163804654975325514074559539429565852146814477526474290217460306113462586327131690218934904285663054738991105821944363422987949794486071652763022876035876531354230014041295706901085427623941914035550743202878583023519467171967008504261449045617971661685201452123961461804521329733558020730663603875576398444111224986000119958775760609423645640934576134443656796269235634399221900395323863973860546619491255162105786958830568947200006924958465855890195616334331698797089824610677840012840522030614551113615365519227388113217020027077883527965640567890118877493967940950237463624960055664816937923911447547123997741354853197235502979854161860032574175923595059827039635269375051887987398810371621755537098345645103163800479254791735499396317229264968233869269566531437463959070333050898639015135547345063487727262430349590489530158538449012338740870867738089984909308146871670314196502225335424657737693943369380242287483515476179622245823289934333621303040460434332535493133704738803526705930478597817479012406416529674159294092405787538731602470917959332660251482657801462052421902544539600499425473996689416600967608114029377553480806854562265116136208351830465705801052004671017798838391320797730717858300578842661394797060675046559479707641601676277341762560083333347097328564749136734082801925596702625298945015869371143825591427350536502396100223593625450836090340003070765960534309491278543365481593880461811749523081101498469072666235248619211132581711303898512226212240854574021654427201009341237729134076978843583136549136406885193522413864642096600228529576398215471994390613726629833211690437199094391653185914913317586546148213952010074994196273744215153376844669232001255786794628754871482827505070096413983461546085119249428210874483493632260977742879787471482589623040870261164125464976905382924484656772940419060287298527276093460096866184561885801337026057010414236961732758022555488791182370030272892996478024840602278053264129243621023863960658765660844503658640826884938943415014300090387621159049244192734363155189958674380667673040112075107493386045360444451568830311090025367970719234084410133028340449010220600713948774693179885197555598316079423530645460692695817997767221903504496790752201180820090305426070031558230489888040794203215951426883322687201235985635115376612190945075142360980429529450805820238361849489573934718787479931333513834150002291686094901869203103088024902539390267423518094268806714971624843988592869225346198647301286876293755199574137018766011932428751103416115567500724959254671352663294304657179669415374646787138679269068497696175186091782083727026044531352453055786367507755193812351250357865086635702288164457142939666619051601706278039372509402535814129649498734706981477092712132965838189942803713820521901562529677500860308013529574535016151105875488388986239451203663353368371514441694846919919260732411522738063864690690428772895084099467159713963993799780608817510211310079573618205251711404677131321991806403043519315284853799035497382231305281373932813846317105953127815155185061511182184135333694035464969260792770545547906050117256729882253575955527480012953573693072218225002717136518531290500172973891277780730275258292096140000299427355800754853829572901713103501611681228862964403916075004733547369309645408795534886194633583411154723966359458190206399716928381952129439690662470865214403777770502766170193627803399737901200412203495424558492860153883200762536140202896474883194536910585492468065264744890998253615267799300463658838581006749813277016659221523872021399961279044732864429302878295044796722380074891887014640743201838602029499788075891574389941227902025840560352837547587981414509674000085242249070679317620372994006731501073589946645859913707910297934500723637489631609603650247530302415842238793584469522433049291309686813210063193310016328112688668000615485628637688202165154737870604329062267889421367839067616223545837072132748864000249335882269081577260492451707029275851309599420493862738090853565572434421707412629897370741947616146060737994138168500338402525687076479662003991419390553231982528803667142745789922037950414912831651735281104256197855072799649085950516474250187140824562354841687460993951684757386545084621942782195621718085550192614116970573076600515529606827932093863111385435667396268724004152720574193962228125871785734082003979343910830279164106231501524437864503653498303261892494577096016467270843573326439087333897314855701039233119091182545478884562732227506350287708697491666335465440474244164926401576866580263456534392380696631885701663188398913823332434284273907554545485327274497233691227743337273517070223291917668353693188728281812008889112125868794595024720610462114187800264396838982452765820533076567237085979144411446158407623984986251702346085218293254812145608573182024222388785723909718422231682060693276288975673781222945670878533802110876314500971920396926778418739087397283126829492198134167759719728750443088596370208224391703941524442733981870892542442473344269010247532422468247318850633483867537638796128706129737730391103344163525201067760755222591893847995631902513915087086921150377085127372440319509877887341771589592176013615284586589842711828842534990526319257021013691880046703627110450473263809402867461415746062163341034232207258210435292703846633958084497604316784934656551386377129576879922472438831548372223177686650647554874233532546971271057197598695598587543114659996091097770927549849107979952164394383608464294568180232989254944502055377202842480620912538264386303065290582632154952011252629880386306770941036338514299004365774870152624638102924735796003616809937451744752874236748366677864755818832060867339911289118107157743939016146946121553307397494621952460321105754448561438910544914649273145693163885881049520110190901020845281330952887444133661382340782539511727195186202329015326837895190264394984307783432663919265252131998719857490861157920075512616652095408131282231665483605784723929152362956748837528246763223841190997977291908988471323884016454568263099847154817561355960246924053185593685515727062487142936708772190132075396470687752882715639195340466399042620799363911743999821525128336390425723172219027452165747160566352541387615241541442676863270067104760408418971898809988322933210399326080080277181433833559102626221744352876839311031568352221734089263125958589581660907447315679105531568011133909983603749159421668361166151291524563453067630154116417967324135708426156943826385873351553124338952699004157473749225323183208476287617342057456764760960075692962570661712835576674850847952548730324992395242335187796746436145236094909224162099390280904803707466832713689333975506246710740674276187745437520140470740613679185703401097776007043468117855947694343850267629214448098326753292404849546186444170573421762491594175634459519162624707163701348742176110231544446095556856666281637032155356538616377006491083033473951282550694921053447203294648723984870638443468947745288136438655804808564036686579469240413707027798410492447868961878695360617791134423962623009480883983713535216391898247741805305595965079318987742955460161588337972538319642839548537919956575614030667164343629458871565587110622829097916825403836000973661291474914345162113924512947618059358585763865738212613655781400024591002009340255454372427876301993713080151325171295388682621551706992571853561885744945551480659787189969412883074668726561079878681194220030134570936646683139629357725563279966809638775449693612021299475843784299211825548662513626739819645282715220270242075125863620041266619756972244603806834254732375319904923754740128088433734689875241599384371198481429704290077561824742417383506497188276075806414535101862555234903169589528080345189056757301722535896762715381773141451012876281388356039174744759695365961782847709078045776901804832144350707787080933110124889659523045929677885928806462931318376383735705242703693174379515829787630371648711271273550688351773300511567789647761572485657542376438892967772114632142399225935218554321140747597628280623260621221650335649615432958522260043929193564549371294021269115553299359074536021347168794326668206630279606898672194549677466641791832877995627212951116672738770804093725429038583384176178415393810686337931945270975948360546636444453344449843748726180875142859035033600302844607001861308826879878162326869339393383290607900165648749776293870511189407396449361385908444890977264675749030699195956799892940017491133811929663101694768314487244550124525028755545156254692080392819550308419667030985925544783865340908141670986251830893282716155035729787821252782801512074863770880068259404747357136689192342824623898771462070727854422509477093362686552684244461976341634862194777952876802949554240422015343177462519633696677949933682426803837242841819256732651377823146652323967290880553187482282931151052341490068943309420490781346183908249481330715948674606637318093587115423747058236398675124241920588151775902668187225193396904852771232651010228359309485377652092459482319333016211573123638476014906056992737200767343711617909323201077889134007006800442886104687217491315468643892820862991806785450237465909815853856436304898263853086645132078481786180832934339216182868139277264304051574825704417669576837717995280610094304249826875546325835860229786941755282542737262197614611437899965036729827161360280447264322238786787548252938696177820455183746609525609010256538699096181472620426601323223341736834854850404353787599848863116917627768686818388155305620617177973342577978523636957643166008812118313346230410666947341278814140271254381066272720161866570940407619785135317931078334253304765329145504274096945289957507693684455895121903281304883640197964974263581906255373715326440867069253100119661017736777001906663333511982649611940464187811927730633872480509923367920931160158936397382676687671926008969137371308214242793537343562134091310391570366560591963800501878797585852289943745900901799471176303220115954612060124529122738887109452793551365268776727020540110190834222821040195350151474814082215111748127485583699859534302195688641514821908968478701477340130249600062884312851702659853167984705840478781269272802657677993778691151732951281858898498091665956900617335597396763220777059308041588754410029744743415393715295227667221279895622908536576513893925739602253456392171012980978598683586688977570717220935991515990354774942439865458453822995787940691436291015110687250280808681067379103298417372493194015300142392765759471589244665795726664524991135220469878217589387296975860133208430274948095007699464796762038826679988879940824240049316417658388568823219586684860783457971469147745041033317961812811798931799899899272672257783776257457918193454445017156875000208131806710122387931008272756306526380703584606044252779611285651151413841247659651373773989197353112620131973734075154162621966283372291602772268043438276934777442533945798038470947691630656631616872815211173891160880526292679891556181330400020406730149515404514109553770059726531944186669576415372562959983627096087311434752654000476227172846010428687676201887353439956079264907345402733382757591578666312377291148944686627346645623356487427874173948016159483142022825856429737152494543876586851958742020625040515498764279765689024570429736286751117724967679909711972201804841876284297369980217725114821933368742604650854485227868307666022560291755057826056426536327266794140736118554010708288730373585208355412352768920762966869849823146341987427489547273769118236781924362969876738147585211875944735724574778832847565700371639803038020054686221749904067810976633692015290054094534919516501126090689044974945455075014532548081161193684261055985369319698769545755452767099557901629835646464077656232813917671629012468931422628803485108063850137035130337065596983801960670147735088160592876243749242615511586300293621049141111402766918753158504321893117852595611524343853355561594072670658624348859353420117957206034304907800691149574090380526985542485325297244489491545169649156575483742589571918926335503147295782208966554813731106147767703542047011460744162709157296015690420547058324769756067099055348055659911491486184990812923995763660898396524321764780985681528969572630266765828556994230978906584412888328957115806034582078280883515093420757659965752657291498171129875795950720511528791311261669249225741494874629321500325720894924371051716253737418644310470058989897795302376894399109174528991533901736512950205051955067194519129899034162694105825213256764521352417055137175649729811912312863722002121334472126663211285244133516620852158199180811114292222687958290054477030898051698064096530003671681618210826864718628756760066204000737000769448980551172418726456768070424434035174109709153778010152330622370941218993375006906443675494867153445985136041530456072389809597908653984989700584045382899110248031336133762183061557982101349704196345878536009933669129561617795381825857846990772639074453038406917951587380673893902876434817414001149805592223790909310435618566563495964503441039044625321837515397395317257699308190463610396760296452886917358480195886659147313563413639684337874352203618867422104401458334503321366702089580780871075288199078788700203773368932612640278153268757646174444900465616331356402283176160830100416230625450555578505165738844803448001914672388746554511781014604429239207033297511973518260215735209037137149767335602474083759816834630494550366510669557831526125272381832238140504352952340231140839445143462864459455514789896662919386795160352340856526236080668691112776796040267843722581614411989549484930989601023931336282324082015153230786659150618774635435967655554921796180175367158848612094617687034633147380828548746816100071226938570845090601026749246994369023740276506104557977865865263855783774783946280306587401321350967398351115643340929349771630584020756895189111737696674237337657209362759571213638630724860447389438328333377123374904002256545547192538149389207125469607164354785319070815192965640636577467693311704215040248091693839757854308727329662233757023305593303226280182746973348532206730760743210995365995808428341444218949585877541088880007495298830871541114503592512463612023107004059577787072222791717963122365333328043355388558950417858523798942043809263948891948933512308195056534820468995204425914541779025554329668281831403838161533395569842738273636937796842250475942586819007347578030789929416767809559794247246784909583098213236489513100629751741954916629760071324304030680860673123699779531150748986193620841566292513190786295737635164579891630607183858136913748819381666081815558551002454084439788365696902731150314906357332855209453983422843186008286076108910528754437832082335578040259192318164276195088162169635129782667599225904911488646196538070606158028885269978619349457109183125232372025895936544383753912799734963759797332799220469557707776131986596426778222293080672522990461365963082050269677100779727228191417910731549961929142695361879421636574284259248362465623711530022346377916339580699171318370283187698193654452057950320670247467921410194791548606498810379649836225027256224889949811265426236869741526483472717900549407914113483475019341788071425931657184012805716755014710026505254683898143790781044296956898485811309183148882912226583549419072247802081865353306051455130942656176405218788364508607093090683678609876860362635692105691081728076707601796357395007117578365304411556982184556585056781746290801468893457300214625828248744691251520149359444556966267659279054609806248365403289793572857361537944450654836156803969691261394036405972108092206310756410059170548932008353062114118536024906024770852655191696531713019848975966084825050582826201792104532262972741249548218937821595675266788652323158746978137545106792730140807601692799253540629826957656676011411399959085125975602605189785370333480661301740819925887680193377707529605842072162296340576940253391599533651709138393702425408858757693997806303562155032809853012090704461185942434391888355715289419834818435596850425170155610917242325790457044918906387119582786285799701752408093305739148579494546358127251988669644502721220751022107770519441306260708711561214603250908137770193947747772598071038882299387614703422408372386806095738219077583253641693654113508238497678065331834468834843536399742818739018010675485137616610783764446069402243080114479743966528282173126762475215892619889065864161890806688139121965335816296201040219165340981219648532337297102058995659780091493093888734036278618553471575557275385578545367923544051416854356860515147615351911737138567150197704093748882187093809211534247470664388776808883741408390801377110791943610874936821546110546275217621977194259827662469927574624772674410336115267712604908481380640507046544188742625120691875234295640866008892671765063349454339081555868661286750684650436236405809512887299069022149181447249684813583870681811752937057044652991532552665560846189258469054824744753056848538460772040588670191077339342020854968968698433894336582351856543962734880990387539907024300914630077689885994286032063413055981937680730058657896628401157665124275567526567881985194266506039725097001283754242668050307661013371313432224271592285833209230545682193515730819784875151042229225284448848765688193913017363282311342561321251715721661098585134984082771032691022872909327402954242165559761954926475514142649549270100532237468440879265338175090838817608143375621876757490331000266241560201785527163127519802566448054090854811157301631255925398095111538197337512515686589681970454523213281304359221024810173859921188850363610832784793471547770969399535498599261282557351986698414742044552608865183754538007646224718681064560990742512308012460288331179608446708616102939986411739824123347411881748526254810526983435184092361670994932461226226871395571096106115183006840520101324509137573774043042196337447076731418002099280165839911334874974779971933056020902517678758152566847090459767482769256359901010645416652113191856624310909038581263977905706949413486633255375002098846657843114034001340970678747002080640873041402671999382196797268108763956576834363740271459278929170895733545341658075409426732393729814781258740334496495083102497735341136269127045189882892254605578542128266881283722672103630650411060560758737785492732533289844846275771662825973002688044809077694439065902649894527602186942613735327319747162438419549435339687992610876019865654336090484781382983071398836980569999267615887592791324284263906140164108437487811063484104124962149627473012035726094755266775508454634638904532343084037402149127669534764971972282630781653516529923945790988485436127650771351913337767536013692564624045927213048904903730612392307985139473309043330177964251204438620663588769813118146800750458237710512477328442848202632129101705617885380149395294875812059664972438704710120985709174705956253419749272139154361163106278293511721147722162311213553135186006413504825744404025641798505954088700020814672492008899111471824937148396361002378187602960296365199949071020874691750085523871346866983730008627663729357407985233684263831247194993967597911243890696495587533097605965451923075426684150210305625475651756863155042707593660677475269703248671143793188117098487472761680876126801684969398962913399808432026367481748870255298555163459476428088916769638976006504256219044791264247360074772934922268128787005840360048261947613655003921578991624539465506644410151100505339222618400277826706083952721559063638975578026300593678270836694455647076108801081153684991818982168828676183854946081175592620843391461246510107025746851423426398160474118678833792070490994092260164360725149220844431478494547539753756096039856611809946660383721000542626337392677371655798137779269625192987314481204592060047157104943682211977557631625097486130146913541645028735036907226868744604767376882603005599154426013999689510097053706109886640161923865656083059241042175235355763309967523645600275683651480063664957118721483218637948749914152878617866523903141659068512666832512072734164913570005807289098567084690778089864939370173854739823157940582877201334011959068965431777506380797632126569050634725648206783278395921106456922312310942732835912531112809713115005928030838552573366431803801210746599316766431413687376518257333447287675084556505476955973152421136730795515212508441227114368576935363473933755157104765735477424961478696281431069016579288192701884508879501916246907602371538515373651026162846367805392110670404487744958241974039003470656666422678900007047916961832070074284795851983649170013681327671714068309356751393460176597909451163204062921107168178606600873129187570457762851831578102619137767278446635222318520531270412957153688691976421317863782955293530369669221065443598481593746829221100642263811643498831082525445121223165831071859147383500235002332607711430063461156315324894297119262639470681317848709674071645753477710762245182728349907566747302317521750561364375638158096113532438699160319745021200731990989114166633998647985711257280939331201669957833116294869359449691287519956139132882060750342378031576751700118174061845802500077851465326012040327605866773536093091765847893141774972670945873941201637579753821943510958779707315627420262104224872558275081123901420081261056067818830539181566143740685472221310523509055401527763041624336240184444689364373514996850005972094381242232573009917811839859945600426899364566661629217067672520380934446659153920512694531850804656725399870846304106581234988108450082283402288594117758581743218349496913204050247295095564854340958485920632789610404161510601648771835325978080860369889735540742531636260361016278149159834252177550534131911187806085070190412395257314916873760384638166423509628715331264567595196201391864260737555132054739986476146430703655868122528139911177413754489900418821905735928157517434765448999267697991423366033595522712102316522549982108011696142555779441362466832005917789272541378990270038273798818418517612994211544953929083266674226241355266441628592013625111119000648853752794775933126421206612804629190159853469949975382730149036448876744089624881054336636341481556134714111284434849641419050251596350792669288800231187355693243636283161167915918023075282528209832781443318780949873388636936573656742220959636634229209692994277011451590666370440181230434984837343007130593089359975412622402553505605261767396833274306054962419904370256314695290036964769689083550674007424227608179756447391445363274326531380979989639511824369467193101437529048727071682407356252881317089376358405929722028247448397151543806802986697057488361637229307110617079262832322564007200020606765900553163674992346860661630027147418820758310915488784233922579856033759958146172700617749830737825063509201343296099769056362767814293092341725120476053158625487509879422184960651409950285065249250159460676841149949046585497925113785398834226472748161046651712392174912116534278985664207356302676501602451582166453561331173342680763242311755880393923821432681391365361225591965886684163408737921041907014574827596748802122401114444623175797575125023644777210980936403844849128018349170262228562155503258214779696007677604884018670035121089120908064016086437938973733042948374607398327580857093256174019213721532588969525773144816674006864425173483980531747329991957326123628725956335648963100777130810058945862679997574787542938483726188989238976734593169321351825059344569751248270360613188709095063364101086818854237393974169501614143904503260001481558515664303211108235348660715887444419576757441206469365978538728615533080706920039349513386601032424504588589160807015696535666981628669059906023573280445972758069491277565948936047074855726845749357126306267084943748431479581736646344452487778787575572008632963680642542805507618089175034650737270939554990394603899846529094062683227680002645036828863310768507824990638916087964477661871333892415489025065576348638311494016139712973203602829100292422451367864125421033473324052409067051412624903288139179405733195154512616319445676993236913434430575757291240011825033746379901569372223530717164360242489917864862561729735210920595194746728273700262542599385859217222789352249642642787961235659343662432743016633762088479311528094264985678522487763517999471400087481667266246608401729265142589272451616518849950318790554926241103576132657869621834850028267536825740450029777756563872165152230814938535836610264460571602025514775703801910232526614305940684184628004994240730677060269913082089115648281429219325823334821904890954523845598574194693361507148340262203924210976893325152419928949822923737588078061798443314641801942658574792876301553114986504578375105941604265911621106502641051398295792475589846936186711663011024145227592461150728179703943466359743009639496955604338391509417112170216898473227415546095541918375645018623233571504234180949263655800475553360697371982533162191917464782165104013892884188308729734514615017164896763118431368849121224678927724240517217537104041042624838362043997843768059824219181857066906247736517269225772726637035081580457220034073727390331088671616556883481975175489571885949028189354490464149492017058970120600820649454517116859668687860921313712800345478887606997038621258963144156005937969973028950438440785093633227336896045583586424154366220281225205409193762577773226940824601795371598391029536796429586559183656464223164032557731728153127842163741254576289862520017902129655165667029921600918274650700697179985490935374863242887535618669707049757180372890689354581201196552113010728985547610360856131270428922463309881258554526760585303767137893111741527371463352260020477848373190402770265858193112903341983794524229180200765118481830843450897467330557687050032647934178331992956165317611230345914019690842942009743225635722311191687905004219745793888015233223567325139919062472092044811448903440316471166750523900694739336805524111677172627926731436137744368562162235926310939961879697994813092050656350090862815665991866793919536337895628839323639202564856373584454530572522348265438959549399255344135522533234830123638845875839699815854748390769302378865269458321895698556526040542501107490439557949290596873429804895567132652492591155325645285733990307744202486178571046054671356303981439399684140209335955091098556141770217669021509002474209782590035890419502408809426569255602959172155443160736601578837528311018813910491584257017025197550307259168401572141821870925231982151698488068673663124892556985631478379804352362076354971530773378201202640878290473610735401321354157998930518690214269028706984818545481908999918882975217450426611577715291507604547252955048375590183844083920486116756598480990823023746449271020624392131196232782385102709742261391272168400353608527576611352695503866413724400079246093184723910010034415404144011219429410232923169351380096170003639920510354027887906072736447650254119648283462725280781852258730204179507236890330826633970863294292545883155618017385941027058538585551781980309428280762886260543589486262834249739691082802494012064791588785514056769577318317907955057914379379043241864533103680500065706259598449287340469154066465184673380357753545214588020353482702908435571207526090406309540533845098350394351678467893540032342905461705784234669892452644111529739874942645699082656646259991145290761423470709039935933734584929102950854839301153377805947372632251680537032935593576031011067959252389461266777441116321319970080916979666871728322584648843912970582828297142187045223393511677545705575107542092515757592522020642834960021890263699928196338193727407574080685144238635040508211448299478537248772792317249709259225403147290088382983564809909580344475611294188290447029569376684175455533376278530925802665482601280025771774216794156161025544223701309407104343573778383333218564447145777711083389201378145874552227426047698261654260353098766500897965295754820239979058568208312287130852500196516316753073503471352035531421094291643141539979765498165352837944235993601534445198469835389197353797523332238245143450834016953064537459696196421080133797894097997147195705814071312819086236117298066367414153913123726135922091045714319179009011471401679334652134235026608208464172291454652698713560809886363792832781730984687583414575945852726134311465206010696817810183116271924872632220544047498675882100209000173279456160924707238331659192847559130418258243236337397852714004366976438213871763863314505970770121367659056275478346150144694553287345103765635653482642463111288117902449399054679726095222932601332698622466781646802336791589166911559649178924596505189371405903271260106786640820652818485705618973848242071340233717699342888171353518425178340503028029875671496054661229101789880874169355513846528477877678586518746456406948950186565928912935580047072279811630723772582556585341193095678353316683169804703928731289153291753291831123094559115415372395524056767869518138767777078798700420469784261354400665319645378719976643635595326723329117668560208407019445882717921765038768069418574870697662394138821445782849320205267558744124678191575717897412107264843275824714047367657949401073290744173751716166408410114713545262287303242298056526389752965992185177720868944268735648885789548947882773945276190520068030659521392618886948559332622437374605899528245113995233160161619941880486049190391350399894218264842648987386276366842243179943622018140680384966636338742377703496150149714924216695911255395352401168795044773774297193325753715208249438923504770917903493315524998169743104366025922256184662600565161562683166591572803211152414789031585223230327245969204610313122606494004060566933196362995746576937746689414725803960547693147417545105666031126045438785101863903308544679068950168273376237870055929825708359880624620270072453441224489531783613899930763763768869853062706576722951269402103183138029923919258202291558707284792615465983288082985466124886281727596779819681378114554034155102425061642139996416208545913166223860925679983804097366308437029265163437350756120608527777339553466783805980538932453174571658857688372217341395506990994308970593190786763364943765970229871411120744843627625187830126483224506684467351708188078621720538182597375231237836290657796599976529496756159501889243462488096557043952111278533771332516825512776077188574548536703743151214459419092522516055890038358603681307143613973160445096973842718966558419260806494187364896447824836295980580680955155346773001969386696745033345037118707314229780064357157108802587898244212799100594062511837717301695789445964964963112272993041472601631534203671666466317521822029337487879213736122154725076477794137886185867298588526913643520669940721712626476050118091851334275126808507484365209940346675707949778940612849690244177829716604880502905653816256500190976493821788011037101196647648464536168006461451235705363843901665170230767752507442999320211337702896929678689082241629082953710346959476372439786082364234350712263222637812120337817775607481767809761654074654738838033190607141475929124393062400341683462544299536178684231151061007001297886602768709486957575236082418351650365815832556721303574518455525594499274794422078168831545128396451714671232477244354715803787750965027211587472455907954049703768021166967679608722957148379565955305279457678648511371189213402574739680182965263040446889491874637668372226583098840936486258163463034893675386771857748192475619235470802635757536535713981796374225044486998035532860098997179084422487996162575071333985760236012264258437312616018488023863644200188836784139758759827774763770143217205234725744836354209253393940534396675158101709227627687137482482344856199482992989888589157802772883823674604744902972576209454067748655623914064837728305411051372331377018351879275466201700727996462374060373968444710399442942697077834461205057608695462376042515412526108765677414669864789801543479832618789582282228246332136244230541053966608338820811752679464382344193284409861522213592217543417582243513894582123053884665502024145472550967528720948170843519375506056426039626089261999455104232288969006919839763277355483503995931719671319833151934939382142096997128937044936688918066621997504170647075618013517170844137867688500066933740265572814206608849353692497042748283289676163842597429585143334701819713052116598829218618880797333494814485541849910210615403797146093008495273085803752465630591582086862778466778472658046680187622049110506164635311258685688044661223288210143742206017511870722282867149519683268074932101948001381842949375165149049304527150559644318428312182552442683352203857361281741223075826904207912110722481729317554985755491186047053610752912695986897552930347420965600808004115135545788075653767902775026835140342119083448866675318022634819558731717405827676402168510954501358107052818240380947383233055708075195779629331241645871512524648087927475610521826638069454577054630391353261991445994912564584548101567054910466016972442226750176005637936366907918611870897221449656906598588386832469992565533162962658469358132484586483358536951957492674603923310775554450496443968673200477745221905165762517947190749885604862221706056205127353088579603148929497205227482892722394352218187060645017141783455717540485681913383817691079330147945211710403661657437174332303212894994570299591173563771204029290131141243872136536770260147556860763161025003007918515672334882485705905171391740778366625933017929168034186251924641846648645080669197800803465368013634260789754483721050598153746653522413886131795595747997490969810706754276395186652091622416847429404729436916048668382406861228002300976185020226655221620237050512111966806427440994076179637215419740014837980330052325803915167988786712103911746850282079805481262509816992342130984373703860512623380983865452610968693287662700062193377805228114515057619830757905152958838288388990912628004260186169922687218904936355431614447910986289294681946170263492140356690784504597449290376680666677967490070855367579165647521308760919951844397714224052240998871584828736075046219492539003457226028798996415174281516965672699279092900858263769497109442242371450129928229958358787601636402631084856315624326436927662374255472443651582741524611698342098686786937300029899472316648195456683772329883687590290141640806981985947630974853251960108653115343019764235971068934304276367553834385238716144401735405704952149793473940932110537940128753718718944197170046394561208516735243447168933001168454683812185843116621648308327970695217101783250261027776070631558823509959709625226626078008241956796265810736508863858406321752126758112430061574009708926568191182257256512165920978576189561530551284520871861790146558207196176723881032486731667195860696035997631372893272661560634785951041372550222823958825010588387675839026934484082671399944933654298629352287589261834394978657140679440027439069669708012672377452823073837424185965505877270310496530262712487333846164126272852389888121519898131709003618104623420992892063532127926207639050746464044612265399303141605233610981276342901889344798342520087307132757409857609020694436615265301479460615597608657283635062818762376437865994350812145994149714539548020875808442371114091871211971317788175830622826157244200466833990834521043822126210385332395354179556031967250961004662531106687928557904691258399508493943258776730506536383603416881869720009952704902416597394537656833347356496677980068024360436362308992797439805460930723170631960060154863507728812422815545739461435476944344985660080856530666687317691340404056293114330193751733637264423025656696733918849278078758898052384193374525609478133358777544076478365338782822471691383204011220325125871290093238975576279614185665416923406757334324924474029578182285230651889933363922122023993287486797952986420623760560949600018776222803320738994914769449248853135312694874779473899622279021830855884701574353680458652066125886214704608751234143171553308514243425569654472788148892711529027255336170721670292436520684394413219663246934732363509440240826491823523683698325380997571030228836336695121191029092141465789964076878474984750746443399403953545443832584389723193202361829400398539410239233868968926613889161361635473347439808900827609324757200242215202442513913090879451610581359850235382073849845646998495101634338695166061971530094045486596674450688834431378781233279080927778105984199066058263310369364203933207518915064931200033407995243102084203747552090505220362061586375547369349995056130190707088713775496026652160085022440717342534944636899410727401026113228304887996047222469805223693358751030976115846590000840702165809724707283448398997012063095912551831135156140344113483724226906571875304274684676484954674889507515615956623958194417989471069191585752884675797848581295742878557789246493387555484182066871871690886901535134663895155952381029380017906937931916278761623848488430541161067030817579435673248498520669880532928025845760386831167800440806284010847951721866984635969929327624210277696323794973767877653159567718344661606260975897836550881913429777228349113245574563119589126832565252636323989771327807194198457000991174743275417483217530652260049239371753934807267135696133899918409994792648352949170933977614614810418542724604454800058195361256202636230770825816529565812454909488661358657692290129001780647198941279309935645252196856795645984393559814654143410614612735936585400960867765995506734790988405278849703492837137128477453654708173130218262633618701929126516797594542344774277921170871286047967692764516963509004740707550216322838278638200090967343542900855267730742536991024852413938791078090786375543647239875722427779879971810833428267088120163996397901520965681909853823423354122956655647210899186872020720178956042125021588381190859339930260091401586058339703769177740789356286265422042784895733561659019293059830952376787731049824136600884764488390052152064987709391608711753832774633737728368120250994936525371887602730273511509953874663275361426950835659302192181674411664099617085411503093263921500778318944612583290172880600432079346972791887939145517435945709269465934095199556558535003580314643224332872520334923635457680475273985854723648633618391912820109958275025087772035354500252544029151688613781013379681777184268221106476823882466645235008962577402808824356744043252329412181403706120892998312376988856410526585105458024750069543497317449841343774303874484742896218954521455510757198970653273675964852879358812115468901950947029691768751877649637995804058789819418592543732442446690510791718786308958164494241179014568284430325608287311704262932181624765318802656506605618113250773430832264578609297055728299449314227404175907077550101123706525712638959347884389502497598137199029006904372516567035294880735053027437824139709676815261817204322224209957991541898486691749409815451077460364289166278547591488689651565879928100053985610593122306610808620633152567499747057185406024744443064029251643588657236210873602784581882443894645950668043494848102172089946332029896160353041306728366375286330531217766397504485582263785577905110384668223471056915596298655903044414413853097517912141519355887142075036923153594396252141228781427226065142563836431417785967931394654965139682557540191179975315806211415925348335102043123547033518221585761756255225987019758787234595696305903622031576055370563811255112344170033956438296168772067179700098712500653800823952825849056475810487886023417614242517777667843289523157971684085103966158422472961191098080704589509863233072679700829417712525992202884370953308711935661591987739901457170833607293278545672713631099620150860852200557365445736386816110166188266143875063546113964731771993026969540046284072597262586794824468760123245783086015892033052633773513423181164464601453764139997437923719064283332587931689061602449885605754311194241828138675671485519590832854812529047416880397073127662355475504823690045688981886803626681081789488537830337901379351232184449426644531132596745316675514630221373840754374091602213453112807179517825239186643851166243655120978989524012916916211128265508214086794639804244548997223489640595097012895892658579965106715637182460202053326236116823302244090698831418432693760306261121792993023338895610684180055910976046282078051705575031924726041129028994012228436988128869007523278198297207165010074191970685598892790621816754384583094389860432537133870991997130223265371219058089766552629928376481276837610165250024683717581157401096884402423050994927173278408935032288905046739309941641214815781209702291937084974189037049263442701991844955731461362475037467286782499320211168118113933370704561869244542125332154735710316417406220652790189182732496314594389466738274639344627794633286540081816943482476470600796797910418788382229157332430776332460793181278894206922146010410570931943550935864126937974105172176569561627967204804236097742392058693236364560543101438986039634282361941450004892922687899505204956452006990017012694818312319986048933315500021572143086665311146059595230818409714779122760533837895630441478475714694437006158501244472926079068355868256937850409797496067801992821898007392569550730177500918707923453540317921186297543482667066121330678332457188388536841122682483009052018969111436662194717546243230274140886214248063689264790896634029719269488895625444636278116516801873643254538910406687011976838491105099342173623033859467208179307790470933469059978602612937269455644835570937408387757019127477903684421136449117280521298574653973231785510632687957728408845882848271115785571039207018939866245926646596902477589285798171923256135727759923104907996389532291798830846835646019489853536620805234656011216449843526764351053263316778592744827979439195561810389560170020757643313700759083211563040955779481834310583437495797707330272323401077052546542705495703830349090745629178937539249444419575003221111387005946946952727217141372341972532382686821939740684664897239074148527956345402995508620869938613181723875407703864132704762159942212776413930974629407223342828284171051934688027577985034864958582086513644166158745899863974995078390649419667531025727705284545551968681935842000209498323830798816035077019258228131681264514194896500965718594005369579238240449402576301891805899405221460900286425387057538678940200067176682142132127220805254258458791187567501645644742623791920080421457526629725289970684193542042569800199285166337297503191775429391512296650811327560666159604646302541094258325006748067289365695423516183183485961698303478850136745668763119895709283180070199006998268254692594390366325111607668409179538913787365681056784325744177483132921078696240448482675972111590489842518655724040662410346581784712576811524241945212053520580817807583599383720429123611405699922574633775760799167406998588237522664041916624445258361968931467666721827449719440217655030019503603632466446646073960846665475203023325878490647460286800508389657528244203413389269740955083087359072056145551499860668740445770973768371535103128341920009512400153925262749814298782611713479046203023024847829499837104647982385440502194101712574190760828596927263414705319576975700286696385375658022543155787155705360150875216546343509281799798079094729551364287222082576662362958501334603664445170030553006275392297722644881128808379625453108311179367846568102224294613379796583371419992416414820906832774037650434081073039525092785302602167052537834542217926434837499096455771607724824325985781015699765438850230429782808516552687871355287231447141453148041714126578927614393582397933837284297736842642966617161520136661549863994320589987309785950776890794868835372528786514350544958362875221506124845940223358026996803021296481695892831175535553251744255941635426342695876662579658569232660945855574414131156229002881915563677726034921498417899485432404239660279035569898593992826281383495862301717093566242597335782982264111571675356810705523689215668396904293714429324768170521462299233251753775923532516550433172768776067727916856590757173511571923188805426737205507050901922832383118560374890714345834860490932607193065462665556402672035201280189189285991465793648046176462893388236412538181927394552434170073438372725629781442766201562023929287407455695007645513600823141250469360103771916253823356110951450689230959137888077330280992434281348849780071528752436404584996677689519031466311290719673530283491441955328446309107599121401457318879738849040399977944249671096133698223242786222875305541660093430193433375211671953765727870266939503772348967271541333331124007809519435488916366038284317497070962652625386619746591730640678721029011842065119586399872067414027484321978891446075420241870418369831746439508234625605777189684959978584789970481181300731387842671552716488381887342123507196048490209144330330580271065580528286049857422909997346387437265708498563300684658425948350942977759583737564424786719650106503119272716703739242521559596543639247143277161159813621623449591113410925361391095443028535929262635139182212997150421682033567571838506366664263778960255698245497864375667068096099295107862992150721602068264239912691106192819539605956541022819478897910933960252721920883985422567978270347606999377652863231509684267273866846817471620069514190535898634343129999726889302479081592506621419180117335966090544246163206849677794480766853961200653733988284057261040276454702124519365633806755636112922597599402146310894594920703498792101674567826825678068949544402728082862902390688710228830288504677455712440090893690602276721191049220368971312313391403298879608106699144906588091404762053457363919303101580306291167615677708743236577985028324846982819658595100517794037735871968743232757602895103294334128094913589478199664773522729141830883450926851442666994502555029701066790250704211546952611118840064720430400456697447390144048424241453472580501433167676095755927238833896478432041496238504154573608865274296611600458120804841410627596135610913399410102621083500045668984594131235467537668624115965034564298249841024854577978536318384319132962171641460604311701719996542231520436463922164041961617921415261661792574955880864229659367629203464972084571550245479727085705065287165843182729178917279977095761626495521266158478466440720105882024644963667078618672756695025719543378973637054600009323061543467650422299005928689893345704006597028613080935655746095183687608610370736982076312926091068284144315148875506645651862769815788254281927515801510923304518799357348823595886378078345738534607364910744019803664142073062993162671429896550390550608454672340631406952451841587207632305797822615870057578748085967896758454337131800828388162324299326446204448868857838116513813554251192789454428045604246051559896526367982443852411828370883215112558273412989058888182380069081386393830406402283070603854664085138462417774742315775602456550118881733926852784056782603379354867661353385585927082281588931544443037277120621417675732832023521533696973958116946340768547240095744305162851443200676265579400613494218853590563589921203530479217474249051688113245460470119725049082473594157234167328279058370340348228134172161870547408744918822553709247440221783397586093665028685339757675168666008527564878719597273174909951231208079605630793747053464275574026820978594269587951813021410900574376428680229535421272059728147614310124418268511930287905305795902412023195043848061330851561843292441505791390539901513559208969230493638757468953750846362407160431760579278074629609165187523369727040001505726722565832742752939517847528976669194158780567646845977914419905410298603787172323209347493044890519622650575371392956573695548098567222532007353983778490468318818515880296610480278735603783817240134452106516902331874026993232110113097480152852945912486210448334579959022883869650271021121301007140795898646554943683051194270712468550080301563674546550012891905115702846324858091185544645076660694797941113895716694320367249524054962074176966699571195163056978741636748126214503915994272245811088326484214399312786531775657913896482100064036072495617931290637160834458682695948771622616186242723600420874151709225235756273968498431961510216296646204583750372439414689585552000426485661055286818798899890253946077164588044135066825879664629858457536253037793128561326705627581740461794761990925798842312532707148881000708565668787550360167211918310983987556659688284115408683865190774954848444461754361585158773190176234082475696369774117827094264541993623102549414890663365856736264790449220267227302927529920218721597826352125651486931886775726779795849104590998555970673660488157239565165200135769183981198658656735550139407474804657173821543521518909129215897761352969567137338832494942080214723073811632240581588644621057279323440067245380673736328195420594982503137805677827020697636069403038221406668419543710475118727345249664557882244847565336903140826318372779204675366071731066324719030036588749141382380413117165463499909858036214085156376703406629292024489316210073512669364538223134255919120938660918162751572123708640894659739945602761551469470757426768537296915292509195921380974742749194999370767334408167207570569037244663827319473611866768373140757151166547680986939197837906828777392775076236060566869337208167993794524876156840581675460222753189511470951349862979843181482471197653595974957675719637492482090696061989672762604890496730664110006480165943976560328756423239066906761470467531754997434197264717933992193709688351058784472210380397602731783826620927104003516200511306039576116656799403330372173043528458839714579619071623250810008930681021256778071869041487784584559031393259821531740699246488919255624857375000909748062851750926159923608731637144677173139086995817988648605697959330469510835811376480852138697036387136423463315739024209608594548255382915410052199337862518841797220371991582734885518625851795317127099243872775148949225290917541631213539142161363060963747703229942111328049040150284865692892626993600099533974422468458104835308390164932339717266364591927910503169666950996228846590619441301390557747555943694616202601373236607939733621280411270778290280032444074345384108471872412455281546250172456494592268516092462446229487787059339276714503871449454483583346319111438428068794033971982159486488135987112881706823487843514676254136100840560764760049147193262593872459731213094901446981524630915578236783142908720623166506844116872167757726553412424315744012892347788805747519958369536691751809703923900446245189241467842877981278839192028539321567863849747035632619731999350662009969061887784602429196587254044202789962457200625390385291462588483158815630719878061767406766263016961507449802397095640661796105765277859608067250736371051367882346389016778033195593170408128870057375616992773216370743827857191665561036025921703900504746304305562252473107121324112576893100720056341580775458181977717112956502726029464448614757494610830995484895730888235821620815711323476804821590125912945056980458108267585784690943516490150124206434025366893124961958902200242675528937500674516576582067417131011818672458619025872582018956357196208700434789203191470533505814449998279540291059631787635889851155244410940534933663236667857117782119745362922078391844118742722461695835441371988981415984137813279015357978581419512851872682348196483935850196498767368651600502133227660857515331020260189664518821424760647529411484878209371950438379906915993086535924009472273825445374266042754439692259104207408604916986478574528917220149753760210404353330825963510734817180791323703179077967131242887835192006007784118938100567946071366392459472292192556636302209282935780674346036547802096667826030849767748606699024209537059632055753664384543998014221205345473698277439439877875683117209749731398657087674111224318653460878705353498728633859115991160409313510756448374778863090516908470676795829628581509609526787481596624813754994930563305104753189137487172012820527440998850816705170664844652089436389357522467038160327639133668378128634706999027333611343536550570905020194912584936726224866643132087041212789502422403889376605081369497154152147465765985107535111346536092466810734209623711728277633582560665094971620843138769985143820424667788989443097227807803872240073989613787556879765712985069452814093121004259367817909749120514357483680250148202114074313276393377923952733777678004088915983937793219823959908490927633416779917302262148682555134579904700283867378688553373727495738361461898474703777408415662814890032485485494528379207780148658613908007573349085119892344206457504329927699302440699473774062715358869612084038781767565471213609721576218243320162393863770821927492141713207872422212487935843155237825554988551984887778367954389619223176874592766773585626504091123617817401511117084270550470700893941281480943891678805741155957846859102906046567415783741346951336470898345422968193313161973856266694204714579731863346794398946070207262383701884749171493607506891898608875302623388599851840889612263121890983403518903853930850515493636661651977524619952466714018502541798701214293561641970103859798966484917011369787699533345322867245694089287666305840037197721467478533742921821711343465887421664709102340268454814041929671909009036641483893350624992028358203420823675131810120155849064453084901225465861454631884820121321697675429866619453854235303418833244933144506254632887557793991353232042594378884215454010381202515588082262097816215759742435987040528606790719191367080482897461318662426573795753618627225965324813044931504819950569521760304993433573904546007795693709307938207968808648056702414680025565953332169281400121832584356164817852285514523357202088599014476113093265975116560449974587210174259191939135814459341760610678873407002633157782589038227059387936342537644406780438806303814396419498606947751615378402036245962048412984444156900171147161141357779699160201630671542893200306008017644364323953892663075161796938422928093696528666264696316093926895494314669869870732111360311741741556572024720692961502613189991765935714472574057646683593767697740123612249601222173795813835336514608824857366753838701953855449709790509324298271403874689175208923589401094013547792350082465868315778390997285958465386311627281613243700117376901117315092203402575826719551632240319359176696905955321438836165024037605176290646145530449008429809158441591561382256349183160572794859445734461237813121743691223240984677534056431479813987531477891612656026540043729901070145635144694187138975692034446112413882489805631012054663499927925186528877978124388268149673430411837363618700433286923052448184267119336922302769208208316248274584484277374072201609676302558877067215679836768051984645518634745632086810518856163202501867413422093979406287227929768979673575734140084786958837746154735453363237616762988024672814625744534306655004994220660608288909873846731869834068245815071888872359315116327676571567173111443161842875745163082778083627873250309057931904599923189975548981092557928485738874987597118373904231553662173808306217369858032441169818806038561770886717542652318592790052306990458848469845609564535882896016199170250182372779576511273404591886366138728442241375062401303107074976807201479964999013386279644811567006506601577317931575795778754604868634013664521482837979843028188548133954676903657795090768592984252110089389455439132298823670686328370836038474435366293728153662359881860307327243017329268366015295048234643193355003032506256236195088771695292083545518529418669510958243621967436171622537979425040187678186731457301285474066758898280538651365174003109611074879612759396102417611802026551518133733908316866113470300037681348095249420264195494729256690795947185896738563472529445780690279361208014453831717770816578226306074600184782780306345392840769135729337633361941868324591564059321249451727542887209333219935807386887031554453941581078273842984209147128924591581760429240807616970082682015703277624198785583478840726826546921401994667102714722568288797362221396301625916796952519870809779978127380719650718202160740056565161918290021723294253929427788909530106129760944440175768843137978845432876626503163498579669992690327275110386652913818697693049795528976139513398102359428465449490040926159358128843126321800421802004649213670980434827674752926847482328875660100985973498564862012401306911271950674152003365284085201386901190714534399067951859104794869728942253353555598058762499684973961227714565294056671056907095145884165524536596736779801244657582060028157716224249629271615860095839542295976418837067102376327804137055572847575732177817657372853032545589539262910371583053558474674310576652612009476732306827552959947386744121443313164659446783241832000040553134998871052582037097337249315452827860853600739641691825098391178797470482892078909408960739487886657171618318540231138558973923578137759244430485335881500048498675463382606466567684906541728018247836743383190333655905295646284715687729638174083673731358948209081207439598828925664232397494579707826961805959813278229485382981511940384414984079392899598509957025782202910694907608801369569546420384554918377624056846745221343755400920664848902079059113906286829509685927261959641386231631105116258768233111090243847027998930511209482598584662167189653800299645952176473283689198328179623018187355912481472706699838931210599788957714934836823103041839860058169409982166995860104455903552514302660200420008016862325560758373823828026365780972258277288474101118936460210583934760041105741293827364388553447194042612997521938695161227214291402534913575999602670083968970807803912719688556604024845874481269963085866253842008027157081674406611207295863939937623145796254056779493276705713467834362316955730583103240213865578446045634377404548980086390668263071457876450113227012686409688958502828091682264502361635646591344163997412603025274510133497235274126756300662594484395533685222494249304555079558569557706419044927400486561570658585681435848912839333275756372744754104589445902003307531582952575050809278475889234757634252932207427744423935924856685066944824421430456905302532840618365816021867538570604510149623521389890527012177330144076662868874503779951428107309410024792444960606012561449710136609945070719772248545445291621961197981571310055196024478048442366061850722325852334285647521701776015447099877293278845738842084277893627472482709438244672246013934337610553763922032671907326677243282682514253648765081022846970858067211035378814776141442670588450038620336331084471154389956424098689529905550217910216358686303889257518801036766651330053700832633802598775275755437721479311231355283063928308566291326862459360517315355424457357545673841143748514451535725864110101306527892728878996541935527576924346020980012574658667181622578308093193745103796963360374885092143820887883174210817784479627188213685039173002896621194724780224433634258433306786136503508283664322781953875331622580409165020436415387545507283961576629537450965873845371163562993224043329232166376815517303431278658742935296079786761953140855568325170836069229099952304940461949771398406488321065504290711437310021112037356189193054932546142339623914643485404834430751726761033409348542198476775327581390342352352906447087320185785036186431855347367380682359503671600041200290586568764564145511104114650428726610315358697392746100469272433643081482372356354312376495746107708485948268092040415295504749212851269780500397836079380939139195214549838702841292710779270801110281756992458144522613950133538422076099087151780492840380471608980619794681358079964438612580477871413315544735962169335906819626219071637741664384505895844282151243613901047629887386572207708901599736485722424129074013526356160449526123295397507706516166694814214612113231017673029255313001732249603779548414499687270519666807145299900438402735583225745268933530425226890643554337107830407466874115650824579856852414302420386426149514243839846493939361566549234744972729229546211413943419791279734951226678978058435629198395182015260998832323916459102869785571036073453276373198645872912438914018932827818669823274384411147819199433186430555503543139003100124831570052262422853517402800099357270751297750224853625227791709134700751366013432862881241130192464904667939626324522719909559605713762788175456922726252761706673213236937942716404082813080567667252728151590517940995939541469974709746805750650683953535906711077139399467529141853789386455582754161467920942440508209053356100540775499257957736929079754299300838206792967491292431434984522782837745045017568746887539463207948431243623292281661166611279042923242045508792941066845698763024686576450625007943625813709214616401363947967925773178303259814088900810206756307349963064246256746743360637087746732814875798898235450039140795224104487452977871179475985868563342154403422480020766420355343869799613018046869952862853024227962742836982069425196325972279123929983465564854156486072253184848452447626276080222587078571207600920018466462732298422699340987416203552824131212574572484160018980996381456162979153151624142477211693645509970077823466528570874398467068580125441468048186534104326181418780103164021807164059928131365345179394887567087170463542520324890856082131538603623294156575370314197668095264173249380453233078513880053864011112226550131007487700917444084908182082323686965494229333180180367251484243943852708579994092300417528918478855699364543073280638313270702224783219292647783090073277367099210464598011970984680092865193301886840681676264693075640164157320469904605468941245860709387634957186288859655932749717004730681589717446096400497904653933759416383687097019860672529555570358867122715576956420713750777704728636385600185060938255375965978235728864585837464653203814658512874601843792818792550347577623832283080298272713122507471405526556242480010496678839296364601010035547636248333262992749301639522696034431966713266384975561667221463993852958326407745796328874125874737521980505686618906020589579060276230698816354446261000177751327258087052685787917164093212589095598752711692626172880323176885968447403745726221058853175510301769002559063607726487692444126214106039344459272198765359452455576940690256767900851867124942132075216991637430591670084665744227245111274972308451945298362801718494181000288570648662956199707915787757908368159300490675835840386438708765644092621567600758141368383043645653687320310860380364127621967889896039909470576031440744264309688489151191900500525751504350338066657963649143959090432915014665098655572335595430602891648926180259532516403422673874688188974060254328795067895466210576941542693693720974573432488706928953986998956086690986376007743722446449954098827518446576658054629338132519407602337727458832306984259885974042410814557223467316145277606361958357697395771206800871221332855797741811319923858352473851793493331931610967276171434000724677091364337464812279248704523768415350756008319231364065579583842098772662583816092880760476233118446806814657352331968329806077333776644455710106636506977033754788209111916725096231460328596377424976464574978265029313119279343724404833949537044057568739318988495374279653039756526236464015840010868607057471943076423776950932134809933212888533163710328871713446386289303109167652833727688942336859060344199193414604363272738530021664897580296116930674844270982828556968854636281161007236558424144157854316585567829425614096053713029029430038751987995270949017869260909554958630355015628326575528010807771710541983755180115273640819464710619224908239288615387917337598286264637037244518135934948742677304121033499298422413265663939622502360789184622257037693108967179499646636547129082416022059505031607713827776704740067547085457395179780073727288089654003800322106917687390001290754391038080515235319509407984649848936432960232673869111755812889072767991859121787386453184714868232334315528969158925418925398782659636809580602844551760807719442155297366863720287444914759809034507204578695193156572382516195424884338928981938969946256534219005308474961350280539019763629912012404886891007215111880940898750621379672515827158830723553411847617458559140191538893824923751713549084267617751362358361306075018644569724454002415970481844305632935396620621063582700295853341266331352964717174580494480204814813362574461499892890231673943878774788315278054770642976628572863441581508945706090320994809001891900839990360301564328486266059232879225556093311843347864831457308909383546112667659124406404024361222011936241308183733777894004660185268308248583696252059477014371057526993011698275710249676949262987612696547903057960385031362538468343819674052831373874449673475789513918402139289409459203050702395338832882548682445921492253126722893315693568431176311576766740060165523314982190917607135705638643108505742745093700385556409075489066063220366543900588805171407833706207226107013197923408665791406532148410082850963968317524289537715581707360941346186342173529248147399597317874540250714510116394844797179564685020755883853765318693928167982281354119312175050454986044475899647432486046804430999237798643998022628743933981561153553120495052772874572924861689196955260562476251544920712198023881717302672865831286395822911705815519506481362524859444738269489893878705485262129946996228852871380013806539026036712974848240120813909229580574862904126838359774840710709709011062934156315540039853623132918772460522558625253959918203698606265852384221017504517663589705742939658168246398478701112287067440683338137827174591838927510851329016058873848353716685602240568502129840317711221151235217091519736127514151987512603375915791146147324323889533003429372733431965028854522305258456455693955579271825820213853031411910137720307265526896912361995332498405073306703137748944063517602773716296125922368525181701002764210182760017827230472412385487058600197005995646346951949438839609223753766937427370654540311165534234394415598339001534332957100779482298181410188580625668508849981227323153565261656417608739990097990435651387544634354740340875289223943835728479819360159683981447648109083307804736909610724993607827239466525894157990835864829567325940844828528972399634632741780896922589592463319672044563052262911346572224069872689775327641804848953898469869667648873609382574314831328384637770737762439108310743040970690786004951819265113576650524844745222855215806304637590704415540777755219461062029682092509272518329449163089605095755239581000881804998069288726977702182501881414770148513002859174887057329707725250502360354176112292237131822023098605036878521034790744241293067959731965439021790889339113075492639665706716740030218624448123791462262248875850367468204173717657530338225899216631677784017061263763416297444648113044515795003876781960027395131435837940173023076929732088290861348439484200770249031795771222358409251173691996345959204611819118138225934454506528725603111068387425029631667113009614289228025031679731521828490439987161258430300896235540911503102620733319845155169607989621175975770516871142434754757607510737917032829527567108195693023339595357575571622343858976712496260630138369552385740462880578788667650655664994889675153681766520552865886484818364917263740888993929912857957918256831563751116845857113565054215169298862634318052448912773530607088020470526782259539846468910704174027500198349596597804529295859340652700928871867782037954846666774788208930531574283231883848010154613782579469987671882585544780207005168289372976265276269461365480295819818798356134960448582136571848618331868945921290516098689625486609754782130265555557684497511729750240317064936954244661203921147492050160383741774767900086438913343744668766828895663065483120300542150568248263681086209908861703494121426074526436224965437956521173004774066679013474133544422277964609924291408410740266720918133363733444470494372122226260528443929700245431824260852162173497965797768352831938507977000384882010386395976384673779193090769803630350444987709377349601534700820690931531264561020550998646944062556739240125390755913582574460828386398778040573471772199923204637477289820360267280886256378186725792244231942529428126936419337673319425267260729144943800996899479838129041024132294978376317189012160049016542291612158160723111208486131912285455599695335926706990673004401011279380900896957297174028113460322951236522645538628423296326809286099184244138787851058212179103060948116410069506185225030321217880463936528702891235034749674874031123903719972216027412557217566366801084826280119172710333222942971511217472176287418718947453092412498672125471771726245040723585233015476254368892816456805159708251167765910921844969918949657917994947735743680060350918675393492969295737584404513628594736408616461701103413025644121566277766216006362316326255615786620367826048491791297567930782289096713912096158599191151683471218238894316852863259443827140507823326938341583469560453209376968945365879595052469431352442002270119057849681248790782445655808321263648271103441888029666794247247410619334093838323291943211121181233139773407759423558350343716719977269646128732117751464428897141725189579295003784827490734663519080126345761575815920592520814815951923977309346999148142523135287808725111143597480828390846020544659412767338896297049653960626924492959406397406847542929387196024954759024257252255759754140813912035244444960134043027276666737536259696676772375098581991625226980423403368961251511080486923768633405871184755955081433070660880392874470445832986037812281231994642518417863278923272793653095643207094668324533068219863522031372855809396545559098841095824595763664302112148848224386916959252600571148969531036330108331507027174760421456537204933045079019875169327820294451501296194463102804188025985647390930244712086027455673340137467843775675548119306359302695657262349575804998301687248020070694546468674520734683983741252584024205032225544767386124574359389563473735334802584082678919448182321284783559116527457599392372422246209328868075840754354053556280370140946288962300178362858974446743039604253019811480869287515665478687649887527338269559467640234974938595944521298623507821019721170115293594127539663332091418673694540707906482873453977003303142915465554999249510378105060059339464739918505176024544098871685842406021673314742308911987329840867172151488855977952660130873940879340969228533680933377449393242921565520938297359940787457334331326807400952481913132199515696069717239516397603024580830552164981093995900853184939635225271895712448064802087639417965894235639622925877860543442105539987466649161648321841115736934387515395736916305925495294690302003478778906849374358818752457136831323609030872783079246439152667217479416444810353374495068324574698033849911222530237303706992993666625718283740629161445530740697066426617567847103547156425636943114903484127391546894110819638471864456381420449412667173044056140491420663285078636019355938942264886281242944548496249434696545698715157660435333107372176848843699236474896710560781601403741320560986708195505804069378048024128099924997865088453050420149223256087066020689486894750809693957253887529551587640260364950739961769829304331705568023272314806680509109529222682445974399655172333194226254636659362667790113743283971706086909058927049214009640746767765726384079195826711158905448553392762439269787889383370971010501401521014902345674271261408228381229244420710251556077568484144633537833376429956842807389171191188333700064987603673701802008712127594940262394162747438174765454119071035863198337083754918675333502869678759227085747127098132884390938317832015262068257246222193384540442382818623672728685283145415560073533016673684107865310906853017930411767882822318418984994006145682353927064304487981981465489924196716017932511129931260099431979596462075700340734575336000612451998144033579421518179589836703212517832198761221219276539572772361585503983631824434911889989087595942914317364749525663719229423953836424925898143512205247578549874665641803048155547653763139854407880845640164174662545518337621676993309294070303550555996759516237306686725589965554162298756332138078899809584836136992398285201434867307606381177910591976713471254438196402991310434326827751172450059842907322720303621566802837488533915588838672978672208238609159425573323421926189527698684368418892984440233104110503812312563803873766490074501636596431037517451075986490880678002981986596859437331536139842127599143522511580612263600884798415498584997848853475563365805140846540114970619464087449478578202342033388597313273648807325755415712277531255118442819045515189703371727369047312788300815018127745654666559311031201514158815850359614755924801346965717667007921492245580618819702828876459501169073199745755456638396850117395382834044699091732816838139926509170897470887650169975688924540698700564430810940930931281152931097727367435910913921930391410795000272970349010644121879642860376200226329206967799166927421412501170506673226018299470127401740646256388809342455628938845734835465298807697511280943457270745349319176453923942637801301882103431009175818625897346541317572133163286436903645481250037083120136328667370636351977553546012559147657331192921709200037518491456938489593501212984046257746991266522462424524772195099024926565366256886752460645141731182836747440279515459014159992593389315576705334544494288860257564536380144074741298583982627601299197449668899210856573623494458156235568807336280952258457995271920325220615558920136457338402836938777301969763789492466913787598959768459911498881850595034207832381352690468769441786711451540108375985448168997178512882522247455352330372390033917570938426730296195419220790319255238046571199646450699245396403046592233824450878376639623796402070373671174354583204392092489737727951335636394211696172010891988226061721760636683973193067303069558670533337835752940604769321835354117852771705912282930131388250246699675678906624520830996401915835811118109049181582986982705754208069804797487783469343029467071500725352595274581439265878896776785076583641108657306006520287955132972540613566460305399988513761366015226370805331313391533358414539742585400731956924559739890568835732734589975692613005714861835110324984946373968902150269105575983628278608214501792040489387054431872509735160885732347920490653242903320350050475742376541280773639483665259487950412410617989070236569657812668114205520953078173340792261385325605473153472652145275424179354190215123673543304758842678771019652980643433681624915663924021730726476565210880919213017245956983752910312662892055312508975372082351211355652640612233802692775590138854314562051877516585639458934742516454864077692914554883032257980231391226782535347691376403388295192985692699950590715572941658913057612896833844844409961166329498667942562378774510221788706109143402288151715447909547268342147304950677102774207671608407908430108972654814050633266566500855382706309612253243835482618514570011496422757863812713669170430778128242534279292894327590907691653945316847274359024709428053626630071126204608307034415764640841558189902889711897605286156864858109306528747806220154398248820017571167824916129758234976294344406157402969623357907214656065736274735496152247146352256198366136748533648460489406323036397903298219371427552679420193672584029952031018013336605138929537271495475807240925413767932941968820178130358109243583454786759885612467985605163048091103875920443865485337478353179504292341749708379060927441903895624821975717148006667484897689948723343507154569590515575092954137121222722323099501000911361301763798606665605549174208657769682283804667751299242769352626560911901323320409388519856741942005057812840714781427179381723168176418388436186454573039932697031316965184550259738378902046461218342699490514088184451765007604709835993487097737984047721580489334492282064607497792628582187115804469831160956528540453365033325645986933581687162329658235692920203776909821547940965488967372240267246963058118584596106176265808841493522162360471116686514702459276468270582840326719653750215608686625524267372227353162613604911001764572771028748178027909125041623001434749539865748751736015454205164471358655422567080475182214630392578960880020818871463100109232746291451384175657844226851095107353332577069809568012997320712248077721325550354943037131724938131819770629252452999823882780438454775393614318956149468421595153696699895733934688171991447716962759324628671316936185842489389411842141968891480008801280927762511026293196975285125523868658048812919114594416607404826953328112165509265837855813775187285015434009818753091996348507206966366052632188899537521849794477188434015275844194581918116818609868896420871505882980386016833038172758441997345462482299271114496507758827166588317200610880257759686857510244519887826297356576548116286700343507376052551388904855213888932850154684123368425660123722421361015723042949256174758329812724409096483765457531385412696840416667919758967639185142003838826194881026005657503305683076322221528349066528786598326293861564000166138634733603490788832114031704398809494616866389375982138732955843338650230567084094282087895276551146528429520497363758896638319886523760307186428285874038528000123920192260202181484263611865434436427666134801249232943982312943354882798370363127541052121706419977529964794413577786036196937948133617540010045980701183557939027335281744693664823366674959722004143613818278909881447570859129755944346427091122578425781929361286211478569309895423292085898813762445240943086499307016914602492597934526693050641384392027154195013823182313412313981306478490635636814267941086475528889772809909076200833239365183591015298236552682144197992017999265885301375865027730634290572098406514634503088712505540278115188538802192137452429998117579663201994968378369065137062928122632501896957602779741868085176104116968107917194235523172596838342276696343574712770115637884075520997876956602517828769466022519556507454826221047636471219166613250511625552211702664546573260865806871800622148500692558979589353512508386924818631054055111886991394320918735576196163950654521052159529181297882534160030507129069490119020108512126941430140375382579660676057351389568929155507901636190512643439905901015737190489116566876709281439810789657659458979514180649424325392528547919042956137123128633674854057464016956710852160944015479648127937779186078066727504155277480157596248309920941542496549917778544609900574016918787345035495810209688840608794010160374852480644926629882035102452149113090558319071809233758997302719481673565331781702667177440710662747748548124147628226097634332933337428752570934183316075438053119228484536323412485302187419999847272708665900450578846685270402163398966395126958470472899619763592848841163791877008754515629377677219294162979160147961995680490098258986067710724914580448699925589153862380744144256319861534968176267824529384312609665178691408030549818164491253774928759456541172749990928446178989821930496507618875308350039090666504766466034217674684840101473230665911267077744857662402044852394234873033916831805621290072166294065935455583154902369381781778326523198667835303208554524817555968333390979546493245743986497569606410208304321193065026766906070993731406622054782035318482515819935619792375216424531094659026786746437825563111322574511244652201157209326869231070269991505206906245628961955097247926276492947803130892990080728178626958658825606152928333578009813186003580124424048882331393387176606958349441963105161846646731962081583014377862738242221576303568709390492362269416182311520849418615547314945428737444794307725713388331464336201760064395402964172465086930695957058618690780608350663586395406717621556125622783022437070120721129007386652009834765075909170981706676715694378417353704728065970212708151809067669744832626719852616843375313527566565521377460074021289619045732490619570843402288594093321290459094782633787541551900805685125394299813604537500161001782367297192908621816694365319918855167346635791899651685336009639297840605001572539790596539170877578000188922888761644723723158949485387925493825155103023219516412104107640078740437523637210940920761429771938551629816332934682636885267791865553577156693293931414080447508077815882137321083525038278641978459146143885245120497069439076231400940191108550244187591644645194108824559798400551710958055484489332697136903743855415411783383138406163161752504255529802072517841221891036866608434089901573692938763640800307877221814743589811038391923301189770338011805721906578936279923410747689579150915159833418891906113083956972266362403465869206001472810694484986669287162909295357836855108898662575616989023177256405388022550118190662035166952082882017579910647376335869730162941510310963393720631999040226789210316684330366382102616587901839451240269343801752538168556010465975835676579651822598619545024551159853802371481893765395504245585881358178716818193652188870113750579877916397069560957497699461177656177991683281766498456324627410576513319037660614301257870084405221328191890508105553416004089886461565466886720293410199462297634795497345734413030726176909134382322783886403058466545598109275387514214471716633002057725529286260976008633114785851186870076647156796605266146724468757194721097577221444343622017231475310717960030419844877745170759457739214270584577777164722182178781497838162985734897850316010774990191460722320894462913528766898520394440738601809709202182854858398188497226752485741161468822567963898810929812460627177243345162344087408285556012008256146395817789447097567315903362762460680888209525891783699970260841451970040796450996856248950655668778342853718691475594191441240147163334978389963470456647708784740338779933852590084564515082946109913820442673707199163989124739122245213440223017754026484108719784014794767704587100513431563021328692667203030082517074355233805300082052708988318960411112715253140737924000466152959919821700699783784023917160906338820678466169918749447784416971415315405661131774703630673171858762021384390922597948564307966805829767189106996787967485888463031697613118031373320436322243112185003777229508503472217117880532207919695539244696044841747853067184208791504085687874022450134448575100232911968232318624398156185542537315381390481638872388316730569626776647999220850877982248310187806137185922178723592433583695185711062768031017968873734198562092121773654058433108822728647222364909456125749087660884918558297879528141756169001887455441477836636157338528163199409704351391774901489016837747935052066538028508178302419585345272897286896257159683260036655837133613117467394606059621907439395235079920334270371334968571310015560364496892292237664900824571654437339312564423220124083359517860037949546951434650255132447116876950003706165872514475827736632056550402020602004285645157650557932492016151232711419099200749973307856409167428082794927154891571104773940921635404609933266113831200984926578721909936593772408072841729963120664166445155121013927702800820403113675508660737590367477682876848583122838713632858055099466588874260595886465068629141161257212843516691790161197833518090656918734005031316430380927815388364350293777882745614186431951971801828731087557895010711483364591181966071935407777065969273319229939014202167895970471415793423076533781614604443796392428051718725058508243513499047617709894014996850329000756737021439500678184179728367321985455566189977207834884168636733040375783712258690609319220720727309675768638561106624428889395097716476588982175368818489559896484268911903100493499926394032880631663343448534756537602231181993722481623969617190093401048747969277930880330569455915653533919340712031946029662793255075550880710647673323070096366395516508528841000323667338754399035437228626484292035604916850725405169709098794711031803300427433400565717576403389878991690843622892083737907835563007850242660204337284875613250272789063513486914718703295222421453138141687729487907721121580527859778269000124197968579399305920352640606086465476747845812048029168777486306519942477079581610411790123905259929912900688006298027395292953170705302628286123242465936052970003812833585947373892680795589258127112708618116831000812378266999113319460271739541219608656122676322145349912312593167928221686850513854172331724875494232020228648907052795905226384825513310732582640028713905322229552264008714665737910777940324247269405576909817225268934121056828052880651207882580665783260014560829280767640399735100624232294095298179217816686181474306970245371969586263540528993768864496671209182294319981160619956295753703338527803151191717000995971514189523600611907285125529803944079643959262049663766740825963523193304585358980300858503569153698350167893009922658252656930065781391767902822163818070293007715176863493884770555318545367986192413967012456161040148517651416381189558932564528051229333790935084658863416167746252970245909658337689645812402255499306196371985488255748433050329139406698873529769600324955163774833840406659376448521141296350519069676904976685540164459191153070342768906192904864429216208982420986699757226169831302186206144462356157355843845280523761064783575807843337497282556646504608112411015813831371305577072068115788994174758287542476397422953484703525838414702803349383883450661011598178523403499283815925048809788636855328959897804751263879883383651660117954214892665378810120850316283526674571293743275827217781174524210896221242842241092830070350591476696980804520017267606977312461818795465563062809732233079732223873755330665172034082999104799449805179137274843816953364570140446572550699126158930821346891425833630895608713889997905447549105980045122978011619033382384605764490730738204634798646075027436755505779624013253087092735241647472787591396207674036836071371662978068734703690506058184068475220615307842273324091875124808381420099554696655696998584857206568854194879210785604842352149609710855257107460975546743662898474997147708113553079963551515585461385349701479056133255467436136339656961588858317501194908560705296049589665160793273319116852792634836671644397796323971024446210365885881283575138977302840574445465231269917564310737125226456196517854745885504061102830038060513601169588554080484313695613450329368580566981034115190855103475428936846836562294896742933279319123474415495105210686540576283051469801470399997096837048761404346894819574979153847893390130801781935069218067483389652550565853977157446929063030974346077612645087547037219466968483894961939868368025305100148015069361757069273448045728342592422473564690380150131370785905359065666667362833707334027452366660570611562831808436209511233913414444658305373768656906578338954808640219134571825338521606999894014264781649075690105141457302875582461527069485276279273621925647592406819954251057176354410797541409383744944368762453364416810690181381594368891188014580266428561285905077012570732551375982496215381548939125591408728557628242320566932655370364990792279012730558585495020146366219230122926590815112558573449058560384391305713317840447404958074097021715412355675983942599965202651195668668385385459782457000064365021890392443485593440925538518091552976096408567629736833434785629428132021953836607935661727036181670295051715964517440835830686456710486137654712491466970265071546289555656618433780406691386161760847880935590661916150259626617863376698790757839048337249709539226091762527004168942602585350738992945955926437128994496795553232454333510455443201564915938881287159231559958552396391301495757484733018161169755705739820529849706505627253566306007500985093700910739898710025932417156156153451510554644014509249580201339943333617583848494348760745435072584923415745055650849321897073807598538190017872595417236234245508865895052787834799844709879474806905197350695526094079801787529722130139703256163862827787666921662180192145233366162564587415242097135606970769763720080192502899871166659779628243734721534109585241277467334208997878348849972705280857121272015450928616564756919096553702963854505633645323460313906417480646839299364792101712047241457707499936213059930480401031488194915020751527818786158424167774285268902372033715692161643624553102072721260320082186741357102733274100862096734183050580059835849030802118401750040688172862249415265737981605931528416705522401939412482567943905584069931576477937323956429829058586130050325962342145895300452100702335181987337720133609882176280948638786722437082267022996228071231180932338961233840606125550403321960683833416465737960381766358358637924490576271812870869961957830039376793568277204483700456485472940221542057909762845063077748643641569706640199623177270256306494712406889194640863605037341163488038031155979177763787849423441086241572105957592628419473650625356604273280044677319975544503908520490776617993279443914409125477738043385142741355774643594528677314777921742452162161915652422120630511639130956666451850421682102291756637998988374359728528602322428066625277591016148536847985458606956783309473383710031852501852307950121275325138040685524266843764245441745109433319334352773581468544580775678934115881129097632823210746332988532429551921534701727206828025810270180502863829379996789360781618461219048324137078895126104360112612119474322752535889763297904416313412170711020436970480055353215465801474601977108583964948509455851024282675033075219312189260809780228838467288861755199459925616310582956734015128177232765897052979616584969105292778383437140509278772790618173085773427749248055140581542169758821687151189900707604068368777291231125186146785518551239537842881467840206805615350323414345022417736163393551969651405212238017286703602550209278513900500986665427821078034968939975211126770589088037301122141055648101847954374338262312207941458609200610334770640577985852923208780121232984482359394177775177602605884562241403728204004856828349653560909203894065499237734548910460418087462010673527794502854170837670459330356898790254656130884240156247983127512114724681548366072093948670439439461506666960760953894565230544654232879177971827585860411177320578145973748070632514633501036122053398370707618572939839232705545940028422475411713338447324841904808407085161846581996082079758713890474141268684373587740165772349938971833133350269450816579382300172490291850466560988245127696909015010582593984614811990377541127370490802643313851336428353708006695639006619969092686921914308638776490771447463136750041730128924891629957487137238447837724144059736438259207223807712794180558754050526877235508965440639379243214852371400149795145651209237072887279888976468694905876886146856180406795702336520750203800270082056774114837488641792292467721564049026270784111052103290905381909338371733645094005369385394621296735554890383937102277278164128367938726634462079644687892678655610922132222963909240910810921996719389345127366864676189129167394677998764110079179011742851021992191249899295078930641358459371537936211660863314924895076647834522509063109451745018754775577354823238021287914241244489932303967458628975689640549007373983492399243168446713955073874905048256148994263695548552492198488962419195773355800651653583551494595864993432321859468473592373531627560945794922762361128099758171906932187962032079073340025833023655832311534736632909250681157527527488234931060688006266530138975725839941346930820259605687430420269337290334366512241634690787793443924997141534596924924406390781408703366481614943400105022586664650647474103599122983318145734907945786034971471763499535642859845154555562007169137706643657317536393663021927226836776812235485029817062162722658258514815263356882071536728990393968492431284273422864770626451264229927467412488247191026129535496318188913106777475702593030852920271545418939380220511405621389569301952569434225822428673160349178849967052547281746177024940514692307725143639647789979188146813905992631781311504560509746575738632991074222511736914977787772610773844308959645518240185457620056056336290090098078776639712277861735102017730396420846251626979426475921978184135365638832131792504957082854608900488829016278581436442191439399300464780451140003840555776527031271005351916852039912141080750867515844888500132197544308432263214549910885494962399302235284083542139713635578468937234068217090300455092536863022198024942980399531635042444783147502705677422864201604041978724527069383622699370941398450480228122411838088731175608456327171676378471276942628711281655627320828335603826643932072937030722725574746217855711337719497922352888632143126583977406376193399078816178288012588287594096148653114868491595721553040694093809890955990062099623982139317078723281054930892582413163989160954298316936950344646757791597480557445343745423154330930446286010533044815957932642438250016376839088686101010050135463104549398446562657330033009642015690816181596090592170425300350267667214064906840627059218918807356169549257661233681871460895997337195185767039986985519386196798692113117299491110339972735307505737325212097518004878994043968818066219689562108937794065255936096855829693982123007698794060135606876629988810372354205442756814589439719118087998176192934765742659167914945019438363872575204553405787403826640287614580444184634994717357401371199021149830479488343375589167122855623221110503335569811606227866456970594728355074373594833229713617422665102523182832341290200356294000147793341931441802920365747918362092446730308795835351951081790923042277669864773336356544323602322135899648024607704980709940608298016550163105480040366361070394230380650436720349635499384167258358467962372549862968276005300857573518250248188775119700394069121241543280633234231068099844764840134382625043335234157268399856379083247916844544786591228264927843533752409450039982637649464248454277739613007255094311896248089960450774623988281576492806907652886300268393161177940729222395118468861360911383527770908266628982733992965641534413055902133418092494810419017662870099934863424563345198123176306974535275231896025002346269768368347427124171555546191991674120074800023571800301357708803705196240700810790107287488278207423925893156428451638170522172647083826710271439553211790564031391881197648137276022106682085358197768511386711844200743975215064221756586847273220672060423210947140034035495831872364438085234473185564659240287360052706618242967502515202634852204117829882757457097248157987552720958050478818403172542078586560404236020754905220534890281494026493424191337039531251189738169536868331235073220925803171343967563892809133457998762437293147311463308588443667136509860102790094334585344893624957370654088161503481996650597770112226639569530708650909564058776412183481275547486596662278284796892971210365330798613380214589328355069932267632619160165195809640707883619897705471580893445210512837766956507073528729586981639894209288151730831392994315788124052453721885135131278199360021368215274545753536858178585192455202499220708703709816732988710823995545047050628077958622968912091960615741277678519512600339371227715522669734401716863197206974634678076312510018605753178340907162405354537443148733663474350784401336378455481318993614472744493424857329057534531001056781611561093746458442696298244750224387771511452136617149082550151750271596105613963723157347512887511084348198238490271535511245034596700674261589427192743091355018349653709314079540772336208226391192720016623430224329868367720133027095761302577172591884126286389921651300151475974492515421719441192339865077859374844329495030510587732282137496612538451686807865443946206730700129942714442162380402672588849722495355082680112949872710183930112818395822156953721386438060161722939649775347717955081894778966253600217992264973483167651345496365292562568282864382502610101525419032342604567196746924383364456636066808033099150944950954838263883908309453705607324692823895684570598772249503762848362277754841646007052938609399182277201826259292708361335785248304168121718076690462628393928612904118579226962273904989161573856984610843335066089039639099709567992314859515101226007116427261596341487960512334428372021277806974997074104441081724502939804944383853801754061309082126552309191232213683052814971198641726936196270807261272384222221373310714583451926008792222299345098533189211159386021615015539577333648124538847849022701589385539143141755384373641273984971354586382352145178003264036474424600276224928265873473314921923091343858492958776438142834140251652747936930507264467398189853913435413161955176872383447810575718232598733732281651666331162877620004240244479515794088934769121725963091607213800783381743227731004358213172701215321632819490442179607986504041447869406036563777895219011080465799445011358178626832881488959327144025679057589492949751237929136848378858954555114842156709389328328116178432054455072869531433853279188615553906212176661009330519954121832560171473541382770567137973277510505843146223437056682577474934904708528513190163954204103631123648925092000298612448362605977825456616884508874566816783316453295426709622124272942315716575050941403356948126924841957829559888053134076415696111725760041508443588832273316603334567377200072481699716258335600169378472213216751645427466419668173617269611745919459129092701452602105347655845205735901114471113830654526625166635047694959972129824290007098431477498589720314169667831913383511780580997162098986286657738465316101079841688660763328175423450864544664529984394632513699853505210908064256985191175062392885597224122240686451107891389349431454608381119253558668788549848966986186009009806574202210879429951451441096387466050627641221781462545897451398940315675206359557864542603436784843050366209356709926779012309112137580598276656884223638828749452706251372655714048857714957547457632549013171336163690378532167483716743349810806830707385285368436070674557450426429378110982231471645229040608879522656466878324459971387190641417052001568671880088268108203570685053292897572415604562066641947183858384453495341486066564968753578759065622950256662034349486323853234768748093180033175937957361217673169094000755792456039202797675893653364666863723220279755021907586339824053930990467354470781540218414749898291927510195514293293334687912202422215550019864370967590151833054040780046455958013835430213584917779588230957182550753587230708505878144356813192121229512408765542292145222029333303830123875666214845280884197106340961061178061145478252484861754148196907100563524315987795274223163580309472327644038886200589560440869074787273721952373169969402253115596175992020551915574292192939244254602608967146839609196730097385779198162724894473894843582714154174299706478842122782044157061544201943951916578431203192381364675305243264525348799890806883711976467152791310849465550460327720001412569694089118346030904291656463592132986147815867640005349973301084918537379275197375944341279156283703887777007334532446825099747877566363302167237516325319905575987013925052559600938578602566318053433581246892411356076540660609011381250501367930625930250263624946277653777275419984878837679485348236652023322077569215331051226721019853360741905764952379355201649738077834801538077795572485098543426354810637390336425301084764130020333904702028774244011014625101433681457636938631484337269212339545241861321728697488469101358844304839930928342700859060043821247192835138345354031255022491929117808072261315488810463019165891937217370882017063675621108187445020152272083770499578559002681753993010985579864312841913650078149876512079930988360050471080034292994504363892513794545967126392474680873412255511958012816474936239073284094433188045598694916171165084099835149150352827416309671922977619672302145039576014697160723211425714064524574740947025523976896123759283271615414215171592426029229711433570716380443335701553692480781392537032396370167679272024309493251190826131047469843989417724829534789742770848947329249779310415525550434694326122027207082349040684940090226860671284056340309155371451130442202160920428927137492178207795357206168016858232594270224920207086953468186213286782064251067724166464871750797932718984257883780267723571444105204289195944668929628085048916706020103036878791381852681458697590702684759643194263785122522378256195467892113002638554507012257077916278217874730454900312926079558807324283433309712684552245809544901660863454454443900883418585464403574038667348132732767978410963087512516648805017000950746967194852434735819261331949571202832626676222702760940069448276773710810340080766853148219500962490684463776662654431249789208961013137100122050400327830149690072129725800805217481477172516196036165162385242989383273250880703772091694991891579716934002568066618700004245882222557468576182428608140404238962895821324201479862774330602648838839467853480570889817013657078283903721842868198779135003211799654897725814608842889901569865515943026372781879834701754851363411171118855421933781221950718074079830709042867899480702936952444444452047246385677340194479546747482307192565232355609032977489010444994979304490744312581399144076504523779641378356234338427165659939866579973156273854711131593700247235720071269362551556554526483848175105550708673976908496929927456311141918637169482880356762748646194593064526679414029897951431993040028450621176819778871527996111394469907514464869607312675564580409829352069645621983026752488144718548770834774281082678341849308629859377830234027291442399617329178339776539189629515654990192391092533978371239167840800241126563002129859619143721273039584061495031132056132266536861411115159585609826506674483352341022062659333218032542045908664562661724803032700747939912457251161297453431998252271531197813045775439277677096910002778625003017419530815013197779898371177206018950808057292371513979363299202273493055876093546429863454937525043247531657786363128948729659412532999508850381847204401924681293940836178579865610304433406271372097896074184245198254548384911060119104132092440324742922774876464097826488701646292486069197965468646726671916314398509169675370605462882575731965435892219254468328289338650367488727900195996192995101031279649508386401879630802745453230212836631938688876944256532650768557464889364017650564848450227617215782791913342481589012786382254138544055986118919879669598225733861419925869037710697050307535140587305657909699695086430998274578471496648922183630890463101135276198579865220757626101105561191254204296026946963064222978821025033906676874939254553210617889022644638848309172981905273290145030064607560080231093302879044662239700763671255111549639507801224631999252379290210806896398603851694932140902782819232819550506319861349531680036032733306510521623413885964934290580341511514129439490480474411754796395029434580385367086491682030963553027100013762379156678319954986290207087142944066455393235823366983683024755505762407890122060855348464109388435679181875230498287419486340153338572027206358277305517078698983679331340737158436965903448569597897493151820680574078525955121890797423367788279466323914823989578041949894050693051313967198274091188192754187726758897113859947260258344503379242485768392137588828282860847801884726862124750324996723649884833814046904898643408129352451180599636061416632264924440307877932776407201330723191786774332879222967406237579279000615269776250977693598308195580378577858558858776989643730326578585276341160833877834861248255098708871416640734118733782102044500502268965060793666879024059518921386688794711090934299529682773589339022174605932903639581231033075027182604836935685380797271850423678483488946144997009231463476500839980138893403742959669212170098580665622455489743637540620447351011788743074428374307645178518996318630957442213349285968143126317066766291364847271481444815642610870301205949274067867427010191667972500485030048332993312242217432263506995710879214396797556506107912629961501153514029126194688913236922375250106583272444542339415624995119174257300561384458308325537169221621734740909041548604404906482175124071381194497105291341340104493203172494290442651804695150159729967295110603962811815243779533512709274261250644358695785413814583520723018368175839770432624354600046649162241905797645470832066505723809758509706283406934080254525824416249770375985899603388713295859074813244641461804383155478108488755839530621979358265631071783308151683236727231013111128633541244443523752585628085096010332751253557948294793484500947479584061516707593459178546030641601445476355247501784192198481014685654470549036724415262653940375874083782065126418876117577222459755090584452027574533412619427303127668254150433572271374580106788566727323136123185997804737671193919221169004704478092095064240966949341248350450557120053276388173571328574709586843465126756218289969447768181579124911997442950405872080998852319764413519758125019057204724624515815805920062086919881562380085943075947520026074306247136246879492661928352568048113379031934184147760405049958229403501103281062859648908135390983975327914869257514062182425200145053394941963808184047795748959162235999701743425793551228371461911274855508316453577706733381371017877911717991975259600036812643141783111517428823138584769502369935443152390501996162538847027347820570454224505578672023173541403268124671176898537278455555631359243363314902167637018912757327462963396292459357729934812825461358835053709715646423016100691879190226633414489232472020439852984645404761730603056206280046523905874743867232920139818283798841783382379677200226125764714301263101725675459481866026581420061967293761162911558518862336009007389543469378696093340175837229089083428787133435937772004391990512247693708473043232517595499805260990935606064201174651865147367179368464311898210158700319868168447599261943538803101194424043044738283230442269150142139346737468899248674905133674754223520066029863103890126536032148501412883804616174424768231617575796350770726823982526494392669464183918115057557826627561816174291324894253224068079306944504074521899912067191635684368182197630046350938013212298688417321924838123038046622755074228764355413497523344712478395070813320251519080524431064201366568370480630510834709645555453646898070270695046243443004736576846754976840875147832202524073943996907255945532763601356025639592774655835055181485698519622414597635014369877275351526795926652405920437478984548929919041035470116318003348607089372494807817659103008984018522086697045557410264532359674743827886242923261342994525406678299414110648283169454083661172466185168793903256992812045111966500677607542437567764312610915730214196011876181138647584865743852226765699588172112614424995832071133358181790515056568073719764275765557810019710840043080627420574799502151445537601488920617655182454827904333935212574467370216798795280137229459747939111452170922256296769957534673792825428512722002961856766282452192309514535537109150041264376249994495875602503556246763465240652847549740365737674809147491398584903918927070204640706553655155881535891482825207002044847332139051631849811911042505564664710979260927489008816113518275035973608113461553123409589322579175289010752671076481177880788250757048021688505347181714620565794489135008249701004404356878605921239963351419081644906597365788935930300672452338143054113829610146924568638116613772014092980311708346286992621345534772035129283627994682193697151058753686008977570794810642293739881969474256886258214847278636866948026894797047182564673027831871666719527619572816587991725753143785917050994233863763871494139832965537312672083745583214763755387235020590254080087169398175025473499305843041910034387573445090379143537075509533325719979282080422124104979530219054150084486557292281608561141586694476688544644397301851246326613799769687295850816192377543125546950695781318464427090798696926899811624302806342812818385132026658312171601058274948617842330646280772219715355892537802007499384578389518797894705460244865382347826504530654436794847249528591939227350163590004860394822107102996143620786918123811387118312133775560305825351059241978460156584763937369406261551820435241403415621468169014145462403304813546712545711382593025913448127343067486222558580678042656104808372601189876378999978153329178666990002217620971560089815128425095807782867100888613491420647602677876933119070553729678859952227548405232537096796660828719319321398520057990738985098092564964965031763954234338379096975383397146648262710228823581903038777918733131661610204958668065661186135261197775869523331995475426515937897981905814205056164418562455581751679539885531352068140888220273802114426137686562549736241383811842266461221056821969681893435526222618655527212951292338962420031332224950928379850748134220961700244684555044439699152037855758078641680202445459758544979788267437194174371922277889544188154224586664779599157967614866985069921176011822345094102311284833238571271527021513968938391347649102975316239919779784819859959444765580511450806523655360221597860182196321050289097835349129888874311310597519644329756962218749786759429860799380427921520098736865261591551614318667142984824196503173199545407499750484021026890932391325824674438722236801967053335384907683555002545819832438181178313352085939384241314626003999234646390679620887207517447491026617699152996196969141007890094640899872905275314385588461932584662962818773185578152372689345486001848494882051022544997330518301978170407375112001375977415865046979431433170126460944658346544263432003296363934427466136852837827477507444566499721488991913348847195442800980197866581641391616008049101440078295876967340395777935325323520240250473591664806221187145483452835772187481901310100456662010044636106508207679426658901644713816057793554938706385636648430823568081121055724086938458638668195463307451792892787667510059063441296276029657939878325611197640012386848135203078917920297191581508890609633687713312116329568129966271068887512832650996264698888170980140877290205586633925171927901821508414607010431859670598426900864104264986611335183279800806959131562002923923162475293813782246632129597604178203322796622097047295841065690034694757189529842493644573917170801281314832839189388877536034073671898618591328688668127275503251057531421257363751330268602992053301565698139601760339343006525265061810137831551708515297959077957562451164955415914575736198160364595267235141366641784844200611003938098416069701604663570944338212603753902836895237234637019168157653598189217199857656479113292314538270416831995541555334251452610588425602286176070379272290503556100812206675350110682555278326417816207019962508236368751043525438408002100411595226430745042955933431313997865799792280714489513954194361564690204266536963424823602934427405253522126800099479643341768364225701232369229222070267082089048276786677033784675813940376315744768512887422681182814170065074524822005173418377021187433414055215254304355707965727631739900885841188242828489544355720236573546007647632685841956558157212493478371248556876399165212484690049526953133540552154402783619105899445742978167003919672850393833423022277152563099984243112758948631233826362600870021479336400033460425328159347906879279447279688594342808640115531214724066225848513587376632548875325761696032657863709534706178015582582706100507507171288587788134657820442318277402145088424371733839588513046400021573974085187491553412619097947608731229221188594004873731844649638880250538173357046707581885660004212908550011630130447382879140883135398669718568447692543534075266942102048835787709146081513243790296671622749240541927284209062522955338744924304597807536623753009372750525600879086224893152422536647351632810425388387688233333581411438394905555864373142073597282575871853971443992117904637295448892820112198005526996053197490128268492633632686061366019177283764925558388831919128813002738686750277361957007234182050026319087412593761862035200293993170286811512002694122665029368126551701435746132514303571841935665046878285516642670180708635957546357461226701003749250537022629300434058881320886928866760392183393975146825342252904962701584407702885832331665423604078344512973131254180589778650313012642976427989945420102067761040909643761803631695007628700718823066872001636675797736209692200964649826908028452060244606103154098097077723780917093566718096438421614822424068652575938681849593019359431441198600559929541036167457534706518895766973716623179377289820550437755292996776227491209021308975355552409341359096664874975628666830612741040836214076664916751214931440634119545361825377614930196354797617380770844501301683291187249947559066764067920756770260411649525981956338914396839680272666426367384452937532352834123707170623680510138620311644205587337803050275027273950005295289567562679573444947790120537508778230589477308519079784721009089045640247521191271690878605784564336483994414565770173518743313839033304279704583262551776491288873963863130034284746501860052870508537512234012360838151365422982221102125861795608458923836225364371388333487423380289903071812464797403177234767236169439993097482855553584437193699485620898356875989903637888260867113453697451387437920192937286278648120851989683164843126899628713595700554227912744635769377249743765064968282709797313521150334138613128563580466749727802532956139787022071572424065394055581011297225725601457655362641972645715535365599469462716783504582659852331038065909280877512998320664637424061241572600229402135361554876824883225364521121519284083240814804466652262354638340981661951599576097447009852836933614403152175180962145887497448220898282885433049735718840608267762298123447585653837142756598225523438710543826030243489596718207719062882385534234473653382787838940939708064438129183038721453698475580005290445349288908629177548366201703359662566322723736638740033480779313815484164189053632415377280100333571436272584377924390828884311098205108046200783438346112562960844061446316669067999962637388927101773764755508504223510663852076615887908859307753931547020193749386565663461526041945936154469254317815574167487971671455048201116835677699731979183389726697027023198109447418625289032987796519326563621439479813301742616505918631476749931815153195519429372769342169336225368652320939371093663548818426475374994579357196420324671866332279560389293493875025674575548714094035467258249172888912640177604932299408679021121853073931614122979197986416742141829924864571219176896632527837418759768604847541066187311483977489063843395310988551442971071832119957035108489087401975053140277757792595756675748951729720221311353075803649018026822344652250964980339142238233834958996093938540714644370834003995592937308001551871991196907805147020215645019698254384907766437437449329785646474818838952557062963411057421900173849860208076822174754387767802751178654142413793769242373969552947438421042490301358867524733140710179253915203901143527307414377416205019616948338769821594877521108533051513320312692366293717850206274628279115025451179802422979122749840419824445421554841533217824354371157376115747042580092388829253641371701717157142958352127796880327994076803444368307968977479255259528030305766386719762483871371695601180714481694049093151631405113538088305074481034675674043906134726233857579423791535383303522172732206416600513466570209440777365000264675464784139243418874104972648155760691225866399610911336577037337345072104894961948361647908787617605867235907973383094400419271831982234314412876757948959778785046092316607524904968515675264726467611906414986082789161715699650212886672669027278846873125401577532844788868373576247466304279506359033041480634140750781657678276820270798309703832262016304962009140820433011691284811816135835338707878913765094400336104925871316560649466740343414905558391772292685730318071240995330842826743627771839601644949906869935677559885603281888176491747385050467373669928947765649371364788909049912231988667317784150798925095874409420337667968623378810696975209895766329885940084739240405988562425864241875003639350830274692768417163921780962661524892604490631290450277260139127954476438615104358073926222803048814475072928573306761066192596512563755245419540765362084985457192460439682982992005130498149282547316899718924681766940793021030994643011765269813440232658934003824835254085745976267450608269790386950698466350866934541227383489229330034284231125157471883690546320925856383803903195960876060113605098285733635324397186142476145206538136518609426664143227433498191534984127557387312291613132126474533932985490760250366941565778284324571018321446897287746874673346041081305450793627044988876316136829558884954701503361982009625483307447859282376459534812751395829072888696133878520191379068172376479976127063778939486155358575845320088679616342011365765984806974716255751947467587351413272675424957853764333355508787000286694260078335664399253037655748667965519598738770186858737226972108009961320222399134663863180785349362310851819112711351753245171658830817005330258560175470360887283841663601072279108127069947525040753682763995695994336486783052485160812298472877230618263704522120179122417356674964846183457600930037257352803027311909497788741371310997914131801430813367980852439226999154624904348995259431829621821206332847053426751469461112962170256000512897293070435578160643687703501372652782838241990421931601612153680114017735539826000082192263970228521157832153363388837025156805588838578090751982188304731707430522230078831100300209844844741402989046896056187158240408509031536608242759709945580663607832221907005385142809418946877035801902814042008630903009844787835956460393780201956593437116084761048218377875184075505305014534076708073208280366980187700011338222408091400584174503739933412764388219988008121001938872355718683610648624201020480441426391402930636307915766369499471640429445020213056166808016701459379427169122995298933913054645523253812223890820809408695435971079627101047058981936754460178191791746331704580296943367915859661645813243736808026442721738892623389891086682550882457395839219086103415227945658510479967633122087759115506455237636827030862117386856151152969372039701699857737602415901324504367963390460107800510669227470560931495525471700231420086650112589899713121603619913544944317129908607191957395218422371940024097552303688100655098921185056947308480588661396494532375260821917092547581829661442177950965752783839285200387238893317180056451243454528668057372587093399981269080584657479871843381825573069761509196444219633847567067308335443838922561797150033252863815974965942803083151303828011876990406588405836520690050248275865276013031942057055790019768256021707653939925217072214869064405296154282893451306581471392462745470190739652419750490221840713915319054261091696418818513496550657224456426260915998785020530568536527648364304881596080787869236134756567447065260056542973160856521091999409515928938857438550790879853716062253393655865271358505159037076807169656615659403760010908710433659808953521979825996294417156509609505365442825070351401064764675328740115218341636799813068609757386570866573589277841839591391033754427266992311755821109680574349163658247240204032012730887015640992533894259337004184612554016355290240726691778704127433736928956285957225779580770564022228583501487085507009230411313608408072753674065626903813963780097979167706427882993493093923268235494101024585143335339393763165258528381345168716607069491571387101386896219725158016020370249397961275418445068184015196914611112322667255348116087935513312680577367789372523012882845172709612526448633980900144157067880199312477934887662319367887820649647181120560926993680309358539595622934194880585824473986008618231016372437262233772128911574889595406648616094651581544805349288765008519692822996847887501696446633691216971715521271380705165452669715831563636956655391571574848737944904875471873957588765223023263078788967528862717415552067385196965019322887348665722487337279296738491308157793674304545713984363951087969503181535282841001915858301162700304137666312269202317446570628203732448580596416473649521091849961271035371746044594594302997115541629728764066986628400910956186021293605952070517932575543120074169612663691388222396818345643464405090265950557678090833723475274535786867836337895683762064717183882390759498960974003786094698173335795645214855635073674166579519592328847801674127574448613980374733578585741853782825165277096029036392342198615460657231688963421507983551578023155674261879531810403484943991966049974509344828257024903338925358446076594758177760181992727868559255033257092016291904277793310489006034011479952305873260939017262752117725864060761681335369227245842633673212957654797636849609741515912090390431728579779938933841821338044212949916836778412163566775018275595892842801528151632202721355316210965585325963158024899542485739617947690966528132895548329860242377396637110169696054417095332291596530902919424193341050393167134814015289460405736046031235602763603554321476575382627159063267868014063209199537985791791668124421762951537410980569162038145537888645950879835518504062840489790309086720444966792412683658881490698500598937197137378917297033320655818799111666964372734683048044043778023506178002605677687404585778092644632678010515592317688941411508030240108924078980679798014594917068978213814685807249831617399418917356456505839000164851458846714047442635351436496720204087297954746170804406480509010507248044852894211630986164226506487720314798936621165023068706059754436720240908751133304096077947975872885128130439148469040945322696275800115785299893957851973083167725288014041310432136261615944941320237601621410347411371802022697700695023905045699489189110721838483228861612272121357900235288178617390815987794652198615724920503045956399434317774916400589612577533888875829198769636776160026869608291155581836333848392241503228790508681862575468327836939934624982073595599069130576807269790024873361182156155500675949607603973325829289999883335279890908688050928026502704910493274859806116896515475624257367279439523311077862178173738667837693899880321576358010086862816781799888179959917956654761240990628531070915839034312731002185479856528767783597067383490646431032778779646705868841420656384826569355455360641813447673175848169524964611463822459065239390145757891080555311057533528843647670043919492066437913609211825923357076100526167085635925972059404697168506087436384494742660260945667261913164222689912095004419207233195618189114348204621507345159014593461656398448855676685767651853040006021746901150621011325777915445377461394248539068908357910910020188519262844566402881964505785441886838579468840815892543498007259122700617456436042285973851199669791586765938341410488771610239935452242813552736275225270810326199113799753266871663427920566315136048734283451501629276941253639003555677788010213835851102688330778550115796708558605741517943187593215280924350563050950713227435187326811202272394915568958738126753632110474043298019390026280880528865521695402044425549486284833376301825755033791923759992262962306845213409417931920198362526894287088284781327498276302277183404964891505300653642170362151380774708666951844687289191061523831246771784172367120787664851430959647896904540336869435291882622828704068413895763577772833810231679462420270974003857999521684508625273945246482328657621724314961439663877514203201188632061445469145240276758569643042927728372547530334784125757120873622042755301334587974377913162219374517330094622454775868911023659173581205896786764083895923339007037523918690745316730785276459300408544759360675257293943883810886283228081819649036402111171357985069250146309201292359801400257122681377298210988419633344007178360330558174484163158945953438400033731927878354968967062564477800859399169467758750120438867069989577164547586707787861446184348420070540972222719973068944154536397139621364755919707742046211502097020851141329659768986569734690297344975493855944609003975727778849725683865262850759770069711040269761002484482868999010304246949946070574996658942903921545771905336429819437480161019721026989012537134706047856763695480960963716968693256932671315291388958802449473555968482925481256082265718533591899384153520627409551078306670183900628045389712324807569374263027453278868449406718632728042654003530305880980852086757550554534355919886612189160671953924577934206653185841360220543732081052444918007083049303171813551609397532918833261636126765628438981596486497331177872704532314003882932943929716300122650065356499286882681097126341218493778220054154742330344352013244575410563541592640033100618614499879541640894361960602232113064321578609354517457753845442122459955835973256766171494998254389523212153512686327112681529417357871538814043199937983516505285868088639725242439541496267926257180214465630061066108005987926279388238453054298483413726183037051568739917460039017570088964464618518893063387979205481284234195750473481363705754871699278281924586535213692900705512916679325933742573152807447063829566327844358590861148977545147172796251915243157749067175421279100059116263320910621264958518391128241918541149432071512665556844622832617312614648944477205775168678796650271603889752493495279192320290488074556580848135286261678287924982911496511087831566497292189205160981473976817615625618662766165912531474728431391457571822122617616258376893211273257464712146530520716062635895371915651890785282866826010197956312855242496704376000854612912924763128302408095037638540951010228142146971898864897786022063127726580776541041583665774935509953927543688475510067131488551642367457981721735842697900475581245930633470248920313849763918398867421147796120933997327060643205513644850601878638954093358666251878427706659886391726100818867897860178412957684021602984450642312180649203233991894872904423611326823509252479951534666683006696039862792618349117181840951892731775687305571812980703933296817180093348000632474605786265115324310536774913249086911453557319187968534046611780662981037243282780431307090625902163910979762153736495505571091963897677354834475369330121689167227898177537969912802878892897639831630485591584600127123711475571007399081616969939031441112739094682110212796172106427283448279351995194751268591259787017786531424692865844048307307850358420490952142513806571021395862007957409190833541719456958759485397683371903931720833823750827458721382218386065328134156787562408134057226062302607162390934264444079241627914333290869698890485686962362571951380872529485777809012727325684651784768184734388921743283398876324045711711533360091092575272865654316446272776900471699789131936091294107295016022233714091932327204601040449308497307655260609931257996584468917698498243193919598935574643827722239946516983011671720148377051559095087533223324975633557687090300380727086755360511247729579260988838172291565540196516443665040326800097793050797439970886686345922922739850768772727504660109369962517578744270429065928989054690514657434196344936356202682907397291442294342522926324889376574933463042086306550984635987324776482650771068873367729103547901699127656664410927233817986483598576747499553298250278370486328035430413493348159513857364460495835095507446740208591567965432744666339426600254934209152936584536505162149026144905035985106891390659605745182504140322692007600759517061969346955068195526772153087699818509024151494058801436708447434521510281350833307196328800378385825101459525264128886486966941333243462956802952303260517611636698710392533159018135946281760605888622355702963250782311056660609042943707865808449422729088582061989709528644380511600701948780807811138567468472831342142005696020984823357312640643270899673338961753310940706518706180107135054957808540321321634939163490352948034102723226988164454415326250375758577518112793565431972548237734279036994184695829868133498135811471984935309421368791432865086721896670179420390084941852939613919265302089252711834735349975364124234821952945393446116114064662115369743764262861164748701871715555472742894298763127145633248986704244902882537961856534493234305862727210069925083283684499915328559448172735230169374800239951291139620658326577508922511713779262546474505579596936827548244894493896777796075046896655872913040044139307473770613116766112319016843318462908776813669927651089945319343186659613533935178836329456429660908544689587706416369510453834614942845456948325086899641100274963610608546038202122442512293701360963034969054263929207571094344628288136411442027006518943122934505605837719661192392507823744020347317829024329564158005189882574764653198502471878873471293537405395668127297174444316645479615058964119033137996142841244603164337635201654618430331656265422906420294682951320188293648538640109760452367061060735473214122247561081664025983781730552273667044184145660804491188043043623168356181392897285965806000564448781553213844909651455849196344461496243083024185337195709292659446108704504186621162724724132952177585179270020763619959426134310170572462866309168395185827922625621246651043555479070408805036218815430876381916881762615930802827586066727885189949763229230334495222859045358800735522553954941118873163487722237855156566749548079600669918679449538290087958576038264394574580021138102459570164822008766195825881468317918628516432043140779517085205651872171549927511017822179253074659573707736416495737672302096732073172365187376098686830083502528364350185226191048327401900140342468735913992456370097201918187139877602586167233643896145782531730484592327529760491364100171019980533012957137626787149046098032332456891997538269442659053259669462633697695822176325300670213949766873166235757340975566705192446005121814392700443067357716454066129587619727081060742620633699516645866368239464031345791020461177667305915057836385532444832660366870573714847171442340883229911093259628058094521607448502326502274857109515623849524967252716947029782835959660966611203927062392951068746119527495480297059659008097015917936886982744572021119778363710825581699019742221234757236833867523353168596484484630485989141633430089273452574430518190853400420941126365929132477997495867257200750832815612633646034366861817104589971556534324196291306008122861188550189306476827744609892333189743756623397934686034413671065336156295117156725088387650111640959219760139668836897531528640728210984830606080292188626324265907732105121986666847439473042735184694495074744846985249176622613836949067147532280542314985234443763894029597701530909075349897626713786133814491540872785411129028335866696340507618934624737560684563930028176869894144035496315375810238555064165413893208033626823832977705540144923829000105923811451882835363777225236130815795918849729741660057016887734450474749402843874353947241876153789435194997993276738580195705903403886539995472236986349245267026535992185824192929610099028383443170756808299280101674749649401848846718124447695466110749750972215417684916005610473975385254687630909467433111454909003338002256329416868859049387671924452001054699227875326373417834012745179373045563294029345967295829084017134362208289530018707140827005940583420595466120372755103490586755380934325247702502155285266046048519099583369141132223639862013970445702433005554497397865301805215746329565807839601296809208406210897697830020335369814821653757893164416971836352330715337418448902091374571306684657541146589683351154316657994115638742154447577988858969278222048565996466013459277417338337677880862008591823324711429716878104524340390233527512853439999802015527064482126099126582404164291768576721867131502534278125207915457461565061841686421300067172433104878132469249755961758243304250829789705684224939044511581791994509963824644903311402425273307463521269265220111125761826745865398285054952944270797261014683465582993729234254020890375134440897729497785821044036568982404526615994011517216641783851025938756531977189849090126937313790522926020253416622487998161356095346946200311477537833869864471812637759466231558127942324618157529646444301586541852572465368405615962750169371183938915164518602112828671289118978248218410092358824119120970253960242926133236562951112396103806494033776454347116313507513967033930958663943588965392843837904779788251472223524738761393424840318512236322535803471589682713404932174828387418246946791078143515709211877206575158736381558669258448549811881590740500019433343696659537519385570632881212927519018616964832376079382437085349858135188197194812935570780434815346703886875620413182056882397585929341133727381487036328741185917032687974201449399206734641188633192609987178443038103320083159276856882943283119992311950562554743281382292790268046621347588189251526902996804176196301017234249545003598438014073054247458926082362357250851271525573740465217386909641112778762980847851539695755910993389858382750523663635380116927748201600786089990115662967692496855630430676742270736885347000610261549818552445692814938523226767647202191445080029093816692494126663757566981391784219841185302498431137076022071358454643993125646849696777271404167327251863732853420875666076788718004524876663655820039671119759125726879867823834902826386327051689105364927536223364394612875193850353420500051126386521241753374761046462707962722789376504580101497127989030177788352435167914307552383460296490212776946802672451716310629218730281923192926571284555822743686720930867888644149478750441656312797112614070750504448288584765276790326114386649210928941505091877873377103005580253037439955262043869094986529147198998454711961380745466704440388122450268753075426753733217319866236002307879308698118288858271342165103904796943359792036935031302075168521842336653161022449409047673967595097359141305946325152604666471499480979941690788704917440372865555387062376626593067602084239807697798128479382298443950817661711496005278732590670387278501914073754254040362929135573312742394546846895769278749287452614090552467981563592852931806352535650020697080691106970517346586402495061832569574641392428302639310944650347531916269987295435340003325296756596805717820381982493668210426932330062329218300145696121154844363701835896848708562816914701570635670716379720901121959652817926934909974287045748970502358036305479020119085779931715265017884689882208259190264412598131631570544124822312523115126755417678987746662133559107066961583497835161643925526418744832668601825714800757220709941148362335162900216026857006561068080730175115195921145151980524792169962240520471880157545120501729714974538666715403227029885814461985434077807875294682937231290888291832584001165742192315011432966685924961394803148249639282542785554106099491770191684106787692713564204356627492767693219845488605278347933468782434060740116277662038036697126097823040093202467370840600538030001711160654722141095159424669075563844225476869029139982608223783296521448754516829376891843689655386928176443721842565429183751140223895527670315969995772366183868505800054285567829050421877465308014913440757728082021512233941201424816563655221963761278380302649410600403199098457236168419972843751288515603793150217978250236311630110456314900915040262370967694855369562473637589059606232718240323735716010581285067040755365701621839870353015718148845762595097450747177578908938148489212955282251578854796107830453046873004534015807613037096378457837837406096554013638359383807921476444449631807345398933553300575641830351888846380842173647569696986254130375803160434729911149914508982863994177450067602694683822371466609081964086397540482841319157741675592964262583115548553644678185137782681572154032006539632870032327279737484547200350055342924707001260582331043596579711935930469933060024148329394382128781655024749905927254489793762320591142927667652345352824119702763412261241858262696596167872046663390590048824024373578137059347758081491438819513668277666685973997067981519945709704064079868722285344817912046060538584940932707887195152496978550712820548394479648936276401109239103059835227791203127904912905087384116900563841491538457085878947818087377521120798284221028884893013395664254482849940022790002580401014972550990717129406117406376610197048032320853929916489499940240488788201844943080536782717506828680437311000305376354301172434391134526260705444678255054567174596049591918817332886402519194656856740983985521649610175025860325396812412683307163153830185223480576912494634063425109107355304386019807422947182159169881057156195775400401307736949567441053035081214708467700668806284004430190576997216757491843593666535593815979902030282980428039463942338071229494789406119945022587036610231392629244731667619871832946395750823988061768985428947022172798258793176133521541391355675935143828796102087849252873718750908240385963399259933126911932470938929698513773168618415267883526484876120153312833232857867867530412248034234295845029729274940956320086773015611270700044639178529679885776223103303360312259867500387673312148883177307516002813272216441410220365762323596763655127591461879510646195491787453108465832999715664595875522478224891300398797177213750974052460214897689412522805379945442460945044896948123090318408959886619399445250412604519934586969489387385633022029124349223574817482283669431940499275817952135953201444261833369469161384171256628349267580726133365506869519238666175012309594053605220710292171614049199176092833170729643443835798745136035513512314604351481724143050745458462956049371597549215532166232938930055843439176275554047421543428564657717533829744121835045093882436987368364851583649656286832652670627220259205914977842077716411476188886764442811834785989783409807193519288098682446698157211733271557187781301312221085084049529461684257919808680852853808123683164563200860836015099481738317887297196299805901546972190398710377572424521826911614676812092450732303036094056444573933316079582868761972852812671764001270198079089244443921946138911894675227920523775871182167073345617810937477771628277457257474964545353626978915270671098873481690133639745045101746075377969710421910382398601854217717202505524090877144301581000004140474607137296954119265474698834668462494637646657468898780855706119164798486677106673722291277368187834238138031477573722180274419461101123595154007979610089031109874470604266889127662723454364849145803173956837678874185040801751384601832190569137688173224187684987675929596837271315053288798669156084142535316635910966391378925849167422503534771948553231487013441668513343117826840619922239610429615244388315072946127469271072242746406144156644333035244937554652313802278614969050074715387870326025803253201535400514035692590219628059244333674707386257042826577754929526956471081430798446079080860899921991480324864057456919028139415786845174843079584513862860240799989498412458547795426203863205492401413181153257058079789051511142498756951250381341642570932451449534955620517747271749896682163695474500462758419972036088653496129698765420041999256769167299196273738347618778472564620361305774473687005102325398660674958823486687600484944938252387761576681915463294882238306995369987427451670021255936351336130368281846240765206882934422096983530833774619627118238528940445734577896136783354407064156918329418482435572517614346249375821307064980098423940797782638484073069489998099708056473177292447700445120972567499494866145879073953737786718829166132798800593042801159387860924926442897160187329790649864245755931125011581310463719692580239402022739467991288595607253072800435634160815877012554076099759003795601382726823437466437608579606407242309967357710359814653057556924781485125115880122502881347371080329278223655717970496299190624422449363357879980908903814854098630930258859532396478157202339822612882549820387887598714266973101810204285793442824052091444044085036591783705767624033384587675863527286019456173859443992096818237169399818277725737361499482481860680980877850029715707448521533821959507882889387813433899044710887939747980163800896136843779274329921930404628067392940598561956870748377538584843236655767341231913208261061420538611539115217572202036561826375089405365290221752560822324711169391343383094283926438645282206455361758798711429469797156816066855379014829689418835516990976537529083962395105304189434957227805543990183856419498681082105110276910008996109545653760260414706427918842974926005655921079320042562770377075993297905171439560599706148738664700679052454367771052435130365563952002538757601768476252478510882908561006934428780237019003060458086511947544735470373536322055974847822088294296217624105376800606799098252528842091950653763702431209643302182106214774301567185179677551938140910305387645090306072753340579046915096803327010616495782105825502275950147775944181732177273611487807106658874236949422995139659139253012027596833892860233580400383901084674503917307118992522570791292682984962564940565103655062151949829415574766701904212323845382491373786075827214526188015793956876970610253625960116892261199258002505135317478106706848190199048305300923575673213872265761694571193448531285497833220834349502683026926395788068855589545814778324116974785125546208263853726286403232318138541899286010858032109451802348536579153952646096054055437112980163064156131212235623743930329198737835871514842887244798695924343060027737099251492694572920281170067363371883528005261733461495659847530963732267740979501017787404983531521930155435843427553060709839323773675642875117939906679936709902276295491231531645443244696310420072432715956269472397000789358886502412218075266842205697131689944818871190690444408069418702667673660611397172599821756315614392705465470299703902562840171474377693877140677244509865462124269232353861227934704015978505161105067330400678223881345370673400209295809439373064440739373603491150142278461936572859584346637781817781191787449182969795179682798530282458745765022695024797146778574531178979647465836586864607504079381376688438429476898736116134811073170756467664696908945967059149220200782082522477652967212440557767024887502864434834135754205566250181280303132719262735409868168770341353935330463002831953176027709143602726987829966762742743435727905142698577478261021856844982348509607414640857613768187193889511829643849507898392648614407267897131489359511611698203933117269650562200475632477508270683815606234542103805931072331467485240725430939715892376044936677964271118398913394698522761242163878558195564649316299227640498239969083849411427461011241301943679862757342278947974613419419851878383063213665872739856521024857449089770512352654417684691147718374688133218328124938460888630617398898764397480318720016832825240801201210789591560949206170421972117800322273824617964502092717432092648458008483983386488351031910212861213276957582527850774904200043109693644814239506241751885914085609259186491525855435513689582510326276047574500906590137400641515553600598957196759635042546284292841580929729358150335649004221599129306011986129009840484982841805816918994908355845919230939220575375442322297405114305197897054968751382377636271199858801592978191590124819983193844470960096752166368771190824169730432448958254963920371895910190912992364376767706664096943439834875789480843891264103939138703815197196182104401373518343009994919419529063764363271811060692713908852754047018496360470904769165224904113568587705691476527992239914087447617535095823746282075667845493151736854723114034720687670573068663938885515227666670759679088824001104086803628320516664189588868516293337889085269986183846734886409665526619644403080826616601264198655352523306736121954860211590997477355718010550308106645083425093889398931932854618123257396129075280326112039806078054578070827783273588456018722336544541407766065803889973414715937479935727196694741017969995639312763243652997874824859196789379164947811715804495307681334746993756970144211395562307720778833385566333671066697571610162136336115646670216579306791938674762815605441839927563891151484357612451808309899856008881180504810140077766600769989814198575233630065171356439105946750564536885296223065277626337295695496375474317573169493716394154149726561177466795629338230162228881824640476432923042124402637415766865213604025318001971441898336832410443679403554676186817913784199494055449310522312778951452916229395021336709401204347959142371328484690846012769477400833499515720678464149852077284260377528426458453422803444094171447645914706244199665526377832767174789089799691391719567124712951439107462973082479335521369695982308520493126614558852237595535491003359050213582331957713247166754776185156325381856426501414521152382149019423772603882761489451354188290454418836517917531353273676871721205015687512761610312825235092742339360860926795202730147616506174691604195762573193252877483796317705379529603834118062586383452719147741916376318449791515269840773422310635499715942523229925367065374280665246263301624171258343772438275306067546576771258696063911651584772004656208739569938271093291680116480279661865540478633541278023312558980334314679734087832525386948419788651189352900837500884915391481768162744801337969024492760452523039445552270823695367079757269251872169332928259581511972803943533440419125590754636792931952078971602534171432240167069378036398564567254061143871463132727790541536903715181627924109683465186135159838531298481940220549562239942271569079674535520167279608650021032533734096882118613254522745453123862432511823068935703644237404084632547201699860883270152120734770409951876555797514005336391751587397841599762702577840921819232532721903657452551801161756112709232917780823057229166217760412140581943406388001683549316144985025428216658767774502621573198076259854279281009934001648729442096379483461308947984353348826497523085279528434350512442899091481936829332211932435635523730765508969532472708718244429639119241630158855556574224275995105649842749658751592808657357308189032162538598462286135911953034665360846901677709075413046027932904955086383006825840827634514001689214002994528810445014685150307159973592986853002220978869527540834809404755455216977021499261162786757798254761291502815913402585335985917220516935986176418507136676095967101225539965280320494287124007926446931730282407484745040850881815245659645014452775040283814574166926710170957225425917709236821359121537064016929007392552670783337328251140202373647091335565170535529159420134594851658419912283381106555144523867807534355926996612783581968411424613698630649632420869754100442097816928472785218741066684021374051571786763660645087042146788893010633985267982175648272706600391688214767122420077916866812640917796067852103553423730155538127997357831808913826946701724895666782361319448580208083573683222349803969881192705999467522139673419306276515207882975367406240770562130239188673042881140272570874660276863029383090683086838875306384429320353251031137449565327614533508993618882479228304182948563993094197599829477502907386827388229789205143832086643538363353278270069996812631872051487003753997506034533810446640976179754631535404148827481404113005688805432641835237509892980750576305152225670592257120492186826942153762589302973492511476585386232202050652871626327945951748129935761374985691780300583755342847893042161278778069515051304166598677409597270607288916977589071428367441383219023134760723884819962344681395393634720335831103270833660804894765731238030671249834234982649042890424845121389087485674073201490398578568197959420471498530606053350970224826580652099612740255139823366334292298201654599871155411119011654824660304886310487198033444908406935527398298053443013833410264792684030975772980530310613687559431580842979615086743415962297829384800457745524409975102786614613703295055837508042938382763906347868607298833024215609815237801584977124826220832248189232415418887395317024069943949131785407521389455434472089315113154993837064963883551713774121440999805415605375560913206927942471109090260044469012073877964485870466402269145126163749722980330830593048633926199051968191948523442145063927774790141236343730740811978676083779435110054201023596462446363684736459064203738015451948363628483218755162372948887906433186818171236843193994533770203692579576191732959754698997552268151682382300477742027795776144056282972529822179874068634076312566637497804469102609471203436526739608664062140276770362570519487674100097447027780470926701598806471527764632256625794799046056097614154520531915053631997958107579141472295716163193855062570205908032334178444030048794063953751769142382748203042860183587452216019567309736181894371830391841677336085958427124954389581876306733535766308410488094368500708351240183204678567895453975756385233118942245675796112681821000614877953174241700488765090605296457769290369468925533271652992819549046330462158177999424402816366165663603795666145877004286421045372462549315554055052693195240752095394792026866264662985137595558382087134915339701129739364280652118706563444300220320685458768252344745872545349143056475219821211681972782189562442336612907540099206289306067673799458944197766730139876455945011036364193395175729799210662633819218713175689090162820261525165806344167174196412347765076257569412409852207701986142396692594227860034973983182840425264936449887951928620645546568138170004603018986698802689624400796922246029090336587017011540088151495898500323831197891730425254446077057678620101383942216280129409242779426291263332989473037664928653399243655168409497636460805149363773520680458325363191266942801190045499807286802177245170787317851338928737847983395263170935141502407711235691021825972038746069720324710711569328248119840898135519967957200446308318858214023764845619416798696530586252890124883360604800255251856796419712582669556996793189237764265678070475216762359919418937728831971236014228485434219785479018585936513083265237854508425193730194098717039764907692479905859376343355077573249235635184181691339307920014079750756338908030272175410565146945193163385086234798576643751960040693640573536985969558740732296884311089330871203928454679712053690745161814308352900209467996364956069029721899102768002308341578420459638043289295138724948476470448067524355227865130712553011068310760990066869119579959409761263508212628869178093924762226041087035304977707877105379413848846567717284649827780674390160343505396379558622377331525664641439613505124751432271648127205657354890277012354092264237697382466740453996997660984225273413861214082223421269339540726545288218876549244537757436015940020626863714933785601952885649378984028311876420779231334437050448599224182375326988102908418294613260439996905350122536366877381837258240558495523932800045493702397562530094216540769398175415534028135930640162621768963275149413599078633988250149099785377000390420367427644550802741595289760431172774139757253691288287186891754300415653012660553316874400841923385305651074785640661910492911544946905672214075705036549286263862936076523372661768430775395281012813429376953373903626318337665167777153868658701481816251348378810397948602192095787922103137277566290146993343361037260309459501637157220927985845609978693064383233877024404392036536712457802038244709961945274595687470927317549836422275876285390418738655667051187582155773047091993229689056234453481350156876504768246903022184779813334986286746621241084732205433867575623624708544070362062272844065556124781862715317105770942227195977772646342068313575657147647387437073019426774839255138202917757026879870698859174125412468674070943094642061704197155974166244744769568814601381543897912738297411020547005833187661478944420920628581271461343547954936138545564689687463358419231524373868395456161216752175521714218298255837827133581522213032030282733151495066223855381709939205668430158254199886306481490809106035518856357957697785764647582451325755945407932732123135551641620530991365033899187047999814768285552060890641163961104115564064045614776667115639923508359924023845216010315284735889315348313354272018560542130557137863605733600186099622839669792682675358237096194836612196742785606084008922650503096201611555676582987668519175172087012778052528656129040824922487551692812924075755921016162043041763019313097223077542786747167740493734663891371103445230432361170187861965080956652299213250391686244674842849892808001336774437920431897658942101370288649143067456678694292707056050183716051533955963526435692269065869561930983736321639764722760339313053675643932303909012198996418872681537231732548305927064537512297214451311214454367405063231954130643872384432426042544440403956890202590643668377864441185887057972099937863973499645633224953488584508973699555311620779346397693125727991717025121399878307265534295859987046306948655811240608427236541277280535398105603712343721173977319498593083245819887948201260807503933469170126318329285125158598891033383446164763460564349799982200861948241351088284439742973396363456500880313955349210070522886708945456361241795090152792020448523216105685630959819439058450646758534816769819905192521196452611245290526750448030782484536580311784170727487526431374596323409810534918514404605802089070346987513796180115798513627926755964247061276439514973144595237711565940539161502856299600714927995130926910708803374445886898081454732897084405995552782451870226243322432083271058547936079789986838346754568317414430524512460321959983125736010307506381303076777694897876030941689515469085596122069230791053901936724817178495121312181158558127978882982084889194847056876642212073884191951960861574940629499613029999757035455262258364226523428383270107008013190263076775406108462488433184418553431981435571017641305367676716403921567987442237900425211377540470389104883204406675774117640219602051584971832407849628959027660070300850126907786922516804771996510348935022430891754924114043038764142809663961216668864431175581203381875817930367633929626249950552033985292443993204295486251329683031496356441407791614045500206690214588522396200678163844159083192367342838467176010123779927576846053798409571749192302201192348699060725652427938165148902673008013655493485235746978166487713936385671311298389959281579332283259951500041913513270037230464635671848168876589828802637491824385831275818903325479557544605444264326994150093239282358248897525554548565627859986546582917157497459691096197007800544050005554904006716188852638938303834402698318817605908715240735169818309843910099216465152923707399146499158373221935356731794207603443574811112008110738498888151461514985994684483650552964322624294663980984045023420093694695384620176355993411083917791378625197990143834716582590340365819189979649540767254599665867576002273589052358875589777820054310976336236353646903480069261906381661774649784593818309579799093603231476133481648008004369946579587876328996975447206101838836025240732071251106234002868343061652094861559099306492664225607257677608334691479187278256438217634570739834935627629786476646331311943214457079868316565039101701337029070536245463742851688203269416685448253479511644913500659551695959069555323615729224617682940694684666842571477894936618574937825573936157323241034067957437074256037194192398564870332795386798671216584319060195497668565382849481893611964812401460484323847597243588860539744601982699623117958443365679143712296410162874394266928044419163746351777821591333718334838003531193299200059387748034534925576613609143513406353437376802821244204671193756351010997022211185319518453163870392664877638829208036464573932403747094870215412763830502092712694299548917631096657474474768148046667869500686190286980063767706855837147626822659029807112706002563544744338744869960815388148739240237014302445894158311806861829588536898186305096311484166121664734699297162221877016414369792301578681738613007246893734748953917452757204472678981123727833741881690953716743616424962478092211028691290305640070975552712736225204340616899157474089886140982095997672902990136895569275784537291752843893909726887073550675655716836695166028975943796193121610484079297112982068073073063040575887491137503783617991300276268990462943615589581974725329199457690443344276081944647131262874544132697707156857473757067807399161490421117785664960689335724354941067311409404108922490880830510013317824129478512173138764367349077527035033156754332279945041662218132940581727888836642887566981084298017493524573830098374928092906015010528193909217094647603812417029221960987860177534875609646719709058680547410530444053816071353655491744081981559951848742784549525928790128663183069218772679018021380658679975152181862546323585932891111533599630904122296779738725986252217660051479014624309973535707889633504642913073781631272911172730708848426134630719957926434656320913531409692915976720774198314173993966363025445104098850825316612261096171053547240486739700431187737628905805622871436322337806795432318621982454158022951734726085341020508577254523572541949257261246252420483890838389581906849415059209164859717560956725178504244764554388893966282861161531398304079343444805846286753616082221669393423419656211337582104033995388560883878194320440013262378257266843150510682567642502677571052412793239740170945276998130656625745586165391563160236380900719207909533913882953942781572778036120093186164314007616196956477576821082176010148403725087037024790672303001996584224368386701864078079723136830370088924929685392402982450793528074150020125442456257183928771770691746629172161282394733309737022071914298565307953639752572788877862603161866886734434208879734331803407772391017007678121101405883457052433854177584932233341786806446991640439124174244920600702928126251342612459570437323867333461226090037624957217825761062371507172982954558034461547788777773934375667131108116006162081506895970857077776499791828461830911391126097023383195696038109781011024108896090152765496458374768807148891663461513969863245348049234269531885723074335877817078381920359888240225416062801779612662038268047949601517346805318039802011588344273629343748188023745554841351115500896447738677516974380889436784232569073929853259468676022214679998573291349373104272221962197923854508208378151323179346533028815885148821304030638166768167278250394900534856011915904587078125912428532798628898130550517255047613658071580157939535424616255411019422631540605126475896211182825129528111271066897478951659515302783302051797838565287137353211840220552091256657580834108026764013917048120833679089056009212273202162520457201105221181892104985187440534579599824623509555879885669732073081330911229655382816166143979425355191233026455891938832045310883998454619932888326077422452723771879958280393651178618273063265920906520072467922623171408268653152473502843202639760688878779198524464475055003873298789091327839541690433766618445911237338237157964412623814179719190284218486599681779017468713528961305568944515653749053209551249409560505491433778328416244021579996414356382964566163641512393683682999260311437964310745257010440786145302195401556261292574185622921143059607458527914362416102742626942594516181716715915694202451908768241136119119878132038791106158722604092811146267100723268434827762821890117834981029918962118890890674776532727060019540375604846566031434983105861376439478537625826636082619945906230564964912868067985494713547719616250176361835147684733400964026507350292287482014939462644796779806042069993020814711467380585821607208029181609662258368214926390079543014042952737192110295660645395141347789329410159988208288561790866275873650120116914708680117135217390762271888506908051739563451262129737128718731132210433625896891432273525570501144909689356148875609415064164453349831615824337856973060391639365681802090967483655643454188891602554464606284118491436694019856939902079326286134313879008862557952405968252999697676036828887560412085853567263841025907085386605418207604406294253278022532371432640504046743256349661728913894183944185888430871723732443245435295108120725233219762351694268306854982328420016378570527559631109614171083156966256642082941187402986243428742472010465664246873409413178907859764712296408317890759775983856006297364646243774416370411971749023880827655820703654427938149684916549402836387859575945216941047892256651827301427229080508049758218215759251932929702953911307162515443206537446410766210288796377680955887921540267270662200442563545778101518480311490369630019664359333217664626981407631666946528602953414446512864144253684637417739048953741827056154727810888566760315151830475615100948545504718121979320359507336698393150343542643147772989921812728780535320191768587426482585346955477176624000287341896284841396655986523773192107051587739164848433003803011803427881679334379953382272612521342008448543489454845692133461542506771036961795402670165106008458597527374084433984105618233173076131384196892102881089555352426786240375701247613085691428785589325876521385671579396471320548892051294475525247651736712105307616896499733223784855660321403091593121987745380177525615469561029169636543246011524151830085457048042832393257102360348425239592067602435588882302965542689341714973040398819051780727964896803055616148884685197424578269293585144339856178659761875393868228100029059519432059587108594014568280575985144264595436650912749891070826175601812060645873012968948932352713373336502778218050049564497092988581018757578746904352338549753580231888906388864575560055031711097699462654522073236161206384204585951723088059223081514863310938463428949977730179770370888844064034594056498182972669847525863088166123205576014437199114043659003893302982446321264911768327724060019039702363929564109811757453216159882346716901089452857951034096702659619523286159332815703642048456918051802652334385744884686025952593471699009907082865056828153030862166762401306872865012419501133521790661394892005664031642126113357657518075931146057672655563956088450056829100105662309138734233741667030722246361828545040598540837822249896846547731706683479574418842996299330762928276564894191708558523205839304725029273406569955217628256778581033802080226052474222946384386840793071971960787721011276405101635654198534810462632640754541728090087751739222882327138924748191433183886958031634461118779943726064055233639930838869076411712002541069339935916361573415637586543034626490052277846831167316886660418789179962749951349958937185981470973122821860002248071149995942920728011059504727031324127606508290243348435773953204811323613591513685887637848447892567158219234785032875752371772511142898104202842507215459377583815356121238067484173388135078242327732065965222975757827462879896548667298994803516972721848429465337457247267227659373964340317531374920554621786460221681499013015055672099116719436138112563332672580958538578465185359214837567446326287351998439206035992659826698854930964876064083367278564611238718917620328148739807932450833223338632688695423410773437811580052510824800118872971177712132997031753768276927689760313959604586591672141968042670656049395224289634961858778789112527922960790397382021757449494743266066069976598957342322174035055227831787709661095696738896379119190022811327094708538720539089884068164970666696443223551031367523725046010491745814123328796718392529999190664463763264474459187249941479215728919371868065216095221377765607978902796084284337643285823514589172373555110058031851519912786968842257452985064391339759898733975338199655711986658986393855135435990016155614007377002390449247623387410398052039645141391021739629682151561510182819781033706488194793031899590045707651621685791307189789228604155911332412905155190920798310006189496494852616672669761377936831782521410383335118393869621211022227257885841126214031242860708582164406891750226175269829554471994014574981418254476167611217350138002404262609632421185140498240117295893313889942913736710917872851497209585090327161226769108290820176506436583115781974022717729585850330703071227581237774496819231175643140260120247211670076253290847483410580750991893749212475560710691040779419719917534735377620891908188101761646225139783382750917256712343230510524028441102352302203214438020786497422774964722718327967747435631217585879677195968301950256171680767696719667844947626045831807138558029827283804300759464743618290934457866458543573627222531863556615222200389717279454032846912673886680161807227835739672197228664437958902661515289499423835565118971453448270476707544030806840112150008052766381659158347316385796833979904570883686843920827327931737784997435404355849248767679344704794202490859347464655919391279160043864090122411753978308196030465906868158986900007285191224985448777852130986850091911640311441746835527571798520024242449740159125060654383638969999088893026440233667229151422764260911647805255341045833805517595593149322440729034835435696082112787915299226413850577698663812026787783148688409515377056636295240417672100804444648196329247439451480601430937618668579468782415258905722293327433607749131702952099163882194471733237338681829244550907287616715747987315668182409391510797298238891171540080980405285409617850628443547570496459211512951317986517624741413636880172857216581385161959249599362228801956145233445951783023677706881830815599515464940851229391266621374011367449911483603220285943996736905650561461873971568371897620861683260402757570924106762080676361053652893841422600285194951554942301761422238702096514969391359426540048113734178898591089309014714164681827481674925009594274388650655873168943772036570696094908022876367948306655829149944458735244043532672316514256206141579711637686047084583618279576104467367835968796068646760196523549242084122807768848490028021996212229454765327173278497210504468334845092276598320015840083364808757000305017848252354913960979113026129376533787872949386546643202544145086489992425471331978696011433220050268897339192998283817991174882234648916329824826579238150057267120778307098480668207986833840416695071003967273354003469514599479331288209219089266278485761482210765219304355114496224962626866446343391065517788989586284498435754686562847376236863380093223906766252957656986291644463362558615848004224191685911344126696686700362936029268797287228248768738389436526307239378043534522237149759898585485045519396388467592262534580549653123757622053067920614860587543092096307327928272927195408151011669000485475380622997609282842843922686171189581573120171389087472720054111445248834686137139564471479971631841603927760781058977117873812929506800187933386285187101314898883549533268696551149707252826642299110690801155938389625852847561209539140063287765365809256620570440310164379754017906839020176983259064685843062255131957552519371606704670942703760159789403078425411864441901872403278612714899737610956853339349801227515249931103473332064623540210908551004658846808468232110490571966657508140727383395245933379250193883785054809098255042485526203447020021243927833946681365810412505770943254096005739060540451092451181869341088518612169449535444994802752765732261772899517409111071563272531182799571705855814965169039129484092308651046391651779344472811497066544430938331160777988561116478560019247762879195178066476738098668501377537609929582794093336371748931125900899428804170239816287133998998001735210859748319722339537068102438013922664978431320599391176535903285427598525818824755254867696670370032088257781046614044859732207647986585167932522192354290660764286014624680530166048228592982203166006969532666719570886740149680577987604782454045092925874896545921248857480873926676681935533903419816025529896497225692169931164029171682607370906530057462972231910448207727727013231960403378934154760628896218402423486477850968030436916934910655115698770853457648307377726845732815993754446216186050171414372486361265710271234171039153277052695157233985962739500916623166372353075636524620068348920731461885285596476163657026975281136159678529367392176122124669377686102858010645842040517501486616840410200926835660280685511974770954464409379844996799192845953504614492543466462250854425367692313201581676876083158208404672733541900066296270277822519162807604789727498316774869718110586145120983720132441142957734956024314863803036367916598380739775277912361901333483754177067776992489507206141818446675584965724227206050877200299676676130334578959996372821367160211318825728368727541749753769853489920133770205375196014179681761601756675963922178482400363861168563340182741990457558456286729284278571527299521090206474215683684141675272020407140850552864763058868529457664428881651488814409020879914900980203202015081294302256258936538229708459262255826761499210104843411773160789226708958503693965544645619049947561163257550451755686164222556954874389164971004844476831369904160083858408300856585402981029702874503386731785442318649247381524778460745611021438081639637170197070892051046430619177968777782304602529943271254748290557202816836848510516499190973383584881795072346087235411438100397243018339083235876809020050001579653981503852366867640355936030135857686595476031677917372700287278499819930923477175194043697916308932236092494941312243728417048212108350920991852679696016365799934580248543536182770000307525775686710740637238578308610227093712129861014539822339675894024674739463488639208223505360335276194762626613987346966891032384383008223451515398773905868711517755620193363046648841386278504930792532189250105336810689573981124320865593842519778891820201027709585045023481093765629966630690189567439732306139195539345144188111458338217407712706738588902658556889089939110262766305176911659629020801180245651449862190327985202662067750625834796335979092512781775840538602996288179275055083940893495307412199264809387589776225728822319347718361444327014914898331231581896439663252883127359212282880348486196556227918204310149780420920072251960182453659408902043288786339624794683128238412679357766717935325430467490819274906831193918856754598042202421898657060746027835972026756490839242362470638606363714238088424564859582935913084758954639672265781553669124527903016222963499587546622716530970287632714976667762670636798065912440711476092597248327229684168661687782335888120697222587581743721451025019060227647948796719939394189845588172199471548209924994280750416454346605262750309827152093289291747759178532890250213558495613674835398702230535798395697371920410483797330110514513898273968076466562422670281299369446238722042561660449837977998214356548289901394775638675927922939094295620571097642122718895612072341645080837319302901770585509657137703720992678055988187440549522839553934555645534939513752483735788782752583738526264465649537341182206702930349331019284413153078213661173474963456663185522958955262998185448596538314049029875827765054976626140681343749337282711411570355060221479474183578792914364272162702517088682496008568188883517958539128882588091758799723857781789061601753620044859936356334987400535938720438695715627879727378519703122558750113168958286541197546518017406129312062332747136202484477319805437289122762789238950281615037278622689141554585674692429514596469470528807989540798099284591767799228632331254750745588331320009332414820992499278722964653708857182611510373388272360564904932269262571441289003336488614870687814916154581410189482493821208694776873868901507481930017119841914384195936762694746722187706062380722389625710664668686652336606671940421573622010949826244353865523063371243949004546847643082268723264306310752560257754471541393599867491873854931793473985197499546681383624960633931918780282737700177399281170832981446766702793763070486954918271063430764065163321022193568579461631888145332696173870379869653278671686607664839194461773998240212015336386513082926475404578097418946827907304570693021611028608607229974689879758863140741476466689821136191966949616036113124964942231211694580508707109416987392260052673999450391099585627112966279470221334423370939803024063557917539845849635408845889790466607588160615149434395172976215743062843908050691845022591855447333879326585219449941761474682780639943600063261403899129429469658890834580629504970716850847678117489178909593570900986414462610795978321829811011677912406868735975640206198597222212897382421500975881781317818249145291683610391071577617373197120992338297260264798994028466241645325580400862042592138464135795764721524465190249475014948560426787728280605455774031349666491690395298298884425432013806503479839909007503581023441029812461549328940596169015746072091987128400102939534338834180624262071668226294419617315325284645645128195676496280087429971081194176846344240992686183371848152883683171602677491489302307176087664448149979914562319906700819798910604614053526297130376814982744754221386544944158383697475804616065447423381815780787418635359302585819147074214795624460799724156130316021987637298871767664524110292372079807996099365574616867014841775552816549699903076773153507382098363968125423785327823530259660591070941863258090109482227305883910023388210984056951603334289974044921790056521920442421041294894069454518705621899925911997485151079261788114623412502485745253961699607738753484765350040832205024452050463589691392474991914873899473997575458664803660821047668889694196194775157709771622830951864762031899286319264498798809280708739705784639005944280440249285043863092174525584247069711443740414098321249324305286187773791405365468366086302308524733488589571744834402302049279632094318849908320721380810325921555652484836416419621427090859729008393163236195608473464373429514040391259878565033815237376197722763688388986280801043462533826801037761783075858391542725605140642035253861346838056369478813350807504560655848190310244264585625869593153670677940745571907517589295973819685134153407024631515225580369259755497648301464653677876296153554902505878955055284030417413428147660258430256531391548385696608432201044658281444293571993128282265458332321243613937879200088487169631157479986758225393093610741781540073876278658869669073458063289472310671710974093076920955208026152834421094078218442962754659121514211830626734751894496702129230726946799137774557638455893162915470424258621549314450930693819575545002861738165322638486656522267680115812745763777014842342438653330717794982463624815592631547972017302288744967250484430702127269603280536678762057808101323493086223423116244778491823296132140332983447593499717265673990799883484979608942411438719319568416702687032416990989178957413079337365360727503639941170548468531729351274183920397802530843810411712334565982955550294200077732722824187419551420108162678396614586651089919215750687525870870250766986873507918863605142107638458291670181243369088529925927284419610513947665092726300866575157068773433494222319107650406047074529964876648527231877681181323055286563798974340111812256049761104042755454937052278704311065375571806971789006055263374436718947923346552775746280341077896005292682892561999400619018592437387312244192237714497974853997440826018780730973793996524689462877934165023595244445683954673041411087451948302311017441578027744036116602550441692553166018913321715012869644455293801083790144166541950882802150995786719246475129013104938728859038970829702060291196417665890395440119811987092434423843718496338366776563712220054240151729632407821422950111214961907707479007323024827902183181822351832848969220978932128356886347289250093850611853219452930787309647437417286634098690334461022096048180362267136313375932672894136617133289780902212865553430898798452226904055686767531498957337449783783600567163453267901781663676977669159680956117141250776513045810768088819315806630978102579328404588225968551096662319926786115867135740708506133002031220607052710047181571214643138949955363370622944801461065755999636404420597590805130656490947591694194759350044745673402088918831590851183710929832218216967089789448636930963159302148769903971321464091181889815686489983130459395091740930394381484940589176987404523248468168872480569684244706056392951982462387256193378113795167749248398758348789640623534893396185566531770344996119565729817410085705612691999456662410898029688858982723325247712138608098045210587548021183456150793772676696494273065125317704342003420927190570646352733022579787573547503056902989217248110521648756533752622820713850672004865937495726240080606273260913987606669399072139365121187079603244407125972633960029580692083903262326074085954839573666071811287381060222177385308124235853783281653511960795692611409130157338210711404108072542121991576163497064454084062553594574124023900533521567846976058819875409582977349320860703826379425781185506918676717566074530320778222625502690008704193322717631276982453866652341069585409275472554557268843277674922473246157706099964390913140993831857488042740746931363190576802600723099028902925497505239310706281035304525636810570890193525232699009812989034625240162220253597130817782301460154439306947693791282502126678962152385414564061307377084760606126132240732296476251558624060787659186964019530784698997732679092924088770034689434690678766189244491732538661904742205161705305700222860866859642050905648646361621045562518946215829388646829482122748973025801338184822522512102267855866764506719122892771243412974733393706491308894342588298050927528735924240463315571577279882245242021232192490874273996837740314784840196864400800084464446157473349589416876835234973045246874370063754866782677272313597153400507189280696506796690686999781669751893804151614021989521944394639743889995389302926781486274174014832468887570714248168435541612213260991726916333933035487798483135240648899732876122428371756054045073687517996731679067953116548925075251224655206610585728717639313131158981262567144405484322026192212937301885260434226119845530215315907794604969436620817446844623040812550841342255932255964278673431377683348076894112367116135985075034421710862619714570618006906059581759442938503088891610913449249016337638977993236688697650365061382612692315637888734765965042556696967591093215797867106521816342933461569906709450583959157544612703135881561265732055177691685152463547177108896981105604157486135890862440290439293353591427242210449935658707542910335173749629479986887425825958383805765917501699724386717318398437948250243944992440299936613814973192987151816694181338081328489892469075200463794257501826364554002204630319936331383008009457352238861350206911363170227191858279590360471404479640389690733778878821567176652083578371843663043470707894287920854708264028182488833446802302730940440980467034600790172216919721113691305981002999439263556880196949113594471137319902047342948775176840698166525602484889738833808734402547427381024981610804606855240518448454755981224530019549114325694159057360359045860824123504296189427221047796169773070672571727750560325263839156836942494317032095394536508500264718870548987888538638870093854897502494051383983442269660690609447592119994034938601118608092727571147856244721135400612797220619339841838632251017820199175807196102381700359336010719053101402665315855384850604975358384977626712433036851216684301170141737493234408019360144156206845886532001147538394528177466281552840375370112130052920834817931277261676339600844250104880815273653882881703494782122358535076112590910229964730052249649705209496726135634189482565018407968621027912389793771833018287405163803055259906753674059058649994538893127731633287101865609063082549432060239565933951452584884938044766138650312402289730115095950741273856148553813554194731806362624268040697908913934102994322304693058094312402099510436772802460651875215777596751722639823978256752059458532681406508809359981300511909118001251169697872864445363247323713760101744233681500529791697669512636358917639372339091353913446592223991723297469113617199138922302938738374490202114769463786391030667741563693406086722880249527606225177470541874094732332880954793369904670780286143846928013055732905417022895629918828975722816600241532808690298545040267820337453551206561498401631910597809540626643703047459845504506394362623440466085486361708769733524848784520309887785323565373592673593372503804141448612089513450746483769263556226507305246810775681654678204699329651409225034882423230041699713405814089603036803407033731592026442647272760657047923661839415096699859624193885635947211688462077155774727110762879919359657619036991351026436521777355929245609865070947742873434376292255609113567837486290851306407467296914515796882168849353924301182168738378259915355478758884424798925726805693064757155937425431575106145365258387264761440890046982020999897640672717361337945919595511516426232148675332047516878800621667620029932490668906503633786851652905309171605079711899749554634620768235038387297072130555040780408118013848079168090771679912722382348267509788421456308221492005213314296925724926996973262556477564044065060065639583553975232744845551527672496223286245125226643497407639138445918681654565943232404053904096369247322082232623347401751630291047789549153490083289805166232864856421330715399410080105365131512099184480413820064087881023611210323995264558635717879994517930478755011270299248299549082006351766906171752172957893452183872762135334852437239626519033942964389358076929248953271436655255682292294456269362935096869731190549840330186195448422026221935842280841464991000564056622559051348510276260214950465569236255393462891195629269815411664533961158953911502029843794326635351122765598021185679564895214444850936345110802509218431297625169840625473778134149741099137093100966296598156774456992056022915624918864881933114888408037856564944162697375289403037367025904923545223646890106577398261802003834624938075949113383195114350117653935135161595707476787468614044293923790814692232272928963298111163053468918441036436081862397395543226889367475083859058512099644196066121124548310567618708363113241586217855988128057542203654557464205545038500679032862789065488100394972538661097325746816957389097145437178595288328129614913484228563040953970616663094557811638332609416526205605931070170866935017556209472032269114035759368030693931253344433420980114065418816968866675719433893647564724525781014136207342591998560488180576310593508597683759902522128094854722860398707754468418459350753047182568988044063992272876334480373695299529170184324815170037866240821396754281068600008170774760524693069790354470995499712060725321748668642277954761853154919225070128045976325316262908618486377146842936370841425309290554035353909039394378695292351948338833818221854398850082792258696104720573653227593774359963886253818669944118741558631128425970990641722001851659434886244016151053576890225891988569490843615910443643557558526065397209351098021252413020834702732993669332345719029287041871131269580662306500694842440438511069942927182964579875468210026164119867486840174367642777212402785719986699230889861172655811922050205371966042425504937426207636023573629048636010581301496986868217992705505148878393253712109575638735436120882499117641545643949177611525344404456296477362883625146110836518688826548881497189992471753608619872589268865759520788978508599806088733047172985344242508390429438904746853711463136344500091418933506126738746366820342176325008555000440948499380706456526486742156727367659206233825011513813080118578372171661373802091310609946967311458281444570990552432784511158287088605746645622559342299344162682585300625479809295974468567197597969932262094497654797352872049020866043752613644695181760555089747236327380529953987295766517410258352172275669682162542797770676616620759125584676551025190127370610780049874246259330047624095337096409438351003421316068188695055584315745409777099696781438588153639244010235339114940895242553628497714012927373013650197880516851621381402460604118044960883544613879689729587539405055716982748091408386356775279055376657156833343696677926182034960852207179223378542981211904271304286252800469900791139491134976772477591862261106948147565784085589850791448823133964278904970676458960975713521259595692339910026197903815441410952997604183142582027086864754576039248676433837227731214827994792163212314313011867435726721968760849169991531434405691634226736617459134803477466621256301960970333502020992426676226233415960197631084136261763850575922677083189302582295302180060382351631238883324072364602567837095787401529120727492372784490968337240947767715648268324715364734151733454306162772283900006389415846258646345850933822688367280502138486193264778165813871981722796562253699020479380056494003365939798417369504419624908226169839600273664733828039742489636371610456934866972957924309593728575179180273459337407389736494382739575177819257880083623064108633033063867055144179494429156320885716503247738865427670569121526902072317862463160397331133353973947238119951974926050475111124601622600790230770935987832403501816233342518016779147944628972416833252630908454300270794421451667103416924249777281263890811799634555063671885194714957664054065487530738673411302183063020870002788605809240414412480318134390581967223526835387791057701582559234575700462430110626349784283976167054414584089294630421140089501886144877658725773796760702897642093607653250912151183082311165810167328457255768140996341717224771935018926177644698482994652646785960225963613274867334509187254007471759273446852586396298206176553405930607492201642111365558497310756372467607594451296468775414513036135279651391985729439392789663251877660904074128342080932013433130799784016538322776297656769831254725146026835917818978778305331947075856124201306470857717094174092612435815749292039767960204849343077435261652405289899725360303710472103513761047449333611218402246901212845148404084914594872715009173309435422519353564166343099218167219055574423360306419009303611012950232819522801222007880173525626604684605869586768654252915233025017833645997307279716577970856520949804638914943566883448683974309934151501102266210532902315401403082862727153599215708664434719720933666010694357664857083025812772629690655079680208163333529984161834590092169242971274452255382123497064478908064963352981856340209299146401752519034056737197506591920937724397067619203174715478596538952308514622424359246156608929746712276887434261816288064765500772584856638672639325788285024527776020508554589467823488327418967476479618186100463775235082765804415101811964309268034583028456121403022579410179672312677260095364941041159163335832707773949771947217718944461442518513172896752194180625040131216270251200834092965011229173408492517318802255072508981922159541695531445621658661154268138089105961282097939171907040609669444212942538519347485084066140055986620010430499590806740342756811311742053477005700082142191496827729667406407226539352107239893429554906221294643225478289229381685847862696653112621051816227518636566749059110176022003959926292196277856596810467351134450541711046382704302481714325696054141696578992081006768967740126561683544122479617403561312830729495460538007685125117314733722140463749573815589609198037786185658533174802419151895550307064656855340194612826181205643044329492149182468148491794810728822199374558342676115535962405148037236047171546434320199435642591216819691078625762227745523319912196743028645761239131498191077097088257892525322847070432072649203521090420003358907660107502685049050284144486873979832506820804418410332425028832338932670081256071211794979546963816615191826454364747906944325264782504295880282762631990840570815460961365448855676609641179505793350349754618976090666281231936841294085021232817343908937397863990565302274084335041182076905560631449650997420581554415009903475001537760225965387190660049423273313350586059630184099468022367030843655230198958625126582073285055045435039897879044014948495685283575010246121675893722394835102949211151641768529407285743093980661497479376142969054624597489352485405571661805388817283011176434161958033668782301433282717833298737577997562975401314518504050819193129368618213690978153427838741735895477641094953262858155508062031903475747666108594641658375359114473529487174849529425354886843114039264802211959830637785557115843669395809149736973331671726412241758695909854913209352516958432345991671541371370304934037134231485710531186389500645267974248107705126258994120972573809727017439371560680826699905909899696477224279691610418260978211148413895925686609896233792285625303665125666369230405337892502830398158902033326683057935452280499043888513518776404103483729729559694774320388351517825551122140261188135482354982073761387858548200941584892695871673818094031470764814484285817480313398971731961981399192013367300163077135026396598435335358694462270029207861839333775569617976469557151608827599637807607978677334586801499819733819018706098899701852150378664185016441307338417007846953570929793677881484851028138521756377083117333269554539731886824911211040723122109202252411540279329922699624607701169768198113034248676421650480862685083647048916638670994663799954156174983716545718399427473664635088842681429095777842848810775160709051856540790814155925521008979818868747185016137147876502866697451284061546141677693086121356419752276071619941388214983505461189594938447893259867090703230068885367019250031108783653436977292026001177261010613196570457152084304760457139104779354002023714348651003837979285980706101962817481573145342572343594576232214307277413858848243138381118041930558099853346253862916739292015788604637341881627688487670537222562080114457114060283997093148906613760843257510245794241633185863681093452114774226448849888787500626850823920858774842152417683459373934369929386096496866239151278304795313439789786439207321875445985826114805227960714263207177750871400421547539934138162214112349981593628737474141287774054183290184357254255989134519600229248768825250142667606226085698731100309871754673922709061189020900498265103655829325432682033559695681953871345706431575445940843694390227859371302061504725724111799815145108231008457191460759338411633708689321609967979581817297341042439711356896900285139696204308354443135012394758648414135211893222044001152161726613526819088820082253838475912250455748269263416660812998271287576847619579918286522251430826086424196092207784853168576086055414047079954544850583211342561859065808175160539149625013024483658953220925888172033857523580270554990845429660684912758017878395242043903179737041138124901965357141737936530008150832311708658740618071509329340971452577096995619665231678335370547533761843112882716811467699215160992057297841747801441861037491973957004536469886495851815963805384599461456420977024294269366561227116248467997324014831286710122305596948216770051526120536784789312820519763171917633209420907952940535813677514209648484953256320714093319870651604703812414808724916698106606389358785529972626781187403159193007721551804697965615103352073450034595026283582658367154091474082044866814016598382924490243987024555343030941933320161627051071471372572180404798818007738624945071654242999599276575276896880608201516449235008591060625201749128247670508852116014572410240495306449553076355332105828731201575730968884351814616824041502304719117988331334181655752458095216466726495860636157478213255027348844279280552001712326348813054266040474315961320294903843658101580191849451354792629421062004575034120766872363544307854167828172474339744744854218966304388544254124418091397548077247393635553879225804825899834933507749772412445322458598382963412440081842555347266830247019231429313501692236245341060999316072723497534729522490677846514234455923342420261008420066958524225866069655374051410432897193057201834145585157774295167341049434293550430087150978309264255790597207712312493327244804935027845631817800152105441138772768292744699378080715924033080661740481459108430769482937419582906853519999056552898980448450665265714166882024613386924099413368600792967494976863646310864625905494717522133696451206936845770781440970079082860543279444228671419028615678733931852091220182296983414246086098231745469442803522047927283843499806381956952735094680382696988841054520431401341485209843141734571389856059400427615578637738911495283020680019255912665387968262141408727329528569198167962496488713288333751180486586993046489876687665648011283081782323929085853868226886103849694331547484742576053660667548445938310301347300521265830500832657099332505801107579861224704068743398974936300205814997578773503481488369991741558412325733868399347273134697277469797921689993966253651707900094483557951840806486021242630645499869372973748549362933766391753656495357715338008211661113620187606138536084323485187718614226059366509900673127771931799810799842314079245659881802298593018395047766609559800251647361828803157388208723841670034201587490843001718676957596839150759160813774495664424728027725027126370145765961716180046345463953132549369167007980955970967902850213923953011296756521688414350897321904383101487277943352179734124354390854350132146409337633633374772396922714519513689872954809132535448287261138113670093247561036990648390001536632337627721442150416756605406145073704547428837155197178955474608646414117550053756287794268254554545815484707307346745765392569807005351104829638653290270247834270365907472000284653092604160938916414469462098203367116051203509550979402873838965718724566326839645220256638709183032777701487075649114777589621635629649346379225521724190416997083438922066296576561272082995986078989745893352200339437457970087758713615116329961747928390962399815872390734093285171665582624226869107016540047548766763956949643336398789169518899416235482570728191945472923230327700122420242871734297414037764669444879982066819543843677093271523578809624200192116590781613549127854012251968115018410311862303511379995606012116950660560823330495584531063505947178945304114762556094259429967612056593966159436361915439981541556130994927098103379268428700698387465181460642418292040740615446279738008348173801980820009868090483150777904043283362467791301009067409002274259312599526307122624718318694264155118636221830812402071195045984168964988500883713448817520704553577854314255556282781668358753437629564895491967985336176497046483434016726164139021589875389807477593580550107578632412011570607955803279464506000058760625911991561671191251410954241404470847013306293856453588561786387919626536213826840426638732222001679237938165067909110767171183056731339891600871256865957702351016961771948511953859041679653959383657799666374837126537152775794148248159240711225126351778321142359554091764252456053106817641255196152373727614464692480614731523250305496720901692097871459813735053765094892572604130668051166307561832517011778440049411477576604949226726171711913362637100845599502895636869780316559222586017291892559144287223228744513034008834139889245206803596694345991501513341094080527938394106658690765723218598916912612936023061341596736596365941750465305283226058475707800456997320878544318966313671830030450119796326183338637206333679690807891996934823783794139509396762401386234340119521856654226624433093052197651249683505290721793923599687635965677454763994771669969554639068563296579498443272308618589223516310762862721881839849590862724010370074654485828298865132410484897941620336499681759884625440721204625400028994063976664707897667069004570136044862031800799347717758843359620594325225168148377659849569319513262936845185894546445127762115493749243973609140270740960944245938264156369295629512044294267852291663965487238243746459578627362530898483994193071931046872026500303423412300136247962858866873179407108661449659061575247645767934824907706078159488116685224417877661398507656805374712597784551549815083594477820915831280595171362741551245578503458086729719859347101993541911372400491406944411453848205669878194067735548941765637496013215495236432378609247375648288275293592478280360189066646414732108796726583878363123863322555080105780600116467001561545613106116355523441588237755542248949457744762894613839141791137521959412066341881031714756187139514981493490792468210264617542610006238140618336246499248704408347096825019443226570668003234801846841628000753070169085236635311564533917271129503992351809091999373456410710179550396937102363092199736421204348845654306984052040469575625043874272681370242913984245427388969240076377707969495649632944574800910735962780853784535785102325442132488733982173768550101233796970674535804044854689925315192482211190212508317933924390548916673028616238582022125090391872797584535122157464297051517485852888104368901820995249790846682267381569982959323135073824802347073357731167285807367883319174774976352722042475995603961214788655664494081553274204372624046714523396949360113821768843446862817125143453097786298692088819311903321851835059170179984107391565295004558657819696214398129708371180041916253090261185092958087909680460068169235427729732857419315585753774531109930244581219612130810858440954991917958838204853631709889947211234702040841953013320459053412511120560938997719270618055803082578922835978247340398909018882548938722607028174924101860273704092744460578181145832480347560695102112738132262245607830250154552031178060890983309045391884789342688273050214504885106982412994942588728861085950785161240597968849883340447984695326388685772770364855626931498738791709082467353703201822284287938938608085783780554742196668191800162378223492102623528830264027720974948785226075041423000034057123055636135420221468252060304556963984617997624842670255123250808963672589003808605958946788802958895119798307157632167955075075911371956498137892446724559562600810834392620091948304115752576484030037937102217477665201499456364603211155070679019646098731415357324683075736958142661336269456141689049934810173122966326443225323635861602813414282822884132935561801233823297022381395383838779099322376037430949265297924009971550214112440079599026842741038876188746514677086199830830858603393760876460102134534012390644859515607636747781949459798992388346108344782307701122004158275400479707145695923645103935491485496003104533342161573455593488288727925456259866042924982266486394790731316043938490056661687395533838500086684576261885402867280598359646062314407278148401200931471496122828933214975708351108258307475767765280001472276791642169917348034949201653329162153077118253948046134124694804635467982012906966285388775128543290862677152300366695615801439633381908040563699582751973554280765750373679182992155214464971015041397260335904857573901933459329026715037109374162648807827764091453648868696071020606602723389512507381267441877962559781308444886483745597830431949166683405121487166079618805666843355233558174626439795490070469984150922616433766278169284933467620242769451366148309544768517106119851817454739109446468384538017261018353136276085537609162930150064013439060110190142188907247906247806483948380928443770576557088541828387290758734169108166612234729861282686754266049504343060940132164801345496600783241062581095187396959437024745675603360326360020623824717580634037787505695764840504976643121169211920167783759120773646516789601938033946190620887531705881412292615403633498889894369256278574971088036290521790387655038161279234138994337224940424292548868546928612642432799976413352372689341921764482507973849578305938527317139604927105615517193422400773968134814321230658575817899936614102033236128724707403899600199742281560434905094827961848302478244114164819238148965152081470132913669762060294288791478650121937595907687229613647214039200959087773095886268856619680538635941585753457176314923820577359495553773901073229531076160535462270967558724610879902258414605430719181461605528452870296945814964918615180049728732740335736354955378665871667129214849211813519275719813395091987015078318811628553353722844152503569104610945986743766214974606765506016554603019178837618811110022438055227489744463521371625206023008330206380997674081667353555548034082895609765104622647582613536314418647002563938448815176253145950363770541843668134078725192032001815617184953866914058153056629668462702910249857443557631679762248196718738818438012787753631786259856548981561758095479453612003659191319677283752010880660199180827049149827391796179587361815401382612794512356009991958064843473138112878874639744428811811521533867450398784247941587332938312792749068958120948478488019628420190772915622493372390313543815877531835647135347742929999741604148057696567338203760682184612970523526098631959215860739779471404282864088429559354304907984333089291821433176605129029451297674496435524933419678729755489888912001479904469717839776859366336150885142071914973149149496257715805193430970906506257223449001062393299479951201741129725847729103455844737615829946245509173718786998985184176648713554138986677016677494674983046904964810372329431828393585133735612567995040083724393751448984751128960903890138498087540312834711512908901732136032920680093872601445883273035824166531711727247192160102465550259249669350982983193203301299579836941609012788344943521864634511456260444118500578048149018629074128521028879690745230429498460792271493062096276263961468747520290332274460464585207607183795328389051678017215852595296806079593203016416876401641372254706998788323792941702082866740575841328362024329606993798881886815404692781439624266973391828686523808948784931834394210741393909621015875717105545576917280116467827361746028302311180892317119001784786991764709272461305276468732692200360259321356558341137529549531864778777365299569458539165113920228051909639020210037303147468493071898165947589034782722843302264004697418232765270647784427022173974741010121130319433943126098162085801657834897905080247795359892101801864747134626325312488794942862018503557707924640041002193427389501239640858822295416176535180305093048349868660586191794788069934359371044612491051164602720721797185896356513327136675848522982304847377348348650784133605428701683262953286670380174866080966925440217579621717251121110755481812483613823891766273527698904411061429649410233463305696872054330342201168117291125085689712345879911455984692646662133113083197129708731324394777314291042600522436164442999766206446543568065972725211313187296941531019287637656507488165028714405316645867528242862414429711471191773633852860337375784697429669430421621550119072567290014579922974173138325419895004459403030421863825598035571701792781484138447818040889601778947911192343976810596569302164591287692286847287070615639646595293138773772925947544321725378098222949305763889880932683943247882008515669523893531314979293047366022394039782454348437464932888100470934999046481229502471332888923945283886992460962959849371967024793491356552199766907699363256522195211797501159786450783340300502464173949772090688135953907453003101368107296002472157090913700133257202151685291452559623481297668566794757590802382093591100295506735386728599586011356087375190318227101620113516092847223452385532161880315449438397031364798622283373937129478298103796466756727631830965033702023678867789288693218057522101878307814754160456745331000137220062685016185937462258732724478763224605770833138446049423880694087404286860587095291214991582664669619159735117214649808691492742890411586887332812083660678596435896084145516008891488624062766764219300983353800842331206253421005794061262281345349595625426102404122339394719591403966744115880854162845162507317356891480360079554115676453288469903174811268593535923332577517402171582094198041818496144211081858128987665670345979178699870114519676260642144281061946668675565005379702492904309684122134675613126869538899513959285880773090875909327753037128203329537810437507906981870989676041724448261284602760559447068687117710890476175983402272246740917072326755099287539534440747371475458572846701586425673193292376347157164727736002547264600594687264905507061757972198040550152100365363114052727814921972117396114252806659746737185796235816088009951294222801193489916431718169495795258880858663110802154653918973135835540047604083734779360257842251153348451437864725845868362385029052283622451565882054662388562497064022388466317895372247988624386227369336159631530042351980488159272099780495489042249074209889056962302772081766101990350631565104049237699626046656461246886487413194951704591421359518637734904365984391641461524036663885690095578556944192719038979515885380625326816509826274470889675191140825805786578802352090183227075426603907451601877312481940722759178100779580617749387115563938179569374817001565682677211377897259935903463060970169421677872496059926274266875384767777948003763178178100801745754166877080116452973133136940094070713125621849958317861641838334165103135638267506705049010123209950417827918318401490686859066361612232659454268470632381179872887777735064276642560058656740742014120958191595573549499583283022783548835711022991864697184466454794391615849400397503281334084858874868481548458032212209281123132824631196147812348354460713478915025832761467549668621378281288134495958807288083521273245144210422730270298322615184643270659817050893114334851268402693532644267196267613592477460627733980052506560992288074750954600796737377351162384499008585726331786578444486835542729126304625428196353901715929129391928145774027099723150597200807760875316135247311278171968265166339476935610947836109668102395451418715057968735064339866610453877342536872297883429415557151070699056099618717217882055899548026757395144241527094053065657543749858894001913861219017658221524922779571230261830346636110351272085877185234680686168409989126108307110825780369499188606616215951650243926255484368865799907210099950866798134460014167777297716993759213614306259068731964716094737814103345147281513938368951147830708418232232862846747548903531221031035718228142753311941547410555774966547431975990706024418119724566852879931001823772637248946297309589292689499867834178910289271961378499892576359241971596470663838993611117207490378984395108628335803826013876119655793348355049080440907660852577069029875497627530821637240428965045047869326966872488322024714983606981102944388623408935064041284464210065727579376178676555182944583091507561196224805094333684428056963922755489466685297363754848858140736242419399647208090372523033849079921351264377974895652927505651630506323902312619722369969989402908789849624046442587139560148196626550021331455786402643136114339522231635366344393081605106573311473244553506353303697721246582598318785486157658433684269700802399206540966221564292094913942799094706769483335107571675703755576333847353720985620461512064954617233528340234883432413331710619093715207910701781793553976495162223246686275225120084093352701485557929213011050675761842216693866601083420527768164808520174023105761548205379510155472637681423156146778344991219527243570869831232752141436606810269957681474650286005436432503188759807943840323769557075141403841041965703420258409413297373688182902056193404772679354145210418786280146450668626774227497388312993438979061019909029239874159715994415178801513162477856412743192033240661452767112556129991169099229939311337132457570991119907906487461978005227615624459811880333021697644197533938832549969124471954275955723263435619881922151301643837985375638528943943125620790505523610327066891722030743883332994041703479179353510381369437725180838901576586761241319458981423037447599683174583372275518446198318241247818726414719175051569265206431504836872772676453684362311676590079275225323357155747498971125475132812755146273964032106558663156270947951315422647423815306381559165502017841137388504681748324311012429711814649341820220701719855624049481172518949783784912595026599781652929437916941187373076763917035989355834149329177153965713205177076229415430702821879652649896353930064691963343829074135803547093035812184460200252998440691585660469065021601867019652469417178194119400848302961610396220843296013736091632754716132204481864963850134551980453275181808343534869248634440937493057337386645137378624064581925918714263779336837040024239559347912256670436769802487793908761258720142786313132075732634251809049279926242407589030544237666956139753968401169309844007835450009555840324345258378988341585542698814656528178571111876071868991292519478228866998467315421396555535011214908220795979767394400764144445394543940358950402362474489417080436787344359850471299695950312238551912001623564540428285912428456941510222487735063557727311284471316322479748671533468067480835658962186971117336673710115397966088477340568882027987247746962541005283981961585853486781998983584500521263846314876343809557705862039274213601124394249073867116948237979803985802202075408933960700703622221716247332542485911512773727864321167585132884678293473419119830240481095036321899365758038287383756478810721623367275699810925939814688788297532762405337215022426926388170595577665032954303228695170634967905776908313273495417827731519725194114474655295119019205857317317347875241019132075988985113751304554725662779326081981480971212002547916661447456032099885091504002696000259280547995005677782295238651027869349390845643966374346173415017832553700584230370661407878165539895907879322943817221595886452032825232417279682788524787085578236928607675892899754054912557805883936063455205593683590372507395686821830731432984321802141791008727164048065502440549985168486242126849442357063668209551421469060046184150778228486667985726716906209501208365159505466860385928164655851053254248508437380551381515995655679192721544750113368532320518780289405844236433099393447602293069367611103945809080710655510262362142465751623434365927966597771599445148719150805353185831574624472215024364666417181413675120178462069876247506226710751109104192827771928786902307571383264077005854270887867188983883473914214095504623599597393658822180757601374230223501140955856890296493100685970232059323754785175125142545982793293126979124516038359820006041360601534553008648985208917227911003403680906276643527343158012506171827347169984865770869507967760288252343294095014613167533973196027570598955012358115003108596465911501403961345048694205202992255902803244330240819332029546728087511962985406039296450216756306280073158309831844174530693915440216509917465089087317503438483515874315452478717873189678652030370862040295432217953191785374597013596359910695057722917789006098732781608690775582084504399091198417263333831260227209706372444963110603426484971301506518710380125247276527084397096779307098433290565384503588701894480763391314670523840386042966785271976798815130824084640026214929765047837971924522479679008030793295855437164906185594310724964401050432262213497945270961766607491490761630208302114149071882466920274348910287096194802666945464004743137631811344132525151254860933323415224023170899075929098685261318355121635264027087880284067630652617609539811813930643264878983606621111327398388460101648635220852162323554335540432800986413630671814701023950979970356181417864516051236024984257838224795405150427751606667858122304444655333255872375644506516502537039955946747432584225277704755649269233288014435084414888302087431452292161131733632654947963925857652801687096555301932549584883202961637313074623575153820587013996865958761340802920676669810436670593581340068296598651070344442971084334692831260155405573067682868046496954222549046484609867243222184051965545940506045263310325530495382205236734994035310553128389033769637462243813345162592500530235992464228453801532547482548507841394424844917066271828773680145939972954809908376592420721265348646978172575539381071052745634201311219248337814238748707116491638297634612703948999103974774763147270736313106841086377118997412501988842033084021643588171406789130920280680587867596210417964063708245405654205565491499202601173167453097777513150211495373949963397702087687776921108923745413636824014085017408515575418911088818691698162819081544042670949732746387449246637326945042220439710166997720959677269704058039768692817683834833280639427799288706625886778589591346000200119393980873878962426994200972254525868265162301602624507254440281575696137379324055634586742921660141340390614421978253198630696051208223329072346579936267696014937072140678319164806286101898421385538823892112629607235272268871645736184867182791654508137214132069261102049200940748502169277604115516990614920691932234947162302384683108014030486502397292763460466819825038640717797722309144553065822973026556813935981174902554637241986893790063749450102414924131623533183999059399274874650142512153629546934286308266095760462805292322311627341186883805649826943487267169349343122887027430066011855810873418619785197290965547681808917110818259197586738642180489874974385854234668789159773348849247809220343672230446957360073198330542284511202758012678762980796911730567917495304144928293211508106143943825288473082893083936871885660958469706587063100824000397125505256502680028232168052180189896240874812959967116387722045853656696369040598337919991286385868475348147211689889089920994353383344916087402828332248794031445030979232156429913508640552437490109868580073779513221892730247405728120426121310099444466096485852421062128114257604165242514989068563891638590434387984510769412837217670905101439784648885441241893222385119794143153804327238783934848242294321333852638460218437890347800678686661069110697186339338503108028397542327975566452223240366170887097196241929467501545109664782661881211992461303062825313815500516131450607136858922102658298774593122854327083651590467594442084299153655681093533857224195458459683137772413715397892837152921251706749774335166849846876334212764804323265242153143265312439857374257804528450743580191558981755565612734225669717711413565689443018788699375886970397210933523687603128341089377368804174069929024411577737273003429160552638228869857037852359471506070546783685183618801767184017978133170114701844392055407942733787404121432875440318301896499162244955581722380104451565764548161564158624808196250702381088867423140086417547471871393051115965047823429545242809449870798244881909951324963645572693199236450708528628415808864691078998076193864571052398724583037358294414502297424751774648296394785795244669527804513429227205964411296841526753834555136512966363827300374483747807647830951750333034620764205548172556172059090507971905080654135919407820192415084740684979699632825932482764186228522211130437110744406617969289780051134175600746704240436053478110711970070646832146416426121246403370234254264551755141991559400551113901124057500528737038124869946431815819955530927247041263683057319335050459353577618722745916669770364126551910924005671570170542358844537378894896416251192647303934265632858583548877253497185742184743796683416627235969111967497363841170039976620452240193062772717738846640989628182904897043285596270256130660359535756505790272511457610002504559661635583932685865735005453223873026574323580853440973587559100249205398377933345970612423057865293812952145941988008068693631963925996763069486840813523750665050044123209279989464626085489023015919332206139217823298334078035824360687016582388240747984645260456156604471661710933370393357064360242357932851292362637780918649660554062750242007747849014880398914010584259554645080653776244589750052371572681340883855496144263983939318095830371111351216088072364579863308126248404743034324605517514155265146743587141828028394288865006106201609993904301452798039746359299052169735709125767405996152041351033975355871868142323028271517075666659028448995193437319857564527531292924375046753038580799980747361626867318152565564294271048016906926695102360947507206704126515326492972748993548548761962303231228878440762339655565321443169900411068720552674604176728562023394062351319175212150177309355343414231908839657613150490970747633950074421936001410759563040080010967569198500759446918525078512378270153364063963223602572612407159778462490508257166864955983766280217375294813621392554643243721704971169542881893977831589935207344609395328157302737921172783836611432516109840544741004478007556572885821224368709620135358427126279816014529988304809928114717925476256171237409150819686333323140705004209301930745042123061532149290399875771980039167810769149531873517253381653006302877349030935240626603274400579576134912393453936635228659112115305238069939101922177255758741166578949135482809044116557563113002932365794301171871284521970430944181291081414480454190764038136784453013826950425138339719725469743308414165877967094058332657537749492051322488509006541699169557918840891333197203265674277950424417821281357566420288155253246559474936171214534403742059679005313415343705748944217182963629914210334554962415627562886137211154404965165464739620108550441598965551157414126619861355632295231749148872917068036320699830637198558706081616732919079918326686030926199165174849473489883197796161980380686959088388916791319306832107060262646520107281679224788267414138427298746398389124271758961050532718275403144039930282419891763778347412740592157676894193569991781033303680887120758391637660182925982874612783061567421718960657196986592711226051230642715414033269188665386794948992859061979695256910770203689012279903045089216560666642247000378902803755440647132179849010780661855363444263530957261501288767874003397733070889451617165005885824744522340685737125530399453694369556611581217334186024818801613458893144517179561673809667662316249390398323570767796178889367200535309971155441972031006574418475921391774865171851220247565854784300545281317743229707255270482998207397905348529532482856207939862487824399512499096042701835188633176896274482446751466131001805962204856377600143448242900642957396972814742877259833842550438368878901268091257793629478855618723756554950539830163375243659509655677677112980961250928334674034072011611935790714961158804339029578240055335652848655352892543671788833305037885692442469600119672975097033977220173113848173754773168474695463968630588736703759998866139604354775325271132382439381474174347938572061205726528222121143402161402882851955832785921447675608860899757941873005290648287982881449097685454389391690455261308748485347132558930669655730392682632342177805445981539598189075183879030113298204000508101754686432676980962960045906044651407740013174244443749064480155651269239035053973387989460785039097089660663806629586463696657771396862307919238623751269200745265566151197970452627105084459452459739028352417084447062463649114534070518481816117075698923903383646667231292901404484862914871774199831649792722381716556907944396157620190244162992615039058415779997650691749373608108226862580158022282461210637040936003018612077412965525784035443472033022611332270297290256478509008214100655319446748783815053197903391666794471260411447415292481790893425941562629525943717955998246728278150931576928234356934702429177336150734217961875140074602462943623796850455092188687362589337324198654391129045570158578627778985313067315099885699438364586250713673827805644709697617546217181448738280720210658490131005152291390485944674900354396835976585742596706041957494172767755653199265793929234349664516002673471137125096512594024534561519597208000842730120528931258073254772161151799760515525847986578900286891279596673294230630652357596686463541330907436577786667817232763625992518865448604163841630380293157992224506257106028313910880605858821649383910732227666999761209214826352743891951241844560107662509737236433890038892728328746923535746480573792796008840844705022495979373191455591859666518849425233975687653214359398393177426813989638978722824504409816320766445117119792459002810225146004385434972442656009572508512899256924091496650290126479027872054926126485058844934310310459072685086023398833672480012858991934770351155227181662002230960586698138873676769587365102092169734633164984672759230021927720840924062681170054649930750366426570945902163647841308349863304479033563942469032710180097275484992566126936806357767368111967763372904189239641285996465961186242241561833544085926794631286261995214698867338335308213616088313924105232800032922657559202354056241442167085236014513600714270867793544612715751101355678189495269344270801977505864082362279028042356977243857560664956522360636794047815155450540739560029682397808012903360172731213353481395929607710049022370017476266995284801432638812126516728226414501563411386041636842547762550637539850417486822958847520967186574582004886101339490478512309752927625244976914235286312069704214134701162544702819630334644491169996571760563168680052559769606404140329390647734338216603788837992302026782974632567037794992111690510785196225633531158923811859104912317570625054766431388602892496703406147159828014446976673951327030599586586006487740620187663238485841904162655511895321223178638234199926061146040071164619315838760565640512247374490472027953722944062820008856566325493659705185019543376764379160385875078577321503436519442304682473005047493065714580888974725945834716529992461192404822180415452058610078153920440303708570764050297332174524179731647990346051570182916932029434216854675892124012359824810828048561398985078079801484474297051626638655444043280124938309533540126467944216432305104863668483099747668619409044970781000340834380235342053962059547415961305213126450181349419634808570556431036643436519059591725919155745905751687329562524998801082165359021310833732251759286563029787632623411923490070253334018103788782610364510389967168691737279881796685761160582163516347611472825753603365523156620905529659443207138630522867361102042094541451589476589133488287802234790063532176880542926037408102332344593810298021426968621365017821914172728053176821923694826309555621147813808523950658287055761096483444788935589001547802093924496431196108324198514620385309043673758029696455921181080044965869055018882717417303259248237883272459835256486195396495751916353938455078694960762545883761034980371245947294051192642403167068461812099872698423820521445225733695559737056848584464541236047205448932710754591303942400323773615654552846545200152353338870494565224716345232239726515112766764350315462683844040344680004741283720018704104985477982481834248950743577307576697721448015651959710156293442519727440693690284460050834552486328353820075484751109257355906932017837819442267106524840025631765286944472505876396078926114647486426611753651602870390038036424693743019637540098094454653237114161982695283249451391015437521828042512821124076518872727544909624255796122507961578770857050801361035395361398417904829167629590857151647264274740691215993036407637307674342526264050680934960320830367813467242534440066896359039282138265043116199152847685677677821364755759806875143868924672724917043690560037968678267329705195654682777208697455003766395582260767047808768351064081525195315617787915436603915483556616298475106919526439638840190012008506614285410577633710856570915197360599521621763836152107117958563302120074145901750472593327519811622127064052116589715137087405073141461023087603076535664011534285419525441745355881865323105424967327638465178464621361382213512890537281103407440469808663263232803987764994671757204870563339647666097104324796245331799958866525459367808691158308355840963959365165657685299082642930809648168368911527265246032720644556764575514296817145200751132038534784217402595366495236693780389267877745264711459893892475914508096755572714636758965685659503988338228736888500772529135703444923379286124655570997531263854530533256471054987653957674600920826765437662921809114520534057761930866253006970473674420562671297170777962009515908419922900045949559826326083676291716003681154754558923488874352595925337010437664847407623862788058812352942848632403319031771872866242420446242423322282900805002649456307290458418876348860640696180331902700445247899151623542023715370624187932786605044128431353658241650299006552049446820548759644178921827065170194834954670048332257952756752997647734600714289842121826187919835535204526276585231021521241889831490376841547078962417698802740553295676907538170452807946852621845871324045348220035579211331627741230009003029672982095016878300810826007728339325873036361795078797119446989970639258446471580185680247408738542078840614249207917355572047067195286804238314696666154064856661459715520300293314132816309429231238878115943558882530147117327052819843086684821869387881903288315371964901674400896381913449100358626582806007271479680792707646630339836268199348246543213715476020849031825516919573012874973744516453153423607017308195952727536830989840315081566437459849048544891054013741975810938262199764242840752669470568127060981162097269159934430845817646167776969349515786174055806082530985852528863608023066557049113653758104363522537423974788082823074269865691420943023805999997672504491698954053595059564976349833306015516335615742613289964569712130832510542763478698541523700293046829036921229204814342209452617060261337389846796456464342198196571820058881762074225304859295511211736789889802803362898281395707181236292761088882011802324155075726802462170532811665492441097196969193293216655609474835724840380076356056690670255459072772765943110056719627883344104622671566419239009515935481651532857298247615027255624907833191875913734477339901605607414833042517582273389688063875017159129057321721215296437184932667005365766164557562981353858008998839578688282346911987933509284015850259255304826777860032372318418093219598913845713303617220764530618537915172956013959978872345929523306387811079511714921917409586457243178969509352141028268811436103548269512299126765522221838311059792706640381826343599508070089773169232376880873109526292253672768193119451570062824161387478298546805464034131291583505234291982867171987129192137824965262629836884967899257146856668171173138364950901269141482254129262469392177733470300704516543098861776515329821237952781755033780260965202833574904003499088323355556725493686586326328277720637343713248093238865729946490630695544537823936208916350922141579860173096657907329314090094098308961344461960913830218561544402147467100069681843748250089301387549153672874123623742834086462425072034008729244907442592597863743289559818279981689487988131808370817524819087309079008608891543496002047275584265189234951647282290439104294449262798654777707031367357584884782137957596169658643158873895897412358966519718811235269204917018902276717903607720303201447621853290852298987102941941977463187692017252854676800236934295120809152122001401719667869071344072603938179937113203502620526207826411774704516152230472353897428365044006043249091467523528200842286149761495889513665267873500359569178622059219536164436424283903401123604265174755527687338956964214694547220710449104906779962042541413852380141475027515360211201336153058223409214428829283319681449424165329959009195541734259598389785125636953852200382420820373648447784139357759302539851465300597699101216841055559357275862676396225689207266722244880029320519287913830750434567602108741326932213950250823281111575549193691443679627708785720734549195053458985192333442568592995611986896244955367116353239476250381435556040442292260945315573904729274264775324116788681410009924956312523472035909615916847840175024635627132901869186755997551316095313835644739117367448023877316948063136851641907177818906712518963173325619470354492444517405894541647759242457014686875564560423229689328989319988252663003204869754221549544195761952271590704327128306419138009398620704090774296031379057835417527777991703174007791595279462183280066454173791313783925905807549318513806644004914875061923038772682192109793930635037525054329815281193332053297612242101743127957478121035383302048321553224636369145379153663881046871961712770230394985409620640750519810815398260549272996101750945227306028715885482960608826223299785673738639215505775704826896055744452032207183341945541815847603282204845899804081920215936701348765662183046305138753852123179164766712232186337364011689809039541443652505296759500223933584906006595699791818489112453006980922897099479529195731939699751139218131428218841186561045525112208356200338165862073739188563120424149423863599421364857205225698394419452121520277947627158584795026374121077100055013462103834796288581119773625653713387105898175024673178350610213587118326122191253326383427033249830779066193177222407356569735465118358869167282487460763485104274969653067013806133707212824299568672550595147193095332463558161112000232346028557705659942617105132512204553081161070288779450736188789936911657721082229450838862452679284961153062979532776878075120195747640799895316709770384528510386886575787489190662424785334882756845381087796868450777871577780529837778212176595336400126992025216487908784159653370374503813957514274278840993499013723809173334872459018144205936348815994693823130520921205099950636743344787661932050983826845676929601284044193762222377874762983012438707002675243569851000949924470310327058546588044150838692583581012477540593483397209544987112909963902992120804031280579321652154914944082073215008919146085068675473262047765725085283922268761897900206188209899784038442608961481170757471780413628878980688757593575724550874190014111776175155879251727460569974056043966381406047001652606960644609509311699456639907931384024898687928342765438413097945910029536406624998908095306542889594665616912816761634073805832991899313781605376155677331580968088485631934652811099607659923523088285134766582963777067389467408467515135152744246687872843672587718979584932897650596385953935546268252809469405622935379430471343869149997245634279035996957626687681666254303739301996245677785143471664452419187844031361406733577073509795168619995033960312397022600963817959716848400167004595083311452729151668132262677517970714154771596402792429947436913131306153925189171603971036380891954727567241742193323915395780649543873212185723138263507285293686554829766209170565885532356296334917291797729613437022397904509607271375712385784440562318388549992487703727929004654547871964588121215813765216210506605644285243484765535480355145161647375581023525934242941040452647268598081754676993284829428240546795146053704284681816263906974300544704158958734499209355213142994634610156096424917201346942044266668935900702411347976681769684031989938303465690608498344005305032791794012393286117584909273913620971979492234220935085194800872402811425908097658387920766695144060471020921243437456069898013220564275073687942857953638595073270087037288033639104337225608062241345425154229005430256779776057305816706538988506135996931072025844558162280962223684224120953364827423545694630359811370320795099224966169422129882156106825033665204508653607498020111142376132052160492338995898551712683235818401661233169200861193096621904849657718248477864647729412095805297748720826146859681584660274183179572202024568609894766094078942361077711812704798078028183525736874846373168913685169323459582957253798954121707338842645029205878495268978376656461980941923709534719217689630867389322844442986912325480226561837650030819836063260718361301617101329802753759101951322452379137389006218165783225074707568153999539019868126831895777820646706351441032099995997940174190727487148297964082374308782121332279263140685141101143091240802233000185964131019132018743910687101301557575699336692157974993020329466965393379158272133618353100241776534384564209186169176986678384722403395178124187442421888047018181678824610987569395397989084523459328789262360214098702970795313020728195086684309763594144518725921295297159121143680506388735569213455946959922287664950039741779789068645522885326107426126669409814882044795866293945820386728210326521341478226130165870971811054822876394936927641429210745618273218577501790207876957351394805249297400736669196255141893614946701773101298737633939792348280828800239039395435763265674638683801496482001683411462645673570243335372432556231858799021148079667832529728200138485639688961247690869703499161318590659907144106429888149952340140552350762508952981616691227447125351401150556731172721557924179749901974777619645420343252852120643250725033557562060586512277320467749480710341445080893262641514153312482602188838541116061720241883265311737725399810665203583544824895764561980833686413394033412015665037856386124831571436413545292675062610755373370491669737297118915611290580559895286948244734360557308274371476225917721230898321283936709555596862518504034974899360719166382501950274263326435917909704304817244454105243516842264160056796011710028833290087278298344264846106046500238871666574917708738884712126249779868930203959559698149884591715609173391500816792487743923527847295576709477829177263077789853167549055212386829220058065035473732258697015416187690981298867966764633080332659958470322558819665525244251491040085581540687831901499444283324771592540281630829869223072652089373950245582121460623304201675297414772917586753270906076964354910071346314707880376996753659755471820786570792960483002657577646902485756713320646614191449638973678672765635334243154758087896518586640837325911592089575835741176217406080279706469458619250452555219506180113721030565149082152650289454746507792061396787904695582629236682757090260298718190198936054006541731606064051980110592284227187880392087173584774270432223823421617600057940681203846322763952190838886797311923625115153716002249199252328300765235289541983868790414360419799214121838709583571117556149032038100518145119522544410021872083827538404807822028316350884883423250134763547485929304281978726117318989727679881304571935614776979225328828414390398579192584530809782936960299657417621473366382748825107094572610451464053780557549524445610454160197871692359408596956779677393164875497041453027443923639903661203425559346025396657489268435503685897810015506874076254272210516669251400176906158646224513335961517076871990970574431963538459593797796203620027181333767899203087443206340301342059918876373006605008827946651877545031733556288721341849769956832574366195251004089364571937689045217341929290136597252328511200405546560642438828627284261814022837422923952766731550575624150230694770949541128099441326250834550319221553931029255488818541634034626389435291420726700361870358362206352685514430478234729681361296275414903776719865845757379773575126368130488566784289048734390727979641692789024201062758849395952464177811956306318712878199833806244131031286519765387122363003822797645558375993417439506142332027750256901530066304769543019640502836143362419382242664004553531473963899645376576027348456451420254495080095210872606514106072007299329636083364369977246959433963103058213201007817845251054518519870115494170943024181480415976987243742053935630851667092790713385718925279108394568832435924380347830939521258858296369442000360562711355883629438113780681300837566591549649466029420222440322938447048265432867657540476635049415684081924741673994919077493918243430623273050949593163612543149175225454817578989417153196128555600668740048398947314049202782281537613410658972079566312469946129548596070938079023749098627001556745348516471038223561088481069534279469807377041652678097610787498974350059991625772771076039233196442252200649849917696147905833524879354276028349481235846724261370562493635328809478078949895836826653577770704863900562299470600720377709333325385024805933521707249989569536944464277387346693110345137931111277693608007185521382063776887311825632421941974447491981716334114358211137337197229367827199934473937604136119698874709681650966824769169013376247630937071404897201872404204428390161484814176208076064579596376015409316437335794143219558090343900502169095490207394345454907280674720609849808715236340813369463673294762212143424709796468533835960943256841384822226613884643852655483310126670376642329832108980550889243168413800065590204591476382781773941895026541984805822359091489595704572235502404427994569318602389719889845428537603528264548846785423885682936333454174807833052053299540022462374527100048335385079970936769643002112843797951883326361077009961477143975398041020191781381344503727776743428745322362051794694473009744983038267459327721678075063061468360202432786952541721592731579401970610078804794878096759083651426192240120071217867333009838615867014073219482609113458378387463929737581112750606384561163160241254012805760224639058513316957547224713531544896718979101269522146295012285031891018975775606624952599296120604612314005303109298173610257442587307701456206325517753687334781521619810238524220408650260540666947780280089400492166181534050784507413523302156263679825117886153871946787624197499607186283073022508868250946449291779076909803801447480459868642932781300148452159903601144881549508655417333739598154901110893349259303296506613925148249398063921402799947886807700969193735725093696827069769222486030262792380938380147113023114488980074458450092370019868473674672542696693626351891524421086472730329698364297632708965874900110601875003138771088028757062244095391813129098137713890132859190950743397003294463005386717048887232287517068965399015457988544997148140254255227207970967913947746339661380625807623284668609201045556793539288494941189866366906811579383435529617205610540696112794335702532241168079011873689977715601475456149118823101266843626465110473426123659543126764893609190455699230006257284245619771801672047012727049478621413774823080649688851922823706619784661481555500240330494604833679997033994580897332179792537983579513016441682675852417822787581116518971542519630040362225388001767583101492043657688747682683523703491559487862639780277455538619282391184088826890637623561504834651626979718790078134863741937228006028687295125755361540500097780196746200416912696535428460321617552582861549551332367227989662409553344953730854883318562699092872625844070884319554476650379220031462369564971740816006790511314074685259255356405931425563508609383091845260869805977393879098861413098831160993129498703795218303083323509711909734579422711073822259483349356670399797671471582300028043418398007496636437844809571250305741549851228342086071802517151170567053619058750802262977549539082572723646409070919926593163669470030885396751790924759710667348762377635188482553485104604971801062497137072066654189470436226163269239602782372204208922933499968158787822100378588180157635347506811447573515403201798257474101795591959162045413943321351107027721717107561069832903120230139158715463575125656954492444446157386157564146442166860581784704495296851542944168039751203340941943790661995395060229478146117856649281820628177521545668924079501654286623665074140500891926070834554120854015870941384007026721867714967889382996252000477429738870337948166700443703982649971566387888975096291755412570672532139160636456417662956548997319517511617103647777056806099629306040429858055205922119769202077351882051514919297732544255725496437721531624731645419111897972869449427348127594213407286509687473289016264001358712053838955763183356670679650283337640800096473901667747443293936931672780097515285059493947363223160189842133149627638750710328869572383572912959354375469305437764173662993456243352750733878713240687097552326529411761603538486809875568485366661713045621311024685703895594701519820926274040187501703813235485833557935934189910576090834583801228320104706563128780106901435162818147541467075902144251151844654692461233958595129242446480808094031196705276141955078793325814218458250640785890410577310102119986541362543529681106458894870504372260899790400563617761869711187732917609023323892977512204347975004637066520024965968192198398840147345563017753155059027793947263856065994510813430140649136768936685342141234454698921114078049751957828661290282713138832466365571033821434401683916152335885938034213593992227510315140872808422679624633165338348359269755592192206783660442604024184789514722921653965013021653363695539179152288476799575821529836171533901893105105114880991484152514056716876897922665735190222870221763788060977873084381515075123434337621352396578332782140457776068814263058267088100196998398109525920131452009053351812347231205444649597285033630653944144566481928441623232860235013554466208482719142268556363779116399024447287959753550699682494296245124949871919566842123462732083269277514781062050048746595355080311137385980848002096123884276433298961838420732321483970233394085019747954101562295101708342339477610802474879391739943505664231407206084044546242531121301124143796540815963022092936366213568573455507676722036976582599310044725740025640861412622876287235417609580807026210614103856853360596139720233129217122885537643213511229466474524370294967883476295610285725768370988102645254301509007015144950787952481880393283554336794972266873624745314810592936905091013257779172215723986173558124152958056820499978704616074248918238953355002463281543047759925862428095620784073136221468815574367775272593198861084451007642606036529524846086076748919081834804275712701508297560054717410107509338148469072742386940304387870502312012718716786938264739219868895935003712098353754194751714127559373840135697736336721074183029703667062968489135689015114164051932750931986984150101054566158179850153081007506225910738635806341307120668805927264560971771339398989822125891208035762646642513428004841996909894988326253865971286262700897929978535625931300051368508600585450593549377085846112666642397347259224690955386108706185240815847885104345293501042131731331083771721520536978521778629020739679054290000342813903549967303224599924169385110492550928454419076338044642912223877350224019022992440748560938685314070691084856053580714272434617626419180035446001265055194290856868184948701233349694607320448957045838028964345565982775936147758109956696899312401765992823526182200772852676356079886700877396175204235580613856012488676481227459668062139708931567271477409654412085178381977914626912933699233561169989876599238215895183501705720676304459380274766460235315192026137992805118384040893949629405291374628371021855844870659890042900926447081919650517208800335244477708105918525692066382607166608094443000281707027177536474003546385650207192839683333394285253202594566480967534704794381422163588394069580267383890332046796237430583426661641331334004270604233868372959346609899177865258898709665599598474338138132077614873342786034826999119018620015897771508855363859681032988550328769443028100734124981875381606065238000441693046195589312557131562931906708138439767224348309851610291173656109412973391898092987545540286169153922154840644683540190684296385297971540270971866052219343391038501578943723427422201455241935768454634952175830111354316473196604231388379762191870319981449077772504496039832519792229483346556820576846484361879510812551591727155730767424735189821490640704989249640417723036790180173337678929281088577782568404466854855551607924664493862355141648200836545244286485784388021516442435108219756207822063254115480745398418026816464494596161584790277742264761593603125135709580404004272470814228386092594120005641883292344076718894782746254250062333953734487401141900524613220418398688355942550446084609576886083434958851100938920410640344214610787079644898643366637657856000615996691371986273034249258831922503362038907469536822425460035660982435205419601997318188718386123630601436168058663764562361652039681950203781078464975465569159447893772944663725710195093768238812466677849390271858547626045274798487717777595001297769564201482347413142976127828888940658847945406388779620494799519597343950557496853230313658128605241497430113981252947791505377534938245808489376067326169872106852315864844172697985405842663003991148979946081482386463203469659346121361641195537299595442407226029596551554062152395148407138277686627615789283845297265995605856417843349728155704966704156351524131955920231159657094487949800319001356283242914754578363079284855327069209823524499985192674612615293590303975042918644387515097980602749841837363208622837965123169486855272974437957273675857795532577677169659062777674185475172545876354126493916678823556084158368970431979679588889830782253177294826871791384353286720767385719286701236376058075240487906417303735380536346647245201653573125692649302397490728467682315439255211909195187215598528143015037141228509331236943893836255207579490485050639465153791862079189642235167218237070086618622218920662135131731163442286195359718435626942476559619263825481843980560220157644661611624646045588704889895478729448259459611584352916745867129113549136670831519660124608649385556350705790582315346876893689375306948148189237155937265719959493359463535141702957823390130558715339647203988449969423070150273794908879850793803123267743132124145092686356253164310629269371838090922463673789478443931732800117320039041298801324522743845177664721220112045433129795713554998315782183287887841595047350671762133259522621441330780735895986097810333936802830319537858474528015880725157133766364487685578918312320438621177078235284991225377432121591260380210298601122444510517522940407943642610811122485369878781789570545010067624138030348643885162928966025794581652214310160251670388883220395323316918563281175018617411373409778195719769824465793670515966766126575016108092865034697653829701577772886311046387089095099439617070547484147384299876868777643259191293265797751005575341056308177660190462503925218032963777763048566675894506925002704138753789180094202826042503146906276056867717788478148667888447480240010316841292802544162897422836455963571956684710075387757411910945750971675569608943615111900723492645577394797457314479069231912878623368794654266592639045982343640970240161611215915792519951928942362305352564805665044261003106407716672428331631335082856050482160853338999234005677436777013070359747122178353175833375975664724180379543402928736192219596667450967290149592206757298399397396164069177333582959691532554267116227032558269245689021895860049999313590396930898647961768301772575050778005674238680756749681725262647871366004723496592312026802167726958825135996823869002994901645251435961393615231375312814595556909936931186804131760658342030142546250198787542963262456333789411285736778000910724512562052200293129334715898409742997203354604070324996647099031889166909700930981845267171113322796446385183815516887774737100192157418304494037268097562569213729442754319071920945574607944253998689388168643148184865889319094400874557426251496686859470949424221062822692330044151832723596527468490817083472995989386986799118533770783478692254685617722509091353107215391856716417162697634480823727173326984081562187743830285254692497329927422470966944796516422879270211210940887435028784455604090087222098216876806348592793482273177702621547473685390640412883941499278705587965919293102620211358613853974678469928833231483080968093170802968818122360995479220060460022352253816362303695443244393924706435094416819208783496110755504415677395739860848485629522242828100136694777569909777715892343779553832744862746879308272476660635758490912332086459372878242131657584425359770434793137195059721829456831211877677131665600538686914356069289331553534462680941218760250642993863273177315703164037111486943509535859390877735757554268335586479916208801135695236324077161949688465642590154228570658459698875773478208585636211021172105758995401415605546049997337932838149661718251458730146065100220593883865073521872114710155102415702343408664585995734780712874468507059964898799285153653966301518337068086095310400452934389855652094035196870915283498830492579657822968108745177148855605638962175987912767349037790678592715257509795949898334603844942391531584256621322058331756744616431147354405477467524960860336004657359133348299713273713691797677214043854468474379713454042231877432873622278440254462896155872087900501725536496353048037977625513015679455527292761257486152062764170356539822823828207159895449064598412306186798269627980181033016533210867741079378990154451147500146769223916699981523958586612986433064204434412291155854105526343176476356412109322273042614155053203844627696913496415225215260740222647674697215854560054890157169329062249187849506436279648840283941606970648804638812403204863306189669878502365075704438712416895768800507733537913125991135192434674133275522890537251687023767379938363010697110395436804060531441906811693755462287656166018778121660131219299929752931930714143759418806835456601728458033483712398732194804758117254688583382659443459723308678378283167367166252290631137495347389331188499514130506401546341213016135368882875089161717003319375745969127343578970578946545551082532537566425204921924113453347392880596244042640364000592331176187749666033520722924655179637895242344764953639209289028917944502598707578456094479475318072268342042217745596977082239222926991670225771284007647526679062451803236486963638580277861525004335427204742175429344499062721811633865350534115911688340697448964532170134535705285807433758563533923127765780434595373319867788854796741831020301325922189832694148781388435309807599887202591478781732034486716416270029434978213655963104482119609609776245733533421464066317633373081971261971812238685637848204123297742699632862302711313822490688876951225206287015893032936368743851818560242293443067086467121436790884486731901071828667049845722524235646791071820669503131025313293295733199577644873690208996814620080742577832994844474914490297320135400069688872949350002540949610416959096721565583141939524207733118316737717390171813240869865820685914220364390134099227727389225785385742448766571949028860632633886523527328505503010961488252443674449531233728248618067145672687444254402907844760700411057344922924734211842348356670314787854082193379095563385284620648927859189996126022814589075368690024884175969961941157148541981549263568595916365984468925396963582238333642383764378112987666573448106604295510852168330435734407951446602140014746964123001144303255067128979257364846844090895675446027369746993625921872211183321750620769974949488289202221943174947510010191445715396741823418657168419385066063568175026748365311617153821808243810628954425290111354497601418618377403680810364446569981464471569592708269162587662399935041375456842324763427326560207729920366281138709533818359702662342888343690190765300828340054278690431801688761018580619194117358887834114767380460860514968380069505010888002628664723524098861822607381237461800172255168706736703525233594116931490340998713623682981880097634597775408452647276413810221353620493216644709566688122250044479380953082291762758173505089859459223517465237386153211556334364882941106224959322872498723276545720019668548221540097474258399100219791849882177404263977065253801312966890254896388150065232708965421995792032953341049599404813722744408317854520272312549059205431353852668183428484817800924582176839702642956228815857460696512648758722251401890507210225270338798203418855524901189388434465366388142131711118623002517280020914979850192011807506071777794605201711358905598994239176457084945463132982312370638409856697982286029236829309335455174597190334171122203956543729117425735461344333422819434382183646584741453138309769014529904210602542732486473860974208557120670366972847982436229074949516252022449634263411275373493202819900746497330739466970812875922657004063010358021173188993941814442951297176613570558203828038600370965073291064759194397984962919910245870203918065913411504773847749097965234500227379173878131758461364081464188977379409041248236309086249540484493806908215631125075247830621738878692544080691048791791793118156704493822045237972194916461169730514190913488822286052983412132249796698140280363146726237272029655450608278275853985219087220153701847590900994999455361125930317199149105341970308237118217170578313332358987454345403588892939842003384538183736314307376803347331540683794064058784896700812182984118590635659709465994345041901144716141449848104237826341812672335392927821651137229012011034895868849920238641533847304866728020508351088618358626637032298196719600725681711302136764664238163717617756572990251670719810269084817376703049544165495607767389788471233986539907739765841073988376140873258487203170582204814563252784769274520879397284769830740845648464059819595690371287280075736018278096326643939311962961515291070188257237844138636673316875108442113968823409880436314017457658517698983212941690175271155772643332673885153245916476759704375657468290607582781233692659411387725080087478971502881829948773302441237490673572456306166422171211728470386251390379680960503682482789722141990489870303114906498100425039190147834671029825116282682132762659408255187140823073844742537441280805484797156325158763174619784788708752897377212291271612525587706005530872507690186352624285934042396733938044807412521853763487104396644873061884881925775092965643404627139268333382825897461012292891651968198077342505618228552731097605273280825293996030083458969295691197258621141472132362479246183856060396861564479964707794404465369468726694710890071038195302045419685946347248831248437157519866937521464644734576869391604049505353255109550958641430875450549602684585432922544694923978617368780681430514691914918701389345358025496344774237832299185065196281810133774431877448438020510346570742806312487873569586005779852089877446546891716688837453498735267333329911632206646595804354510265547835224875065758630193868221806797873975650992708953208254198899241622147855508772622135360236570875871592041827705589544535280894231276139898797713584764695299318249661288536153352950951203097658129557117136597321917223839598507295366976361291890121751747278740500586688261263892329819346724140648561494235064871283384374209316788551566671399133600873629433594698323789010620063955154403607182756294440059876092684265900292739219023424646608156050456263555403514814407162659996378713626055011821911455556586534272604218717064471389059174988799811895785916451234851981804511528080926900780702287635315524688238789759368069198246738658903933546120970261657897953752781063291601020147435529147119194984438564998203040699817024946524715685922216042634900527684558321233340333707724767181303429316384985834636452872948343246096986394799120297079971546258449061747988984774035694707241627209202788249144932533227597214561702930932734800357929492498593083448297667871531631349577779379911498839842218022548658078835447242881883589249630304873940595638245608211840037442979409239013967628234270201346076539400853346902827410245549893018416822448491471871034120872538305013390590989725912943397619161203819788281734956869827822442945794432788845529799617478459286934323718098111740508579519105414882767946994009150874606110681011702266836240326388433386237484578397130015291160140248528539142527019569772744029838418003198224297044890260437843781666965748427349433616963294748393629072279229942273713375362580328199094350442912305245361221954386951324594606755984528097428113648269362534287722321227444841669498612940664001066959040536418887368473596800808462800894707416111206486910556199401474630696283903061016229158401746041161198830393063135027600520490095549530855201377923362930964907916972807002274042900677804587503525245827311185008801445528222825242102336806284840991376060410962889840999864855511977603310331208225687673077272519934608273917833261966581601615044998311651097597901210135905599909063207550856445688992773824579210665458586914283484900459734660507895715111482378116104184291208095723615461693501381693731642752866814126212037736237254147620386457875924096615339719006428236702755104286546814543606885981693640769534230161568164035798603731158848705964382612421373551973948913907359950574797571994120833169420893552555375663723614264233770096883242600373565173584326626626618248795800309176181276891677988821731839582098976410766633004977413136157187304269708390289103451749547094507020295943025161630494653929475585702608945191888963346848349322712029840867319596404948260427653396529149258177631151938221457523394053714667080244520144726286576404876499395152951479305585768841963868288199871584115826278888968128989037343946119424072203931343684014510767035214157315287332159218539495113337890107010358535949111790162116046349197442051905216971684869286396622497959601853558543105502477627265772477152384105224554040912879785901348400390868217280970409085124548346479477256883732224730895140148623775924575489968626058608197274499270795248642838142466797474500781054340259713280463570521849333962379892363709793054028135044293742816250309539722576259777021598563239637785539588094519811018505922258889812448439962204234409504481251528814202278613895100061449619794465243163661235876335952953570352228483610305302790575364380070000235823572974639558058057197938267739561698902938207004647635241021650884965136902835514162476121385031066963029232459121546043415423757523334295684689740948957640605181258624869078162211758215147653912852598727100291802039757096879819164485113137599558673175956984359782185975937429177586176539089600242894607543902252997543469031541404943154041858659527478300612907786245826383181838856674825212543675533969099819257763052438377371226803998542174765055130511107046828713446210455349482984813303832762261321556037465021344168455033887103908291571120230155994901599868327978636915313095635238202697938499947641770210985909830878894182617083541811918234339135522824577681554251908930907836191455862403628154314142352382919965609356819853105603421743117921714733670282839030968845358662018980170302099532386006340694292074526847688294372945055351635272632622352166562402219703760321073019130152623527749500462695091208027853000687167506393198535598663977123953340139511424041317255271881991567271585922121024191218661498961300451888324996665815891340783086678273521408191652797670658595192521555097635645531032498674242840122261893506537798384837478925259354609367612864054651425404313439761411243914671102010787072154222701346888980488282704560057546098131641135662070409236218075749449715319582857771501502636770908531695896631959670492260125787716610646993134389294248812322887242745158922377538472521891982147010461349943334339797717122032474201394900007746053902279828449008038151728415803259455561617682414171345071458676678826872283565573495890302106619816221441143818935830529494341933177793976586796869790245313206495701163842095484040935251829653507270257299776905164326771510041842269969447460339528995473455652713662540846886772503013225267522012198507948077528346561003167376738188562535911296201731357476727275608375840566968761537579208743643841269226525957823640346556540365234466790011480984393242425927531410643260049186770243423720050603076553614935622403592720237718471484495681344078796460644030614767926274308183087163027093732295190977835791151780392103036337727555786163250278291393743061908540260120453667042123932996063050991878089927724103766621376718350656626774119380287987767757139262582372458277590057604141438574026239244537165625534374882499836990310552575460710648220253258524969372408981238585389644479776922828699202129902078908669957362341580266408306227308307305007826035628907258791807481099899907090122238861770720876014043859880589375262597480723756789516824176818478664838722642857571844559642687082031659187946853590730802910492618736761259067165188457662906034439881401517324693861609502908886872487806526229502640745436655477858051992591088714614527064886357757213513565907008127545309864659654600407370444023413925988105706474062771587485404540746782383020538770562876530211090930834621799384192154773946655854606252539584142033431748980409979237339002298944571098928718542947184498577983417917262089564947736157120917109164384010380661448683442083616303170287155805349721531787872095437089149140260581393829461412300704933913567283725772412631327800610913588320201787560787399692891117061084991103044256037249197448291881822194986518336848301255436784976427011320941704448072712924820642814591602245103407421589575358173487092549579020025990905442953239958078467841267507450617466886278664992138586336137350104638812649343274145139352922098958688448114089500508850850083414815866199987856270290136887284581992800811133359407727562916259069871568822974159766154892564345898390233234451522599251180746056008565779459895253484193663370548757354791162463203344223893195126672864462102594945520839237021545409750559295321906009930761936941058160434121653825006954640991918822193868243961813681520033278845173576558694352865223042930767578788165338570467681440481619080065323176984212983315368854009302741442098457940177633362456778789751060101150531711226067837118877485180757782141791949646817333746834465321284606351931466646518212734295153117636045927869633456421192794786326712000539875743000818983187780690482252753161767141600082883816985070166062008904218271730059508116511637606635987254643753475937906428882912596794548085111016421713293670192623406388961416475636061050937837869023193498756692970027571068486195185214356526152077164463758541763869777460629587858703516688229187117659366055514344334578009548045415050753414180286320837054561572057472685231781829054525097714125155362487056516399259841680210959611437809825721122395191468899134264853216092820803811472161914281726145348921268949090980632272257930911354432415774716589686492447690975648170534882087094238643088617183425882159037127765455324891973361732397829147119209657051177817587160147744249408317563854787119613507072401613971618045383762545797160104478493205570099875470642029518715349633246363425427178218597221651226932557281106093910650321343078095976991635660373916468387700816795610068909666908818939733237689322176590968704733677217875293028957382785846116705988247509618189454326636836369990866832162393630415899249219403507764869166418307374886236882100450132322788702722580121542478748663978771465894982555821762473829198556404563923774843261474235867457200466875058627650871509707975380651243443388954670486134570451288124520332276894538439258564571675441253183011008925468282883240834413337217098143761895148835668286924606964289830268151074948326722752329259014551204098760248743593168143073738862187890348189346532806473531384812152423729828201701663032622424160580222851275550098177480769186043740715110540919253771194009043917882218351814403220451596684027826208140178854323564246711504110942801271973125782696340190199836029691434958034407859524775006241759529172146358467521912245289164714041727902906174655521245150708982199453377839011675631027564036827910219139808431394549483230476472869154855987276018337393039713487581848713395107276422397388373697438843219071177336419145446521965934509427731808699230069473895546222445393478556379409722967959775045152920232960862141381799055877766830544398521672115098949642240310919137663313674876670773534007091234346921124171513435908775220760098229737857090106549802400239963595020744902933652614291690861573066139213743082239431122364433253658972969858006542803900601951265003277625147694956006435318433594890173679022013722082197276772152053028069329289502954450412274250362888944799678797289879197597791021423201193794324858488158173543474920007434388346388757466974128306778641025970216050694118957287535605868243629686095648494232905864398695354764632386337963446922351004529424548089005579099354377123944954066496366130608517071560282984078268187236808106107997393086121793050751722696407885059951599450298999510705500909534552720820509864218468761294547399553256183422604144918629584649606191674890649087908274731287687338112877952194021669335492335948273461132939278088512072401362925703788146583615758133347005284583569179095135978272816734634515613759724437339782025851760848284616376460169436763126391517200106941513811024527534302873785424119319717280924095605712573237382512367419404379393714741318602083915279747437283076510735794322421120773169386901501271340527883315805696784834622467106070498081971327933841778955071977208782286140566119035734826531201264637702605684443499930179767291531498048151750123754418343892199780368143883881378772398937458033751825463972982502934426730242388385658554231618684946687683900127400651173178070710725344108866872048818274371534635599219821717045597305996819230581167204535205184629038037417944022085849969293753203175676075875004555464340856166088190439688469291571770686720115593487547961743222746913527328481712825331364586759329408210629261033219687908635008314610304696724794974584755605920706949798858909097610998756626185194736890047655958757008100994917020526872806672246628624771279443339478580816410889719478629663037823889808921279331015235143568678653757130797655924853450147394112027258544430808410230218336950701450445782046767784626605301880801389164476547175547026477684333912916478414179380735421882690569230034034422558895969909703386079969010908434249679389659450984677341621785517125993911146613107283206289773746919607482393530975542016974897330015654730453401597226888636279571064295918249800116660692747793293672152055466808970626938915245130499788465054892206281098716391638962886068143859439824060922713276862206581262955034488585254035467192657789807297328083435462396016477400062383080966761620712089368595945657602134565574517239985243872329360566808137245982473469885507365097788642141197328614024775818893254580562224660425338963486869184844779642007326517727797584145822372875763844549675651284802435906943512775059556188999644759071228426154375964347822197710010410047305284882187847068269033423426914768543566452801296536937606921286513439225487290788100531106694838991317677218026764054657179219211048081655478477185216512147924482686680357465459434491753686041818793038370878385562148894775206551847472516738131500646700881207218265752583290328756871938441530172674352380339338108788095392602838094124268403565107171072122239076250803690796897059837908487634013061266925947380290113664338838497902676264880697649945721342397219232231852847234933939263237873719476487862990452833329301346362971963668496426189161251974299476302037111747729621748848212872565968865752430138220284427442070551515124016183190933496996033505106092908948603619208715932974700286474989719157814191615226284624577364836479678089036316043101612047296201601116381034743838941984022767540680807214856631300814588873084754364525607769131709698664972909189574515460474299957797857260034031374702295120747004470431890756623548073971950336005364217208510479665811514503871594537426442899167746539543474543745625890180038865897917218984463994957365869258542336003652444236353526370390851142590850799627307900030009822701587620941108074177771809307673060921339995488382662315331150027933928778220237000133822713853822912201656246931438765070163296413078581227872509068844822455034376975539628009576970170661953100761972351094285348493927990826717779619729723101394147324518786275671915412528138430870520329218844178995135463418136416692956866391256239710282097308468518740912484320504729531130758129387219579136156856942227663122865468581923799989118064931597468015943920911585305286210454209622956030821314594100363624484090329525569927325610465216922774611924731264687656232728460885311864577411743969469089788425121862914774277655773575311638328084683058439324638120996848544153212275387876466806147386081415641308125659073211662025443075848398480078721061032997897891500796690647441231576097006919528783069788004111996480726512882295401324979764030092440287390846864708345409996928485253649482033185047573707505541470774018257015403067813999344311719728571142082876741501162172750424034761731779565571332679044378490183960527385281296124084196648875830513814635264682324532593360620773198242769158211888944518182298373451536097150917683774794463600529578431314132221424777609920165812121737610305392684010351082243478874598699905676597248355397817735322516535394661019424373052552135423750831078078347293551616990043055978404492828529927878409726594670119285884299983818020582977567429671877002150314582038497887270723557897327508440290267991446089568436230544507384252619246834477961300109791079585274392702610417631662904179394103068863006250800537747753222567027213386361738162520126307117535786541264023482851907542598004056901625810408194526781321930147869088063380195999133626452219667129120765197717114239533632267700868419330430796761076570898880209679498054907081758265114893571486019651088104327185542275537903085391866770512582300511410692341281419869244118818126013633380375820902096497908280912422502657744707123837197726517930917075346454701223762048656354402319153808734849890968942974128788739238015260104629545630443507586612811760151479753323485988508670379572179827895543248602582619733366913570981996727630184105750657803993129179393651368308362620458282721319698854219344063226032922821285257809075002034491319477065753834906746632294640973625441283584999423767578511038827931634192026104939556181945718147558472641863410704430931210154853293111940624252826221776555073186725671456132524658792929782262480559017912992725859388883491888894646967100058409960845294778248521134603146473326152106541757740708498085434417484834706511338901660631822322906512362259110557197312781024103005142344091860302750659820232181134270159514003063837616726826696928283841681093872198086898950902271169868370058639739522006430951485265420730873960155964831505192400100477864477313444264483081908466392116128648691701515960918656351665450796743615224155441525277771308179737812250894775611509393133935412860983825272378622317221657847188497435199478136253977461479896999240113553567870168487795642787982362598228785055377041399899598201638848885433327701863864730436617530868632984133789396354487027652902351747628311356908783554375016143181552701763520693114275329075421843181757821769000728932923151294188258895919488545991807946087503826105018009887014798050708291276637915434431376648783556918873500902550854879660220804289490760116215088302002895071128191886835518682343959816539768724045885762901492460259936051149182295075679231319507915215448722992723952395733694023653500021674682038654898601703485232966596392467610210535954311434467389006387737347704577587716355475079130093093513908306818749662368461264444780686052540327656367150712822624799703800698526694260602954047220590359891277225269492342141074454929187823168074829575078455287788746949701982549499249568654676969679920066820777287450215471315813399131457370097211783111229698391938465086343957032630185251166482578296968145779461174626957120527167338698732742984725381008470943667256130428865221989666242935924588905990224674352532292176450702643975872276488089100613153108745964096168029244085108346032606291500898302193569831853894141305725239175282285944306121023751242754188285978419058058863357387233265265822768436033750938771271332362578538196794427349335857806412232007979856814270630051687748113518879913434636788413411180380517108829444451105194517768172020333794846783036261178969535860752858723828962111778540722546044762820347982701478100186991439156742938070317444069985427364912807205734848680456309681628699067362883511447943841843396507040836947928162413897303466611176158590595838350521021759359395811231100205601644720009302203943652194381730416766883393041341851304095236613781851868153446910350216017279029403451744411181097936364508712071580857793883760460073119459315200174027418621737138676593168208157814969254722712153582056392399562422609467865873830562091908881794975432973933316436552610132384354746386017375696077024092936074805480611171261271774233057179213570932053411871425043033923010619728344027220987661527401361395376048269365437280066859072150121597075022746546586391722844294594711292554320033563106743444940557237968373577789210432800967432199472722600029615499186788777767566890909062762629073831154743937524017419861347679030760581049823696470725725035643544648529606377552384078741312014266761129352268890078685189169027974563861138046392208423844777772367724397618327499018469169470876970545075766793768959743247730259695954603356773675349591333873744348004155443667374691739815869028984858023882916581529540899224827849436128046228252889680149073102115771692428349323783517963727839162576409132138958646966448388488134313970670212639248788221276689205332860933813001396048279490126978572536947025635544340209831347285059130548398663730802425422034156870505630237924614446074207375291870225454152360003646611133941866035144154204750706711428155879340265943763041365597427623646594211858192968156287207443385944112585696493422106580175130939678230911645789303789098560812947301255053802208314683314446055293642777296554487505633899423806480034481087312736148759586339004578438655918911801497386849306069898084993431186570990200397445966297552008876313429729535011195237849190572222118392392018864543938872807470850313766351860988574308137436022210435901928360696371439073496735745101383177060218494258694814071951172977330748892063861597444561438856567410795161593430297130372794209189724347209152934884979673055664405121845121473035117566977080657225928437409938576864705471031026589578863867214373607367161202646632979470462586368537109446319413720032709008044601350462699237413209955785811822209873931876090687162102374590587857281159210884852848905964652648067165662023366826454795512081124541307115171104830184679434136636922412812859726687895579230961960796120898815700384229974991280754690426497860490751307684284236006573944116723956648876429329591654149110572724240428739978280661865026034582636007820321369974772079949518955734799150635830736836294876182263975621931936252813730400722974164497230659135838317738619174295353709867379210089174194925094280749947749086641605888692505695932332384955032727057486068930453986723157802983441720006371816640630202189017824139478163256284439198432191386273089348076081258210070366148139455271841264942936946562967501461832817251344917868651767228053632795545336534515474402693901482082219116410957754851677016204491185007510133614902250660863149265129135116263434837269132774758748507404327558905658779167268431965685715739438877321781617582205759420582834098228463776551475953351311330093886957073034836846014822928145705907362410324051799950777695250890355378052458229779813763293699099247641985577535594966148385185429413132669999586539201197239387931580798956255944411712056315440402787854565034297833061700871596712176806336508520709751711347634562514202297190334209333311960621426773106548212492665148802582756320584427383003367404140881487007076275145156409652780959162233777514784985814441599414128291298991790147123467983395283087113912371620580371556981055901091216588387648754360667702039385323741340454275276943027004751128374372385730979116012532988574288123941214348120170545694148070222693325610224934582439823933016765883319390778502990462944727443268096192113959289983400129177186505285791060088981782905413772218339112278990459939801678148873240151416849796831697857049115249268974658864601163717901224380315716103059439974519582325301022427782086824062251131752356244154292908788118804334290444668356162829926091489609921739569515346578695525024932503809085672883011976232449156788216388813814918983880754661125228187330233478583159424486522312129827837929987281777134366963580281720405547614878842777201381856623981759478351164897912814413585384065948311847144817872590225390842098980194887190511407760995222290283500804887292217373273303032298516771580869740574368805464689592848511868131046768894625106327294850114659248334142512440000803763975812243851138698784919061304631064659341054912018868779723279739157590828978721520838089536780364292812628083910399133374469948757609729482915660684023181749950336334469392081658046855347041575912756469244981439614110562590966750984084991440977119922242906948052530390376406518603043987931849220527316453923495721552760593594812072788158546817209659092872424272035656189638778764737510782046990714074184733935761715705904017405279024095340614901901799778694392035693362742535112640927841907105798493478077739307427645260267188140754357824675572337397870394417706306295010821915412344777713539367479428582529867324060416123687346624918589761134564148413328692231934026079251130715414546551112664283821601311145280494846192086030358494505504044998037088521801185018759179830753442905575135074434995525168534309756671987752297345007603223716421413920076963009735379117280974327332789894349762066773223222703855059153354142018212056542693114115552800598026710340392683308044234804490418562926942337987516883065262914998180771176600144236355482054582989986244837520145014832695763495279292500877269282920608473778736284167141728473977070122520450042748545075355435719654383072426163879692341911314908630724506985372357958748842731819303857388132550481086801329525324253202360551834007945927558298802690263921122750106342169984795168499098968946612219820739667465163273056289917325334936106214931414784339341379542513537491562259454534346148807700315051431439702294249977231389871579496653063273694437749459029737755663444009177005331422631709804428613235150946688634147560684242220205905387116483573350616799209353522148987039036760687879486707808372911812522042321948351460819538316654803931965638386441519655189840307622355110977244174508387517076571995596792255212155134588456541825113426088875232297008740454664746904669320540818745199707373860794770672160132170170685181590184171079087371006554514287986729069748074056811118163388737421814353066677609705620489191625610562066803200773582278046792836143078520203980559976106098993272124561970821538304230752486861306431229702009257265515666424778760842016719195198182638295331300969674999588065851964195572978644677032704596971725468208267474887320893426354390859135241322497924993897137798415158935674363359247011239246693467872180848904119135726952951236107782838311336910966992685555388092390863479701086255216315851805457066308962232769891767461007898656683928572527286176195921485892758606166417840203226892169704724748152360092519712037366168407820325211600371380520400846572571075455587402674346791429158191285108941949398278076973742924672846330306369438524815177166233838484109392114983170898757591774102679863508351409360849063682083931373042176837932880567415191385289696629017564860248488216256295313671876332787924456576627727013966463672136574880540441704451116185333497721207753536751566006710418083334426875441591141940889552127555737704572909694448045616646899789445322005334310957038678904907533491164955025623720973736600158227563385197892124606259413900499205292126365649922812848485211804404551530385978278416108900516538784579798336651997283275615711130342636291539923414854444348795527653477044774018657571190128161001870095520472398545420180799534145098984817609386429156444143554522979236448542410894777002607450250227621611795021335272761511990107041221811616822860275040707583064247042559929263774285556828402181979170939368709900626299100997758069253787568814982118011369435480301759880425928766224749551956908814639836488162093892797637989176447986258967662480837683928313074279663895337229359393060825830350706485627049608120829666280247481495285887635658425209897003219711477674471685921358733774590152259366810616292015906808258495493526287388942293894195849613073002333553578238148921741703993303768103888645016543925195995454597426992081558959455592851177979754243098140518373658698575419012660374954069326085193133099687478760674010814408313482612404579785142642844615522620979221557816089072940205653353739809199514120590827940358148413450517944299847663391377583023613896921249231242150836576700087215881862338654521648964253523004206668556606288593714592211979760892911805060066273678444631745670127700981824626422665249605884944871571398331727188055993751544833805506555315546874602539901133459765323796948321432559631516189502137634077197802912513563122364147471809160435808922653712267080544498945749924915970730669856483055616588381332115146669324851019801768120339375641746851532489650004951758417989884324363086423367617414037726064628781457377340735403751588864237420239093132761906610646552166658213983495670388400155516620971984112197410472279701273668763901057290049055524579345308723869712985548219595341275028212191206381698602267876775797207456083202008369942467699893782986906394748943753163201898796700239406409737392913827433064232490108211932336617129012279985250209573287613559513015880393208879609035154452754919137083816105872753545942542054398168009494399075564825430856513585135826751740591880180172633108489655689644149093771501642658230502591233991328334038317522049532576800408947094310715105306249181001565409372400455935817049273769663684810727734536142613821199564416454810953000166265301579711686499437481453886981312806354063838862558347318459258960927030855321024108768710277112755935278933267816199465170271382838001559315230463043105250364829599250826547375377131625731487783859609075140203810708518773090440403882440376943863024478505293588240499355019426212964913858140804867874942933961672452989442623253830082941285500959716485891650701048383114762965323209197040652538650813701008084159456289309378827891466321097938870968106024316309631664281225944514261215846670831809326742861025247394834928118674479820654898906470743750440641707548283974561960665831268623480187308462663961860907687118277175245356169683302399532250443842863377186296538557667569495185798270486236692985503059059644604222469624340445685638004285630329568925044977223797721058860031880883165699610148064260380943931245937099437214929070920805574510249618253207301726170098972175919935269763314182350787177614458092852857439206804200349353271713512018673045011174098655117066293647563680092047872079070855711943771917992269950170894169531720275471993542463942610446941093607569621288825504958530872711235599812783529645298997495495853641776374920579789097385645012372331798632401044281302434321750119787300616158079228471576019685997447348912425028072378531026479866474195343675651065764059419692941920290692558397720805363535977790191000832923171615177273432617737218581639207705684692284320476967223426939453453029187822143665093727452922620523622729636066108055348218905154633992242011637637145218713245546707468043211585638157899610587374906969523787643801841366237809745707316119438050682378617165213779354038271822739001174529490674890991735683165462115532359519246233554408314467113220446561516068840706857365940749759270607146332456587222512639070338351386216644367359250729310375807050765897569950003209976408677946452690569183365578389551030752828033091534081062864033467108280010563282556551093415913787138186925195225981374900350332952367107584659012045397619265328037065251808453274971315132901361338617326848948202162739209816099169610388230812808270212134727255230434459130560983063643343364528566748886569885109661398055097997298297049280368610387455274397271487065707403791608486668050769361607855490304650480710474376221845953430688030815122649640844429158552606745824647321865264686009743676071170606615991072293186244196483055302605852427103126950351772851876149645102731507744274365554493663341520941389259586496622490660810398980768006313974462905205131725521825630123628229732324682318540808835400113695104631141436298595621154449126448903459910245234162429479086928088271510820825304391364063650352689441984558759167891136833733942808588110486696721830836560256509235842530993907966558078280121743000446877351519416952162030593116198027681108218296888906166481727264512555318425180279404891089258261151877259001615243415461675573999666511052865329651994394376259716184453233562026210066050155385472425396179132319714913671631899768116280490072991717905551249069288653304663579681375818644405530187740826145882016601596511249791283942993720334179856074686358065920761563137849976942213242089166280586656944243054415925979173618507021337413468738185973141179444338956764371991956008151939671459771282231647258442909881621225351479309383818751432711718411307148789300326671313623113000297767737251403831731854128429580173884355023017803239106065754830648595430671986314158391920009066215249964135565112295606790202787324124226985247605999313159901103092302668656118501933395150775721124966882893323384684914139146941367459711248978903227751201086558095486062106779768813356813196848743536517033465406726371888223207059864963732532504964181789605647345977460798508430898425266891648148222516551995829837057635833281141525476664804448214305924538702708555709988566723377211293077125117027422297120210206519755631482979600886550261228579782926592314435809946353122268992987615587943853006109423653518012534296908031834989371908729580285841186612998903581565668192487245300105503414708280582449716568951168158999838970887728973824685635614534950814902534013391288659645802303544126063358762444476517821604217568742383847863869351451208708574423790445060499954713645262777268423764158939160576402780556198985692139750665364000212014140962731747053386246107251995286541067858994237524583602444160375178474594216327452752866257678912658008706396087936752158577592185573059132382594409691592332150700705284805008722813877382764139758056329091715615110137685732182267541268708000897081611943885880609485221437730370350702856830726659093611234091853979541872723158270979666054668054569235501116645559458339942850552054680028312495379604106026273225540456804957028300736348850145353665572206651382827949072817584085236238133564821572505765552987076965131880701642875718032865458585257974661431907963346385243917364100645196236034897685567216437589336498069809040794219691263215339172902745782718257568193844161111659618687826273202306482650752202204337659285182678342051796963481486456281099858160574746162551373286938421242614065913947144019283149562044258672717649947376426306755210095492211511005749885421722801619934232316399860072675397358047525511084562974544145181186965314265148795763509746988308499461532975346086462181835414860566712691992470331496080779963960314693884727234336082129218658940586075079732961096580737558161477967974863600156985309062937362781011093502755547656392370117458728927404465135405539180343907992666570215492903385778559850492488877834047951108998592583229570168346105656379773225145434107613683844186103454040441184931260222151804391375737212501697332583665902273268792213697303110898891809779016974943033522073522319171642078077825554721918204102938262900566966667686702544049272140248600736683463120830229586895127680352690059361151543529103163844562877860117360098946212432079272565156856422221840442297471113486054936494526317879565309197263617168633990083219187871359945502990550179660516789394822447200327742395972582893985031324112891213216937406833533661524340545262079784234518304686543501524658050173310073523692916314650685529425334099945497583933540760348701568102430899926958438613423867776950068347525048965025860397681681698758720968495765273621676938121801995733639655021601189894028036065710774834345908461806755912712143037826329069536620565657428247721964142582812093323402585387053728542219093698146525822239322523723823248337211297483735214699850231417727983877021487837965667498000545109159292343625167415316681536253874805775950954232930645981315828856102146735709501479608731705849790797674589723128483727402920746972389061953937122511310044563139457904571399444290424040162762477531122500214112172420364353376193605721740013623494238535405296343431502797658064806378337384503286745803851944091858246614253016420830680890916435941376889329699257420357286931903530183253421319328539198919298949846583024327330848546396910044673531108069791981953988124008969550321830515213315474534771802291463770483150143225191424782663548239415191136637268240312090305191017716556567633967684328341124994882002315225850593127907212759911170085118687010463847883869221960461310979576713755842542994703894017682535270351183284216231948590356707363198504362957741034677147554900105178026387125637906780346311916815601232049996888054535529157521199312791682917669869836042691237484816409280948613332202785402383423782367302180651162199531132872022050604826402192143956485799644118043904303574079290945869641359214831632976880312135238587766046502462382421916465737586106601257725447246469908235440225214688588895674373603896956594466116773277062367473755497289559294236666154497231611967839591677884157649584553368009369768628353977253612337257817145476723121935611408227724859205025491717603627210741186871347963331674604775748038481681368732299792899923792013893271253609467795526164065427799846056041979095912026841267950497324526281333289760475329189096870471086685819382600422096838375315016123001224278762060555831589840436986324330194438016705284646375824776716832441140768505562651235061521078523730019289698737947349814026429065408776225737009552603963020482608619721550277580201992170275123307082024859977674188245142934226625045878803987204014401485784335208243312069945745841578161031620872545971615743209966194679475338866076349952300033883380911963934863729984201418904828130128472570279399090518789664652442742295123916835144264256731269873110725236429657707881160610842843129136136646537196519748498676986386863326925479031407035348932530325648895074506445913449042874435606636353672121788490475218906471802895479576319039759290547785598874897935444204819636318802895897716265360096766394211889035283779024420156862286507980945223616127443645860853196169447317775631098046943030762793470674963713628776349509856289649590259985102962595293654003028135385757702098612466240699797822830565684501033061927663816283492718668113295351461813959291272367621899783110790392892325963186795831538394962791377404213865531720180456520356732459327776619706997403076340426595449489774603567761004225508730292162230918829017970106375550179885098390134269408894257831398396267950827838588967306245454404719521692727042024059225353851559651333783370914855231917421241818683129632992856175088096458626567493410823602968569780070325553743558031997390492341776159868333427013220050602965450356676741307103503938690263783821211345965064461364945281913834243061556949991891802057369698890950304849851105135861008044058323964743569197360267357779715741378298899467944579039968251845533893137353877133579298970554945310250546906004649783181972913551111970232522940893352629797193551305794764622582050880128504862250804388748971414642457949863721367421451316510390022692659844509165294826422941314948986282446699964202562772328459341520962157156225312262163846462077494850640824127890377511951278296505149477316887986753139934925993388922082935385737132049228414781822805150325948671553324529602199371340680308179514933649292939332687336443747945415695568253337106237786516522612415472752131553427370793717203258435709787521456114040125411210890014858467049244089986564260133510299412152943601275129067394707181078497380864240370489223097215864756790377098470575933293048770186964215573533861720252919515130517496500411922198764221415095923043534749923823897745722285074279038682889538832761738405044348146984945983337611330674624358579653454669454927800571340589926097709587226964758414075879938868590763222657492011674296642534496523381171859227368881829356899829784576226559956279749869620882501161858318537842759596694741132254959066093200272551084079841031449295889886261611022359245774442023627517161788035958321958956206377188718949109320583164068336823326985248252184286791922210795531142292056541800844592302043749279286751233958896087199813954180303550847569552216641058176415182205436127236656526470205667867094719236226105119799464426145919982511964364709803899962870658134086036677784899026568123922694255322800624139223302957536273244615105823062189972801238373329303366649807520280255196545946931902717961579500403502115023620167594099451815541647984716375424508620263033074199476222598084725171023920097395229706997802990744408038112632243298321885341237560329068705035666482131032995337379195374787650561771961296439275874993638899894539712295300917190392770099729362251837284723754035513711619543373142001960489176166223395004582961784066554296417059303981463774118907455650408703264868671381885165983009070946228290166610044938803512145051441931065821447504133358742194415908935554828824638040983625882005144672436745931170009738217897823777362162945383964921352058962906347041941401988723473974184532104103995698464579884800312874622557979702679138815743802205755760729084686103451111347574177568064214350460507527732146667411575416373090764999213099635462097912606621549264366957318370707239304545448428335314262245614468585555328679409261716545011386726449327950619286925814818394036520138403525740512156845175426073049523419769105024757300753337991435607247784199955635118473259296317715572190848107839263691723763981809512935004281478498213384560494111271100294263191140220222702297580897832454106118945011696892044697425615381182613806548650017863594938913196655567373294456102143635807957323866323402273689056298748675517862952629551869340677225159377900354516439321771762563821740818556870242697909158021628509772458897891251128928859153634648196257748933338048965143001629447330102429998817133420075937100527936920354128460552377378251546661536415785427280260492283384103277934857541481255763943605441561691228610215214474167235238777869449163467548501770366344495176023384711960036246076525275488931314776529368784792010664015835096164713183841586104562798906841983576470181594706308605851528618831268010130909536403344061499220760378420385199580452909821997228820333419699135207085196904725926416383269347662808855177632255513629917892197539882828340477271101169857225696039119733666907161666295577906747330217426664110603613016452441044217645687417450811178893622671237224500242108867302137845621722794330877465132720443800979638033819429669728874062953905969046110262842530327496348548601455233227887436858880356416024055678407281726038013835855767850494254433020048000670879874711563139249592882743978436107940041433467964856607725440287636024238532821172234847448870640123944238715365139014688360916536748895915778772515254157573188237879908243993596241598140149932048441966068433702304353075491124090313496482557248529345070901031411191164890757495743493717526655588920099852412520952843430906117340927963172557111910732522608842786120477072984799733574033214005946611836514859244310952626305986558306537548403910928797041010906892291450789394798151897984515009605295447660320737249762311381583914014564711674004732571791245686454826841683721259200816622541518667903125868141821990508258050505725789560299723017439196908781251726232762497082486428070104417051382882777057079003623329164648328175430655001145707104065522782784335037999767387469340121355205917475027221396590295679650125855265793382498959108381391667237097262274184389559164782545018346397883909509752900172649295111232876062757960628532529583346850628438917294664880874845453439367351220393230141707448910856997805395323768193961503060502075468645017246443318389193140958589493549019358435056305151618961432523771074780924816734705377079302102824657392749584617748882765976766387877338577756543547080909758412611622712262150950075181894600658283689589134104149061241740488713514843130304303237468644181621158407126783647710871388528515828078941508838875115934816782285111138908932251415785494455679277942064891270155367554683432780615606505897497127673887628972305431514075199180344599872587272168075119055267577538778306672179139948243842902548107199284526054580221005708108057620763683848092902187386766583560464877247174726943916944765130630668559079040180992877374792544982971147227206364352025362551738234911848349812394390453675991594306687621237349833822332466532174707702532525326240933094522467559315946737924368098479239681544552983958693358982552651571980443732719568339894102784793255523024085189229722680544843261759060929584744345330061362916074287364022529651263260515233794656136739206798484977046331675820941875625143476933799364279666448083283434514718770614408990208110659806613113954232678605771288275376906666384387322947260933306082196018417415768879773457250741966836003035926140463504999913714922999708547965399484668977991851971044730948882173156220657443749070868937448783576542370922673058447254471531758748240943733993169079550906407800625829650456664341118608522187130428291420984378704504153137150003540649603898357079582406491885662192111458405327151989247711909462174333518826373141241129598992214370573910891355516151333319076578038597986588072060164486601350800882574580634933222473160638383183449363876692905578153375090066296169521731754531583150344342583626043425879679926262794756219240464088799751264167949706392724994375920344774282422446442058790600057914030318635273765236345471107566649099832833706276686090413931891618573678265017002808692304715157016433570953928749772131202922406383968347517489759237528995013107454458687758180336355161140039190778667150013008697466075441795687288913602323929613950254792849733099678214698670786619009685806258403205533828426881213039169277606251600163286747414177284148863139613138904999059233042822570129560661937060670917125425514312684932302327149130684031322065061956362492482061789939849830833178114479962829231992844559637993552557157031789392632329768883596459348235184163242604307665665386452323340345236265991439691353767586844011996571113694093302610556895474311409266181065512189933247790039625496024588168946777943109696154027326026628526266372435235405259399570389056558424635231998297227330156698619435761564794920472964667800007245969619391528468646628633635130324528095876435152421718751421363577389681013271438418943294562755655130050213648237516456200719215585532996239497888996551167229551943406836153412517647816776592639008617047128218210993081232586170385017472250116085387687744895461448090243497261080740536044867279803601652404126230940197335228604564862466172399677629935246649328599825108425651574383983051939213276187748104443772155666066866723078029869224952494002034908716494828043174548917791785906183095814405988542897153171069332447280234124533287993899515862786695908196117754887285208013753915562510167278367057168491068995257400286756739556654197670990611402922543921771153678942527856764650711117499748282047730401784744267323603231872638220884470374909917563624700324318789520092489184251922104702276928841537573283945300063174930434358397382944582511982683512358649744041201708803381808374852403578559405124299578059712599539559203122379805040222375145511762273493554639580252118288430217011172743516085577606928700366700675627018457301674976992394348739981295003493178802379207169254567551684029971217466045337375853863427145960704124358953496545224371608478995502166715085378380377141422840489586797244001945893787535803944130542626368121613845365780919031900287729404696204029402053214859593880683773703229107248495977343980411034024981352671592585439736374669013084972143752816600692270155187352902428620879248782561151276276535660990839774778506518304243699657805530830975293887013699316578175772452012850636706021459412937381273396401386342321573690570893571688569003666197264101778009824618543622190710441892548783289770699188736730897022094238486911021949289202357721843794751697680001235172493424704271008476690612856694842451587337198778288680756980462719044776145413694805136991184988839947481830554527830669961589656099248214052598458930925713958598439253396495233091710905585011386459530693749000543416189872169647703939600576812565074407620083499218185037940287843967591126242355007821635701336758303405604941468340154155377712301121526756448776418746089755191370721064836197359150666229790249956879773928277899816191025360416924984254328299057032131467114184315356528301219744213868353025617628935547623502839722408389020413317360448348242169167732736658762115359653759901869916210468404394170413027834085220785471307922811661925531342299378829873133165669067223485450839581931915084450664369068948909962320134251654838027868932841948670962576383297185081067052736044329233071476393324016926126252585454299662689688876103708101761146038614706215134767321679242797687554917797435565286584741922352999439132084690277700366746394858758992664105855501528189323671606895167503749278982859493215658597977724956610628603541547390900938478367150587693358007092918576366834973211023318883881241379975471296525876642469870715877473467207330346941352884840308712523847859511623011989961749662714989561068408383972910619998895410581734911731912100850355874272301858088700765099532916785104889215452716279274540244155993499509377952652623491067356651734355731499703879053886059495382972191254467676603182850535869791090530934012832226749187106335604029631569725715045709158721878816069366397875189303625431302861919507105930423273915460398976739127580634560480027661879387103488540751623677327539952180989447195112149323201192184427547655820990342609236126999075554962836374067873964472923380912647692785872611984241112359768670347356759301346984883842049785540399794480388255575473926530593848457606529584897763414957231565966438450596829046645370806026793142813036773431195195085050487542813150337492155085314526440089802491797833907687474540708652587252886590999633427880898092866954135327178379681276534587918456601585809994826713133643166864171911752083675187091889448120208983500288106973553820237775936199887253522073964747745080138121219754730269775631779572945178739204057608071550724023916090110334073032632076003639733357240993342726694116049059721560151771016676065180181942291891967374781566477600130200531640275829933638151955029516610000438630465800599543236923062776189477441191857545449767826693759395966111398181755035766224130560067606551310543120177544771782520382429029402307331170909239787662730821435624673163021038177174536720188461064526668984111216139314337638592361895974143548188487813732938569906152744000870990886907493136066146824001321024975612212138119929810772033607383530749603338699213789192330041257898013690236740695627603679992737480015706122039633062626435014581901934350431267550551463230054173975169889270186931046001143681329623742306353129065358082100364480347058278095751184877520333839834165648813344356668203893286184267739807653076661086103341019364268699315726762473615274467519565662549969974014452115564071729058201598825818593845747801852188506865100022802824416136715441839552942966352205332480454243818568753437063351634288032415687532291251665479058318615202897324543327933325951747612226875113607102037608437390653291904210480345978858162328573827624018696382845910642690716208236555472131005067490929865053338682258960884992922057070955637127398305960641774337854466932127946366485754977786033479030930388236115675702092063839597867206754187957654979254479802166509852189790948824933205914113320681645881652812057790354580058518483683140630105941110540469050717354293424362826119996029239083911074085103444795803058488303954759583207655056841420163456969274837034340867444196445397804718923491176343799000610487006177222199619516266582839902256225861805461671457185663858517087236540037095833534000100528771947531809698553499567511277430878198840243437933913434975387534985706457773302363981189211284472109682328206515994983623763613771552055625739072492813326920404755270527651018073666829836293503775659596636522053513515577256310319372325536694697080732303152392422579027390361491410483746485609242834411699216167221519406965999985640999671954586419244611408720977329901290957903014318856619136067008777843614833288959231842227372159686766961550090368561693760807273721814885441226635586731360733654426113396940456902003768058976681992964816755413368779471556210630484919074597667277542054319512670384136128734479742560145470261987017418060079012042987016933261810054194798363327127584214760369245704159147977595731946895460131880494632263880974098262306186867192774342586859978888022172555901367452610708894719449397030194898435991364485535395766609710690961405912967937792835728602113608704843641467638853845920381592409050619399668453622049120558307807701426628114117014882601484629109201688259142855588956703965213339047006576470015458407707041333800316401813557382341497283219560525631488366651573659503236422187041407101286282222691683807071720263702176954778157658956392822655159880386998169076015855788794062193554167525271129204022721801838688045792088836806841224101673665485657222691487131227939976160742564809163764772640817103313805043514178581342475030341619364726229011960503485582063407421401450208942649791127091174204537919844312928850291902004838370990294400726373778634685436398079450665750612808198424339689468068219490787489333199912664743152947999515053200335615426974870601953692564397926282566665738783034011571223941256796482590942470898342211926519868051086753997355621389095029768479640670371844777923024773072025461245024741334402845870304721297716149942756250130803715549096752809441347162020938525262771837483199277256748251171297388512881977704242192961976203677816497698586888760261353867931387028440999416088687756443532093883278333414393544400426118854563807303107575995193554263595503264569775923562768311046443957669300835351586556102023611720927828071791909817205850755041099123120598170215684339125063117419768524729249989168931140732840306245608792255616089028465055894708047331342734694865806286460277601731271159004281241266245402739075467330506673570914112805942772542377031583814578665262058042011461491114294238541314985711962094055093914132420588200112325613087257074738290909592522188639237802659873944421522939490496266804746554443591424796265461710246532736340507008435761981293479724595658038215553203520014898932797908090375583028435007526657462873031027623815631586727552583954121658936872896464812288382652320711150603084292954967935185430294933667113378951549197078196304485236199125015336904675242749242046780662837001193181343469928703736605902952960513445074868109875478361756110132777782634890963581083960891079957928971511425143904334325245789096902956368825026924263538871483325405615093033932395666576109676049638615289577304415405246419656016930323855126514462443307471760376046736810583682792622128224010356378737875111428777532491783304654289223929619833027621505685182967176034200886225729387957737007155381522215237023605458525206310334652331199352494797207869494791498162302560274649791134386511280458116345276982404575266598152834071655717315238424905717147286324712852893220874384188897820949848258378847352159706213371856498098207806477725110704049263400355416823546949547205136674074722277246346340043130011507369395792554955878455716064743012778156936815488243392502560457235829754365522840734891127353361031131830110080085111706485842650050334967958426288732384738967216882075015377174696578870135957028703997683552388711668374154383579646859481621317575801652863351479362615464850768932523048009845557057180639708232208941691627175952182233240908057291796574354167685878552405798333699752955181116689993132659623266254210477903015335827380307419383482488282351713470970361012653560267420747907853359125954959187618284949574940778216084083660587221140981676308958974562654918362643571999479636095267493867602752104858582848702411363346469227383784165645853200743178962379880208538037506400264503741807455006437980979662872987667299198854667115080345299859242192084640649633702692302147771771934511728200983251286372880267667491082501341609740031775497122883866298101357225361093017200494784554024458202858323794805275027939260584495594670089388355625628623416005127530378631922052752738657368009071372787419118710851514161510028987580427779522017568449127856040857591046507081003994837104400390124547656295601129708388365189512311474696448030803352438722244883216623847766744449130014193306914426094721042773654014875772569773471419552005426098982304613625534465055189600616446704499442958756810963203440450343425525544839226171770706294484406144399474244963321529727060081193182668061568604760725545899155747311535999118399170024700648751420854481104748839293607456847994762870248339797980245249567414887296385895024760441061496557887366476688711563521117147529497169518408894829084259128332579783170960943121811065723006710811258038142903597874418817385757030847778354321409842431511412434804645144880617050268494385076897414337660393327733573221441280589643380793205125594794094587372151780246949820036877952127614851610255863690744974684631903742391606249982632659786406148117209655883627969566712042283136221543654284745647197830502319223886423849368571802556098766445355513608086576249556895002522981113142174979994792195621514968596398408083591803243478878814590577063979089339422307415525307857729763075045474614670298364174963107539753906615150701801600082894137751291433675882152304617643635507944579520939250475902381542532971692694606135496766175333898610714927080307919480162009107705421366970787753529952008706973258946455997706649697035235833641374458889844683257446709313019800317124029416308150149762577693881455497461043024497973812646245065431975967707271500340085366263422706112001194232835149185663754005234211099878174559135668923350570914518146858536640740565698568902215924811487480456427652012245479958818938392907438997718129476437702321588664931488237398722097934775487704608230665884150876767835787172083585333232404247685082931763957115706097275475857591213009178347408985161214424313761389179097841490624162371476812428317111718285101002078948140945805398503259450649415333680437961693854119359879824538126646229158474245105068384125658989826856988808771026856148265809889788769034310788852637999467727655464359041865233029787818618727913335391319472765329530387958990657601655526342496407831227394750546065102751852321406485691291611185408541250278515695786031508896177932148118818045027351259689479841969128472629795324081399842157394136499732967032903220195453179996532196458303056088967358990649519654936672699814252428929409974345419943098118851132067753107782642660035924366413950696524770435381428419853250792921314640825749709012059446403422049416613580770901231617428326999291316543290430798647942588022289382757469305285458561920720348412177843505218232709459376811423163642485403885771839083943343107757967218584390303593917843054328700836151949969554329386346164270254421451328766897592105896523062061965717562594702679003120751687902032412196971060202613182926075105817881142151623843424008371954530391766029945228424695707975033915425804856078109377039880317877222383002305286368433166725690932966061566357282777098161512853865758249686804225876135580078318032274634487311339116552453356290412037595365746801958525421915491123760691176376956874225615420544043695134114844076553561064774763535970494921124608437595585706915715862264912007470030875422171402553770211476380143905746361721102112045133768339226194530338535958950324795186711978593746076686717614638388992989083475482214678112350013482825162672846950421803768058231862117237940725246012663362996029028382642038194731379351544808663830072489171672546510113968386686747342916461118702456826910489430593412447373989721204944725698446092228068542137011178991049815177661910592467357562798872506599294121429216285636558411188920773601558305704353735104576251045986510211425898477516182612143948538893864243153979761605524693602464611399760656333229886122137927804547578960182835274308390829437177498689191204071843468970274120606671006407144226291575166648357817292322811719322432765695550353284488575413069387932352666531328555581133706977408013245888296998305673846478274536261026770373052879820517209215761770431574126651775147840125135559922051296791297647536491466861467306469671158395470195574257568660147857192195255292374869605967945177178340528941537356044326947242388960469752710068431007118735633899703071482028886285513381537775688675584077968366665365640730103847909479568988406023837998459604390078487521530972944331458869269249008019134824138398031285807297551375509155769236951595708447532639613651071177019929732038852494359597410621887646871936236530355611766245092353776315899305088919168397061510378016795908162156007736040545382422790761857475628643555897195327440853866123604146494336567927615265609625175528168124033338219713435093102174027010091784611342160411172515070983862009887186665046476825912964398992763380769619809557338652160529945360996345168031089587883585751568823096203913967453922401209681870596474252092739366215265187150399604545980952795331854077793934642225761642482071886069179011753758855521628926247245355744657410267993533378009967520580628598086544462336599922442324214045137154119159676630548809385229357975206478592289935106394399399741445388025576202572453260047749380579654108962473730135819135138241727293531771887562199141079708847698750517265234975114003739247602650850965734739826523117141609442595974044338437387981406495341027428040252622129279186258106774427376570884196855556970536686867688605744012212903210551810166298668867202314159381117210117757279889202469582120025251713437578953024755016978527177182511647179110020146037140666769241366975913007225663074239274505888588006065585089496151310009980957414538419617844128308842683350184541034154967839932801641932792841080524534891557502833831489348519475748160814334871546762154382871449915722839531083015729844150387911395056745325330507815091990751532457836303484625276589972584952040094303022645986760604802741123485568045230835595688374343819389916766181757855531840298856744637141482958547912956776142570232467571699920246941761573205381834561691811081490409499861250550208019591481539105452126578865080612763960344624819184109722964949590484052012780245848987333093392756668828473379809279442766529314192090421729685406255421206490194683730771998613061687099667091628328105722755947301602766548648589344029574351116194365717829887120331641821483909265917399852016363267986383476482916349317625185417913219143941719858091235824442661738906622838056650467181423136938026168580339223939642912104266164681270938239797072288484082923114155007005785991161380877943946880490333372691227452412064444770528868656999903599236787912506209305820804733062365212753592774330934168851978615612483753451590878006985953860118654264167008984585610539354437062115275451712075572312068153024040946632968490471383949161977202585115246386510888445132152210916953179285463485906148977983865740071250265886738391237765573346233376495216837814559943683820350041914115653282592227078200093499836209561572982028091606954326505374490911691723411396705944824497580820835375301770806033346974592395850119557194094214407789391248760649473318707261687347439445476142144220645238161988495653849897970314037989657161195008645938053135368934416913632202564844291611335035971820024623189631276106034955378246942378093425020155429259811864131230995563604688656778870832530188901652821087848155133989823629724255504161981095900653051023688872003512499143422705674332952144477145309341539324904232130360564193614397553069404845572620411907186276418213167027688252233964289426139387051465166061681587822385779132908143508473862775160134890982016788187878900433972186365860964073326055856890683834317049273866600538856052351513948982518364271656906478378278773874803073167180033662992032362878106433056161549769056699254294348313790081156610111516439819481707299374629149478577220713787629828454489345062678974215069748570240129984616643379945787446813981623481795650268479699361028094795398822474660282575966756343233855798604355310536592540372965857063022959848648084868408342155081341970558535355655349741048488820362574278935288570114974655816426122903650038006901454239605453400960462628376324544486800561618593596916088902512307121966464086090107481889658273938800119124368561464315522140895285776825460604740769820450657728412546181162756957799035674158798509048937589557126458795050078477040243156173540935709915954543716411299093276603135772035198888106264476663732898993173228059441692704222488834358793357349853512317029300209826055040133533166689014463484667651812736555558971804307625316899268523247220362072730049443839220747276616124872118588997515658656366209767055111973930774766861876217100467177875965329043751739911377454124965536044246963417234130578582365347051211850802016622352904221549588408466618784927144472402092531014782902653535717258563628851504655741304435330082549471772666336886259489761630342416302467129205673056778972210262168642009954600351204328437652250101267044111684910540190701584363773395626889669352701643245816318686119835729869773029548771486229302492463411749194801271272509010958852172142762082782931273090314507175200240252747766352718585084532544255191553287219582660863628734532358725255979383690825686740007530259039778834424512511713063512459213421492211746723589088901016938321903792157887116127131421418911031765206044933099013721157778117061559499440202187621026120102634400064270355227697665929923756671705606410465843000765259886233151354459809529889619271995556023408176477846556979607793413802203894932533592067355237689526628361824536260805087879382757737143774014918408095180454149335180684875231024464633954215624883039697568786772600677714053235164585191452138202574942177984507811628914465350550042332883217689966754469968277721901566641516701896225402693118163974712499510648417435650239147801079670780282659044210322584813023599809544214199708134916140929481933172357185411362761723673823788344537862658577698792409330300526269159052693858568187885514702474752520209126903553694462909820830731734220503080199587086467009619304323252735934716109879619269692618357802005166763513345808440984207957742209863372390972680342634419407011342971009532031417843866768181765768870418653936647524139958435807020614594483498850812095756492197402131028149469825141501713577610914262652743449453310204094822746842110214501138339742620119024900890572208043190927569857200520765635592401947460873904860158296688467170866887672788282782155556601319530728637089103762895922151387498285632776116422449386815918246175556118104341884782390133552748580856952024616225714569917995184153719280868905919126596182922216055065731103631116768953919979503939687255932249986964449451744942608201439393034437150510821979771027626687270429111182587533224079276548160406846921029744798884152210954654615851373432176585076136372593028042916377584136105523348403801612665616039012454626130815136506523373117379973649449609897693280856446173986578692145254568051840688569747804390083699084403901383896765693948269426297182880152866526508258419412318370025069781177325204241336788471426372746107917403042602083117464230209082388126501114035522651110870942334978550022776483194806017759274513339311796199906798144978372329828147287263949176845840487799989905436998234956058966500746350643413409104627786489029106833267130182670809374503710288506823392019024063557048985758222118039964954692116908958065511492578132614695735325350068961629522630920166129309858259923729190958599786069743623549194491195275445995611676749274795879149805689604989158317791780152605593079861221109836900948960376522334565723635234336979114873819269122386447886217488352046071768516133617951109659164497232245808559045867375060461765710135165258538246038273222397761858729336021866888570605735888928514811339809485897635029271846342087579537304895676711813947229962685804877677190471721320994273994505940360949435458029700403522376242015090741191058712117412501137899428644741481156887239995889198315131111805509089061572971513148932352219744364346574936589855510128382623361847335221759919366068803848875539430829455442009713627596395613495035016099642495473615903928315038984922316414768066068243950833135070513605378310759511508850235863917575711070676671412542482799377687348756846212745648865748742056610042770282016927549405996872661217259738129245338079602064945816402483217214765105067048433907694715745526345349224219976398714792533259853119100095158369922988639407738462870384295671271954756068305128537116742391519691521788851935702779926094781401280822541763852602600519963740425392296280359634556004923319703596423567956568497571552082857640880147737821873270877958450019441696512093510061422206862258402009154463930068540619576384995267182654752226074819678504113882948759928734737004883874060333274798659347797189388906206234878263525655246806175606220866020042057170592432219585777432720670604311252881552482744494339266003483964610516429748578801408527887728590645244899964627999570735595995967809066248353807385515191357499871197929975517190264759874251721999464343258844604605776285065047246353340937817775187562226071016200574755949525934703299290000961048670488857534120567350958446866002011200455786589924323366325231980635192190317100365207305598170229411572440118015295338948809740903338010752469438709170602616626070898393512232578290274384710872211168245583350266935439431975305348657321847966313720461510449092362883100692706656868321245785695799140276268235467259791602436439022728040584626858743699277649882550223468451951824544451442580374175713962762511668265302210205785456645212362761728776942808057231823472803524078364020433273699840979701659628355119954061551215486932001140461787225514255286453010401884757421437475955599585299768332680650212308332398125156317949063136981800016055058690595298878094316540727071941374456453656824251942309186398600647769885593005899491749736117404023163502940623663862064291210075434598998516524599988482085429547159316904924427910309232150661869815076263728599742988570989068896353263077459150315259148249932915473804457504551739371496560812804189091459013893784002576257749693420569215057353316595520639276925834393584554707487208533819632903396724150730895540893468001835158533020764499205224190994245046235059305521958719252104104050126632793035440461148011120129402255172112896274079252646776161622039691285253625136276337122835684081541307778491851149400478134708037080552336127669099490656088297493640932603947027228915380848310006216445126932158307585283722386999883943122267627855010127820943815103963132015271092811513496976401795276566501937120168910026974487360078004440930091728160978582260455601710222452277859417522078797581251058519340955420503499294966216672266996138647048160182475067689634870017510792261619833172870492238624911913369739773792276772321477968912527092264180201874568138850269030344651278293495540400023858898717041679938043645385836638271526069792003880040304197068212481198079583677910122374467038831478228581396181118840486196833216226651117981035244960664984203619199958401132081948113270087995445755979809529081991064588876012969797811063975564062129970981630663794132836378387224137513648577066656775844795613739813544978044368816554591820575041555971853297004192830226795591147110227779804461433872731476796498505045447003858700210883645855198210009063868852147462295445321363049892417468134957386136196653335877838240997855711622929334204802567159641308751699871107258793715404613418162803471795399250342284014453208208663735168243759491796888684405861874383372854776525364033090167556424521727645233281758635557243774393923383746870836755034658772790543740226282809176162593818323158349197826301318892375660406448528833610092936734282083357500347615546786953977952171804474651054505827541348413468764855763526692108428575686608719423087109417647079446512953887205478414781400731394182992569524292705579202104885380945227812022175917336638685063729526848033142715435051226355799486763327690700429130332716487116154266703672004340765469281218793692805199313124126957510689859148116555999806005149153573733693208814738638084942538218062298893910670940577004207781935202072361388049464862776443921391785207123032130315054279844253352306037543903124462417991053867048958252955221727385590335574370486873809762650413416717353803582602730589845448549671251167101271830889076391682193373749447562797006364176522640836522066598487652077422641474261627030129139267347694646950466390830406481519435954721772055536436596184751376085684121225775156642451036758826494843769263880238902088715337860182599966567621360001930303546159029695095034197661092684955583769006955511316461921636387077656313501898437226722352358737532546106176230736888777430250791874535400498402843762887847216641600522984777736826523386916603857855185372553756957370597787989827347135644695702669738937950111998903686444271065334044347011846755519167440667571311388707573418098124067352126583722773512763666355870628261183199013165358822595136907796810266703133510026923924447402617536385656392120281964667369355396226424760208824777804770144901097527091152989016983517631167069512341337651636913418299214684524094735462663103187428229377856243458202756922775517807593124025817464653543829865335828852751233090952254082878527118599171373836148411421760189557343479630597521596953747813910344350247948925738035410076177106037229779382723037649354862820836025686138276781156111365641515748622843666487827027002118637414742802836820447276735948057695173899760923740374439729333813706663474368099661165336022776585715233468317633440585022690720566176705621821403572636615373936236777758417383116258935732757817196346816364584065739594555348474621627405012636397508913198126807859918479318816838673685704401577154757131846303144358254779610722822024202979526689584902749724827019988728567394502880747012965062429988962334578988732358565407740517419358863109820124495142152108520968289397158041875933551682554377756553573828110228318194922303964584871359404939740810253591912373000071260905946156584548463320436989744239888753751792277351473944372864687970061884149051191842705857021478797089735135041993956920653277183435842480480435165534533495443909642524479625754753287249501116894669264007502253318177368485898179476696782183263513099689820018987334276761349265261763476417456315501492567130206259185530939253687571426171419095394027145802428597045609333708203338155054389573028739493619501339268403711200594584266602800405691132218331691517341102015241796855899251573306799807414459953950434326085663371865516261173680791359932148024696816114287450378646486601876035419580443276288569855856841683509987591322666710781702099276039004269158335101261923737247671941822736978235010200093543587745084255046204456132126137906205606434598920035603478813331413419424198501294077420594673036549126485890774757247137228237691752977262488473611619179833302028772942236203676494389503259654547778839004794654797102460249832108046312514394346852738679059775112972764241268093438783618051150991220016647037156858336036413768956019645001297284093811993102797056599564144182493466573188437980427328507062628360346595261002313310214634495434894628796079337803649166687905135035295963810229205603286276123009114436991545755114769596263499320853834241887486558206196249919568291009044390356904757649021255383102315873589637789257189273156303792843338100485535488289133285245494552029666422815766024993723117032601347317762521964920621212893347750416610704181629121338063475599955092728881559820351625711081499154731446800593273019351799838867316374350342556857214696957319517784823494088173024322887064496704767229497644534322455614418966060488610690571449261290991849320934573941976281661251853669955355515126225593765118901737899033887316299982636739630100884000748588211855627722466861227832029948045284297492001094116885558005106013439916211974214629652699073644356707615995708336965487513753882517495035122531588632043671848802062336979582783810235781383130635322980383221737481863452650216652881826885217988816615922902992934277907635199175132170766078125525487573926142030900317252973968717827479021714630980800555071272725907682684138902601644144516749821317967653856094521570786084566323074272482549336849030750493799519720815610990240189881327443590373260491509324881075217823934187961586133868757883956115751158263429453529257649481861486994338315485061572372499579772736290248576725170779592736304672058503065588713982230853467294274432716714189985678316329792826665479592343928052760665389756679954773383967355990506522331415781818163334297244671732213372215989805804160035230793223891704916207869758547841376546182326032903038574896161544936224969269572192876705168469811852258272093278673515890619650443134203250375657699914601444288707686196076780399028865933297740443107654334745243509344534051161920384410428738650721835986703112897942763883646857014462381640881240484690614734702337959373835999106709399393693461428984472767290482095132162351205039635444023484879610108604579766044066334799655432166680200229121082953168156826972100414780660127940547140698102403372156029709579121240781295566824441679778180938268805198587853294268718523976954734679425018902487223373417684921878779138187831044586676610200440459701134397256148114796887559888609213042105518527100813023780731288208258763639101678896380701614770201507253689688338092399314051160339946109170270310249718814420327768804403473782422534211818550209431497679121670952567210764796686808793414293810911622273755195599859641997264563805523671905725208898472657799093532177410628816759592638060021679895945774788750614866074506263270182113891684732939422141630925814577710631095596842952936607801890882419678504777359095892057523022892294280916626065726203484253925376420656367240023486575086186210537700093208591230253635995859179593033535259160576797757772540873519280757089809002153152183821821192771710999773703160818090872328013862041389058694078742532512520305344814632371170320375556070052424046292036586415378719638595450004943323135870377583144653174138879137580942428776598864325600126787837791851190209977465526574562546710565576640419002486115853503866295422220229375690762747370155414016789368903748877073450442989673792835748499766092888883844415282278406859846786360948670145003993009718897773116723143476812139739947301724951703361451072078472194945787656754943377330392373910771251291265997253336187198265348422948673553960464085713001821204302759453010792053690939579703294874114817691929563597030649670955832769977601905193957992536790371491640529498421851537874822398791603916852023390889219254423948350743676203517896908182746959978607991923065645215401055509003974873877827177311576317408427812660844136977387757884419573319296494064699465761631067467443646783813571367824921847186073717300789504085214509065929211312700901075619283806470433799740032084931015020894096370082547256942753809536666245867536214102994223364741764984531905780717095568802781555982510088459531197553348814789662563148862237655317236764540434258062588443441571147354125297085041265209865373049845192355710855437274934765524231326271311412538714500949218143304298739709726066513351556245418132926142243206779774020801176834835235716072719049276696828119698698673123949009037325964974214977160386231874641863766760816575225338985189784531180939757637151139105736209946569047087600159590502160732704287898356374278876943575889081435328410340132381102812140464435182762209811722731778712094818938111346760281012635905798554938567615261191262420438997101281864242973193499580082309662066401923110432053831118668353918688352514341783066693019575974126814399186363976810745590729324691747900423191433864530781013219520838471255695229681882642847470909989757986474955169252079155815187137845995526099516986029552569470392503226297564508789716886639580250083547590981623993129927280908562656075510923260549499384476294093260075669482238755386046580600332128208138975511912346403977658325240613946900914503218159775615430456733248516905030634430896450916140974740725383979039315033570776502952579235698639106820797286480093363493475216184969154072987422511007144660761138741566026313695757288935426967396152151165618985285317185931711823425066241495280207015460235626253283726779312318936539860842421915772728799748299328751526637268598268976088056032910948297232742756204697098977151457670984173373556717983593378345909716726911169947511056030357013672697469206796472814086122451963273724182293060831500956844999300097580964094075349548853723075696728436981744338065691051581178728462653009923981992111289011485701818471023540440378869018921020675073779751653687733727879838193558498550800630548085953840325380815292155416721148814333953289918918092800560945833724264887672024055504951709133590533893191024333845298531502330205757189493551992079503812026619207615259619378256143059251800255408716531765411299631501118720080117247948073823054430780286602479570687015324353014551963868917522358108672731377862899328047140198989687015402690748348557298358084063727320085675460259255465084806454449431330720571016645549812407088661246631997739032824831318205969495883672504191827457758778422147104247359471888780568613332136732930381129340926706617093711465510872455517379903215907099456910547380461883851376333533948818518694603246098449976729909097778073451492974546056046110785076505081144410025645818425113608663032240889776671353183938546590116040837873073612558745547129060959338417390217572535989010997994112982882661692194732270136621680756327780872585856882023205070317843039910916606082429941083544366752950074758719751744629430899764442836098509348031591575425100076702225913096672775928010435446276539812183945924431429279779478497523717992987902188332712784803353320014399775761059361370936688056256767745646657127501728143778383679903910685022167724354722272360721628585567209441998139053772945918226343765958117920455987561722609391168210290661005540761139468941692738022351531954116729873294475317919235450596284935117424790069750913938865906623256961125472507082116667147311389072888788211011710675820155932726637124458481776309699166369036007256436807834958224208933338691246398803370256078668154273585187983966118710256745721296445357976386494023488425158380986639513236387899350401198504355563906750747209008467054925375082089692675353142645181017246909501700904658649642411736829321334415895735673203384261971275275522458750338008821154614188773142968949102146946529720213541215875675273872653846865991188891278424444368699881959691305079464057465859056127516983166331967509047487865642597856435256923624045134160802877765271047248274297350500751533581483984528272974990503498554184021644198947597230244289353533837751895062370934815623804098408109833801956613175291576267061792549790939327458721141331997444254077767453060417903426979810286096023262962371089217115296384539407133329524107574211922743661073313957076285557777647131772634791748700643768114127163693286695515365154422185833242265858413155364429803265046196427366804996379440887199091538101127493779877779542107689173730698156189933718426540314810450118526044850253027256277340046815753612295256152521147313887967191717965356258060599159220097193653525382699511521552100172969449157701703894432400493938459860164528225630240720664368843620571259138651261993701440660222780273959653129320534266990446191072635993490635118039164644532859380856131817962981168913033654890629800877357676567536144465509441112423946210561978363192171349065649580701438870857176044937980395961778597119545696615192689183716791449130782660866737037642714349022512582087457500859115081227015002291765160251232952925449626076282669348531465608855158906978917362176944680477008126135710306364552325639582948197575870601637313118258517772836683180538035319020320079048049763931368890680754488305090187451512115878596439177449899307962518404427040809815821419420906486805278579687808872517042560443278275981883260153633910906195165863776833250678626731037920314586570566208563843070957253874816215025822498097306006937587050983376342705276458611557991472584490079453148733548230223846979725806310395446543495348844135295566479065687334772784426180808397786546905313977907081688668972291713047583718872264902041781991093051587069500302933051715777828089031836492709842655669160106760713719618278987168862820939037697232206816946620281997312039691848199640000993823910247136463695200271309809151628002051646151978756370055585139834553111111909058470895232526254194949025868127104895122658894605911995470052936297164648863769083598844783453438378694005993694472523858417017895938310514689889922780998229943639138589016103106056217313067641721458424744598440031020510804228513687830686849027568354186220751654510097430960306093277359312954726250179858308207591999915892189924670100489007924540784761826942288968775356854725717762131518946606704651083984398336567563784817993409007135948744969260313891936167899560228441062805589586735597249414666826229810850617648592453425795444377852620419322022110502911983268274746863628130810177201898127141910135119155106165037572598008363376805397515260163750169047926018056759417291617399154250480098793506797510709485289099531292816945353362964282097732271989144885176698318598303747246760769685125280283543975943232390774587150911160586052719468429604256269370372536511658845579121877149859659011856197564607304602392008059591257177725920547839827444589995946573709348490836799456196867899952218284738738233678287296466172630183368135074122420305568688380794416118306242270979676889738139398485497672220771210450910447235187262513515048736929910971093030122397403197620207600152645622278196028855006201427252864391153289230512242124067131583438360696801375132121779651025953159940367777332787251760163639784331101940405146922712515945217659166458223991673323554305232928267873002760185440507279951930268465085667293375001486124086367135844202471733259445874092523651484114549655234514267141144841386635969782144314442330915416545813592411545093856108589882593426505801237175222696059845863003424837141853867414742148330358778031205842267157203978597572181462327183579711991173724685918655362543917569858127260167854811999667468812596951142321769064817668285059341589595446107609750047987151967660040530731807107250268155896099607851942446891173943275763643244603683032335023315172233426405510450129530563181439885903008667375722904847246292023635895562677114237008541132380419313560092984136785939110331482934819192373718342064852795885183221318708886195064076854485578251054422131817377949078275266739963198665697305513525157325362897507295285810384974637238821669847685837050174243764812960689320697680939216039589620260349307937515824164247818670057854172718726335529892163572155396604115828507602369778997130506436894471823596475246414016183087454287485333714246201477836431724027428408400598807178972155777635438830174762531930330673122281321952640217264964227807712224252814108013761675019142949546568394172760818956261394799686383823568829204319500060786831367336353145359493142814315449233577853084132832901288175683911049855674355299570312696247624359053364639284168686495411048405388527622306864135445444980477269699473654411835584480996357776270509373369288133842690072888616859039421468328938393565792266111107411033798843750189760386495268603167168355942676723005892957236601357355060592782013053739242951123075780152803948466651999463795132270616573026161223043285395614147388430647861111127917016550105487757054060191061410001149993588863725006444847109529225290819933721765532551461307874630095382779290005064654365116098400241653926628909029071063365993133624424681785080539707617851968671138851956123969010178782375340231229074430389205267040435843404301484218341437090330208492049342116160509353344159195234100368986930677523723331646378415694008009690453314698015970138347625872425251460333374072912841787429815984371670885494570215947482844699758821707370765839287943111081965096072723042052505553917487411991925023542867735089532068807818982980342370248735114499897242343150706178754896462215866686279308970398113436389942649480945142319197863070371467914117448714249150338612275270182148389840873878290649022359222004694322894890855891953622041833340035641661980141383711544959003127181558128597250049265975374180680621377576837394818778612539467629436596505918667765341905184446063656493835469932376724375913410372666504113952500969716993263502223532578408548503819632638618448705294474339145318924233769114291307610131476532250850586616620721507568702485354779544386213191943272795602794413783951265987285877249510471172584904811582473397354893211763116798458835418724305300927967495149592550678731015031234159045703937779024403465224818631050515632518990475588608403477885913499634827415957235582006788074047096750843350689880122872696103617405027835232756847609278825629196567736950189375119303652041296204626431382682874605267107344237861266732371972481257778486001792626837188820833062885866168967437559629636625549574104153224392568017094598797361078992244522684210928352720269023518777840459678304623762287780284171682214709883559270779513971699042524314886370625637776705087587612786433154672704165507585197125774523730393885409225442188906241114150679857102671164088726570914136288787003868083163688760750444060618474706718833750284709057179334757204586672518066122175041698925224274470013377586381046013437556015954206104983244352915581206243468173422994685831721094662118069225723387001591985349274181908789357617837207631053321230802150088209005622393315143157597752274786093178077266195041676055884226552223864263452466154121281475690258856319654333589666230373017589211539483023334719527861646249126120540776826169954494489040891206017390321589240881934733335549930418360125751344282258937237927140170860658995344373149720895655384422620003350893536310549309293944576134666376871567803715475001006828966032763466115159971121259740407135633006481086476280151049882760670062072752927649838130202853117065220773090991394702439321243675179857222915709171484288033368474475291557790698886700090891333529005678488411193903403279578182961139718002354846614424342860841411867841347772674205303453211189689571586628460845526838994635612210314575217973058132976987234108485529450965648598765177022147142377932138487895148662279190379377600061660764797915450586384674478131563847094398567648706143276662797522686894584798015359441713657965574088760400330424197815670006172270714518510676385570185206252336581904849643773930782508151934407050636307519649379324425070608721949797435782918132249375156017452559616240611690974122367858023050210231962823874910306191275733392673261433072137459202572803878837481161462776665330597898035374838330594521971159316751849724514506429232340295363813347138516188243652157631185946992566554915519116153970796348101679462781851051039566386072541539071254719990957163590921221278415753224843787569346906139523996184817155067696149034355676218530341439618601129200548163065994738884458817790464804376785057877669323002394188955879414797526670812218141320886101639559483769735031755746227376831536118288216398840339550467307420156529295253264873288353908193499245389596443363579859115409034992895823032325447353543254650478154146233572239116075622211045846777674956609623034835983730849117748818377566067131237713812238666364087410229149884915314442539363693649604432524878964072293038806601516253402476977256211654905768964966027623814044715115143137052998238848079647338748240703978223688319750590197783999468094994997853684949101296103046309676352797864469456367760815279743121897840155709744821533839164933921959749555702079546578138781700353681938286976772251460911078511621463262356551224688783283313945187841652698666463785839090207886278080883475566231410043402916747149204566158608946483820813130593119191208582583717305375691609299990767065622161680389355103921250689722219791080319238931297878744644818079108741946217607709065461162304530954585134826845847860674851036474150741631464375454763757574875568805814619051791364693213979070696509770643808721874951408056078649918565249712845313910828910828381610986857462558238804790684893830037447159229592192869083272285238320724888364130815988391541942187411184969137484699807128279864419178183228570360562619046801860332268326122698666364238543562199030646376873091258657668282032336344167456957077183994677287365573642025272015388477405178856616081693749911373575398594293129953851979080762086062352134018197160199828304889944710847026144414908195221636382428024392731682394348653399748860243329912476213551604719813293567757755854401968446919707427772028518919311256816811852778903240442669239555332982052348162005180597848559600313901422053032222415611562724036352722981785658441494551515044112168100590761368145973726379130984371002300715518136579053409654744767590851615588704205019592933315260651423709723434200564083156611780472417496624382542829919088765368039712604961109064258415566803453781426123162858019344972135793797479157806185906611326406262204817938117282084519074612536258364204672556059909687991536027316810395577030539876485478332980115212277834710432714421502132268737439615110157638226346490020135900780787239968895233733410491108559773382984530149288382887736490105561680166992584228992307760726560215455995448521849865452330683424727044599646902464989521489317421734285624056576146494686266663364262226937995807842498171648398212761655551382927100785943690158033871624648430981177092327851927261514633691313210644849307553333657128895125655910327445723956666912274158830623354784052455936144952719842731429884480418086872820025875767406571033990518845526875686781501714358750257417642698593126762060861594790512739339519617109592145621846289035146714827598212405571649194882833686393907522152889538502211237666663825225540450991939325327700149157140062744342606842433468121393487066068883131723998271736909272996950063515717300319737654584567949197541037745301112839317020096302484508499516139039325062845975564906583551283146801781281605741755833852339260583876818584384152765465662989027120217012346752655206435544589881349100450535524528622202092434045396876405808253140103129360647228437292277299347394550898657215735484979664266630461781684351290613878820895798429194397361026698483138792707199446396970693996796654297210908106618206455918952608359879925107536659422822782580581787876746806700188484985608751508082881157671829826406916587821684269257624542222531312495147447984885580073084766620726052699891094502562174796327861273894061490914950356518151314101799983094941195120782076584769446014449876654390094363834610826461998669708824325713415233716834598768385848735245936341040980978768469687074813043930601688654803491359890497188119873639042566120598816174479869645699627341430354432415579753076158891661007615839033319903308036879084259277055407623872803871092401076877870668287359200404834373834853156232745220360460910381688958478121005615156297581260980855830454709821397618757694113808835387526381070732588639382497543546541339264936851510907453889127242634530166751490695104295997830634425816920757360512689757954698765606413083811723801215024174056031482387082607509953940192759740080775801610621298375135413404471362475432076543009711014309375959260999766736111767036979192093753290699409394143253421221038001047967034961242283765468447809441947103928045578499462117792029411559747548037587642549368256901396723599469218231055980140295089298523033420463004159219851710998700507075068663467575477005446022561047711715843011327059377469126652882490546996740633390572182566528927319018322134594188172751309257733693826092493391083764157920363301206085668763718121001040458047251156671365329753440005182046073269326508851095742682904932663970725650243116471712702369087968839935484504971421540943136588730079162373650770120031579774818481951224321695355008456324162739597116539986376168635418470510537179481335711114883343562836726077180937854829573402005668210072218901343612987084372562319174260967270019436091779266370375483636269389286336496474006964603004005389137572490499146903019553459543843337655885403023233064548995057495874141473999611654386674046406561792178056300497875622741259976657281351499692041315081506356833390734265833180548130840601354789678405510652676519333879572045933919946698125079861669331054795330711959280587893709758631417917858931536729442815353931000205506796542172468544138529225071314090008278885714315888313988185710804737145469495564639206189545110808466097373208480994046098127016686747915560212552528229174204623710490474968679261748785640673323642413529886651924028053383301709242208379062315619274253426756221639030866670951114596627616382665444116963102412368901435538169974404356506266074570613904475471443048483566440980118853429018372317429484971359321965076100166011398499095878963744491618834704646659955042428977693963271738267479331369709956541441255663841911662429060352170157470499892621228405516849677043734056736920433933362675479643792491748526112912806930622058058359696835079458307507915161790721200336508495268589707403638155024660077274287208247385109753664295180490754438292820262765035983887255183666566485808428696652780279634713325090530361390707429178200120850009879688715220869584159094817254335011799844996620034355488950269645978648803972111450847040918058345976658165900686079997829964384330123927767348033273802044672411898661553824865520591335052363891128528294030629957210438903927871806352954948682979469563262619605361933939853177221468785353152400109763372190670985854287525279856980695720435545232364240690344988688399170577647066657749419169364489900395178487520164658749391367136701112054115411465398190844734845406718741078177458736182663799394175892848936828373897226000412111139557570541343913678435492008410209608069736698659859573840173772301914198890173789744627910216611140355982175704177150709122438124691854915418907306147394164617383748648777440951965636606805042820438030505356409749605921303824292129275043534888565540283882530323736393625009776400236309966864474598575589628268461783804643286618661082312769517496304229180490107029720402981861878502664314643288580006723785102987230373199312082867199216807182173966877279850589143776548658031660731145934607547867159088545801812108722275383644032454699625008020969460373775308314985908360864881006337370062515533044885074324499388411075229919105861182973844773424859133650663909885589860111734221373149395187861908602269330646119185017449115622954302899497218100468081639133413912079512519776991111394595977572862806745774029476334898195265255097281646639700515646159171389718133706246951743608331753214082006542237728372310281222084915895022320515955552218303538914862629603429485397683708390064421863649164064379206569836512580735049012627447133109159630580143191931372479873078922177015126861153803944385928669472219093177132386438242229335131057009097815484323888157154465548255446105414074743628428757617703224704722184834503877831054798215720797498011939479982367198367402161890726285867478975886409634050086127842130204205048889937568878439792393668873541203398080609105232856057837784145273706483922852159636656095987554729434506994110649517971728582382418957984952618524668466261320699323294798020727552054242326070143769192196585363651507239491501802422236261803689749209866613091199736827059710915464172856743214175357181829759026697217610747508962537835812217466780391487930226411713545581030898692784808364642831035359301691526242574782486188457766757769712204566193571292912021402833955634073700691025598233174891644526440812192815654938632473980945442527939355374637493168720673188383704612586208600272812166117694201106690170876287190900771432990631580532517126144649421872101937293947904370511676677579421643449106471327650586065320381397886256025828321964761901305360568627201808950728956969496604062141490330441747958764019944665600112350426656348262899108541908746769254853016791247153006565512713998004069841409130545366489421739216660531787004628375474254605468500976204786342505694042873659679851129150902615757085731702051942695726005506053884570444828169831326407040430316601522623732620359961344088660399073523053217318596082871050687036202017061302249227768824025635023011611681765938135977747848951797649327549788708640438475597963698726294567379291592642362899756147117995938662338155380824530981732174360838595480960807500923104007698340396748268160276339866757210827394068638930357954925797719134925924634314439519707957911303800019067501586093143661393686203623365768217273044419996567257306036925399563318389075412421856523542952093661890493851076058740704964141448401119894037229898276465262333342012881928153821015531265626861540197758529998269801680865727511838467883384539021493259673489445056956898851789563402437802245798152786888546827130363251618979913492629628920452476200097277935987820110537592549637580505760519979000791052954658717840576100722811896736692867081197553756094738945401987051661539883146285641558354823209362080805111378692237901971490219925422971053145545824112177731348635235272245661848293820397801911861776268240462863990921493118471263537320059181858655011628497425699268498607677508502883805114615866168455874612345745249199858510019463404673031578232163785048869131800889712042440018819892616986328215986607702790842508446268141099636195231171056533303205803971329319530412675238966142169614386455726466415618678929823546951692453187271090139816871683083114140224375477220496242082361527448421933970075839541804448192465006099558114011347296933712326530518288431482415597495087343953763209755671063506025557434508010846777853225254691545389987167699879995563972858635558693816312036557988986569305710263190542818103406566048025802063212477637208403465987043466947997052482302125840961814280564453248634905952387239803660346114723628765425346288964525510250731073033772188454897118593116632672688031963689552851049648936985872859942309702870717155428613232813456031943290987421965624357975051311686475075941302965944047901522518141304142540609628996745726761254021732446319229412001303133046526681044561744465676540602658904681378336784719813440790963103221980607566490887936401475909253541892628163069269312255440754722691157251327874526970080159223235576498703737027911219176216840622517436542682338220084175787566984709544732721068828304191872715836895745138312121808496660009107349093664115124849220317205664328135204079815888660694970024589539754848854294815412671521646206663432994344675243743596224297147051339785971210979394949651969505978155917726455397667700704273642962722288375646001580311741736089803298585638858831872487822308902929186274453889236612771639096530682850938917946073935676004202447904939703808781080639630811819366543107732562864207654672036916172281394912784127867352845303077198316840052729615058870679636643518104461272458403472683350232775123026645603849089474129430030219433569862721530612849778185736957673386807301282993586367244812204026432138184569314777729352694530961955005903569744880792942470615198798981651623025392825183515912167895525714101014622901808889952173488021527335376866856206553318511349622723139327894554192061181617975988579334177123993339780911027093622036885164482770113598918718520241093456407705431961615119535459982409812884983091408378476982050153103975046063201436629701093238958175573947514176442409499107381145323062784156700786298472770046807748587128694062446961498626157947538051041316327919311898567210439740678934664777707440764794216295406277451273505147686627867792722013112164366471603614976185358700633759502680270035738506928964986425878995188376997358040219117462230627252266302882704940877438845981394482796965741652513905377053108582061596185789108524543382272345176394656416903840203628677858723168681554675990000461889811304085469707818509043737246068575368217716559117855221966968263488666489080409920073616881693539006433377413536479125936094816241479721267363896112667467916199558755508292075819312900226718769649574416224363969789905991684394577872784282301324974269662803633080059023367497103849989228864168140886488236030626601374403006238966992874459206571891397601229844543944700097996267178089907868044225913633034989809286926999881198870279391408384012954429967746811686944297852480259456069736965489903733172049166337035594692052429876274778050784793380284742712013399507836680150577341721293229699054135180716232874734873787176374395614744556660084832798667133991762015242296344599881720584362346938890872346456014050911885713046288968097201349327580917655641934693574313348804368153999180775903362086713237193434232540158260940052106137132834885786350881291288611965032734855646881167334506833830632999082774935829697484777364084732374651822669997510794347714223404193172303699993922671205777212184238705277537899784230875851088307072104176622669916540349364688937377831193389560482125061310110602029484211018864387874236005554807668780340333392905938699299775008992084966503794958780169261425222079182198864393066917401152233206785645091772124189190427691472134468283279678675130833614066722663660013382396590849209208866015573254937467140796982847156217885207759266971987692332283992961580578364846548883270401909908509513531860026238224355480222907447586155630457656996602146023345274292953870507301763031815208153440275884785443663954357703067034580543596224053021244164485423399483692315921174938650452905640935491957085712342952664100304809247817232812395024036761553033275289619822981292354266019443818973308539185164940640924122790311440638629879976800650373823041133228069436562947190609972133809301547602178347813838586179738669169308815885883126011105396893153576987784989733763117854233402659472086911229282676791297664974049419118467266429118863711311691621270671148291954237579849861213849128593420276769150194004457994755623520443558987406418545296532301813697095553114901572790341512225998070672760915367719078786823264658954099351359266545791287296596678289117263258358987855694883285842436156275875746595811359037076687387869806195711873657450211546278650836639673202438541970038895464921118941101490444125590789332829828845910285175643026601619824801728131038573760381679610968526684417700458638823776756160296400212947430322634201686442471124434372791808212388948057964905362752577658064921563495245988506203197773503692419127423375011237174229458123449452049572285149939172456983154537593798096508454811842579403419465577404148507316399642099794676254890219614591987352672406486662886895803427250431658534518177213879452822962712411048777055136742894698599675035176115113086778901304512340884729200703262757387133961418043886427737395404500764236846371347900694625410248774988984751762675986698625453712993332545741184473023816021549913978306497623289766495900105286822592367048742021662690663519242309120304047936165467648580609663769719269752314407329025024107087169404875358822680565766056301827243160838194947999148871937367544991415010099331028736309076588855383348443865568682698212827057027531306870043163495408324135893774731793260636826810212772178190208150444907804509923002421142507033427899859985325540696347995872534596757437633916326299898880540381793510707393093708827467558260574350609206765631572296892848265281742550620989941896522298700813096604792563417903338506229874479233697670932530001700453848656101330280354497149817795010508493919849081104771678876857219499266938266363718318043313472298515040401559557067538222496711547964191397325384763579481733422227186400220057187582430668043563400402987117158610207083345814962284706557326795063724101504812810593547868104215558295219061472287549572293573568182023941204076769709116309125533029726741572935362803154244750682742953039068290076583903870856607302057568325210955705680158930920138893789690597767186730521128044069807638064974171527093445267815750932540484691967443747353814721564172141151146854196769583301064299903908492023439022707936624253552584678017933204032144014166580232098054585754178641672439158474949107630374880232315169403775814371224141255108731873021505657610025857864143743253569750319631750703871580010993924987775851762396337215146355991757923719112366625375394896481275551275224966804182676597638321875582521003710845579100763710328735004685167384458271406382577059126218719022511106327517924277164068907701592796697078849237721976170382261024689901147301824330577112659822335126977087952119410518910982309455426597813545330658774118983881913236911345986968726767102595786579759315697335664722297870073203339858727252928149926085638372066205901153489615819480891934247259606221643177102681036201681434344493887171847079727863291329184000531949186459657650836268550031686959108256127860716756031157885083745951575501925876289774781831185033729185951484850867772103291250597408157241280963302695223084387151603501550976955839149437474003931637555431115778124865821524017116984100423886911453090297439418330631786076830980338547149754409277816214384126279443635336962657514213853906443700004218674487696113984732380018426825499430702841254670905363649798387656508254385860929282821678847724779524432408393415010729898593472658876344640360385666392597697839913930436316900223231757571672334950574454079426573654116503940466014773233861995776979808913178066663267325735477527645926253200634321234912788655507853889540432602909411866104767660230669329312059838207435943038334660621339704784663565484899691484130379935581311897608922732261316574652895801315832010613255471388326269112665207201217233399840104877306660835259182592083226129125299477574951030790649832780992914148026060231916557909573280428199079190657294521040289107746850198361807868117036184366631730564728700781701154667637645973911557317713659361211467315299701128371605076844507734137843980998869866525470183851032671364052746132161213172786975701813756118055432045308513032149184177438373762827920142253009782467406647815644443736855523708673006591044148232626193117916366430868141788828278882660633337216009429238460173771127659748171173248929088533007226474602950479444711076223146009892987791280417450901545084720109313317210837852443485029518769605481104658798701990402137890273434222345469769378405987884756709269053827920685494144497413299750971116108764554178410501167414121527142484755141781463554005228604459526269548379286438616793701057973187825566075228123995205819688855945897526775069837831033530609480822356717792413207983493044479130371773143275017843142358310633392914902051903245727011491432628059902998005282526631502656024131031900028931355499446132420370381494272267779457118896353390940715790485870996687471221530659671645827585689461709336292218117904454767629482141182142328718552427286569540428091796240160186245437984720420749105044459654989271005385918367437447046319388077634961074354842034831849219181213802065355035715388056208964728864435796232062722344028118757479989263298050077899885696836777880083386922083763568994154489256471728121244011629842154435397030931726018593299880859271255620212767017320777663762905084119245676381642512803886256914607506118733048593661604613331358809646949815588818342674596944032813471235614516863868305633059929593287073530095224978032511984684868220043828589785053096734950977472509522982641064370728856148270392183642123361051844416094103402232921858046972922359457277195889902054962978642675566142258656730219201603492417149080289733926372095277848623497018625807225646144741111889813282752723576656378492914156107537420666119334140199577997370598380673193986969080782847075460850179542886382384391605791426308553537512574740502641961499867836989532866774277385408479180657126832268582951687839101311560005698214468139885254126646817970572106323310714214079419823495948784268131765577096872823691641479185952078790670698599403711400543081477549886031426551314347128542304993292060081553551028257643851735722764787692174040980344963780935949287876209252303074519980344357540579986033350033016559688617540570426973075662526735540988706743229539353618068928337064554748468587198292001248818813250654538314501770532218441504562957252206040227580587950952006281481356079048528825591838458128282254084501400934532222468035870938774421786587093364319793836042439157957997764329280593827301009957993715517195536310542931509811982617770637826089840245947673768388712835079298733847231007776023227015056977216979658653201822856551699958208092425736877958964145859672546470581315441659257121885474893438761544816585695488833019500050024153070953488923279281328286425419427496447782921908405329353668642466778152796659860899958966201059550877904011903643922238686716879236049800361251137181080829997624178496586939712600854352057763362800116833298758549534098866189268813995137739688740920452356623030899396887462843007449158977896683671899572044299927450016547606885563464945684962908438115795831371674180558183414917952632981165666853487688866103726519298603909287515816187304644868626789947145633024191000549999820559405747381395468066483532745050319131011298092939169224399355315631771292377949462656695455525137369876185016647691420404076755299182477708931589558532957249624867440617205887897112340090048851812899031167450888262293242079361468686409698532213593460692100776540494281954805552552771390303642459997862164195477020655328558160352445195656569116320252068109059966715176541030861881170068862681152102056320632197589633997318589551924360875181706006171710231458604409674621031570486458903996061459159360845537558288741403891745685765241115520217337372806046483157887963046334241319030310509507982241262310768005864424689636922248837209077576446564474135690832905609393456466015617673126671014988095077758524811431928063757905229489479702159798849919800033956865615992762765229985843159858442080282541862596043336706813925740153879954698006791977958194591672997019673811060327492021259833777583251479089723972894027581037276083949398987438417826372183650070991012570445562815569152500561353940020762309212637169351950793677442316115305450050740426780324067912890657204177844061937641716283192405168698066491395293498803620249283285098338114808076711635153960648141840719510313060657422258741377540217274721683803923894455992119693876350393955095780020379574308133867635744412813133132425966463040361989265117031954283079688563592305013947592408279251381484580587482740057036597611914254131631568385246602810963322262599477352480364055534507576862318669910727341478543263890094825442342071587219548200298426661948142520487069615107415874550779036053590055870751800543937779141844993584246641244873729235779959419664324080526119941141866452701896874552434008764350274125261731389505818924013585974811130169759078826232751278350641314324037082230230680406958809180738743405184415333007740890207852084918079439478130850732529291574315299184645506811846440406436374263339700868755340497982484327541137299804565653191131374428301980000557159774809709539177921747748449746280875731219157258038773923526314357448657950016279747563009379626886929628062440866445015405567751598747765661264407455997263166443495939686019837077813904275801856343003029516789768731533520331675780363209592249223629487798502902830762541409287618352166235122602529054792014541578480802381962443542118065312264918848522722359895467062279272788183474541218281906246262359494804167264018281773295127694171493728781102850282771333266265277698345566346426162296965116482156512183774641898814383781448011837817490139558749406296097769373253977896729560370477998363165898479771440367703846824175197277822529107301233043958825433273598085554447037341020800721715618713421701856329019712174171257509408946533724157387574629614988836826211095329954787693478076213968552856920034364501566194679568173486430493111459998348076928765414802001661665909616890409805243952909429384040389378398668320197817517071469237328610976658244445914712585240843862977271770101812881217934105367795373677038683081385148903739984164192126754068252536504568637376842964318728835404760399264325411384467808413506408061118114169767630095331375693832259417794907439501612635240976708207104259071588019145583864495525612178856040949522074369155322168873886824497214751176977187301212606079894043727680908859306562524776277000997193261309556805780918210189717711149181570285678657772367142335979456754198560925047484179308776503802248576905461001654076907344261017389882330827890937751830503497948264936971401764196203706747818128680088150992584148582003471763678782807053458188004563896701284150669155672879939159801628108022356317377293182612802309938305268699377491499689588085867623233165716934186542093488042107218645662716512490847741702321958642176958351855566432526779104353976827129737920206537899291797730653207037513499555171463267492921343392574137448408943573830504593462389578114869729896232712858758339844296265145464847028786990948273576871189164302243060644656346545684208390284199189613689244444171670800070190665078332771409547725033824650753041662618773232829200007325294943364379034650632151294199809415037951205858973920575609739491336897423459065704768028459236650744692524490891158178743868246231391318579169708116257437519007915116797711865283196874901916034170980356867953151230583581464246632714176710010380651720696357198338564873197215226870487214169027681314652495063288888790845922039619543123736148459616602994200860854730270555663667216276352984438263669662704258168157707681648286204697362899698912722300136285508318043572368087726181252068319566809284391697354694539949103902858934127322330278672236916690315899377745588067676802936064527276921222823689817411775360807197726606518991701161026744889280128164112189797325029355336553497541689366396556408163943481170575058387817386846478344708880967032313686301712660998279517063777051604808581703467971039007726015170114348642064273671746811639230098861292008100400230244069900762414499236256293103412566695684631565724559222660155903328577109136226308145326255876351539302108834739012609062296206178754845772332075906613062782085728509817855835193734936130440746685507702171346747050220150805107053047442421415882566213147354519839445298154848554566877131452977387190838898741837497026606666425575087499966677675433603730350286808224492777061856716294974153396045649737979227816831338952789388734672263240921974941263897179167505152334173905130283120791934269580258798452008935360600122820599186088279095562061082149133896618990334046040577781338537717531644575623830335272166605174620627506403825283298847507228536069491996095448586362401123162227934016093697189082728782598950790214889853948698389077493943270953039252660231437658446272863101930967595753561888775650762447849278507590342642333554323603090679174276754806141956623721157483966283592903583232685692528666608253672873627341480180393700361275601302991903201022732994552830885483719950526964178846241484688351895563158197988863231986141910525327300416832050432403388489151092393879338725171037948892394373253855275948790188805972234867194130471872618883419605360605869248196268582628793119570292246681140094555743908772213145123678854502936742239699656027888507445152434666135097066907146168792563768947880920510909083625851973904560637194262742439700151879010082222221745559031550348698043934152100213658983017690212010412002273026006608130711632339889103599566347949680461349476300367029256630154534506857549208642837156445088689956079092044719503805909305697020055819969127368627857129069348857803625298576282516628894309917387098367063941222014809703527439141220365474858294187231040498357359573411862266669174800660303938597596368298839198120833492242320977259658331487474443512890641933204320824571353289700312700229782791103479878334201284946910804913956862346297022425002883316187202550701282400601097777401286687641601827221561781064362844101210527141927132297281639851920251490885040587901675299981409806966846289285392724708096657729997636757582297260011740865199646327399392882815046842743624964274389286673316216898178629859333148988077125647047702941480839220490696321673080602394525217146815029219150482029484668109961439455093177181000041023393713427263089339509615427648925981206957263640932243597030019477685192315513093394985670307001339192724870136230549096824074802842467807311961851374922232999858931863149223951870637186772054443543596914941328790956615416260419251275972969548471839221794966289184924460453942092776163919364358668405065439970019823116129358126218524867688269307112393115522311858282931604954432328884803713076910102210719150410794797877673124233171188422256181546607531722354040262449374154308103406530540367059423128857460329945111818333561806188857401952321369375502286058086512130847027408479116258335009351104304708892316359427638939640500070898142420645861868863429783762250306094867558085883282363233128123777967190378757115295274584937154802302655702847148037753637221072405543369762994095580388844562381039192594975202126102855339276122917399065505174933885774191729482984154088394855343293389002307613056453707387704202766875299606549969963302612545299551793482093162903580706106952999776655968371805734346759789218127712288928660328913292148797401696590136780718493623662263060378664249381320766204863723831541346977835057365944178937700343866214593791697023109918474031818929422932862421508341256135757577787890193352195393747973292195200334123349819306104377331275912756013588601756509858415451742089892227763789386849908152206758066972879768110320998698732631444742633985337508679773043650216001773783977487809541626956357805105736069161849784535298146533024323885293266788280422551713173186485270410505667363069130553921349030274605964567951558824591278669034363122987317809567624822320144862545985520136874209506744887960825431743619016218331321232415431767986585760080034256222459203349517367428944826830232044480975332688049486485991920143191601351079808378452171843373026393394595219531031946386025619705057551476717392315551829050899075071987506085732507886075128603830153064345128069674784146487465727923708686609287514751351768924460655697361409157253070872916498628178960139685864934492946768205304434490553513123101606973050759574983238290774507882277087923644331707364358208315245763635590876237620495923184003910198819783680072405880350584846080772117567723263759118057942370275801521070131687985245443993274443921927166357683893698873805975055736288993722917047789381255615549782056217719954775523095147531759499163414271838210338504351856327762742354154152785441644115924029459285837970969243569109110375183255834825099969004823350088052526857658632089112085739957110909426987063841593673824913590282275450758238769927521263476444135539030997668667519086409050849253242468337026946112928091398259146706731136092125198299204426770141859874749772296772571164708556060180094161316594901093955295344637186420194098676823517729753969389201010052038136795361854183979902294657455169656867682664616264744840732477138751481425489876051682580824858164974343664925983463699515470185095597119225889895801542952779503291126431584968965107202212871946389020156815878125849813214407744022763761047840503505580849193174495766084000359705618631314715024471422267517977964023922064124617740320725126178947015102430527851436973493808992493841216043952625847256601280375556563621252345934085791633646438577546187875283308960878801431373693715656840572546192445370523717965071350952653087409756169703852489555340752282149604594812532762468131495090390970258933719364568019212143514426285806008561216282083410575384873691352675331536952430141363810584068754554467800191365976038358994797817702161871844320826565735951473850046155093342749417336696878774694200406561001495669773718714971968958174195887140069074436236136018078240377165902527593133110118948926813564388704969053363883567384959147200011101590675080974763977524650471329281417917726678958420805413774887681541261509036767329555301852189011812452911758228769861304014871602091043422498743035985615208997322620002142141231297104079460005265390032383791637895729578699706679485770513427471288034759919507870627202636230854392680074532845508496015139081242099282579424364199790556543085213270559499649489473617356226898242385263369054460446205306916623649022562903655113030480703482769543745047732532824120972477392534157952454099421419294595790512567567434055733973383395421225232886400894281053587988179259069884361657407609298870386926294116346277649724506356171710772920028443927679058573181908621794860422076920059140671883708096976938950712652698164210232877524169405997105553444675747322156700542610199863311693354883220939134411242879342851472062033902657205604386187281436365369077500973357328710120076944847280338705832212916205629439455835231512798705743189453901243691546165762318150641443182319763159892571215805161136801891381382117365653840045673960933209927190741634782469657669694474039091586770303692911052907614947026159096239281844887086618161375984249035324049467209584479213866249719647228870377842027828187646365084609745931634345337966917225689486167815410537275191212350869784457306254402133300485414183485201449319406568823770598332885354222967576927348527508535100567135732597483860448978333827897748319870756355623220433568000896257418647561201334903185024254901435085981550407829582031773973345609937615048691902284404450629326033776066627605359239910305514321153381296725492688411424846959816352168293190546476370454159295396008275075412715595564834710381366013489225038136123349089600851291672525224692314331586982501431457367138048722432130520506770739158607269975771053866162352006464852688300401391840286633392822557630463248748204994764792219276765117655717073570388911371932737194078357389564082838765543111866853042764911139763108395718468931610182924663479709084185257588981444982508770292199970745607068371344114483138577019315609986775335951603665796549161241279256370687637395938235269998345270256147280819909020809282185393120846911130111159540272983320969189195994150606949245509002263326335786133847156279672009393147139340980653953105082346276423133731649766538234529131415317348645236191970979538262233339768706664972123082661457360506895184862896633915316201348399544235281002133964404823608364563047012857681944270043182431588951053659036654881519413590252127353407545638401617597432832570405105806444330041416949528900841024695243927938612396603676325499762764205346525168979887336144018271828858380352031927626476408771657681547325340579321975452125943561979222819791367577583558408652197686267248529097234808009596356167781438147376639487832682070668183281948163931690067815219241963680324578154193189420241165023492997186238680944997793974851867220502698660592574676983655870303832730577795933094617254725154969277592905251117741896853719384005507175117542579335803424101826469159613505848935209743678348074421362020670577845211959086648380846901877056535192353735069631350641148283505280176531806131746442916958129181130171436893626003782189866040031848488388314279632050625397423658689697273208699878768140961672596168130087728002270451875276884956856094331120491544577576082493421860850695637568183114397642051125013078134070354052188083399216739125781739791452713916191700231539498325832500721713753810254379722684755246052688343516420278806743435658606732017908909329021866792668069696075631383930419333107512765165846169737556400227909337056215083973899062873425531216900742881392221369056051767134026907127278776602335103172284784215977357266667569587366688466127908145109150159786849078640144563825630793992343094283433835711397200753508645949873446941970529182319974380285593463779300240069362119221290654280384938687760915984113207312875317475713288798619535095618609564237697350444038192727968945503993469829621037930610832495720366179985855801514261098269811892202370053612463751691639159468866702433539426339484759520539283495412804503997009869255601142559793177991057310566757358713201744655796840346986017447873587728447519332897151079762784023435332335796790914785163934722878617035097685645222226346011154702808909088534900169905899520278615617841984523747262078103517364725360846089006171923747990353293602749166193710833635325641996421071697562724547130085334557520587061810495867820837202918741231996398860225212839122657191501482701785012050102934355962437690257038117048215222570293017246950905660333235022934142929244957243134311752434831722729747818555770927630357721125579272063765896719264198332397839979128246717053712955034039594870388305443506250791086573481485384927098382758244852060704136457701233795964119242093982977464206954444594967883047895106945879075353804332009288747734514855122356190412241196099249416322755725959203361840180003966353261653857865520328164558356207646050169463767828160078093875144731440788592919797625767672716486829044201246591611066855558890483554941563935717129054066468138234099834049547974947957929151831526718935048680736774750016109183414385026672734084959562823225661649664172365616062909698013986562088500905954583447131798209548991348072208557252279291551598847805159143180645373934754057439888099252411364095419593413438997714386549354595841304918215427948124842213512082910452644652867695537094917503003799225600525783010213807903674600523742100859673752508833749668251589470306034533714564683757405177476383824594128418019440435717639989830748398522989438297133751987759666394081426072965754203276848958665046271371255752007959637739146691762632012171459086300841777629777555683549270854330345384490458316562173989247572601479586044350298059259646381034888169579373127514993828252527640281570355251355658273703270559132770835079965117802443815370795855356730106882447441023398443881869379825517094948658479356113927646608127309109403284612057241992174998968449046657171472748283675209493027161762244424388297865877239842960619770236873923933087469770537354538454086922643853738640514050176257383558787779447326573943401571378607281888201621138833507802041679202333085109900523496633291703888121733675025144469295391566103636243014425228024953880874792544591578220664033958481785497848154501503439931179074320537206027570534189672274829965133966471271212389778075645054299979186888536339060068085078522407342080228090003505309536584934501337708482564087191141281874644237224061742310928267013826170029297742924722699640005256392311686731598056962502401214453531300821707742722000661267005182482354559778189092507156553370304726551010726299151730780526894046432531267829767975001932075934626017221914277155014445153656942253243236630157103367605202483624874667581055843539514475269642759263229928427453349868959936059649458734636120199101246971342324070110687922043045565481453403865196575384283862828773234013231631623031426513214806589513372173947040167834340350824787796567007976094099316353934090465306189167324606876749447121208533240650988415434989789828209211942072351426243905600648143434050913526190271443521244421314289489067014702966420437008125149663583618340496198652530120043441975972313048460098182794707213225720939694663550148626925235245945445551701243846308422197440671070167559862457940305598446278390523520651717003628965043802379178585794827822756687172170275008003118641378506793336165033448850660686105322961455662312311769816646032787625719847182327971037367955156934714116980356616633983635143813140183822739644398146902959263836141257156345844479839962699970327605497011092091293924351250379796407312488004584006904329438446552987868404946115401343222980282626452133210564790940954359727621641163781619650288163849461484873183328646796391315055827137678274455707020824943511929566549806774440602691175196367241043293981267081887369398933337093974920993508084548041823070723341573648137349187247336926008737894307378122536092353107364469908785228725574503399873155116959980992781673169022686448792585184191434824967682476283404838892189607018415875326902936052480936859746344163289020667407319458355290278240499686529483354521554262495980471988021716967103789132871716103629968878923030554047071018181607518804133595870886374605371126041475734469464378101710613072412174956616907858765110940732717583643897477349097700010131216586322647847055618408611639130193141274527891669359564660289108971395099317872339620479525022727740581661803246609690803274096452697717684404176057223032637475633481275607676139627164031847866965288884908312203520241082642233844953309650746550166375413352727665031719178356947252864210026497481540520498139126773557317937812334442477018023946971664473303968993398173910286468763024650171014622097855440109183854985817040617076402626295364209080154850359930555352319118548322329368032139374261435016186440924087936561076447356868743118610281989049838167520970467033348039799128937991537303929689413961699415596913749467062046197900671638171384193150488559898400962779840555738997458689149538511419809278761259611203812434648263941953572217207432325790741896582897973211743561698831985742992803830973924072850801567363788702468669871418629484361407295967015873651558170903109530813447166855585601317538305970016399546313954630643379848235734064405635300925196276179765573795714287338008883676772558151976627848870556531329996112453191220872747995355047331778245221276661812054997788079242016552182697541481917536152397839045057629464806753816003079942681365748715898115369335732694235289786294272516453607870338678962643700560660079509132979262160851070742573615982093259583798450628594099147740653235502681167204643079484370702789538480472494632042968395651378795294175133957414194147034097389420371316389253583438785072605390706377186530817610632020380817769830704442244326286748778557992809548137495391414747884058090930511584387208644483182985170397869053201037511577472238957616420031346815822156538735879109731719955607082063337686400552008346980220782978627695136817926687633564782730274954003450493639628237237410528950128477248923295546711981317221510186069696615931243432297902931120801657426146308521510485328004199764952235386164398207565937362050276318711233482078562604685506106828287680290974904821658070526537359479410104448964069774349826531587479982401568360816018585061306856156648393556942496721775561114781243119062482547668786831015390495164274763453940465046319570765571406069898591511556864906113165214219155333860037279107777261931757233855248649743992082677407788626886885956485948216345415479680371121241339641071246912397373227425725579214975165154215598665808989902817583592803516507115385971674134961759576037884309141151637157019586614561857277871817184623136017987689269267972498466593672386761396245254110777812701767721621514584059907816820719985310627293022460302991815486654096885173667316394097637261218037320308379436445830794894503924752534986146115883029340355362312207564218436087251363387294209729642025626074818929798720182321559355330132629790080569881460441417508405190424621798410680557300000719171252545249796465989749690590601162627728750426024523095940594658790335222908318462237860410398134577418809958688377818670847989104160824377800812740423008031741703063557801221483290778890202776524577321008771887123294846471181294781384759900651316712258884589574547673933209421142579299083209100962968417225097779356580788766006064714733830633894345747288788745950820399746600662173591602476300539093822478112899315274389543925400426615754249091902615094770498508653519371232142454687955895914457247031712335137211829069885409345107386049791429287801939990650805423504020371121296714396274964231425605610587906129414044882342784756369546234938484669525717657306554441091319888070678483892603751744758724463326857069322766206193342326761095677680343930327280665846251532695153989445827740787169295356537615833572408313673431790703207935621008641557747048001066041366021122850947818867589792198728134010031567442818160433058834006015285540729303570905008892039643468150232721001749710772574166669541513402013758065653811385885129559227442243684758491416970313963503697292375083390700776755972567584732938785306447630467318007965949327138972622079989022865263109009043531609428976888658844347756713126927461970771460859111485823561855731719395256411720553564387684271916541923247082618040343699813075172377727039354975442935958455500981748123569143367380199912294785574073007524688050044773062901159995809772863093533197274515562587358726526840861251101356409593225897841486906851424085961552875739188881734538605274265474678822768797778979408410467684626440384103981562195481506776484186211121421523036071563676646489722446652632118176711418891969403092452949475160693101572180709581284423255789755496879151935584187804997097493001772470129570814022882140302091728685603222407190998401960842127181280545036025438298615952757246604085861912323493170313901686235167835536401407364273430001998937289567272882082715206691078200968180699252860160524654150908642286265712233035989246951275494805721547370639450852607768823638565082529944038595456070068873847477959922646826722673466290723028711281498620311998243364178534477775301372161030439154370261219821948781951543726715776650433894908951904712664862636265882318365561159054120672516364464759554026932588056212437214582225532299011898127686985592587488222704338148853857631157794913812232369633629428596360536940460226141151189801195005461452358874596929078808046976034189868920616255854976992878420489209591593994979031681852064113778749578300531967515886476705113060099372363288673654750093876436341753064042757805696419388016979981070473553110233883428284407341990698751612693179237377876621515338328054838462759205056906474586810338877091772997029891487258429367008306857339362696263211064014223012108464159059466628895477549386582533582190516833416728793985360317878041605851635164985273972935424440747910697095336623221212939721411351989802692366672447481028710729857526184758581957340091982218915654739847344275050681886885139134169425245601583072022684321177636836812223002850589777652630258736863139286969367941829042054994862534116138102815683546130973678038358963834326557515274748734481187840700494887087785960804668074104977694588793942923844758666994416044450993452528245523318103246569320058600511969287426160759091507329513793138598695535747151734782110316965445720174889507251051962019876792001211532829832013274298185609897445234673837529235330560760834435136384114074934583561290877548480200237643469853503969378949470038006022610452639728123605376311164189485835245583838864729215286054038785694401073111889712568342967449807210664811898489199181756747247715703171036247015237802408764277736359997925138964037023622056565526724308622783313896972023930237223275835368447728792766824917030066072889958169101980162444494567244672934812921338331331564601285234571104481919770976285175741464420345772010782833232639842301546542525567962040765204822178315211070158344430385800140407271394457411107214897467722128139675794006747016258848082882495029469655868986211817187572767277532929301210697997772000298517082686416260301144830769348240040876993466925621267992322790099192760200691282137650344012947706834489036699657251837098148759648647155427286986775036047595397245727438271252763762671143042488008127193787603265116409686835945772455178586486692373842011922994974410620258173725939196774074637366554037620256417126335802482067744874064988405577043758459686564728479350093095859992424516388863740830408132087919200730352738937829789453818536669209540784859421322022599876335720933713890912842824015631090195223021356371116428462265405654380911578696418479158893340634999880363915436859615464723255158802072624455274179848794455104056995289751060227118049307239497484227399570743657425479042392066259217080740469344989607439250304511400147767290773633244567387335119818472311965455783387582068170590866410692756313191675896877195460291707987763097207516091976159627798677417564188442175295393326810284018809632563521841787291810048219067244866208780188785871406220114896606428481503886801144213510663482345843912891585152761694069309340997961416725391866133870273526481251171515785651735292093237461976466801281879053456479455590066475971698729381457736814505534047413839939352910808878748512952631592567470239365378252722064596043532878650815719238484979651697656113544736107295125787591981497687589670651398575524690123494074142220874103748456004295551197274090437122623764735629874412708366613175954236259673673648572212971349401183044496900599471793831992389701120848076813687023868277826590581914229553635877965369813716287781875192417566970796515661760750386582152400736842924007371443903178411546881552907753734223075602988240124807727113738263710725426608113524981832054820928497833053749287615865211968520600372536680915474135633255625882416575502220266528304211189141869884637035166857866310546393426336994818391290561154958488731627425872006502560586234966108032261784390309704836312629133704549983556316277670953653842949088974731567357798550665017118974153665083721685603101327574133136706247274729615952904735071711732970403232075547671031504205095274653535534923024359013907390040852584817955715866537800477588744547269045355884230642737572854110335070146766999927454370697872918188682453641818441145461236529392921414771731384839357392302248214484792559886819267560988725535501291474749728168764304964412960443545602570201572037095627788384729282024447714187492439711547178384508201658558056542949799951466638521627667785516557709950530992598809869418265101413238740555926627013042691671796072177541067092084719830780961759785687657843284584855788596329357148687709901379531740521862006203483921409866325310640712586075134508983855042879740339185486561816014139034068727563631323658945101122543254593064736542801473490110409971302925561006197766439402382347516198664770641749122714007712073018584503526402843886790662437188133582217881099679361762705826606368113757475205313452183031238528830363045384723091150885641385915913073664243710129036446087562239932299982316219295205767309301380770431109376036027176287903852351203260881414635135194335020964935876352491179101546691816844248425626361609402505748211680187812387936848549649132800643960327497690847954973615747321280101403989219398337024456722430727743703324585231703586644676540766669026985972599906716151499814047159507206808175796635384900931205627715984128476494928668801784744301186442602252206766458475363446708634242879084667439086110247091017693851121588308478336312963441355115316621893028206192845871896194685167105751935918965951369566281839565777921408314646999901882566277272785803451111507427974866833006718665381266048767977443476224285904887983746385123703610973703358416541271171880507235570163293717135451582268966493425121377435889793501361725262487293910172988569607005424293195193123470605761596860520635856945070741406333462335102391466374502420785186482009622975828437822003200493121504651943115537437472476571568542142749971312194502024269581909406892502634071341905225688355897958681664942970040439800763795840437267066472020794509322346211563695138714332955238142906067271814967948191469150945078088115568314674839841693806319135667672064914237731230279299134734859703547876245942750618203670858193196526059840472642705075773140099327022895557030983578703138707265429759341967175756411284532296382342483620769604531320034395777978340093691753015479382289857074705613195652779572814165643247319018167722528962107773188668553493587648845213149697324625458236771685639211348360016070385651673548881715862640779002601375259974176173493208022326307732732311194158988265684150757953307030100731585962977235406454049104073555068354002045285939831234621974250478158592860643113135109258282830878479574074577565122499533861807153937097651557991069521080530305835572025365696825112343017539089155898827420941272540111088858462389220252248716345559114895621113872629837611496429378719340992818089312845503513511722440246216157440805026848114106746845307183856392133757372764387970763134333546868492737030951690895092002358542603299271241809024532043421217909876620887819757279266805164335946935703301155174822061146957982814657045547702083442030210427431663112026169666935897389633789107349980249653245806438899927198834721577614615074856931815858827408019570671402403199801937643950468543538462861895937172887979806123113243028878192901608614984842921110542720613746397356956740987017985500117948050922657238873400211404571252108355994420214509632124731515223335843000368450467238107167639560294594234439236960206544244857264070560288823697186908725520817568959378054636735646095799538545380218365307489107390928988945142539364645104394095529613884602376496509308532085734337435001565785370586065467396274228555872093783854901559040522297680103738406565815745480697714398960753283220245466822749004784399162663931360780140278854767340753974787525785296690228273862803973490153202145119585077243665477055496474978762836461883320787026301021859395229743966144253179896655211018070719613079376693738160378476083756852534980154662936280979764408308857850654473241001362705318767637674092861594601553001062484270932215465924626966204876242622914782029907515527910484323993878448818940853447902909260609274644852322210588083384727847902791652754655813934066398179967744047838220256281115388194312107259549956066597611886003708705159390729184322600010372189560497030723426420350325706317620984908575546057731371849755731329222769229201381497793405209650253856195172723996819472874855622645309382915614153595214023596299142683979052157566623208831251106637673334799394042621264830384264778748730934143003032320113295948404203851304367085263252847502019246305786427647410295194210208442222282980757273403414451293967510298270429559256254590504333038693397842037574853489879526479136164055760804716804041512092471206350377924979518788281112944964268452946622094052435636992596910275493608843167939242053271897480579842592624887499112240855319006118740957445724726802955023454189298142866747220847808831263243077009781648593947561689940489475456068520765995471850278405966399888075772543666716465215988545075194580469785103362018629356334253085150594673295528238882252607683358610377801040915047603949670186137794960303628019755031293291691311833685167507246181842980323460099727222522679146735377813697367148953728497827300956067055648140250318516690484010340488092700573179567779116230154337297426603851991611863926064341602111629154788594121434790668157046607369672771518885032622149922552444972131696402789649724610458669659286785735532800111871242254350725845685302316704794787387656459484330036136417956469296121906769581636520709307413344090135208808217804457931283816388059477181191361009983452923620599055513898544239037643014130516196863099780372607159054617905173724034173103759757023553371092605088455825096905478066190909588599027785516574702359356566675377558142502490844715604874765230248930094560159090255651369344282844170272985539590221227716698301114626366046416297904145406067999952729198867674231120798743906151151374121488190570907245459066292347332154562940144239477231454527353127836491752808065813283538155482971692636772855634795444740154062466298699420947951564592917186389784699674009142321513516377466246130487235893511599579134272000262427624064869143276640738774892571686884649024183008320637556839266022394772333165592934145593455368526177426022051535986470001627072135941911383271625194955077685106895317180902746567665776593774195336396330838537706868603742692425939685926319151199639771399308669587041334455516687301672378776605218541287069358118632549091884074189668213771771057809539530808061803876733372330193656992442494534829501367250235868383648391776948077012519194854431887375976864562674174969556387619522283147506686162048611433653855596983458084212176544340315610183301691735365881094646172724564222495613769017059532276212953001178606565923540956167123764884387108869538766982577368558305680207166626964557542587854170944235207199019926887656675616446051522947383872162336619263191698624138938418768218201869587410305376408654590457997538019288723838609312628763193962067123605607600993591464065285781455046324297774952094914365808032525205816681707722812021163235649451936404689252931841131028435146325956770477127478856309588269388896184366797061701651022321766263507183742871206912366968687556395148716094821404355678684546912311626428531140624041454798585402863200898965235277151320662005441100271810775827885889886675605939728354180386362543375804813577652298626383351581149172055347679393178495696776972638934977368489992167984920270959647150786047644122927096548587936480163947398593213266804884680921368165897819619703320843258411698580292620004474316006351486819052342131151149769298999992150645372555750534194453538903262402779792488597858156645085103332420818712722939635219767064338496459785736384527434683067393104673895651635698397222778610014192434200465464162844998804185862318274495805427729657213559637205542539341873389225693026982175368708720046943396124925607134830796266678052000254279410784986175555656858565056218386943818812979195560435398816363138595074622908299022335530335571653150650306901062136250369543659933373255473370289096481656671868305523678224986131992109914766366726834958207480312068511053943058964952838608232791606218533670228903354422882338631066009962223480726254580728781229406617954828330014001419785476170046394902949180366504544255465593478328148999737043869874085176870551725756753124594490607985732433133384185464334498188715651017490131120274351853172731689857127015699081023950653945788161039949629243466085432037654307661246999310909942652160248609511514293997464460068453004172482126018119154994259536552957887905641138854108221400065511749891032744400524191285191477271116927172897566299220043601560065270562786518823114790799022183181998086907624520918093239482181871579815143152620648016437583130923198077427217747041845033857050953251508527206370653430951525896578415154713203415773888746673292539692135341448842421446471803361179432522602798834268892526126419964773706166717811996670277172803448406695967397574078533274698739628132127840265880364506901487456757494090519119949562229954552710904462463165043983822086335182963029668261151813267361123981947995621016933279246022427264175718367713650936248006843624838426914237832727091521126575219689998319405289032296677963206706307944069982602036665013617072978353010884111544848778008613119541528691030439405303165895608901489523309351086361496672317336309098925184672587729019659521097575509547343880343069270148717762370254367197662045793724636412439507230884040526434286588795105760197308438085982931870955500509005528537076544782630592272713489041180916442086333632820464898237631559401923080746155685172714006205767111527185034638866518983534707698100935533103858971378586700602393593316794499928627504393185089795873264829688273769865592378026415993326069218642853358245758334770571402026910569430168658326278544120733854872567065235194880593882565417808653992321732479031979022840959302731797848667575624083000108111375486317790978760856633511424548086763063744807367588130479564258321884928598347015732488213326707915362875340682150890886402431925681220961512350402262776742842909290216625494678464458467015717197177205278711802108751634279142862494844270446125057079859394791655652678316137171666868059159064967563590477992964997112058941880343992476307324487209308144896648114789122973318280714115802288968185634713053044104751114409740147690517518598917545522572080784630085135427831684220837710815237301651517737460932200603354776340066206559672043123171058690117282631698182591366331937697938627041378614870816111623797449177498659314758726957411157699216051868816346117955750700791399576781048329185786384537534633392354616242009777583108521688382550364573250801122416384057385588458359605447025491627867917316380743203295781127657855865694758644052838688277837986774125335482985996984734703346122210835102717855193213719987871940058248321498500430774555281815310610368860123737580063941388327083195938626698606051392581494137041722296970774719010630354002372972456910955847745813624393307621287414232036904369442155824185909042120642601918632321351966051922431134005896594153990968017379986202006487182059450056141578235492367998896319696579182312377705156859301467725465577014995850118105026498203643884426378488137044943567114955882848935527415143092962486158638326740912369045192530870843218255810973899605838860180507154589180362555478507916273650026728473811651824993884364610560155653325120024394117291992790616431401999703817076837187296720533457102972096673674422087122930775095566092577420598716291478036925349137404820629868313786060804684667116738131828473593944165769482730297698167165970461264215713538868920370316015879234373600890147667404405209026109434064143564926770753908714986647337169290903618340783746388095757132040374438981494385147188285637920725923340623049625433668216474442498245650526751153368763138795388086830910509405835420118018163895681008705101575559573736194226593810986309249061499847046126462170157648568904356938720269783361631659582656677382769189487871039939594202339300051855520047542549849077042787913808014302987478648779873696907162046537145744474616733272813346477909602310128050282383800680277288402258047467050376974161786207390707566113503901131543723688532254794430736650972459090613322182724732473014506906046574460747760731263325956844058049976075970303884865076307160698533302469444860888605362975523933529308650953058135614049191715685485587507392083592885704368574041800200740355112425791916692668759492932035619899314940053484420564383376278694449782240764352080264817312104869460381961725728572688343356909054258277992936012154958702960623561172853938321946388942715936157722414505468293724425158628755556842400859397944521454173984066528622187760915181859202421035539031453005117458088176005133947758073336078776099756382127842483758885469615630044950281952605500183119505004572755274972342366457964687133670700961734660995656695698086343968827206317299464614640634073998702000376851064409210769463605703786480817077902417815675423656750626141191569112897564565832485215076865049189762523795223518418881378779936603424182984669939136811739144686060525568530518127104308689912441750237724652042025944858993076891658258545247847591627144923775170697395097371935327907322948929385490824354598004621212047075727655741940021638830641978519901643438824732717113238363774267610124761774278399663889416259432280321958231951955390103360314620148626702894976683026593416042548662792902481701363375445441093294277905595424617213951115117703547686148430351893628708929476963816092813632918303084193242300327391448967151188210177239967874601535107592362732970933572092946794311257305477006700883509801907605707629450027481402453118008519883430371998766747665305457521708156673625558947123585605293906072767307701312447079388273289137139513462566611901545395817346524888887302264158171578989281362486779525391101389056616903095621037028778514911685562985932925578696986084943465269584757695385522394717563692225710538551634336468625498034066913068973331470018732023033215782463992420533496100650544501683116025131277087158223124046376801153853810166333045228626795216430680469164039650877117992015677398094212371421176908456360888707852882029516210017280249955453942574169522327343882766341078872727501359301459389503100242787172076747931647737634924689738525300848806233927826469954720447261909872560964779061055905098813070841205162044788840904133474089550575171045518407847551536733512242404813026043559436380948840125140662969890339122157793372437223331866032358398109690691833670102199732334933938083622712728825494935571296992441408716892556633865136412142560513615859383426212933918335279336449692371258095547183443374270042536858438691887184772366695428342789972341263473937356748404923983356770359414041452426090305598390385973839948088351259790780772302170732080305036056231835414941859179616752558202870778538625548654901513692542893354146961892044205993638918404414668750723197120903883125589913565168301838467992304003653686088114603984185423036839403508370025522100133158236086266370147060090300516234995007392908134148983709543839944591208111706837629360941062497686062670179776592510443068988094864384699298506282463702546617739416976028350157425220519239758091624049426513914268961280122354148630101719430061344084009247167003455945965500280158896527311572343535580296447370848181752740379624559299984674300877170207877489985390065502360437070234083122520855986098554919199697646735918662347829762404226869179725240265316080787800225611289078981236199792994651195129169636113825437796592044966804846305853115642441633825791235111843220526136441000487090897697034201525522342103339269571508780087331824619755067520443657557228814636328100521272228892750882762448186410240923030594447219211469951600399941039937031852418640644636165998661253381654141807958960802957702272638917765422889470835024528873816178526538998184199183187808588699351680010539895766469084867936022829709302241149315522581305457306946078296623372861010983495556499041170998666714674250585695183820206086083274572809389919455609237993140165043253010401378820680335331560831476593698798214756630798328649322500462724833648638765290060763376124129956611919030678093135376977539001941324559133895625916723472694583624224027465130813643029786790745489038095321908617068387742793310866432522582103658845289446145540859859110999189970938648804848894570760400115414847792242766160104395238092934292063010007928570935897569789445157243062238869291650148268066126054038633653230078729866877456284616598608364313181436992418353750518576609016876655894259225769037973578335881864044829766870225542048644621412961481038596482466207354599424615270146552540514566114488822698818807163287955624446783093825934713171943094973770300526869335687763131185646242400270005189526884726405522194955536986268308219939328818960290592261367542254523669466138954696249405716791113488307667667489881652422070831186254583387164400460887895047947286836802388630034669492126854404997508999462282219675500150437864133287124786170480553957449106077710329530978005463582195951360856676159205638498381517333467307332896146657563330161487951748391006585673001486988018798238321313405119182670079636605531973063519843329463440282889907475122299247361975947102271652392419065401336050573247170892956072186960242910738438124996846308342534651649674406773646281189023643309484525951395930698720583399679377988335878420604067742904676232122125815472045340493804872455017779954508928793089313687170523798583465934849542735717998242784215173091241085863102205683835746650092042851529725052073127782591255682104078796535828437168561643053816597911363137442787922838997080441686077894511295621582757653100595159990801066158218692335449529244980850981164852882739751958421621274629257665474903248138555869376378869015224048609135871608197152499439200312029381739222693618569284335576801897132713458424988004221950058877327205660394322385800668086510523904419239597029166627047756422205993971613545893641878117426967966593125361921817126365290473366767267751926818320688169913675662454617569829228949641328272325638906090391602639202857858470911659789945896273215770130251905490384174824960526222805089067930887433380979394946373814784511487589890980169799953435286976715290593408530545186354265270525681478652282533698462981026307957675900438360158068431264087313577866264315516719538179638326983771063784377374882967137348403128971524283568491062362548208428828457738445466081395684256035525806662466030478922227084416244948801872248818286513575269981368833929734131996540287376421266288503889351427955351826538580682695848294600152649324967731851530732648848544308740638513352914733029376847682056326546738498238459469083277420194878984095644414678179327393395581140478575450910693861582854759219344914968125890946439452976213184255395026502142500789031492505657809413640383432931779969367679958381944572870780212462283308642836780973063943143233391654915128065011825100598241778282937253278192356018574188310498578679734503117748741739301407666704789428128857106183738389726765380166989544680354625775114202220943882959296407752276326000899541628558877131583697049901400693496071064207153203980318910642833617859511672687249906639931815225526527683525634999963053726854650564487819179271385482957788912835379694136130903075166069087214607576902340230137579692007075317887465889390190194431437057595804977753231629692726523431151903478251232108142873102027665577106007503649021788900421507342096561445103424453457136817321519302656086559154513525792264054715972887881880669172670431317463333823759476054588508390635308927703303334610599007145965992589018885334946772567871732600224621413547914173994796283986861204333769763365288874795356720590032335531329408110638183340270010197095557604219278829695748391251821298827853074507241437389973578312858625126548625221000237223463619174329304343856136850871004362630489692756931996308884876038247743414959289575106787124363112145122011276938253614109907388284326679667251546804380264855169204063949097465883079618034435737145693318668322526689773583231967944740005753891528968365589088421028866526270413087184789912830189710761895051883589962281432900239418584095513782781944187173968238004135113286553906025463549893577389980888637917937792259472797007121180389398913499026799781855176776832394064401693106678664107093025005444632442945694885526846015425555676038507651437088636661390970840825720631541385657344729181717900434377463494876858790580685300476543200495999241247648000872710386498310405857834067184187212250988567029030344108001632558493696521410086004920299728987431125738644650990873344952015825021509613232873595830384119092790985192315100600000024067016645898144706317792343013777122134479791058324909129366660115344073712203293380219365931618130635980572995895843084870508464838371852772404081833997797310378709219945093823047855576158441042969527155489392509141949579053482084866193784657557936354108947225910305086646455011394595322132610192713810874400102422927376442221148023831752645376426882362206874675030688136622822315008710327634600770498259992598108971989328364541136792256815157487123063079009223106512830491716972519534857466825802114616658823552776828743672692980291030492513022069670434208019618484595992847571501614821371686775817390432275510415707574440725382162091785664783923330751533874044369056959744681320815682419595852223719428933883919861712432229938512647177008948457338190991093805754250338960526089379456930554200225982076716704927380212366250239316614626128395126185878477684657421008581460740940887693527374705110968328702564709664771402544061290100245975972824636531750379881457030722582042815909631222685081857873140407008000740660023061042354375426162511620762414990119481968598642191558782136272079536583566220992772738912509279898983476755141506435029769345763030708356876993744139474869555495235895844256318681719531170036103619219375846144458030526982081932573548094692506020885569459615947082609156166119869815328577173649395005016496126216422086827617149483966023052973475554201195149164845907291425612991166101506573859421648074037339328864977031609141605749508124201607949517429550402494233513540018026137173356127805657746105122082712902736111022836192403005618647886940092196219654492826050743408867274223858716939299933804969574584764148601632022956691408719130213041129172506382776987475105601751869176935784675574775003982118266375799221826043967528057122466924026273589402731919519813363807446017555390065549685282591075875109876712280495868510745679261233133525957353076610558361390351417006018000927773123636778154051038723108259435607165131995435466674003563179615955427028553078731047554126502495704658584900078161299065044462332824984981227606505643239810081228710595121329137615907654638662746910826255346208014899362728614378741316730040730451433275779255599912114654246553252191535033075037612642737232995270969274909330722096118147237903129625915715826001825731664891893952887532690911110383733186533113281259731250274855002513774059611591539211928889330989733886754544523056514138323434388384430910836701653523851689107604378056908043824807667203334339863086107692666878513328659004953828623638809489172529580486962868392816441795463268928164373415577552469991554672572774244780986016122554232396651993871105154212322928637448019121701174704104299608238350839069141104144476744579317069920657504835244936000239957644375343953392066262543832808357887142022119790766918553913959585892870621129223905659069360485751586913834130265118200822112344648654817126114652792484132098304676021224771758122798873686982064651078958606493542204412836750114276291775516643767153113386090080580134390556583153246039331253154607451969535474537915412359571207574086328394784922000912361941682518337350867545277773626828858535181763833685959101104358802398773068203443496437802890321587698186803950788357584177719542624060414635296079617163543863486177083722706125632696207606453368142228636164275372964309451251310103505998875012403443655105028893282546501592067699554061809355054502505673930213527929330699462100144435556855900823417928631355217273266064588850007925215597065273511326962668957530990482131544647402915104822661190715651017901603989342870708877064598964497768067358863500087141406817186754955961926793369287820548804716836179026057604194194004972970693511350834645991757157099942210763923331523165665081461231671760623693413174892099238407112291294507914997557689316369026497180381800971575422800733523915681128332223627803455714529748531739895848581391072062340737564840628354005777516909970001170935865683340414385928103676344492823456569979971500656234322777141190514529913244608997614437624492981204957110993029255167526717694035420946058622202933516996054240728383454612117950749790743879237834094381485134446819893918651690654164396143699385689392586709326879648653455357922832331689956624797614180053057645316148309788641608700985864368176765931334662718112422822125331247685616356042910013445563447139996730476438582270391443835550159276093901907160856904388035201795357291870194992929901545002697427941606528850550167767608948638687677240565571270465998063361743121726190622622820425393887856698474573361263192377437671446254786460184034687592325883513898779199270886094542600176392944201876136629902837700577951819822804929126711837844119457531501954399662372168687914524380263068174692433128895544468160913244053722236854504113793605506010980710872392887984795452076114808281907244089205696696878852572322538471114762885198699973884914782240495872070596633688596635364314713457931878925724634408174871351297626873901280790884430574182964374423333364211489422799449374163163433064122684017431250608007470807201718770606960775586558383208162199590503303489573181938936950698496727580890357603184739124788249828486447806728287755511595632058781852843071718569703307444827028679733505545213679600160825314614445139079649748948197791760514274781503857596245847600284138531992666384146290716709255572638710450076493953996379351932206872904629372305916894741697728277368265386035151171320046334225700513230173013426592136751397497174557345041184510420397401275844670153066122739996823161854712236511679874968479684563865100692514661666153716642328363443752718134888304341023815664708478028634356063612857251031672974769956396950412711769651534560746051816267506794644634736598490548900234731450156168411799067596851695184820676999195727121826352661860490994807540786160189858937426709028441120153782726805975981383517273796979173484555491795069802949952707298435817498038266368879000761772888981605271531248482345951143756028285378558750561128747154079367862882510284956521247372684767299116082247536302245766226262117915061239807738571002869144092681438765309070896539490592819639140524085382955975243207067763273375247923460589947520781647591818911459397673686461916076486100061343835275689257561120676057008657794900499998990823981958743411908496066765408313940454721363471168217471900763958365136092800955627292657625586105006327209341142324715744495354292293849592770380176436569360291077524477233376257735690444775159926104566043704362649019145483823278761522388249512639759600416189277469740807078320069532095203910067096676444940918571813723389297930962106527131292447917347808444449969610105937442804951456913880967499871672285715141015529696235672130301116112021282424963542979069197897222261227713089459190084375677091398813215767338888737623795511715162655322911356267726399448399751016320433935790272622689306497857338077701302308493827903775893745646855078974830033519815991770644508562408974477410380386808829091010352442137115549953093402111630550355416387515383216313414746211626185657315417538595536475092133323932268091289808931332862086438369079708495543196376132889393983693840127400673488878330427471989677606923829220391593664395331468299243355631983139927601238735219487064931502726433195788501439195808381223448907850998409531631428318281458186726877296199108174265254532200340189537961393278286420691901265307623117661606416548105164793576389148274424134078183761112164175508871632762646617184296639585232767988821779867683791622995075659406100026359885035752597074408431844490303684903228630603465540335456047745770454799656997943018331050353091785468104506730229958848088079436639906105620348471042176181390604055254782553792014457060555477805502936780259231274618486566137854703897562771768216936175641564464570608221919222977182369201144899079111059211847957153864494391889850218013661964509901394679615583592271593482166976923275644433323110787902486439677610416601597587946455816827175866456103775678526518054935853627143173948461805370808195762168005751924012390808768824656923763143009255936375911410418943800827375185484632792449761890791001574172956475170201562422808701692423692331264595223138332547238227936227196761452038548566467860269242450714738851890526576710551749529525371427377323441911638770489873878991595773738702309905679869346777196750221759526993296389666393219275051442467347320583950338704827575796521522267631590330339016445532470532106300389238059340850304079234122490364259804102257978281706794498930707144239743758964701456026754170660627314753346181872862088414295017448180923886619126200788988577040778229944406938244316422565136967566321386416798559920866671648933508411370940783865578638658897679531368699641926993124851555353352794557089490323153507272236772925814962120975031255135140787664616286151285200003574468750358819697373214832563274520497236749932990850218453090769805305866641384877859971200334893698253270643451001114500928206272198274391954877726490042526948146736287349806003316633157028799999643976287957673660311902122596731287254873906623355980407567175759255247645795891345235833497382929625365476500731657869886756438635946947911665730284340339007698095291897854672300584723774839724472079280310190351217703261914216828700363385317898118527838095133949319321623386173288768963751112119704837076112848851027492901633497839086652262662414282747875101794580712154166957669915453504678122163234275401204011778174376812472690651732894641167720420283969862292023765573491404086839290021587266338854779699731048563043756163314733319859961623801714861079722947404518811070740303426050205802380923772211419222087454281543998336983351082627745311390404488048112689192851589911111908297662227528860064910769363669234558895783456439569863848234552735334751418817015166599575110550849340121481740130314469270257417878502702460159079086657657082454276887959542648051521262262382344364470297048217427586028058367153639326038441548845310676232727869021261317558809766484281247467505091826493671935494401222470750147094764422884584117580673653354312391192565969302062348193644757789268036452816144137264493151752319868107687396805604032657779086801824189806363623551659956621962703854579111503037139160233096540104394088304715981823138295080959626200342475744854208623173727618845435927541551744506097127398476060121873258042782296904907956323783958600425377226005205800072058070407647549482849386882379918787608395981381763454677521336450439102361997887041653978552487184380375273817010001323085006796701350468256614776457975866992161962526142707691603113419577400152593019673327318067315884149275715071794218932168435576700547972427933746799351610154499507956625689662919169440751602956813013111664964181588755792685436932405036549283473327117561271158379852410031979767189397908264494473481380214485251550760246933760496400767015461441549029062123757932091129440756936406824044388389866202722679669211189998488695033516494457658713464002707321198196017510144517134785802773299661250447183038562490458383436809412802227407679054602665195315766439681885536537107383935136944826390745733124532254813428293647776586222608003149603305980606865389563941025847294331945405170190651758357988464133866223634155843802810997181128021413056197992700528836063860052503557890531375689199547034567550169514755114226301349901633281752700752838836080194933901910937648321273546587367619939010074013796070469026930382950553028297079012599351008942243188803752791714483790763239620126924809861285496942420451627751219550382048886881677692354835732406422130889360658804525399533228029828297818049876494925342513506859715717745061892662737079900523292195533161052344794307128165141102625768479714683818779829056671223410593657296757216926447109977152569555049953247475145855401237985829050209262558122448091454291417364645695203670918043855388106284597385171824914910376871465379500255789551732381029459916013679997316480268238496914819061929587332463899632093268938360577991922090092827186613742262705998011455194120343999123070758375187092549693213936674172862476165382374931350108720546049762101888975351951441525158755471596921056126459600001607709856461055232673772251710478568618161154401513550381180672510928432432493632301205617396882167106864598540466967660395113736331307320745011732794028438102232185587168591716781635471008736627551703286167994149296487228250003580709291625937846774913644003615715630108521681235778979528976793095522089042757202962218047938676348618930202871320969203583339829889253613931346783476488514583355388803146888545117963212189069673120661433322992116686851717130285751269454903328494702377528772145151515621485224691404780268608789248032410496095673335712974577778270763725382957180692071680772477493209197244094080920009267390272846728061099828964045714452876798242316270695605981955876188067774722078111242364823085401588628002867341655515326498453175386362764496550169870617608147756130702032340539617496664674173380386644909578850952618416210930595983117706602406419054884070098953995135059513563185693994373309883366323172171644560831004278600793640037047433830464415141672656668978955466185996678001324746014535236713386739637346408785909953611638893683319256299656165291258851102477116969674412038620969717274897755487743899546336909997357642339036238093134156476876336159865439276537151002580753704982597069298947394759498804945988649659561816563609247246093932507842481351133105912925019297047266756467227886275307450369447973470591989304790311183601659099485882829778821203528091047973220290351003014616660155063664009865727147028933598330110364701858973761228798396225389163999877548347510733726791769279497633435241910383093064001635119784336680231070455457050350971825382628790026923942527489331794412076642422042048716951925067092225360904876572048400166634111398417872669003448788573481482535973844577186853196916277183354929130899695352309403837917241324832253974904785048873780784897218039986670178143440653478506381055868828753422924527307481682444127154562331053329683168157440446104065972446142001849154757479136878889713764265173887755671837531462052808554818539281790634068060886121819840063963144841210193790563286787491441847208227063337205362183038042664350850657907523459717883284917332484874921832632449791118160086216893948890361510677104962953470160368429114137701278447162125242362022486511505726829980192771789950940302024005040684989030471846865208293860008698567591306508486098470016576099080483791698423398860534915009633235277864723872728157020842787078729692359856842257870147309270582354186975413996728313908533087703405477478929124454364770983909013757963778054142486070877443158636783577334210533240305552736108551277870305992716133337808182006874254957897169225897446800412836075359366976268372151869864226400714757495816578850197997327693913218710366300971021066415470919074615760702907911082506224268050504747118268414485931992873535569217624966386946729972802488337317612959277647841632989583253396362942954515656367139863901880216100573909892156042257635567616584163094975113433684504971836050322468722375763247560886607608407611880395517704891361499885537959478229844071869169480376735958387601973207317334667299896441851462076383144481877122750110554725558446783390387347100014441666932869054561888510931084035436558641683709806237856511532552244703354932078171851970261185672489630684691410741616307730530021719681160164672563936035383535989369737069293784890218914555699258691278760785637227151049049168097586474236755718413610899475430064417081279879334664045854814789178480581901103861409366695574988251758241639970370841725773032770280336429420329663477592989372281989957750221544183146210339709446529834142763750272403810303011526173233029988563159760590409252932976342986817428640631815827127185151517544932214502390538330700079735850763979115241055289076973962867078669256985459738389972230475645500897209018594484807735593360498444586718486800310073398237965931819362071253691096182141780635486672288968741698350103379492876163771484094567815829490506782896015261323462743184650741464998026441866127969475340596428009602035462510508011840146711752691304002049589982058512221087444693722415997777886916330413017880697786318090718517170526691805903158546328266717284624829714501297205801646521794085668202606946776613760783541984826463397940597540772104050661065172463556197052199365961949308395774073942314934865456189667307228828703800654636665419400160898187546199281190618107512446145393984342465772022609736819944568295158001239275870013781366678443084999118831423591339469949423177023170570729496835763077776143624105004886089070524153684741988934183705386639576927255189422347605580831734503383843198401504201847757702217395313396850747185765515733860097706151281984299308338545531851353383422314601301852746686630979588843354417819153998205463914669486077928764024528258140886682706452971519876853943259067539067369468776097644868486369573438023443132224461774524210549746610101945535394510958587884476879172520371133283903620771624909176236436991882608665552246042786764712878627706292200347571464366390832656649412758848477624443796981033317960565823407556896195299701904637682960399046563327521625311861111257030434744331107363294989511742916182566307510219422989844756887232598595188233087294407114216126585425507470251465969229549602778248369459784996203988873003114780516524604509896734523798751134000065032657923095682733228954752099615867876321705814703690291082713168641384401273938037856474327583506910634821147366688120118989046714839783615720973871764761108681224022732436500657101866336314095124982710713197813700221580304104085512055932672088833388674455234737274193461509580088407715751446467809627565299342247904244999289964336446660696144812851237238817506977488727207504176330754021353371223300802548182426088742443382039273411114870602110933337025668078578523029880154604956364359205689392740027573407533558710357463021384174788673274252357737841863423193252632608264931302188318136049583449629319478602450270727430356953781218413601443154938144892131477938993937316320658630167039816722559493511062888849205222291933202055846527069411382110178648890077765052379166592768594067535057874599172871914222982291713895602760564899669172189715819697781120455813785082932957252487295692462856886234890700628069690927313394987405981313958458328220944302387247026871753225978706780114728873048703525877036442204982773987076963101825103611389770157428289117586661593990895969051019240130996299234740632921108690939006224417106540541550949812792737756358660700955726946996170107807852695891231644110223379954715250707606815799316297060770017428704213127729316072500967077210110927934194106751851629004156810554499872271996923073116909619511332269074668384271239063362372231203591081097053029656638801604276870639601928253637232295046847861509470771191786621649217256808539434382152811346110429150252175036099176235070672108322112719393988357308762034241211368125283474139105997430111399365782173859483639767815310580930574017232342278785519234445479333284795109947218691640104094424738435741176959480858621343447980966925175420678311698095144500034740276806983516571074826424716681247915782988842778994045075516359015512369127675064890016927634582767931050434473278238506506231500218774783148037962197887077609307378888971471011088513611074638848487884868493217165244795363739622546528491711492162500158770432370140520082836255643330955262146993031068729500673863727059046339384356786089006596160180526367817666852583277444731318456261154709840444824701882817115948347740599748954034278440054729191822482437042870703621192434911032139501880366327158279489288228880353869406587711527889961895509325902970549094058490260366787658873966398562701820916885422578939871974236606065169716283834895634780425815654972613505559216651289677744497309818467982900046865329197033346061595313935647469530447418187580236833099403660965214912162294359075668553127021174388415509922101209838617139043450172950452350593903949105384991116163601133699776077598152318639698907145975856315062523156950812734117294119375342507533951514183613258982322766018472222847933639376232072690821273016208562091168584306865682543739043728628748185055010203139887125199648712478730933533640301971777805046215810899005454598987665932098036523563475275810112071635710925740642737980804699768201444174250467235062917914641347517775131577762113951761891974966429880840639022090387673794706575258147581734518914249607733643944555467388777446204037092907399786371532834307511083091265344405801809020317317867020135671581918536589680757152964488785766289890227874678116880736726017152030961174037739967774891346801142701447909406117631887105751218280984017173015924459044322959939950173630565942316427382774062906227044195098608215561825852303703509210749839063641879289706523457314894725921478779923484462456237579677751533282538081383195082056197946511474508064484712781738529052866583082806200827693987504503369978401159782826318346035385042839069468248837960940736175536280870106620024229743790708862720505867470166224405473149716071719766729846691551807261232181615488506525895455372918199524058737163760118998236438250339028260396280148978472363392639939348677424285254632607232396982327641995763337003347469992335602134190550619125726201037528726738691760581660804973363534443243339362584124097188845117930235570037838407302001233944869941087847330581868282789584573751802734768896004236103625145182979186035883488472569248263185171279877795287137479744476556426985312975636217909402925254589353611735795387928019996904581582310721670739305302756677361576556474121724545755513540840632616676690513638946889012797505238690808432054817134161579987583463258714013007887569014968080022425633967141075668703829153911704056651197093602588826893013375408592796910232245684131117822078484483637019504154596856495353531824479222372787348249371902176568479654160861024150759683415119135075556618325049563832781792219048472465437868736808442195172253572880354198809120668568320960722608117314208264119682120294623556802490109408574634904720302671741825182351797189796479114736894439712024527533684494283508499254852755826991644398961845774798472906167809808715740946248173197965817137678089117078156300684948297122439132839296780437815096284017048759653535617849570830229772962823911554074907653956632625687087871827897588159849736179143165907771421221027583830095469600062652609122540177948020690660944528087216157959349382346556191201177718870395845913110547573866391868281875653728014647801720029252350328223054483754919791673996422526527505045580809215505296107817143890903916301666358188460688060305303316987320211257451661663693147432064035139350909764872249597318431892378635799204408079692425937720771076501336732007079327527259061006963346981460367271533034422016388466774308738877154748466807214534665064837904418316906735860818173320434646620548420658884209650456259753726984126370071581268638950549857737490842362484950509549416644499915954024231085770512157884975269214133366408458931253076312887633893597469396392883099309681530552605463193050497229151777713298326951973494115603994692382616045816793622074909713174760957342035989276028068725206720903873579530165711467931177598124278551363774385493468534866676177507664184699394091328757860609654946538562186130695056297658902845703468596906348774928222515567070856479285021888935437605446453233166928090273274221081991316693807164982560889882772619757528114554792946754625195500953119054325080647726020313253436277173407879060309655807406335704731068951041207014609440095426011618928196360049237598817396726174252963729757278495568202210630588042709368956468744870858528660068241417434070793080495748396392878100389184785542771917463579981947991574468362738088556298689760830548602007277559921960435643753211933402167363670547017019953150076796936102836977504477159292303487951136046591836943035335306802381306838299500207738414856444734535303844786017573492429766538470238177322750477948252869192022043755323841437410087959124606634308701264902497692920206576247355350977102487029663208132537479210627776920387657185269089568658763082487336036407881864691820703306468500675315272113767138387513853759474615909387943072186110985997020144305998052026372404094790173909934469147933929036737610284736348450987756978576712820250291302026374924025228340110678489871927064556612443692224476974447883411023444493405356861080734799392860088154337549686688736480605970661953150895941676872638752054471814059831170317706674901743809622039377876913203320072291310138325904174664650762500657616014835112012439060714645138891002849439075012141267702260646494868911091094337083448577979063952762862188506848583365777064740129071769022019478580200163411752925664987209210317933655822576264885640170828661874398551959898924206966089490217755602044433116163169783766024381117966552552660028221213246015716243824476706155454130069943245834571547504800487989590523829019822563418995298510174593592569169836495233523117498545069476757507459366929979856682947380921230499539453449603620602928402077539115145216465933646716672445469860504311795870366696542873468594819142871533948331785012060569826135211746481189930034716854834113779251322824448405240542224693021689666291892214612292565907339247293594445287265660256641746690396467832470479336566252054586996951677633379687431963179958997956798152010081948068528100927100976499299065877455526445411882509271190705490667865987464799622692999976726258258938135669021595366380462587184907137069936033673410170169798985439448427974123017320182397427902731579753595666423187502442592348057818701367394405549789079830117050883749701885118908239961283084296467367346691534906506531561002903381799127608363086899891212387063784129593916945324837388407232527675805077951107798037834351163213578981470677612101755095233005198086728867475696306669095718755667909447734941614493277716322856861059663354895165718417965583352806094326152005539501189457678587208698998146515349328598919358018976704420835419221633785872737085485534921013706029771885625943021263617586248017188350927233738210816714890919908022440853272920681318515952205636808258522092609931073940104020578668919051727690609303210387649386644398099044509897168944409897462128481866303231247957085074059279282673042999696468436104747861594213498362676618762550093027914303411565661049578965987113350100186685247726397012959918369843535131748190617939848241933645126663191233759515101226736860340240333274418009111715669970363830273157894605893149143191651825209670667884152218104166328909407943620431377040494827529866274482533835673980195666237858679478119074870186500495099175476920813622669964271989718628539920774412033618773121230312373528771268682434230278991680408921362084952437607097723935302405526696342783436915645098704518855769435081265767703817639232748636204810717244552917546938058172079274237788184059768821621854865838398828812942745002055719703490898411546612654858026217674282528000119562365817079872339790678453802936603487934822001403127820224067934465858219358132981418595795715427710052834060023088272618229224234793785963939146656682992967896559826600321203424115641607084806792303495550331182022039827773445559506909031515896931310579809370303361555665291630332726397697240799890756998042948761557231580685871527932427679848208292619862985460417228016504793328302102188742047533719022902206487916000587943748071627843233923093430217657491456203161323292457152863514569009018474611871307020576018752330593310424117434039469872121379631035010852479875353396404441397954096249732525081916152781012225683714953305932562532512253018833252696854594217706007407683006657393921350156896339893370223606862960991524093115885117606156221209497283306801556970350852203194815878871811316576301245701117208181435986624147799372753226535957091414259512925017809435665142121279330051381939608982062130781008502512213750640260296371307834726244015558486232660002203615013458864048179074478302884900068427731983121748595153607242864831340405516193698212570024408784008989915658604507092774625544544895812387245969865775377487133615150081636072441673685197119621478682284010590102494885139248007868129456528297034107429997307557287637253184929346423825801813536860031663031265928326610683888497336698982893730831579037533096654887106952708590994544500769340329750517138470461071388136991162718445100511103707024154085520464746526236798119370123220434691521829329667737522599571234348872341717088657795683311022181372650837340778765238553260669234097444798844357444574947225288548688903927336128871891030582847119688752709836142800647052561564438189204910297652316811278623352252753116402710380782611012530675089979866705432013532651348628840893737944493284899129251480670198629703862732138072214882570781224659939245105150413726699390437879632301107101147206996768749851978171114773853688130802647702670408247750065780171743149750605280091949131053560745721327312786105370586140414085244734498219941512734622467972216963101118539669583434153571971290353261886647479164758190851013909175589498426200461154911910999972163264541107766186225575225942134743476349413354957831431361579218938761957742713640930226622155256325720579610774714324081206783026267578625490212217681269524079992229040407976933721570298347210644021034200209225079693553441300930841464886180798597018929880884525522155135255534744682128603213936478818395936275130492561253931591995395547362184444940241040127544633054616951364296292750022128974017539084203443571903793344249678069170415589460777555574676217354551400784162909640389930582533810272086670664358121982899751592388870662313674282018062484780281350147838803335906921054543936630314373705057096686379353871107369029767306743748950549100738067901810597997405965125488219837220770993208483499907014037900086595541816858332055992355140309363932952294934388133312849614341752561124895588188617551215288324948985714749208949517669259146107095140399438342967432939279724650208029856887318590844651280052065506118368649600550958263886600142295767369409272159347776097232776243735653965749102637232166090962206377634107483928492634814859035983019483220569472923306089530175833438689613541111750852248332230586466788856975303883344077492087756552000619524483661806225282182735490102428433065249942617655989204178470285047509016410704910447124309954957291060045444811427227510691829795559652886041721087579128179456712193614147855051396019077755210542674197932381279522510010491701181941787062185706400401946415389092833151354877012458776936135398474899272420995738750691175342286907882872847140308518754598223705107593162977990685530293636734157252777929123339461875838048896614614130743418177131336667298750216372182171071054214371259983519589014424878494048638070542809447559970283160971966818099400774837342494049064336653011552640905778348415081919475725160848321401390700824324097412914273729277993470648250666251053032532111961947602165226390604891533509131677408154957189842917140902328421951215687752911251461889004140273647576087328016278865378092264837256499755052179234808302567623445778402331075785957178936198374990426572805006697999777453205982849144122296773568570080506706176403105406578610298764465704061352265738455937576216443172136560300897680627724563803159912521689535161719414924376998367311556960844660423839056242515496359065357557492149645216947229695979957759930449096578934379982144883734635636644928088393681231518170709115932511077808403824672744818960656798564541054768133387897434362709542249885777823310191890200649477779956434727427313375133880132196485293400539803642620531228331578202236995849445701609637116217742663275351984491719466377096023779257891280010088391780907594700346436914269788602217798136553888719198676499735276631224240318852252798237536583151568878489903741570960787689328139787567912716644579714611124225031671850808440755177403545542277266913317208528060078090799762434581790944278076322495276908657880425446871894044176692776465955212231584414484306605033553120466139375998598719723015648589886197991464297010580597494218156104417903868551597241244477054336500802170092638602444039450901891561030897827948815247868895756199104938911702228165836740233510318727092351445677851185856092171469391146148522112553869180123392920447856914314218168275974458058824538882963284354931481442963106685701164459635825476557371585413382164243052345730600504172809582604039443642351246343093840440713880179434158862971510367648897359470955342483107991431588042320432389092859337593402912247990954224537815322032571215271654225448460448306778323746404409187689239541539014275403992885746987797682273711954300563174046023196412224332011782503929169832268628181142977966167393847190201975846581512675104927359360618684623852860849610167537348213989289320521881906974012104339914398732147622327255312508731261521112865978548688279063661941058800812094466756526987114430043903067254010337069462671608354889692929878727072741881384698670945251271265637628297822195728048667387238775993633646427023994552367744466501252774473742417393383381909962219567992823869951338882925280483011586858334840062723697972691877998723428273043208165036479162678347310650526505005166018769417628919197694210497549191935522558611627950753222162754653379862563603129056613810440240309177700044911100767731134146574681375844320152113524080780572070802611658666429546616201176593408946839208647036571321593557220181102196304573801186681185813920374467662622510761669862265516577560739180450979110770000247607703557051554972465032949486200040897905265682965967447895199348049205577634806612564329655980945105164265452826925949917456890593998967835760607952531745878681439309289674061802779977437112166807516682794577479345620497528023550226268217435659888060857895441264928413936772779016472830188085930782198251271047635235693298946740686112550471311021835333122467753133444674489182224160942039237377284756635849128479612665418685789962001418023853656283476569389922347795085092628164019762597800290495603932767636126478149018202897296485507817104997569138600166003038343902335460720362910858889301124655340479962096177214896702132154044456649856495668561112983640041774903889718758679230319637653606628839955536783268937331537541929932787646300395980141214346148359877365225242630418336189661737005925535638115962843023925485437359680063209321210526053191775757052399905042841522807799530990058326055304991100192967096503330699151220065071645100251434939800389590959613296987914816086455500533749559784102070771520930526024615696819200216591610815534874711114081248584800433004106691714429498263434788418592276403437831321515988994321325416631554601540926835860833664512042334301547989658661264783037775175281487114264649319589992046862946901615291270909276465931690528452627577226001730425916503291017843447243350894862290061964478156748066848830312731097455070388987826341528204452626737495839655247480102423889422979472925808739851221250889887028415899599041763325127112392626803964615196786985447796305450270957522392229824104978722611022730538456948255120947536867134069178273872321198497972403290602008881104896457688907140562248963095592010444537378259685786681296764813581069812765442453251950828176686067010874862618336126846995116387703066053126935178252860870028771017504721241365959320363021418535847643847975101898554636340331292951438551233968558890972935462903881727170513083509168405259258441614569274658171158615022368478991007701113106419605291076183909203647613623952292875464889015212653344919131900506896736532931387647123545450357306959397580521792209300484785115808499168869855230777669804367076074816385764589650051785044151076877286353367120258351267971070022618622746722222706645782021338792255732385141888263841085355827422908153069314692783561598096760252924470134040951961446984587028659445800393690907307836643567571439700551637166576448613121644390321040864494400423807809464850883385236299185739916765675186537127743470874692291228241577670584359051090168479315575625555787414680116167025185779690948502493423919772778308806333015638873086924988033448356076077822841611757792734300896596090692776390019407372330643282014904389395239700537584810406574375254526464277277739268876741259275808035098932156578582625795198883576903066806373192596557764272792449351487714158707389061944254763437177451342998834589602110603920852230698872672410450812377426200672897786690364439834344059416167704748250379443509916854392097906113468953263123006772816099993449208711264248987263135705072894100652763774322855240593757711468792969249332752286301658353567757528201209121367162886934835622631426080853701473531491617047825889564142512228310155116306218753765795972718020450692216168955276302791382012384180358279842277195600309775340919224459214977045547283566902129346118671065621748164613673120623648276998680040279201095322304396941129189503940143983830835356077712117959509318199338150706217357278655469052588882098539726572782277514953568366190401153870649545700587890270030996293668249562015702193189825569079580720253916277541290411712601466704784177753014251532416774786651455352331439450908008649405512724135431389100191053673924890067482690426865354630432437475292752292704218292090127209493915911530689614984931473707643090977050042275454892602795797783564591964006731908313844727661136143294320461133543703739549050623672824149778383288564680776396045238934897657113196520068486345851138237288887285258323459591689445271528895895143452126010864179917927098861080793835282672229152849885751216199928066114901777962846405751728833573701331069397316006209122971785834748205255927916319678383998994788926760138021236457309889830020701993806551169538197353972599413379504254924090519042436000174618479675779775014622119285321551945277070152149442436943847701335125660036715300764847370034601099873391887003095863847744825486702720763754126092531300891819676707893166637249783320540365326128974702191076007304447462408418271611365609683907681359782951119469238519965758827860444444434140708111251022378854293883270326643630054610277787636003697318864499682524867345687234091468958683168694466094754217388800770538732290063609855318794614996575261366754873269602604654246039543275974841486634791427137781157070278351754604244633716195872365232777058508597616404039106216582917732504115809152057567615314149943870353598846416912122737596540138467886067721106748373206380925236041865337782847905231500105008729316030844925416611597625065703862701082095076804030492933801911402346889084887982993091029948817160074473781168034265333809580809838976483837024165509728656747496754409654466300273420477390308543475324196764651118495532826215737464194947149522706772693016817959454058681442447922343900679223485655475355778481946544683759046415674035645697471659877948180236044952825492755519014996423771405752272678698458402888736234880799315210484552957391198695873653685491181967381821890806036066506278071758033153398917036381916837834668211178942155415401420987428032040290610430642822212416864831346275222598966829762570199435708034476746415672561669589321590830555617600330557847785511925378053177495200076637754798359250591365725717007138749827546936234818461916324288069653561870304357446364156769223668223711934382123551562630958131190770687145428287160768983391097056126360785607752321745537136945657378787558550745664317431484908521774765328674867141696561381681053624620820710180871823966833178469927016978183856823368214747202475545666088311383231709646102619640071960434969529186610822838222572735708114799793360462451371862615394519201781102870145191806210148293606258104237451869035472526678607121909376174374582312664827541920840150933831026011695460453007075959942662039036461256344225389309686921163361210848299240961469569494600553481281826319263771122723418617159600982816308187899993377244421334196839585132912479169820481669175223392053027071367364466850527870386069566338453944573686182895004293784700935056942609079631241215948244880302885576680513834934637682194629976637604993268596217504651568820178836286297355315768685918408475590110007260532261155562626607288143133851763312177156068319020489703125047986193116670677093410081975826160631783300328631277659969278793974234552272218151016626234454831304163062414861520350065877979804804381068446634386503629878396974529144972097092109802142377570540892996528830149197597782022428601130823260877577268444079712285756049258201514113352149058189983957957365867757796888408639784635466531315265149795045366474624731425225545467332107062782033555501902630228412154140625047847046659078899215912023034149733651474362753362682742495873297390267944605304943120209304010802344855633263979590619120457884464530165463653624773223797994080130432231359187976686246233835598350715531740668868287149022021481947521390076980542732284396959134779617760160223085040522722252595668879317235128476569603900006534537503806913919516146822323335767048852015486476150968620857409494840050817334265515844557819575626234212886195602999294605655050784476267946106840068447901692387318602509434053119140814585178694628740097675202415541895219748580894158946325877664266861896795524158256807577159393918737471067921113194256132963836803416208445387174507882133228447037532421121905171300045412987045613418288184334277707766349261879219090214946477395324421995858182967526598790722915051756141049608872353018455391238551415599227691622640519515056375642840396980946043387222534479312342655725355641444435548183386828123062201750637952675547437919135421967546353600542855415520590328940646916568989440131733156942881410296817554638125669228151881352556111967113268217333404131572767670156334188528044380417174563252332556647933400682905675957177192797840100065970345271111072444284268835553141831159169167612824410968289525913892125490401600731129044977455337063288958207262910216326958688776957216906802209503874968399497602298148577953886594219488436238169376437527587633039289037055761848147336228355179619416625523180186154955272669961642072726180045620719820108412692396938180778011731116935806676189051300976246498941723865231900269841010846375121468857872383163984190821913109925250243451857976526787818855772350548040111045012272868479347610386531315648559698087517097523357723807247897157749458624160479638812973443977878596672874336442927088912736182904921405369721080931489572149121689921348030062115167619840689395582887161545740651086972712224686992540457952138026880877770881671245063335727176757331982212485313424441830879169420261000369679082351860784082858996583117576334471117176182346340527900084289598260966016342941893480861727241997943219839478296123239382760350895830897270676991656787647936551983635513931428579959148863907015809376477078620578655595237224142764944679092499364028130154009602490043703492197154899345254854580169526440765402925631549080304772187767389333858881476254170078244116245852079069126601830133896195431997623046302337012034298857058359435449583397923410045159631085645351241480035133509758000662849498886491818512921409360435252208267868409797409260224881439976766140615885472853363986968968851752533579108924143090649071986745547550761786847095152090478850643039707514215783406864546629514459955877713857402600234930849723643793859944977714146082428546508592941992357447792708049284738970697307895017277675612709757724356417718897430458575000438119154724775697026187194576393298743219505855275619434574500612669532503742236005953219878678726630800591206759096631891788489330250824506992873890459150034483940238712027655892114149764014933017460901150957571913775766123640970311122140568717174663161525413507364999857770340497917908209692639318087121535936801623476153623525153325507182643433418193086655473573130942794214288195547520483344973740501917215324792782501046341769257054198301553398497790962331364499667209334994046645431211813714969475627853459056136753820993422655958912051342231269154393022099119089089839500630472380505135686440260673448818077233217186964901754891016014291187273191541510489382631886229705568955253884309646610113428224404900447347199618604021293790644233385517689552473396458925260066150725935095732891597866028644230148636614360582215728718322472732391891416894828653562963575431472746986128907904993099739319642702111793767566900622291314806123796123792365442554521453705906833551138238687886078039941543735026594840269342485975590065116693153791074586390720825474959590648631451921495378349261554144031184427647268979135864473826069085845659246517348575321298094238499651660397943159167831113137547126946241275800391381194287976378934742075983745050147092542536866366854567443901842571076186686131147820089384204534539068188908173197021268150382026324694023616723392352999916576791658005414049741800176261622583219343602337977324823500204191103411229342423210454439509877925771534927201318460578173957860292736597118365504002435124701572887099980586492644503315113485819215145055580015771010256915209286974550441972177252091534743630814763537276744967324312788907051058264278344264882877682061484899305762345373585797770234260957351765184554388330763660798223839989581902603569592767015313971011293565454642850215536056713359085970288904920085493621026603141808991040925649116464073160326519594465654959808638825159703254438661593970956789388945915103228489865711759937144732954825963692477671446487716653940928673802040680025960716127932970140844621804742665233017884470347735513948622543385702815228285475656582387736939224726339091529739508637168478268211421876682796840645706872016716874578996916413163674572133614093358891669896285982867891485092403868848395651580709056703253455429254802091863164112583748472456112469229589567781612510217934034030460330616861303263438598822383678301402872144583035387807493254529814476841648243697036688211180986918591618198631564806573239403662690558540340729025542801338511108291821572829160494787133688673982479031018287092475689724486897367952466999323805832687312464782412419622230476893887901050433295498214671344896489448905690919249523281390844486943293883127543138383407963220709474624120050487048981947787946055384664488461794136238878562335489244306817212849323045555318451419283632896027171090584795689465591740575055115681874633053022375156663588034312908470798876578224796981405738897962565790824816298342192292511117420698847854463814598952548391946540570588915310676823527146639618392884924971378845743885261366355482976313895515116704783877108577784865974039995665934228358900006520656031500464497377216534819804137614384995129982268736832730424190258495119602060085533731448262183715710940339324333702921049332246894886997307143558333487823565901053661046067346596570476088894379035204727366951585438544286847402301218692925757115668956160340630819847114573087687748123623757497862750793731144938062822267258256808090836039409927300591797925746251936363530593985825505143040952927441266821937948278132994828722683580110612591859215909324398795863167358344558956735924695870025343926150195653753412646475509555237703766229290886409777156843931497336802521253934224197927199059920535721603634965204312217598207739519441039666240605249059245308364498954209412141748419765854683962601436081181361090601909248930041121032421783122728261762108607035862503322874971014371364360440494449256107351052625941456413762864223356251488394896488573106854700990499140202193461795215726530160407115652010138120661858610380773526027565629786382613573454503452082672449948034450356230429870831247904091538290683711220785027792798364366127246983623470237020037804708063136611805433840588841521142544298170511950293893807504014729927295458372062029850487191274738115895034000299074082562802806562289489678811445650303542501518704194588223376693628176930925761879842300431695879663478838441572254500764007741609016183812271169789044772238778741135594827191227567089867514836209823580025109524047936307445715443013284029880272374212729211574101725048412634788864151947482292196773673598644014473406753592841883793913541852253647702256115927692348742643075019700149119984418281489640388943578899016637634513778740118737901383497976049637000329540386492014857256950544006689118467445494888862446159461372905677167707002521050205504750474516136905243864857083170897664128580128198416192546963898191194846673917807444680638065927896386225422479214682845572215135872643475302270124592179797934267883974335407530861716792770336158869936936208036468260216949608883688426751629087557059073304753772256419919069202735198935243880566982393643670675500311518783183008773860972009674047794211630922198131548858998187414197244438606170122541133377165265907847354874847810812816576542210497327687615753784461101274047521185443878439685948637600094890991340368943144406281306864987486081455661442362938203637088829775646921186911237727862551640912201815784753070826691466049825520182414943405630644026582876852396627977002103890031104565784246721504303784201000121333634210966019195272246377214749849979224527448261995767542466396571405013806518786735442915672798287136940030930859574159992910159378475987070553091929943825225120883641348304242027433795268604016273089262082007146034241450685825744454429967992275899855203139812319328802459196444069758642599409271366440461316562414638967020177370694780893259010937468382043172786579704582384880270308229453280538747991629947017236973116568376203253887874524034523032621852320207250481498913345803426121666054668524930011049792671768768777699769270728986780681675566649355098782450940832500198206786555156550163905515974597524599142717696130559731257567464252757493730825216201204180400797605536094846397389395227263216215596099166473508435185968448516345769020715418403006684293078487895514833264682779802558039704245131217885155622662819401342160267740093704101191585027162195101388198525244479892893739121256830180172695047965738051901704436472896471285569953700660425786691073791394465202837878625161872824577279074865038191789062116909137224242864180598274659434237798920895106344983785984305040402780757892039440688877685374006217723827991550986876940208952853683362094247060924948388027336270895261251107704463800507438038805813093133299288093286976367569572118490063860745987199835039706103758352011509929162156604716071862891164469243515679308055415176109329687201914562612689801921962546235659939265461394190325861648476970670503578606192431876940547281777861848316551328926161061870663926717225220135544086261909485567880831369458333028792832187931749863232735899441852933646918695888708140988404725494120579361876925740898846134303287035381853833369346380335388150113441131666687804928355864471930807167239446661652056386962162982582869909235770430873747897786071254304621209923030368519763805754461156022624211525305940047770694945908892947976418724426135095729107394827840535534965368963447186830628262348173503491748813150707248357521353897396589147107987307114128112049473176529321055756852240026776954699038203645731702312595341167574398098756000299077812123251071011675628932886764035015632616019858616474267457415082291067071244509879274325467203637760179045788403494752484593236517649696803107740584577313557518198643601216495428928507747594248798235423209381756271136387096072126513971617452322813231952060195058942996279426398404751984150119302500338518288053911244363666843210324204839685349992553368305625685754393555637631996023305420107605548134887031484831420127351260306943461804102820982516266885291617089527901952416747501135599752170190776164197766203667518078341968109044129683906588633361442666961908662147494543679899440945404497923277469154062519394313204552393161868470247197966256491112107999630551560181358902674478900041065138191563586537322647581756988784024679960941421065486430737297200380788516721717079755074685031678229390583572554030473343300083647673708498309619772445752591537019556389356275500509743127184324136372687642026008340105551119037075492588426812848412014122791610101336110637455270729661159802510974533579647234466844456852073413244866115888305288050356014323661018002699054216820151046127348241555181755484997758048036740615101759997951890639287738555600817497466305036972535643953550365121387738012243332298085694326459253145038315804027492611878047978881710612646560280472357594975849699612562144218302563071138224084682003803665258702133462526645285653457458092258975681010962884861803733720385750498292282634493513761769549463558708723248546722884302608473695736399976155241918565330364051820839274358441560432368857795618504864314553231981589100008279007521669749413708697053170500285035766958064052840622101243898772492840989604045619228975658900695536922783989894535330345874658276357734465212445624711264164723794895682233045702071435896151372914460319807108106895973336192711215297284250350490196120206411414803469015381605321951757721967416534531484612582186529017535464736333173710316534692473882501063022408357709139898032210004432502574669597353982573881747807871097543530245166828198499751525582873977118192613462488105644414804181298357854868120246957789245760344031639672470741110740228610904872341795263840452126834898503146276667928014623483191851720936337764662921392208796991757691535428340905082086886542963551941923578843286412497884813790828329667765898011277593216595690233717506874091409767077754591602902341913355315341878052423891804907673183325825031673223489090953280319610534407297691535991750865135735768288152142848409403796378835745555096855424162866416466195224641016386496062240594867408049553584047932578007592422672469831072584363899590585974651018481568963913281327672960914079232903386535346672875536808407338133814122954088041097082259940605014488268897659498085315276794667144749179200172643713977664414293580102550159033666955359998129976203573414696881028851002143031804569686045119024822033127898544602091720525064496311533788942046349908650498430409447029637763588362204976207870541933791180969185801864618535112733879818076962349551650482262638442127339064205216642189906926984751243871134622460207941813780032047614138103158836356285637410719281049669167134116292581070175299958140601445843906761973724076753783127492071461821167193561009851570782212934907518293353723425154867460904091391865840869680252489321807583347610776643100668102469321129910938558811970960523405961492099050808462003769073038086942925838997734475395503890286362452955796283400050286061965409917379585051206323744886667523273697989499578451277538963157915510348104825254016704678322104017537479105871782401944018127555227827118893423809669027165521055599158341658543225734076698040380767351426385605235364068293356425162312412175866709399548064377628664900608076261770168019246689579044072124433239195027245557563797400000751739295087085451789839153665114197693456841019154363322987714649854967994293421641887795944990407285674221606654697304207448219567725568550220818146919545584131609951814958180721187783562573504189404016652513173836116958754676451141007041617432825798325702761090005677667039607201818391172781390146734403308236609968390088562310254809862412188327262344273132490183582872682429856768130235764223400817002339729204093246347597679418879581622100680020987524445251057124795954132770640828096105303530271090382551145884680637788733064919930775567548568525655786949251317017615765062887705673793291912372629313511027474686691054180533319644986935555173133872631258880195479207737753818299851223934196227476440831630363400699000471213193668249716563465178518080751971096598339790590862931410343163583874369275820899292730690393988895070662667126837839181642897386701432098089491571406307170683309230456216233925708343228072892023763807447839876748142411338988440613775804524863733255820872211097393044695807764902540527340863377895976706399757127127359326233093905142289598597632030503872175017559255308170032381440989698631202263638611927180385527658173974643297363374583962546981966671577927312079046303057884657942534420230006424174027167121799215339189889427434988327516529822914787586308154836048130079159696403806701223890335393581018819830288690401586405924189770502825744015622801297810552859391359170354722157049944165259872468272595008179950506845747453279818533224466615152674501386742115084344281514647282782432767064958907873543443155371390518602669574370359480871414468035744563638295023636058692471172483823986003408050876426781381204074350003641775536818786854042256808813418457185843093255794982720886993826652016126352411031840927416307052671687070216745133062845348092327089281918051847014927837964591620486760617412831777120450354343311046213944934474782135229547448567208997508956084783321664591314267183792499289386092773467380674758146489766029784001948396073542547838862831551792269375276159744746082517921776810578590455683869809713473469574939739517776974916178357272156638984770453464294366520779992709292907664652373725970344642369056156244035482055390678843951699896375395139674502983938496306322821177750080981398547201605994626820001408924915431850812055716378089402713733069118305659092350286000176305930314351209805127387245920438493278276936154839101809277175611715973648871234798352877568533384989313239281038000585984532292745390687283886085806794408937048043865216079579559410538995560707975033756464770766683364860280086254324058800956775502163104888419226243431871064418440695307130218120224252183589528162379556736878635152961601098794308677163983372509413491494226799270399321915726398329648305092979680622638246708360192404299986092018615909064812071074309011902064838423089743234523487842979022138155540621213121913415628752532930169005428761450575586991267718007213975410920135316579445005585258194474732221737783665222741581352535960041756682367649836071949281106101696182569763584873756291356609394357433352580274134242273267218842002031166928953832601175170868646292217925981385432230859112107218657930248168656324626563541547099513730371992688572524820924333577532840988796957553121894281008097049194128663231763019078689084546727962747702698449581291083614792132323786809110206244461612676070813049840398066507730349922865105018043633049363909117975605196819680765246001586326923462857115457349543776043984660708770270192176409304270538288129522421589655264917771127560422895170956124131086843161748421170882415264182191808193577482446636186766104855326512403053239682985912708360710837257373802579280162952662734076888944717854203032057886654303652648725304358243265296385439836636096573341941091523805451238103785867812722277159547870210538910752550891213548979804644687409239094936585559534051478234729773676270054545279193208106348496691007463697441044083942096079411316743079129805909571045127499790736010799932417434205566313121537667595308557102705999884606434744295998646089787724493153186693500849473768752928943440608483209783386034210575275487705549934689033523775589022052414448883396839333206371652668742501025783683792202859763869854563409338104587946309370581313493237194915831234981983506586592477849107052945503456021870177998957607872620388827071326424808409231245927425292474703082709057330057550797834916437853259781146787985612151321247552295043505001815671900441308905144689452680408972728993096121045487203064934302417863072111132105801162387999083128608425626388436122255748667150317117582440231750313840129320060164658100995643056158807098219275546151020998490790283509500411821561083858106895311316890355582088138081708560088442510209875067993463968750303853871725015592599702595674471461508747064354131951831747703146653016382241914071605383579186346839076395988829243315861732590657654104760814439155998934466307919325261049936661483339210700600858902188804172258746963477203305162497606041176231590529872109689316941909737748909766849244185026930812009217129692353994237492985863294657360992978587041735801580375346330600169835363893555129547338043293739039870436656350624274106175211563797834710681095511484387366585958173027857299885537816239204891891238168505112302779172718777771571143718007642472736746615078624028771868753149382689761342937733043479699701465875644411460700903116436730943260375871552230181672811330877302486968070947127980759856608948010224494470933690009375458499517125693143137861856341227988176874977913273046089605986828038940042357444685284510967210475776087729365361887409812395430731094064407919028871737613830852564525130343582226532288541189730546702281527322180517419144344983769575345279965104952856066478681355359912019381586036572595972320322525418346761411268132219435261568291803832930885780879536453537409032538200490223994865807230115533834947699460624625601306119507497624235862567306379804147220003054813225967966683966366837754506369625030899900271647633742161281407265869094545492563379922185285493362173646830728887446093804411273435892441530352490666113446342736556520796271688731063388727932097640234313020524068444266846894778386420061736915342983860833182624122943164457804758661581400727689684562443489960630763432014015636811113119974063766892370249743909068838922316308961781287529424603101183093371269510451630783193727019909306453413758125014227133513919650408830788815399448007163775910382325097853523982612179832255056034332532699519832615932617878507415054470800462077149383926180974932146160354198982794388331354225663351902071331947295128003106848116892246164094403006121640351311941811316436773206245916754404763227321790791614961526384559083418910484759572995061860691880393752246186547889340845210406930887567222092737232344421671979272399372428206391255307345126274750284352222567836669506000890699900408232150820391531560037064665288077198091450180052730872989189681371881464621409207943613078029656327867369045167924808072416532372979198816253157917837637061493241567758410660876528295440191484909458568511960663735108206680960627374272322321114379793185848136194284625519373063931328147882042726444189623721372295229466932669461573454949668743312535511389608297164513776158624753289196696044821730918523440528235255265709881778570479845796550258980748277275733127682094359994333252424130350482920150715663610371085569323764595460682429867237949226191949218868567349258581643741746052943358597150340113308831681120406734719187915765685612289745483638342299417529365399105621508739127022784410852379460250993357122483024172632351081782947947924269512806913177474789380367873356906713468417978006789946504014282345643866441608193733079169302663442130182361957807219423371688052240675807020848626548477548770058513771687901943614168511657826242079743279937261966833164347959487401618478731687307209658451308706718332848325788173566632600737961561315956682790299238934097157938977218878184894381966417459956296587632015795290390815321415472196251920988138518417457875397899195368038181153509371751577383209403451483960339311748165342528968541737745153178515410674360973130428436119763995087212321408386716426921596477890463417585000022525255821451307053733120271436770657013402219303470537169636790948303725974775075467661577288987737731444017651903522543006818471895281168428858882559613329457057177938672354561280722088642814324123940517170569566862449610489351573194909781496492208171563613904670431526189115047313620144258077281300828091765083789618354322415771656276644483400553499491980953844443989344340478983279726446522755967207058879589138623861057038325469102493804022632166981555962274845668330090999381817959745214364719361620777570171568176307331383300390398548762970520766182788961072780057321614679929260615963572450590691856518666482592143506307608945754150722184608707469853910378178672887281434077758639311352937845944783230096643739648251754518679117906847140393851138969180485174469395814238152991175095625323044013394305656902597597299918931147696251640917942199801700031218443526316744400624428240565246215046373416387837594968118201037601296614854586270359215220952778275401593973952813111399086427058099189767131324613297349756243958498798203009222975979141684361514289339347597919997705248486130793088180029898022011678206682603246548821721402814430640359736801000023433763565135604888617902897121264688767981839172561127020284261965441714199566799306214569549654986014852488897290228451544528330687529820858300596621641475065870498466405697971938925265192238029904729188334170248281268379393294407102569311675978680064319522791578926066400321587543135364228531460524943904276307551563503025189209947219967182028862323744137234727046746280539785054994196535864659821306525589455301964850282767322329704956018604000481114052035286484544882200467153636024408729158173731505964766645257828785415961167143257674638381686183045802228218052636974924024447256029315592943823395963187932960874984816596478400413525942066219634552877507448382094174856361608969265613975244469227435532956969101583565241963199206169406118874846829415219200736001599053597326007315667848032636005430637828647482277940904160977819992834767816632303458656930954192996153567464578217002388803494580953629406269659996929314688723119913630475455788507508210232416878254234311731037647419162408261894213782485675755561366243334910751256078874008656242425445157111190088070588635325524187547103733353515924782432135651875750492057112866999551796976868222230705978600437593342647691069882400370214224306225779681143838787957769796038606402974738967809162533533831927609067150766171296715724400465948771010504543580628556599178234229975861211928241787293845405971347171423354241760767094807105899239338439334407220895526771891821143599385085450799904429687419934167060120511507371833901279086328336447863331217854603064734835987510152417197326665428494293730414159075375893420605720638042417201861602444420894371295488203401836519231169868441283555309791119811927346953461906292867844781422766057834532489500110748956976430504379746934961204176108356692881998079665267154401672631844466340884086414663647908380883638519278546896907551137455613431032357358178487125514177829265413676825704097171892586731465589254010127811319275477946712633349088428537103195059103834040052161840641031981043679564264196348316174604373584514489660293838648473474857320613745258834086553080488380494118626463566490394908390383294251961487214780733457132863055102266503704137409419642055407527909554969619265701194494600044577855416692975001087562373170804823120739452653965080788212094697028907049115791591509101017079401745170713164569695412167792875347101940009715792135689385847008628074907470342232595790996170719402607780716049181785963560628546264066606176873821022956530802677959385514759436450550157863205221771988704132959785243473072364822178561878516722982166743937083514830974049849765043364891183245440395661018564136257394240153118025552809844492522084197178782918338129825885798042165918135269480044659296093325440358305487198371595079857940560623180526516241724701778370126001773150980938543300524539412030635999468402800126730878899488449046991147826906233281960890412578098502350387830654951900939966144749915900336182375929039446597122406012664980794472354198858036145910319072290533803635876505121206025208803126581835055298182344541359190352340020839245898040780776516300468153529181115625842846394315056470039046813964595623159829569763466223460949166449590023679718704490353156768652046323769033280955406315246550139009975228197185875196347394286747079520785684582689327003912769962983226533396861825045812067928380933365828794517062671830080995049151202438508249482297321451768333278381540674754739900737126961245952338742322485279351679139458781627629596059285706619459325058998932249872227175203349659903036836221006450822257295660120135424610009153872503926474144346366641812162144787055867516704274066505214409455157090409199706511990834472918491969798711815603964370732197752718498396342256459175232269665920299768283410412516697420778221154876491958068576971604705933426957778275372488487944338100612848430090524510537501196000859844047191036630495150051028738191447358376376841531024753223407427227768292029374783263406317305851824739302072702910833019215212243416587694479641003462682760510329429139381573498668784335158239206868255515083670933953633465933033216333423963427810729143899551671009681434713170131674050120415430434900712615483277937752507795584245878877714851364303244884626834092926855481701896619904231925806316695918345030653101895002586137823458793947076986503729987912683498360317466531279622483123945740715788386061282514148871506224296203532912394712683405179045704402198126806125016671267130544368864672785647786296514276008334030687594610239743753437435863746167841957542533575997216039800595723590915991238612903344462888010527433274673831192821013021767276368848605169249167167947448799752867781577898510590459280881291400355670742199398430867548168566220896742352516971955722944781195524697715885169310966839516750118681870213323980948241698937332794693348049043741826668212609481881008645299824411474024223838271795669097943644252590850705535938551372295276423624973825395472650794300960939439564661996303970670976040749476382422128796001598925199113480435564139837830256267104605821368858627746285399124643141878984559245528564753056458320068624310335268067840919560351538353436524604715093344415241384262649905083536641024059968750870166133133010801585102571405651320633480453440446332544080676946102774396567339467228677365550239900354245080875526073407512956142040998648949979187876880210686728889393474577721332526903669419712281297407273001305698924169926443358914296959481451550851638931336781751839650753810807808777489917920501076148644161887420209165881766340087382116812162005987878019522725532481690567562774975228353082106774094951777876683759536477637621867664709403698090674303027564262858679278971706838446834164502994631855612004964792047985706140197264133089027717235880294977346868817438141083869314820617149554978293033081464006815727749402713556588853270478324765956110935010601095151091393888375951502371534631670080933698561868825986087579232376220100161962382353042353895858615692982601014095844654299845050741013605152904601204727217065129332630711385106136011438162051071510528541132150968492135735887386562038973347366078085314069213280290600007707992867101520822300290945617876058792567948516963018964554029497688999791774434938501819080075934734645681551886958309706698726202575495092762138820232944193547100731952105297760432192508770426454106398815096509346027738170786934897871234079216274585833194005191494503106753234906634199453914625789967775383676445840120479831440174027346489448233346518316572444134503439496632527859234499731495711979691205038657812560886711681331509827612793968363824406664059074670960573445001410394274059688761895741979429211232928373051484037279063382126562655355352099005990507021011682350176719541590806980378683050757736694809611414796172340029204763651204153199984737869644877310336075642359007133440642508920905289299896935732669348645621913200590609871904130779905597124868209259795325894636719425122056893324237200545922453085626082812010851416472455148713099957920194136167045183388277284421200242346227775414349095358263973913702019913896025165645065594370975871279719778137406649829997519477801713569827762354736320892711341378859737596429278737460240126488360248330162805900810809890170527001815076467453343272612491516762125245650645883768895445304890697178532166980531324727961751457212681922898287154311551572983253238823090664031756388372753857226956396745512425459715737448237711225681333737623230097356366007724852531613939075620943617124995391510785231008406998147473749600375653979738173463341139300898199625034647594207903730362630441743678454215017268682872009867670437678878909683554092645166668592515117067885178584459740875871085155363066189481678859400844179796784144615284811896480756307842846771986039629462584238890316490593676917491304175564983534034906481815316087085459431652431948971979433282900850148061631385111164658976845869861505169588120009935953503493090611768114491338167386838236599032718360437515864239680768841061880347040070747287311867763323647500974437358732508699772141210207983717395961209707991676548690291351861285855701777447398346290429083015810967625661476523921458061981519816498966766369562951830283920575334487718590947958815960151661850494371865126379186602673323884869130718511819077158499565679298188758634541161958767945676027444079669621818782909198524484370466941128890503543072341889059137534170579785684646763423081094722992250441291359492481488708430605282302467059323213713414673400087932300618328928841392762306471456309840939436919298090034732843158733262384977465710513803150245536586582679965840160758432298908979994789533663644439669253771655752701730994656930088157814853416587258035543501802828399767302320495997212671607524043661120604748083976286715238877759673246910911320480703912155008560897275177852518657910235514618073707289689726279006734690396097668651860951489855459199301883203757749124739281559350086711341276127458637941115134316180579594705108320978770821167799445521917861152416842797050757079819940137867363688364980501532912786056511210899872827068138259412606993409350688618850284973179670595501424957623925327878695890646237406109905211972929883717610087702720641464643220363268408239255395775903253614243742301359727445430882896750822170018517183260422488280692161331688248909951601064255343083295962792837508644978876118330291434230336922681894049839043001667697975355737280131712590748874036679455657846091387792711149733928924435579732279627815647088894564320574423132735314288624412369926335864381219897258170963108794398969575311599832585863814214349989293961192357320752552399918845681049407299715769332040482006989929935604627726054865396182397352209575931278415739225237489298453153947098637638600767373638666954126714633184592040655730618989187508314048675766395943761668789082331890108887863256486562424739988661067875902847002321524228987816534886779444459025472056276657878358388019223522217494807899150897953659631627433346410995802447934053289377398133064467037651866948994775356824936899257476922554276748771162741655692633011597349454730276123186767873833285671413105929746407302750674729780520811430894546965549711887541346241255193678563961647622157101257389112190360934726327037908120467406294940000055162147641366550860173321016100047735043626938527820396756907105809008890202985869861789290172581345445672935018330301341124512519014873342863483807764158157419632806119596676524323891062954606112664450164153657031850010821861188882740171829387335273625657964676663054087019213399463786811873721702515648944410179315934136478462835614066264218574695299857186289989685749191377703026930043325752174324636082296344838932992076166844746043838690611273079755611096211477580859082940727454193656238482951805310831794953856735365877409228869079894361337851246057350938667673685457783177819052783629507556085815797280444685199894439832210802379509833204309857365894609511406601522813710202905353514905629479887780002564953757701857825701320503686762555971396031657859903792306732098451148680129041266406917664161661317877133457957024292309924860638663479139104382416122986160861395534706670445766703949471844555854642203213816385264924418474657496897667134452601203529774793955363991583934985263812661439809814115362565729552483977750322605216015867519379367603060004737124950200866163949767157650960066256070744610678853222507627091960828443186048962884971353540064393414926148133401492902537520526806032790041005532586077662446897656910546971261198846930784278230423807301774938977777051889564866595017250404287672782675021320098607044814786309507334858710557379813595447031994529629734829331157263004124587689409940006354683197573966439348437489455898405040409621332237343285002330852063713981952221043248661728857736030284832447984832713256921268026154456030499540620915204813017673693398395970902468952511822260028302369197341125783277516664933180691188987717602582678445076887107678221511388744896105252731398504417084994435385599273057116543551528137039984255720415772721978398026237443032475239013919042584925379805302208254430493010657303444259305411814317762181517252312242920413801105473320494337122063480857316700129438905679648746576605045288016986965930855224912277979211682387206297826007724410217854651458408104233084454995386733256760920883555804638087697112269149773417955429454851680027636134003495354151778908056499717510243195639033004573856662910437515370114049073359155194504955473171594688092478806229464730827484773943893582026078565650366611149990569125223260884287076670479114167027965345678356904835243875140497587804596449274842355658153918020348089323863035722436425194662063380167392867969032285902324129445365204072962606502090071267267690320797008775392340426998662074668990106746303948729071048489353404543407799133627948543765629794631904393455001978082561585746643104253497172578079528054573499518157114645809425670057462165141177353573937946237499723210814894185917573407651812586825291445479571017711155432504265397015594941149752708274496645649518770114320525333069806946965130741785669508844723658288627716913944079234059234501480409287985320647255317879834054054869222357767653083201518404202236374284402168734297610335461145631021968942051632212097187334646580593397065606582566382419783655313725993648707234527220658749299934117278555691062267001503119780240103868398685603331300598419835605068628552453500294003662493628698103319394931336582539271671605507891873510096420763331895075059291160275212479756552564991746600182476938545506617482716815931520562927522220403739957643416477596982237849179651049343548856899113061644519437967111372858630604169431615279726645622437370439715680499086699191098901187118870762082605081843916552822644940773651425150397055964055149253102854874546856739275891808930449296267061276264354441478816470984950786428916767767363336999798797679802196197718985108995026703349427030689637470266246867212605903266407219159189718475794820901410726033003705288577644324247346982756104727126029064037700982880619998929718958418661678551289438878305125906109804673795577531101486709578106597663696979680549540325417887302512912723354367278756869894162792464065155423635839327181476918964155111477881769805754423582410664412555001476145030005896425204510505278422856893043432633752607512172753134429637907947937273089393637487400114749444731926591005340750401879929903578876254489719454161081497636013089685307864584282071549057895572138296806548627314777397196631253179586800282210528343618123173214121379303461915304197626655246037677096457744275736707050902704891017210964857756209661231441932141601489114404950191200198161807793709959759206476328085085652272031178954170870718479958507916066729517260956236771963930200552742834283026047289014674013329671614068227555965202348003852669575451440172177172061880353677162663361700508388917333983890925818546187029894484506127510061587673207012501811435138641880817458842962033922353620166737406852814256611879724332410752734514183088193405338350201566212825991444787083276321373805815056202365862728833093886691214599060900558620683194174847296431657898431159672695396971280003448413034519478067570879650896110917564365377647888724200249376375379154479366243826662346021617185356336090812698856565274619185792357704804660839851376696261041781108084702058123181430613175295683342401180975984368687209192432459878514998294347541965451203192216532887051745305499043152893145923236023110572580955663812587290118037221079259385016686617556469309065084484950163867225188313088935520596622815664772250429026498557295511137565458301454789952778122013340180374025834800329285870911483571546008477303709453331008364966911905654276756186079649943697936857685666494253201955356711540113681217648221710182017144632422502013740155699891582013118404463963904380732056615441000244219562931964950423913509224842577576591908615068745177930606017304036834827397604609872742254985793882308792757591933025905101804333170361649356624010607840565570400435300305310897843672594938393659060380179393115540724213563671934755408727467915146108356292746713073082993956668780568488141211181150461684513843973157550165334459544852978173573261068775908243791823973690770126092491570196580815573500844478333797901076047838771529537480247633323895906912896354294648373542078999744637205469175833848417317159311034747817922091349987688935597932458040880234284880233430220285326548197487641193765272404944228177044408984805960558314802498158835266615533220675542947254623677409099115945633701650430157086175514953357074870963225114669724893417749032959057418569382830726984215960559625711130231614558081055808301146383071202993590467713666937008674770512696307374976328821055829757901258733147605700109505050493453961566313359606299450105169271019990159374980889016347985855259857254311861667723473945408454264340983092446100861058715528650797795445228819547463275494274012881204226359488575674185083723068029092836934647155301052948652456646318605246311963945229057608565498040553189751207979691947388912066250419819489424718673030624303508758554847676292550974927651758569853332322664593274445928982781704190714775451218599593266345445536649750999817377522609022433911068629288763555529522540550594378887606396926900631094736178297120718325762190084167866914746588278158720411365277042384388408049032755117998033305783789528211939560404626351309350415314127164923461990625108056396078753732902311551749920584063038238097775198792175847183744504938631046875803860966178362620548188764278534746168448632316214706246157778169154012554302465314033947803490331412947067821707263512622341952377178039727260334354009064114595814315954826190746876657564382614381800892164785378951194217331800605030582445417164048843797490202151594678530252827421477469706241550276906436461717309173224360523118935600340567901640902654087367308840286112336770597212012364237988970031210501463588295865820965174929233483635766284998768331757563200854124432208240183931265483167028372865274122825515697838687126973194850774548790208835999609722392527576399362770911827162123906217765033998996088198485269751982173458838711834069803314806739085067692143601747058279575629569700192616169479895161101687993156274530572343400439135070988261546386847329593844744750775162281920315348678013790398836968508006394197854263001409661933854689443453529821625645494328679298032153282924647481480867440751910623363753855404700446248914875183952536952086323075080523763511214396086844284700841326224691180682573709686974868509424954170037072266257163768072361763864285352270461361638070633718437989382179468112388623135317438334176913337535655958202248848343438588308214547126336847295247323845012844967919871483277648551041103867726011871511866775376840969471959285557080211826948643508280847317210174998145402918658755501579146268238450166680353812060044820184343540976114529491214491158677224385423803940960330698215750813146462989723084999500682411352029284834265001450678836140753989477536545120074083875282480095192423163824100770652845391111986109961221947651335560749431744142970657351429877999553797227612648549082105380162755732019521098139239137995515028042930121640200284185222729633581984677829960075099909971124003920476008708621325670990888957458949770731139862508854816626085795139864600313840326729953220636422725853342166840675099784593505708585414046020620880799744568877575236561454789521549167195052175236018550709700803011485715642572163753976482833849580832977212576823212579462545112676437752504203619974322305005168558556501725432383233313082173720226430899400025630954521479553561020238178826291934253528082222569922871215661002561667409130156526506313020182428788259836549670146109601278593536072181509440926017448043830279432246471603886932288233168104775699005342879791377366124094284968734209247116920153598222553087809559214930987345521346038681174387767038966022127616384841572827340095078295039078131217777714996070232691888648881182623668931942396711999615281303715065284917460115789134877929608522365477571010022867035393670993441608698535887345139164780054946089575957621638425113012567316099895056677345790854598058041960260507460959712880702994283857742000820840521362471773635841489918684650092530012045399306666296149061891357562293264313658491792592596354659771118033233172773824401980866729747892823746501291350778365968571156858356212860233987703500010592306640512665756129499934729327062245113453024615821399580759589019951388918267521624307648506892757739347592540249556434636666907602804591894643299568759622176040496101598753352542972992563879428979484698162403537353181137832673079358806071911319728206751702720988970950741412195334084602659290206836123117508088516342544507740147868432862302854064121924075690539371766529332876386299191776345784805760392401248243290088661544325345331583643189992844117371227842316298705166278422550353818478271942244708090195940801570616362326749870674724880736316138524903457186180947930047720712957614940640581131437455942978360339069986608914685258417567065891451824723261320405473693102774560638483927890689715600988048443300981736949918544323980504883379225525815313354027449171246300087210098212716294238496960738387238740578452221541682823218639533460334121724143120653212884197250932823228197887647457829619617654038848296386662917687290472562792713478143576911737136903745212185398463013429527268181313151132534196793009344521456685710655938477042158469309968739642003133454875528774506226106730953455314262672553924119570493052278549851290394919734786390673400945852583446869288061612948814696028386401368233356595761714928983110269771245426865467301607504290296502518481741960228496328736894941712044827205748577773738955244365265136512823764518632430648860810757186484637126541722453125595160689186229520537771665214410548774245297007993521140265496519218184165141955938428652891022412105382094242962407427878182692034577973964251859861204114270851295166596613049356974967563851498260561407611073269081770223361541751730391857018765727964533301186224891849013072338198809079909377751845056432344686609128003950840098340506530417704951177162454421575009019890194227022743731759679972965769245013378653867470806038148354423072886383693464569735921881884560545635591577794186351216523490501020351789733566307287990407382682054495968069935076226767134204171882457345588554670493895592306549878499641970188541723726923332891511625972746102002294765930451061353784636282822532848900641748921124484318134382886586950420518042174618996421554956823639856137219411009228713845033741957460160168828683917024886491860221021669383591581949002229974763537714182567445097363004083187508805228874153501594600475050421226188576936582058976683493855409358653485887920256984053106701723846348045437115508137721214015504379457716431654843133298159098663719596896753159526602510008425839314432114424859054647597929875281569775555361174758719089919768447123744746863549867123193088913361562883475118156707263551232194439310630115849757883155550834487532406907459137991899150578589457642684052008822404661359399083270704241928775955982040331591235504512800621469887045079742747016548824264162186487535114194691148582621304095712128757703917060660369113042778837230406375880286909548854390756322366628031189033781289164952057067039148965448655439922610276583363928302516947667256074139362204175054849644828575576868883487779163572085169458134481346069738460478638494287027828332543922430661343806927367202160312255303834706748495012512324274747415662663964056064541955056544102601157007456981015815189448106506279078446342931162030196030436870075193297837656469607746889550221520048793013461382864156464221177490954071393755522552608026246293478236380952507441140435174671922958309104135774615981518034213016808676333525775968666880567723829467220086197071925015922568126284457826384254249002677631057036612806165159607451737042195214231511059121322875315732436600640207640883312177685078065287762369232940823030012887018247370488919797463423115756857139719264072951453471619208877126331762377285556100159178992415307221707197587206454459298093995843437929226075344539706323600052361959906047528373413774902024968004380739300217489547461079139739738744080347196991821156192172337174545029423908183772554016590217630336513992338278980368534937470694392769424774304503481780873465605646914244222906994692809735273608354693512399882997834147407456365239645036986852403514511145734117565332136717124222901282680768191533307413316180432933619685274428155944872168738947069966594045667397019879244416362652955267591252850852048892494386686591270968771802298900948515664933860159887384038321259665332645389657346173702444182088722218694878532353755703176931871814699463120449133237210208085380872479302487384151846696268341263949313650953828785595323222015143714256526347961288728985396579220017681802886797681305451167850446663133288316081462160588462862462199843992261185015822888596062149920129216006210783232883402863321229345126779286406785853382751300861603381773242063999663443417718789846970686506494187693513840931567593734054456925796569980224269906647246794482581986252450694688664981762070916921825093061385448279094807668288830455926993438102463733835781776142434822125911455696097972577058688284315109377616442321814208356728693542309277237793031616376978050573351197754929848118141040333346571596535142370168954084066982703808104147397876484887983452352601607013494907502042095533354759785449338682877816752909072600357217044830516800572207378282470464475478656479130408111070437242926376296016443118439374487079606715984781494857651573229647223651761890430455735045655859740570936490998124871848684842832170249976939130279951935151674147418749715663797973378364944669943334923872976694041810913560466776363240162336094995082499379371118457483706556114645748437925195109433041251630334636573030064150659050503166832807148228945806418081892238847318740729892659917414953796599622206286987003681763848638762295861907514312366281029643216888381378728383340270208186462203325147925651536434101065076070188055649646245664436855321077395854722474309746526248564441714709968613603849904480962402426825542525258244362612387138971045946718683626700876807141170117159464975642886730926633774755153346332577946184512033984299071371141665270627312629902189177302233076712991492055445773594052171185573596271851695736118794718897813293482454054266976819543071823587651221581063177639903604084633558706499779617158374940829955527360164322177235919407631832481702012065065230217290393367209046855011902115482381465014063124940407681500393308432677931486380400956721557470019239555203266785089084747466129995447659320072450725870482177008372521969952904417626143732804930447767447805596082118233366688675917578916256279786067362493010168322479140248994499531979669772255387281883620050008267489095410065912090456669148826838255896545560400178009046948942900365302046154973210342748245291740781663133434283764694236908677715441965518475352426887500043193323546152074940554547841564426783776841929143755600221163258634357556832583302460733452962523350368380167445167321076919167659207358033838009529499207727739659038635209288500787675485472915695730409021694808753596581599493465826409409949489736322265850445153134809543886946518478494329610761696413682274815640724674400088248447661003671229896657812856852167096100260902331714835771606704979772868403816806574545565110072457296730367608988663521442109654137356064266340351183025937972656404776387025300546512854006668384915020628359188987160932694609126943836771790293025507899510926540652788672365934566749792443614851916425138380109801844942007346305292218574026385136383767369327827376206356718906954959318453254211110796809180316742336546210674437613326901470536267982235435374934066489431942731688312096199065374710010172712220733705894664961907076346212500665466542874963926750070211726854982379765421489838140896572486519341371731578264014238381818735739024314849344947702957626193909810073790388763935463531237245548394928229102964777114698979408123072116646095053150747465319099336271083808663248419226844940827713671358315849092583569708921975910701703201517404208071043706423858045799506950899549971755198221710155306620652706584416601059832653932690785935208879261231740956315896604391151145103187703727394818082127966253326351172994401398036448338581554935038899939600833820239630701213500337354876561824960402082290772998709824410931763876173173271530688262722081105349640241050179298383853630868203450953487485623625163641754578596018061554489543200769383859498199541564976626710642496582236779405582082649033071396942908134991939426691181665289359692538028845764351450109254343057272925370802338027423300638012354756945840299108566184837387595509645902358098090511605043582594728460881804633666039009138159400113843510044313837719706699248978538197556942678714087573487061375012017338911750264202486552397609756187260947525233753902811983141250393688288349162027108394644881175798374067151929209715530945422095419997525130811909416322385717019361248967342043356600075200624883943972422128112581970590590985886981270730536495668353087593991341045730733715194049319179852683182912106976555987626173922444940157984639320126802008768903631754679989416388103947961555867057265631083287669932235533128501846668551972733440806543078244427109751183701482645445209537197936310229920688248335932831130662196602602469886937758349875493704563770030547273684889376036153894222360555008223022024260810298446987649490208803982378673924675821498580458091344323768206877360056026762009751457080737834862150399684925340390277073843711251249395094895908611880413245835075902291363715191563787341253419453455535537580091803715418187283810870710575300808829921188221348421245530134498221119113478487974613964569138063659505352279200712007524875748691552223430599675570475655045201466881635894591872168947891732770448224695106767339690874786625332344117920325721961496692598343846752696856909168947408636590516063423888285658244378464597102776055600435631756229074757883251079478656142428339208276646026369872428571076406303416317868979906763186158504182376490972536191712995584172292823889558964317801155747378116864240130096622842860616173022584285356940423789553409971906857674303532060850693326963908225373012186899578504600533330658657163857735914039998433911307604905871109216361599913112108811271816251811753521153651266059486068599945129531542554574204104779755319016715541741357466002803574188501317489035212499105374873330427626580580032548571834929755030898426252652036872574003007897008243696075905867291523792329233462496012010134061305762419070518761842135599578451594544351512116222266123181258760893697776785036110211990254462955519093246745415129622056248435060458567357217198535288307258031330056547594799568611835821547851788116672587692345651271405782330022574201477815728277942480178193849749785120940242306766766553656882219240739912847957239574063931142501899648050815821515007990223837796938769819367054789631151282640894530553560597648223003703167591108201520111138905391067618423223226860723488548563607567959537044545075621852868051866054177851578930794836692355167522425223393889046544764202545419241755812257853081018137527042083573211195926916328977116172703652340258199525772301479214966511299853482601810180573671024188525639392354890110265611688467156827199311968162315925458344894804556577761018845185971432251104353982922252306395268038528317137772267591502462913154103228815803397846723829712213468148135252521154129630008309689867938691783844883307770762875358296667181815560521061867946923026042939882425945519506902236795032955880455040232451256791455882995747541691917297767413720890304150526621454757020929588786043689467735312443467708034402984712110311092848039712229547888094281809188694170720460864891160267506558692055452708776757779564194356076700502423723568610881237860363461213793611384227177647767282160812598682483069245087376009262620372278590242199341094932289465781355569615827017733860490633337619255932625955623805590573912492363289700211015047715959866859721059319019823121138563492271439086477483983971004856782675633196264764804241498106205911127679336173072228859407606688943917129128975877141842551468878504842048809424395215103916223633094786989513162303475268595633444419405912657435485448607176458398844152203212873669794343855590553981088825906812222817875134415234647310751197111443626697500669076448880154337572610334635511523528342040173100547294051057897791394275310949573976133406662693407290637545080806480462411295461168267804106592510064401073697580552666978916076510950027920291813709002415188604358350098606173666023160678745460838181043113183049055688751683147684877478502208396867442134857199710125040919979101980717174576927082166029832501626412212245892151218673837861236594612653973451274934983529300865958260281667024845177260591534891895442041281080656088478695784243781639323815250226341036275701420687657918200061167360619025823126436367168015145465393158663416917715135889987014156589094741449373750871760882891906713270346133491056060511308862645002337350680105016449399596459978630326818502005640658544923666882326146346385858582190034479287428546257899424207358440951208864120119328947800163551136932425341738281405943842197564923372995754700418909702265878138812288499086970630604168583594190077976259046451328814919564215894846355774475811929348323597654146301524689192327003961004075878761571325721109827716982601267026355936050873686580273668086589880696694938005412997600775727950460904762007081462394764324261778659839828154256573460505029057983177475647975589100365964202813547706973592308268599015378373209893791953633712076413005048576903194504414516430313144609571328582137020837526777981648222893448238371883344035894812496982674511599458716568877948786675427360303478604280370162444548099863628352862706308567519882958320818531497232677754667608839885912501990344834928128646427309209904780237115604560710838710874200141375647822514147144679820065332972454911967504755015774850588843843739544269279399143029160941303160889149270135297055657961893159446623630739053185415640145310753597503368578263792555401620747942593380317650912931248919597145256603221601115214611106658820516134762732014294431243773085684896482395767129174796788719800632999143070774583524111272233486625198629692926276785299485898035917303454020645735839298584408279934625945651203667497498608697135209951276551858504271002166504607899842960019477168624644294673089230226459878844073555309458632428455335036364863801168011413895272033965460058544915259951493076730115640079199388737231075790864431772055445724060006715960657330920254454651050133499406311417299062475833357467680915852151385597307453267205470549140402163462803463942319228516193444586014786653280643191455155486120213624437111573613256994756875428172689645166868393093238626517966400499166255985546501591872027816854485705290842022005690030395790960802707011164719826411100117381747691290522753502437001552998884389891655432938775456711165209069596091950918625556179759887778125468023838357659229711958096230355311233440407840261511300727359697792691295496428698148394609254854884172053776931365399227090936818484110626307253266161577554944006387306426311741569678637032742271990040954321132304233598125046668791485869343038721785104804071459068612671033912760089171175987657036453042467966346089555488493847502890068234317989109839785120418951795299554162033668872036049349640482862731739784579402073080375211734323598546270210953094642502904676207371674612373195477733094897423920476438448703440143755181482634797186701682910971535670604099562304327399296425837254254407533242728241299785366862235370643456528357711732251692468181311850824474958265543528310937589302305066516979546961852390854787673235937832741743632827950877931912671789235731406904154000589693472697431730284987505204632440257219195484073334253674902804434073280406838114722232033545131893589161794621612694594427619670183325772862309478476438038152137163314883116062448583260330466334119389430408644260199026157899339634491694811416378977016065415580712683173292344131998012206009419928517374086393205886012900531392439368692734427285272004649625268307030096958861208552951135700651117018893382396897270772332097336444739432802705190846167089330885529623093261374093224669800419980553328388057221506156207412894237467506225858465803497090503820360572481827462344056920189719165858070047536147224599268673660682013341498195060827799951085544846491426226919001740945450020391375055204888004861888861591110426631134910619427277013140689794400237648721555726138509501541535018189196602805347842682052343217529722537764316311871665910769381172785548689145127683045527763343355853391389492605111102696055712606598081234947107977811003348282962126300841906877827420485016447652307459472956105881043098157004142332012646141652918482554326849842649559537933466522037013332636872719390718808773094192604856868862542310896292858468824275611093292927634567840642890034612005588570837476305586088847841973783492954630854648751448378584241333870573188128754014263316332601854103162326395280193479500681611716818304005822918069188318582084331676411502122479741577376910403094669412786870439103658002246062276313334074518049463996164925402246312154560980211402475390367880309299935261022575465733318665280309341539427387004836644664846525402340392928879347346519041503412439142229226321253507053560409512735645619266949390040741590609026731070645645938067463782813924240173381015122856552851231357814642006008461299736595523617439141759833784006069272336676146263322934494604006487161751772169622422687450305168614990697339944813725939243330739566898742279510654045406101493457168055857048226973014922776138870308032060062001557518417878428813938557418136534790849646342663625483836126828741995171952759166524145413716401447800179866677793304677975065307568693034212254480988440850668978001231695837134013273717989722568209151136625918591232636118797823072165661656491589065391338936528692255196677839900979010599105203747331345668312810577840990312590976955892783599469596287497917126299681423860821867714960143462722912397486407570277359164990465427568236775152016616228750078289795845596165172163431410512933806802575812725834995626091056520243688181408361991824403850871664514840447486926765518222482312854899157320738275476567701709203167839780917128358864185517849456953629154319491423696905663216820550135288470063893439487364352917837730516674342530953054057730353864073942662155118416219585743900823032256829608287075960024369099515117153420205018417163397997339826474314632371672194964109402688411036227371254462212560390990346611538135715559394925534529237436052658128675053882400360405090175993091739028144570242481822711258325001975028488740422046346765910584507222467747833072307451629854915988173536083073569308162700360605842273725353185063881535683460083689169874824470747797503463054915637766626056377818088964714239449181890463457054126271506553664649874477259972831806518145821490572083934929858707919501718474902308471567915332715956685823360512482928344716662431970277905099424481614298767749521234489265139907599992233044382964662743356426958577935081411305596760917262265960681622439559301785624175676346112585892962531852634285369094718702558654569364260791563132706859863138004459951538454651381426457579814038288170964808374839604091445545082835855974607616807785987590032574545833836845787078150627493707240339518260521710441884537002604920228816876235189883577702739284695224582785517404273226119811581041528198123389365149609729329383150072384559924081549401103873851465154250815656885179383634008348819731495723924751228311472438277049657907859722156454947982865120867362176952856072593677861733080407289175522997383138726421219461399596953709383953677906806116886050601168857094164865665341208450056925312396963004006741512756128787661703675391476729228248964674394261214292017515237377356053967725110890415786540924702499008776614536546674704743677252209028539901385167221720182568883415763833476200689639310109835490121422613609721269025552280805095766832862601710384134921164349345058013697828465608717824640761700413729175308345463059106686182165225375419013677001322738593091467103064441840430269865518860311869645440731009940581121572577399072125989374412371033572315460048006619798468881755568936080294259823378401870257990680327942227454786389698064311308406495002021531184217573288092198691194515086417425350960872365117040797668231612238789841698384996892507235965101927574404871293940923918118811417530793175530527034544312439177710857533822174631638176564747556320525898114324191959424211986197124248613953442029324516863688606250470942988142147747917356214521668781949032056810108372194833316342200077644435680075068174071138174609022499813494605810758343911840509868705011238057624294293146884582928876455592753584291554993313366816205593381046570799379076251651477501415513534342980813618236070014513247070767218993170255318223324490342982471133415076040057083431704985094856673310205711376245276907097820118760001768728976169091286669883748768760006240093818868774481655190157567969393424819114548783575637041056184960674428692675184174394733936849596470820371456877251793490044448851897508807344874127845411177624403705721860311255639956298258472137777400520321660793107552718082560546075556059021203265623926777809356132686480701201537892975389410214242897123669129072171993775850477935335780355891149333967734626178832180424740485855166857807816326951860810158561887904470164938037524367231738301245999356567794464551883709129130501945356602401127003006410437277344565233088112926786377301308999461091234144063974209229771919041430489212710432380538481902959986501133845406828504528262613178439733805206624413154718728464768319271193297025707858326671749043657462546702547352327308921281952985464387997628266303270188493897826702931617496773086388517988689335725997051080734710535632236150932119751901446097912525482722084208254956931311483172222062235355474187830328178262023300205170019601614607316719459069348083073755812617003649354564201995853388746366854484018985436124761738121104498785080222070878859776492787859784259885921417632991083114351840969378929677115254146397501701598479634838093915405450991272519184350735304939555655388858382754135322156884532100674446519805800280650089982067473864442512647314536719871262272541578843897056574181013436869911809149696550494757066355591573622436953796757447016879126892822486956370957932674124896927822585976165296089143039243122242762181131508963566897127538991555046846969943281450676403778470993693199244016844639285550033272839073387714324613707676069335007179818299875656081419521045880608675817051811497838177416932239121179720406855609796124008643781995995037249350820535488794726223586983010310477071706127150442359019564222697678893108313816233333340125671161410810714639890559437968316332029956375026066327266601959498023206839840063498777444778301804173789427549261100047219769655113289998785979488044865596142479317990338158808220478099402235478520518744999038732958207780184118710017073727169705107283369482549449106256170861503880763833463261089826931504899319899031909610497868541020146188898373193330728458822170641081696226166085876387207054251095123518873529621875069345027762180731326726492969554075563071584949725345553669801096047732817347054477256340137025111331871441259512598111079260006406029737764399820274968495513762577566612997528070814054544399445147337322474640411167377659758587853455100981226809091407705743515273061114270876206627537026435557894331144302752706623234214260537587165661046886011139438285812708229559441978465449168025160702484078668305813312153352130900363491240152657211962573406787283403433442985823322346937813824352879382557380330177877508079589454510129621962319030888386271303387908149983024354107624528304633064507977171550223738909319865670304180631970052905400392194536965167743263349732512127701738500597028749369486603327560705716907060924059569520020546616799886340704195209943599624883681136060918731774126184182626726919873529052209154912882295559307835744550679104753937507564820619936666921574759979950697431926560288862081086038680143690312574850948601457637901681497994062975834133557824189096712825974153878466510482856232526514758508026795154310294774666824690670027694282992524675630637874816998224023013346172774370001038961447302337265377045703261646444898785548572342577202942580829952537488404427449577970234381070526856598295457020637685019807631149312932559370949048146041171138811918690545053376653044145576996819121882359209796606920341016106978573759642783881848974800923354192631167049880656715045251984505580978151721633903267661812095088752696958788922727063277247067068898861417832811651723891554978631414713955977984838453668971022022866222069394237674044329933029139479923182015991728954811482251738521319258055214213270224714668571393889139425354982148667701066655480784085120575636051540004057114985586826668040084307059050216517642408512454267806876852445078908376412630853872484485501251221558115721452244954835147634574495749751484635981060638874431564960714436424797329604644440212927374273451115336445773727308595218226450437695987999695759315815823769897701208633513990783916094264872421828374461025040056808349750520177623581745701966168167076215571793497632374411117414547001680140787556477748091444031110089142103379638721334889763139673789048118083537996123434676758403213058660064051667115893083261840599920036002006299750156325754586766529831189716387012386139475352387912857686530042923911322583875439633528437965388835877220183171060432391853922042909910347583536398956722881165472264069744608620842459388199588873199924697835505674202938594403073287803106480540197998813066044463677599477669769313829019949126987880506181903473319603942173922844935847118309387053255869180582949349709327502359052572724740292744836784804108879442091718021773471105040397982530303128593245106947894561360234491700414902637423033057595934680896634250143444809182521869120581962741870784175009340245869950528510755842402784808494345756276866925863580087336697200983304301459019522279412880703229330587700565311408251093810441598357237374978227879896036300362544950472463229304083511799716504868005530477790691451953641273742902629846348475793283269927105428695136733108576679161607007544582069597945071129896384792084766197842962398932793808002392676406490102132067724564243406762096860267267131700439261366462419040733387367224376927489460947897137458518169543681721589462837629974069853634188055007169586070881304118137608858182445507160356394067333528309438454352289571429227791581056215368815776917964095618999029249629097469700488669390035600603270486376691885250533037002297743204022291010270240617510920002226842366465427058816374451071801186328783549797079060935737231699996680679435707092910066462472863877551718323605267326664986879507031193996053890003548142205229443985666837545513770952655924448085521039356056478413683398852607771690411739427304965528518962886054223941043586028933334269964377724888727648555919844471854267645103753145932139206354528477064605740047845404052861512971304396746637485122616802432823094541164865488392046535174539517869645680142679524692458600080329792615825279686043606699035975687803105925796172612812648349261414043132274770695361845159703486851575388445179169551117248950737583347124802568098754172262328023835080441424922808323017685697256766979058126792080604731403825409680666947968507738181715363076561238467648283171014795585213409043984074018703343829275513622983413597373774186661725310831412120440239900097572256934130742565934573761377481919380260100997964765424808050912445883108372738688419885244296586053286757869161030965386728836663231835857434802348976249559100494699522356336069399621466652348787884860003835080494146620049462312561136297860092243546764545123801358111307727319792788324706240124941216266648263190855666414343339806769646555396572102922377262122743250423944012068127583517651200792942344140820869698749875744228976581525623365693506655363296453476731129303142958227746786572096995259427512613431116683555318947398189455672479934615825471473744335257316231057236764040089572067807492934419683962385002509104432293195668468673780987533870158907758117666196158674445491981470033605302992154509257973927587604736975700737141859737891884430718940597722732343034682812459591978057466772418456124719798991685355850762017345286673808427564201412251411711450072457072621838252780378822892634934892375503871241201327347332936860160555190379613429034660997900845034797947927491392963297859928938452092865662038492504759045379048448211028458199314224529901702838713213035657446757092999755410963141952694783276218784608870642270106996593824014777441015603856730511682645264064929505948984290461906598194759401510151972297591155604386829958524188146377632388211206285517340947873222103357029647432428155031848868174059419273437717048352129929339879323250852050705508029806900310217113343742069209486330117933359570735757977973293714801672231078912055769729890459859796176910408396590494466506535401419605291197333405757365143836237883979795948977871654416901196507953447504551666752650054270521208090853322221990601624337468904113540243339683212745499808108329558099723513201429115844226802813879178646246174019118792909628390213154347567230818650749087249103523747868757242135936617390296696903321137726569148195360873165503330541128572731547024849820836013659423272219620892732729841438887076724647314895111348200706715799988345409473292178780213074648258597459046355123208113093566009082623361540787253125628205250251963037297484680680108735275977988453595963491728053593690395107052520634291138333968695630485131154793144498201428097017362619764449250817936093432488459358869796345575222301770700489809057477841367644652481637715973462640055375349400873253750099004462781234440746168281314284961302759115734008876645762400804290276247778004400158539503729781611727213976580241590656516745271889040050213659444114008373620303102942744419314866254977634282702127425734757330213927212893604253315951575148410222483222163291029920683602205310396677324632853164199256161316025542304952094519266980693917979622470616113612780295416325917732216148878625512596628059989551066607930067341040569479874818353689502610619746423186905988151469674546708919064630965205178545986328219018870373641498675764630540098841086203359917743402081188481867484677890803640420774752050741365443191208221217706121153492607577957627904168729902480266145414298235566647602019374454819650233648707311550584036027922388295451522522343403362195771780070585592066925964428691474662071761174310246226282085656793990473153063693874087368865949721877429180957936741404831284572889961314805730105496567107278045703612744653007714782445085041637546027685061125951482522210753657492725491188244870219370913615341200505644720757203343371120658955849665221954365274728122432132199157863315191460997413675796209902005321090990666324201419930852062854398712227508850511163406650140493326123016034134853428334932048943375020076050956761372661306407056876723472049276699865205728538216439397487476397328057662512956538146509963681080497159445000493472170314514667624178489543738830187120523507949445227551526716396968621766843672534464855807870985336570032019511003679864697193966377712509072367065877456672419947655428009707500777304843610514506787742683078770803681078604302313093210668944943050465548793860577372055230828018873791167854628236981717408135443362201234274544295279021923356787570126005962278818145553959765638800937728014387724388552699287584412672137207781370653455758057962677355490497317692789927163009544478658968774240033699236073378326367182128127868696363635463221683192543142184496221110226426846754106903485580156406145796543509000359956519236260800122376727662048914951878941996838279102639758071495024005593931518903643345675243506708526449044914556681122421202497669321502616865895504337448364504886758079190541519377943731671187254790231692150996351655686030842363740112468256741319549721287174718423420458974573439747703453370285463860233145574146623530337066903694040268157496834290368447498154084977038705932092063224320197828749349190116370548426078728914710874612757204176754514982952364199591589190060697021145659781636669546541434449350682752870546176121928131254952838580460471004942999228217620434826414176555270468533171027188066897258697572449527975533142014295897427787457131496255813625196825987659559548657347404461493098568692093473108902124742866573686138402204035910121759055930250746573992234457194068345682126830556303873235210612214841816150407921439563014228109742448675478432531387716026560720691430586068677225101963585701101808889044861260407423132658944152887365827570297231994612121694822229272543839653452666258125487423763925110485199989955817100843139545481697101216848864477021514912563792021271052651172995736054883880216151034101249678644716448983440563690230212840758674739453600911603787837080178818594072334119859879861027791510815172738176730558132551652375171982739706504503801337452757015115430189167983145434314713399705227794186441828808172395309772519900268739275366332196896551784858682835666369424858984468906409444958825303188277028886958142817296362284181519368835944301623736600148340016422026332096714906563385548353136796794217248078392791219797861149159811623278265841363495250560188215101070840414552657358274439776911487978060720756423009362555998126078018012929830490886254186835126623897062220353847318676348527566345251825091752351273163159533664842343387622361974521287254084746760362884686282176395130496618779961647107495748163027531414966016904226397898001870697228511263729515561024253503209404142949066813441678438789283932335314839753808282957025505340232102889248106203452392763858812872278640280551911748861091941077677730519557251065057567383494578959990611137040410144049417400924341238456954968330214663804827056661334212021095798717687635488581031137921987897668701691280430415593988187362530751067086272567736800170144415555582393374732871298864902881983540204244718624774806136430245688513292855002276240292861395215711953812730361312638866819215281451830919800225725341501443161218649355482120061833430157874085453901436989492888627781306301655863862586266842279715353508408875838017031520875440174552555389453338453327954953512686507341409880781337429142195436430875281472632799969451521838958599767263683573597104391824140640256464023259272237908089948304329575362358844698768307632491521737854558853858809560375852278804221206546820063391033530196405597013009880830787768218589498649977211836566805337977012252830019779646059990101630957094796675063082423258802625298224460141988254556341500786326983286791584122876142920929588175403390515904934863094372188279976874209288455585680692114791202099022667285525571740477365581096330901935424749716351308396517727599022525735481915885820795499208956695845864388869314334032755780832833202822364772705249486817328335373583871556948643352618666458698885024266675041753978683373574077402744064363387097588907668445960096175393004377034131175846163403785613420101636965838351851313153361665990492246605039847775109909119973432847129856275716618741466501346127567125879774719972249447827894238061334831160987638711266056252233783477308836730618973264128367773240573620068734451155548500493961166945074855490453454985215057001723983164455174682098874380739354382869750451186303122146860480319889489937416506631483896587072747683059935656853075887997314745135165449985852340309955617640831372955493342944129803539369341671441116203774263795014665385839682470054843495817171668895765125516076162725582354470870149993482315667921542490756331222572680537478386747330755284864271911686468435265772751725196610256574629240703330072255659653005499721028910494130873946129627581609283859941896611958808337766360423357725881484617311425631303393218164485485332978860011879171680875601280255034445687167876151013574755088976010812989037428915950524919797781269763416809720203957746390141045846215393162035861279952241221847807358597838278654259681187436910055092086433702867747744455659038658206312826405824487647751557163104770858273611242402695200387144092553382389433632176354536264758462651551500657596345583634320479182711710309648227441080946393415660203520588437715838690843832045992130284872285264481674067320179956641883847105972823771495947429097440426796113444151826544704694537479537052231298864629725138773141652244268147294580639185452220553210573868577244879950734932804491521835146568836615429850031148746038565904539071119520718527510925712147105162423773067931643327679638548981092253409100136116427316836392950578674324719846559916175770161738689478999976198645914630712565130794271722877995066546432754362988190819572710032120611001819476103179295542072956163049222522246214629722945384064648333015878502042284778424835537211875726678917957949955306267035019199173981511657282261351834484488650153355249797488343568355344177161428825578006389418078053602642328580276489219821065339069784525876331467190770778874387692497520587910294229277499189987499733821252388968538656549057904823669449425513986315301824859257587130634410049292106433876125084347263215834329033916383978594633097464651999203500511634604763953815450992682320247537788748241982440106384864975403833335558157683311798724543704363008161387529062918047206022958319099709600630974826020288576807875267702993618998858680663910719980214890387562466270905913122547997529256498936573268643706998607955416173792572751685499644539719759423327543027356289199861419133319187007373809315904894896983334288868630853668278542837968099959845457904008641368774899652412572999932094620747254963897867602351183176035065814834664974359233667655951140980576572970227944231395382923442585598900737523564831023246452184954385350021379684510175875490462999930590797005119214860030996138137930259570758111219224175907615317360825079166517912273879391986467416995727001176930807394067108075937569556185616814068599156320705251081348740985241381494874864055052658325131407496038800011641420125059513615051495439742788005074468484742615197090590946031510397200687431389143017945521261397050329029220332788306905794215807920604641649383426041696263521903049646938971439954021996159881671164480375586694833166112803645361701975372518514457796109023899422912549686021471280585000766663830343991676272850266631327243494606754250597411173056774732803585538411331096823425052561139711756484938702862851179825389092057920333256651186204243785944704263375752432605872093024939828558041086093296079600533715369372775987506616227020532447941281336592174592273967577266510546932461694139790471819908374968346139201396916534118355311603574131365853038780881655848579998156178147005176949789548691557997796459946815518163597624256849497070450960029231167563940378367625130358620450411153297096812431979825311874302903794966991488047119252344784627121076093863550532757966209397671539765818438830979808725183585244703625241240864736039452766595590854968647076692877402590817076700345089357382577130620297161784191789776338488863013852591489138907271899626144115617344813482392664299186256261543338506501096862121985154076487285952329497670136029850140838270565606477052224539483211320176832745499929705711206597335302289738169909042833612483744862998995332168053628752720694038294201192093647320184218766665236832435538076799461790834643324491043876006653691858704655904346508090210169342020363027768925999267771728213276079438478231062809528901605777033629354984594797818772077257669063917221258576879257024664630980650816210626257015469767809432495323223707967099606758010873898734291102467463828194479136746570712044145130937225646025665368717226346395425046446989469716477068196457581652190459673526841905284056092827279091906721381021607307658625695119555939255586967084208871158816646281337081783446013112828593838311864317215038237951970959070693801927140047076848935336556643803240984349303459734143506386697067227070907899687680819581715997076788468140169326770696180653117113370793853081093244211428367481529772959186773061948175287629265260385500339575030217661662178410409059182974928692871051100751469718069928301683576360582149826939686464966051749675976008198815417807456372488329397472301096666819949326255094125256854543702353795012872017958756274027220288204723174493652540145572473314182848604885831224477075091666285585761702454036118445393875498310525195385528244681111279241854862856159477661414540617348467453710826627318197902306167865586168397933061383816473090780429941105318762833318547750099123440526761618126202341592450932848373321477024513699981776214838926005952138085302879747058176185080378814171161967733614409692820746832009503969436184897587477817630654107746279463792831468619634030490390554579993404293324717707504102841960953265457294485205302313308737398225192268457829637884078366940711242495722280489375778010310237252047373789398000186915187748643025748854835062524612449903508524977482754334314308388270928998159148795691235949542630227051165367773550569316679543310053503786838878617302317899621935446058546759726226543905128394516737898103325873712396957700744182179198653240458783768951983455156540874711783962011543589725402555420660044005261510481677318146302059813323226473938430177805349263054993193004343622360146759537429397644613823637321314871314720107916278557632614030940489250377692298569264612916978938588214405683826287658853784197221240523503349554614954054006366964235956168900047327400074821763911455340821523176711122563613644766278708065651345054365754556064682400474520530917391699027917608674731966007709965549620101587449118702968149892340856994778351617003373661469690990636927080410645453785263319830730140858916001222798980804324744050086558478701809913706354043704262684982262150458591875285589690270794240713130312226542919088919260860988778226106440217777425442369892680696363560049673932339906308685886096964368867065209390847927119788452251012548166502822517507947851574265777357193944181102154243753639545273807234688403555065593383699904753265539952604950053339395456015413340486010299991657948829885642215287022838596772306976188050805046226750102913827739051236303250533019486459012667321770918995765505923154869299215424900532529036576849413004482461350299333921859815757931416326351026538450611775364523970259698498960824543528216529894859885922187004747270555011602169030609774042358679159676554447477476683039067969152273605537732982865701483612166717503446701613349200792428638663869594570434519780064822175876551480168348856045224223623771468401279060993912120374368414708768114145002272615410496287017164570754644643193458364990658844954083477459337238980005486587000492436077883053907086324846539706480845644796120740399971169428736553367457196235492033982614155725749990707130958742120007139545401362079299744473944632470123853736920988968405977953903421043863735388133930836941506084748345946171679021152857521981471882827807682887836685618069322580888971415698117906629821413175404825859947933565053142227252759044419132867228808793974911780491735899076166573418558842622721177162124471794204517955046751315973875483453492560630599548107045540154366109221697289249806123248021794031957022742387897392860484514245956275564465498258696568742644443299358319473226229071427229465309089567063255451465232241469883074546317296157658518662116154179308262471861770487963091749359258930489644919359411637001525131982420234015722634891924970969032435404911557494919568524111790026815701396371898753916793289623232939753560744264710451480178626786725589802340550147524090770552216858125081503469368999679968524869484559559567059817513367756407046494096466068600850179728917778189577418322201577207015110311851308705543990535816685249166963952181619086957972916382874420796045115017311635723350518019356268474180192686733739009124792841857681394283971944932025020873385625469187985088561966393744133316430703600951853452537952901524758610608673028447742674748592040700108012155854700256344762758031495494301849431281470713406900191938493926412805889182839495613256773198583560079217543960347229548590649250963508343325675513545757201285314626683134747833514435105858055545610864243182639465771558528094786892465394364013087160952225977897604079301211239640008302021448812323275964278071484822772039656779062012234992464440214754610548835920919516362201803502367478867471006291531095532854556123465870361794044164330697848526560936570703022949647170162261088471639314423354072659113215351250743464602303340644360074853361297819030680874474685583041848241662373040944416938512831391989583492025900929694151327861154629044876756899621664870077921819453126993611119626916945159326878943014722363917768177482119909895133824924637165252069086771391009222239691381123475140399948287734820291255478926942600214651724635962008250520521934573208910237516170693975073312544926848034618830240406546891740814476115352263546351143796594914613819349857635970783694193760880912211910066698756941532373644790427807953944572069752001423923114694080517665763834646178971745480819388087176440853785084551943883539672417913625425776910045172900360086568244528346741116923971554246071488464105846993954358511000479199815476605428375477538671177394060207355406342094964888200083074533266354228643942802162408781239793675385561985557269953260696757126481666689010723642289091865609239692468219114332024860780831952084337021857683214738957574118330485929430032474214619676476740470660387628522300879134163414647386248196168034649684361668895220134155104403732400399294184597121670739240766741375677121618428218968368034211097840321510277399844114209970543949481149263201411762265948454328152588226204799158238835925642001921863453661770743077078453211439507657168294297783628578030095599367692587529474993247123888989831734051904316067700502029691545958819567998211655760172047128148961894887465210143859032179686871779046580045096933371465957160017987727338337177448418166169738510634853908341084560402219517540319496028729651485680108609323631722443162019619927144638014421513773094797946611703450430853328292833510284749997100492055643157602004842889171415774883976034249744858105716663708969646859203104949811282732221072732245393927596530391153720203435519525322115248882498464781567270544303683326984045842609680634045270533512042758085740032143244860773963431102308243603007578246786111591683162844397819373244010950704522241542312907061694722296042506500672959015594668922339894585505091932031253837738388581185938784575586313343763680630378275866969144689516578193424675887925632821346347451899745843067330599892113797226286112732618311131301191128556704252865048189741633785431184468969441180950978160499676979218949983135435586969736905741518332583909339008872914646550758519117490014698731287818999392586103573533572792860279781327799157222844397492019841094689269855344033438926912296332533138989253635718343687948884495518291508731341916374006872596031330324377802747332854365445945676752862045275630025736791085120281672935666249130801630381391781951691347842188163714273421336665293945525708474144217858188834423638835308724840281739452446035795429332525894080489209631392987486067150599210383178751235722217553740355004974451560586065386863103987365823128334469484708090358831669988653819270650225935299683501864382089763317072685028942568979804816899762369880065364995173206962692908671519965214943029680245120739732625574682304444176043889225146735408792222168618743931321132689244360644776267526136024388162466422001639431153404883102249747837478194976029650860669421620796005036733703630072434489891177959917260049678568236590549895550984282896487197642304566622744078176308771095397927327900543339962379368536766481911541645826571446654797069878379651480350768453497595263895767404247721044784703256752431914006871907285709518685597654361688681239480751511929703806985182197912061767330084683126893706808444810131630058554747247126471740425352828085956984071348160057189791729670376046888084496790054579629630953570494501535017200503821594830846078119678772632261486318944580609094831501328796305850269449761162033626316276255565541939018393370044930381807464118146004686066214738626748029974466334485297412251042205136605633697240085552611215929752011184410812766686382060739158802243783360195100456332770495871511125179293842325472702979247017011273599021110323009752276880999071971107272342141633703076553932447157749720920088541230319476811213228422410988972501681349168146560775976349826723582296624804840904605792237001341559743432147751602195295726374842395223117414422545909099463319997632933412071862295716854042639654818719397357805566063229732719969832220912508133501640228886598329324140018455472076960106375304013900078830541225060647626018042445437551062440000089953232054213202803769296954610339885311326942950089823119849869406578530171351386185376613138950066337544623002271187512860981726351303128746583905919511808340316356629266563325403355964161647437097555685865670876852575498336827058021089729802287492688069675682459033476887005762136384098446575677478329954826644124942443912422718709921009652014940517481435577855892727773895659177402369493129258334992949517816510120050486432694971652433111969095168841277776010643281488875361862450785195175460764435485811486698086218329852895889616486209322593104602049009116097800755351651878097573678844061418010118171408659004639297311075054002891967299393759291744651456266155960965945180354451007591427891181987393488126564192837727267825294839013446588663651008386633775124085194562690404924317564611643342813878717274227064832393984650941409095224799897962690228846419502136475495637376060697031899005364354604308502622336117082331044801349490921514600978781422889357070316388417948030654404652990968672782740081712103844987128800366889178206614992829469260703967414643432737875279705281354380277222531706355674184001165676927445810997025291271321904061377479132526612429129346196348563549992444845669646676625947495671953324463753444365402724667101845819264102073596250738499950686758859540796225529919435235583318619043861207599166320786530288678411805338626548205529064584638444310916491300837305690578528244122986357189074801536904150497478564202510078017814033364101558124040205644176787861288762766730662969655519505508097805002537227909355823068022892769604977044044807692000925351083230147754248788359349151717116421691041259215733428842264602579459237893182629063558334269889372407312205047977696022254844702425754004300312742472866335994321931583262203533646870017151067746359179932805169465601400700416842405484390290271632106730518139007289399166623537827678269336403428543707376331081467929015827161987366616296048718757700497652232926728433551427056849388734672825022181895212296007705603500635904594519162081899225790458915010307927726691365008640131174910781841647543259704226965359346435381356328529883143582818803295738960719808728984384017265806220536015071597916105870719399769353097973754854003430942460982150550365710000328015234045309856492590480892321154391584332381030038604185185604189232891095197027811813221512988049219834922903792267679904268629933622401502763780688900454308097645232564681394171488758551746589890655664453482015268008443601814061771321091768741219142753578138642111964492785685634731885360927633326777823260810970282337779681095359661744192238332809252102903478783225255196828821222749412777647137929240603964111057410832971158003946423822626939809380221047802652686470854404678121281310068424575314571815781750407509287598513459574229527116706247919666537805354470910421204979623989781107929363471962302193532850772737854434172209708687616087580985581091923834727429033253768414838594004548030793562100713993527414534601529698507684768907288428457902322588852135775092047056699484459211180615061153378362574891721110805115480161669241801920886692284148007823481943242824976439248683313748257827710315708463094602540833304039372352875036922595903493464465086924598412283735616961146924343373366585254591725153306355778837249808444810313952600700104359547656416013474149308006712095847537603023800354507548899869029350838494186947337859139542744123308362559936242546016698851858290118531199730577556266322027780203482332262836396473797731314307276737349052795406405296260257814526808178059053484271140675387418743097722579055414689812853985870602154510395725695172162482690842127211531636084575931718061810716570795566156003261080209889806804292695421076841989951628219719041616083179508949491795950772295646416979264762408354712808711074429516694656586596928101125494947070935788224698676553895053408797046343503675646781457506931575886470608921550279641567488949658906214736953505093257958072680216030765762371107367882127178156873842275927650615367967391251008004427200011457615389046820678552797314884765216555623188765620899763620819866518306173814842462059570188086080884197921922275040286924369057151861023393257846218377685919386881936592779997573811857974118565384026744378953912467039331512456072475594893897588631231802861422495430988239665062415726249331887984677560188366246196772871254471468186986978641500717189205621132234555899711600388121678357373100266130342762696230757941185900215961081710397362242030298231511618743272391032640983702629414323266652207052615398507471204603506326584728130287822650216843928294222995938831213318827885236729936965643761931320205337356952340226124782455641276251077550431257738099700210163833026443346728537326275467017164872578972672908913201378855760180689498061370035601935969721596729358703070601793167691635605355685093427663495082466287755748332003126374118759948322720121527519176402435519810978067840114725388580024283939092222210229797593314490243647052326214752592495529057954896536219598438147137756185736449111490328218520314122694759526283134723070265445007092974821946147136124756076974665894684897419641612778317857221834247721080022547502975786201407597533499492423871710990441514204020388696103476586487699183635826650575743982903933045242915825766537366176667351002302400098944852325290829006770221315984205547009852273013135758780914239419316032247804086281462413513140565885204654722288081773617864329758253823672526180694600151605719288030356587115224528686045966212249533180699342379562200375491417460094414503779370553640174287690686777841323116453148109090220955468544350338729450609127727555115136280420343712467398289653374042790844021925769224271033023869641588380948089711373012402395315655716620821334554627923907679848595491658502567669286977353456331472136539318261193784871692299388324893960055867644171059449381190991109213512546086039393468513739872476484665462792101135678076554066164637860490930705838507740152312415829902607528168412152880391649190466358662312483887425305373718994899201363129924811276346213140630910611741724826272933129471564439453253781977535286479644410385669029255846282430958497935519855871791960778069707272532842830023148266932375054283029138262085211881829768599137087701717112211171409492873872255847631788300242214968386572589384934023190911911621998605710318785787812162019728189090673668529902912005175943915135089878664412123681461295513693248220787342776851993177268555551824141901226437385409988054752818113636849125435018020458298171156266633864110517625530884213292379613816110453499893206074489155531378777008933790632110216726169822609877598007704269659630114849450264978616325586356478596188388370931172725832537007815612350025550240660182504037837510934081470282127671565272128407359034496319332129537536445472504191981816834472931596112138463610791003058505193991486559301108995416938642776108927161079070391158781210725697326802516699546825224782621013122152498108170846832707721824804956949125836734838089935874582349022159335323778457247388513861536875976996050365802096017619485556241168842144794844603387219903674787877133391694411547131631236502500465748572464266668169584800591924962528586288169826266372907662416368926297174308852059675962091411680319039516774038671335281751330951207667766434402142481670425038778404386042648285060072662932670097069956440313197988018270955925384080436417715742786467655510778391209179857632254848326177683564484476766369867324474423045965204462882819063538355248571243216911779642389915236024338084671124525831734928296888773886455698708156389719163915608381441662161915493100657652557945582734734553347659775123020348025306141944119919826103951767322366391297372242334947179798337953397418405400274004311269557030123775438571267047792315199421987292497967211951115665562166061159574867357766051838916824275058339719402463084594788406948644546491814056784905145696031316580847273384107010671167048781879541374768978175176588932079890617682980216806743181088556710192689540419395307514005388760165621783765412453264744999526037936158539365699937562117381760648922789628227980779250869454826564759424561395926736506397270302365587621760048932179996933176711775428410237803796798700388134385234335086203344107289386728851719352092985531602588176566939100420962797081262004557766639495886228138804148489077662379162352780311873754926772347500378931270550322117869376884774711013172624950569536601984657267702801844397622529776406813461183214387634234631476451628942523470281720422559524747563919247059730042262623547470523924848157767580360283240333173493800440410734486961730716897396494270660653344044692712347751497413595023113773879165463229292199317687013751374084216509796121954899652231339165245183812354233651148098465632957777331851548866756970550579331219569261058888551566696250966181966403349363490019072103455591362609131450794861893069179746724341316818120613392962087315284993292062465812594812032521854830330996829512015187440527732830567069823780249152150388615816593278607599997795314626028257056641187955110238136104675160271761094017783551602090460863113705063132532724141961186712652963880937354456887414650369009032282368653918818610596703078621626531261185013769026660847384754565791710304787864637020145236151127213803147951849558580895143518308405025732514923678371696422951381729487884337593524565832772345527222650974074638447823557026192273411754665905674472159112314173670064515055715666721665382807810793981335862569454644859759906055465560451674355566581832276546742364374592523832903704662203935958908347198326760355417917912939010085033344911536003538682826284680955862020984384325864035012126769901939012572885063894289101982859821199861446450385462097111754028700072896887533977641775740453151791426795811803821061314782333075191790087071930007591489446918645666842210038969502044699389072888534204803265539816078851911819246051004462307496974261066737454657676517701666144403450514410092424353686804203941910877070136367647774313796789728921105955046214722986870212154635336306936762023937227122416410927025549473051229289897630009981946107911039401933945153007011514938016608148679952210399767484804369724444171527136907494062585437574896467312630842920218770664525327713768121886394120142031004878767335530407190925400991922486743741521160965792988951038847245551980851696589713981203056948323524764966106458891036502102761564514681581365381176853269423216049801060579546850548500290622305786734632707020862120909069653848002027757888840637324764045812052698007398834583077980263405721220997503299081206102642590865159188146876736132350089712223096699556260723668200334283954398389595258810921908078398995444453283663058351492392728295118133039889031906919486123004502943479302487173371817959709818920063227181494442083817942052913637617420859608362837108842192318825467487188495436987899628305088899572705320823645640425275372279173129163695901507055084203350364998494259497703506651745030631374774305212129309446820864988212592279278426088969993269059842814802534778779688735147777314420169664679364288434790833044321788027906871129953685532372944656134786693789888816410497033250732468832634226383001891769057385592932336380757147492027702234717932449323414241068533586185092169883879706271123815113777510311189376185426999915019414549574015155163537527972354147181938461192647126430310865688949295762661176538993623898318729015680328711846824158242787014241671950799835408117265133974761091740544025348168904087333423965706635258184557229973678233705400533874048214157954408035962857127869608173763179898941866710527692504703191478679965741759203610570151245891145821583149882929415494643757443673313705363035305765591645622349095200098603487524335425981173010420222268342201901401902791470193937628478985441846941103124593982282665123915147618189341327238846834321221188139838600343264213120056503405861324180179387710046082116068484408092996065179211556611641468693995887042051068736635016032673965546574672875981541337028384873033756518651742984124228670445139538360809793320782282461167625765359609476344780552144175464514256368537847518925902583612268213829476370300021653834371547527575977049840177205118725911193586340203547110746022639546554574455457309637271140029595852902416866883277940376204856998555238820966811220211167225060460754412433738392716761286225217942901309534774521372370380147823782465852766947929206594630588265111035156372179578818974294279517796589385688261394438012909184077164409859179178061282651952772130243805189965980451612486089823810409535886888908725954951295804660248134850968126608193868059958562837607891128023312792045049406289235047780112991586806815251563517588673461315567841789167676946037565684787347600948700226492067266486500313016259048384258950066273098949846690310324460159820975508497098154309455573625239656593386347023141755468453428418609740883427690049998560921594065327001938230606057418785656056437624643490994817700962112212860286107239906173167713883206979321202353849094324089578850675501011214883739592598101374591691725576633933829884560081946657637323155831657862041103323437616316857667450004624393453456793908350580408380603877849526907641145706665164115738274198987781616139305027519637496565543077175484590887036571753111093606592219498022396000454280396331902270771504082635278477689431797724469355301618955138957399444425666177264545983252746278986127132339540864979507247295902828389561757736400278272145577882156291865637938327383138357016079605259112306264815436242788925616012037993011815046900144795942208905887774106939025583828412489035993319584433351490963136975098792706272512993198139403124205698937403602005122319124084498460920284492130117420932571868647968104120897489355250290384564309330638807913064362451622127227945693482557780329306467036175040295913819843391845732179125350873569550832888514177406736095857891899637179624075647231247835153027820825640436564534414863264356912790155846233196135982392146850056843504555081906328243892302822688879430237297593503979601144852218257473337331359061036964183671084251172942794962448130178699481142763570421411979555127305499556518892313176943305919618427989422869068844497372446801112802816587574932418934715975022984029914951942929042786887440097966362827253522083534635033647869195546709314361832408622182442939757164611360749882053454767638975751743940034604916861887537715061773739953520323559906196081486029132665811682446447990923913104154294808737391769282101317774738764050131482247227141569779050226592668702728679160455299661448089423187177699538496122984938530094686632619113631430387693866127529925189079306379283537953647206444449741880768971634752191526863470797339966803074217659828081522517943017154448714076275599888453706614176770948570556981993853655105578240741816148353222854860573063079898012317019882354032181195591397192395411704453320187966424932740919323834683247201467519343930757024733479512412416293709310626768763988568506333814381522270895627840721505905784629581185281151541409538893496708506440342430467167056000400815985723136363302463719265090852349637067395475093013134595130519337615252957405645268006054256637517089053962985985565451673139591546006919835093919938763510787020424963972951004452231551460542257427666407114584219150158602481867494793616352084347830450728365526145432143537727471144584177841372177376436686000642152964160612164164991769038904355234545952211479347736823317719428348730917934778870865284093672577995166090576149664154420858823683496307940541262950248589734954700953911059275707051033861345456798662793980768944330909116250411978289401365931274343427616726567279541321624734764592507453041334159664902757367343597538380067131661256403304085836994648809389118763277865484719346312043685941160926167713234221958665602404914874385515967499704271817793198738878020526434765553160927913625367780575644213562422323274013786261546448939656391761083471026061359277199324175146381908578874309725385585903957202607808983527220806092186247106830478572701533915088474146996484959003545691676204824218795584566504542965946989682421159961617547610389566361132698031929352330170356474715837420665806869365738001309647501275529769421643186618105549980572008927651875136249058279841953872582563446606440152006507718562683788434820627727518043978353360963689603825741048489398956677503390341794991322594153936843974139968622902250714442907673452175060751752602375028359814772939210421569999329597295125039014646238178213727499799905473560947333730964992032256251139852614060070914624317876223601920652684660198777932975923319530909710205341899132701335953326968662550648679076999174797021096234974679761546626148127733837133368893098836551640512020376395368925391435105926455595265522157936336265056581062955038274697731079888039304290731144601867212928340495212091700105690613143727544490106897570112231127696020835050332546861046333721169635841588294777894619718314473527047705223468108099910394445193801106693375344705158843302484813728146731098890837449299031775559742828185561682858424582407982740474495529452982308768765691124068693170593611560774704810212667555480002575243001095286596561853813625922979720089023218170356983032542842855306225877429690066670370093315167476206643548867573176812345428617363391315637201726565796678986564329011633069308262890737950735176433677546591187480357036041607715829401163167807710573884851364515308383472268754719213947545315711224199072403690256929748120377700944709143999479442426880375610128301501166621824775898549708152960989232379096329435963858373225842854807210381790387915004030489404000038745311008418049743032310906227573796042435992973277911947605420773572219117827826787237150154528255000776554696346925530875447022598082742789683663526592196583850140315366252046139625073282208374632549008567613290926237733269265683429171795130235440893154581416047803373133226621523469282202407783626012133873402816543015660944969429181600316682513529440878769915890845288030455113544060810221348030252522287106348065227688412383582494401884062727666099651302940892912815601605296438409511291813785602846950136036429111873996592037896982710777570278447605362322711930374676217876697420163310970355426558286529616209349900704142265767664495653461395330100203269460886065174096225266477925752297373903099612003523167949613786734381830648336472675155315728345341437079039150453888762159739815893495945670105317500677663574316992639816255692495509186885032411951946603852441970275357471320002814671407571301327148503192155501666714598052654919086934076901386975121737605455313258322789510578734615183696859190375716474131289965124947216749817405698232069427931279894441706807351718119445751772045590897935981663905909992310810766009656603819670114010084524109585892720850734424060063684183849644480311485286424547570034707446129204099311457142613512156527117986087405500148720805659357457733021515774627074058769711513513150333692694593443028070258069976044686707893447581946483091790274513872837463481366617564639647376602710474598681330458085185821449931126629649437481223758489512586580714370151019660186592244800426179449220479527822569309740645642354488325969956170332068733516589151075896144257947673723610010324934286104476784211107397626562559061617977609024054658277804690008733399826380453342053016612352649079581637325936548471381279854855366456600878334478524968852278645655780675969604291620365263105568654721180657405692439433321889066608395489441821217357270940718726575704605680845071939969214322373535036576369994056643903472369780561105894273167322284986114989607984484896169157799407746554524450505604268284653179948612677695787363195570803447021890150188829543855589798271599427142038609583035452360316593983640380111534062398494202700763499030279284779267763472129160236264118936822293995113972347240295106448053412642702807856885087081665925793682160959446236208020340436418177348536302897737566056610834697276941498215911436561081309965077252183039563599339223636732797780871094803434722711601437166826659878570227307014086464922196250922001489469000193195269891074099575354887486541133760224390842426477426921118816483075849072179589429259685295536671486136082124139517508809140160533482782710641677382292782455931012521195751829379230791693387764263399732211935285853787336885753744544162134222537947357814433566161904768193278843494067316435151967690877351043788985294234480617489839294209543789227999895889188491106744614969499012732588122766455916577211636246519060574425024591745706035551365364803718206349280691169156884182886362314136526475306146176777514902717084571602289255215596430543360497178988202064135918813041007790008837272268221483043426111596088185104521357044576434155638722706612197547181541685166092674078157317112710608434766961713583455786645324707744664468714275946165536166732899548659251431742451205043179300328028907833327021271603867443476243861346854553518611670929439497350818547900219429732887400034886450659316955673680836943260696602832658691742334053752714089828966094332528965698145916268319100931736215438273066225859678947761602991101743750439721033820484660052107977170716330723749670905424934734241030135871057442302110180830512620356906165169716799513312721184382428347500147877058350492695330241674935957150229279991803174436866935675536976972518848450028144643184392389271938526539679517212907553219817166365322625429294154551915172209195438265433594821383055974304129366422496097124257773310074408844399309136151103293056107941950596884232709765512706356012462288426979775580902365481057314706125299431699139956238784318413063062106247965555093198621055762051383456312957590449330320519223276612941165452712131371893803366173503874992935797901913086504580226850600495849803156047134386064736787167940941647628553444695495701732600919518822103388894618246002558342125891784740737463873078972231872002025218063344277207482571352403038152100829796205573559949243315549009836454479022601955493694527032972021435061474761660238218356920955837014062676037306970308331268386619213095522738055914564162923671052878639653743276957736148449035916895919722662632895543689719608455216463445749600461205898172551258765283950869645401515533693604056885633170172379724130745887502624748160323336756414730777800855084263542181561063280855436529310769759949071343800465149483699508624117710964873035705498122411741643929033412162807112073988886943378855799301251073048509629536819068278098619770169794785546971876708331657016964750668002548674434199114643457202999962750590377784742519957724690014458114933851657905391571663740865025870083992306871863772418169663426429395349082096161943566618733965586622923160788120263118079305404754770167307348794775907746774156178024911471470462233381434664415107212602422827054873116323253633723067353648990890065674103675513535040124197484924215259311352915092277541309955707537466466971212654281885333829076822461617179191381252793939523364501683363739709350955540520463687322083338776215813425057053817262840267648961283769666342530748696285158802401818086030125022579974820421966401166435757598733282878824986337477772976464617886601748496910811081615560989712541561786265104375908349721427639480834754657389328737556828733547251363949940423343779578053912091325636075954541329960644848550183707210207529538093065914207521090194607182966185654416586071150259985064305085284134130127488266518486051694765897168343403871928441841729732111025215262750994581947073553162018581378495767504743407076649448501184525132978111421652587822546394213482574604368605709008365754527920992545612980140149736894224599973685105072700739493656215032319365894175959741475027391049755327698632705877703953129629390535199952580869506258964035324334536905050436826549950968111129135326324643071135854784563536585921513684729354191902358030007626397567972879727605550927990287542170918727760549342614471580769838209133059844894557834306416595766291518859851152094698757607837792905419535348327220487219945576945784833265096842730608406877976068203033777904876988553109597836838889378477845897370480767221706831285243558073820643191721399504456621694317744659561742605749828925310320216326492827686829332545587045718198936190958622574480921423350697662365900321409022235091424606703631627749346244443336281697462662540123689228597203416983765145580383269622535538502843431251490771162894359994513880518091183967606505648804466828154103705765500362794939196096415932198706692494535682615415042313639727224404570814358831281748755260397258539090975735942223880102361331342278118514350426249479462477504807849826861480777530002118203491425011873625727305359846296837931613592845553632264922573716625758048527482816459890164410577157709502096433661585102260103604807867787768103882493613561220225098453078498980287891577940550136355426579787922122161604548955114201722694836614950176403476238196788909071720369967930481509511140948565950340088675196825270824151773554669830038700313648168567352028747608049483254132390727142578872272449086794019143323161842074379831220803687479933816315605857155584046084595448945049288274448016293071395901501337054758495808090642984745239258357549819266571546277256108510133105917328469113908758764867103462299620927822574836909240935164550925093051337907269363105643282216272887307166822186325782456438444292608009711232207694018114552653731007128338065668405392990132666712591160078744465163335590734862598133330693992746284407431475494373796776102855550982552137725202180932742887910232608916896409633049631067119562406139200412510780288581176446951761475239651344924877754043238800240827417281034325002962933680001666803149014793144308199358849672471571635362314156712790595225597200788319198563602357863560844705251893079105399333315088960360217364734628956306190650631409484389191768845529799017173091690788410481649945456423480680680513452855331872804164386761748298224039412442862005193881887513234603500480462294363684550026075910316964111791094697086935803042562171428331077140044106462947218456326340185563814571851008632397871727994196217204855609263593417291792113525162825688206607002493217871674687051069728186195519338498631629929471829295207823355993671027044957797133657351755177010444679876402814560003389199935038217246077697344354546442721267789543185605642239836636297195991206289510613088768511497017837887129858585671449642454686863671894143810479790359251394512367030367246763025792203547460619978195787344878159910849976566329518331145506881339497567388872692451070099435896458264926981937396464694189649215311666993434507275379155850595992131789177669673066753139866567740905491808068550929504255770942245752384946583744364687433651491749278020784656427475036506457045061201882260094586499208100384323897145740707990035870677421466751861128936992131366272602635659579197689158327091151540954036343721651252412756000584772789675543345004032218316556835398961193833339718235140748073060211900245191153157614262473722388577568912390814498485480080645440279694226849293653364852920300766604606819293935075015853891540827731584488864200851980159806812544289715767755441075507084529151466572154368073992537408156507458105561666940629571498120094376240791380662824812611775370029931798695676167594631722838451299622461531773809622689201101261526105924558739555358700900355517907030742063674478914069912069583579564119368777469980621924796067054658312993645038911689320060633026596943870043850856944644189228884521122487052379875755279188133465399626736146105426589336822811936723668986449636064322864460952966402110218776779736401788818937738464846474458891797328630214783287238147863933454797604349292847764966277093477408151793509797227693166544730077930431599134132300357093138145757148268237993958210377082184937639610918101704244322957700400539876539397193740551394379687187158063633983223398440217824364186500959643075700984780650441549190161232444054822672166908857707801851314820271977371742995267044726222650176516623415701298109690017023247397637540028734644434294110620643594056139301732436658644993146613715361879484343703116646494493967044197968721672408109112308140777253987716281584980363628517996917591387348862826067720562168115429092810245468692727999441639647274892242499072459713778832510281212626492119377775619048351096978409401566336942192683175142012160342171967545571311791267453609211607748783105134546300125910353782732807415279641971461536605604903533434359343692341412826540321667941066056350683394160996727676869991680880553242683150470158892455676558139280621767686085564488863131515453951292984151716014687363051559260979456032092389371704704687576262491803882923808353518661221885179215742480288097922160760213801370909478296731636377623501871139146821420715653457366538338043738713502413951506044094537077084950706320700688941268707257900889724680528030494186781980061853996089203642137058859205680400203200543313628029152120413963519340433499109430197041065979099779911675698371727407265621221371024171521347575621809498485886413793036980167511054903255205442189992863513250293083889726604733122589497720732515989654704452933279041493600195883529097566443242581269964202789902424077555286362627574023517033803273338887832630976038514992779190349786717693040159393850391830552266886763485967760526478065892224824526530473485615943238853860567542562466902261992504843760888933640118827482706744808786242547887114295238121546554552263185960240749568060052637158360340519186306751701125943114373101270440585163672265426902163973454486671997932622053871387717263356897985988012236540622445891352557493205723487243600133107169704832675039058812142274371553678216744606140696196680699271317585385071695062845351064968889794830922146241820912943795524818368186474562838173130191017242054903012517445071466553953521130385573132238095754873678845656180926912304292283574084083194154480725725531231944101223324820978154792595342066509559789022406502063864172412550926046055825849837540477661809225683943192276251954271422030714432193553582640605835220291937530575767481993706800462427574831875221552853786033310123451796889408299854820516699824948249267296172957029403223239457323182356382135354375471363402668838390757175859885918398713821211441835071472773174077706809175281343273809153949685516354677409420240474729683016768734443516333560715810115381250439013000009604070200582552606298302147695233264869152424831322685469007084468350985692031081238046699066094480089141135445098656551841072331817303315783168654945709783312012663689399612892623452563661961266990495429116189849743652356730171788524364524759669820250998996159618433468231712641197700774280478953430661545954718819989342093592776577634132863355278392268985711054370470695336184307832083224545074803276824688111054477498227903007995530940289760009240227014769107119702857310644692192775563646875008362783247292037769136645930617729735039840364485203405856413781809819922411967763626363051675284774725612784146293524172999113822218184331137884033400618641002682907636155268465493669530271407999056050518949262167127785768683912000407458305023131387365333922128448389197731008441260680502496618747779394484542696936341641706937915626521995700401810179534216793769829209786939285689494363037573950768950810296285117490462232795549413197368576355163497714901951031858826814959443970406185387561658627573794447619177991553730444078719159571014547367776185086144715326156817829849844375695819370318549808514576964449322869263075955952741237823116452754155592346634121503710314074506015719712215745979340826407475429288243940676808559521409540692627912875588735011330228761856392276070135434460281455259576699588070054438329897122888237728883236660786401152179577600467041315646243825201285759663423354703209832997278757306392989870324316921594382051712057009181134234419370946797627033852206150179811284857036046887373529354000837817954768915217906826992067197697634170887924703607140025609539716034891196260472325788821972179594649113874038379410431791529367129601354095441287175204189901519163676990760037337674954175613695208337707727625064321951871611176734503804191392647702844291700083144862113337816892537367141913098786802849203262622585007343881587366525398685188123881355800242162753880117436743426889376124340811666306738462599411662142111356498448309143142244374529218515431979756864514163986457904771689103721612798933882342549444203684810190055776418681677619029140671158637115339331208635243899998717837551713382208033146584666646330922590894682374218775177278987733193788813064508576857832604137041987278681301506013300567309834126588846212927275490179156549433545618609434106913638993132372969937148671170826675764599173482941700710979600319973140568306153984701338496502730915355381876710432013931089885582795505533121010494810639963827524458004891585659243086092548962003542457509875400163467725924934623091994556965150606346592406554073980375542695495193190579399337260557820423348281558067803942016021806642793707401446913676608425014631911446293658846424771310541237382366195265774099176406938639930989613964991557267788536578904846264466355502485399061327565536227074719460687766842742120981345503249101201534027497605213932193475252615051853136477220470390933878633589481562911583134770923036884107574436231485147129624677481462033056998837419716905000721055525932182518020430401037815950477092922725260918861551949832462289252890312898223171508106588269570437652777198944950573249421163739457436435355535325403999761069894968134744895361775578940229086321696776525300371845689046680751253345606945209322165507315150389195224141452867440017819634143511492105759401283086925834986349238159856758292169458412569691336795989344579873994007523839366229404763413193980044959016196639974371430059188289377367476710136651105294733407555506736442065920292590580144699287686709904125718120128145320851263167965657340399697692016764263869868848936771156653450978347703435842693674187838158257868112416694624796578513026395134891303388350188369134396940297521438098727871719058071182133996273116962372999842054742673578874923166699706431629042207384383154907183236200423441695667565620485554690774641000467878094537036564447845905775534104085446731772996251463472468272907371079379663100707075692681781851214665524487534070687621184220664857464126516870348085809294367978313042330718861441905303313406560478528409317299170201945390818554128538192839539042580967535500932993564601747086110160257288579643405924833421677054632299001319952472243275056331047800270027532982538932454619197693621860476243679011904383576603329478728605416091841105022730513515228622096603507518833620925951183436809705453836893057811057492402817803663099470955947638326591809100950891445218378339801529171527304251472727610146499254040623731047920962297496025933736447551067571990382365937969662616509739662171498027965403314738884343298337611022234906971014045832335249249962976668874625831672245570289007297007899455056344010665797667764649270954584655387710748888250954731175131756226992557010833376633801049094285944805938528195489950079906207364614173088240820909903617400759878070826428118145891512700734161375220856113543154928235693392114343015942570671751548360220239239900684615177796224003827717072151745216905236152224472396704994037519121266094296962649927206762284155299785754400110622303514827048869160905550090956928481093893155095841425382726626119646004006916695728973608520386547879489544335599089542152370629076586623279811604160521807853220729408101245927583562347378147995135782115347263420277743008863472283526541033007834088687138605622726507479166260756327534435074717926742844399705432493340746190702262699651409344481024407725135794958798501682205466341449077609294492469589797845436003833485884504174043578118810544224084771992188312535121088659798799735360891848242423217452584859929770489281091975239745890282917886745770370272825065847069223792392790490503928575232060014985023353185142185969338587072016692998202273329054765151780791137429307825283647660704780486720640658391377767827266247138926720396069889885175447323814147143082127915999820116528486862504009621505976690047185413406974115326573063744148809300229673486100778952282755532933825747583320610645232147835737991221546145527008179160429242278553340504492383081777257001932615519578789545489347235539349241405630118475945177680107759989173138376568495858859365497757242783419115357479040931977138956024535327052069918592715961111284696006018283988528086163265880951456946605194130625916580457672077988265077458075666133026430498683188543386304651958728954242592486850874055226922331355878383697351410312219139276495111076400132362550321108653819668110567093665336819932049545642326444359365610669629825053665017690765000792692421378740931852310573633463922613144186785643805094601158093007547076857637773970961898717533723953382721114929314868227817976798573935800548222630355145920722616083202777819787579683295003769483173796714190449511289941676021941514318931260121186813101887496009512404084801381963018532324787227420478948365592432257201870025596377915334704858872176741705619745466844421763259778298644973845100732603262645124638616942549123179544381372161299453507902243609610471715674018837246190531140523287037124805881641950956587813783366409286175852952863087877205233504009687127583524666420732203704955864851614228744979716050374503994321989257832694943920874275761654542316859956785711500857072131299506509908845184138291050849475793389296055161980717798000646539011254507432800015423938672696392676721428733866846385090971233102425792631632301983543587384584661071696552538326484908620521162022259202769962865650429553784843580360026070983517532811622539726038962401401582738568034031785440933631266679383688403414849664148530082213032799239436711001941145629243355194222297560755905431442599731324932833158779386308801363345905773125732025367171415843967417197109347939700764620627333634059763288346957285963235796428773856046064059688021979439926382969288038401618638893324357777798185137770132758724432328922464822625297045749338923007224864976340568148771022023007414339538367707822287344470140641899702675230851206210304477116529592125287105198618064122799694802531898764369388397572256213251840754024761872658868098718293812762521919096112417922670027311783155390131335996156377281028018753173655053451502678579775950899316389803474495588486638593191165985397950525597790562711198199965292082390654822907806115044818017343700726191154354827236006805667210532292384039017608938779848282108478394683968677086423073531487197650582575938510768100632355647980699590442208201425388860413658776141634939738241179916554905526924452970651247868146192388559652399527340365609954277548268885622920198747901863226312453071501553298884405289543922915572395874362690579572638884572055888919594106722884377424290620620101237678440431914194839042429669481949001587110277828148962756601723531690394562127895957785917302425018658405761922204509722419974215661991368785224075279492897279120863641472585533779771667555043308591574469725009944486121363266744540579814992410300881713849846850988931787988504454903221986216858312587889208131937393790635416448838371831728360574079599164905887828775944824583638978974708156822489421594006553302843793265493039662851704588978587544762993960577923918877190458603500753108223462833020472924999276693818254899418883631183314716844633851185774206936193130789676685399688901080490195447966138329723888565853198106367738910672023520669796567199675352977617441706444008943573019562563178911086371803175420088272796469671019016921777155155403830926460558627078980453650271482143507830901100672564758050905544776233946888996913627479291942542754570954883466832173677031755184069302964413386777813788558994333828414049080340611037937200848849035066059690624667306383574994671203262778776038258661866905863204564392140866636950950981212165992976636822704466460541347466375929605765919148622874801289685328219265528745572407972093279041603835544576166139203253472029534127888434889534862689271036738317950111990618932516080358094726704438389392345234107027869595020910087553430548968376378530598401303028154893152381282244658943826371243246068332271096373156782513664812035357120150888266071837813707669103465581469839577642398225910593908094848921747842420320991749800057454423402266168163050600777113619468587565278492124588438021075511216917079687011916200317499944019152986739010906586700226869991968679906147445275733969703439431824922441933148830673998668890399340186185390530619899725924230833904244262397867487100794183033595108212714752673683721572389674129095635533702629676545955199083856762430960925315695797861556745961971829236067418853066656259747941487316586390824979598585290588761270424437074818285644220876648367927750727860613745857285834947719660870695345240632351819427462463813656757572966158974782034674802443698178295663232544683255572422881370445634057568687852140590741775921331714743123763630750223496212747466897049532118631204217536106002737773484350084245389312714521291819985946987190774171301080293509432683156740080693800442194477987295736979441306432111906400929839356669322443764741298037568112127574437652686554833230845592373657805018058080676979645618793844503744403860672391003512162081670161663145534051395148087297658694554261189035475838324107506042171882408176359849017012854904158966834967534106174818080742785810766308841791878357900790963829222232751185432171151073246119634402623061168577252648034783446615659470588987100315408606108196792749464313685977610325054074359648887927866761585030488190258291884840070626906855969345701822371493407097302148087328760677892092882775233039413099401660001567547067566479419048072919401183503050388783164016665859628600201780550715894138181308895309424556756253340790100823787704507073790593860593020400227924914797343217643276031058738755559733900233497420474143036658356685020438369170822862242823018841109712109245326180234735823620460308709206387078306974240475675262825690615576887753946005195443265106198561019050542754969948999604958951124646361271497176364712787936016827674585403018349337309301770010298007180267148434458315228428407945036745369239409062965879526010405918804770950762678708385782696517201925771928108275939826227893706746293178179887627888330638538113823334650545891260889433229593297134753951881372607510403325462482847868062851616479918247047472821993838382975694620517721880546624109206352477361554127656820360630504230215806335040350497151779589878865297650308947605491269095988151767891562199780132429071691736064320755613426998379396785544597082488435752890927737037083072581242810375421488721877854558222758933718006582319769989635053120749024536349459325849008881102766751697942148598363548901240196710081873024760452210847909071183402902803493296248165320505270037905440752635601890963589241491794143323797145724583090615516104453258503114012777807804317377000343383262109556616478398760461679971057814426959282244011833548709713940698559505001568291493221002618314301370569258025228039633023091841325106422376021744225590681930502887482224696953756779579727775355999000287268261246152903546201681550534002731049257805816133734075449056233531920263427126167428627878409840482185386158340997506895240498810501019947943319179105941923279520468094903950753633747796106414506521811102946611729823729618279850883557609459006775050979580542639047174927860250430545037579895862672082211307018383616802093207330823205364337627204602927425074898864858616047900926550276175887873190678357345755511049033513071041349209722122276921375301013831163111562702423930081484528714329859059059227244679127823393427130854722526362817454612227013345556525026708458193256658181566891085386173083713290459030746988417567198483154960036412984841206793957746952760622778008545221096456677135874051301521390043730602884354638257547580332110709560229268524843155291250861942642408124133243906237292537977597853327623307082410341440894186464654287205370045025207723317557472147525768846952578115680748558484632068842730126530926053400856278061464025562855507914923995400705712671149482411869768715852795388729989205577668504775222270791030653615661612808789877355300498142279280613874590628827140289039582668586524281008880435287236550500843120403063565205974822669765859948820449408547030270694374864794328628306190845195094507042493963900497399043073265347620860102065327584025298942149192841145630727968159182426266611388124612699681955092194144879205463100370461013530091026561182590962222297332173512060331692010258320230527299073493067140340954150487638122987658852594674624931895596571790499717137238106052917839976494477212171352464572068952099832029634872061917013276475888438918420776201463467222539094083936552855019207244538748788918733498381026154109537467237917181294473409911015238683818899746685657109861032221586512865949863881264234477919870088441802384574354958491694324126304416302392538546647584874775402415651538396190837318525856851566634729226414850001275878120997764329977945629377204719581044506099867071806304965292542405076600914903763519799097873954672651433410300181158516162066833401662010238081588311661555333158706220873770588151629082236930061570795222806372009153757666565613552423273630750224505485236053809070732892121138235018213286300461937478576429271134846297502599621454836306202626439606285756800321966015870312516091822800413089702898582394794013606529585520876313326900517464206019349384147992803609088194148053992095511897909989186900554351058099535482446132105827033872740287023227509363463926787163349885077890741652426021538140255451737458958265927434322898838789481143696889241817979744615908409773488873404550177912595773881549969150346135332089530321881641194010602223015084714646656610727351254714008447127822452408611939534175551519913783131203887838563803095212112416880288330554118105680827923709619651973641556257759277919853011634517783269992343157269337854761440741984683887610166512788143518474598106351074967182779475305530107835843935352076805658099945511810746863997776505073272019538327015051360217963249458339353263099155874336734777373854385058543979778647066535438186570002790131869257761681651872494747526775553506796947014967519489191508678629211126519994893690202752698133573089240764388468452519912488116625095992738829791959143766867238273323016424989041803751573803810370323657772780217491111235483079919211740853353327450879347229673587835930558229420482052350687073169965639405720410195102590853209915101956731323219027266245754250024271733788041291802060675833054743188318398486744985762472042315025843325738985384302220304511369454984758098453084116102628177308249229151779802097903616661607938773160042735740324188513269352142603978481523036846496381964248224662519777374255844542103997106126041794376040875468885218734929504086763815912838889048357736200281611800873379833262845841476386443951137385621108196680202076276892039043931810712931743375722421081605029470383637656725440809829897760972856382831800783947572421779577909042709297520329116429656055609221597395614365255420275411209701804408222786423996360148121563762457695793648231403568349149219114430669186360879163888100456931997699780990694838883389510923758879554948278692570069936805821205838765884543021801419773350134485457481350890701416891144458071307603602826576437858457390418507467894163927693528766343534496051687337194714586866855309369819659594425159085775463090586457443411868920977122442451062786920117605345520651508971112477598880679952415248103606904792055760667687962347555047620918647095704884360972164845101072873905498321255323160119075751595262382634076114789300780601628479273127186027295381252140696203004174004766681994919565953532096828798566811583285371993838479930714204045065853412863016577482094794147175230206573155884140471736101480880816497410891397239886626860638736681658637446409357727797499789980305200511454854737904501583258510361771455547848320345309290228969093096819124734897171685083467388458511710876285743797727172406233701617524897668866495734403273064730600746105472031692456740912133271265956845005327609165986170467394895189763080009670650476208664788394003868394368487778780794004340689505878252046247952532744385357940262604239354224557299583556047987790728563325677987668248274788867705595146325543086327727541347012248364509708321912974999692896737658575201012863182087426874183108081524775686616514401418699799726697492276157851911461909349941572798582264124625604987382356550709674031344379632484904412505724340572019211346725047669924093006349153410804113971654495450073938103241663794489512986798663769555903633371449819013952625756749566784554990992225672744070416910293407887882621705179714826536914945799412804645664993461878495943223455193594984046691132520252888497250685715290829657454051886171221328621947561377377709647421282075437346569335441901513642992394659523089251127668121946396140836226720329226133683424271495662287728475746165635459787020274310117939513914969843371594934654926050269216565673321982998843343776877750363801407684427065131606578085249210447557311761144337323667980634307847228296855099838041393920856505104740552258515738214188325340235855010929321023714207883919023709132866682336971877066398494391860828558430101742546675921385441516705113279649975824544412562920059232493500741317491661491831235661384585982131446390397351734252536469494730411752666777748832927715071625688729228594624881843594600919664051606716735983145635209172931695421262173342158955009934212163517755287331660419178993506230910695844033658663698327873389092462065878610884804171068884641651969091211001837090801483588559591283730926557761349120216767325157564909795170659207502243488672874598418596386344435050533821386636701401400437137300355013083485320314537674278889033037746808508421773477578808587805287487917906272381789748031733038684223870065665150622349972498151456005112873767962371276288075229204251993367184727364878230324127247880415328536633261897262763652849132107703925755240247445397225481284074673332080152194259721139705839975045437039434315523630710823476639946178019968999812184625827404159756987986330855645706235525070330047265200007942919979973686424681635999642539080263194595830488425144581551397554596887741941709217410800513391754951196668951296966350211075778906946463152688803628643736440074951893332198034582959707271512241565783303196763031335722768056118457634018573264104770991885664652556502268786599177352572313094070908632854243249107600252177692471123140032830306717343047704729615121105736191061370104992356337514583647536101012722387026460013237599967947203112165767390972838167113511908454989546689357164708932820536407919917960456247753434542979960066161300285507518306826586066779760514517564515384024423613220711741981869994448686378214755156908719444233238424134424850384140978253251902022642082719772130195259612368988557501597778199728655527894476746324644585682706375001577254165048120716483291743902869080645518272312005211312111752181134196414764633990892631079708493195826063082693502450464200932722392946230711691279356306665127452620313531227331790749091971909755454692837873171997437962165851674777442647559992457888693770560940000600501251925885932425609873890568622567581740407265133546254986232954406341871758286443523128757368853354124522801642577227531844455511822207103146017062628039091061011779634657781039211191760531149292225809178578007681823350146647488846455668177635205873636620824636254964024778444416670496851110862043313136989306653287926728252778549677586815537337850453118919608330298808035511058193711326737480354950999325568070128696138742663458668508650148227330583220202049583210294179208250844718184090981484005188814670191096084683266627308376583734624933518724805688107616966758597393672608490779866511003978420393613280411324198254065757670647748928091261193291392208092577954552039434191803839425057797789205376333222033056774665958106142908799328903637529206471335269809861105479707380968425272998762103572808883094142655251138078594147441010519370471333116049138144776820482712736706940008549800494239893362734340579144909211066468990687398029487609479865602530885986314273652995893892524395340041344786197778904953545458488196206453627430266228607681013587560690197100527288093265424411982130038234503678358345561818077544750850613628815814974089604321328724533128844030621474624393938154688819924840917316494231181706981256915295182404940370783414973860384635929029146919605948034442540086312727976762787005328639748607792375304360964880108840111941169247568940304965829855499834767581857394356635055917206030739056738512448848835783803539679317975383542130178061537146954744431294743528521852710013102222165474862576721917542662979465733821338151048835072200652987874546806246051757724347268522941448967847062671382230405228195283335667241876023072039113248487416885614710251817795638373449412035914885493543930355820389794686045359020067935629542481416632419168116454785575240898321118895852854968807872018630405153278173135925093150277366481088671666667283055125593363449422379377776581965682907757585313350874517304458952726252708011316151443797989510381978531839430570822614407623834051770543946154486041554975159128964946630044964868531218013690650478616278376233018966884265363005475017461096242575131654389448498796318754375044910424992618106351882545244213189401229942109496148553705121279764701425521031131428401702763222765046048340737463453446899680384689139976664738156594347964211034869572689527295187232939744571903961948111506695141233713539682925855439499679584600607875975282834996121235311284189481675565426919092410771320714042650902484674861003874129525787888247660342697249892614065480420833969797799165441598601662057084099261157750043657639169945387347773653609004215539870417766496618943674261195514566843294844958856188732947651632853295327673893115250133106981082720724033912122588860348695953748320971902959538238372452639931277625500083259035415930012648682766132656693832204765396772580741205107922253650293001400399372187773259242776785881662884868430598287635624601623040811794594762752653266429725425863999844954796540710908709492799564295107071449846900691533905567211157213162587206866887489079239506140961495731865137358688733270324265507790015901036586704537388784636468462862817204777533856799955827961250878142818870261805889696064338880375116246720735376464008727196260835915865640026408251338125779384510318225002879552607931743387906247328214221825861589932761260591720490632211057804276336187278536825851664562731118512784611887461660867597158020735129678665639484031779853057589739964138173276993241675089385857984800744245059834842086079638041502430473536008792320249623816118735174801270025170857541484851485767671306756997534582942431137781363586418545879438409871628689500654353894073106871171911810904093889370769128671473138841120574318231093750589480050707161083371242168589549950009113433287847835321228657033013547855816126147357068906151695450895519437864759031983344751568234114094201558232703395228532369889040544971526034505343488129891987157226848218443550172279104982236851207774244757728615352324228895969378781953039293343242756646520023073664453582605724811365091187480066117460027792692460733809028823692394714513352725852422887215670726950889069994271707059148921835653735485819279718325488539345030006975230126440832444971865483164276891067799907209441469967266532799568950031511858764281598520480231937195326610584096875512925992487548761915174036212526935469847184621245199742122303787752341101179564689171980790666021073111772691112154064186856351030632725970828822749664713011801312108759321875815782690740937973248317298099697747552574526464620102646205067316869740257466020602678037487342619992656031360268121476688314467400648861025320982167323898502924002079289735861464648743976449131293165581557915372058474821397831389025957481423601388253287023520648646266757342792228497576675435971794392313274159809026394064524323715200478273440682649040033754029353963849475357898598922996910124614405193468905175304220857099908887245609241499325800988773596714316647326674066844339150126618120046980556393700928132285019172807888345512525454942546531776470142286323938816052541581617683016163308628994873044908357475122256858294865597401193481235028532974747097935197117237845481479094446209736167974988750035488185703107940993065845926871236202573399733508683343321047895739191718882131184539338228833871387965071596128695891297671019342664345796889415252469030057006920167707252564444512304966290577599707955484356850121434638164864999883010542736767865024072731522998566876942088660975536573868676249195904978162486921280259917866404336274414204458689252677257345314019650933969298736245915404008720762524028172070729743148589669313124461723216290228293329913882138936721132571053334902920857041176968050856493924603494795350459330489491147963803595314318611202808806317582734880072980598800519176308565894612436326475079392656761218731088200864988419929896172292050072440215434640102320124931348329629086297669334119266267597064852219299700743957012974153952216111752246470322501231730237883828058255224536921759146196459603960850569196046818910040111741867574404500650181618305552262432099709864371223435665070499738634983561636142820331357916613173810643570161000132109408099750912540527637188169991981245297771100951100569511975363339557766477601929810560372140732986046962705354335161525336753194613781723709669765584924081685293802809927625131931366412873828328485275107279641467318558584921565945509628474320375104726751733002481094605852703055381058648470545226254585986496240807895190717742602273288177303555215296786414100664840807506321098324528873247361971388601721446909284806366470672720842497046268846220299048573654642567971848375109295761924223192332781027434178845056516592025571994257435260242652094177036859032454203365756642792718894941766966215040096161596131047355385758411727082487339782388801392399919617873688935072779810084298015621941902531067623107003414396856750812297089175886650347354085160780241014880681489343245862279464729773321522064551263213740829688177228407359458638642258381411864872578321969407577472118323296898826396866331194325222818515865599566378445525802918716970808988902174549948166828227630058205686340669373858686783713086537553260392301962227385568518392925026697835104096810172643862517838267077200196480248035489028859727870143920523512113231672902199407389942039032142891879826898360892295318569953225629078702709452464593827959716788656105602135997599992836116893134753503298149035773188796603120309547756076077146148672043847235722313509109426041428625236168678500815586461396473862866978972071390725025268288721743947994517777680631744719528072658270090573312342375612133966014790187349511729035412665602693714975995078571261112657542469803544678175689689820615101564775196404742709284587057653946125392570705684498532468918596173316722155635554883552954586662274873679384915181571880211008077544044668667057536675281722604163389129727357379824039043697440819596795251741946571863042220158753530969769809086038097898128564574691380976608271774052617680611812321083667215757831428036007154317611027948652158286926959035496148852754713383240404202715392074546922848095219360268743009040996435577135478066347204283878392219125426195940920407860766688158941990609025519400353788749105071389965082554047691109767533472346628730437385734102932109728497762204566281277733716989662345055292615199487528252078763423480606966934867599588298727877810851473309648627163591057265371864382465088508050058680162094724790804320204005671700332151945374165707408433711105178265355902803208949824234334954444418202253570410122461683009596184384107956070334915671637201053442529089210995835580903425951452934163192047116547385479437697181816924607539674562072307584396234893309795576417192161394122104462694139230728881834979988709952831247525388770337973929171260990984560872011482974359055084028795477133889798894489405043685278793151526715799956478072922971860549365019097867762253405640131605743438524338148200555704090244232212004502583172468099456370903823114447368321509744002833425267375783357312825118966100105834088385050394175800000451800591806683794642610309615549744336038039986020447548970999835939685403443694608959938035853023318094314770486925064629483585446554617255279642704606762128842310104164628350913449791536523427275758096875815590383437317548567116781956148502375756814247860460912626284114850031517280707645665906961599334118519191323874402580130406411085197403896229969339224259500662436937631510969828501895737100283659698111847936518901342295715221241152334751420412625927349673870546486523943805455575962593815493363302131777573397104301578796734214071345659656939403218439159923556810645170383677322748119222284039809030190007442326054853241781466337585135585922469953613528378836406023280669142636687507558638834745428168544879235084001092364392058261764358391829669627325290176287269761741923385497465726475407070036525980044156394913915388665520068877809802905675993322173606592997196010547134367427296803632517209787778053330207457570214152570687882169673692119278530920965550509520222555275111055299319591004183707041306922822352751935260432135371869784308571152741448797911099254753618474788119460166001988203120132749977010043746509476231848496862369722185348449365936058197180951964251547360715052978282122715997788669777851105480934144516351946444771157149507678441766503707757128763284887050675337189951922465711656971160938776470478388200651311003396641769234587998894620038565516444601828538436899481591458468772616399167365220255859298164695273840037039633527167879972024070264528907832043360682519533004083194394159931962642260374477656319475976725787189084395939865345947233588401288911941783358079711617020398151607928797732352144030977631435117107729012961940547718543322945500120740520104953724950124947089548439459147591240983135455614728208276178172728244657385481239752129505819843935226645698255315635065347393905429762482396593182949855693247636653820365779225713608816678834111711175918260383272521717633209566779520381621541242318170281494517073639149447151758938710793411318352069252835877470588454969708218978049040988807327674895520178055188874460927748187652251722365366510524163697451076978334826044948687981251826880127999437253964090656555900543270727999439000592452097849559139336592575720183309057389154985146233016938305191317101302560700061437883867797076565836466154907216621563237887732876473264819216392841236363667971283000573421700612075596836201401858562578487910833788201682440848708374695616179593068162443923589551022516367578553520307737250714982209682569711991993552091506647575873429703074988361086068564203655368745788775067596729164666225310730819142442837965212415667905718866199503457286953570819494660491360809119325776691501443580655567769258026564502396618110368904229209903963931343643228271209055792372268410876598678116371754618729105867923534175847186884180927493601845297664543918147008128072640852358800515727274470103977713021738740707686149504846041870427569917071153049349175501633495009185942614870738927733485104727713410200835105976706528701671303285903482116285639085713273033453953803848386965306208222844036288051488287444109988811848123434923648327183258531173789901192075436265446169237026351742485262298995663498692646925605645299374934351033613960190341846046339061223872640700151234248173103097837777174270759370828174619181343277219185909122540069330697236323190821342397967822233521312987394012366515175222865322394609937741027967510842389582066632718660712515828048660373442440331452727935942615633784266967871899731095285924683683965165924275828885529580442590691613952962172605768455588954584101319665090044531233582806325277935874821255030636310394851156289512232782798309731422444501300186846835306465326742269365034233190005453610084931828012725818563922524642357331469674582715346459548959500722397287478217117464574873282300242336401321500755577417408903453031838066238645756581758223037145846623715640212715152684735964438270503198562318492463079081129026475237352325020229558539012340202210476281924098450342251489196181317136557630203463203046752988488963764765306691022562340374113565512565777035823004751434360101597931954251907704619870839241719111280048971469866820141810026116512560758748274497193325626910542352094716623260084252720393689719678995074753251777756034517842989784576339202062953813059710200576921222815120950318270760268895405874983578100009282110987602534067040704347922740329738446659053627259277148089895626020302132305029932216748124108635598083039506529780159831769162231882095410005458739490981634320251611937251995540761466872391127703439613104263555949499458140255429782417867745312757243961273556360463457240943014737272956500674404776563102387173518953608487716837231464004997365751023614579280033927188308002762542026197773339846783140489978100544197624245584520870388909108301133826191152530222039753822584622407544405420211317347148039127165245393875089309856547011761237345899857230139844681108511967939060969281088434030349314073929561368667975921555238357901296104364661268295487827606013851661178144958223219769735238233373386263005587144306129342427499276217070530395834694725211527306806612220159831714642804496697575088632607685879416683873840054485755461244841742950632559363153104218012872380171414416190901883568587656430424244942058134331920093462039735588004047560311796225078365593600657241049901937933438734403132222001903863421725388748782160877521772549708456004108987643876676801752999966448676813158211087803024051622080549212196646836944582012969101773222591924665758737864258439144481689246494817195689523577532719400913933447855831040263575932604924164967874362810819929955622871576708456990889849966865378446519593664271806121313074981056478018667768385884589223463898503428404039643992003015052219291470820746084902672559246057623973232986824549561142245181429324176662582956902274438861352565815355968916253658365689476902814244597266232181825162170895705664628095714617236769488565014850671650262731808232465764196204366439391058015374390396417031428100303002328973302195567756804306094848874652485055373178210838773897222737924889444324358712111214982388683248979934450841640397232516085738771751566572432841900952943218489084376471761951552785568349485300795587646213683088043340170245846560382910648727540174260969758113800916935777320942650492652991006958590374803205579606365412213841107118689517366283159699378199566897737651491097336310390025142094331652941004325449168874513900119718432326035728311746280502178765060186855720868326492534541689495483540458006673933216573571518844025835743796646622129539083118228377070720068559850100455815802063904835078678407742850597623817467714359273141310966786914933084523602107143384560314542359250260376824570175014197890955997735269450773357184421533938757382828345220849087958569414364139336215120667554920792877797462694622739414304455535279247774819264986944142401088702131874408032107092056199770017530322831737907732065964610613318543108811390793478696808011992091092868414287037507863646019332594205636157748597205290312745937763764190072848047359850899479849852485979767818207358557855298442838106974207594172603515095689772622839458422420778986822623561916943696488742419921591027948240091291762030185851129272237900322448656285790114540908179075978797652212056290648250315176660512984037276012759046831087577933706139470694635941390430646648624243456293475863285243943142674465456872028280033056890741287135592882590920772470745654781698123642452623697858686749610613759198449342375850315943423200215361556313444094421366541586203295031088127223135776557954085396978666728025538784027688185394193589677616621797579233285023014352207334510903668470790104424833796920414391954404511831593654030787335464906826844583689975240506164302230753263090327533875812460374859685305623921311472797568460863219711623923431007418674568614915775010627869012445300310736177143226853958972700799090870656920858480806553982597969748634139199209214084757457252975320146094361981711716403393273047437555735035566545483995614709050066435167257065020963339944807973516782612938845200609351673620628843920356146149552718456274651538428813816929244547882357734907555863916417975628125508616677076743391999695314577721982577702194732400430492929249929866241352562860053625509834021764068960485051213041245125997869674479881227772537718838695306104851740550901116282093129367987213573936809755335721868873519327047798028071770049355431410669776792765328296415379107321356562561428890367205982797035668874014581911804674629657852917473704763231314333901677884466536509868767878683312605682262270745376543948653874082465499346110963608602408053530027688607836287380663779516750137608975969406548274115169307058235739731835763429235177370303967602208420576313675619381763930794873562730535950917977278115297974200583454978649727011513215557631869273386676838929703804590012891561818489015928568310739192558684249739850504870417446993073463253658337457293764289970073637145298804822408182994591175868248474013217865109290684680692295993179401653996146135849771521914536441952868743897762140513810497827599975543550149112577217330013624710824925550402809138451077327853634060949623727170953089432410158626374518459007762120405552838658865555669684815592868321303320114144445486788854636883546140772398917699881543488550188605805019810569520630803660813102443256581798134493317120604087355100744678129960505023833993616335161941583690086968536011104135022599455656751972750978078749439919824055249983325590453142741322732008333095852201839455018863746901703077541274296111047644673611485419162575738282845486422677349514447436590471669966385438983910171482938852030855270601306753222756856212433899371648529794122509780715039081201952619900272455411170130033435678900904768007154399296171450761785135115838579439126380970114750208824094214488273591406900229455337680212203518649910137970468603354678831961821990968212661013107157366795688935354009169178615543694912410961801104545464416096165828343927507102576179239881939708466803178588982522896408042106966360330643387626069105879015651976384205830576060422070965982179353143066704014540351678902678572786366097057191728162250463435351345922383606037193012184722195954522935084929770267924106212810370462913963034041184674717070585455709397849215331894435301097964091605625848501148568535694814107817186255503442914463591143705756913193886193850127548937177394805862889423119564321265132757214643502826507189115662252915287179625478585636568371667242603128860920991522233058454923521080160657720651720949230425617555953899488805659238879959396728680859658144348091955355832810991764334744368537456971635100168821911105955103600258810053216680246490565184830483256435795259583758520223321763615086321162214406369972638187477794553242293902700841245375053750702816459629120204597865090853931201237983237256889754776067556842618797092540585337217779871976436845447378652094669907681876422671645716065649954635218415823072741139915403358967097989144708507278817798275542421515001981343548352292616830784039367323419614748908597291701331868126026308624546093970117967591086985816005649614707116150221552024645726786049940077244932895287572401365394960309011096318090648506389896132712485829620102142319394370266087424653452968363987087441505488640944579146169179447861610062631839923887301176188576647734388982183239256001999543444614414476963330902573633605095243459549556485826827961067317683873671789789857822551132913273002812366911035935677774917507869940476654207372056497614078767119059685625122043516512487031217874998638794263784056835103340253547869390569587215017416826590966360386861642386976395264536187129111087536284744230162003442171934580320516931212616790780209646547355662313243931425117237236178823655412083687350810371210318738528393235090345800504063176634933702799132957861791612251706491556485550760533463739134200877249726424306885784376015531769254573946977174458393198870067403935710773866414330102631302488001947142872691012526251343158650906702909138165890334027390532538143350900000561378691194232504640808603642834611121167337809528604438416788391608030366736441988248198661954130938009333175121866870541797822664472356033882315294572371790786358660807134355657714644500292867472312535841343955097219402827451379258209730616334765821123351170392183886671883783806655220413475852996302384735728032249294130659108398463806497534830744155059276481767472793406341316349172324579770779366030451509243011636017424971056207820532764672484036213952402455489265802974567195518211071150855151048410312989841813045594671853934498585468253986902580448171335322185732995908727066677994727411362970990773237909188616923120922904935460986453373997085123809262457903895231804083294809964053578084710113957019622253657851611944041577994241067079158167518310165439149129173598320071778167679413868402908000154048225117948991444286851885728701096860305308844390584023308569695577226934629899151778880329579395241857466445407895572954840942722598735101688659155915364574212846894506081379797936641793970169806996141478712342757970556141852184573006734488381805546287460617786458881226382474221622223982667582179207743072884202084038000049160127186256770311804837880692103763822848125515117592044926293813655356941890538031328972735722166257591228441998704019024159146349587564668765985007574558425656512480354336594170625714186748264776260128236014663411500488732363092860538930930575225518103140623130601404444934998311714877200026011288375054474915743118610028083722824446437629239114144164727532438767294772640852465965069902120507998208930486175773448171154084868485836225630465032549624617289645725086601503642809275987310145289801571725204800494907328505901469248403947122309920267727553551437537292520433176040530138103366879942418047234565161505060539752640434169302152447141482908001027782133565253908160126729540155434105984067238459378103406638946083799942021115509033868701694031371430946513965462258583579266235908663381376140425662585103059319753300619323317099351639390750121567123293747876322002386954475565537497879911072168046214231521522254373071814660719548292731106538405367442513325289866149683822064152108838882050494693876261929830419956607461491532093779037102466787496209229176437381054827809338073286906304208697568256383800365579860597171254630882934485028182153441602057235040063687745585313317263010551310251277930445818210572037188023816572088955659485578706946087721922323820025349214644121423412628745825289131842206069309425777683541706539318830911285299889112769812875635262690561273069715332142085266702113502115721714601389957349104147847173246730341291239815160168134482398162119795414400190551176144638944908775431178399174540852308475395642332444817715629441067634441627721897229036852054412941536549002757558527188346338663073785209083875522714430639208704440386960102053664521579605435335570533207819171334506911232926845251125223727288116417880374270463242162696415292628436616988859628206151972344217657151243411089935022811847300893778768358219410605624408670269722567123289522607636701645537468001373383521176797738753005177558640302065811362666737302392889088288474782688764550000235798738032422446828859334980802234014362837757279842455188827785769628366514185309116451552016350132793077093143404648502092254583816064812423142804493384789220077328475800460498409389110969361140209705221112531189643479058237241784107111274642741836467110849818468163258416931861499222501276546769161552635932643670686896759209236210275969649819727391925644258263757091949500019389869619873270144085559987889406715661193404275058495300475341558738464985714916694164637307989694100247903099768421045661961036536418651508636609062634098079400642974182973647550418662916710565538493523019039392722459853828675183059860803676376264799519607060952127140090404174222635369292635895274761804874275224604162581959830677340495741801530565353807313531379121100341195748236138252054164023206647526959796666967917383993952870402383690611537760797648674346609541547405332701419213342142587482371311278421839591439736250067087295232158865458034779402280597616818299293788465959653020199723214935326140002125899305087692744509143244810435785084307206666197208262943770077979422052089607905364964405831237077194503730410977807356800020912874311695504239178778884327176594109186209885926629742653377074234465428196860132771317708181546820181847356180148925616972349099040177172714621842938995127265002335759546601437046765449919459879299786976605452706231930866551279893169122978189925660859430022267833005301498115899532403215158271520413903351291617186734111367400421170164382376780492100751029561949799655617963886733719386026769922506343136202023413238486181147617726428410111094448645738332310438262022631404716509502740310617243396716798015287517616234474561867905213598894480703212825914934861356722505157850945720898027601703777224246082209764959976240381453673037472840212715148254149631008662202185778797003936501581838691970756781507017600534862236235225547535409136769361929435471269759452608750614073868183612370140209982624611369081055239704079649211651806009241992395234035213513485346604873712723637840664129895318930483848383503963254035298707253747925734168100539120240404808446061260277333097252577939120708268080401493391460746651344225444499182976941575883776738894808178907959637271692176007604816352137835077445186617510194946762115985530122646460719529185709916482182125171389806183425080257862400692895233634131967234419679986640407982624378385526568412000379526588795343598086231148589269497197338269596091300117091896750684434308205893988993418422515403621620635269029684622408121776630929030814232377116728745788836675669842194814885620852655753587503161675962856647256791013097405392200233737200703924628088915297123432047888096186231517973793554603058865172778976455352948329420762553501782487703916747483565923495005569142567667219135246919819691649176539455156594198404167295947255700582395271257990552804150747601590252318017902463273879335038011057031524495013927355772248227511498830268130707956006405627845714973336248955417800461579404903765901306607646846978048158676325541117601858990734638279043740571307249235874208703432692434599790501027146376420647673521826639477173596175118312767071038235875842105976795673061985828838051497178423493826867152054046207465494273182683866909772633326068539343113084559138304723550444597784283014430320943719809205920431500398213624620186169881828105477261181280718453680000941772962353518036485753168463347558559936314754055107543363051994052453039809168509547807606191675963782708060074293688609387167087681949060272051659320341065700904108406888924486457344884658247468356422128149163978117002024010788441542415029152848638404362149053039212048698966499851488825289052315117509712719547219337504273090766325832075507015573492497765437093838085341781258126012794296033321699454311716004639718178919043467778629677543353106001452550795565031407040296909673893660527422786732516001336886824424544499598871770805347699146515597878053827659458762882059157988489906873246809977455548758823878410881199729795567680684930161323203253068724736873545203353082939735560296781196887319235713747039010181897272934534075059124669784066510231707753886395524311755259032837436586575191707824580633846649379339384494781827753815003957163315070420634716029214802511870477918323814306993661649678721242485404981928811305924846248082233579242437676285247480227247876757903594051960985704888292003884833744382481155613431752897457477469884917356940832115188464242070575252062723833538275482853785430321809126777959403939896773250119677418467697494689331925887167874602085062969007331790550130406133181054178969186779960289724615418913616774035081443508645070162894097121153657408567148924774830459350370658348761019891054956368449750037896556818235283267641842383290938762080004052217375308422664337611034693711652563605240689455621890762196319129888786914003563029799023995249764156110892614363287950971253078268970494020183102546395837704408158589886437160312417676994967359910954503531318875690558981519276531804536614454100548058062024441587929196308420164535787212781510874112505563391184637121525165985046630725383257141098291949693552776187206421751460041989233654120272218680023783554948231205061358988075022412781539762001221800152824676382600640302747802889376015068093796935261464930355998794758837664672323883480898106666613570883691974033817669716724160588995566906567887249542531152442910001721359246425697660169935679369419649647705395410325140607189093990706437419849594367940308745250850843499688027188991453324397324332022733683472971318992240648610260127585583602326616131219624401362707568335455441221178082194232545318921497446752323060388480831302790751248348697519721944991058497808356009134686168326963451066364626153068584178993281719043182556574559740814015819277436368494486572339174008000787380196483717110736366946109652592109028692182788039917364372312781624367252922813789550138724095063474541630090003392798337322740119683581475631452697861180346803399267586568084140350087041536313009007387589792586510797393800710232415290994807671997205444031381182787684559558241102335669751687150985400265139521195629278920097112304693343545110617350267434104693726485198408118698375611576740899399659548846505300357970720584069425433902186578788931962268679935205204697719287843459970842525004872281448439765753459061076813944921348453859683949435745689474414239195147097833001904691951611209389841127572650513157644823225280853251673683295269256164568564011916715227651434243353473259285303116276982725157075799214589508469486385517030750361627566784694710602678830186345604890495247504476756684586007535257835087777601491487615414810645191970743108000722844100356111323294483959086668361638441802651095589085846143143036119509893650652816088532350571197897965429244916742508163658212203901190003387974962264043688897258678493277048662138200793715680966066181243348636619663715011750892576113287206873873343419668105866886523548915434088004319747869343713358623796887065907058601597929622567828038067448754670763258725787741181338424102933928885336887878786427338519164723547373102800111376756183212370229306200761897937475034968284683904767162324406408075547519346024860175330661469600468701585238421013474550966184178862233282676648524741689408445741492568035858004082844750129348817562730130825415080640810572011964252172393727418323825554925220227656565726275807400753555761829456119994575391037206531925560929425576027307903905721023119505637246117758677485795639082223492492116905915441200775204923887218705706528585284921474302424676939401826385860470871746685936388499047862374394475877901916622258021300142750458807467204297762371329858954523795658359858289985593972488232047748063204958445993124738031710700950692038485302521978684976128954226005232507239546013435344702322387151462239477983278183654209298514444762323394149718175040999163398606969172190427394702352129866963564305823074181190555371787541400763663088756173698717041681416624124300223883595657397389873129116508903629227342534787918319448476446751239216996390321030642486065226148852748447818770477390284920946499734156733569031833702904415801636511377667793226792599044745665550399585699731320586030244516504270054774716904336009800983911720354013697816419699228495692637893369629470877436903660965169287930468338840524558856105360307960244981777605153937152291197331804016028584655559363042713602779354211526229348307369513930431574650709250617305400747554555784850600164925259427869269005444930333268914061309975459820974143019676959986797619534207679491776174433253971798723151257912658583609089737918471056637744864656975380916662534712979586683152478635084700090589112095709190611293360315589382524025998482818932006960834493022558934933594279922553470920929373623528381354487587818825135238700038323896308504150679219063681005433608814475903375491793530361860817738571367222782856036214587769570745435545811356997865387612950538614460482766002061355073205692507253173541752252264573125025396844874455254008138517678876518938419680143255582390075219188806352274014010438478549552488706926204232086266547410952417016371857724316820938253839476716306143355569436822128102341964099575465491458651404852621326169544837244217261802689795615519740615977616171543603344312424499154740757326952640742298516536788268837449058220420189077954652622096030980659164736579965464208452421894698541913073708476353050740315713690291150403507732107656296573210939492837263384341208861244073954143423320490776138471382857759480833008676826864929863359503440118494296805268422873390232145737570383877757300390258563130443259889548861258919334342013579753489707900907081432858425322600681418527143328644053516195618777083669962328976827187157450677785472916953143193027431413404095652627772465678859667553431610197476622240261559682567263271108753909508791333508102397547848901975548156085261505203880131503289313019691084623554889744238398330011912341483660669412668089592237548908935263780927136906652750371223008744114500369104947095223124931472847387912191834500058700468947427623368574122103463136075447090492855304008201059574028383877497011075579007340313128817952985211111253128829659448559023661515457082337101380821692491458926831548979293999856403292046143040581522960266202330651358745705048798927106747661429135412742182812330352970339104136392071221276172765706210132731781763911667744956552352525396821418788030150799165206534212659062376552105897506712150270357117815241808409814162487008741449102761233392284223276368963120665706162958696028245961281197417173089602188007526204009371999167685369535786421933628998195228189570709784620149098231755222718306963134884129176939432342745092459107958166574483224641238911864671903918282785128780827034307302944648694158268186934424033972026932480900852886968512551940864755554439735694676929550610114832702531236931159256549706578327307309874951181501203487735831600534366428179388773017332369196268168635583165116190032045000713157309347981195072127549797497137736754649542874884994406921546539102718965893030873288011863119177486726437484032401650936411548386431158269872768047099954953181071889103554051872424468713518853127733746787849482470237079045603940285302550855385617213796473029569391624734585477342976382585360451120808383376772934553835117321006925282733867000223544574876202308865460110503813512019865882540863270685827805245562728315030591019425841726663229912358925030576956004456008588323153571498595274711527999068530739782215194020425254522904409815357702643571813056508835647125129035612282579746851946133942256334600951279988285172248342184024150466077939337780146823600557683684048667681997977877824994854640164562945270070218654191697030042260445195101864117859134433260440221607425676562510439085163848434564520238173903456829787706910622059393786322962443328122484319769768073830832855530403694035029720214530041318155189125944194437965003300297305268140665258701207529914907071166307867070485555430717187848719742898663384096911298779213847176673209987767283958452673861695093048300966703698718309951988241894089609225070949755387512893728976957276290267876677912712334830360322157821274957383290487115372076985344644222084721386509888607999788809636748807049149436852713653716086649946198869833537854943833111863753022599900598523216200660394148281719061958980238800062956864251926188376225680807050722857169451064550559109763166305405112254065576427593969118145237761172903994394695495414515859437246885062531339132769477118158777690694458947021466660479820551783858280781158235659063358822377310762157441275769644901115360320515887230054090620997408538076849034575480405279812058925463338176289282563123600802024459939253560253645412675241064197175150339991036353424112388962198702896994847036285121859139405856521856372420939134082701303150260242856138721031030418026115189639722086540559593444939495866869873535293296826245093030230407982214744791253489261321545921124265127799260491756041231740915671553787937698307371889514898276041532573718355089651162856970426092392543127637322989059563730111202874697064597227402213725227257941369328355445236189027789605435002528627620937253826500072586084305521219434323077013218003901261377497349407014968451297409851126871547407292874001351308470759851754815101750642523438798148498647640516444020049536381958005776828189997610147213547706230180934215424182345840218799142068329881014293719074800619281243793129298321559403914602036374539065087184540282694835051200601602534225229656824021092650755944086225453030668277978393078104388561374784837880013295322932232142476548279083243543982011161253505770947686523571886195340874052417581065517161592332873338407723006701594272650046531502159606041183186487183085895233143706138273188216191105667374899898496203547408162326288670292968975836342795151318419206874392832759286385708524503883233476425568497497044199550461689845631721822781196988704621425543502921951062085703588348950398683039032273010424348996940650444818569293468187054344233255355320734705609108923369686193522959506696537954242898706243197507852769173027938458850705742895225391716455473339317855379404907713807304972667873214620766876100871169671227147327348460252459506429228590475510255187232841846284239680336231542357068057080380983336807000568818257645236008481817810247513436735503412197556492319037223765353203212285842579596460404072043226354482080119416881843936317225917479183134688819994674143201696622150055482344491998271550905356187746535557602417490027627537768928492125332409888225410923117184883181959726385727715419049337990123536020560216904595666818892944296988790367548635750966437999371761611412878947257292210968665395957379607675133591505936542226321736454058924770026887497651209840444806162553912803367396581370955824331278388918431819316618234493787266632657162252459612943323730649136348692469136654970031438533167638173537423397523736826904406709410285662176701728819612670734218478891623478098166292495073014471363701038546852559282716467126758989851397769529049823485464472824423380413994862034864109642046803100218531355307348759949308696787495959747158066994980033000688505817834112839150991045203573071796560383175923000233089274317493261345235724790013070555444319473581813201851808744233095813106516538815779039567954935839842598114827037453780766942224206321508549153392825576799807631042700255932076135250123281286038923176051050475648365709247336044946967590206446574372510299337347296232381572481144230430003229383100343422580015535421633133888905602091767022565029648129054337402575866652372366522862525642496411271522998281087365108547790244409121037709380799159364876766042332171056045797906750778943769935292448136975991636657344390918980903916595368285806295906753605026755901221783654665171692437880209603162585242765000992185914718096696032371048364600531824316802311856651697154392518965831997512491445525039668801089563301325459161967556547766317388815515827387558710221008289439160124789883646056566523153560901140705033134595369614489411981490543797136950300260280867570984055804041357849052733596173615412475145892474583479520465947350626317653253687329055414014019608682478316801749984486422245978275352600739669909668765442648895722586083840037985270537589068008724701883217370733976575248023543191690117753651047806248105919208852295597830912602334599737167914019434292696893222819434469801244830595248997393644506172173392207108791203913345482876123341376477003318000810993968096010631500479990934714122797278931429886717129939375130016434826464104945977250899304444267811125588200732524422417309346260782058699179924419957240883597691059582647910632924417740307783465250514879806662258177782110219753824635008764428118475483858186371131043602293425837483454022716189373388616592597732466720923146744721637517773128626234780388897202260100739939516127826114787665689702083892321888928385049054112320322464345455643821180178052866964192159014504327435871760788730943246380070673601708316729414203409900753700226830880718649222892718218503021384269224283288955634621099277293637558369552024743532277926018973211388961031356222478530501963396409423202106797396619419317633235990814204866737984593160133295962360810533144549125589249740740235513121607876079038161792535364185215317992615882934440866738323294155044359763372557273635902805422346311595430838508777648997316607067829891556234504596177436328412119965697333971142834478723557739337876877613682856414791316177175535424339476219792726795826430064362637573424252221617876554544625145814759040968408433562611467981434773372344188559685841125819427725656928491937145544446501219454998971589696270452964743852961637638966577806226022225480838110747893399142719331811350164285637207031356134242921995758770618981997971763965947626805736540856179933755412217344917067835229390226146443318912585544204432407779325170398314459334820921710306456041110702825937969203065588532820889652307960263583279193582555260429952020309916421550708799688458572635639163171728106824924240505645680842625369564369824126313538184036105543997632675207277958459600783509164843057281686581885404054934180171369512184838872079746133382175685196204463736840918199247387745292034051499095811037939580213456972739367826695449211844852711334150015418047417294226746010946364428097615330468586060821418996612743877330419332883846885498373679850973832237934064480182805261232031804064732458427749472667824887386836494857872876910279560947833830617292606460461086755026977118271530451541116931183884734703818335054377719471435792830496534945295639552743219552314994179033487887912962527273615720320241128165632717973666356707982900569943420705343395248632331524715388067075113096598633169729139393419473716585029933990533725598236010881783748938342158566959510959834950301253404707267555599713184124150990616095434165590327778329014415162530636826825881717083678173976730820196131597246281242721052394865046682133716640745801588523162695597447860477462602420324380211431952515803130977919098457373760078956277241048801707405047330555691202729933217718350320834846546711706998561404782735023237752105725080181968872647000220789502732621203003755206932846997059407954798591133527726218679055594239949178317904309658051749292376864627712461733171853621951253160394469979880491187101184580475063123406684823441912143926380760369318233477438512124389811223845484621225497559514127764805766972898828378113486722453509517917707054036937964607053879683762679739442054788320737750238426702799550254802874923412074382646799518432101302125042969252420707159741509991285249393385877812850159451643497739483171288753436718497329504406309256517371681908312070005120376402405204687296518994327812129569090160769659207192628092464853679152031720573217845423944232204188426123030944289671417848098994809033185177046090524023505979293786254602321691988535415550912945364218040729583759131134389067132828483890879835281540238462776780211110074738181659741085603091784382460704043280718373892626396783309491326717192795867964606213532209574481823847387833922292793230377499212628548142264651886169120235688294727758661635445765243113010638766591038110425515264149519692169362658455718648900675211867479944835751365677520922673399304005172502505773636165341787027168142059661579978375668008879475807709045309891358764549236692473383186789311705851940238081212604307172187577503254710587831668773382410048266099026231317680188805504190798533580502582035711868667422570296898670494508528101929800114509650426432054710652868582518549330385322979688782499545669622319130691542281775085122143916743048945170703761369559627338141655486672271072484354547992948036756068198079270219869796075955935104088382475945406457565890591433605795379875173054734761174022249965049778305120250446099919135391148798404942747219515643488846202939544503789559296522208653981034727384621942177836535483124545431313967119377678594628763308033119942104658618632280708251757503090288536960102482143010920054290609585938440001632097917995682702075904084186743617844450830714204857214416528919889543593095821450710455969288395458107022992055131669355407607752496429498211453376366359849474638535393456619443318160510827584192271857610257407157550987548635247618557910455648003312733095097661899083527381527165566916567642865595482275395828509377227525317912790545986980854134561487822003620140907636442042713625409708860521888712575833429445341609161731321385672892713673606227158508356213574328680697893171571692623324077756821746764140748368244298841270049413795130841672978962509973505250694702112506132028566771429892136267761816505385480362569156213637451768410258517073449119341801003345778466640348281420021770782691281198984497694692814160352173656802455611972144439188196816204327989530295088142871757550858942495952149788606502709766462724682134587090291886159305113804698329537315021934150744729885995235303124389182727056788946239414159108708019552335044294830202648046726093792495338528478846896936139026648709289532419068899568868920720210610300299851946650654202272168247834732090179167167372879935565149159180245028396170126539741872660660259069002547860227056395982291688781272950368740354775347305256914220103923074849013044014023755688509532778460415214286499803360269400412920092705307177665994177818085833355071354572751902888117689009365849670399052145931985985113055926632138569767584163407681767292199417948757299047481045597341102990977812990864599342515168924928229826809420901860521853289662964078995081226379827644584278569383991802330660514796442498491028320681740451272648053916704271026085924229074824770008671799093571094968131436522422063079202584629793886606025326321462463084002683615376319348533079812790211734198886427320445410931776666007519742760613115730473703896595265171484383045491395751866562587555462208898640663290844568463409303866589943582170737583149008064983855168386395090875377281941985326624183833248686844266735933320157550616403990313440301257748826687484684212029745207452892181342247465416911427137549592772196605316870035182538803804853122651170685379502009666348777711573942180210899847886130669418448780955679567992208995757504963088874699080825497428792642671675168753208293865640269129737041959849763343453555277109089592067623572591494833864722492140198449297312623287343313431010945081821243866891658657333670717904320579936073652201678274437908129328948589790840794693530398509267409534598557940434209700996067645100266211874716555983715883382532615636828254614399051732184220762580061824105899929846953373259075749573442860360393950428611815026142938317416070901665174020523851563745240730090376983098635422851532926645868792113970335532671167695246557390908495836342631621337295812101114494701711264009186389821661130108764340720724374950218628876150295762701103769895877344104246566318965324988529068918336264287968425741611425029958628015258548324399115353108575834423101317540955944848454540896928069133855190091352013127151523436018242470677940134283982962479262453614793211096786709248690071369380393868417235447006860771840775721978958761430705847728384796082379138049563950642153592506009338264524781882069671028022785705771155013352013158262052477748764533521116979354744076335482003255860765434711723133197580441947527060304837500544251456913801284635755468483310243761331455557811628580908702012238497586914026293275276208444787039764106707813771873131939587360277131788658702572762090264557752149899186811535650816523863115848855807692394264870627555550365267091759828892013665083355395029105683761094043335115584519148471363600023769031728077768597540850057113820983359493629453790915804536544144892958170707115081761033790648415259119767646981089709276527329765620965235573726449636452623413515117855304340513669569319620672372861425546326757894305990153129472878383344013568320681694700415351981923810581048139313839506347323121158771999480152810047052139350048252020988571375811750566086136814091753712074443301584343371263911595321925889800580419085436326843801232229720918843677812985200977090128528428200820672190205954162126783823774662684100664932952558423479134495106642275488380317296142188445068565361879920891064337798455186439705533087266860320779681094146403012887555934557392646487696818395165797258892254587233441403837484515570543267148120511943455371378908355029265666529032530937109407974152074285569078756960588262455245542464235205252142343265989915031269887318767346904290523824773982981390592954996647485141890911833340852022795341263587451451735754593401968578552519856369666457678045410464184455303277805337568302873297895754539879446433859696914326163355836327427455407750307365860821228511193688027521138937754355207822962471246543735741524577764526442454155007083339842408483963974772387763959382556060647692303131529855989505327880910134459029198034319566807526085629896249242487447887694559887381351116516480002959526729923929805907887991050941722515346754363110570272780683197695237022197597279269871468094154369504866122363910156133605648599767599988903811297114636640639183220126492334760383491051735415935642301650250690386540055898046565198805130211024554274548680194601428805929519138364237917273705276381136955339849443206545283125383725064383886426251765988282040327077293283653001537193593663116866375739581785078492874473128099995807187215765201002504565016486015354608250167333696152228740851156302575469643771627351049247130110524708259078646019124778617820622965403013139864042560116039024133088816186633666468038880248082274310303599012449926223763083871543327927405721180916724586639491143343193267313223065952770624999469739803979248940095614902638097837378948794386565361912501105822225705818137431299540939018590883715758012120759663083168045073218676579159125889800938687270623699045635247035182763314248139486243372910076105892338107925927906557934781953136352420938176082587411943023929694478191007081199844516540705590619058698997937717426194892185288714129235130939351979629719821786184926407865991421707906521327451574790092991331045800800395767997318497408559721047967284258864262025707675690344151201155058745700789052344096085255375865308187015356158200510387712361607166344608147366333769707592626301026037781864537144483040416681959231370163322518017677955602478082506854503329596671298984684421817983354555170387814219609259077868699572134878912248394952942581139603768578409028651950900826750420381588618328955741778787456806039137606723325097947536975434172380640922250919872093704243768859645422025850774669697131681511870978196133708137222674274251607630410543940932307502678232001891142750251230801347132405834593005221014302795509399392047181182010613839432441478655859900668111864604543822369200228167355719749939886019967243177629584999721280344850455560385668192029958138954925392640306691407260722074263427323110517148165624601553235709379601953301956548601356742994625597086666354307293509706995383126227545031663119828494076701129734282774560945113333622579321860476973400433074626952193885285875810845619851930708795008421178919109452282666548550563501157117351791135498193970834027466247538646137728022285131589360714293508981507260606875324285914742873042820805634151314280732156823303416478694789359247471506598513152481549084998221987848266949557383961522362344771763895680616690596800780582498291874930296787901395004704707439041274198173005898812276766247780674323179521154086577678021546848230533797318562588858017504864652715597333700130715653502677362177395118686895230002976274676506603436680321029433734971007492437384212746275994366056687061023197593008835951291995704573241011259954603004493130704836974561365817013142659322100046661802165012374740795650488875851387544950005462416427870374988865603526729681071383726442016167665595650174753328516271205933145753076469411667025286578175116272751311871448193311726064691634090332977594664792780816565768032618923778534615431770867154266579696914064743804845994160767574179437624690009080284434261043028944144687862162813781664345620763166381051313394216072885340607366173181525077528697230882398083461147072323320398822552206401250842519156458768256621703285331990243768196613886278210316244635854170482905617977619199403762170211988262387102548802727706393818201269541229954816520005017834103663357855403245888607501734266896383254887076522929757058195812869493463169534965794188657321461836048983664280495184484418485606541723408154137828813986216606411892295335008943266181953462301310504043356544745856395064680410100636618168498017891642980148070250606119974355273469522400668141840582881827050509082476661373689250219247140432734444352337490839450915383311165393284084804937984862556514061917463294426740009769944292884041963789841814729095687086302951980895700530915393850998069966007775618725260879439116580924263550243759074600446611689263871813722797459355225819610180304004395662639471008684556045540480067605209201308118385681225291221831434669858185578467463402561077642356238409329910488051919694725492385681245172094530361038722034869118293580023981328115700141333756287374075217690933634686751437944398499672273361002775348027373742197072731535157248005217393289441413437616183753442546089685824617865871612612193934288659592470753761832052303627543594895790563893484402297832416651559165437374305566673104360515738149152367622491766506998913770497392765286956302615176256820452297667040841533451431765086605855812362228270417225418580972715810202242121920374671483927024267070952750677725547925974088871447718329721441626430575380972925921578281943938317832211799137090585214579776678247427409191992467189322679120699517206794176236154807583257158059171156527691795496752500605293816420538836849947154940010751609506497860322387310996031048593134125231749486108112743256856981074414296514199723434296554710608441160201347657271856564740813556487437186370082312871377581522069644560261611006672275333267894939419856491039491518331292540652792130127226940023063646760164166023865503030711708806112175106791603400117144673159333772335347009764185452683593618429154982911240560810715355971865989359790452905785951841649046701740038827401316788284778265991985600334417834022968478456491166987325057950782349735962072391619473733527135174315988609900298750180046646723780714741749614923059474704208817004704435432437492467477920867015186962588661276354924927480911617613828692528438872287701836558828235824075713906961624078284235586764862285308712849666071491696684524748304284308292998407499233530487854498366532118063642977706534189687200044346271756261641229755319558417973411363201394077112988237306399498884702831165871055006468837022778898093822115863687649893766040211083121031976218510683543081959318238961356790974018411092483627206441470684535196515530383522894113656199163554413703822115154146598767721605823172640455234920233758932150998442065792053219141975189922861992056049959264261312976108447673058410587266612793285294602846527008809250585394374437496813673956458911500457494014014144511178180305906988536587434394630426317598504846231546814515497371088536232300522797441030984807517897275258160265578151687433563960907042208498816361825777832923466859789192613615721729754077061699641141197431936341615648836551140039571220489370527791879113879588272738832501653553499035920629147335185834879187328654684606521768626866120770565560907505038404076618564997037002134586177207316814254890841027227978279442105090091257263669879983344446860153569142415444304061427036821184504182926367775028151211205460147269976717107268133941824485152754492308497469088354141499939606865359415472808791903061895162323993022337313052595481396927668800077227589187507337198972995368464103041131920150321602029051271415795549630960362778306584134029155889980337615573360168971925362601729173004289237225420177322418624616926159124038751188395995721466088749352268987839088340390485242470270826830410872235325851405663703610967569531564092208593014566027833323892000403405935228531496064999724748045282397613430583965982217177518120665865675570345744422539933866069919594326519732973988370689135495372953887200437103577846693037769584998793505844362654762183178027413378854107879282130847892922071792634460312523874571245340630398876461479968090295698845568430735699556405477782421412915333452045472972478493083697710375163212717918260021190527326248723531505356226544631444755668781620253698582104218769730523610020842302460510291451510411322092758226204745022357526665116514472857886095948621173523034211033540493703596531407873293909989915163694095317981203029321176117432926591814225633358130264596583513668972740954865333484144426754385520627011894312647642986051536505330992801850542758345251196776738672045765473883959446823876277198942751236193474889260417323017477022661698671346074519828397297543561541194923872180503414368558941146443179676770834601308159836874523269129018124925470325920586160097437597831127529533110645640209746476266139389754970589012280134542187781086288061626767308589030451677351693736643280065452960466784278406400569676799559233637284051788436436575866194574067417579119219488824199898176098781801308932447282614309668860873778101998205167669236639190420966408821627348583204264076358907998774678058959539016759602876927151079988621747533823450398575375032628233900931019197270917468587771670756504707060970068142181375428280230555790743762915828684946625846420825775907558713680058856863616691817166088007975007290836168774641983233899344463419478717840076288895598373419163782050141637137906004116195636220774942634139214546745449958857803685533531241429409367220821590821468211040760485619389249722562369056768525700262002767646263308279556592247251910490740422180836789767902612915077755606240687128356182662963639457924952755778003017660277276364167387659945525801449855540122695501571064816598646711282141350365306389468954996647081107510900124828039554308679540727144494318935062416735707873242162852307781032074515883839721869692491003460959313452984788663333093090308111920517327286693828273802193546342239802328279006267342541272083741948660781729549905024100111239889277160790323129652828801827821782655224662652607143260273878162194696320894515555822405726505251591188225803882817845278126383122254319131503035643922159806079050240241436396478150770341131009757625360603570930580498429299563388964013429709269885480205348551119105188062713750966541931378875636232368997821155395172204392253603211940881896915691895880330967129701517498538767186923642910251040380449352391955361939633485388017104930162975839968610336215264587534787915934385393450157160731961085838653634462237197237624056693146855490807923532500808083560236622914091383918240661360826720189912500811830157810031398819417900129923598080312259822916376848911152374772825017632619373786490812187033037162564393679966533876278229775977130875699309186743139470153994834880151960824838609685679191211702755377866875431178073032303715102621064406394400935324345576809275093356615855110512105049760604189207156218653513179306419641125424941391177389258392315572926281951988644058629674257530973834703108013730278428958837534788059302447544419775833412552455211448268600594071415509271764671268103208047758697359606525670254525060158851717754291424233827037657133021244545800288512004821349437912936480746445250789081842344483981612477511081837638196885529850943325888124464319326617061916460276613026118766987509267421173670445618801608203892478883913517955855571851231008348453597099632443056301010339857073182995484598338313669553848206953614658683469602444816584352975185354041150615100114429517586772430544635672563632901023149410259212737789612017252225165882618804537285410536310393523060786452961431531005013661525753166969697905666548244537377222319340966301058800604594593518182174715009864259662833134670330545663986700703860143657411440737768959411102346349221793928802584299944759421785853445367078912006508254039340955371259444051944862953071840245366827826381123674028847619529775781050478616004243463818890273792958216639774271126141866590313675902989811251028672129230035874201115479603777215177189940830525965325063720127354448080455226736479509824541372246972173126594690234827869478148700993287327594146582198119918599165662454459583436324360159285747301162732836060262059399018527699275632366981816146480551455851009053643698258300011425281900464582987721025765981766777023600523727360691520001426364773427435241070235243080433478000219250382714278003612802303590282607089477243458555821318712137887887019532761701094175762042934466497209832600866971459374883413177220077787153172022640274643812618843983872989449223447762375577373126979762413769405014774357040171489800731209261717489255815099588004641640390036705842908933726950590953697700045902034015651374623172303455640664893930359232121535591833379080449382004663507163204168551780462360725997613242762040746555859245806455297128642348520581378743532818414786855940316436826502459974986417059183305056273443714393758702719097337660442972523468731237474474149478021777319701058248353978950608574383898526527863367848393300835144773663096769866571212747822334998631336904938020187101612608454904184575624416718628255971362253828760174790720865287270641880066783831847805764205368736309032767616102582108415143825147439528544375012694608728283745586043945723436886984330094421627286350524033452372616922488583740258096659377719827623574743505408799530984658358590394497134814590287514920144081563706539686821741022120552521848292735675879591136800791960403298473314788819352800116484049693687650918108256628264067270375580887173433047885261701105447528379527811067794028978867836788417945456909303749512376774512720338815723790197118718338747004770091312466532778812469862337805888765126317517536829993403960260664867193922219520031705018324910500270052248301008990741684753363966207555008357419954355112936173553000106508885080668244739935521489948828782802090966547122867268018811710857570569919480141389984591716563429233100201378699777844940297253680447887735352465736674638123694510067578887652519609798694545149813227736637261791839794891902429756465213248375623460475072879220463392319953092116272770090711948836785040006474946423717981840393600685224712431737830346800473420511860096294547787537395338085177796703060038332545492847664176152466309031870176160381636626653532026111175872173361951333456078329952043914477774109643685202579071568295426963253056691117744062615989488379352289594060264077019270360165579235247663383712504428035518899100830354260699701931675768998167665148853462786769350383356242207002640072273402350446465798603078914449081264467387441217889713718117305091231437074451187706934027223519078048840873870569390542448664374099885367516411508531778255973495912194566885239237300335433071413814026389489547273025952065314115298963605688768441404834769547869224923534752266066822706399080858940755500162290521169268717746194464123523445195102739802893606226383902639508782949856071669657073730333108626624089527964380462149086194554216232698705790740991420488373863921956245359516531512317750785458007785976636567618919166500490055999958694736637082274170419710310816004031863028354726620924836175136708412258611150908050711492689630707044825715546594708338280413477234275828412163076430738652683766893101421212294718127157853679636259654121208390950640685521193372411529235018088352868663351295169200515140927311242477551391774615522201817205709313033268285502386848100129076849526624575886155981818459922029359575951787044394649479493003639283592064658207934050181598496283349366931988425545378544388207220078818821475545530811404716803644254804337998297622978545743446329847663587841441665771856762567405241155149612090637682425028226116964017544684334904606748038563524723232464626434187928984628351804432208708109960399204384209308644067147949145803939958298947649188958596381488048999056967491792368654048312431889409870644277101274588527651610576792637172676844054170305463254625397924145262336802717007242575800182748364284963937560181291269667034430270576422080685339800314369967967836417627588079491795685184488358783868576701803927872201264830016170247829160460130947309196594784191686959807001480009958050800950017959966120086258789514186686417445719289897115931991537796482790352223540572599452493978032920665928602233897593879374005898875375583154899073601521983523199760994151299997694610164509275759819861027392215458745631198271142205146613128542738930701622909049723907515780069863495865026266953603435706165934439346614904843271812475033049316745244751584976304771718185884404822176662556568370563840055005501606886083358532455146297596661127138240685509006269273757613203764454105382905241900527169492348414147893713865596220652493646943729415487738211680689812933556618968557009214108477482082441355883884560146424331686984121351563597488911845607725981309255913274817090726041018784623126543987716706159018078000312013783395063111231111768223601048871906396071741897071363187749806129604188445906331433626272521614256714967165332711733214269626815882739176774524481285479726419917241081585729765703638185895246032554767402583880074740342706892366954511493134216267313398766977189978263286461424952911819838150956513455646577884722489010506369159300041935407008119648818602315754560603198250136824287288158312195280026047743340645878587552273517107516588294995943849374511364886464356818287068642660409957779713533229660295164469460882376560166531823210131849275992515209135259990138467254591464725002525982379876889886572542074642718984983770116299716754762452686360437860265316220947161526356182922805807510325319439351786462023806451596153545465742514803066246742790458271734626546064084377776572745858045219819647233301654263234630476419247763373871820864448284638283182101571546229599193457770899058479083014960322421988709368925807798547637344720935730757522620123829856165886876696043070517895281423631541115014835528527856702884838152824938505127331656893038342635678137258114624592968558111052555150716534508184250948563324107331095855973012789728681289062959873136199179430990896312038592326597665129329293051739575647270635253154742063860947665263059389341450753997374401301759030086820170520078915348636785544816014071687103109006365670775064209814394213408178387051979269261326365719298546801117041023422122196605516932177033548294570960527902797936427677605097183383348340504017083006661656323474570600871677657454939851481850943289888270242157488992243923797110273487364229133818274686605925598824143862314692749956164616701697270052348112413646288918157058762337031430326330866318453448743855083695545011058571893123269049210617467244273535948612218870325513199869288482824202845568758136414972619410395107470643311237022398228939077255269973354170582229268625967084609796428296114954265981195245295843493399115908657825442186630786678624577850087525727080861610885345976187845156787344147384753644789454040033525048532855975081311179161200035598946540418900492352621774875327140357359490062996076097352050863614168254225718460622714864095303017537392600573286857745012653450705504346957806383109809035670868162684910579921422714491156188510259569743724057213084997402892063906263765467216624638675958649689090842124100589741384050980998989654918898998244363294176011423564927386624391125027783113828225825552392913276771241567981242624746808299323888594111663610088566612055233312995468798160097506980507361390529577304731415074725526561704274451627184708670910579434315572249434988351352028491880979430233530645879276309739982791652544798458063224398922948116178038162195362790655670277589793138274112403420184021420470755834907417239994417324387320649185902940972322701453482223359219377223299962108256869898993824866763033600032567123920798749513079197168398248555657899559052212076480819684124713157174153773917484012388930793271782308261742100051085474093973712799263831911902961055169996044674069161696164462804368326532481354821872467171463140466425331000628216398286014010677077004406469848363783555421391206457685071969373906053817505267784530936998295337280021991573376555145657251985162586667084045410066894625277595309575770163935283404188469776512953602317884388504655999474910264665444822419140398979997033247674418139116356990331386853796569534495580817051022313826717014097185089912206905319491880579590098976174602205854165904065256129713049950006809158582723614852699762414751479262245506181125463471524885433918329683834495514069588489665013181716357588168574677892317585969000066849876350489581905934977301419964604244068437314669435028048594056944526438318671189706431906398202588813772511171483018498456190346103763255336827426936889970461271567928009077504722817324887458995858088374832892613347113480129516437590451477398866669932962106161703526828853837350037643773380549841020216406547541826824223505286239323142982862366500127548821642283731693157231605856697949293985031093489055411199788744259614071499512563660793922705717866057949585148800596975285506227626393638534441426361248561898483316266091506273566959819508075655612312118538264483626770203799790121475646533604812531699062061870100123636112037876221665374606527517825728010581479823817379264680517131727879547043374156284079211747938869450813038662262667483131025807494291292267742601654834663162615967582921146144428415228648314490479534730462855861314854466906577017697323222995515153915400918193123508479487774410607118017588928148879722063412410542822609329117685311524069331485882080915970962130629745502846888649928225403734672809452503563342149016574031266352449124800049174484036904843799344915794392004379725543240195108175237081814193113797889153100291200511523363964323511730805285297961922711352606579816431798240527202370013283080240558334100863966855124161804553850925836252134918139873412240980347430638426696108601042540206903603379067202980939205534079957422149811282527888118412337556764366067058240506227228634797088994190958201571017631827223122520049733995849123905219929863611839970267735007164410396401835998360076659766112492590007918029296514697365443015370267089880886183639924305602754104340870751010598980137736365357159404367290612328860327483476659722791129606614482165458756330178629720805203007681540782597198454963441022253451627207015109426642353800812042911946395017286044661991560157560979160692460817232923949158871170265680122846537474349278911608295586099154339877180836391643192021352776383527436620433746544430006174205567232281907885972796307108249179807821089727803251566976515745367222089429019347998708132390477862543845256911543547979375205257242149983367480832691565340431463589900796028169664984388190212893655944915037576751145524766317077959609361529009175273466896130699010529217037283119752311663151874898396696421679023927877343339747009154151213824557080821940954464138516576460162229859047679011054569349375188749061426761568595193052094164840087715991302716586473341491269335234716554992731406847044852102438677721662860601601420373428967725331893963833720276046578756321022684660417076888200218447578163467153582488120970881988700885638834444705189287356567230237413735162701744435862248422939993113016710996466089410998741918887368939162531794750450412381181599017423948227108603536679357734203802046976676827038740155786203098344785674154643245057876232186479880617732373204687928024568357932986339149675389584186978906089476247330780673564135745359350494688626312920157877234123355037425283266714804163604293176443509233871769621697142376920344518266375942927050013669274763531666869453047028979956670086794801655496247449069820444474581066580483153093324810395166515207115811424070422225436856196406787102194433529674163765071128355919903490989138637841921791208390399389896100030110215222319869509261107400226254554992315158765870478173131512197353570136697220858108741304411926925857441379787876149812996313837863015097825790620069024554031416699809225005394286981322931555041837054727227062970517249545056736362125309233980659277755310813184810469193523505964514113847948514097625026749138733659694009869701879191320226686424067889652170684456627540937878889615337847062053083099600442291790981149026586096978522502615672581527823914350731416036880383365077547807638785859909372240232295840821842926331126756124494153754647274666915014186556738474586087580645306122874432522330065437604336980255319281929341596109094479688646459652952388970318175290287878089781668879976508999204035264985891247689418885736152753660118376973982120153696240158853044407174002568306905314637649026158132820990141143813099162711541106472605610433785325173296125317341501479538102667535279180388764804065285033403052569186244176710290286232062785793282362418395852788285220578884250907735247508554526072488544943432465058072444443198269714255350480649380455736181022713745424520650879997847437461755010578445399384092004287626993234960502445002775804146713043321556432114090305631738908198031499735896006484849193728317876508938195199797746343839607183518110126112513611966857717334497777511691184487518733332364365273542704470615749902127531444170397965103647804741018594839961035096177003663625454147995690275822164763273505650379546388753586871693459857040063484497824205558393708314049881057589401455079181716064273567907487914575954748435119667612258894399320201152949992462321891319441964053477876804535565682427317373651823587021274392516065410252244962567488334089945394618955603356691494919387683395418408435019926928174240143298450012779225699655033067706349100868067315511622572888764899332260566464690163058882572246376847198699744893296570416879621670387230158869669722581305841468806965968457371323623110573859221567439748340653032165320711863910382041197527723025258038669968224370285209311951396763886001415552906714838171060993183178286094506136558372846165972316830361506361590307067494202532426519026802349718085708216669893285611769688728495065691891750787493199527152761845703668361353210248594447043278588070558909727083451371580699807342736598408466540555773579105488321248264850957034410739254455872427395069394512322977159333022616687396199926177526034637769411250466215746706470053027728796020674184145814272417034758586655991928898834545983726766485278942639312288140346893424341659988514228584604784846015784807636839800785422464644887044057200165706515832808774694980011870872924244805789043607038001068869339596771728939029040507538287831825988239792715829058128277277492971938359743043894264832303043612976622195625100782745020620721194762339322672320321019647738135214707914783450304256948889012948911073839746641374159880096854861504140129049201525462749286653916160268723483987584599918423844986394636832066117376630171422458264316527368869411214475978338538374695379944893607264632233601907791658852695670009814348125780804939814481057199975190348511822958137218825121796293087054718569445788264083114709622162953593595678430027976531071171064244074786338176911051753440059271907393669796087118482384423081189435104207377829697731709787013994112966234833257893007311290934991250453342152743880606910293003560943145410074129420876583708829636681857496569336297642072990407598935734287490084282626517972796027278293845028041741059483108088874236229542695307775400454786259365605106966382993013247259008035690706432606033844769519621016468188267130533380354997418807275708614768505643094922851885193168332187196375429144341159667596228720437418506330746542256410200414447359971683095468002868062845287290427436126601180379405436009642318636768824421914396610743749383845703620100610774817303281753561719435003072120709663755683263791341406990439107548872896834847096423585825609561436110057437229310317343255066194813078609517911754660279049186613059792003666342306144645940669119329167500327248440456368581671367310238811066122666518254947474144484600816347735362606305735825635458098628262377540375991219320209660193803853760295052238657128106192450948337743590715806662780902870381748142895662235512199355194483259138987284287425304424426896326060451873863032723892079223598353334410808551951788259006760721643555971563019804528428902586233119939506233971906370849669333686470061831351448078590261528481878295223910751785028622776848773521910469391561451386243855362396294910755965821593545279252917714024241424297402165180333044541198050010701639618936053395489771500803617490635195187244667347388521709531142031437844409775491642820889721587104440709943900691412347967396209741530488697242682544112845525111757802543649619171073108399140089052641541399237363444114007059378138184679532078335016470060192440644727008238191300536636506133801954553799112764681527336547434813042774555584086444683673179126598814792548071083659531621025452180564489418726339575948851731945800997577662209832632228456328791639125031154406561013726624632727563785058117976242686840406982000205281737597403431313411529894562826850527788229819046702203663505833450129587688343692203983080168949199039587886016046334439923216478263532341665238440612351793763299490091540601850209170929308360139747488718285519967907900274501148442792687913816128768341911366880727725538833738394990359169057154359670190775133232795930959098221661551259395324869846232593679884990647227282585291314247459748810454272022326125355443816721956549844246793556989677882110619635115714943575229422084407512352061804065722912748951154327382579530294565291234107614428633073916256252754894920083710022467006051213552596528155665239006051499361953572901476227952885669060072525386082079787880400836685433183569511587087237470941660352304271180903455324641095421230707666947892141577179345973757259775055890795931392133162352089694636715407861519123217307254214352743168168569620802722413062540870988467280154778495086503073809140732892577728131259724896059768992855295905686277865338968287778621917939643600172040322187042062474071076995740587975876228884411291382815150235674700887218531569987043967648901834732761584919817186512617716605421506750477820488140340547664287006168087010722652541136945530312485916003405278491264951673456444602331226483259735823837768684162030854182140165513810791878414329687523689002517782615224301223152974436124481674565927297625505615788699279114761424513552929277134491218951939175888289912127998667961080601535494721054498961700139341697583848622107556484274277130028549964993727603419167421256700723263377412941647472368301657014162746177313186367333324969901123624568713807435130344425864624620773557371890031332279283437418680226210897040354891007488100135951264593298311984699387451352655005191867708762836492619388643311492007529925504646297088600708276523346527721509686853514051739234634770893397849468389742901638288014251966300485131172422221195350159711121149638690217143494312731034843938031744775398907080425461522448467661838645009483052982997189319987698534047488691134408212267204479511685131801647535263328205225207057496863464435335410989652551061490518455287420200263665984800706802600980604928997265656639903900524779909394406546292359022390580191306882566688868123506322386366557073261799622258158946152970389367644834552205509765566411201600633846555657389330044447789318696873555132221301361341819927708411706578302789942450138019646510400900072012316601937008878221464837524341522569975912642349747204938997999064160464503119950472641963271788935480610932027381897021882903986167356984359870289164891605468685066455680608606867899946306115342227490430043276583106483705597168580691051557599342717338671700335031661132644144111068811533979558289963276971895494804956059602542009061733884695117943227227695230092426424760442041173643355763342482119165709674954152604625320334169231100434764201918958639059359759275366326673386342343498299170062883404100754475630373297235323768017132607847371069734727315892882981967253849738735391192690204329373057236542358004843794938740122636450524182019206757865969646006547814093933401789289231779486152869463963891807941889534131059426248898382492958925294370039083278357618418358230454488741156882923076153354822910039046983823610542771974409324842534313020599950832305758647681653036898063328196933447295662830120108913767402303354203571907189045582318873813524666249559471215660776099899703496887541971683550556546254982585550546171800342440711018197811931066510519697892076788864202042706078131072077860821059479124319173511026023610376545198872079373173499134436984071950366613415461984330080952758214091610158628591714418503526189518024925126064724528044767079242722580000432991410741905007871316470082969635331483570595086714418365366506580322482039941363142952226733196752556024384112523108928987575453383107019915074688392287307481112434900513893617923898639056783920170085972349466944877530571899765423871998496912427487679858608730308531229290102007141248147303126689176830214300968651647805454965956459798065435719622364326596726192763652218438520610987192781184954815560091664195698467342366749010251502911252289296553188237785910668960502029999821651818061263308319760455525748163609343651735042970501017646054060939510722283541625060056467911413852041881379883001467528111555036094021631713592353161110544777425781762217725426679093249586207455397672956082295454027592510908437305808765592217851389461983680957190867461622253913767045240022749999853448755607077841205013212251699554074302899410419957260620963692592917118851653458811976391791499684699277563866985916896912443967864113426511174496233647499366564610067202326645824181363902733775257052194622512893112998256315197719901044253804102002871760076937973058579544113624311954444860671389203341296695035627718692550224274921145412562995975426320317967048281522147649999365061944727528947904860793016627912126606879056293098953542877148998900335718538732787615854891335009323282209981060297896481147518023318834183698104172040879403364029144434567371963787669958814081111232116392109481255953153569702925032783539204257360190512710078752672310920970867037569876928044078456235520137564159716585628882157795945950165119701336256869251623302360395509854365130373423775781840446129517542006964476198375719974462665577602747463882837044122895818870755452070972974132524979447686117869783046436667406523072959713519505427855560484233225891394250133237818380773520267659803502954435495585412068531533681979039521495163351577854250513598637836276455585874579361695339551765960477479075679110652887117117832894285275447248964045392833431927993166960476997322604346870858028726984093866376071119217388079168148170357998695320946638507029271768154414063760405123112150248594529977215193173660792905505892520274956475077363240207972365856479251154166791132230527274574178056408295838466196282541974567477698765836860695005826674191124688911207295574670214606999215952778542994262434107552747416710726526349655892210825294580679802019305608706209418120671384835676673651127126345954914521979217196490735183644765495804641063423255283556333330839026128454725728398038882108819112265262758551043542695546548779751833617896615200554249702787757709610187155161826455292022944090389151070064009840113000396235025403547262839050765184530769439114442052852699304031933853290716302415794392764679877221535125980734431037017830245299188914499738791653970948247844879543073407784238754093660120609266166808753023663196797204989321277169375228110596026336219124976092385777234700945592069314866667218595510664578698162340571832341161148693712444239506103967283505758487142009585153065724373806934622340746393436906616476290658431498541658052765189219698988946712675576865467515458783907224629563302081326636221644671882289557078567618371089701831140021804590628967569660286865305419148364727931551910638461903897526288345296166960158231187116309120178379654788946177318664590161862944410234266138097607311666081062507419691091972770227621392430802236061789134698064987585689757410588266330353419812097677238273907180564506545355030043370820539910317078585598892793539518962338868014847998302652947719718145867936052249496734151444186318050538002221686357867252637123706395332004139872237019811330321020316419439495246664842050502403435268676659713315865235134071756723732706132481380818421227307387920447459678283213017880221907718621319300079383049953235396027748770345609176417909107325426587901512868939633770949512757296968863316948611345892332383761951201102172076893845821656241618492477255973278452851699553787861906426255945194233051634339342768567219275977060000806759669191805705922644623441060847240278077966076604845309845857327303730283482179434195845510636291181592997759705545712576538792178985467871990471601812277953758836224292407135570145159767933453018840884190135149956268581845453719951119029167406568470342102258382881330082404597948386320469171828033567074976800789971484142303911087333182429593991909203453762169058668847264189851793223029393997517869551068987944240045569063675416929722834052355278301685873290368716754813783728064979461902103388579250792696995579602975346625290378624521331429415191848859982842112615414247707638251401157946856452787553049228058171173891405867273456709428256127247416649193804350217341824944007781745735522474725685090109314899712188922500351219839378749720298637334109072414818070077541714251033309865067055612496119946971754802222542111977656681191983148779791562720351730175863696763568044994781763045479238101442877708775030251019551315881276931310487731655003331126353656527376131899210987954318527879577981161616393888609956088375030566169861744214168025772277130381948623422640699168720124982620818458675938135343506606104708867715212995371589893697634246038512638699812215793948006202949465768678963629817790982833179148359533924956582842576662057723735812179667661212564838314416520274809111136378708999745500841137006533264388664182891197772878327436759190960271368196794389442807857347724967196982869066714842610723112359591047647442105816380434686715474612938207777813309187719424964067697368963818892880591179812887548929510096889449928027845848841781916202381559252783804843334272372333645245362084126162865309631913862487790594747504728222209171841572569847384143949557460283428270100024636107370894840660376792691459689914941543455036337995719689691660848376636711474359553955231634165581778343388593571880954494891968644282735315386393786622109313797283066635725426073535007251450785092375673104607085883097857956335826463907269142708135882428314461578718884178889490677582260784711575785389990475333560758057416375298759904212278224006681061519550253255925941629044892989461444781129124134278655138572672648061024557887607414939447031633271188985459225110352624749701687427832713969827579711721824098963352542442808994725094393335188004014214605750117223949246988932980505205433397389489528885288672478737163554900131619928973649970130412458900588268035597697738132368452833028782990174958627068477890060130480302700838993737059663720181449060566840593247696070307430474719773428803154205291103178315918981561179276553909322578975106422448265295961829664809999821652454953373115282710129565444829554064954025820578155903258418411962004255862773576428184041148055381400968007021692753967733996861446723941152757645834208034837118014052581182370356184671824887297326845819020491261068502870615266344153779454063770075955773617939278916089679798009355572449358455862794774216413094564167368046448963614432937826975716290399318600001384534416542681633722255755672601290995822260564012419401974377812162352965405650997278500662896280265810667136427159943358000245853971152648983662783636762058701149913842190127712571115216564508890449543191510945004742568230939137345476071459141088293307412129255249607070491346526017319030795366305003019619690432791166183350178529280598112612447997150203410300389123441949774091985147694683779523780835038596637036676364556216080940320725538273464252126046979299790141140233725734194802427441167639043531161485909801533578282673030758060751102848568730398726294585897310180828802956794543207183769430829505959603884474426629891161714860503609375867328867667298659254817899911859724223761201262317122227299748497637700615479477715666894371708858688507839918220352012066906110587576357155891641777079213820323978246718126642871753471975648281863281993261568495729214775156194704027295625041523933093224475690325853010974241457653771894597878257155201324235721639866839850742731032588697468801461880437410887142299468830327045914623221700253972582234255435396201355009662702303603568337844333161808118048475911573295084924472129161891101844079511314175896054475731483100037903625747629272866442713714148642699996097913969702965756117737809478169043433537202661903365622338413242259172183451691059053776627978524137988340125598484660034027207686555625716130188804412126278544305190964779661619902941705212622213682205598269734405674346405900191341393411005932540128043439818906874399896025766209293958521721265822429336829975913045910434103799641270249272970993539244003159776337401477443603076301518296681181844770774053593238933038862681858943828466332123095374467925066764671101134222573956932007522423704746531402671322197585736533685064442356184951223528435171945430808052400217265619601766866589609287140426639411099634448088645929075405284207689420477083457471018655383509060351155051326192398594352907208180394770505961284122136631637667653512660733027373015210712762147007011026776986811438938234314376121204634660563541679332766301761181614400147692008492207144872477100072069442445832890692834921192129113249407982008279326587556870484900046790058933004780582572470430066569540807365532950398565430278308953362509702717332570593702256701624880150907923532502229853976217994882111930372867337144726493078496701176456829585191252334061900222364211165572060695004411535905867690520550418387706146282512471244154206613993971731254651211990540379715503174732181578284243201850039296882539179909931897614613334512239821149869691451010165186860547777382210072886385968470216618983980697520188763064883697883850791468051708746902921978135581823219802895815295462415665288446178399375481882947193295116962811607666095383764066998034880698305547768401104045725239876088771644709488300411492549494346883677807516328780662318329247467696508608245937123407432551580984182264209618237339299237470672213540812655051542384075958174190187634525096321670314133521979565300522734271825039948221996998565296524392661871151409666145635022881430304845253529458872297870628257962532107349926613577501719524167328991965140857925800933518489091821339175472780680404844571681273086277986208629100439085083209805430521121074371922638318854942822675597226029256663441155197854043968304098236310396559596029139228749011020320543270982853391716095665492197659976469901388123018850400360786968934833617939780754295954957950281029049307228435581175099725261549023928906572199485120252798242050611394837514894694909086424692298663754335400946701938471740801559595589068763314083100749647582897060791633051157114725907482536371117097250883525032045177699768742626938575216204687701803415332322380607758439980887942800409765951544225956325522907275843265247614186143580214345260643318785039994620200584382869584364031117986508375592664916350587142444864098168760104714511978372923018199644851444056767748154759363862493749152760670224487074702301107720922220998659096502424743764745536203620258276076626740505037963128615366487980181330689089087662420279268113492563971246432730983155452802517572494657060800862700882594126478405125050470509234684508088805166378650756837257053012850076700720682227163300050673969920157476488095798974869671045693705852317754201335856471588654167813314961222658104807875847820286764023485597299405386032971297212148619966722814075396798963330378855311380822056292492233960395396668730800501299335882165399933252318026061532122249226704319333719390887854764703055479656003297204014279431560549170671678585441914743839144360091110020664110411333673188726333843657667796673232292582960771123860629322603154330696520607397287267953223547296240503645704489058129933848573023167436666234475939598131012711996518094896554453187383179453084255237221445625433328770799991166269193546682341663311692562997267632548076532619404222272165512397467863297237098816662125688266324405372884319176376411768473423044833613216423467115151836485323693559121283152610006988843601505179470385948471496966262737252171878677767425243250638235237760386840895914504635812308220159024363948857865969648428227724804761175038761071238303195103811500243503263242902523394558234181500007792701745983899874873260935478438058357028806568288186170429703915899419323578315694222891537101311259112297566049682006454457712827356923659749846191628305909420167042064159338780150862357146987427059160163792337417773164317148292219515897359398166342595026879822667427925740459401615909211945314196682697810515611306594280864083891220379009356182908640156795531418075817576779257469401341057582571610971241543762521578622174183215945759668199126685080252228736547737236583654423787316424520617345876205902286360175905510324371228276826469150261297101534972716300866538275219113802844547286496875977992857326550300403125445291557017358417037995025399199801261730604503340289300106043644330495572794290679642802078342793238811985561590013145305443916798877967992127172198374199436027740060662906382679195344024012653563223831926928766705233996340535456215202206191552234734740639504202769390766924925281737539233576410733737173881633594652408255717734794204586492322973764172314526925629272333845977087269547442383497700947619583889216531958246241364870867359413460110735017197497452755919827779784319882945581578017126266107386729814779973279367256691044936673690304081855774922119191474526937937483201503155499481495881005862785149142687123308727821963793966576027307240856352060533886828698438697567089037744290640512481579723202142397349063510754462646333887459659405374361959115779452275370382312804364306835564861618108721607554401264639012016320559132768806945441084978138609128219361205452848119229873217904632556876456581386196669482166905425387824676854642913103671838352805741187639311640036688916020853851479481413574942823503447346086464888519039319282280078959619481251137573672135314757933004751338355779073743174534955313335195159871590192088927786840198596070595141371429456746381678564800317409278639165756504268817025644234781062493364410072144843787563405934487742316504931229676797886303634668901863963142787590467477173874302768262607856435536928722444117430694600632110650560853355607335905871043180557890683636725145207623429696309477188738526367237875519748676894739366257539075056138652264161607807359905015371849921482670660575592083292826790599050297874514113734284936987507953854328522786175854435219626948100816198572519206414743452874254099860811744469505336841191014576743672814473302704379936846408318896737980525323953568374226367753800429883737687622608664691528570220028344938358653105035596997075855981494157305544129611086906944777170056941632675837585627209654280379633063448659646473871278139040338305200778288980954629866361636348686886814476656369468727111546933321187107349983195154952670546646517088860727373484997946306668318228865581268157150425074921510369657165119762244315604575959334200851189050066815812761249962318393897765642116104947220985376998497845625111835449389112875383109229681638971753583083461148404134972667877967295382030523395880663342066211952598164322585430532739457414551836225294063562857210907807135369844406897527937874782139895158859927645852257835833052324049204178019276378295428871706561959336293817201246771730766639756801159474774836257890335088309963347181107412826218644979845090012803948156365334779156487810242696081985734858801027220230315514422822542380423447307837423723650572556111298322052773160023258565790411799257033785446936617148055031362153525697925526328400730938754747999612868074132532126406189671385442012043120146236600792682752777364655485246565960929925400312310295606192085928105250178092199288648422719837296238975406599347331956422217078645263137127695868816304059127161294114455493773762325494188535634252520873710870139606470072391758597494591838347391614013884408481962000302909366511221684828968285733684275197546000574208026930206148832198947709537532681221916049742106609227196295845000511684498511056349855075272509937141428540048304642484429986837037559392221686553011539574924942711370176976284648135931829947631706274018268373812201382374021922105065047153282261275990329997560120509388897887899059662376999885483302899589045089413341903158700336621667069996510204977725562792294476446873044036146894561344519543315893847291866856506176182840815753166212260232483749040410774805663087948536313804122524280542202670692446931395947380012888759243782104942977784130993574687379366727354104996529337033568175756758459305546671718053299953049555233468935071032133332202695964602171527642563117659666736811750438123760899411237402112996283387708377631355250837204779410071631793407330061632083121242322290561788778549665357845949506731105673770894757758266204089261453659042745415630115616668876377849152051369262462804239661473739113065025931994424830622558610076310735322166099255222361593832917831753909138488739980292375918429504119943497149586339892912485721997352651982207976768100045767049262430038520786982903600845427159659362038020866587696197111589989940845011878347501607533250025887674268553199000390425079179957200775430285278591486065687447023147175775838708614062615844982088562673009940015601950072357579678241351738746380550985411965907463023149886776923412183916130371689213016810526543077714991848402714764931798444660202317239940150245682349280316613076410939120483643773875412893671135055608078487167268115860164361979719926922378541122933479751287561935628197754464186314023208960649342737480184699995370506162461325337302818432470796593832402934869445671586237611752094502819320294533338647065311694521990236638124943807971156232506587671578634678194346146903095115255480758750342627687006700460150648888852062950069715139799662951258806861930993003944655833804211009189519606197029291908659095660899423003887177417867519519664438848697241784676465695288906787690394728346381225372836839449893527996639161004929994632791560814836845524904821499395053174817948205331550176456029839597684967023790327421285176911043239248974870127971698871971977139708981061883535294202019089803205927073728598740291580782051855527233056810970865829775690769177357050118433078423341574765477540908794523374558734631378699251050212318662318290439387970666475779064088678235403358247902762814024989212963549842613366586632423392037473559845073636380379932677316710783565522642924136664629555705520486084966705119216741123071712582271391486387844385219309135758587874562852567073373096650028481508944736197540667809360750841461977305777127509208092221354102221375310330281435969204504453976898313383060112218026602465154087097528935441244965883829496515185419646018609576718503641890006301944214695209744198911763943619987295228621742705320138331643739971880321528327948698864935456445752656319786732350290131934111812789131686262841878479140961598238321466606569643918686799272114088490758499110484325349973762028188115801013912676974113103201983972622925569121268246293440760237943493894636685222710081917564464236674316585020828103401824404298038179030186902804295506660546657706781466882887345066405863212433153531534197444912736959714646218112529248298163930993638263423493482296676541635835298080607744404388877856643715645015139370911965034660171186322015430530561099268388974362515157451141481969541697245127307944514197695022659802223134247306594410934216130273426490508837175448505663915589387947063883559803087938328062775105644490037680228284968350995325404507982870667743687848274738520841005463365330400056147327052367688946801131985682062760699707632286920085563305491065412252692014653558689570897365459697566412717603262033393014992972608989360369439719681708342630665056883756824541212430074343699606909756160616247439971540258743487875869650277346239050608525279138487344226974200215368387429591713776365389425955358533047983851164758970334271667731997203216993473053836890549136894992890973309134572150922423232709095120540254311333303424615045073213796617061458896854737278094072849096010706741242447894792563653079475613320187111963097979158272916292745090875320814513022768208416850983269162835332483216677917234318776035025502896010852462405607614874864810641057264911108852162992055543824745109291771909502440357119767611965257516348960655548482725832994396736791620338342529138347255514667774879713943263473668165530953772147877525177568627822658767673408655539132338349022071963481919227369266468700469375896692940419107181197920977675784056166113459746258470866540923234742807899541167778274610533987880770962865827956714435097732840735316825321987636549728037458290982366453035469715642172997582100304028022465404398375554258305270960251244108635827095013116325620583575521604534003853013878553431125775742138954535370092872291106523710004074581437864494459580022328965222785197229394354451431394782769560529564551529178949259028240960968582196018814245363042890159561114876867555736743945744026134163213277013665026075437413813452219359884303155532262046564338615811570313403064402481936012666430178484173137621535024164359131351640033075555906906411976426601620106087131414416874083905507036493159776596523833823053328912017191704183140045895220957155077675160031766712330030814222227650746868552904290413001314051600391229974709520570995701110651225775494492169002172404369220694870331119784606106203738211118764555072200684990415936462189921158220251336623208300216829521042617323757385667146561439712095650966953781037240779104149954210540687014768382620133461752714938558056113205584467060718071770447192882464842486736832578494978596822619852610367259537745194139755555224134424276316316131799647517576435599911716140665094825821762715441662423514178431601877826270329787831317823964713149965799857459248383658101350033978496076817381695918450130966108684209739762704986737426330830925605360436499705372889274908672740757352490308794074225537059707819639438679733765102389062906510340944521808408530855847325277588669747765495698408627368875516235246424122641163913346456206272762533909246902445921191736968866215912862595243010065103958704810702475548278450857499394822404051352045510105227833147605137228110587857852094804471423657257957653984542682966500245653859446140610240075792973227091729246869472251692457271385608880761410825237099728194716951163215252912409168520644108843504812319785375383310303001445556097569481912814188986667118487311214733254943460947964339045886481804136031292580476842218879654634194915126151112988856595542618785436417182337150302749726301130978928394493895014285093719340904250432901670784179033551749961922451673364168514193746268282449675400259742407036601196964657659206283429959975448664510554944316718381645982929085103595217022088017978476939408949096571530489744528255062457793028045827440154347729119261606002599509723107812553488535361922784226053458189918245202303940901337357515304802596378642391015667127031085982288584712738697554564868718993324461935179997008495942302561695624818826021970209395568637360507696050587788893854345923346424197928430130304899550342368641255276142608854613649108360634724373710767099475113190082305067597211188507784058600787761278185164028112628423351738395135507532042218031340078749906537754681855434304205689773163593232751583216379143554995691004961790529660284784139381076932024049250874651974906140759614854638064450499534836548365214627105244158522272727031028267354517111532808292514913669767746360952306133831722907124181364196509589744101782131556024334316742020282321925139021650205872537478455468585042396131474135810711308837720674649549071557144577204661566475799498818110091861332059226468641454508979705801023522020794036537223103945904350640637196632379808919044856583549007376327039433460911768290199060932214991680628684625829871970146773714797731976915063363269618901309715539553109318594249513989817315300228952929919634466034681226560644280927269169197805953622949911177968639937969033944705006778488910275252439867374454376750830078404117024355927836463749087258499849665594383554349067071899916998959195638813303872903887397846774017685481516751159895709465376459766311763587269385070942323027696636131373415114307576386398682107876574368524648895037231168304858604909156482737200625971908342999506215946391318275868755928984497445546379647350223475324031888488686192575141808580929402128747985632199903593100497048352738386695341893214919969495722557524671719858793087696998851480962887342398481319833475670903626655441385254259455609173038013796829991379672827328034942479182641812635812461177634981094696016629304709359219725779005778455559358027607475390257662451568127191383656404171233612660262813756789462324871826040887263167967103898548640669702241640234865830341652835967457864610506235189699246466407800092629675075546384154295739247302581330936003456276415319587921444273987115636277076765537463135980517112365412931608204143220375370589589958082435883521857224533212990062156212924781478849989717236409214576136325051563058690844864138509862726179282296591692715203841321688689581902151171483453324774257839884012965504585467325135301976424652177244742398396023910110331000542953218152601897258713095939204686643136840658757249208195084208772145546013594192918233021562233497814029665365891951436007063176627105842318251144733264200074285767554937453893292267871994373581061879825874820070683390071566206962598284894226912416308902169266487839609795463712546210130810876194660519180684374561189736903732805718893399964011089804399409263043363548391283046938043412954248396522117169650214507717917325759528240803458809756458030171037456373713873153837907416740164287319771045734205057879217622098575553481850893015856275210217958475881495664533612357731671115355328035319544079977034554318336242608550917350977977368781454761639726773859210182829445470225371553273516490388107232320116540982123313560109629490314907920798323969995990034246005487150500117623936934704818126256384799747369096873684312672055843517918705271091405775551086455878181075259246975835500622058683183777394577280751757724692544357109229646336467394776129992633365003254437361258652376636733818033574582104232242074322389259421893726574669703520561571470059805695900815850444350382192689802391419534845357008957943707924374623913441080727818796187587981458605334814581743950301123349483013980837188120314466252709647521188288434902874058367394360066269213114038780381546933554453486681802417475912607643802360521741326806292559907118263702834961037610258162492583584299180172848656198719211268101756236877295809682000018642570001931167677100827935345347114717985745292407876625263352780184128999014408527252350375006041499390117703339880201587855282356821280423740970902914858774560295305110486786170545073151159530183584799334433857491834849372701151578730079577102130440994427134467421325849322583984236749405325453942330738713001911619212372865865651516393972889772140800489288857451539002287505186078286828300437856815776218405313861826966078875669911490167474978915643384999654157873831540548460468919968584701089282367218403101926655754632540845123463505687193206921968465968844862231432272213635309981047620151331473638249728180779997048506157388267646179667653544407497902272316004952574403343007842831561411118394763445080531697834405790456633232475607128043921669332843273447566355597917821223940849345517743183471853806433746097634691705009658605323044852008394469264525593160993808170202546412284610259862795283599393326439470909494845311304432665855083016872906422724896923792873100568048896250562454452925675131492158242393025982408339852611987532775426323961124320889477375637468819834271407407843162832836256740512252928590120426634989787561282884466613563526423026015610389279909329861024332814271240350074794380375655511897789917580044226205612480305333049822162174047603433316261631989350851992265040304628058602190195815848241158444141407244220439879510129265605952831457878313842996381116862767706637216823295910657176657872490115013332607966862749642781542354820024530722349453561546478377268183265023862200691207191160521329218378509448863224779003132059044414508488127270128898226935301922176173013806796191442526264505291620619915051060052124633267462595029039734135482379411358739680361489881525511602172128491643836998375150354624486006284547575818597807852844429545081115869303943530338215063555631874670457427787129569359099596846786419191181916970924000720750409217404363028445487574692479865483772579090768851345843953514611441004003371608204664184251608576756022668905528869488224287263905384890392753459677230056947875841382511834386312696655665250102298961057910003457715861006451679998622512097869782487884201592245834420162403224455359410861427291610293931445849174748194022757576644168781607996528932762197194550240936082305484924540283969117826269840030630849587137398505253399879356239470862572474269298188313915015642891808662188799204563786908262291400690435273384376829341838650453060379168140092517616859095599693134364945850919914764245499219313249764832529852628722449690443760882853541717882171706673399369274912278704213479441398539391897309508493851809241120917766513888568446818016289064301801474419495456931737430521667142131404624434393151944625494395282812931065354254871543475254285433736454258799791716584851578185119920856602735534838694686233705009122518555505771322571433934288107164390030412466382104572953195306725913946387685576821008480518168866214943739047624821789691692901316923036073889426548458113067395314611655115436524085643382391541879671621253993524535597804509076057282905270389598315135632075219884706945831197270024750894658199245476665701880064654476862886214641542329775904638863646750308124635150214911058623886142714146317207693938666770951424496864039433074409169516750579358307857530672978377688490637029453174154412580139823467509808463258848095100842791980497256871446366530805495033409924527107093164926900237561128476897304320035293728647489137239711909142035595957863607937962056613037922799860586252025638092953523015363312392796023233796954607114461676221565358060771781179921126071520165296563440667639135689843278814006358998275772782144895852832778513041695702008599542337767107682316010268116929409755962186975855541593356404149211916695102975779796338308902038689987328107934685584760346013614268694120049003563126826601612369000174303427842136133903388550517828673713251008682718792530781865627661845136587253826559815823025974094350955346715539935417955117262115902513393435412992932569374645356130572656132536573926497094277146256388106135046209722372261693087269981215351594391582539365351068139985877688037239390076375228054447125474417547068510711292719347039012821312731421680393123396025375257948948408441468168392135981603821942397384896707500604969445436929989357338795774567554449006281556753226299814734595499423294411452178371538835031916226794989231045113587855177135472383405319637286492961142189819691051850972878088084940115547287239866732633156282482026094393608007993359736191371096668104245866853150173236699816783501567919223309190144587852616828530750210207700068797758013838370527728886806115144711205735711105496379945431300537918295785308722982374705251847202183007590402823176173873502777767138725123726389233438266561393545732190029741347581525208084290956061523640876594894626303133062660413803179402874992220990631479864851243809462435128331493986229808373465546936102794367645407588749392170711213073032698470807717874118600489717486186688493694645010590695219919502442166510587901331444671570581802761300393103379594174609591840329226891684806177694216141321360684701938191413154479877974364091740247336396145398907541500721498780433298835608119273765450256353436080683520061523798075869918595402794663985462347227856253241173367131273045865466833467683090021418582778979690439930207468969475181512945207242757863953052245337033996492979952770684873495798130699436130741107986751379541824705522472756358099638855426584541395690828381335069086950001206679490594954146830603957463707650482543908556953544184054330223155853978366760327431436693032214050398014746779527806949110237999827533729239045606092895128506803686408159887090296262502191040545081933266426407386836626333959690758597094025169846593089910250865243065257374840458330551712197583452328250449653969598800402011595892012683836113073360381197554914615738540830098537657401523858953176323911337862242518021883930412358454597027576135159137090960659523455261594550899111736591322833292568776023064091333561460019910591740177661482717452942546636194047189732154464914715746089534024148961155672644387702261412315417751601718912026739648973344644822911705840614466782809164112205159515199192929556095983653788725050610051865862011556549525851323085166628783335895680334073463658717617613164027933598659677559053304803197565056966454615000868689783806618171087989064447802642114396554165282493356444277350759379364751221682271117889161420502821490647849484698674816173884918021682964442463931646643982686240466366345330442707131582762413267738721857943184613721917407817513008805168830084819142005426029791313644886546400585387762666962234943811161864053405543977260539684630989068205358786581110488017870387220583853019553334087603342326140999004171809049906780858329552325459209710409405659316261728734945541556638538373153298594151147853214312010196666429837791510122605135596354121516257835633049960653268970142036611470194743490068176459729994941601844512181743047973621504330311188659738899370932064082799960274528991674918070552393909110897919974656148647221669789900382851083264098279710382153404124592290677790286013072830006906496029081590259868811235778671342659299267409339184064597724711701686688704955960505585787850913819631488121156303781187844995236219945740015376899652055619214783404316355128026487027382819139493833708291485268087968239693303534591819209548600065670753183573981392225812882732273983628700148077438765557165857207753816291742568692020021405275131697566528599386607320500632204051878166468732214363257774837940914690188701111119185129978116032096575540771524547352572605119415768873603563332748271008513557900306654497896923780846334888027171277222260277129662011508897655410641716923198114520703580966246572517863495512842816210488052247723042634846315970354334671916953603540107969607086165990946114164553120856529175400024019061644847238679446199760680884406070311461041089481203349213828790483876029224910533838460353826475297560733438997705887236300242478075289788586103690044397395420733401761246219489453701650755997193440877561861180367931843329904734285590512341872230406253784345721554716639242978756693003177708668765204145860588009564242698571152902728112145026545702682714115940854511554462872448349565364028804621705890921208745404192678667734901701846037515292701357986691669189187905555347145560644699076496354670653018070841912586134956432349514946758355627126748672175578319828803756046834066758270621643259592169532503551692882300841157619430161126821390349675551531955982383431536429498760382436422563355591616998943903306813494923554932188672664269395575733420932196793648595478217811727112820880466152226172335932916103596970360583375847667764307174003893164382727939862161844443174649255510851584285883171695530711116721890145354461247603567977507628523300445587767771665642721070016890529944448066711498125349538553451626403418288287547489430979415591499877383540780108197445356048527552873903082432456199907700239090474140985086970549109178050096562683452720319115925104762045110528541637618257842705310908214473034938699110690618809222434316129526435633181693695957716128542618125581555545275813076809182102119524913631095700407261901479079203064495344820468151001698639294935245680526547148319451852616490626153051687245809320049811843875227055051678976376242590617455624604006948502100084067475529413611250671122162928604875166516231978827866912914043556834167721230255241376761910361250664679146195085014060097172888711261685296849569694131345684073846091106650987535192630216668016149637878801887119337653089533110699903822925247121860929029780319501416874329911395229157722738737649136081538976348173823716491911436682366371651961706611603614756495561286669617812702571212632491462192251567571353892548141879019287851530005093597703167520506779794070930580919378170680096664229185429538164061100212162507925789000737766658755326357997086947358674479945918433544271618635774596899047550880471303757457622189508540885030435300759940003098939106610657269069306108485467229267419643021336924368558332791773672009071939122938186172216686878869157961809193439888988581293488537051342716975210739747990472831271022934589737561140803448730160920018861891437199047120435069169270564407329164407841253149661802145399067011737284135166908362463216980678097010715941314161484697911422506468507492035909461128993584061067337700645045843140861840820634130385997416794529732782619463251674088955345818847457171511098535618733421749207811122127034053851564761639089466204479588778260070886891493077858567430049182435796134921067952814346887516753030246216905506925266905690894705766605657461114926641462035385861405136593079206332394453077428041759479640893221338372439317803791177660777959083233815141275590572227970747523014851526336941125042372046030761826801015328061251353765375376219283126610115319739414407356173622230762396672471768837524453660878411886619250286781703618053740640576919286332458902502653509249368849649224856350246850436344386693700665657618764324577847936351652991931511580528874253061932330003373798591998269450163192347974532193053434864653557853238893233825179448340984445246528846665032880790309092735275771709148249975702582869579348651076367696982682482754831620503972662617779931474770777583145422779950531047759292600406241233278053820157007439662957184402824636938476320957486671071613458538992297803318891807278650707740560815341363182946631762761456647774106164745664319676254173388811796766336899421267535409759111595947675421237030880739400854288345233992165354011358603437348786466858394422487915295757174555129707278347661396438678491667700122435225557760646622375642079224297111471988273941072971215715552977742497124573229812275420619310015315285193428986968071226041771745815633633119648870549265593123655776033244741524625414844608916536094662980003948451585908238559129043117785022978011485474008845704461102409331036242462834237894769997258949643723082395363957029796510616478514772582362198465410831678912930420354474517580747592730320149048121364161952965576199850066555467817631523090270912224481291101335307738942951862552248031056251144410384879385825869565253825444172555194238300415035638204131982221324065219011278295022242496471997332135118528408158381171901379906826772269296234860903834680618438480065180288788442688894005988242504599338098088861544766659949846219126314565094431928663679075768750730374939185781753615640820856897278401186679284806225712248154513985158854298524402807240227605870503452867920391945541153900915399789741250931224530864527161616347875502685629713285931989762057054151946382803391381798664637305480113749617001436475550907511630850521429181092021513963719583889073259399556672214161084641283066888256582857691350675339930449585145506476126854113888896157243360041742826910946121704045733410361876380816168128906921349697002705950846313968264392629779038387279862629816683946688617511528062686804223553313947331460839083963233214506384923094463549459198590199223882244234209625947638687390887776197206967695066523174985470175028515674083564439800630617689750631773844402287989654687534081664322991344195691568535625218848711597864251888849239326535249144523181718204982479349089558621653387295696620563392504633436405260327976220917363683942720943464541036624982033075674473375577626384343198409179809573443384273307240318624926465664946046706323638786372660798716290458107392808298036153611165077713108001471795423740101858766565199978879154859107559773775709040406635010382295026951497163725177221263642279270586651393960855860441741741735395629595070678778154025559727720705513461164270494403460175902660336153072469685136586296314696402245434349460161033925689237004831423464605381568311775560488456562474694841582612176813621850968917322558915833097400229696928567826451666154693070059847176278641769650585694149067759998543393495921605583414184504748752240744144222499101879336714915034155084456566649776918935908435735512519119548669997330085269066323560242430155223807590841728600536611245800385413027713106704710421970933956574783383559039180721793736295543543369908725078252994697214009201205619225000955623371229680655827362483245387436067966131294508646789419721338618621795271085843426364160177610942251025407386968097187110567491062881806775025377172720962124942636528378029973639963584835283095508947981250826748679382300030072162675731490600047235204367136588033243688892377963041225038720529032795780659211048137877554807993219566768737935399362487515273305362586140366003784909552069036772378564277341513176882628043148951908605651024300877817905115392671785847511661657956983619600254121630413404502920998169922974169536358196118380978880294454717028488649012579193463926222276384904795691533410270357299441117784990861827903241296029495180018789355326990195902288554373499471753824982307084736840030731997528825833159697793326946191482478999548870317393762390244698380983872114256425531914360976409270226159931911492027836495558416433380465859874795996928648870788604155448739013433569920254235652429414280385354238674968845322466371736970795255699107762704445816038803010015202344185380816813875739346068779848845487488518946079328516268897778295983414084087449821152904700093784549135769539479681284524216899296572020723529621393572870609109485917861012006519729644686119764731187052500054889687310479306718002113006549431776896959983468376470971984368619475793071387307900403379915614241711642006476607602245417929424644790176195163893011082192286824219258729106120113763137312109878414349351737019263539274389792400766366792423296726581633680372720960283353862230314547855298342649249447496822043940163339863509542725965335771442149921561448204453227312800063715313144663543762322103438923246759337902871684195168377086531653381598439812487539607180314994043460689363614559233398205062912505456341295874594017198175000091378164693283467157473735769294274416805234998944884743342065964833563624059604003569456692730022206228381620576496246827108941712248916069861637898311992792707136163526144057419487067650746902780843135094077311069714511452539041201634048528964296673226031198130569111481478575863944284488165790308608627551976162345229296459145122775910808183013500243907446509426465362921842590623009582905175928016336430214404759263131329440259169576980458288094928465079399668708645255804903689619297100979692066371807721010966747881393826130533445119637073710141801101395349002545161671113019631803579535568090259382344485351002470437568832091432175787992252390408064697210666516475976583367169266178853158054497752526752810252460074442881526018079990683256698670208604932504513924704528632258682171481136400757253550177827821001129329464265852141289662068715032102722255040926134664180225819874552095316730263217127432428157486228836710101169379565705124706672721575852864082230761353768604563121566475729665086904859466196362265139881806184983221314369943262825566885905949971807552771597814552399353434851272824771597014039358337489115576885412959971243427605232720379536631524309856632455598307612041189379563188231402904746320029769651513865256133759740582313103812042727999469191559121331240956303660417317443695555164333612598887096087818677336843692489772158384048390772377057505032544796506719966599810130703076481917310880612558865226129188439046571809310308412714657190752717401456629715955211528286216859131994712011208963073845656194573403148459329019087432316559892237732770088570978579766715510043341345056332515769396595443660511339988954830793010912449855569936888438686897065314132020816751341495233162952128711345276465498053913308406531631006435932685104541866772233959696365839258599979143447837859878468635481157919628234916643381526779584801467851327803233207202806890274180520999621601093231527806852825694306188457832791586311100159578462864336558023857773333172151309631461014484919920546630145340778414034452331107853436239964560489906239829550995243769431177778147518970675272289779295778953289877471393842062167826172253731729484201617466520594116095192288816474060337619201056001763875635994668843484150199222675250217366114014407749545665070618276209921160729162860390982311447398347545310537977558758024396220826120387041778620318194063814661254587970598412175599616005681178227500404358944087997279768030550258295016388256983934683953628774904710435782489004040916468793214181053080911816061856802216790229283725977586657939654036082031941828844621664619443736580941738541916897767478547304374148852771222967561257113052350431489431846326601044917617845908393276210044620909732941497231315781478918471308350099088732039812676552814756725309750286082934403760343405212968692135659563757127494959553917297168876663073306112922060390328577161677933991655527733566408619117307335535077456207017499776489059086145765790240684304556380928330240377004134919774264431378121308812791346119271855470887368923514710336093948608829127212361152877730641691618330818763451021576948854942976717909726170620897734525206477002066040817658556524028773244238649053167963226086695322531689443233673049836772654669927964725593923720137166185188588424920222074652202145151317843016776696670024994059294489013592499548867382733731373258660436241858843663793878394520811538312106638817637168206743395453179921568911438932669273935027827281906134671982072953808285693192176204208850501251687504891131621045395933978191047158156891950490922913919405098121872840497966216836968414203660028426307012278944070478597643064200182810767256779942403401735158802124644767059884983413326106085016997226762674383646068356562694314698407127314946578871229260820703494568412568998022754308785342995114325655090678048299259963300665874360507135788259717413054757851878038529376996916424811183215668817572214272083370733046504496903051485476713350104429838215497734950081234926463212705568543777554930732562622432239034890286414364972064421632919773379459037677398906440163243516516197204887155866660381577352656410596078182665873253609345559787395551653948977176484864943659238493617007876187338027167880362488819997258567449692027601146395536824426215820836791768467618035382984540872919442589304595820717728272057459030550593669332581672636360853881491483508511514219694835879503724746332342759188131428527542179549483917876002409167618783318505117333970704183201456771112313041789483926304935493998097373052891604150285988803339675774593146862431479010243345088012515524979338583712569207457591416177225670601045728857789154910191412110319966045199608898255171924521535724084415812723475804090940150143036487870422247389274613105508993146009104022056894207563955112875107129909021688599188796159509995821071024229587907156439099041709107961484935239304648298044490144456541016085999742531776481900210106880790917255372109298822959711492415845722450628224522463972833266978664560750103587304051467677278626652457663285965978653929787758770171685234029266924605770363681797324162924478036738542923574747860413425765899172765875433551987039137968986446912525729427710507366118216305859813135248838801054309188625324210585734539869150063756314554430633881525818313465567400528799722725172004668711739740492207761557012680296319151259347011923387853135856836362617563454158225204079681310855060901553597762903982266236912470362371723829420784393381914038247048677369169745326259833106766191630923897550450987203801023761582514995849970840539327631165385814250226651843800267103232737561197117024056117661786275638013004590475233681409991275364856118089741847936775141843651193276562192159803067051706965528048787850151798808266067055460023324575072530480441401553124295414924798328338489432343451300704810734680604939323251932838703461073725010021193814098602861553441605298583741224265072856709961772626088577719648086784181822233303372606290862551224268325078693874082639412396127017367783638489790071746570792425366392144342836046959646835650139814125541000654195494152388872882179883347292203606386478102386758338049360217691265992417421188247707105911163606198918392018172881968632130988690452124107636323555207607515866920731067271769846011072770460988828696792214622006578808063817338599832644836583957830836514660264228729420917139017547632561195104949716177449930789740815694544670950717980049584739614400657386784263226286414827325053166774678744023151133161104546660469694861766434960916822153577040159374421713274996236164426226642392949996125234845040352092102993728329199166510466064131400138718126180984339123499723786675705174991172803143647147993823777252785653556532215606822505676292437965971827827504481383206698725378786502878768184391910450144187607727761744897251834205200041221210592819973464253620925980178864010511827666249977506012558503265953332017955953840123594963437820519935719563854710586540984900562833228734769128936761528884526576742499557113241445805332638411584450445238231696094833522552287192640291349410423592849777019529520106519545568427105716311395471074352154696359045093797768544508377515380115056828148028702812777539932189406868446338227793271816424797964847427571255733685090102552242473407970063185904823643302171859734926128797233713507899208168163874249195402523741038254662606422980949655134446366486356477169849078841690992404494189595573489125207050322858311486725914161751472510257860666539285824978889105297982669470653586156796890343376679493207474706764058511905408354827846948132015646878145404148895718627459218924448336318046238084822542094306383608847042045638549675558346132345810768868972631746107989412635175808339969734805824140919688051607315835462231538194614708882999178901936538878010245669730319269571763042816999459265490524785605039330296559881180085982145855150257797210715460397684291348237900322761153146598880449968172056862418600299685065221400607696075013745391106403705814511768814798794643591191838743272913971630102184096834956823578337898661592143832492523385066075314965125211976164446820949484213009219095296907692659741327879678967241184162345478035327865838706170662341079719938021627931123224979351604885270344895749280764695906139106083354012108809375717063444786097126641600861589326223995090666210523045339444799104597766715117755404015172512087683234589280308855331289270786649796161661592202765854088786726921720503811273502835523970224336539569807315599417296667094950594852192582900708245957482239623133278343773187951477063403434675457160296291383627734622707601094551933599882851671739012271385477745932068825850665763311645714701869825926837140562759391203946914861710065206342696831339382386420541764039204528485017509253759427694688566030672581368501019139695805219916061495497623599158480567902617504398089310187353297266159992099877266862435543479532691442089952074596104551424371908794623412384780556058954976818173960131288660604888973396992462776154283512104757533278563817695196253572939695256435255646408184320046330435687935508836138720175297636399506174533902833954959034169044065382599175118893743562826019473513196647713386630293266186346075746101153328520658822753369113995043552141312696158119099947680677034721443576585687563049523932630217829145472412424798593725092319627160071145570600796985415803578410064694353199140095417124206562679340153072058114165764528085900087125038055015406844022593817492377803870424894667235131178738802497909921269237180836436948846508508473494135253977086285458211364241352168000467624508483846954923211953448648571483554338256758368797030399060677744324453473309243750977553258090196409601248246417305796779664316327662912301252619803414786758387599670906465656394053291954413678837263421246894617583002289119617864420277158281062426934563079374272990779043426696107922494068288303005114524524851237416554494042203211039477717190823714044004617131661756966929630269017939644508944762000893966510169104271360703978440047476425067559315565235126365162548252448103470324164243877557570867366374718570164860532759493848635886857183099129773688106937829816240248078621472147468692954627915823430111643889064116279172208731238083819462091716040525525571960376511276527028487711893840588660828240358101898427811151537476422141053691166912122798951152155290403375595573511161707158647222481878856062266671775295775637687942470693305150327701282604600481947657125771116867514030681424038775168281674939509539587669021867933536492122661430757009964514912960216723657223997605195147546525370096005001452912201131430136180832510551053597941449268785444189168476601569396236027523275078340364611490686197849502504119056413817410934375192367848585341536946897661153067620267006032297928600213619488448860458902866500185526423894455652339369745626213556940320427350922942560929590991920802290212163762276376836049051685478639935224426383465211243539135883510963065839166979522176470167979242351670318030720343911666286052757650819983559125595397250874277412622941993768670452153821741371358872940543789451218112540382751934986238568365695756922815663833890500087457961571387767129679701098948414585058419622693740129507323146344261209261682953160117189070468690237813930629006140112951593806395394971410159895346226588524149717756055823270001179495028160246589466095235475466563168524367234449912565362478715802595378341170976551877491878555347498864021400326628008483543357620103227320347599091615891581930416641436990121992749333235416973047095736975942442793554943307569595390510027294742212254978459100097303594392075816348836907946533597482374169927846359084053982979470061528633777764652619592861082470365074903689181310560629028774744858864299036124208908690205360885625519174395723804346418447212638427377956201045735195095851120572080495936988091613645886242789566413865155610658463775081124821183927334610560212574165430965275820844988014289166805829357915738873005476448148132742909500941961234600101719092150685720040740045884228540294821351646299716056731730173118032462574169341983687303975598987883234007961368692968216029304756662357042466769922022744532510931875299515489089905458914384033258804977240856430343487962256782274173731459128242490119714768146910830198961433931623675274519735426795441235210769780653369740340635645719485025165886500205234177449126183581505092957921566150229974912812339620471497416285433474310224769968614566924336450663094163641307258403896473690974458302132226029606386591320911612292513915453453497493171095664581159002224594968546782842175356058253153556621084116639478942609121855683881107063277944318139276740881311684139096927039952577260593301644331949368582825707148847627119531930192201126756710483645074315312386231204746020265379756330146289403419406523914725014571163928806307934342766608194944553243389460980118895348533647878532774021029946026736472567021935326187789270783913706435507854876615709752912268291264488874446843153516892122296022341599295834193688759903400303749849722654051867144215020766024958298474053504552504299567188660732176393746268678490638876752203948456635477007659327491594716929819985446260874439096000059234483062128549287770147345598690056299350229611659019220559222805793438711907405758895492878787916592505700367991201157985030651167803245243673508416119688807254824807587497962515761437170843111833635415018965422854720972468250399427646641822447211058499593622560874825745674012693450272913626904974886857141013838695483896905930738767692035008319923962621359192065128832994045127693797922625191270816503773779145398252035776937151478347463667389126953591516878425399589158076197541868228778545361644684360552291934339944198083561703566162213126058812968356234747857584445078351145269160967309324254470791542053891694046006458918624496883449833162047682865325367037377984314486881974217357245339696446877143854135908985865001305660566611602250925728487748484835352232425013422877665255857313960058686409124964686299453417956811477043725558380710948043501638305287224636826049600352839292104718602999030235848887232918731776444934440259922601691250734124459401166870446513275212341313585627226380336510521927232918983196229860109514424043289185212266407785064088321895054694864307491109313634774466432891958845954709798870975609341966069978776918068135583195568173442868853914162014126489765723228369753969544653497877474856004178111661968834329058225172665842237912951437029176178773097973558461445129966758408528546388689066852974566007364388997635363412891583987652573942671808493978783308048263033373553646708142689628533715612305603854722149784228003486945260563606662534427754183492541589573304051933763423990460271671756952152402521741797097443194143298873400094275252492601683271027869069146571640416152535950302306995654736057466167967915188779058697710281245049139802936818790870488520582419502450917196552921015703528715705955222480019563815046438342488816581498207206500133781714390985378554650247536781347651593738801632353116946056913398890152910319480939502966164938262482277124527454044624611226259650995286104998937277672182832364996902088343897111221052572324191250237460772552690868911736615508921593700387260541711338024638218351887907095718128352132302051221629210815501235090756347678057967569954272341972169200481984134017303413225075376303443946878829673337671143746856045666867585055052787291463959429000140557398309764342300019693013913878308984147813499952829532448652037414379870424096924396637164789843053161021017923979364319026245989979885090959773074718383693668633059242051772374536000727877999851719351535359470319570118107855503237222089978492187923641084164093650985297407584394577292924677658066613776931305688055829176284140700261671548655859803249399346840371842489750917498293741216933609396973132002968496890724696290719766892468713774601232031868602736773792129370024773311608497026409985156548350165445571091529924044324480129394940615177004160113786474465670920230837418046927451674454411706636371437032531755821813736859334800807472297367022728392784028264534731038018035898645442931485285805780244543254171638610442753357198903619232497993108344820557875653846984525494477360888624850815790790532700939834928716527922867822201966841891483351822666605347789561181961429791909862432497301634264613176597312421130907779939089879971055148463976671011124271277203366402304435821513941672476563749570093326570137266830585155252442323423456724475481034061751028311473365663615014021221305244565878170642450236687905879798858924916282541773111500029329337339485639009228260406201917780383369125611829190442707626000983017220773772074432375357410805564611706316211393059773080054147059960347927272057374057822886671827099361047095663067727419759485396466653678679477732024125055677747231842439607821630902150122699615713270412442636415475741959230210512977289760635247329114939455515189454402122780241457050329483267572046843986576169435110021504710933908061120050267366031589146495190071749798695481178690086780471621346488950863314019102187136393790266527938945030806924228689412289074032197332572810602981930314304268709108535276431770857882521427258111631871947188366255030679552172804057852381638195630281413898907212542805971083075433082287970974920912240835336760938427646295017184053251473856013813415150670316281430809732943340280219971784191800067672840951141705820936834275168429272026737932249963028021122580706420294148559206140109980176343632769117509274025989524503835671752285888887279285360578016700397715815019379437347313497350249787276353058253696134383272948825092492495579229782555356950515490756320552272195790670005508249358691664263192839955857513877970936943461384926629922338332090418072198366223114454280364403497303805860504197139798498504408333590034884599738989845411519727665218798232831802675269481904753236332740927554500078470556004435157335182789423068724472138847426456125718192297701146718735388413337977593931407827738411672831255208597298770609771648170792302540533883269682179937525251896643169023733818562437064308239471118966374333195631626526260496149892882850650863195905226395821050083784495993080147133113219640989115460432882941474566347384477337117315689473011729023601892257688437659887171783789797011654758565907004620701521274027469808630601507716895344165533732529685487773305836824550543920979405834903437433849291096280037024974579130824613950591811105765859166260997181798186072338131625740873252914852234317821620355093190324316227631792825941546941619902539388481525271599757178193783489310558189214352424960058104101515227324938806041920795676651719630779612206987614881270352448305540705513739352569095015192889507698051558743161596238761955088487565478779658072398364175428557052603560031556488007579522439832820694117415952512844799240484027365586344713372440169466307683973356367078123515802752340034119781384349074825828613024479144258180565519601085007601583908037466293582831264044631959330716116610935168192422322352827004893446866499592127394828333117902262396296909068143361014983345459253898151395101813690145710698344857147642918973593436746562502191063033887696085960311419180652566982752609925756738765537785947096456202360647354779808456387660726489982332304453357726972563888495907884580169580037581838044761970527611650966886306330795076260405176024825767266584508998434424516135910328342795439405995895088724758532273477757098963342227389042907332533409527946726048949206493197056349742968337201897155873708707523269322230283019947230363753680431532398472791331073797047402253844606872064359441888814002671221277980884731516627720980308849972196459429110424539760422098473494876611771953905046715248049710102281783739185130284279916631216935536239526196682964581269851307505412999911712600669715855230918938001167727765686375278448791314863165362368023975995745962330531794156655827655944055892756410498557741649323768159853088126279481541223819256448609571978815912601806981852817294926820592357725998822703015640614506021683854677192743531034282028254167308542758369548352418869296415429389110673768745067902315833701484628769315080982870871856367352808182269422062786468314408554507573429258748340464204972803925767537339119698439494033225692439863670882119376938844359776235080902581850529583334988470375360030188124295954821705935464284523876035779402922421875422866218798589400407219005800814712049971958455850274635438362925027054946343305914522222776784289494002958673951194526789206540094723027852570725891984947086008941497422474183745260832922659229035722689072196405783450155195756691164203354631110660946031516297554745936588846846468053435226038557931565430150990713180423946506332327488032192319552990065282556293128045300042398928613014559127920143963424582644146329930068836684328054246058786775520344644911809782285314822763217469919448328645737975906880873963128565548349732323238006747318609655076643682916614664350794075862579761873464852334751176331645878019403607325056847338871328571374289945421806740339305317664590925375171791881673413019552015878366193974630605787472486560745694816810299174219982727265356010877071934582870525342654553023332539442472212025838289924479130826006198515769048327003516883747831489937895358801277315994596136276108073060661171809276370414936566124163131665823163954996831956849309147416080354730332657708664187609463427343444305553545409221883654269404718315620971210957633548259781029987064858212440272722299058413258061458231954005494884480097036436489428973092761726288109080582407200356323497799567633245989092994478075242257480668153090395609541671834252833221526759987758008222347805904732137022384169631547184660982244094765290441572044991936425925110089056568568895321419650387677505720824023159816845057633447469823814957664308702129420673620638142954634431668827288103336550454251025327231737681581402370869876261172670477119314858568873255268374777492648293251492668833391518750434617714996922606214639586955441918465320132497493666570630848350851091894152715883406566330449471947111805990611152505623952543088238806185741263902981268427966567928948862137861210841887481923457496633216823289642852944356740336699899299348913317869618237989966414969031908274917533008161881064826714454936806877762504518409252812804815698160874923907631660857523413982807887977455830794063387941783122962875271771031844455282557805736587436949567822190756798730539281046401162392339047065659490542104174034892750303436947669607523954188526627608759665947851279020060222833070702137723154272539386922999073074460956426285332715931555122071596032095828556454637589995441912136032234363827320244385937302930732164387947829181509828235231747142687917516357990373007726729031459520979902295933172754626156004339126437901125294705099072056447417766216498055185953433365396351682823411591019923436892994448201399677828168129343274830636391376972608239291441976383138510562451795054762784012909364483279240586563528124469356813814619974870215071584277634437395422628599356498087547936346256277130748904476080108008155771828077122005402752999461672628687715253702100847254855380711120560290928497551520704967756840952545467286892276489692551512550509383543338293687393857895295861360478574033163340291328030313102797936100027301123764137536369192967782943641502932434214677811971170904553626496103067767735586917477439688553770888888369377446809976766634485361328026869531254368978886352108369210893619092571077156485593741008373237518544806343027884552490241933976307316976933438799825804855043696108276675989783716838192545444728649769418226452557942692615823324007051036457012290025447501364344316195508902529782993537804707166811691303806841272946797044870545353544842292840595538599981708862642435817541402202538113534270203722521191539213026872295949530227501540576443885249072264201783299206445902855664326891859035266222987078159110990340093143084199579128607574830999816088541378544807058466779202364754535582119286021974130910665966546651116959246726756662156039302256750870823969526627896327457128259368978030125694720828087128827035678625062042261554904057861049298993196730567757918867352907700665572796439668499544648476644849740971246687426913152653220242403626892001827810966537357121722999517502665855005970314760807440841225620305049982119090462143066243085170652861943441089679163392476455739567538968887163520747277153326977589782236098279147095572918878294645559760868282761213110072115690003823287241208258641456724527446020551908494189472779105509400319002824905629187088586614661454488235934400832988761500409400650849280483171260374172062451429138475815080284736943734113996553896905047308420957614792992656303527613386259459210525331831347775677485639309149284378490460669460625201720292138882684334928876287945309299071854110111084853098661016143767112856961864586366415848803468669453373514088227357034755450440306783178920254200726076749514739729392796591719015384359778783936569200162935116349896652699272707909765633887936559372159424310362108414632327412510694914876030762554734895953168312084890104633367202073867570112166337335667309805792901874928990975667102519726260703000732620203058295642425187366127325165747093770344386396611639491539953502551208535717350862893783332372187791214170858915002217268129286746150706485136888359442522254974944222522172634273897696352871691839350025189514978935425417277413887536226289493611310119218418790983588626214467506534286162316187691011127726565101611969261813318859405749130996839660475715793435851918568652376613225776965715544701452769597440235899681629924496136906681834923041920385197331573023860397960952807510292500252739947462846623545777403248986500382337134373452589189956370988778334622026285626541037668175726125409251856337228790662298238745699165836878695542715488144198542601923482210648310020402776278206177421064414852507942461587957701735986957118073557148036664370418729154732437279093280832812103630601011941745138286360795136447684171233857165716320629406418646729542473209103437812736176238918187356460430557303677650807365161424919061415240685427450964053099223026356036132377145237910343170405431361396415086068274478774192487465012768757075080848003726940920849804061300647137041277419193901997914790831494689416165431704898230641358718852472692168455272167796707224951262999792603152327035352802082200901003907861205377297816109001283845012951011446466244003547458173242067439926775914964684171257921283407650035891965949263204535687394452074612970317943778531834489898041778640428795004158039584049480456886249814202413252641723167948977995400183956047027578137561803984046125785734651647835094068629723893602314904744654004922237165420941921849420068759097516130570751442445284940710483141278515531616252654164589697028607994188112183442299824984012846495956841188661716054010468485723245022050587154769661155061366813899294980499659221409583489436952508648454381756098425273785420845396003066125065418508992513825384237010275245492162962161610727050438808660323432779739721715196363041943607974677330730391273677219626422764701604919946867117159917806198159683180841331954056112963304832414257142078669632089144751171443366118282151648284565933949925987280828864006572659502225352796371903059110723556681957326087888753381139129242107775453318623399958226052680050142932787857377364001283461234408364380516947518965122833564489358385037774521020750596439012205614877305623724994691019295626058073784825598167885717072428454913162112493742591086727039771560873952905004029111005160802738828817175833338092308414282517060392749026213545098396555311423785998539859991649559495036041803491607943801699598412216682164981458055930965283137809179459549153452980330862624748913234636856054020607655335605095516246780037708145084925796694710812389691532394092781324943791438041112245167694911240868909317128062197434731740134147609544137987634273455442967134674379268468764745351900596277313587132754139464838198338245642079062951955600043066578023779270172626969078328272872059531394815342537436720965970389636926916807742586982937586539706633895821863775205671230654346893965286733798955225012858874406207165449253543693252313887509130295011636310708406481289318978861396566361866690315772143034546062123023717596298705001902085213720383815694824568822803630798749600691417799606387898957435074806818645910685882032889591138341278971126140606144462299053945076185708553579800898398188860341009688945139646888673263193486081478464068400038334301169281965523523908404217240590265874984403909011098459041895479185169825161941305407422181748941828910886377317657526564030483043869861116003228403385370206424094407898232187587103538982280005608316727384135805713107204589015173415712798887750282184603557078774956169066517893969453507221001432877498259095388200293766049172442785122041747809871608771552217981228621369637136018483688659372672149127141713769178886194663567666321571654289580919952936100964272629504118409972477736243763603942190450262559011753174202324825152196741062214672671044930058918973064219362560348043527001697569322974246430956460178999462344572299015634964487636557318466710633758275885118604712575896058022338211594561678777693064187054903826092885705765369534002956688891686944665194316573978448871232243622241619422496009849181195255491244847886674063835268896197939315153659017749690805260506852100277906508642214976653297384416216018095734147272055130137862959180242375502728683218353389521843698970070232598642456951588787269121144291475183825220742462226956362908525357522529467693835854045964072417538309968265744667517938837589650231205415906632828952308205242739825544671688486965095019293589411993989549215933370047402556859094396185748550243323940495549147862810843760310033256699451421066595886370663885765377516542166486115178954132383073415730650224917895994816327430666088953157157981165477240495115642256928735459455076162259391292319250360711236579611609137528404251614670838604187559077820732969150610612702977822884984169623483321564278153339184599950498348843699771861927407257477763617262248652032146651377100481018143755881549172323945923929259239845127194547808785097875771413192441077120283292212150753867602899958483540258214870469265035273064412701939196557261075882638876144184390286345750570825834320037802159796578669025524152583982362729284446579063505669670084215358354187904059802641056890349168809981444625031938403881300604334172971896767072154590906574369976460179624874405230134485526757579227076488888025057306944821123354102451257882518186847356463784577062352860384602124219215193679826061446052079128638623742880750989340684323109202684005685023293431462514831764181790187215205431238622708725517309588475003500408000519954184236703976630532182394500539805456539089093031406193651657689610529412473175997135924417883823769975649793406121155821527880870590448076283589492560793773293421234747997233232660659236750149463033124914592940957826449394124249146076434056250646659934686282120831636166747804681092363922587279827858007549035166985553138838621899496469860380278912332972287417258619100109479489252955430030266864598098219317227590377962104957560055819428771366144723097033830898344202363023388415788354892935647873566723002315582095453363781619985710538513936515852525614725718425548215932322231326495364757543232958686877648018769985678208343449633342580655823690396603711041234283688944505457404523832860494223021754274808576820120198775802504125739728781147179001700081705174536149102432313059582880492876907494707083771399454716089709221892556881576328209686782464094802344629476019187657193211557413459711054920257290884843182978234835346471159824976255722014588744900501197000207895566314849408454803546595911958619062875062338832991135582810377080829356410928618004680401749835423055961065553793989251151752375456643297286535019346870177745909697358932187223489422791702284162407319702899366603181768462929970590496990021255150874237613572404720992396262616488524340583092301120220549870226941742509004784801048649939619189803993576982621424955411354873227949743665598051833427774488943860339001377126314572514450519176660782397528906597073480961679463251000875497054597928201280275251926067164865617553193569141639036306410496406821994365420114090660590114063648131507239785960247017649050399499514726077277569543896761218894460300054868750057550246626116620484699141553903321348108188962881778870004168931191113103290342456423835749757421738116762965479685465926440765382707461935356635195950581339497081500081075443082767205674049091086339327336078348061085948566700655171669308084354727377511504108166903334348875200509329367831581228553971283893758742739137130229321401042735786778347703123151639552050306264276665809689264958901568351326687759013008794537650524084445919942472102637932406364992470885797265358057055379470138940085393869747250390931941264963295898443693846136693160610611001480706028388658398535138367574274395398800539363628022124114256425500648709742467740843725120209751833751600568595973630153153413718863859041344886025253096375662228014205743649336039888563478498540062963262556754734103796282792179030648974793114740546124888892139618566620443251279848112526186914715734103544670141821514330508362986889095199266303060291963998386083054581101691548594412748908893378703693319162686312235205159041478293873108058066844702755124850220869688196837344861078418433372373617709840525158159181218983580492530361121346603402342887124051869437501190747209291598339757343806633756167990339059587960570435990087949350138220757836112028151953639820005305729043735196710000374208434139930901826496465073058790722644032289302320800837355439498550986145410789021225890383668599319559561813206905188330574266429474776907166063092984368243908912680189765579019062302889350563546608509686949371565240394436753358362027694170689568394840292737315389134846421628480396758476570278936258984244311878383590718837702742861022040121827471574201109874234066881451466353100836041922993383204650715498864208251006291109431151020326271106752161937567541451463863370143480736748550839415485500072760045038322051910005658508438072992203822326279728655107865461833340803329125223907774224597143368140109193741987866253970455599309624596487811459188454309409264145641037935496598339514245133082930379859905905429220544915770728339016679826813360825025684319565846209271100613147606039326844328971512754736482726046892972688354402699078687330967669567247851652667260834037345244536398609978502449726949042799107224949493126685317359492489136305551957988076606917210226984409283863360693681506091159155783497369700938142714883762352031365007070248560442043467582095910143368037121035573977562024373807580099087743326999946775823109359189029045630306077330606628408950391233545479383873194602528053375679024563721784739088356312127861294174657178008038311053557503532770710934651370195045442047584308439943703548596126943150737012716190991695872273202316218189829601279132245497841218868199660943680283292115766903502430563036860735882916617320900717159471572372508659049673673805857341538348049153394361424986874435468776744478606908827803130975929605958355090877755768817982572921999732075765652598782333991927770182725363208999406031254455054886280565742687465416111272177531325046294704329996322399857939706611962388845830366534232012607847499803385005674975459994012007543493873668370214283710099521619796063276830377794400486687660148229847775408804943303717243513425287513143108800546984349500440634836234469483357048024276560888674562938346607734017377718171836996339716477945246857393112640575009633849166456676309213936933199132487566868539830976533740319525302999525241896122190719832181937363471005364405337929116110721598140175929022826959514178771991582128221961656855150333166026435860272239372767126783949257532942709894006405232483609269031126465313695847275263507308039283346334354266916339549552724746336739891394265895171328625930020439852162353194293567316098017995779351111197615069644791430890218700234858726062803278962149394184814168283480185291570148005505754526049825604820197036717271999727312101639208198234938276566974927045399927034546130902009278120432374037882756588524643809237628966938770334603049357321537420872935025480929812910830536953452426845208965902316582671723023188370288591506300733839522964214716248916367287797896653979785929348504711627126090835801649371614685799773800601667220794771598471236687572710521948024810581998627186885471070011327134880563647957195837191363242401775723084010616123767166892312074264065817365223490434951638843074917867395688617099098858092538466229857253082341307703269276528838681488841531064877006427167954621284576742357626881513730266571777208615296969824688385837689286164952284805603017823352669262044312503138922937102742590655006720918243719485804953587591239968371547989794089883146687627656594311743576570813501980968259452321040400469887884130892227038164274450830086664654941166778728488989114638439370372724206988905843211236208855500995683394427228032698636930598742904006596309141569241805950100404907556898894141637642127313550852491405634836813538029590387049832175801442571540306155735481196256314927581112373845289248677569855574834665828884229024062830937551089370403921113443713816778764971955860390629821193946587617338583769396848173629718551812333992716260376164504606623757655853542016810089994139895889127645183865867627043792763933499450839278825697608553934278982323971645363550282141979397454810104092562896411791715230896663931986826063666389247094033602060747826529080141208913908004862006001532791972036109315369356993505028993475621647270069035615567140771429163904304055994838017476757171631877593518306103935922467440215936659809415211975703483868527976472010691890553197414588164466258704569819650571393407713263471745269979971035501696508054452169107290190616904469502304866737122770335249706491653861010284057804041869370648903283860503943777133159126274533224694154562532260930799509321959840468010843559435213415448427207158600173589242533391464520702188721996902886617192086565682539639318430044138905620445586458757622468093801464973509429500870859950391769936120729381496071235539443852882281737724241702883193668943752131691646935378579687254022330904359957429677603632634232010864015079681212553697786317443731415010391830656150951022828481559035669513818285567483393165072689786145120326023320429321617467347972834016807920094761808049571868577818797629183985708247361065648564896386129442074759725090078633787183168587225187977973762734052081956527476536031931496308946528435701004006738471093842098715495205167279430563156824676297092108593085391895976094980085400768610032116900045539655950684167092344089628416282533800395140403017599480976416609723267342403864746040670901492169014106743258734237524677356348296426315670684630354076793096119950986812831867913280948370329778383565273344174248164314974995681020772974848154644015379182813898547406146798877779545330896028408284988768986732123476203075791558193965679596814836304730170450566704744987274443867136382695201956930124416878466020715573815477941407796964360784249662805566676343787110712860055885241041906124584173225041782758417640823797967097774387482348498001631743912963287203466682373115652696618948228524715178168079379223113995217109177928763734089585938187884820024957364992424637019698571040298812797169211386593883096869785080086689812270206570663293497674187099451056569801060472065818971346213056962906898811970438578971371619457684966382520370659368529248869513558149531282066422368939308072080764929168680930303677938963361627179155978093623694039007515001580896683301686570205462033432790593835487147626741222334170135795095112996950838537483648679878511594525831900967724332479301185494172279603785163627484597295600363322645702285574735066907222480653731974330096554012462218173553179890647456026209762985747303582642526417674547185072527093317998183201700283957515401938223995102050466721415654078636145748997276312891520769061155683666105624535872418969525814725280435738750831284376853358798284644911501451651651969449630941454368031100469911502262178509822141319852575005608679048722770404689737861029363519509406944287467400887967186638967574556508358234940170890235014184703188799119826516504227450713622166493445039634542380708415692153586175817272423552653216184929104845011682221683354902637329609478501167850824295599824114437515213720378773283230863044437300241229831521744925051233091159959891558692853202827751264158094098065654465294146559050769125540402306671074320062615181617356618914962276436318900873593780471158841825829480487557030159808538740558582190313056541171142158172919971698212975696815687982724776259282814261393720191311619473660155460964701034968017965417740250948490326143419050044702192719538172993438807504878915002487849157628237412268155208861383382019741095601280063287462895112002976710315808293868544301527265499377259483857314971717579621935717810978410666213176094460588273842883427154239291086596569024531689641000302619485339742887201956264361577279544964292306741879875500289061370219648124345031333305544479871250919116202238121490315362627529742965605536165470789035889597281300594673553316404586577200660657142834732903753097278203465479948142250690929004302536503508416544109795383523172036290099937666194380432645869990196710862262620195213420929259679090178732184707604762792544798538297823176668754057460083521820570007658944700405793850959519676553555061007224105014471066576747703785773679005568998808915144701484484533158989137336239421352513462479293050629593686088347130668733673883260517916888933983113114011797188901197479146495965345921577076743725744500158344072226527398648376197684718366260698353749466062343890414715799721521689972525913095798327353186831326601854616435660679722185555038739644287237299682187526176361333847076691314675735055794465152945485724794304301549330589084544230413528063156011736381473475798085124657238889965215838220257152519511212319976029672935463729387094698837550978572629310405828934862857078959665026079963652420615297812583407357481467995411139203294653335999517576354983812547263584878531037845015824107139414277847095087498687510361860241956657569561882184532442317726326349355751626185870566402665860434000338264770049798951902762368489630632632983340879954158409857578467851524735427109645117811420796793427937429813427087417741997288841585523479634226890215416200151846709962417286740217952180710864156299401873926217151496478428470834651297517105969767892941220029460549655178924812082813723100294488539239633609273035313836829962918468321819762068944685819807113294182166205605189363774044005696344923835954771378086940318894761435719425541584761244644878251078855877685040308181811122595712344193540255322294979847280958209994060545676864097274433234327407639873565850993220202960378725048074635313548952309342756894965484263614454858144347376048580326971916125843234542095991681058270128957291133324171594744830305219887278060641430639114281415205350790917992931097334408362660040586516016702103661840997206551258329678938063834300362686766727165649003010258852165013712176529052876061206584984085952649185163753808039734944610683058701223302804537183916265805740242691901373393273872921380436442767894628906813746853115127345811870543195483018046885103996776348632567708686270949238361418690881780849577302972536580451485744434405040941926716520554843070447229233847615213409673532889040416772314873077153358954414809826835942909236100659032308848204041882350221400084937038708787176267085965570333257235643407551609547679123068000438912912543913032286151917150684172590972830835942597025745865536707188501207803806219075986653529434137185435876184247073438474407563671700409820331377992508219385762173930762305590225950084844906593020022821974971169906754979933589729473456437204435497796707401775045402924840446815532407186531607038307865750425902015981648008269355932087324322656667254945625535878733439868653581484919120461232052818803917765166347584461791582010267928192611975195280841954400185966366155425212484990416340797892057901344229598181748322718313943755407863198781876146458441072797637569716652035708939930231249564859927205490971809046176409755313390153825299747445327389745498534987919280489488782006163264516639547343878432191233985526242094679755938740381498938610251000694455176475917920211821005226333440351409177090009303560571824194890814630555528342956513246579385696418629187995604140573446332977425240232791099934945953356954283349996877061566925510551554228192583114206048835019975661552225389989781270491383645654605893073854576980816119867433912840158997849268732890612847100578100103488658862674678582374177112803673349081605261556949551513351927023820020503349867189247182669804243755798539667905449528233573652347727014326586891633792561647113865212822070317482979399149088905286643466098243719558785491029864158397241922231856174784832097433072847559811983075965581227303371278139025514007616639619793680476115017325890434834655519793859793150871383839448840517927405056240733071092550115227016843903047587096496807437425651250765133524587012975078476676383091830946623293104539989365218023581565731894557674156702684703151803771213469157624309951769564457859601089470567198639068173723045890660061009814836167880914416795133442680770885772213638267998945995708164555919232324178927845766536024685974497500767724997906661958734552552856226858012420579043197297072527971252991511507002738870130987987623336950984267420118305855286149178065889358441568830726734064838279767114158862026347923943174939894518860590911482060346448621451901788368075957531780209210037758847647568717603588523616397120184879607891124634723429675670960008842342433444657295619633588596622392489555508371478270708989734948748317220395356752287833664407751592319261839906328759079223884642420936082696750685860764133243430202256336444147415596843027656897233979116171458366039103005048364228260518383426328945176141286083645080875455176726288770149518481335392425651486636011748108419017564441908923702592587894986240720377422655903076259902797035647071037647528798442747358129398035622122554028007537913877528080733484106193053426700964281375301972045789563198826935248056565230602620904909258191749110237307992441507166609210134648695151446528887786046459673677240975297892324398653193241478278993978354261223350802365230423808671345758033636278379606182453898986818038130653267467248745982991536981658317146812098856768971250095768451817969417824911409483519141654776720192547230393659689057448478061465989351676983334813451506795055761889157988875729247169990253978132732442060030866634114708356001220797808983666380859243066239496080347489874053547736922563414752813521072376846176005154599489505946227065718637250857949771348171106541131652694880837210414961777392939881824887819669591012247698538128457113816659859255478146553255081782550916920928879748750064975725190388752358821354678135524807707447959107903679468653293183350656420316341158630799972562278690306184329259071471197749425685690718747068735797349646708425229230887632001965701035079217625708918757070413814970134649376180391287672200558094706858141435933589827596003057414854855414331601606792291314367086845784345100629089100958646430587930451269501321622773806015881332696048379545573770813807087234205954076127482127714764887763701357325774388934065751702181351848857801490790588922215544707600898560696616026517175784907160397908314712754628999633343434439937860891627063291695375287388092460944173051920798468812038919752754850458950828835998883029183585036667284056852909570819700155224115835178653035080836450404743903085255328757159560085048405193572206080267480140218905018484846972252241873887023580443762508927777320737498758835830605598227350752968912485202614954404111117628197938122834082920624470573063743842505676202287105688771447956059177573657280177354605923026413014863379796140629404324404576038446946086438522807136113527860655355160738435802564367814746616511147680884760552582996352783388451084011526683068019405551392197168096105206693421411778941354490919719173398571004971043005049450341204899103093751224340156921182361756583309422008386603330999905809471834487949644676383533235636499330922389121461635927115978736847766682131297171227384336072779951499995641389598286603554261475344159722556360182050601462900707722433376590283383443099488434110439053394387078953041731210431488512792342785339370943752953007009382087961161061433489457282672482595191771923142521703075333572637862494497635923060304961516196655740374876867601357014408721739065323021948070930097870528335979158972048433505802231821289252590797709691040553974540423200092361719872045622136926265110367502429866129289809351983711815777809335172438131138995193946040892055042409994346845760522576407522626814205939090365031694022721956481088681818312128513102178183926499661324431633375123906888834908450772632295929441166262581208748883057236826413214306661023884848950925628559860473357542119849404969975580564750570104859579580844511877107672251278433096638429552011287398877165090844230724732130633721192990400119808943378882036128630683744146510632767703761864100581200473276401976488102435552043971444572007960239238112421396379465337802718162473954895560076205467996780175731801497725360142695993227386197642025246071282920709151963140159407121330755874813467911894442745406191489116646315709156076166360238730286592804209686138904006843484555808891528991081721128922162439733003049334668446786413833026914172033167238513458620293204531128617495897325749064731168736982419944937967393822554042850468043486608334201447138652162027984181586687334766734080156666379412891880868266238545085270238019547377109864545916095071753829369632032923912248315155198330114792877203344074018485072153390975330708011251369963131488108951775664948489206008650356394248332290363101695446266954130328576156021981203510848225422387546412493946484797888936278809183887123972272173468409603790284417636206561985637392898261440501441526175588745075027960715588952812716045485207413527555696980763156911910977181625649483703048820747935013615224824702131295743987036135671349673283863469682732140250670639339562842274617675552144994628073575692220608855473396883262911734182513710472907412027460051645939224623518070584070500925430533000227154330010118496527456555345825597060451796874600867853076250257158913667778069380399429706120295090811458629542640960052217644715076396753231485632207361573080249364700066776225564859157848306457822089962803794747101865566017814593828614082757211820674835194762165689099415387709587141587793487809240398032039633802418195317068607830918111031362332666127645347460484198068436600550483395592774797426479983473023171696665222669912927376314730606825130838896396793421319622284312576158401191219129709612994874476196519129073948166055080810690479789969962648155501361913699992544196922759087399908543987933538973741386431564277088733651588073208929052129668914412272597808008874909202513076404553388439128713912342897864494484481515889518049582742747035131120508546541323893308294912151576472019894832652446258393449292217762115405465025869699825345474814278742970835533918913187883637780672483080855850025318818488802471752179399869405009864778350407739552327308258258612351885586510418198081424107531048515354431804000243651968216124763924771904212067399759914405519497309690690877170284257576322494962415202019844069890331080250966179267771610746737777832880456734180351449313580459561871540232311764608621023919424349120698289822618779415843533226691745890085186104586412639368585001915129691089753810108784893410938690579645079950058538135366868586985374965235316252681549822578086965272296103418880867968505414218886540558730622960596563177036383798860249692728651030650547020956443913494800766706284083852099643161381830647552102954469099611851529763113203461015380289444056341512211983828771836559540161505468233321778461455279645648653465332646376955768323810543956702960097475044862525176992439250321911355874672891797941680655872504026256653853030535285769444305642963996297597957519984286102347710171880600269117898869856685156099813423438141039992998440195155002403153488895477013507009760188795857768303056990546831909368845346324032781469534452092306497391148509546148060381580006629837369929608325501428779542360642817035552203104704331076155545047830751406882591735675146975381732660807803962833373325887824540073579133251551934942270055001563296962010876567095416521790140519038036600818778056495599716679034301604717225746705862638048199406761470913252780053708829244648893673922536160516058278985864187156987895157590562606667946992562810741441686395618701295761280130733404008027208336383539220695517088757460843317896643635696635916634667805613200172175720536706265196453507772280711139063083407448318046555704992766818467638968025789514079122275298739750966968643349248309223198171169633700413201191872639267187163395559660240810001593351613259698432421291903444703404378380031935329520282085765695915880784874199040729875747095531118238587774974488598448256630673908836244923828329888610445081881580274311191959832744754507863590885266404591021628444418631836694556876384760185978759784884726939819997944341697901238274811821035118080613022323059782641276102888555941138439480137329518139988015339573260025416033647590671060401498661517854417867047610630311523226672816493257553615059301282676774825816211530918791119022350970374213106419604396573914793334998838516814230485481516985537333967315639054437463926153355948945187291148978811154811815007039006166964311314170286254409646537325357413600636810288404743099279954223535646358771785382445255646565417818935668736698709730951619843612382493654253574254835366507002217188780312168629488690863942394553680168024467851054620001045788830176225142295935417002501113571864128531824205829638110574314813474712614636664084953255846946392202264349270223192531346720351586847775935461975803857235045822459271232183621317004715888490730364870425982649035212164944790499322906404173311054424812230497225338603637066093085439791935359764457586445806179624208380473483818517184047771446068133783061130561454058455263719131356767890259856791466376863188146402771662725945941038601447692278961866832402000242909961995990379463345726557290099070068235540581452899107630524382609078260370688780984532988459928588909986301959150914156778458865884939219343210781324679325721657242891519941801009147897301888459513442336270298980462749291371330848116005312447368597720201796360663356394332834852959311635132998668959955012960396530024436932861544144986038937999787531744110169172886434560321414073100948193470490242597705656329174153307217906026343427462566347614305526031521528012108331443912884444887352570223599386863344316870916684447479445178767641679078043772601782856508500047264427861284919140987592660450381128422874652941281211057580570843239013811546546210703745063933797272972675691650686412696651563520727345694475685048650617939096748987347037595227457536517870565199415515923810359413234164218589929231631533719953862293693681798980742523394558345842805271101023786316839110414513992900908586987479079224499144149963492241789436968596260567179686881793703142969888575074561899714241624274464765562997177681223615065273472978801518761589986353078566063916241699126380589710257721284480316435016991580384336104198507669546807985988553076800598589067104820845396952282050145216910434544102082004554441752844891298254928492488222223685680869567860229657120475576914190142554224617404064898024536494442278722386977879933835924157078260472029501800670304742116611577900034529777085642253668163534947025558664179325667785208849958868869003890157318786426255354638293540467529431519886216423917637312131676976804311884322365358688552239528158134781138266593388270796863487311083719718914552849241349301072269381676434259101137653329293659567162663201683449632582313142176540769602527849061237794401521313423755012330120383387789222377203110062571201073816883605448647866521788040045229148360309833260667691506253150600274464468762774701620022052460113263424496623438324212928917815019221324366559439073692165872053303241335773626465325876413471851384308079790710784009829352173130010946238794760719189093555458345550029728524372567229096686912576428934884631316978058733599151053325747645445678914785161080176783443299307593717986626415776537009362269858634465812503355967837973720486656841485914883915031539640479297762282305819373437326512937382986852020319915561676311962125355233148791600393750665537496690124009749241914072817805665739852179396960592742245374572267137124741025110585003940954076065099156835948662762724021304111791698770637256600465783168009727200583598202002726741703079464939386881975834998667734066866901732973783324121533722186760853927271470284930470513347921179326447700935541268614851875120161656455188834006863061880826799113908084032591315669389406806843992579576796943044295739429952072932575421380911429877450825795832569710925485907983015814719045783002286717179065565438621835219570696656219265965602224509997156123314233297594506252647922590799349374648256874377185859155805751138402526083572020994030950623643448629588828138980611136399258563034384620450413122995318639662104224236158627980745078778283258884597649385514828874751926387479034609787051121441497029347455020840326210170859844771533349753823562020834092663933005653725721923750149171150121783448423992545414024451817831757903345683185889265617615096797251215873637631439446697759016214134042504077551700147339385786872445411796902177930849810988048181300945933921811650458884632597033046886406316941501197247722942335966435434811474054026972463987453638672921482256766896482473672944203972181712376565889947881901599800388834353151914647907980724411079611866936910060137521742054174787945210847220867700091606526591057949008610044664789375364549141733520601618082972150557448883758360420030280300321222832996420176566163248269298371887748844403626863154483665533214801213540055268616749010121209522621002456313489583920533054169927036856193171066289381423147891794934916846110203987245591332085834024261889223168900263618130066612673077083607393514076614877826543014564439643617973109874049538913225896889645584118520355885042749135310183702629496824783549973139548761381734202760584843161103814829793862110073124823469239624886685239111422966463771424621984964433936680930038594885635979398756073441455959660828975251913214529089600927513695812531250544523132597316487176014519274540505118013328246610772003431624959017425931995397595234006053710618061553598853121692109172912184034788444829022905810531966736195650108805461773310852333554916281315886150237643114421418315869564878143916084376672589436106198315705403768665005743349461610884100933398486579238278564192286892769944589673714845093884592379635495279582587541646310473744688864456026766015672519144695989116129089363020082293550967627741096623086560546063785951561601417073244369627210307019017105401426224334586342912300339572325050105141027295123986163895968135071320596585764250293200066984701029230294142386615169628113756280028807279415431316262194705216348490694797856864681024071489928381979240148126557732130245490286313421152436994187928633433696477401128278427218429237354326603198333489582014901227822747349625100412406265658539272422999535351402053945297493048961586061973226297831875219471615282190475750719974589164328875652090256384231442450475190713104223213716008109346634076502323186797325399809700318783647549919862375573052655641939241135980496831543165029358368800452168525572281694731226248724106608132467120950195608884163821912601248007049078265627587838812799020512816707696441293751052587501779298463576884951779700475530967822856680015800244230626713055025247745502708827485804892510164401573392897562740673815206712716297412861244035962590346076105151442922194219602989398641568331719365529065729526139140375437436792730065515711144316891212967641494676424873616853675212960867749385076465772476585387030780705104311929826736584822613062458223664189868952523294148955584668062415763196288444981133285405234455594369196139935316845710311658064098206355402735414226642329678125636727462984683038962189322557745601690472156374830791023367670885708259244915890226803812428593982715244514269735834028278565735486504942211754824893305288080154404106890102932600373960904237198786258970029493390420602062096573832851669583209236531972267749880804542541541365054706664418584324314775805552546541139131597402605944406078238687712927516743370114881322972506887674816673366369083553448225410983256732165594961953870473473786764637610815511441043738059657478708483298272001435668279355154073977668874568767817315019813070986580291073617762998241021183672793101289630982220238028788431022475505398086036397597999757951016621348704540485951981711647868185505129655286693889504653867279544465520200992876460218510751966959446626738329358525109715214226621231926061115856335031052310222731323824728705209710594289180542281581660321062591804573005985317899601864752882734180796170469047538127422655077616830823269730727819348224638767971758048651376324357857629061165666002484176982792709965515144836267649547522456892126280125083597963063682454516722394942271001735719476655292165454104652374422683656289937272566051292152409832906152832275871920201766301154156997389524670735762080337312326766153715388571154955460783738187516645716695333479132690204763804231932120897079125572468994144605692939981231138275897994479046727483936679871193364049231075894611949691368527412822044336541457307803797877697718801208466377998767693901375555114458175159715759626633443122634261922167072300873210738703855532919896030716252320507045980809301111438600966923354784692453591031529491402582106919815015419354093708090638543721892006506185285760730024771612106917590483820036887431275064993084217481643473796251030173851083840951426356016044524958165057341922116306765490185375543051050915614924628687676240504932307832662090198807278154207810400528868947667287145180368022353744247970706101129413560429015564188916186539328988452917478562448200542449867827158747083379385342317667411249293977444782045725845925203827626929134917098196151375083302987928894846197894879149494762517613543695480345659897583182290249570988138103825328511858520534981607916250175078669648462891671700839002210971911707190305192492900959325969010759101806983805552687050479260473747250520745277681586137806775859942638367777012204227414460102293551181176091568030910237929642406325573806013702532302818522598838274203429910758487035089710359988757806372016088920865263279735975140521044672956204451613385903762334647429395438589092389004697599338482521490924684369658119541722575032306528918947008680754690260555729232088729346001872116678831028978988276825582954512915867171452317817835548358286812773694534699838866731669902064786581130537033081176733069116819824826171737544142298116833469607675121046205819837809025815061522644791830679920571015350837205208563352460618516010450651341589441384046770571304036192014753627779289319253831301361674866635849120558662187288446567006237437654196294252252376552385829650277037528113803008728987032160087023660900980189381769988023266767342921995571155560509554951964959182494902429290159237321526543257414975173745926055435757846059379661223097195834654755182380531673176870959516928574367496433367082866902192816366811343969681140868335592829497809932706509086058507097531405939734217995753278737303211211905593620365477778428254343550081666106478663268442703899037890787337763822646659096920100341634707973347409901720129032078487077085455714584318099546782618503809780743955893765816287323830502619091817424511268545466735507635622657768540606626106355070779145131388754190551579675010781326393699343514079288555145275780269632928143410458559735214875621065412951018310521882563659183807464855077635928065558778791595792682426568574850392977931870178981491826083357173678569442122582302757185848681002220493886225879975577061131695723846991297456743975955040689987330701607676460435351647871079154372925613654504257195012661629840245209658469428238702913654297002918167194253665579297759839507527153323600264732584410123793379897299742961868935295338808041926302282761898214290371958724675576135395310560856231434830260711896702553801072644054631159532555739787186927883390489316951105801674683642713042020718583072140256734902546240027396268418062185941633288641466406989214136868197848017884049118268312558911340411395882596926998039382018608406431717610649327693414959106586102701004108472703165400840286425858684523952812891445334263334275310470387114502525033379792499087913508238470277714142278507874185043442119569900646265649435261557035982542375217469829055142909087667785025524808993999046811745272541406760790009633462751049248430846605242449722807215941593112792246626936115619151158668789224769427333750718507893738333526880711937359360491627242988402314168583703819600598131121664514018126406829400399461987128650933412524802824108469593249448601511956562912674265948718456112426921068217528916119124124039621060642540622726600428562232691911983888012214863271207441794316738836977336501096106400780141520040047557487424069589386108034605166226224440215226881890040206013115485031302969775039071702239172492701766404851113090882983442390974899369596946470166398720517701022156995898122477620363170376281205321846640305401590059623211809754298200956700195139818529951959751277934008729541433137029631426072316001689044069129925382427541577571569386912755816950851265041409680235037374665641850127312497261604441815655013952906828552338121936261713138683953798107564067125188881887113744922274372743002560426670714800980254156591297024168402065888348225178168799498612509842482558978618743854778443470113229807206394165229292389030650573167047800878212420715381548087115884190492714991437946768815153640026722786644650775303458275271760279443053141866197566046434238452584434283119068937158516138076638799084922438787006946242042873146684424970834928871737708913919248763239546671705775051086305922161845641687861389887346316958427252719162529786026897227965373602229901565070340404454189545646706608259109874434008413465521768194415573191003327562367174816491963019002439628031376009443002815025362347969343846143581332610913810728115246153849634226798679727115540038477608321521424815010976645137824240909442496726302644752138779265973115829093557442871632876974406539178586428881428880780890090688470930980811809472915564289061235799733844036611826603449038114668209725029556162419014573051190640693134307252571154293537392636971271524305729065673628539449593025266875840113395338150338615019740439427040403431792489079688289427731887656966556611330769690225498797575764704163933653456630338484074134717820416405778287265522548531884800498212738929903065903866932776939735995030792424352864554464920434384281496240830650067824118907602315190814947563180337514282815950472512846849792704322850514027974121796527618974171877794450660408894794979301416317109913509900895657116825966245895786532669997164393463871495069685741533655434370338956395479414645165331534281997037422630358830532995923675727428551965224705479900274306220954331268297801746042675155403961049083954618539119765229330699042832776573195198980881490003946458157486869714645516931092609644147963436569976796771211014411467430243233389776704351512847560799975954594382713348295566016719836517952158457110486891572482033007430376875605064422172084158921639871762397332233571191141894468778782512550361343810493184705746638393823093031341382462585658136948569519009305493204051831401921416367106376400220967013023671794832592936841952657327648939229597768211725813796038498893367226990327102371501025941913684997194377459821675288122742393751621301166650560382636953186863067975568931160862180145148558266858784489432189052223734845286975814539007962322450314751085222251908832924567740930171005160984341808726123331695893538727692754032977858214735292307868317771786108965721404112534081394175115039764587385907190286222286443610484151464182816236216010962466088713110772834326114832192741088000720443279855495267491395746410616856557044666401468470350965610678803446220579364409559292663150399548901743243553030764408956207193286016050633307269907633524519007960528783703689428720380218826851509139018728107639315313261118441104620420509050160021363082879443934119992017716283452809257334593926880888169946228061723131922807446605153152123588250718979156584720744821314740897194011251152755842712720113355552713261659010591219396502813737357420278092837164968174412935875117596529646514054181297644183592921811151667245439405854122033212193723212945978542368757303369829967870084884670289367194458301231258482662386285913222264011916491224701055343640344863432747205543500303137643555831633942220997389041939845761608805391366008348239512035706904374912993026639880489906921845494365655371218444444301303764839383749704306395339121191315393719539141590838141968111630977340605792697371653661463709299610187695750170010895436801458777085836482270099996103851863331292790987101109712579612751898619390421539529677734286868571880684375011771350313980538289357521276661300089131829741202492330648410157969607650371357736014855460170158012256413487372857223322582423367075834055024202890487839309275956240033808948665923267933872742633921551027492472441520325517366674214857140469971408342671105453112736416286809756292033049857785156273414936703753048551638776373985843339736980327928438402406929428314826305618952073669905605126975225487736775087015911552252739073371091105118901139127038212603909194548059774311462769917526011362134427362827752402260516536405042791553394801807477044852685684704165009376728934631741555944859046355332999478286079648926187041603790912758019526577460157277958949351974540179960090833405332223848132265275014702393610759077746005245234682699831759972852769483048757276131512227004279315129479363702650046548270347046659746880509843270600765648337686755030924288418003911083522916925494516347364458328200171358065121120054475379897643482664178470139669380558599828807626395087506386808137798129570071237941524637023069375326279916687734684629683346505203651551093721713160556921971022422160341941373598750985653997049615069043608974356645811630977007787468784427235802706056573159431361000834403081703827028402768615324953032800968874853244360525193012678779691637173687382361963697069244874582610273729399602864863720187671395719029918649685338341950658473314207524884431441601083936612308438237438284852512519968274144735989478867641365083898443053434797951173235478269759847485225732576256614129889474090982335302204962426198762190717292958906190584072015956287752419928436519406558350981372678611175409885465623916297211858602563774297467539321835921396950038522214375981660686546877609594975428329950899357118325793989798188386909324169926677536350635117212695330527333241359766053325976151781633620925302169622679186010105294024797984334561238607946733780740781164636594108128176353762275957130287992157573298159261508502279307805302871786200683019077253594414810969124306048775014744247628886779601117558637869170875621279567756030702774981192603803299990089485343500498029495700028056455110439804626965071709816164613063762600503719718287788380915674222095153621186837898061184699103299185899838970647789767133971264830969093248468536045800047358606547556967813479202116207632863786239077117308008812726976010187776138005666694167051913867857155139699152800118596167109723810544375972664507450199561552410113217299253348588781533984024364787506961806058727898462084264629704991585275856084618569817330721438805832772765447170519616280622147951357912903107867331234273005245066975843818025847689920529756708176382868400466338630957007584421195174937672030688491214050930120129333548073490131826026626265206657890440740860544638413128865842524027563746079890433487645601209859044759593621525325022317112519593063422336574146654191797240816204147468041431553752732563572977777325325945232945768064808539140459512870573102796717564260429376949436251078751850548494266741883885179595868574653562170584878588105955060676833657323387282854240938992697533800473665300802656551404556529943970038223398563101183603346820233477024101557321430236618168229301671262900752955017539841699448488075523160981246458116626171968578188110474823016909726784714921837423990786921838678393752532313735171544619660504175506314786481078036148401272248117418710895004226118868888865456428087395429308337785216874400459019886635725075001358188170338827480089644297864454575263351686168459286555460318392202134139956118165116175845557197993858566365482273074831845296987128216203298364571297737303432709376033031490588179010844888396825346474529165144375784420359284209285843801525922355840859513177382604142669021790786235701340766302702717977595440911021507461991429148289169698716142499619640042590978967431894635660269974939001818131247863121150168254473140413431516193576721134832418335541837835478861357931089983809403421074527554840614109311491336968632547569530009319858152244887135600614299962589186438241339626485848928025894441211966289746740456994238773849588717372608872086411951316297356227556270736430429900344313846956216543150247572852324819173533292337222395534848727120962275502679450299871819890069612336180871211428619887310484414936868855000608883525913838783609297118696365021222178184618002176296998501236902044533150638143362606208215760863944776618220161452674480964539177011903071197543214854747731916304814335854733372059630377056515208233956916911063535707098792314341845349617900360455225590459799870096483046373134177939019603650341111381838746701145041230752710631101778274559614227591325324126724895167911181476277375382601093730782003395025656794164295704330889321051419880393418339971733388364108988411014382669676333622857076904757155116947463782122277941874429284923474940147628385658199466130390006935638392891844081167581393325485397895990055972413001537426057063947298087993676988569300548436309653727563065251742299447450319315223116654960932723355034982638223112805450390802788799206669009938114713027849392148234591460463774728161989637587483668919477109827352799643778021917409193206841709115033407829525421680377764103398889007850912789075177303843316058929748541016330852533456764891713305466855325940730946124210094458185588695473442684616085305583943441137986349231666969049166964433042032065319028681473742672978696697673081924586553144190973345284468381230534251410028251683206577436279093894127321005249310968577198485726510338263672974043068289536958272880915658837335586487504619405340675891614070211082259245989929135647703651636108700962064966741340838078721305386318722676019978211958917687806151006014952996978590848046071801321988072179992451505929641417587145532266288539539641741327864389852764520076478406968827359327049409275037321844172519055201998421201470893778968650946026455885036010755513661200442983846891738349507963584316607685745202390377521501642268196429696191443464090397151060017705243911342646434049167674188073355337369344556754218104206079741490850623932094754165358182605548793748773291579188945219390706971402900221451442399694755447648888832140660317988537962725948503148033361684171366773048589286155013025484127988533460556162959410142710933195504073728971489540414416861731729943153480621819626422620217561346818000835833425735252407452915327538508026424890363782751631735757907817947667836727481238830502096963427063739206557684361530774480330799781913575014963428850254945900111772617674013189891968724384021672499016397072614255463290846864685136696425668208382972067645205816198190892275734121190884782980887893223861516755721572137762619923029946499307052849171583528398383021062442687603084481078911676263942227989682902813673593128666478880494976727791326143298935679378830710066211380833227081640183996756152891859172277852640583335818665415100294687335538352777732926999005218377589605039010781200328677624096723265780747875895065520867666796419057447490755135567289038592144107645193739047103141948793544804737597786143378560598998768688203057648084552070070260042905229698716562770722922260874649473378367922453551442599456341158909010055647752463363891806802534590813273324485577406555819584471436586416663845537507271357605754877610438227783548500266313224864286239215499458905616264549906588041336661577562910432085900699044137470243330273930138614819306997876000561764247569808517731759435356539093244641007770173446560085755312420929920052111130085719886574798796632530308299149520224566195014254913765280751279890281719855415114257164992279764369762441743877563097931578185826733930756888363327420934593735323718072298377939736718307641106874268195789405614434919849365597958200825891060279250477573451091986581505545042974830283131973677457210680837938872316184868214802667831220381385572288681849730053715795004786660046737332052782656587247937559762759980743654851952750132044079395167412347080295245322239874985563568116438721051112560740553401922197163723313211757374208508590465584672313616134462756624807600801787243254755448955790563631677257674285804710396109577139051744593749304931246666962219803655330050997687687406919382491185875512803187400088943232438476111672504616000534637194301722293625515260390501367592831562687443517864608916704710021849516622714483210248636424448762970892648131822207230435616545298932889335052650272435348936337534849159174613166715998087070764211772566875522684698317857814320998101703807661021425287614781100583354921424690460597238075482002823851570940350461039706158229504781117514625146915783683313518270853529699412589727396915075270491566837074682651922831314138923132567915190316209759195224658794761272337372315556525411664034326415675619928177446157616301836420384131291354340004950989261540004542746302557426851132330475170985338735481463908288511681788675112962089983672315953813214924099319799134269295114952531991249283263428165096682796286048741307162653882346811863824739438496203329023217464866380301520377855246482323690494014059632358794084190172561459084884586074749409244442147136880568874943365302584225332101269751849404657574106422620575041712625102561451712094274183772349231413306166857390299622413329884851116779277512035994509091536808145139194928920487765423942798551096220070712901452681550592117672723957742436147517778576433364178939591413017348439831382560457722486663586440053459887348717317798390366035571177812248586540691292907592575147831239041879399056811950784065049585539049245667789752144870359566645010528733738501531729821735684403063895368187244336989152985297191279494167381747180706662079681328456111281792367485782913248611069461149147391308412503734098662842862381175712834177692172068641035816059456325928816779429999913713291613464756901168875269641987444116875281433079535274079966064734615175545072173369563129545983113425071894553343867440497723126088483793170553486515056428757557876353710361161943296232655562426644480549053873608059919246123494696154438724556662505264757079938301637093366138628105705915492098978152577096650818228278039816888531296598304885409061982147321307195291123819014742785353173228121926062248245048095110817108376461956184052023908679801553164800908449119240163283843759589434053173345728631034692120720641029930438063788441092945619565845005813653700707985701023664238928271194248794698397087591215093077037431609533698331641015978464921739971624696068882311403463101809596797819710289136606208385658277020779259330712804693531186193023886173589811098378415786335146834285959509364594746261260713978296778494398375880026602169305155272069526453110626741092858323433030309184566263087369997439382033079288671193104738186927210398544165245146562417174230461809387137764099802852299336148545940135337322922412543578374840513308061208223641268401328566199215507666559618661014691449804978906558938807709509934879087184281351486993967125659533366764988497137156203248961924798051411070235878445302109005897286599063704970766653633252673174076227982383878765730389846803469400859980833532441072359695196550526517960987491717664070006206305871497758857997021394043625395128648568699565760052558505053153883142673117515371503290131302233424959846795191425884378093332190360727298879945235073680163482559232730211684666149243838715225253213509586856803472710747786292453999637061929843781393063939009324638630911350826377623073257171844075140025533536469945281119938411026555268664415981927709307862508123084736861188112691514577911217894502185912603604004817235628466686641472451782141434953390938772602030086579795056760700296711798378296430834053454093091243303440616031485961473338245586792002554887091296228103526196195255211833112368268607157203108852178844777354214937487894473656516205747378046337456325662199127842228235890474031305984228463292294925079286604060688602692969087448112440098144374312380493515624096035942822090283606609018538903212172426500044231878528294639751495202928977760595741043549603105245090562572844245190857767405586507765452292747606107449251986579068563950982843423158520231241995969718191038953990924830269566203724666629990475158645189165343003551232808955830376826091273236132629111595836326609168597262778525228950179977209058083350710210103353581673709065594634178742807427698881177189128228650353212917854100230705802091477791103868062993110115971072205514601421445804724921743065090927280144800279657501601935982639146346077090093308559928325462614491153593840556625084585586078944266829582469220531111116669907391049861826025562919330594150015183010155560389788034045640411442191237096630917235798332777653877510437568957014763406046196075394687778747348316369094909159733562691751027456267288665729313974047059404387302165801638402215827068439699253120197390094847461092797541670359694525441680606743037462857018327320372424215180468822419060942611181802642790215305635903203395822302622453725131233382412909161329268487791639909707020234684065598404655146618594389478682644177855205351549243248651028326810125482501680035453622864318691856076498343112585715445218413811675983875737549033753851746920882279145675113442381911451722521491551527062307058161647558723259755572543139233787938513140527584376483639987126040802922736412186283663643082044974328216652460004951059405526259586780769084493561809365265227407442937514128997603876478083998774231595037595902388583591493922817266458862298628786331267762204989123455449070223024094008883165436549845081402688524887760134225463370625035148788579049658960086368859367479084515423176236513668443607124575370418870296348253511215785835096309100980624335428021191768988856122244292435499187529672575635899026898994618561178849494657028031660729399698842064445780651679655844582537105243907603735906930281267915668696859443262022604844896302012544426661335466941689313434286811426244681906602215256396173785790222986277774650058502896657057650608625137244939138355829222427493136265698443289657423178908697548524644599372614427701122272338828470619718545483641132129326394797786880719435851415600913886908633678002233314844241619694467560346206624783223161897765371841420606509041986111244871324119754756854101766617410535647812262824151203223870089996809861371482344988739190560876209261982078295997844112552754560833763735100143082497162200798491339342204351507100282620878762366395042659275370075888403054506167501367775203582093151029200383086092011385642383528690769973341976003146214412584436001649986172607210995713198985805344715184572389706054839028073566572623479311046775270189352775450354120240195247406270714499831989202900518129726006281251867479324433997824956195191717010377197757142901263156114364945445612385497366221305757014748931472590466413151822303457914822806477079582034900537323108019198245193696673488799909141269092361180820141505958680331066506817447007297141581389809133033441314333263695954997424117253153080954438793784540445780857154330295008165663409978162303026978873477529141056660725225010831834829451264299473384605937207261426421898770615140497222750590239917124781726249581813464415841131415110724419967680183101428455196474539720887855200726945615470121966825333557757857257959890513079055878381273350607192303166138932926261445475923999971547837112509358401481115946448767253230228079509891785858614849041138231130005499999226509365661721183377572540189840989357088093836449132582842439920858789632270054999791670773589299837378248128368379008567502171591905612863203172036699870154469609185189280521449068088624486524543172410605196183964881964236551994014953403721969754814414382754508743167384228026863668928820561967593164609049231835208066753182320412752955206127887825317062091160667571585551393797061440533064756312145657875975027181654823927059466859900993797548983772088739404231746273791012594096628665260111462893139331800013973114520646315429676624828452941995071803310444780541851637463936588880274804360517994627240544379191221881108842070043307350276372258293647059621151541884205793165191409216394153921633743620777526869626987396585715493068366840911225759235067170231292157787322981443350477734555714239999037690029500240385329645948768701906011938005366226917664951418548928365956939329176634226953667264582209317792518493962991911631537305768445704705377182182748939510632908609763114371861842175093502019336874243162711374935836840828252578847827616897739672003477003404200524729191099187893191296541451291900842903572471453229550265478429179413415784403454745087782770032629353421204392291631822543727793055413921470111632252748919957749821940261163903792418333668937494871803908786630321811458962267188115000202290582655745403135183910863219588944086661301908718076235973783423085549603692418075558007193762835056233602094409091309318648326760583874562461455642767991134131908166614474825816644240956508590400471352076205201867791888111101952760299110458814888219091868942213466924718428374385071821478065398638557275268685532898336782257150345251518168760108855601915699811319221843089540085080556446817305021083446377137257359390544023767816802636073091058375298756554763970143126120658286310739631755413581774264280935637695983673407526090758820181162923996508865609074792415748497474748546345783176957506156150215359475955927351237855995769038190436634072031781613699760138566958772674357985742909448689546611197615868283751574798812133330148824982534627547956563140950727275198008081735000754865747094579953910683385206640552689793327922256761635909267600031351460773345957820285756125357997481222391976501664713933198694575832794250634349484186897346998253106402866259273848765827556667072417509751179530930947266452631577358786769473338256744968610115545699605780103965781656805838496316338294670612191484829267728264843146239433094000375091204105241859160782665733421983005808209997518716647809537909330199436208965524435386316495473324988668695154073021271445852050899955177522957048256850867451832704773859941969345775418677645297844784081393849765576370860062464956937349403306723100630993363877435889659343188235985169262651766740593955228785250345206858998901296763637127615720399626653455773949079618054342469080970589342653177794416908436189781956866802534004016340151471072908101809819957131259947341023401131255647810282944912734824594541771749127153429070544033074196325724127955850375425372307967402324498062931100166869729187847607623898428536295404196635455157911905156683998070634990718783579502696196029985054005368664405465140784618518189097390768016934472949104582821173667611175270952948922735733036141700503122549394957373061651514732719153104791229779343565538090163201837516192037402198314712404838701062088634224090005645895482315284662773201361374859877123644988804089451106762627649522778591848634758607785352128810840074836653336495004217924652380733460366169393598950274008234276010883951546310030159307716022358974095159636616368769879043827880591034012346609962263339486963612112352683581508965217736285875955850770905094781447279458380415775311658067303356072265891278001641100698957587880781301584616162740303892566553378267530113130202796070260257462007638059094994447728537010614352589629307742396959906192943144999942430125952694408885017829620169878274939299962118964139823719638608422947994513722025821227729923519510192160059826361833803805943050097016496042687642375324286090832805118682666619050054055916684950330312095209777782711754093228560211164420032241137877052193792888185868976589774024212327036047042062705232426047487323188330587617191394629539337796873691200373606794356705670005910068602403766409532754661336828059181675886088892969322158209705826123157739709493005079968401474556832958377189553314510152775623971371775016172111893695395623595935377624108103974578925011909843348829298203632507833852537588896477653124517592183321585334473711378081960877346230539895763295492446636793351483246979484310570483263279435716522626730129833180640826248020787403539203688209345423695690793585406425448981362243938052304979432877225691877835960684927195303108824630189270589617405222260069915396830585355177020681402632528343030442036859017766177491657254823811038389130876872712502668379284978086420205867692353839858127588263185278637427115583402164445903181725074828556113210035981101841940244135701712117386643910340392908061175394908787909696943749841385398087374540177572940622983786371500120721090967809450127183312389486382143297818929259876764525870453579336167075268135552655668084317516622791410912388686242823467442901341022984535883464824721719282420006588740641749523988928108659958986807914726922452687671176059462624796955847709254046114888629581061749200932020138743321915612985083473830198173445346456121847937670100724088221085011393388885108816377506822480536504585774215758536787000260690051816780941165320424347000203435628603447210818047101910902975483880308737480072796022060468875290695512866216522125407920315049368351760597916028090039023557039624347625167072972764622993594152136265731560429545855510604335059512489987847107284857312458027722889186397806267653191580189443902111777864789512502153740069102242616858373691535071268754829268585185553800907274841826842636940106726758552267252726175555757859297685066934715657416040110222437950586275487907419008567545737348145506366512965377581700263357691626748117059370205466329632081299536660496803418553670474658422356586869061911426602772753510478974072913194145507961978145650264690111951980129848096885624267738590917978577967042776446946765371645073987294304996203088458815408311146660824122163436078380511432185440942608902651695339493052563727164556116902625582381335702539542580368713534742499540299987057003813900721529641688076355666646471868410651727965975056145649163402795715231235650414378931577085801115303445213454079313377231874640530121107227640595310967275347555948575823273587530715373279123720999335134372144306059004718436621075271516508421837183685398626605206660857434502568606486392547291273749515686761937264343975629070681107354225444902299358095114273627951682271300117752180935495740774652774529551293779906720631301941743937835380187712415657808773312990068607725724913328439820100068607939769204596047183485506285542761167996906534246005333529456127251002988045904290683975848057495194038374811545643233881944401746678829765881928623421947326442536802244752449969016200380672058188355867149847759390432291303178199313567370182299869223377530680221248470153394165694187471502290605234474443990471539977311309038251647847613971689717501235438074859413310486932274798104309502633915447526833806241166323211163884500702135477278220400167055600849789641858032908864886521931563000455479529370917885426439830914326898403534726386516404861803207186477538126092250602541802499535442041186881977599506903913856478443037427801716936325036915755418235776532900950563640907281085012505410424373563930423120518615109352119300862486729819051271424290928896263826080381627063681707795075727951178924773345882251284057338198442177882748013376292424499513462456300599347322412103822389274484299769733455521673726065216894619770034805219973272559322273182208639011548262066569289809880293821802853377119267437509163200609727865117312357977524105863404065720884290426953931790376076296931665229140122203803581685197873653077283946954027227516686449824404561268183898418689149153319064879537605299110421501568963608563759148639659023621209864470111745065933647085926786390531558637294649303497894127606718593150737539713000910714018617742705474414036154069403846456664902499778154975448208142974545622302729036366356184292850366126400130324400401460539204003997434781332822378200611583681162514412514724544175614823480734508645060941387660454301324668331141493200244780482036135650305227675942929436886274415503078015286293480596778201382647735353125939319391280541912736620354241483587226826234068576785546570256606760200100970707594719323315030283668943911516345928967793352627953509671903360741981639397229509224049858940442947561050090177298691698216778418745864734957034420747295491036645171495648021194707954686181247599307755841568933226129003115908856400309346965573481951318371158290280281102797426834845951561500389544236143713419669409909937108364514853150613019135883885898632598849727633290929637270448956378156612611083081606139462601582282654147475507708985596937948430666837418300155030211503290926257238243371592842941902187662453310378270064855998675857914740422179482855391674068193195156453373381541561197376299535342660619551700072674390601105688314530225042500644475420477008847558856940720487356022704533522293043852779064328547656758275308823090620248236819220794534690698743751942558465514307553219690768684134842536612317038365709236401221263504676463565593725233487172995249795192537033989380156059771929232770787493204684908363254352476956377606128752825422112512325796444228790348859374874297458681176942126710735284141842679684676115787264017706267949643558243017223487700151688578585151173912488810538016198230054065044024655732292005582323416766896525671856615283040604482697476538985998655406208570842845069857489604265529978137892434134702095196183978020530295415142062623373111698823818817177171190833415260781238079101422676830964237511770175110712184221196366392472603690031217618623562902446632091972875841482813663316394749018309306506015991778044888491189788633137090934730198039616495202843397073767947379187888780871491857372393600418301905479737259886587423669950590089796599085580520096087735639352464237974541549399856428664852783492247777628946674340513538282651349019405894751268989036104992553476519536975943546717645797816094963708172770682741991436726737291171437859275700244821965558406793264906351424410339652276340716551480222405677630492310449540632634824622512492933107623680657995478464064978982761721861333534832754976225772670188646917815574605514366132110000053523793975472412793299173688127089990875053699754534420299239176978636737795840243590575609268189300169080990500050441042268874531807235913357073946572802143806989513949957788695502709297256040521164384126947714977266247929771929252741586388190349737277930951209710541360375059337793327938784309224618356055183165000029820817788377335824312687465750275327871608127328960886550251362616864192832463925947049242813743575104043423649634462137334249516165426986255434873243719714063965188350470944450418284032898359718754760529086977411717954665877630825404252127263787891347414157350700359205901918463277691597861497912788698399162567750128583760806660376511007100099932296103805108502416774111631534207739958766771679965612151547752375062534180647109258122823339254989032128100564090746805048140364955870098037607815442431970380118356023518655316806709991233258155032327119940688308729281885580842190723180417008364289988400074203658268783710767909123162295754575187430481492031756571430715800222824307594595388072906976055579849017412799483915039392287616552807832203071822410680229014324476720694700365191487145595330771996481760013338205258210481926287609317804091640904033511215624226839855352754093093447147438436825173306546504937720973105627356341581963015420652470470333050178912564889736151839214686001680662292458587540717842662081776605559193480951073596605553341497052937705189829004882429634044448449015984870216278437413459277231584721469673301485349397445628928973508079784152769496498277623844165184320894966799563088124414918696757478042454544238056028070799531679473415193719835514436679114714547091247404963378947195999788712336212881543680044683160084798560277613922521909649387464254368620292273118737794279599143580918311487008340072800535112628722570259258399477679225582282646972453725404094579315402851821631793148358981923393639211567261707852554936649225711499836545960982927532608048261922161342180862981503218450621894543028601593746422995605045411542818542734152025787486021589147659346908384706412997761537823808454279470180190044094672628959394322845865644157339536536438092618621044291592096351112563929932854835365067075970187275972612564066901666552920690975617801481790541331066871043450691533691001861626541061878471576487013259809056983610647141038028822205838466360356980098761877296948084442872552191368231861687706204259281795287258399886584406849623758822264540319221223709195830579961375600855197348927893671260787911104239275632816517433772534891536071357083950316094473730859399746041047378790194745329965882934304059038619201569996657761032908981632359671426879835724421110883781509779656261668968978099308299727680457520522890110362615441985735537860738873697566590265790596791102394184103600394697954398913019632964153202230137548911320633213208678618184586960555011025575264789107062140301248173761286777081327463193406974292942940435579406909978956301069424649056475680829044350096448881018009586889405469914490027393937933023655281625340744339269577789124579135716049827349337075176113195500267048490697735473710200106874397915428989023536760393738292740222184159798790554701742713542378785883559301620166577087056267064369209777261389864196395478885698384757773992043347753592881540750999757962028348940052144853496116838284540122889980088554362096853449610657006471903621697174286276593470833778789575911167638409365121714314514948743234740126068359083212170919596966668807918159427062589290985007120934270680792153577662254644067055966096638739705870144862506417856369106418938363364867514653567658337953453829375362367867646234735803118419299263904849103473395678883019260928032507247523001806135623086168183393668178385826230275308915234288024713594633262971783054582822835589430954470642288733464444022850969167676343254998825910977766130865438666599431056106011157133368760221228496598795255401534267373366672125598661864863550255767285891932606871369470339516890044904599477249696284816847405838202772639574185820227918373499183667824466961212945716245677821507857968018789614562511147044766381392744549192130957999402818677252302324508585701312314213020660346498340601242915401900064575049645840508858420222811479971945537127655126481506282783169381668177934498585725876323602402840605987247166914100157434172884700250659365759273228008528244116252192386949144718846393322916586958109191188362889121358784246207727537000713591450109280703607998500331129837991275678869452146785405150061327568246566511284604905047205671422199987571810364400882399708506027228991812222829015489387513827220045290031354375623148213064841905576528053768651677341044368671788335803471003318117846174642430574151062237811182452833127719693098586868166425097834331160516898288416086174904026992884486157100021363451057833537185631036008071110978658000517566292787355579747337763790110473528318799494122103052107691933585810349078692994472822968854359750078865613910166689516094284969222431720663362279120375452511822573710304709152963576557254849840505694465996475624735580804950966059774611330903491026530803347464967567323396975320100851748980025656346575951023514486751739566512386582255972253089313736348892395374487724577742719476198420777580839103099882235912830661711966205795547707532999647474206029565180976815287478471719449362339593769573781480703802992418214738966043159754200651054404632609082663825950810161166587588215751998385554425088333251152878809843893658665813289631440225636826329805454769284718827681310937850968888739233211971457088264971056686093560075305115975238733849359937693886485300212669333633406197771542886108340862055128370727063668705594391696631920381239236763285745081467104330350649491161345873145255658686901259758318105297652836190561368705890688515548874286492414837307596710351166213756442914556460606091834293731557520878463119696063185210093072387359652230096499706492465277302057868903059986954291246929684875323141050758676662755233070606914044323904707507692551908481865649069211868033309412826578310579240940594212784910532009249282725626805102438483319161005556505707127843381070754897925138117873996146517105727667770941886237043169571259743224467598786350565151318988233665062427112934183446562765252647988749510497646847813050512254622223222463522658263308528714081204234685508738611985684038572601022863519786013272610419566228203166786886122601035606922598539426471556784269856174054377470699431732965053677364791860848589103214556587434731575037379938838184849827964053218287079281135179026644687045038466858818674071161738728500329725501617974020400389633801277653812177761709709110174081505439799954488872480792260919081574608881142219431380880991911200005475616139544404263651163278711694857928968826488630094405674588236677230459874394133461722327255345998560238752129530135743806327064700429085340161377351938866309987659017048796984800609771663907728157275998538280624459841248696666264959963405990342406272361269521142570399051846686103848787408555502339502092735980863389554714248790010722825284780154219460267785954554393702556835342265527738622269175586201559483929651504655877258587787180662195362846194109007928094275047088708859490069945756877884826976116099882899551143012345286268272419104887742069261645600524119074335602646563125295402995106902863521524120856446583019312370147519123377857576293821821424340671283035932979000938794283806896937083429228630108712482196107163933318778325411861307939461069553402465691545003617567669718674349425524841325300221707631833104424861896225084918365273389418843291172256706927767139864781540686933458759881584730053700965298359736352850388299609946852818366410589974482070310193289062319584507106385236870369669995029322073777811964255591951021098816619981487263863597756340445243303889778401425768859555744170483481019775859061442361639603750835843996967486545407000679115777786374212175228440121030586626260001758176291420415926299389166041212576661898097058468470579057006779820831373707150302243776044437667964126023532757403494216152070860570275889616904432204609639282462998060693039855647055207189098916606250841339243666616364123797733640026599924359332392209528875705082243074993427232862196750638383733401371403544446272926364546867110740610397866533380451011651160545788121214572833645581482490039109118845242177305821897698989969136970687285160213660711396605215200892536813929150069950786255659697565211899034752246582197249295629903714541691767828330277559218199743253613311899782203566851048727881706820951238768923763786759615869581569599394919121449065936113320308923767942054460137874523771717561265145537733021678909134443323041307003416381713739479072565213206636954289844713746345845855556176145843965558634062919757585618742480058405331341895714128881198199532901504599030065290731628133489045261330313457558240304480304070679483163134311755333117577644186541912856999746885969572111994028666258383327951125955269335120715263109717421156732705613441129573748736129659539792486102031383303727792753932379501459792861026729753662287566130045855268604212999420086311196039672732448996284870132583963921835894877901543067376650022166837765293753007370001093557067145319927860258500790917479336803297420889666273713590055403451548077315599991281430794249400632892524295703643186308607392277242494536981156565610377146663983145957273859999563848207495581983652291066092493382909483586107624169600753954556063355595724552824649287364567363026469041212504456736910249964595044105205338689650807633644694870862268517095450792757359131464179723899479274391323881161603665667431105265246703002387091804834928008275797717872081420275229332687343049382767698915161660292442905309938668638521504588026055891582758145566678397069297417112319183412355238677048139306175363859972775870579737722405436349100282080565628904624113218709154389933194965145608072941636292380230038078074738208910379323443946542973301673018209952064308270709438647408367411929010858648674755177549389688508397567561347408357274914160200930619496841683614026921637289206335750472890797895932430513180805356764284566934855722796519572384243818373853917336586235110509389574036495751678871149846255911325095124289389546037958239947223646353137000021900804733368777722039347222693238326381279759701576241156584311155444111878825687735323167076445915502505804373938729367691404918203887638680211538345514606733152681212266346566754902652633067188612784881550192366165088660700071851410059806721711321968740817811023767993200810613201840319755067953486120856390280121453092432811214708928840515650406412920166893997284732084096324978023111642468535880363442983729429626900122003271651001008458303353119452657267833166436326873356587365972951657646935038253834885840193507172391357450632070055772931472237490387625865097418236524253116414526354578418817648695576121247878874076843058916085654322281096579347550521382591456259570536612055713207670160832384061170732966015703625958233564273526281232468245755694470641654294130968985910928152132838392895817392393172032224725587662219945476903662936932871318858296071902621579092745771617362559622888082469045985108181225655277551853425442880006087428284391578568788342370428365740681924590152224348825107639157112462704417178558447503091884450241139373944855339476838488371513572818886694252940904942150150941546004882491662182893940929631965317020246036816400284047339369205093371244687438050428879511910702052025917886673891984027943723858776493983083043332488554715735620998404449366228533399920589992932403103231397489370819739581005615235835302583156199974986870660079976274547901160571577949457582193211831975893279404681709155198587334829902011033923737858593708680369752756095744884136480967810286749592544267056145123394045704138409971224621031931700826946915330179700050646464551432828322868068171918003801511870146836307911034839449677776058281486632601104573210277407849958158538091103916179928046285887742129683955233745252321683061667471102046464829488822394255525758794758242205676833584894031619995679784893447164398665186017095342195730220346180532765920396276051059345897916150036785938750933366614269009858734260514809252537699185007564501116000282563335053236635329768548705195291116228616265703979303627691371131033574718412997402476179437370431668157690479119530398984123481998823223992255602508535788385575714524716465087470618897757869428055274372054385035049721629355487374167106754072508836261222704325707404573988818404979513526182219868762672168139163417947313218506675369737885315596409976883237564284803151279367058769859181670442033709431346739818478628334946145485826300648172543171592162840802711515787853260716797262882386895271617691963301895973477550020914480465522123837602043361066299721171664874663546433700863636230146231484462451957162699036121745055265913488549760737566818067152866435455323624646064685220028966684511488875818194840467187694058143100015775954810289451883044482198531537559683301932282832579964005392742757230203721353982370422078131429902294308265018696364010538191121765393012349530386153219119408247178599888070886827674524128735826854049631473422796084751177223999644914756892430886496200757438132072793989020876846711202347792939430832388289256310077008159025219043683257206689620887835402809120749104226126673936890483115246611341423337236854014363764774923143628261285627436391175806186201805911587237338323930840405700088903472314254379169924522458594147475911347462850311881681036530353808997967179171954235482815693471475735748367423940851390768574022403285921620724838567231294985771763843012171476556741771973089686963518963218920182784690024964293625668203218711396942599028478660465001700185042858391218241958094686597896365299368672183998752776155601221598266020155781285962324288023747988148474696507638988239210081613288363682180185786132193367099803149387696648519738514175181209027456272702085766055169343205998337881508286104402976041348511483156164028057887544896109012709936531597335517672084010457499649953596573362343638593455820226367270842519518132090577650345300168263669784819368061899403847512088357473916883628487035002786182454918198162158440955505705335612670547547855160698038648403598425969078934882103654740999946785151472103941086569218566478615994273812566900307646015732130003445930986734557188295593808548467308855627522600785154663401721715007448830833874648722316668305928289044493292420560509062460541297949302406776905536903484883465293679752398452063071463434906988937287157438268514898896941924867178275454241190680235249724483233425276314000384119283867150786829969882205165395366063939260201599320227666880790958901914458156329874618032333956895325957674506962578011581051956181254661374965019071413971070095575399367357224609697890931847176612849370066918010673855019817660797356905849725202455189550969283840420968466843570837757774139672174412403851909900496211963826681667382746995084862484888918212495395534015730752475507303187883811659133588917742299210034734965406373558189464959819497024874280593776489638046462856464682445767182313588700795415672037083359377020865092772780352292924467632888628804980991722090636742972596429902587504658054703843800146888814347079623984240516180915197812041213564731975373541422851761950522610030896040161644898078133968161687459770125670337492061303815331084774787825349140255886180535121165343573612323101812011648223413896712520131942993095466155148119587327610327381819520368341997347065866713103102559041809439398453712250173991593147788213539346229463224873507508425704102048795087791777975687405329835581609424510187791183934641527509466061226645823591946526048020926069999606942873115281251496876157499446389186078095853826438049262419817477536498815815826246663424288004811725180250456495087863317053398497493346892482987456027456911522136359674484659608730532945360947407017215639486478732578404721671790625070703741450455464048336521080634369657452893238422868546749557777300281497229090668743555415511325112376014694496094425636970005137403382130438918127687243034168293384585924578706309067603544305367318166476959644914539289071818577583280962215834554296735106622065601196860652747703826137178144310082508651566127864794460821465961786334259176237235952793358038076356927193970145430488944705499373421055538273366611147247767761724438444806946068458043725307870328366184461055821103466075335125960840176487366485279562671550931711003314464147212293453583454915029674665866807992899426260773217578579059832012101751501864628837289169773813304620448322698491441793277327528297163051149204623902421931054740084928098211177443678300853102262356426532889653948079692315078516606207173215925237978671508004561614759534411783225531399458806702097785350014118211963294360900803042220714832746783362206830879847965272983554143704380297675130991175133906088431255903611739473804980543658264573768287056126140888947218353124171076777977281924886702380830340618666438921818920407744806192333843991377298562152712835881339219936354539874515525052285199846305248638420585715056019955829913521499131599979714402020467595360902700713579110197586450983766535001580516232909664741854531906654324369928189409408218489968730107301131280563168144631802063254545304401258578361632549587212142552029230854768646097473514641173440755599482838810395521313508924953668231054425280025892310629685953347267589551240348686380069754910134505162695886266638153489611886526630010696749497567710769823653754093759900512601538422243817769398503323767246588925152013363987885118645560483596308041392144842230410829618450572636787995697112049332076665509973455339296804351050486694703556338336191586913813940269467401611110296366046044079752662228218928361193644170312280857775190281969019132834443729220960148474030307500851742543075597399643380227640469859693902269064925083180079021727101738504294792958233958062596616313897937919699276576222038164216617496105247548336044909659520312015107771945892054623944176530426555186304504908490321725608126967397845781409562018847745766750118163603381280008320678620464917761259060117991509565094590452884666171148171721974540801039568680010412128588926479104160383155316868185306647768628440118088618675083007311391144252679466400205574180139770142475729287739608359129961559249179312719121811441049638138112381737621685927467895075295827913415783308871510937275371288740568699306217876538947313156698928066034262382712067385093918604314793819326087206744070098135187963476299270597351592226032055048346333088622467522013587320943826246409903210788016576125036590194353037345793499239407955471502092312160127040005101324493923859805507228188896176811726095243289779565192813532658905083781459505374900565958243777766627156933175704874228246283901236673731244464286906803898744784817396822528179671456980164009841246335462361334281790905536431190945061805754844818146006302650677041137906426231818333374196366483001072069212711645101937057170621542446631534301540884958920171301011781523594250043747849861313604009607716956218964955005129660986207865056011607578080892309258861970443154107493165460576794274213072118301774910024026952263803708151199496035274296543229764988970061502820305483389505940731673914443670205779939127005104201053516210111626198882720443199975527611043622762832351403180329958553187611455607271281955269916515972482182155237187026788632886835477302339093223645309800862842211737151490500662143080790240237998166468365544756219640535679047420720196864691893506959066420064716517965100138848846605096757934842587623927165363951354364901332085146778871591591656688409007808628318972595352088840974603801966359014905084055948180611102465744437645448039814034435871848700395692778117891493816369152772559573054776493221897819513513541505165466671526476715479729453171975296782290838652304250096182027486636601074074237934866071913347584639873700902210671999500761266414277708650064919146204834840960678651940066367511165990971297810118367195475200482856733235684785277471649673451893551079117116711327530567384624565614545367876998030609519493571949424114495905018190156546382322552125855931188538983467449932472527457764190391720830165641737477500743873477759571671789622147897383438400921606553851579263089196963171554466491022426361843480802490144502193884883560035834430720731172180924167199884307601162475762986087907822580005831735880577994191160284641741866878523027136247153938474762188608786230412812197149440585445053886319835741893406188285042661055900100212588708609154673335682884690613962421633061915596733624972076470160116330021699086798992357675963151439682762721177061517349544576368588955877905052665500786704453541454249943733250212982132850456802077599846668782471850736796259208630757869538901068911107104560222955551202058868202358203785027516180013295631106802116159667176737323499335633436382578524612241895984312684268224685792622225360132081380037842910647570134325400349288567978359217657976939164331245784740492268942167870916181420609419250766201920673372487711630743526197599590260969159938212363847277569152833720835301293248595310432473529445935525681177946935528551404357834116119841215410067855796167570788740037343014308210457763062621155306487282293417428334633550279717523733088751682834740378620943667787595566979790858985483008509375008287402643136790139799786708725983677825508069426816252377313600008100744036198937348434052876532971472218309430455379742367791179208077005711017049148175921778889827120981735482844124493500370961817091204858396597581666320736502728347113495579539932944858903039928370053876354957859099639972366619697086531681807084896303746508418215947145128300811509522688561199135615625768264974294691937067571003466847120053588389693197523683727461769438803454958048569051787167914486927360615498572370227957454806560516713899067605589906374841017914541834065002756727763642016492006065407606095229973395496706225152902631795033010880582644565369514554306058751513394820848975132900026011813868061447884207504908606399192638174355132155337133394169866075102493798552454135923407219636147941495107121001930256459009699927638935984107031222248571818260305233791754990771916107384935432517585895452817411791396444845008515156467299396281759188131922919371410491287296224447249300305724639081372921712620355849492277490605144310236677195307780484290960266255405712534461768924111336052798436969575804094744883875500660669794166398008065869509129022659950597792913623377354927394849086317150873530232832698608318268677106244422652736950272336495412766900623650995503767803515957549931685926946796609072391043760496734248945757948119198693271812153860715847447730722387197441765749159480996527456254460157605115279484949562019898579300955857064260897181129224950019842714349063062429241338742326058657989424821335404538037701200451056399368963591432659827539947099464066198200064822645169583372202837618611652789480078951078326518398243518501964559654869307025404748413122166605513404242967561844292415382989169647616478368788706542850617101078597096282962952019359084538356453689551571467446283183114696064235362030797559729319214723926141438230277498678897191115972542265485222581749725539696955823048810318416600758080202095905015792894528813288468802991956819956796384598267365866208343026284538994224014608558209993085678036388510126637477926473908184075169745296790441538198402603390910324905865103031400748905179508796688922585341438942650674857093136991072031802495430105082429085331625632059649217640630140680726630541758039365981833924695855583971370559506183547376042637154123950967733435549085775861704321779611235078262030455136153212440642730092245079482903971555564666301001122475463867967487378403420425498939810757369385676063191066719546982513503096642970137858196049845706747912408975498227223188511432449016737745191467984122049933244021334639560386619661989106149215746351202064514637913272399966335689507693458494482915566572278728068725650881612805423235917436822113310571189205956169169817063533359017568435657983212856768865442139988579285389938284026032047126407913427035710356627527383364852010667707394126762615132841482062596697903295374888253051720268024600837060330227537382762742724857492019189265372041895980433565098782786056645165053861491524201365775250140843325544018437424031864795623595069215675772962579799447531296047294487944297607981639488746054655846684462785880410971771730608831649950964199499043676272070326410971427716419959166009917132407558201117707485630602522305326005053377178324926022502557706992142924851565858423900912699523137365445864225093668445489237272535423205620199222884054759469152733776688954584641807481207267078847910353882717530290346495691623772881792144548753067578669640807471134022636351895116634978145881595979119961576928246685769171907442868684999653986115436451722868141665819592684878384988389556397503863297144727064147464994262083041423268083279625718043978145922573040388748016370597326037472436897029807513749270598551873412360012394759313366844906269575288388833595560873876943783642110523388665882710840265096661885004828601821938489231437834821120881092934995838068922341606442729118075275746075447215142478550646398042370858578887670339015063528886622349125017034216179394090662760946252113296310112141878708928826523165744957770568458266656140134303932021710055370395752752656384278071432244260946474063541030530961684663053566757931986419917743944759144601430333777246691954390978875393844299866370518181708943950994352470754634576967348068907720963131333993775682659572554163244092485218012900428759371738111913560659807000188694872130484406090931069809861813984578542236002505594019929964163959089530555586317458231058826607189059914639134758104765118914211531707755561845738307803547300291446495052535163624205039241907565486702563149738888158438078384390804101312382486498714502366767250916574911521330232505759817042576918087903907936481197006869501010559738415659124773417863400431774876515815581530127932975156890712549932955556389164318834338932854039779897096516455552599242073982816182368522027284114771494282653978971134536835588036327231813774840930394247123528774189142142031933070789520335354832297335692617640813425582034953888333107220651350226688693248908659705291650477152231773347683679271372314995348463739117015888903462368293011870962012631778676574064506937722809073025811895496406634400498047719883617539418803013526935666476365128866059218097322474380336480991032247386351644127782607981497965838989761339018252481344527841689140451784778115284864229473208885629127420877821945307369485821667536966905462664274735365402251077925428981937509385255434068549290251179424888449756781883720593434289577454508014501198826413015697479945244822709779366184701047639024413151149115373689850294505784413475044085678685573300303454579590495067632827440628518054210350593860396419168153799757140075478813245706562369947665989458240240453628622211386630310492668888531642353888983380341245034807634817182680729483892005669447908559938872091926632984323705787728571910395055423123592915100764204323306464328100651377874863881547160374492591523418639995090797703624220485182909160488840999352004105928465224961975003865200632912474142493711994678734663896640775787034242469147754992371852180395266888962602245240792274684281760706402147796948497215093031671201611455349492451892463899356881036336220188291983755050086484838050874318574984094236311446170403475882487348052507711675888393319367063646840119025882556720823542474237700891605802077136712090941292285197158541482463327697364787900642145673240466360015956271895386563124546075801792833929991236776864114385602408389318243529919099808997310054597260015694647892986255234679268195772170914478823761599098868727491695934749249722367245686110537976462864295431416407151909406788167839630638419019576346230419857298217111355784256528311634214333257785516793893433895473129911811090693722490250000321782208791030547010663577591398238709824937599428334605557032319657458363989186171731117874382441002755544315899113746193151441442350135984551086260792412141409688298002433157400981830528723904137222743232005195661725216344631506479612645292222428461480052156954110913691653513257020168081383787399638435407850388503894017256770412047534721682988086894687608510790226434275993002461162706072196864977409954757260635069249436741585963504010915819418275922250938597573643477226073537102812888327949424818967982377642155387188017471299230866805525421182766771040918607462364869129375212002904710994583858669067266445657628048531745697005845141278924169192433689247236113070815926169025537713096353004822485685848210751904643242314274477846843901630960058595833903765790237730652765076731878519092089840770369097014789964758487773035475834294238418786897263298026607466182668251583145912321061656101286532970517232245871540387976824295347074829680984325385519767058449982605052242426954180522248475745938771153212026025693678009318145559585082341036581599238512508327945037195663058296992521498665715851333361882835696411434341832005625685603015371179977759415724952608072033446115705019990805424487332972559561682543387534968383521594696441340440990000653689445928152279696681013319873074380143455964333204631940617758609300493166082530566320748904129707268073472066043867970348346575587748638848629047716605618587505628812536719667969200815698351704856735459533309307171106654253879060256918506790034882602565450736071133693505709618509775171857839658355000593659553163273649402229626334400696794246346366839488631398971713348312388914364739681262678761677369840329389191813259437404456915540771853458479909978034981532651691123526580366196993873185366374739005517225764458285545529009212489106623998570368441323721344949162829679794312036674599011044684145822939382685837618217312487881703900837897027491160910558449967760822845635142794202628969121781585919878952789072443387355679342658402476303265214496665887580486699492991585171635757432269221343283277661272214219313612491397202556587965828453986232805727046209845955124778596169598805835299247873268612936751600582487359469509055605932426927638922457471728011094530851443709377147977049247216597743120454001145800159271687736752214269837635482079860683717476406221877522792957726065158306143785291391873986083403379297737785160214578980173921854929792516718501227933218418051532664506507612797921439363152554656161250708888983964605463535742039961940271655407566918967833786957554871741913173060149937167597157615308464422590238563603108574940265390959586448094412031000896133021351487506429932478419151166329194464367218355943807117821105890090718663576486718634040783713697223306590562795093620984299027383209945328375408877998761981224005021621520500004891099273871028796017188594586796769573576415770161969315155518884938576671837346929096060199711037652141476081184787779357354295331465515354729116716928564647868548576210037145244369500045428057419425230621676769763040975349733329193590819775475111026667070844129954707122424293226016850590839917201726125207422207641960796623652381245549614757176490696603261763164289731746297457671504573906215342017221971187303254216865343807191971064662714811357017627775139737504361752862406470096087729466308679264711236868561484553063842917289120222639560525364342812966156755187336147335334528328170899107561330295926964237674991473003385962065187733988978407156036070010181191671272554319560535114811183040384772323583821767922393703457410345343046349107669980264821676251224353029123980231589624882112767426840672257140012611276824178273547039734787844310248353876981998131141182077034537790329221578429230613749713829022572805093502218918768257170735797084710684261702714938108831363320919617208718112135003893824187688555079950509215179957594093372838302420872676730039562732967541971618433695957299069181321588966294555053350174995685349636829557578568536529168678984456954442580016871963999445800907876710538949862406248981119914137552300426598238650269629969714400120346198542299762437571030238330110072413970905246672906160426707890867476756186512040089706756447676423356301753590768230803149338570246278503871493905665425226758311083638718183605546546652187268623489898761640444474852158447249289563408887597070394969766104687766738736345969286727089480933371880493641738542943696425926593951626401499664551767611745882336720503122803621617576499595912817644614643883961496855771367690156956794368496946794201410858733811519200051706375755556260646661596010655642022654272498511627047573782058101263371719767340411143381424907120650910550820245476784072405381292639317480895257123292148745621103267963071650856828533056464128032218180432316685580783856805947676792776462221641399935126215490125663782648067446642096673614873542572027777161981581567309715393701015822672647831845714363171757142859426984722859617429570980275619462952894775600520415730411048758390784354621708695834723103545341995601457523081064558090854108374301020788787074409368556938269361719139825197577747555033781320854464534001717877326901916355141992436525863950522931564757586161671845551732640499267241691674506512198112294115563834766922783057385291682730757369037196678765620389350431444919929194866374154703065704702878790436388110257244134084222243158817655065410085792018977477452373902806178745882453416029736476021635356540567371831550285727469430613220159434155230563030012069354659623725927586293076293947258468853012806256201697407024901996926080460996332107076977657778667680130123458491629585350000354168152616688271198366542896114827592268290224893914957091981167692768347622048426356409853174489643528868426884814152396047737092205894257383777158517198029295110560394149009370826499287673611593061302286306242223474680492639724631480347955218976014185134776465673184968553130512591541831881463654468263104872447157030446714963999668178412803540510879460571078143656329149975128782746557182222934064514041947677292110576596810282261439791946728788121222028653302194550713785219960100083003443387735056196045871556281207281683344116050806944672857379727427008724909965659908564550449214397494654412900252318689930636250884563774364281139180098367596256501248960770849477113096405188299543903123427857998722368655057387036898739813217751151125163642870594073562456193817300552595782072972755363186632728564713155375943006260869429755376094797286296849060866082068148096136838593484121435089490161325357317016911203421518376897976596206157717451679882364390110721213692359356192655928182766870545702336108884852857991037817401805875167994414154466326991020407694977864075227200711164647575120447054911833147633973987752017865970031199652197444885399900942946098978049177454521918937748129691293727706365424058999653938536405172915641172665975828327565558690664121074494878227199406855782193365307165423615023997051325816041815390847154750624451055719784308232256474044407417287270972862903311681946677843577232880305163644169397024407352809227243911965517281292559571169516597676004509918502054155529111308042427236543863392073931539973395353804631647466693455475037042536152482707478442393521722581619869609920312827006020932373822657468834485248746303331514125459579126460317672056125290171548784001265886541726164710982779676576951442440188040460526428190782084046908806407252838265643128912100256772247016760545885332880264254918792912016642536357641811761771615916136817684357902888242972992075729701046104762323098642891066564585405631320020339440886567735819126505819491218421106404994703727791219732567750697957018529385707847026112413521084615830681954415798709666297639391273136292628573120098222388833215233092332922209180301001992555984219343685902938683609002636037214283756172818508250544879867245324621400055843380582632836231287404763160205698207757741197603906771875282931897701444897366254179546871750343362924468325906679214011656391771636971727222128127309120267264267346784972671076911395019065670406596201949330918135203491840647622587528578192988488802780086452939997284846347353814383710050448449288325819416618892641682251566008038320173772201105466693886563848359129866082123392211122568534537981569993174076345068647751792061824394426049680189805571594997988457487277746138883750248943720830954113161670133958317994159747574423092514812396073911092558061248361267359883507931565459235882593545169478806752402384206051349887319996927964289170245487743987882686994563180088187038834109390057141308638033573545214497339063567923509909096753108388177930834167516884701422134688964075720758950858539060912326111732162238200778215539607296191295837430805287076476379361293316468003190310948752302892872763427057344442417886826331306926053019881258784018451362038928032214184234465930790566412897640394267093683981501653027950457906213599901500802838174784183472406910256666729846118295758325064929079946738042248601839152248730779477942417651272398874842370031899161237462990166509130306050603012419929253309893287019504524500032639645391053206688907069161492595158363202168731712176737753637397545206704388612041587206033024532017847849428493365583253382399776232127327960672206765711557800849287408983053865046434848115456000479811680822239690394255545741055767067149973418191158831398263286784767973508155631947165287970107001468929033484324265827450295914239032776948837176927818268605567401009652782199436625619804710353243011687709138791542682507961022978182236113871177355852954270798007701629354595049868267560872620040234670789579379531331636707518428793967263399786246715570426862856879543728363109016119342995732895064886631745966055206614742028387981936000897783657158578732027582766777044349422330063758015960615541870227158289395861637321798448653030388765065426688249961606509561252499344001580936669731798294756803684487322192784874403658865699979049305590938116886824221494629679186123486042322912128035546317414505615346724566458272617865932784901538224009099266897437269815526740013681210317847107536315054154523982922884004866736726339836502653381396048829068657067400940842161768350573532348668794908988072997753851633354289214530244209797894589485500355018096458153554346214989729203920537449975292888551284864119140855084618218689557122118524890859001480113498053533879376921285139472317292900896731666882917588810032504158139394809308193171739527125905511957155095981316369186410105971744627141724586572920640662687952679142602527307990905931277078316453971853185128651832710705317907106151965597207946329954868226675011321517381932685782935752982331002758549285276638366682898571618264735015417214618911810289662481251061709084635108869731706916075662459901771762933416499276984037929647081359374135886217687157393912239072237038654752727016242302692184937357644819892510939451979635595414187147353167280061285685401188223640340620925865059477905198584817963215668508271760298982453933662975114319197282653322755401197685040162276699333644312521028286461352515375624492849258670034112551972790581594910514074578720078843146143994191436751678326896290210582998301290131601051495479941414055960437372238093100506411023159819571447270551859720849197435603492280993311038795792087013884497998074289023070990053331814354246267303138180704425967026202661510097900028363512444832725811454138254869168336627497237326085855745421670330038837560979975715115263824808492051891371850669606862908782198299653171307445239444456812311912067237679185665739128654573030259795958864049403969517437705805805805566283132170666384145247655661936486276950551555413219573175406500620372355488723907191935886709546654604552930788069234323218519739484641963884789773620592902964591294203134635469100791676077598863052974072883187642285996141169947558806250233069085298752378598116906286047032588090871381486849934587643465184764169733644733548328439494570247988618909646881816386820608156022621618857536233354008494745242946555656383155358954676046725335222016347865034051369304962891220484080975870454030621972034485697895516489885852551978384280393352163291187122404721355237243017462780275226887816323933930815754750651291221212665375115884712241815201799000137807226843481929285561890801092039242737106286917065065403345008730173592486925053716739136686273686955538754963104742739493770580409882484893720574974893272866309686756004240316838626001387206730626380967004069377979785857903964536715288040824061130135405765705536863215653196652038193423154503271203484703840192580196463542404329919753756792126151704024352610724654335575958790042272963599437334215698266028360581646424786635282181510146315301363167578781818939106711521622587885140190570223938699085215423378131339771378934121328891241532411455462787599611463512376650115200432602894013536541686512623714193828424759453480741853744115812566257655357184101853298666462810692276744312969136437529959283842450653361510986575099098976154774798671579759260045706456724389698923995175563855535142800543245104887254802241872575504159596422711132963378229394670305787471053654733385208737190182682116790842166566314458928353875953258649517812005537291856639115901234250192575055247815709426783353864868840301618324799551821332850193983072740432489624885361255434004196265865711470320162848115345396535512036021363095013458558069949372986795588075312421992818657151115362216996811709182713754246394429394173290461635696545023493486655174030019721080625374022480455835190571493219163878144648437299639838041431854985225280711590313458029457846488961020109282300090589655495072838528822691957045290877686654024298255080164240651539691436049800562183535721069019594218639082922047687777414349410312762449391230212583910884788091104153368329067471237628233987994205326878064828511610866179770323900906583429575853254982321221532314409336099105598238584031217099288733434210613828036306625145092775360262390512536289524128241008159152471758567453621858434943921562387869859807697006369273026280762795445080032337230728086994800827715996198490587232530559282505555821262658186198006987789548198254717168447977012377006856370429374061002208766804761705596760577900216813139719727270981581792214142902279960234059399717449952179608296416749669026749307902635866707291556446163381695489107574452460394991333047754912057538832349472654277530643490332721682470824258111800069243892655289009059887017458689437161694805110841112199690496611222757672226352575257426282510018704050445421927221996505730059022028533941409964441376754155972696450956826143978044533314624584687913820661379904156301087492275889441875676204677500779864344687195683359281234647531734515614772669610378366033644485239859896912616526666198579531111735619139607467098214841341639888889271571203468920760567272660692579964944967066771219843748167693015825566412096162678398842990706498693180754477270477551833891038615551929161365116571462957956967670861119606040738427930768863635258883101080549524580852983000338155097684132757823671920138067527460625988902164445941854721603267324628865403675326357458063322204001764442582067443007479629641060149602220756885443094820959935938557936863615161814426503418394953787992749491717410764076278853624009702466474464965965090867535498577940227197197945865918298330546087765828449738327789269484853999547407333879715847279558147435994443144264881479832222286273468671734795040159907440048064451109841163768110330602621008400998251079784537404528469626522069023768092562412460471791551444856649754360613454757917138630945186306246593206421533685315500110717347061227205239780852347913002002437007207170968398585280098107608070572718462632997923001762997925960166777831153353664924568783203159727871944186122996030244523157498387394742130274163484264469654736115731962073091883600736122458835299995702871307465952736983600443388473661987527836230396974461453753470705463092540448826044689976825375762746763362645914920961933943995930337484618369616367782105318836011041706168344303540090744196987922172759031590416013714932464312006197007249230507191030684555880789125112297302563477525598906278844272209365050968182931225619241358245729148426270822904867329420758569903604206848124006155627201912844723990890684942097254771076027400535563141308873094405260506691508726398050626824606242377844727775472615178603759864341103790895873814995461315710499443644672848720199599728379404398747419293822718697785143123711524120205111378225027065561665281406628538136860303877656338188657235365082248305189000077832708804952999627252480029848917690927680692215284756340043718510093947766434281399938909052985841279102349018245033316836120421376809027532528665274493728537124939143144169186486168779772349886514263844930423526537430502248839059556100059741763092853331779525251967703932122257465729264848744788650623399357181579889765251944323236596989619812950062704718387336838806775350827420154718818223297308915183404885461821549406687664199752685322267179067405646994693302164784580213282489749644087321898478367281420086274996016594725847816500384014093133497452580774102221610878802245563866113819255846617909435271725412326432309331935516667746399765395550189773807011375422521703523771813958491252842515762334927027438779564206323234956971552172320924726864583366692745800083665597548114566245550825876748247600771638078640424839726261516792293319004031184244732039785532978848350913827300931783125663611733349558260895282970755888031152482211850647248296639292375840880961385963721940823462110960733101628156514385766310368638751503875088289002205432834584584867004899842280249413378367577118079657192317523846832795725467158198857932343126281811796216091673903917121867852934825101957345263397201393526510905088744143782296558360192153544525964849187508113050833854152254655788926878069938526288472195897045325514343722834228855224127719443209783102721773357883700335797071721230856780254168679690430584652021882034314148180774622866637355130813227918524468775662536596307332066214935445720178792916624201766504944471267576675594243279094063682733571297901553906643522820688881068217345645764394940841394031328990431031779060424529752910617283933994005505549318653222544430114346048539639108356539074576066864042202284995793873824295336955693036083459230026253666225160904256150687282087266758132233146281674779880511081344363122422565076275073107398504441769497375521832708026624060379899094910279752750837613398802972462240211838261900045912199429285567429675482752314775019191675920199965052376329798187806341320260567360863680552122352375088555379693696830417264218603543545449473121321499461032890465036190665026037221924598048820729214264585086010332297671759686632923439613021153095559030944356672696320371173257563333807787994885236544543116741846320099398215611823353073400490332086152772663603224133169509323797469684567635458851381449087569192620483496944354315603485504716334031092643735818073973480324013343610435132641564885417287047078774440424180983762838698196104939275305156779482998588751632018793818504692899535319205908753562397631445175112360754727183316774441669051035952952494565151471509960135262379148491095992444184554939471447773932205606155165877747125262343592755248121622867270695632303308098114063718410147136204091210463739092101915478519532873234993182202821133462058017418513534634953918769376901663851131790280682392927548472135526818739209357427353242358683532829298958249888153269520403315057615097765859321295987785903983295183553791865070576363167515747164723184936358654736264203685300654578905184432112322473789677201970126656879628825666144669512860278448107575434844568641197195214182819053947838582821396469573944842674382823931838947687345320539149881293963845308526789130160285106300978242505587632876751005563110641426031702583878483938458110921656458991895344249645525966800001012699499570874390959794883406303453149046001576250162327450558974376366753434724013739805544647090696615769255731690977135208426438237315259638512168013047912638011545782426588464258742822692877251687735674247041244795026206628797863640370952876407878553910414581378695143297123898898521748290417738479318560512929575290567875433416202767092154943276455633568051858497572301483073573395617876074968359428675556133021474028813359405658454939422349333163436462558495919680290433093548728484074183905887216717127969189304800515745890404204056957687179765569686286655756742055465242395227151562254553405901842562596694910512270871375110247609321701980090913410123344353719104972187453582041039161887356040710535983688680460116304409084379650990993476148005350219208966870427535744571398681205888136933859078650431320633131360184959046835919515626231080467943373363892590521948049119045547198103214850557195789439836466380947049814754584973762983420220895913413788674908774279755857036754194270970075432489334319043026915067552879182150264197125969681355922238088386157729750828102295244375566471650504988579667167655704696105846640008795442562265538079441173059229626052407466846962515620057744400531783266816586116474697655484733880757469345533659513470642576515206278505586785932387435077572997547764041958219738377049591132033714719896739012395261693289110685508496786909512465807285285190825776055111010837648623877171974100011006454003805129154556684957571174467783847027466477840696741253325263177496814002447544242443970241773249593006027338721206028831646537060538218379189218648271546221728071052497238523839503319283205681134923735855750978811302010828588637404188765449258151048193562171602244897420915833745881472200552019068003716711480339886245917156492310344637265197464192725460549478659509594376773818084875467577162316270397595839933443767704033123433271478309674163944696812121279702746179587605494719435506603840957039416834059782869137391688304950556666475437728749318951592814142370063540830637265351344585767648292595929539088182533650967547775032807728601470894848084538534389645942348178309937523039502128582339148827356070646381580395885124478042390294769913928109966040771179466523276880271928945884174945473548148071891302795100991962196624896198325136634702274019551495493230300913836431109321141720428815974989682504161824974632743420614317633550793221876637980600406867783602067517432866395824096500380126077042184415538122148769339678439047028187456232027477645792525488952828077428482523396561155571143769787621224411154734147208862559699819841828388286108481427107819135296603288479491034641857569989841496009990918127625426006026666580281150652440168425981496150116725135201179489139559622732944048757887607844781938345833275743916479040394932232718451226369554595687540954702245472342168154362230848183696245895932796021338555807214611775435520431593802957902707033954691026967064346865509450260766999029909668321478875823729258376156760229164012589410405845718279702853859111274329290181261750221923961590907123127869784813813819808854823801288531976452478257319370945278356866423175352171235072410167278953357676990671048656641544214825588979487928990499893094471263666273282412893510136663483869452552501325787470969570959083223053954553306846133872372409003763325875636196751187579612361928188560975088767720490887693744634919846762524682021973157813560680140974465775093523633862464633404380703018416285167567372602975837310463139454443497805896061866606159696538549345272653375853359566553508071029848760430725469803943538574490311468450965509322622967365793836585305223167151108163979870347548577940544925144194043175926043617659225516657072142454925391506350831858736228465479694826423071447554813238537944885383612880305227340223101780254198790876491079782418329949866402896612322641182760820027891598884578640921988095263835946632321701827841388918359842122936045959521178024827169312212507905486850979947484262474576464064958144150513947155381621506565700349623640744120203550086360787941639113111213101712175307624349075023900883142659093062809226990215612547764217973847532833069260198725738585393390360495699791751850527367704838017441016854529339896807955169426662937062112029075322024613625600990360363675558432332767112930050744932378657685203392295110147930697547268858708660117558637795162453377289579891821611949398512509312586219852354045031720767320524856697240473982825237669856082637962724834526078634606162691878449857171299661927768720533269834457203204308843119119545889750482171038394085519283899634256002800227677514771350661310281664760916554665702515927114177753060887942085583094231535558255151708799525028860797641300466323047862431805535342949401167841170173081450369241968964678338224777881169917481789134236738447993828404796033315849434205007700263649375618582891713249849992053728786616444416488873845568626416450601498752930924682541528131510801753059653657465118911284127232982085984786428181806760406785423128077755761091036769364753781457877909098489523284276666475368767442526305462391478900785310704635886080415112226079357764653678304594710518144949071386052378918283944656140766947231900833841684924038997750043372432133436272468174332448449303270628805910971873334348584214887020131537118875762759727644759557239159444565961450367860921486006056755509749966610828935704883233389850299392071452197962802041382704303626840433987006077930173613780028841272668359065294429339441616490067129756549514911002610333843811170078193579487032513088628065621698144017176751432960670268398163022782508822759759767503066770311531026355246414826871262932122536937169412935130973762183401886479050983507242400131476646455317198589440042848998357550224234353053485924665444181422815389906610864398125378473063749951019171651910638532225398137551853065774747334485361444342064797065302750676525576147689272033669841762049529533311057534726843282859919381820630344564845718669971111150130454625443984571412025255841211953678507552814555389125632593385785004581736466937057003864532988102967390461722465659038432056394636173382819896322507475432259729207604593593827662036899112908850585793918749327205825472396308283469606820198869343691774774044551696342805259433179375912594643151923065967433104353841372001601692578064777070986271655458849515931424323416754035256890285006064741888909807588864497086542680145291247813676086596906800308146095883755367117222875046195106355879956590877392794410752341252369119155452337300139742235447762215834209779414149841352317322970139552966592864845011375588381540762505183274573358020482501220745694434038793843223288892661920312178710605147152144339647055168025810761195536500912436063504432757744130089811937679370670409905459952328342476633137716837174157018219634776531889448615638744028584410026141159117077602360917064413742082068290554755305993362289088910998609418544378883306351974630432837143389484091079304520576320258148525569704316032677261689262232946976740809526338425446453330138672568734967107788008215890283763351301796804279321584882522594694669667995643578331307070699710312441815623739128811842089403393996874202308363765079508063359363256409163406412062632310850854325401776049403663443571342223593795617639716222137926825108276014454745828685608728696784542852841583799768305895986654410927988393750477994955305849900105610044355223745699459883582989618190337720198325385147243246786941919324808595508114503188295829025084238658584608270909826637002416701094727441507523565946606136911676689913585184892854100423499346042039581270240685885264040074630259828482645626733393098465447666622843304606489757202894360670772306660268478476633978591294667551594306201719094964045647349195690500270007609828031065841002327563686482030667971024218824580314244431252679996246246791296089069412994803734973923008856813667351002117080686866509242772515143967251614061387502686769353014191702552080822908844130172073648651621805993198874222462504600333311818782271701963903531539326691626672036081404266967518460688787839637015265895680419250977401370054290403312345028025195513076377938108595081819650090019156996599119834077753316603707177907357422063695187639956062756572942769132076999192980489222575014745117439282773909850640075546603633683133466285976717609627331890075627507288747343010028684914628704864777316065425104218025080868337790562477598095565646933231488589507404858922170689065936399752282526869381214361335769901191488127359510750101947779385336986001734302023260031499222040356412678790917810804204152672340693495976189710284247515666641709776602933333006914825709780327103953830735584820015469046007292872284442879026768928172854755580521899746327008451810966158817798248485013964209403021790085928498150370204252269544314406901181108828199866394712773449823955259038569140362552695829528116923218515433914672354347115911483805333057837360800235488400820862390801552544825489663198577647361157389931581418803256735216500040817469288135596865064751798891269815139482647271240430389080269914737747357714997196757487553700299671479773095167667911871270821094997781740363735295526375603040007922878595094617246116044338355658588193472151861259571872754394390344855252913251253830012208059231770874833984828283409109525001893917503913446205608542792493277325713986417318164974847606641570861837670127230856774155751700907023481048923899367942919277147245885044949215674165389365455354500007167308840355843810315115280031890784933163153015629704302948991899394858498263201497356766942180058311840478704934791331354625266558704807949881346218331453570201370048310025594495461552374546870320739220483948086172658601549508466249348577318176438827816728922694587456317107593586392744832907991826000398374244404893064712184627053793729180967391141052033727656691456567326047271329012275701777826162650252930611709136693196682565033857971197637675383621182657230806573693395634949685522945387788251175611484929180716586427590799884343089181890166068101644422068982070963930684929634117342908135544642970883530394959505040918245022396506667506748436870225575758555176531142517574073839554658209525739811841802577438636503972394261796850412406532128259750557880681232421436963088039929023511711583095100667537244731936137972078124989544296479703510849913366429395873628711391259384886109577535968505283979882930143241815379022778836140254780849859344999924453187712017347737894777511815814859716481494888177403727206272509363889786104342723038991567522905948509447284652550223287730307645249016153465285106763816667314084225826893598500535352538929384055120691140595691467199316237165395482376550977640499544225056547903221336326290183256064959623573380413972491507996457022161879972488168116906977273777439323905801499711906096039655798375922005824051447251899814351213927294948158170794860294253670346558909878305142752535186265632163150277582187668652544385748092590330466075848812200779046898698792492347349265925197026841486572676458965993856469689996058737934389333884212367127137308514242916809126897926450877814796506512240003960376573943949580160297751271681814712632867230630355177574174168494713495700617920345689244402061298503582887038951877891978470921874512135413369022861666542789235822889267495775532618795733328220779365698707426230966695746870407524377570550630609727117115333691960532499072954161085510791997221439212552624914763577870277727513473533028638284536949266842511195706532711004131239981530483240851529304376688371553900558347109320159199157695036363851979444898698682730481860295524177641063803041246143980286095661557488871833010469500082060174676249562038392257998633153720748727214000651607878039237156794071557211759152975158782698532219925557630702409661370834907694928490474849710340299747152381730644465008541149674618817881410079097221379489439001152205151317918227541534623384232355740364783861322333861372321054795318415066092826766273476844308773522913058821556636437790775381735554234003935227428760963435229686985890469004428538202462027018573910155375574153149022139220721711954088747645766577649272600009521541157275449927755235377083265722242257572062542797584569949698530030756651732589484339483887853630334218094395219533642117618795228688064348783031428231879833885938368019190058236620420664110107202525087939552023811614017133764213545174984825981897211019204158254433085836667844603833033282424837057409120864324704093100165538019262869472335449822806086170385293318984111434438791135703959680065421001042958082698022105941650773260796600985153518045144548599866509731854100901402337368742601748315730078070845465169396402609448957158012018201576942488210346431066272357188127916519722433020546562863943643747585629948565797287136059048398506106206129741176044328597382314300849829592606356318247367006282581367938435802189388222731562933136093309893590038521119238830600575257819890744840021723144611666629256127735818432065400833262026297253407591517413889559897124068592083983703203649481834555237090731565838273220798323451170524640622296591883970308617320496769963968606540973598085503120978192530258238904071626264034828781999773211748890789266627935827198068899779601558638389790461182707484441223950984205062425601372772730686469134077174626404341970099237226825820176530768686521918488189973005897485426393062783799706656400176662904992726564400511209354978824041202507734515019404795171026048007442424055015961289946924853602203145756318309526336756882200812095569015211551419452599711443596623731868139267325789052311162964208076422077164867183377815589629719188242721712434889977130019539184026561518479295750023083679064726040168563974843859357950653128591462005963581993046271157627363003112837753155427118700842545458084801106959442869913652314328517615781377790054562186618282316802594736989469137790853503080867399740051172491375383754099892239796318622062143693471564043642636393326103767141537368756862704805514661009670372671283456863439831730533433735332388825693664972242504454334021063937565583769871708888266677486455209122820956228687866507040258302306952867868325598104764325361329036481373981416904996692338264586581978294280917630542069897009224521061266902345481735429245056956407311838523485993171109781522098079510903293442494628304403545023112852387940450123545998126484137515010521724504813099374654662630936310454554026154886458790474545090998851130879809417077917182904636693318712000017767037036026821305391468450362311204455249368877186284860253542076192179752452069656523426827450908134781623179732839637925065636887773740666936636788517227929620369106895779476121169312820292173995157755770129126523185444281397083104650150223322098983360852711913391485678245812853479308356763691094450056138699849247675292793389815362119083152856516707345649077851540189469417851283523711117680278065106171718606701895838882380102312454853447991069930565891953294564741594992648031273979475604031943294167794611173429023309904040853619584495331018009673213919453199922678375252621398061787262013327205982523505966425074203870070983801543663078464217654369299160555053177970048309238625995168943190832621577160709432386841057387383833398935130301739821485377330341634849194217508465130441022753447190520219498355259956359631562302103271870296962398393991788751841395287631403166770266476261963988472732012524811266333416836751800865511700710979270371330099369043712880308016883551209685284432113011718771030148488897828465963725339812846872238119782798155247059320078453954277548798121117071551841976932375504423188869002445449635458072741953902875922491559509648997070235537142272768407653545077846915534854369010848378881211978122113870090583753907475476212699593101395101720956204023098528460788087787227814954635721620916814735311390804644531974363844840408736910035375271897330187659686178457933849548640485939850512524450399844024933432888162159367258923786273122049404849079838876913804202699573918034826190078928583686967267356551258962603601666811685149343528795815289549705390778551878851285459744283314664238892622758150224421996737744749567279658653226319270609721171594117488542895807968556645182386427065415613029810321204221361512493688149717318468292101960777331859500360931133074171948262700761314579648992231050624155030494761162473049171056746633089702107514917210599588607757655617968138545963467994320072890756548937019223847845071324047605234121573126623492258125244914688021138459454794919575986221196694829391436822411482617057538694316226972653426833710021439930318104859372335995591382813515543120773540056111234172531724360012400938256277233722174310613390403429697926025221928965287891103611223152658873949225487005527547682131743187440080806457010617913618252493083042080702470712054279646649940220866772203477550201905649869083109115955355148142934289983697072012017789998914241139465055918514381571537923411156078212641656741382429081244745495070228802140148105925226206527055631570847427313705533851622213360995235223556247341586777655638914426327131470629719721654303684225384129233290806951536685953231549735683549046773499502622639285538791454776374038203179576563115016562126527149620571701917899390504057494226611780199017249464295837365734591815664953572682746444408959248371789053043564873853923154882095871051639091493516964418973022616723663521876112200730453778766956967241270962140859606424196943851005554313864920376647205712748915295337600212224224459130296537052658853032139507223969934363732308024810164210458648341454648207762764512722541997248450402328383495543580679531470533326203392057178939870497738128839536660281638466366161957906813575874488082835810181147196806190896208402632126397967491967394182185495119834364741770456160986678398400710702370985495580477769361410627514234120190659999317169607939065830759032655920031739132828270085928043890314381601656486459318009147236436644461418238044000199852846816749383693133450394131658108643186674264540919172211646500386070510060292157096771853732906640671591891781814319166946159286497705893887099349546818078877993978503856439033421462009559491005951547066002055458322949464103395412912006018133534085234997106924628262712965354574932957966311970036245916341542078460297924284025893084046021816916650398615022751995567029387868604851476126554791762489311082488869848546544720894466605824012050511624180185364917637535465217821705451429537295481870772364874653025235076373326191103103801715900866465434288339082476273935492235177428533881409766503087565057934310339515102971219690779349564610930914172516760284322625776786585878219174305051524343123702235579540832381557152611582329365765918097702639742207519237879883122437146078245103220070876953355241649199607090544477792010721274386331154145251072087997920661383358470699892645541575269816918877799101554834795311683662259139815215537759694725480297466453984925131459730835480017395740840743319552757515235872989529692071569962698085088745530780939431605430581466616206848100317719102638281014298671084707106145574236687962174162732606973527471674665972155116567176216796208324757958464184130691413768156503254539659540990822939610526431943959868804821388114549461005981925103741879960074654578063805879883570833112541645606468790398081046271997975874993843737681149440947838676511072540949449832370791251793421778116451930329508976433123118961134753398198388665713867115875101963292362909692393989242311951816983237893151144484902084386518587507016806971873657291392136010272603282989810830888925991912771351987206361890617083851177376678793634926770387916970208076293073052663830342052202204914918738813779341144988372618438022870801080270809121905922880907914055019445168581599732274310742188437801199675559524451828987519295061337764521100329696526300817273864677842117469768143218601510350091407769930128867716678654225281326547254805881547044265233249859493154921449599870943487774490142238624498778434964082848310761417277125774560716786645723735722021385733697412867820875890422446261574032804491909891607363893334037139072700085878177250955407648320761618351891934545850726531069636338503410172867451176361929356192088463100660714868343169527148045835393320536128948878201115612972526868216621139966591801461862504324261843601189166631528256085273095653467433997564910051473293446398930807489858418721931903011139469674957075215742120815179659081316388458981547631910231638195235152467337678977464040848650971387588706023532304020294762713875851915943684671627344993591521269056799099652179119052451851400908758127117262763237245813734026540488668045587204629453342900874042432886399622549997435471320781002695712931447000589598449473000497373305121039543696710990117127639765707008124735630397802440333259563418558589157634662180106669352949635145410523691409053175925907327020858663574276674376549479889736705989153832113694224749107219174555490577397508480153096427117298222448844335026701951869075853574898544882406160623731246363639074388126155909811800572689837222244407099724792652882680727429112543189972688853404030043818357595504451340660056937357708183272018383843435642258852363177801030223188805586802469665910144103213989858005726962325367303533709275483805396375648682383197112989264361180512298862720648177065575383632146410868094599722413520967879149450800283271459602910553879378657203316540934731786306560113679753682152939244938428516229599628905361277621770981694469425518801861789887261615644711717914670191541131512989162881076480219992416037117472045170295226448047415946818543303593266842909894918168391429109698572780145003164195224356924865448148148665495908044516070194648595661356150872348327783013066455753659926082330233658998867817866525766597747639572993854330598421116772543823739776927564212718606894918460208170466607769075607844614053901566553935152196398018506088342362650516004562509022448929074254416083583746474584003112318212090664741929486709845090527897045443977985336027578595035475180426971838763072953621279399147722847142940529377242085392221694171599169097781259488111736733407969836874778419075431260060581903294575092692673365030065506201154679595969293195989187665242398962970375397652250444443511951860170676948952148272350933155425354497766414277571628289713997325985570157336533513429818439470846801665168018458736002867691434612212659519278354642079781147982285766329074207370638000544746235806674914424798319600782394912271894105760373899996781494110594348126005804592300785328167584829853357207399843848159606365985646131799686287253959082627657239160549852919542573711568654836215689815504715382350249097600407981566668944976469101007206446235984210076427449660402639369744177499641381030315804936643359576881925053058773911417272889380093541193213867671647207318773876265857643533694298368294926587523848389414184225014430472837256121535050268180695854057088461451515511729641664362789635370057125914087643557200515220396543787630764058360864292134625632067209983341407634310018919479581578256625564450460168170630514656079086703679687019846167943451076269112640882796618880484238520798415331654245969879908576868417761001245114096583755939485275031650137297532185186463513043360697964594284308081528935390960615165818464092948695627686820360621433714402781769588832654171263438726241415683349984325285060936628050900250723932151164115876796716110126989767516261617673983491836622922222698813650976565930056148200965281016447413808311412133202725511287769470448268290144468554551489204139256717807803290705073970768959034512256130158764557761979611605742676987607246425275740013816091785143588461127433352371137321809428693321397837829690463218395321794759394084597536259250797836419166926946780655882702888780788267773768492690409323753184378935818980742892230084749216804416043003398008889157999021285229436898275877861231374379615278641341874969251155739873730433585353677276288753171413443513326433074610074695960134625768855799587353469236056088501994073307443970169792802012002725554617355866638333400978673431666437244606764639559153825893544708525257151325257657948547198874471006802089771955348909587578576198316654431635519040806848068592420229588087504415093907452204143069010577690871731013269430138468413759255999954680096139315811013210046855153589134144717905973842278602104638941008607710295944237690166047567714856902869050116411490648190019941412550148782826566138091869112146921832186763252079561253811308687109379405295009255175132460930395497221415580540810558797031744962968359205962419827704204763864312470505282057729188312501677691136676169871293705284969699381322739235368999654936008402237918404874281513050132762155105618142356009863413578406646788777665401927496715206559414834058124963511368257270268261514244189833371467540974777376130999085745541150043070938819082119500172229782966705540915966595567539361972258661457756015278470982766105159721272072101804866958670435420325881815988497362850480534599809427814922475655614810822733242007793764175254907599690176201652809399538067251906868927485426520663283827456568507245392921794356145229718780508346212252159771165920405292530685369630448885862440031714756011463798665357861292835971020428371913771055629576892721274650770145838109218032505468168708414002271804858440382667033968320072282340393058028666622797159780965670479043297713706542745704952299192320394357800504391679788363472224650129560978755900928641035041602040906005602868528463437908768760104703515218436918255957598828633779082563736173885160457872864684832474525223937232416813256399606192180240978693884839356134032503617966906787981959562310761522080771139997465435949217116565005750913585892958550115447925450509527316144830779157204864614627332083008684673323008771097733538640334813243707609724139144076853714103892326615889269630917289724920029369171890770363393088627640667445577211445192305126388302027372486637357234600440339568893880602584100601094261023138580688892980027063855085426689780482431659163920699006663361259566278667057836460240914106637119164923462295402700372117766999257518088708974389510774098902362815642262618510243927544461998857527482349240225811912945528645944474933228707967609188532195766448871484600671249868314538432800410940731255784355592626846987171891219387474705711836527180944894257745174602254782267527835304634113557998342539684874847465648576131184147346713386953851378406677830558196682155823026530561793315034956330993174969981387690696086944364807111543073454121888684134487113064077018234759852677999819254839758109785928230924022387381293224939998583200625163554578208485818185270979483698944260618985028394276090067436100415459314346456655538655118165482996667434590589985511901824157735734888752985209744498757348177141244201493375029205450164665210926672097270828398877347432491535859068960550110594663648050718051719439320918983745936655397574121216019489728034158460528083599340438601867755889114599167438298604557281903339947942559376848238959295344548791080341352254786507034225109003793243714864117166123076133279794007465334938430806336719861069123788242788875472116115297237716331883247776570097193078573321896396263581083476159022965336816813431926339177037342957937866379557423974629491180260358826174275339593907046538173016037721031565762733918080335210820098515872280835925163464918537163675188732981122077824302507589886446061860802899428145524736069261376589361331500739288694221251011159754941993262052069846382899792625414501049322911965473458432691214164392884184621731039619308686979030069079803922203054654160680726863013029237353890825292839155186789529247031193743540002194511628148649709174123975104048558261614722233824916573595871206329774253290483440077360779783689416738035591573562652151591755830661611091695098144355629861605761742431641521270467017976733264876769468440435593801168701991698795009878459662726687825473239050500723088026217620942355554738288795857519230710495268737879483013388655584191140382507017012626171559815070225905131963829253270752198495430073999081984301456964763832727259726830466837971002167929987393896917730369408878184758164541773968085760708080773327272932243221481974609888444750257878596480451205454464042208448772890448886683471587597505482713900672256494847333312793198858984609525274505400541060804598984652519395536746443311488763083027723113257645489727484445031867659415690956997548823867542223134539509479054275345998854079245092461619974058486306269929425267134056184700582057066200749028856462239637726081676308533673504886100837370125823848091321305794914691213028910758335541466962313580737965620295960029179302422926114763596972530666707783391583983181794246041378225953414242164497521617330632341148597155848899041936027416284291105189686689168413707525941672519705269354277929752363374682116668284299958377772818300985079700662209309901426954050836786106297014487435741059698217564161790414245172169622700814465669608775881460008571222648537569500073851924699170991233433220894195507409477845438438932651594945308567919567337605626001932696776863734925745539969097277717234673773335946978336873474748917289999265582227521572253400044909409955738744361389619530406553730963886686668813303130192711752782473467719558268507865634391837248859166104957943898055161925604327076199550855929417920252291966271906577921902871967950690749622792801431994123176319121338221873583639450963710475151590467378263073314504244456073841016582632152880947336391111859774579613050277121801953860069735911847237545460994323631461842993582964571851144407811710292625077601649029420751896140780672313714320501812715394968949523610948274741169534249172915491003938049984944061167564938697601569225339824250402055395628849213142704920997504806944428686207640999169478100994939660649394927039455981115857380631278027568781539908086408063906546289316259013015363675889894195630569323252645462787277574081104142738917408794198985798158600178222209085757462913700829586390386253760485163509348170896148972530582917152381158428198833230779221175650442067778734673763044122599411757291257297299289493850006147692126590810758374049599414694139724122779003523997385855080717234431552455824439887706173293546388908758061731242502657714340139657137106366911752786069291641996765629035726482380648876528473171060218160050373806146448743638706509044771514393457090515826301321189050010506300698140185711648748704400531392186379537535615359158430703676925877197763099359053171008105581738141429196255412964719421378120439030907255060812623876505027895407170920056295814047480232991617438338947869416492832890623227122288342453972719408583430440795876525250004208416353675442672735969191986534398400792508897473163562836669202791418568592411201757841864019647975194505314195638480813015064582042255733463370904551221146070865738191330976932537439245032997549285106049335394592699345556000518369570438551701962220266954668681031557945246607621281364026593018433886901611599925328940273405128670082946572770249081298421228619775720652975298267535197001818890356350786355366180875101513828771469892029760460037485747967926773628796823052272864045194073174634359764831121219304198894837156465719372271522404245110716141024177170354909865914056310510063699819275802450113781631886839592078283621374412133172043029924713531007058919866585495008854511134547347756788030250346666098199591074496097765422510863353584195926851542535120466616963895905682974746570663477174638203719974862510249755867568170795208249925865442016131387850274000901556660443451260768940299906953353251198703262241537148943348185427339365415303985134083933656755605218401398038211191827704223374053156603560530277498277226133883787552843216757941377042636749179310091024261502884986181598688604438276533675159336285821329532284704519203786540826171972582966113103487079206489280881471145546650559986170601516190318131264785268478813017366048122095840438205538213154359375695656139071927511882063641485111798910786758925519499829056140570152934488679381099056384328198967288221714904814826947188947079137305318114942372344416117159943197725733493943389494138012915044096769555799125887353570558156126409692477603418968085140720549359534073018849901649565269251514158247883941973529548148976552108913968122790129182695657775650370964289565017817219707002608621810622953903925976357107521623453737721312252124417878833072533499774366926636903983515970376535097947157617830885412023599341200504591317378777634484603726208074374934475813414957568814486666877392233980994850607748222662750918911907751833170758104282530835698935292021228212809852472168687763883207608407820480531127817997978682434869443993139577392971642177528736509806684329377436116915082104669256909998628429681405953960305964042600276432308752362150655685164399385591082475176650537866238951258198802961175627959455671081340445413552916783540884105491747088350069298481684647801345821654893821860128352299224888847902513275524057818298642074849358618338435732211563864090717216182621364398747108353351690899935461205641185883780531009572720000762816884071034087558337617585542007335229167735806406294361698284109960225808303352608784655833356516449493035935813712173758412373650692043962992235599376875125148506521666010069292168703920206393575641858058637781424202021653593862528408639655374086699570700567730553435068648008507076377415339770994649435197370712259212348769133376096162149464635763186968468089292109105711535271992177993710196459628840401101874400990713692237119329875757395262708062874781494136447603273300362879461774109675590412256954313366032759787387396967199019396834636932625341203395617921993218666472602591438274807436501295808597484129960725432197375682128732539378203997984627865106357226295641499719624895848288453655688879875220512330177820748439940715985483925073822890292385471235728604136597523815107734195674698644486343057331878954283087521238334134951521544458491169238659462978507965838072796123580267148766662476218027544467005337326830608653815507394147410713660829551703717074086629933722787566647948177431043875626140169573486236276554007572275654563087388967513494868601365632262339614990338478802023431825286691451051683674061984097401514800542312794803791150097611206686656483112739662392278793254498474150476471076524148752492713693189851513715474689392289846072593156728874094609497879463524870495533896441272082330955911521220981497164349190246882223538234377004503242809505984084360061722433617775480951625362764539005542856807704108842301138509292168949986802114652793790701361563029296501075177755179395898155180290357067079557320461772869484247384739661644992052088201911439431340256334137010282144173238636734892592912517312366477782816100542734273020931339884504473328490888873370359740734767860715319610113441345761373284274258640196119189669381316531035290119280554111310951380245989287161489026787432214298693143780842374837544296704264415070039388311671398392560376507545600430934187415950492495074890279864754833370940611281328728915111516752300244567469724312222324366886079890260550924458337208530627173565060008289040073225052270731759252863318728164952907313341793992526158729442678235924274453174196643170651780527462498125862693333399311541763914956653717954206460478867874164318725184895439990863342949271433887001454324296194609788787750449020057004688004337812081531007960472414037476100027344577610756588443962135261386315977242730037551233119714105279902512739338789429537617035344063805226680434599042594660340963493665394477647388360698242713413872999017589659659592710000543004763174259219382610303822550666173463578643009071108254147005311903651410445315357819718686225447062143896247474411875826553539647688796109159220191692166988652029114073614015375213968844506655548416402758305989152455308285918511522209698555790157605160687072971380103265546736938734532894449311356919825095483645648511758521408854970930263076414639606580467813359126384758937267067103684994729644161679372839340161433782164425302004617747122717109362210522044166682672751583231560303467037465906349164533649668369676601802524139101325438522044180693316943282644686726707045742942687582061073088856057020937089904179423102340718210661139722157020890662415466298311692067455639819582951563761526119058909756244796974944838282631205279941649050943291289189620368310920875033311635542765745747933763223141449654727207154228129756272335166987136954531113061626011667311232187839145237266252754198159035816232872585653527638416994811255080243930382527273423402765066282708706254498837690481688058051747035202579909469310611205360817511963249500147135891856546130810392235800996189910928953447522808260298243682032081642069014183520432484908277772667531877929560489513122584686997081833658488099443595171706076360503748721193579367618935683242918851829863320212030344571094027813407090754745320890378472342442100333845050440809047970985846185064551095320725654158314257689380924124775576570383327295824005885705380589425225296726451137495373006291279351991299218180817277924692274558507851488327505571700636940745014610042226589741502871568438502466742314642653792461541381369031546628318511900192084830080655679447489362554426203431119176006213951121833920411643268511609458310005490717103414947060635411614443955268977826475871067896188314741089408576290280940408884441130404542666653690785602300673492754624722749982987563216923535152623013403830230839470210491918280437920672318449246448786323204867281449031552439376238499103264282669908475772100275423030345794565467030626360138949158821752625148837478405896683259983154602696466341592454425567859249779268565929964163621520315664364763383183161439049050453641982103646007961428019676010065350723393595095865034966368479494339720642406756478162973597357101831992921284629357024703902008266615361648856919133473747000059997187610431736007973819415081741779129803778323489210774535892134540725053060538893874485107447320903759211871511281987541474626137518621307455036961550925303348172739073128432428051902060124516717638630899709540637797937126736906751269827987726142235452692646202481622583635200333425222967892900520632237835198856822565186858527056981951888752062354435632873422656995752957919359441630705291604324235293453725381958645652689109773277626290078096195859887759317220331647962228371815674193688055928077616522975225195335506845584796253955281807156326102357415971422587512009146182427415835716656717662901594214381304926167132300077382907464636709727446629063056396162166591351851059108533394129863077648353992701026236184669003611061432450582382919459047639489625528956230409586009975975169968773154011291344920084678321778218486456974191875531229852920314108296958177847748983877383127005840936847044523718520868347234640329510150021613576425205684935907780017103638135717877833089571683620351690212198293211017261577470231077048574169693895687550795595448328042198260040637383454814134429656753960527842084663282002559380680200341034882796836316308498315944196147342296740670987066853073009834086713382821520877004053663668838159691306740857545957002536894157047462279157455706322584464983508602084143186141049074794852948802193941929625402622458138309769216194933497672912240893179209436977983402982404953021039401476396064822298484703090285150816166809871779829398758223456878827028850305513888591036083482775531297509381670169967632319384465226624827777898268695519176957824303423729201023175149096325382432611469611562263273515517966426524577714676970697855683506473408158677417268345006385126995033710222029752913832739327220914166696427301132651150916418155248039938212599919363446251850821174229536565064564394654331172830043404038191141478918096179558762792069398642446385337305817277214783021528915290119666528970611927655654386867413095856478236181949194893156290323639069025332062603151536522606263994692019495366867762331426905638811806657452622640895712421247098932825003100621094348072704627882122239240680983586078161074027514681754473779412150097295112920509479426769275872000519955836821809350728555133584971003360512561082552593023743528579698512389715858798589928646702098845239531476489201876548321414766047458680952164746546153582037794277892123289264045727750725830282083240944861864083258822006409361374822822262107797703001065913135013364690190209701157805263723105942478811479197923406588704981961553255417767620166547571374406434544866469279809691846709769665358289762012770136223726685929412192792260851196901598427103603848550504688633312510047170604989521967764152505367782207754156474742244712334730064193621969258053975223702367707208995451227934346529431388925582049292363422370537977669498607538566024283256562084427232581174377393587927533296169316330544260919332740841421166199991950098741804793471318126315101088808602914291608502783690281803683086448236104779236744489064443961746200534449979023948268162710291701536072305671200041411023802267562196904647650318779862118042092434493476261266721866626839419369930872814028931313535192371036327779337039030492019316325376604592971453586333915553775688997672825020534203454903273641195287299282248480036065781185434944694414680382670614581590229312612606273012579100351039378348347195647763207358060056928612064526307044315421076343763280644669450790439080636304441240086842889160678348207954063154695443130779051618677270465826700183520604717374450250235787265366847742447400777863049667526589415190560875057020454945771991604457076697962995617814739225211438215147042592663990408587328260555668783762709970985687512484754837988710431675375610472126228681586218921355844658194336890650791685502235289084445858454248961207062812347102759150852025592454798072861080671777100866092059415895652582523071083803219869477052568272899529849254374909193245333280341768666941000714405350416334044446604758679963914061342024498727160127495679611008500721942104535514280541127033908488017909323531255562871111023522153763428423305465201492676364633423676873684780912280019332140076111058114938066223311724964193855401944286718150304016783129309036855315628311549493835653235348053226453470436949762831852335365908849815881473263193368131613407771526641306552563689202136485948118878097508026825945698649283136201254214825581501058971503029804349809033409277182723308151488756709392068730781446673308687266940637481161703391081366960093149756957855475170845877568459991862316190787893578879760647000051007333620545164588778336852501158468056847340189557508912785935705453016161254241401274080200531387280553987968105404363460925312939063121343544072410711462196262907658603585399552395893374550826434986527900137699490215944416335353903159448641645349291430385419116158416802729960593640188263222476408041829240130877047279763836255180851431799873117039203555714913715448134478752391363115201476555429808369901564110915020574895667732878349926451136556610525743870468814547005612121372547781403331128421030909449457407407178408323575719222409579579849054199208124088930321164155903366552431253543654483837027175527801101468865480262200178232139241071061104381541907090386913868115813146683592318807153530050823935487936279795543845060350454958403857615883772886183914279375945762991932169314852603893650295082538796843680617230862491281529466343993469216953859261642250200742868198141572976889892329148049786937716432171143873220694978321826421993103875567326024193001949313881587522292444375669375197839896535239985214536475140454024827457017446655259665326359259702492471790948372311469534973151356275157180252029899272398189089736257136814258462657041706499495165893362064634320912010057282883855322869795957811958570858374691670541738233986678183747195724165995041987083727241229753581393873171430750278594825726736491536369980268723011058411202109506712987868973744499671128229130436114171657506248687235415099230438943657179543821535342153213002089079007151376637333100205591483853800930263776401641499068594813267207185921637561293119632128439299449491885754017685218061232595592898816652636450063722769728088829433223979856604296627197095270544047822041854911927718176586188061235219634709625897740726598641249746673864173598379795500847740416196691519087943627165015548442410730499597533541860507220378088964764003240046973191856362267795142719505242206097555217487344253452337177245676821200768975484620129855775147608514091657366495481640182361959274652702184231221920199575440292434778134185039740942444293962340712687148114279185352274164614788180718192444540239824600791255485964987435656265476034274009168274808920965108653086627574053090134434256935779220273114361614039386188868034409446818151427528012581906448207526594368378249408176664385301546785618967645896625645232489382560130263786455425412169026236218256529428516167884127747397569194280514851072910368554542461742482512330608969544771101308431416804643642361664972546096412045742175384599297883330845954620767417595286425677559766462970588949563456284765939341315964080547495512467456608467724255405886086094944230704444735655952318390508194606017394576143972077839478049747225269965892330074638353044596358545253750262356313886158629642337521507332614815656299923279795184477180080571122381056645162419720483064714671914243995104921313769044680178481039992974402262018107110962079662542728587707931468841779342862850138596425740601001464148725776755310382688682504728129630778837485644214683145316398839993435241191789002877368814129658123640797731409975399376390481365776516041903703771125615156096570894229396708021553191851864832581594513464909875437242304466916029888018718935208012659059479498832311585059943620652779467741952867200435439542443269324642103278924504362914082766750845446809256091673501558207591484710366002117634503250039621262474713972834335406615919660815065973195527213472525141859086323084050999290867467464063106318548831664590085889153127185617766823526540998597971943001327988905654802785032741118696447916915440527723504736223361233200138438651688738308137524058725041798881910964738562479532748626220907678774529969620554987327238583119046781093126169705818149711358777350284533334671888747859550829979700541853078623055838483881692339935099745121102917099614080070627250727836267926380272300827858641687870416663289224362514452311894719498832953908769885446018680019821637647887511461309540633821012471107869871540872093070417838895086195785328311900861964747024515641462299226544348062405487493599385999058680224359738105997864331904912130912085245470234284101415229862799029239184751073715840328934812444806987364690687181654842763672486089019291049770217891985002273556475398221113934946534100786640377424124160143829956998431026312023786992185777874835052620780461719205944899862233097630280540186907280537995767647839753754987688130595062689024722016160379452634330397717229093896888148167471084203230499377336159283398481957230556633307997743096614211070815266538662867769047051234810501473604727263855075608200896058558058815514401224616919641678435207987937548559976518385425280910435102578947859957813932681431587422228351044874083753733502963983584300389470247621968109335838709665287325492284013916248139980995469474162361711619768678100739923879810838433971810598869976742625269800236265486630046343063312670966818602285802975482664213549259591128116229618407410528962260621148503355047766999787024277211207802796408430631352338650480845906052953358166589776759399176255378518401739551544983235316161213683523754520842249186261465072303438359528196245542135600261362978939556330515584720369481950481042113647000884168228239964568473882636432326705826357275912095372523700014211835208292207040879538361466917337722806521661578450934320570942815316577528872033626104052466809111973127258770124010552516677114580441146038186835340097758505388822297703501856794062874961374048526447646060218174171533518051681206368250472004238006591042782262323425383797611356747896602080203056921063246713114679273438393258293267728053254523566257737018597836143064695000187817342774696143677593355827450207638445280795024248190793083230726719248857232628618329677253071151834987179135792972868412252863936422241071876126928809321770327952910490925461903884000362478855321614303362629911826149958142019659185664180681628967995663413966042436341702314697183991050273284726594522726309295701937570804591697544356546624166644935212998426698352166741980497330842954494329631408553213128458014712598407246890054306963794395531840544863334546011619263212849580150117541942722585267610737133715605773122117898338673830333389600693745894827292576570025982434118795358709596179490226193447336049875557056462065988698808787645311802522313232134017220702631312158633434812874626060001590680117896078337269067556092353668255217428462796689580389535463468279104499844720742754308678654894624032388054497073402370497704467889746243730415877719652144308145548847860653453758202621765352411289370548182625806881107545670840204304038090778444745373049493560552353223146562083813131245148015385105112636819098352891679035227371314849219216508913160662864552514878689879118251333026803712681140554687759259410350339103810127933645468560814985638188342767908483965385333284822536342261854838382003948558931362370067814278296934964899334840335498690361010058373174891365780451197457127435183202238572176874680382871739470089430783868788067496151640809056497617441010635317239679915199972721039978237735754344248054716857562335894623356356673670483244902136256792869585093970786270031616538313210893069118180048930959289447993343069756541422482719486179188058195026818011940278052041043084235744458521561604600630767582153495009296514927748309763507575880293039401399882358184775295757539497338892747563390124045515190234953864324481577129507450185417069733129974026955801688725245788196952949436863131585688606241744587743985903990417638417963302448845070650849679187387828453465790854090634212952461781795598074618662883389548671499599806980794494076854751920694391410106615651636136444427778872036454987765028703533152300774399965891007045487740180809930483802599378442362955282710619755629008129744059979356556669916094248340955852015454640262874836451992293600348781043168651685156502728811960559434243332632125910215254279279156193030524208686384135846142094111999138404711654299637428153518190089847552002927255639670908656593130473069486191450495080279834587254958719322030258869156794278014424163358416552952374812352336060865270290935024527788448921685081457472992571718027345875141551269468496250833837395594088304722213210713366323541579526794166354305639568928822968431931601495520731781714457431368591202037933791170756684611037290553828212996019146109189919072781993735375791633146066027370748495297179668712474079687616679860188813363745933146706314364480761487996183954741999422642966781920341021112171742555206837249525487009252163728175278430190045158062082029584056394957166305300973937216581801237454431197239992345006081066279012135971769392541885462903577372049438794173053603719490721002561385613620453243809596577875257200990729078069407102996354902765566022414329683823427931176944993714197646220242793808109387815885178216266056152876492468309937860279417187863019012920659198887553846422546654494676892607717449241922517294001853580978664008530131341809771114270776045047078843608228636272125507897505765349807713291448162672971607452912862585441665957129414444265721866171502641321625256138741858977676834547251563650457830071252111269948888153020603261452936491108336351469813831975088070588693865509207469082070572830329989894235678752908547543015093680380803248112029158109552718792220189446148710550717707052968930563381424565767166875660920545851053209393465627248215607086266370536226166124586316307976715474574550326110075705750018539584158865508375579594500173975596531460308833649252839088523130565613459246398013732035745604751826016043440286945068410718675922848152542909227433426488625699780616409564120024120078810176459904586241692226339238637728030015829869986265349884389898611127128294787738237993771866883780271962741037191743002065482794652330763765523587200513679585716624292697676691207096916324313241248387136287666385530341370950514483583619019778354423404841524448703896402573649543725720105739292317435533293782500011785902944214116005372226268436873474684202748976358789262452581535040797792459063598458570981642141005406116664471068855499170065685298135402607658705470935054096493013781306784372715834009056003382240186459763595824099128220374989095274948027878461497493983212470782988294066843197686042621400544922569948212696948676293264022871549836374405541592305204967249534245909459404109340398256812448685226678123189479900581663231345119991208409615565704387571998011307355986974200310494365025547382090838774745878364855228698571326420307105929779219799056653180449417360393981459173725998306843006972216470169260429692465743126538403778787570261910982708301168202009113962269261903216949020772856088328186673101492210374119260767147378259522362651999988883784203658592286334135364194045199353801289557090415301574399486779168392396564404478049044907169711879781729121919982432849701727229527356914012758894246843142316197363654372902156045853094465850575921937875327855612654333861870403443996809718634741301897969811149857081678344747281467616867414098981083618283189735047825917371449057888720167768558007508227867403653230388360745637618724682837440637436519414030755145879376196169201790152244520606641405491297808687067780286854785366615880294297959497998972491902732052368220260124931017709164791747426678512504346364154529303552688014574838423812137083091331910060948840343402083091597958226851924257154812272291426238927787529028267513927281392065429936890986162407442210698927605262566002361556380974274926474861334180444498377151153020138618545775254182468138824065705780973611189586731090894395156493398332710973821978831132306431339476360195576343635622658693444380411349760214824514994404308731610017863126194210724103148276898667068417915454168993006191901587192160918473977358933577480329252496821786176776492001656662512612923226048617947789933932569444320335815903133524333661277326877013935161574941159206510560922062184296849527489695022159261562609638364166417782691772746824978029687735997065353967750371095039688275552647344491417913683170298213992091331305508300026114161221396574570468393281932877514538690938354847611603250978927073842533299620375287831159354757209540652154449925175550219602083148099161879552421439991747572861688558766136142978331024382462308563767665548954651584455818582772995611802286905739020761281843785656231707991410449419753072807180399644994403180042668394640081362786528748494632618709893182135296460049622557193783717829750758081841805563142430861602417745572906887928050506286981090764692022402890848840026452189722387770113842674591177117165446664202572531210495522835151217906548659594687575494348318101375085075905516184438117112668922696545576197682005489607280615370127376073685339386956323404560848794935562901515249796929627203259643318596674245902976498469875163893886896445091543285122534135434652540918457235308862285699179027746368797951340467090066751012705412949789113268673980897960816783713139940328832801856141993247467854953754646258857314418315379716295108188432188168156668417651310615671732532099107762442674363245955613763092155606775712097031917930546568413702051389545424499936148636612207439394355052948422128057789834335338344200391838306438813909755062038312511482184145995882168160995292346998235223937393280498779378881788668484926404869664881861349580044417578904545088289703590849902202878531787358336456582553550275073321418197783682359010166231361514993155613928125226669745576999682528981470452643036052538137518180951607814766149458262128592009804513456807750369967242963049456668116963265128483311173420547873779844938314265789142865453557849383901635814807448635308312612671679515659281821176068803798646719068514582598348122021990360357858428680992856736275811250171230524460669254054164981090626788605250488077353504265789112585069080571196641317511281703356319191540981150684148641098544628459195896952876139783936574923016516955190640636216179005163297839008212544527564210388643023539726221575237552487052829670666869887382353896921397425459222934728777879432553167047186522288170597174392139109708379916545337112370209526083111631049837030939887713036443741016065876113072117214934813602007860410483165857569593670164074004358801000415495787981989455817264061630299334915876339401935144622862426764720828060233916114246096548211457238812993992450066164530270941106564431746798669448596841759905613037894035562975485752486771832829207479239989281685362064131625269646079023205627529195965431695022224284592671047188958119656119069109949188336825043844178458258921612297077371743352240474804466245295514057403538252557929111729500031504759786625537738103977405784223025093033315993335075178528029658011701230572715217723344681461289559663459487092385428919740806461063209207984994699458908246385673730780336869761975675609598854372454935125365043359178714145804164307408889090426332023068853847712152819510815535866015173571461291875139513496626350597681551709043087002589041448732501197744465596251329067739609061413918912537238277412308948466352283018602798686598547407304463069884119460846041073703497270261297539933357621050334071571366987371782181428547398559727580374966005335694041162087950650563884316789057208395208669736517887369918369641272933797735563659311745134402449220010281434997363976008367332691776121024810105288680143160086669225335067572857810171707595456636287169520427229326420321199787019881875771679943708758724139523885770882287445640411348703364355204719085658020495587434376319234007235204609278064480659553220959976809411844987261893437897192980908754849709322381238298807194094342725710120539721197222291328230686034669084819937857614292768088666739684529138177394176087209988383679569652663697768083592442250395407097376942608569152481809908917203854482643904511659620975712546079264875722344981788505096282329960328283228127829547580007660054148803504176534270662015474489644449961725891428683406608628946997697560038063454103276004209533394041330901493041272088028621996168187049248507931679487048201138370819132594129397687505692292363080793896763352215603439468023924825794560278062127296590109252092325427469369615046965245637489159513416420266114637133594288863941201989694192081030536663077905760558151065528093343541654591708457304196093977089619278193238214513784247207591753365972887559396495572108172125413613039536583125115167235826022012102384064120992836982825203536205051212847674838922976384403248052316115416766424484626479203558091973314830817850443449088660226247242133544308898941608053254594510210361533201326475271522206566851622969162265897975523726423287843161520738147753602948835630350675367589638407329220885409031571722747732199100984115840371331263568984264868380177694805828320695804905167894377739716709807375635613575723782628687262729574402671187393138244543886527974808126263427558884095911551420304699597898355222591804532856186185881553921508739456677341933302003285256311591987869600056349920198260987556758150313765269386133398236964539670615038540909882309664821000201788799934206667004329426305928392772962764380378157790870336283351336173506477692868379338730916691902064401332514401819093962285048481355421764162176826726119260667068591373131823105552334327825738907885196084463098916176919548058763273039673224219292434570659873333745378714099695685123827373876009185721731172625857239692251358179977981850335445319918259768979084703247221593787444944146759984792802241464569900608882399285452171780707793033945683119604993563288853912427596805109087636370241001733093851464409776844420039295190774356341729505502251269303534245517388743380789846839225157129196166093434908867395346076848816207047822995350754023492118524200585362566423447950772723105432387819203389893945406705428524341949735889404155062832314520107842533568003477063577899821073714402904198176524547304355676575287456167149905143704476000933661613173321443845474499126451858405686836976587508892094300236673012424245197804766450771228162074994297313509243497234827158795637929257756992229634305698709006792983693424768164600956579724405929704480918798948177221625731569650036372364263259639111012881917803154670215758218939395828331522551433770948371824180630975123503376614703450650520268780187032012142247836989677782977765265944374452694101854877245111031621345921976160277653794201627413758418530384848345568973004303748053219207769866705850455097786889678787840719600990009436405252509855494004260760328400027027131710402708809605827375314440491885402744451336213714095888614539186092386410141290034627715511178620752094156843708595895628539639409977401403237580621561481350227993115580228240958712118418630829907210530897137072632629441490151218299060837110855067219799365147808917344260769817421251256837343971561423349218567814689860410053547158837553862510409422037311015152201456284558871169065339784894179686484936134556073037305287690301197257301685631808878881281105207078830439823969740865544157412594920166321510140093682972686547032573570627982307095159099367296707769840637504343384382598565751237793482606491929973894090438478851541499697830960808504857461597164135433479120037413917071809825584432753884358656384755534425214128323064543787356802808558063448651234863473127952163016112038855633659912666240639385389424808857197390801914530068361978533593712912467812121260965265632998801999787449662457639187078818781555338307799857028376448857767560677100878917292832193371299270645258538004298664892086764530213360538861952530535976972387513111090636013719931330645095539600512401783752206482965197398188847807244447406590402656100671515136913060159942846432444225245920703603417358238746064384592996133862727244232338555182512997355184687644380159241950261802708927440312496924350842122327487276565958664267124190118526054140185270454539402684935366460913133878916852854172112654554819453069034557684059726603374792391072016692779609326309141014985438521749071177822015644527851181797260484806418793673261109648152655730715694824311053744494668030534051298721832114943515271616541879864910996217255409100333359905562191768769232416326131981926659279064695947863578915818621929664502693936250887628728219695935257856680350584782300900365370539172287541802140285160830311647994768840236081438014591287161087590766969157395667246776487883483675667369052174790310009994381904282262286698345497213549048143890303380652371196731140165762416248528122586014929703431192019396151151450931078662715417478771772323717694599119552859168941522565083825509470758444351216956781688417647135196485453532344474819124844787765110429520438297656894314025392648676407568578099425731489873603904722508074252961690000005614536034200133924558597918925825365267324126784271723620024974102177825264534165461585391525469906787918696872704065848902983429075508074515772965469398614924246359642581904388122458816435020814781716386236371684024065108868228764452328717934949489258837197879448149355365582663048887639524226989893662336009910023584470697231393050177036487327828711940984690796828230351501977061735427717904045560928540742430306589431702679990201278513357225948871051104385955080237331285346963846963816823113686894949947762763938902601244410424456750152601617672048923656524384877126938728677047590676246388858317671780457225750511135383009332498850070944942984951884367324618910823511902564383313633374106207541892950667327256223561873272454469975712520383199779956350597416242266318460409757869407006139482274024581315593617518254891476172311065569001489016717346337596946053810758803305061006412866026830314588419006440871052257215255724545712950480146166864328735360095539957363275721185357763445539685585350185293125341479684273041871587165404178377377839833913371836562054767889742149033934603174942291741289834188747827385652496605015023737678100309783922314088621899501733119382097181854249343230610975100126227340011156447754177463946052302627534987884886710055795147191387657434068907450287932515370088085801581221070616547193399892782895079730975717702278888864395100404044416878769250125267725385206548183245639250058984392465856738798922162056634513044779879950847118288957738898910129083966991234957961738861088368233182219261597333944567775587594333862691267320611878111714202540061287519719342938804937880920933211922826404799896877982631081673439998739626296925428991270349128778111404807478344262943994346522631624339706059857980693877794609274027263650345086409188074488559684951543478882297058434288343220834632050233058019684888170961570505521528557437277530104448028697910342869582997361356334357393719309656820590758843750362864542335866651981025344245658171872622241811553516087072030673511350645766090594855795373712232150705590302121474968362699347284263906374239462483128827213056736318615162535041712332133228086376002656685288778639451531146928846050872445956282750579753363802530490762026651389336811668190827268709832717142753050218721209861477698195082556235476769641774377700234980590062832152699555700487481954175191396680908597683414122163054209652698938542376349742897578933029223067413530249977120845719138875226356952140904313957650602436848661965471417200795009621390806384706507625928605783666933285480466638390533936503561545197037844285663167086202387205135390914059995970929061111510663284176028380650010012238279628195886455274777849229824879386050255896553788513889796054293692871572112116081133661070299511492473732796273211213060021974330284537172084564523889116833265969811832247216772491277686263988012201774409090875132921551878467273423710345351359243743278325713543042146531721481167610248074191783364842639058496376568347079720385572801436463062849332770929029514341068492342058450197295763311409896919633808644547444917255827338741291909940967210212254128124511126118281287295891793572624610436790429576419886724999623569290585495385281951694052151263385443682699856509135385463546054600442433952830325758239844867276016579262525709467514070340886123959366737968762878075375456217647804795160748301406546827770788979739383756709009845905587510028742137515292216991550229044286040698763600985707252847337213329187544624402441521236501054855978822353638583711149450323962441128958832463281976800959455369595923844745223125617019633059139371850498578812948344411772032528049355683014515365135548824448005289903754642878723852032980855922326868009166854629829351629810895290341641186886271200882959668253001614587111896517612846509871224813126758534191339140485820946601980997534644084356476640327984874674749594781131866856224720351955838225488301837978515446571719833996383721684620335093335162580144037747331209589417467476744357853749210871721814715348672940593943254245259420391156505649455724769043664126611860186330678984651012741463051410316604875943262365910381473261933189159519548407852725918262723917956597493103985817314879173039064541889309533419573854122493851292311793236583864347837111720445397761681376010662867925196967978707911085037648517750854188618841106265164081444132296517833536823940790223954462521049016887105200507996015398166395105656159287307456429308846156802029248313436216459851469443407763526522809557702265333451666254729084485153471473737956245482316592015366241542252042739048898226201280043036135990409631527550516479474871647758188806696831323739984603412266134522428472329500997459548316887893291967771760222605531864455449920152024131321104286093679524521615531692373409466595900230840738908790630987998419629262780010945659597687921579816204319782680045250087709334717939889568390312470231015394685634598820319137481378118147171934228839844707985609159264113615447311392523103323038313922380627463918230519994830520782657139980402835749553080278456154420279373630415979269147506978379676764038150988189012485760629323064854935060992874318089266524724240918599204850790284202242488461416896686885632978846696504136628033690059936600807012493314607692967620429312624138610915735422000612195066321826409836503183459705859883975606568878019119645761852394014539294247646724496656007766925769433348919548999996698216836149390710448123255659702426799802181147024365896024704968114133862498786457084318766539377144915111739395859648405416080468552474365757173259086342423871450284885708109856748414660054010864318870170746699522692807918298673565158168012316249160969652338406159863546734684120344477213484972359247433198405546303744400937148292723989383148448404920769732571841916107746378281248534714741963777995450165484009694076613147973408883227113662628935181432791808640251090192675029018374476922621768527894961377851014111133951817952836488029797776747962298776687793319620902490956733963700413774796964305495698429187907225456120644113290606078201221596034616942287570108422847319582406337087890211929054246074469127692836502682849890584261989165616359665019551868430705996685024776521695325539143523574773444158932787706795545153423558301422220925919820166458116418395528294762988057865537399612051226714602724762557515220226035407824487135667807919251161965526002388756334065734825171478317531867084779218536044033363000611814251976101616620287724447671945221075766749659817117137561184764195324031430171326546721670246518786834710178128518804059628548543331354379532958889298700732785061911291190092338293843922897886281957974049951186200850510926953092262685904760397663900440834995836211221815753049162928937794520783495133430432891101496886655487184961980319329995548154794488334618939112121770150011448557799834376485685037261513674449277638270146597687803015789935476225304782849369741936001699404869500811310164476458030479057677732191909578690006025985251538105976887692771980410332448871882969564817567770721831928248498647821579943415756351906987004464928914631474203039492107424526082609323014478691975637650882943142317293985772252163693072113619968894938514733585829300715118542481233844185681815017931692737615611516580370753636004642149701695722880619368526362554585861914071926453382140095155513843300308292551799947943082273339462609460407798965399611144322554063405641075074596579247329776305508209969360073630101956563606888419700106928930786088547444683558723608434430722400706848775244650705348053771199265040051789561228053437231474357285018766932758718870600075308008928547700581792850617812667513393095402596979285074258890679974333807601633381466054605046372728595146454915772096106999222467751793990398206688715595265880688720350840237051303182664207494988118058110466283351691419758984292580649019695455970027848276215689431741479686480338823604575445279570834155972181171799763411368106949709541979039428774574200646089375118321126203220864958998257576931215844218898812286386867552883564358655731523268379353109062609721594452646102660105176519982935935345039585196420360135662289327144339103611267856543526519291073290501673663872662976513933635658311396941636902046875110942195451002419883280304678822802574550555065755589694549325345894059313323355644232977534075662974982382410746532894109793984936141762599676547873702195263157527119021425412909367855237749678675191607264769660608880404441909799207961661954753212238618587544265262109247510771679680325343021568204085656505803067631190434409033970557270288545562462750406765939582901098122244860356866645561110175198474606475962803439984255778517541329425187170409385921043440347450271438910650532914249387967739322877079249782643282263562870729441160758961988000392382765786743260296247631326152613176507973963742041207882083833276580267551485279593708566506790320167722014755335318283566127393283229110774200369421035736603886013621250817676798446312036409089973144867231472943431484945282144007792725317059875413893318084376483201943989347395897067905429231145281744135110559763056992315343658631169972665042574220734175401993177857150200791164785182188399002003085893593937574728041860535418590274641931700532273451616218423960486412306595015428339197718209355895511686371432781582991219392924107629116067596559285655919094668110084995753017435889579929524637117646794607214812839759128412979573830647239119382745091595836353455561058856008202873084511542920452350363116789013054941004112599421910584430190931905574511625498016325253556410203113042668055330273811664469442355691187214532507905304110395336415838436478873307199790299274053123219550131952946802975155651517982157796193219577265780228666178640479111760492970076946285896011910495125172284798843433542955641089113174737980930115095452366873292870495691858012424677601209904548132626463876833565617059190642117043581093952108841169471690536070364342958121202884476570356341795038808723174735784066511924248631922100272982307139876630153464169057228714616644933186328969773333420590353240117669578469031460169489015556549003770145717781039493548308309293207225841992716183410445849118245347284838652331164507835440315068283131265153561813748470154301303103487447729177879202814312476403772255641729376457113784635458957072169274775083663246324686836551351145407642131442139948576766183600994166442698216607086628124824924167614210710369185884634407084333374886478455001686943806543504297292555716602093840461274663770375389709822264656012078555473819748105604481673817871071268258221642458947089268490570933884668227880381724406350867147938948635302659216656500724431228432880120422232444370292566236480293215531220665800066965971711710276333171440399595796595080142794263728956828073482423999247195025433499202286978566485874465409026891478624985257667461660781028769352211803399270401221069852887999003201517013453248807345329922612308136326414017873922692807063329036085726863583335437032687516305369517437052485405617795617562822755267088240209536922598547558351681117602449702862546117863299147326863392937099059865855185001269921491350087087459289094117825103658413522825406943010111093003028315792723277220010206494527513946405880312618351547236523391944304011018796943495799890604647963034277671131954447239068441271386881424629416834787656642675319095951532751955264234065337865178986535934167804730854593081367454992604537603058030177429092139181813492010822663450190764552491074353041593504462022611328187508049653617187048663724449144458856894719914953365339107702540096265732762510144322989848901447361038336746783694116890340292406946934920770706008874879670483185090781448658500344686891249521537504108326802161640952775534336985198433402164386194330989247971505710023594088788311571085139490734381884931156091514303628708644989170675224227125000537569086448963818449886284433859507409993494122719652344022505724594416827855261120378865881737340136261384823150328715057509509164756381644455099547878437679585887678108842543008439565332404254466281051902831571524308789266289892162240154685159287548377506053501839637882975916840685309116098877407680781392340183323584206705055958236327567489839889919714878697145295658197130193187647020269465971888286322797133777270521973161814505092610284525246239660201436413400447124043552207398414108077233727382807322535916623569864299267487776890647106016132053273211500130940763856857010263469596166654332269301652322721590326259153829051700834846149200384472775687957725482250074041034423625032717277460902447265399923716144681154818477688086024201178782614813985222608217085571225597030309221379333070363149294753930525403788681068637807770243885762057484033362601173440366051078073514093617030467116148200842883089501365946841124163371685142519603242485426565835130703102540644535892905028410421751494656062439849929008801130003912179405112190720983203539919558395708258186547144522723790585653442911892264080067352775418967599566662623982012359745453318817004002941166979318951873013538426048649610754149145787683176636656124260358357885812801991256547964016278061800290549364442250248209838008254266536132013749902203320513272835946974915252510366435748006389650824112880741954629227362352017411078156054328653535845955570114545749409372475586341525535374231456415907320844621120452257743991995144043881587082207320789878854718117954808953800341369421396689965490983152570594466864379880732879158636323022240350131922402701633666701958231137147084420985711514266788409919679520701091465854173676253271467079420962630017869915405421208209306697221059771799148178724729135355394300335375420600601097458839196672914082051107775798766534097049317790016649935284896848816323044097615736050007647690652441848513546790798644417878131648025203594227754327236725195833072555981712500365405674656704648405190843257983848987290794452220682247846982081559529323666839021486905160184831416873779207329971344125406355183487898761140345330124617921960468123181503473489110943591109528016183628921922982986329136758507326193332306550563779037733625493900498365475238709077258552070137829697537862113401312254420328419208251787054048538222250736889864819801580936979897315407968243400039146271596339033743145274787488225958542055648285912984448208067001396943317803473686564282473089118963934622088464095791392450438970129684544906498250211543620765789721098492292105719909224565659889002694585590767427494389529447895783476816351750265728389869763597816626058574369954713694124496680316135327694999746648201687597925397304481893247119171417691353889136656351754737749741718095261117459359188280484518294102204244220701986608412318892916336500186706205786896921987489941522302291183031799069968806498031412237732778463712237384328774954311328237344866563634578022965092173054507617118710270516257574299910543394133192995766010527938483330014664856289087173229373187781350831191316148260686461560620551184492410135961165804031648613065080171555490646576278700836354043615897418975314725719475828857960834683677632459711686984504377708785044323901822499848361719277064287222479991128663082733407735381761040000587744696666035987394743292789463911141030702032744123403072319770452531217413341189459778228453316178837904262613547510756469122741048892725433234395085360202190656335572843349238304489377642119763775399239216445561671007194014678110987175112125974210376811785428611966921701370911177857846982614642215790546603270630452919888938637720159266686929750145552049390104166046790401031554234408722788097211731622807172089042656662707270717505538858284874004144958516453911084253030218446864289445476336346717958603460175817110442639688319308426994993218898031706679179192095181731822019259288222298816515154703983959307085541555166279381930247603539677521425136263463236308209477589858865299376500725399855306216354072034013271384547370506844336755959144569973079559647345113935180839679821135601166634239761729570026433616265805750563199124130804115236549487509832004361930077287562406197020887912812585721696624361161720455172152653325266108334222954659012657219354282892145966601210955800233872882810890821341571499330148060234247632924778851175600527072507004107447325748090801858013287528896473213191513536116635093421276253813954239774798927381846406686989456825592604014844212887858253284337778273280899981034518921302859929995743328165935510279155437562727878928240013272064012551292447783972185728057160373532419412612373782928172476996080943944102832972335206638435954214310832297511673296248188659788027866799402939942062062648985251116519493453909594313976579812558227064637280428994354730792046361731921808484115971560523284055111535772151367765797689732202505384071811365450851109828156607105394384311352349073933612997218420867946589922257014671941701010778267036519999943516970848279230843248807458017783605204123055253001386098771723056270642440364630854291936340976159578391144642613393386616055130431023508568554892272314721671514584662105003040748794570578364143483612086097889549391167709249687946777733513355240847290313353393531967513439594640388756942938652135330995671530035587785604340664356883876254939022010428564183495861104354698038751823378491245655475939275549679487694882398156384588367824131422906315869239575779534124601613872606448831422527270510457587974472714765720345296899107521563735340780090264485229029861844396681656368500789146290360715573845516366470995644125595142134669704061988967891097113871181795932537809213821128607259634495674053306920488555061076656262932590549709355243775413799778084318138039994401688104585278312796406039406920477431789295319277589530545430279097408750868868657791041309859429638342162872371155970454736024178989693633053438700358676587373024474353186043122391696835162486151577262117962345159739465897322178014290334459910515169890979807846447682096567956260622594436510377612946188782257817950995636129057826875074738579531052674690851303733407133432364814338325588922791628582682456906701986721293902852183777271257550696831675080405276789260702053842563182093054267472280309400411048044766251638679173187941964515737901697575441649419217028064492920478904743181220246067545589061779264488555640596589092968867490760125012871623662467626328695307578691509173740539444673735972834872343241581932031216746472030244688733909746282720921523044402207375940941058288411699463925669415866062352134090352799664066901330680170523957474518086223541076082711926440963656169961256416135662974175594016785895642524139123642025190397047740240131863285251091211197042720868069971107436964441902764346010714298953037661876726584352412447667352930914618981721686559976882966286256534407040700971474712681218512349578687607749556672725301206482621830052119822776263343786970938720907182174848389535098861552990114270584928209425769964549239950971294287401037076301085657093219859881635402700752677808920477815954406258669614703791122124268840491316227773909248268750999873879063156598636163214963343067450121835687871518471004591796590536548924333731309538987971715044045494729369019127430258262504286604582789033167555826204967322324850008264908690672350452276723263542501828531418484405243716867479670562447702720424230597241725468757005060605777612901861974261337472982809149985992546858404011370133436462341519712022800605491093982111224683851724649675100387448850145240393871765218635885523487344492890456192318742139611956105227947409691067172352626306209996001707987677983395936289695916113057707020349949846306859623730089517140438997457275796420571575172289990248854094875888936612624076419092072615446295354892294864047175394208401246821324231460297349586438881962523710675702101249593592472682666598993819279771358930546225276132326649617265315063252036694572889119520510563626540852805755613895229532329254156823707474320293680421972793694546485601366348112278086005802665103020707863414169243496954269929883988468707517804559261849124172375410405089969511781437204652321434849913094936696841088171756707783077463792523506473718869079276802367344294659302492991608090687523046707883076942162925217497997905607168203459610441368877821723302734902084279006391831521560417283172688196415769924661105578805795900188419745629639584908193746280607859084857102182368363035893829043598041561156167591107602409613433046076475418875841354759242261597340540548828051516368812753525264414683431113819039296151654770451754620764578555787668410993140318355651971351422348510437612689827045298198188846033474649368992401005205281838601877873471410689356227930919931290908081420252907591021231465189652371320718318151916685816404196960374569353919642928442713775291838404460912001783859627670841358692407811091973048411168534698303936436263698673927926890295774046825659520534105122376822800831713585109847326347137808950426406532793583509497275698235659041710116737945951911268307622969778983044722730930892590814025533099766900247733616625131072982660361215852917334270040745665306586510875249126435165988060419781712887413002036951539289805109130905956997859723470172931370524935380116156521685096036854565812904924810190368568866191089945827477625409970110600350670363140935499505694329037164399549220402569575690549846762432175209382405700126608917460371958763669557951738830496869668516589433068619098862333229617805588754961116871142848447377462731820266479710946611256395541435287621266889853754992050018537996483559687434791196565433530153443650363947768642584287331677776545309462705918423597507877543993421723107769354807645197654841138475907209708727719144403784784434477724712699912600219120953993317300066317150609737268277912817104481554111869899311354173444410017720392913963932016898280063095985469016485822825777600149661100501926213766342101448003339820395827262350073709733267770119063565740323029324641659130240247001153199200776171795615633977774579812733564307555443077053488118018600943287868448574433087739162629617595991514506415864314452572254200259194074916160106477713323638300689417264356937250951869583873034205265684620169240945113674674286338144790838784043140021498896465077690743220815077795379056887806062756266723155729005050623520932329329709834734408510643622913586708938927712961158487673993992990347201127565520440024625999832032878868616018053705582471520669989545362834336187294653660175946914890489443182767888535696577386327581803974559662064010414706965307615158342791674588108554340769962905571951587441379035860832039617729890896845954496280366634186811006737879658892105499732666901538864720636663910723309762737160436228783141169536520629924438874793162639991171722377207407046268682332293951305806505372836061823655395759168692702014513633191958361754355365997282192752991376144265471061881061800382454747911060384143845615570346836190500406385941826506100522913509325621057983933707289281576758213947616360400087185528731370266816231329313330172775908767573051229922169761374310256974441777941552262747297690939225387658259547538002312366315935953388254698961261340338637063568466998889818915647821866580148140937526615438831453947732338991140389722408084270364629655650747625719718295101980403429690951421618321681408781556031004642802225814244854545604901282017982586270157136917380789111552362411376702461785127239731785724905808860250932660513011415693444197435101667584835585038237283029027367602270708044034360650886756139220937820865059657878175397334944940648517148560407176859647722842768381902219608255472953377795821019837667571022011958576720271540497347196730859781716481991066999159266350819080740138796836405281201063291177831410206528555376408587835446098929522543452368054610376077965949116631794935240747639310706337661478098394851303817277877123751971798521870809150342594519024641809088199896427339422543440534557486537844595227042659801611604367500174811982893006483335409669906065178815641330169251417309559707886124358146690336363575601646573294267515171806466005936517508159377212017127389677092368223103896526904263309249574500092416070568200253848937905109496057595160498349380314507734752050785756400395549896847733242249989526335182283969710495807734668962558711074058996174632084752752644970437148958003521087669573368590335500729643479367173553199000406594005271395978345316095692013791810553123850504911390064068975623281192617713716946933406938554627525964577784315195520379250216242050920234411647171760028658510696684126416198759061992563070683522214267863833720402300879841692043130302519895412173233576170056781055718935259283614117277434914562812454376328954485538723087273871803137502225379438636515660507725018117457337467577094445122553266609648033311587050763518150474498352473936123372772807152159865722749854963007826610157730376349672424722642569417458302090260952817293131965707482235234962032206360029385568527092517906552982111992886894451222070940177114748733168911951246781619502002170261864035331699664582402090126937295853415203139050025380740951051016714266870938539015941285667171840918036555570891412269340640321268533049866477323033671584449214519893748285503325711743426294174642733013298774711744901320158036842630409766495239523447013313421513295857523303935302974964527587503137061738526460030122157910483090441109810433507301234269298333820706747012869256790922408344191814509224092025223400789465546827918699065585251294365747777087408859362775243767234500426706133314439711933478725032333719981659578636096379647189528466575857721476748012689288362309963821892797616701369484438602839511154993639300884374234256787171629828434974198101701588316707046610066024352672409207827159932162886542723272109678492538854461131863876652044357506143452760489679243648401326466099661177827066692690800511951085580613799180046108397295506452382916440990836859600821587755679219625555567750513205495057911476564660755290055307480826590490568614576122701984762939742721774134118137544897106713119292503937375868464732664719800749688167237213416735817684550763758197027086761773966814184593547239176237050036182029291611676286379217022109770220051206045834924790439177253060166896172532965789687414135583344922740704041692654854981780420226508229651359729950295930882226965709930522021427371964242981442457728411984661366423000292706635196136025355361458490992610828592102887301177236043744954359599230831635635195345613795056070940906201766361237270116279834079143309005555213500867125707587272462146413734782675727223755253912782679167923117167651225919281821549171846909934503783933590770999500936973523279552303216294246188154149911340512068650085847719696457266717670468695811638726789038266321896799693419493322681412029350298552397070804401567508021370002067161481092570609175316891303480253929232947527668528085564036061535284975085604465014155956094050884476007863593895850734854790440361097153710707057093976056095617972885493766180933469285161766696178769862564041978577056159233695001110964235823203897780467746557218216200084222648271991764621677231831405221712637821705000498540659357424183223465378141923512130808889777879847138733231022681870708724102003260273662364983988574306421005767512813575575242629549479274065951430206332358904282115363491880746655551610777983955946282332613697687514259333594372319777302654241728073668672225993274995162243200879545069736183251964437130404461243530481367250851976816733302556137313242675643887866391638810358660327824739908763532427936535243643073352581210879124053340292200273249835320704454074887844157195470180404445791362107778901558518364136150300321425864987917585792097232419429235465766190879053321727831123009801855399061360238914423115326587425987264868071436765657090247939075394460369628750606841437505327407841863356998288055299537161744378710358456883577858698913734712443117463348433898768950513222080374884071748722209645482146680186083776836344746290935506861397928597972385178523917513435579048826242270249220694109800901589508271771909291350901005284541741740578989046333888921399880651008180969352632512410515193918836012459771615506548741907931439982621496891772365325449318951370943488624749993602433548772963283533483040598971816080128569531984546069773841962686096936828542860440312419857655335691564876246229035728440564104714910581832839333227712074117893457007424726713855370448447759891230670234807188895216139361813147719629861736050694410197059045127963757639524326776886886341942728853685940779165427300329999431494501313425328840804227374497909867131739130493788539248884496564068762339316463503619640790370581407047185954743477199426841262539734546238944851865202037863569236724933313161881389657776329516738426202693012803512140073807140631406281595615775634266754650777701224073115205722581139296324934184282860664098281677504019673445620138604062222705522666375284320475705197453852078319970995055037443244016482120922793346268229220778325808828102461622883443456338610628056980615921602613791381292530277730990381711301039926614884953212182509636172662845116816226870978783555713680348933334576270052973604527542729745725991666444606435666052958787612620067723804855293829811065763299677456585307174469784186734056203039763187155914241318477225815508492812850419211675854564028666361969658760500209153631637228270679586546417791707752934096253730243019573067697516796037831306294536093005194951493886516161266343947256565140650921611985884379583082911713581245325160954902751685314663352213781617303868600355765027533530401707959090114079913688057650638269436530631247917515431321353161483420227649375788632608678713687204022691105055729776994763683599248517780072305183952725322019664049749508334916220844121811322841012111420896680678130564911184301167900753609740018201207279844189860316216654939600273024183951486018020594381781654601120787830297531011657859266726493762187267452004661418215626784424577638197462333756890205025778016782410608368856654671562976427336480761617416698321087828090940854416749155303336675929710446915760463402091422379354162911352064855712288157823749662650837687062022064180542951935075847259839342507633509562101967681185740039383291764234329214561154271637790797058854649116377009815890159747187784391536975632820208293118700687761523893287126883799624576048576979272400312236676153107407250792982003761447698971966197386673828278952803164858078336469562748863791126649984605124942207815060226588499467407432508547324547826931495923968205173471805722682165632564783117910539645863226514608694997159683607915896604943710138040977100263891156819102439811142119069135056159372500705790178281847866146895736468527846219542758188305723115790455868810841592501154946979563373600262111927991892114402034717246681925667442602898418842392089739211476816911890188839574597844262795374603708087988387447640384330323367847175136712803203078698330551506719527135489871494012265867455090751072612504622600147178182085334161642196970069377606106094443413131943676268102221582440436991373238042384821933715162665975977797002529766120477585248744674141542716064095726753264460427884586393841734455277092790465922784777950202778465367750090368675727560452417244643748243347674488309401730389631813379500698922421023487274561312484685741141132591417684832117834960588065529932160848925487989732058167582729481407495505284832190285292140612962741319531117916617994317392428390741703717097989754099118420767295260987737354792555971070521455178102407692964309476836575338177983420178407761466047535628008907121040376991931393193121433047366663851426765562733951079217440217406152892884613030357910814734449723458335995571444489315354042256221171446099848532110432833710211891981711584326782360018801537416820950493743876677769643472052541983794501708911527000524199807068137549742348668424710831489863475713220881037366038745083822781533626804876469838476053897623409353448416015084472678674040113953633603989656060507150292466569988688537701549569685291705635377558345025321573340088994004375221160241471558507276356504693127896539702995767699976128250135563788836927276419888922643697116467580528918475993748694104287937644884797706099409146856588919177557681597687628129540243170885164610965722701552905762036330943575717224748530517097302757514509991145966651385535295700271726447225987814997732268015831587053919542151063831281928504385737183720252699535185687081658680949231586077808978532936932079041853465281686373481363871292279677317203210941710869818386436792883049392857509313203736585403114546822311521913951986495579032465160654360683025604615487649656198549956623299666767705965604852465768324117379470040399398285268574440729861131209174214642193562080824883128068005936546710682812904237408284436137778377586922342112843010930813488704643400630132575031913340430624391758007545957538759589757052324401463541598937151418820431260386856203096966491586058339021158692280168203695396054189884981045495297003525750537285266703102243849852175552057515287333274474521071527499579047990540600134115294293324826048443198494918293425633632394580763314515466832566211003069162485547772342225995214996991748533153527173738994241937053093962577592848515787789239646495016085792532107962448131086714577920679428513249627960910518512935637430206815308251537798783882037199591897590970120938116542780588880167869323401279548404600668790574518034006970331327752551362112679263425406723816548554997942978191211905904104295763078653944748853954989089317621268093657475168065847774121162401015520070964262752913667684620893234244559324895417339894542121898662905223466161118894878891474991902675414236584192935146300311665274202159823371679634850113813912017724391431436448577924819078964141730645931663163582359611630170508788962203766434579050618394217956119799266437829893747853061301747240702668921051424217143310211009024652309984080288886447371768934760420464865106536814120169265660026038810534770314738545275650089219167308376466275030548176815154710006320268991616582871676422713636088616838935896267022331816004722471344468245870551402686059009056241297135097078235086608367889095623338450467975943365286517799774322665904150960911357974122982076864763129903843348853294429298560818886176400649403779217832922542219187190602566749708616733529703463545283202156447698623924069843314872511175574776338381969954725897963126423361090939045864457828616151730331473702990686112779047060788122589183742464948451073728533064866714546538860992620964408956270351568936797696555588190577130755803674533467546948025919218584579664449770814817466559407008110384366131167366770162681176363649203571863625710737732143276744160465050710326265284519601831821121926404392963175391216700537711838216122813392850544005948957300052776653060628568777525761821662099465670789780431570608213150192871092780591196134135988680213118527682618071207830637136062815503751818125403371569263631617069947207824681210134851527409396396730775791629631234341530735599378892435509737930295087755124589523171621444275212908264772644077581486852636674001396141651406053062435047561438382724671275220899336202310227402764582055672341475864448269251323116499920421680464919631365579229335118955975165501118532917668696743494668231647428342563046105453465904707882025072731276579564011213897516189074410463139712222132843448840093350953421726639418006731066288815809289722975211740167109322059483675298664530404265241899457231937173308777659318374489681693481815549549923190557336255278705239055666730311289906896739555211991274352793285628002328092530775590900803810898229245367248462162876628928829564353204226921973952820894214394451442933132457249076021143134055058292503440395197617398132905872586300061526431596223315063933260738765114145340537859904718720853528166467742405527541983557738516060424430750413085456135521445962785531989807353161757654726570462418120620294085599892354392020154276370441212945449270182651879398232278823020335182068894544785621902003844684281454095593956677192664105679844321446239802193175482176728503464188838871014776824562261565100151862484805135932383774618391541562120632842090016097265292169499805361533374971747471452956799559861715788336597360237246816350890675650380167261895989839332515727272316866096704235180154897863017854103946295088104227996262591051490412244221128499204005463706679007502129451567489866438562388483658680941412961476457767429443961156575207164154339237000022072255098571645592735750995995890227595693852710860318675901513158010234181603480065602669099690859724700018460378547599427328554918186343288859766545961189579243102245611346985033950173077656475644683137750861911422437580983474210502034525431690302349157893046760464985763993473072186736199206597036643875097600256574874670135080150792275799318781758347315834660045820726847142890607041345911966492475604022236753350256422321149602791173328067083080434252087589458385172429329898820120333564648870608895054741290512092092353266972721129461305819102469365070114483640952092427529112503472657810164685073098168240512793645379951711026967240130248359133348933944187290540385260949045587881320809711357982376807740497080885694505652880469549114182213001004295323312156570871115246814731457245159642582450573231477965471675212980218906547868253062569108956136752545954522940229776138772270062187028190310562737316231018098891240941603526072828382820378930762366465706234111088361781517387557835313609815568108215539055733760821815782826301119385872180604230181316100821715993208893781534223076147478333497307446615386283240489039209103150621109627422666833422528252537025880454048912994904406969315767806812105802242084246981499700614358381952304719368700359406780502725906647662391224891632354324340069494194306448670975890145719962535138855404531427785555294876210460292800490225080454331279812254757042019239761659491543437980210169959190210278089666946118114807293773650833827980380219027996587407605603178489717447006139558292138874933316896458853573542031835974039585265395515353744327803589312354336151108647243260985023104980821481149817837527061656660228766702437723220628664745834452482882579832940896059286439584024916032632981522316395501598626986617065881451980296452340741440808194117437163130531352157111317613985612748681806238098342866328299777628451124802862349968721703890185675275753783388638982236841195547507824120846093342260328860490305743238989487786236502465187204010528291480898643721059017406479161859454612128306739225062558134298248046459004414227930610820621127451018575697066088886317083872109343336800046723463307436930521280128497826687330655350644581794908041586994815444447871994954636924996483923902210876261230911489834697509428766574023883385086558447956457545773875112085549386550901534881316820808399565650923063016145617652277032345945480912197532909207063281504030247262299978792724013233977183750709640882334942459671273643583489842470207663310362711017944605778138079620423367018571491301571332303759380383618860557517902768667313993067587555918327882366576903648979248046792878048212328973589091755654626908842380217502713858895553733225948136894476761741262656765623740076309890460590729581038014649744307878232426544168934540172159536449371795117445917945293813277940874633266697064123345391947866855022946650920566712965465562695784019251695033922081919674664979118335430427950681039297715578421856347323457962773121755850827009990656888070389437207703798263101127188146670956960509262363248742462310742430825394147231443267520696305101221017925367978535860690841872558202010867782304644335284930007016230512238956106352319807113186616328493683935017205877197174597961259522659805061008327887793488500025841014567943246738010463024864048993533841147974438790615702899879284381282070709289397468654502050433533023319519890798592932584530677521919594739750159307468137669294802662497432299869230325890980955228573333993383401168244019435394157849045841218580927043395128393921579349937061864933491928395080480212643863476696866715236569479357075253797716606398688290711239881992000259573103886619579043179741320042014161664924171604199390198885693697865751649682914413744273291823089364503879751836458951271072364834962918524238548325358322866557977394857132843003877843481123760376149304964341288104477667398407732043201124430043715925197660693289078065529438141188641279035243974095472217607611834267976016318042934905907092288599978725900597189414762556310455410111969459096181891975013279699269706219354013621621295767300945984851782400874431759103647289915200363782454336908694551785680915713632510673888570578474694393014912332226030400640107983882313794978276291394338061726167085046106839354985280426086340227086307063440412157263452174371873218130644293902636410790522596892279209912150947976426272291745074091458372261002972145612967273730753970548717971703683480135880608833200169325505554686841382490597637444060828752861544809418832883273627394411545302153549438126136796865231625757653848601535879289696568976723975928339005544496363494541719177200460076329788686932624585001980551026281681698316241345332205164596368775281832762787190992973336087991594501381207482066201668403996845287933968274413447640040719310152587318593760446386839166566191151202614105041487750032448330139603314583434862240216026993264374006955168313431933270107584603157056891853982527012660295945099719991517769270495901965164023463609651434148787560364126929083519193296788807435854993535793948116292404822138371341010258028697142716622533550078403975634052021510905721474593630353166673257560178002833078160641635934015934901875687090693153191984967816159762796219277567655459085862416915067875962082293557191388798581760640825889212103258340453732952891236932470599546324464001498172039265699811494269962595235334503900221855097148744108653968792367451650683040693691955527850774529795672807670925690731251466213956788349730046621255996719561656287108025150468975727231388478198647771853960802002242726572453852657262878801207133177096857517138713985354405397110963982330640847003282895738771259663632325841585996814233916441123176036597576940010447653748646816294262756377878068218331589467276380234972560115778699193761557476158543123022611471835262409956209824457506391629935333269438604092888632818653823832477848754325961913181320406102620345914099163354682665883384174327174147520287060186759110256809027622103413038161074513594475850702357300745762015801351537716216863742745697215084875639486384229318673555675482900427639803675264595272906052963542489100617911239410198786323002960399879470521421218820989548213631432233201012620717482209889001292969538555010424361364521783459856810481214639186686707045133530165708192364626905030403335815733056090449458816249748279980810173777637569642712317144398681419214893198715561253124187476282312621760659155052236175989763382448945741647290227810269211119449474582668630504536315352787971740885063664991227267411493084953600985006202056656069233184784440305483606131288677535136622507910211647180548287908966293064046956879633252166513134712969674243627627076480097319482646802031168535085948578492744134759833517119525396936280791320769366506021858728654735645080689346049886542356035231445424073891716002997214108482803137144645504851853847379053137316189362459030716654343647167946557062866592742114650964671723199720084701134406170239496271016465804339042168773351214098513244525439406318589377679317123000653397114903683159325782290148166215412038290356577464682799297549905468976326571736617193751955396252400546689878570579914786124529585039269306011817287881274143653366176960650024121516255914084155712459777943515628682604493982714354976277190451016257922119987613878624677786507779211478387060966375274205548723010141666222409553344618783903509682796258099754528605222304933036155911351232843654563809196445545557741012813185690438393257168869332487352582751831436769005814527323876098485344960663714008699142533563182302546505543677176644115898002381928082263100091163885049720569549285856862840846736436205256870036221216993683891396121099581521680794708031633537653322574467078274246205343086982492467321566417790639631668861529344915750973010697583412222944781183391683673877727497667311391449920931548683010547158391756079203550394462569957540434219763074985389802803300205334667027462579868846909491882931901696566967276154047824894230189646068161002975418190999362978688170472750716596102289269422454629202771582946246093097952204141646314538805368184581881466205291457620898185217923278242283466640147641199268039907249941846171035862853669830573576876433725852011470687814657878724695104224145947999554919692847038589457697521051322406630008682518770498723685235052276987880885418461112742005859878288305414178885563235787086621350722202087662880234647690387957641742777401892559714665044172270560089350730098477511183993159923123546980766734495566937589380796998115688151278397475967420728091839307110744088630560039872552538654881058523632388386498976780306442700668012364909627083837756779021882544676154024587391969589892127806771602071711276647905183664013969849228209377986608895183149980441620905656211285727752457542837393293152683887838049966423714145726012655688266449196749626074558077481315410187715937805021435419987316848032275706042232334314574298182363617430033733196969529830348195509905446869671832802776972923359466521619555529063380438592157436548320037469808058483521510433182576583236702572420895854388349117239451878423996800426591031657277839279732336974827206234561054656079882667190244467025278643589660672377508538974424031104154274527425577659809950296297443942925927607650556207617664464479054850496966735144465594683772102232504926538316817869363335612286849061132302870981500111826808932145696316284319772692756540619670919539491096404359259173865971816590347052481198434164493185268933283710481025783025207417863150681588716469855623894063834311918608169007878484179034356972582773849259195654750624360099076048966917151177536097126817997702329738236165764931809610262224770263709998124892527653786312792624227663586965755926719625183915341456963379642418706565732870342009753962110295837911002953604530920389497350294082349521695402948592147929665778228578293953386065971752277327595253554778759533293828084687040507226530511670259707532967433594325265183763235394833416478388636750645185218680014947603066218999253437110592752689448786127453256668343424795329916248995488005301054253452880200909180603511218478346412682773394689571053371747842814320306771109755993525418378966104847577858462943448002140271582845073391870553342712460366100237430826348902691825840948959759248491649128876221002818840224508322478512287885449171051008271004756773303410497972784756460933781982091545118850427628974880644628961012443656006185377467178275739557509858471127073603983138283193530598381594047741668429052202456853970227642809545635397116873289448093851665084350039925478055872456214355431373147752374784289064863944814859477749328264121142996187693833260597264387061703200915899140685260081678818021150651681136907903364838266778554747903424087313663883175366352406807994586242569253901332187783378953048659202280774860650799094569153639152944223088068237740557404595334522039862937282407591578557728936070996141316763264223230212336789230835708104581279312344780259692670812446990010990115741020054183933723589085478212236794989786596181010625642174641047020925696779927682697031970579727807917693332830846500417597120788227408176378701191104156057948251744659932433198918991612693469832413215418194654530294457623688416682922187755438950225839949503794185792253842651696970548321223591478433261923844250686999266418205549430699779937232307464122668589104909317091578858959222363458209000840345709270575220995607445048681895848079447366548114755931611250664841979117236772085038368067747671912006849347910082503045588067234990223900597197297693714225094860882984074811055747597208175452333841881696412536547389511992555093405718716930083945897955944361478760801896861137326520072499165183916603821858038344092784248776039146465454508774781674024524131188403002996977344162078868137436236764705421416949490710972064091232915405914511111357498423912789106449015563080239339102209531582786590921740982126186027844183408212941556477193754105177255079615003581138527339762439813018203671686239822095516426705203858758908831664273761827300407673837212016266922284447075005645709436127549143153369432017692947998251694133248245949188066054628596965155515342888294180097840892601246136718757779541064870661228793193184235678875726369123975093173993666693212524639393433507045112619292948661259646675729261569355109557265377305857113576456151075021092396064045367088976214382058635427648921535540444591585297955181179160922566448691910777024547656457986765956225777899696998680818036712065041722382710824354102321585555791692870594135278333535781269938408544119496461888992809395702074408094789963068352679201646956079209765231938307505254180386010406170620375262274959292115544770452034089332291627885190315345963804854958546166819329492287865682917975057583133745036557822921206570591600807958498721710875444955658741249326619265122662995985254599258707153243494552233094021732704141539827723509124088279843299962459434357094575838369166051399437429845916872181686814144669601604829243869584999685802879460837175414181866236554820416566682131879886310731770909278050699649561200527381340031050152610302211540027618162992479659629561762092861260170698925053363730891319368181076853632824654789558781401601585931932390613992355735741009218136980390592362434467951303324448026175928225080149377319486108285954265724260942218147600396874875032986993167440230865193512873393828732489778756527065279449264420634310932476059736835451176628322926771865771395604815400433081713297125524856640065365169325936133456765377552332404811363537236720227411305379774842377541151861380811462277194686626311863352082701538504146734249860187361975217055434254922672204502795162181131499559219902304199872367414834079594770009954069988177427241038508431106602225423613163246406248822397012538459063938149118195957969895318378907805001895069950450493269204209417608583849103359681261152795034109179196736929519258928146990613356389186122266548827259607815533097179874429599482177470798817249004610384029764362220252705024399277482912447950211002898715175171711840556367654893310140334120283788385493785514875220591578019877354647717052563820216639926912493530747954293080536010426497915543414546853211575606252496248636269353253437596145693551030367564773137563216584025515424121589611583693358599488027571012573599847511263139811689962186764046418038250693123020813605186801967336581611881554978898422663089483794674932707447822399970176739694271118885071170976196379901042540672415029344175862829192638729673929384240301379949288746310538350979161953057092365541641681844671737774701300315030779655573457237078954060451134033169155643159446639433625952540931743670325643886855780352676886627558481795739009081617965031273026771121090170132614895809572888596635876328018323468002408207841250782716005448649178882187638056110345113669792992892928456377098183518447968245497104589249223685273570295612464440041294095633247984436248418499844309493223169379266824753459302025466318147481192718899645691898624747324709778643748252699124822158728190836001836058430241856897501351070121016973037784650396967819136716700136453694306231525514504173148832611210993639863852046749604243061446400658015950181637535254993133102226761593636838517714119910257220095223428219921037827612021600354529796574752453894154821432041875619628091953666141754713568789278698451151363674285362311002770421110731822144254686185003277393661331141526468077455538238516009782638410590127474019130019491410828638713149829613371990711211103172810517503377728905736195622679048496426479968687730672746259355089614800831625144216578937972219859385517489777509329502188947948535368906846355233587430029798869821301746232083441466649327431367989082640180251703854215340993077226640027952024603693287817549448888885898258818812608969746456334275815168555624805588832317915961016084066924872724984496765063271146741131060370379663399228233855837653179926875111931199202085190101981920679676670653512891821384399152113986739039889433273285482607594361763911099503189796223746582917028523260397159030315665810125687827272788934530160135075676329542824846733484218734465426109719535968936334584308538683041574346633811467771623892743977419925422795954404954638515267430572794395523773835031766804805456710438224655328113543744044899036421298839680794266599845581248002912946472410510823099990893176153674995708040432655427898645498742749040754171576003889103457508703574627136404472635784099834607671843032505108701617472811693653131324974297159255350510691562631896901517489308227376756114400929398903939237960628305699227154102300908757089297791063342862704172522559767285010706716453219142659789075272002557608601930187831929009853116482160368237941250978583686504177163651419089160225054903547270455648262474204857968639208957583810300656740772103003242986436235921888203501241843664666311315412903587307906630740071630951725066751655706965379778433380997313629299601468096637084208184689034582236093921977679078424980312717377688918435485226534377339255429748217064969715540222550549504644176505273117745632339223068061642085855591386458389176236139647990970769437326859468088636799529621991473654861779762479085880757975331920196668774695095578555329384588726769886002803967517763255583816636291200095946643264686263363199536137642468951095206645126033862333826733106622089627461570597907109904278147347849256992569956087363801191762994684307162340936773521382590633479887201701752449009401903858052780999610581553361054244651470238399880013946446929091790538338425970152906042652169776432965711236466194066834584981317794783311454434207119957208251412059827196742925270307084608636745958118198395413611173970223633337348975918520361127338388106912258142490655553506335344490201411571572728470460369780939378418240024400115439718254765091174460835209938118668857266229079099074672090828820296216146926806054830768014940486801006549720222642108736527409691321465132482543671445811420168338554236831222676842557232563375609159738209084012879744654395303147704579626578082684566574461883917776691580822547998041403938750221416227110298376005125574295141322112125724837070339003939196924549507197159001640883913623175215284245902179730112030973853128439228044170283962509931586388455468828641920288506867712008808709514620871436979052899793114259927624023427548619667028915382368471341030870315468279697225400316572933339758447299663888504814727971157102087682028246950433006191069533708282760729328117040156453821363703188909682356874406385537137020338933828177743234946487884046877601581976767083348849441017979946338014127984197346468409764047200987377198625209424947575047597363130632204903770262788422409308590201206341065716676939680799318208985530093741679862102514237254534985728086320712725006852153578773192577457916127245636883586004986567757211661453946034505280467403872988851248963340343632810080451243593672911729036189781198894924719731448936367928365362400332364947174110380181089986071021511605751719347305847896222086960513796788958619593088734046135588974435197716795658558679710261243600716460416030576477771574820635014890909767653160017348585524256803565496818982604086435420921530070378077434212341951224546373662398969079240460204466522323493177084147114664324346434283737833812215311901767714376349116799095527519727510420499189157150721167143642340174070070283337156066607043436052675251380787812989992215979398205035578805200824956390322691841635797115719311687675144459065678247797723898881977035647528082963174207476180244454479515112472804064774241612054622941518239154428310592904833778887684138805353415904528319727302875189413425881506645062054589452423532892697483683256960705155993496698254629162290869367869326426623012022352764052820705982924827890169747791633693883079110012066400789986374205245744997298137496298814651020945474437272210487595335832898597924706633510122175801445822918762836809642690736962522024924853984460930282511736086558741159873204552046908959869897368210753888986997355585743163278196887138670236719739107690710566010783333746686548549662936741808325698307586179712724302751862604675470392054702484163055457922962176744791948677229117153126989096351837887209244620867962497980542364981672633103945493092228937355033503605569917416251545396429815532470041387178494580223182371508366821629598525346408062444540575810820787434421994089057147387187868878556681853691731166518164086262640254794864771638477403470508113290813462090115602334706197353203809346493341741526391784316628435672787548173567946597228828775730152459510845990671688764134950963803092990546344086456233350148640941800512795160128627248987498244672474777434998536103622461745034645351317125950351969611138502299621009859595733927528786877415906428533488625459313643477856005610879785032745960377979063194678695247590389239889732531875609346205076630204655107249052246598900171447734275939404497424853504254263084684970164574028060149534445805906927890552604360754715973505881799102186209509172974750158187028523352837408674893255925950078922925505339875259017024632150323133274736317137118552296990823210922831145759796566589851741253378055756325542775320897590191541090115084365655390508163146134801342597679846999462596886944015136935413834272027096912743005326533990661765618692023010099681750773821363960483719673743847010990162676031828371726002307325377107264694398495314312100921646688626408924331098104069644341169929084804282050725037086073386327106853919607562793614572815337121554622425716801934009323134040310005201839571779834574457873201788353546305649118100959926033963696704869923453346325665086257613099388832567634912060994863623464257656522987979708456824388772036633634523510849750127917823236586632710997822765826098230896653582678359819608586113578361764547622790350965362513107017166490488447820508053108949202778884970657158588095234832354124393139625585670787491978984760375034657986182615494073380115457712148830233115586595136419298904037306928101940128209702566953335392446547015727585522456201590998147708918298446996323882316367405306115994762245295516465850519810751863237451445968876659198080410284497389280735554388533293882379982615225434091489876777920811994207560817030330963490041390446674646602809514423033834203676221070930481980245221236699177768420272228244235370323238261248379414707309177204531497344425542057340729807024704938033554792242097114207384127383852520131131462039874650349304874819103969143456824434281592140053847199213385579317387410655148568239564561939006343786701594655453428288102573584070772488180610298833324515468673355365614759798562100168319356674075956489322907547958571638937736793119633409451703557791967447206797984313918171914984206984389454507850769527476894796852049394328118362153482971007192607276191694887910230411238831918174359251380461112615064526630312379715509541558008255485780342394634833908713105680320138560243769715175897715341965275110753765386004075718854694964013724175164715310845368385676822985808615369720874280954485735679256050290284214638139978739882413939434944255914867871478857492010963846451931030867004949912003643249747974706874012668396185881819707692789812389233496764935379427513373261251697623346435065982035771460276914456637770918378976989210094010508981458254444790420073053782137810149946993250977662467773429799127937758140062844330375684885837039357515652821899648486778465883199172851748698207028952994161566785430259660375408144075274935048131219700417794196300262936855521364825722768994899685085213635726351586500443393597405274599050586400748013930677644258255101972445185256670695158066361320740305500496164873437602754919199350872546021876052352337535999435215114178582552272786847909152085784193744823552530908161621308148182553699328732690641019819931176849707848237599601599311956752775932127248175432858754546355892722066346453599686265750433266563631485580955903890691108980672029858892767144969525027536056812782760526045555043411820430911649594002398056285299270982902305419648914997111372140053985393606346960715623114376137476509482123372260091226768003480026819086589777248646322043944634527092646497980694899408926652341288564714120670164001057404342222882752048760511989358050475918548095506358388658436192152671183767953093679374394403251464052773664993546748041767761716376688383075268913603920385952913632088203798396091296259690518501411775596788084208062881477848617260108116549954708048736143277310461275193117697111059909217089961016199451203328939854839938439441651052529348626105319344953843016412472849879898861712325923612995695554209495603701891848248490817783851629333655168444763622594218328112183299395693790157794284456846552676765345432017540596831526499799249866763126422571627450662774195521512860842915705556884248888804571258602364664791993865163591989516796311206769081109864889397124661393574191138868739806839131040562662851697565883947178504389481503637981714480299497611159386053427186563672503122980960479120912533387589244383539071983858848944137873418729125495582624048767648075695154177285507104694000382089574971865753324299554459953595899892729097738661081863964214380161176743957585709885638834777047588849506785724510705633275523468029371762328525220856551309902773797101038498416073767440184433439262571069048145402326181995444919860907463579011609166191480268407529684991197512258474679704148677203961781375929853375880593011168168904126371186017772349504807477234455206257205796765261279073619276529930185087361181657932659001256228602303683859253248620783970778346836063251493228761752990168764105610941564043686111010685921174403685513883843676249086829839002472486313053075230669643551346075442793390381086616042092893933352568473419177497562260814333138795719897369235817024567948581591854805756210861971612187572711221161344742809670785669070010583201556982584004805604148161952837309193814503229452346500553892241392243818567573729891269833535710117140639989762976125746332505909193622943429032374708257617485440090516721585925351884004487707603769657141724027336627441309855949298420843916426909035252499812689262174538413439310471041730883132199737080191535140112180675858115621056239415752648996234520177361208894946033411775324679872185872991336351110333950239971490020328723868410227141284413872437138502717157237061061901078275452468652899379154492383701682149915658578129541601411827205952343375987990714207648321082263058749637358989021792743615960398695559950918200168841700504142019999030516858710835852787653482911777874873537617734820581328614157919053098615787353179953333926944863992370260855121065841423070448784010729136384583901640800465997565313023304362301671170056750852705013084619773043365913826219164996339689601036517512156990683455204653014427901096207506717711659181344668504995061482863767623783883792052560253601153547631868028096940262353829078586168898223487298311139927888673438562593070203261161982749398943096401194006816699049518839834507697338964728845636082508769069901410008746986882593568450761303987803936425156090519904597315489012035007364158998792917122037948287636783367969303133309769403418785703761339824572804451709748182395027089940674600617171743638184721274269387867122893131203516149919004117365733284486992450140226524126742345208948098564143256318931832321967402890216335591175234963542246413121142941853555425655561267501519359253961836478780521155650406357149099111938809782137514840176430890731064986624299190185496597230310356227356562658380188137063985648634305508849341512143636582745115228787793386977945048172780886100742979325875770572971946710702627415262177407519543059168732639062478262642889438633937788958870116610566672380052312445313975225885776812457145295649137210224370383035583877575941163347950803516511939461122413472496987293904642825329868789681021874363360457123257937116985918182383092565492623156221748999468427868782850110942294742050704382304168902111766148543959500690691271194804157007496105730211052091594127883889410872440675784674098392887693217865838298988837533374842431815927165310990897459261755021034493706781618832282208647247102664060936189830018654478232452668832082280947673164349700874478458845593291442864472233557459641619956890891292016991574014573038366342048560702304159585011575720168931469217650177105805505237858573671915516068973915171653692020458247971213955351579991539373131992798981764937877019195540972913771738639266533306225674434330281903135134122018138648699122652905740591337024817832483963526344281777135849338471031701518833052776566309653940541085281702597155377411788539436288455598906828906145433649337246385451598808970899416707214816031404300355697527964434290012569784975215529611714695602527409690558431764088294013111936642687372704778791776817451752993282461093704444136808272842417725620130180544537952693212046859601091829023472280988604450813684808998978676739133670664153922782126618573851230467223931089871726632159132450885786887018266473758752265721390865158042225075460487513252159167215893714454035131445001018983313191777966625651233550745540666813584239944781922738069388472779376644158826127924596747727062491380935631604362467605932090023269814143168428568716162339459983811494156221665350544693603613839877740665071289300358071189686723568826141876826524331027751778400869677694161365068982176338848286009378238208818013257580238343939143697257407965585438949945122826879588707653140346849657188541877333097378617528286437951587192095183373232549529857106763411179373770205603666835562012058672780482166450333112142517735744752909380980304888609141466417016591533841976071851742893895633822263236891849025163779605828054448695094268952730031276416683770023872904828543066179185310250926886755899460177235662076406884555956463299572184221272155688576948112224951046777008061792647105554694183391216687070549356537573550824059366633900017120188473804145662851096311384442672161646251960042553204810063406466251096470307952292372644583705237816599571426812347408285357919279000850317967038471301215825798182179385264935472153157675237140127081867980699351443697400898017169124025388113891262913141664649524212795600825113699463555939596500310556288946561278066772743745521072391555527043702797147199022694618269190892357697361363676689834303415275998462233984314810815756323189119226585506895090553533008415487541725763631417097713389444461520952532083398425308253568725630237082317505335763865846587398776553889514192050841527952322097512063630197048381587799027943931384340824661514025877601111649650405085531960577263401474477986274092554273862592788761936284830549749394560967929621201345319373315445686191840315410193107483019747662638755748081383424200977148555566791497035680403454801501330744127463572550075391985202990341968213255680146331143805989100162578815321332982922025797854652712953625388383558582091718666775701490847109320668056717685359093532687382381646780467186634735253031038254805095722624242467549868409618314957405464966279679040823875580362751074288732600292366913759468785703890227826938946711884431571490653115176252116619417555090486860501361976215654939345424460847123559832916146159536140882804870675305474825294626566767257357296072196704103085979685643880421559375197208948980091133624570010125572799506665619363095518265712214688507454255978007081124862463430804748684043414945423164466525426368944455237949418259455997030119632137784264166867247610969932941375443375980427686045883851013583985543805340270491525001964302913591690977570461765180145960148517625845065490024541413372775808550222387600601740919391620907510172425008618730919914909184216240082911616759046582975600286846719170583937660844272754551245876037221838210270401735053959668099726759137768203221741780936701417473610211844762702353358970321057271314005276930735094837797683410937111863148361121350594783364585702865534722703388299995840765998359220323607189090999634565410057986350296086437766130106350111604467028542156398272316314099356451650034304365923481220000039584974351140687988044453897135601230498939743412125361649564811412620489135091142850153325605842562193918087740991456403449980775476995927401134507707184958651863368820964183979372271442172697472273059840093704794783599808813106317658863251553998399928850284763696571952330230541277814642724100243996835309349956568098382385585157156400043829186670552545027299708910744566439426464059208923503471799626852240662966278478914672108247138381392030113418444907809052296205577807581004748551530287346967695339477519421637247708884574357455556017755066620159454433218253248451207999860877990493666922363511360522621251798295685031391714139109669022331628341805010078265471669552256110481592443050773672010237066096519001087904778924231423041312535570580538700291712142734203943352841928629525902985152606153755111154329932800990389382442482008864803019192616527362159613991250735203319046565002464101198777685754672638587382780662259288928274379018062279757406654705036080385010928952539228179081621691137562426540208398768788731064207204118468979755325409980934690372774317737527910824657264270622729274564504000815994264535452622492072172529754249752130149743114460011246148622515944408618421865323907035656921667206243149684367595203271359977555458216899035505802923912085661368675412848965327218038137006740611844399519513369987724184422757083166828807978526865586430539179016734349796382974508556410464959630864588758214594058578563476087658643399922085528572436264311517333304774614042286768401463559576423529796792043624534858861882600812897211151422596627351343947409156093664625117890630289224954960459289345310356272979208439170785454052438967683073196551833313923586465370039555605223829849946409125495272991633172139421705401063717864251425898496273509497688577194078209613272778724943100160617132187294044599786763704205166374734501126985640023178399641352667583023431855457637935019768002146049977179076285825458118492896105817199206257828912327222380953426625977133588294974396638129385484948133391616222991445128826456579119061139431284013389007983400910191404146454842823060295925007401647471225045838530942207967007925304494653822799769504570448431062264504453284560734697220602151419223187420193462481212906974539090613035894188887119693850102516638836564770562134887339119843879456152627633819307682057837181925355474826100321385169408523350209862510007149133563727682750743355437300612448859195173748313847764578867248251354688348569967515795314751086942094261744714107615534085142227847589576374968757268355969216310858967205116662877328190508400388791954604015790934905786583651217978702428573736590345894180024337634651529756811490921261290056333152033385245132160474721932203347725193870458891071893403191751078153929181356350614480781604366204795265977655550339163302393831340850510149870723158429057790011907246413880501804870044561283759447942104028352506239337594258799160565336528687875507369514576038018409240438221246890852513200297070855219096971533425847722851213035677041047671436947724736473668180819115707123590847534845855058166404903817771426865200993261879304779197109552447821231322755238174777335625919566985668265411671503030243816527659653440098619180286826562244863854629433254187831288345896751378688750612327995494775094340803351061635643176825799990594095969949437822822986410410620657432785716217740161334195661918400609423802161206070171121285966502417855999456153057040789537613261762619657465222249608611979903140878584276558803569396666410339490675868819225955482279354778003819997177152896775404513745894291265652344594447142546136017913474917491084481681643109537453642341775705150971491921215975660457158647733503754636971954861448590197076568451520131335355835678000864598541410929412371483616946710549764411692934048604672022899189897008529338110072118762149138709573657912054481729313058538950572769352972297238365862330957008441093325865141666009097540714990444443079616146651534481561323900029042970670709804716034948827313530724630704471455701903314850988722370554640336223725394486938977638120988163371884907300981137584538042858848425702849122481169660185144634247820910579733227936956317232242801094021138372001549023063933482045429253729713473566006964852649124193963205689731705659500800020230065553640151667677008716234019931271218129093208022065655036943492895484367524249950641105533206249050811759839931629747118735217225856205972342804776991407054069248526400767147368715339828267163289669712817157387636679886928721769532313737454272853574666622781960973155734225053363173910051449450206354046460034734353131945639148974084556110543389436330729424649650138744602582346068288908778471113606686711811164716259844577856771459249986708662038958784589828766556011730665367334284014944114652820383356613445447618836590722369819627889890249251397876399362185845506565346282426599619580036603566221411195735114027040981915659188738135287441451828914968638143228156961172877610018413141332571869397045385839045512242874574042658667604804541224156972252781051947841381824235594434046782125039906631354151223203716465403009718776771722948462538834857798416506925666734158509662834752830914134480563988060886857937915590923157639946531937455651304091474393482788854527179714114338571920073349844414050726458822176350398945259596152692090495757758638931275608853970838981577909522135230626703410895998239999536765961081550994476171913105665042143466715735475793196667540191556309830859304964477331793807218271434008626582806730294861371177324397480447102907732875943111276570358161234416706546069018103017686392977191544201269863664945122308945052703052069036701375540158069849084818413507887306284965577510753501072614923072458900893080212128850870163209828890006235766410012426079988284643527326163338272981260879305982478224693336949910815766110501395152411623774974437886347983297756747198416016969435736489003085728648415419219196746406983501491694228187366128228200843082458548836123179728090345551994849427767256711034066905302190034327835902387574131040273746870215935372997366323010032849142845921284528518608055053390089721679637189946882855614799323475829484202055406701789406327469506410944685380237265252983262199313726887936268222544699428837037768372772070408499330953213613503577888182333743523204003333848965933281512491098569526935437442804748294079193605052846728418927857265239848450580301602123143309929520929145725867645222809819986069349763665551837477996728741587622754036912763606776615441457719409411328307611107821464705467282268343700252082539114249434906621275282050774623747348514035697965011555416584546751679554482363709752110948869149317220577070128079150351035439476587851026715933255953379782441853603421362997090736772710358652327914817100604835237003670834362368667882728728031165971504060148170395746421767576400155967534559761687952379837197393473961907229868125928531261325139948825409766645799243592152324233190215628074695482035477205407412380540333046972970461385064745508432784512322036514728994380406126794590231151013212310738401606836847037676241482089634672504451271562632539619064231622299654796043496918466759100018315305208277499652769787112972101917357277320531688309488818287216894506312971184575067800468854774005579666456800819746562022852406826616852331198985016046134794126854059822340434759686594793792596469150232376679822917911324515054477456394413712622566877494847223657677593798722950238365774601789711964070051124462624623169757935213301501838115899905654467896181973732560422871143539066979987782952924565302177799062854904626388154704871483450026149835086047998775971616174964228782332425394005577556664673548046278358960554241477774485981004737835283512077859401491842168678891781529819640890277410941733804325019217362039546885186185963923873293303937571782261825135296850162699968112930547410260708701457104828271354190460055351622815733590952456769984058770198858771347179102336377696104828689643669807255592094690417977311922759787359122029652811162480984077059282878911707531788754507172121587642685641866995612774329486883280352797733104706620872579824859556630178354024727981533179849139482359829207580585015354311726510007351071481427144097499491393502497212145633946487385151346975760700929888841362970913455431785472675791322135002290641101995459226659047167056420757722602471356096581101986669616699525403612748776931258106213315701946325784519882645411567143663977196963999203133489859381669973386004772854164666092873607442881005486557159882552137866693922096014543488115674032347736585215679474925884673824837187980795636128869613042865313698887297597560464798140501019162334711502278289318937910646389475710850275884764700084158031412784466503944964176888551198512759205854315771918015605753643505340226547427788334978325737318808867561435618344433813167404917434440230675094753963377284324762987876110921570716940567230389861005274627349071266279150347480690320492726793813345425740329758901649488561507708208940802814714981806488320933429798404212778477945271588861529694824711742322910691576509182471195135946494477582392091856402144441798590665850690231577248480949105046724795992340260288461572525865931285069541803932419109657139549101292278869520547641029230774807259924478756577195599077135846664876409517506282839795196529024808468953383928130643139393805482184218636193111870456346253698253359283626864598930155358910315649897812695722146617822662835046820912347287912842783511373236491656925292791691563789810987257911009086571615481390854894073116859922722040549407344049858234053843898789827256570106911680977784902017240705145235035200865025333944573120091326459395577233213314124561121535829161017780510851509081328376192135851527503619398654765495817762929820717946309214209363989179490495768193648127011918596478219215978371474868213104679561470486477587298296951691051000157085541471766337937373030239215711209000645408936382861899661104109071679189093797937382103715245213073557999038903598613941599518160677088206392046526107663887203697057311582314161974698445353767632858592675570799858292017992480440821939469869377015662616113581747318378043555346485297651248180753160070669025627355089771299363275709944573618968256952598739273273686117350557361261871004816007913914594789862018460152709671338554036218766588233837655423150724410593818105192974267071444063883970452675085617105957956559146949245690692824190307939517339520798838192648220501269870278451282171845172011531688002471026142896967362947132906151262860491889461519178622363233774195591732149482459787691691194554857716487183909665854723495216957321026941936031084972177528497085592406030802896285155567624703068751476329183962836851094476307058230368337016246702298300410941223032933550860354339434967420755874257003900056936030933000314542519112597794822857721550501899867132623387054728046967491584331712880923964890850428795117861649900329359759704540323230349133478113137039066095253247473319471180019350268993828629802048751405445853889784575437419210719445157420186255606629330622147159224109274949902255859173838670791009751630257956664722405009917791080751300417944815956438501456488125444958564271586489721435194125892956123419417144643236127121434458198810997065470990595464799734637510057125667395331061726326190697074089283296463227439376061053524503471432590319697022055804298201207621266795533807292668207968721819397671461181019290249064507740813023383092955785233009865401863654060899752533173283442263009806483540713033443745266124274790069043255533925632822652132946281809311513276761038853874364083519827504272978739599478446022374952464810670935832336243821394798947341563461554505048107964474103859941311021208876123288685414882703886535742292641750060098855674387469349075317233803128791370599680930708159698580050841419077490755471425684615947405953713674490672120377953209285046133845215338949155368718236354716413152958436202550325556457981912537234151632551354768927992906307388600606921697549921559496152755673561411847944999893992738884916833961673343217865319588577738063135980574565625781186386406398479800469765653608045103882349659595639394771819729154755032321951423171168586813465727594112650413094673442190033684626073989056987626303963034833734857353355191715044245763785476672262377411813602702450374011633383893203269587431815742167367978200910877016338415248244088169501432808905157629296343425400271270737434645858279472628397691621319373607092366876119356758110415324640919765601337855448253456054857039099999413612966246076470107856968426522751875536358745772695710040751634972131538886443730868966445061372681124975454648045281050597598300246125429054647497472234158796886945127178070110233899729553567588359763995133176890825290345132369846737472568097575060758006944348777694176092535239614254632121241253879783804748981291633256999778634112664693124844353538919716509652739508858301970930138656645673872659004898032543494291978492511328631255081622267401617703155481778424082116815324340749478761985516975547669673137969415089844069166211756294870024639031458431011826195374477530071899387354381163353410730236817522711739710780340644357858746563960678953987003334676320661361346820810823492295021262620945494610928496571107232152356961112027516858547705657928181717746241481064921609564732309798909377030764438236465547703288139039398865217944190725691642831560466098341374204043944239320582520160313180472224405460861278673541357352379757202543564931364088797433950267282380456658193344768355110916177143790000210654738087618924441119234835504273187683537850840678248927137876066637325838336770461001448960582496225116265890291884900584402550551531107657159681105377338648960556880124269072673139637353575923641920913382841917865589866307726372951115511177618554647058435006942746036838050787820897486071926569963180704482563766686685368275995095712780158621653817041892461118829735705902241557792911447750368559954069572592242694566621046908588446857399269446691701635830553462353234831953408891418733440801268546972529038543786247529340417099952434663372910011771707375076075016334255074783476740953737307058832154605617950621105696060886583586588698264552375158631816611908891490045917045255878609074961165195945853653563489448282412409499458864645969461239344643360795801631024280788009736883667642726219278632096136609476678787216434696736525906847170121127969740779222663264851703402817375828465890006749734149233569722520947315993066110191644363033691715667995556781183375147106045031484755447003636047080133921803324623969689012852625118515521683503592093701337361040780508991753455254564793471788168661524599424679878734099201396463227015551241125737806588938225619779171572958370132786249947876182851283162933408233561774092468714375347009691183238563423866499178358665165889587599547466634264667409364495224067805234244841449863740708407527306042241263158890266584968651244303359459456022811681767595242734660241063300396338525726756522121944694495263845421114669144437450354227250066190267410885576830643613465018907085934140544998539060705700863134144666180947366323177028505265669590417080115470294791265854190858491940928341939503794868089603367509694898463793522148150746280765778320993864995714991326976325475315880721196743267922110808920621485188077241897213318285736916068527069900200396019460789830019054300120182422162669955118129113859113876123166104257542918152666610714226664129745312443012559643512689947834577048638831681432582079093834014712443194725905460102964259998944703404944950803021509850847358399047064946813191287193043834242113047348198017890570204813826073044345318674930640173524310796744111709726792764464908735602181291239636180318055342397490323812441733982646849678328236661492345288684806119639020247956768584410556496278225447580464150144823797651011092372042685151694627614923605883452795872673827077042361826455280988645739056424180465967248799735597995654885887602675501121140974132401660136145549668962728585859749365227089584671023579412560904287635160416083911905509479018582258564308820596127972748441067750550958513236019150400285256202790632125102224568648060460679871938224666915686331600832656759318574790319376007302397177302918952373703714702422078242513362858296616860397148637160685222248639679582231896324037341978971407690033244508324848741449168879713046349985327830734983412227716341494237564406455212550146793610238433491146030065590515240237811282782747207407069393613882831999489463304367256597662227785113590754641415791223219419982521027310506388940091228215671108475913495292208318812253345507378610851081264050699104081872675276109975929059451285554866693105477521216584139619905697331522451305706263076014944618952594709898726229734794399600004652774216644898459050323863230412232884904978418582919941000707984558851489228305728061905996551150753558279605689289771725960083449658875260967869591323538269146266237458017184355213310971606267592322605067193469277383874342146216123206125820795684450898327678896889070532614843569922616643976963171834876387887476745731620980448290039337298118989620133583465164669271484350400268232767882813624642342912298193353288493698723890097762047745931846735773791622959958089114915454792417387709691151277444290078275338013786644075629354501728050497859288600002486400176168272408810193114459681177486281562088891160917894747189528806718379208983137535361618254586538920486936420591897536269081864209340125986887492511926691067211663806349004264963901052176968878204080378601226375153827963619784310642358715995164793445720937004745005244886957141652597615367068153304824220250601176108935907884126355026617137654676502116594515745749909208205866790337729431230236706603200635323328008887285567930767921970547221991043665887770733917848564089279147716841881048325557362171541984321409113997963070619212910257545064043572715018658935245607325585670562676017518199726162918352259811421901106926249176503664124194224557807872107549381046136329248483631550764376167917560842849417913705228396209743269356431604455371325983437474070151345034947175593329691568989906693170314787413319015432003314348101280451925817889093272485203402942517207874977774150204863091596739218684116890885329103177306403384011237326945986237940695037131592435473767600618509753858180883469486322500795843397263259120342570647372829236115483378159769517252395074652490960724233291935347990282700609424134060639105582325467846176798730738288366894351045203952295504235743816928266972243929987925795816092521915415574940162418517405540319670546035173347685186318164626588417188682144336689259080207200135324324750336154522068450094967987680297976639502578374780710739497457238905943409192763756860415136867136510727972406597632502697220611835697640182867409892803739729505360086378268819489468556898226493506885299011556338284836769164396301946347374387687557441103163918976460726984358910327099638703450248659928794753552570701641253263203197472393643435586770084227108393837167050984680520010507577085817580751726599372629724394226697891481402577400163950293013351503790772936969825901985356171727248007285161367470482111950357542668858515321260063148480620573161599664447957159406482287556780656433219521147787683001081464264922822756603358875072728922462620285351918446679988041401247555282472886185624947173794708278410802037304561602719887547331354331774618815556852735952165048601265733909116164081635264424144214910896972308250005025926107344757537482393815391538098746958368967414843914431354249125802372072430123603294227131334653690810682513637229104313406675038923703574633696574817317864141824772394622073984546696881853472437975214504910920181764515835349528295022325539337689658543307272191329099617627472926439671905665598630051539129643430969315521324752362840589643296352451119921569060565429303015313212657199383618227753280772415351404676584233984926039383933407704826651071151750010551383230700947790186525120220728234890647562257982044491240447076632360079238893242433692889371682308032748633218404395484505106109071076581134810238256925927655598165329614507862445622458986611098500440379548376334493052070802529363579159021567002811644832046783728769438372766126040928799189987933756952794681150608346644976179068260302558664590155280390962620165379287861532205385452053430489822698457456945970120016138008187749533947280595994756399278155947443221509537654891194073747085147784681263170865919534033213910959283505889405682750401485543784421969838059548680822563458599231546429609242117875494311530987074473707469328820690117549782416458701561086795804154650402335670384908591210797617206487434261766434121016539645683354826607593490914293742745346664132987010369869260011474961695503797822303509228349930621953187855839784779369780178298737984829240848071204088625305491242507701067392863314166497927838635245751460268685746380260908594506768095637634897811758902907087732823808401735309895685932001957181449028143271266984359907973378589346678550935911306442629759686045755723061742528408544777178171936513820308322574422274140490184177431307179691710825724725895220101490080070711426349231442229966988399035961750977754370433375200080359637501927169223639304274828188748492359841295336004581236976686073481784347079593461930678166364856152818904445844625997510928829274906420816641843795637018588098110476239147637730037496895403054573923338576608033739803981240093354164128650533539688645994447854578080594404269959481273890987835950781787921591666597241989821589999540626503132258049381504581104242199129822801954309778691585160176763247852968538740449550877564084289951727528104375624785063330698546547831535262806617669944640664187359232798860303816001445331016689673579742036405915213513611102621106009355347504573588498971545323543678426636782592179190481781480562284736650315534148893688845832780450638389302927380114620453932016973933653084992707686939270090636840695914663803849963514123971049443382056653145799236793462583378413341051741318598389728799305448341267366687389417074755230056608337633137443374882859503555881904386553037545124163249005550397857259346322757171193757592357142425914291680572717132042933892137008011991299114054840860772302470370590444410148067414977411889432542018700231328060133251004604271377931640663136225953803218275031617121913705666459976823767259725967356285450037918455839267582733563385546934037091924280515603341019536045888941544341295990542202534633115538992148380560031767385368971154604370874995643023883032154209238530691053603949244100519478293774617181297166354868886985924901327505148141860731896193478679513337238765619258674052615224385771801065916565139815850910589211286610954627036252788895560151799287811792059708374975545464510457883318287771767182494367338042201560153743405947319372166930751869567295969910779721469668494276521878562061597505960734044002502507097040510673795858277756911118959714592958658483091876947931028082161137961989060465970445958302236072224976827372534673514386439559763130279752076831961910535569025138933402604437226085452705868469363026669330252465745189593597394632224536015079197757798170935488426615657597318464689262335339815203707760876129925306569460379936000607480907288376711994437458994544840865238186840993366953240453671087992774848009264123543853587024601107409963446467306605210178163300467376291716231627840309726342582180473195455139304116901700910430092067109221927212119032840918308619053778753036732811167222088741154654280566050886403842998453281588881962567612892190526774582030797612035002998130485434470694232136912120650223730173824868963040861083077965953852753413515198839061493012750624574806471495031070794129071195525790761107442230688096953453288418252234995417472054967752889490521490112733333652608012114896169673138182593501690373200479286377028518935188574665401599232376786940990622987375671371213067297033633202647452942111210406296863338782755710342259074911737287882020867353567623199465258979719126452997024176875667137785676270234842955787605079887039899357135151494100713707119577226860456946943884072735230444906708445383533525577489528743809894731110121304996119994202508961562943765155721140080740235813209251111049396650596168621928828693665401078515757581472771773497749436073650556808712627385320993672121632189209417079273922812818141048888111743916694817177044016112742282872669527185468159857225567468495921122040159062258687103752625957512492328516983039932526107767105259888299883666294124683235406878916027541810672261982193034988356104732764267930074456876302961473307537096572302239759879918831963311570168316031366374200745384345499480875097537033760837495591818646158390502317368806574370876733412227677584611689090613164535538630267041472322147283752498031279253280755540852683882571820916751858033293605920636906528523605020245726680885972169777331769798964390003285511752298184650397312809719879149465255324332756708239961555203428764364770313665336717890486294012544741950902483902236768966647320890845525050243751990694343651197311940136120688186482697366463185186330085013097908294647039409367634463094635436075389131539505350110611423760000788912683706884227635758093290094579904502209652629182846778792052804640043615438110736893584660962853484709370973487065221064724438135987282399026932711502781284145540961172784914126271404876948098276066911913576741390860288104928863219178451205568052324550920280885103857795135342578439775809656965827312899065757949505929782077221458455229759404638725321520799382171283011064473280508253286562024980329187514389029342024603133131338537684083818120397515849874240312561701545950048626987550716716857999663417641525715338998805594109132910003281694519114737679313597292475892391390268165565614704448094381662347835438029267498999580820010235790842787144497034386469370065419279220166549716733571148162605741577699092347912697674862241359953899438256373186117288233484141916767653045386144481546396087198416693251830851926779651290287890698494976164459750104540408307348686450650016293597475801863025316944728765732785686598924718811628730139663785802166849430347148460361840636659219198472588077439159443386903044524516203919569893298308504287076739080870547516658077149985251239509719155667624642152234121768821499974739380885153572188959070032523842033052583062258724486615508652497420698517656153843806996152916150748259471802468505478928383090967420993968933031979016964287861628265929800510441279790180881507889805164119467806485783211269163177338847405800811969832985578667647719150614694845713949677659338016099647080909077702422915740818388843665971941816169167605740224481255335229320220002649792949243135289315887838862229980530581536805895179377504680599419198870005298472737675033658140278638513389893175825382250738980467094615728544610338672858592845499819651365345892979824429129675092724350068809057095165388087944037443826994979039457103931096348705817047791424773816710660138609829188410864473762178282340597199006290620405823014347043294299620332236977775341343571402864783924767791573828303262310169153617282881432874722278237835800491218248898576263965429812548109363936767679445613969022288578882765617568973844036297770328585717674783375645361972352634447949089807507563361307706143763713442604111001037065406521948733961319704284987533851746900870022391305971212175903401828003458605048413030964532307620617885245763804491705443440411141737064934217461388744809572465286214258722443757405440880093866976299351741585232237063817530548029661529917656862836044457033216248709627312194892573150722094139678392477391863158929506064395241416653107049328310695473967974110286575826267371481016244767668691268441539538224739383616130620510352311028210589167093842509481538254948276768002836206200518468947756498199168770337092837931262103065178223535628610740576553922369942077224150924799915014959766032228608451659508333590559166120296262852198413844429118230000979280041201616861391178736246125749276881891703813008729417870959958753844689185027122463941098178121614396911770932500386651620433864325612432640522016878554179483326787073427193188876989735753710380433096779352384291050661586199437139957258536097002439141231339312629884523839881082225550667651001059551838591675495033890954564739415020971409118987983439063587538100570636750738370118763673449172414624689168158834992122440744377081183894065021766549852342620100576336935806146053860628585333992341432522319633469507355912688975609270132924495760326493742541093803928385406683287965783091443157944878048668568229133727488503340039520112311583785103510505328854712613277790125151219528358524754686049328639961500197576746768405683495925675663673204293228672416616452583297609859010697066114604750100041352161994039213982882244222073406539415898536773384105353450681567667328025764964597568521197280382122519399682841252517747571058068917780365069117118051400878775972562630063999434140162931520991848722755128813814324194606361373960284455052310382440267649642926241973292133409185223767663086836166216414512389464890634160969088048268181501610966603717231310680025694990516598562135159433823522062976919213365640667443095897079405031655659716857945869660521019687675905315911691934344848367293006716515099276527519882543176285539494602302738148955257494737064872864265362375284408681676061343093606286339081542721268387256424475598358755289091915838273789461158284132612203855574697244046877260426404863278500828619051095753139883593245038830391869674230642732010812434654026297682822134973636173883602109583632010259769632209794772017264006406828537959162924246475019857906142791839705402303836655393680394415158364204879393691760957419450304190339861021535630571109436198835728678682085164236377760583898056690725314915050570089294846549084657750407795002475541438078521188991089278401434350497810847465920108516871278214987962019513046252875744507740985332253425615338412776082394812979929021641896984707454330473817265774622251078711270364532036928347299871813721800390936202463146370220347787789866606275325871696620456414253392312484677861557122697399998500883861564007951122060125370881307733961380434702973111707577078538135289502333406161900896493780659172306184456788204417143846533504787520434610270473501655492000311437645921471800929739341186859977716165383688297173992771021347718535568717794118071234881644642442780364349620730963730933000621609514497366018442047753127255801453369829437567539970170630084596301569804926321361210763008857956561165337469225871982500920910368207564168652608720715692582857813009750504726814887578551415231106573971819411536707810932523739473038730768478280809252767657258555012051761662539880855142982952214796126730016125640800408925579989770153332821136050168575616951648266579239988505723454851964158814285625635634621748516889057336903201692640248258479462877201060464555634829450549760218728157927053050559296951474013517470086025646978948440315335359897249092304252387201559369599348470157024523355720748362869568291741415313329112519762667365735692000696787187572910626860835588007807220300072011864659072589727606108946722123549308371513324404247775575213783361542676108794430046833764348577294335297780705557095295370874927772558076069584895769009135392289175385125461473091699822200658449304350600736661647930324634632741630246052136541540610455671369452200906861048180743072336264199135979683801485812007450558038438603540742967124721481561672109417577568813561690087073886262043119106900610570426729045594390284945797832123066612400298442946756210644631490814840377084962029682313082249909187628734878730688382117521690359449585939762541573324509014091372042416374746224152843854482409435120189425829140443704277180901211695234161326555859796760529856010845739547348021468435494006361049744797287190954696951853595914948408863363104014551072306317043544793346540478877064618836947208601927306788062816986516865336120179824463299193664102408474718324107627711934844587932880082828945283657512905643366584521140400057754209711491753340771948977305645432047409174037034009686224856981483681421463174637096002442622346605921077630840604179346554934314131242965782825826696529018105707266795865484588305167940192287513606293423198112196397672171479274800104427615931873553571856866809816049867186215703459953087885866644047355437200301709512762637362372278386364451459427793942452837141488054512196233309899371200897160316065038932069985070357546492687911097394543958605477569727771343177902189765855288776085806773906172355771723735132629489696645955066555891516092250246072024990007921327507695542975645401281171530066467875093007700800496500429995078405813594360096740513045280867840427497630571588283424002294620381660923406307844991511237311232462596670784270475275642394390507913652453815849174965025593594099239991450239485378436007254735460254451592186502305776759531756224362687731419845364908505440885753979383448518985392265045691149407808755574055897731803989739978549505729812172029994745937405704761463418762492430880706358418067482447303568157584523831021267035582827200621305798236967851491990210299359746603463290333685110961590462293979787818146900753528778188392116461320080515833833541811886322806030953857915620387570468514408358116087516256645373641618947249225815797253248790005024869829141856360110219104254925938346136281662603742654437879643211134809191412734689450204781662254944042459139757246410937007285009950055300380307337629851742918719799447466530531926879893833199686615517098333950416285884085406570049744954076455319006390654809094601474462483431495221764087426779195263599815410466891578277760385340738772688610461006161394934444414894514384098459930630080000288554308818744682614006984150137068178454791419244433248318262944067298476665866221331123531934758638267318966954623112430274874893808816596114170991199648376892504335502561575790883614989137405438556160166326165582263514429346200706824598479785700163514182372607755884137953184127882022352814085049976242212682279437806841370701142127893432292134022934112072722304770940552051690389062953467503226254183372959517909489096744614369112972718982653188491850362486738958681362418380745893085179143267623843886786556061190146984828992113856284755239806186922908282323219813242388611503252385894872744812048778253825831697181341539535445564041137654861668667620708636157505529424359289121515485448882115009762202703111607512647022831775253870826858894114674443393603688723723668110993241028913958332694978158692270559907574655824886572803892225995818526130619552163879597316339546320105024656297082227438166816392056883042231268223103483293910575104918462147434396574609631064744488836693986589386788998979741609235968788426006968411731151033168521034226461534156643570412776806226590671664604553321972239767212870972698775856641227489633995969627899295278908998175410028642218921459345310652661968720927816151630097051323130215563014802790806683682181874194564848409671806341076530737084267147019270968110927727237806455061417188045575742462303168998986346531838404648361768443640120785696250297726204146407404102558636514825914331604102908337021425998562966651869956096675017646138833130513114527941278636204593427836796834200787447471702262485954313015374631233696413465354271239786515523432738743771668256746297127851492437402847043631718502186958280307709165382359924594146052791952800649524265399602153764611123247602366924242485467216021142410138773316969749308174565300060573042040457297562152903652797349221133857749653948270209414459111062553756760868677809081444613310607356800579115241220331604344961910271224890554756192466987855789879673003735332577295103258199152029787266181364224594100688899111408676528050301633293930838012539321793310642276936619433887864114847348548613887522932123819209053891235693680666617634974859377811272666416462159081150937373254450353529537540498291121970746764281628971431813953819647545942733470519186054858810633188327602119720249576224096742762389078142805893898762014867063746138506117087106849970270251783331002466276198145896999091555158411780301632263706539852479778564881815981241625485229137381803529004860145055260261082875446533575092817332686159450348271595199729225662062643014555349333363606764100420184278044902717634556717825432075907205314564346060647206586606128924399102175639017429491625804324612042997650406198024630556799607600020957957633547769864237993986511421183153677130078661205190374301611292047072647373712757027442568023541522812931953133688518864523849901691599329259008742666920642210202832023790150655821547126823639926498150739058581489079913190861411931348496648630954588277878048418605669861698243663305949904463528974341531653692127897075446209599976429515615071405613324341222276075199429542715576620068990398708739589236492101768185687324972576964246458619853280920006702954705735919763845881401156474886860465482713633199279491686050232194362393552891221921254259069650060880772029428307212782363083290288143835688377885581775012378101009860312120690866348791708255138727079224122284976038790651285291268485260111667043325092563696754041089982758506679681606366724420083343259572976220940532021854544498496830944919590000665973391252340696072993743281222774125807206333741790583759798933008513200855862802410444579071955515385222115969493489011214496338065720121881648799554771968930570943995556445853099491808301819572942833847236245236656297922758618674608804478662396615606581838048340363310067583891805292076037452281635089903353202041013034954861696501738082043504803156257371210883841643569746453943613739987001201530197566852118756567362708517487493375725506312971163803608461443038221641484089099188100849578791282271133635815657376426063623811331389143160704603852409588469851985927507034569285895880007166302632475601694574704808177662190573592924975111489960504259073458862661561924246592821803056905581028106263658148647307793043365243819227830851098109530574211348962758055487686371757699892807705837554278067882195047955685740200630488562574425593029262949270671442933551057156792624145390377327384998707468147297333187467975468831720074371378150288138605016411234772055182039425727383715795269973647255199232712494701964461608416516882653389230424440054444236229491159656884267810069985560888531288148111043447060536298360055658793585129242563582165461525541170831629604933104183625423796349379299010365380516273642320382161591800256177985588572516351155325102096494446452584592597590438820922294819615216403910769325267060201329290306651090898730336085078695603905764343105893189502545101256159185776370936196268288503568635286874300380960821204728578650944512819920310128883092377474652885548950579999219516280346458306912715722074686019814252562806724810631684189856121246733293054217363329812198594789621096070606718453568425169663905987977389250837610844432261836014499335630636637128746125004687863856366180989215744252897118754987108551875093902156052518918256943500469930668687255182802075060156362183034283884187064094581994800204817512416813809271489477204284375545725622918319230327840433282218845145534272295064030360416320577497363778442028659102578101171791924707928119291533897877800408436488702564230219038299673325306904582304791847588740242519523281444263685997102932236690050531670182391246828324111289420755318681997418493661352943484370860747608668704381995723564312205050485599851405890138243714703037702724206287599441944382884726628151386787809875476541419555058397481322951891538373069880766067074443997038001771411340715619381832197509246145841641157989697677507686113832634850811973468748862700674684570798752261351175222031061173741378698160034091861673451708522692867275091921863704483404356315656878864650613949853927503130312249679172171263510047091890706851096918625248658020040265273812800934080044794121582165497036702984620604557090437053326656647040535718662490172500827144553635873004891397078031090266620685394513853297337539194336452459635152585062464238196741705178475132171520413073328509449922314268871925046604150345289322067361954742295803219582064459166799476335931195274924443986345839648273884328133601545019248556232824637692723366308331396594807735547707008952320888092309979297593466647610547784809781709715788267754635656008135815971695875155628174921759335856683780218894340908585433005124979014197486177514726060392344236338307707774731496572304795664896413558571773064773933142020002014433644636262119026564795133948316454043987373190360618572180209042151661193020154168441718005344930751399828373901989234518432833035825884593414718778238108010535334671069235660502908226541742481932365851384130061699569541086074202478198050239647184756502172696062300614110786012456141943808284094744329072934140462564338097446853903504208161614088947499724866979155216572219678536025238505339285851144974186700702180941050529653289605630616973367426849086300999925123777960301126022940266578926157175866828431989173232476801510552487141471188328176185963676631070134689921717880284683982404638541422761231928647110605056654763132262763891509237387004511734327614835412661482734051697567330692495570092755712006590260031922088643252415212415766272464406426278983089968875988993731221090730870847945470607886304907829892303610765167006371824570840868365404389003648179524040199539686048295098509566234416949835089087355699063797301175146038094899554318676241778711347179429356192752715644111519747146210004348747205771671065949940845825540226391420683379710044515373839404553395536573017983341230028861603062248094997992453017888204811715578583052061626477393408962748308048169399289457404440545371135164267364231683897721916319938862620814469355961807675166371096146513988133278119176467845787448566791095399971729678931696722107126043575756241400952744098517253404039998249795304392960431455396102384639542016478380540973057113774518330592345366907946801618233761504887876899408185586734577352912978171450299758418305469128118799377169101579130318885376771724431246519234383053201341021706859013875672118343939343780705761950906133136207433251730771324042694463645539246315586108349463688159392098421145365476783938977306611189851799767634699379991725008129819922554146806008034656009713208732918123290061526553462076039483901135211268279240961764392623123208333124670257925538011359699948353856274959952255968303926638535821259454749644280498522081176634471023457375456425084946458859849284734794617368583058873871058524857155412045147299629354041421286923712233283995659539581914030059338097084687235039273466317894649990091587987518616844256718766031796663786665993822749339611384926263152395860486335488379792061790130311895331306882861113936956839568643238794727913535613746534362684016415059778392480354007119143005781579259891261183461799158905617386094723027212215212402311352874892009922437626915145073783469712972770641759300474547982044264210458724030736346602860833076932401892304221775682119523562885079264722990383207129139006481501101614522522479495723406392296504272169472973799933769689390739685448015676027632270744985139476996746287253023030935970143253890590980079139714564146299971481537645488345595022953255502728973017990538078199398439315527429313938459539666054517290193408229483502911443517492039210390866203922254114627949265323718949131378856334214118912788506514123451460508042691361607390331489055091984969781247325375376996419233376252080628267748677010381370214749944785944346164212319825169625771314115736224568513380931925364941891365283133448406079711040228424256484305141039391524192656296677788137007869919107655178321833681070142696114756978395853387824304822789844755384808328187605566232616528202775029352897941795971880148976558081937096008014973111791458031953162379026083685249191423190429344118258641502861801957482798872970791401317663571036046567095416941318128861485203303029834258904312437756145439982930113100865655884449712008743232190081199746642329821075161278503965935889301740330031160865023687334157813339828277454180504445680155605906091370097860296454785584916290492871657563606621654409489371650061194785669205040770685686897331850349616167459618845695060127441283109879797511463731768064296561799316130513788456948153319807376836415212945112181848097555578375248778071895265754264731075935164087911468943439296685263200816125529482997319749679201458751395441537679347211565591417004797637290660756984600923118795173248517645709006424505609360687643059159527722474181524448434767280050237128946514472829211344466703419056335179221170696232955112438657541764021935865186837443721732887263895425560531671303651821074371589105880919164107830857108405338274539271953598888783381433368877297694144961949778397292962348567800117413394559082399645683771962013811800761839501385913466460468168531873865477987010735307739980579988587174255207239358918889379887271569096678251026554871207033515256669780488138986652773218430409907087414877457505540800951902724051238416301725455641108784799041510043920679216408115485329780568690667239527197241297501230080975282031777622790349978574545595360449536461446821057888688823163297649263412867775446189631357667736878806864030798507151330194512516257654189756212511018760351852404485971846647270034360591288542918371101688728701963328951411338163621261060820571233617386635818421893730451904615089641584710068018444162403883230064731497632616618507923937226746570711515578198027611287656918384497143143000356318779546176082760430073991786409066279390413778783903344200455289973462592850131396908400781661354742024717956972961259616779394352951938518488038534929598096611523008164784577466162955613900404279361956398379983166120111788922698698112764224892100401145988724986676755228041956605396166187129458402687652389813468760431391474670550210530471056964361522342468230986327861425676443770760361914536870996232760747502733358628868570604851537294305900425738397689406397554501137911558746177196335224361327096423941280995294328228334933034475547968331327575677414596862396038294570903272021919336064256515555237132594470972725635066678931623204217814012088163722423289418450298133388013954652393030706079684121825450223025895282697201217748567173406287754943288662880473269149668384225430250610494645334811163616961062893759872694980695030924304518374724333122125967536351814487513850399790633030747734594865460446552126477278515536495635527658325121692544349068922409983504182149747266881910992592677607060472828304913721739037781861795117475427553105169001464815588227618860167017092764463125108224428656994580972372209719188176362259128454799272865222893929488252284099114125563829895006525326869743341832180886627411653984976263878166254770250647532114429893690248418640994048106198010608488330026356334602545657715382963074175523352972996663063954386019211019300331796356036748315941904499625187175609120489566418105914317390899618220559193276200472507488613057566073860473804774935085271094840238856176293640971117760643296825563748212199742081906148201975219006962041145312532414892950669404238287401212873007293048455886498723558275294547705861809439178212666069386416234667429820953268223522236604834397227417065487211824949474008331309875300739139183833616798945534895228432998279212507248258595566196062581779396913519396907088798853567837992888392367939742897668153678739411744139308464710089354143184546438731673036608646880053451176745629111873717846458777162635150413951331849074409300307402400600202057241427396443231086245240294253312718591110035399834423566974219194840311499383795425097981610089059006676139854077655325323677346240300571213826733074068787310575651041215350153090880653654781150344796138085261948431973742211106479895982073171464266687802003936432408039407887504486431316993159895887331377797353559537504070064014131281377014075615260186689015799269646672304698829859841809110052375615630277130141680262125141534513802489519514198109622125806901022839266551653430335417615572255849310745477032088167462476503128185013259804495767364804692782517351599779043313423616668750171078809108652604822955727541377367424356607207707865234720827097984049455235239342597910307136362512014831390120786162476928905823787101951677078946964646288283038765343487541013414428650289879819767417392232324728200133751936695460319177661593154573809766022321199369374430723727606517235227228539562896026539735933802584379649392047314274991415890894017530308682755950038016163503464577621802228450130168097411959448892101934543021412492453206035479391770999737901970554222053213790776038957820482511976910670714690449420890440907070651932579821038539617230284576020097106285837054892785006843336014398160926543486196517057647168404329202800518389644843712139830445486548175918782563411553234323839163372007769690301120450241233871537574002949782728735804747746339699374849985194938298247810599595503673482199558012450353313324809312562302642697800641040733644657688167803032298267995314903616201110724354545495823915010863683088763612640388997725522696936831502621908756597314305516075907432570862255121353482540513627987776040470777674303296162494897241648854174338681710080588877749725793625634831313533001258935006152639255719278400935180545760524523743882376802639661193333619111346058544917085697189944391716530764131987968634616062665230911332228403393311622623490756983912182459642955003688610488451453964561590262545717860259891019356937012119155350147391655854872703019545023465602656687378215250351322923655929802258260810571647524266468514739852428769985532022683440321088864121742460068708169292729696448443770866991935826121053341974980916509310491129493431961686341489403667116042072037428282384866014390373567918298109249734626390807744778267990673367324962941224485417841448157333733035431384748158267758746964029942766679142212991831068871271841611028004548261221336241863088739297389526111656766237083393340295807147848618884156104093986382763270298722977999623367608353566926036270957304112625990789731241414015225592893065772335125915615844617999030375491546693837856477433320005222621663164773157460402613770519409587600211456924705065351915343453125901540345130035231274288816392358554484926569898063831120172435708914989697803888361362980938370920343807484131057878771333738282099764634041662837250633489999896030025253516846104891905537230635471674593274619883633433009028971267056133335452743921655668056549324808350547226364147376607114744688716096767674202811497943979905046634941740237906250266926176773754547476371744647984999336474779427732703204519369713358983959307557125157074965270040530212109440689266441175265543114876600113829718973632119892128178863066626789383895757470054001484344372368317604496564619607816736355930108696271433834116303561453523776771418399212393313953809032769638764647423827208936759165284879598679230481749919415431615402591443060929353682172456159688916979930557264210263613926689002397448207716724280815643917220923482430183681215788661516927025463069660765859256191150107076200686335040383587707432506335990368996464614367697813471955110220754873525848579243470610811161512268668578769248408215979893921746534570567486767342850867982914670991526928286529439120567397954488667895460292908705245176752215680654124813973105691836648453687857918422641510090094853530109945045724683185213182717778658126986178462890983998196354841754585724730058430089982432724427595509883176292773816592515343214586204591596380654851829489809759798370977337588307020557788843248364253862559640829043413422465694989301376849556871637835834845711464982388530707284425861103952445272121582868345280183605151823180786045590325752616286023257086872937457535746014886395982251347957251664290129197254319081283407331160755857247228997160396481717902203308425492962882657749852670017569743847961995521988218808263863322949067266562651825554989452130334408636322004225837624605857790388670699643827905974698530259809084509116608105818654942535574025420936228899252967226584432873154097601812920678318464228687068333227111851521903717691371738740312628489326488894249512393156726580557414390643798093411348457379348892601336459657799826425256754656241739270746463780055036565944425781894174515504431708268848658373220862904071606012045945715894096279525013763514553500654674615580283051092890644675056412355214267427836466066920509809032993854391760478493448465480919134560170768663085619306657460525689208361077579092872423387111169567920445706374398730246845790636805146348528744330741889188363388163407825509809219485330805784343131235067576361648679265177696892157892021656295242869172787885718893633600561214891816434359278610960508748112503858981413820404639877199314300142760962107429552377704474312492135743329660879873620954713584578490957091126308299862289137671447628552582418525122076404000851270988433517331128439464228016440833235571745774475618368436052464829182468331435422633956323742543674633242845766323257258257614574099341573401200762215572330499051186842167651358828023854555226483807178264478143601564043680360534154731722245957086540346725399937707311965446728460252861950099386710550624439823366945647631525627153715730861037457955428088366222429749235881974955750195855178316237753674960109889328737542850787818829916952139922196218085247260790932627675104194507774378563570576598444019707503688810278585879851019698257518078827417384369287653819358020022012779972362877940346188192754962279072847287518485354556461099653136611967362490220376966455527655182201237173849215893734580256566811294076567507824012448409281766243258937324756472012507343522100836235154939571497787305363880505217973436359012009584407333814164684348639939905541091730521443051870522647200735253277175737128002969466093826220494022731080082960186273379678947471236513115717641434341557806527075934103790005781971347249381715396940681644893171370996566606112750105380928480936862874538794598539574835455647081769533379720415248373769303089685211414927230933868525078707685349563065278794259363294072693659196473225406687466039930085673121260575586233734355192006410840722334572208632368045743535224411665296928800859686087715593279649923821391355850029577149280193409804333090423839903343926268834342408086980934134444519149711283353256711349554947645471588439214623220068847222252812676307715265374629733859862145071604748177917793413008136684516824944767011320096744042140082690949089864551403915783449001175860786424959486347643933347308582484461247830387715683760655155434057558249264158687055175222472659226814783119598572912216103408067669893764804541553314355360143845330780595794262649516117388883420116166768606691927647403428908692596580856978566424272019853793497256524284031128163269319240304726713053947887800568100393351519745895557365262059307745737612162244805984008369797521420794889537982061757045525592149751554801932396352872893104469969985705746905224056994494490229920094050564688942333358185646498747215450694640099724429149498649905904629250076875841422290726392512306512077897535251055582235895791601129549816356634147801023250656104040945384765131041310964370750856452683212547338522857416961932206066682949247566764591908860919402894266827609332836702377048738526160748825873860990485220112804191749343693026722411231939617853921884027046222195307568452665715557082125187922067300178252650242804206931816029445783287297386675260955486592595068575126899265661714653663582710143333362478263329402445093888343462227602573447925394856359247078351776767022273869766521763623976211702701034404616979893242440627785768601939435720420145768423137450050042314232085366765343405952534253573198169639074737189106028524375583266058235254990276550662269436276248531048957018786189367709059383688193918248982149338722262190010254718259227361319429450691712540958074717851199474334641843297552367196806727928317414963186968530072398453393839552136472118925561183989057783378639284664237623877634768427637892108952381421663468318870263305354905800645200307144715476214178713159571354543509103627527722048032374147601186316892545450484942926628665697651504169391299493068314556749853086619083216672945300860755453850289181474364090873476749108597570897228389649508162376735827171526416639196341838756813280896862256518859398599932038221613858732652838642443020707352960581951687178053147233852988625817107028767263476817478666379905842651998091095888949173720580286158872847007249424783683849794792510922088491082075620378114515962844127249758681938958787914164147312949240709428434569972404749399796484112599970942701791215470253645045621377198404614683828822718978245887564885071327590970175012029773687423030225586107546891948149899002576552852292042281861148992053460795180478184260789417150205561938613623472027917152892021933220973341838498886803129487184151563422432663912870930427408119928112762997474003735205279503635551472807532424446269107664431472569677478579519487553646900619050516150125057824804986923773028896677726475804330325812906148882967015186610918194701374010060784714434057091866532965075327791406155988729146860731205991232951616821248708587534368669161032459543967217711898047266246999876175115000657582192214854558015013541996021419556714592097877439306615069510686073632254199577593537940746135990540928653472966434832921052400913287915982598549733121415681137888240533591438855527966100960782525904812137467654125652679449736436495221760234286284419144998749429373144745937790749404994895843298969947697002968764522470073904331632697564933485610004959401997236863939296064740740124641193035218489940448700375796501133613826099645013405202550589769717075861247206383960507744519460885860001096350214726000011542084982219829422491162726170090720620652483458474176413781507212861339686795208174003418830644409793284342924485033513877452958111979441158150906641379491510487289124197814902754400346442849480369921792380525649732037470038842597014872490765058064994939210131339009257300576095839875445027840879162035461686812895226851612463622845569114512895411741055905637704907671468988953445128692385827864807182982084441784740100550754455836963223989327234813964992982685255847931959102302991763578539135792959208265245189312032046998661398610429750694214283283415129938844425899750552003773565076748127053520512599597299916276586094071108243991308256744053558583152234308565702058916517662011713214509142168832239509257698585030951309874981883574711778103957391906586045833258716653395865354208687348042670966325269062183699147292593787716492449331549910534349306824388158811257908108504611550063550230158422395246902885462110795218051945716782271181563670186764480250855845863707617830958937323031073591705815286177180566616822269046864145177345044112397833961434264206884152047300875603171857208410198715121797770584362423545027987113785566824053546686327386340666375306406362380764130452197433800047854465363593572434576047260375393746598599217375049482112253429806683756694174425417080913515527504956736258802763736703532284365663978557613627053509581625080144874795156090344427586589274789417609984937743649366486566812927871335024366542346886240899430791983297478641369715427246462439879954809565635548340417174835465576587913302806781596690080708878214437561030369996072016367096461620437352193826063642753247268971136681033228139096784331832363158122367329943819116910438927397719936562345912496063402092885608157464200066683164560297651327231964626669560152708839043687840222851813591507157262788000038695128789249320696666562066358990569682657991158375874519897396205239866716923241567110898733526517248159799099829216026301002624548597230692965716271516024153903686456569346780065693226981803269999477783445810397478075470167695479465669908222969657323471217760356476589989230617563849051552517503731802605237968406221884030456829206303736687720213002044892508264006945336522806208935336442528854712608996621823825419926052685306320255506876460520686861601295762877450687254410311652812146720105260570390061321906490262583069784767084603543818689413649429594305384346510024698423911473936803054229012391620286724901485033899698100854868064035205859631201012274701081257470093100906761711593075821656939658356014695482881416754343198422036392954716976977914580258959573370616059711816350081822489072510338862324661411973996462257286444000109858324578851820034587717805585376744603742573018557518653986601836697887841990496093658001147126769609832747985957860948369229252813332919581693071898310885968153582502750165664920348730523462154407835564794372099620091520025327174621026574929037394281574166487852227968646967957758737774590926387077039401524436047189911685367397930464903996580515873015097823040102827020718311919484074980750508293400584024701660574350942251682130292272419636853178201709939185781656948608601006000144740558618036434095715536688601948758020005369424278620786664544267791057392380536123669133518058035824436047039680581986404100670603029319221391101363793728214874580914249839716138972816204588638147605951410320378238019439031820862636118181817391765141777633887155002145586910559072915818090934966751596385534482276510659475023269678751371368705940272986314168736089480888987603306120113625128898454068691104936705425504842718514178732617267778955875087706083647080245189608211819415753705668219260563414392187100321854305316443682977651857722979505735502451495146089111453738265359038705267631232790139765747436508493460738948761526057272150865311685624586163936998524488591774526402152276473916243707652248131449333491845333804298990771022079241068757782114933611299949868097252272129777827335324559256067607057753656351966719490292669664439127945711120441023287412811497756447511061436723229446072916460247262930249904048038038340873579891275539542025357185107829004833658668767289807791760492000528641850509073041091980439945582353700100670423511557524619355956763162043230314450947930241407762729745653742552647960576104814122512691459789252069986297739247576006425228532853380260569041716951504079797307996902113300030354924877623673095097045874759614462213079786556428504663261912787738225586526980560290853680393644804291107651406549812400902850663939604753421662083872271778797919258140964773790497025875857313745109533335988953793354078901533074846391163892435500826992557189334940901789986853126282737698654034798618894699447938715262547639286563393163646957674166212527613930189066657378066956142989519608928283943014559699720572830515321619183244175088953977692767027004520159160822983910828579181878278071299707697042188373624560499246043094036303182645635474538812758511296821027702292131740165823738226167731558005622344553538543318882187612719087696714997709979085601697306555679820918733852035051717554267651693869800657458606926671787665532279069585589500315303391517051745007107873973086186990000125134900723608090828926814579461947080461614719358812078588482491947539526529657623179771027089726635892407487648718705759902954466710036601171252877424628711046802581626663127411508679931557005293871437730512476977422305570164007646181674254643662036294205202511585761704065787651124085195223483461295597643577492656805845088346862807104511802387281155072248226092101069420025882625080264999454459615520755437561474370269783273430566311843866124244903324532233827179256041405947243451137767996223528777863769122294000814683554702795349529740306232209999230661035508807357282597232719116733946984514564098662818184670196822743668246080585643675065835956100696378691245782077242427414325186240852116298457002758745824880995720022204741544344119806024387891105144830879520396404621408747318414592316599632967834149906868344874610264494608593695194174254892427344471405730766280908198774929247680729386849070062466782896236837004764491504497478550775497382917593168103085089515648814418169012075504649862202173542436887077608584707789243748989879678112010033653571889078044968889780104043766163540402503051181562312718724462722042172902060316174065595194037289593023391975153487661141353450482813419067488140798951596653398347385957355241272949502936157223071837882980254808281722585738482121066584613213057988512587602404799556824400116928470156227338835614565284278007096011247537420361576762548383885033471744362975805502856550328007317956200531168330653719067313143890022837122425505823037899283434142862938664346167345062961243989515053254535492060358499188185698917364249913447399069334957248515808365711724839089301127632563428208817864609979785346014629370122670793502416476636402108013490469866178937337142329345439464794582313581203015940466119222599342828910669477319694619272210035577917654715306409753158213739558544851666559141182640016365000332288447207556029883813626778144424820806893180951632714107710420407295130821197567525200881814703211196195848120883497194361315428951950776764253163684926688960798354752625151726403026087679675083842955318420720366863002790648338244745115704256149582105380664159438169317962323635307689743789688761219396973192784232982461077196333712024735211988677178849234613175388923680386640092447402688402387461594848998280987416307077114166471092059797026301663576885731763621173115112279947207425020273513825566730453600123087487331279738735804634300032992180204303308088984356955042851470176470859412972141294394103474452877740283275057517109076718498773326227144984566777821899832351111954436304308786847753233341279750006502166122965150113581568102749774869981230782847230347296636926839520992492719391866931997889369677758129841248946995982666594234371084180661075378941715751885323463565515170457760808242429836198462406692028533848480372838153332562447472028415450828890850619685475693440996790346649348020440451322970137142048487614484309815865954726277671645900492098186040915384858913054400679337763274670417273218456936859779891679369321604019505971225050007795632674471623863749809713054945611102159212955099920865647675699165853381646496042267404999827273229629053825546821886992831598103974538600877022279550254397222127466776575263200853458325230024422269542935221043769658728533104242625506591518050388606123452687667320882431944241108799094888064525020366732811465294536724691342558924367427295825876767964558391231163371603943081186801282027628108467615425523621479123079849027693940916438305788559099343051193751887993558222255566742387803332420883913575430698291837668769517824231423216874158162924678546429882214282642007144946440946314633458836828942414219939432742946452159783206076450115640674248843297959590890418964701887069256244426790464555349570853822637089133973437485203895024393142880916866563930293059961990524244836459570365525709300792448580427029317483706617391242355952212381827973600663717368089194147772451759940616256289241539248420539818984869944975894605789857969162744044415699750098899318753072361601312576810424668261704082746067239722855371216535885768377831396149094775950518505282750324101549551060014671483178698203867167929677174865338938541973416141560429309182365794273177262207208381777593321644392544465464364378114416656471569775408550707823291467905054117552268008146003630210948939697941327438864315256661886937721834584134894114679315484948985293291182314473477326122053991096343172227112892602058751617644136683379950552476064411256144502228194392182168501983724242564571060343046492982150004592106494035340132908365159882184933954607411160595598148365992144611840136260055663382496913086115722318642367630941546079657922329443631475589727180806517249871449847314276641462162800287350221650915714155467146188090599634028009313506705175188091929988904750224076252853609964107569066904487029314288541805553433080346219329950307141440654729950229700795001993254103658484138209016660873716482940658242171623468256696308040356088113117280639998839538984500808842111860315240897404981221722038939645467496983626926026235283519719890171539748994490189826873955432332059256387888905593306938531025701159982112992473844887548012814044671960331224611647043632159502742593821635145469374820304992075622952573566091206718563472129547007480979743159993742867220209808863219325200912092792958067213866211246199331409120150911068386443434947022093859083794503953213236224308849656178219922087653139467284361906545129398925288172108110605032983819563984927741897923385363833840595430685595229050156383819751704546010769005694225847341015156349424816100382801992241432827770193802395669704045015486652626992223627523874915858126133891292717019317142740547077027968652460179061425582654434679250440534306352792637931415915689987777872180074701217794814629205835233601423307242341027928024818820964585006621780187884746496135843972894320214993465570008285991787467827201751037780343670798145017636749718560230339063222340615454699422148181664349402268280118648583719457515590608225982826511187085361517112413106470395365544055937186076311620824136620602515535217278659698897735415883863868009365976946364856943708094962770142821007367693537742295856611208508066567486079837691212913647452974897601352707613245427651984547541804305480391413649056538388499471086911277634426042554947891532062056906943025181553749039445584118737977507211713681667086121742365401596153097091970924574513841631935630435796489635723391684883896652466363494646405980561792969977543054662253095843072775661432642941257115973057329425257400616245939366311456517391882132796712548328606838169656148606408610584032640343937731362425021823397544263228755163950292580731278409313798167352764114042474422337378771348530294616254922629368188812146276616322902017206487935429260019169584867631131046268886658384405674220871569215218428241918918831084539425489078758729140367427609571403944142232407980270181455986159646376669309092520573762476282031016756591875121050824347852166933925504369251448555804635772410543230379976383309270333316047637324059193848745239150317406712702327155706938717939363020293356978476172821923485116078402951359880932414149267164356289277129143924406885380637972274231598016294996644975354548699475744767217143629589804908630818330119871549065717956766503549920764453777101535166824688126787442313605900453583329858204786126000704143708381542074211367673450288453493694764806968639435906194795897101023435375827868622081149125259892489284433505531372093682229566549467337683839694496572092249078914085584698861277557695684032822627689522634529309894864146667632934527314930926142852460521671963103964112688939207568594753484980724861271768028447132948241040757410316100881901728886387122127852313311767859311351977865550924147009560244069369887606144329346258991373482827288323234498214058934261267590860922398138378826707750439745397351540918145679499094853918853993821349487650635239829590045145375168638641601884864070402352244376433517932921506187805300443539711916066804458148786130914386071584218188014293161793823431401293160285165197359379409794124665437241932857387332950533283461726639328599362047065319405647277247218341393700674701383361971557301566429376260946950505474926824653328106489284062289012515053030352139016779556122165374798538677155651512528609947122907920759953760693687667726780202538873368955172287189406179680433062491163787250890170926867460359634134766810734727131311219706999755249927669377226608290279374952387396735705681415234518237500779518257271117424782000656051262118029987886407596540428681786238779633468111521687977805446762405101628401661045825918031891651675469802952673820211684249949546623764682391496734671475371844726988515558724546466058898427458647259043348524583850068319564513634598134759446712943502021788487211648829217818719874617070014130354275945355841848956971673611187929222087629896193910295815677891065093969479285333206261833383030276844536574550506361108628320481796084320329946898479114451976615657154872458397841557240579306495509540190827674366737948055112000621287614025186151952932904092396261331433970021395834180118474878939931207952075625501292698657609157093788200731815748561968415338431892624599131764573147821328393684164164158946465850880502783976038107333742266714530213748406531147396417774337473357400317727003525940264096899320434295706306420527030972164034265218590565329935412820582422532092133209207947751971443887413266878970276153104390428443288072312277765185980467955349211368668947035260080804845489524748981180553481285702616366317427381441838701940616756395327800389485071830214795141802610588949135314884886714133824954299730214111476688340802161173423237100455762647016652122636887285995008868084104792721935957309125322150377380346702521481014249136735708554974062991115149917163760954565748232322732504742181263071584969411826349604527851831557707431619299731837523655692254262680961844750200189236633247466800105398799408488014658140618943013320722482452585579226967181981556056851731646300728886041380069653883815020442952071680544308580921000307261818771554226313871859844479086937292595113212118919457727564206752432537010627705958258556596574884756852044872478360381051094890960018914390889217404318373077763020747854167269748353084552711885937885327036511373971928768166472967717982184244613636691456770341766431533136167335289213240481295292420363016859838671389165670657436948198043829838615995977672313091828320076120380066757990403235994785115427763532298876699997681659674256532810083029411303848399096024388169060741274485318657581950817406887698422860127483705210209607743959160907474953211022831379282596295380221562522872776331985312529958967622685200223534909953842553756606377952578644559134588938923832179632017184796373641681457794554002063104023481766450946697421460356184065412172395115094375559381774229104962584807658564000992703200803243854416068143697062123942121204628085409084447670041912668463098628683104342064819073977138980175396062526539472515275776469921917893823989542337144351664824160748671365237778498700572036425330178066932952366723702176658785698638480774616114470049733200973810986632488665389522216160654487595473787646824662417434519995169142173285116693510912369580386552217195609605377892264977781931964480169828823491140721876594463482187647785596458957759918545364478182173562517491522179950006961524498816408086020558872333256676385282668786835695439138356755268213434501140181366254794515675335050180225049551097128867726134643814832795523732341937979003762776471821154492615373601271920766946409965153164004670117076511667856843664126277589905808256007650093303223866036477911429048149851398965133168179247379829400228994893022259592988368872764914474758255992952996240782992065020592488255962177793152738438437745933301635413801345114310378510961538571557623113008656593472889789259627630922296770803380831124320821800501975924971471860939706717552529876214896031730259572010726046974692927778936098703641752014952527984779544218677371941587930975424886083897917113047995868182193654736747246310029128573613687250630202870830912834058612199066264961137506237717666164495825647578468008463888261993734211111854877963720372809639784076420179517139849583167401418757310650588239842796480674963299158725074913542191243652581702850127937211717373029727331494625901744640973652560564799638045675345929685783449501893947790332989772843937655352246199063604827291326411598181019557281548459084879457016001323854510179690553067610068056322715161804432329322005652689133801523176895778764237987139833180048453826570983260110651439429817188122122231319616300816026006685942580046146103013499616001510871885217161137576681040986114753072079937678201088714359234367092884437988334360831970254206063971257404913102347581317066229462060254231078821275966304883467746635889943905951514075882875349496774739543676163388478379365348498285049447923628082635915978041667719540015823315943034746926723686053769678068626236686564638555001763462942063975936663455761100849934359688381683873526171042808423525608995301207428250514478144474697956045846732742522432012593190271756598211012314063645744144129249038700381359171163113518244759047618118411181168625786368321211405771136290958082620749596776118096741525732146489822527562983990916253010556831932623529467538925817600269555322447744461157436100956209810828705569343475838513815840730805377280919791918314672832588555414901322923361318729831288265616456736870535632085079213538503656005449583654394862589440414988900188543192207265688010960624612379107239941814201268730126637174671473643202831603013781744650332863006833294192207037142173194439964621114971954587007820511982631854101066668064404361616392032040545871381454811303570085763954407033557640323743711189945273000834015753548618562089663331421059629722659202813480974445433873005157495988849528861246628973184770319385563280803249150745229122879224584689171706821739841269254034219047134311758434077021097059536995741450845562889203450736417853125621901370089513275504910950577750423270780744501103581609254200543289627220834149865434956349452065052686059162326261151864474018089102343602930339974179905184701312384277206561949952948551969271707868919546484446459686097540773578171271159701972872840329817925666213739344365685254873273599334036758428505505131465383236072452410635173260087870719519912132489762525865763081508224009220854803332438326567237647440705043625662698662408160685469741688137384358597570040518541346244895663247398661502017155875505912591868646011241821571799640407867964208118078688426645843119478103212463048372708542821691295609491991770478637835607369995242347744846985146713063306244079132836347020623198385184735822958262267835894489729528602548061287549923928920744657995755814087506074140185219298911534455997413863780425432922107057449528642290360697401737502388399012223131904650089473595062713640370808853425844090327379668229520402517735289705106708481519179686165338839885113261159311032240823578334671348650729380283300869057958971370589271299303190607945457925440671194278800963686174123040630202078426410336566093989894616743663088247145798180812571031568869126457148204217479439182088311304364819231416807300478553642710354152646641869555450465003948846662845266546064727044042525819988993612981481303522943072733316742130054276387861683329226877342850248317664503613787701625242164109397725759314386414413436511712715134688617721357698596774134162895547160814539908707189032767782477217318327614174940315225621553955498300422112350041703751608015849226188078359983602344990742210837790691848026530262554442948331003059647742042681899699531240379016878890406486445630165187791975993404994833405179900170963039753542130972481045819165972012181565288467041841639804215697432702334415475032708194020348177029849693957933379395678867692655705985338521239354048903244346867132620902642826122765386671906632280829534912698285068181824527149730477652329649261241452424282546633899175170865407070768058292741610159691417884932261456284033770903898955986598795678184602301622937876782227353340196843759550306406589240102868140529941520757046181003168196362663055918775011549645499025790084194606310058737912680982094439943515365108966972207578664768365690641330057831386346671672789364201697260859495890702381146638015025104040738546640027339258944472375251573087974899440421281627014145535566149354245399982691427002339458744659077410593890805141825445440498708436021777795535090067581041215792236451186479618658259011956075252567155441901756656845265804440010093348626202837131287382671135417557216725593415905330743534375338041181075860072607386310253070451715205333071913768698189546731997213488741645243563161696024085565629325466473167334326744766559993695727967127254614057481428365265992055047955676372599152563043596462182530056152340754650017047941443298949162540166436863162555723217298453654738524868176413860851267377933187996914106884559629745565335683093430232698296223890664233937234007486032634642108301997127721655010295292647303752387316603423634224858297564845260830300358420856580913601556027337603603155538615482747732876126782590562164607430958260244895001744884987702282577974135912106718868737925805122263915091211017620330621666710231520461608856218812572456285455614080549617047214918213593811039202921427419412701789225971680565403290112741562217543331070448904730555035719670546987580055030827985503244528513759009724230940061057849952008090497594893346862237661439940563822525877500405211355001387845180512764559036738932336433228228086421786247442801319217229680430767126776399125459718346252759831378654359002123566710727238901477149663232481299978502065259051874208593339594659318939764929451684603537725436801349909625497793105837964751098542368969984777615769800369757912911355447993165489133382850970161497995566864640812164322080796266744157478391753969397626191933290282998670655829801319285928684763335646642663500184903403010044467490486182447382435884550499549034737148603168694393225915200809935227385596768624065625941083962588510536997587421931540412905804599299854394938335230753096326583961343520310984953626069559451585552924406680431870038251718203945048588472926113279418531236299548039358611488015468157229803870286165340030193682654163639699868967143324138965403499308144511303609976774779746148974589123370627142459875058868062183047954568835489805110469824229400984382981957040969233471471510283201699947763647102124849863992363675452280059171272797430495177627150519772006895968319809764647721607624550489637706806199555465053301883694505809891887154189359430290180371118099249171814681301646977383171720602635309506642961306901535008954766137601372112571538562576430899549860404163721493335427508448070020524199771868385965042653422517504137481082041189140505833072368686687712996499164538014651063096436374565973174083454123473327905500540716089871016401810832073422522636670182800284007607964008010631012834845031934778867967408398316682776068335660005437573134289061226583158910796351226059402676195870957074700901494111370656664738569669120769899666441459105005158717441582962136629900245514966263556755599333937725281213397203627748823407574255005387482261219615667699113776999251226365650600499424330563518421199879205820635807900604756541236701450894297099111652806988760653065905742116964537172383290468996031717469631603804043464880583197449648822746886195848148884492043320037047713193996474149267800138185446771434971653489067018494687622473844854146862029927420402754623277129150778525545428914294711735389347103819444805486794729498736508528786305477831717148816013619978750376807324697357391067258333716369290470967463540684728078867035881123141685917793548632271481828671516105099650628099098037182611115113487976875349274005864178906821851257817854911553267231686077130632097452382260400635734581519462101565498381417076822205738270535560431311978882731580595405389425802828605155953713867598800654631964688647794266518273544378464112831924727495806469243622320919421117646047218314605837652890904442346102464261249911750699808252413237411657137166209980671304903765136752670189186546938171100818965826163130054572915670101531466668367282275676486586532876204913879919013933159250339126401303295575920581589399840739205831392773256721697553179041970051291682637581731542062510674083110035594194691366769225170985496880791158229580909910767998516900259784679481608518934307380482460688690746660222235650629634361478070540537723926579730617528163581138016058026734794525027813009290397713006625371593353560270611625382707485478678800364371019534863693876069692213601110540581487938780299277499361404524703702709792306845155963510363424674735342530484385109163406754159287286553414607458766343242016324013769084345254146763806117172799780675319559415361432000004762603643749076224283827378066129270066188479999512176980653941990770946492935128245863212427646653796153042274462870765107448498734461550588958595740484477677716623530234355393731450545465614258488217665622254560590205776330545171153758713700752974685035168037646719586434822052085482162913876450922055848851207520130808809151056945735043300023300923775468291213777762213009801432071592358601110260275218956773987419349701878357136803439297642415982918038081532479046446556625371725011736913704647278601694662458026289180872585553825788036143310103444927809475414047176169244511940480135335138361458685116190297119632030663493014388048074738086882975907715294673435539003186169837598603218037289029889293749609296148735128649727924235098682222005721843433890869514692805302806752742608092055732628263417507829311891141106276092940817715896500839910717201783605781806915187345892946315044736043590667215947100415935004726864336934101989377809552278802151852688107228303722822334174986023121689250373090026709170889218935132645831974056458921418524745211625561383709885435208280840074826448447000125456223280539594319742988880232617673344381519121524545781559083646478528778303094122656122078879098958694556513700212101294397573917973136202240399589164980965790080356799301053996364514314897097165334153468143450160380404020660751669377394973540354605291527324127598684176410886408121389165907510780794843057613249846089748522320013754040807428300886440504223327015102533945630922653977692622750177857843775694254662115635875309886567059208315615773515385529273847599694821927185571529112867935605223890762852549159085685446853921263884046087993366488744156128329493586064957133286949858181034922624697508121928618476160819400231269099662067077542323656245781867982852910653334740520462226000640157199216448884800617464729870555519186367790081769253141239742816853071274075348501845047035643843161727023221642417600919116395836936600575020892713691914966434120291492891067702940312615084146164187155840304356943900360515544347908279198658620446829805845693630931650608670243876441771991575609150001928570584315891966589650731853212754098564383577829646411420370162165703461456744590100528949825099862681019723798323517750204343179793855253725646824580258796225952887003862150632433426702119163794479865929336563507540499597429415605403667076541493577480866545396320834743422005583859320002753615776665805319905951485916335431938299096040451890377471922874058126946300498500794570728655897785444310546928221568672103231171460365509732122727834335336019182572824086137467219892709054193779634144649986193997869999709825510404303900393048575425250798816315847573936388005503479745808663943258307708708995812823360145602546854876522365158771396672832093874665086547138976276819304324554710597529922664991908150169389675090290068579420704969339231818187835074163193510277512018527708875623478788629002970079694778379119355750264785186181364814304028585432781329200532945062000431186753992455933390266076177790216521766486793891082124672059484329717281348610392121043226668430420720708968360577174819408743189342821710817663064125232352019064055289512741432230496460124594300901249945166824520085878905029012459356942601929290193829415078789750416734864575844722498883302379015431970316704032356139423666411831914828457355464005531044395716332609177906931515903841595656500198136189129436166588422107431873879161050651047038006907106096297806681596869562568165167539054505504120036045045285406763253101618839401707569699203796331493673388830514903506888534648959250027666690548074380231387926211729864610676832371100872248440398144539753745939120980601566004756677444348776993029874543305261568944018206314753685638806253106311783811257285092570850296416301315476931252991057166980093372275111887051846478150515017382309840889223037545572444261921288089951491482130664397572459434236092736528716166898542948221830253632683575874187633965459176030757873547204717791155219922783692599795296002264221067113129502335031953876306918331402621946589048668605429318952291497054772092814652465262741050731264623804416657581283713087075481533935886099406232407972566922112157808435052725674309273474416949362280801345760995394889541506352754834139877601451440960036491607861533037098740652330557918663862983173016720914779883282008266107250063707251588265047994720512989625232093254881529177772861752857432452738275084960755458713297671557718616343385981118991809337669699646877441087596438273663205810107442415823024458240368482726690634637283941527104529069698585918807243780243910045898183782770733292647134155809584485946064056727419809529130386437348823031618974042704361560053099223671687172327651634543846292007998070930943526125846285739250082173661705053308334655486587892106271835091105168488096042843669551641418786104419058329101789939511424544470018900816158043308952988111875148877707829202632119867622464143268839901612234728967432606058408198084453656066528253435453293293159281304451423160973372236672842697432978096688228677327088989089641779785608453075931483305545913515339044712519100341216399507755857829157533349406984601068762672729591949794550654366209480264403949999790393758768414081982825771771427693661396611395634308476374291947835507658300974345825134767629731654201197995862251151441207420488049489821365125202294626445772607747469312014399606980880336486161695974267162192684846608453434175811649029962239402584292750431248392362215642622477407208929703042235497669280000791418226832816415083431055812617957986182406502846981315945572942785518855342103495025526864653238739784651709262882513899124646986983828473865378146960747295503439220739006238986650839826976569572331405763201761116622604530190276482380077657188608465470035783688359684418541869344678371686578952597275690095469852781435938172241344097859872067031481203611548831695870992280700257012268237240724035564474854819055864887351086951381233940990301664185250019830000306938480826435999698596319230528465903399331946696492407879131072180320389818996187514448603856305981063498216932477030988727443063330452317144088359197409189926675466040923312409955586594174643495303888696223140881111004221689891810314619537552043607336122311587506465062320930165090794124417318684990585745429543459669553276929046125406095769768704700971686852571331844792935398830482000729628707801745721773790844967412912634578595164728479729094654612538876971060175107698675226698864474155341965330385267369155921340726287874369165023257638849359746062717986918217106102542609741419601564238432162750259559076413592028108755109320890132952524104173046222804052653975739072922729809531187972862671570122464297819630248663560503031564022154920418752119633481436983584878546586793488552031599636070927821881661963344235394318652212316462869657295769573973828100461964245915257549622327493281731666695712939729949872776577424094125008482590826409848024179959647866546942725550745482003270731698373073812172641426663306639806983836254836473895676317028430489978429739471180513159050276798680194855395981177283119510082074904113870474988489513177057153647351809667605568983670101211155320790700731140791419089308410728757840440840272314007259670107954900477194109921987366218139744683466417420509735930450131323521139457690377436610958450899162734618757692855021428357301550892874222640093949511697234669233997417821438753182028597963556761809332301946923133731309238522236255011557853980362833904172476580448355010934028774847715341675866246521804196599637161351661357053231092471173391359339345769266899362795346946595935175365462878855527842311270409130721320176679561245208379175432184859132405281893179627902064087020016148112753305593221299404648787754175505801221155265306714233346062645333650258181071905258148396784748391941918592518230083347051221326172105124217631673517296376471358413252844968217833186865340705180428983054871105706189042603153330822709507631092000981309789036182905197773031200024544840328248093695975409813452712496383954579239220316042809562525283033349552727473723896671174548543266027161935619467270556294168802473903240092098959700165348782211029472654787949453601655101893292079179783748914744184992087877863526553219114275309677490762087558291812966367658083236868580255323755872048904159843873531058458609501144221380949017107586979524267993017147515268523473194490091445523337003152562499521205797400802946130979612356835431205669439784245993542852125548025370300885586156403412325733240815481771707927141160037536764416346893087721188440009870449045423614130548477367023204196839966426147738063365315163844306385939716067319448574006014433670500109924789887804991818049175614251562443903749436359350115943910080947302394337299746605418448133084505212170690815617379654518044611681261587020472922843896665315364820648926670142999244670902155404419303617698485260983631697881668307589520151320250862372719836604623171520074055316165837087481736357037391247102733789657351199126134271615691375913581199360001354899426416880937314354600722585790018872727552568926664649462159661262991939375504554037446853810652482557758359014679865712149785424940544369271250862234080729374858893895534412379067797579747822840213403936732279748527683279796463440917590603696316340405030183190230904577501817750360716292978907025442366382018910506600907097266897791523235648445689562536265292674817901084653834250062318981953212421311221097389346554406219196874311991260627274497238665356347100006485236780128316899578578754380060936366378310824441189780365728613413087647400920069306098271595554569632868036516126571303663000428716199981575729968828616916862835169312609457500480454386386784002629003661619299303014520239471234930253300741844005118688286743006020582168683252747645564334542870190935175074466039020164317320498407545356665128076288710735209914179252112509035393055047778172763154672705251066181824951236990884480155753770610219696390958166872506284153065838823705343586038295308766324689885360186592498949209442779758751688789819786383993827269991323020661354965960600386657753793472961248219531285528600196167425331951434185200295880415405390398156744051202201482166284879954649217625438345655556073933850925694929813534699883193632175724043514735431422643755918637189084879152701622411884870649862372732242357701642428278914563123579427714708663009146011552486521133976749506407594748599334513347420830652378277599916493360854924088639086787995207925643527428077096620093272113930081768945962387492022787915700671977970572178115896283689935126280827191194765839146380260955043684680239872291831726178293407710716267489280829523439998364617864337051781305550788296591177026978728264491469107013731013508221356595710541215738340702541800081609566436438740551494555478470607604076687876990269116252691694536941853558809023951866540122282510030387935540723064497423020033282506885405550189622500700681637800965076907817644497699511765313327982531248100941587381517247817030904177228192750658882219574755536905033367722327573919967747423163008251210791825852426454305863587013688733327886931006230439848628073656681947114626596087077397022738144971003517352928195111966264390851091287429324084518030946449100987942560690073495787050947602143975709219172042836063063894383679058895160707070529290034551977852516781042200867357235900315491284869604299136461609850509085035972251222720484236823928800084266771030754633788822035233899041336420346235013321375401804043904436313247603469424858710664136899014022300969448432579060721956886474803450189137519731036048169169382085928593640125105050690252085229077926755868164014564750062957277589358244700582937533532952551781467663203084814246322934627532732899312514497211715719745409493313723468416122730267845622287508811436704771379393905019595629006039230784466925968814663892494911468808617352552334063599280747403922456525043935627445841668916743406120550806611659997050554074882618418208125985863036829582545263101137959787859190530003858834955716854942176004285209436942161339790030229422837949469088161488270264203572144161171225434691792678533061647599004719309878209018584195198157414347832593302288642728950568263385176818755949814424527363737712695622333209247803319608318414017577944322557283171978545276053789689760552827023265392802796909501565500659432212840365344668689547339159857450035935365542390223283335150054962633985161787802052582171234218730381402953705442217865814617861298611458390135884432528389698428083568991560884448665126353096841192963139265236673708781645465308992489818536993220128641220049267811507370846351991453508564117161530503480963918730260785787708329454354489734858301545604059646852092861886240689190437925449167228187267453749558468149423292965991310717096820868709844143123938080934320123375235227866441199730612198332389701552735550895603756659504217009181486921652974079463045745798711148563532725791685976101581366236360215179538973426990269046592885803847051312340154351681721487151910442328965004645630962356406249546888183471216179111698957039098604069603267161756554453089885514975817896637964988092528645304626177465765890827750865099734243589661504560628077695006169262463408071225628386354960856359202048963540698577929330171671966495192601820233304679822512811049569364543336742040902854058986035302229573668029465972780295408910937529627158879300753470264320412476070646573667340814832308950297764283883707815152878932026112076251555648186651454564397349138659189460390118158418507771702964722355386034974764225140781636113091916945158945425741342744357328385768319513927741713602089331868260781563230045423933123030185794031057256677745360922723973088617214544153766552727173464689292013382065673098794635637319469055996198606924755364445181964633975223970852923689417475674309495124539553439726106065481189643895353393360791485898211154381012443509018525181357632040953618861900674825619122905434702464996192264424669576510199919793952089674558920126999289179713678703823529961538653969665947910614537505678911676617929032419378059348000070923075324425974043279715332864437285130096715469154974650737933728031659596542605302085418616828703320242082033606022352874706619818211870891252478706897749569892036026957108006395410365124292996160062062904925554264556894528124571250820259453456476524840616476879517632296180896324728139135516794456826831408317184655666347089462540131981291917844234913712275982947316440825219000626427774313979778942863254504656273380332451663675436302238729974725919366021113655081701319685564787335726877214754353619055873205201268606315025975284342906464503257134270747323558796335266366135661852296221832910470240372080601062076106814370044023281480599241326425193595606783826519631329438485497350119975851668690628478597479391212176101475057952858891167792335017224668738931005542229020117560478271985091252027598479504600666513065213080777870033114017967679211933960082585075953425140557428005867068727261111758850669780606358458341037247225457450370290383171942340503571563697337657473978989813784097692489310442783694525114195432302012338849293053529288624792496904087920691040520611293829798014465898458861661237349971246002894328045272796821904271363872278804348106587363988971245277336047529827911776841785928267321533324937914297788207191982160729536045067270078932322504405527411053611067343592620743233155218376148251111524189964162694576686226899704201751045700443135084675538616028039021545186081289883254076492110753097247622205926004358116316306915711964236115529492852736274104738896079324203040767029023687501385804081729001856868722173769022724379700975817985465060816483714651070200501953364430204450556290140609268053723951235043827007448542037027193858186718511765230839116977183795256824775595862800799473989884862425570732088568369972725741669118571563488630382533467984489219669842835019566209352938141407896905799646545432635628907448277045035149962020309680038084592472151467440541619805850857993716880854656824053325775001902578366951677213253336602149857692923022224159592069998548961795408136912539620168901792071462991428984296601017738049254767649386181324836311912838763061763436727058900599501211277511384013859344167527843803045070846995233719160741966328160762144057203840236304916804417184148953026137414239724562237022668323262881898806281432164574929190079963803402576510382015558255154028660912287041969421929760929618088944579955607341848300540554996653242185034269295924503395106441362991032554800530485434950591648834648924390369045368475880040876786638045209169025822298162638700886670314883226041726822025891476177640033554075995579987576146477855271056267749228198310086852883106947977481507529920567918650116078301381542906340831664472755589080046376423248210896286343608995250033793731583419525105476669284471596556116810252348610516257226901641097033747767826077581101172365523417755234088946097513677139897777795905779157034296036885817123187639482117825260518001155577747630006845458973696954935497137928067011442461987438391800637130689639646845787312669116788516520262696389573138009373857074014282727350827808836887238804217489516003857921686980985372711207983611795768061179593589460471692351068465237615819929568237542072276626206855263541715752185508510966353817210632111269580784749413268082396888922417931320082707275493700631363297379526225740109620096140046439055171644404324121043998594401513382544703690893218455318323858704718164649303288329926321900942537512795094264579945792506270701942413346062367661858635021262800645595394712542625182346981348931163406566107180613758799110534929203282387413994677903592260233378383437145070244011220450432859292617027652457775306257896686036073387203225379932636407058869910309849166167300513414162841191497936645538268483523594938713763635879442914223715754257441377091426919077833074377427246949679946163449077044114994151155251289038892079354334645122815559224028909189118639586440348903269189074949678929324016102545586670203958064066297042625698927646104282527589901925900901725316687259016866113678699213405668008610279324981929970499939830533131559131588401094612150711162638914148372181526866076650213212706378196497407555880023195494062063276735675065258146756672397325662831439047463737677608240565075445206306745953602577599921396078579006322879895383536824936898963480691599352365823489608577510581270890740342139180859310820787823314405026760887517104814818798536802305128541566810473482032519563228213811228342771728655694111747411617016343740494895572052672039772460605341192738354525531392418581158671057643952617271004438334687046807616375209647841225401575141341750653860314763744948036911308776750766671077533458140754977513745204102679962284012187469288425146364029929642112740371230614158143874502359462530420580572436444871982353562652206544379779726662150954560445022939879433813658517124048609298951469766585145006461601655272258184527966000483795026097612549863989440919674043601840794354271265063966212979721159353585714668392245267794631886727858254917945542252174965907000434701458345437499708367299928659887621335950377855848053545021854907817887340309519008650800406787983854861011061253330313173767954468106376123677485534648609503239077089217131330357524793768129599093680367827190213628431242043860326103921189796557878769798069986186586893362672128439540716652782778560601300967719893319815094566645601731128149060422102622218725264897747261148380837137495256598501983635540836242412922382333847546879224748478238576577505085274655983737387838839977372707938250634467793259474300356821952841116228663980588196240953240201897364896836569062257794484799400703884707912405739613857549251408116512123866117804883105466215954093207011751701880206733089862198366512758090259816099023078078754104589730878692803873488024607952712908460980869413358130521578234185768063154543172041476252819333754384634835977423344507947620848362362518244980542893593494723023277371241413357201146629862338669882414032707914336722165836583008688730775014430269036276453568578605742926183543085451082022674268072819698726843486832770143667943182401689606277551812255804365057461427960108069831002146612832871363681542628799362408300728047374106332427226735862557717306121747854053874360739297858370834048465713755656080095678588065394602356232318457662569167411376156547824671633209511334889960912600935923149959696883622987350198819188057970452680370684624206751352613669142556950330427885291597696358240236902043132801895675944118905206671086888130427052355989484997371588825500919883437168720385105914679402292147948672656193508300766953155823418866561175508384831630683631594990572493508343430774653042034145211688298879610449561907469895049426363377549008425996051072062118712557982789145616478515015829258525163268063990948840316284319128711644131489720655556709445527787902821219279141549424167321759408950531478433421146199919055014835088078626801720042247324265313325770163285878793661596328746585070025539141126333131138083445308505407461800355976663040775597442632184071661387653280833607632269922762574161402736627612568284619600807768851487790608474263985938105293292117596269677667627651609512908724089742576576552669411904090830768804284094884717864010123135285547196801105287475079070628230944942785666574571030215123831198945204798727064632755614576328498706246675604715478594429052837168533969602702550471338648828036687271278346385784752825490832360927957713867869996986508312607208964030724248988360209511867388685743894044138882885524247592493771330430063658544541161785246453956574062892286249564931159981078587165702672240200559607840877242059161831407853877101903961279840046610217076508676130565664974368063147171053615542709647303015973512414182956452249657503636117246425541369464030951078130886275911632425479117759235606269717255918903426525330377633459642751740355844319744723739136296033633113966614990382133038640244899784698576455195468982347191760586867958755524765536070996176898516475603707042922332191188303007529259690262990380936797795143222824401538053420751913681836783689947543943297969919416807246991950559527694917522985426859871610470617505203677443561699438774812920400681314542092889818739167079567493481426938739023750622505887819077717985016790381365471550702836703586752141466107062445601720923961543707956641189136962352680094861787751611243060687116680103243251607814604142569085468573009119870463004148176930896912744155514757939969177400309412482209518749724931336808766657713484618179389691114099103538261972381199165049965419648690225774148753630143814014809492934421615251294805584125359290181669563221358893379368309321093183643108367237675661027479457098046351341384569139169157638570741635461376014129490969316437522023758777279617114406023187537344384305455423708019184824030546944643333741089536661637234241901290709133874916010143580512539086468839840717994479494617581657319960451563873469355506591377618513421950977130595268371939078714001856900462764339480389131817139919620357019067713794707161397884357333167185884497974197369996609320817318308579841220294440551855402200903811940281397972973162523195841013763934539680918145516659143073133514807330430961837724302934857574700365290474521944316820289313391234777717722849385733195283080644979720911431303551803644100011876984437957869138288973188739822830169672627608901085086717966376449797167453704169955554400598164001378714806865826248637996979048724282433071492760743667758368584024277746524642523499541225377960409134870318230691645617217652777551967278507508931572454522232067748514323864334406939488647151017038266757791005071829682600122297518096874499390698347563057459038234905217797197664116007310613054864723586439480034045595555024589949927165909197543417270898130132672825501488909370374015644951209587855789912814603344018276051077070813619154874528938325296419972713517672575812683438632056431631639900489472869695589928586834384474620172534315904641181293456319126615458004384734104643896181305851113715104378103729244953218527403909491128652238642108015005089368998878679093244027811169972178398220666210125838580799585587801922820431420201206860099901175090347590002807908511926907143502939105884176561135421549197774026695935225099405193957741811517717928379106613683566897879632445050777623124486857967580146191554489967764557475704977820653139800229732881710950405497025558714520517722300541208240519504477418301168745951814259941333644519642694383568228963625133494798902112142101198362011290897187806392611718985205058550233700362321398334031703217076270916531287638019149586504437512512165562192048036389136361489922761401683564013426022639308797609431071995833621632263316092583729933830729379659981430907276107276797618517331298297917957081240626810261721291070325393398884525744648853707910769647454854494362767568079858134682458412086505734700116528870346745961102794755918174645943520358033847310205795700242948026839821096495204817366225960625961093251648627176696501067274947133269407559492137027119391463098374475250632283477448543109544043588128801141088949006995900084484543440535878942670334003003378214129311028117761409161790427476274007689675471688465995226604194894453991515583937572898667345002477667169601175417570344562093853128935408511922911816845065034679294934943341690069837980788524444980983591143929669465411797470422640005129395133473365508224616345862856181775208584884094024727577986998537438687694450064409921590387058583004309901001714529253315840224614359500328683821517760714841523753007350273057436184892895180166636224710528616429800783680736951865747313406317746062057561306840874594079150814891694014067448147220359355661269417930931118323782157391566002449058491876133754358616244619798642619856808528028005241846641892262049599371468014209327124830155627419114837703470152537800502994295518371160395164088078546274497512017013837829127774582033820314706283993092570006260237751947691237764576749845898976038971884073675253381860359592141852242059867667367596106271088745807917308151827730367700924478149194873278368761190253007697543085155270029979892213041704560607600161739217402801580999665629697108972756297575723785380601645693317830463522001772271152258476936240153901864469889729161884732572807060941114963531493211004110770157749833886509376483481755087482799578403654347633090247026186822181806970656260149827161949402585777938324997789675204665778048788789711072245495534132258961199553545124523549405570265190845953649258136057713587129619956436241528288603238289969746257207592195142500251368040837523176777221287149666767120068927222079859940348888491328603467718312058227315621590849573341267298308822631541810491829505795196691817427210373341892597929746737804414617270078019982458334873059062276487101175480584570742363304012025024860463538996848409328598333338484500271951689685931726661675237446653334293813567884144041111431175284176298398082629933527330259693886551831057569506757223012839407574032064985655686770917719243022709706112327124422324087054713418274432025587146822082010998491194728881117569570859590660520401753031355913056277559221152997401681302024954728302185827378578383190580332726489831086860546990609025916635142727279162899943394136015271378338848013908483544489396633407473236560824282291768142863246780466569781115995417517839163688414557999863573759975259411501470699149514752229492393907499164135403247358761580656974710653841104734505919554027853506423824056109842973912193602439307924667606469252709980782030212305390177502467623438391599182418766510648912655680679734847529126464040697804920020049208197610937942545951023335078371233285948715984572115468021942529973884643849261584307575455272908865423588620558337797182926297758424545483763911222159412484898290594226206874057237842994856159030632055923070798353188069340975718586074492237977055313286092612600456932766728167610975079271133452721975688337082902121292259171030611557323825263399647424060302569583994795218965353281246520125791837701464477793453329500652704848646417934744876008566744579382975317633238512695380804473837875206691306833605380991649985493010428232813742715126650961040475609006903249217173218256590417883117118769573581142743710435936467969556131287016286641161489010638890391191321920525359815247405906010715321269436974207713174824618529633628163087198644105111593844673210477386172005910092328391797384879847028288974410391347457363633365969972724917922272347220552554201937933728038533481509182965005247357553568768437850700556393667960432855588676042934684761157155646254794246988305016373497959709613237176000270707430752018981137732831289917489002937283410897233264522616785112980521041729372336368295569632122112550167918799451882905023192890492150311635343791969614491221341013177571616972624465350255471475345503443003140175770048963473752480057168353328397231928167567707383309859296215900499165947576833297033891156261877865471287884404441533481625162058179373753914167102570005514071178737810670507793185927807644821683786862437838489606657327460607296361388056509452202083521276881784434277858116180001745483239735084389979547776178467685756082150228923098014985111236608679087006721433371635737405433979615456227023808596825227466899480329768286490520200053971944076400594917369088697783445228135139513204464278775882393578798450423197825729523929342738846844687117665958594343750493111145238934803867648897088471518960720703700292039845310888044281647852456768726364595937175272491315391315703169891422282231404370715250836528383362498252287706090141958139109171570064967231471497614370335132741480152473575156874820085486447281771944094295164789029384648573833421233744841353406404099972747393110924256540545563954377985223237526493346118204822253120450789583364366129274219998423566289724841388723559535117330741890441093141458617289947001212071693295629515828585326252244991222743463431227085403812375751410919692904114725997095898781996862097328074657683145706378640002472306595450801034472571555364043588326619318352573502011313235578040001224560515745454506451816780702832549138848184687529413256965605283152714927314574846814202362934376842993712935931595418204128360038619624263500329659846942837713924721824813436206142741825186860525007887828211743989401775429300427570294468867486052845733846054969862296839377734421212009331407195452738599046838360336898994661116921126073654181368443289423192975508789280810387286171932265499213769028893403663201180707881562922596853900734213450654908624214026198664655741814041896691779721938199941443498963317415040567460352727313210106993321286369852147025147766108841467364152083882203604698395792936031629713569071029771654597555401088018845082737906323241472487926807852417496960359645597879231859991963760079906587720288725710610396314957058373215029282618868380459089073768968973648540220336890435778308366928210599498341848816431720024889280043857879889072454698273551884164341396011563089346467314321076340847871540621644270885631856329703216832030877642184463554019266289830545947276316946240355403728585086543910773313604097732531428112463012246861574960593104093919081294461536955836288509206614328385443380048538433087350058575446195339801652036234913006981635125857894284109980024749231266298297285575046083255156540668279640902802321018219430294318075257222657848947290622869102999320618825960908419372946312755451207566035583464928941125818628986155016278764326011238999246335349160475996297991791932680619616408258985583540402760195322148187213158949278665836114251648908593728958253470908393166912745424671047117515425876223262903694448518484303882600115077817824184102761631636817050723026443766933876111935359840916260438221036766276920890681872636763113265784104558647008409546955767174969163208769553750630862045893824878229449483308061097903872502124938970105858638776406780873092145523922773458978167500908587633650984778299972502036174946810383928433146828316848126825875714493714330754020509695709909989014946725599376553025038623483005623516407769628853524497835503505371086855865105272469401631780767797256798003691854452630044790377424386705164648911257513144377935837018397572731134782989484269202785882186165144306087770350365340214575247943356995667519052259582832238550465463791799708900727436840153389247621041443644880478158806219016821615654266907730964949198261742720480071439196621619105071385416631199952773149136220482603603507983459146634292189213571412183623036414786266733089397225833150649177157949225854813142953723976859079313167427021272395772412584141957404728518650863957733818631406675558584063289550447959015506790664161749598105485850454109790610440655858028627000212831158322562870064416276142646270082425457040093900284630320583965924488772684801398561977841502353450976244288816246425388934577190402807783751289343783743199740253870581728283870140530278467865517254748181696580478553104626102172615692608622312198284779356629182484006628902269973174941635130109720621808917630045305129372858963466155827821034822902829230931063275182381201479716832261134022116499653343436402423325113932505373875469080452312726631856526764882953059373678957811493037802283079765129555748368365742633756951484374135083298825565687088252445910631961228772468405053091812864065943089112891711111286015999022254773992736667893785386717743538705291653115578274214128006062073929474697558092801444619824707839160142866893075317291070601574365382600516682526675018745007099731155573091952367684990422122334460655795200709235548297558396498514461376860184631747664946740106808001450719192265581942550337711040971533476639148231777951343728480636694324540567619405762234468928485946236413077332216628407954194407245417841601745793614154676976852083660927339016958665740394533680756876388739587545440794828857887512053651126771501496434099391439182231244723400126793777555084345368105679595929731947472309563418008138791648039280834243565430866154705981768632394730678873962394928054666212101411285018345506495919638150786274615285159628872110734539600481616908629032607938697406030381440237784250308328686298294369356450618824529548070940296877849144463439511719756001713084334375134583145351108959851414474421788555805640513879360323175753901836333657109943635693448974742308217026203794638322276892842588321566135733335339239434177921633522135975789624400680221016842048503322338145762703642256946880460793369697192539662401744500614130833985021128118165805865406949037417854998729923309818937844922103011140837065657410429012614222653497120387387950359175192041279523117690784196974627262193705028980090862579232900317729531806667149998670882826857116173918119240767372777230453409700749894568189924607454338901671606955080331310323664962081630101972475915982991774684230769966936361808446004158171956081901580345581207308363410081103733608963907629174221144952633280755191938817994920329791637176474687980135860345367110962361591163616134097581930469406851839312737520040262767123531465447832639954870456391860856892350127891141236848666148997614872113431857745733605313395499324713339969842451255333405711227821536759130229436826550349692965201308768395261077017282323211066186881058112005460312998644191839448356219515443285589016148365634004423069849261429974441828953066051046022092083560304318236484456506560963412054625994956719145453455062630568952128477938680605910733195155131437485679261726420661561835090539824056146981696123143325588389980007802451192143405006258383689110441720530852742524648232577371057188908785185001464721939763691007834625355477746602136283576543474122523799917310813679899241764121740453557127571131386795216363135416754704681040988598200350670715717296508241291873063414646119576687323403075854428927676116098962945449380787233858302744428763165456079851602805503259524606041013216606148500341333833043748524634530512555793240261858220163551677581809617072917849882894009219754787115086664200471243062902121556935906894867539204683145992599583390162440647252188515710031626263325976948112783202787149382249478147933799367028474653270073550640302373059891717918354553974151481240107185863589746007337522570162133951299112229719451156539874104872095301141220139316429668542371811327522782059942010833590226032963200697121615528127905269655038731776062233842475131223787382480318412098574426183258484518773989803735025330019774686513487636003777025735530171555151718907569361574072754403214203142305166039273899125848781055872777361827625168200957503004942934014941331933851508866438570314172768509744849672229706487525687901801219355874291615269104193875114964320840547285217820751451906360671936340502359902412511353042263025995268982296050368922354120148943290588747932825753670005343423672109201514972732339846489122585763172547754093225607649362816464783911396768795231799132387910405609422677810590500384942465343656507110694318211511781396734863788254216486552957479412693754943862984713158066870926932525318868855110309776196069551634821129600062667847551251407031677181189559322139785916958476967112001768257244892054843318764200766669878291551582618787684919312810114939788717846204943534892005439866136498426506797717385728270790201482038946872046653146927581010538390546139173629330668100439190619544686409953432801132974700181252776367983476550655050993239630850047304775937369142258734138656296361417405206644210404708931441397877817963078512252481048677995914645367257434101885705617141048824677591077062272038683152936552686277292045182677207543435203120388863696995782828136581638884707280257042520400789362346746125076665832809839416131138193808577375306098461032804179339393732863700726680755472479141778086893955058765565652843346756680230449058650250518297384145612255990912191281964059754997566773243453717799955210293784644368391784827241187926411107285955653207613702632408370165427767652336175697874273785347178865359578198429376714689574470761253385313337880720762454445315918389811092691937555637652249933602101798408417550765696270784577342388558713118404662948162405431239945759244530000271364586586908116031329933043071700793146513477899195215549965300420953955438153905605522530330033573903313945224442208667953085887289874244192938583078472582142991421368203140546783624284558991625735372518822383009425893815224827162493101875679476894689967887814176541738068633860174596439575259949454568659146200108836889914895028226319155467223512761521518203589280519815446974327183648876528503065521904789637453910920933648097350025504508064317996610914985866311519286557331742779284712201779011168835478842075040197835803707985453957183776051850240461564672364208060224646815346481404230022534403350496191860054441462977174816224115200821075274018858386851918248779635736297764803993794466548454735941762155084419170615169827435992773791791909016808353640814970354534539221628219250618152450783162010209961052314975795580784739845892034226345427713619974093798798502298074858405473651089880271579076808949638823868776964384318773552530586290002003434299310577696743006529255621784090564475496224542437973224608959280952692545378750412919156164400042186348288395725337274708594590871036911413184540824533180215811675726664701875409011569222705955347636457580045369232515209169061184615340937758772461166525012646525140994868597562715456739046873462314780723632254509659996241892606043911042761461624709545177937171618515725020005193573614169603738470714953645951671592924992778053910914242381177392843010983099745574974385380920152343093797905875992249554691447255900681872862558642433729479144709290133895955270986439022006174596357391510853645056006197168179930242984846053020237682432996558324185319239489085680402216849596771219141455920713504809384876135189512001484471540712369269953570022892687459312125422768563256875832482740958236376003568899165097219020841753547450652321056138129631293575741779284171025237533137974135528994689328991738232204742261199342034137686168012675264454553206562082547116039342220591479828710228094920583451999516055836597786988111017565567482364739305156854850234770444299230757671127193593554372025074666778191657762662481951989911150994610007433777573738486141636351566823941673396230622913371621045610679979986385074488724817709869304455998192800916556773357303499760243206375075893008607365466124570239924596149839552495372126217937609754713747079977013081991815292106191152884701693854833169467031689675931740184696322794346321898930836057967126377101231694955223670726779875166512957703112071692646364144859539600313373144578081988687914796119922804168840075370203883687879375605118568554741085869375996136972397375137691979353572278296166429366994626002750961417219024256360412598099480072695929299141564353563045126824933039478689843947749741800751775722685616482980692295390112567891816351902840779827476189646420652491406189983375205696446398081221525787332449192350621557655655675202561021048398791440808215084813186769441612497580933636462060965959178184031158315348692166755109747120158041953740551612969941437896363523663922913830786429198503519942792282972415182998763810624621915835199261646926248148986072814380863469274220565994850341883787950532415111449330772145164700279248164829622135885408133498297667173881329199987462070216898394494580491793127621218747223508006381380701265167061034947216726623477067277710653262104858617353357293794305642039427052128875942136859994901112334656572626029781497540416795369425328617731699106080318842310845985681495892732022837844421567357633626175035744331873217825118469484419615754372962169138366439879127773467462146522189796373445448482281687671666644015082784999419504859560667146357495491888332699147276270909436600233416878550864915413076905074774187081675081404840356365187806973568721364177167126570327999434785532273662665330739179383133146901522463918461771839136475911970782673226326809489872129826091012243964482183232659594621719891921299541194108054903058890955032176210594967842200572634350683032798093080335153604791613710391630370324583907022378841099924333208236979375813502630815096144430258071540613576707275811221198597794226376375906535758214512807975199462249220967177003834006298264665062328915618002657249908608820903056545679195878460429550606160181198972514231483334888555874990849472073818442384300155707442299371115740383510025105088011771527173516084675762901273684965335955193286851929334243966924945464177998601648419488528945712903528674968307544668655406982624706442979870678304745738657684834188471542587006949596122642483102415858286909832408827206523061369332937903437382567963520138999797416661520984943040787843557949837876284412591835388201155459078517435609865281303564023006710858480809053565968237892174399802491755352625187778137549051640356510988526243548694337300204909364701844848970501311478044617745067785483621625877189051665362888474735283324190121614738821911356085333141721915747080258032170482762734558728837114215802064554272838638913201041631561308430582464684816511000541596399411678798195306710558935941652352848065165945270345421367988404980237150310568534332132713303324661494983521983265316259484707108874116053744912998340569564832784249284506835979650064534042770090592991434764440218561140813150030784242399691554100731435558491182951413436398989515383450646996202366549927075790030516482711876213856068554316270130558253351918200794829857990813070836156816492170694562244024780754115031556737024833998677205925533341411643311737600015452138909181892777356646309231923042037210202556535254412515338161246028350022965817412885817207054269237884781573404636583048056385618349184998098738366983169103269556128226572982973707576263624822343376890184280359286812576911261757314943658417837033049565413464148748175800719290541408643152598572917288336704054549798995104214131692335986459417144057020382282898108432497841110202527346015307275722186942799302220228540829065943426930355440845691572894157129731112171932220122562218716913833238890108262538352313046407049863840329353527636606398365374777319799013829960090397052567740437456069088157533363683464678517955575290057993735173748958972791112356935479803988198445511556141444108150830803381400194360732732453653363243085206170359977928141905991524069795125421116143503486117899332180148152598582872648878630924967980993550237637921636160751938661051665008956491029867456397287522258510735628955698100689271216570855677033578354859772903997728232716669514316482998831379178539403830405520407062228692105213264181286596888172110064369002194999745224296670038523068240313726150238398476846104485055068167236076398094313004422804763264912388005195159965459670889968825096734162989000221734179734292298671323257226614102901822840946267058377434471657962999863695229683551462180557159805780288816420753432489866057827313134565842951322537507459644811081003830385367676628477097974566602408153456812702822710923912174876183352773118570547954981893275314362234210688144976465665644792017789474929897605920280709225012334253840711592805397942990162094456685187835947612765541354045348783939675028019174018470244431891980539568067817521292571944360363335590290188039277398227789978540387936455300815102416494250153129413862834979984070896476559882978956113425130402275464771634097678875143228397724181326163306011901964879802042133528871045704524729880890488792171876098176008078980521184562433200071003358319026804290044252774747850660724869265012461557844318833010077651597072832346494057296532786119935644012908053352140042641471233143547429556548157875065411255775381400248284529635940233121380348376102128395960922025801550830616337042794029470958548667063330754565803697594801969086688491134936438913927878049994106696210361643365055906896806751142444900538577577627786479077937038617015074747806102070307273252770140793624840204749784728500270737799782300676188516436956170720132692755545163291984591701041769621410706323235572648682166603326199439644260618475336267569737546961023101720599606850219446207355088187070924507438672823847460676733256594487920573559420025046724582247561425908419109864706957339447602243922101695131433364391735286282482040429577098245899581608492835017454200386905723315909541309372939145636379799490991093082091738613958897080415755122496743072045823572570613037522159513515915613311103127537004309900430925837565151607786232054469485571338722011648036236087518669928762786765874269122169790269075288816273120687446114972261453369869334801639970683750418494753154858884456053539946067088165470889686330632481378547323785040877673288738507781293323016137579850678338878221980445463555910089132362455295005871488928659404938984057882825271699152785834124894493929111952195879628439111487470053740532649970835087204351641536649876570501423214234984326797123352548228948034718766383720515177216658401899563710887476011521628573574948075616582299498037134572470431553405638921831487397182017456420841191267704197000476991805152669440971939269549617234096815422348080105006966181135296646106470638004944687910919304649978047990954102176564324699952162633965935927514116462091031080472483395189277526406149069321551644752466619615919090126304453322094961617888334717476495475849704205187482826051909348779310844089284872675890635812609583193376241761409479437430136270856028777871681049865164108678035013717285715836125924096818990429814016748099911233349204634016083433102204434976858719099083757450775469607042733613727991217312927750986881941648590113995170254501305898565154489375183205139180877994737035392693449204519891779967246296993566627974801551601733820546727420503361708325987428663270510225761985738847616827795724087840707242236030541054949327150735857534132458110230349520096536564762939426360723606864931330209932066675043259149634489979555769640486069835288888452397790487320387613977075929358883822555830686888725933455375571103148367249329883109703355312569180643878989615041308023801662090593889555928427708191819541098021060777076288844439236672853597106738499966281953316088407049893203115957160639645724302680195328869497373218451838186680996617733439972192025974606675993100738898639553793329650956373718877425592968081781626791802188835005527370337228883138348618301020275218608241814893325082936384999285073304112753840798689861061021192719697361937329648295055083199976680440980884794028449927069947214266949845591601621126607083426096108123709620457505703555139767700756732920933722342020367134248125306483439336218699870597926614330657915152551747348007624823620721406579603739989727801532644751122537976252143799974957431967517397880504130551424599872477548822096062599462322383110374113937886912318437601980566789392252265149093582112594560201701709330575017380796213826370353973374049964404740478794756388609943027708680018790179395750220356419773290596979288324843000592309375571248956308770872217766414181459537779286621660532273484073153761579172476612766555823752832025082810580289445393678100725115080239600062314911413298885097249495375646731638724439555566669958866625178268161533425230887949575413737626264680253172527383689473056200542910338608984879565513409985785466589165007132444471043810512869531492404776479998630226879134454050271046715006186334129214274555427622343435871113088462610417783440675523951737196900259092898379989810207412643086663909706818422643537871873609997376958462860760478252213409813145010360794814478343281547933919396143093361063732351042433165664464771200089326000946061436206758793699697385856095424729586207753723010189518299025277035144812846480171805269234242839421305642854374351604905905619580795453744868941760073429419352828801536660356827043831629923866664579199079570753088061239691357022184864070269828121114515533063171515893639316814064744901501056281301994492176569357284886954128591731888924391616313346208252699448161217897147850291895089565766338076247589744358972039842811059777443148501641247175842926252315661539795123587377356144845003193294121450104536816678437939411530665173313945858909863882574691414066408712741188389466540331576186158414117692578670158560159007912404124344842495485402588447855132205940380567892193014124843329411322208411966343641344854547726508901607937186165803728038726764552616324978846079856819499976119831788018402707645999494664184941637038855421806233295123037416268183790731583957407512121625580429465153025214310023076361221720121481503043745077570366937070815984363028876254243325339709540195377301784819736992747186759390682380751273261237592582318702746665189716158509051688057521756253150098939537125965101280157867126086522463900557921871210672077208766846732136879879719402428254939227700283487926239329827599551445575811029462605549418038028974217360875516819246631386913018396073765253809138373302309407577631502158670149297548305299081186760288472492418703240133822671054879074908282749047599864497280575570567075039348821229069524487603990204557798462318226219211172924533646838677441390675861954074944341314236607368367848753475995455568624611582258689212825905942762120240137018025550526140462624987427366760181008235484438607614662383529281523217775466468439101233449422142590158780629854870413655325599365122831805060728669086689560987995461710566998655924970969013917000925260828084355119651519188228097465625049342656344727740148817172849820322992901759880776714352897769666656102407133437845476472048725951553957831396294930510878203477077603507874597779293939589614417826135076076164016913675773831986447442705480873726967267961877011495629606218535308285125740190217089877166002029506773671003971844897962381750045900791527738596582536667111118772107978786823882520563839152994822237233829869156125325823224250010740191369981561611997465334885024211481733219788399584205968000331136658206124620119508665611158608199219601816983065169450215383439077997138759479668312893437168954550447609707662779922511247400324239785974048108929158415652179794188108205094497006667751504554998317798165724371237101715577502530340497216352995353693881454166016205741192754859472617580669538205132688725045024051025662968219412490833614731760025708465357067207689593750818102650032202565732334950719677455154318021682146371271292066768019838801440702157880926672556419675907907075286918702508605358936528900674001258774377832180397051957833675872296808670694747235417788505343751449428432942959802799756855089491595758386384036752066558907786751425200565271547806317738987346985991988675352574390850309794513475117325993648446539951621783329882694674383648315977725880618349475291975115218580770600208666121852387192291386837070364563021579381335589916801210386064581275376473203715730343654843394361149741235435478720028546767025800597957786000198722662014533656623174855357673029744293958395123618281720445077707346504653205351440305548138618016631596112775652442456384442119803304168813500528097908038279961032716421805527131535331256993966992340842682100904314471672979131432674872555910402587998256390438104522931701370972960024767743572058860292282170362256324862526187674521779423595766404449456606184851420767932058048420401992540518330499959957542105587466857109617640976086232260596283361336795740209649339064113501317179411510077630400776537810893010895287783655710017063207392284560197515533075528718991248473864202731811818031141417780846357616471660089871896394003840560052746619451240611374594962624738310892651457650595164747993622906525614150160537832277222411195689817269538351752527977544622355246864613760437886939353559176310579279174801635355146747474257787035250979513010375469332691586151998244847383680099241256602670214927084716938024721497145156414331800951595171353423159289377746307180904005341821890784298265084183936144390157856447653706653720900225935273244595776316069494630968145052878444339395004075836740480664985136019792981785917222649792690103824706308299333438014001013395409555049100707738464186517529438984060165566381365971632456540023508992327787652785384664768513572910435968805110242065907949174029415265228975524685846104915809146881533263281612281515669809926740588181273272712296124792278343834179590617855112001897407974936335823508563186531094371061422705509238794032036582127441370417556528549177214962924618030081569053513256155933937168088252048493733456523647870119911128431691479030641089378043700414892337295898151816312326882777971357750834105945622841892509625118542182709991139786544773610813771317085244681265643095568927529201566322403025462280791059761174398426236582138980329345791667882202837184834418083228598065564902812301606015263984906935859810871757133009529474048308193113105030458024001766782236781685640696088968056266005101434728197678101479822841101377336822916011795484043452350968700091227740747421188169223109760117554173335759096033629419498645574724182364681828432668694800994840747913917433691293926352080888603910807659309979030357615704623826669850186501510664525318141916538963636275264370569290315617942547056156870501053569733581661330677793719480065650777409764574182109771127834672541191309242492427950053063474629672608665346005648599678226838594581893928075312010180336216733840046095748843457967548510591079353293912033367115534480417465718198491425750985662875851323284473013207264582492448956054870147235144270506582071289918186212951393084995310951780495985210641660123328580481195477015342048639901067775460940746071248343678997719836510318845260254918415932839985283159789141859454896567662450869138489770237344851017664121716158410494002120554418574259172770629403540121190069278036494713678027259504602964569970186875027488950426424515315602562062237600873103563126256234651412446788197193790364630092107104081995254589526140653392560989831511597141664679367119974943017686735645257307104554554149381831270760756836757484645476726864315154640277408436203809429382414080990217480931164515899508819340105175938758683429965862500828723305822653835320914197993847309735798383385660839672845081306634639539356238094875825390633214925938870115283295459427606624656952500068997881474255003927784906832240351610034522267406331597927499295966905098134011683812885821471262379378918937872421820097706004169096554790667969134548746962242394203609548912702639205217797429776422735719884887119950465521072496395360321116806926690295076074219629025554526028243722149566456790558863018963009714882449857247428220753367408434640108765842364904777100870090432252948587004397976756018526187090121485743164408728338822437247384168358042500204850271990901442964910895683209599198031943194765521975836406321264519923528371587817446054102061355193236059605139979689861299116346082143932283549088263723801329427883580325966419760070634582615399928766087211307420402787017521826601317949714632264478363066726978568537644689482967976102539048725794508293901786277481366773112980810545649356148675512813289906602068732392252629039284805128742889310442555784135439304674060745468097611877185137271673291865798909762516909635294392494286633929334725216047658103464753927090301230477078564784520805607872103464895275811314287171087769070210870008674692914924726811646214050232384583817891387302279360761528814229146231454814859089352687448916910035188985260181347506660958529007621786876360880337086984594834896591409508009002413966342296482937115408377715975647993539591672299108648194471621436902623163052772019060293036364388495558947871633916797125284399229332337782434623574319229261457587342519926750984080333677813503523182855401504473577988980857421633788210559791165018428262952915233175903219004594903327370175127132447396743440363715538389348358810159979728939991507503728119144940489595152376322603733421501222153892336946322600460032735746737749000139979568512887801788768371683804028103897930182179320102418396301455496977754495499925910776546612680033795726402774286482812980537588186660456794477540740724954397486904032057552482728074831666145618370515972273320395652497178758326568936956752242288492866614152420735527622125154268211593454601558301477466935899227864450977675022937782974938449665669180172626913626546057702496048085320023452306915965771155291864194655411113784743901012702865983799439756371228951085262687915029976919917628487219463266625578432512122200261842984844880318336469469053393348103671197359552452151105398266893357652022918188901609165125039497515146792893510677115321773985321394428099636391099957131478783153290150587186570681682626525700427801686778064683793032253490148811476448430385287654012263498650334460339496944419601656786750433263076833459074327323569262933568356591455728803212878389698979919370529827363554892745268161673852958110166831376146050993691606038457367010170939432977174628481459944558606404726494498430297846679929125490674102852952986621885715193469846918518310231408611739805379891517908773327826316136405496041118821000818571328639589505875079121202686424487499938549042241705432708290064638939658995046129606603196805959647233941113343358571786348607875174778445613968148377069497427067524679757997386705565058515022664264340159040141736018250162683528259416574082938121060072550965815491034151250391701102376917291979027239273448150567683347877307315406165616686356736712398649915666238151659679368431803750506605938382998865323064219012445267113956130699896593795742264792116342864759671280441975639983674541217955577789496550063105238168820114272620180655727369495642630232903875490089684348417713080755555654166976611182321169985257121460528923699168251762527010332565680253603095252990802238969175677639633214708902102166963836157577618007244064956451468195421936765853085390932664198829464823772855722368683260636032173386638141835313515655829131148100344993601025505073064253094748220659759495859995818748456150503424435696668163046454800285909397586401638751560049393908425925605245356149237943653684317861872607648399814512575925876310960286837171070649412629424640225360668401786845566429973148914380140069104170629218414965067112000618383655468463844256342825505099212659171958839834311594963766131039201684294005691338592278662382480664118925880314256755922400616837264760052612493012993495060185047913557599717142329681879767781898878636010867507225456204625185511034885269592628972216661843435510099051242492352584906460723861665425566518791240293315169561939424129466807217680385818220411795187818997048849526335562649948746595055730497990582136344785249481458188594435542612655616821278854110771894013847393809124267389253604731807395957269119933155145258333326465111640971006796634371517181045622569276242776377873162706619690491544437124337754089235624307910975715822699293798463482784319516073198828271678052135795892564730287128511630799509176343292550866816515090119267090401723260358844630932749557314952769936470766154871388506016026741481878915098854133268673381645273631119419230140832248096154307082029893135985048082875266986427121105911457356725943379944980962966531096932868319187855820007922013174129761003538744793881511192961750176390168108640160378242422286638474770029699396138389892727392609376695421855433765645936155039092476892333204087311799490237131280935884725450151272446157514787218376254044749302715188899161117338312449937095586742161257973436575588773228118379171487842995059223433066562847741514545781490217654195403954017593030745961927608822166756223224807374322212464466330267370884735287483011728264615529864582831386204762192923462831204114284216013275169475591845585903470369593608175004133963613105210548554596207896433023102151260397549211858118371463936003934527406197647757697282420418379739589849099932843940704325857423438477704770912522236444211907965753847048970586394296103894589151873692348229890697796688854355063694448516186191035615703343747462673408996238502130604192822649602347168235565435146940610538662601321536400601223620946131257419868174772370195584295177202260451646688610866902590599970278279245205192331619210816241777372762567467217961799912901928947262888531661737431503507088679616553749937103147886069222961557510821184988797210002865340644320086745053196256521585720499945040130464526179953142486764563407710802193433612957918724146917970358111449960000654458321081545631762525467242941309514960408429043566924215006863544532075946898869611713448157698886821764185742437302684072156432441753189739767702438034894813785756371025538861928906285176902602378312010455241334727351783591061560160702810111350732157460629113166536279890722254695011770296086703534198916534719645266878656389089188047984933894265897755163855651884629126711224538280631141050220330559703528560926379422503796237772449772402772192581531494560753852796236739040715773111929800368032893152418677914973813320445504907636787724415352509328320447272184170830787459747277133138488844509586401202241394826439983855354312279427542551732274732964893562871591815605559078219723153347739388127604029854270550765396363590808887384705229588018425256803793487001125644330303224047355921763585270100647158290930689207831520400213864422265409097440603010235825534112925603341098874800638026695700287590351288394998454524818149790496811251380896149790993592884699553844820484844914272980409288604334985075352271571877702822037007219546564466724103547432467847213340299368357511520200347759774026495816781126648767182888028505213912977353337338503186828916674582323074899053013261155320222741826412444046278900947071388842747621040993689566105032426927346965959287966031208901226512172737319913504189032966215066367154164257918922287669597876822432004682271087227528574100673778292603395587622838639542456665556683681021726423851859207259300499771768064420506992936376866071234603181500221743427580107036121058400981716770394428818338021964190078634164327199139473649136271602737524622086503812798456188097019736362392346371880916107006277105954757138016319081382263662654528861384911684952121807019201472256674504059252745993050346764555712045556901694852590044391683003744772650930878498044942091627285199075048411630231337914102584887181471514639102520942916700089182328341663213999564729140581458286276083390250046334707991174450693622048010160730545225855481710071770880270088633212045489770985317510993480612441384890307637053835101951891509471150692298187319943233525489900217248885417515813457290904150628975776774883352534182663506281011597864736560918551713401907110221916496813273058231878440916046464729201048424737257265778071571223580074065901822058874078374596362074145372970709211715553653106570092943709841427866452030762445445083923592990001870377212451871539740267161864492026173872573940134749832524595323866063514879277188344398256222564803667956227183593400028830802378549177441905910026249780469721796579164085961726090913831547924758614345739151222055714007376998483870218847798097638549927887873150008621571479999571841734086494090478449269241823091281018377864297345824605834746189846270055208170104149223786835899238075291143293715569121831612374494116493087140958572841233572497519159743866855777077525687654040406150930849306989557187198643270729138078432833588730103269210256867273119456349970051203511311187193664046858729984951663104594751856293576252140832524926897122676426880019942567306092621291290256204130531152908594000126756734986399520478617802558341308117503368157690527002924155772988527334751980971296633386878966789559299320627262036385492681602742302060565773044112253454168444824739847414574385643570221225378743589453961627458772009379124283111082971056487002903397329501627699539684309894303281772831274659802745847074846092165307097842535103164165502762903983743400178789617754068731993879112741040985468881230366823100286738746908469191138536831270724288676171849135081294637494406867919842141931972730288276619654307570207876238516854267481311794157882935176840743833415145331287082545682931697339032011864485220451115977625261776475586654648010420070625028699527662030018307150931269545231600228363537680957236441281157355211487095085176978524335909622259238573678890181473243784447619657215946997233558750761395029275259068223520587502545900472959520689759866152483465643364340828205029167659931382759089598946676498472940790279501995070246526421904774728883040061816322408507897638235551532208831950974680858745562077085178523935664950315829891461523856042989050803174004014322741262914595008941054017820771897690670945707161302912681756330319849496020019545231843237206491501588912727843786011159404028789261260051303169548379490634001484762642470764060019649708779998089272166417341682002217621720869973816139789511684632592395598970678532668011818639398351112656390599962428626763046723560035154532772149454430386772914054511142342395328728763499830010670407103885130989960238445786352349148287924717843719694839862842941060331059062333366644837630787960807800257491823047508181276766405520880193289374087244772240027839186277096652659495570627057671604890190718400690170267373571993510558625072459789976835764957069474632832835379594251061469971489463638626895488291350891741490567786233361399154572728263477327169846639078803351324007275614237143092345083935886977613926510008354290045104040493661526369350885029856816649632513785852603297406960018424650067651018660226321095081746114384620536379403454242035437060809429995634076832516075232466832216206519021846373668849827430671658348648979693840669295272269074110806075334028653846402259199320659914141932346617607827122916434446931108669463394604848156499166608483004020833471279993011572712378559782307563777622314063610114778492168881263819444360793042175320680791547940959124631798049499410498099371784365831499651249121363926055248881585827814594953130177315958456570402294193626910712843382093281980452909519983972898308519424517595064499555002045795497502329252130449622709154660453073409860855130251872367690316425899108210802961986217772773563634880843836293666662801039473399732555439185099463854398646326087865597451104499013992147603183389850100784395643418860574842924100089015094417168091664976369551001411685944483346263030792280408189721987866703054797546971811997847875963488071644297599230554836625608060987703345333153034412384520574976715755837978172875383202226733424792558089740638917466189242304162381522390191378562036874802637562607009426826373410109058864156079696751845353409941007140984660420360375744068337497999128715696581525622995013991078311533404622914545596147281181256992115645813406307775310773642384725866737566826764001730215303290261758716195236776936612524484578454759424199788654401953867213816474711113012710270099781491670915578110109375907202194390819378783024439587263142188841009450196944074357929799395128059626963001924330866951386001455015484299073099431468486959307047452518730845095586634363812870044946967256492391668042000897410906983146457680503257917876200029411804447296495958299403525937762945175564858282061737872137229456072755488417654435870488153215573273887966108697126956025143700379484431321873602133431231429289849108218800311957376841604536517642113534448532629115814207617202822466942443392146558933937316141475139428420129685515077293047292194389304810435717681018340089969691013406411884199793606762297754718648951741297289451928647572820337076257351053432672748341811314633898264288890513214324229168235257898183592218600781764824578341181129510524928397052922530702164730937329809663164187139640825910230218195480472490935413473285385275431471452895227110350435266991120816578300830249104037741251081970261153980544737802238869863049724035320744067404270542323550233732142283685602927701243986172842974883378146782938200749646608855410706757066035308227915250937888017398313403489081402293350820999038350004480714184949411132268305025970659157958478420233748134684708615345606734490562471303930111669487446671665269357571959130198209868871272928223731449412700309980428841810315956103871202868828714324023039743469178916286708148589630159879275239293857837872372739979524324163845116462834161707641099858558767467607134327823825894598169377594666758576757336990560842019477450690170568163017230001206964324311837895240493765031351004526901191017700273120843006728792392717717803005104293853348263793754710780714609627899317130099176127445051171650485092599701244133308116618104321524245519218709931299685418362249935445374709716722897747589518064114900786106005871895750641195227234034795446217032362838138581125282215898707429899270703003575642969781682313306389565726514816740060019764123278871144445906484294221809370790987121812565245847901199840072749844944445355077250050310348109451564122327914728440076219279604663805033171537114201160852813586318441014508906808580422958926469173233855190107589185503280548362414423566628318707360227647748698310200956244064869764894411918929721942827199900817749798257614365544478873450652371872698199466361353012893193541402049956180073314866452163161642560485178502894335381425031492048121448724797490336511981027849515056568116495632157983758672266819312935919307792876625985857563420079854455494029505610271586121903896254242547797925016535104691779769792485577230893923723428610331671530633390696610565438333782460343224002128242107509665822954324751890820556930815485531244721427706816047974520550812647912522282151911378270476517897453088801807557781342036724220074074473920644407419073063233033275544663902859087852017870031341217901179469610334150196230754421223721773486047748744696738335961959823577168953848145817030143458666739655754856531941012904202320678762827556012135579035173343519357336889224945018847594893010192669658301954454978629342561580728535820349773068156034829514935295986883676211165238745341810921561531008631342073569403237892093001206428561473576959630999286458986985101494364040782906892843290790126101580662903009834017600377317264843493089425615212017545822502716765644030630897669420215593234980708392861197274192485910003413084803035173023884215480088747274085409664756515925649098813166934967787780522664167671904156976520495126949067699387680997398394406919034600613813125675085404590869218016825980273869411130610104568468053754079923339975891461301797637857023125231088065344973555876301873814184435608537024846829299324660254438364591866414370789505778038882406152062022681143880951690805236411393605848058548533785978013395181816172080874811487279355943699852517950290531295296626655767508369611242986658213209195962335522141926441710546784154744838680068836361031608634992772418205297680623080601552777881820410911461837905692966708823849436227653238703954072014836617933438982747445152042793796906346571537807967452126503786467448098275958941142908283453344032408337911352895428879940330787744689346433206826317101862654739478592294545880802184928884271552400987740463952762398509849848720386830146281797566315624477457340291476079115315225284152486389778801721661315472774399894938312458915659515811830467224214131188878054483829072685709493045388501980540906148095210379791690818633061487411433203821302285791589236106850495324037940121360264212194118645606130193556006336845487011878071756760165144582378184936897375586774821570642211693448116382025579044751400992417493042915097812933139581467851452211418931595881128896811774493290908441245384527458693649825635204391573931692553066575345018969656449098721308538629684889443601750801486043311396502223076278324590156905778197406260103084893175764226166297606129786635054463222845392421938906594540073803505382182118149572590025018453422300213900208959446319023890273080587789466973238655903230494828403380295093891429787182905896522787444006421913858794388135134502796715154537055132064081703801234777260864126930405411780327359359558567317365185086190641139437246451589289643251739860453194922962892153137594856317768843601361998276686746566208138190787980171315833462211695126714287993119882947457383434030363079167351947103778332085038919106438282175024473990992213465914678430442671246456839558469365853496058178781351252724582134669845636781944635109307595597138238327824144294272710008276469217400890730887767930689927957949552184347714808598351747565888914513448745647648321874554169089961175320589670348822435165647989121149355973955504181562483402841184774828286860663667319575675291793537238038297210951065701749334777653062785511522071232665932212111366720850816395479288294494677508908615377586229281090326512697878805227809344687630193987586511227452422498233810800856828721048310899524929076662272353889455806186409695638454024823036345463121704121563882050745681785659644525780133171697747642255169978549254530833004941052417753642317378935683366708101427707646905799529241067363618341358943906201697011731742000154441396344903472090892096722167089477699079764197694697042150887750254276538796066189009264573337543871157834794980065390985996824608514671641775788219136006546578724423872421126393581981181694613681357651938939986831893382664568652242184371690755667407924840306081200782791777105013244395222143610067915166399704035636531957204394512168672687848391346627373717084321286140674492849308446808985012914412558381709925184578603671305920388374287112396387217328131666773673241917749307899138154254334520896714282023114692681598342728729343645331594547442324417831354526823401311926486157705447370253749590220041737095316181471552780793322756882916781226152195877386201416777413401307492320403488613528893552449372952402801058293624144186920617976068209614966508773112486059924381005603971586712142688146820985765591171830216021559356122148852677564114387636528196672591258834728626973031719021057183944268725698009501074669251422955358834456975464537049073366540109116917983568489464429973274769781043197981883771301997625972431460410841158196043861618958627762588202895511060449705369003161370953207657578842062145791879801658324846146151624630163351415472893535984177048661924121697599917912835335835430366915003432610430198143356982472396372852252156361718262773235955171796709108203702466968436366489012203113992299259279839238660609065697144817503996816139959137087406699384777145372033709305910009507698881025809814708627292359334576796177318185762597908805348715740476925713907772898260455531151535896735229683898876783941811899685835032669470980893229740159269791009190821172961547598387848248081755172059189116074043439616014238583974109811839703283769334307505414289229721632762013965103967087010831256147289344919378524151961703966602356031149272856343038359005536512982369937262810528856286885869409184645488051844038083242343523346550772467894525295122137657554196775583169752870734712171940440245624865678480366192265098649361490043620530563630191044201035025620130974986796792674486534096453518940370241682782810016088908199667151765239229545748072885029589071987105175769293299722387355324539033651053534427464813754624507144928338271549841756711103985795387702506591540207999266040091870161955977277749817909914617667149828453879273496122351733710858836201567569358208406299425690816178699233100667805134575610223610797156632713232056786997196337380916738574094123769849864533153935944138918779665843981699363208455765695974402138561125187870154830299837835524109033052007062468618177160607146240248163670869272358662879635827408877839201209731051371328787554065810521381402717825887385739788817218187584499636049503480483673506502302353265132553590681225298633288541080633263718495564129739401093788270763944956936015280869792401050497945887174281959933629635519461165142286943289290308743650509212625433850259243570011116190175807524890090565440431888493143036718080469754782142416964896341967303093625521602994584782422244882863932415876009293768315538795775697395949050431902256831962914925014329537661287741100726433648728758485573485571342147824001310853709569322359967736959560632967230041801198701927746729857880589562274181824119288763554572956514778213088865325911348807550440531992653096767822374154303289319683551568832235969757520681287078044729696557936430644458662656565677042965034432177999427194359574825432080400585356291347311491463713132125096239747077416756466896928368066390706696472032823725584899869660667395301997523076331453963387824103925096950029697801865988838496096722550882493522783714523394407124421631093064125819314533977974835831639268469781114205345479590697281621927125107624123361695250569657805625302299884078380376760173128792894224788449856082384975955583609113135009892939719152178791615416318234866991215200659976574103914682207396891831032508018709700936098919887695304504841550456245834704641809553727048237072348686004301569348280893952317549524462616910637594573382813350350881426763666270957095121313343222078585598818580886045051042919395296804656875458997739799377317475133768924658226274227899098994540827831291118960254546989312908740372947745345169448276667314883025545259286267111872105078458508608365850199309418595692687368836558200216768810537719082636040514371823976448895342987290073580623302656518576291282971335523870932004377255729262031406076154702291844808921384667218404684384353699012648141253704654750899288281087818297338737860101492493977927368020187723291752601506804770144814703949623209428544525679791444963396221251840365251213859945877034570373924554337278719323303001044800979636598735612916592412369004293288018418162328838610118172184043546024571229956634177595077324736742971180052112295319354863902051013667652739604692459930774259061557976075803407660413878587570183926370358357366691060690523800967575822053806921461989725405050726678307111301808787385679096257302848175963899488172567175740266564221965505473248251103707579996887182664527014792086602444038991754402446133680891289338202527024771698631077241163738497451322031242788365152868156547622191736013041563989104084671408201714262668670742364427164575751394002697434297702308083881564862530549699664334197978410288967975087598682896120963395887258862808083562343389312718963912768489097422360935096114747515912492957294718349547664452667983929297951464536381329653023059139188912950436531314563114370224242109265156464631173362999155419641313709984323426082853917072298029579592701347688073450585243345930836483597077132277739312823164296414124427036167893887904680093425159271371239750771040096940090740896004074498871242480271158839818763495478068816054013029318956111755252689213652273106292613903242349161113755293437026118528199952186021573328163803344006020267799837811592779761359845394278285908812816585893176911469806128918455466748757019553154920446393983848524608493992925562188539579617725642152472445686498635091464682408216447782199795606218348237158500712577414768241104673186718924505035528478285338309297249190418922652235453184298654236972642207931076855089973592353595380531096284518683521309520171329518982058829601223156619481541366740994084286879846067935956436474497004189073927017369858166138476440173107670570127398615400331224284305629158973599607460613426088003156676826953803764031999318086754689382451058481246253439119929376768044157955796181994096691204594708317399703915280370047016502142805646744862438155359893351250514880098030358235089266345106992762316822266690478467531521489779680375076497342488765461120074016418806728255646666773633264800056170620298378593912757967479964545437639361449878333387318251857654196169333343837280736778740560756145342438580701338635031440863604424007812340256170000440470555968719432284290576130448837273183568480261675018265981982868113373855864387865041887033796867179475108189272667775635359665525320910711676857484012888814173702394159733067358385082035147885354055528341702623248073893054459486843043712847678874654437291549351712194262232280091505889025407582819181471926841316052191846847622395714757423344877257404250923554246865504245993299389423514812575748137362996571232132986003396600485950428910820769743752310877289093756207832236198664780663243202448122074279906730460895898055766843351658356237762816633764510997789982283116441776632995860014941030032082293483460329807658381736755084037365950537317475730682238118176373566568236962846830265301397732002952662044057180234954080943194414981685516521884206540524794462015465698832344599330702431173560335840079123328907969011112474952131351826471816213275461903590273546502407855742658203995701566329961626466939185271480445122332549517287589516793818640008116496249001300556825180443762950633469538735612007141959736027797467025741731381534250843828493990758489486239310277333136493841637229429685989106429628514471816511714921312212107822079357013717496012134195027277234194699764286941536835979653976594370448651918484807347864937372945544219714731736657237303943131600603590360227464058351144573597813971569208141757295523046547812323649770575478912441985217575725803200135600381545302486561933212403753136456390129936194031283013202175760128709341084775361159545624742893258096041398407722762110861831608265943017625401204484787449667231203415226322170486434523361260675055917055695938948723050182657356273437098759339395791630941672730575097591819923130427302471996147572838045140683691692841631307856915121364986655615688308895874081223679164979271170816280926113503625712879830498389584704515656393083593465779826146713556828701349441417633634909053854945227137320609545104677591181678074338053318814511977320703271227991875102928087619415614998030586027096302071125195856563240115219338906072870718498765590592626496980224549361557203721207284665708546368793470173917716416965430979192761139546041831498252401112937185359856519419963967375090721962128558076966627281683343794776257819190480434606926625345390303782002808829454101026930905632070511071839639729529139401539548536404651053937833793930952608505159903338627242753260004880750217300247524959130390384165763326158803381857527982075294110873243736745175059190057723530039477545865667466037682609318368525043772927852260136680499243823481639444486899135207563741013986361498428082813523881939506955311063463134020776092188563555091970825877253716764376101607595894922088114588748072255466678486388569513141143516286677666324649193545157724355821734586952723704092510361146225694350608822231639283645594395241845141040568606768763577121646994535496185277562910250654007217718468592578344881804509994078096920050047722677466463920065041178654322261107817526260725643778280964978386195072398148302188489009333727959544411347412458666054838066085629179477196308066359208238446433284423447050279697697311231277048546721487048826125021951797991899426600780929283884124380289917107706002583374818989912606691714416791756581846328726256241592841123089257071049434298747532746626927666617059826674290414617327547933559135722773935156673363232915784990636670598288947011538655858471311243206715694723649508006911936222641004975757882576574099407002690207178187503598152968633013096055394498921290020255466898339932703923433244066931674726626014467953745469734016259600832533559678129167403270626612423998568497952759491193030511570913477123114173324557016074207427127189707484275949198388739301554019307531289844333589510897564920913723714840276259172028692988864798361931462481011599406124697629768996500168129608418710132387734416534265870266204025243519875550645597265804511464916967483113605462769599800173335354924452446588907975993932061724328668340342594016143421233472772841107382394627476916066489647193866363838882232538740024992039874363622226753448159194976215946185375452219589871906373198847085838239005092463814301782980449259846642398440751983207165361224800205692535272591588611459259646196950500189561752594511679386772377073598099234643314636817638610826448132649218871273704567018909864307050041231790485111812531706761296688323847120181716449353655931289871150148394608536042811482819038720303402155623829921453086311603912941194925377191588031996470866168143310656465291842043250291448691010553068017964609800442907427699648515846172353960899237654434662478880690851912947090348996811899898423718819137875243334759124625595662141854228373224381100811908459656509058945035973010536730637624259698159049154360451545284641280746654091628382312186882747871240955786393242157061706604495638462659439373349401175191982015986100090664170338951118878154789420512644961448813283954933222431661795737457079272854888271761794340036224940654182401708807426987671569073583601260104751876488869874797026798596781590772316442977785751707995315766417595711742836583906135523373741216439624271742088290881556930083249294699017939122273538059025037600916090376022831593472391824429330658596754275085992972272457551184467263836989644063217462992314463835578400502848363736942863596449788693370695765838597855609285420554193714384115018060319250568030148816862213568299896123599530038780833501204619584209952462932264468732896605037002814153983743867688670997245703504814562328093414077259035725539387990559664885125807825458250349241024230077165597500559755533803845315359394269824894539215755445055156023690565055901144744279150658890193490237143103510829726836578984510852403186899869696652307556456598722821126734700155411246180506100118212108802914166657542479101633718311216591620916543398733226121132487887284087032790954869594039677853556614113679498830042088350482623193668087537660872553114263687849083845598913846695331803096465723622911183793551922098684548704634869233432223770822888725796136936693432168408899398749858220537881109383956596655281920996972070272434182976470583801273597442434877423934909570398148272157335771855675017713512412391314860400796435382101560867539254724448135826309614243818234145934302064504519310813849357621643649090497902283508151011317922863100608531471615319014515651276281338029297021327763203693386100432495686991270166395658305887029589003022729372282856473514703437646663391100094889009627432719808878695113650661315455275412155140370493717248982878416462381527681305515859793766710169539738123245852869829763473904053003908647410150643327581298302441745537028059461590609684656221230602114729545640949728326756645328782500595037036670330857612546829053923022115101375154864693377622953775993631174737900096604089654823052072751310842944305901159035230545618638836714875198679174317999113038613347777470804446219851650870348884900437140126145611149465372186242032339799567756116303871591068548264396667647955625707468521999114419692851080305151067848061088591646009123275624879488761819724305661376518246123942996709851736599369708416319162125097918631562560208692854672813734999368564191924608228974507708230113362579406896864447864410627678128495269970599106637065283910902510541016808028140663166821854849290410453192627011544732932301318586685898527363281457538640710610449926495666792153978063170994853434613903866210674512572502739373826785765032144277147299047358270639824890769908714302734589961647504553310109320281411796363060504001619367809854056890517278656456797009176694602973825887576938585690100439171241135987094819348150976134821614737180482558146743015301480431568216487690594367847255712298742863219019027451677090090265467853127828852286276093232143993767794799239141320583146051379854022086605281130020255316393214696779561016259360094506551590792071151401530684424327148826389411957884054517689353557287430861493294824482301765702542730219170023042276578828456561594084793121755216553299372614520830841801623697128779054356848722999547408634697507783865961940354078043279308998464135495573667891354236425823682863813577875499313354104444691616848367948737393896282655375123060056119391827297940472748355018398716901870388137095221949540307377424460994263595562667074856806111078796654585406331441129051027397916002595293916649655470928539498546497353436709393981898213620930126405019048894139772771795865894083102533604102195442722215407721727532984188183009923603713448311967482397375541748792381587917435091505227795958462797354622196663450560672029515614699295153082778258245044382877364036814408289107360730241251867713554273370299578697049024510446146445226545847107189505130081394259144017656556296550419436049059835402173905136891167662771155008698158621045227165430708871752130158964945369261514685507280518938066562677797441582559802305025824893457506807200713733833611956186697116046816919145314501271596287045642919250918022765172641896770320334336116362686633392637345425678517775763559226569805341370497740509425940277639715675011952437350076544147439652833868024931424467341168540088700675723988776671649832176068987574968601579260097013639148116649097950220616411251691597408386799016520871202688347238710308351981941762160886186512286981159706401006032495515922687546732112995901779493459315582901160054132098173926228891316384243929598603189781418943804833458529829440992707492023436693638579199422027328048448660261647793013460529235906603568953364275651425783127699112037583080845250508154583514717606112676298309203699136232865870531238080987254576067420732000330504962932485928767159719068224169514974141162277853768248843216597683361552652436684210215769826470737930999969167178753435776641987675178254395441790463480912795582567168002203601090937986338314268075720983873360430207472127312678623905258912063320692503700793763656744998451155729201697569161557805779984467169366542187293979564397705662432894669727567917436793127631782782849016148829396509089348976141396933953676812719576891231382815309106235462300590654912582486950986328536199795085071702498956542592767071029121921121995765687350610727207328284642321134792664010482448932854109333300450957622640270968959844609309900378946996207457477839060713329260965079843385300872843216572661448576205885342532468056534324712588930403795566999088229618000196913544495215075074543680019294883772121870921712358718360339016759918161423381272777228386089914090148691043508654278983354845470865751253538590267475311043178866340170351518820321580392112695883822812143372776925258336829445276305523649942780380904457315037420843590875477901305324022442080735995927883358411574300353447190649832922565589306867165980228174257985343899454120790075171881986941748876298391949249922555326756059753935609719910304434984699853083818993524549813555750950705099437309364344992731637421261116797290018378875360324212954514746839737312234707051557280286342654063018182648586917695174902351387205771141567544416563314299513817396308443477457025801343300476630818043437189267684234570991265105168340849218912779152934846718113465843355704124814718408230983586771146121018570058544792715166317302682022394501997252846678808591754567045791650543235971715676895683412594011492546823380009231492775216172208867498407828804840675673128876332116938647025095746082652144057695034279741467988265639205343535414717735509439138438091089453133094864767239407675795949911994610753957307449869273194398745036160576862792225589642798932560061892640911357839413150601106339518399295584906478516507039949346378005340052050107431121977309445463313569895430337461702329818171251032788779096696848453011529747396200685746905858792752183152323788519157425846116600111172124068158030927796842518894439122170810316645512404239255436826615155627984618421696115891776317284197591588820304746813056106613846097198463322001042502334892767596361302548988352688273638852971917953167027731065279820382691398550461598602010369447574640443895819599764318601029528236968545689757761124702551402547039843791409522581444065720249490593504021844044587851300045338796333804300782489082469368030055836320682527506188711601535966428827559515435501942605133011732503866381011557796564166077238714239398376076569826461236422914741718054505400737366436169218245093533188373047927239140500375694149428045138581182040713899714005641591605098037823296000862473293617555877288472465808809231889047453163846704709526423794187105116473578017447916258250439388621592821239116984495210994775671966308018121565677350702177364937607078845280399726906851950639715136376484323121844601229654965633289817347078099023435711420589390911059947539577221123251430242007236887802197921053495065449152993654949807882310436532693423370240668658346474510874402207707966978010863471191483634871912987244330466659512401294627718579965101453246481222471432780253962426779870192534797540558438143136166746071785789990278972786210273908811183502855802107115212915970621288141192226143091988720514192170896316937323519828312214015554894067275923211687995188238970577826383008480349912998992924782353459944409312876699013668864920701165627058588814911200154803616815558463941345963776012086418354943326579560701824879537994109849477064846620168204481021750898950042122293259118752692899051859517514402352786623792099726669435811215760680790686761598022919811063893381029501565932519321715847894836893144222365224679752940582882786242993773741807900184695075230746303426419277471955703855815371857534798848031056453926883056136758523631286567820232267843865635386664880234342982678873374564186717810473565691864722968416594256509024522628667991455504009141924953138439565771404503474027723865436940627963266741219483085177883261371318644654429374482455505469970113259625913557188156980980785585434867743636447129995040681430696007539282134827173439638739723276877032436572842379377201616580220656617722858230576116425974478878444818867370841261007950421570202311114233781677750816526115499660196729364754618544923692930977583405434069048037134523698402301824927680703259272029798888675688932033853510131498425546803104364869825314349184457262683792820529894434358420537121401770084099123016370582466356269214393314917724486494662309765654758260370799434720735101615969572804070793158634137154246565693319297187349255991777814281650474079093589716476878654226273116303718731375852946930696763241548655907740150324749455793907485618536378190227799397491013578384082262208824041012580865720667472664874230252806883393523733386965256598976749440663830342813751735907240058279797824812609751147064268403516126462130128923728512723323055549043381951037605388806515907403312138112607545121768389970425676273389033365946117237681597860851643069126343541455145322823909458505192551213805630855131438794033586169565640316797717998064675687722461429422390030691593887000966402955861769561107892056366769882240720135840172561887572602878706799096402649774019491684183636338913211859995051440584402223398089657441138659640894973353996953907975737913203482325422770557677775069456701163803900181034403952646800151037202437236829608255371105901469042965145847999196104301407499849948438365275804694711483837475459876274774451224699199223906946476898267882421741357149348020922029277906082376688246693110904081618256446279170376236468506602683188524248877009515964986139644874904506114569501524264242010220356205866251366411004625591807132675311648761143117721415200622882393573464168918909125108190693367159170276735119363121959473544519668662438058626709554158474030341674514900496912216749735049023551251321776669355367612255065721204712841846761625202960500064286089529555847014535373881809364920908424879377718653650450097900706332780119544212792672735976095795489112121721096631884321260736138295374054776479016741855733766636853994836764203230515178202991654930501490185582814563699117974269370636163295584109955408782881100090675806071760682243832869998955540891732868232719916729926184476799803364045924576411158092358450606805538551470854413594151514120535450923424162395037363296225054569086554095403760452838991772899938500049815537950212859509633766545420602567411197382844326293520002807838486270125615880163356311760777365243642524950809871005201693616667025378220722606562410005646100750532228702855525619851049963337033416910810444977587513197747964567001583272501372240024266539758220218649059407020530357462363599357639434252329704961428598396747969078575503341352978119591277250061934784016266975580823277030291229171435314470931584064148990570702086491145329191522849874586939483977608359189540170736681447835365310434642081486975716608692728247076481467971586503354517787461024863860178680272323824210970336323116326116758709144865276639679108693424697197454142547409507333054034824972258468248805618154306304716618661649809906043748955959962971196025219151749201539700335984198945664888434607600052012297683106136598856682742104969502501719935406616289174036398099809940934508908413891740958574030699342456242443800516481530703959911842570603992734114498814768393794740248404350936783012800052670912214661775185655967298852862587623317256887605139022076633487892994234643713548391873426549588022262430606427483209228915489790190838966243691208376510905467714001094937272295871154609572870803290626444133948443883813277666877662944163928766303732315747143803069904642493582116217394948132408197584431035740016662466936473461346551384537429304271176892872085335433585208279090373060665384048273531886783794931065844470158203946850264744770683125443773978200358989665427537654031066588768502375057405451469080963431887093929288222526287726159500402609559273008051139137940640611980230688673480465312462485345439375393452793344673087269104652968288661097042812005327593770953395685239990923891857430377805709874232489892164059526811682530844642540462777659770955459418796841596310690364299701379060408246553554186452140929417367948026851772444746569235492833228637615403058558639695330136747792408387922242038602783245466741045174732137844503631365931982857752510309747283625739279395081265783082642224768802418060837505379181241535384099712469044985412657548574435448526853252279620329191838335481217512254319340043134304337369845592250694926413715748276526084734654588487555846508602029022971282054557646237483426122504764582248679218258398133317882800033289571093186276888197126158866637564301451116524656459516556292719851369604295109743891563556485294896719915285796499520685083978387954289635196500781639688505201697902307042623522232865710230680699778420444418789275728686634751168499909405155585269078301935278218862510874266566342996349073509567271577459257396271669279013044467985774625610182086977400096269168332008634926034441110788785831101844014417236643363751014423276976493785458779762808111425324729489548229517627689808242732838660147852686850564410068273230413665242081576114502559106429769890877227873682327694220071299411544110438394699696232235563405453953353785283210197652989776228543541437955907484849668390492006634574531436025790522673906790896909457446295304059374344855956290474657692990253660691528967819933935186741944681789752262800376726957713121653834491754653523699569325985214049205789079932314121054654139701603985302121316145460010368675347683250079457669703935485697789985344480451220865849182901812936611289390476814456547404322200527731691367029322765315468672996293529796619137560067638873687509934971951898014776643385935697500321709797577766710181315140994627133755645097026905100313932616049451879225672082036971012219057728982790012397606257562756298047012925196728871345822272873695597210491928320472028306312285884776078214672123328887942514674044712523804189321263967696260831208896300528996557276774575133863043340783683594270979471652244085454635479281098351545740362008541778332859453919490068897963579955126028199686107929280351724952857624099705634350350849928332032495675085597612835528483264588663601473142318277488941268195767274448102400121268176079223507348901576327249309238499329164965987013183675046120825114851012770237488895618713597753825040984342570550160579989914822229910563874797564681113976799967599958321068803965811223289487860523793995971909344218184607252965516537288661821120364798301236578976989638569100418871248801395960979057133576534684608815776242713797227777831110666962213407752827076155973831132574185118715118794895924396827599388090609832214055493401285024233454298939765434935943584724144799281373366015834629811101637030815617150428038275097511057880262967903516012523088964238620706201141698266212634370811614949434601844023131949703858675460175755029862731102476166327378390335215402797598124968216485846533483153536182964785986399360879257181045829268747807175531314227395817243760138040974581312984806784718065948657121435231083713249911993932051134622542469963217486602491241753315376809238026779029796241072513086708978173899897686284367946179355065824579609885367242703588994996288037195186945889700262066753448614409462800974387986769200739837536777437152355483129939440567121547162092031083229357474902321512135783298069976444417856399131480334135714968654139408740795041465544285593308215980570649832635212119213729592832062655514649558643473254784585778690930881453595618459479410707488344666664831295807177868650008209475756748144683001244160683667499011126746880135215946611475562443836899515380718194988005957608773674751965615619864441509951367042145691491116384901707649481361808318344125919150391195420049476541633778032195463107045766629953454872619405821082119807559351052402263743704357839628068295234553429221076382226941486994004685466854563455410517624532537779482121255188718830199633793312959822068925723577563725455046035682360589754867464729693356471791851285634709872623317493936401476545545009907006099123308382846490998997646944834284182532941994964084578693721471120950300627809304008525614037054825304018714630496312784832844553377901632529516254600274421948758502754226847030900285005131122871018256938828885869419732641692566257342164558606236033278135069025441646644444038875985649590641915478252127356671660879700149207698218842629995281341895463707832807178456192120226927021192467657909621886733552010252567575412530807941429955545048809586436019711716261664431717794746336142602507439574495593134505989867727897887812316002169077939155694844519968771237152065385300697996109947985362116944086113831616772209697553123149404806425323575661593536065555109199434415817491427175655595366529644516622690530393726580819156160309329362085436728773424752527042566021891210024617202855041994999641236683633566473788838328077935383930480960717856011702083677829418178264477659876845065715693417419738501545033503801596893758860407742991083009305762128855292402980285516389319949273066918550894161355347131460237424417661112831817086919330537383957892361228282926788104739707955383797799627331955299012475809239437665752617395478284345824626404150689236397013878173529309252576063170678351875025284104526262575955496109160374243668928996807278166807760445432985762120510837577826689464922670941922449589777389994965083915041032870180430709967790591080456292470438347662770031979197356742023274566978278875155287905855057327455217109733430691051945149140596178021859588241762813453526231442361790589566596003601791537165281406123635156939770892710607270855163296860958768330136067486541560756037852825719902630293585962372162688580652116996036786372138723118673049195956105822996829013603252425607548305075824772828066028741957600396273437495276946656386426539680802990779230299094291853585896061661245881844269334960185270675673586140019064235914922975633840173559527316529472022353700218755684430094007092973637845263322787229320711295141825562965429626962564559256985788575875500110174893972376226701626049921506111987020892867761771187001012293932754140205364121948883203768409891461109862022106569953334662249836268396858265169806338465967404006546009856013779135344704964404963548864968715512626037031294308266832432203722796186650238974720249479308931666094900851021098898775822345337358609095661399048272281663892322003307738115877266640742963356476777033704181610639708343116202838430004321302379966886050539821653516390742134366405005109399340107506290116841362003526231301379244392445885304611510146740269238652858175174656605130186271320562611790133965565034683297671462324044852568226524853904047088599592999712674330008619578111128896970035195263470369467791951159053103879020465807148966192746956359472054275192575047653259456013555238650429148023625134612137181139080222057622228179106218748945655569385178010950352611318032874454099780307930978083475464891690005368544817952014011383861689587387575777691492174840875670228154480432676205362774333922882794848136516632052488287563457033064064830695100347510775440141589181938927072945765045712162658103065490651501004186707567773274226059161737893830232341555965545579987161631288759328936671527866265157974502432706185869457206731923465716424620622307298996275161010813158484650974650516944395821083827919676643495328286162897956226145443552073093848538458650027545562273084321696849822385186884537427562051883697088612319294157808062864873863235441027719366700913375522220164278656420848780244805398973318838452902066013781048505096795119054445423785594378628020043059907006109330466417814070864064834101524075620750134218455658299747866621527224852744006750745838162005581759565516093284180616174380549682054042181016127254574984947426654300867526915874277630536675145369526280229534061274727868998082050953278673286944488196066914578393258964512201034911447043583094138340482230191883149834130064066285920389959034405334343313323510950261149766821289681673073797468649499638627133709575324681701647508980344532410295168488638329070768051048470987035460037271372878475546321619792233354427608337561359818526377022390425704411684656490880679504905343949140372478894913560213052408026020908715108529736267149893269565724190013723170502655257937518781988210156732068876486161723198743631017712721689394416047069449777188469538914583026726794887093604877704999330007003418163678084223666399406978366754415344160202638807251449579076240471390253871302503012825313501502990210517696944705155513338172989337958636118550789015138835276841482806962250928752603200122950706230937883197572510422603313000066181092731910070203732546828659030077295803563695401119434838851194936525170461923243467256696808298071121711744980190336269295309710543649695243577223492543257207238831230303874715708474340825045151265151119193252314592654042103187248722917421623064759944694030499172969282364795320033242722612519518184125435594684596773114084904762354240398203152882742226021524494482213736998614939976208899856392448234651776136981251060463165315859992820680358071654815013565688801422566274045732516762472056035542280485811806018668527958042784980802879140242715017763166692161024482619667193133470082415998805634535885197891711690769647090183451546674222798113871585203541275856028825924655977445457266452749274570074729355764521933775094467820574975792011932803010945218791397369572639588939801798462220855648156039752783169446292581659014877745676105854382598813122949284260258493048654186898096952183173368691750376429855569355404147177885949675126347564448847618657887269306593949339404033346419401536873500814515515951944656792059362692127375153789620257692578498123022499945806915927226122411539420706678240463667587495506706330440942135233719275684007011987901429815184803801562655717695189518888191381492399344477022934192153079312921873880805089787261452585728565559996311460273605465188726837515726634201313716333317594634439448450486585803735180837623149762536852903261598596057727800489680709685021963994126645356047985741766073562333760679043526349884862652064999669843727561016147809263631874618918457368030354986112615121347555344806887574305686637197642918388494838777840123161501043520212217938260139854930103480560410948002277198480365870117607996827308243340806412033264798002924036139328045194088236953185656213277660652394584380537287899986608135976867264844250160545416878730761987510616012425356305481843509288824308759436979127230568573800466632645796266841466742028917562528859204188148918061930071260077084592473940007678577213450507074155394184263656243687409248197493479643062740736642749962390325176822946211859020367330010980677920781809838733920080346779483445783870101389680681695824674297667081043497581442288985409214855163155927059093712943526121992349115895696597458571370174153433168664993367602519608281878688331728311388540496619823090903382759051855930727745502136874375007203188560001349599201949295484235447926001882302190464338360898697256234504024581139470838259065582499171248374413792803587946700244765628680989327246939629810115890289287257347843192771707680107882994130904311812288754598648022888495580162827831387605509864175964825746558404943255543269710298111990909761264396213033036180042702587531525446407038331933527833980821229415812843619489623522635871457179716474213554126326263790697197525758986775742052590017887204843498331063119867599465391963225007654515817080375801924764129617919630819495592342799311338670967973762058563895040763951001337747143038268308005687246672572699873441234384734034829694266196739485010398429862973195126341063929906558389738129290024605302555510689877223672491361738419174471975848816654764022002387020029684713659002279922309413948714834486099886454711610203399040078459531296191261465152124167585676610471684754213982400979459734882910947689991599043579853045963131743470733958912847932726283605636424041279294336767168787185166110411586904313188596607778438372286640397812717938859705401619350086679960485575303615216874687314452501169018279785510427141921570725061836377122194408320075143392575892811861513741549382885356193770427807864959808533541017733877470176995835081089909553446068537915952517573646913809116550841470852563600520706609697967267976771657639095162393261631500101274670823073787245769000396506366824739222552466159852537676888006305344058571581949077656655523410560733472283630328063021235378108378348255265765273890112036609331774209867540954398796525671503125737928592774579366730141277942073732032831918544899566655106674565503627136953304694592343600226993820360948677298502642004883293644182140360831218147450450915100981927258746133341488590958344988160839450788205510389828730522161975820245553304986287147673414095118518707374632375672142568155786306735590349768739822169545972152826539471440675629239614290380412144631716404473331616510435400254427745265861541282790823228562145988941543700008915382611691737388909299861717634782567466709059691423301120770477147092217451509087516932933773168804791395573303009545765383960408536593083978000076424367777026934198246160933585649909507639102248095355862950600439490157417588693832600389908065665813168011699938844180047577946628396004272369641410836272875125811013772147259960781593365352074342465275199865484308741519915870242018840149477876872109885260989812545162038813159819936181290843590282516242537747106450913806992559065894203448057460489402711838659419407526647211165956468602727035022972853583554228422641175682357180644931861276164330745804542381371314410378834222815404251034133856901748674715419857865633115478509613163557581133689111977506309814796790438439976778321952516345033576223548722191027118621108784011822731413349626158483376746445220023152548358216757488607391298981877206536826190877760103097111641419427381356579335963314994231653119286824936748058327220551064869742639813877849089521328180788619189944652206284679790080188903467486522207985675467230684725096027836412931587415647842389791812842409280843563521444276288027997964177914580753399174477765143981658828503800221402209781548583544398654413237884895473171252454296037827679955119970363562901365728074345768603906445123707442099998970455661561352193099698552949200497139346001666552026271300169556542025076732991902965108239532276567524084409540887529388828397304501005160240878315212422288173507166377616838432360606866261302076657035889652412397849011640531982607398223353353045432751081362454627921401406944928696887656097700147945159089432508066838924245380748233301697866006468930728719263799056267526085003838639640530490220597185911819171130454205385258063469414846277411462317970522068391558153732656193884237594052295959412704115401228363794953765460255214242961076339237316745966229548912942449636474849050394151276375241471475184176552133236116124522263060946861097198962749938209882565561512312291110902487945238455261173091518452124320823970752874142306961940320336184779234967751244638538879290296316336600768325107503680380911022807847836566752289997002647402193041658882825917566211698461457399594583568231951293393770168436812909437183819693839727941858663625919057371668829629664333185658541954190036627017186559616602729158985534571168503460143080173173447933679226712556015784781161367229877588837954115795434356811972880085210644860946453896218101204258670590220764616421446557514723811747534863980384671367223148438365753228964071084184904025437295204971521045919873389829867909137161452546847164748704656093544635902039386804354200156702624310838438810581871390279078868344821771803324680067320400122480372497154590061858174209246914529250689922427437729273668542698713589420726426547756824596566609966662399348689022056164134038450607040867835939545817674663173235110545650382444003390812506325700732294767539660606220977788008528428387623208189063832342928001459713636637133781753437007062025449010363785065471100995715028264690423070896258584466174758411759343157278592105736484228325138826040437909201982653144569444449625514542661424746282850523602584160372833893413911403179506153986126267007558752225934119958767953334165531465491195189523343151746025812229012288826654473586203848098426166751923198195075415687244746291773673750773450426529359703932391589844225776262881314403025531200730310263266031514118004353609498347988933410914664256659655673015454009288631494488012852688120388812137353437418722988276369576765769680459304241805398715259025647151654594397345273285280280582833972508589836129393369508404158916365416424233732270077082857590968664085620941191893677935015988735730909729464617772078730051887248396714046882363841552423840665943061826905418293456850340142462996351180156331037411501922702652997299302660178900525507968153141356470550764962946647943814956567601973615479728592646404033209673916558863455088182127511150705244230793393230280923358165520026413632021835379550471833188077911775055058223356202305180886911417998053714008911596261068861291280972836951905964424480902056926358975843563591933409262960100988277340432103402165492557230295607842127323003677788888103749586910859268564885817625149295236372770739816244802821203592830101661871507299254445442136788502692249008499279459194645531944456769813057478518535392124585663583803283223996238393819522703269401630422623525372666800485492330478571234382311247792634043311744665796651642192800018511790317542806716671174734576824712855799568211533073268860819100289663084269220378800380024975661071824128014286141713003853353341507679992261224190277903735173979142195547116362458115238010936356373610765330637462653270961466586192322277479218835473227720514387624916642407284329978474082827122285713398314974248765989632141384487501313249069348652676724782740264852107735975110070199546732039265644295627078710738704184711130961294426414707935665692104242763257529992160820827302736230275792063945679646404275268494173220367524540889416238047782284195633897741636664127261646813038595359431771390487216294254269835027701571386447399696506715093776989223925560668187309318786059826978215177078519554130031374086629490105222701742021809780828246076331384921064106350172542996455449147024024339930301086742050705738075351034788422809767909373641873814376187212493909647604916051614858654000368229773525151212767595805911767205537715145788462536488519541415906494660330335545050409545517551104589155587793152426721271360502188456502026492412007810900545945891337731540610550273023887772225141719460374313799750993936920448252275037739030832897529793761563568409955262185845865009187020719126072235495807273063783546310496558408843865941858617173639788380694298561588687961438403675645640771127990935947169353138684169776426657894037717616675915958329859208823149512179286484372034667147630117989528972354980217266367485672514341240929658565897585318919698085307112161575142195580760695279249773360140654303208782799086011617902938929067676134257059937515798223883187143006036212625103066025053327351570975588809944440643008942578345932764173169747814924383462924326108419513924534385000347873777708586221238327214182590585751557732244333348044667005986908749414767056533327093636421556592342448189593830970636272721428896496185295964044622175650784861970944657469761285990039721225621210279619355823563885093538661179719111085209041719739274744193700274012193418040808614732751189812598224260670760394906663141202148738666897313726141541055181210291284189913513806388263966270129310332944388759593106350080323509125282629538253919559773806633583499593292849846671140487139807736137364262422266361456218753952414579916923023804754197004191670620810238179577038437343669017398758510848786108836611258186479794392324387633110028979862261816574583627603734066981781947486446765828805803601992509415872006106615290830647298294657157328656939090226631856435068901361311217419487898501166054117263753450185453836801280712525075268962457182879062829142272777280813894408539398086277977156895652015584258585544343565140954526870450781617043880610771559004943172680499822037079659696589764125476599888737095425206264101366886009176800264331650835186847876511971602613922764829270092517608309613780538052616823613020512294411063715728397260156054923641033342865934207074400212594631477621565997502458497924884401154546965088560125513270390968805170845477601667280335332744871452986533898319567405191662838734128777456990932346197892529463247541453263994615941167277872176965075699806840158105497432579021445971207050674474138986837144937194032240308237108921341100453011390463088095431335295570505624084864735419016729806681823385044506933195168224614320887187384993131357084626913838311860633630697435957815476361862937826962781173169218239765920281713157135925979123989974470466019519564849619229231385924470779071005164034356679987476489197142830955141549645969962918790353563352712125223066900039905086727953841371019330398540569162979495712142078612141500662412402172088465721176530460581891393366373986729999786269838218721140016564594442193460304626263047076141128195188937419990251235758375224279219005574664366425274536692736053495477560863305106480734471071994273943236683464242102191802814340127490789287834861966648826757774289060648419051648570884614707563913135291615814146391184977606801035961241852941114817117974376439065343006791068685205766343449272536503704961548909932611801190172757065015677278579346319968959526897678626928658878049815590072432576803954275369387460523612936962907519417798761352106759793132314759920960126522418548999324023242780947465588233448212758231060548185523493568611251576839206344052895489635612005543280967985178378289479475363835756744830902746174284315501799016482675227162450900169730983407968392318495528566085276043661864038898358469472532134659115955363629675313654709904616743862578259444587131550474626640635114321746671716040121005016363260564677586039268992761924803382415764678583624328830626663950948599012950083435435324464300948614829337485205736509563666462008464527708949870333774657716330148042766219759311255877883753874462329250466355597524514142713298853746241791708809938253333719460436072596023632860340537322741446987704162656601040670074300763384748217384060212039491070222347310761249078860471308097872575071716439269867170830522840983553099414165188073631368336053924250415335968934298309928037510731070038423532614811806429910601059250051755408591403053350406766210118938405856414948381953508522575186879113041225839557939276301194127183806172785239394435603410179682705137738363573710927367310498274250854307214990408984330594275941433567325356934818312782116814636093547906575648817821324990844183792214936380531111868345227565755937354413611816416017124915133925200391634309502787416566709156451821044604028593889152436517996638464666429790465155709682241834379698437787115181899903608641047122702032549991027599848605499034421615041477229679901354142559846300656786038004241724194431998762960232985463675053091057839522580750877164478160358385179831428960373496495773789367688943205194794342120651826086617501160494003095297330857620206269324604629647807901621042495492525534326982754034521320010971343111196201765207918748328215128159182848315204575062656959069974948601887516272929107610688567786569232497418583594007718947862658023241655172253268289587834113878389489983826607588948812134765107266557363598021875813900186595787878719564249859560348474686257052014874315367962138831299092399025184512059588365428011168498778615343824094811180324412557267280334974910327317484806762268435667763251802313768086954193548415901602782175493288756953191005512084039469601596425045484966859822013138240030668913569159321811421977011937944754111490357490174435673978491701585243059143885555909055219290553357519093535902079723072706594431537541159565594423858358040758909443731789149945950908069789011329240474207564922304487263653151038436360923148941034475799019915057090048144726627020048521486351910290403574655695440927872595906481180597192710423846526254424645794207529834945531670471875409405692385834740248179246444026184713078396953668246775220327783463190297377670375126601417913775639505549377873835507578380662090919844027829523794774164340903826119131547355487688922329384725655443878812425707500760636578806693352549034867872202395701955427023930939388505225585010009124789003266848790337352987660669256106152272978122543502619066959198917712784521647315632324369001893914520945281727813409198544714122129525549399581832451293903421594559733857257363050961862425374813940640423251070651796878195318266009551367542748886030854026839337213077483682748238521060233612041212528779966121622141277211762642672745908130303196113100435754615022739400590866231596513199924471607853219984556183620338788650221363720087728536989378229188894576751721588508983003867918611748149562785516060058520487599516317797267684469941980670203441655937844059472629631106024220898023792797467313172008045717497568662264002271370330161377090852600126549602181831193210897451832186398428118793713289220102142206166685095397736781387554669835213754692833185297704711008173492408190756937885021252187708708216409295306229975419429710519547374592867274791907271611372347089790601816345652607821481895202588892297186960298606972801144306245065492734790538553136177916389615808822486104516256528331233428896427118970019888593396091667610506505183049542187904546266427549104250536858028339031647467006027437387346889201786200533938111059894426635832540404223182370143094655137765332720617257549012902993444899654178181942341356444389655549626669911947863374770433883610269606371756508170373804209339913154630395637554686301947497890157563725004117923295440123346002028998817594310371292130964554696731462146598062441832103546325035577596389690029080101185630885112247297754264522335132545584411685786302463822182957587927928170644598551374026899878505964756818332150807660344017351953600510029958657600106309681256208340302669086721056944477751378519210818438557094608793800445197564025589794026967466321128024386102242752968470546044901599893479737484385188095660114189101354492425772994636955166967501588678884455063563822443675535912287599638029622438914428150028775802262017529922087568527399510013650813320531269128748208726175200007087044972942314056615049904787181690911524028455007220453554349531076484328463746112846573837834789711144899812413167591361375362531297685273346373546049747196658892627850458210763669143952281252807786023360173160893125939457788943156144721148100658242260933545833812519642695758193427781967296448713459304504020684154788501071108383214254167011248125392152327359089211689562300929888149249167374809027917386446340144235813055018730406340324129258400611241080247399162227957717975694242773171991587562223480000160649214799231823150131276792422959806559243180766922245166435200684443586816416108847235938378524591306558418926165271707266207383001964320295092493237731431328362541402104064639298114192899108515340422472709904175861273181415930441142534684983894760364059398725740892166350675620904184864979343504631929967522672791942143829798234510188987865004911847829668921162061086078211889465030598417734957443885679738264981080083530628603777224358390775415038539819331637491341421701148848592518594045882158793339493793385430758541684662895754428362572303222277061350050916995423952438028725948604268218176468286303554744914670594145085019394864308308060023923519239963585727556105023993025819139060300033343249092271908733587013548741430494919738483669077663235427397774260097013368622163565134987555415831035208547882375871622740618879879278067304718616500542870870191167153999876508830011166030739430477758113522781604396008412574926354947053667114359593881992580177413964808944146776016626977782783773681231363983499663817850650194439718143953994546697135819249594682078086356341491862404317333614884915397544461107026208879832400511033584960770754330522718880624912441858965422494336036179936683649433950765015175696652446398540461274866010151284545147880225969423355364825414853778431449329991842497057637575787674409767120162264148988144360264532179639190355167203256531429265576608482447971846577193374129692629856248900466652558377156729379559123769144898877448962602889573216948350096349623929450451132002719653178104861075130155822159479834442608362807739545495641233875016632527291009097958383318220006095869430542733927121569351364122851248994425337237118463352717493010330283915810670716181881023595339455431096109385446647609605292534288126237717644463537653778633987930882341613875028709111999136155819686356836425432031198697267327797488643190613747699271988734765452393455095864913680956287737050245550924556567727647745752836186543181812250744014132928240649796293918641567562114002078770862364321013110172124473267368206520465393489133255718243119900583376823160296070384739689572209998221742662553671561807280372278187043687102408389330787139478402388105103165105734364748463682566733632998380145805708495152666570935267410322860195824407850558135502167638126509346791676893578790089379587036047194051891711565937611055683675289945263197370225511170642786466682885771423965684163700275392506710672812380182242041879317505566596214970945808685969341882407866981666486692522513319969269984379133152363359952243735726337002194395642837725184842657956383590176655632008886910948876627688925828019089849502608579988737740537771108725628273055322610147418507413505208362837155934148646828504495962802440165544048260852064575364827760451245028807625211146215766549178518664367989550806081631369760616033814416032619270661586069526006827384898876719780450919509720360756746191678470815438119198482589825809236272828858928520638074817567551273722618723581120528958820923700823839701159649845415554212050516736705227490618260329293608823931462319066568781800374304920433080351245781827291192901084313359267667208539954371050252405327010942198620320276789896762147416181493056732952694839248797551966129633341998884468402038775092092890343175490315930366545350119209333783977200544561452022808910486000459456029337572371475653390613500884659643497861486881679760713680895651067390043520858148396344659685901447448661722199401682361999627434052779475270923569737774735063001803411318418360117569740420152120455351200134096949363862198142317469455707584215692906929579087300304610690206157207409736894877554068627693897549301433985844009335848358776620720014869534256533819213523918676192102538095631803623453921588888715550201848490047098856658041064563678408379295894292614865175146312527809866405381365683448422488613517262537394387991003720016750914392510262344172387260624353916360878131502811623216203322468311974798486925204611680959888285780572285444136794901252817648816957116543806129140968215005555458849969058857996504485989559364960577465406226503806027057961529232453098263927688719015292305786424935864233429498480560629136502191102016828108338830417573926009383051146970871886689113771657850668955657770477439802521192648680353900430039791595676934855920943344227883272246996761199359836292121672701112607871161138025747026829535625443866935512443773509084050537904106870463942953517248425772797856982868862165180211540100101448063873822818353331768741185594405457001595691222735357186350537405110094967808131324013215259960540757879786730570554593211490779806966549701152901542919562632368417355048919750798826024537407766427725238308842164940958034947194064135638610563634559840849393374147105609285857380305999283231664420340353470879690478725333002742288175095794399469400625488130508373544496297555227390600190801995852999860277516111537068614845901803436532251338642934680434681298688693732446446323545974341283698191120370212771328215711136419457455332896002842474362048379550374178520895777489616686204774470117885756729458201953773710128745902610250771767770129541162198102802739146077903074538996440454202697469808095089079231136100951120546393724319314202299798719113910489746063277681214421538837826956698964714583539293697209036287173294515478649827388190229448571917581177075486232486046998143355517405306218883152526715949759596511993051397213574635834089278090356013854276578213837293170403162281878914838178132891945420849217981904879098981001697084935558596435824117770351751393862664278007322914081595883588773376382326039701543640552657524775221874199949433933831347426796797832072282665150198169054869781589307301353409829506162859634548617902916455440441191747886462562949565440035656709707923771646907938559476831824904512343911460404799962806563121860583268013951640900893265462162150874670398119773631166334635233744578738076898222305383362413451847963849524327876352505266976826942517057889257182134535431232685537969057785252395628613222691131557162472143270664221868235770213001665227284261014806250513842029879593490807074247717076445202288151431867759784059228317733724631131854962227074671953962468231669738879646755008688453261551985869393566225411478516061956869620074985503748416534338978719749233952294343899803184321278630436060619351331226493360932019321066446963644094608754318708897350601734486343720734692304352452291126817388508473705643662667968235067718150331749213832382843225831747725887630381844675988882908651632068931642592548034428086893425559022119850913157427713196202840364971614939602184566042466933013104030515498410572075986075179279491858607405824505362380109613820999113094569925469140525145507563733305575980713833335072543229221843933119883605655468036697658831058259288185252751814832914237549912053908064268464715523806602570748023772515076597140916685810971632121472327218115392958682037499489286849698209717378439629847401955305653192116040167454623645781313345991373564959805396433830717790525935389620129690313277220185605425446126528029017699869742046634559301417148479758415135665132848689121390603085523484614841714571089721791932890390374114355052880726682709937412544327041147193121290382106082499111124722805911983263363995799618266956343459613383288689900976055401437108451022284781147270163336510949237382395830101230872992832057168365243398611348025726793086393326339179135794008965710719882118935271472452169509951809590525762355309105095073893739930070522307071846026444725416731133925296642193028645215617687123136356184407974285314386825946940930717218545340035442041119470645082085330345801959571209107906258175129042162867236939237170821149185837790771264996210831552974932148565049306781661425224222014426209558017138666849267810132287179045204216775566119690750038982689251837392741525907298070857464863796060562417408976755758862035327664711190167792219310308892964070920602579244073005852077775640673805099692856402029929311274750165765445426118432570756761745336879084964961346753697977215384247457099808954782354171257849550143297069691683777387594427178383370622013651275075212995012576319124851061025765831926000065860396699081351660359863738507628869973095488042213181128154301572855192723050189525678602468282640610051211854105539472098167602224873741340108989057047511318413648492457111242365449282394187767915879167154544253708308032037400721480405269376482124359038667644736976512781609071285818892851844625932014687451534867681878435239687487568968014033461108447454735329294727807447531971004442648915192502198041553284440739735807627768421134746290542814169868226524010499727553638026997438489902297845170062937773562838130607355613710930637922022261019156399224209792547712449644771163779195630650287653058175290974033265371287634538145565341346809227499961008270180425090943291381909480694301952688880013592960066761827145095695806488769553565341333897021736553837909341359984662742919054028641024864483558317333762786071856746114102005131043721105658127620049810078987546508009433118552901398474786826295836767128792896041389163391043070851467486104919049063005388860087170780353323177764586011651359014715967387886914010597905587611763122250819204257485042929252296964662893838694446196492218137636372263195905448435213256123753471481852545619019375793488934487906337486666418657322968779662215545783862143981235786017488040172135987578908801635167163451711067244626178420500789015662618101645668554933472257020621617040047004799592057051111570092662491905982550281488987802055696002728341673537167585778466178435953527946569683022288490551088416142054842956840323166628630835308775745367473285661164710903351312776051969600352041883088669788741375203890940866592767597372705642614712389753047388181707921400578479037155360787480928621076886750972579962596030731198749265156730958995660444332258898675421335966590929339034018934311543563557808752981678600591008541504151474642483137777848671237551623462051157921757671266800346120977271498509889955733596867208690702920879816510529145945476276155565825121324500910626293416501619277274330532623352394223458596746748430746905105901527924957778917180562695304835887906280129634832731162689609779765120327563845977394173391799813969474215023734951615714996841662141176221875181654017887343478067426568322969269436874198339667029628797760107908552153930166370384734496734851940419783130621369127737105615719389033492531206561219317123973049578077928500638926998619681743258870228667518635472584368278551814181949935401120100665516774825142579456607924527063268191598051184348885874329481489322724591853240541305379857550788679020127586539500212158364343949760114445365439292879550335912572498143873049610304355306589169480871734574771678640535391061178328331121476819654567930649470391595396740295171327731198549224703885944111320576456393023040738651305311631800305484669815764542067774130425603333276868266576833112468872566389345795040488482981004747502005284564189769639840821137130503597879397228508520957806102813263193960465540507509439350114358340077973242559619232939681107158842966022167075942108055627767384433095651175418950367379629529992943793920306032879744667986484964300346502276599444379336203082047029994113123639311369528025094959186139627668135715366464233090464327978137574971031420267038727155140045504703901533217377840703047675406122769631747367662344836765660266039545918699075782911951999762097627642305086175409267115394099932037599859267948666398960256807766755840294907465678246541044756431786019852014115273172556189243682910040137525151449081094662807722527542468661137810439423995736827319702253934155766511037841425386856815588012357053338078382474061748871661916693208422531121741508464785316432838093666741325441623026000839213504954028851519414682404679347015558003261783362143923660597937623647609275080453995562651529244771723445734457644955943475818184077246200697615437183013460772577165637951378114184732459586711488473421366497246475375323135386965587644560893731819895338468241712434996561670732308579966640873949530215995552686871527277338749112021314653138643274690430586802607414938929235778195159955982605051055312350518403321025415201180217313626251790203160625643701946525594129602343708817848067098820063112888577477150970762625300320078146306239004830643165270797648533244836060027008413342178582623921825750138589398252558975773012937263445164578642808384321969286956204022509684147400190816091299231608758955971662984573961815485779319906255605862123542832200318415831328302449253024356308794749431356295699763901792881994337348841719666001555822498064806247757286836895359881007635046697880110196056692824117681955667651157993922862521928193857902804163153313112904685694058510348525706184281037006376915579158803277283841054285546002023217314390553814799483990069731920154045175395208646133993959559401804667063130219496713749950976262248115641051536767048669294393636917746194537068445496635537730588514646905286000278619777010317014520741954593992079931848534423761972278033055150535734534040362899575532891113424955892698147218528178012871507681270926041941580798243664367462363896121866723860987775910030735925492360030891216663154956557967765602013730024494248150955251432527098599155535749274327850582589205971022890623262106846161601599323879371235158555433321203977379289866305917802892563063312333940903215551591406309313088987750272071836420146846285028455941527429635710447574696785851528569818560471344080584031379204524006976218873519769516633302634749680595525213071155677389625781117239505316783179859145682802671238108912783784833929999119736032793583160694040043359747221031094359162735241014435590392113568715606523138474390563813428116183123422684018760854152614560589677202536742969617943168041150841417648015706621199389006704611938622908953777750444869454848953364312107861866350769246932722277779281778752978778809169016713777877411732711973228689008995255038312966023542761166051183783396714369408480918320086321649781808960294323591354650516661296852470550799730619292974308199535654406784210442814128331371218635315890173447343917351398129436555309768783705360070659853760291877037237200357518860372359333547409925607882232893539562232321071738908081112987351454058089488417349864535565353820304717197170903455200765063802974141980817254686760589649552510076029114259517209589500194898109058269698542938955886107009245529286731240218349619835331840551314235868651333719237333046947860517308210176441323348317411776100675722767063072453810698905658055686716160986109781513768476111230891492162555391869835782491782598031419592754623653104745124368372157779814256207325173326328452226638917212280429001574159187513143621192366197868748009031783336264821727153360831636944802928703004236718339549817274144410423153805354480986153734283998444938173873027236968358515978542521150295860660578405018770377956253720176380129223460493192857385794449389183717357203647130322641531894013784213448351975005821174370525562084185173189544713667014393566553094894762097123811729370564777424926227729392162963068900388918319335206916535223841602651829554268367602334815330095228846374261077212924960842400012448737695836615389789598206227001465187736020455084357054750297150178628215291274226640624635326788773953135521773182697709694739749125642243514836305021214134687412791948388025147316068726199758944499843539045610421930011890427977107665103259383685885754231914126372262533312090564879761072240028527783497596064967405125215382915366199472012093381881841782023565561198939006960809939389354737402576498937705371363639974205123967761402778161153638510337351772322366199827042656356283641355706488917823020994033627985668143761859067812468828174042344103458415733314903239367833831299819241757353774446515945267619563020973331326641314166263594966895349270270590265884390867620196050843771614593039151887590608732595585007065905690466774603530295447212470166318223743400270852776373096160104181735791560948005039510757007753190471621300346864539262785997521790084573849736633670001589608418738638221532030020466245480155634003136949629392210121445776656394337697681012185053914655697144307045371287314433397076384434993438023975188095099416594639095783756716648070548270745238280506924132919214449150270341008777582276206047649084151748547201123856654615949130698217557740359601150726332551604057742915248484667209857809927601138726448435828072551683053382006659426113244860004608750470103942152019361864572489202740570727902469960493169404724661441083533806868680109785253848695665462844008530812882314027262957110891175484790605853560915424023936914376366801346296321533553236045552235820328255244922952570402702793982672024175689310044456054934831729613371902495981601926671346216349112667421288459003956246376138738197753148553670582677725834942400149143944782472684275367740752754972593793411204748774262339621304273978124276722526390333667844853262209492674639668400096230128585714212808510501015386191970020961507193594191390693467660519566735162059768707454971268041041431289194034131916260613038861891135717100983866355137531326179514131337420844393203677889592425441432374431387491904234971255805494840721490809155665442212237974621417042277517258190878092261180686465410497202679317739992002715677632261242934121905480148103259448499657773640581801368705115783215141207689407706269535520671522278363340434349382561781351655586007064644939156626131075712899044759662782444192009610786924519596244044986144623979175237309493296762423170805824470285795360437982372243818265117813330709862635077307146676447347319753220576606383290224598436552615269991386791459302131234983622414951597031032823930405551618457307536303110905420091824941154589614034526445622436221938835087073474277903678804308130608564589663191528903691112184695107045086098975166490974750958434335242380422418211823914071915200487431149728301354860822684997922651741773424220633275643770011023579408148296262449083594333501090173651455985141786670028961172206847360139023693420640094942681962993252694243391688146467174482737824890912343452780277190648828914661626081751213113661619902248555561083698459778097806912560645069937354714724680024943417435706642004649458657006686521926357588038927476557572889524657693620551084986626165697449551098954446494218263951971851465348782040478314878179866229547399696796707807611446253995673650769237427579957074832173934185469644982834257050048846445285456433182767207759482883722209857915768403810840250715694757032653071016864794347630082714781523125242456877920478591135484011948439275693986239488076632671648683515516946766101544637432894949112158411588235487018719466180880562231834570157788082478041983750632662905810271796734567960092560196192738720209863221790204905132491334976304810541949124502940093171203718618046380037286217039019127669837442991646807021686308510315254660585961832855769947369117187338527664220229955420337606203852978065365626228139373152246098728734587695496691918185964686338168507459170373146018952790732778286492997432786046225659325477807619269945595911349333293378025022654800618969875321246403858220890086660058683044496892528306174651450767086162870099516701544421046820916043940945626145252086968038701939593695715710853746038855688222646452356561357682459102934216945450364675222769616297131666936221704339731182576628238528715116194163023329332823960456996401616176330206894776934931652366459786467920247048181211184797628498207061605868941272292308110557103133602299797582694912115956654706369749517927711961072829515025560436735498240841252300708417142235425587095314718911455005425611831136499434363722080569386813428878724527067943277120917501965876976167146425738419739701992191231533978849329642381307771113563143492433984810195459120087807544126674547985510294033421216379031772926008937894653158589313555861003102968095464956828847697442270436323895524375366894664545618323936511065091466761223532350999332130376453994693144342458490664021272973869032172892806548124845417335841416355674192542312475785537125670124515618876128872522090960965709340630396052244670277823897957290281445741157221872405804864930232680952122896493917450250603711629360112055371750064050956775757880164926247467596349669411851593330439858554514795726684882554233884626000540984758181757446601570757997563338409370657837028462462680232698194529352621198943755210335725969753156062364945973999870252575705081010176099856619193763365555956781056055047272051807322141995476069918028298376938782747184066409151515798764378951532466702526850887668189945616445894494843866954192599615395688877884201992219865755978468380856336789455597932854208516207704695703584906877817411795818310212302631692966453757158979039192065331051025986029215890699102277216199825859519423439919322214815512130062281601917589158186635109584463045504713472501613377948430632935694875549831075514306949235137998494067694109716222289916297633650396827674507402417592543467477437156062677640253107264717608685669690560272884225862969913969433288650678630073516972633840810952742150791535652419260634825543378496232137906468355791659696289386088622472925280228101638270232665618267326541647746406194311553944564789367411979212249145346641445972645034993827162725403348102439853659394415570810878445045170771712786391464166306674839074968444863336968282107861256201213702060833442679906637147037953309065807577086818015089199702729950668285608791383084790798238569433130955622478756950975098763811782004773078876197455920485047397076595566968257096131669446153419873893362832447769343440789446284874330554150265582324435485093891736427106059821632749174893884976802454965882679994938523494116078052256923855724006083554448357028459994221712468923844432784713132339563371636052638425570356179020422032780433452924290115633249537663625167255386703708617580983313545035468172509726703390751510405489723301673154918276871688270794109846778699808964541280660466616519936984698495021846083510250971667297114288866796302442445961537139696490038901809213876545164531552501059367579033636097059930380184390755475655600480547816469399775250085657299275148673099636375693866639555874812414940438984224643099628833653897265855543588864156874773962819345796397526660536293972748723585287039480777580813214512268560056334244728996188371332269528321697392759664444375770899543125381916885759522757121615446740993834092280463322813063831114945733714046805024506819837888167518007743694732624494267772583034495271727636986840292942880310498441054520637225053011744816826389480447265809558913969656808928950219291475757361967102981689881179691345342089680153618101034228321248319201901933304240409712595432564989201410302216164717207553559198895921983460940526199647929706589355927537276769614307588309144872969800713072050173004639421325961876918708461288985552962333354837827792196057157961011770199786506686307784795766606442449564084832239730721692114353087382781118103716722773670306419444764588085929629792083338462202970355673760625708065763085533240865719230615780013316858471862424068621393939511398962095225076940417382814129743631560282782235188215514795666995624047324504553038874650250691729127643015830740837235558003963269939794597473361193820099662628009029581996968505472806065622568897840834769217504944801608761890374363105372501471461032856538592302075102544094855519521934324092764109323187788322823639202018910787127578966016995658421040943363676760688166589138625936063151876325526859904048934735176903249061800539932003537773551484263084307063422077558977501230038472001049412059493013451252327895759426279159217717871246564317714470345375606356157509952899239617105933529468095756077660833383096783283163129401582071156975876970173736514729420306783391035522604026541732202136232068667977142392518829540079692107561240541631570241685960912925198939781107973465829353109710480211516537759735186251321051642505382022383297761225338095298134534392345833010783358767358543422072900338631506474477944051019814485387471491010131600926612564413857085821375339959452954457527868524383004665437416306891452800928973674143661392137903701556040214045602198294728625171957999881998780456323626408209552909075401463397828929554276834997935082541500393206051724280923503371070944566996724762707125475972615859307010911973688767883734766033957877400711306818762573367535107089853614856497053247375965409044292147436092760266230547837030120179290801462831213376090312442513851583830662310350648404875757475779892592193356833369313341396078523706990346984481584854854967746349950419674464527626722630297349978348297218444053291470749318980014023442147744212944392099921864651112774958002184756770172865354869738090518112517201699647816533037422774574603319054139764719135505061954396906468325484698965674671605924622318671706469267151927389491536437142625583600948629306825179147001573709471299627425971834254871001612602505135624187053584722387888155910679626168593957595845918127468122213121194472575642351286311644094264831984524004438384838032017472945901354145412140050328457650004564820496816283177005602025823859359350454885727314683973475951563377549892723125403148158457582451188202413585985821586544503840973892668378428506758133995812261954842374861440079932831274770177017792864873621925215117885910628899405982347607302862350192899942193361836652387593062810762447694370006601892751700759135108339762893879809126267652720018794924727780837764868893284205098410007413452158082648544209605419219283195442436344190283022947782003295616530703643010182033182970856694894545501349939123031164173467838028848228843308739736464066820676347989287084779471637111226686547909485138629408839868150332137076515367261224822099982861502901441814967666363968689733443972985116760622777614358949055555449507694613752193089656452845099305019357734110237844048667491045086585606325199438199787678692711317003442359478982922523237698072355595143615939689863558835281375001329559585431529800264679805062586708735182662368875021832359880060472682600246636846365441477910091182001073519723817585315149967892290899382236720963089786517567643618566073013910849859967235162565476450192806406897363064690767015980177424502278878365210129025576885879847823115048520221840146851156400469813263463356367436911070747888365030090610635910206699546471215395576044430299203947123305108560857034676510610912674351802480680497090267733512372452298620486493010798390364625310191389295005385729944211395886679110245095277994568063339020424326461353188091633417885577326578349140239219150176411391636488808565043784089322621190825493539498733662326273470967751721950274739148442182855777794344456088202929235435972000016802198492250514892868293817719018274097511015006370120964872407515030631084937266835149720764238662943543669089146340818554062612998764874923572395362468832000796004661866186021381325342830335011494748324206950347497880100526040178965542774313557987820435237483806208529601218140291654634109083196574706729031600864976970184335229709367221500878689409322622154066375045692223323612264897062545533983449693031567749016273635929755660299723258441593021475426169562617475653346273345628543274063533937702029002315961516095932112812318398680806323508371918408573081116405650539697382697638103309915472135895040307375964007737047105911481249378986486843055820349065017981309837947744500547819653660836184198546160018681741288362484020790530184548993658142667643025945292801044398208905996090711469318131210791824454610175463919674930110440391770624329978144662956185271884311518620216187063571454675916469375928330374285063383122316597669404172137743459609230035856796909422906754531011194218413846667137676491923982296334405629092931732059407558682535550084955555150688967770167103307471858142498824845408030258212056844799020528938435049266871714224122431023972631558810474171022579419039405860698678418467562951690286930355664860382506770699796260100645780372414748103669543542614658106119450856206162002006119735082536478728032837358631695529784601156731789534220767612629259234721388635309687093910794259448285108490007558514580184989380916855714165579679245189995917374218517041099904964233898333926097060316742607085581805359078374988129708044722835799108138506478994320995331797971623717925140500129151202409273933311160942392265851883224645468069048726646424774524738817055313189212046624440036484495861131790576553182629087430399859499446622676548256425990120781658725260561780510113337448602044828404728755467830840216307812233293481782203881917508190043100966125545804952055445017408136438742512826409479216409849194428199503609467686980661215258732648976693407295072919337724003715805200062039853331573325309522097445765787720624962101021071678292195794392967595400017063996344885514031417473842569408039840008825110052057720845246866422535529073983146108110924578535363053921399296052774469982934005956104896289798592289981078238039193521816592703271981314870583814131421274794407213310733595816558056837155281808995497163076932439360492397354001182650803175866396495683092739464693915759426063218286244388272885118863195483020370405138098846810412007680910488320033851135219850765457546325018399621765612585431959737610058723194368755117031364100566346647372185257050741646087026910712267323681069620436022691113185501753966817840268566542866660125892141334148838995060754618032910474976878187367298012508287432814006149158122664412981703467693990538410893859642304618029868754516665313403980703135335616968964203579204335633774044402224186782441010911771174653067081539522400229447591879165617177828767048748778704344813260276408399972861645840072974587915308387601817436511216013665038815983667232695891907905638643859830905579531003661537055046170233709389449821068003178308945336759597542501687210803889115346341478862472158357622185357732666354332069071712033101198645795659332821649860561531581361483058226151123431437461849991802075764559738091027989847007889782780560111520126901495169953653947182493690532545620178401797745268052095334132464528573040527427384139098114304086348657362240599207414033966073575337782015714327703215070552911524589175866316535844351596201872817870424847859208191777744138798115278533002581048441017925541338931843379596489845467335553607083028699328654076065014156291558554857000613221122413460979669283491998245881560702404972635791611811924266310914111178505181351307927033007047344077502959004288157671374070191434760078925165173393261323993550550439914325253293425277718527680423502398254109184104087075230563337827301824085306519738672083707156375396890650296561161307987976910166101002483779788407697171208684488241125491834174401592347310468480825184244232018360589823816193099372465067071960879028750528231366881333349780997440500229512139191400120674015484487122471602279628818497738037908940000411677936934089071071414886683440838646060169539615350939277395499124114306154175019215731478913951837454231219089347187719890635621287351018310607915544715114272304139708494776256361504948122321758829612574406645110221128733527975416929762801750666637905944556340411734884349049855119654148848040944734979682790304344146897613114931164724105199166833464333403898264977857783869261883506352971467470763423116333577091465768822734034075504592205496605423409442874090689129573714337310699408952092799076449913841894110125232317575442170434222026942675500660308419620860010549727626755454368844520495729745680549360479310454447251214621535975178709794734312322017434782538656710525522580117946153670603856026803557576792603512199767574093790707266773182886086473199512485465323880731909066004141715688273490129209326166056860359269271249588338581232421427531713318996469693786017261444983775332384600992538494397890762114748363729157697221565285716764690601039947298766204802685392149166570317997727091304014657813452849233994036179567446405290706601259939390036571437831652422446626411735396755055128185315414813841666801930300341396348388836515060002056651035342254376928818953359583037447269456490764677785364264184299685486928051063781451891988427369376924446156683684300059600441083823892851513741194844698943306087436367250179802050866110299021834033945490365743800832175327385574105119996510963014802402448562625721804382530585361406163877176575313429059623079587047072128692619092986203513523308966388329202710412773046385965146673105339483792696430373484440237691274741754606985565907605296502308195642299989178466100051010592661754081544780268950842856079009806722557093549887345171465444498847780354725350447747915280228852529492170165401217031341172832870075827950791043943938587235497438768387854426266922205466944087764167786569031832325718909582373195299921735455425811527947609126523818525858893522458667090659999722123203062739563042661888025794748668808049326523247403859149057603405855562473831440835306469383621966090857944355821640484240847638475430213120658077011598651134698773545606237487040225208998835100085919449466125580636100034174072864371623082428141971296056619053022719008976869713032450506506711896263581950323245233205323128363410508849059771988709698263473810837088362302519641334634076040371871011647429371015561712601334664707283311820353281595969779251454828984376056776588552563867858235998796445962738865110241926241887041033661720091418007260774870926124325630435413277732946698685437846616063254601720132197196693495421822083960980909079054320833626902863269142868397719600110370509051787815704564760490469476481847428671030280420587127499482749292847908290778281973559516034913567353373010468803061713037495898153587102271611479935643930648681071852185235247855448528927290718683043372038418378373336279681385572124027672253253150125125153295656283840477161184125042750657476952038086160766085308186227398157790529686444924590229645727325179292592178462091286150056319602702520806432441325956546234208679371377558046576390778662545321194827177020046749730635482716546817770529093579956140399576801279256524264846780869315870794898592491441750401617486455274457400077794651772053764987389860577901377160858003426220979674015771743984069945128634546557333542938137732938169456573260184851180478148500702692206282270535091721422466793662986959316461392368559293963560131034706701130213117278575059128773617823613915513810624203492214773185459563276319180689413641395354828649366376625655334187760983721705838226858914578658896494327267952901840597941254929627367088554612445411224642152360876941997426651289781625213530773787680699637091931250746673953856625874731721081246940045729973424045954799072707482474910327501380854991905333213148524839829012573184165145574624965752145127652190550055126964368591710721676800280093476642721214028393032389164509710090745254777078118927872485620242926761104943740577816896420443839356810002379084482578747689872465600216429996763844552514567024888643386449541504251491127498370765337536062995888410848615741352854162622822578551717999857307514393562539662487815592545873186717209524040466074092642147798723015054578754151180897817976732395837071276058202915169040284050385587677582075207905120196297698269721446008861220867721885971428963374167807526048674154329374908447897179891211561938842246086562090245126814184810704767933627178699558498801425121564342575757668344942194663130745608594807594525459460361271370530695068450915736669608517612766964670324683443903395261785331392026219291397490445397297680776063248352232610936543449309415166835671366276642331094883457158746855374977322601653519261066939403764218494055127484076966430572430826234989479843571060132873158162173016842170932779863796403070600716333500829461338898213495629916396377562492206053299822934613780069288180662248197949281282945546967313716011890254793466933758608383832936257325497701436659122694079293975648456619670904937373802483907026462767794343829473569212390965502934134517081487434678960763096114886926682881567978672446440838496028973237622741291479712342712973025003010858651750025872305798751083022205824065634752606428580291622873488930880379373259200373102498126507475220443929315203344677865454035550890276958284661304746426180953373085323395006285523145229149153397017616367947406266139604705939056752567653120107773598609902571736695631010079545257051786627620775061741927926488409574089332026986290426684462738503350225171321995770627737378273905727574323087007351534251872779174368750878854010244313547791584653931456152268590575635295999443871095232523114571131688630542860625750980180721625454390722354429932437092423513974497273443712134889736636526009129055596380382194958786112219446133615849005501796271121247855630822057194155819753213197394104003017918541405347632609374541105533842801606791668456079679253870922915850022585144758285107896401845584413177512954264111856961371640912025281476301137939672233510538268730526962018830807482717696162296821728912241956039065779556442134127252975055252135070826843790475518839710217892268790664652801573473731027192300457634658404304167673869732511530045753080237150721174547903463939300224597232151518642126804492103570571057025600894456457286024022184856107288569442152573167493409114014993742827764470767163079010536910243332901230990804301648457807983396709393913096856438994835531804746053721268090957549021738993692065052733783942083475134837779924572140735769094463512180694734136435281469292770662775167002692715706637408932447005746027900579037796466364800774048336489108336960783324086107410968379980523061664970369985834468455388614908455251457854483968859099568845800569142560385212127652573595154807372284119721203721136425994962088669748390830494165572982520971180898859896425823108877920141553162935576898970848839265843857315187067585327665219581635865925282881402487409724098148012851900348702497589226184737632879369922414723541288831323151519473019771848642116384906953332971017322571752939786167534653934567435909363828186624435605955899059417323918853656716260208009599016853594350373368265131313442545283444436018000076485542385259471076385667448305896418327928124001670937368421387310020008878587005521993970303619379374337188261911971945357151087025307265695451057453660648671065464825368060179982457812501198923647335828772493444457142246195528003304033318205708901501344216907442595022198241471800966567750120755144779115218599880305328765502296104984039959391303360130969514833770460369548001729263736823701057946346179791394962191216294265053311144980372533472295554402531448912176070907050365632762657640509705898952844182064334815858375120613070357606231745211258747180293025192470127175943262560146014153156190981489728771071152218354135290446753258202966829268667720043561544046386815646160598600898641894456835556004469364146228108253273488353505143647179702442461073527689912089733129787935082199138328827458104209649966438779198495647801947119101885868285173980800956460357492209255656602160779657287299866964279681520261593816003781674083350304060124197457159296388125365613840666384617063049725267356755746281574265728773174989507149524626030426149162016306135477135799238767586536626628322659532821684099716600993380490507283904810224969749437657108627798978969350133088867534308173978961068229381907311424345809929221929864367679609841037087592140148804922646391187446163794519002035251401940842124910089453765482992397594897969664822033426113396999469668375544030599827183596657913187583459274562890329089946705570493550467085328081997040627634294022868851860045705246413402329938665914674987737729422862046213348313516341571682154259709238818863909243078797431330202846759049338423244792394955824801328050172331517393866366049265876656123863057162250569819825572678030884577395989281468888837476063011264002945675984563688093187747420797712374302999161826079005084548587693975139315485186082156526054734101586928421130204373225419747095245184424922636035606630472496052474914278903818144863701144813439891274373915609792162403052537692488291451862554317764348209082565952265188055530991243907495162991578233070499855012852145233201302367434624000551375784135550107365427562046834194770074258220455092216239777493914439047788930033252643897995044336123949311178311906141773934138845458853232359305149616718176207770472072895109886162143641017276247391394675536895208223627150610740992765573278939382934926241183798712094437088937096326793451139844107747597530114607706708393909082199737728641566395164381497446787543726816363631985062491627146680504337363064035838158795431191403220658686565555078052504843566243135805617009443384110358090622243380498560870011984152091915564462007013475996969901939169621129072983011893279132233874182029110237184301387752388225097424995723094260589772295665311205082969508625870736351685520130421632623947696567069781593227409509924981079706187739851094107382889195618463146773204876665742570174655078866427235188971808515248271475800040037842895546898345108379081741930200119106788446998643932553466330425830884327110171046172343827784572088493412293357074603216682080118769057723357198724859734592423854848520237103756925530491004786052314075418756985640971970472409248409189536781513096868315388223012369996050434387135336369624612927222537778185984030263318060234916498428451164111448405355041513719066116634277625754622759780507004582060259201361448407368772153301801921510158146455451054452797383688675984320561263196527629885744133019954813819733879980478072688014209096352980947061376995316865955456927698622545445980918714583127378479836825094393507274275701684261890974375876336253208701248180991123734644279437350567114273128387334741128450603406084551840514237784798181819662839847177042602828166565216749442717084201642880857944953540413565167524581710139267539499870475360388909914277780670624038600933120689924801964347165427871789492245913115403511636069527988989313063700516872483370008279629009404963803484806107553529232673908346095093209913022187085468669996670231629616134899381562644328897954799695022617119960280724441745443776292638278878453645792868377646316110694275468435272889473702290165662558942086253203978483057017220287162396103487202287461866777022499956347539891042745394298064541818734411118466835666675310454234861298383097940411900564962887994374120550653362756071377039258950253297196254501630845317892140874505504818317175158537415295580046436391112082340583110477568525437841938798697408008010396232879461686942995156563002632554267288399524864596119572135696713248078890385643876300099263806843456632665237132383975625781240636598133054299972292042379747873106772902080255468046564690023212402266006097138944414986208458431484935881979104372088456278820691010437530746053290951166479394706586518348357359199260528451088215737161283136986288437332668662499520539551949357308114122547564207403387393014274622544480293835949327458351705886504369640554609315572214777628484650569903321499084813343874024595566479343652142599660961283020249727363492464216005025830934034014056685112798202011667858930183976760101703115389998407710276427296186771101790530437500350724738531093391580035651623420587884682143757211226747577268283237472115759104635924184068944534895707928790099767831250792735330995484612265281387628929545016807444994098742348241044467567335762050485088414772258716109271637093633730278383721539310033942355466695256183348123251370100605726893083230695184831632260032540748245829630747055269508215409300472692454100783043504540550799145904515287565406235130924247359698867357630206817386776795695481628449082535362805561664895191637814901017325239989845645266608153740002788466132433058869536242666159433659492213403086900189423026614260104966240014840005099844809710876842051414612071779190173188961255122799286504938041742847236444764457722676013268219531168626278684519247907450619043032369481527155700237735246874526944532836172179006054336427562589168589650799817897913611348272744001346447765263043102266039941524447919874302612652016386124619363408118463062314974562796903244876474662782683460166711414994608622118464001181010067899353316248289772566613795371090416777833848457890169756156760758856066628326824513787314204245200062775341413038116933019837815189425692761583021437987926435365900881438947987459901087174802997976816690162311680748782917479131073833165672132570417326985931390769642035383060843923808318730801977149390191899634121751844842940776672665686210266857870969311006079005103894175879607570303391930490583404185553200480419258305749090488090459592263041879236841283805805082174376385055690769157885879018082774354092232294323252487798280231367152644540560308383396122261271408986004369582883220620588164059453161675021771946012267148120175700773647227325768160148703672246981838103963531746175584735797545313051362694444726987610405200602886885574863191475038257756138913989784463934467888882736927815486514340704194736766228351074448871252961335835436094272403063897084683739930356529218138705641891197288834441917846072022662396245650749763988047231750558042619025720471414847253449818545956720700247905213062776648372442457484170531708661394018859366766846377702035826344815478541177663403040322330736311886718999227780875351058145028136567369024831260733501667713216737848137868645261688100652351536588751270312975480624021856849269750156670827971562587394555434939446695931507356420872646019140005532357320075177642802940744755907200764376014386431892692123749821874936228901355762817790829162650596570553224094383305665023420751115907035763485185480711449788634421588997174948159308071011080360434721556857395456343488930721565672806088347453930792373714805443389626123058328317934854376950611428178433412870850046389820133257792526376102657776478214294266547430181136618315081382932631977916976245320927079484334180283200016886179223547071096132017822761455969038695024952781714908067092538978781468424385818459451528584461296319754844637170721057223742519101135441306062362073502981107696645680011984287164327112404507769123572315600725115542112372127880579110551307341876486354404990583675025850232094363623211441585611459110158339787950359738066771890161351070275514751264502388259008236791623191309008755250976541168733451677773166047709902447188933020582214278839550098990129593519179890263189076627246492314834880449602438832162469645001091062202290743861057864567945212471623584369484126161070524737415561976132380724849141627246420504877270449353509533790787264184943916443049857645556604628082250157566645858449049411564593553775003690524027180805311546863508244576469035945095796021346665896693820179471057282047477320197417305457444608043559674757230512899007658195706738372982722252008625837640278895064920615832958457020614694475051975601735653850283201738218055254228084162006624280034552242147381909681513245345482806930481341117921040479298539798056767886442741887456224304553600378692529984188075003231182785306222297059801277919353567655940227436524136320933239684101626343025298149212104879407721921793320891125856908128100831708241625781920605102815073468798573184957338059639638779386526859902815643527127800818206276742378944592269280219677505859246289026165230916558929412073502539730708589250300662885205117931262448130007389617520446225420421702161749151183983039046523832336891304314432126027277113105473041819189576867010346637134026863056996625080052171151907951338393938094719496638302581130823512125150597810881654154691858763824162468080810135148332176280614854934097629683053650426132362669916492410987886398728082441655570034815296008429893096399170309218786263218422124833777008940455558756673291666266292370560561505062463759950220299368934816896705073810694192991836134497665278330228352121693884587920189509140989157270869047547956098264740625677707005819454401824668817749544479340327150383769801194156908866585208073400022382881653797856675881567652468217360513910637921669185980735282180950860305495015224182178141618478122165735479409394524031788711567199975365387235864769503206977073917056415839353143061192979238521746542530013049732887520746587279024824366040804796131085630793513728678012548936603863085493502389049792324171952555873951203033013295823399138529368930320056360468437754286656816262068015963353635695614796370167665567748083356725090817118985579898672015753811325213883979022129008532597530972935504604257937718641247918665938022966372867637278668832404888223428667262884968451024868334738451939096971579427512041489791961046160647400596539482422705918756345984571553521852303730726366152618821275748791497494245769266249455511365763299783625448849706423708351239193347343605305390830772772493133700144660460842512790578209998742186331280645353343169496535395619218046612241977396916059096984964450687626222725409710718821469916357417980668596973910146517107256288898040633562502219517051483265275522975990438655564120450831940139159733439798337700405810759654290114572661545385237923185838535553177256307875212479879439188314854562165604924192258679866446216256152658564336004705984198285697500262710791459582305436969984583747141425171992098284967673808048246756211611808321748928838721943925695512545483598061510059691437019737058217109646820285074258427398987997457902874323637981206134473546289426978780949662432721902633589485282730893267838696429102781383797887270967692343281700376712660955045990961151319500157132893957513934829671227201707898346453278325638382291912480352411730263792758816301881385427594831005177665771662249946352282800964459715842569852151635475345845640460857512578493691516979671533794677039442737733524332438469306043009786784113896916781341056054564044487767581325022505232644335927700046796540332069930645297877222085840289466967578911865213982545779501386384292103084061596858864645313495179287988149876392709755093196429137677882822087425391340001881624464543224462191789391182748841458574911399243596758675131505241776641468785601769923044484615362703047280689927635309495103521815310447082958516728726371618360078548710175310667512418860590602787172283484947837721835477707790455636997213636782386575550829356179696568699973106284210621061561793369379302102856200207839487483419850770421568363941018540945939375330230194168055510877229530673802219520234662500122657853178281636153010585257176121362642001365203413092423908603533574438394958723419721040581851713410130030011142023308357570629484932350862342004932722262662789525124733612147092618914758673251932829310326593848128640049990702233586264200732677681196357906713213766197616373844880429273844512305241595981546341961244708570793593492312320670689657360715232171121947506363488336065289897850612678266418807135976535656909364356720248175647830884989394277977343871642115371484135350694545639086548243774631470029954170597432559580521405731895126538151181332037122580846181886216986697734847204811346544710122790182057648326989521045250737695394583401429280113919304961014051860946689907719184180240707551669651540064835425953795265648224916877566062584799094461146082140498907231475225586127050799246949137851065565771301230483361806902895041803790350648296291758100333895259171970485098723621380777662634030444277776020001012763989036612242669347438138608427202608126342941767581385893669738225257855011821643343020192453893258294697512029288147243387622634226216247974829734034125400765234852130564044666288871172435568516785476447968487158520506262501889474880042392303513734450539348564861625023517977119742836831776577671105727795310939662018109250087642038826555569251438264843426472208064013219239227837894331023821996272518751382056245314900802691385966513045566671748137895182083570353845625390711548268442701759761722141151110864414319251959257420326405405604127283768995664447207918453261251833967880722624822209161928172476452931868993249262780124352089633596883580224553625211034627983030925884432146342366897367339386576982494693887310189239102109294760678016462553633062174661515762946497933769305827588068111559153407727110725981820331736520593838690592363195853224667166167248347252643697601998952426967290918913610092166929451388741445917383542649832859881177532045988209985090923245946986962604689495622053718185327793426718724578314129419106081941728471306549313252778386041851151317048745601824888856747935955876195267294860240159522925323227987961584033296538767427533819444224495681893658158816293857159335186308859522456210608303108643213749384363384874832169581109285059164105548565575116613740033173161331410734016424221738748527517603136738564412263751799454861311751820402497285082214716877328187435664444402685727660903539881143885430303529313090955395039310062902413636905473522837269498704893717952523527894248529092233539577945740507726713815182565977061190800451886238463835034327707063809361537477451379071675132133336649606816258955017808712133883729621233933836027642317819026608952690835978397556028169872872551836489515499235013221044440564032213435858468603957233955609262503178520644952693112621833534630249405211600997865531124556582805468001612456106660553609715632104295079768037266103044463588576210190088073834479305212620191816953517211127804663344524782308434779948118263575968578482471410468339797365025467222399269520939226280408998715320367913486581279368494560266744892654563097713106175213990276562129558452868367414369620094017750103756326982900354337290052713754665726812407764736301567228415846306133532474213034603550665028129116924244169912631849551544952445295743958187950276054914891543512355175602230815600104098304283559803938068326538959585848974622108768304742317965635199349979824070043889846249852946394421434412555598666655468278456305054821509970045036455340489565575347683018585235101699270670078273345308294172965583826257172482550284719977125683313071218084776342985662680037027087076302366154812798879454179856991708905884008665358750079788813785113108038633193301191407031690715751361917926139366755966368375682403095943539914354919275919504686668011905578792838169186129124603339180782103175730913399949835336232850625914496638766843351740009701319210576193815736988317271705381702998890548977227044388588716499364704991975713544950982018264444320846073177267127332429488723081320440994337519829125640501538589284065768067235887091326146570828365134754411383332498104609297947621301789694913610780124642592252224283497640394545035797206656852780217414563958534245860414851988940104953141356697250595576417970670714545626272322871364954526241184885475243534291712812369266399867356949690516814218628021944175256556506334893448839660847824477696172465245663192095919750595015266661577977707864988902422641205085707054823858901396175324133134807285353473001944261578882976369122970720624439449152403487145290497975615236991327766682845608241512653940861263904741021904566397685672432463543112867140054455213585428995825860810984902113975013678020245379080793187685063864719651742814097441741718748440274707284811601691389396707459146676923441243412194504153992563943543577098487602939558418714779147101060593564823104886677431084092427915075202330777894320292919478383630233828550668697884635327551693080705772131856977567723629374636844593620402768583601535937646084725816510485963170438607526539248713963783897064489882102182394736700795107083588616336808463993914272323093506714071603045999662953511935983830399568487626552013190205648617394181468176740427185061709711990295924369537904186340854891798783567365100603973941725043290904175930740960501353266571894893570656914456186796687923498209871565504506951007115170402517922555387513648444655704536162206590333626377092358168396270060654219566491668463047497042834267872200655643863307245269793924451221685962121454736541445077617403183617486542340779257075177533873240550267746475087077853972940687418188633380137972952870773732086622142841678507674308423884593297672715326316889573467838731537125477083283041726585318698894455088838012043673682412871293117326447137621390773761347343664941039330348276244161493105678687345775448984618102699634798336571904407597383112286956920001428170334216080437906646637096281267015841003505488628807119586626813213930898731252711755690389566544331903799376476046643480415202527231116489258554008947478355204452383735639194015183769597086352956302313778046446950976696709933995904009969456818936176509897737618753706047855301675252331373059396740456111379526699229579891605663867613883322611113444001634417639852028436500197017682486303796839519736992394138552221449321501476923258155484189958745527823595293859327028821711536196472497669253475572283749539997745129814558852358315790777297619161467431765018197752644708291906961537609691195604152823461703567111236877699297575416798019126012615456019493591446369788692078068200983912586241739076791746044004428947500184609439589210253913392419280406067862771111397672358498607206266106105629507553596093606152758033436569108545434422439220066622349161902483214128671777574650379217349697866021342700304361806462460089597494224104304588267904430610412113913895098473836181845996071671084596149659400018454695800779871413576233870953742588773966399440528638110443138115614854156891509696332608672191831148396646947869892555444666863400219690235471386044722903903888086933839657781569908303838836034099382717525738912785405147262670329033778415625816607749094575827436490288140492928922806395046996724204964466211934566500718398406634061945664903246364493208541764164212901010090921100357424585565554437684227328900301553132953982887340479272296676405491368596386766297531811209197429296211470261124547776436706307533520483446000560765403021834711967468129342486464998068708536701096139656723764882585190850038435041139869086170427337530369713872978827504051465944387056662193988443834831821476582551103474463306757252353825301971695344917832639622395153134474169446400967830941091518563990881003727076277461879736205291669318452607486497629514142593810928489702254196276029303800889419151403277316438517457499319181174618376922382050465373959448554171360981018351506747017182100268184806195140751428598363597266158729860845225486018002686871003702461440267627250113827225496126493628462304527568101338311150286247889344354120822274893941142514918321626947163023217063354662571437879110543764293464379925423901195897817335136676125346147934437994768942693319551156883422430833519970285674275725037543606502311494115872638811465513374173088210613072405413675283129995997010323453109689231286104531295806264097197679124675170780637468088272527593191420884982512133056483087310972760824879882541196746622390159573587800262319610567724948776088317525679271939522758247738360527253059312343307899325581723254208469152070803317803014642585672056088799286152681065725563904623082855114826374375301386646805879241379889691983684233916976323224484792509269107984449846311523016125414978014049778570517132854644443255552991541474464510566423846162346881594111566467442162821467247327562240599405709542181989476923210433669112393583781390856428931168959476162606026654030154012440330172469860876015514784148078733069270247800518363357810880868139647779558246978770685506939871701564968069986935545294509338347990367914149482163594560130474260134378167102708185879816981939333814951791831956214525784749105133891682460546444226996432559219783585884713957678059947381630419088464881477513424458834727952003221492382427066808446958840756586019258422769017880750273625078279918519529553604827274896780195722546510072398875856329537958071857859359502298571000803677419045331137358408529059347812491313298780589052816531565405453845731517106320271265906301903887060962332396186564971472461173850799075620904568782738418948466203119604736168016911484300707223247260680190882608643047085198935539450548469641202565798940423473606073825309414785249196612250035603480469836886967515983714081469009742202224058357045529540225046800119605664692444014287767571470621214211233887145295989775019292840047103886008834861384683775669073061603174281754004207015976139325222512328491064293380843739142072745091449555283698858821132295200526341751144177690222003794093833746720751749686750214840775002093190296766480542661500846635364940353510267292767621331745673119607715935255265541709561284207029777156478055135139354988422896588276127428851336014676852484272931277997928705115539240278629814300009514797226155154368999601939975093568339014035830466068167248916415247476146092102577681641834003565267624826138502277780881547570550708103767096159880236897756162711091209755602596782737016502816762933700020405274938535689606989303284185128096627396175270428669743212854766602210967001225752722019905715067666883138536635396489282294463718982062469260722285242243982450409366902109039968308540097374139374495732835336100989728180394955390098696399046268332347311400620168795724947233704732586231136632408551149348717805648308623482947973564926830387257720530435263435623235838391201533142945372726889384110748789544387744982023640199070771473016559473301607133014185488492949899267986634308077514897250545915774513961667201290258970626825388975094749836942465840170236167545425307234308340960852287570150782403734205599105151275851220764571863073314704744787256996203160005498109021586935034834535654721754324888831687457367624157766519140321878988515433285002102318499864742498536437986586442548197300756491647152703904350093192885536030143407029797235753102824900729272114418537681805130841772607362557800343952016493193038161408464851097183193337039242002408946852353553021985850502996172521439763403824840065844497860308448065334066173250804705586318952380534188736535277419045735007612679326506621022014871491598692450046008572415882765752950719794861860607791717361955218674805479679485223948965540582855000520780767569975253943559487895385027634977909623274115850616207938239106046652512107088952250490367150280410358433132232532378974050612967272908209815506706431312244551301326920614490595225652403674427396485356659379697574122587649581796312283867570056284043115275308687116486889351053744699189919950659740091766229765053902558555328617352010785971511785382295479637078120774307198524266800830227771955960132552744969239245824182938910993295086341388941769867709393664898212017735431093514644543973678529270086254676659508357642175508944595177932535151685679217386366046614070843626250459159127682586357226521570562074341797426480355359027615961296617150765160840841748462836379645310674601330133312028119778971925037233569630851358759610793491576954637070751711713961057199663604544932734996098261418518587924078394421052240033136474387484498762420761816448808800068800606521255802110824271286821812164168368093764855071081661682331971177660540947155778475331459333786014061107745476890738189573601347177817138115979143382954422564715007278175878212636227942401159542185089596292857400317496567059513726287997115732359001421992096196596935345468067477982195076923775765424362210060126073391141185439923207459016338770630574336298721702674534177025810698966658765594765709236080860084895758976928576404041552517686506344296486932778776274932322529543981579434367695018659729951850911251966444407342685960113357505550798950610402635885205809146902871294445713748131257296525944323893470326782685884079528355385905139104031578446366136074700832232844397910533604792015276906078313707729718187982574475895205822785045162678916977053137551179791550796753969700776973574512002364910793666417019710191095207646051487344281471537878501270723238442445583498459423456908265067370796520706102521379292799477007305649390319908748476855355511391876131569401986467774488136411879059974419111327937479545509658035015620659484029585942098022639724413344104945467465828253934474438234252377094973668948634270888721974744836024851694255864099309026455531477041207423898901703168972429746314509457037701727547278099983711585548414842763003520299084505067417768257691847040800388128409823385898958118524553476342515267550618090537825651715751188447726554457129829454725716237620309864554700740509088046413790768435303914366283489690803212502724782987700893078296638090291101233433677211500453329093796820704476330533602111640666448455891156062040314676417560776968846337169306551129732900487095464550706363212197453343334594825608114427559487608910890485294828905896812464203488192508683999774761213407548468804845836883821844537729376809264531527564631692693019674539170442624072954338292342080366104402206960367653699908459065007391292622004151153783280296031474818853041814242616431587026801510012556736306719571577036952462357303830539171092148913820963288050113402435685491155821439280975134833996960681894292488545019448608566843982863215474276614436875633568583898296898152350767895384109541759879497304970249544290890274799470409677495803274100507574131457301614716463309087469796913627926069591331378637752447971102831845771544715365637051181234154891921061216068453337326950463185375654999221840681806676143415015417681890361305329309502053276772758955916116367609082999744077016540659664711079593473785162982120646561150452416180610291405194879687154031038755174087169378156422381112104980126288995804764775844901867814085418392569793609847390844038578498813987295771208257714182747898263547509128044988616510830467820034995191508986866932580343671458137448139623436053751399946523054668688769013265816669046283442294035927976667003375996127354536840306849639691168508475622136024997663368122648428612299985763057098795006262201143171449580022727580019233495835555363643748577873137484841186121183685291518218049928736017393021486709468410976464233096080203020220798388362960303444791010014169525162817955320742767779677162209947834497935021235830386485966674083686333067898499686183611772382438517539243479892075070736929638730458725212477627411208994916612438000850535901695197608052748102412643226311439340014276124076960808488961936992033778473273456257370554614000569294897380046459680728819547353118224221603547756614558289718902594211013733977497577381898333962916307712115548595863150625961058976003488173342372784411696768809057238170684231642034605430976180586479343034994538475952161066094600871379960577916248525083981212422903926302597042783988363103458383541735504307085710463908935795633435059867720084948731762114837141369953668675566101586993121021521078604131217637836607492823236313705439193183974748413914315237058386396109561594798610278124558038066116360279009135736063686093013629966403445916951401768120018486049506415351869658818086347816097076612386937030769623879198473581504084726618555679231255667520071445628218184776605706179850900579332508600706517408200188454913885917712140594865638404479270971775481843241951549862000476766377239479018460437454377273742577107109946322343056356379753668701748743221811666278936790151504499937476775317372310307157620470422277760429247056266033066972859894043558602591461757752842415566095478501438493382837111303783061033068107272690505342599213126922319129135513730666146494861968034148916166981198877653569754436282032985949685616473457725271245440693511490559644610832861653176478372663510178624280460020472401035549990506200301720990548743910639697533993489561497202111453770362657331543438483798912738822211548663045406215346099467530263001844137330897129270351788638982876943634347869896312752122752089850370552097261924922883412713353096461096330018262863366443210169320518938118208671242503022079240194194803301466337724374965547814459777888105440651653115221537365351796365771592725448886131388968653702363877444084784528111210467333960585087870634493055710233269955915956204100703087780186214285375903631861458320051538209634254568789857702519374027379878654553785561826161983855251354641512705637781378371374690096337024757575736552730325204122677781717756531224274241154454084760722074292663666270063227151225978841522925022749781812658483172522672281681608058604706449931661687125903057294080750594563115591934676908342787394500626606534266427675105666508999118100168141454613570964863169518447078993499104842171234947597467881215257068240969973838283821161012176473484179345559926493350452856334400462261805054300873836937623842539774830003057057290725821146291171835342297568843771826915246036453316341571003736930152523411875270047820720561079231591740394767293648069219070452080935536040258755415103298053718526165406587490191988792956614463437407448933424769418130460459991779186522711925965078357138567625646927951629547898043005255724564020374635456024801856127596426360925171694541597309894121774875143840892398469941071552750445595068150180795626017717305571233496770277850571366315820682551378608061066878897601009520731638341430906145383343281287436749297951452022313756501264286188871162596802805880219941784493593259790906330038693273961945435615101237555739773645296991475292164546810606936395834841768300650414714211742744764788071071578030029179161023935041537153220358778085751894749732035406475110628764809533638327548366306314639093366872198260799832785782463858129451187275937894541407166841701069082166690991811654576354148992325314931418705484019730445503562151236825284298729306534263756968605918709936201467008360141801740726307039713336779450573356351791558392076433872580163977739522702581989015628248758305603208030363397367102236022649719176988086077184885489285780182200815906131478801209573202789805455286625168222786214280013625120703920632917676319651519279554147446947742054548738950586281564680429573503921781639199848354272920090156947827081340814656380936718630983075019049191165835870198045684983652752640178350170269599599143069694136864266900427182974030209958675409560973754025110274061745528431195760400393146772366136321504179819462997276099007603978494970375454117610748729325105692649019635541065945514568287114773652673639915213794652017025131330399401568934969232799151742360342468295051622206304878041539373543629570905525923407591839852221168644922421122246879483610615868244025651166193434673053764598343047257862333797795860997256958987208530414552548247413826381983716575989799156852078502049369686563290844066131449159830856217411866166249859871951158634759172927707103029341381143629006249472069372681099221659408456628721397803586313657288619483608666074942564253510001519880464150804423777991695321974963997974811653771548064868643186194136669958468285847224880329196567941821489377332435242061003901978806420291071677066618792568295732183112035651941236797444094593843123966372180492780957495943920867687084107746907863618040687889670880753463701806760558492349509896323471972509214149543258154978827750738793217090828659453992212504029873624092274566129426541164937036494987006930872264572996527301625714268046615431876230682279212770489129355259128114918209278834591138808238570339712434961773750035240656514344878528426356196003750384474392295149546507702732205991480364227883674889415333377508583032311835487508273040547015761022037774701050659421600573137442307200929228605771424771090643437306791457198979164566646199155989818693812102920104635759523644708004914921482336968995197653598173210374566233891428398659468713017224354793052379660091119748955956071162522698998524546317595391294690302495011429346488423287787411092697618979208739430002614807258284011528023950591603170116737640989145903594649865905854380456742400408972515029729699604100449939240260717403508388655003513421595329567854592080312238404131419712890171441531016811996886728463693756583891455364341170841543722222893536385629728975188931372932370987012634793813465668710784379024412856256646366493434399080347488603677370870447899402728144870483930943665603976178704519056709424725028349587368238362652578198218286421386990335317896808920683620984312101585880401390393749583899999467955187741473307625600390507787402690224735996891884171477786084910975928298517837747236840217151419231591951605404394802721856991853647423943890163638489194293140634544566131942496029287564056258454112213504993854199292967634373618537657763150710504853921882950385571631518171881769970011557548826724669732280636038332828621053944968335429993586458478276120378808224901993165051689152963538615743233850464122826102354640529845913603262128333090346691408423513812168306790968444826406308649403365997027812332732244970287542637411836639699889027488291790942578058070123057886366666526011101611368691507078776308699913238155325301182982029463854038170362293364022049188025633302317845726200977043244392242991666810815645790648804255286402247157542553499832462596509342759563424518886773582350083369808744273375320702064082259694540562131177795825337779856920992623773035090598810128482898050844640078582699709218394869771398438743154606823886707326052128074299064334212460634165168856939273916654199659590922504953471439013096497535508117789465849780549385120100495705479812160943380352661813264361432852132226728505677601924033640578133374618600181007547300485206142470437114718064295299146955903760467115748458414656207041911380577366168394165610407944500289081094169370827338094357747499379756060579301679914974616847135969027118760553085378229252215680517099681032667868071578233971122201686465256684026854487563010864462157361183671299890850716731234338182685852208512786532378142780905138369813243565250344058845065023827894043437654057107297658801556150356866583162900135484574066097805739352542149839481638155088581332254882987710467037364337812774865116297766359934511978716455752018607748990172161375798401460140920781201724362640218484716578566940675260285967879203763725960732826828163273092514555125972018434039915624820174434951094788196590061957590916929024424362422415298985787108087342085244168377067206886484932710506555380019135574211396908778905885789480399249252014888429600398355728995484185675134735633655825194873507146732371070103855291932288575090751455749727487164199967544437324762568808852397531892772115356761708695694085578609081955474284146231638177018270321835561761700455074512057524630949040126363742909021838365331628896560905809035552055974498206592896216138377597184248837469072942546037628057826698762703841813050819561959823114416168842504795903980737691104572903954206249084558267725145734126021447068186123449180058551480275526999057717797896124476547840906140292487845342683705979202443296280992472538743189440548381917389210806181416032103923057723217152765636391681894377257179631380120174615518107870932113459005223305329721540737469078147405821825917523206080317426737771505384265575651143662248534473073105912977359470436109982123364832665444787672901609234881220384870471562978054137853952887114870853290075450349377156776853189303572917288888613182824985282101196402495556618566226646123153698811996841344174347210856265002571020093345762415857216278334056916920610569472491044864310714353695331378710946405637902778932439053310478682354013437892340228149762273229314461440822474612000209691319577228963397370615835646555418802507686810798340317092777730448992720185843583934276472625535920677358895341410356981641535417301683065369421357222523020610093931277274738488768849330085134422495359189471308794448022728243513653173960100623844043283459619944355501653621754188325152310232971867434900579536019114128866149211820471037948525954989162356973304759016453654405862882012985586722946002398288779444462019058680090811772395721117230936443810277906372830598407510472173893438057903167092219114193698356766030507596260556312243042731405934004890600519532642307998804204991387016591877671974036435350869746432183186884010987072362337729381288600145781740790453581126282123463343607059652543627485762303374222741290957294118287115366211840681842362540565146376314185279362475213396919722787488701884472439216305221298636061320328688881453997197357490373721130514623325439845255624601452609683196565095025786808564811430797713197950523779874934051178264337668600798134954358824216362996210269573327915012026723028698735728498747098859869071428049558796097271201424549040930893516212653247279468553167839680991197145026127173490300730549022425210486800443851496002401647861588127696645589628421087410598166156139842425175171875351328348222889936941026901728391798847649909650168255019638521988001152852769015080297768595167909027095189459595846052533961452367215496186356190360123764070064135739269806531921205749892060845618290833675587758848377744508960756460485296637687664617053399454915584845392193043272109029905984977099800979117626461236873397131896940747358901231907503519655738231563057891686784666333519191911190957869751458921228595205019280181743352916527558065820839659171754671301391674255954689713364591063186983183961519296580173714757038470774285741171215453807388108173369711817954310495389562224764784625042936351336230789840877661641560555676324540513738107054232405094053662585093063969503056488325384641390877082213184924722370944542702622873125434162153757181067465729697248008889368535101303034572475130711627870403633377869145176457735524858641825507697018917317335483341069824278356918825316974458463773424983469912706519543237860133107512125781445145730012229314697366136073428494998269452017629911666629014795830735622867358648574230471829159204853726906137753628778044147686473329255629442685051437038124970915649810343588289239993704299275504529319568998053526198774910094199431062349977646463643764330097444126170265408017169072744527851513295395704624101022373773948099318666139385605826318624356301329584253865676705379184171054542317725585095764554584851267387682601994801007147060089056348517838001767557108029509011758677824414003821468202406813260997645370219250707897547389485379567568480985279889958019552549611150061269218368277307839216551709801725490997612376439440123231636938352637074820759458980941934212876875352318129415963977782325213205576362866414781673928465260034635333356622698090853480750216613641780311587493144275939108740736265662871380562472250352543933007115313497067345095955366720108242348465489188086190288044848283446065253325949978713288837696977336344052331652248096956437088268906078400969119557401873316113761265223775130644061803474165868337596739057907310793760664431751454835996133307040328798543517401058672442205848539606508210177131834824281967256122562218810230367735947242133689140913406562149131956846606164988721547839041209210661756229644046754685650732871547597385722859459969458383492633906380171651890959611653872862221913495192346388529457615972610219238280547804645894100634594350938975560738349166183772211680939190129025451417970285413391794940795840942852305571869514383627327668600751254483961553434217822732064710403147240946277934741617305455973237962371379580419116299286406961055747640787027452569571135461588309214096345755040220462034541731780730326135648521581529287728109571296881183994727706772768848668760198148363356029012890475352018830100965824495546611515186262211985129208085632420854563317038962824709923213164125565979889051187301281667663726951789991925959376112121930927647975935114399776176595971101991519390400481557818320089014090016012631196272468091115416675061924859748296510964504307198039974364256220715824074356431525860943385865607161064827846536550190044617642484941008881835197411997742360295729814971904603992321770715739696022824606950883423042812956208767767916920219134225345817648042274579518332189497882647419782286813128135881572662185869787859405153204088307254496856638049273755529701382413091685903107203067980581540312569282458141851162800777544937983160390928764533872601460076414305023634112071028665686217663804432620279518704156605385113484026996252182493125976800450528214515052695218818239030243478921923122860897932497938902779523612869962781876218855129574828831028672185531949889250666966080194464077163057808029315920850927516940157772835194387130794523301187571577853617428582849874349041046525923871032692087570615133614778055812758247737166568811416425117188631276790923285144846243324736872112167543072895163014976412883746075704400918586533357965630557477933146754114160655678592492273483618134517280294165098286200454613719336233619860397693499568842714596004377437150651328579604023457934080788459433992615719558507091254501487854703117670072879434705398020742282725293521800239877264845933445565897739565647501133218768830585224942393218343753620375049886818876330291016184806513021331121236942665545434818687565779621224167849313738308901782691041854989577718247395646654747792715475092711135730000998277339388210834320866846348191694322550188498148148854656764590766132645696288081620900223475306703880292768527123694529105937161336059508975864611820359232769047343320121315868931536699272518391668276684118107213620089823426705523509997512554043844960427670509748322102847513093522228178849162474419311288759552182056935249047705608101785716889479965584689213811416233023541425094979698910275884959281761086752765453113348568274420413813354554861432067254346478425936598541202877421386943791016649127111903985635730234357551059732909938415869312753388578011388463913702980175319813777667131360981736690168370936995856081410015113382704601640212998579374584381808417741631186164993452953996019990942477336067092673112639722480482499767607549724888736258313173094503372830650734662283113859061612028828264377662048711387635191288663708090404116152753278571288329646336410728619771182604761949141365821089130230379162603477252270338633824945786043371269183513076241225718322741456298409269141771885081415489266000774707474138954250977338879695962790444178254584314575666905085916342645653486346043386521344945833820708427818697523613116719538973779052758733726204581110430268412851089307266562765917295743769978840520065489108506381162803837552497418586133992803605208846725710993695417983396608167680223760557158230536572431099692292316559641472183174252467553865206837565851740454861104164669559567591225282875601208459181183889532830563985527864734329906786998143047318551465904884213654928830306282260979066501513136019036293513589043611658052234474353838374674923881853184323915471900236046113416007106346075353772635521248694145214384845644799231701753180103230312161302400808588085726575319697973111368930095987251173838265386577228670411466255131241016096798546771302166501383487450336946646022196728080240148304513522697985914054137241252806014206398076390506482196247717445677788629514425131063974211935803752152689462897833799295358481295919923478360317101887183740512632917457826368308752613883535545931690211592200683395975443033414096520860065502017142058368517700714430775275570275971574199978329477241243327205943955130547980397064005914287204291717800267238894785834436728580417318827861539175074609146017454082587240461391532260514896299656545837620945868415300143693442809264204936007553174751458682660400833197164970341700255249518565100346013005034887889398588924452975049486592495971833097537529191423123891381910601762180159259401151108529483174522788149857806410429023441747086174815859967893831438224045015960041125937258949849541813029174229213554852315938301820606803543904388184417039777662170018604941372185518092904680904678447761176986158388310330866060527520782800363701705374170052834930047421254109625582357618318728707073013695688567247059442917129381888137921622651907764685892469676508266912259282748670540392806012927623199040279120573960370122558150537940367511034849024787681007550996752984555842735430841817567638275701170917094175999918362194974516149371347092966571793095064298113849532410430429911052772259431724565741669309314029455316463504415819928937255385559644926768815328269176613583062766995693432966106625541727576013118735958788078560376443281882241234977211770226197509710245308360327398263357085307704660434011527433864846027411679932984025441614169607277676254149264433732166373230628036024769275498469184891783701853576217442603244422726222800447120054153254424131824056143467917813925232379610822270287068937327926276579303928394824286324992336019154920373873603579172255029079565615450935042338077622658795596663168998211557832481110315522069950430832697571042939606171139579872211214016674912737270347346538422209867833491274279105447717268219844452121671747390655319669265946723595569104561978916142392059258886211547187215739001076967075310501875814565702127717213399511716215324608160135419423817610094256326104409412353787601764469251683671259781785361350047865844619681487757723143047162248517529116179226884276682167685705572079955258449842391073075496586939554533760496950080505097712624724658665038238125125016345420247584177639305399364095574106849693800585589003916603464006534108456673857327196545079569010442467378229140320383855429565337003422521342063758605751942581349315330909567111375976089505131370746575128938950518973962595395526678499323349610136958518678818864853536998678155094295612423001988878613571511466328312074157567811881422331690781183952351098753268739887607988792840020473684022452353082594863114954422226449436365055948695099237160911196926779242981476723244078687988248074658049003388822081602500799702260495225685739870934210607703253581145909491735387508800200166546585062512732501009230256267924519006712427033094448691126886364001860723465759082414362114768975856495692123416168055141046268757219892142845539675796139001986961114076644539471289518426619720839986079848929521425057803129310534480270426416653580036491639643380691875295768531152805384224579258135021250191577755292688803193180743989688096793627746042356420331573223018382117928609011259028669767154667513535007817086537991635431278661091499549307194966774972492888837033368288064975731311528546450262605802633283582430282051580346708918232657143392109593325580134711812953703302638680174374245825678108248685934620983355668081490626015739652737836064977014413270487926936800874130754847549811922524737319933811860216023291260853678865347491975123120778895821547938402777637972088772513471914831873145026567945062131975813921726758466703150901814964958844551985524100342262759063575232864968689464128889500765910820256279621636540995685786915172605717873592275005279234907450014890934393486787642761138539308068285847404365853929245322485514531211589997691058221016069317744354410356585613532483218908731088250599026370080252707029641987146817562346234726070718703349437310059185352522887181781659819404847514331871250080211819594101640259472250039918568876666565358079526346147203744640869717267418678224404212965882786063575481166999185951253373204315621912798299206953385239942534534799795909230481778179400973379081444602342723322546810220928594372527572112087631749005457916179646966567462821818008889170953390927739109209602066043378135478278113446785985716643096848956181779716627034744070058838663814577150884672815290744362000963982662722782559936329754131571006363350905979149064106802812505232997071226063439957690925945039337123777188499688044330638694760111692232097486497237641912038364296569012926378965811239866783390954981402284482924592341090115913653544943522770361688628418632981399846803896998752429203011470874012360713364566453687058003211541840489429583640781370822701771816492154672449982678344794458069654487581956407624792664166615576755084444128450354372762225967509701612090353289155839035350549115764470324642482870788918485082216227029843452954115808813594589275148688367398760284189360908504673644549629645799766829078474033196507626217046855318962062988373629522399120494346273023476424974822798450866232567884631186035812242893405327160826857153980634438817126582208481734304806362145646606948355014390259442330357669091271331671515160896016949022691879209689449896575474674199559398204233997952907267267286742697822755097056028864935856259029425067640965031900855042378969987985192984273342867499920349082516737757614728115623813780254141520191971712076695473090916306456000670760211969054362881591126812204669292395855432026538860847474591966012316040738524848260171672309230154615038973483510935327223557424021217177078348371324234101449971669986957145763459391573735815109345910378727835485138516307320190371740445003211610326177057808645561119345993102475748954950176968208896342085544816034320656227789089804657541280898511318526767225976710562398174035692591869729400109816380248698344532775603109764377823281987378010725876483829386903407797753686054243054045903930055702850482303452484870688595865436352596769657378513058362105003073723445903278974115595304154897207040238392715428793469166876037220268738367759404657900362341739613678553426255333145627408378823655184895816776847335707392345496223259000002022247642961508871909618118215853151343949168751524229137140238732822579942771230480389386591961220068935501988208655305091045681238042779945404194097685077381416790076496015104653110584504896028855169947780165936553960010873715938180250935164826987040930593026962102854018675100512779240962003258315100339692184116662397761012144928209967610886055950947042757227033424383819901448859415671774325428444444745860906407758566442313957893515653512083574317910640465963811191259339811173829681870198903315253728617341094461634270781311777567406050777654056042625261712137640229787691901572012340438836785171439371834916736714735108867539771816175456021799964456919611435050601662911775242767221370566173733276221227675456567791340767019179825136164223161342173373901229018623593055075360433246998965175378918280581603508344487697714428821296158524760190936364101392605994625059413481112955400879075701971149132550070422026424598918122117014174951827703856591262914675149592618312364622703106277756228400039565958192489762684569004034991454391729492273056021053853598595168979624076411006194243362465036059811090968765678362496635392659513035426614548100783326434190298237956705409025346993586116319466699610077860684912278767781268657737542082730619959836250153940673201710107394242149872496128069085270534826374725394802187434968299496832284647098555717847534428096276222931735952660131544349935784271543396771218120322491941718773764929832096886231317095170884967596066743819219126268075765188682021135007111356038771389160492599749099067912781294865168942567350591681925826658083909410485032321338193919144060478917201268993177506369312271043913141645335215295490251928777498310221489825215175258058924497468241729781041601335970009872730170922950017922893983671939197338465338131723743240121344273554743541262753759491017635236269974921586829949940445685569689533384698481821025683922456490031100530228604404048739870642194701710346976242499624572999791065181902188569578042786334497632117638959170649260568318407286789189927945928019067095571335766307226685779560680867965133870801646056461437232106875067067703218287254887060478353545409016369080742976337533556513416704454892894471311241238131522889563040675544947304451948182281504778711192148915505441124276517597613908216952500252661261039363822400919127919061080989199452975604595501983873751403515437668635737158033193742986170568739644951233193681341383704124143140297753721833999237634318542488321326030194952952276597868772971194721169690818420701378433223536527558888485674757070451187337810972790889271301194556540850637455785341998560883870429810145230951884200807885566554391771463607786468345769106603636070701122312343261774451448085555889280379832008555178139199513395496851346656399242920228121695024720761762339714693172120170654820288097529537130277830942605838613708554047340649211385738128426640223011629526686044897680934020211843562660345521466760414403312840531362886408135832193151210179803610130067162603844323189542308988423137086383922769218814145774219812677788257920562926156677766293997378479533303277789922981832231210820072018674108191548451989030599241207673054262689104220727008709596648365952069215345124099073172089991857292587156908894568949921913818655391017554724937522021274991139006120348138292831604391278839068404880165160836365579014956687897824301334749343753160151171045639020645109520301669774860592882664070622043295675888507616636494544391894386813058186031159464414602542941445262041821555597545070220540259449135633337401092029794901808083493608454826440563131818307722259521282824413014649437361985113133444983173570180909029461124720172342593031981326757275380782502055351032240314576518065171401692255521028938136887417734608611705457348938951910296352303141631458196354785810861876685361582084730233969413236252937116894826133162447502440231740877063169497920076168043054249607011977288498948456358613767468700017132650380077594821285823130020023835599068959016750919351626644751635919759380862812107407033209870678060166068573744734068060061010307092137201721700776099766383814257068918255289171100205783413586397975080044045510952319904204001011464480348496741425486901347099392864952307492810453365588370898808025372521652678240057994758845715363560830167301111667635404640532597291042803372971749167903621679525593541885359951794078517290779915685924397003844027910471078245394932911647304759860774917423338301479273550867608393772799353022681289991724873854841347870722159474920825828223289276637171194881243995832501339701346100632423339625075974453900744138154643970676899396644232440510111668436375009299370946206262679811612518452885782790958053246671889038158453883109342604372386893022079643029625431243224454096365459710348937979749020574095568430537045668918214955856114822662015815475965730449895600665069993615979047007796414651494758653659975026131995570489472416009035027724633359985972561555684524395575326688561524450007846740263041151935388849752547726999110069708241714392332481047169029904720756507436807098619613373474113050412374317006587465360575047790001307108801436972101193991495595496356497921772705444827357215184521468142414784758737612628697146525782079391817258205448234195259340946851277917522235966982972548481907448094288730036266087260051692307400495452897326308972648249030753698146376141550393453513754257713378438449562662870229918113789308245724996093328530586448125704908678053760401880767444441986627429978310744989469840080132868768478961261496063426699853057596652161419251205398514290458827937438229383607433461485886011782607982607610901514421765468863618385886339595194588256026076048957713453510369230413221635951240148525614942623749266632494314776329896192806719240408771891665524868305067766357444631573767008401322803642002956348233646450767788334214529782847141001749713930873868009436338745998651062162022731968756183286966946084930328658517358518320813495213547164605003111471373073989363545253921299902709208967746012016989388464522378708529712005770011911462141350486229783918336339654610360041144225088597646392493964934424434414422444134593410138097181941028733112590955614789832162441626811518164918986893042183758339346579609278147176651892384976598231050925749492224944736497384681113516546854222212412537639028591220557250504352899676799385942956681225767693371599567280436897553456666579233243923201692789858586620037408129212212253417765851657713421945909603423663440739354736737896509398772478072572480634785637909049439170583754617646485797447095055973660482383821192015094012465700554804428759026156690599446507019811462466185118851009386540897715796174945479913543660097252701266845241323945323483141957619714491987733101825754224992283587710963087651240403883052967915778978498122933321647116387641149114292899815386154014188521231312671088641316844465787588920509697779758852253290843951356669223030041291033085241244440447275978257947564952205391774159324177181909922905404536987261085087540173917833842092392097690252481708726807733103696462037273149310943862086087193751690932475516584118686047808444918776098478611191670722413063294061587712217930526388819696434189578716819854907360344898264042074481795957066575366743194689524974964126475375571938545303431399482334960254531616475663019213711947687041392106717291584993152353600552591014016692216674170194099411957126278798609368415130561564429028364707353509570888018352894492869165969913372215990848536706557954057223632035259595357747994916343545813705784802528967678907420793442062653656089789167387296251363072787543111248535491160701615926126240609578956035926760142195085074265808662382689287510652150057812044918736731654317497886731286851692514799960391189413839505983730799272415810099289906019634689605265814296159775165255846062147680825830831239691847098872850845656684214376617359502892722414160469993066774814346724582907403618748217727450265404350925579508131357968894450080487618065713169397238715727804591237735147587782132077856315212585919406854077516926574120860428157567586100734365361410651740249477393897508904832243827659737454572321074160272838897212418398634765570721335196862031304035590546952315009654133873910487120828389818207720546227899811142667989125949563963874367552499358431190624723441180674497893447510278984950644595565621741678141828885049447778260297464557718782848702566925019404240170054312143084912362489637942622745389100461900118852959079615058326924507795092088469576368591250010222636084802911628559932399307370032538890190295461007908112258897819011177033335801132442210254496626018140674271884373641439000939224137659559254472508501428908722379649819871385443192314002568840397321714747188192577850919305826142196733580803254263720478685215486353602178813132670215597115911392001959889685439592353255314006404347900621176688917862702142614513854235029749602209531968278467064323420323794282188825246876440010077401785694602990938359135838071185808800429001188802225136567900200067578759602909764695094303823389165733238426278945437986318576678867424433935989511758292355042475489877819451515934892518384128454688260874857145762748450247055157094428366207367869341182528460108746206015484877833805303477981604496366894915062365509241225239900915023294599552323612055479580138151923554248956730759293371864765082445280492848791850526176897429504278442876998038413301198290376089161291270531052425905260495588451394268796773102776283499799666667652039159542597928832847367879098737406138996576214886353558836868614589165394062264710284674938267283288724724169885753780976600529057872038314658416161856378577432461898110770701024541999628961984476074601717325205140744690603549975170225755679971688126544105958280113655932172011127353901776073256603317171247961849282894341375620145084240490680040931091889556784933890711332466598309506706764915170426183289701263764646002159414874258626634732352898535576342201108968642941245416982415461731360073989465848502187619392482779458102976253829058525339076963197820592290891993930656558373008988233161922058388103943318786641399275435477167925952573003026060545738981195099667462792204453852195831650457572892133511070626026300230126530795848741795140080113140606228283597581540296280625283867167681139302174219446348659917361877412684662410428033272331867700007224225897853283552174874814207889846623903099988355131462975684400794558760930150563157239774154133132958041149537314226324575823926709000916860331196316295222867267413766961191675484224441858550359427623524697321656373440046086950239990319174010550408190565306376315603992111156497706752736862627409884729673589498888144845307189915321124266017435271344409231989929126392677567305846288734418073298590111339746432505781246538840675095595060943450030336018287443732349727503493606334129042542014389796794007373038926753372898754311688971565807247188340850892934034360613541259032972758624966971561307408301314871787139540981382350545176523847040143176909607796819690447278857566352789929865268863630328747228892667115980691943782285635817138175359151253573566917859021133930277768340124496400579005223374299337098959764640979266369342966039279617545328619950891578670148868246069629943259513889409157163388201088916780949827830044978635947331554625094580491276167202924251096093725829780828825990565317918373029650664182218245837769270041179239736078933523950642626971629238325159822975968526292965901515213201397360232803042264440610638388118807939758636097674273248330941964936784012473113533459235386393334175675033615841380774478594405695353878574550299388424912253133043980542886391813030984319575199539886954750640766635640887120992283187093847527413968432247414670713712942344045771746408422573992543137734666153754382003571989320576881569100162595664949066802144940716544213212640989674262198868503452474699572227671795959903148961806624588379295234726738642950531702598798360615024628993500610002964511125304141237943574749292107965398467781115753392985325754263714771431399687828277966521093880035153261188768875286881863763433638902204958085849006074133953021945787458824769568901654412595141426691609806855060210200802129707001694012465154642378878847056770169784066279217880425975623959673453933757846664902820011469933714414930151086196027985424137450009797610966304544991835440061871785553353982724034840526070400009373450549866049430182013806581099650393829864182751191631799309061084839094421854617453579039848100908411579107855321303728839209837511279948008583821146160700088672298691826483739867185191902320406897950146412433146780473604560809178053345898157891977402390938142430434737677176047239487128176794165600311218821637903529074775818724821901432140478508803417235881364624198618719303751589333477073386858103339126313776991550813126542000694904870058590316435419168110998461334313059886687784706104589876242056422039941460886675224384197875638302957271392458421793185436971555171814678717247062117669276068612105369866336080055791683127906836130417308583377248380093752699449983973509005837480227568003594342586901966892919247796009890791088166544541446509071057098700729871494327727284395525780865158498147034026692885745993488811596333761047850401592007731005071356264992871211529057599601368994663065435714554253413040263276716536729287990602888771998453574599968852529071851407859737048868118352973581931727177094848856240126338728672050738088457107259920434018523653034448399058334322448762816993978719763747644382139630881924894492502452115859315170681820441557659485579478176120419225361581694014959657928489066006018595916820540094184115692196871854090657402516396180096790382687977067330490242711413285475339957561863048728000248754832650239548344279541547502734648101493413552269615699929169908421057446033537567083503866256717025748267561737485316004001868477928293423643347028923758650791218293582652155490956265149761297015941024819473367262994187777654485892009060027532655103947007753782818293857290910965742122352442491620127127634213807836175686786689082813082278331647426807589135656260632228616737227429257173833820148347642015693688733625882588737694192643828843960156291878799446687973001459112443693356400792957891993403601834447245315775750776180278584823411182494625408193711400727506523150927529137793325884724168971366072311538626864571382930040086626493802303743844722538537487946226202098211566786178104877068597896764318424533393400751232337476556307460158752800209754732677274828641996198645627879375210363693435114227855799062741637867403189416965126874816596604830504664830731243519952954752216523448026724739327840046464104061298150523652829774343164245026059334694520344922003855084202297809188080021043052096686460876677197191900186654689257892148803579884573068528432395057115288158695910880804984168346113339859084292608371088220937759034673595810953010381446953317314955387290678639244802085137151470365458732546835360413507882763719347093604310988466785224829737446998936610061931779078412834274216737700140420721987350012888014545700708084054836949995286642274567255022143715551197960388083884662583391512993091216161071817917119604676251075334601119129992728396587343767661567943997278979004825908288159307867994184017531022870721848078651537478935688233902674730860977465849337030692940912756454614347553627529393343373649050341385309419263506531987678087407089935622296227324795166379093611540165115814799413826055045060276916194238947503402465809928791646345969850103383772707281115298265804821009391904565957586200867156873702452950263194793077875082874092769381006201114905506781355581228302176302528885418995390994344034560401052663847651184245179118131844865675633168087272196045827610124045152757169562519245206162736002517849513536532933776376625485034969288238892019344791008167606559010890000270973448984805160115865752043341101418800976102250912175402582848529121195012849820677789784360538146237321184185697374088663543990098739045375756501856112149679836267876361019984528235407023934821346938616024009581469356449039627107670824729896295644849265171669424726957576465523286203818972989259294194998793624132889262890871699402742707352880839847287094249299739717591422873312912954605489617842533692846823470178250805108860233706542330816788927369175068469150067188146490969199682077622526448436120863470881472290759250515601119289766976368472666110591408744007747640072324572801774731730160810820612774703980731294870781989781660755540410066317145129883127822810678133172753186363026318252128968548764732989488034971152738325097565853376383690475730004480624276710571928470285438775300266323368965784907538842925253063114574494622511202897767784055270762299057822135418950986542080574097873037274141532806276676347819328057630196507573643350148030642141163454778549010003791578328882012521869205523418606244888408425228901748254580781807777020292783982463379287916377331635145775782318998212142063047963095531966111159407779766244725743166957419149569271181088022070303392087268462139026145596338542567550737323446620753765120224955766571773113732729157295544118559460454745286027776824458385269825647058024078725690970642840743514150706862115768488747986307721522360559585047435552857012231553216293939124638856350999678021571017413152051528359118172773550081520756421447420190630851093658610653093037003742330473982374079298662459797590085561625025177148973076009122004160133553859380914531273551812684718383283898848228291581282982923041180933780083894159740110368846675037915171723312774205373036532447738957344533806930512067191518550716474362582291582093277622780754750296786835977059764044890115582073003135333300792269761365126337550820805469389644863695295423457436942603275416237860031113188966107926813759275223694295664798726004539975334415271436952456209284913525122148077231643356439709325548967608511426623116189127724951552694969311988676861807733543172364589639958576126531136865395930332311418871367505117982691039032443854054763124867715564671082996547518475409488353882324764290855342551874675021077020966847974095232444580322041644200258649103455169945433936075704092341916360695588923031237633077335815691233444489985662723294711835795735932846145451108137450064169847965755178522283605902020084477169887160647899766376539845871069205316705750430624944653620760094778766406418323706795201720575848106110402766368074353576584354110486569414030549541788105516357848234891569073347408691167256920354314380583508493877591776956377430795181170344915899340789327965800021667111111952955615424787744048815880473273258942315827156766888056137191461751271017672151209224466253176930880088419708829834502302331194931282256854107849722130937806862184357559216269463697189595673089821040437722753415201055180700416463323877911996886309093475024777689179681475949720358278241550930061243522080877350723139093672301683808193686227012891725377031812973554625241080441912755857023675379186734309602898268035868374019959417734174248758430030103569302828106882745685605378141622630314369948133638080644457787451078544752012354070506911391964648294051967721451359374077702369832099683703928852152482524609628758531855917847866036435995819605922437003574104335546820792125785895504755340722945486224476829593282044147987515728485720112828960438964288690749538398171944595017646621070900229838939753341030556711952187007704290592759631849262291149178629830137703934929021629001177782549775737262080238530358481082536168646930966293055789223847741743275431749274590880084170558830584566183994538352482071021269689550088880888908921294887895038848678287733620628945377982333314283966343689947677038986278784548902424730993318851543281511126060029855956351146368693257963997206117778647310423601466466052358140152749251538224406175443220118495558848564307260227195593691678216500975443722966387831013593900824085819780514923957153873714623475830733723945087054913593964069282315768194824685522153496464780130766698400770985817059337371042687244559083299957334675674767536108656232751904567995307325759322871857329293475268744629885891578507861416093874160976908395318716875972088624606571796477714939071406208687325019184247850240315934534351385823360824943879640525394978462266122411515389405653819020849110647122885581885911546921364040741058518706226439986930476987488261944694832133688856550920529409366023245639853804480719490575803737824449912447980777485276819681163380210756774837835879184791754238706934271600733850548644979094987614137905656127308695417547277683236419802596237506631243519597148011946361184230626754229092469747299318845240962660734927975164764963123687575806968078445625867454488780967228770878088942618742482598671031010268921386617310598079312004906785611249414321705775599649168825665672140020551834451290985554209774031820595738251319411589973296714384180436985081328282875970492652667356571013720110870672962784300250213169008196021201255336764841259510524831288867896256850957070574198958217727555241453247784688207331502268823544358931257869039328326228567235662056480177941239222401417159784822231563801868176959553739775752674451307517363269536646559577674276627480691715959541752974889855769645564012611506721814694321992619875177248528513392113501900920642914483898213707074451059381019826671750206593770673497209608190014994508050950325240267859374013154032490051697103160485836994160930941593917352774485893329315072025019823455526879309441105732479749997051193451152176217662592738743338148907528287755551465809681406207425603041673842584950187622689981642253743112415309422411976303863732467540965755681241897626545719974322252017502781132774829870632343011182817325859072386096510346157204690187004147335228151345384923513070031653320132388115502377300307853339825028721233198990750465729374238918293751733582929360150192795850052276238698694241268571924501603744737951761471716880184249790557105684996958425704642729609583425352357525324071161311599990321276297825230294960336524318529479570003712306158856688648419154368548038967775023843041288402264210027896904997645784660258312065506166730830535289998700903797916886090530728906066723166367407947403424384897968167830453298108989166615426178135395830234404230058363929468487796815684660784267594322230493281818945618383015905150710644273818142896418688031692847997375332754579382737536272516342135772292329888853086950368783675180126519787371881200160317857906510701414120525832357977711742487610419700931485279670223767879058937180173632547615412711368228217629008695378096610885227069538641671624626775971411972359383290804049471771551041940446297244627728532490489976467752545607043915255148191454459592288270812002765293340440077789136092507255544297391315470969569484031174727271075057302441931765342142029268762891001929867420210538144373549019083871870353575793629233152770481293205376982348498061183668500258063183763791919977788177898775813631135643978091401295894933266074719905607126305128993271900414145463927088479460425241452497236059580997373391117768073238538860895411660880855802070441389240633821155678159351851188412569221960349052267911132396641983430746414684475604934821441689072096677517591595188243237685233599724723762127803747164099195004270187336195341917009070221035497574976896621408980134157083198935152362103535976084880114769718571428088871666311266294844455456981336283354389372397217651654745702790249765129316477592284730682695380377052623502269075556500852082364796783777799169663805726172621145997680226080194181812673266754333055263221301987548246644374519619427289686610251406382158825328894473066682986043379618006806215755540585229567978566931103119768585200467622982134801610242089275456230684099352323276680623646508765216153183709089213689438174778387243648714558643472480656794412235677048072510709555554171665495903096632416291710100501824525496421189001297604263958095444814013410184538675738544135868839242698447169242371283126101937482358103161512437693839926363533090681144558590547757962134446944910337017747515734820318974654367079353209929961593462016741888909450104336297519410165151444585906963943908410830496402227466598341453251433927039757601721019557427295232051798728913886107585242172406901794404767615421272454517997503398901378313366343054163980766804793046808974222915205249078236305099900937355723499239447061097435990037850436662778327176690878758843594335512687167288310973916280240788537479904146470337386865469608563141427409274132484113818193319489718407109100812933441430717027978960216344179661705095208241168937147257356560625337876184397518708687936668634984876184709199388581166091727557337189817118762643480343171295268165026694985425647147177066739897828219664220624507797375765989236374235017115817942403938169548171368206776836450951553611024446517885763310477981849524322609358087343369196663300252477597623077659164999779716665655265159914916365684130338846626369651003850837718695334744253504586118498562166948696601207041095676361733807875218391047485220161465974285068072180425751879218273429436923225180742840434592125465550302695696550837189136086199759851547560555890297646216341205197487994784561764873263877761143929833328969124932618400760703064698065001410596283439090155541614943717345043528155459863254487249273296762998019831018088867108335872954059252242677649828923252929311858455129255719053571741902278801486264575928596727042032765399017875256992533151950429280619123488335422513435481630962715850702851069311660255547846984764716992259712170046456850869432887111389558458520750816955182013828534493353311070153164100301346898116826877282763671777509467068174855736072396352711765856527941335601082136131286316904858096316703520711371451624011175514732284488164784028054085398047753447352073878688012060908866633062994160259681060407191532572116688440370430382265004046183969205160549423018776286349796961772860748972365926669514162022780161865741167229125894643310387517825643209863247587527889433065082837211924974106222250419622617913331671121049331022851753551853650199589350086736431817311126361393349182438987168231438789504656654257867713505371201157034634642079596917396228322181703297667394495278674372396474392766756216688928849383524800926845812719477798796336715243701497080264624282578865202450130250273673871737074907587419731279807283069068665776014090753479180301161753678977329334951273163705200769106776458699578912730917864649001386923141696810131965454222655150127224581667725294820603063676953129326255183677706634901302370668430618685740801888434890084395769818174325653197984143415227330311119575825275563386507072516060040030608610466925023795852378811088036738029550130248925804057541798452831916609190179114697631791368876785381076326699660836249063890467427258146645642268351085574424853938887622499850961834643258918763266288572489690529320959183863238021635051197464714893020908013543443952162704740992948608811962401294584374412770268610640043490151043155925797937584147611453613193651705447894694935496058369638703977779167527533802584853755707986735336664992564559497061150914160504506164596383670480390431211072454314863771722242971219469107047553171175419298789107269775845925743000972004679189163111769585464073765177484280081582956824798368203601698870013004643378079920413514597575871369624924802952008674611317006619047170623087504444585509196862481726689553915600931928499851337066313452688352251612581024563351506094366383832415735088756777726419750265903699663536537569912583559649055191284659649255002388029406702128478840921721418134305596732312303051378715328441234482570150744066150674671360894125745369783218841033432980140701953174349142207233916895727816295495674843799392687921109381867775149316049541438550053715612559420907844716475735434219720254379727128360112703229595348399867905005381228053747100359116264368494079801598598139034821046961644505476323210391253635522224959110690038677013598420100410513894179399394403137620338845616493404502140464867582891568897098947957204314459512034570121196910941762855674113242645544766162498634898034901266154453071821625711101910616089620673671962718328538905229812225825946315744952715838385670598409064707217566376099517696264764954869113135756287136903238097213624710615673770646183106028971776328671899728376536699278516707932854191275308807872609097101102029826230137217348475934795320092782236139210431307109121400365299110042552060551644822081818572099241414190822351314983545317076331733948676131182621888562425883990042554246177341488356163430039834017095088958040877432849579983771588012741621874201650091712499352867166330717814159376009014692272062712840882993132570457017024197023464621347711653548257550889658981275831880047563190171636274185871038048671909135121021827555431260785617643563457565118390942463491095944414991644952681537704892411171709607528210296247289675699638970467839251659442728167948340459099431093188130217686918449412515257596372724367966307742426436937039387430289885104495574626191241247743499729325631317235472459501806212811205846418021143493739536265506039553012924142851425482808332914953247839351952097420375706419257751432067829910379485235278628668755360266163001342467805893687832479250766846967685355142553776258180019829218891940221399976927704754108619298190179062033845694256511091107481637662038777466885036187884160223724342751487405086303202909840563793364887669284801232622527959763611676055406669077390651457614852301821326375170545828849996222719110766893852579480712916487621013769648858648988876702547388523702800089088649198358097853281102027531970475697787960456430416781905998499602967955376705671690417721805812347043956732730631605341348043285678321857071995098168052610591574800045251053466007438660483926395280340355126525746684607989759739642244891070046756924674367473433166418131560343017898239587878813682430670675648101117477725081747324609320363407695659712258361337565029074872509106431101221242385108858286933758338749544652434526920179297873944057538877643290524088036056612162206012626778263960501633155539629985908598954813317774505416040195824258322979625339291754645001742766441716071661026214187492776304113102698099522678758830396989357932340362791840763406715872466970417362718631883434136413135377456827593811896768649036719775144519717574633130492118727136066211264596810613711867242209777397771459678713033700195083562740947249442648686295716865682001852840418810385306301061681022648994268383704901765972087106007700472279839805543720155930128554030669411091926458336263689684991496022701194607815714604248657091539159731088834559484180854304209165352303848785006067488615688849548284292857436979874113859187029002499789457892849311602421488379084979164794018867857935559262504721105089005633164095691184446464757015719735431606252481663380416532709616889317496943659159334102134256349952330953774452650597157910080040764773889786218023917784986587878062803953516749049165489884140685485253849106746013213451672429475707449233784051154507034847387279677115255406039449229257692463317306395744885839076892641235539769479107888351231815448609573302267204237587531813448308734365138515021082712029192408221705738856126199372523986838497622960926880288449853491394084694965684611049067631639515568053371779284549703648612340292242430922219014597832444832975697710969982784714016364343015349692598288636144431038370837734507735773898739315329737355234727754821699236480857260061651441727801451576879900216196359663006020577493154952502613296740356566765870812901787974302770637497937183148474157234364428543761646745328679470799779539707222314136061101011963664526330536718530156059945209547573225452804449080040969903114995608427341215259095771055189446682533917240776815305693566081834691885154553837298347296152675738160168489591252440488966263629634380326090845892204894720064038506625154484169108904492826034661187470942354965482370550629268906810715052558626664767627648257325345815744638261333325760100369359666300279253149323484517367197211774790585157683745879087192801433195495846325397486710303013995935583149363426035067022806468694822350842668656391837745271782440925772059328581983064884579435977470542007886086797129154905782201547634441563752395853252015320156110853819684392137243274340129493079159434014625279180521511868616034419310178298688983171843383664669636459992573856892897920696275611828118514818463015539695037701543180439660658984679859662636080871188999915892369278420264246830027209303826221574708340134880222641738607191759431628954595651242840249180630681039197943731589429429688548715650005973949954690048071255528351088497534269841495650397353715676953095900917547712411001073285126951152202460746224072749083341292820127883267643687301733322774029167384547363525909195692065994407383984996682053638708737228223943732703650313270884432908995046456930951417488531636687951674851124144866551568659064993140958855427658024042955897542528913127714559880710240139038849812455418839243021968103120190731788143563293879299401338979914661233310978929250008893791198320235675796238439656523129043169189040979693584039029307835578621766335560516887210796426927110484154328504609802232823838840033360729289058213311201349304885143985122736054898284331130685816787103757401466007971647885584667498816525988037882275186347235298378652698610126697736927491399594178251497596560630355494662358539259077089120226137672303222891784004593081557369259051417190613453235075792078678252586039068440674123680606600808318928751862947043576399477942627204710883743341066476888210832026087941220388894394535475969095366480632409604332042201924039181435452711009659069660904459130742530524019107000557788991466508279731822243966560107034919923453766372254577678112515615177348004592849693710892800623193420980524198846225443861898241228371307785392882245709244908692546131789046938313100375434864148387847934460715244079202367254183524279076422883318873084302567852313033078273699317605420336874310530120713041530468320559089856191644147412238590318098949765023396956144570790932849147308984623451676583121254591029813549371439344020853490996891306927883782085238900991525238437852436884699278402538171448324427232974374254209347374393033035834901397834379802014614212274085496414732616343453003462351187050412280614930985551280634279558791698914448482660187631177933443965177145746972613313859403980884242429815937996319889730787675299237752552168033487674635863699759125566009112854428184971283031326275777223330169193824198969496271426449678870432082699794250020160305160095637866492098884662544627589279075521785080165934602704464541083996175267920185633505461113943932631974648119733055210289032780744196075089584558237890013187866477552808549724882682324573725455708157074296049713653447759324066947061183575541891817189200677719938108144717585804156905501673731587250344475456972705039605200519032747723888896281658025711619771791309620280789641932399810655677707268096458838892201519131534308758490716383591237623004257694947224841238640133401481703032508687979128818098163864958264633301030478323198839124813980252965502949918624362309255010740483072696613314873973807728013608415580044528439127931741154375635255261461500272586381733784823556663799561437735636095119692291211386533781590735587604967155135202465315501259605133947141778855682476844897394444155380190296207038568219239553587316032178714605797668170703909542395637224032727368247409452442582247476015065419405290151333107152123509935077964292398983105841571766929342782020683923039050543304793180665484324981026488725590278884965428808352374140413417873602732294844794701928657676304367139957305259737408565180872215890825056508380495009293578966941153332849678697090133247273477242331766530565893696356204971431542887221634314289021529566589350878317262883372510602085450310515476245644138480675151034551019728982493575681350832080925391942604810534881831600219156174878758205014219025015403443101764679395564220725439791333021515659024547199554892611084274493070061462377140075348931408231789839690211253321491577221285419120954502106451202500585124490086770015117519294447022841028862859913318278625453730048127499693855630676108955607767029503124850793432749914777176607927180868268711702039372148941871663335382423186031553795814717154701898297185034387907398677182884500121879182554706152336268342463569315625927177347582323588823278219725739660721522008261756882266883042886386590479956834563518172446107905812279332390001459167020600561072323539406872968018230687428660030469476557579158451482638753365865620279929131869520737520587002644655297763323917503831899556371398574150903295215503561183869306279512890945257940813516410165095839902020527896840312443180661989509765644555678241046518993575361029970891739746526287694169642743702073996829594468457316530555863455016326955090865706493556321974638740729022111306423083126969226404339503617101044289514548844928150808340104572255309103367968593343879513058624632468377676412715298976383056969078186319192927041140542136992105789507925365356241528352856263734826198231857771100376156744309534459968647837506185351572132247032421927924261080416982175734253419730499989318514798213880725354744772017953165912799826123019017056197417491167435403481799123337406749488002145241159526879802917893147892160420529119494619099038166057799611727209295795912845604947454055130755009913692009148143448975782597872076029850201865033232369513170858435722287326110304565536744430324494858126594273698978534424595518441601167564650499947259874978316208026110948879911219546706155558933393043727970401981617299672440938989457498467535138678353722851427861590004996352714231103773745429755476586157287095644277610298607849766077964855445273731510960895961676703597486421708078390846273434047133773760465018467339837711629512344603232308484606150480850566271378084796580840457315440962714983503112489182041238802916430615666909258527223446255516583289893081680622022815026170890595019603805497094987121008660039705849711714907778751182242966440084533370328255400971133873638600737872633000166853117254525459249456587502307827735552363058500704591216328788571990616972517558068200740510020925556082169754107606173393016027318850467015768379929949798536444669482523587170221170778134556125180142860282899717068932498580121638179390911865980344048573853939332900244924151511277335671850261702193969879850085434683784959887579861171433646138556575635727708607328959251146159521336845442161553469823001435366155750665091531503929530554677081599175255255131957344623002775067549560423068432733297094890757172653462247213576878609955141311111201489519997555826425739541084599791776357829366264766365436995955299383805513581144203189750460286380783102319984060746287112067401562870974737381854060953746003746521479975157629784436191681231878960996609262696728322579009383974539054017291450997197931761741896442485393124648877514644676930589588756077021942718531079215168897609689256249786401055069762504289902927721335796783421369688313433756410789406355536192486146498832720539502690039235331556897762334355048281969956681357360191081759231657123918742296039328560116924077234279777962853796764525966237638878970491995149682189253806785651526557991334805387336115765263681857750289779280430330284279147354973554263628135617908514906319658746014143684061039812299052329831233341926602411691015872411402239852288281648624233450348485068408296071209087155181920456331027500843736331046060326789796728643498787161667848179188912687320810847842954166769142040317830889665434666151537869886144451654262113821499473157351483924342221465653403575492884964571109044901721258436920643717952700861859066595988126671463388326341597468059265669543122859360158123219358586450225555441693028242732311762850169859014943699964736987927766748338601850373017690384271474007705385443334061727897131233876646749828220576339578500023559149819929926979891489159983068693314113840759421344771839431004362987424371321147706150005090610269975160404672534995095528497014485478084674908112184420328160423551684979388504421695708977297553405428023893387503622073269646234567292706394572667916554499455785939967927396357657563843763125708384404075325983001161708437927220286248222259045035136638676108790693086617300387065794675218247615203789783350082736873081663657763310846424673957911228179792356559116072361123260979614192078947110441884626915027061572906556775606237555526689066179264996285003704312545554291479525117964442289473711612682016907312884477706615706915916006732828388923521484495377889614048485787528393508529860345019705681438254639245427081542241862911300033919149303492974623863162569681635813970436926407251498625120227392600420198309303202362044906916499731587122062056641715755927640696371364803292011609547544504953163170215532666697017707038211092122678896235861504183787006850807530157670110293065915963967790522733624644471975457862898647220472320949524176186555371585430593919108770874565963340923225492724757024136132354359851360737565342276422706099813321197532014927428761104020755205256220849965084280223004400728139094923422450547573847530454007463180591202371167429127359228053216146046557006502662441576839148522178241212245575946979752084536450266845166570927820246096777812867493196430229674298829477465006698854415637247905435201597213109563699991807685930144070203121113141396411474009930272225831781765329245247992416467984475235532808055858738664091480361806835578055504819492261355782257607388452318523236491056378601885596769875973719022495696143581038330721199798806918653040723840067899451600808346113662849101118586249492445923398063525870782021973969890246418466683746701557851778728188908430871236742026275546101495486913753689988450119372435159401442189280251431377121377211603673508530358027851137296129544966627481748327884170398098431627470423790507406267762570324308987053256918325041399294546958269623816687809893875532393113772748961159967607374606444742279833957539787769015904561170386928748486342839416251217206436386519408156164346907363705979475441483478756670882574164562973059232044204305434662068447239509906222364282733978833218908250618218421617616833436252238994162006656387838509269412578796015666156712906466607006529120895316375970494916190347195283548896910349550497707162022727508135230987983856953817785123217617499999816263665404683764140802671648598694147196475151789041196030939214264041261428428461720952297396152305380376964486722667563567770427656661630941741688560574760034364155597098319023016975475016689327618262074150334801198071580524170434426111627671412624396436052574551840712303468246841880454874766694636234846456837450280773177586957281456000421661154343520932390676755041166260969549731611620934299582434416316194984170466938271904162858470839311413985990684039374678446740494855355639944963402849867098695375991659055909201161543665263410662419706613633224433209293420877478782919063379970656376947777806822577200892211386611047849051976852948376222678428965679915211531037367095660318659454426123289950057864937867272985773419397164722244347491017861267258544249474733871695237472745979468692313481461568232218950481372886716562771435279075029766374235524290152053727069737912242202758865862433477752956677069234918480139853777436345350106311198410675265894266356487519767822904338513567155794740602826212128287069724198698795340139104478231392955091813066002180216533384491293749100243195082084629931519283877018319153174692288405469866841604554289617305114557985004764553019142229000821087800321447892933618614689326115438038766670812248621741775300712277216427586325705575433918370327692870140227170104757031802860747994473504082228919010610759627741375105433339933555556212152674636557208430727488233199678543830366380429493727639880879951293210635668779469647908393771513975538176547286891399070738182727058830658010451484679828137122754145298652702737375685804551322926976605805639147338060459592333286528534628919736988926590571861454501662709412633936292242391258432214807843164231976546084767649758447052764353120428407437625099339916950393501231680403640442946416217248775883469081238378284583546532291057652384721461372164665635076140445484533419841806044187753301615834562086510338369670939813667428866599962072353167706141185041275384554754883343795799567667305885367125960497893428385833615817676169166837001896900476329991942541362968573473479534754959233494350743671432423533228267652161804389350149225106100088208291439744137294238416167925667852470864670313161314268809546311968664587306180363532762466953490589087242923324361149467091082275288689532847256748910274924919451467335893942084821167324441364171774502668136862547583748167477184351975453453935093160895448655869881494650745474635207884159286216126773359472863835175896474498689704774288731156726359211946065527138803856265540280871415556272442697759706224575334095682276174292248537424292374456247513734906220490937982582183489106442527989909328371377806357540730627474804163990332857406696157661894341190279029290618346834712672605224528387968637747971262072602584410923184763203150708777448549988233101515355460087852311487040580362673090112659550596445532647620909309808021370449449204893244692509988641858106931410314951038672967816310383418278455661160121387281900842816175113814374124269808556306771090495381665936028137094827286169758206530126691481879294893493627145999277573682964331977886785096103256509078633251442262898514870936465423490951913528760815457087489869809552713061450503522921179352465789058905779841935773977605545791986801805321076757354501316377557948496143195506781837890413782738844482303392411639573702704096330175270639991226422009485545181653394955587013608903201466827353285399600059245782694935781505708044275494283832987321474141682786306380110213380145306025271019507369468120725812200444516300526572624469654508242941225668681991594658073932308655306816496492109578883528227962271284172610465939423292455661239459922174150341639402629041013495872249730825439701307239668021615917733744233844208135116744588497532681895613881355952728145013280044780066773140292677531803043952370604480665071523290757401420687138616803424918412963293484202061038264285151381851661235304000912175809846665426790341256345074288153654228312550594586168180681199729505926954985894494714627942479984786092200342778266701927326897436535548164797910812838533684394734334850756115499581272346483359599855508125978691320398951465285192476719866807717277676635682244630026537934473109097827561989263711270362284765689977919649034539203859407152521661098932731029688828570642067175630733745139862135237452071365882029737233439504680467776343886294698735914591966107454075693937692621091630493555653042106064133741304496203350559594285873266063905014083201588100616336099138642748531481851394899590990256460056993232459090511332041010358320794476426200554291613269987337731636487860250200022075807051875781078857193873766270695174677062591755440800206571828627623494776154806174777850898193045307154700006242881605356157081058106139850103853157901403554345883756329722363417019943915131845609505408716425811878267462797530009336536921349018905343831155850325948993068782300101340444194036393081041385292635041620690128373083834375707092155490108334084398141801918058494746199519241627361008246468908712332967096736761369755059921159489662195646553283588209911206979857905761738268529209194000996387569017929423918260617700848682043501375152301823348567414035324968873142394981166852728380247239127117694418793890538885381096673057919460051679783402162979400875153718887078023115879032997295010589265880001887513124884147000543238183144726273203172371234879052426341664974353178475631530418471206338672213117067553158405999590275295427416511001628429033989722323198410792104389345403280020279992725322851365543600276197512381871100831070384886754190982062902610125425699906771179922051480072144393960490524246970377583961891465177484442936091438304061333356594163081824645926726482656095617515803542309977589558085420488093114756915663218433894916476230091929035168321938335221285584815949374969220020909152272329881419291346299687725639915311307617058663463769667478918936682880723447224674591115801443955365757813954918808710639996478619726655345704607186776061486897399743394805365939870271804413612301198693429796456080989142908467203133616952561561554013003516631406583721643596371811813103793460188543925952081475842408324936146184988935742516312238712404216875595877348380899258513730123494096710073704702439002312280271674692284170649466644850470416042665824234396681815981984316293703882706244420695325691347198001171191043687118825532758831454726057092515441623155892906070754953823623841109055159288910121218445195966102767152580918796092671009308345910300374230898818856045706177914703035808728704758940276365048814189896221819241529962027933993383886233964817443310082138333859034551528557779039644957195644489626589056592576710314114849304231454126088942722553959958665533002085136143978908469328884670515520300292790036496356055115751235614710784825110841736482518668996384624813189002765028925606281356400378921639331159007170810021006156543984226620526666883792100652364655451969318756949524443852482773627348010308363716614610974746622431226748877410018811464786083273501997812452737410400606553495075602698619301782630076882678592514026691220876533050248668907862486819381404978275548315270779565011582112466118176269381817242032187799998976587972220179193930088817205383303799566045665611307059891105594683105131764317851905705655647141881962703921758674747537188581610772447297594573949903953280615931403042865919777445287180901419450570537494012977088396970264586980243812684346596853156450509291397533763596438018547547940749335642321427569020776557674386642618823596871147738663524705669243760095193305043265321139098502908990121796820067417469384834831870758420560197293590422218628841327050613560781061009930643355838016852881554807310886364086167566342074819596910554508231792168175515497232971413089356303298538615580532921342358182774420581345415297051641990622925770682093240830588980124150660723402783515215949328354425517673375339859079119241557124593911014350297927746382566089010940579168684993107600632707691077094509435747834483657090593079924596156630787826994857182705107130517776568330130331550061885641552445399587386064444026497319228326417488087331906223029940863309537276369271669184033252795776420883105152660913357338341432943502906674013511531344762557160834027259452674536140138366466835799731711929024724586142689751924806885581884912491495913853194358860577170913639878220019721041766738656899339471796755375070789364739008386758824392292879394992221211980754112178170367177782647089582559099145862379700629023416249693311797917695952772213865648104142492570638688335146323096701148078895894970695201150969908317613733605605054441415599198449213119012095898755334144845207008044796181427958300962870774406579351383939424411849835097344645526621682054175323134355240725237905423087338507499110196997337638257979527246497582557360658557514350763597871936787416450752699168495933728315063359629428502827785107051942035492214357814970236132792337636814169676991031499145678499450806053608826165893100418565677022638123741005981733466556306431517154854082673948628371178304390074738694116342004494929672207719025707523441637819653771774885578863784117399720261125297153892664534452996342605018343018946845250258492339109472666652126951087653926859399999916765563264303414639440381814358162273576291522619398424828171993736844828564329761713248431747710239110443605911812408720547229717532622208236380600322466213388622043891629100532689738237140997776602441321911929393837362346056329553285876215398484502913497934875062322899087085991457312679804589083492325258105596242656615773859275831213365849371895333541292681545116639054079781154833275553816624461884110652210964791586589986099944338524756945432750532895804157294069825340042850854336825179096611163183348342929400225003143817544822710410106343118426909883671571818912977270893647240498391264544632715677769979426686917049560962130321621387718273816667095073129504200929648162267572449531262484610467581440948020035299669549057701989532041873383197215451559082543129064483700427114411150964661664147876529627912868883106313069707175893924234370266643841278765151281278276371155671854200666622749329620218074038603652661676239649005032518930858889600424644319211576471924896900455104468611189271605977447944455569534540704091909117214976983385288252579882021246494251434659139006948922314076902051760722790901067073886098068133624725862341960300552035022878316883773754734666031622213614776530022179710731877602828508465220018547086841328793963740926608110832245961620715301848492867232511134192093820486103941853484355831523104860200571262291651418113678000313751220233735272735121647903621476320897068512094358623391036378085232689265049529769081379745838231503591486363739234618645214025378858105906137453330054850765635798751985206114431140207885441496959472491448335162278587169313849324866249184518987889688126914516984981362624684800588103005464155134397068912679649932836862639381441461042148523361286755774332796978202343797044191345723532009933654865289997077757725559004962118515323917324965509697052664623169971378910510677925179583045639053307809924155360183407769668709603431434690257712528382905541182683593506457932961835462075472157711304634637383899384489410891666793657629577947530593993532588139811175929537931942253160599709100307912179001782404643831208888767036159550603501404906962661235499276101298680727027294434523541273076404600214888015331353311449253446356407541713153599066111184039951557744271808658873197502785945085471077575345208304144727322255183550801571093452790045283906120647704707433964220366984055700542785844307033931956364108600744720563249784661425919543099236178508858173930223124465090444118917269183323088315465380144161281452206557603768120083888282735796833367683969688713586750933682123501923473915822742324366251215406800198648611687802270161208122192317963320742418031271459506357024492222193406948771704780337484342132200081632135750140701817385034139871426887746229675293563376358514065238265337249215658460977236907348730473167010752387214703591271379385328057558029186021041917970376196552081846661881519364209554684781923037452684232864007391920189799943594560401963818243804885866399392555490198740775561081422431137215266392924888095121080874648590474702387796207480150378986752344465030416644342012377556163059097887053811285308212487937409808921081791527743034345509610549818837722540810101232907450225537907455446673080962694377901561541245312199040617097720544263752486985585841393798020870164410528705066641936591153582481204985780141703745273683835649069944396292240241421038793981426435195134158119477035231099144218931527314312513283079166261507948884745144356829562588978245762971249104079150653176910965630257025645111474648364273506406156192563920656520993309019358717800491804386818066108044930416622106741673562751963087459620988155746747592986948609195578646396361676634671634256276315490858052622479981719733802702309427849329352325284902134665185965660165025888816424741828185422133944517212981275526212453231287705644438580581217763145094159410086519926609056195250752320066196363560399712140569690342837965120314125065153849225788859752485058009564049296810070332308945915848853574182287420193313805080559643117023312550250405788299759548876450512888029156264695623010217889827161941287031464402543013091771989849086674199199500136504598721931841747066464623886115743370664435140675433251175100147295978374998319960439794624029943852438519236077264573384630403089087153158188186304125137813604012170418356522359439416482745153788913474932769061335830028457329546336786442521990439960484255002844778901949442493520958451940609177847844134637276687467238068265387868777639893569213327315584567105768329349907274563979888958829582097282454346356709397328311566226941539984993655305501545462632392157320265398410684485836057684570012190609807223373532318514689546456863398996301724750024939756999299634110935462528009767888572655140930134998727642715804223461350864055520277871265805234355233508654679932268441711981337671627966962297371108390144711100850574177685051696685525048635100368307571849342705617214284663982875327323895716606767211730079868412515821529146954200564226516175773544597857102013427060092746332270766727329867200877753308728749440564401393401340965810579324021923511971121649332163361664052398003435049598804649588758997751905866195145824568377508472359586887784661114051271547996410487959226283508432849897172977719604492610284536377442229075334749565850510773465514819048562740750688791105503217765726483381557252700419278233577444131917014706022774462214302251644169300999470916785475103193589163958807819400494102101329853134315614229502330514128384287710616995239376899280527436530765869309819381120865693359401453354640373880022688062618559619739108599200791688514703728456510512074594087010937937792705304080481548114507269501085993131538153116144110027612687867020127861382074324055155501884089962815681782975253255475228311623218446324165567727827306740326246200211993994392160853477390855546401879300793788048609635512633088732648592724029594936854512498058080915648515372223605014508754369863581182846582445726346511297223077503448420205394071185425829953188156140088862538296380558594330938290388881263907821109214390814365529412326086218648986757382594042702138084276840353587493544381427822245684228288346236227016571636035077884318368566806988626372695297522478598572686749448257572135710290903035351951355404829239443225674676176064250359579448551689767247005735757092124540203320904438476935955269825785912028023335471172441616320092017612271354157905660540298627374551246250273428851558908182698747189405069459705707734796633368803396621263638089588684154126574341533953130063096605829039933869884616978591434029704204543316794711787979099243552122477755550152827631198037777154070151959765564290312695167068683049221263896135921814691651523685071600741984770041226630930199062714354942436876818245729187093550536829367077889889936069690617784137284416929624274240247960726007330180380363964618633997155575409398528738569296456217474617047365178445895846286661939729412651772319151562546774879960193572318368360901137879671744294930828513133390997948482953418532760595544360031833398127857265907645318031821220524910030234668141053293483721715003676154082576157845805098021520463854445535780310967614210698414900864683397530333917601224711641994778448573320540830652210007867304962348589852245898919418080379878485903107371546885290297231211929028881825071926377362859715574514644332869180863524568564320436518057792023931168353479912202198320398152946465984916359579785376489321742068662147663002907656832368533821917242885065271501764515379147353122996918213702289952206986760387089921642947239794243871177274911547380116262884706790255816838300354128171915311953056885204174703791373157513398009619772301863099130816035607617530634205171968784095729783006750428614022598614286486035289195842621933294840735605658608334302664592159085420972312941985135990029540053528609167610211956449450675998156297563558659879252461642606315247470521019556592087984416783271963821698724606460682058612986809218611315767475485197904253844536678822098653079421050524661631271718882217239366055166496292230534483072932219672850507282736907447567440782525405119305017701149982823916963997153125980927460197766852762123281201144322889432135330599758743515219853626550663921105178238727141272040408657198857604538020366869292042989095538113549131653066922040955371284728289273578326053806921103837758769438082033612364772761649984571336427111847502127492241599258263278075663169044590573829205293430194989426685894519075963410692556209578678372854099348257193011985839571003196675769484748259706639579866829864242058091078603949343907653806188261347467980021632332464510155180328902833950473680840783928457753037380896942780703199374184357811936661620527179755048708595314071068683770941547213254607555986380654055632372269432039394424839887848539262092918293939506073116172517691796513375761917948001487680099521893823519896474440005929248448820520796475182008684193066000671116425983651656918084174541469439164390852754383822599759872892244228542478576240380191632320820014656213004798748544520742450485408219715150069799007128293294659690504898854975219621681993522484792788672645655958478431036921626255733926311654486848230338250115282643421974597379526966775299929081958799797465177207536560158832499117029192998485521399434297024871119071897034372007725896659207658960147301528320785852004531032192286095251942250518721283531962962804216586346825135780087243878551706153388181073670821510896209630668450480742879658679943050057941268141652967193179299390716340507094882728607118288472036770010046512454868061129109345440505576793689065986332967793189976585210665648276873895617661458210919192329355274526719874696459744014564447475837399244143815431725685281318314505227875534070582196450835367292364792373177213894305573931272876271292775736725108233613525369454440886859278428511905606408235601384650007928560615804779970162482784995171050478944667071726763626173820630749145421894045593121934922881316694837568220613947290637429135572956663806352419214274594333988075092511648045827124262238866302108785114223916184894592073441466770896271748146014446396793502865518624882310922298788207510203437842029226426192735449230410929090722211055243623691752536198550111876543440769678700832199877284714535169221595181574448929323929236798018351982139178737023346339607264663950895541159810833917931242227892678134300386827961278682602481571778410192113569191810909999058254929170152594500014703768549740341295921094830545222203629374889654791572286324318748762810459521507333085971791652585703090666547203809469713074825768777049664574862311837312088462449876521042050418042922367597735378375996775836451568735159892932175081150220643484640434341838219132494543584675896319036557658265919683261120090579499086190293826489001392414923627795655504692293348345963821737974429970061346531263323629914385458211866287911643161743002151076120729074381168079252263476149290816265175661308369960001249347339542573974863614560855995745712806730533341147681625429520706811593424244113795940848232214046962772263439743746305407727860914937998427259129251010955329806782673847203774219589849994531264428217250644099685533301308093445830189883218253732993602370490922658341311379757505462889789344380885652010660406714495614248868937427095346182911825104667452365985634441257789774857531799079553090934961427733711871360740860802761190383683289565538971428596409381258094514800109334827748418311744371015082523752627085903072600885197873384352878200077545327603380964801378437927391948420543314691981509875319661638283778717868574695012837042768482160645036249497536784317558286959656013400925731656084137010522121953248043493962611296031571655956982942225789425769288159220751740586070078542303791246852024911644417950388485221299898608433110725553508106706644340481775828368417189102947533393190112871433784245419088892765775066439521099779580886205991219771583176555190237067532332602240171356701279112114030650249915216409333867615191186323713925886201654236395872114419272948794425981953586012652222080708681178857694161725352094804590726701003283222428857271246933098367115460314816881297871118461393062670594415566445125392867404112408419034711364708689894404112917378995575605685143927251778200300787174414212291442585922375229252157466120256020661301287516135700629517926219204559294755872586154350663902832807856866963208343154459341258892797358574060251986702304630454774795804257429474291598587268481458746975941274337341488520389867599429154625281603002990491883521993693638088822957017939371220217570354425030859135757091497123682959081061123068166928494576496038746308602965558396502490393448978638055285193814248952100567743460521087694508694967461144451104714046357194013698986223679123360802688728809106283897672087332291252138607216060047077973392173573457832450210411507970874066241335629867230848084479467169440754506714678895328006164582054687051444090784072787921029057683755483926035913637623599727984772244735672195292585863939617421405189418365374277256602108261940971479545083041069292116491404760009740147688418670435538480895960277072543609375929013850638555989270586971304199464421861600088342254632865669910245703039041997317820854885583748315248089403701921708981422428885356315933550635102663912038264526410197014337892817894735458018815667881994513025895327853997937407916849626301942461594899865257699097826902396004034821382023115529837880041067981013513896504390606768909726462702296971747829332325610390336280521572038132465133583012877819924839941537474017797408057589251948077733939338245617800083858022638628951911907249488963641903413189545446849528752186652418088149158542095407732356691665554437803671229813567978036062556861494511196300906868252357614822472334067133900754330352658614146675706367053309783276200539197921909834401451467045621907746553387709393555952648488955732709679388304958633941169134731483038630463693771978312941694255256291155864228971469768317046301802660184471237130849432198750047348485893736531872530010617186244063729865633830030133860033183216847976274192113304566799737622670404630369325590843164712879181086332683232604820238691849136928350616939756879295749523264466878983341932322459511779363677351599249696878229330761819946505588982862854589824290036067665723832410363987799234642824089192039022119629504280076835830863707150982628108848947008523250544525185574198629893541700535653979427019212454646326204327884221535010325887264036649885206824945871663752103606017745086746488298604576441987400067459913681804989684955157604973386724006198162523846999248535123818542231489398251901161549926404443333937097857570153204390590065299885567396174163779221059741256049023624903559032544419735606624169315494359933980180694796588670336331772600568812447678855850216970342781010366996390284966811712531481176688262175603785863405321627511280200287477809913790328251091933730029729275718263305560109187988955489932310077003454703896879401186722709206769152414659335383508155729792920980730349852035056058880225685484994500319275453139956408417832589515419276180403487112399476399627878534484398010524770203326935729016400700431694007498256209965716706144067578356168555970382167413323933366446720729366858667760075588585421203919043833433385896705877372118363009275615929269313807952457212521560257217979258171038810201103306487100258281742064669294926404061979200113031181906286141032182128009340806258085513996614931269822691410818645100726241887109593582185464700679358035897741623423150761856579056783896292515989386683718204799507577489621062654610268084192428818821204876316819063240326652456225907171761641274384180814764182682211343643730442265928803055224335982649004754234473729659730692959993471800409384384218783433504408185732223700443233084508257659440492619926812637017458950277450255416967017410438663878932721762365250609195437820990534708440705277344297183885233245423357996293050173996234325936544537984730960186988401216362141820199259628245558868963081254163617030089472322278066152732803700282690894111393664428627095743397805654511702229247458795129375908349062489036412963267256107905659110167693095465190523064090335963148561959035547607156682220784007263007139740904420578527499123280485534607292596783924105416112362564644241677601899136241710241439773003993535655309224635535284262960731729609372063242918457217063480383159303069504749112832407130239448508026976908955984706510836242511691091197986580785732311219633614006728380237021427275939210998755713453055421265605383019788467050096799623376863426874203439330361996907549798957084054739801023822754806978846892791907428755616843076980201297205525989572628557898994782374493079383743703973598695108257294193424622566819267172193955299678701893249905666987092986162045143385044632068141301244717646945926446651419013645649941037900568841295598660865238236578393324538815962300763618796723683594548432127630625153396394405879043500122355400042162746132262669780757238201492513514579692351861798149735883335499773631125381468809826149567119409181242436035546453025070670522074619998472436730801784295957520594058062567145284418489492016153098116856869561114260504436118446784311634882356130709263133440574451901020381003799594530904592254794582892236141183302947638575831070619680355125138039145935085089119218374371079911438638852320255456523884566786694818441589508375213544031148988898403250808235622364628582946930815641021582038524093813763710394409802784439565693957671266584341316112504507339440445690709601289930400850479954717220936248084870378422330951675733340051649104004719109095915016727274161904168519016673379465026580318791366397129035993043336206232641055101479695848913280739317282062931426647789512439023959305163251231497345252527692834347542714632485162462089642467732529644460521694501769756036809210126783636373081025077746896286504277999125488156620856858712364072915135742701219641562967023934705066053103362592278072391490593215520267468055012517965421902476869787666722893780563955916553605561315657021434236032029033121601666915350054309680745682406172923896093204831473404794318862711089708651041067828841363308850480595192610807682505394717214355399295749992574191049193903525498170440799371043869383058923551993358727565534078173621507106512817815575684888020679056758080615583538491731011020278096301837305253843738182761181370487866946795810729614735920372960535399456962424755733944054642344125726751912560840800158525993770270065665019272208610753155021938118703154529035549744777159955975127252613943452786056946349089002883100762404327920664348666118793656478823485845861209782082213192630977509886903470432496225746105735035581324120182097654961210736387791437512837626217788267998780330425978007001038215185803589183966752051976550474212112501293880951718786422297831897994632699348049853915534951572799935995512946948658097106847576047280683617051000650207135661262692569595971911332031688702103486493175445285989823515277761200724429193470514442735227479803731029635064344388158172713408236028858058278524702988431397121264079615829718598852700458556206992331273598480294534731287105226917765274153113272233408922193497764666886920436139730387624979409636985053982468005505493830523374274904519055315406735866429555275977949993200670833395976024672945289561989327442245979317350381785293093861609650525796995124595765047056640845505856824589704921826835262366575544881347115959178105009525969860335209023284185330363104277436286083890669484482234329174592177330446601872085945749297844640033139989443282021954466285492633921970366544062456440473433510872691953462947551208556431496934517496317746720793449672633457259403346321360760683999787294980228071952797667067704424240059597939390533367524906083198716913251639014307443361186850102301316204290648953306666999177624243510340008787838972312191986252893812446649899057394387252422124920881003651424181297518549242564098254873849384589988208990270368907445457405659960829286987198152797711366485979790787507587705560057022400632857613482240724317541918785697038771052840374442374253399397233465610825570743263826738133593900673656031700588435463547766458993697333892342789489766528157090637163194881903623368006349117718661228341754629804290835331758079476614084998031679181214584663113400198761018420059591811712720989615555622512556913121225176567522851985361138913246468750060455042943737852516809105406235180184850564804219428238776936836176684215192197924387395198977395792830996369099159548274031865326272442166068424124593661669286813201713054228931737115096563819422854993370739734936685307692807589193904832998438872276122866177636297380059095904646990713256434692650777534380712305972153639576405339002849511652706262597237654719142773089604326040386581268529297393587721872530542802092403515324357576511528371940486055137954462569880380739674953591452749554882299948087701289177283982881269640172568181949360163145621407023179995384219978502954883104478451779486336950173331812275682570236107463503294977451979689936432519480859855094252295556976309077941098342825945132497235808053361288663990371948995021520996829270774189941960817582115054751202599334527900165969158327685892888119299360170383258869443873247945881791959214114954267588061714725279940943662129545993583273757079162585391702297312936920101324639131131168705018897627356256361932194433321076384611850354365608846302851231863326087901047864827878359543213567064574825775010508983494556580122246384027448954673404431964082291672224431090870840230773066520663146558406135389527237216888855312170480948760733442891121462360370683921014291605727245061769758280781660874656389737489532299914417628097574151678966825991455686155460458710393370856765934704940714003195485074607452526814448273341505125287396323295404718911430362400010039348419016044359956626618017710495637505521686877064335582055186951102849015524279049263488646222818089243698864841099787477684693121548522203049855193608519609055819479990289653615155548609059977599950426668614015247357837003145128167782252524322696085274804962064143382709569587704037563338176495003880726939784072600689692831239011118492509941416656939452206483469705080874297983975216814168236969066823124416914958383586315359098389608559764836372338606837761723503663033283401980024771629661257303447401350580597385869041939771896628583107833033557468668167566498935816902880287601149004949517328682950273646447126795279596116744350922541834362292790439539203307402075208264776433680095546849110461857462225079844972311158347719674139829972961460537799882555755333439650387396685494593951041405041399181188158254342374111830174834017112954976995569032574432227110865328730851465250517394599719791335731040914541025262966127468410610556595190055327394291313487052093204696392527854724794409306940522091287657379595628383574773762114449919734179579951506339916449947421769386315518043199558427318364862193495652262892533848508106041390648596367983825714537029620618183869653638627924689004926484262478951653710616176140427556861998508443562832575755705810009961253633920704316160077429028336998583075992665154758686928455171024656999308320199736839969055954949361815549409782012612656729818837055257687810960873282584864281114240530996781079092456629558913640290165195175582234229490033293895420612507422962097493210319410591421499528255805409584319836212715387658958263135008960779859733618459139622449115477974029325902173457465781551321984527334892019068384290770522640452811256037773126922574604868353549555366086532417944297278290937970921731589761453446009884440038320893832488828548211305251496967918447303229326237636180128342643632479419715471072414144352398645697681759040244555221594759817779936540004260742349292754679964045481678164060670066923840256450204645976378076051563626701146659175906588730252259931652495319677506810278931971644136876350144609947146739875796210491300751294518312399739067007418546891214962592954147593765681080382488927780367960122043994829507549619948627719170945381181607017587783983321462052273685756046868526377892193124298790477284238625858948913670201316823417966662307151158059972879889762607903658505421126275481898499954638359773304510958329928713898173686025136446218687362837757781726526816600665832779725158364452383607691048011760237781473541520373750372491152593083533807071020940223698214209032268016978095613592446202544272282618875896065598793522814332546673965501285932105340888395653830902531908093742097590422660250029381305311672798455130970596093066548302590187793675314547422955389278952609210142832201882027212285522023055560212489240701488386025442369459978506989159301016891174039842449024857639503925446515393752642610986234675042826718315625377133820179467219156661826510012057310247063412418661095522874352920997537471416350480297173172231626440281878972078077427187576822818931541622803672054715014410160696653017136859292051618639605907541129283950438653774259220952926093832446427992526315950755987916912524733441140234962848503254774351612850948837751797955425968544068032381707142248864493398235823604775030295078784647796474577799417726137104099657837266546318517725466977532218956891201591850971753604273720045953868164426873564914043325476276413705446122650710786517721078088275123198947937599440969138014063114420549791578692441072100469136228585296285194188090574751990153811899323416510108485024784251819969550075604160488410541624002215455806347381524082636709456713175779453421786198964271839265518431377449256452380128258712064630354209188937859702850568839806559625203965878750805399792115711308501292537705619754684287695044728389154505566616288107932565472728518719250997978271898542896414867797255540121915882416389434749518204647893594508731586565576679452965320659060762240627638223444555196083790879132317306329415853871378422933257723528483212118789998000871137124368704509066367616800753186676335211692321476690806051820872162601713898416760009817122564338232689553329300039216772717701109828015494444279038261866816855251699284252124416698969606522294483630752573951556758179397616050933735430625488147807061703330888274441708063622311424528940042060347850523335712994885748889846666811060619630137815649644242986608990668229986499808045352655434006627887491093905687965610497677441493276299390975078095637545253516681789867463602846770257207085568626031622779484095086277879769327207105247802377016671047525173804093479779699822077601724680808584946473230175009100551631491079754958413933031768611646310368549687664076508364444941402657385229650060107527870183101652263567673129602176812337859107141419576184289565791040343002596730889983043381089005738691573199773874279728820145610368931816385490918012058715808126532909233847653881574870104809178465174510409106299554033353077901975482990736866319350483892810625959590225227998219580619536190610880822548084717056250584577162400333159484369974940147575098438002379075816682153058159595580371013114566982414107051852405757181355663393085115600854639560210772336181175850128392363603889823230103670847383034338211541387809247036433111684384519383575480929120411812541876215647158838171285293718549910655547403732364997175425263241512411069136026588306286010754910869696158099424794651498596096643308844401856704630303765322647269621182834892516030768085212858210703627204104662396263675997617775026397958765870672082422462285938204073721776763470852054688009820471950519603296359474329999635664106258122757079238493436442344622751236236073817370747559952967286758045029164895406486654609049507199812870740236645379723627256522865197072395297903320483410755930145344450434421139599478238141044401182025176697164989563386273285511895035985719467909433031370779990651514008034989675959338365694420571730497266706078770138495445409403336718231753213339768764505154370475294449336293037670560687212015178654869528529048496304528904005566477226450103392136145102999903332721390712067475794896496433788739646457704809735678590963060904926207806290957562884233826694725272995870045766102336218096224582068454652621630670900638645782922241788847169412834387971587740875830101220069371716468112870468812196688030040229277455553531494658351395561202752613632081196378572210170271530482169405554043681672552831650033956140977834038247690013861367224209147123763205164898410858606517156968174929268528416516591777093634578246706597556153990923470785550548572329395477967402415355055627415628439646988782432671569671494447015485344588380792199687923200014002671634649059982960127110099151218585719194521736305474224513353168653027959062576904692828060109297018373249349865384963276540928148324301284666619837711813246729243798178095925245467213877587754195046066573686656238417725703792525988589601812978712206342794524728266459291469359116192561524979318323749166723715731761886833078172410817560874984255777608147834508714638612275023796769186159321137575046560282974589639714746482449276442676124097534815231912613770413757176863232098978699874880134463073521035647118195483228887457767853187282071231263165250659050741895995337224575624346308511997652407166448853165449265501546912518496229938777177843617064792989894604754447205022757966720270242215713561016222198932213200782927434103799200529652199735631135989861530915056333257376602795394341187386983766680628701625122027849227473335627188114514129626652717153768220144106035569787460557764922585238336960312929067210050366074040609899854752265050158300381494665846870694180353680562312465393554598480359076515966869588788419953110903875393494959468943289706505417031640632325153998250363497914396186780999556355653840981849187694666049186187601199470351886381755278127888473382511965202369502899630901453733432920051852242540373953452983618421121396496990355271784339552858014053379471036291249156790016025974544863838482590854734662829569318407306312051243231850540834824649530010373800533596505659438407807141635545707936413193035258939648085173062796292213358774565922593299035225816356432979923325903349394542598557673625668184410201842499773823824307355791604205889764262851832399340799271977615088853561354028376996345302683131316896244090618051858668985387791465507353281123919401437000413052110833768941199145305394426356761944011593428857817917422599293764279545435717117484668732793779713801640487975181110668407009184134628038187846965438486032732057561116188818211429552305804060313043576194625417808862545588364838689987024575403070156165836176055949902575553709338916568642129131935823850555570592256695521075931028358440507750987786869304439796142129398528189310520093631183162146145238344205032244568022592483743516431378370979225698614703370631578358901890518219929989367879551139597049335440712584495194014967357935151623336837105944802571189634831806142292032466647229047923012216241828179194259195393265091900211708625388257763122211282900218126357679189106277105624471841329308146012176586941267530183779768557335407628128488511308030728686121393622536761336347386914796551576958197633208007226658934264722242143273395159734905309602825395739378186147244619603625610214042986371323878526690414814001636553248322010234328095125412312533407602689775474151287042359273572551989466506996230516879191099631011675539916031958179810249457116980733705341922341164204796971935046713149293837143195893980340390274849987083332291632461367014931069025943763890554235145760237383221627808938693927147596119573531058116946605451866000623648797546757413232881926163081587480629327735894517751314582979836285888481368723324535667930795028576711157217176438392272778284500037458579006672247678673958660370093622282510397044527505513894544509638760258676036513466255425202991683826405938106690757424141361811376439253174446367131909241866137201709581760557086082284338612750418736539300600404125152009961308217850628878089526854284426657208142146571705905102929755926715127860786100138765850763748026450567465881440379831284945030980784213113198268921341770520209998241572741142651903316937762582961348337881707389154243288084948229845498634712870660961613490442355120225516781685576684076128254502223094527289548638956835772151262753909129286932312805332837308310246721970109271833984002349688992897551735141890545410027670086739797143453405885525975341753043274403636608469627746200382262936426088765085870787840746739260386108344974874048626780422142484077553401598475593736471176402055172515021728167307415168584279452580954188661591097552580580795760622645800779386513648319167455371001000529290845658440583722906344818941261167272753706477373950360930541477845853539184017256490412252847006218910261140400554690685150715677034816210353118755909694892722983321823268047951371787073207619272999439823797802263377325979624646595201841399130494344984402266544614907877801637498782371207272313407271678450861928159107384434788863048955075580279837934064549505938440730884156513106260523036260993773353044029795412907370509262524122935038589085779453761114684125346655866912387950198566501247715443069536895839993068646872410391187680742165393605954970431544536424936299282263722239834155078288118947707265304531242717829352217085887955558452459852882910717264721133500309942580856050483643138933728070134403163076343112454641099135394186084737175961394896670782809970076982022054392403310403696672043928416977130828992492215663934844752139519534817761303996619706324408947222885465709536580472657227483653789002841475464653398845258133261647579994927253943367864370079581557739601169895903421866450315852142696776618422729871152029136725081473599903306476009191228274658068209242315464584871245593960814678878347380793205378190137462643848489983232517405698847168016839317232596041986937103074447125630244736123684153496793476765438809344277176035337923361382220892439751785537786805137262918585547603103665554037572235229317876143507848986817576196937754603236286122489764676514925900124864864464129651465940380566737006706466301731250863358568016333028784082603520332940242128663805381088271731891872806212024357589075987038421057907163049489575559639057200966013905370513128349035618909611215394542229046730300067001824130501964340451545075137677861645172051445530178955411371169461926211117826044537759624311535820741657927716772618459235686217066668751003521719324448746177563354207499963725586898417436678278569576539883193662913758071807906692427101318524132555516419646239871193024216181646462701935536088395534789710844923932301609245341675924625939333135800642290556152343084868382273414018595485974785528769380357825156695204015346720230506804733804124137630193247821574576692771699841871053297007959752140083717580135904525848194037678849583656396090884437184113495159196699468498166001915942001899386640878998322317616947326961202695624770255038265400071050205149962214797986459869100196041130903385791152450247135500412190112996756159452741309563000196281952709327434268186069515076488776036375700095193373425543656431376749985600115707026720092635109623291112657306874188298528568980298172346050133330608627911117010415519298728269636736731094287317697645037965738814929924119821338121509990118969847746833240813137091934678202484613806731578060729993373287627005239892693247328936450959241944317343571815649969250154938635526826313028240691761397795879705322480731483549955296336655215089585578318037143191297155232282228600882515845931955796187177683016741192276805034530664422685818111507672877185904493027545290414483999358990988993327214929285306468461414040117646151493823285280221041884195082401046459891758920754744792474687445742377767177637535766517786804300234176781311308566001101603966368802646503854504584871991634512816790624453247837458505440142738860859199417843046969767022713964743886786281627331829082272875488261830646781188453003520218392180174353107476887803761848865111378318440783192124246874102654629593684389422701016998844502448077896373531864929696922626390616228149617264347779159471908321249178233642262508152040355773116291636793979343031782162824974578935129475112445979662245726545775018885908716021554188998881489516164397958768811854969237329969850192956327015099304671540994067328940596925530383490383893477097287856250844099395761524330537971987082797676071772364582301381641147986978164873861427890251333002564886163555907987502282965363314647962395155225395133598945732216742077786176038036709900206253367045032382047966937836350102213737290607719753304476038583885947885525927996465201837299321668907667509584064853769675916079510473128951977950144949298724573742701410098816049912296236288125686798229777003982740636096760700192862546571254420744806098817796797150212217058133017617746375535103663747479430619807795077872512175518255632374383496574396333212419647069571300148878392525322998452301279468686438305674792728580539497193399875837664004869696703673083155734818842497639585109525803928605537286619363563674035179614908390995770912085284179069500673649549733980958758034188942051663548371292933517933948141710444655614862639435811404208952696460046534941951026761088177679895430990688935677284868813866053941374898829559696898314631221981146248909138385071194910971202833929806632245170307303384444451017520656213225433087882799809634866930189601156631204705677680140556477805034809391534198007801504953606234181132203359131865751701608416503341475534521771790957612369432259402885230247647171318762894202579032059303791741090686704168595716623833251837707802041724199996904349157115555934567274697928045266197205703463680337975522857957237850400389244054084736866575187986772549816848353581633885168846300338343535508525071106760469963557253747893329177880652861430895817486983385251750167684024345044747281997812299147538990922206566197320863514473758848930291856836334297974139889255206439780042707274783432288808757266322788467711991370429269263233201983301748876539688353110938672595904031806821640699737479547024097483376473159686470259207594503668709016972482222559823268764484322772957368774787811453859569742974390111482556667150757091909510610678378972757751480947819502400033801474400265748563032590432425488598582502100799948125133771928805148518196655309041523254687249757700205263089233630982677989702341974772990911851053836720042696472806440302918801226680589465946099871276096782923755761310611184603559788432363333171051954896210878283619680165471897698417293916231676798183108156948665961082034307412386637652705873183787456938493201473872780422672726439282757386210468907264253432716225989944967642748176207644036660734827061459975767274679573905216613184502347521172071146942887759308257665731418498632806240509169955618197956380021027063359301553622991885085329398593150181961088262951859896385811058099545516702105190806611990168619289131252331606157207258904143990849734479888445377233905456369675288061182407777309183045686334672645730684026087843027892610077228692814378874071298418279719407560962135028184734257052887324528081742496565339724715978623121351648820104465775422548588200012136474739729779224592009659670756576060388552675720346606711419339820256280142083626807572318712639311507210091290512976279932262589689327823612343331757971289843152406752011282766739364654309362148121532688648810445775145686322668052753142410627070811604707292118528913085019693862526970107836037567806628311184595271912536928113612862847612562166266188901649784554755623247447738044858266343871271805698396484136854713566437150025599984734817046110432076508833975993194932013247896258396609057161374688255607360665328919519586216340974145676555174826242802867569619148107902291834825756776265493153546611397893272162918502102839218730594796747551933663991349468313765399187897976807575594170827354128148120714292049568939270415219672566523193278248525043456051337458400178140132987714005977243551410672981446884788525043236110303260367793637888913811942217022418470603583448398858688273692808944123277022428477918043867606655805274889243617423272307617459391016053237352277209932828150500631416409961595678370466266237446114470029425625697884887455168992321708137673506814552299658538374105948094778978194968177217314154347507439539895411027825089965541183843277002072395929325159627277351071780825135899662956397172336707815821799898502498679743242524405008183988304622093017566747306587226094344389769602273256486124242672884484380749426444795146682844769043948897770743099689338616300482933152266873799741878123987589369255817868704168414090222472888339463138324657018637688892826629031919203491659226733289089424278698895288642684289420429670795012083770839897061152787913875076130548586615842671381553440161802415818061207317497724580383163949317641724722506867075782381759852752046539317060565785315755153019374849020015919049062944293673856406831727988329144080243974357756654787959061520099501322279520250742625140128384215300508557269349902093931454388136591405187351948959788420198476407773885779710386321772639479133900693740951287709188580136907891192799743877849857429983287622840243176932005565039014262087471043616340409681168187850674167986036440839223890486469791134617357805179283364662050715296852388416215574333398684761252926266036034272367052419919432113259155015701922778351764960440834885950742976170412089778347307652335632022409390889948926265045528274566895294668824018774197581399614873319717576638573784767851670836976373863480595670478789703701552017548663194226301179356774724141171863356958299613182278759901356089182227346370922821035779116573396001858381050448381762466565392240492549624762147878878250987780277580421539629192568248861561383679063146751111186056364812449844759187981582209332737024309005110108197304147549865473828040585254268986844988963659757319289698107014239245863739110921914025651514415557346559542193870321020220122321297824398881297945566465018123550981467065156826700033383218851211825758107270909147398602309817392911048992615480604855882469366862994111022160218853447300490388490703369906620227387482519584741771453773841593339841321648060107630041556765497847017719779615822359532023804722678911499069087560591166748705059709287619597802924278259065798252940360988559528387165172662658226391278927248456926919637525835041449388357793445836755655176879330814765074878665827062192280120227925423211926630430688285885115164324659775944055908354108895056576039400628021903990847630172448570893495418146996218102724529372824176378914066326346100630042684531780261443043540126967827804228047182072165326670159025263186914729495812021285189364369225406701213060878480340813277982517826655655687762502569194788006608567479171046035109212207061480023157059701296877895992422604738267955359270559267353828684685871643532819661393819822964285405603417688767231866070846214428228330845712148319893996029728639344205174497820263268485312016171235632330843427945569721978247187102070840898425974732867367437554447435743561496472824840590987452186111598357125426800885352031327447884758757320415090970666390492803459484774972766034695430655129229705031408474830005670550631524804416863761033720307364013662522106490979399581086324163835536846675649081168190311206105667756095033986309764600930457544731644300859040324681682332259281777262170569590913678508558532241530050125240822734552505563945601349428872990106437010659974078225104736115167059754872469071050681387782223933464653081700464132728944883685687717122896927978365540569143325908948413904756181677507138739577562203403010062349472323592739535002189226271913087685509540975294779340440669823621829579775249258659168439225237830721737223556874290700292424764006360704481861059078371905280045968644207144315843292649974784313989049606789613365238413427402533990375835502902944914713973573893807970477195230501103290057921958666162402443245650236037557251143628091370432035137289065704470916846549724870561161995299663821671207180032459373011207788362937298034616009806544571521262542952698792098233977585085579026148306243641844307498990897001238806360091042524739991636842159863144634824543204564217003132306816925756010021249778894552657792386010429193251260275727993194194076061789216715120266120028976375171645067205780936564161676357869959004364510961785136016180304299548995869087048068149994840608658792310988906016320673927175601686832608107314955344987601795315164003179902518773184316675270245341889956515163612843618654201730188639015603983105815249380063156978350554503199101198744213968175380007774304043795164789165059699874863934104020812954556447838348216528923874794161216643447354129877914779764860617982294313931810976902732399813543260799238972806453706806976009619150396062121968840900931823178996582370375909362179300477210391138251040458397138615091434467987820386868076353541039973148598126939168782649890791182215473591666098853684551566866336418520279421832537289337399553489393877246348621383024618644411115094351334791865158480837967544326536681310578388233735736812114209898607327307352708010539302553247805370260319501542219472584348496907059721293877572499136540640130921374857884957183391145802202532389291579989432943347966996011150164833254294207183651736639306634776142746828341774008394201307921272706542509031640885202489490560710316097769252688812951120790418098497614053183243422278214560499939599346270853225885674406323262282465784305308973176173946270755774132542610216877277738695049807243185357907913213687210175482626811138714133488289002537934548859837380913953524521683495341727077713119508668996792800089333742599716894451857303382797399465225915241847600741198900310158573377229300609379890654518530098978948729947632078417440193217313654857076185464633569022437225902026684602375426681678933643728601302588398864056061613561092871961294603169560585069041201912984611534781728063097243977978995218222592187699487563125225624146778331411133716688012873246751553885360632003290711525267184990354235692419355229735472354624261407575954815458263315315366221859564368679806382313964075185329872996946531626390328440968226136025669360517361175366395341591507175699214501331729175169420475395982317883357202123152823297251031827694840940536248249012830325506954158487588531981415822477894204391208827968858422420521489920734623310093535993458046453236942478603039004972816957813509192934216895027787914971457851976694885536355094685129905984766297719308265719278028350087861678851369484172389901106440302948166730999886346110583343729296471568464193164931335660497980416237332560434491351016932064581697419345276296157024332377315122292233664443762318299782781563277628531187150694996758984564273620754286785451707697515612119806964511545798397647494871242837764948584477606851307511369075185832035047644188169908265203630116065733585286324622275255626795345334668007338888648834051503643276000450384669967299347886866182279917388954729812314031897186844736489550159566602652669112488650071198246402268540254256076400962976872995612737279339153660986503616433689826844601502653188617409885888030486703844613827182836339136577743857583233621968198823048790669094119601592634854414659845269015828388857163379727973680799495164522534297229274817014070447712043352172937665260925068570939148434814346980809989609637261259866212055434293180474284997512248847735193101037906153302682768435908615190829670873902428509788692154188254535420128680574678227882290269184483652239856923877645676110373170069104963248643453508443240968591766505167075706368381537583001877255305534263298607091679054377240249578416106185629927847540026974101973919841345369775844777922721505687704852759768625362695590630556607511904658275536656456379419142103547398274824858373023809558850910469724385810125995307692968106278249294784401081545788185748036427443730074751227205204903557064371778151602528165326244717511983521615274320489724373058158355234860688168229975204468893553251421468427021615895787208048473998950412154844091587339491373887990518281213335476673608985061311054066960482225076803733474595765944789184175563206102694032545275867048728061342244099590785968851588553840443810887474323938243474153458578700181261415775029561784667406968466095904549936536327196608698839885479297725025644897155247734487816729016013934390386357051486078464290543949253840796470672590095156025094181278231748808969975556924821803998055592431776612861250902788208901647444113005616348912650586314649146476850894432317194539203458641383611460725663180611099067475417144549973559988344780083158225745214801939858118615733640579038574885106926781349453638352856676022656098108665078704668834758052987759409339110496798371978282560734286890517137440238749245360529427128923736768137967764541587623697571537466887073965577647477738453931037296304027850562362474214065654641449930299654748225098381093436911152749200763833199079192069339942328834383365254918259433874597099478551434067342481819647792245890360414568392547983776408497597820924737516645462670640973968072901091653310591087411919507834005548594743405682968466799607290261049444739166494207448820452254011146604654229792298514821522575409107324289935298488812192301676360618357331020082862288271547363700531088541929234945793914567069475247527773074545343023474408696546752700842605640208765377161180973601808978724751980300312899493676836936139113070687180407459117615995167188507481996513048028323029127374541170745681189971925840117459667515675890410693384387821234472322891180515824685326804427436514935273662119317382181395865558317845664606354677673490451639709168174389134508709118579633260819650044810359348561310135117791852656224568038273693746438139458256488161575298230130689244834451464165840866088769208387063796628727845159159141072681170483603260773729667680473034993867028244662155540626459140743670419038350212063969014023349672966135771033232503296567257940238666154048002114796778024318939882552771444775915323383651286410606680753556783050960259939264294961590459485283651552271434192551518191525577692754649747848710891558979347455240971529151550948866727844284247939635765367690604612757056674918803366303668643866586786580677624408856460418107123693415031562055433834535917830826751967680486638164726462842337054437540048854123146990567299974823840643903576950102627145682367229173183958082566553734731642001888131925911435450663566252650601615754629699860280477917712416203936526532560993219241190922713808551301182842710630783909883085685399567991580603102328116522334410421200825187924670665580191778003396938052283472496574608568154487595331990493470653922185591986538670464154740932397513097928592369573865426465098747104702287726513664152711620323533082803150561705730111517515796546807965644186025005091143026786963043073368807657015173894173467627932781717588353774363776945342687125317007200690452740198295547593407331767750079927210005403823490531549579229654477538185059594989020334583562946546529909154925495525602098456040082614991145854033734385151874590081984357886504412451182494277382045647898349615274738482230523052943972720222153090721304759669731427797772876440259512696040250226132058487970818541627627416322064562025750124152232500225816299388255547357760737433986281381287307642678854252500051524829895304598700077239436871234376154184638088011552418597485652168383781912595925708045395268236358515065753328713950403836462464020421854033033507246887932207335355361674296427372947253244377377766421488665232581002922332094133653484418785811358018883070493102204765478891539975276306432439056512977236539697560018571017847570821417164933763741297356036275230360516433408905822115823027384652861411024800481064720498044220918667476472114011620278868111354526543014759221610983376395153210407533226492258303447225710798655248832329662070336313098818755510493910312224036884805475587347229739736645112961595512630971456039319292519607106497940962905598524101278463702281721265365144961163436079936990134389039279789392973274231614037077636001181528972599776007700160045507710622295278944662034116961222712910307465395041663000337953065125291509743717658605346106051353791573988061895552731351162336005829102234840962180142696707847226028624856662514705331992771583994630876617060963122977743497293842373836974724602869629812770318207480623813991855457897251629004528454489738215340322594471896359979062080386034348876457143083851606797190346481468102000295377151340345078739936975649913778710083163231266013667294046970775440831412075650776061723427963296482593725772608298848872843638449424760803738595352736177094902848278427544892416827604057824817193339289038226818212661287924896853010609410477244794830637564679820778984353546924788406264802341769680460894304583531588337815912628220239024983323642050171589435044373172780270623463728938882123431885006956512064991803350809296519776344017193890548902852480023078958194350028313901266426079158866379601477801013725971232239444548068277105258616899307005106760782398648739765607972551471587219312830455837173682532468585542154719900789253784012065041653925349313563290904620755218006329988201162291137371355948736742702460812846839408902677345941875337307606459356839295585268721683549638274634774990326275016818419131999561497792528606981337330158642297136783681192274986031147242909616536634568070660725049984589423562746986096936417527609601137231368015574578852862029358415443721066010354959858385745114783866829087582386599336430983952087171225924279449953100401976931619712604190043622153056820590666032900788249662936262110145212546477274867285198964458195377098799619898374217339630341758519761868264787099557921300153556481733043096325244676055675144275035427904306841981427687821668413845999198112660797003348164702568548384373450529652241787976150598876495516053519987849669813489324883979593624135911663866229793558750487553855056280367359508006531133504325884027645456658690716580501497974085791493459910422190685628370907604292485416068423890351266911880789293181134602602372055239274715959907251582913375486897819308047504361127170648286139452808067131404315295567620700622263656322658384363718659952399402464208451573924517399599967284737150112931001453713220887012299243152797795531029364782121186730034634125347858963429019095142548518673716078963943456565282277489660263889170343254701518170200676500107368311359041068993552477171197861134512716549021362574326632975856622095928148446398721234055123572680968364992290588840134657447252179495169920250866670626076550554534371009649137096352616221819705403559182220479702355688529322601911150657754121375951350383882013457672073763689654747599540453535057909472063605718243700127017169484130516272802938563391164080922934291326742127668710057260321829070928256934655580988442490721008376331067553378628157471953569320293623781979176784587192291623440388299311811433529361763401294842725943699795288451600818388871194186783707867039301002583822030934720287673743169267888721951048535720757481766695305342144877041364668506373140772005739815312919498598542778817184484231212384001961962396500308481125621390626242757494688183684609649883677679922788850382634980258534731016510304633827451105219855821201505553789520237913466454722414704940677288023206197534174091102506632268260897827568094532180326951031673680508525214399333883082111101826890300172829499172583907932828538759156653797099995207493390200772322302134793919987287335081950679600257347666141000799379830594993548951149956540071598175267607073990466209666188223630860447962790820160511744189946944500161992950119965091719482049474691030193792438248282958745542218065379079468459968234721955944650938711611812446732945479868669773235349155549946310922801430094752421643675185655403051141048533666532972499676747371162187559325763048721373416207088743376556733760309777418484173761877463890209575396861568712144876929706865887677925414544314789945189299358875977420698330618116705867822063469871250104365596642032598944273603143556972758311316589733123184144226212384241223528474502824754567443235779980270177481110720216427975491224866059611587165329937010260410978617721771295692030661637406828406593615482774810321353334199997877888966885560187129117577422278896397681345708591299482093725909977292219087383976475164122649478687578612765417006394981844251461209018506207452991346305542181646251036203950402758627120411808516482168252753713937463828319138004393321953455191001762733008316423163188144737330366097713876263409580675671842149112688240104158220334034063473957370534846543161231601585743181025102364211914224435832989768938006039438034990411469136789733627562006881868233559681506535311931803506275349706760769730532586010773624440911741934527002427027051411025113329368156837721143356638327981282425402414515417873455115259570124666085546015083893640725622592829821062714456695083760156841065802907000020230530534915985584763554571229315364355944113612117357056189150108038041815882747939753998989768029073702179644183345512841671464009975008359062704724879678200004368095346921416590571303614955110410310580577740193672309013678321490771277393761083290550888211665221267106484385083390666396295019508773322702774805360668475774424893616937383293287698801861073875539006009238568433030396264790113223920278353166270005955827571851957095567563289701329076470384599842357749661064764282219672949996851503268730353890434140194641181316319678903779286882611311833645888541254903170376370092996966282147999939310274530113956909532635814881603967627523852065843559767544364387679719500040219818777616343223178008592326998747776350362313301928522560017995299149196163393431150989216834830752396014251672427059835878498479016440352645750982978689937403607642235586175433465390276237138864517089782134775010689606504414870594316942502527049894732398576583535142855858343130078807602738601325198926173018926001261883299570977024339540692003991144227220263567597716528615433262137600241210953781620669211877296275907819723334230806262422689893794157129836206196680628030751860731830316169393245854646475787253958227765314662181974100976921148849580474107906212050066803590427608523619292694336316579403291252280612078187115702119253523194263638051431009264889975265667902722134277183551223163625808562829471472708145043632761512186228839305845192948051992099993469281453415339495895834961076403656365973336829149389515438288958725727836805876654206911700552794524181930084600875481926364023842773093178624837218506041036092163719417832860035475822738511086537378560198892185441996039765251841907267478003266127152944786675271777331430079694393453800019842123992463329333715932373349697994554849999148528735893718242738757051038988190429552934002941515893587504404913981677511392458212100729222707349905161680613264030390061565763434102730208846810487861358524014979414080766337222434657771869863924201812204337110850634597318787018905674285002189788110650954640465172062357071443880483084230981833043423283202708308145642253536712112556143903976357538583376714955144373619254416228375908115439865621236048535451238741645024675393577838736805185324649363745871605562475652291037067709283061914442573925313598835294730368296775739435586556292961279984783319961114331070396314468326284032475061485839945419981909948349272127714356276114116253127967901091549661909410783270180025398533094135907543749743308200152910757162150221459461383881162976165101492909747821934628693987521470638164291445459522508876555952165443008209577672590584209090573558730419651349369020210707844907684005551885673688790173205221189371923417299149363557327827298303732730613771708642736426461385869182232232436573747311468133159270294335399267433676388065421947027499089762269762901617947160205373016139088581733333537969317818743904195254266885800854307775561785362150420878476996001657677617410272772573497977359018564623713389854355947276689708569770437221231107686957098187061348107735214538276569082500187991484478579020257512443958545398433816791246380428188734013759065137855222902472275438821309128080689392783135152593694527608488137049813182094084532865789341714004260689972062535125020037425794411869388412549478214901962238465140505760923384946638784139638589584399094377674635077900346651135353028952675522465896915937616757423131268810686913621726199633305143032283589212089375339789410653656945285582108230889555764004240145820742964107023670287214893644376408727149097978716692367139971760322958684589033273397465149638802193829071625772052106959035628239009016083802033194352395875508175429357782536458323655499517197877242146293697568165830878764188743288551507997866372257694233762407587284898573376139409361402853818003004100900171469969806016946542040226008534057225559641851058040681771979882557932878256696221169990888407230463476007137208059616750872103472280883656978720220449004953322350375150771909782225159309338552382798051339281011344874471530015382022522326848535413896559810750779297716461773484357366241995125720421529863801514426458863925808739347411484053539171386718186729526360219642676450184189805569662285314810300204603501027854084399970426986449004145349362752750868452968033580969960832701475320646855401971842206018805750160502050391279318082098609261839238512946304413652689335869670636934540728690777594508681333585621810447739208880335256403852962900522834005231198413537152268176297972608756902263008374712338378281721038716507569089078660307817491023980907734334235778085683389834871910498433130031769079298056957617636124396307674074887488069335506835623701291844300128068331576733286970741504133634258111115621039308990791197905441049025211530549871706111379916114402688135148095751714623968336242827651900249422775356625618080223199741591854980878589639386219705813003747419912372733682786377346237896899464709870916215066610570963374793994467905871326542245412147621774011805963647206363012273051756103341260786973028407335654098276990030816726138048004286735892927413030351857105865306813396922182088964927759130717458396439099396867580681350655127992782374914578906379233180211559640369957697916636936017564893618590176641083163838420307090529809329931782097922926496779468771652209711380123387721848829694609208953693947053908605196966976488230956836728225896302198100931627845296824090636185441069017066424521906214927240384237234254107641862655556223657342634188707369215460535468631967906797847575865625470641863518196293032201742162707454870186844455348037509660014690743749732355833056593566325011990143170399112358603177160806043725553978891606480052044143585177440483121073461705058292245608846453569482389517914152659275072893743044210515585525130564533634517728909731514130854008210277470039544906439200108301552445377699796979880823024230042971982317042295710492619956963113446174645838846445002840950870986415310042088403329358287074806748289851078804238164501741549411425949938942615965544585063821713439120426234365815214860477694988028298486552443989419793959589691509229020511854050388839401095041629339067876915367885559484786130447612171051128999921524375974833352199861017803416714726630548660988948588953119065091460810062643563245116189055067002917743304306209092538668096998084325685657730140958596757442001979574734846951295715918827741810191205449778086366888306361124360409572625820689210897967869473344974585699180253146807647986374525895295799412597435220758018484775818140788734262840648462946014945030286041099611963803552140018519592416047564346053098344085554888356414771005415143164079510660729757166220068823329409071618878348216798238645773279169336671958597918076279528521828216632084376255056862665790028569840691210339966869507069444511597774750328643261070135046656828690832778853888623995388134174946409168492589125354223419780342498932835089303081593785607324160748350538597791469585374850802463376670971466392198696420687371783144536624501145371164844034049135683191401943946408499018247631437910542131867991600176805921095921820766043649125218684269459996588852833689549070318658116809308426674653025887176571925144543567984986797331027785572418910838976145349798210463518069100967471881289866596701012645574840956875932638848291562631875597208062691808825124595426591379273541291607166904294889042795652104847734134986641467369472880641371943208762737013285675610391977296492202878434977418401328484367592038946068277805373091758967672643944323889193828707467258285170912778524992032348818693687045964530389327523106852144316592808451224283852622137641750636389582318017177909805579560857467214134852863153454150365806739507549685593139557362235262880876987575865708748180367084817305797896086057650460310487502847732011024269158216184132983597680402839367958731375736800276781792100627252349546171007688010424050243429161204723725721500946438248415794548412696249497862273067143391504525260799788288361548796707009114690755677909669431641407066145503583519838098184192242436628053926119452752197321858995647043994947539768252356663776604226551415523637774482049554323886696118138971631172906933647767024481257894794953241820126693472189487902161423004842926055144195651830559410788041263540290789318923867286856730100849168396571006612321148958866620784762533970489347498333480669070967305805189372882225844162343403493433059457979129568876461050024332557478748235481581299544641568325509322305856736089046087466313645912567924398918143769111318948529419371796986528503851664551681063464987237289803490380335079388393866063644560521417773235731749702037357637398939576527402098448191461709208632926181462897783266720979419293834427645166902641265188786724157747952348038484981112703112956512404230068879739545260478689459037020905559765656091198835849576287724124808110208743778784570502728709832281195243609029893590988147290745254277585300851057381439205905151169883823141409438680230173132641722499810671736359173725172331800118180822737362695031486266010301170080477735491963414939586433406448764508208585728229444797139117817707347266185254567566795127577673669403074767088589919799266433792027322000837717452424207995388628380959952768596099129513531976501359631589293178808103901559850818898555058427599712176168359224930419455056614638973106789578113992811346321891614424342383829971810764474373010017872617921546865251555354713993181507070503676527521676231839918491695647224314793684318222340852266942413483398087570524898884626669870064555344443254283798371544481406877536347062543382892574123984710482144791283597982167554851842043878539233682885462261876854739232639340551087574778942773780326266869095316413175305963540896348925278919797801888978607448751300418661771143289480388994244690676532372690052566033616214861641830514165858388812861519976666473751364556387273151881311816038630074339906252780185103670156263182715253901182045216284755682362455792662543448577007142021995739819259500860446432653048528344776266218562931891038890648728924062719376375364986192723657054578226588619017952789367897636198792726958209081274445713884187532967296037786331909220577337019462281480419630635964783908640773464894997048718742497786609077276437130747994287427931028202870612106774315896781578770819039755273378265175811622219566744298491293817466950486201329458729618269275704413800491999795815586837786492467341338447180311320097133608929449693486307032327859074392345476552403904567447662692727777117492746605517891185706750096902811709690888234925319165162923167255016294171306736646030025770716221039240383685248278446544464025649901366792928499615746690245033440330651389259406243943824663910811316563043909485774900907187317578319687690388100162501051955612894273141300175483664241072689032096818521369574833580053265049152535697065174965407211768311332132594450051604097061791424433112686001984416251665918173559263372234861429731208793811870706328884521719130332954686836308182740471078085172159558655495515723171321281603941342219410127498536657393650288072628403076141694472588585610054578667712958713939761240949083527076467348349401016612266301096488480914204525861139951528342503895731688196890667629586286422590619245622541869548291467224319671416553491613948253913613149411069043816975909923373669068940688353776016999610507289512210907124370947246829605040196133418469479203018490226757835060133797465863820702520436942795291094078158238874712177131440150326890059790006353861239224535348615911090816378165164219285444970532406927382305962982460028720628394703335667485909800525358796095142458153310045386668565898057054239813337552664074841075247218162738321534902425801051226700535444497737941399617592232448590855755968324905214064735331878802903629963817641770056593030447996049630296915436663299952915673383752432161541856596467870515596329472273818643929044067747739970173134576713306109742586559682304074534493927483679165929976422908311167569153847137745891744597426424442510452008969654584122188132987084182296644724234644108056848519246943490479214860783736015183367506677952710545422766635155012499700839271828031809867806379327845787526428253617130339096773208090572421644002699421129935643075826076251721415698360799541472991114867416541542473516667373956926169596114028255184861118479991926265995541025946981715353924562266442600001381385420495041551215179217932832776918654624941914461000693377601885661624568087396951381440454780301124633473673687694403927772159941069747872607904636115223486897513396459424756424491542603583191823058071855892585449935885178454253875253749358998294228328055319520949259969382114397786308753350001317098659196504959754421721102647333081111959844647427868057668733223570381984209767469962122963025453992395411928432335466459031791013626285542160851673371833441546627286653381042816641939904732278824068667874096168757956517515658051379932103476884984185254566565251703801838149214581111782969366462897903010334201077357761863646900078546890200356163559198241137334834412807444886386473147859388766183224984634524599358015591340349944871389917798723395801816015505544741111586888126536469281275742782161170730358337736218658227247678504816340629803489921471209523075592954966797495407160207602055694473402340614599016966207029993566641088734078749869707998068951321394894626766348911382801504349957734822384333599655291019175241693639872132040094111650194132919129376510718695194179959621353383468253920633474427729940828957037246486058481759543956057373137160309560963269327950072513032047258570307696482207873146038329428730830983793854509940770552091836329918778404671917440333668954847970335269936007559247040326680189527622942548751253221787065374883864374626780855844966821382484748792837780376804510120400430615103457199106393855350532331201428222446550514358532771847763769942048975496371863713314084928316836820820066336130994389680395958400314589926956028200618464533592229945285558836018972843023413213926837994414222611895667896029998060275969845945524581158630564444401974033795515796556690143642469889031335976978226578126710442406960441192387063758691366120784186528958173529558233680005787160138170416524892271037451289277716076414534039932774409896252783847866627577075696666103380682196269104216837903157813252217856052239133505666608489373953518279557056577674565296799641942595369734462900852878395982116349943975973909588342337318002006954805033526219717979114999187734887362619602372600884780142680223329731151046585424649841618784005886864604478343127844819638035745498575670782001846205733657563070573847097742505719731246132777580001585025467693572122947759071552643508438115121637879880550388009546575587193621108782811005664277629858257883672155932468822105683476759232871783852481798213910652190314780158934341887783747207892891469859331385652722920115116335546562179051632590842426927979986811214100901097235909765270020195845102788076979293083275391482266395968835785137956013467597806793480390110589307140026542863909520657219859665169542281977816727390237044791588042041012223609413914262041709047786282201579194933946315578927133545740165573497115322286785103122888033491025885493089766848385950970734834049207367479623794898868212867183563694363242139058100302513969352229288269021797573075760899615062033435350589341219179280000466815451247627095402554310146674638473377640297880104944402503120033033951785017956028004536056672883197669768302940148202164663686146450722191774286475454016091873021822758765231278718786077491021816691900762240402061971817045202083057436440704406662098060387189647264354430052404614149025249519482423515503828724698290722587442360355465956541275607891086781067348125342538626044248149436146360009225680763522003860669127040413344459046424719760908658537249798494984625846038240924263102278283833245158136759826579534707511349516375750301667318030507185050928012127439507707507209525528196189708906154876149514161825078767252817426744451857751478920614594553637181216013653386631780690905543942726471081073586853434705727763519330629652409694502236527177037529565610361335376481201493303600835795339255466097551100697549862608523186268472932084997004977001611070520804322822995261411745447644212567490305785455905267019108294530927092302698904318490784030461283295564437012613777477189035016918361092436439762129787397539898364239239907701232498965605692593946888301155796230755762350932373923290615583758823910510111904988771367853873658269183518541526690005597688047569707802776901286897984982139866380842904223824069990867303977316151047892157042508553238764668558952590524492057369549845996330077568494383935366974430518099035975037663484380861615597497091697373021358783221541069127636337454635310465326692395091084132269128058980404192924388866035389820004114025418919448092139973703993271730792448226474072884768945265456316345650129456830291159893604626198251809221916325527343436345802498651178946094084386456427226432847510860004051447994307430839337592608187079050774005394155062995076098440641866892167367503897166051166010205455063807817046372602519903231689773624440396606714546443035241399264442641717236705450710221375719862320978705060554523941820716551549310133379152789752224723823568492713019368371480364461502282107642694760071724130968762023833791885283467813750610006525854408700822064046138392414555476795954989918857729086511233977879610160817736146019254104044487212928306799694597257783498541850615955852110265222040860628024109158744561160726111160803027427414660146036685420817998189701362694914161990110760777588327615720677597155046976223928766779244402983955126824633130249803507261738036891511451533739007910377766637593906278269280949500264432234035431264610139994793392624250808929695442619831143032123228069222509522624726926295189665681610176865240202446576229113921553398404778701279704414251458325111705063469049521428746087258175006177792081725975546877871896628163485836978612429057923724969189489251101639228084527878790513541848537336462308423717536589609916121341345491046743198626011030011416033995231600917558328890601704445312321691564678781650781468440094186009725097737423258941743442497024108590905156051653608038492138694170666606942813491207938798336870189504168193558603054413566842578636352484601939944193211902202283622636746529428217633311016845029999225296392207275808944717274885474060973638033641889531107710986821581156695112956900247553737071761008211731389726528109551883260979699499675987615174316855677993862155056581223859741734932618237186236096964581824082002434862126402822037257153291323066645131973601520137813627284265697234815037685095774094617539061277011851788565773951563650807800421627780513015053835800813705661238584260947127128113993992561118975440667750702667395251241986264662693081746293881660976020658655384039762436491102095189603438439052483639005702066181621003384334195681772033125709760345829116549527317585696987169835136017757104039668074571439374987723360439148556331302978888582336422019517393520656615512487119031680295661362154014605059146718417285828285352509784368305538401522403104160191349444009750073593121631824515235399782060085293147263403168241879810454614822566747573334471598015932136799734299155493813942424422373500229221941655253324194526674013351130941407042315039168151642949921867612509515685499313887417166484217271246416812238931192468380992065430633401791234655256633583528960993699653112530012046513480619223316987043287971612781387439185527139909554682930863243573996010347504796669799257603929666015447879057799386114603078883114124974822928537876168098476067464821034126045504387262166695293848955623401381363191082033835730711791204342877971781968584773484949175190232473098993700739826580045495744207331957858805203661846523011110966861625597906432271904057163684882061452978605288634742610302301797583771609777446070259967693415635737011791838145754666591099096081929900521389764534486042058996992536507823212494793580867967129710447737943788957230943057468828266004159147463017481875508914944311219339204103243598843642130373419476475006976923591026308038153526376611563540610370094731979276082684139258991875628314048106228274465448086785198588938649033580615765609269258372781880673736308589652821619240338102648987661100484841377934426661075019339999325975029294426397541632181935946847541454242645880350255298791495177711332513459568074246793998539055554871001244629823673788261255940176312128364504601553448790852055843651021834056800027753649786186910732256895900319200817483802049972631598917576416176458446311394157723917912355166367675252192595801107857809407496166463034464137478965325945693246264990842453225662454700147427329124391098017379138950803569501332687039104743384249879400318714656774470467411356617640370506182850251501026884365034819566993424260139152568502555175666522760553931512326195516572285231932414794164345072473225755668053923036220019389060206720929784773391992002140201329327570197887152650756963082568334415660993709559823384635365121376034370153011858216492238534663482111126417587500477484878558083809092679361812044453159043162149893388596691185145298167335404854279999859013310168577806502927331394671767717866067420736268006302803638161463849618584335342746197445106673975106965501364829018040935429863197489714578805523677443091800498541708508770625445241528136432112163063298761046311279973236705657857793963474239577388695328435870508297168865140147868411028831203353992035612230507253234545548957851791499082076111870017026665661793620639542360145161462794550987103384570305090957776022784917892424153709957793182541225029033222928160250476777586235337664435440494567951909133328534067264429595975563145723634232130540428560472300910635684826690942949238593840989748084901294258881874969537975330709893647241101706034811865356968126206605469109652945154927387589108224447766459942696753064771699067583848348940109725188791801250997109074507797989138031270065590069783603987411735280859435560940921180128427787337570450047265447663754718651668038179830427183929237176050534001063694663850259033021152193326863794804876745950866374904273901107044505800561489241849201440433941768507380155319459244098373450525493739753436671475157423337127244756477120422678576474933828428933480684690193030058654169156008838215642342967972724372315804169476157120795487927436933865478579443825322681113251267370496681525314916596771340253375572471197216424389918076155846714366143877777020898983765395394601965709474953863785125643686745384310114800365676674642224195061785850346491467619009946021294454785977053994607193115055565566885623647593468107572251058734294279896859645149288441874399121651327051293804612340304781444053428511488836696179232821248455290097650928496164308606190962308035174947242829818075660868025986247224054324635606040355029458713030686943752773458528740635133485218576211943441604675845620936222674302112307531362994552108777617609676929798268888447063380478206698496494398500585261877201178965126711333496108664774273890932204509733632807795128932027789180733470131734954449042708168204441459746093942841228276806322054233829828360064639033089464423633389082974269456016616175278152753751902459935150340429699018782894727904421130202539513950875856420448061394218912831953363060880049445255002748536461116756613131354776731183941436211774398951307193797857695328155362338235679241071638500181447840973732038031085144604928108654608072765058079718009763970048186990874025668005013305326229323114953270847118590266735969954317251386086471340618166719323965143634346576785862325512896124046359548105111950552321049763428670244739219519371548673507687952530314100688757706826424644400655544812265178414660743074765430918448149560355142951186148161411569289333201747745795692066850344126582499254851222753464636668196972652685321905658900974484954307810000122940208707022980875707186513738503363218684287462311513868846042187034073586246373801566315207618765871194546094125943808827743471772597050297202374162836055405584029579234484842669058694500666251240379186568862055626838318556849717258190224693707645901271475297301834007410055237331095672576666938200092722935249518433204987012686480791786189685710757185598846488639950848923979873546199224850901198029054194465693585318667471764771195764733216036402866334867842427363126304280845213046578798242927947507243611948273142724037402705315405918519459252938925234163139822765068078816326228063280237584386839466402129945154340986785322411391224268457139393475819593523690199650677345433822414296083108386349642204788415502816746424948238495800169602950921552713720176974799787687137514638774140279818885557290382026460559373976529712236008201148025746696025404583278311174939537043636151274202272323790830155329208608084893399924246574907325432074014164710892947199940639428838746984577446659028464796805228872504657317735227935952071703705117325447732116539838471750201858501842265282944852635041907723584421610708146268534572909749049756043077236794532224202770596765323653798547774933667769293910934701433024251408113353938859030503699638846352369659620702060046001695678384049089063556885378815699071934631568545843915430431262752941234052747908433529274050359679574570507144935350687580746218748190022889557603179416196584457190443210864895595961775948230897682706881115663356282031094586117414635132398239505472177570284251954888492664328217892346680632305678786971008672461419802109905549925477909622513260673757465430774739588534963438623670016404171464401874976855919927041006428002041521638188897940457920053151363965342340464271626479162898538175990815006746906168694441659974774828368832922381973144217841802545477616503022850737841347736977586507134791186745104235152803855590336179795422538971056451371254468355257606687277582287170089511169136926428672424313505619283690103909935748805947015870373545081758771134517774481060817744956856712189828164318201560787920227007290238239523836715913476936425623732471774814128566030019157521234410426106093875554914164742806393531538782547194065887984591971547719302723155756069108729076429534486492043642033126328425013497505706819421424287770326394289196613735703691527946593882554815920989813581371091174473352318443775466537229949788694377084710959731598395352557571149019482786031677648755663009657798849115034199559359298570335821852839618073304324194003398023901356791580828245021867323155325682557493279231349927465223938744642588921665652889768519312973580994775742186408416083283079575371200754025789489244815049621430457003386117134109555061219606277673887835550263790052629836208754219744705998916041100554064500397546618100320842292358333277986549974647671751059970549051134640885891721893954727905811396190172884097066203093602332776340505473742967999691920318628364077040307227355308712143774321845383688858572498254130163786473630343175732218828684203852513993496555852394566757940491152588325437903062580265028942595600175524847068435935284523077348004335068218258720851019559147657304115639697135548746768704064890398264123656553454433791787024691370178087911347549857992449031322267504201456006640284211228721049414460739123091084038633272045942751234517132531953019710409187635785883909634352580436859969364409485647102748109800552756105312238209573195659984985756450623657506517966560202115152307027512902856773298951176691539900717768744271121488308003010460162483256902450990370609825424428935823364515469682671591396118521141693371572168446627042719860548319065174108595503867363257178751962059134113897849078359535914691204411113678395772434136181058169759482677584067982176817104073237129380537897920376095190015569665631999934328672423448419282852076555026106328664639578044751531402566675526167910122960190156413657625087382910028197629628598978599991466647823482701123495036970765855859788156330585073408320195835896349900811545690876151676590542114009467961869996260605189878455432780657938151348748970943253315668548176545421787443263305736341374137371402996949742945930409267853947894726164178008101027273825721931176801927395924635693404682409394859057377348898003214866143296652347608498083837436609610043415915860134683990322169849357036827642559369378177558618836201672762717120823717045827838268707735055359574078901314985152018068586036571905214799532922416712127603994602579188430304999904034512907161284477096328694663226671223143452735904720515941191763891207375881482977508406526456997278012916150620176437618075485321838580009320101892853762721204439008167654147713878090260737724385213355374208170874945512607639491128693016391435095322300276180556851935764109643999043243450422493408051970154071056490188869556598081548252840135224226942890066679174700797190414668191908050824518514470667320058102218368428758945874501394811082394036117269834916638574525987156019314946913204371030532169108179016693739548155405163589612155169773175927298653721699504202840204351387975482895277578198540346114843558270238242472217123942467316511345918827263981803858639922172447894221313260014215872909545274697264807959796703483277046044006316517198638763669291634371618784280090755892918026734920440582872811428474472118538359827099417551216026596097004041587632341142775985490229014062067625023747159717301252604466428521427160851977440812682225481155250714912761040241450623633531093056319949601794188836754869658606460586510341013629256684392584933421515341094367741010826329207429943461881305710730645783854739103591121870827467613024386366582944137097919744066345940440697619323282510793929914892425966553331520204722943515913086043977383754752980734145942739390011160651386172680626757160760079324603046523904998761593269477546406280538319473771308543366178402954852210384344972745765382841378682496127460387973583820767105751208873016564064099332078059219832954753736233672887818314282064852721030884282423244721145649244709238692013401888784881357401927737202843845347067187034458177752033812832835341375366444799408626569536420924781127422000018285065163651651658603084183197191686140680329181070825340272112493204896413746473393885240199692623099251053431053429894087869800597207796607326431696863531551509621047469714498808473153339145444418007909316959600610079008121004758356367557138864436613799335986750205906049169283406586068849506125039187190467942539172404417167274059626546177642760538011695515486717765216035967346454776762428892644570041000121726895575448157483768772670490265558563435391376042426013292699407751197306580082727918791170987849801499124084013978223148036630120620914684506048940492976147164449802597842784483224457647530422640351580982169484870913387694462191972355136211922677562850586742083649751995427006710566923656747986571998307646185432765829403438472826073791085745816629716397284917629551429019243685042151485080341608495324400634048365186493319591108973825862731461047605258409820845309498695216947978086638173235721220913665233055653251274375543765773457785159493526303646013490755911626298865762698281644819140607047572678301839633107370357715686492971772590607016893177705588412738026159498675751220552518099905167169665273731056262050104533478948757918810269642393256322732888214822105479925499614183029003020802627375561435118674684127332325422343305599833593285657427996506425092554939053619309482882793359720972660183445037814810045561932241923441384873924002563337618391072789409643211553599861718039918917149045475874112393475171476920003414086469814421207924219999385732444714272345033983190231587119149613586760398226908726496590112028801523449340806279981384567760556187169865099339503885210816621411481217646185040309663741935369352739541267719227274035557591311413588819578100038682188659903643591937308059406168086223200543454139190066221949414203770817077578998396355138342899942552272636412578407164296633201461995699541028862957149651682579790372358031805052114869066275394786497995485596501363467160927245565366454515680507861213534544409968982820511079495741010286773657326743570739984576636496631416004455696089508524001596410763008162366448179841520341497028179984102625011394024443438688106760481415675705413455350134841596676373179519883042678192860249305832802431370042858257071557132328938099568620563782741482713329099720657311323165176229849255456670426576463300840734166497544901916840107069488698362296589530048264984397137130582934760127287648766020192371957688932486517252412829391957355857490589319954013888968826918281500482861678178477484852514445039908728115502490485766896809989397633977791533189593438983204187740668996297304678389344858575643891573157344905813037880936520324355466703379607004418236803303891510669278906040659878552151780831648499289310668238882067906432148827865554698130931891880975850441610660544471994296737841285183905371474143006301952465850053087569309335656647333683308160407433142433728154763112259808804638374477175130441807697758171445926473262202869205605275343466328856842884769062320475053145441340693151033121137563104221376396606865041899951258908906043225533712745806727238905210433045709025029077219746885120921431705487930757603511909568039594996132139002689666533645001194013955821647708832811950662185106638465917374137826931524967585596177045295956734026471480835733643557723467776795756249952065637671928517125387937752559124363417170487565894696652883689839262657364965081613768545201091580343856383155989089195334026651083950969283651336752144401459925757856997389002198557321959371674196874627342987563190306366468237028281136991559399353068497231199037766666225900871052002828270262417507007695288435525083390038576888209552431545734297865033609229014138005346544565217155885687670457320204121339823483054970312340094118142033897455078138578177880753335020400509251364466776271383760005519301685144516796423094804825113882245451064369610707680924462668116864276707680611137700862425568168331222579598808101432327406908385839228512421007698531021721136713383477242856607988689453340149384775531591124090174688179915229986946578948954847550365107606987613720020785815978587748602540676620157090561824489858285749777691803925471862598405675830480705573743614182367766449985410029607993487785212632704116536458704269871040875402939663440811081300085157710751307303280695864857179777025572106677526404081686130927947897379340719328072192225700649634844131687879294292521775741357735109297230416229093503662985387765848317381238641307087029696582097153054302015581755860401476802007394008783223311861216348729829476385031423756770504369251055412202271360310618535752052822466921072506715240408022646464469880003753123602062082299830461061341525774472197332636704057952895649217578767116641615403997040609179855814271922641963624840791411286032933097785456014766476658019357451145101146269060978831268895800206887393991732252425017196234449243721802496586124285181682013821932033098846676592015424440313146849789796029013123466290994644191250228355428347516074913068768275364947087125723938122921567681499192878611156113693538512141536220104946343924696185536818222159519669094367692596824583602126989955198066285317208245324570313369738457892428949809861917627768628478197072095302793497119299162656367799413774434524429201485039654990701483405601724478007634304391206203258718638075482369790258128729039916822747285382947868485334048386944778082212826525887110870704690656912370567363003492948200101757850119216546826220139041856450594558552548939500861131490440862288039095441776504993417166164252756755482866800248160710848238433606529490337139057521037984183680285645793714289599943659829715044365391316769180964945967423527253907609315207568574026689687698894108200644483902977067347126017847163171603930134170625060733997235391426177734097059160899479161234612264462729753008227000567588679802093228021629777327172761192635568106991121228070441129112005278334028115270828106894340026062234423205491949836011214697834635425789944166603210983926507820157462742614610555517281397406532696245888505345675726584690224763421966617246623199165841922838813395292271798097066954097290617582606421215882684283726806427504620448074862232381363983462481892179789325493624898219499015409627921387921401710801948836642891046359139414571994846830029397297439703188381388360017900911015565261294264694826774546785814534959903196927215555587710903471591270876309211700926880343028546960633191047127595977412342672268840490869981106204556783880731102203046871160341469888967459506775590021565072625423397248847374553953450632278431872189214503076555538049318262850963284637111238581802554109686258933380946210849489293511376190015581178568490284511777007698987134736957298396997675164190254396189574816511662167435242652573999826849272244618855553601796755554725111904526408126332604604052987996698681163303981797661624484380967253396871735246906165306422731439183987799113687752166677215315077976201164937119490958111740980776505023610961954160563838486785380038965310607844901125694104839727739509897549149903527667544968173079508248082482117797255863583694654963610648725605663668851178443141105602179371471400638987826182060137309753660242797311595144776770354983285374269330203540470235879062215444484474980409743688041291143408109713225476073857564347906996283336207519628322254436254321862354749877509676839436331252269833005589528855273792926760640015398415813495024641667389178661486128453556831148369350146681558977280054628665904243986346003861993882165821421328397673519581610192611758206136795750554599197600092467502567532919444537553087150592495588146039570065003966784217297145470520280027492581615607083685329924725411812773865977007110534903208644788150210589206659459142818339591734773574737747251347296160793580303091206532816551497842233680101322447780483510552663889448032392932601643706829887973418218790175409792796227104948676460483118907942283560444777933204966076207264496631379186359614765860765680099140777552383431237425830767407916728867885916145953253181845707045960889239906165555416279700797934764980466983957421975188178600991442810706612217237684825372956658401803590208209713998418081026651308037430088591178762564503346723480911150127206825974055265832695086982719291064225328646618455042594354346701474835882655187703152104897825522384627298875401429292820792372439651562472401444380385343855762098089422512408993125732750355293137568802678626442290688995527979448811010774989408623178409157876349355846137818852712970877794728186633928688731547563778041079824081248202652348043364564809787574069744566655615031788564710616346530285815020713775522161680695222229223964079468029484909564177641703526567410863754868049297781247600507249008097815207140276720022357518586403858927017378797610553182966166535479223948372895894146803313506284956014311270462883811840809491715746989274850861478883238905862670553093594042754798393645631965206183345498139395505064079280864979768317868761652977098433486350177175414180708529945220630975994643430663511004345237452690016942246745857702915183206323637601988860657227829377301927699736990282671951525011968209366438548439133803779396761653057996068707295456207197005728864136509940880983988196464406052714582024805532044323376803549152141471505620941691051567713378610100346802146708341463636404272620049653514391465437115493567472044610168538782567703932155034733790205363197203021726909711254041467671053609476828700290315970329563096426848492894413000018776933582200274573593420281266471811737045512809345418680639763423273569607684704568548124676649867158204679128991624629391331799505572410914201178764853250409924974676913924389013531565879224509929978008787555842877181075070036186256111663081464391914110177405930734989548380034767683945110599935302775402035397759351285021310200082123261312551922373965791064459074680578907466376881722936554581785647922270543655736284650093300015971280715146340752785505570299988944338052914888606503558998138492228656905464888979079167519933841107816992278494563542026362179391319884557749483252805006370402313663110705139000261112503286499781641225106156891865583652642528248491884677004854786608827874101372310086031368819445837439616291648435730098433411424401791464365326005464416122258688579963858537540751622074456106966737315216947079558415122101326686052738137005508767739294637735111885568407998206901540542841225365848160583261075590259899424099173260130753872663839559586926372755240013606141492628280065503329610174176121680762819888099218369034721476424153992424788962265618143447215824600865058356560619350991991519246022295715626762596806956578440898946367495763893465734888354599048510472286726018785818280640359738116175127455857877783991629890590473962829930616304816621276675898158545148547271577020814808333843830155521010888155770503167171510634804846543603113704343318408994242118460611538438933952111721670360723128056830465440488708257178452952505656920393781847440854629630405886597807285655449113354138258582114783737578541504256971579086854269281001119876038709312087320565675412670938714355708211682735165823700632389023910479197927815372452116044448237166118518104373366874764636985298433753754195634181402964655293331447312167368487439813629606296058177401726800837994947148974921363662692522701041873297359615882287292574622915594678320421292164163538153903308263640114981325081001308077176292293211242425036774636129473892413644516491249648305986283405486190020927873807044815266602010299450924303690710277437629490362757230085229378781874667617279468377751382065623722128806454297177357878372849585107136866391676033789960574818976341456873786063083745200739686272655171404241578449219331616639626737809811538320084778130638102975443502158438756513202073883837023233758659170836306909903079174432348611970016990031111413921290829966815029996605305377967062952112638167966008013458973415711772647735499217499644819317936219407995466869035210934643340885802889664110213889949252864928986685030877068790407191610862698957678270828560534324508375544964346927977302954879680675224532411630759565655707607922631661279279150026337061298702024520877320697414482539930999310002306132134279379816727353114890370555119074084143282439155862838103965340087185624207769159434137642471335234840838838452946760575183272752565833041147256673336296793362362066739625465615842246641791548981880442504755168652166042597408368999724822700347117521711679212215842582421092328525719155385823170368160359749195242720707247033690788462145106628378229821052964399286103895426533547901376065769887420107946490421565233487227287223155340362029996766894961557791052617181910935936633767588812716784204995321661015375228195858148718966288889557404021343305630678032504458131417098009009985917558622065305538704593470483674317427639636527220893445241199461160845265797091051355185743253663603200199900526637738310953706773903589915189785919378627506973351694416409408989416061157052866640467959078670421143499823764903786289536793236086198353310508384331544740979880696641791716747900745694216865929479658603556725355398792289453538495614508727233991835784208360987627238288999579861281783728237000786203084174137863319129454304706722387663815370062624544853376916874287311447661234500000303783569647823756922703838227739034222620382485674776566984824426301873022847611130570529005012146354929869775190279495621579866924800335206104852380885646072164642939621706790069982079598477608416588905802158384819185639264689566023317128499829930062718262309350830061396632406143477612794069364072523927481197999620665114350923562691342928770144216089911020087195881469031830145221568898757800010532909427557107175453987210214581797999397582232943097092545666990379593157282623052619966523814525700544022126532968881195996563217026182978235476624693322206372767691973624072392652404271503783820135160910255227728732697951293189479222353357857216512104530778198969816582090237667831391441121353768074481333711674857465442590559088058015177559496876362702166320858803823098762209777941712738619095642670197414960511933857084208733951208592013304126352182711958395439540707712177156380508974186676272709569041778934185029745823352788914237968649057310363231675603446496985568195571295096334782177002206966820758379536391203799300487809643379309731710588918927597276157658583171460966921511364474634520140827609595724596225146049462532318279210545451144027810060823013648842563686825436717469706388367556847085867246060837112398757714722714566569559792537886576075909793076904936639407473990145906787459865102667298527692954128824336469457779241298566344808252027828393760983235659660628245811436924761148678962623190212407036209863622004103547302958483975500019394694490742764516415882315278646999358154834167956259578370234530459661118114382444615872368326901719199893316147500706943763405352282747443954913910162814217459888391181658771044615754317780239734201366131237247999511322553954210468361456390692078142586276879893383457516270000435386438300659295173600228611996482647334136890742572063618413566239565080025018853679448741654929340633589247174628883129716175716558454635377639454001729315823033277054051290715544152973657286610294968524010614160496606915192379822268597253246206932792820575460335837661941563844956591498237841084605916376059858363835970223000500042435420790502322821337910833630690341344682941059486659689785043966371183672485054649869737713188567667102724960757597882794936041730307955794725475689633598642507631117018944259254631562545303594983799290008718536904139881163795071372362920763626405552376956741310514308046770576521919028818566561806396467060864747138951921750359460910156891594443445244348377531624888907186844050451070213583136299869658228254921653900601901121146554386086401392602913052800579924493434192519957479939888751967756612948395496124719588902319546723682847202718439678023547421040183555909655126039217625367948676899422261103837779302755869846064390840563361168638848748527213868270647941695313668973098146423041597584416429448402356342450309566369061857714397448111331679726991074359981943669369363187291066676386485485047312685438630092440514102129492835545550512761150637703082307251348197473850912910770853927592359180221528591118476663937397791645662383040922774547024565156720648875974747434676647238389512641423027968477101556356566862271090356480483912695746222256597987558059886199973073490752949753673699487867589973786885101247759570980316098647222087794808236745693788947274459761822688989553576183964688373447039793310787937787752906802239970455581419369036248088480927904725045399713179217673873720646969069966412614638705872998250968660298543555848359874175527335279575782893995568197283609125624647999743600852242638663224265096674304542565453317273965053964194666728317740774947344586663907464662232305104073442780648163196491551204530170658754855358256161579004687067191679715495270862789041156532596100997626371451789200640464915216795999061521394585467068242640819066984287430197039704347952603498212556275854125170054085946140535700751747949461874819117937060474811705596624139459863525475514061277262099690359962466657663703898161155269779604384257130021550045712997802408486959511507521130466204847082635384480741289068459153424615574347887005460276981169497223268973046045309107437912735449887842063978055924543919892543936170342479661269340825364733708913252160400398168786375756009622189394831349235152842419511601012288156742972360162283073650638515535602149574503137551376719915153077816484967727296336108691507998514470247776363169930126830620704286322077282514561856922105524614619553679641796692704056574235698308298387013391120800831581398593365066477141386035831169050735374723124430891651540820135483380341847190113195337632604274956882920853194960344913964455091434898825222195722595665166598941476847029949460151287227462158047514053734955901872051757494378512455638483420232076847014299159620015050779908716112762175090640210593692362304451340436254751994210633268826278383971395832725340129142361299140577092163609179101188903864482226610011070850350835089393496876879875394010165335827796413754394194114944935059896013201257589997650384847823290334480610511766917299125698396910520611413489550103796816125061204631247225379501557773337095862937160763634006803290614594079759617606283008614661774738824382912389752602747963078650936167715285217375408541932829124807041490779967334955004218537668136983423504924432549128035282118671524762002418821351950841168167575893936100505441104315536467002929754889680916878382970490186144054735375411958738910813169338640510662164970762774226130731849934125992617920320762928556243975318145065698120787287411145216306946605283565812915964481026950005490957568590699350358062821542083895942331273437949637424478863837123605898488291795887118643817551192844544082792464914892073883510702098608431287208962955707673907919002457428008122694405413031772048381237277534889658467315939853920826036111246964351341062871140449187774144714415262776561444049148291547909807766397026168736944209240589118589729966259722388709993124953957801276139804252033161100751016343927716736226055405713893366894625515474748817079975410041914388863206984134662688369421868064187820856844994179054851563818698993427393045448207613939162936973432275451845886841864693484354682560640684327362744909475240626210072698866250347198566065344758068920345500618169336530269704780114996472103814893164756822427281302691483632457810958301371907133667049520015908145071006629279470016283102404536289876129542934835522116447690865336328737551444938930427934217060316088905824066697955947062023404404314313192395037353212830690024172246166125263891675618298929234346959747855617645810896607264971248518465098258474259283755460564764121035041269476895334541844862908721141370782360316067919006138984708169758868472958189290125677813694383237223983134282258034222632826938638859738532611574773619747628792768029198734552805832081449014334185808176853378783637961213065126054544972823636756498208198786868782926453409285052532074910962136368369188412093058228622301463343264853523144308931071672649437230997172144841951381341900772919004469614262864004439112765539032430150071012954008000081577653475618907794781444269971945274490505876008730823870000913890988813509403540680096743778241161813661394776929776175413305058830803012404971232698464366934436034235527638982895908066738449842839743981448981035548922531728927188222066765945473615285147503166924327727153883896079427007113825591170163003266919552034758090936885351549158757315731726956313989256676708660831572107571291045713483605409062929990982243714000428703239455099515228798103549896637912345688428083979351892018553815484787200369684154984243608511832601655839271983842453739736130703763242613213418180175079232174955661688823720105636332221698755649322536297425567896986592285854850253467975459890109356297918358594268393729169443441141391453701305821485587182589805048029622987374386865829326889161008153919818133308157978476987117893389145301902815603287453536054337471031189940024493959443604948057489972921462478582535470961624289019963632664253723882242557388126086420922151684524951141874553707807580693232022783238394117033391174774878403908826882840633862523391328248156189535036985635439587204197680661741614882304271653039143233984397688016106837076885289563443990650474293126315015283945837919127383228940228490275484157109489438502221743903129322828700827115320006630925721971238479003743449905838532632714441590124919277269573021813167027001884584570816124109975911556972939440131800035658043350037075202752825340959569970379429098602826755195304562132285482019217738284629274058014422538605675015067958855571305276150150292380007474147083104736313519182907809059012462425069972061052583084246443149565168907047652477860832521796689409088623278081736125934647895362960795298713352142583124577399855238991685230076215964755380931248830143445682855760881440296225937619399708434429603341958888892670181459941310330996971917101805200879651876359113103592490311435091605568534037568284153108025818802380558171832141981760751674880428255345451726154709313760950789116571544283475258952461950887907718869048295575171084970956654681646698123981224090325186279228473780373549344655430815426124661798085791557670628061674263975623482453203919617304957350044205249980538195914131331424524427358314711225701861002789262587301013519322346754331370540223696743134450966918673732595050459526969489971168341011726947870424102596410869198894430350970896525770520213281246114421130438263148629320175033884357394089194632552689504425883537402008657976188031970508833984514308751377328708206661390941984114654819646241540084379176058593790831513254863066605463978382125983154180898291747943433683536259673780391352834629589162000556533955625438907105680591306723273305696878262464846490384117532368219617296224836538360774200800368809408623773538097583141193196070367875665930009568092353148076013379067920712955449515940368186359260466294821467367181363381714677074638728318339042564488179224089750750322303877290602510706882681472956975217683474629436430413329780736747398520956144802816562214947025396917594300641253266504700612397249127147098831246218435638083155597105157558078044332024163907976898926002795925415269646469935890496379192286287487558257519942573752436369866500212054574401482302832357102901018090720281753546049900626563280884432746174074148791816407844302556789561152001316914259919700006464667994115872680740988852391480780354712828627092381693457584396598282854643148125958012656955577644708639161122338818848282160739202939553594992310366407990678899554364906647998385802963543741572170145481340713940944475822226704647847754927900077122655628275489853981146179846158713590955151709180690625447328790770542041644470959003139521476842325533804645550880675159543784269169015007974039277371375296916611572530724066967940876801871245669907824997649602397872251420876497676808572791195639951126215939738691112535248552043929505221324314706842459199553664342813980837309584664158344680050086920867759799348845838364794785481906684616481877342788555343613562399847096994821395991383386304737045182143988500859627774262830511717055222939026441015234123341090799915489512677595450838364049579295294684727218767921038957771853648915136622284946318935788493842957357893606478299976406876501147567850525922212085122327392741069277928083830084564791379435936941421887981459034811127081903603194111438534837256771890793170973792518246411877713177318070673353597315285390370103184896317186536011992620148617341160387058180722693567702472169425670055031006904860489150732378529343792363296939270566231104861424863817432480907305643643331342372635396122458444382343224418975617109210519534072602810975842222327997379629824082801268545410276996370782228322436510467533792846057761535255236651223724035198231581575098582030529527957931040224868591067165625245436259114830687703918546720582523760929975361458415807280140013782830942565790833295820377565664833662017944639965751519854078809566218701478179429842332538678926535617133164022087777888878362597738239335615582049980933281022401409731294190504962716568518750130889198792453684611189587888699186966707694643725359515878045103982159010368317013670733883944108089998069647895254012808165314773043425602358500580099899973653534982525873560377532015859291480966553603341611891300942311392174262307983007826352546102139973644208312107562471669214387509770393671635032787063156403086786084879290416451514310835489458053887226975336140161858927036059740414795784988498684779955068123629876434847579589430964280710878619414911699702433092575070844546592248687060851105740887856513807925219871946612706875983073019338930141382439625307683921177724311495840754304900671182064731062493200825843942386515878559641162001820033012909147229036981757743837896536853788936049023224822637667632041312715539749842379306765860455542102773708171879023287048216667391676802479192285588446642185539970469536524784419699895231929157725716993086811166165269937090671804315716245358616159831246396422675987214289915685418714723924831811364193776369279286075288168318955404247267826425216022273150276213850463015296552906101700046709492108616393935412317019263023316043202772780020465291237324145061591317080459458165505691649281078263967374549534987068362568192264941932901153659109504788163175432204640850557086803514318777923227484477156259661821623150492724586822952122050609321677646371389756054313889699374129828730327265206551071278851747666565310160064179823123907806144502157570351548526808164206866126227224852791855467579602552113109490982625121614036329887347689257520315788061266801983486906949435123939431355002224430364098235805869743486361892285391470965420807997070996457478594697721608525170622476643419429290148833082051479817538947015453584607597549139761130401099758090508400212186253356392745518104724577332933645576239291316775256235531638727812071153740620306778969533821791042433081520307868995257512608515029023264398257229568997775867252528557510755260986894751707990991286178016390306887487557654050784448351943592547758795121441238905721254980281861375763481381530206841511443549519699273284606718651083357647371873291550882353680939467407949244518415543764453479127908467989678459229216594975690838697356881558891678488197450788308645232306540564789003881752488941975487252000035346205937538135248091323217441014775320245400017106422996937379707639005110568706856780082877227499905504609275852359310772375570323864290714617746223772910014241986834822810954128249485340380752911883539751861103641803052173372269048976540198908483505816717472614594013307689947200801417724419323152144648224672458731797949092910290806120472664363960217780115872404777342387299483783070640174092598754958473635414707164054335755195858188272412751759148991229745851438224719887566956679138361102599143699965394779148261778680886763909325355578620589137821292317871880274480704353136163415937938124343748286746370911709577585535726326542031369163496176751620501334360097230209539995998411093369553108865645601341172719131283142580924011324242835768177056974410483325294712152217147524820052748241833553336378392789997898427519491882507011072824544734432535910687456292821567468547919223859297227185080430360914721278280066244606888555653578320388305209112108254798473928429909724970544314417109735581957829071598669208612338542043777732733193777372896895482190443077001504554936512881135597713396973568081630570165686855142590173698495484567386457153878270498005771227465052712566771547658856901756459614441585592887635222516314807172675772396731609615356996551500478695452689898378088919212296779158539354984842177082464605003354807740375138266245092994441616548695002318521923566502428734232011061902742917384577576345237198030839935186936937599604717913038084535297059520877050091653735551847896884289710352418690966727903961179074077916137785495338621909188014202239383793734787455907005127522667418838119464449320925333917384509768084940745573792355034271381652325759440854172574523520505588600444913895976359371163188729565796875517747662599016311645667893699452885711962970231217977908202458550864943880913289816372318757981636908751331497175226114936604804211345256263179299148752931772047540552382789996058198060010278199792935312125115222840355059679894733470206265569268469340275090425976944799767161770961438389256339284138441579211346925827047162044396158467213058102145100690911551113741833101457200544883808049335116524589519058830531371094754102247463891384856929405918508015264964576196562603011575321521703531858519034853930402774722072072398799639238666197866964737352345522493172253067891670613098308293635138474059996421561005160915004843412067668720703642864923111557745996192684056707190019118159078341665164427357432676856868537608159380197486341135698167332246556722457707238478259243749619219969040693637340324143659430863437919024255972627139177510592259770112343195834515414758738066562610099982610770863906295623095730710951664532694648559085277806785037810020968978045473886138221408451865730007123396168996561623844604239105870205875403193733444686530912610736095293943281501057566563788524348433894749197612752703296054622540853053707162625572742803463840408223612425021778730067972963437497171454250050761591756769519068659415871574850657509161219698548319207558576324396028258397662362327090162044514994155275719947707082560449442704217791600637720832678886985637711348580203741779331359781990823123353739151622205708416189975127349605295824642025704416786919425953125312652481346639326184468846963345543892959896503775591682929001849632676616654300734557146088184346509235029368069160990029331384122878328265814263239704335101447225678690676914150293864795246440310323565395133433863192535771078910301730208225249618821829526216838437473254966526377860482019031437448251351158963611725730221166341273458582889723825824587257740261345864457162545772350771178914759224360517396406075368115361177403691419568161372231563336040968683006277939448338395622263956570842597743920176149090214753664136875258953539249175183399974720249315735936326344690370650335348627732013731113556810838782129367419879542522627341222584996771990643725916438599751629631638483176370537875603917829384422189860281643514455745741382780229558867762439228695598331490895145794720842854145835423915040881712778247969467166322109764958262818133654396542709193642736504719880337491115261770123115006899378410009847486691791578891714994145312996620764434220360776354814859939313871040239168942851576884889057065437062797746168841259615994792439465001695784346428836016509792887660997669434704511142272505275502369865935391037565210024261696882640858050769149054337529656252622104848531015919000686523612760972354550977032776352344953816497324039519370932171031019195231780364909701369889299588737706274269871274530438180200552101928506373677451992004900914856987225514783333200831713275618093113825619368933054040997589033713256243499137674450778952710473174344730288060126850229595759116301568577522472543609831540276758471490240677960670345786015076334165940392350314743933685903681953149810474381173862656432113019419250876229255800184420337939523341283542402044691973349635592844887502269039274920854854969439297980822787823013566780056999237089106700525812928649774134125121855286088350957212270624412927511764368377578258059562802345094329023224470973511248000972737798682995933266269941047049207612893569867594329645226771997537098992295612264935466347053349120386898648993916780855449094438870930119985509082450543741982614862567859934122445779649734691407270364339535410206614360155224884913706555702984144855899898313104000143663727651184445295052288662231409046592658132020597920931778662194038387508426881617409967675363077538850589909240561563359390268842665658184592440391294846133246557751122653514355434706906257665316508645726415110979772362976170335845913886702285750523344980801858142266450224661211953570525815321040912916785546957433670082311541926737954020304926594989508258892217973461246838031290341870041990272355555393612242213201756246433445243847809904617815132540990181678442001236481643219510063860630151537714309967701803886027738620668706076892461935278286850290320303207192634034674203735746803808827257090574956954432614193207971875515996339029900997821498133202984280965636012393030382963936525956355289748749134878350285193912152838722156551725018365966774217371375473399908321927814104639592832986228927926330923569447671695296156383507238621705087019050249392968043120060670791126890093812024044733127823582011567830748525950729756994570716478447085384141499667574946788907004402963031349367109413832040776469616663043797574037261822363429123258975366529453208295135085858083745314008321114252725223060743536901217603659166478065224191794669946695750226500118854975655964258916101529560499994459937219230267353537336830375753563898821254919917517662381102272955108614414575885763974224067309747469805338900614507700801306022645203417177692226937331523174336497935322583270319083424989754899499949252707811210950925247380844373252984518814114757058844042829731236108336879330421170402149166833448906102811414961101193090697225640108555522246518710782046955329369084567119720981071049224272051796821111216824025912144223555236891491995707917007068625438306497977405797955389600068585558925858952040555325938100495997916453885107138915259314335812279215610763432076438393148882618218092615963612493862237198785932391363791160267712214156063490223274562280249784670577882277491765136200415112863264547697349805524420614188213939057937731009877298143190009988808537144431992251183496054355548556881112245536866589493817830323777164936464187021767724167001642098902524510297138235454086034117185814602691162106300699923724656834270246711482229407978101147204470140151935765442053578118746467276834906760266552983532793035404118982635059309597947905062033386258463960203677260165758872909586262804574286159773703400886092745213573586330710689006663206201251453624686889265195058106652052530625200884513895135025619879607184328735406900211459840591650919442400365134680113128492911845969229374039963419371682618586323735875325529504140358712115456219242468479033829458680347286346197186667290788918622058727552636729498895976126472166795943825123684314154159513848276721237151989780706197604276583622713782189182868296842205414003545029915093854849899469476903248721763641908864756933099938360900054493331658283506725037185838270458378632957842985569162873850343909960844456040921566554422100414404736089633460445816223084535712951904773006931119499920994309778544318320266403488140650991016769643321829931199550835077919680777532385273459761879764709689053241388308159380282916813092473768837760862066787150398964687562031350173461635322785995554515729608768479112273262965128699235520667085314854530275783736225137453519343370910310546272696906960443751299885596208478335056671427060952260125144697831587641338333592699612590385537724466728548558908402770048861387362320483311504179502308363945338188914332347544965455212361693654759914635000599329657106363027593791434060904743426132966834083757870358717316675601599242238208097251967853112360434572188451096355041886150324951706518241398113505510606193418124326326704217139652412913492171514381959204065423539870392419110623179537610198217026168803953053640777822896035192303183676522619427251498710911795554132799039185992801265933211519064351163637611464289029224954455178974740772629829299707393926089138523025659445692917685293991879591165045090236012269709525200605070083189489335093782521867701703798719876191556203778664208432250346623624905409608301325887545882186505773214104251268894232409079480750609155745977983770513683079427606798014674856415974900027251365994786603671605187961939729308854387505879857725576935408237289535770982422249640164388760980465657346713735617516007893406182873588870247804716761118951605103519878972837262543514731604133254615060562207177389635724425101490802114329507938516706686773140679515163811404544280972708019651621237152999021071312228993472959649917422178089321409691994481519075882625837263456110528647431457571122926455205008260664437467862604880617602256065111196363070413468715322906977158932814467363629681926283779196120785152497723577876833364103323014267150594722142936946599855164941781116922443628749696302894882388227260358179100613023309236608651179460455630634726544622706912582246368676690674287290988723873194577804839007770046221682276301312929114112453807978974788894973612042782661487392898454668860456078349287384383204036908317829032828727443014871852771405867569453106085484428470009878072125843937488546220721902581792063032238188806951371133988573772764342510251537746430341983697362208423282208360659455458256243543741209953569583631709455604128795074344924773820907041137082263699552143347478589266146328925308267274369586323557558655536127930198362484324105793343701156822433385261955417701150591037226773380589815461553249071198976463596114771064915914796022847959986268880713694191512730911025332698081329927570404194076365363088489285541354140808392943000837204459116341394811465793195596639675314227031167708629337930129092242001760245083862245857883068179391361703034912979181549884312754061505380588720210210058578173013029088938064169206020698151916960351476669211994031759371609471352384542539506638563549305796232140039151190285095116260717730387704523178278900472961686891128191245147692743869347852124830870227531807491804823500861903818553081442097906544455105845366626356156952009792403437579053770560589791122121775265272907381127212061651330593380387343133282027260860526505004479143023281614655708961304796521574052235730113644557111067542865764278224056643103753182668558438836062576473664828920192262525234819637717642543670304489173790855197988766667814899788476558020440779048070840672124824914954190681215280877409159291691802324164032220616703208237208489122181216227239240019999047633560682983078295995640387123580986313352738553705221331626642107539123339157774067542462515790710260769871629815891687899303300021775917611814881399651867811172630049829228543217066606479336258290822258754737898317424800763042326431038514837969954233096725445619887872400042504589080781686638118541836759462926455013511795007114282751957701863833047369046211564760418820421401889660778542152192442869619744765890669330756067925529224453004588501588791096939729580565840374134524452574214877809732222770032660967961951660359265401716946091719788089408027854795598035258955942384701091956422723620778536654723445793601330003402900228832851265157062134756498849430363020836465007322629857254178914188753131542156177919996461059926534820167562305392577377276806388249972474672085074212153803738047453695239051282818857327916278949896461629228625022039534505284469612650393646126423848555391473887623462099100540973480713974273788217065290822123738770476724613858455417366172920570240626514818223719895727673749677758200901888733840161767668105476330925975946466032095174071904567684368633419473144611250779127375653805172241625083666476492180015925802920683538979471408128966444118225043568014652976905247700714923906405296835716967207602667501592728057181396362320044691532093747125795321313861736306137007413669949036598932924797944085229718054292142587360451562693959006957446155823783228369353898161243871635283721032742906475527584582301142240113052053709504231550330386842097772632523311051023606849448632888471782659397076068270696325340509095708926018004543725835043065019567692317675839779939576450308065940971805882278501317961725009293146431658197742400436476702671678687985733164823202782252409548834865430917548047013106294646623973748812047501186320877971429737650694558090406186807617942260228939420393885527571712947034289973798507775663831389290580064814120994000615899721160178695987330592973993923528469474356589815732770985129581308309763124436291944028665852020667756973153392625701724228545685571913744279466717391825841102860386487224242758635734686433989225383636804668125203335011185463331253961557087729934928396339065793341790826991371538380527410706529073402660043327846263404134770374956968146173651878697042139859299384632954564987839022316097470919934822234606026014624260265426714201035504698069395594849357500632018589278368644151311400255902329992379488406755917519080061215089221619886333824999903479059816434917049778342086544948481686019623288179952778012225402885676397244080229118008927858007259560940318712893760444949828089859691037906307229747327609049880229324425085634644781174200961393329052237301984465950125645614585407568548890309724391405330859771866686086286304427357317781722355424097356104313361311385069055677975116823112187214570779887595024772479538671581357208235575548110565342617077664853121389297578544614554648539202536267662176991429188577762784999777224303324859420856782571278204416842980708986097550779257586610674208331347397522751053226137118239277914518682184255706046611047163414752386114677997168282521837713738434099532201302227385927318595045215585804072311261065980764886912723755045792698691259776019807259301989253456903811202014210868037898265607099106358700114802082203817598906409850364087697826369271819151797906071181293980663972675921440342166118370103812418430272954823937675293303034209373558219079946942139243117862684350200578814414233266832179291516446176263644520566199838850776605905729716475203952927708374459600386643740778690876342499161355781159641887841786553379026662560513679414025730466162056026238358943234410151231004712299037664663274232851937019243955342352358109506893126221552160811259313779818336382899589645975665683145341052647545887396191661405803095589695465825508826356614654130729110806550750715120005530728926637313414282618052755311296736884000863412798464399046308391404656135597340389705080132757583146106121041306990428051953882416052434499199531342791813294234390642940982643665590097218712087014781736847443680493376025274549552701829562300591285358585816562396291460019792986587379589352063266991459016343119232809559843281655198986474444314197606369222614000897909201742697909662188493926255591747940298370154182143120329522963669292379453758035843654246589697759686189297976403506577282105515173631532489164114919847766511683652470610580821546515137156046925587466196519503723133664142950999967324550863077279279611804895771161227109993863263708830201280172472175514482923852591205936416224975860567146309006562681247313388018303450732157640181454440635368153937389151267612738467647214061603727368142102964229860174224727746365756119552658027742965724511905682627807004074360034749071745982019582416662120453188853790669809352849900170662855425751408195341858987109458996416326806386781803883886294516894612298852545701722084637566339171916694349198384336397420102159871941438834974724421444332687654107379680757652108755468131463041333758061552218140368586739329920841562212801689064488710173032223079398528401549636767153254763049011045399671623348210463567040215498585958539414989226673600701302286315499340747548439423401101559395341013683063803255246811353630770908413588445050061138379958687582541668015648620624687102935195609777137462120765511708279200150080000868727305833570379739336758559931311513386991007466204947487317100418999623249914164022494791625276617243635189739099521836292191226016713517781003298045499702410593254588941113832732355154531319903502314117302604200437411136101379766678763260188222306427963097671094531035165473537208720915908292217390457762677670816590246207004625285809884102988683107358313108377233500169650049231027454254804784275911659419134832115417543698508812976652076734697882729676998995289144066088040812799705483178646177721218298069221203473876199319660011149290303631246768832559459522362690544182193942062511278678497602207691252388622740292724513112078113178666344166850665907712593570888012064616124066145910072179209897715978262421771453306798946104359390704517999188192960704864365315500854504146348398049467039808850758011953986224741769242657286549080776831506708539572892194204473822232606782435145981571123585939722696276076798159047997000414107239350384378648198574646755347449467630924804645016112308942722198432253930943063473329850522455675049148880629531846982765583074930543966198328270204983568542685839172671798499229202007724110965620628825638329083124934214299580319434194561637502722848275577080409348894438784476486284633383791986754491559569778329327995077187184643025503075166203167994720506394068003645395247252201844710262635514928262764568023704561664509123974329168221961930411608698289192497787563399341483421902572286206930273614177606991903634216546047364462795552243638633069941384271939133691326367342984648839144523490547682262363960729623391939514500959806451562047649084142945558164889798779660845265092307050791192910285331283953879963182372118947717994421582256812696482160696849627248531451003166805207006505841122150873346840427901193674684978736858628387435772321766416341649462054489198209147094911384511255275772007287808435260869198287624706469580824080908380975648647709705860220791280481518648594193929928554001048510872777245773468515340039385222425322884225956782156440446378607700059188773172812700438739845042795532834598355415232629293307212181976858821380259956534713447907989059669526585842037558819069706683236467532707284019069586512151368738505602361952746196687645060444715705129873806660110080624737740078115092382429738459478954597476627374790176744898663551110164748554416514952103076087923448821236505238495991105840742439186896929509430693746389620315908460510493043253928903521050515525843611202722505325436376006919215853041421026098111125469679295856860619486989192454710167663172001773380711360877180161431454398995752017429347582431234758541905762642870255645387242923951649134487638910406716361735258015918697866056213120041165440539499835184044134401950658695816446293819060897394599981569568895819157203121513658809620350042588723234649345007974984059969022334194404974230945479469582921581829281879408265316480912260170176081807547879591952779485097389376327044626405790587328376779042391265707576559385077942581060776405547694696289922172036586754924898853172951178405089088001664561738844339424923822491938088674514739953280924558368333324250622877915237648725530773741994666151260080223931847331696065790403635800635908003001319905661597829708427629483229198844829193600066035277995872496916268067275624434829184117382911346698622846495554723973098960351240953773068708441249339378096868356272904117684973067041211723993690890331974868791817990874921905995001387405899647393179550272317848222087131512908626162429652312421411042873742297926290702033033871684853480719353215558968390426604809987021149281444169730527826314239058983412036378661516139897961276100158039795168227594889103008789885880540215916950791202490668941799381369960472836009364799762359473921831231132550113185152942464234953887679080145138338791318149958780812630684351237753000266366482068351753163275710122995610653147957417333921906133519126822197471803142552823380283836512026250226706208524257540586468148565775627389928704393546430057787890017141360206786292635705443762341721158093660780082037809810512285834510263861413116536091841026274068549363943258840446480538928522465800299344056606584514349027638513601986462669429515686166601813649246378732059585942399595333090309020838731325815368750041405942205642244840644455386549380506379658735240627342145579916975240600273089736236573254415457421976903546227898032773722058942527322692614844495388460555621131754387169447883122278217736772569117192663986004774748142776465491992171436290119439174094082543265997176040447323986465360672439113809684306821000320697859136865199827291794107733259703200952502616349208678891594805269321137362345909156859940008580253533751513060819326854165359272182750264269394651374502615466287160694343146808266913440897883138990774244484422451991922036463970088374937719207188114262813753213155358325187847915980684473123447951789748253709432356955567218690634248395134218704906820705513681741509343241804764631564147778791983535713210671823853327045307369722468892642441339914583581234910145933674976265386998240114307576117320026823456121633825859840128933334275203127834282115888510810646286531247283215178983700911183460522906509399857507921622797116283285681472650468257201649844179143449283240396595767611474511499123137150786458708259419228868630594958215541681269603409145766500551274237139974733327518681663074952981480922557153129892603515724942042781047356068520188811440196749869717761246623531381036009869115263622562737030088171945833200155324687865860911913553858892994724309464616072957682642511215419039860992908959538078937164505569219430981819587331456722743642608904095756938830173154467686727035118818599530601467644147236644555779632281431895201977444378778313225948342963878545477620610565898002842902972617005324965120787102355105707690441421906011843300404704992935111517549583560823114297950112356414526538669288097432981855964680962456762796821431236973868531950315584570861396632387724594671290821978539298166278242336629790016194873295241597462164165643110963211195015111766392156093185532571837188221388193326600432384637190942201128049132801956498806475628916908258038237693979092731358713749686508344471204108496978135493590947985767908912531584833910656836075244210670410932024978912339072531772136476964766676224234102564212799003637412588326906881951536903604696030600081564060958187836350508365744209989831429879607564020315741441168910950250292547326266144973272274292586925132680489298900086617752925436607124243319093655133524160564203583054247921032228331860363428687898031419688802267780290256540227656522397585433771093432004843626339407450615428176059414168797842155031108929362669686292602014007795584981435649061806091767702985220468719730779939777174571125157737290754466170761269848496225817782510808195485260936418003465677871288892920446261004103087381179661057576936444323749836584419908718711961788186579493989403856059538482020122890901178857450051789858169052237170895000058069934944582822445231673933067537538410844775538055940750166417168233854468627900187798460080311519427558715699729869974367861795667832670111480940701070563093081734025698429475316834334529907579862936744387848237456177750923474138805038005389705403165922589192135109789962557555746231200486622254232101904883556954204450617289547290007060643420827231841470632160078002182061164880194577819543849445966445530930187767784804669119034814681727144802468100584132761910089455157144354175040302445606082016620943321107889090577341236004522081309214029200943978622569176488728502279561196862980145047124106736305203246093301730103313634382881938560165269628736202921158028424496108642081369209416697954597812061508073456775345964274391093552021212332134171039216960445846797792530641970441881805047785339880138138845192531667127614826509436590535455290711842002660578766014268132780026444322693025294312419531406254353498660497121737566592613418031177890675185814984438601092696456657120908626243317221942853373874721028886864039133479198638527404557163594910300701128159099401347422500518098165611836710508743075612457333937124512898455785949684896855640159082724534151903925925592740759564332561011648730576480117520187033743847015603434152956623345653031707796413777339725247164991040508725693278520914874834795406239838749606003101226640168555475369471761949462173993915028649858856261148208363646654703978644324360903598792698208880839474170734536460891551926678920990717389982842561254050729740922873121763010435131910375340857534711601704201356109439830488939166838236292316155926591988535131260640890356143451994258930856716742308055886757856346452740568061886108977383200533967892525539862544582939113545810448515218085059549599463602479234083693613986621683214040067547032643523474764939028971445434935846003271413160995291817218090023019254607922695049366218718531928070867148620123931814084400436686917475014411641535856153446885295663227512867068657525082065316361852405628537731000062194400822374259737913542020172946396766438021130736659823703129874772137073548529695932128256983486420300773978413925941159059623211689475192968949174941955419397763097706735219827191790290191879910198372463657263328979749898735841939442790629156882582171665009423922460943483573979322847154520954977834768925341768731306796261477623783200016430403234049191757220362694062379593631291596058514568005123466989324108851176048164521875280384593902581114517302679786653380128730320792332483522154814022920124067934446063135416504335868899816878500212697336489468163398412614772283443767059536375053205315874545127974096501845591687601072055958284523312131728534312201840783561908175621025218123778755857072086210986373698720894588204834108770209987852797110971042285192281250085986076912455489093687065279388290263219354461569820041257413319214242588464404588108283871232469976934997291721550752543821159372678656943243596546232193649427628924067477024859408494155142587154074024127133758295424946001994314428358040033768528454948130958417740630291751220177381276310436636062289965513877942691379187930474755119305312400572515998067041927396326526495253018457817629974688791946255882942522968423215299052709873085272592197530426825849016862382715501388847147558845951554305162658828282672328531720639779159483702840494549709033207855755677832761298071710297431576011305185257784604409451762799541954528805331503836673680882439537662606207848356370138416718813950273383029809930240066576151047870429031988880183674693566461774923702385552465346144957672219268918339748270520625959855086925963904978317093263686964779599193809208409956038862230789197248258630320080890323569539364362316010557870058001147906321755366140988927499372609378099584552568356388319992688428830300469570708901537759948588081609269751646140286106230741821822629739243203802813091308817942158885151872554217794952632679507041074196024425877711431167232251429614917797440562054049377891165149398205378818158463102986473816714624673285601916954797378594083042871131410646091293153286933515943301308876596895707975970900498360593425300971821193020500669143161295585628530715988638352551044648052770941245709837060796114462113792910635916876684273121095198599082372770797606379386741893206747678550628735480020361519997014892772670929487789808446945736889552032701159314720115800011569128380884400794414866804847324537568222102316160572618161136636468563481501821488448668882350276811621229937490945204613562850350222411515505660885896147594424729274038907526690376161825981790579705344063434903180835044284157408078313386134427167565649350339971473455159267591174434144611535723147992816456025372398144341370588116058197341292644931669323222946814516377168809695217754179633372278079612650299581695106337148887256348768686445404764510382196881136537721245841831581546074966009759124313003473840099624053278313292027737119600415887055300412759829959130864130592318728801878839986377365027893287150500442415704866737355382973409109080534303171290098553012159927166726712504656256710828338840522026200080098035684701685392684756741616400105183664223354324763733564683783439872748092758745761833149152703705563040191380424414490920742087359551141192105171743674665759425325924033352758464670180818592535926504438082420485411024628176874348160489118066971442835823707216757463482666725960656279370306210352659055346794648552236538017013316221870061767374465044427908134746792492836312771205766604273875225474795832315864264941196493605188088381037950760269729547402367990021479951302725189902589283695420271438383242369945246828775950957886170538872671559996581469489260230737390100887527036953169038188787412391419180257827947710000585462156583364494761531394434106186403893461098718006671867118451031965253429506866386414752712132289991297071266259685954264254340302399262423142855194181932599415311956642471787833401472153924192290039072136352981679976326935993019941305151825397591986828764606611789493027318130307110347495056843272539708461312454759023008328693273021546263084222104713402199246687425670715594833090242302195886381189335303022010191347151704174966884212300388817719615296119250206169349671899086046008449099634265070614675473672624860831104035059931624702106091160935214337951062300896472065502880844292804515339152108385074681565852664220500487788144176283532692695270915151776712595363803875108115059132069042072428211688375436829454623297626948641298517129454962752173132570637880901009506296720910192811951734719562446156935658395832514682819002677300576114944161792114222306028511896860723722061448821477160946812447730316528643507500641120178644400737357236927737536861411035494754187649102970732492048488719039718339482744374396383580373198195582513887762912439895328380587825606950858761669603746028293841875975816572748558165614805363906042873796658052742579967406412830022382932459271970067353281146343981117448465959736649450746823672449913183326934300274281060989923625261428701342695446700401388129099855102829429828212902107445334094982357729744773272577449152261648228338273115647929391542926081364508037029828134812389224311390817530662441646548298059186469650096184276827849593011750793735452127637784497750398828978942224016481928712010402209849257146228180066862255295634857528761630816672537677548484302074988305150110148671115573621468445713377191671236090763583815416898494839513065802901142463834484842139853259981941448481567914979227194027732087217598376511811262349453294254284516354128082739464653883950728830484228128521079271843825661664332028881571883462204694733336645360309758365110883326053984185809223665943331189435077355471419273776763292398697578615451670044464629978138350365391509263557630555831447223632491678492110895704127270666874363821088600283864066285292047945594415001489457656278022175280059883372152207379131265642688241419595524137859110255440616499125231245658632486967722210003687124852543402392164371108393483758861141352083847237818842716200781312335561524919196563559913155827940935815349492972057414868436533866847525930764404056506446210082285779009860403810231916472262011791802209779934632392489096113013387367814905735270246739223453643224564347766338014834335281994142879014402781754761407297723853037335788780171924226763361612660540624836661766189929742107811094484644321886765901008286026539198261850104502671734836947906902066057270454545817112394468029792986012583297096945470498374208675236846888758623398801664038582625894155931681623531396214780923890850693835281043238759044884956258596536128100190822699427116856025026547326098833882521220511898614987068278952370225858762782312538845474899308236639343055314697521101971768492400557555954060211277054166655502662563619670243304630097530698951783652752765449367601267959274679289274330471721340850436244545109974131465144778198012940240339891848226933451875956351156137828562826486055061182260896322465477653266651978128372241909971287934097785971920665842203413750394704729722124419438234540450697373607040728522285086504275220206241941113289622394391072239314986789346190670240225335907228480588677910631955625951725762874871066424384219171019967251665426880628167399003342721442495163986274204660994823272263900064116941164793472706667980495511935379024674063133575686813543753752672208652964618977203192246852303902842180933940571585587371512791151280124868658937369861226109713801477797901436329776058639882777099182175363818217274285502347533889538603542148801995718318086148613093511007263986800353986540865394810227098006315778193129980421568604600817456206019742226682528590727873492157460364569261134221948599414821815714692441633498712138682097722763521346633162071235033101651148617010632686951075448798845641311086180003462509122666155606794992634431240482130246288469734663549529423944284257639211959855329816467212673038882200406063445051351401929029100848638137263003707908676282058413836815247653481031439157560245445960306044779395327911033606752956084926918842646371500047737808632254294485206236617761134914325054907988704560219282839876160685371190466544549410287350396446793976155788110090517821856540154045294300879907518663378781380945457983239333389207289628293889250415102271823937411721490043600520795579526760435356120083106356739179486729428317640397880979520923560242923047288335973168045112367364152767682685481499218903016079377376475782876035767284264644556521730788474343740367829657286975442066258225662915043277125141422358586164779522903050291125898604830819855383707016155715894926848943411326453015608220366751541976133258261865719284276365998808876267696165165687227518780188618393238233739844952658948763370186621332460813163576738263824068987642399373020529275477107530688731398260529048486267540994352619202755949227563717275948448268317818599624151481150608513194077118026934878497625694809646695349832519585612307721105862393728839286476308481348568120781457616155004616720014006623533658305428491924624597081638228187813676679827802176629053966505702025464126784213050695816218819761432780495435829545884044234628270579197454093293475464808917005068790705112515744604214048758891954408618156368150220097101370177759540144577454107375418101608077810627572933251649326495008956577828901620949895238144690238711125190552847033141767155975545975696132388659625602537563929339034316542360089794955588681018694852175857346966885117214315138500599242700203648847757998612431864909237019698097571418460112387669781951761020109785844872303356866672280107735863698128847089062775632571898557697588776776212013053879915944276222786826560879015896135984652047981183928299883795836153262777538212763481338446601589876003260883711141827018034223259099725614911189606286533109719848423811866248683356962776573979838879786224526524000896376068737520890650415977850857988053882252983305011586956242620496518870760253963095028869172275015819326975301030158472709297482220816774512302924254030596462165144314590479973366095335777871825433574036928237551860572320705023543171175464893848629216929484590973388333611549442990198890375467176226179924133089591086317959701105035472795978635612247826008136092524220726540292927883123290042231911192283205340408989081313859697789595776299739155052925449648821346689052839378606407657952649828205122868964908341074670623426749642881861559353135463716049836475827994918193038326973331703747471568697059101047969857546540789171913337844505024123104684665905928505220207834841505362747053332056447095243592221347098705636513677419761810743486927920757003239224950957396315232720881304951700777676642498182802102801078087195516218452863373148438171651026396879432318736559290220664375569047321509422610966593461595109457558184753802163328259834408333097290686386602661656177666366544467181497965891488825682077501259480235800963127637346858329867353313762022232166961357365678735551696774822024887261955037189833163229412007393636822242114837220607744269725803037613531436353080885920952765682474339096570688119712977023480514405304577058557890413926320349199574670534477279670588977018381606374241364641323840412386618165998358908527885051401426356050722851448763743713302246504548276355911929647063774488924209062808828061659081695069758055634241467518745134487044915542948936016273599515418178744649211213698468494693772309349061971076363823352787278933977824080926792864946984080815311888796263106564886820572366290169671720600739445045450005122891787817694676848166829758837844948020708576810183323660275076713726006277663997614383948051164625698498584886357814567088225377433362548023843713793060947456824076097155170055579735014586158922080534532266243673131221938761437153301317163896555824675431093396352876774402841885945356183034950110599825872049852554992857156995691148591594599510473179510131450248564823224350358892160479547721632811043361094408475484906883819392161223287894715658534701735254808120290060787365275579300640190872797213819220865479767412581701419160119029602182270806756830430177535147622776146895577046782128237467205890471233909392770070333382995337423852394004657052177606612664295801602186746389920373647092684835230467194339526765745563848357338918440028644938866538966499600712300704958859028901260884339788119482315399346951523946755886765528516816140687999968707560287046944665874822550491654072513485636076831487454482935526219686979489016085689641576791806993595805128952392543319262651982176401875421773650428467340716067479228945499349677020885527854078070425573804974373969268458080884016441650482204834552731837022465454124861696779258554618801449328485055023408682086560082785410138337815181588760851053823378006139205696955088794070287552285992979424338733311528241686242445573561908689136682084839193525472879117350620639697308645826583374724893705619691055589019282504520934709163971315179164438272183761377627768951629855165705078113683492763003945726020759545532839088331626053074751075856262770421771734803670321317883934100167297816140733053580104191324151309893760951219240752635739803474377509282861113335694735306041119578839725960401854878149746479576464846648184363755777425645300918492342982480534702937915480329815209075301369283609878082010649956976184690852386616756283871053470511740846165516551695824925591080437613773363795981949622701770348630027326064803335156066277184939844550891257411463550629335896276632028480368325227673248567402107284080711100208178342773141378947971430516253901527300013633335134413158364258187342696617898290689083186599727349889204131232871366714538817910731805964835725967746275820874834945207298809857320779693746936658040596570447138671196003556180384994433672473593077034310426023605235401324967370546015059342719275148059379573745479089999389592288331564506521181718824045811805571182360373130335862640040033558946174683842996026657375143599115954778934723223862304473783963151891138191271463111973597373837400827408630942235087574843371609222707741273586773217929522887888543788511737171653506448753567770510464823189813197089224526870511449487682237013131014132044150351285737444857584378383360841689363450302409659546342505756269461272846847940063506322944088864963550554332452440929658274277082099672929326424144738668600498170145968983092301446332621428907511241099864579525950244279389444196368308374237485323850206951265418290261566051326623913632062692551281461615830498041933231511862887430469060872336783237162338571532604835541974226256273837501085237318566274515481285606230299196844158316532504842043862583263464423005787817871668444708869791106886399263550759759268907299854305645128343154514002875118577409559431432065549058137035975931790661024326988766152495223532777360927126966230006882591910241795153879215690521750025564246475710010992063902498512452115033945469262745784895438054225232040213179340634883816991088807969002708668987261942820586890034931026332816753242557141437726887959241533352035911255767833583292396481274155438524927104504625673674413825375368748791654782063718898255895925534265416620149013011200569459054333227272291866463911045980766887212357815928229618981054252943564795637682691399704768525530682069873332423986093519778130064830174000666771291745278505312054202856081534132159585632440863785299074010343884324590715734756796810498946574919783031367483183007386354775875528145547163174295857172318800643375165443234786328410107929061376150866369722757200269167767157542165768510324128413696695704780421149318953459696789556004767300419959024101083710018777920160025158869158859953926082868301391582533995596217614477250087312111857256563338368378567320526610068512232071008152742355589105831261528272386702163821990389527407875379032321268929424004005727302713237153127480921144190226573695524904878568244719073112706720000116429221786523649101698731530136356022225941801112993445368143945550401410762910872416489008981316369108286569286577244284073840441541261245570550026641712292710833889088244314155776858526519246930285837260513498128711097840611340720875181658770900542927719127847862138231755287731022301730141031877632123599007853025752098066025986016888817664740351448810900636581749746825297749606204503044403026555842876009650972543144500792150737783427117330634293706465437513614204727139225161164995963995168467948703538845963972246019607447928862794249626480498741858918224402973760128219583916498636256420707045228835385045266053829602056873823255981142650087651599452045446627567370577452091241184584426770392318245834224119059399241288112447882620572515708362376744135374158909031791441694534538125097340172175833438149021672964986423656136530043453065905509985161333208513096291417137652402042523859822266873995914715224878337428323868283923385500908769688382801664389786151078749982489029760344016548372039364335545582610614963065777876448762388136756574247249030623891495694585666708525950889715430815926099731372612764646308923334280589033090939232863241741306960907179465266849147281258674042300945893590054181046423343508260515304212491911428306540631694589224754401464933571545310913832878101900039630833552728953817597363524316942832003306498164499172988308019353880145909786916501060168294945583155187872078647119575003073552142538885698654986641717832719256580933794848448320600514125779852881386984539552841672893822196532310944852557805463248064344186926604522420048450118525190086735457960056548114591611039349400979182854899238280467059512417254578765627414814780880303945618377600891548852023268570693274228870055377201726689322930870350867684866355620085951614396271762433939421736566177332798364369594215926824774667506515375362798422353212730757061861438703122399012679148317443791597108846333703149892924030327684495709527916822474225166348682280823109733480218800296263876875521577368019400622631677870077718718935225014063286585046621549309737918020235623440129824980506322230590701037423952114435800480315572083458849307122813147001103827111171812466854943651115767795782715394447697534479675027701157909626218039100142342078942411909763891540028239596641622417708984693326875941357652863242514466818604696117070262350316772049198960226037674659358580262179507057798924001051250231671542957038122649096012261818902850607445455793171944213141159492834482055243227606559990906241015766660234030980429599428687846656918532579499980008254497626506882615001205668087818404464559647254374104523496108696103590928391408398404595746949144545589589771247208737239957193359445869335820007159523702955191067252863848428010381955013701715455024906586104066600667235671745336665871870410471413438817983628154525702334229427756244456712295355075127931500786453311628734528758685505529467300345754752903876095186470524417320794003134023448706587584865998481302320983802021449052104978476708071144853767483464558127455557617823710955286100649505076239142464160555362409546362725880884451775041228017802250640030439004111561175653065370333436165705811447412116701649887007177075624671179181635596999999675411865737628019209441513537715623291304294831805976269398757495892793571306341627438090237410141308161288145414084761539137983264636235136236608892350134114006131212717781473282168204279129683806048254009911614022137446183492611420695471930552204052311388053929225443214055407636516196868550991030478236415413346454761518166375213789631972319726994208365022433959026263687863164083101740226800991763178762856901197293125431403060306547092633313707051902841473268336365542702525128433424082466919954102639746296444673514807865752608284858116473373429609169935038113628088003932469429619784088349645990878601903911688766088038168264951595178206695947340797425508190303882340296374987244877616992761120458153130814907374497663237542543083647737523692915673106380674453489116371469130103951482259693040112288165947892441251272537528428040700533670827027537998178379384878764200578247898306346835626612049235733905523730147811295402878287533542010737770811271708109618861815805993528285284719286818808942973802438397881569739919920908575839028357659617160585492620592048736620463735061451724579938258371158276810433740635210360538764752406110016437013399447772592238340348346326000473883324260058256907814479554321676038697857713637853251932208543092502429545135951485573537793140667137406675963882511797774501617620416048229596537337718702087482733761131738193674433803543842580326296183696036203503495209580212859610093586369740175999389099381929807694223345919646391184611526402248975812460464916836939816186674604080879499405329193833471754623966049187594377024182343447922028770574295174369065130896848949362550380820990863830029363572103011777420474827670887481041458710814710707612377221650668091172546770242962242658521952429344223381132735127059147401927504779061167626812008290233234311831755087626336181388085547749414102712147137960019429989376175823794523606216727925908437344885085598642263540394129060117445257626155770170914780826597798470620388126589701968478064284703296912191336852587925172279590531082871615663585315608479477254171307906750519830228414412077362574979920424961780375252623208494551055278230096417599811309759658281795227109420657422861208438672366821583965889142631496852135956922037548529258205311378616056807418363385410106631627150733930015019221058524590651537857661571028717863056385418933782582232988265181959292953441541790315621118126140022518291380387705782374782994718902444328818645967055144690151048554268660106452407754340528175048855940227505698299860604804827746762036169727580546992589119617036702017617350969802103711134559651749380781707589940390659044034381080854453933175523992606879560197551457556034160682479784295382655663906100224173689398348771473490852196956667785164305711969625765584460423769329978529484663123023588153451157599107245061556807413952287466097260225376979690610702139791179961141348856520187585779299282291287220087191558784568798668194340800432070798436649958777689690404277220393346843099243747845069197094621810721102491980634281841014988452648931435876179722629632939920259712632124580282028525698748319222835541569296544727759449418746797576393341886538168669312278826240881529942172612114113524150566881581724418961467693301187428995667396288524675558586915148459075935417106127451398418358879550131332230583382476979269530903318643907222342511821679227054115513045932264692312845251521311150921948850927392917514092556498931331956131170519119169714039142563298172607594440129855863475387266181438306015495527548271988168708251860904709045496328355130987854120614517591536117166840616841048510130459197680717633289556015559646164200085679244029021607772990112988995274683423094121915678720355469548832384841626266594456630591814123494585513250625163038799883518769016181504461874835938473364382050051377671306381943048647049358179009149975615364831051646626304912784861877792562443495819395984085501625975916955249716128973768810930814303050955103084771628712774008506220477650573566288033725868807476463766856097712485808326364970104518520547465036464664893124542871103571407498406582979963690544802986820711971567000048910806965014046279206163779595062589256073162878989840220999929031977926857938174323552898061663562615205058036910475696175285972163395010728236713641232358033047746467976103488486353130237657724070990982273704271210594137355058320957039007785694407543250672724627940611523299282807741579965196084652904042978343752990394316142379784954583821784120713053223075779895062979627048331615787562517716383910965286268378862920513598899011781040255606190669292054678866075836475520185410917868816219915316852723016052062252735370133900060314425722177939326506855611680177761952544567996470737165864225722393706732140114218693432686286667914738907082012978665901938201056359726211465035723961401028995102132666795327046540090195517848705186146750469005569662851033253161599788560375960818666409704520654600497025369491535264002214391263460575219468495579913831944240629191853838531608857502946814246549783686967499225852980339066975201195717296641718487026381802194025385691773528728780760904452855797056893073803597895425155699005173831727700168047384351244031218821171651868701348201710706660614923075614539970481534922968193517331167788813826784574024061423120940486830496307571704000827431908376481600434459203660965568287532716255165800078804693856763950235856073848159847759944218288947788313177734904913448626685876118941735632495480689481242127798564783846639546459807460524653439560780542450064906817025105180894578803053340670249098398941319679485096455300552063385077265112257536021236382646656861295097891628002483386578267155078367171075313178810841004807629491829592620229859286867898102369260523942216010981229542199783233729737777867222512606215703256595747806969372981721450065187493282816188932998057629063730091160614941902812501864775430547830298872739252177630209362426186490598758613594092801548288683957415396253678920766276502834136991507831369181136573627598737591465444389390207707706696464475826592770911386171487915199413913064006769438950839360322820225423091633455588557697382574189584208390506614907294696121121991209101728146450891667385942179011073600209625772693004510844203570289989489506639811513713052488568308907647722547139924165027976070965931584415384704057945095430709182481875697235830538893162347237858079914086819879570315737034409760677965334277007241476629442216855769239322613406114906873438447492681883324688595811163343922638815618158953633026834891887842430528730244959102300273103154058945929324328453039177736400622807144614261482279844531256185458952689383129190740069038346016667990383145049317520203922202785727595019764529908651756679215325425355221679445864235286544869293054883929953925408993298677846730088102083210641789885658064444084188533091505522704683110146691254435677932926765452272327788168784495424406553546757846444269468407897918353543338453928039484831942119451701066310979939788719443148224028781840604042950388175626862528460443332223910301725625236592787805851944242587714968808447457679742580784409085287543946624434240070416249965998798012416220366742613838775337533492748421867556650085357151485155221742548735803048139568484345735769595801589772208337526677328319559501144448038054670017357827180562488512075932323992729062164994954981420463221449628306073745485718819649763726300814880322275007265810914033947231410139426551419675308568620086681312673883846494647239845185845747595139711262636716680313450884710540304073673138603614040428866089680446158490379366065312183962349375891394225267154673761355244770814731211498298722277936474776889097677294764667766075099043528111435962262429739848961450408012914906554101116317931750265932265980453162342546811652967790359459228349720477435590007314256313341510169815754815229238870526323511269088616630830834763790377684064046742710654044259143291915946906121232344980392794440718317388066965395645071304796379782810394756454252881643693918720742041356277296239182076770733622074916708902789804450510996033635912278456244000235743053408602003429939795464961293592364490643256127967672797670993463242602576099251733371460746438046552005438939397771377428242191048175712535554475423501385414150022731300274985878960051901073335972497509610664237431888484283651311415340010890532403550830773553589007135259503480532126348800374485948380256391902460753157774928008160916027722968434596043856312318499891437732030967872945055983682372067239867389788541708611504841564278477607794780197184060489660073135111156929068586558926333645392450917351061508762546430934594298215132341360512706257589648466261649289198851981401599574385848546667817908670460024663549682778479361989282932742739303837382437524716162568904531464322728664217863121249181050551225628136215972905407134621438515614691582254138510829839114368427279409565780793630362788545712022362424215391049546115911429795437575381044841120362420712652255098481369707907860016440781138763813015445477321942136480295767214227231304842102969463078954862060770261625065054664628121887273904576616116787373237836244013055788925963583088543227720338818293510837057156144780297802050676902255148830762011814851168376778029662818918374942983014163790847934650696607786500138497500176110822130604818889930909752114497007695174351156458937730995917001790278107820584566808792960031260325171002069704006636520995299516626295160961691837128471022039553464968455703819248862563250624268206391436231643636886126744645580581113954262399826041642335292360981844526194370807311329095198482522886437940910912269637673347885096158961186696068945659238299764760123157260432081212280274478970823813237157183816008914035768781875635490262579146980898193215890916154469962693376658197059365936623130263776724018391164670565811993687880405286371464738803716750946368667758967457156045815229349172169371992350989528240089722140146954890435307281041663849185392642259244851731461021643660887942934431619310411877002401135840264710215996550652821399124845703431328341773750201382040095011184437234268110936278862479585098893497325393058088282243552141550278320394755769185059568145740881338665868001804598895476589360144342851626163955454090520656684005362707925572450282617662470598840640194867103214906351795120167146071486114689695206015648476586617755413294253931661589237918783567534174524829798139265355029716233521942093214815106926598649421951957511295671552839702014513077467368121037747567062733095780912413703066294971994348713995393555428617769331555684823613985845337303964265884029036359687550797999674897758822260569711638193387946220416901380009078949181336553688657195255972152532668059681881476473071338871812170833177194365448958050331914682775033452464214905723462967522355696584999227518390602837487770665851505849636385463306931185292270769733692184356670862204458107693340336247992324563934667464338924370397702303500811867394814301303664181033836184375113590832369847655602524641055516566308792101800724401362333752847960712888416571424829993304506474180894808467515105759833798215367219512430405423671695942706996414900852156140255592629670494564005753750140858906501483175731766860165342894577260276224248923892912375560006944241590356110271400442594466230012109000288220210973904016739414266066437880305631299135432899610189283185785583187103422290459111026578402631877257710197772295273430633439418561076657163260770844714817892299125043519814019701706657345630126476041044206781548719516251154219361604604177666780593872038237282620250923869171333055691313045502609295232139508433271950251654930155361297171662347196503023324622787326171450533908722363560313175969440524666476472280744539936663499370379246279647429145409059401877979542285478567887624718196123357745537177138206753796163334486733256556741636136922762028413694757084816794221333858414118987601146583844673851853415682379130254575156928447725376877753353104293773974801511421497192621134577130292765483573007727399225472700570156806244893901684251590674155234701880214698554745158822035915606883648491725016823718348410907338501915523707830309739347913224477134881839764695781789911315607238069030713437621824470595725354213372421053074237131104703469098390066138149417961407625216877254767670126250536306668413976209912926118304516916202712855887851388874828012230987563147018096544094291689159349837728979884064018749639850459838184770169571480768283999888848784164664925632436388579290577683718108630629491411354004332698887529178781344008486063170263376548583723750770460569578929046166169549344377518590149664904537619288215073086903989402082141104689323117259517675489043384900133212069801507874427304740321642457512457339008705216069481028618087004777130377300172459097468415544956764323593931029495820841451730996665045090520140619296646283548444069048461844624037873685670393647068901585863457919626906318907412289524046513788601286611575686769487194038404020480374570574248556733173999542515443344489599177207370784459696293203339019990642143889683139685376508311797024544927572020706967672602592745689081452267768771509022648441256313832441334191134912379218416143373415979116050035986970853059311264430880975404382671940122218540878117420475942004911900170441571895419100775079598222801645901155588356136549832445436002996134445490215834710668850876133049164193698274417454468769722145833486205000574637651025896052996045643087132385316916425288572064051618891109699759433895711925540979622736628156932515150818200830817756482207123771122227459597282153535819104606764823490069087710836421503196738725644942950294114578512269993581058023533994401390790208284320469539915086166711392594325891980881359498115424393721519534263919605860781150615153207335665551108010429849801482738492876755594824188891316658174208854388821890039791976008492763929681789176617257801856556613999523513309816636334672869144288288130260829192472035069141450864864244260707984732912583730940097961851696586241874307678743187604577592227392063285203023217124498043597019234401668306570483823874642226078365684053113010722950235548567004774987856932266057586666049449457037287152766625183266568791212227716389967335091037652359044355776755222688843831837594352132940932931550950412433323551018881605616947065924035429843415013769138220098541975345288066040389187453081838663726383590575529479638365733220670797598852476580097953687477118339424505727636325682874601176187726851565534932882880310760229166302902169722596177669562167811885972129648378452997886244662236592541980030546969666802556661439405733472659863316329368178989899316675261361877847175302565764426551904638739503399499414020899197883192012248236361729178789272108690696929683357530968502986005685896454268468239686373590066059859435553338862903230270967274561597996678403490771804251705462544268038373572878093913091743525462085166208254794067229116360861870674463772229057248186772453533530861847370388154173948495095475797699460221416517869672716944177310206147729942850724054950509211679682740686328834798455847448300630808164460201861979896959664220240185202142374622664973729341858323270448280173704444679630653250249995882883074639942630509106891861687423947440319834553916133687758428353279297202826648555205780920656983952863689997584586026912764123720623072428162790228812161749004829480302172878624622930661167162113391533753684216898217167991530633272847612558022470108956577314014073520670587047195846942276779644010182159218843348955379882926678594095001310247867646792183287373953375108628165071216258607746894504036200167135867616718842508798812781305999700991334329251229610992276343344441455782430981286687128364191434975961620382561997993501140775954075835175091561337389941894977186281101015528497286826047395097677003988240761441931771169596765623751072235764747823757522930905628777425567891646981937660252243321621118260420142385574128567703248143391164569872969290058979476587875596889518818544945975919910067978633013523797315202901162568248314287052771806771405123157651223189613832041126804394446179650763762555600291248911490339695211656157915306495167828166222294040528314093431560989842630668614848300526814334813748790390101713147487255141868970789552292999359193159993770138874832019954392496720682490727164787816870293591525755841081889972528080403945177459310957945602378831772124552178647786066274568864109678274792469431771145252530320540354549534194075763210924619738158095678717365695069715926045363255841603829445146167101023059883465244789073202216804818891755971506743347113888936121330486362417532774601132302821593982999643773040621720531272868369195828521594228968988849151798298984262522272507961310348400967431848668254955405005057335971923684337571217051460223123330260648461412341546471305067470413333722957189576668829151235519679452943340659431073915425540369984268291581520232369674868194974955658794576227520444358670483676461287496710565841175080889783786859810544138050524163247701197270005296788461931734694736311797690658775859859840259896476108831475462987902822823004032244707707945788936805109490792005357439757863000943014232231767692756096653685608667858354801973912614685835730931797514033369154406543823251717083683100564217549472516019896341604010256362155627816696977635858426710771031090037889394611429072077296224020760120265602577860438967261281843649371196510995028125012526651444598687612271833698958766456933384977362852030314578601151574714276203943536870053808873492295950224036620488234568489255900065479484541548794772193273186857877812096359985740350453573876470242946198461916797088666402008843897277220646940936712252327124194017412031489318299267219052876679058968018602576913419184253739490617379848697511633445734963678998557904611488225563444120955974964854237748046122623384315769489022421465434600578634431257170093322759582311123318508697573681562549680922315665800934378278294060372780137340669049296984936591096681392846907602227109460191178343394600270380046753020901472838029628629220628679509902388454644830930376082595344072553225383574652669491295672619370343799218570641477581728071135285313059343586625858329956288838223006391148235445855266987049205856822955875347259980614860697640758425723723444370483282352112757509572439715002402307970019596041353767313307899329951885022745881558157397926493776286008444518208036171506485541775161473589802811775973301294699144726188422468878989632907922232613205891342029523303722486191272646982021292562478363595834726327511269582845420599459623881492451212140639691815981027381480373025879328905448997937856401646870290677964555948651532838066409611640819495861242886558270285655279148357647838083605948734089487179507211784900738061671201685031537537210732154208748085548272046588084707523953989953528074815976459374091276145870742580388058838823165387527494118180856674152620523754979567778517882467087673245540031726851860209781869334943599530283554447827292387957548395733973214282704499219081811538772359901071266136333572819812437051297917705825102954380787078026559214899610662849993399484987006331685829474614483177552528462137728685948812274363798661371288251346589977597561223362626673317058148582620075608594508188995841161897973417333087472333179246667564306910342572988900068134281808022381364992657684869449153778688904919657634479513413453083103009781538065604761657883090351141800555209233869501422736111303466441023429981529194214089035207792251911023060889709629202924961783890789280111065861223907735920397290101811085413433449675054396154767872460737667460221457254070286193944938017365579844553041133866524516865181505594592850136101664882446952099076533916996398207847183351399881593709724305155373471550405222429351366348581308448003507383778347606861913017712354383211864043674808886658577637466947736753511741639027053308538775852811539516261140775006791429978554100992499989783206721819637003508031364029534986179183067336744621023871529418807959514776067071522529573923152596719151081755532354270113301180940664567391882107124864538046404488887651315945930419745036942801547529395711949268845491025800844350770498411972664964022088651304004046580359664548061114137662910610001954254828597566092575337788096719397751928964789378716430896063626760418877781272982213581355333623329436779779948583879487693875303993310387110077292506571567564139693404575330318373404101039195066075681881015243726097342944996037460682478606104677196170479333868018868317799154504674059906487655554050763832949262627095556613390243389771378904897113962472749591611967690228694663390812354967933773682117885168959222831239318626972524383471976998762935969454179680987698045103499130795811568374374089105317650439966082761813845906686732365074818958826794131711904978667006721799204111569441188618332211863274375058407077016483651094688536629960320231486494052135276565207223404979914433243886250136064293652138426418863047912073931128488944360812156011513766753734828724686668337157276648685047076620015872466544263541653075976908381531139058206430062023946227361738170788277199352666221801638378198277672452891726712294104727534765636030340291107118775684054259793860204864147188063010261539864767099680115028720480250228307678629817138413850581130617603333459159519031513495295470690839334807085992556215543524120485990042125838151165522644132322432124083913283916361712818234249030567143046608267935617063897326081844720333588478584568135809552933062844755270603404875584395789016719253693729440314585755147476439487916920122715885596544269322218686406600762869065123606364342098300888602332522079155222702145758164706313024355674519917296931973934253390130226215325749842677724031969940064108694907702577068580932470802296608724877116771242835687855456529984043938053162952141262185140006034192503783851393428649168814523176997208340568429652591760627201496993630363958488672302312656328842489957985319451671759730508778397847238473608498398561309035833451391036605571810017901274274495368395198280994575472410315905715883585345420480396732051309528405639589155787027905420388375416191576231918536353044457401849392446088341045091923588416982032372650848363863400257943327435340466931533577984393742468044184438758014308524557972330374380237333548722797628915858238809890976706624850577119400530226919694073447149734069606991965102901587413021115738646973401091635396484127779906293211354655437834860492866330325734378299570196052173129559967587405814590878315695408365792242668318743794634930034520084415019484373573811364940782364630031608623055619790796131015157318471413195128028974203446568179220678101316741140692311069369322768350658386601828624210824095947516200915177420937390187160153419576004888091440991361293742847413937762180465449001804617877177754566662137370939149645352855720454630161094848929443583992693887512748272667622799219188195958462811751507501496399460001209251106887402959790507587503058339769632509540424374885595885546216121575497734002945084979280121894764853226827713274702332516197338295563425800902161193688883468606583648958125245355583968536644431475475744827093236855052414582510208032108004251957343076800578012652105201356822217552440725834645319861246306527565040712374120579102312197972789892430152293686499731189597561482448680397130211358746385474255059727859569945662013391794797517044990478237978904623139039699061153221862633311149172508966244976435063611074336285728127951734375422303296009808510370633535700315778017554643361970131196693964073710160328649845823688123164426676753938004794696684995935242055866416382443839775243700916614836191083652231960082603616406084469003926251005504307658647407981787359455789001171962793301484502323608390494826745744979036762297681827732958812384836933871848048711125245929722352697819677888719451245615979777139484636191733143230942859903233589296175268533410765761383887150714190811694543714761654733649670592335937263768268170149996411027654148572840317260046373397562900518229061789315439771321576631048054162065510086491071332931887418654478919650146379781450435126878990458744769743217581951813426138595663618835810592434251053774045922766911353873921905045664125733787645233371222122376545307784607193522133470802472740597241631798654756232577129584370156901834592345998121965039188724467966880291587311863984772970424546248077718275706938480251766501096612094965999712655315113550373271342806227523278317050794550446825653165827979122524011669907337078799980437605395454421969995908214158116932996093098806660050598056368804550753638423137969158676151153375843541496074326002196955766516544773345841763110684917223145370403737606173394660021876540309538002848731952837863109729263104208507893302605881287374245223262242876160896711120310224697832579512661806802326837837782652434263201557179674376667078111074388129850567749741513430125716388494347248307871453958294790987166300035550395505349399079662425104795390022358358085512589112082231150270925169944865216896664395272628631934438401998365484789100649940361219872099696466583491034882183392426530457142643959560363142053032128359934521021142588179898468843190020872959895579536862349474246049802859439075642579935544761600354117497325854086943587428541521705917819806890175968170810557717357932035769773675277167044191066883858388696055503104445073131232292141860803095388811746259504919194827959988339561508898531429656458531303808289570578194599647161314119803496938186375052930814333891415449028960180817444343841376116964202498025215221979372081714986837637170865009452082026896460655062987646065981083429028069621747563700448953405262873948645702088749369737436707230219080240792244444627866956002035740458875001760619820120720496738687419837113693436446104595723739974336478201236306056990165806466749468732519156257283253626078133624801050051878300870836659143642071002051426902092771666513308229877255641214360316123897466807796850691321363073004913241404875882036225136290460988903207628002933287276682934555342539252366549335720324159734111594197225593258018848802613447280639018594824694158552215362906861577901057264381117508525104185857906684582771075480633262091511101665531738066313107509489233326371056977227711456802682077169113598223658319565174310718091721599919760327176926740550305439056474350457608375611134069776485501520968370130680582173389703191695101634159678317622697526033345886167404163539211545142156776130737807186001652313446548527346952340043098358611522074751886931542504574435728701647269696473077343100596116527654306922859138589618903796085751959964152235571362157958472251731967394536244606230499973016670709623427164670634824785140910991286342304560043879813773384161162543160666175056846584650049588815579472664440436087210589166419902443216048892317656138200706454356873965216695611584068075827345897957910673371933735763890280833652780779496302139133044452908175290714630684373873851715030846674309788201644006903267384327145278552284622449708448479135645367156546415015803898377159579410459794485343407609315667831463533602362504402513575063579625366513666056692144671615946788138726975500062028065345160141088413849990858321886993989494839450608325431884771004173175577177002440837653490565449201021874524012118290226522007392807762692561644818156667707201441363166033771092548153110591884992455915096210751818455361502670132577823810464960895161702278995327759840234146302837592888319149884303683389098531516354609534320051763451074779220471041463335073439547598518409234719421567393249359709329598346686853379773874896231862214975878315263819700575552953350691257796128562144842808946507897102727047931986333215898763895713172102145850847475112010152547699878474270972922728709621307717768628969759285101594527039123291336655299632315054423261191870667609745369566702846259426579705736416434626996213158484249393609680954661869195940314179362286720546081154444350805459540693840293444820729021109625982307091665877051532242673465363617183091380560135852893258855741923931032361902838138969768062781400642052607877367136564254622474255531769732358952688383665570584586055042041472466170389664060821374319601535916329144240741536937510281291596380552153555963332081923658897349382254703101429843519113069074701660830190979948808159913471480020570299032391418785994927760509034542760917234708238650646392118005977333202723465578836769960482880046344067791313383171119961849765130686403409736016147682613146823954646592483083574107071643581982119731015458470182683467811946914883570734097085217103192732001203059803303451930458051245027301823131195761641159113629312152972596787184901720750739960369878041313461681704409262242373575410533994916724365251047595363106859428270292825724082704523314546659140895089768756639533357883873404514321542121260634186233293038254050036258370593008711080167215022359700126409492840733549393315476844021806332463962905759670186509382239774151333906089928468163086119600838408488034287378147202337793773695450909916476037817596798206088964462879723195244251230906702697113860784361543198036362452136641490297469202817992351205854180410460836321605994891352249524826554001569866397129683186408463133790439949487138639230743159202651210414523024808320092939691448768585884134094397566569464581644884636689215799988735210810892351086052599979798411632190871414505860262696299852753771748134610948619287628965266492381674935864955215408961356620716050704969255444591013917921028950507693177495889301686944911759557339936479874560576397511878541594250319842695129174678585878796694802721135020902637796311891336001238518229510004127090563968392243527557979638720794570374074357190246061615376915658166672709497715451469343131104930248922532581599206619012621350239078680151409728712924013962023656768301996561955067970457147570632255269716205956298724922038569056896145855756991138694230603654593828970291936627335919270941680015087426941141492740204766652651972468047954600526735876847518031377181626155066689295023015483511107410891385548107272236075983894905072571641339769593911876447316223315737768344599905555462457307569887215386656240997674550053251440708308624132662036235955663965468827978891063896959938788261195254212724173176935084146530682430425677688599871270758706092957979373444841647954802947565569419687572432773132103246976496580122136822651685167297341036395513251413115595566174536892362879403474743377010962619373468948520212395083504724017438670488655325028464360138942198230435459205507493011938285175691845169978068004782277510441701214332239745830515247589073156554538860936896749579975518571345290984731795220579642159332720685942440162812117320742632745268897247966089254361299562232486041311007033994189525202961803462826217572818397814394484020461547301543876499147781124690610636136648484256660577573904569736474992434428005596685397563745374269644442335888147192027106985293258937291577856898270791198074024202082658071738613806468332493409441774919829804953204741757624592666520170396755997144947957113235130387407292789173995755782775270687475234294050829276699093054517777096676284512729906811901309313507932204513998576886973044623023806165486987814445559674909394157201467918631110047457399425394708241280750938967582372005525641132024319225713293728031015142558591573733894358903410098066217117933130553760423242942129302924535008931210470279691334643654861451932582564926843304933336163220480307577323155033434181701141639867556510998199151746794158095021332140328815581551619617005124601860087547089544507813038671685953912448981042447324533288621300933538690592310879704946698189956857857639169499375277833522468264509519269629508413469115080573133557015736465255410712473677481502771985939489172626620815478296732693020806908405010318377826397441265724927145820361697104327462192717131811654457570648273516114008103393826392987877889575491886557492415744094512236460039029160554280202591171017752141817773010727055748164713925463730055305932776377225598314133354496594462715620088421663439569491031282386334779466851803960392676024749751620345281933692430381549974589199454868049461674294587858343938451970531163025341966167435659765695926023331732909793570041124617119445266699746820350268660582873388288093222816359196770795825817598949073101394275452296773218580980515140598100883877654177502183393037817712517717717439779830817110255749827236805145730554118367237185675633286052222508442199146896388087515211520693421086562843037790772221334848765889564010750646273905869060948210977306752589437233694419618747156464380993698052278833765893550650842038906360741147846555564503172459955903498056757167377459664232505512863326021646449125223765762767359026528105341636209873699354740291968802205784182976317173561026721831305570934946054707139397133401289004875292244108801674405047478347604415399893345455469290899466769098390885248605269397574754963297681354408282657757736039216078317785754878623490422219859202458271459086249830460365052426692923232704088613514780580941458693195150066606029735484142520952341114829165584016048378883079880135026868695483668366567047854881586632753171073230115907693577275807796075147256481820319653839644994502452544226629971849427385530607292264435615599865425322349498713545032333803299523197991176952765229108450207521490080962699036450747533481718830172978300414643065196699364566099482660558219440970688117871115686915446171082926945309349615399085974630234089629456565499731780230938133831696395949981170750486757793980822440818362763923359363489070617088771564725978383705776259316349167905432840884130644633048993873764086646750208054010330945474379002477552798668048768094747936688499459429194108953906979909382957442983742228136714166596381328685466765421874701812361066628563406443856608954054575909113206346988275505855633088571086352945978509088815009901314501074844848545916693003282374973574647782263394742840911323548019591058193156480545711292005597101819179675016046169733672306809559479241848317661664569578060520574474288795841657226464192167071456251662363762562293286636145672538738139573429271552757523338507983648597330004157434705612640351477980585382254603458940980818353425909352087140382948575717136941607160137542012931434946845712863042179523077679011223010316249068408203492258870771640756140157981787366606406043721704918569038701428448250233349859124739636577621442146652640670418571077506430913086601260505826081610692429814101424027082271722313437131320828231012376104684124851726658357884921486506141982424227780768039871257650465122188065135955043401301360421702052487908877360189982748836938421902383994171291161921787854093098217566285498271190332210122358483387171126323521235138578640751952602055941861211737090026633830682678917994265706255871219212380863500764123097370584011254279130846400183687086299025212704563746952225252358128355119043084406673192570651585523330751389234887009515724536402836337809180197123682870111182912300577802602009437170067933893899340848750486713445679015247756216317739473479114593070712566089237016861989015663577033152016300467388414196524300765306459309692553030926533049678382387174684674476149035908441165304325933188896117701633921166945850603984226828406950786803864535192106727894400938523875332607891651588829958318929175032037438595032373181869214159020254310319308076491796121866678741879706139475431906334441614393242403869991510292991398220136369265142145848593329709388171546615930077688407696860191338613437752084379845272715501606384107732545436010751395065425589240658501049292509394506834927507398959689297739523211491215960753198200486303986387421392988879004816901301693055633307404548007841262054355912385393951144959640676608385675279595715786457423193484789749094359075889448935466437737114335818959535778206252654070215362476314626975102513234039503199729699973179954164553673334853883283421463843832507667886000197712777061370096816592667167218538356680154077502915010013729350387481700597088903772694418466503770665823780433418699607934061583948413385483874854899634327039686985003103016733060516154682380212846283957969333704820270266745797253074980198580612840927040059954692010820476410869137589596503442533377241188118885569187092181234672034872532214948388636228510839994716077409183391978824683111893767876217344591487924840090270701076949566949373845473509497269173593544857503831658644581435070410806626535912561799798215245835668716692467349032746886742015355218745700890227410790860705906259524247808007992472668702406329913371431722105502938754632606264879412379108904141741770997508718812958706717360339823763197759562686557843233641344462006335577386948123150154452395763269824150881228025602717772780879834693791543462420130755438080774340778910842948360243038422382111882280820348719750903470758799510411809434757597665040438594690063917284512690647107479458639891024321735496871575237144512223655452295688277607565956333436538486334819079113085910885116747296218534631361918304665880132849191136878460431589888647781752784980608496439125563456767798733367689936105995667934665352551742837202997687519291262654251122532701001627122491963515386694523240510703462809371056860713401621530020188640532949934381770340468136644554243614355228341448040264674019374457746958215659356938466017026338146442998781151524831466507998533884112372797814660172160673420434346678019944066638545379537157221883390139799791970431070117178836050726108035866241829818823047628715485637130160794206966103865314213511994248373837742163538383775774503572324462833577279370865670227262570641118978661153432956077324766241946328848647214024969735843174183855393395576984551831630709731849733454116948778387069598391493687532096927149463279489449227274057076889173078830117142850636375546448490429360709047561056253906388278172364580917081823457059089912326090758870739857277326164422051975624135568872389358055337175648357931504113339151861462467028366762159750364890859106001237001365798857848777515813319281014976598902642363236844803025236877661134055777374949422675295513535442761706791977713934439042045850705684996920151080007010223726301222066222412423693208056885127841970497110590273115484051334195411027976047464265082665809075530478416434032245468155999436365047917422578900928421102535887284042601670928309581102331585693016474023566621292815132977471484389525320408143485265277654479274659685829884269370996685332199529138824898171950639814719344335779563693728671306206190548155306363689045274760381011182780698825051344772810911375911540562039186259695548239211628291060216126255137147781812522755435644998159756902000536492904169493903814050067033815552948504247735029184687281372921370872291746222264367799133879307776721135895970378955990081908938693688915397107911880517611108031443538510397222885443259851691131780946244808052512972886893094874575962954515847065900222822577116540467604675724572143580925249865121900852562146071754400788700917740191601759225027318566556256006824985238545254827969149464142136642615265289764705215441177066011756713961698793464555583620696031125538784711658096416029387037003309927521184705848882934549741816577063574299336586518533211836596609983468867073461554470675726140762149887571649039378481797718111797413408745694519491905015890282449543306265003724923966019118619109802797531231095945745477486067385405292944970118478504622965776047373524563448255847599288745244592050454720387738056120524000739031766220066976034147978179294934651195134353991201148183520731058523574318550394172628927110272098586326707229248540325555046481597648612343623499570453822894261493820819581033949752216263725592648933135309559098828852884650380901699842108817805710946283191813082774612383690387987631765199745554757979208337149867792336925716773285467523657555014194689865958262106251003687103660733110381472455266347305835680201563794162831377286046784599022953586861505891487134309723736562094060957535367916336127739935851193706076558128201380550091056973606716942877975787847353837001815496086715287393818939328736242885335953692045093040712656253368011448090426310624588186058285002120156865077123639548623859876484191786002129229858894142773923641774742401936613693134073458957709038368268951026868745575426208384432235441963873772370481640835453714314822039962582966186063818927128884871271088074212663513941179997723135128877804245812487969468346141809433599655455583042824393453113908936348554612553312151762961054749576091169423178694599866232820752647969823553523073212251246433028258869877841136498289224710354329422410136931365680972162402101840398445554820798452872260004297642804862115877817308218317076018254390283706368669486930749959127768356956748993469106834105257415349038153113821705322024361054612165389440951599617250467549406638040289277749777985394222862040784817714002320722560516464416445153264541340146780047002883307083774569407634008036280958053663924997755953782112903512223031962371547170626544002089633003088527643201480760464146476294576874421239652920338363507471360832902180535564799927281489520971250690049442991610158389375747492693685820927298836947949391139349213930242300248253768705676923489660303438177573788056926159566356711081913846755408396502135825808274169639379977201848750736009527496407073716864321959506915159552237713831806806608114436285681394310473038185839531312518068299390876113989831709179712579000243070445392517305174957920412483828762094023189791912600545262273454608358115749971496766086068104081852368575024398992700504329816184948817722086675137295799756693632507149846400018671403252988046581959087219232673524562124772195897546776384956691069130902042516950429338749408550905927635431560981276445769190801781185578594320612883284984205192582431200481206056498150179760413024529501285869464931709077606184086180920966400443047158841442129895268149009446869859583162590002273316995421119701200196544401023805805599874310539803475076539130390765037263520677379276302719835905806623583341434583680166338802982011872636600534114941390610639064724659401984088263087720379715784701031258618660094779808964660166327512056087450341569964169061365950019051642250602081357505553730702949701304727110554579600431112407586956135992656389335158330293860350031223205845012747542437303305973271171929213382944370235025151252187037488306474878048351150853020593969973612132388146622942405519844755065451086714997081484171410723116302981026051871167857358368248697176750224209698164966350198245041631785052520580966644765354238618697346812400334844683054254671600801782129820684154453892383727656457556649240528956503316977783370662756343086103453860920409369104527137603067056389149538628081473253290665200234324432740639375155716320212165790387971227799266838637692263046622470524880832959586538072108575362133547918732060458913217485820421816527139247073070566928700999071217980057830831604504345507964292393120295121608625448173571678055172196166987048507365541407841709711536125969633377239470848769953176541282426788876276890500770222827387567141428187005882847749775335711548393149900187332946278059752182837856707081697003631851741057823786482173715733480992516378545412174061638446819296492688272696818386352662462353116334756136477705423979059789634587797806705039802140021452909603983594423982926077518642229970153566094124751751985374013204989175328241011655604560828772336895601563344296593510931259264621094213705379847559018238792025521476961313722797611978246722413871049278536455977471373177149360500500264207247419241212219102391043812281233702207997189173166459008266597441302237880115013654745906815686338778369184985907882061918490734147268741113120405364080903309849313182168303508803794511116728241590017336440730168594222643078276665201196822394436079249035525093751929019802224413583943926193392412633015234095591512569392571734581059557732761279030835826201870599465425545068386407427278374519169620195384088761221681729709610052205492770944307056150119816141912901441860973624783662511815188499641523431205511031430282562788869242395018860416300163966043565151870405795952051645553799323436501447016435136814376447180445016038234226056972467914430907577986479453818512956916769400417626727419326145476916643838043491671400943713030698366902449736387395528097511907109292148516952204950123743200420116335600830547992595779191165641988038197618575378385031257139792962780485255935728637213491146543560017314674620303854853243106818025148230710827754943916161453011324477504951365233836191726399015299719762869123032543219175622819280661244818204065994719598477353711221929331289509879730635302096955028202241248517038946684678441317644694995764362202664757182737841291179540021599109787059258596125723356350283600458301747902578710939138025761817842973389537585191769401317682167940779413479644587369359631376168864645285288318684693013061467290512900301814642500433449447408595630852908329812559218183725540930436869999347414664130199498536217471630487190388478512606836175980797588990107789293720594199442992404873892098681601761606241568483534586898552796583601519687891997859577009208320131816249750432527412932919495107265619453468773005167682048640465055507041225623269379561310587889470353080108841787524575922179551817416347587750133833588855043616807662846937846909562104124693619729528791460345443400290762685344990159144559010548823386339959896454287487871633795245244152510773572117285244801774970581846241453806823485622043012909129633530153739322337615334148796233896748014960026185784401088132176041727974789728713004926270651261091541194163672956342952541791814057095398495469165681264071423560852070944050490983727425132366942566756789677327778321814011433636394986761605905474657148985250150847164912041560063183431878105568545765463723835970457199960871892797387808518363048307581956123710197565386059314437335829003967987172238195628720297004070970432998938785479051999306949187754253741358576012603988820342543691395455239817742740573683588385676888979162103709130160020948754424012435476815342791428705533433564507907532166427909702116451901635013279297514656398106006435056103850235408090369007308292508585819194480177695996790263276959134211049888272353956884899298430941808891103550418560072009093848375412005797993693297482401956562545155872056173750627852491378182244758068937389629173053716674883523330867628434680372875591834554807088506217094947971902626750436043147368551118844351511960370128013196155028867409036611596604470601964063461404740635336356474054936237563615402812446731142412020189345760771368574468244352105022561506779403585881084882700942203312012544546913688014114941760523084313648996031364024967194648100515279458348077406705879829743764049509001622296515897968679984937898293931909751314860550420173711549378046496525824693000372435334186070777972476715523743664481466404790926426249561434576205135909736055227150436067114613415073671384437887649009182576776122755439981241627339531654363719652605365990208919708933126343671110396284776264295873964176631371148491010748748282257432734501554772632273311944213690969004410777126332530759093780122612432014927890669585187783616707271605832254010979705103325981458238287629534990485309465121620182646561210861737667462619952207328007809308116387383202040881468712720045799030614804119475142457110963321085983172595236462875457844474534697037794004360677909356074149127508843835372766456673258075813733338206238858657615062486901206353617672084486561278589364913309962154108138992446199621329054182621235300066402934134138246765471878100869172217559985994043108811369166417141730757975657492553258628718110966435561225345474699682444498039664922273584803332883977561263977592003654531089123831355217359310618396405767869753432098808624371297508928022422148713048336507637337239794426743331924184598268426670309432586509231420246649166612199555257602428616104254948626759976408512482675308154130371183132443739729582023354672697951921890739075968396767703184486546304298278626957316958573719153620689571968438375856392822908054947598454157180270006562698427345069678814578692623053696438784710695608950534115631182399081677408697623079108844580827155062090741422221074912930834580203516870780767527030390455583701133054800006527050732951404581766610171457602725002488149509363991016629853107064123862989307821733261950352533595765401611791869897892315410485867425728520805166694888572502815378682480989799319636928888915461479332233202698255289386274391949583661564642271334425585157059489345409649815145038524245152119161976698467041271236451899382010173443081976469060831917698696778114362587338384615033012107462812393218658786646697582426744047288182705723564005471586179772983573473153939435923459113504292863148206444559692568609825372019183150038433550696524659669488944569504722636443580777804537516507435943662820716854476856046591687681749409813859475263284066769727433673515797665581523599017693598883803750182873756523578822515083488277774861326290656854305867957806311457258310337443220017844466203155580693873975498884661258729061115039388356817064196951474405165532720242082499519873685042891549541815552132164712425261664020756039586521245762249078952897054579969223965931711326451948459044311697082190562903051139552681211814442804026778952751460124928564365319541039532539197334380669076927375423969327514548825297294080358624888372450258108223891500623019828190994429489324504889210692706460153835213717222261836367780780885893223023114965425574204231569097389369750416800710409037950760909416292489459359382369939555678156105519432238500479170709767300546898335920832273303077058407172673558278712729876586527076377160798599500659703271779249429123465903863954072676299035744445333610801996994040674082624991618400562238441805780591129921294203836368529911675426021264104495800734998292332770758061734994080470555508038032563551249637777129617434766565614574329296528069051608530923536706882932369679850148003363668408088423240840746350505286079271192893275717576185809256246306491413708041844611585614150845145229821461551051703741435700943018661866115838293677019526749853777226076444941845632604321856883611921576915075569420900697850230884586807302852637233669290669241327369889783528510442962685165797866318762268164115301190270877868249880945570477767949619784220208554106720583958309069521149883635646332769062975520072747014715603053558471291472381918420326762474661773213437545353748382927928679997221984653857637070160078762280811030335183691190159275896476872410069067803403268403787070877067163110906440863286939709104965189231348017228115200267762887606062617627062153888135523812168338730601349020567403000827330579375494124151021597985186781299557152178482130660584055407438693987681930502940675198503552904771207847801317324690197079899402484310565553456571933763224906663599145577786568696342809712401880592140404603856921902940756912987246437908491895889629937601443369686358836658068029309663760901975738048526262544842879915981392764193138791772837717783445198350269117894537097982263301991843937433377099666963199673447844530162030171529386633625523488756712234190332184962862327168361262029992897657346084677849084029378485550430239115131616406105228277519905751968544780341798740514065242827495087229805897022003197612833202715571452932766039998440396565567382805824097762746049050121036306963232053907411594306317232773474122614768755742975275585586292950399364230672019325415884298408498255839415361680661818263166879565411872795968131133855516991229792028801060738602271263966616955966957115209610718231395299221263140715347012289085598110589133446683689782314705393518690421807363680806090604701253105961119373012709307884629710791877755391204559616537515909918653288049159418806120586323289098458040565756481195154383862849735437047477401563603064908622502741246275676911453100667714426220023797968482830182020564736127561031335634718353618429781421254271927730246704473308195844346534442352980191187317665292427315582337973014837179765536151389265808046081891592727055819353274430698306318638874991094564927149922364738051704928576703354870839723677156667947119307688407627952158859141926420076484331955533742197918297987128144701844885850064913453700994689098478734104355261292730334753511621718321219111279568837736148631250832487314820246964726917590890466802806231526983095487649417870836141492026484001239893154798148648953266612575511067514184482627622363002903212422888732288513484012317752184722711152561716974506096248953601467318101430966922881314950554454626721813234354823368946095314199757697039499651843109306668015983107778623841879326194343131267610703652710799662585681401726153178838763280039734441206756344254722666857814574897180149780745046517396215270842670375785379533471433562571252917676305597669451446523744887087942053615309980290190382789539917995038014032981310315542005442368304439020524958776365698017999421048212328047323572703036717373215038675422647657532702334209897272719661344167084446332805878870434427835141348784858957509602165179158591764590069185030348850782318997907590418739016099120276524097723814672413856883940268689594484267365194236628521719697878458639696490327338494629000520605840032339114478299396054285163858789999089365029465221831273499338104307754550851636749330889359961412512696556990164697525449608774237343696417884746316296582044682971512313579957039509487121614718171271040503303267248967806333608760844450185042252085858548428347864923290233619447181273591786466585112956544899716266596375284770941489179299291530707170110815644304771175615152738936125328207747419149630648850040517614965510424483794574247136717443689513523974454884711095397176330697929159389759283104642074406379188767300850328364720133406064911139264764729530440358545928289179945650381682866314011844506168014266873660828607985621079205669804130344105410862343320982560775208236618721117252831727256868158579527356609373513176588973164567842576640623128752912602939479473915472216480963043541465316269915308666128816473573944825411650094683657646202828407438129522083413968990622767287512689860181240661568312721759635120516543819894943139214057158926817121362529250038248691027258975667841024213163284121392528720697384371598143631661459858697827058669731436805447125831832062974807484276568168036167785015137622919107527212205099500584321558479597699274217563340548464895666255760223712492445568736850178082649058524351526834542128205224683076977104491470384867476595888618473991915481742089037074388093567350568282217087069468137604058938303544248521435238455744217349331692272554758436481205313085479573607319848880882433277282258863143055149339323902530416558092432757457584305959642783129308879582010290984487828002272336553640770113683624995478998313553770105212616878931852668677938355196092527821232778950234553058144506806970594307273735925330589573401843231165124693672124678968269660301873578212523481472285531247074878873319277696982021042652395683366382841700333814747027752084335362390527523793129752840825994677858778686613708854561652258049567490548253475070135974339855696773202161769327070143331821092037370014599844719337392565331504411050210824128935770021864495160649810252425985219682589932798484293721461168127676099424962442450628735026393973874984970553412749958303768937539461760253779621830619911163776127256460725958731235113846694113413345149284298924670951001970205071758009450022831361223188621233821640112185968789095527258493013030632379938355759332637767919106161469793475760391285586078178180335470234410347188743341100069133394284209768371605858634068068390421273121974298675157450911714453460660207135259552138641190059804003824859953510764352824519874949626386017642166509825291500637701833053799105776222987248140249169463339734942142023572217753002995509134982018996022362922814633957695166759957108401721437537811496220164690471383953821012740940544127254545718624383204720583472159123639871036630501396185309582219132041117493724529944482076350616241401477503118815949457900886822461489549637150086450620886435709234616419469639590260534976789467959255098074625861535277533294405484577822103095317573548888301261495171864089552162800181858755654203570896406295508651143985395300385826136385515023583541069675527842352174113353814672415383476756421247871414142492195633484152755173747153668185077105400098289696812002991319532510263198773188733409122843563122350975638962329589790853912477620017612538381341930604272855240364877320376730288387213711075476580100742183731214959801229540950177714666224229335369487188182555541026372252241648722025331943241113175006380464753245341013016654631630927320622960641692457466824664524309713983919529384932840259498338712138889390162243136325074931440256221953979048163912203924478048368090872017603125859800978184785307933499884980993132815389372156100387480574786664622077992354906586919744549987298544292929130808092647340422203947163512646754680117497402558766269628087450327915238219348045600217047028936164250178624549514506855054066704733757664727790805593899891448353091061222874872552322574596127279714091492718899859545664962074263239289607236677546370841360213337237096149050458635366966896245487158606986460883473143076364125190882043747503023688396700826979653111388956310628206468518632980471197806588649365189254902883764538676585624836429026648152493409124479446736780003612282427459630524646443807633100160342794458277398072683219427227544294403244722924297397433694279849060321257947875762187613508279967909218880397757020271691114614424559602845596121978250526134582122482231754912530868026746413191712999506181968611336526205990602935332531522390754987451757481417039336608035927047095291869713717845392400703447835983754762785796205130915754228651431287340164362717795186624735498063197485212090046290201573787946391949420688737822946409601726764660036841282920615078132694165581414103632232319663141159466774171768862074367340772194944996569879038917850159502026526964080622470698964199137799599147273804337313348511737855662106262232123936591732528035927641836844937457060062809555339274643816511719166310766777681615923772974817328331261151622075200129096191868879861025028613483527754152047446294467742010711881014642230555440896269144146466202936379163992450421478032902197736608142907823781812463171555864287984963989671615365751040928134288986489728416175677854613583111998467767840517986073166913641091186940717838875970562373517945087224813061148948430455183154147237790919670063374955124262404776817786203629945249509490003700574581179244631568871473136027332272944628155796075997862591100299104233958080022542924919302759754999963891004557728639246766933587837148309281567358561448316552677062231612499839642393795587813556042440601163737891391156437941761904175616675983567965175704865478829959991928037515096691547855250143440046405954607366155162948044811384174148537717029764824376586588372879897617506942613790612663478567385429052518659508681157138335494781260384705238791083257105655692012738204551516027476929192718031051445529594861410324270897736257592214527200459292598946700851362098946236275972848273968850581311832815370949271390720738508672329738408528767912700191311097832894850255134977337874543905278638767834595724318739564248363518607529240882567059505182747301955409597575714413575096104755595229564572973097345876023337292100875466290564646387847768313635223967276302193501904018764897075922731352919200923181499030415334322987344555900380162155438730948579230533881799025790477278192410377725732383694617336984556964271307190293883439167798163044576081417860444744879160949586060188734579732793708676171169864662544667726335253992512693476540621507430185051389036134580192990506280850154477748607827258528437724808759074896070004201472618200585165289018105909762057743127422208562129831345258594064704340377817074207755306100745835605037240610078824899103978417951053454735798475480104126463513119851836073986959841303351411772685727674098784048448596558755390699740343689579872459700204709926900677048634525033045637274295447337845732622814763834379753124821236400036343877687483927388138279932657995215573305492815530195074990686453144806931842553371941188302922847540247100270819552812642639161956188231450582115493030798081280182322763981423507764500890659688068853083793254992247521993113653801930885190840645006794605082833431560474596040383336187312440414496183532236074201272610506002153077574460176665269996385394764982356706932573727906804399490112612835350935965753097184063722500320641796900042056847450609314672895176205660428939611651628715886666449805652987377932655676106874389441657990993782625515943460078593653067727293075518290377261243006003143814100996076116614752676636202071594720155562637281284835802483098635111651954108548353278866250136707241151524185293823236888210051673715231340617560783281779796933651690543796531872556874750400503208217631547878085597965367945747885534668187861431502394624854488485707324388144718356222799001709764686390688413400895937562080318430474276970499553949857803067308514185171450678532698230035633361655909604452237923875680688579335744516306685056253845031656826370993792006933925577157747305173064278980427288372692925232240840890866107797362865480324215568370556652043745622323502921613523712959248756740139786035426699312943293115912889642134173129331381912001584391625622048489525108821342677734734816653146265845942454174816569142553151471968265328389677089208804317149541700401120193667123603901902254203526738093213785732655005541815595192142962319979362807876765514184372334848456911601346320488391650840965529370771425292393824907256459501856957744103816395692477177868829826134288567946500703227399759055895129596958907962066269156818828860650264600974567718492223173526184196364032608119356663669520405957384832178406344014530282414726602157954420547300720689923161508729853422387421668689891287988550818163133293693159035788675521894747740324997372910959973071981990595680647707416060943801227493758018978766679009552413170861411242398645639588201337505234415164226157374304593344604664790761157795137645865397907167735850202793626572725191464513082884198204575388129902330613307117264178360797118890748669500687407075399236166228580624641855444207157028029542260698038956407613787535494368319431197710151625931401599107570548427501623006404180011041001142637641553161813960225790558783198132166021165016302835392259434475710768815355547360659271726555516454274150332537552664645131507894170138015219487863884775228298264025461893862323507824460687693170981716771799425462257401648297957207921872730016544211361581303434211072790898085501260096750164509643546757504145879877183208030679591621825627053924047421695244068410909658062952552377261743723763500826961022688702243129584776023828067817000071024330222265638253864001609835061664610913219892918913327590009051755246250713181871795917754649745504540067994108017646001513164573786862348278594856392270917887143481758909226531593018245277903568571827534190129089040721972019739829849947486049986110399313808732889195956416180216317647577045929126813419483496390616827032324482059323812940137575606476737967180412084784461962834198065094990402225051212084131721991438796566622614006331168024533759061718721254619127567208287895502949254994577234170715330850698530781612213416219267930213260142381908615711976760960236267365331005956696279529442154531679840426708504639593079850249959032275117584456677261696797167706153836104916053598684665069142772545891854609747680303069635714098858714476098597087821751419340164365225065063302697827440767530319296821735345438231918365191802660281581447152425388698928346644182519080894973071548171151373944704106909216417015829825830753620236333635282607082165837755653074158108145812035187001483088152768668527057378300071779071444364659746350525419034140050510292457177046573821048376135307952454321278084282040220262938532174485983966744616324206417077710836271127594561446234490435185232311059416785336891897460186411166831944166272169762714712780945517738515774545580965255441642525494920202993186048775590380617348289811996286736655859395217438809920712671034344940697723221636103546440695891778810219203387082999225795374039540311162990311321416293107613526782143952484211841494778951329901295337110637724535319314224128357222013681487564752130898760385361447093753070881274376120166252587525540603032670291923877778738323699112489366812783683668666751704752088743356870397831664376437475172093706768843282295185539442102101295965698173668902255009383678208195833896919839480849562884004762630533327022839026676611821341639823352949417102226688912618746479851010508228206178089933081781488855750212836865487792794607223911029504065628325825156271846320727396622884140845356607446344347974748128489663475137362086538544651277637215981058770197228182023073411908263170937486906533995835369158374925539671025970682046025577446746164660154653508641887917299954278909928496998513780568595323700373155769174351353330168363170608318219973525964137442379154971160672541268274926813995291476725481438484169481463401644942287271817187169356616598818597337395769179348087093166157453443557806315905071819356047338532631068876727338983483698208635558226383751735151219722709945070035200619388977077754167131826218017991992304885622591641789859509464444219939024611650957693143187466173020722932709148391532126885790361987308393003591791480287886584992970632398437515583912125227724301158930765474937774334880566923774147663047690993353457249151820429679232794053009255315770119551117308590785651361710793532632654004238349982159404949762211066148693677324870111330506380046128560608678926563617667473306763319223048938552097136793836847534636548295120938827127766171482747518554507526827781406801712343713761410908012445989971525471304240072395939503501237865400400510837162771626439355572650201223408598972375635407090082505135065008107461936982148812306196563686347273577669186433585595136421432869439167825628916671260586122735650486707326651082827344376744645519072693162832803674839057376644329211025382917147601122270292540065655648446962797158407746734936802850746637532892271234621135667011630690820884791878666196970478708682267053229909090951901331284980860913347320852422582144665115303268083282308318733510866698368093179571305702204137298299592243260830562532487642020903258505499192776565578871252254472851092830318042466693610736152504319510477182107698060326102126325711506742161206940882273051379554017150398870505182619614472965323717883861115060089300073397231832143215559281715465169102865258264501869870238954551776676228993851012643551133546905768430853212088424703796691542648338934873398635106256277083727745707611154451689241990291852900641866349733898528545433497331640119445429665378468574863240164609175214780786740753117948085809859988393192641921832601360792935967902346549763753047266651044076452492010020526041362437072180635625090633352601485968475771556186479732032629139404357864049170803387703838843635833779143333487109218007421609306254179225776003640791693978330458572238321714673751442054253226542600099050907018570357360012453507830198100870617127165418407375519821718157953271659168115476244496881995862563669648616195339147843900158022358521289976351619931649227508302719282218500836869742858720553020905312990093827302116556015840963873363994132460835075378114123635726319939570127371928399716604915742467623956264769649270470075060624518177899652066525786983424446538917842215495022740167599093870109945637746093060573350174415288661736600840507078129567096097505368917245956200918640532460032545242966892692296006995652941435578523761306858891400184235898674282433172897157402263222418754558462980577397764423453182449947839774562447843853414277761235141102895442094718184300547893057167761164036389809953620823682111596254507940265366972820438988600359792371430344436501455282648077804488633329204583535142317469572336601686165176043632681282034672140541506570682264990892290537444842403425089387573764028137511148788293647830440695854625212113957309685264599276031034356126574149544021752934308300570025954293353240491603403471858882075694744819494651581966009798322409961466805343281871674938105201376344772486322521197606439268635113383879416814694731399087527444178437370306080817700818532397719260464470375767872944126908828683943059779690009306964992095086648067740970507273372640042172994015248784258943204058016938926979015622542639837786025470851443566059803663514278667426757509074932283193986911911133481461811822836331302636051611605217361213033535203718146392030673207532033230330141554633095202775866804866493352879167838068936142533177258939689774538912848922446336426927206444301321994711233151118725208058290543553456166327549842560881060988058733168615210110524636034307610971058747147391612885088753768885381518514589341097648054415816763205653338300212854989808907140100855775093366431852691091487990931666723678692918108960176813968500510577792222551401417112498848273976509914884312652887269917655048235838133396179163992921234377576482345817848368968870426719542969690157151954613346719205142446160581334074509105453765544569192244197106619383119489046958280261642351528785032063723534076177136905780628154119426810157899879364508519079360747272692600387978684162247694384088512714736552111368818690653661671926525832372950767687219234623256254855340041537860969819236109590099246788403178357497913680681161795877933730984331518913813351035026419353319918170049089685538353702519589184641063059304132896861181421460191449570066250232277229524572030909245383639554098789525199012438379199548725543171059944083261939791447460190937817954919481187316642867364123903984432781366147044400069715383525287797595902095055444906872247807881554732798633907499760467177059464612670127698331780004105381069145468482707422562655723027533261512896877487291954302401138792875052378041419831335088807827380127193280100838903624165488075641659953321459632800938505772484484440193329813140763113855189965666173633833710151779387538500560721516274021029159614939006865429269853121227094081029107621400111240792663533598450111985046406175181312470644762902005760374442460301604093135350444557319299513199537896454468751805121813749315698837036071395701281718392471228961611613624419250657820377489158103093908185979400935259825143119022463160923216917876716893526280345806726458836547291474476126357583708165052202226329067660226696507144804359891713831452882369503691311147100085654875832144875639147702357660891013882323402905174089065243857088652782005978938068419937199777522400538258127408946006638468751207468149623201031752985181138249133127655036854993941319096273513448370034282590210298196092176470113555827504886292582194098178616564518258311988162348509283728241372287112538780133656647771876351684762240096757600736390918594141326876578466930334709190600866202295430700019195349940602102762967609491636822958353589496544656960638865629633209895671738915184396358516458117281203233631578326470217192754060973307439063999558311016545772280869104558470796427139681724485133478499965850192929570883084640794756958024661469762908121195628309654904598330217690743431694964277348168944616432791036104784557732921383722231353157186284980179388149168395348197897681628776805912993920455070525476368920131760398493794041538623924889919393592261406383378247819046072025012746685512497699711100770762412220303905412600861025046231718285471350010024082232753395725305396635579884147681839003833313765353494352713303375100382104538921452934475401375906119455945127580247227456546060537723304390785800883960861276701491964384441344818559477513661119792057299855427591148026607880148434734881355584890931201131138688686304935900449784749004236573199918667363173990938550790609471864257079825015826605278130793704186567710887771116820862058837222187652770320643589086746807287201894165271205860343955253144075801781593820782572954840211816572993618179234732047484861391246245652882589949950567147018750660061816624697307355906068052723454223547361176452498813981434322616821100827649583781799623520646756073397429791741277122484927235918662453656782555029461004647362861273121080210177444671919405236768138746407669725336216833908355575839518199595861676774950918788531303088659740969128146092257221613595404447644440651317777126414104885266903444758905136684591748747383534661339470830300122148261014955451850235257948710559611128620815613218220900853637625291755897662510101811991206703913194805864454405559291323814246020044147469353153159273097855508292208958668368537015648862919020846974395860984069603392123965270388462463866453589649390712920892755884526361425877714723390866715550754093607087706912368916753391232489531920260679363204990675246099329868943644734881329211663611246265944768407457594952055220092457071325352523290830920228916302675419230003513337715331960517562664248062085372455279519220823789412585098828368605529605978707650125321458583719104919702958487575757789972903607273004236607645020737732939238533520642411091484716461443034593637496919852218287264069074885732808992692064098167929885168479172897897430695593560394632115006107095074237246498600138709362180133351984849886726820131908150004248019602505160218984705954413735736576475686538547855766008274318908302573108763909799672886518792578068091501652491517194464224807363009550369223741288170371428939319442088826654838632607423637878698309451111116741404512512427958952363526344698094673266222525905098701988133569091268757305218048390718036552065300834366174766751159764222903830010281002426420640786795187160985400756170359014318406157507284255505230609706355292153507254847560462357950375199046921761859424790236815756502814314961226194351625789933416598641277370643206208065615512678316925007040567661723590208645139385790702936266824058098438084022341516928566655684307855025543637458545015677969779511071734804367990362939163802347131658915849234882760903304509094809207199016949596727417028307500694812866421402120306279067159234573162070867639487510819271640238178111652820054882574334526768380603766883210843012909582325818655983949209241617182148146604686225180500563347022766832042160317230739180573249432553172825463919925027318764847153349156600482451159567750103246569055243499402321078283080530932494315020326594863392131068278102697777084826045418728758800468305143177782088894956272552824298131366602536566398189554573134762419562575733140289022127208042645841583172428580597355603790108322699298576553601432578547896137831968640218881508678340781336602082989219289638756623069859128773408585574147463261276020946022342885507347706814414427505091851463406125612851389894364225134517046696581467050457499024809056751224309661703329905254920411312001469155465608386952137462093089493186259187776292393154275950291346411784694790206149758525247853298180702024880888697395463478987184692225652645063677755717047207872404734866564024930379723461115513990757123899713365732631002334049575796908754931467794198195436273250895692848077652701918095205649460923264864945441423839006999765367801051960013834971045666122921512303045782317651628552830410415426446818671105102734063858119309683154452360270088212885308187897553024612913788211565706044015098411436132479833394221195858044872098100690726013332174039303783165234580433727919943767510528996392215080984354710796592424656922187028617348481717214248350813575877502330443964312724190846690963369703816376569789191520946232218285963823490588549013228038428215520773658556808548412814139185199224352471383986185903757175035111192005827593789341862269666195281270741644752260190054059011500297835281414430847317936362276295454109251796615693517742541642933666943707174104682513891056231208758745302100887307042480222348865593593736486447287255672883244057995192124665881339295305020327781739561399737813112942123048784368024645550258461930377773465808695234013132489113966188508836223380485903162038892339891023714566208801917502318032725012369468648878412983907608919603570365711000460865843649051202220133962280357609957599836962788044361350875263667231303782557635845944172144650038169689892346791375881037861375552321922322472059112455448885254808963598729318328350238359604867957350925039281171801323152794005366702972599003815604395949791175333659884124674266551154645825763489061991587514887497856168690235335322886329835579704067336428385929263236116096937935831704071475172147759719789854588672966002922928177100297369039622278831240730622070663031511910309435419849062774969756846743250352985452854476174380526569533578909740842854908735523990004212289387908542114014473931533978210361081321829194238332817388270725462586472385297199092379079606202554301676648004664701544774376922401243114496684654737230902586091318041195472934599665813690110847720688334944860518834911104757968815656478814683446718883673801378672044973012974111125648117753264091600686460730852972803267647120597725361941496094092057566261227101484791975794283583714465470889469449035357215467603812867818787358852942488086952017369516863602132464583829625749171161324402972785488929613626307291071503033532661103614667662087418584543612232620151992290113529126020572758549127001072905987484362589538442334886510325953294538927239970821248612833976373940124349616008332807602211986526406974187691767145522623016592359951601852445922055473488477764646277657113013161802949335771029871404834943953089399464330841112673289604127873855530033375276669343846892678537664277512662155419135566527854901003702284589002855826344493153383631485469577308925978793265184673365166623515959922610568737153257440205065662159540885556614615071522892150177858041013901947608127552234534890665639619643933917273985579818230610138707299980829907858294990177242958551515555808045660176694630728752701046576632313299187183760495547189617785016997075360335477215528386554252390676898522368818746033330050509356777918598319108252188677677706684040929495256113745051902795942067492736621167855622392294601362644131146480403203509393414794742678445055147967567899567011072346000270331760777753063035252653087755864433405977026034608844232095899734916379997553963932793884095747720128818656170564593343646783148075912584797157497846059985125228034589691541942172181570916285951138228272766975240888214358767246627454151086359395798342427223061043872271871619107322554600622319235933310430514352900508026281771194211415193707708414788136753377684581489173449734072327835820871761354504796829437556187083490610801670126284887384499637113648966443475283965256996490659750071784794452164643032190132833147196797824301478086603419527908962168200053183656166896664304989465436339625248802433542263464030846688496415574327879124449031494373509728596186575819555037379980363688639418177983780569169728719427752549774979566556742448641956168642619907362860459785350573141539542671820455215817150632061256318897249816011645672674110857400612823060263206022003117830273687731046478439747011468839968851980072442830871984619468889735009837091611014011089567812422910044246408666549677774618290580629718151149091101716414946173976776456218177685191117063133563639949639397664339679989635792711299619525065226109220408853906691933262937092574236399555595972485107098180957384046559179122010538321062865162295178987546194082141659635261967467848041313141253974200792792497587933486152050415747501030364902618895338684140961532628477964273232385708534825836672310881338684060274439284388502439282719692463281717153577232100948920858773329493542947544399521891055350620724350748120361913384121330730288770342762860785224457709575502332835285453708436104928492391918325312769515804243795724958258914379616831389686683041530777639536802184862430788367847927475805897261366377853981754797348460015563117177290377824155553301434539691654567287942822626727444286627815216782032317112375091165670267433949513931516667374729141944007725339040472211293524108023787592980977973697595428631056461266659883587058561244721541777750441963461227395711503360143421167356183601487240376438170050427505132618062030843703067292102312458406210585957652327170670173397073037744431460694562890329237521712745324251368193362679834308231080193331288372926918423519762839534925851521458968530464594722923420228154846680228875323006209419672763967371213827528680473351405813367475204798683460259357039450221413786118390689951289199369498985919485147035154849655377422083827108163845589050823613648066975274465705241490583351820794992949492021181948671929222097793180179922565575863270721484822599905112429047416394988022853541716033326603607561131134579692455456167510273115472999399694230536325891752218782419511975033483989227363344144369931653774606883892509612747303251207038454172183708325113703265963758377791892108943112860739551686858952258664230907566626647440922257067485637674833531956253597482663381483974611821922192075353525280521933946245208158736360526842747556399589807885834369158869342467063360071179537282623515491340547847413395401167772529140414188063177432693052327459967062685552822676973313991220531141281402263377860544393446969952842151572749393680838414567328166796119482538459040687484245635618058927693221879766431329025840184409311442244097498307201046093130758692571461019745868734092894397885518153096835990864888249793068595791443416095160387226864177348341654630956851874970457314424105092641658510027967761673560537801708998775993001132863508012575815435298275236220461041483077695795957413781702135204703363793979118319603908619224347264999013019592934081622969144485454140605864900346390990132148318522934831570109276900782157230696723552104028167379457775657535743122453796716454367349060598272156511458632691920660406392181996667051562873954087918686302172959740276229262960590297668869625449163722613667439424023059998620853605128600020174872266173753929868696535032990742586066528374385340533564444204830791203213164740592130759043924268949937226374759252559302528190520552995080860833524020384086739508550734572946453234023961230528006829515129996661533402242996719773991738147884988519219406014729807406969102440529565096150454816651471865860099147273570855572629486069858160151558155640824323443474334706988468988968624651136909988013750855285828710627684113364868382454671496915836330305014613385972854385311042972822323870819540895354638557290063942408593047194597837049321180840936761928630535235915766534157480002137431248168273049788277469487483907664151689073470676988137059611874849912189245033736076196636092280054314323564246161181195169061847912205069166509894842322548052124001109373085588638073865637039486267964425327051962315424687504269227802937297357843896199829736427274541292575680883066914759493077698241808217881420773332883295961567653330763796270124357125357177996220300042115996419758902767488205923507356568918151645793591951644299471535524634166367476369166158034276229293017657235156619423832771695413550306640179530175921482312352903155928148996067598396159753316203352859449149522643725021358591019255300158313682211668212789259157324542724247062962022892958889733246202980007889323215310292571533996542080757032098145981498808763095361265718385857853764244551871678244795373901756401461445249415295627177051795212963045118097757566310279395772914872618997441268914145913667127871609013874054104482256740513575524186923651037911562857060139672399332720274832995335548894850439117255539528024451696464951296912990244911295304124254957581782466319837571393224806772941166080911596660655757215349512548690830656600222998262666356476742452598296460888239329407794781678402910389789840764256647915579190880347073585175369598751956977062176278291173926008071998676288338257924769352258810511144985880546403191341019349147574478960382604836094394101107398742041226318157263098596105865637348893910564916392353506978134787271338767647879913427204449843334966796756873063138603533182245307483344381115903130554652248788112467654447532462173650599813777460898873447648473417343903394451771102926677258379005250426922790886551328825317776843237040179028459996412502499370218408662767006310928192347200275592184743385114453426688527850972814839927627998535366228885773287492990577372222661614806084845413953227989860266809211504773142862513816801604336058802464237489131216920130171162449412424992541510514941400778959734642211205519949693678053946873857961492774068321567551660954498710602999970411126036345214591571928367119148732686361110482457509023272932708711894223381328354908342147495473529336361843458133091691532983846996261478437038708656642266057921296770980942541641980233493463280711445071793972009977457887099652540953062760269981634509858879025036173567245771807357636830546933957214237498344403659324323604057288772060678770147459345575915471102110173021347075115195966522075080583216775547268281657894492960957095176307299853003426167361769124125885122592719720074648638298926225228984102413955628236219211633212928291922402502923919864538184902268228882117201218718269996868304334853991697057963341232017154865864634779645652997158081252194719869265198981843160669978555598126034489511495806745401160344761164982242068262782178488036588885911541185213071338565478629580288817147872796238750433079573297623744852375484029206205566024265812894927363673432833413365330169565331197939175845386902133674014473192520368798977911279853969927292695124931190766663224240102222118136124861464800084964432521910584211151553290081270881123942096239547789052844397353125304684496272905425347127720504231433161185701380894778899800290644978183024936198801926485292355618971981586520590235075799502566867495269863201542387401175173646821795028598762024555868949757418717287739184976776887218662273168701494115028810836753074154284460646438280620906490876288856367548317894629260679288529407307664499711591180696607520472688204256226290762997943760366393467014702589284149447149079764433798112392679869959099266423731457700778080303338497163943175358948590640261825268003394385193895592486176833950165065052502623605354025704584834930741436445477297407178508165151623828460012775388121877407959699266373772739442173738746288049286961793736239316147269042474931994414135849265918141844094334293183503449751851142934058186152942798743171529275921745341776538768934427443424450535518673286799814671222654144918564815569996037294390670090796919427876634376114121872865401729340052615944632633483995287198338360583539873316158671896161869942118277559853487593024757764809157871251134680478506345840110732717025926858312456893928099926421653193809475234408153773569425885855334790498400120563372918117307272577821922189122146565798205807905440919363970035687737176916169547765512510149410484637444986964628076376514202979259490627753887485215613900442446299243216818298531046710685894748187609137002720015752291370876095677216094060868657837668583013183118134010041713246683055996012879897517008880407332794252104045610347845084983219569368762380298649872463774090280650850034737045777679741742018353797563311473056486837494081239493460893897729967564168361763841017200742892891088688966645992761495699705188492426025361115342021171196405381578244087985395412504746579341341035627316945341677993443033877189996652016980652670015429164996056827979282745526094468998653073561050933075799683909218068955253020931003399656018940158158401972342840083974160296163658075277062709559762730062719425305966084042136877603038005761172697198501029325832773350713209960045747128847683877950320705975207321018236812176637206585049320893346078624676396590604032412711200611040530222426094314906060849388305635689080209519460538437020873386361364708607884742296533339573255737261801299751802735657295814042632401236496553518118587533979223090603369382585862767473821592099418675462043472034653469935863011752134918144428758932581203000862337004721822920241472087939075041907812939407922395540651802160201529611406454454690931294966607555836336215687323689361009394421798208931721510739720915626631757855258025873888644679909097547321394967441360319939605720169497986050531779380637196857177046333677726066709387260719331309722526474396558247232905516767430283672232500273119561661805875730990078733707140901398912622116013735462575470824620007303191573414771718629593803021905980198808332426059859062228151009588754683370898612234508463900958990079455070913165525753270630092689397709524477296699074114384116937974697286008674494697631603991176376171744211404052995611975477924478190347349513687721695618904964596616928223374863651361373506033576348701121446694098008637352022186395623559904706022455388461508177587419200104102355467280586200901742187496813846503501846405356150562617243594671017481047816391782287606766551328380266330162397183386491625244036837726280009178946670722500832145145064069446573907271040418415496582271428263380139297590898730590889618568632692852088070436380636613297948776375854016205451698682603900840234575762368471605853240826204415090252574133530563659088876502284120859242287497228115655404580434172184246382110933447476669397653915696823419306848940970359194409078340820056014566811633699582890223409782627377615913338180566811274991276220161554447910034707036640269980366930859881628897296272840995667488062853574046638542663975673104522826418389450913039597344884393291195024824112040013223664976554160707676556962869046463157021219639315801191675322782978498508234083172118201542557682266183041837543512450080152701013284708083772617170400536629542512191869652276880455265336310376379181929189264656342419885089602849840734007712516941393425154717139937483743715454102707966225559180608216130227210853077674034560496658891620482563345614091013981126522160620188045745636665120396177620667763289774789589792052566711195101602918221331263360205992126808966981786683937309674004047721318074888617386363152968128366886179382379802257300061669208189920439237485351487619266573590143105536360230977102328328075998523131169475608895115092797644301703501808638851357193108563396765587681406530164245831791254533848470826476958950785124262594095557817466433787051121815620139332826680931410705727613836627378354845138741716435477429251091810061299390780209891476040003138230633612867378251318078964761602749251611632652771565246091907144953196495516754354207759767299990417676527479256024800009568075924260420366855848378991827468431103787782378666235744623263894020788884870209039541852970841147375445594933961189155380988486928871275249875009060903972402015717980338024129120918833863469632370556581225040062198217741764200761812952189491543852060951304063427374139091487021335622436458610109884184708447148512999930912539019666268680897432640242076585190151852501066326435931294059952563271168135271058347235263993027063089460500219551608162357160388148006308705923177365834680301930519604612929560149480196470531907436744529425673675322182014399419231598045438972299658004770546414893606298247006820377349491063455359986669416698424667831902105093917052382497379855622150192151190495882202368012258235071352300560618594417679575344998299406014522916577097988769371160633790818169586000816734978024546643116941746692265247674335856333011860535950067273449950473471875954152978401404346334857014042545374261223760872271927443769035124155067208889336637103442618713664727148767396935089936565157186677994776347611776519449201857546628510258118519728017704500141016620954022491265998532745433252453020538545758507808782588703634106288065782828638320289074258984574041684317750817956176053240687227227818965678589395276670545352168341894547491436397675435724686021685305835036177334114489996512426151291336755921150360111471259129095743135297200036829373224172939731341473564888273431492116410654034709402040441571458306651687487255585637343599335247613171745530889412851360887316323159829584085630784145799429587374223156001683046001057874893785149138927135983838396739503997957167668219597884195388753465146265421784211642389696402276271912956096149812350894581800949709228327441255540624560222332433249411491721599188055559141212911992734558809180462971621977392310026416589315846204740935103381100811006040278273281893241956215042510958335935958617910606163533890843844727147415288088766402957071222119521771922938589341790678932495147852753797105387266561110380561966077089448086037952052384674602787116425435509093780248254510834214609829644847850702938534448526706121913762921487863063348084138034487996697837792868146858060092131763288461761353850441712585757639436366453497191916910980935325166840501900898422439824310142954718581551198905903693188326929860494800820145682003900674427519153752142540395395522877255209489984388233459646030627626555436245029541283984429391969935605467627638742130284136548082242811956406157850310137019768064963888708103416710415347210441501573654976666403644692469358261015332047262040057639041602794474998774837531001469703393531648163860006531604306943046482359215823500289900946498020166590479244686520659796723151573247909146981877880112329111936371829202736389947662821091041332116576413125207105247462225682369105498220591699355408768307894496788187420698815597236189332206973416170823252613608897837450109173635719692615301428915942390350833913508656151955474964226212001408571418520359952517119779947053796267098025265047724272155000075689848886376472761673347362101289665148166964120467950856991626827135954311942371450009499323394586993664064627614266507807938140711154335400457137659043848197533415412883299384168570864260543854938268225596412913185048353031022843275625759275576308755256197468388707414953904746812795613329845049834862536481951501342283421508723557531453794513348606027108497025318809566255450759280145989916197696498049028237391992783628145020191085907057101008108788297516101877359318791750444197930022516091136966587606056819026249800590106609532974510694658271395973562349344304182146406491121539222061755191086487457719006468813440814339767401919882040738873867472150458606302210260259657110464544212250633204643155555440154951067493666111462926308514132765934914592918571081578491325240730668156397142811387009843839980066515243995768229755787107779349010382516109599358152280509369476315474798877813071884176599434484464794029564137997778876206438608378427562002805147872733789336497259775171517932396853566080222587582985483530091439051174105814151881112156668104437692095801287195967661088898240500147083391115403467020265171741684068875774151996251971537847936335035256586496058994641204766750592989447710049394453646039538520758201795081253534511847728429631817269364214392235950483669736418685995239415985532071032744162379907288155837504519513525875508467248868681173083679168353606900966345538322377799387580700523598631808867842913928321834295326229574782682090630962777856400164067278434553985086277327385368808296898695867133597999358202044890858073057829313174004793312955015466439121695677045440104211576748850734407496152771834978961645942908018180750012175100857458898063580991531469599285617941890564283818415131744833439603607232001564281698420914758118998124652647984919010044073273278616403950217265480814118070147346403943997317204790310420433047562748561902434409030791542414448410764006427452942811153465581047226536139440887451768393283720010646609788907265364725452812587359386517483371867397039166973661877077689032319335966307174336865017308386365589674921182856362033439993215016142223956976862849533643604549295993239160576546434052349107662754568647260215804248983440243706322701863095750025471326541773190478136930494413889073894079843678017556338792841526071840909062623170726466022883540118638663154567162482642094845865296788899432976952631480027902725061193549363879824705172398771141542171049750286491137472380787445420209418747415966065339797965533488915873599169534975426684314803622942226878961715570001553122114481946320041793394811184270940272086722093323466818533076507303227448220887704091002511516962061474896726666771649562351072772010802252086218723828600717532169552261540386713489051638165460761272362709209973488941310224943374156920672304441355214314699177746903881651972650264765602470082486563819812328356653348448226973934371086817828478207626551333468676436485289418835494087246054223213622477560013447834508374427912327175908550478367498923212456649711154586188231279758685760247204987048039015728527425348872722713786822029483991397084407193856202123653099289455179942737080587389637708823899953840795686839988341298887239292776474037944000870719310349294631316912637314393644792537666172888801370705865346062714272693771896367109163548426827350539301287511421023814364952629219464762757462522487579380415094446978445159734571978858985164095610889418013326573331960979848010834115536320290737822878493216177872932107631563570220399799869001184939597557927710441598094192056414155655039063599475654556154196713998452560049128479660446516978842515712016545797463835382682547326467953717430069240975504236316490006174631462959358340928702123984889137598961181170131147410344978912927397692976922319392607038518374488343364153471981443683449142204909497823106381505599883541037684863490819261926961878246862559466164155945711928541012327342184565843006009803914645116847736226732768640864441223083241952174035236730829363878035452977246901435937881706083926003771402326902176855162569915246141429134384029601686443769346315476148444555330808243274356374376137623366553231382480378194596321961522973239221400933114173476341432269867601928362554051767312653773409153690209718333804877015579000189198748363339524995738170883829599162716506345408148894807599016705170720864213117915741225217930914313732583415898350998253931222419129800365521066563154905242190999439403042297403871068827672813870591546605405526250303379736470677485448906355459339381280177346592103550329239401293341298893462511330071887071145476735499012063104045584962161128788668839748065494421163705613249934997745489070878080927094241093908206342512904812442082734933301743931760918748421689761388893472022955262693492949656281968044195290199322805725323606182652128165483451524144364365420982200394398043669656027902921204092154317962772733191785309123126547302988380185078667519856195748230920711977863128806271798375369150352604637908773475233218627135900746160861203436802613329275939828970848463788932462463215496884302650510591845549345565962472422965157530647304332203554630949014522742456897644336896840924611942637286993172034245710318320242048972139090768772943600927547659328924058969973727244177197284513801410749112078917364862351608660533379024196374294657179980821577585407004773082892630678419886972881842737537171830176364810380296502916826369429769933536487370202744359714065452936222867558398883533736199377184535290876452903990066523715921636353031154808756448904614730615689684487048215121520120975727902241431415984881589732337152547128808345662267766625250265515689140965932809999805684838569783597904065217802262295269730226953931373641895147055932018979765307195599065988115600017296013438812192502614781538029251809966138321285330732949286906569883632281447102187101225438675113909022251429250899869698982540517260982673104548725420745567829814983521176601514531800377041283327483151132113796525645865202115419519820375470992542648977105731318316076555088169065472083199646819640484723324248392888013989806739361790798502758266459660960362565751424962659661009899397067559280700612004986030352894153351977141761464751268305373751926881293582793832919793659490743009895605931146613131285262846967923320723945254518039697471690310894243909455290610814681200368297533256960870841969129947479067054797922772623020399521540473969413963954205337025939907856048422127288528692268910635215544107052634885369763136496125686719888280716531898520937460441458449414405360828599245796373647410402333766159448942668729196280542042764209838479890845852830392967983993003608348509486523112309390926083409417317519788309977644342587283613145974586918110186265326691980753560698055901034473706550226020822918633055963148852743393863500173412662301737585970238029751421783407940199792999170868041945208435729427923011539536269683105271028884496484620097552696001905127111131343992348537807445632242732660583329297053609543501671853935659930574978650610066698898372012241643877525234447127839722685870940499724066918077225870197552245085100480997813874864288818462659734789737290490418042557373575893749844767921093061121400901712541847429707773291762911418501067227138478559075098794307933985251711768728244448370697360720868695335996985646271740317301265710431560884873092861795517451476348211429301921280972025655899038829731252729811218129888053548614246053966175970677238853179637326911217308005151424615231338119161742590404036009984744870981392362364122490524675811095099945515908188753448452078884532917224161282315924535127118332105869333123002100655328617464192944528204422101857002390364394302340947812707743271569264508298196906305710123199235176067689171067212026253407119610057084159501694451060591271265087406281028859118369460423902190482913522973164233798863094564518351702531234240155596885369238191954593301363228792770826188933806192185384227259992931374140245772933862300917890195948955709026568155412807747311385998630653021546702288610528088646847868730027744058377752216960502654823213774105342344352538949863198862734914643626339335457706273205721591902132180908341361836292306098197851329060436541846439135783586004916301244295977713490050958135464878824128496618914365516743710711931502709373420475398558023857023767538743636704123415865809114962430237161964493713631732272407747347133613670440278542577223803587312996998361196866815886122573295952345954856359542640498055176327308186350308002358762953574142903906897726224675592198073107239154970103000165953037557624746910166732380398961436999543715321450228477864956833286827232134396462177407825466747832369448398598238375364336008610889342257822714361852611049757171357724366588346516188242094171757955736884468689036146637548433741574220497401198489407592343016881728711866228664317940405533411679643762404026488013581765662983361114844968861689432139349398637779125219460560639879678498247579278711431292914541976348450580109316537394718940618786350199874027086654291202668800404519296621476613791862954140668239296341799970687970731845449760086456507571950518576211325899125634604576577036031021437668285801244154691290747824285873087813387576696004902837314661460998531409092681440147832446084778379867962031475668085479603939324129153253422510357908845813061203254730670588215488001107188024256383968302914069245888159850805862544350829210548881837677409630298245940333695077711205910038121971112035620390550296661546740733460304937227374910570929001105427448685831890051745634190137795734425281710862296327729512006994981726374698453046441723668894731802145533232037401972328056675580827189483957246460055406812767517759783850832859952094738410076336476094216994986900790606787850558400627832227964859718597717410701085543947184143468727382666483409915866555793217315995564489824349075777024206537516991981519945121295089003411884141287032852009265695967005665911541977442266747275214763892897453468236953981068584518140609092238393397120356832858571756191791651643886047291195354312248061197153259588684489783349031314682950182764199864757679092996995750441128008829594495262550623851729650792541099552492106379102485814681938868259528814267177100458459985633186073783366987427104385056045108168240414037715962955095569214702467526419421606814323473369115088480068657309967892792631882630594712422456470370838595092662455616109467867597126915127769326302379902735421082064855565840589950381437938850388774430492659866780820533942980778019682616063264952249835069517296523976184139540438674772086479256644972918433644440902608707654452606891305877909691778660724158111567771884710848583297879974982350923024943078508750811627766559966790709801392171724963436413529393259837020168529533130336194622439229942212738805392182233814454381463833599766324600633508012470747606717480782757045482856578884907340053745773152269794729622390757460133826573545412050062534699212078273255462768363227741918823732301330386469356439087684724627756699764176368547116470886598971696799088844010930749470804215790133759739227802256020798253639237887122699511457393112333930996583244460808031235237701828381216001521795928545877560042956258347386604047460273777692237790123991187622015883545969218285309080034759475549933516714078101135343592922613944512551372409421074024084539524772847016174776231613588316920121722767505383771770751193613202922285189134780090573457423152396794585805914253586679758285922449268707258118883936865886172763556552958986367554669897980065330078295842143380423463028689181688540443483234921320178713646809655181174351245922029779345377625809733175603244748271639761451608372490033267697195279047908360483679278688011936474665315605721842900304915401986768577698341528164394595169614298061015851531660036018380112130653665200783318965323846790760647756421527219106612862793407832029998109458279836509388238774381135646562347866654372498280850038896879530723792033891443724968460291476684462700042726394673674326465394971159288407348455822863493087875840817212278076233870180330824900203122074910171167586296183799896070500156383737350850384801831990040471295448033792138704271911451966129545265794184840282459049160117223734611101856373783383873250602831137892737375884476817237620312695593502037125652647380033368332496326148291588945298448069277995371021998211671021277226768436722705078440629069972163866447848697104879137680059670324392417840136759209343743400110151731717702383851669005191005266910635538760835106353381828136076858019076999161487755253560880267503692871310341123574733111652106185703834392496972096023561843841340664867939197847524643235628682738884389736182719722909291316593586080390670663172038612717971767678291142969270652988163522338585974054631163660653741941439643653995591085532683493650961632986792751934751141257967178001198070058949636493038078269725486881250322385511186755702530449413155671814819499943769664288082500189276426341441584595722850808288913464267288521326171115712810476855627981662475924426221606678698294013442632529737145586051392269014898955520539455696185699793359526442768810757723381340549346861202679588208648215158841904955741201000668245056186808595313146219619614741204510459238323072119951426829362176033926135607802723803728280323316290477944712341623717643683336671349161733543765871708006283387640193662059098652702670097673767281772712016142294858496616502190084798385793737929461612832476969638758315723492525458604318733012076759845524214031710115412527791669952375226850103488243815919838187319978827189651977429990859218050893914732997950814100727670563435329708867552107134695162478150960638355695757505644068629504861725276316116204615397555332785101364726232148868121291632434663261999309140030014198046467907745372828657199924990926929314206741258420792034554429357744849970449307920667259094233591665894969289565823597652626205477057252639927352551976642315215893657278463335453265941050983765145039817542606989550443608107417714875290749109363485096211764891819230286152635430633043533892637921543865187496892038097778952731254801417652593156503683430223786764168360456341357954528701802568476693900248987694716186563281492375810041892828346835011371564717803798936774725318703742173048658732941163215392164719579696353309080229004710937424610141363820126767768818265139950611165764232180193598595359733720155136125391447454132188498641069146918444845009568039351030162188977848278755412812813434775940013353665021723540506526055535905082703895085062131833288319596962974622033381037334158092696904414592482601959627973638941184053839855564944391528391382102248002045592837514508930977384554190693368162546940582079182080579001500946544658419003617272788999617169129566327759358270020411765024934148688150225304688323804329700302480657435319858062689521487981944289264469599414602362893809974423930682593605517389700545148982876072250342828715530425638517316233623557159648303089561078563645404795735184549643914770403648322935516021347149712541215088332842665137790116803410689573168152251433420927441168101003083282948029020691629155664907938048279172656012528381781542394436137595198874568447704778758194983991595549906802247547942106098959953153088781333555955792661743336194657397420415123154364647789570390183078169378954572671506751895048092141251366336807846911826932533067719650943101365903177556560964172076697813910288942631962628829079805731919997277048342314714411145954395470202317301416202058383962431645444026469469514480940505078057673288982871006774922477784621732984988098153947224762089123902452148861790806719041893615611114667175570294244161990055880347589665967127479711851477589057235697520682340910354859585363470397726617078156532370452769555144534499152175217981827238156980806743912111147635726942104971827930249133537982343167534195626635285974639486591007077736729858220014299434895632978033471617672508596367105600622267944995058890741428263583687309918599101069388324067313290893194660415204194450050023062719288769841103901426716380360808313122791315984939033597572469459457367309276144678795512979785344273113348023568260509486010500238747739778372307519213643954043379110203954003486432202659302409224856752050696866269719522026738925742454208692491009825937520934376568267321365196377378579746759870347290215069294772013517519615097243707506448583555862291695864446186853448943542770817445515543454429946178862733471869189873584012622374010367882668830544910310454084626222314181404806339975705105095352219499918467336335721008041735922283496165051949727888374183510351325625632661698850628665526540298833330311721852126140576280406293997894665026334130756771777080762166189758006461933669289218260228771616014962604603361036389932199146563298514123447369677646940855323959818284350092361819258367337251364984199482589974480953228988765243174879552376529128588729917161197032123824816023079682520814074002680495331082963475409562389348046608637254145638730658648473862094391421193087078886408768636993013829383351673293611003384393598476017735638691987804862641426281720696851255434703468009773642447384444111287934761763268418326891900165557387762483326129823914528572772759399121109951070310777671335523714098617824333503091042253972384306085002203319491669458401208315382898369826286876214338650378454799721463058358262211169970241182064416357953440826519374217864239621196055573673060276143654691872906995029142434867942531786841910474725896885953709516446252764011328882381695372661928025202407224607228721671063536070606154252734464062118403792901446771379333667331649821419718072292418542116787907792771271564481720463563771475691835153139453621630832834561920012150339948200444349355763972857823775438958929908107397762999694018974345681816856365708744901969700050970823047264298588676992744543622535167664552746581202462028904166144497435313358473040462713482184275926246896381086446054737084799490163165762067727405223589366311409116946204214679083993013306464520273628871091789539639941670615419415291120692361644577279250186912592405962284189783841512460863737746114277606662873714266999711182910623208830258358578764163619743516789384708045996456994690975792761252898912711346254777981779037164972026345909239391002934361060218003469908143435718239693491122546482378877688761226971396605449666072112484851677244991159555879304991199101197488327644691326813789441921642172913153636027121401589640834161523093038625784336076329046116415786242402745111025278862927978691420581086755138223312540079096140831131417761782542278445691670722218942784562746168283204613482780085862917645305273859085686502008954532650920563338780918161292464905470793423333976019654982745925804677545188928149481401069165807979849830689111448969296902719740982246705727622436701064274199500970958434428522751143646882868879429524197723269239586063595907364830190043470569953314652689199433872158864002650772981173115689370732461972054043629113080468648441868972773847841260622611902322377503654795819917437794446937111490916084184492310416745263102270801083160672965129724901142746995555589708355646305368496973772303695733875314695031966515086703310766779653427590082300416304779344127661042186715048243141012852074087888737038768483301905722279295083557709663597752663588608903452190721532265454052681571046542894073387462820738068953726481429322768949621128417715659646540550226011961127930978459322253740488420298556866610874380770671228841856049645887686005913302788521970692230709058135905040859735005875784748978147972772207188016243810573182860345342339389558587195636681558655471592187486486660081664448090384381261213284434037280877451735998021169181997144267872563244540274432266814357846341700660249050822029799708114670605137333774614572283311601646660559656903388075387199897902588152584424623352952157013241505437136056728221789290055701244044419171528291517224590140131815539620197128223978191268952812151254071492793428323463948979707914374154232468688283253053344379552090145277136488380523996005563656488927643265365150981337082134604637041110141385748997526876895089871820558073116692728623997971279169119377688398936137916950120028599477550730956028687201207675267383990452606436820784919765986310064416700767341777502807340945633287555700406187856777846988880054703479534542579264523516260068231792463044737288870076883671151921346308139096422943423813665506961048197333694424265468744461718030303755249827119190911472093095263988012098078049040712011749585035716348935572836963656043238910129193886417869421790933159647158394221093010958095525947311461779735271670941971706121947337384726021709848202399457008226054890234708270316161376366106246077644074468284842070695013510377097818672945924541897136493426502043681511876092026663116115120892636364236183681830526630438199290686854897806621690799413064709930979245008578673241065864565150338298622928187123202610640413519445364813243750311704860974078183994960638333712490639237090914419296776613042069517151826926442664219721079241195699170106225644075236893120293496345744762500810269903245225739624503781354934468905341790291505219759071596184304374814079954934779492846276186556635290691873025905716887818151668844660740471647700769468546865236313845359962388175119022667318335076948789512163703890641951587553586074088444693748799910381354332559187855695062607332569074641613396225820428021151683545182591090699072803688472380493610691909560616221189940912690408004549905543309355850928624620613095648353537702563020498537374723929496484674437710538229421143348143691271456413776884558888017646755793290443376512214467862307062344862851636823309858186321776557784098833930478462104893742631375716910647816964683594055153523303443633523291303725811115916528500646936981022950838328311660053822913775132403942799369084093381393475873193397748509827112869573135821956027363172760004467618493271869030814071862654895783158613672418204733841617664128120577917285793294344684548232762409928776085495014699031131901535765912779402014873954136040668752874631655615798939765115300751412673136883884465577014889682087036126631017676158114184343610109951171554220423640172699165398356295288196704297757816077217908389660313335963431422687542073909086356115633190603468412672439367516536013548646492065992414581452062938030434418789341804627681295826426863160943443292531887784137376658376433893959330390566608634020225393985688866886148722818867949185634927420739080765657213752831416367038979051120581711890637103420198559782287628181023251640831679226301582464551848796253262292566819139274374748967881822307149951631343897306725353081091706198742341600189805004618941019621884666622108210443254247819204332957636189678781433166485925686405490508312567486059495378480188490902367663301699569385815408353818929515942818770169091969419415812351808851439820818875807432680802723536231306235793172782185554589787325286057203689519479591923917778817193230324361581135813854201998642694445347390280216756991645530495765616470366979066791970882640295631152884657482033631366423926667978797447085515246061069141518350249004119206675441191190138364037353088626727645498550585925707389511039579880634868633178462243202820477788745786533546741498940951705117485608448829772061509329650924500306115843076611686122659367388094345936868882027588425877495860678027278915470021975979056258304914611307285036453150074357114714406444500690920128014324941575805709263000765429904269397804055555071055625931644079169457980137235037757386729965094302301979557641985222403541379836920719520159501621637257516014239251415123296656229981207271603298485791768779158786997858853897145020137501009771447965242306102566445356553692140070271971572765470501674388319582815523636887902887659843923784910543511428848483554789458012163099855768065590680903707340164049320671997269442487231486039049388157098376186288191829190948331712258472613058349730371656211688395810746452469219549678922509177359688883472879182950483355180674717575035978618573009678227042193817117688210922377492507651134403588675370303755250634305074295878446987834689996706858965682806889870860457867190985643505774183236816232162827114364488732373150052267204023323478810711669137499875029999886926795421497821885059942589148720586724876402440552614444697820921553109294044910545818561605121061936212021635009776768702848138071837884161116459302396125869188706257426465321576230852565964038701939374523089421948923066701159697981700347956335895194900737856831166337245258877119546836488311522950334503255599897387794092952934519170524450690810263538291181780167568125195497269125681789445079468807206551214571730856216893897290378799016157495464204665951669568258631222278997681770321716664839097162947744893871270352513834846695822454220268796597162929479935889364774739363052449578306506029803521856937708392172342134991503064251289398113424527490223834714411320393513337067478314056670951578343177140929909412137792332430561971116506238956876564073548567512399551380426953079273198578923596004099412234006322006013960123955179747237007824098825337844008404815225114353032922367975814966787414230547818046721995801657977386099899123789917288389476046051892423551978104952807490009108653589078732338555499823831029151774416013697150107607046191769376298532610403471202858229362267472039125829880789954081575147527811940102826037416984431360312271242165937458350632911405965800553731812723936518984174087885805631953956969664072792221647053097873006643154468179638906425097161480369733936480414556069861732942184633143162578214676527388819392322028964895660297536423755638782864759465098297678018107203641558045144794438009805730032679686067702163521091882112724276633583270585744679194582788936234620563149069975460396622299955842872948890798156843444272250989311959543104334366572464587968321124742472960713354504188186623084315656293961900287672401893718336351618701202182081255856772726293337425111248627545284738234219819297531629021868889860596146317222003128368406391383457293267108336990962434038214144141447974595627008711676327719681355509376171517708914308414943992235161241645516519381460862973281597734706955526015636315842716148955698149951438279073170728428174347185414389263699818249047703332305278778663582631950934752778663284532670043099757639890214068357020922412424306332924252110779284217591213921947427761413167659559802930103381427531715297922447370947695722520850417285849624381923570662224599657833455198423016604481035088540029008287683308903916174996255937813445903289124824841578771774715734007940684314400331546077066132481349624317077503380940541665046673230701873936766024645565817088632727726935070067533583782623804876294911695571900722616728434453107995152579642614467574560754675822275546801239642609662655054928547533884842305364835636890893340454518540967589909350361186425612560189269618464458474827250340738462825306030857349353866507892542713387217651051137413006012960831295133280912185543922786173155435874885587107010633027005418493570868173781203022840162948706742234631564399561730879295082576781715420610422866560472953692903310023600271920819483013450050205327796671508569812046110078551779384946801608344547027227628787584219124245505913909674126473049064916695825052560920002405281084814144809022274207823176598370629043292515689837416321586924550527019088201574520934644291711263157982544431041036124851001262388031236933231577646572629910162578706683669947262313099399934325442802071907544420770756226698012048324100079811234404984854537959778318486765610046591039904173004407525056538947924666405782078424900253670960795877920651884311950506697138762761705168285685658781530221564662491701488726589146190035809214648532038272724304185066285408184867930539285961223788185658169710011804875804853365056595321141080271192670929748049609911745729636818194225655315476484696250965925052725515372339394438177367910202150696608072579276986488406774510558764163506315960567696163784021554926941227572021252108458695356573025829103179455750401002327750082919512770098522769055173976806117202839486690035437570827922180745760800852362528603443159065918260976071565749986151875737796324344959695108439880279020232057322374028336131045099955797531304856633180276940033901429859545036959600094092004223070903842325196222679915425456280350514440587632571355557244701130540091935859462407090569750668169325729001578771073392997796121938272064995353655796789139548559823021295097456574149823312246734851845506878050087371504114759895411576654349519773944514263315853330572803286507807632882714861667529045356860260876723451696330705411756929268193691404477983093329032865393295387593278065347743910357438077061742318802690781462469753877780688530229838523518526436939835651926117823475357079293739926445866983678190416701873992362664492902873858179081591451044593172166225855413117193038950765314916535567105879526334898291162827385273434917585414222285530677109904389118135322610620938635656865473077895409423192230924769461279758234243283750681612691997490734836098658712226479117178789869245132348159216492990501682039431097368475270247293744619750518811455473022970406510812925594606204508448418247925524383745949070640731588906563910292174154523459336386131409746256054917702004136626927796975750626952538216455723429875693060846665091424284572617489136475145436925692966920939396857839660021402113508167971412637119844223332479355213855258895955017640115709440739205816856448061037887103248081747392646325323191861306029747484595180456938902199575268528001158727431266316073125292888704311403806551568638798521663571568093134502727209396447476698785132821843718854403732217268817900513529579595223545495359874931840492266230833002813628532946074225227490836547409087776684192975840720488223891645622956528933057168235084462143720761638412306620856739597934510862419182033562480080522556353226115724844387686902509533931053706180229847128421605511444112825486179800232363243674422479165233689585546192108304817720035620795596191261993007897359869712222579433927125843211315653365705802166386441830415031724922132938658656173457597842726265280535791537620091446854990135207037826013330730061864226793716129441924706984336780548112348346660798379992732970712447312990365492022872683784798263553851690119492949272964379439659503090338794079736813949518538389539269126583150654077455195418039339481121976725433821717539534579799574263636446354122659777952980442016798979705261263811100313449423845195787042291783918811595133754339193790130699450985538106488083192497569468410806135096430865895306716185697833377247032602254488550881562819639700938082071473612165241916707077182269743585101187681933214095795754071443942918262927548872247251319719847316099168380616392020840274096992811675950707137298878419231068832427857889061136934882406835829425207034968035300850989970421660666459100477514406122325985294380624903079619330383251348971060904047661051245483239203408136569863827799408940495990018862970924074401300978346204419681036385090643616355335078213100579538086356764690852339186782109722984735332856355900781251182408211109751649743755765238135990076099489347228060029108036542803497364414659000743417020892075924648739960264868002085560826486300000574622565117160847484197562456491238459399296299663758402354689026015593010571003192705183646653558736890869986622392032784107800116804419460925161734840579832557755138962994968331600478546836936980030570514653254266804483684496997349962070546212209340657059074373581353632399706133935269768074166255846411424151759477993707585552318381897430716882391850880568716200552494056408315197725375849399813679556747894488199679662013881904551711654650521831589967860507387542548927261437529365417656065935865957283215140608156433266660595993256618490025206417755356773404781637935735818059049325725363450380368216830468428350029784438873288547164138206376269263418999267319890972339127382488533408032587708361803723372155147540043323585818877784003158695922245773820978141375476515138488990876418560107014509680034003247558718679475212858792415064145611916449634650984586552703045518620434277805845951928157612903080142247827919451203910266376987155801282602590341834620373417795319142484011172825929235973250579359736910042311295077214414442853883794917913438161250182852278102598969851332799363813559829571896269726216809956061810545099294646461327104088119815318095652436413729275566120990779383571070027572878447109180567661298670821106996004551870377962309113992891692225037104736623315289130620608733453399032570635160234992859092657845965352940480242284078154957331766090155447262536072628327529919420222076801951053099348813652510641995575517033321183677050351903073327929232184018652388631112676002333758292218174690793588299360327372886586446931489003342365448507494750431015049655805322099043260577786823007588679239840465344702393337010234529516866478851481931769639424950551149525084025590588190609121612639576276144918803322809372279236391145107523349609580005347499898775208464913339924880503417200842627893397951538608709457857636569053143364142734514676616923811702283286385066700770600079885008739068303902114146302605344673540154481715867618473753859306599086719858583626243780651500735122347188702596418673832372145670396703706604794848976807846449904853600797562112822418780852571288908956142910992639650849382846436409649142491968152580750408002458899349593259091702993145429716485865970674920062958340334036419097293518636581955583059254819960997781787206069843586497317569024221508897696478081053541450318953398081595770109803417455356121499251940042905079552346999091520730355566007272816467375238197402102842619172034486682346877532254940517415994116594091796750938158642654077764629429935655023312249148061139095044303639122848371742185089447036656115009367949487254945232753016217599491612202233099622013973893660984366130712009030908670133746567353729084124359408618989710218568115822185644543707659589107564512289566383619726109235407810150688469371388077882925613873356445682557282004186085873186461838788434692793919017991827252142917884444666815089331332867767212233078437369734948551660220640745597033885982439519809291662000451259168262622917030159602455668865224319580300917380594500692176339314574634053715868449141360885027010793957642003729565463848641995434471403349195826708459863594178720820220843315114369944855382290567769717199468463813369132840034010729709320674645686297389316910440118273881852227859058488488889460044207729220210222532608400287690417747379431051333989214330048155039222145212985658954793997695277703993674035932716629601244084229730077974884981970091727266383131252315636450167556828852356998877756101319507017031740676358726206405633026451469377161952501748805808102579458151319318942259757030464134956343635432975598463925201701894244920134881263763937778034183627430568578201096289318418199807335832532998677041574442178208333720066887596665348556255832595819376676869996483912363339578749971215940874607400373822883057847677736406519724715496718384029082363222409357078183186948038893300040997285343561356332238140453245738452743561172130734028479334205856475175371203811177177876546274733209443567066132573469560528512551731205469641869527424230641667017344451499602231644098681918688677235433479121218252957277146149559415447515839630981823639918111404844957943880985977365453978960077934358622727577327230617658609908157385087727418651098614655341451918799087142528663782153291201015550213223953625617399886998321009033612477690302107843764254885466668649108564660207701653547814097704700688647459584695366415905612804595215859136030203138218486795580949595464319636333374928200075003774765596952226605671896010000135453437686119249309522949403536227883004110178683999975345557513443471834174619448729739672739809717141017475060005079936019303180813858118529514680141092760330792265537778266878018818150293201045786701856835256750717217891167022327389936160747331023362851299897034096375098809545434306138458155192793454279767043963535705067549302583391334763983684938197555896397016278681362758093324254321248673711956619761823912124264004431546213234300238950387588652956874396889262047738357374514189845413556580613347907839665868834448381382238494802540096483489865918233893070800730939225946227845577849302963968452339031315431399979169576374278516422160591820049371549634853237406007106331967613838541898451983402769481157739116864968627055433465488215995350116011596527398304294434007050548767740064433095484920221145617324690539587349600061869406279271141980173630282607438845903130324937406127846531876532455110955461220153279091880477249611280990979051458580013741343144418023882277572831459688435434566059002155919545539130001061023510130052886542008027755368354792914955610415214362363411047263868729066351762081339261745939028451184587672632320194717450144321829576379412085345468502539746817427130477961652904171307414745746244040615197977740954855625483880891041434498175860411980788364044254005451971374264602663649374319765929168434697628543208872920893030024850693803063980003553191226355968890622664162897622913009622786368355440228913125312266095667051771589583895224809674864500426598405431096423818949848180382422357890056159629165376599655221613797567720661394419099282683137470978018464111064958473259354590694577304526816926414227355522320675138760697053966658980945718150935364078450276959496134741113988081346168901859173529097977105958813963607296014031920631118246535944060598976777162244495833026035162486059359522710757668209401731212230887602340053251296886067976221750799593789561178983281842032361887579471059850597098648463326624999696440135870234401133814116103357083115727295444576402109036915091710492316404168169264782805227723488665009769416503694024054987827964358128390644248603288566026142426953285892356520810254302006282312555654747790829010932538954310908418568407350305893880298754080244765526337421767424004405183064763253633186767124350453414461476281945981876104481769734593998471944919221554652456400405354773131384336197308301156561942471880981243630835518678781720798762323289320040703096034173712896242774457442771420179425061884061890975536055964219437030859865237558290941241677338800508515757390566498820180949285903134122925555188995029825924063959607420015404847494744080048269023138797863322038148674036099786723936323957408571405757439434215989844308375685069293214257642578004741091888512181021037239046018096400904003751525366622764267839758093919503637377649405116076279950032008367638919987462557841147022355028799122266419993088680579262517704820250294497672747955792826168456107660157275490694907117326864071097657458731101657908937713040104486450202805529077540595188512401616826098368182030845536539390152266412082281936201512361078040520454330340296459777369629226269593006865485097661054842247729193208875550991277052734984488097339286848820250764761156568327197939254362282622805938720802448004822788128012765160349168677600322234143408019987161297516266824476967480805411824429774460418753583702924110643304292212639511286025030041915127093455213408781477282538439875895259583634372207745429778194507590319424678791787394601015099480220262440978685926671010604953869505992185087466653362059463278435799334939506229087729130957233162873891406029565388419121657518225190319270174895145137438412856803281869223919859990477274804980616826758400175906850774020737283927510718948704008551804225095965182092729343094280027847771913153193784746936778443146186353715907680731278170059909486829136329418087484035003019400102084388364761671160371509399707213196362503788218557918098012098556186235729742386984162848822092894272027413594834472546538592994554585693712804618571517354834951958159308462585148852709661276888910129828313967271400528571384503717277499512331397291592282600297196088425416929528878869562351512241212843676719394655807116283689464712708117710570963271073899146068431424353542489779937813197006382827152527677468809361137358236292089004579332410822218980426143819703716453711003402048987581746592281361885378235524549252441456436601301850583059553093192416259376412037464829196604441080209608474229714286594573724163115958721050996594742423171974993474474637234444531980653097917925171280403778826710871635705108038648030812367414154920094228976833665804382872277765078151754453182349248295884049014509307297502790928157096154666154127241747841810531851713455963810868132527166086357848975147516325234745701637722919636430033878126798821754787183800900757799183902640455327372255059749006070779367383934267271480852451003380319281295341089317748170303665849075607644770914277854655016322671302330411223769129123520235117804393940864227058002931799605905864047873161170986131202813001886304669550946436640095298655122281543798445316233644533838757284460087816327730654218049020610110256684974914526779014219230311282376400143852306242996102475481165848020782688086724973295692806189317393501718824818662739045605251749819317609674262483015033196047116833270171351751908146717374015558068377584616476142232972957351133655574304472450044962760420454551575726703525354599214559856331087597017039586952851428965619661595068904787566674657825071086886784910526168234814647271256450226961925477772418854987736820791129556376340194632822456041993939034072444616991939966768117247794599630179995159236509293489606186239546719701770133951299657800304158704512578553083564543935142236707228855364477468688765454641680677577958565153955588934134953582336650190783402661285422017125481974058129840850703305665898716673197191751651004593158092679288481617739421389567402408888762701336753088846824343035893728267752973895111341735619798249549079183790117600357479802804924870035478264374691290093189576134780315674972964480960433899199631894110855865196118711888161109807778529587861361364442814024626443945165476998378692125757986348816086098591243668620642350984643326935540444958047027339344112788460249469576060863808215453029507741376356518647625656231132054151742317719729296037347359067402071431204942056866724855561812915008959117586658528248436115192673711019356040068112768689534663426510831597552197906916879678736708520088508092650810739291488472425150844324333443896481595879634994067874046389421957375427734946526841679846330833854429518165232666758941339257963301605080311044338255515315258596761918843722415538711979700167834995186348605254250149200195963162559637556723465484363588173194065229402750256629150002676491535734690390640670915811422216106974565708165046600100759802239814362849190143397728294248117797264322402871448418981857513102973518643118621172196587333591135246789019143428982685541697178808155404993508781768634486746385449958631569313492406165273239144778500299928835910216202572955301255942125036697535741879895316100066254889070466752095951093542393023964703243315786732395185379122763320317951883232144844970810341125562177718489190038140666180931363854269794132253759973944501745791972332926313613994847169193588587707801290541610708131526729714461799689613713404411461613233974386056566324286816644303723924893940192788256490176792060982001121967283682226469915303083567773157064979852908495021320253935579137110320401425550291762895849689885590763934013253637556560601145564452284715752637305851324455632180735963124698284633612538481679375800642119044351838490732916400826864098786880045876919305325046156680710709198070874744935229150384502332461047583443352236750790230408032252565306236281117166589821472255837508651012569111559939102202045084957541719322377234869051430351832701541268973790643083990903232482576577209620385250977119766896217831942619518751709939932420279203109178241657604051183850222650194965561114636926929501374148547317527026561615745620095698405804487300412504094626603862430620720220471904618123952965545712168380935414732701820721209352142817751410713089837146722844534184141703571483992809898285675311014323020608106266190534699877983649031799533660049000974550225612317168916543678019198190931348610630256517694384498924068953706674485678762252784803331443147852816445048774819740322087932443799979963630587701723079998111015898824265105414253958308491166327778529523820713303431248717338728158165019978687186725838060596646743917338967832057806167079918319028744514036046702772312520456947200530335322365388512884379791880738782897192790442889514954518165568113909743329317324054707441517660815524494335255841858878383623899927730305666340550888171912312734372916075994509722059215114383001249776215769415139869718398241012357445726959006506162149492880305654338694736789299803516168096225326710912820900124156049499244210386376568089899998688922166560613840166454263938833449328824102219053583807129595864482982443342015888179357469853679309725220780891348932707739316882397018268535730463964851222492730987475279217628409929855796072265275674403216152031226840070593306798574821864432522502601225085443508286192813672918709511282838778238103691548229309842037364869676128845280511875781438168840673240006974353865527081172177343940796951824439860397047858374546745695186192022553620839566320881157645309418633487794829884273838837713271468270238573615648939824073066210382646708726005756428007962960076142479089517562926960686664474422550490219079943626760450575985224263410903620226469220364176241405005995418490259182727595071620235618342950749164102839800435850857636567822446365028121974849376088025232742567628638031370638022716950790819584872453926985937120239065732488598260528059385636579289660753007233819868777660795609075474051345970291083721296114591408864235922752007642679801458094558993582999434316673316214305576158521121981618408582231514830351201804465335163988935162114652130534007839940860945877217409021879802157671315238436048836631737990769859322919632149587211969994132971355333350520371969788378725901676160819742726285970201374391462136761045409705016915772300497023193228143419913834642139160210558588370249930159758358447604613530654362105118484723241356577312884498508195001104583585208779747453755516582788488593253663506140794078725380705390092969786442411603126849598391417255235680661114705214136038173259922634731774988461734088950683908721312262065490659761464840655749189675201190233258077648777491796296701312685411796441552507428552500072818830858871791016544787088902517271312513720943509021683250898526860341194105578614791795941569074212938799085950212650862960485811386341922261036293705223388658735498051287206135887892144622454561707880608655907588086644865334775231963229281259278446919371274643842544489204268403135621743884688938539704940289886095035337120285807583660286598254832294540830823185597150107483250560616193638603565795853608021611699336583964170625772838650698018328263217090812098108976627844192479410566234791765488624925752043887564132922017834058546632860486144107893576988553005527575756624420517164056813811607812380085671364926759731459727269309521377724987319430125504207492520689777315519335336722709031669329524057081265300199388568679794842076661647841945579734573094434420387870382219637327920205940313900636586627485031803523356296565640275294442173813133825292414011544707750987418806911709985632485521717306663467110675735026233427386398865638593662786504260708357576261387749112919616351456192252839031470732874511022543651050182248853202636535610605086328325333744083507218369102717381310087407311540044876998472157182791690452757978023294895606902775974480100259757963823109304063587169003179796457838670294009958109258682304657124697968625285380333959100384811771934725743368118692174331679911032269730992212276860047642485331833029514422158345432521763740193498624588382923851388700847823044155206702231049092680488161177298545358383928797756711553903078616422814558345782472615167931004321918721472238958659017624272763415252079488948954080827612074235077411981823819546296901801948012999323019867259296008846245105871226051621276693876519686029344448752219960305433122324950664887905589069320904918859615176702336010948407779818181293398827795463736693188458720013867517562878053704844503643589639575804110099778709195938733379331654063180603026813200422869854547360274585613117660912017328366445385631173204217155384373567361033568728213984802454547722633161184952027321555392400051460965241473135163150943926794095474388537991953446047425064626158217743521318486800453097295138669894270907542139045141739979787575089151349955037774007357183398018499306104199632920013056143493814065547161915599391998899291865431985591680129711536981239686839139347360379744496531602438684542031119864322395046050108186158346846932962510473933992535139868769463157564313647311406531003532260619106463603770460821381518458226703513117717278798602497835446693431291275979453630982610052509951825480738680712957368817213372030983106669647756584592939063743089649037570322509922341205987548331071629928573064962790179826384796431023651517801691259724328687497334336185350161858476247918940335366170011422757262601061843022764367764077322936012503139668830571247747431555334338921740029227966653928428637412345713369408943964100925384528397983327687971552459503567972313666371165894788754228132803943749304880381088843309116218851373062109284193108888524370448177547299832484669082077946745730707047980505260278936590447704124631616503574001703074654522349523477295292134736508954029048462369094688318009523119984039141349652813737142544397994754227531237992772020051177945046898543587631664800704107256121981362505913532293650621645782937888550746434948061025600208844186742462064544978214752726556831833960594169091744250947397301155935264299385987968066342291694642115942141478968865306466372808238128654712196594291321632335249132803494721864798490382506179464492165470144496087183201140258789543161566543063113687298658879812226067407843201533234242103095284528139369088793455592537298883534429128231511900288010210840849570736269073723438854514435633413244977920779205472049783151712719166177918164987542962814849068896070467535657610752576712988981717515255935046636555241958536181603803529080797029407081858285934643316556539997339814908251438970411069103699963391081672473546675022525265927395879816316835281666966447414681269684901708171799392225382490851047283792248249146922569253977560368003607736698696954720554811189956948032058291241745859045260556183371533375327037899386612646314244438348574402243337522124535810923067769494942581955587176050933605365151008391669588327107958910101463897721179616628474567168031097452857167578456338825530889106668289476171089692357262890630864450905591658513640945423102758819315142908654214346902828849166308580899727245525280124471414223348811259969384019855813744531345391549333060417020257554426058051966429037871390084583316981745764196550544083775908338906542949554987940109128296951095806854360780037420434459679297601970088636698669569842382598457672436937477056958687604872899052213749854455563449571855930232949210037228070499457775302065255129841374077058006058928125661091752096557242932314778635585464878715256911712034717802524877472605968838066670789381395906332707276546357066036237138058711252161010885231133322794186060966055291216212022483149834693625295408697786243479758987105597547133004201978116062713518369239784839604918197583385984449902700566748356834601386701945710464370088966703703481913373144943652239902130896289191331794879202815153429694618433208203872677703321866924924131877588627971610555308878106112767384184061544781121993002167887556441094619826381233624741950751193068020078734196315065489597099429362666537766094240519504127329225033359782462537253234543857070922132858944520086415599158948757868302311097529156451675652801213676427050913044000620414678816905881453103994332178981670464409028913525259737395612222903861015791299626687454523685393673806598620381548256087493773139851579657683040632734604715237995165392093226951948067767483779979333239818742541331430698220899452996234518705904861442305985054644171818027891334125269827169424593068889908926480448242566595206486572862806222826039232714005211226052942393575407896336318707998767344338224450885931796796347771682381603856089459114724449086453658744699041400793526644412062163665410827298519360922280197955755485870216098486928282103852345041679795745176000626661569999970854000414515988081809817613946143088526160094046997199330556958394983554905759031983261511273070222858504363941271772245335210434884333108858781317330376325899417672338142346332594535965061566709175860819404346498171113386729197862755589372815853788031137272513224493662863865655769811049789400344107511572788113203071888013409778276831780310983658454393239909772763867243878107897801073533233416104400971569435445679188176773297151306622437878098489257593043582378990592152305107572104177895003573209547706399752123735912801657633377668890726920572217090100790158593489875510173770889276743170123823755470838816089482804148282777696681393845628494158078378498056187977522887646009365542304687967546383886807018512407620780474196500796445738582006156280802661442805891829075426666779119687075607462497344931674632890353910342245489426234404669563657561622101395522468823943519840584593601576926041023814491588466037730575180963645432871874080466267663321964393591614684252390186456661219148515873194317546898745063845169860032157529817162223713796125030042537028101618603398555874596348727574224783703593172047437211037350075873025781480127160260347319487402039881485298457128114825380666180514807179311781638065149208159014329598575253993572910394399949955293808298901398843025279935298072045387990830185345946317386674313154979213812116736418878208187099701701177636040449296366953756581182542811820167277227444938598798603787780659094488930356485783284968197952603998097385664108121769689775565780454913678365889856563170117590567452408756111749378405370507179148819987431702524215937040454324331244522613196324753829442196031491349746127612689008270402605979443839003637615856161315509311609220638598552383217096133294169830939711862754948989667106412114224983874396978869142599981203122564593169883370219361077870728452672161184680416686829128789343047591856799602562898162908782875266828493335924345786975043397422856217718147420406530759119639403799964857624930309705243353079215224240479832872612333090745877564619791703228242875542405260597236881012177952885151422685628768610684822898540858744676694521583537762115598946891578898478881775682016010087888992657707318591970553192832566938281689394078427497030003361249472569932405610175943119504577109187611027861422479770949078588394982185647237421158863560122348051294254814840936541473349459582168033405295925910114960866462423284305948691981516848869567034770315527163548218138704622195902380163699139103148332393477104045295089777459191813649162701761027161030781159729321746741802816310643338576927557343472364227359068132052241251678862396474348096743807322497247615478135866156902176137653579390046647393835694853143231813757634359751931348757558442785188806793649764184025190026705847968457501824261594381819326815303222164004566160426022491393785731003970677828931811221833411137762811667537471806686043136525717792018980740486781047649084634912465847523030483693575589838452701571716394843277404764215696589368900778780812946881870155387330445770587459924771399537368136789478647373206901590010279761060781261561492749791932060304537031521813925706625147314342279547917884570991166161076316335735504281647838732171354586275229522814377369737414606645908508165650228263854232170157762742399490880220441691673567291753573696511771381691288737830308165992594657992522951049415356138417811593769454478039872295975685105177433746183363710746331205754257144801576198816930235390639502903557699473470754176359053977117045730455340209464928775850046358634892375660557942295658363052739259575248348283270468752785924628631327362925109436560602534217493975383263531702567094100074896039178930283930017100747878502122863326311468653378949449078467161307134654103865328287026754454604403240353824718806170013848826539611070719640370798803161231498397683692473996219376325070088182187646368440120122663988370863213493024601615962735507532856505775969753274609331147464053771780244493927802577124763855409196509312583598693666520642924383159037526738012633215160139590775269587713096350984886700042412264300590073761505333760688285382183609712066438825835960114549873032830698851979500219424113283245836743072216275557128006148789400005043106021918784450037226123538760814689137886079834103731544936620186105117952777171553603500062547189045058808697635401728807107980469574552659526783647997269605014486149369276242491617467616798248624694516111216724484750569386044478798041243371866205433848539683255501901069976556101834460276858305318094130558986082085645245359256662631496268109041562648193232118463930142454001746229649254822912885952323934443320404861159721553727121018937825230588188022167876637602573010468680815971673593608586842950925439572121427893561476755809206801158660920672494193862468903794282202805623778993937588988614525109259175203318396661433586505858093480407254086761580644106604769627210279038934424489395360182761456867461743035519444440789580349536675847515899048344717481380727283587857086112490721575522778117266768905424484729968142364180750395840492649093745178285262171817185799292772877947060896048019592228441075445925420407761859763354755764927059517263319309509154701196283205924400605030829345481488372247708887143379709871044314263420751754485146313333954953721331035798183904150656668675763157307228692258966357767240597726439039385658516042005701281575853273718337076922289121286634738480661819982417999620337188554408655159290147055460119198910196687814353441536096791901757618528481431618738063647995041185892558867032986354420824323306242938042848208558067561686106121075534835936913937184039773242870865567439066230491471336042068527727628178098188936163431876196584620065994303076906449620625011017022983875819339322562378206479951875842472662069717672687884305709910222845896765429508636586011458148284255654114413605388478064963582116806356481002122410240145021267083919553471905370610824277199558895846099644542541593012949661904617051160257956628920932240569612221307022897215048098125926028752248726831796932775327790003905514570978192661982972165028706360600015926541121940437950082096655775207623636103173474668944450278642995777709362718120880582932360177046020358544122339745894968896671748917493226057948169367755439011874134383596146963160113159586301412497745526029622852811023547495726809319427179271809958308920653282731188800146042753810919557894212098178509517273765254385373073805180150551688946087370269705318428974834807389984477709943103470329017740796849230534123497662811120802428340051303618474477490896619798808624298754679960169787464265857074358644604394522984963981472013676192571178187681302551595402636712693661206216444368391387833670992041355274055870572870829559855253283741250571149347496234995249808366772385418140552571094686671139071425667101115793293934251737352809039235319186427424161526538629678600882982281342761170220867643145171194326145031977703069521916232740205857183209458472535796286632578561614037023276275594806976090785425928209145328184221194142277539241814780265218178413172563972705207974533436477697859491361814382575077972896946330245939438840117138308608584467978914230884025586010068739388743219498719811978620502600941218837517326777511216855682081384499674662772188509256156586644200030078542566741754296089908313877732070994767593872467973721166522505465118177597018416666940750548790345282095937129193499920037724567081235555165618693295454369158046238800808207653776025822782193924954459167679657116095616792680279904666168769503129715158717379184994581043137088586518797089139367862104626652350931327292585105800139500998716687228536610872190563287680104985871795177803701974654188961670053718944964509158727268885265468469484623735662630774151934488881972244013188955767803984163186119022342226189099534419924533203801701450044113769669792669576240333503395468568776979678178232819522067754219570943217768913315573404107965626997189855726279901343045740561958305430259049636992401880355246241887157436933980035568984414088654570249511144722068760993855620793001812569322655491542011540512031343008144064785019872674842943140221019874856584309354358260776109908105018233149808256105068825533720443970226583803742295771682292091570178625691876025800865245711141769155421490862687731903472487564397497928293558309837807049957156455299232624532529106421288111229027276093631017184982546847137606804703612945880012512546252756623842833700451542841468079515563447219315709196672553574846977076288324138929773692554966181850469286988491778172819311437594518275192985619264563429680148138337918540307136861128448190972371371995706242740833939511747666017001144942715772249847505277236433240009819283852066367200285757828438669002917818764063652486676986195869753536345661008622524972400974831642091022197926443180751400768016370006686928442110864609404733300189452142061938124677340033545332347317270506404636386149421695515644827714674059058366725893811651087874000618324062088319041639221766870629770297366476798904998978913442147661240909494981574769808256957266273492017819297958494797456249533748521318018783298813638408556567240327878245188791967239348247700159951053990311627939247794417556736828970090271209949679280567013448574759424493052710589745451431669280955681099433423488508304727414045266864559039725037497877985851125010292138621236296698998985820487097416715260128453529950504839761942759934465972852058211278512481224468474789875544588088982423787616019900128890289910364730509060500812002270769696505151948489582860242189225395569495858460333549182833370536536010329231167694662438027407150472906465018755155231944668785639074892033125496343654845427274958631694300802594793089083967242868976994945435697925394762766939157355758713623832849338179515990883713603857134738235295528642201949233603721972701265480945265125905465962444714009633718909225022859573074825440361335577668116162245537984324314785950975291956353898233677544220416654047555120020002554412203093723923423972147098675087038255761606840249291811299371155671167355546782546346753650197810968707498845313313468124289891283025506401601013166593895426745768323687354178282724929981213016932028503125065598856716365051586645676586954600309993668280098508303052478330104383378658044471090592698404917889674914845058079175835411199734617526376314845047039051471086898098005227295515980643446129753644863338273311023337713840913777626967927263035850627828598608575408988464422865646772894480201963529054657255455430859493970304296814165588834338569982269625115057212583814061142113737835924015929680951907506875560960158393852842682471925556815223984333054894671458814226941850618731747208724009579501683320968101144843098883962007631052049524395791075868892721702150236123090762794373292275031634785695584759203893398034103108477270135254165399672540050616342080688228343955220839110637284169958801866441245374615371629864979949212215880711203110420544842513024097445919527294375915043592787029336896055034215162766143109907252921557974432393747750812082116937384213523705391099357318247769824885068241626489196743689172877392137271662694996655242202969270931424443434301331462412392805054652610168390783583739429747903007086918495071956257212571708176595795532353458048383823927405917651240388489645863030083635120168781408929895350677044836932076129970037898833437348039057498830280963344573382933950097376707798572474878739549867085719235431038428320436427052980925474069048306834224925797331898563223166382646572543492028103635267323183831663220661157716989444336264650550541299025434964440922228591969231200420909209928861690370819589198841042412365999778797960356176388519209289337129519232726676858930487185111784536493633327034072605984596369044770853856438972924739644922707118639680496448243075532951788216010264914569892226211103016514520660976675109780747487947492796217807812724421755063270375159021980086854397640267832162835275806080841256415986587720689679454765222782027192862812066464060405803701633006439837131718634606275676337116710413156989009967388466076126645250033099742568580416131658749861942865962251335946930906346981838830012839436339689802722743119305099512259883338266452009879311939310686969913650625789363067155808968504035002469391921826726940794182883697601278586693205903443883300723442131625140188100613133697943175813544632659610613738292373195935659117442805028839726142772871654082391804296792982947124499428565357011667677152437991131049448893691192623603295091493991873463709979659365791279454846619650469582776599207032125448193705389903751597322443183889096224831802163420153201122833817715599536436846771644330172296328047154960407880181557526984607010485084088926524292781179129221540386063385398493890797504506200923446197921624182934081652519879318803919970063612265551671717531802380603564144135298913789610112874845379536750938445007822165747567852982239550378612511314605346023053659706335641216473212487530481813872073725174386834884990485504750574059336190118903734755298994768147162507064582936441861482411936214200874648536599069217939756633779650581452624507003464461036837808026415355568330628615098609073884135223873997906498621477279135342546577298145122396446931993348914450647207004430003601515798612072352461886731102570765391802532183477477783317796181995724096051227356816286345355500447884188451347726393308967709936150794410087844026856614996819540463495912759614381411290752210665304493389760861104736462545434038256205076754356271317734782686153418948149918835812179999245993516364701229851010833083447541675177436324407117007553456063353819949491479542565825413721903583205094905479168675987441503449463424546245169249411366904895131700149544074219037543398700481532138963777590117639010686192735750790748983415229414689251333264865284178212344574205237702751224645632933260347700186210178132759577685616345706721906236287109001091862768033215086468751438012224545265047629470365327966635875945741622256477330819407660424429529270227937953083191988229663348898350760310740729752528681141688021211543791451508723499629378888752842129457792382075869434410937713197830997883219617507582073094179022744608084437806572152837893241408010950991381660428295286989990588101368522912512990712843610460956305886758884298108521041182813282878213131382299507503815088670417396349604369741485055752029615910972819676795785138333558340281615389722396574817945484157729184211794105797761507612054447428416609086465622496918693158057508908688787809795630748672884658283809970567707435700173949427649745418346369947537234664066052510046771465301767990795283864561891242545887947591022526156741615502536429407967183252135784146364446082943575621616377262447744502333831975923977085945932164954270378521626095646530056249554603675255687874158497913240221683961597532008070157078604115636648297464646365127327041016110223714961936186372452645493217231016220254843827803495928608913944428881669299870417416597644647199743177203984700472274507806076869587297432229541931072702015236491982419158955104137283359155123384573308759711130447515049236093817892918279216801483487746521954989984581332148978643298638550159879471613557821271753985703521718867913947534541585956190407761745708473381358971579754707661357013863103266874956370186158480733862035330822307325896596498975205014240784605101413764850577615206168159254765590544406638242477897934385759676741330596285372023878962826231153945933981156850237720395620730254925358436799919504446168392091052578291483174041742408202230737636499768452105990100170798488517549858567177811447205588814037756087995053953755554220427854817382711163344687062661050297925728689774325189009948451321825994707079447763312727257331448936478778876303479489522607011527850085584326383797326250110279722038437644669424868002734844877625791337672020794117022389461868189816652796491251876545851910703085074855274595096715265777961076096539316475950958575940707727398995909040230188484374057892874490686505514665347177241863767839679004569982732702669981254260666071466521795316532800604369041531405914266633614043856481408838096443562156951257574250330718558046706007752311493538040076454583302858512504308668681639687091144867407911642557066839709944082044044612912158459363502032367555060176117704441915052762457960062230858000025473131394687162680715130736868584926740317862971621636770737320053208021201902113917785461854948384894445318029490263453690022574912783348545540571306847256396007792861183494962264017107360381391884981949173655544262674796774324324659653174361070695851042091517688540648394290616202987651024678439749770083041331340644689646903216195987897433142732617759634783678769734492861833812959635187999785740802480463970930715774333050667920078455202147209469321190464648599750115249872840459962243507329927626998548160454448281649025333894128121146509344295073632841872082849711087227014829010628304888329654725605226053443973247844169846314426431113404676579285994403265291691565414022288237340251166118038736436191625549676608780582496585626247649485745733297395676551613325134520776584671625669670510456954482457882923956618371043207816791702692665099701789174036670395774307539280654979771307060828718538296298989937069525242269036038580237263000695936744379466800599491473380544642679524847115749862637872185606870052363759527356496197188944780612433387768297059760774428730918203672087649841280858237056051595806266839486435660148507263686192574254360468587440267048160202011405316914650308053305842702485173201805255467585688224270367253901130570311285851185312484853379093610556334831375645839051056724284552601085120603285733214519056133120901105905475101029489264255883894772580014535672446057582846029907443029336272719833287068143866706385894561725979485699723415072684814710979538010044721175295193227717659611581680613195586218780241793924630752201385150885651018035250714912226394079020631592087143898229116224872437881790990096804207839360605191353657443863007289551904307965884966956267224311617216627418620534753858696507010941619937603651976820380022310532519487251507522848144961381291206278160171493272309592568370951723160666694795292717656190752229902297923727502822471864634841903372876923643864180835684640630899416137749959742546999137738730008608802283358093153943405004695988175108809664130455936112243841815529291519137954477753257113073446563640217068676471550477162661581074768287540709397654631264913546421134474184760402583790998835199926557455787825082673143697911336173883186176290839098673667152419487333366888181456668977906558897268386713940882552287756599523468518600502572304021759856731257961884669619965751178339403524572667240448304988844110554194219208758389287021228937171292390059174669467262344512345728335519039145010388409986937064580436177815162905951740332139065142684494495961970561284600874882547946191238087400123185529432840799264503132219044079207188531512944387033409226626827461560923438703050458328585587112423227546420256364710761867660119919930849620678746646702683878631566599608504648021192171354835327433356920878248374171794043112439298653256267602082792365649029968744464964007658181578464315294334458436033284748112959357237309899753653880798373301775164196620698103272796033488303584022994060276399642189507563098418734421086240996742414681049245796122497762205793012811050278743130539862608395707311193271703844698136138321308057880793725989185915742483342365549671672987353624186188364928099179467758826483466480491825782420160223322828229987891676754203828533636121100535891870613348873146475901800717850206319984683016173991159133613398660533487822092537903005118737309983282210269296343003860775650970294462045835028737478027134104000171502445005835353946358453649686816265815333463355213109893447562695435622964645421384600694717396148033716431388071358872778618895322387053755107348128454889375948949663857541675338419119789197416250280568127227560512535596471513766803637603151299534024904414639496081078982554660630036147164173156638275676334845337223750040238620348132545361102118625707115031452908589636247811600621891664676007724324242249444489169313655465650378049997341462244845306918059288817170123829800160297284374633178215375655162883363462116186070803527357549965971210174503315544514510936483146738677267306211081598732375632778347665492344058446740369857946420875081120656115829890842034664393721707507997738398898206072181879606729673401320257259853008000858042184569880410854421233360790099944659640806242978188269807179911641573570507726165758774876720111876337931538185682564208312422425722284361904364062746356134477677420678828933155103018117843819125762301026683350326945426901720170503568466250933402326476703923837567735086943937529953759008234889569643635963992685499969490589088098182580890884923299829193497674955267549160361785258639203550255737982474333741466477751848153644140243096823674753988122925496946700270226172083029476825949622708579178022880549435104199628054141790031103851617847265345610129200966971971374588761803840780415557269104802912511223805140294769028776177694534787541515503377844613943471707011551457152445590910252108049160067248974402688473651864971518026481175585533351045001812889845203487620663682708781206636597997187503418795861342650456483928065742407670567244339364573075889681823152725474556340930627104329979579891278166321715027504779774174242053774031830397124330379663045581047711146225173231853627070326645047996952495011853911170287383168563258082660162013062560554114962461126985436262880599797198101069812937984173379396375430883506355167204600130844311082446447706673978139002792450704848007824913152071709185429394358116494332751235078902550199661707191967153919696644497377781664487058216146775164795636715375387455007926559860380761711084838331447128605618025975372941249364826707440037916313680497383152654681971799690880710421525032127307575085222666798598032040199898470296660524777556370510278782204185395927402450447353360032848150827815259468965163189774770964534529616924773522272359290031536227582972930700636054530361486091310983168652110151313703435337149298133983553415077457456232026197159589677165036991894133207946402507496846683930875082643528785909275474742416878858617753060817846974105506639685855844140012285482976698677792153193041294309537927586205274803236878598382292104972054728150057738546486440778603198417418852726134752541903206902300976768366807914894680294309755124411455659521155051587392779467637423796693785191675027142841060090248571521570943278732128387948748531425586149470803488959059085813827508340219369961061398899447712300916552066960686004883221427974049799591457748486770402528675516777157656436584675360681286843701718447792574934467551583777910825109247853510842107613298331929801371901389734510868533299807838339492525288866429776471223311341747157527497025564235844886239875505916200628643347972970099494229434282087718706604300545520722049331736455538884857348376428035149119583140290457205439968597994480553441864470398973477367810738090422388722369012168743154808295977188614254180372250357830993300808298279356019761280261928937091424684363410786830853384236200500634711248986812673543130172663011402751489757224624796191505297223804686683070910160172174392926189217456283197363182492249889675210250661279347376397703619026531466727416738559850164422240883881106643695984854498136594702411557294102192098113572596836778749649080226130223527722617342109360940721828901616872015658400106930898320150269506312503291927364784404744050823682073151439065305279454616760428008439884943048718611612406450771655913490726394788156241493263319846404357218546542458479873966158061588876493270234475560701778038116028380479327584210302934942182286242424866671495453634479033263001799282959039527962776811793713707490889549258843798295880770440329798000206668289019120758808207735068851219041491076735279727760320107531559256722431212671831794285328636106427011167523802893830872858571371518759397215678637280428867773430968817928059744820066402454885939377214513717637510213102958271804587443237276112523313114991640917601197777994490797697465998855697331435171140719206675910670642930952769030825058244133055891249036288314578203025646189331780791254338152046239736596916182531718124931736437334394758502132447019061144196793303483101238713820545702628427149883440148254047631601194147443150180928399045599875582762183828231142003058383723267409776018678445614877034857017913452226784011781827765296222752202443703517970913826523231501381916888239797633360613608204783247055961257798469998986034326903761107029019904144856805535052082353469261644005469726648802327393059937141834166057690292051797213522756511019803389993678322274969347922890932283354438215584687575876981357626696713872674129736910610593453393835789491875024284661735625714835528616962731251124485855199369351303801183245732291259988677513368218275249963742795363008792741924692606739099555353838925215379786015851618318684725461967952786244055530229664001904911145870126033819306412950726095309916012411445649922296227718589212531019354546327925259334548369792008847904316091211227836627914754705035027726223756038641390062885902425805957301963128632619591805345105301901177638137734830647383027612689388182766904177382291230066617478356677214288582368724331368613824551329136978855663556540950050432736571189223901705164844270505007060155199235752317955040654304686355315694359500055697918824247245651470351917482402192769442212246857696745741182456343707535286041277851251691755764615698929896357706001844267820015859426631349799734237310645417755483118646365264405084536850761443934732600692812084833492115796049911311149323248241862596964217151927410624401348790827743334853300843813056521850283526320291541843687317302002547809918059387767483417630443543351497404556754269154740005831109576035262167715252960279746640305905465580597765976448724990053149014815520444886441900142789298111808845715704605288583114694849854695603381068882416730314967802690675138600506669074967218071115292581034273671633582858669948905331578700464286134757685531678146912108981671923057413990752189609558519844555642353271762284740026620104638996878746063383551596827924049877240738266737528070650380542559279342685771404361552348640076616817910165403086179668603495771275718479566369246717721127915443019732173057509897966423823869731383996960263145296672175338023985525873605460492293658320252961186151955193928235147997422361665488531263107157554496905139734841423628930909976398644073904772889631046545722909967800954862475066044476456936397917714289013883681439610167851059498410571663674885514897169153400041569553526447422581208630516356524100005321237784464501997164602599633439997184651355084648108870923869156358306159224428521604975042818776306991296747449546333830198472471733371104417006483129080885424653084344120241712157207187608932264542024211622907332642189281237815064181034224424438152302987325283041011527160968115292919805166607531974726452106614804914756350395369219846657382651058662199395853550028454115515998905998719743826610404604901273538055141631689285604066236051223817152951351907957071096560897576792059641035287325879270342095672865640765937790224534950580646504268641762960007863340331710529919457375973312494169844710626570537593798726837652310200542301488313720078009688471426882647647033706832904012711577811197860255980018041742240857301387932776278931400970935417970278821240906588468522977815167576364645702120071397014424693173449350146714713299662900729339896139334197299595549012013534075691966035047118764963317708060432746087543394986001347679692772105591748594893881011660724765891757813416073498441665754511246718870611670919089369871466569412241637924147463842597330803919220737499538343451455445194538312401587218196280722477849846245987874840121475241581789523009347753796969700403160844081138733108438550954240717026678706949173664391301326011172885753784920636915889308356340263955046047485580233335470132301591639946437484538814632062342611813239767916807690207684289392606151949738931838393801759606800569144316657731021211180279713298987047917720634751917477432129533630316065132582666548537948926845411833672155096282002177614736163438739398745828234119329650809508881154603754993889141454402423639030164213265586304130260908483843168277279173370847953418488822823329015920367811498390221091146360133921479129291068433504869586770093482592900841723558912787737396592662772676631561093192168868551168744450648402838987133951714092544933891879609499753646244553974219801776092488651888601110448452574492526515732846997677349566610480100415565273366294261084529747968052347605098495886650995903649424752136247614269970465546403981886532875463472067295766430518512144089948669140407400234876319742487285863377977470006036315892403398835828330130441759017089143658376316967848832785164791541108399249300560470436688139816453605279101541752834097711884217314852166231881201728854417903530733035675791111536630359180071999856288550247302580138399988360974944898098534216278540428612631148651410634660862548564474216283352779228691678127517323248302049811536149682644070545423154628470302614954752535347613328494037731432473352334229867656843384829192198493213514269491747923029900178736625666040521214252117027063765861873910661865105273035721913377964377283076201946268410377183710695830935285963324442701154849597994485839702253262124432680584306627712130652359082877716508724049449549239637417985416860479967296296466076928201155481179499587045708146597676740849362194143142849788783508197176926665306228822378784194764468790376708584104982059959649308295177382910910239228440934513341045397244781841035995850212780942836553371703961446770615334730812695138125989719478173774069886953544034239422179433300289673876794305607621961128571141780716982668771446927043410849870406329013282220897793147831183226279911474174361147858530846564119313180341997477627017509697588845522287251687202253869948521916205562204948828627635563653465654975354614067522372410761157783108891411389791304786149117429881969477556652995025936015175686230079551693955035832694143074839590366859743309718970750506961940448760372347390572155923593718422054437058520675883304438446438428927338355470332224699166268964899036559930523573948722016841198152059322097845495239599337962217367148013628477760797777081801552306442185183476309089078436850344912945112918885664032938799477270251437577603901392989268202180193210547891554616615626618013639833405832804192102573017036996554954360461151744629720190220741992621763285242472366293089219992965285816297612379038019283841747649364205804727232777633267007889658293284300193451832874160999496117160440321760167575390745329580381068205710358152351194014518626079322270837315395321372485357555505383048797721052145534317453340069149341940442931981818803103919592393274478982279251430332567045903506263757732171040550405739763791848389640708884095746380907470950434519370266883702878068620881250764422416507104159360799197043952553823445214380671557617572063167516173625757867692687826169102612320381908964422718336922993355184700075675868939981402971711671135292189423832598730172316920980767133131787035160747208742366969446321131580609288863771071844448339536105935964197071266709345244341060575381302631851906554551309091916282075041122612156001981555151625417167785975420346175866599158267464588127319098582748319108881802205965036182365089125825100554146874060040901019823759948078749849237034449644887711498540924832664969242781775537970660523618496818662471020524789181753582614108794963617440491838173682835890341815848933767649469287547887913033962076543359499317388081445200847120167581356572534347681038864229521725546747473122654674761507380727510350100391291514502275385904617631400970837089408264199769561557641813915926428385471115663551120613454376006653330930482899743443170794733125812302049171510192439689291333723043792916108899941726061107848545938986598379451148325669645006965337119608710606310905426285853493403591327721583709628526267733018332774860118018229120831091496220192109794168444984459695531652848204761352412582156237461918411537545401706854567316881221392465881355980045300350204906227357951942771911400635175984217682250541529365015461558265076147158444361862938230597589007567812207718310020119898607556756462087444211743601422447418758803468889352487364377426606841775702144979105206296600691415302321996290181263968951257715413088076893524310842047371699382430691028873469154788340156579514218952267944771157398115887809704624208572601680671102144260966964363874055034852191846999863198889469328973965675520411263026075013769525467329066766337569281122296794352706307062020243666402917913368501720074111200855866782151516918276896849224199003993872524916997987266457958175737353336138593965031521463186435465388709612810924981196551089089188448986659709381127643960012154162733207850304720655119514455013267168482706022070632954997828473571836364457510213075461449771404863862495472460642988795463803648016070826483999071015472888128216907912653831928802411181307826589710405739893247684057706431292244105232500615559698608605815692569168658404599087399732871359490892890599224089995054954459881294442199028751006316596634093404443701465094705400347563336689207698665608802067650020271834064326273066167064318415765646383250288569506145892108940409192608858322252592892554324019036763894475160162890140639063745272174897732282619654684251349308122551936514395226231012445676291275140519325367652529487447233324332926480699981724433547832011902622617240660830584182112298688972753880213236643014625869669029473745585829021376036636353700848130435326584068850736312988833932302734028644555764383128575345386883652562814065387503639622247533253272840820916037676569865957299398958516536861331167838616975040963915865825471934130924589013993479377461926432518067322421020156338125670837541975504696801145141674664012318804429302287009305052262254452178052963883924930009546731143491989581657118179003704122855404838588762005536420336507955220582011101430561553336042025865417536086866413526801219833196889135227971950809322610372434574743631693323532915899423289384734128719185684040043514016800403304996495757054847552641311605593095932376823411062578117771480913881206257262270687896570746729274657639119095171761653927245199566468757397426331097508040422118758951260749225085671777500213786017228023002012349620278532109778241124383374693161293407060062391366158671262191210235789960507343882002350040695209401992250046014607352084513047240550963945395140774136020233061780644186396640401084364177984981737465516618011132194066271588632211305777156238539912950591057466436247455590787790506306033868729188201111199342861672593767261006949971609831575948408012989395434048164547826586940669133821956066218811785177835955427182313937472201377671675127298745854646099380321421792297421113804477370385153594680709708921865875920341973686497356777950462177805245585275557915958380540075718463023285938661034558275905726181423739589528070892195268213211518560479216011378534703414158591146789943154827094813493429692985286366710064802915525749879610976206754313821575724198704457973261944552415332630902387381270601225320229548335851726674781331176370374380029026149667226070874455935309558872148033028099505194786042517911171836141628485237909326602976890400047516461770623370975931288007025234637838398322093361249179446770698481670145936588441161672265019865780341702518837478742749398779248956706553498050776645416087828055657385187202087520638851257375693043751665178736896841594355969473718657734839859713676199164345596085573460663682382972626379840444436007387295224556637557122034776708513552483188978500010391411364084903695370205554219151240066891538044490608482691923983448799543045998511405451613153216315381226282052703210545804917401636031767620280654073871221294039154590546283739535728272560776480137108259360750238149866397990805635430242775206667093063620588012482966169544067905204931762536728513766516614384299499212987052122621787416596436038979863394714027406730450785174089910167283067741409890869855546707876892678921823981302622463260768033832224260217288905196683915462021549334158423095701306221573541109732843058919554341323576708267406768004728106017244546943893281056516836318034741598056933827705231911290042792266875939182238398574436779946927699555140309269052895849763993437158618208002646721538818189275212528742637831600113310102050222902506386744312469596149425625797281881918161231452866744891031311102540180133585091142338953418484257859111765232461849771830475658513427129517861916327097086550527351472862777814316271394847284099498015465128312250517214826564844720660643239321153218702402463910720963570484719763147105691690770999569431475180893221048967291909644577958004560793016810796601336186020564145749431743607066648589068111048280346023182719052743813978857074305492364149799327494482368851232366545044781337461953815465440662743363664597475088189733055760494044443889083318622856625590435888183851576650695786010309345506163089731015408030989136112638096460157201868738891964020012238408004232148973640450099451869502261829133903129454610507678765136214628391976435300640964280599608808420207198185781596976827799884399873439336955286652830964912519197809522378350991276664124146738959185763582621933883099389610525836934474228046119250624778708890460302511622533199541580067936154216451289161151502388643568948038489639747942575641381171555092866703135955145362557360643179257075638277046064425412969155002699015832217151646012544694001106307489927858118138246968259854302427809252847308273399410151617362873326209271965540015652656331251146114958879173961262084597280818909198698493592558349241206252682541656493742366104478029239005737880565926905819928085894131386028883330602456583832993785258668931022214418898135706054575240871199481305455223309246553665793352471103941344998328964714754930799895405750895321033574712354002154963262320576020196025860807739745861501738978680642804676310625624173522997958218967923230684560477626026481639745414891454625984205902877707360928206857017419436141923627533715998899060699779151861864094278651259339933862408818323121338049914369819929520571504431454690695988209382858211577884297686168082497289924365413467363031282722603088563796986158347436428705358479326479772966751894590822167305599565877493535662898391344999165580652251217744351635295484958775741170586441555880136171283013714053133148891377101908556154211746123835055070194425349956356191226633218952275358051489347187558159603974216776716808955910364090210138715883608433930616594083604364815535383625951763484565236596280454390921109392612953334360347157207163167217994133529637222177618041168049046578507434092861944231078730150258872383278346543895894732590889543170322522505225793723237075775132721331079326432376074674806717029759117891848733250470516044983918257101193332245946460981750729769123720436634432543698463740672033586402811321967287699050827921021228074040461421531646018028973818453024438818067580945811332379673727486397054657655042252188325117038616264084557119555308517089195842795429038600867083511326218855862112028132514673995377231503804617663203577269675857109773088253777914305177230812832341606355046030347340196790710949547871883848664461656772922372295018083509862524513251650940418620323629026135694372441117276590034777546377500226140358609978252959570115772944184885057937116629710240817885128502414293256496327495347128619508896120259173654011092799498474456933307640907222976555291746763144674896882065137694094272936643893787695914099022713373517167701135813988105155945836639014364967788940835516913875480092474086298931578250382645663563658309077897252654723164544205269696139879968811953553937378365570130166522385788442975659027077741661109130456688102331640137169495072074559038590803858540999238094961521559175647162989299291165847140714168175128230308270900699023742494215715767510703294901110374908745642906318861381994211178710022389353241800797280344328412172737693588514646919156694393008933694195544145858901659047498168430078348624151495457095046037803292151906927754182611583159446988077218582218666432791332341209295308789653000523029550283740668109319900413863212321370060173596000182911965457812509698646503201056835869588508787740349132307001374858242574605838399870560106857051576182885681086590839309814334113911041368807621435508834956138718709999793927285826287993630277894462179565734836054953658301417163418767682568690582113811218671417130278068928687449299858262679516881493718434752886041448782192096036885811819561287896770802845938672007189247653974047762092719486548176912913736662954721405078582779056624657994763478498640801281758177838910024328687009762701078137708527875331028261888627628939617852017814397611198024744248891056337665423873036395578923491800371291013710297745589556023677969561548586510684528124825313146594768745850094228426584576499446495550564933807014087382454723916732057543773926773078043732968412308860717646167737080009869494342066411027938644467194460069928839850110785955491129140312870475299414519626886691679311016114648518947180839182231589622296385221398877274009381661225113228873881347011754134646941808326597159740584590165844897351579894881036304534985339632680461294939688942810685276956607642010897357945578735909383060356316442694050619535855053600668748520896685635081993272884166663487018281094399149822255861292926781392781356637215040768265380295412650800355978389705048602789185147988905506022593534001093135860768776195471575754319882010987932028913245831962253659649706352210223853988353055309841398625638484301051692187044654562291910534238558463649735693728379617659088953878347887280762678036135084655920692872275444467089828944636574374060070759197877647289582128565696470700469978435045881176773423219840523298506588327668818494406673010933668370327414905536116475170866837850976161601752427246683369730846213858156342824479132154040164969622726361018780130467338817002555352661408422719582990895312628384158740021791356227631530736348076810277803524977572645028484456640608194315657972362656553081046782251111050498766471830226840952595366720346197824085356791510522889396379331489675707917779012064612347147137599825901498196766467664130969499755068909877893443527598335711026302814017018105385833883617953938322663495053072799007402987238684553713490895384514158513000250158876081405367983778282824418197304688548265303256637903310769666411872139470443486395778430623884369999062663562225763358206038399997744173137179733549981558871101995606307455098052649994916055786650575495747918275312464528473186075213978685015625356397971668032777479044985835531594468385593092733047091159030237670243773943803880155547040562093461390799043625927687087823675612678269782718854054314929233707948581969346061761810250724917286708984653801711586558114395836471930077152926767962046051906163271734784428681899805525665459390795358189434658718978945117246532111620121297623237610085092830647492836911428921328569319645067537083377170722961711483839624840664526733506835351102162688407563598338069269943943537428353566077972903917077189690961595067976969739269387228910585236322314138908115502611764707680141648385921441715714867172227553453071071824119475526671877631433839801830949769929130463236740754459950401494214212028208301347472593589966265341144212414754853196661909752215901209989909401560995617155725317656248412626571547343615356357725627937014242753413892091379074943817022658875281624089807675813001577406091248832828207517602209443278486559199861898570748187618481670311684242423617763608363759560256119734966896184859711164121592764565994607825578320564160216574942191907718205528986034993315388341656395568421958147722278634756325041382586404747148770697827037877282055743873088390102465183379935174584520158724180420743562703737305427955736868259883133576208787755785843755379880606953515182003087666216961614365482162888415415014687597246368470427595755441703939260776551376361665479541308706120635625927678954949820429480113677783486606266262574127034331491167045695265811983333427310015236685819235084077578078419071909309412847617074781698226844456939187359206794755769901836598592491257211554106752490115930211588930373959852595981960063022976141716447930894785468718101480783085568531544882489780545968104511987590547263842542175753913363145624684669937517339442188613924504165421444712807765414439096725728616016533233372904642426911223539626343281984409690825502423686849387736173256244813735686358438426032235596810167668997665315809379940821418764769318241866376666642748922252270513389205284468648722933256924543883915799075065858999481729012988069718791260841251267306965748482461001450372689244096787834240964628720063914254546996874556300965338916170767531527816177676234461476321341534616573735521994705766946100126395496507986853215106465854365488354529746249342033897899282441184601296387440870795403521841821724262140922244406145110797553783226932648206917563412035916474451857710279766327890779484592804861838056498747819965676465671052536568096208246743365222940023042936732303336810448772916510656919469395169281778499993951994239852700794845364361695599707852368568456859863820915674529496383006628503718048065130236315725834933881889003224772593374957500057182804615836769765313766111194383174495000628977591709393785375823195600375794872886313468475341696077991182320046231691325549044791623799453388880378714587802844350586636970100923963358517362284952796476942597492824005454499515038649199583482848962181062702209320765759119626150748469302309508912939253354275520738460210309963909596876027306887582913893525191125191444559242989504092884416030201050895523231519243513497955080856700788537664096037418202956577095524370051133592487788282335328642106751387148208068693772974669520693067865324878600940023304799175728512583700465251214166531616178126370260408185210802777355454793983097553253254007188130543608303437212032942925643366727117058426566139091061130711813510114202075866671897846000018735003530060237855634645831380201523171086837021419357907414802346786690317484333848102267688658670825724176935195525099730673545182556684430662408978995884660837358286044087110374568323620117649670869565335024103970010571636149102493112041591689111928066531120337968327134411907414249267007983647315337704393189035215281743161040876023245941077879972246231531568796599767145535555908735253288403689070597349912898841256006751011172522253660171140842181663472071053321618509324742131579139321844388651568052211894887430970944731738009465879955305626793204739730044444970259775544103138057230514934293845409844596558613656139016468566958984088165899494383701311055109365550923724612761899359855100709965520568632466861101985378307394422650426313918866932726867933899730782379305635806003546574256446206641694677488073750541384815475367060141148901336785936168421413903559117206938133312753450053420358229007539033781664059254126439296648342012958668751032761188457136012995179017886305832094305891372919600669573819554003929989960052946343898170411049218183959001254951437281395408648700046537089259766387274475098565295679142701428614991608279592715244621061990999373661727047056109779038361360545368771772428822908259759152711220501469304849791925384376563026506848268684548857380707202406292619920484074991203530012577088632577125229106495240093415960667171739775276129972692826061128756020622340054171257686070201077694927076668445938743872289553925411708437447094260591267400014388202660747552381017330421066212434906042140646345985489929106381689165698747791979330978630146528664913828934587397057535978382900662844842918838923188712505166841855971982075652425771278933704235133633106343637782093076747305847073029937207416070231987927317661236183454961483172325265583203626937140284242486565299732628491406581593799916532453524299766085014134510855384502351886484200215548330054243102406994862496592087968376514077027753043543674265184921635539954685504727590500578173652851925748461719942256268681374518775911510970556137457050859206302335323200409208397842601486461942112368921944407144784841879561647677112667077399832379304602859728058136546556023777383577565086417084280776148903326988291726838671951763150485551584237405085702558525750925177766371588198932962430725027689607039519278830600705566613238066528606491489269930432016816389899573178353089325368553742035195113883825935050763693601121173862611392619346138200644034128354220136095463926828838588097178178620918179631976159009732253261997884680623112715616385994483850272234377443283135096704063636225056406967621574485581990687108587655677486240876813598302046284749020475780707551898461300414658229883763584871074428223121663637260947852096970000460206586692282864231362384942343184764820600326680718655666182496328532179938331202665759840847141885735711596192069831184218494281948345551593622426414725313923946467020063743022949491781444063024114500889477736187957826793321258404187379504521646706669650368323180286962821899221888257743474949081851603413099823471809114379776572342693380019243900505590527096331787309083424961543773662453735608561153859539925217902230212741258880543780905626893464999908123399573617919255142699007515299037317809819548193320419659082696375966723150421706511214391738272365882462607703556852576551230338019050246228607253438783665044268008911482478898748427389022707762346490525226548512684502096535495057832914563473394197968861340487973478259785116910675573410067977776853304903977603299737874728644938448712763205461671886591284438015173309510668312284975877179127818505909919343382057194651983644438750972285845262849238826924764953294471772073097639454969488185866818445390996018494575774944635297966679287005536848850802763548023887535867375949528393560187269504828912832257940775765349911078432433026513702859469814841749562048314567959324722771590825203426074225174945137476642130319078166193829439396316411898470265043893503839820344648662951482590547296727426147938846489444060420399029741634490542838840297195008785627445607825801030341233278886140275453963213780133703144311906698990724202501103678411276563209536575343255374159572676273867720785207044868440465982413468171259051929812401115349275460909719331769710097168272177776587314477376180141749706212266192604957400486793812717194790933675897760271519287232104417676006342697475836254056113358083774964783279986071563792447778961350342488220524622934424191311233493482895667057670667270896796726804349801920712982815033764849580636615225252614684814552284424340263358097640340177681939504798185477593666986788092169212590777000485000036621533286838084662594919622771024829237328081947351620427506219835462476416444830079716975162152083504157059933468504735525770506965888291552810645641975182464635164302951467209722032023436872102259501103826188275438826000669091925962001806216155204501390593454741644376059802556096628721322413476469637093378071318663601596484519976450189208708885395904124731878554876360509854427751713988957731107519963273286442916992619213547205267514340431011283440985863698226007997681558780361209490010885574515329036777679727715737219028650754280255512278349789692520544519821498531284180797890534746405904551515438251565791635946056956021419722429716978326178901196774507191818133357434250764253684444896154673817182288038355599249774479146965395846099363906632069818646755217953180260572162082643238834718471299105436745085364524552658020495351159219785828862874894913445187482499720342745055858319019934640701864950083256349132625014518069436628912720336855987623732311700608890763667568309918213746177363160830203902437627030092647831580390241268436596117253052601716816750354379432886625817522446079483059504323201268717088584945827572855596603001528658428335292374906718628833590423778858082080325508032826039065846779829202848314193008477257677483359520285715572324016882161710460338988851501641778385600261301650715469531279559411172674957704586957788657949128563581354653408520365085126421105867776854123683014486319200502687641681312206068101888888838970015655455229545355351119508671660632465402128997682487619281766357391336105544257609042630498354381861737985839593107416744320372122961802320226745739297038336631946798537654145439450528664541970060444088052470764353232367967179533329649413895188258585194061169502601809663666610298578159156485614782903841605525395525541544418804082143200207508064888114896961888889072197642156579006380604742016662354627523441468085734070617932915070139829348936344814849353439136315652826577855047262813084586394209810657929355698278057240570661424111335559694293745557018190131926844708093567257694951458496079236067112757682869716781054434641335560740592018579489085402115110374938814135377225067400391610290046802629953811860186335927445133939183016586421557524550515495548974077511015407039985709925342203013946408788442077277778653673677141201016749045019334145224992056797864608852955513799100223235284745987247643313078151652407388185992315674898988549072535612922765320221164203806212097809320980304881453816988392363472349128194835207665591789346641059486209624744850061553455117021144512649664253299962069081095259215602379631594281992082159934212500795729155824188625976463016425317793993380421807097759640045097182079512980229336396876862428748602421760017641073500893676810135330539050861670230933441859034976095955159410511802831828148468901077962694020896820152820560556668507716106586558651015391201660766394586017390946181344788190470790085633013698374698178470908539369689424267335262714184921076235356327532325941951714086885513020683892692303517224974392015480635703973485797489293962572274308097363209148474337801894164815679068461873829532619014690087856821961316709943869907613784324002471809574039671330221424833830986173108610539376557775789634735173569885770064722563562956698800948696288993803890127541933630993865053180608332571444006266955456268141795941078221464213718181727594572778632770226907355085821728758104598735863303278651903918067574063748342910006697419257352747856819424936424255365718333119803045610788239816867202060718631819785786006807813354751066178791287523662067236942488910079649649406846862697654716539582884311042262058190564536805215146638364175448809544832910604243671058204295111407299041804744905952434892978407564563611533071943748692170094489935739010919630426401750730926653707695389870499585932989583456309263404113916155669277909725069868231829605591495031248975659210561293430139417930424864489022909750105885707295990799224925408198794091505489790585706581905866778060858079081044966134650766043348792103230293097538345749001515296159154287794894921811518474397851037331812108608565371209066333135697874776320950449400506304498490830841111578776180712415881153787732932464838262371441794317857627130110223811850948136483225000409976266814900874316332895928095783535631039134548129611425086543497059080249613963378771819202293935602118772602126061022058616266186108762408893213067376823316850625940596613370274228488099488637866927039177678519116286007474518987623056735052342167216947538246979583836786953687175191019540216520106587438395208970153333989919209263586389294067635421794422980760066308620713076874336466866212266812396693794386769413596276920179961203735735215554246295695958426996080293162265323003146351930349782109642206164743055457827877104702285901796856835955553596963746039682884565988355172411621119321957117026637893576998478690899494804844008806141433873781849248055815198268441090687344401450973201775266689644867050611039147225510783341419179072472428827941891491181379443128246117448257670211687582411907193466180149134196022862596897377450408835534672067561219980396074182455385899382180891010350406642718089479615358032375451168377982109369308836078399997808119331546660232445337852289811926833940421719797904078789107071342793264478972058056618748776987103989529399705753283180546641601529239805094799039511483729737895130439063043009826122271088693958481438660359962607110774986490108357628568740945309067558638058072521337173528765365733746372497259561031635402503386210104581491224971632349540444962806981999331042867044189526847736114938611249001912291630888460177285877940156541390540425712271254509207066223597315239189539971142178634527811771360147524428363315370779942102375335128459474523786163420475912398826637283568041459637692689041413536615996639034132498953167432493226050940429595950943441695382428407723103677277667912392729947724353833364929742629474257100744118203082413608510391994628887134731116343667887182579967207011826306363184832075344612457572754233493187803301834250097370940339762669731526443944937182354900148923835462611757264885033075287576043204830664191269326742883268378702162748601231707305571923446727201723682531383608756530197548501434773108323893988784789973308240843334778593253642588894030637047746021045030570540117217675752718915201898980608842201408462694102158762972492498999505231085120548287835639932438155175345392681418194884194007652554429070875866422275652257453709669191659828583892720777861054304680782705465220733958851764697096867015350434283547300359467053170907016179451677072830186056669404782711879554497026222707893808023848181474107073838463007123261533987213144996271077398181067045794991071554865424299707666170235592852521340377933187003093471162306437090421191719818724909843929821392406066806538732460329567536556772356365108655653076629320096753724093486419226544122484855887685181812758367280412817616581683921693132008703598912348223308266119593275640383747575049777666485914685312926760242944547410500459048082161312070334719192884077635069530172883861982587196019967345985977800121668786119456788461869095161972277247389708348054896305366786094199071786368975570042636236305052732087797384781645053838746644727924013336907269424969431909322097132992013242767837117645606344180438138241726310688287595823504330614655035237786041058806462489999119291204437430339074090154322814947442363597707835087301067081113007338687591525478816607787797042114024850398929597688898477050241892890283607009448254166390667555281427529131238976601552835719013483035330746156327352596831402259176721252733443990717838381530172301536787084626585859839633160134545630552497977547403536765113402973530038251368687435173084535873433675311549573887967778354678802533477549234480844697192393011550549946239079688431106409729806767230073324028780597419062252156981874692219141696934523268656171659749035967520028017737056013556274236315532379712306683820752200323668151289874866421181025171598034072323472977323813841433200988474744168398380823087950120361306378041983371190080457972692162830281323480764725674973378310359067725222878837314773152788702307684677135276681518299658646800786180758751046302465517023181692362458401385813984934074224909097900494757380408403513374512448307673175824852742258852289888181906098395536671071504806450434868802405743937290049127868819380271971552899461869848260655070734479088538442378203483872090284163626516659078670190536566261052634117819202255023308354315962845833447680544604441697401872366043284732170958965774712562231790118606955661251413566874931368579215028063420578354796236693849807310656162885612653232169194710396427985672277552910661073140348053536531120883986972317945188128513269248471597510956575582516314436195850205615928166456314705178691637742812479954577623325802170090487743314040555351449730439204562574094667732830161547854841031895789784490079756100725624528992787377041022178985399654300895934623163126549701403522524528786982966419838731459754722899453307975646310699132097174700572130404249918791715699126183037604964606040062451424265470928274259302582349886180347545790058002725535121392320693855490600739382176259735045043700943077294092178420683070758626205695427704814131718773070214476103944828042503071139588882360357013739061839750562284904499003348741456492894012520177917885913009363478272913311257485605343598725111928296195473297919307810512750362489644183543458807611500634200019892068054450376472917805997579138749756862856387413782365360642428120980450487479649726640397165497584384594909375032015329242581309604265882087849786161362667733811920212020290444480143119513591202547591260008433895945688959433574734417250880193344508377643196377291811805523440506380992746070685070568849219232110098990743646419917201014686143876902860964290884495200366568983286157835176984187223021623060712577003523656178832711823038720184743075460702046251195252379446328815707322733580118102969854993311807190315895000894894081881864493201926492454719712302282501301295836625743184642697655243794809961186410954942177867789507534772126219424303965007887216147884437919864470836261641032403771166796504697668642443480558912234067507788107294442273886434812927727231249529543448677807519966463743534947695140380039782928101772123789549719607308764437869671329022666467015370470275871722480822075038797399737357950019090444588248295977811242252850954972117062133187799368630870484616104806615773352771804058212009796621598098851892863365832623078714910781169252628264698667710260243617754722934215945539770396638533427980026999473588409175124508407675865921778591331210654924294424550389459364787974276024774776315569862628405878908485609493595461365781661481952355719567214624032087016326266251171260596048927838812285772332851748801572558974732020733336968528508566433599711474102465688765420957963360977455298572881497606518631290327211201082480758283015822961031956877853820581799990159029390792860662135863696567439694777839565054452856314958821091477185318525180253004719411252133480854132442766046955634302661119465391342654275306778486270500650079610355951049729948090285532914121155212472796156678076370919142813936058450778701760261788005682790204126438491891282476478101411648392382130523999681419746201927456072166178510667948924206645955584461629786158798073625771718002016837283472759150212289175922625329175501666300366754142244125696164231455088596818250742129821932181582094272625682272766583225760445222450917480903090185811956551721022005799548359570868599666920669755665123952412087779727850765608595328447206708391255943518028406174317069502895043749225806453248298890880869221358224636995868337746623272389068398830661330791174853361038037109624481101981176236673705527106032846851010853492426062375523853155538727904822319185164001768268415243121889338480656078044395550806032954705278695605341984317719502776423543462400958748751641034626568228560516553199171665594574290019924881466409541706288831782928074248111954070037893041612406719275161325383686571913169601783626660245054513347217674232191959368191114718342994718459839696168905441090345252017357495985325222912792840721289356680282494912062001857036473990549715679197808693585975124232723703301580735179762056118834087849608042343249010019086843267655942664409953428674534755613098777270051784085434426165283882519572726000279627894290687344412027350289697811061355612624085616189719077458017324023038914187824316056699401601572352085878757244274273308173723726528208620127762436252135277236730658634042969968118224385811794425132082799004823489513380999454574997029587320212867188862154101680669169105833906929263152722488970089902906901193880413258004418980617381866844561589126742105524237896123435700432368148535256809381430768924278553981453282352568383361403676184435491498730224961545675073298152276663495258053223301300732027128981330020137381668634710838582844717730199867726957409067234709589235082005182675246601878604289737269175454726572265446906530552897583504354174021298614479020010308356948846863684851029481975133632320873872743080476356899608086801414436423747549537420392964646462159116764592611074594276910847987035103035625235076609238563694367822203226121890517444034811968024413832973324219355555523902039612087233859014240183822320402942572981286059672996495683354143566612236558474227109787888292868975941556103336147959365334056690898298328030999132067935299757522729804202825244195027442354384889938593281524031507261847630299951227567880526062045578314109711335690281354447612838152740357598267874572676099835889532984413661023311560444441189699164320454413385061677564156402597876113684592960567301273861408451047739102903870963803840919761289457009456617524480374845093196539124341406136142063083332433224036373063716276552897095252385472039857336734639478309501563481057488408355197766923367243113788492095536967026969349760070962822249307117112393207767794254724917382329452738107008555692428717707775859047580846501799044515575395966824204242977014159273367433456098583855058806539922458286980483950330724730626286455573882223962416135321469345470618287910479296991761987462043254248478740915040076534553960444674986808861762990450336435759845627587922288751660711364321790729395135875623643771397023679534358566907100396714714307481118966516497557750478561907692497918505080461477355321440708566961239559118299118168182676280149288751166150667787821749902803922906078008428217481544838298945387475463205036486289267303101173944534446414668052598792125298557692394405618556782877876420992337941904541293526620927628761278741442192738858311667321030256265565082766491558970998978792585808010622684784528157533518171684521255674240364689294820630633552394411855913472763524706493431835953587708812351078252134149450147264090148336688979451564431609254384663443142326811369223553390362713401415333168764819465268461381626805401775887402368746858562707589054804580645484569633512513264965732271308759148269915276352865404348357225522982394723526610111010029779753797428112773889163514699699272666973576891551361063508142708762572810688498900458521441136937232718548591869915017038475798928935421351179035714997914268726454289802655056697100197340039845962001961925383384786261724453895747685956961065234443918955405265376151064512951353789324727869947008573158204001924331869349633031654978788658571194992764789632620716175148796399169780036938148188985102000831609793294119476617931502873591654182444973113286109493927000194510719806465428363070141851592791726852735515026961752827508620443788063783535090522862608455668692521582586756996912673711413525994805114213520924608493532438449771998619666895206623222574005052265453066621224221763611568230523555045869722979667327417574596485600335518110471725821268833757653372819097433496503356788861997397612058260125905354728358195579412662139755042952118662402102341585063969881969677618187342901698971722265935206012651687399443440090064667101540070647917983031742233948467606213650635126545113718585477788252389495997557347439268170807856166109625849037277685317814385120959874221269379497513092901146251497558372989281726812245082116481969764154727658083971339811407076834669277246128301464764130383999943480629166854179172685573711802631586677645231085815375903640326142349416066937271581484055238386237089202674664316828241971861734945060900791734115594385061948835803897240231297101144560234692358506480990734231859588988729505460215793545348222102774257328628049409038519111789526997988584185145471367025603946663871415009788596190522665360641597463742500686497354473570357659680747754908637648012448292587170623511261377355737797240938499507077361424705084249220156252136477308239345045533513094110140722380105933442878406728740774728007928592206413691106990654647095198197210665070972222759884422867374180476612127328930766093853118587436603655810813803159016153001491138810257278869940217198060128177585014647939257319627242636749919656595381499291331534092607457230195220716802039975734072406322122486158357391791133354309796240940414157098683027566059703072873429336576147566401456602038275447931153795360055531905779493375240822474009707450905348180932080081146490128175781430494757891396817999508697538795109297735408279304118209349868922185247413317382557620603041950000767298954813847715155432867732384553503618837650302818620684232244642760925450335330505694647382369734929004284034135278163171656390248423991474169944228046682248098114430902855835069011056167489400780889688795568233823793035690065780556265008808666943510282061898986075537938100771970515820972175540109465533030025131235581685062157992208579768964814790537741957921948886603760874942182592837605584815964687002898270849729295235076087635370410329980068456923377364796635960139399619037359406815020499496115723159834698337036007874852066140935819641601149027099145291215211603077194255420004011539302713619211046057297124929991796106219522370279712068965274579773873531582406823652928201474146148349021047124210090360319517312080178087409235216529802645380195643404901524080554474476079644182791340694797183482471609194101465718313843595195945485395506492378330090903815451665518924278336586030460126839929304854312801475896931178185712361542057827878480333462963280077090815828053818138779280916344639852773118541020005182670632059168759465664517173153262953908274137571900859639709668778665238095648723241217207687069661883004591646362683747123555027539226966491564245376068891211703334039230215487144154914812125909744466054842386118609849980326724238805926280868797944564417572926159004510716377839271327733673061317057109573396936444014733383631955993378011785655778938888928466058254522740056788474550616945156802261111993639194134290742418804306632064498528825705550093876195542436930848538742885549613954474758706110843038049057098823134013409248384645088274559997145039899731071654755507570563412283828452257172589047877569303998882790485935715614318457328172145382899393755202323589441876048486192741178008888632495843712819659868736891541374307277782912554419785558540371217199334978516907238106922909773905874288827287657260017678255248984837939798822541815361177179393179184894588228517917123312481344335063138116937879005538101279515669949816927624878380707110994219906681797388434811893963242587347317914535699430245251287124912454920440663304732953883747016435024744130248622716437096948829936945759462572296218854343126846089533547798036409099054361448387506569970442213334703197033712422914356125844415091096341793779384167588117407053864522923441814501425854769227675278640057983373609550770892690687251529519052316095221517490430746705383446456779707433530729086539236887464900897374465403945080320363280939643244026156556668866218500905389005452141759722520778591139968842175570527726601563260033559814246866694312466783202822016468518691558021289696633901078675980037148620947339385805275035764760810685796499544380843567105178078766534799638118043580905864724144348482916018508547185451408311629742814252452747584790125464947195800456410171595295600597453343160769730898014082194076251910284884143080313591654953641236784544549145079344722640858388309467831121936468250459681032994599569998709647257047521169431565838035954059293067014171493579022964709304773718376798964005842248150789137454268641452362107152623885051910287636991258612602029277470737258012936603985725898669528486831003569830800825378321394153928455641608396722519333127674558323526385370490760963179160597801513675082853258622839109079481279091104908738912896228864987800825241865822695792998767909746858790466872218841764438124019967569253499664431876064878724684800402354185779214261772889979931595990436508564258611402096111405403982073559187628749991458531574602483548887174543971994960119942403357370820532270598687749213298803853715750498526596548297581445368367391604855974830317631042989497583954235336856574557897843250824525069933404650461748327729190234951590734628072133484078300287142625871198648213011498264672967429872566423131417639672096059379621583117541785689684347317582540995974891735285103880924815352538887894538977041423306521880626573667036872231427943756520603142057868193008827149111404962791332985334496829453401183991655922240350068599401832610138281454344636355303609891550143090724420091383999365759358788278089143176091023268006743549660296435226850203848012058883157410077418639124061688807842145333318178633681481655913593165998455323481454471936493787782523912113690351220884333095564057215346211911989249164696148586318722016330076881809149693814901323866702076874946466278605305707892650229880572544748683004779141699140347741180983601241433194395275183344234237177244726607134856861290802947828141191425621712238685575171439580788657150775541528014825879574801054978698353467927480011786048461749579518576997331229405631141482164055021746974114019904680429248530971198942695366815910727819231035670599573815533039440732462076837783086306900750628542367012613286539788005905595822504848813483014523913185669180170439750018902387798989589749603935315190145320717256322925613444436889752032685986948949354412270686890706798635785373217296001493177866331723005701579655229467612049982450542395499417362406352085681553325383430968004710132902998332363687321656116047194474876197566317502196419212092872642780602678468477302249163373066864996734653792638444577093853087928658357723186752565035878923766108839037829475464026383347208021680657407038460172478922672439984401720797644965815143110427858623063136314095248409373528459829586593453796080375598671261057149905439540808007710719030109781660607819944923612913483658936524648214091874051629987563253184026191554836891729063969455982066325755073654135777231871088890255874778369424265789451381590192646756808769399876233211331472414109399083946126988518375709990518833690623674799396189203650752461703469112041712491390739849498897767928086766602715433482638003226886859371290854892200640794784812934438516222105573336006955934825435877438166263334792102926312647795749999436675299461457358219515368949198841674016826554222513935758664395163915538340640825337240139058152569764424367727691386126291344383259604724395635853749893264118634783337054244518120828500481753265222291212739130142679019293721853383728185275067932105038364691080525962776008955786975044853576860598567796013117579557321673012751799003544950565744952298259233001749128470734102727646830325550971182976912029618430168456343014449363893816852649924698062665581897473652954522996440177034557624089945265426935740215307954533079059454310969508092107245644468699197498868094514526433759046103811994417591989485897935974559663211425598229813389749801673092284693524746508038838593806143841572765798652796621407061435450662109047300231690452035123619447946128469351781220721674958982127085811478108866849645913467281863782160637082391458746774486232829235893648647539593277736555863479349138750553573853563331846303628909669263539241289993032369443610630349984389862071573147400572643605601774215241456276625597362256843417584016909329715838500562178353342402059947781906861410098110529129604857618137060030915516255260309484688804375000670152153017836816075646924002335733407903243312309826336915578870548571168673860265873127361275103286391644367067358375947207368843007250043329425747475493722776054959107983966691544149380770665271467948827967719094034018053650986004460156936913901392331591987321284288234420425019288550377202334390588026764144692869044051415286025570850093218479091347109371191670547955191692326373798145798596016046466326153749334026050068215436621139701874803395595609186555285674149548526892857841371584552705024243660206155645520817568369035859668608735731864910496619140997425463200156837516059954547057840053412537923758663275693556096740869018880457440645929477741143641206204277085138471067545724504144321365242567658573708075970280098963571352556978403511142163622099397336154642303378847575271158723089065870054575759672075652523515242776496916916765793708418360842950778908179064489161004840937513887713254910104290780849163521105851119064269883813280420145354240760464738755667415055275386148405583801539400500794283846968956552776506025288115827412657754419998624001959049874536790072173569786052636184726893738390065061382849718831930883874983465949092082346417997858254346790849637736244272610896247856798744133710852045210370332789432568939035832407010090775325779115567737833622824122556762024278404334201383999394408510571891026115899120269079577829416249948213676956575663436119255478136915038225065410276217560670196603188134302467374661161695364554691846213057492099936720642593075485849451410896483180703161288608247467208657114538318012832425424950802330979993958554167837299209691360847477216773195798328991725520556800197615938358500547583486389904334001213866315838687078566486489570214306302943601378535792861543676907007540484896771425285584743606327449189030533226964143497396503307323942611090167564454430351535201135449400995322615786101920164103527564682756036302296561622218349924550733974746123051269880667833454842718829211485922532004021767568073333845124558237973481305391677229404657915834749928683519050225502835125501109200368585955090881672426882861004554716065758266073538771864288252482716649646825920005209018835913826096284142593691178750835346429550418493674828747922647434823373156022053793299408827286697537479323485595400163421197952658200248878046345482888271141750302542687954301848878850755644959709381061482886695848146036137044293510494684303867385792805260587334080275170674324501846941012990236397865054268028618200169108186183652037652409208376656130845735803152854502048676294605322664523727139817254712871683973374154496582269147811297037648471552279332302100383375585819656085316724749975846669293658330751164441271374860749911687441338309257606890241712649473608675864300664285197933458902819835301353276682847715627284692407680449844032004028282111491294066914260369720624134838301237365324731411295739670507112837481428249107385169051479211924277668631355597652263264860158798937447685044129636812727916732683920330060339841142759741482062834079115605525635541481837050390646945426415746081952673106506465090616516893632517160693442838579486324193239933163459136220082543828578089575093906081250765067287211819230233371412644793948141856911406800650222134866958970331647223556149983551540417773570711819978279884840638765397677466711541595821404225417161348669836097905580274272655168156422979909036092718198334781559360681217742013771921360173957131870332551956464162829760380644069574771184876471549072631567812109611884977257862461357267199680150929900243891754414668393266513335502231072438390614644417874199118374005121546252733950265302443045866765595423865450318336459386496147936732880903189001845433205954684751453329029861405398761510305050936752646868677526958536289628516152419694537253824434477171907606149812412820806665356971213997311299188494167931193388170777523947291460824873997810617888430201864627394089762038453363865535938920681072853465267035613755630200258491465689772850848683853327896169641466358883570215896534935552624642785232679301947937947045359120582286689311360544159159110778395654417834922224171522015394605117615628901843285600376054745220223360884101421172033625184962154346889666246003783299822196941911957595566937123660774560147515426087957907706139092477044954061460103588950128090156999481776507307848487601037521034867582851095716850390293376906989145542408354877089878705728035013758694659693079357462989501989254139455293004778694548528194670308970772970880104649552955953599586366422098161357026394015042320810940842862271244363609479234877500207817165790300018693633782438341477947873440301079493971434712221435960121960346029580842957299847506617897511319180698995983056177217717772835734879143100053381165785963275385087598613238555688833246246819337177620963518875426545121577838227297315689200209998871697258311489044114647197939841259161011825613080722491876902907103160570932835298843721500093622043419405519064200776893730218710850178976476007049253497038088220853725458888418114537588174331712206576975496889104334201919040670656989084251588378086953014882353839595741759828213772491924572274905584801150246665919560784002374278278019513108242593067269903210831353047240211703980331842051739333706164659561361377041795498228977222541664891389087324990357477984066108762766500331213970417780376822679107865347393404333914532714944715847212632822147324867767028140659306004859334058617706511203123838441216317368626650284616121083469588958674161141903982885424635864532647200332216761560893319903642162457442378927477774867999779985757643962493419219948174207019649750064448895849208713233180191992691795059291696030883750413606813530327925787877235717081928640919212657049846846454320949232436273202247203295531652058807785596295325677452099893463049979505527871089635865051080561790516795354573528568987163671346778941910874088321982482438793808552476043057910089142085590561196522631233734247010701545437798683679268749748502531232886002325687615919355632876067838125359067413850671613453412939112336670991616250825772616909603608234955077166633721224030124343376616383461901956510909747588066948830947108034055445840280549057637550710863820670026346969782829176700676141827182059551394216649176851739442308607469412147878354106566401452402700759901134746813180849271398026577662478538017528248726650614943739071770711341081503994955242968569689179855722131826244190471018870610199885996474098270754255948022070560414601876688011922901370387675565935262038383178227719529395907819469401557370102427820778543870844049585832297635017240443264695503271638630251545893605287900340841932501231600055783190958096725402569852340902778568381664445727759394662880970612052613376449783976579351093865299515006846528622138125878012036341753059172700541256685110329358800661699217277397970078728645283751870107322501741433529709572658023556336346920521627618397912233301116270328579122506430334504450089661345836216373033673374897144472753267737415208302049535954012398160103170519458850400233328500461181816332188293194095984075940360700977244979034304445192760915320271745056426023687788960362179164603079388334201727072325231791433806029802054009162392324917198001060829261866753952629231316508702238085732475381892654007906981289576430326931703423444662697199163890944189361031201486827058546257313987616009913460892148031014532443583602836594176163461698939211373813179836144878161429134040289913581790088166018718490529248507429279077165299576887366199313548554814460494979077222969740794598065276734290022831569754371059872791702344099262297367603017218830954329005869005154609789287433884786987085784595069377338575526537741359902014377465948216150742897222494861585304317906752764283290506553222108196262082021217104100343433690962061830965746328572286676255416285065607155076784711922715445623378862645731473386579892638064737771658414361065233012970571694414105418339323157015777104671008144589295072875859991960682152729929867896415957766263446784099598638987663055368629199134618913729334813706273653836066682330456506727558580570453890284041834602866818429128940546353155744715593923652777296152604251442890946319260906831231912358461384360024295726594350611294686714745231584782645553652104662238524719333397857459366908789358966451154987631940914723247877003605863330000507323257207088358145159687600168358516488762862007008813567774477655007065587730632880002291667879177409467323169132932363456644060416771549445614866202655332886143793938841244438853829971297142291419009331516641068051138542131300940405839774713253149950787389013724440123419064257041721116977398514178850245458161934354358574592155892284806274825254515275124023991438518680486882223411039560187614386207288607575678794539055358070060715507403592769029902309375429384015694859924170157451366567434532735022296910073310480875186232958022891109249333507823078264174665800863219833388690435696645719211422208269047768461703774991446257537313822630812689908668053940065952922411178866894818410334829682474599532555296411509174943307044948385963922732681129139023687634800840828104504621318384095666557266149187038518349996498891207552242189339662110001964899537171675842752406852152185439247723487824538563551481937332130353787258729746269790546534751643252067700004348709495925330436054608525683987944776913181783008028406531788088276903614171173656242683810359939464169727502563770471461719742317826180129014505169187029991869999843935093878589454408482006779050622738035663376207338263463806626181353916385075016947212530163808096615345628857097439538597258297964643013816246022868784361283622383561647119953451558680134202699926237157512460129253710029848774851424507572346031587722193281671549104417248282588590354647878223288276001186507683297192938776244913985428205420597395686132252220250194223026846408962442002521228070990498780158298935961941141490213386905561606122449932671387406773146064544471164368058556123459083867897698987549479707690830191256506473129053718392610634222088477991565044079251115360976187285810438579422191185726621864827296309833792279101196562402015937747482465609111709387373976638924282492102310996252389308247506575629419403124297371253758280104990059242404502593739134819594401714632206260449435272856397609629451402525731380607062012866900516374276892150006931029492011768943999516898892474266200810226270972462063459973990172205843349832754551336352909992751566296707699883098798923658412664550938345073839722663806509583547497679965313828089866688550838061216821894288603700041205001457693801079820415819536751312118373668589208910425425893338521891251473795594889676047204573075025663371567935933784476229654940622652826029200668695577939935465995472532724350958867849083216590766490404951787663214533108116051262422052429438900780238159470345815401643699672841825692310553746141997090885940007944887027950245331765458649138782208742335600228600935676724088717201464752987159555414355936977571636233799310742202523819742895393899973092006172428758888012525233485658794940613669932076233260498756621165765478237034650328348547441288538866414499175046985577318074127976407112572969119510125278238364796294606808150519216891742465734763951452963210239146937426945064447561494097637462806362385227528824271891796392176855967732093967598961330897216400688370589569271010155144912722107907631294131650944693536891021420733837202360316639929076530046987220393546646696801986467162675217827720108142865080234171659975812799693612334231659632926214580036256375920534456775540258532479374075304898915281244323697440780306329734575729303693901361213765709675501214015003683810121712392108824801415060948255514506765258520896645307020243650401932154957526731490425363912288076138967859077558523439099344494816754577987789037554997151523279450092582856002167697210019320489244766365257173084598227531266669207140045015228832686831915783922216612833839544566490881262355100921102120554006779290103417021112184112946693823750472343624936248656901404358128748104650408407025674569596634534886582572367522058720763316056088333410396920387412573457892794140448410306609782868022619732743400230469928701584875342896370589533039036393985010574958475778486443726735071956042705758042305409960661532346396429944823379462192209115051567418959344760834776298390166935966648588412541836024869020142383084793144865140260520797336525779434814990898645986639353957978075087736968712328488928904341115357852954637504949023123596230344946057991963396359353774047701964853878447006289062618154927790446610988681876375042268842288827186846024536638558851639176095811105383592437664244864348848558576305169365984903345884568637389319024423534173424586397505624249137097188750565828199273585411051778882081656946419814898044666054993755258887125733756704187950579403670947678808713106834690383786483450817619867359055310338084374878280669224613082649510432979910708222801641699799327798160092777701477966471963560461702367565359454952806392647584699087751053845288576365576359940757168242303433745015389220030964993628684345071284052626391028579570266309457541907515159105878581064015045704234768694961779498741323459623600577569201019831791070495697611389927819431923453172274107281419734618176542487679979756942513994073384744525595211205964535973348985275109045705815963240530062258056731941954622031267913682767480076386803166959785576297054193030473527804311559951230736628973019344066076228471112155448407277513544793093593723908209621590904857406006305227032219577752821344044292238480237478779491546767978587505449364229944064461016456363110128879152773224032027291473318831593602315358178465406641991538251717893994486341113813022015525476200893802550867174174243435094704073990743999777796348741149089111706907962151663619998419267027593701209259490433357947224744670411134889512072807757194463576596176291641030923067943762195163361719208264499956239968285042179634744884372093513168896183346424189391030119976341360837972855051567140917991080674924745360315729591069122255599737096778746563611119666994256481026088763353476960370095785439554577561902873643833028025657637532702734523482021920611693908887634824413936143643445038393857456294614385953186909491668406380320420299151511759693214053900405673793396929342804859120421192112487073656752035823271185579256416054131960793430811809670532199656391953051437269096268559103160630624841370510412269354588210152901138993791245423388630676946431357385323476180139843892716023592033630171396655790106108083374426618302919217236333821010044419485833400947812938787258688834846857695085740152166513244725334618537001126335494443990475380572122086499559040192666375581322193612877050927748446641989620861130755584535039791809202588418902934329397315168176797337057229172956426617260903638899054101839035255734765373679562738694971235196841469069090383233365061312519844083303359211214921951928015973866948399489589056493376414851391298421198230921899775997062595791285785277446420774995262791317482107358314266754765219578116252568707853095066378331651951252807091511526125768596518083391593818066245275180677231183560709962269276352389723301126622666086363966279454588451226562271960143279131215158420666973899531583283009875708970653617850843702005487409274890224648754213628806919581894487721424123906927211768680230874970289194013613236478932226500216660242855407828083078154789607087523078096096448443281933637638009552483666188205530469025117252369102773519414845658160300784382743857686283935840631857469314893483031456643193315904267287091421498926097004560251960339058103333267863827444436296463981622804220765683265775920558480927814353432348773121356887519331289165835668245223471446757795456924716019661506295740234052276034334156881835337811893883327127938035121065093848945160320001110612967030233909831746580337087920671287404319448773155716498607383173615120907061813382312312698972520269267788635965497721862118803429727080933933382935977262980360017327646009416359497949832049217710928883305260799365091491098668577985903049422490737521441163209469042952042120104203761646440126795640670480504083153745860842039939317471934752060200575810258488752571795778499844621634436418835313210724091646082835277840462731663521130303464399311547318531503864819781384200568671504924329613146271669632015300836800047110679718287924957463711872460453239675746530054730105220351939456219092116747934803531766071201429112977206982085939213617519882632754334514956091673264019041133978522203050361384846149658797894086595026609564446704450756710411710830858137861116117213253862441537092954854279402930260766829135696231093359771581138748210366711645267007516391846426008805509184034336204090418730837696694048399693911856958711211505730025166070052590349689264943676980370407296272897171860524442952877991705712326322708598319283362805409047437232035084948476022999551807265596845434827896445843039987252739299835023417869835038492658039148951615329862038909337646198890176590796414454808001501826114397813054455422128592672549408442817947437780009278769607136532275118688063964330117295439183066552652274542558323067204475063582977842580268821259325001520046874763914185171114930692698094917578576377344564235005280777982120222043162442593498589101203020841345508460569319069567713998272347389229860210580203383071590736644642983952592794081381448305386577897091109278597081752780970774285887548923103310486452088685077234519964570401869963328061612938376102187661096637698698079483722359779100785007353638569261896867850854450258285653420952866387203365652182997861315056671249334229503768658569841100496623573478283766254211058869742158144915889699845035023383587704463694969259935002066006428807322591919747123187002971402528592214559617173450460475709539276285333919132705857216425538988288841478818842336038963934320845535406694534871992348531391421841388777526598271528755304005031421777129759183505658351708904437419591891286332258537011375941528679844423580158510252731213719167118231834886391767793431480997420670042442540422049677904135463708213487650264393307449841772723248041588209128741008460251590960268029020353982745363722363257047328095580238531341275893928677831735058279588776635229830884045491360421046614835528587564935768032850674922524155412788911813313939772977244979352098635612924435345991441893778073916997320281745406379906649779632182370798622162000619589357367109775417358130331707472938925947485207632621657182685706901138936337289068402701141049888694039111095771996065612307275661816050392576661982593267909265304512400259154276668906080939953335967084434910594519582226289262136359664721685503062217413930925029237560886296247187621841220608848505512831307197003199373673449927080440269743777059954690219051314815199279190881474601909030362514515996905103479603430823637680667814101385017418550922247085806435087597556800539231644530101686499702299218116233146251823291890275068362531626032072130121353385367191699804711147337301697424743965552430668297751055039274079850714977104872516918714393547654935093805715815206831109478939331546299887437610636969664281882286480097776242776593899401815325680758928064706796699802221822436438551692361702272517456448788550954801865823805499455038732190536803547193364405821076964168685853631626788328948702677222847950481992833964871476701956236021819546664783796109528878665044179583684634345531460065720042620174104842333858300574095605147758875734690068445532852447263801605898399496636637872907593232571535773780795985056924433389783349132068996884679799954005274107868200114781829921924679345211321641486335763584540747064508461068810743520132776170369575788939780640310331442638491960299197196113284096944217827141350673546039785362821856409927100600096723736133338138822115375921210511384332866630836643104150283833549106057383394342642458610721604976618263382323687873828191080329227072558866833750821392916457647020993080411259407736409101824324746086544951524546388673190749377100701591463713599594428643730344634164653654121523410679516108272920836417286362472459649705483766872865763410368279473435418276066691421628426799592540383967644781079742738170365437961010511597925450253323889480682135191972254991520153221046074939147697119225346093151846653258581476732444604536345856935722557940617308705438498334988353627010451189348682682655617613997412551397786779729783893521353185072877241195612860901071968793763930943036218261725860564824618230931782472290445400072929483760864649461667557150569363544777651815856797841506259960962187809354143001226909784923034479598309593553529888275395303629044509609345577632565777486509666834757755053445422134969831806355373158800141505088765141108600084954994715422458494451403796743566500161130312778131339945833417854875680545737963074096862576785811834874052138546844413094808046621851749622158626135910203865837809261218790740221213891088503159568836119906837216595796645140875514346284186428451996340459403118719306771538793658682280867898251746212815308626954496391704496238068810067976690587634524003795151105626149353655435297196154228012724423651356480087784133004501994303581298073177162152555172950986443667633233203745650359838710091241116658894775582898139403685075133745869433998480166629558778103503632714583493872850381910424873510737025996704953179269750688091652616981425883422268015955919178668433301327822058228725222394923080910772329961852676023378573894363424442775288140557304331001980457824627454511472659571709002528740530864450318185439563152012970859189590227166676584280362487848010224578115105951373190794701330603559787468109051462220383294908248334139825536709712278609443588486615453030087194626471438038694883868503492141762368921427161038473628226737886764216955154483355782572985912443406118752996093570452860017393299511641284584937857940631275922026762799615184561483702009180231080580240511774315026943962561070590775999969339332521585512502755878506085010035313350519849754874743415978238591221666366864288080083528259935040372018345507118244615269282416544423737391062060273893506452539480985799386088118990326792690966278503558798520434605246342620272791211029940775538623836255496961125529421607964669233248385843760414478271691066481751571614924262906245323327816565268012671623601913967407512376422706436133648496732635223422017893755188433807784420250596173101472580157037014887373672545996963252433935518268581515110674171911237068519660774085179018589658070885418935535928060788535023782628352704380390512212743979469133027768885022058334726979345921596148573808016430337220940602583946191944176273396824575882403898575880186339694193214970987737682775449883767044888161780148230860443631012982194153871429674248138372712176862578529829101529160106328526292732311693499185403108156598028756732320296056428547158918250367855517245396074253912235517201061294874425776298146574093409706409627483843002120014419343639600073365216265654199511623446123136204845755464780632664728809532033444040513259630539352298536645200182271043726796495645623964532196376446864048476860695645017195670902731861807219861913059408486753609501609438382004590643661511258332422639368591001971348754507089995386743233630047862963844409669149763864643247090603093718088223794706529462148822310829879260388937785808052347587729452107104188309591397269762617022286311557221921418183116679519153945799509847410005016255548434063588712612993110871309155400767522116046334667011084310965786074615285614254421693788245604936525452821816539224975241169437079811805933322892073454926413874668649381521619160562458476838146123011460350798349404380325124195610092542368529882270170203743493739239214026725999889625098930647732832340959659410010908117139575943489457821446543965784103005063600041571053087229148099275905710758923913769650830295263456106310169494588990979340990935061862162136500560768394373372516986397090640868044877713679314981465556505032722439624110650280832224111215617545641072971548538909355788947680302204002519921595038313252456061363362980664084373460345663896456301851462948154353850636151156858275093676657230326447918238209273702546220283325178617807402563944117441368821097724903270352080746313827240937324478044732607706765899486406369554633017640950562315692326553348981115536368613231892306850999197835460801697850230449921166922341899407451613993019056321837072300951796423521330692556801879086683217476395034220518474530025696746004875243986192299948919536398438909994371652479081956591451119574626515209926938783213150374798230232230827129088245273474799800794259567147196349093938442911622352357302931409393716126358751348028122156455498524798605210319989501103355585172374857963825786109298710625373928443600179440449857357229448047852769636014955546024476762399132612036164660415520469724208470542642737799004806504516211003581657651492224494740321174095477158376909160084638019929346702094551346751145053660393466348364794618468609611287918389787947095375241588957322565009869759062984310784898232911172625128710410962078869554940799657058074584132522833196343795176273364516219912961682704403682176322561483437011548095484528766950770482188461888948957682893820806475589886151583098634054208844972916882136344695164460489265971657479153256765861568184696210405121692185060002895276854783961189658838784620117513071936582485173340427610973834766706727106155066886895877396550968593849968288315228824891350830782137062372615594698579176559984600755773425625030119049420648060429594315127483406633536744878605233537844111677643098699011397681443202174516055604445601259097846770310699499522701562092102841352272273854095064406236905089231959404351652754325265285373474831258208810732370294088618489379469264553039724517556120858390790791987810711729858697741647417618210890872274335524159774020964670207651404336202043204281973427607786874170678058160101918206239371848834212933622156296844578775418261658711935799268724144097826605758579553116284650356952583368989828992670304707128183792936488226167335474462704001643521457509197672292625657551526333374636171580008714013378391961372726078418587588888635364296359666953639268331549066470359753113019109972522553240473022258838888160071182715272362591500277669881752517247233236319380351728365231099894046938675905145176116282966616858785480660503487174454999768641051783075440194468123425347297330830186452375837288694105458102410424537386849756981448741051023550375518675899133735833310818412517131573493346706344297354388507126270579320850070792839374295885940581969477349333838754828057372313834910667614690651043129518545752601477031069505415394163382365414847966472464112794475991899578126379709485222137611300489428202445490788224970381118675748507608474814656616516125905093229275267192430521725821538921193060261544519363023021156878837608989373893812788071208130857410677693005661536899353439949654520147612930072187241273547626218000241646839339193389635519853047815838559731588508088364292869949596364055652073977286837359903997976211673835514353078936637578332592553244888113317542220884992948496249935367381383665645051423710359405280089112353800418278490850343128196456893357586386485415442749405367038493932175294814204165924446293779510577337190294202422181980170495114529918528542776296782507364743574307581926458365502854038816361174293244679217198094390999542995753978747621928886912752707114569131304267947979081023269572713114278149266312433347158142150279930976975477677375614090348288494483999624554538802204229484204741117488800791140182301433230328792824106969850233250316762926572100164670518229870906811556277729349142539095648395158249524567645585470357108095577748290937459590677593127850780246180067873581600845441553635121701661774439025376074067414636429270011860146849152822490070331414446802016880066546637343662441264965876878573081577398121298414686320477452030391781791799528864353371852605664434743171035456666794121506824993812780094349917711019495172753744005264523332607479872702069317993469451034062519520475166784862809052313202209370151214680007496616721530198332666133796394027095390524380036803037912120013568220587314675052899544732565424003292285685962709800364095476372772001874067291614825086417911718689020569933983630372570630573225585578788257059888143635034620573385303180768844699349952626157031498547025829990319239023327754337577017390149374414746390565824118894694843930042158392639363670730253049425928191248138547023563983344967415908219324311802507739467016176716425216931011041674175844252909219367438409803283333134468173843821070229193879136204987683461927341146278890661180123497207943191207324231037182926437584018759158964231725742875268921310874063302380398549992137175324844998119404017045620207438648588924232727467799214083573282317349710975827286281525334157446470990340493321244079785169172234284938271272139842493613240775725564494167371300785675305031643990366619139085229063170727338696867414608589716524691021111403203840555334672772947462554921833432383494711126221494409830844878114933309390223928881877113088583672965684937873854027355492160520180501357926924491464925586830152390136317172380926722470316118579907799124307004585173118415646710938230731895573391887611096586932458619830201860392263110440978222794473257632315492206292418353555577464797816473525757770604690875012835374584464326434753671818949832722898484983056439849917625959392233106068907469429129774447529811558465782259253594212146254851664086286136477490837223020253665096923328487980773552735526197710278206198897866418229809609296510926946773879953188617183063605598604843179901216272495635455795481377804885670051019475115531943408215747780982826360207703794233644728571873406621583065757923160283242236428462361992968795019880185102864843129622464981788331407906117539612656335564346353095490368379073908178869093126091366414272151559719972075833405589178219813247442694206302240397464994397083843231293512440469047713990500723641954118160109889094254219175621760057816934912414971756543500339741314002577507784281597816186193834725613027586867292896337636255409836289593483697094963900373586495754771326539216373482156323184604113636352228449503808365072258644055652128589814643454800882099915942306794259292583021193047554736551960408198652152383501699195248784900227476897047937691775109208603324185804739333792253939988089943473774476504047839008165398359506019245619565668582556501775540897129105403211792220978604720945003188794933232984364605429305680120505452214561530447524920879477188692625069115497347676296194899870203870167878953712359921262592812883729143246111997774496706103349041930667559652397997047834502112588540196539982693935658292616167978277572766273998292047838217789453618648334596390208753864121021540786436879802036681637649697045913522120334446703835565768491014441802116377212366205631433517693768744550903044702567297522190228530069776464492413040688891834732863808996530070036778580716921279633094471073744102383473521087645426437785927681179357750002855165127792393283759184485240451970155841789479728406327943457805497522699747063749588423171013736199755609027333083461825738804148455757908774745933446873514393643158698934544597007194644074487683234790075319320877684424014304055260954114218814061905887830093628548952573619774610290402327665154558280461934782871135715399256662807459016760744823054489203756233620504947324658913023419796415427045566666083944553383460088832969828210697555354691744054931339518156640393013200291832598273851621242473979833448327469434161319338174870792816475041640197463145728040667914935426897762881411316407129491342650698444486358812730982166486927257692086448977017504259478075991973715512739019540884001735430237661689960499302600402002294787131899640504255541439260121410732102037460595966950355388855557273859058403388066175826523829608316535293149734471288185911857761082508623686530154713469078939159388448614998850395536056847438164430006060250465026914327435797332382449423176507930741789012365658968455885917441268414572414806924017080071077774384416208221308967306570543232725445216582433314362756449787150370071717558895167145486307642441639157381382605888319068552865486741475636145671810764417629781665505580625809021058279069086493983716070773065694283993392054326607292890428079138455294326654425120357860063840837464946280517351382145435854129360304232019074225885593693577160864390406711874262916697265649970303955985076272908320075773299253495103856977191353189102042026167642242090110038874961580287517509650582827318788989132441757735051228139855398362482285011347939477700487098379113941087662206886596585259689580703723388384459020486414497431070025432066031582352837993989713952417657920122525348039747406392182657498271406850656506320039058822049824855999190518255636937237804837472269283111210714248564035517780858958106086424358776593050539845101869017105938585119423915459216103179907073928832974784757543047361540421671727006288644351738440693851079565467317482506642808195485698949883331151265943759332620185457475853365592477319243049965901918887880224282053938049699470170158392582878110075895061966547748741529065033475337793156910484715402064815432915802523741882023940651048788574360781926854595642498523901406820110304750496691567480485049060892110831160988173592625856797601715072352086613923322089112355195853930912428647186076568866347466104963523597023093754383773376868955143994214717514479268154406065576061879230693893734675288629067406226116172548982891813927884241292061788082618848569386379639695479808916133642301973388223154561110012412948675655789387456717482441493543016838911287422883700475704128776271287651633155838757328282818668979989919533024400908350183264865780402997858541636364760361002253823155599359715112800314342282979187621407060501008934511256978552605443718269920013561296652746001682364568840565201792117354909003887105519844362125722741001343290355653255866497092252279051018288467974602668820693267701464482621814087878850977447445116387670340468288366709092042758750409460405513010611092692110200404730970839154940460388864731337752093161769996365291146569674661766843687253644050784995544729212038853044852660714849905963023667016144341104435689932921971220082326612220112103342394375500075498917653980376414413991604437581029230457415686569120316901801727420614959148688960947209932864873208000144241379430024189829802233321187134437073449200202956260846190286096471234816060981174201529888483921188459806537408330078340770625188861929704080566538420944451715934546879441034919832474288262018209372740787803376232230219568767144754310139126056109893477194207063373993362178426522512191878733941685511616700343726198078480841265136031552641630860793481972846612745819496794654525614761792454263833640144290511514021727834877252341991594142678878756057978828748237822286994876837451073400553761649074011679060368383578590491809246957812922682132573072286191435257713292191042265505982719673671728001720205912212377811175276999978774547862685118771330233576123656817577427998259351367432574382345811455918890304384656371833983932661534013748713861088056726306786720090980024222377233989714133349615940360925214463844722444618562045450003492784758129791449038304659000599498814380168924112472868574886538008902483850434403643838222536513039063270348931605521912276924734187648329710141786358135297846823361446405541122008190688998092063273736553061879451128847886169081848990268741000438714706574549184348707658132636523801460812039200799809109845575853289892645221125570903819555794626361688899363174607288066522592399695929442120799767450134532977508848539931315003354940081083140903754135340562187483253312977034521228385498338027994552520182210162252572809011816738064686399556554333160162126125857541428551271539685077837988993784974563418880260770157614818788008034345181870277688280648244049865993680236511956073139200450011772258132662527991632113869397625184823961903043389895687586591889210568000892330214588626656276781745423532762644557187647889053582391047075079639581816016995749376554018023516261065671513597094176390294960200066691560289259722218761291812288557695591776948204427975541342239537452769699095460833025038392231733608385007678734726777106095776103864899821759848234848306351526352044678453670856303056335335649724166267189226898874337885809096838155657864425961644415413698755107253665937555803862216232542727908667925230247023732630677221856613980742714393048734148924090546347307975856248926606533635586674917677194902080456616769737787200055335462016796892596609535042900336599766206647208439876790766811755687215174422319685061428609780736974885609062587023424207250050847889732231880760623202684652969874213005040823602324069648749235536874165651020552780154511804436001730480333268181213022573090239739390652585970729820862606481259086379981586164588731943957998512434166280448214531272802313033956348994883640874123746509137606129324916925980781284096729810705634234632071227843578717084988172844763477527947115122650127430844747134631531052819370301320823370404537991225026845645431273281858149408976836824129144248349818224324552708130640747215087624531781932337359805872128464778734986862128076166409368091150787393196954486930722345176628981263667561743385237872681891321193003743453862205262583831431786653145985095538261063778076083817088725905199597728980336708447510288176322171247788084048215830386896662057387131483180341956936973188806427830366564217897909769753372192027676803070817879137691009354237829499232079555513591186401573510968789004841322378617774249929554738195666896404423310282375509996865435088573520749723336163602038080941724063379589178285267174817170001885994192706564777165096563101635096085866281545068596651360714827270126833064796854134817729254825447126401766378041348770883336844170070547720880665407771870401899898757127013022021260191320780161702811990027016522853610564006572481638825845525405441091717395746594527878077412937936986337397690470920162389785040565398219171798788804552280768465935220521861170098154087269715837035209067463751679573870454998096398648022801278707334176612916725290226343023526836429869018243245317523909939945776584648972800501531772509132720541235089982065929731661689545371357235839422909179152378463569882995057052148657833120185794266774411341179438646067499349176672698545660382901254857934261441288134261808262943439942963929143609602904640792231255040052730625701817867099932522663603599642723191650361965897995540687056987977939887839306845885321584868501514352824210240838831072299297285453074313564872510152475082607807516826236404730139874853984545339607467650688904139310080940215500326971424351735289385518061880994075831635753007991750497336623336888515924946339419813838298064124925404442751534731371791179939202101279900954911255272039591537889239518446932307049591304249698242144556003092482092854897288511401176973404767920547728857443820114324975826627943276845023284637548298807926154995257195286875258139557416972916504173478546452165540758609567037523072323530529932785738236259586392044899134514589533410120783704975872916857430047448561638575643589438772608791045085911230283504365082923237703888341803690342348472246779613866533631707517580534022208156521514017627134950650147602676425373663672183445388437269114661800958692348839265495870622299184270267390849300792120136485896023873938720970885167735722439615726528265840954310624208875716641255394449026077186735496406373237881371534106431406776493866660206666541242791696102094721795227963466616730283736468281934167856863960711729104744198209138953795662828802274550255656975996663900749997554836048833671115658399249712875393910351328044197398809097384666098262140045620426686101696899018043528241101301281428714970623179244718462958081855237041324190496938867430890401178185443516321095257195490021557803021424761993513327394274842089583100653253757622077241174864444197467800396309666933747658091414052289853401319755631248785670828929322107363291795390295034364970427591222461942682620097548341307550357580888061069277928125285780220212437926809750871436869163110878849557004866041457993932463129008276938938635512086461425421199827983388498604057885276124784419127983244938435433840221043887324424904886583560379684576666961582440696463322336644967250880031503176795470796062066569738747370463912260515238377851478264747562138239361151602656180836727308878315272572345975452325327999609689576720861978112258713604530797706629810500715235354672000362064475271001602977065542174771571394276362074830208032232600788179871199134162445750691637170439241167285705338905863411376950015488192725170917695355172241362716151616879586871088683174591042452622717515618117063403793339424697102666028716410926495378312739346376142051860136469106192422006328794800406867474237000175906104772502609140747625198776617178232485809093938990897368232990495660136619157174633828886997543541821170554085114565658733518465801239659975972126188881992361998278171684287827305011978096961646942625939502066828317528067677888662236829916737126073710727492835148948353437922745620194021482732194465282967109468552256750467339283315718977982970614186546653271948980973781420915133225805179342799832604295205944369430824188439162154416887762431387360758531903191791952899652794688858658365640667048681045754163267030117226759857840014038267783057858255945430623339218777436327449562049223170220130745742162024790408824844316328670071286855678049800923340596573628113804894458318740443390707796540495678729385854079538626424699660821390100009831212239864474806629856793935566647424577605656130309998338445276571825209879624469720026180094612981999765237112080363630266325090197912058424386789165797294841635130740733940585403513892500293307043175419081448674988116882810148454518002453162488834575890715439975263872841365414713889341021930404397330091127082021618866249317430820671466808559528667012403482494670911007900198650291483947893689556306749882242387451427847982249587811035539921058064030722030588301628442791005929394541516258057134718912350267630484966385703819288868174853649573886475789554708991492717440599554829599442003523635308855540881022744598078021294110389401012072545399926672585501722078555633751827318286369995210950712397874038740718693955252172545670445178884614893214319348159297497346630964782454203005191755183333367773150888535357262995689440520263884921851946279622412629208644074057594906090253174696612712971043869386054754886641498568497855165338028905870354807172134150465859633406913036757633603080079951410255397371283587053618498470382740266257309905106425889287752694965162930409411929453596682440482410392382255902993049185768070290791116595721225106991397759993438577636343569048399265814926759392445213744473667865240496856895292432547746720323930442633026626989785543594903659400749651449464423258951064405592202996815989139412976691958953494973976355119445747496592706506648411284464034398487032265001280196337596271528474764145551127314577763379541219097287908165142129972295445797490666904868871890027689511087490311554791496704943687538108975956068649131179811133660476916683131035644861691416765122273429623302316117573174869142114609997237819005394533967123199361580100298830069121683570566256632622500914195394593475816635580944766188708850585759482036035679243928762403618196026434602495059062091571825141593649686758451905852236573801379817329644982291073989616344223695233574423882922225403544059793443457678058125566682911284874764493570546933880978399155781937549983747599414706148492889414549295473642867780947735911368162664771850514808107379875122736889465489550516283696362561976338225217786382272135629916027775509225479120994050553872449368625330403910786275456085494830405378391510965149235145497917250332411903787926540655561112600627813003080504870490807278833073099394011253181536527843409148416286971794618358517956026206175986942046145770763252620641207198113615288358263948623576455356539932330882130443523269962731213410118907539099632597259695631245020296073960089487308554508892975952063264692020771150247090638543078169802081761184964805680321799768104680265450319558130543660903117526386578829111794449070323302356261935038121327261618782573619437344419952138715333115297672147006766390526054747797853627592100232298194531803080237236692994758073032951931100143593931038746710149647689500455102053469947488447084227472456321770710059286340453781986709856817061458071844745525844196589496064736131009054078788906794692267641025160624583445089067431774466330271511512919211330479621489261361168095773700062924808737267582356169247661058836470426381848752134156292150202095450810893391649458771011650996167319815227224902198634914527501974126422922697909581710270195183782666071142819306342445112533206973801238821250098217416973176347740103591804624283377480774998058241946313937820199387095911737746949063989353854922220542994160393479731740901935224469496216999482237559014533876336157973703284742399786530636920506748724032080950940250316086424155119886042461406895291392930474675594393307489627617074953654195176895778945186607528604649065890906227693188703621272351904921758899863081423153822825369690932608711359321597395613111624410418078689507911511531086399802112768608254554741721163544463018949383523102674545806679746992071902637848363700133614076987390420031813337608962777928240051855648613732478245319659762693130111961747660843833586533839856822593390542220301658188906353363213186129817322654111862557872874773384960611877051738128018499177367933924504929586447175787173222710829408382696865996272011557322646262014770701261616744444922365169954126287883243487547008796572889570179505939719122643223031003450046627041267588556623986732566007633628877977725648900865794888776076489856216005267778884022918505665302686592270577144470475457896646314624952474022187830946300198331809575277474552190813442478558293569524003626624632596890827378838077854177756798184126687944210059158121281835627632411215047162037882768305663135393836393011092095024103697312308838001303995096982842129797243357247638176181949836765689931668699270894263699961993521617006119154448325901882623844240423768691948949967672266920088587446761713550140178960644815517466446504141579253560631836932511549009666526688424130737613330281587774714198836642616074798226518064701910051077078065099399380109757861414829652089769572463639411034840288194151450489110634961361538785759380863159800394894613500955604753296879978799948968286762725883533067390915455238365446818995186253818579289361610866955077022576488439487718495570669427193404807801276279493513180269237239269250202091527570826487000062304875490742536514259568163776746595006890084428840626563049742346833668579172129447023987218921195651867535673830684057402368511032179976564082848549357173787429161560365958905778463144934930362559419707553158361625787515952672660914942309263360395713416086453387159707941060586199027597244119911701640960110010758732432900085249662811411836238862210985533103088186939616275414649740068583374672476219205478711455110154485899852566777206915831505082038024572850118507283474315545057120867709162635390046607545866977374224934349381939048194090552179999482252084737849428742694015322626533132501805329525517813633562208197706370404381451037866185339773745017572530860156860124023787688057926508574167069583126694496276384395432636485432735512771700117731980449409229121491395234800958076489975394797073362261383356532390437481275213669652271112358224432204339334524359474837096015390957615731309363211579404516139509687008586080843188446134616586937336610059302211229699943252025779464399077832851801107511360120287052721024161932818436218704072635123375003567256310415332529222144692422218722385955636474081954179982461440358570883050656775729116245876527529078969494694320654518035373994060497320601503074792015173587707166689646303659564163202264712930839407372287445063106056091428613828316002814080509857516688467878163816049377047262801718535245161270958589379067929352077286877415771297278255237686854954199125285902003346503594651145851848167039373121168346793202556144370805174765133091616350199981781231234568290192603280480054104108589459009067743289799348994758534781980146643501007894334698332077344547706572821529773965479063306847995956738917001645750843297179685353104465872498608463647764503723010634262081024245290411042813103642807089111485658281291923403275680965458576561025151285375756895872922184487631929675448699442211779383960728564645915152020447962130808358896221197303310004143372038026219299726747159832278232597879736378927366964767821067366582692297239707157756112552362474329490888528774291861100546308703752155081574221485788772869194853954819834244997714815792985878756376846685289712261902034620693137294201305709720625899120194274356553121737372663343369703183388882733938094046094397788506502047116576295193523665831309596035112390513483611883924182046856531056805405531658841593600277835008497060266814303188657448238379489851522482197028910752275056875408345488994112776259699674819129969519183352806423165134491595613531791995685811438374655980925134559105388202408771945150814181998449967445319358750755182969138463524668679915162907593615913824715189123249796814066655263177341239535767682510576616378307890404971729081507914195081206064706866656005154238307489155571812731142568056104306440983796024203374925324757298336172899652388857517591512088497727823884298492424708579416227349366536224850798034577437234096954161891364644529912165150532181517292605592961394414807348162420380202653947225544930479390678559756225575113086341910819233823510429378209422440764678305053881619248938127246696838303098163113654744197295012223251422294470882519417497061383317208615499833635096735565828630531416422333299076656353328556089567763362598745283438145019673146998753408002695272599320948279651337879228375935301486104603394623195421074853305973822752884403083753648836240991774226124629055828827186996238318539685381850018627154957954790054744877203839095863369042271114782506944035168803280408939610051284352244323657619496277933671362159849405733583649472478933498309638196033018535272808508969381895851692769283249450005687002635110474910017232631695666154036023354875692232988966946826284377310183084871020038337277039825904874464169168196058056982288192344870641004135182121375624602697006039349575055761635398222869610075491461478782865288463264957205360507715654995666984356740653210556795389784275368612587336426968044611749654440554023420261692475695975787520925705897444238624160343891647282671312462000461067483017031612707927501433931061947611936448790146060591932842102126722706632648830929465075449357036469099418218527743105534507124962812541897783877474009206340749812320250403002236262586838203814086044349076508580949835093487088251366705484353789943777008614940999033516515766693501782939383563261160818903482312742339136690984730111872122068293020396280255425283304976732538848649739618922018471588327908469288442640988361511626949279628748728033843101620963969527518924852892350322902851546992284301497779438950271878885213828573231118759976366151287894087364885415939027380812047821235649057213695103296743248259539488374065741493092093309978296783004851752984885140393310320902059579753230943469323458892134896398546872166343740844743693702321988137387255683008013424613557908794783388139266779315890860462929084780987338636915957081113805176833269130719322358549499950704657375872452482784310837627253577706635358416948384869076594940071396883324151700170071521972035811247860444497184290559339421045279454918708739038786777073045957475869878873855251462184412580741114517960121808663715360205183943899196871245676103796809102809525105908500434167703360005632986628143263503814490911428112940990915141814800363725449067760753701092174869740685903421881055823099374805653665855821150581673240215032120911704403639969564902537190601381523969764359476804570056553725842867478662678766600326192906785770691183874493622770842497531227582519531145310296070139474413238097835529946681620756038205730374263563592188209063968574822151512727893046062564872752549113871509585458657189382310249011205236623411032091020865551210884399297730100041814623944276796002530344698137188212038418634093365488993807299063258656755456816205781745185858928329338791381925483290892874353551385142549095223479028384666824241659252736428899473438356350493216190469083670454234663568698379729549375526254831429041243205095491224273104187615905318557595707369196463154389529971335374449551325252445249668562594229442935837693901346037486743816347392937514198821136456637795562304093480644372035587646657312542743845906915262148919973418098291354262159574297796573918566376807987416074266255895426245625770404194735171749731008513754774648860088086385089727026678559407647595632905451907647674450542071020698135849601144257547653035949793635750228471768781484481901644385834732649658189995796195960370210880788643578318241129709647988072725859397183576005325535087589883691246210648160277189107536482536341419148711360218434953764969947151166414982381307574216424406069301083771335022879737446288820309087771130853333747162675145128693976655701884910510301054427357525866611358516270515208523564655279145464936660899125755543872039492383856590643101040001221502036440377679850786991053745634225961667516632069961206953548386274480911690873836647938562724130611725209069092059580417972154624042771810968564907201214691938114044803438921982958509708593813530754683791157410109375176032431065617668046110919349803374273956500890627231760302593948663358668545275339047979008560413268353899258708429644463879407807257279951661037915840205016836806737251259352161770270616214413972627965109517008451448174400621743573268756850496679938618610333391470459735871504715502170256863572816264183910591038206634589736746575189201237601474534549639064078222114676010617052822971035355087882150591843335227042263657593134641836204567368405600695289126239758420560826103984573018645104078202969455196820495727081131399944749726191507676469892624568891913007859259705468115995062497581140543670895051783399326238587317358660853555695975377510722839656997592349137831778800695615369102407864670327820106218465794912906907221581960520535990454567931251013036343325277287406232300462567030725645525977313544801236993276865373358119534179087814757986284816544166601943503753582557535840794571718057837257857683217040880378133896682070615482130752867405841850726572009941281075921473432055774190206598047720305769232503878383799043788627019311954077003683771180563993165398592578599840108726654135751855243621463502022403657815648127532988282960899798542396726469819526523627982233045564017045103816654921317366008571628839313154178349796241052245972290342818972008004186884813292060980882877146862962540196176173109440475823276293501912193664066537820190848537984718942872043460167248897418313316609192201484438294599739658911000415052211252211501404154218608932958211138747350321941347604009020158557508872374701230399362949207046553685933177100748639384506614024072361619758651758719005773373410915637942157485096226823706393438393413227930671599101381510256033154968150755555132787386173190591309878187676290412716166105542422730779033457931952257307109351794200862537827517563397530853731740715022583335264375664478667003013202851673102758821927565561619878949564083403581160366613859882654184542151431597946946354738320879197060043875743647481434584341545178587300157845991364761917531263466233361561823419898587101363347756229245386356207961378221726760763135068993612814578779480643110396019213752410967860069171387274037295757214439975725418017837560144716814525020123905690680387338816430398933325166568522769858692591349916764585504246296296758849855467004988284661594611256483017722942523968469888730354240755785909935124011710358608033635639476984559838667711041779990968600963137013561964607846125571088888439319950925841832027979961636336486942332371183991610527673035693931731198884399422706347218137668138794849491998191515534400795936640668799228641203935029178070577622952861450606217779724213131184231617576087930680224222810950075722942377107755206095748592423034512238864259878676496886877774480531720284309988888051259915903657874176243838439334339104285245178581273729908100551491876416453532534536914845622741117978742499494291039086970289956792852036733814934059576564832717987227656106064788514463880234550472281874243945672920937146711540566803986322355001539742877287601707725866120954473771602269872889471529140940963881233989939291624670724595928569196960503985333861157550007138675801815627592095420122763046881684597795375297847190062164305091873491532642348186945923248122086903251031419376329611320510264395484318676229778967185041359667783842568769046643098171645815794917413548328825188714355666803114010648361219509316137168477530336733525185582245983264673368967650426204400889848167189405024999247084883695893039482750236495209186849745983515270469368171473508066770850588229523396610868121193460460650439359906898857982960784959236774609147038962484524580509361573039432836577610186927214128769683691072952355999661038518386700120413198019451706594425098651491234137206813371467951653701011280584117722857314118267336680307622879758099936710603254766148251452508539127682914540645536599714781631826338204050513097406700999711107826503289068669246865383840073985047235313994104234201266063779324848375231464292363593426310672390841863980865759471266130394964944896035094698566793959143374818049972968198595117213808133399026466645115638116335016286655390760970884539339753060653067067407440850587125543054609256896589700286548104977638803978279442892910917019749333043000983614441771101478848217396893119278054739219372999328043727587164321370514185560876859983662982556025425955708088490322541139059400560762504485354003232070091153822708316886719713184712637878090213407513015390839534127483511232688534351784303674913604545113402589697202252567490594164995746017383536571992943853116750989475801938750107164402510912460613578293014942664231578693087527842796672656443192853532402082763519627008156557915371986846121136087775030467643236311788020555553892050629368087718072460965377245409594707134431607334749648855422965238144583467438511740501023033947958159513001739609841089084024769915550549891672579304689286180192996904386206561504519415631081544192379623372199379709081687377658224780841421131679433043496328648731319204136647444631363230695436876634619074977503048347339112921984835961026419998337901542572786131656001350272272816876530743187047107128044602069095312315108495278966081746865922050373761800376022866389324135624237593137900485212816244343097923709486695841107948961589213596545625713752181030042877292273919435856463760296378621760824820172205686945289000936337101250132905796420072037061055475681508922874774076063927994100742882379388639775802561444819695959142651310999837320086023563438730539482729227396919741888588569075069737977345437591084889436016547473179826630652466397347410971506855280464838362888468694683004710765288837633411763658039489245908537510782892954590478254080919818139042607953180074470712876546988155184032768678894730864830334110620280495288909503073957164193892931208996874592207990186644918519782280911469959782605307187843494116105211827503157943850983620684075045814586395558430997937135947043761476476200042968341701951891839385683741160069151131820897080881828698513563360818199838779994953719361160232246667389436257145054726535566679701642775162301159583802279903083197431573267500653843257744217512693518110338928126959654127580726499127056460026939812866396441221007661427513839198269954486595430898110796453935184206304184545505970329314175271177643832564784130696333156560340677575241078301720356001502582131498935157359717273078700867712288009725885023560385861020579327919479059589947598149640868721875733397694702712980038605167120018300010389629482112084733315976537388769988122624556861210974659348653704180410831228140621049945702114393880110078435241968095786231542965967310930349512281050296926092782249169428103951211870567523157973543608516715037813902816176711354549217006017231703232793012044592814366459254099689012386594240035661423739405096969488709427223225247729622579833884937611025953844879386200557109949792613055722297941354324521784978108174682579919524810264821404977334215816818258864813782382848220412886298315562953436917748299504426212105099458858637195679498859123336909216485821865131633659610802295714781157918766054712093629903584371210026956591938318458012843161172194571611637644214470753712882296093503912780519543583070066365752226696675650745836340175185400789156181043038776091887939705386507947439359505025481083077155600167281175081340770107298159575448938872529755592012398597307492808448140010871411673082430694645671399724722605246847233385897146931620482495749685784025004533270830114901199984505784924601254042561511029916438146932089201337606305398617549214784020196661798505173143838124908132602107173544970652313816019224019770365630255563677120432386349308434936080899053986043126276734613928193887836634760547336926433845677765522188220031540126960820852241088353372001591518266576337462794746883205473050366602632937383414227937475052884131083592980509925574905762115805057555430823552603644523953740646182375937715752631277304775493597648025219194985310960077845798099219901528601028355157178336980377881860235472168508665939894406831765645678518544475482846437471089734223177556694774617458112207581857881901002945911196534456253712132163362586021621537928866613164780142248603868919246719908083330759664581097614403951904728027974529497316924008700332021870634719078434638341432752749719594290607478895443329035664608262383914495624120726641867463077198031870864952599295634170931980870092345934881610183967520440395698105745607513831843235264161703910674545596716147188232125993748080527408410303674645063535093978274656434364294317035058764850113551269310707424580328756858879992819669459007111129718763232090478244315785160047676495520052866313982171813471790538781210989096456687086545660295295542795319306296590294330292565526490782542194474552113912556831734407928535436975530888888905845605734986070382113180363475018185519687106113763955128999005814630607191902228638397014024423364426266440601523723237538967506378998669503428383554985943622815409753361754167667268788026067425917549585915555735496724395308075854429184364364662868000691386249552557819722722463542533707602605239152280107545940633399054291319667288923958804449178814130095584645941804139796559481381570459845699569151595346661686600948122691869926397412711827845670557729960834162375876751524277217429694539520893259408835185883855966040879081063087231670015392743021836848078536320201386379947164347964124886913025061104645570650239655501242159119828947284785260099581394810286951990919759495027208336425996146560953016730736473801339145269645674447658477087901112819208620512637869764946258896863920877527378198196447058051740070520316028714945715207828082719374924371211228100027029478440018066437222912331447582622396829033772765901409699850173121159689008901410829889043650534327297962947437661529081161387174032649647020129882897269307709419825060635719414713930491526191415689705720932183831645648403495586007330931349735265356425335948608519385245005218207404823885942464562362350758147427948355685579153704060315415111193279596453682454269498980938269336018839567378501456376279052555213495032754605416472696865868180855442028243495810116831775010624839644858911137783790417960804884280618912261914998248343330370992299916923237360757294641512003846411190431153877800749278191716916409353283858300009838596558260309490194814880110194544780883013023601503644945037572420851102598572428575659099812825471841352133276276702164898856315596861570526947052307799136114024014905702514929567569488840187428222681686131357139583563654951014825637799665600690830973039086172380583416667195926673315335975746431323753836977984775595683413162971021304341263441426933087885792949197456747974541980834669683583450731670909486168149010157182022983769983250301626864733657452122030843202893316495946964289330877765379562829461244408258194153233392368608157867703731710915753585432557323387002767168267083580707565941206115912181819040939677561147668642206332473589054344829585267301061758635308451057131403795642678389461299609343984327008376054590141366683890742156059411529748917225553505927011416096210811832101157957164312015538890725340673062051751157108999632069384707625944656671653492277056965937416040735389780155339107640644094658843241583488885586169934527255139545388377148690423641779425571456436482500333329789013672076013028030817243190730515640297582225375876299973096811974612159873202047850333290191260529946286561343121534883702068965885543575870506014701896578214781055365707687604479611724812921786649253342734379827972598592697864912061702482164744482984612744535444435994796326176741059790104092331324385903897588461317748404319589845719266116397022237819300464420905466527940961171808486606848418107164624136443444377126238204393526118514370225904319907076024809176227002017880849131830819519086910541503367793495864588634887205131886518527422092481300744926916639260540253183895354405742791676204618395850034897370226588221940245343815834507024397273163732533391428305955653638720820963392838475228609961962317212093615439236556239348379954314310016475699317290003697751864725040243688416985368155700050795257887995540225568891124711812671742727624981712946110231996428150706012182847640475484993101236394183339967549333344229290915589637513664487446098252694989752129544191667487590610733650323390475696591096030808323423849766270118075698078316959417526999030305813660286958335745576818779254620523679801916858303261590633522391999164897238216017579989837504725922888083363550677827542969439180481918001125221644134885974317411245839320820029086462864273483560423187630941075218309742269485255862875578650902511604298670997722686592798123984699147760271169037253312798491856562425854058707897973538032325743843909515004930297529257146519690195348184153173934520306785703945764901264408913040301117053191771451447858137891811474840726921443134524936647555568534154826387781727250439534599558127380628714767223112971171036137297906088419257479025832997453384771588535592663327816940138765811105949000363606983796561730625518318412215041470490393493580363753394404322959939321610530972611459242264551032395029924136395602790696322737383358107705252820846768022421677910404733131809455883150043321935432455522441758572112335784303488636103737823640538991367232171088162688283502322431297259352454946585346171299815342408539855897838246501229776746857743126585793603392664682192781914058985536128131820105641105327298045929768264743092226753945889019566484091281200113022636536313543558246950228290285832473635263737357098218246279285746849870110400883691851866303320522506099696526927859143600109173853818296563437414842378667338245308525147034998132201801748797052641152141238476866036811501188145737697099083667285793660598874096079562357271105942679231292875557783321775906292481494260666360975283742250436626847617336566248668861786587578194844592056721174310393869867944272348886879496071024317026009927385127930065632270094330441556294537709389530588341509761951195374560165991630332385386948300768668580958921088335192843428078256449632891697237230845294583721592587088346921298235416385172442393839530542897853500381420135242476090921316850164106086617146112061251311774861603086796606919253571607665986948420414444705072087885390138437637668978043703186007027384784893655589039404726882092445872736022695972633659120342225328381068944325747149155339854395448275556622475110609056121853846745619524055810073715491056087517897392024743002808624311085423180758604479480359950618929100560226503940695401135500074885008353237722823830456331690594412627095455107099794637489920765770696104948250317831548445532114832198323853674774584842880452101610272726449545463308673071079833473258513907543657220534960458236060047875854462210439081215951018060782766364764798622072622526947671057222786314509371040455699236182046936220444293230654981425856836967074194802883365344104123056831885454997977688882419522328847037383268826278607910270654411136099944776466611307334052832581939224121686484321347651847763616555381061925924197319464680645407417420218853207405538177254818822906871119898878375487016612634161034720970301688396668203439532418997152064133650417518059981945792809850906524940175573187954219754952206663087308144095204035941421842808039744664516005458960340849744930487970084112133524991116210382916307232257942040067348474015675295222311294355977453094079174536818611279388082886383791174008848230235343533543444752248883857289797411872282959810015754994940594290421551659502610909539336486606644624913498170188286050867243336242902919289866813712626489004590327526904383273448568746895971538476817389249403087874817116164076306213501235152411282421369285171936738336504146283682639281322850274570101365922278842314765768262602010693045527017831432776091433356757895661403387736937468865750773202939968806810538713401215462030032768965266506511396291331584799409805957419959864882116430800909974988051952514027784026425840961240385178939996296355893918100306405862684879938595335951550032536897258005854728424743526214987257139269611277081269508387286879396155230963050081913179775973141057715205966274598825601648156069180803177704874046484302634241266139650557793361816795724307845395351966110624345611277471374672655487401535627591311078677589739772237528277632039013794717722140566306456862815488112673417051518544778354052399723494093922713956860149171603498968126678786286241451180312484492368159220465525458720482369645762563936263497250370335857404431232213738493936005785802823403633686448022687699909292729876529405337338446878007116478838670739909134823041666873493898364149740537347226285391328516153081581839679812487698486169643226683749083886602408730976308577755280421898758361476048825375664183040007350675545340241909675227606920455069745202322261586263881845789108710307268078659158949414329415479081614866790224686475005518788562950193310584742632488176775819858122731750882617370561142615468332901833067226709015552816509977911780600874088593108047726902060250519939747831054226066551924346840294585229015214051140695332111063294656087946258177492606168310390403301932703488455370860450591307941341220075046096152429099923770111061788500253578716065599823978445473304729734155064692343213379765917743588125580735323444134284698984429886381725613248962558711930383397877276747064138126637407358785273063240343257050931995566303481825456172473527914793790445591612529462956045679825543856208301801961876067348057534534482714720012152713758056268392188729876883273762826349834041331626668298655509013272420287420714428256748437966880308149809599577267512608509569990284628624367506731829879623391465146264837282027393838684457018843655057593673852629076131044726274157426114285600652462075453285465525982401628846083599981263830547408451173051148212435345581917832150567204857454456868497989646918333957922739435454416771448827237890075416693175777770634999497823652427763490351834596223100657719047730742619755359364861253257443030102450536052615940895555486100633551713836709958071710023806349734035882530597995830413641991458633794115028584577176037237271006684038946935393970821935940138232849823336241846427775434485875511869893053054319264305332588538609498172999346870836493387508027426470809312155078661044558985396732399067356815961903869804668839031285219080143929708542387596960257786272969614913773355592980558332349528432093403934180214891095800553493245560425193101833001097403253751320181791256714040538497197850257869194208401332812662097373413644458348573263019299255820641071838432838442033323663651099586301750382657539104308512540833706987144881979243523065399032197060894771875821446820190213660016180929897754776093787011720850673125301348159378409952252180313244686645060254673322568216689526205584161924491013287183439512700598020219589566034098568370801260850527866169590869559667597427865747593117251918141043276629433077214178000721194740572906265635450819077022455939912151076777324086933716660745137442922612812247876774479051402847139705235709795072721748474736016775301719483629991844721051004287133191876646026200112941994134130333569042641191780194683014740502870485009143894676501197764071286965654899047880045175553447212882321884814033598698573795983711306229315596810779938230366014519007648387635909685572181613368685431780643644635629170790877273201240882574168072873411993683569516392217895268013556725213648051300880663318677947246086925487890276390466927829768254908660794060895881449854142039590539533534892022419787919388823788663794854926758611155309052529664387220332325330477769313177305396292845575948566698272215501009609224556085573636415964314753065187210871341684143284060391135123690056868318331317440710605330264368903735036645745598281703287499595533182831159407055809659965597160511175473814642993466747618409529612042668619247609866654828246433151284095478355070122300892175600034716545448497392482713128040289462054739660585011589726297207961667246096359218024859345284284168620192868286008220851504645813674888356939429628857214044856702912597933148760262297376706302881817644268845015629357761762294395623828714425035254556365426484110818910108119527304867857059180474189357282521079728905584951793622807509708497829537248029548566191169458492719933122434057525757557380138816153658516846545739323586175143059798545016962324338926761878036850838849587662766029043993589298792596480346442064317302641746499531805064877909162730418499272296718836604928248863946949915900612624408120228875904011629800814698259563163351506008858784763644041887592196957851192364022976383446959377925003094955490336134662559203913228656972977979650680379512296290536457896501695592737303124048284150621298281983470331534256079130133021837567796193767012096370152821039838620162846323870270726454203469579497608028925854964594318076542650311164361713190569836709593972393611656074121166602548675190578014204599570288201515370128256128629751738384573515877698105341176655902895552578152650788020202221877711850583337293379512167955064410828734628832293322082517031423283981811257418276714688427999925742256147587343509012363988383245512335325870006181439579370387008234437293136646185967527280436385836088067642011105420126598035511376762559011272536659514976422210663511125618934211445826689848030974323065822814333789874440183849230691062491886787560554607689706342037935991935763440633781700683799639800897867479541443558643472074223345844082197273694963060039223781439057555785653630251422656234811313392166603029336985361367219241350694323341153799074071450439377686856764679247015894792122061160293585309041067994636711084184837755223626215801185981354487908287426229015380503508685045879594607946889570670690820455235405314481051602996632467207586785893037158439282867005050595722868104511279436643702242727470797026277006161490652868665915403329081758579436599641271776650998907614887663955610957398857011862110692712073300269575233734354343581024017489051705856336383876599480878729753857189324358737902096632075452986314351849706318476466764166828627454851511287442093939250198325744209256792864916903592156054447772917031104013243985412732820094703144041140128269372043973816831135313076515617823099573417245754094814335478846124348951360501502115349506428197986737826291709986507003706255968435653629600554867528201713867144254837310639590159767582990391751147747799646398628300125799899108372751996173901330364136623354625683025572588957992135092307469537782853305915476343121436789266513707769861023844411938996653646362592296788681691071389702080883518664174529789868474275796552082335181101675527616695662093970899601064784632846369329244339230709406297831437320430880775058523884313251160757852425586795082314652621561474904461660856161423309147751622376662218979791577694040335234832320051858524669964196534489969145213240654576705701142404440881973120997040036936997861872955761437537090771732623694520275070371495574917258429558295444294209782739773250487630573949320789147560746635867446138023209026398463930035082567673907736781576073518075338445707021362624179645132608992554541227558052826290016004405000162863356771865829789957908878382751568814161981562751578946018214365433561508585460310020385348056788871903452058389164668938070909337872854720396542756731633870955482379573132019402391803255341676758807449666393893115271845064069127074252447322435256641433311238855943901782416764087319009784274812619303109351612894661286749437470598012351645491471261303524624849522826773846341948232299586587356135725254097086234797865182673621333926080645024555101755909670430623954816677363788730858343908297723624719133451171705770418668280368198881987193909568595944335594761558386798338552591639716523762832354092663158017413839073663990880888957009804438412062566558419007898899299046528431295262716334182412096912793719304169749415558323969625488931821415044349444295588812628079303247018721826460798545059919459074281629579928495547451970352170984687598606469456888360654024393576001409420599451924640408415363527802198642398796787932806980427441409937767734127662647020937519684817913647935065620504355386556281279748058884624851676209326908711420312923573826231066354099983241013365053039657698142028203872507869688275827124630549638453603263056591978333497584609755952436991508461465204628719064269126690404035751302374436099408391444547279768892723413741972178685585475060157663963290591609602681344954307488673446666572532672466933696061638376149067824053359392878261241614749999225590776491255138957371155524935322345363575811707556166982774122130196640749178223750906477065631542921899339875463135034187351700254446733927013191663168571438082172948717376745183923667583733174261065915416510714880153489799240767329913159072416071801404453554688583103965164703323836921433155788209507989442070425724625313518975631390782559380183393303174967861634368746057327018406445222168837357173855538409799843192445205718057210917549079388103456993233428511533970901448138482234393657295201604925511489852545958476703713541729344937377293169221747975441327406027334694749721314800527889811810177436199428834943046857439683853280235997857626236219418071846880233599083008706087520081722915691341530739030073317220522180387811901947246390139364000467201110687933613252214827859089575282076863024450525741843961760498061187878551759638691771042208191418161652407087520097771693204625394209191802915889229199379310755692832454381132404360511025483616823489855827727757469549093556679724477835665388973859679682832893213678329656413944174554269030759721342875338976805223453704955564020666360413001842731583237061587485223684813722586421811790501294511150309114739154938422085212563313847512816910090417149481380924262442459653337179096954376431265851157954858265677863984248111030987837974757948221881535835983733977864121757231925386240001142464177026511916016832914867161533312361827410746814694381615277205626836906078616455279197774794902707722815886175199036317870541495849347868142576015482375111245870833580504726228237159153239364696089906504525323161396221573030773864696140659468458082239167246256454949660722587863576251764897510925009354511151103496377763004900081585667879571454156350129623832745974728457586571292416995143856149855808552117285979652420652136116199853589192749460679692628942169350744735955041705092955986340484387803735674257435388874837251277696107212017455668504685315906270050074133210116873212542660443770565843271093434841313181644945939116564769517616086006268585348633904677845106711897271241911078237515632801100372023347131204000268605243335582128877246489201546328685773029600795225092850307274998183742258324628113676621024995909720234797483770694521367242917494164799374998001837000217993440388115251663079616745720763835652879997314444613204028085032122469131426167121874505124219468252578719985020202026407943061825292893859573076927951746417393611378675142682497982204334894129247562774754670480747508954946891593137385304811474010197990118265777611510319171049770505510654283567309496430724074081843726027010733566181214173528400889601554009805358351100062238140450734854181888872230755871623081898109594886788813457033710245365764809268084442313256099394974106138034666776747181368216574003930504573809158484635554124883327949513380996860600722225889921680792498313587531257745384910811575135409845388833802934747243318515990586977890267754167077079320396236218813496019636014307622968663200155910078735465329225014514055646804730057880219498039221638666845198687557642869286214906688161137183477469932080019811627003258442244029470859006249878746260929377353160390076808018753813883327468186877701874705118761172276688360936242981611820303761639143021574142374717426058325545992644612129283602242849415029451054531617504460322972923375594791899308263692467021826547181821342455153629610071406162407538502806377525027035156477792903243502243672099896735736919059093762789587372830415850738308295031162372483614674123434748495697877955431462217829685092380383799322086055019400706759382143813313929806633190240568175620133897089477000710595881821937851001799175376658471818431400604242241123973464421225342558025421499033980291693884585121347220545646152412949975033175655345953869723324943976940587938439292104603132475089837374442913391138238729534389442097089196079589088072715561974113269189029712979432815975583360887369865127576429253291948718524219202392611582797295868673293993969912122560615769318949515266359910409234891519527290044447705927877190464859259741493055610487295755682494861148052305857877070128151339498595880158332632278439189530896136840477455650571354609483760313788631397006246479218808926340843028101211696990883349029471153037708171841629185226635213169661109868148675159812323942883640448965919389694963201067970808292815533360747602905948372149507237565770085599819919247774570533693207545339424483483108799473878460366418049775836429732775286342725225254235780121836091746261920316164381411694560412364235652827704878617533372299309283631993187106206380723819147898945948072785114858584759523803402572856773042876243957419505703345571237972708885627219787760796634775066454328210533809051757405319585255711308642523594021425153908583480601025564720870042828238204601475139004855890626136486504356452059685675503967477254596182151985201596005368961692884823203470819216358715358934961852895508933152721335696722558803174765801721565334797293533777939020369743386052852337115858022055276688152813236941488323259767131939930827216289605847537409736017935130747705157653409004249604103631936680076444316826640049755222471607331943327383231763549982951273808643476097409428365997738891355449955712196830547762624533388005917348814870158471888115875154030679884644690561279845203758839813147166133300813043376478517894846449842304118863982787631314454278600276467268428305862542085546038167174285137017115473932337619811542873402099688620313288274774190438327527743571240815057002438923238330700560688653397934008521262087523456629062548438379133890964695529658668785041444456841579895366979866781051151750458212969471274157721318761202880933670313371002031349200849720394487406870527886926781018154448018180106286095921688872663820753866760641924525818928800841036604243224780376694563659138977387078840936114872610309708091130109306813047754020363238306746885583168486425577468239120681881118569573919295238274543925808218174452975564584923187311926729781967087936423065432613521648338999946233658649121774287096672007078712294541847135114293201300211619673580459730326085261656943002922858353022720019435120786060077227776798733048167878286540318031098305172008525055333505806270434650578591592708554472856785576683159192606183810730779932306040930492004708799596452446140076440311893863182731431609615473740598123590490242112210728393182117642221741975540229406061654483407816538078883704608737942327802676941821895560665075907177365719901015700924522529281463131746592397970871908379564183496131710204128975893355269154422223923017195446630539468061748597838552017853963578036570992682201221681528254903896313947154739855034932981014591081723253964043958089633765866102919260315866827612257162871932282041436837557845524507881122333438350778865885955137769555366852065527734031682172573691942067197921561665261291589038971562600682517236025670095466770851888069336516281726764440276454355241784879273001971452201310055416033039008692815536261321488061873241158602342921234101647427090595973354847741346351405154718693887961663842980585693080657763370086588813485290195007401013401355790312093575223167717641099290469318003449080990584121135059800332879647693936363389289716436880153559396893697272401469959460688662509757691740985557163069573848351075029185562838105889041180348897516063091123850204291671731604196348485301391153631652327406182360692512561343281597341213081928694211759444121207678033532121806341336788862449898421839430642587877872090742099792202174523478226896485216714740566540038390932384419298355861652830122329375029072283339638502104697720925791758245033469842903984476568905569908810195157337978323435673486429154747129815662408591844888290045304249175777377841289710373012315615614736252781052527688092128354380879495483020729198951305343893090935048362065595417150112739833053477181551465519178903012619710275177503182315812372196577462938488327681582783170996429706822780971658241327944608115761179223040759338000719634053383031618213002599660101809826264339215597958263766556828061654529532977681252906402286986496322766086911784953669199324446626834097621045765018520971505652790319288272117014644518503834838958146777741193562397070077485810196153801208810959151262915897541449841009043885101828031146361414443000220707397093049165272858422418827707824183985260312659973092161160928249815954424932756982421552832990887736154278831748069995008215119342794557095484958082959157593471412062625293141070109140304933066264984567179972661156455345095600037980648241428442974849476631391925970738370302873333666941154200611375620545625060791981816768013631610028888402608679342648324024606343891666728231774793137086878442959514536121853731965108270510535572419944515837095485688579612792771781183421656178104830288245896270862237945351368611808618690529463694019910213868015372961352950312764138406792334490820014794611952222550032405693519849154932424061396214969194089003573348843319031942516186944324389088495114726244706796436820418399041896807842085371291603226087193970704669858809844335781644978165924924607510432984615853022022765592495599261028586927662283791898276300866403175882290671085108322618039089945050261128802253479345124370148574396962654847201963876613838658731319306450640945501846242698578024842185627015050792543924250746159560252843908660758169318146001171107630020097452170468564957207148812653787823976385412065656993373791035100477958614577154908377929648474752829992139528414744253000359159591302481513192448956729355822987642448938598003238298581697070063573270283376357864134930818016977132120210283238153746116070560445053172244539602578143198873396283684819486930722590942330763996349574839465111450484989231718400220187873578150246840027263066705836770537150996735529467212096840354877553626960097671148428144170078678673581094092752917412964308700941389904595339676083934885451555650277427063435055615669930097711771478495410298344527133491379078371641823810759294309735085222774540199717993646714090667412035706763290625479234124577904397840721504372123218357469936936858112843098073821099075052655097766241332406616019564631660400108235667150790273691818456494801841856089156923179119559474240398050604901855015570017785872895367163710232210464934947952813840109191516165137793719997421082215975734068854941482962075803583048636306844088961572825055616821264817568050571197769114370138599037318336359030811844902552997119177284555719371849563768868914695212278563033340761666921871120412445250954383677854652234811438405608040545458585593931851183634332248701827269970470971800713664137109727394701982085861500144255119068705099816956113356992126561344703901816756741264640827580673966113769688011281404426124494355061661215424076074755654853626914124964783856305704764372856441628849349149009415774394832546679270969219561977905185750191961649672198766392070238448689097149226351832730313541614308070888092215734052714222423849252119559577893012823688005394396498804129527374391843578387457040091249682214010176505400161136354861085413773179791306983218557052233491188443343464229312476714749339154586563925758677304158713764327572649149121764035809522057567604086215434675120011728671550486889826351725796040152228834020494399524782166393403711173027163296202577301075136185762466244682322414598761109375907507574021249723088235693118707294113532883808944901905084979706088309103253028798661601718825851751230374477791893890823663027317416505327463705687589690600437952901049197991660955330854442383243251415075954365076507798214083068872040545869240159356745291420792125554676574127709620618861289451798991376573575226306246101205463071381120686430403428830016596997873858292772620735026990828375949980670753142655864458301629718944757378108130889717028991701944321838445571966788240240498604845903498789988341810431236411741767677363078783731273513806629937448462745638913771080757538238188242375760734474859036622284374321488271503736943361863016372025036580856173798586515481375479600547615352175898373247675509001047085179301485540352531876346092177117790218413393167847564281558712538541167187489266500028430148493817629940859875239208842187837768435385572704688488022721757435068128968611472485288934635192087320089729858659045989733212544744582240684867469064464274378547993499790798123279644864832701988923949724941695321553938997860567963064700394364037303570502408278750054250213437155905008401276400364343348049752881175146610460581852530082874592085706650066472293235968511086877396527298156206784877546900568871035628015960434523023990141713925387624982656940245394568136795140930102783741580798469287174826127271566683504091761952282363972308127327536775222900056328779825651502166374282216566867564985965441615790773744322574882307406948482700877361370374127880149370211060053206368362004463471098539991386568212816822770745033761846463197888355437502778257244901132651690467717176379201935189811439967772148311803975088316610054368856631761626470962777662978512412511766818665214339967474516967734611354359520032732086840249495136856590562126836244543861527584774757235467129402285622966672962639508193805674069346013534648745738957773153600205158741637316241370677459019153722588754008478734134300027047753806286149648025110373330534930312141159552148252139591425080154639313297413963157227228435805248278175816025925016606731518882722105331499071705774371425650301054122425586074141713761083597686159909346077177239813085653078054170900126850144284161714934231131604197907101978071364224136687785318030639900543695712339927340169418325036870670348258767640939652124691089330230366091544942370685838659016399444642539135576600882182684506813443106034765701222154206835061885380237497722170930495031157280924288782644015370263101842266008675533687824253099249749756486172826633183063089800169040452706048620026468298105474874756620643128948626931797624194087380996881620192691304110287724485121703457995118315220802880572351903991600337709062794851536629110159863234511884645754298910218843374960604918037248084554743740397670238852735081716720789907567753262858721757351638094819865094838032955649532863660704718969976970978076618310616162328162526476633989512199868948384592913295278405913884769234363373744991010348289118024750870803685003381517684640878484471736327741919469840501949916340313127344538270562614538358732881923860996425390202552586919113042930153941608271410965744676403982428690756229679359377153136303131432488295344352537168483972056896905310578545527007462934708812173880369858448365927534841062846654518275607238630719953617915158893728458548115209705152127935262647471830779732320014395277854815356548981821838774144865083743495783105195795659734273344234361804551001974201104522282433132562589071607936879703128193026551166257013951192775370108491599395034389635926144918791146237817462709316071545498902635733138883336445226577174519993230184216046070205435966773159642682130656041883893925765550871518740807691644531048816127888578248312239651026386566327961115974830386688953883611861400077485939158467459902160975500440926761242675989912983816130697910367659099838560544429632652499608641261595722729268341065278852356668025062344402451443411009488858958390103363533969965396175822441873122352738067263684307666956565197260740730413375234997208321831974974521086452985422770622776208164978703481291818641191537272236589794918445740005613942521525915826042924313227904923898925432133342115921110671257238686159982846482949341510053385782773629085394602466539019349290990083517030612064066993985871615266788460224364154795181610452495658105508629349429704748631242560731182216888983522953503586947714343503438142302012369144259010073362032388724106374684397860139389513117788063223782650615971990291290877558656301384803082576327125533697008138320148143659013544822742850131238681593413731475522634665913903090367533657861254424914468070214013601746917346263601377436403719612089962114531961217895244221587389709584384557862708747941608720606842607169672624769754513906831224042413615250448914009799952378467571445261841032472238284723877404034312794314798273354110076185973486531066243510768144430881967164742448000698432830351685355861958190624420063598877481791522087266607523972420395822630696580590390381596017307723043583623932190955348868793094894865704901707771279751338285459259363573071504796128992967270055715799623852177546802084559178352748261696667649013957361736102747209514165564127100827101278999197165419806443019317935338569544086060674666339952238515049634075862167921823191745091664047601842095912868370457607476136492506383252515905326483402297209613117570845351623874341703133868156063135795280571244953156270983921613738297339283134258708558790865290703894631300791244635641447322923749755847018728700868787424900491974058378529955871940816626418662556279044546948530251707340444946298810669399052472440309436843157609746007353759837121495385967604551333078332758856728503963449911583270883071445062818131893443653652953628889488219530097819522842373550900778318633276809291626985097897331383657507645035246717242724859248177934320174116922258754804827146831595388579707753071985291309109335916696159799064654325186162782094509176366913503976724645457156794957891688384595891341866792384799379235834463015700815520878920340548623771542955847879260644785849932234681094704044530314558797788514615653245917583574825632177343179393206804527633233777505322098213224691450966072355837221731466009465598094153219569571346587593658921617369012463630546522033047908646520134607341245567096892900975462512392978869585953982939528223462925913837730002093301731420909271175453039297306191011918734917644737512481449841939896612725676911801443308751420333641117377540182980727142650877324826664212171675342066988104690969574051437406429233436186119620976369115381718048214119721944852096315256184429839800532596139648456031536818496217890160867423332221509174719920341170475217787290181298355176895862844381728871696893194361900862315728944184571394499631336663854713519741026536474972324146460647070159356472944642422850517594137696154076823670025288646013934074454926804599317586763195867131915204475938945200632426994157738354648673965335714849001227550697300263528929332284954873044792587145015559485684568456271231050671707677250017209340091878643271246671959057445683507383729304790957400844710361027827027118176193872967416529272027537492590818758949133487786419420958504748391373809246144320181013582749764118418886523755026043259318145607683538174950476377637148968477866755489178589724031725240637524967604123803836023041691203359857692688548628726159522593793493063416123713757226122909267188359769460538087192253483457665539316445999715795352386515584036352157224679454485455647150310662859656255106699573341539667255862564000118977410207415149612706886168147953168349004533163456295930073769824966703656792185998544051980383408015452778245808202139530441157495262334689347061544035036505708962793159702185449251436843725108995651458417818085696904098392221252116325766247948093654419515722197117586516026227457522940833613842304593632234108912200532352955495948278726360923642934732704109329626893411686249154567568293931791856124431172179624990874280174202960141968895091419781680098264247352052117564126113541992738384636753536488918356144217060078334004319614035132877466039137298911063816348881981184080732927326224247271604189103125043015047341691172621548159702577274277765119801850053959960735607293682626009899339036838692321768932371652569104793771903250193310489624609270128387204127872243083944616245498261398078066902338163368330551902258716478267726809190101252228236157878657262874417621907740425248072590068362817240478239939025190689919297212533029423446521292477333129304144413714636510797399734682714365615195062178185452075319315774047151930007519960493766124897078971463498836834562383955009891096259514814847138453508465235322323476201011238824327205925629653321044996010422635869462825880205970261563458022647186824703100135570381066847349519878074435256086535191996720429528839484263747157679841192471967566984331608444412693238891064442171208632987875301477702361247816540408499431941231086981531331402157716350156532007196280512597340457376834456643405659958234316402519613323928769576687984573372636128952428253484248433576808549652000933160101999131126204770659846421013780979843602589072154351240741335557172319062755729221931248839334073543297293298596355345108158648596841756768857062025632862550652697114901810222345014944700039042177954140136622335732576394462313235141766885097576639629289886377366713002274582982125110579406311541345971209845716299879959253456987037731274479557820912557944641081295632072738418461158891011667037033946672470889981955039627910733528680073702184605714661463290298164085203662621813545965812497892150272775064883857774898689474706100024176298830562528098577103866582369570598681094192393586983739203063899741231403551491993481306487702922439967766871462252937221835725295129049863418164733334507171475112320170924403509519739800153768962798979422853889159065075751837025624055965822480559693329189205601054426211904851659266383765398693743650661413391010785773032147247034635812970198905519674155955513685474492500439380156489861723849753205174213459358544747360904928853519931797728323714919494450592232636187562218381346749761784213016080268364980536242179685739381789413208866931713096322702379114126752466122149680375766363529867290342674712418800544432806673099183968131710696038222966250050175331634245894761556159380174083934959552912106739448939370678857554372148832837512289755138721569570612004947183229369763310715572593354508513202832542497172874935416759486794264688870615885114074536825515510350569392109375489824663728912179025794264074688310359835091456695371539384781232803219722086222090272906536205125257652262590563210686331474162627698090409012127758860927309932465440525441034833475508212349037155644061976462280191924099201248006567262633960226999914580607069884682636390031356393080840461815592240828090558251980537269882961867762104500852380464714996221775490484701791791358269560836576288899781521593382053790115556036856692976101248488120452468488286879055099211175224770892661095701789883012150646140303323315604265761469888040602466804410325049870081559596867664422852774145012654434867933166867908586514096205568616891995137086597602695312655626653757149592607881664075643426862211710425066685153115879190013705008048212774763272140334144313158115487370496978426494467284691973589552352359131959954621358738106061425149031308124944195801593926647883464758432998703467773605409695584289262117518429585079948025394552664046420770295506213224569919106437239893455826834448871740306184807409408339508024327694815238923999566099007573159685674185958226525666411535035593891660674154987157982714156574655835016559895868692919334236580919576113302108457344335722763013737315005936365929684201044379757899004733307795215025179592858912623492811124636034213348472843706375060495040492532152328820878821281113253715174128949846954255622258193037064667724062115492783112366958246342492198638099513055159725201378817608796780299832072838431157140639485737570342384999413135328874593136557916383582403414340559506820304396980256789518412534801703899822164160069235094348569687995005904733609740712901945407206035333400310407454785994035397349795313578090347271920069526790982404577428267675897572471823819303635809049468759256122388869206353556971795547302112554703981272783923297020881082712837682820595243320068220760898580516545226686552361614501040294600791400451817162037770005395021655880931715569253944133999481844573148209259351495457383490609810055669103272325525982319129763713549759508594609761087129422489651088762866019513701928144424099371822421533808614666890105710285062427314894966616334582958557238447495266473236972554904952716128772146246018093072887516178554675013895077900373450872248860419662911219744713274856161131633667235102657345350746947915841493837408314346453590007957096779818982649095282809845636855876182520521326137556998846093413111567474780691279952886794298955801683250386112152996014073892693003625807551545350692943087331649870003630424536217272511006177615869891668870789207362033051837337447505413891763452461632483587085189058147813349457801665197581091939841815994705175106432022696670861790099949296183728772668196722821312758563117999829761662368996897729386587934570909006111661154779976784356377970762525631233447871620579980619221919405504964650586282360271198045423383935798638206617807579371480194958718855583333443841895901937202530591491682977920229161384095101803196185320616676090492282591718509011033869102073043006665541533733172199953990125445106663944501395696038047275042237901195265357814249072054021796735453720459386331398242102997313395868426230086514998567606761998162808577021808304523399883857526175994858700155783056402774605811062241114724631332732914045826794338717411833226001605523160487526120565544582186056710765954692456698326291802062468700130699954255525425993117280686763766405756919071410483303313773814402898929353494289627016165831442705409840276304895172920020487024043210950938852525719421048821821763996665612235271036870962006483420974065145007469750395014212015115357776296353749355012274156665040367742093553766366300023717027930969115730247468210442400763262509598261237194816230043811861914666730809808426349398238306622282349021686936430080201342941832847365354683710612401420338204079171991658375349922430635166230343087972277950923297195151323482433463374374036432777896345789939792273786771326584129750440596523414616027495138108881734823501353077267118291252132051255247864269034084819696461492932579148263983627895173401540673264414051427703835477372911738352745351887725393654990308489791481658850316468148100584629046865625756427162859821909921818535513848399794373012347627579365096531560016160437115923214646577924461987221093370776848888743419258992738590638836071178321936716870196674264274082211661559105766788305226808451212516396802874153604278877500372756424366012414837604703379787391167498702247218891587167089832620080541543939077518004824544988619920636472307131884097682623295792233693190131094968222572052501705972285858938882174629334882804641919448132256678502961168393457996022474161590676158372376656525260008144829500384657891348099559580426827472076759120260993921188531380960654889001444028471770890692446577256988277680153250570625896358166747905332820426673649225318429544456621827921307109644034644388131295112540325002859222349350457626349642275999657214493250506528610403979461578454464489212450146003729646425642563282391268360915261811062136768891441352789917711674139325364827494736575833147097757318408192767132054087590154617073224173617934077128451513697619659325740956088736228505604884504849135657322216851475232246215513910626797525075243269324731620923789452048779879260036667575718977907767621977956652035788976561624491802452778760888879293316969823531786257712353880091831271838808457361554159303389752373736462310150336450616896258464322740365843513258876004827327786985844528269459301861017992542796573326182068705213705890147693541688678363448678666695252518935274537465832658975827142920962935627847581150342805161116107992474621781443734375021478140646522461711415483043788665625192424641502668612229976821048791287252521502653205949316231666978172507043724480065020939838261301679137256521532072060512248120538071878092509644122201514434263618906957537783705825514092737108334549710396761566703293953260521581997659742701179661897842569900962745184100649751453773981774063804738361506686108292980059676051621484465377914354969132256137540489503539773753630429562314506413413081399454579963305554500212263374919928373006027518498221509423793859525119479463258717152716983817235011524449672132827594730905841525423213092027055045314792442807950249956927545642026711448978364085966269103496549055285985497023516755739409116348329419121242230925877260327339136015447758575369327382503283863746876710175277044887141722615008222018346429481110307791666758870636183038900095577124309157868958134684431585176160669523702389911415214514468272380764923854629868954368656114059922239723876303088826676072225442916281698412076324845693414861988546682228180907117376178176236961593999387180392621770498384255783501785919356782539437119395993815613156365116354450542303793350352977614087966683769184842076881686970216720224373717641157321369795592036101676545987857691249531313389582938179982518775145648679407068687336544175642348753857163760067380546025135008572797967502549511766569995685299328942612969311047140150778599534303135730866059741783460825866850720821312964413342646772305088871823018266865184871631928884804292886733961036795833030145155037400180802206384351812725287187333531386817404363676904005647406492324003609908161996305865988822773836926040981131976624452918104920864690257557485137473228868960558014209037714599002787265767281470083338060472041496213260718594496381575858480110111393225185517994145895551143892548013917157831160652360046202975697730199977500500460236026431795645743339988191347546417730958972785156646969017054584799980328297232948064563098633060524773801653058977373835839603616206726961945754661551688461553754844786770502463227138919375252111459123609945197393716879392774371424871622225770290844636759166068804231766086458783982313912758154144455822879672642737450887266456096224653999350392407172133823481292684147426790111549057998278381484920050474218477178214139006133294977533554593569317008592040541151947866685865276807011155919318805343935834401972615383557887048404077291254578405476139700011825084312939185653080846692935331936827021704161182173113392936321184151672689957757110035174492052771464490423804194236850317650370322606975083771631382387207212334839628495546321823620396953347425847963199994229434732330839079688120405392325724538769771983962712562874262131070614971139491058904340063179467120960328460895245530272247683858276527535792171203076607391337762495645193048309855252593288191063694172000697595710024900256543592851212060551571556038967738652445924140712166150365432278063105665439053033223882517280200014091841389019242280980978399626806365267889122796414432529645427030519570699202607356689601874385417948975097380433316473589437767891198718085931628479065900417752781800218326244729371070443060877551865264250781113459775606153815456995260746670408019125781922466788379825784925085671755811836933822135178469127701786014949608411506079872235621722079213557696699805112055800823315045186957927860748663698903609431088371843134195667895507783959105602505475574735937683062310170465001992375758958324455637526389996932355614226309662702899389494347679157397154453377104403258861752855534947478551035708473053757840102102901946898540013053409527127617540121878682328198766481790916176769777983549932377221131110153120899153236731042849498508598138923649409491673186472423354208572509201106085472315277082184382577868677322064105113516006630724425919116112132512327827948644474397027801732163201359018577895065226127231105834985128390128602991002238867934036611089318151957461633539141100635182415372883457692489890220213855886054851096233964704436767103879515629003767559766050713248711125866999456621403675379891543743562438364008620529240881330340425093876215631096719104292814389321667868615946594668670274613520026298046959097643678749144090013338223743112807497954858369351285333566260092435293224184589310578530406864419517300527310191979793662474610975042688682805046409870834672076642797384927488668322947520636028042894535122399377454723209651460880762265643001728152648640300508024473171441686854475286196784308757757176594414299484882992701699407112207308348356552910097225273305199116075395483096277956439936671924096723214795446269384869755440450020159702921794508621476833167800206405569283883704349361796452137581816944460784836899373966339282091534541283360214443354722166585410475135907598647018282457973552155971396254488327649916572076340143856566523684994425675761362471216079914424425162798630266882243766911880067311075880685955696282038214317652810203846445391140809722559652823496296232202142111621105299772479827049654182808206543357007031806579587847635010082457424204576085718819770919502840433506261163016093584800921600008568270385336789176178750684896270484008977672850536375883280751787627653716761549165904196485750886319573101293632329017553732337096098396444992458039310445111481634189252176131608369424905367275407352120268871147032055812393350566207564385872227605228339488862097387493557380895030683378971794051381804478246710939341525945484872616656792228313851738700200517107086485549396969404700996646645512174016862232781841221901043908134586029782193158156479316774154207715911067667247778298005019665730490722808302674488447865120930294065019643560291138757752172204739772780346117405702625835272880329207489351121044583471335613107521804390211105310386270166559643727858255373853881820998414072821006348263970920293783193177788363673581970305787922685852364651237299706503461600601922808325520663648927274807034286112917981366777273623544889511405645510418129013480133531856917612026710446326367684450670423104911437611656870730608471969947955207817614264052497336452921714186286457277093767980217266166944274688230832796957449588916182345819640911371032958455093446425911068550888569376789669893665113578552734840042473970967156153364253078378860479006239194732267708021822916527172382288974357385047331487158249507616036900985867292164191976813164198940477363152335279619122411421841274328182122964369737442244511934879760324674860073518484304617275945251883799411105467275768639504639415896303057669516190290856691102356585456042743269914843756041752338057004396192480479405461771570395327602024912351512872384083298216733159552208506436450385739756863422808663045261760530949318713042225751506875182658211114724258054428455495192367434673620805273657514306959725098577108771763277980552855624224654872558966193869351214618479391514337221982965719125816869587917959845662000210788636304305839100996592334095704286507855646755583533665695789690392794416060547423848894453919907492746048372813121328916682402907334709461283709166402284663512329744025311751916046639724589348506818112849675583744379040245763409677053359579465955710069574059079474859758438621299357205452367547120044755868322971101205210372156949739572906664442802509868265052571089881681913960015876535725366221416860939311458871615502240319110852592463362329675619591213855101488533474973925852490429255542380429197606204619271263035615601305540002913188247032538714825215788658423954377980042096010822853929168498089008141136380711557603588836109509143228447761628461333846385056005142304956059980789561975475810683727479832097918971347415081447769070428622593538868865688618475696598227387130508913479643167215411689314639418423257302817849257606333389547275047772975787373861041708883684791525243586142672487686322526357226187765977391111949483682220321366518864242299494857388205220949229483891047653601814740460568989775622773184000298908233931748511653295238527607574751106678616675266333649936767562188992067665635877895214556931679419984260134247018689020155902860084710050488273347225079338038937912556076818557705042133045147345085914703026704819863256816874773975797442137268692959431905158078442116714629766368413338477051360411156776393960183501031821103557873523268108455854002152361593809698221893837430217525663130869043900733037459660321436529188831538433619393984975118287271838957172404323476311062014142786762643301685219799781706093256227864601421329873106579231706597368396029607007294319304892021060997255496584412049454531677242985739240704051921673144441217312451117920155792577422632013168219050183754235245858432877716444047881737801296066831956834328076915933501416027055051046717542975253880547840334158417046035855890659142554207567011537974939379892447833239525842515514813736747121448852796922529942323848065810137281471271778494903737951906542573101311722104532993848549227781696648100705363017815940703222570117920684422523325065111498217112793411732434774220906521244352618555887797761679772002077125757695813666127467303710596169240886044629337821212861911876356245513605102596763910365101047155462396526752187590124257172250747790390256173681961995031440088576165145438508760636597507032677372556562203634262268444073795312502766636142035575498658481666391134809513220081972433346410592158685550423319456055046429796132948907714036846570087762886015856414177718444390271103424031165540795293555345892676892804938694898587799629706502453364101048476795327598415132007708790896509919561768920914879182504742191839922036673308165189966633395600346588340006822219898536598006710988559063562104110983809959605991749358980536638767225846033714752862430700714422614003076979076231602849998928220198890308136190970629312355554172814985404554352955409691567079501157646920182405378968668426029651307610762748197334680393381565349308383310400465583589414665848659325980598186318008698519490986930612786863325171163963282881750092747140783416762808725700836077482158610993281025149240666488068335546427540598049038769083449841467841890733162428921481719885126669139656128806446955797350957387560762618492182874510648553404850104037301927222724630490631282109250811305664550595445330835276813723803462811105041452423839308352607457335208140161110594909738622454416829103537520185683764760771886021542214330495857136589496071936296229394724755074995743616368239616778496254840766709681484391730980630817885570735166156677177935935286589874621624729849450354315399164857606565512927139403936133370580560894221717964008647836792493055567343711832609241821240023139719301593191676975555170571590295301064887508361896635409127608842642139606600711777629656830779952779346770791619306882302490523972960947522588878851843897077446624833360946017514594701608301584313878686614566960105793158861911553887284385079490743668234957271194286583019302073062822541979786552473226704652036445778339347257959073899197018601369150800663294808194511729901332314414872564155982234801959078325669914124186660435583609043408750090102430344971991675024398574994747392375255113316674172826591475271186651955783506138120990839720595000856914634992518124096513188021355935463843337813514663860485986225940990479181138789325397476824900357942560062828947497406379896221858755293061391147026644178604409200924287052197642971207514365870276271191586168461764517069255785448432156481800577655139091626410253918850827166866500060324019310076807070414733032838587268631400863397259023233730947484815268142072586850741251767148619602547298564645962296282761126800286842655231802296162701238940113514561638897058557580224671055987799023130825620261790700396400979507820610583204854038383617538590766853229165485338648065855225317337504379559329512320754726412355539833139235516523813689235394900713187376714150030112212210096737946912636323194344908541027197432686398609195398768958678107903578235685709266548492512338056401240532293755744218035060016771423420692309154942644950074315473658171777401170257919176118945111599145160424079215121895941275847366424112453817567231132826997689979251144513827217167015017220190568256587875334729126691923313326993197116085415721199727475658214091717870593850876635769652002467191864247480590169629316258456168756260614523631896083793983398772189914727037871846478665735613433360119960782204278601604749603307860384952325259151892291553578290974996721230567103924730457048393296642533284612091630067037939478876107163717336540810567479947292392381250650353160520736406645670055136620354505014522749010952892770585588766353368127099148621874247591112147169181617337957625573516706011356261518798862350344376478366182794996927787393731320710428169641384103085757573853340576825739263867964375204143489146867116733953176937631833632118009816406330786767715064391728478102976282458263575907913215828265279739005605560294210706232083795277517153719356949113549414487036452960889329701526353546181042019373803749684401808050593402971353493068819679643060594129342954437686325641669541002145016357820402805836539531887800281725230135805027293282527355116370699393313390012804286146573980307644959322159377804244908822646901603122218332427405238524843408878198974663704415053478175811499112770548265383422681473184695061756083372326852953118976782663521603087392677227333024057832937619791383699702048223327320161167444600400787937258261749720162989320687667764258133191588764323659116444844782440650823106700011276238134047405296129530262517876128585425330978081903365067930722839377791403603464935942568620151885672325809164600656305230279264409237249455601330792591661856706763399487895784668049736611045903321113708502644760455447455846377081537468844217625181526702890870514842150742311507815306027189343505464378398914341892545315249745577511470189244065996692433120684748339283594350573050776524692242471258377819786961827002055597591014692397462598374351268937503701873290245349957563384862308237686893815036896040633600777049723927156354457938110779420240411113337205564706605873075912149701502052895420303140735655849490872561316487017335421803532086696962593596522189490381737492390988131030003255561309495921627560629309088097642949650798837443189509403555613024697217428233611275043886554742225638990176301044614826111703630400792775534408580239724742496050048355185335742757491346304464476349026582289080195298933577918714058221714973066022023136724214704910655308845574166328178990824150091163966798000314698978067407069995703473637970389155226650252714856833283777449199160098547976261896317070533891685584486353452671985400940929102979887214099036806304371724157700859297756970117471454931618845980013268860291134706185438428282520468365513841184675542031954439132874524635970648096698397752556812580416236932747293263383426468774521854948180951719314244973657866345297860931382904369821195011938276225509291324700187714378609081487287649198270148562033934468324031229068131349854645602875483109675686880671899330644876679210283239253052679911962932273446940548752745211026646727973704244318338668734667617258389947290227730066612452639128055237872132754712396657457477585361646754555453011552338384460378561203955891622143367952142018470728672979342869469411349506845642852216824687218591835257526473884875915792939466782471486282953633761553982516157997860711382646540355027824508167292959417718063794691188295497381618685810212488129572380178732632629218613271030871938168265670038841372602308743493337784344821398794698694820377374387998109627133769253284064168752009823174563147641363666998830948775525789274789771724324665039331700982765806344832309833460703114548516941354111659964052263450140159785838679194130942359282362901743826434007519044045527774376802255066075738074250444565008580496822747509732050538061444509555612646488293472437761927446606022339808014090376808083086050525994498764112759527873238767020819764713849464574586114544812636276374641898747091228415741664255614563195894020124941203289999350651946931591599152099188607220066356367847246602066379721329133056667144035002421005514947682020523556865543705318459374653085291752821191175868821403598168046043444974058825841864844725258131536827385293191315626759602709631953946113972518235539680324871947208479060563188926073969085879594274946613507623404241895764990363914449581263746353159385367767516230941842011190195329558233475485007171905621066675380049628896286106254964301161254827249584733327689756129505494979655055777744720987436865568594043159429730159502997837224728895311105547969909967126498154028991148368837772840913978292738846380874014626645905194965035719125064841091563417068713067477124218157682439744924563083809108886293971074757164019535969229582426656986547687303717201054006076292395501316254639827885477695812820828938930951330895487873785973303430560862334059270678510344999523428484097888528274607026597310067809927037846353328340171345043807341385919567616737786602526198216629947617034869547223927044819044685454823811542630319576460650525325135441542190713565956843936704382191046124551052372195876427232731812883475012303393158363189912162386104110187104015778789336679938823054363866087694729245526707366322003891714901382799641813066784861073128077575882228959866776249873316510833288395156267561745845875707576713527278063899327424232257489061224315604434294514977833100743017349819697449118736441959458861350913138605138146929353342604037722785463188151717260722721141349932032875158234759614626754958117495707903619342443592030118220230494423140269981926485719454878342408362582083325251900302056871078110141414626544398819500422904550778782570429711707267391990333802766179840440041174497946153565510927943946016686752199322820819461683862813524551799727396212562113982830739615013445336407272224002955895375523319173007222955526789743683462940542233093465002805882658637666858114090918018007462483980983731577211566767540595812656568415577069255811605338916151517854382983475890450552579804749484296370795341162501426896695738672800126691389768383110174268351877673486598337351742120292960226088266950184099659998436530656399570312003325598110284550767469635017766486975084704506904640914192342574320591453946278212663665412296807854210380840780420581513883285131425514193835654274895275294597024014539604028956185408593310952901128424593661529761693075880541513497283881163284637207615784773692663172639752541525191133601598905549844125428459392775484519151993190098730734436741501184012522962611375066170766640982594813565560820069996019758531257439402196342757093790092733161788802694168126877868590162992164281028376304750566553940057774123724887694306487961198480723576289222291810294601983904194202671407350477724453587245683033171575203133838712339425223355110776225627605113127063478282164276507365932999927764326886188958530842254020544133310070176667141556996738832824383991282402394398846831398649103156459910627087806110988912007457709402863936963041201184385208075697836052491207531011313915369093156901315482160292224699121166891357258892409361830010206610818295688621374850513732542484824262564566342604931283651971126267421960875407093744646067898079361302940692545397324332697577134502870384249559317975576741900470197714399634690274063014233688760938503397792889740092781966804001190311742305538893519895431544294191756149360970590510875672461735199010162116892242184792805804467563618185737458350872089376316780084043164704029639575287219820517878503095302773924342092859029493202523308180201681124361898404969394891784810681421186028811829477427446650868728749991342952414384700111443470041472788491178797990901224918830794913135582439576021695423312877737425382432030980840800962717375533984374624717266453570767990517024479507585253884143695559505588516551244288071382406514118135597764368369572085031987860198768262380628390158220666135580769554739278705547116705215055307158918962658140139063289552929657035465124632287781360583077089735095055664248504515959672092530270657761978099745509233408225905095442575414809739573388363608782230395468571073067362457034817314580936564514416106531252691696794464781082034927781385347061263366754535114129800210716289487153160522965742917516131639412959089683144055618203854568374653602190515938833316413092306363261051808974832422341064334975854520448540402834440652130687053006894771191751902756538709251591292560011190961877348046873988107407917419783283197794177465201196185911434116873050676831388130044740907070282325633061275723049914950985098863577805263907151956410985486860458138152450500501006699862791977992891263311896856495878766069749736084202120799029470783190766541737419870839619025159847214412631219859509222078076792000625714705803180026805920462962348450761718194679964201581624099539488210392856184968792546716355633183222556358665242103554273782975045853863924170055065630282884713995213784049889384192513570656590441716493167890011855037447895128171869947880586879307731643356583347121635848063343986742430371803483395414748808626625017054194432282747676106910583081322303756369411092664048650641067503763597004559134808237157878435275330741732283502568634942578340808389879837822235701093336163683400823986927303312778102581729284954299564470368681142507414030676512888818891664997242895451845083450909258805976580757026336976464432567708070618308594790834376099634247820881545015916334152965161452244897953592392933913042637586825976997690310900568105586774650659281849934773150869107384266583700054377009827083096776692105618482648571120756593170813203811615663723899714564168072271375555858150114853612239944955005197394429090631377522211726072045236187110437191039195224510674549476063067295329006257479258003472386179478684502432586043091456902322150899627851213391916110294052314078794958102648852941996828810623234992998196573499991510669227409641813439062263295918950870772692492832857097903044404752488709529258415202383440803040850183436198914473881030520176530888561768954785223913153558883527875500259330940372041037596919714847806154720842299654909465951954317436864569691186099861511362636382307483775839457452255177005434337894982215006610906806403327989676769684214346703481745237944251660195971791880540621557452482863108224190434083180111390484402606035318013171018042383489321926245503033894226927405687747932816766626947809954137585165096843990836499205205544077575281803476545254397801685822733905320362103657713751116035719735702274672757817960344320509401703998337610579994868152856910156832691459111325247522602357075592486563139402689826614869474537034863202424801454265653093820838381671058043984728524966504682137310416329395882588213402816293846881620175780632219430998122254821832520145938017074657458849885065715085236958288218286184145490968719822259063384770450216777210605270787096250377420073142930484827494339658636200708430068738851750841740851182844181752779018020931854064975787910936644245735287290450958817335309629975998951199880044220126868204080415767210516486364619317301072483661305730438170174872757194488897737879289759304256832962119768268038161285673704617309156534708966161365911954079030582683783906549104590856459977921514040461057612321007884714293712799546463534247373489481499553728201597342693255560635801521432340262261477229368860574078748753862889769414814618162064573783125140171683982618994919892040719106000336682451218751970615210850546601570107309759554577310123016548453580699737792685021884551377108142988217491154916378478301609230002994247476703082106931448556879147002141752904110709520078893605378489959474039953087035707594876466377464327298160083937690258444648229605232923638654364736766153482469680421021156176470260656103725180075182672632099765898254534296317428511863087327346948941987883957307328988714286088941435845678641762086603731515813301679437425881584948536847646760147138835378987482971882017260051454457332320062946494355757091393366726496890158448970531144781136722298187392457397117032475027393046648932379926588813592232102527304662243246431453369616525187498717933443347723192392868648094031471441471375042136553385738734735093238422712552501376120057065241119567117642347788501142192543938357842744182240921164777988073581283042480550203504462602859982884821158065670907381625478275446027900248424586075562047124746217827624585053373340145929508102948914797707648518558548328519386259666436503759617000938577479658247009195492579463410885293794141159994984599705176685723615011784876378343449838786628189850390891629861970274403465026110940376758387840669954438359265785373805861353246109642598432705847682162349194818480469043892523664231711989348894700234749840603646097095275333586511698113616312357272578535336592329512501284235838229057861935630670789537220300566757613891658404739171477086953411034704605841833247666839168237253391413099480581667077561940997684434278790653965514113869155071842720542046058053184586239792968300512559458823563801773035156122668592532053005089886281526582433511849585489997569543502233984884956283374338221471902136693574876983189044878932379641399502311271020062612993864628306795672957578384666964156454227035175726870709967696424187870998420939434188914594345951292571899617673521526299548979693118400930414906031766074983685216463001757982326186705675052939524848021109237296336544459880599456895802523384793335925971932627299443258125270531376441201848862913096922090812416586157932404320074064834072032386739101848707254298267907476465798459585520807866249850310825205749432269024097807549340080973901456036389108913839286468708867724429658376977768536682633847727706561526421117247917413701105435140632826229590463024553438913765225702584336099644846576950300193156122186956667595542514883223062866355417090135425501406445910503815892159170564428701569116271750010085791303444490760308613018229710291691058449979096377295813928833483626123424122824654628690562152991383817666255668612112235276369864609196357487901882108913001469373726891715093472244984356885328863675165659824964867044618536359669481551325307127679018453357337836005392495776909879821381657973545971314108286413328248106091249899797119182016621415649483935720930790222674356813311624326714854999959231799355460807908880346064569086541317205687870947932383519548829585676692061143221523616823590443058156892442942052884866514103791182099114393444460964718753152626698755716327317098375483874938922965460744017385960874768007866108736887461466604211745603093293462514504060854739656642544548142308485974282606583654975772977348007157411451858202475494221033976791156035130053085274055763505216690035911937946175933502207718827126171005978078566460070705658960236511974955932719596973312902094467402700378256500327855403009508637266823943951335567227164069108066457417163642818904934715971552268628179731102580200611450676467163121043780321088017132227538422191366709153253116253882513940813683220483172816481230953521221575043521911413007806354313184134638830036466987217228194271606687244188477620092043340147100822094027922624171318060832113791364039423251778409847832952063449835222573122453495097541969263870429999008112609658295973927444567646276718591193466875153470344942207588076415398750042048382727857172973794786938487655066574751962330033471553867692895108536276464877203846415455753395399410756199991342495543817626744463793873461239396770919177902120624877146761797747362613023693527325218678365539041081644990468615506187187885161728344756165035535531603039383705237399851587329609605258709594457034329698244727981858505502670147952778516997288977143682838374248952426906731599052716011788327076675930012281996496665278971272149427430951207809745724523656261087036836953079831121642314807188019451916891429103219190600595274672329684111836065684363469659787270182326133829664627182050832830499535738359277156603342611327041509135509800716770159702087404644936825182281746507051774162053463135022818731708468713510282881457482073327336775115117226617866574715525751113823821633855906265548283298075879212117647491329859289932348151182067541272329873460497346930018621212460676914898400912053227793518155168244463639047420775965115527377905090508908579249272587823507729685661163819493512977649576421028677424539481980031790588334954181585803638264762445779297532753150656283820220811797064483089654346714501042497323392935590147076209348868088466999555567961496423463333166848057031512708962339877266628955315624268222942144316012688393185213787160487123273864239756734969884349158440178722229112629850114170240715207070981161991888293807304416925762902812246024687075595914633893997291411731118303156093797068075672402990542322760643350155304569966606302137503098443290899992158142481885425126932089323656115442818674132818194954954427075852127083388162541581568818836230153768391972973946598815612458162862275537657446641123671673074644395323860847636302657689217495754820449721916620818675575599586442491468625821080339409502783347337013896325313578729252181113119815190395246777153726621264007118765322598314328026061659596619251477792788101634981218696984327536660224576173834564162263729553018677911969238936686560103098455633300790480989028879976331032597653518739317447188034306517525942189535052040150444726447078546108342215236927441003166683763020013052790055653119975257902843264798175430661761364470621813937019149460818885332132014497409023725970392818139388858336608297872383980880313668008496840698984918652866542983260313875344278417745773974128667420468009064809849729444067505133264360831128674655095066476565165549854267123795071269385080792082213154938041944118045781034373832692496837672906353077071889349573733892553967781355013294932832674149448530112329570149108613247268612740712137713583664511325101486579202884383647126821773078414668578462918302144948124957972238553371333237521387749413003373934001508367083289628453297152528049709700381577368633159535231829668954367336628288400785437298965154517957459641406912047590248074553570766243602339732012322812992377378592142016247769555958123576559128696675217899508691410607991332834900918306373881744631136056100639548343303143708294062847817427388621917398902755790400186175768210069098543030372088715159945442412662499953053845031813578840151724078421651228209241662870775925925464909269502514673423043217096647038567660804630594813170822875375758362243469733662553476335771582621321752974653274752985289953679782797285162419080313682650186078907045822199548115673348972226203513185781302229151112722372657511785579538668564978367205106270417374279540846163310163072493565772955303248454856385654538659573648329099562347643720285929451411170861628823103984329991913478510815017507300994138320718333447432154695809754514809655435007907242053628767140476780188683570089147471302726337710265832518406706984774387555317083490865177009313040975047457143797965551822229976909603949896468476668292315480908648940137331474024053806908985886144182610459578602827463499237034579397614263388195407842874351939137704513181034894025034491061196906443232141947342063044185127270677960357362805193383389745166926805170308054740590645505248258655444997109139759533924821001227626109660986164022637429230824063531526793829641605539130075519318435436000877974756604091207090292446742191785797963413572370655790068275927379419106507116387948102664388621201764327999536175538610359468168874437696911335820363571344283102253399929154234897076200621940055348004531865339851859722059326898008924221803803738507409582475642600924541918897087744727387089376836989029695869122278863264812624774222022016454673966209075373298552048651818549308423163057255267671938705533742176814672888772509074391810446254338155039722073612600445903839246546658264884989352916290462110347004573036529307680432380639546746337753032900581974823154227854381825247156821131439574490750579204620124416913986330343523903756273228202904500704704163269598814242460019855728078451027657919755367497297289456115347739668706486238459433669534971215481385302690113896482158527665702272904289556912291602858636586957257641030698996150475274827982810135708712848052017853572854835492622445932960119902343872638023627008957449331188877328703303297390388381437434730153479857780879512657667889377290925411159280390068884131733365392736136205048806053554018587269742563310024626640406041138218010238639958337938353954375573030456036214168433759248145525504868368674508298487727906025529443618121732516703390544770558715123204398989411552825879419083519383389627373314453673486668772957851963445009430599246759407767577535527938808645625971018240150508284256495523977779662607971229193109295280841082998070227963092791883869222054487691855752657151464479264589207440868022118029461848268293721533411713711999651486437683331940674471244247961574987927801146516303319378737143700656327031906061096274399117813285048802708012751466674494829893326528994516830707864761826187538055264270179109476385838210860299238354223607484012232794120368432988471676776793198808916380270410288645692834943546060343174338786673540107664913315506834987463385842987911264160523894518235354554996608280086956241615137242950409105092594631784542889791096833187342280137423097977146430614602550519006494676198029169049973021319376181621690886730348672419508301937700112170659154893271134397992436029576928112958993053227602775872803332042324685246031245689385854590776179101450769781078950618016636178771663431333431995927288787598122291296178925912893602130615180837080957184525647083552849396320602111949489251471970923006297003933137485154190689066886872840574279347933207822474086803699463361680655776077088647901297000928935381690417970004823914889231877510994170634193389210181359942464652881909340037490394956483610840928448266303114512968739800249361528546551436504348153667415949796038631574277578246078352161208335718396074680159167753709707340061941375629365123709786950738685847467225226763311301162190179188780080509281615707092831945382622749540571862513978624888863164141433951868405134395918214263052778983034731382685022753762295191180569591651777701350713472382162860955814264539747584230213128297694669258461195574234908914492776889065218178409227458532793336857606072335139106366456840983622362997719823183008397969960745415436078428500423852593645471914911523982805903180118274780916467311766330594279186612671761257411502668429275781682389990071683578777881065429591875234216725885075362709555631035698130310443716234528194765557566303371774901318683421338423949997099912671121987470490506405616621646211031787685165611584168627295085088583352432182706959356772891680559994865878864233236669285406152307591994726994845876725278511130907967852768162316703077988052150507197602474145136668810891249760010795373523039757116101906716389339784473179723525823914306145106771111282360490193327288518841387432329483212974341058859697115372949470086808858869305207758981916337547397996850630592731784134933695783381160567251249089782658389905663634096990864410058436815535357672232595616941281949188827737476154788660056633693547255566225797177186065834589580626006702672577559009938320672534075620884686891240822416730797474132845358341769572845037025592973612180571776684193019724773483620501990785515743791376653908961966139392321206048207122258016207077693905323244623906788108466703804947109696177414655225406845382026880366871193732457663117676527369218938857204950154100790162933354304769893180554684476991302325101527777371761219945834485772983663504231155777153780012160242651384480341365233484633133523710088576589553160574588343039976818728569022371984942762893447346139384502876317612496827995955036024659534057116252829264521406988851010171262367245519166160098175462562038492732202416007792806880211246522923621278196122333564006505031778365254062514427386860398103595263315721609780638325544777128628288544967165591857467681003671451960491658500199047452885717918549467478803686076640377240500245688622197001188074666318264543568882893092055154037615874383633297410428136291073544538594757900568184543496815306617860964231437639913946454416654988682885936572719138824821982569932106735669960567159912508875681012115558634800122468107432983126648817914481285548130717663395511800573264993629727211526617878140074466584639463290834026218493998137944408087017352227217986276711584734115281158219177543507258540578600027474590080552027507243035655215871908113529204476133988504685857770076315004819976638941034889226444105401770485106053577635697718536880592304991522990210574325359659563897190270216028046270824326924121888946909006318026328134680283650665375367127023356763121289640178989899615574216619512684119267302321287870296375915684109559929710464631695614378760964553067821430746605402483615400661422209213762447701373869683299835176059856392165361079911892583795072948310882913212125703112710274662569139494363531215210398703701439617461485969993588084678402611913702348028869369310807033074085816664219715553306428576112965448856461370085282028577370597744584153002780669583214629370214270045784312777605455695336947785487475568057956331498515109510458863414541725360313928226609596947730939735985275403181717574291183651750068758292810283017291725634286644254984350436160197069760480364777569636813400368080631759156830416948700550244115866301701892998586860930798980626427138918536924227444227253786935513291494830751403483339965206742647346146081831225591924940976310930952953534966844143402688350516694056712138616896689770570399158503657108203451422105333884670837261260792045577506530921108747005345794857327276431564270137026161133261700741299530467989977334946142934171510953900540852989026966051973535074968523110767567879710887280290955655158192865597987165991694507088116111842402957288460144602809244836564162657419362678953149013247707388199719644561724513888040387209312742008874718743366063684681771981815968152419996673301300480860039674016033736680927818047869507130668283568863236869558127968456398950602953294336621191987825745748548558197923933078044341838936718209004386626483933435932742832931477218597371961061521247474874416380969581403396004753849763011870754291740700077617512594262347485272863663165744415104778068178643116247161880020246196475367136750856510245493517903465060245571849114410109053302495322224951942805424115811205831039424423588274440074696729064498272575562482082004168942841533967899321696628317475389160326226831018914173864876224100801765896388189123135250377139831562327821259431189062228771185345022892400167826551540861104478280936186865345210955836846217145751421679268431243141195299080086561769833143370936087775268489867231011339450298555706406150926967055119780802940191031498587632848008402252349015894292723924630782578931743652134709811040111729690881326356905272064166282981757128186566901834980233074035501501191395544384034809527508698427863813306356881312120600700139359059994834842308613591770634577130337795202709566843482335718545580998525120072109736594255784562125413888250182833589037845477059804355558437619591052456166264274790928626868528338519700707525568897850797747289969093391540686635004070697204013159624507839902771654942664542604042124511338234550978720767049833331012081770170232508863994385608660337254649206990281992891020638177521189782459855708276128725566231715522010214088061665588553443514314743555736603719338361368245143962033268879266787000467497423359621002017853528690347133716374916301788706151666633336171663392447981455036335473287761467913406392822454515456482840342751202566497534378100787428833508947782692687403735256757062835704663836223619529659532358953667085125365193126669594550374374310773632710644823491878537952245715685070666873679491419462733527892531066800616719387859073585321594513354564489535491290687408446309379586899261682593272297017966397153877708114021197630409466071646690841892216387169697621331599929559655858407635939003525486488399333084516078630743584361216337320793862156644844943195757807927391666080606910335423379555239708598892255291853411449356562391563598351973245470064924528429593341833841011313195925544243677734656611861589770083605789376835839298745650014244495739457351695649407496985400259313803409119166923188342816397655416452508572574960016971489142653969094648107682297559511857007516397597648173519757434039160854978141315212537354469363138602056094778484118909706857226559707799569048781224615036677391467376873666520296855707991164999293802246475899871239768089466307315600355216586774636645803992260366385266435829431945200963425180955243453331097327343850411067576785398535902584774038328665886758465073667848846379573333817170843022170918930665934815310066998926613977484559865304577365630044807133030994561500374793777385850588441373893988507329642896002526196815832238328332499465744540308842607840960307711625734825139884564972120131254818694827752509272846168236015846823139837618299174306003421077742960905289008912198622276728845349858593601458846552066714914106866487809791189554112551776999388001091026165956746193459205877111957587724550690830943064052145309089635308705242312192009109772801124744253177405111374305047284040751858482741621243018097690831662571497425640871299392371451768178148125163141082648764858597746572371386809887167185058858874203723518107912693179459753983426540143131412921991068702834036609808999731480007084836859078443622486894476530916101714995870959815687242590899357874440265961625044954018408531906335117625549093500379564636642019602098928925407832948222819384003034833421386161184776436989099761468752210923360345260219904912914086181698338836891121751440100751840848098403346767425093602412760569847291443643873405299033514809053578162379889682923168854244296799492725562837984627271425106961080391490952781440920720449272323292184950686026172998196506541690962912899125940346005297367618382433345356610068840732106419848129264857144500210055988447481750930329717071917815501907941763190002074957632338697843032286239405967249264708433317651820105510856832078411572548876650886472168417297681180065151942205661532217162816016920462438968979889270117847198780899717194558003900379402869208188289256197465585138919177792231271157524226739238737432392803978668397946282004126731709129225304620291305990816599774257323031048504083321054642317123224481648654634130397539466059959198444835824002235288423109683962486741523819164692279642235258369069322307919435685153235105407078576409814935410642096921568760371364826486581220280224865106272497491341683040680523660209719955882162253111155401383481948510737379966404293247648563926095894744221953058664845188698376438980597769573694243374223381199667531639186719305825823552179873798779087581054176154527618908262511986035493944587647224318975350592233813064623520209671001545596776116792832556194882040483185654264782373295060575686375368527360824977020001867263099304891237582452912463990332536956801215456248644299951175276503366288288632713598432760071594282949950823595494434990671316597402036152365001659420289331665188740761381011748157016489393823877999682564498784784994396279541794560303423530155792639451718379713742267853616529643537016691733330061059690303948236564076418993942150401549341627316739553960155282024143795069011215762117535059471697243991071534734560518958832990586097702991776683954085740160527684126302940561359039286591663598640989390219148736060232241120821780104005384498315487376443871222353308466045210279965748073256971181412993300245604529702638401288855719759336600325956931979617781317209846845964517949468088985503159521208068859615762060232532595038693610733878694740759336461519587286264639850890953823384647820239490595080902580917246845059067503208199645478048956733427957530840974449573100985876484404293258945637867388013467851719649766341191802793045077770260449353456288802900047810924069874606356288837941400602604158565148764716731262549318256643077086255208327873763218366694137179326824528871742410118946694052650719289380155665613706416178682499130262971461752190884402487373585920892078242669392489601661180937128179282027564020636951390517889503009822490603695085513671653296825989920625278785964554804270587184390595082545088445449116785499222117680445049704901636995495141227025256082190540407282008396314008613181010059155879421890054769746185191518790524240305436377615274661581881448685397381701909695211700866104053580575435244396820368575687221827128130822877441972040224053160334801355696670455206605472112499939949504180618529798387016826588613207810833343941075446493722449716581931290976763175014782131877709591613620452678215380099393993394357201986260540360982134230503477249170438725219805894781593211467811710826849582780003478183528846935496940973865117616618884828733822516845507115130778954412998697841893726269558783634204059672929227281080148580037067051274195193652760749121439672780118614342134975008402110068113418947134756673864604197351067027643583331298129903807199293114147063294876274935274111934066667570011410465036206273483538114297633478492480109075874155211880905131919090776846796032955145580179718833823751967700698139698517433112471591182080886967766299667504771355398217944227961659751195776220558089967984136384480987042167045809469257861587008522178277683427749042528644021441042614730675367366315264156062754129147411770513174551004149036016908310356843952467031060738053139199291446725284270296925783299288877854249607346898559906396099322161619720181295128707132517505691365343816875396520286407843283524694274446719586104442267712216258916524047886412056100266849963439745129911694437834432990375980427267163170866328511429550649314177674243217204134288376300899581939701095237316991798876461305991284860802405930615038381049824758917526768782558451803028896248242933239706215376987516981856661030126573170226566355613462818031570038575494938550430494604034277900298058920396294673470558410575307088193868571239929758815437473070762036185049142669953870155664506354422344689994077798388363046630892476911683708889758217207954087056663895081781457170616627876067028782752868500251557484840868395534286713968615885212411242968963844711409561549742323254939215006934927408758503580839226546144237130571783231934677526642166098230464136599918179976644827291699137598018217522198332896421999888920282396597960182796331669601870684299872679410425585724396325029622739890697459446417005007624195419286579808618521456364419036219917619970424169061472899564488272306725841262214145720372706606627834333978361111954495638514409351047763742026707407906084673133231485331083403999559082858344870320413307487972350492548759664081536366860828499077998616348161607075553593881998968135860395214607863970131103132036886891588096086388155865335683628019288319253118469217960635513854493228769541171056883054597438960378148425421669319270223599755050614837588061190037005088801553457459159893468378314428726800245161798743401225400306422059495603105240124832512255695742290600790354345352797755939500004596988668156502949157779942764206816233410025417644135183374832026884712910231497778306391779473471261399517722242315979311844608611014741600978393374809807423441809539664931073849193065624424103155843192782366878828221714539050302805257393901343632874045967394470569367562217277442913530154063054725506050562796150611805505438735871495617953461142605602766449832216796949180442985600867372688432653622600951002699854454893091928380806771961852085776503975466512038438386542714311856441909956808955673831375715576671541109112123030495101715147916662871895343319135960689459939745652261510446194578668797757092364444819155929171573620655366256953294798904355768997887822926590553885585582704731543302715791883738091165783028326300662992305926034710827463290761053150665971114539457014342404641635393547695915273091555935587454003031251259676155937322427235475154522397942888580858235590727845093053539078522567306271953436150049457603778319240931738805431649372564334347155300588908426925637893248179965729002597910452457789619544612980864046255667404955638320194055769476625160738441506071758266157644480129228377610459568756302859591351277114606468888442063536953299469747605035859829461120080775596396935384623746724131721248276942311001559341470807930902808510831431939184972047300718768193465992713428565060074864499207252002699280072736121926781026236514451137414663429801030356735219742842570650551745744427011773442943636519097828017019132216532608355827402997750965394263097406532638226136447094628581188092208456028989759924179128747275688275693589104618100822154196697759331330613701681479258028738423944139153885736811003829145887629763809748206750610170484695821751854360800423245797368567522279840285779405392805997610627845773404518839447037985203234066848385204684963560340263350446858598801226592536388589801795561268605636836282602685017805015981579988108896906709936958495554026164592123431138522620319634553890084913560164753720705760112859253998015388056935652335126075617371806345351616202366100494408327916879931894863431080923563754927576457112134541535437952589477692145575253739703927860779305545755064005875404893407628608433040391099452588483719003573597429409809172514228633680323063366304947530967276901364138631318382223188803368693376970205232759680932078625797596184681199303487458178856812018405510534162813701230159795385593229688211567007976759697330453962248696444988073807478664559724532588094928001226892007552913766338734320363915352594682941262198798047528973142379574525405372011538949131316104157580270401475115451982706470892921137604949915131553707568585540189764189885642119344691219184297368647656717969034773894125659615315922773432394571985583107273558245584664371217969542535110497440363016978346201664935507798307017235661859553199970620173980846221305255602370044586105544353867637752961781873930563387799418843815260508558007456686545889049591717782878679602265818804588461110150906265234891723966808646535621531984679505588745444390294792209724987695369875455744259541448494026942698862144833093712369284342843910647530090803106006239549976044624841587090746082349893280654394971227638539066528907551818390991984662296546119787563902147635544124683713045065121792959039122679449741280344414825944210367471317252509158928035001034781683330724416649652715046825338403451583021473818666263420080646311239641809646303378351289155736543446304688255130790529810049804426320082385760483358286538045157495798023310169733994297882524674270068850530225176764034892129548065475701383763819406915439321494660283423364720670183951336106323995742777957585659470616911521471730510581673732278528425825836805586292302691001501313279292559572053592789120137868057810211913965779864243363309689347768893415437547157179762737431705862304249954880414540036525808333428220964118039736049355185487610706725675791305362934378454905399795730771645177682807695320344081832450002750129920132085755094035731973352510653899878098287304807274713701878191655640656681891632774681497052415741499028806605637584712629383843246285330731845221887828460858375247843022367871987533848135592212693809475891754422157939220575292974342266635391929426899349779538448625290370464759905905650976996261363554928352372879189120905001163215190186649576488445019988551934035300374588309042024950336330818456378943346246124287405190235368659609863857784492112883452241396861619255608767310532430916618171411485082771613442324732800788228237986312913510708598896813193303493710482220610027163541020080047514489112868820208693566747918261613109989883470597217979467887618853243896551077001076439712048729892730857881315190258555283957263870329421442664022140319775605099554961436990445021896340581033598521564711581658040936111904697766161557970386728913817440038796994302723033815951985559585630446028521106343165456960684550809488586658874875092017236542420397213954307073872877879423903984709788745234919914312101725811232473774759311760113741000002035501285809412307014023433382838843476830218707404551265506573323344767267583535769684513511279466176972655761774429235964616585249550585620843692717637543412643205418265473407798930114700042503413889779027803616783327352056029892657308690676788614267844178960771941378134239872326395736504412363142992675026277150069752634095775851140832829424275185579524043725463094076036664137009463205091501316847813192383764784210115406612455709551815598248167357017985062057293510262249631187714809192366703561117420013586451933983015283403955812376879574214179958729789517207256922390173897068494902419173961371691909948521330398612968811804429783124269717050094716524897322423748964489658042365046174687919202303033435913799320334511556097844343251865092816826488686419022532230307162547936485008450490900794907526346570127474611327889751314582384132941063969592726282061875975364756985066931862932540936399865451040463008293253772094766639041940549963704715828284833306783863385367446842008418366172606412930847470796117932095107350094795159770998260978574405526149318377909783063681831323665209460269551614535559825378136839064874484308815515591207576236616509849675080458835394272198506790320744153057361492330402457325882358356202238933585992180913338414342701975110339715010653141506212190770078392322487855340632453627717526165497511431271022169334511508219959619320720952992276102148556440723871907292871192185327785935298036653812845186857242999793613953554806953173023707704453839873263874982874668840599437002076270690045342745575221588179359408387693559043913436507134027509643145652693380465670162828495450851150756753401457282240203635199671698194413971722802462640140832621518467600221317017149055904862265382323289885756953790584536493388298563058907227461912400123644215709332440200254152318761715024233716559498867019416122307110394781819922593186532730387423312504459997749756938970628310106991230527482568056116602960638495166307202634681809269689074433953593609139338979010864308509684536991563693794848416917473867415977792261567851934541255546473826490900325757349161426392200690419337125778209553563282832652650902747029443161306568967765535505808662626208233328666847424058678873720680658919484876245907782299128382538874968138575858228055490027782602723565885103079387190427865294608773871709506708228120370965929697487621881046689702580231424124639241286218489629472453805457194589148849286304079776779942783755992503298384348261462589332037939953469982576899103060933659655653486678756206671396034347872115766566425891509708275618269973316346299252285341110734578322740186849562037112114404440268814154146314514074481466373543953168970366443610610422779006402235574083584228146689675119117350659175213452914840615256088045581392551284820795131375230092742826755174539651997635419593395718616853796632483960195848759025820459355796866562454997628539349564836489264295314835839349870523581086566904031468516398719307158635491872562283861441514435732226983668691923125204231173607785237517016882451395873487099254678237010743759546937429962178478204773341256149237028952905082594782269309779437395902860142809470889391652311388215287702397221904021115869361609010256916825405215401782825337315188211767176400941018038541848176878478943346221435582981534475965013772395443924722049252910407570087453890630645990437558965071991514215810609820317719624101900250252376454078289997980992448880598677963817333848454026334787431070376155176654708649474809405582022075684568078180426318017887120796854032639671064731391451444574609126085334585983548605743072630570674400943821903799585620644381074079062437612597958375114986219393057906543234562861860235590102833535650928083427858857662667271924311474797268500947480482645021619852745946363768700784351851514874016122998057955278008201563284013747102278012075671040895789136673868536814932831741330014866909881518046661315661435973654603455993502337037433296335632323350993590827260218123609417953438200835074746957411670652111658213206006711688865939984823645319477121138920722808142441524320265691870024895409882669508114328126441185177377825406888742829025684588863327185277390737190408181231461729195903260508725927322484698807516298415430896935938668638199975895458567513863049540710156460668448769588707255117205707309245561247129091893875616992719386025456110083898779196743336668141945105889071961696746920033276563467603253287348391708031947172361056828893181269842249789839943715057241916781248449667366446640734627069673387503605357708760381208312507977825218920385476396275702799036881268377231797897562786079565914977388344895622597407976896305733451357975343509556240707066182948374818231046143354790647890003572543050353466710012752150601961286931898341116932089611040316381187338188377893490536763240408501454551693470117337118312142705955649388720367043161763553492239723188737995731266224037116441326824881236172283983656939780187628229027928927121279406276545563007338847058033742912514239890064335288488679621525166107448804089203486892117668110084127058990196990177460668953584945576239084835672580121394128516024813627951607739123411325119691207142246411887291036340669925700164394816321257927388977674184092446784274509524164053636201456929976357377388517126387312791189551753661888331132696429926063039504349087095962772221986293551331785799115586887004828443676807620121089952452302048627029183871699078455097972145218085936285253948511727147624698958999571281360128362057808416875537553395275096196705706041605986067605815190480710385686754197911865599050483580416902280161982082993318200192277811675765059561102034445167511236436062085242058608441365915484878562294512088538795433068774893276475432967046334634363976285767151415801806057953507022769453483991275908977784196262341662752498302195645164941592212876305941162985390654730298806131215567347509896304638641844281491759323388635589861849756234764258939822229556573752366157368947794377720738089043731938936915306930688804920805812245175980045433903215477144201780004979036363678107569861062648428870259389093906897168263605073080883436420409501832992209384996639487396020851407613485224139948830916579476769536393675006596231640948448669773201350626032342273380101977420849128341024575176377085555241761639963097400657410448971226564208413331419464764967075576678045985108829130175998681209314569911847571348539324245958695610386589435400336048200994567510092417178094089557783739522399366313412259667515424185255815666541385345298454313912945357118816486118036622879240076488726702886329070240107656035426269824971569682271971076306047551444236835822440145210236624878339382024551097774746952368341642278769709001364869747813534221252146970449992849378244838868323995783380177620314184182474740996133761229827528085082419998745030731819703192913897043367208109505272910405550984869050636077760273446239417300893503250580892499153324742148717674895783050249832349502067033136183805418655334350836521534356938858399539139338420805666094780525627553436707417984968693582160714464158270536416843068255572827972407163998702895844236540248110420452135285308639057578387855966849632520168219459073356673045353725870567826810633922950533115000298744134331779937177036884352902395847364148817309775033049601049421910903185327102684880648386283494806358886686426418764707650388293429859104766882896218750562104294711017186169011544608286234660420375428540994689000762388809282205514837357582999539085332709512644061804611073672555891733648492038457107460415627193169148794900740538955440410504475417720047685169859062250196743360599933835201221158648307556553522335708649055511388084172293167892150665152456897384364971455345071097214754226814409123267341194930612890860691261956481374400012681108946897946012445065559698848084935732035401959877597929780655458634304659217669062919429682518748249447951035806432444977013908406314249672663599092190806849624150623174333038428397089907662276682156859551764080561851106790359246957625732536581595825354269534515941856845289940331118156485544677618281568607595076964230701615763931519888605609130887418243129851780387908071775131618503467933526031940788200408405232152187955383424579565234891274206897853202798766309893596952546643845129265371688465750875448877832026771722944002392343252366664585808133098913962013651546139289713137126696590036148566690671205655513849996575071338679434611771813376083142552487879142894077344707759806479709482437930387626553872162956260482812600685311915512896237812677298866123491368494013561089767932154673262861631281736976111516756667063439160493845013553102663494262581820054243132774979436185070443675120657969213943680105164450026551716849447710325617614989450906958340067483240784157828923084443160027466130421337542474233148204769909558162378335181172440344973719574420506042885545663628937108302503761498918552418290430767387124037578391232695551846653419460176418950706894761720749857156607994415350221060284975757417805254707105130005111326310369972947793696796095740313927570325393159224725630148559033022877397399065412020930828865153610182307934081164472883115003761885950716144775808273057157857916601328560681881498807101639834157931886950082518061755167990269782501215705536139342643987473895994743511508011836674004143849186328124364316335976342149239364165676350799098604829789410055407721367944966352533156228406733241546110344119911105232505965002821528036156017301077534496597268216565596935222785799219517349515484345808239174396023686481853258678049253031262870692340851820805567718925748034400136847435293207426113112416176710234245324080271297221172966516563435548912133080250404494936103830758308855041776002373390413441602404738944565689071106984475122263694539905440126184034768087433846673032746383471133579445296463488627664232936569339056169309410570371818024804807281233029434795280330221639986689393041023748609547557071450502310233392128200385389411712926816363283398248065625945903164376077662833765471075395913507271349714597034560748088777528583650615421468011361774186485962114592390625725726301961138660273552084523840719298888794256580028604614916925829034062073809629039565068054124919938067938903756421258063455327123245052532213618277598879980596328756633786859462792300894208544368363503716028092027243222747930219805092287800370920413068075867181716454946629353921555875844287485973637599012024486647884489020747658042039512769854682090361946534958419091951250275859848252918740361371726784871460548340748657374499000214663283438980894527598840606614837121478700830899786029496509285837091074754598878596433605578833830748887987282936945996778614912382457845384186422911251446244285421929840476531440095457042445938127563681174240368327828044137646901300481810705278578175124519751346919577952386948666241420968386446117417462018965315801809383405693795936592403413632603869331057329921420045110933129885684177385133219876176287602751492362004840427460696795413016003034569392960890036807006788393550074485736012387064601164085120481867395962468066299367930979322922724309573548977050824812528606751035855189821086456315459542784974982055524700278821024440498068033201097515160925318942787355917125470679259565109742801857339986832038140869164515151898698643558247152256733728590142656522465564944544701077675110146992540737401703166850132742870787165702624976712738048204584527508334855601480795820922129356770593823374840820137426098633258738704043730970169573462584018232497956222109575576887679078306625360862450730972673259596942082788372873971402267703751286800503150895200761357007932787106018589034834968162063327722339522421316975372781778835057527044077190415917178466860642311182870119874873317091146222581206322544145602918629751743087888806762245756670325572728368867830976628973304877828066375654478261547759267515100698619117718822190934607912181962199099209558614892180614625129347863286648071675176828134484529249124685780162506101447759786616782695870234477944638770903055732320988000161568820722266262228436421516990460854990457228733915209594123510647978491812617483199996743743993445873497129432975606590181988223980372125724172315167608222010730258694441427615711675405235545960546343345850565794157575392076224158779277406470125654698061360400406699534358631776941931364062242790876253453390237826425703180927744722567928531875710572629366296418963126480180909029603881575890639967895600449690985536326247118107939724024443258280523790525075489171163368820210037873172846762594561281408909506929478661158239970323722486852796931134294981818383277568750693737886176724212507069083274307320560232589939048832896423719271792163666684991384045623963107956279186427959882226208629586675822292842080490813675576031694770975288243792122063672755982013110404346876736221420826534699590584677033676319214459120825511814556382120932772506935373832447772072510790131403680979894596188934087131086018549929806488530955513721531691053736698149907181706987666603542169489651541519252033143927825508555762638476403366066443675301317949092551183689337471765234864521870685878006662261344930384547505019031207606897159519755767756819964817338044139380790946905627617554453940696224281417255579421874576552804659970262365847006487807426474699092160840453359036972906543976373839302340529406599311654579145686828387779707799564658815235753130668532012267050439928675814235771356576485832165042860536458845457747941034091266039967252880158218417331365242097364387264469825542203418974026591417397853598987383748432694259735302731670612667138980965861153364122402854375977289899422730009584568150087555641700940161960345317804969730676274506186992142524342410484669758984705060500534582742275600634836040516669102801722238148660429430736503096353660985963303462524370084724338349880981804384061146091895359475352874164241583482541899869136622929639087945452215438074414524004641581264503960716885391408630530871657881517446921210486525126236695016557099878620425266564319190807373175754152025970212054940201467327238701177770361895465235903704589986159932246868601274162180069517650863821482728153387714487370847007870950264805909421406040625734867877348915683325447250173792465636804639511361061085858248224827637831694499024820728587661473009871964641589067788330668007693125987748081728672507948989328701525392579610770529840766977332542363345572546569047420640389419301686503876225740360326899176335431119847446497275497977865360307417919127441867061883933621159187035735408974260605433550579166645855402116542666110803314034855380352762054409994141493397937638267121679594487097549136207483882317106045627727961272504684669968656731560536015782212597938387594730338399402140864617116356372071970471553643650207843101486859296641786768679925494474407151103744481747880077602491381859780823743072835725317550020246433386180996081651835979394881356152173923042788074210708718002285659959620474943336470602798487936272679813851813407946402201057615649426781897290415334145658213797706108232062985274604461884093379292258442514437489931649942376990223465372176159500851755915601348773894094769152027849651494577205380814860326039031524566696474591270044737739370947864303536100070089523210450896916578946942969774251630955830217016741497616912288491971757577700767361908544117782005546692305911325251520034437769451918484509298518595451636875541806032208162289992144814804629826983584595933062122743413109352223607157232936988633659702880823307158011684306608586965437792299194041994343179036647857011710929582697346262125375740477479031277952702197234353642354639498412295961125822810952744654406840802474577292154094064643375140126878625929534169015591309867907267622295341439518086633970585830467484204666225982755239997845102170681646730661632021267375997035236979754404082218143792080738760703157119199399011357291264609619762666230848760163048204602457985378311638928551666789409937892953868370741264960106171674027820199417805423051544217673290841472474047972390990422914156874293040275721910006653260385278860181411206069876925511350459749990759945867228542197428457865797629671389534040812502555708665458104616068474048737067143594308554600892095011053252540992353113952197527510563325174205530153986870689396771396962173136440085911566462251780922880378870934292356447413165588769136946439300073242753084055778322739479928069617666034370836094575146900537579277788890577649922045891577666471951093588487774869433098764760888856834278553879154707206538724391974870006035729430626000318371749278984998172915146437274223356114248468147955077505588623494896558569268046425929704036121314806305022979979160925266813788430824838544583702002086774631217068470154706900451485036368182254769858262727020159827917437140949798867023740800231587455421997609023359221229220691469415086800997518688349420177380596669289575663140855446930226160228249090426756848386472870667301067810297920689224474666271283492585009932127900004350734245437918141039650554205322596595646685126872039556262475004149135664956971942664285297188573976963076489516578403831990177507669599888463424529999651703316644304228468781839527336100298209350052369734954460963903911002224730238961499050061565919271106143335009200587555516710072829651160433531677263571499748901830381156690284197373621697017701694231775649973551021788291606449223347342441883045891759885827439503866562316563123143385478772251313212341158212407435105537596056017089766727487791294644877279463995094744049603337218805957246287164767355173867248972576898119679432641677166993568887838884040520807947995819106614194537049158402524730587600120180590853209168889466701846906616942782271576645898995520438771088344756119358123246447229472399284653335447889016345737463859865198603786966546402114088497883712756983978107074079034937498231573576483089603537959983243048000487908596216587076885414143749794636065736566059508817412139439299845266100556528565339130960528885590125238745998263626352853877484498594103427858930704900053359329214728407224325561308695404581076745079208568719445181126291870695707362587526633106809366349485922617832904921344324685538504625797517255919937381693555232264490899970599817386057729960515266846380537300780410725822741638601452564366394249003749928033429239714959882984167433756826061731333378210193396967026109783230961875383735792147318917064132445955774522954580559114606404373345017258078636573202274180065186848549637603928209929070738087234412056708339470572097707405772906741633442203066349587655367054619096688669925606106279868996151136872466466419816737000582175531200593744065408319459310676775612466323497373044977531667864033492291653295998192964423867932183433982198952105790372495482672867006432246532580452456002449205573599149538007813576090889962057302801613652851811915528554829507088817328671994728714925104580469764405601589845623850896923698133074031911977434363116684820216530759099147688908584355545755600386893610161963383997820895813844602666442212258420431023870861018179922332924232883855783099765240329661778083648579470191372145347306970267105712928477104299073241246716333329294063475485914892780130132074408370746576078941422413626963437745126204476569538776747129054918215463584388087625532712907496897560855008981991933702531832957026983817818070826674471010104015808938103151495410912697528669660429393864223833540347153310315165606083516648245984641576616837710700406615188150160114942503948492929504689370116830281609540977541414463792408236822172598075465428227153485046475038634321500032905764487544091488641522367862665615495244935688361157653837252975213876316384382627083313554867074880227399693593324274184785501285330153586464392667578937926586066302601995920060606845563316186007508237074715265092636480088763449069428978128933291107296164311526285717682476053987366609499430289770697342556581958550039049329951363108810660263855916634171953222229528859786555843305825411079986061788870834820200864538123333569614689634527239126751203386474974466837799488763884533440122116339247341392581820727260446991888756848296003528112605423520668795889100028433696970048422248682035087813568500496602082532714923073527445573267109878227388653869158808195698388376588121075405352288398463948878126211196206764373961756062832387612967593984394503043300977182277145850894111737831160208785973365870521446542780166336847003641749192614332692323317453559992058605489935536292935838612126707016677884573700165588249781089880604459040579601563792914864242077245793825652108189618191582126736524931022915750992170696579003599610868718709331478084046323278701599564967287807691518308534583552287189690855150354947930382671088124618227574921987016335524103632023562817676602784542695198584604085543038145154894682249274296414878724589338201785635726710308736154263141912984106410047156480840777954682757875932445001921760729742068168824020998763458137347378695998752647558149221040155026057931727648672659327882369729254023916815846533926052048535395989860137871891049486304510813620404775930527461323079238105844216219918494038038980205155553960946332947785713719899949622924285415733813326969768668832114523826196409429555341348785425362111119813717987877998422104242506151433690974889011732372486154942518246050388103915817644616169452792206666834032337918974135345989601248658834607923561185374723135237134842178909153785586080410304215160331393793360018302682100527183884543416305107061310360011372627142932082011702191451797371350330512051920409045035135765717118010031505350329226607988907983256403397815166011010632791946725664775339526929265678452423074192874351372170462140205315876426539285323690959051907875432248525034475326515456781065357752977819067160197167522638056918210461393501291928037957941246326887809951541270184162908883980878427996466546960434234891024190775207477754239271159840747089961987608284998297590447221322229846159428930441044945546536601451690704264419339785507984868720981611370967699117347558267749606501203069627900559499714774482152098142747895211572906693961474603226113283513690249192697305234778152065125973689912697031862817912685927826393586117765582875658593930062079603382026695448641481183561322782630500842013680250098399699085503371323734300296033648989661600464842692286696345221446757158904396731348630575002564848755569589127913473398168590503365202681447006125751080545579364028797539223248514042717248565486938156579324081409624061414732271329030467765111122371609672186417009348223514898116585790333465578827197797699456794423023444392864765197762300790268832503204626343356228428385508467500998273599707204553322487694820199814289697915388086197087828374214270398048076691464059076086719406946513575025632062421674434330103173805968544871517399253258397133327048300367891566019389890788541584780671488054857921766438742870194980497360891029161892856243802516448945372704754598398027470784569954942972304058272597847545321265339286053690625981991711711454752198047556078234678097058805510398852050751750012984108892509678200916907014124184743134935488620045916195931380650199606355020491868299718355658449426089324497636802006169832935731469946046517686259701483569303576502003158514073823686140147556769285900875446406425824354875824658776165041594088889255971175045051139762801053702009530490069840194766473423305134323358538004585501052655559336695949488479288523258026565205679096005087169991353197512583821146420563400069244939499529990302353172529842877198141013792863103562784899308535893952889263715011315514710575266557455485364975692156714003040930056904255912469892692787723736063696470570145702930017475755430986256288294771565760495773572128284490480608996644289606653069551843046867797013388081791731665215340441328866982277852633512095793351538777852240064226648123668228843100293625209622951745001178208808301106983874425021444051067095013381413474989640851642381278144447925096723120576923548792922611995370367943013211975596640362186443616180888489320790157282645816420438914814274041439613284951114482615299393151150730736546298791857691724355737890654993212473552175302883787223229994276846278943019954971826200939265463029472805879958820244869482990058387707357430207201420389584383579151736746776706019204457575023145446016515473593767582095825504253861529892638685545935338335292433611008059196075842662749708376442409431198200503159608771487978365518834245023176836997082538834530395841252986216428450023197010421368519911284274580977311963729122609892048853900372115300290512154356512432899550076881863207100030717028353482197646776809550697163035514898053123266031024798615077500169842652078056999331183214112437098666493332075510492352738387842057273512919011796035589600777350350749893947356326866313941245178662469047399998433584041935873077673309693993774983785115864708163719980543939943029847066309231787552800340009995029737145965991508100629124438103114263009122360882712140690147734314917503539578585413911710950424095364052411216469980418484750201016770516746075300771251260658539945296665919632142342790798675309160028250299834905467822251244531932843354217446762063964778701254694608921086552864490908216550045017907886087429140102283476696126481024727293297408931321332758030826794795325698624324904349063186979614821173643595749573389967376182910293099159061008856880040913748050729035498227110798580882815860893050302417047883864219294150340040629985782758173244683080214155902460343970422833578401876087879339435737936405688178779557296121339406805021306883931639126319762644198850468877521210692963046758263484323936105561231264628880947230628018320387290387450472821930236928894973806689147666142423775929558773287819391936955876307332846443132509583902015265106051818292279105845953240243671523003667151898291457430266121715798942886758684872294540161411112477796059686839918332612885040682040747255166948873571121296853631513784925240747972685860777787063165273834190601725852071894040588664877417141974427654826560803752617926675346064187824751692401824006238869607939945133993294010779230853429131232994411310484557247936999921675912123612740846706639045103859438515163227575070763298062694142123237052552573826838716430651166149245669118723689489091990446606631188719255027116256841718775285697392885738777655365916774868118442825896019186890652548482542365371478404213643854184468644213449504392625159388153651218637170105632674188792968108397925157519455446234296987724819275281474846306455301739077634274949145511192994237659351558276291902959350923161693251310041403673050193335871781340526984276918121617923840800667656820610212929501655653375500184762493182754458895177217609109326228653655525183901329512872871481287034697725679944570642562679432094238626230120996528922156089987240153958771651044788434821097679348476300633417988380550539059281723217570758648729792592788417143270505475313530580901334911539786295855872988214057090668190770769441607832930858313904928006448520795383798207145083075729834483079133636605243923587833180162430634126024009249057489627080124625602020059670255387832530086674766164778560665263370436595964761973335049057996125766318374555705771092232425247213896871354882842001294192669183286012966208210853769887296220109821360581537650059595773389945915580159163557616149085508040243541752601319384659512361414059314089252875430346339985639207091604572586306351238706837076977902628437404895450770340343412966436115132476198031872780997881754969822676151269681419864995697218589050308007731799640093062925117302611333507142508060810113590050697251236760211438622707730327639317226962048302316741390621127494753543796220075627786335904752330944299010442751065431643743116917618867114593148664270620785251364644837879246623591849960793293028384336306145990263133267898616830977413801074267223481748095710530091290742399065795822096818263812479676510322891329510529444269293240152308738594994593063510347328655866877123249921224313102559164329698069718392697117639732540816788498787273062182137633920255640794893910217861690321841374147423632248786541995631320846948871459179572275220558038028993168633533037621432962365873074454719302528725948725059691902302760933722658487479577483017709201067624079154108879299578617572675949402450030921095955760926463328157515118819672489255226974358911078457988351094723394657581167795071941035852600206450076430194062189970186534673982010840929701310221113015477557997829520594465833951875426275863477742879391382699436021763841065550819072501364776175742683560269504048095893382018591507960517898460146339763327947031196021448499252873458580518378123789651168379211789670252283389634044876935352091071830359976345528992900284245278492057713597101627593234178675775625462301378339314635182066289966290385526218432851859586756368093472776065734878103869077760273726224393065776854979177203176591325898957019299629725041159640519712419460719500957017608614955139843130855710452894223047206385226800985772272622807961195653023748322575793264880576835535258131560795734555261099954679337402496013462048303268453867365011188710559233702930843873496420559008699174446453728376787553263426926320001078970893071867883094109434104518732164788686252234691670392567408169601462998586739731979710233096658658525024969736773801047099406082154995754162008833212736918600086473598951507057467640333179790609205490465647810484508577766637473226584775630980769673466371428409441262995302557797895448340351887046193493453411588602351697322855370557660021026491819868755125015802510857736661376749420594417145285695705795069686832835877365771406226110161673297258541179359459259334862859667751789027196192544769680016076804177010436461641491144137265972450962258242865125382110002386249295518907951840132085765549507516797222662164991994089467987473507033263596372947843186752590427106150880736462676120445759084491656263169986356868274765278694748855204445381137896760124870575855623099182714031336274761843245686192673635896383088075354303932074276508506737153712053608225121148301868618700371402510938583729562747667487721001622543611368595069581920026896077870289167577641485045775488166584054461474606761186266211381169702631243916501809057952776683344776457525342341371420901123264127661077478924375451459817588127812783124911372976240118911909031019110837227671251358057958207359320809641307341420380745070017901066668641665822028070115316938546756562385236059727265121248978098310564985951652649436487453250931574047045964815070512225941867091469796938921909251827596381901120894236954514564512261377575212293618047973392537739679069998933206585997199143440064106408119051434610999519951874896743328638417134052183873961667340410967934510184648442372874621215652121620009001929277110045556234693850382268205418121486297619069760152993193471867626018244370426642694595013706568416677890288286929163117411287497021912793785004812925883646537538530103722158526472266922087715313824111097493788238002775651621035934844489281348853986579037525254849531724150221293582176196419236405331493900326600552305590466559671632325428135074995770181736242839451819276483724020441070274402579391108934071828785683668042175382046816347005207007823190409694104256693680414048506443594918998514752628445649973029185732200102923740403304439670177706263142711378687217579750228732035399610359640685803896528557752602507751064967439919474592077284115987281582135794308555292092605486183672644796285878114488598729758457542717707028622590479939387217129881426272119959500319459220526901158514538134757865376798721979552633724965737453863052305001816145001403499672862923710980180698449740109598575417467940865590270295090233117349469008509010383039617477781777500716722543548734250587558358502732904395949635099283593406529816920401499800120758616721314839581928421345872409717715085467726680329869379471332431062026300290975517803442428911233936041866871475736994206059159181138626972050843744025562312699776068955483829793596803506734357779794697324612830629510693853525150744367567051535373219286021739565876669955091411305131566020851976996093441230575714724391112002232720749807924699950740859843734531018831073912473044100759910823920225069842714232224055644691266137578556419451989022717737471242374922379184727197260101521619976088836181461401425281995463739861670891461438500954848040296634011021166367115230060018970012122482667946080238916637068222719389437985244419737177531443618832118627781242126003591981377286179942456285370339876725914201354666650325008988527272725202484134798535593808074667580279514982369448989641576151144348844317501292391861321839725097109045749629629070952945435773104409695890273679238199656185867438682303220205766948876697834512480181842808167084366261117420045460528872264684069170968208184216267804383470319303962745129195114637997110635062805105641038791608738389756335063183725953391859516390643624259511328377550893707666490618288137365918252997660467475029750795480834624444693960217534649973254862079685403996885121779580250577927779473319254941666433225065278406201937286292526533483768187151551583472179533755543924542240314581362810546669386817213076902732473895426934581994925369829401972761624700698113524446411563210752938006831616143946562669897292612696676471538649327238480103913162365229769387485180762685354463007721235835037883754879239726840159251164092677058452865592633205307600430315653563525154897823759846838170967125441522926067014136203130409199247888272829134438561283365115893045465632589814778418614793073579334044624376611296054768824299091573819467617536630965811113358034481828615542518762999127031354739544652635150390689914058054069073187486272901917947023031371352823607491137607296363949464611990888533976290343681823764535011086114097737716571274924133203840254387862553849079675489483811054458493249672239500115562528203317530094279581152037743993478953098553159952690533923637836224435210290904497170559898310020745322425512328513592228768160568323316465935981758168905166005228496517132563535619566353295129152915898339297378069444994082598585373210499491048481271194951979611079717192568347533403759323053663842489977812015862041412255440739981576558525373348810886243421364583768884828288700126103916454608145710821562335316749079922410831972955534290269249768547947636317479960577466318138383401622761914690872104539191707872243843233647597483327328899101670766231219631247696148291880079621772447865472573127770138543981837858629767961401001944767800502840146736934452107369205170094183923662485755406112040196172082392626930870992348541496212517073750714897067362040025089065075243650864689408682030205062168401769653861941515378166872271048716191347637237945426398906753028067806416945626391054799456953658378156664756275154096111466697925765260964184130765476159363737462916411272589172759691062502984315084360329648181517436325659184628740833808546709962140293934359875927995127282315534370652167349856756923511300018939152382195501089680297429874371893898234417041613170667514526048517505496203246845965694221774963960602553431429991579778554521306255538110363943290503500044002126674960545235370649663902241216574106935872637729253178858742943072778599310860144228979398071787292762908676517062971500504285642715429645854262845818314992098893002157407778523963212407936852258564734996684796317944383686303849739406792179533253297688523683941641579323905545889757353664657476245139844878210598520615438132532290870618486906010380230737914515192889395656663171437506178334419106901218077461227088586946281396479723248203197107666655032727131975000787512192060278306894738133379423186383731962841319718380238047578212754246893673464870777559473455776446593268378945755031481496348634221442172656710229449976257557134474838571045981893092565668611905868686988282196241606585946090239891189799254643467367753312478875884006510731074510764339535377095312829414341397740811248190992741341471004996060440187385006918943512027059354380239435485240488868683952687156666744297253650926304974578545774513628379361053476223425587064819070622964103655948973584678553158877106317777084885551203365992514479753646461574389266689253449373741835744148249885803774540074465652508249320180828314560555691053286008787933512093055631432571531682687778177350867325254134083161641122302430201583937530917963047276133368894042629312802564007573713648607435299822990700374121041673925314180843851064587549546014003608692977863749720968878877872564182390106267480905418429724617221825400680234985037226220072088948879500750432464469909232460686994326224656768404742865469814207877559603694189789843651557988313769097236265505252537496427577313729646785752202751151263011977034924733544460491361332875301759616730248120411978805471127937390688233448850006930224001099424466694081433066981571588013713603844865204376622836976447668776572305614571014751376238654222692433889550091413213855079497876025391488349848529741696542715493732928221157946759884097317910217886358720317095753385981834778370823073420563010387780159877566054569198184210488826464699828652643750657752766116996026696047862441645529966221031288157532199137060235583070341738131019529419030756921441570823139002188373574990470818073333883885265854540157315485397000815348126853280789455073563772158925106771416216573068581552783704300363481659079979184054924819143745479626808741001652084950897156168252548202338822821259747660535008444643131575187720670005505534194531708785236308558428838770598380451200643534500224545492015602970834592037293668725282617398646645826679317695590225733200624244296787017974251484119531662238876662258943915217514659236208502757922253453836118462082139420588447408754249031988955953536160657764186593859467680040052276515628198326164624200672417352787465262118099639845468356699422495185323376667161936317993304364489857091073570630714926910887970236954781486975640208332988608575105872537344682467748538338333661631911788191773266991110764403316261827426594104612615924620427457778910521261936256513131072696055238335852903247785253465777651335378409541209535136547775383537683432991337589689235309476178272194721949580598463139065750644303150928822989543827984647578941984689833518685384582562823511724985765760567860258523068371150557470503369336712878267645603472742156834492153137644487961625014173217523058994933007874863834891698309486772259128247510608909736109555500885939113987214585357345186073134070240869260176100559784714606793208459632213975544189441336580076296090964932569957623964825251420630612847294840319947654719104963500721160114145286813026450177945042824756918253129218698480844255692828888681415894012670163795682250671706706166907448726756388158168680452081336792212489890265308056161965579642130748043826498582525269220119253313271336376480337880759429497876879946973544416907799664737106474274708067857816913132884510077270074755335353200856234705261414695853201440523928983630211916384019315160048988541209244960114321293047972223067805394248192347338499100978203655346992692800312101732739678631743402716848702261192035305531430303211105600229218763718677266113152171234829502903791027599007130889980671752232964082564569808228326309619572984114682572373132020677022130842728375550933260927259083055136173186917521522401627825326307807600237110948044925782608326116070652858740079771249859231951567669157915620604602645986587022293710019262654348572484174581286240448277941170040728469622675484318812947926199125631133468911750886853500899654745591193055804946251016354710084412354213809534497526508290074317887890827969755192457782840258897678889241872259415460408008154424245425988442787116404105844631199365057365382476838473587026741997839847233750170303215162351714446696587995255871382611656026074181023387699585621916636355390319202534149079623644364119998699678114630445083243356379051883886404419610659842517334345080204599346951281166608882851440527260861422752112252156682294159573716870595611011551054468018999636641962242870556377310405987404810628126666039998229290408669472749588059206962538130220473880752279609292383955727051123661812907631675793522551806201732796427910646785876058410549754410206234953797594751632705708393005590860765323916640803607157665610091936187100572503210090795281888801043844877909380904652501009085464855483617135145941048608744166729438702780895107735644234754579164172271262521998274185493143663694412132987740258934317993502302476445095736737517203595293895191137400337092011298129090962489717109354717332548898132441374005211372857881249916310494231762933850877982236693204284529923413076803162351573302638887637538254345221952319035995596517137836709919357443279926788927823055858663557713326357986201555824978444280761354708781955711347413688679022067884400494686017894494993634879569232040358165376393152646961456853724123435593361625677661813160133766691886007670090795694031915916255745596350376511462361351431158687302326989253473287670074758156820250169783412224204220323086809128323745758294256228209831477617079887742241924440587494089841896830523811841972904892199397771618298423407560777569790847320048545342904460974079763713601644238608789665487035333131220262977454506494635112652005708339657108424982355709650079074736506609180175802280704979394336826818104522487557755180989224596273915676274992237551860085537230631120253554722988219461723115918070934479028968934979144739867487223565063080464587334470344353448763456381349927740710847836635833715817217562811191149263116182987514917090291936939709803366602729952088625295388840431752258924194757520436219974662842438107159045150416274655391991284133026665781676593804039482867664863004700585519096818009459981782697035638194543603695074400721939756342449335600799558508030316283058096998474906346151089333988148729670093973236059661525112955540729402184390824813160175808018158755874766785414107894330025669387730224307601759703433737314687604220472712653665703918010119120881986857833953404925684987068191691692280808101388240289261135882018830340583824101477503219779506625213259108237578975647400695718443934195576080193073840188280923864307241854501343394465053903289039136095520639046973078734829270251566887927077608055153765991048544584087193633153265341090781780245058855094629489179040514169748165023269844941560216297408596524874686125673287192666482546035254970523556779760237878664258232612570072698603761916744049575905404316987525239734308576901137523957990309230418064656198682258656176660643342997154748007765565821932615661813905658324553952298471383265913924455829002319671109589610476076413040728290818130842311142973223991442403745059092459961332334651624903175302096525767128782706261417509984770046949065528385172585104503678573430156990366757776135715979578703210084462465774169816894364726082040508134755345765350340738048666761654749882565734622628042117747113255767279025993015718007073539438967472937940865548120153266335310924974749719530837586311529611189708175752493484387190151217725670102082445618759168201037355913403384317945934140117135126903959380299941583791291048700497900448137312699939225519291314173999398546795453361676549563041965076207519550921923608033359227147182441792719318742528185329147242222097069055028036585766274846687100471219045358778831207629591544905058529815205081442448448575417181676841856238880863843166870291497262094376258660126000707289315072907602125216833447693661572869562823344599590174436969706082199624301750395395971113536642175906995209695674369323724890636772463311721315903103774575416289595171735240862874847946422102515107264007018733633930105090000338224179668050386128854212831186909472254871699811085875654129145898689878054304278830305995935096730013631517938821353500042078010575480313610803868840501489051439048970147015913170647216056977519539710861614227804552141751935684908208014728316722377726168877915401985699703604948373698114784381182597591012698855312403672682711281986523842694954129908964596648585481514334678082810905489910948597675954837253634694928608872389930939363934124731017450984765816209457887087579852391345315647212566399557392014326868068564205249551231445534971994865481890503042065044580705824849710718859658572837574153190187707737507522839625131712667676988552872398111879873404054950324973484004178143895236410791003982401287525295815459697351040615447489733972330858907437923696693590908508978895907677201525207998808639420479401701579627364725587594419138928448048912736036844969323316828050914501577009128937234736618741310012431952316934910769154409202467947995309449146208834261537809880515534587762955035984662630454815892648847588756412620338283670423601617570269345993800173000377971092839379260626020039860897870937279536910873188624240858620394068921620884158608269371985452647525053964023725290940127859542219282908013846022326090906017997256489508847263213767344437212278072062179670808525629988708510464441285678626182519147730813782926933807867216732251869895438803715520403753925681388240065402915010496718633922701156258569770407053773660573650463666461564180858113094271152188665441290412637762018739116309875315454480447658849905036765148355575929980778099607609248465882879490559046166923394401547037267440366623002417076313737484054104285141941472482434007516258881535184687005447709562051727042437111800790711642055821447588304486290353555397682479568121705255327296133079961819902488485749405595729576247801205596481462491189688541185918018429501565253067119651666371138355945614853347151146017968133684022475663382644867274407243781062802118943718132738403346440649431317517108712002058722499523170640239658741829521727423938789673965566565113702944612979337651279590209630692141066738709306682718762256637922459048271646384699696044338790496972304088782050757014843828075932026062435828907722490531040628450629660894722621847634430203836732250295815261715219935099423642442603804670917237926106291650900833257053116590951199302111839914497358859384246780042373433545381858474970810332027146732648050589434377993654246115342672047657374819981746940644682293195529165378989545271579548140275911695833928285505778504779110787769465196043442836603367787617474601600630119019607828613084205055971677434452650066626035450831074514712840515258169241690985707609215351234921219518136471712773592182881761193021324734372436158153779501963867942625461481587888615787878965558876081667029334778062670506501593245422890782729498880338724859429837751862790624510584933762093168003344491979303435932493430268847022794355764384865588939654248806235118000670644142991770237833810326025376108099108573279004436390628645160490380622723164246776182934499791059123127342272354178672997275744874571386072286759535650565276778399118152097042258375942587590668570749761565408083000308524353976211646694348378964898014680933519395242538534457304539905352991349577697148352653715067149256949716092399964455775298023306199766717310740018316909077957072184642563289844358620595717561096272332900143005423988603826614938549605738763596143269220784662409820435445904789783084217503850756455664425263167255571090428357691729734258726074399766745633600197671132458508089322014691480757349753110002377721944114393517118571788705481074009684691928567625279244790180189607031642605673491922013052870995349095472705853161471433710080834546760843725974868389585980823590805234778890139758045530459550033400383251683044859880561532258444565167905823431824073302985192216251025591024484408429720731189507748242724902277540660556858419104602780055452461872402267859326225875795174100237578434214179616951812076285755515718483292439234970399690923354361971544646547858093199464643004402729966755709923968099376367684681355590863930403531550533353174899158776788789205676297880828248591383532257851767118034784213309077935235571426618174122749499463509899121600469581713506098472936271021967442300495968248151025557402747211172336222756857214557481127948837431776388710037126868927146272036860277709477706548308119837478700606581812592330082976103079982492300456647456807206741108570616422707411171541163692060779813636813105949667083195309972074408402159098588531262050099333732130526713624749014436672040692182005722209639180970341319840932341851474688187373575267021750209720813074204779964237623400346194416679764716405625445265182173388721909215243952179515226942060227822721644908802376325272865977892966075742751208221145866356196858649709288456400588977251948951386837662936892293204339283148437139259256628569280557703825378473918281261649054881384810768332841028771917708309755510613129100478329997756338355241172348742380443805176802067664489480474915341529710809951944519011238736365591674696521453258288154864528213916076881275980856081151542912145879457896114985617001039835002108357149090886925539891981653355863856984469846588453039559364352652827971714333741689560068031243841321384538533877581779416118149615300920571699256847612509709234248733618078164595671486565828392355307650269800005378696483959654231030023015439322875048939832162523765836076508272357445598197993599250750003962767908558906204947917988964288344838245099148045328996260417005138051583162776132679598702907220973183645221217104028354567998253492850553625877470699619146102860664341722131828866262914362865017350826273781803058354851288276311584098122477968465147708145651353048333054952391485563183326787524161106908834395374250712692922130065949346372272150514747608912942653602728370354270599755595228434827404566633356667584344390645145344280233622578356087185890377456637584003755647394454453314118697754894462929121566780370937261186056235513424258837342933947394303606878553195973665429237008656543784202958826889460618045493774740817776131461962255282922062350928837585904776373022094801333803988963035118898166777465762593608696321592875008689130475528242007914783857472487949274945404258847461116614367391584260738021467834401555692017056263345776569915610568048159759053274863577677439310652323622948054886423803918049661867360296111315788016536619779982628478393625408589217583886367038299630537591597164411928512586126944176119501910435049295273646421256781668132589357049854622392490211246082087197772471213958845737320792922614611408250237768634018920022056994149552039554551772611543726457766162971155355947530113126959361851433722255180634557284792111321262109054725474223911027174613102124641584127623772781340347603551241305315425147005533968777654654013078544854838998896557325011097943706129267571822026086183535571582293967772827361330016009016907610214348947074693983321383507230612035808017608351281587412634732981192795487554738928493916458553984924285470490744975141373829315458639638492362945695323982618980441535543049187091168930153492712517941834111801835625999740301014443811434779523470771646652240316549021850608290512147680385615995414504869117494125077308083215533263767649266052935825502926372927875072281179944980887862197185188108806366771125456746809497106784027876042623299084759487394108559142510373945040575920262035814264393058773266834411719513182678204589798624714333481006945271684117281027480808874699607489331643426417293132786956322983135102812894136020950091520943978855790521620399354069679991796385404304665309008069681789232773240750590853836885179642609576755532510329333421460004598369363822994485040011781010431115686710986966689004020389083725039598662244593790383272933148545741989137873538403826220916883220545657304026083147589740626460814161143214834449221660678474110965406750406234705466503179890899027495498330158206893188646725864545772668467754898062577204904714810787832966388068632901575348167857864579198126625792274388207427959235569721887447081367915286380925440191893299671501925632549101396030623960275695909940163945277573141567114157764438576327925530415400810321328465274798453783969159339015958344076127301983746971440113623165986167506524855411180285132531607050922625223921127778497488813954324999454487403972272445601949305091803048520162178837779361310875253880163981514893366855345424537463374721859449342866468180532533169976580444496532418899696238872510061583432153159101017373275445409370439522625827352203428462156690577697542577723384465567164193726206685667494652421428361910794241127367790410946993680006621836746961669775697767070341289884135335077773303073925226044013919437911905655062164289311735091212969780747989206092867747401638979266940232463382848557554387610013409732912555454661703793150745980710210043155733587639826263095172582592188164384221002665031444460726217121912884203189325988446698421635983365816496325078445179364088215490212761597149910261931432578166222314786314981175090653324816238998651682987994285521126694189968740227103169236436014979737816052108607521281535872573019053762998448142134226869098978028986368554445241908289482742134632835130978292920257519810391466376183269501253056279404408817662516107893072957658492934644919914309163209913122867067715484966758062947617145058885127689933762428105433687218594822242113380438489971231230924048829513202107510386158043289689269421662098554630735148046483726314805641266205221238726020790829260662360198708465778447355681732975473363711589096329873572215751507232361602416424406162428847108143100110620361920677356194964945670642877113083098395523041998763237765756770327243769515451916793824135582641424547219229112864559524917184149648349999519745026996587193618860136603058588332821105048258570218555859746912797848860874042312746030772447729805673632400964885132483082995072072959303419253476279170009204324728914455257596721972755750682439440095070364964410474687776079869392086437656204234803882875600059227725481500866842023593701771535857127430518059817356522933784168761477152599689117642581544538499150248816155083493426600505578029124191613262092711132234421576246872893287662921443863965968822973067238672000103829513355927227527094140548665639489459438149963302824986498724844439911858848593844671495944241139982261005960870440973479041237638248933471495421952660779961650462019616357902441525340911230926731572272878947448853647434699156019022338109324545559057976949062802927191589175831664896013752335599990354051251808439399209922845113415865770985672047094684311061019454591157466316235963604748959822747281868163802669472665394062356174197496905766866459919433439249925368231214460602134956166848085582268098042429534856151272459258291490034544664224560854611922706690179237015591578426329485652582857803123870499711789204973684936545457327482768313910636323566718776327423724777005435272054958233502086895305751491134567699863451072559408536685163768334238926437237481802494035892449053901367118316041862110864087530702145776528878694534307203312039567671654650379466937993176438002938996105003067002674933252371737969354209166361307353552337934992579308757503883958834439579205227149278618483017566166049148458850436205733959597592009377110218239641308662318487083564310489530866772549179669961761231738931742634469470221021820027232341841945658515492248785685853697039695690286731151402818556812536920263372339807185770049204457849825799252226559333485774837521888019285069993025980568024765782906595711491629423404758873751808097436943722158459015539655397172333767910074823095865115037799797805291867022286574319123099945951869846131566160148289418433333539973512513683200359833961491791973028328454974775069640505998532303816207167652464486947676434372294126664829699035747201948960517433796471304081087478272534964097178295819053814048639426103069748811672379623213196358767254968050083255075246445806212793872887460149330731100082187047374644382890879044045636240220753922391456439264365605730077228598356106602252504341492277593119049238810850348580840377530002350228735974071880520521642154592514717996589473552830844045438778716836988155462651170643652607544565309137977418654345073860856352871539240819474699030996595546510798121359317738683789678585101078121922041354077086579437731568566768904851593839366091372364767338217767534515900450257310989045670296231589510809826775391997631996575941660566966714004333747324329944558195334045867559972733356595567219501251705967379424897170150566311788759605450320073383101154891429781881148857082227091217092958511834515403610294760668289049300044085703747240532528773551060193781624938069810939426281559008245588532516741462978168566595455019414559626662731559122156666499094364177277268312617501837447926407197205283147907448892341309187190956537744868401744974140813934567034739981190016425135568813709358584392788645464850591414228923375851701363721417080078286461726496868271568932945207614372001150224466489096060319466447862329573607605316351635052319225373651211893107089356121250746863934766331853666254116697231254589559549659779180486277864514837780318023626017799138983361912849061498188936652431513481099590224528557099199096713456378104825101240622489443460415843692270593339736940555805092697798216827418503908584633106697698815316971472062665014298583144585947578803881714019281361383768073073273572279254672229928359744530514122036435919776412104711369576442582798498086015850640846616816410754245456467084511088250285897912264306836504561720587547170376601008178038480701588485635641066116784399628085876938905871816435157425214547845051901167252445486326944035827799613974242683891210285591986054762671843809729433015125498672003226168568991736455885650100433745341558074252345294769039897307768679415998943815568658276519320343240808856865416133492234889568611303149163956248970763991034278299830748729373025766321640698775106195388932103540675428096953393792254656962851371543882518570590394370991123101510887810128672288078863838537228288948105631271229574477135966778793711016994618460517346871331293355142109806700040155586843029704726933443351808055528274470482634684948270336923619551845594591468169330447407051547935828000212846825861157273444879067355358515411912224689226317311069335841808312041754980403039938429354976655056313674823403422303963947277963638042754580902974490091799437672525922298830045807993872515391774776898135474640214109389533277657522834262554558690551651570780998844188998212034421184282175310172951996431370298248970055406305190857705953462846904402468405171884135171295133615001666840623671256464392969552415399528177446194590545417200943243596514925783843188315165923423143465461361467943556034664085277804150742535275954315846567306233251680435607683614671069220904229086728053979792418437993117165572382606772496403300145854341990257900545191915891591736648934500036080515545473648460928817659442170107836638378638787254363345374281879204197813755657017254990033447434688275827585028475210033863347028598129282419510087935881255129030852462204358911291405958534846681188529078789432335323274654982434060772856308514173952517108460430431322511755861640835879933625066347459504881620475662943098092313654125453130847255442155955937579432972551874416457310320905123863151386916722414934782275344607786044319857190659135250557833219301461579405446195264141657145214369777908798088663609355860548335727591913792047557851538484403090225174847472106183524424288390086165947100882714858819146812438072520374104710796039597828443315606083757753184921369661302146826567937492287520262415464646984657727401960637616241483135874306072996603999219773220178255372884309439423826794803498333216123176215560421637662460184797307814866720871849117120676163615906314726895890975688484930783851108430926935978713881542467754356491836088126135665920194920563484045419873758199384996054573488122846477940677926745294467039470532666487124185242135651394115384904006084678084698842975592841730909357348607759778215275971533175841631441681895364156193930663998358909793863504860869460819272893095107597875468595687164551334778632686932317672708110197783204000151294121247820753765791242803640042184982796157509336083119273345792528481077957155917045167843268511024655345599650563132049708682070664746322949535985780909648740971498079141070050415345331327836508534897725195958097228304293952021638233199565123755755001232619644212938318755899199158819796220295156656135817530358379791168965432061885974159993385473677640675675783313297982202772485111768723629811901799099890742287610114789810574187078589146115526521032026745824165567989856686369975930227332048770123179546198065862491785938420257359789467988181832042067672745714508879889170126835804302648486687757179189309506423558446868659770157769202571176118673636691287505300877200814511022363959231631826191517182198301204863330449213800717244797776505652333829538044124207677360150179132685107982399674354352412445784348506873487237805822619079716332816144402387723162042011949902644792006395595576643148537100183929593950964067681448600797161707571813087924738352573578261467894483547589342494619404765135756828215729780957563232676194431647369251637616216247683132006671375162002892273392537449457579476546356869982371206429138114045262861457908633651044895572825449108962260743462505533255351000045080938565837584241483708827048230888056810464625233078483668640987092856351406193425096626912588147779438774365855706217898736604875181681794131474507753860803033916557652427936090673862568222075577068316442226646110375995597812625826213645207740653643657671831075780651343042697660341229030353560870385247740909542472470691251718174822646578065681648961079313025555231253079300001964647932071208844250130873416522915659194901031677886279492553280710008933059378479829819645278557781939204572703419359456558708277049858285456886579921419402607950734056558591737924011440968233014045715219162641987551420438800964660141265084078901387219051044149840253847021320978324505244656672302288170097239037583828681123525621047553277148098960624682458314127431896462012817336764463083978007414505963022731424911940621492790695888608246390879012819989280150336443160193009361035874394620520133750588543798395788604882320925076784369292675430432040599273613315987222814937167008869296536899652811560164584561905386276385201696705038471872183855817357469662481954743672967197526502293975705748202185349982793391458199483586955575969419810285607211703094263366850713749601716895546328507483118875056149697757119366500944452060488351796172760340037215412761749604824460355443068829375563379829655536311152780315348969021183834963782450273616153655680686718854623230272820700306864808095098903423402391154907385867402089516813007206903333433501836883417564837389071569416810220359358977190439188142041133033859420183904075558218956267040776385155676809312705973007705938220084430273222580308707901019217037869015988769658137099280778683061499620234059857590873625070453663303087327308974389586260322319753319989940100810526851440314868713424249000516545011036325355520521335061753378316662261106790314760619037972639318511738281677736787989562724865479467394640286012770757585347837228111576452260798070491309175960711667781075080640810487845450178204787175778173669441688902966599309702668157526106469696240085142638747309744815219976668736023074678199666774462028582367709484287530489790398424851566290014129151258005890138941959151746760639062043162492334398053150815452190053278002157380879367846435830340761159126854424036524267671209374733038229891734275317191153915834894231672490400600356199348945238460143430880970914761879186004701305799483713256426782816328826036880878124565718995788325749548013779545464636454213106895779235652267182262343055227935715187177264602654361060688504849021058968245559613672616164458557945375188465902030246076271721544004297771355302544655530778067058674085987141384132556900373645657398526216338655170125804148085928164899336864304064026996619009790009991117889778583226286801899950285637516315363022580470563721608920796981761335363734408689528292579752564832857707297407512113608899683209774260930487635965957116702667883928299011457123182062983376574018980249482747518168292064029715528061978650741602299442596679416620523113448628926544439421248834935261946154726574441681826591179450468442381375395057257170152837468822497211994062053771861797786965071826427454704613566966096087676166132138017931645720998421318252005857172576499266104547323468066448673749449914765952627543052310209988098168233087613707974740827151840755560739141571128295363576561666930498664199932615431703690307835429814279476026221159313319632498243214600128099698785635488184599668459263515027843789772404383060983893629285033056223728450477546227824152905961986367683527082921557121636019368411916566561728572600630428694842911317971493964784096035747625356034140352589571396302414463797981147491045315910921221816624620815775882920951706250764729359904962410928496355390015301174033719491160623476481185331284949941334666961838171775074212276903398366857626198342881584673110735751780669338179053941645003352649663805973158405385052874832730926414611191351384919391233634932740841309009860953089144643058554307239038585676212369493105680227883598092319696918503526475516824143084455390975903822010632574453047732746272984543189933748689633599604544138880946803696871752519329844887067405481680834957209251057050373762242094574296406564663009876661421341385407201581647768080152908254766394011617196395063686870101195032925646860581884735075855442166635303581741093871129349890955410583119570796825837333875471994860590927616302540300685391172536736807868441459770200756879204688066328493359161054572165977459424895827463935034842937757997857606109017507466180150741987735699236644790060400474915895723241265715497688966129721968858367634545985767307110213757500217381206224255078349341453376079683517160543795496179828780413888374568008843168397147963657609155470038531598361291852438615144558765633891479949862167527863896888999006837804272064510768391052055599249684611100551730289616760250973554994642322022825483651667858639009207331965306015912527006127345152001548811893365876886153111980893931397955075193002639202585373567454517030418844018690346983407418890468178778556720403605273658267958493408170011678674063014480398350601182593768004205747401240987808632312790150649379922225998852856673748451893650717332181270801844010785800119446348119897406140061319276792460389933123065990841957325725754945222604553332879239284403001453675226805148726699083470041060360700890252548937656445771500736275310851443987174664499106508636717139164427410148022460211373370939167150691725145417601796557158870784258322724518957566998256442418697478043235028617637674534112192785476386994657957734712101580183061632639376583417364133048569592195690931881388445403301189295034178360348829724286883285250762395022286356897550411646131775341687717907219132877489614305314678630620323040579615363946914858729746668095696903029532566126204944613701086172384881211523733397467066877504409717788579569036511929219720691760335431630101004565484776794433065179981206158410244145839638172417817012782549889275137169652110775493433611297986738722578467194585224378877740503002200216541045079273360921379899717317777464069249185875069109875591608884506873392351286731654776273537626373969433951539430742324512231710832727135711064590326038635263626695181900177791813038388896064395733366357028703936655404918388643019424730482570947443796531349387258087907922019694136997426077818024150040557228034516918428030719636409925675629969931756476925487100138524777484752338780724243567863600007971641353342924749792570585427151254996485796549286845892632465162923942437495006065712175588957644147053196216783561438554686733588140005721487245907255626161914133361717759337072135298548352176922886971445236562918870162736700431567020737296252171825948262651368277189299874550605732384051771050489698841296140557164161694356617637798013346084489734818169754921449351408286913461260635672138020319189874081147840668420772089511441125877950831502035889726038392774966440271092870045787728766141011569694991905350490114679517891879995391889017863418369516429120073480559953550124589170606565540725025094075983943498726465183043561490296261067697077913689313554974789246117892034611487306431142597300683241174717618833162045518151326563276401847075079266614832001906213100656321070420918503563324667025043572370668277577501177180230786112436918255157851688311184437513640947647410214231437972091410900113114972491665801247651937963347340868089667117122961704638152850480319429801644554886384934728642560039470758385898957144440074765678052859562669795826602356424220932574487695990204825252004338707098357441126842762531146817016260446463153713979433254241876317942926722160385586979201533783437802645232133987711336697981699849465157034042561394436255595766656690678670369313192181890440143400956242651130905371332698651646899142349890252205741651002243224943103382272465965417839785720003773892634838409095936423650168763906324028264313043102718435835081031905549724471766073952297438165510600541908257146832747414260783247415967745165567095712917385975993632536764641969446617362559952157818465578989738551546725176934907195172804090227698839480264329541099666355263656707636147724638028108519767120100230227101120744576658348844091849695934805139392298854852403061331815006438738770284218399025688196477831860599891649944297484159987271014968331012228453376307396544121191254156649160387287565051947266577269635345201663558309458751431192561954354372529560198231756397811861949917007806494426548081816920080618618915108968864614428672893046255727312798884936382167265808524229988342091194083352932425822490389629874414045215193184941772087446662066426683580222314918390409649231634956819780104964234374844524774228571013900841592515559682212417682907683080245443601117571308568472699768052537698398963940724826015603987533596913266942996654796211846502807300878262199085998655538291559754968616777278299388245893239203361968005090613929439297282249499691667427514291138926765813963202392009324903372326284604745746192902667728230460791842783546376856428396267458115624462350870178432229431505980100448800417234425632393717623608309254155980827790956246263534713873188558526556266649799859836445824745535277080559198535977459522876328387073343876995914143854315995738075073364387189147332542415135506041205815666125039541091975665230145430347728780079261593090675029934117929861333992908362853407456574014853713055826915992335605681550530474214500106501969213434636044975290276455479906285911178374634558709441447926185503197416119141891898075069999176987125780715323671050023476304307157115620038397716597975503125322695965195164623960534685069869258844585587975910120448230324256507165387345800441261425857119047194386425270378281697588835242323513921949933549443025016999211651582918409605605159477225876705900804483678236032962525673266808406907299146636223882117881986608023017576501710742836582522850686098655024156062011693452736298293480815824504768461716696753036064797839599609007138055535345335636431163689363606483757477626842554878824857034360043939058919636108998282627850036983937758030597769791252877828668732054375730282080613957444662187471206391269754927309365774776668428768120418221355569958502707000439568467638599652788044468770153593670678285184228145707706260201310206225495290413442015676017227856479490641742772372643231852893740734683170758703398930264789458381363921046259875389438970970337853400344718288241452127093517931727931863268565979537929028741505431325883635431617702853899306556527835786999147113155476814539026988352567372619341524365966307195541621693453896553190403620334907444944579059066635900720460830977014413321975969531177877162957067810157710723618979779171751409201144359259021221308888618118513055420200659175573557370888227303567422907216440129747677309308526603763625272160873398157293501607190930347727717218742924289328481217969800492430961257649708692381626988668860491341957223197275908295933638301384093996066843368529459478146471020728442327723312875222887335710676566967363953205633831194613668293176579507053736507154743102474689921372942035521910302425953903846575036729346394117462774113633818849965657637374153495942592147792435435109319786377450734479344698983293575815426550937261522727536192501491803882290353955903796056457646850866718625375501596206850505271573272744094893909867966088432689747038756888671387781542274366066365023422515957996903984351290424052671522391162408769760113182718425561475540356611878216499149725857251563768856462505316895514927043943356631459322217216986409269358189522140822678422632052338365817812115052373315997491815133198535574255334440144648864687359933286904927076378875911186784153893329257671874718885572755262100762129234463152757856157435706708630083559287085159624232507710946520288336852330657651950022674391588415766347627206456588514545852249589293514281676779016317334950817220689922168246572532746765605642321636195359657381032274097281869915854809581193795425583991192124442610191418844343244280413900337479273077597471503091544716292211321935963217431283512592872057709765914693332029174748509578787200645684374385183315183354314846777044311063338831548139257090963886711060852448570279701133931689285735711761958093353350373316417780255925116106019877979234246208434550952824517642779790021785033446319862954788486226962012989950570177789275839739853421947497007124961695822185876385922400851124838701100388399575900088018532524090702831329401179874879469218765154602058677284001195597559669743822304113042240024249776399895927351447400658451934419380019227749176391608647949240372681381075395456493954515331240950236062314056122686809381006607233056059682227686016821330675718260504024690060652147379218321851386658703537778738515068046766842071118012393454074378597747016616820454286783416861619531600774951216968729260150935171741108312974830837375744423220307977160877667003120994607480844832421175442462529938420722401635432391153976664872030775764504167963602029238639233871921974106777791954670101774124215768834077435154019265976892200659517707277566492853339495071993060034881862264781264105352850716721179128432345062979701531695974710632689533311909026169390507879078493632417318377816080834809078141197749417392923618079374456858016668697259937617728751095425697235901980684442827380357716650669015391114941080064543262861853512676556223853932166495437706257106314695178901737634954423395012425297646753763581309406778136045241148213954226732808646857529388570549491879305791396726709548911847020366014522238906864367936049216815852571454330680507896944431871460779435134967849693304687735745818490382830045642470654260876220480075711984190971754197027674362926089234811723024019553368452789063435040568396133607849303261796597132947473149229013378299833525122685212671355646647519114992256170285007172799848397414713243044997150408967619751859426329156635054735461444801101899492623758867853847986561887908774390289092627611368371207091982995828206696373110101783391904266401238928977244113149170001711446844993906851263048297012666533854022017106931334156033378721640265659293435570058181490002364434328148735773885744256768339437624619580603568009868819076378713439677479762126168216779877732811863014356633739729827371108178650065052959373660107774552270827482704571297258613775203847509506934428817333621987296282620274259614057992061725153563025659829511614397618702351956895496260001319205390735016397423231864457706946035541916425933188972246074670562511884120232645826428852136747950166623905538905720565044711819141546388706878856980395231891651022822036812143527105107227213950615311323550124595383370864369611547330714895917335841613433987414383515179275828480060871540642605654343669421611320642008545900468588012371700352660911602215405871243725195089652280929548009990234434300260329570326403376450107660535216808662457994339934268434945627677276042554791667245027395763849803170613415388568509296550041879590349178286919631975237639406388777353893324191863413523904299078780784694088642743293614121794980339967770079755646747300528259712444736629352153289289672994697915348183129441765124561031867070467929353446369168289589481783031532985113508201990708712080463041351458210277943304302463888637443532011318924119056235630404223163159444785939930763022997411225417617516747449259080114021227151100235581684725399964316277662952206725392922089646341656449413511675186133280820872184714270219850164355474223001074742405335056427105638146463757951403375673538664078654446893242465559579568557472311529847576033570894311380307752401691517752446294477233616986762104889141908864434831742524153699753845377878843558474705778473317280256242565012082636383231215597276075504681000393083442099465453598938782965702022951993451112637840822700222851171577566982574417163910772347797408113291217454129183776654645358653917790835557672114370737222988537566820950621174821847403174546380332652041537873563994634984685499015306422922432957773917527487949008892680044491836117621234486026618313785861790887278247299568019320788549786391113733515040332797776230827573784482060743210742297924587840305377989057592633412350264166343987545025084144421103910197978673296532190184985189802981536927929372843405603571342989132726239160159277511960275649667066850972209352149641199068613864461206612316522515867005018823294401236219307998893181925284073436492503688219147750024119397788860037138504196386126727577914846073892557005893218550790653293186979642655053484325633573042865109783519648300701271796255682118156547241050434955036461504103528027006351600924988384755890366648837432157273853461189030672181405181682570378270443571289567084846025092366763508923048105935039104303369609670914287281482843622769757520971903482832025724467214583746495108632505510340987830127658397870449650866443901519148436691415780854819327575096408271774203112485548221724338100584224258762507534890727417667419026939781470234976859031788882321945055182019985314606370341525051327747504014062092730823196955493473144418395057733713311881105277149944208030327710754715420361737548118306579745901570244055242083044161313607633289757167137303409906739762843755183833126391279018865478318846772884148283410656579819421648244916067616634558492757174053053827001656974807225235095600472741058577553426243176391137215825306501757528509591031871602406629284772304658346212322629576237868894579691921892818450084653675741291333887706885736809617987177038655507230432425984246125273996047975426998843579093079961036930620264888496446627997878259068975638229280265207801923883567990912921768296079227130230772695876956642271791737419920318731831424922427974419032800731755331590142132986762703690131814354624516097583289173356869542119015263663863764084500104270053621377995696637974901964600687044608164584299031739881223670982952173604803882881418812880233550713977253931770353959172241862918087105377095312681238025525839067357133107132443330615042742080407425129435325985290086328301559592687658935858982109765799021317924158137963455298223967626556338999401268919131126141570868652790131725898520569622530080439443705338621493960266170975792413789524579475909593824083963501720761027472183400898674520338784338516374706796291376608584353919012854197447019022955378242462662747506858629921990240935742887703994639177058869654270793532925202154236061815998767537896599704855510478503929072090725631294168035429415898314966960917537043885311460180721719334291198903653561933002089300603912434856035068347709694639029391398708687306249844300554660152881638840518598390947128440673749685245136224677211566549924573723803394077060529874150957300354723304257923400684951176021536411347732671511158438531218098772254739147378124725960223109837185414584130739913039451619833856099077917597974664381754423698327191900980528267812200465361502010418326133469641490895193731784222509132628030427143896462150036487603533612116165067240051740388300392914182907258758037539127959561106109504978018096501937005361186583932877930470293774982580344107313918010611285325159426896345492117327681583507191454830980379241360216330448706339336567707896964187103850183262778430861490793553455738218891940594397916363181898925240609045461437863590706258902835494960261180342303263926684098759859840470385089238610667465236253441519561358016411991859392833441243680195705981364882194086133398123737057633067173530959665600989581767648088823907031258651218610941004693385507674057009407980724115581564432382509772140975714267048908137495267937102356879051367783352015089802460580000609506332535217050997754612569488912856797673856852398989980276979226662732094345290722724486641624512956342675027486414005219463849661937658279014552626086983333215206777199877995151623388998260702480592438046269517682148289734176256975408327167554153083526264317700535400981142464255434886700857521767994318423439094870853349770851450944172411554149014247751000982159989867844922275134238426080100074267471569587195356722335271944260126144179418487326547478525358622271836547086811102621019209096391129749860513701831762734034975787437786676874543792997514350040399487959135022087047326380082904052716036865385002659699830028557701413049668285281093837586622702630649487488295716237369039721933535805955535404846058297198614988335357446039799598375322405679103564622080659358198351171062074415081229447115091599472700856335046822523487645619961365571864714823455634708407413825390277358665003094293382989367518631915919632069581605591262641088413698127674784272519825531034396447508050916748813324700288548728843614243171619354796223762460047041764154646871192785570561017341280794787492336809599664620442004923546436778183004037336634726973487724969101097382358891468466297878411643374841044365989098393796397092765126897361739253909848965811709113833256067925695647456091748948385358349354386161275663313683795494700804280198850730161813084361544443462595215161491121508967907000380242726456257113809165487058790161072650502955568349024614013451057893757548452288664971098025042224994286551739357909218659926944583755322104583594665446125748495810332538315386645743996220936219675606629196444086991504317566909995271526516745317962844449173152473707407096894849473749546823253993552976544174800450723530566865405987093912162899345112620349035409103225402065312231808340781298887320406575959454041110975821111212270756529839516817934843894570324366282731755861799913295615041609141851963592957699425333813372853665291469511988024324378079611084485103268576690767619891666452376181976300274614782679692934954595729111805893662481828604424768656569942761656536747352862691281444199008050887546949264452150298312754661943684002958248657542651901708612607644034824595271816132249697824683187533562303107989351954156097562130185438415154096729081673282872043317616961915201896984302665548711364426012886300779349005176384304063990808238153677405083114105979572088817778933476816401662688994940734562772628898091662920430754701311026879700366310794672671710351981096279744092951084460749370212427354955737308615612915219882206805463443676714813125032773755790234755618765588136788684585649472809653424980504945345007515647059297716992130854741932923706476711715416699740982816667559385381318134295211277116417106871626383039490917427389583129106261388619622977768462302843141070958146644385906648209257990654581436041081105440650047656591253646066179198041738343611027218770310037071424439151679355840422681977527641753268941844719202929513521391810606144114506513248669815363241873634473347514223960301768926847728236256116051109061096605357908826358229030405418472897872819741237287246484502144331726279143643957596400568856945306836769115605460336261619177417568568389589453923403864006533085237129390835930598889337233019681192216057937225337302335735355452384480095456379317189813404983307203255228212132604555799127501424551921948521339642670250627317697355756287913421318361729439884625232859012796159270632112089178961520830861466631227255791053273670777036040160225641470419539419674875071414240106795799181644517861340720686892572948914122550714638653829390790854969700805229772004814125072994011090900981590742802502837674184022038822742528305566431304816567219891636385511728612893710105487330809670952938080820267556882035932415992164030054725603382696503199559069357978601915544952558960119530714860621357439546792696837000927235357832879432303245714164644884126789586942141214982895943437996893214686225980653135629156769071283997521745549633184978553291774399895373497946265612001798324765004779301148538871204239743990408807911463588978733728626014320449321110577587399275209640239111951041641144613336538331829224328814481917414848027459332245141689972677311305558537941564122497827606270217350736083686222295145315407077113043467946126789429736742504386612861768578041995812498350920002495516548659427860610891076365994472773464733379820160774520827861048875902335296980723492948531023846421768491331729887636997956026888754637366460442132292440190294371773522298436713817429887250834053213345706754797164493438797827228717545256804390252559523972723080283770846061824608932199747870573451331709442063508155312346714513779222251134688998815637758126004123587749706308884602344642161229950783794443010678745068235106733098572897644814294817715280737750983489631360910082042254977846904158078435160408827032121681967058103268423731577937096894970440615130053034097105734249346248926253381661267034338687575910453690887560792490378044591450446707551162555333407568239970377449357940740118282622175153302019029896942654344845463373128381351868820896879827790748371073469874791953564389902231146283270567417507490817739964257595582270138376758015066113364723404318905702679083972786087240959781323051625030131115723002125449595933147373578923316082364908556386584913524622085882630082017810228782907608492549018997300733704407598279618374040284314399337184572742534874604786701072296779195519589269700354091264543702888717782724921031219451192101398416172290023919130802242250383834484154143821659069371096198396156082726620248443068214013049573618394942095599381658352152417218702746313588633863273657998997091886767867432567517442082021093187093355395671880080562185171006354254123733962867602526984529121767627935267588167688480739325857628162490739881227210504992079860643421010457803008318926808657998603778924850265282766122549358329041668511879575515943895341966768613578128046549536146769147553575044694440389119969812542541344603728766445298477260912712791373334449939551352607430907967512357047146262832110754387154302221863303771822540441268321387532884530820203104516485164647130294064624976321825644749617775517798718697954501400685215692343924135779202359467765413861208909308261150180141443608596921842176769580523685682110803270164826109871852419820458762815138085863908695054951088365911580378322871028799173358128003905161746561512114744183029357180813981680542101520765095403491320753839652734634623024032914449844922821006508041902657621804636042966083741651109800294619077162238044576744042859504837296869007167972674868838351273931317491375310908907234375252121481435641006656130129607243683179210236516956143603850099047072110049720285557467119376700158035049894948187856459991549468431094492716724340754141784525532718836882421064622765128611022064284981423365931705510308978703180445724735400159948776044539209803185262743348916889747509911373088943911105812475644697861674431936302829275978822457965331710780324281058117229501508061927244982068257283201165551666120264274473923600097339664477804280585620673049655535554250343088760911941871393757054597000407419610660178521107834619009619091089857500429848352187140033417033689342745877027725047433539246998356535279773511703900424728235417158134709101914046981995881334493265632821230983032252353752484466759288517159770983896007520560143009314125754122576595871857231540360239029917089058983670855179312616072311922217391887196250506701986478092522229907842121468073756318070057124714247677201851159701105547373727196762928599752889852756165045562888323311716806588061838742313876864068590813607130749250579958341238568895759100726047305630337042681700877696952481165418720679400107628005889503327690993529018145027776280625857573193788085300659504112410732823766357986089230269154975011009939872617333345194108993812729396185959822305012644074520185090572214062609271918232624019715190238204309721566472211207199407835131219827751059761963347755848200337270979029095995430885419644501596048839263991327106079936444122143662444800470370710882616086254785484788552520780326921230973040860313513260146648895608212755309619125960223957779153915202534384988676347688240626954029743445036738066427225462192277082884917225210942331062816845240396709230803581643272193249604249118127960547087269515466752879381255195905972658495128963250598463505776835620470152523015186744840271334921563026366611226377242193780976226551733619208765464019876676355527018819850887554177030212578662482860108339309002310375398846143501012257002155269647518545826328194102752745840867396883268713579767429958291965706073632980887408391756536617118241024422502883570722116257661397883797791627213663990419909634183426116168276121005380159733697792155473770346690617725908265834750741755347067354939722489548393581261826235564726391821038963496975641769932438425101298250584910435391828110285310582367232619838746976486348935000203157458150948723856954191518130193909027163497526454675574330730741180237059285059909757305722822465226318822253240364688653688151651260365715567576415105908796281913038360633093730008643924706840302641621452223438487949373106743603569062113458007107054725275595551331210460133702427482208555122612573721513946192447728372960140259702977736371086206211378801372857984000403003244030593504416262065863887474116390341917371085316670020737541092779156656476894730783607157879279647525528903642548853535983892131668846847635949308967497270913642255779116757572785438915478134897504396142447404430131459737659161977325958515080587565310239864812467706397568649887701383608824980862589112751145125230058168077942321600582840276993768127451763881820547535759036635004482145806677127031951623889356453582540036006426513079648282232840021089486871544286657772771269446211127027660697049550344837660474361724964898586622912313783846405206332692907692452505786297836663993573641629991500548692829225892257286426705344934627111819092725690145524245341931426578243285726521158505524675064303040994695730731256617493993353188949446214296601341030604043278689244635841924985316359012213200198171183571674670604935596658572857516993469289164573053654321859891046139044900730162439631094311598033349633466066051211761161326192765473429503022446886153290845813372090955649677126796184484337963466589965704089465036173820414031587419365574500567793769103372170710738676818635016600374472175795532278753195659337971469965968310469629347693918470331985199946833818466062590585725590160566727420992156019260207295969236538977538839587695332702956710352034661132670501352022639162385491251942077160532913180671146951585823529328905422907559498823542471260332299777313141728834759973312699919174494014678037276992179150326137899864104716949192667225518681784971056432751010769310562665056256479975895823539616951731992770551922274050022233261484954841649142595977368698069561691735705437903008420833959834765104563041763236110861919867487262095153513820541868382081230839986202971114639049987164087646610970350322219352564581823078090192580949742295011438196468949747152194788955134072193078827700513178434243030301293526557697886754378417042065931135027786816373344307353365181128214090137932915801816154000724933710960197380749910595199584952286455634299132257475177117621594720162471734185850451832230766466397430893108835178760452526441252931595418585468764358616113318096982866566044105556279361870529856787484863175698005165876822080177743860669926116980880848119124592552883520353281599166781669681084216331355932089979228498334153923449032249332834998629133153807596704279546246588144546686138240930888961679940488085868971250772166143740321789601535482630247368974359798759769165619900225579873140000636467261752914441240135948800642815855268673836921151841516648053847950701387299509728408450196430361633150367883287642668797105116896769419768941742874031045638094452073462991238512614299732231218946801803099571796088640288918306128658507445794750321547850080943330657033943554505404643704041277531797823983437436361339805273378087030484210392683035649993566061796355935496190069139247540590825575283233708337691431358895702355326374316327921998418021401737678351669979977214944329856914379185479328878775882997540557696461977991739106726370292711385395755954713396709409643252700785678416959863275611758281661403559530286200608900592023013746149841041678273526744111731162829797553212041148321784720907431341311844036553764819679807305634773580772586916507012952231814962008188175992916733291742142608838857723572719297586759453475592765445071151354989936862912599896016969609899856655889053697560320652471824585255413579896574063259954676417735932214961708756932297329791121115793639029473673506504089082739997485217667088994221560736883015071328797708873201466491998599908023424053378276496645252851926276843108275660084750163712355984631637416977692970658655846737530597767023752055946811411454364368167118671692850165422436543403293540417700521349252619057747958236780864627975816927656322950329047504852456116448096167060884683609280076004882480922817797895474462130203819898882482212775352557257698012984851382536681363468258125279373039502231511465833718087506782185198552042046098556953061753524744690279193952812469806908210911150993667735927500482031984274813832323689369216188154343232520422024312636428743848851357521644993679131746861417391701154532688127649401328344926818716800051279746090096571223397773891475015411841304186397182105002728055210214703342627059738795345509257505060145080137924449737828768038270877630351237659772398283073207858360791987165751684073015668547587846806615403438259256463625216910756965505617318452327244772708617846603881581003147681532494060629414880472451517012234395048757580150322975924396474692750164366430703829147256114625832340329161937726294819290528206246656556749221338852713382270562672424017799346989285011927399046779538764460089425685984366093372240364977566084493003114929009317540169680827583412449621836194051782658719817146682894180623439331561601304808956749175975703581592488893661871772956832280222863103740652185764464290610610836285979728554083320892223087043757430874680520860600823811966013505826610106293293584581281358559206497826356213322222657856116724593604444335934951644724863884216386073790912190790525612383795225349282341349670050400439551901516234044311829497297287847901725432144626625857662949786134287216965402230487163825117624193589726669442966449199692132491265252250635950339346505508892630329766182746330276530593072717593734207223164387225863043697618481560935417984418838188554386192610448932445281453677542722060180724194560748216485054266865334581846278646084347777846245382945962955480230781746092339559235606953794766462074679679903514282089046872760740398220717262973675737155689723626481631361077435986105159952389754729923378530218699571651041170424621253782716034831738432138864827911136984789267911932429783313568758574224112570231140360871625474331478158164990907692038677799928823506272032005876426622430552059568243949416929406323560068694796072162651067269409630167429689514326954156313674328718738769523192565219291738060978017740452095943069710107876625478769648320240462240185935712060695483381593364054470529982306870621194597825938588777906981841392381820535878998343161775267745174112138160047582057786758714402812419077169770668558238274327805903582840005651410002860143053587657916471859102067479887376022917696820058133045503886809235469849434876021247922960238307981703715142326752774437183588247883408126902161002743339467546920625752897663404416193653467277422475982529131714234341276013932764364798632038483059156966013650173801185157539864781965671827390261929039116589388451681259883846153571418569489526090104930905154846741339128107464852461964722805597056861200931765247374541600774887003732063265878230656841345678051236676832096179450817406702228106795682575609533158472355593809173173054598059858239315272316354038668728885522758277753274978118456777766978643565188144500845064195495485498219518301439655928704941704535855274434079007703681570532612916612479707996101302209934237932782317300097141906870380441952982637285996111269890974238639664410947771160816317658237151599633847310996611617063193296915866023969659726177053910496691379004667248650883277764909657263245961054317500297790787222325363905934370188014056338921926420205631989234798645262449269519965213685781956214766761493638308404250969980668797730412850640247383948821899002109616887017680589165108724450757275061669956841894927779496449611664643382411488793472143173814702445651239035895254896275860812098465436784016375825271112496426733340362203833553230620413184607262644196458813148376801233310505714845888587127064847400322091749826117747825014383422583890668371701100219819418359906337409920731549873714047646888153014955849106525170043086917942334661038096315983389524068801450177586066801605121875275539579446666725198466106882410661691848723897041571170699492167453832157852641926287925436145521672006851831785512207040375521327005304324878444326715079125690594970552649315418756705931374674738411129424618673395079046123208307189705486040176411998869827860197515748810085232511887690747941769157505787700354848358358589950828024907143935427048974897442777134169226815676561239839564873700782550408343344074758221717372597037215641418260773484382170280217895918342470923182527942707113623192094286879677603678416579487926928670299642370708039872851039430224963087400448933274124629520516158278418198608184547884107458874526084284268158172338041128814860781016301186103616242323261009994931462826559178942416562679138072870205638854679048443069569510592516126643800615205561757007055377758671756158762748191903629037248156519612220948547623633762202873239894348468158033512206701350191112582048682167527832109265533329971163198306650788950120566160188966817369712790227679760277945466174051352128742939609582979796653298930460403656078069348269135169460050410204398146750782852368152690227265982201247088988135757135745985934481337503357157346899536373325390250623120378317992028862055315395417575212800820049469637064342726205901483133643708714482856612195136758548140936923195725730383293785307307298279220900821689659975654193499897213899394567575282061221764385554752857269808036043901236251144031406234710458191053165297905760079041490677724411114737328214378887878722628432795265655657206105409624770791531396065996575815387237107998182346453050474370765530189980054101899285738948227917470367301467555278192369171437255841238260832807179177840366798940279445810446646907789439422697013343020127685233601447347428047202856225893648283471378861646108306476717817470459438910412593467125058654261841783322644852003063582300135097500919325597478029174982790909116801999965198009343146180063085770197182994312443771168408901667129474522758633515004153142352734408736411803438427439474127752259467719294705049654587018638966001469570351051535471827788653777908664743520943889206083748810134249349387058038172488500394424269693946158032079002192906483954302316121528607493640179230057369160718662722996388219612550338291822128163008826408478991782852367579565613428429389571684070295509366121680888583329341854697562393567577666992742743406002101477010426772129384013130970506750745069845365485492003668439133386318490887353562167166000419585706228840303237749836946428130721211409770270354885577660351543775802718187135652504849688886272665448483496434296956842649477932381499763236205224088146964902646983275085614454952680075515982971485922110342066821187159838221955931725096619360235268064461252328057575749617561353694927013060266268548807459865059182155146498011449830346237339197422216995949437161182198149866123721290015035175347308480810517032532797709986541447538718066296463394518698205776308288433891003016879713339099205759320575148444297768316482300153509132929171339839634474953376468720460879532118112972684023728837893757857272230101094639687648375164638077164416756356598615168253454722793913408308806049389307099217870044237494921711471040275004217693315719454605690411744362155506755154404491348842737460065622292061811720156209580087357688570656280121401671761326089632372681123312479839909742972011918688479044466330945087859764316346880340614232656191570005753519605428481387625466015728085265373065677888858070338449956777013536922781164119345853370984049614351697071009341329693261777396777842448741552556686665755094070570133601675699528622411249914054181285907372146461651280477652517422932282420732606082242938138613282625054303515249090378943435533410304356106908163632466944188425778906314044914739721298009652137102015759262862206887501795959852811370521343500552290537511630817025369618043646228706622160020805835318184328890493356497983751388994786089013393768435787234850008845208247216445902130742041344049859880453665202706224475845149795617936540786849724080116378199389646043511498107099383197238804719462154722121297082998761178712385467924457229532423929503042794286497701344151829493786724293115983218988296759288825560714069895250082039212858000243932918413127628906304677608855874263301577154114447739341112744512622256089112673137264479861065757196906524722230243772177374729868833803595699705591553105618676096794809751673780228807689935816690055885979908015141284666075195413262576448707808766621884092778844149813120777749925778292995280296302529031093085042435194058294501579814862062205403449708222445113949629702044378784991508833875308798936867578588360124175574060469723374497939470265734605497276793511627995540158238757785384974227317103124507590455762616563933813778631289726285440060012711989741157771412655832762762911687184272005747448212773910458620157253065340316022379133726532506547436064658343652955066291549136783607287125648105209360938713691429574265221435017817392659582774054657164101876024863881976837352886276628416549932062659227817558796476105180986496666825368806094241994805064162920628363088264560118952716257667041669994374777800604749063675839954323910952332255835512777901546409588850517204310254513197128903116163571982359967341845590915830811755964989632572003186221755110038620710011230679612355239003347682548103166445581527513565566704095360505081003839827907637316506244933101086306049997030396847347284748345211394496692385978622357775178746309965778860533239587990604372815014704371729205501441950987441327072345231202275458590422550213891158457296981976174866174631956446261435150293235598535635626680728172039912309581935164416627054170907644436088410032859513418724754429081180728168291491153798332409354213111126125340836354226289556624964315866501779997552786669196930269027401223202624527300008520384391503098924353248249525153898112746235344252335556970449174399069347386222133343075406829701096205796306312699286583643895510928938603709052792102467851215611009136725340755866732092637738800674320282003776579586515433848854025523565589721135958618761304920152744287852099840863376063504798172531750100989769140121781020166999662872472003994683742001517610471899667825655774645825317662657282437372799477063866458968159799696633777787554197458900226086016621852722513062587481597714292769529803178994529297207976431170830774164173959478124643395951521111469269783256786282358240052631204567960136228356126118028629270651160761649076105349610484247495042864928043405621900978989469488602190994814747845801352098253195513839159051493354426261119657428131889355121130748604763392946867281804516467240133554496472824357879088845083540315094299105260202447112283526707732608225663725529642453624341199066527858990567846745676769115306414661673117629253101050920804369750969687932337950333473568168154275099177812994846372582266406220861632991719947118612360480429509257121190427909205614471170451882806785181192524334558179258822485206074028963998497199972655469171382246559729195059196303989668519713265467636061040946748051189592783273359075355110131229665411064128015664506332617306193953797815644369316688409910313169111458178897179689748038389326331065151108735124868999267609409190837986564601793202016111144481823252159261889812567882837473165356727794142205807566225412032247941393545557171901071923365835899185148602475711917492950609672810526768511615217687647000997400687998367206199033022649591211464414360456377120552002831007377119204459635634052504247594052581876539231369475844959178532894908704750601307442132899865565086186042817579300141335826433224985878252772481092715549892720640802632057895849486341115664755419817137910888851214762323483250132726141964857424708540500081919542900358632677231863667059686175225996430370544793265292843052304157161032728625355418707862612652911684803158036917663871064819268589715337303621705842213310708305905597234069795426240459740134061678066305880990360275379489922960133408317672880000501742132682880846019251618363207479832221052165865125247741549089498752309587426718948192956169818795980392171211635204119716318680469911595134632007137240901905843016676996960090056039418262425839091627494765781404437348920430083819517722723729474033578206026117330612545296063961510289643471544678280137768134612262238155332735816436542020127433547673168015486944383276790303136198918516789923065074270045592341643414355402149562099248091690660475283759788385638562669890853854233057513742954575108364567971208577260351804326070226023378727602989522252164303118495844777509486597731594807264078294254492811359337113427456180953564219059968370652393221113933267232315842929493996056058850997889200581009013831269179094279918210481153501621563520240047882344486722460013479241898990760206818342568914490306290687181481833345660356790312105203400112044384530756402233952849596752688868178613844714371791856344167148588817582899336820842585187406352447145830484050894051295344327458956224544425093899967030386501340120284454069708917284972885413014537367226518377443142129937965695257810041050350471921601056417486379269002428548929039955310822217198856550488088432566444050475951097870346436384760033535622123658554032470204489034092927914501127723328966280410624992472602986282268031341829346411880953955728455078126809219870499864487027359988758368205680683243498337678297434159704480974823130023097755852164677080176740790839399352935474115515567276998006590104246448469098433694876511979577364316796305184598569232160914481560036303270860065560490903936334728885677302745213881192582269095255499936788234523652039995778372299868230486148112055871685931387478986465067563530953093314470881886356038773033314592740264417825955424826810994893127478735706847606701500373782783694752101625582714279677107569214726776866989456325278541443654460384343089023087619212873061023728002389265994849129965895895717456191072145150810294919700579224965694127124149532339996716963693863956244979755967102925276565243680422348746090793730929899700913993297558354865265452040953121160404011373448406091063902051949248677495484536956429894321343145906086363088274194564945926391846525539373074347619766610777422703563418413279947413300914793658880614586082949590227066422106624670402465832988948423493337374014155991107149930143744388655862302062541635638922687020928007577438589553619072301910822736315956877573215714033203155793349952308685909944927401542580845259203915459162438590463900570742829386780515601955899231645149489853777683031128203762339188083889043850674467050178820589083932899951174973475518686324930988975595803468651460320194727687759259617422045737265657340562976396660232971722919023331481759028237100313569628051795677964554629988473202179562897094636613997784549962755160797504246591796767185148883277678918611309450171894071716733306947224234806881382816021637332158786332948581435423741890381276817662855713942936178533875985469734669471435933680955119862510979754743409078992294976292737590478128749098831149025320819199878434976821699702732030480609076061492076103633844110593479282140623491595539045061848798461385162919835265895761755092273077453743192946631098394770459222630869794179595505940079262338702844630788568028682840964255220609595316684650371380187716061009498538652534602376401972669116153182453241009340348283019565203412210809425506437459732109219876970905550616913127475132170727551471986480383326235681916697741193524756045014732463008657052034827724770971788693349455792257778769437533203566556372414508941606075913696886693263087451860315868584367115644116157583359473485686213561311186289423545774728128715361295706341601214470704947895367304195521376202326023792496926361762533967116229887430330144728007011757527275574747801710135841889328053701707820396055680670060360741154583262774994346330913289343688360555786604924402424843175618869484842883424596816694968917903726015094988220823306697225316039565738619398705890706633642574266245813901852177262382428442792053927247958967836633933619258800309707084602452993073065147392446903990654047105812110120104943331808748708199836906338014434696441447225010615820765815319275632901049020740492310183917851235759139407573471197359873876598977105908694135805783485341230886333190294864581495746169707839229585739255418670761261471546444297879052430563110464815070612780407705841231734838327027249817765979649478572639073281558974458405142182500912165898121024081718243094794476260775827273101520658676620083976938023950763627255221233358841338535386385089079172025684291960220078523379476249044381333748833510016906477460233008473347574015181979810068799313876290349472684123744871985067734171142229445251278656382021983269539604852328864030774904298109087109637442014404665397730647924334064265094451375920914404774566693422451515966023352598724443343042167827300757108934436276616734755019076136566990203665727753608368309126497794319974389346200805438074945359085686810492639845940190751434074787536532101701388822827917466416407449572913355565202387606411076866117776291387636478454676684775405262357731110528046934211861121946868997699263686437009648995867267795467076953059611424382167769418487486153171526047950038063246045954794220804011965375787632871241006410767196116773788597240589293191594712409479480480782018718414684142999009338919588273113108755331750849746106540019583552715254544730607009418508619075179316778874925438321102078848939670805690678971012142943384906659757406260742843467767367875995686130271198022837038220661462217908479694214625715434308122291019151688396163892544415555726588696023043427531120072695275828956307766770180518642411915461120722308160389643152369642109356076242833973613739316818155420826165725326612582642969261400443050693054447439816627953747142250823157851293536076322935522651016723957354111960787711157370737379750995999143985628404355615575594875401107795893165708537927870394869837637684371085873668642942368517037026872594951281881271907323236790291551191422131929094571569785723661411359798871564901870576413345307328833654464884085377960202928539724189251380092911365965542106464239247654728288115994118772047544678832947977080484824644639455122626430134816680109903308462781992792565707222525627766456968947802968894713757299102930582566364197183501521609424525684716575195878866988173803576264665527575621150962968414517310070689114691535256952342107790734444849801292874988397094553286288957082261369005885606825226880481265215990498970597147758282739896977156285088647161119989231689593428366778973197313730391492118354129539738778610104919828218411385898823029169312946322418284090882783495810276932862223105470697187346286708686999048942437181132864775409023781910191840351611323249016212345706028179013886902085374677375912502649440749924840719223418504535915770437664973231664710927311861827101710868505734656017930241599003754946198688763930937718504514696488325593371218702551020163751153567783614392715264838549557331808973810247423574110503434381383663608046625706471273880424875637831009193588122031485019756475857909812297593363667360397997342260877197935496556154162556324568760698367726046940702862225286246695636580451958587828092626440308020719830271047773131849882998009031313703424724914509765655932701592704872495211992301138339760139977800912695995493779219734632627199334283156690486688309614740599847477906008909315382212145216682891241387575083052825166368278126016648613398258828120133747165330721459725916906241826667236568411960977660419714357114398696237542535215356321837879371180687937285966089542818469715634247935630874481697136106425954136842189436399489745058049290062223813711792528128656623638586167336215623194662306383320835564011731095124946869589454929822284357115595754600375433485764680014065696329065063236750580596397587608961035067553442939500804964455397310080576401461798353638088681689418164137463054289862782967602903633376720726936804531671766653935207205121248031557538264471541397688880501222714126713001915326513534733515382935786629789649543120421422135319159894019757595246013649860425823446567760970066338586185440835534960614570987753938802733606900912752890455483023992035436240684188433770672080341453244800290316213565627132174276920975474363269628310446362730896672121183029382344134502654899498739099234433889235313810291496459650056955652478271626541950618444044940636999654386323858631104816775165604874630520892376391956186005467214539403348180453961124492225495136936346493188408189625709328972400892458892784581733554539727308067567604250004924317171847407282937440316866304988873744168951088862039599327932408004599922636737132133236631528730434983088915714217243395885982465393051710477981778761417698452123492743605952849915309817295671560076758354298501944412429298832791634221832906241422440671157933474718205970672778006556258705906715036983363567387851142411714960174991061959559230901881170717776622725988163992956172489302381206589588124781394036591506504858738795999224107860785812502099358484736750758073783392865153630756743230709211673534674461249097961553250382872001647571029307646005425685974597547495664717407862606783010390507898959914753630735646879333581459172338108244947206304170724190602969662863312020057624030888213773332355919802960799404661461583482379738828676808663129732516385598990465660165700605887228884258159101963571295543442673752267762122924483329196524529944899962858768782593317818767167319738051259377484474311005721270247163431787136491570158843019460272338135078930783448498028825000456559517475115643086551148859233849544477831910110984025889120901929090954827868959350886732413644058679331350665720263432323449614755353614822197251935457143039315658017536777186410314710765051139869178186108956879234732917134336998053897941978502689590900391641498501830410108756233407233780417163544873071330990220390602920562170886708383103539338080425662359103782026116496281825464698372044483867078254993404205239414178531304173953544013117734570885795007603367618162936571073728659527899031121325239232790549367318643252081217079656923397280780210507892086117939675061782231474715864504314347971088211071002316836196253883296514324078966852811461054231218075517308626844785115845672687868539368183556490233360012620348677380362144069442324239538985576311389126616125969588824533761920292590864279102900305133851107413039521902437416602280929520033032861884173076303980225348542066160163836821475984555577067763424102559787219683164448668377847365441832075948119149378189153988204741413018293117920835952258050775047475672598176732749966895831990739021273466488216647693134178333856263734741179811665068163538370420206717985288864443748409790962055919865375312003162381940218328537193998182885656952957920047159302653816303657647452486932079418450620389813082442273956073443153291228002520705384451711111609625721042466785304777793404695426709432834947639098148743446789185010671067712052423603568618310188684618511780241571298885149523065057940945961577460904088432903346276536610971652684040252061214083322320498651172992992509709568442512476585459702784441521858326541595205136918265624042677221103264061126632430851755045560274602608982880629983615578394907738042829133537275502393491077341836318435794397314177045741546451081255771197483617947913724365622596941826457839791151202900568764855587426028779107869924677820459024005966381858425337038613818968973150922932036984414239494974837703910665214283617328315834878623484185562307301732352382864749666698835368578937417882151545555755521926390236140708838267515973809873706935001007869364599514012007155817984399246373517688942276676182840842469400293395546241781468168523647432834561463787716324495264557056692433666465247520251476112188714504658918496359084309804591564381052890219238683046164977790976603661128015182116082263942630305615495925628933518996295736200729950013101778563468237795799669081478983032395679136025537123086419414632736161413994061592598737762946297630851555602721076122697345311671983525889116645103720892642700743240847649165203723456052340705808655936712549184284903788252097974376145179448145024170465524792168460637580875584478655467695284309862344143090765747404690206468195100497609230209686926097201628066078585809364293693089328767723344525348636696259797075304976946302650010404568963308908274985164624982596923708732452614145247954340122119055385203769778991739402378475516857843111432032491271388116072783204773293077197209337872780857793904422083134887106470391337078624876824555558671736329842182571509438468283970582080669332960361941190983644073837971304155473259840304594976157414881884414322312696860610672716412156352680564867951843272904862079848900371038740648889499763806996311226992966279299592358282397866649121370131523192533322955801247120146658648872260562923057311330789646736928727272859496507884958969510075820927527520582492104842274205098966527078022469389780031397817634426780263235488011412876860125967188905685874285054927890751960031346996912593160102174153827296747164947347727358542874951958171261441314530267929997361360655653052075290836560647330255799524547614213245374563891566397624274513170210112841633408408675059536233701584958713677409206851611936960758504477153290851900038783451150954049440828403610453850404769754482536531541436948359371656203144345819745256557456812901840101633350670808023870675433338399631118485312755325733712579184093280834502925816074964362271929104621396943483444170082840931347795589353029837551872843108488041424774100570329360153985574017333107113263634647071357944699817477270984538642072373131795225639874793901965443119232225998658285622380637461192100333967217984717121640164154547465424967409499772686968294022740701355585520717724038891589698637926417761888036545443795752845053747161577600350508460444158973828383106083002351247404900602720406075264074003429282683366693774081790631893439235612688103924973542446870310100790316840488832776546943187982127032258572812882947441006628250849160546420853998691559380054271692145601524120704687381527756075977628146898484037572093666343716643834655616263803953327783040489329748418661009516267596340865463720279719796891103753483574293463810114829530528007403426968055715906076760831214200336780506455168723560984363201023149547794358641422460209461774472786029722060705650429664376411332365237743630046581188788710277612039930148413238843487458663147837055082515147959872069568337729660226120235521387121029776892142720208491643886726064960228685640731419030554036954803832708752021935743529488464702294321488931646565150198134326633588354073974016347684217477416069934275231316903236993588500772713645214600152947564707651322642611925404736495725729848867646061554867494226005314009225800869450936596948354773984248693962314989468342109922673320232153758821936024090974391390896907553557790545039216154151475004739548701415248513964360274992253377570178876454005443577926272810966528048970775436576881162936257647464013807084767688777301525203670662923758811181476892997879744133859750625703469694934657599755456737437862779592358625617498234149614969259431221475605387002321991447835398506813434573168243073270759112030330664297003613645769540182268813504388917752695040504041299312757640670732141715155266011832888985359455046410170757446019122484341535083403796066244302907593361562598122601830437103959979872012228491197244397946456700147646606182682492934803626339521397354439658189114346143744741894707925800770517773713422130086708929636919667315636446156836127095264430208063527967148982047494825608163660776557522984926546483710119692943569184414855716327185794669217572262143267552074064785688277315928049701695279031715209441744272522858374833589984208759402489358663053709558106703811923673986815374655468602519625743949088035405850059203694732675307098790173225116645927138565390498904787552675443710554873874839912762755823101102515595675470469911286513925511446850351022650987901116451235515873790622437626143162766471485072269487544372139453184119731356092843199600904986739027042131815004862736452808510348670394394783413197410684136992423856279639126006919899234659627965888119776294327780150538906230241944467933353728353206382103733090237092348934450982831254135325206828931006611754083212786131742636276488973827221574873105289601557741257623283679748293572541643606813461891389254550318341356785561991484888835580839194124404314696264231171735524857880214336105832344867956577724102020212906642519498545398118398187056272589312719868963926964385077376679033537170025892909716150032417096411002803441717933035451339192916973885819809363351411307566923143104489369246169933576025880391125565000757144435979612952334430175811952108294854981246746047139155108254030019422712906574156030849824902041324488846817797797629309594489166627109637699681204724047191170617947883312254336702500344849547785281877745799280191423419673587248128273278012295316829620603220800532991735398539721303081212455423929378513212233215580064820446949239784877524344781083267727609927761992700059250747277904519357738813773571040999661769129885181993959927971107437104115742753298577505668202024670764880739770591083430202247432741759885255980110535421403258653857583948714019219229301763878299812579716711704917841589935036854450461318689545512955516107466914066562511682122235740066362694645396901650950871745369294555716233116997497736282338019889019141958385664929349309590898921381277974900562700979299660091787294341653321277317360154331582648632196084347397297978786506015398390556259215872429708349193377278648447112481298791948355323632301920554865227525393033249863770420095469842825169832847355057439718171240231050883285565800667260471284157485122417919202725205253634473615936840777428718117328691538413608478421823439178697379978341846031853753026326120821271261555689205830391011266752210713303590289755947491161452850354322088128771989934270135683695257283634402411802367612083793131823779894089695708395231830182905898635133796923947583162028556197559752252064612172677267908755814362731202025648915981638184643096724793308018695369779533299743024692638248788109695991285295909286209770820709741084303543864631000393789100770050046030455590356000303338291923936029937096239856698691777923775082182406022653562502582363529673294861839580959455142938487585532034699476751739305246033969864744872570604057577174381734616511660143584473457169748707006187622910474612302368232966052422498136531116323588079361331021564101463390703035550905592519541706903850420273878668603766968695146639103390863454510917851753285392259784154794925166786480843384341340512744751525594163154791274870729464262651425280575071937217430430780472539204588714607356349007673901998854921570514375759262326167738746770469444979443561097293386376612879898194155863733924428023542366074192774589779573597006756424495337123201562254094480957722867118901267724249187343294241237120883431685474661364707759158295253533972917090972320742280738314557934554119060525241399979970655261441767953667104862002477022318161080636090437706222641963069175081144343352254560127283940368092519232114193109431567382885563664925381809811928914314598070534598586056922736827744372211753725684327162370095752558962569947605096208006058895490482623293689633435106847619777931601542335930832700285703255683226954885824972948915028175712753144904271056150157929456370942725443942600928521957682191238993450005130488214158984322537967500159535091231181309496741142860203172838759805388735019636263325327382348935306255110540310516551387122746761047361561500195416469684585667043203323441152077277477054447912939984572460017137592043127872390179170783354115782906731704823750446012899420302080023916333619981960259300615926737721827142070813444488751257857721483550656433317628620344378255834832687238407529199505040705223502507965826414214938517604030236150222923207460232368733662930638979993266444140697188727968202217277055037120992323575609064079523192258588130276003324746628342269187915466378039132613452723798582723439783090436632526681856098771855737419685770245474461905095825695637681676025857389744176255536844657440813319310913616936865494788761820915168403706590401351296396603039909305567085468333933611101229888342247879236864302203572665156080451937363317225743135868660794758225582430863020548793778571237124263360680026504767389374538047428983465152906863681287218721084123495656635120521603455518887855825762936952734514817187013778737174885623505595981713809031546243212269891738744092092426832914265260684403485927682644395254540731702761865672482299436874394175231654669291027551754582730478965949173300665749090013207050712322511186087358097414277291405451876651932383325558215781724317586705708793146531989783288350458643575576184095335376557621118054739721297260652064890956864193320895845720715558041478915799719508143100430459212891660153896875491892804664478854628601722133804944592972270728249885533904071072878945166478994184260091894749192224619219301205134270728861143626394417994013038682935782139214700448849056131781023840884528361219885279021266147099095698328760881833384101200994646955842608313276169285906307544293060967855383570117042239836279639575316373876521885916036513367500750375925436795549484573781449029644705725171661226985014171112687319294275973257570501088940192238829153910224248942627947762588284213197359182529537917756253038320755605918012536412403374316891754186056053492171166276313504007822940555900235191199390314645865928901817684032755724856067974169327486510715840077509821936539048510196726529681638510801052799428900808452490096137927711178497799068479839792329323064148222310823275800316045223431673956745793838122007951290144509118457030504372113438467616472821316390405924614075697789252658812878782686055013248669029300916912968408706380572838714741575595584486557826384952293178595900179670231705790508263125560403871445281367513473899065142164700376237023258833484747044892764523920113020754258593467969906289487949969048712053213966914723020115595810941898733646906967224983053532210451466822909053251881418105075414856657204413767735026731664479786371762521466649375671326948928524825113197234823972886359077989402543328651631187626487517232155734377993210942928199304528154164104394959905158259121426323044936699565348907073744688352972187811206177877364094950854933913365691457452500621220059989493095973453056497149270468761315351135746169177480393839288628029947312959627181281821631105467304462033964230822260433203587036274426372457566692964638379011296776477726884764950350235623162727746729565557039586309504992652392401169277260687416050372736561143319834335104284917336718981909105345621756572792631220543620403551144027513747205862190884007464220940232793217563695234172212889425121800823187409866474031982101577585157618778593623546090903985983936965222540353998773357849074089102680848980744642092068058391853257219215394830734453464595833890169414244813244592136386901451057407922035638956311348336034460759826793360405768710178485864822612590836632821284942008032783940859057109744600821220225517854569607401421647797773682609962191620959183808115406984577053210929772762537117168021712297963045538907338961343265895683724170379872837371126815929948330269661016699763010705070839019095237320091380555089919668836746475536353596780371214203715955675877242565034206348168971848454660153225551509902426163617447528870371080766435868167106794284849580186205126332638949623511534734805077784139952517797595244726678489201478552977297359820900030047249848672200339849497957731479054088471538750418226492669318779728083228384193455089941351324695563627621185672536755199911751190967905281926834901665639328184382999775848673855573795332495000186529396461361494831093582835054738530597223780879146958908648362835504108580414342613498716331850265456137220416929275198934042929088191321581052892289681969235200044786304986997088928109311455758467169626459897347707083840100355916720662487501679442961384827322685131966142521644663638171674018763392268547347007310800962074253555179043820837540283149819860115153530832937664121345308170053108317016434828915435906746130524868420450720163886182496243222097142296385409760356136621630205028766735513218365890054022801833014812617431385707984453019833896636176002490741976444132331247636592559539708828264275939587482489442459394560930801908087420591958310701118697185936823129299915394997799254906930693185440552331590339441398896949418417288430105328102102420497696918518438554975793350474842355841210488697162542299099691082784361481339258334587801673076486894426876093564868097968576835810705352937696695814923279493725972839759388789554973148935325776834447014058618754698419977387066007364065234332382064308093219073483941877526836361207670411174409469963140553263871348242520387312273477184979095007505451149433492730536983914856709524800237053512674142719951180320462731979131881754036752814979891501340645562360226696334375293516783512908448965868548748475638518026937444887914902010984548141222216877683393483626865346327988642539485189901033370999904361177557106165725861013963982731124657381531682457702126127119711339219250077513018225768468098017538002684458806076038503380130320982128861647724946025950551679236112928644337449406039907422485666844719636374995200934891963139874313429234619638790964257932061132198173476477676631393969975498699013448049478736567316443651134978131157417418730549548303581060566366752100640369109962221530361333593259283434478391574337739041956017286724491673836614101599365047153536454580165913964430216514748737805845718986111847916154014180643440874157216271742497072653907023530866819704917578161651288881009580749992516117414712498854781779807174820999617543426120843683615532013108261868227212076599979016504807908524068428437677284268713486704014729865608700665181481261800986438510601859474801999437124110307838265067481812099002723235828869455844417577486904694368336680401822131304536537266642713061725363226022916464408602279534377497064284312717912435815969606051420475418652359962142467964154466256417005504093710196439049048861894962341672767541644660241224217020525550997070780764245248839530910978818146539050023601658285652187158939038462129217031983207988756938430681361789020831816405255168523160768629729222893062676390198385573327919250246647720413625719153325902724696092797210250223437428956719117303020828176961484344722936449646748589950881133724726805648145137428927684950596398308107650847766538684700172530217894410809316786794821177103133076082199638932411360221812488472632473039727028279387675598786904925235943896018381290590032248341273100926615551513980911767870602976508826128303595427200524790343695833932414762598956351521394655290084605443086193913113694924477609594421069665539233963904607972875816862969296248326722607441783878634884693590781777122770988270299811963408262203655197085712843855692304544105725577685421065238368304693902488533375157518214272335740674705326223542511282495347560751071999188753606746437577771351703334200965950935555712080759789142742404802470733129818345714376690027728312881207556473832702886494669245404974065204919009814969954404231923210035247233042885609067351893898517473929860428495073172573584070426088377367755662906363123849131103180842567633414442480102398327663833262423684274539407715028665401671890242713219576354637611105559523639573033909068294799537476454729253747536209940264931757904722486365218898127758928333453435442375715142458762109862649662374863341072269685569551412536321445574553935815782579052504697699064129176122198451020069570467094151116792415184305825568045451496177067033679809094431196401196247459610340369349282767057699648993191841322706757730224930643226572650112819768370081908839570249813906426224485375483396371375335055171966521968281028913587416834270120843898455010723035955529207560455750673267504974529407264322370099083006463798444907438077680529009619954348312542035080702415685609762366522654725553323665507519422758709544798807374501232668206749399423633007863387524213564166727373046080906164306423969016387656153818223867405986427425937229617182496013834559515723795156129761720691796482750063433155435111825847801822050611056250610782070711830921348323827647033056045007786874568137600219451845103533845521018916007112931994903774514653611685590715102354832152477373876455909770612445293875829778652272123622577322594778047455808043524515803637107037463643169591091008313402834847846586946690615036377487261041015277649137295840492681818608437058461080043291114871401940312252894297347903629813916302929398911499801231594208952519203191666866808364630017803449030967722590464456681236884688434045550731586409568334649313623016281793428541370469644826539757619719017465694259125454041801941530596413322123668010511799424143411246268660509316788705160335793529062035988617481614661881860600459057048630004658920051142871249939260620539908601994357306106895174002481506701778826105463698775686817397451189114379626925292231134742439698237329614793870167218979966654461606411883058076883704361281230751594823729645346418521192668796749582678386543226373394597054417613399102122887611101055329886149026328931641952118473496437085744560843644098178170718849107498512090107392794325195062505512613267961533422930826185743764427286531523057504370624344633659339195481621982284199985738577787680706503854876175875086315067681343413814624740676127041507157894720627396830416024636912393411199369097028774686979389566047653970059808788531095047042197000927510020095755151628586592785218932127922203317941630131658845034540011082351948266009814526152306400420856110476369264501659551186472644428098030115096895413518588330478909525724824881164686205745630212943509414016759797654227305634083920506743833022871147683532829791523118919577892955666533572040374866026303196827724468177229307909276294173265068686677025693472091084741692823980660145732171783225764074854015933169212409936363832823543952188059116030166850242197084093545722498180801416957525423881785478251647743747178764900995827224800562069730069003578048778662074685885768962380784810427092140722249851642741805505120763079824294925833589860840270077816418011501647422906623595228229367484145108113762469149474171508829659202780158796977199688271456866457584364425392615205400887351660721506618804255633348201134023259307924902911418090998791367606485197468524296624500056850726704190365215668690477442291025403267288120664004967305433721117363095326380782641491613313593233216222388885560974053920740810882974704893685634601749716952025894354724846530353909541334333667177318039112886089239448013010221583484434512172644298399378185375873361357603879950325188017476355995594597364982971985347798435480936715830755695519045929351044703017402348769080849197752237499085191475147719750428706823844956991661883565855431441563197998498625547904479687240711141676274373124340977011058433844211944813822301174119877681084579671629541825782294945196064292983950108295656391479961508424886302905936481242128167495536102421419821979397594616864942028136180887008534961948916818417036789118490468555642106106924745463454945276397677236985336437505216792480397028345935277015749492702083675927613518792527746826348761117065109925890822960707441849245064910839617590075643645078444466190600318477822486732240010420403103815403791328133826810570891896089693446406888979760857570700139677406785130503867932225593354636223060619974660191203099655232868807317716622420889919158797140424637987547389730109485676812957119612565267662015047870765753185201737283640977255686800318023879967099289707211139065099152775160806216373594574640309090091876565893066085017804637266653997636798213016580661358607981776583675549585054041966795614288897614212195734754885044819807988755664907903941224220643933886063175470820403066537299615754942311415662299076558101669426350085328596873158005578227320665728040030872494853517407997902800605816691587613332118222849926969012014235143812800703136476898557083415687120690732462428641262527914977246790481149788017743147232244192237160374462609005567994123309953114481488860589842044751298027023538436465081425430356545190677383225670278674382402936691826119921129613171669172007854078928031372255482715125465356218154953316886405676058559551369708499361550750540292702231413008727242539211084586508776366943045023439883966762306037300828784668491829198478467190089408681335837055948285497890310374652507336999528692347213007811633507606799111257195369922510599824026977580832026840629751178557292217115384797217802735988212375153630680834480077026734970582152139659357522735718634021994246414120726028617087741959509002148492380862613652997990116325946134252363317441435650532270316141046039119020684713810972028289244052733816397647000331708240461664420341333761791348094551204246594557379387588294282493764298996445376426054139544903747553328021025773144406432887996196289613204427284377257785067839230765783997212053026160414028832735617845903131253584611875333098571489465767842879264277203401436545126871984668457633535332929482558738295482819900774376676570016977344305412001058018515348141990796436552293707336308302985434350749817044197124718787611476390058906702570463621339967622793640700950208086029217433196420390546367707718462314416485193424089628259643543632755500951445824382150202915442108246264749329826230871317230581697223523735452362439834622120957982316000789682670748941220009793901158250945912329138492260052850979094361878572691474798426073476517719599298490576922494409654622429672586515876195144252801297563680870518758009722596011956783836430180559454501348306406222440034094490519884374930680877396202667630970051111917959197466190591759216454064524914931233468262321110728303498324977294384796144104372864700192616236907224344678133231004488615370334353229835496128176916149362309171259160080574776186160629739835707123168312421998444264780180314857502272863300478299994645624482282368825453429395626826727165934787211187308678327743105561413735412293972427832626187243409055682909152662529005473622537024068162866756572785358926236432404443880684809141689847572238302482800744653510283575745287786255600089375615421729117170098151362595955701428627236975449375711526069707307249136581638812903897749993699446144545288666291118522090960594752341740243400744597662286973114610531567900064635104398970802317904676273918880801041929134008305776196489360981425152924625985888308025959734658363619792297808531043849214796150169013096180164669503177252284104574025694134869554535238624615191624112535753307452233746918342054240094010225482476432496135339409643113098633088158101149925126603574922962464203192708784873795304295761577099036227142090899743470473150755947903765517784886041156860926445646153439193371299896375680034849881254656107833202656648926172614459768544896699049501899723996643344401168056715042245944698649183005981253225015935371896920431649077842996118537990651244967118389294509287453469094824687235004964998158639258404520655586809086418390972841366938107534146895821919110974590042221732363550197230290816679063250510246372989802049987767482358435462925285628824428530283105695201281476850629416828693347475262160373514898093737814186588389855996685410802730845230150946226353173854119380081385546652154319879741938660673831161575378200172435277930348739879803435944857611701961928194730775004637349754368224071748374404141068893860964929203961828053051120852125657915114302797669758643524198418162927045726122085953420858839408688006460597983311844554752035231056142750890055462107579576042573463016783234690221847122846922748917342127683999581780184241474466618338115313744738414077330901055329404294058975538288342659794854983625543234851643692617119270559501811972925428102255356239653547636866527899002505933881626597310711911134265113834731852818380032524155587620517026027474919353483378060697334160566683898804343427785770388996812909754933854501622025111563949226814430583422963542616512167720706373051419615858752911355148897038272016286629837218653271880766539539585421069755120336125464669515936949804006785940130466298194703499535505841439444976003771808708259893877559834638087602598827094048307947092566929008559994484366993725190895052629719388943446426107240377435893513867897896148334265486047710050100124147025844640624972478800186153301226691066778136461919045615463496223476207313180501846914105007688421355413705477260229279013777161624772041796084254944606388672992608836529668924726159775979442273786620610800349155825084153994434513697431717562249550773360391486503161054673236869830480513175022570531546087841281077370120827595920059248147829972958239871021906408228842198242774589621974909896217351567741370445444747040009349426069052529637863340144927536343204246283678052031832960635701796804745392919876538080281102947355510119918315674614627069923288858334923860329739460516569268084260806166441962527769106139048242044588134447493254651448463360515999579109338328252617508327527469351418843800892406054649878870661283755195298537389373744523907262540400116341885092034305182903079832522210645575446910193044838525814923379154362751769432803553797362438464891380781425312654935973349144243204596629578790116581873844170658564244181207600131578803761439401250076205472630466241776945555583704305690371639015851107115713671114088686261720418174971304640809921052159201967585453541942410543666676554578284062355017957473237902834123773489241247973701597666239580008184849698366465394750541685827205870611130093944564027443558228781685583383304509922772643015388881626762221706947150579680500814139560739944614606375697641014474874462973108100728132777389547578828507084447098158280714174360399735230826811715208762307969066044958312926512158069990960651824986579366346369263567116136206087801406178479830139107177465878696179996422998373208126864287331270397637489857812466908818435984931684411835439989283240655762895781890449822885591874404602118726186274027253458914823852982142552876075721344506913036603377704354180832363299966367999105027089450671144592021806492469187475604541426954990451199054889403193290913325842056909398163998943468867787414569322622261200703085522274649511099049061105491181505715100791756853820766675244046214891317764275153175584556963807255039753814452380105724076459295775651684424579899391933883061665826214631202183482944471725150273584006761225390586983541658336627043539525294829983438566883628244860325051759155982698170662686105656317442899289877096672854351052611330822733699816899499520538136221530339823970367093388505912225932066405822309735442122068600454552114728522236483565456730860641457245784820594137818184436433655761336787359921822297855007460068460818306168028504669418077720630456317596909955127764791874674662415973711725663474115820781617919347860127135217375997983638664867572739830808207217086049716501636697008754045914095020131201529829053124010042266750672808486350084692400853162967009176842094221505406879971672097708712405567942352742137329846904863191552967013695056299637831060399237066594831618856160172672315567176265407904364962376232899514042746942626160986563223145446008418129062253514792318645720764864547878271322636180852623185919149619957197914376284841871356213710920329622849069662343134319075892357661939509934887582461420031669911566366019911241156425869291652344168845303777768312613875137869188726712056634521758109639316666529529688360556093509934864050009401638758334255395068383643282871208157099996099824187853759000701758878244136033044741965258125470879533101466740452238473169876344242970831285469480450340627889177679687117315529319627968095192479958864733495856045573186236604149938778671359118109516383586388438461028927864157110951076750545239682663850914685605010478568830547411526934639354789078241592261830970603582851182238094430577195409306748108510425196338714677336965293897963442795006927549335672329017199960816092259557919105040253238442815316097120097392712247670827961234845580657680549532985630470924090903550509070108602929690096467983683882248828819525531363110891407997999956042960077683435548447442517491456565592483105004926826867938454829260506405890926962437960948843737782214590344094592149118267953855775933567793604000917064798508800792900319871532727937113041062938889962299332837530367221199616635056307865906021318089520783816506380699239694122084919841799870512961251431726986394608239750832174334396897795385765189710698810885036002537634554503800221954251880143882288909323943915965286314430869438259059612516840070964981382354857033182342401563985441540836835684002104327382227819230980796097640800499360509321381496311991652444743922957843513984219385415202491089713146434424223074523044830088456966072853692249934653547402160587071996158501340249201548684462915926596917274427516712165429831406547969713786926226548280430043799365221740556649124032763635011031390438953436768753340453541296905136050245469893829100163802500261486593833956129939235158641443947204347140998583034085280033882531122015857758789089521061259179978012521932140680928033713233673013931074920605553226049215045511121141475788424493988841533643316282778880355858141013160747346453475251684057392912650775819301604513513863901573224063906577616308723848777558088390525467936722905151825995538331616308951770073665122329811237417816926331585775103623378732024981518877996012250195270678581789572408047272034736630685598104278339696510558831268299499412144983775570023000893992524172151013487489493812790033013406124778114900835369326830608946421972649573183899223386149355600078626349620342969956376109734794317020559515201617693257591452069387898326790997615777486836846293290474037787142869584535997811295846571539099365087626320305077272069423095736057712863399148652591577444939207794374929569062365259243282156195364645456812874125031911358631039496241158246413278792497131393754668377630073233127636131821530374502059481298132742462672985583784489144568612353493870016740810163322010254079348116499383657294871389487628679238300007768092306382287080465143359970656295325502244981197508638987735225987974879953269128899515698173205758109203765617183449474821640567041467508861192121840029081469924151900058170829457812644638182842973875270841378857832547937280606395706970612240578418648509592513451964023425194281662058173042291298447929475605083218085481192293231697627237700391485641805248466491177604366213023134943467367957622698867235730359276740278521054935972106856121827855136477073738945995210678042993541939365066737072410508683304834096043882835707090668336792378428452654353977881198975340143274036523452017587004284557015927162122353897765924118629890862916721084015351724237369806655674802544522950128164602895817402293103653583913099427676350752528663550859429608881408966189849160651813732016320978299226526354421219269140964761380588824774132228950553071854920947210292189722673241056349723398667795416577552351469346745529432723050730851341183104811971904565400230204247852952042383126388074715936422351446619844177651189835248482158630949981975971896539421643084978959118108694331855721081773178706808345191212829880669367067805549954195422168514316927130382988403113430563584026108478665716563051845217152821913193063942011286245923962493767537019323449964753429367074892919900083939735050861635624579872893139516086725801943128774038675322941545614089714067707452323145269717542351850619457268895002979584779104796141397352578455804602779933992162401669551841448687171133376799532308649997609721009685061087159331240406105182300260059642977277071908478357753850434544278684833897699802647775648370320953345042167309492677071158193461481120380154319689812506347486184116262325761532041825061912934629473051358356456664575863167291865460411536486574684275112425300150002944957151906187343850012439114198493406967631110288321269170688607139981392556317433662119324850820794525253153401670325050975099054583216477979064205809904866839162920987414042782616304583203421490351584645586834797499250937548533947584199010994616476384137917692677666845529082914904356967807857225960275753044706114946168749282267633919019993200068534376240593656924159967037876027766496368446826389328620874932694978923411178954338120181122565594411263854173082534376600169445673870074242397580903221062390882587152166793318373304973664263198620101555689368407836917632852964215398912659516386253500356792947722716786346762568616383022623591903117512108351427709576035671681164367022843457951221430349741461999799918482669151001846802609784803309600521163061994936479021087887574059717559745611235181429851445407964365001701098927932147891389929733212288037656432972601317386283108500475924998021866383572890691755348592488784114498109817519986629171006498051434094727681845615514412336462487276421990608867992005988125269176783324435068315868325717064598630350449664507560142240989965169694802771376554380545875283455649480867892064442579297789575850372439789820412211275409792644048796117494451296752802047424579295579938543025001609530504041805151550920338527758342634823952573552413041062350430975464830759619169838849242309918659259807248847885511935866280735327325522688418427034934462101540190668023077721564133661292244334058861006114323703037025587004967431820359665129854490825343874603259862641367007904152459624423859715268903611043868353980084873462198054668871305698508228967491750344066080256870794337456374875441152442760044795322563359209619177116439457092418162048537852363061728925018695645176906993170970404719015713953175856916859806688778922841883118362478835383385282298731386343633361707401446300083693279692173534309103071410553262626240095127406298615650786019564901988891480595932385206777567149767781563526950652227956612600859910526553247044601948316736375073551196315140280535380678126988643549554854212574326885626622046670128340338315106829727204297763706151209922848239567142069910892646515115360404143793000193549292281243610010546206682982679659082364393850968693163745314635646291194177056281754463984487695979565607063457268089134551280061096591991368519355777273898143988607122090255037880406918238865717516680951326310645195243309925216344468862052819678634010156107504267613853782751806386154334692376810082448984589456167557695451659680819531683996779492571415990537774601988646166257853855492776083328639195104999142472931534271604910181560868963218730931064550551539727513018361288277745038070641497802028271398887677771611998042786992442268658272284697305475778774819122494982717646383562300223439129382694061372136395856103666716736980031999661502893577622191826052422908652680705337956453690670533758779133214487973348480994604468991530529884554572023644084489563997672617505628274700370295821200180369217457286868339702208090976263510663794116760335151389144342649715383755453275422017685847387777566920059819069048363076586209797772123485698711291612850158632986231961745609044452428743707987020427594812557941587976704205763607652940280537339758392986339149754261395649171781447422709683507680667872746627691949067028403779331956051627619322773969836669381732594558592901660264461439601950822775356864537515966116641533676877833788350634036502905314653968021208976922216869313049459726734890244198095030686867551107387989498071127295820303515241868428650870830652391407462243021722735052340809831115044877516799188016551864399963312549594812598928736449810833903711777572643475065787641106565306611637235300960478709261534049749458735797540981993090150500887889346604156075646960515145980758348924207916692649733158279514165321235607026925792780461822245928518925685536635312780244608082619835214388683444255709917989023305584812272052724679700898412195003458194927097060387089411540791927270323137191013613027006444010472082637245650173862619878206172778027481915553216904314056101733337888117650349621374449426300949170709484443483970035058661484799887091473089470465549034435331097874456377707185978740723699962292276353003602205487966592615636057891644586960477727670880323508133204548796089039295557978583420138356021960715342747935494929118305216499889967717523680660960392252178245448769343724381121941202171916296487808118605706410810590882378221727329944209212292154533276415703326225709083672970947115788725272020731501062459309781603492966550443867946688204003006240428717006278002887814833897853281324907709154534344012560580751938692740433041195003249775921147773499786554148757934853799038546312473589707810203339563510705947895770524268891378275870322252097432657478125115936259181106557772382217621553196987230729900085773315651624304967111480532827396329590385250473161223140714070856521927549888779314326568475546568958175682188414802191485368828622761884778667703327293421437040535497132581281630846745723422313433480890609424220851121274710168863838439109175370402999598475859094921167451700003552376654578545710257356442957265178051242441118055921661539046953359315974165667254927613828863406272868501982679744758863620828072643636938381933741296239568861598338972553251392575058152928741652488956410133933953508688768927142773132603517794213225741738472791827844837891438047265214177366475355776548909795047407339416744952296495565424023456290691253441604999603143036650878757166916336108672767556653012579869679350576346628931933377510922494092691964782450888888173976598217897006378768193530760981571058726776371173068664727158718730174317943949386223964780395721272740166157312640197961320207326436378159364772405167357276167031987989867901779588721738645896932909471614400376406595556978248786460574160261380959123282637429507605168601867132613745430114678976005887832626617942200804291814152947955508373036376654934960570087423216225717380008133876759417790521018255185829620219872702309718654162415932206937637628808097197634238480203870221967440963892774675637633506775050444685702799427458950054808114040133678080710905735490640341783152817483030641776411990317183170737105530260736221970311497843543816927823824839241066742865272279034546221663615800897749698650114790369252019377805579422296833437539115967583922105800864876294549520940986734358243238775733328987230975962558123488368874072735049659060986056194081953640672570658140924170038484690068841811786372059025043713169386733581515956435094755516509797738598510316696785131144758465748293211621385512685231235391008145272156055490320583817987466108702109060253614571847481364274423260022453153449177005155901468847149200500466041651397396734229753010774858038976846328336618497665372278852792683747100631759888289819593483104976164511096576960679393485886978427104297449397314961904638062340652965555218570625606643216252569598300336333835212771396928614409530840967808570610701430258483473765618691464191970282051267801368357142355780744987532751393105162423893010923158402426859292820215878864283039421233017727873589746975021803377548351026537051418156837661815887309200370636456934389350644672550234921637345310629177067503782253312131847592066236916993056148863069727827555861166944440764616317059266242275408609075334483800970436673920191671858905242050903497449761305180213692987917502707290710816358798663915721746949733913354938969422639774082997623899679841243483501269554253995770089105073659502995935624198707830168519503006424138799216179469700911259364917610888208991989162810170263046077002743130880668822444176805686581630968222079652418480378973279489283152197841383840654708111469132029953168320435015577664903420733164523081269765290082064813607312021946305774896337606391847403628092016862771587141271441478119008696454232574522370244631188610657710395185268270610861458356471650620749027922739973588833363251544149218450183560648171444177562937338618227815933162892746968038447783442864872679871425821856550053490326358476420814226321717656638012072791907416190452723483060491215824578401558974436125820723985729095449836347410368522168012718452727796611208704861758347103002147427534461087433363580248566833659313751669887766848367559984251827501235781132398493814591437401136994887745774521114153107716979695225460588630363314633559240082823078022240953637525113220444614827916674398681683829363063952595102154396906853843542346353786318215134877541238925172712679746035291902542612821693798997549250999448258290595259027554888785923305599840575048565849592063962084722195181964687438747394783635441060442195206062010202791863265385360492006629402605862749384395892660829896446250762747891438439639388227265385140179420290990633902632785253203857337098163447938260846485232841724278402352155197481823396824358492910071629377926816538240623189270179435957627118909178087525912920912221873920105978810104497316378465372073368993405559363470976520401020577993096802542450589890664002270275701629311870050811067758726060987609171726374969101145865297169367472122954387605749098156120538321181501945292801469121634871642474794197904755520266369023621436739215885295073349879766896123831453021717306375305423424864013143870226860416788499877890906866430090488395751105461837649356515833056716644742174480484800268961742771194443148048667205644395172332367754796305547783460704661947019009146572689223024586589545021162474281037601593366519195434396384427920487280471196735822317198766592327134583422018891232444082105526078296101964146832768481513413042605012775734197504053740752322439271864501767325274688498875018777986495715394187202243449365321729299129885385329351573206719657757404069306282413293001388668531032885364809655685221734462813984669285951703378208794018585856628697863582069861661495853193734378165059997576024042115488034167112114798453113012641572394636601485088402689439371935773038117682839950888632326113823501818452610140944418800478587295410174792522668761119398021201829054685061703881789212272266089293518461190631020481277300313643385006047376677131206355117684086336621497772920484705392123160240941601827940381213329756618154310024694258600592617628231111981498267290470900202478353455287332029863609627005827638862280347990068762552827624174783687708224331904262161287542901695702906274899080305655568627906599044594722225773664427752811537029902141832931616656932502926522347932773002237623358688218825246011105900435956986084703200602639267014794819212556911769340555809363943131128772042817761429201833714611127649743559314776490296712128473704739875985753091307020028070514711205543599927059219681406720440235424648390046030280170711513078834124807664173152031763361552282129204646003102649424878947732544197037191275696558288368371823400439636001079727955023613073078923203455263569323013018021725846192713127865957265947466979169104100163319410970259855353958456925508495626670663376458452027154907856833611292517276576017608930498471369344921019315170263950298545718806496117481489726422892581190434961337409846176412477254643974185042499765733653884733490459022914023375740489486143158731209278978100836041778836776166638762800001904940838049890618130077897914878837416711765352564119509765465193809611470025505414376199940495054231301608677304331029662491363990838260916368727899523268087806112432598669586119456624938021482007790607209062227529847810376443159116497158349259450897453339147051702120031188886043523744806731656822572485953694725693504184662686565088372959258815294565905715410947403748759095380708292270194553096707500524606229992019727103615072584325572860248774103691979456652124882039942481247661666277690092332363800433974815090962393913089058990359128198676976958570665067520363704335541637502992340898697421183314626030857260852971879518991063227052237492338089889550630087686210511142405695673477694002649218378389017422007874261093022757504414518215773866264850915925273584629980002139175992915929681958406629063105513359344630649381026161013905809329357526396352450671693164861724846684886868403780445769706815102012272432160748861264285831009199112037823672674381139166524895638281316267863402313037869372594347541651243407195796729943973163887994229671066246113035467083053911593417065466443230178589387182574777471168633636246542389830662287830909243852082710607981742327236727965084934786245306156297316635326122071655256099364694500713080141132473688904511214402294149455080160519432005183738456651100307586731560305733338845806830787507540343287178047418998449670095017862215283251613097470205627527892984941029686664652963817463758418801974673832483950461701807341271707978612540524728032781533178934343506663631301974243842632696061328382932292795019809950254294195541346814700620942122131416173359844332082622026276652983725145503242528553136783092670552588983046265993161963153040293886257025736670262876119281894514915466139797488425793645849682160773796491544853179422444511891350904369564546762930968352409764441849292602996303153018449416027605790042151713671893108810293575644644983214413584156277932516912191458178124163181498514147683271784756996140415621855239438882630312793200940155662241008096301511886053480666178943949122855896710738618888428055516057359162846569764715296243688785623440273994952115025691187822230021115852505068165447470655466032830100951494988822340741027250142595195737919353903121261329778411601367817585963036582689065142916167474764724582846012504906411180779208615914592484563096556349982562491684848721047829643881832179288343725865581240870607890499918910150152603548453857863025221436315585673821068279031251819479479144401069198242466394059953291127046913934515287235726091191325836943322102215730371501198391529794579861980183621030171135121722447571897027610990549613693602083881723318361693832828799004416515410157857671241881550962413277367500982589810017812435323568759075043588288608804468807198871270187203143492259376722154708757444737311323023510658385884607353548797708373110694227217482044332046329581812047609053155782802277645671763362848000239719297153195688767918251593322718744576561346060148507480258994419830685489167510321972756624783240246260232376755039682559773591388056735069301553185214500124744665034749971181359572073747162173891000855457919755715259642345991778855366366475363752652812516125423063466567965338535859101289639665652946827130760308068385238843620255746636985573079123160312096478676364444629271040328415849888804058262445814258263669055419280666511799339428164781622449833704424823446416654005573503418151093767996948920947839677602548798165837295276205323733692546122027164265718225467177555623261490521436928862278831998425769103803104949709908618310217592151993151644365629108060167334649028520712226229284195566480821309653707792864411556432858024228101628618830278345410612901906516190511615180746702992800003580981703604851675167390411572775642543778787690491106352534852556698301396195567998487041187362034516996725048760805584301045587821253144117598833595836546830513830305667088921936443031541189238489799128038184900555357766321041201579778445481654745379039401003971406944363547553040932331312736126733438804638612840232286591503168959778290765710625703509785770321344442621526238247842274377374735926213964262387522274046525860702562836538784016139581658158638249223476129245019651994012645903415836589155748348574887602056029878043245976380276017182747606432554291565004121785742696218198348177564745086079153340558292447410545037547750250207889608695707047304802413451896310948638634403678058875941235897287117473421670080203883895028511800706453640415916017289926650377006094264738578059727891402179623448055733641600801880451900552757902749646092316630257368815056027899187661806384093290815101153187571346060489895702650769736666969750595743429083148293502224957715218081414346265493194100184131370195381917461852841067417457649020662585384856303418717639732311168033689501736628818803603930947178114924288721792706694059405260421260882371821048946741082914292000710221728744628621962707257683740234180728785971340365490748200989336117652848541539514805189298656772695005929723394658407753808545793728384403665337324310067735794874376333574928331388799846178891393222575660512085256938467382373877971906817637440455022379957786798966764739117343841259203439263927606027646948497411680596055778892335153117333539031431933326906493026126966079562913657145312822366472011317030552901087874421700736162150636344263506565133628083626817347904619140495170387760114870729052609393908744706167774086865982774545944577751581616294906288198794751628291238364547015876440104945804500100904284211023781368676475336697140068317577770543664724027078609308212591601092680476241473395842139798199462785019538409625508298973977229493321894505710930593521254775910826962371719590602361226538682515291962617898420119465781933873278322001464321756968094050819108295163024225644271275272561588362366090932938341610352496875490441125246925605797396161219766708466325996105044795076994275407300713220753342991155813791329484867382624522812159347433451180009308710311155482786872041506101539244725550776543480651744756027895998044762451603109755907824458226886003134468854769433134538285158424603447857218495523367712111166943419948783571455123149090500620419315645599904789331492817745892991113230458539162709886662803369132295902449197170689207539784338242438091752919922717437221350445412470009928406642894461008564914069031597549277146618996055797686008324930066893468383067329095875273914677907394347003113516144195581466383643460079049341994576558740296447131450054615207288280350788262671263056223467839079581256385247104812889054792218750171968383061635711796213725872357200994642286415572477373196913369157627798026236338643676507711545015237518390024600558079407347508753998605304257827249656230947024791854533684379591610721658204266605180464328883458214837514002871254131966175114381482619371121746924857787135847652235783012734736632579639540093994990277722404544487007375986208440776923051560585643946492906917095172594035572557455549949622983118453946976733448769302703307294278715617090570752552090550102900523932280780612154194447582737282630264247506220519720619024177275580029328018925903581941556129879704326228966193870910836136926188394396493053595507124384529194287814565624176494147263762435097942629613931355641969107754194067889000334777209176551037519773349752166024558758299468827298307677311989427503899159923942038480918907227219728813377041351399741329587779272415769643178100932629963033689329836319926353795864980120851447347074618576105413285614678286436706406839313368655656787972345149302123925289953156635561052841221777753143035818362683201911633704342877521972285020140888115693316495112371791417803879362300164398526092899417189318333365290706863329007462909858468306415432055696702617560315162037143085300217797765335582817515443453773724335348376223696902213988677595824186520808353205750235612173683348203530451070715411442062138296879396879414263739427611502178880958585543276581890647053615490315244787306432290670494471802198651953302293215551064813560129287000240668469450288575802939566292788038683623880114764813948946840214458650645928576573611580640364675038810109383139238677727864038817696145109365474858254670138087821633814866628525989573608318361914395111902481365804373166860803610645313965096954391171866202404793912527393632154578196465975025573687310431769269714109760994795065319676213278126083746550770871334023774124725415734209764708287008506020687974451707562166066621967312240902364727847087650311211852477464572771000370605303763801796118116479837097091811238907223339123031926544598791678445287559371956719653794879185189376299164761603509849470237632545444046645905979006277584454052393732307779570344711720493498099910894300703027308828944389942487078051559756702357980986492676916457799121391368204820080563679465680905021697025890386749746655344729290750543628521082609795285343269481475685694870095513488045472983968817542254873835248835692361486380427893074833212527585369118632868813214465593832580552245857510560005542597388028712877111475577039467427968716442239363809565835990104919499331414774473687372897087924108298098253268527813287422976410164107355904538566524307675735974275803406125907656642466710152687558760404215015183839698558245568486410259373722620303361733360836152758195028617724203744141358696044033725416976303610794472566071450415424500566800278791986720143725034239574212066414953331978488300543894507898677246049968924619449474897927797323853788449641072298231426464525887781844701167345512737322795713113831417690248164926788465130679101123464863324839635770305209152921111803275299400299975186822844646702436559127649841809716695194711833892675358614158369567909677518434420175049159129589690484752367574873008450618838702547795977803521376407542318601889633821969395415974321075562247571393845111302763760169074160905073086384216980350639117085201472056881642663613775057330022071963051817351848835782672385794770551023520481855862964890217656839183701093826044122194308918704845537866179907960716519378395696950349458232346854937552009480931882715076094030965694254903264187134422998304123782424279071344415726408567808141464779073334061176637624956096478681199629583738520008136943833812838765334725803602280513968268969931364828744189549721812256451264271650474822819527810850980817566995656769027591202772522232420813922409916548464023329324863159520957409874647523692598663439889291742662826233395466317267379122058243856431139048574999945934263924883833577677511940783100229200866373754468147246163784315960412688244845876479082228593233228004499674103593324288911700290354300285826538359725940722363244956740108174027991441254064075576490605512340962597261965153185741480473560360719872531464026873291350481428990000447683077876123834296490665191106990452455428654235903850886122428838539592312303863444259460661741120875900366779003114776564123996944079793295876476592158251204097273634584634565347477080540825489677314666263975580344492946497394697028292259447616870334536474191943888388880305891608827910271912048531167899467150724011347306404060082772424970790384383350309969915031436001382772820264371876813746313328406785163918278238177611804031215924320469730820457049082330125584048130785315418339860393895906020888212433092835881610860694577692587200555973339733371487326175611861110686270969725338315519062796598630361559475970453472731308889986991954591069417725585923403590274026264518315337849144170676481972556472687196638725515105943189402402408751336093007888449790980061233106450112921455559701698209251855267797903860034856032913127482609121308444875238407828771892181134008566900151939336077596345863339404523484877193843939016764763792546280931668585674283474742964978180550862794605102654444031127072209557957040513312895425972213509917575356688371663763175393444209743918893073637559422462145600965303761917676319381212911031056015507135540559635407634920478106544623323759945556263024441118469840388623939313547801844899836368249757722318173730998724355749024354674351914726533377167946264337109469064033998983976401981532234153310839297237545226664734749989146839858550235808442450464293904901732274017939786132064501493956924255893201353517631536099133959302781373820139571909566245499455601095181669796847257954928914064136661618431650628618827435280249520231543467766132142349866561265534526322226814181255033458730860953961464411162613858034950095667668121689304369613279623935169399742243868947117767488430164805074577712511557118447158452300047529944312875357747486875829919909176012922308691686271925522426126170190249397438400462385876094144464457820732147079654897211491750948004052300735260233183047571696551643063367383734489713307716359210248349823679595424112875625806710018832282346445726717299368718734688292075623369113868646834310509011028719304682056792525427333450073448924836645739424868268538917808266817188923575571671624467860637177240464333008546679976949041008934013328974340723744636311115229587132619461863921892289785826395153888532981317748383440895484704042775695664314677441463840364098456957187160508146075648436943008925604691511892830034091392848580898630151695324089967017088726232858320045300620642500836270776150489592805835288006885597361992905975231654034407004569519435835430157140958649046234887461669239109422391934573314115628811150445817727593075646619096451077662507327229873102706260734421074100792964913649160564662044752964720268046452182990301302917556060934655583269349624192631808361406575810215694593392058599091135917059308115284933091680759376276617507038209224100243058395459765870745640278740791613484340935212007202602814014822087405185487463537090565817164486042213681722118312132187408663873758189889689010992314375101424841263817047847964128924291816304176278366418943192878236583540076413929682724795226181450889670771814570556269217748105251302519682828960140979739801830997627057437724775267958328072423387301651890819048243172447738046725890675445942971303068178103742135716218375305405364333491733508518462787596623738775818459751256327595530977659411012616710328116040958547177830749242184286547534924211618571479700169448172264420803519271380611124454192313832760617542038646775080010412706487281004204276642413373035680116215780636067158521348481942034597477831798718990553377689587496189329306153950110399058672799354369157523036310437179137694350026514574647937405564011427579552235709285203896500781199333261527420528889450968831946503939419202411106335850046656950792400577043208520093190646150611720829680480665550887953173631960065557687394118508940735043852448269440901004124068989430456971980603072876268628746617359300918766592563980306997148102819881958918905461372599439561684609785185468217328090568186175262919882956880610711985553469852923373606476732670596106759536362509388505840828828223278195163514456064688666474727469385829542744306027074165206586667823179000235287798828711802819328396329485585348438936866376600570807390974253715318324866739776072604092726584963126784629289830448097657741247172299119529289376735260610601428800775679711839597085141604208495046228252789545379965704156041541953387579339451783191017313426360191281910197084216825075147836095446754181615028699408492805466936905546957394656164980763974879987146730207208707982363640551151800801986062639556316018101587797250212332050917542529804811713480945345917669403237418332604392803079773317319328091155205089816138501034111876828520312279001633935030924128390246534099579327980796571731825955444993404871202280362053223556644082548094827849465121139027530500553193827329512145588235902816908286879066046524733281297813333117401122411570941130736615190744929946120902895053828494969520545824705202095554006286328131994640322730381614876375543319417655154533435465896355271015818153829767890568357250853987513229394148096656210085797652505550694369453864197914072416810091368704296459104415547931386936284202643179161576398289272635622250001127469733309639666329610259454498999017513655478110878704296959900855046630613296058128795522858314577945136397069176750838759837595263368944665797924854631099364854430168748982053210665458262443483320683899195961053442910992459972932153573670077606874086499636088731541154071459663410046396483370779589944641269020669237638219003250933044895841910354852686431808213743485066128356950055757303252153803847999803484626507716056973865464407075203391673302774446036373383476084661302156759671815188835529073738731425432285450627047993128270389555471527593938009113312365490459199167176394525406026462431790385545415566081302647145920927302603292251494859573780798322190233072803792499003724377480193049327645976104243597175645429327890336972392530680683639475798932014043380532393172443221088340104143387582607838904856231258920491436853947290391984780126203027438788245802458996008330283915899303754129421695403177140209191913923281885475125031705936000776993118199741901829652187218890545124431300373006509054593319030411550536486576268414997658419362970863129396765484822118589451301732820665738080542654439415509906549562635144551170374576337539634194198423349125978681840631294560098496902657746432802972580723306703951123694569913887965041530520281994659685756442451074518436213299936430346631151917508324291321070778484487703340159004817412687695919644594743865649102535805953177655044462292353274002819884073046929532551630756119515458136573986624996329348616712629658190033389043011907585082315037690428426655264467668850696371265503293980294499230689676745994308667673899859509799183160328897887612712365896845619243007636538883218404120542270680165581442857958147421334233765076473003201374662413579510152414585108302854092860692704706343605759015242577938248057215861618798027792464660079975927587828138712490993903642290993648940496939526739674531719495280365475038629119613902211954614710345069895051877801737430231373124343882721429042515740421832653973514457464442931924098143450719386769778782411278802666412884499136671617308988198180811202948408695223328095154466742279777032622229832921232082643052575081816446838342428362743461410782809134316261929332984341482874805686355363378316972442934437960968940702842178149611458839441803638039940826700103717914411597275330551088446435262381326140160525442292303819865496311405494472679118008653211911644887878591303852821250691053438510078472636835946141162844287308421543587582759027635210228651765475101221354851208149322264291286500797909122916025866190117010637340366672059981805938377358002569327042449183302051099147541731692930747483364128983082016343369689699550233418018014365560784730020089188481963001678000937303158808739436357131038288922847158813414686040499867617539825364814524473435552593368012067154863985595562599928532389962306376684142992502953844788624261927174820447263398270708347406664179066947359464375626973147526548794950206707343832093828948376168110968478736773494302035768806114408074524961893143651145356710993416802104826418347913054576321605598595822878099063969021314231562187890432067303102932149728647787941310530278811808014550208911785866592442703891706790068927024022148209115672766415446139044706377288137816864666378797527323627720005970926765523895149686425289487136701890990792449262764618124811636804224509857172312639555812859504620603895033056843226546514068520620131327114662704651671714806449561135844074509262174889321406316374667398529804265488707924398925011616418766077264205224699620949095949486390886283981121852368217688553110873536575113888784215733686455333753660169405983610464853171329804628915216904487596559357685145862600648011901599097942732134126082463998106234215130376117596051173683755042305218550374514825702410243488977131725514741071977637561076620713233611155953429154715817315212862983051664681609088906679979882223016973288180117563464622995838687756500751635335266656993985165616308758330241197362628733757835920741775647641950043856313157914269958452785369657348308943300356464537011049346462005384568860696812972155571231383777159027689016573777350493254717765468759746174879315235043657691101791101147221812568426446242035873467889681371662682497991278632107953036958227853826956890444612095013041627634494148892363195979298037382126441935532207614319261352296427327636019277875291127439030022984679233631253884724911631627433840924009862237655899854516910278561090323143266015368144189965249075053971045034075776030897665761359763093976643917527920931157628233288096282844397423477258093412282270305123176161503182389305471002378639898455298440750809761620102697133607773960796894365992670693758458884768672454054003998725066496535748948011275560933818596272412339316597109792526844764991948905458274341814420062406553654757865495985644569459548913880096026349968230755371562919994796150070477522572214188764670172796585114946812269440572759067083946993647518753160034355910178902585202095455807944825994300273445105723548656557164743108807167052353273172363990518975302113390543500677384312636422307560086438750096845042108174860390639266504977103462268489208000891419073266596728602463105816645524225949587911930555634362654979692858085111208955253305346493331333388717991442476023624189867405096007543369594666363373203825302536487216346698279911046334242142687640924902042156913112617953811259844229872459377110459002446666076650110969817386222174283936461927938917014014795706762694804227606390112232595283990381388848998524295347522121061500224019417709132667165047656791593940878646230324167982400635566497212385963360200660248449204521289811073773677642900560897726904090791494974125529283824198746977916263192499806691464337319802294861653826384776736041429582385635344743600017327152000640616067781753575303764740377385655019556665956809486783049629892134152911634330739146462582467409103526683488761744446570669689012555916366488913636183912743786719827396890009499959534398108689511481420279836608729939458909489570242235072975260871795402176117804352927579072106781543434086556024099546602393915119929632823485809964213938732579823829995066632965912633260336502076243971295530488455332230598783959903181940621177597044921382481156168551554995222956462772838410635988319159093255261399110714418174062951730825330835925230238972612903365659308100940021016952460464677623057418880045050825371157951430366121228193809834894583084958852749692335611529395479853415655168181893574829679149556266887219419883655367377723691245611876680015294931129446358975914839316832145062681143032126562895910237743900513459847887885582067209477676850052434455992617092902244540073018487963738206679502054490926859244977392819155785185086713325854512310114632556451736736908803263353431056142297668823058202147944901907362298658800992095697592937821790214557126378681902862158552223028051189238961722232224962697998995849627588301913516448671245104331859927348509276773532234979328181893874472551265598163675921197243097663814725316547195438191956402693343420761905127430130897534777137818143981563456036144758456319050789776341255769817661692150835692332377934694976035333530492409224186934849639902094617027170092717421777881444232071210275355337798472879726407998561234763997163080061248860162927521647241589688743841196788331061105855540559170604178814142779557426466501459106275556900977729170646641234143250701174257114585857411516492938215575963018164529837903269454345922273094753853416259967950442259463713533425882044792865767486155057953144003110780354827264232052114878726189140832740058880891084303767277148254839340226865972029307253356662282327637834487182755022522045202852875802126887539412565772501193424089913191504311224007427494877950353589966565572292082103453511204372926289906160343311470175273697044215548595784804094205670290615476775497847127131375863473642475822988632654204782284870300397433176506116829769508045087092204804123859834351831839581544265957985095682710003842429497907683282729030162420730394657070631970653439515463610293149050322742012626000166581437312384969535860757720650561758257358175932960014934795345063140801763033021734361113490614111981939846121822060271705842869797212507715931942196656886219709129555328382270479396454448452716465767979212850502259419279324037151135210949723391213097146993844983183236807353939148283829756594920726241298051235129740211294463468372068351542682264245632566124022934642813161164677687476735758568511782248509073080017711708948809440351421271015984614147008781495440246955902707266986541489264220388412261373153483069740747445216167982122273628742919018191578478924932587485558292590636253905406007547102738550476487271092809097466090287387396499366183820978903083521585424580162465984944635476363938358232606054353958321993484565303512490531571545771329564258242415617224104693738795759372913536151568840232253259833089455042656499645033041352588911922825607703402006613607085804823984707457012628408183352148204696227350699006379064326705147524142320581991631237778658809977131711706689741932421755803425979391801530267880654615480201831629932226235873861570251723219084103712805655958881932534031835719214695491803423306974532476185952652008847825295557647068963393856643737376987235363374739958367873008804377664218618556746761075548019786510934699801763587387012305623665043119086169695612294561831516523103627731509253009725782200653716503480013837207115861455555655057120726333729537002515624405331647720028864802579035823116869981069848423889650537247402791226026240856354785960109306870101276311784798810808729968208250520111809444377300705941265066674074710330248607438121004761057807596719078251428145883998020694647686094731202223424491918312975510170412927301655606287658281250957805177359904370028835862571029511410521027993685563327982882565334264761937471018989890426727809018592561687299589906039284966056720324341803073770241622240556841353282038124497495758004402647493026863689872274723820198285702294348243056024479207028647260595762160116208314599493684101977815943371502624443560351420302980443981272802034776130597928081092758398628185995711953202613689275399885769505410810293774111271814166602383790629153553176248409147438260396748088321478454900892669810166194266536689850809941103854660768341663690390740572886741169348611678656634517617542230830796076806311474235725029317162580257609868754707546081982660331502127292502404606092881847432681350642729049297178556882499305529714135806925166984090211135810268664904015717334244008516190335492046067482076020991975990433852290294784249031428105593441281460843866116927335291905655114776087436360231914139028124072559440226688782730641305965957876795746313935197611976585975880126295576000401040355401255166493183346681376387059443399498156073899095614223832321707945918705182506926157152548258056017805946329810179756455754238208028194801746134050118972317633944464338320893018834000089629603606583973228332670979253782590677383596747729871289429849395505600201030383018294624638099469020090422022924889014964325326528467912477568869457487428299636696749941026416888080872141893423913603367387760812463957507529023899994472157611946154583138550128695996697917053831449833209795747183412665702171731109328507535515700671700954472395618503779463348391296904266204408688910023671087008533791323410241656273991371213769564272571082065520247962640714360981910315259914532352885632347844510477427745567965330648046821419525694892044492091195453806326965057194870707213548100542018931714705363562562371216135048787703556353752935640952862018381083564801823535814504021796626151328774407254675894516352558446305173517182784280498921089071852274927383494511121471913416816687634425392864799348770956992224613502095117907587478099610326054354018656358852431302974366188842160709570301112851260383270322256598918846674363280132443100993797075317460616023763838914264799711918741181229571950047953979733845834711615294088423638816392409045650569454853574776642980302571821216428830685619907410135675808248508314879983935517352267654597364007986697488409826118725102504694865170865790396125987648726808525325851010775247752351342900906990710272786718219774958313934211496147709528667471416950149998968823989463544861660117243821141949956021067883002781077343770907897148184335370047591307779873953339709399564508168868580368448579492054522135731394613446540179238546127407939370932890848343968034275557234078151090982649570419596667018426945694267607733244287522038738811644581670547094936399824315098857762111628973980180302131734153340962985510735356009252560038465810298017949429737406789983851012478454506392364375393933180581383394303617451257038362428883118596624944210295384503269829887162645959917759909090053813747496348354357148824052639595871830981951495863270008284432871811556069206001534415018208279285687541177462683499737321204613632046544707105257843895654140925089499248160405909231039978170751337665707834653367565056225034539012457788960710475408589988172529813362546793502995093929978556313944525418315339602989550024964742279205128599062320346885920944085907397888707207189868474888047650900904099910252245150018293966109041295680205822009975718736953425673255516485826790175788552336043196540809552094776888131970606521629997867615752189811333340687136687914787250131546207231860871027654856992528712359714089902212561658778931313404682479735954801321931277081129526746708980512672848233784153884660353394347002435741522085184641181447117590855341374666751956889731131534577369625559360292782620119394434556747091245533544822757378422340516780984718468366610229795264199373124855570651862973624072764530557910354024983370169860602709089989441216361917004552745602455187522619565995417147318010887231327347868474975730470491841035487777940697483882977770880573211802627087462955020246910047041151795634067435906481633536113453839592930618555678092204977670188892786185858469820696244196298585670646876702793691785969852770409313183718359727131020726274323407764545905856229652108488276422199755480784115228358993012913537123485930994128730127487620912829522855050109194100158655401863345458857184812815481339270132399935460763227219719074225785149697114863430573250959063105218449984541714991903019188353090178401908897284364270549928411956524639393385897027338426212146737946213850482781111931791200068450563052000135312002845404541512986330268132935507210823211021341899695176558434491686638986902490127893200080428420524405570496183485901632989985100190859705395711601592158838884805282284273116973570114631753296307254006222848802839702257923530207606352029265922533099124775861375017665049878834782325558489135028905562846121252095802418676876785134390730609841157446840828695270165834266080621793363933111763896480120495110176044163156112251008876842938883459063964583182801319786075570879218302955427686422446434763125357259183001779238673738230922687524409708315609395509210829320587887642354681219764432758066918372378820060458277008003930278623363115698064433027617496232628397918416113700067970260184141325186782177369102886040883583781809606462601147441397432443280587671181494385134354033400231674886346496964014426238971224130015066421563738149295975285844100311293014635698391733039839399254413516532698827646284229866000542156250783784890414231606674449355472779655857093207965972145316617174728466415021704007869824929858178310225720719942076169806600044716162712566680870068587486849533231244821158657223420999920003068929685137946567082056162573623732666812648906552414430856217224260045076939677881998645748824029107659536493558835093464102344621713619896674952302871968151905878496356542901104015657185394418325409104157212268330544900468372667965354674236580482322818176043441328482681596006819634977078137378923589761016093491180800814193521705584380678222209755457230815158461579493449985433146499843574928801228787303175601988949598232109201353896763766375875428868463339543307129444131794576972761999158899299957347397838354839186225587103812995292885231511406949188704702647313654683332852945174047324628174543854215908686562940034924874630720779561793165103472929822522223316277049777091166027375019034693596156580390339456896804674369772835296760935550420314047062473585663873581423706195304028567663888217082563177139533522495750275553896118390250712974199917494863575330648028948475834237815516778771874628400811149112446367619991102342342269030829228439265865662383948025297692815921227894358674286809969602440257784082411443283810800426718928113730241712999379508813036883446436559255047141904807165782701438071013578951258924765285857168290097513483290103153378950368762339096513529798415755174624789610665972894484334000604750250359447352125450207616374999633805251864157841146926175050254931091711165065156267655382431531377941516423691866408827325032940578789583780545713106459659148548574030517622043290957967840807140095514894290982327613423113572848507775104876445123648331203027266471560833347180617945256455138392459653921684032329596866419204651699639731797753928247988997224903459725458624815792910733858627894288994472115390410001481564368282177796029542027789960950355634195071012448673787518709940489685999570069210187251202045815377335786763837011660380244001995629686902228134609482330938303683393213169555896643921647013647965871554774463492837996662926603491929756816077685668474154336647591196498767262246131734016100989894559836380530932577538008243305999960232021054959275007924952091112913639178245579071679395238440586048168829014445671966802094048598974551583062169580201937330656075613466563343173930169740357304888794135517640813732474674807573613690575478322873603241561934599277255259074814809413649122079731338139491624601168856918608635934257835517825883774593095583950195993458949493277824379601410186615417015198062938894033150709425454594601710396637659798952967523169910177117869750138285317239182559746066916332675508776148949782280335807392394139292602953122829865537856287673471302219147052009643143808046942265043811116437187117133557721459693328174495519269591048329780066672184277240755168272658778253730281316434600206613827875251325659259386817239997482188885450350835345669224378514484613309612249389696964066076157472758120124217182367710216558342849448528552282427900405452292502053120664653194886499855205375233336472210972400412601989983365337792849565077424478208960252000376246754880674950220556706268403302574688145448213076029012339010626344354740674279526287465111391395543506462061515862089706869306489498084149785133799353321614290200889964168030020563522671013791663680078051911633231046994083334016233197125919032693344060126840844559306228672932975940045627203858994023770093112268233889869459008236318583450224566389200340652693816889920231212772760579442497883149774129137718012980530303618391994757663606246537119088384080608773204259182624751967738819894657963358480432362621588336656689139787449737383498592327574415907786369404619298990887019366784472269339142982217205166132728955146898420922624734784755017047584352554940899111053587750153493504272761078208961154445969344471721121988138835086047355029767260157216450554783581731300160747251913496016504997015175152316900453890682487085791188847036503315092470787300843756329674135072921590622101078594662716255120634738507376475176626483289572226105313534239490028753077329674911194208878961147495142655520102286524824091633192168112491836496432399838985696557150037635077495660349194038346905112791761081008899474675330412140217232757785858577674564344691560214226425962591284365522697910849575192752793681688702670441715743107419838604387416548940041474925097624054944696241562677589879900039905463124014666891495445067181371720795601364271198539454658517942816513897584151714820746718038907699399791504449833512609839760327324543069945856128218049163358990577695135707446800682881842153066313761105750094437899499230295731765679508131446447930527065107730038299916614200845149740403929433265532743701918417452171280464634667395291393342327805854197171801435225514215725833584580781521020868247720322499232236084780321487384484508388872422870739813848252035264920911557044249583148379163066024427155128575451033626796438752712554998176425665007723620895180765761248993000470671559048037087813751000855684381438306885028934078833886184865940800080170032861020410524141192915187293784995259386449809671985800271428487152933914306528648086638330575104354915241641436269125050366934486370296473993421216856292124181001247052353640195539977198180955370704760242774301835137910969495761490782964809333924985034434016310323113736198892040865934005101793163552203352167773555889059635524981781360750424197913588428035408161158185620229051179399898465094078825319880657921653731673334637689690539061398611579388274519211858177655336363947233966711039134748585283105980175533326362673431301282737179604332780890082531768153627245984414251410585118811233142531229352174688448833502022001050824277753593398980369468593804646435936297686908650562730076295161444651776163387710688519193139607436410363060143847880868030028451725505691483772433232104411408318699239406506209537376785377125475106287588488842759245855004270895464518709895824052180744560815770002074762921751849889999206330367108941762239041408029854591399719728129759553834767694412773923409347789572849958091864960638390926188788320227191870037604158844798546382899814929581470215560137817322742641932290934612746391117494818036666546103988302910885635008855813248136158497394033426060656781213852655115340380677975615489824164338441535139811815036756996661926711210610227068365957643084594706057435766995308069984533531829288631198492649031070558187816135583950359994367480849801715784605775421655032834574845288691408487437530984554611272205716102600879572011849369429625061356907464932458172807401335796254904539086373170449486674603088869711220482680661823936990359989546648011766853991525342783992867455266800633697271722885343114629558053082144554188550095270482495313683060708630977831798216762641642631303350472449879113226629618222098500554883364473420980491358227849938496206509613234445535720885435868539235680373492072006775777991199094974288524118153678337160527611492089703255157669594116197891349364662307229317174280214033365813851441182746476603122085715619191431993699433651090572009171757813973622218117844137497960048123226054808306888460225574688076490593020650843754253615418963230747038710311119976991435157782524565464051785737585575058644059063174533201962780773847355436554012302703731973794431595184733813776282428726187369892370353592735685882661102672343932450700646605342512476657512913153598698025453750434599535724908000139801916788835601809398300123203242374367684410635702319476799848029902997448854590214383741064088809856363446249236031773906142576528680831272451507258097096300112695637607400092468386270351944897482650316180102415438199331047026748954787081231066075228096581435154378284149113032888710653552321968831257540369973438079652297982954857620230905014438542350046974553078410074189502804314628185402928977267685074983295255680529687293133376466320337456445951520822009539004808844872928666815400928902896046272201381758618024926222747613150993893368303036761376305779583214230111160119268796831112221001836279633446603519293889019178748353811003294031436353387430804028070674655529377635825891491116018981764379835835445984716731947292690583078579820493901405313160775372486426621946391042420597816773887187940978057007982456549952334502111692393486897163642884666819571167286244270182977992005930366739769120850025072055543088561493685568193423390565275326589378361290811228812932990463367979765763607051379943600179106729244531361765534388242018302531057646095107641170920827078092652677219542424989629105334157107593284109991892706865164104194997976740404951407452336208104751213413694098408878361097117559659506359213485534866915880499921749186583744064550616000589421973986143158233351200984356913273564092172216395501502772391190970370743509764197452834006098815364069921293911350136160947300144068529712548770925355847421953767703697748707427950494669412431675452557752835189987666836164720530167703989904447398599636234697210127928372285491670013610691102841236486158274217889336215963537987154788217219457535737556251646243654701957567270751386232664449663252616222998559732138686622634663219198126646814195408938546456731579837160558960095175523592981007471204444955330129311569964341059521117990063375526925841857028394075964460487471003820636409168946210634404939648729297221979869606068904562587587393826742067867957987862949059801144327648164140552722134960887990897402360737912406575747904055318089538542989482958015829850781544776174757231087447529439087336944871434695129964342949995568644415186277565565488029863295494058148616434768192700869683946500373555983824990112907923123775325091179392076489689664297840857984406461928485422431859326710054408965221894584269239870166012901068237908322336490686302119770774666196282318137754225930008188550993577302612310478488750408940265988597855479535345954001815354122003731885471950385518665405334699819555334321052157602303063216790691336489006350696342319726683663472924832031322699084116200925413797724964531770897715303821970140258262463952906329494332256296292752605189566754757007127380748025650698381222827975593376824575646010025801279685929876669292795367301713154070571784330993862247874883725719534784435217066274527213494212852645434616067569740169360167513503884618912190794390703432856328298782467823449855165524224167738809742240754805996322184335225534479936923594573057161546256936487187842291664222279045799584185102964275846826457774325047324114931499468061566292572143883807376305128897132525376984214713751113751197646353830530426144048976647189906027968920561233964487161303935712540744876983148806063295777288149039265361919977191145098709280290714517919041988870384765273311941992000802088668794355994170334009662632195615425422220850917170810795433822552235858687064439438493543512845324386167645801609007954124076548073372230930555692628462222899669690324976466214716782686642298780745718734280780558986391863174433559045878025290531089240338746682290517899799593082944185900033413543006145759739198683716335184858184227999145304242051350010942001893339997870223008500303463629662058218473758159033414647454796978069745439531492431688749201970672973431034278579618771658764731193542460014047615591119963675095051591531615868203243149325022426817062427166364703042697413494572501525132167616878790862414223985331854653398843917395844493822196993052310657059523370644175519936271581659466218118494171259991868814089030681596753957846464117316289561227976380997486615258892201744629216555587880909409380474728970792154821473255826247380813974421931162578697232711078615485795143309017544522617040249506970013498111917703525216572143187824508918036703963615706595162275070203070867747420878685479159592907235313081329168463542411110937127240938101599504828754328865568500344516215474552492942892946791215687329579147412117457762526484761115815615087116659552833028489870254067306391173408409055680601717421818505326008845538968828210029312784817873468143136914128682489488652630195183133053140794538738829680171438262339714279407754462338123661345365025604861699335788930051417920360547681221062956699506165737119405110589864994983145701864874971449167359134216641993316544757320863369521075940411658735585248338100151832460999452094919251582001605851060254317601810329028697772378164674918345706304619388671995242904041119386487742266493396052388322237446722169293612884426872636041121081641729978989372865540032710477655329547355606223788630130278681472373994252058554283927112810567383996854357257880116356432679270840369351955003145376998530457435010144630926645556009689559740014437333139239972644442021044834416682410527405230331496145038338684486532256370421735980538434003425342973749641794292365955354017222353297474359853044213216030817326058716953344834229144489720770019895707410374435217934995409913021421881040911104291527731149602035486253751045039499748646970460774173213597751560043957305732501229324318881567590260354255669870598719044133439184606274732612662443547276014431878096985143557723539918960845505360853464488273860621122081540930864150971804477216145963784962826389193567375830574653770033261946153106073695761258994161754032364012261926314843348813033858977302880558760124886854825008217823009906145494426274520636255872168068872987949677522490629285797523847196814367599133393778475962403927832244981454304339831782672304706650368675123451901135908942119177517089107617221016958740226110137934694303565991056496266951724027441240918316366727714172273526404676337871660139688911549594102578362526964130716910135575898577742643049440385046606519787725236332594717545300104801737407023239901930261614978480194993050147582688707584592823399213817103777471635917494603508489070226856668198765668700294035479160742251825002675068938774935857902811681416062690896430210165018738552195123798678770953950130930477445608657055742979407907943426729910443658378168569075561354481613337917050124359707094931794027412408879776640777523603688167374339200992130602876959336463622953553669574153613140610054388659395318273383804012102057724566341376431938653376236690864294123247181262892477751442385450870898890312868726469346922626522049604699048663868825193232915676871780272742565687135094072140905899786288954336048339474660491048581157019334211643765565101924010608493818706554403115794859603552045450223835036184579197554655515789850932670159104837640653310959999035854133494916438875143212721233865218385905241615416409321293126419181251359317272343831783074586386038526312999877988739970552416225082768457150262576516392671887096441311174229794843649767799538122027221324449086851686815891274690449631440555217796262221508128140692511560009024266407053810559931038827958144000250081729525549095953286014254519379583316201113701227613928696242453943654076276946272659967732329900638725971425362848581432645977077477928416862616623505673727524934871501507895733272084910081934901515758204832924715942014544121449198351676669572102712084121410541700127955584194433392802949774638293507680159405762988799646624692867139319988086385016244438800973141572169340343838595278562743564867913906344196293007549974495380293140989485403650151136435279632778966574587156860678744678731137285617214392823349400791888409593972914533790759170657969554478916778242870345534183080587680888294850729740371066942491095815800658572376860448742781673875372208997368503422079240142512052395985423452889491751170610049345389189622803334661616430453821320511719832079653346359950574984520042521731317881073679045524997793628533751085357749858304614988921783040789630774414164605912151569464365683317724065074709610513762815700630871642717321728754176578499435939827406184622318348899122115041618357177366239023837746867545974108972917284686473104209749684003638686873606129677933998664395061795575017845412024786283707749240940158397078889564151341965536818025318036856803942756772763476008284945768394498738823568005558246919205919819232751762255795295155558056249385147104449209355193365611051703728752329031096915236510827513685832827477049351660228452784170324960924740232773504822310296931095670815407111900684970330140359745382988253926207943850727273727320224830476489589872724355720634049960994443291284652017366346140479695410872666765567402683183109991944919300881920534623124125136635193968069085039339214331373112101887098980426301935025857841836055425439614244075527268344050225779062094108459452673343236116304369586611205407013774628990619789845024214605250512096687740482209317320446004947123778087451156275747544774691354495366414541857129603727943194799048466869261864550503080808361807268402693489108788951981723496130804364015039782844416418301899302235736075705108963658200851418650928124095713861950720427046535083939539421330872740227288800137196674839444142112739298050032795287013287971904126338371828110084144287703051902415976058508122979280136664776299462350516911501890807302582675724565396665420850268109111111494412056154879768509883342803917415761575217214903230978923424061725009766046912143867605441607376207777009227452467929472734611859556473137646280646824595343852140379593082641165544003441536061762566143543184846200736388929946381438286169946384435353264339686181538412711338030596287637574325783408040609287599266073710101421327560856023045880578441134033069698117443732151037186425538135984049693859038680488117171643810878605837190963937914514235185926323173534281636208584866744331193732858125052244151956301707012971262173546947571676427124363942362681593111459617463830600997126798509673678334347718049988696540990558612889704844459674925857740522494738279784529864476096823689121645621718575244406640615881233196227277289019544674774322744881461966042527022050442059394309371309582969722614117450131765507321215397890765923170015624561817448089598205915427846907526920127946072355478325706472564448552648085862253343109828832756553149657288109330997280104884213193330015160628991452447482786550922997942262994047178677125761536972114800882512904264722847185969227043830277561649865581048217079561427132563939620853203014486681982961870206616510271511332685391805610977127140589187378338079347604922817188503278169637415858589010811615187826655418207474122557294288022757416486705911606273780788843564688064341084358637131609656299579799597499592797746649453122523027057760628101666740481755039668016444847353468469093377847427611553789601539967325776648442873960142346852659889270802745346647419119801942808707113818892705016138706838812329061233857182666868536901847174531396642554039623371292835137283770595085802731616743163915531767998706196223926385570684446611796804893049703201414786988404371540780167580162476757019934332380464558200798351492820208572931680314268805501682581556894068839513095710720418216735839779822258512799942006552614354806566860228747345727501635407770658544426365700357417500752514089385029512661173472301139899672844896893428064409667621651224660483928999088735862408872741103809170814302128265029447243795353099673564330364959526591474738790657875078946311195825664268248871069375304555203138329688878083689813389867729541292784525728056386562166759053327254546184425805608948564464142842975297131642703123411678372901454600508793117641694882254421589920754629349774266090424152858352332366395549273415161807287407414956447932701593742231237470862536473849002831359855565313007587577382345472995829679844932716912331789678671040148741489617597174600354496929242971991415521945466325880564607002243977654638935517720325299938504609860249934809903841447540777575526365897835080948672320875607547922235764211022255463128864270315703403400376941315697408350148075421403221176562015094042790038172416512939935683254890648835428471262957054902470619231227409737211048408721528901174541223252853594608247699325840571656256619791161032941235640006524612315167539849775856754250622697623059165946441923370925890034213438549284921226943036034260613218462514044976114875360206374725286754743240207980380766358576433338178168798574266332095445654168523734145998053541246275455817495956074282334194361284580304631776959650286456252615043070746623909411757846681089038970938964436932183741911596711553907256332681723321038036786245218955445308834442855886001406407528290390411520628180121900803641187872717239944701740712211031341246998181149412350593965435237262861095471084356557388017551693528998488550706356396571379741793169439010033048471291666406714545379230179068275747039279583679396091490077612525860561091913526559599276842784181679049381130012876215100201384769136687208189532123395763613198646285927797610694710397682199355576802328978891824716453081695097126150375038279760686404034350240555250469304321532150484306786527310246085370931781090508363854051748551775593061488922153997038831628036982752026887037735803028460798882862559254086007175709598432823832076766633100711515610995206147092515121534174569895425435065070792542956440048983494400464396543670694638113902527431839433511578671295243650079714500571475307133696939459365845821491304383706161076361333082098570526487009518933780097758069191396054374589888361640545724109943333441699571215243707539532953245791628511931397119225902604123630139609932186925310880515240287031497519101168287798708944136779400298708669683660684660236120284333053374586290639624852165201776311352967419602966744327184072759745699974526009488452017220741206787026650089224011361242601620083229396429744036898371217325357466871613256954785464251972205336365947249953609164627247336634294958138494730923139757367572622365207651872007532293654828345617469615505481634439628452955668654613942756661035587607780764855834766845101337260043447532046379864406884179451687379952124110978526419519985002898626873694424317201374557102409431803085283611657608183657963255686925682985901938499019947871701577534999150234211590436132299207389134262170954788881327045426882755063432160770097708742481964795613407281074611583795604415972462912523460703873034546024643596950405713439108152318374861343048251547431196475174979187417292500620706214452296231482008368504719310193082082533274333789449228475092485501466675693460183014408379297966938430605238940250789901298513581167147758465539391266946981640859795495184448852422430536239206354320986825777701134346677440243951847192450134072373605291451219602498098257437850333538175342261928745893751463380520622451521842355105310489848615890093253798822328209349951802101815505444865241770646404431002633067312494396763674807112752292938895170880384311632989070820403082646590135590879998085445535373908326003229835134750550186547227250863706458864217646162618873277756724384067530271301537569042811639720544621513745574042821783127461501832185359684062861738777658699506453235806044328823540038519227265062335092607623729966403382853851332439084779813311874890347012503995076821257283902120751603959631908676909915599917103146889022691016687148743394930558912014365510300089460673257310772110172302523971579362953348091007335649506738334271365468629556262691519215045132844416790093695238516893284743531579018299606961481248033343807021419811336428507082563362581435703618997699447317759637162596374797539830260162858052006258868982581622104925583249259352048212928373121021758984282910602816792020962719427891346858007052596807087737421489217486118699407633501128597067166872899943881287307038190971466983619270717910703974648620296003448258037569259412695654213910477448324143305883396016597770493226423951273032016253937073990004117281175276771844541741802378848657587974326509429792069468905670120822437214039495796999525681224176534518506205349980115625716238494276964863552875793715640508437149048670855270834879346724306145398555606796797536518445806176530907601546443325711709437538206044936642855081220039585521008826642281227537333685054313694811883524944337924872397864327993420076031049731634972133007435755089873323953185391875314312680520080232144978751115267718687920167123589899079591236103980013823189785880050574232789033729894392064533870468034601035681222548115963073010202216661925386896283167742135311271524804410666140100153264903514423631637881911643432352087647314657137215314099458493000075542608751875025383228001294718726985384194576628431588062406050497602083593883765921043669237202116126489325462687771343037095109516102878963131531447966555833779110468387371909621655859216506157965525057111652198476604351188195342315354154647815600808596367662941785299566520353155580044262742678157746527656755363908412708507118207187616718784488493903481870241821168646347099169987372085756161970248507665002519855494084033745205556636408209233426999392640900473340354919057505956148139654197302457763033758016202614392106925446011462656242594160894598328988504807672785557611836377717741574001999694838231710846843066259416918759601433112254595312637299488964815452627454326508246520909785668251657028096322638233709402225791495594350783496393899356262732993306589015159275990724349531240095530055787015265571450330320760162239949203012030030285080574999865795504590119131068026554493291820747400776209104210913573866088784132874784674509420911078218643936694616388775581432039234727954304692726761649918726944911171211825296242490095513246030011126068150865126910702981823047259735964272808422333742895738572672848346524588403274158861072125596508755725563071825379040198541620309891686458419251155903964940136898892269681199329929084986337924352237801245614244605110710258189759496595929190151149416612248933265519695249192321011609495946533168769396203100238030736337905055435549827458549216238750906381639495963903811258021489421603146007494303651240163137322219218877099494052871052296282362490232892271667936289052472841938310601874930032455022015558512760778068042937914934220625113349145114250661676540375562878025915143364738030954456078659365121948484535932583789272426106178040415348629197794591972714372658803816840358060772684527222658040116963372719721180729374770295147156868679100439838482609880096655968533053141864850940022151985702797537753283687148720558831219139213705683383115192224388801455204669545263701302133733518291656152757803236451461040803354249482913930705239640005749035472801318601950867588294569079357316138770129783984091561227265968582035935851756616773111011805190089164486226429566615491474743974917676409560447891850829359492530194571268019327811876662453352262047014684347878363172802804893508213687206431691526739901334960414742202315298993901177823383766875002711821462303280142531623797627886707771712946867892100773099830559086269814428006856158242129163145831481986038703778017933609284376106175362808178941494308956662662226508247456194291697990039437859796896661685737368816258403466402163173213818267450844488273159489185602849100591161366375958246448133254931038758844953910622304476266574023634804486055827013197110909902981994154293845787298261562689393030980833316489148782016211972323055639967881786831216465703143724041296394738584824164251392411842247268897211825952893617329307586719935414501233245548346587021592158155081957310272321484430939290733417188420056557076714777075375625405576368838812069975037819062621661448868602692243500907656274136515994528916126188963223617562991992913084788111196915551613770627205144214218094478144914422500565740170731542180063800996042431041555827624254420012414470960634067608834544417883671951593132397193836362167126149307156038365828233064345606012218126887443954326872004216914631130627166769862589700827649563627603182310811773687735254995114060255526366747346619938227826900570796998641269685813978303425505507398049069943177960690378093802809766085131346827561917550076698668819821953851633455451156441913218844771374227579335406748603769894660090804798997134782219822782598834488540631434924347065787498780878786294647623667915631603612483415899016378777309014465460013224548737190474335546252415907877491335134944249877158384950353201931789427499560439644830663947453076929761380085688894013603366674009251171115936606287272348513269086570909689634750520538501768555875145586059917601685580207150101775162159106784615378070261129695728015668242478948525997593440470270594566286639354707625262600480544609979961302551760552613313585713926072010955866344622280742324643976495465295749987843545179430869272399232712745039057963876926483026894595504724884055988467255082638759296043626429505374451483480217723681602348023025125712450882234988889551255531544573667250350841935304890620572554005459543914227116697190644630525677025616442370421707516859385021142074832259793005835915206380244587666723974650475202998308685537126857830528607777529238035549357628739923347794419035591565805371644526545692704793949064215311863360181514477622856300687427601260019130921144200390066580124215598292610579795377992142542669680589332851533049643144814779489557831994027957159367649074039187837760985109949236275471907336374501593300192987499103605004926555986517374982105190635044161268094198734650771097117081130731590589549606645054733113758452158013181890526357044170041380567296458057829147246445313488639523762880516503416839849788280634061567804868749632041377066089883305336316235335500130480936439758531492439565960900836793362253357493731599654232103043698892805845650882794621460968003622423097039029077624062829349284423321149644040436861935992193372804635179674116358218840754358428194389304771747502738829637273733666515587430012424345860154451252507947568225804424165007969898058766808645617388881116536203568187450727061278821395831850821190116533583541648902378759670532231220412784239285815761092318703171762782006979681356704094358384201267563673092427340016976630461752233391490654824370495404277606730429988587251203923705086176839212766105651865555820605651015777761509967055864530858814400114444976324310855561135682338450601662559658856204712855552125399109305914090717810755307428093809099807744373604403263382874127732177216684266907157691834827268777447591065911798124871970222614784250328561779492229736891046254667998469427965712641850819862234491504351823925409322435662805045445454949769780705437082137797238680306030061693939721715071962221653688198119919221426351899738466080424096664052189495001010538970366532369751969682931696293669983526607042647107399214495250670110159670058747949081771544367922959956870228661956582236010802425092209489769180935259680799489875085485211965364333812084434977905268163984266504576164859407292576093782516267908828240498535061793536067740347640653844331115274571326391849233072323026205197153288212095554028059480271247350788965428015648823131966288395484894336416871978963348264903785201085785610328514179982475930940858356976134539813960943792445231443930461978911223851700756317252458917251154722146491697088560492024144024579105017835247730404220023604042593280396889312722768637129587521930412353615876246838165157180728290118662941322609806648101328613899617530874081525092970610003402919132861362193935420228123707209167922776018976452744224596638259238303064267189704780483944941064925617705378522988295702520701231357284162065858753647304379996836596711297454350700844166721296573061129303470906497292462114022109432133454488196676424600038048567557189866848975799804772671297589551365925586424572424584330035109760689786106345945256847816883466727182033759653090002360672829579700732337708808539778069409552049149249136142472001551283801154178233156254396735761841957269924963119911704797291608075409058419693377454692898436172228127774963831805295611845278030708842010441614251089326780283020653600883301036728315845053735995203238656464220284705998527147981918568870566814768945842298641154273729218326889542875073698670246701711850779318722846636414496935374878633512643514082209399042561595785339071130757159085071961621676225656879907352497994945848461380145071268799615522324120270257128792807714735713574191052895630307211564671970125225631759382326452030539545170456029653852374921387729135146920221546123894680558555472046582051787908174218288850420340037409989006344430909281377575613697489459373999093890304375690702584921923467321348163533985762649090774456132774497426405770362950146717659451189292103266744305488210062651637967569884510309777951200173289166685796679883766969943559288030563461253914515797400299337192412108890871193605959398967119619721596496018290158325565059298380287342770101091596664045024548942602971756956498512931733390003946433663161307956163635873062654340828135148909010817550963012765441048458406881786904249632171033035394812614278087289593849165138162409358233569089168805022411637230466822140832110400455271890709942808265988998169803796552213169449952429671652370808960659743596138265229862111468146076882116832128907022969283954577085497994961305549930355227405807327421052777164386213706427413769576749124645988251281036949779058471082527048117561937821840509641372709381554877485125043496258319662054914175520608862886469445068152477732352532869305942716337507682165632176115058549361298208454884663935301453288722481015156303103029906098980616115762525182817159852700741298107447403576672354739681116323406688309635685851939132606997697764246563530869872958574391974666940502209758083462090606498634804214920775191776394297644764476780888783559810529416906518160183537591352437686579898119938004550337707560947484128446374672059821159855097112433584480544283395403704993162136453619349390685606864332870385551640351308662319003564718346662585375397392737298708315287585883738245057835187508026668177347913763426933553165843987887188475389516400613341289372698684735596075295428646001548231731564334057976706583280143190898529487025722203668109757898498568110851126380184168802657624503955433809842458784008068508035604365761133328870447976211549856777170762243403258786607028866401984623039860827517679864219341437786171733449088348659426447067981413721319522950160140974772136622584296095028221904127221249336501351535460242809746771210195632355874624617258013781630148125196890085596607094883659257184630420409300689699581201422110230835165758542738694407984904333611802498017835077005539736971558975702828114157624184560929421979334715105431519279975111068315555458639942830178419626012000445800444937483289409450773717958016630161113268585172067487087512071879398690270856522738606218129216770164951875812760343893044264399458747827253224500032722925831703498380820766710752345791366074151117645510024015490019910329837295938792816094217654641260992590559660881273104378333420938018739131373438676252084173201651416906470784613427507793231761926857584794292162406636642708390891284702853763501508964251761532071955455581451088659318622827857367737065911916817777846485239062606760462770093305518199544249093401455771991860302648221628472945621146915695037126468084599390884235818449760789203792220352896776917037678308957032719876093219784814741564686783831880189264213305527086527620427051116883419902702476826817691432837206048114438269197620854184503155626160280169522686408300000646391176325401599307252744759833731937090780915404863043600589470740400162549736648173383460423400998091603513417652378476320996646225384570067272327464915219734659113105197145751595735578958565902874797708257834748530334952893554638449077789978150593170660618271004149751358074464289918446394213213790156192822498877968816216008920619040872485684204212049344532283924047184487517511387515279084435419975906784662488646065742902360168254516421750487537226349441983485964661139700853080930579229488952965277330919711987774316921790684084103134782682685511755746344915225939349684482122904072654803804560820347143732410814495565111639721726971451579335618507413956922673400947018528955641598711675064744538985536232939078705739220171276276429191307986629515669749906624517608133255243993481548924890591648508104242996295006988290784366452990106031167421239493240511060438356221640979854189470816861336378987500760378028241572333100482063053012945180594815179902736159600601302811866130183374479941647649945623442039487230988932182595642953467013702302765399982605047945428325006757312175187167650642701270548572997846290092955304294248721210864482079367213494510344268912317648117884265049767480327781422764417582745896364547060144913766529505746620657820211034999448123301693955731747140671075806798310803068195780066502330467792025826772586267595457924235211585860531323198141763432674550880898532224418695559105289108392748847072273682698391835875165108152134994962622471140421826296784511428406495919813832147934742330150896677707212790027284494808652448697304115524814648853313642345567869321207078246430122340023078481409815131932880024191939816831588275239883026343043332213278013275399915523716354685842234391839441898016488510103737013997371124191436955901987235480103022934448051183123797303068672343610791725947539693371426870125628169390664060959511703367165081124587482901719407126522714395048309420477098328833120287243917134882804175623478352743815314190157039150840505618844860046861966771922186444812462784239318871956377699934760013398920060521098963651151758030272935979266510620309528019926410939750452580159366537776831537084404475054995561879672856440474395921458421315016527841836909754673903912776803916907881693509842267225140322404540831681711219440544150738474156658949787459534432724975108421766267736283704543142500232947436502624563317591482863344927727207742367920924310301351683867912670364212846077257802189558403203639531755994749749186018997130205851581852115482832957407737527349473425866700850610122092077454507714655596717217499558093462750947121798963340723250656899078874482909925352261984356873088667996099096341372822267662935952493717171109285067052348912162541220316565374809223579279428017638606704098738454924058181980999107825686995670887966061132878778966929325665167556629520358735750418919507971719633504716516991422793655725565047605136976922015089646165397866992679635594199978004889617456642541505433365127876513258230074692590764029007075469101573961690511657392482289091869939330582889450221700588419347039489643759362360791770652581877728308482095356518682882674037050579308643721332377640806305539999918950361752230937981827064424096255780128113775561682225373869121523415297887672660560841226506488117717658034073655246697398486806613960836691269894452197711559522388705141780678494832277761319979260763469118213115238062778037070057571842281281350378802490172989705597403357560622557178375940834452358383641459680048684080506845591992683135939910668808440495711568641162356176382361219810558737614961007553915768803189317548444379562533563466197981659782870059267959021119769049120314329370216346022071688447367483524919878572880706203651723441972770006680322951666332197306192841464726077987349037460680877911078610148540132096844992364552305469427300687294595270524986149769822096301341435468472370208388808145837527044210882896091884759854535628035647409075566465569568446812882539804160278856223498586297542251803058353041567059888498735263999427822563685524944908973177770702588254166685811988334197810832817867241437331886654933683797596088070371475421535026901157828584138885626627608435223595688909339377086898833749342343660578793678213111159086034126132470028132294867372284377140111233224342915194155154784097108119490096898686555045963378093141833551359555911597798467134006306667002882798008250649545894082492982617940274804136660473262694931253984277595415070135641893846099909265282958328072029036963823455364963960730478400737454162117666381048875268849146542628949149437290551020997478630876625033716228539174543069237125460261094031666508148613111480717341095674479919821943178962958421061273496332190480809798018940839884595343716400828055750264802094259124803036967736337627971387865614552794480847116423320292052678099397052965732494641196952993308831663374883191901497967547707124626806473041064928250565929806483824128506190840836308253329282346766658677466654442781940207662967392857127753693286433295507795567565089621687654610970003144610237931992834251371702107864678777609578640460071067475060667187908289433835231459361854983815714236094782253699395578674928726528740576946201849587466765899736859483397964448015682105943725767739013488165337351400098227455672652084557026589605999573211735328403469760971270685968472435825747103865035327485041225112769650448150114574042466627521092385621223861183455579766974720689660137380405794100155719914300640104505209006660109156658164455342807249850518727406218275686958870765363251639686584468486985471180507456857196792149238863510392612458329084045950721212364793105128583975593048201378623611446156025810948117991093871253341724273495053753051351061438170766507493775826948808938559648982618798021068105373796090188192604611495771158632277860802187963250731334731098851154297758443659571828096555178182773360101433400931340386732183530925671910708784732090289466761434023188830594897722970566755818273826117640653525429001575938354585117967742837729292617490521390701661163382880472245151257898893469554473197529361759190305666272850440300845160217966566400673974011716524351179065654771882292009661898417709123260536340947268285682173591528988375465038716378923328909870224714765001005983657217511455502246424731992908431232975470085408202188918108229621281488593912983398701118360813248494749499164125985503588591610964652683197285611062962866757014066568077224546891772543643869614786656518844615745795630461591005114634111686836043187273235292076805096292236262347140330402609509401318818954205568795587758845045577735174445926902636940809358359622076000703430334296032603610777855288449091784488054024492999889034003499445367440397872692369635703462528704570317479080649617347586138504344364654626598047237933092932293988268556822669691257641649030942785250379695423034002626266367396926511005190310712766711690672684333370832480704328083434946007353158343994648919318658984823247226509340177147175851425969685283335090976293002442792795762458797805117660629875983035993617796877588805033345621057229535428049009287992910199920586414793074459544591841183781881023120979076464125775944861364369774724962695110293222910026036234381537166205449997032504921261365620020105730025729835704305507443111757349117876221087069223719325434980324963264573355523587911271776165880503149475339539339818587300448674509306834128326013265217578745502613071974087905428862910324234698950262733536628981791446639183855979166864327323396947203947783854816425495492765106656642901132289488041907238075820121447864037816664283057680659781594481359492252020936965594786926080347546198135415091759506880467996909695418245116094470457861284378073147849019130946356874187455954313242147059273403695122942840475149272823339803621481201071698732419168785483243426036597081448580971701098212387331080705991643581679980262990258079914331193102168696735216192956869647480049572326131315955729756078121220398016714410529035752319195923339842367855571938690428775403903837609637821979779805107088370416908816062501579396977223674067936916698006326522906157040241315389194952666278289897202579066649966410058705809170542965307172865659518878877971053910551840029634397051044467891153383315284301480553407848814791482965633202794290325413263250282505002439680809182381225133532758019217608053037443656030303645557034999542359551361941402101754903822738777000740336599893114682457054104114663374158453370950181365858959054480048392649557238091855427375950617313482229820663904528659701260368661435728729881204572011361406588460030844098296002947266777097980393269749466451809236777792017709945321736922600522271903156653193636017146677427328653607462508772764444813313387585742388330489061826154620384235602257897927574291841789584022882000076784488647183080560837969495030969885480793060167296979286046750792044474741809948005056836199650525048920949845152322159727931374136335209754168218126453850340075521280051739732263825942772944677368368179030429623744529545518675081942618148908569639930399069635267061707004972152468957651583853819583006428733673019017472328692973485917638006996777875147040701390769038226398823746359605486664619765862952700126970607437733749008963678966830128874204512346039533016998562756048557889997134632207159496750921724275781641276030436414855736466695077017616847744552968484462543429144386334004969658860369399884485064080608606412747134682283532119972290018198385907644564906821275429149817721229323547950229270284321147399638927586561469104160108590245105985408397309875791604389879423713030150172052731344225538294214823907175010464648213840991353883163009494070111158370208055451668373231297042069852777216164242952126343745428637471166671232231991434514248541640279611282031521532751510185535198467980934709654622799749354680869675609563201950198406535902617435077680444204037831572221829331708610254879662084834672374423862042760589237155181324875787752424967828504601022390827524888997727692508681999622765895037212279950749727393700230474077679493362437163390286230298064022651755550970546479835794094043923194410754517067330799117208064113884274606945724598641883987393222378744430806491982390034025830419280540880581446244183378475590079028467382060367573345524925363787543473308362541116430692362939143312039066853391879708974578773081866121695740699738621781086200874106039570011840465754074303221982010564077382093100778499588643857481819650382904959394888692417399039321781178336642238261792071723304086750620173053410193295128768093579274283458557271184391691155157394519830067453750294029588320667467080239067193268363942096270460904643692460648265754864019674773737562663392659916125578316732092909179807699175190716371138406908890139681250119970420005598010339356914264328321054726617740841676241892677010759314336021262954963350058753484072813902608816821970656175384095493101233640696294860371473686203364221945403821225710864645204735225453229277088500228891178657453751329588756491604743556841725423417826961321001910034350137276430336753063812226521756882055469400434118546398114889674860788779596573831195826723942931333544112942203615057429425432522397221118397383247822100967168401521240218450104947252786627957081961813173472119444740118652489071103562442136215689188974616727362354824927825736118923963463006121735049556104094641134433230413485431217550087852840315997912036520848742654848141559244378741844041799220780839799714997013638905715216064344840955646639294899589751378010520794799099389157638303388093912235824701878680670523378548865007800888806375283261700469459037194293282564182733298584643320198205634222345396144752296569110513221459035323196998038470683066967765952610170091397686713652155168603255645701246703576794657498532655780941180073710240619537014823548590230172382326160090877830031277795670699093063439756691305549609116136770378353164353483509229857501901980953783425340833802235813140607814072175820002029778418203290054695624910626347777326146477704208471789601739529012805093624602427285858649311681758875700129068964583025562103914021485284970453606668755289779573173126437143508347927642685480139000934090316720857094286686167319367867945313597753203442592371227575990789515431230692438392501492595647090667430666771450305468791157968669570396596886038587489408195960164581489252801093165707457767134003731818418672827628318092162565173202689242055264504906623150462285270189116269434538695654424295377793875388371943065232540178044951598111417613578001937155698833360425991569453667329484593496275882351514949550588897117867214396083092909704291664826929115548519453823168631855771398608714309190968022010522988595697242870686948506458969947961050740527274699275193249070618017155637516186955174245785262293535099311148945576737214984210137032267749754287958091299904087479327763103344417542163263418671625519827022221617519769472244222318014221466986311020041438432555565821565177008693594400683883921025583733568845350617987519440539700098055686830700273321071949520337272280332256060784697577506033179938823194225271628705208448795367693124419912332523354716617512207430966922703886263750783505993841259856036804428240418878942856583858771703341470767808584966171163326432818265182400293652284450523322507769704434827277208394442397750133502717121691823505847024949167056419079156550503445314457122029835757310061493743126693811666715096207974140962297065522983631583219129041976732146490699156084097366379104496142703859796076289728890202289245305020011705317060302768778626852799910577759301615683086705766856390156643618263482667790137386942569719389502907331784114979655877764402750374956930464347217916411361697103489403086738057114237709988137511997152862225577990668346439530986714004601029359814738871669398680718597938341143686203844818283204605537668607902256785006750067941339158337694214798204824569043549750708822564881432011565877287003448771605721609984676873329404608948178403863070592087658571145836642148712833361306816683295511232036850483960174412156369680728221044847324251852829414818639435013917681849009622675717183329163356649981589476870635117758402290836712390520007020811078816831401584975429005263938934111947566766260654334828286809665405883387375246096698818008251161817619850360386633410814597374698721851074651487895716119973775114819255413212005754555502110228749400914012850958901126868381322370156035761884292395294632184268096516407601672257836560186882565717655918747155807585865327402518966156146400320199394410814200952188095418363044207019874351391911791833103839465251175583168565909234968530620201626477900885661101153079838413525679195477439619416319158460737675144539427549551881849267568741430710527612800088826566838937709682382381696684228148131592315334049305820229327909644028362048233498906397682263456038941627024300737895857709171298337077765205212276909600050157301053777439114635337139147668746964393158197247580629141032363626555236462146393068800556467437333979272283485288479108980745828716249155729919088740515320075757285693467155951342363819176493754895135378378332248726856005733148001643948364000980993102334162478681785984644215825181589078442445358173584132116522544634281061634179668235424020953039777097921577184103442794584694631514767686397702925147263372672930811252290271771412486075311656544519792019489632397118325617982996348102998908878316068744240058642833316632695802344839991023913947088022031354817022764607539428643758005387880054436966315351291507831736958926895684360337784092262323358235918873412283285666072478396886063284417391556177585047316282327372373142641358156876141792571916022900392768002096643038720263102553841833304527066328611000580605228110083525636918994339426757986064595999897891138846399529589417535164123587409021067176346402870896868744627766799101606102635732471764295483905173969232457764916960390985644055377556802517990038857393403840979552805176696696572449805922310352870781015758869707385997700486363724188440719101636345319227034404209236433137313108707789578466301861814343256325289033426587122680048923506116119208150126520856236717458593108571962508259606949499322200197687986842398822402578455445347156883771204007195402557698681426327835581646175891068208321895473593809908667803586596040260175378975532021485045109396296611450241863996521146557444988088946040192838140886238690403361651901468483449647290927701751076285173653887320444646529779633933848431452296066984346150699583050359834017334475918300095727947513582180693645452671390715285418702373896815574742396725527412788811395311798316189438868657071965088195558547200220757061726451330832125129750692575441417111911762814173080411255855079174211454357567750978728021284681290350853931042504175970966202293363311358594397637601295228686727395515411785055188439607245594838165315434417850077563715907062058452786211618520183839754693036859298633766114886573364275963211159261302768313263183945830221101801672497943340699758021495065637674180061335477787875018380540404305797649456290733591631005863217572956847057550275088695481673583500529415252589317596933695056625279036610227541971431840697100926211236692150426608183229389808558640397977664867049802694067547554655347034493206231858478153045059332318297199488693904913709316452481731513781288302317164157720817152002481587909281613928627308021148198936417157240619781492389012377379243515127254627635085234969903669242962686318092895823414190868689239678221839490508928073581637594385366643411623620164673875536359270387790615749480222504143305468711845515725809725635641955182653750589687935800757555354818057560565071134587347421017122851270065852954209055431935018016866502914005675315170984115071788409869112497313433415603995802075485321644155469435450860499123382299534751607551410794996850233700749723425381381043528742805570305652092986186986797916794789860986306655478828128922974962786770037061231373640985327189205564309404619279487144915380826557414224018652939231453107872654686677221108260116710195841621650579783877422274283463882357206331892260095368694616242968917470969043881006307796500124165453038162571540872097375753258442148011649801235933906177542077258994504142606985932631363842837302532722012607756430621197874994263466708883910488868897575691096410162892691551059561906524344817307825851476430565850601430130850215387754744726583079177281348093645342603539849612368372010911927047866323787531930578421184942170835779488197558146159411423659593395709650643443327728084586364101750860413673428411530368639924569169451482596561561962871329884885644476489792246810751002952232235618991009557552837376056484443631803707120434636022573374628165640034012101910057963163429523785806446392832059944691964742806490034330458146402209547037664693193018275905444141682968005319603839751996396882483170755299828362872101323155980649763118529530065625049779360258457670394427617971385223820088462488985044312808923018372104562187431143205946973768886051564624031179240842054612149240715343849994552757799620813187040989075421283033793461577854459217644714619850720362287654931317910076221446860878226684866015747639828444421193870759825411218215574282878663554888428590793111383516921831541745469339213446907934528290378894848179471750254597447602819167127942282290036022537323680005954270776506955783373863225487375235083933957575262647853340748723106069005589102626113265885635225996397185086818832218199745223594973688484970367416528927364283694159953546635331351147222700206524560864955051249644578100478194307240124823031103009402853157124869024628930943688473359067330059160910990890466460808224094833750623096386569119526367801432769658369004835418144218064412282837663638462140804906566037703317362733323304357767167286571776730065691610870851647845601642161146184947485535807339072141889946103742571182759499288488219884422973619565196057656638656997443191175624386255379982231994727962543269072206506549884915091907468278044356816881102054199512899530955036309240737780179646187428656236506852272686429891063411285500673771103034887100591100749974397244261217495507055794477792122934271063365810643649250557749205611232569363580970300684310634240497384332159181348368394359963187840126880150477478662835206569795162424720346649924134693637790686065766729364007955629890850860482125158375023587623308321007036206811024666444305805652587962749772302391478437280237962016412092961684759781601133876836110006944579160480593068067427195257054260060267580054299631352976832453887382568311412654248279522832181515713695108438139357472881859819790642113898828576359206225906720600759810306668645279094860585200159612294741699688670954137978336015697033992019281346284774692691039315968722388657726620887458965012988089739130456203479682458405127846447373683678007926010456596160161892716030204267424946572332378355351837070707932959213465822851313929023184720458767620873613452719857814280653024247757146328542080837932929225878580037926526883589412405604436788431187647940370770154339725366076747647678181172163912052173939737328474678264464218268129703698030046965174274269946515409908275168146577145440017840941011023742435961443976325577497271893347748932455668334442675311740803011396557444387243236978018885657998837451912828299410743922419909977840222284955368866750839441688661022929777420177360668542670912643332252666765921103334858245778273069669363864490981901869347034917330215726480153676251708445748355821685140319274460965278189949937683366384695457757116240760483029237788190625990536603714064596815766040671533625458811979645240407910051410158850325453774906567299325671244627712800101212106644418357102095419337397923382381113141782077156265064929781598529466906626630913209000693279366805517483347756721223164275547672448658963923211084782194149482673971045047160773531478100028495898695551501875869339312710048147592839595379089300910730697428283160225390867238033354808823768006757504101058097794935937204989875230500554218985720303406141773694805127374916302968220292752569760256221753644501121898062654403184284953115546657402513295622490245619201497606151314213029036492019328237063020656126602895952425264928213990026419724066639601190221935184476912302615910260864430291057858543572618312278547160888728281456077131656853764414557824121229958697033693656342694548310025864473680355190917487025799908603234797937326863148968192081693186819746384899382112838351473826650418402436026733429032364868370347935393500627262495411882556356220045177892786863053525877309399727456359420555835093311441523938335581694574776158916778376817752221036613592161965470533748199454414227504512772544006116419889878017481859414568961019921256771709081086914209351095652633512361847907199780465450594620575117792170805673349107874143880072093378375130924938336500205119135247949121697346029874028528695242911894313555968530513508854476767290880295311053550582075808580432456233575569814113175383759259927761479201153886721958959218470294626751920188950325832022009218723814440837387668838540366065629729614006541519483303994392843064578751759964597570308248679138394088393089417795713254962758713387450227948316328205142565252315839421776680795982446844702555611431619334511310292363776456166718283604259368703682706908072479357445019854779996422865348213961961133431740243303963716066086410348274459820776159570024261682408143088519739741158627248570154728983040994951142325773054650885062951084205571428722544760397202004773210433873050698235108575736753219247401355630149320087098910277324468937291875176458153112253714213931595179502745104309201170740373212104587770045267549969001748210874236057523511911552976414951176405933805967327795113957928629197066041187526385566088465805170514229791635721747402035201479684616453350736772350433362759760876509344063047930791073251162760762383762002758811597029374238114896719731766426304063693142327536364901010549028834111087984251226526429171355562819787845308920693863689975809809524438612199187643404582621452845264440377235788899686703124584870798402862244256784121337384046861848557828276958956838793447690499570532158321387754031882468742055457744887671828133163140416285055904425062162331850390028427065454641480761682706777287112995026118244751666823228540589104176010537822954542871431968451709748892713434900467707564053352040818271791881198619396812721914069563497527430603563185376553750703583029890898841625647668750434518892732544934732890975232416897756307198623249907309516036816598315739293116751876285253594765323106704164185888278032196463879582766411651749697591079191678297335679918374628916716662004265912087009489280756609235393239499281779376457236776198574737803458199472490693408068158133656083010162510639368502748239397533086757481603726225907116868248638109834697070859904111767326821768852151863981930442960443934669405266337489338917878618027372451212770731796126508003031398326291172198369389699007835195078071812158188817828384700804062867063994259104010938769051912136052980084602049752695432794817440790384747049260728070911678473069954258039208538148099852157478401464759971680714142774978006798114282019877329832200712294282956393522360316949539673542788147403367799378189535802806765918794871665187540362306491038654800564302640618920453358673447251754465687916321791536094595359403055721648710318030978053461818907537900930549946626717463982822029198698969836570949360517780650176271810018692801613859713331129659244739386434218441507759376053518064971565597908176218479799810036751930463440136510832298554116667317350237460282021387185818023481445415561337998905027222592559696994375240091564168978869095437191235133959225799768217323562960637539686047350880211808938878814281110131377513345340770837271530493354737170597180457101613197203258203948377295075873630348390017292000261906365273202965412796469662590210974808574216503082911093102281235529764024669196048447696022322602855010881638442726824122536339674058204496424660313304097131234118652717260356465402710109155382030132525965539267087696126048828760303127049551197051584562505760560866095848913601268539688992028568124290422480374741264932317520533739478739611568265387589347408051878527477899677719214884025932965173799547188004043134988953852956581546488424171758814387300301003475970525433083069473783077718720097221499832390813958905546585899299669919140271334917102568501701288902940432346202356736356383891438362254843619534766546797793178552484354423626730320910522973307715166937081991649251326410152106026487473254472720191056154407067716491328821675859997554580160758166370865421234615404676458811430082388146087155759887307285432560592663611607569142875326505944337132755789698198523850332751505596326179733944064382982749062330447127745965486786301150380692083611814971844422852206226528957027851247634128078038930674616033311352619331548753212329905754659098749397118800829824633111190203865687364281668440633877199850374342976339525280202006000742829852585270623818838120354110058357856511027554519120169468904254982199910895356169185600291325310236060897216933033135407934575147475096933397565410658983976234947326658219351216917141584643740522982429907372867855450084881817571631902427569380593574420083304891521003660986665035356113072895091127823611113103665399923934401279339734929267901621535034518341364876193587814904644489475362726421612484363816035814024454674993134527124350530603740897309814573081448504744791525751105184745996731855649582023590198520227833763891381062026385909531899021989422546393481421827830482527977347486419814123676425727131585688134834289070347391642126512631653206840362156810489957336007011328655745540718039159786247022976343617144665550755179827389558889227519989910917343915340102455250517069111798589511923491811270709761592296149609866633222534583171731340478887137100098508215735995021050715883181137359099463627688042419268496474743553166070499159366046370192162787021487466687392124036384380938154898056604835646064508130303084574386802302879226380640676270591329193027929079632369898399523030510928476929172953305990915907036903738527711166539395341592251367854763113884915406873614850264016553104459466064681935360017740648838144463845871336369494116000156466891257928626810950165047080582956787805062400012191243242862016378073363784519115556840731166216825796691305172353861463450941005542235857858997244506295471041725760701294373074967250438581128215276202681763772156263989636738363507403291198060300564855657270177632220709921532794012464060411537944901484405789705002218201690776358340377260077923776163086701101817162671891535152409517487043482270590239312107688478651615756583735222209451144004767998475936774933265456279112627124387039301751034973242499296616470402195337879113531461409786552237295887341914516964655235567866847553677635250542282356123575907929126617263739405282178640387349601279091329189530508066628521524204451258773232969128409153076314843338021245746413933279518977372542192931792567760243529356967050795275051612227185282381744123879266428705356199276136174064317476221586303795735092755455760289638279724324995881150255361227834244824627759477870512734195192549020191371551901582674788955699617094884507288402143830993938368695442060267847594789470420532017638050048492510815117164106289846527954323426055411710948380533105788980950365030308334843203368301098607240121224717125847316387322317426356351264937218414503950664794483393631613611943626761576239754404030506466723151790672384963891627259938707451646605164835782312251230245839875899641045683595470275446748390243691254176357235418067727290249561945251846234724598769782340771662208464368397140759814958882153149842224682159181067793737217805992105847238250412383842221670637217265399277610329605901799540370647364821103139044814649431617463560058852609873031683398525376170861408540779947543038425341963500871414209342074824052157317001409519874867595446780639555982889782890366513560367069893265368815460364818113604115083091869365178110667707546182394234798912177630264633072282571888834974928588200368378586403708620770332768987461837084487703828264719258154865065887509848493730644938570465932575963924613664099775012089383520971526986670267035232710351892082932779363028964832934345092632584072791855514145166568204353512660031218989706506891630216539180010762724497622664336729163017012010301583696244459930065753465166905483613220428234833894567064696635199399506785380202159134318733108122868810367209498757119683395294436047831358793638669034151950243924681235779142295993942493366898508179346873433683974504493524255689155451293417586440229767707535257110364713772161251185928775046792264505997146734230460867586383042350681946903824175914527198454064274387251437951426395229943149976740360633468334646924397772752684100837509156284857336803783626556759444590985114984506025305674502743201957398132219898933109879904542409231142756462792255298869396653628141764921100106464237505380115786629835987912009682896113298988847753277609576275333572293452603563901740839477465010306867430332114328220038355175580097131927124306181063003852447508279538211026530720057770525169470958741215182068335040296806153758576765902041424426778634572561891461003383907103066142338512650459850148731907561575613302853444136936282872156219415452025137019514482693667615305047901375818725175858477901859229008751240267802434955077818250026348646057978287194475994397498349728342451888518094312903683913464064520928944031509160491667239605417427897580792962041145653082753496859903065687977332120611577777219410412081259444972928772290128671510916483686172145355974472862004069112254193608906295463624979963037129240073894728852005768204059491520005600252409480820395401208804520424134311844964413165354112059167440598943288550142807311075390280222944559463321677355445881549441497605067145505032580259709808471017048107723521426378654057262393947834580553967753351883808600796030711622732501681085128313395640722428994127385032765777242343901492961703541809010272779322373618373930789017578928305514851006198900929311280153411354027902749512317070400630944998142595160694329406556242324223174327902218819935015383151404593740963141845403549211306017639036241862325365691776623231071010742573321410896213257556128329415249406487082048749616804451072205013794597029548880419817101197285783605422993538432386440146594234868600702540971380823827702378430466846394269303930618838968322615790275348765144076344684092017097943652919829531012389854214895864667543926989394683032687520340724678236965002117514205842928432331851097540194862383989756516145535542926685594812882561551700191632981008282259234936326099177061156471393135145445395128000127368066705023613021330084091232015864685037209934878828391091977288359609941232372357216743675965436826745519864248595212896676142159927042692119288749902944547611837138117707975158117458249814802833676350092123782889773892884599984310299623777795719724071271944816525872499640315529836614622929473095874529200764526920033425575103437271581791093029019653295211505181911675336085139220900832637178626130745935455111975047223971741539160743929838059911652914680579825547605969462829081722126165299885256886542661927945298665787789470367037633248920264222443993336577011701837277040446183224524725384375146769622934056883785890067277210936947523245377232173490011040450208941999950215794794483786777479022213753206872847789955223297432860103094776240072991495133983889255012632151163243500547292987510808267327527510612144646236698239181135180395100085524440088302678184250341221276847803064050188829955530609801125817611610883435869034726131946458476488112401092796335389313398664010883262280961037927243030022303882653402559228230900446286555861435573051657248027525214604594265163924571258841626182729554478891415632359304238331996199072026538250599920666418503110413794447167428977851834983736529030380770261454626653144779021059607108354791457005901253288669449688293476421203334353545835226506011083194904012875762316259129494766528178135328272577300072451831805636604734452040279779610967454043288227243082871627369509814791144200352125843729258127559906335041776148695226129454782590557709432886718079168678017095502823273023249469864771948186259271541528491719454673895095404996666781926709677604966201722244204536307312238782666511864072496300622029178326258567676566168952691779151831537953197951297543823411239842527219523046995060451330160442325516215190314278922015879442515818682132105984229570979585169170839397691085047641279948958375540078919136832269487133989394756493014885681556114048153309561147601322388653770419477442648184094917352582938401160233689850095577805007094321961543597066275190367655316539012787804351387632957152680904831202259484123809877832073379401987823914416437430947738045903898082595537786393568499500930115579639084025412231782513254472172682293236472240900837547920275021565641217792718556016069706475213094820346925672450192848044369853696915046894899357531534137676248868470461197521424804847724709506972472481212915097529070389743211404288617015216054898189080534103234048331311005081993669482918169688913692528338860350392625441263080687324653104279699636515249624194226346883910216505293376967148185593599647554178301387374444067882792251444479942144887468099760644214937458762485325812017026880432567758887496728631308759137601818323320731611505201324993139545142590730229316154849059242552061450525944856817858916383482411153032536716056815040317445859540785775715202349151146730688276743971972415145316635556620934801885778123522979802690530983376690335739570819122793310619729184091347014508133670366756739663959596748557344307790474958504913513443688132508885497474863674707180924783931263788765440910406951363876700179827740646368608639319630897433627226653057168959506218686292533162793847833493211922627646627709400144101603253992949959268152716013383305712080592346941193965742990239871291224237365433088881205662008706995353396343766836914552374888319871332753304916753171511673138274372213090628130613642648106691444005004796068077251427185581683017139894194073689006787242174107815239633235332574736010321526970929618385095855585459761214835587783772494293157003334680530690190702629787415558446232136644956273489491969703871626763355777847620579134723623902124120317499076501637173320632764409717631938196607220029308593484654440716809106082857757926901326046773954380095643087550441178466165522647638699957420637318584643383669003118961217680942910026165747431036143399730762938540993451358217942599521056173117198305927956208760845262103386022915773241561199858891348594696573594410420120734418767480083664324373687270135305265243827760863496463148168039138327723452029875375942244033493328451215326277388427935676314200775904376541788743309902173961197932393255015548426733647892327241112704499942572598717495729246404800773282928344495610216120002958167441908447793471456585219552723047560214680906635525745396440827982343684982670621103632608901692983530760204115284184127618232821852270620177912674678170279242366068160498364055568487784764827486935096233989718457613151291295121025405007848351664897438146925507588907267443854336639517732840094495016369761497355375111542084123814203859026312876894540796117653915829736263354215596538439296639724472705983875302275344837398675210699826859359362323427485975941386414883630771783365930295901651678297884595537354739490355498435077368981246883743557271293940620787648291623760306287977416919721432471734357132998787251388864261356420213990344422858827986933211130565756211714880456816005933073301331221553235303562084887366949150173923293965876088245569952156795476938431278765852440210191584398025734719631853423500415719070903875791397999977901109693407870028339937254454224963436978152383150064817704642522080294329030008367389317341145246626951794856433653334911790592939712516063382224520868728942015249468678525037285120500997334358010373957474347337816498269084805745560905521072868387409149330592798849467523178726574968140544099119167193574567178528835585053337584473994203116231744235339086401225827506825546498588603481832690719354379197056986872030515794424555046264511575111764174533601103935878399398571722763057605563604768371498227264198667488868617123456473985319616046276001229806870779880548481882571494331662256692402690763645579080424746808899044168056956325607527428289825411490778258237022334018595642100645215202471736337809837283772006995931106868189907426635714533133483021299317175950661404938729664366275086578099355605417291320099150407117630245085455204335199015467926269063948456868068121924946990530228718474463305788955705298798779264462078706347573282207167169843259429271264267353934610590045973723371741071800225335610849967811231802888137806825175908676374832576196254508018508054446086544247303904336751473785525364329239632019319517690669905345441314127398603419962712929228247484470449696447649510332151872976634906239154096417236642063832949841240285203208832273770931162757235891962622340246324996162408354746111878157830492413032435858609843470788136330177118809690781199471225950415583827639919429079656607758372724979510357452046557758017289726077297023775661335140043334573388935501064601320220627831714708308132495592962851489737589446741629221547908912463284350657049072592841305189073775596284577532985014247114076123844331950050527210778939893863154951729050206512954917418055049542901294784036643530418289186585645571488365485330327153074639087243439308606642547998967540593066140555939640068651205834057195635144338943728844514508891615421740220474345755725483818690740108222880474525583265674844770167922990895494651248952075392283981221565647599113821245231736955335689688311472241126114179781147531649046294016827376196618298955453955604154287345127637205755708564648989330582120000230765874801153072534844653315508105853941569333434390926319951431313572234669971482451419876394154631062354783878472150951469026744513061871430598519386025114034064572704253535282903028325216836684121773551617186504942536001817484409109991537505346435391315552437570611900048673633739801485200070163198376197681888425885762889484200945556912614081407915350532705849767547941295903459691023646275256461144850886161513573974991190785497498624573792061155491532856617885780732601200445831924443887152137497680611216016666210449746435499771285735950637757177207688570114782873474242976182682645896294293573511273175835869881837356608738679456264440951849083236215636999237940310615264578125659967681970906118229662952733812018228039799996833669220412540636724848417634690980248945473403602492359907925007492188817700215980028076813922380953599015984566807730260483769514643568088182375185178892068709713394090875355412392996203743327015562798776753049917203241722976227748157090274814564498376741734437000079050251813769894543758030131751340845604344991294164664968507475339652145181630133843528422625409259779376792540597689761238614543162510552418456035614760118447202196032649863683169678473688354147504113146299524942709225980269564753539005278313778033210143904381112695239367439829936973883437555939324570127058228994325390603669512573270100549086608549815702754291909916228602222527938002467402601228096500530066527496831458238245213157031547597039412325555688839437316428805801633684426769824419463425992386500584026754456425895207759862972084063131524994750300063058381655081620390351668568562612435760896190523844289517393684447016159543009853007827814969510095295279029498544831434902216652234447178653403530085113012866724047184859220489257635329574307149853956408876675570507195420634561164433347608781205499371172158860078317277704886768935193947565327068102837877239365116467295328909456053786706700727110166394493946711679837343942553446694256694669018920227153665652794120348929288084862829803747466719490535620329197159970626992701929016129266291268841034132867529604195437550650711662514680463672830026385694410390530467388663282608987029389138359610368531120161239027696326302472074790659166562124995491603163513980105195883422767864101241893293875874833491067590874777404434567073615101402445622982398198151103999206758902298248438193402301870938958872084260001264676571937676281952342223486087765626107112476367739709759573161284804965691600703893889927912520912120012182666205571047725102066707808262390256853682009928767312626972501437279950371404264737845653114740841392505500369938753785012314827180721392622548139493349244868776825419013739305883229904047879427401924491886608593959780277366701209380684776913624597045646563832450176775967359575740966917564742273351616572430694065643707076676847175274009569084753290585001408049558626442875847241684111938269636240286423370781127701191489332171027429483348567960430224349659097041693518208269514130719140034428160536967254839347432978274865631383906377196657391123559893512478748782982437362856640824666940360793576774564089658774805956084387735352934500464309970653867406967110617141694744576875459073973329077138326898682780476890686089063893130293933691498996904268587002940202291782790098093149187159644921709937398166044817565713959595607720281690041432335917550980330150012996515315389027457087855434427973209392424113019795845422199646511747975355292049607363941524766602078541970677799366012571396411739087848767124585222412448192437597820908960608965907195889194285782454096649763915918920483325040206157485598815108654785942062304061634150427630134858105096953389823561758263404610838164216227242002352579272269495952367200409227930805374991225845580217010661946893475748895636894129312597199012039740220996905309585121854785604029297780243273122804338965961246152231012541175209882289178124169187526531629129085269712070594135955028512709340784361928937928877792262843149178276868250494472567535250337157427822884554430379982632774391975954987988219714704060860051685111260397270528948647397106180993498951106008464365900265834046257551215658499280938481624684700581313095475855785660541075351764044051813114584744268736195863873055813036209897949976164678202312295559900257004987288984784168722492720990120721226076375168118106175731112724463328326592085800592465755246663888130722407569036517609779661225567492860687056735235279576760617589185934434796754786732787215094507384105636473809535610154460782406773712722302879954892403209112598671742904483490092541458325078886194205460414303280721364609450051066339225238765213633042403420441486348536160639792209259945682126655982119757426860012413533947033098114753395984637726338966014512736511919210172139248814557962575783180587615151288826927048401556056257782331991099427662725557497067814305697811955120274034997257450594055197076525195815308886310673421182435588600676726915662687929184162147838117378473818406306945275908489380379780862091406099405433957249860678240263847158589390409778949861928363002744094224118823734454917509440308945611963386310100373252376668127805228260559510215975034723940327705901480507104454028021518609030202380829526344553322610943954346819526027139977335831887492405809254367198471113503572215178843775011004479092172953039157618242914463198399359121550057480650259959864965678769840304490377750761849198845425478103896085592688663100349260798990888217173793335993746503895824465561748212971669085749991005043857894704501313106840960582183963062148688909410206553483325248297582203557677808739420318816155566581974464871544062840078030878648391815354093733418006595700381316932552385800273559452768512954819274756009409394057004284237784489007153086217775319261194729249183760813214139446016837841146928685021007581086134110114783421944462567642017503374277236515866627245671068967120375984431234342370289653602823273028866017536131059525360980115317480487856539764309171110261769860684590393886806586729301860869014285968298733729283634298993740704996116152543382339385443153162913158128121236082960832689042982810006565763945638175593096347925221538869874219490670698702225383116021997379729017038038610394767019684245211164701130628501963813224376955871253520219767002448916060132515265164765734208098245135039666334297783052058553828834742925375462440540898130182681616882279936742967842983069128891674811158243689397057663526655332230382898295664950271320834998364583939301536204831065600816580847842286525092608925776431142409739838077640529068068393829412779357413300150730009306716675493251265463516469383245636259600257945929791278315498963772836481103405901841406000840681383497880390467853022811205932274150001709342791141394271999901977132206284153658597045854729288210183400103830912367336805986585842923435673003781381606858078342113217493071251778634270992376044447989249891413225581787428085092235833736396876049110028486483665260119782851258265670603849282822912821948143269179572822593278261118697081657817809698924649789890293720889474484172153674671522399587294778443476845903236129547540726556630770161378665856756732663579609885198820809030264643291632772983636643259046260576616821628935051580215534696055521599860289346677432407617942679866987490629579068300672591199338338525813403266736558938099934778534221820772127545976287643070652588458365648671132193520631681452264500255037669595930720080746997176956184216315448667838963339771304881524749553687298994629151097954576125105614997426911697217986886356403642608971804948249156179794760742204407325144909346161714679821823888272198744375177922176688091941501453744428925128069028890008202759246882315679341323105172173551958461820289008856829060570401264718552584231223418800558043690308809492693547624581662468010814686193412468021868566836996656904932423147420840923221693921351869857556723596007824234750964916648815032202685009221961499863947310797260575857243442314612149775976890903793777010573455641002225605048291547238304007318630617009472238999611290361289157814489417296609005359826738094451447226847720367078006190670819829561311361515385947165707614462070909454347321066659762525937548401594444194505249417941142917774338559934953706764889925831800255360264523275183436244120992864813791793784068029756577353310479625003268458427211414127096663356699360294216644217020777358279755620353092951374282884965008305712131641324356055378455595208327131341695599180709994820164069365823881257422943042821254747107593432117737013380949890872383031884566572201919604089739422476370669376018600451738493187612957595713976236996053715398953801986143720200406769274956485058611803294292800146331959738458386870161639717403141241885393784596594441097088811490418064850798389860511156589151668825001312618799290338208908018596491640983281076848970258377339524490014245397450728283067054861699210869171625902062686609143239636184616626384502800340210043109481094346348548801402522741988250047898578881787191326189502593042907318790625522841256781909850043248569251474026667806143685507591413460087662459968132885050341911075932576476933666641703337005019459067597415703899984653812331887646125993878271672006927796893927987337948563931583680577824951193942066901332518668163406268254799740854674600103825484727053849794209181106242346434889484741220747827756769721450137175270644894525968287554242223303009716822786695171453665455133182687429804236854291837905741660931832593951353343034153557527282931243982384244900378031928379098049676399410837951733526507893078676880413107795166332188651859219904956539546709736707279639322697786639188795251214187913545280101273945644805710323919331977493943523014361419420264695219688475437432524837333909209411685436616482810849540430892184231696748690931504320808007273684897220424014132798054914003778004231248769460357525612235991959591791245052755352352552764333765196197747378170815687170652402163447373263924847315494775024257359620348525231069463888957756705406616573193269698464025520838767317559895374266389408044672003923667792475020766271109274586678659753139338122734039276450251349447949874291680696605029204035490770532471380857581966456725820042408606136406769416959113232864552676216233415315572164914649211856548221347550597328035579273542929736498365892364097094319771281593298671466788379329620963428964399391054789462370749470109408587203337144585591701389996600328074126160763313818735006528815641499666829650185582692733178373688698543517242746727971993767393482830659684828792319305878081374198511178648135976609215311780479573918269717846171845712768973763411629725573121685072013615288822734970253242423118898555865661438229959555512751851895788575773148845423777890349105266410790425676656189216932505440616574861316184762239921274933420628085937919874200406655659537043014319597342584338245740743410745120141430807665612621216678619896677029757089378187443930578938324710010555565072164321168777267603090644972865963510980439046336039546605092011257690009657616437097948823516559501426196126296935335300824921418076743128320730591382527908894740103439035403193680942669105810867571168647312291329432012509196508153317325049781511856766430586662187731874656104141069733317498604435344468444733443413779335603973203030518099599917205521482835328126914366534120363127961704801040203656424382947682966788252217908086280603474800514257729895505103179661004779234038793857070074849686717242154377765151153312409458796468595999204770150921750725316208314125912217665882234162675352956480900135038990243277917212766032757235427944405149880132382678578403709099088664965419142459537718238793658511569221993752420878429532221163555923281510591268949286054794608878025670902566370221116340450568311230252627638759932309239643082457304478098665422578057356333164042060771593793810788039951264341294256908190061566620263165402380001229104082046739951725782274801772105751176230546218538127434452510751151583339656970625565928063698260797606152182350234320451508595527900825465755710772379644277005296151102327103745074791870811187429893741842312992877896772739859257634825008069908437195229404226049453097465780791739789509589704294487481842327268125755426010612709078114292487615456209906967947872698664761038837081429360468779576835502963953301976219844159667392854346824825035346390924956777748228421611016544905377431530609094855742761023134896773005805688236573641600433304600416809324827044752493251779538268987980135111252323234911338030953920931379182171208871922330212233349688799621437287277805516843488050750904047256276026928793102108759434282372802755314278420133335799878851143439538717881586336556027355906118597613753646571416084170959304441229110962909502211311882112844736870054038747214972937358300889219660516656749795343827385364017092834798751853187449414689627312020843671533829383891192538667848928105200454750904766992140825314456499658416311504343353556618533498652414433016988843648176149979165967480875892044024858686661266473848253945434398121861490427090720107084951282976234729036992569664166701222891747337505554555228182096858486602186652576433402345627177482327006063766958682267033995863282120735644406948385573523431491238664808414442939889052848167524748037426390376700163994351015170162731196602865436960447662031378064722999392650025855287606893432366160261541799555418698903633885661778045403031535820855822913787840929193787861132841077204433109308155398635314261324377342261543473573632464297304387958225100337922662347850045006605791178103279312956069727545837842559056519947217684938269292154504578940625735393438284267574702412488482898420771079849501748426407066191270980174529930308955701682869652123265997177472722896610706646464923572597883738119593979085487439169501839811289380533088757690196229871575201259193959542313487696260453008765417702942538570139182158947795730717249873518971808730167084044663700617003269906311425621367702214151289561578675369409199341261103707568678814158726578009995355655137133901541019556122505321994504325403871704320922253968996579127993632289105391526354552933798535288691082313199134446709422256091973190538051928531453840978435287483852917548997858576934775045000962950694334581073379808860671883047607277862256697352645760763535977625099162817767179537309657609377534710892823782637149854047320833002952304219988515418064858984679378701326178799316664997919212901774153520617830556039078465713189017570059954793127236063523037067929062435464613096970029093076912747783143059748334120394850027066877521994360554681856370109334612428458443693168498731551972306753789777084674501211706234127576615051124534436958548537872019986574950926982617344813047055194804682107190283637688047310239385086135495301616456531625138293310251152614486857415549492125064520861704079794632484039725876064846021378529606817616095303590528991626377782552752082300151614351187115701124111139801330281133208827991519785968881781873327766432254815309726650329890358126319043093228279323655210761772047878414091101515994486212492307813342121766282390023747104345360756205900782805749778990963583982287949451542988585580113868692607032395811031691391270955851809341355886789809499504991196483584547603448099864261762301357468922793140185826295596219940853705432050736054885426389244625883820069101765863028127453818415631001007324072117014468319835957861531655706657287929710356805726982564523092206845554452647848901164057590459933533186655575663644562632796980839047619706106745773332701596304954913791085591090323064462062219965610587556570603794576816044837713338625849233967246180628984130498348421025523370460079636433731959362160752498144236303164690439491150149757466421750864868866203205809191238139301222391682886509464049816956334191619254192107260008239476559230377695626946441563281103092692614489478078777601530388764071843817560657583792928477344571670652018811022681549297519012042287051498264185605808417847133954799315411839518140665609478532177831514127992800744231610759681413148837341713108288347631669694985902477380345076450353226500596704554922448067348477921165019244025648292290829611637994483613626200995110767486691062419495852605806800076533005372753676124365505509930529419529432170217895727206134647476370345291538572870726919146215762573526316538149524287815848426719233967651004411292453588348334802920223183430435347410922296785057332222850456020213830623692836078961051703482352447557298479404024380302735208338401427233630572262972976805092849116120248911011776273278494629588884861750302552495153734053058317023394419303632098186595061379024720317565692742201895232046518432087121592961110987536508606017592983932535084496862065740264924936559655369938110934345389321146210349635823658217384212217536247706225134399486178645719438365553462668633549823591017958712432536326544871102030943362343422006133405318936814269955779840774014978133695310838663157547353163717625818671704647048902309085807450554776879729424771436947265099669973366447710784856569458059482259452423740462073727323331181866002804910387451571185062139240146525857017952350861114222495710142585348566229060730985121479713506882312108620801661633721475883413218905744293777740591651737093139086662692290443571932049265234301144782107108062708958559110196596364782848406330212321813985960939782436103947680190476566359100141719477915286782127184381420706486193121178289453232053190317532845410561004446061941095158181244152097907376292426969023824658331013390545608597886689182530165819956973893543002580867554683267707596131376133262547240390830416149986255446948811472077948171390846551562304831667964088267700176067391445126403966122523106854253172443201989551203684091597978924688322448297335385916456872163730822205407771019218906851820428201602442495706662498706020039519636767483923454865985309117822154552081976214616857325576812922804728274914672964983645313362576529502910737488518071143868889272389365105343650747543918977907823478573708671477297980988903178012869043580663613694438812906997463045808110601634308525039950558313622678775420768981847003119663887777201388149742258580075622360075640601610488149496789473912815312620449469234629863043190645537453553343377008804028174472971791673240393361914128238875833813919246776297585641302954237521171155527488449152302022686745622416434883371036981598917789541846263053166314785700345607268377485352170574650982024721873238585888495883874433667796977027696137101764415492063869601183481982754872313244676838013215012130974586964306759370014039945766510147717033036327945449933989860991863212786582016145290161947158759027651275706572622924659522551707517024449821533939761728175643372479440209703442470680037217474479598373250557980028970547539627609204037332601769327055944730561180133392001855825379364145363207494890507391299817882693769430585558641933547223900070735399159456137169891069275260887090121540722788476810128093598179288358378683729485781007414760325818464271332734785210996278010523683971163520908580071319462532065679244349462187984435752280161454209672895711581795278725521175949305694677178849093011540494486408640918513089049326748532088250364017734495010573050515922666304037962154155078638792154149543454402211735124685978222408905472388689144328172360762516374427724051585753341204154095664885204021164279898907756000678061824164181142141139275112160508003468039025297816039432953859983299164636044567511709689453847936012225589189351569001793630926687148414914549063979765845794149293238414507855024408422600520765899399118288789872225150428255767169000835405548362453676927840889248714745534592804930340341240453744374869659455129478425023780484213461492427401705109573283243267166068441905685335131912755454639092179742502715303634166009115565703642916475770914725268034582969955703433070508787654469386257887261663891794636520921320699281348048640264654864161201402234665396414044532558275432712007656203697200858915937954926137452096731389801622971228019872815922822849996971518059808362071470560427443049170247842811669600704274197093686938968447983823471856359121157044836404050789243618987194677484613177504124775719289585568015352907695588499674958140667507647471331986615475725458142960618530982284259441094648126185071199789885653247854747019660823466525185737783983126205390178228946300492235397123213503524380679417745145947144567159116818367109993026072118829347859513948511907506080782313454881215715531712519934883627961085172661673790541116086086149689636312294512570243250450412508830375721178577658440441667153201031704743517967466968007973186434043846940909138378209819080540713157844908704485306683374919384303730255108044836620373361517939323380103040149208251578134791944750054126496579289038306659876275180530770208201976111238050064303456615350641152365815545068583565810340765155477772314008460110538957400308699399339981154789393273098511025245035700159542963585698691275518221219078602124952483170566378844479820094401586375288972442004892279062788657733068736258674131856512374619981142977552314286586332978921116537948017686386296251012816448000790246621031215145103382721338556881456930125497187383143246263277358723735857508990758778655759984769230361630069631812187246041029296113114082550704012545827954624420102754218714083530544759709441205398054115038581909647665198191555154203708174461437722354741748325253863742119598609606752089028702251845844516653861475834073394502389131976769125131356992881919174662751133016880723938493157390635247161615432413614174132413617912403792752462698322528625213376279420392995905732359573714105566057292355520409686700694314686927846626950710092633952152986215437785900576583403094465371604259645274802185669914415175599204950671890950601077995402866808628750493426983899279848450166507889691238148690661709650485266279266212842189286151418511513806326078066914311966991366188638278051476468080664348601051962851660676708189972396203041485516740655246570737799182403967519646887958623168929918505868843874489325682110363872994565452216285691511226186870235615914083822058628765260132978067938351141206739873148619677880040549935279231570307588851705573117263572861965466720482260198387730657219589363219878846515056493221801328984716304704042280719536048238699925678034895870138249589363551924290951261040231602490706763774646771052066672713441922506290112148136718422604304548129120617488832402378087877332997518405196854897072036723284457309228235687095182015274718015881113307770163544955306489282767757090098423449462075329218944694196212643233411736184269589059940231236665931033993637535819030195470325696641666651994885634053400289621617055477313225404113628437805004920169513472577004286803347921502742631471018407139992234970274620400040221655455416783550397677451912129787248079132847516866515588082199220222377835183476332642967092329882637696365979995985079495490724981781823202708188988237865814823492479737100383842782385105108020854773016685117334328190155319953467636230963291370477022585900010336188944263847400675166274269560333177068260521719335136456959757253290596015232768859466171290209990599162344008237876522950672705946193969879593403383179146952692949857250151096990813464590713347608527109626612048883426154343009749117564105607951256756738525759614385074575278624634544969418858556041569135283640686899559965469043291608162062350666415596466633555792940471675006722163783955667427608464161647608730900440074017002543625587776388892369696946040228424469958701158729598012922502978315263933035619831087984096357308339687053903298518022623377869539851209854863659928740283821081958570943219971025777522915610107199524262494239946490004293155402863103121462867676141518276563130927259147304849692082811610408881149481786591656712863547440599637321225888981069464560750416813427242103650727127173346020120140859709186605576545709939916116642242251173472904452458196416675329207186338664788046367156929476649717775049223036527956436834354001644404312011543454539196769162726777504848428510984535310664800074135639170268520675511268887228011668128464175737178019710365642414896098660309964250651170022841027541464472955281998362549725073623454634729651608072660885449199491144523419702914320994014371407840691669301536340021316375952358712706310166430209186883851862308026922752198441405517778109667910359143517269847829204181875194236398711214538819412825407307511477036968967227269966008305935141116002967960632617022027309201205106879485507601077836490494756874549318955831640967522948949355080801231880437904585880261935641420320466577418486332225134384461338764682718874236581304126690383001793766671925454800949218028845148040851912319516234939804562504202267497892963021423580841956217212765471282882747042160137483208936914390884236995082291469223197037442700139274650334873448491500065883975887380338620513528653177023341531006785450963577270680158446100040946282296412781324529953687303199409789144747910569119916181715662947328107546830142992169640746478833546626145172744707570639931226675310583082000781289016657681306052201455778029167435367229032258996112842778150065889307746926262225666848050954801341535830676395051963904221627371650934252716219978555972992055841598646189129721135349156245222925399486204465410585924294873287987672882880824517925196302265833457163259437292955010159747651855985069197936337326055228108422176470666099641874658098315662222189361842803628384639196104102871684212048395705838960366401039464130155283695045294066182261433826746066477827276124078128660379838648751677837480076113730890815621379526825685368642617822637933900140125226461838036063245994675270917179427151675460866472884742166467140297641538005827429606116616196875424254300209447169914467695625101364515319759614369804508498167982735174263171870858700505556451320257964888773590487481737349041797190383722875388638795232637522786080297062456313839147695991791386766771369192414046282369565629450081699646944265696548577097881321702381851300541569726089215097867129480415819030497896184202401670509567324113868552482799704430612334679090908924910001400165549602928448424262329084369291186269990394645490342437420756594950381215612424452694107192225126413598094637142535591058779133005085420067323456174558332851936643983898674387389926645566428600870832823118795912501283955568887983702580246910192547658329135143755103843830490347413258530150393704960253161563972065534945330997706218200210553083280615070084667525514383688256951746045199139715250842761271924883805022091592623599347106076087160604441477499454257641373407361107375351949618528804770120062273303909207226335457498577745662910925169466669484836805714900904918593331589455146997463729118766880366056501632109526068208361466884168586683196758084627948494544939119508479071879012801893502717618531340553307186782399327851246034254297772506105581021822519384926971937794587289144712514974740306366433322162111694908212204851983087358450753968947316419148216906378262732169723745918048230792108820427300174137411866167711197511984679818961531514886166200918402142058144050950442788179531016066426691486756862670032445386098562545909744515245379116110333201901467019957641084185042213307302269625396832473467820357302653185665191285672548178582408562823625579434187123260493505237233651649735500609315367039472152345294407692243389069748795828968595149644249726469436361114469660264038908638435774614209646938125266239478201657121243844844636911179399344086455726655659590972922206642851280745551900645914894175264380925194373024531016119591606694453843151623421370074885696742762843661329425572432874042054885656163831899469350871278488184979001642007611261354433388956712453528003215346141218027175619449599582713930070350992810663988984420722951509925649746609208137466802823036284478335979207220579969671152453528959755999282599063747780009789869375470031304036768996708982659783724511726207945200368878624411002853810429778317537588121289466169810069823346733241062817351819254359534491033560621101946056080721824889117897430898915179671925691732318315088394064099724917075846590418491428713395100322741607409846288576284137950512784709848038316533369906425237695712569237546669844216792299369529798029190918984921055280817712128255342525912539569178315178025287652344507428127142108124984434867567285868074773797246572482440349726141597658347650818018381881890276656759752532900956979378926312887423579938837213329697831361898860940013672462935209031176392332071195148359015504356052771804590661274691321080244658961699412745281916306143687926712191091310954264061400036996845462863627903380313000496892660894703998610327291815631740257109659889287095078763229853644042834546856844812173901640008803633062247140102798123251170224023303407740636465194859403404297690483518567363086794818874816547687790361960821135923733260110357128906421244096988369760880335087841264062350564621609527726723806394941759894128710966447749167541166580552231256440237463857225461631656078990096373313239742967242794249269353697344430587954329908445445665340769551195807486895249115218052139568862906870195866926692314274311638917455243190506357552507594377301644141094385312487696342819139501993268610446181403718186384649154237618869357808803425158760460327471985691334059961378989211428102828460526275131742837188247652418706559878009362290508857186528560804156012808156697698362144953361513801635162180289636920760028935127317074807179547227352844906548253103365257554403976439604067359617016114200752670145066697680746558755633052445016694386244999395759722215896061699557299880759367611436589256420292855251373505683266620911827812258925442129549483479526363277602240050860364532771032680867144814045671104335790239409846109395581339089803717739425281025680287028388118850718521892924059744464173967533960586210847904168636998481299148540540637206690962067982486294460365241439768480629983008841177993454242267830995346108394013000862668582498459017378055912624647279331528407697762993765740344823355361588983668579638455901707289164127812342415692469702195220961902274549108217530481068016319750386229791695933690312899988755595604830356178181895759363962245648603256926176175024626521681236480684234570017314535484273067875664894205228856092412766307989312778261793518017372762951264259519464643689165914451478239325933285806974270013984134266381100584556470823819942628568359005018751106565687880472110361745728262233890597942122605705007827860515727837556593064903956527366568458198578376732958305137350229386558951296773178028347105199314850976430128791801350012242798779918949059976667138925851717494362716126855206183996790179376073229863669182260295319554133328378398440404748287576819342840841411096744556868134305980312067874508422373817571131718102619726089697951341325404088213522204826030033747843187151889005467134340599601967080740285337735645151945274597356004305290351931652539877240241021241227113018424063517039671572245930749028791910552386059178603538857251724402181710101401664623378417017435018164479260415502003182602220553883978654966648335471725988755083871302671654501095946563678914482812026131757870317562224164632720974400339534555489686313590937459061078035195217803448081696088953540570968362938624374633392973656288776921352356302258076870554260311449897289012300639308360733192575197733344877551703013217030187189886646779154288738220311671567840408283850720589175319432353404409034988748365882257018931905729694423580568447237188903910260628600376770119251334221918278674675363350044336149308577286762370286822250559294310622975769287359994844999266211713474427244792241335923437450433554925103120242007551959077315319628576496422560463914020805743345882836038239814733851821912755319556887513360010976863894755463367483055363114029938273405120800880329975043478521967480937994904378998552399131996869862356274706460280716931888553274719309971247773009589134816473296921398631578772468053277340476107432754360814070066450013121602508159930215344905692556676785771830350683477207693226997333021082976710893158466482326355898537932919207288873687103548184219341823580001663978008663041881507636973006587964770233805353556994963263602617444733893024149297907265706422921236679173125565521309673024882232284770616848854177438948927546762725041119429764317181740979029211455301667639242829719305334421531188728469505551445241551521551480729865646623877705146916774214260277893982684309470034504928170128634647164283844893997937804037360339811015073546640087165314653463552869448227904077320610389263819649702998042172796706951501715954162011597316912378413092454898583528253490809343869718105791407894873716940923041349846136588747955063407079897702808518601627953532367055009555616066748946083767661603980318577569219276668568951010745018839766395623074428439155593224396595964204429932580473024220757180923361030322950527663920617872336170455678525851867463887638907310273924966374608374724559234347042570018801756307288950490655717452970896654445149511515542842946898090360863951609130577513770035110303012364682372274759663283346172708127129960053022285078656899108087871298706215958589968633843587755423782225750917850944522869366863575280608629024354261334777203718275843391791689287242489068540089681487878309641608938886757261704655220376790506184990920957787485862041604489207818935450932954013757677451800510209200990784638310003227714492555919426433494241028557538650172965032930308541259304957337297256456828247188353602672324791829553547858977563034410230789534194661373994036804851272440269199745057421649462987770116978871408922339440454972383719961256386537003039887291643837908926029374395189284129814724581043260941463228563516583201140532637270246242176143098762841855457513392450184216033072971761527692451332445114413537393957330607882415957814839043596340979624768721083245277578097376692707459128214343092677908320518735565581743690760361902741570265243881777268948611490004387457538174237222070761433126541749276731623169071197349093756087298433613672042621392496574295427006031873776536501141747300731717046674503875926665258953492409000079085993380442754385151858175203349536783615056021494892638246417297337982093800044082821419532875907800631013082659029345266300958206454503443604587174098080265323152774693063799328381930414633656746449412902489062358361228301309767188189539965343989612543197368909802226418923097520042713788751459583408957660869733362758206521450802854821245011257773518647917445315402021819915814976794395133710628893076065615634417323061779941101015974010045703008681380135922869302486837022930743998350656217188401117001478736593943675631778672752575515461496049208706987671743704087876535876060809148516224033541907442664682989119774538925170502240723525656133573580804791881324670149518379359836079816738679962261599903457729783561053391826357336544006476534318683582271215699633345503222876914934619333337868729498450237994982218291016627953015662894921699829368560859154965416595359610589776632498287167364754410068231227324702008402676535629002530671769224400479196015935424427580482291869441144061641448810246265310955053571735678332689217868372566833190153043005861628354591695819290793001622997955850663745371509269571350077536120307204059373728563970647693623981226607552650572355266093995585363275534945232387719145541721284927995402353484485279727682254001818024198495747431292576953190660709411203482273422833672551450707782788821616152774736819226110920408411424349179215448122954490421855814761064286082157680036537779515127939578015938109810301307161810681397081881397234555022077114241799474255517243348159333739479398484159726725246454116971198792273370230553571233629512014212165234190796190975858526058718150765678214929746769853674740105185841713015672918888810008693190101814781120280519649717926428240207213412918813842766161388571641756755785366861159598236148018411147196738838572668536971582475336243421565053917258413657997618969188307863987435959029917005474437021228507394428815474905986336079375783190781371094187506717799461728672879969539913192596515432244565429421358403382770184790789041941749221969399435400675914620400339159819796518664750922153641337304145859354160790588347420811709986820991818665937833612680840107353483287768295941120410098986495631776465152351836590452405612315432202541549565605376099667656046929712202996856296562099307621009454356187313206783401483320129114852595771098103247477678526208312671510082123258430440478552248920560563997297792497696763782976142252901788814468003217927557653040286267822193712364069951243496602251252833540368528145393182141656214007520213611642930860749614044754740799737525431831167686628387415966988157024671126568795616425954918100783405650377558640879132055830608730802606859224459032448556115963854444968455311457765161588891778433568084974290691196788520722147060077656836105703754451985329058323329029674570730953045262780292993131140996431554439560547690800559684283369784296447136514483247479154562762673868125307516934598412578455803791891195777182734326858871487521912011476795365567011574392774255951482489016912108245076565418368095052940106005596211054920301397008841222667231062293337120737761363393353530181851380092454682820447787868454018600526321252294042104371687959959474680931735695692898866805622238957384076121465399040266887208377179926524331051097453376318360189865609735121305668098315529225018133956398047879462384716762746856833288369306662890455125721449180175468462089807804557932004577101518581311531006262466549800913628506575872186751556903937247761404887598916346282279142281020412405318220347379297739691893378278212448712936724974814541400655144942944145670222100866183752168830105151412831392959194593476563453274499297741679045227905612491951433645587252831722128826735869110743322378149264972788248522469584990867379237328548204269867748770492902201313681544657118427597097774315434723498362633431820282005606419594445716048730896524063886356441100257234251800552438268824832364187512128838755711279633732718405813339657738638223251188682017723084552186668723083196156561695475959777364216224441741969972657584597152248326085555001087316704960570661275516875137783856534449008574587443544073069929568861662365136270085218193937968549402488744615567117529814600910492858368244546285159567504017612864008010570527277375927836478204220819236693724022706364041228381827218066824390787058125884161237796482507303267042754234514875529276732581261887004482301368742614655342299651891518931037843314497697346371409787062569516537672390076090495962630710776456281046552953820451311990558088775740548396570629646854723094995014725396984016909391953967262141978118747060420105283695228748034210440171143238978058226572621027296220014850208033869367672495877910416073542392016822708463284684659728369192828916618764887950707739664973407439093503762769683607652474039654436146564699540130788375581408065531223734158429034959294025641122894738528584302791994447431854766641292468770881112230764353782937697417470820685617061785337132991178833005268641695887181511019726100930828680740887767142803580406918475921915610665103799903878229573150386229137970513430950610158624907902853112564229585206979512200298851969370308087642840386800402611872001589308644759448732465000358533811167006550361892907343226260557853101225780957400587522873068507967128801411463241091207887487290530364863128009834569055038745635391832424898855409212298739157514547426746720363712023507174603325894567041217056007665901439736149087533542612117435497299943169496146692778236094020148003000502570224841272697162518941543656267168323165999163013878313256434430952083730341056026440502292613808068459544987053809534519590256516756528258144065668340317041842487818124524373002220763023487275202105672253561013473428997501869374089597438160539945527181879503149144840422478422805730446519516751268273324307279688738999809758265746532793109288925545614297956460171721474003494769583443750694318007101335809919562979704969924469415528845685820412683160914804351743527829636723597202847524378402956378250032849961867190387681588722901197284307231722035728896776839360211928224725939722423271239000680956029977444094210324019423970780063108811039852096207433546830400884997688374503456232156630264313119669819732086086617605835183921768890963008712226091728954887878832620140879999127208614404626659698015016304841879905588415948628434262934556826413416712094452488823057955903281290507704592305014902949946188812585437597103558633869922738053838693919640609892467560329365365635941261763461366334925457071877015513794041050363386338932793140218605635842888997896007732705183651203603249279725221818839637754379137641129665005587882629848559053550778886978012809190368065441984381862646379929586888202379228888114587406874549878486335440183492887271313460590431464498586105496532730385514152841473256544188014142268555858039418281543227159583598689007314564426479425801459017124814994526169866426781738506182457595856836212981282209089688814463528471072938988454191551595483754993897578871408136827397085335749650306652530814387424801644298467557950559729715805171592502524819337322642385730428156132603852060519290452942101767336038004709018451054324162429548263382543471703080954628161074798917252472702988531801615434240064196771654232850278579609550599226401807063192275030515637357503968620726349531196118094823833335702484558275631493773456813566089795587568202406876462611775202003622875162602495819011930852552409327754423686605098724881873297436222229131730661206324008404416181500900276822568914894168632551616030173131180175489103982211255807234033106531791572283781808081274879165815182389336815777008890688903352089986441306378587982533686712095040526231683629744174435044660874165608825907410275727185063586156308092001386990455678652846194324039024665003552762393601191394456934246337091750551345724296462680477988112451868261635017732018978904181795202935840103244889459830055284057831076292990580614847836844552938704090723015206240513824636530660690771555653486673444866742823086585443023431830204128550009456920010214329429357376961235727909913530882835663844960419258941636281138141821853268690750897833517689876660788523922615388869399218609200051112301800907584175201191215301269804014548285168089144339745294397879853100181312413364528352989845743871188698362292250565017316326432171502439900769796960089009170262780922632738722244173573086953581495702459449012691152041599923213963864184635087201688325138527960317367655448364068162134283921528932701551295355285322371914067851889859299800799007363083966654720801017275959469492178499908972106445987241700725434097155354150243287618881491808013260161099168026798859712155630501040214305423745391432843929070823654559881366495435728800263172834755034698022381903059732531757884305789238313039600896628005309621941852674077658110907465002329855459239851896203755867894308965257541426130043079341655727582233397505537495587138422154278214229280184893257814642180385914985241623985046736449849247136630813568478353873046214783678169642426821788374799522037269901420065145650294668992529426183478794211700272282470771402460300647411936066928817116534902064313813140093917474254900048335003934556654676355841025906236008717822873308754923570796908907628759278992988079191997889609527650102070984941298167463433483737418010843655783263813743271455847126776699505879781497201062351635808045808770284083971733621279447674283875232247071172777296145825571987432938054099988871477858195491871589535149899841055069708938821863388023104798038536308659568063489823842727171860950115105897802818768916914794256415020883679099246690964204137935965410396535966171341303986104563703168263747920069481685148910763425529161926136437192566423309371994662640974941135388118144630505230827108769821596605589469559727722428542584919282543170329889202249601798112523508319936783025784653105020170067129773440719529180087271774399879795030202704825058640897951682419745321729335836623103423113143038392271934552672937486121553132285340925708586956234207639245113160144555974863966951487152263487747198661922375407843132539892039378340951989410767659507060567186563793176193065827149752472770550586652019807787220869447885651725777695319187837814015579983836186242277365227235488635048580234336686323933571851777674610597616568028062439405566447229816286128912743353836382149386323315586899666256623491252739599999870289451803764393457734608315770227510985106295233445018939262558513524493973192037124021053187821173521798508873154095636564263949885477912871930807136440975452494846967287424064998486032707776275447114365070349565660467429376334779200461886442925586358569447201484214253066665115293714660438661320215083864150429747031483293712870725277714202303859364460199688592568545673173203359508859624142937742821005298483428159776021083137433216637929761228831787542911026095221314929204578615127364095095940281867577761901884815652805861752007598607713621194158510056215057277385495483284270358249476057954640985880786217385112621899680543476127958039129574810800678341433812428958756848375355855225202310721894952475005053674226983225176051362636278043519171840243598741729989475221842586524317679669110832141180310752967141019281331283834052936080300672721813100899515327451576400100384396837544720634978848022769505257900838378728984281155555631072763853649066140749204705477607758435592212961052119807891935278039567930720380210408727369319195394375878297543198691306132251655875757180342372566156351796474760311849463304229407320145153874291429041716837119300060708155398572590366318627400797936577160435379909836536114890563991757390605869270947369601112286127411608338874307610862637253755380641799231633930659226093415247341532902012420783453107979975864825585383601798897714687103754243744404670826729541275219395689064301186414403615339785140439492883853652898561064939782495624410925705376053403054472909410463120245003541298611874108587879323382994946036350917521096301134569730653746988650822097620308590559616247426146974534745592129753879075544357954498852489985793443393397351409759970731482608029379886317663304786589706939570477543188314506659633922726614595775651657245010943227358332124646549324338298545945654142929236351256240768829055923594912640065721875077890234373504180074700878194304641324306334092096356382120549661473998996658842489545894859477257502383129162870784011201394645771811914632409421164770496515114090814396338473291414445347724774759264430517061081450317797055373176420175511830040199723081337974663124659976265002774060093635725421389786180216364556171409275104759860228858313015827933902139674470305288049202049353860778103085803393520721933363877922656534904800086881488392160525789624316842353213047473577685038449454158947752582249529422966738245928994457578354890262058795858733564229712688698857231900038521342619456129151713754510050582565490600179786312900711217707264972423263108025084118705008750967826891738583453501562332021082780361906454699747094447140140007099721707238906474519521216465776805548132316961215399066171894978093310903956345315548249207459248610409606251581980318861460911600567694428354550393307750077270530138849618441757572965322807580022603556680417985694520364201730197177232248558960610565918586954062666029933563109193366004676501046115229557430003223349392232268079925926271672772538276672685117675667779448227555850514624031172751523753143340146421441009877156141289123072491142154446668240932477270068263417507274705913032071488009834947457341292078021323265457134586771108460753039458138815218095026365725718903353944289797136981415433035731322234677062132820915994255770885018931961758219197277248684768714945913860984496290162065982487480024122748797835546188969399874040688740118950276207293180105252408356661313152731087180580772476700308285003090462713382740556922410965743308651732781959920214476553928564476667443727810961126338640079401649079157604904789460018492509870220506565890625163898931305194797248879709556613721721139998820345246422121313545919822966338153753743100735337818343496268288876819300493114292773758410711026874205739729863360431808142119026286089939115459565227173764565784562718742599312099756373411865658756908094806757383792855065635309760165186759292016279465973885120493148723671467560970219883811092226285205850678938481946702723389082938160396087258469678845439657877072696891184618070707627321756013691260025811688228207715262266506599584159150113119218317783424829524950507786546020688631376440490070289229433117453593426199022726197882975975011896939638140215865779092256936158968806450938178120938599477487837071816017981371494151414298054066772455536323266261931732699800201563029713201263231016311648200238170955535829269345534301896722809923625139445576958958769079425977216472353740487398432236221484994738881866304788019312936947315747585361144121421289358584226126481766471463156681608890411409713480473199713690408344067030563595005915600976702277214142934921186280134108779779357323871267404905015582879493522786095240914596502565278370159718329829460126662707441476767843171338196538170352795490221108851913516998960124135506190412344807792869208855169995749363745473256767179052412716384917672079080489023968717194754895000535456259683826998041236381393683404152039730586512945284883811769330554456804316680768557407043037708757884077893471189772381196656621846261273241360452429115849248547861876698545499980422950231823757210396518905011536938474118084905677089155905859036850615060519163608145430856451153273202864478196070053914062719567330257880986512624426388280083956059516301364236922849278523691864835510147283183404399896792303103118882846277788339142381200792327639159322060451198772213461918915280891349504826380330697168745749400948855432681356829978197907577651200444004496564255447216296550094773219341274864944527346654652409684982444812543662096939557646788202905861417092317007969172228511862123011111159260624887926818417203344559182674965386119420983677028432877879015966662685612745001379477260266195476770461651266677434077059839966795337292227943307986843938712290914325391629774684254554772283447860126064730237911259660070861186908276380416126894616248555549117805833617732139095282683534424564411021122338293136652849902012880290579243580011253443417680816740628931365938141814097782683357221091680340027442967148114070094970779912862150179606664474758681491028273289216208553061486604534418559533477618063493932671948143045822238045665777622912487611182642349670136230470739829411922288697186609056910098892911836773299333890098784156110843993311041906462212014106418999370664634913059314567093269630607291166982505912435486130102897971106013930688680544677943438541576490578311270763737394972407037122378316372455858305579589178851365970270368176292937546150023750246363609124748223423181815823796516914016893566868110541207379500550261102009169885372303676039136193970601214851278550957391340978093543108618387087109758127136638362643917752410347278891028573492373064148438288609308780856483808324544177546132849485792390941479272802245885952074518923461424550651982839380135398546084649190967939366113648944199215220127773923784783051194264617960075617910374206084823607870706246855328753539030565823530767084526735647388205443908729513837410574185339438572218988289031111443766109481840861433331311416981291088916518621168818095226373997607953531523420244381000084000497194057646251130574106188050352597738549219998278749577741169082868587664729856345463877051838464767869022608828135501594809948262213491209875241882877651342970271158587482111461639080244359410744997901520848700706089390817702178373070555886909770607197081553468982092036946132561665541672230763931373233748356282050092124419859064621767873530384079336485689240839384730078541681972011088936120730080496112601552486287616284215252638578500216656999453758277121662000376375075252383004252235074970527785845443348225724926884510403352215566690066231493250080382597396064621199906964013457023513591644418721862676824674128111818814471641133429186848282016721332672759756977082749477513939631757557019056856780896587211884209896415049123717420574292693216762924876499319482833764474087132600355766505369848406506997150219504625309404192016261026646818074366467983099123368448184697859345517807357917035431505656384756857586157142475719975634277016539571023131281110167645670126833549323808366174388230408384967907721097769263056083795284055163636518493436676561016967178309207371024815172154295604404102300147579374963483661184330229639903169319635147904157254763415710847247823157751832867254738855218687749538874726410624001170215501728760618240055157138949456588224803719549616655649618979416153209371020825114657603999246544004517895226395031701626781001468438127799442288263172424397718778928397599801247002179220751540556049935893720132291995593411367738594811436394618301263215589553527067177553820071154249381580962778241360307906355518389052274177857820647090042503047558333906374686937633432119084255753636182262211667861814260269888635609206967469066963484525996093620961172593466967567978954378533628087975519701180971832715597627731837082517944138025490449342159967696355167271713735546073960090456558961853247989917583644956068079352484843598816095904732531621273346495415255268423127794524375897391361491465532885171964763786795934515492232659064422316228715464307743755672076993239855197926020673039513530230847489191484326061491628713699944941648057608127176943156880208827716392682197385474015542333165378688476794078925801318817141719435561216855374737357561929895583592338659419291222403194223660410098085790268219024290855858312679400291151736087513599604652409742049776094374544569341625571141152088520423601840144602741689765627983704009198851431738376585723015943289115347428860757481178816814958343526625092753881804157877823399660247080390855851933039104749165913372685469935477144818289453880111131134726944136182269918363189310654154029520643070556828779785143494874909080478389983277272829570970423802505263987753003114494863702870374993463339169788517059761205534217565751158989730646938398239186707671464631617694781357523632287730261574366482284180305888998515785424895970097001632296975601913318800293257989764306630806915515859290373902190397516837060870519217438695815178362825978812010257504557252262430836669283530937510345972225077504401383832523188341175553018295346512574763658524855220416567658045822731592228983261270194076378591288858157650190705219477032089733944215455899256837433991855139367664555265857635700560054189555291727362052213298966911318839916115269885699941836463927824161239211131682147589328736143905605737353329264518290545782451265419549215295294593209999199052769158955947485229388956833822724292708201157119236346218645175288159976541886957225797975405250648940351432552708764894140497918245529626692345009001863014282210404370964531116431100607920147558690838549639278393923989760527887768192237407746941412698797698160716203452284012403325876564210250282328909530145375346204876198713233861926718532312995041507261850747367531948744706134981556263670322290314238914794951105661789459128492239822685422048874156813556834796804273453548107702795862513294796674400906057026340797108720045125781467717111683216220395402038641002244391625938678780477799165962031040821050370134484402217416829344059019161744205770663098550646688206089106185019357791359318667016907143264079055799403146094348761868259161236371144135661442521620842192389028565387962566506195939891424991641960083371738350987388747474314580790621894944451918166500237559206910819379084290657996602030361844282636955703498266307646007550745577969263401400291034950848919588432883564626230230616203912727901784486384581507808118212247006849778234548418780174081819875660821117238015689696688040706541927522634071530556968352265869828740025992155193495689313659813142530605350485719534581141661479954143883622874861498916849764860959846090875494657926300625530885432379477050597714937239456366556297052842675739385192522492663755054674919337766775087589746288746036862584775399945402795394666120675963988179780652236641404107790323574252990913894872337623629601073002784110047477860546039273737711134323821249709505539783732966857380780599779726359030231332475887576770666048900455878796743948274473129042893575059988389582913660044660430794315664420725401910845377539091361027344130788635990488923804742100352856541430936185385414228789971150363670071360675027607316821720562306472848921447883057725613919261563853318671932427834426105857624382937175069758593546013768343132652186154229966728931546558665080937599941224804490307028619143947168526523298385885229200488009197882665449136669717050090302690813033312197175042644071554325859680137716579773295863287349292483328151934229034166494754821703834411079975990526283962716964306132359286937967996080417232717980250768577394475652920801166290638753735337527690693796801821514959478823475824799371203266560838130833746486262753437526874614993337553665323003428502683713909928997499463757115286316991745121993405903866905536589987091291227072763089213775502956165852835720686468665807746954762100825024447881991874236519407897314382312577316417774814448039815725865543190147488109661090044501227224460737486084234238128544933375003755290717651580777652912713088930379078044966213280428906192539859189389876369526398430357696745916082532111934359626496580653172201178984426651761538172575258387604186724009806885295679992624444757924534134895325226894412972036010290685515503579913669491831328682268877458609824882429899551808690745709385258971838953611906380220628800304327042386279187101447574933981938122659343917670659872573645657067133621443040718641450772259437244977689174609874331699267280780592505564757496805928455386250554168475484952528744868256678145025930023607230491087667908647936156839060108925675687950968659041287905176330895595383664871808336196474599344507647248349391555915247011897974055565110869684848673527510240284187024874089936486596700803795394890039743127355770060182117530449057917984840925396109127024162162988709066999565548783459009194663975556947812808263719512712813827469568141353611954042192326897343744844492983636863797070650904826260438379163875503925257490381653939089173838284269626847978809419291132405825097574978207883009168011984063871592370735720299593923506357246159764895057137716075595054215334333885135246285063681777101043570485975726218822045414400235156586714018963467681287992738032081934754342037716910661159744558381662265775120901807419943679847756482437593277321455123360366923210541533670332559131837306209455280631458262637669274747168695654641394946483224658257069396618239899514616561423974825449542757196645906573845365178482809169056439472190874209609528222843359826368234914821348049664343618950026021930463491033910658082728845441769468427113514074418662367757632594015659632673606183278158865207933470365975952562970524651953056843492801092726728174433393015314083932262010107508239290128833718142324004211961687951147694935250336630039434809316751763229034714535494112439131221129074109574445504177664271677282394756319919989021967493317635106679268050311750698682575202393082879308349240230444556419256366877036765429072546599538649891338344680111594506974453543541546739355606742096693988032115203913773052506190336913789941938174979004277416535563843215079359828645861226889624364575889317266801025519820472882731612265457545875712013238141925368236243026431508447441814768739735455695337547039566720856348143826276433239850914269200865964697204690840554587604426950581750583803328785215832987774853833872394234242612210870866895824960752411727321369700210885008443366129876827675531838414419238855757411841938190044237784235343518691091484167734978121057127415046956821260000992821476695092626074085092657024096857091282640694818893219170576832438697125992895721276354235341928208073093988805139117687640455416657366230131662532374558185969033208323816776187632571536657440626554337875150319839682160357254763266376644052111986778899234997491655325283308715284392276604468355513462860520387991164938639131382215215414352287363057061124878376344508092950219232867725239879109771178135297238467805944604773369357829530403735514799282354270240439128024383803393833010881290730616222882154816889869977476354141629215736816076522073433014193456760230128727643981472851619698861682398034618494229629373124397482938615551127250966511006521104259765288734232112481820307243984729543139506651286998452099682960882987172777552069776531652095798673147090034588629811460806702052562555046007272089573417259974963400350885715440235827081478661694618054210233704516006861174477997093069902251993005291136448853187935014651453941711152747687307624216481073419772291926513946408182361033687493757178842264081350877693344850262074782752397911689631287390933212703458309199681369539137481015642467931690814539392502168788286249251896464732644739387641647864471461690203122800826979867158364749584454648746713627594328762885682864709514784619184618974481519244785717637218102865041223626045631980788643171202830740849682952080308747080752960436376942008702072326005165714464591076199332869161484590412828712057009046732316746866626562510875234241971978864840775276126594069162243035329161392182116380233919954339693567589253039786482250839208509418855195817559072106647573356917767522280186100149310398314764340601245618537601911506786330675591107845376465242534055987845216319451195864472196185057732931951938736130363188716470621095328111291593063521563462184631820906702546755671048278568840552042772898385953139722146830735410210107310548583215257750132811075202840380485667391644993563113580190947339771440677277241083725187650730301627818108632287095738615557841219949083823297582274364072197997647070245544620331604369155592483193717785097967363978640255667658270377031410294187933350966282132293558205430839624630834479620269891177591229911070867670612307299262254693133544627346396917735139945053337803381538715584748090117141591581858732617260580380396663841738577199255640935513677473958922916562660870307411924936378669092450966214276134781899931073865204019811174537101877043338710487885350629134663700550041635020919020732154401714692092020385840343278267888183936711306813229298520465132163503733567035188186418300997918411503026668397962371513378803407949059943758104793078237757951646895951523932856568922044420975072862710202882988166800105626171386126431797155564873335640340212021795533161333668629517024704116974125237957783272522920062939878724168503689201145581983769362453868548150696332777590625736018258274168819708451104776043043046146382410914941142233770034502979556158738125813472655357512729579880914568197583695251739026004840800918798135496193723073914052475215162221947593973128061014094803446253994159576334489778102887050627283846207760300758375375229386045119315230259003027748403232428147186288364141427438710900175835839785316753772122395103400380463307999368471642032441658125585714994524351718925728349882625200181902933677841396003803094225329873876944213348375835484432354353402537491287530525411975191949794453468379702609628317360716746293465551855000245119393543494248752359542733713007559042838514523253113070152882737538007314901490938642642886125426346979922445223498412120939397626895901813591969616712751625562132105549227776375224797317977730759216444121794547562529868722019500843824098704084245666205398614985694618473925172747370099463720860195164409859718373146783562083432269638583526540320544277116349010283461179557068799323620533212593934432993210025624917185191783754136796508701391347387344690997407334666757600844278422972614020327132118140180638816338912377223106568745513746685196591351791184500626871400279709081349309227713570795977214849596280292741338082564596829761691748364896447049692480824735884801365662157326822064808712173917360910731437551409305253329240224867185623726030481734707148979301074837636872879291583441271891025541109450717627430989905244034265134432543525670998769545528630166289251536660703247026630863210391209900063278086692754249725795232869327535069225557692088116748470108993424816920684892557558006378967324105158459375950367557983804284082399166542941851266302657713913182910904191461034976632489150810482366682534359560764797857264584541290609414831536183639428406380741425294848636460108344136019014245808809628295772170274266738165928944241885277753393089003647064691390250749050450568574698909501776154166793525409670851285616808391211072662676589500401687192037163262385519114447133992331406364596610195386950640874814550983023118107721225123350136245223460475341296852565619424226483854209411471164739789358221699765228866087905121690315864235930265571383192066252159775110703725343327043525512924023979818402116156470089871768868989574894239751710902041068969690233954972002761696124323609704150270283534615982180389290877225091571857965074556625228595973326693206347893389501167806398729942527406946397262549729758396150171851743581394664382674990467022198430852975221166108626181651335451295575597651706545427516287044573254450151531636960070511308076495997120100424739280273474119008810675717910909230786337056992364949372044252431767541492544602709141395347430110919266275643936337848276178004938827754575540737363508987842136920174375362773255720413947928433874993867661875979795664162312498627785901429481823690426565435660914910086254593413286592041128967232233585772988355443338836306114351934662710398096127052814845801311196281920310578843002079350614080871162824894373136388457634261409401923098872402220564809999802265829266937476927802933230100330479828417406781408859030369372673117631413501629415188278175408951811016685360365699871583005480367183537691751871693760463147068404826928427740589412408840241440711007959206713968447634117588282526463604599774932352545931349195702155762755977361577996581301421690927722990940180220258860451270703834048919408774756088368732917230532493831735229752357974094614459970219055874910637974108676284848353544845419027981872830060271980763398196260609151617032237285775637061504445279919979281163527647592055260252346251887156331434924773192244300880422195210591813693490462968830436087854968653908014050670970417731096546397839704786009723554693323281471714351434296282714833211082868455018344071785298921415207828811429724868763895009110908304413187165958411203380829011120337254990367462098831190309548651660619452021436242216181338825020005593859076234630349917155798069132181907872699125396056625401210373894228428639832136000726937645317604069287452829581591158938542517379227236467078202682984978317365851044639506547786018922848401824264945673037764781267204012593512582509277110633574849585204700580772406065992687169856350085843461984323135667621439320095543553457819474006015811132453852546420709110552343550409065789788276221905641337035316938135680500873516586685306695241756253150737979036279821696524934986626219513109119851838771398151195647543420760449879803124138773920695272284862764098874681924703569652924217601410091543612705870810792309920426360386952035658869600225324704632472333285476406197441827644851910435869083933381692943919868780361949845913864315913238649861155694111786616593539514463536333275647265393534892306720112649096703619083427462701794623200404522778358160040274779885848305973925228697749358676520619166152761286526108744612488776051271349413270397641051744746648815603577599820853988969954285204974822503083086707419140994037653717356310963847334627893877536302582610906775235120574547672733521801842604428060939252863330678427227361514576569516118616639421392093638819889848874193651928725526155167375160353299862238636609324596979785023636319059498949479069399621477562698880799405027360420209414748231514417666239888134648307785460045076913031299254311601047110265034781414385327804385841965876861723583465051381544001453671701942909680197575168808991946357082887259814014969688063091891330069433980972413404063765956509509971427496989529226312300286911429159059494947172914525366223533989337868570131019301127922919764886998029381042744649719849836621001639242929334295103493231698514581306496901386248672651590355909998152099426333827085474792303769092711623549088569764279270842009903301301842558831767104706232629417976866878675216440180252387816193645251778295498325618864632895837101712359519645962609843368541666333826528906354108789773966633916855058274772188285603077678612812833331398453216870255913667025094036699183883349188566283231463161621039341773658825105408309809402306300763989403567557347305324530967035380108426233070463169008157644100497171259306917681174604879442895019060230860668125112045539303321996976497629626380880168548362643047910068764195108428626602007719584387946223471081125266430464216193956890416873940134609513929257829533955609505264259483448377392138609472839838877537084428527699872903189540044011196805640907390268710254445058059378457039814744893329366803869821799722603848733371737974476054396379064897375313288950065500080430668477513308837395717705189366575410975018333991979338205617076276176711400320244014129257132574122140346862043378507284216274021351503823263818096500512869976025083170075110462783960180673567934503217035700322702405813948318374949988619154265013977350279950594032526047280413291861435998531198821714586792604736417617606766070961458427407994089820948669707197690403294566472427070063640682904032642369769597812622704570407687668210169191137771733868389114770148978250108983870384811216222660047809062262803858377546659654681437035509135925701706219215610236162562273474671892252039068835407882886824455105779842606155122435763914353832645848022446390891740552436242256104856908214365665986416480211119773426505538066888418947641083235242557648132360898672936973360184104764637272236203339686631816956497494885312238575508660854353190265659451935471513977338253736728612884822099073249283818610025407784507103956425585826438680306726140216237966135748607658360101476376067691439275234980949328536584213520372603387276247160328329660060978702899961846753371595880746039122362438639594105379417957564963330390824351120969421146835652896730981033733765589977463354710585735402217333157594121606922133077261144096082810018467966657223030972125965071296483425151102739604060303922419113273308625004763543356065969616243503929412661728144116470728165902463059180284868325279976572710961264803709380926500471735344516136725215759560647443677161022367089567748083563267050448453496658603496050249324832158463128707545780976903011212949571556294284720994925927365710097566904057174029433159121827791830212537957534084139611784365404192103204463052795622965672385962367791623825511350429386180497896567765549481700903099319986162896597071635384677497337010591999929083570742585629276672727227496286342648033586906819607799361253803954865491721556210910082578995632890130920309445379574497248020744346533009313883520015070155993338055687675632697550794095597059029159436689441678464237835243409429608454312918257230084121655546290347021580938999881535443404624939338570029134387165369899950339013218965051104860248808827067967800870530389967813213570855177592912814087964143259009291775843372378686486317125462126039334323509442986663330305713411496393573083423962292013355115477665079504619485094784184249136467749709788311461904539506100149011694543132400357816869724292947759005673380422632037835642020662492760600534237366785277696929887885930399169533478981949657201338145429750087516577556616975455380855144852353406474115861269665854621212893717793983139267436145703851718860800898861936270758394482612718289173238765299222707753556572598638337169446033973516935341193984961573836653105319469084410392840165946312209758673153932721955451358019590720606583794052670452140826680322760403731725886191411243966546040691568473197371831532262911123636648444640698559242630010616533458048394557991454838796454521870389244805111285422468961182742624840925579890984761994501173289676955673920116289869558904656352683824508484292312986213389472988165627729385436364935388680580697017532394076023594564725327529409875305258478723229482506574443629755064972242188054209756988693117653543123197291580555387552112261328804205332224657122577514798492491312603127478015219466181125349669687075516950797077175786451842044027950482603896317426490959515732011631969869938805116664985381085505689975799807954928280470711798887108774816139409824256285170481580550176816045702913401396371277506708862202365465114258111312379888096104749144888081594970056025341088553568163542805189869273069937124497242879968546113384672102843875382480633069840228232142738625203343418865473773838607016739406073700795496099033062831476612517796688326937907451975425057865067639202242364398201238241774769831510373239157501737075475162209915817701451264572302670301199060044587488820191679127802187169392144784518570555442679912749629326984650437555738681100398974611243222011592797522062130501010802720141424648744144904619263373271653772974217990190000636348093255800220536256946455209533426505769881832751073507080810798327803547200847554297703838939260595555972620313847117851670437431217133796542825879777891826548853599484359603616533001705967781792473738564139371358762162862773271307368950003867621519343511088346218474864996149096023501372234211188380397312765645879620410340804191619848548143281949188970091346051465037132757744169628960731826256102546446301006581614882123268696456967048732148379601283553142801902786392457620049926452958463930765875545929976486393238355156885665731513877603647569200369484712248987140504622340544550336242687621397318007010410339592745623508004135983746921647420684617283850671888246309182508653345105904935198895676798003815244750671033185552820762489007356941948040335863456516981672632326678909278681011618206254710430356777115438411462859419742917495414038311972254592104184937097461720781017678226199031306219732335435603219063781700028585031095616618796982875189093741309238358580791323591801166066449394103610005256218747032355160806078543977223968942158995833098159120287275893817391909065346046927572696400901848575779277123669852398337048352091717000923794479144306240100191588889584274754152442488134569417871442576749867314059440312186215213176137196799359605997542262307257164661720342706549950839779487215861859653874569807109286145242747177750423578540057936517935871250068186150423856680106000572050098983602628048701915018159725038048561472296200906277182374145752942575014871942147413280619241195125061477998968882523605052282665699285623403781461398235124459209121520263686537572890545747372480122223258103323936300594368341591557712962823127518554648244061416868101177151318739469404776891585035891338098417354832821130517258695554065166960806762334266429243024981905866858380826939079831836446630910969838123680286837119210838827104462058062722467908132928138268643615329452146720879430658432061596850831823320655855956955780031223469976518422379027753813407856531282593806505176646061429750760219602206364113967745670683534185144980269178966250189458439229549419298149176539376867233377423534730170234757065955442097240534194546844187016320106223744136163137021724052339958025370182735102417955887151945835007117414233355454685778889289703458870941947644297147802220335608156501801990263313231089665921187815174768918035633281585071617384645282906093212155361876660334809830345745471516689167888589460460740814944700043131336257876129849273074732243522528066472818161838993563608137793113544721092697691994596879905765735733570164252943181670831749786744301882267795668283377931570791360005216795094780950089988913777810870060297042392051980854821670967681665284549831038857674853308762652482411896473785498544105243001925590646731485723745236491735744460031644303099620103915998159712545518571315109369278055165550731427828322227853200978057112731181995371438578097216053626851074355166348973540729661048949511064107673377570221550655047288771238191094182943950571355196372949790254201548643039724205687920100978214822923377223832008651257489891027223472894768197435285434185668040098992555775843514152396583740447067854231629098835695822519533604424824521282411833169071616560251738378396704303030000897370736622351351283389949402732946514106168908033991831712901572112109118167213463411011943731005135390101118871749191072678208402471798506623650611385298612814827892795400796621368762778214969430224353279767944929426790969455120206357717589419980829757611937902210311814423866548198525894283429168390536859415893188314832815070513581313166080739221706410482553330449846909014023076913130839689809072962700616720457099241716047334330692289257564403509922434729392031600655854640886297260467855216233215479264211594954628812123861509979782429756127630481539255981720783416977330085224804237931746239544499279730444311151632261786771396203565011497280380775754174934358743978541905771281023754963954527364506262619641149561952927474172944130185977642965213713431431014485745227637322807506075714830075043097734968011602335345662580444476217389789854470529449104627182559605254628997593293839996657117700140060457101614686434839644994286797225513757226609048740955339393941130620591899628745392789908739700957764323754105338079555879959228777871544060212723376137055842672451213422285172241742587815001134860254889845751083029845331525758518502627456881568606002300884289495161264186298984970665545749383521637295667110249670060125518078752564060216718606638964889523335677702321204410637047265346076982203605960979711560537076587910147357320800526494757361055027858887036881422323322428288859029805357494027650058062927354601508215633562255068444278488184460564170534282866448625857395387660886560655342755284054234711813273765271175845692254621997699448456918888122917178547679436403850244261718421909620189509595668595840512872396995216817160180601103202295521088399739602793192518736820206353789075115527444294765494517223082076709891907852631027546914387423355151400871313970922494411542689836964574963590234697794215876094643487215903171241273065271956530188383508962381745252562074941548855001076732376334048960954622424354841125491074642970266622131134133906735184503343480586074782428454431050296799198128891951812137548282591678039542766424734364632211282679454962204763623906199483178091311760754290324201690773748554123270382891613653797327921675250544140649219013037938576573541429435018083804846487003079535856865521533194564422949273739474289832789543905829625331724869016585433757132748878765752483949754306135566747455663551816707910543669728922592795332773452551969669441289175323238443582973409896029919796061128205883943158946555353270831944355596101270886055859774425379661858895996078750155852855295570657820971768288582921828538607362773690018148187733639788047971320454450013646601823401689458576100331081317609634111338270463429456576618911440804464579517246187189735745376546092258860658943932808997922064548025161004742029258876094511760572982282866870175609330928495233879841537227340940031642329894787301240126569128458948610746953100776762958353558146657915909834327939041201926002040211100234331335502808420492233515415521199600776826091040828629906176711696662695841504253700523060168048537064527985758569327117697521000479459224136518285965928910768661220928609602422282963396089787607707274636224658798602863243074933154785582198099260279309779843571975525982543055333822604424742978293085645188378304126941688317053602182368896724415696172404370338026540360376828093482164073708240540672349999539095454014218732233563571280772533830406407142527570008511711451700283810655892043576915869182590634434977142123401907862730339750316159116471742747515526794719845426815577548067490571918310794886622946282263309274394366719854336163449725989048638424376297021358430591998550479744455504105682607283328270017568038366331059435768373901233091448550893046326343817895829669243128311280723917423401965457146259155840545897337715274195785131791053104209190285597130969348869041232962734262005555773330493893841643620809070159911473017779801718720956584555587537651719083025873655543652668697722575544386499715237892423972559026724306091833179990062029442407761464080018052049050030595813194618151187399997285702877511340306332229506225775085706125493169273634497619549000443419586798979725906945094811221832932487187969782413429486153847021215819034946524880466146288239272574571540958765415728140209341688417884728501527739972260276226411060005798760214375141629876505359781652247740520714588567124227005656013227656987762412196091287127708534557111122402832951902908283953328999084296536490850484889984421679124419638752481986514119984337173552499602648985224369385677819079065979267373463159629477014696397596628067089116981235032679092645821193357840942945312059944705275922636902524186817574168066608155187321028232878696593116994656346197144721854537399169243771912025985639773438819256570847348173057939566722418733535333275023500026258699982820407619537923781310245743603435116165319664790512021499409400521737267978387700881146732949406454955223518241140809338884952910268008297750142676845783978088692107867817841479746157421009124294187308546152533057895675731015673019733624603773766315537755033289055326593117112083918697605070332680888142202261265051737788095845569169691595450455352155778830740796516079043230697122025809831152685973441988072879696404074378622974589019444210561360006020392744391731700991919467622068139394083564269999841111445572776342150465393864376471481616734968723099887566066641740935005757050474966001081079256142972747884495720704671959662498177794817544882242749807008341833941655392315720959592690728731905304365235798069033374082069986291696002425247947878053502481086110067966671675889495748198367628483529314066056902102604937560806758465333419533644550291198760003406478630640100359797102450624115515038424061955926463116481920418506110460459497762112248940078791951621116130838769218148496254738286867564417122645253059677447165698980796252462759203750087761653536068942567632060628828422043048445233845106389261640252712613555957013515464696671055368802356665536016740619866819077240252946446019729202857874227828994904971897966352951370230675134200259054182177264522679081749401162553935265997879964097064806643514764983848234178543267114073693334007380956452775990515993430537309584235279812433368180010176790471361992417643061989511410196512733261500962598017386528777974169256316781750666124777876929306633093734697595246773487410304185664857815828678650634066287035756267059061760471808593655925117167302733564206490365914748358460814785103811447867638580946465983422484103180453542536901396888413624080061801854604480154000327686225606237068407909301391255824098258471744883748953807041830767914036612786339371806039352067216607929232591012143868724147902097582126824961502843669245348124418870822877630777237862723731539739113072377081870117431765793095033231669516876019085313055601069437614955377596111460610672218795455790912986337219795806380560783505618914821844675574888843038365275827663176386275409722562409934977593417255827719150175659784235069300864968843153084216260005543147447225052044935160677985308402514894869659233997808323477678824163159924687975555085944324812983191668435224799978247456924673409889270071044234253959727373991421476119907306119072557543286225158404887485180286078782253922892302574054022851668603079242670335132795048253496702358988044604985810301249283494575669469841044267823714723086295602525098087599776641785144251822275251838097071392895358893475943806854756288608100696801991330781750681528791466679306051858764177581061794175506033869170696442907631661527315973047328543946491261654258054765587390255189382195231924113321517519678381008053078098032606863329311282742742886873224175983844781684296791593226658044441833319082314743889844938690546572743654932874864249199141105827275491958208868481797549827644121137541046931047252076667880501733118775434226108698855166018864898980259600757822376909484281218884282551223376558851884681939830736839818629318916152261137622521486926996988276172523951244910862804669727214240683854747584644065655569050134167810677049243315303775006147272734019205823299832914996053874162462509274344102364921084288722376407900904081715011382206417157236252272446505884883862109721000064572165185379629452692008773229396781894896131078206954630700002732144934793430945064764939280821598729391286808709254112805835091257256853333976596803928967183779551013721232019238179124640266477650667734128277459116974327750107461290757380562061403016579492381450262766473518106311046773007892839744424057189216266132454539960851056436076139960045755940893519190690362112281548214226457646864158258850901169247564415925161409609413465588660095546728494166926297642988070953291099019499336011098445887003497521767364815208044080217339780259613399786311880220647311167920766585478232993889625283651884648122378146992262596348421951667861946184225671655446707066698364667232915149330576079893444116091270844754688516311592271923418402960688579964775424740607752897531375530424560602688113652432431219012190197727596381260767868919031723732547655466776567886034633050866192706663824272669044134345564900713890280817041240477212199730180417616923995835002866513799446159468685618890272712067102300114476350593714599227983968540211906279133451139892996281039640991412700813308960943713608181855966626237557277605125828106841951088355557369945126967832907766928872430652169979062960882183929363112298759102264522396125350366793896453384903690218802857298953170460617283979528496552838894547397446593282622753808737014484164677267410751137386490376170980697963179092821019512252834270991281720553308861160392050540703124319842533818107501162911453692959764562465869527457831594235430338031475084693274969024932155932013847232915853991555591654231337444649262609773659924214177182272224670128355505903853903255787779019858564023264837104622878125800849060675637963076064281528093260998769661751495022138878031330852167256566764765417062231496058843833283658953837082088564056495008742913162843075863262621160833738329616126190600474719641239838231902660213514723694824114650463782656421829613171259463617352253652243245018953342308435624556583196406202096979526941682702660536070232130131186316104425390106814022652704642913196597810224054544249116385923121183210336662291927665610589976830539227506346513334242015473969113483311493186237502762775817850200024092083085966420262423654453040319232885759379159837019359860278487981853733144045762781695145846265666978370664213769832601851465179846711997525310296177687621475863855415308463703696851966955639712529673765909254227831913372279759013957909821081254559091401961633315949725734770068707742461299047867028234809678302369177706325859769795963936615446727539774272241056307970523198833478939325775215703646725263604818947253939184654206639847685274181947248267655186807514101537931305320723080426550240049040949066370090165773476497488557500943251267781511289624140465762109709692221437264900406515888312902372833879817735692499766632638898380642830270884554297123224974620522575996215775136489586274256856425481469352072471545207971211377371592216136623525426506064526034609630391715351291147171724695696717537375573519576701775233565104135023413405758647970150041547725481322603295714481523274178276457017394744860787269718288412227931671070363347268329995565413378826025426483622638838416312980858395797937587806457858312901905790100555549808540798880331647682909217426017784685256423423835798215502418014348516579981439056624382034479818986390536386386468775672374942321676763316448484590389081154903106114227686655579299092066375657805049536448190166373860202959270208439573834429544324572049201660846223974654444432277428835294490219703912019584968714155559132511451249799259136539444156802052378663100352751170971567601168279135459536130664850771597238375195672747639635359676120042466326755545733581062200925581112803487070245961856618737053300244532051869056224559999513769016939764046849474405354018785913618107408362377222976307515184812282812826911866640006724501473453058690049872224711664478082642335868314962870704726921478560349809016869743590579616428418478221730247377722569833357486693656863820712872387780049912532232520914896590273175536218807378335800273506711972890968586396265382925245860430493270667475825601764727541168075728359023543611947901091453889969380390987406972536180588929778807414316182842478407968660090508885087350107714466349072763408001228923744919781203868006222027040045603312792666063883048486840909394786455458030923529396752867135836076193367948466963338650860745424186842903728471346387266744070034094653144907938156300653054600425505652717009110766287979513195701515341223403686291242290694525231019879938071055838216502569214984748440263371789130897555526210420918851194258008162035426829342395120812935435846944053523899521219735212038395396173764593413562534273891944810331966854398381521110011263072220953794037824803460847485446324660284077059367793930045319204302128895222606776289335439991501384924371684136952292066741815830247132887599243017947622898308622712620854986656830847896403358166485004650282022056423859143485734269495422980247474529250673236981615132628229343928499110852008398090224852408993698710800757177963886899567540963518441259134261058809837788201734280683077908756196228483926941611490395837881805585356517994265463154581485382218607479918334626344007839273152731937990077105953886603798663600802882618298835222822611205767088393354964036660163937200032981148691067537458224966347076824889262276488680663898943585729414597938554510545019317495245726624244510553162198044795336744759529270344303856358371858847260974694849391329854944154539926620912452045831315334953985514031328593360098540546655063449760457642378063396457900999799044288036971425294701704715689983745984088226495000327720006346716868794069601659297076155034035995381984042867004804925878336913229668141871255991175381844703879562017495505848723679867428667090972249299637271799487406886204361991303048712147564025172233402428641546477276020906667580237288711661982921926128847968005762861120443723386222005080395981730633710649211132260742584061421266731155956222325558679021792264916730620815324459392706411210430579409057204367906067086787053316220216404465631407353847310279483325565320147806157204476464960617171243672494304642308334116357532557783843450620584008277081139045601179328092983923493218637424427780031778306662914416197964620596615468967486052983661388600098309699654909015258483990262152005768661504961759231095861335085775803245980042303096349923898198649139081852658798969473951212152857051034150801499663375418225771121382227004655553029244635125902359114164195347440603571502801085030017056262769673941533845557341964609108805974225522768304206532001947903938766950983265155951097380239516190833132752444641031837949888854569068498033318818805985917034977044202522490924118430129414492510364742621943036310597119202665386003768381822845695538492809776674899695859540498239241457290015018296055560039534203052076436791211816857529336321034566899406685236225187111307132809829458285356173229645917515893244231357675293794201047971192797048986079637151492370568749579116252867481001901394215454566544042652560827065280295387085021200612825307580055549055058452836445177270192936911283587375739018192607640659147183603094955311721566367330540793174948228478992955366804563576089885831033079777854215651119885593017902062779255229562196090029283738484155057391204654807029583550149465570348175556263620138784916955970612417587240736940869805949374926894014345445167382500923419471395362854246772043914637770576220270919091680925600718228539428115740660157230957114307116145319651650821558206079516040168777315682917514606178440964275958517270112220303012585467806841010148752640014388481950406494497848434994513199008546586573457512401318398750955519714350047336492311673797105992913923802650995570099852679646103869468946072196766971461400152888501826931829451499716153204183196316692023028849875665482326938039513373830551908025985037337207133859220341254519156548121147473860906828907072731980332624352646549897594773561344964483017326338535701522665197407605177870803910103570854518720978822959088346607160113883197829256451871786123121238503113342492388883228406880802214481463913150611400208421152946063320566240094104532688385578969342827203609512918461551643858550795812982742037315709773776932731363693310181434424421257405615399676587964724661145711973537000776657521976940361063370987129894598582880316397017045911811160618670186141899739831316679485264852990284424294897660299761866378710413635856432943282567364341931132808918947047604545584163875507474390073267171825708175462026576169181518423116661872953626879818637022069818592332941147013258291759372410597880269911005660964766641922443446608801785544269781324695643818145284948298382891774874120581114581931906696215663191616367855202679414926721659193611922166164803183243015017849518886278151508748574727735225014335416802955244838683942987336738620286799997191218294652449794473185654480145030031642121774342047985436484127137776173292269883673880935942847411416101141633177593358900627600581616923407867789719529887766864571683886750516057142522832297336074581359435847550650096511441365663113704243029504983545601087448512827170035474445589976164417389120793453448852590445728764769994522038207191236280702572552938443768035198324805651174240916121618252665967969514765045955652112375155906860752542749782186099419148343981698120228650977634954539899664053603985099561588421218028992787777979751282047166276597245467032248398836029787478135476272512080432811474787186316207722398375485197836606275572062525092162002328611928573883110327616351266101828741786575742792024721248038844954275601942719228897717560568403578190448977221144508807882033444072979345850000565513860806999976112854080748657515847588784708508558244178795647422607491619049903275600274801177630362765476644094559039101463919874695012704383002640723568098200826436091779346798911108671695117600284396564964272898549852929507536815154671223353867965578136440577171928880917653059337807070362992273610931113666855431061967737500740375205908796710975165793495632528036665596158507202798613898428718575709966584638545416168144732007812766855604632545200563628342651691164273270511578300097412552391333008821224382924891784348827274310559223255075946558565812303858718862798711745148290582515808463988057338613740580713857843771813994129551724627117898793480277106311730457510740914257285263079763577999204612912662587704422178893399622664289833139088373834116979546051992825959594972660852750340048879464922286028011882406347576419045271511258706803376022142403622306769296529088199062483838303971000186700755041437767136916032670144404952567468612181310460119007073959913918491263101467596104363500288801409400636752287231655826476682237782548388323162145115532480378417688947452581230126543198124096264887357603207635922718061621839536940648205375914186387454955410002596300949331035305835782014167558434593256161345333945416146670738513343906807147333540575928298612397927942134712192707859094813594587032903621076644131310035332928255518341000912209027753304168990662359546663303253591144656481667070275525610806410571584081742481077711469274845268951937433961860319533734993765509287031985752629879611725214743420707583570771126894870411845259834658981597380670392944407473479676498365153106654077983997328447982918296410231146704090600858061065027336197747696310249516260086764219846786078575194543981798031435420529201963889807080116957439762941269983663247559903396380865777426912539185884794481818482169745826379033144237896419790682493690517414590522584160382215315775170226880080279261201504102473081677025516266081618883625164298727191979106504438437453740910296837495260237911366975182032534845388245151757343766261555325583959857318880894184388381613864785503108959980321571612448118345035273159026890223864942065536086827129908151404536487130876660785332914734384410233527511144337014143570109503505076887998659441810052425564318179835674067183119819642594868394609632001202325096043895504782158662298787109936434461601941092073508050513698474210643671143024912520904041773485092693055134529226658114528419599101534158107314128444252393597246303134393145586763361728152483166634916793391083298909063651768479073983533966080516507043264322119348487465924722304584495464174348150489457477470008197495375255056425223264500129422227782970653332237723656436345846807539698361585023153816400322896323158102875242431762982021583988966235324813872008741959609359725644648518161963541925327615751437090858423242326295143268607036960644665762321295528170830223022713286049227896539609187686892010493279869110695969635167498989162183288219196813913513683530607937907011435866805361342180176030508205351712328973378157500677820558065294228716587970695894570584365899371357518969165618143821547627604750865266513509302131366735009574204995119379231866583618377092448092550509773218585809504422176093237522940398701895369539610761650204704392472336795731560602116636738108898584835180867571949629390370421922659602024372998066560804742555908260461415543921989297132582805124408708730316695532956865699030501963939575776294348468486616786590672025875746632849882509539999921361355010838408590160252004355873938007918418846582252895024177614961106499734382098307111386083728042290363201855955573482636462312526320252662040097768488055359554914802704209689700059820648185282383311895848696037671457445806015784963223209336507133238034269257661751724158830466462477024876443594280180568293382309244023336836011336355961111612945683453813697000083467232475909921302102115670130512482273590915682360604967715946947728942960745692930873790586834821299062852519613284609093737582625690400633593237996307459696688471311986160244920815284430633749504663813144277372512428183434692497352177569037198158825652156017570456975787517929056873288093016128750190905148855304710958898605871655561024840096502167853424369371888550716379208803360780860346397819392355897475098300993707585057474099298617962548108069820763318275852936674475419395740178392524317659232465459203032501986049539166279404900524746461025794930042397664305557872176132097343267159049893346829497768225269452098428936799859538403134782155671060943503573444159246104965441679272493865297060143741393950027379133600118778585963182035832469703762310914119949374480384832872012497723394262772744023243386198279461242445824869564844456374697568405096471939778438132927093979738868781624320912663709052022974578324295142941199998396041471473504070880690117700975813355905971216652848157622631394474636451985371030699813145112205871993350717685226764717433880773170219886528576554489743779805888198710835298043510787806433835429473704389055727076360970135498000609473869697090957918769830595625844367207616666332924446737136912327658273307776430445940005874872586498062809738292934046861896913025690865993747215618457077069613473960307639978017036607656353589264394796486988478380506308731714414881401649544676508529825060913260429605841769068786924026828046483339454344804455714534340223763009058753100615313499031495345207419665191092506405117879228223590782529964501393608365759610971626000322253908752912417290512187533188052076933708878683996908422509684882427746251902006195737029362314502701501760863834102900276392471318568868112294038923006846511271386417399886860216328992081046930429588705552353213184353772511296431709564802217667044696461765192137752778069969392353256412769758688548641609690863287259039345106612827074591522762524629212013026729579213903432871117118476071280473380710841971860920285548524165717111850409902957154454258692667296375531929503632449276796325776022723851882245468460856760791064493026341402226649490082541223973948811854591366917840862940228981766800735834181639166744671772058974136754538350237839517408509278865437292978331691356675844782019244870659202684422767996944456858457066099141159443792376059490874735601910941540847574690692630407219707205759382928342037145746432271891839398214159211634600391342122996366843909705918211369418138935768015365944026859784660467098912677976021919186015499257440299896729551544178407400178389616298813589769986362961744814780261382960402514558443865894374352707436084757447846352394827589259333290673577001936065098288339855379907712791954180849287411947824679089177896207617992178519257580210624782901784376274877080852880333827111837801130581080402498794662253446003813164987893494503129714392322317481767326626816240206946971353493836804689380145954632049233861244970113616505883860919273201380418176495758057109184662096385071155818328997108585657832128795492426522837058622206055834098802522012252589848575166769028993204522993731086727514733808854115435615782736403062696541801053187049774000141144896566345044879425961615485596223537936619251402966939940843035539841631756305819733920600936869062300811709013507811680712451450312297595107922780090218122997143971919305584745765537279521290257208761394811019148041869073411280027939964949869094308982009935582443299127124810239639354853977575739736188493300168877952658749389242790950799239968498916522377973430487146312784915577290860629031912921073594952519552386620096634854762821267593777927805639302568026579638857994843222565309934040779175163915507445546728795799065188783654790712666783839447578168928507963787260359539672145577958459698079637057701122990049816136332298123656474091166693049272754739168735118352216348194591600004563418428155778413672522018114749832840710564055328676200473882197331865499419160024707085362351904764604260203213211588510493032531277537960251821618208284795975344289344180925406742230525563166952211353258466489041294237726009450062489683419075697397673466011631907962124549871507092645593945641051765855122240016107834484526927766566307962353833943647126449106226432572756415388928141320557826680581056476829162420569060007822601358993498734928899601898441162106191825507618887813462965595341627153277678787271850878994634720949909924249995726469334043742905187987534670573686543729962004150059773816262447513862655392754125043853176925301277741194661817848512686966122060156094340770781990659649234152436378081289700303267126836156951643476071142859931285322563275954601779885754663725847834841120457169710195798405675133633289989269619472706074458107178663056097618311546874092085719057203715636947898705467621004227523515549137746663467752262660938717804387054537895122566574887060919696447826417973779081160165514071681965837950922218750246092536249166796298490693151312306305795099229573909188792340256039210541646098451460694382922271189020653429659580124501517694522904182429204381990617890953803487839384951468248344484131852806236460793266073026151406015436824112106480911526288376236525341526209473665085235301537203576520372399674782470111280158984549334111616328653180460120993889483682447021666780859760549176055905782381838583833344035592758052653313942407143607573798299261197532294581594526414982784985851121981534353298281446288948150723072565727187717987733961796384883759061247273918303503880288158299165979784448399739869929049525360823343455204432018443038244786498181578902396910693117302018096776646510330398414446208577052648285538694629919486798247525975583550041144919987027690437350023433441236486550080526557479080922296369759096150595660938944541844063946282427435662291016253879802386372953308716104034852734061538071748248495973943954104658653896858095354077350816498679813150278015703445907712326561623681001461919705348668762514780101163831867194686182469301697508265129641162514130870376444150690514970493542106547789584952457274301340123640494908768975966095080211714641979473398860501628850161148010838635276122605368461660834559743095796080113897444697326215846514417114405390094962289257499981038311929960770035812523399058345843868675601055099974306844939587341127647164647917783232197746115439279153275785170345473058511997973553395792797958516657474869683940639222637252803349201743788690711006866852274535127807364489887190161346461185162721304212005010327278228309833394209930206258047109992471601104444260495088749761258350584013945435693255836040216775006464120328179651549236163793352202736235952448241904727332143932380385690466422686465312139780489814019897291722975788354963419004052877622066939875248810357731670152629129710511287998131335856124193306057514218786110771194981235843016363519185257742449601463378431773939478929090341859901312182061119538914525022929796957625743501252251088892166937199294648818506005571959021646781572181852900903937705656626571298495830254320635404441753465476938903063756293624648252758746115407985628482611335133370802893278879841407551457684744460722317350272028197180512649801383611949376035399784219839990286342892619599670110633651935142161788378035916968743321329753535130524202893612614672417023795332684490679429673764012604536039712408270762672283642151029754653502539501746070346536006189269861234639874284422288968411386011548390499852227975659457685162001190460882800031389728666253918276606164029997525191526147546743275373680494854933565423570014822156956550111553618019505889616585806709673079856735387588842888939060083755696194011851891264906792105620661904339081124925554346422070780008556472751082881576958228001226995834058738126547724362222895223504585602323928075687499072655840448577468621368571609255519249132895466769188161382563138003127047414187257843117624213126635030120227157032979961761636383417611472233539518781817901167111888285824063026788317462482252133245770005735514352216221479345946866268506579725142819290876901410882141498605469976776451391989335494468096287104430908675334489701332599121044933394531584664593078702233611199068357535670497556605866963624908141412735182736364381209329745230568929100561253658344860520233013288069198834327618450616893319840056836403071607791835536884267746196831361128358668086188119772704641817334296248958033499980858658710294125696807162879631786000090013678499617490611450818340510046546836868268404859906420238024501175785459058360873969243492248151361158018150609662343232106883644654850404080937950911004362539679997162867182578591581196800699941776850988429658565280633347288407311003848286311081258294745695835620916520400590750307697625040868799337136859740847349810964314973168311338867137991021521400134791361205305456542977289923133160804697334305976733757248839087194022550860436676423822085962788910393195476075237128459459314524377944242231728448135413194848686157205467315652415450217416638496559796506100684675136309676795337449117099552105490006066835128379065175765266475223935128755746781540832154173923859265151522301889008140758063725053334251297592410328930233798539458550889483506126526977450268019362076318385497214262877873752080021160935531805878831504894312509746397280635374076808530747084187099324758363644568704127299620351272796172021732243418673617575657304592109595996376545814255776886141026154115849920987812264132822373373594716673832029699180712722067500592942343993026120326043429448654180727384786256114260272804649216634884737145787309139407997889704368368454281021176352928658140326221253777804753870894731710807045220792277665298238834247528712367051965717253298333158457175724884014861200054300639576746882818876118536680831076917125069991956729451505751836100400653660909222213822620649809586872839960334292461262117659879772579465784262181133752406172871613514930180338772279770232198135428335820947502234217747930786449289957407616834235420561657679194254548684785157361420231582373312397203985042696416572115283701976337257793218394499104120645128881752736877705310341294924498176338572469876953983293479414394676614542576031627530018500683000998465569848117225357607022422649863931671694271981900238336990905101252781964218896496525987694815338028118942049144390218553288984088905855666951246710307838235422957154732323029163333044003846487015756958649022361823440136450334900378304689981748762616963149261220590047199630786676540658918961976939085813031526777451012101587249952804233797337671447674496423182542700699903245859305839228195219543344346729484040227810559349300107920900839870779857275226035604063907108836659279894124572638249690689827363006648752058888458297972043443814187261608390736804404950404966946144851719729732951681229556158694992435343792804027913375853353958801744045739390549854802662840604411514369079253444126676214705080778458741276236886324808978141011725666438576866191136231878638932704470103872409373981146939496819180566399907396021325231201206345290268276420084601547264983786767169819166911245227193903502582521979555230417575416802698145322918950887992166039663787591187092525638075475554309955706842335227686922908128029372820292441101730667878766569920678956057191667491166607788525237678646484860868851021362408446228246948384606001203675285198931371954759753946914641317169563069217602353325757234576006618590184168197015967425008387983645554689529566100824845662088005046573185882168983694493622643182758644898439515138362480223321355704131509015449501410931311019276482142961049371334899499031335184839333333434725365029186909825863854039128083151481474528643129863943746228837160156246249511547008504764262267082771104591300799296599405180598272329750951999132339403237914217776717021574800199317013299051206303207734327781548307413460519000893182546697449532957115219464599855254409178455724577619437864852967334606140640959498628868250626227309052399107640355639108579600026426045820681938054506457163494049726969026008459629617315771618002077109066510545474939071380698465325174839832150301119076058157857917399223700163844395805241409481056884761320921470168062503058507905401062451152916736237747647304415486284663633361786932990675914201449005974247714041332521355519491905054866285944679141201881328669738021600227591104257979230967845491796652095978209059689796557435018835493468341466004886122589161978464114319207741164938420424548699432925669040483597756160937428881034582813170283551753836638051465424709291578258326393862802296602275989903496585299240421804381088536280764803330137484762617232644422603201550831759114479606887500155993126590553594157501686188083572248714257860253780276819123082410012918708945339832635999715888653845219288491869215309523981036450260474095698011755735245397006936892835598883123779416389988512209759259061948257119388646416094513062481945516031352794071925841391050913368925350235372572155554234664204996564474053644682534624354625412844648754641777719366771233049613482369952990143380496449297803092987839282608057570217547529021812957878356218439390876866175210299682943201400590163327159186782719440648580878273397218802142533021588638959827562352928274233058151598854287420321269661442066483963438754627298379311214744483242195286672770179292990971981515542122406835588993421262580783843208620563888422168642513679828258467438315215888544218652185218088402349333052539707711364448816706639421387769083995205018336656690824316133024807162802058299363948710157554888153025256859585643760768883218301246489501045015218134697885853730245100734138351874827154806285445093012401916151963025998360322642390553746231826825163965731004473363713717372796423199173197827161397800635390735452290929816323264412272967122131792846864699071998787851931279382493389866630796961423792289833443895818407485508241106793243788073890972543667027507615992756285880074200121096236411586733150580372698095027311555878006917743872336091751273705029744789898085578852713309918041452722187811995248489378512831852959019978025614875741215369948092664011888173787261380922345547904222641238472764403510673903061073942892464028960756904466624922205262016822765884132877749607000245783536768168416640146814269237438516625246898813552287698987268204762104945218575036887408842878794206420326150564844677800054912127307574547005203637897207683502915995215686492991463053425750894186756290090069937872208573271664438933993911379280703992625532772232334402911611423608668590096009926385089900918036315143067591819309904854719062696390810980007200767088155232645562967554311201397397232205530535935003198022735175635208450214185261997318910679464992423620336009972741582696497162372063568986415353395483475151454804422082983280541560457940109503393872049224305875692266931779012685303267597760404589425502514243178395183376475213384448819829842791536593197105281418748168036478595953614239352192884110981984099222021528608036444127330271756820618897733459288830468746867536664473911929514157222292551898582786484822747291237215850820126769749858413730408360518355531686778819250141497574979207758239794954577930733697474048394415632830856998651559046483889193295876776892442796335508749280429988187176487050028721114814115340749510515069939156830543530531887749071301857345629968217701554925581249062197641254490878137764079147452020543784820922370317033223045353234556933065359734798209144532629078402493162696301279259560171919966936477093634677569723520140090443990044972036846582491747555700110879511560180221991769462272408792278478513063999519541758102329115475314711934355596256489744831537950734232846449464384358179865538478970705324360655846252169252837823940559625742559340437786488048125297906206738451562751886464958372789551580669077523019176633379983876691886542529679359963431791875562698403609390273339980224332168151967257660435995217718130473559979937227853403411030969071037885354212945999817498702847513355399327534531278745438525786587734409072023520571468779834351241133613819223595595998303262102969030914270293565565832316603112703794330992895107803574140605596894468570611965325825223118516152774087231261311537680369469335855199940832253137093156891058730520049611408274412153129215421920505125459314379403040978596916972830748286902279829760765988558248045321394780066077715989164802689216099358151493653137973234421295265748296210887809327765473910063668821170488345850069836573758969711320897543652619003666716639139743134085577962996388362902302379697814532097482982912941044539681626498389099865992852374144213222349176377139740160357472523689210930446197750879552726417578660297470453617156542689095007773993430637968347144263875835224791358760882005682687980206676563969703887949067035605186585851925032664970006208638019406264714541988455798342625025472512579378978790455448500374422170914848867822743995050887366741411575575108658584494549805419755078698326581868118190988948394200222012735479199988548489281147835341466482081471020197586262578086139820903886177176105570231067639981081732215355835376649281711834929254415884673582491094324030976851322635960352547336499836743884127161134101523188995926830730327583883007320406994567692201949494391321928888508435736131602517231526351748097513565084481860401088623838695119658285402002794864183604329480540610417504198455282101513083229486430591817542182346260943046592814483312720647024507192918262757875153784272828866216991954595698085701572398923444739097724189935920774414821718416368639696503892475846073434214974197943856131853444698187061556638426214567356495961179300317708203334881492540625878422068738357879738616759869861015088579336954545743722243577872108603988019288209857300182813987435557034036108106937243886190287539671320427875326400371497611646226423813047026849087720202872941179848250275364828728445556823898916274096333129455713647828347882897543872588934186782749729287769189531970920183681676754215297186537329919985245131191062955093144794789554648261406941173384213198986462289755208569172515360204560514153636698238036346737140046654175287764729434224205997841839762084067263896328260608291836382329466688115522147423758530867425372555852792666236132137559921252389245479086584957783031726888342753963789276313852410116064782545591421020929875773516158468729385275768023919622738284144189205297326339673124033242749374721545415997715534802380217437294724890666466146354225653888060744305006885105033235759119366155736381833049509849288144839709744623508093498151063288938213033294443830975483278796868076747580369089818321632024467852982276456345962195730575113328698162444113337068239272677334688920724075052766656469191492072368831459249576376725030516387413596566665023736694852840674491962799293926981601761456173855448728189039746280126798270412344931014307654108583133439778235672241848800876883299430395453451905446672734176291414801079577522408936240123157440009692666987309423109670691822916093239542242683439132262361727425495607803369226699088254857933093205263571625507136844533612108336091271970834317483518881719825773204655300023860408878620355462841288705768892480092303695642701925453942221105517345688524038555616572111985441018506341693546528261870957148090727607978362504385684126175344119177135115179240524632799730194417814013778193433431695173586574059057590879132950787127486836821842239254237310856637524433558924318725847813499051207181345498842591326212437326736824541273725666724092507046762482987536956445748283779747783602284165125951548332088296050906833023839119941599128857155757165769264494647875177080703669247934931823844131794345051284336738259726292358568878804941200325995448609490052174322104584965351812185048407199992901012250329847055042881976983782876774378112079358154948274034822586951313636395943389449701781324822621268000878685664021391373131862559001842524460577791251223068970977364582815843196616325371219147050062371459791072457833018849386794313205723331163548747959787594045849546911837155525220723155422715563892296161608965645890998720921398785664815153480681418797726636974427804758761235926094374153090117508301265818788328779024318813673336607879596075615560858514422330991820203246181079644078665040146513939385426373159404972208712643919764168808533803911874884537914748643222292793961142984003306589348043517599131774520192635089377320751499665825291815245261189476786753617697954649344376815527576699294548583448922954499975821316621176976776585133160097273716677228583201838309187839922376299816548629436288666787201321729136592067897112305262387684093994940482775757643173106492925835818130378027883786420904663148659744703606952246112154560242249876945758279900219618727551194766158800303970132276057211987759210673276653748751862596075616275876399857774612198571646887971188491774523131560810467291401022003785242952137223545189148144820052346080900507183673030149994547931099787966195997729593362196913760660144056952195181873831403376004801848342472203104106918200329224190985405545539970497931993144888378252600848578660496862842846767795952228766691007595944153975497956024880890249403053701557968480685547262705408510574866877675662586034407937688919916454949053296926881566269877642793300845469802118411740912864540904753570002112130745657369449405181118509162573402982768521267892275244955034699846956762682774110810054226796672672487146948634246451051856209896342229268412082233946331217732773177806211989763884412668551462684503327401297425650901633347725589781087049218123996430913563660812229303636386719935381467141796769128028681369746896574092315695169562449759779511260992446141085243388318801928934629543165700850286229392286208851846800923490723880936947023172916306105868023843512330697072943717042475230174364564051223388883141326631141314311869577655452182596484431328376017046858979651389555814942742767717956595108260007326339265809968852566256298172635346021687439758851962092422798403405087854181969804424811384059622845336731644261359185852561413435945655526588989801603758744235964771646469433457920668798520322111893879053998553669425544237403052678362054342841421831484149189871321345295817128800215109531631501184901295122210609879628774481621636739147442927147705257902856090333241071352869968119222656065816782895973295306887655225493449739656510115096473387588735812826608421241785627445717808742770662014591134063276968090318529071151283714493186531998683302678718302625251022522163909903254408181107357587589033553443698006525242321244664206129193315982962557140714720837138912682456356719059677518444523980576683988923428840339656675591756188298506852131251369333459922878215668082248240449600506083162066315799716614768775314679101232521451060403095097293428092272521969828115379426481086390949651184916425519103379371027835491052668730592238917651213854708820389092038213991127534801617182532618758242305502975483487412337124175376469994034498377409495149852817983277780567042692019210296188558008458205458283856424796986057413569357253889715614685455075738176328505299201169273235407661493082441290220408258421754314463619636559823759092881446895446269931961090767526001603383338945678702037049638693542378959577441209434000894990440521580316671997294640264393423979061988762540569447918687084224493587107758904860907313275460811740916330383083523114366907327332640639550477872380390502928355549673970302553117951299082952920089769425364790021832161324190114718136755926986963838779243925710616956802717077944041080372418272136650499612331813588222872351431629437131991914924630021034965863564608612498733054764987267271454974230148474730225958734423853385065057172403511687123656475093422675041696594966494855741808027782122214094908455459174550965937683974449356549074473079210704309944176300925716871517946877220294159864810338229640616261610300349947725473309061571230912677289562687678433367068615542955201477890852881250012193862797059905850230558772720424501938989166630026469092155717084229418208124825199013592700662005731260053210749012979673859627011460669730106378080964873710989601396246315937274517008649416497162173689017108826039182439423072865554476177914386934277690631924898544262066273494507106402639313183478680195043496998116591709885577829455801735384837801062655677849611293793518479145110225351284437245474335803441616610951250682582458835187827763928861708660071153827998622463884237411285238953795494687653773309777333463699260723182427260116602362845312378407869157617634083377502748182719085480610900615942425918433563112196710846179477617873343751885245099204631255275750139636428620730131581102921156268760793020119396695406128754259636519480419686673788994242639604942369561257864138049096411908476738949699097938550996002105757266660041542484933008218824735605892865629277639625789316112796566511014735213312451426038963612099625528087447560473305777592063423434068532951154108819416040692967605641445125211995045870383093015074685691102228215336093544647487895160402552026257619834806768190559892787232822159986889416371409954538182568978353311251570526444452946218686443296907189959032593469163363106248416718451243345760336263423427294877654238360852511213870337387301109620893540776217227678775982539045524899487304378011752180900596076354709904479295608923721925024193860950402637906554603844391650729616713378664672464618905106418054665033932563612533068886933082237859470366029552487881012078011758016271707999906448833573034200742814331772658862110002579292094065538042896050631529180120671792058993814524435918167949239744655608652033293856506653819947016741739408824417079136532930947126513516858214866536189527209104110215619099797505392049331778834762503104568029493992424045198581773758348182783034656684188950741521896613020734213475792849222420923214215564566847547904236947081068470342898497758876379908406807914144338312715240275813717993333677387050773013132084231320069520336745366857001233376565019194895329535560857680664127801604493283081084663695367472972355396052648150932676912398335524597222909437214059511304641989460966155608432641782594388632882347641265035881956779000648728433618730996371554415830904213965183560007423024438551941493970271600808742959881029300178925092226378629724368943968940299179532071047352142170942718403461109697965631067682206477646165491633916974717729532407306569282192849809773735041285435278841224361522664714866986462846000043448857119343452431345483288647101049248405745649504783848914002007912592200008601227244752308681647894985986159980391348493358445881124007360247241031475958378209429611415305224073314164087456664811061350335794964470974059703427994654492655147109342691041210622697252895260388468617523291166459592460629685016295012850130365277290218770375692086940574389886291562875795115390645042556166957856241583361071073783217388158254778070233312590306597872676994218656790965927817784271636222231037583287065295021985030680062695855163915155970364816344016954914181447139594275764634137386796882830308754631226225554815887118409854417858165348043568180175166609077338396041836832690838672304824433165057018861968668699796038536993540468460159281044603259115497301771948033197199489441861186071165559228394871312248735320303865680326728331474267180077754862549446764200510070983379908348988744569092364299858235756574480725617185267431900057343828125455448785088862968553016270792841026253634016535252307268670898439592087507307630995614136206594038562387121385145223123555158579652775024325428639188600530755354512607285342444311392511022921571812504033493202380242287123408603744628577530535307653447389531603446825073579304198994703938585551235245076325045141647260774782427697915314178743863843517137903552711776026954757366631948611449315043766595738121734737066598463807809480895938991713851130572759954142711121716765388627524225836478014182803853921670014586920487244555316610533812009596235588391776238865664274789584915201889908442928022867638397773001366643769410773814370305077487058502692664709423374784686630993856447883540071370646961830296203281370884980864758069954259867357388343506431939736695533230873815167679689244204099528430776117128529533453650426968179625315236779436227941429724492885267954148933492866710108374886816955529284652161682850965975106065028330247871491584826811322246225865189740280271760013295664050261242242030170564491570842781722789339342687905161553112998862614191875761075840721190292769400658097591315386072366635980315241411451301146653329857101228499405479283918835635915801046119507351195177041091922925595989359156490045616390784353025319897306371274452122743468261914696616133830301807363334297428876649824079631763158650813900810500695890351738415286771568119823050115209844058524971721703706591142372116175268906138869060281811120099909345214499180304368406652746274090425685096581046984019611412449363208505966376946161853638470227191100129723878627803127465717709631470726978672156879529657245899346205683224061944090552038957918378459552551559272186113256091912358048530780818817519337277579377649197602566803905471074194957237137368883828730466522847089689549132574385930480584691110062694587918961353702400844341518362120164078065730061431536790182976982522565320688342998729077193484021524601457306639105911471293739678761753994458379945105680225908532620893462711745455660841520582336760272898657716100505865349596588073992764930879182626581341716177416669922876657246345689297289209217288441721978212611048416018700460355432463115083634494811140481277226680397532128538831231032405714042034266404355311223315478346242588691914535393549171843149590458449430259679921103208012957777900744645037664807297148925223244518262177703384718082062697970769873353177085600424592204318975069085076217354856094950680345515793943177121654431394923920994723544099319631042996144671402177607770610019839082603893249000066496423862995460830359868161270682390007974880751934956232861982257278411218575621082370388248787766436813172000534370681405478644744345851489325510902159821379617777833246125385715395777927581647672031277471548724549832330937231228260656059126811299972448759202616987278267042594921565316865585623885851036144723546314322661383415365391649093666621652933827887982889655598184446836281914303350128764992128994780072373344942685817531456447442801600602498140841260223765063982032978038872044675333682197316365891400293627878201829317809318008187724016415672764601041779917886419498923499015512951895450915468447935978556100871136205033750789998132863302743176602861432813448348176318601016329020335098043368263301834348550288167485041018260251162274567132365585234301125792874387180923887255112232713903910855538774015467014278465584960050597860185117541575868947002345926363749426601774485728379321173471755852781344932412283727691191756093919181163161739014473313197095588049885764982637737895116913531690658019030769771023001917537972790339233639526062936898619448685309025690472912343055016691581284356069510506611599690657403486656349547075859111260559642197111070552945025949671537683850951416210786353764813120520381890844984664301309508657464016672359900756681160634922192806087952460245793926780655355959587763617114371424162442590286444039583091794243588538881946136682734099887290054505456231594301612503054529260198460498642906726764600091350110529916708810469943731766822218045398001317286412056730690420695565541435403562407325900313780480577545990156295826310377838690326923232525700727624095678554915338237869814505900190497965490470240352357821195818343356712003661616747660024075137745379196543309777752458105323949114338772667795346822875692976198673912115182347184511862946159929931835364477672573192811319934370856152127472541796190628255438959861170513433365619606046086967169474639792962328669931785473537803278993317076002459195666503771087218870276298803178768805458955018065128507261464276314513119561269143592300249960285386817029810458367441972466936152557410560688896028954476825801172139345041150113534823408607469666293894558350993118062900091905287367696361823692131307922102661599689095978979475157015943423790022346452025658139060107435729305595358124147046211358376308437165466605721643002247346370161612632957823119989211026556564614898085081278528624969007241886210332521922481171467681880913619631432876663060654281598876382397880033551913850564769993325816667141465814621458845005146327647194959024192919625929059944199957222436260327547701057871073554906059854150932579488806058169162321437829050569940545709191953052924244863286546292428502980854172503519150078230137407057009679171002324273013833830432863185451391985669416382882804292585239850319724273771697275949391920313276103633438656116907111469864470186344547331475409716479387013587382585125647415460227635426620416971085856307428444783378040960034879769466708707644312891706924315359825156653077337549815474021782379638449207930318559346644352176444030413304696110794813360988371702063842476553741590735828975011499874643033676605520120959617526974265595320946268225840083692304123635037562826352278224229214411963982794205697255522288858620433414571657879442844322975446817634684626148722944311925152308464736758076968431080388221741221590049221228841054095487060004608286704589240028980895220456562664894438620203616451607797068221949421218778090661142431302650450917091099152254615442715701732605642448753120461710969594487820953143202522032178717405595840217378709307667775341092743454917623473474611555774065471812862387448321388926274049492919747988973117357023856427200558416640977880704475697883472045753682298533998810403054073078287147595317385899889686293559567042023380944655870973731247300496650496057606474962482917832868720022051491170086981424656812590063444468046125347716634342099676814461352352960803189401058050918467696645947598760221502979614405726502256734388517405190857915196220647772113373497910047361771572648679218782477859204888187405844888313426897609678906789426223931078989487107950715387682282712917497897747153494734495482935762310260442241145208441831663063645774143046558698223439883147172788117530591412787238283760428304922040455325675849195305813856699895903605282173016944234956410522666139564083116908671275195779696157071577617318229586424964048023831093664497377734979572319991057055065409442786787267323042137827939039275273878087562957768896127912310104710911853209343077772275611890615204054331390844904875342485200993484157094428034488594855018401728119994483766974092630157271655035266429961532256986293673043541467238119706087160415433500439454006299986610373944373078653269847079288773601779782526451968146917539383432105007756954696929289953582775598005392278979816006732413496435848070813611856102922889661214114957963858494134344872380052592101241002117138674654035073730845638070629521384688091794631925264634134787478031914559607323898756275697195206196217035470479279303267437521815563617250337467373922588435476331227208257526241958328836611289519963341494391296668638982977886268477925594281971555139258547575776630575403904294018764122116212502021513264887223216200468084399239953544164928588745285772190665867256515278449455164261621831853262132666559699687124917576222624803798145527473494224581175482446850686893222624093488915742445891519184002693262649833215661784074034219128204579373265676975043540599058660484497875749326985879637398069620972203851345332507497995339224598431463657228391812557867438306617623422250521309235059256390971423832100849068889553601329110109636541996355274860244898674566759842969322316960229660486258481529506482555539859121215445415757866206309610890155728187805204412590965822959980081609297485789319615374956598668564969000401317528707347892748454925265976327811426761110721926612420937806779554055817220968786330692011631689512906986878162920707181713921066161426334716433220716388901770672978173039893596859952557184354311591890899451393231359933497839050099664862446299287939253084589956190529545616503006562365728920669229283415958912478952129605159502150521778869603741699187195448296955882242195843791756098153398119135032003571592880245915031147721693871730990906947043350954239068623324602614121775342926490964300058381751187395296306951475099115467871947710913131525079497678561593572588355802882608227366927840815719473165078494116908032494865156216716255547182762025409132526001751372042629748541363443542040964040043872776803436639219145315917672520527473154533636052038776644097855345404300678987849357698524932311292446034800890595806171792297393227001431358942785138217799431374642250040208975530576676271413911267701602899780760267617550022539357125946572049585739438200773199207828381119795285948765888467855566239931145771257521229120303773635591999120976038044911198222860816394753757376260671304104524241020515808764837089350710087872689447478084534034589689632272017837591042354650713560315783764644661167203022652273053644977853479007401960043678520446469228217708370784057442618776435148418743655230437720136082270155945758078920020760248366811621693496595901720767228853641366917116359727505789071194641804956631778672398913747496724518285606549222474372189250115509357166580814685314635998334946606405929746551871658860930087318431444589514709819197960102987421178776838504090671647655645848499969663845438624340784980341655648748444040164690600086711731141110331009260470101867386072485542939545857001027747767409985522205632603611327827815970950138331203822788884675842722203898215306057517601586976575119244219054520434282112315056748432937068168879976357447997786411162761299179722379191685363235961489673255188565130358579250966742998966573093739581700640885199228323778582015222617606889948869912857247268842731334784540056300096881733729004067456034274690807315472771273314715390305397446146061896393076174148743643430148678551543527463863709438620928955732447021448889777394253246020642760941197090071846850011466982096962670572769820163241550020943217457399339148777178477358681567441415989618436677971561822305079172415569614567265157357903813940199391405628535401518277566834183997190986640040384249171057783707906183025596203699829449303248731057124893841811180001933500659602094599721575931332693574250313327272283508803290738922950928851708621162195905456687049401411675140266396777432678525221142385636726414842040494698503753317687572514432668471417520175426710979706851905766895547574768375552528769579778562112587713700166979740988985560310360646592133283158569408991181059224229146658313618314844006940000005334409817800190130281657972715322701982584377156715326652800545576631712999326464429193011267175038741163640680225451220754964877523483289551005307833933367726864817926662254612383720626293203568632727843311328354168599074910902604489331696340074312665484181919234899333257310650398529944785504477407183504313856211240480516058240691177317741818527723192915994663918693237012137378366510152300541307134538926401194990253411993632541400133777856100511098385980620259338595111055614722882451991662506058313443529866610406074727396830049839085026029728166303703186734831532770740049108054867745588623161340464446732589563589196032475971216167929615821034545376638000974616445225287925266034146859960884248719498204947329147156342076799126325654701742063933526819571296586848693313075223786771243906437843078814241393146865685924258512667465878960647535976929925563256830867036892722110924014723821399086114009226733594707326002607487593254607615403727853680179865802470208142473009243832845366081316503310772938310507032529865745775117520869691265264956730902873164996214557848184358721684516608021480767383899971122016309949025247638864386792025335997321199734031439376680076799678357150080118769712250894152784194299467898046440511095367349373371635794520116538337074593494497351853957637182853247480669132061566900545637560219360134459809798953508613095453774987261338014983513284833397373219860879465732342913547655664854931430990707997511316989160702187361288302114786615517633261639227971728977375310286790075573363890695988109697268196082198725608923023171410268674397243617913818824706308882476255429635943933882783109754154056014773278476751818240385698305166541032733746186030932921229757018744353982177027648282335643518200416961501121315409367440736321871153493261262040087381906101685910662660003673234908736769179089821000641724210135810150820698170904181250330221155861913462776597141207078459900493968036884367519305384597523086259442027597250509756911399194775123823685642187285015471998915027664077560772289494408716479626103885981480381854679527454344142372327906601215455370609816003004393871312643244680049548390517273560356074693239232652720110433982200440884293089767304527518755439127003051922882224488385833996191825753712793808678120680112194153650950958768487780149926356843635933137848846600760322357355166389550855303213082404751938583736346627405769868310701982791863351941835334023122742515115306418424094783476795744608743487647891876711158911028427537890935888775008828862323337247407199313001249020311736694062314384082311738895749664181941409292130986596892340340445911329289601444484573444141268278794129088964247847869999492405031595840359201787580636575333186133398092014417969363537633983307766331722915099240504822116495059937824663289826995504018553386483439058373596917222401016878689315578842218451760747632491536648121385998843572608202735082775413663954502858869429869849448071606388340386229189881079387752718361482563125630247770985414480842918179053804340608459149233526554868044292262401871958895172390010325029923181902810726543290216543659745970785479687093713687886894699629472917398906006919884311636989272890239758035100562546828097105179444106303467246991688106508260159008425721970162395856988846913989036032754802833644473707694015532305786218783558084459861144447364830961279929790574177873981478962558807273733304672293169445413226811398048701240935011058184926118510003865333599497473123666895012202200277065640894662527601196532961638239764944045508429900430817262406320586020955132144387078066962438775076759220423514325895022878324787327989321680380144481121688100797652028655951145360781150099322856391538439172255366509441594916575439797094364376733543230739247818115470390271374727237163480988662302014123950048709025057889432859854677347418088457343115815088716610173853419689495975326859841494653682408773973175380794678897482710493851505305968112313853861853492620810037966098623302024001825480124198937119350211400051843731778725238642123274738638924123311576694034187072215659645097954773683998438835775738759512120499318198003061636782619628857912092535262429868586464096504034388015879134069428304678006593946530031208593923773644199184026042063651719223064516287470881993125997402471764432358254807197085949290737991259164491007124357437933141309450731345879928807497945877561138336901737899775872298545894213282471012998608961487374518124534621931059948123937765196688415698017548999471476544754282949581596900952668324619977542265004595804219589561486669333218290677478039750639111468999647096291652688899762303052063781680483519471387834940146634704212591760787522738989960629316422495445035607658231586310967764854713356053664779957160797836627774036818706568343779482309936957603471216100290116581123743439702773786322075965804340061804066499697004018225668197913561966173014643739142215778352316226001677482142294408674837406854522180480482969872324901054669419114156000634152559313735610303375307552471866898640238667950566016047765242734443812831600849552449991214323685719174638071068702072093711960866822272893966346191474940290477175376450808525538494022034842761716708716616602686505817990899399651774832964489370486875563604464477608407044731539675906278655880664048169692174176293308026238522698668605958912809694942628265679405306089409733552378327111762631589522515378067491592678610820429494858526214285802464256487111442493072993094454499658252706671955967456887195483189572479676351822000972258087970505166662667510429226165169944991473776437657434791440266670147441608116427965295085157548141621892476385701990140845522898289722183042704504372162362443281508842054942849982451069418601163484200937109265465730769549847664957750539814311318521742013561585955021434504426952928962680232635134655948073020088300255057175535468922617584645751528997377579898726754783905586618318675230563973854168126451098698987052936895967664815998519702819409393177415152991520230077615819499174527051357498065013715408040275114715835702837439539966899904023398920411125894744413469071432921217350491569285184950075025282987031216900560288945942582388056113249454815607965009073840293482343979047271249881667522186716246523752018325973394434339590479513327449955511159460529217191517636154280020526700962796226411102186308844286545414956180662641534138018894411702693671571911820729168009281382652719595151527130572899121777225329916304461379962263829233885598176136667872563163935194538967879586470550455437517705835708115773899587585052877545782824878608688921955215505712722764808751340185438519217961845489462565716373309795733570609296716516114228833507882097482794822743409497094584340108722183547061811893787759569871413251410855014924686252867985331156375120697412992256442562367195795509265892891990500337868664825580170201855215849579960765162206648458873015199626558271085274379002301151415722803051655872464261337820516628902713593334044566258910705190478129000454174234224487102554920108234781941377701109147730636897597388846840835203507645728985723996307844366507243758135547409197043649865811616296705715945983495723003146366748725144283418495957160954374534975568147411846372740308756511182941701294318251509885324152008941422946503651286243689447785723514108070617699096229405664741906744713143778229430888289108958484747470922126117031881819528510096028640795379311250733156136131995368206065757952052269107303879787567513324657349255232541961503040429078922898148639573717980387400428611734286706765865354921454929657250261339829001111440937282091474710062039541633152009643705119401069815317191239696799678851981801258993662280898118772489091846646142143906178638364572352723110726111488108283220893928249605093730500442224836952589795813283827899484110536467915357158465321462300817851243345474801295870602804438288398092023490695731273742100349676719559254044006366064861818958898416270658779649782473132017001253498594064358677899243429365307463069085471309222562537163190277934168120716238492184463551830689827083247038565866166955023877483456301487665169474218414292012314830764181151321033380729445337117532280028946927804566526082245176417380149282626869167303297207298591487815071128706547376560760492051001238802219756998009901572425773758465206988228546838041608763550813621789007164731777991717481453610126309632237049471070805651203440417178405729573000963822195610402076158931040997926015655073772816773488613241269206518105499779689662685301865427947666785247307155498142904368419074748745641966559208896742749287416174526730147764830761532820973695721917311123144296997387751500796791738960167588650599290608720854063292037171058867079258185821629878334973531248016836599281707920669692542531318704820084914297695298102320697910549998510438304807890951211056936283199748523216925147585034019609130828953520298574778509396179873376671115053079570711469362748976844951879253488339373318401524131231069186705132510475986643077528981779848247099608291027499882903696478113489066748247903128928307780204191877685103112375402931837673942479179619022604709892740671829869869077204223050191127487531706884116330360955755474167076432570626069479480863969732779624404146154873373317829158820830892928550328055590505234883435039482985121693016756407932109359468420169456288012197303679447484916143929734449743586203527878722810661609974477098224318358567120661069517503632455787925868200873500798991561312214657675989287712455496572845343365257347579275393279896775029416860081854225609779709389650532936183953695214266338708057509997092643342510294181201424952353281103493763221044479628799693263008724219334797026770311049668016254152143267296752935149511620985101259996879482728419334319761390095932506392826154847779733274216542879209664849218400784086896166888837124363392182246216898904335685274456151450173680955344764751011779806396226655752022007928509874720248090878551655316133315614234640967670522777122979894699814209096027554208897828186844160441725753983322846948268948108764059642440426002463264366463312341256562986530883904352485606532176847521117640043612951408918303017913390628129000452946691596035294052022426393127208612616032349100534253035036352765371981852717843504480539201826939114342085762983344317208770141033267928041536927698398633039781394226795938135561438519138118748647753674893410138317361271787587556257424279666697483214566495018793994512294301778014705942173220191130266431298420180079454650089624794498609267637723414481082318972103483406923886045409640196139949985440932299286463926319137552637790638061373930687573665791302652061660907358608230049144574252646209126630332969380926018129868528886085212765714134748459575879222402199964487263571994406714434774372819173848544072068557838411153062454879825017602694735477660592178676204809384594970533902489477836394863547160893846600010844079072642365074673767565481332359612960734834771256811442302291100731027679273666898530577033615466215318584366507885367650800797468995261439844118471188500424748251618366650517003659156990257120276412817252067912245180492693406541075736189271259712046549460945912903156968980036876165654351091553571112626698892279601113868062577864634229891401113177272351873213819482043990772353739758146923588299222579981230307593752185919678207356232169359243397496992865509057910461834426858171419483192046369996133327106787984370642391200266102184538754950775121801372734433972582379415836970119036376300364865646230227838849511970472966277742337757406451253152701644780069795124822983347510247500230224981681775398284725241927618752959338621138224130407734017268158865050964162307834168929373350966836756306614271069367094473655711883950196951075038290027947698095996387175024149759055156546170426677027002518158444879466232974868458665197713909309131860342477046860451983223995332389814577169070501747615372162314985636157547828115444813303927899892622358896716596370015158791416608296035473438912799545485920513460808753950078824268537664359325551800511554403961156044464355772861890840301780412395600627447765251962471534960455630792180917725711744016962645454178814877094914712910899900152026223804797331424809304388114675815989980757002398265359955239040658294287045505024286892264353744493207757028217497713972118005717314811745211322029608251719302965178272458774779311899506236302969531363692917761928178343302173691034867742204165096688314147575152114837103476133313913718817514143539917323473403149967926170801571606683488788621079093856925373565699479510361872429192444518303522714932789280845087021457354358257071938578828066867407266379095148704649242924734000502603048259866998476240995833091472058362225960659555154732052753417589503327841522312378534973451946321467158890504159255609672359848993016775956626710042238008003281040264954392934688843743932959590520781431638741658928378925487679897884121240920321319055656278577089472928146977955449271138335739506653576348709730553898565061893630994188864279950440068081709093549686734552719625283540617428230891396945518260419953803162104200423969093167219596090738521094118753257336588076711469530909731208616383193567384731027382498766011672145168208666923293118544321404516401473191904791166844722023944480176621387784057302831117084666219655135526211329452771187355607621661429803230047499452974660884555342567974593717796600166870221725753964435989224948985762947550123068609061525071582367611567262695546470144102450931177209614913562186991739935923685958397700957355218233295388041111706361982560854833819157712497427920420032891981673364635290380645032623680329229746536927725095427937085109343210863686354141306634514552365566616279182207158179480947073654435939451444375192203431498947272131035652697735265896616304280611271589797602936137255894764900876385759704369671088521484889081499821599620465485200978380107801327025513534233571279923269546711128077543959864824334524044458152337422025712798463996744762943769041418380792827898773083348097351225198375861834083556131696369326508397674464869327965417165668147693868520737716881402718144031352431800665460291148609783845953290387989910032730777426906629917489535017346917682654296852223795789550322020314944847735804368666779202284008606859475661130418463040560467774377843553702685666632832101763751417150316923196331922007989446723723016952701599749250646884450870199242092292548852101220332573479999208663401375662659406937261198172641676976362449649606975181544149178110118724659223867781226929976749322973164904608144984502244466329195700069153006546849882343139227157885210698436180554367530308305049226582111250775769306226549317018523612666562292262393573000448143637241539250053782213062344336890850610820225630609019441605463377637729931062209101168213369610383955282412213084391901024213569655623228744241908441344362481315154860180277107770148984898926626524224904336143966374466778433825271227356540230819479971451869066500790064689084213514673890593305303152745559450308673500019361381498726444705999145700351632229319319457052955125634990623344392944969740527395544668525884814303591300941361192948461002572923426713103806194935720929272205646088069636855014260800697687031648502602043674916871586808561182794101877230444656573029738079642258929526390080016179924115669937974940340864486666064923967819320959651837623036804990918329500939928696327324832353994704329745848632748561760138321425628016461780166259649033904424125959061278871513676494439029451760215530348099654207299228836114544813271390232215743490425883411724020334102840943916632677534265663513695478850663336675609906503821541462611022961254818840838911798610334824808976688090644096481680505438895703718459826758789587321797498701013994184645004667586640986153802313250419727271529872915091147443776268802393843305095593594270942171139950411614592596485477723421345083253454141626063525355635989241143732587675571166840460696077020981572032239142191186715187595840342806722344274331243121758710331619634219775791765828096776388026105866071852617306251811245766902235387858114019113242233286087328101866211474824534643122886552259144150551515050754210643581859195241289953246070354199124493290009000980199135775198428635669446817770859622528909942249314226059955572416124094145881846871334126508378408539833033512828247274786064794867686356885056877830527086423801613171754360420366184186976411320841968221261267244253322764882841437091787771387946148096187525250274874824619760575534046230813187317149550031262207429354610966359367319370810243585063464270888612632710077349120543713358682345170891304417190690141841625307369456325423194717910831523577527867598240305810691804564089627306444329445929045739194115461839598496326860933182965714920296433414054259837287565745509700844261280884832941190306098686224169936302056438593556330986370635729140857711179490648039724951650960025874595325434187221807791016904022369591611042536643838275799065937932364665971349086317706630253593641319876603200053797632262222952830411762720126373039214124698428906568219513248318705242062005958693272738654458100977304242199535196033438639341064637950413276146215699445688827854747325791047045841365440213305095054029080003413390112476012900300191838942285777494671158562292623980858500643523479953058342555125124459469989225686711897770797448029540279992803844919672866669851079357976920894312585895671547247284217028024605476699819555502017138194773750151438322686307136609184875929387399786211144784222919972592990042760189008908787501209562760660337638775690015471386906891444281222297958545745873054803984126160688036983129470474345866348774418059291893394510295466590777921365734882783543190904455346191518039335231003448372782252557135963156611523557072276085539818606610285752602191193932074811747735940693425103494262421676883812563502198566520988249476896270532298864705004840310296840946710744590588910376662914508744804878895860284961508821708403522526859780516330766064378411162408474295957772558723650798205527856100422481329066599925817391162207227617316715446705583358646600933017146235657111744437984400959518692155590231309994227728206103995302356530380532705003551100451921124359184675367466863584002770514785931250004268732251482198578652729366590483515989605679546938578610691775677534032439977437100989975901536711445524078902266349281719876761514645264484889155724339789670841413979151475697475254581219571835022475104986586573681248774483451661061354929163274313155828386570307059115822148709505178196986814125086676677233340187149917771193334807002759956151177986044548717795654256435441677216724002383669467840571757292395473345640159252288227896868182364956840428099729123514808358580441777211504945887424880963357624166604965938863754507970019951937691794425369866840386760097329023018823247748933603223308767996000580883361566440643022686661537363864929867206397082019880812173225102700395862970833468598082569716739762079379823287231607581972821248782191504516118649622658122316340827908596595846183689051214115127421227723050075570350732318887398241049962234991287777152246775991797927554017188467715930399681837168101273789613072683080840933688883452324493951416309196855551776684602715634088181200568515383132492003791448283559211349998448427389713782018558855860831840223147806765928766620877302201627280521752353524286268170416567238107669760052129080908568449401606532921036813495965795913499692552718255521437805691244931689512554513478049859039680643266269611107197858127695970789755463278382795521255661505153326398924293246784464811285187127462131014370350726889002020675005827511344200173436620141183944459666556581192384520860782007077326553760812441673407523824689349114625998033726777934578942022467229802356614608124838954178567115593071164999544367487664796256810263791377508879074775038260374597891259305309350216145731962785545343419134910578009978810121280582016972511424871022182858461089296013534483500147750246037071066123221969938220258137604867386583054866632259852716101440313842067073131478135781732103778692852808630729960014624440573473855691318595445923821774166631239311442114493244762866670656272327871552072037123312875902635123530340915643379021300063254400492150796991014592360449886105745940974012342856404523689470264449209731173138688952221781254229552823431740048465546303209737278504728485967937356326781166948360082231481056964139008626523261307952133421281533950774090447384058675982398396545395667184448031778761029314328243812394478553907714130451883907079246729229070346034039864039460803193585069447953654489865769433994911036574691597548413862205977974443596885935157752484689374264240291107166852218656584712840547079425452797416245832378307560215884832308662858510466146493290422676281303649324418952601101841468020721706639931424954579522009924641490536782979095969063888815513820564934910967351290449162223620752575173065978852428334296495369554264198467158662335355512976676282244269136095585434092829331093441257976942519565329759787335176994962894505798555722916300494125181771907766477762632252292317582486718299027789620931513624302991446988633135124407042317597877764634503260312730239073566406695304930128226468851991216696636819985772827217629355700679083793441045401756711365227665486048356777980334646824280751539927094752007828803951611471047108918123303205319956465660418120819665405890876773912565045903384837300525389346530150247355105902996930625473593018525377155926450367098419341411875718787613358042662922475719171760992077446018451507918001826229653859228130873870828158002859407098277919118489634085179924224803532520444829809333355511164258039638407594637312931852586160866189724245370464870719484791922540451855280031000077822511798896949189127428155648334803095671800550607163073819002676540148205000654179907998505600938324091088063794119032679294392854725538577350515410656055549399339705572316219509332371528418496769810933302738439917171288973055496797331804265993259178580397211678757672780526910400153592678191444207599746443947509496394606205775646922750221144147789820561610933387135328851661180124100702159992512192938703742895595212899195638027244798716810929285154167499581808398530786894880267668034742849761186697657309493640423344235707294189668123723463830113076255929214025743587077856513799496149897817096164856812588853731028828106592141783207487696635941199444354010183776582033444475601429496216140715197622908804805507741174321717397071963276427191694407512225995245304791563939404726796176953325306685690247636170912281225106547013918799732358869946264667612310701973830546988251118541705552406020701355397302607627829360165156281815133814949904618706332948358972014868282503791052488958893214886846552612043035865850694848597010389483102964336172893738599444748058935599190742161131208926332530969846765149998458688904836829105535301458360306312356276549310093586722014480833375686381179910136026472956730297945760660964389599750712453990159603867144507028392026318364901120523721824911358537852643790993722662630987187199198345606781786179188872177480036989646738062970829429328629114504749219768760308843650990255546456047631155918411360965531909384977032574262405965547117138122298235959088400521327502441653403432927674740344093059664313215662675096368417055860711280878518576102658961333785627428036142449653029134361595583220578341219875990353278121210398930029974697987312615532114670052211647935547020148857845630488007391344709658224827344160082153341074704519614824363434060475238226682112719243596081760962978265618126661710628180050498336498028916500467280879874458883953537459155226909689109777962257110098497183104459471361502875163385879173123460560671331593139878604372248207492535572135863755319852273274078751150555755427261778822034594615970017024654124049245401611384089429891583639875900125172149733019083213072715211747112241136320017000340476174790251487156909942201317885207242238704516947941022233070082123141764228816359822339334426046262339950475806301542327641289885669582598117003261121154644432848682255057155739193566586402209591812339293476180813495861129474619805429797375035138286869263449858884849185905251558460736820368904500989710306487444487744224385441437167592369415448622907192593305154536450379580598138793137193324552685883122906291126266518747362505998674965363919030647399898476800502481254977037276659381617887555261231793474513768405108880242302200191678610134108378410708030041552092365306615883670709112156836053018385291717194050583032855949781543798447084673338369876860216482234454494848914970975111235947324168655081436281213461226748423200746425267469119321360551647808113894663314527955552922926746167620001340422005482215415934973319179142180427880700336949256001360822658119940883552149114204896724924832823552014951482084159995942698391339772003506135963663921397754586879142819498970668120210283873280017646987436779189150317926586963890849362554698256184067395702543988189587160408133280472750663014785913108257709998071697469445346629059558383191099520103766184925126230610408947649658994020500772808719080468659545298708810655072933402687020403915988784190250413980410300092254574728914724079208557131486783918157659733790719592618451980313409196242283872946003017815808927498626885239838793845185317841614260939377084299583473147980398052880290062022108128783198784211563243974774545614565597887632515150056375987105490347810883474963967656949348145501419671563096644170808267686165266403839300471536507924211133892292708383962658529338621435909866918735077466649516740933852079236806065639729097662500015834933123004114582845555140040479584478714013484839448896294284352914197428734195280792642388966617607215419481154231557853378489732016481046422826293834077929298449599529582167776404766753941469131362755889683517449152860363853390577221558967947910046859115358759070147592499780752377301754026577701779300073340855330430334168378066390175346235449525042865667478626074196256960380259684419760315163666959800018945839763196210602979568208375862358623755217178197615663778856418456157629974079342380292761484115178682903353516306962559168340123151712997867969707931238365961107087209169022368895468559786314946126895964884839925257533155400235009767706022385569219978326941281032641943812257419960197027272911415088932853927609930615038894007401547211916645270982792787872612734877453570176397553106672325911384121700519004373727171461616844206017488258029636204455413927405522382444331560208767090333822383609108982031871020212924403821783311766190940446724675531505917988910244198176676791746800662924257174277678075401560876239835179265774437350407746190930274562619827745744817873069176600194125663204516897295877686240709550722742100800057781270385901036683395927829649270549302423358574043518179878511140530820158347916298752306167690064244355559179263284019771484464499412037558779599800007716087198807469513895381131511002572773577738719007620994410250485266580473503097776751310777954692922333384339303600978513901812499439043535791565285891076618691476910300319481078710361840836393635536785099700702754678998930431854583608212695806720531040962224522244970291414588117948565793544695941887667422281659091632506643357217503425085059215746100033521336776444005135169782458697855948810468438343663471770975410524560031527274363056260669370808251989968707567765185658118403295488345202305217028826056103400056900900291772081310692386119624130742065447220054480086569415122040051593872158406087132858217406252625483729823489609468107854559191926657788267963785125688977067663560220735296539929684428331887773677322965035485127432854763552838870282335237321967083269879452115983471598031546313356768617294002063344396525612707242131444291186142175740479248796478207110529399030206309344496377255372394876560835826208410649109219851601842457486937506954495538554409815301667309679561912980279738047605847772337973278531462555227560804159920111821696119911325423563259756586969539069194269521585002968913096103127110993515384802745469983402347420934295526747716194294123124177606135461573466105823928187947437523581291254597056824318279831486903997467485975410869464487245901973516060224009137329410151089682361364658300290901666781411968711402384368010890536507010515935280795699957751173841666128801791772298214693761164289644982519930242714296916129670651552040730276760841189156844858990181932485175883709116559110719594009089612310165206805532754217365013015998647061124851932293936770717722272947873675372765287723754366907167805062948914017723289212884600186506473189829581179444135628592994825558383804867983804725390746033931729511000549255237577221487011883644831456236533278789939246838438124794767657466246435763620997551890534604048536905629508733023891278254416211394831881408398823324933750771618344340944648747667107451887181871662312434128190375664317511212235581923724735978003252359115006885725313132523111252011217399759860181328557076336588757246730544602215496455975863879392034884133827665728045254902822281226102133059170732871391504861645158636239775182141321215374526455898720801463626382003096236694397255007902897503756184897623496385941734737663308046173599074333356742623903586231192108002851580268986486605163756280423872225527972280101952644295303397595284869719196992715605907186904755752537900658315732422354311023119518558448653884961440479826010072275691439698519706198478450175170452338020004294827647486337201946711579262758857026234821603905854671464775286537885732797983848999633388308099610297799821662270914837268898153392603778445544327094442566922729112538510638859161429713703542846833698955161645631006521976929544910899416638935078698050454717681799044137654035526569392161808036871898983698801378636063944290722495424471769260889317732059334674184273956519925730769398122622327223832825182323637492099590702432633417453336743874410527163562291617987437112241292744453479371466199235191048581714807154539005679347120254695720533142478961790396942417632504718992416055000658559517635643282846135610933864804729509239850938529021132288383293407616853769890169371868060637891475239503625419952879400600434750037347101385012624262742563785488969280329502605635660804102486894076631850763987537824888311139303203692464148924039534262032443168016908185926714430050499220868808510457076628413576485851746007124513569226657678185388622548611654962613949034325222932541063599537582858954325888218353593027646637872818685735012812862218223891287572212328328606217639502935116900284056525506455076049427359221410783583768157421181034624095031991013121188784860792718616235971686304981698441009097000988299807074611512187875441802206255444853127000117575511772494955342785120599709355901190114525456743780590978404762646727763152527352215891602358310619059549893324476189522719093611525997199334959484291326254858067037380740699864180547036809325466272401435729689129000806830869962932656896832751388084653206876657286170552482040766308481776330100127582128500772056912385759279598787430436251791113446278528678033356249183804390918785053707271413535024335508778194859898241224425729829833755316036205502824225331860837531675222038831818529887643272838140788859883153586439603694065790718424963596792068232959685455960395815992869197948597277561660383363041236534196395135161801394712192769916152013937307623377190960225172872542492452636382933954023306849126178567131574708801493103920403236760005522149832639996864782515161102435227856663444860650005381688347838133968694967068779784362607007289159228018424645392002119456286515277913812906645911868735540815492550157401774055743750615104644751833774577751571380486887217169302745862076012073923058891188185579055822301097246178969517960249636074943628695640372741601425561270460694334932437502578055254071719439780501753287629361515811577167397295894178186422563974332949623046271216407634757100372841319884455533195564674903772114212221898407981971178107736294940287457613760262948908220658086975872757873417788961606457775555223509737261310087281809387756656145068249472212560679234202332523844266722750293274309099036271158366519275107958935070214933456518590463403389877274841153692677320067674334678921057259064596761517921734755487213855259532522381081252001499470134737786004190172445635086859174640355361353830313455055743721613965914371967397790843592224767535237704307781445800807354276684379579642279511207260371378581836504723863425696633353571025851139505916211115407669921408830221142634429260638173788566018350449843421190535326744874086840871538319684092879348628005154638113705139118206050426670172925518710592285656720940631293657235412336783032468025287113025132954469614565404496926988363139525921544807219159439802706363425101325881344011151516061512396111922197528722261210099310200665437878000968853235761644164597508803944386085849425871364195709255877636188233898954355731656456285572989357221337095207668741446706615877942894209583391749579513755254484481632269725897223709038800458317480321678237499256608215829499160033734095476580831117594730379900215420226193502808839776849941734272822083156299255762016432332450687235883548800829214620127432901022863611648170541796387529128670880719049818782396526525093424926826843979305947361225074605630900088214903593943049278448145557655248084604836071319223203252220148501503352076329915323429909636356009134746439450444612572130545408783440148320118342189163748857629436518090084612499358921012825875417024857033791799878433901591232353309460869491872979175244246528784816251135332688539456834278323370603205757810823248350889166693470122302362263592994858734210461885781876221698816011889266225337211496635342441873885692903618199375496723208323050684507485225127745214194335765450688920586898436735977229465882397928285840110042979578492072781505557790805898022917855416205875537362247870458369504562899365752304527937505161138539557476722271813466124870591737614012517203877527471415554123236932265880598515603234018184031773419471924400363789646239107585087248697465452442439095511786006960675614828866829912860631370487272089311013825099851903454644707062715989860799503490542305106307714725958838085978075587870387765167175703103488171568003863725844886105375445706677196537940947998297230839978966087098715107588236102383195067144292808505680823130693541170695364570908304230547796237965285969140553557112760039481939821621641730913459363253268098426288626709889486263390075428826499486234963689962979534697698356188643633005921495922829458132775492765526863463951921598020375850590499072789675362385111729723047481461564703590625606950334547624445925148441997080538016577426820160199802339893241744835308308696609813137719632787298467263853352646850825515096962081450236352842602090966856572500343060308652579715184500440913792966303960911670243568697820223239648273406664875615126850552535477032548582541330250930419080909593984466610004779078677588493547776338887665663540374121346231367477433505316205564556339162793476521808139660405856943146549086456459579292229477504205484414662120708016779410091491004526967503480112531183035584473386903864486908467040765928719265813674529571360701289097136890447688601595105830138420016451532548695318014516134404222867982358547854600081294998901574529955178802275283519102763561262453285349036869789971939125941504687146289171515485758366317990568404142491988413751753593296545789085211567242296025030245408269994576477155292517170054991332540607153439440921528219642610329429548007421440310337332522760938465975212423818288476021234184888985948841755640984586652192287033829990732979658580569735015792885495728690036424842562110435263714467331407009244163441853682125178574401488196185175717471806196507447701963793109922530184114084136229335838927315087120065460232003767881423468807429604265985468119097885244008532600408596242119927964464562198929300207443525043191751452326578390424749975005330508368349204377814827373962638420592591397838025375568809732037936053506543476243030268390532747305853309018014867515120886850704341631802385258996656648494599650507868875605329050245473174252214995123208594162533224291886306265253688276345489048053811378172597336388292624544025152411717830478452345114230210992071203600618306665806540273553473440736621255198446779035580735113180166862202143496376036551146630932990035318051734159239662700391228548132188818868451289976117677040404046720962152957219325146359218050685077163683727408429488332939729170533408973392072761916109352701510410062616698682892193566518569191683698359251992999141186505210579530424245764876601251172410167656309640458140217714982308357351820521475723415488871874236720336952700185908361528404914306573294279076950018908214594232361181165827262461475041127599970942336963261413083787333384572081329302605655502363703610547260568243475626625624969184385094589929431182041868262996557933210671762525584475558185969384143310586612062459839121564492572698171700539054921706315231229802770727993095452054378432166860367464838138539488900635322406100539161487964850502549696073349338587555264845961389086322147182557935056808559838188791384247540650942617211758382814923585185196169261663821173523155454569210555990092224858327733079350312662809092960281484518063761148744184181871836704799073205834211006236739656250905676569761265531075599726761648021875390380766919123489960658999278804431120069774151567144552903929234944860864777857583355406824861812596200910606039488805794163680757908002065265522719103577102459233101828733572348192380462213517244962720864514752127500378192146462853192257856299868356583784122919124835187186777862139999888790088570189271703461446188911536111672920931902285942391486370204691538375250209336627007205373085079598166169743205465237518693586407073743094439441291583050210794682057702677888018939708535770761659456251965094711859410203398783514671177441286420530590671203424379008774123974623086944161140191687433491769072740924641149364888756706662423093593316269002555181518609414979884026855352227125032145736081983752324507364079247944893563998475224198238651730787023381664308656328284084757326841832161349645931191121574529080837303544534516925449480628810642724524370420395603591912046269210939725879911280483626225330785285454044536322314582592822912770903754740549672083582292311280105798902285889100144523758719934156099318130368243127241501572860041475142187347765601796222647689858641107525637996913695890440995316182686470025818504429117424818951402629212971886075862070671981514347784446488568165932160648776323535258835973284891920987719295989005302558270728486176353273472516669708383888017545851029155283328907057958061247086694640710355983706064970170261993868808439410837211575434094765383085814323199834937238309294803321282472527728041137327552312060463588732713132750197143451092756353431495292744811515411988714097926558426883451112047178195138535620854330841125428517540888089035554790588548912141013681132033481033964056216643584502550458503513016246958417848871571790794865093105971510097055503317981959548295395484876553226739284353391691227725028221113000733718173021435596631722867964658327925241423155069653248008480759873964535072865274292468025029467071629857106166513444394036674482726364343579930126672753589964416615996639018810503238514121080678386551201999217432074850524258662262070188211951339810389413045965731940312651277408805532296913782865680352652609497857075951751033236106699847321377735976332192748134508636042811897080969705662966308834885117326183734885010281833901174478189214349673782650222921122430125536837308626922458590377861284160517235847761309071542525391519394023915235543506350558955620259443614944165637949906844091337774569906183411437149438679417117892984801990243153733784241638880123910628767643950395577851043620127393383343664520161694111093009963767537895534148838182500878175328300880504099892992073560155668682316648402749036513873806083675770153192637600239113583262338893766301423286006410972376212622279191652213832070088419457292032422686452486339586461009154736660184741430627097230960176673700546510339283945325495994513691902531454046482737887298778780560873823666547642665166231814470136108040108291409444226722048849170048903319772564599707676989457794814442991864126923664949305183710481755959893553192789325432642584384393727126230222907600701742975881092066323364362744104194614149750763984573045547964767541698582132091910064169645289450207666010578058237429926783780430624721283218467786578878304266995668887050807176037693760275895526559691644669859111640165079795781122131205433772344758277458807772615238652135585000190232880532537882628619145602516543328359518276884372337218593248384495427455407667253719567243034358275667876743807563999469062200190447403837025550275634871005895637149482330712349971335855770013063213013603963053013614355235424757520937360101185037397500461952524329797688380073470576558598463545754227288025435557232728056601653766638969172725596019310664296823651992586587051003013110942670746853525808242948225445362647800270868643691504653486125858256448276431299251410420235864861693405781103341179170268934715402599630830577307388146985552120582063284600818522561720256352326908130896047234474414314190751454391985412254220846170693108291480694099220509040275508429502776587203541576199172613793741530236036149163343193734751541286525759661065425481734398025662045945210672225987213346914245713933650236495196864064191291401226132344863044356389963007743407487618516669965624993244816521712918220525697294579483040116845312988148877440596509356442854707372894066280533692491404058475644719923542165562351259506370677091160066700568336993416581492995993812372912096267949969642454312368794113599939910416479996511197889513398477485453952035568150147650111302475779806601176851787844645576374215367778804446403087387505796062770411922984090386510215409370892389053294347428116653112620950713631331453620268902373014293924199531012534369919273154930404878207284429308239666377075142414652345216133581464664502779504056421994941180335542518497979447488851535160835956914291405171495438734744977880525064734417624919775174766841847765593158420057207915971231954467359147369883197636328861938266723095129421327959085366890622181051672821733686827914590162701351358052085081514098564049121743781124902434730837779194760956755713793830856505401516028953493215339428564592581599870021740508456863983603801945505724384416936579541611420363018381917810959981207148408900082421743468050082665972012896614585451557932907722559853217896606439524515725965026501854489013679116040171069775085604625890546095278169264805924376670456704019220252493183582371226374094869717369356562412511367273352564400835287516082193885823874488059515519195730163961638527421270510264042262292600685897516555377601822550875831999418699642758300456508923579966529889670030464813306746575563810747646208217469036515257519642860185489757666990944979727369551635955373388366895588865499149141230105448872377006071011015921374223809744390930094697715132636471268800672902384077972318850277632527182629061200816959416966946515420975380508274514049532241177190743236731528039696400983778846079837153977042568358110561986918822905048508297022995879473471000570169703947971521784348535529642501658879738101764071475917254677069638913005289184195486837859003821871075222171790296749649826144925393019852385286869894431740080542479505797627914562966114491420706522407076197729313115617700671612504929249974124989382312878370315157417948067066560768942636221854299803427207725626782240138522283807070183280332444055706930240817462551973057104003137558155022093683409068690377209674535895003102867615500727483448523349345999505329347290688452345188961079586193486606588834147443906515128369532360925612762250948609023285779825496560564603378389154519672839820080003157699614946010713156808609612856521702813628206427628364332306064030278633205952234457537810204379079406986765647953700289302514597553268540180337387455736139852020638170923914709053315560265839410873761726264827478207108559907417195683087106242181909215251725363840684857393412174001490434606035559130891717224288895107639748770532617914967019256488079400085261248690606998888379331701149028065293085192760182193936878066840926534330486643250541590464541397128919347394661926206255243701341186662568330942335669337276094503213719516601756100144074436119053130431635068232613360787495071368075775405878962999492572437384016211092291405547841487657418715088671677325732455945101905988807074377039058467454456048865416854580803199662855910466303518931388095417920274816530888765972105151135142265008415716597819102666963207723135924507311365674340233645973581012802530063059648940700435702594050514964069700545161100774096183475123095660906374297778698257804598055971868991693465104894028480149032174373037491950499296362484499744885432682691367869667573500572327565998396355639244307908920006864687415635105878092396242491916826124698628619896256449563763434257072917610815141079185710118403008827472624474134269521864249546300581661946312155984924214518153083223462968003064112678513446263001876545182148266350995353776806392589018956997835928803178974987699299877905137424450881538137419997406348727055338235364057473709027402158348899013647617457613065587684338055263454545428517724390958500088043497988181713891312769115061815672924785994092443229658508268013660884285907750797469270547202658697643330452498427592808839044353522356627425095976138153366142800117709980090935932452123021554360235325624590432102321003651806008214592070729996979217838141008251036023797755652368837249336762407782295938807617585295706753171196662182565610893236889788185726669345799857132819161665488071406890928345844432030960240773651886592567222578856847290869202866172363536920288201585184464261215521293084865384929221415643452680028379184088684395967220781841116843336919357970094278798356693357376364671118488080026071907846692190914498626910007849695266506581744126556711888942784356779002147903580378137641239683121425002964386362195010733825781402611812358541005525655438175398441370420056462314156176639859335812718010681230134821011770627335758310916023720479373481208577059419016419072805972378949678428560580028489753842226906552393173602107472670448755794295680130470760846520053082354106508609872435482440875599102130215165617959749183485688990959698340915668566558507175498729837342281396322926142238576027250437071384258400828168406122926473907391283028635893564570505639200385744778909951006033361104617200446221268392961477348339825631661501886800342621876365319727585566986546310523621444341122432381529518549527990108911650363843460214102991750565291078023155346735729099112368314662487700826424171685400425579527055177917036729059146403825547250166352540341100284146557217105204774964338012360780361855441232523872232056694811696373060776937646407362217827588843268860003513330209387190258996869079200603309761047516730279917759208458832635036134903473270128618062042427940712804712218547514849748092205209884810703084965360027979739113034096852280397654486796572904678311210657937389550337657920698400709330209632956036913598185164948777216941032528738865429854580397940247298195831558488504553585507305909502874413351386138835850744352518720233096147873411868613931928902972282624728523558889839085813794876505534700528507630824152774157299333465575998164660870783982446118032344630105463924131280486675905179989784961735660182465191790858152229695255288534817728297778136244666346322281510280193839913259042406965524733247274338439463749809677788390713376634965697890735047302708327106175009837407832658650647971008458224925058540978720465056043481183452448606852898205215079665285653712311233758469108543516988596885360747310644564227819553705130321433788425000812123352647774841432239830755434754647612604608891511712383035807129403728462505378926369871930999158350073541244379070868842820378919414097007564211541127896598302306938642817080549820573495466010101374166111639647236465549059059087805530729776651732114720853272837581566586263110081480678685111474642446378319710236166237510632198998728557988372901670790046637701442776755775799608244225745977041973590411124125440236444105328194361652278201399892748663791235419090735059975061281137680053793805038452214813900243791935053737204519321817350323549419497688220889065348850473185657868002154751804845276303869367046518337753347774559038519076538286249096815020191054986221917244971303762797443118564202089623229237500689682450148548636122239484764347490790501642009497266459715340353863934710710589287762247436061580667901003407983568452909295739781993773111820510231158495435591610754509816755461443354457304300703829382126860920270089180726564219826835598432444273524366685058305214468773827845140014744014815466056254777456450745621418563872155373616323093799711006802001335162440480223624240630720900059024157185395782939548457541214833400387399876838876567362319204209474344223906641257167322927550535735106694388324706513040787501566109941992232092436713804442374822965243189012862368433097356074221322338955135518254960370470421712117067135742450887049873026262665991937561123419222245870328826958468887718140117235948998249843659166609821598988060224458790172253485120813917311232091533004680197371005602564247422716257258568934769152422764459287925206814289230289626153248040464861355245247760325358327118536933154652454772311755637127979529545405926568527551712753071399451046638765052348011073685904675531985834984294599651282703860456611762037205962106881587321416482766160858755229698060429628099352363181379023160758898234618635402576209288144283670233586758094449800648282200514971927134285058207320400558764878130645439586957746424396162512254144760885387815002734930851943223202331151655898930012875585665641528678230306716012731583822401760101504074344763264893023826608996786802041599148380417559863068716133171554739740657737005750698815887685533140007569203459572587864023009678808007902567862392004290640232344913986360386484565881337174943757879361562222926345492640162540552869273326841763933055698673321929821676666315249200880607859810015800182817760202896622482628939833948309176252026492615745456137712438829499791588080497623105868092274556307236611298174918876966393487467080153603788263206138438342930470485860792469837000046659368409676728547866980898125698466447654606437763078828884163817987635184366811482789533958394942139852218380454066231925662586337518692478830930441254849897371342506887491739464950800020469549955324291045705550035534455105437379275132728774401462272168159954093329134930062003230277629819939709147623431065889746087396101062456148782148569373873528240909439374242718222011092565354241374243725917914799152640825161069906944471909765197389247290871045619869785519960733471799626920105253896596088704864813282155466115564456081619678685107198804333986450487921755226717810720393214644479086228404509874999605370851953885386510572271054029069310670136355053969937409032327057104746818850679930282189960665714646886263892782136776731213304296263696698549151842441426035448358827905107241475548950945912194647805743503985408074896524639041082217572320212375597505971311372373352542126152930391622364900077312183332533148940832994981026088500813010053693330086733632792847927317682621161361104721184801977794073251425093537120752775796749583363488467124028941909288986645992195264176476400117707672735322111679542445512664280250850691437409538587982274568204402852079588191384685609688509817820721053239835900996393758565839353873329551112417316045290457592454637589409514163419477218691321639535342186375335159249970200936479349617469728994926346655073448263788990472633966168209904549279765923085861690137130417237047900330013599990443203072630389964549977768977315724390498820914808895075208428330703956608870598735868047149461252217904641316677670000869330433873834085963994584526474586308131244063315309188683518122490354693143073147289800958246887416382165743068040744722027473550701050630282616979957197778847111190413505515784021575688606199772497974592333955032135342557266523138349711820758096454808916057689663565127336466185419989291180354913491093462773000087261481965923291404875320483986868968991632424906094264757301651987889481886102317855882961811660223718539186693373386298972286344599810179088519399902842563090091653748979543243012196143287459414272273160503732669173211952902285163233601880993459190445663968515656906400297421650796507850476024401799611323575626837090640899814239297773742531077009334161764023046216209296547592454974985085167607220310373946729842704442022760145380506362924093680581298212660984062563002796544567427327155007990806687622951184406164251650446767547405725716600898149469128555002551995359175795835346171533128382792987269748483158903380835280975674795622665039444326106223795487516006110278842657097855361895633877258599878504851771215411548517279927989051669850016736388341747446487922258018738044196914464585652346990851022753038048442292221356584732368341445644472903101145524149919173384757625714720306546956163195853980158352268924502007656081442662132390337636407743738637828925929918114281209079796785779895223997246714404217108387722818484527129203373213219363773482196709448787452655147134318190429339921314473770300415949839590084542724869012439537297971072123100132651419394874033461425367463542100789635138163192966785324583654955043341066780700548675859630964836532385323733162014817795165338093102755245257702229411306109131618501299597387832715927963437278619192362613044758509068979867710835624883608292085050493689852623645519260562085206642099159852939217399663122318393749140672102678868731443139488289614509835449132033640233809278401277355386917667222455955956591181851119144878982404358785260679058868898558126144917728619254807796429177510531260787834801906213691462285179914441318020411354731566463624519464860396462735235166462843650305388904962296885274039018612123490942862860582604331148975231710913195966633207707543548398820613808212960151376978318922721223025661527639227805106410511956529481542659641404460131731257726971910013981486779946453810633819213918463253365226897922155621486865662404014413801167777440791828952211449214599968508206879209230406305001023906378164500434626458434255333443849623902069882588883104231470026615947757862120449733011529046530783220963737067718264635232090055181441527789604144728949942373384917953799424402460854566112777656438095994338895595010461767790491047469227558147603600604285582545394862826810810120196855552103471155199679358214847492646475697036938746605324805363153661686275344203631628361226171693063499348830795520635546889798722796041579372720453849179786181163076568876314007767126662029187269662217448250777522331239364914760774465545473696527929555182938604525392126898829267705358521053060255032561753392402984910482305278356932423908791639000287507250728460063408705117949238824045377893918256719117311563301742812397456575562589991090236592960326432293181480580776289639775140493100742136810049979077291203879866136017078084973875247231126155165794710354003444470422226170065693335244635202972891567876718593457551523406087411916035196197267054855890748241054972698274000374827150592600776981010597667153947891566963776244851546471398388462682878700360615375353399526189579050891464152189216828380274070677204928018830373106018156691623637103349848249141596518705037621183506992096637065248883137048951299595671591541568286259964224081090415158489233347474411055256595988921407487820136277359294459706961299465080172319141158623833289843074394751388184312456043256487076089351265558319508785002968048046023828856854363945915679035735147396058293357640168872442650511871032749820550493464133004723350572585629604987804547034321376996130212593746746700325840652218932039550594699317037537363122145552120400970238375761004917944435680843414751724480040870698333534150160819447078821053769413586977221687190927925194286804388623179349360324426681473871100432576402547235645003271414499241582741999559586845937390394405875487656189446911725561317935405410413589285133071301605863549465295834960499096428842189626247193450145778796838201617306951161909449230806835160714502470207124281164555444646068766676921704341564903242063797766635227665403028949185059063145942171090434816292163481950468141245653426330971004558941820768613975550081826205060795634333231219805937582731652729658834197908787072989813279967974481422219981865253406070499816083952633607986624598245736953133981467116324685855744595176812008762075639896766143116456741868148347588527022480822953384224222385802499227520128862818333312483882926881415907129625682345539417739332033706368926265704947935325446198693252443976245269207926814663467258854732825354940741673143141806371275785993743517451899408377988584490902433527005877674020905273922238511087536973618975962176844349241273990788932852050599872482941921320683020041303315919902562183677481760798298432760531730672254153346367999839157103062584937879693765221633313670911405602812697782278649260756002773525406906897184128667885669109257147741208866405850940409661054364083358234891600738865183877880565489193449688883522808006204255823008930730175062731527930058606717268542923988672740534178462013384417652147193403154168159948610571356016328939999516152206548107657768413751615946308441550465587883697093149314648785038380103938517153998748126212445794114957217048144964844251017488610310343846604692615402220741981813925862938277820719421144004221494220848535233369609743613126038518910696424351927631039064494468526873875819990717062970905621483162944816961363916187237151425078897457458115665733424389802063215427136794104951341595756114676918387749029682756668360218107205686415105204986708454424172997080421107071556712687136283184909849193660740298759224821429169461917608611957682148332110537653199823654312978241757652155833302276059417363210522338748560050329561590861566308459721578323680211201216333812910085014958170208721404962082571257821244525836678503441581675986065250432405653388032185778024063199767168653006644771384344722329901149931632494896488212832190074665868824880518784183710188560956685855107533470349831761421748887442954868727279831339002549991946015014967176085627249105063711026439490044483743089142181063133250462939034182372299696172992749919040441876321764818817408171107550165993527188660977157335543779128004287282806373657053292501816731146031766064495531106860349329951234191134167130539620764409580030885819043329255131825833052145725833510195733481602351159578982047980511236377669904564493359840172656388731420307173019814447654693249939083486293348895178860939374894366391837914803801876539489435049484289447350188228634551088089031749196321457895602529083716228027859990198421807317262340871768946365810991653159945513590174082858685046214455853562674643440787575486905590710994271304143861081502237185245430668886425614935674905449403785564638013283548222399893264218165033045066307383628179844315544053882074296834805115933952141138960949321819176396395595218379608769766150824645224435797973225303532908003756522166355607014649436516578597187481691603667038627058419464683666885669648674817494399669154839704201905713348855358510201477331706511229207738457832141203945160493752387898258089787560842975010658491256047419483568771544730696942624343292376772626633096612714226780234288013410231989276646625417526638093962302429729081545246772361092300941338883086621381821151812088796197435110085474477706397333619514931756543850622328732354412662767337717336578575203554376720511548307260689261256618607603065613847570759819670575451629559775288716648561745787825809144660244077661514097709509785653243145312722029898636638020684991465906507193425355409587496186936598597344932469325788791552644223761076483210572118656303477040010188112665313762234772187466969027983627573758714632285915325087159677791641761776772310976998361161156479643710391031838858556677839131870917513974654476441288935354086738084724642217540173683647906880015925316240787225590124977493936819750535110325448965686566755775781365209358358688070545325566820792637942401564616109541838270082694613928683149398158818223358407261547231779783384118697066502121021448332009162483584239391100172159068511550446090466837839707419364286853610669694351013262431507974986306339300949890191555377142277581304188420035272048822355379139676085263744641528870580840687768985599233266821356299984772018741982915892423272401611767123369602001883986506958713538580375772765132061738931635982351692025903526423501796685005142163975066908915161781381131891680741119187485440778184231849507361507777542364530860757530021415174938323222495749967524712496971322472807679544240466303598727906374912994664554976545306492011729607975302447609725332598124570476264483766767247019900664733948358081085405077657081550406323612123191140180412565787572075773134595734108028233519337222663906628054262857491304612777030011631719026428225279588277343852908345189560464540646978472865883584477080113959507062890772448664852954023875731530641376713772566197579293779093296908043898542359150270839706543569078860528127045179373548792600885253907748514658200134214992183204752318253789118196214232496571628968808896223819518891299557519673291068542545519097762850919856614484464364952724000691345783849477012059122357211643463358003481312357088592611118664507850377893355439982312337482274381298606616320268174296183131171137467654003524810224623701046898253469733139032940534740960395855291083546769295900322067448925813622411020347198890231348376860391938436501616505826688814720485228497361649357056173373703864961214365344975304815196164560189579560560226238945967509237282130534211354508134700697356223608741161630596909160303915008658332974700861874997316684317319621900825649444997179456389722839234316884235199655747901678528251754080181083194108354991548283441827157374054003757130974963541449689737548186143842818252389592072561732857452102942937527285657860975728075409313064041569278196599145052151436742557522643459377265427176379636770090521046454013004411555530304302301946082260799348948014903948203037468647350165018179957863688830236678738021582761552177602360846522955337708692623923719311668319701587585884111660684789044977669487251983253088898716516157757659260624602223931257565141804152044273355876856524242070296594686876179802989832624949271566748549282444383066076150016145897394303034690187431627298681329272354043693056024496113439705951047667377811965653695920470319186149312171682236452890269073054072622558568921287959476775008242756244211355170187929675850357211488812838167863714047091892047499819415549989609683906714858671568403821116981155619855724773128494418245384924950334169673155550087804631450053877852496137013377254455983025802656543726019317925800211508105711400038616778123632341737128673759515073320222896944519007765367551711740605413430964439339445238127341338742390802683500872173558788504601656838023338805054277897676960636146245540034066972592485584340623038384594653201756054227532353142046138713794021371151154984895138792996626573658702989091968492097378358117173589818343049049871356348749997218982541252609953044131011432850267505439426898552944388427201936528636819353427618636358560907979988764535735926617779624500131289283187509326244443658069876170866279348662353598215638748885510627342161687559842202971828031732256284189429713000751080090282119813389658820435764306292317972381717800665620519470579910388881488798166100547993633877937800857755794894441541547622885092901953105521529175092015233380811068269267443064881777590421894250603251493832380298262395409663362149433745326900300872919242386395624665997477406090960689490344592304323313621509966196485227482566970123028307908637226249639792581827575039509017525302384301939375058954766985127093188361193067783007595682448661336869402147900503030356088953621174664779178053770143791263977591459365433387980053184868425439588787343226909616937961276845581147383307098212840638757895134257016724788761408236457915933815234500825714600475048223132589679399676090868044479164855250196851881445632216172418650193840454336084028018037766666226426953318291420729018633851916346843251353617640995277269195283695875670480362690122943076124769681294806878757739550322368096122724262986386388353031888298363742245601742843317418334810014980255152861026099027619219432256287482378130930756346647039577494204257642162925572721447403324014693586842875594514927985364912872239424743893476368796713114060019002737434943142679772558129073221292900765500503914536511429471092934517075125466159585781129769144593664451594637200784959408817297967283833178270977589569096553959244677927786062861942233059291353495182580498526430885204552912550131969462326157660580339762299138979195108960914902453939774324599821559134289245955122332952026406785921823666054327929340339682560973311603369284056661164129172946880977660473160896297510924874046276991983044186035725527334975319820553791901191264785420894066852767652919320687666569446153002878258217462852228994267818996590944157606436881678928918340950341995113982568063578832024913914846451517824957794579201344577692977806692383145158971746609950524467554282108839920470740823033254254561041198422779568343823254330284493027057360404723393407578471110942961409533110131750855836569274898780811012473017280331125534311379016379177563620294187573322706229355674194895295506280518763817547459691264568365656775972218117286616539828093294084214331444749326161530200740587033753694706137696464262814516534224975233293783732894827861526913169935459723792249919417828223668613336058079680970949441833822579345284275324896181374127744480955250080737539944529781712780233528624914910248834166331067249806180005573418986570008022051142278812828113428363784060039490002616998865176188604584940930604441950009668706599055196226971167013603567406285991109531578732740415265870291526007733136372414249511127464385767447232639083194034294199984037659213561269669812166837275668072566589307479907612412956187616464347196269509739614909983844241287207918892855012456837378747948200121279405448770833750430445773882663525813023511928009013940671582464055954023743982043494926027480065597129280485886676900943329149991862609145936540709378814880810719796244240155799745571182653680421360666482222693983321691905894728379295985332622143053405843557850021056073037742530750142005963671777450608475086013587474738069980249173383132141061293304636596190240166431451074672759716548741705020142026695725466165282136043958528424914583711456062704050127609012977610268479652553015495490567569978591903429270547879536768153408702344083026712483735065900442905061278170516440040122821049385107039871833855941066563232450897955161275125132009631989899479419761214630135005314569354110686680543668316079737494863256640288491174926937259387439936821812819371504103828434199132970434054375239923107175484256642825479651354899533548540320689788923641839347987268558166919100991018632991328377302606114139797503052686069078962015736388878879387979904907539069291239228535514344259537148913217441895713268966113706385749864649185766138005336093408844606229223485594050523468859132871414842522723372467042188819891847807905177650602840044372079065296436906222619394060392410987818487723704551324135946562163420248195424300416180310766262402196361712751213965058692147657248131076666815791749716189360019668183633232936306460787502664561408014411588433335064386558978537874993057520610260502859722714967104539358107458915934152461337492838359737092519116190847178576695353307500550722531544494540078135887612199699366457552646623013794425844860358571290713032548019129275936325716731801841303019857314520089704670380326831818479255024184297211146743761139519141600653720528424103792591166662539947840185419461467143870663555702093491809344378414193005522649643326592456261953393369116375554729221559616842921467486156737026933190291476063028108724827149032577719061163577199284000306727865307572832951571785263251380598965498382761947705742189855543934901279257922789419108710435772257678381080367117290099016761687943368233847229976558380288965159225789854284378143882363496616155085656033135925277952773778165484440000270733542941454759195037958789477532986776811299187833535558898002022929382653529100954649265588666660296066521815216490346230488288098564601033785513874374923369293305349739232051853818446597236266448176234799184681908650097117316451727682102826167670026336115736430688220584096629622096990063202853034137714633179397087144263242912553958144467923088967502628474275179767111254354182645309617175032887448198237336552201561458450632851518935948387623406694499466200483879021985009771916367768285641722226557121327003162209900021419046056979271000125219462848708389636234654326691527347396531468431590770062544789986726962208985411946731403934167325981111962531973588372381480050911504425483802676021746614052505120614063808867234777753844657809155700949294451556221115408802667410473030092259942730006543990530591383758161981587544273642670407285498015045355413955654039540455108628226759250725052703837535627055045589461401388994384569530599049692468752146286348103716103915631738507611911450266488148256631104368257885658440886886395148722452945635429073193073432246564352743761182799372890851599766403388300076871061498121998924270864606172104613714262769315609753671661600560275396664642128325338865325447427180883706100415989988120326666537990108711703438641200107160389736584598842614418180720191232639524132942592008020006902751621147380204364858445266903856398307580932912170945913209073804732616636578689195005673229681955496399789387027678929271944261585960446461975420988212882977174114837706177246171625163484183870644596783670054267954988688961507598044874392638290748024343463327169360188210842300286314939309110445017201592953604253741005148744985010378305026733898270071567665836574783661501984959435267464631616794683169870624449202475970663738158164327766470427130776902212631759353395547541694504059616703185827120563087372489932669818937726835711469219031867320437869446736623159252141961497718878672765245895759641647277769598832137887820544752231181339730349405789056367724640061536570743203547597192054113668720698131193728881956519299052303901089068554077098150388337006581208352195716119059141826281972481636445334560653765358080304105083808192883923604227578356120159561622179672180315803194736630290045253915389618144008258006901251810753715881964231364492693240582875677143289962290579028223022617257413458167304240538045359536532927602606906088937377705353487885553061963356168586178275254243748981276325480905022414380495889685766028920980212557409048688319220306707535367375481088521298528704771583237064788463272559401946891276926955290925020515782628496458984716572902353018746146201495864871463357813230317311473150250408982483457112070364476308545224991512508125290071605393360396317696928400038534768498427883693096841020804711861205597540613218438675882397185626029236774200979785694082338759355101504023468575342756018238195811634505254407665979389344282825765958340297282293516260139734465857184779190979408678737681193759239520854349857058320520794418633780945405949209691672157095147561274078014021484564605846200154631302389382845319035494463127369858917010600658482275180488259920655684041320948839874430398450472472030986749100237363249869508560431178084234484732624982680012735822665039418430819076136782924474798668355863613599416065850419910851561127277864026096166759406654269100405171610507653784837975993311859070539174481344598528904839160635836180728099806061624499410757201166432926813738353046387638086127032084468427211396235391142227489517017371195284012285639942376643674245213822328323628166799848153215098383279711686321114329825241368024235782899695761110030453231374053761035510342578731484622808913821392000625046302476136622739631309215390038972606860490989139878295625478982642124326211464389191022578891564324289544045987109751111374722607881444230237506057151699687152996817289554559876629323627989764251919917472982984558313879021182487288716420651102495392802360014711921286298664488011912725536536807762811517142504595366673330573215752629107575710814076197509498939934118444985877272013724371746875579973091184417216890087142272337970280123917138385165325366548910358457501698542154635645442387814441394247456886511059801680234188557939815866767259600688244132827416587051282079409667554897999156595951548528214662449883333742560263874440943389497290293662219790971665193011686338832693097663524585546213931173600668528675670242226932873448644151821813908933477213324425577269772793934090803925346034928218258632210930890742862725906591674886566913183292849459962904069822575188028060691221398990190707082163728778267140884029597975784803533216178737505343832983087608724533239242419587389759358165606719339966316871866392855753089343081939521745306281967972554512944817646465730073271137543704763976286425296598074487276553658928059719060061117652635502426262662085831733118660883316036504097116679644276998984868514273198685289166953485428600620667426217881174165594442674038306545582182378896642746903286069590426893808010935952812009757011256042840953089268347776881855605341645440077582347110382201195696349274625199076657861327071146355487412513018461526397767951927979653849203993264748227155147045938949833737878718628270915229050920310635157796159131692062932726103680478874783892306223748748523218899896196247784665332622190397139320455005407421448749355557337727973456990346502004477179320644026160900852611030039501370240030765735604334197104891344404116486783189293528408357259279737102567568278987475765015190089081522026596357947138583048731717504453988462126949866238834148453604622562292813684882803098318261620218457020690064621305403664915646068403098140256049837425698589039463252331249646367305179075949451630995568591359478671142470092954571366376623531016540242505692805160953315627555536369077962507883552845672028943420899515582951848990114734400251666264522928221826878418035647815417835818482271629934025887717181982897578437288916399650679739852254405222030618744932085007149796799872449605688624530093948420589121270659284191391439562356386516583068896028099100522671807608574447886796898861872242754309258460129631182611823543986820545736419931904355866830030607542076597547385239414476598971908047521642239355398195752797126418741187321956175347810722013800435365692813245169231954913846919508965955061153667473803798210838288037885091361720592587066942598429417079671558411923223958920165075612793942614208711798614583324479585248804182737919259608209968054621248145577775644952584952990217218512066292209379531985003289860517840572721546474056809455298089632581263310717053589786462821707432900885689737742712813349854136768867948991135677445343055927100562899917374223289809609424133642711630772555538106839094794806767364348559248157155736238257973407215785171325648495703840756509863550803949986876583105629274446505592492371783466832086469695166332140622766827717025418889577438500655105165049225715421494483105646519169646188498901406684754618333763483004010491817218272155363782586836935713557379943127717681711021333653589150143589790443624320516312432368449037915760547351112769497380954793989303386512507025220547897549049819375902502252591747930350201169444944503226148018034025605582217533864473698498630842812300877289546533223138763098827002452648861262126322180427946006764348140019532228614826886824655283355246233697080565225197238534243575440103522142578303526789490358837313615513294842216651545227095582848425460030160636024670164324039275233391116161733719674921768810109844797434485339268261404921090232055930424109495304523626231773559898097787284171475625106539340944200593605597169739503226794432900493628927390966773457691081449583757267713470297642402638056887000677906530343363440914731851811090891641159002526873352877732289607921227713952752402676448122185398146605990683467597088007527433530847584581135682740382141279098455731019630341804863015330293484333855376402335270550767650569018319290869119633173810425610361767636449171652148953548225476119033672691320013270629401038888497883879398685014709234639270887698847007030964052711364526559548492770642669207341024564314684335929520572141456540777101853966354115643056362169757880388450550078246544029962719801237712614075364384702419358947622349253824508919278232409640831056174917943708567970095700771477682541760701554272990417868918693487208709673386938626097627960406240623098901596842990870745249314541577545494785941577122333014783159145157704310702754436444220840602849544219251418676273543482464487186857117063284914348129036825111939881749306764701417721791241000649665505289873261029314640203352658169610210313205797505783210369573909375662909777993540952169840711389160098246353149838065676190423597278378804575649065733351061990686650436440494155481623736042233385093620231808099065820886475790101479951160813532288700942209134004036917304182105352814301966559600569275747280294726643319802840308858392495389197067346448486430183097758664744948908111865605521489311392857734869654342070720061991091341545652234772443078345389699207451384456751951785139774379200879353322231775230903970593580354130277689527937556850265801520807974117055182543806874401707416618944014313255457646911543169172542374259948495161309370786100368575831453834569475694211148996814605515474252629349204499029149306953659000303518686435072654303139173908337785125057548863915440327711428558816817130069292073996983138841699666746687447209521156240178033148720515872114071251827374381758969224050279612444104441465445801973270592995750833335921006598223853335879525727225351939621283393004143521983502221240528581224146560897086820729875161280181375104074828051630334611456642191732121869241571988210261145984853226958943508198446357567379617807396804292212185907053457259499940349889819638134902442644036679741147967552005471253650830409940843612468021372807750312471003343222949191048656950804867254470305251196702850459394315495580997009127605047970086315720686224550827788010416768688282142213518866974492064201580299557986562903431649894817065980362928748757635017872248264670680612468301388716066811966707041601220891427468886129899023336442234944869040352668124617759621088255885947166406548001414091546567055436624570112806320058806152846935161414295189560941848561023003252464416163787570024003759752677960385089852063231861097612682837948068216828262934079150649872226014717502792712713050351398003804397489393922278577688356222223726695900934541973431566500303854665859574134263116468839167374893238174901105493282179576882961811711692966755154784526813134579361550534863624448075172146510640890335751026609666439753455860805858354406645576220429804179248527234585831717454038795682070019103702310121613747631007194382334558704191678522885063692630740022674961699912970964915289046675445371749606836127081227703848721746089281469000746385395379095467726813105023530610447557175684666550888581445688827668824353145443361445485003450071872400708622446547700815827801490703682358447421407572775980100658321050223729603340707633188681498677133180063096461840514871881434960405132713107382427403499827456657114132846429860490711686783535717907816374651591638353471983258787366342564866523248863799296927400596082488624295755607282142372721811383298610211087506664898316365253028341746641471265090227898118919980904536654047930292518842118257181364398811139062018627917883591224977700335376545415334957572141323696886397897663318772227228197299775147557259996344863436182136735662549147485889188963800669082199680811288844168049837447871629936130333448655644696173221870587085224547844122098459548909981014756903798656005404988427303741064520804099974063845521434648546349392291897471382617726596125617705259402179883027660334809201577362787380728625812700686982421074527985207844003101706467111707996690661151580922109624920044584902208075779193286256001741015385060107594905870210187527127033487601590041817338203648587064206595316636719802499448946491190747909622982155389416502595727975005267047391522256466342011357388551144818464205546152713564657593921969638435997540652910409437362988649128697057345597157323996658010369236893907684393475232491666676578150959016225120462120835353978566036553269250411757997488468584631898955380888168341621730437988740487713749804962740491675389652148679491904124673300391502284082980248216536090602630054675596541583683448316621607953346421471228512396156447118186439891743588880534228514146678143529528845606269221570689596826361922583811922598818192034963672419659389898015665432235916159219758090736877317885328630867962259644134716184938342612923202814129693024695697063534506046279824800879607796879243849715471142257500961927355464846193735452716224785624817789070491285144741667107851281207480548544036958768756134460863278729036037524828339768793777402327065215716252792210564646393790542290119219607306011436337615675109400769611302846954645964432417797462686497133969023200279511182224131372272383754148398148148011075689435446692015656407520012721128604083757400764472216107242896292765270743678162537616490981226669076045671387478604368420053743387379383252614629541143148893280342434899387404893129359739532512329829107060664871159556472091510691835390678165043539526347090495032255370050353081045142423001288418057610802798815673173075584763667488696688305989042354406723635376631735853668984956306653125430456380959274768681267811849925237388226667961909682809726716015933059439407946363502186415485146911801705431015436489418237088873488081721100768861254317880976032702592099641280120106278740871698009256892050354431944413141356076118885691332378791843142583820743519669357057879251913437952694260068539481001027991068964920529601551885112718914924677248566582279049358413603440499645028249600180727092947112367643558418363451893985695640812490725408268443230054878376675905734456471385703195123549911365177307381489754609972621487930935685187319061437177986658523417346360580406980240399956732438965757302858159331375617778987036917315234295780931437399029433887064728179501942868188391080589808634127498852505818398820054222915100856710642316732744215314307662139827085585459539126567438273117445894586252596931701364666628143688155282550600205364331001623480398366724879656025461242333095356873722630083923348021463181097330087853995102362470735652103311931008016499713078563620015146747594471689332917659087262858168043094090355970449539378894556707544443696578280770815643203285130390906871758330901219726619464594985253270202478042666461731843068374718412506442801229099242610681626146370224718916601430830498933368986846780109995785705269855106598435715018942528547103458816555782528214244914319765353403094923257365065597851768375024764154991355973668793135985103508273153194932843125161784163701018264504708957833368969707186619356364944221803323144932914267645990302381160291790087433753191828599678712841161833187152007852553241288276866997500447207722263674675168171489664646220041334079200393179508640835849028417606743100850679240711755342706060697173882167713473351876207010756418316415042435582232356068995310491549570214653430405492556106432503617197712316472062004362530156618716140821873788216354201878424287697898163440323741125498004591789251123505182335437736536473298054057212314577345210790909252931001243937811234521890996973840942083601670414573223297553546842061202405956258386044777862946918505848123279622188216709378865628589538241062703156209993103114051646894802923953101792499683221465704361217165011729893693493152376483384536235376239401985789031699843956972164823462260962893424084812982948257975327114271966817396226464970920053739589482754899482563058165506585708532849951683948996271344694598261808196085252323767992439064159407268393182296686583108089523892093294842526695386275677154181175188980328327701005674292768092864993601803190340725103494712675842549885163667417290484366389502592921770668276370970192958090198566069367202033951574941485431126122111537876643130982491150677277255691506027229572272313512429264792834079131305048042341002835829348255545173038347597846743225955851034589043295612571444983540126295700861133659142794533359633899625163254414918862202108332331308922715491648611384062922227663097187139826212365522375432415074831811853700970720020531769534720880317769973540561249148172589475008859431817308621754732371694853620680059062213312122890251207867204725787582842153961363293258476856738184362096592885566833175517706915958005626992954125117609879209258098848911285186427277435307724897816005119558526891359944754210427665230887228144122489027509838657990217804361438767731712010609606271258713118740580238981641678988925997491318505094651907689722797626601446188928449513217231901535348533871703693776979436603914884793089598190683507027577456009148027591800582706247468459325087535241289302401604184007261771113759304559069786277387878813594287066960631272710546299725154009116171999190449735124116281463880522595130485341170818648877465719838221452488783670086898698918469699425634842631701162786689108329411233325990544015247175325576630962069877969657734055387882145816754719408604032829057500727418059802567744607937923610420940544236437701498982781856956065392141570807828300281420888657418027694485138370872557337053708712992753067035706690068229178102689169417164495232928774535174959291663327535315291970900878980159162450395982061225090909893744307794622240063496753863810190608065756026178787487285180536140074859906434654296324089991672516715618013445687864020826746242687628697314069051460367481748826828652923848865606353716638779855995048792745922253668525736436513877817219351942905408040831859938355159150527467398435372409883016800295289629894526843970691317076140656783867411648464878580308526625577493745286731130600278382530100919426607616614350942877786345803950687605648426782930425518472701977699658490835078606931559915025922298481130741027967137532871786156003331084920474389876720630784831975755597591611994686356377629217873319206991846459481562337012857161717923916678671485419491345210270784485400641606104908315652671193494205451361340672450487498558781243424420329622668174218607940888559642955256391404437455554022048450850806718468140861033479411504568897444666058925287557708489830568495351463914603898687947442667509903051870304250211357931239774165378988942989678267093029903333118857246826473272504877102904105108687574850047077204189111383396747557383802933809457667022516371156861719702930112061797992065328560749272385578454726688270544892372084461201534270435000434363713100938024124863897724037574223195855900690138262324039033412951792739507323445827296473416120843425907085543446698422568432192548903899260720554539302468710795692189437704008193522682946052925524906455286800991072545319329051525384915449352237259015599027119540313957856205677031093940163795720515513873786301627866985364697342184727621440922854580186478264882564190744333249308372826964142806167431730323908431125329555660360755347806051082973749738250537104611851003872612768368855816866599822140367473787697089356470070526697478721226829722064543158444214613286646006004936008042740343536171757989380977657113927560959603924994679092647840025658387073238476591818959996948852692285406200972284618463126987462846481349076328337838025681403779272452930283540721001141769627889753539066751136186556008627030652633397399058696802248805943636062082808279547697322938756493253388254111844861978868061197859521081357492367001936495847415930563328108464509818963016318105051620052307605054562295488680984518308228459059346956769662218284066726012141885305126614957529155870730658049438093298687014583653929019421113250585944379411515578388850212959482932692607433901776036076442334917387878233891191664433109496571784100781650437328541636943323959114019370380631955014001296414119277673033059737149974840220731111086720000019156655624386407534361501998243962352268617253743051945964566762975114781664376707474706994539991744771528487368869145387465439275669804953437080922541172676059463497082323798170753927508412122402224597377826294244388275176946486085769663742906605957035790440901679691643619452747153265181139269854550720032613929654843543569694195775922669492315251482124173428291320632460067894028672354893348879029458014585288838269910811751597681939694202485291946764734477255690397423099571853004906412818857010688790329483222590067075952199333022617312702143895486983212221658827416740236259464200649432510956017084893601266956245467873825798130552081071220906681438627505555635243365110923023460074250702125974691826161731631262259966349058834061586168362095555794667573182714962251577473642916675910604005175607671200794818664829842618879947378986970023321545781286118086240179824756192998995540794815854381728683849453239383512188098008692310061868804807849484420196221662551189808576740818042687586403567131043284416058117417552524396849041107374893428498985541488298339818606309073754597584757564801309501348163753058322193707358559507225029158345632458383767009286379384779482068882871836726243854837493269543809406268394515211380848387728603417537227753503739086887238337335957549610204101593560751704746242068634269474318703305717937287179114179209144191268242178458323417786558379987047586392649666575885246441459403411747379788726235668761264235129633846742509452824896385940978908359057448550419414812781093083015952451553379976411883436461772310167390499514392975356135472206833474034223581371980623970582220249624874079153475292259834781589408345108901224522989445746799971964154682547718435014460715559042285256927630615790481891197349583433563095550047275033893961751134582024531704456021424686235412574706813268233458416912147794579242009341073550289013331849879091665708285856289013776770094531985602734441724736018883878527331613131914907230587922661736375946774515919907762428826617471606652719743787689885812327721988553586790230318255228100678720189237893323154340970161709027156581362590835540552582154225745317831134668963901475614260646074880787771477293027355831530786185042484459219101641638682757813578912721586206407927178090430668063529803779071314484976352357762848620493508325750944082501606362652271593634434646331457365708560577857955706725542981998043488545227573297207132037349419282472289025521437330797213169190208279391120650257723291248040333147547580912068931827037136538456017482863468459425898873857940034691194740352454144294242138463554274918772452148903805658749137566895646492145853653278956046314909834145593777474544351479615600670243590668823707930719440292262214097556089951746091405530970816180103472478232738462087725325472184576122773779381952744816597600874060773179817469574437729881459548377158377006209551887925003054801788838452902359995616465937694181104290189157269758973545874399896667906651031191897272352355530096375305781710438234193506823681513808554337988882260638043725825112169376065572069648213292039624288907421618309751278803665474919569410147144378412838829341181004633341777121056032607525173979611434650908662505189905778348861919663976852760976519158084146925099450471295634726220293136506022557343203817630739895937102976307631742035847027327065774786429141155816177007202554345689120096198930364524447120291774325367782301859566212026916745557241676390803854134234752580845434933557845600177385086443131547673002237624878601156009382329847876350918528165185276404285916594521098425083902557817987871683394009906997403753425351549971368829759928778206042058487391125329502266067735939562650426644658407385799572654306965028094136972121348434769173499479676328829312428828275926324865482522825293718192537651802272671129783669161032148615821066975042026013383824559995802839940828533407637400582933069160710884355864989921152784121411373134315182898742482183558999051995264661971651400399635028580884021187780476123881169373842973522598603714765876639627728394176402722038397872625605305311207564462863946345931313592428277690097331013025887057656934244471976605234559075831484813305247427892618645067268944490084830321643315905945908853089168744770757427942471857069624759173229154420732183607325757241007519282330755071710829052941345419786299422753120145805709994069221510043527377141355946541438360122063545998950919514608461939675585379330882449974197486419341885091309011171627655945398224439426572718872400633800583439992264461866355714520229688035161299317918939648330015974075113758895708304547852467519610197982662277375646976143797411852898265709164259441115305220507806088987075792671003933167475957257903681610751812959181874912235970655039357756002035443387908258147738828014054277653467826314701483043742655409045295295991862848970692389545309558817571387703349128634068722428701710223617356049230046705114570906921414897260331027865589441694548495465931349052521316427887552938539809717512833808246010578705702854087904641210129792274611851678912531691945976020066383638202369665334610996992614582516341506230185012433123471542863487904678735507402510837868451315657945311139789103663263328323154157902655394226294399513439649917157623475345816333078906958818814446122150627284678276352279277058275987205715606076727465936658694170540334880924090396538801199452624650443777132313953097320143554319293575489107166643560714655586871632891735505572689576275900808139832559347125760063531083770227034791355249169281508013017158005937695027172780159854080776435871376391798509971777833550119867780282456772138936456492936459248056686412672858952532967265995917685789296117976788498900204763111977002022250997021596447690828684116334078870608309754093134704830368301683898774612188560889482418238845182622521719001184332423927838010613933920122790772753861234682863218912875830697988687187275762285050010435554034163914345560885843897930487049144255598158534162898094728985416696096039599179913240932161428379849959052335052033103356170072301283457832339967154052157130377569835797205207183610064835996722005443031067003433121902238070469688211688816364467797340114469771593362761779723069891169233504035715724702515544617087532022987685762829050047329373558378229982219292296022478089740020884355909240817679804186493537590583377815757892710447986677081233248954263777938362964273263537544775762370719165895975298997367998338643254218260881059843997142972307747308467044754464491870556633844702376386466014603339379749620764129918437562370384791173421794522895506385053745268806901298368640531585600400252737013834464374615919556688196739841416948466571836380757873644714413469104557237112737170601985584440786231854270565884158969950599099997569798619743329930078105485687737849226360415423000431825757330894056852883484949548821757104004093764579029491703942226842937116278286198128929410746713856080936412923805429225940174585327659697338457184990366121332155680229449387155129347297553620120657010634302944959509792472935197040547147232084787315838906320002036457546476606423588864399692803383099085827305239773877440291176336469200633822589268918802343851487334333243430369678917807232039659721064653097982676009358853220105430980862930349246881822139548122408955084843142619925834742487894558858171056799189702724573621935839736348784756132542036926048774543622021797476917601417606919926926055447162799059464515966634246335989208249243205523880008788101201148870445381888205839351388286215824473951950886006880409783024187345815940338980286422474467698357219745595454087886001671713601309357686959719434292835932122278106725900070756834237353414304819236422422469591852936398562018776142748818438300884302214059090001082620924068250089772520793534023851581290571445428841873854260734555341734154885217654218813360173947586115572123362907141271131169602705317909612373669791131076559544112751802331559808111069304190523815831460660680083494485675634482401402696444519159553635172117712207376711359910985653270581701623075136517058815101622923182773647857828598065473622756593327521396620412611657250549355845010910583479013457326499391437776054535703631156949675233901072494602315668607274450024371948296833830148579744621781073805706802057358227043569253420604906103550723605779267716159711499489735310474400440447018530154685639664343455214844587431438460865509864270600114529665368234490283069978060691962434661487117569199073802857129792046502446924874121873705150913749910477379721535417211715169934584920739533693949299562336264043055946685535905519842269229472831297976883839797120467237162692706406419523476088194351361539056921582754930184755734414905587714625386717572825813511389030199490766288631683926173708040433322505913343174409938592789966222966455803267342054286308107119763752297292932815377034819979621389728723758571046107590179060193116917899139875749451950297531305513411610976307648491689544679392726139075069731223782586850205166780676519210897030162889756894260134462690346961470220969744747825387814986638666902806211445104260303386216345741425643066574893969331613468839766593686190124280454734394120394582882399428316989422627012051737396026637415100810553605244216828580401471814611166320419870977865020424771651852873023900435992113362437060054822306404497000154715262814064632324846126331318710742766337393019228052586902375794389665425839836332071316198434922031313906930596563888761540091173701869595688919328591366490796932068860861528585522320458799573580550001667157212550060342165164406277583248647472178100771570296388767715218573590244909261133495935396316897341701195433884983211845303550841394734202900184351571978200061489868365001938188670722813130548785229199093826626367408014532573514060046759920377419663491563175212726143905719319537415987429680552384754301543703907111561841518621779086756642573651884639668311593254522635832902806830061174552051869050361637521306577651061649300831169080574298546897663105584658590973193418000154487565384793324164095561562379585417523027060697426280519793154351103349056457423696410189269728707289619210722193313085653399466221205429846360538576639740927600999310789368716653280640503103659216875189302108631089910749679477087004995119833882774588478919183545348088159143021310779278133423113296172809940248391144245207840445565101688474622737528995686835074877175506281382044091341332216588385991524664275985588089722298840300827285500405777165771920441490909721901685968628738306710185113720382550392551788430024594910942195023231412946272594949091738601029418802665218467706984107251656012672479212776309859542236420803046996618644081213582264062207466867764810780753122197509057875050501867965993933916785483618721397312764669442229535502770705826258744122559327539562143849231657852930086235664910496276173026793633891962348226209096304364880774179132001089942149931674467233015472037259825560461472898277632670344559170227835943152097527333329639037624013635154376237158126913123899592845948001627055071404822887217372391585251205144372974319083690578881953285076009503420441874906316058216449368008852685236822599255197843871944341211336751876642765283051421079687928774909403143479900126388450717748146033492591225590181371350236310992743127706609657307606648081490547248863201434820206232410708699535755596857528760931409776309887742543621909859759886688679784368104135843178103378264146088268757493338061486759235463848984080136164282001777320301226319161700447296713329720244012712460841344325177123029716236214163454360082140398017535286154785199030749480805292717852614523582525420860487310169433519896479337481666441520907041368969367925162514238522721683876681709081160471055856988914106249432780026239165200424789562355145220188743657449989759092728191004238299538127773471397847367522899143724931726857633983878229015968170337880079176975274364572756474906401699663917647461735406395360271159324483941998867358956484511546078058667937178078158869358855155567990903348904909452707391206673439026838341098651142208496498947822652938470910053058000099412122945295546645802514501732361842058053553367676525978247202690720599040976549074459321838603585846964812788555788861660669280879660650172624783678797089884368155000634484964420888836201779560420804458490789633583496373722014683147356618656309638554330147051558942966901823773574631523859781685175410305210415725142962005859611035348145028159211610201421124977727422966110652569647627075259294876298588545792657309810773026688238601576734312623455156319250431320297223443715312523562144789563741493354561278923555703079033566115432608416711407646224304829807370244897258190705925824018467023366560917241977601156967725653070538131531983063635557530303798209638608683654026401682811679526660739712325265969115605311468842210134208647423753699345804457591278364444496107548963441161032370472640497481736573018588338486003286996748145389092458510761174319349030962397765250117638274841561926717954393479773100927997582291696780262446257775036177530736129351623164288260314260904921726473311020411707511098855662121510846193786332639425377839084142021780370021690240173869011194823017352985659366659885389756437968787158301471295611770535766731112579348517412436934968778045677596469085716915514873754462449302127050718100137328920481464138605169692009219631200933584403287005987082536695631593028258472222409791187033894465034288819344496880017077207046418002336615421668536108684152145570791662617881301470305248579340813290277990771435719329403649721041531370061700460029683118927786518151598613647347335936396571887496416833698143115689389958062790563215847790788265025948746244275030066293121708583683512839045623365912450364309982892306961065700010154548193336770879711952088613154365301477880119085474784791935733789861115803370599782167645216547994728022745103291554561241446183055621127024317355969682969897747705323264096255634522359226028760377632906985944125767669940534641551254625421446308528503765560686877033396554389115378542858552037750503429859486215395155427641002600669403003211391044372527576620846728383947397130438334648993464388091825407358558866377224287431165762216638949590652861630713190712866357536162952398980514368137178939302724809026240917097471250151442967000557358847365797597607471948158767846756383903321472969013963932185664330486285824888749638481826375149032039873168380466120161323601428227717271834169576667525739220177610879522969216519005973115404816659859054319237143340833169054789610446227865841585020098472585556837244307892731383646979876881087744503331920639619243945447620475284566953635447308885262206848296124089384278848250965702723325138025673902239903759347130560041712270360131654663997518988164051064989833793360064362561447698471945268708433226520983312108238965329307060998905001908681242449249143948855720999027184827041374014348321766550544305379059575236710367728056488275567359794191492781619311026488801515923352772124513293992483644913299878578899572764768769556203226844039005603709732016863127074978572805232696313638522167346383533987634208686731139824702299455463682973140423730715750998587688261392321341048079906530155030443706065159390624952880276465611417130247884157326219046541989805501447242391529472473880892149135110333863076043329259083987576078830801083506734108638816019295313206208303527806191294465252556673329575313846315651991390954818458465637202157826696529750036797447713043080450555543979040315278908063452617343618699569998652081289943529688044456935785907698804158161737607180818229253243063999448057273689806262893435978437219757826361536182567698183379867170538914518009339840991313125743766803003836549289171729049344505317415396649777196060543624309718109162128232045011339603785780016210412307637463107540947208361911443474395708253691864056961398476149246282099969834413204708197675067998203925210455943637260550216924834121897946889147382186091030443931623835142131549647593014887667977366592790999311541271155186259522683908305282280387415260220310998956451654742949170870393025645168462771040474119339959464701994802067091236892766082484213269674497490251370068082009533550474478026586929182926005925796780019957438551790457090019422550820245657481859250378765725693770870111226012738692791397582131954329619677016873405231442554072043968001345770687951104232680751734418801937369936949779459185720342212603265923071196366262104606268436126241679955095855540739245980571223225564882408795929567422099338904397302175219125061067280098641372093097090085854645465634646612151796614146911896822107161691119361490380593999086445550480037670117844554185655374662581792327624364800026424038376423364077850592942668093589145524896197683577807273078760293939863444294942947489441840830967137186921536216766046467413146876261339664378361644641300973971874952669628751395770494167594452761646382634797645244491225009500499132925999085722872842416800793217828419210664516938532925444032835612547373597573176729950793241735044085258502207105356389871987648332137266288627977969115090692710227438312214625816398201139884085460875608704574444894468752058109825582892226781450854673769335272105083118759676519399472448041752100276721716212483394776942231822398136202662216371037593821695824553491375838446314119546656043583142481416742442668819471297563757835329759698682630253211202619935763279344409621898917205410496175569279835012880868040282406231991196577175986339663761481489333469168276318924405388719164662261114353143008131326831815915946421033570149180709492137474198068510385557318707083778037325719009269086377389487111038272084185282796578216355806213151275270683209906931580578276068897506737637047912673434918906376570482601880286722570957557688315578180393088199009154407995265171400906292788905151014916896669612090839398364417463500414823600622687498873801474425483015184478346209996611956104710015801814097600162865969323107316730915725899841873938085727936353131921708254237978613658577445917617183547427294434539711682658403523562970484022076338027551636734568830718400324937965118394753420004904267687485074389566959007353246800585517065344489102270438451534039327033190233553729719138923906293739742780440525778925644416290027714951648463625975519514190078911919861597025390803722997689158856361505525210229750791566445965445760940156837356566417475205385122185819175580155428960773890362880612482551777618304037052767071400125035709073644577563450699933513070550793949172125312868924190718171629316476704808355463706268803534127005134019148216513968968956507096371598385240721224769713077132260561894191796412199814065892645796234285484504163875408131933142358858947787742507905507492589606427177277661645505501821341285614670684279426568527997847173261626966588844934096404448395144581043418175120400861430302921706064683795654270075758696330140278107933967411848910512478215123822455354851449470262288421742228929496743903613958078237884934002181640305013118071019440576655825001339855769886587699830281497114658505260585959557405493671553236265196732423611149585988960622402951323438320545390714405962227214141235714801001667330856118547501260934058009039194590558204372563075325916817540156702300534886689997837408973357520351459989254899196994877727073387701783237411852946663743631181630279119097901755613798494990087086299883755233926818713389754431442578390928805005946484379968130246816439573977824614908818697453406632588032943347661038117971875255285117478353772903788181094857946929263232000311112397256119458558700362365345972691850976628398003041338325611999285870149908674413928139189074033957738934299961291461489010893339950570918737258321864362129200302882199843809680388111956767805342182511267316927618765676087855172552478736292524344315481682435335316731779506149404865595422501147521146716938581962814402503001251085266984206256153039751196352341954372832527022775195324945107517727432808987120033011199675946737659626928241292588729218716395011202811684394112296977498998486942144412713766790835973342221615241928476063946249921010127373347068987533087406872737576838102264783330263420066751922785248666708401971620206644510858260950999135845179484627982115937881155732593462590513715417428498477891901639741390330432586184087193024228485157777453886106056227970597848783430388103334085706216187951285482131667892201386827314329077080167002789962319884068770089165960600319792636422657942866200506015713313633840232844307467564983423032230161685533968454675687308936546019509986779415712144981421200559070169384321196791275684578051293221558273872138702459468962936557488132824732907490190329668817523597227671573018625087693939343269560413836781367241709403999142645883811526576105231450418459677913584446603790402450925357459231688853339877061534324220873483844991131269975851450529981416451661548099191717718925303634980369427699504172167780291274438626616031968622542652689232757142510217643855003569705207672587579350238384532742562076754804120638042951000537729475397591119207898152539626022927762819441020175865502275395301261899110262378083826361818019398569446537449910802110964526014848010889600390711351530656646439836396248705731340375461921505019881579254828980256442113830872468441684472353042839941858483098299765924661467530044773993558162553942749836019931980094012911119092287636094571618519222037747494559449094469748729102425763569725846565649667896637528563768478110974563497257279718236728997459169330521600843499433989283698275395889705766773198148658656172140999056302976933271182574067880506333432367135759444695266244939972737153243550782740049897877523145189107451841246794188135496601004742912557694091973149605406848804392952046256624344404375348405677661719700598003660734190599553997246537158376089409797120402174223843405578006460665071232775069616424575143718548379436862865599009765718810852158944468808185278156868326704151408255584601163214306451733696420771092474509379284091009365986454350146740306136977273538028038405103266812071299952684670323027038280240533018078685249413575941870790235253660290559259723384632894496849562814909331420371237350411611944355799138428801372371285843808356866577180822246587644302057109035551254577698060694434100396042412508269502879557237378753959663276902145485299319886259568356755650295529688110405423434946337949581140612978890113564409678770077440057917068552908865144165751971272830514466195599631095089016044242364028280292942479980752352180608483048133939805591600800067627253829144419258316987216007135830993940526540405164965781353627433410005792275991557779975934698981880510816965500756700658140304479790775993606021328694638499834065977404451068625214993866933593531660035974348427074861623295317506805521675288531588694833772003726125411103621486991272837856102082455058228530987706906411910849266752345179294204234474799449237753927412145746517694135388279104321265423281050760209471807353114713009837037455837393986884032457430669139677006267225329223126076602951554224530045195506678057627515880851418409137503269910463635789031172865588760162106630685151601522069887016963305920897115889172469808336683064999601973418937936227404475156145082320470271757017416895271758644344652495172281807699331857523466265060864218471383950446849997899245074763758526472302066914628035780531548373036733148024865227326663239192239799156731431044154501356391880115672451555653669207852468008813942146096058526249611843966949783406022340202741069574515162764884060288896627012146276063823215491373015375978830118462334493890089530710061042148347839801353032236028609598947302319318896490069096352028726111549682999182517167033470134923524995299806374223027645899076101429493841752237347470471452819380287747543365093302587517274492937843138764675449360282125287030776652108382969732428288590319724677036063735859841606907379592165971012689150641340843994284167190385787472947689542182362360392636707575598773307634554426980021457933072813892505801642640525156081316029248095724682096121310831150411208868647541936631814703953439637694403877739470891235801514968304450877188657456697786241600061829682043315837870141971113767821716510439411813590252395076879585585461374660692297614637146847211111901579616503627155110717347156739079267383044113365724700710873097443050308632685858315742923643684572461499276010591476330423597718544378255051831513249610867689983221097729605355753182947284916734046269340511687187089105530860885270058043268292425820505914467391852794053888821085161158339923003193740661855706403474872004835058723279451289944046594854971720351246323897590339533649607065155030723579522457077205671921148263789480434779793810140261929905864814440850263837762720049807722292619750234492991503593224343343337422213478284093488245709927865380908410162869452929818584105904776435323326658418664304929385597536977480884006299065962457096542028252647376547579911292293718201042315422731773013607130682082575054174964721835267469487935463758376723939944789244812662782423606261091132186048687355666725494496609751881521428600116240962329737659561198574884884797451317760148069774770801463751763797556043728100012692867701359474691531421852613003748063605286738061917453455682807796407546341967920131694357307557999165948728225803560313471687235178419622244605342247025123242588010566089752735376091786204084175864401441725769000110041113406654831754464816051080648486935672561428041756314323028529482817907301827617040165919344726240491362417967864741887154986260587026735233270170528086520566255672007689118847319517680396161798194602074994378121339560802199142538957415587668533738639961851049509383378583866142836068282610719935106962772820116444370061706857095382157322201110398388310954020457229615815821002344387966609424132050792247690989310926184291735894342877652960315072961671442067583520551883349261527584482709838538226999164154215284816985689286446896144253650147592581271555051583073211996508811803876684445607363311465173439068061974377839751030237254269724566624584607198688827984490197160324160975415519017562716053687998280618538468754917381728879304740552950503547454569213507921526745489389471104268687608412489590579676456642915587245615282652681875569425209318277292196539484741854903440163211350443970049038420059889759034173224990534000686586965877956969021602905367721526370896258597225113870921867749287463642296799985515286278794665610646138509441984751269901114537696770386114037879697532493409494996253543540608697460221401334375150970065095793389951761286486400995249863215592999946769511606682324770392015395053252797871928463101473125666987843957284893578021841544719348564456299160571393155193200018323030126935273262679833947846650406214898550962309327027607497374053908193041613001316002879433542740325293567416780301807659649698583308502355509891293439718037713312512727626044864769826100796654868036636738282120208344821095891478903518585694921734338451578691666784982839037121280953341212455953842815240780117981368479894634749053850505199694547620093349345235658823975723622886073365994014303651262912564508393481580233878454837684174930756566928903141307345878245797649887014845514250716964723299503507622904046796307102595707023726894430223554554012729939829215978655811587439248424567754241770505366954489503955862148419732902861504274019052481323417379690259369493006761695288981692364189019432268606743950409637669149705629999504827919894694953936429882363460436829547232449766485629850554154380434598924928229960071068019664405848428011921602484453529914748857905124296154165733169272426772457453407507469737328344738865094882036607016049938382185248381014008929113112061281900178844753321923096217427649855329189180521576825795242949202555042545019448688564831537151045679574791764364748675332667907492647331575283033812987656279218211455982257406980468848430618702835195085199025312874842492337853291332423322160379613420596366833763556161400478143301037859284477050657143110428604427192124605697441960483260892574727871020550605306435829792475925606942605484536913054172074532753643513755794439885870719658380299236163947909148354359623954224529992484105041315657028298589060853079415926097308419762304652912242598440871776348046753774215833353513944992102283484839919539789734354818923741506627300722389596672845589896773652004882042665453748375752085175116769322703063489746478234083834690622878723907202142837942815537812799001551145133653334439998783813682992511218368583843585575901679900538550048252264738394616384863000209467046225106746894097752687721137878860933373057850891052910297851400136983236843158335067018221810564844583645685489549541637972769044170324749793479264774926928851878255122188162942574407403816469377409571388096050606923593013994456200840037989681872366619625756802164853772215344579504484081430843387759773611973228634443757297442468094753452082611133569954225157837636940432322332086537133588316749373082228034798104537658977308789721621884101846488248948782325485982279069844205821271456872066453871669292430091365183182843503508382208011585710614461415892520375874408120448562237228240664834942536640183223783902964146778244482543916360395553685529710345667731554717044248571375014218260415304361125641625128810465154919069473046398328578355599111655882758346989065667418090714529773273455243376470216887634223315237362969503011763587681831293809770681641456242267888410616389494308634360222085995701415834471427650311387572419727917747139155485521486557232555428954327205910271787944217686492779156553773737193352486789910545567808893985964685341300789005907025804077850436481043604608995163763041756432517860242554658359743250657718099140578801424623947211577643891296539191979920502724834148778123690262397615994322954763039150137635186363244600416745282994109136151742801059881312835859301822958151804641248105940164958758269584130919681824083041265620491522425577422392261420674101213745658628073709429848218606896181121911209481367777695682412621258266683934371348282961410575672847726943716657844945736969608695799904864605426394968155311145904155053249363703071684382234372806760664542772850378319563123152325272404925976041903567548114391164592502039727561388214072902513829239652748090318505071083887660609684276841782624805830783084211523495980394854053105709958900738651344955258562524973526944854574932684198854214993742000602082011798103124227624812253349672403664207817580854200991796556043812743432971809265547395350954080305682392276946560504088972060249087148923725477062056159229587624102991546853157327816042083043781498132600201259000997324759400028740570668253836295207745786341608296793176381727715331437170295124166123976390727466704222984184770572344738031372400819822226871236515350281599131027124984791590063832291153159367115286042259449817045515098547263120359775105284664003473040785263504915368328920188328667185513760625399660315967958834158690400401941050236851648328254199958246267122910312009690796125907304873184411363502300069300518440815917673826002307193876893540166121410524064388607316809501393561420526581138269964390603192801281620179885517519339496606170751131127758336954932224759423131403040496934703637670937396916874586014870194241614299670382030975555672904090358617513709879574351539806132888262825998348686192618237895575810551090671752458850066740180055417186167150648369175353881695452566061083084640049559694908848700179065015525769015652081006777802960738490784183338436232831133969309970774577102675803599740174232964036507074123770225380022049501616669037412415766949503363274961868770893356638675999135365909410142559684356738264578560039785332745989581344539351327320503728123302870477981313464116171350129619616644830180767778725654527596541292047212024604080552541732879883506516819052785744267904162395852698218300093394540525243039996031534844260977292023715973708648538960140045666237390683369496095117189685380018705414232890195793671868832010447279866855713376334757746025896771595157739508453075887447657134751882572765227266632946894866958100015635961622641899555876297965870479268403524157261723172537762541535693823133683663333600598676328910542082510408869722825486531060310124652900812842560710647774594865259508255265306373790903677871163259300958407738675647702358379907001032722958121635734141689234806605802285548454508460620078180108331935768857124560601868728730507764840298000802075261460192356655862795901645180206602963357562277103658134228876301501144467632608741661648328026820511988008598286163452530669810821012813948537919351723841286006008032025849372968287682982192442545235935198165147546873308085875675349951389153149139360213833260129190525119494343596515038248341317316591778698178016469686255570749166736370651016062010027828435058719954903446825432052583363273388754925321032379437435977800931715705215089411472013388527861790139644233120826750912297171631726775275086322112753264129179965591446188288196273355364878768410014809285210619699504577911376845752034151894782213894572828184033610595946760862588839960244300697376569591253535782715217397938491068213091029980767883727618846443191668502472921431133237303657070048506797822758931604020030439962138547136875455521740108924713818609926465307862758440102601714767959486324119137478033917967573466848547897104473574571792082169884310494828121476992744525432625350611634240725377771372394092453295003670229879411835772360368006689105252950145579662222529396679014348048867162621668759735531361891285888484092602036805354468229817974070189988621230471165123367039392942088215742534173001915198746221877639840663260282154275835232471172309423249180989893155651209909292607682387973634988117334136642733131144706568632261032711068869429947844499457383777515864972585551046701203202244219224103586543424364519553817667291774259653101324106636802660221605782108139849856714623706067341406340494115564283760137710566240570232793762768184943761856555161002167071322724916352384375490408708885726340008257763080382963299557754334165583853134563679306799404238278732735921440284666992729955544402824316796191268062030035576051921897880843739129601158573644208944224066386591492003124155684537793032656257143499111362956760216706530433727146353076160742220551560488089299785805188369420873320851630385118142528446756639226770685089847409004560376669450528148719070453756529815824276843421955635410009534349096925715085801189174037458167802315761193025441831781972363566273873869821338295321182357415637292919500910967020597748501554217338087221553472369148563695193804751180490205857634449480018731770365900014078940316834299454684641614522931283848951603846605471905304730856502458724727267168587964182702505014523815374284778435773694522888284939805638059407488206612537212989879335883734734508686477862759836983744397494898749674684417008840425826228340196895505172333642745615756867726691382783787905888252746677223864308257950939096349335014174557163377836477876069843184263041505069805364668779590236031300777172173301833297738933208316438685984991626671689219763523119866488767511784645673915857054696806743584735566727461878417635242381059022424099685165375302366304971416128293640143077363353701892407370649710696366039207095428619012104417155149256085116533964472759809158922474402757472503349920375973875028818385002278477138912905679162235294648705789813049886410481673475017173552792690426799281482412076803939707099012753740919306921165225474622845381227205219354203755491174809837258638282760923642678957670807913677125840196440195761083621552631966728015649482618614852349903178618854007973158347745471803140472536919101595720201128399834659758164661238453914949657603525291932356475267945964084926724533210358550507727992802359200595360381483874412255711785855359241851379448183833946754544497796802402066192047871641480370244987671592707384816103246511171019972589570916701094227016871987942572630639220264425018809735260394596910464323169746418642866379714946303971147649276896095355902093657949587435167297038449000131636712093886211291254426148436250569609224824200099515931706473098556948360630926027921809985981790123506134649122479818205022395398171733751172919498102821593023854556989760971474315929058958579594811215144692093855465195571814019036451822551632551082313428948644409132479809592826548864416281982397177132063480525030023122572264081683353020449606963461680540939258093021742404103006463327703208535463002079631230767131101563572992708106334749638460590594918313141839411470103236657883816066972738802942591906707112157115693326020949802171119050347955047485549174475145342794031791788456623801674004198775241828521095334731956953853729346609780989573151589280968581678143568847726132155916219958134003433802922712306072939535526814770251996467057094561329034195269084413965716329155945022707084192505514001956457565601634855303160937643344729223107572232897185381547881437537180666784033825216070464972083804208319649188263801879709097533371649131155594112009137952993273603195014802947484268646275418255900208733637804697279646251853974445284490246652821889007518152293397863881357085267352255667825090552942725592450812681057441112523121816559046859850597563300925710747916280490453675680490925683871687919691973620829677113125899254899442075371240382558195247352739527506004923578179238691807418034595678300268096448709384664353514872091918489048339628269138884165062950963298178100209318667538754292353519291091499230625754897244580170323728612545742715947242833174814081218924928121933953123448503934240960231278633044317350875932950641902357927584961241733545619864433860876387425030644788711469205893958620025966843659149479863750834124235132733379036628648662913129546654516627146014361755144212798996181647053604268504764164661774683508016622433341792381262057409007058592602276434015150733897109276597960039624368940767443696352629172173723392979335754528142748618480286691048678447985502716573378754146787671771730852900893742662888880300915570068607766786676671967668963640603557348731414012810135263239479224865362440675082195713685495370132266871197702356911141067674486045452459184531626693059255986056653791518151437671276979528577753772811292780405346134139917397089153108765550370309823108567360024199762822416015199081087511334282707622187803363358542310171597167333934278457120140186405485624354831990848516719759924377247021517605761094776099800838806855356382274035442921781541529892223161372731780303347583014776597531218657625716589785168090240168390865804142115130397201741692742970690072948786827323331238880017766813292921033697702335325969817640391068365778787051586274448104689052212355411329803552128625955753392336990496788126832035552833404537728496982152126879423845296991068636551194921141893843174046084406538049188929371779098530401200600608274991848150202364904654620643730445947524910190282704053731929032845778454334306828612633089866834475684349551270221633352305635292024125540616714006423134411075967320342252973702667490762430862728320986741420996882048122672889226571644829519472368170226157190506324973877604602138291729176550821963996594280279528163929872415641317006329475823429588862955474802598313827306770302262134209863448712196456026237788193435996608490484286734248580127534288365855138106983337859358196516328554521772102876057059852214585404802952976373418785947018245436611568005603308525399715628257204429878873925376224007267934740858655680215204291718366010304567761332283531549801628823885171329974146835674348858382091970463331467393586845495540354836729064501780034471023692633766254561013397419976392348153801422541915879352149372330183160855210309656645759502382944231198620264251242098513475195317426288522217632389795990222971449246604758566941508265475277327441669820473896009559776147994430523974130565198855643463576776099131831614778017634982289652965046851776390621993996275203006057892471444253709097973357790994319807744835021970670157907673303973089324571725248189717373519849416062620295993720048661448210129637685474291489765741464223604902195865318355727193013819609550960946014755710500779135788441294124720344207680720938910180656929152932920973107228598482191943025117930339675733095604042149323079803961233912969377002246634654689620177890020431710639201219449564176307468502203641989627461910177418294935225698306239538131765582076436607846863336105125005623907626656429632225397360031645738450457954452542481167275706705732253748745032384715587747634381835693355601240575836117877765885542153496288370556632831250715622044289486781983998993964840867231653213437289242427478716340889112831853590872946458788574034082363748579025395416844034539102944395290617313153849801812314383533220846408916562307747190907869465381513770778663252015853199156668686955684779530929282355120383304472410293009773879311595509192135430143861068985661504051485002079493629833864065169346052729596034806412239880751574361237411552778343661258020947612658515462782854717073491969034020783298288136207842012649948703928634462753485162771175769398780033695479495973951107721287176462438782726515263402363135900004715660135752428209240262036644553526291048999237091953044983558265744886441439133739575325862019924416789849005763755022695314191340227663599757761918016924448206805697738682229424661077041605860080949802250650043650807027696476222750540305320338825171214554555788063841332886347631941584106199711552649050685873599863509133143173759768426098366831459250906317296120011755482802681764491974106821836849150432576805469979629721718656545011287752196670755312712522099447846148801403613205634640353858368612675733187931774497027529430577312514843422743435085470557147249343407108445558327949016794945299553620491771084015431743732579553931800828199523965074537190703996159417774899858215656591725168443469693841114178159030937104209722949767685945085441522244748799554187268962755919021502998739054762046774547710245536366714701281898957748070532585345617903143400143934554304558873011427914082664977118742870362975129962413754576041894688655047327249162793559879455578656335173309078753757418988610168491145355341737131181193179332657579391900329693962765742089399084932236146471445071797549368449911166881067276566487914522834822588527593395040759750001085959568992037398525156383575991051483201912455672597678430236016055526508576212441217008479298764075444772774679627428802689695558857790696150717880391054207548531027452945764787673252754217293524970889657895842530332032360251936706175469840937982814905209097578548685695121675649641774133946672964015552054196552633516209321972854871173425482105236449092784395722236190335948592218647315088918932410010976027320613363262866492753440227057026565628016208894703561327020371856272996351216892787147253849740297398649525724554767085574509572406466320074099531253427107912749466320846923085091015838120856441132851982358181358317605771837360955338688826242697760563470736754144196293274932003013944874907163533082230454727224880424517985866110682154156116179289847120273226878510807308925784342600751467846113735539910452816798473541729141163308751692935361877091544529423658961836915954179075214695558005913041049298261144910244611209238977745535918781650327352944837476598479139330995290932610976144070765130704440974708603129381640902874352644701192833909987947237986792164816591139793797966176600603455477256523026944236686594418227613793096348708352925599860070689287956593469774941545739569843480799829621980247876428015071570711656198726857770204098015554300345541292884356500549186674600418566372464182485750634936072915431493531943439906074044754554930641659623405126221405174828308145949489188658106559748102135245230288625157436281847435175453877804177870021765314193432100748610989915001480440368945691821709355758598475223055599951981480373515410096612022108471848228736236748490027355767550537998591127232295760988510447698904861688274157174211001542319706894681390802904906936905458577538876900132169956580815791959065879080156153450603999807095885060701569174616791991272596036043563604331546746429436782679311123705854627213818524524061641242973635633541129756912363807991994399870448897586595806773715606167618860111106661831785044665351993484328563850414331407289034422513432381794182322561327834302718674634460225505731656407740406516182364398791125915997634177269682819274780014396112204855398451599857825503218852526540989515978119652981822931282329989380897671783271151542879549916292058021955309916792901387210709155539509850221049878078758805375183629607580287304319482068143622669210801631488656774374034607869390676518573848938849386808773852569762706500618164603335845716060742026736394278452772365250105893624641842545099815013580762302343667691280615227145316853112173229333649334182976807514028255365889034640986179034403592338171325221039840427980390197621332962944914255318609368696136684379978470672030620405088184392011767475126013954121994044570056530024342757011973608191864094659336739121559932946246854549569705412822312224986711315277660545880149556944637066269930438610247686687468789752166521540756376213302913140182255553621425590925517314336173404735114888265678253645042223475753399343861368092640504568931748789329182418560362159425277190266477098079517797543710564273405485112128716024404398173159388380787355109085815997297616237906440554942849676453656226208012464612387892386293135634874672367930151746143735938607703829877408523534913735360479436839427027462096981872209246782644041048925709615990538180510215827571465930265181982050918772368876721832193036022454706666944452395595930643320235594259251193280206375409650135878293417390657245899133202912775828721054954085957685166556077700216140946145431575279950580940025468875763929329107712781234631689680279572755976422924379202270258759220913331428632119337085381007062774823319297420492715058895704747120686343126014459973784462208706785960096422917369866972473490617473010560492915920200387502427878676210678127643482733187194688001214993828472611216714610862132787235845355539380136065637620901321352107028504580762805178075028835585732124237368732125708932301561223360818496096593389372261702683538874213184278272690423702960740742745552430004913792946395539032969643012362009372734158446543401643949659735719413119133260718834872787308960246750192678129654965421528337211346082054355481609635680988331791700634868060389577106296342758005760703944484377087937258278289749173270099265629581992423171874623034476488229971301208447223171782993504842477186308163514466030187992786113960751841124146896968980647559237983897852928274881656694180833615126236742685545693085062463081816315623130210973752257379337557772629208741456956232554774949505617557857292323196509954296582594170952056847557932276220425220526668790404767982133546104079568404068738539723913067146247007828156840642966547565483938766910828761878278237895215557678436060564851939572458323348713728168315991715461481436908596128255424658009160304214626920282590782438570025487238029153428440618261476912493617406602610804171684659717676798430508139499348503848606000212750957759890370472894240642814488458935040593818679616474593331026496956927409400565025988279846123457692588879637188810341748133107606777315219922317770731143538926313701262987815825318186710338786815431501357439291000230761496249609149858984997108453460793552056611957044613653092108769846283229770328623325547044026587652928756911004821088108404870937196223377666790208309489050306734407296353942091768342583170528093572792253768737992141644494172835186171111095483563996648724027639804737969214494254140464953975616860730273704614157512237238188086030925729480544973985262654564598365208579282248021462624315548672891465821897346316938930912888613563339873776463511050376906686163614224068431554041565784151714031748090846513680263265293571483687372341962109672398634577060766324967944654437612851149112152946518865317386572468826551814434553410635590430767432198791401857139476161745986083428455506883892428303779641947772831312170335180415326696821759135592705417411550173994626705698867603580543203584884036574184256463081782484805603632573659752297916447923709317387774772223737794605901565686106368864902112101961189739968656031262048035379195961224825080666539981887057372032557451688736541083650932374730288773486680211895218977155356269256955803566554824734364403733896148405912859663588189821542648464510586783047620987186805862513451327006931425410947356017565206744460146935991946446877656299837195109859548057812520355901332521686068994190785031305458910829611594060346556027598895169362002995850928619397962485698823528283080776177480895420415334078997728459303677537545488218423773605849314430346515332729369831202699671585774626665390835376012465058136314636413693488736055514490897296350155824622315147351259629379934631751780880035895629020678064783951050206255955918503589862807912771122365185715697598927584306282297957401153090538985704985038952009439108361136035358323143067246506450976077204221678966653923653408612523638041588420435554036839645689286520195412137894852655356823614010789110863211898485817570252006525840374447847399413199356114920507718795917028498623478060599044531930153097629049258661042822884230054506932979860751151322326837382829126537058473545112740519204583662775505970089150394857726701209329774070887309252172779826520741405059985995482719973003828625089274227270200782819001874576432252893562565215741304933821560527563921351800095921515665410372608069366970381211925246614317770323736102591030617543594832201363749681822589490207284109170538366468720648916754621673018821792071053726762295299611724321833681685495494807566224939922868991435778113899249318631878421916796388253388748593227283338270228285914138219989849063365553581775722175483277351139041722493156255323740909740234400053275483374153875741635417765995464860300833278823923267925568030516520773156333463596008089630528751787858983544266134802837444234524389337364706475473668324627737998076465643525860794594832220414247113612974280909838389152382274670437098386448405948129159592147327663723028794769677492213522770901269621037305748419747474261585593612632613800487889594039468405783764527995783959404636608415256509440482566614939520166075137857943631918950778716714696043501220219418646870465186428127439731961153963614543778902565165656737083065342651698412851332105543733042019134171579086813121887214555979507703138006203387701009684315058217041322616779695508751268566321127191069203231180836599503045473558803039375672825384599564321471037512947891500022282826250949902167887770592821275883557507901551293211698679391067793691104853859729716717352043279537527016435887120358043482355411952904257342201177004558041128392208128754665028862530360396010851786262053420951140270005097716218014362219549346162691924952510271795753612123863744156429953351687579194657396055973633461714229831573851946046751079265812809662802442283226723905276838682798699208031323233287603562859401740909626983228613473270056744146033718415241876603707797119332315637930166406292185783028939826032054267811690667262508748479621234954237190808919150006000504455254028168136168809556376386617996338866944027794889211755836995436124066593024251285561012843038496042742287425557250986392648321655630891139037043650540058278437764583767180595520025133080593991407997703974133013671214058552723988160156170109581706670728977687239955163577322839759903532530517619128578297668487124836894286871078426608217940566949631738491476157497394953782392565640673217210972117158828348390738223875632709073243964695126070701180196762699339716255141262099443493289050630046743675408158445323092853889355896323054599225920049322471580052362488253286204003602307296687716531446475844208848419436780855238381661878111523171908333972203550457266291497206070762221144961213719727521935307733072105321562252397478985949955441020132233160500431199181960128729198624959897534095239144432294002895356934680236134761847938722972799913532057169346104052820927974235659621917061090038914755717131812869743766458126490642123748473393606239764996315608197499805111087220529542666209666724774485140627574851260801757559756785728222388789515073880421372586411906235087256742450826296694047131618960437474028828333167858882488368245003166498875930333593915504198730329882437545881097974109097182563913883199562940630366502255277628365632737790850982741608855026297980353236424864946479991322951903330890615005678839159392812707632705183469249955698457930645430325463238800722616129782043698080458109747356630177232845058918498554163144142187896088809401324272556256172271490499786550509252163206787803668526454667294090447498797358174592547838233521154721376065779605533274148861390677111257968827250504055698346110030051706589293199298478161078361998540364852224758235607129166175163537866619677120753509453042316091700887530454084624412263800252755116805330885066197258258137895734689335416748361962277597325072556328528388851074117308738601157937660341880179945567366633287025621886526954866227017365465275244668671364129331134793279052974097326336485300280372789349523182991116108340968221273266621295334294124974845128137261796255017288620660393900421276389766603246231125749421201467823783282076549719591752516493308197550196572479279262868257387164891571354020877502577079276342877772746852940373470632904189133675594810742696652686718982504694992287138237301278351817329669933195845424329423075560290079623953005931790003733869571180168025298144387061025955091920826057975145663457112327118046163220888067862377078149706234600131395151169870167408315554890700717699468677010879153323882498963843265392496917487553905596051997048718963078410298963906672976948069794652978687354993696189330857410968085829832455173441199075310104913783653949511745292142107253692552954536959040166115067468103151446419958203972691387509058900829104649814953155083064759292881032058982227945345453553840705122814551349475001057784900505030240745513760991235199782485589017852435238305723691346164043648199285860711720861280518318693929093012661898856118723967381114149114392061640922343029731140317850923366081707573569978343232933386522410380469776119221937983175541983622543870211645270468472808531819382483459386505486770578081547070495220886561796569535644645822864583773468160976553818808456400521672006636584920546053487735301676132256702259665696151104978760885874170423537270509592345226540094360842280536184855966292340556380867759100393293022153790921692657649969877357784975976944709214863993300652559288747187832657750320653755830452782388438513272623655170454526389909177299711353945204240677620156463290960816137275749549507272785564240810182072079694898884244585219112727773571938289423938897758756661530333603172730795244707803840056390140282915464557425423081096952551570796835686199675286115438668967134386161527148033013776761716320764025102061027015608514542321228807981677385614366094999410856764100510632715793842466428606206738060602726794141912982033416591096188478495972187762746391074839484019213589679237287432755741123809458719833937878363423121245855538249525609419072564180086926806349622652495397726705019103279925872967399337949776789404597025530940851589339372677293568374165550018979441126751377782844940994551681858670506468271041883578942709222294720148659510690614453853043687562218908502990660055012371413374525060780106957082956667293952807933895240184644053778699138473948035409277267646136377204281371429790795135467028983007405521355190392015047979869119897390461807420074508418454910005263787022037961501139674361402537902985623495255354191935507983493742237781250447613892233557995972359510522465919585982355833033889053291327107726753914042361569143178461782850648447148990427557909303553977371879653178083650227534196970920000271415555284139503327391976962985731656036105466719509819234361130544586196952461480373701474210578275199763015457123708666661312092222590912950609142679575676189333880187465439535904409889437030054818817456320140789410683598929738440010508720312166392531773068253286264764858222242037119407458447966088908392425520911439733644049786331521281817529122254569618963376320061099070947891665884196500827888864401242070576336731201979128511129925385421574543238959199910006427768203483393757797913019057023572547767755707221216979919305955245073225073326792120361232386075921022066990694169933958944084184711407475241492990654883158078487260536972682581182370912985218593001040551172132362821970263851029101718858774291608863420819373570620473327234505714895100183830058533360831953959656258008285724287165842180844850904773389740087841259512340253909224448483519182751712293575543078481993339946594415057362456891381230308318982550602920862961282184005753124413070038644521482665077267147197109223526755006919389237716751103885616711019642860893906306677597577581668040369279660699963844121320102138448539383977395800716070102731023170981782888658204904689818224716135831261806684702755300763814502201524875555193545608103282492032439102742929871479839510946891400942188035152613054178562113382106233539098930650546892177345388528044868038626407135071031217637648596967697833416663227480065667418315258458957998263363507913108386368646451759798188955131221182760912251319906062809060269812798871961753440246902487179800672572160074215293040996886141416779806164923449848932307722387423296617527808159077975841484101293135691617711065987451504629337168616161278635877801030470469036585988134720389219357208925423187144889376669003068011410164127348026595368843148127648775545574847687273745407842948107485682010530192090681332837365427190145991644586031806685941036933429203463962400838087635636276877301742631671462707818730105472346135381224848491073394043728753030063232357982863675731640745419767735022148957032995866926180069303870233015207425257153491534534372242497376482310935731651160710984183391455494817610987689733368535643069310787679429846336518592923637628752138941796312889663779775918441514374384622894019122367600346291799905002031783946618378553198573396414408568622638185061469399147321081479547261410233628461997832315746795263606983504236449678608594681536621679211664362128866297040517228414596624383650393250867895567063051880128115104560403449697617736801678751412978148661871815848439936926067151054774323394328125281282342543964438998724965444326169602486410676921194004982712989900909030012633186677016594368448693195502707297974732285704283010131738973148975624941126867378465792722763542672534865012359393202444008152321401839275309942031794596716106207255102851884494362878559111723192302540502379369459678158176241268955710367774647933663483031585662542173632255615871776246959010693095539268756253185117760890642975272601711840751344752128710363779184630507099431533319352253751753624317582141167684602665936336480178411041570265339183318442161910690247122799942480626792363675055141890433223340294366362330893750062522667895117969666266874166869756381048569807684392638786675501110264399655149525652143895380484320725371699031478964638308264282833348639813275213098489820437050821251094690044981016490203408962093335512518681713658998654782200936069000674169987041822675421732564522636092673845173848381177258112352674412918994328207427448020140292056137671198236102081495951405844126892218117765659265769359291157860922629227372668532913773707474064840877354799678833433026615592949121793070386540736833868912637857277261327888827442493843464266006207882955490652860611021671678695830479029204866240785416510984290620833208654045330514495120079246563795255714859412680468644704737326006664767941223456327691327916704174579095229492906629680712913562874845439027991808641762076280566964811342069870846290465238754493407184733484505549123711873434300774089920621993152006984799876857331690774800346657408977105925864439870211729147243130596937163049380595188175118819001893470552609487154989857221105217347830371751625004691354258398423113877807245191131891955618631971445656786802461380167528779905260437385450988239003255083588376205519502753406602402208748910936542755613476498051796326150189382736420570742805670429361684577819500085937944294429820329950634360831440682082994979850243943173249801569421939963825572802610323324009094526296217848415822684561891452507694961007266115875352580100122992481304537559125731914410762350686635737978460403757282115187277199800730392262881289455258259656500050887369938408009809524586474449819370795562634026316778413099936090891919526537561730902012165209235857927538736943209846414430403138309535621172825874669644930520008845385664809295766198679034737281216601532270439697258922175995585171344730032771440652491318136216706665620119143381595302301490240384500495119716057811980132294288320328757278648560767317661566628643880858216602391873265656351329656646607224465501935568768629623382241823662042510093631430264923963348536107529352713589772977199502851164360187085683368729968725198987894044393205087613964793582839202529920854924137742007006027141293016576101827562533490367700693157363247894178051493135680010723093319325750284388159334701674397424186918432695426457254255504137067525031126363366053193337565017568431266739375165539761783943295030011105179762617803715349316928598750361094869010453634145929637501417277245759719404587552548452718748520847484760852633685050701881766724792066877099813779439601513991068393011680177233074808756292546703903876182616291130344551980015132181784356461537672631966200535617908654487347917219046153760649036034484321119138713349012253773459857941972939556522971073320141407590697394109225576812182366327796714007887437284223597055295163096325722449969124487415727419712632436300845496944478563532676014281739681861682358149761215955425834679520548718709533891357769731040756975557567746659674084289854161482557162779698791831318575460165159493316249570569388436463781794065386020539078955599610975878934281933917888580700343561877497916540532188006495716896524913086308133696673958782813230760888014760063009335472364665341901684476250528157872789635644567736265897320020551951932963915880934919620187751467284891827672707968830711085921573346954175675223082176238451439111958781498054887642565996120506633240433080822486964049692894347281322774086427344606392637594563333748899081425940334023314530592929758652286100230888488740260938628757284889257286184701539860000865386792338019888442298920445502791760631442150056627988989289954295205551161838782706907287309988337477831689855000827543296814810757392845865144260559231521926139935837139920284366824878707745961727566443862926811427152605818133947160077212183831485517062462202024710172452787423890073764783334406446835977044453604429844896667381690388410946938822374092591392703449729818787065869610892715984166708101261962871779135006748696499314806802038314696395815712846590151208237682100687037374063675893936745271652755801522092126011755845772545520142959841368963267749726247176336436801964483646253032258291108209737805307066919413343278457596335613454536127364033967048478433312029277588355027245965211074537890039864273490042858586594608640244158651375634193665950237247512959028686751072688446224421276581952602921608702108119948619001226373605337821330207707866765810270186180037538227165927258941004609509501402494285083920802032430751010990754908433921679784592391053960735593408735535037908705852778122316636487917799173017248133292901142948198446905885594282091166327161716325178027186663744021935300807345986742572444347926234377436596095351397178675657056199269952607559014699629365619814493841311579062103733665321883999558464023100955045429770361320622119876236282488058104998165339596493181182445761528150372576818757747932886621853688908864498696981266798752659891596123388594832910571225956136380618115560999321926878535565725059881634628745957217975408739734723357868330754980172248410642071334948630378216267772884945354216570340318395175237777630215782204413074336044324234518121278937912330858532840283837030519776674171390443021844253295903663629883222986675007871734781424213271652604787607623170606102236775283062836740925929794769339282377048311560991606897593384849408120514572990802451255327822221830842822130215193152844170126933547189656699420414319836631831645300305605856024578431943629647599590390599987711092197834088044304531011721650092506238501708407651721813186627654979814410295277402603336024684418775924999447827623222427808604179107797987093711763363585480370585738763527942047627440095220935537122323923305922536297802758617219624832486177515373115587876736540049751327264901545439543612133709088185759622718314117751000267702211618243325271468366904368515813924633149868943881683180036220759254713930536772338602264343345961897823036414938651983021579538519212927872305692524270923722966492376840682868216397204525486146201342190193796644779038367376244874796454110483305929145724658644616886210611669860558955237787170259728017557574222175593699433824808069263237447905525093998083820843348662093453270392846686626750887263590653719643708605923448463235041496593426910325559563234426242271621730313038320745495037202584782925954478554296334973503390302430908187685961267535486505064533654275736043855994837047202437116920715271754446902813164674155607153011903298210593463917109210859160076451526349049146337438039247477839146980123335064401449729034008534161630526538184818588165165922813835449136738086561454368807583240695730736979125860515575826827778152531473822085582042722435229307522218368519335450328576832470710104567209274002461360008794505992249271226692158207138491782108135225130884118489625844419167702562079762975038022494925823426505011338983841887425496224795697686426981051426240092206212986368797457070585471580730790956403609627764957432826910085196327124601737456141755025622551596443139186001610630091528332680586081670927495196360333397808961606853675926614206756584827736398190041891827667037612468027454842581742027666732521483988459133658872753582619220972491182336984359868882264606977149618305847457036608483996815879596177888635978057135530785943421759143944958917331523807032839001588802822554140383364560004047501335694027876022172498589997981433989136598612160192415490000877481419876591147092234805533779721266676305219017595269927731108427051919590515823621623152940344713386457346957144054785658939273098852640272090975845072544856518752370672317764371706445061737458668991648217730433176841309301172470809695208253369507350012913441422214176114112473124371003384354563305900875168287894344906247958921590214148373524381004009102218686006108899009807632406553951465582354815709323773688659136669718390905469225409926056045117983304687901520297211090663769728992601351954461705333587104252582926979242005903002538944890678517951537348097343432488392521185747848015073234889891049810591936794827035366873636941599531208387368201145381655201389817521707740664530172162953474492968516295820905961036167897840791146134590785981610428452931968605004241373347496032773086951951891013444796783912693043029776617014013306727832388709434787004355292095281793769734208360431660854138103631842990362483748644948964257911415909985695019391169042420531307274707708697954769089508698761329825670601187380200785675920180299641098279249451925255006488741751223848947865837479407034995699081939160779784515811647400673251663805128448071141845387277235313184140582739920295494993566546417089089037411552120612334808993084032039022148388587160555623134574886156696798894671748230007450429918496223990783397581200341592137384084494924822964094214409019506763195225942983033555404528312275947783974183174298318002263880376190216965499415693174926352923559275636912333409059161502639885126863559747922981356707407402696081659890235103298349352670234908699107590143511860959557541700162188206738280719037710306558292607808444041782623533048433800229038316237748771989843161813852564366303363672700110826871697335599281211891764013855709418854200657248945214931032985825045058784326042715000805027980765766474727283239212776093721604064451042142025756476813854473905747629662363183923324928777013498803223940688535944940090092339225025566011827361288729178455422635789562937458327244673341276167982854813386531311487522690585241085312019853974749941537747140706985913413745471234342051281508471892996615242939666250341270324898416058412240513037790816307840236536190110401216696566265912367510113427711325776750248893025543571403444323932995049458738829553020107698804770060414892973693685876851132219486662796921201384933582646429336697195028221929244639817460292927759268218446500148206823997543353965917888875164214474948441468974295013548445166179827468801841667649589874293049051905408904586630278823336200788364745433839332752345328982781045455791980928364035880976816335771176057326335923811536763843840930379960229574199831620339936935803413357463933424986552601068667199513295994941738246895546728314911340065866745910887874058516885405579984478705127528535680680625861868359802241136247815839477040989346152921493838147639993641372015501008811727856793955667783231810086571722594920188741228649784417090755431499577253784855295468203986832102823753090684929031439125980342737219577809586040740842334780810257650142459419912840020143278996106855070119715213832738858954622122526095268183564230542825852429208145421612438494608999644546039806785099506776643650071889366549298339250294901545473218051330236742025983215402607093667830417344542246007897187904426719465850313507028902681852099577141003212270857920147870222938314599180508719958862211817483400835262621599984410142082245260006572006410540435233976183131397689619962683685325634708868795219888562822586496620498274645523048376609994104799868015266242778699539485149123429793733994274871396066915907731995612381165178547407747354629310469677235902595419558521138573058437898306124616255546620743991549990576491083205525719385968286431145284555781434201929180230578579954644892554490135563228996991016017066946118463982645366319378175540515877111354072663875265280956529585068730655313531666182137286679121353497526814216511183249206792359569780657957753491178787224853669614339837756601861445936727731728477872614110345161934330861429705986290236952842712639455340585401978266683709776607486896647122989781272622507370782312201791974751301970182231403834531567673326640802300284091329706005133703788920200978010033977467848764342268767632797954595800422193563919558045777753453927720243281571779959537445428016556323139449384604399737058999423292496254889079563397186597408241405764447206871115009404155846734606249869164661537944049928088200026720429569171805978268165142248525855086902584896941295787731192269451662627498916652449430006494317507088895240656177685170854481436371677582761870280790246406712034020623078960514012529306051397587429787120021707997972960562379190050804636269073247062171188548303554319333660681775520045975780217788692374776879094809449433647492804183717744175838790811610783176699110527102004362541229662500859498942894924430936836210592954585424663036811465502838863834288518184551867076928260695133829131850725201394313404839928723872428277689100129529317048580411998283729787421391507512361557179799448351224063411626682494624636290442447873915713951749585997467417965659059619903776508056183816960307427476536853121177605574323426403437515860897392789423746999157355058266115980176035835549012256651711354190775387360118170050530205028488900761273079582743837433547405985675494566543405755341272343615343631757826243890097260088906501476005469805802484159029601942201339671347931049616403004498981891811697463990860839444135352037635445563986795625587540252849147675834319046268238940719384636152160375414049162742944446259297878839845591791626684485372756884949730269262442420609836877689008993846427117079894070774128781684661064217191836318625044028768459108195446409673564886027573677259608708755270484702550704156713059309055553426545681253275895031357199625507793250837806134752692782374921059621432465214040378180849521450785094818659212416788686805567035461805343026059411875052385606792603729840540290900060557253606721556465501594399755888103255876887693554362063162932067264778072654610344795049605196671626635232229850592230946761422096737946425230319489118819127286053779289290220156637507267675513499132935567246173630939504920592897463715893146236057086664804022473386613956978845947592012448814314914851993263283483693771245803736737568759082364269972719237665361523166889173066641470805693959467704728250377227462845569407298873299012438668973810649558888820986940325407686025071492121490479065214507900297616133175610940891873773733585219561734547917190786254225468656622793671912145166387827353730788188332367323327651270425437016180202902970737166784611365328107793905002582176195206519709467636159067200711225057624589341765925547850544592662628649937669675657061238398234018092900317600271591287100826484118290454110456923396845436477464611785321693486271195537504294423631539144438294962707758207192612502651804628624831670862982916709938685217619450912538456335751019972286259229635327320876293653113815033425262813697971228497391606645740493814736013929085868274094071404176901111321864277066474593481078033588274249874057869959613415997937308167925996072630350257873109321223325023346386569576603447276841773792894819049298424184311793404388727804149606693235269789064348725562646639632576476033386531913119853959106004573782807064705604049282192741784381314712658593820873318018983906710477136557098735276467108266434361744270538890280547316313772429700628971793687136197956994240692388044210297555890673109057369505097589927045319078159297832368221375631864245535970424841892429474746177402452945500684554205062760179640783641829256708459290147973738260117152813692719630367758716250706207216578009492073647428901257070489170912305133985353903282280346019236420725905087150135138826608938413941726592024040499471317431488685760279855546209046732085700530445406760250587145549907301054554563198373635327840221137674775237623183431348382614444034802076789810181503952314025707442808178855560223060138118702160973901953978913914320058308736844424590067326470840230300972041363423008387095028793345771485194554264701744202315584519492967117331704893886045804870722145003756951977120306089925547805541569533013464735394347871247308625609042061629399375366798217293674222425187435058412713440353617721373351041837382112841499655456800324311513769017998429225521947626834110327834753590513467149801302380118014251898747226531902510680098373128711165440870630206951501033886555586821159361816400714694220939312010393562209650442586345522767560577052085505921653321885550796090719842999784314897012329696858052769392132184234344970049571561753795628725208411496131342492194839511458250748843698367911781731913174898704878031329510380584540821686104839985322247149842401356485735196290271115361028267419921710528559386853281753099647237794899576995421578795629669838419890697582631734001142113156443684256621606165704930653401045051957718707653929017414507564834458442548278692395929245475780547955411602990661877442591927318744301568511243639488032974164759676144135403084189596980551427552384094345856541521464787042165555550500954446561855546655871306311360877904559363121023622049289977453903564885757141128263422616339394104577470685691942559782270531669775276229926223058157754866883391241650624041580402297251158160495729984316286497601242440580734074278282608566644307443360763348092098594999890637978935556492854576957315012884274447453803983826554307231426900530914203499097628413586739107077721565458677191078949244552399998691510521736856993230587451717081585706171553679517664858176789364698813501363898495217359805678087935518168165410131715454028160672957904963883178947395944031007571419614889232633179534977534385955027241627548068806053012230286368567224655242055580819955061032822725495967575631885258033849109230704996014462929489564762262264901688258662227361117181829630651477864377287567593367447127330333573278181693516248108640831884024434177426546367181092336977746525357829890834915781816414349924490062098958626982340092231356546306010295719902763163321216034646140754848850534494728966786421812989570038476628281400054674392840482681674880178589240952294808498190472703199849035427489466273805595965465559634477083269131106922001321625207282130302885350198762408489837574316355431722010065647599874393168883680527671762733047211749674772427365491704027986129846310853548487618953503201228090739605528378077916556512494786772784326571170107225216436887832091812284890402295304716926854685687108619423371693888005316760986765176831676263210416872221514982043726572490086023860797168904856618348764569140259044694938157276064825469108736849815145973432237486529045690345081819225385732486910558613098066450885082457836407990468662106517262892858967570635558236970046665868605948068299512400745548775562673187066069717883327060092505092123529912704652081219488512089867321545816535092626729452084351956710524626318054478389210359753109982004922525990693262398291200177362861778300820789671254687460047093808175745624930075826689736796831948822617272358216599672478991970441124976140949438714465089477278650869298417022977437043565551682509377401235378088510185741908178480010405789069681284955251402844735244522594223916883830610624018295452882847266604839464533581253283395496314389256276405442664419353442667164663101679215637961617446473191379637866072557470159680493695438056756433858512534377186580552630056825563524580311117852486966242080849707543100240868433002087337309940147729432295724507816566388861481956004482579859843858521363231693282699551988432280144144761727366788086631975087944539576104636689305056256579901549242522440954603279551106057514220154396281016655520688061097583949926714273023844539338492576956526855994296789572371194596628887618234029865247828821253808614195554538663082648635640520221623479940167247996409089807868702764555628031526249004465577408921440019281083992462118715575150314383857882024849830042087600945194846392094700891519651188855508431884252528761596039456956695549699283179481726755020751594268025836477302478797861852322710288966203032957702456576830891840006016279098784302653100814521755713264588600682695349708501650651164364106428701698667883495456474353982015956861433073725972720589436331013930979188054057661242813969345021091713820729346400506183759388750417371245149111541957558334291395995891770858115725258840394245691021327633536193023007573771243198509003017705435677661171167226901122221345499053222475867018619293839234476609475715119684575920388326665164379936549182072209776460673127082487251545929257640643421702208277545516925104609563963175573795024751390340117798917318499910517013531608673090865185851523990315935508719848944305294033009807064923896151063587968413960078762246281491644768084780230051523892188257146409323558867905290472474722368910656529220849832960636898820944289187742127042587387002420936046775889275243670945729315400593465351874185076699298858274660688960741946760137133610099623771660061563238042544851852554255476740575919518372615127529335183555054942740019071321174824073999295897231967304457406147829612411572867217472147936955318553849328202979310859093171806716169497425534518649673630492826294601927862126980510431676546314462224725467903073769770195682626695409028685411638760512172908166689563441838482939748369491423384226077812849069607125960131605000763412438403933761950727922223262473138850656137827791969104941573858752567874441109678946295468446910079196292471810390319259994320566555682613351325892952261356593632574142498559123219603543475075901256998407128464230325425254605887992055107350039088328395032062779131935181775548989962526377730406930975013366928090535297634841781279944655436851196049826150382404804459343046810730560039845473557501392850379338496640187918689586499561586577320910882810620720959557665590893590221416073876949444711805092687980889209144438562497792527779039649030162039154783508825204011925514114629700690834603723648645498866406138040323867606108588416476710907552867439087369973505711959000011263818130379617040837880708401209538178896347065379936092128533778378548494122845866988688766604983728978642284196138612777741039562229337237337325810638438374267459543566040514944034035496759557657205723265900154992708705766045997218718365977661794787242583905732362893788121205520863819771630542248800733970337961705981129264961853212385893717924031897217098369602530316442041258959138925583381379489113504182287040400497156481423376970991422926205152275723103910306100454632296288436887520476034923010099860099463242004103701869044511673599540535058497428656326843108445591018770420304846260444320040568522777915253718140856982881436896771282367494220208312473241828732130025133279942456914973514963441819286569632012298050284114222445820834085163097412914145663461495530232940662725690923559921469876775027706272793124235740869413993332231847399786628401144272578858564167998895993082915773335235945939204909242974405730774582600632818918909439020752764504192895635903690431452576205846259944611314766186395110946667741398645420692998535309721661477700149990393488840936900896159346960769350322050209975335317467242133366917237596367674916659551894346029545600399741006585789640301407296000751776555989934426765206650770481530185366544072473305967118533531309065359947994813096561475916304218193194572538489383585624845351321195620433073887103054409010829072098964499060007396510066245450356863654889976669613061977737814196631783446775450124946775587800363348450817468245295758167669376029508665794386442009958415438734340499147629481029063325127682523420903407611157158908654571235147926347323174763150793595803682331931256692483488774926975248016884924877973796029884722299905466478184387593424600177977470607137934999364540575739212258784094648910496539629165340672108159747296636341211948122904846889969220699689848142655077855624482478325650316816393349834407853088976344522985850500467352055577211524857690423191993847870188854756954517447015311823468749569545551364158740720079212632731999599703183217102155934081507797735396073547060912849857047317979429312593962191964305120398418324637654991615622722041137430294210859759474973965864814866865304873474150119020149096222062432160395938236252439687890935410590282267519990008917567332650795571663593958654480460576961691368042246290321522558313211612984053431450297202644313258382744960119614496684307995618788075262206965826545779406449572004650961364894618796561276655987952366816749502033670012498240997336952807580588947237534653562401025221557107227264809916733595414191476540254024238127714906112845538347345910681951427859872504309178918562607287576132858920566685994292654917568969838137627627195903832907072601756262049684450269375868984981124943778841911105391739953254310774858996050733343902918612184566355491933172969641727480854732343434713606325155526307126134186414500162456017312037074707934946725594320022477248926978006361141138968602620955565285612792158461205812109760138297365801563600853007799022055738319419471076937067724216908977133870614069227298030741597034649331979179218848217144536674291848900591645420516438519789328396262453394109635816360847433236180430688567435859322110967814103209764943172200749049104985565547389112186742410878933743341148938247207258028291401320898797814485970455658193487445754968824582992595047725417927907636447862090174425864023019599914460732384633939044434336129911947297850151974445807639280443081967794345581179562892761864987866389742428106492351398139256989001641969270704692676301863922981176425061687247141825405612687406711772361514554377410359128389073102135378384237988716003884383208879870853138943292810297702502754876782346104080455991371874665491482713284672401923633406829938328033692733153015119853274851230590620901650513553179760457241712705168349450769659869070413952255972397751013369050324777203762501202356967188194169275999591751970069422356088088172357201127810226238051163327827901750172418662590932122585099960616352288544581726977828796183637791553158551200003099820826032529170271238090848884859846478122482802971343837574670837158804400005478085840408697144520067907476151892978569056390801792207370542786385251043667515480847193189529120714703842856099226530298393092307432522463518458810962749502081318381821878118714605558482239656999712296312272268076974301911287716632395866304024039339835312526859030029625545767925845233787420107210937718120917614219550509988310561220347680903399755617178587790607293310945724098030486755893040837728113376140535612239408717530279726350225225514513015657674053892328474915035624152587162075317708034588926797302019622978305831606684937693950202827141294258224230747407158902593393488851971868648110377336473102681681780078349991623478648104102530304447293064499891158024593452116952061867819674100500141610046429185919795034518251867267798465196981954227523972413672888779968356442852010617752285633154604537867522632992095618939650788428674225419759122717767210702968331362275204528429709700477027265284842221608134080380788529846483886895017548447370296805108550599046762862020034307886282854339507235776552149733682441595948130529606715078774662166305588955174369413497512516837906725547363361152407405518864842507821220899971747436863288124173657298307132866478595580801783772205444955557308032779896824323056843982253589512001459061361094874885607701305968503996468304860017131912097142540718142196077708001193386083393942272816723852977512641634070490587383590888118115931156443471274358223412764439169544351628442649314346382017462467302069401372723574969928719435563268843677398054308256003379753328451027312847622694422057005658893425783543882170340967147620801391016230546678432656922630246713162615402251312379440822924997725524728283791980899193259698622837081757363290491119378832175297488750111251519709526060044641414253329801774884492570338560904783934230592349483869228848287371669849871944534243452446189569239701518446958853996759415015494152090913271595134141239757586667795698939602786423711889352427367407754054928978658746703569115977200580859799873036485280583772451462705504672045886873556545259666471148100352629103025538738099613266656086141670225028059422556609791614758620905215816810312971289333495843221172563371386627647577914621187770974816269535021128987564745999516801983429304463664659983513178709827849535657017301432942495507803489602764224665136288088067519411728296546993861046667861849501488413236064758238406185783111063538576010749962649408604822299830305697624558658093754768526701367067035138189754150568495305369416331654689930373732403209190081769585920263897258490083106097442430617867320526871047839578514853159197234857288929734301927301182752373231373649649999484913810154870352164471925940692294686406011081931043636626804694758861312567073811365849874548772604629791021007730389893284110168831022604531921192892811891792528609357138206254133542862042706506848794923851413969246373661044302087356713790759731759181692542304361432806384189089480319725139963090486779814605733356931544731905954282517098089495969950924092661290129284209048756894714564904508161300445248120867487971773384344903404582766302787779844862670065224834772479859974856274879114843400518748946714478611250096031544097720974003353278502608251539557795315281071170164758642273441298733352203533681941702393583916776987877129208122949921331005838291131651685002859029757663961800094805737008026419426181478805635268580132198085881800922431906049853821849276532786407169948408137487617628487762452896916918821433300829524583882798151010978347153012414422216606487833458339989853892551981282467201046331622492679164258898727608093207766363717577427622860724677426246706827484909143040393986630799993847333870573749668374627895650324544267149519558847561345437773808238138059624019380972559525230595274243802545998946227851068314987209745038792936489543504744514238757150059398526713327439211135419880632685502932548125733776081844966442303602556041408247830349904426771903192762127472598208078294405635034733902033296114309975202853579297751800011795953284842348438351315546935868845559175084344995704665957003380885963487181691937312698609760479778034491232971401844030022942169186696725032388652217568153159814582561829663033621911515717595821464992485191468223886392156805234343302392187969432630750630679595060962527587603110015022052997297626528095943974855603586527483523881632664604351451909983119441590801335620566978086889508967697571677642632069158443069215528834188904428220886653079302301951547881697513893098001520294831733536166523832652780705474047278372441675894522816781929441047775202896071693538788492454415869832436092253749183283735579022377847098505857209561228443947804988584112838401473636849214617843627410564287632247025374218604649948298655196136139639921875868344193627365923533277743786690072892610257991337184918327692768990197058962922751807095978478407810711070990642049021233053496577651111160593895669602986889619204561041637687602855233421627492342378873641260777624717332184596352806625810519475743874048072351173274583662951308969252233702571278721317106342550844469509811633937571748589200119909092681163510375870683727377342431758811034254421042510037953282000998647682795016726888979683864758650209916738472987994357861032463990415695793524120956009821971507520839759344575416578131923448508942897845981659387931135858765502259171850518008406735869189454465065704642387401155652744110912099314769561144137406509398634932321467378987864200128442445509272686995112986048319850503182571783555237195004705886405270940769814620874603463108451352582778591195388384809334965781509425681977798973270443839404879373837722721305790895896168938263276374691023827969865388975506506074721171986531431352062350382900223791016974836874808915831690657928549632927091954358386315930720385055889455271295291914256546160808340620172403664120023105412816976972002075535932647650898048507282303575216408308289923218097060621492347911034234511170437750949784376869617141697244906299024343592240049445228007867791183863092250256729223026090702901343509021090964338866131600090907161132314958537321116703856198527928702007543993611444097065942006286518066318895735485633197303287460412752088394398329689698688277789558790532930512644682704636981600305245339516872773119588639811114688646679318080183897907403479262304489154257628343215795378409738407008178284481117838135698506057573525402937297690271060024276424648118827664461633904152102166971568053564642217552021986512101896557076913156315962301027798651083220815700183622512894218056187139266173184265731304182354496870060693127783360001204696668705162577464299293194565167295192404704195388896156899811470828576292070703537425111107839938345268862384203857060842831396772046283025286402657957474956127625210902374786585700627171727606886730593770039245013501136120857328885112992783158933746591395092879618498264138911345264379248523076493533848574435737649985310084284796613000133590362051577264273919544261027712731430063657184500085830464750541868527357451092367254698748996062971436295215373195399507843273642834423918985483046521600790357468889984421857451800421801739580970631436530381602859064059392336356341257760986284775091025099440060944618118893388346842222694755874045661077863680446884790419785430749760473108187216974354432062566377195880441463223208200944888691111489267198307412401048532604297925693028187612948787562251859706374189609723953548938855510415504655377719394454993645242833029331051227958536392166166732271552114874600151186372679597699561902997171282197327504790913080794449021501630467601662302140518152938478235237261977721459555334839093710974749805780704305439108222369520483032835260095107123438314625950340412770914986182049668004823400225522174558704825803852398810849426601097687542632120333030358236280745061826365848399882186568819205310663549128458689479999141826869936111989231822167482591942931667924904442526066382398806887994166397761563036253593712181007540147931756784430828990220699186342711451933757503060337621047679807660043822384463931826525933131961905062914686191795246174915904571162440135006590252313756238054335467072083629151718360691590354566965751694403715466723793396467493017298380274549598797790680561439008408300283860908944016635029409276624456680436420187004502803291969933749568666430410223585950026975762933712312991377016352225648683919844076509455173241286455169926812932544851921259944909307532316330092793040046231429155668877088647841300629061074520619847646021318011103206201961623714169456600458011174408701547808317693419319589416265396053531939453594844890434251738952544679296354810240822624241555560287023435250939421429631218564372474942312812837032947671637221005855266958959526435661812931154126731623938360170546551418704143267256161246626645295686231265904282881848224937418457958709694772919378463785549620960212188809093928131984598580028024211291442108896727551093909628447016272023747244951972001337398632809868020002988147452563504138638600645599800587302215507539561467760003495760232159691178327030234082774205942668125698377367056462019565876479444369132947712374156596049079474008857146411876844591256612253886137200435787322207062813439407875628541236921537690972930171544762063920652775720991975984855726257508468260513835188411834946336001301066727067867172376793097913875321506792088630748559525826548645702082605738252556804413429569359611401734953869315841372630069289809679811498107437474040657424504991363795793173638250509055124799847176174432809518289414855065508150709955827735141894107976346326822549698911943622494740378610321764313593882955830260341857594130946073076358490815408009389579298283264750779037442060356335539635037427923682076119857111052551616053749523568335187659941076120672697457564301951250761855404002406534657706878808776601592014439000218641312589295133713521247861660698045288639940838783181284595846545171003158394387880550028608222416904935968159760523633564423521376558731921531109318090517404459073188803005644001235271644459487526150868264776308427763090573494624758686522399173183556008224999427502734795181050028103341858293563282651082423731853560748254584819145101158933565453635495444920371805898983668259670789621983106308032280521075858520616702676074676299161756093305259341794450139040604549937332535285501188472901220671307791446942612280594098078431958380293380263507576061638383864459226839680397877141840099166792480794208446656481502865717078262898921040970396493317839706264583041440036117771211958094448582630625888424413941658321239211598760693082381784568597766800679729214560056246363654144057298127985026845510526511637120094339365107567218948352251339185762332557460856453555795449219321712007971883933278501871082579170993008295989187395614740019006352069522119956680241859208186671387940054986583897505192117400102234061786621911702001253348801900564230135200252002659170065568529623280198243525025721060330032887454307414706737951809126450067395237963082562834652396660795653460759985213974264259466486848695928397793310802314231666992619482990003988077804118397231601205190966762172745375410994818027963386923897905006472007654952859675289085232593376865171679506883746937734531384992757621201142900434528399257224731371288103782931355983807095623846885710141859578246557276290614557988337759525810064072378897443278001630327230741030969436810805618973509745238973742928382483901141523855396856842340939318547290189275741556451422982847033922600877945870281933960285888760220729748369885584372087372523329983678281266765168248941741737797862431928243362309201595966132451122796407035381654840010313752182473927761453510887992133354725936998967401645689863011529071863497580091709672020190937880633209958930659911734650503963966318665630767596752164272243883188497482826786976877493725195950745471877072138697705281112138418037294425513658234449225722093818682468880197710822846301900988890672913466755768784175394116217026707015612837629597427639673189654332506563610374231015757804443259532333568791426460562381934016838230083563330949328855910481572274253236847773549279640610250337509954080988274468317425501359128192960614933215908504496725592582317530235286848746938540167545787247491779565833306567196146123505444914255279996423402876826802411947997241402479379545999792546872675319766795613084913012356629424370821323203921005184595535207606769351768714787356345493303920027166212894614437970274680043168822469224099053319270289873389992616319873238413843330811955666553735214586672022448422803271250419996310890766468167433885379178554550606487766065104365854825180330832374468174458832386953426917402466837158549267458236545460858682462908255505153964527263445318688947177060651706805589253792562977942324896522327244352874440836477004791658040247454926393081472128514135500924811989913699575287154935963362177163413493595386538534802607973935825397200017043559665883317720292178153525884806522450365148867140401538579278719530951526126394463494412087409507369928736534799539817064628249594700215440573249897746427664486252501476570668300632131522562656756983907175319163787470070667847625428873736942873014858353633302729594958939286431884008167364996272754128485934667781921980105185115771694455555982870752123606235341625149202474166129351998049309597312989327690141031897129635893311855899291924120415431799110520662530282045443137513570084830552165794941143298442485301307806038347313720992270248078374461436182622406754843754757256162656195313868829126868507431020926645149911619980317359829192477240463594257785671770939696742568470766458815274048871720177863445043724171412224677557496334949502483783900445256639609456650150061780913682426066411828511327282222905819537354097962708629828528776038853215130841360282297594295554574395793133079820691400380097514882229686989088727461857370527235969097236968692858801796762083418460675241922577566050304081680982835593740934004914067815798014286034667276567011715588576172339885842371500671219796972764293815707996607794050173714348982227417632542171097124430878636835590720599482556751801318061953306610377321606673037321213687232076648461839570127427030167721988701777509229002025148321323953799220956255448770813958321062691751067919285812431287380707284053217013337401165737284049000945110040623939092393836405998323069366505761844648837367938160920903476336391399846354177944032944337246678196563454666648963289373608002156417798406500523541000665044677374211569893653858831149758171378915154591067102455040626542351779681112338565946912399378682867499600032870729976079617793753696698825744513074652527682127540941192632141862571343798730371153865008377290483256053772699106139728553312173658042733054196684553266237672539532974261687106455804431172836117429225649547103465557215956212362673226910125562864112579898120118649217143616636728456421211629872529521197747697080431677050041347732818132702397741128120049768382232164507609010683361191843574094392522707946818439517698476641611204432084723260256375801480816795654026505921435670985511261505314697728966715647578151498936527199753400339952818864873374767653388827131414135233853928009753346425209713613163947707772267640738478129404670846324770436675961624737064406186490191135817307604416383208360608019646270711804982528566157355172580963169982959591650023842946460534444495476489024637399275630949540462539303537747764551903115551602945744327272745014414196771531894335148010151411775414541285560503145266410472281029595641929847911625190886457491103282430906919421677570925679078044358931219495567356980915522535862938238517241606348315232408866883926930965935607055837005110909867415749264613226614392073515057773199305434757899745536799771448180639937034385395235692541708066771096638900900476208089207849257808918999424673790123736494275296030975491773089189870774209425549769173223030981460936895044436842516692968424267993453965104741845644113845948141043130795388127789435664274136648733014017315031316010785006211734581720330803152720104249704453792461448699789251774169551506098546534021881622460815606067399653357834782507502179514790487825746899307662098530401724589571068827210695204055035845146685106622028109352613636381704672580627851042753506162775266574659303253276289558872224835321837360625637047083997571766218086035118551626493477153956223453917561289797720234208483464472593171309691975633109020608300122888470954697502165897633579456866474648031589268379885430330796987431646441667936345271023739103911364702615048715525727378617386178688101498259683695078653134892226744371850357363513311241826484468468428429919512009051264514511386711968914882286911721863689361658554103912104927545076187540457700552298695567071945723269099986497984708769973405494479685439687393926274461191006253999280089875556137541611386808245622221839356030033956417270927304095073323070638501076853753476116339815492173546080380634257061513561052309199934989939366230467764924573720048686096842350616366704589610220807837613344729372642279470346885417440089956874825486115076461882998386147046669598059935661288805375297167985116122552664835809432722947127771799327025284672779163999172456916694953001395690345859608427307840003212186653881076160913451408932003283691807387270542897225781067261162167852973258887713925344124470424528353538847806022075461520187336595918606539784981212137110999595563895438801982126647539357147418949505580048873245789107800919125188231305599348856572624530221854562825853404948188006574833901297033570189182541439158858541667767599326450689033695060768444743178465491055865509247475713393338099317393918556869284077813143629826364548585839882846886236799830831812340937645671672128506980820962314012948580085476631528799331637390310626660065317592197142915309793313278621688640277989470685383833074741484768713442364775176077898402364525892022393925717243175687889483001336860016966502220697721403177067609259191214761927827622766925649917235969850992717774064340471950329322580133369342690028780630288582275803187407611347483824947103565288112121682868518502231048095656033281669773367193800818352927576164427373029968760671838806648548260201089908078372744142973967561663636285190848057619877792337291519515675748166072446311490738881939389688724744862530385467948087327071565738759721421785439377535326336698114953977505936151106474306966539884905600987257628930478455508197143640850129787985623950503183257868301376507508638694869488373343019275993852396335983880137581312206354684057065199360471618930512203184946039257934547742294660839087236929784861207607092596423275730785220406004415839863511779671844107554287069786224712193216926063806398519999728326458759718027866655284559420150883175768469103304444836402539271279866453640513214503126670195503356948702752991603760121720102775112948754373544413093671302371138860354959272035652395063438287100679000685789349975346628380417851742223105062042923182904532446068863117261037721872400972624596822751498012028165996748771164441906583530320162624751926624995324881561634692436170008054712536440605145024625259167352345842104534202739110024722213035211928457072799930604242641798021331498405277005022468626945500309492176345649289982200829415388533743778945332921452813685455443005674418775175482044991822747847316225107752755823075358290216946221033463786973126227206463838485164446454129858140394163669679299410366244454553508488035517859508194739251427009978475724806503055892774955113777751123581072087851430827584005441967187189202116705626165003230949394961935601786930822402674548461037073241205256089586719987476265974185316095012514570935088196333078436815330769331321618046463539695335655433630197968370475013034938304067963416593476818385444401581979193786222142502381511921711432246191638517448198787638258145542494852559581205118024480262807172641152967675283742205487830281794179662107241260509348825610788300574485812965137917312588733908476793097378591830304105975580729640941320781024255442821659207141215578305260879687129262053111765377392476973554360381087163509106299892901459311276219970649911467576480469505661768431389130896825557030049210429375142928666762728377051198172133004560071714275769006170375096587483120821953185713333897863767359680637433222740600715085537045351533597902007024397861898769505226674768193782882704258594749361519526413908949507158423247374253682742973585780060967774407385796733625076779027299831659312132253246818889940269662863984067116373528426065458622106685264430054025548922457097856337239211675802965181770284218175324349553683252311367514758289249970097548673121370950871803080960503908181507961428058992921497879186721411111104698655941720741968351480335987338900194978377686307353449776927260354679940846389696047670618316561529681221680025628220212060775940502943692949598168101448201741451011568295111282027239719534216166716588178119009896612289273962545056603780323332348716822350115588342646306964159769510272740599972257183109637816594139552308680433884859735129792680893643384397967934717415243328737221748377393061774018731823639210151267708219553165145914640732380917116666897838855659419913838811754300986702491590872921623954575032594191250983143380307688932952064363966114382067587569880540673723873010633191790469635975361388599711341220209001147641681090207018991687472290350433782022405388402833758766740944972024467175867230552466470273072951335969511121150513919649624066637213027658051053537710526777608300227188684146677109272254521114516424411346069896975774114985701600904469405591733323836923530512825227976549906253132770886178887571151042016091575877810156378899896450929134926586176317906776346812938727162592754766002571976746020383622193897455757262708209295703297126031464941629185093018917972317496519216220574976589303560778258472288639583520625844785268123504724462662070189470130192089805546763631342176608031858389956637444013979351253287231424806987429306758653587223044990177885106024069660825927875905297940767246633360437336123976573076433852209463766489440161095822360756956036697904266517386695515991694835234794600779327148804426957388457400204841272987204014670757965129946766885665711811334097189095913165560655007047335172127629639825369694303580119736644770456357276079197251884930463148208449988894736659085810553196664409923162284523315951594398277890337854133963531549558643475377124923600359131694771983657089274305303065523176300815273861287544240571457264585289725760940736280746632853096516381698598417769998287428223517401676843469686291578344028258536452282572760072303169566771703646071279849382018394047315982207069217854411187392865001155152673729027694671626725287302867075774592367524298591853918654495210060330295120303318523177199000468652926627480060163270663568508375845887456087750383458008418290341243818553758780593138348101148238860857829636736203935439956174436852586464416749875185219346439787947523217990431979395264372511785718284677626286640270553395818231240719803490592894196729229483029420446767500641085004475335211168120189913811139171034897332127273505729073562170034395946348480825784754582541802523992417389212357258909179996876974464470210431961786407491781456426225649016579292868601602091494468849399010311602359705807912143788288279229373457396669304807959112083376543093832224630838468417970932198856567633853373707918619231982731020391729467233532483958384003969203754640663081340367367082113508030509217877985051806585782144375542644370338083875080206890299801804753151080971248334859024174229323007227878102910642254855773438912814953378667630540383917854906656863293167531011156079250599993729353582488658293581796995142496213836121300037426821938976578924718607703978197351348992756100043744836606422420938178955190197909250194951946986275422085664855625470930217092686835575674708929541413945789479558570757140943742903380033419437146853215849488750781172603553763791380670133156347965684509639566275343555849381385122655486615028900008733629118887205840259877722992051019600866550931985996925401043632492639538053015485426365812445316486350678157925015606224655421803326295199168174759044252989687732514314069534691895098944217420663086776368710992482757654082931250274258028821291408632993050015190518784418400595700362524336625549252660267451481889977968286909707652341133973027337148684663567250666294252255373019579694244480854856594085072099957636442649090434416705848500005090767114575955098472749514457625408121538370550016722989058325054618196886352783804236904340044050071987145215880509276753840725116630718284437346618398508964644715854846734141880942093219538335387475625528211063014660425392916794545350763064254033951766975599796098225525379328246924246000158316951885624943068478371627448641175136292521255947507099832345792622338738286050811335198838513180974653051193840548401249446160213464271813770220092013365500895287691524232212781453480587931233361033650701786299415006321814028155855290463558641176976744324082992949639920075951521589940825148925631926920753352502944950748125883453602455957650975337194192356368978992001791369123170818919450886454001398812311902765331262127900347204803783299022848407034129093993930827026430086664981892252283294808328285394754575346075899392454385802136691358566500190590099933539015761657365501595866729595488436446484291409171705911242353140122702513649765533171365436751694200571956144455973951635255288319417287781303723180256777008786743914227949347355307907331588896450184080291733764855752158901740118597623606182660727080439614129723092478062293957872055873864153510442128273327893653437856062416667356147086101790303859376245289940606552354971101583308047906968465340892561247559387841466792553928527020361552847774031251739512621940862693802685795423883370371096076366990637147257840934299026215041745459917216555788317985496087410949862128885418779880403937155633349080895075787855193829678255944365842466345478664398620049165448941025282659522510634893395368447227721859265163014702674224191981174152686085577176118791120603609195823623205260333592337645461773481356797350528739469871759456592872424087138929291175685201795683360217964197008304679359279501006671856735175926137015292726780253317692693735857513021299982249824141464722627437456194478117255388518236298451277813054017515140297086025404721788873001907044297444154814804147705827721572761345580524627869800643810818789985536975102747527493861895315253212547728153322076920506445340195034862992216045250055659866523160389801182891510959086169964332879315954805736127424195416003718533156381026827558046580458195828976486868134730599011006742867813277431242511143426389404391055955002878046149618460144746856539778560495733831143457385577909468852004303865891077956244539130597727621677889835984418322851962177003649744563094847175323169287453997181488028996421513536593528465263955890953435803568510725778177452659994139901054120930300473549936108478179429598334159029331523924907636560092039797005511464154324925919137708356822877138776130989613808993363010446674129747479437680531592587033475223104139143273516357505135537315438545754119306533780826705398677269095056092277738834434883411101349179850626042929102953005429729812146066058057476456875972022119969261121989922313191605956646623678800995960534121313188855053329106828815736353752037584432744864171523019184318018644828559254071593634643204860539541427304980607466930153749421964669823373915745405990838632617928430522387987618489390870690623875109060477331347620576656271088549032928483144800678711024346970812264346500665072155191405563874701940153071127970056154868615201260032481807975479115562050943814033435848813363763179366332379950976784080295674004480575066251959788272451779003237069343204252571367936398419167257812008156286298444359245050916908435814819210919104003707755784985867547667608304838890782804199048384428973520507635099888953415872459386974091701232394771791929286715330306977583754341316864296617131537009914326753975631759498048345499568046426276218578921583373099110661763044947105218043033780315463314646903593045696868468409877439979032807419242392818082424283266287384042879603075212145692221968675455866557152198274794402478580259776641844096956004712013759405833092363357970820377643215317806647433009512282103311257418714025256844240838691918652649609729012147547872829358546324819754495658228761122947886287242697227295810122064260209787640795614438949281901213182330427213285753223168747196175919802802156765603636357767384288678336886178131540458642679618607049943596590649721872450345421225164048663793358274315778754832287789539691017344279370789584145612439167706944297486618091045702330079116866179022576829704401563617699346447588287210885214481988517867596425287676644915506310436518557431205955140830837308480369891724354076018635634884020731153219094899436941886869258515779274582983353594267672349400948129948171609421028774966220513897872720006910866571970501578395476972866133953413201528540700822040190189069224068905201907920698093857437902054865568781997851506053472876703918385445887408600424556244911252594169278784255043595072721169768108152568565942986726453952999297474141375822854796780235964571117243568082917553178084819625083008162515399187699392696223706340718706328242701107207257385922387217900843166911049318894415365816334600538738955108278775349690579909127783881238798474803507860860150385798561494902728517987276755903001275862215996738649007759740500192707793963100897792694154096015492908975542416026569637893435726802992136938294610687939899356073020629649858753668136682000951001349627472041040591542440890715865913223952766705695721704052570095857114828656580327389870199383604294218008120929643273573276301488672596367552941342715399708928281535505963715166663176904033770629413593629014529134876957524640725960674967909345999735776409177587570499107035522605221809680844198222826689413386893012292027681229932853140697092841400984740016502401259920789791747846516885320186372411428142621048116107181966351884665187931345767652944275228454131666641345339586402620726386617189694558445342323207416388129851332331678498316545202557517811166880261846332363054891415379209652261307432232687034080112725797007994460849604666471534829113858656826721191862635854353669018151967266129758416876744716127222866007019626303855546068583479133195265713364273011482871316590959431751550045765033708252652476928884461419562321782432325964048824469947198501586637970551714166004548796648698772854920191345898183851076846192001460525437232595413772793824058254453046721535581417856226696210829551899527710787364571377016485155589989713980881732522944103623265306536125530953358208817411602140086122462461860082138142722065383909137802992862119978187903847798213568493601285465712484073948398015883053950002659558645214393532466377753041447916733650000470091585654073096279837365704620758421528375640507080374083852940669658401214435385542581983681898712404783726761187973986221452984381672035948553571089702290775772454177601733180127675863289699442486073856802847036176620274340690877951341320649470720700543128512958467146270481376882261004855637999650296135636232808643536551160573558754622017844612284676068937916137244111204554227120862152604869449140633898102799401244341923434880967069394022438907394890602804500402229671427816594705258796104023296074826189053869313435439279201055063718068547275992303379484436288890277130891748530529080405731803991306005584495178316051743697978038664387764615692981070654959497056169403575725891180117397000286412059567998695043925366302175403879741814721696122166407831388949605105137487263025248255150760311953279165728901234226043726612758907491864067062373700824359172076690017172402789498387358391105095074960241797944686925308765197758114215840673161248999334840814931991819374159473854465343171659111292565356955697158995585391161937364122556184522944888829113051455292539483743678996317042940530455979062769131521551606862025375023076373190702835628787993356107545000401219398482342828064677335966825560280423012211064021956879751644272125058516127927023725803048163721767915705594407122590595361924598108993500296088279429645635075105159821167917439713690336520114382136366871396056774323430826551262527894971908554127587029194761433698578375841936057687728403796119716670031053062092110668199129058350844296207620037639196568123642915346019249183856099263007066482960940429100818504619834960423904353604035559323693886388129019248912088230890812495686825451508016230776397631217430075495926016117449761476833020004831837426557798583519014175301958360384967078331761218377305631357069492482351774396553217409082283258953500336087090122683945808242847250685033748671403694137329924997135733782306245659409647805072825938289175754060880409209100983758843996802531208977646983519036895993402883905296240958752579712143303052909326043522447787086715985577938008617519866100350888387959749561627546999134981468894216132295364594405547744875516400309148018878696134529878614171694383691112868247153937460946206238556293498743419695821544953103158642233096507713603523843416031101921983895362925720266436452702859691100214929116505424936446700880163891487473741992359682560324921864906561679120299523062592228733835702165416957881636888420648795928423254517406664755032724323373318281416569189181271794376826457803016872624346498874634636988832662662400279299454171454718285691928076091499918720822043000394320197173398587392029138174174337455583941148376818674069482949893222053570018586090784888028509058973047334202615028942659341167780907028169108547002643555198552561658574138677063641872390339240021053940296179559914154735479168398905653431035861586966597591783060494186935774887861007466072210888862972296179214272903451272009614815797895382292093709881987034414095796811015019491990199288331950762859705092602136081969350552657475786170583690110096422170985775420453673062461646906054930651613717225888106273552078661727003603059370974705607850550464274538464513663074471400721788574636488495592477766826385501192563324123496925827951745979759937705797399997206799227701099114109512361327318015755742085520640118313065677970669931537127939616788510124386932752294944920350979844786518436081270164212541723683765216635978497927853421347333394722018917133056128367579533664326492186888323629979773428205929468609770915686567243897561472489698243294384677366024506630733730906823174418342399809762302180959156935219688222329975992477080480418068890589888892436495174475783346393313801233347545164857089300303930434977571215288751600395556896578965543894088866313396846351435635294289004688250216854811328264549563099288538282776883830698443590201599843552012108953478094638695183790815941334390427866696547693649446153976198685401003059857439893507970874860602736397758993311901384437610212115062172166875380098098131953230658809289261884248852627469433716525643889333252725377773717566630141737571428496989384819136128048770064782008984653606545762637026359388681342153691510326536042817371590685508516113482803093981859840703959150616148350202802571290425952889552208815564442962513186782512726938722567886983329857289279727712895021436364237992812032076560718937208654097273346887304387473114054400884976513016387162481845460011094623797264979504611711013703648717696733514141821921209229796408593571792404770280203411447901032332083591405532194702741643025265439828298280783262822289174311034248020888475075789728932647266772830022544278707740076847852424403992255789382661906816686087611185829105087850787277382117558898407344630614487515845075030331182412742994952027353692590254551667731781693707399774943103615193691151377698760766992132814916215891614044951876635554109158536808172589213282529273504803929601064984453200099891946905367484572782746079026620447843198089723215127845745519281347022229929086481318095159616164570040596694458513273924760936152191005737784808369194160281734673674647689158773756828770632098256287208077709002025017091638581396675524622453342362495803544614773514495247316199151703927405584306263442160470826822413044587132276465935967312916043265615611203974715385280127448098808607645935055822387786955566291012269756144810268016226332463685890250537922294851332043534840263744577211030362079254644078435395593847335948766769491503247404874644524292218824312644964291017286571766957739627617788400754014317811027813829585207102050392027211827307475194757195432719425681112338359626992499450495811692023016897127138290500433768399553116358659942227867046171517912421856154135332266909232715619686273594080129452016867899397113344400444317185657589293753360579566379962609025392194835000768311830236289418793007818370563333067743618571825258120978963957224626657675446752880275504279505580232088499726754446857082285861086081560079148931525101325069439327110612133565391726941955805464109082033656637081644533572697962972079295279196724922327127157553215004392314799041998678477766645019229998454477616457506307034468160719374358353274343433016307401936301227915772291879197699581128314278705053516804237059250631929030321870407857043717119134990714315205380372529753063380639862192102752203169371951855211781824787224786649285933145964086589607285845460753975685720484492022378368852896659322429448545814457797505442058416199564251082239367873614674017119748159851781852168401809629813045568771697783471339907771198550577468312422806451258472720061877558709090742734425709426175248154234861901200152652694372474167445051912884202449449903528160477437810316319748886502654167008016405757510786328440119687952809086034353604180228116105989412566306474704774200310352141993109461933407794688779109321133397512590026671444741121671894491155455214899347282147531876820333497286547084967101197877528602295171670269078383814833777933160822532185946957490011701944997711665211898634859600617461124862685425683860350086828394242147438908146760021391372526901860530864861749525957676171082813359996700402556410625285198250176142409205563722494639897967742208720488302638415411313856979225291646064940791914869757917513639764438217384531549895075755198113094287236313999094492037795450921947420416402244718326788174890791272485765451667844856464858415570956695187129639263027565069485471678737390444852948641635777313502927052750156730103844455794773593047772607036504290051137977136791869599750614850580901839600144210577882305923446627284459208442083695254154201230147210316726325774299409767652372455211285089098902264438720609827297449687062354270650607347345869122934508465589744357894208705543183680254655607408430318354711659382981934369486873504464006194995204298779929526670593387854101457171877024481973069447533116782453854765331847271195804782420771864943889994829013088203896529255986393188053403112330890512816970575384216650895697731883223112054306780479810786019066940300357459832404088038922010231988630801114965769294888298074470429071937811314615165497205948916113632822182068928767722133535026884809743331132031673797159920969678277299553281066726532107186242251784590736466329572313248185310879687633107705040380921946905247454057535831845627131636185970545845522650910917564523089152602491540376466286730152795530703414325754667142674898079073147894106098679738967915943319567759010474789062261305529693212849095205300227238565731372022601330838832900924953991303901342109605365620562844049938327953707565552125984403506606223742885628041563994901893084789180729266370487720446042683958994786842637571176987864598988062176772479283628547085262539975863744241918415661505112258408683101381608483745527872106938759300669760113544673425479801880346205486704363891768504241598773284879544238664439549461604227873623820148767377290671571457309882070128330182650043658713056338043097313802294601087035369488196027464337098216878064760663032475371486663932605618870456311615300328993229403456052763638357745217679609411612687800820211819332988580342848651099421221843076276152442496277487878482276416279280652006690680426362870524843278682848218765700446525799072073801397062124097829830764551984336420214798619952369817592292199627554437899011133577663152674366760607233247074449423454276327648536832385630495206203904349489361789813422660652722264773585556103323370338747207533129107459164240092058313673376488018920255971803259574637782578521026992307809439348039686834599831915265009756628036460066792071019574717384775008204280086571003295904380461438097465563955002334065184835331826721022727900865664731623938900143809223680826832933683335773309639602943256151091874950579509502271656767198139424391043838713560355327382467354476363429884478938592371005332120146241285669617383592720595547006759262479095712548069082253399514994371352936072423924998582313606655794914100725837450153875716986010479720235527959663789240602693603039740330231191942489644039510798545790294635119749177135062065983713826820145156286500387963187935427591945501116130825354500350601378639001709806451434577138988913528093871750771816588567202308747645582627783687198543278598632265049329789417681053831774287367969492277553340509365867960733524847873676204658901238017032382832318133129191912205462783777895283379916246147665990571793381041143690616777327836746929759952227271561679615632549725186935666231374322744807027485929347142512066505364095327616295262855937671112299619871943002197949537193234865210164241143873412771003373119045015048212318136532822919211148780849216310019410957936865950900780134235064204696591711874403924726958480656831016908382344148040670082363873348011985650771711267615938771803185609940476388459184809051038953657224221112048408615293928942515387166748049424894025226153942595133470579446579712598844354147449146551386920765983110452265075179611508253186151310817864336759025466250100945180985938077943218381223651306419941048967606354225186394988919890010892310491197175889919848582377407824268545374387775519288682712621294676544927256512070474033463496237983702805233633664605797718317978777797828728483885319230258642052753864306684622735982299218423445643870669738110624400409037738398164520395007226564976969932809778269195608962790797813679060983643189438408023002759947477306035167309086174921119243775934398112320702574421921616532537748581839232928288092365791559640394773592967089490015535619011333572590572631740392307729431240416997959138404726012006520400439430924142409324383531778923317773822529135044461646802650147445588727279000007173834731468614150303889606523373666360780084504114452669832632619202706373476564730349631931946897345791587470966992826496581087067638929157431920651430623638250533911557134419642002201922790186149141400323912927186593747172016561002814640439246918455518190085749128963663202346199199472967935095785042108169699984987144254776294734234177871438906758582763670281078555661533643117784948803729950231781904936010402796295289932321320040149417647848715951880740115992407069722913801156077892976670114315179946384389741536073315205295841379348779083306319979265610363682936795732705107431268766594233472771749496946367101033390089419659266631899326368597265899059109403328854333809629768412806342233654136289954067805539744553837637254216423287646408473526890094199866363898822242506206443413026442618810790446160954598045389460063455285994114241976123189606686356246550554734818489803345343817741669964881555185743543771321381885164053931384478237856877520068538366518699778195057982075855737715464458398887944992634862978763388891782768481726443964301559066730668902997520129998446650836473129820130103845662471453192041128262483401440290753983186551344119571630310062532453568885995193386528887498356613766687650670613978952435934940772940633926887302067107191371724262098903571404495304649278589097314374208209356797425408425552672233173314360843817246489882382392371659622483399812231536215955964761461647384159045505162200201955680279098196151637594472660335576131637885344243522835211808147990754476229084569972989729823916584119354338515158628913416574132220607707023313308290992698958235809167985145231321867400766559869529367785759403575875908728809011487406845818809074035825139167532802285938106145528453274604396927770312499744211853656331318216023561239123208177654260414000709012239118999896107701491562242953289622069654660357251225911839179583282984287970563535030910596725353141241572597133638430531700559173291153629990340095499454713514532851684855177564695108283638707762472036834460928699409321999417705159768616090079448240558656447258847417094801864991135868871477916839612716030052140309381535634228196303077090562025604586615576559382321953840942978280894596551141424927575316851214486273342597511721948771543452752633496467622327009204211696814273479616959217146033862726593263821675602865272314336320786174830392703809756997654854550026149225138188097323981740932973011949019625317428524669088843697760629929865566536500509694526797658865489483966341708781992393208161675589743453355929118729944473311004911277162866745881313420082531763081075633192693504760470214301221151758786564129085609170586187338196006950450654850965123786473987474055784723280483339231275355296444315933978853337320023654628342245604325671161040507491285866738559400914317408907041216094672219902933333201607291301870338527726631435325575747788039170698044104359743402670244134296986856689558657207194363147988969840191303749352927958749054931325223336823558298501271892874031869754458179783094040562249500417190186175033934859418613667750243785214744086812260277344589340611854692541471460448337293798910883287486409557337708160215555434512178828757673664226330476921691163687892511672092546895493213683082467977357206369262286471336956782169164522331324374364103012431369130989071502818591997149537044636858553698580228231052413493922331469907235500326731364570314168207198891348864056971527921920834784607907726237146500915161384010038528615122284488777411495597028838210285205584363349077393132234397019361819296586934116679186369295987272321258725143543755769294286641007532741746676618523036010749154447873336019420681942572810987814470217137919870005028828217377969821859745233359591610475521418291626945187156003256406214315895337611728837883592390457309563489196554527547578379223430130878992444162692040620838669004916365674560330028450483661520535739336012265011694628218622663478125139473523252618747366185388017831806691579270604973512468018417458018771368639505286688509312605917665750616689754326304549563578228473143060270288651015193874152765996662731299357910289142068495090432786709914976232208107281505291191699913432461991560719600148187801379461156648671182005318288278728402957429458330552907125738721130827343442741316331779927336047573723052605465645129666542685446619893255659316176079411895275653802457812407876281189338226132824523318397248989076657970168560502140776475834030326219947723499073965610576583731876139715857023712769438780504754447534377557409859895849701831591535705975029227576444341918088366628752521308708387573748379554982996083636526884734123656864086770116407431886687166523457326157008929748859461899246139786222902717525924600345231297137351907660729068164816497553250201798382351902480338654318289576632129010307226745207203468522075848493840699957146494380862889145158084315253318944478056893445817206117729987969326210153864559882595954566050116139584098154078849376399960744178859530664527624409746206676200802381875873035635657473113624768450673649937345673917827989133576869289048324769867096049185076813614236646283893966232308810655958749809296589395303474765002583555624006738158001765066696695012315664548272677039236066974552041166595167670760450588994535893144705678422759955452528283115578628685503135455164506519141409136916983688772978736477873330985727790317965367642018115150900225199089433337067082616515183861020617781765496370844032110115645102364396839782500709292447237752332975875478355379154380849085825673000255877756578568446420218191204962919425706048617918081927344330366963505009254079023719843719823845046311041843406895335867097663397066000592065933707827494587282921058767118693514373194008185437630760011491092614924958745381105537507633891506529390232473219598542273386768324356916203686720596581946815470011917682350982557495933800549120280066463258293834338421342743873975605006437090161320366883806389796672058922260677730102847564548744341122256184039958269173942948437835394922511888841623160943812399741015933798284985139280656588246263293457693339175828434901023435647318563284747387502213068020947254170710257202928370447920194140844075750976585052976373239957649251019461235702400026754057440383959248192541209603718665118714484106506965125805276793407673315168286317503948136582936546339168870572860944952479915916237433166318089071580273268565334793370843490800434748201161754837324512293648267949845427571589442644073490754612506779191338555648379385065170257437168042423689470098457619443497985634298452458235275775113848592297446712968122339924581425414049049531874970153179762534392745371381113394984712997391458373559939128601551784852204608113471972694417476621336593273523135638208876362300654662601281336026167954319421285665431518960490413475026354454518798566583416709163356090045675228310439039417518803353063450405703771904589948705473857544460208858507673472774394248783150739034653909747365164052142055120650165260903241503497986036028745772883771525351158457002542552903565419831907445978045714564913401051200053674983163910101533176141664511108853371202198718631426169454600652902701538601030422678270657459198888495176930548782062885695255478146785757904911673856270966208647615748819815195227166277301669420290868616539184201825289439586494006292645907705866204790189099347003830246520671242139545417085451011042776279317092039615520619107193393476104440354793819557928961995848972455189140574548951825078041572345304453857635167543476051742244186852622763133453708744534837959376512984418772760410408528911457500056217395490500734954060007122036851603295180449269968693090478901104385425519535805419105662594619327047176693449416606059525692868301143745500014095531728628064595460905357808339728788575045653520541848121128112893508419048157202836774726682993376214808000175912644529148858354401457616180697174707083959486700469150553685077584121633068546239783684051615749706165713183760424599856700195913197525036599471966667771730972926603267853454782091467367168891582141222894680310443812018689121367644006217702944775176096966252108411760760852974282440150095352059395526626484741419202600277704122064877957056810551306098809231643469218014131590746434623190264073213630864089550684516870628692475006423762971148497773384713045997968547380784122996973381826847069887787706299786937587902842401280335938544310254936365476131787312516047698782422750549599085431061026014922426632070474986533577133790537001382851200209295393987712185632697683939137020329878029625050421736048627991757903457791603791965230422498956499525385225631135416971147888867954990036717119905790951888467533201240861663227529611461706626415448213825939226992720309733739592792717296165352083366362064217294905311719498577742039614816920776776168686031279610177757585871504863182320104510440021397721924304253404784732141041723986208209346745387426836353094204119657205156816882212795878798137492599079606557785789909236309719266415033219356275677318661584370084285609411310217093180611218650592458885066081716209997502743068412403983176900480860642872380637903709583001587083087993978560943318232206332099294708503277233397139652929925013443371621728943864926684293325955564218017846156354476324569935334088385142122249642747353959830641364152326108147298861165801513342161476952851851883489532876987046022661811612973506611531378637085608826258885362662405924246005780628915374453324898962127173417038777025467913180877706532985090919986896901533254548960963072230290287941548633223392107451241113408919988924763730198619133654315967934330908765384093595642551369718735927130771154905522776797402222804330224372788301217376331126926094906535869913982427586875771464823403038950857644712952513556194366162804940854468083095222457752410822395675696513719834552956638499136640178161618657997463747581562001560761128954203883985248420924367175741355236997809949177073287893628109887690522293848562939985492488036772456471369255468988293872916295913321115228003335481735273133711693436197483543244535058264428911908373549110444499155268243719529871430731976579356147840497708090891735654463366088605430544694610189369373099798124108485528831132477596498791514115248927357860954438507732226252550977734955232303972426042973064494070122149808273052318265992969336228746356889798398728651576285746645445732786503115277040940286458817478381340560128660045805857316131979405401139184616267964174751162083148687932150794447827092415811729145259822467987040203092120810908836643700681720708441755650065577969831988266268276140651340216130446325090889456254435317575114138850663305421680307616825005583496499550929569705661992092474492318929118776016190855140433884184281240558896338331084134935702180498060864416196383679991669771454391570460803159656764685853216487572085027455998384248424110519198914596679807036049255965043997270737183671515127145720149545774097951652679110535031463406403094814533061493694308675816507452339179004908315422442643709392218509916359814396397549828867820096637977952789547981531779370232719817368088887051721190478837629182760073186985028913451563884360911125003085913542202690163482699579941823495394335766479665686825576524913173196519581350600355900446277001931352275396902889344046428548312664819055457353294314730399095436869801013369456140975495647458254989940884525047855488680588064177755306732732821751216205816285732506534857719209910143413227782098055840102875808611869159589827483674776743352230822820395625107980553525256697672563382678718203538170891093874527535511926808063525914656972619151912827442381377599927749539968853177191575719349032186242894357465205677327652433623819700976809019587115649374074178596612080935094838858723448971470915899516281892472214792009612634594326108935347447386009072965927900452761664376501658235413704784169667912315952167708234373982751590101335976901179501526936243074964253007706983648493580530010116037811546241107556712490130437002929217360440780927265463528864742446588120772140313255035611035393019813929605580470548043065738384639182637720044739230873390557418336476071665043799776045334784903838754400188560517932725949673378011189478641239535203571091383008048430587910898469350217102111345326197413606075355424912818557485722647665288276095095352027584535926864225654684409516352258060389780860917597980489928823281697007984500889055831005821431202418604942730814495798353148751798146855997410366473002206726105094905511498901101060817580542849817713240430864475183711761347069316419420589548450042949633746483786447125921563608816666305911230462772974971180330740346841689872479817898600093671812325396302951616063583332803449279015551042699782709766877024964700447533673034250862732303787807195616847804554985387260170881560898921558027097995667679383930916882739733961019608212588587964808783232999552100299952374397584593867769599682841494211330106201711611586523650393415767984790007368451099857247915034895100200996981115922308599441923834118773933960249118651521856122219632184102183102215543493063555131302025069774180951592317836255656502650664443601362912721605942063715541514075386868792998164049886117695159253384590205708568288566001763920698780469926072807365482224730217110076474304547033102368227075884059728596399198728890639516909450650238631157553797411186716178588625807575569955510499922933362907641137957022967323996445420105062565166679705273739104244012137536578904238391104733765544168117421912063830565553547546563268467665346068948008221528717425931383696943579871235768993922026882191695480242763059916245480335332943432610724293742701737406729588334720746514006911493348171625988338102980711395050246358581324633895950019551798191286142324791080309915365574901302060307007938856306901479495445212429449071226073427318464114485412765324802801679676256230735804846259236290182075491425571635910146255994485438219730971284869392050007008831145087244451912531086843946443169714875865758535342097939242297285992981089505813916901790478210951721762548483104708554480129344985105811820208228878771351966430822607758224844769293143767400725645031215113066456259376013193687790182814945082640910912313305845509278686116414939991751067689445982930329233515966876773312946078604585110490070358142737638861348696676310337793580566477860898094528576783728732169729362004302160824812321329008142259426615802021091169901317481051498664498752115265202866371160454055524183010084413721480966431724670614797133240715595259701095729441878585766551434274655234558768051736315368512236887459456293644552753335096817288558759586964629862800385777186071398618669699935686785892098693575192405047982955022480620419514693085638874291955768181508388519181345625817401315546647072584146444072395870797925934365701954361981419695714729901030366657013623144705972169797634271959761663166069000541543030499536376891350412581994766999456615291586302563126120245381179018189553949394408056581534168090607231798504835385414388627864477233196373575605359206574748017060014500107090435986129633390943978047521549540302045441150907698797352414527585027772233529885152105304499983122264886729749639632360637506116109432216747410184600738562081647850831416695517639934095462456394028980477001037781256646246730222899872790795771727524767330161838214988351376422138556936213988537984884250717472926216296302096655141806250729741357652252592898332208314155825739818306976315301693207112365424845087582398688530093367359783519777896313510961890189203408054826577614864372701258650211895020341330396014600588096003016712439073132869589863191979084050893615240790353625670214938842209621276450811453439808124686617058953409700233842905974656260490845513315749071539489030894108136546593056974840947986245576801126550087550698882917076004711396496141073504835825267280955050272982238528434938491746562713912018541050328717749549957445192301896792583885251396568088547611631152684008387874893527299786526131441354904555652200986633355430483307335665149467026259705710903029726136755066324917596395283004673573291425316052297208225106735915369448302781102361853295585297520261899061004105384516390029843630083125982603743364495333958076589696699928257898401932164811954792012728251276147474814703130261437953423506110005006512554701253783461897586304633221100943923463981426247114191433673109653125109408157036085233477790411273298416339581772366660315721899240653939415417429330941398773326384504704866742338907135413725974598998620299896326838039743843161554364908297404910307710201208960288963298159971145405528696078944453437288159947101457294694977278366627490647029680109400892784744053635078197147285070406304551565933028797331619052891353424721311419062585260802610358924233480724286507544290017274639250843775941755047519841542653100386897397811463247082296002036470352769350108667933872596140756528508404319170917822522649519127128119387918466084908474555802292923903857132375699829611183413540957168351964241314525130345593382914477820627607482079751200060996030222193652542506099726109644304226419634640530389228513573836238291234209526623325693288900240409794605857553755642013167461759074470676120832121718334612288350876916831511398077232074696068535016191166399182864749808850512718869472363761855716539879519941096927613935749326275037549453324167445654820160811312571572407655669863821089882153275259234712098106519488291456634043056296617105810762585066976245172334656396799777423597635314538777148121582172189593287776524260160606014586238275510243224800908575599729507101410695802331367052255928889954089636926847095344724383373596355135467421109750476332844612972604679363353138685735311628134357485695266846775562302216218592300434661870374756165778685938596317056238799515123193386718077263631186001891808363115989229574369422696457321258200881270206289095765263969557238153888302855198396118480618561749837823732062162036197049772029076089902438930461115558161260800005564083941648894357727017080087496752131529558860786067822153219032757910202074007038266271914560120026035836820974515676311169771496122025116821705795008343799765422561799912979406574827784915772405807975057762108693566113300447386075034206840751827648208171150788085678548371854332532370915784275562712385449440452815965274095693781911768943177705120207632472751493079542698656459812258238469847396225661290752123615936709332180507924681474697989468109564013978963853983625854121432306710859818747150653473609513698276875390419238424749137749933458360523132099085419225496229283031405747042727683898694898764888842720252092354818691615396818160136977172711979197224464676960263583255858820833255905877500779868827049659498128086973047956088312992200785824434807275617711919515570387416823534813982256993240024575895421373763005454313715371627159785419341571103470992961046235484463857086640620932731508582486363628012349539254772408661325709124660495114813424453063883657852681811437481409310110602943449467335341309098588266738187231351199094284896824177578708702124392390072365605588586003791019166218774617224421944965452941933748184887458899841099627211709593301456517904578330902517233419998407724170142004776176220230580922259558044350938362930612160463923595703529960796794470995792511206326943359636025512324666783287346595646645938991110050217478584282982395758061107562058421285200885861117590742946570384089860393531226153620623077384680561893578650486110372450635699075084435336929843323111506442257511084541729080143918447648168018837331653255177505641897731964348644583665395789144910181042525845235882295238959093690889383738166813781712723512672527910509276618980179293379357885308788871572276345339953535632870205374090635381906422285473959598712471353763454637985667899051010764445144201894594507361569977977215994990675378839000503773546203599392074562961029576927891637154956008042609132750825031431269749810458509249186085953464537083992949483210714967639167039161752525506502657071680504763781984291350055422647124977054273600723355417447028284019754593659741116539966286800238155243915720167725588526208381405507791115627099882098413139263241196140803477833263542195869719976622848096050241789689908673507741228198759802075686435119798376914748517151860967196071185668862880748753914850713235425738693899488071625219717617540068057487808346782191271004382340640236489068709438963938542710801235532850116672253673358527682823968452816717152962976274674953855478835891107769104255227636386685721363313551553948959358429900192419744654099458306609002593330723773400433874016054230884760431043688902233507438564453216032010869570118717628926457803512941769104503068674722628292931415765185917290503717282146912867042100833208093127884024382367825221364316157474994051984313424203752756113749592277614704063118141930809857661489732994480867201613450688400535285401179563218175578162849721136624930894028099444455037449259647814904459761036285195802464922966998155824239389844634143391092363262815139858562065629539270093988512187011530705923191340178330315542719573956620433536932749363435622899764242627632958285620362377709778403369423355494403534712347110818268467804056176759449920756812445990922962787561273593345409272800912564511483065173683713895538503735594657249652827619332662524346718559917667224349521802488612556043241620942929194486318157278274391738324930349393186134326813612703250753900919362394994982675105878582827631790498859692225798662008364934563395973867643070947135036123355335035335375871281360135841354621269649210973301938688100812913656486074555776173314709667277630017510537776179092491580533807996032615952625856753895009953346664968248718407435699760855280868368009705663360836013601741016468510105508002157023470995620445122361956219240553164219491496470185857028201260826669496038157376630389064206278501881190094274856690296149561274777199500197444552556527781726143205608445605765102702040339908215481832016280444173670268865671224851558782821536426333218666804903956710048790294889700770473449748145754240467631547726512686467380945144138357488732234322006959693468552143047474728563714642334583104544585414494041177664400484641492529267109695403215128714539943945490356745583529158883734135988324292825102225779234234182105011631416499901593931500857138236944078896254430032721239726288437764061788286198715185157622558126766726725305484087516818306000158283632580940647514298890170423494865455591289071741411140477571403646221567465719962839477691753423329143295688840716243743992551797404760713917774995171937495938786028863899541165062446065431994086782108366340402359854757578688410852393413510938603059789915880750013110030092718011551277720272735150845053608043815267314167621488953419317638856429760157225200597081576895272625524630618463774539170964926169317730700301237058553526893878772127680003499038876749578856466040051660252235420269825094030607612309711509251905089412266505287991639334661584091742606217297485978198139435478157984985931933471868256251065587967332361980124808685861651666370458212094201650747942589885016540568336106359459262697326881764826283337245285289435473446111272209481994511091528685947262202954363865345246437945121874327578538195710968937691202788522783676333798602451388446025738097131828854254998927223422671417796316830526687361066729930690575424942790409427285339350680635541545961986161270875361263224770620650515842238106070073721065334510437254618057782911915976852444158653906804080824376167289087060156376572427892927572154490296064830307488365060344527731274508703869338224490140300630022966249429318952801453089488301783169140719591214084480988733478630967367619252680011312852411561030798572809831941129373181032096103489617202164865734734637343411990647218211118243340263038788871415594006677186078988911110732200540497205223056265909017299207828832249716129538580226870699889691443104644619709473751110279444981601837160706972351958214451978448821838238294349924059683833359904243552110739745480684913792450787733688122048477480128951050406342770248560966363820779683868897004769089330437640537872876903510154727485791602038076152247448287116844284829559608057972480750332466087505647408408967225532721770722481574618481522516319842050958194299548597375898099520231684177016002718524294201084049090771494149880960735510696000827503725070524665238877905861438228710446061817540498246858550955742206809453483463954282700775260918180446997534557307657696114714370782792761834033341270527238100064225758404274542362257533864420994032048025207795483665381047744058504556533611218847952436455751839834780379265462669131520530512247931232287088466257408068786409770092069313071315086327479528544785496258858530290261346586380180664906919005276894079176046386413356082554282816217449787775506699728674830299265905857324751127366297687036869906654140226663240563824468370960394982184862526329849675405781740771332726740064436529018763416779981024053334335448689917329619252883342609886579798205026371927927953535744101873646914028232922882302369629238979026272379558275601889150783943664988468603495382164860412856713488475642957646274080295657165697950277458306730951857628462426831077235635657550850427296062005413719158231641488353449388999213237402182334419485627318787522470406358738976081931351116013833291182049557300803953033270570504494231073678164413368178671453020078366264395950822113334077732575339935118763233404988088537845509438517578070592444443799730448902916956439343673113935842963204540391435442168590131386096924626789249739046546411665416639145276557552709114210721110192058455887385758996561036039968762469215109097699567934364434374296939034434638542353753715598059410514921505703626694680989033695941140653385171424455171391993978114575357348778391033494237026204819099712854860313647771676080696918485286471076654323389221520622408687949502835955236807734186828673655550723110751354069007939602959778664157031672577612695775224234616894025631498337521187209865756307023141543996811862985911390088648108797057861159410881015877245250705849667673567083650490897187892791120026715908851325989336125541029238247748890480863582641096524405145948999292127268939695087803280732840464518518659226777902763960603834363157463746044829663839715099580635278801865751634976901416857618674127256276882354906235726110869941853699371110183749036777507204546805731574525453879284996650487641728059087310911625148821288133663640974860287738134069695650623179529260338960684652285478120538079785538888723948497629194488891467817257340056078167278394904855344146653039284127475447157942083202233795242422907457447669395894092946708734371732275627991044850389593088096709174780502869733399518860924580812821528357231398143346665555239622947890336722663290656907530434998588807146583569062945173210125560529742034135636576551886341021963129175203792535388023015110492590507844015156404731442173558472851550947128228466517500799095215868438644119451832957926101638214658141196107515424852202487411292723502639322230323753131885486512379808855850664961996970239334380103559847083746315432530424430609565428170093565426724157475665749991843678776853586421012540629939691925537891313270393372032429143501020023745095331131482620322688166867169832136591427503668622291255197795806469125597700526526439605175102304010150825718201279062070373427129216479658458791715431270832343782267183184284282897494349818438967334546049428206713640592569192448759054120835832806987186195260808126456908968034215200140621970308261220578434573337871657762831671218902939204613877438114919209329801890906565665085306256596355441414091486373796303195797584753693438068308776426617657081485602578821420290687123763532052020131476868776817704077359933971873657144839574067384606251127086499163772414375146378872781944782605905797598514919262334090951042914137057230928307553408417540985918420280021717584891599276805851854703403796733943856994323207994226563794658911236739142626624387016251643056696472371989688497965130107570454583949635185144294004581305655201388868920497533036248432422010692798026560801118104610485694077828646954529090679410561673676020030180951047068559285183964269332635439849948038582567005616686119922025127521638664235581075349496421772933385897379273058718972423812685408113429734383227915327841337392605990658338236627114889916339876742823523726692830470660574307355969784855033901104289823548053650466903550456167070025537020131212799974392721732695111119915130916832105162377844911098687532783142744289618969569511712131682591094194057080235121383804398253632768521716898939387019232788572817203232563080857018389774813609676976104001153972952139878038513069787506528678873445887510898942972078388337083733366123125759936863388042491535997065738289543610733827225632731822541913676444357866665710349796299795619396396135950196862154138199142071303278197524119528426488915651454967543111631947323016438960286039929716240057638732465759403358787576723668679673062125419687214752252935845312145717818341553247378369872305750539921733338473151176945885884105575249798690145128978287960643501661364966425203831365076494050535115386191653025829701275317403349959261017154822701798493567036303407072166555176238839693183857962167906532057342013722518728251835378818667516625531718475711922841026418775455559741579812136626475593579891017626569383886996012034840232292474023012075121426587519185169840900649585208623430174239825235354173812255498528082942555292233135691725937780814289321081411932595092830142692369806646310242193113966339698645733151434292768200874755791933834196804988395902380939871928262137543560598644721532243592889414379327709586158463958800956237204687180874932183413557104712972442905847028132722541168656021738992721231748960131855851619232080802502469775792941271163775585367448688127842418119972390852426224344225341461295833093151866825375576011559177304847853153208542649943866401498035873239985987368094770953381556813451972891338504535749162152611761778195268127724812193023105635439261148185277201062321575392659201339609890082181641061912479426232175464061147156214962557747066274612706749127410658275391668952460077996266725967058209600823519116427434998802312335155281001331796523968660852518617523389946243732111831864021767169693062541435375698497481493571449382910409334786447397023017398063700765924173398347054334663638434582650050430887012776282277176412605946990109008810858902891523965374294591679420114925752715944639494722677592728077733352301333318820584978490961831572505055333085766014933577608397098751880986251536965209927845739180067600088548092143727907250205491484547118493254484561419772545986718883159094586790733540886531121529504479528565069158292474612996075624533846883926844837865369883220880171974968733185554810475177955784394839017302310076806684559063226843436439150654812612520239285533823169490937610645098925797757657379081468804200348184052657442708037759823814736913063333739612836094375802421883425530231020325914537845748625267558080739581637867169660090377709935006159291296307225505668807801635472547154820309151905169664961218611820546662336544571985304873478882646193659978644074385416020445452893093265508027873726918069120653329829305531767610110055041044301520825213645671737070401279492913243828920897055397823845945657916452367337259437510329261855878719131988674757198806452067303102253622735841724593886259900683691162031218431382761149541748275287538417215444304764587913311907972017582439980126209191109992481274916382932688508790174943982116977377243685663973161356494787888109183288380667768941839406998581504228915344661801904691203255737218191396548824407975513891368441246701484497241545664454381002124344082418336266032946374220301485220665165324119301872391231235439165566875554966965029863153448228273862148582613813500146988314585575110992894752035271220428245787970593189755953178595903335355074332046922619395758952408610351663597123774759942785181271709614296494135074786031910252230424759427626327099022271931438487103990846923999680809360903976724486821554101667028071177374888022573945502608989282616303418371662641344397457597418798451310384328476343193607273919823880104385366264311818122991718911253911076347136673778410775978153896567011818635558920951194768276356799618595137495283519718773506102229304543698718024477086605965704313613855311482396659440105450324408408420902291690264437652639681964837233183713547276876390219436221971590304688039608288211291428477099285245673721017628718181550300766332950401662052152244972935777682297817718172861355591977567282791115827396432940774889179215981229072703621374064289758002925883772719757452742157220401365001255845729229757334447998071366080975891233300029350318250742708725671347041803757600396978801198115086591983470278922762875744126222961336397389121601000884646541700178340852827962525601864293876751807709928993477418432079893302032301625204116203460082545882056386832336703389704816871442860687532199109176163460831801516532877179377971630208758030679837959276509610262900813552286384119860766186243190256866365895861480777038702650996144204490580413050188827328649589970545412008024747069631489385604331485202228634157870017198019647960921880975888516830253014313301374806719202953147242177068323660739090339794802790065690347358492899827903852147597609794524452721942637149965706700509111397125161872889032253240289114870998660686169077846076444317120597624665307210566778057458147308649551887280838031949353672187706045610778414529058130989900268847592657730290946724850406308531988186425293559292806482433755782373868583472281534087249488135002742135113078595663581076658760828766277281153059377960875861784813863130439328002612828953496712386992637694409529150685383133808844960850103615277119506558131431232531576202061130679837479200422603692343447665811935474580831277762992501445981638313259892331168898533323847196343219949081712415526441425853590826100922120455831990844458335072728897015901075283944042444167613984166943911206191554743091110999373148998553679058660659728813171151168651115021614861470719931479320146599947278961378220932334081874914224242907486225167072257351594488273145032245999548421069592406989474241135977596163601510076460213110522133740368635928054584993430230569661095931322850204788827665976029661144948290011974905649404392874822620166085832492521748583160098730961449234230757235395437971021211206738345054254244153293508591254797159988429115332486465154213116404250808833155828454480672775367313722341978533865494747976808711404388392289108022164714121578134218600769438331394223000189643966225101375896273777420457873305292056185250713334808627696864693781472695300373492487461030575796867064334945547641308878477176278114244446170453818807291921812095164523141275997421766670967499835396957550811897623878522485702241454070754367659640850470156482553115860526944635022992756628841785862404420261523207583997769891552143906607543464228222957428156116589996821670263056382789858271113462181764413252579797234507576351098027806177040457044656059241086789490578397392447791002263344766058309520304948479982165091542274751480158883640252303131908091654379610101886967128020103144340331942942797871979219685863105227322122213169865185633674477184032075286281773686063836849653616145621244376299360705638214392473218481709201419269090610551401284073478996332343755233776758222926340107782666315943626949473298573651907723917533821380626686652128719994181826725769798530651727371424742768477842464848851086508148226746446155376896150189964264054100098932662462395642711302391309795114833025207920694189599920076347763465016248578263902857571703354846902809977829978154303310190189900731747762180386515714360563549671509766197131902375890311146453716891938873774849473943911212725704142640065395489004807393868192046301026432979349933001796855993854622479356467614987301491761103828628147805357463902863215820370392310990643209416015044101182696321750347533995485569207012866058697335379148706600792577226155447781687067307434920991480889373024042919842416396638158019551947052469954350190851795745688947322794136781709693980615416052409418016296830697441725992021901143163211711140044885753043625168715231885329349859606202024072563122979863444531636839380127891159333470146104932190486479273576374552669504141523040258729404690020448202682292423862265020163188330384988435891301632647020192622985901320489672937391817829326119614063349078968551357123001266359386071602643779340087980129335791443737892396215884914923529494273982297590612308145844184345693302693737350611183713020469743278079504978211891951343490395939070447130000672701486615104191391640394457487783592590062649022432249067051424138464986944901841283726254456113873048559130297410927104572657927839401527045756811086329852762775728976931524547821643937519852198311007614712067409896391845598247495859023760538659449794608835515866948364503720554973913892989742690210799137758351534754481057425220903719712161173120951186743614648331532904390829917722283148650553514346658270404118198454377820708122218427773670059544027334715374581754579186940502495803919760899471296112087437149325306472496017942362663358661805676981951605978763922448427421879291765625135135832057388217306980479300147758827375031671961609803699280057094020029288238588206368836789336094965188517073249941381743562905541001146122448127263838141312097868885237587324125657840869391043036954867537604659346197651994133828511049075019295857180393111355817703102684685406429110692677290327831842062380247311777625517229474087515935841390209600050044355090358200970093857731622800694997817065558437691223176302835417013830080810812743378228015081055365132043557374024354188055907457819412079438320804624684622976961537858442923183732181717396785139530159135323262784049886071193956701743308588899612379446788959533846008413827283015242193088462927360454531548520811824767465650188142600214404238560992902291233278091755835601753468541328377679119068953897765847441372390392266311596319901897935993080354448776086806575459048457698998707550724743609350006696374872610993947619645574834509124629547763164477399776690020975042963347950200484430522487569101038579136682698584137579498193394256559904690138714778875432266354367950837871195432377330940264631635097507594372243372577617596066788685558856052086061767580235189548017199925695336345461686120891190039039079434952276323524154649491030489348102509870374915948767513612892777692432546786083539469028251505855512387012151064335900270377596544299258649098510512046091943740533157042814464851683810751726528752982823812756379878693808348500005924660684620814128618352886961549501122075756047683786868890894237670761921361615173856014084495615223263317229343344199144928456282058714029078433683769984533917539098181706426521391641089916405329490889896461471299859321427936183660068143310052151534614321517759984637108508770115525944617970176544692190884016672222173202931050842164727161696754315316398721924107371987864958645708376176045600003200125174665653441937751750793136283687114170862684307660297322709788650470174434089108224233595625435315543281293509528386494296880652432639072538503866953578641606606252151097952720562770426596041963686059481097355117137060124942472059569741867440009911368640827951238366332991574147314541253038473104999675639415482347468161858223000615867110813843914490368556745675332458706227030157389999241518226202127216378246220493329707608781252436181690089549392589211137319292202393810797675497116956056699864359351694615358460551588021089070243278679255536233573522813767826103626550071991763123245361798364012957108824577149276556076166560276171208228911330370884741733859291042933092557624775045861415260927430042999164442313520365606453074714102453303434962953389106689235787826956068000415429458154166083033924885477715328590079789407158087423224618911244380250568761497952760068741698687907987941881844683365553334391679573841496171846008328064458372532048022100968438191078806230126118151181953127087075558838021470254423372776503464645502195565637960788278934115065437041678188106761756360427797372100132150363863635044672760230036837347196489662553923853255197274094864168776946812718762002490996340996306488416626699131067264582330931545484206573042063269320916509666032977307031644643750303336542288646826242335257392704071285032832592852217702788915353182609403392004335701209256827255815817501048567847052321081702629208069269261513302264103610895775395681731911842291007911107848004724939291549059129420666532201727253309619098383745278705599545216150947842839994791064652248203789449769365181723727407213299989568325538287495064158560687530333337919727460754996426612181719833435319265589761362717975067882762289803000204852961070239218930391103072556451446579319865091695175686268974711236947698204929677243812452974868138053347246242902139584011745837770277372548033613067514255537100636544913636597286346696020883036148031847847480500219297232932530377295402702108116987797911621560140203551435517522904160308127410688076977248786723598148242921529111015794417339041472054522624449740594329369583030748670929095709156374601628639587881186700222552306954801852164246714285930284070387727581338808157497836581378613841456370547336272622420247131980685656787322239708503988301453816763477283237828636538707026911514992722718880211138533297177093029414700411686453678473561294056494180689561056135563452942185887796249960576972323671696108919766587553436833953185743898732601826788710245142559545710592277193682966533587951701238113926227907892590624105397859488304104551008194272062525582706725839286129579710169760586980893635911943586982155849491148886529616463050503840287380657985952774482132131731342786543984293814713934707714437365412166846963922920928498179008650558532891755394004746267372215900668571870688239960049956877023083334013918963642239100903208171848976831882754823475162524120830590767976160474599278494359760985987810661407963649466611449633059891973347054899789647070853132926929734244587785839725651150167510282635328931748932259819940935795620805687803036158895463615061301156348221388169364032153543698790511484026074369252137845333457349059473349956877180024704100287336883003366977144431680850034585508855036921990431531439154536234270048492571782220025239196201144264095072979929681874703201159279759475387243030671176543193428672171646400982789928295113593440395581921435563516212313828779315660580077327503485743921091044950699078254147581611190732862724114444521226684463870658784124385574203202181261310168316141627795993074497595820481516778637328075482933893270135386373894460390989579868658789927365354864317058861187458038650944576276995366591463715527272731330443948815651678647861369692586004143476619990638785607608124873309444989343218030402678797144399928307335206150572628812659058675586790710607683778782566204421145584001035046262668529731031337920332997372382733618561309430150700846001669535869583780139345255228911764697936494105371474673913404764600855617254174772416277445593281603415578595631076432820534989050914354151775729932335568784318290706185129703388716796988893057378878125003325811279249337382662304569117532944596897813848620570377388200990807028975018862343092294827338153605821412060023363948075872087625787003001633577832267859485820658177016213725074308376818290367026080180189600903137056708812651261608479946814579799079203315390645164051245229472952599822187217820526262885527028659772107716723860646841313450786180249268155901453639580991246591534627560126608630604269725089538246732044964477329589587244140568413891172203851183930480051225199902760409149256448969289878611142358235501461238794646628956118859017405061591428523514596432421609953370957596607799895203482672907339614552170894939850380865890619343488514988648366109337354050178820411357307768549248360942108046247292981853598050886490293155386710724865625237826901374794595942778557348610281374099637294984133583240700333289293729796740545437491073345041449877261963023813827373015035951018858212862568471662303856219021349815676030025565725705726571756159120586112185569046058550189910235746494347930350311573313968184763351874635844613288096164657533959569650226390304896257223770640774041178391726111069137235931883239139083397548739393351134714976958012223044050816743366061371307340872334930852481940118415533101668145082075277278237062757162071399376887734338369208336962701394922489553982960992083626602607093183640106124374791513849195256150708663302825955871327397847888471045649604912431150479071501711165581447481796309928604230551994048339837322257452536093999701250242468173892282533938570959577692049533676792753767036494464543246433282500334568406400401280944318054329278811752873315875365238990868725586541386317391287932984218404338719328894151636085675472430184671249760413387979922972918183625581999850805262676577364109370782842146063048612037815848082840659709817612589727117005097612919057381365596926637542105310586283556959279425704061324298810352907872976566923932020744228676393007115292998417587663910503167124589251289319238607677189774611939528781364416938913889164394381213638306703781043040778948783384806726913198900375319776124506941863020126593867014324010882005201223886499835038057721061680392668337125917361406829354456913494744489819145059747096285720935749648007850739604749968029879649274311956908995777260499069251903344864851601384473736458633312375847410887702015905147157060854066545032729880368350268519827384731362992727632039527809437138443879583722295665568291497769255635263233478436943297201451517945259976474416864834726824238603962129648458071227703285126569983905777659220074619183515649166147374536233209479798082576650957922989910108717506016629375186857622009234692096982401224641294344180312072451690893368026240927473966090804896603756531929200738737052781021392298190779607000007515809368231138067463318888869008178274498468607577478672426950082458235932707720816775281176602571009499668904162976283786515935419967401237673751613833010482854647460485253209038520112271564071561351680385492331777078997608147832248051016275471556223650143501881950964204252946707223357686413082664177886718613710178523339760284993224277876311452659868186065142323751971040508422597277369567085090706148482829481639724622265046446078135919762825087833815082302813346427249117093862454040462608750002147982288556916456769460582778435386575398272397606258427483576472380098250765687110516796688698023177190807013701494742719958741015583626595702985424371371652987383787459554244528413277018111813668779345098000621744173653935790069772834395597771565488608592777815274844899410643604651066823000427452451607445438954529805651256197761316944437194446875233776400116228851831866215945561609111324301102793631954783844998803771952346101660858927635132340492655474551291064260408639616096280159272239020393905681356818342940700346902325314303189413532466488873612997060525601773968869415497903493535206696647208978308372521621982630018778478889129957422732636270945310408771426566944395089740270667332148080526126806941856071014253662069568763912076846792634162255784272549885393326641440005468297503664204672447533531406641977931233678258464985433805978046756582004416692113977889684272986245966422690299515622117534130560838810965444464083279475380943588434858082833411525040475205022984790314665735943061076798671680904198782674372808127356445738818311348998113639290101601835413101934466238198214092510676927097635416579077873663080087534003691840445310943335418470287813296934281107640740949949893070651368849269818560006912874981978328021013331420331593047453333013664916258579918273935223202659962957338169221811431033372583367368327705294866230243181667460355531201932723254029745537687693766334479111741231090053417978489508807421038615264101393809129496126580861130257061509916300258689858441492041630620588647342438656298240447441377511186656135395877067289950968818057067881047926278408821287722776590812465881525331183710933042167249429790681896439872421157245495733901832184750691835704285177967746107781706822500154050422391102669263710549650398474941326118335771857741523182175407880538563194646029118549745436123551611819652522057493094093283181744732602159242334303268001464983562612359736612889151407620799286773817735837871383767534987915496519576771647159228469143383500889524004464931072490367663418739829718108471641425297421081963613881752269360488086643995557490672859062696567704321860425164163800620064137144453924866904481301268504492039022723830073089321827115587065692755488982628145649203872543496903082183737938601103276341968057643324196976979694921442439895988639373014468327305832194036870906721698855445700784230888726496648315170922572300232037054761538452254747847749466512971935949976980516720111739194953850586143559482587661869529634938680484720883252789493036580430493561567706357059710417246393313360107791027114462069305115830678327487532428031187258755270627723526964954012150552461145712576608720515976717828697216404032104190222579520265796413419629161943972063569539735654168544531886379671977926323159679409268587802006607255318403834486062766515549967904546399852966700018784682129325636574549809990856309971371141256076952518588295477726609351236606399290211177064031061106187816431577177568387386414691864724736531598187105201912725878895473302437706750303628283216490910549519932163726956286147030592983294582806732499826617004753927664861847874403345763090200846925745569461981135946594927930033112684697724193846169925479230980465251456176707250369801457211942121430996763069832319575325795093193046046028962223643693814736095453020310913022832254422588098586009725188086558993039879726762788823212050204735800665372716201691305852384136966863410942795060176041910130330742222415563752664754579489769348812283643425704797610274317133535438821089673419785062168931940351352494905575630167770836704039353105552319231185423255301097511649648396127695086581546539142756999169554189560144128839409870331729299388873800656585028374872108471504572883352091323110180959765824419577807026623070922959883337859107061060318354666754983980044064751484288528959894662920903365044440763771789355515544169304075986780042270460079789923168267590251783044207884650406527423363156365919535321230382663631217128795449559440256385688076674713440553796503804173794072240957354853102954358775883339676198990696982666022787756983778730209865829354382818178776010240584562018300139768025640694094966902075966432731541785911255980098009013213337667551041617506950176591511791773704146318803481033510860823747737178227568370330135002874865463169899511878344963542513139492889713627973382507826707259585694516919424087490006870749475333364821524601495389110935353174740263919209899850134710164449739057060559473070978062365795762941653278831590278027358540575709851474249877109268901693449275673808040434960292273128015589221193903684332031211443706075481940370322666979152952775642620425476500713046245616353153042799959678686881687586449240107072808299602481654194314314504510916515303772248883022574945131745603560015958540298788920424641620428895236702897960761241314643100266707408522646889068183071909811428198548313940467002711047157740465384107194484083519190888639003104739584918046659816566387806202325257533728620367425097925336620145693280844220712573441713291814734511692922525449446857307240997011409689360663614104415856016100909404107901919632956544669032823423452598492212419260027582084970320086623761682974792758308351219519961388725322469256650941036378269029514578738665652033343628631026630369085888179185793362281121594592610212839679988155259445415584329018893361167603279754452877778433570610357419346465518123580646206674915314511900628467592434785113828254294256526441832366890811471620692241560377966333394495669180495034788623421633991196004851835578946606309618006202762422387351540318101702549037306273852741379878538264711636777241397957876580159370794084204158462093675052105284669278218053819615310370552147619540423193891675860907309970808872947036247157778016666846567314457875391842209589180628098376985266835933737720066026688144376179477273510699160429206239310670056388568550786420352189258297546180945002201173368471548285441562081213361534881167719257110578566995290117347109249806341252024788964002187848012123116958155299805193241460594531097026155727707529094610713505661763953114640916356384139135734080575216078010368065272525267946292430571666171306974665352750006395437837350289184590692936713955408749143214261377564017627996677929953390412999387998922879250535817763302023334427152892940424274271888264308989225604219702888215138402807371639808279128407499795582353885578850829836853266708801384492271758651720556950934729014446390371571932855098086666854789926213891794825652309188451407401973518333503889955574915792589296792111713075071151970920534961487524412248196491731780122268358728535743294018784460770704081409967713425883414063558651545437570499248836172813582505244374895170478242305574300062851402304676134582747875197202314266449701708072945915984056207111619252482880816893783590002653046205732412954656105903526287573264931863947191285137890496342586966737479884565673743741962178414934912705084652127609949174497252678642649776331477615928554312302110941182159945317743553472206263620469225867556654847188520579204247192491915247298956186729387140718655136594842614834173076926397772694849957786859140751126508352240173305028110708330257242612432865215469145516124066924503395029707237476849234524645993516924479003240058650667049437301865761807123117988383572362018391399097538870068837876791660524371477711107998254352092441615326088082352274063832620011851142381984643642242583348742265464747743737683988227786892262208635086407902413526010519519300962109499994398597216058416070548806024174608798489606682373755218035702805667143963977778688405107536028430100389596172162616606546358735337109828491936866237492884580760517813020457153176592341554228794905867871140342047821536495690466758072025178682334172043297590398341386002251541900029387705148919231881595778494664887241970307738762263285083227107821136315335653412437201154517369398103322469076349717570679334413950219758185156201492556289014737715422020309648345457424189580184695834543771420257257973977116242274046082637314149530061197566344567297707336229198332990491379390236974276158922670821843109468790937337444448817668937733330328830383419541025422563870411236338407448719060353543509343109701581641220091292826285442778416220949450937849293979484584912505709281638188567845300736130927087168398195638521453291433764301368420048068045669301245935354586238555562233758711135115404719344789432060220637562615714333852742215213566446879372671966060249269637237509859894043313411107227190052543273460180338783472978538333920171436634102602914393966248318073429487411997036306325725462337786165013902637044300235985779860993399971826102542696848262763713092484855141098958090706769293912695353266684281110761045431821331339485696785480718698605828945714475181172981942319654102611068717205430376925407245216886442850299460224474817397006718623763849328410148674799608643856652233544448430681572701879858449533157830724623186092086223251759030394813577918410916047483098360026883649007165110871412892694374800352114546766015795059578699232269030546726016761454019299500072015300284571074181962350476979570548272297907278428474801616854308098027027397808159862187015969636816053266396872686717871844111252110125374311492972044789490072409744080892159236421002348877057788894604219363992341989000551914007736255125318461220407007217928623583073416317325311672345425661694261153979217944972242515772151092470944247318748179753250533598040488655163545675531946769774238134359718264330408673366278094418376097475015549264901720031001805689072584845906605334690434326361395378302943236743886407005429166460425895481992584447047793200125324582146426420309090544551848287122049581562471761824779743695403965938944222781373762803644817145311724887428435944743011781239638414416207721247649227512444458467034638581698234629822981006931512369289513038002465678787100309354406647437011352005955736578109742122793835912280029116217781692767294147029503277665674175374906566537914702752103347434900273643767700074090177187299524643578955857670750571267931133845875701293136115823175399233254160392863067633845064099707136850949729704447421458451115853777770773513394808576107321043001108972174512813180056888963982571418472571374980416078988895162624591307958837070358803384497578267547332080753791007340837113537683939001827698407590515439578724038620609574814953286579764419978361080727037143921885470017912654010947322354275750255949625415107174646860687216101391611583217425092204146357359980754995708440996299399443834372721184268699652708136280886406062936889496346998726088273577713015595293092665796182891665826463754522234218487525873294341172776606791002750805909777768713100097473030878795849202906147691647976041457824207196794749400098855483621757336849276316880703203418510018711699597473822249925367626091407377506754995568508837773226247784579673356874284578090667838795734118991520558381219328883235462185056939361808963473832762883866103343651474833765423732799337485711938985183078028796036317725381075573371060768456420766200936842068730565346973426889161899921712547431601502975057302464789888249303924077950031506172597975103724254961325791522234623074609922037571826011587623832215093977268716241741875949926566611101022911125149852028623188291104927248731126217004254354383749974718175523620348870694545112141218956745519133116393906456233331767385911390394434781997426170765336131910157712178637610149767865009639166680823719781173143707003948783992824409275069958931715592197184261307470870652814821423751722823098957348693363287204239856716978563512582837099769687302556609243541598506891039737868174824201347064481358015106785502716484024757795577555026158891674597620618954359846706190319107745270364820111265354656659176960644710629611151372324328752381679276344310869867698823645476033635621248400014750429474980473358967546587458698078046147685357950572873186185073952977233879209180157685357377890642839149449493128543119953129493806453563052837921375502803603696213525681677208500006181987666369011890690076279142864584922651687623981544189102091071962304828547642238484371935398536285992840583990148695298624825044912958013717537762534217262517958039376896857245945179190582756308995068439026705200146235839162250113184007580130528391819193596974749292626039057621885637681335219388617731038856733419994465696434892172024830793355066474397227625283594336594713150657408673606688253657513066119153135552236887887935111011991293384507851026299980456968579060327846917888833445732786764214146462154306202395884439144856909749684173817416936980738553461519860201481805963048618051279465629794511801493709036524458899779445369015909674238685615987467976005599397328246242555626870192653766359029227876624503418808830750724625175176070862775141661739615773059881705680473464426400238661704528783238579515081334780034895812434590079965255399991548517714958115096920545871699130585786963192204224587088189318994338678441385358396623973357377149955833671449129388320271992328307263739835496126103170325434143426497778639759434125952374435622218037555089882768675852737979867004022969039681784003739085303204775438726453612746042432028079005981166485543456415183998810513640182527088893281713411995335712207253639826072753604176377689446832749262368401944446181315814161604976589808045373166934804983457488852904206632198767686652906733082133814674958265999332539736097908588155482786915512983451471722129706126615445042781884809103196708602505748101497371233924850611577461938161475866683888688567791766560832245150972434470265496020781372529817432762780201295423779479697433019708497799103123048287158163588624561056719829172474740932949887795531778068232415670580205313813663392485866743352451752010234251070083891735007384508084785914462327714673078133574614733741560557175376248175060157757528722365709781048433899887987015021607314067552229308537787491063737810732312387008512671747806741718045219156056681081731434131811918259111373521410634690337155356351742721843797960758841925236654540726653689967309371155105801761087144040253435648005918481611660129642851066805935541304058774880250953094292535699603218982260025763602967257711251971290088168995712549113480143552384598330009595995925963351902935211939638653556987617366299297577029110103755298428295871036976494762693923669731851368018590369958507845721999312232498486960112637211893627216479576099627808054567063590732453721478870974038333652035432331837566060303520737797966885388109077670134491107103610794997690188078012718513174723600322688525757739615067927775100709924243534501118244175473598633539946474640092108426548307510069858005292992483348382461227014809249541952575410571729095950343246086218137238243251052441911917242734052913590457474536626214664981301316107378853534038086274607062477016008729963044006659874012342091864546241337777648426492373360964757471076435167352081595485230849412101157410968621722385751661436006197205803252300149989303272733984609759874198307284261305990404436621631983476038365108850675265049676800666211699331197126781391690955437853281880831678223016767841691105312646008383816691201037320637359843740635414574092749365147509016025022055237267986192633266183035177326672330655365655450259575983840307867050571082025185072953510894529994190680275624639395431432848347066948375321602949652024470307198602411958845411516038970144221295282949242511633277320839404845454087618065834380429685631796726576935658291907207458401888383423925043624899198512456283400993577577599764067563288514337811491021951206182351229203784789119694390036356475460781883172539365762773181188390119865957023543486904254673120747855257600027201498494707645217946524197713632277619536580707738064231399908714786777080680913032079843695798492449503436214554461343151766441527923256320204635676324713077383081475837408818593020383089476499043162512660530964625886931129135634237341752230273091800423711120697945353714429996641371442221837394562921000042638079648089367348654870555345788007428502259336000043657597474076703817019068994237542538341169910999700747177942468895532765061086998199808234571541986742878360089643810380836892798358801248218730917591046726108140672711656777878716693260516654637040333656175787674264233386928493242571223081676934369430900277651475704074062950764865349606386150248437046726712469998496910103016482081725615688058649035754791766651557622596747231130699508217439258477847089750499827352641281359942950831551032584193338894665924814346777660106532875147847229410235061721278289777874678090142201246276845805836177967961689368697815800635141468500152782714696815944530439023564949345427448258493649290374460290444419479141952224493053991303037793113874432098320905995850566871521072872331731169995195273953333205944266807028061906951499095699343529664346835747027599815356949358139933090003615267261597351274544769743917243104409552396453790703364381918452537045391052910217714851979615465252104335784495182508988046409439540814300524970368771915649717050862491486550775328455442993034493579185170899168318167274069923887546972728323740149682064791766729449542235067514988151939274026662462980580125734603032102192147919589986375451548301818565878291127849044335917219245857618603261476332433903959101423401523724103535964612972600161483597901998420748562450076153998111865243679827473371230678273731181584350592489906977851452666208134705411417993101632402565584745801929954178079402437962243357072677802416284557210868068520263382199083825080991998594740182210592454995394703806385154478055614554200238690909888968160682902862309145188810446608737081657892042181806572551159954228083646559901073888884169713232548221785782225915153987723946393247344155491774088607367974492658782744003349106162018669868425439428777072239839000881030612259222840890861587986705462201812700334844738484664453626438283082748373825098533662067554538638844771656606666375634174122793269859758576314439236210829364491204703131875750649687810193462186806513212313272652282005237141955971611359719633717280377592604464210189893321746535032648202599076880701084496159165261764343079501442644685997330197378391248253409906121992824487760831901825501885367031605179022081526488953725214140839401553649873528022158981763944993272847073396435742698778464665802472740871647148402239784649748357209122858049125062921743647877122143922346706249005394717347505702028669723953592125767890288655862413919085879542838704193867660721379566449653371358339604804994636661324229206797163078492085592747793801044041566218466024696840464563325404952056123594009784538824755986839262492385778932011448434838946715414806436583433215672544606797077163550691995648360988744874335837181630453557937455368196827335457237272350420028908577022927837666686526669341935454084052862993612736380504649840581004802852966040230953440774739952962283887556002965521248550399030956454447974269574690887347964954886133934258315812072583182616186832548249620025223115339982716115703806775676342425543990908183771323113263152053176841406471869303042403094811243297037313872855040339506813411658158781558759435734078805339951550351360881245895353911097382976295133573581687157876408950024589939554988589525685016444398055916062617337962226609549197899488881263227305289051137913503434197440087114641002966445090685121994942672004043747513051669262827272752230505239090762210192729418810011129259894815442640647018283480785818148111308329095544717401567063232860680633029868436998286910000877184302815324436748920045450182018846361296705371263262867347909164509078481991877978731061922378053067461529259257943286422494533891669009077767619805210136598972478527270647496851233618275155444102335218380748563582146210539524364247706839200948315269783427731070499080927681351552246534868618578125751595474692728923451951866810974792048334508074573162172212970325251388922846380362898936506847747679302781564191298311659503128408817799342700233337738018495259943725867393797829700770413928493741965051428260833523932185167876778258659230958219276925644360032993214456645874468825361394348716331137203405528140290479727113594807546590609433102448519518850578105654569881170842612595315240155591071489555757571316182954718538226202452757115261105119216582569077862746018703305251539801731693806730732621665581949113573630515669441761194012323169751623028026768260696072447198877243339660395791907439656610015142161480284446923404775454492650638733565862835311886994138810916114343140377927159092811064121270780112603413689490208271208773794615945940727983649353386086603670056879527374249822180339368514677486472355699012148508150132809868657654072881937270948521426435282467007145619273080461695823465123486025807665817620751750380556178365814694625557255477663965530529126949919468225067042533110327534022835729669546969352907521892690388832425092082700513210079609201278595131588207690262247161241583272528684881345035047011239864683816150824619771295353355432699533600918638687408521267226365052079572069156299863007321875145828262246998542255443260113466089624932185164923905608457773979220084565720551788107234407845858757608670431005789682352936848017655783756284243671022434955214798287059253639926163378180849996444148853981123018457063978803663206272514834242607261452740566817358981555182843963015542422602763195614053683661286455618063729592575156256487427776463005833779326391092332969311454713644039868140156363620377794817226079160070642106304445528116455168308470959264691238499795688979885002370419868636971516747726344932853735550579372202456025541046073823363347789644961492136971896490479660598494610505398954894499024876063450475801783330436076470794147704634976525417125531773931860861371878934538469149077808430587681637631706266706918790301832764550702113893748082986472282451944494226807754797896480878936104086096205289232227849449487448132935887249277359146495428593869379606380551245546987070326147518151348488026301989765566736231222198524548752366404481746001943760940257255054701643889773960150386228416244644590368249938672035417885524846131091228631589703866029506205293903590892675606851112683096166526976061094432581014943137064870129979521716709937898067133632986222402000757879590057638707438357553398038060896086323198869628588470632122873727125061065333235881180016928013777527943837333063417428858873148356791199832518555861226407762305481839524570906633247806608816892087863200967265182403163577823505357288594287686105826361937092409881241439930533318044373264755354040029293882625979651664356488411963351464916615374087848861594373114211353811275208622637879317734498856666820752002396601036842600357220237034313469835794550239911503750599572293559531149662507458801673092337548369368241583239871512002952249505101049398549346184754042505630870097184444473386785783862075774729194212934658125856901703550555937353909172566373682137262106872146233912595035871579987936648972151044219643422651910192232170237339553514303292372744832002854617904700212353590130634211450071997914932568429443003365052758054526225995587472762258368500981698466373999588703419832258046217560619424801422662722513363082755824989592374932926290686344221232978574155541040676921735138399416851878642233345636626536240265003964365397652535386258972552241999764833352289732443773829777742842279120759427401960135197884638483781185905255228749689539447336418216414051476369294967267940409184255240139659623210310026596166453528032282706333627356933646825956518574372309964267005536943199245775743262680506479834386168067527867628810904643771980611391482058117255286042000944994783056237784362564561055028984605649073067994745069700175016717489752099649755274547478105610682155241995490806922023208517850459853795838564274851537017956988496244887627506911768186352197031262786129679988368524913184497797418188875022173730667273236510659760120401620721745245669405875556822162176746528371023822457982950952850057146049708541634489326181371249944242101584146655473246306882794303181481983806929065517100686024325440744367346254455923419192105652462265249214264783405162145031825983362853557900230374783340498210648091094677442856641488304435015365478807214618932953453457080092115522987973165191102967261241456446237061508266895622721428150801382034521691645753043856333747738394846763011564057231055823362775368572951598040732807104681509267539050761165428872505928369524975289095579699160023866615601724342824199789848526596219882275371933539739126373746897621669633353866579124199366613891458448882031030342037657900613164024027096331340645099260211904475400133392578972143343411556060628578838063111891032169978119946788381734079894999526401308815093193329949718275924288381113826623478975616669854075976817236246588146048612900518583166372566593551242458189979000201007408895302607412848182317399103131455703424973517241595281514232492450958429829086766247645676244138682787847234235681164755839469727819217482944755934765026237085502578816064537984743377099311093367999083341749293402454001965111720023408413905078366554767336958125819908870326559771728451696288554614258982312798755989665232768186090496596319942841183837295663340821581608083902350146236705143700082518594548996840120912719517014602774606689383885773716376649058749312835317749961162755316261145542472335588545640436332398628224592296767743851281115632840891006913048451974845354719999524102004824552682566569299608810629931868495700837355058174104957943499863028759909009986330088766564695554315177832613444139308939442747810717730746965120499688215348419402321649466646122644202227356329884426171534380623911212656239391815682089012535468100127381866350021589836154822869933922517254216879643554544698587175551285006969154456606532337140626459490316278424918893091586785731141142514195687275791976846224270414347952360487545046999806169410638505000032683010222535988605187987005952837091494027031328055183242255219407246161404107091183543955697643188592784038438710305708390336572511491175855231492779721598751717326658125106674578045001609869600908475931934571637111820696323218302181501905637388310239685435766516327798578235798941728090239700259311728490496605514533058480465091691184386289960947189602215763179500842508284489676696505389639155506515182838680763161975088789658342876602626989255294754136687051497598879632747192147267905253583220665436167580788323133841542042112318503532856992794184870939675989600292414390130994604948662153663920221316599198612215862974631945694814604871370686819418747468768359725413145059532089588393904203468398062308062413914493486364755777609202287174170470256667052717174271301430775094002620403644732057488689492341027132550536786223192381762604773672576427874183956721682224013761911988549081568300500704094996357599369667784848996604349704322200559875889625117427729641249467149006439747375604884081189898525116114832042480350035791358843048837217995257252786655596237040999508669436954856273514043767861647663815921392003335516702052189660002857462056713067681957286750673471948628109244033137680835092650883312706809518997280140859201888073206996409072595772199914156486154473223622683210129996429310327136615128094540414401451571824321309717095144083973261373555264321168771090320187589889258438175655511506884724827463615686014061551431051900532246556751634403493384931783088115775862833478900503081973979411224171590648033900865899039392793756438101102051214162518776191401408507794357916557908595441951031437251921360942405673609840850930051228469955246591692547010931441258758587782818914904420487661358070493165945164957466250399882620996223836373914641402048508245207355867509213521934152181157742076101265982798936945070293643082290465624094404130490141492708102542095197530861654669683805434186339914535826963524712551355345658177615002277919660802042772292302331539719455525385395834916999380137738371579823104787129165019208790729878402378389077219184872258579578438080358031029344698131977178897547739660834282114012098662627263887896590214527587094616935932818853071967196771229309141532377177276331637968425984117920082458857376839090491466905804471823154543452699625060781371060616167565957533357292537303118476283057191690966757338541737970411555942937854664964121555155004420453917653895385839520043696211174696327610242399350821550840320306378593627912418988658995251305096862202299102719852335404682202017283326031618548003767160271401592150952076172385006738010614018651340278782599120395615028866288478670303438570361804577324641231259854120682917077060654368647647097398553172732032483937232509335390088623944972683629746959209182555325946410159374821542286561820940204176969961601926932395392542674435284891976414436285692296581905758021700448917704307209201849799551777324196578040246710382102965320477901877359242825930539502761395244361869000290543124114050900322562095342194520125944483052131361172792064967680105824501610773572089917907924662837591231097040825575859860509072896614136284467068493926090501030534950084573314505195771152864467003650298760372570853281524274407277764260340549911247688180219468158298076404589355165659179988556581573130226830951430162525974158633420740259750315623601377986836444349246909569254604123228914553805585714322764393119430312641102483562827158437341060140182164323032992763673589503813044673858355444458729521564933406727369227343239885517393077086595466561676661457193600306966474942290361956781606481238436789570058626716022677447946255666230328940119640472853564043030108622063648487483787654272500242440635080946516140963931990756302700986034618539002864157683450667119153241357439651098797591661269791441345000522054047180233662353549331061954932411925494745169986547874759120380438298023077781600290470181164594772971244804787514567541021251389777966358966468587881708762168830211789490349855571419551904359207101533053428668623347312928847931832681260246252866588108328204363634945913872388620718615271290979636856523532678217375974872793997616236338604946494697006314060050043484590443707632194625610601143559233070654014444289360012806072091408756801202995077019251777494054422636380795113322721786255457194068611919327705733057440425700899181495673069726025244406668554971815920089193771814540322825992912170832408951160424415721390241825765799420808754879322029853298066858349030573802748064062153133992263962514524039271883882411851440804738837773800057659839980125852889803402877230185849551571000724132147423755089896220233182484239451758385548816996685816489628073580342637758041821248166850957716558271548834724544203967611758999896184208255515945697891654787666157689244615275633923115426413588933772616899948530278357188074003622989425329457890631901376064722892074231957954921528236016408592424216696966114687787250135875990751128194434712087186869183767149655226262914327813744757206897946530615333485396185294962830273639835647880727260008857655996535764176342522435210398847910837633145740117298235062669285248941381914389367396266983628906018227445304563680967544534269789125916270044440753595909511073466713748250967230695945541210733137666054113797056001384369877167054209452842590839386559769353596014903464179072628280390397431454545503206516337122792986295164115824602670428995814942934170240797366146805183815131264142074317980913174975739155546114948875286505532734570395734563714906019945236160035305205384170721968484016851338179500309047526710545390652178121552511767214530386126371939910450410654298009977143117969473185156803686958377716851192493370123871053413210324082896082086245892438486328807801508176460145762331424092601282824337962799208223609560190259789698461011074134854710899514352039246552955587349716189127016753792245245020803299788246015839761230071576984153607588209166432831339383744823308143913375184343903466027791598112322310861313887667976600451728181936389205928445593743789781479236697790824357717768754681833648220675120069697139246288990993095142414880147177838060196255777966697540764205423789385348570181388228235336809257770320279673091819565486481180384195204442525156813517120938275592714291562802545693881561182253040739425443250255669339486776789778291957567298940262222888784530908852267216622918504845044889699044020320796969635601886050925579970848634108532535627654276826066962165170916423917864097185418534763701641487746471841928681837234345252894985590873800759725351209313500201002568606156536455512187353648216831113902715464857842238996230078585340619893574610926918759187093191200218533613847020128290010004909794725047158461048594170959021239757507724994520157668734007190104919476779490041604692730892587849067344091567286032904219642710613666234147637468505505264293832627941385359292831468381044971591948766286027719130179179930162371759242033951746157398647463100285573198259668818841418695778331427225184705079183889378419626934351663266719076943187689028898210385941753172496340231971629458777452398934767202361922988751122796409916044151255703925827856085549919039347087834149088685312378335664498095074265031376974561295253488012266920271141734797675015125547711175953336861739431277880641563548416388101841859197965817868554057406301168857959347401348363805992583484445470615789950570390835728396434268817272524789984520589235198387011045849566406029705928291408494307285338559295630818499076809173181468646472282687235688898270221405442840867621490917064068800844143725830483092424723215418563806419754525175932123961558345994184352975246985423690331582473062929536680657017263936887155509162221990671565111675172980739198151905503930098846663284947621674693985577105277562355435013595260385171847858367826285148225487021391636423087885481242206252520406546277008873497081152594933817574174211347866375213318675509317093446830976744184191184308149853065460996317881221573716249360118669455290944219042104029368574429504469541098733737047439070893694708434927132031499493802479886649717921684925805303076138229825200906820778623982500221544999484167127366662100860933863994943233264279803135546169635707093279540962209337210388573488326572887280101297316561387369935448713379900254622799838614337495347633489015316962808994030625310642120486617790131073368830985234936308753092885103743420838649461071741564941813668047665032859578882174103489725395798233596398500575412199379635205700094521963000495358614886361557267098650579248050762296092491300443136848618740340090201440167762109472925712552266881613034830337507820363326743246345816116435074233435138163968935537049960881382052959682959016601902393623173376061960425053857416248250972675228905273972137540232830534409370877042242744579998924126083462704110210240057978916768425006839481139684692584359787976345131078570910634636001243040808272932623816588509963125834209919821535625664420575066028817858209076227259432621987747611945058056023656201378129104674499799347471270224197159774006324038236174761965190738795847202210574063193601479834349439927770086481694669231914012061185074370965811516994289325256932724769308123004542215230407874267428262831701801478899182111745941420116076470184400799998033803876188564427498284506963411897893456304353217443835080191360374908424259948151570153006736358677750987723616411614813781688926557884914109257001246294699564721606590700601432620642000138587669049634325830415577004935082753374303792371764561453482498333855184603802670876909252569104144323536741866577671378108368019608679108886976735389984662121430404014897112665210701302628963532825165640044121300999310668485933404476746319698817397254644271003560728214880636100785314823276466034710713189586966356809335372729428642158543179115945336020926793557445736764743841079301953181971745813119595803853446884729022930915345503411547832072457145693840191967166159390183170813844927236116510619116973535683517259886695597248919528936833269473299269344517099556507228912066195359482359046185122726213494383566140792618510616087382454728740640052997882987946473227330893789065609783769892743136185511988035904302245306782879823962729248212383921865390783267052570167199512834633638196625376114181745231471863472662918815343166298582280804621155438061322898843489549747855348604684172355477477132561114942216161060832391926418570755169480263172128178939915184786661345289773146584573199738294151380916855015843001038587955011231158842078453842923627856240702795839884538633216606168850169584466219329273149725648230307209119081539901965432403145109765186576900463155529544751998445155252829121631641243708284926962253805389891739804987909928513447778866776989316238360945591213547809357435179670064656944981546644928379388104467517162051321761781760245755262472458770346677352131484804418259379218648442523823989514379179516926637065516934825149369920321487717984085766947115025368202960923584752733278007325382918641139694281048609257145309347189638061841182308701994264690594069112702240031160028428177136771982674603605273960292928372408346770716477708299691340895129349279067006169445725250666010353487219387739421334183973855117117861629651090820897070533041707651147495149219738773729260876741086373104319487819592370923912729981447369854471232883931322604114425375990028330347844855371531445294193427187933871741348851090707614566076644703614084513168403477814743845885461377689656994343502110040329581927231953212922523054419204022720420858617775995816324370762042378597185194472867158902767131256134742573481967671965947191079159153927253351453240773660218871784990232166800004576252797675567226742855920173044526161394840274331763621043140058406987125743679425076041556515135270061775640072909157806055093980689641783401152127436339741896100046157970467278587215472642212060642770428086090664359361049126295933280383716801062100034540124928933196358722352147465940563604438990114506006616095362894483418080165885764155198720278375503592193312840921726737454406266849865125352806490706824471659987834432363181575962952613285017719382225282264171369021174167334993795970696339278486980576349107815271077424242336411455011974545943753509369572193430076259991213756799801537972330059253465026839229371122956468493730947304749154685724116004435733940230040174224179859624421827129477892334034160500482163038009220751501862821066358023091103451190139105230668371856214909332173061598019632300662302018723386025929441635894352250372436581017992185421653634798363625164659461329961217531987326130274929258922612987505988120766648555477404279610602251622522687950879896512766353629171005701824966524080829259871386565947390830681825213860760959730376663255803470029791611885849646725126787743543074794242071931488349003754171762593729906372010076703474824406893389818550178659146719734327451875947996718553240784141766509538607962829884674112079244154199533602684838108693944124532321892483068730067579731107140054680548056227285518522851888680731828713790297120073325711934293678472546890976788986407032456885096832106955407424203187844446430124544065889101294033801853424918623800915170403744041570167489767321557660724716644018691611712727683709909903577302161480893689272716684383938372357820652763617862469671179140403018980403309146666623233041894047544747559102144106491053785007799672880145687350114704988710300072796133214667507060675470649075511487231951672902620816258029145990036840599094819506300146779839856010322421221628156994346034434384644261567818980511800285161401905444814477204671150916754645203221509547232040730240563486398690850284126647537629715662579485933126928594482858034750772342368122940454591262050981198195530934968652710243488819785149351683637117800767500430077535712977110973255311513236777072507863120096997780701506438735993481839778686313371269306440302891720375196338590007255919888649085031165413438857810934058036949389427167487402136182928635442528907811915161429138721425255435778394941098723928445742956830255005203936237588983739926014338519655925943007129657655292586263365151784671987830611007555594444186662986676809368437417279938858964960111486919077339448801005978369459217643238902402130347382038973519213872270140329092931150464133669415203018383692900665209848190319761624028687009805001114198257151378949100394738964083010631266650317404074682482141650543669546793484067129250976514648700199016044447349600839822887841313093430273564711210671086226140637510333732132639104334233315691590605449017766121574553728013678527452254906451703247804202492016941644567228439533746080103747857407512448046937116095371390880182480343743224379169394411213477309966442895037886950948947842394931319326868915301619010213351838175210465805192796547903292399059001557693387440870554252553982571755662747722551128748314927726740960740258732420948646344490836148068756201467743829428824267152111609423371279243205993165896298637862167620387065603258593664041534734535394514455084263991474453627463858635480324148217620836090790446240157236592891545513934583600491620744773041906804522622727658289487088004375897219708329077953041733186828014565517635294952120979537646776177521891471739352581172364575838308967685122129160526074832684794147644582810237289080994921851174375349133041968105710122497799845438985100693033564312768421874585999725506256975690809925644999159604158689561871662758660337355472433686044450739689133451542636402903141233875402250072930755732828034030029640370903186941797395417279243762834173464975256011325325489747348033912483975530063653708567962603050183645583232690283262443115929560490793842758478986388045712576976548156959684649863950741537821234395883653894087517041144702221364732974690004489619030387337906609057832599506487696477666127050729591210440741442698357953344502859153869921290415540592591000380988298286722249407694209425126247745637163257584237142710203744426968846046272631031739806016428953319966597137708763881114349715080177614697208829960442427385083002791742072884760880877554918794446063767997205889700413523941713330750419258929844325295179102791719564719354165968724903139342632515857964788787059021201518531791021536572995663261061639428163461595101079132882415172553812964391851018500168613103714339140550750629712775460223236842327543603648494793644427665250075827476538225054920994925867464501333006127984360418255167776796018229088905184753663625306738721474085410819416687997102355388165311321636946110907928016361043437172279721073548767632598433283238514310624973290364257844611431693277074175421603745486915974954087399384856186779775993286286943280452693107986920334798743393209079665350692210136500218417182420446040215289753286673943980931668013541606009042291975361779702298163838081426995516910551393906660912580150905621389005079269202508245408614933891775010012023881361876931881430117039352214427578053156350649384980741010894835914729414523859916612621051995984641317109279566359821264728948967931529294227891470740769138695858348579592511346119351914789391306583562906348212483538800266192470292990350825760492354727312936301637939067615448061889998487764786324776414859983032607234920354182214803928694879602345936413504205723781070098575061133773004551138518322525707230835950369708082346292004196184621578548198714314920222071081337523514962251516030903014180585222122612899673795387372226694052411275365895715496298767029979819577284923612946632647693439724069608354070738104223960515216205851348179814367622526370361416110813899442645603783280601261879752389830703623734629067016229728060413159644215801205246507673271774505697739030619839078644529890233290792707515108099536915361783045322407974960621035197158427549738273369638369898423825899968255056855293515994135916890298799869374426042545127899972515219652680893412179232061852566200321647705995966814689326863195685156196562205623700467299956714440294216294568730921638972301863212765810326615769167774576528474155798993066775366461035016766914228563566059454270469729770246043889770399498648834881564803824542492899121803519014104595682741942517942138974022707184163061931107194368163495807146841591538583362065879704320821584760664744680395842108766657244830095918955048408429337821154359841116333341286887012070628980651489735578792720131644524945813219841994753021989031168348528489969090132271595295032016595619654367976771147930472122293246186068702233037768096219444182425098382446736251760220631191768410689835452002907391006964966484541979573991513672971767331712138762626902286249690713588096425363731573069117767305485729504515746181081090140374478698368540219053565868237207098733286634604023437961123452858250434743488125606788675685365547321684254577090020984585287335084181621411267438103231053812102342403496487257529976872529182640246292083708410035200744588836739105672089201469108257854656748946140555562009377242882622546384410789027490529090480903020864289894545791171886306031298828318737663342577419901131523845614233642306322623640427518535842080158122439951560798315242087423572298971383851718717672237530289955119012456856020235415973938058970929389002090141194423925306545523964128614395509540910961261545590658435858101556698492820454970365793821188997587254954292179684146483135232829544167541359834687996108261307562395737163745944575541940140477226797973845612281700418612252823471508928517269938561191003969352380342001171276800226982694027774071821350552446769381438431977043006977418822806442495809820383054280258689141158348276536237072516024615755928898545020325777872490475772234588184666410169216003634943249729474906240561403806914388003748861833984926342184078437172305829683988702995765471111200265998727186056325314871152250779931843075275323883345856193065846764652648212928046666508456392170360737766166936057838831798578643481403447281135831228115469251941585375477174330764536780224387306368186931115018371651474910492824250957212438669549172690211725716511057290557437129329676641014892117003672367717123891941340797261867346836030835298756249668508302781126784798105768887722547969999268121553653382167053151031487766543386924605263974400143795339340948869662172751991234643850283829843195270931018623628103070467659299696371372334568347962714306545227207929414030102218400593989465132038416488186638616993248846960085182595619704361186344411418510842112105011633253181782834952750668385871219469092858440902254627035651849822693616282388550613630002329707969959011628727876740349875848096809562217133756015382362546760569470768888524813200318934608152650799879145533136040992976716075153221833614852265921472011661714858933374188924848985527087689305137710857192269833962682745270790858543107994801099136840250461680466850057878803419770990646574184151164179489789324174285018696775884359825345727000706461853228849691003129086629373951877420787466500030242232515887180555121700925108415239925129602656483989531557286837589690583096516548775409905660262359073597971334640767949652134659321934747159435277707355847956327792454211436373630931329273673429485133219479088027071002031187606617372950264481413354757766749238888077162455476549169037215745926178944390272805731574311238214468663051885603120467686312231172815631466367418639157114455215427578211354194078242100705008525939000133976186012454436913174278578029541281715105418492715216673094484873856966293850962370472641852870138217085738464961957922769830985629706832347887534002257396884256627509406235016358758872039742720953483115061885368577316261756635160228350377626263690781805625462606700876269693617000650819915945613798736633317096191652151381867158296998034594171469617467091165477223980600590518058958713678199661393006784034220516694294481528810517412615089274144290837276526191044888575990367249011012579934765188435978093359827966805083765312044524040323458203026528864015106073733995267690014724648396146264358029569092232764362388769751633360888949373953585923717981396903971904413230867949834166934176382160221683338772591763718194830312631529816899087374417814825036354274621585587780428173434255632730132152219196792527526299525899946497456691082962233831554782903946255150175784814684943766162984469096521707607268569021605486047872030727875308970836460382796822154163546711666482719226792733778902781983580600002090866528684340578478216872585819844168534746600507155423459282728773392697719908880316734991340823452118941483663246513500315439313784448237067879248632087870471430968659903890054214914442842322176760012148761810159719719846740937709083887780597681992897746321032732419810272686463363218556204811407206969554091881162589978751938681530730747860526460685982775528963458609707897969832747662748827693542689425111043475615817655756137100133740457270822624129669665477101653788282667538438015228828915159687663768018688404448093326040369565925070998061451243044198655128589283595877281536464261751736124635753297928473225662953236123305278230421363944982676506758545764643625055294515917883668155344123430812107606240356368818141458570243828674715546478048832880892930984279714072911735816681754251803202314289976992549862384263215265073948665928120957315739052566176407538449512647994976940696765273968457756155716228294006428938826282733345062835565194906440957044192514800270642037864121829366011126264264627156848524543968482591621347687627745655199230688540698297294677299062420433302131714525446798940869064856241893490038447684378516637393011195431808455491268074477029486468304228653855452241384776465919592874436166287939117197385986607636428294176730320829152928071970420236112701901629377102152479264789144578462487066390018245437180877896458188899013967546049661801896187261877091796939148127509419408821071255012223998453364105769072800867741016400550560387959339901974074246179858034873887506584771726504121147478255417138150878869868196639079964913531600422532827867675562475704999557901020806229831902990860092163554260863981591068643382159357307619097907352394036234007866910634876450975192915590792530711191916782070508339102301589387054611755092897378436836872840902778844746981092496582576406875582135402093139400933922159100591178621270685010943409648680160313003815259960022105218026999513748549917506472000546503456408314917508606670872386443972882835592894578203417106051680559277598576926690447420180302750072435477351002598178049077128674482381329108837542693248703314143840807988414426223867403909923276782391686374767180227318602715083970087880980103263742225070706692844662817637146927994423525392283271448779837389335802955670972540601642616777200040293500216284379206189719220020991595274234198996072608590059611669847346180226590750820903806921756759778736017616300773086648933354955540175301322162869206849789787391055364510660127894074485636499134740839196213600040435534911512386130313567120440074006265724658366410061602627611214074782005608751557843341030574640189484389966168538160643562808580156508035644356509940859575106530061988934867903742599151130566184523840416495273457941834625400044183610618556185797721732753416044262189225158769895037624119339030939018036257979800924601158091981246888428407669027469666272249727614425274282853026310659310445186816196403170550155243133097129076097350255783048760821372687639548626865279751203675556893932448580591393820066693679710142245230021575450789824693897992649618929473423964013294661790546900711014811247267380313486579682187859854767492257219812476376466305846824723888176557165302320977543939737842162211562177956248594082312004852446639063115862505475357901759464665182115936335687825054179315193038819639891548255966057628146082523333029414242878507792353230603431952676797931162158318521951973817890879370466452565894447890034933453587368285718690842873061528963515618916196368855071728747047136709887875892509417782971219176816901392944892836817690379600981176417814224569733071363314594148607688502153443412110699229794843870526857860644806952301570225935717102034990633649689533165125435271223461475418196984998500106975018548129285656634156166692430276722399326902384950864323500384031472226779105662597317230074301523293292470432494125528173281147155884003944994016596234767123552789967669022424854738056069487342084167544907004239542639887555803173176992569268627977147373605359519459341857966371889426634111699518828300939987781154348068426550103876894220993067027402867949487802398746775320195383966823930982394034141309640397612164682618640768479842602528523884120764462282226409320000332704769561023109099978080572722002208324021835279783584676749152010876153987076708162907240175819522419792390784168532444403549745832451554343482544469508048385117678111266655847471754251446089855232066921560938722676609148552024324857587079878110803539381967924099151298943428062457159412821983766339020109025431564201272190959583550738456987149070861438672171581450235733553401278683818900321072719128497634812211777711397102244545726497693270354742879151756584322546184564813571641178962552186790454229716332417841824158887567771938599462281219321271908040151860998454877051155257786831163098242113520091053527577611436684920867272622868112976756388788365451872436836417786710023667091640378588394370721790878226259397233065865445585580949820874697248816281560630504402126813576221736410993911741307284606895249402344788315703120440693364685665013273149670422505311544829265908565894211186735418748767057737437401486235874337022080499779664450853563618000697135884004625428840982218517418152085606508409708403770612053699451613326061660400775863855251739367360563223088120126846274550726267587713280149409415112507317080390528107132637278424158600462167471063521803916760910899940346946292232118019112550441256896588382794684053347779471832946042848333261267412228003440135456667228132809722181304120629214376037129734931256751400011960355777256157546422153381161168981546247065362289788470944570970307166539194672479369712459909779866840984793351914089687154744172317346178758944856161049026844615073688656145053557416668232855295749659535659306538233800789127500454903543109984375122220233510229660069111626507854137815003712902778605741070940942702984871589280878680458225129898677908108146097023761205681403578927900484356801187277098227630463334738271801282937690333103855192830019310940725141600218878156377039790806439243786736974205937367781104032852096794739674630744049958101154910231184450144460702495141880702666065070549939826462862771823359202140665220773603283770393298507586550985873082927465938901384134868827780032396081612943539299001076869905416599180783662618840527325927387959660641036922174306214845918639320781362054294573235277958499838361317066774491413335742890132840240629661603080993191696533612597499697043791982259359737701805148798137505826331847668373545059805350181676365721204407090835470350835855358179941565344601061668513099104654308351640027882000713527921902937109732469566568930149866753630694185762413465386051656103506357814079652844905225410426929903398296268810040136288341312908132392982535814256114367356045528812829720051674145896372016538104847983194514553462620242321777441416831888299225555728050630731805987878204954572508209080945557029622522814165742853092170736039338797102751423955421891011536974386101995209131596822492423142335670893364495321753949632449702830413565661840899449770088024460077237528849081770467275051139428663626449261478368467004939628367367214648757274719234647297520461648264555489219439756905006054173670729348050359105660970073548132668184182291826953084663230138991361821780582258177456449153973758420512471680680964921309460529348122251201853647291134866483646258341540125825612621428324349223930208533775148361712720557879749462646133874016182908900402284937755050369311259002078380603917181187879334144701445971977395076623577310541972081423101058526031076864190410487410100310658888755811524166882925058638740377439154773306174999716480883299443067227281018974858777078779454309942969510223084699981080874472837462260263166185333722428018862133583971549103081367010172015354663407155771339981573599911879946789623046514026387584537577090263757642435590824120235620233197294699380602429687255981272274986378849150398346035469687341873878068062290644512733302192597977312661730463614703580129080775487294005492250610706586526705215417715648870196167878704382595498232496791366996782593407662545321258611927170689411674836188285087781895236302148917121934721910237116670980310268296712288986597249085870021457849442234166087455806728559119166287235361559464557614684926667245717803151428213868856029304597542977643353548559732920019230871316718244955029178587394187504962362538171629277306644073771286141139436833718927423732192009015903868566946684652358656217959453690906675385723596493220380112888633053352368677977668858816067695920916163832923686805882927622538320871915356095914299385692746872609052148286688958965696498864050328081422399690862083440135019069368098747323619710246843591294695862675787864818775260723303734520328460457449070956159066973932608303176189950034635345508126145626789098804343282944285912252571682320216424414733227622288487483466016947441244144148012545040480718758664242801010929583553252534469172888981501893804851711093895574420291123801197860652961367021135610081044460532724895807862626016974710828277022740789275813237236376806599783570421798481688316188467954885726243927112009455320983061764050163134066877371462987765593418905590702794724397945164464571247904063794556075641316880724570550490577605350047668526150620750330712736737641250367214521451545171097767736348545288862675640361503587676658817775902792955964837550356357722197694965006954554363635624530952526247900058522908020828362957781894488304050367024539627737264515573396866198660359455577253734066796202181612721085145230901131587904563534740145920578005787897290796345165307680261626477767918558365839377443586313954255554514782538310596926859310099587468395362905355282696515622820351313590859954849826378889830072863627937846783589919959309590599436852880887680524163599994239109264904209449301135435484041018271423306611666737286105700566300207374314322194935090191355656532161240940938960803965744834712338390633368318405176379813379842185682231844794701934825123852896257112957624121283600947789798396332404432536693810121885947034121878727661861955599571232663611566717001818006264863860816631993051734176165211250729982301785702630033279620759235713209663459613739982555831905684389716200315032758303660264616185762731457088767378691175716708561826805086025347542926466880565428658951449048288498295993742759001268094173726706155743277960255214404173717281380245543399436112952554321633024891789466628279029430449336342460473061771545976217035710946299588240937942476364922504737252744066259064789490557316392719840141898432558731819091427436655383628033299681330237575399419372224907424215660974878296350559803091339070466431779684508238027304072352863326212751596561860563836414921619833504353783029034944156044445048323899312361213217278098064784953669625021569591677330902928132773714323974032015192876084001310471731045903441337386710825052998786262876811069232574688882975390897912529937158417202728659012035924755885903950647857443579907602968411710252265677286135979503557412059484740212533672310425669852119591837244130083780336485947348585855073821328611484303536321071979709653745890404762594021511510904736515372414389776579711774449890873037349525990227082470721406677099886947933268179147870727756237657659663730825544421204569926684026488921621431243299409680868119791583432713368479497532014663961070774022056585693881937701402041560251394869749765177587204314786576730515491715246977131021567683362297013075058350458462213883726838457871447425126523595210670970214469038975398548711076394460392958553508157261176645961115048614043945508831838535938982889890752678452905027543100881913092014163268472979271365571416315313972725313180322148686225938200089203373998662221254462074874955379633386504599897759257381230306979833429015722137244688449534824364450991878806896922455824242522579982064063358076147606825298157423780668949791355619716334399262519933880624779669915740771614243060251313787099789844931246324056049222683194769063060363178457547020794325866418767255387557682026370832428349329448651240763515547621819500827410621798159747568523319645779492644955218460173877695119796775979372084221965189417149559806124916949567041571484695680457003768912470307053544296611590301194704528314229419978242729790000721366712875233525172038864706451771474507538114047362712108062477914876212121402492152866721397730398397431016607987574644115088395566691411348414930931640741658440975784908855252538509571341105442894958688416539306899185648161758516977666757901054573452019341828483984636140427949680512669202407137381342123081646067181073544751796416954653558312258004132914141202751946989491750036621251489956429594215970858013922119875142753509144508746730594002531625099278558400701845403808485882272569535916902103337443622833838657013260670897478215428283343763849240148618209463556776853755992026945630897564334520211702062318100599863556805269514345816598288162263419385884728438530961602650231001883883462720135619365095824482614760514168917546165485862186498792708639656075463735296851079110258139668062726033685111392289507467231847989112524013541884490563938209321710276687144623300953257267823144069877346207721221542103990811427991603208162113642879244058711730186224284594945654082669608073230849368967356918574913543497016872679313200011324866563290258595705619739184667573105062253675784179419983369417743898219892257645032685863816602231837852813807398956442002545522900247651915913767305272378094822582318683058191317782143487697461758489054265315604001173087140074754111487390557327712713888788238038317298683618053788618834437920935580855861744428178940606867126081508209225931660106425475824014819010573792312446080289459485769794893538487881178425912411990861145747503673468421482100737521747251088364519130092262122841673127908857677624583304163214102556450249792180000371030751022780057210037025957805712746963143879934305231239139758858271961504749802775792204303112692301094410246164341594433930241668615952137393789610105758070696209798472617362605937338499469620365768227644725791685485124633412633996950080722319067079798928534845140768550528640890737460457939005121208851564596799719860608095024390138631105025332143573065754234065724478512839403123329158409498265583567899496610541716277287177160016688452663505681623507926717054660001433047564436389934270588832946814227111716641072181068101548036030870160204163704034393753791493313042770321515522531610490090009252239859951630176945887813506755256402872844524580292304981229530693792625953803387099667313051768755228430696597253835689675513195370508306427885052115019536373581951854741797445120458180863454086325145001505490088965624337406643879482712699384170187009002581243942304293831866686913260781961506196791536566481787774609695174937406125279735241536804985969999353864270226764505158704390729590888091424204479371780974817966685748136750581836927859769791138852138171284503726208052347905181766924153521206617374679161120815323028922826173380550214911125503981910904068895299747186062864503086250094242882326382819956669098153023512039976136432917556219901664924583275644335281891417655329315621360962067440407750102325159582299621977049576345321619640709898068285202867384819377467238817451621415697585255155592768177532332737606959568661866861176308192909693541276143914886041174771043931730069984250658644902476636282802794573414954628830670279307675913369071439984629437536042449721086136944749263115959275245937584467830130484108743952274149401590868935998822143880767753580594592189405055555755755307579478889944701384688705800370968316846452458173716890081901054984073289938383973199099006918905597430692679559141449355095068838997015867479181899062537676771912067518682113049417252711480441232059126685260038738275874569797739085201499527162821142663418130557571351630597145958473036604188710285412306207421668446256587905070418091013100603818827988925483546043883723046243196483300621711612400780001787452415066443813039785161430014337977251742518049608307116033715764875183341016865585800470629786675499846146681839993407416583723402717589518143539432520472094571175536992006252015336942676207843534217856795566851439647321054556993859035170982615557979651720926989060465466532675470864088377865758669339037940220808886601149547992552546440359588148655640549824644631093606085689970295771029732519339060683610486335472600338787780087680177219682340598641921786180455205240569331463782724612562102189596658211726542229891432775208549648384725727228167621660786610392886040408714779255587829441377295644856820184578521642827042980835403734408631912291777629011557300076994719622310080115046630229255539512720832872281338347265548866729708838691436239009212387409123016877685451934364483541585713141898808263706403832515725698121592930553139905225837319102661674464656182751761508663351975459613079163495106847314824878918954564151351502592594831764547237394513282469636102305640723114005331678356587221397275836442071222246667114364052590094135699219065735018979771449582389525800739303943247789935809933891158764179367993604150142844195161919706585109387268975214480499799741788532331246233885903008446256594479489771195198558304677827513198826914691318212363473342365253777527724545413416628101073860191890158711236038501556407819129856332980218589564430147479874084967712269025038519295673477024684799496968363825894435768446386328799972993532234930725332322140742232252165267337396518813107027227018923862019693018319093224459125236233608133694865654328683068646503733144739971167421749030633868296120061171535494024836499949006826231007467523478172031472143366503647913647346532829041651278609392154440134169403512058219868486639826728739611232409186043214635313251892292668046440970218805045312481244301611551539735270386386256749095469866033022571938567415644571583740504082338431931039074096985829473115594218959768286606441819091214232337222680538277817289621882236605830053720440156264123284399231938682543823425349258564836096238965058198743307289957063404922254748715692791590221549671040106212172808103298775333573299812874151741700943592960794470926770402533156144795986509355215433739098740633349314601976959948910585956746594214829045327539527627211350590519922226972932788763184369545566076296387952669293116832278806523803488905253330854328908660200547902230759761444297040880144892295212224435587963800784250595293534911200065574912023172279775693180348257366296525840796468120425265133524958689184748465926884983146824030327573718778139897947117220989877764441522782841757339533073362128383574117004376601507811415268925672099487484297549482547701234517520950679446445254503592267814414852358494189103467275663315341133503207466510279086035044512097438661527092192352964224116051402718797383932881723377069676407492641914245882532480910020226404156247293518783014083437547423313827754597948623456842835404585045958422405936599875153474447193561231401499661202891410935460718544863479095028233292024830639433227525824532293386856728197276704894310312720754593673460005113751577040711825456036491561085228153965034983981382309324157891065094964718469940144990709667312125907448838300732781211593476325788551360363015716587652725194103075423233129902769851376634723269057006367399210718122001326877934898068496280409768772080049303622999546056871732774035740375529301670489546689436591619499668830221270956331701770115331836510703793500797711285026209600529794493131463310830938498195797401663061642625974342577525194419731685937101820871526868619904523605834897368578692672071080438960078191373383523259401365774236666238946398232483143888476127706600560838644496685999534131764450094727217015242982384190839534616369543399577342931841396387212187624408088290306422918601485822774805820488922288854949958267848238602467459500041681650712187613796210076914285867122462836120264353293196345068909463955122912797459036036711514823387568941905602062202008603576286190339823017321280591824172585538722212480460619860984014794190082916570181511005345059428071945311413033924301161587727269190740651149468994293950293794710790606664095127592551895918422988654569894890986533640863522136081078712616975170818914288708520880420350060965108827344869688909429169267883217947179069591638074862809928514199023194389063313895539265966970365199094822151654865839020735134109210890055054734943146357473890374835945044770183351606215751319256728567990804238057940284177207274682213429873547699405697298140109672303588740731469686118389727598228548814730194535819850615150201547294433262433434288811905410868858929840239119448521452060749029459184597565148738135993180466209940978912765672031927057850000250271381936304459118976883376141120057584290408999056287577609771188790121145879005502365654551395796316664347175408749898500724325695096828650985183373929281853654790766051724503013821976073372204208370030121467986196380163557607162057299618361681976336993734415403998297789141958810122603972371321277528931030632993207639305801351538738654945155116575183386669775922030312239272449206427669457998678471102903131436725996499861337781885424540326910029115306918170571321053767489958359478908182576648833645212840500337675036273511879969017985846215412751027169268825729274472913674483365051771473739965198686875928033993651351247905208523934744651730854504895226148388546279064367726481507424267200891330653359941369825487450666175178634873294575050299178515450452107372705936688612847073686098273627524927717421501524607634802597818385739135945496933815121136677508980223447278512206491419095053437719756572212525950769278056770361821720309896309493721032815647845014166688482467359069942935804307718267652352893484894824066115662879204490585117061421742158396594499130684668843048938237526519140592151240362821247245869936801686283956830870634789497920367326654257752193866574542446185383830789826063003338016346635617926453671016927299089406482924235944711852231491528003162768668090592342533649670474072136771682551905523237279088744624980637053842096326492516256576912905170990627329642618412875109311942455810628780056970335469120613216614140653486309106601797503056509297465650837487207737920892429408920017366646725258796641975854741177911958754127009681893271718553251818517442864605612085696983714700171474722283369143205121898271404263447785206871527168992367244435002220350587669329931061778478641492721370913951748341819087367586225440325965476693916921896631401836550330740958493250262498119616528361116128231592707905434094408897741779064572962334545884797262913015911124673300461138014179530195102411095571863984185111992011451006511210817399671372610592879228055299462039570687680451071017551202463366632468348810021627558652862603088083286276095285313883005843871889620500494834382068343313370368651089468987005126411751155312720888131159119037387853347222510011512073932080174814631217054227769854623050792519940058105130561460066819971604785218381178901434280215215746763497804791498699642888549758982205801773310870460668067541016914100073939739123192636000317131650324871459820689814219826205557495910746976075662886578909216723397171690441882155813891514733552788319540654232221738693270270319630224787717366337594245175642392278653548935671945467986152494001647529890782854112791171988981980713366140981106390883671215049263333711448506336926303854350374642150940924529410690180066703577460110708488081373110150694331133116840860507178996343131142661357773895884012656261653111049936860967562007196752759714630723253156687782266726266218508309517727202750967287989688799137489823651652855964435931868297401753841145446573119961370028802708500701533336750824419822736475178464871679477279573542369456901783240308543629593337325193567400562880031742431228785969633251055645118998068192908430238505043987856230775585197061818383781355910287928191182669273312157614617552085670011046433816014341859856856971707158092800095188767679848664940572176968384919278784382352952575997943963120679208233461054042739200132167433434711572912724219138292475080435091209770801849286847759130321569233773481549941880355595955711507194449558516595091326473886937860188563599156751799719012272414561715742953568384713568055784583196433427872481170625265965705477347340990226630149644254856040318216658025015043269654698739180757791162901601814976754723274369337023199198511450260941608075058395644746873382023243831941908336555940278285059015798926714112296443296939232069421680602362670262996532525651807216360234245095608201720698428450562584595882023873504108674812427195149262653814754443699596830430294801197841816793266038024397480165133903171720356915557788203044438125536985389092084881441485966402347299986601866980410936979224024715980601067011722089872957843325018336758319093458288110567102476417705903468538729527539778065890291084117378134113491571019488542789040681391563149021473013246124781796723871890353961717392853704217438833720631548693260969296203649210131374835221283033950930096533086911664118784823448621436356396210168614959483191841472988564768418933357326583523897027508537150494897343009238343485436681049459662894855872266453211680567491181635471633854186416515357401493530653443295662834663880916682539300679103614272874162403817257010041630208805768272933928148309028191049260360471728832465854509987687581161179852720204563990575959324741329190267292053405870966800879407275344700258090459645630022460435524265760177442472270673673147095772060678367529040896307098422183638350463382942149907372609469389035966813947304857518071477074214044964688956015244735680690083083867223493991661818336995553594365226228544146618198230100976586442579296410636118644089198412007085572645321311757780501266576301484446197798118453976327850450880783151167149902638271507891287424206810427669189796775398487756070670913775051425984932316626382306297224168623175714090468382410569855947262291172882891044235804381085193856096181848218674161988230977395754459631754352041942312194275116312811858360981896718310917308322978407039039033008537290509902245103849223673959460661414792275715985256443505122935203425156652487395905261261292924228287941372302503795144491404126264743104561615104119104640015808025063539141213301994911460758754528395992689514607940362481674426238188817745467431489439867506715618956917123025177190708488301057685237381688099261688703237276408101707652827675037621293056393582625909719147168796324051705082584752983928158482391130342815209457972407289858571754173358489269525331185176626667470905962891357252805334923796304006790759923360655670851506661259976083610090964029121104634438339751856663216903107663919936804623926017953800153860160560127806415294561631351185826338479290908153363026689676470783370924566618179530225475078868989383610155302686172474001597047588166802465989629866968643703975673923581128192122985393887378010630738229830375337313456251841610537933479658395721108441720847860951123534266167960974028305506482945931922604243100502018748531148860099212477378411929518186178562483753214145325134056026628889039138822690626355760217596691351321444421461143060870076923682374555555332657997748364378651071677603002436463246192652852112432021219964069515709948750063011665718023668322853005118940539221445739353811715087971015522290727376865758447808320201019747996866174741436525680520494046126690373900003064142786137764364912755505257178871060133444142395359878266746319741446633656873234824204761787234543921356002660118461936246383565398641816284808733367908729464888066336491508744024023405030946706943412694868084927795845251221510172134476349260298663610977785306651848187929691021415814668553933754207778362613679659795585388225462693200484488539153674493835261251520313427691833461191938188975359896568328448026425769156356949485768417012173505889489319653817335929535415542966902007353063332576164275446064847697853112052166255460039095903252956495467468496874812443688004641022624735171846341816476858934565732100454837775540019931775917449814380893089653837309510637038934031731672005316839738159399867135563748271953507347911090216391386146583886000082695718103344154331954298880064624568911044598098991598124061469223431795653633297967122876403964760843796121963325680136171247933504955056159384847361187969497348812422369807631156306144573866274236709177624877309909826053164604538586234826701446233827081070482321842872268993179981523427445451928298848300000808564716736211303013862545664603680407917860461548331518900003632484683320345709848841365039634749994452409646402409046663654317501675482934147909469182827902848218967610966349455548013854668140977126041831610236949502524967800540839879587440255867204038852623304638330854531187557056450493977731349106094271299265808089468532315586462110438454104445833244392613164537326879478937498813185116487517453405182134752814347855741944197428984048607445849224734562974810019598766822637986281848915971421123138055158859605050583982457763457589491995475051145238266193146618191094446305384613642478580362014073742835533432062672555996402737663360983160365781988326528968051288224959157299967239150072311617251474251205975010136809595278276845258388623200469751274949447382724824553344617314062938043390120577224264945982943259793169122865972318684964721605104917848816595944930173653088725083424751486157859562267340693356007471249865395269473966834907035445626559896897147269100763754902297034402927440228833667375257962476693255878465182252457613819604391592383208201023915421172999840015872653697573487146710108023406425828109285376116094665218609698461621072808233936104886147605055019022321516340563317523804203513526028763728170934604781608057608348957355588634671344485834581041826522126642772539597030309479054918323111624757038798183129777175234422743734107792067444040048118848801177138810057859057999330406508746766856951610699339188169369137329247950257249778129778568424195802760325666650990591938798455711288568016458033437392875126400222629255971831095685407418989451947187187417946532171937117483515163342834111817337838175533956338710763183644319870255053587188457469558977081149197719467630163840737506447457460595390641272029559238839483557208832561149226849271384078019513796095674299795719346225741675001767714551701297325851032803663029836613781809017435526100557469880900218495573287831861810385585220350522680189289885933264240870625064767608574487577446824201665126096036491568325285350502279987275696989177329361177678221991878795660199721637958066777625637976661399169645829823558277537606109309212308449504874919902276847488248367187643584595192139360208918990748377249978289802768567950871141542735653853664146408889439957205598543534293071847046432178467507435215643965978526436616148951696011076528232901419033699721765380367053453868421274037950480676121158680447901204137492856193895423143228204543865279419817325896187705034139916394155449404194564600239035967955150215864742840037100711422725389781720761924750783973934613191870229929276136881372432090531027887329612554821013624786300654083939497328833195479513676839466594600330183614988476978501297948279208417865846650488449384400755966572492874219387554232944715353639369039492158034828483211904257433147208910120771806413575516083282051726514858366481588590591640185962736211583516859169569986195965576817561767430015241096892437940581154100849037383025774860066390747828173064570621464145944760127213330268780070762285916721270885897979632732081891493443721545640507434840017305170017491567340597264823377254709170143784789335610288280633143799261182375901274897370008943532856518283115462747500356209515979430705338569723131604038941801776483476045848946836869692660582147649838340629099315800549961975356101744301373981488678770582981493934369226706457959044494860217633816647850616278781659094208358225810281206192777956192772238227736124146449573428924106917739329804102278018135122295704160085354616382693628701819367890468410218986390821199807779158863806340001197662327035540320600074811314126755797183369989983432541328283115495480169289917969567488628177928003631951009768584557374630699771441651463563332348151516650410369120979634258267348339476208917440054163791109310316688572404427343008502403917183527862135832159364390573812961963701166793945254733813493383213131217284985709427952420455927095493104003004120746939733687494092600357177219889609405917056642677639878794949334470354917385455926003173292387679442205575859078203364820131284003264450347576850926499157382090052601519137436811050043331704465112254564393125529029776472899762910345090512808783147056422525379327269736056968986611595362467477511699494635887660467287811365157420014512340296160352142267043931959367229810939222777686902542489459562246534060964164169620969194274981654392396422480124860444603909571632767720304491549503100410032926626300350834898090931277824284158632149101723971789974894104442927447134610852910864062574860360968213319315083381449378153359380593969149414725704431573424706533528345564265257199471560232862124571263691145390441843408574217016101832800785933429100011285057368829524286452604028608896632884449502516133219422885014056419436380813183434979984715197083656376964293836841129394841656700664842099055191061223630317202982670301300306651937424738078722961725327706073225500566484317868068683885149936032678367524341563694906481098634349417982611777895192300008929769219880565727658013985437870182573589584917003476145502902581535595559073446191479446656615886989104992192863266758999694613081505945371461714582539240823974469569601125734748789942567457795960492863057307751385745374422651868674801489882184653124370949622558833395313749226103941839085374811700615826305273529176038224367934144069104404169860378814243682467167385671409890881517754181163288707733530854221542677953586849015552290701352794971327729075121655882615971921418886666825810005786743647079948199154407035199783449912601996147562803083327959467409229599696003088765850741906646984350948695194765682510076200053400694655995185524540255954725776421044061117995779329257756671939775395137473105227039011183915048753367697056528580630736569446210523135937499029908752304427077276118291540472827915230971807215584398406721517638544219333305346558042712389753900571871218722640326073941247582500512990421069706431238421616600377471569490856956485691263981701067805009587354641575039535719982972152414871510259210741653838719327089121214520560672494563676295918543266794084053826470252782651621014452171499634453004285646476745468761905436172978451558843580619105979521658980153028298511640200680637364237210698598254663314114940813222829768249160434168848726299464933029844777250593767906585076318878781696954651237698807319587652853867570808297580495593999508219932497727369390996646501096044117802857763804443893738178748433433419653746298292156827869770938140070193329951050810413317805549405279502766676252181043087891491535295447086018045075310575328956982004155325626124662520303468241002232046778245807272535559649690251595637002295286867234790724611419493411486457077292847277666970531645941633634606385640052249089935843946625989383632131813657822767352335830609102173479544096579321264801567944604521956977481769206958940435024221567331197610884065373542830493521754936729208529495212464026628051739591633157864927611262491102301594796824872458735765011372232748103409471911110923933304192881182997627090885618304311576388527853382506135645886615096334789466610932893488286080749382916221509089482746454227253839605329300761280055139901171287369613818614627156276504191233462377510978233666341092477638913792604872779208179082480115865999707355150534929120722791449131864050470115749959575950450509675150225163661948962472845697412610452938920158319587763953968154431750529076247963126724666250135847717939772553081174293825996430542962234885113080154368356104831821036839126134618066338453069343522953857234156011242846248930229140455833268170829444952737965023151918617583677949202607479910592833311310910527676880816065200992787555003485887509589262006469768841930505163368541131827286725773056573180540309279878943968343554762445805621706200949560052114971077420169368645728237515159361001802450070967749832287862837803129533502646750067621472473031797720485771595298208937700006329834562795678596290140142500404896691674559565182418138617785864599498610232117677935749573699971644242049860765152394323340622604314889536076678952496416232676370552240650693070910984812511819547484775519352760734902080333387719678737060298208492180575923007307750241126850464969534097597458940168163753839762888148999349148105951105838995954934420342568459275083833079100090099459283693667109218014526371967337676390743796033392087891973004651282723649138207123965676388316351889711537437830972337729489438332814327246889795769931988093691776266067124358989186237213638427733674533241703923908786100041608134960034810804561596128416446636057162553785429552686018422951550839140050176536349163395849713263876402221233024679594518104695379371442047994807083889434833490729557273302520280203789107099818778915898239709399865964764796626865464805629814892014052736287473153465794130866677299521164399584305540142869097254107263310462837198711183493388521972037811444683663708520729896889460621707994794371054641698514848947487885443532461453304118590202846385823033735773420608155900658941122003247103138526360075127878547693968906029867527107755384993214971166600339364084502553375493284851486294098311745401648484305289739274428761499306464430753892357168723116232332692678202981699950417079711026389368941535996343619118274170490154907493842611754483021907224197281403167074598493501693486088332550042554740657041272623108887866446951929516341461825731108547596875901406923087911956960031762770800306006556145300500122822891543297138470061879228655760296523104415493334204460821458769457144973859920368845506286542148436163600921723494295797213867734102164220564517397455509749507941248292992105117563245043436266622433326594862631997061143385037775362356768236825339789925246229403722006641841995897153202169989825008026352635037959937778136951661272981175422201963541896441537102132240348124876861576414727470620508022739484030190181662899897815056222022840729625819258426491329381354948746760778589697991712409526277649976998745545248164778725247684160484452738905226093280812192211490211838577940319058177171171650061148796408603741593346463242504221872181410733872034859071635319027542093598311967634425511792410998754967398978167544312577199560860947863349555248253022216119077805429351102746175539855831637950483928395141222294593252814500734215858573788124346855858182867599483950178394536309675264964474300608009597181863751147105549902384802628234064501418188184665112858746695803901709188749715816605180514116346016507548106401884637166468470460186804108172077136778352999249723852719960387122797541184330255701112619578706965891651903384709739786238994481196669084694943379495869512260026997507151042689951689350777859271001895849866915626521011124996610283671657932103012430663695104430750108371027511641895150192979075959740177752963398450614773512078881113168521224104875831877428232140611326993901006330420756494003746764202350150271403784643656206125457146272716739438979159708969411468497478456220031759591898015417930241204085566771844900026196567204262019627264827600296706175501076423488231462147021568845889588430766260997764457802597669730935223372069629807733445150034386030494820993746216758794675556764734066457964019899043439079682583225426796100231874058916094662259792362725953076008620351510810086337122848896615149624966370170695040731520710283726139595890897646085650517969766222524799355355139378981142315436858924168569529150714409697680112194578053149168485125962080995268925701979015295478513681650750062279753701611163744546546676163382545148057470344683111721075897192504078545320109970867608323814315455101722907320980145099956392963191383813558485147782694082026901349180065332748503055582307590752009757859754222342035888371654143166021837553634223787856449129360141755718199359158678502363357248466475841779215662088633910485085397743373387817434269216709394553844317620896853612587679014047651646666452413417775164796341947526357346168248360740022740309940425147289797203519018161612713358920788604154353752472689171661757005208852729848707298000643593312018851055334711314524919893321755348014976583286025166376964727653585486342586708149995658959529030364883828074071042552861998214862983497293435200791030280755849550800188223743688109462200168350861904092186364361065623523586743937082503176203498409045257417963841256695937469783698715957615315316537444020288655240706534190195478292770358717150423772557625237344154058859152324260985205023455378864429106741707974247055988948703907229113997601696670119597758291367796622580671821780492428492120611199086398634094167336050700415700111087335859747091433898679405273486613944493675095050320258023950975131948018674932748275322352895922260048795183919864378650613244153428060841753309830835920754858324492843544643706022093258980502016728938202949103199022038655635061428711894861351398402444113201861629222104539507308168109899582448067355703482941648358851542432998347496242348464261526386254524944446214972094129472690127681742579212317356321228558281111577962487831622292814751485369884467961279600890464958076715203439722235912233712053973622916701838650758089371003417756069899788267005718148630110612024083023197045510122351002066979362327448536284450397754126880275584375506602301254286475335305343918429583851627565333453696458774254519050495782784791479131103908608242746774620224534567950575993572480840938428451061331908375202396873454855882828513558019113990313556282622153845253752682926722429653587659030219481487308163319021549524878860665152553603784086072876978216396996716162361502868062087776294851068537624043024615122397243187614675260100256744955018692602218620142989317779696862054656005670054405456423326654164726542122067724965625104402155190967951924573047536840498045891383894748255929323827274216818536686339764953577333101145326729240995281418096741674186780432138423464196572477439315767773519973286539820816895011490896147711252681838255994901988484589059012537547252926834080690651716455200807199124554710774321041328177970153151929656130086681408415494639301156757100054856098975990153256447527411960363246611548922058056900510779632959230677728415277942249571275422183766753799425583135982366001664570317004020135299669445394385166233530456292626502852364216008728931924585616417222924849863756609922451812595800921038703460280461988087728435536359096872787469329898330937586334689501519604271532114460754583109554174956784139788068317976547867062718193941060033283447937007253168918081320063000713094374160318416994752911537678624400422654311628399919037274795611830420109882835946130296007533044933031224241065021427517333268759437792754320320512864324781865609178460799507745245593650705274684253860472368494669022537573484963389227622857026387739865952797824486537119943777760638371729243084097624589159371626414961582489887842865069856511842137111641394897808128519870661857864012609501799409098016111631519116885677725243640707949783914393177115970189171240024978374867436662906714196610765855843088134009080530633788097649951122982638448730432362221053364399421949869521304072835015593450423418737250788207220871434761916317423354806309147478935550193179018346329775871307660090463671008388047065299217439390902541684881277193116945679452574147744406789938336926499412042895739352583093564214062893083947140923985506916020873280548824103120911785905143157416413273028028579932609198025034323697285864063795827648926108255756936829834674527175289397724287342291456322835147665380093790904666639404975913141695769210389525332465483913898982540981567264705684268718854175123170483176287666281732951409308765206605698685145254172952455026564768625963155324451921834468431281708802191844048320435064568538588687513123214593039099228776054429415782304146076917995036003508924602239958372242106676339900975555995760676199679260416346284424762770498740291896041786989143947035651751650889245356213920374479982154238439455350538598293806473070290353349815485829334222976871798482142898871195012429702822602589568992198837249525419983757928798892828796928181228211751473032964361222960717683536298184563101514624093564204706634159437606401386354128302653119298338466111877514087358994865964292550973396997569081307906679056741234829556999155672336968532704369183864000979527489409888533310405356807607184470687622029486903586274006275183067734024371077179355659866034733009186483942425786429964969116042245180781401074772722340324652728975029035319425516420826221591777512768180029786139134635688945450237893281725012200659346445814895553454925477690937184193751917392034030889690276950453181838324851162840860345533987087742909511379495934670836157077711682430648147780088596867996412227788058374221912752240543418378812030654723398342435426834028767500536901350532454908647814724477798774726186277534230804548528090075304086317801455869160791739781388288865637523608857760678488111290638485382555347478716808692560109342191989760619948266446938685830983885592586660714194674453620469174990071864002975650244106687802549613818644295423586347230975665895350222905261925994544374817171072242380478287220206795539212207743011883582886606691677708915148075147766843827746107614995674673875525069748935911589789707386399914638529877900935066567638801237813867182132224429937452449732478819498753003373940305241063862903915984119752948354739058735187839031840792310604369602057886503432175239309977677482080129407589415841909630956942947637111045260642253113555283381993216171826517948651161597967109345934774431149326515952584201344470651991073856468974807184240855069221544510955391474701720226067219694696038852415124514475374271253915930093796721495103135467089769527255331854819186859877302946573383790289913025411404044342218921822752442688898434135726043991100371068775327552045545610139921244405010381884311869041932744338535950961559422762483528200392982036503486723167080743844323276886638246463787629155061813186873474020555174575658741506952339747503279372641197126146911003866063888339612287327980528534147500923196711759971104700034582605131962521076188309575650443362376936018565198410970100690571118266917440183054074959075431506949626527687590861365216299768211067859582343578047599517211492206028649988783985447935552750785896102642132321559204505872648988873965935442156735879459328722955291405453169705654312799659788537788774052565923879386223719900642695702899740091266644844016301869753974475255811247885103280156078116017997727188218245887038150747131765798115569084636040027527708706341060471258203591072912425534615739958238438786649366931165654001372150435094930525750086887502373962431446193321975667306556029006706042230321447716238526620381535294235100392611255259916169988635297661370076864773172330094144096035965719662588392050771686153001484152662808357085734038767633037498058858994000839440203242283850531576629114142469212505163952952602530407402484037598803535383134445572500433213160611023567894486515749377673272853197260336364591370418837631222446455821753690422357491705620963380990664814223922231319081835088238832823887675607038872059606538847721072134821695218725061360464665310158759132901691289594523572475615055464859428809229128553786284139371058165926775500023529334305292970927515910074363279035475647529586049096154359923978483974909177678165523236851373666687743548380347109523229022318186118005194514770556286863430572005991560738211372722968968590490635949866387035616412051718842357022762341754489148495885797127348088663760683971252727064167156868105126613450939632416433069593580841862920014191442459513390247884592975520507190084165135026887677185609590138220728370810555732569563381642013777852426698895464263137078165178431077850498527910727295565698087138856070901078183273236816477524629534451720001380422236607518414047867395671301333756526443230206668022875353340382922941067514144869790165833805807738177584664943504976743739568495475060424617581084059720006877876166863598238328772310597745306316095696522753461340645627085863867111025055658731421782490116587393734063145081006879643895826452558918442879633937519450288757201777904664455945350062704150542626714289390490048805667165385190466254372954020437741142636849766517927840776856281314115009896107124439095219037195135164972709935711644001073721584091673481671271707602337962084953915238010500110922397172568997697829065942621499310648917220027663087711331575017482374099688923678399699548201506724524285507256091168395413716251448079674871803723888561024173883899731141132294407864941356924604903519458283210712617181267107744852319038941140684377955200814294327745026391836370403161365203362238404068768544755076610191095087911779660917581107858010875098473432966616392907106938182601069516003173475908233147989233127741035826671496838317650375619240324834807974770815675958514372141746473418033169173853572831286904020140392016251916750205014515559704208965501208815086018561138613576105012979199261605495346711951379720104693158888214900902979579668769503200266590502858144334494635002013516189507922134858097616574916073203458070618377587043887482435657150650191633390269422822586668390821041111904388437530314259761463301846487426954232632554885457734652975257021988310065470143082049927677188956858325481282154096120933921333034142266587346339255627425655984085469117410389384919880783699444746874308944825908199180419002344696331396994431668959246956708981831265504343020492277180779056172981085290600193124140213964102775647696517402933264458135628477239275122380383777174760845235663542762034665170835132069066741071161150654628527088910912728571549055192786596528358275086650617205336611286878599005618369708629292129202202336290321977299129468933426668262161069842525103972254701916629327821127319242614531044612723748688853308146570689632463232407052044708421664606658204708871809735640621280121117247972556764462914528439868760064323837800893754298077056724894316235589414843771312299082061505185084010053423352806123114312488577137667326068200970179601704143389861756905458821293190555734450232624045276273242648500814707104852867494559885447865143864211588042447386204029422133055306673079867751035039845056648408445200048063369124574717166701755707013816354774314458489222649796561745121406281536788725014812342436023745061632008867796987484059093221281108447198918175549190817018194140933676999803203504494632860115513331497805757955196454468543113814763263007721689787490421170387599128467119481486558367202531642648653583077708122020254499731079734652014897877467002786227467832048518368903250108876210310126320815140576670255345369438299272924238729608754301478804368848595874447903503678652188522984088737121871273761286868803746176330961067980798679948345706738581901872231702271185460175690917779821466706524201294223258287087599964815946444830360401439445672050232906143689129131402783102892528812021607188064652110318950576403665388320861185046474048067327128234833676522631960210160435544169366720779728033561906139301954793174150250163751168767570944535850151584587300134131411681020379715353966348221656419976736766388925897953977830474330411895709487578671655468002277361600592720382357801230772288789896475554704428738885844854294939074506828086635739869042329675200131637028548356433017485540318703566891827061216756646572712060388743734965391688519376229699013238408574631384637777380621904118425961114574177458396122022978477880196141738884478614358403710123795951084467647979408994042262425413261196441335078632935046117173186709640849865900865739322456189584799411656633697509320167334093923368259130729479128432076740850762591462982196618618591448691847400288502657456237883976654751738637996352417905418407370626873661396395086996368454035178125877362261957782531608855126337263049755138543064767070516820369826419319282712489861944789506803566775325493257406310340320897582760313816913201736000227720001276744349473683639296296626179745449639617368796675495550863030978592445866109891910254740209151346357626721230832572264280365017159490329062399238786859889067847301874080769214977778456460331653689514083062184624381580953406604172361847679196768744713927162063197211892795990034275787981257884185040310792414904367270371990554298432427734658412606846384530256983620917936977280945833726981731009617665868145876917141958735136721335732600968143346150570082202427665606310621673980133509919107278064396640144456958183147459207359879581918960194161838078148778397855127625225377379357757160830358494310560191401123734890985474026838675897089196024119764684607593401206917330257311246267044952343387203489517624110703694657262446851179617107084366596041203011762389632656729016150036356592539725531248302720702374782834281558805579097006438923401036576891704075980712903941538175313254586033089850322184052206744723703422779247491454088357518308161500294532040365743061767784060440963789986797138385579439678029285332442567121245981534964298313997248282001356397766506891151527018231399068224030315212685589757573301377224272950429556111178687166984544931228415389285273859082399114581198911093655933152740899646134516953352455617148093959775655119628982866420050318073870856305681457420057907272649853700550481706751686159672183014441934620585985354003795328866930644511069227411029934407541913176247647610742514915587834540607479050513188602400860846643795137280258727218635126699425221367187016958757975152854680724658411498869453191467305966100732677800435717737790706682156964746217643523933073261013429706036122766759994617350489720996917850806554557306091159539125015955836374793231344737667807824606349583204808350241726804855120434392512126006622912575554021788155203056753051606840491655746114986023647971876111973373616545801223345771202995212254426158933422586257443437170597141789773730416019722069347673654851382802603170144225063338399646426136049558292428715092755559402086016506806203489733959084701133474094924725884564691813811207730417078097158768404506760656982582426789278176765114204487100640836649532071362464750829426520929452554817617750743106167718986130277770586380025953758884320764960338263739999962722074456870824868697532161641099772191045106876044250964292377030979666200238197306133965074291050328024575441851924291975591798593138317864262880959515976875542071588190718100099532253709797251986059439977726316523232285201291988164511529095966425643582302041941549951262176522476080393879358082452981542007591734516894634567843195216999004781080896829313241408375537094371671778657886269712423006042689411647617819765919392050645216243188692619262041075010688904446820183516132249367840098335479121808519226924014509027546990856588481841435957012464664449498859425776370621309466387283754009143036632269656500942965882329557899920987019158540277904736721720976285946804065147645257220966379910250725886100641979877835498196152191208465967375422773385493169677027517184175507102150107204540554549120201783666538147545393899452152100756228844668964405837755106219885639427006702004088188074718351951102334186808909989645826634510752873189038830429403532703254402493825422736234450791360041453341590017144030136203123457353776390256015063417091598827689157546946982665329021689172435610847816130955291946194060916681092961881715965732042259501388619408636269320109156568907542825038951963259128464318783554006298347805489308990160680551931565593352067701148160742074106906126032036490193300220258215453616680116044032965843842816096848260991452833799654571489476714012591222976768909905288201130677568245171384978097826786733986328437754460840135407020654831135867116809741909992980039622673472128620609387339482982516242844125755092933327145412217346391696870544017197072376242346177649991106516692667700116936727151020270733026213310409186035365387969787778316461342324756094262761428308695974150662947393102313576760647173213754335935953776577010755220579375528015678489153982316044165653284199882757547232391258706377451414245758284761407683782123355584503116847689326744869699503718273475417652377084567222689422164908716442452811429501279853586689987883668922544524573365204327492318990231118685393997673716312354517593644923113280911362392796910533287827413529642134270312415320799337629073047649709740917445920042642937275511679555263631968499944494564778634698917979916898087836478844781828695988855022942760416346788049208635645125726968661322981767255977659174247629871352111475867841932275464099412832188319705545732887458655474722184274878206975427611596705799501777245370299312128411200672499649052990693518262793482274023960601792148527700543736680156618703540363755369456449757457006894164854668184892686196729620938235672734387355709426217321569285883124689075116395189717550044585403004124868312851398696213518334508457105005021657014578001546362824023960897239310597924521034551566573005060266112876319359823350528261652494965764424622087781745885718322643781191587971400329892468769220382156159850065381228911146314921396543749451484500845827948719597089080810382227005863256529411869862346350445936472559212071206366982686456200546636665853888100412320891599164233591237607341462541795808699811141169343979975509779729059716217080624345382511084321700721527228747422432483284134798810217116105802337386548990233273314478950162072572234339327176099218283229475687859346731305068836911802333078047497077813054303460808910704565994796175059105083456817778897836265435743541092855517969118823154933677724352227778543839325253954902781073632937864655438637239701708958459218832096735791992262910293564425935281023798062700569891548018332176206674481017556657419280825136004655910666628338502130535883441065362227921096387159732666944435710639248377868772721172956964773279023788413491542005723898762803075336051490519938296616799511993730996497430418893421431003309421449117916371248423178279709115117223782659567686996726285769647549196593556883200120558241371836012962170880640384990454732678453971298857172262780562983380453382762516327076204004437222767173894553165705757260498707260104562686911066631485192851026470656802228878136645338903975592375709499522832042009003807818625123395262204523641899610760992116269490745228730792425905572652710365475985820148268354586091811971110505117297884377153859698406739696687523624026179680007925344743747288778926858373147014725643352286559375625770980534140058039355437583645631890167360084736415734152716153905466993826714968496397670435974872953061768521359768453040711080282916083828992742522269023188555779575456764557252247415149218929518668941660438395964605911447312053206723135283482415677511158398032253397236862961667139418135965494031647187872810504979358063187943060782154742943861334598204846526353826863251647324270435117426987736909399299454450387711826416534169981645104101011775856272096574440401508403634020059904900755951362266478386260202036072715341106976987192421963076797011322883291893801998635824372638623915114547927160978003028303293758880475494128133598876943206748146881174497194487777376120780405869704242827127207711059761241621155801490266635853854722219481261265097222364540193872547213309808410094064411940929449625951146408237495166584558624824638037108894525418417994642270592394261919084088436038876002646404238456517009847251214625888257721505375739218549903663138980558102858322451404609925948114098024372300871190685661382648827323326771351156863598337464871043125832811318309149647331952237637165754301564510557757172408610451250577946033040086258619477301485739813458870367563029581880662761141275929258368813795514513318024735502104269742803678961788152933807167583589503029693935766075765769788597793212296872192420606168375905399275115048818951470483001463713973385543625393228489514753752761649269105317988839085713526283611353550442774568664458130117452904761976249671502291618516853375367131136678056373465097400516137946353708586073369619480243994416930589384574593950350261072731163840203573374802876159735504272941689332128760038262718789221440866522968445261617110798542392333015678817525239450098398399196898131178320495977593720699620286914651033611577258610996792204306576796336499402819947182209479588683518051052677296377873448495885592765952267601137036602978693796709035154060315895728436411307443409863817574168255653806975708097655475225166123838787807885772937897955690451801836176197275201643480471967611527281594540240539176084249189704552358962209339398944483955447005260503745552795158288626275629506564441676937198629991472241676507503580314786522822909680869544606395000587410743309818678110051035725349441256033571927616027901935012044076320186932896014864725587215131266070758087789510914278900332810506494556620804037967483686511383801717604887153166674021839918645356647149471158648701023820251111631927584402966198142798864045843170630420020082836121941852554374681162006101376619605194711243150550289261602097985679633824875083064392787387093482475616210755186462398582237478461499733841721936069932425767886348060908100341956841547560241085905064989236581591222573017475388115135863487408888732762582179950650475323689507896815088942486331175264225778388012930525336133560543485715524391904115142815853500440573837144030848758843071232471399279247317020915638507384284741137248294812161611546572415614186690826289089063926507129372535449402603768993056348785695119595089475379567070640245400731058701539652322095790350108170076959722803401697484371708445916748072618633587782819651996829713742499041874997425297601048433907972518829458544739026029894851508208848629351164337198783077381279062963553770146326747634328007977090827660699674808197489246600713081230596718571779281615294769476759173926603940308580933121762700448501554522930613701962518899264648506908708251777333710241019238935777979978305787866045196021507665856943489573475813570768628864502094429110177300873681083000292741336680553860501219652751679814019411809360323580576856124263548884627668662278176844140806105918425924025555074030882452368678942537507356258217710153976028858519307168951898543593987235314164333590768470154103287897764469501522746170277143977209489946590792494438317915328144052846710050065387345260089578223446690632685317450803756194355398834055698302883109474506001864959379168397684334685536110485289617827620049922872777956003233851556418904965450004309475886589382560729060165941337440510082180513099830836230001638410064146406795268833738321373971057419393194837114007179639591381118072776907924686351947144329403294039433699799827520114592902158436718093532221020235683575297878479817003445543281089600425625155824412094697744391581812758842622687672414928080982781874817282669846511170182839401502953253394212027593648471716348254246537810753199947810372128887615475595692928847402450560847028420194072760841996631438749160969042034256567082342542369061881697255696793123360753582118392465943024328880608195639956035106788992717893052362340774192183977856105852860285433490941650680407887247019839124576487703887180744041666306411059014776682608426528720466397074998173972271362598473928542651514963028635965261692412140374721273928567510509170331918676950702556861743846008185581240197921858851248515416763299964448515720858305753648429700024731292237663089032670163381965890616899334706674411771709453070503897996512108919579881138465737767667183831813475367242140952779662099145037469664504460689116877454714415544536965034878425042210785385297592917593021969195979822396978415444342576974574747442396794237702284649000979914646988658422171728069064616911700331846272041156086954138168779123174867137268663608680559983097513663661090146750341826466036370307875802026635152798407250768515050143139320909140556598217818986484095491648725433719644417500678370544385441983475347551325484435633653572060250616845117604477663660228357188655289115604676442579088592578586934321145407211925858608842650344089695565998064153173755151932878520370109941223803531233710129771486634757691610100405159596899214711554628921571123591608015790508882717679140473026895072769497010094676220027020165573441285503845920587007509754087283014601033420529169390764002074093054269434919390994819545951932806449514874442715065602346035946441999963290988544061144020994034391290685632607716734046225528907835695618021574951863109055707397782769236580716862209752407729564983376867991511512085370327789155860633642392216423850249215436065568325626114995968769657169727907081541497251777391599598984799677567753632745834478925540004497117898325340695499428651957181384024361591951036821376992302989640894512166027872547662251371317154234075325099774473654471656701539540909133252157584196705265044667204188995239207756983993372280720942022830659520685195297749641681366294625750922363662277097648463768685226623479596473495762076320130025826711171904532826267403737045863940842749630118842838590519878962547758279097108652791979879171063031769148323122505118738244133226388489160727957156871297041177239941360120472263002084538622309180258637340057442534054966011710665547510148978791491053784004522139119325035653036254667307907113309023742800449776600774300973887949975881713739541697836729568703821586933072763877379199861463771533551035810022714362279417784620117653606838805806719171520113108825579018987246989389372320524038636915326862060675870547582580620081259143498994331101610267165088290582021644875696580189993276464878324628984170432215558983186285821462404990303250307858469884448652569627291451788728536095949135631613821197635650195115531563868610509833076193816769641954300231923649815147774701021530944153692534806135787060186652301264727738532304981270088016329593185039533093882135558915196503141576010572908690790957421948111309787593868922046673554474045368502816329416730650491949117228137482965325673965418193042799155032293869140095142695974703634386700616380951835495784150803021065653062808713741069741547297468254220576623429157228494120047340513840359214650792101865151760311040473988291046610674256983426768546521317456858675838158290820248026239205822621775929732217691537549530728049812474252448549414250680543266943132759263798379547544331218833100792005024321132236911606930046004656725645634787125847106323872858282519578799028221679096395115792634828566979174634947330645637047653745568876524098196573914382943026712108553439899963938051371822820914098173134050035687298775199275712486311760364861878562413516082367404951905439337777421123148945648021595851452593519617293164524496463790859982607646939485022237422898666090724083942583805468088188805807604814023929571669579820547111278206051835283454695405099018149328141365101404567512382858299527796715222135918219330159611949055365411555150687527231429060666598509218668987062226706570800409432986943153954469684192896256753166514134626768836910902603333493033100662717869997693724927790278908447411769738528805858963122940379088713852023154089770378326103305611937098504160024006722579241364507324849550211773378705006944596054181151059221946085601105497320967770720598806467076517264929728586002551568415956904210046754494249487735672298629439260641209642696169101277014817720333934757850583408545572618707643551382725387987164572479393090998277729371191905042967715544894234125138115963944625677745679102208659666947525994302174181465323163488291989313416107936323461194549164000575572907838126079857750153781737709538402556190065169313545130679592854128608397817589668374763200486395655517124116272069460804193002468539517467294543284059591882407159752702142986308747302979951252445029593886389112964486607338965847584100013312547607423779751202676626158935666772555434486175657285159974154623370026173413528313563763417469597747336777289341741514810484873721497690076865602226485232350434342424910348450112807513775592315785350991661749406512875263904710604961996876287621370627587888627753520851154722573449352609636488269380730128883863858290931549927292683213179758942843627462480979423111417946472707231150058603274578515226291047500394544461550146452777762083235510501272543213274855266427201785748169955782157381754533214781430554634602476191610688938308374789500148606194930331960902524527897447683937352963194509223163196943133904907254125495271158748516189700175079925483358970115925344132222783601840233982856788293801744582602930130206794599691863982707835905307730836146364372113448452253497126577594702956860849698814987143869209177904692892142934297853909865427982171481511662486809996671272410521754749389200410114081340923895973396773850538085358070272492054996821881797445158735553328507141001767535096486253198120382927224688525370782620585800853492575880857864352301992701056264760093139521528368670235553128771579161423685346636568393281607971266317211111082656022858495846280983105611544194477752514419260748427791132605770744540793505177556275279435081415232437525133185783792170612439308340991734509576302023425563848566505871842718042044406588710645595241213155998034421600122003634493316073777455313937164668659579600355325867099203850903811190434719723685259982108187497867364935561266118873866199472384180690158112295794345032002305337744401349617464741899957600805811329747518861777366721290601020023182261615262401789800616831130984052683608960707927238810749543830697569699748032583874555335865524920742439416901427324207576203563680650486804552814358815331506555815935644282033165768080999030818421554443013217097090088599021918971291587869746661362840146562597707120570428719682117976191487560253441051701437715003843811145584224947865375627916881457349575655549129298373366998383023655454780340488031185354721165922163764895322476716180852871825176963817296018869610170403803159241281007721979881343497360168049808824510812673903603925848740475735457054567003975838480081397862911943372939590591272384907801731384855965277774179163241442789027753786214077956369455574073895087591530541456253147047105621754781785536793888018750518916370800398147528836566140944202954205951064324934233154789827985746933277980219053287269906146136971841460859077633871637181637461733616639844259450514911157140806534730509350487262696892752324378173888186921328857047086905571920568885296759081061822768024757956896715827766837133116678599127987980186928452972465760608726596516572919396392514235671634704119459503529008898318265455326990605122548642117177188960122660674371483220107910587069193264436074005166009488010338346318425839147488615431170866733205349690502639009669096059458876333681048356549638651754000424678752503273027137766367168832660390202377655068017799770728996301679633517229252505876176577470222841147966882188286028267134145858513059310923246421174789224227486716346426430916995256864257540354318153369222925400415807565150317704301987650551467418062900768358521262117267305575829910540031725912319214327295895928308600681937031948622573865256350691066711928707062809645315812279394877777139633713314364907420911252917640661155269949486164259005246646182507913196298189649637130362740743742844880490291132100209098396688495946246219275315664898182596669322137001240083133731603212535316338112418772995147942391035663334327435561459746698281864453497064058583567488118887149628106903449727289432002231581225407380032361034148856946542185897720447820413710331209543132642793976013565817058898471909247980652346405509188932046746802247583258375127366889414590223689362611999537217630550661722585392077425749848816192253745298307554703963865798191834069461775899883418002861116564703642071135447039893091420845670271968319479455221263115017744360978590064395905757816235990988834835538768257358203155880615724589270588470709286433391154561252703763993328190659984246824393382974714575848134517495931630314149597560726941589135728126248600848564628251790061649263398932009036185823465600551455157761267458793288225385259168892654023480171184417599725821100414834180023217870934641520695288423112316078350074591057823341157766742993740025281950975750337819226368141862213589815002744857712654540124237474835850373081826284345574919690136065670380593274299337461600104307468183225512626558225902105250440092862012191158052360598045245965988087878750355797532991707433001830598037501087745694375026481057422101956587516863978343818821302684106862923019657833197464248752081860443693228148371600501067213745006946521368663718353743307071853297414198366003384434230136407476393912772600036063827692529750925811353629751295766920815686978560109758367150089564216041843237297922313470534735849225835398420881228096641064362323125736159369223943829350108300914164642008041181966383044687498654630640651582173797117645889415667886471999585977494097200028073500939073009209780425382413643948626164456261619639919679901618034128434582521188938927863064181186107035757098873090570875930896976118905913788214656333873966120511901934639766788538735746659221089812870292376296142935571397194484084749308191211272407048819563349941828382440758200504294785206165033970575743624161667130425810160704260402937774500427436795706666196788708755209449359990227857589035693660008602856868614190666838888720214278502288042363602191562780226274772935043182813859400121357432544590278653394230413470067075551035400881898118173966875926955792324027063739300069155481981121121082722347542824375838545886450944516302329998380459920004588068326996452152530299612294340982198541277948275882740689233348798640413227415240498454085909333514534792898197149484182090169389186953791587327921183762181250042112060922828528026244531719241444280751059400296795807179737225442990579035265244289233885158879588679267022496288838114191008428307515869531351691157433317826595673029061894423955932669505988506929705372570837847930791802067761196556985647929999885136029782192472901447602184317477313229585068610803028117184890833660878461541576464183476620688502304856952179458744950549325419460080303489924233025515966562342728862021153312247424424004910147233720765702440112214000887075181338252992252209161372067219213228350871600037767532863741675744831582757680209970828468820412387567117298337278654299340985057019685146526820963129086316722961433272643511504365948486151918392091070118062365929642627758186257698292583674962729213807176262406374301360859628824770409380854646941921827310000223827795885024347826572948126874951405989171651147949024768102104694794213251933364961543939450820468675328811048033440497400701001014574872690643597558975353130616883016301263367016015620646480926214492715092219324315714338975746735915583520488772668112144095900801960115120838667752550906524290743816925302724947077313818165813088273897221247731962720984715784125647029332143726060865608755453131167660209591399476587890515659462932789850749489626087460392689824422925446165347171669212928608874007473830626327808295829078964668303475090806069746132952389076011299643921309641407521286386971476108817086261940399483023596419260224061615513804093060258114587447971492515284398048548636405533933858456525257719338145274641388658622241881151899352895236080701989134831188843924419046847233877169089220195699034198528608207344210033956885680631324933585915695858180947701768053535670807217820233316121642118543728046740852099524434631164128652479546373398797676726470812713852401859195158118891381791980761306747560019408508533871624123224089800482667797451058273804372332471772813454588736469138012513712809829393246943163973806626994918457449001282824031591650368077893567996473573714040673645725874791315072826950075065844306808029797540139244766058684698478049044747237292588178884074886792119914240140923016753279180904971277886950241832943036443149473365804180248372253063359000538856339700891997363038224900573475191233142431473249148761802751545866778666567866622075464798861060237157875146159849439429651337131285095517655633038670702357276326047811425159942687879761048588357230517291402330488686899559076914306343120865304565049185327592557043525295876325162031106706851830744657145051930357144884525412449161551897537102097697234494160448086396560330791294741795782551263738607027463053701773405085533545990954208768076282728502582058359731743651191689565654341921614403691361730899525902407442139339695324634130400056467581643421594788869637441072093104217322503964856408105727409573688885613718628947654467377331940657473988297076854116226323665600968745543840059219163793139908468770856085753257418960611897347047071389483272129183652952478060801043677311668588524700274174230490773843441764845220457796286235069350260278517384343851633157563980501892788566140774625766767251091807929369903648805405516788008618487352996123065410323698445829683446529768563632787522272988974076645768576559334789737654089665584220765792348631101652010384850479589896971480487904874428498376084374955753789896243271528433482178950766104987967298446758263963831812824842421492648946159193083480425716678837917002525599127986015212133008606393874784617461970566444531923032327363040122336475293894294917738731449954197713113309386901514696385729909602528120817971748725258535248601823328359583454705295377785227805778807869564817118451125757195245734675194582565230310451951999639672920056025080980027086325533016931242160503020047605525105418003882424070209033297575205171430819202240503507040293069561343844580257829636265590344282357023909942576337377364659034517152324731150129024324270440254794201555566344575406208806259711324340628450705343946193409490052429552502731277537757939947584790377779898473092653402896436294726137286299205688914048634601745848672097105874050332803630903440178899612858036230761508091865302076227047753194402404569767203159097204000919677650416809903814029706142609993179083401430504991372963661173186191308581159327422461666988645295645197382614877434256651016695896430974078313743427738943103940832152268171805134926360446059395665872183991217426293018261038551616263273598576756098476210825161575518007256045788054075488769287256525959319189840817597728661453673950422057399932697211217214977465970536782125032163096090578319371581431024490514633600523329460128117716352656417944149145827010925692718651525979968528489864726780149859573075519574425417967342101389840882197841005500399827936023031276983889986934707229957096427365458732025206417141471095200604350644196928703333191410758350835207373267404914324491742371291601583382721405336359439498310431376555461800205404290594460001803299173636444135197516045223078471916873194654263467930456469178370371893067110771275502560389626384729174059302768445827470216317078848784663529107899468779388327916010584751118417862403338669299300300518371847277848444517041420939298075593716458645807031525936014154318747921041371213715542608272964243734965097449451876073659062267661459629738222761076817063176406504086232641871728609237398797612539201721879624171141559886512691015215057065233848275041524228819180445356009363350699851063583110931020556061599890867480728556279895828102230435213314879638661942167316435019870328660081565201625896380817736275254666535057157187363337075841110928464832084228638941211406329963282752266451881901352266236036797165708312465328917776877056799732019084074323236660011277266292143492747018886884025350973222077726474606947810363653397672238981053761355420683015610501884341581941447068147975106988399079967951814878442044046355826724383305901319972746072453985677965897688077514511046073249676992678213720688459563778860333432077674728395374921172842336711008643311686531887063136871410138573981147630568074968338210039439335831308758506826010024734663924341780149468748256018243937983474978412787548744128298854072543412965297195239918590080507248616656615833708472213204817367643217576670890158218960819725692706042909614445044048267871112471575072188228870702172182291848626017412719122354137761653143889575343294688077906973414731668362423212919081861398499560862981957619240012461069907701563697530655172826967187159552441728879514625130551562678065710486016087781007755117941482784017357555033074205836521775479894474556678136831136474696046244070913511886748999204866358766480872517497823415832928543317443700946932271545100392059423347574941790796454475151927065683737995965381456704240787867031645680468912564159234162114114425869458438070718903459547195645572613566707863127262805887751701340190136545849719345044828834512338839962315434332037973966734673762327052446269265923493379517843710600070749116492418560549797315908710744822426763271970480502257642577599707162443199651839195421948918335458711677529626955114950007370171208546429713027149495700066657995954078622378148594275226762537509910210265663188089466006979788308232683845654065745068782761292473963626415950510372007791444454896610254802626549458544286554643901708820050943205669239737049667052151252026877590662712920508511854113340621977065082213276013308637022178666580990222745935540231055805739411915418005386509067962354045311225774055210549162220434331376948394422770706046367637451967948240395193677677235619489374384550090487196643836575101715019765597873109819450687229070156616258953852397411762589859491068057572872357757986230691294893462062862257951899163830586464360735344592498764806371060754810352475267272643425599292705835386175330614120608261377505404777282168170371567754109945498412069263242624636959193195228554405008557995534164003227616582267516665581232527404517326967797818048097037020435258030859276485613230072834311641912126476728750295834212483749750589404370072630527144639100878799795048184681150381287569904652396640393033955053439412087277339760345459591143225544042832439886454417471063202064347619553097674701286368293880797528012768693801791619268618185515640561432350638470823580901535363064696702879224941725738475290968374969942014843266934303633004962700883722705722039580311815861182018570041565986184016075196879928010091889273005975820304435777679183404290488440035573981990934256036943332293383980553309681625601286900809661614171378959346037771257480204598987106992616849565941980684777672880915918033812606352893205463520843483647760362884545695881458703534337266515746538667979736934160588180445809177302203010462277886376546819331661635398474694585914595005746529310754321469964522184271697898554116680931228318206986848851625036111894492754814023250685678368896413038854181209753933056320636526395710682962653664964238986831432762952006870739527773008104215129554949065847818985815864606019453441654787898940361462603579150550098611322267558951496241788931578566698729094084879091730457349090138330994366908071380529540784446664935167398303384778192641685184896552196094470085439618476295967567337226416897535578488837627745967451296060453835434671760195391092216927644125004566395631502094563195705545127331390234561107667299509662570562464418700335308113916460479067928085948037448977399572435377537458236224261277425674906743243256969903288787397491688077161875275599120961008209723590709288690422603444711322476828633103798945064412082578650881302323411923477430644441664511058380490625315338770511726678405778143794458207444676851638725349873542849509986953154621748540351464462305047841111960871282775878986223408722770718303312368579790760780573261971961156205717037822405049941256313812139587073846111106226733669196181661561582430640293922407105757477932711875541649175631817990772507461350954771463197975464708144531615764129637851899114415939687200497147105937592412742125531086274088647903864321194306452978326353333818161013747395331669073457114573096817713694204470125144966045072800534775374957805577868009841862344939410325027364738549790772217843645072293079612613365376608250889611696030991667976439375500907297489205681365340554281004188077762151551991651822049658300426339699350366150603804796612868281555181056772450439304412833430909058144474124090998350119516962645402317970764150105810440740058687207775010995851652572487971013637048709514420005241696621192624395281213144384440961408246096244035160207403135998699698300221645117776120589432925535849753477778593679955838645182201950033684936199032383424271243000187578972690789359174207889926993582674589596007386886052377967680659778090473844256728021866539245712788016957305723409757831611635528613323034963656295269720123296981662948062720659143269888133775893543445480134072171041232380226508039705796182590784766482645796976705183436167452931505459960484021250155936638384430531291316687291099164354991929328982288743376283448645157250670712191095415302125626953298190384617735263684911112228009627412734989768209625618648751350254922943188732875882034825901179138915987770394605987175770675644635832243426646849559164508863968502089456545951403433925882207399374040215388699542196884160131743727145540369238297458255867093952289872095732751552603106672949891150788571376733095892644837215861112141708607188101026600904531933299528525056819955873683635117604173610161907777017217581642544358444058702164467141524781716655351986273384333520236973609267143060302474283492608839902543564395079555561817295924786898444193734542708588252447878876730491407420540048074955672260848095410997108238639247351024478670137788029657033634818518145239395438715990306767449993187960440081772128483335075196061722672682327578294173002945073171571223758159992895376632189288724859473512952777191046292173127453393768738060628793934978730156215305075969491469776304108399167439754543491747175451645339933034126734969969193342112446080268923195080451485901904277597008745803036324897015730082679824232412570357226399431332191459660207479495352943375893535148487682448637041037866957326366812625424859322329036996576608522557171901200804784409698890680943070648886516904513934916808268500382204207971479657629867494729923780991308799507718313710751707632828573892355923452231012143587526592456614469746073487495636334471799331194732498420239105931456831222980472312911965359942768605001630076817216569518881847480479448279693457794309826227185753057691626306992627979114512557098710966069711386328671230677165433445223876217169903583983246386724027291117844266480485687905311209612123716787796881624938681790853001150941836236009406136826912274789255452830436259937395339361132295476835523511353961110405414615417600831356334872122519077776537815499362818581248328330764319783648528281831266079525324030324032476275669037371805445675624067892605377274600464608796646458813295119078168813234392449176097786812914908926729153179916459777301487527080970652452958716538600371767053918837006657420143162799090512145741740584268997888696853366143584198707963862108661375735156340441332869847923330232009333307955612544285752880133615507927519501249271232450942307608480813372016208445394491202649293282278903964481349950617567244139608398780977862260515708488742996791743534892040265550278946626656804944456446998166650925605312672603263111175205122321218171599568078867063036808291213179664846512588130144920760575058687317735967169306985819981245464980807552981354574650280114362740821392057424162683634178816334198490351761963805054673069470156934556950420357565206185692726271843755303746069605413187875364476960118260275404895424523322684776476933639676930705459596885220606123685095815144949541793328317286715323455834418267071843162619936868060460955099581363603540670640342903474604598484411262260435331972517468855578758968838350227043710637821963344728693359937388208607880399846872936470744889129764302938420357976187698980684177287212266197733621478249967682130185613523367454762258320969632142353495843960554401606279926070349438347609636443471784070638933203265498393880137501105960813409614177161367339104282213895754044719808976154643863966635759755748947476323376425647946929380811282878384731657796832026281337967662669205168474865523060837382646359409108892523089304444659800629981358851372687467101137464744333291479389314655723782921740682919986747249652748890202321713767445764879389173603861437644600103068710896337234983704692988845563673548066869791124194850307322266569931673182263581722106341682086734011053160369823366199080413220528281939319994860021828705602915078643138748836817534186156384864167354131263910017469744964756345808052702728470833619553264944324773051947111050395036786232059944536495834278866540223932904283225195086654247497769066414036075187463606416875886368760221835839599467894792062930270557108618611339474503073716838003343967259540116943926767244433907289680825680679111604350396369277515332271194603597439033776535470444205782224523209381352246031164505655240716301700214819768822430779765319283680548786293505106920029925061504194063447478977249357202196528712960429365822947802559348019767897945660994602088663535325783099003985747425184751530395959643452338279723284435755157406601162504854139766946851803676842234069573587849651848903504285684452610587766191305718491307181303259327443047140274688380335679806915417190685467373503625638227042967734977574321476716014460985319772695172756191089772593806667191151766294010393713077161093665947168516540965507082171010117449575905498587812591632925687046823290193666799024598815722033423652831234306615432828526357188456920971086281076587236470889636996426910912775020563078058828058810069243880799628092988676677187938456497108869072715264209504589615484870610419747597626797451817420493530536315378022905205667724442309797557097987611227556997089756332516690861878197224165777994364541712403047009766067411427983276697663528674294526804807587627454967259532743454811687751217476662389419880465968132014251813688298836921007063926531401090087409609959345133144290469176035604008804473675395685211344463604689853085496490454210346324211087778378783331417720917028375226327443464071152506670117536759892978138648763773108352793748201103793301831438198242024201206660914244572117630699521429819003003670789402120632588247434750183111424542092777462258960542930592429070429356147819228593530540422654199963556299238056128532238193365841881187307094726026717643255023945050734241354068242381695953668290470361851542088558960458921256918995094326063242889435827422961356399400626958431089382742127013925175827143766796837741741993260113724039170926708083300796575750227678025933272285002495693242498670415218120200633238548174970930401071265058104591479261362743711037299063967666812685921623476777679325413617990086294661419916144958600819411992016623554760505824675044472211164952813905417633017409974939522610552520713461908542738890703827545974078087944572856286059716243152023599787057816786745043998918653981264695917951999029250347477172528064792300923311089412835576939107200591686982474262132119098851315759762983768728375909841628484695086394558558686475787461140797580981681837908109121527660007753871125608828383433569716597301854142733836202514562298751917896618792380914055373212182061166548464017736362664044758929143924870719428295195212574050407087225195093183247363573641645728716736237203436666545028013363701214385218582649131130965084236607058817777142816278244158083232820306522533710468010133371449253236860550438751632884933653130623547478041190398607842963031082075704480272821310912545680571746841023762464912280724432989749373876777337861438002081541461970043669462433498217879603266014521444818520992461402955274814221047297670374856145869410692538633734390599696431910362661636240251186252339210698554266985649309500483459933030641408347723596130579395791198001380808760975481341538319316852466721528521068742270696222683751544501449312441786890461224114785627519102635988966114170607898056062104635377609709135735275581252178855985266997197598145132720225655844138984971052936824327274638217408713859611921512485719037610804942712196719853189013802308612068532383102423652088837191213709185021962685275089604768455288449577620945180493526224576612296033745933962412360380724651942644329588572489289968347159813060537294203570917495064551717235433711039964251352696864531417720998457057566303134821785654874816755656544506971284710761562103922813751187345165557390020152096137644404879447486535479552789059425656838286851927018522661236687342174437762257020421613201387868902289893069293843884651351849695639413730266842860255177683280374981390778879351376176639245261393532467673281045833917134028251122843274378547373065533681008351297372245384929039161486428166690657817692266415838532667599126081945215134020870077814441624878779363576300303569013111333645234426405022536321378690906762977693097930974121417500333562860218243356229450297510237898129076030106767460380139547840053924753557163473401770762839656821046498424269050416836074146732345435143554565962472551656321897528362847614268851946787979520183416136946219805679212464388268359436465012224636941150045717808229392657880699768297988717180127945690152789940360800894452072847214297862389037167895939797643606529944040473994900511234648238161115460228316705553083865467953513055304645285844019254727606814757559460157451426111383065238832786273565801297506839016568320859787749565296668435590931500272076989113080076588346807837988531184668458992930913863935692124367316176332199752892653665471164858862916534650561467841809720605167978230275310461381842089628835315047590723999009458191791537022956142659828819700599912544260865121938007263476301755438114170502208860468763516140682666313525873896056465243753883970389358156763819515239715850378010297548722900509515390923590461270856705343456008059490166081970657546893888116823690960102196892377019687122313581668379511552741458847142873640041380521418728070771029699946434646431122060530048655515818699418804822049331677920033283427307573482354871554195804914602744802499574322949314456695661946332463029642373981582481605011849338063989593790154527327127965782490099270089765813922142549366448283837311040248085219230118771638849460012501167024957296272496593832138143562570825854452007563344297764746979554756040949576881854107773176909602260128156840282976970273428322417968459981408055132591474323880198277182909204950045946226387521179050636382020619257595962818439690501083580237027995302787686463557166794682370349430338569502801631851223226737132907753639906048497886921946970965949531881783505503203602055177463367237583650362229577428716858733666507307237152477928561297836959988960200796258122653000291155006068127542937054977572017917762408521557123581480254061613749328038262369492568837769641966076593514668406919787176489284454460221188748964739547318362070892316356468135289246796111299584937837253456131401291595282939662924850756511352179756523921009233231191839336221687046649467698591226863863106676865341778119603397179140503388616602158692101826384166833330934640583522867923776514798654026892976320485060526355712281117454657237640762134148551778133614120795256618100258647492765565160127409223878473543591058523460159441777301341652763778356046490800812616768494950162600106744277776751675404670318944659609688116843472064591327554735790566281405849164913105615664212572009452811143889232221257033747581929300938424743394339025932344045796342401827342431266885858888958783160127916382605769801351031907702708511107363534409211129853553743475870935316059090908142002111312666929751628718857685638084796256085634927863678976977603295299865486191549239913372372020443990830155610112594385823706323696876478941464352920143997293809408011515884882283501936470414652149753591572835315860637623836994868345324578424869744481946002754333121326187888837373117404821460032662851802941396506336917532132263458133618778925620774463880457236362245218214618226178756519053551118848035523779138559288029178506167895001972636817759629966363820795544856778471422379481251791793378289985159308877725009446035099423060618944734202687820380325432921401617948151891174002046494763418897092139232833690025796552081312900928914974294466188671491151768685364298732973394981350877411565220620402628613506911122080473627968183274927337637771180708701690870746430950414063570658821989132414487961729114328086412683108450781235979689653439054915732972589706634181657882258812257295873201049517081770055002305925636376770189695562974532368167767722941052942478092427367584598969008098114412712326455357913781862338600710433772193791885558398783942379556814812998492853351624903923386577253332236034456398613655177007842045543179418500816994256444609256710248011443017854239759858495149919173854428765788144566973337829499197051191883200080531841804464147127225060209016058544368440817182473513585893148205241428749120093669331584796810037864628324915905976852376424793690671063428847178212147585895646854948410380107881829470568716626805506910367593548340120013741882729632967296389096366513617643174743874225129575685070966172113324246595255498625952684888435981710617168234640470854609473344569150164389222118525283707497873164911897965575266582742153965339534370808094822328723777041998439570958976565681655680822950075968501029161320124679090472461564591329482083514780421270453615401688665585229975553902890074007928738937263019140437251265878952490456525974616236495318630524867642799912101188924465685526216804541191036113097911850466695637529883409603711665609780283320917425781291963278097708485232193466850133337398545801742741283787633061017024280446405741991485430497689427231499213689005933262069691919778019006768959171853712064057295294874498109322017724446122731847924008572178661614753989301006805812211264185073922513615244575392123983741650734715923964932496922686078366302662892446899629349420177190580166872088650524427995486839386035003576369516999945906983305341824439551157885676470863012849719384237513728216946396705484892658492072189314873691845299230760988557342162784590175445557029633204827914065455925670523221834471180147753795954607409865214855944156748506033844369307205897093318548301017055955059018037443567671749454872821232542928185976428756579715618588383646284608180335792641084259639557260215079339746379881903863709574118747278685709000285094638069905120258829106189996268894511600806910866712155648184762108185682006669408610263924698329325972987528459965052628830921049098044431623572731830757691040121625184031610000417885986812646358608434834428651381272436065720446961040816494076717621205778987622247950935261571861201426849790768224069449239330126478544109139353977803321669628926732337052551952481330620211017946297274868303661972965199536466381586216864374694943523359706949561281939433720286214429309860779101781228186586155589092287456761027370132776147694903483786467594125935237265648230669590630589806308068091279288264945439011935063397998872526265110880362164378392759610791540947977604408065273716829296390614683290152617747477938156852759060035093711827561187835295168501662551025053275150342409119824923145892057767559320865383437468357727252506025901519489286617963537252990938100822627209073196036500338852100473379747753059769377946286204304314019115371821317652073241727416216535325672189662637714742518023801341687038682697287321965587412266086040003633054267138601161833399011297551934935841359631069946910650534944276154979047676593855882756814841184449990104325058144716330399372670074014356101228030649982629409228391663716551814959616710871870171583273399954954900804871850271078420825525935634796011019447577859063289312019768125171419050544079215801448797476107857461927781244467421130020186081308173790090429694097137311645989221255653669591210978537496736431093274714359465556645166804806608019620173562226048205128414792157269832934492096372867379977931924253574765905909454671433690836614737982472801356689537352724247361088652017785371857248221202001376305294924041582195843454950963082838493080038004393660736087493368367285809867244075894305854662781120634870202374834025862162631850841529697312005499455261670965688796009092651605317965380720893909422018064456841774164722394947240860949303725111576228023766155453444860256100787121217865056964460955733857474382899221769082256962650437323044277401392192322545693289699878564020144817844405565930609190072735202063021370661535465917361133070435691235936129507322081491014198020022877296443551973246345581161810319006049961448076279995560199797245216680676088208294180644910689203324455805361426275661642696145926101381546506715037687887921176613011190673414950184938273802466980490212615238113132832956339922287606755380450013245735182414218193363682811536073633132553660686068007374166797748455762433238726443830080526885021459934193830102559254926933793182139717698988457158126655853868909255554594966210619048606821864342279114299751485767681981346617063874146324835082802835010457430823173831579772584270179765659913369824595475166522492027794383918737883321057992289850087278194584924815251647242198313976154017293826541261643186660405164861592742279125495082620414628394950583284788742417483166900284139850058489751802749155654062936599143336813196570038466138761246552148184934183885508901274146319412770040893409072275181881444734091998297892175766471060623632760219053050974349823409293741014644002924604688632746739731310197627583360999827596206657434122109963887697578709833055341803005463807224632280556181301227600320811443391594662823090717493634388871456326216970097776786937149849391956478427568422640772975599015819653889697613904545640623060763108389979709224470685019935655293584673044998075377824286409663852656400570052729466809555463229127473766231714218028645115913087429842287392018868562934337920116041092345934423969317833565650741622478656152676535807054227557430710071036065404508600302905858189483682021995457738067963533597294385842022900223750093027574325897804653898904149612858627472395885417928937186810329696040958284074526524885536277153052800802148493378688364962251833064680702655993715991323551758453001989658382616240511259002359206648795123848741993293994612085480652104607101157908775885224854672370232895434570312009736494632234955029377313992791240927808449552381908908613357176944855088323241569957956674362854836051335268623510450248018986313802240693987983993270670364862639779983308434782342283543489460208283637977688005878172472300565761819567754060710239010054925710628229338187002219713993772689993779555648427008169168867277407602111893096624929666905997004262916818165480171527023712785197157034581002713369229153922524268688592657310827092772008741351471411632906734472267066750646067457291479787957811356283529962571270134310897661944531679839683733767784470530325290371968755384634120137704165445238109865821291072092333385738295120934099891853392059229848538862634914120942609126257601205668687400226037366980362122501529411458287029268272579994706146486238749983782779459334268978675293615024197132450263562083654547257135250465003694925411525827194044054490626954041448568863365019023567939022714022340346660470763661661137864419042464054154729305020150437395785734023437775188665250604500657246171328810078205665572316801261509815428092408634310130986107089796793191666320074376355560168229824941215220806374463675752689564815458576859394864401386997580171883567821316866021530401003680130280640586872288464784269230330497856021670240162800720824379260338235468734700810156342236391235093336357857195581249670583327531754035263060017167582024538428192400448411805278028849440785727044388734176250707417829786260118744850827521723313988724138749060910395360702964389477887509164803194179562434337500369042657642492377748107240619421922253685588955096958705865517540155944208186600704495899677130588046090095215822986456832695237317217385178397803583984169039152131362942728487092930036969667116405379119736658780062716739933951740156309406371716887489335520688906148592684026693234501518993707685185692132434339441728798882133067241103707341864706578962344277671499541578960825390578444030130164285489205526838130136667334925866697811936755805885815416269139668488947105153970451499393485153163012572982028951307455296161120017103077128558756346368992339539046230398459266274514603800619817119080872105586528983317699673119592998112603314522292403805547575458792333383584061334681472108208159170514108421540526147589449551309241488434687690672865344582562136592758159323732586303475652607950841940452720369696184617902087833596009120283885799262686933949973136818397076832011869503207344226413153517859419545416357501445103380445293144198926219020293189741658917742806638301594783258524323114926974992329005719170829160144956062245563700012041614916530235976417426840768830666303647054021965656114568137124993448338972320032886133943384611802538488089866646934357879681159451375400480840853898558226997456095641827242725273858634713263041236527140246032106273233838167975341532067163594280646951344843695661967727121137735507864072813512780706221744436701161602538158202350913903262968520900566989020182927157484153855239288710183878469900894734155776507851806095594031055730962877208535065018575255717162690807327333159477698563895657207754785376051493191104563336963403473652322761056609250209692702013987576668115162842001408098834399938704591708755980437797446819891195676073069719177412350464066202922569063990468446520992021351287262325161505220856331393944187008629270067251914433814917028418494554808748279737127378415700968588324385165878325770039824561605581683233160256739615410804093881069659315698157527439972580809122748332900831942159389799961152127914286009273417265075636062895001870258161119227138088858919281872602928473383414733582063261620533194770808781567752932798798814875066859200213395816923399009318729429323028206372202166983354414525384978922089398336484084392708942199257499295710648084220002434963177494353491156789351934384417084588046301696721778187988417214272550612513884177194579384980639064705179912985081302163152514893057761704617941037379004215127851169274292762956757658967389915213387666087809613922494223368703150424492725453983582410453989711637685851289880887531363936010451082173138266484130882265936434876619939802923452160214929105014878584204476097606381290320790575000969169417357894149131094379611885573331371882923667130505190608114223784650687361566387407723079946981853105375623699719341540846173661365448916220327762716281860304780526004124464224856415649691412130827905041771468560235279187072616406172025726732758048196045511755665006946778382186355518786496393071281134699150946358068563715552942315630306860692262502095231403175117020412965845863500006886540479019518980111316808545360160494032562316109751061925575516628824604245375527720078867290213386320875286600705421501558002081801836502491838456963752170504122936939614927895683580740743913444578677228678928118709601167811614867288206180768773689455014551876485755321938250927485464147326458598509851340402304613872134549730426466388050928570800413002226160487013322254666545813667946673785526690456429720942552058800403372299607773285324936731401952251156082643611310840293010775138515340549114178640126126119198236346241452901013649635290312613576681381493348204969891828293198358984048548019711234921435578326717249119557610067953006284413912855958000414389472729776220789859640885818174523019883016882856561767311863776429640575161767155471910382670001557492802513820430585209299836018822782759060636039516050695013347330854398835233734693686169118793175188951037600874325029466031098992291394128002893199683691541692911394940926474743635416454013554707959373862110387699332000778855956134948995329628163867035779473514816317761695151238260028056724418504568812047946435527872934709950245700087037725223135999825666856241921624987024967269221196864871120060749255031190813752012323472378903528344887896103585807427926817172018803559881054944236019250159719116372528748268326681685867732947231621469951636208203144632775386730344028359199982579193177629312540251616692064061204288249463891935367446370565525596974244086819950138010040094199001512196496713551007610602061025105192312651005439406497288808638328259777030022058702642034216588230739495812182017978334822520486306275805551733227017242173808108194947857635084841523149195482261183972865431527610503614030432633881207573894308540999525050065833837013451814257065773314917776731046774122506784001300910610722003898719509085681234944817725996729742601203390993291604563472232554628822644091917520819550096332475896085673176673523046031263402323358129926810883240322594111909438685345838187680088608334600335099880603000407015725986416077168527563538474514850485226637513795725331373226332953032475178426390406939882715571287458551388613470931772128405700970868136800699076668173834779217679515359586631781978659678927887465982262065582614500460443626018911563694182619975361723347877013531494761493725282980296381157105034236434609674199556872730993993640163623566833016017625201784975468485094099793213004398503964439146071231725091248538858309847463943883207810319054380690555443368549660446472233421589673981459712875327468892403557434667736450883796702908092059938584841967340967598755543309308970659036562048578256796746785496700716634214324396925522380299650335746900529725784029250888898695512932073153164912956504397387883580748009190441771966129809248125131750817709292568852593639826489614727834804435193525230003320419434933530805516159174314386115062649669814593264094764198778885786686250945133449635455607027501563982460096134324022452723240840625849832238640828568291395457720049969992777854039326951122260358081870371286910691513890949555805047542076645453923906853458149666385662650922776918165196249220820563667189259571758326626200802050954672709044572008635272379963904039200049094023080756889534698086178929164499920803241865313602533357051401083262582132270673735054322426707972306724368460606557743998778709377066491837356428016553361986701578590571778742841646637624973992315208945607796127230284351039512566666903859882679795931282218647500934271404181555785992585826042097752658189618758120181940030090622242457789702700224073180216000286276111850028799313614302381447332340216020291439687549135897460257569498987932843288982058514201177181261372663111594361033797124519611646335094156098278609982169649055627545344762951566038882156723683361761676466372312886064426017057737661433971367326597271636982282730413965045334409068233532459973634797800809754668279076763758241339956335373839366169904699133735260483721768955507029271030186108589474541323789729000391411640846167374476895519946188642280691730110820555186054045739367593749746612412005857066045945437773107439077765760706915890664752896606174063571666525235895529130696260323061106408862651030678280986106337967831147585370224726824171017906346251374494440136130018642599651178680098335289003972648964221448503083777096614506904645848830730662268231215317345491058124719691373832068900182042894378832680012304472261142613032328656058298891996171698771720106258711499190862312272946604640815119360893447095837833643866280290845286337384703297964670439865696154960361199819600312618232726936629366236459887098594455317808919464138534367671148000401325503324931106523483025320106820656153010087683303086547444688872117226616916113344122891363387407063505617926589861706837376803619610354654091474586428654868061978830676073680278157393741401765491200132138729781893235243852571808997429712350801556769777505140308539686881708432334523986698748468367388373651779483753901079233073313897574501616062233248025489734099879073131412572674387423332037288081904519936397549372630079820368111301030924271016603790273857884494744729467126059306485998741510229322059606632228970064511720179141095516989273247411776123161283174738451421881211157912491240438986106629431638747295188124078307148167654556898266370797904902447684812497955666310658006877897387471984361558024834647723609815471738003424681534737736390566684187969994832471729350513012252857118488883924258862507854423564169770228677965527918354554571404045451297212808803931156175355138504495153725849313415057965772065943389404196537899128021700282279385377992926353836758336121940264953918196828681229669850229362538485550691917847018977470441212553660583178851491660500053657566966181746423771446816350631717649579969558823453942148742858194010049096669783954989864555448591110109911816099358386867779822730582034519568768499011757771073936012550735914241802828276575050129322544677460797944290100194548897942756257568772704368621956418262992060489531910690989576771045022148947963883138862061207053057661161304326278597662707632498924828619905868114656815557533459128568447179375758356424902022158520655345966811656055622663835391048378890432255775547903688691587191304798338638775879255697576425657518529122254436369206925461466438209859832034986407115723684756232157257827984594579278646107961192569501926594221445361938034066573844260643852515112939362275394836160951623836237985675815884604536836682989464370240258030341850564498403594019100275675699057966938796683625428747698444041119174806208888507894863675511596740632564045145919399390699017067001706952523465304601049623864098343921159135848937125367664795150313319240037717603880762540543722854561856176780858116031732719633572606416238187063668850928187888775151129484121906597397629698016951272898871434916251782960283596816636829358999382473469895337100584032381757753634454108022922069149367411892651814838015985391775374606922455923380433829689058660203731468668258682674372126002522993129837755709681262895333383571626447391665204203425844745772201159354321265261086123493833339230729701212873871892090264428888067039458752628108202713596167448290419400814529213589483372461109021651801088815612795787401318181645575544774990413053003742547036003496645119255015970468735416846077807262539390972193011494663526353494710418684789370141493345786879384263963173820269293219593444158241153562581471394165069166798641065416519792121622887542726674473803688500174569614390080137902764773509156388049939528486108970158952789137386429544547762651697619199449552045150545849242673112267099534926112418100067526557073094207810765886212633695820440366972432418779393846973177652138899562166621224062813771758280387589737358631402648698386845692556593372277634949066825683873813378077846992596140336309369705365908025682030502232197979460227144942829399349567366048644277855882900884523375139893062121710938099496428412259314004233307553636744666313772689180772938902515455817103685149549207733943641080896763033929332144176003274275084188672558388360135073982148779704005475859196050395740939577135404173044660642524226947082961736891562996233954406273683555380850975342092182815791233065603571486427592309988707889599238629293579313244962990186290636901971189613744574999345373988599292689614218228353884744049031845585975738439085590485434866110571643566737829864519550044922514589400906187489091247101530063728856881185855239357514595212498827990728850681991214519515190439767222713609664654266879903876093028746963997032374349023169711050452192011700062562980694414281311164874949863963694694974490368323505719541297641000243481871578079215461712676277730182831819865678610111708197962348247085842458899007946614365113060187807851080408614688588237337595141531541367299482643883703359368869266402532676903311940789335325964643538148476178704658656024504611578677101937152532008610857753985965599194898656397638360085493070799151851291172960105967014489475606073147865515366592619102535622463255056216224460474308269997953211524715928074116219193325475245327430082157159408818749393002705960090423797709744957369802784465829323540719337320487087191680632514597140042191380317721134813807046177229548437545159644660212991886928034343717933582403274330531909454516320257792270304564142689481625596937663644474311453496903417601304570331893755363000636232025202650365977147325406276386302848959162609514279671837632882336838145787789392726018153097637150342300306355876095656870334281616859554538616401923151838402767562134492744036556508184873531739378235921797482274448275728637758696859882117986300285016594216217139042799659591561529321369755138326848293526407175157631485160957869725976393844346857792732247181106614579458100025185443733398783409691154105186966596601068838737605413465437341962008554402566166157616619291071643367029154780239989148296315664475559143138846003559817219434879269168432408726285615875858844106823605592839769399496045200052185071673486596425699640564900916030232608034326768599961946438556414777827236766687931180574434778891722365215119611345162957420017822057106450832028860432609866521789693078674343855625448428800570980468378096777009464333910019095741662938536676036259067522036898021733588014962077412662967497866560981484691983452827415130312955696991467269985132314407022528695126187151164720392331873111159256155933523742481802575644078808719494061485773552008033324398252577414839099989446201687992457791301370885848551408265160473568737360279512155082610553370558039057880435536189011914329480339008890331497663211915296454611023592624951522521649608733730254056235739195796477086654382503815408214668874513402183941097074462217248420367688356056329406514168581185178889034229363744302972703064456672446654034905839465765605311746107198464759988334542677706156926250093396054968849600753015585242431738667340954836711809728870812989928631348127688560402499604874048598461214033766821650621638461823814317016424121210448673174327880352907564249829196303076239394069537720058860645137529051840932913662213165956924152004606217203671098383460781953711765823414830135597884603044172731637794950098964305094827185457918725998141101917971528267516969423431079371910466096363369606831497555380525353064446979589822518914726995875622524468916066315074323336911164491928971612568999498917900375220294126507693453001681536697111634551695207450630958106443384821461588356652367276510262594653729632818482281359497459075146359727351597540720085052454563285349266997249450918383603061904951854205599449069817242150048214283104407137410419378131975455554513255909874829193586881430872972250188890127145792595769795999303026344778421919237165975009487473460282247483037803225474168392373109339797700606056520057995242170256420450230620901462841355174422707927305533462188302577834492856334394538342647071381477152905410276356137748620332641827364558069202954077306232492314034124744536051955756359681744096356909853949879096337686091914846631938393366422794491428006438382058680789652651750773349714435396267814352605051034075129597457120285321713679410833859603669436221978415570777496305019908993124685821205442696234919942488150189975612506897864867439907110599211357120676578919718779841724705085975957210295653687536036039709969666416739807561391177267428949521069636310636881246201046295445474850943052287486096575452723519568956997445978851620964897367709708435290016679356090548291748276420595256305118302489647662674921434047986625165590065133879375915271079938440841975590678852532354247607396025534399809321548416653489992778093124860819118984061654941186103869654080491864057235732346620084898236147104151694585606760549130343425157500197173368072725596771219634721302692342080465144944059787006243187974857630511938857048180604029044057118369267207042438690618811836921369500021921189219198167512527627657578117335132234370200534580917582116798955844862626182114278350077905187169629098422202916448282084722795778252441388356747285147872413036524844306611790835040026634049001310845099353735476671710768303573865564163792486055073640017596798967248044598849586544796768674026865478958802496460113096539158501426645133633725143711453822177843424447991360229764307075879303679736470203709079804214106390917949754460740434184371172570274351615577586076852100328928722823144724802213910418411229359325509048903035460119786988780892184644960655331383635796991271258245789732265465363411308236429993546315561563677885188877765751700677060088664897690704412551143747318230512030136710847548077974351070936719468295249932199232247198741424379070812363750108477103609089531704397791575544726501477929510218503873759695227671908596769547900389101773166779557411954318143136179951472980993979890312651132338408584219669355760683876879770889757655478043439347167686563016342536677110511963117587193350003004875116955674042518000070745788550861602144867432706800159542237481682914168736085426034094754342480947259099109006226810188911816954134015568597208565584330583432368732844938385286613492983323934237532474620917745936661741693094724380958912873382904897008333905002374490760325094897496586230079245301943655195320070175286882709452190196296146249525966615942473272077982401688592466763827525026549097328133727041525350750516549092021188286042354654479152976148220193335968347276234859344260505975237787372986030098901393400860544030552941365819627208334881671672215068682337501793363319121655484705411454875702149288812156969619481407250951499041080105014934477817761839417912762653344807719335530674225821881304748391864464808688247455915809543435131123617156363932958174101659236854039101820398507261404803278527105734407955170778819359386072539412185371734324762057303832419195899363610378322775695011619939638600202155373091408700499539061196547643494130958797288654115468198955414831870705947357800057587906750436594685975540638274398831963783377235561887128151891165050527930162926133954470745327841026611259052902216649785513644097115719063767106883064554791891694797744611534658583249496840997292348511876401564636776327531976866947513207397454668657568782393980206804511210658589487073586950752729533781785356898341805196675220978650236783768335840603688579087465103909524309382395612435555236898154146663179337427225248293311263904025275751540333661193160247882682346147654866382429999099141372334559362471906601909750428698942934816823744824404915390355340776804362296266357455590037021112461112867931301230027620666162765595118319413475133352569092076302692878105367930781967273124063669833859903245513160821646798937892952768921401285386368480641389566963283835249138244439462571622217471195611063533216965676738367002338411521871154174702345779945533702343443624876246648840670020977220768108977686680634989288226593734957185243359692171210248643459202333586900692104518781573484965133141991632224275230356218169185219201145526424300622669911160046098001291564503062484642326140604979625322705958920651054994506228791991650209561122623996519261181528278810852111716712985353912514767035773638559991951963783312609208320243985680374232774192906613673704973021781917975641786617646715395692412418130296613074028103170671498126621502450190927393451749924179109078942790241829396581939054851329029261428329170570201966402297144671654923326343136676980828599239402216635495637742318581783245280585091714776745372595154657800397995445178194573197094693748663819400827892366491268071998045320739711856616711908266164964524725157358189032886754648842744494784997407138917962362138809035337365058685037782623018322943595485962860065452602725941139957777178247966391236812371201421716114565467166640152702608141084748340454314991942459887912701386615461574078893123229949566852346913209216859041945301958548626277307467513920720203497712743691770918256505398690255392113379296657238526509032625100926813919701964625217513397400397112519210647262528636559864037086472118976093876647578666306919830221128302147490723580555226468529549077696006966640560552117246520897221619669995776927310280227746909427337651182971563984386151106036217242414254528722471013651477548502769529368692298084352897378767277451364897636017355010415680896747082766248029285247423496514222500123402665838218690475452248224016927356789109560126065010128903876230485201333378297891613233113639141600570200349165211384357185935571847133411912155526410034062799302483282786927294576493675186327527783660627824734302484510047229629249351691425877424189555770371654388300229185945449420471409780365830113472494420968574756539099560449955529834270691681141879529926757866572186271798589497690589433779399250883936859560555260124548566684429291406345894062381492217996510929580830134981869672596891188910112549751979744165976276727918121986863992114361232601205052028972006699395715563781567799845051520373836074512243679319504478293432563386320669078692042241683901817420919412074248400172289359697675212444865738844509427966359814284415538648346053199127790269965986273439754847341200821296664824028411457927330401630276478770105406854329467794773115849964531396885523146340275402528862139702972850281149100988322751431711992788936849113254255249475489107596133819416792373586425591364649533939266865275865583066676397382698794362865373058546083404321732934268777788533991001402802231820968745957307096485260105366771364422644408511677185364319876858637520273499617221617451599505044381068305800674513730475787767296659551141146331996849466209858993356035345723123891337754660943392307692921133081970499807135885968251374085139585407727886963932203802489938675572193480112703071092677466823997480142580484311476370178283804674668004759141677128106838743167648684992331081300229645032592010624693776878968589932392669837977377706994406426197035157551069990213329967464329211044099989558661652700398873100037643226924721903341748307704273401296761054785517156400717903315183657831101419059923786924718754201382445734442275184046398295422069837190751715201906280261942175932723406687748959820786811013952501314599282353045044115881362481626803055163283716427014035640393453220472741126323338331189530347732612296236548216832377074648132478071575990124672221062069342456193363178795182541585012214565346575417537151168570978806724011369062179045629312911110561585762321211827661307141488476090100245945261176817935629329716060756299641723887019148953661648272985465951106225754575565390304012920752902765978552803165423038060912314309176880262881923179707915121618462547508241016560341683952771228574697507532612531183921539603338436640973935463745184105675574759664344408741264642882531643793794347768621144243202113461340423286583492239733925709153136757174679121111257010847341931759531166183227610405511218692112706021344212293056895158517214752578229280803707509414322010638213960467092719061910453473145036398205975286387048032907186843240088145111926076647405823136413921712891616915460200716419571887521583768388885758956693505356471173954464729279903835152359052858539032570049776639566509707478902626205234480384813739344879342024370886421476255111497128683780189473779633638247532087751702576417896436164483575160729742388187177336330441145356352666678303484195879490600066761451710781585916953735959260610806283837082122532142002854380842307293233669166810414789908070755375640881177981829763121372679781754348864860094587070427612605748335185322608977930927117133674064991450439180987512534292107803883411790105599813969406775555132585174663119867774608327576646981590768577098765030705793487321399185356995900816972083500710647523142044240629172698911154095998340236370706077641437349994978365158283950668860071396765868011336117790527356004676870650103485260769757072090863202750159614255944110964793906588647823736895299067525823725542327064865945010195901441099973649949979783477269090746297171034251224505580685804819822430422310638656173052391262877278966153500674107669176416102197251336184301157020959752680299249450622313210072791200116589647530246070641166181207599875110674273623691506079727319405415238839158812977911669381740844327054045437454606883286529993961772958384196143674597929919316511918599367071593809568773615128045249033998556628528870277983768842031197389277243873451461088790347325532510608890173608437820588873639558894076213088099307084903642522816772519051360153193835449949808734442481768984085130013294657375311044722880991003109688410538265841202732388163499974022163719380235143588779315586055390796350100044539159226010698913972752735025880383430007465370390938940018535381742919319673037299562554727302382441990966404230352245338149852905791407142721090358891495596510351581088605748548231091583296852993657028185775908449077820907598346743553684981625270367826034476394675886309262404052079874829777521036405076606277999092218196889015638404558722555760621275890554613745284052607943029348035764155547136410775435938295375314311885820548914868421640469762713131742409858385084049479143024382305908925580268406554149500858115280473520985187882499555078486607193666544514879095223698829864958714917702664348468732795048916650215456103353590262037505567708038741917879172404641006349449176695536545656295229116036312111855969419134635109031040447463533921837397559212757349344822003797782082984813185812171277052323044687108658020517962438040679706116460954676474321937187734867416296131455509125273153398520270476813643765541908536053610792946621270464273611120315115363734004314564243534264667428697111387017100222051582334488446293119408841921624246527975577747123017968046810316027284763634165409072569305995619115637348768782733824443134385705009873497901918529781623082361303378615939538971197560738047867779399260501567911876606048711026738986189993611578136263063096559646109117319816873688577883070846784809044040008267931033083296554487168492425690919643616259811856073741377472463116281893039639904907932283626569059585681757243729783193413858157543488929446623278379848227224423486359771147100307521661580923947281905456735109473062336000869929988435341924337882973282823132369269683820325257329063812691009171284143605019858705419474494228534180292706731216820641613834997464685013721571474951807137354431850955974638446989660375128309249592059704113559734534085832656072541187283013300180578198642750637274010218230264637143806027971045341863763642553644492933834709598674841354907637966590763847604639957245957534372350957412273702569284105858131289667185893462893874805365070907949049973330508771666345108867129967501922172447239560254274242039703434184018669097256867324332488810787371114324057977723860809738097109366847582272124265547426341100895434329136996310017974809653365854187066075708343591494603264944559161304628273720299183079292368423307567757599966513390786036361503106685578722177108413111222012531502510536575869819921941144421223515659925483271193741285025925800930127813780891690429044831361170506943804629105426983146817136604101689806167003792978136172456087003401263099646019795141429075286062573504589158302561118604858880435557033691525628605975342590272365462978703735036259520377888750738928841459423581138635240938554037582715371424487636622977142603721371204462791327594759854533624150693233817729982800448926858921093429668670035211754866170055836106855769425504346225778242602384041330352756932809231524143488809922261050677474331473506017318258419524795750490587173569296050581703837526707191815927696038327956639328276139116583548751034935554554732790291918959855283242022559416039294186007070056982797581782547470508742157276164641179157183795767131745805307624244109014646314636540508998293865885392290450773221108242060963871080803224646546066952822510289740065013068460410618391323818023824942579449252410496328632902973379146349080391369443519075141284770467008952986156250084524772238659295391940729839540628190083626010331217068265257921765420486800213766000870196690891714639343537415216100884099099652031402966933354825327404694782607734405261160868433771749981897997468601498400263733928148649480276474245186826962095653175094803626636595036859768485812190034209001180949044952598884423257439460873304701697582836787410544521091577671511862909383873880819300590877950683102237588304340596588543935137204900516897584787990894064614003372185885794216741629550246427902436592805479428945037749691869165471242317883218111545791656037763697677485207740175554337300053216058303708564163434450568511913353278513892450067268643155855052652131570213896701000006559304747879181331299558116848253123975943952393999494990257092089342471475747194603655370480547823123111080851908162968848290533130851097231272530835052594510745947042187707073596958579706622381613873719575761085730296857475536573025277842488900256235638463876667753616397296434585844149630544114835782390252339999302162645536219232532347975282509250134242305830844165816720990833707124031462171175353077852074610193617699547966693854206856522287141842787194662273068817106248564937627271255117710738796310514774330282444971659730897919688580318713827785371100996887769108143145790010311397561215143414192672149305717244327213048315835104888926133551747076409017229808733452759945708715406048515885613548393437301032821913886317599373057292528893935997896982995288855945315122227569922873226369621958119243072768788445008510058370179329242476987369549976022465631096388057493972108203990550696802418403971112727025047720291350223041512953571484560904872265185131560328852479716108937438151449602236464194886597440912437436440765598248787000416238528496796586567364716094802868279947732571922728305305964218929127283309865183123035991788685081708996191065471690806014315876862396784867086289977787455819917553040648648998594158629087504841679197175790529630966648239844198636313364694259147899665121360381970129512770049587891945030297666571732826616612273680556672214732240318781835696786110826570896675960690554307957388625052031291895087730414756224893935942241119334917717389998017497456951267960071374145041828258600628216672091044578732738316263838186325364112895423815700937930116372656917604927604913589599458607109944784936414224467733861469267040406606849097652562955337610802094856038362917011359815857178484394710845493755284958985376687151086559101797329929714963915528042137338554406896538440878661028384006479982301058204511994819608841938525571455982262298260271704988856926184569236521840600790632119553626977612133054343715688359579289868572757586480767184271151770857748909408428721653101340641268173321277727573362120134305207142388723479433749181902030830380043212239813311148180386683846582927401233952300130263041986382999414262292755229461833033817127471985647143388252816959725211780070622284658270002664567126899486952809747767253829917209578778805565509997021355439605795023390097801506106443378014597931655664863084418666773240650166152495961105604872427098818693892659139151914702690339635780687510559925042169846819462392663359608150305859823299497305471755317363619270960881585750365988970368124922789478988995718642323718943924191465454349586636268713751175595518696836372285767174608110069211916405773153493655473809998959805628734399469132501782017463396845225082768367124764216259048282254572332264985927380591967877443779425107618648158776985341004205498119756359842309829314095266872695923121351938185170875735290479218688589845981094452834255001940077811540923537064871504913081109953857935769079813378181244671917272553591499167313078756572695180664074293319174912514763977405318097929394708538273877718661534075794668803646231734324797474865012011985734365129327048085368299996575813867555186408695588918240540845383382501006669578406239655338330613690592113265299906042463894785455312116320180542398743171835887512338306518540559109735960008041176411741151840497109176406270976888149056067286369083774543588819503415510480536408866075162438425202116250934627558957022317375409378344949543267398654557802839195914006663478672505522022228998157395653933972040224792132651471113626410160017741223825745537416972934923071012859789361293123193498270297032526668397371980824817311792915382603963063173026744644223039568390816230309513217576338286423345612387551926205281491798056280307864251455422229554256015533228016416869228030792530958163585545237665094839269839772190901241733715293870093805120547638380324959723889903644784323217120200283052702621739578250804669611593707374077417753019332108405613885710919496337554979600520371348651163997751803175089378829793248971491492390436552128967407051078635230538308822232615960346014082425460458220839328466438174356054698780628375481263740008696337541073132720794502475961958419292242449459324433455255428628752938735145189697393340690006603109319217593311799027551483928527497325387435846167294964032352403697869729148533049579064165679220066661380787241672417222501708266038539122415722034595439458613300985408882830747391185556863002202814282765943867210981691727074822995978455036150524967067602172145550996227941969770413504121846930165320070439841979383222738208352000058035985599395860407352420597925641641250293288438461143343556713055296612597327768262729932126773548098660200442019652542525534366763473063315991102685459688573003323320312203692130530658873787128558823491533777589418387519744598921654389898427661248753513385125173620653708816788584956151186060795465967773796996611988460163212279939273235942624080683032802897317115369061688162042506132149257598429342802919882040328187494951777863187507032851688147177865330545181750830080225245966632025202806075556259303670948472330123169378750527689325286989355332276261688043455627562121493948723025838377460690984881168418938345358525750524473381375108511676756300881949144843666391225292416617314675082006384544950887665369975887711793245019837919660263767414519839190524760744831816776222043412882874609175005223327313563142191250786815306077439346076898964982642600647984396814244799419988736649146014559178175462526971498265242342498441094634726396523987129407247021134434739448463850768713469311748541270775250292190298798986988183122399654400965697868339493047737492324861446067117570042888796132388279480130624311336186129834168970697606984741313660152774966415559258463482920712894553803101144892927043954627065181712570802354876847709481952020805207350566711831077641305820553110042221513767918752890614427137144753272937674570713246120179496997736572452310676501982223234147313904238738066307498977731313395832587399328693204806770803556523957984431123164038143717362811360865801290812714715526924548497400719227981043162623085369236154025545600085432898781108126286269146561026529928287138863034282151595095158187155255808775902068746651809686619084964572935981517492184582167002537514245265635705846358052634154383200357712150054568299807227084096992534617923218656988742236505174181728175170855205679414142367990458114887695181622187243883844936572831759443760038678304427654407372228142120383833935084294942810270051320295545479336658497026293847779361038234661806322215000631515530923128803046514755744594732742240346183413112004212641341627943003700571644453040590585633969230734385100123036635229927913914340548450651111220809183448636166307763469993453658167581692731896145609509926931818039475820902207589925359729312976067942851758489031187074676474504367987770351472488668902293318397083884022679956627949707273398403066266263096792412623625574556578694799635214937159254867105811029543070888626558022209366280200555588322969624308834394720079540428940742469253625217292583996653160407018079598388384157220832592998781422505456580617291677257067127860403433149150584791702296363632489056296143330834354901100990392490412707366874748333694111933515456986484617277370911790227591898534405055199622344020802327094738311954820994059727232582491778822394902670222894478652334486782421733417535418843047967292794906439494715237282028139083127479432387594021788002134391805712725064216202155746017593248201903009359294598120807172137760846241846038118875029943814173166714630246134876850264622048229922920385803945751606316652699380799041750658050902362019967280896406378281914783691580177250429663225331481614629738672106390603279182864916657357349451660535626842467672943648094363746877920049380434043129738352009066514799496344212794300016412517408526749433220636628692591497834535364563883518345917019040909169514969761876400278696865578447636730245624357606768463724369096413717805722464947056191599112096491822945199028867414361788642999212351919504276423760525199220522187957785033227210272767060778117725989125590072781611756207689768372530641696788902794473984278232489183306729058963196679468622888498080009397568487411664920717554050209099188414078919560760146108491059186021529812599695954490307020500210140094172348698147789953539112082745285863709242972380336868870264590796283155082763739834836628567508295936607401182692287576416755907828161164983980406267653637238450409736731571238166265196071771819635402324887679148983346862784299315092084365923696836338646229124825157217712930896198662212847830444815785779638560302675853983391195444043727053239940565481779774608396491978881560668866280883583010362550796500688915679805026684611104936029838955497180734668293878032587143905757676825904790123003854083411672358902452335613764618593888246594553978631092239632567036582931250124260490658385372156894535864386375959684754356258311312105369702231629590880008307822843395080449032951671249108240775885062601394212460793406888858444363225134293302635646579691927194669567969625014226316356363522379461772613541081168190875299308254387538979908181156820878223346799483536042071266125148354661789455203452352129775846049019587869531062444850994902662107325222718032042780703355946173833223369890094089975795808257719382641522580675724984437767980021287648597722852337539725884252852247241499687753017679965578237531240896440143113796619706674590162595253535698002388547682777139112133612849521835138806004827937172126013500761291343912940748737031355792339397553712971019653276725596666713205221678298770443944899838807387399101173771559872011260861668341540279318568325936871005982769929877347147955686848811981065048604942940705414771299024437165619431836796293560332289547888305577833969114732400542876389796274801127145707884370113083661418792851101831614296779322900662866096385587652198948383554919481756800135919473914054856097292210824198920774145700643315913069350097201228966373840890623238469767454627507905720185245860579860832712211246457465919739462714952523965792934460039573888722631237069600335601021153727712175798965599142757212927714646146934674538588715518629185102198335166356185547012259577437730119528781290387716266327957010355483899687287701919125839619822740820607220694659216257777732857365450905763549082182225603367476761966137366731581775989059461348337476117041580392273660915200903156574339151664587806472129872382765095023320357665777289906640009604769934803743889460254917088150208947610023076017192289597021059161813304263146508366720339434279334453585521940421270102682833557278532569002711815509404838381779864367235905091687306151563954038929227022672910388348190745666374785690486552534571957346054205619880127817146478531471070426152339645818472498415974183278229399407287825730017760591045832721010884973198835492807646835266177757528720691912578765265571709778622861911115626477093134060799647412603496560020133613933132111777428405192134363556237591700236206810164058087306270137232917163985415644325976420645227214407013194816803675923897398912914775835486271271923544837874036646037571171111208009069715924380888502415238695090448507746288874745119338737379515561991151160565225222769500481676869524172060138379154024596111368469824637609476833563429526831099835258920242878500662393786344611964317862126424800706549550315831769063506904217092930798190946265910094931453554444991351983226057133045682150095832914828154600382164941331491187712602157399345844265002726634612509529550502685256991063360561249817885041856099200465439614775179471997145659550593465753456160587615592115242851540453533355508821096092221336287765569092684129730766854693003948632761910365967078434405371433901140912510376787513550104782508256032680313875542783108480674090644319429789307802906791333216472855589999990386209809801479222670088367328771408267996234784153586814354793811631749616858342385483436516973691572594139725384524582872804760871381353086035374623848711057557053922956509980645878366392371100674827300260675297410202249241366042295500261197448237828099555802654087156238468968767347262733607385257290869529544239574023846338580027901896801779440912426994019968421860690830224365960899011834311506711467572670789076332284252251826574593507618697393305444670855711580975437415448544325983342404903192945375361901727247934668911158052865244302324978630906024261232648403228529454477680712506175588834291853687700941970875562313443993924712331705172859575431194175730983710124941164862152735393999025879455695759282398299316292436213276955753201115827204405975793146618502520251098677947646928178142773930713698408225250006132285313529508518938683473204491428492366157047221425967212140544077450014498288248494208382954856545800200884302396486036032888175183342113274122676587772736994031196191071959479015478693081454992274928792039161492957948904155883558069762982191355523826190412825540870464848804977617161615195792980514281447866230196668751186390199727010444863282089146308267545694304309519534439035758822361401690953868879295885622350818281300939564138735705889595109470793761868063197440612496116107240529910042268273205934305460216875297486517168676891205319855371759192060037888661482433157541817715366508525268754662872796409379643097391759643855808233155596004364402084017394497689234689120988395982927536830110132773365461617930594028434352888955578245398394947651042715176645331443667532561827044846001521008136001077422031885856261791229812751230362533676063973730301803002735514321945405275805047739777080936053475993275384851480894578212023700537836694644602364064940570955382266714727717519890986358111213228471988706994666359576276231271545146939515561796358558336379389419033102499571316503798854139783462276604562987109572939131009192885606064385135976358772005225039983380094468997820646354118742137387090182256583683656152466422676531725637767421246553982678980704788864428613968943701337652709930112394271905825206015773109665630952357517684160662798642051063100115070857881814139912867498424797143397054533761271662502970868466767193253281231393912692112080050700294395884804528292016458790584516005714885586937383789869431525275005022567392375576108459812250182769414648053261669559267389544026573161394761061095840739837808883814846778805042798506627188999910393762352541384553393026972021921029544853118006885313269281799215275395075407957980384849418607020552379978261351766076702987057220844355376393647949266543878779016577863078531151225684601801818167111716074891844068946278645838956087462718467606452738195739849921096616791919082124645089029331454888675904620987071468777714674894706399471892862276978381853760762453137658884801965768523226692838106847943371709060923196348923134499077369117782278656692065220826084766883618514866397432628701760267143968489978969441743101475446158219487333411344965765978494951119100361092469938713823696375005313821995799420885721610880512794570831067156366544329952596518300154759527066828484759795702685857975419739826875385508898042621920963429741100861476230134048623783105575947237604607356276088517409126732867762796429516821770800434241797547295582298107365394068806573440370085918970230088100227127407190855472503684051621843613900256243157355164603208461375408874108626840419167393239500799515951485898805646025494506023182855090943946443198900029125939493171931407949628140445725587156663523213626032412428400394159676829101020256330544018735122941539593685476522139194241695609744891202514328402926535018042694429191499326243079122384862886714961902362659694328579145585800989999782609195054096673868394039762083527140429484987954556270704162336947428220514446563124343974010033294884999782375271522948232128713439630163218201652129768650762495074959146593774048800289127079440899140493695287026136060006620723563509870822937032172315052190401062920221537946222294541769228561073214066282408141544218946727974837803457165963703697696822158578501732797629854128120333430032588860863122250817337389307854011558222886786964713668810886221400946286542187527055000476139293784525614106899852162504363709094669563770158090138793924556128910756227559840491476366757176856320373668284756510054656921253479969043511705522033244858184280364946465595252612987802834002357318325182987593528874558993630199904280925737862455428149333812719326636562566250692838511600580025960664142096540838370137935645892607352467832190151154757093410939562877288438181367648254679716300728985913733420784632138345497998289301274174070628199894013346450370704876767241242912623115062831800442486211950332388373414010584325782856354992577539447622220461836646708136967430638952347634636257563435055957457381871772709113259363612330326525424351853707441968364007672342274280812123317308164519911629148233394278923747169429600047380408656246979739371177994851901728705860687086470675327933771616179599723498477942356629312155540931081480522418785453866418372360407038667708911629098289785319210357423309465673934449024935417535650350496662019982331985540908270071413439161220931912793769676262040792512477641784828983222718930049709935034821423753691897943772147219264024409893274804715625991050782096344640096497023791828521740608304435059934304911474068458434638253526278359635964992857667290619347638671195942228731724874030723492237843440003910333360898528902649281959896235591551320719737486165622490721560984528941166129924865181840685419614927050743876525589701016737418629504925005793568866097860814938885871120733287852519351504249363050358676502451738268113416099530090734244358270954985327670440305146573306549372932232152932310542657729720583426760252503726434972459689441157770269242589634562913171148367837505423942687556122267529540090268083310906076801529800077002182170353139341332827752667314892139577735126566867742331622773863852572928171742007038393206540245179818675488367144711911664971443656892877783500649644722079627565777039781759710900369281837523129472401736298978527347095740173522041574511318106777866533329477980021106967146705981345867808069393919806264102373594755074946387014049949066415876705529281332072900091328086397487230126456441090104071078530328335056445098973323342136842084266116867453611342540772212112241166177763107934798463629366738378328306290257775736688915903891230047467244886330659351777800982465585051529463606371762419546645767980692796184669195454026298702102286426718682488599825123346807137730154887803223208722559532054379581998232300481882969971076672948066064143983678023132713472719722186625752833404473326203732742118908501151961805114807231008428269903160799941836340766630631315462965917226630901921036250777242866525839989715816281325540558811054965836581693247190400198258641187887028486027312914806099028250564854819226378250713816665555048025323393816575915043700259467812059324522997966511143610833360681917330885300467046687445853485836131612827130229032338530878855544779759607488968854149916500642601165278689575519927061760580506517473887676844823709201414688858994829302480391442421444605868327769456878230270827900151812389418854432954388150841648011528530736159195038033333856899892651571925397523832197522272328551311961399774325007313189058248119237126937064064748236087036997176691990322837256157515054359622104312601936404397573339629562113649625602094275598598641104460252920315760581641350881262606024434231710189285218284892342931646097647695204318416110157304266741956003651278174734872975406330033753722635308311459359806192558180185298789597695553986304215549791653066775525644961578504386085289921723047705619711155236179336446417200973801109939647513004746970850705890633265630472916517555912920829227764347188867929724892838144064410673532952219468925590273293260398697657020713019690562974100244137684610440430319129238870215662401174829449889461551432213853128824271630890444885911626085560488558781374315564807128337607866533762759652973764737393737644507614507861645735169005633622144895184385173962557473589017021592029432057696692650509208633505759467616200853776475763246255056645379232023747334208077432529306407258399820955179943514139636612466317144847862223508999365942313216838084106952887126009292610343415640964190665625891622531022225168656598869707221446699561409451792807345231376060936560458111632320754671438035571210838566554099213614722501193353582331360850894119937582607848847540116340681919734810219058200321956451127564918533053641495430103679334786121162484505127805610339296189953140949028242867083121565873299525830569109222453676856732909807143850232454392780452620940985300664095349361728123581547203494289164094467198961843974520806760965434717709710000960693043452164176904327713464379439326627109730333107773624509342495166909902512856777265095736508501005707128522920318030182087804104420707204628967190055534788487876135102445057278622390895950162529661711040824358312881944245492277993463419557662187134126483899162352321503513768695705028769550048256318796601372347598096193764579744042752084422294714666852827937496923855189583714043481468411855827234874556401258192837117992835870797450232742125802134869015416622151328221987628478576580849462019738962169738700077047896022946803157102353922081006113298987362230586018713075259982015739303029239949332601387990797890872934340243675103585903185102190363450310655008910893919735620912434080327817354028733145537796134227284154550004291868568796429106958147503642215152344357898948650476680439197552496226210471839196122871154452227633531084171875684676893684730478821924245021666204120683104911341183326524016922586550634395514266156381002493829637933808697379036412368649503157046311772168802999621231100104998145792000913514989365058040146089572127068681675286326146108792874249901087030312598732282985467417963076187250049597378565533202560800295310222185691800180990549506755855896998326789618974075290555679618538809412515849867164611467007923106338594546710242970626934062467434303293948595010635861587091742824033120253630185850043207971786039483899324666073118529968961767571902066496673756705358451399601214288327593118609103161048684547459938173262169949192695366007099486298037797072539061086519381429150639455998420861333747697753124639922041914335239041987414389791213402744506672114672717557793353321040112158318965958357185928660960576673228137803554177485684367061387047619546462129208541557100621415211754880505145001359548337004431478291318174394047302168647942564419519104910230056135276341060364466796007417973642706785493180896565908901124019717211643508734650122148349445005626442261188190685982103697985397007009914353906823730463437893726421357257621887127295318581865108628685227004117279053400605690187551037377072068473810682955981688645203623837445056213418910171129181658223316503022221669985198584466725209247695534950532701500958233053908123078725396421257862873867940748316183922047914811056155113838551427338479987798424150388827405476314231728498616097497102352304444252609121772700478928620303107573600037577656556461012046053464427104404250547361167159980231981469759762615748749919558307701790560097727890753512922022706283654489945129861660075145457986972609114404591075703863292067720285835847512047964795426713459654526706223001476232930401118939300001558703407047908964567160819851007552431150399192067524845441073072875371884982644700082301350052846732618696022901380820919328558555414712655345263095661869812195262744530861908477989161422803544382331069724242923953955638358986125245559190967082501181972353727485804684150486428078443430130574310682959117430151152025809065347532143289039199639590388909413771991910666386202208334239476168204698752533296411856515455105659740801639668500082810487588337487604920824523817510395131596547936111468290714856022578497834828193883264237073350294776440462957573787575183546929611050860064658287370814302278163732808580572275839967608698481265637030068682037992305468013616147182886654216979021843227189935246042800225678914352780028707401374880094232242607116005361426535888806529282188467046504361123248501976951066161983419801691893846798328441009238552698307049967370986171186151371669737183822751154282024078685843099908347973560294144323783600955196978612671314269750721262310686468087328269147889214772270295512782252885761532273176874448350151733211826074198195880532447698639725158176733742571990093526911607516844978744377090113957788709185293379174911768315466053417181072002872484381297441031755833946143878857388293125752550314202275045072180038106893936533058329221284328781776701980000837367914132435357373027501581827221794714528369441523072350541995061272503216920922262036914081626605046442574784683147423007002476613629650749609896932504373421120981690852498892420618645759395173546715691118852193175944589366775455986320275493349299233003658301630445000243091019820572757290018635465316405603809660336613042575979211445511229817142234076949508261493066483972427342091647245454687816972641295755570914818656954333585352492125140754073096551380273020782466893098673608940917697839580945762975970881258883118860627044500808930058731688373114784143915287453985754996304901147633836144313903433270784792972944500617965685248881795011301931799523139318423487972891107666937509735794413315594581262415165883368070153600120811752558728545354139169190530751804063126465896443474907418916793405585148069017696805962803982135790425395166996413272807809775283455349712603045778110799511497258444752609812538760317054032366602320686132560755896096298159556302096818973055890221882618125249030362477942931886233547824712549805863820109520100244200221855506383535263333797442216663029977436029070117112893258229153596991068314090864636044611209125691191096618284601429623388895825629729778093906347357753788564342762331105522809112881265844185889845811032115018591212199805320880903691841876883741348370966941927267221207971478069004545015448521712335171160110430708569514392827813149606025382023882914352376257526949026883757567598371413086017556875705447099024249650998155502041990905682039653800661881071049606136378889680290451251034321390601844216972627420584097860478703829962814230555355610739149908645209785253081783326791614024281062440468738951780967263583284398277527093845875741504452662976234546868236418186795707726360300468410843228105785231017965822388942010961471011099213044150051924428506019084688853302149876547834530344217563193606312251871224097539787399524448602404622325719928331981880118577777424391112616233522925549176802879610163430602766061994789714274601694318599428010309145319385073071839692163453595462505734272853686636728385138314957885621669926321076372675307750533803765151146708829822569810047643167410531711879290844777313970949355881529241042413372988467334016284207659591045569760712217750616135356479991661755040081059959862360596115087263423360956288686989531193776770542998040157378396153726635221669731800532095207602021584301506673159795824775318088373421533431661430667460748158296956364414126421943638239540300687297172612234552119843965399999213020155715670756201476173654660709097047983131636597623985713079297553167229012587208032790236332117359065692680637763230852644012935302600653214848822660012202013773948044313875497831794647873991875374422297873288534558127145260606506434362263003461179362509329288974077793300047671656588696973607635563150524944884218738256226160471396574988002739291264879639500245772662159934903294792059213977915504461711409844785476248738671768037844764166658690506712260434088659253124743769408140927297373279089064017503291897758321256012613316825246131102462189056762887993776049745981516185409905492175963804331274588339331470850554644974727357266014148666256061356157556633732057104440849270836511455632565523659766454413440893982114008989930932004614410749460312872807944925723285869846008433871171026804767433019030269682637183749023964498044392868398986166805641851741354029740619898545332499967913397699988722899881589272585002656116125436232432531648261940994834003012745827498071861310788413079896555792632628738676994032229475311296060770838088132624248494609917580924665656589215208498969323752199019099542234886925773499191278793313335137534976977985393526659345175401046104633781266536985867974274102946750696523133005954314502688163502484272596698514396431074562520449528928629273902387582937288539941368930958273515197560839275152988706462241971769982558789493156740051356027302628962031653634814875192619870272447967892121326085319589232602673961455801213726840447606043903297048783670978851048486760149838409927648629585628643878636021021231935559132086996999840616365654102371425272066084120562982703227983057087622364494280235198199659047345846128518943869044285933203404009233447273779595901718905694095237915110543352992461775922012175843255812475712423252667240410231233060076486519680426575818889672697874109203964301453146385426521934784882499147541425308694191290441412699097393820508183927534312275172308131729220628962090895264106659846600679330139795447270714116511526331894844852833209050146200708249634285020797747880599327528836044265832101535976042178363482774350508238089742159061133361276059976876675600854532456005431409049269207381293274199037266131294127365952442986045000831056539399650062069091538296065309749080147263129670984544969246243448356767024138249977197943763775502865288514054912727059037614927414171936863583134357449489450230988429780292046628025296370056916092201596391050209572685791236140803433810570197442312074560250343900976638216853038652246876675995136283303218219160760961465201069859257432041159087947540064795873319135514916027788472369717516183802735726921454499246751216819565573488708286386672105755546974784439716288689759581615263639933322447600635086138241508294629739938911322627021577089946109481183032410372271324708529762027189471191420235727395528621286594970774597732040305301758096642581815034626213765926656823333022871531721007688093209301298811013722257643248365736030900392919127404046181663758989351197191968776897803213108528312014487751344623956697942038717123612799604795838848918208311348598971928318868588741992746614862413930895251392723567469926920144575057923838299911499314690772769308250904262405913434731351058862025909886625681882546256035064239382555527166158168270745261319209142735201159649767002149778386607695572805815325537803281269529565150336926853715252250362263598484055275079957908091014750136971294193664847456906687674320999564685309393858830695436187016971381655208321799604212530418990031085227866403684363546656002433413848717878697537718844598571664470461293504838406753438391515186497537980716415405975945795953425900807606283532283730464789459615257614529880471153905993514989910468561361871962969074995071511704850714085005213531633654152218062559710743954007004060968888128216695640630875041831976993049610630994260025782627998561806551840848210893394291145250416217653279219009022819110580417796747782705526738514738412761182972986740314659935552584846779515744916927121727779160385766559774177972633966358446130800064799114573694799717901918243117532746617260922530385520232322985160185397124396217306936730565892280420218557536243797615143622496469178079346399228542001363524171976976254305694967907089687519189892146673460703834502072421112160762321697224136338977912861148862457729923789504803111630962754546576823535467058679042661197054094133843932279938102471419389187193515982893614775269502913944034563431204527470742298659961397260286460960183725421655449792668997068861966839794188030971221823995375838257706620513879754922815532595249823129659302168340267740874343420936892723868610201456071111474910919571355810364155033259779869305066260558930468911664895617211929525670243075511392299798509976564322493712231490324922095247073678076000477271233551256612420715100363266382472814024753110429066145934150786738762133318136303000265852018275068068921934388717108567437101268080655230737180946222175820090911222609175356834372466529540591226356163168752914177099644546409042933125384383147814800458291612820948128377995053131051290256876666402291197752090032774376612294735569764533261444932295210376619133544006684222710631848637744167666840836109771535328634231540457574279046684201069728398231347296795680676663517093942978386118142415419936425079940880875836370981455098164295606532531178026018959676397393556800370096141794870118862756449865487696248834101130047225101438498178186195711667643802252413633096777492098948666007385866346131252758969009396222701099239224085294249106143846308595161697894858351460862452780657139068698003915752132034949211541319505973850231928729390143193361264758480508464885766284540484048099004606070270011651153919597438705688268184159535649874383001719541301650776601100090427567208198042119788618041121315085046622620723270645695130069308909538358888402892282643912663899703680658916876994906666687585485781859043746690955090080472107743355888225026982062018505228004541127937859697377625665256825432249203361895789175122748838565906320154723470718083722165764040577275085312042862671931079647174143711776058427192861272549927560215219740696495128735948701012129108862616573035902770414926004554582088104342762032581567036485448454469503429241447407907838967981596767507767842149555926915027012401992255637203735748811845294617507044299482819863522860596592020369167437335614327451805587124769581704811860668519554529124739065867399843078432738735734671820025613855752424395606429720945559185170940427980801104932778514935755960320635854750219120427841011004196112751431500067033124739808305767956026917737425521817451430887708866814866547408459407382278085595141453419000469122340956912272120729711555294432261713587767174300551301529058809808715531198318577884342794425861777887984589929808518329493251746764519365438887802727926854013654578795802195547174856609687453833475079265184780037066929742512423248642696823025870185752708484899653684174727352176966877737548095862300334056797469792606428066903540812585567307346511506232602505573253976443765367761230084643959142477716055154546942429548440842404795385114789545809413583030030591719810012862970294623164256753765890710440302914680540549217903515096928405713181471540408485263982605058318003048003203765567985546929342307352615590494547074834150513015862374942745146777573838402689860840570398931573352992071382398623826943331558467978124449696359412237863895619595169622557557966906693037562912112275670317481049401594149409721038968594194835967166520602935493286466466928549640159613941011015105208883551650693266104038595946106061999019330166298593872904324253372631433931386596079219207170074454404884669285610279499540092938258728762153489657340283115614071151317325635076027328220968197461042439814517389882369969469589585953198205706152356951505459993991599458730338995071302773666153395096312503240361507430552278834048444118244887538130732509548816157840386028643367592662628224942814032048269869474241591137684613755873081579437598053815476912835871932090835805553595817422478704970772017748309224277893682445081453327557212422466978027850381831355338067784792122829061433050927748547547192835530871302563499033506280273201505752860940457471051490321483884904318517466621221720300272771983582702826631052578458718137006055422236418751481956191879935890674658743644839392877521963286542737179636365952040437332008069804531306330206902114880521998272196636348316790628110182665454087347501454853075600055379688933250872528009572687506823784782410234376457113022512113230284135921815274283117384755656448201055038684095547057175725978375088473185338882550893877555868484880029079354547380951010169214722966748538086204856247514958920688050674840908037725901690448267439582081439961849502717573397821792596916282115522584291254265050946157534580988557379923740728357288228922713259825039991809733444858534039460826514165473914431390815294714503117444681857112647824357581800246597171382484314896464402872871617648395956640282165959473080817542203171733170556548210894067940416513744593801849847102022708073406327828268790696806334350272154989417861688367689774964994626205024169927695382216118627544145269980673703305645716465547791938339229508782065995831806561785562502361153525160313430806242394996433979121346977746457913870540470152929733364965730765565319454664195291327608105699510676293971275037207626022495310018612413030242840864025102937398210703954282665474360330289307480758942335169695959723107725017216905156502525036602321541859355585045477000185472943103373333498204778650711107349282408132830574766042763180164113756544074194551441545609701488407991156505551735512308361816736117278857505920840331408069466021603265813654139686209500472174236471116402589073415712665746710027659616813467296126768326532087113514381018103770909462899397664511955974216960560837621774706842419455585625396145101965260705021312771937628222325537137307314696504274795666621788192062152890442126857755605272631147534536285295554952232282415181259646462502202530772078596709720908879813760156965918937516856444807552480048267719972326235900844122536762091205676028740670430110205611299674073932086897327001340423334464034901456262623394481746635337480310407471033725075118898259619405394888014462430484161066091967272086121863784315429602798924655603718767108682946205086434265023250081546587416654094316883555514482441395923064378345115159386330311076825523638053805633614295486065913967246118321448981995251338701446115015685066091254914981766350635038848474201785716160508250609707364520182662070522564423938301911767605507529916068620105046979864133125828824599968960680732747305717499318460216951151493232304524255182676903778372421402080504934061555575805527647252630947392366801316114326086765491167932327772654098283944899370964976164574280947348530394990183278404447312101737608238664201982616090572466802676798455044691966349420097879877783149925795262814745612706091061125173286522906220838465477562310067078689833783239387415058272480027390337692889591448287285292206959103744065014811855189797243795234628949109538615877758649000952919898462403571760767965523332599596357879498246605365608622230359275593529305858766239939185795000164854953264141441097199299452286689835754058783980324808574666882388329738193561525243696152226511381832907141259395171101005950126178083777790990472870122128224776800615146295145392286442244694913738591989230537859800862567849664467886937023104909824011941121207283995480175604268040589228343709412002128223948675087896483425361356290286994084980785394911575979616590617277031320696242737370439529546758301651012021036325061206138987230191565719024734852724735630288324820402429189031772858421887489105991058436501242112865872357663543380730045556719684209080494657988031575362228466161906674708765920988164397223958738630285189157150480738816521787775195540981952664628481622175744642126517727237074872602058533409781422959589300507209391937895920718051984023898720809811964250188395267761008109792615943407413969963196585872247229661997860190510644798223852480826923756081708111512103204820075973905157538061138719620485045507992889953535075348958912995782660002745394137879198118652965534912189991553122255951963306480615752684306805184347296951573882718594652917629352537663299091603413730069082990478747258559971871228475581605968717557358410596556180230395087471649961603081479043632918394294777954457438916146914686998291571565861745924421120783768425169717485166296448722772127397736533268251275287703562940426321733737511904718342324722108347612758832231538939897512264693078835037271471758804816501271826207017463428424540009311168814471069626258041141591347303222563257719650031392427707874589610418073807972829362222602474116669008037006931357401851699719328626843156344116051244458815310818204084753892149808177276232551899837020904668024784566549850243562860055747041415991454295828558148588349178551223929017385126308429782721863522545100609264823490655164847956836461111820853604602385132921211315058803555497312148514270193122104205028766976139680313242423954935304559239131759409099001174816071736388512734681241063216019724955313708191559204661017873967833204268005080530054534692226740453884859344572876218960340913366040608871254439515145263410032014279648007425962587045677710119317356106362438100138451732523761038677757781326148490593967395481381912561264973249050776777017947394608783829878012929586036712691160300697193091588857199946493175843444917266200216474598300210290841156765879268769945502175449928787894964341707820673653733441513759377358566895133263319033522476770614440372797969847216086787897393475907186394471268144714984799815146891363901250101907731353497742193329032629480599601818904303591352123369982310721228692623291292672618802729697525247685248002874341875025173926400823491483841414089604302640725382951150200294673300711801159902427120195896337119908443554832327033706149269078878794208266233244860728163865186151394764927730552023185188326347640225593700277913229070781102098739578995778833490611803506746458302466043435767144965654249221148144986110334590809477150857404269467520372535102214594530850249758928909774173717243175149443411955599783125042617685107510295494740045660750720420904396281899262722035433150724088810317145572585273602480885633391496720375188271178147372405465055860726424723312864244711490215934936138603393864913538628723111055439253324726476681055180977575109614117200704057725804709759153728582845239511102633002216751837291970946948265667663730777898815128049179044914174480404786342100191440196911772119446814145759978770846685011699181679362258432022850371909249585003842981666426241324006262236158469507127544968468190289368651468510310313443780158756422742122018758598086492939074695047665792381362479903974543913239019385158843095421727341656742954207654771377222832023104262335107852519787574226281518769869948334718076417828173098135477831109850291074296448958590685945292506989382642237805699015958889660356159606481461957952990505427367408296175219419615735314455523221874876511266982846781498174673458700309575108084221723427231015242103613503322648933038793080506813934542995948177878237370710476063202753832173943150045310996876036555479095522468670025346161830691223626807112791515926210179889596149142574604569955743982748954117827780203221602883907039010300592000256588647878110671725919551082895755733950703428883822694163587686766413417637116599996846422838944269730594046729734733169688862942263153767011224160372365073303837092932562074670865416048543336511481495591126909731740170722220960970223134016536512880340162899955212739506659194012089231317803177924662629562303010500638927338557743189152348335423423333828353708786779895478195623782165613892038937859631218063277182448239749244172464756512933898039793590675375312564779615942769015540081511323690583214424621912953805242194651528526996717763685401649663136560663454320442048371039377214177624251231638446884519196900340009579697305442262724249037075960438730249789829786742923321465463442231291335429872395164195469789973855221679353928198422931869263940472544839021426061447256480892611807200991823970101044690791305341279118724055987178987385061919416787694066615542391497968471510283335710825033915987945470875437323036510794444415786815207517308274714084686161659228313875736442036161268960705561176353725095862344302367140708675640765287672699412356961367779833581574356406398224741181721607440795303282012861408662326689270114927539526202036471156534117849786074811612623740181348160823239960248071299858310709288745223596842087930857353154722785640864363043192483979731035678573986011354231528543062573567048431420469054104638552777829518054294892936315668442338122636037105151904611777435965144574706400749509724495668846914526454308777383142669043148763460729004857679733587169516826517594576867286791917141211980278699765784132516504132814818648065114076968201948449485389019128518512452086123299396739124641528029729266942771368650362981893493287107672213893197574482422826504151459323752956632169824544817363663212199970013201155238557214055135921149907552266141183486748990723742723151906344785917916111116093636725806687288439572910465106144843547906965098803287842348491875246270359231790609399271356832067910435800072794473138672118714667157884987253929599037855647658566539542759709148295375661540975909113521195033315586802568161927987689906075073228254263653964328927775488392084902969767480060107082272585732266345516125968908933214834092445900479122371603569590463824595301964259331373523217322590025717313192018130352515012304521188033798305580375021346608839891714602561658757520954254941357999534764548114262239306440537418464092759069789353303462951714891759224174831747108897262222554584527306464766235747357813117722168700018845730415928614999930448483174285103937379070839631956580950041099402724765191091247355374854868454224742482292047910084756526207185773553960984550756970059260910493247483906604593774719799243016905189595415505510308865184457463982993084791365403162393298096395597799213602600398860815819908699189578256023974285692838229384557028277890701316598878431294285070979399016698725128374046369084898844688002209892100342949859435629194385200525825292193270026453325799920610881183618688752651200269463970200337386836513423122384084239055609491548411735670691685581252940558907516679595018907013911996440402949946836929100797179428692601170921120682336163796909871646108744486395570630917496451326735603662076661721374019047369855592505888505021878005045520851642814570433891644484484343657608445575551029453263251374896998594696890315283014444019346248980847007516561634810615452706552964298889867839490953447597835932697080179985314480329570638228740474568119422466070255654026743336719315946053370584563371387281842244282665635728895952063075665335978875971173494919774159653592279707261239087326439639337390037582396183626399349113149192198146414556520763005014660857365519120432681138233610147389375670290571187358406667816363161619181998235087874058094023870574504786095316722593424567459924859118267932546990430484167783198771933863084364166278761098358155747400656015254895422215626589888232760595633594979172281438310574772091682443409424072650010382366179081529417368092793755537564911640644500038413903884018945755223931996228916613652671591573092519817297520959928334500915447351100129939123527317414666831172564856275308721562114799783651508270527189371691618829308539610988574603114419131698115295008009767701563015953618598147735725575582554053573092002987672521698880401063930295650316386727109112413382944587042428243827738545003926682284863514015524646580702429299986460109500309300646564699868225818341018539458990184089867804875764694718132868793918809728632463007950009483085807076210838107054458345189112383592183721657915461038365532651151867569694518335429292827822308365863654488878052611740239834331449876446246732304939411473268176657054718468458290458120195832031955884003760476931636965964290492138026216237947310286614955509590218670153043092367624320868885789388246181040539207976857081042630638880290676933342567346822164572673308263784928980391230462264457127337568857286650413692324645760960526042406948328375340254013022586001479399338146933405038162760756149001928586720168260315376807333498327359796039298376492164917605204419861580878826047866132234214455879850476942776741440307724751908679067741209085876925731270241373572353050446884574232675876301911001735705784268221054562006416269546273948497640048413140395638047500117309812915464477559528837917246294893058689284857893853921684818826795069910917816767156304655912316012089988094362405960456001565361125259297905522526423794183074175504603811563458899632248572723957008417336074404563518225107989918136621480490947336017225154470877878230773956526895386530688075261539971219926573224502972448131438758867988394570470893898433522030401028986896296500073940888579518621083427279072092914853021103429242763667662587823372711830653066086156157406174748725080637840200467332379017184233951715078049731128576959905823353583882167949076760780291650543112376201927449045923340820473341356361128860270455154809453546255069087711905191533843115546710187993415816447840201269217182517366243453566897455548251585261957162795618196304096042417970411409426266168979675581210971725873162405947507775650469995833809255256356185248362210680920922749959470941178927866213375486215994618179800232727815329846303704751246585002462032317746448485909495180295771181739168937264258566119390072044351338749185241232856836352380005075876830189911394699310798417945714110920653150086915150120839549467629809392854327793672663910575674915641743273347383306990851604722555000620482453942032651736676932045560257911745659395436119659914093202274617637792018987482168511072392929299378468065736911955040300623771565596500908953176377267795303132484415828016818387827898027906006232724351498977428485599889420318926522572319747935267307623827799897663402523291655175662454075314569185358278306835290163317430676342152593287867070179599109203062203661545997913525346468114887841599604079795651692954135395084388264031899970462287431794478436783298633796059858461931300714651809122606666157255191588303801292327355503466162815252948934826163514655443810369098324183034015833348123925545949622501659968640345432354467952799149554776556328610238488467628591529340563375190243153638017240211251860098458620272768031667044234766416050027386953861385042775223097322919347304657354047778048011723343578405133272426007323756586005349085085377604425642545424450363159842644220791453631203057973836385209216604604172854183540397088397368151795577401687028022010260446792887847781578491689378328232934595649493952002984065038389529910007826423626409052861880682495906936107853687865745671495891621788016914442265724800018466271176007094388470642872077391641243856493640432359524205478299089826186173270077177690691747806566578679099474972105913483270934086099847897167525783010413139163052963370307628313805315779277650355918724454652006175529681455980370735862110100629461579987978120417903780574985599473531631806676624583837321042147095057394105059103448412510413823401289130281841224701736006347356540914268112482021788370402058761854152354990697633409815329930209328869916691840551384215865548484818330195051294338081528899562977988326858529057498960801215459770804498407780350276914482582194343994256920310284140710647059232932109084877383882378102741696030395869712097798099154345516022727870300255934170469106860712183420179115749549731125874146117858495932463368367000898566681510203514574790283157675633873409758588601920191970836929934110861412588130816922841080201185523642664268344609720129766928934875134136391425177948029459907583555406327874975478700595151306380036329214358727565211982915046714880496918725729345301307974833632046093262366467692055643083179811257102245572519802717491579612402942499902910859781282870031057760546591244491114661256436375792099788173315540369856272346156692272535148392224864420583823190361408247967187917802895493195355284829858727303699148778901550794480838888441086778620581961136498728237644340218823570437783256152721296897591004094463641004434862147924064918780437914649041992624943585096264568857260424562385428912101213673558807773419106213666618532741679644801314081672233640339238289080952414717501426741493736421440325548785104319215275509092206571140512239704550794268024082750973700622517821913628421414168334033209202418051179573771564392428628334372869338900969402044242980543222141178305469433323580968535339939366250312226289339985229772976479045466994768498182683143118519262678941441190210100459799480343394376929349345147698182407676118350549513502182367308852875175161057707453564780961033707469426980061742508990986061202578647398739836761140856968966780310865934605554697191784851011201576915071982395750959381938756931039601969484289038933480599861890423938287898827825537784861288002437628974080557111461988360028614613314234137621198388385573435022984533901070838061349117860270588362580949079447783661621166606629336193974909214268887070382071958777996767494977700928477224859462605301743424814828263352700012393339781407357635546565064010309764569094311497066563909712418525572458462656503813840019657986687033048767998621547606032168486305470658657787503533519758811566410371563852696117281869708181385731242986665238670644618974028178212484242275718809821982809241651170013374650754385077076421602227183645467100101634958297756093676034605217910336045875973090850975445797920489174671195789349495288247812928453698798254630173322087646341062664337553674420554299822182338122579860871608740224439380204607517655993019896370251671288395845556420634868503853435797996947752783623851053296230741802493807389719933847476498207096821186144899186071939938436420859554995868212014601377167081776910020390973481479107671040128076223011253062035177813908502961069225495309039633209812679627899400193443394266161704878871890794964250655794289928993945384781187008734437865969687760237986285446240839968940315655014184724981301582634496157928384851213625990853943183632010398820700563062500087250425523506341384679634318698410847237614507711899583270738952398977772791208064250811076446091517909378038887902840542882530020169268034234134533359637487638092026025240028315933264031371475633022294048438190141206457780203827751435525525350864101374384366771722851239714805118361889685339992800420939171421469096551929039761284393029473801232116796982209888046911633712480678607757597025227914608336279002150472508709869239493401510225590664992430446049093703068913320776846783669553081386542243813478469098478267584978558147341749420253323407214957294429355186833366742773740225594226888942123292238662259205824596362952060631915678707973076736806452353452027306039433416823182051890355989767390923197541189814393797394783452343159648159826652256988573280536442861832913077290610635968956773235527210194581158164223637727960335233154841087818858920419934168074152582401605623417238728672320518751435309414798818592318806525260907257155074271532911449174073140090780640698993268678754062323714159213115246198236509178151267953932336625700908496984520649961342413525131614219255761338160382714704189913549229070145961642890175280763633688922500852179872387090039123118664678997332758623229395731637990144133317480637968788466008621953650834091742510396424768289433463110695618884404152251270643731490858475297662745749323943191853999316021980305588344415738479227455058659059835726061976037811389625505460605794112749483072224061007994506268497630238385197967820766372739730731595127022452124627691722729580972679569445331672106615444301326969568850346824748513208467491005377795791883339088598448613909221299394841423188619888175772574692252694594939231618332324638868098788895115325799423232371934169192514100511155225998729913918779101260610019806567661297940974749938955218790011837398466985738308864785785983657009823719379585968776787111713912453029594608349181458624019415823437929262852585055368911254720093743449791517059644504705652877022312961961526122307328669011734580735326439602847146909254871846453411192423004792988745802590178293561002494453101996921429727331469446385029371646288252416363274259633858496934450577619162600514705443412176515098392068577799845165170781711291947725592593030126970739302384553256732348413800391454910904613040467981439953236276562526941096205826143386346725358322920142848509122464931283615617106123877262391669832845542675995749467484352703002158398027356189060081321833501050226933265175985097733465666893155767049911735770232633137748238707035966959083826088605363835270662135443424748534229737719383000499860943508591969162159413383235769339736162711333451763252309688044732684602082667220945655066964020124553132456029769557367211155025580085378927537289126692985159717681742378618166698691614376679286005669888756889584244307096692091593230534089276715843893459462713676353961817214083522612210458132253889298647579280923839199163475749101653808762322178896318502004701895867900125057404343949765971631235889231680859158246113519321849127654246430661686591551266503756155530431843306148775352386175140813534200294309907411708578261470837264094215860628390627064056280906904809950163134051246184376741519890898681315040080612681026534674472739771119434324171590239925674038171901762216294625177831815025836845116045200902309910280632353236317406270303696955763268453941646516039712378990378458754505828848861711445216797408702995502021799104669263843544487742067343907828774597431935404529501429424777865236209418316102786414913246670218489291031492609795593069388464074552562976830352680313061272210077741174524435098691960036592698531580883063140843032488205957486570730516274828835383161615553033468238395928822069420622479450954388481080163082468245472533733235116150495885959827852043680739603529332252472714973189678996999618944150168099056405843229485006639629643781520493289089572662751846649550178973301355749447705155400564532828756013878619133275027027181680836547789101452123328339198415034498381517854325579111882942521758947410195133875931076341483101868372510437174987111238337328211948928975515938766817604410891432722351442073201654580840578632152847985800548995629213897225309984960442351750042825335073050987429582763711398289885909950935860932319171659199648637413680088129515002496388612111743038748842768177435813373001125883207050631295744037975753050032706921566207042580504855149939330161175183140498990415375006550272291340832006593568226954148437944980590029647511696899477837197238167664334494485685338973681414969282643632563345769483712453362360813641738827031600873835640383775905406924577877632479177558318877925615788129194771894056050993391782843544063591984491994291246521888203497109692505578544387183941065630801966241859047843056427531056492683147575538271812440408470422686168190653110360275488128444200382200991710535260277345034362353589998269672153157657671867797795793656559496213473332099252153307247362731295040543769375056838693209582043431282539299743184088881641127686077740956084805287791179746502997681198899706684264246726053540688954184815190268442133793908993259849101652423381625479084470659749137150568588327821954633200034595761700190411953457208762826903697893731586703098103909695528851186706642114641329398669894523143653322451388951927924823851849480374748624208719063679419834774464699278044162699587743696435902228427908095787965499837090641622516914808574749044818585282715959492825022352610517462496277139217186469220021896918389508260503538661902585779448281108235156748580649337361184553111496072996370695666691545302273756267091492722248685329234497521784601004402367512793145882681242344801487613844829540981314663850958980916848027663558746273266080326857557782586258000449355227447299853515112642622060605308512233176154126848225384073794217254910569246788051773144897454875537928765727412102546035226400861611925235030370276676745513691021323715642095745250338233821794577492300979496033542509923193970831625776861555187439129757291746036962540956816899722353285281311813631086909885766651926103624168621927000425309063679849512018734968828770359857670797365944275813505987849150237696937341521138494507395418132537048407365673888965833327594173732935031953250471367580369165004179075481007237136368322763004943932616869988975971907188182405503636180808293681870565964612095077691501264073391064178325143456370603419615044025801217803807772674673076999937968633453594952260166209305860717881723239045029442120985211068839045321219270380006790374103012636363914272501263405830372202564568960236342337518582127240505626982411823760535085257103128615351475146616139903655902038709490994723146333758757763843395148284717618799722253970495439348903217778934021927565765480353412011997822804500079484915188400523822673616118673253086372222311047643393634995856935930240138395538647272714177666479552036663580886128596081477145951139702579824262617422277763409748792922991107292787144299787641174077686191711434446723591493893413761516654192807027645521605824146284730964069336775344785092533502814814002661302337018254642984747191869636569146256898039980461290748287450682004945767479494487673067148743943274103016599658016227555070264112579352659456723217243109422650538771785258592256262034759843517517333588821267569985122876588538081869416522914476166052845258366614590083379148106646191227123836400488845015012604969753335602581738373896674436073619291633911472410820968761422819412965512941021744844706771412096346498913119847660885403863452963008913385348187077554253474028435139271501604500619753950854831327839316781110095826694295172639059566640705645888690515868537978389776529039765654102316442963569665126383042018550730335422349126877773708514422204164552076972892255508759946643482959970074400679064774757378406343177277386907602138348471810041608387058773851119099730460291303658846081787188604372528855969771237133799694093522296216007399175646760944956727618766737993045547069689903447557105258173295427928183241575049660070313421951616504511369973153240530389386220365641902020865971991478142077235100548224994467219410042651640090442641286475029411195993856431457444257349545730093158991559349373475897908523019176744733559521019235704292156912205578415994811246225919899126380500291554961988979289235353486722750296127875545800758350138495659305641202137905035749076819239347814647491565385658824958122807794624870037062396979310278208477930689729531341743011408946020585598778529583984284533070782764720958103035512292001056900377658198752618167318003867190866625660741227485418174625651644497877722428741389177332818339544300009370759297930103631503150217827167950034512764946203272177730610099893962675846461832156136535906870284734809154303039456252737687127047069368007462973431494228811740814107749884608462070590336423694812442870538645431193910220449345355827656076842553121074845513751915893071571275424904676120620440112400520201790525220095822281513268661875000789240208724596549201893250793923937138076763565012403779386674304783221239738388406514468753376755485576027148441319767253887863130476423258819744381934880195999217900850472200649674652896651742141304098249897703070013056994108246367280705646150355662987217092322291176571664957965393040094333661356649843778814376951483190037817145760751828792541197258778531457831306813501398442402686349856250368468622772542109368290544612950367452434104742143294856287907268145186890193731581614029741874363831941759313035110854958668499308940959089830895982991992304184499189746824971909382223861315059405570754585127106333396575526421258787244011818588841850098686857127887420517657473758282241384733685960272677387927730490421531517189147161742951102659904088752406975945405321531234714793762650575290455512110732380485315233874543555279400483397583147469338800547393681209961770291904668657063879443793863698045356241045697823544840275999007164821279352195926501322186605562786419430959568567529600650580980893283051406394345624395311099567688054279743940203558366958125577146455544317363495915325959910150587472511067892370861376806474301814575833217121775013125504369211408741964401179312573067188682027271201438722244364961181310874091902172784374230615679673257877912586055264409166520293393323654539889771478392040945026910168806758770254859910598148400259901009796387455821843483194852158304919783925961283240508573753613226894503267666962878879403234081018016622381669819437387833399498811096520212518498751291531127773053716938899268212737164133940344215892878872717424671929168260983476639313552114159579154000130504820595997704196846373692411360297703346056890956034018640311832684046783703193865434652321559961929301510801412604400551141849173220624678954617815178209913257945017251319075911947199631245049186912619908406730743000222411294088682605644936472731814858690561200457771922516353347482572480944207925465870840565749887568364637101944608677882144668510566148201135838102097553822328290897976032786278069469524942630655178914473856400474168891389859742651765033633960267987295613605395748426254628608164778883314962309593938492619561004222317076539508033335082244839348969424398005553476703198808961224067877362806434234812207255221004196296912654508838503319144919178727347112643069859454352596656282253075413971396917057657180302360967000611331110782625859647833034346198529689641723175643282683264485954195361662780819426528656771029929240983523853121833420358952702267466290371691925747783734427635705869214435926944988387180967752426410674821683282148606993593980664995473281585523866055111498731753691438103534360504909045298464819698990492740748041375486680289922437364901315148417824803568321834004378761738188310107657917259495785963722847276334303631658326567741671430220652728140379710894254131680576905187683889631733740145240832422327963483461400281648763873569006204997442305838964964582950381394938139650818772058876011399627500058016091112452494969177776680393737455272564259435196619591338959585672716398450150639953603660031800868038996236156524826900750328584944669584756375990395769854937820317952815438292392432097092123295610696144361814910604476673028660827646118458762434381941868341185359217345088158634514825946528431555740680862328853161766637760414035345208894086488459159302602852638830002057537464468844155455661940196413570920151908930380951704570934451887775399914377700720519843960028089800328919353366491118089212403597002267440971343524925043950838711442822526328305477263637064803317568501660607218518996349416639238489577868093131731121520682500798371779010922186723809281480294962624867927037974877287782306157028932844745941306170468864736036914818069061417719052677319661166881597164186938111240774734886148262442558135474977840086620113964083329820164513318021625641079574506366739196017859166228658246883581688642034603966015444758569392987261459808468616218336185670753057983665629114399316652051277210977986595681206806597960288081113359498344278663980518288627515961780024210877874666697916415622375031193030441085849504607737632959307621374824953927690123099098680119951128162371433558510961143406112783539823433824020827710198693421049989860375271062051844262591722237766678896558984371162651859920499825290850571332310251332411158348492307403853534469437032459399795069574193742425888714793869262201001084210675956482884758202254575252026536052986042206265518269718719508676796256737970262883595243393968101122521478148883963922949106362967909453883630774752553609806129248829833110533959843870862184466142027873586221077080073665389145639590703034866952610242386764719479481634677702107723622092980378077810860857498915137982865686901730486588643723680685395900192811526704462243710111775518712177480259717980001359348183366601389132811538896496452284093459100409469895753516840964280272370868494519305775950415449394601186301989316285347431512280266125728362805379780992094313776383754230187029334579612415321439038530444547274519897662548858833399936565563153377574063754249921559118840892787342433277620718480913277187810809230149737264621675602621936433493470039028231408613271008180539994056326001661594447396702098190061455517139816593989041860758278483678431909924958030924466916468221704083926349194377829756958318924648251856944637941062465609836489756673756611570356742031626402323567383768231340772890305028057634633764431526171083659636825199971739695216773539131323472026053641691392294097336125551471193151883842314107825998159272248999181831989455677098316251073220862590438975352145402893892925407441618236036273854266002211688766886703708735762889092850252005742941102872374602750031734871357242751597249844745787237945047591863913353510454815822325976312988718262644855247112277062594162164782620230117650954351693889656868905886889634330812042796335790544781957517218796950523505206260826723129998335854361672601198308611175720969700585780830405011230199626676305695141392892071235054421332661862409417821328238330387241265724049465360889010239791394938533042455001450979568255082191250035653154267978942690169393433085809412673652595969189998349070877517838697533978454543839136761655164376363233899455091923101550695812839618998748818738695682691154192083539027363995571109928848928286842190735238951682435074896880709077457332385941908231587121763975737624017784591776861064208978456593457827650763536187506999796476459888461332131746000157136313542589119518110017743901202602307705209878300036387075287479889066542620989512913380929449230750206329129612760031394565227765378684802494976399150979708270215208859786422178927665057969462266238642145643582610106719829309779978924497525373512026944537656165745550877276864887581430876324656550198397302049010494026301222239811365593082348411388970596261509569338390184894624923532174166106080307936420528544066368975004889529045173998188571538412077595593386979286388912261895387224539050365812021609808524777400624422977848146635142105806816812994593807828470589666147341709424320960064530597920056345037203153492472699578188800377083099541045138006802253513112700061184412972890416715746215599675909369866912119757569309991574772988538023213979599557175135553784365867138092128704623563757797888205865543029174180784627675706788120480707969920632955796923154008869439884717818764574373025688538716780706563364637236186927212135667334645181038724353847553710289978026515036219750091841526981465759087606939878302630091784728764483468488539718186393926086640407635951649967787687659038890647473103915968856658572165734022468512699005042297979685965293173972559572521801642146075026296006965920911409296579713305172073507823287049562963777269068484261326698959688569096737950239881734374731524855794790912602640170136852042802185347560525872553951164720732935633451395296399780153205824068703709016787077540378955117584968172045784250074490702568468606970162681336742309849403267804276070441526767158304104420333819128833570490231555099165184738285180666480657658345034718586952009807777513031092808562243632096920122822934499798468539562463276282069103397001516380166464103763007686747184925774886719413563045174763738203235391379205590925033067589651899451127389258135125292383499833544289943166826186799092744820528933617529393514380597151076813432176219096411623262089807898577433268363614023173973951043229202471403393248875232807090945444004541159671209672228655997589187052915541174577739965590141440532762084945486908450604577808703548210194581443538284209747134077640231430992063217391965112088114257341182685789908345254724789237395846798237808562610276493565670074779308243080896767784365647180884730819817184821150873220798878529211929004310440708274922053531919873628145791853901656636990149076700504417288433814939672132065239284164646299433687995326266440416417102507107971393057218771377772278936223608608952687316449164438145574295857757097171414862994460238879498907876759642785346846354589960751999819287898984189785819147563722681257415286122708195894180982011064379253845755027393095763045545712080012487285728753532125490360541120070986023226293555699231159463496381474434691792556688534243470685520109935597968469977828964875532630023135755792169945962753368726372347325206170393694827886453136811391177824087033218215319191273451036356480647954344870306932102843949907183578659279848949311913069425327702348279783601527790401285306037131943592280396986638847988466452516539412449771289236324158260261041414139159057541783692735486835511538978574968469988969333605317168102785008749471123983215564111133766957709131309856658026422460813294983465037089691841432760842232825849949810001745271840549885085908925434181542303876079169522058622258795031477723944277776348065119429465191757382305313525877402315796537598185930747905005436261829771466484693466528173194418502561473088887658256742406848140330992926639176531282156035192673438374335880215230951736830946731395023715766840265433881125706526113143028872268819207542883017516451253501041901070248100406345736821820604598972652175304295797501957314603931799133697433454425682229214840453463368717956452175791858244222717874461091670093744463343841587948375456983120947901858167617495064728796783138036886815879998493681712824484396156775847458139124008070959678526262170405707181326321892971115997021234725101671794840657591606782129913903640148158811306005123769274455694303499542271324355592902999032257182085068506600113084975257533889236144529415212843839322707032033778031050949191737015151500468010691276914984554447727386920371351751988269362861362162505593805043037495537629223717985706537058821266771707551892261878962848105786161772583209817314138013069830391647986091810414813581476150425366673243828493739277563345514951681514964012688420238550213059173005083772036532990217346149036127460896680012437508062015772229132546321116735376714121012399211988755100064717926877949673641401422908104559119458558176318719059275714572403209338529490213862534444740666384868939014604927729976788605922869917518479969960216628168227877529346141541429552845242888330941495276985551725545273989064984539199950751084962753184602366843820903635325186733122248611290387232887717590255692256516724920032340273150196422053265209251656660889477042285361942384451377209306877789830810525539450804621699987014207151015717160141326618800591903530896077384472106069260122601567556001778975018687964990939315757139887846656366672221335319103534083711509013060579983527761742928181302937585190272850232145969174105419998479982452530291339409848226838546213510981003169120377043535110846490943857136702751827269224819935335077634163719838922830742246687760123548609372466475157906606900142699527521657125667436275189290167367555703750804653142249051594170672703248316009550869046273199816967922211754481585446401252975495424466381929696532482915563751830268165637512019557168036525833612207810299689534599350081701718416410398783747532419808333685046761284932983353551081001836806269231469801620183195133458339168258415631143882371464373446135252944375590797618551471546321990123398998853125835239539070032122430869994529475713859889446567972850920498622434165814266569611736747736881501073323545477957802337221065252153366165506030444529905417795328825138560167692156199646014659694759748390746425746846360114480754530994970981398152906013591571243471688088048482309839404588103613408354075674015426093386982475497931270390439234880314753166369736822718658176803071950700282275178053253794398205690220890730007286139058580224303781523115168101787733283942801613579308222916552584872625152545162427394971059347839967113240979181334096197456793935533676747239132101892726939036195096012587393943297142653561489648144280500098218283821342029139836286718596918755115463198850810952499257690062317202716256261179558302082381236024775257934299157421889439387063476740404506594925401488184094477863983556323023505117709921670650662416123298876234486542006209261147445718950606847289104792347170270555558617986627686815697506476012868924048137015262882939845195419313713373926842368166371061014391504101084909292138418885368304628946005067739727006952403515271269467868146312522773886997817039035770998052829788682743499843181778173886693071835007140011563985800051961587270596295960168801270000808467793314558164373856846229216489916800780179724174367081987542147267498384619529059984359672015845462465149629485116768679747249489159784377050843638775658675620737327526074987416057093557409628146452128298626622946985848445861322187864237006626529511580408203424723411143840167899524234871643322254512893126001251395955739446982615493967977608903366441681589185274213383785731919964694101736752767509350112614225051726560717324362397222029964666425856547861925185872677575479350257473163562486076584322684403771530580413302544903522227900069842014055940511999154094019295985433777014677041932767711801260621323251318812172679797390023558058053622643039251938925633347199219561206852488428100637215464537739915571775995197809818660146627327190029243902030461086420628918731890549285017967261439260033563212996579325496802260039105625479590352911444964825364439735088127076037094342018063246599206317419197530431337769174509372458387374131810601565663553928729110534926699833957895867427423713677272119344841264594775959053886611293080442212577919437978998345200122226509753819151464504622781228839880239096147198918387565181564388136662848369127944289974350954324233049307952422611629621549701856054239704399593001416478808073184881890400402917339037336150112626693836368157286827072518472632254946030336171809974770032648710806465232375196745005494727997255436463948673984285103694909582191201955706955470845368219658348751776885340274402993731741748945705782316092421127504819467230208804018552892961266573884454201567346111604939032759868757202182657776633816867369392982360733959202254333867973375243964117994295605534181531881346978641485882648697543305066173349631901940461331888739638979085618444282592974816390076768287165143200353152721166405059406336161846592024652822354748220574369872678983536499382740033522822509859158248038570781056754163624204506053780972679209872529334289903167751857619525082800986250848611761832436034456400683507524806196116030752246630518454941915196968277811571369967379757149177534900753105697002677005466482537794899562509794208052539252488232270412708450829003471084037649431432112110020904629021039213521962656241467961830961837890144834532889541964236748862068690799177200449253050527918928037849346308143728737192320478359223517780270109167532703408107234120920807490029841419908135944310816386683593349496046546858730789004391462354870814400241029117129638905537875995917169066531311439491457241259308530726998222782184909945828250042967867431646264023236517877631294022228250318444349931805754269820115811371357713430044383961873768957557189279301897561548990816333825039589034387266505452325232234993796950344947618446138271385311810656198176951683062914000801621485239758457774072552777350993969756445574282320657044889058277502379727787005432644991000667704306573811935477896317163957727224288926957023987465852420870787485752294520017905276451123674063334391043094954068598566219355919364824997481674885510168118221494090199655680006860187310096473211758256585456325268267656910071003799649079691673639810504135408747102518037981940784369986534317682431954957804483437576671181980050562936578119828164830588022249682658133878462683014425383939099370166140681211077756930633712257207285213969494079751291999971228164751282126089249961204057473922844625652410946175031823266574096276039649400863127857222927504565005056894360511549716456324052895789289153424679228814900748357523698357510399987602054603748521303761254721955254286730834687932164110984717624728574008580903575598981658552994119696646824319006599726861126286001156398980726295693952527421820239375308705612571029255911684876874689711659846272808786267554885262059369728810019889439368428285316766203649071307652860446069354904353015595104020410631608354423203013534712462981439924560123583051297128646447996617027043976454912977028582089319556059749349535816079400309043766153807561365076170014690799904378689965232458329154244665102691959158595472647687199151932911562716600618370605770133930505944928805790501907262283181932902485399637968831689560465546087928670158908345561569307853332714138930747930795995270279614309880403150477386439977485748540607491598043340297544825962232916924042066586417549664297058967784742729961322088640038001331972975745068232571920292836686109048156291876661338322166744859052283904042258729857164685341410525255638740036073979665714150997701641576881519404322331842359315743903466559231970776791913007799628757977536970593744085334347663895535667137976689916665879254612059550110143884551278800480418775721090483033839117814224200172685287388914420047131670676231304005880458502179815977687185547740643378773712644123877165420044162763102713719099621587864098721756670412728576960506510822740402226345911699084487574516655430010779724146035042734818807063584450360006529309194210157736786283866504364766526384742643104930350553571186566099977610922643466701084951076506631091932876713780846349762892059463687173408451415417571412076106679835308984378608165417886836316294427768114805578563964515952968843478203499222140602767402071117655469344093452229336803743708467444443504413888430227348399336619816203866954446954172054718957705079797913322372525126642109499191934089241318265645160284325299729345118164011476814437826189223114209349599580272564051637627669413599791921177553656424491231826868522534443684755886912097685897898034734157275122385449157304813732470441103975814934257543428708427617808779154871423753385800979444211885405229585929713322486261963767135764604651207753671347354527774852782476369304323532896981359059341780037576948237412853254418390536297283782137727558850283014542379184183285191555886230444135862577063105762368193263927399127372076141430685046713072654958216830554618183332432321566305150437276723958283899779161656799462400595232069433659610999500307035022096193003520050797385129352539871670242554932572384567272094142290375765321997874197112389844603839020694932290701304861199240379537873587165151257768282560668440720779413059512614628369161295136158994194629447360321391639829962243670417670683442443356532650786031399429429824095291561387207627387959176215997752001507168303036093003729993038129392605644771033163737788794312784610960566097378375884782764955969192877230949398892093456708965905257755796223898264624420889099684836847140909894535552774544015045164531716591085752646747379008655267449383567738104571054947314193786252552406975227498804483257007991170375963819734914805792580563601831277475058815161125815114213132195967384411918470046752652015046214909378530404145315722642820949060156397559655831494883576664480244909365460558021622360193794023790742779955560048940908281109367975150326447057389077154204546605931582091981522390144514682334818979342027121269122973356209749692829703517206705157698235606130402787775560427888124629941930833354452985780788648845829825810097694282487097301702953629642663583614166957923431202441922400604458299115715664821129072213994877484785271329250015368355109007860735046328117134087420634513267175149108486111486584900715829720284020223263008085823554521929377023740729264041639506123840124303376415145736677973386843755895032581376357714355056144290224505485989085321570642554035896973242079711024086695382813327498611404862075429633157307456607149979324760487339117221720653603600145815384094546355166053471782313889813236787607735866923581402502650691221717361339317953626739651485881696224749718801937519007551339607087790925667492984368937853896203654257886255814875468170255542426717221721560152618197252093457858967371671390949208730858481379922770619053408080855293781274284404447142087696175859658786250128966698024340761260377758148006466095048032352762802974150550366810377981095241450535551673771282119063993579893360913692802014620884013059848491592219856758004351781285897457780219220366047942728296868142204602806527313806576865376347865372589178223240978796498792877446675289169040349818679989660259611712170854440682225583218894313438265380301552879859044501377814960080750543483520350432282195450156484806088450220445084906653926293382111593634808518774451091918873678119467491322477432285785167144612593636441713594490583977166162774943152349797734322016903250605950061748296216771883699878561294967858198212417321587940744883380383385707558037298205299976684602665090556785460275892415787003894153910641503295462245421143197592924717115046504640867194157079840836599455078213732491118506946621816240339964418258020082500166083962042001822526150412116663112985723372715785687132039601823021169001549425389362788720653906109850513774925941766946652146785959230741347622323501053385454366848119462418109171624971754805751570472955836969208763656336261059874541258284391498174625650111784395779485750878034290329028393668304203745182254572414144497911948493071339604812509854334754581253287307383758604935091333063167063025961970254898563444077442380355120591711796299503994626790359892934708152002516064385445571603306253591675399631433716544366470348033326179655631397574660957989238364732319912594070600936755855267046665078018080799112676826982808175980224389397039661428025152438771251342799607263206150641429119869359838050981248696528969489911321009584192036962558072785150816663122928624575216282623838215102054861108333982108816650285295086561451012276718316028065723710137956477256542857549562112955983398585351394107372150772003367835857552279684037704035248456309259201749645529637472294479040552764439578008437988477808474273736472832408252104632532505601312122670204066538659568044258829100661364294924145297773664643597690081711088117820494261044719266565206276100875611845478723310346114089749744948993541036933373392917457085939334962732872822951823261688980126636139633300081333819649279341853239102693138919691394765932276098845325351870296578288173252093214036179114593102016797279488676541251065049790433762973013105158225171275385408350483920429828060648177109650460582400175520732636486153312775015139180931672498946216535636055831990381200916287039719996788021952178628383384877019306694412364743233761469685787763415255944210541399840225916121328497893567557565472237175402390765080882252012913540236700248857625154066581075130520946252508764058730536015181804214836642466183739674936490503573135559480815404018260260593539969782737962178368795021663780060257383658837325735389240539137536739628077006637391509035286278288057317240876853847726027563128231682540233590543772328862555427886137514796688143357947341894712633822987908860257494291169695682034237292539112737242670605055514245819711561601606178014451461807327291293760244063743465517357915557747586361934532870660144259641055294762950049093034843101658560025505673871791649873643796870924073525521463933607206667676196134699653642772167311630323703876617621967547812189939745673091190636247682593859638607392067318528880935421714449916246203563561472094579647335505571871201670886819722952481870581495038132932434706827592617022121751465560170222057097467579155073535578153922928263609601583080952027194297691708530891627348272268851887922685762257288169568220004547917215875368513994967501508456958367386454067904830774951170629433150726128057407177192531268574687963396689604823506480717156506717228601179336950306547595893971278122159461304440185016696430725282394995626800223900435734539328603501846037027406305995519444423721924847789455695060412734361250433622592396809950204784994871970790518400389831993996826333285503530224123672605812000885117692149067589763864945309402941142997157653890988321788792802790352739593859098815654983277278641061094312420316183945781793096525349226348794380378268673939622457123610426411108083040832906113443242268068284877579051736814089446830477764669692123178207317024176159417244795241060684708588723242154856056854792983608262266131589124754636380551136639980019365672285262499760369665132652762291793133322734208824058289968748761514236522659764616095577053822801973830756025308013047581543690647213921810362684340091208299597913987774790846924825444895556350477719940255164766331732607840923152889953068747562743207387647837958225737207617660795108622025748965862608220447357876617695886174837187536707168123411895407945080864029165092709078281755780242422637432963925048255409251673122455854253938698781415994603300873828638822716933212964592017841600493969029484188255777179967536781896752981696908038286890674316646672163937308127634933519101711028999303021294825196470112946766281665903224357999597151638297420546871178167334270308831327046777763533992778300477790764007131913151776008937165624036592775781307132713759358603269671623112036391673038049014705409947031121968073325579077533023501305790892461085867882335292319290852901118719187560487398962279580149779490138501515099485558686059526671740951257431265432801481403909619066155956978727096504809082681659514066367863814895118666445379053463076514642026359247534623241940496770358916831508539262846041404984251026396547111753287992502833212861945874390074467253654990114753005870723090183936258883173019020320116260347138263431129049470745877713124976987141455695781548747469011710857964414117636590064335358133635895313203720035421861497166353610860998064560627041235715869217904563529752449484009175247372704458209921397815969709476011865808089770973474701843739623419209770932989961686573326838899961705639161103119114003839894132452751420434851444470889544605993955914601552029588563558251976863300555838264051717827686849835971933862204041602333847313715137151192051922548844679006338344433767730318230498288046104093615321338051557595668374525195868633002019608913462695264495914915714424158939581392409333585540930367922945623077393161292845336694573887737485808850815357993320885971492875914875876769052085111966404401617905937188000744334157364317871906510198625127770161707449964980921424184239046504382324431128860415762917204274665718737352834741694025372656091936856671898141607262629629399584570768877099281764660164685063260285495693824501978761193377159287417475367306738782992923851532283654057553117778713618513932548416903886040666109925949349056454252766126998798662495273486972060554377087905127320479763498884182878152552560062081302757893212038787137774709840906150839932116723365709630187792579109237633621526662477303619852128788594999521658339142054863126049957111820020546778872637165542832367772693730779001176530437093126072032582276692638803867811718348463438625358218804921383829856552738614209225792531788951673462550033216743132539308421434380635493519228497959614596205417484185639368089916998976190856968889304122968011266441736163696727210993121454590845879264820032038220419007196417144732607923297289558310130464219911397956855964274256298982480314129869807264015122240089068639843658312860938014481652036400967334739828013306370074614959947962544437254493703446333815802105109032752547158929725784838260545897174279865674333805492777122687221967446265420049077543925491079454416608883121795600081844971096481514839710061551491733502691742876701957745662868884523650709099564164605617939374716472246916754880234813484687597471389977124756270591420952226985372126538975339655578741927335258768732326810939518174598805883893778735631641661123300406042255993316228799883991529105059648153982724044637674567927906552061534329227594316740175953146588351038096378402187373482291464331556979191889885315375542327540179956238986844443817860155900577059582844042720934504711855814972951576852812886673793421514216178069020645762302835133936297318694180459823649321031226962233687594843043184297298540396224043265639165268657150091152446015463243745300001153981769602007869342696142111016168930229890118540582980483624719170191383557285521356603195829670838524592372185335485445810894696660127447323305785924866900147048287599645299798622532236722958746488194564565056406794477691311021977677993977667968730759442120997217419460604593785783480031274276674519603900698948697012537254563969139150535085544887298318989912523608681081791019628427732545018734026544497534636791836190521526776951866975905157641157831258677617354921569602883488878475103322275552495305945552093676591285353665972466302153271911382022728911600393478839933021743942053112950165715705802046895132171836229179376203516347362028428864210091566237381060870711644769142858016828241438006795747788184696309822717988935544913657445868333216550674807933819953606827980016410140393929187592238528476347865916215025741011110490251919062641392132811535781847213432217477249251839073356069206287677506308991974227226365609567482590369941592780383804496808843346126481102485072715632806885282199140907004222955830299770091797487259621977821488060827947699678233169914571348243917857382460747325416029766252234858914142910913265464032247939758889720948453931605316392174929278420562742910384441436855906051848512111043689411941652285533902505993646575389347469039774162166470339529015980895459633505877306540274940529669530927244651631279681220712638587329485850747649348748839411235359468520064135217249220220962141064640589048722026859162203963810812776136733260330527597304148937415849220180823738524099893521894505958559267787566316925237686915528947297731610305914098246571894747681411273622801904280287268898043115622351263606021752152929647660541304391423777064004354738710762940168302163415985584967073991523214935843947034884948160293152620227468458109851186381644034976998807065249195565561183998217807554767299030274286775962366319248605126487498774733436542901240219171552433990634312070975712059972446212360259560179084424782841784051094199782061089747429056387292609066770236425800787917071612418379090307477231546259183922152429204360584842582374081877313020439263809653725860980363827576296621134554826648271884630612594619049452059556332768721802156839137486361872809043317742553593641804074880087609919410211428260976005697693593357601343564520966301931433819678830367614249229485025711719272048297324327836147579227280418447835017598244004017780949321978742792861566563191075552423590976913760664896526087512400936569387833722172376158916409921718328248364841280451712435904166748358294184768378103279357103851315407843827656731894185977092097979822850839644330267247708856000233658278190158923376157615247508477638081941497193808053106104228559248942563455007703476639031245738420397122187195502447188372186528633763718366268034071509504118001662430212268354694351463486025503677631790062177832218862390305204120647660194394911458791008388750758928830683256355149266304370717752582819224591377675678842695009894136164781102565173335017195745307946797593315006552278619346077910733162563105762666433302891856667330671187723129968494874784676330992199735133492386713183792269926552832858672298688473167456270300451536429421054691022021591158313680336202171976332064869855552904772926463395185419448608243052262154541044777698677851618808135768233219032620510836486459098421392533734122336209090156022305039391525479322536602594678497704078354669907680538961992013093582879209117298823448988459301010216775693221020084634558852735598943997747088235978155344710102440782222661792186537952957992989294696869340683819617542437876454058793259776328083300967299215773395769733072590818248318847472619242876613694173205353852638823114784757080664497175131970016212831142055308382336502737014556175472280510329410488451833143349852261853783022079990048523838431924611212077147372712694881607148607266579885202590273874825611092956714223548698991919253762548996851598081625576238179461376292699959315560721296340400592237015570878784473596506341612101557811218129260047520827977458106658003744362182824906253978892501453917118897238684024003782803719790155461837063440509322090720696706979794281015832420275777961166725727324897785298922204594943260071497324334813686800417888647618919673868751397515723487981449825602633833128571540451442564650501562411741770651407559908401551590841960145799477300733057610984450828102919510452515584213350180105988219774565519440387866717567508552004160833086520125877698029858037121527727872315012720070479014687831183650960552357463807403465412510958611947358064984222218688459638757870747803365925268909696556715954703467905259885051881520236420656287884539229839654090389081124974428815952556347508795309980798336369032756490845131526268220529757740896700537200635883692322418085124930976874107575037041937030819894651984080622470622034337377844650664749764793212004271954242514852819042169182149868426493843088788692975645509299682955673271175341271655175225738452228780122049804205133902828936188824125997540759989783794150040841747841200601494209580880114006904438691011340058972001303472796332847447935265241905129214981612594925971025448211761730436675060148073276370631157418926729473561795806322925118222422459888061078265828571490210386380063725089112035480968422787999264814648003051769809425251870767945715567851035043482012770707759911101728071799726978000999039459350444509453116240212293272020750789357440109388984810286962231174603029661151182067146630101780758032059522064721617697747196025067110968737479446051972455964950017538879867928095286882148666348736163910363940531480545988557139962903609116494484921546223674134775473137365511182890984134341809287845404748655531217801888826712718054863479057642451635435813995955000497463796590724781212411722158233900422064060877189777801406277827050749237814665854206405883350905742587356974562922726467179122011866654147687453272060129950459280504017615928399563638096036829476804062071252497577387303201534498608712504030433304596907469753156252007686439535446237920984097347975661437024012685162821199907338787750262683566454403565579123268075231532616697823448250664096748150683666854681936934291669624989408143153952325944648390808286445562019366498890228201368485337017913983153456315213008060923255731425840038955224804281936449689533595404782697667785081810716954065877964067869968836030051712633226637106176630403007210027789025275441367275880691917712155124874492794377083031418393577573450469436220938027160672295448453456669939316151335245824841214340705367015934472843537705829748831835877988592206416968945613501351475288179198562764988282300235911452351597785624964197358174011961015654275333565516393915203533422379161897127935463602637139708911468004436737187527909939171388978008217210533189271322296751309763878948715666433498182010493501803557664563910230395702404430067438434567952340661395843412125171514762066644633075040833865245071250709230579866840583607640336131934517539196761371148271624205310725855671744898128313291277619693502483970755387009862001562382281971105986243579571764708962197551099335167751313700078402219187249389314223022166919797718538163858689997467983716644639092644318249099899391498828403123753315657114138681022591820427245946710414977419739221406304245844092249852192573060996880768633520340081287436987785454571446805809458829674496925739189280313063970067396581294538610001044027156605889156764365710511626273044509884966253373727620067936730476681066948586567817839842862169099205194065256219107725383800707118055344990332250848531559660616373378763813823736915055386528116595930789216741781757059642134411570956324221286694639073873365583757315170964106767537927647927554750076073033849120275067181224231228134282266424139030313180671060353807997292471888990558315137439481724323639654963829476877362766319527681462100348021222130749223339544447058621528670579743283300207531373436179893902146890912802054760523761110245528093598488293131790599524198518633017746891508864051437730263967388524137789945100615870852266130647240527330394305335412494565008438567017055711998449192499021982291574330213752870597317923255510380173159153283869980942512415302087717671864613626185329623857860136944556589424579452167478256421853940978443772521468417957515008100631676666600826321982473748311945379779419202774976417135043352817026958021427588908949775553404444324607633387183721550543140768602535378050453657939847720022628190235356177184521196667094405323725395872040741055736634841250861844702252513393202374011418330060323431042299080285008926078191874128619848750752923860418110992333840791145225575191726456681982447057513809416611274371970296747767011164964226216128791459130614472773617303750954642842190670703018503369268447763075232321140424598903403615903547582083656794975875791567208825160135191326430884006678020694758515562985198946239211475127831182226396679980967330527130033564947127141984093104243882431256614059699542388760740687226772365338952158880965940664116968038292865629141246301490677067530757130148161991093358617495440004397121804404903233250140172649261946605308262360641765364478374290432288817673127603250852824804618016804017075999463163709981154601311864894313561216583067319693017752820272856744309450311981704498765874137472367609605136412226905350871459134801386135914630736817390645656992828228328417452380519906265807126635785280301702120200743561074549152820226428266179414640414545565893691097693839937367077525483576377722329256826192684323749218608691842438870058682315804447725216799376718715379008506412545764351511332498133214995687603241513849289059503133142629982474629715981073118715131806658088555237393891841309230969344096340589988049188722145877747285157263199377281794684907057659308939940601098046621060699495725678129197210016690736403468891880388176848355746747501682586144403586630740291187050232582969750321383956446049000148236999104426971549791196507748370151365475244371434776819846237481572397508655537541435025123925087963580224680814536236918493873577818800927429613030328514979051195296061209896450474623592584146366459647167615000448633141652910761981909193933581521930601013224282402039550708657356667953681424340539425481611651192131159531432480564017577932456396695981111826683112485025444834175224602363318820856281973931010091591008789786343848082117589108827265908382153568630446466583331355522127386997278945464290814237826707572329281271297662824698767978613720369768368832473080841407565282555690953059271559752813122068856927209424373972496268055561129284124020870976880671059473539845898316377872191174444342947187448353770744815019653045155354932544179283048512158431347810309071016896443402850279105375152336996119510559661767972014590053714470055174074706528318747922845742861466241770632325400455403080082986052818801014836644668096571124169078178135804155120823806393705102374448839378023336368136786974832812118034332163657494480558564503689479148277402414625527130575908113323951001574140394013255519455907182104041217932146971238606040280336581827127343323757863134218665070842035007402386276215711821019692823172337088792058836411582395656071702704884278889963459446804795427684804288289441187556474418414227946392734427154366399792942437491800368141646838034265565369509553917766586217107690247831462362135892528115765530717760029964556928167637004845736285049775083662064106389284080107299872230245418749902945882690263451850828216292054156787581117938626391814094974441249848703668174446940692149638600046775480034353565666396459876100092761644195086188191997802202358459934184124586691545911042696555759391802033886310525719426719675128822949679871116565559785134878373178985480433287666288241431787565488059368914982874227679689387942347349227296294245100876500095106117596638178008205380280795916685099008975746260962491022541478546313406817293079277377844665863569937314083102024279779625392979040594820548810999498052221336625553012814898455914001200945184428871867082863366923270679061030769468228032320780955532274933277647187385714785764503038508483231383570643300756170002882118129341320156390334418208022560164181884927920343047942130009842393778811855021162734141675213898649395060258257775168441500757010070153554262442052760057938979838700701627567686872028654075048222281943255186415336007473343648765498650303454776094348294876498909451060276279031867359683533826908925973638305096747567984174856517878482084614765867838973961540646926271898658973448465043814873496098368092672917971830810304946900639749815313781230925446148356311946811333588181803931355936133283452019501343771165221931636727572342498336659660736906838370148834542225649554745967369911705125408763829167019832250210389424643139194388057466637395048156695353914310081909701987791754077594941654158109526608071715926744620571982663683023566277742263517455685117192329481445477662714065157124546024874511956833570248821558524681540140856670386568099803329990079288547553252267914347845670934748577403684652191204105622918742605930605105827067733559248523388469588316168956352999935851392773312214436370696758548431873320264219521737641445175592409682864083429505280803939386815326349602170483516560612153130197910990212248110513744203775156511196453971288169686202928050117967425682229550024552822470856920679422532524686059076759070240652872156361140801803481321865020862793626109999149048103520179956560141636844775196062546291770233290956772571605080841859380741672723871852994581259699430657089338431727987318474439441339863390055614298219089058387872620725895669197235828352796466957016184755920793098418687033651455889255337433056785838587255611185939295094558020474733853947218976687122429843496613352228663152976068935618030855112335905454908382995648049559182753188695895409403755670028391418472794773898149206273313933142738077549544851994829361119041051747065618632624805766381015018117436041552949529105642983089380547867145909551022970921210609179584594957611524778736631187042033379547882401262955036062141663599686431407619847686861571295974336270649519792367265409417748729225452914157821443869520459460667419814821487843837503822512380533516039428651045483647812155997218685501731994229333687639763669101614730950133858778788560652782849693266606879198082100496366152245313757571761516311059987625192238368317068554973782131804838945661409205952261268659596068143385292139564808695296437393873820264067113694970349213333308384069763858214210784822097699969529659285084425740362502152958966890031212998119857976328820940390490447890183909689933985936553326139475171661797130003638029805260973640773339713952037903813991247441076299635984585225237005193232352574338460258709195391843646687709188733143132889291263457216911242994315289497469564058430520391228386839798666130976958712615922920158766230930090157026011358359326994635542312516327514477583463716057970111329636711262244367009029561319262057455215729355855037871322203769517465109882568241249111712762270822682749092094244063622165920507737216225526165715738621258103884053763089765693240458101359405392364500021910587489580462998008678603294413568161420806698827984664213604410531763386296170228395512501118071867914714773037410188864601458921768122141475696624519265650187282191937436298680962058608150188265888243508435119969582184053087753310849807251968533286458740917589181127926261940777825335904750152151223491280290708310523889807336873433999793571470785263515427023484541685482949559479258656629498796995720624404268193385531845159096583008658164411833001638267749655092347853923168091096247094265003495726777539375686922171835062571239164196861840879199920977673394521967829284346736782656138367350944241031503780037068502362970352515976457630827280913919592486489085445108267128416655310930156591741629351413513273295694200278530093959593151960227036747276885574682125625848457476829034611850921100954751294646335276007404284016386147564718507959077892993308030977060793220793036929482757592605380040777492947928922871209171991911922592263721093402274863024285495984197107661372074412950679656409893087330866885032374856725696557552949872361435007021714222274894762154973073103351605183173609579378900526230006278514749364596662070706932090057747989225567074300380712415464301054004100798503075002867197200066397098683349784128775424896079931365645986454567853525193860630571511699776015202477641651170828772052888846441042377555136920256498144480800656760297189746975093933533922345014509854219114535280549382560845449981455175021067765060091122432820098317376626834317955723141221361881869941007806617547281477129338838069604574988151119341352635067298015794416057651411918529321175036765408754109843724911203286208378924520886416274670928748121967797300268470825436859146500136362738136715133872722246963224926381346184935659733648914253521515796587445064074588824442266649304575998426607396685638240154090256517963536493477971223821948142522903925368939743955342869164274256904935718682655431906275371617006827399482927002772279794490196990467404269435339317095779243801056216251558317437072589118586821585481091427426946411759400766634705478186862609805142412911478353417207067474979273334946257010434800169342529728014947341729304884641238160285912699467464997741443617298494205055067508611542302319665343355428441859125775052172625750756356652256289130110824267187335324686074778436959434538233546952417312967028352678833113647227371951209746328207952823360605874206471305808842639092437056969221237395815621395863652714211278300757452646915824862502696712418393791523840737572011190688183173736750591513661795271061158480425602314296998485163194479341862361445713214405368294791007432588019379705988242230198245681247912126418432657333474655171382375024747995416773844066362006082676776767997803615667311010271168981215211002564353603130191867116569525926832253625576048764187220614058311395996143209668403503241611236905267743778628286136381350753612293472446014911256068245124742148108424635306190321274822454242103497201261699123354782615352218022923024271428166747466444970899635396514891481371256993672704666753507693488974006818786227172281655531497077328713975448234164291239838706884931859804259544882965413327337780532822783417769878098596806193859985195037800392966934087918784618561059131639830584029445360127661145584128526047084533303100762778945682409764325382844927743601477938669848268999670856441722452283071244179100498088597165131548149775926162021606215382234271949317151073855592906427591421622069095066903100039302048881459409918230499010184061579172787471784015719126310543943427200842456850819750371609765305411998209279930275317633009060171660697300330264473095503460114033407603762710588170902879511844155986557560978732101081255873995716567177822581478689735390057225822893584720292927833303060921617864944481380935856428473510602419646140081582651045889748546241417695140018219462406717710378014650621486077515195900667356266838746529486764302005495709761523027293738421885725594019751310592362570532580604532084111135696459750573715592624980566498426796358890296213038167378154917162478958893015564539447229584887036636567708651158626207462365197697669517296728097245789043233235660622684085511665960854273646373781731806616620954767910898169725420150098249817831955735581134148177769258569647183817991220419927687803703473858855558891842948537859833148068930489617259778929181234760514920502564758430663465815655684424563483234835724258586571217166609605748729448756685723178203973145958875236191250448325089851223984082709372294265713234118413619058035606177296554874121920668239641822280684490018078779716020844957655812129173575829790216098902769308198324154145298896141993316646072268055361061470942808211456674196218063968745373891636843365514904314367741469958799775782490338926769787113904123655468694926063738849449324010914289002411467387662059506768685465778064999816930409993478536870878040170871071501709082328802561446279945454134851812749580171336033890765046416922603452393623888298110122555055384467319128499383894224737147535629924325296036141415288860176851866750383306293311712572300282986599325050666226190645463968368814028851875056548413081250795800205927997419505510098480045508805431682415059525927015048377218173227894537214100502488949482597149624643397541743521842400361718838371819535137165731144983820124511698694097167800707157254024664730684265613447924609958292719545932223914735032994999604584067256552888422370880098884527772769565776804085885660006325500911133205720472840545161667225184655039377421457333941140773920071711116868293317245674452424361569780971697762076706715953142361471016291319160995581053875232802945803800882932984385674386563416364600336488228862081072148609216905399083954498992586919431417393827072028054412763486433588903723171918170540436886392910855931046673034271735492253890037623090074875186063867118980105991634172915089266198270157940453039509910467480928413022855851913259389817506384090741876690312235196664770808295633445010454685622668541749487140530050642427318043639492067092485248175779858929526804429379707282911099136307703063930214542838622479588860593163393373196125512687289396917370399909403240665305246692255758436129583363335150943246813313282984358133244726927078473439429765963471316665130337116033272429869619711369025792123173654674227708438620281769638682273702623096640815879788679556546502069595614020020205776069451564078708640889594466053978261352071630993207420398628760819749516834353424284288803634504798355463803727195465400547916974727944394705143351979546285863418186687889514235327528459403427504249932344794611689331189630402545315239039535604302246914173753061840154956879371983176568473794309939117118127820338761154416645591758211918467341111882557856786887217942609689566228547963371716505633292798213244005986222936806188155108939944173515148840919508839611071867099989842403464201195859355610466706737676385172686226747195417352493815518015619594699488957587425379854069005707959777738677944784018061925163741077933657785853617783958526264431803879224084000467937909456119423922157682382870322596835938649580324345603472764820670109343657789663601890227859473414650175541609547306901993457076830332990155957411828957196267871742399366553094768615310897439975953978630282467713987565157288788515117437585750970534686370891759779945822454699821278017618711712347862483054139398029639571807197581407107931032506434042988335046891381752231977109631082135341668136106890743375776570581768738398883726821268278868227651267736682192003029396619701966555116444545932903988819814190612081484755048743916561555320465612164509007634067044698634794323235202285519466257941286958167571079332500593763284867908089780293433951708432884552371549790430938825668034296543974177398683178912287926839177466907141370720621600627852563160916480320578794712673381296281543945413196207202421446907916187499840657023215712088826414172375151982856973527388852603691807363693026316288429253561077744444791349057059402444445709755166265737669340214674109813650599563958737977813070647318928314747595573810729060559066121850175556270457374733805267908306098017319016661268092507796650402606458522728099459274133617046463220036475489905670963377925804876380883504152537637020516935869123154559562766652534509386021401763839717334205845791566316695545731331153404571979843429005912010711928804529368608578829594083696707495294593522030768651857421289001130138552432096089476808015708967917820753101065229554857299167628659819653397376460381611762075991449152436263268737569234563798256991415121212101162215770964041523898649801203080446040004705071566597882897400087392987742232919100223007473080684743667880315906496044086269040366893678385162444063703090111786926954083423907783013341505177994560407325056519251577635724535209747678108288365545836119544593949172482859789791103963302873294518002573018804754316961941470983109498734509681688036795499031490313737608263359036325549694068713193721417914259235641765616242371149470687416138234586884249171921838105871063617411732622248571470850610160213393160306689859121257477455780429331136906286314830855917489237630440407431669776299718247917932732233175040210086690257608131060143121907006363214940802890106492813658156021085815216504627741959409826193139135554934628997068911369907235743317553294814764065171673232212304887586316568415615907866494908509561540662184185719265565231915379345694715229069721199414842600192411195225725514378495487232107921641738628624675292706773302751623551147022974617783168268240095939389201769100166981399070766586559253209239346074261091667447152814021790365460789090676929287234316916527322712061857366036352937314638585121381990042038361262335834898679761537754868251338032911347506529099980206727645893484400836494581411095260074525893566578392148899353668223234150601686283747141975960290418952410603476431618707170453665874356378903608013820487755790674298768615758988042750422784042407805087919702983528304768585639291766852044606767138671978440669760468658536058487024275622737889168709844525739422328822197092072213508982406941842845828305693131000732008438375966531786926531874179046287301547084886412732190541090938264307091383251551925059488340421284832938592802134614918915863148893243192966369341316166585189241618779618826989240154713008424875313086969194746574953569470511937554635147574102805108166532608230700212460210210521486409284879755730833218855200577780155597261012332893087803601131328315256476766355430626425837885800085486340555302735813717163533595148250611507305831301289294938737149368719279045833578429586967937114086754893499580794152903320683642822877201393043780518596923190603941329860994779727771858122437204433744596114958474171007186865161841939919863713620004812861732686131249669730198629037655869962748372042499226737675819166740260221639748285091789618078629750610466296017723101633508508270198347844679340482031755376863620264531379653973147427471794086474438859342622065162001581187789079314322300318129747826283490025240110333303689301090211657899190622618361455502434656187952873131421490785954660234471977998301005327732105224621046596860412050568464623653165054591953220320033503986138675177219223588998506312797638646196291440579849216771816741848446371219761677478422308436713011824288315947381208489071529294066520927621452743581362058884566580504576107075397787605668776825274887915402137629343670520163056511746916932233129345471002237231501323274213379840903275734136697500118329238788587788473129870828775137146576632549679129208990058445082823698062810351070879249437172689040598002043359396901421463794247431958063687090105285362472683771402768945557927555214184271412385448408298518717291316926340021838850554548757284801384244427215081767356754640812476992489571358994264067820106309736395026899963365498161224580842264837439526099913919383905163892752999788576033720335659305438924303535441653737065203870359474799618094032524520402416839395206133871907339526327745854921819482902629559525206543010117856078844326767846870355279393812805596211292444680751929254353815397132561217098491391999805251925774205091672201486696881674912649446703373007830396979925805548875715644342538124570217698370833678449972901634854461240855446815784298985625104848074596221232465678660286326283103398790465950852099684940470034134503188837186511720802049531973236618417899424607847747293984209720919975452879533417831651161069469862041588047071013316429772679457260479298226135567970683261207769451525887798891611936245503756877043909398098086897010946948770835044603376870246430576995902076598057489563469399967382202565789383234484260429987883782856069364170678604683579231591639360531352977785820523273340824609277452896753905002547110664759266128637562691190219602899609670666123447064253835052325771261850892131663756501455150248139064266439835382885660100461872282255827491121108824643597314831237491286809355994558392367614583603105064782126156617381436935287811059784098910118406630486439244427477431226368602706016658589356569054375497754374683773892989972376235476007206447473017869886176939716705081861469464466700709090192008227123208347648189496249006505977355099479884096398641627015569531017179798019843176456680123741743097580187063310181718817135954601783585505066395338679377045711059147984614529571592953873408372766488730712413595486054565701818715085771078635628114994918874002019456476182676776923602020497911221284365297340512728832286727976626078171288850559369163109784706552821922217212241946316236388409008217418080153305139192615346455288568625065206970248932569768767888017443313790603193417127695758844159795197253507826300804771798277853362999488980957555694683947976114933514644337140237529622836647031184165491293396893894437430030285578746437337605990249351589564002409533112490445904031617698677106862487379948367901160803459860359820009858680206579366271912519616686395103783209687444218241295834480152412463903933468484858476555604388564017354852775073662695875433507880911942192459679788870493726089845516312147395263890062082949900085973718374449284721508303651088911707509376884541410741185335387765582893158871674573195110650961797547935631337603052074393263349855637440204717140920211191193727612220854583595252986850915316676745702927209602301166144162855966688594617915569830295911491225214532886470443114802774725390494017291638498770364736671922905491792880356656503809780525728978730006976048228159948635030200730177501023313742854231201676219282606700899533069308547960388114144820216748977864667772896994876845750786549100291644736210026582233057036292554514956294632090026836901709294962991878415615391326585171135764048853666819032207573323105024140900536840182441713699474785697073234013555914134063604911426634616872187710206435867352809193901885062816195061168685525983667515478885872359951954530079977439242841288829333888410937072438321777437396942633806697557052212373537137362063277964567385046668847300600163134069909603479403424276646728835604242355301860713403002505563388856801957630986026727937447833770303845117699931711424858458020443774017001668197683366359287387151096587297830033111732779135509965063067565385507769200358570779793015780974850506590384880019903611970011772861720888935198476939255600048610976845267700896367602891669937089290638702053470509572138004344604594329975821294956424995615314494720993160676071593342200603089998655897474382985808898933099837818120233189652129790066345370586391883317344441091058671238092007230842416441172604158565780166965680268417045352742797094283416124801733320587330007310131537447679903096499265113053452227038236771716822218050612111744136676102681503575993672081385783868845519363881215852599021448559681790458608099257989697399360529566879094371693489770623340029438204440036082882589257631934923030574737698218844779866743461054131872159650212342521506559320909131865997681087293983437455746046451021162977465222360618826535452689480761757379728788213029188256269429742519845682015985084711093604102959717186465261236870988213033080084848862364699237845385912311987430459388188584579534016726337115268751738608175796584929873970835515209237154147644295015216805954719854400044016299150483183531015994673678773067839274696580104819604772131905852582443723698277385425959716809575452042900023058572112878229391047838487418521304430082932499629012232707232764457960684406041652316060439523529745627621782138297754684243464873292203714715544833884911882164920308644583234487698939524764428657522051344171109185950107301138872486967627188876752189107170051954950076013372707793692754807161929622515106217666612433797695006958012763748585325621262613920655797422639855905497670349372918343630548420006674563884405019847729450908319093537660799883421570937867921183998644476264885970443781277619982709973760312848580135780470415671983518248780680746639844171381262893314727334784339635884183493698342042164676694026933465937855784309357507203130441089014661049616785513960238398280433265436612121579987944556920801434468437475693143524098578769672828339321431739588456598446170569937123025593390148634606043284899798389927518809102488853122837210257370685371062640985956420850334498998483584969920523458429076481427222751633958364821434555248425741876627324785832443148515630757956022937762691867672215608967124841068930615622042525671745498285178452047395573063194445931859689334040675615801513887854021863506732821700872392456745419087190636992840287909160000398681926759879313043117956440840570451918002904223467991010076130615932671205209144588300482259173483317380812592443842928361226340914988853699235342979471506320906316950475844794497727920943423841849287096185922502274782733409294953778376934238105096939218780093885172710623245514031977665595149517294020049075962366337005758316409697079332864802140500865047974121028619465257324923897376002305190172264642562093415785763312661542590873730980237266501849418222978427014969182199110153989030385130142411938538979090859447969866502107285076663838673269162261848544976082415493918483820069859474483230099568000279903877187124044978184759607440495625578859830839812024912178454258996054546878482874255246540744783328526300445384189386236178139273071075394411652874998014005302482543367705222668425704375859599551075327416077861471936094993166805982735159976191547509092715560365627391977264688599118933075304589593447009645481691512268730140503405979518551393004443723747507684352509098008916691794820072407107662321061690825683406020731398807118288038568991013131368088373275356315888960175609328481872044370022058671778077729914139373719519097889729271232202773707968323363096542463097022506479495177283842600609410757777441736156596289922807764658205653337572872301226350710523094652262176473768843854864642038338277311277247850349648589409421474770296625652772208381388258124306516122905381026000093993972358182592080787655929719605058772612157208492610030549368337077208144924154778785830658201912272304100114366557563874211679561193519480375524048005082744664815447881685516813113167182081599632531249879563961970076850446229195040674738591216789859938438787079002996322380141833850988071210829411218469741780470208425907078924498983461631396088288403930770017172374883046905838560029683576433076633684398392055174095771714300762428940262254762798023304794823408787114235351447955505741463803037847832371709642661322819018819362310729198966257600757339306810080139396082013956184236338179648253120568427196351176968487267894251946421035636258233219184391501502277703305586612851133920640329650039536434985018428764373342172725977051137066243975242006556834928032255650640535095078920802153931310758505520452022246538190568166199484389863066537456261148848341442809031052504847733559659314342232252261463712183520225058691927173728233324560390162197726013208547977105911651376008859407145092000820597513783520261258318273951662707271893702970507493005618362161722243459076919940265846172353893392872705495543456941772137274529990997075702608840906817612953246133991410891736749320326939650162122110501029219211571402368567955454625698993155083563619963463015984482153881652310923514805158672408470953298530888387333592796126154262454933430671814023720290346207605324120368891419641692662853667090328110874400154544062066149774502362449868958035214285200899775107936437121070455817029767199699747614018914627217683903997388695876026511250111490344644445585776745940793398910591724658665325152007434631797556785948678665634062460432785580493373592318629495727235908348663099144820277427808977262547650933372274077892027519912373067110225332565421392793067302001357784125800941176369902805114255939003440021229032070782724770974218519278164288443952392781754650846375412787153777725792079377079220969550921459058747020211248077617012836571882323701872896435621395638691096156225385953802752266751727715015049651514386504960921218460899375399180667487879169335345429356743952544883562330056882922110174840160932540715991288284289996955430046363683256134741245282150158466595722398510961192092353924289742195655801877840923713384186971818841513182459497569110524731492486310354079211218194753161409607571844189319051970403340481482165791376650653793720869842690389583666066672250618428886184318444301575160251251067179192021941764105985805254408317187937867807249615578682027301832198239209916443389751942795855986789309740130971709382845732839561176040896899988988805985933958021007112531858738244003519408375085077908624274646603177810628329420325366656002324294949865277956694921137075286276126299189070866327478013813450415931796945962425612994337719365274207970584756423987783995246551879245316660628455593349889990677912255426789847562459524890164124877244203592806261234364147997865233705294641867766952680106798757706468136723953147107460445218269987547101699567735112975071366226001228765350171360389361859848758154345973564424952494952924532386453242071046101994461521032868863100937073841663614281209417135541046441235926723260896173316900213997097229486315345858724832126545504096056087291390243716612727201953515090795406762025331647798781536163008449395183632068512563397362553339828110552998220769227516467969459242894025328401891461152410027745036282491366936628343136736807606620445585170346717057057749160787977338149355868535859915569218250373602019013571841312326186077086902469938276470650233417043931368222584672693389730164193552301669533569731943123651898022856252498346011800341033425861686785412686029597340152435187659824084216358502073893963301787517228960022129691261217449583504821233703724853732081072272517854339267897556006678813473638691143865316387690542063341791421937436832821671097393752948777141975906343678286839674986454917331665985585815715852318683207880058629738267678319890149028363383327883638773735308115215811703625027049826250505101741583063764636239500514899316497426315992154426121861493908205815704061005445912630940353279371239088924834050597657268766330989990458890605118715276311916406749057136813579633628632950982220011100086154956201825559039869719624516609274167562678008269520584581536037446742153618566327753451562044256643209784998223416410789541328240894359729856936373465029357977321099452236077689617032088005513643153816831157169019589597306395738546329573230171930478844188472517057440501924831094049483923040217711354465667271107190757456910206328642235757728712337362302670033298163738954883495440782147207441117017704450510324372999498835532056062160945068708739017204834674217505755524185680525539849608774658133391547513017216101393664437076219642995765601145653511769733131255468142993868764461305607840141569341483478926305484564652550494027728449047294308586768092087759345359405577137231159617849665936503354652431317255149701171428149347974023389269935724629695636355771617780922984713806853490894190826159672709446005595593444535046417057770960322249582689461387477242812777164156873603983065278846547390211414628142612825374597072821386741561157568641481690805900989190228132653279784659010979217586296972663029495324620089958515117021330931448284807764574057356044272707802034640304189905673598960408127066998020839689813532570051456183656923018020329229279729798196992355478459671243133207683528046623048813011948530984510924544440395913404970633503422689876925105426655971658037653357547042733189493215463397939522634762628867797927501091423855329879064659575882769229549429138050484872464699609699251761355293103884922238720579211158893274723586173461090151786723415826564790106209055886510641567688253891015693866684457692299173150363565373304100113949718285615776936225151694072740263268247488365488265550531866504703823285032511398486337268271950949461975373383295933297261214580197394990724002983063338237629078964530663397442479430830075159039947376949608842629792729003747692121741167069541831635972389144159782519998118310927164532262673766229724998191477355343363297495911003910552083440799525106973834935937874139208994383368958011187921231266098159553695242067091436187568780851186815372746245505272235939121558238105796710689398510669374281901995728187301433743307393919515450751672913372748861250921253033897057192987343572848209653083652916964325060633455723370768548433360763877293777538392786062290054497579408996731614794559030020005064278630721300356810443594972063723440715057335810001484134120205684455164139275562240971090727632347000196199467861931864824949155195134179384175772634322847682303266890932213851222944003470536238308815267854555321952141423958373247756033979161383712640928289471295431623222064643317198573085596878916145801634095745913852700407735889934722012488526370823605593623432793712489007707422040903963131039029897846437709440927779406046419176003972045363718247490335686598551677042723107965614703020404437772590591385533717290154143819984274190671813086170749080659758926215132373073969405891302402041695512243626080828085041613569991884680557954855557407819729389025208014190961501659535933098640739754721839487987548153688050197980730551701486937373526342077249119403359512518204753351166704131601499151995344043479348539718167577339863506295678079432369573821755563327718678934567362382237623154196555495476767957814519999621496942913007563357073093506853017134931390308710955445666413663050994396948320302647004289013028275467483592512444194235422105526954302049062446663980504348373226353447981792257450070096275449131485414063380197861937178159248532585132843198660321146701386301067422176882448466427908616506653116245421944124231266257304980108895623238106684333468203111021070580436464700229281877028266906774120268418653689529331683033560942164320701583086295821752272265870224327620205481096825799015353116005476888795217151634595868465029307936057966521804472939746640345173676400380503067595775731494945255853970672797771477405593027196601500663849856188206749480325051784078420195960109349453536737577870068844190888101574893390991413768257593327946474111080950598984407784079597867472013903728560593240558164089804775540128621274740562981407655653548055879189681399267696221605003740300824635897440078408818596768187564724999217884317974686887784151071500160411480458108824818064355951028498690508667650260723649227714772380767009038794654483348929129009851512211753332933305673221277276426581750177021869886418789170666555065882506239944708297100880944061484969885653104713155446947861943241990798962589018769756889492686323289878278848107400748977278785111589606469307874946121021455634793873024035982295739857591677080716010004914238519386028059221025964433974157952257063553094378693810080564481795931058519959500757245410634391000707374410523108374750232373529123939793731345459067117807836064416150691414135266941745101067387311267726565629432158719861348350454512429957183293718856050558619587504351348685516532854372238787560292719109801790159302138616028051246402332407160353449379385684634235684368164847737234106907259170499153219785892901568482780697701387412752199282298197859988759496264508839079353783501392199319469822055011698702171703323508357404972362179258595209637295868039532694387573751957610890589025031367536503933678225868220786615722393993306399874957602408455962946820304225598971643726509599374912632419468196277857154038971287206447903099381386836962453531812779704669774275429280621273365982342170815750328626094333329434799618240806409095741553921300304016562488444611090471553422926515361259676772043247864206899210146881412234548679932619979151532984418153299197531463182789813397717654549508275480629738658937439299442815745730830324034052438638328895330017277477190479458318685676938742423164733855141950103216581012016158580631724484822973426571964055499026655913257306846705863909290409002350244236897062058509984716950799888296009829023862722936593121210231948635051640551855641613933977400255773600650592925963709780215320172706446555004516867950281502733611169003296420692436589007717213489065406081971220005170511782261498736374930977818760579054059725574723442866479357874256378117759549324693537509594290446721665843933966049526885807317272302860617048741416022824845490624497341513712089060083614541527907650687451021940499137255071066507796430089250425982297704349442112733635251208141264066419027744216560558763863546012404126113506067451072853687729089271352527115471452322657171831828797869914059654235222296317621183685686526196863309298444361712923871650711291173468611473317554796944231944184845937104794740110853025798402929200567194990591351504917100039492358846282836568409530356437908155161891065264331121819087466906515367308795988952458328170035806432869886240607587970193299440835409780161266118507701025968800684498028116027006468839191715967476896504015944474414984902319611974576356697668534086727416549547307617387241311354794144940787906873565769486222484283253928333863352265395801499250533745194307477110126480175172552773441051334673353156619644305261330411796059375549149339788801647393196674816753175053554674596373501634285182137244368831551660287563839375898154579812621308399676582552059465710910618611633472524822880739132300868685895798718029086041373423151962720052237215691323327384262316202672517824207454755719167573599826808634495879045411993305281771658776727720933152570117801057077089489388638917391888494617469512463451991178535096693094484288672982086352671431169216145805335675267677871993881108963396108860662604491063796784660278185422555897259715944073737340039251211565798706020080860216614314668420110437354289550529773547908780393983761465936123066640894246187864846534420945635530882670621913172064278605728029689608578540298349981304280781883539077318235170337531034789370885011120630451244462699937505176651151280400009992703264394245418959989040566355702550214474802803195496379494025267133783230822986116197585557140043469462258922112010074389693414978724659267868055266064836787938495037811545775181411441631926040645422257590666185260996486104486841921736717658260549890446715365506022923176775345326091305827855191744312625801339763132948311126929919162849600858440549840441099602810322283256820813950747613676692732912887365637226474990488828064795963099180479888266657341563229889933237848900022335034514026737286082924033078319701565886129479528038145500643196453666932116953329351496817300227213171124182421945697071067904928384150128176095472978161825264214555215427584806216840798761929613107621201684936664722130071740927931582228560854258361406187553967684585240895055128679141248510806087372209594390362453242787802922803841948210362456982630575785958063816504319557878419471291861043978596887748225479826407414640086235335599514162966149729035472124006667163736942244692181952317508114230463700231097024968783262854829136593740561411917453303324375386651613534343423121740117002290471398744736318480297332204019040878479848756214552862712890526682124572862822815701325863488319347159301431571733132734008817605300849932763315056219125622735102864766155116659401960132107708309831355968363950369956453697755149918553431428284130024935550906737716301032347949861612897315923304128311650887793107575214108699296844799377306662149777537067152499493688565724732398925883845014718002752054093501556837611910490865076248694540228776698853342809879337437866754999906500928719099768749227694311203792966776649192544434449928249102072756440548217059248002003087395919916101624904150474542175368108128304231641739283025332372794580096007005604415041690023956380209360920729706725251784864911135473919133795410160870226211959771898817091034205543843925988432027805863737270002263256314850344691532142565350101994883522221512861663920900396324890964521052888285442536547106788165908567396497631898614214034003903189987325086306714628375159995954739343288238354598152550430017705854859756707774411710621695431280200453628589804841517906035011745269949228238334134658139289400604758228918505604841201659122452431605812506074168548558655442676791710346991013933155227583848889711664676014636043890995710027757932301660912410478696058962394343290165276000765904780672456586831330126273780047270193644955448645537353382821195949566630749099478794979597536710642820804280509318379839819148119208757053408114397685087665627356781070342938610017389419169848759152642674551667892287108847254603914346935674026274228928993696432160599238903594313382031852395934791832912551472777457807018403238337828786999297159635014531375586041703366473633844274829468003428155388055744709775138784284882824693895591527079771323010285890719733898448721996799045975317387920217392398433188096492522664573195510614802142994991488208592876866874859339280255548434979476030762653050616569772131348973239133818379754256918765272421178794531891278483666097190614776121191936701284080476846366411215654469117247057522318311483899567792524067707096750225330905242605200327076974453987842125656644830938122397153788427550443247482228789043594614095337938705937213678515169913577325020577568360170843165030560204429653732246560611067088551664642883127217129140032530122003592682889445440117036670077349454210172209908364599473584366555725688373008152106387000331869481040359332436662412638674194607481711320478125868898662792590448784461271252312856891235379616461295768938205361077195137113535585183707446057074795402795446827207728554302081065005658698536168481847180509821530244638325175760213168286750106070190253520226441522552161999320161841318678598073202555775813702111221965305822107603289591194639800683977540113918666303157156314295885982771078742910453434328598159521751056643822737130046290099001457267511897150507989694931552362211261898941774087031207158083754886938316133967543468795143457585053446324344888361628504035947206121816046951453676864574470114081943505335748790333558047721113122595141557334144910797816682794618753612666528566949267339193873612822347934552469949087563285665005339986677347178013912163509220368225286743692546153043799913977986510051900751424343292116907262606246412209932114008931087403150269072584995258133033573301174783304454814554595441057422863851249168281236352142000362663991509417875522226048567678307686046512547532299458445786166682956682788650589521379813875297777396810757517944559048488366552029870432899461360580439759397100662785010393570933301794127356626124364944722503181670022446092993709482131449197079611448654865109416183431510214908110071271263509923524863087929521099631993995730253267425287564640421625597772047158920420249093807286909516646449269372119806753712895873389260065979529197184473929499500151330310153860966214895498220686110457303504700445217950640036037414034618354097169842089447129981006875291685717354692248577180948762833068301025020892393163200253814616645795130426950293602961271937602268295821163298713705689131099653444594358325492170331395939320693292804036493850464780127727888625939573867651562126085822399139550603457832047721359682398744609216911341270389308122524686897059783482066585596975488546241431055398048913793983667882729137235852292058474310838079230064310484472991845816387446741717994285980322023289876756660184964430712337625776119874329675538888300242839844756374190858270942722974254862855884799687564517742674881425951514186626952561522920478635036624836400422419344308907726310175607326458340755316257871119668278376392032990814405525357637153547006790078149552415208268897772770471472308781660182648154695541198244215576651638908894859151645925666676528828424182271265090512886387899524068814151305618970645851450153353384817719344926079952229251691741927987964231202473797024086418263859906495133462670801521286035115706369098405981085530540714282139906800657649162122997230812219522002425837210910733593682962323187871306917906173879171279175445970789323708545048701908147864255003911680516937907077522679039402343331365086878570290354553858822981779210110095844976952210788247573584325538602293621939592465270144116804586070866345259587262404258657252902271301205015618474076922507331134302568520786325419923293645950632272309040123888864357476513325295342158485510844722696661201329661154125139361747914608187568794999177325639255603688925680575812062947073382413656819614185163269363758820989649525416799287098895682817837093008072827815533998017638791526050517215833236015553200886444051273394344083559707141955388362401578730910179392603782190914578971524656738030539389640372430639070841367977309311483392402155733504476676068653292612046515390735467729481467770022709241734759160214966394260139425674685908763892700032663023415386799388462359765975733301819247977632769101738903445405010049051075746402719370560681727989174755086263947900917447186146385440351014835143077642375557005047164457197695654774176293894068331587766059121707466753036520965416066738284816143122508194873954630512781266399303979328084091939643687403999637088527585175465087489870566261200198799111100242761701792555834600445894508937025526972595693802410690063654774728912212965403878413090656217449116791472925420191833849699891743921493538861432805856059550048029296139225495681511984268843577526346855777480718813516816972957191247431128175966531044313775331603483451315272340986178729768428761600444860932558923576011954915133472836835131799626488774847080145142871233698434504839505584266852339484151612494035702712381007490823410800665289092717775057526712834228127145726821760155726518850103624015244022155984412795642871357523802136095586213955948684044035803725406448138633142357852991024869179015782742224726343060749029367764556118867607936495111579379915918521118084771993829263188327590756833245001990519914463067055303254153186973255794292699425229656972761635809223988069511632818504314578193282948633772813406095115110580804558682508038056141789602703774515972777419579288507739980176754559692809382381800021776691079747205281080991181333493377670668024880113381992969120305807727118497006178348305714775669789584675469768426275534511612141826463400523517011339798576174969769677012971993248005147978564129776103458050011981679667923277981256807630890220985186800023114746266471381113884117804162452994011894873184291336122918506704965214354558675955322789857379951251329784660892271219425928601218581698890804203542059958456041167556513200972793062788289810684777539644861135380065194609297660130594835740490801576175104337857419970938659313141994966852863545832010661307287336851532046213582929254591389705103480132527102324837254664737597989429207425632004524566744230873542457493866266210230838117532350626276170860037551643504295176997761104322188572264409878272102073245872304703189271413758199236247675593212081310688240777834685546414900976862569520512797977042771093027786945735996799348464793014551426152815355565012281245953847666122660232599077119829557204465799554452413095023783943640582925931775673235694424924029394636905718067121206615419903040955757534773213143176555671817985791181571061984316151439893456839778842055393685973099425086084599317135769185347059603391275654938911647115512156707722917293170016751542820971229367555149519940367795352108203651042679713513107801463948327841577071621997685852207818317974283472142980111489793220811306749920016486742497581044622660895804437830890569435293745185608243389395616893362592514661524035824054873567855018605751977711928864677078912210000357373048645275321175191904423045724335413726823970679925059195690339241107150965663393209740461247260672376389175740908150749939878503207884784785823362134041422578352136390290947929097872208102487836411538861700427251133846846190166879800383135054077437663873577662081645958341392777101867531467854934402942666112354715923608215707454518627259675886949443937519509561407260879169730859777736579028942299701573314241755496802865137387319937543119386076700147185615435061323828250308371451502812217423940130703578623029813933808442911946646828471423530046526643564625907093951008338884928033258243298977678140296573234083928002775238450723730722379302392857614097762919347335020226166915469486064948837404430407421831467629034458922995885760028895863445566532250576064623867931160140525280918261144215337491883823956704557814827087384428676096593473472794870103590029621475067589073071824799627045563871777086968512024257252357659815614002644639161380128232725047225402090486572431360105683986655550089999342949161603719246709823176208599497442456054414019286608936924869694160784631446891128027426156459972839252632803685492709088726239632677970170480046597291134542868879506421132633250693434738533786959511064512839494976687244320470144353305660434432017079542078441579182498008647474822881913402198723137976240026622784690427081839585935586870065345279816820899818399255757904189076428566396358791857938919422718333423546564559401408501380411722216320268101074043482026874951847847151980831573237409888477277899681512314405164355140148874356064925310606743420266423412241733189390516509194544740154931362729106256872204134328674844003598439128560842885931991823421510136520131262460389322083214573459138099610297326109874471105057823685938386839096231398484722306140057793994562366573758736902996360474307061577490279799882699421198461223018998285070689885430597427307861641469135404210924090299130818204681488463799687062752090611359603990808743091190922007410453940438340155953418340570862451724902550822509025669043886607777554572531833799664016821721883222711608728498644213604054316032856949470697160726694415900059966713912122571722164090980436152941486617178205408699964195796263397284505854386050367359374404588923686943169469155735091424383358926601265928239770273125698789257101561660246521204549865485360029740318393173591496896739957434009951841897054467016492462490549888712704967054665703723810932768894021122488552286396140219637994555514658844388101837493111706284844563492564604402697180635717971075848931110316148595422525567747025679179397580947368425264638464997238395858420614072003519909672124818016990743447535501377097390875130218679111643018235984952538461335374019720270187764964612675083334002129025302578497544160444729795520866913965280212466378140982125574846456491669555082804667519454156794692435608233712485662716421784943669424225597743532080523529895257515844989721599856609681598039543844093626040589817816876784759274553934032089212743938486893601385661741100095422111671351641504874032783732926208183423509726274435167351762970949377258868629195581425691405792016327840324911319572003054737196855144188853192388092385424376151156186312546845928043164190341910997801244474618145029356196498342270296460813721504136378199922306575253675873655813688044596520298125268969961329054233048823643334917539487761704811236274438054008925187004988036256004529368150177093392348972480523449035158087326540258500366666280601325173347176233686898713826264316105351246333776585818452546992389488522095725918152333589792417894837291881088071455615447987481689124356015425950436525096871641935284367276046441824164863924974012906201060919606881077067259745350046219258317064760022125781991840066225448961700416603491869181547933808795701839288712692690680294385796717016766888628328436515195054726274277240284433894612314878488517349669894023200702522452292152770351864854951200122698194053437312391305836874170005070756949315130113760093890961931768911300794763733063874324919861565220917235140979950458967723109718542541641200964203318383100415890521486375698707434760994312390371218429057237110244841215881941466664639610313847829730395768951578418481645424332479955786496340466348639976936693349052431634090676435103076644932688930335487110179123674445798782154703009559991539184298796059631411202020961688904162169293684255828973938099879220496498953932486671365036989094167721051452522181229907950232808289536303428238889019884441474713383576193095355293448335617414410543188670771052176486182849905449393030437932974610005211210233443520955656673990495720101282906470823540042520069052529410849151024966164564447714679840122981487913084853878788348145094534546907860993223327554094646274132492209799482057182295324863212825847226576654324089648768481572432422845584814585982554713958323655895508499741087561832670555545498206704641145099480914405165607089154393666600241494853383113155021500845392912676745277196921711981833539854461412518533694528791958902852429482973704681716048239622269279416557960941605184735071538658825633824461426734661401582182587988446960700495458340515645169708728661441987337801775993623218533987351588986736409964976779589744142564948810336126133140133056577726045633991415128529791084904376270917639256253583400162885567595420888970957074336607323634812182456746381239302499645579037530134556710559250531298481462631311054492552581375138489711670950983377495909794014316500167539157172195167016874303270151771996585481340438952712928507098471170064995248881564092392358261102359272532991456382345886693074318990303056363069397267213462955186970025597012268999561093814834630027556930269775809253146441983566547111532219159717656543202551464143260738110800421974583526282393546813050036523848017170087397099280002657911459690227992699146366276965813111401124870420292361587512650902719765834996196074465935094871415781451923023189715394485820844772043399876811837506470035355098387660252801248209562521878583014110071565169171077537645573483417824079223675845029038960165329428632121383652963296773485589807198794367544192312083644345561329047720537872868348259253635985449995181448135066819213248038362008661281765880570625478253007756880348742093953952661150383926569924426177672127649134649278494358363072564700724190303350586332415226172255066140678971332698325977954639145760635891935053901114738494979381802490611268272564548120303046462732758153146480338823982008424927896503292711315620814198585096453471661997835079857893947975433368445358357825847105227658281164650088671874304143633953679994288447388772642826290204765372543269446243076907480163969865957647063951798617949644921781764484005761432693624459239540040568115592721119488029890194264429950876922121529688745000614468072279426487532746417848080010994222538466343266998871053104990135030683327035038063822202337341057414726899702293170995372385219278038189572324111697090415631626034986702108712388483928758518476847187729443326140894885128034727197388212317550306654800561996127877014803681055079020612491322710782088959846849645062193760886920852415997995148714166296978564392739657918791710326673930350049628783278766560985350552217137471600230905272905998190848098941279324069492736157824907199594261867963487015093745798232844552511128056292365948674337447170046180359984604009097672706270024059203612681711672594142938269801039798236080259230303732333612633968622692831115350744690680153379074504693957241573689790222848396397294360944170093340609338119830772465479287138672021307832317832156664468902749095837481928454723784769508104200137176079248391159824096916635203023047763744200322861920733976095964162673590854956259841175892156642059949033608758667933272202613209829055292505383040750041507402746563337735292329232055578094752665655226931893529972517349241548409296697942242515487000821275585302222630944833086638800031114417783264417459616786053489675008710130499223899417884174378487780567005310372709976070677956873489568625747965510506873335963759072699538196505435816789671570546314286514304967078781438897202329726178309258502673919534369534151736142251986835829319896326085340965863544286523451065816736736406765266542238246683176993184118455968519220727955646295089705840217996978023585733174729538166411599628303872538520430757042593252099594421770044675238087995375448540877182486638689304847055449266630038222140373293881359122895283860148753823815125895130094142984716122146364613271731201670004115828905721523919125299959436357820174884633617876031245354213861189551199577325831958626482399199130685586658982650886149729822979812770888671532689764297490905085343292755605743823372658384089968044001931655653290338891958471164713312201166853100792755653679537564458142394366570622861180208279370902944257832486366997592204615165210784158304407543645280614625177225822548459125036875614678796586534838501000456485919906843123569448043037939705523397341482051991504770143781982029478454756112218244078064414781020400082889329940809170547587984306821975169359420916243725210773836760108044764441085958840650130992052168010222324181540854837315075176854246887245185617801660578837058241360017486510869275352531011172517255772744669907358617910199702016827455577423659558138032714367222050025877900959697365319831012983368676621834032153539892510737677070375055207009419307089728603232623092841013563421831978850549815612001103026191968849745917595391886237273869450143328664853649891653858038800819236658031008714100343388572264530439421597988801292833762629719647533563712109573944945199486536834053218218884503857409260542525383492881498285496304915427938826812289072951249132365433301847246522431747875258783934956185204044635219877122284029853942254067853143646529968352874814543412968748319264736668965592787429677803526030386215619672724588901010599740723849388112507863908361619757355890652148758532939952575008317568163275237729436503145580142499673307388535141446136017815903315330418292923449910314625782551806500476685020117400067820025524451727763893818800373219976485838970171299425378223104333227064008760382292724414969310593852708499313834014650319039549725650204326729497700345631053295679026203936407622232331689865245953197259977922380132707876512458736798494265444768968677169898335742539364579560710123821486399707176460452221292283317182381198381103088589790747121521141044774014749441111867879530839027305231625461263122278488965035685262136237625855815478397589981248612425583288255865637144821357912560453890231562480219352692855935470315675545390962825605994224732910248870505297571576707603817141155995646914394105835148689300112587163164574848729397235741112626938822058654950437043433790219073075973777591468181558359870008675493806392226986050288652814687082693603917320101324546287224483690846211329905083652542540358044877011928447700279028319820663875948121371633350220548559306843078718888432879932397847821399445191011715201695512002440375893286910862068365437915931619252171672874103046651193437205688819072313790460507095390568825475545609554275951866577230549544301606494739446496758147897361441556217886944727405616347688159472755890721853276810879386101702420202334684309177429233860766640170414953965039460489500700350603296425021504855828115194375152530109711022071573629177533117499021105078315924345658647441146991476719792699336944186463926400814860741746957567825260600424534356441006198737000646118785167257449280605811048339076110220368322026061332168715128767136278477802450835511121098429620148577987076389898889064461774797058145729484450697324729774412357052855775220118175874152721082743309039706159561455699903365057679398049421849202265837163246676265210846021268595370428425817889970024624001727517779747004688911432454859712640588711134021765943876041128580812571687724553596424503568367777925275162986932202535718430235151202932415738126445929973175528660897354449073600147643691346772359501595348539800437744378172136132908345646190936134892696233645699025911794497270550811574027759014763726029895677421015042537661178581556409046338670098379386242653872114106307357677390470091933977972996440096993139885326236789604085461527491281382544292812598215850297586662675006732368675576119988999100925423046639524221049808416566601310542063785711569204648145681942956838675715688902231821569682036751611674720364034359432916782143340013575814026072982858162581456968715096291566922566167524478477283803989917884449500776127418616527458834172502244164554360933496369206666007482827879518395383536207215859516602190592139000167697298726711757535256558586440602965735588630927831832754517896287675538645797354055992561139223880293903959192931835034651262188852514399199200378976357624601050208393965455318976754236075534475894785562933438029140319505763028491773217716227900979559067384331022292621840718640507202497522083681302936889817145231296262278197209170352292906329630572681217563473112903682221305974497414515107283051672431468406250518738557521394738647263742646703204007552468894597033592716835078561649336227660778085457173126674199108128997362895000131461407721783161993282344801895821332082926028616839203682456547123887059062276090802756568936974076436212367449132343120927922690251365734643567946155762887462960409497561387597121103108093361339991813493222013817500265119865426795422874472700252710316284578898591022637738560553413038549839859985099227886942166203749676432782323550889864889341989370546053484754168829650007195976272047666046370904743832321646242260785202157228120235567126522496937282704758607549690050615537280381523953949524723023517067670796697231385905197237075243724489233585285215550296257729353703294057021967704034298914977021659944347968478360855577351688076475730350802197885944792441385830221146090223003926633236338533400965543471272907241395902879679459829317594845824701833961160380509281466514929310634998069009864305910544911025617807197029307093011489814759118349729670857963370473424670763685387949793843627119959035637656987988893791135632907250367470547887532326346518137092355972219481958010767341289067077805077767920877895557584792584209615660264667132112973214879377720828774897788678794705196364014323807311746381349134862651213691508409649027411173003739191311106001201549227309699113867144362346102562013609570272309815573989457072965879770294356993825301561365121197413281009622766978678523260491189067083553178954276703195618192620333654294258679813325869258648158483765905918340320337794444936224080889039604924149104529729620584063567366173640988910002260328959164059061390137648323087458168659193677196077325192924649170820609221996152443803563834318737309287972312502806594717870811912480379134221732361281121329799740866892617700372450650255096442082656542069719498733938120837430822023623997374785637553226803078165259140780575725289240290548450719724219191290535574591574764977910176431362555210927697340411980043115328658120610699262048723931828547882682788489805577451396845848729377656629031414982591220016764547076712699352347924950760778546721525440288613222334154274749218584277536360486594359788985431809358958093259724920868070602138659576219840891707824839033067378607969142409500383477273409217657840074414711535549102548567487808108636125461125721860581980225626081281378048585143319613712941710656190093667991549279852393237418294266400747099044850212563238742075494072054388012856435769835529045536041850138760501375987036912043216181267922361245486090762442327461035530682344758281843800103804507420879249813377592900393453391475779568273962226497398139083264265689042993498073100668633805111316628634693407576694857108193297659375571296900390112777021429312689610755831285512402447599505244642778381443519428722087516189895387304826469759468661836924405537698105016490930882572148336315717805863546267137263020203297817161630928235963770934608541465253791511696246827231444276541909775038792385144418469022178889408348760060096844855077821602283275862366830280076123215491439766754201030164124799512337294189385774399790956158246907179137069860574916193766514402743609863011813411699666926688519822092305796647700649176349871342701005029338654017360958965378052268326826046116778311937777180660320720003176968426883874994239134845641583128644752946990525548434835441206301763060510235098328399934059884360730213229755755405650730505677344912434072295611044039109702318050671904301163949186475419562419520052319819733146721045517633829894505552594099786978648272590332906581235552004644995139903890739698887507812464115492185690474079758069552424073119119893136587112766598868543952424051569244700130500729809023525216499040187216276791822896486271595173446761197754954343290854413217105267640411728101515692738858562960005581276266437961081048323675087645425849009571060777532823341139338516166338593756771178303658909927990288491233871254974525487382125996224964187858325511528138813141204429460837756155745839018660973966264643876796870441199281829994193331037968721704594872121078764603172429404487769482379986613790661731888783678720127286053253543662440463656978679250760426213319221449300418886115099625934941394094691722804432949785993334082864639359609967952812753633742727457441730725121768393539407569121057518740020909408054045232084123070215702506465394055750022231627467673238702530900572972345882155734556048170599346240497813807653996990461814812568422635137672366131567012911744193458014530492770065568352682089049794147432068198302797568091549063269909015761230464937247271882121952380583860228512549009029478407488979095733458521179395247797322071045999255544300831032033952047041838798066763980021111304112074855669625526416895004180771087803339895111019630002143648345877569920909065391338602871574234532130097662006732199378249581666775986762294213814942520705109379347357650566933482024055722800615501652333882040977616932375129687988630378634392114451111252315049138620525675719200016813375389895165003709633116629512009800699011372248829932276837859049349136313911910415402763728991806941864024805833915499060438164440303702665705536361015909773001977608023297892898400479176548040793992382520488165776693191615939007256413427179374772622053637912141986045684072089973916328809633141749695274428738261823524028277506012543227132547533125181598579281557607268786963856084589411665574494320148577842506746499006460706842948654272161554091671692234154955834089660868627052025317479898549968758565017449062984453058174488921466533082555048920292894712940692205047709653862236887257776907846691622852603542766010190222283212872927514876134579696440784092518546747228636646762115380682305424324963060458874804803891563888214370780383718440171935405530222330424667196659064742813217777865526374759595942922496052071472773553779961974680803018176777747923381691807115622145966123528967303697180444230490436829818436100751613731283234222946501831063097351345173618597447942492155891402759759252727557017179952538702809642338374761858999448031257389897545806992032486817193163998278270963428719653593297617586728134901155315204258084392566159207182438427516075420487957894698185215430485657516561572008523878664858525971639337774577598040295461812936266309885101458902877482019681156860521044936921532900644853060327188279666170390773183732968581131689968227163487315238987068533655001949650818331353560138782476098398189779939190064812993149846991302745061462763344142810094030782655103544155508453111397352757223150823458728414178681709746881163921844347893151699461227624156185293472184525523039105688175832278478550985327953210890586553249362707908906855850317883486529637105261623113918398316184618920758181677196227586189703925507103696429717536085903399686260148660019464435947891094099542204077340245885405231217427189750950035895705721935219272727386462305035169896937680899049033699204090495679996271528684601345903887422177078479093752556210079703184696569169835782503003919463553684614181043930821527287620913717440563241529923731022606429148655131507799326162913066290585064282449862550857229487616426377529059370026425919106939176498493514490031507370920559524955849762440959171323638985633327818058823026185984226732908318453769537197875422303048406978956515956219300040634074810351668803865961007260150785447592298493001993530609851348422320788017226540920844454842997247403126011846839751098278131346089946178061992852067177075554789699939299282033092287629564987821646614654810154546647597653117311580481657422849551061085187394967844403142583961516478565504879631775338345202867143593311637327333549539403021452890120144779810167766332645141595849627653683303834546368990047864239445909097991411906320379784039720346921503034467775319284305757950357046818315972246456932308706369765249405858015776682717418754916714470184840166177124788243842942393624826714460776952750670176655798180939162015089171836173965223713030968993310875023430155990089109785770434812171414194156752213464260294564002800365934367341540513036590294056179206802641304936920855229933632217724859173852237397124955241535040789985510745286787546681567238670976782456089878661965038236219772489628941428987816759319348190041656821175157685256609557701558384145350166079331267723679144236445871634420079936707096942804308322759848285188960204931070228230781040539260002567508277198372100175174335646137087866357898297799184050987248410632835546513103256067081657835945906463151901817624453733564167748148981915556677534466255383365437197910146345042681913166361196421642181907151176387149898870471378427375727722092876210756869192244664258759185671487011800267306510398031831661942381362572778957247095959172123697566783683885953042894460564828422038698037822675128146919350656877740558896205124704782468642711663377204868137463405537386557898729752475748808667927532647005062745172061838738201845810995147269890994795623744121567955338267612390912304167456881357572111267211906491219974293322377440797251727607589613378073502968294755209310090530523854099388672496938577706099467769266267264453379740030936761469544417092512635621180354522729620529676092585974425679411497402685626009075826341783746196480027306994709649221740714031024994943931024285803834770391757010404291326372175142495042430086371701767260286753912676914372755094662853207788393041757765970908623502231973982461978805451355842432806519235254885838151807292663958598178097371728001930909176356688591461018548096323955751682845644367164285685895491406875270007094423536893256970421269989027126759981731944679732176953083688128500756767149692862120990304194600996918731243440508322320665630758615094573937246255243722780565963373633606694276015301693355183896314681159469654977869450823106490080871008711747048779005050214582851833509708283302469765846992721597431274396353751529895601878806274859152386478893523473059041110265078078566064003523402143450266868583066869599537119357671611552744763110148898294675873652952564242611149935103497965324148663892261245312144870561919974138394166551080904114495817535503798357913036229619951060863742708517909316681572659386684518406541821196106732762740926611108709724641282704306578148027321246348872359765192794921127898858773392026798635252315531753367972011009489234529160244226997583259948727480787392305103646707051883470137353917780326593135669735054625008825894484730194501911782394003192912109134437471165684175999304378198345205904835440364640834404217594545770691698817225673045578909671052969024266324015106025524576346434944080193823289884129256057218143635478458744664648199863434755136553880266760533263184124886621515067041199486917816562273315864843528607747230871964426084508558171442490078751616902094638352213770245523637686096793100451132689699233720576281468372536091672117630665638161085829966961747352063600629506848622026776601218950682184473324342803004526070310275739283525693681577202518808040806670440176948101827155661811921699137672498681273910947375326839639503205329209206833081734840159409841204697447370646032131768628688441654830892745505692143788260068526428042393157511091544818796636232344041272349430962594685900325936036184774178321219453302069014394430267745704388120141022133625022604014293303182611070396263131111152138716805474138873858799566563410958622066156581283528606219420794349130171439822982076431766553440108093552984836317811464730786989461950507466264887142383960134776438356216654033780192650229606942606881280748357107693551500766832138897239035704637829011743301143784370995819958773979075087018374588547971560022395637255744275405999771072385519601797786295990712717598264507817418541100309874097961590245206950311550430880724691012299770201168161496381794115176776708407181915996699920061270230463019034040115469070106306370935527290738592416054248076312664786226302199255355151417503453708578117014319012397290972226175987344889428500100258816306944569662845462494634510077131899567388811108198522877351693752948833745196483982956584522569044622887290813063552099960434945766180137243491011370725238586816275862366683338555211750462417283136800756664829240699892347295899862323324008633671293722805986286858432341990787655284066757528977525773443043198800422744285134294231798913007631289417605814947821979496170571604540883283890501595125318103251947972471084041601707796086851980695090587815376876326799182741992123218213922042459519199330556823000339550354661089161119022418356461699820792577090515482106404282842317922685960498332253807655277832800093870929770691253053127182504688160506066122531829090390424858427672170524659016003532838995215292479277874702456824645266272814918862601088250057191687910229916468455650372635867023171458976909975119439391173151803341876884150669614575682249293998642583702067720098553542586968299907314761329852166087662918936211069797256937577940206689134039728371353067079700916215572212548080379645670032988820934047834502607685476370028425045073436410418795527124622141060743338892146048384548633405504015609024655882803134774744036880730686933740459926502839635883031812011602818780830877233307995344342720193895072353552490842206275269988836046989531668800580986526019951403776974620016795311329343881456922428929989553390677061320918017403581633777797081470074697923515478574153796942539623471379200043370544712847211826817496199451974153701460727063474296085364862581219510653759323075469323665430252991414032676900540917421601697792770594703568184317220747843029839453975329513099495303029270412257841358708844382593914732534021000676048385566426936074902413449181534261435558561308839782843718627737206340709454304665182613347591365683750649424756826420486474869640101304989929947225493598666562590078597329760929439460892827295091785712148005334423023997537180089208368527273699632174084522610751758588847989997612527982077172763031395942636709047735641287750916191874605266404733715213668233264978834858214706236201614343996760737837125512024200954807100551748751643920962466737879928804125448875712051788822093303140178909538319726207063434332666738803774694509416284487968556452813879013088313950264008804064136930081478025807789714666434117717587779668830246309819427714884238359501738021357694496625184699484976918056832252592043532947530272762268085813245789209598975933724447793177499504889958683673026971103524206365439620733549818908975886214233338244293944299093863983898005979784628435617489524535327582533558453508729476033505608902132934922923396546150383374378065193139585245945215775181796750827941718156935299227130967767275737509451630499494121028067593109551787739129626348245020905314385344681822020796574518184741823814595952571417104398289391069272788695751374540046407340860444030036517229480256242910579844456351355664047454133253821351526507711954062551778839641864757356803815994890640656455785199581790991164722246169577613480518182682594218614139044292438002953517519193793299276974999656100977816600054753947261057072921220399485527713650930469123198327104571014467785702321389004269174485065263190061522935678416719120959711031412066804926501427924591608592419400628303885244339558092842696147780852804385858782293595448429926467276452318263986268807694743288030632388796391319877689080943888544485018784608926757905873212300147473654919474298101761897368345848438477069700269508970883641367469075958857607224284485768537068003005669989586000215023989065300406935069663069183677579762424553621452539307473432622899581678699325088616584396905405454641037984702263779914039336082279003331861922408697743730447475801549273718273767121735022161784207179898570733340708529240954397676266075626499226420917260785859369380073878235712323820918542949255890384489585591924418211224419188071170642585743455861791910822342859713352097989704766499264159974932782624836989094836600557343392129033008692653365568780836859089575235749500615536714258174144702531060477248675876364616850027635351870411624469709387351364021748424673560329677140253110338645844156783885953660947514890923243627219671565513021045993575439255533318134321556733616330705176912954527836707532264875338283045371605390500194179129720872190576833174410913116042445931483541267200230743812870658437084854288131685230888849148389974889520652942079327964513138289410268131943074025597420987471021833270991348361458203700105168655392026481548995074045423262448630453881423197951838528984513532523397996883434724474949841911668740483260599199393233833178058629762534076559925140324582666715547406380112039928043659541980876553423115692680388880362702923551572227578972668739209977202333227526943138315358826488773596261242993426238325904336388518618744473922246728060246565040691243768549579235497840447640191683937451830656819128198287823653357086303772857029481591000486636565563669210521710277135185510224893774264120532220960169315094660907091423214069368528873495119320141932419332616826144481769297511292214845111083194587164216749163362749776922904582645031863840361727040601291717758896647061213587196397430524652042247394041381047226210836786554210477265691559474809563640893065927469346550260289168979943940330146935736873685196252571883906423765876033195711704222864450992832642363861933038700132375881269550650028078866023887590746522056464065165568457633932553848407590959631241563207885230833252859955761063458869845201106744201825518230552266822249527040546979086800248024253378023576588244198073395603419218904116845064285179598993873255184119888067582640501282705423116194840869363058063561303930437024165563015078888896029016395510603758377131233748559412121368140106255969014114073447597087699776327548248924777316069341058722502593080700712156750839373719189026824427437522801398924677995731118208919855347694772479250352597210337352665615797581031966679285721427970349714834736752885019020085048698791414742281843100382751843296901190562722376780828438021382210852149275330086197913613052538414827550069612417862282214028193942372479652155993420367336369977008507464016874414126372526083525234457169558159421227910161562229970040871433109309171176852395233561210816692297208877653173973194774478839949168418347991240109114180842841782866858263286295061692412510754527076278006362728561568251798446004677744388346812630197514497496861448816601539050585400688100526762723171488297461176308528947484010385744495780230843546362061409973894749732128394726714016478841265123334548265067586958068869213115576282625645865344884906248398739854531263410632400787041493588629104101411080011095296197756896734234198540635970646825901003511494072867845170331733377658906176324492724702247656731112076933300778649732140309003033427581798141263417876735863619725682328983262574904510234121814392250500784011102474350732945759446132573742803010152455399662105128287958405590850262659226852539864652949357901610523248460560228338778390055534617555052698899459747971916282958539379181801713744259246356613444503485103366528278198406865225038889053217310273313505562979377280394991432288128391407966883332853319200682828475014939456767250996080046378543368423734902138842067278036945933542888855514427428445667064606467182464234635650349167035145103794731969382496994679975077005469862367175610590390317195967830326553550587847946545391709969339991485260755228508200808209580965130031416836879497586021795954556087917834398507838909958263998188952360432749657335825136625072649983894181191387689101651264712362647170419288008115438044663903200130603369220057801294636877259141745171519848778231837621413824016789047832762792138262778009671221063027955982725240658603549375738226275938502684096943653483123946520991184820048502559084442523943683037957077778883054810630546764837260220477087202662790372460502407592146424295143241162371458478801706986496192350150417753974284581361539706698062175451233564278437977746649886680316741665636620589904182759257634742379690236057882664198949344544067888145759166610997819640927669677668792300734911049704224809464100990788057410620003963441390107586326443793888255555492793925799882912601709987860273598010896480490449846916250274039490190510341761313468320428982669409772279647236004195158133777457439164846015314344601504187018289438796061523652647272357124818056522143236534798195071266296332494717890736145070588267045841494278138976514988484807335724670649518519886488220981388837716852917131456150773587869524074440669882693069551957968206213900302623804540110804230812774323601136158709913214797617563846000536004587045381176237529329018519028136664140905799476952720279296782386547914636410787614947617960472546651450591396298004162964825329827725027838684182230298624466094881683611367883493340143637644738753378193179982237370775432731188270280836630289265623380331089081927615683975161922236080649638380396453417379956765209484658538570354988382081232115493323029136977287532705886706220793551366760233635117428768793327747752498182139707460203210543058022584248710145235720680701329258695300451836484259053446002989412426111573627565791810516916330123945365947885142618127376428013653071714776615015007335318373266869455790573793658643166320928006071040989573532965012471152007846735708143772599964644772460322146507394023521545162653150575727143433299154124761272391541499058629351820746141025227883278670022117264378736655240667491149821639269655652385681530996469739032316667203468439339864710054727385566597579833725421848439855229247620888923209030720423352886768292660835992640182162537497859614845544903122163400389831215129259827577044665982145126362614431807050042959486889513207071091236510960384396149227888965690487875187060139761280831656227686084924621112038706461420204601061067996789192641095615965564013448785988685399897039856942010633227841899033547397975560243204149020465110772642084039530064704387922008376972690971469744893153959640827068242141585244840698485418231252746193959305992278151048157338809008485097947316747121181658460553562876131135237964479568863344322180492811211781320751778154314310766609388343448858461296085708449816708635111573712848743391437554900897001875274388842951589743543033900060992766242558966381346777007963131286330423709577478064394549495792449976599838275762336667790420353545165158307468981457089085529434114748487639813085118507218226030246142356913991714603476730089638806016832673424342052467291514107871346014498112024605734626432992807737326277088747511973920824531652549069840352134437777489202721799571907421271400383392272225091627437533656471217098767558990615691710733501385566521138249254553436675813477427452163752678467161106391094840829606541402110061498494432812556405855663667473154809226166987597715051264786089769943442295860890255513270494993277437216030143151103279090182119391594520976193751266357057304728825220646226777310238727081665246025506774744528258138792781781573797408586694027391283795708828981209149171395517454246429567347239913956635997092403524782831164729115449234802392797196425304876856503079365184150359769820064098083356947821058368887011749496211083801862081931395363508514386577728324267269439962326302731527532540116618273233665801130476709553550170219642299004973156233550026191507680396068424862375465955585795809238986820628816251410447905604058317683823444069305694856322682110033382765183614955060409680099939969523889594116979830361269226103393918504915071469086342658265742977142921032086442171266634526078463118530824432715263865491956399312227623529669898647078872892108649028405052898926171717517787976227022534780716426326621472459680822138476546947302144038823513642644079635373416227293323427751088921643677096510055676090493030765240005952300891101601244206575411292113882619607659813022429382706265618795134011646667021163099169056475653184168592131828077331462049499847162032971951858218924939442686535726904951866655585297346993987428645767324838685792212917876750229286356629321178430161954080721936122660896005809862928693067027236296922621235806378975052326283083095003282132471366882193080599676631835346482452957604448459600447853571868049286881322872294974136477323160968567120714073108994819481103103170963173402515494318193050749240193146261347076144401770042951465621520630526698641678240300955833344262569786638071375437750237739406924199449996705936979546449934460009741551090085878733929034374161775618186447629509529041187249028949826735251273009578469107546456256865087923384351282985411159311319584997935054835296281288827496555754121369128813808533404200247478211225837843698207688033387210806029449410659786022412708030165933216677807765616525928052849286523362813185491733566484339702467205725824919214399497991990692084609500057461726834345502534744038169020139953934193637454222763597030514496999694366361788656068169624894505172026467579402309404408092985059667237867645390612001388506276380190100300316297974197710300405683039967897412678934117309604543002219374109594062053312119215715895441017927545703490517040107226509395672314116964512188260015383436513798116491300357259626044568254020279212745003966474664784544125766642128670499340079478185116714611059202206611573112571961942241535368952034573177172220637188877627975220460720401709073541589015487610819688389347444497893273786272409265793067976431630824305870303947735037603630166624994892183612038381283892747079306610170393252386214142439224224183534320442291916653415037712528741636915023017205988200147517787003179657083470976241955167610299898149503237910984373983315709148077147805967650590777937471336011860986341897682938645993468158119654856702885835632209478263632435815693060976353767652665240759123588706118137117173097693721226746050266222937217249469754489159487289385165614667533387214545320182071339999020816934196299896259699050985655530929305348869535745416799250131117805979736498746187036407895887239652866317565957714280581993487622675512274397522883393137585861538201952179512083803895472440354280819612695289987024577151537783364944216916450322138368563856712359281236632290905068988253734180504657414036585439201568130739682502949135006939936516346784982217839108558307579938650789093214716614992878263390638532446806843637137625586031236497158921372290275432211713170902928765992729466463520936432800410750033352046482636121223266882881625504752817128184011989626677926479424488191421404763751851318812592554178410309525340895149426545456489092303978586019442488766117231440032791363727966354097048438504247925264287601516438456359805976086353682803059674689234778817653009922293507003067500105987371994561088405174614594401290151478199310232918776496308420394589156083929366840986802588951271626418681207832799536917228000974132803929079238502353244830340296150507303766458068069529644308320879886267363215093068865875925197539957997409009368828712061446722643876140808679354019154072255529882463190544410721530951490390880521123387927440725860501471912426627649595203765019439362438188427854148393522382930364873405540485096426248722640963680167293856359541574518253328139234213756218268685245369547056278893079853637022364832740262752978046900294898119101490607324006861992172969998769902566245769647022675251924095396196526696169116205204336424309016500555353268816101733074178849177031760587721648331524786163438685866971767527435788932879221388905274233692662089709031547240649970906568130431575537110606363390311191018520193622851354201701875224167708689343352234135068677957020974542172187043991804876926726995323827514244097244281774910367155982678388822064359217170852818591478661071913785532144773402439328914120348583475289125182998026694179264513576459029687841702548484586814195399863447765051255754461341996890667140499962754603406628317836286952973074795053081650041458043683870474366669415107162297806241403459963633189918219944064670195089309906822940613975385479569124098902826508404442566659316340641817527954401471070594994114392633941987559836902534868932567468890597053603587502429782140993825699736735520031369676309200492405159178936416688299239084644657096769845620292201599509284741951514358853290049715425240207443560145270301115418693335876592693258127259253837174972934071602576450112975907277645095632479981387652443639989589177417398745124772005590372988311510428576469050741269027298861468776966160963619119748208503089858613029676257904072860433737014126897496308627312034874655759930773225142647095329737088442388579811231859878050123865036737886005308113779116629445216796658568786768635845946437054415948503035043244542537753662619948659316634778941747982978146800755419798531211984466300293005156869744042759495066762235744656946433514095506297880521029546482552890412993446254398232529552054866493487334410759491580706017867182567361304245113841033436336383912535153123548229118167409974392006731054535702493965404584720798737911873096438074838511738318107808309181088074603982089675781393417237036651190394911784498393330764957969976061831581794432537739433170265130479299077618741809890179132996318029082873865551187749779626985430966200878039049985151500307254924173603527165540843485605311151204714706340400934535175474468166560001064476687177594289925625129900834421128386547061052112953560289215886000693533646274521454673669224510909739935902338148894693377115440057799160423036726580916196161513564214594155561701273311390261219082470649550222087706388785747429092701054769500223577861996455431737488932676346938095851371315695059792172100625768643035580643250185303446219209608306410408804524717325398111341897433925904214972611909683745267565232960548054481252653488189563307076205392728022605248339881491084614100102331897097457149102059675364860618300917629034359239597834088700735219022929200697515333185029107404498892479767524323259752181740606354909088061881300621888695126198191664553592082947612490918282220192702885568694604985127609358952053609152602075460773939454980707249450789914490357258973945126468459782938110517036838731423722254854849984613501254320441739844930640360549265301009224381677469155703287668961951054635029405418385533041373871941675838842541206606654302040588634750358840789047097318942700014643975818427853813516662625162874143594240817579882837055114388610244257003044348813229273783897997555717022010368618733072718976072919644386786189627319961537874368723492489183867326369032981458147204849536857434233478207484858851858831049380671715259846017309449916978959413734456460223537307786725260718772747794867926292670193424424641943401057984880577874762742230452553346715676020430167164303280908535247856326747736649913532210161805618880712304320614629615093054457268774965786530177054012651080618985012469281326438975974603693583304537069983116957472526072999665984467026675867244799753205035359481982297614752234272790011585276133885997110265886813664506884670739989783516080820232274149418087423158596504233901146512542087046424203958303166980436554407846698606622404412499636534443445908136284945916003914219345124431780001949763666895577688190219526538996181945579995472827556730733906690934643090924695067409284301011089028917936126143320414360787775012011964696275465721123766622542948412842547322260072209543648379551196190137817315223240811385067209568705292284284791028834173545150625519677905612964558372660239088262378747017581028722267738965292405472934493493575108024646576241554970143822546047503543953095893751197462693314948993673812845376453799686933223236600292460494978878118282762790843602945583651213721156220644408296325202444489867621895067907403789448354631205446019280650269023564681382775185971666824451586017907126049136118817387269349608318645370830258898706439791458667749817972406462552896941289248606569324132746734066380460423293284914395669374206993547830654232262249670454587324312259247665626522787090100167111968917638944556833324569654019705199128572219844041642001680506771021134383805571442421210685590666011585655909947867938602552937321441543914764904063547206673468675914667715314756608706634724337257508782962463595219223900944564478703404510846628750000173105853502801339263318984210916658501646224138431938122488064544666242344209617408620860271566960229235077969114818949190798005123087607887073586554873174933123730123005592482419251166871061413037639382200682444912423535319012776456882343647570841656483263304456734400123239033858747198347645230031805895837309691069831587724868510870397202440549512983193016435204444120288170830150737902856077269582425552513132274755365806619657545231040516691889618719840386874239605541837320510961672188847179581534322279728666646399232944905844534711458078262606593293124747462808617795188705653235989170253774634803026263645813595993934680523063642765586873225771523900533222221056579580471148165501128295984313624492675751998981157330631760566238999515276670225558419215636111889622678977859146984798895965102207003677869489975937995500715499813642952400173960322477557247283679034548119468833928649776926586969822271523796090828403666154717956016144853498730240968465389375162717456906582841696039568715917570737108710640396461068282284577785982788033205349519423752657474382465744653457457642920862109146651433387953557327595425196742151990927237250865460862320225839093755490634820979262271255348501677124499044111142048261447588555177959074484726877681872467490543805391685241105727801729585591563124441555917602323197672479679523467776036194339763937082256523748259117553774310534686777777116294963654832902746662377222275807671810575378571138255555833311351306397029172861920165221598186198654750935973004741580147672683999336343218281651018894488616145796840583261506143652172519109029583813268856906797446110923718344004931310292090125769382231927731085730706702482648552144840674684480774088099647545992512501460029171953866767067615048242349845041832843290945413000555474067443532031531388743970363766223845778844847293711795815898008338792309444343591322325291524439855999739504617224444903011231841178092960708661233720281615047325475157553246879622979165520691419985868424431660240161444616426621915154698342233956483206955843462664165790831856812416730854606274313917104726435478091960374430374120620245974937878381869690201061470248712705624443992992564917789874279545911427219152136442606154844841270297594813443704402322941305399073883709352956711230761054812788995673476535144419745398308180062733224447188336790468137207920866768952526620208389148717840063925835632569380994798981294612526873667846091613421344535953200953135052654582898105007153439738727404269814120077789544302759590703268921829228877929626441746776475261625059526120603472505873543462445353531852357625513454907532382379593861819712868452516862600320095740042251771185954454872896107474133016024640009248709639503211643118729542555528011735036999504737111184276871177144311497752747732764657400823694725548705052351869232266924225245928878730635616123853400655740944395862556571418426346666245219312703323639821825749454022800943285714049768181581796617056240142982663748365454908422398558407376514142076375948695183974629488572121573631435129228330249063500327437997119832248433251185859600591176651772181217704061619110896681439920275702695672847566614439968740835771651768181455379181045655219016704428955922467522321881839430030964203805590835155300595599104669091000776419185165318816487014102527679371862672515002356963384598455584551184774866618750712000710696529664074493907736003815322803186311079387716301519439789037584159172126633563399311262307261477669708520371254616751272334251165582213832419054019150113450365384730323564518738866705722519400618644516914794193000486006878010828578128587965264017269701827254599153425114421909561036284984331394868476179989480230238934284253195201425470701313537522029514046580245958952041276314767762604682996546070023080647768478371036099673586983158820211585416580690613416929180091388711989658519707297949868899849115948851851225878449965737483776967787579973439552210052176104112734459730520223454617620422899650528218227485772620768281010204523551725882126635266185113467809263841058135646735507429833709660275635457297613826118122137573814692380464990128817088375632830752217018104276460449910451834456431475885287380356301023004862821302394670893624434655304580247823532044826326089231029925516193915181803303653335911037755028623448102494062916038805262942477261402517240968826704080856488156425747353618734406303834560668376387979891823748170539018650463600993679386160391507825175805489035034608441232237177931148360312190676154773801138598167582306947803584771430514515763904078162938798043336322031671874560299886893871210401094429540604040134373639653745009872318840302004948125346254656537186607681408332813436453390401823783993470576658701208157051385351550981830452883872022519902862745098184906121123349362873878693004910268347373510251846177070873079764296965577297757683719172403743362552940374978236280129959471043305886624464383007581777798130900446362204411872534086489951934102930200019789732082005075417701945586637882764385424508584229743315225309843973087290435058779891533921155141118975763055157840661308574424024922860521570570587605683083327006844578550921592540307737591578186599914796859846852167568725468775943764126256185014742714935950809278720708434033446433904928833708444954748581396310945884696426751738025663509824243458828394570457154468483485768698513453426177720467176922165705992581021603164110798240538539166702253646271967012332736162810803748302141057861553823238684544920748274215697700383719044327372378407131419977904622163826828765451178282011672831988088181627982831025210763438208426727934536248138014675562237983899035775130866067062910925604947489398865128063753672335371768464811626877143692073840852193502690438482846801390923766235782440338067775795464314670147501158577714852414582646300340665809706061964888088493215948696622802404952514990934641825029453430320295018069133923573920389308199412696402491938661693715851355129175597235820128820119782245916131580917639235386761699249251079068472857641980649757712346435171681790174022123959060233262963685028412095724101579969517532049037622601327658851084805363622935541742327338663297487822876626331300228505170108118398621427010915727950744853125161554144857731060040180946069376216935357801789033553568067499000461719514626646735832950484892635470581384239309596541992672464635117365814636012696345061063607557735504054472465058204722434670867175605895262664605341510030358077183333879674147630628473555221723716329765098830613898196494502118296726842340310456884548552374341098215838968585097051168815394279725347949465728337352067032563418320714675470934056694461747036147884932063251696124114083237183570270674922299102860837606942746405357745825583383163322459563022414671838192495531582505451396588675811146948664518630628602954732733270462254251364785721453818853637057811656040218023718619042643465636695013732506059370983429131876021976725587202022406188866006090006855739613971812703151565361969115706235726795102906018099823260141389332470568608572697645213734516560606712670230619439178057336896925949099976526675599906039276616722748302884764594110670482985084730663560245203587048445180732824929350909369614725329834916619023252753683047765234375959275794723883538260377904948872344224534501033032098244070144840777576104056932216101489517383165997688666510100641223569669883465564903532112666812352299203717399006493107468137978663111069539311244117434911384052598074537772320574447376503966953848482131722702286190797645377672169583626705855878746549845670776383755572830478974751385879916886815490161665975826486990495851349261377601638191842475735855528009554735658151258425516223785819698257712381094132406542454014332731934196513489522669696585235682595683945681227789115926241299864254524298883666611141158916635969615157522386731355956568770275974926479685328912654078139043067542849842284038538272790074725089109261536650043700348632967746383686468999136003318632874231524292453218637901128110185950093762456391278351644468162348495792995359827180699369362624810507094327467622554484549098248774528976349292285117373030111505075754121357281043067407157688248327926519648818040259807320401860926519205494530011711343282601020927841607108658311175385163011001987893593238587049032316613615600361561928365592859091260326460182243153299390124891085230912680361657132357057362701975973885333436778428106887810681255252672452307354090139292584866155598973180143537629956074740034467331035501450552164077455984091579968685925821450811952585852082612568516506139168808533434108213716156702066273785599202525828455163769484863377662921009580365429656277982663288676405581122210531937695762065101633377627806199166394830944276878051048480989428552708559735068794393550764459113843939172516120833438446347564927080443854325895755781875619685163857525684048870100628128908011232918296802299794219985866382377295311041069829981381272332393664559871070793281863127358377508414253265588842986388591221817852122102036250558879299541897851045241330549544908501422446414425606698458854485326021983509773367544940825631418388805185071978332155382619924038752788770600893751936888627103586543996302430347853522732702253880504778938996903632393009881036476279070828489070943186057585611702543068442138333675625644262099254614812036669255565697923335654382671766683059935890332877445676564436349089222679344339542342598215531604453506374694394616213729529390161204934885600909334243721654322551376323407466752485154596149308803047581564219259286655770550892819102036069112402362209005291900111292675604243270791321867206607198518537978004649158014442069958437163696191738248541082831827349293939005174191764510538718608721975819709584880464783672075539585706954488294323486196904909806269054715607346656307139882457497865002141599746952880002125105143398514064320326353301532084270697435287508404698395981557462191016303154810315599246651785045585446888386853613631544511627745114666227491738016913172144717369331154680334691095596279513026647557058478219645901778170780992013291921562810484780603958636365005091161712537784810985929985929859486470126050166782504239947748297968890795494709566598102167140697763689364905044638697724151169547966649419885508300187886790996750352370976050669565296526024173745323253264942506392675859519632120177700622012375166543413335462914357770949620854838366822390469027913778715842774177205266178705395602530804387623818344967223441034051531525437052928310906803216744046327145735385059996211287348242804324387327801307367818663306691922616626957524519203146064268545277718883614602083875976467740771907769273105450012967204643273138578229784252216819608307466129648250211648306184342633547746051737726796525194158726688697237384545431162801454858394653345883489198242773689536884744243746628749923019727270921531776446609554211387526813922958937351804424499332827088872235321944909283493309821352236465251021692276239342201882703918435915461949093078488105427362117481797032134458127784943196167907159704453564665893777761927984772843867710745637578243193850684511512860335235618871230561553474655260592069309502469883542396358657572720167872361254811089746107624495238223247364070572482774980420363256735088449023772522073817140133224844834886620171428673940924661726024147521719376789921319827739816920253806447107549738167031829150962374898008901915421223700682458959509968011714553698475855055282598316612395042641298857601735179862087602842167097484316423784440693826094825587064546143657580578082770042875612220582980128179839537703419550836618703358667163523465392551584938207874194713546108458289994591560832897482747484868681648242728196891122908576995448380503707024363716088710885228861040239883616715242207529466010822862512938889307919606685521108244824085029656095419243889749189958572562335435908569678262416661357159290332631307246339710253696083850384454078816314288348288219346918572418719914228829305936079915286290124691157243336079959456292933689689201032201598788610572113861979150311880392376063587991542164116050152548018307940465689375552980638707639116174024199502037088970850807189796045647877975195629625691804812962330661398279963493306498042109476438293338010435491921593580032783472397395720818147015342985584859533154844002284505650877604353035789958234924974579887753749608047221336409091317993961795669873781553505916966696074605461463723720077048737772254596368584422656123432511237565449347897288632332615479267179885851959664209605704077711911069771275982161280540563056052426636197424318866583220877386390067015114516091087582958574979903522042633950676237569281011486886850414141692869533854960556182187885496892493380928452764968707386601504559209694618511130924685474361709257666641205941874551237945146071707926475457493783311636006848496071751243601458919608435146268313086352142520693968284889852229510320325294406841763627069550248103979547361659352492620748573465682482184171892560885332467672086425034478907920590268597457300384018666241547115672236480213314359628114355984220574297905955618911014733127213940224317261037591366171363013452310279739708844203645289758263288567183014002774691817227185746785319810886125704212383311113122524955484815631912146245742455372047258964671639686442460346870414376948629622605966060774295854365704886153009838415038242507850983156812615275566445113190732566340977034702839640739113306303128131092571354530262321856748153801639295523707128276889609566163347072940474058699532613490669713303393565842694973202547031495103357917194209975051408353371089602736158684491596106013452006386542484262798708536404899401629092915758341114551771303177967465377402533856324462828100721593043391692910363546542147317342861411304003106209443761711447220302885765728122273367691454214491322663272056972960166457379680356173568027821507870260457010288208671598698800558866927372047898977479143953042648957258160854524468271511798384219913658853115378267278066196032564270969626483073080347082545409234030697569004055637484193083645937576222573195067858817689126852560952157061333972670537605417014173388714389718279395714527484975212134661761173363354305530370288937676339149177071306179199265200100491206346530478701657187091723814096620627824537832588214756909973527857253620028242170231464238445935775981054300434024303279830194775986265693228889213611365611815440872794192383703159465862970554013553368209244487978219451787810539176807483157656825379732722839329952063161708583839852573554351339114462065701512948815500224834749025409949373803665645189201622097201697163004413847347977612859163352758712232692743797024576551360177833599938399907060810237790137597240956357620604963787428489744884261973202188168623464912361933681951382478912583090516432842736569777176967689001130023446658228237969101290028157665226558854058867488933290235747191636818534710957371929427838085460469842962691332069810756419823803880125767382833223301394760839100956960467860182681465076865450461494812759251808148241267612248907487571648758212596967858784749276785086791468524755131570723157858737910865941973822961498259044497239562858760014272839912553402856328993513958730730507047066602197327694086253216149898729152492672892757107150751482994464130958812989250096804045408802845345392550056283281109633802847298476189148107875601956930943869634654746132172169265096904375293973828600316723270593050795861274667934428773409295808244199969157505982282034366165459187796555117400328306737438575987227939762718065430755091109929162316615369596373388248299246170097059072027723351663693194993041037849304974909704240559470831379403814576526147485242813375854630738128569034956866604915526659638734548555750391341602109430688833978785142421710595248150549368457004597654215491782122283795332432091494379413790550492402550091407593981726263641207999231976354795926920448458333517803664972691885948196200413885472672239279849248511510636542969662577999696994636814981326600980587491970319012415109087252427546173869489455671723679710358008866900535223998089818847088212319651023382264916593842509814172677255774411641330042541979433544981161385184957841646449481538023789690500539535747170779311475887508074114520303064998149895570941235685421033271272955622620572500275566933907908905946860941491875871335732726363235174266682487212750407390079134599652173826553570398907520003326165998564419026406040600112755548358676836858388278108203091206223966114637120448471572271455334014711508818568518101487981120120328805194651803466357513729985275120198251950765883732220828303309608097987139747996681649952362685824370439070637189350839126108311705395178755299813573490786686668280881061438237265311262168901169013886454663481528660272073954500853100783880422391668938327375646385136672203020116850870491044830919265224638062037725168818953269797132990757358893335971932049142753990472856194611431789324609819599199854495543591157310454234800451056637228206417869492333104657911396077787640888762069652741828348438213446832633095818718319204703233394551288361999903997814320733134522985219962131167016109479497421570419471653457248485769110562409340967446075275670248735346580856633070424231307348830932243511671642647087385763810323591407715971919874469382845461511464538925600981785710739853537602257853089283044321480748283178673982012695542409239690781989585588942407611700256453922237535319549661261732752461736822874141866795237454192657875627859305425104918247098967999564837941125098892819273969920483426837751382760338809294591722512688037938634644314409807939643727699844352671394206131038790029927134042068924427422517337019185186960660040600483485492084847605870676208787181379857352527120153951519067491163938988162834655801118874152691443099050062231583921172544811001542034260746356599446668253825824723991586534230553307689192215649200700124752572346831596941203447371599207465537006448141771879211710708643289681553522658732427980772995718903847536602810519443233562334660143280621238336842982098949832696405269434026351741800650294812083327786284079466513489523825231752007940368567344490303937920156915508836737954484931715839508471545633119539984223534962090201909582756423859942880240643072544492237099150224241203388818658306206429897999032119867994012259340760143077747024739061598070084952013854183696731674662976109897662944890600515140665030582102442048500009160410727960686454843358098671300845164910972264231338964956532802577756790776317437006610984775065934723453026072226855550790798695482910403748690797140237491279732174736279015190736988422270631237398725577261016252592538865446973263329677975093676771928867309246128028317723754319970051055486123897912957157972393096065465213706014865490773566198108665865964091054808223779298552388414386494372631918224228516594300104005296389897701327887558476542517442554956985062513193252815652762546602231880917928475122860724828893515708830360844444064809317578217538867208274672867404573756369280717384933582718763184187436780391195481759479979829328681217490835725637863219251900479981128867538665689691020677546206099810640543448746033930870600113136061958102148566150042739554338962624622349185656242248010242564455015898453554028622043751106145922875873535123468772156551960614511139287674607429389492488099333450570463823185306517139372511070719020378388305961742854848829653396126587691814912694094411462480714557231225966876071039621746203558448265546895665405488242252373247419539981196045044996515051623177782275856942737924243109062492488398731845956141431577481799609555921416594859276319188583230598140578151604932841560451242417628462861070884596683775467724149632212280891707248745441962541458001203737271183001255507324468969192750588241162284342583865906249694744389327564378715369392554838634026807094043399021330490371744674169391385573207073516289814813348078055256881775603880731246777012778491290925263707989469247976590974097513696550137760244893569631925650901318162170750118387075835523799676467681880667050852147240245184157731617353886282390807052189181026199273720976905726778540953451665166988441015847164739275064206906586699493262358590544361921490422030017218993157745143404792471103030674787858005354028239386892323663082785159426765101457559931449945062911180667340933109051493502853050176286006746797094634872994748023546128066103852961174914544647116595835980241098395846849072502101108753576293006266143466439341829869912001119830710572071833396671754208232462393285136543258035514181890361177912093676843474860208394840105229464371559999630164490817847790429175681543385261529538813820978071652318742235163788920219488338529359142147111529103062391516337222376761642913455990953232191552126219954140449868658232586734029838217639359776059848525732501585474359294582383688402389688229203266414604667571343608206357281182080366879809529515418815616398968592387060176991074321232792485687348509887848971144495458122736781667858829225880361327460046467174216874203949741671802691879550940478458525780701783974773738321308446185469770293647385261293900302785350053612380089615168838619758531772814238629321458772175977619837240309871336670405140095652614516886614856494931490014309168566271219031168113638716081981909222281836887870255904359031093187755579709670315187280218530116909916717037143442736888281011489654001740004667661032695220152052715986616194133834467557584302926507252021522969387925973469061311596950494688077123668427652701402234253191383022005320692992319014162042134142475480112632156716539841679939146041171289054351205381094137882197192555562154644524906951852816960294169109691080125523685475630092048320759899578869787330922757903025577620981086737819964254428205684711939324349084482666284351795085244280465695945193837635962067864864566017968304880699643275494472760679109506628005005061211557699942310349471003871615635436025897170643533936497823717125192500597651378131271965386494665204070904203164439879154410931314246973299921788256186889658267636380300900137702868267863281253044634328063546571984576029747086843462389511665007507154766663669579610163370771879115262812073629325176651616805739043815964490519203602741753011660617586790867392779310077284714348135046391736192456544283519402368208769513631640846982009226967713367321470381017281535452794010897536904961803480819721901905868342835834392416343012857568260183226128602612249624044218700264819378708492989696265313423193455078281649583820123493785381767227076912987533538650516448403285498433182315155322320746617687582242614807500980369618178267601932932895296052322692366944156118404608501597598343101113669184039478624430257227272638812811861253729999788784292702898540033578392220902077856696811229607654595438251237094334859582398537642575155705757266894410565362852083821248896929160464163681484411750275738188120904538513889643351881428706003108915004351647050646555029403084186115225526439366873393384156378777229542510883723237841367172504555287358750545944019388958885537993431001891095307300462521513941935404580652770678204956999777649233574672459095818257889548955165024719400087169696031099263549050300849209379442547761229495273867499896825671561150618209657753591751638579678534889371283565925974967019323492720734839098796639968957734209709050532663459346933111726690068662881741627986145691276844160974898985765609248599105738311483627972089793798858801474098821129299504069663274266197992995649871683174295225410321792520096004879132327372431964254447497945711986535827426556722677301602953572898662717203501582442504072497880500317434436969760222221641898216222448171018009599464766374400079184354290047359530916157081496479935637243132488734313128991811791998234990822997020397333319605307895832173126627251948651879013775073894789875243921113771004851490965869146058055659226162656200440804373276145233329957853638655572347299932011066212643946318265030213606725565446000704892642657151366958731585448460405816596228678792658652539311006910001068284569827927151902552233237226069545674013635542559008600230429801411366469414819896829288732184860441319128823502250896037263046663995116314520149422689647870374896636941901183370783287691856031499485446958257553763068897325447124192184000447950125852254242974716015462017509779196255209368440319161689460167087987854453201329089022444733746632799698232299373824155362555639520356835424383927618984912349705645073242674818588165050842656748032765770926022539829394126913845234791939800900872329257027406333520807300576218854220467191201740802740509204893685085608424172757768893178293254925540993238391834736278226411893434988257157698570029218591168695567697060747725649399597646250555744828082544176156970990707246864635988753521286612806460854567702481802776448930525064104841490427520768509375449400571818667568619395048515231820598169236487892356135733909904803773930910009415156743512079191176791686282212042999144751837198222169133697348623116203453632273064867685493531646647836729082338503530819481624118025427748176632538832146211858805341914963669586319961066962330031414117426772070558659790751167415597341722524521964732019368227260466227774075660676752228891730993394408365233139677707578995052282763419323527810221869726459130503835901102572249455152522314158604923219296519730284473878067432292189226412879475963037749171808880685416673161501030202707801062818415182503405657950682274024851046073222224704508065887026287377564671756772069455767008529459122609035142204609582414454932110261863521186923483167723435884970702422995598405342433429364056039594823135944676598997922607719629966773556563949509545897201931895236540866399643124753283476867945447214284815422799399629450983823030561957568124100443929810071669437826272301708374574165909620358635678461950265565401131640666827603267743421682994673483561815886811535055440609665430089859771834409085487716091515441499291560779716587092449745492649471150610142351114701842920134963429774087861755391449770266012097370803444445916375624800329074373591371211335670972589310845650086531782709637596138297370818574063488970392658637053382172086370157096818108082098796366807874376392003029539977739289620705846381848413378265947192804605314758650600866110425264689401773684603375128573666426735940391374037825000117951049663887049717938097119102190833013594432775733852795811589228984217248707381568201714114469000505160464003018593248466584034374995115786321360784721246440814181830637466661614308213232631589123872022437605420276891359369533372330779063994285622058986909228999638118130956168487357278391478932482637627530810539381017033551486378782118798329203649267053809714895958398491529397304412223340533487036036926601943679395367636269193172638868594553611582941351000348567062715377219219740588123943754134170726175722967553868926779647132469102844519886868075068354542867849729862733218477065149683832783052051147128996147570658281109400149443077442811358418194203686613997367138937460020633340209570634205579193636876459608964824661487148009861368052395645703581347791135874322294298530307667794675039808909234888313187045885338061872305556969659853718786907305413495922813346336844437357088694859182633625775254691307024256336457472500441578357788891976975607195464332088078689014217561030658830982908881427165254835463114117099350951577197397566786325071086948358957165949550124168911998018338857473960085863960859903849791183659253507213732464877887385435056269007838625703459679690993319577528665307624268599550002030407993415664584061268758271192132342023754886247363782558021817719374271356203175749911628992733227034996913369031740360086286838249459176744216817838644071091262122145197342671081240884213885470766604111978976440907579772641241458388405711925750521628099117521289884472529064094467364897164025763323506692988776347115750166958644278521640800721619079394640271613350992055687290009583360782888819636030915368472845007140308577277602789676712262166520864930597894036006921010324772900691245215433036920307136408331957499973028865252679012114071190337378522168539409501584967447452723677918627487190289710022739625516080692750228445941814713596218696798655814595320105845614527444648111653864264759524036829552091943123482202501684373899412132388816276095036870936410867690342448875964958100566044689506924502742685638354930019148666023608083632990144331064896829024755406689941991419417611233277300748553607805148843461283992599823455832859123512310926415676022708497569418398419728521674879475453156983486614437413527721638752850616555069165998496135679264131782037932573092413148752603593940850873046879105672006813898372226995752357651235407627009486120675523305154256024501034759747679422020989749069571147353999765558098124808114514004112606329028474308176788975484799205191316127232331465019291322552492389443328018361266738460231482889829895242729542911663570335756979349946982906706933346273559860317502066126165594021846276870287239641682849330961015543484738535286576164830653719962581288410674962863483019318821600202797946513383116807352391944379221306019472788434065136159347178841650652871035258674891704625907197303892433047165114008520864968468523889223135579849379428040559785987236457408833066007146205104791334086263793358135687428122233829438029963870394514956316626320259265737525139140935758861195492717222298132781585399067319997582777248061179118580675643164439226022380778961897215745641966227683674019583401361580874837916508832931840284066158062814226217587964495958825349319480655569260315199109223075662738252855971357729870828089680683003066473670631518029132858772725877603958827707899895773174313119471396993374225740314799888583238011237348466005269626314467398051302428566196985606984907749974809211741158883209517488382197310111828999821049289973490714584753234021541018124118813974188787131083649331242941663626899940144098666108761812785409640652059170209380613169722493558286083811851780461316126345700627911667819965341703056445872843042277799159674252296301057030108963838039800373769322766076917119313106874634927688504789935872250139714999646319162830985224442068756625923965497306273814010332636167784688171607448720750325938282346992342980374768786014025697049703971220318041938704900989096116630354500220544342070832790521468022657402829762256966724991076647779729141003365408563220350537835411833206503170240609085897359846696148191195612721112219799274125417148186294539977082931452747788167126919560329676706364058329804598434793692383256666603127694994118823208131770935200465692093276894177740090596987763114538267786732245014089703801731930703117205371470102112711857621020741290924203838540502111074284583745596718377899287805303937852485959994009614574146069987209661344537042157460717459158514081289725340954045427019758029378578859002374066867394080303023611519783953063487852218690318197546477507818337084769488064138442943188686019021465532805027907957016820309378366974785802924232616898666270035243577276971833220901210085287878031599329148620795569807096896505419522786402012654659251890765722009939160602726810835497293093592490777183340702451011903401998954106411236665060277287983840605789493566299863518165191067017795369010214874955688224045226881066789997928240353332650186768514850251360309115945114253371461366345780098119036561380673896205930884781346987869827592484226474455117499094457066123309151870976242348389760334287950096024947456039374215251066827266591796107588163361414934235430229840531374309429849658282685391892234910459725057766242176551346533566151049414791605682361666207022831446127350933092125691799036616216190746253068471100322282630135483025691820141635809016742274702431947604620253589795675430642152997692090130701774093959448250164733308655843828848714552778227700389909488837413687512257100366282308976202884719957498953323484993732907819587672443163759254597018546061724585569882653082153748210798659983793437594859843820298995855312858445674425811914386025864174877264264269496362480053805732028754758107299044635947772631629636863899023555480414030188590333017330924530914821002504820657880045782162523647267434815214781449465744914973226048479964216439643244103236868257833802648103990218543667950514710418444752000344235379940453158346520032408586147525326125488864687806617119356049065415185869120452608260671938910570681119025976593135220027633193596760309255874716139349542057025175409613912557775093359639957897611197681967921961798252511768037735018680255538683539456948479315527907962527281246971582357970212686816021399906422312637839583217424611187590000595493554811406014969190975090689305361954558733006519684952860554661645003301902766164814047891047777254560232427283359114138272790657372187080142279853992738934609663312978563650716166564833618197017175209679903797546933672814662384640821435906701238899898689805802480775629776170270337383034445676547721107648756316069780834551463192380832773063863660334112603865621695508184141364542967517425149206670872649372437825633074133406297092171016755745582957112320160679742373815671649549033724504523778731427955465478046542545746856309348025624001988437834402673939951722592615559751431463288580094431992244322415225909532133379545019213119914533709047592135876116383721091108915545424897904507816130357089661585870948486737711100183640892326022922247812034849180155604444331132702454410124392881849739977283316425046304926544037568534961063922365010947005409599674337228399758480409091430310049079128275744375249411716525238036885590154285357531704516297996177202219673753106192482318752155293650671235412065036352992766527007123528144206602370759209116260361676558009035421342232238964135461915396116160011045040660160133367997146766153054468375583635078760769327797323067021811640880315710811198533125590524328321127981264957552653229097729072821559543670962720326387822543405617958568701437290985865007388928250573153486146517799344769598903075437730818071698707784259844704435762697595904567727481419034880518204740273081269831830178017891369005944235005453113387040336264511259405556021021714742272128183415321214617978130612403361788263756324008493482693695647376461536533714254019377975114324414731262992772787432148338623180507487957154678006194254098486736635868704435264747346995579519670411445746778153483926654753666900039849574626110707902654924435644212286146997825686439350851814875731103738082569431498863926542049706788570978023571991288356552066456420826490326840805489206210375774231895820727322690845804320354302573613323467614553773295884681205010957718354634917120606654478369558711864392912184060580115182782581755261109012422892184187158164344752044715139131838365802699945298824997307297478876466349958983701506820634627769213207145570627807131366800549132523625317707265770135515380815797325992635328381463423744032126779279813516075172442442039551834326192523177188138828229949979910504408173205482488712030271778661237322020520560104810284413680860169099346442049330329737715827247412323520748800855152959683196174494480199247890212217121017290689773360095355486325179686928416684289348068750726433163201415972995013717977466851888963095201338100406524057996244613639696901358501516057214026191734890034538308146294049402778265462469596924637799976149407600889960406734633905809554333812493787269630661056005254718244769832156886887723032121628608253973597354386561277550657261796587790041934907587299493552314340505011666003407361329693755112905046513113097779625955233349098027444640168806460730456019804223458701860798362518728683367800180625258210017569131265946186553298326814741977274860714018351164306739621629731910971820117939292870005261373335502205906736985079074506988727452928279031072638474362926620711931906188346930240367054774009605701169620207072858596053044361565093072203113980525971452005596223685455628738599415005316726227240074570258977996403879951576198518074040394318743435792549970906477748380488362014708834218126610466240213087612849654671544803266653362414746422127161490578526832644302229603136008079100172563973160261112077588424022931816371772665267035853230339655040626687040058217589558589155671491940146701605606092191097291408760797318383639932238382205327396882508571335206366320973879526301388182671846340878528490127163607228010692772200941265999047730642839306539039099123513073608588926008947359917456603110389354887398018763712646064345396550818283999970751315623883700084453211840342873051773794916018261277656858545989581774546756898190692057674702671929827802909500641863325558488158069253349482889215262424818409188483084619678623921815068775729163377780710749179203502304139295820057076929833086217867293150056886275952393141535004870666090076532680225046067923054107301282817917442200780128528822094741711057447067713819255036705773445231134301380173234339661280909397981970845918690239406184515963208988103756529739667227928011513387821203242163525936619692678953255213764373059986933136462447139197095632618811236580386359607612310072569414185912587518484295315785481638915125960196356984519273404083948786249999670639371872000488968200381373217236539614062210401617815846483139840528016176936625378227817267844498989801499689864845067345107720798947582474559876123089498731034168722314136419084713326843553232392854293183729114325666438507096337969582696979983765710704233688802180209588706313076957248863412674378254484526144483161802140076526745381065689735822967879984003472718710875587049659603027318937286252452694232142731699288997070193552818521706091171968059479896101181449400871758231635599351362550330244435573089786694897747612648729119122918433040556448737553468327107803814280354247769450392826490013381424110667548364483554087053776587025841287827387805600213472538521963884845908526055496408924916950151948160644374369121878811116130539750895719514803691668858241773851984841157163146006259341794425653645926008314973056357628601236345545233751340668717877253534913776609681601315411635314518237797486726993957194700189796727057321805688818036557218238584420247464010502896698595779616328726449898712158322432157253235775650669398236189904981896169228032986582387481668113900248879762983226799295069241479487796359256660172540513384093644182566424590830543267492900986229136067198318341613567041421308734003162606075295165549680354080407522345017957854761318249542591803293624844988838992233907608528655740395036286169014633968032311011029633247078332636824057356347880408848517893387131147041778581193508796487590057619964223396227331911019704503896098350544977449551736023728945080769063567120878262590379689039085754886627556511963586738464968344665158255932115344842782874464477873279100359773181040780013163298634965823687299149296109511724262408591777154916192758471957384935283849342102984767747691758407680230506641206367138156933694390087195944319825331734682443315221689517263901307089782011397559173010968376990734836647131779411060863594292983341277264480764758023184424055699953660116668772610091627123140218620801703237870586784759177741993105651756123046973985900408945584782729155492923690033236476375608974715318477711075298223661936445816189445046518869172777218594537698300937304455537839572586055186458570970569967704978475447010019271185155729387831681760322247012327075857006758647818114599559520308923420752518224814573333914121543901192669086373906642885745027744000210803338356391709792816997019800153603603936242326277592872574147798297739808777001738270336924761221724398132174489166403028312957054928848529875590658042681417916501942367524192098897751939449762603257505363383465101856226041960471599806596112578893866163869602383738223000577200191280519165907168978695774428215780455924064735920791681292237159803297924485529580595251698925193037919737151978139176600159965532433169197063944533031329979464485668330011717169206585674185494089424907710151807275232833776738895814793325443786002085297454898871478096858855594899301362987050560109663055568920647972282709665203361841946544417122178851685017374368458319451528546985887002305818292795606349104233294729542872265110421050994979685855027235694621963817872539964972033768436039735182118518487140373842056439107560621093060517498486633318952915259367868604048027421585089205513338053741249812424135180242164525421390067130051950146888427384530165778698981388458871105660933751043694464650825293314063123780114882756053244834189584158671702098967912948195331905403564318972110319459862341795985705374154470352005152028481332341964586912713023902544320868855503724831168066760842538980142736448088646334318020575645312514560618016187691986618371421737081021443414764647464359812674528408761087189033252664392708494024288766466133725740166790659540977295519133872059399938565425991650147879312085731262872622600695288612172674287116096374057002943708166179563137600953805433531821258785471342618334607017239314720675506063970094560664546726162758542351569503759305191345260721378702628799325873493674312603001764543856829182752243173796119635538460793064191120616376121865320331675881316825057254026118852633192739534848639686148233608501236223046665623486282007987023047841900725999061192987918605089513911326157471287936090970491046360982019595547375890600278675691075202315663900290906361072845292986818070207007961214972071262368612013346663736550957943932970711777935506667696012295413770995661189189928676696343206069161458776984340079796127283072316430541634617116479651584339236514996318275335101896035127713410372839856972930839680667537999495851542946284392365738826977310480723938206540169819086265492758215044412358151987523666028068892129888477803630731244013133636136158962678371535465940891365884846429245014167449455883839998083605983389142853909239962233637721257955732142960302974172876716876832822577098983883926233459417363953034164649255783963394955021896153871311161310682448589951209243987022346424300070736932652174657379729287122357725280986658406647791876837869137054538934563775759229652476322799590911572414005128132152284495564702594591767164357170679201058941284868170277531919966549087952695076248181223065293116061432493832768472020181800957758840310484385673068417340267225942419367514144268329238351096689772475127528801095095144856044507230577490237882138290942920782988107881541749805137621479162879532526537585333185445013479128111018062987908065785388860201880464535205414189505712604293446617726008751812429059670607604512174668054256886162918258156664503096286475388847804382535268120485496111954813279311991906971386280131491329016482923246145073668010689740800522596269325389295389318570710348684786541738242162508590912513719744902300084628584512713006866881678087356378583286439016794328319328363574569586805810256800537473483493844403335319663888951364331849947515444453118859989830210846771013001659454539616277060343861911414332699485589310524600143445597098392963793326699607260610157234062677427840790479349192452082240535581065212084677363165632818064832259429009637455905506449008480251593281345941105272585274528512998068053384879317703470454765661766338450796071820898458680371872989341462585169109960555012939216370823598702421314788569530648949666551527583610369336852057301755066616592490366887940971393274463373198453477722823961614474905114959714287817405662054955972437575070480311264675422804738933162570902250966451050939544964099932988338976691660146784727679384954843937975327799573941587966744596719039711270505157942559813261939900512854990847460550881892004206668816576618745714405579283349989214721180453299752632871006670015169426717049550040864825643192743559205380925806957217922336553221386503143276896074999756514788862269691328603033198810668549339536663508910975053821581196579294890783793893209559401516120448008766238736394095545621998716428762729997081107776326990178208131734960355702722675325958025758192377829650841487101640478466217667510757321792909493781395642235689522554335762157960372674165365402614949070180169831578583105213487840589197659714372089412038970807569901471369075554510938965282420060259680734548933818324699356546696829380875532427687146051264229198780245688083394134934215967387626247651963505584031057526232151831619892267326807245686750217647254086800258007498448652183009699294871321553246364087398140013156653913495874669440198572491695607352727521725161939270205141132194464046915275982528600923891544447072714334269775025878967673951520102926321919923722059329576188103816514067932762943234889968741090991902716287331041449127239343069956580708935239318567665679733938079145410247471451236891717257872265036272301753569224483024020696988123875468715252660185695131545244507084300917066831390553089477282414549447671438223413923646795092512663519772481808566131154863516741575822095091560550491840494599420877172549604984360307784955504623325436937177429284343204619383851953250570835409712098062543587874609684021616248667584660805259216751674314660439622716520301981113204406103620988168803703975491600217610222387571414929922389202839991589537190096711248067278333201880050977414939594062046277406545608447483506229445558589730802237830672852710222609766128206174019132759975184261901406833791756354397125732049343571424018822856911555968678152995964746855662044224680531117424081839893930475593943097081309103097729844918285438139922309753545183445237666704970043214534490516125136468557572783415499004486852344899369686819521844060753833160827202927974285908318465527245998161745581706125009358290639202015095347458440922306179688313818925918702911534894797409116808310032326956355635686093331500570488171661847470295522058467101515868631560259610134537287239125315038515279008600612560261670480013989976578951364430722579877589736046279185729407447548991827195412821405538124333234749763300191786394624637370379372652688109062211488547969023921625647223784467994933439659883959856139733862895465887765430269634903431312101970205178524867913387180349592759573453150366576946482700449526062457301405025792552454265264580529415856357978330632312237772485565116075712960446521662164520234064970671213232135602706385151557276654926814325945682078226965463763392309182005463590869474527490033767350572588566342733778544747520891479620859555295644994524108541933860846658336629708512421872911749754250600731058375719862151577912277231178616712666406391889339406128830290550800485994388042675185174941274657989683211127719223914271595074017731564780870506605029262378950381520833180066246063885679538699832805072629659461678948488374236252575907443581320393175817445193126833464366354408632242245738099810958125426454826278041174399476218839685426710157315541200316010526508013917531253817601574056134395351482706551961817507006959979646291751837815691464900783183212764970571347726989348047528366508247435089713481581102164242802005696795377125532267680158258077324939861767257237769660389512393637698911295905354296557836959370861137186731499760805392415013705978029993004235564903317969197482343196039521776741396579870123225622411641602767087271959819537903844676637139845392307194687665554724688274667358275158336019787584375138607575137078688907030323156935818180629799898287438798689732256353643389284606348871291500098823926820578795938605222392368837036397458764247206602098091686742790548722596210073557640714192472036987159296205506089186725296182178708356450403086986669815330370584911812285559668525677549888749913165866436481469286598066083638563174720019710462452854571579634348084036954571520272905997309473344058798538209681331972756822808196553788439501435384875390430701844036835747489160684366950741131501931475079322867473696706082312829701966173447803007797294189452930890829728152598366317941787658541768297123458357528211053592000602114346161318405943218294871085358066499600091359995466019810996643240601166650549784839583236590067744531785582994053763267580041178480934189954062727551331336847226951190268071227990368331580527260724924856366222065385621314532616157476985396265956404215056881553692222890736688357882838256401140631403094033018807684101378701114033564647905531729798801189762499788645793216879430303358859502630885704402375970583082769170213109919570355846438661899400167424987282825235424104865532358365998372191623454728117289364423559099596580257081305881884725677152559375861766703162223463179793944739574210163189644015348801057306314930047653034522160217645500740242429597801162964012491036043433273168925371253727674184788937828717991785434773176432268679003684367882618236452853470418432861236946997571667231999022419792795765238528022329507867557364620118486857127653243033772239219886159466105108903141776804569736888460398206137017103516075235399507854498146227087345000936934598032529197684965469396419303599886059708008965271074475921884148891122741675402902805274801418694340714142361730978744177674444155985550544775399341947784036207404689211579011670735308719696631394028357662422294608257309508303511579272125204445681392562973243525101828708863718737016734140728871862577582337866618260137031207653755213283995261254821985523083077887178777952271868387815420568759180042091604987937183785445918293765600978322727026718733680467605837263738376880556473085706669903027185348461760622877404413716958422374429313948342435223917528883606188742290372148756119725610832098213485267818608049025715832612602044370937798527003285060940447133419294858140057150168032864081290113839478583327676581438645958587877297134385300541575058640536611792576975630353969267332710766421883776999835498585844774006160967792070689335421611918676784633046845288991939989738351406501133665980951682737766728513777295365237624338549692654135965919198908614593101227531687790386365630677900848715132318985978738817117364121749906670466255790458280908886276130693920579425521004470130135066345015273485624250195110285458223034919890710263990058140236960220119040575814074904182135158950956877253138227554003159727739680996567682809293646312177777683894255912138039495943683649657655221889627624677937246847771038568933245546507230718455363601161989083301292578869190022304005912197403425338764778533225407292880884190289796336417268694224254837588862337674464705315938745701078111445185216534078261320109904896873907272775205871213908401253359397626883925471696782552504469661056024619838090882378123574466160766183192164223528214546457217051805141701633528616638024590196595979063883005106107444024267125174020758914653492973279644824786703861556027695621822923503142576150691837177898899700696693251099808018561175778293503321419505562272176602218342780044411204724559565681981581240945336791490435213443613729062645511849782715173450184870872396753604141499163931486339333543944496205460679399299941265999403602948256254128490921672372770975902558133408111714817722973639196301670335940574018978175051650949850290620526162319279766738916196348509006698553274329753961887163433287413806926585293301077137875104941550514775240192227299816129098761881707003970729626116242421970956692464055701757568618885539569760355050792137978488564675602988823369569377732451677729154625428734087929558498937703962273230150795526662349120787754909548654918128935126749944541498153522223987429076043263011153713270007158945017338843911529211267764209314027123019519360239166552906626627445348764453734752492493418601828761967974168199294392236955335973702992715873453896500669622688485207071899720106228882339326865308948336720719102449249227566814292014653181693058789123806170842726983202630772851798931390248065803940619379069494531945943990731806489865142129005075351057606813853532998508507059565581025104206918070193501038314562702634722631270653789295212388251530557947249133255389785445568005234928755442041164367131822566789152426950242839478350715816669062033852897817110864848626746010997890318825728368206677242004813393386653889857375726543360446458539060781875369191443080276652205408480295667739910574794254155263634165282599758928909411431315085326667954471395654196213176899024031765367597225520973309561342085763329257746183369556588627774129509433699583112682356046967012465230356801883390789130657671702893835715518248666608527653921186785443741739098545426747107606219753313454198792329215766401111767581915458752014969210444022766955385245325787523198361630399945749283301166273776508777176862666160146118038170499476955173211002363823167407789726024294775495870913475550135925156031610182063514622750931125722605794241793771202247274087968073884835788753471408520866156495041136288077452994472061971150111868018921499791038155684496342667021361819913078450441235222204802747908663625697869873515035256982015687506396999031247484435954398271662637986148212828135785301987012379106853430579741540188407913768328892784181338859428433450105264333787658775020388555400253844881827583066187063058781520146703533176381201331384580843858816860684887218140125159701352448493047334892288661858967219986372814934915181832215976354889189642824306008420006575600749077672371828735546859359253387873482961010626919336073387512451630928721922505375418192565002718890805478488866771661992260674476741541418836999230435962546156116888879294780105157710817859909368345640002520232447513420976277334716533632738821332885189030314634579100050488212120667469661643308917988624098957151202026590456786625056870866725937234247866615148463510729545071160265902907861882002065500636937464585006573319975394091949282707819712486189516599679092284730863684582599942864800861023686501527954659361566191522874121580199774538422649849972154120330681877908896799726392311674322371482868772874633280341702787658464576482583833580090578510420969201705817910124818180515746959625236079871647022321401611209608776906297411061119941378728126276713764605198019882756275612675781293620929583639570552430323378030516912233055111159741929520784285269087378915417481420572030181453485325930620624816936099695242235668092402017797482024482694001477568959649410752133983737875467071191390826015584636163855712437422268394419273809695714416121651356400292698117153762884450653349940784798305824897106461702214501892385370086028653141724628421549011793797424068850725986822247186215570187831712054208476725591527743707549373191285940875199584747534349626389799754226917047614480856040228859655697107299605269991962314020127324087948543752365815703630268937147431019828478078303139883653046878621430579032674153071053628665578807785823966746431574410316834252570203081603403158139173559557961282616522055171087161510654016475587933251604853458807641791248680064799511537356389323275531539669551574701804421864717809243852592356166674173369239945993381831458679587104529753149993140144486091968950552285169860333880194822555181795682406458245610384506633976468360377871708965385546107758745075300561225412474904977964437358036193344426758813136550093563199825765334192332604425793417293561109925689686331498605840915108678665107476417097954946646201645131243530153719475746342942129412480471933384898740670118909234694402594433440063857249243398061773880789259787961565204635438247178647135431921703644492528900617711280737891402609616528370189325210490979418847031922624110350632378309561574176722564864090559622885673367003235632319515263840447964883342436463549723876502753054054477854505322500601956019678312236920718014319267035512301432832806984116569261650292476490942102168006412135820134687085770795790899814464387768556773684565421184611933321080182564361792932732193966678074367552095198524487263806783688044317157759139797650241665563150283342506765471476722277413784077038926450718840718911652931343826036257330818974012434578468134913389662034559910438338279517030703232917588169750554747592406963366033574193708485807097433215373872011117319470263776098054392621120667007862893934498605108666665268116842578988844379813397500658538044262856591963401384676901123640838684750180165929244230184277120429602121029038631031458314624685819161099319130063560189641390128051780751487172939743968942886668376073337115520413525894580921021804638426053622520158675258301470649717757894053236665149483879304316498086493840045047560339065297580249024122704757865529754852190080468949561607361042457024769374920118425266106255308464151057012714228743851550843053017311589310709641181439060671010826452892793048759705124441163527942547760386859072006254178860154230192916657035395720063611137235456218273107047446892688466885263787480454213138706103129674195602973883677590148127686008526862247453760506010800722316917105896047526375607389491490120395227628547029783357482087710500354391764325973189661016155083301964917490147112873151855375791555522315010521421645337427212536181703123346695246530525459837585928482276261476028445930335734887014476619345357363348794848599676375329542686356709388285033096204659938014543494445461456454617899457063233830450379138399231545193807779742320029459916248573150058245974281034027349834519546536934460480122214127694888089593220052108650308482238194138373029258147308241677531039808438768091216563665640590404808290286151083297804275727302949242853335797726027938977582214746730453114522550450698410748320492763906366574208487750107605462312343476368592231820918744017613686904318382567830122480385048679576271053749697941971235711989555089153743699966443541491401102363054563499685777119256344273722953934553021815710897740792744090837356187898358557307882090613746598280702411527383259069623419872459992963280824401238383544666948406143453802608170504983691468352626636195363084075271663065508441890845663262879740531423024437868973072023896164793347049332014080553569513674209850449954263275893105829718234737627532838582013333486431120774821405000091472272521896409604085687962164722055696694356051178484856018553472252971514388969318930973384942994342879228691847844885696095472453181806142085419971237134823245442945114351775216942421836937120559504283384254261677261148464489571210157476128700072367007887294059755151607995638247917809156272903310951019597993746322261100787411540905156877679866133403288591905550771414274687144051823430767342174067474694045321936600685735639022840131288220681497242629465421863721917872742827990661861677468363421007721467230766873277009191391105402080578459430436071270521432155059529028644702205355465021031052932730086510987426829780906982119030618416181146409661125008809279874706340133792749126504558241170603190010853805262549380131086931671635958043373397968510053974643225634528476912783382337886370198330764859348582146752061626544798921219211609884285254847045771400634690272522480540803701462457391974707050484076824816100719073544999753526767541512403123734021679242232318605943258264428342633128160782198876229688167683926382087878359703538062146029840679064126972451074990033891383434230092799526364656288425963390498503050635045375370045345563147619405451731849095256201139509604091074932450972069030352602853164928337725537603110023522594576049635241115953704115881571877990547444483640112432041934916580705194674459835649311998755079699282067619113932195092785021744119523118781335915346418687630445674919721293470496004021616574019698386634506472119860049713508442918248693691341861534719983199559997252977015775575907037701831524043276570939497107976084855111634368605507221613217105646614263326020322702956031350032191725438365140198561543916871292759578334348535203860529742262603035492406927041591336729361818089644226863068272716028440660481617747258104669430433596104780689358642034253512319361189677379675229275421907946451013093359376433342700554568743076071541882663691569430706395857632746301913551865757502130461790340769199620893869218597570808592716894569012863580319995082613958705458805640160477001654584468629895960172515764060353319845331202570315925576132993041627245875488690875952773194629955829946464923150087744281646069652611237249846574736694429577922299993968241774985942444047270856479491720109343672817169039235584011988635527296623840008562293299814789204610867624416622066903796549384566465838618814054787728463574941341599751078316656989475211332136933801810007796282806468785191696431924427726446563300678066584084744861700747301624333623142937373680073766532717752064106627334301507503746558849965968124929520043898515717037521532240863484022853140981887363368246335885168933115219021534454312833139096168680781676953111724599137600769316743325855315832795604804884680599068730569774972887643820804073449651450946810159921861543650550550445915626152967066620114174952663540966874130226219304049093062020366656257619743099372857137038985303382009954382295900687293571599980802612567608847271410395620121829999294837889883876224735754663387214381112138132353547962462235973994591847262038263133951600298735974962684573477681145689698174431031566153801194348086654013204896693301023562160099152020475149983671150688582819647070477009114971808968736209023732299051297058425648240539006903873223195602608053155905320261268604810346346337130551559699343287609231892039095436445898113658569915225451641127478834095497066769367754104211912963333998889809699668011359947714054099668031514377435868497224920457343819435894904226565070296984723113375782352318405966215879615970136449052835879931971966757772768466982342478111888494278389181307565898055849658471545346236089094051513308708891750953038810988566058896632751000455641329962801314145195386198958896982194477004298623869521342687999093574656173284224952026267988834215247588387620098332993119675259302926411440846458849094708878202497380378072052883601535913838243768874914006369427262681614475886499482517624727370216810423536050744478011568852747716146086587169448597202933768316056530907075164698422914657006808440187268576196297041743041901049321339108582106737443339009272540459133301812557945983088149856182280202739178640456819570161857770605232999982180542217650545639321334118153213492834292803457948069065743522316594825001559079829723501585514277223124524507674259320944990949482647876037993329544481158044387757880988461923085882752398580684881518002894041038697710333945279741773355443214417842590406294683887285444477303722627685751065677817860653565631239271731747570088096040115655815255064779763386992511359404500802359088615608485159637241113991917122272644585665712272737576985608163240755285983669112951880586939841096951515928515022225732244337980458160020800623795184462280813073282140946052088214848661437490709358800942556978193990666367303291902834850006462483118388129799080244006028521513530831370760327013460741295516907753556985295102626542289311230550239217322533080939816693153884015385145804330040603407133192183264241512523885891825949749338822749780162372832111658450908392313657852864861105964683513500016063281217286442332049664243114368369781596948686402876984678579522972806104121021461578491784307182388178483277948140597008844355630165643917774285983289428995050335744368799205891296278459676007353891991926424318491462544874068580031782822785709839270546670634006849530193305247677584509370182318226688383794835263116025251155745114248243159141755455023184185426620095400395931811334230273052401965174021488878324926799108853123219461645991802314665611956197001470178307750006867015615500108814382250415539959622658577888785143742349585777084506432538956562263377585793922636164585662865626698011695948644369407447493137113616112218668098887047989878051009040090133561242851064628206590532781096561858632512472422725253754577220120608984388913604382729087993106790675884736759344004691206107872508528491535808010530267797617038181528708135998222839939283710974093538640007130453133223519996382836996272642711871780885067100260048969971753473951622723725074930436826339096211302447431079099000156878056218522574453797701857903791582973860638032405694394568709814114755765050853295043893577457217780149367626927688392408101978920847784133863993899640003453958721665948448688555893636489719127036942131928865364369510803118540362465819888488077823761267229513455212731643467988758680310615533561295238647678616821369550168001009173756572093230398374882915528246816248600976050454423459867383722686729313755237770596279966522076102672214165477331823670177372195602516580846070838620574682815293132813083339354071596508776336769674657738666525037821759174144779160206152382877019902321791470431045607542900793247789568919313358376881958613093925863237675962597149530445869713688870588301275742990877554486002316725697851617907706716373417800608798340497073183887450057502904827566951242391416563678211122183979079504554724909804343853843058562328583512925985064318484485512717360720370923002806199533387409453555968180650202759670358260341356820387119078472606860163102585692906475724713038131656265112450497105828400985753553819208343566454430982170387986882682666813354277551969899651221099339707798861475853368905239443655111366160575915870679175449196835359754548846823132883774651656016664722420935345498261590780765238784267988609970080283376950361145241755857150061471805044811585287341882558260870597043610858340632631067998122682052521712171729017712124093946546228288015091393203077802139501620956059181455444406328132645661803469100440633131336419082284114754703159256079927975643951332034729193898698965691471317261286884999851636997209137901773396904013601013380445669966982274927056025834436113428842234175964847488692905973036086026873709763070326013261361168065451867364301858686517419661349079911212870624579507595675067983598944135353323868346980849307127683738404063695165030012976619526670083170291277685550003762017820240897367896736535710752033210829446506036624627184351376619810722782152128877924194571642630958022801109985837221643189387313995090201827608714394256249829511164269711118196649127908199248256146923870059665918123767940351410832425626695370069915085481034391474066002093044059127024765194739343916205881181521694389001549231018545998768294458047721730991845511145548881102163255103762982358494889655745673295651580920449211957781373173092494199535407190041675151432181192164987167034569924978455844774020752978824638145532127861502694834473690939207682773807487075350212609681457684226344438747598057058404819183003166406882102882659379226353229085674013137366725306502810037314418148968951334878517743617175811591064273619473504305459138732556456460147074409418653483383379282040022815444828813686840754308514914737030772006462859066489890585585691860283391348800169609018096863781958213498421871003368453396803187969910367428936637731391181267444613610166298031522283822132436639604089014797180697946667821795410807956491770460415068441903362602391043982472194272596107237459186423537541887759286968002965598530946363424330723303026509475061107323346452772069895489696139872683037882849530321389496645622205226663914288800339318569199597461963125912691727520799830835281065704319561081737327540208886971154548766290028746586476193475516645798945067842205040427253925270052790188595672638102826002897147774542824926225117650324551128486025311831571150616132054321270678653297417565316416690083757940960049131662752789939555895064601728091822738848745170755785146351928952323948112829086333026718075269239442147724310467328723707420368515835029652229897162158983878051932660279515308664748901453970227818842327094089157717933444191395241367432685137235416334950341952428632975550286047742519777616154410939877434464436414417188961243261537134897430447755091541769361461796105877912312153865607321181083161835040168987862647659940929133111088407745887329235161748034255694007135561034617609318116679325504735187114597499191046270054082293985466027034265960411207973091548642899914975999769761535657928228750910660985133940666061177065791279622591980003400886473269251085602881698045792269572716746021423896766776020051926129155139909307445471402361178734754807399234936249283593065989909096670314348413862528302089268035802712506277417085128994347624795601276115748168009669938694833668299490250088690428974474832000402345549466272451994019612769907001969864363131471261489977270144984539937358353876754144513526137216744155206367769232519713748806669428840987828151139254474356670994978055807871260473607146071131187845504021667865272551533074501891844000746720182488030467416702655096933020447064403293622053394037093007577064701322289922702306739488407893571572783307592186441522019649859062037337220452225219512936441795012820219355562574345292145239685930895916972927303341510838710324685394653529825496619065880342410214677871734646650145164051554958286809697842749122694257846628277513750642251771961451821910326852786144019206527185087691578087202080844904078713058654790445332587327179999179022289105698579394322577450034224013361909440614400470814172631079180964699189889393629560251013821541673881423107678471886890269836300976596300078969230204409495800239142845976529377079082557087411534224408599191427134607625313575301759889750993350845483355415049317389011185734406684171587096189563657554457980773347090425837634835091962688460116088328451766409315631573054731961119323445933843562110732458261978445878844233667638260599990083327329556255313733189442242924664907180270833414354773773712059004059995472340231369519986818178148194935462751105980495303601798271920860358737798927343931674342688615207200804959259526042194668818345609835937668306119176872263847230356883754610872546943272887653821144322087334879597092653036735570375877339741009373219388036326332310611178622553775043680883586827512111861153752622786132082176536564199676627621833437049027114939387387389801308611980346048186287923969669251533147691807495656667345106701211377163570288008978163724174249934538478428694664590812121789756637948012016637124116552185405505845890809849564241083952237860012174692017257624190683832792640697627399929270496755445536931627473002616343672847157903858231190971691018258790483500734859282648486258200760516863123428946280707351243847620471360494145898296932855056808561324903488711537808351033504819334098186610819336348770270900436384475903629827675076918476303404861721261987019332546699534038621070318047582557598150206100690516946369385753693541231213940916410661543137985629546969446849282426919499221201807368612253557105045717504939612118756245995198851254765798257162735879583490843694834532298536447610052850158289214683714315788021427428408602121900755072456916693137819195273889489139892788045716497762571661023791345345773814550363094859271301900978295061608035165457377985682570910611546008529353780610482363846052279937400162082458866646035772245335408942402915786776022851281624960484382866898456509989712898732908271020001151796898852355632250891740471210674738460417519445573206000030721238173665276497726293182638305517805679620481051543257132082927035626823854709131240312985263252625292136182526519221726443676797224397166504695415110528847228042334389413842894052590649208745851724226817581935383777398017077402272028015327422832629960492597926701356737469521370237596474004662565901106208561005193431865644523177250775753344842458016855007316416719040105123891870596685211180880553528293635260800609944317335058675413938051671221375432399578337728037278513888435227706710608316319217996038022017898718664599011363557487818185298804958450836791378935867764621493731968704423331642666855595709047819822586133814834534562444361674921578811220637367978716131763750798096036196576558710382087927922966319938593021552252226333624807260395369342540819899845593931222638442409573180045694654207134651446878256342867612901701006143317749573820215589517554696675132462216183694563970352529621783011033163128693767131103733370944939229967134323105134150380668581525873340921644451447142908823977049724649771755026068867533707837395652844389321605243189186380075029814497867503270858954398527998200930147157028083392785620446888916505857774743722768280782235665358281991186367648911125579256301245056908160307312040015842590011499342265007748601503877945027532197355269714084578140453907860214936069497675261396713675150301284518634803697170329888808423917556994059654453384935507984069689912537137251983206382042851890868109398453135606854567668839747906886090111348481396757253887321855744486233715482115829173936232093635144748590357557913717393297602790128418650894793982438613298451780131180279195964501768574850276125857537410682037542452882794872314685207697225964627881428463789333300205552768857874011709836774966904555153471507092260494856511659601830860231353896320482308668541332149437500451021931708156480601346083508031244673645924509569560014478694217971356767657078479299789748865429915773540051611905324835650075457946493923937773738693835423590071964318012946400327821926896331014070866182840998081136043917205261760722515715480154385853329167523210395434174230049872917823164999322955374403749273977281292415828566980446839793494763365119222644225595636897722704756771297404278455590395537561768682353154159631671671047257365092119849310066690588489247160012836518903960539103568074481418575816497671852495048690211218393401010996366896347412140885762800413598480134483506381280877033099408126668604931878101710116877342466570813841699170990124089547145228546333222239884072109316849659826311590379275356714955840093499216097425601342436223990127370754285006267490501394853138125629105351564110146743456363508475836795467748294780159314216492374273983867574478110234018020226146792790285829036180776441883436609342494542546811399555771125252911088935611175102229767097298765604585426325925912599290803912669310354023789052313146470027606448432362427304760616634675393029997889030802549282740298146405307419699578681648407492129721869940290556195994543186428855893078728542456394091157761204141006528864242015274879033740811621884977421787720105809104809223032847623614165583641848554644870819302615402607464075545039632446515049603829286878479643502719910263158427507821848097149213603041149162009411895302974501531071604584590892496424584535038997172906751004643561192883776905604112913748536406881938421273472162715489527523000298025562823967533147678265211341449764778873316241925886964671148965476418759138904059364897866944097110069521690470450873750153368764049713465984024171558346400220199998029579585588224048230255989595869607801492422159808276758130136524131933228032058309852099096927421364176987891482437619684752675737830593706562362757805513762253181558295689375924091941700966333384959736984837336303366649939277658918587339392321778022989694967322550124841436427106481857686658152699482055728719809660622707436965034216960946235185048017376741018613299193468064072878802038201467257180037004800298996867636074857742342015232070628365070875583632289527590102667051114584244624357136508063539915244089658283590444900511215997247057791811406026854159035336886513551742868123198477465160032772681725535969186833050845904324976153186075922823185751426853447461122632866182824701251766125819215798483571112092299424332794881162167165931867325863295972901577877621883695564775842964468712517124952640336655373322022476120115593442687405148205317610909577800056126336915795471110269345428177925574071306960350517572992541669750992901836455781263664133384325758839505499408562132179861793516676373701689664947391006098892443949579989131918969729783243937966086604177307016339210264674552068303767498026522857768893133988025725355421923290978539214748373449035134796909783815790047183033250715020882396467085646629187025495248927973129622013469318430646340252030242824705450841847666904448664005930665836060236136632505002203907529697810904659788944131719377533864333208697115712208482621771272936009704774264589472595766262566129465405226186488671576320570487998173754509612033265340086437691973519913486784938684733575145284962526403531102918955448107410791855216744867193259045948591052557342913911032946622835886777455940427772734168033861874696913328094669452234618489467209185188613542364163797646819127181698551018856943722567042893757685710149892590909299781942519170791157317986450296877837772733959461267145251544284286817569620649105349220571070204418703964427024009869818560409626692878458692598323566128539741004133340326517114992959393115602496794391908861741605142087635058865716286949285493975848272768243596035665571097553455619629415919064516410780463438382379904571718723240727041995374576131511833028309242052644705684726876342373944398690915184786107293104991623074985102021108146879021613363842554767606699589210363563257320685201825595643828934968636796935262575592539704245731676372183459897549328140141021178664061581295046412032899124543385084036735360571104058170936124985220314040205167889197938423851571892770077053272914735740882708191551335467334143352764258578799072799033640407815166077672610042719561175431261897995161520174933735784276450892199667471297319305751244410421700637987765676150852908234065826532896472420973958712701399476374187215982872878356503611356227862823164800959799171259266187408871631193963656032151678130337568539519447825126194662315255637073781400775865459221233398543911890659080993369255365852274139147070966204318390727133831912137411488198049395584350532102292172014576546382086674615713286305789889793206736325243168909354957368996635671854930627763622672040104459365629474891408280853620612453429140483063910110208504441109712532704456800538446678877796387653215559619868029046541060518688089729137755963070660827078588531895521122293234408580679706146154671956758021482623437751291709695961116744143584373633604596686756662436412407403901261265479732935679384677758440239860886380201419420688865396966569604344874757830396090181628236007154846574863467018682030496845466878376110977402156448846791192588913950917993385722807580290785712670433553515064568338331242483285172768792110609236758091434193422346160081923050864604812298180733907552961270792301459060045125293139051668765272279650587163355524668309359382263893903882145253547671452938176120615148451085134973462923394095708405403619953015204001967377295405925674556031834497434150132933458428298978532347506406863452988093215798039181339745337656141780488361683211602356722928804583925198949425157488338247194169557350554334833627908095001816976464980446217156807725824198560672224263384775357673067369285416358048283269357839033161126912447902017699306146359248024749063527169946955781309572921215617599412140682381981297020259508033856167759530948588461620496620703140616463810984342786364462547929019165577186346390273267889371830655319633507602136279974184025779870643450132070363301892928647592338682997953303302056115685553174412762179282216015369357003588827749407066913040469450203594818890485487023968631057503074500884571716462507443747184384375258000781408519975081765515013337564851571947383132451188378961315189185097696834973293419314023183386679211517854373781651520671450795434377696711057149422995629776148956672828315562155796822008881777120013448829590038948557877878635749924674121827965075559993151592738886234706702060966493765032466952319688467152617293019385240086357701395451514848408363209586358188902263547886950554723439706386513936564747444931156915528747771824207224007145499914430695059159744902299400644860594257863206735474790215607291703338552059956238024526727171601959088187736006268383350956048853278046053563953837336735525767863227287441341993701767763476112913053272437523615370834529572195054773690936715027308746625040121876181733476435234839970576268610685843233094201963444600742442737541646765524157878235278794072640675017192410795541108588793341072000198067804449812806947118549020449611272199305177665965803285632593205341155237320721122800082545911912771281534361933416858228285436565105113725423027322356922016940810385222464086613415819667652222095007807350278877987768461399576296909808907996855670241200560623868872256295281663270262474977109139237871467698974023903302587109912650169850056323339309772876288335953204889641865856431110807804952663418065362726861987350292816838118956233014874019636976025324994585403471004125526404655298478901507465856389032374421504344778335128727377144912470562229185158030359603732044663817735182644115931214812444894807545044579436779520339955451543457795885936765458021418271117035112643041216014537375226213064489878792832352990169184391400782832676722667715880459778860057900702437552669103548277705466859732675052888101801447217093462413402245318887047496196644018399005215073224106818145887584753965395102029815101768380665789388663368694817633049000528451286381999809955524105377410905231593309944101956323763138205142547831663672517270267169033248380462818700728567087856142529693548397631171169291295568075112014777441124757808416480719479876090880546061881033389246442924208872514677359315397008848091322259041387702544240799154384685872086573852164409664981908495072105556738121627243571559973280177052478501353643950811351697340533254793072283666008708102275900850936434700812106836767594948442958114791379230860050974279497287467128835916157812949784308482029993962133839163426075983501688292476739268634908738172348363915211915222750500804360377614773946714216197543835210485171044600079138638233922036608688651543549959061030219178141790456761234896914825214908412273622924599985638189958674506443386375732802809195543020861562103703010577681833669071063869465254533812973927315746599651509515693161101758668268462964948492439678774901812053679174031159776583170145951272620033480260964447475765756014892762880621216974948510300536121505259817534413268211370649480471826515023208337030329894407469381061527297248264227845313258754237006107784451039516467086944345505314026091718699165261450533973470728131596194137150628426190508093060811012323870205142505402718614748651609921180014128092232742659287894730132135465218450936446255314074921085717312114520285270138328589109462395749424387125971079776280512533665050607234849551411150701077110251160672879303755208106532481136619041423645742208798024037080910405739554908769626638192416177803142948879025279542007472236569365976976357700067818245623293896415420156715244407024353044830524149285112144140340618605762995815258015973538868549434827215757861512903386373368103763276634759361165811425524185008681745767823194327764941234057893728432566926085802717057909240050402104006751423823734360897754133570859245144869644151603851616134112939357652099114805427754460622009330741922423229406271417190653619019107229816993848588326394727530619791309058172720016341661000931676938414518227261160854542962901286812670754278179771235371615612949787864423591499465440834131562369434946638908999761710460614956152221151349533191580474256179224124745718619348819662615645961665644016591656095702956062862840638755718823329283686914439097511141113811631778588707294446857765254260830842175020275781737770761673378153899356661520267242670917844722472843497904533724497216817288977748542191022418314759330378152452193077613405656564711148405397626188645306674330151880197992655065608704264069936612849585623303678876909469953790628179858045041344203400481949753644613827625547212359837612051923748130934955991388202482048310199498234729149353800201465701514182006664914727274897575089119451847834734907339710432405506303499092678297292302569801897826389109235776880283682106293981836978192388827935077039505168138198573121167481502186967906051408856086496577308496460124593172098066120276881134819514612177344650171474326604545297822567675465146961858556016597105221575748461350789558508992036061978574156434226931222190509581934302138312713523365069853524117809986290774239719376631804525041538798421286791054135342467073253141881303167392351931991188272187956137230803208388685672654471109050503650562265383588620792493683146170849299335631430917530212482788686718811295334134306873404658641273282707391297457150304172961221177669014242329261141355893975755005936483049542420080801752195843411292704834636747985482387604574537441859952979356032304071566939855927575177535129192817221387120279846549565331408546015759785900734011130797191576230096329901980804858078388929022640541470224170326681509924244185740972322998364052672670759077736501710267012209681649796278882455462408226832908102404186629692864510484514369991947983172017100405008952003072631129156850433284393533657444154087495205433296740553615488717467480737374403490313812499062092895885571007582390725538905000579616449597836919566762943597180733027771613983576791046248931904836863162470338262336396610193553789860031165650785458959772003456213968397572916113836017017599954014204526970317027486061727062748707362484765193995657201012741825719627716835958230537371966697031444800397785946006593989782852730845459093708194769396740496509076688522865714113299258935237970037099102123583331111962792829633242879579572415698756178991277532807878937901453512599290988601084365595631727370626801944895123985585866315666140294014096249305415795575825741353397905306122054155514317979357523196139407172872512665089348969460033089908633722442269807174496400195185214005722970908857607998281450512922581204575287568818001362025750496604762813023319412899018985026614187694886439478695843843579840199303365324041300504111603890169604011717683413086833410343146722396354216818404908457340268101602666096455170562244571898501476714693845463653396817333357002727413281346523996121775792166511802629688665997979306710202604709245287639004130796150005459628188381217795547417795803429310893503045395539024904261741566459835512583101607662055941582454483696645630329482585300881537393561757268457503490552191650103185766257731697647318745446478367534093627495420273567675737708455404429929127946009912125211724258875574715208886040251382913423299393471464948840681133358838671980957520439100257819158122025652967742570755218469160950940004244581784101828579361065306275625775257254348479488543473999226580505012806529846768653647137393211667494529889623438590084158654588794983734044912094296401940716313873655371828497759175328862492134793334175821461337943112765787937212384128623246271429372467190046587868475261901046175602450367683110065737227034142662984265392166057233278650465858884045253371387039637811729277934400918124170859633258520549681092060931360870054801709711087268828933650961802331386700503346637035307945349259689534301930311785667301313729844454556804652293882680364064702800127561239985279937734918416688691593289003539413999138143170261762948624693812536021462547915524730614644766086028267759963721049899084770526391673385399561732293195647776512725738659799080098544890985525599915160754110576212785425398533293260985131886218822014799001994909423904461897954172336290864891044786483126869362385106019086528643140679020611099434821429242305810194211968341680781848471309136360778525433888163823412447177499788121198513764080011902816839763900759604993112833688220169560456982698701784638039336522970642344070802723948879481029977126151855219396945484411949358397431559394119252734909224081285857908082594019602397031924878326869818716577595261014582014763158082120604779140275898570449937249450609123028034650084019262827102717602607059770416787767524299991629547296888042056125793733652915124708803700796001536456597244520794869124416726186465487261465314094056633794249715654843890334691353401626970991382215412768194343606924773423416953253435371241104446664581283671194154058461131135923393604357878918079199279657264410995655385583289177004424489853287801812951583014082942655079944516241171286917217941806703174654734884831557968024741627739951753319456072544449453415627402652189291544142377905506563828353402193750630803643459704076835136617879332581606351703193395750941757265039350582197043146492312835884177101511110623336965345599907589094803847079567836091027074984881096556356367556631062281256456704844083228947695794386031410429190288674694232701773665122840175351989721087162731529791109422753651465363211237667586916186304097305220408869061845087719533766245107390624501993796025259034816122904712084103361178264578988464425641103436270448520363239758180737263955906373228998511799625085855250063266390426655369456894915570985564530113166931082533117271779972841851449891755987819238518728774788698404631907058729067786513641770428316624656405175708489738604274201097800192295007201749700726818661022279481862069677368199674085074370578200840287795515543661834106517780560132650197254464765712922799274634654881263428284720681900152273527542643017270849993503565564324606391008511447952948983121998585434481337373773784174131607168463093979234356176400848598133549097275818619815559488426493909702197751029317376644305202902190597072906536070055398707505551523208430670486083166808060139318624512802885312553623686282533990533976786951279771768247022679449084609145491653674270804643261917461157785066648514949292300199208165809953102346845863772416275128264147092810840568011737987890047660367777195292204718392386611152943779262368673955405541946832740048603144547449684698501505657097696730557347825351279855698516376068665323619863826662865552489780948322188531488963045819640154013190788391574808850216744315120493203541839809899928799591617995419290359889467591626098409927057887940112868446098391590790434590691734994364713022210191769776387997539043090822253448097631211562771039791218007703679537233443206906193122148323844282657561305377479392482458889593568365177273621174546641714254217019217668985554036856351158065482769572627244024946642440336763200036855653998840565322256649169753976549251661571292583232492240668318431028857834361521380255528936141893988019661057406536020212456380018986028519999322632793703290185399784982493952113111578279090101859068738121609054865556344754337014124656743290500595712384176952667365312015087723335114546813778049077861703176684217758961523817393649975112453494284556235765282446248953051442095560445079219832496639293799696710609361569076640615251894699563698398791579757794722648858265073077896661791453796822057425900571586045622651400853467561568368087917209396225489466156295721319950348499372925035902753378446105402021623128705359461579907380576919066907712689649166227974819546951578543768049669060014006079635919164582687552856040572777889531304396068617373472100963987517893571943435251405985310840492466839984086338580915902186453539752696525084854353865301245379536750146162968955310313180336791153574545349820490318244126676924381256338587811198562741237446880579093287861816315476145246538613904684455152732417485037968001491756440355447193314935784395287592153873251643501978288376232739866860285060863427086445062784717332938068383325020327676121641831363074808911390715180671547731535167485492819618468008680460735031086073756415822168495324074793297066577358518130973167829560865458130873813313352203723191148303494144641015391287524379862293469666148676030553074282727107127419490407099407843694054573893665965551343612667703884976724693422938923839557718531302290571582551031631920740973277244113343708261655970608807228695839127382965509369899380578657104774771439291991335661035632997050180106898195820616757812590408624702639180694588789923114879857208690041619230528689580760133401688380331216526747041200084127092508593224342161751156767135593465561724242552609526830023289246653885710402893582351250991991836306502894652494077501786566018053072276295729621101008776769963592024924475606526992142255628472886486769235611079629025812869054076164278582885116942860814787052081292993276956436514957718005438322333233646364019654123366882686970353090211506843137812896420736183779348769922185545803564599321170103084057219206050066855498085951764999905832908590821266426346539087720051005005278089655847880777948329677678967941970954510586643160246393033508877189097367895258206927968524399554553695732558975793684282843283624592382365278168593643984114529287403092688618736495562612658880015832706619677180345822187215051474456814511265343369570227668803118747296043049363891083754205721799462050294936709196950653331921512081854611843897266991336972806264124759121215859741872317950480066739369054205084605692248649804711778614138536415392536460004414849394505973816358800861785615595126217707192649172322849525514473150099438567541740842755158993656234838896946506939644414325650165800229438124514782299887663274233142695703409956254871324248101382788200397404859163901037911792459692520150252936131537259291907221669117676778004968126206272026266321127374251666509827486291874233435719451549787469704353576240885876757269786013320683815914899674878713445926104485689296443675363007242411442957743354788833867011286024339160623563092455578398616065964310726871672366340094510450163833969060125878687034812243315440437027645365705334031882806288873439838183350992542583816228419051826753909217982827031132206915114340757253822804155031868632385891368874634119423599412015412053653167314234329587265882711040060387817539265288994197642512270212989429034295465381389281502257828631471848740300771314066200734044711019151285609295252118525975600186761949966601578872936007911026622187965558539422154087271399898004283017197617769266202102747338279543747001447485558677060349283259030353501991425090386723368631271775914354729147358981916204608580422933524952907342603288254440474322637724279772350822139246662509111317372817989700597483039954774139069020001812231179323427594067794518173229460802194625555180778700037357113989607356020949643394498243691080691392208971469950339299177533887224032574931021083205564100867416592424756210387597169123482508383832429381397270626277829790161474213001326560481707292340766214645541933325118488726691976162353496786186513501203211504057411799574490449014567667813579890609082994589131611607132349234141988226216251503910131161791509382077725893854878429852203669533483960918601655780593893571950212962250335362352159912898543986307186705191961952915251533112405757646127921366031981114186052655848394240389574414089790104816677197737611459249232627870149053881190342180545491313859408592162616195594819916830089851695811106470275412006299283611230578878136892576210134330064728367111289786063192630055638876883590377046771380171547255274137379547475787048054539031186477103051047827466509239921635730457308837101166295182513357065142676761456090215092466929317129423075904649388690903552301473156181688629329650242322733356844776124440849631599774887091827469286648964562092347898618367453487614115890455242490197374978779840590049824219767617296365730067153964335153388162476125382064203355226471487576566922607443397588542719321722856802351807756873853348600244270097857469854561937439201861815302952070052775782351624514373815673811082697561660696611645188642659606569629526203723867690688408978620967385217518019752000375787992044043293600789059983607386517040008310106302543435095145221068534170599615678219479200088279820481403368332891571339029862321226572350601722154918939139557844561060270633271963757110272942704703052946321400452949790235435893366222411308291258872839000280875178048782575711932996239300473271342238439790931894066533930304562691476255649962392220879415100527890208803879527594136668058767228274743177764565888120151107659110994549306742387115866805432004230748703011014557864281652836125793238755724952250715108154485407966180123286741472035714579080378642168629375250678642986354106202403337854967664669662665012745018350738411154337330089456037753994454328999374309655725185452327599217095719413700728024026544359082576275818556520955249660129669870787775161033584233469789862111873755850620013063823279138816723580375067415500344045914867847546865021303994082223302629569116565805881373141443787784856259440404017223752812471272919995296110373573650903356809457015794426792125870658229407089493976494551933074472552458039751333521100008446241156468573891768442748009219968595295770339435605305773724703215358674042058251853964474135629042688066762221185844861888768956864761860845982776811209547142010569584754694151082735054188584387765184638011905906615184517597787444363476598927597449061681456988934408081039694139357936173508361316232930743206126333800760523820772786469793878672371148227103838344972117312774928271736703085236695490911198817328632108890626826298399434413372751011147870525515609369999221004217757730450052410985193577115370855565966503333712063156925435484492072144780729572218850143268448208385360008168131297750809713133949771791650766380498388079512415527694668391495839341300474561022852933587840966611816484391102577490029095737081857043849665418022043885276252714845668696017288638331864547970789433437073083819396471852060604405758721410269260290324328600928549011887556732021745791818028967856607346035829244095311818777333192596029146626666146468406249009177969132385785112852556546500218969655658746540474210494605554999345790718400436791283355664057454328456152711115420622055374692197607879873187919245056819861657146198516763359468281414704449517564384537121807436060418070830632763601313562200063290636468128394769393646242271091968518145284735012651536219692442069200986785561139200929886141345960032917052727443721227713027998019298819238139942710481200662433714984097737912546045716800007945281960364725447731686250659540343523289765247663041373976144049377887287332488905937425527062652032018917362658197338768498907627504923278567926292533161035923012338587361614297868373883052195779151535495011151790514629095639746141704266337782055920447352109477029341377850731823151271453737684169149329079695089096810107733743719323272465945422794271343773255886709204892469001380654547479778231062907726672594439075071570426435122075639574197132350335762261635240944373593344804209068215798670958760463409114375172657062688170681480893335937403941763635515439739363907729511342091608709995710794935851532212859888204788246972855348640155662345648438210715665347172102371201509007629926242113735678877553375877224313450848140400036028604222326494981587834123528875738476466622090303055454024329660351164638613989155561088348902191136135131385037361485693796315086640867049392525997155029103658744732057856129624612406590077446832779445508707884293957987264129633644292096696603952025431046397869770000974243162272805933923889390727834230859967694426075525456734083810823436272050610974513180841951329444847596000033463953615430621835941693009750139958563427141244070223185599540249133331929060765204373829945972034637740783735822037777014285154471002207009313287863991488476999222927468194527108029834286482858041459711698377523175908539737091839729195075906651109643962387082302431495026288810568679642068190265655009402297687601001671334362031536185820677481160528925646471659237258982833462989699953030832278997202733381806266210178053364613806043116254096823158071914747634321322923039813756907904094936315742876380875874608206408556498493226509285679806534161000001491435196294478551048040992073511141904988311305700879133507900768203505887213974808763534052832785915442111877790460661417901795713662144593052713125446957154231791565046881403378530880012846828740454679240335949938590268476984399816002737685703845136086934134856735287911646229858474221665650579815233892510996983996618461747666924728429544570883975420016028889653386202203792745757451993646096486747144969891821557188047656121213053897581975954282420859025982316049584697242906795524682509603592901727670187411629056035462796609831484381571982858780973869568553017618778584477324122625311790795861258134686397079257458608271741635218830321204814898549549060321234892184637963505548557401041130827961176291105094010834901059370788980031835272571874990129648915450721159723766182344816300018971417053340129307469989354054660741083293527230343112239522106182478922233676964702244417602209992087116948837820269421876192910820287101447512721171655182354163940738619577653731463108102535417278806379978476210828835505474995701537716952555164436647392208690201388774661747892616007040678875525534842753288987785485510875553180296948561358663446527529081240092851745178478689592926854224887011084418474978098389923472587812988149361973421167750542528909731877969405992802043933701739399382348584826835854916282569229818645655198066315739386599301263901313149826401559268712505525424220462376936357406024184676657184802646607616718720831671631966937060611105132524157031504833914700913790246424828357274889762472472816188510271845608174499651802503047964614077030618500049498137977925707082570178830210525162813720308776530594408909082538273057106760469693032842253868405206352219395004209928426588653641672351163966680033188267970755409824246599512659554605036784252997006752833549989891265199561930056491124097839495289732744199535704657987954309412187358264148408615065331248849653283453466339539907276001297218458402072394515931194712461892292277730471748540316471247554834296794711894185424830331753534026216621994725195155541957478109157898262393864442239026996191523563222909823594549569234982306068743302221345768697962684438084994271654527298526549790433359284048764413840963086692712877224411546287594708008688319068618451604580552827696831742477082343561837360540474113042794431256164788718661007363341538818813280568218957796503182270551845963627046571332356969564308971921846913077928628035406221367769394802743347318232227671008649421652702548325508338053044417484355175489149779950592870256549858326778351785874238049837976596739826212853371571479343906798946017361196945309282706327065802434184907761046474549725396384207466307657250827141150254963701892258831931144188566972546850687109200841231951042122461804194781714196021342412104613205957223504938124043791070512686240490278903706419449199773722410548696635326414629800680173681244628214243609067044621609825190195614138750235942653352083530660824014690356645128581420535107271167750591617113584708751311938115710680295656630044787628497215209243371602542395410628453850177600404044689232077510504601843023924449451495238396465223055701135225945592086629467871837443357942776817083416452090391966031590305137816844815239058435361422611521400815264044240144779883248779415410974085776931144572712159860160379861451882131874331311316190945244931925356615621299121288034416391094468471917076436670941716584405664417032970805210832722609111437848861569408505000126912835335479521031553406213916336442190849294337771393682130134678383708419341718068063669757242442149025346490974570115752473318450226418792645117168723425348120882839849835397050451721646740310281998057510399133118565637255834596061233472871901262586070849478717387876773607169468066803521507859961456769108835291108639694268521680410592699126602988982970614945291967343076563762654790957063258842791569032716097415245988799562776519373116078426300196047247556763343418515088130595539727103116888111232477406851946178125047260724912754756919829253978034314307121973447243883408015138713938847747732846365581905290155448930759148834493655940314961023512984289528056978362901044629256662448825307690967382348916173909744027139491258223082978320206305248947374798500774031316712537381467807777017047905490525844108876883331209946720900892966799931292023150732161022247848557676119572760314728502155646698233198402091803851358552597299142132350840703344897046523150832383213364440052615116392441555015085775186464461902620333457716761491891255535948281175104179863615739653962077312300717487913555994813079867401030368202175187875825288523023092548495697223738473625030445702599674765075695601054063363173673934308755163282664493798371679047166371572905086620885954717905055482856717233176164151024440192904423794564114283323151758997820904836577854706888175399182395705027642308944769315331653220919691812917118394224115361867873120146341867513629408945593452508223513711673602570073868752238437129781853310687420409494772804765039320262596708891865495914369491694915112002190856512366485421700280623283140819769110073647985269779651978234450284319807536168482219918074115188749373236617720897415829219258779681590971332097531270994622522019063066173536065631622173033391241219610720782753284687391764344888469555437044793902673840919015636825611792373423867610069764242604176508819282097660133217453064286295402705636348273661233283467681838153781752183396970200237951325309271803133389612138937263790703995182131838683448691474059825137283523464712222117919326044940050522357418899242133086291704424295493888059158874967744470337983319808042056829257804496562136521277955505727130667270620654984099604693404642266916318103017224467799347662737096187258406627576088856585309715578441668708585264478331975527227146380398711087197157987597060761844477708852846091861739522899547415206184092202201442601584916659643559944061590455316037135306907263310565543919317044430729049145022445914556959624412904611278593494002663417515890177641543129269196232544051583085964562225101668920089067623134576352119499470920534551923119375724391055773662621731042182148133599254817066901566445553022215016231273835489236866255287056940826918821815212153666746398968700692604135937067659298423882600040912625214908007162388308655311525154243179694958824188890016832212719906543415159971211121070551149675873416192645099331396885296568272407765676971257084184001524501143926000454730683966193096239723566502872935542548420397500822660982423016416565877354472429646733399120152291612826374161289027704968547345915004667995874112637357275240255476155948535628259619954448668900123763916563909429081702394424352870914726557051551694352468959582717442456579471493371560523513057362531878006065477390561442302777550279969049907446966432014487389070306453580018561243433696301027170217670740201228366177509787956061155825254419687511979100335809073556136997649696996038023766420719576199140448590458868392371901308965049091585294783767707247436057515066462979922408502947180137656175875023508571687347979217731769738633973596934286213876145553524685892487162705710219316628202841294840239241761166749410342135485811410279331310443395537790281919455481348165915434881747934539756221223374886038258373105328274602396803420427375580877321861015318920636482033675354527268184761678275947548215226317023041902346897459491717766629075248721358268235610764665305410539459829869109755988154329303415382383009293674810271981134416958933611988971690208550925994724929127033878207513381251976048318217620582316783528435610708875250628268336110436551454975767056286254215385101245700589368402794653617795984977317260650698796195132266980319256284295080439812883047410372673897324005828851019890299465294899653922786420675827443610643645789137046087882613574231832943573329693992276417181845167452487041054729295392816914705118602592395434396880882597846976391706251310257119081318329717031733472848753489888105872454531830196515851512346147614268595974783600824768307410108501499164685218592041163932047146504704435145686042983751227114573196490744893880129654360256944093754040651267801048481327097122762720376692326900109387757729879192224010457145618915555097516408227399675625483447246087482858362359471971259610720938330362354633962651786493692250172852264301722413304773178271385273956871652965484300497497585487621160126875418672633473986505586831634014729561286501865869680414049973110608113881297996350294075535828089018478805050112917204254307014477607643558592159196501232802172727546244026668099131054820057571222899969824555938337621657374864890692144001307889691260268714841748195931786141762879620701678744330664905806060903816780695271199229520650165793691572833683860845027499914724712588092732555143922563319311444916571087793632233220973374654355951599054679276504030016197582426851702477532619819057701226918720527187658137899840601453252026489111419392116711750634155716640010864617690343171092923974421205177097869692985577808884797964809822534815284044114600666016582483120249932464968327242537932227082593785717913204324296035062160296866209831057254523722870249818274293715714780404654775681480208745494875968289090326358533448012928096729487886788323682312860911368279781218008097573255971270111416102862961570083882921506286030728618347569012247573257568662153928494937127473086500855818163938921420496734206953116511943904230688441844075079363934547370161255515481064610946129523789612154862277825529842780059254007902488856958303776870288551768155590754464519047936883061710932043238409036765933263306037663388194342254109844199885212664597407341221142762503902399045960621153941945778849565996956504272617682036918414599845624328876750685033339467666976645968425889056512376869006652630612245672379517834354056607122733020883138514510379693773706539426244521155848354939155715419785358555806157516655756004417074101600333362257688247228779472612811756408079429118424679575823227836406709340252234604208710544538870131373907089859360174420789435022426429820193251123722319226230683016636073469130078333505528388126324403551537967906911203654261579372355410239586278103058395345597209279609763283844602400252477151672059841021125641940460731726014769910410873485685524377073521407171438958301449897768385812322060010222147974015917749700678753848330725260144607021288461313525276755810591894719512442286214322092190064938250394855555424248685794862704963563139228043443576277019222708120941990797828404037474306868113696654166681752344437777990284544493618323709641188528292604791865414228034230704670721910552264384695682577149876582761188003664319087674366168320506595122647700869785526369709439302957291906275429024569497221360755494596980026727348768763619189590543398562582749301555952763870943465192342458199282674816010181706228826844373894967942790326178959309873298318646291583834388706596599385385983860118759930525898550640101349360649456691285802196322483835436760862085124709359296717643512977610724688607264100512968443539279948351313449268937825717616349976109136642785319310829602746196635950356584361070029520257961565946496120372309282362186474850942984151474356207959774831930977557864854614086580931768042667644040442318931578623567448442113144907854723162584883698828708030464650263902344541361415381962533096782687457632891922461326646854217846274261144166462033668119547736232202602740409492845597242148714669438426526383123437476143105442374033628070680013620416133555668105471392575644189991204887198419727707423384857397056002260821486033102945268178528231860946699988685479847337831412394910716393963210672398699190763741621480240863032104953348180802116499412323794417178797592704130864313833866656290582496744485946781715462985289924477928106193754716170859429130740290722615378212650812727105930430413212131133872351196500509009170878471814571369491711460940972168856230528264312385845590510248311673651595127577430650003467976484834546075583743692726083772081349536698922559533190401099177988926269038913102356416274756387573916078012402533812069564803918448626981670774172138880540447372518622874616535392938543424684220509445358314080893710562040772962627748713262660573182267807629923745102593644948712891740121795112515905901094756208386223391234957986767980239254806870165193151024970846105607467909843385518955766675819572154347511172085183761245276118526840082046456867253268517742135476560270407994407899007305139027360483153069235664496850677215083143598410419641716792082392541440083286623318933431155974970223129469306870849210373868832510286208062288643133132489465788375658625520753672250063094916065350537797912502515339503772403417683708976078658591837001444404864141885599676205718054790520472843989470083440340596573814970909516292530567570492175995967407522807366225900629290883270208663115497593069033779332210490548873148664048635280438246282331910183895577717526835095711845420508558640134629995851886815771972093335942617327826285168607970302464688991137687500859414495569732596372115942200704120270556258693028357387965949278557617041420281825986744123004018187054051484956552066435967284414100629468726283702850409412507296320782965471144312874309629003072782719905200046274600408556522228144912073441656763004257820981235312213552254404183175251969378566725504737008158010248371616807655227497618100233999269520088322518233884530900006156114917587035032391675566970247059254711190104672904851747524000972205084097845186308288402030467061536195062338013875445943833128238304804034352342880822945566966275681097211211818265926807712462048564559365976270749717607972783831458158908493122956049567919715145746527695787606341524976146231677781914128946093986043208301222205806582639227489427957469216288821081933773832679601091853389773004943530082675780640479045999196120909683589229783114396670547735926383063942260259439855774100547332498116748027206027786085769972720073239297766861319154674127259790530594895829877736478436256299215434673025778511772265829977361779183580326825880185851998404332973462761739118753523518885910679909359563349739668818990268334467263027032629710160779823566781197250850863477514400536630021328430187418733624970633663330768169278971174531911994014185103269520427011469104783239350886148224117285909906747001060238892837046221726466527487064403847697094325530643607113266541798630230567875534768221203186188166356088085376029318974179808401353567150997116714827654432459283882123094842803000371290703693878536306781888916814156188317691347235645225244339182362753386916751711964413313745715691436258408803998993458040697930010420363732180679397200682511696545145259422605390470457449739859942514804537392769128122848481653520148959723429953757051116839043074794737356573229999699731474141203024827733757728219126069088129508487822631365784437772658293059187164031435275780891904963365344240208970318408818738702999765800093289349980055210319297515979828819557920899312293220756384421861693559267527527183451269409666600367662804593646554390151750307607274148899828249601891360298503952982296000561958436097539261487797086060814364856604525381328367394016387450236662930713071257510366656390460494135260654818243659605224845768610219768688600350735485915040460380356065321795016252731270325285104206124818214218856188240828190144118799596116965912394708527178517863876768122908239318601033726528561589792520357773869339156349491175714511674596006737323704561816613174597260778172948883381724342977199605014023851922806701095806317034313162240191969625041934921842808897525783325679854036345816336668106405985370848792588748650333397388865503882324202880706984190574703448344656296209719182973774193831696155818928248191131237308186365875723038790173111611734718756031769689336328827017332142846406316461027828896268445317085398742498157143319486840098085236826827179516585273750338806940154861325597010013054466908787706640194805704589881409921183346617756848810779965635290047045040264625272969163833671591560584482994473056452827537794739363463245109103074884925124039274686800375253495035712762618495307022200980085329452291258486985188708071363065592007750556770522437269612599004994744980269428746572534970930142787548589369594083848177441319856259724265520910254076561180676876511916429765245603397122527462444693309308972068182587264271282030085580865139663290640883175373883805120889646660233845487813281774375915309637475068085047428170575774674475889739834155923418956046005885004760487576836125219683269111299439359534267614904211094892198795657385467653434367977310746971393259855210226395508182634526467651242915999078900597752048512515419793512445869982052177225461050778675048217979995513955009918097202863438514961382469011397793067934854837928616939083084323238971721681305189741054727221136052288658165936840282244075157095047678186537673751567636661723794645992223059516553134668439376764597124799550162199996152519540390663892545871955573623794695789089987960637898262172087538075494127949184758443618395542352205559717073888769448721916000806567388824433326441771729832459045090872558498742921438008576050398661530103008526983330402210950862840774705437561751066854235426731351262067535215777944505881450423565025224524761303594469681823274207787849198808401351305927174737200584784351807212746579518616051591311648210506122222162845218144670762845655321382002261234305336842500626384689710295727376830769465893713321180263204735971826342930872605326365345450226176317467530287437759379824174268193740225229642709950929907001710718608792082363483759006101957248472007374923646011533939736548379006396527336515203591677285862799695993495367940624807439593241240897574300738906436600149795527366825505736962806861881556810320456105339470945237502271178536762994183564941968607466889764902130214737230156367318366034885263181451535678483607288240912470126348619524234157753125724436297978385497198657425656821127353723634221026768522485278770086809065994911518598541712167108806058768478284615352643225165498303614350253900164948213824939897596483322417436399362102160970300099362226806231832351342597740960700857018384495179481804806411061034950084389534563358759503493488126184468480724501529766066674150137203320158240505349261495033057066332482181551459150195129727562231889998791433498242636887159249429038284652640692328641978108475031167078212424506393481000789675689685879932476792119968463518377849565691585616930172683730408359203042812026564854744122372194262081324561094828371933012979408188544220329702628883249701472821677000285167596740194932068941500839979200578255294969450820003759506266535192985190203837681470123289999038106299422719936954690555465968337175641157317847201682187516407063221491031483121735487224222919917135400774749338079330880074545777267602762840786441304695511830839605479746524631968833308411494635541856169851568228338754493411658200708388892000210766854569854362529752186648990475029467929107741946110754380848882680416430561518879355783315880371544289408603919238619394543463491265837165945068648959029624456872808610025741993974151597932920118686710612716421650659163039907595776645764587618802383226492774989222730637671884459003158672546621898904693167680057320264578996397436117341220091705079097782563905567962808228439183947914741931450735575502245681540569717197700781108439694416961980953299347088419936195832348445411953040731223331065691382857022497892662134509561748753991030710439287169514361449240989317693388346407803739314287902602598806381744097737678619533461618657125449990702009294854639996703059522740533871076253967647371733723106307924099400554286339283189810837570240988800330578575207075848227256263853985344980910872346412472683729167612890791675158457773597151558599993352855760813115564387158300204053984961236246770490170787668011382403030473358666118678941175375675506650554171916428756291121204120748910062732772564885022518600030365588209471574099704876744360407064411434656289766974345639560559856213363157777460378954550785333350656906265787028682373928412294585343877030336425377883427432467891919544699654521349938477194629685606317063764008177847917238509471288749629008558828570681049301957527125821707613332884968719027053822653747091920217437021137723660181854532240692299365993087371351398729721793294874973987489529157786329997386870549622455669741570446349208232435170567243174468912308340163381648161890604785752624855558708131278091214237283818999664551009668188212031953551400185554258849488313032202262973338888420808600758068530632795286219352551872755936689011633569088361074130640652473921572922224860966572868182464813768214029776125196885925789131501251837943478525769950360670414053148259389936837887502510768226346815451421163157222010162829904027530982528516683663643423396419987888731529492443906338896779528742457876477097175552362050058714224629474777611625695172808159766290236249879864293008221590487144681063842893625699693750829304850624645716930536791429674137874171246950381765628944811700365550606457037666985656891503261378463652581784411241088787293237060810141089251868340354649218452194511888715740495506836223570151542980126828765312425530312955484471876239858187077166870502943434168830224779160711305461837213692342615518898229376539546011149770060263357020902013301760298584554309638703114517223503758356838735514030319514784030925196221886049953125858669900314366087907386859322250502894752548542927439407502379549205111189900704604399907838503012910799257863057352003443111437991786554831951260584169940352664536424381321912146632381544531694053272504586272723233145090232093532555330186357509002852906412041328703911156596924778148837121163238028319398068963728790099869976463372168686682997036544958905327842885171566443431301762186921341934008907666726981473778041259832666951165883177284043362848307276393805129326139445461688215276496159357285727243271761404118968757415810520536854874285112836172426308247288158949374714450975153010076441607446406882409633236728438918578521575214859896001502115896016662075520581939734482656445644353364802444342486685751491427627120645936518501773138011642874854921763236601501525762821686255217351963090915541540607637878748782551686427388504905751342954761367947406395436615661991715596191170293153948016488820304385469457241289813951839132326717884569361486997019325806087920098802167402326515270680853066398581856288330797990257511668349374320709756545878270057335218682891341277914966153879433997221105331912937125113506480981819984817160853515008484926751386549017885677928816909252575940377633541893820079056021844644893645689544061958057021284792481127963175171755492450071433542639341061092412781550193902924864541129051960643660984683298278491543466181136963636349894467591649528847424303520569125902208317828780210484846665039601175216236153156067430279743571310017810536180286321951726492752602245645606964563950777216096997477631972142276076407916276926833974161332220252381089940672276701383261721593054540568228251687750784983043651462626176668445078502270362216128549783010534362116711104248924461538740762891552464689498456180476057748260946486688222413198261937436047542774726597063128614054653750068548828915389346527010901195705058899969551509616603259213375314080075819546051556051901479230268087032644441702117856105754673891401839726120203798254010417878681916478648766486353092609235313168310416317446576184913409174548243090520208089971569248744483784611862249562199028021210835979194918882297422278763467886406038209441394468329657367889086994421162141480766858793238492769004233054959403965560105455025854825025787690884782570377395060635750848062763872772641369403684389396988926441803890826254146087702229026223873746462866571806505588380086561592226466483761930077517031658461857896089434709804353030181265997735468645350527257750653551773625836837613484763839734812204838010183638465456400021721170120552531110956747603450277892898089776825232708757582969662483523802188564826462381751052992500003557121516493235889627940628780077785524190263442377796302047082213018465757316056060335575401667704976256054237335796255663375168074732059246828239942090640816098435108522878947091824059043616240237921353055724840888729257169094380708136391510898447517728582857547345898635660831959231576494718375144014782241894031699601797865171207362322763689264066377338239944756019723140764004837235380751707194951087806909344612529401014639146784084463490778042741254707513053091660271260244085011987714871677548896129055136923495232017856522086316604141267491062568283494029663311534625310862088880217431834199403931564285553816866467305856197385413381243223388544929804275681869027001232179147891986285255976461593527475563824386034623989395611041996804639085772703801262094499827937955593650685318616771415013223389942164634339714479656708840256322667502406825867620763296425771108133997496354692575434243790853474945425976142007168996014335894908741099416512418974235800012211088574612872144199346662299489844374965145903656561168013971018074440548548774000308216261310535274594924952668248178892113055406905908723467503881419895142953508611748105016678628508781649281773425282131440685137216310662851821902156178170441200426057610405800390326602286473289000291341751881610480713534460584132765564952865870520006450577295353551202516594943525488850871161231167397010800784018617446624803684162238455281199227692365549470229707845940380644078809104975170312591660249217063065721766040868545370936745675940108346814088416954473089756408310394849361572485376212742110940339578089300107306403745306231054601464701745904468594637449534481927477228265586009412798658078437671193298838515046888041295725197105018229843791867601564672413178378278275106721123856903896539053055241273715031880094101684093971697784601960792330161622077900166187783138289378748194819245767711515776536612049552728326226612750616063306961621463470745318536242989575342294201292143042224434594823456377579928264530910801926312447273382745386646723835445707412131664509500169086551945259518020399637128646931260428390849802481249163007419281162879121284852684332841901673002690186012407242672323983808726884757373739135273606057375012146446718947035275102586305809081335984430528887719547516186213418413483759237581498574413869626358405233011444228577932108861719110167821534008107424393675346457302613732722931562193451931703427634135225561450900622740531444368530194857986438490618111120049174671095981493454868389738709610314980584271688826997985281762567439592819662429488924942473339118611368690583319572222476191810535665884817405228164299032163891920201500600203071298360049395065077586157490823516847445148638988428791945102746080273161969304621264349318436847014590396187026842998103082603979307743216286347155673170070929639816881932794515325489102165540242248342078619991129621100689436207372618621570428401726718136508594775033106630036703862429659937649337719738068965302316171013808715357348359348969275701581631064327025541886612246141001729942804860093829713205320350852392683915351045636335510966254618028104548757213056309285865039344424934004589404887110938278072811423645196572343092005835800043433958234103308831897904579561916073520710840683392537710286681390714765407678661979490631052139234407092648737191319337127481053615395658613380081464642741881245321110145587230416083047669853631474776205558022031145360598688444263677735122167257721773738301659746722586513815345715079327296027508561482512995411760192509515453374253670451280143040575670471895755036500433430762731699756571550062732490218718812448319346136828877269921525704375845517253914623984901410332862857348018984279957015375890785716208467229509252405962645827495671465909133479903916316445187417542246232693845159719762732076103174126393585840912433265248545532947669926870108730127211721601743268788893644439610083748310761290196726410834348380796233094934805851285717122853020121561394027559111090857589533742293416554299520039971420254337940599095766982140496218709159730444438620985427874894343538096386230884026579779400894172731307136330632090585962210580740107038250691773397653302373864671677323775005594047670055169193288602414806132417854959822929777818101275825151955541297465680395310500942891514076978189821960782261470246409295130561726241729733429677955353782132154482904914867987878875695001557633989989000352231322828879684893755107529933098463553595148355963790991970661060585304361348133273909446160828054652750859181536323843400201842752844224733662777860161390966845050416194867595611603231565438153450749603491275924211692605397690205741095892925092350153319670146494571869786905142330280042144928364921274699569011723953537194433753663169418186450831763798210861268807689540527669443281703845593725559905197128638839309971142435208297073025377735470371809158372740738811724966439139081817774210198229538611861286506032070505489415302254855985411665155227616487043435678023203964194595429895035365089087723366593510867355323325211789215882965425525109511925978773663841237069513141949364070145316809786346943614625095124892098571366739497379011451237449999027255279898609612768659630751331629699856905861190183373862232199253919618463352992979562353904014547167968573212826383570182477926261105328426539125971200153454949015846872206895491492266068639579055611956745205666937693287410961997627435897818026565321575011375410692631866456883907072210833072002861061689597720594484645849090448602878307427634315946770150117155842452565205166874408520391280531011193180490083235095644916560726061722708672989339204762099766008118079571817492260633557119534657740523919709065119588026172253937237837949818159566238489962812299617994303804135162589218893060808369146235173610048688954382795881371932831956961609533004309928814005042857753974342593754003515145164510439252682796241941597413101338915901688529985568877259652236944116023039340373710094317973750582351865576371818930230558688538566657055627257822798064891319624022573050625431451290201356397280317785030786831832140632190724005289202772059849421035647333795526181599933911951368569799842378106001000528027505527198639096255279388502036292160786414065165562068078147861979410745847863507383452598928278444741548229137481767077085889603572014008468118678818668642306790865436466142217340281976852941637923637299175263255654818108788983809993383079823989318107960712607784707885940229911131896702351351243246574965215468060100088338502515826167830707915159019629515987409151833545612739225227546995906049907558551408878060403014304510900742420559642798569705309229805829666813115681837190764237006678652393193366684595605488748745332527479972455879220197282272383839860377611808710522974750573358533786613034254679692166927410902750313748491533376267735377576610824144629151974491072869947671108137051148665934290983923946086011995652402537356827276011467749813770903261402980281761242672326586932578735764196163521799521197355142018049151708405097699186740873594852406428692837684970509796815057273723592181695618567599939317074972791612130629788415122264126488552360960070319493863432077874053017013419275062492902650148280977415249719553489864718951090263495777172116791788331711393898170998723361449984432638591842595583914529868825817360714393072004870036995441911829144323266423032121650079187432605107527271118681582699783887052165685203928213283426614084610009421411115862271018204766832006913561740903934075060884126236831966437369884264512705317777679043681511729606841914560470377225718340029973612164035413154026515237783518865802180066431733621931271781747813671950601475608630410973146976301834160479462013657667724238015552312391290531388174776678948320867311540716794922915353740877300974729071806704239932079528343126678208000168341632062953109275144857898418073688162086541243131369959270503968778667522789138809353083710771128823013151569303028251915909880442071206454341567677731690699315694811311289071804006194882415510699937663053161886031796475231224100160810681709644949885441442008369068776387524861544464268442522032073657279289875518052555782522339240675623227881080821622377988844742870767379598133335173247117713680828040546676753918391696830616794244850203741214003162484021324937287204865798354870232705216400403220346850588536560868762617088536370276352286361523007324744412677768374263479769448638919491850831075536157417109802083763532584969794367371969345927888658436846255934496091666377925834649319121818618554006884507479443911306210627973772129627484428535861444265709179789421419683049744271376198179716177601664356643283151022053374764254694612975778891913509182980603157066947366818039352711604633409604019863486197397119906992434757963563913595976788661385451705841158251523154923912261376493787834088693852004646689745151054074982620282676365593113631834902555024423785747039661537807781916917766695766267791828747657954146710009902502180527989078696341801235554877309135089045888592627161823302076077195338447051445636456997431118658550203115060475261705276406531184754174354605172472955028046375280300960914976838590821207893163439640008145062997083285911198191509534587406995390465338990510487363993378669391840884489549200925648106663593160586368709084652520371048455831804022468785618619558218480206962824897225551251013295923064714939370467509186868793154042917497445249534663805896250027091358467359607132511383809367542071693037481401571822503853606135471289463420347124610893485892898156286155861743006356051060550976603767883810296040140543826539184142316005082262887629666668743349508114644874779929445532423362619075006082866726670315078321153231862425098335464464326732032725219136724296322785614552034029418798045577600967388312740272322459686886906909315464328188301573502791218325502935218169267626625819830572371751118400709724706143110707707859397724015435778930010593127526326987351389482733970425624516354426137333974622955884709733715666539965197124853569671329793012737948532953225591043367075954208488694597049515055823476282829553215468442530180457686978158095455194273797360536549265562240688787305833304216547050088503706546251793129716421186559621834994034778385917597224041405418110112010214905171698856340506075393880783076372494464540484601207328325685276043803808412729228805146592248506646011797434847137054128094634389846635201985134014314224529501519464240726489894033443477603873852050032303946603463228917976696805741300088879124586195422246399021857200653120541894258721218896825856477793778484863536544552438827038870875365570942104212262212345047794101148319119442065786415739941933256544695555544620095252851997356503876494443429307237082523084833348834076834916693112536598298566321591721375236027957400131506877448232438211598511817721285889495379770919494163391379308457032291298110106476646152216564537394518202769965014097542718048415928605139534303951284068701941213096583220646413757642700069084294222263803489369940633626497768856135432537002498774164799280654700033313176934232017338440341498805513236359420323538469761505204584572072579826828359379305965836162818061777719817218532618619919037281646648640236211546157784939207107052727857911775837650566049545757069548259278933447579876914379711996017024531617991147708857227342709943446080558019779662967781660903990953816285739373206632019282742535908453297167976675123054802290777242264244019306705436021434634178117326486589404649170399582123959257971112991728858610058435428592129113543307121539422600094562088837564122703050684844206705779469525216768493935871001022531682462702784954447815577595964845823867091088590812038300302149804773219833739890720859533284312249912746268385799107375519411580701288204912614876738419878939542032881827560561324250253058499525508539362227783607939598168605723171170510214913481059511344198236017288057248442902970353364123676396584252992385205317041196994902548678306899699651625342691585363374869804095383086187860244302770018109126298918343294966441874297742796145499907904211641925001007165982394622360531012789431127329054329666391448614060729982990334758794307403408665925272785611166413084490942508000385920165817155384457662136132762913881348772221837692706083091314807314924559813362782394259366958128818058774175169549106000888807383761698304160618628912431457204811843371344872832308465074130719503852642638900319092189603640046694227794625935204248684156518760288398890248643967880305236957660485591436492671502134000366272059395606341390780347865602106839612899243816986208588898171882600110056168084584258715071590380561850614395819645701599654609815371788444097300510119301314242077960220640949775828018479098244364549768813639737588479698729628829732341108209301738954856836379781054879611225891067419501830781582174744662055547699776594084840511081463714210981085988346611886789343747438519591175116077429315680303361114506877981687968064632204323603116821789687651891013483994688742311753169168899783245032649621979908113194349086419992819202751549659747087648512325524288583834583197572351800729594637642905187179886161324771487832859182681400515292676625257172404148203314441095129402448225525379248541333325206022740350526519140744907631209802860084394850139404643948522300939890239280721441673774852160530257614399996450001891512585873042230266070756418178618578453393376435588229918506553336471837159947885463460356764300682265962711260077157614568989136153564703813825279280439331404030988982966979307864373209180347154201485269465367356076899063171475641135528743005866163131735642604307921208526994572700993727561302766012944474204881675351769672577092380470114498690374624497349958883319968085237089494080170887063931120454364800470190132258153254679480334372994567107619182795853887529870347465697595749702281982120962491789401186600712949707901200601322882193886546953437304726806149967025593350012492298908443825880645716985493919029126725692151542505486817286515711380007792887681009311385508372914259657791932629824651091877171761621719858286129001845361441653441471864165431068052921859762114698633227330254100126724870996023295214466106292162282565926813004872277994692938379118198512068285800764597328403979112680560672807498832677602385909659490972630646989556869441044286688376593737304765477195417352592163440429590955694029327497736091272621833168991066009370407383414848326714435823548264264954466827209066317901508594890012221681303344616417247007133756056429613427453285520738241101902641892702665584304961931889791853482619196755978055941780367018455291872575352325016466241989664425719991952975967486537991939577841955783413286719503922203315445744537334318317811748631019655476001122029320904851712673949601514422982251623045082882879499282342289754887930998967558613825780565582335025229738190163998026913387755971248861720028041405877309349323951973150087284390709375918432810850114377918530474367387805454181038627575264349106160379288704041689794933462205933363079358755394448174757714940341541234292727101844235964380154507092743311078596234339999801866575700669496082543980481962494823549331357642265111204031565908826736895702277515014226856706071697237636548450078918114656737715474013056748632520064558867179704348454399044182136740844375650261863375863194879347293058829145689956585054114570299701500465488036805453379579506141949917353643068651760397298163802238338134810294808721206711973714210157296397269014935842812831635936023964707422158129413303642238799225432137343158241483704622985240234572745008023209883901269612200335469512254343494585797966678548397278446237711341101412210536568854628685002990240910007545338589506159927038967841828458569752184276530687285871795245643529614748333806433494675501843921867041978405135078067108640795305479426030445134971456981355840118045357317763898251280180312941041861091446097782132791429099385709715005311330857346955680250127100280204537087149521818089768178161463514744348739148450049401335145224162957401414904187877471061227865912218438728631908024500137796496965195557137152673854544309765866845865961989295099854415091510895286151613517477915344590986211371790869389567371854085699360901367706340265225829919030808225565133796791373976318791579404975375417157048972680934650870194154537215775889385163971246771529027932860473917449408479284829678713372844730160214261572054330066702015955368317198506143203554098738939748942033881304821907959557569058209399963368907821398907218003430206687893389877638734337654622620588318037626910482637873636658432098730098449362009880906539425855842379367430776847641612386287438692911038307537673566386412961223927764916668481670373640522634002918010956998546690587499458565007014281146760733494961646167688482545869760292229622147172752875501795631460968935137870406060802675324959203822452772882560718253820159054951818449499649661004975222173689529988963480760572832704768948009972438047887643845180698476886430903490558134257457307069096436820752874420291373223742354034583579660058422311694265378903561788996583481847301562343503823244295095297820943589152541263368287686577558082889940199941520785128568699103883295597091867504709531384724696171706424620110479446810158428185238880800360934976799909488980500476608478900001955633134188959247991284139764679761279015615438453613096635491719502145603645971164385047572602265442282343110504735185985748474402762247534009631560251373576018320949143235582606558377351514805353893683362446344710066669024233802172605316930184580873360236559274054817211705623520669978683889155853410664236969145933146809353542109620009594018835735488821836664199663380812942042741042496931347091548695050885074209878163714566740319096472039488601328952550447220396524524541856021003166213211875096338167909108090316859388791138151616782732344773531274313004752851680515447877189477786732515459635812302432055944331460097557557558794752287308791073123925742853359507009939682777762673664181959618774065213143331593340870106792526235772687044114856170227574946734024978192383881203112814478675836946039551979992861853530542325016700193876231583296700304352249783965435509360212491972701102832325464294732948281956843942866136812897984130709711417563069047293413701348332635754517416899451638652599684354649537738626177741299887660993815176038302785273141437615468432218298916838176525907054997810289860665332428429373928982006570135905492373600383422692246016646895486853978741230075625683262737742542693115137094303203366055061286293554752441058836949481541654357277710451301757012103715271016793187854140916783895073618358788494815840929371559974461909326540498978709115238149410579427836968710701864808244884289753385849441905235657385712642436418284284199810505430271818304373764385272097300642431964616660872940542488259464854958530393665129504507846115418468448342432175372634265729454708190215056942095964930864797940544250625364083799749341102370232087758874615757807908753903987570667620366036461494724423587164903127646694634430909532781226378146183793789705214852032833679732018852626805818419403657341330888899414419611680775992580379111226741497500477150545362706712457184609957526149902924196921484870150519664757568574690684117560704814418367347501254521394642697158885338435426994515190162276565762997792986348594333279213316428630525838445277097241823299991433135455225017039285964900453842899873495626063830906126763501122259444441560201467532174698681460084017945246738427883794109685130292390771279035040265313597330308651103822571476202656429261067281154274668933403801512564480021077229973598570547461249347671261605526984930406624704608867942930362027208417760895102031170724302921380664857682831837555552706730735356283555615088732745365051956589304389472280069464732305576221619798874219502006643590797383665273584405664010174549819788780331840304648251269516975927988899588710829858716254612812560295325265778714509491502794863581607938247061661261575698582402747529271665154718418261170980383908859097486820583580618082736072482344768868374141993118042101155060528668037796164667414376991616646463764178584454998280030581675127108000558617388358576285839252041434311717847770232588051999388008904070493751273751183899387725347608164131316743261202655967087461267639711215389964823743083009953380050230193528055021259433979397021068823600268299610237345992472121188762923866915842373728185616255362765408096778303038581362174251238676372763754136310968526067938809723304516302798349533433593862587481693727078486966693737713895994227526815320434640459085454939853892113637108005913108289244931395371830894249884985248311696896810391305587824861057004725400110193004330963579335015029915074798717665303387820556723521295158922500397758292676124340870261061073770150625145036734041235668185194275547326382283568873909504616564110656246661448877166172942167114717236762090303717645571261918477673852133793462945586769049731396141640720565353274934043008695937810315744384530297141600599472321284280652974777932498596203090805343387408115862255649571711418323887472003486908864718736429430798225084182677264169592179615261753306415808436737385106736794403590290389563885513542564922862886862744148627294453118464519068868051636216335536248395240895249975204908035797976527299885515368025653705782982600364155151056524681132373650033990936649515265417617354179303615535926122476337476669387884335951032310683564930768656592367222581729452973893563554797808146930986768080983317585154193690415634882969823613727205391894272314905726566702430778640785646370431501247933910730752252924993996907514356669979859023771497536731629668347635039265482264364944731314560184006874885620878692549025568694808760149429848196641821458097540830193609973654162540594117272656045920150837388305443930245117845153207046774600003119857718195944452483553203659060027424386514125625902785897813876954825800391110677640828481309160243883024362847558252592185432825907196101336894949522413205850992489796095157459560773007888018534083180785414463243240059688067651634125127425881087556028744198697439009120302682210682495762018200685348499600044858719714195707810711291651314308963203620968568781474944415469807563566621243670370627350506343736032716151331176758613518609695513640947935648312705288312951231908970824466981156654432205322769349856733532108568090024643892907895718509787404743047933228033748193565209351923009720568034708688766563262082352197186229266549779041197905341675806997359194672785770893928884898918423499850260472987829543044623024453764309961047855757290966071537919587219145027801945342994929123440876131184644097463878943847515750899874495416896517866662309151649424184257648619426127063190552177540090085489503417570128152728204514288996284082979811661088379691396016883971452337357584765801760817575592154343830972553836731478522316753815938225385295233375894727303188506878788518340442881769860500046255448765500321561857400147311561307947070443592322833888658563840312367808682829116678182593032569293347426677505640317170558019197233151257752793312069918202682431306226789452371703094164714080355406564831394658807217834933903744038564154711335152491254776535960570847498937049815003601409673283072413118308172479342824996568776087331872195348912516095794690761575643547770192006969146946572642158872749010298598996291708226328143353549562979039604837558361214250019175288947179157362252649415864557017450108543865354649902128619308823730642128194218613723018257764124644304241695425685370848364242233798818959203456162049133316923278154886356699901764372008687622900270621542806860228241746625212068880121360528202772996268465050720481288078457890774435154524513438456356378263565343169252977535346386224666454890505757609053516686034415095250461968510392231663773898325295592188965408797485804852417291663439300224732996313264916257561402752743201306295629605762190072983285558954649556963778114148945991218041228853274419354702360907708192723327821746474565055583134365490945401285667688786252903451915537335179001308408449080545086993230018558003083275733607463031668450583831254267479934388665839584350880818591487508530136261189295128868039778870232316766544256921637116874209697312385683055030037821840519243690837274366376231717549633396016799791620205653755726092550133680146006752956008714644711906129411883902353990410040183775807748368871176811172971406847798023174984878987722954998310173537846084553731102469743518291348188299217779681690436102923948060819853796492088960116133996327934027920191165271054435946795066124394032316434166098469036288283661315443969245958477522909471664756056902670955827440760357516271738209358986870046960020000993408431180603224793276287436682732775698028853932222508912706424829772695515161324485834635479521856110328594435645054686366092119902228441834798284287065194277909113267460729684275245869819733952545616787201583202638560586084702753701264332289823355922401994037666622905723564081081338426011287223798255229324452069856659393726758249884138418207917560046494964052729801683186274066230675537663505104682156626344537373118244551388834906444425608007367177887909119350411484722684839470816936804283237983159245234206107936035532990733517308646597321500786450156132097611347063457233815335124190804123507129535226863686111296459365569837113073410481486897192278564285744992081304671025668492565860733295181361978641722282185959011352657497574918676107585458731284540639291241960374019545854355251095278753019636605084979393001449738444975532568789015487337922479502405599945285309194077060102178374822980641976022740701811688587381422662029128462735969098080624706148700979077426672637879366831061852949769474918543409744471374405011981297357921119697147696897758970610721712425302004342284878781205020100870533168682237911051799382626541341183158954854922398372823444609076446298419842847336739522480520902292840707489013566945253607943539141980894295539615088918937281040239977230937306092460879532008775229609041120498225781801892546509257409388689443119094973350353761125042299136175561859037509652696446004105269549726599350478490464513020588649159805595244566792573622273299905528740779774707172854943766136648791877381525021395981249572993086262254663604459626843728928602340723930206808655602935067158134692355544884257664741545221775905056567456115917722673017084456324960444804835211605877823950561889764369820176938326615545215329782360687328873288065674149646542175648147929127082174487866916421940047751774713360945708847074472701823566294176811804748568895387816251951283139577017823673945190890589214800736404615709678186655662505480867767949860244217301730210790606360745295703327640311696763044599636206357394848771710786967754048529926773574705250453776021035423097735931136254786165051567260890676280255768601458133553383351420403611934911719937520944770693632087467013696660552882641131182040060564242297005058559688452496860976604591392183402601600969313494527146058084034043238018793611643050795759141452088278302585790232610942092971442190475068756339810127993560319931089271269964450951975215967062416829403466236864523063609792564984226053920595327652591216629705087011201403397723600915857015565777920498325398378442925940525309916115716713982461913503462155958544801725890322795839016472795798985112035814764587637625454967596412871028998771776680635806394936664180526454561270227747551008968036931086858104870051829668507194293912663867666240097151235189927755229755200791844382031386771686714095815914878040662450144729668522051968830352505147598457928453507089046942225588443551290964134886488319964853067394468041186252725039193554906225040259439725143027022211846396235368387381923446622885744850148177249327269905575403593557122043335896013559467937831997199947915027293826561003988894229783916487876674035259139171807172195584153583998244678304950123017553428265759418471546718366571884113616568196652951616451914791450181092667355042183438748676073167853276488053125926660597528128430893049499951390012886315603703484760002065180971374305640370119321596666880750311635451084749963152319462415059595439470066814825826122513010775373607822617803815392799474278341495203001923906211520199229111704779523774780944402974493736935170279786269904455979255220034048385174960814656610567149497902649049746178992645543827136500503585161985419101321190342945070270542026190881708888979794519816324972953629399304387234068912940575325981237437980282801770415475580685831771561316445574196691502166574010247928584063355683569934811105798565998888591975301481406709657993823667431830422931376249906237835953540240563691266979653319842079607753560901150006191947790950037696027256539689030452533645621921902596707821693137517242086297092183041903552579848120033606501374606155197291781603172357221694182874637723546040292766533682379539579681875350512530146922346268838495056971493887732374101418094067270534541802986706626814745395787272339437766990664931395031112292825310937246136312450048183640138898869742830994879684660548047634516385579576773157936390375998907598010697421601579918341780694763317170322814544261739733234057673640934413834142395637469454817462085289800800587317108584955905331813925661923032569758346343794319264893056191160224774442703055097456339431026576008627402645940650394941144608110960405191068479809442729220734145945283438663414506864892786742432736253585563198720631150644104815188753029856400071975352319327144315414410353947031679804593168676002285886299055428629043248162858218713494319981287907419365187732165516296115335492779274197103540403260986292577488308122765046346422133582588419155791461406134449989175908085885810983781589535186926844352077139252777933773187147009773591721549132929797239788254641758255913759725100004406847507782927564324272551392100307898411455234711378118999836520576163252068295924478962517197130055513627334736176573721344078327378416072967651789915213975997954063560867080252449054102310045541687331011851731460268712798887838925936090985609675292009474785708067562141227447849400637074404556681040725407440310058445270953757164785326180783260846023417775374266957338719829578343188731297804544654840159972709879225202325253202469809208430808153403785003707911171715153989944674859173890561615581208530413899007353059905730225461838387561683227552540717811978918866656470103162388630709314671216906946045222972695254717574060869705164849418624197030235037721071147243475804121455932794602323687463324326935473260041282629101736301690671416928658882291728916934950747464955260936741379942740780178156203591095423282563413829526415611007563979601492019902271563053394304714059016139150010126039263038058578001725904946232155775682233973369365414044093462278903232005463083082179618185060000805942776019956331463087028959655589707161074580169966946100480405345804723246568480196866531014495982682681168178592320863288404839991204811688733308559853199210139966409023390877281290256196362798968348093572915168505737804189276928582122018203007797761653077775467649271770126971687368623820217658340655393985244930439160838869046536789983044520192983501555320315712884233936013136613018224599666730722981530933611538086301061144906513812863347938176351680383721601765848418155478010614816821390479187655986403834008944647882400781853268688707025142924681153012559739432977616789085422156293507916589124284564933493507901987746093027813584925078179881760252157541827002509375164615188058246742874901438696064096802461534469036997052952365650826424344000858562982687620096021216044134263359850552726083741045461052874678314822221168472672338889064849799831840860985277368038393808616863867982541557317113958614366174859398450070465601216473690524026640752256668223867412694764469420998096937798103475787554284795658322559633811294322438776646374300417889573637417947068797316158242040540694359951312539861131719676601018252417615691836707179715037642868734591199216591586476253993100297741399624698974272234150586662116565363413748572976993314561860177547442276592804570968217765350402507519365023102854680399602163411345577870646900651020317084483095940934262515598394931861335003205207972849344644026540949401978610677792800646380103586149176671794333547303817941160057795852912374159285305013900949000321389595574795811983445880889918882423450412117140263385500329988997023600574033119502028942633752382125752346047661690999573124293291765742022239099772470623589042429184039522927095409516361085089483440374555561622225100908048464203646755212118979942554476960318725836964414244085803114334921451731910662100708633030648909845108866783015803245406221546976134011715565806323818859018268896330898002379713292321309899721417050007151317286704349162385250892824656305419711313636834576552084687481630557632905857534819240563981289569711446312662213693112126104558502628528239508795761459755566165371436718821777865158812338921209019647664383049681520588087774050501383391489879735467286724640397499338044786960613941892164659573429104503501711945925689498988001832005687571126495265580884429199564291161263086946904903069697067754532125986370606963679379833526601071914412292671205223948113749618436493376910224271831401992768149993666508602879616868048061391487639988619670889888307869877295094943267720286511652487464284181146334565310725727285884781583516095526420947341103623048801844971495977199617331690625789365093869967917328061591393140860467135276144867449122370682776916813373674119156727534391233389736208147626391401320571469308169233478707819141095981119969958243083424262394865846586575605841938723868317315864860665871563378423986112242945157639429473098154191707505531807715550605433073616317169446305717875880769742775564992331754804495184689437220271774352550145255674338516332228957393098300390799635767211017711397692526461297708164683492892606783017856591306207363387759059873173514302997450848376841034486362755945220978660741492474906095819547899644944677755828184874793389556577154478131318948078799143102906930995058917125814268026528119666590002985580627527038909631294078141613547154228401788675503913503705585799125734635888067846765603462328226885220647880706434746639160540957039499948875418937692897373917885052537946291348057060697544237274128409062574605377867720297334018138340314534480395287638135456300544823715700847211969975185195210544310797169675588197631060838839734103523998426073753678344075171448373846693781625774633443142245037536050437983985202076632486991620062362582147582231326033554161885954454359532297840560776242642743600024383718587693751269475116290004216178773820822892757620340253582458718813009485841380194457738905923864743375128581300947206695015969486667555195984576795149156289221338271880358722747053696662185530638285323449467198775567675463875083234103198794356035608040324220636224629940240670693508572746461932897690987715321468893048642876921013624968291130170940515225222730099848971080872522683744807873272212149662181684452649533483786516155604563864124952566245252874406167739721939587167232009923771085969662249584814283402599488957273168369331675879497722241648146985645925778502433269539368144124251037984614365080740266209249885862189215655376994354761226114095404848823626755542729056142879017440346763811351880385452715691450854509113804515990646182916619404896668369418865038096401796648727261463316313012740479962252358038871984742300977683622471339598146293504448799593374089387333419336539422708620634514200994347651229812731139003060428384120062403026939082642533586633171028910660658935782356995783349029923785926448266525602578096398598755744383619800249303924464017376202553021907359679284344727471370493039444525215336998842436711474538339285593088022685981036374160379206122072179130648033402749094835756556208118832258543945313843848898900788210655665492960063292062605399998335223367862884374650687313469807471181360038491144220439138223552206702256361218173065583378049749919071007931990767440607658638516769092866920767193290497529563596512456992168031532703947699398317643765203934233417505349570525294224581004001747588804130686004103567416252054792131003559107746863619102672992255082340728854812840306147956021693477663773206634215465981331513791686047701430746482125300716252148873994182336884465189423020141798577778365111592628454521823287082810010743606681763573904600475237258609337740733937534736576967122031721186499898598887557146155140224844193766881807143819050492913343128514942711780861519940543159011774824798540952046210931933266717424918287845982004173936570295178129441001692174449358552666911107982112379007187997924354451198926742195572036495627881901401963991475974211294891497048799592954590891212486432057507458068636169151404139564770575668623638764791479143305627331323265239614445904434209132516672988554023661069349047263842491924999317355854613549935181397871362334859724313399289371608277576397738660172027012071960648569466761559989704811456112413428435053374849489445351458229230568711197258259422159452011943098510425168274527438647243452724957941767249241940333547421197783926292895031417089610585032210070535833376016434636442467973749151084606648439870171885991710637799842673060359491145648464917012582656711139898247882998692093143767025998572466195291522182260620836163525199660158945765668098495769579530061674822471585060097971862808833260013814277977457177763420952795860938125423425254491415713188505101538275469846272191422407926439757805269791966922208581264976808845493670039695806412392144871301541085987338184756141539253433946052013528421639163349945556675971130496053388471431312482719463859393488982831098368215438007883412800646580400721530747281391622043674080651512413504428781923887584890203469854651188731340480455435077474248491542407596026906440307002866924244421157667064511592378188139164677492308474343823964569631091852943100314393103748702927716515306787065060057219799494880767299149082208065965499655342632467775097719374480629062780614137609959859437756743889779823161545641856452504359115359112692683090311785773574504758696112072472110253113105130553703235252349773249291462473955314823357344533197467431828068725675868622411987304278551492658735976608545858734467240605381723866919700297780442097543637353231730622167980578015671736791748292310784531042079633477333404630908892497691171318852884272126842130878156415332385403979362038254551176269575595427162277218792135957870910415716041532892965788267361329107669431441266110649890987452361853345385784927163478550335148321671106859670195220232775908227808500638995563454196313724567279036386960648769646087611973217994563877507212560149636095777509149163363016586237592065339383195374032333573923574884628361763791572688217664265695109169848798490086862055188691663322601109167473457434619130650797729058613731571608369961425260134905524159810244933844591067092948504319181505191673592304427638372542728359439203347260017044954092246733522139660308852161668081526067662662013693989886596404252586215884657035290531237854113998823910133062579271694398407589306473604639786701570842897562432199515784163211295960307966252327372939829634939116322810098284624191651067092340837964933064607125641879084511248790021857637211540489746740327564587892556227546451324669245374881388022388642278664461977503781233356127526623350480226850424022056054565483812621393608962225177874372795787042838860193172243667183163702981574349048502108696535446666601005181652032715999087815627397080753408828883973098262847699411292779682909672027251107735730553809439652019222663216449668402050021008910487560079541807675016096297246118452810176994415907986891839761428785996820556756710347693929263087208652171385676641189662423032941326262188265331324194718744343177756974674209566668996343990960388075525348393507890025540099750152264279627785893843708720631626708442179244953192055517267057920591296499550929758127149107972425253695472428257064560640500892983205634202762112381746088270169121374369476096858257308330681129250207365265819141912723219388559086723168080495031495510124717288523474444213853364490372178114302904283006380871624113662830114281409784619016290315500955361383738737620674551937692447600196265947664100346684241464862489530549605894759718766239661905278830940664599839518146180304296396115743453933645405644952351523820628284978294831478563772577841305655658338022712482453154008167278754248640435145838309760046127273465238804103437375663206135359881884636002788264576488868330430901747066558020151174464345745510073372312705402318802449333368361283655584604943419062190549180218093040238789559751488698869513588921876399094653899944717351692216938018540841474874232348120330349703548752883627367363402115153862381986074938185839344473008474115704200379708222522740990966733735898668317757609126349251702312182830815672247249355653105677766412600081511855702751506690862254536848036923352897380204098729786145278320415244846616240337041833022039879898839222623663675479240829932475351536560182801924868979096272880256129732097363090353099123457038757625525232411336994905690296561506529954018577341590874968437845691337319675423883077124387137572089216658103556415517789636253403311271859450464276758893858752290822164752667438028849089917913274549897379954219987725564527031717198598808104328127801067496045525704168090490129922281405202468471590640084114075456425858281604128381267559906564663574383544235976764886494257202851337573875850469888362071584199640971163797007845857253103790841089622886619934158740589501518946460804237713172335811535105586562087399361563847534646816637209607293796532183001339951569797432500087751250277620930826765103784030181241774411529647844657729454192751356653176700267645995177775771266668088722959263395578263822934936784381599149517638225822456870807311514368905566767417918942712785344979419067428615351098424798943852661292239381210428027451020863399648252692262995210691583348883092452674520625479643996690500896329321139681125854722663607976073274847959475269809183111558487184089727325610693815503457300996902667704122164726790483653252172884073233761194915559365948901512016390849771171025291344596025258697564845222292569015514912226058628568946147055160322054449364343864546721261319598683581143609421341696749613408072902214007623294579094751022108145687473329159342013074870722613626621813474184072092544946387995020536154202544995779752630323267314438691916108952192521730759930174894625693925545692871418575404605918294657156115759812086744180117239037730574423471175756182915512593111972589621439344081577200443277878893459578256760084627475241078890666391664829426564407154656906459865616184483056008526440111166536854336743331865152979067921338298623315020283427415950203633812038638536515973518855248098369498434038981374648590311963205536639555795419630460598033101302398220339346054864629909040836129905132544334810229452852022872528492274457469824875001365804147999907063274845520990865650686238371176423009144808208908864079134998921221462241654800106676775202506933257012437657368848141575794005400001146887766592589226948575093209683866761091208334949475985765701144110042763415206355168509014421953907336806258302848738598901830584479749903648796958288881332871658443378555071175474181066532287908953683016201338004309845001907874632052109155859376465056350861354750780488674910090638825742783602360993839375469036483196633373574325989772211200808746327375619267441700143159735462535458580753924572672036780345737455353332949023287845034740489464803827213009507125524818053498830238923346903493300725244423738380741556098310262613793802620140338060317158723733168745397105250142046604289924177710848191104141410436363085870701255419013152425498018254606670989291103148114819221153294579405728464643288293446104235616914364130057950693160430873574542451081240561594975912853829332293934075481732872415828319800638701570371495822725182325423493030658613878407330730808464741176554380194481437682245533922147588396085793672056760249187316487359775402947487668759862009154336833506697967542546051919858599573118906177633591853231128692223108450427841420607640403538981368583667935331956775558600750452284437387076557531857773377201529061757944687003763063657640425330599672969656600903963645508358310176575942539600151755545801735123100367235478007266142532816048767152094707303058245633708913087940461278221951809954018078076050331378204097866617817260274849162313233134430649190819216246979552622673678568194052210760288211572604830507799576611730821246764085152639569889582919882131015345460435604395519189065226103823048037142287115487101419820074692286924285756995454807416052127808354851458160289379636571273417086619710396594243581828679496157144602923920569362830456460271333831753984653276614250760461779605785829188220107725091276922751026103398249464142705075129574770328996234326856288496880509403462559862398080563139078078769122523535963400458146865166999594658822420107597946054592280837047720961431903572333002146095274063618061304702098459560119523825703767404425106375033580052349372984373841770036546284219403492526286914382272065811622807252964369110743600554700495492089801143012796065653574423210271655285848422532452551682357564379783170275197982751186295550285148802351185763371348222169565208630663893936723013007062640965788529464998551754346184389495940470663000931278213402563264979579877083563854135151380024256434845538623968197413117797736992075679883076738513665568600977913728727454634845048619514009042090110462092019603774986914606374383494562282588838417266003862268327715569548647396669913441798802346820981318070991343608700480271457983793093888877673274981541568692870943351487023910686602114522756201571986884011960595255042355716589886936441477098378093741549329235944760867015349394820146373934272261678343889114731975897610827132535309380811421360423321577162615286770400200841550420415790135986223619155360885815684025253252569067369440210907753487818063887849101264030609906164118792497418502363391342575730898808497651401084275443100783454825576907399780117992458980421835971697678247535459126680265850127253512764628136765254757003038915864861200270567759728903353546860054304022715964677729702935860944909652772093380924654532247150034546792162992729740700892303176241489013876414724612785031692075620180498142207156066229592750544761707873795336027703343654247534052393712338495308875051084444989287040765597310456413672649420334481580391168234444902251399629500239920644042860263541002167424030397471631895929676263232821568806758885584998679268790962585966322929373566603882410913749361492166929669342668196933330820860294218287249329457700107332942900298617299868726365516396167505579470065038029720349047540227312610456572156109501967391619119578630785022918777894456804802870101455654750232932556259473461465997246628963386275465899233463711024439043244556122078985399284746036114354630249617016671647636137346149293020477774802405768983471536783240044016878377629094548730396298730773303214095179028808457116349818207189525166538304935345422954004641624770255083641569109511311536353517623630600618150570739606371888441550284766976811609575196445389484023855249754919295757706744533744463579428663878408450595428894127888819218087087407244145549663690590596900930287386162682596788674864930451427575060343162803516410433278311398010654136912371560406283818261587776246813666297714162545790971003603329089025406843755616557392417911486046065579877929487349950294013925446004550508072478952695739454367386531788322801299856382840099463671560127010189296346763172368483082279767167434433213552145755925112521560136721780943179131107589502353910340621059867275651826344012807339780281443353202122606623303562817136091006868336991006891452872937319013904462304569787171798868317336219128580174416921469287550961212637330379191918201250943329626636129986392514274761127767982550209350143347241911583934633536299759068289393280253514814174118619859518477706801742577202222668376095869226587727491442621873810016207955348704360501137355806923909083182885918419097656823145922406412415572124569589072375447646909817371858439303257472725417668617958464736309917924344668767492004521274574370846764496439898597375141689987812104643627514333005700137937049294494835935542784045788227799607025891135276281336433383756457388863168592477136775846192809905522865268348448828121831708655506033152020673342451124020033635379069028374326058281460299368166825728297264678788365002887139255873872350558171746737340598801662662153977899751745023043312739240015884315601591365542029531159620027813972382666975889626904239258057300339602492387782586355158535706403530393969220001110860227653644502994446610628233430956734821101229081260174380265409409819146449262157860504942114233614051288092526951853813628468121484973327219588392181673578919149903507590809885120135163917205913011403433458053825240736183099125083957311522699993144893581608202956337021100628275135281550294735755621874484287710777179390896859833339652800084633316425172342977064396141092208902036378552515289680144166716752971957857204721353622683118419720603412080344479383669104929480221268114499347958975681950922433328553824699557186171193907823665697950088774954612469477621383405153240720354973358786788378977600974253561073852373158412093747257995294413688150221094363420427869144345672975285294733223668533649724899844823398584100032328776550169278171750226735535194019217306192322874714146120178819418911570338119187075858908514241304111903413958286148839377451389107441413890850673073707612534413647687289936449459209159470629197063742136525731102942197646368611637670805174899128309541870047461579243956398591305397089423127293089100715356504927846155112595066594564711478550145049584484003199863707030403875388942251015902816081876673472443186367433782652387029800101505591528818706699362477005012037354698099542230002923976937889055790079324937705512023010205748956009920820364315860077202650385712978306560521441496375420187130407459373093667373619078431027118123367877325969205597653365255039770773988626661701933692563428533859526779240117742921935949799964395042383943473219428732253188390071987523624248973940239848431642707640307875729499476445930070735368756237862316993635591398076745688589512410677920786674752315428220213910516367864220386126977408345867946879602394285301944781180846560992006736949956463743818974598921148042693065932135571187677381326455864789798951118196372579383895359350127295068665316084991923866015743357649236725999338751788403901484266813702423343464385879589325230689517506464864547074149317424149327874446904413544000353314384326931937840712767293290826688189877840611771219027648174485051205778476907859239614865190434515608122773550032880249469013763024384814047188545720129027461185073568485690521839739706632607013669001523974059484618549066847823507999133875999142382139577821985964355566891107663775066404823914879656803705128403882655405398828563007782412120098990404753626319477763499033923742215793925758867975704050866292578890061963085258253156410625279270601797648899178009318371257200104781001979108708490344085916326126610135655945114573116220761934629854170668579597284775232840438144403570632668151879653770745755324074900142936961065947898124439634830118099540696042598455825464023222401533285836862625024606533654727215778073485555378308559568476144725438936622020417591227931705250660402326452337939329342623307480218323557487453354527372102411571706923046822796454620571581149973194140552866890637759138899909372465444018848675838986706305711233409225173016066080028461051759403275185545394028071568786160659623443930488424488929450594963312723390377540960640502453849040199122969488263872967359235281947251812240939059560590459740710571644229968221313594411428367360044476159030740775729677546731767573097541974031951213072649542829723797943585573133473830442060727821278280392373137134712710392076225611011083060704834356203937951981592309665704305445980624961885988522447037218136182174525996927143769279233911163518796203704114651099635179048031043536378106517949019980762046738906795367826259922066538675704250821024998404001082091303267537666346082050056025653646380826940070653083472805791968419139199624668463032369396479863293889702892289927888254884369870060774325793930504715548654574882652744150036538555526020964288163708605094491253629598422015537267134663174961730302538600859780956443636495507154527033931529106800621135568917520024281366627798076463078330081573257924171696249703442841326015099795891114346340726195268004416775910343153486146050827376272264819137101304528567274761435196511489254014914937718567665801663441955274895871965867581557254280392372921779035711254265437506876888367904478687693844239574991474920956305112831261385832368843695163749493259494966428440014115448231668070207809307735118838606943966270639411610238329359624868196496488716994033393865064250190757049534710172859449888907240422133023678165381552762390626185655926195452674619822897500852515990555601122743563222398975256036264073547647760762048706441288016498846109415449541922992869731526928281395724702478232832319896442759608727351554572988463617774615218804909443954134327283375375392669886185403235355922155258912873448406177553196316647757201552576509525884179700129526017477014116559553071288843398283385243148839767969013055257107835748704583650693548646875217799477969415001006156305767896546890811927658700714115683183658550788898773724882068660158464985961165630119215725084959997395479688999679988075570258974957446957629656963377366667455642238212085062616117601867224607980572699695741109967219824554911396679792340191125485219823545598734024386278904801488617943794489207745978689046197077007127702316442878758799650408372209799859120692305711031932624322154903993251013113702703770751915574094502858766078562435569720169049941470545442670029813475624580668808748366425739701444416371077098900746183793938366363412388042900347129495822343712092058523780444951368387447908655708304232484081657463785756658711787959728864788645776644048189713166445270512293342302482653350851163542890945934680097042442831150138857831456141146395426407205190374751070513707323845918295530174213259579848657125127242992557908597355448947332955980327701713124943808004448100548273754898722711655797813941811174692269774413817762244189433423415854918032159000020007504095655544272698094213039985077329867639824144809617348248309033422321972874106431156339887053221069503582434965042210573295185793782459522199326083657676788479890579762708748690571236578368717295329319223965822410974307795395593976426123408810638425439806553619639910472867563277639772786539838008683584347831656168862932911000965127314208675365404068760113287036088786726214314143232648963341877997122998242762446122748806547230729511169017987819824364955765310930321563164172640205324203944341760164255795224883732385878417522943049179955110918842369103178182321995010728036524333615558320160517666662446447203108962316169115457917569298733290906025144822318627910091696556407256498354655078256739647922017167918328611341678349788873212100572776157238959902095563744911033536763684385981203463780639549494145294878751453423813073083189069771916689900115064859083052163103406223080347978529552162093486202846996527145701619655581148394547692336038065510834209084430880344749065702484509199932836369910401311257257545709942216732952387520626326979878984831437802319213834264488401190856646897762000804828907223554890601530355708086798441150813234475868487422487578496316802334381022027223219357591026294981544352192938351049123697615381842160605212780918553723973451415177857707939239853518287614669437195824323744575001797339908019960000824387943013052501384584130785744322745249412658397202806064580417694702261084365195423891388452346335476859133589321325322217696069184062398519438389550262687759228365705697054590531949051581174718984585529449653688237098187400781012383666260611428659337501795445155255696611933040842202391397982494182503064079057051818786445947386807403414792583715289919308802323397632432612066833559629032806273042620636813865157870110735437681345075449973263982223800277455266475443183255217734217046482551344373662347353291985612220976269490583651296076849358727094681435531386310692036157770030683038279441369306208516305836576536202379826974564996379114638436908399111507534312961405864277543788722436012422497189893770453350806135096325117025123000154491674217349759253561088374519296828654876753311839767401492729058998747465245094021898193627472879483106630047252776384646811239538312694156560108946619391453375977701499327849446667004955726531906533001656101552112795778388685067446608939886946198118372427164993667429998064457803997334117685356406486321678782203896004106285388194378190141116803323524149093547804923459597077310229190354553468960956849280009789664844224398573684079187424324772086767206821915257152066473241604429543177682728176355361976215188729065748245004426433800070451735367505143264193029663429606234439229151870061140713679151059888490010528896369985412000374056910686657251526581457647401085158499447513751833947051130945468979860763919055199181549896354175139505166289463252089383478078219627316353652002303927300119150496444066086658614638071262924765414589263297324871970064147644988122968522147109054266199055056074674112187148045839516814553102377299105508057325415712024812388891682482426079764643580753289094813552458906854187403232410284427317364537174139687549149387315254817936662004318228828205801903263187304733443202900057931773762408216824161777154296058181961162516753140676562161395708588788041398991187527935072060928389150445629989685949348826217756912304422397429401459468677084326861627565162025543936622875088031217500573400349804502411009695294988297909548137752266598651744475501640820308574051088013648072768678213135677663175931509845132609186012811673702872539983312872310819160980341316455027461613842834032386618839593647115646835853803052113467384210858312586831681123581584520426819643428273521721592352875206232744923364206016453176071925122732371220918326402632066548589656352647807020956840175116194403532165479539545538854507747384804573175464317562071404480600136734585761878779000146520406318351071150801933616606528101361581832086889272828186667349443936560988617865804171497735010825549587993721599705890177058119986132409336381851880700807624254929536426905614350703551142007973932137711500119615340502265621750381851373979456441796009665260062781488594895923201364223807796381692089007196791178486305007495016426259145544023160588764785375208604629789364851614132326787520667279873997265812079643945490520056773405563534468032531933482747632430464314849490250684033239356796365740394128869582165658707659299885967501635300946790438871857027941379189558675186378883346449429222151093129863652240509177304270379167294209215768012238958598781658042570771107254915983713782850376227649334539677640147226713499442081252902600692813964894107201331281535107482059894873472000112783465703272607671831649642451531593784638197547805328263226415897616885510767397880337090334764274861961800828828415693168201968636216790853361679922478800959991955118776205756797294262221010917246172100588120536630508289524688550005803799063818548565327674354084346641694822559363723038610376970297122288883201176158697070496365784664515638632047165926811378310121767124866406282170805575378612260545407618002312150930551771695547546803804835799502871146549992576024118260630681530665069918180484486372594259647485839197889971369375231195046831594010799895231356509836429359328328754465668331830931268688866835921735981720079896475576914518366879729345781745421308067173298554880084288882701208941738235897006211058743243024453787385549779824482688077416766697852187023628284531463934285333768303768366158613256043628775791626544259875576513205716870010100857565770283410214844532142352298459566985069168110420058652986938998622378528628407778744340271132257738326301337703975005968707108371934723593981033791780351448214832797335878083049255184485180592978967684677718525740539008878723254108234906756275568078979709383259476979629736280900572695720450967001000047848493147293386006778368294587608481915326829334655646222795094809810930501602183852167519082463544880638125801613635618282285769027987385581450337593005651613603702417084847433966994301082160350690123717961035070572763112196397815948360362699335130567681661227395238477099278206933102384995299604335459691142466906135095437917588341608564412319585866987592393135656966918898120963088785390216351564299748840832416367292344008770702154948211283529006354211969777293268482228556584363362803180097465798077315902983317574686079369580470360600327384707899350014341363238464148946059629171520054219331896268362063416800772653581313798762758296132271731568497285799155538324035059473895178529969004672007045983543733901390205114542164134137415402812660677893084832471920599943931108552045285534065214799502406256048691974096702670966254264228865913898305671238714492018913578119706736669063046558811157119552698456513332145387671720823338537486002315440845773749416371752338934491334826192726009546351189434794390404319565688466068840256614236962299022363663073352212343911790817494514020280989540698504650172937301007229984905511518872304981593012327274472066944973469027798676392412148299940515937946470843803327699853836905655711926523409745204608764729828470922254209156124785023105445267406120654627507726474798549017500279301974218931763837810625990957980301337197620156504790252195085457489473578339010095785394982415269772036363902423739001563145583922719640380235634302796373058182805195076990290711300609185365390335553859309693418828260098280897863755407500193089789630824606184885805790916669336008262980053246898494151866275313919395348300119511104061665281541716070563095188977794476703456404198527598464045542393713496188692940251184585171280610920259236955522965729727124915608084570393442700564286274125403756337600848168909010479928793624099794316094938872029902965723790641677505723544981268671884455392045770892855773289014895224006961166282204302869033047646999517870227239263476366955145390363232648012220669264103871097648274290971264992488166673957278777326208244051603946580083028001595542176677322825233199148269255117024747132706570641677380742384162583883799698318884423061169962341411836537300441865619966706305621360505757957275537305321475786233267342337476732061392120672398248644143209719398916523140254763438862604322992703675988754893373333002093157124424598049928005353717045300517357462212891778791974986196321025872653733821975742922375290729756324737036176994890349541076931924231455310446185429970004530183739293640087430193965278783038727130233251831486493827119085854891895843865879007316751437456997536539535255870303007295622320314997172048485950421222341149391642642643167864878716954423725077558848189237064382427489954196948434721233666608430505058637881458556483376283051128307997439573180880101328181998225401459568511979530357582425724768691934873588959634145448804735137114818517618526848437275673167725607862930414645220689140585801099170435195069996212804413991000124300251804094788121451391574909204527252229417047020549888437749914622496546847013085369733539001615125141305921655929919997404932103622893021954069213789635254348298824896012754591337702060380069503720532480312948732439331585891983477570003603327114887226882486510640752637708305354353355669551843541805480843690003711484471639708760887651809040630744844241101602148360233476624456355894124799629550682598396804418201369604134329129975413894056832096484770042714350310146532013217163002154891317168441043839672377310391999940353919287303369683050295050838230568354999087848614446523435704124438317894261608953848719559699181074703837879610948494608090663839941513558000311990750669407203724129475236262956880398390610109922828871182597082116545076988406789789919621806291195600218564363490142233851495626842967475429023478487507305845444404016219246520455232869768421927035871452145483183570166648005585761975193180126300272128182351483229815725798041201673973992343407649159483416301368008223723130955647678256939996921319199148788125454311624192894126202226785863526067645941975929779505561558313781713272714145365493000210391859365601818931465183308687299638501237062583199811247730159118985202650077295578539260970381286147048437450778275090604792761161728636126606886938623519197284695981082714777330596488393625201765025880079507523627200448888806718552833801577710530975285996887004994202025708985775579723885294433909711942130730985388094971582689921375751625739978426455549056587028190091207112080925587799540203969451390020052884727221768027401913187732154369639760657894597278579523574747439677387509101703575782692583161904422372343562689884233954634678810096153914620848288555550477273111729167949985164775639763086102001942562243235202469122779266643836296100209879943320427901884622049952255922517367610818314214693885977140217996308361994045684842829172445379406071553514268353582023759191358505349782842676562149690718958123399394352118317985434723138648050234258927597835460074165626961144715008067755796932514192193437510508087161022133585462223720840417179071989016489772213274380747691014688300676122894874174638685434209278190613492770823064309859069677014070141835754834797772914543853202889458295260412584307765759633279990393258917454968455694663678578260651468320730773942115749419357483468549358120995005735272253399353494198473617647643445174320653469803874200716527495722132897325431154115666580729729190047318137270767592808470663801792503697359446013846165283245205234440118839295143078996777063870402113994299797850562046851034489903980554923619523849425418703762764188209059064073331448462431957851161047454177862393933240361346899946312077707170769631434281772065223787501864935579867804677518487283788041413562017318023451882035571946926719854484164366675436946542504803122766710722612763923222298890178562406819006607638272605618623657375603101913452730551769780208065148341036334888389749712083204018694406811298346512477723090556475802349739305407621721656810394374295959516477981910230356738796898857503534234176787312154297953761755139362539286822122060038020834288213521665686318716010357954020904122664108166132190722565322914739207355420985726594104181070440484756386787866430508953755786758218095553620754064115452828002809465227730852270360565287940781100085127261445947996898258657434722155585553268367031971132654582921444998143895338190441334043742236370678824865335534738407777249383791018230790837379748472542487497040981761182672101550310590527306015423627483540198430645895800050948784777636553469909023709141584566507696766451659341529004080457353073234391066133702820197489548867930911358654585006039783782800258598525101446391067923263321141398021821823172880645493949990184500740870768598587620720966793899320844908875907443816141026527051241244276945669169292635284134799766391525384556734607998440664766773060074247436357926404598589821208680048138718053403792681774368100313134085771564845657252517311955237841322351336102239293379177926079830472681338039208763398600485286977643616540476417158008430148061440052203764213762688240034869046831543264988484158535891836443190626308404263517168545800450610641101870530450808295925733566857751894893892210595632750099988754626344111059124665536716096825038975612290032494159858050217514770943897466467865067752958854502471929722785607129001662866879394385530339449712037448425819127080359885451890471741010785267587380739986971419400402255423401516364573825498501663063600680147977023271837527217508216430380301876974332547849697391308114241349828825289983965946826174184650050831490977125739381446647843694583363585410303285513823215272626031937845460238752330027117231212269597926190013108968036010475095937511091526667522984871281664744490839480265660896005303451590618765669343700657454073911480613210239182354285588072958293394554327150877461040276771159096654365175741745212012875554989335455106730440470650499894414920783120235294121736095759392993996471616065640538023386845983944341969303158280058738998421605730383259615112221142341288190622236363187151328383750566911914033114106145236638953127786199998950262091143429882900864873711374258248167157089741907405738259808493767230934990459457796591776809015268757169628612635051138338292913342680180323834749162271308431448307928519074669559090195086786180794022164896704730663012056582552902991136547551552189444505742022380688101266993471181456225822932446024532431708388123752805419761890778347982403955378643635090964223209674370902183410459204233598608231001084641333433637011846377840176340487025820812619309922166179043804948383977449527677791267628460451318101073422795825429981299340507249509396252987874005185138275127364428246111975285654497420816263650337683973041223578003100654846807711319896535385974102492960692151056169292743522602838707728131641734584958311616322434940197248880704422654357226652607946586617786865098405781290632738166325277425964511400744523238170437539663814791418101685777508546099503805701482747542344170253879777480037411669647456877284403450115439000407594253084715212394373097544838412026704264935808715959736668196880880970021587516047260714729529659189738702627184330351425751446201912800461116650072944067427803340955070656852685766402526897199916705295730536078382438963361209090338431072734324409200948668553782957506943228303179125423024911858633784571005600335364035263113691628917642356286936268088515212290847907007850364219838356213195628135771165328203535437682125134249746759147326924364551600653836326809386776725132206936748483971727807287802445023642452299674297862083781072478296030474758240226825149674251865806631667213405472865711454390055744205550754767518804563343414115276490210407443993396128112367561084553619914634914688897558198546517031524562981263201566162469918154410221745162545650865671471802389851708500606381890647301834545948700387427222815554710294961912029843343237542671661969735410272726074805599063126067046835392981057515547923677627330489500597964649899152643675601313718072076767090644318195734948789054105398250795314605469789304445944698834171473621607169274714776956893460986915139520146594854908165942011051565608978152415217703746958511977967720205846928070595793948065344494589790298108719616486893733613437726559491804877609537970857004119545347520033142372899366686928189735614775740196633984198382223063246866033650488175648892413041517269061536438508641887673691257084916024013526951143026802525496657169494500266143328254500493627529320469501338609246810218775787949956580179554590740033470101332513932455804761355401392426676680564570233335147002805872865652660580137592355301199805144760691568055401756232921397092353457402137351731344482753480891580128057008335972532596856987720314892354658721156296147241364653493644385914798355450788895650246379983332016952634883951367643741289549593237134144694412782492329750517677522538482714445801596066376520737181504728373755655722262890980948742100378555283454720355031741777540521382602561950476862287308147349499960935209601897715093219886914901479788820402657165195066970693111332107985084830696144527945526746337305217154494411915392974533324162451111772775881694864511353445552806689062536803364203281567730273636155351495746522322868022309336980229199851336859388641892334913561415760890334534295113541138902064834573255805188111803521016499030163966352464519112775827791209968542792517589326692981085763391364256696700572078361490143767026655494309886055342981075628423080094325831242307079199188442945020976089045200441104108698555337870777409519828383558326107196474480515756275634821150972392343955260813557166706468330323506331108778221768132255419041801949513695735467968796537928423293351056431825902286623881378239499079004744504822223720029928237635974336035134843170219613673424174907596616624314416365439876140502972665781180713958295910107086718808865464282946595309130345735878569746363309617670072644131775039625191582734693683731466749847722107587946028127260482966064740258131921773180081294525330062686174902898403546474180338943769936139983923657520649336594955267184293005214056034999540667542151016464398940531883313814322958294890987575687600715031499192905835127685495774743788857804706010053424189602112783374562343042579279944373606029677897264437797335028307787024765586716287615028439021904633131937206283676869744849786870147368880397720264561684252606818821913563080960215608134743155517911278143430253180691299426981128870535923946434405507869717476556641866341138195014723016861835425272980486917515123719942722740853842536560941410656855197626718569150971843453279273213946658901583141874230140270491813484546741849537028313343782991671427576908667651893739960202114938129979036836520416297096784489234838614218040991379055635812145332309914566709676389604580739214797786074923398057140734508556411247877693341459438155422024557175800607895722161265432368093678666192740589980260499099169677026997217873839577835923674830952791597262608721030615945042899262797659617603653829981703174858775940612575238935827915703353014485225675948748410650455695964436239697223403032186670516313400461829645716166174527366039646683155108489943678156150293256375794163428407316831786385619686323902834541862498920772089042731583576295163249917375321750977046718724845503711609148949655699532211846618453879931889921803128043569346469516194618921268759496436165364456296031672987034857287643709743657241186951176628094072794072086020408210793484866617208144658183084784681973684197712948845545500068078329872862517590586349628261405488834745532909715910172018410464751289757259259870666573518584254844787820029084388896828633311301313509080221095955268924133280596685725699474261735475393375850201715377415694900681339754548825812456209684537501696651745031095071551892038195354799362352525888204576497232844207929194080435887001883555294397691664475524457563966752618278709308631196496595315162327407300760874691541396999121468060798030373526577472679108333068366245261548201156973727296297619293508138964514608884469352888399097049175154957534736322443714823622526665367033594545314006048107702049855793726739216246242920856055145841097326510845980192399049469738219515283381842686535628986902407770303171335257504827210770366800876594260641031071219629316165660683371276191413210199669087132174546778648364926335725400900179635842708184509210488453364081318492271256281669499741354957240395214152517415987538137303168283761750384012319049697509916450006262571563378994189351593394378139959443712807779589677820881081213461990071845434843842274515936018681740965414677239633869985340476761276452664824376013457815592226906272817960816295178119599453726116379187765543055560353491677617483399711957655556267313107375413499836760072000625651044108011061658113110160079012256062480948654518423336516525585025499030157418727505239845956839768616035273363991682865929199489290311807882572875497147315801915269710293932717797862486859047589037799830588685299855654724775864522880494277103709196795408589815372184600040948479919715533595986390591752395892389497186861946140850396825784119652508677874454313571461274515523173694592249553519567799545302779591736637555713417029783619663123372690089209723008387555852698496001205201947727232438514061671689266549496749706882513385962858869912095932023143665661754917464859712094908495464490468811833816515803815283326209936553964902858481408409583469905990167015519050019858809359708441196497482264442700295783568503232500988976973928935199990005977364324511559482252895264856163174937176856484962946271278260107580226261840463030437568564526080416668593177578535176414845739165442950044778786784902266077850661600153496638052325830512555077288936936870483278596309735561644931218482403879978226411633893436981940913981155003801833113513780997214138280018935316754855788772131953503835701100760152120432274977172613223037327346604683649106903390521667107037292801420209398749468418348661287853290900077745017180928028343241702971061565638355683530551398138707852505757738312781610388209827105967546292075254004799624460312602732042160844419221365717695933751627588486885283027636046527944191366093275767929798813433529998165365764536822533131117701016189520187661572006615461721607493901936882059725069917625480908522774722817608345191258131407461097043361650956563093984525678691399199163336658885358490999297120463667302027901849703413810520680348664062184144745880406771754586029905773102810602565000620557754692725936575084782406498554683335352034862624851355725635112075764067630733173284384251814992867176083983892563049777157609324309476546693727648350916270107539237911541683781732633426251187029405233998669112130663293427546455108244280742466676555853464873815615894540201727571654025281450115956349671203775501066689541897129786230114872557931451041401430265042448181073115010303797581391015927146033079407997228728352846919579106275366273348403095846706055082322641199245565137100437770442676623603406378392665304437315827914402685819285220906890391304729048967976199636818193944512205866620372760960930899619193963436383471174164498656439328734837880234376412917748842607444141464213613532254157916045824386034920854660297816770915535537344539649641645226274854330475855164596827053149598644486738144359124169032673805406023831938486197397881052587453105550346788314613242945435940110797871583249781138101959069891942433310751003097616614979806354456020032115565351369959439604309852273743999311514277885425752995415562279466469883519114894106408796312914322252836929600904800014231998211203187812658330247456568347857759720217725259714249040107559610766216927550667101031042039805831580963882658908179266653565304225142644628938379116090128157499169541542785649421131890389067743441668147230291563696803338865872529307128410734997435534889364855357694495084787938454752955205715776888040437044727319889824085376861086125195306779421281969102700248846755521895500318609118797031637468096055941224628185373932279527827322796843900928752329112286777351354819025776500219553561890877692493300988551606023606255471692262139550560836205504708599938187574238723890436317391007101372250038101506269341671523016656635437997905137610118456249681089431918783491674149521730457593264471219911956994658830151954922920051336749866576926040447848388914308676002145479418372270976690014267282468850596738129330919025155835610500593571397436548820821315477842044341788769154603280396264108722201580177353791724773495973178903220863686003748341313952160484383274170748664336484503643057369141990799225801856944440925823852471240916320489650724742332271974014185458553746689614661515709264964375646524204184573290053963800162723996121122946895657821004105986871252333819404687997324357490847592066692681267076339671431776784427224231482690998275537531552777252031996306030650234799549166105403765730688377601224617536148644144938932103516745055086408814286887717395205389603888877164679568462935864253375390820311245215004295241412128789602132189769528753921377292325058633172156378025566176711171927633027241555152853411810194026572520060206046633382735228933225807739209575404205292275937053023788224218956601446585003498938921462177408531402344027222765810054306192587451272453823783872033006943513185790126467838475935734566675006555737740323215587754468573908252193260717336959882164686294673844966654707209963662594330899189534004650966591002898353172278743235343414650433125263726925748792121412073660135532734585917363743401987938661581935304062706435262634029230309091959552711168731839081743611725936773920609911957496854345242131262648441116014625604866559690906729496122754542448251111291139683033018529443735910263420394156907873499490758613007389427945366814582564622828238490345583054313757381986390645708948964068542511014755616618551266117029869091080182910079962492045481696809316285183100793914578236302916696516855873844306504397183180325241499757347341124990628366748027078255264770397624803689705429791557106275065535221680084739345669837801145215190182124184871238035028242078727645247833414981925423497718242849840256200671099668039195596212359014597151216093656134966849980995852477203439522562764966378755622612352154981685657626936533994142289002061144416372980020533722740397339396627023344231630292281816280830180933810171392801830082594094828230860699921555122539147178282098403768722568655484947584018439219931960210965204697233836325928169228466870554921602556878529194084976595233211009540089536197583916389697178473806135750928161078406699839522033256997396546094582225445787219730040223566625483899448110827371707966690082965834221631973179478606709339902851482722183360863494378103303397628228504203932191028966827371193971309133775196480357816292015452972246904087788897548255033967613163617075204407764685958154214795712855841496401175374530573148233610967171659980305075250028028843967999339830873756129997801216831291793020723282814009287541811093218530321240069599388391848550075742043380628265231087752747093351357821097662223771611404997442011893627269321060796403943019394615689713698808715731915698986252897516384144458388483668872317799780803525919570277854222395019331585721765309222615405237589291381456522882194443679670634988185597032662619111790180635729901088836683906486594628670871076751358138466376076625635703718408616869978310365532740865417027178930799477682157540620875006218371745671056870178359047902733245109661793050274138884951360401386493604809847381031324569102882783381248685110776090052683803614309959672305791301771056003801942630492024955512408339618354033487332654199029159825387546789493273409283376009524026216876463092437967172471766757601606834219188912038592640262931499360692966607788158815393594823225867687628743288508597047930362104419431501728464933738521458867309489097793814239076124892035727179726592249815194693442864523859550922429913346096966963212798424008535666448412067046733876486936339485393271932922318397489388933369084157894252996346356186988161295614688175697362758914183304858204283145156256910940396338387213401117657362706801561402225938969366992751943355672955623773388221878185651458573846295861739189387791891572995709283529960902448855879613092172899787691095785979989334474656502950723249990372741685661021712669164543985814908714485104196314879786200874144713636775716892882274063274249676991745204854251339247215204738346969461619170037007306092416219016147167768245389245836024459523141911131717680677749550822002551903335330688229506408656174523767585861057130791186271527471244773482148956789077570024697470717368462686099887514172443095176631881828815438603712565887316342529969383920719841985390038231620703936388372132449660539302185910212570935200796408779062944929827804960841626019087717807055721253597998143035498671072138352872474052195893082145792065488519032273859473753073774496860447170686887271607267103397601699786987235007248089187113897357296269615824206757477701992390369752826277213215336179531901206858307326933415586938176503095835934910827611103067403655977661595079590400291437177033500963851396108918884513588650973466572382947589113963898218890242476866363457692789699793432919354508366241252496236788723799997200981502559792014491968678437146237789887146556149349864063024421292473380364221030383033246608102486918714112351286398657597219187909385142440676235291086761207099470709229358037399182533929527219218175998830197548011250684309491218508141895654029419109724190366810565512565871863267390449407342468026342922806605538535249810708564999296009568696705577026832733420700690533513937463346643706933551867384986674800679638601794926916519281908396981211020464854552072959584406445837811852617839524381147890406894060310973071092532176487542769266331066735568220204236905871870593319360583276415994837042425814180338320317959508672345747541998807215297468468443127533565691571337708748356956545563717611984947772317819003129096949626608791747212391798620508694971840209582906723091678833906111659297291501570242178673561489281208039447711488885757067441972784182260535819829521014356797653466019225100708075057292942396566099716827674348771672978207832338239128732965778893700635824347478273104884514361892385724069526240369629435654973657669486540855340080961696080611234260418281050824351464052309854202361569044671745209064460030142559941245388871847705589456013221049049829679554444875750419980751232526678119298994014553685807750221666323798264654489823004813332746340102422155005120191187607295454022136234595740756320902892019273804129972882867677167796765260633795785543686958321986312056869723100075870212046372421448204491016195191432524441604097768994599237877213305007314140316571339291159759804445154626289931877788777268417848499609362300835320247084008051831265380436162148220273179467516475314241929513413843699515050564380677951982775182183918778989632957960999446823230522988403856065604526453161795051541523194759951274507784325842851943309894126607351582462813134672575336090937350010135803040885530042590952596986652485841009146498186940769775601876426369220434305380447913872706865450809224009492673468589114034654226712933065409674237387658356315900203349301094457455607220830981136279735214971489208289246135701346404152323348073184321525152093880509838976919999865895702901825827882801019010057072005252133626739599785566419970144202862874583822720144005522601439646875644366468115654802782542117857925529988624826673328810423152254373435438215616249284686457957987000276545904360666535074641507332138277383837529570014560840038463392979176273572015692592179639338361553043990156493216694967328181890177426884629009657780156042532063456092856305820333277838401015549254579311610457077677863305563163895212319284033714387538618253191842989410096281688982489557778826541184380051166099158571753637708770393680472274928414685400119232174544054157973496055678223083967019585012712561435105910318425279629563928870276696464156519445863136174146651711924094413357728647037312823053128102388521746030530695183616592132341546707334896957848885406923662880622680861741632847773722278330723329543993418716549084391212701009441172213340850386696231206067084044691046510065095679302307998409786863467344632337178583978392045850988034671625075585296628092063649733374506246033970386062486179670246522059261502862599836942326563826755201351381195947500961676873515466824342548460640775437270563429315217212722762305480657680833162801668902837655533362972236971462848107684903081597243043435269728768293211071594959270999699471710630371297390297802361934663340822300305154109944157590119287666353221757858509599066991448779081061435692129162452188544516974692378184139567698117203709654916205845477670217466142404188369212922546224749919894849172561731548037787539407088134137529239422381085943282752568171071260076273187762384979607741427625110325778582348983226362040555770135211949297554472463019069589214480347707046898789151136003558925197343719638425884782528211736689611441307573288732729959305336274054303087213026372230971225675055908593223165448814409933463296399994475085833847916534869909466100489209678410524453963134495498503991348509155768927490573156880629351871694621980547483392810635322555829646964110898802562889222678406850644704731464330874227487451156922773950215078181128563776413683949496707242543359711075833342492553433854046553180722030344327672182587580612295530321894919119537170458772804379532186016083711662440258627101528402084335901157271202417890521278902740360409179084707491145331632653472774845840271817042833899868681244813942287258466224972761005914995438935204028977495049658429780914549405642661808982259970246775947940887649538840754786111517736662663094894127930216077037551577680960456947252627173232611909087321708827573336425496021842755764268525386167477459757744593121207034773583439804945119660644391342428213449952472061219099110981218398459657215429797697119343821481626611832213565227466476536667202376089009206409189115499392368251203117187071241035637799549537371867402683038090819446778331481564717275557294192636532896864326805798479941008586976249339210584006311672940569726906827491061680263297410996852346191531499839720504553078234953472472970756304789477617368473259824141931197408711467804850937160088083279863483874832351547931607030678049050371775348250220960989386754200443573722380230901449383070286627287742115391979400473297933084202850971540902072116941815107822196106058597104809327697644975520607530915648039952153359830057402481588441568638087377638390985937386977822457405180404739006634172384651397624166517127292302586716586744145774541392981531671762280299783470363234006549337399449193990864615581277351693037151028618423738059247079939896201725563393281153638000754919390754733493553411403123127050846923399964642260615370264124567988747159037432777980901115679006189858589901929681587278722645965376354879257469163944646069163612264812299083895073986848057922480211765315330161764231384733804263872144058608116251294752380886814060055201038547603452606128244976748533778646245189602014096007456583203982882734414022952389761592746467854342997467621107176722166814308389855199014327977090224983216545878194123430656598812086331828395439401208179373719800868623727850365285594379308628840431664378002498235898827250648318780910530264796771752232375273824303164903935452460063982403924586024843427297844953803002194602939771009803426754767031278629460148264058296158192301255034187951647995150295882873886231981162776433761798730234210479306264614004221222311768477268162619392442371843877099348521389389478524551963309315734493265965564192185197443891682968494678788016674972861765531945404493100377616509765694316840508573340003265890591928885949064306179657194932255028121105337072882380322062853983633850513296088891871368118656314742868441906243948798688890747360066350646903570314041299244653339936430451983001397441653595576882332282787444953727067066988779065725959302230892450760151751944403262215595292931013763391500570841538524090125068673968765353951249650956927367553937007385669927216070763214760661749171632741172748760653987071538757159820175722784800958168531411519950562024794751720274437704240657100365766768475225291879473857417947668918515506680114205213374564230312120802099267517385926671950328735499377204051168537728679316540665993159727075123312782018807352450207371106225965421959248813443295599170013694541593098223464411382588475438802664384238009305751059617247611949636200194687682535785074441949393125988544885461221231071959482784175859977853182541619261442374997724684164097358235603141786826508476715897721320188647906769204484353746100902716253715162598897443130939876284115621472854514626768928951271127808897040534101563228417672761197409012004892418257208486061445613133462215588472003625778340460662935082826584634833053184988212003131977515629521274794423766053409138243046864565956196809975539941974366871244830180798838426910872025241632000698830405656578138695527236375690489164102791463497476033325434593715294763695346935899904457028801618819646634845126689699930313202350254439019436173169335148187880754538797547095555805938777740937589914592919447414192966891624963845672423403967878423300234842157704829487331932107513439734812621272823136430850996354558492746113732781175501010006634810010708725652965287066659450000055609325004737241172344970752239373577663484634997340592122605898988972915726246121151080417461965704404401021185897952233999281296251180332687756063592985899428953535686987587966824654949092877907738643973423930793205856901181884840506745579527119440963945533666999603675785253559578144689665439000129810305170035655922962693745170826467570432896813629588034526052474576965121011199949132467125998744851136741362426142504183418819512195347684670596326207831139739626352380829977816482826465807723632375063911164463424375511951940682582208724529614382839810761306630346856052789389312243447817991823003939280534104616983211744250982162888741748335789833647476863090236942033519752722467434765341731313648292066934014602640431654855852167448868754688393114539379960933086425666926625317790399845475906332310768059185144332117841895849272498795121380219109452911390088231223370277394609859998120347359929619565965886900333285298089445712471183572175047908375558043350418998544321031496441029348833343306046474096934161396312857328347697308902994990808477785624358791867348128573942073912410036805447586711755416779367290597772740558791508702494760393394984916449434958756403948216608545670221870205632901072873534385459454352546566146147702998842764684728551469406030061442015667061218688334320426657899346141918216662309204321003422813199803397536517649205692146630485713505200416205560950267987242907649163768674682288474084165893630122873642426199700497412160573580907744396900912623317132013718190799877816035191405412891310333717454596427434348808797566496782317542042610209109477515991931697858177454239920205581614768200602567181414371780320936738240477056766530071710497227643061577860008665204014268592641719141131948487518395161713125292278110115046244885840639672819662654248809195769610274419709594445422449371225080775347809305359518779081606329560671971684009249443344008709546304910757174072788493342526555260860878021149511800446172651298310690170693451971082627423415393386771825071070875945302011139749848728422481915666374764950820915756827287939960256278107269397213344619779226576704515138538590871899568924496702935268358143773945486298273403128634439330923138470519293763453116978826743731817255087113656658738664866939509502365596135182873452029476069656491161474837382645725871688601973431152039616613842521131552939053355818735849642245331443877327433602892317474245653949547766612511952268177541500892005486212545721046387037900170991931392883324859779207012003902847254531154058861864458032774437644368436769195389763934996358354208526110015498650396533405967099478263239533098726261113567103813117495208376719354595970003428640444415483668563454927187639969623950570650461379461424712082907079254696794543701081990411519445163793092041376193027706591568394622688298355954540590438240287335337114759164526381147251440578886228905944920465212706846316585867153922487977381120135726968874898743155625464101530464939271360812713917616522184630930962830931130334672949933481970327646026481472366436915587398337068417236508880691740300272928085568941189153762261529613236990268982614548751465656535507467653883927980183444617459059562048807336385419068433293559667078570470094592312541103694834036287801631380435266554468802144491920339612177896638287703202814729574841652080750496211943983683181889855603148588961389030977509418230908490760715219485251524086636968160707290275979220470090273774703859248132325714840549838147528283557004247782508413433678286069933294173826723962245601741065269020782365593505598375207875202199315226169398122573172623489323954391165800168797529380973543857123470829048397861262152899905533309073218804284031025047654658032019879056386623605359815213246522285086211917197221035183926396781063588013134698186193560696867417854123252108438167275061513251974019962264274521473762429138900541415357573855588586910446756566520921858357156305109979027305814130699834652512903218553254539384508899371733021417416881408834609682274982204360748037061694664823958239432358406515398003836948712226861228054963013604449978408414270888123197105666057068115612258210363606221570327044364137017844542796993540570456438691274266683594526117410538865408155583084677380932349639890471445530526262479746997561434866616910348984376849843623860009538371629627302087962686361844243888650516341387343692843560747249033796115185619135050230942710845810091721291148950010174533613079932332243003235919451417343301273285444418637229618671244751951583170001439620988569679058550892150285020544796486508708204833136500598450245630581665975098186677755348462955307414050806504842418447582154467856781652533580942195956431614286975895557052064646250711339106946719200031209892285645394118542508290058671454684129488682901696296995574567304359746947664881978446371804714697179329122452653318234957106091172198433120684208393225046958523213722921499974625902138522681857668243315799474989012213107383930762047897951853629101457537480153249047229334863329194162374786762567449343180058493640713341350358970973320951213540808072090021406127983756244326355308187051745710182889325733586676969090230788037597674726332417480588089332028687653230673752161742374877053853683983559296587825826646493254357882448075884804192326852582771333239656945841281909954509975774452027471853304118797817534643006216652618331123644999688415256747349247881863197000410900643214049411792642034685636120174804905171698597129943988378968060695692688966324296562825393690459380938955625974382117816818381022625595228618988286032387920110366154957975176514608303829523214734220648160820002764587194684667239839722921848115621178453122000077581753294269369154909928946377866110279285124821534231989636884917550159954418838509777534665325776255370473138991346444824198394311811071375162273872552521465683834469447566898427573330242916880360931397227803045092929633394505857441888692093293779958603513374786739963922234611971843028303734670216355208650332092458352095423633814441274900841204952282900902825738454373298628815956769727682890589561813563990949162528277354608533732460222503471689584714215709892389247916043782395714729361898221439639776955088979663655986783480986426500675818255789290006198844855207700883730131803127336332444076107482416869645382389018003006092446435196755876893191135061742373365661837137527625899886819439310613251274011928042692856321432131303695577157746206655167053791773022547037451020935633291659622802488029972226688054410315381354573064587797624140933118750399632855557783227691747808361711165061536057456772703869831805944360199685431716247621555584784393796485932005931421982685600845249701415019425223218013718216312192088041861095826562084239466639989535185659198161500821866139953046906154721008104061570783311926503604233126179003450406768178660435439862632654629861568781885080292618899549135423550742915563947490237356535987378855258607452313333155261717230591703568769128705040382988964554847141112017108150801025919671090005303423498087791231184335077732849091434246068266199133064268376360708266310277743438106857952307426369998833501520211410644215604870336037376531353146340754074902988673572974264159767188556136757366921765554827823635882639681272600425781281460014817241749535559188389316132492752197538460719805917311308227213745607365535272515674193225187398643299346215985443590440906128893562901939143883434846067837661117146713265880840571779381286989798169835326046465114460912739409458139138777382526212785151234791913578216539672340320532129276626256118073536478356285126889694404539295542165317345932785392599389178272873907746621709840174069693260023547400260756029782942259210535201059637808875141013034450651242771743043373372874044765425892156998580395002745022283885580132387835138164856984567692128031142189248157339677328544129307219066314008872125466420202803766509220942701398070935136531991785775261789981035821473974760305072132247883225172993886149126304644723693918294075647531811424584631980029411789919855745268486022343316042656494547622950778874915008603668260555774945238238312731118605985024898389482266463281067148473106331255434395539861145191512425743593638001711866076944416488734314439809239339673010257779986023914402570656390335918690681857018485796274433123943025042192249851227500131314339103799500297484300003592035247232412218718393403724332400717230647865847762085136380813108984832195943843107673796772019041841301310732805061376852714134102397546781707014448935082184539571123624722262522822158222903791643056909028036833216539403058943789457013355485796003384544993637542502708818938169206514786585850562821242930242491118200669857451066060358509874337378239916270195856944089878403272820698130525282284203661329355613811007869487025803986095384363949129256551999890739231599544088918985331381816294507672196500423796825147397446856329801803334508896802333171654607338051354278406589650063743214105122837534252107431910935297858511937733554186469523400506367764898234680132538007895298504989825377099084655500247432685158079816798796008536230854641180534561057701246449893532515276461957539460795511655572356035769163391609907252909145298602209158394047181473956679552823893477273352299998152390372904591871866744564984420805081332043956678879582639326536720457708479939414232182130074814505918879461359088377971140291691109538320156660456060878699339300025514974720985247208060728034819825702211725331287208014350856040193037606421976766251238607689700895394613047783882016018149039494740163011233273335467600420468894979145561934996486446141458901806532823776685921144484803982753395358242974107281387433040448259056100511972620823229760160666951864119931761684345130813292877241307054659365248471961758092200279174622961454223397193512222735219248775822126526145634396980553559566161354983074093318092991718807503467171703665185449973620544260936398593768792986830859847463103275021153437895754579532466085730764076602039478345700030625877983850868140965671153336771956076851376953295434083447001959083218540208593845243476540835324689856220934541339135545260713405458108676669769918127902717047038155627111562234736046200568523018204863550796000820771465482492619378765525887046103552678960607639400786781909607181598513091981615247082712421264089559824190489622751367590709935877309067384250006636179937521811069615323110012341102544699283694347858710408380360065573680977706896843085186443783755205689967146568394637598271259048060536805623375496047862363461950454315433628882020367400744913900930072967414126635757007770975272648305941058442109525662150355546460314420996414672356236584731262627712238921757093893366784699438109115698691223135059450275968423858719908614424770121923137262988588561640961163559147729093968796896473233771391782289132617281102884626004193715818894046863002564691644046409738062744982079733976856726597746572934196300309326282582302858635901481858749863477884181284707169479906330813094035985357406596541214783482670155033786057505898766576324433263310867569038821175956267976735673565146333152330819204231841919511240059644811163613563539485108120328839846954777829719873040826827394306688746893995403659205290186286909965382811884092628039714629329501560760081820678966672435900235283567000156845892835046870217830860940300335663975986103345520319839624604761527146036200391374025619346155464093398023217347653661639572303051025742477272203380169027376235711939965293460479752059175452263472951805442824630202953165941361244478761620210895539681770500266019988442462803633360820443056925379700701178625972820620828555891436887501118574824010091853288484097541814661732077959786616104223069465489541276609332116663965969978387488715637113631147452712246992030714414821057717167214759626458796644526609313293244813937650448208824098550401573336513283092533381533695388991534151504448948591700953518307019117814844891366599498270673302803875310270840799132356470184050326802790227859766235601757868350500277011952486418627843853902062890430471543198568170235715632657810420625180902065008559510678118685282598758814069233485324648199590550993538825485762117357796841667368930900304966510499181078937969164400564872833949473390776089183167015138686968840010741476162746304684759729374238234854701663922209444708823842532043154684461893416900130557956782399088081260054112337613092258212909094176465775763477297792485535894412879564736077138814311483519155851338526676318855892397712682160838344931707111906846045874635419779192363707913306415405938051615420466289826165877952615790398620589344878492145763051812532363160204109148736298806672266438111602754698029371917656535753967599210824619911122448409368888469591778390372647092484283364753911281009259220524035471316023874438432823115745232175367033986670727243337335822229363527674379381471321925288834334561605774642835088264642185692051619855557366848281005796973204745563204318495678455755618307563093347198071267826666884396650525318132743876778674345030852163275008350447002619571281149811607079383550540148232989932623792310505548805318823420257964560692557133005022924536541429300038978015189083478106373995174666573606178672579657477531266410570150398818177185565262501598818704191210042357462148795586872980570592409446629385124192879096111683667649749418240338963753574275194530257113845246936798939952918867393264814469847937723569009268479199112110703998050435605519019880977590689862001837500300202426932622236110001104678617213774821007224155752203621926729036106099868314527321884182473390249052803752554533783549417264710291910257321608865814029349444984453467196998482017218834479635914030108602000258774188041493885104023159844955834044074343283718706998536457660492450386924852652532355005122383279328921223713704620939757112486031548157142534902759825122839785677897401156495730066115691070182046346188229864358557910332183003432136855285070782230036192375191271483381692093012524639562727839961669515734504136118242871795778410313886638476000335371809561127411480875323304604083697324702025216929226648553772125505730638563235454406260283426239053330634600676887892674628681105518300877117551995825955261585350004617923379747037163864949652144150409150812417490046222550547752170190031425039951731707240843460379088167225599927426882172055000690064852549674584394796578512693619400698852542834513955687624450345680451936820323403616078641132004782658129161809857573204941376172286557836965356002088606959022002906484652497925331545497890664911217638071631665330445102598544796407813922703687497468613001582925185090312354210569432396503251900431896963906361570547058115260365803717296547162877193884407563431807268901196222009258701100318662975361391010558395476852414598235695042103738834022295674003341414322484607758165227115592990157233115910487430197574135959446275760655651116985859765113234647721135742819892888598677347367481760258778393219207974001734195513601384780597345598310607378331491274314889516876687573972362405777707674591879633792101180823385362944787946832438802921019887967187781803516977125647479353617358659906230623703943366217313865174927585574046778347324841129703280842258093397898241862295637998382074912931857024202413971675738682377555804382095322165704504783569513594122479725770701441100067158972503468553128722460314104997227622570250092880875574267160879050256885127151729857862160656568805873929296874812327553915400680479800770079291388401556214833460882196378809304656063938142847437179073541674731413247111995499377954244907000233185990199133753131685388081438749892760685870080996849874398545908174948890873633977055258747718619102657279136477648017181438437575579353390408039733604411795035498287790861675334820426039934294709923584705548945978222816758537731098646413401130495085619773398921909923215996531403451750387529227060984889957299359031620744476751525795275032221532549127586070731841979271628766092798296666135539123402326206695863739720041141340021060860820444778715624322124326585795783275840316524125004077723156991239474742380075502501468580527486393035634041789707273179075753664251806128390528206979274758519446956565566688219801057975221296531799334315034853266340648102501968292546129030204590143250983886719220182478824963715915589758296258612398504118645657261344699888423835401367903675348782520106408152125412222224321223049961776080009289115606202646850174112312899875765803454354813301048503865639987396162533151195160114053018065286398755625362953114707445203476816452290947092746032092536941377186502187683628822816963923413388389786502366360263658870711571553817691909541317192674928227352564264939288129395966326891089915661845539395005933055574388157021719070896196087902323977163674673799281210716603443073569398037493189312539306238858268644905745540218291811890249905082360492913683825716418357258507912015463036679391402175396646706935673823004694484977771758046272511853272728916821475358807147201931105752623887417067580145617306567515688190616379870033598180659906686261902995957308322730595501497057806315163646177503152123217833307467166597500599347965966888653896959456016966123617309510789412337719178100730307830881778619416358848935430683306914002078425368015634251077253694686938966515529354123049686466859565373385459481784752241315882099689274587237193421710094794864418240272079136714829627639227003284118599016799279067460686459250839157034781700632881380050014773747297348799008696581248965282982176296240170286281948151150806594588011958355027130493963987229500877250331520795535055927210357378691620495567772986821875327691918776311336955897668253441122653314042703537173241970242165440944292958571855412732861051843368099522144226940391541824083534223203428327904302166982984323277159692124878049682505503211279069227396748131990369004210447436815660135806984128267754343509417346513265539719252392720683129088777958698026108587751315037064516081373830199453565845380165600637220225630281718238972080566054756810932748028972262593082322835058334669839738665642565870705787208438974649222743024691114462441861783006526596448284352285122330649334528741584119941899952016987554186893584544413207467740456899690733953672460631241903751516572774791228828355834344363393476947360375969052740891179933412111831439956565553147221730813905532827188998000483614954697032412609610346107819280531776396435478179795564639485712606215164589012737179825885002772706505266384036362528796888940910987801527067585908046117638962372541318950638477317991385628086482735815285898768827583544752099789998477059422044269603663426891822197739301554330969528314011009296346927210797890848507629410625778350447038960660938940631402160835879253478311298918904610079480312107010072969481527198854053377717921590111200143836863335296220087571708108677058302547667218713228073755406825549909768583312933639940405830381904990844656509963323764113423418377418977035937999085586661501229866445430025917097936083581886309225438823152077419564849013969329682335248988222893732843062486766175099335750473873447498005353708605007951096031051152341143206221943597044351638679890724122829228495353928891106749107423886475716446654979891478377620047356591960475417414189274125564742313437724579970935655403974425117411829623253026608759932982388860931504372585041813451093042224868555667061261490706983839289419580098625149619565297725411314325689189933302926546057471009697239548089887509426876995994975749266140421656110094833854891949644515437953481727716786583575986020038944287535324419388527825423376267850828115214031420092902348749078743511148862470410752893616467578995205110789359667922053518257588041981180257937594910073258438750760808970354869433658034073529703367711294228265326845795126196608141684788799114065587825615959761458986533916753707823358487837752499810530880044486807289545969315030667217314168664037096553765544603492315947652823166964661929832564899749840804727591342082176350369543747016946497570596287049023621353116504368528197140333440464034688885083086002063537421313212295059239743302733196513465128001594745221749917089845450723058892755778076299506585863070950897952330608608743505750090350991018335513808845551132435003149222283011990386294323551720418124446228544341094621839409139872434908380264017502388306005178948864628161595853532061218748115549233862099096294090720867889200512371069377755793402541427812503063703078859869341969300241509973181188642420990857793662515877581167488204671299110762215427941751352075861687770868259957743160608474153325323241024489662319593341648600804266061052987194066253457338653022957629189919413639658303020631094591711271381455686640323614177493420195105301450880803585259200467444885003314278392672920305304560290531023761616988036678659994221136223922897257537357757565080871050598400517674021269057513533018996215965636353335582495407881589262487931584272375538531796132575837444832653570133304819768982319890609026748698627352035314605847337446704209247958143886577040620180317608353154745397067972622073611229493744463545474197077193436209369548680119557637427974132210521993094793348368850483679505343988477956298706982601214960432265776488515514085216898085340598161831596943301138344681718164481059561165111398252017816290015506816911391984700089828803235581264977814430949451841458008098930078210176903673636289258571282321443546544504535480812714965518960380176732309573468478510470349692131830227047567360484740388674389819053071991382734501812666845030342284757881458337854730665515542604182925736817554604902045824417596758171502460210982463299661914847691240313730588184146360849903766787821371910826787835589038232529137481050189148891958846321156464012916142065960918772898900069908959560369638190698017050280695899386824190042079239915228473956394000671094112464447911207365637754457801394383383111166382086749909574026200062940039666325620968967356585278621431794141456153332183111045009848523409034773899908027706933225050377730799535378652862041997546065797395042964862797347993368399554925677830961770270781468942673048504505228910365089045588572220323227939041126046726331135801764474935830690631776547995775493600121113894194461262823289843059803939383563510230708070057058485284671626444279172879852728945088383034448465620638612507950825373148447578088999603663222980711353470565205155702862621478487104431298470879239598982967529007502600196712391952044011838112434353805440146870901298792362631453247303882662921317264524461030225475432356714985276899114435748443730581864657743613069662144855977285493442536452435515325764157760921554748509718543076804261209671830492589387420349736458659658050635090606372913428566824792311810054229940287278510796942911168619950640335755840284736506077180921347609357372188232195942836730637498837616439284240956861494535382888820569507042277694216519232964819130804337280176813074532895231376139016699768864756422249134292033915916604831865342056118475161025503013349518850712507888676009977783403033945691844554758885278355883120688665988053952589990148025171225485933086422798668474275092502218136824694231230278951737123455850859240644456215880229407653186965609971284784052766894588746371204470168723717383004326913686947724886340410513089535856463512344904091883578802314816278955322988781715888195073679993730319220274043235239062306507475540114804194882161906619538215985776873506487483082182775331005070097676063658003002369017135298662756217765599521819353440359733086124940255832806382738443804926355974961214689863422312147942034349284045419632447759782318170755823140058887810625051487953456386889708959621487099581685167743524890840616827403395541075018611516588505477916216596255674557656520777755354352062740314604294766473444197966507099951546340865325904641937920147731342008475500210369965222056767342349378213575677959714295397128117703590323508537623936239426328186064951433700817690914212878541651858310684767517150259890021984873907602866173596657333131703830404448751588358254433051823892446577954051701456486795737030719156034758750674907246052789913506650247891818281209443101213683086447638775805761160584250202723677140318754426042128432222174511942170602852113353691699165358849761282614414824397712926932314514320839336317219415760821687040053340846521373823221613832840972473294599547880362915645965578983967949522624241973339883510953431755909138049864909779143068290661284496765122711137571409922435356155186391343868704819795417088864903945840947085776412301535337042659572892258519409828243940513081747225291818624317432380662508583892042317125833416126051047808698850800033085808266229992585455740469657023395902733278735018102518589998394836012364555738386668931364554309207341924394624536937906205948912573029850165705564834022485248901138521862292350704765257199031859727806570420404407030110634707223697507342676491725773125078847064803225172994276134177089888406554086809247042613259219897626971076995286009941769695034095984057195990543118474013587641896952837979929371881439534300961214570909719164559546222281170765403104907123695138639321450957563925857244374139876039415143793646533188946486250641760614184576571706760547148632166387392898482212688642895528569365768590976963725312179996745509300378862391080906845730794082833379125539118884124665623689300942116585093803324455768030414299169142181181325091218650351508512648452672692519609351545000174234844164181932125511483102187121147342993939012930558293261113150370490597094962453882574232937527346492735558896537502562717323560222656219657938783142659273408604294315670605395780847926906297091282775019285125396133530977815686431246920165338861069951502662033957444630601968043178248710946994615922652547144535927428345347504697288903154079877030571535718383312929234637393650814449504532960655627549891419803363005156071715919563345469075754937167888166523441337335882304040382197312312272757848910143098111028482311072092547830350108139508962138438073510736025175694090601789620220455259401123761041947352410550582272708942015311260541409301530535853174901261733771511087665290826892410380584725087506189268463142098602728745855324873330671369603027933535926831228494558445717255649932262148699891698425938215279870533014988863188565457282971517174506051885642899291480396831673876061518838128388627930986739394711994161713135106659315691321508913448870545049351113650721984757478036322316152204466360454237693270404322397519583373638712637525674008279197069242658958164923868695590997332511858011772100538914073363722013803120331110427442798043365646784454287252250068446555528641710170184380143623382844744852755338202105838784782897242974327273790104548544438806577999617395634579877792433177246053733450970648607943912439026059264227396460299631861835403407932344000341810118084425966299101728477350471116277904383325748544235970587351176463537041166033444027516223682866854113384897652156406328441872096201011730728413943481763007295289353924997759955454175439963681644485027420115739273217653403316437687367555813473612349755181520380217188649372420314176302984037970032193777146152835245207474269297335326352891516752414033829473762790850010412456042137595227281780438065995287649628659648644756524805745198978111095867517662828893418411666770667191807295190202931663270172584166561089160401497695570804313355902354629236340988705136642698654623729559755868236669349557860022104185622771306442121388917728507692055474918402849184274131621104918838034357823154091243900414745911486231205744956507247032018678863303452924195623575313767109318968004957713878039027476506798571459066525161696419300833749290226389215671486130240483301518322310521766922945033947871989680265083228134498717028283377580594364058353584361980128449138929974068077252518094009821782815111949773232740420326280771246555457910296291340427829018780401049416180105991936802358080492131761691112715175491556269632556302494585447652044549895321264185331050048354831801915586607130905856893155996604248302405363480207357098241722203415928050179130154987485914118228839914099113875209921779855591041450983341655819518940168692652841697908067265338833768656193877893570366090234340838925381551471584147331862181171143757647241355722006362246009236660819663501286616713017755527570580891752567847240814652466172585010158793718371054082278037238467388271848171709625413734629942998093098369343868515627169446491618619263111618133545160422418404079308571522521610166462725801365850725265613769030534377862137719563414636964473391860997854302649258842088700038536280965825266784411277908467908651081873487358560898523950285578721263100606384160505086105222357104258917468017845360327452723191057913314854088988757044006761710510495184437988351303963276903478892400460654864722261315614802819040313527912481536455725730953901645466972204055628868519615205920132955013721908445647071859627107764637769423736637577708647564212593679911176155634756729738640998874900647894619312110657246030426678148194586769056315705980748464058816462119627928248187986628511519550953277134156027707848430848506738418983833394172166587003330402812173513055615562550296645067806499816553648744525742032707075459617774504186116467592355312673714573336605393494067239768509251503367572896460925321392519335642797913199171091241753948652111092644294504668437904617555093205238648594702449110406426275511577674184069831380130987670939378031697615283718668791882209577106293660476012095316121478345086169873802081024886156546472646372251796740042326983117989151800408121650404266559883108829719344752218230959843710470860101899052527889230276982102036559905643843384121050725967507606623616317973906961363067210185993746759759415635847911620196028316464655502404469933073255761690962320270873230507563633929144050700838068601625202747797058224791406001984668505646374274792656912104244096128469105380813501979069769940055432064550822366266055152690840979887218567803754696118910751397453067765293112439900856551573929521521057943322071768894296392020013522745653214177557793371543849272678959515855269225897540588158297165433640310628031328984438674204773350172437105190165588104798302914293880238716733515984159799469664422102749613906818335094984135508748562344279222884516994730677862830762295997951009224025631172713569058580510839989988327845943474485292927999935098676569416280920385516880857539620399126990753791271255745038856515380437359046394212438952214007874943105593921263205868880703798851664082448740220574208154070477469013536116754261581267659350839693025958436854852107632196180910211030746605630611314986906781350205878540173365564394926602845732238103290380788879807907590949902421454103954706630710150212008920772422290666838893713462622848535351671191341202634918718027396140702507019828815177640129876209018926039187076834560906174056873581126454199855143565458137204141905821233258964895479806935437340220931509056146982760757528532166320017929623174011745965471576393250992345515046248024009391615752111469256272756505501652646602557971591415328642333495235626863376386502238417094653953315334662812131120792716689160446159204017412824450600836196553238315258706536724205643899970704671388232146827560792122982295144044719676108171163892267582926592941755603581182421663376603332295792972541318163709764438839774054033539365701571210323977407725661303337766472534508198459581904072744921219654890377283225367972608914390629702102923485111296762545901315778798581188251954948940955417756939696286529503315307645911672421958649245959673202784830725903284290474149305003994507951210729900230228000693939418103152484242644134278772289715332271550435570963860361394216425875644100859486995254226924230685317622745277928500370826627194749395969296649724619417485102678000314556941605115947893531025830286322984511366989596441384733398315265984940564307402588226086502473807431925459609505911520423130345174038798659559983422011433222736282867303508052097978798986553737828573318493898223807484525428841356866573720718920042091441830306346267079611140394067387759954798139928085834912648116908014137360453759482422869664797682654588457009152695367441586166563297319944707194644806997425630526444938319989632543525845917931649723626907767431910113047932592838411848403780818789849575716838089848275982306368201913587659767735670351677677319992654725660601524927942577695026564449102457168330624436315808677168356579569827329429893223439090513075123972425652782638466930681678078945320916500985044778376227260157599369209345004096746629781712686438549858154032222202087735790336155615456059814942127510456086305487275367325504286197077901352120474428052636400567285283816859745396209537882236432136914618369919539293325057616870972601518220565582688066148605377697600491294028737262707502359144252612329312864749826454198152638219074286672619502603443483071544252811967316610736169461746274265858029376138126176719827827258664203889198150032925862392245332800873998952942859329660658983028680289328772826463752262973837832542007396893919409421527180773616056156018752222162859041240691329530669160734940429409038139516390454010002016294011558196515355020870567352145137840320407358121286350564693387449754348633066045216286612271150866695106893789550682584021596654977428499151090728614884046632779513427974896537029666394638849620133988662544306124079751852672561213726224493138172931838614319019230509131457942373121637710047492230754539285517499792617606731622050236003027871404972708285425951228322550245556928970098964235822882542174033028018940125613128258555857295517106204010424804645975131052591344739053673838244586828332229065347622554674549125285543010210726177717632978685515234865085571545141141198103269252451112790764549935151886189435508022011948198371017102907302527315090543972527583468783724936004139505647760704664662947867358263183066028869544460633750153217522601229103214734145538730820463832934717987961620267348760704295405638441297922500250116549843960924945796186961713024167759457055033290724740746505932195581753299498348532348266698227427639309218164642050174143495139342848683440035972851105272864822820190478528761495188939764444293558095840985002727129961106741566232982490118625879731476691067979894343542319149379885434410430373244880977650472582468650447576324987457037666065711924664848789773795926758144589764831576511071200236665206069357216478168087419053398841784020563713943655585707874202978181667941469510921242012363417133543493061009778544729693698814117689280786197233610519601006838147897214329501071137752351160638535681298037379976923062146022262906340221480314550915255288989459185116386615502246845566644836715350566731429243057364363095880796047940787315619611732364558548441044399839843807997118654902831492774266963690164811946530118870571891463558331905375870453782139099761146358872140199929521771955110311833891904445129682446478167829077096967608371897879291871123555317454157536913827216911739045648976662487225866606349739382799444901331990222564623980758893812212861309330160637612940045099866871333808843042725620276968558187861086584551163505568520475667208302418952311046517181732730095599242244332627780417158824322555031652025047159687139182579509976838674967318561523974882311105450040965606921221788661239484261038338429756551257053948750361373149775162649993496436516826428030836128877035907762662925587913066345146828431061508800253071859780459338146359786120518983823502605515695566997109478728293970294298050637259026054399897468389877467038044761335620149169619106459156216892400446852313698503301487706145321300287038249254338018058248281269132130691323774308971585673208026628010313452004632059361571879006928678630408581787712682880174591000611352851250145657919783410244689965434922508200176709596700887027953271251288535515100176973696005896129361200600705166625622928124935777562312194703783206474488519063393959471106146762942928966938852871316670746911947699171488960115577591154598801792584208552775117545135175124767192483518689033173229922222372265802595259181873061752033111072884852014420500167702403287695961837176026389120529845401840456452493072675850874849524207605740980643670399858398556916630730846988232428829686745644866274655983270685012310639002138516916784291320958577870587034138109929259719430470023311005470335314017599750526600975618478806121542727005772825253054157343469558088551083181517695371860808251898797936977702924898617460272984952968133996073715197380514953164092054379117454761325123355267493469461808679850312925811220117039558736983010872808958940644355716787626633959912142726922362754578067302067409439008477608188640453861506327849767030670641324271930162812986222902476000427571583532273339435870142125052097121219542646841034032727135995530886291661534072516442791062811388086181199909505660644804743977493963394885606996848422560399168602797675865827694288298479865175868235731883483846221956452628394370684785815419292233056936677368881548447869741261846982208981044909481675902384881029224296881865458085888686766449940681848624327095610560158623397071075577013430190202294382490085392167123313214530431378321828895829575201905407788521510521441636845834833209072322163018187921057712283683425617518296692518393905105499370284192532489199268222347980413337123397062682458246633950816343007900270640364785901040945935820186445823049191711350879781128722672041763334259821407085498621348330846799979920462350367352632385412593977473819917693664710321116003184722686946360383974435047224224979307484670916381627360294848386946831968355150015250265511385698172576478940422894898670557574875284728728707194674332963248712788580262671426005835444277420341994339562140632805869466354321851226068061516634612459047387728364293857256206006502245849192456853791817576652775966397141737234472796611909981363565438184851158311923191539603715890733053404798671348773605880980637323102373367790091650262306178250728961264687183155322853718142934857133807785586642988748673083286980372152994693214910800856518092904458899043357517837477843615125943486119180285250029697743949973395056093902904796578769716527257269119772034289557467056144243454668739452889809713694562068068261539488083223661029586318316448297242136077734931555287229689367979242509152941313149705485085653030358445981439491681379529072223304968581500411380241470965159087455545295006425986308840953730640629737554327453470370698049701155738535281671452268462656884213376966176846311628673711230360484672528269483853955498887473272408956315410439996909600685705012519453106070136490747847773287682168640691147867819465389722511471220923374565952261710262934159353537513863893066585723525264998272808403260632988445951033665225793896593642759738919155677782894361195909868622861273257697782929264635366144784942537011314150837488978234428092003237587346927272971546847905982959953867826748292435257121818729977585033028226381863056479869818757921298880252611001254297094680153697526826151534183349139690921329085677822831518579743150536379497338866785100356167941274874607125079892306262962864745610960500749836833070083625137500998651832418793194270399621384421606236030499117160431959557229522835111404019533909734633598090918614837638583315446082002976007757662695739449378495314907228097343718379982131869851347506436570539595850206143043198268613586871153989138433576128926393267828225235364011040003464240363565617516884626403657626938744577262845230840565593580605752864575815137061010906443063931276776715517791672958494799677996394991894344934517364601024978891696776027450192883181611801629401463840440968258091924370362624838698837175234509049550678257081956533112815302995007986670405405869624291038461167548979711873080996883083903553314668153709800891219143543634404911113391766045632753216011843491597763059333959861916175176440821911307394776242577497248789253820746284595642106983577767996085797857034990674640710923174430880919381576651826297020586513901733122367464029568108216500403491435544577541962893507125544229250600763034272739878906682939087402701868940216023689929537784398167235335231255094856144759574521290858651740378181151683042304988789752838544274533749995517643690637497772999255053949540872361492814182684611345617346627466021431300928143232429368362044289902214679504885827828992715072520148488323303619242125450789770487165880485557983699197424796740617436349074077221270580862149686090477179034016821787889365929387142140521545929687043649734396712873965636657944209669203251033131546710574430869937123788123410236364624481187529995208951972740039430812679190445274526974917390645352524917950522172098721435517941457237823201565744614116050541047663755015202584095487634115154846063274847165638877102868734348958478280218963870745667087484647161572044442720141654253465612844447340209833951345551992897674163616067276157448264606320364585903122799822305360120996051982236718264994040949358959559758171933607971351932924381158231704523308011204554257965272769795105168209821634271417131544013394639475210746831205265976549103252577750900494863836677980271868955880828096657968842774059677078614416019662303403886855699233320262714474892530268309540061230833555545775764017098544252017159594099935119695103652014934175675367206100762870838461538418070963923154695282045056941315718419165999292542610036392367104282651764695719637962273613041531386409034584245495185128160198385924017613546265025013865079883770045082732501535028178378658723539995552265218197866894020993206501800753734921079867104937839493030098447644638692575210271400448704543857746836815406687722708715737631830836686247373708668723212264493915130261265991619059639379108793762306667048070523781254577079103456968354784511731960654347218215205145981447965723841706491006315234987269267605991598215790730911100295566519835555848380845360471565327395431894967781667469482710190612911489105314746308521436557490896610053954350541649176658551736814743601988351937436736685536516016335068113002123756549411173471933548948465175052318058006513044668872959339436619997587208748069807844732537253661998549045081084595126220699891708073878512075558740364949007779287015437386118253415701792509191729085762232942015171587553842445781707642833796106261990082306764345425166536044361719280474220584158559904104497072058478368507855943414815710594873023262244611148841600240565079799750875219643036692106972687465859839777346323780757375069444835378179164859145017195605689750202955932318375329338280466409786012868526927763750252249838910307078845673014219304345382949078239716809984005108676588762153352414022040752384973897875389884602358869258147633296348665622744561402070979732667585661100954287394718237999740706657008093661400335130763684522849201549962721237588597625862903733793053791320222143358964865927754789774887929333865561454876931144811050316125659747319482974582874576486745032621474860958011963055303464329610762054278494486885896049830342703891146116606015026888288874821895261572568875050934901045099442580890760809025090793453394168304929541261310666663979359565811026491803892390898658420830861883833442038251987113124615485402129717275058099542469685553054583207504892409434563982490659893276035083511110428499045207845627886671596616161536758395389898334420318553110857468148110512264894565067067821448067861209609876281287327921242190003038362068994664946973598510614722215643671711201588655962654629267190187718461178510439790650211233933611275274340678397737293331281436557421312474892706416977972846877495979122056123735510258165591494572471108814715550014604250754093371167731901172828218897363551175311042884806291892506804833185681842615550365091577116050261195242552674388712761170539631378094263132334170528122151657897395249720262034443382956287451541101392673661813437997509360085165641510377351441179996247405939720741529277052292638529443304097004173077741363213977950799979902105898567234757214845414017038310492425001845662367069293830778763579843162382523805247804391683855277025423342798147896543259790871094248071657308631922339215876994120801508271608251348321570884459088901564156307278658847806598404239680752984003993198751336587942154962057121529680472401069241959709090267640424175406814896212997010209142801383644438583094421892249190578932598734281793403137343462190172154127925467669996756942778525489639242792101355133091549957162181613164062021237002771403578780550584665082185403489727199580164303440407320502067410463055687975221091840942351264905044068938415132306977663622304976729851817743749652452712797113311685321046254837567130465071863700112743999553476074520159562308815585178215118783870005622723762255353527371348303476769250769858816455822227609571272585461357043619009051830560272630309007994912104809810686836224317468267887554292157993823218808257175094549574259980346683834633302442377949149929978805675705060369048845035635431604274589122424890021941423976216049038822934183328638151405329264372964487438305008543761884472851724837004443159670927826728276954155860664348281446322866389162960548120710915600546032166775307561710188061265978069034119713902215501987763303661405406050812609362546014834608521956457255406806221185896579243263785866980932210448827531081159455081776923303116892849629203119375651187157928235667793351933643951031747914649654881959950058797107288050178535927599505574277535929661036405905876217545659316207742728581593243911998908714218216069589418703763952210205313766785075875837028367363641652831037653821321613466940118462197784086794484792896002513896679025286836353486391292232858366295599764499143130688349298043444371639492271129299598646350805318471317472694992330199653869875409677960081252694000579651293785695074845732002867643064043926034070910493772708185404201342309810541543832498553035102960546859658966121631876806452424352596076963804728849428083179344148280779848360442563487062905813628039946354379483742869537117908995259219698232454870629946386307035039176156478163477754639908865165247350421424308886120272462143037088508906726435394967317229908179745614344229072789940798979363542298661512350249784444855351298024624548987552370358998406857758642337041855631646928610954154498124564547720134191524536047923908416801746243405656370522706528743023834146106686607621595136654295182753738403448930750067038201773681675918879036263870045946646039832511787602163228178108802089751986119364900086154293117425812808041969853004483566589034090361785533149910883216969758364404392647058217464132364604834331713898496108632808245954482564991994545816437021286900720059152322050577986659476331494706968751166021673651444128457542417300743402900933584680685540617042618475236397120817076182308466622766492122632266820733265041023247234984646223315936536682683329758850184138272220384857569556492982772050606692980802956299760630015717496549319642174075612196032439807297938973725117165798690691636455219989286366470383981375665572607526412514793603076432022576552163879807992075228048026148992833624340113096333566098668198574640912245395095728953575530523372053300935901921386875456478120313742739652215519225495935456223951569367822295949869205995833022802576326113690131771838908150483905431122737968760141132789547336192133414491349677113899991133359115188674704672247090184990261163785515250427398601325282536738882450532372225629189286328747231111350282443824159213989836412834482163260756801536611565111434603828277840389349302460775039202776178408848483314688468253767546292055345924698199943564430062265935971638366670199552462592117327448760035498846523939749953061600084498811435580475548182983902323061820418485315060116248668721250403063330248048739978067489805701083765056085861624326228656650452657550750139832633386396172553812464774862759308015077007403743680259775832532943390498088605714263960501293813961935475188641952175299456634214070312773096986269272911326743355835491706241929371381646476533461903772446590039905510538093632378555799591205918880689906858945893389881726530705782759543596197451143738388135890777799482309438770531782147634287419306122157486914776174514435149273838495182460166025793446222124538008886928968041375428079150475103831776201046974956133215304938195366932616625340069342465397172753102507692723642708744302803618730747371175502161674604529480226741559047342515054808630166143750821224070175470570041343737915260392637001203117483998581290273177498175071650391022107394110544813604780086609147656114151083772954683975005137697061929032469663483775541662772719507502535821096887744680224218860780309767743106526476035253127561816575897538835448461507025923876128938001048528093900996381025901991743492005622408123998828217144035006095936140191453608526974781445225430175818174579718211684509048183295009799995245588663446365312611353650269365072259509323566176039353916078823295398240541608934115259869759262264671919561265602941451704232597865968610615944481151106871039946281937032849235017012693080037498336334877812254843881097355979882169399260479798526017252846847139966075757133633055787758151192261106643731904946975322886483326195715489785888336273084038450513916110303873619290507119123592447315728022724254917745029141026899283076252953071164390965881608080698755879524790879462875595786029556375771400624355063165291000751712474877885113073468012843780356485097130795545502769329518773766645471836428276639978562871287515170005124404672564960710219707851423132089896669072630972300210368219142057035245372503376466958533509848155179048635016821514789505521784003172217007822078007437125160433834639614437416726340386048029111607970567336961955450509781497036719207433560838196326459852822431369469695641678649259659305559931547646722017514895738736848508427294567700943479986705272073687802316783991106439089920229834504921970635434333103799944328861632449790234092039052729928072364816329140386671583449580756122109739469159844232937237075274983768770187645987333794693530576831337047343292282084355719520117461701387477062050342593283931883588344333300045136293537718769434522217744178972241802520070287582018371632345307342649003570941656721042170428153523902493180897419706289074919129502335196362454204690349742440976243467312078106456280252021212124824388336131480796297439035942714134967451700534981817388268805999006506957669177495693096343484496093720755962249635161815638389243150701694280017580011524769545616427160361765415055024584227413458224799698845095193649286894326718563968908014545192088570642665081894067180885481461647919587835954850520976333363897513884798031332581551751484937504250106557056832334252050371175559294915854194252319241554876505848496068636721194840667716817648700629311591400864354819670270221748235899450143943287913404255296205562359460634189974014935927694791156693938395842450291331196441709050168579215850176554751628568952673781024211071518074145483951221508302130612758130918664707459436632416412503105464347906168063236437828512762289128378626426266572503252286878863468905977477831920328657036924115010693455212822092873361164776742140344235452091747593299035949739269267234304311800376475313909704843583161738084474758907255293035120296831434803362155463809405664972704597020755711266579201725982719121291714999321469460857392237432843251277643150924385553372427898084038127392057622186324719293233786224194400645347512665221676946737157638200079809775368676901107965841665995616234922820258919824880956822237128173053735685074787550172148140808297012441058303387787775374714525177649674510110044599554262845689897879867657117796785362787185346963150708318876616145517687266217258747454882702613018206370104435798391512160267102723218712410904001428402901473741247533605575300293070107362453393831813570416666179618831856467206297370649158171990088638683743819224639781675271642814623612571836953652783598005153176593404216651639810695239520017756918063833972465966503740567447582292400693126400483859950264579985805528947629667673021315448703741554800813558889556825689929393890939146924370479728337278239768197239650809326084252159221887640469078845996364713897627602777291554966935088160652455641301701438654976069750001399263594567441675773994534870458211702338034355593284178896817610632588064376623611344904683412423153553574440522577084159723648783068158914228669978309607687347755041143440121018447289763309557230728665255696843102124823510406180761838088828853539271941787508708708033755295319394625833325965122070496339340411129451919479831836502385028216137538671492159625082379429034768679303237999386773844396336893588784510117491525334868713899727362947412903396314328270046407462356415661104949741590866644856308756414279631795769689770988693085983366945832494957286587495741749122259734003247645383493467630567668032598634151469048172129232179817350882818583612212884696741132413431096534713990643005477376545628251568962343438631406988906228709399269249310826937317447261805873139032847269692822756703685605315328253510778604908869137172064101739944699747967192346628900566315701352548688785996530636032082366758279046642330380986916521261676282666914407534065794840114856787173339139653310553106813068289795690874179588042672100933346745886275262007329827423707598298818435631883846391255725150289462473459921439464353605297643383399320898005562974201736136607703794598180437095962848501225166402507662740086370318882928449373525817636428462140647813235661879525908417043129656505421785080976235371453202841205630151682709986623332023852576795490338373703111859658311506931596155567024428758558536013487191366656174247252539704173116960833962704494429302800718252595709331551629797505099322633514255868431100214789512284650615000537626269420822172944960187507054422100754605032611069967654861403099635198709191403520797163394606202145188425474156847326680978932233885813537238627142451815948272621908761703906313466048410312947156000776043453039695795457484064960198706115399413544965137173673167594324861901972756457058061734642284156232816903983090807607813731148835572836778410649402798135874290492209717953114568197619042301271661935712003829253314487770899833018984825663375251710157968047496973190303092260449021066349234710324837854565337502419640568003393990438128255388288267819631698368628537019853140161125728878533286767184450646728498933720628130714798050409468959501162836336568092976611360589546383627042148935216240105808200205614945011018361797089923214318255524001197736963172960116530468024777465916749787579410461608660090155641241101562767820326140569086862080535171333501568770476810149137954636071922111957442417113568505437504432582417218745574493603494440742357976845338189978649865103279761669346864900989597136793220887258401724153658206247274436590172331121132079119701464811905883628026268023039333538367170438480639014935192231147566524333138608199506544963922765497856855838944906157789081993044404756260428120341969919785227411377719467001984472117511320972175728345005456312515021279405008985723147580446970657058987531265630322322896470466654494289459810878362676471376671516095056615536579802700729053036607523069820707757966130851714769119153542027948576348454660212139283446167785241999224633541165237549001505925610493901598443243191295508140833248062887901408718555315329906660111973240501519357109148341493039430672727951454461353320320983911958277707689668502275505166613321390722247107073053927821400324226321524234424628142404570045411611815468454069674308569348631788200445003961405332435621147422136408581519569352045470317634290973766259045616750310009692093922218625749413592806799763971522622676373634492199307832410483845497391972960651998106045111605143598212474265760259613595401125499875147695012679561339728662765275668433651820945317318650376493516780519928477665014127540932088566214715349417487912577743322446940713879397485181496030888830894416650948266012718423052259042885492974267526161822000600800128606103504820521511389436219506814251703297964530902119443916544528695136331781438576014474702057771364524830676356490807073030220278602305385535085652569149018405728622855606458304497932206164744415150095154491124755495048459825204374275508410523944996050134660253749289423757496630069784594138766387097690825424903104872694750181765347727432135527250323309304655421489679496193874530861880850945562627428128137332230130345257591318193731493385418297604613208707713435957092502238179855920982213674866772327002222615048678859320991142628615358824703157264463933417444994965472751516762844116683457672716722914067418556825409475073812291977209911890092847697015414996314424026140583271828000922864432472044587131016631908757319936882408755518683007706434157789269712313674463610464311414514749782342439369355374146754963410548495573187418772193968737745377725111808474809098215629214414556465947818112505085245766048621959625442613074659809886547173809888498245515542003551116445806836503687358757341480688031493152627906387918796076406469099107282233875519469533818715799688120449093150838520538741598995940844905525952346143706662050259518428029837271108218603918704174388332033614978911120443103723174998403821480058808665944142768250130347167454916315378938657035754286271178270576204156000645015992385517476721286934622801071001411446472480861344232542797268127971993722150797304343626271737300697983461625564834591392059960826370058631760921920546328475393731491289660891459075769538302735496813723754443428738752954985684808082332159149391742466799921173689631564546790437353633382748605177027691977746338679788602871658052283323155014156984567353680112939451590038419908167160026483932289328277447215837604417369890467377374544676677206334501727327702134458760329685058915974138347069788833103488178123315730296948073110796862434763799879205238134829534477354433077880328084538345856353790950360019887989069143592927089440063935385918056901101049923921006186746896754342077397786387114334457898276087777617977561363317831923909347406466440846423446301660454192785706243323557661524364168125993082677988740417460645933731935315080378911082872937982251487588515713699461851014905118784491852719269064631781054850598335352878095612915649721734123711606498443172958987527636959985425876709146591847051960422894570231590995300740675285770171255269500041752719679109553394220901499547320103094183970086770412593002748305871353379903646328737268048188452463204157613500435570637407838938006293088067548390399323385196437678434445285112494578800269564773905225496692958369962779844997233384230555761396087399298275743844009400638801145105921430024063424737973038907150755141837256561707412288655903520961836468553160215653456607641079246389223383969600139407521187653013273293722614758235790826465238160920321478668164100380674266112443521352659414138238277004201642650187909689168438557753205027958370463831155415235960594165033407688018450389965399144043696429109593383874559084217486988212346586748500199159639689261750979553729621396840115766837531705965284991645510826015745977272288351107660066631994884850672718476664422368411081218633499267156335608774417375833527746289139687295222847671873351918182714132520646274070958260343844899913000348024035561211280017357218227858493593606690096833030109843501790749428944651861660415971068377366607382534246004790972877683322873738814595987389619552296504229610389985059406875822118227194039314153950547979687839257319012564442992920435503987341089471229246523240874449287436923712996206303372967354131370574244147534757986269618473568568491037549894908023441384616306612158724131820095973595933397388245972171840261150662070253793055691686419477287304097931019511392485524995028600336907898145495843286672677233928782359026657148656255585123188928668209903916335425666806762020493045617408295650125038712091239189925528859254626826053195308210317080284447894093526469923740640178932892494521286341477758132565994285425681449015370701273485053988803893782640230062407033782985699254158058266896602703209969133009490491545101330940198648976437673697109444848750573960306510741346270385963499903775706903153077921747066917693941247688789996365524351657080109967037345375106617507512889490107086724291200315530546476287598466059006055746340188908755500666496473849867505502155136981926713476528757081731676692832443194485632786914766657696601623115798475627243995964917557979697493455398726154283488364579408301227632130305331177447436250500022624191426656373445932650476448233045493670190757267152610735748166255479419557972682966977654973991031261625481398129080233453929364812130217082350715026551165485004739566203045249895958657230952744305520325886006245702552689482529344464916498569971865621880850086271082429459895459231513389364336382184683328153345640658992014812539380340281951262964292387689020759174486315266569769581196515716452212178828567793516769975066234414917551640058299632679065114953165333567758096680744804899888633631894777758043110632416383505176224594917063816637261206559274122789470481583647352954814565366856363810296923376129735072778668403905773094255363128486474378925955993600305715913631388862894854998394798623785229173872537668860112337458199361013069490260785349020398379623018191115292366323451854767878977672987414980686586719100312938432660381160514112525457038817185614869559907166587052129444329431044107926423886048852163807220943307944862804853188431677540285625938415209108062164588126248835424378866180024341885977351418840441624424561467573652795920083551851811516361222339464695578717957331117246947150491127273226250088665471531314810158900479235720545672835895858836525501389788797027174305673793709779373682787069908168913174600032147996911950445819126973899297707151479401598169515243132081322343755669000567806349285914575365477454580218186068317355004330755268281165988691745131477006653021714472117718924643405238138088462258738235260091105249326530487034195080644692720751872497427644130744873030540617301147446915516630710676050753326486886253446052829745462137378106002071999531660979189415503155855906087081539454928222073831137421890859177927602731861888933416385967487646458407207714664756799452103063068544590468526466513304857230300875062654134976052148812541201272542608760685144002423511757834662435013127921276352802129848630629631255109262920082908355518010744032798604732932922936918377895948266724127665318452925830933494212580487006870756337172510716036482005942096668134840303213082461498646404776527267860577103847245303338186084650576484530044543562744090694286807712958092684902925140703900995747229697205657300958976126916548690993841819912775176695026677780638190582324615633667670711826601260369427761100476289675963987849676351738872815668222829400276667525396329348425745299355107532081894435105692178743434827161909085727799514570956917257889366165645314689109824378094356701171474741337973972656633765967303485000524533513441138571370879204792884359971873814967280237062757549835901819799953541152220998427547720923778304570073499856539328867196587085347589544647892395229936037304680521172571698646705802366692098101115628788145416223748836118753786612917765410213027559993422281437613505523791223130847666450828339976621849405411204442357918336828349937614677933717203663698254477947188509314450082071360366540394365884873950879140841522619325336705031450611273136699290402029729168181815930247888869102677288582294423958820692771024173369382199515105492719375329356633780511690130014765171789059202824606729494819705842418473636218658588594451706400199481267407951862437270030531542211000276808249313838352679388509462349990094683626774496316535555098006419949284072319203296637993301132797856282182420892290027759029984134147896708183240681047000258850813424285394295933090456511682586397338872930299116111488256391563060056352504179255001433335353141402648492896998948094035583550749194491232937113502343369177907864288300194738678219913974819419179351389885064200178676360412558968601907027729669699544172471447704147632695440685455720126629955332121586669551480402021627521992252763605720331532206967562391057276596930334016574839253703135732835052916520146964835772876006810093283893797158607239272463630461623681932005407246063983043930267660821269989971516808073061596908718360620911642086253208707193402693084114314318903330104834921022285002833777671583597323884406959512197989035487700601185333546980107216147398713555799606608859154844156621070414089533280790607900953778845278061801797739371624247990528312329101628065964156509077982384331623956934129176061454053447853615420757554376197984325456046755958003167509908928703973997194612714247290825733938195149989027768121798410129062105159319072197110612970599245578921121825633694765507202479651647072066755135889323765035259597282407492528154862353742183609838868802816709747875437519429948398993330106334033054343960176935882827907602887447505109582631924032104445492551804817324256561394198937950414808496348522059018645746170711156222350266868438237492777274395213101462330223398683407202456776642669026392297162559901117723671260303965805540954200150464994885590110498703471285655127823922551142692606345430361511941772941572987893813941428392151312943649448756537282710331637949227114631587605746809671732567017105725770820310319650062270455037089503073315780477987509329355592046442137944615734998953279649553644601429457156034735946219575302430972351464157576479543363198656393180514194566399871204811213731958314779271362725454425466446745746483436671229686115958742685432067020671224409842605603929766592970929950554806577681468744387160273146294585140626048962807343056819991578594379746812293661395250209369738773260090189156349516072990537733141711328956389183193489270803865592746633759075397322274333088653024041129263166545838565929771620137960163080171224343952641588268835044557513201998475213249117829315309176291871520726136463580703802326067255975813161328301717548320853141115161494207117356545142378328937986153876063607611799273503864720238179046393752209316546773789548464974151941757436882057905684173989344915292504586995515429287844191044902045218867460359232551791912019745061780704994504464179587182653002990443798710191697590573365610361113856557620927581104575426326373499983072026221582332183611152995247301456486661189352495634786872280197953082444504988460119475317053432019682520980090886532448158469926452814717340697430359687550051622682968300315838318847561540297569823850269802855550062422067878127405793243288411122660029026177845334205682101977746598904377758810677946173048791231054228009483864571125562438681321846835659062142323227385008867219673173824259733030831899776402748219030905356533257101061304417879255951108658908029055818114480360291537198628990689374610983180549553848583455154091625775830035419822172570575470319173550831303828389066076354467982743274792252030498649956638076324638242763049851699754005586110356457018343311497645693950853431847078689773686104899430163204659137832151979261716116788310299852595708111048994090335218575067916298799633378022727250048539124431001656592223534104152287087112722303783391765437512047499966617724126685100699441099306708881047529649016116066400925818950781424253574128868289998422141068466390364074116348168732842571078321588983821716430820482203851608727163523400842167695027955577883401421627535039000583631379182946852983432006272597672412551576330234383361071573642988855716001382710777041336889814173392322367495897168818973765177921622097097417195205940067773701065797454078514563297765619337521093603881961760988365451889834147211909068623016788681267182599033232691450310926702022432844437171457583148789125395636921818490970716811237245778998073379318949519422733235218659106730409194717127980622925164150258058382705985588195530878319873873803540865826539866858120788615623507444090685874577291463283983027842869594150933647699468650523403224559605446357042055724549177714341323538481884417240350202486977228955769703173406382726100879819291679208676125147876379049268647291812720693833310763986983771706102263398070271925741483668702607967869163415062594569294870407468027547817382424958874602046359579353187321780513407399959215204092603905785856505299538220904894159431575446798367953375823191227780766160162629136884528543193795565786064560700537546249169108531754023408006106209281384060166397891402201111440981319181094909098435343378158519917846529445363063619074772879855686170537577113239337740382867236590633001811754279316481468184575204669245257755485221293260638910316954212596330826259401791513320073972843751136835228360188913203451254938130216914047286749418745610524124438517563367580775290507593136009930975547030453801771618739234101650816197438378071206184387436038087628493441340826488994487594564525470208063221676708052629178745752029815589050995783262999770321876659106534280886612757076575961244892661435513856296206373902388737231051215221483580078126043661617685873615360635159363620514455579554478900078530578668270449260983893539166435167899242814026727211661465921888963438062001503191593314269464176027205534885490654721235039572598141559587289071909639800467889990026899859965800755435390311015059124647242546314918593375964773095990162711268176740092125079384220310592645168943788289560588211624655244585167354464094510768143660018132562180922268495263401961592402877360570614976485517580543722448154466127956092850871139347447563617401474222230854079047447018045237895615806089895515241147059078433007791584062531489980930536735581342844432707861289870489337711844526035762658252133956962497019125030480494878665674512102652241585538777521190855172476425206841283289856642580630052139102436966013782163039062787230048824487769978637208118015851008731116764814497312140717421450133976474628238267418964071843857177459131787332278255723224858160181853563212240117157295170599465363920220691138245445773925851594679798604408680582565802773440592870184411041813761749775676454415529667447950353997766231062561105881665767958177190113303627470103621432752117703315210479696963778671352401398217142717948649830971975236473310517075241682157761652098789690253456015217056063614194675169928737587999535076425764295338729783043269549090254884734401467104343451581196904937965581069921610996789774071051065225377378810327180086050026966402400121704226203744947640381050938970597166565569955914923690239514294251250214748903225322636988453848056366918796373559460561229102741189671135293569413411216378945548804645704493812966079401325455176823964750865743160890757933653656511569272486749739093137725967649412529538510183304274089996052242980529165777761135229762275888176357276480369001259046939056921420005243748803795517994505677646821640293978923743094206721866226007617093432099741072783655726171712125395592102513673848105379593176193584180619548447619417446448799029570662462487937359361486794129754966403057919000411139632462571962458654082832956011793281252942053436553046966747585347355358732549897813659907945711945415546435260697187421263163157418800165781325854906676438377754673116704835316617655067938310659692077202567209711580179659095193027672840041206187547445054405082783070094135356018597319980988957650881782297244154916959324741227429264755956632343877475900451951180460111855423081586985829093397844689739724374068793709689772761618689160054621342617145277376416216248976165215193211537127587117914271110712816285305436161833926984326117455680836220174075763729063862556414702450515554934077910362913424337062208260579967160284414174475433865747158833687619711710432238698429796925030471242581186096735355768724259447099218118717578398525678430679540762171004967112180121082038641613774073504493298285183019096857993392824805635947256539315060469334301735898130890710802711015161554927832116759855959584796738266355721255065859520039002559963252137411137706011123607850168183335848861622215533332534221444610768620488495028064876523955013869996390710242127514149787514629867476131626909143806845177107546105142888379681037185502352293662446343122956419903958375708564448833301741396601502694276528784776640525402318585601463973945840523302474130408525993233636418033666401555059312459146586061914273316068643521522551127394048664852502998664002745368784842686928160306250293787629827960428611574321339598085040593262255314781425826317066484420363753518939598377548295354880061297100281431977125086687609834005111614810434697065530951931007595103548429540859042993112904664270099892971206138366717725891764378080028612800066052393088856743467724336170175640400768056453236498358655665127240276741070586776533116919914356969206229595429621230855484259197781797234031700538508973244883655294559080228595572554988625136736226519107395290981025240403174579505572508065891598986136480981822559725709430865037462457678437670698576283526173148551807901192298857350143478543419124146409260179677507160764419033166885835449194906171887112604520921903564138175524227015404411660412571231556846345204084574204459574400248638880196345775191451410968565686328175209752506920870688640253884150726384264565300601562295617126769686005128264269316368004648227816184130066184601495581006283522638258422149170641475140345647149645862723284851111096960324723008764999417930795901322837143553335423070755267260085000623670943897020981603307864560381502709559339327578360589686237493592796527911575435865314724665402448853773380693890402397988548102897405231212110201538466041757809760372849804976361772097006836455570655521610415340481857429182060801050318995002697722653371586776862165673142243594899731220863900164988329629193383960313302360596640146840852911516479142395367159574138419884531850283503903155609031694953645685092999860757621357819121900727677217235442749302802618472757437802031266994705672251663757259711208257044554523715107702763920259999041919186289470044954477257874348295460413611636343187769696942586490617486408326341830390741968401341606884066965503890554724888978088179342712175094454299602725013205723826921820290838998679045801260411614900529491262023447704247029975189903430774220924771866978477450254479575628033704860589698189713167516522610997897733485994528680119915416932453261201262651699022172410699965795815796036745649929507558903292063651240500563724003583595285894375692607349948458393712247992100953040096275806551651698115924134213564416622039254751247995245321419813805421220022334582785155250908076306916347532540544719869466208651960484807200914780338386802675428181369389876028766703631757444411472002839360195519676944246151660067569166720295513602665207740207390538171504792504858480692922536607320942467478498538683366641362373794469536905640653634687031290074905228446138948503548315251594262647897977205416292990256972722997656850909586423194052047774923742006660528794841421973770638347248974285462687251489834794952201202568471541433798794735587626580883443169587799025021430710097024532382821579487959094800583779849267021886283854486827142960165148412091388102643006499283158071257591709906793737325302102756534559606457410437605474691610464700304629020337495898398651166544029142175034121015299407160975532971393577715320540923081509277408304554882527216664394488758951697757683777332816859845208365724153695209518600320716355195216247864003682852758442687505573413674207866751210988351577645344478386621859595924729105846427184064048419666311065085070464569297690401114085346427161109082431608449966283756156165162115747316264456985778857564449083307771398715334931701716681176970136119265077121037898997143036948436031961134845794287348778409807106114227540674058677001518159416600669844592459887292068895268704300078554359241669935846559570250451450260937850768375374889575570389463131190745303884065866492184569648214988405242767650270313240868305415443277966453048562696586087689132652106623055545758405348730046021134261262554775720760529364411517707004853526120548440941767377112131398248772305036292263494782892829159712720461477457272142966480900661322949433028148744508687821485441928107205848136777301147788887575992685293458727006157731475490740279899839944333920995847369988599903363622664085125602679927370221678000764010922093668923869941299438828666647149790417711473618063334149315707677261153007563782036377061944260273980737264842103745136239539605253273260263138465438563421576163787101006652402241007486499730121853902381556149386469608402793724004705531366906546858031924075677316912593207171606604631796713406581500630896579000308567603784378716166637559632599073444183599778404948398154269820449340168127116793307064366920051075830547184258902987958189629423383148058718316124172676519619044204601639876435841262275029215247234934443966094049230781406438894770102116560830887387805795971957151337654733350079023558777448964651762373238771858461295944086627288510669679235499623718355506501859081134121136014327851097929913818170046734182034980384693358979246149168311529827776332384949354809452097885981035649463059650144803073840559510712222007030597552834607764113261933095938612992776281964565887530469012833554137637479573495213604690436099639401558499331577240833446940164230156931630821190378575619691935062611853958005181908837023161068198965580398206181399363779761839285364224651533290664597365592978783759385039808884345359393553774850827678863595249743571510080707867741803422940247434913375110397568181089277318310964866617982772362665766010267605728822750833113506495410031318566783474652805986335487213487399824718322888800362905717844474595661845608542040453107155661007143585787812547423105021106811924228917626007529369482678044771844498671047813282091240084916514440357965415742688922986028122585053825785833649497091261780691740305976535282179745426114563005068593240055837722222269405879914181461767728414065593606697260651648621555341584951874722957564590679078238452070891211615210706453217347558277611392797539023261256923813885032764845104645451039289158785389728714935603006910834955937598046917731126232734701967581874123242833179423877036112590549736309110935929776943840580744356674813267993368042314405102844730646783987266994439600562625432203325578372662455671857784519251132863947325398758940852489235157350924776532971739907228965028600443526242758850966787766136048331403999042341970130432824744677875819662438912812506456425551047169144740625517676169684840352700731799897495064150413564854085448130955739304438541286890286647759728156308628346341788085193121833954692252408095065770701798379643367598158947807259775756797129503396271153058145056193416321308760651923169630087223016640935254584486110325470463688233079163235731950769402122545760519914234783062308128150512056665965447629755097128597360648273608706028028006366334067438524361653459657347453373305469644636313981703911034387545962907027874375481216451348869155041727316109410930924812642921946148474174486135116417177539084286307167692179258662872835312545372698397514017476590465461597880122518263241380389887308508181185301139048410438903321808862840017787935402343546543303974803413476875537036680228858803602511367782162858543984580034776211339870335593218114425506921057613793546866885006619910035688188187678439944025050330312779612277957379801354745868614334942827387374495362240779465705409158393656354125796900556639668336671213388571523766473651500732563802657631073946521374654906233368302982745144345657285172597831627282074192840420701240147754452363469703483996731170503118038385195120364403195535466712772600793381018548434713178597548962323577100003673132883006076139598019563934992045022148077737753472187981995462822232364455176790936094574115077198488390910217392711776260456646384074880234466676971860650550202207512288564069845753831789813173008412526842689308192803645309388381641203404215855003059810500991885424091695850796420519055126959692947490414249005715733894216827454284669617267717741053413518831259543985782502924571375406209563746498912059215022861201704865849249602944406374395616244510153219659777829324295738289726266903209103838870484928178369401632947399170458797854029064454505639250671234497745080837184842259923709039036388883170385700598833688526463316631626156511108811108070185667267294725617424574543952173241529411241783348371901567501234810171419949347736496193969279856071404003340155551839936551652482293934676810181393735090766698668913612078674624091538149216577096484844247832006063649685953148505789246983845585803331641197342690388183651526471901380387992123056895753888022080694287272629383248026411876350384551103447533385547173911470682575400275175907519223232172758119468886317531005739675657550008624277682762811678412662301867091545984077909321972772929098917096930502042601714539628739429524063356901359594954341257620285933580751771550761640007790653445599584827090939367100298116928229061999067505091224070179750708690167924926669938630391117040503068345887541848140406894846180144961421961628040777519551283398285010619045438003765866911485485332453807834175006442748533768583197123335850513148443814671382190733888285105023036183997713833868590667388034218590057562399914862866311374638059489435556368773365831844985704721314914982659009499871470377080428001009420965092696664335695324899954339242318932492431947140354937968367996024691900619289153458028768082825899787808048293130262184807638849989514434766769051720672870524277692248354768331691723265295298012511351161450444172791648095399080527707400753176010493421138408713547796941018982757645460545318032866039553413471118561312629698294311096899381169142057494128880250150970076576215629607940431765809121001223905588335320979482632206269574428733313918671381464390637656968476419452238220161229321009621027003154462821239290505747910442861081544088363006949846976915449226986827213854329050216602470081919021618351198672562222988776061847784951512620181149731270918141174867807719283650146904558646798792499941098726334911417763732027021430365717851866576780264087080884705777362418364232974992122604352143196406481350745935228075592183482875667844615920614543508651924261232775620090515667096890630640371498467454710609136116901434352878947880935350219123135472886877295751512471680709407656028533371193627424843371977985287632333626478542199178900538769794945015462548885747608241588029787630965309724565975540052583671535798878468278827304136651192133072153224896668471237500818659264053589919660819771254988408569641777682166815687432698280725651645745647454460952768790832823419065770923587085068081633753792077723366103239744097612884387927271974366570543101339765613563395912029392496088643453585562293253216201159987541000987303652904782500994008954973055867042523727495496582425467177700601520302459251806329293265891074199398807688715960830287735907265176657474429408925560021487753312392732070219333839843881682781432415911790703449404867775141634925218880378604571415832123549458800076341880992890812411569028608945323748688822735005552840164457943779162521723445768991334367203374352050017239890836862068591792275169369165683947595511799310941087372846546631992984530517822836499940169466820769583564069448512231592919120700673051416268388989665798469260478481284512774496896968676130220786494571535451664222963806929934569208869964153203600767787555157718438620333234518191486546227704409860505608231263082506935739756946066385687815062552294323745073762801650664998310153192044737806215445463663486513995372076680260651162026491470695838524111335299773965733332159511584968333294051968049659286934427878277551683599731314419101268932195379535425540166132256128718106306666543959292699215370112345500251823022307489932765315295317526884042201409875146239723906421836921625517999230968116642661156518065068253246593517535275991070884211238840196405935930864231411392239184333614850008506891821223967048625535069914984291983756048496732306791662129896235285631320794959798573877455314030957817967546369084896590141948546620783589108292512259648950996391071928583283504915182595328227238473246231207968986739719380430211841555353367247086180334979217521197155707768193673092692981764287452134974186534448571539867729643582863911468408202741643627086438886975950902676983395476302036865026856457666814573353928825787096240168146270340846970383261055256201844888745286530589855958302428107518684084272193330631555976867038197616927191979661362159162523304467611912163240823877487805116666916596562432442637722636457978559552141732327547035482553563814583891021594716581176493185610555207328860326513197726358084483032417443123841223825211817599630965082657597314871374509247751407366201453027055788374703162363112607098785032563755654239152613790366461816242736691328244369587119487938101746552077151762923527729863419500661115078825722937262080900759284261140129573904917611668746390668530511361138195840294343846293647525768167047201453403682527940330547421932132932740453964664707181138000350834877389424427991335618165177068284065836674201744833686943516135464586469822923997294051115986167205575055480331791179087748541146817838871742977118044780417117596723787492863648575960420584582159980388926701451500506785079195801060837818497754345867552947558851248403204332868718140993385872435007063764054740001659134586795895648460884674960586350156268713384508523259296710378458048700939930638564008746476798748036579426265374142063902258667666440308072729943088969217103907463267341212070588216304410433408842503135551211376268243203784785351372016550852816127251218260356424307527848920266745021620762936222293621928137789653506948106328538317633874684717053669555359683252328916641092116702054705190103331476637056174603768916765934789093114794819771240673725906064812460074427333175992422955469317565761538500746528718256062742873226265045176716530889516024737183407572719112323603014115953166834102851957005518779786113369798628736012258566164598179345284788812131370928651112538063901601369588125777930466052388981169069242548213521064979658956719244949076159392912370776220686451969060626495514227523567716660436554589647383451210802384840751539238981476653861618504608583627996204804394749751284769850806970356447755890542459097072845251346397073605670895320400462620484281602653349489483445036469302267484430073007124136681585303015365102033373753752212526344711728612529530910177730738363214621446922617754027846170894025659223210718264053887542914162716887815789363147288345703812492395366240188069404625236159715766482360412725218872545912777288843466462468670002274613311495972324658472665005887090001708033070182532447673550956046024251088506770128948196642871590600335807604984082852526610893919315736542023358459044909014316991688452586238247156316502633841492809680057512362080174963042935629927314399059649303633392003006525058456735546985239847380377404772217731443636158704325453414283569188308831287520055151408381893821934555042845440597822893648018501639069314225986148308011351067387527326068883822957734668229482847747303439347343764547063418151630885406699639584979050145434257789895855519277001051760271844311165486065451231428472805360895894277743064228215264049947867663032029306066193309674463962966771762978371094593355518508623059050996691261578896989262472319944009165122779726325689334869001391428888352651694140269839844104711096716043929010653247160346528196517790203642128830298579693846741593314534302429119753396945111654886028524003641431252803314844553602010513744196562167719770185828551973152470657505577535903539224569362766275220621139151130851585496900271089736050799442188966970659335522969867336861506437068832889612132996775270641913931474500722243516472178830597566797292063297053071241671851321260955155819319768566021749803760090672502158695158964027051055588668167842782307618836262262688889739114203243136418879434770630287978295882951708468449562303693223830383255459170900471841459984708914280419622624596799711312018370425564776682000344100490118658192223119958511707570911490318152261847633101661488009477618561782485325956706510884946033459128954039198246487908781641930402954175459745073680118492178205827070366723295189763646284887728595736622754987306447089650221391360042745546773911411035567751347393178749546997607389507813630810299074326668722740856209312446287724845205341865481317587617760467959584312025253047386437762545004400983618963362720025288322788880040938042649481619376586328923186734579053700385870333376930911619382783834353887564782439146387819018683007072266836818636258405401606559942482470558374547629367034214147321757527469328058679398668888971926683170954367830581628206106728660476088503680436142137934213289345451606436459613398873676565126496877729228050139394473059361577357499258207406032801241815572941562731937964696652293206343000502803900197078684983601677664022864457062073965869736743862431531884006838545512164407332138111505420603102123151005400284107239050272308358485944447505648492519889771077730811113722310385334416844980963590794776299941502111852154794730163796252808030330553573452488262850130864468153548397626783142895354468699551896819757246331851068675003138225699000942668314561892685699616193442925259561365081099087279157183356028347311965444438640559108600665992938242353475440956146828468173876845608973099214544164102139620117963009673475752873076456980411079137852555538457171424866648261153025607350015138919459299616419820960249596062534474748071627947988068414598968920298173054328741306597990705711893707857079828129148531886884247209180859573650350989455316459698429119771460012577558035892616321187749570781351849084866938266766985103449833405881845237324934223922932415679842065535510197273384793306838193154314574110717581702630980046273873682619484192380387449825988327496572199016563304216877003124290172755261955776481462238939248225198643128326712595322067113499275785054350049794390993208256257407489050089735396050894197673914434109688747017926002613022969278281940327577819871045640319146540597787010221916744722110224247850630095815721290749121122039113450168423332386369343102001075074384749266549403728088845836074448007309356358625526502376062156630717447391517410741048733747351696553645014476478181137947079796748345504756242968581243158161406359269273553011225681158471560296018196403947667267094260023537406003885947702127191065347400157778206197422176908069838703561970145847288916577209912377325028150292174581620933429496498258134822474607313278472175461826282530762724912176085134232746338618578014579574997911564541983588209041047108493902041755839125983895690380795160964250941712641074426719210153468733494765485072543474193545230231730951618628764888458976550687456344447199632741358584847108153195803070224546649631981423788707136428402849273543293115837314247826032768616260860994667388268313465349741325143320978168906029374795813881597331223435901302028341210543787320471670166816824401855013684094341748908311522741687705719931545677407621452628239916684044126456756054716096081254683076114439068678234180765670441958239493475243767231469669088021575677945147887410795054198967140887615254875689422072215663500562192198488711089903037225207560662897111641428466791236129865587195942947633856167708202682768671485968626917827216761015304152833283464376799612495188336916937887218499977375691851978022562609811676313034882505943640081423833668867842445827930405434149320468318629308906408756624764483430399822339782690007960424166707842117333351305915188822291446381542236190087171819582238030697012929087356418813404019689851599506551951717843182103706373000033027659215156844805505434859066929598971436487714216617859545727619054481642418893604948824704895337160216921905785864191225227490659890674195252148259072734582183461272217331475831558120790457045751286250355002726613028163148769156677674003894907798429639211675412392534286724069224495527038685740662915717107069173828496565522866633046502609365885719472535767577627227838052759582537921709821849024624796008303990762132584105115388652382221494880503891770925997736511166586465802205624696557110312898159074945572040598983531381388801332175336814031632432297414060524040623293714745934173699024061393958267948954292934902941443444741361881842057526316296900928622837029734094145298888960334362041124878623415576673687741994948153029319023835007081710290760134877191014364299543332207197654957203951955900236010850075120351692907389752674216306016212492536811343281996751565644655407166216818593938022039138617563750217977003417364082840948209450392266911844270559394107652170403129336220525456202820644416658458053273981036876942333084817764356193030110153475564808094215410396067671070456942021171007692519601543859796301972898620990798639022866829844123102194803168231591915829356715417526283696372833948605636803984739550584219956728741276282973749795426718831198727017980488328904797584065285298062154755426143613265578556138061658258698546131308362404237232877922039688461238928737884068977682176241133022759420191755836484128460425986047627115664006422687728807599380724391649020878783336951277648981849313993198757688375412636261067543882096613934503513862140613047008220395971573985210763301125710477703928867640413677258108532926096278416693880788987077191613311281761050691901803993338924735264213801517278975149938955535151707701621159511730087490822712270298105912637132820404672654724609651212325253829878599291680430959021359441332369021338268328609015222360049282756676221860660104441322573496093442691992123582152962763676496997127432456297113646572958255076198071470907298587391900996732954659444065297603501326078201551405641345661539944639743881925531467470181881879046233297880964975510931346977051946980029154477691270829139810291795713669281394828956392482617819646869162973020298414674248073705247640809179932843953456818348504119680415920000124624179933778752101247792522500190754342392960675397630656192010982267407811335509245348761174741315952923834349017719544828339001181831996432264888490076438830582008548658215284729580985176446749578000720333927153971998912166807254717113419242138326628854628844655535691804021844682158666881145978096478680493398647967371819240115553285252238740145823965190100855075297201357451466907677542808312497888239088472414121635569009724200668367335999906787239130331370165302831909015159734343802608044934147392986443804520761900933392318493605096941957900116410156241973434443154246460993566795116063502847041809900787214686190603788511549669398877059430595568926203466301201480801346752316973513188309222198052431052355690920464560439233655589957908220792415437847614753952155295649247044468026810713863986375474220068839684653734046674361517259407264062971062494657306196815317604962866927136912341794703958146908149598035216699867593528133673340682284669767932367744497758938179583799852684324304773538708069555956920808473198312752048413848422657821451450172768052369325378553106693696665701352405999922403022280435342297342693663022970258157237117322950413937785275640707027350203127776953178490903946086767532669361502967114923069648840786804303712673561883617886299141489943845045848339513322480938206002755878519095018280721534527514581606213026458911502273311374602247152832184098639904609568612276216896039815449032984320123349593366452446744780385227971340839294656538135173673878158527693412256895085376337476513913392788340452239006639030256204288182398580255833140378040344470960314820532108747937127703311474704002164005858109500380921193486326803313119147086183267785587190797066777608199790033034301420929173723386209776463340603804335598173888773374693510063748039983318583258041661176025585317363580402144864404547120891954407026299510475773381971680732154759724481897688470259996359302380243728584905221420352300254627543696319659320943124156691403237928965206766672245189732320806377333245958060032346132243595593634717446491507832445132554096109123698366844719333058454266077947409599638264910994028217580810748341384794145350578725379808413280676040491184177116136900193119493213975247073836791604892708220070835781909188475648058598792346979455598207275376621201773304525039226789085511302694225698328573380660451813405857738058164641323608845414478072174187766762666209788648405622843839211633281186590957396573014809836734790909640351012259610160681964135521449700059021802049744951595422439874726192591724021665104880728746023692226882901874363069928483302157422328922261532394135566613748903885705723072572666442645900080052398837370115375131555803435643242202821226437085266685392564192435852402145452787685877797421463606815294414358265987847284569468113103215633558329115277125016932057606520770185522635682893877232308878413993927184147893883790400574287419768797358553472098928407835913479863146568000897186001146637016499714179651454022024990065472546200597157893944463782397262903160848250389513493870674055338404628306130554665765541056957725156776105106720327480356133853152345486757050734086710004576662541149076362119833308116367664881300294693071661514610531540801320583268812944362246319107504253587376172301683433157900684255482373412102395801967023662832237185360295470969936072094273219334500520862033487731846864773298202617159046043672909490900532091634825548189483414512104307550902154751000623084006996844717420937931606490826711519584889347323850120041404120942582323662348302033509159961819346997093836947802035595869381756888655399623493252979927717581330429657774382406640044875210199333339182860175377554593456475420659004382098996959404130725242901435006373528352566805920470815563704471907352054923016772311283738335315714887630289090993520313966967252841763375887034241010959123888656801236333551068712471738307962938817146180298905981046493854982043399345661375940864815188808922406713861180508750477124254437303159014731044849386400640031315017366385294615611435541635274047176174062326927618525822332721747054466763522002577094714831803648172895062953043156039832667276105354616261948606038599537582763685234197445068385673703941674268725797938721760302860571154943973897900864249279994118153360356385521862857085667826006415870477408799662488755667546244403922283307106989290890410712076764437684152733229478108970779126578245609186377228692038876813884913000877074800367561815045538412812636015726202474896561056676225498668712715079956194352391198872446540352692316227373677732738830110573030887701745537371453761339681260487522441870926251474942694052719529871289628248097039859175150582810199739569189824785100408647432191482559402180279933105306343856279665100215671144357450186200062765675955256980766878055401043010658859999303547318087283844781442830146503624957809576142392560728813884653903573007024327556139585251009965882867767104083513598016371298995872934495052142756425159302396481345268375674808360457905152862910979686950957823906904615525591533823522332266442296818515728888462801566060088280096426323333190500233677150619788203186854948618277750737034475108222301478199414276299117002368123557378146045594417015015631710924518182235464098883503232770308590788446091837417596438686309313421895610258417727420125234571338404051102281136352979869035207247177180061003101479103120533259904260902420103408610287185191730934757990306063482433758499788360127507577719116505961948025483939912187343959226304775824111881399393643141371781568470465149854679958112607669375049494592734877859128060005505207624622755165834886803191494417550933516243314391511021991045893283458866248366918164277087560878583308912321259778207041465877446554287553712980156590547468058016034336324017101096510969208795160348185352859456381483052690947147096324165631657324827038129152616464843040057403674412869939671230306876931204026556815327049766283249080800708118661564105896963483234848580235970422714321611568626201842232001698870668765628332338930471461564795211514273970241193979083963803877504962829270787585059949889534738813424228400306155864111162324880736754499382715318955424055336689901195641164320962538348525328083380959849584325006307846476854209397613291798061568590455490839160946987526913424309360023024293080274208176984110311049514806179455866891763314724729201012688906052061234670072540770838198497235427976738415938854719844634333690944808167591075817351323895022973457754271524794306245941884222222264374154548492250627849856697274967883741134705555411475564820154417835639932798531124860263693363547784896769424226951915557433682708407744354590044311505445765959494308588029794171509181237680955453520461458381726182392837164160952737812696186774938169657037490921981419147804818551794264051966145211533867871837263050249489107768827325947272033872524173105572747410800131764053788808249981189782573039058452095557370757150745492720027686006865571379521479812916470354715180459760183174236111685039369534660334944642538175939439837416982265642152419964810826228600947090203011249906176860905619735309751608262066284882634958358129969694831420485978131854995468577740345456062767971635462723042054506821263809291956411028496502837139943685539645197838634560872377698478076308200038850530332905112188287859444669936744732668046767465712355587227148307213579519373697148893049362136820417084889128665990786448781808094779166614954225861337784962151021498923466110460142859108251694494874365054456315419422514835467760753751497860116464011528287928631123025556816719368468478655159159466881178529475620237753906291097777086639765021036735776496905484553957734541721825374640112332770118675665908243295900756504670547942266267702452853334272322198210712124031473237475828086720575876045468890583673164092755517733308438669530407126847868347736837763946594251181280901176575030659602313134507710123437052064427708582165091875434594404771338984357024070290126323398297669475036053709151973057255976125679047463756614720952367620716373769223753797054482295069750504995493614019912006067142568425749869103919928603878117282728742958753195269431679276248324680794408012586211429365196837945798967826383644167419534512258275330917058570177396226931899038828266972337732722719270226504478530333265626808949142909794464577968296149995586633903306356574469472425524451269608347782928484095495859971075464921997220877992812535701151648235469101927623273389084260069097958111461537295913203414488969038705588728652446243942168376412841086839084954528262774199301403839222848234209626365092592081552094792200851179207561360649777532393746886822458283799801300624990952720883775414076920858879035416346719648388811894440487292630020082829471944473369615393134349828628964191294816537737282096898771932693479771528891941810673676064284465042293222032150121896388093970303308740919618290848197736334310486064812655969751107703456890638020523998512319387221307033116989030942905974535226534911034760383243655766722358238037209165371241296940077898702506213885762014814567872604939038746907219479199853281775048556247394763110842353345435070480130302241228366327442728133218626350214507498671387143778980083383724059754837306160967897423421024569747911454769079512395265134017561583207836280312611630295591502900249032471539284476579480074724615344544050969348495498509913895243681362868816357147114305985033709138725372733846153013132077634702330017620030126983872457026226933835354378594620711118147199607401225662482106535441335045813558209129887849573302142949542654398614511032050781701285361950789649897302337478759735054726159507900473969054323248595437188011219736032225989660591111582416802542883182604274990064292542860271825601203756021966849564863171247678373140300061947171475510895661067092584987851489761254887162386862480269011232940985956444844156104882438579551623926673154025293267428931061604624368670588955991550826526203387143748641940134679784780702568225912988136907175449181805068461338191392854054870284243909103788142922999567470957866659592198047245743769729451585663472270824416972643106545253395748649443367865843085525116849252173136601762641130197389512785565154188538239799459526233653610774428336321904797583502901318956106877175027396701771117988799146306023886524150065439801113432489461473944488725843977273516505653078853887387894091701352149756300506644734217658523680559599042846047741124631379007751884727424353641191819031299861267505241490794972644991210477903654366822145652184008011035999946667630339597913246858639368026762416319604763000495376089563783177119027804502186273608100763318666685918768476101839056482023986606361406269885658728721290657625361395855768777158306846187394116388316776515525174205307251513254952825610608413772854199239067929028002832923858059061906162432945797958897216758014063122036802266420607219379031064124406219293490196439533514753553777994823499519916395490049140128578447489774660711432339078687605798700411255046077644200486688630250620541892645210616707353038890774094548174950151664333052603887743177643205828524232194493013261374235473325128375677411724167556337632078202321848553146055383414749704206425299787402382652672066078392380906569015151353126778918747023526148263867084102204527098377282471669650541542525752438156645946650363173394689788561767268610974499826657011685805273818718597806383479913342212816513706934188495417724914174566501160806510338114901835333422883282571508580389691314581519871018327975722144115498030031803958385495764505010280500893144702607125883933038023304526279715978257181700893935451556867061861851752466075988483565290270665114457808934047425859800239047640823807747055172280792459783296130983299243614840894227866370037128180044942144787336366230345301156538981363100639367846502326369333345784623547738534806275220360479346019528396923813253957022371013132917974127269938463020957675068691074636247141436218508420182916328293630440964038737809321190428611109938978997221866637219111585090438882684224210171698382842024785761490119218758258841225034937986970808489766939517679831288892039489325614833207988111921380286891374533285002402744053515268055442206305348368972945162818344499352737501372448372141291549494903727165935669859340270525098345877408623723420265977970454181472522980166647425535477436136299214639135983952285565473934422250250060623757536248068290390468180872292396752713157829486999097531328243194887669241200888539431694936906474489587259009595008019108360311935908774247432863735491390428064762462340926766643263637989422856896955726502938269337734455341357126275834767095581692016869606988448101199655916713197958868529310345763972240215772053442755721418967073622958149064797620850306377486730976207179477256170069560900870369306926850195939640594680285063592187733963572632447623415248224187923252093154328428376823186837663521838335147140932739944743018333788623766522083358103773873276098764808044183831127407285120586131005934736637924133983230377764167363657365346260792407406444548921683117513824006578602002937332816729791966429533190668202559924338025231443726975436243025665132434975062118233134748345772148091575511404086620854476277420762424417678596251640059428363733687387748684078387996810788895529447860437545270896702158163357662357665160056996057838140961638479692060535105958939418658035892479084841882241701993753266627168413814974840320143730831157400816228234014334387661235164305852262396928313633527361256070600217068034481750954019691593296055020115091002947402172702536607440138729827459204725061298522930917407025454695127276627811121613110174507985628186596282730510745005773521835185660198358058210891074200512936557253132476326468656779271282000116229402355558410104233246080169354705836570619817560331267385250969798298275780502076130464787957650395068007064869785401431198779138125464922853278507673869365357115384945590368312957740770247228043546072636914620068465236604028911404651011169733480608859542063794653202145366582698267993055574165573009082481260662749992550356640539404225821004628618009789034819355432890039560285112543654551777707938547802510351103216273649164620654509892730244569600710445956705642411516942895384394113276939898653842989652171976571433704587039186978993607648878079721761951085210451357121850025709761683113868160387390725695184797983610341593091138040691640341872911182452782593901610840272171037526340036865260526171065650055467799065413596627313685849654129307647289908394089801318724944873281511606230281408082540180853216649848729370316970666527635683964371567257302428550282361838184764959745170508879859049951263643679925787622574340993219006144896168986725215922660557876180438206326290009347779025027041982994897875966031354591200274447221628733027645043444029719454921222196218672500815891293586032176712419213399662193693790444255018418010085878503878590704329770499609866589410049606910588240004048133048822066797020967269829789828062598235365626547383924182766378040143710893926146213333649795811947918541644476190495066896216115692664474049957418174145434711282463958803632147107298155727789912271510101538693182226410253942514248828012921386719096477272120978282653598865232038040136075540530426294663407582726324658635464812007125876327527342331924414255669835640833778469319056042169909602080680478474942966310221295102806049928919464178092006209471838850447722387629145671165212554122348560612746577391798734434484519378164210897165061244941941784070899398463013187186003252430410718555746943048952026992732854795962454500092949341797947740378350896454304266569100087202021458330013065025563867219176759425508514567312725779977159796283011886534690153502423755612570923057791890821850363102143899218583545069508458112202187554461996775065073313963488918511110043718697382371193894228846824180317600872292373201501562060847064596829157459561499213814313957797383437510956431286704846294394435988914837551137174557785324279253512349205111186945171731718251691382853657394925528676704102338252742487406537864084499800471041781133559582147333541143095406325225326156301906731321233206786360360842598002333124770908759778689132881934202447911349984254764526508239133044990499633879514763984077450153430642818243874625680457905323665001175668643378504282087988090957245724795037084253471578267840702380266883509689710507971010075298890501847155785499193642413591750089698990105604061621493979980776623097456622121643194906727737555351876841186211087462040939149334843491698667535587731918939244616033860412668948309406662360129389766938713004275400027058735911540606865332736364638599677999442294239386435556830948268406877577045687818573835474504984741774772903703303951789744814400879471478659870448614025730284870986870341591198463448572974183854749492148957752445771734115929313382509267298120990317912402382124794352764115402393230623374180998497268904085834367534132032744216350719575851237182306327008312362905209356657309490291977703838485473222832178191874832946856906054406246463393479728010948754345394205838206735654778527760276340535519602702624984188311740393301938190008739462661063461649602627866613596971800600423913952446787855693203663493544934069337697698750571155993953238488576955495344886727348143519882545369141073618964103631923409268195707313114383518493135985562042934488429613593726702428476056999985059431106801266371732504260497651234186658994647124607539477715715635666500888137396833922189151193957467732301087586943869579375907138034485229900812077796807954757663595936842262673018990840683110007171674909594337024914238294984318029835929497320614438591696078214565840252145868898077078075294499321629619853257211533791142577839377546987379177380671449926808441713989289260747910305973196480593967847626603934460161805623762435595497758839736778961980056240563764772899582422632033139427644572661572560045545167110163386061294532299336632718410873428625532999738713470690451516001998507753600048984884492802845687563797072811509541250007061854666877126892769313652646931689090748250522649948833362192517389484504737119682232253124847745965213660563376629085593263435129199799711782484665962752289588064667256510558615825048063495559462264658828390721346692238843211832365068003071926590554530756655988840307887786400368769894102402908343516938661141364959706451942278894261525914693614997765593458986065500373863496843140913698714194447231798732968207255474468845522359986909294567922185637359879700323100311483122570429110679816716752725437103185053687077793943388123164448534524790645063566624601973222873343450813696815063152502239911007101210264053555005918188791005720239658249304969299074904531948576693196884202805192931729151458369774165934759599661136756337923778091990157133616082858841408326150435786360920852354042353612887960104934816297694640270250867264682455589867437400202315857917214213489670121221690088867062152859965217732625910442247399852032179787327699172663229848496645723776874343947234874226585795884144927216378921136063600432700491247709214980945849506730310115106209525469675581695613731072756712522073017371818720140055535104410118903587991696553409507340388873896799983631121860634651866218016003796703803429601893224858342490963261163903095104805456095932581667551729601957295528363309678543538076164608201869839954649710449453085362218027754410140138131257262864455210637912178868283346863160959707729823435142988524370459641478215403496923150061335751408116489312717942276717573355259989752025374635010516887309524365394000424770302512991519350538881085543319024478640098770463897948490756835307474278412690007678906279138571575067093271061595818074154664904450509736003803788417516632205348638811401867657223509357645427384290261078380142517941858544790725028319243592706980489705281016568292086879133755878590713000577108503958319739187609486185512743028033411862769361981010729344521097291056159307159793026663412498779946749447656773656782304383879689459872594963109346582312697719075688411162545346321353890996399220423786002736028720860692300719817063835294780261075246735122946352896267064382962005074344623774364797833030025477423785406366051550537939962429979149091457029121934947709062163886292449502103294086469898078946683953715783030507320216213403999456127070725404133213706316355950638376092791104703393452384917045249492519870869868234580703831659736071026117699183107886406514079306777497070199879850923738618672025545236058670857267309225670429115331068341142836311585646794065949679567839691168357487788201754101326358215383258977167406768791412635742261233536286872407393190838982079682249258565411219388924850825576517689286175531637040839843054518217747467142454070509015519200154941349857434159844478315442179469446016971448684356415054028929815218442159015104913691636691839313016887242632449625205816463251283730699805865622458334493653289075205551655434414084205234028122509611011644726043522790912944800822055528578420934923666876692949078459254870984999976116725715659108553473517755547978303126567456640905161810103568242435215302515103077401580861434384432398651215503972452072844913450599391444841559744909015218432751246979715879816883845666273837824995917770264169508776245352034857375193938050141071068688520624889570892515513128560258889678278166809500519822228755727844749589993512058795180803098669418222696679212192715528300908775788782805339675996915888398288482354530259945248067076058891994889364359529157153799233745798249017634222420487473201206643776982715419567181011155340432302863695627921822062755974556064556706309140175119666071459526784522811994133673447462868681465960694479346104817406161735891618493443925718749358543544726403358423149242026432425233409768375174359732702984110848436441662594350911733732984514261672128548035732254448922219369497160217932191308495500953258568427449727049440288154119430491468804477902192602244302912119223802505440612713505763927154638137859569267137946419311190791127272730807227846303482597644941080562209029749748283770926630240201305359307827233805002283555200849589714683379698779081155925140674977936040409924188656081760851910334039557184009784094303989027374320344763822663624033522763657942259182993839665462123770631011287306005394064455797734791844669259979802198240594542983605709597149626252234451359078799244183321824795619193342692778654854252455863652873906470869328350003537439239557540478681432724293077730667934088587580125683421759817462669035522923161356795255839478841387144487098823967795932250001482883388498208005476242380517648432301224701350464903334721749645955620880181723735907985108109034582896154991950594672784701923556861209025396047910408084382943741550315571140690604685820273561308492639074031140428949934902002212340584783829905219538223870786895422322753723492560504235602275750217520157500304974369557731822655028384104705097367056458138767296816205606622082726550079155884275909796196052818368624144280462866930520124723959957195744000777648985379827712820374158558310605384589546481267116168551127243702291046194661379543491408766022467442421248252660312245394775934909266257984436647362863303061637788552143263635448460211535933950862728606541544264187989796907920116708967264806279962409301134123224674255455282996384847537038170105725064842946939435298550161167925057504711144926925806221673889818276148654572299835880614141478375762007737419729434786122428072863653569808711066594482055318313061942419689502647735696046020254861224007793291299685068865849496542310519325034082725563036836146660086829018732328509773242397439535962838075262556010550379397149677599615017328388406880755245654629839305569925825735686526990937397930316587366420559378154620724299988315318554558381257894059798010850691037322612586463065231812430107559821440118379308023395538797257816468636963435326539989132098748735885809167595381667062500329995773100498231278249996219769747083731887612489592336222509420819180968989313084531010958312583090000983215060267376981876878105421282675580036002552264158171505930481254836739086784385984419724566190641574775548487357616759901208843252747703319795535439933821168642305502551648549382252842235485223555683535588163601996863675967728631298183759959985799763780042609700772781263575283158819276179181540542941496583362073363703997139729355607216975997954851996487772536671268821555855086612341852929122232650226679026822106786164597420279327120214325728469187186073253661539084446512625934393321654234432391251867560847739294785549297265083863309121228590583877952350534977911177245852495224658304795156544375053977573739498626853798543215764767315116794023546909519855437484948187154881407594879717736237287571847404545907058623298236422609063809256635647803513160275801814804722304723088356183001143549488193708736182427426068781347077573434294531523613706943706487290246127217495859332497143014364145132168599548513557514280068319615620820982382146743114557804363800200549201514757915827025574785516262328949991870283312782051193468937549969808531781656097081467102939469442397570494999914343607034372661136648302221194998175101472229873910927054753815345326194194053903481917783876517205996796015398022869932832027110459569751037210994637406640132304170644248546066591064191823218153615037658713955559317206820000339312222623056189362607331361355501064673725372721392384187530388847720034459128230356090250642096677384777196606137242574596164262061511006046691124993196290801098990028682415561500887370250908890640599809818380657151622411720371555007624295613138660635836933820158271255370626549651667783513134873572249892023709106904625850940791058256737427572746513402080208565671977522426490797256955134305197816688860487564670196219529620765135194868110001918507284770900463335422835514521558969249467541433610732048025209027958364151159058318327552345717204516459781247486798370293913571055604176168272133308934132554822562996179076075149802809768414219698730711375004366250074615888940394452074954031023485583523630637829435580282342260696874619411580313239139222253681708130773786175376352625658850838418476595552982580976217879609051809672786344033611564801155312707883399634685040189531914659483870178048375504458225428072859096702907391307921744811169138620294042375832425925139979728155444533132879444496207788510966605510729326964489439191623393973843355648171150251925536986553459967655109667902040204645311477322622013233355359898184184806528349343607346698136302396177162845600209510733992342196093301376384983243965071527065632157581462235951222093647683747906450202160248437925913931162568104473246054701604865242849548181262087704613571238772617103322716498247840044882332160082312636035191609337045697866118799796591413912979095208661629676264930137849266390061239312473200984558600562162968760367290943017857827373508626960730003392256934775534563966165809735889848208751364631370480694794945256680685961060039357077212378883259033863711128100304891162118099346809347220839495933512732690089266828862816828113462740741320074300224725870060350300980267220654585515327628163257874256054436652687236435339144873367314564654835264738993928609025026551013111418954409302256936268341466545053215138432293020082060963773779366339911094511817705797817175255286599759904785374953581874876554116586834908237015863988673905141176105874034674105486350713771943800194530374261325748990760717144201954250111929589971321661909103584394969473998045280660842804135881105096561797780180663976034187811791790164722786293936297811599448851229595934446502126215201439958564010886171680836517761236199556072922422732798867311779215432394218456220481386599035660064246828785950543606254459905691231220728698200259519062766193310065664877599808515371403143318966745895613571648165120521336553047599410523130542888615822702887491084983788751475265015730194399190360300561112830065611341953230697667979986235990706478324700614378122452283680056433110252033908508033220950780855409783918920516930418005214145946805055921633725385580387165659568853135441423683048773897929361999361727508243598236183383914746035776477878303298833921301237344370367910289409138355888740989544578979020556082300960723592076854219557939789182772403820941584908066157650526346147138829043469571275194156424140143871197022717933314700698349408180358193676813628625691959272029434987753441611139954803428869850541096899803180303400141750956778893474844701517517290807529754259305467260420841652112238616590195186607264839473616599850807393871454612360957037161899708785506414393533888175812640457094493718098016634966182802682987385114763843202961981855911594798678494699482886867221876597900478792355446227376422479143984736002458691151177073227236891875330601414794155816652132191890200133213334111116634654223258922715432142873526289244077587154212004063481731914728247695715145829470708973430304511261452194511842868793150736953247579764607614277578724082088528183679529319244863019566015650280014862616030363713764932065020149123599396464340074953923582197007095318437213058484472600903097023073781491269317901242830884319440722166578284849612854187744156899962532032094246648375994338931428754698096268147005586143044069409481579910229707429251631567223152637836822190550516993907685736283421529844135621056199790821007010202765179887936873564578809088281850231014311543796231847000540929365774514879982957073837206601372504804777374096241904655988184886851739493491945543557964122623445039400871576513605363366412779132331505419757721379439606749903020092146481384662495233672794934545773322040473085091571469424063845709973014774077186074649225136690971998700989132938574305733108211120315321592875612796907019508608220226456696692874758266711363837411707458593476398010195823978590511007210262415253389699429325231950412808550284325606392744169490896663970980149924008849391626960638468954136109776521546773633917954083511067718849317289587423446882157518922232220624335263660372394987689015832209552989196036906932904028257099638074896499513013580331086052924321711064079661832455016632960001705426193254124584029796222673694913952224228688434283396603421820342492880742540799713979620090364380993275470615272130024025320782032758888263703836840950328752864514894023453329847760427995893882151629405052639618528566991479643259755377731434190685740317260568536816953787320820054694073712269299410822552686090635035458175937919041052874279743100404976119981407186739025194002260734899314315580136937860763492353400866427359199358858155457809120602543399008102015550216051374501956931495469725297130577427070061785293513992136352077139366276540716809526535199369976735103289424803419677089760790640531408867491549073458930482306174432808098022493612217322434005120895285313539349728965026913843217699486395089131444973604129850848948988095142955729642685491053483795294028247781811815629624890125951682505898172898146136106148198267788843829506147515723442532934022856084875246896212956861972832571471726059333111623716866613195097673015174838912372956538071159504309425698013234682992787821397058051748572559741866581913876096277041078014776684318685546258301251376126208233042595781271043536199546170775125860145084865064576300945690071911973843407940519822179771876373934021463240894933971313118297221214360473184742757979006491709752747277151925443146702716501630533474883625265390750880977094463509395157308511871318138370206086012460961714264175047764907234015433416285631451672945459825272963911781446931065798201469011899789259582609081716511614227234432076582807046687014222088214641870437967257031169082687461254130860922175341084513277256239001092793511341530556566581305838420910954172517604161667979633755445945317857326752508226480271836122600074115013618095413219370863034238458142097243119420244738875070519044976904341636207186929995112649135711495807726019290940834588092948845128402621017742000515507933319770596291787253305528106405615424535877226467101649210398839514184626726023346748064323307772462937588734493361573894263201472854438821410263940953506655963054308562315910877195318570180177269753076179497998968440352710298492593455207374900694810524166384158818778779878937392676912671763500818535515917843474269802005062460146627311528066669502184489319781931134317805103575601120850781128514246980855110715770774572166267779823069136983547935368489726114559354100328386821478092490824101075650312248499218203958555629744167699347180013797424975649504242422862631189211130317977140582766767268393659102792325217631951592874396167879937215204179748157751531348167268230540396570730267158503790573139110988978587482493630488434381350536618821943959042243371653234402309833105594432651981568012891932979579152282382138162924118956572979377711030378963249104654695797976147332704333288510915284023770327747377019692122581361087537997156893789504508318693664423406856540653638632152406379312313835774081802147002357435500812204447592673264925867315735018110320224682884849744814303621837026656419622090078559954682653074705942610523326227229106889093682363516699225833388456686605310584083195373585154570216996476606565342785543419719671372804034568003096258944632201807545885135563184683291768174915829728993261050617008975401961710511982969222137813251365821275227993187596890510876075795049451271859429517908186426144404584016475062197157541272262961112017870576278930705154610090957603944292905456505565114259594031553545927868821898199185594440796399677371234042552063297416598358979277850863162646245329260027542285048458605240659942493746950603555707106755818485518425052290907503602654590806701579229928128889750801963621917365360766217073725695083853158897624048892991880673820018343276187102394285007034355425413282804892428154303837592439271056641986524747620026774526640002975733412224556367080716687388055757969817946578584199875976952783813572505911580311437354929054926943984164298869282311833175877245761250979924729885046840475405019130003094166740619150917526908351253804818275224102113495084702757732330893471650504663640085132237844953804019632797573994354122672763831322999217447866561299640282476146043533922865929955855633576267513646245134926588266594047205725967753414947543553156306143771486632271831652064577523575398458650012887427434605179206489634044991446701587033014794761939850314039825177884330662561568673451400001602040401485001860300973967430951765318367859801745132565434338708181510404622561784645872324628291111546577304500420027571279279234981013015749323970450867923154033950569704898649891995507240315914730014839606504476117018779969793226826150313310852529076658415305700861958970891098831752827931972838616701150164884868022376048822803297763435252986879645722166960552503216131276693596853559469763302954850766884517495215751362236342137081412947589007840122842981502240678017015794186551619769869702967305409339418551933425361195903189881030038452500802416919860251749756758992487501185704538493761283365510218498169720232325220338365483664080782454244825569778376932717738186483586245947690919459839867062662270158251720075560333975206660377026770631730616526042358722916842667201082145362591140744315267838550305015989564684834261233174175615447427892016894709127116383289770673497314989228957160148153059590246414023683891282597058437960305672340953092759973377358882631370908041297524490594114133911683357968538965871082650033165804910539024803110910226750616569524633113940626931098479602566536712960935914969920721713373559200678351521212178752157107841827460852408064988178063264294864597874472935157073595967735549296310473921728844075280300883061797526906020467907512313811443720079216871361595316840172881807072187118859657065901629569763736010302893524620101938470049654053005552498228086318009790223735130055961745862597474167595283940790225155544287090867700698761751825308497577013036286476574686402893114556283600735476700574270513424782094702092523252849518359709094567022210001970802621846320565265423735016728313488199488839592761247869203250972615743035038017509871135640241088820240389886308491568442446792641784001880574076174748595070910340814603859264122274542581335211449959990640490184063877813481210363560882635374967164143515099412693080248669732332723504805042688150911326632863082765422361169190008695499911910405118628737944000811451670373243824935386105235033513093247154701639398827671182990114592404528024420075313870735530094021405247799933097509896842330093163955387765975772111298994891273201702785981035076333719264985386024198171961056380869467925884155993510864254852592059355458347287242949465003901167829028880042419439866624120514093187189507484965791874517273678152629560371688869066748947890048490312663179004946849739260292028827036930870544299236944157564180461169762595499062772833740366959372775628164169387637713260785517217774885623991195464879393514149513150087772996501328103304895307076020635857044231438607352083567134742621997098999373361648509318629048066859349605916834787753767898607578200773682192317638904192578005518550993559123796555090852657726241868028458651061424161369215668767678929490832293467590482230865026255084310958731451607824165275978636134520222870561369806886016362814567540528930895599731831130441960565645473225094781928079730133959532539868281060580477193840210354885412864299476911071652146809183027399661243405008531518337665306707304055578714328052182711356959171562912155756091522024508238282721865991803195546986949992521180928033240811300734846525822544743239166466664146070344231268256243142743842354997034900156663746591255118303404226289196548973400634204302097632449886394688458650540040068160212842410729371163877952662234219783370500157340105106306510003240975180992599917926217250339594526151746552248163619125370556739421897223102205300998344470416750885525470666160428360321690937016674863383741868589390565370384877328594734921965843635696949915137971300892022858304361976061074175873481083051765790777908964515503045242143238383749332929158654630088027619729234440138094595132938180239484205260998790565500988308560212367535802210818190779862611996132003805828626410248025123523190317256816244432503067158872662644537357851509921911911435109315962640768460528040820085249343957247503131985507855670329778830700178631006661011981430926694650775895817181942761408382301772139221595407829333441777671801266593209455001021942925680408573876086464209671603779436363644137904578423421602469730579422513001364107507918262118282887677618795189292546315264461715240171961889409048126123457606453130860789376327213396324467466661657236724977538564756525613092277041751252717725226661400550131676594283925439946595555801109676822411770193447468345265904806321755622964301383184272881797117418937776828434879268794712787411905115028857173401841373195025501657845216913076992136480288700377516906643502885022640479166200118904941976794165423990716380035506020928446909163447770644219930602626030938577462886250358410057012332189139936804738426862174098214438354713722306587545535518764798988364415771101836937239456534188937549255793697853947356076168916588867576573856566994610132108504266316135825437747387709259917618566381512408696956640311501198164671975918628384067296619144303193378039044413289488970009314646755150280368528361301192830175231942873056451584296408482399877316954402274768430144739842608939507030107412817325261568218791248731645054528724549297275296424422648844904260297217664259758020427858462061215962470016408314272122705962447131299202314607701574881141689477931959996446938219414024489110575982225960019387165829561660230998830423553566644884144003945379915045532528705701206774655101584384874425843785052002867228237471673144754049368777180795325755805946012283112912686289629929818444284501637437827211603169159637522937191172355870311462483776120598040493087442903393078045960108629211963070013007959848213034354293976335086054125043139091435768177086668668884002634633502925896150386757380285011054260613331498076140873401918175177820666642737414590535946935966465511727126864667412523130238223227005341978759055197598476051543414738993010828458412544132408616061289449844183956581324510045545902483672980832585979935492256467348404719023910744748969128104284875539523273249524376649315380463130148046330582300814736414294070062592002046243930329580855038094771805205526550992382517845874033597449982448569452896873066216092360504924953014997690071878189425039380161860160764575647877630509093871963104554815211384068080966173259251717566107137558702457747127814065872623087869566782289251231188672486343100660739775530366518014844987767501163395758178528318654719632944982721283466616846681286349784058078641098778123225903687118033405453346918592315008446453879953348046814896202923808603149447746280714240182830058977905065362972778883484683417946369735602218435082949896279280501169542906255689240327048073750586666263560631421034642482937600391210907685570508414966225704856997934217989366741688398460063607662279956643419814628441279045650431985010984016836159907920428808307316149240061865264827203507544438477917584184190676999761239753761895231513983433642649927850872858227019271711254529163382769530454577773731299674855287446841409740763799247396549197833639380584983919327037255669263258199902506500928387570257067331993436180657828556453784528905190271837855446644045742626896360381015852948959699608391221812595282398493752131370676480390442157993968183369580069521691023571446538556897968186716420477078725763018678409584209910816968672318040496434917900785007321302087738541079686044301801044109152419363820661104853165799978949875170228810232712105972854018386553937421600220258644551250708291005603344923954231942300265526998164309823148316119650100474942101939671829377013476397449219498471491640266919613064968783135269530565320174839465634743189763875560907571666282428655777852546219313892094173148388105499154257590291305356549823536116667229227811217977833531753266065414295598002401376738933047644529892046874618063561087533621216124577177832426874139356574182627563917811147253027652586322278968618777898480513428096550389012567172523086790742206244228943682386377785020233449561561086455204949613416676168769827380442413575183279237457145999743712862786951370305772550982717559402953378272847268854030600433923966722633119891184588651427965050272786239202346162326168060101948653543336259979495276975950588888934540730334634119120621257217327823592186988407999762184922243270427064999152243477522717509264633692161523217283762731760061778766987154699816183980939393058969809553140819337877516030873658675264602476565097535203376738895159897506234323320301373455975627090027277555111408561456065154802391852331064793835102313149500912758382127524330003122248679399355117284081217806637138279132813856427570859400393386640116292578276401479883806277504128525322129630471509628750934849857196244739327024244620048609489279658526945619093767829184449113551287079189407114622126790648411548049741179486253230323337145617484632779719411223932655298937063886738791492389691256929787047432771933516801178646915670583317169898428394223739767355513798886845847345473239686878258135889312449802539761900198655694364406139642116260766129250234356572806895329417058728510800832952155341595587818697265385365290784155514298020749706843985524063595460099390340038305528861153761855209855726941203835498248751627809248758342212971780332013369089398180316732035674624509871031723138746089245860840541297070869829189139943893439232280711251888468505320833160414624438981178169597321614821120381424591203337135818649819979043047054888822319875220536184117535988405200552783227154402340391357318166721722584640356167553975580221680906086409829601852980511526624000086057921546417745281261499206648203236039628706247111711747738836545676716888027265875573636086966333019431859673133756511464715409200287875840129465945379413077134965452836478769007517497862027468330063027038401621817335487473933064310509866888781385666529466526255430011786506231593964645028042923854236863621901068453976824614861203584612970606588958800639579219809620262953789384066273811728816779775110457669782020989073589342068642523430437591250545134475211292348586425381822958066539079381343861219788245322030544539076127024036333076013458024248634870371845717588646381083341144743802374028113362815542674627128769194979879104724503720712938652470790361770738287449332031209588832555814688058213612884029542219274019362959025633718303664287771425310028859604689135712655764856159286642633755395780240103807965716730629407473143696522913901299356619697999859449270631865050983006654214665049680782172200690697267983026904744913914240723549053651451598674016283174948157372822609406065804373074997187638157116865032549344811918193740612570781079100617500109627321588202832799742604341102408151538148168405651174038562381159322827454567806576862882828271066729908594405997956920172376356651197383162576525347821264701010549454778443165439906996266103953858164909200010739256046171693802903011583954084983563890178021731973179582883311524148841897872007645885842955620329895095771993286941185105394532110704632603024649008255714457489895021720369864127540413552417460625946076823988579305550078440303408680355583781387455763521225409128039440434495518712332096405744048074902501752277492727782756234168347038247686493115059534490191382643053871058191529652080437878567353143472804097028919251304678620092539985113284922868869385352257717977353548503065529363019624976778530619353743174332443121458176746938794157170032115500500003255435224761261632475675133438495690458829314138399160286562920866516506013138058964289272668792397906255380052123504480080029090836027432848546317602951190138382737217681070925033785455241648647346220528755648112375086542603675820367069928589446275387912264738057330979691135652143181390285599913940049922300950980207188390218605586957925144577786642457637247816383351642540669667125155892377469650073412147330762407156391660587575370455856533060648198884645464181271502607782541495680210233480711975056355109458684978883701603415077257861077675498101940857200161358355771736526794000125970419012137231697269251191005440045645977433494692335663036698697675016842236345564186609265370572830822052315346894624306947552310153893713990612012462913586807559997516771016599013106985241304747111879273650794123235899438788598214922666656019826795949364725152635431853721888692717281035169464493693166315959061364635955406914359564540187121176619641418753431261166438953167872947804367424844277313730351019147593585506878516646439941557234007554713804081246235035389630998089252871816858441154759746916956028646735189332140530179779064393409441921157277998028050718873067684080896193512444550135969369048906212624782417980676460158713725186464111169856256494905199935359722870056872563685379085227743391833566318370506883869444016665548392468323440355761334952920812634752830965958004030796913850537637889722246648809728665074012583277554513281191447526457682777574730711065510546775029760000373966734919254596939218135025521731886896675042631860021744978504195742349388381144992578535380657319320696983130611582244742398242200141648500170540270627617507695833686786778714788387785078668132510225378319557247725965504158538801255432380613249459379733834133879732263361465108917381856952002374365857984303513507794620218474846374301560221319969570356206591230532137846367200434277114630086489625848730242554491372958665950843214662117481318592703964585318885408178775358853690647991372098757546765391796831129268602287496969635269203013571600939213043845238031374898562543948492073212708731866667226551146289361648732045814637423740863965336499700561990537460621221023824914865057049928441154556911924646391160413820542989343704231863429336873693644349265463824836492426891745802238982455926889500722143379700503891080171733445872202677966627555238248722208043963500245491603831485738891918920753554209328696600151090405552605760177502301044726967458829047604693414196331842322435583362603160949547708107707137236105479132523977004962966943443635081838660592957677361611699077162109930428745983713951157960784747387722769252294354013704191715718578286549416144039269321103443350013751714687496547983802538641698124957537958555056252442807544317152387127797674967344426999615989672640693842661302083952979149935580378338489171036416825477104706985568459351221615386416385820446194094639147891188737716308157331267772177141729133418613488055615627075658264444819286774845825529520695639983522473241155774851348092967511460738282613357219925046504880754019730472856427561480629474881369991427053962352130128044435573708131295543417366520737791276959611238013606865593836940721178463058737020051596988380406392880667753023991622235092170047763842397417999382124653889352431385408215727484641831167895689913095244253390599834816773590810559777627819615555722226563045430229257257023502812337324701772871740155733532807621688868569004464405033326546896887877519817863037809237648021771042448433513979034840418123719876718562457190614510308829626087303779122207313691213056497361897638849855062051060433731033627860615546032660020790009996768013683716232060370864436071670519170893321686306164083336292629825358972438916793486991724888457173273200416251047771001661238718527789511749843743014966546409141415421323069540072926068115585283773467424540332127202247881268352337720236214257778222274258022039424858551978105229240353404540388907739495481424674920555011597563099621860467682039680896361160425704628643912805787695224271405308922081734801892022905893980104316544751818397508829774187043081807782396832369419186532380835451331283045566846451511190864017562735691163217643804043354629591189915233751365430321505318779232584859015510251444564580176612507858473628663141811846270880554065262705451112102000207630056557023756147081572423503674908053840947931453588993506228859582188241417434536617223192083766398932175870427272947400900118418576962797976752030209516882588904491765960583682601417590354246841307572302287652823937063945863492200426383729261473432838448116769592407550020346574321491895805393446640080904424977164782294726066859184594339078532335230970280381652452719822519983953509400447391998526149070032713797108928523760435433717487396098542288869438514124833458551903410085780606767578710013428689470605722012619647801320375925306562815708606263206322302089618332668205306526666281377450891313194818081775076018025421242126710939662178832693091633835033912288675707692126275188370123018622390050408225216355365713382701275896070625154323580417180836677394372838469111600802426395554821114760787543192610982979202279347513614620532739778595262268217206535347655140679733729809279386462278488982258994232673791757130943296515587836331076819677768154500951888410743177532756085755914873656420678680450675378787883170693218573179950319089155339565245404692335642011851530257696421051103041267055183222380818222197339454762643187922778809292898768490565787172579592580275935504852620100263604286791589524181333302622048134692317364899683225495033196960997030538980823029004640942959271396235027311302765240059898983328289099648124082637263534965875350200843042639853466715289730305127254171383721398428811419132565552601995321158357086863629878528191406442300508297010221641619625159301795175723132333566217932982026373491158280943816789047958425243015964056074282287769549879675227599967929925933594263246901874706137893330316258614096788521657651651918831513468722478335362523031492327037880871575445284875026074450490085529270099596488889453060538155190300181861844190040930675163915687042666633159499262617426536069716109238392249489561598289759492278973659722990133615056460811832025555965102817724040249472972844307923077161003926058353119045013865695662575224676644904092853758755491191080865051644974323496881186687323277872566780473930592326453695041195008809679962157660817248984807481467123737671949316815176084843932485179750527510270966045346745761151282942277732559193673778926630849036652889473675123163612618212509974208705968478815967997196704851308327506502441056296951588556422294022113147472788077270260754675289100514601185571006825365134720214467652011662847879215121627317110678560516186750106082517114677297377465117592299178189973558977941208704311159611474963392477273933542301358566205689334135998430264005567273909021635177662075632589066326430879704773847843651933588630160362046905831910340532198678909417389529854621878060510716601479072234454095906701497454670471083650019620268738247716879903136590529845827523918333903730181034452094133381506524888578959637128028813617732933260386122618631665479193054501371004142526273193089338655534476015479677791097282662710121393849021192465835584701740761852729058050302836308957501194317419642215811674168126945658726785040637294632887489124667171645014202545953565291027495282082880261799931943454955142637057404898630985043854426326748928216157633395931066419951402584166663610323855869604267393126554426221657954905748483920288764521465423344195509617899865892212835535212360596459845169672548332816174678070699755992824185900952840044668892692192467072967781102407181019809032341992944214131345558051342180019322621388097874132995177788706000937069654751682756962062349901112584358861550614174930804032636191871671366724319901820716263064146655939125724213546718025497524011591652516596201949699963876888689684205004836513143420918964462939199362660608758055691616811893893698034839968620406816464700930461699698635450403816491579627498122190277498324867905384380027374828659365102298320446060092401083337335753848959912621564076755541130225093653872252621060900785810215059850300507267069277847508187024326528997844431363142215235286242403231734429596284519429581977444425881753771758780659338702507257047557799377878438683213178331793106592668405713515413133995750855910513042374986447289896467330359952188716529359832679570286833203339604459173987901208976962312116573716682069393410169661204808231632880873450429601062584068222922347144908469785706519916403151422602120837192691912605319804460649595467641972184582297648248212527013827668513746099515634956611169932500581546887198412987803419740871203422947061918443969493028390511819646053187621613316518276364333262011431509239227811313310600448360118943329972562943967336982109806242783019549643767995393011687058687551479404050962019739765034274573965454525932889560107316799069387492816157277228509413913871877120813844657814650947637802844548595263960554436908143606224823319524421646822031247090379867027782573266522936699642180847967864076169757425092679491270094818468411030912221976432732893311675821446348838222417740749040296902690050572188522060944595898932902152348774460116875325036510445072901900106703921464029342537518371599554860636266476724774274089059505755731647412984704229963501670073637727277882197010184069888964922345160491852497051912747614794560590484315087457228890126013276433839449051183360931688943980341290884295628368073475739250296615576557010777370255745429145412712513670031394069117587496092662275505611947866496262857792351788085588470092303200297536243075375988942603380495682085331202526358396938199908320308910368406763934227809403078962535554481786306789822620054545876029949165396903197067355315878276178676436207700943941487805529942839578399476334604799790059937113073318760149087667514388369789197969505188096899208527286597537784781095045782099782366849245209273395112739425185813256296714921973445076838911542274770712430624554239954357635093651596920099485331858301191818617831797745396115073706657607816885259382018104863652325323767769902356885720498866260277284835467189992467594650244437013996306370997816676610518014693532265941900981717640069612319425666270764964991237712412172888065446801579041104305495380134509548999285892958853327744339225291899679597592715456262712303590224400723030391401204597304884111211859823604229439016719580483057421912642661886635326596848321746613377226113778555411709150967897986356541203132357136413478940854159857643526725841208856665069038650459737105868274107392151733375795367077438332901254094906814440705755260143531200797787162909490121220849066382556747646523500334460400724815470056778949775372246715880403706850820803099681658100548811614736045869161137749509598176233491948623568883621422978983317888558442593714394225114200522960976107775917421566018751999817769691097453909459450670437971337543434562508148160217100503685145637116752529811189146156118197704565237906281642147152541576753229260282609759634826714576820841199435954723515134166559613821398595325709397627461521483350362058782462640256786024769166870576481744974681235335452567808337708130908826150758380071261798759891091339474754904867867822237522405969160484622984867988062641951876037551634125295693786749522329387949343115541213486040479520004072956441716753941739592595537199715617942977862434605446535766569879645920113108031353529822679769382066637397083309905265445696790234193254157322738265808760092743343978017332305403875859116803014863481337021000166975870317134611154293753995127628927484177970679271405214550878860157284682155378880799394888525917504572049250768396257165968636072714439752494873754358931205981933678982018330077171434112082738559111997239899529910842230178149165386865494158201827039735228868577765412279271295682448925709453862245725290957258481246432844495812961055429490158322818044346433949987114140793793451637029378473433380188719653167977071009759133106174792342222261678385754076519075278994168687880249655072242664600809892577066637776840819340725988013046140156168141244743469091725579370916771573539607455430979649850982368726701351115179304397988091826833474097011501513307702905279403024995429130418495849655041285064792376376249763856984610407822987185953804979192599038868050261260584967127736988496864555992141574010250921145743796146912037094461100862610015563650714937621933321308453016720412231140637996506953073656043424123208171395761494871691377955405447877999012549307704975388230908075510303612064374835323032264942021076829680023164167765306007614068203156463883131231431112716704169111144096816025675427786806334442460041931577324524679418362359273121708850654316870923932360328848359984327365267778347259245842300724772706751330017501273327789480635234574436325501673921088060903061274017873771515884581509098271687319233727377576108354317822603439174470177604789463821445689890917397389048683793032292827756453928575000480544952001279505154106347208463844288443095615154316978854630198160592259231890426916464302707207482118209516230252508908657667222059415902799818362546514408833993845619397458887354995817255482175464387115202610396209895795198937053491495621023581430728467373504236642585444678235575441306033558343153055965125410937760266437468178609763894768468678806950863292514885610644209909885814899475225370250075966582523424396669085534230900097424241471047667919971467233469802218024914289124852428595324121348006354365540868213959439128610814870350773476020768941954864519382458823541668031604660373219491977717545377213263383649259131261659312969388480674711985335195742482785444666490020254723994978241575149822943319647393408147601219555731984363060831237666571565919214685874881670904621504977502971142713701960209937271027591318020835450788825952587736134554793251023437849228125806951933333724624996211539336928485118010266046484069456854263042141707283842054031220223663318252375197706733814904554662247926403410809748414643121623858779815058823685088359874590611862408569214761534221026464009146560199816729624403202014813660223821556674221793631712350923151012385136250860358123830306288082734221301286382127553466884870519678617413538807126872405332505025081927449405520918954127784023965346632069738854536610021712109888129553233850247857903492157594806118432710802711879823190529624915004014939183749772594354167341144180110314624795849772861872328359510714073311572579358309241562026964799218002610195087351954971989768972970059635713336689910969696493171088141930615378087161895829187292009496780281988639366304255804146313306373121450640615887398895355948811318792703287516802354203815067029412809326186017990043543938369497029042939688329269585808526965313764101908063047752558942242979445719894382360393518160933891045148156662882240107852613507839770892707552867423831518596507871539536704743282478375900097987932231020318572502756484526376556723711227765427807816354397121721871110972655515370704439678382730247518921066921865956508997751108450964520929542356418548907958486765635680419565288641188698404915396122149841352949038581365445485882058979368625917783904740941954093620171925578675265939404290076388030690437096902976735951889918835713359453098198123611051664040206736224447006344385814352857821258786522680831571582219892389145945945530320217480561246594488171932700725948285150471180408506456144145971795830909119995075953736080337897388512260854234778811945048343106332290540553850560765187267434727224268101783914380904818301210193914068613155253819645409154724067921242160910673930927236519941721436781872248134613851748952448315542525740111005653649304062428492061535680635119454573911622053860553627833065411893269072056860422729915880015934293411820024050395862576435088619880039249548209394840924791442975549937114950989530605213416522156827780580323040061611084593797264641922462528522225598667528936467314576791013475031121266384940901599109878942799492315126771422621845776128493410464228578412632434642238726012574145244296431685117230355754602011365614831764994167577253272922659726641489972521381480383024476965399823943660625228899741485437666823371107535103967661367935264594426780672436800122922665091444370132721256493861435836841103669769185932655045975162994544760307550607378202692360060891837524049151757658856397770453652942102330313594268086657408471425846190066332729680295963270324442714605246438245071299009746847705685080843465734305378707549962190142518012848190650019773550843947881134967443889249546590879172284167887546824726699286672521282270036586242750642092879148180396786926036949503733167573625747919999764173639134461287373260423796641960727287314733034629496838191031243564180804601386868902178937948517778199700157531625983965461685061112519629711559493751052581516760520733834284977786484432013749001013893268737099085601282316425831644733486842521694791370927323439088776729362772633124536435936395528162674321739399721690686101057888580444349649207164667006332473180272440618879174777045477863547441877338553242178333120348365104738420915254045101030705527033815331845530686168685866407056975820685336218203918172331231541310294815331899409730517846232998895837470450318635443283361734758514647701281942100696932044935313710941472667529194945486550208488974317931331452180472865521824479932531826934812417718791298621065988233039884612988772149368399749449425508266275353137850167545005958796988742879244445736245554970327287123947881162562732420658824686723378624333636696258919358245736872519122496466942672138363825402159448280065718190111441693132202080728155981882984504860609490340322597335108217069434936582914767705417456605667167355914792414778815598019959296507319311818734414071747151206931253741280658164930958987756937781669188666576043415755642798182558539557708097605209694235241881286238376961946757172528104273866738886514487662705868552516253156358067164992522601828106343639785842157592170477331515527309107585316313732078923456736527850733620754084059816223634244792906030954977722190736898661837886673057511011124032100095433821876655228516350860446539483729036956250646498754175605667277873733608654303291323891457096612333126849063648319433253254651310749016842588309536411148781993176278064206155143078126085579902746040246368048167114368997624334499377632020453350031522633031288509055457706377543789867523539740282581714366151194376169037476720241530451279308986417101174830247012984691833360644233516417854914181068654008201771397727657483364423888079210041377302796635048826824381718215012869393548727992017475794024578460753850409932657885603116083454073875058793848324618043525963874181152797698531946972539963350225235253718736838872651792621344794197189587528282960149212270224216234877344993292692339163136613201832972002631537910591830598751490542722487885864353366827531899307648312357344885762499286694521585058349039698818150104156208305954218656870784052646579487300252984434698205665714418002503359172698466775271226864238972038511618823552361251411174361903727898769930665051581794416224581128323946946944320012859301721922309227135245035452461767752253683902784069769305584054077817162936649643070923028887338601570773252185353860014194043782400838747264603543137468531429627854670097280015426365224483451329142304138405727299983502238242763580781315416252317634998942559158231428433854585099960962395892087699554304876804334240398129122183257579654528718226052651862981039500821292444533952353928390150700569344520554495511355504536416935813163209447202980966008913631584775356357002793250049494445712615742826288210500656096311617458319411389706425851164134222008966780286356189479816911627922136388064139781774812640937364725523727215844436143920561378412131836146663472667459278878341621988556900086775654059276294668532834091999498922014046903551170381736695097768320977927354733916382501282814390320150203743936650678405300358964729494074882205159126492806271203923165730396441381340844875265714371428655366248532761552247400651804331624743800846031974153727685163100614075463126816679326370736401697178366259894062752401985099613623804791335892201451364377676446925235444742704906659945989205808154467098758838016031393617098516963776009634839811401379841200840892332378762903592131118416964942572481637607433715922284047808506969474026469491622952596095443476641476562953387626506412955789533297475128126542631552827759581732215600774051580458652999797754903695160898619101647160739120822867947694912230198477303695164573499077215406596499038422703291337246031606048345992922576847466596775580301262888397056925687976295648404502070896028871774680895794660604790319082416486455498837839712497149816609380821851673370567678884507552730454107370950488907893383658281787862319495345085739666131126359466076389057991548107456078635797265672633136629340541143011978873245364653491805224399951321976978894813097808048516249022015338067328812899592470050158816026658817408268754476361969162029132734815585551218807066572087056288799244865994740124079510676537783131733238666211984569221731307435433056081448725833339280366194958342436652956301356519268388527567702362495156961145685215619154249560667998275729631428823153967448700446994056467200139092631576460653658038989667253203986837850444323784222136672509880222116106788637289240877140663461260211928368912399668013920904211518602520502991611249090812684759505131218857705400711046142034406511244636287784546206738362829461282365154797292661752797702141208880626942293062125147166939686186885040391015528943019609492864792412576634228655657104734194999032469764457421671885034895309469840798943537201503584210439645166345189649827420792730112217807203568624215577972823347465713537006323061773371907251686706702649774031061866224403907813860248032389739971649628605348959461927374063495009849311862636372223175652928424034871491130531013201639896761432050929059426515075741339450045442747059491889126547022419473041020742136121267062856278526027383133999199985021918610365290408681069156122095260637488013329126168232062814560907237987177080451588625006064762792692260460389057787143254872778632175983581714335876733033881471028685806572739786496937071785055806335276476263797378081798245095293186928739674549571017685252767324412712336808263981241422084989635853446845537642405004459101296044134361162475255695138136326664941708914990340591119068896244122640694203408089580726079970839980611157914789365692013661162605059835991159816753237088367779655824842679727248743178607329043824721606903759145381310047532387756326786415285669355929352919612049948456203359405148800501591631558282626547666236960941740071591045014083552279512886026725035705766568196799448950892792680236666208304493285345303481405952256845379720453904800633031766180123133216269749578711865653301786635024857139845952459870283351892149585719548271699247819565295964095967156554759083605668939190575458386763834747005654637773839584750257694799157817332945125627631371946663511756360419932078818222117503447092340404727261786367103226692119386223754777270421351282290451103195048201300447370212698850367579032354476539786665271532799127050474991180151918153427955554865610321730588501887216108633882621410121268218994484707707730024531548112100129240949682921606071937097650502464936499697396233186635748791688224934420522118599800589741093079747356615481944691366009028496386192022486468929058537975716555890089852222274756121507747734332648118106589744101425484833873104241943394438080843989614204830018794198257077472312335973236170851898851087074075256655362708498331258222894160851777152997015601614531723397878229997247211234129265462421685194357055255955617519007379603890259701626725978495079580456325407498090612972296788692684978337199742255112848275637139095350860720314295370324580786483896263246033713434301273960724231687878491242871208340928429754805406589629118716770563380270398228354312835716510399149039225914184638383274858933854328791307068641778873845737721333887022730373302439495388708342569861640975048571759487120984677528785025592270851162871674565738218266006767135985734848981723340496143325765280316572085015567427139433250084460516001855073856184887884720985777231033763080799051252977136949743991349103519581175351159411901685645676432353149609588467742944697219017141462393230776881787676441322813022485245082280377662791580909112561201337593292037050813787671321107535709771378722643704726501478878412079835933634226718039626880820120246571235495880806499583040362293839962202320816079651442444828940575505104931485389768400213590113890651437060981848898569011328101378327098045037809943590622448945558631249323683662052514394370975558267363210133490733559874915467628782043135472935375106568211370270507257723269950958751722867450775629916877911840586470366660966686835431120783760295144609662971581038791610828136636262354707619264688197874414183616869640940719090257244627397959317909058014889909527024585780915318922513709138297560564495243846290152137816254283223862854634845707330971693795256031467705015136630278856472587910103662371615215310768125126389365276391050103979279847717307897287972054652203777265165436334177955459383369763058721542994767904731756809591184122464591101294451670572686405454069670945719740701555243987225501751645100818741573887300308683488905815890476664499451043645930032411997593289056442679757521512036437566026452442682034357462134006625335608474453487958257001534853118075531137962791835140242853373387763022843144543044746551747482542097294137210317127093707777991222182828467823806089550864385048545156054104599193141809738751354569306789602884511163196888114120507975197150695353283393661409640209129499801148706675463518158718538040327501998868013105178382242695799678745608485731145948805989174879797868316472106879018945895778479244734314845901021835830796871354914686544924018139439353127256395279734965247051134135731008054999926855663963759534492236898768426746033272436884597857387986710257391147205317721822519539181457684577352063922161933709241737744133957785947396074521753651206903889729002681421404417868854406766555400093301084770433045745253844070472760484068678518152619555254393157902892691283827688054216764508226200972122363274831122357547073188820385536777897802891599353211505218894674855391004386892854935139645091676004592127187309379194598724221980516515129034402988618940332574460198665142051086070416325685092712889657462106816549297277749839385451801577746832152397846945422480074506161347400165197946619299157770712180025194548429057211159051447603403358336272963937199876858404423301441834517008290240831423867511130462883372083368523076587584665362130910748548383162083093357419475767552869248942767407351411772623275543847124226378762759714684734586874186372947626852384031861413586351448161249918693945185254218491958269631885414177857442087585288994478912097293916964494358792475795245535178836308959064891552353235736529646714326029839409381908346049716045194032366130446221993518317970499737008116744532188981114557112015883205475855653164974972092308812912325165849868219691297671190591466704714519654435290785415925694060281398619050011612005104739544781807696376817957095097642023585575944666245505410094370277272713779677575379628770265632117432566905832693723139727668351791555535649596709047813682103774167476966362440603230627877943899949649999927342190558791378671305144498466356210068184720413609690547014866504899237737255660770173687984212820154130197311203708015922221602192448328317398208532340441330644544365860561328505577555217727852784127109978765717841304992875009332005841378492228540889344382459340421521031566032248029765858433096894577317996529981465583206605068311855042962694214038757094268605854696085211115780638031497358034190285872729598098781689079260472597388141750483294360733769311216586475185713317777051365352916066829297752322626322655213190159117422582134634842310204934369795501301988561833276660749132242970722922406940731676261605130399778829126415015623967633725250342899878467844189241012192476903195923867618891160648621735320209225882823420862912919678595324586743648984946945757239651784848968240180388506665776744238467769235961377929458572184189982975519950508623716318180670770166470468535449160067479871068655339253146108336348771883998181916509428200410197693580524453232056612562166683519622096586507368430150281697938761260594569549948742324506626324067787211221628128613209911454234469119035539483205678863963656663751980535534261745442563397677129519790414448853630027083650900305966712632091777837937356751683773161860720051014453829508278944364148940661405964717607518090693653380854534613453735328582512180916772187299771357079375869249868351904913278780324880585897958126377534345453967850119650876232835339871059006891707588630006200429764641314845757110692594548072373984415060939072061179815062828235015871378842948288546528046078399522368142422322339572367724000234285814075312263887984406022246557077584829067539115370672873827661390352619649717705537447751750814044925813834887509751448565800653310677655197999147114994258480524306084341123335576486779213172027614684966867699429132427129905796788022781029056866142566194160420575845965043652459873009045307754315680305085918240830061185405806088686546365208036512477200366878023579847284979784528548695129266466290077398419374968403174187463179224053860239592899684249017093883125636723780755671615681679094077767576420298478048717691045183740929635273472816715401604844759821583923789957263792661023656210699279844699653129745027117104382819433471173113792214050955979495413982044795817986366599254914710050183680808284780211862793763112830051271560006133515828980990573304637813877152628921219189629459823477892446543970093096875827498670179876971806970244831104042753230381665511543648124421446170284594767573434934597175279081004364396936481647119817702437301951292667790550905442948320607318893325259304532187231970323852294069472139179450267994796483908172925255156891300675702581093023604746162549030481753209412850034038886610942281756962431228037617789914306096621016413598509132352294265822121745898088794205745335379247585382168422882577337956332512671383272778168935301283333871496441415798432702288836668702933608034601134987796086864787909960215604277795604843699576863161527342981351810397791389175340863845318664481376539616976422987637231910491327750807746009344096551341763175440596409403661680661229954343347906546606944450762536518468584842955853003474312752056548748775871647931435024616210880605873411967513355916188851440445110823360915868813556918413667016708174412925172047259568583029516547833303814462749471246221385638279906917454415867614856083215688264707674735776569842762740115562775149771529489638934748812398968621272854026136332167170188879099702579091358545696112056317090036235676318810917286766688657156722442942694554207521066316024091793270634099182991750417266852644309609271423665317529620647969183166133181347995783876058832601062580223269938527600226045349603402863104870608363576213947062179061425068083889585514304321800257600815903898897959098834630328200820635108298403112855842099410745947100935499162658483195836719767231532513221767431275427208938253220931997002241280691444908618680418700391850622047763444144404942984968924482733673686847616043987962651859900303358382889758061693490504318462887325049970448366410427876719973040590420170999648634575697279974116453245316806472643407436788102441482799551912228161888540370030983668529783713138694944479039794203539971394045336028020829955431174662352113046104829470008509979311081252930011131648422495229214390931573102748815849830782599577232154460298714473112357631873547176894719732731982617295283964590511444518034977592940595587859205469395305119308594551511767350190057259736345093787792799971486219765453495609501355925278607948437452064722178026424543161183730729063685801012843028732146377173867041193789347238971038737782813246689090436962944213992924093153650604318968721658040627303779305970469946849747867344570385365492414794611342084253979257319116863970566975534461977780530672060287431810776570241779272353550447613884717844924704149066073683767717403935492368043427136358016166990840383177604525872420146527004605554154866693349248786214460726532136939548891860860517309510830347947793505254413952592086089474010446917390054230580808460378032873194520292408260986594666630758225022492511737853669068783680922668252573923618451816198649619616928142805970743802563136182563889383833950192295345141140247511982179226569017673795022181928000367357220423252638911960591237884155610423895445130340524451930186053249008880085667897768570687901993642216212965444720001866953372176949425617434185812694036312946427501389376805714180714647427454835749385049949724951482756929630639871000907782543810216741276618584848510102057084649442843930816961524555944971341933224215717971313764577145844505057928908985584076623188033315637624936540837182629770067133644554032485729662965286740192428352876021504270283600753815372729461958793009552852034543856153135666618516071312985574146289000337841884240875638228327753304342099939952644696392696033001648812742687912374342107013678350288977480736094640322332162184744125581164856588078624780072430502245497271324994297367874023036410511081468693203763916060900116895110086696874612857800544143326833286598447171208610865293704893133519321345984617301686785199711836541645107536551015330472274344053414737976692396459092285497308497020937842281318269958182293784964075382163425562392741410179296062297473006127387130126199337683372374817273600383740673945861065857699028222055589310754713934393584573882348940173711684979415287906650398465424019325250193020933945409529777294365852262188993600594642348876670425790261677442087611904627727987196403855504855258772782027734324829890239126423272290334193063800904592300949084890440182832059943926392045055484980113756163890955988030646213001892921212278485152452576115592222344833497688090360177273146847432323761400046174336063596986708684146346868748381745919553075795841421824626742076110857860189593609921560309892901696724279959940793847210943826147825903065456173035523800420894609825581957883339299950468729910267221885495016618641026595266344764217347287212125989624614069830224186989284155003546750428000852515909251959627292865733634236829523700846829488266530034361382969347639409952931623465862597383279021210810279110180285465701023329176116689730504975576549968637238710382886512277978460789577508492537334719216090144040450342104377744979547928656560653454823173805637180805756641341188421233255786856302726741681052890525013072061714419048935342569962811993843666752794452959550593467130684985491438651260526648704867882949385943686351439479271756275230001802191418155764237813177475149267773728974392041530807172171992977261506950722842375544865811985996585122225213236642830206589571336307037736474887944551095592149928746829446549459169006429259794052119345732940952721222301198109823535283866446851987430981448760110191315952888505606871244671830648887327862424775665688227086637991999162355020304251069034952020334735616521030826422283082595427633400769748789351616100278997010447927180951756186966776674919547069237854189213435322163692646756053130399862070536987546736681537142859568997341220923510864571188983980100810219724268875771261520685135564931105704476332383702159492778720667886847976144335661402629037115636830549048435269237023716491162346017373302401383656369120919082397174227848421427903818098849530060200057080477484534262290580898660993526811273886719356336157339897926779786437232656731558348573473566703785060593691463397668916989345591411057118963262144160430927372533580999047476867526657653990638144942665367372775835211585107035545653866773687184912701684353461301802097820437050043836159752011973009063803422658181488751512920790162431543653518046488659329640242841727957896842066171396911209596238115044911232040169859650719555858929015776320272547048255703838270159877414111617115186061247831022846423783055351504231421086274801477110958231366748807423684835417413510466089155743062923283274245575436759234107432501004164942320568979949193847176520074787327117939678988697010734836832462656892090615168144709011064682866657521649692160899708274763152065327140341271611767715736207070822433969592189870326035945538247976848574982656534332030592672880596270855852382484862662982356054582453824388086992292213621604871892360022411158002719948524921371038744326958064792651388212700014602993312741861394315952920932488386505521656954636078850254435461203784793274453105223800582939948014666857567037643351634507963064123749253885569627328901877338411376588653479793676208121661096279602189790170410369575098476229101980211074352582344310849688864308170858003959449047665440795367646926742831560327182415781381091073199718891428222540635540219651769119439524671371281609548690131411233972273914261394538288858694654524921979979809051450676947902093820445607724577143218571948780714998294555695300933923273173018813741338184701449954539051405670884950438042089999802954769660265099918361381535988529110474133504359636322907473960278912977776469377820111464185011012963017561962546048605659296317125213289727190419977012496322517484046467947009174086941898801375959690723193900169180262682120913258552101128335426806917131093631370638418321928352587587960225206183450802505527028167043611779563841201932940229107397054514317410076896871344549263900533594665168432749168636107032028654454315521167605115995652845478388960102028237143265195435441073396406969623707365404612908155773496516434803455699505803100237102661251429496929172164300798278102589625565941643166061422979679942821628573503808207877843560425395633591106412917427971734457515389509387468002293477025252989235515101959457643962945769953822927829455946524655319037191239544144053198021512168214391780538116340727405294065901100207544309524881386008928304000960129469201973058842771728047295819889106072724739763571758264687944797646362239273149605841956673954975221864988843526245314672763042567517477212946281623405248929329798476022928652300749224582282040819730112810547237496682129615252607580520085629935546907261950397267053194231804616980748836869653013453191084357732929368061366730876441322068817818911161328068939235867741984180195348747571814684950229835147230282239645918312773161013205840586763489302794047755258892957583557095818995148442016440094807881678005416877322355374965588920449375161097719090432230655873648690063609387189258652464641624190039840469778125158487952303218604836305443514203715412241931300638368199394938413119927296769323775298741565630781782825416384805359952185597298689955561568285792179332364292811846499876686196557498227353008020490286389036430791812560740117719490264131449547070057563055291818099950840385200638271182073836905364735413416113092163353549617229578576604283617043730860504990872060582363898123874004535467725357075383336190050440490398220396341049093463960976972788576243676488768585491623365004451446688937865305019095602422819825797463530679864204615876709309730059320211176902151621209350872277893566569638746961700991366751155511481303876094728687408248745117284159353583591582041230139004437803021738046621400031978169366988145753254447402032865661959060902774305324292399832809993437933260833835459655153228927460824314783317890263520099080797869702211297864650889464184898535073845594209355131400597185330052554415338123097169646882549680560884141607172752354062641283867828249254326306603475616419229287798151979658369429888693345075104135235534145195560250527805911561323860909005294469718048932410860315378373872406086129394241311021991949029897342696460297074278151927398999703943658731256483648875840487204004669991384855455018093833830832001447869839721912696666065129593978595232916310354317891270729714113734859445492411960019542674871687681096569351973973686356303459842394307071241934485484456963966291871517132709195985334910098839828049155711284016984129135362777440551509301109082720934730834459950372758488808109896100516462357185700937504139265967718448323452990892096097443174653160907073323575525294408957414033109486960117373818688063432222700421747806946326373894843064422839631929896805489629121052981408332850890611278187814102847986462383615970164341860911784960553708255022969542981025148626179888154362927981245475986297961840125667742535987351967466513839382414565902261215422889385818067554233342383665922141952402520501506376033795041787576795906865143600711679670195795911693347220160092031469115434236825680322740205297151384020581084135478738073322089594032772796478282022430006597456113568594497941513680939927722991873916685296221442644797347178229889557658907905876937937500984199576052928900755666128781631569072811098678810104812315860011413874886203510078492943755372937374510688736714538394149366282409212827388584393394108670115705018056887131192610722334564029357099616864555598116919738276615942693492862475432085720290275298708444523656920467524553703845360210817568452533967957171776122074011726119132320256461595065619724981367719887307487636156834983504669095263936476330542952144192461819920174761059422803756548404912087007864208380985019076129987389566735232286559265017114217852200520412549585998980776669694097205854727044379546114103660745735134728413327099248728800835168871437363608093064045507405580845293673156582443168714999499254880453393557977496596740450522960252511502395852696808477304588698231795733971718889275950074163507988230625343605221791951026600215289387485321947835504435793999086524835390813224510236397193459930601472278413764235024322837175420812514393333556296839379874071323671326236786621182025162971583399611705667674904107920898902066401393341111502223837046971513297749230607516499518937112202281992163683037360436422907580699041812440187973566244570982499194825298974189543935508317912799216818297087945360875217285136096348238789354859347161875947799073363444436519640078486450237791925691416498318496623753579010395133506950213302238667358207785942262489602197390866950072546357472047230787505087148851408561373779747599436831324107317542294027144218136035578275146011133737610315856600624154894791884875894649808297572941700201254386431304759508651616114920349662041459436446004781044747285139134052216087678117239473150194136594465838316922352368436884644204175267405029142399752424808617832120553121701392897444302856414271291283717140545711631540910915472921768600591273994914339555294736717640370472058826971662389831907562844609367217943110145245807146411644496824983349556566406509823235797518005039217902356752860185871742361295557908852020732662853274025554931675865113226292877870589100590857487450708136285330668290042292230611780165535184315467401796634995755650755922436186244941621687656977322956793766204398658669918909318491043755205115069091790442095255486699268754488137452102544513411211961362375583805074028156497933798083809251347028574996944381674497435809630205201791145977078250871706646052163883289174144230687488367818139163851989558345153537031665371873882847523924998353797716204846827254607180128685854011046479059282538333842317570547410186624140460442840366578592946556000958219676820077282124256951266938709552369090312935904904557341669730673972662214003075400684033755584758547323611279373271214245418665575070168492919915474384273777134216790143728284551445789418848911357511587260693469311054114672903940279127614723273078477588196819906921182765292756104828921394170919343557726463226877334474408164732695755425028985528947718432918012359235584892296453631338015270953675491746818488967694514713670285156963091767272955070905487776700600636415396869849426458792925553598649524119303972647924255285870569945032784250245282284135319513452199706149710704442729738162642934267640824594957417447889038700694755331677157074938331445521672627463296114957790903983188274125420010111063345078395761541882100949450651387495924687033203307257199307328554141741866030693012468401008882028448799718816523069787226672114267447999947943310215871348339724379393909848023770783887977083159647850293499000996844650467245151296231219451777442356054138014327194456364115654166751446852439523135644281042272555512184257580448109760857033494591059354928827675339360598398395361943502918867555897580606561689496996078760892335478909443522067504318552796776981964276746216081993240400872435727278847025946527771690065919487385766578321958187933844367224660253180158139298699649314549448549845816146708461528061362269017454882425505857149913410287681120293947686364977544383816792299962628156053589939374138028405628225965700213519368387595246017849718606756310002427076690895391038662830260975630837192512591867944750019215318791767475388321177189741035256696509114562715176156380429125681123261635677817387996787421386931232141355154085358011069658201388984482388068476806486750629222725119778150044038688216564787546596115677509661825768613353516853964470712371581883566638694254235221232033639816316307360719401369652882680090769481253786582597016527669405781489250129585008126791905786813703296837565033132351710966082798327917671217474463699340609601976926652941555391310191664604246813641006373923368885145096338709416775353711626048382033264205749108641348946435404197903308212724515261221440524958294940638549650187865652199851767816543745080646858844554629265046923758994672765760491981344133785272642413911808517935262271591898807433570676050133442754803327292899310259648165504933148562086544163959278714758877705414041451726412426573310592503179761389265929337830716973531411128624532472546534131452768165539001446829506075879130141656309294616218979547973440706545580721698974158394622559033464144915642704040544140448280551760151193658036233395204571740089229161671457826423803136748697673465455213402581843498991234645312056934853217297072585196451376232299659050160277924874079258019535577158719808840157653492828563377214000412112451969688910204716901969380522043587449755039901928976253286177684854932187536414023615670036979138785510175194100844184915525678659785884043130098611097763152434280972953261654917707833551712417983034094806939693753125234391548224920777360805094219680063657340280691511718195523334015790004203365738096498185649079944566539390864082059222668553968966385072904881043868080472057400571470518101304125913100079182075921675532728925988109935395175219859250414353947570967695394563587159624949356520231709403989321624259156475014763430432699920073476268087999469140973343672109270755821582530966365443677987432984640908435907272204112381892383072110473737887662505609663806874315443425838614621100960709279809421316688306057349456115754569613639267125043328019177127616610886760658865785980504078969131148774363271757529107815465833529950499829028688655358029556036212998607875713896271002457032078929572041907180469723695668329281766781065765413147254296435883294583865338854445401892232615974400686885511939919721603346779860909696692716789770948261436431241666993020550250276638178941097599371954918107178622689316113976822040776984936043019626506657642021022686829585852414061785905707215138466010747870376738970452928908100833011395093532232155576060900225748031766417686839020824788157705856182990091118574699135626309862745426773824845374590825162874799830112852070362072614527077158303739230131869511426881500160025806436496640350272278050908045124900476656979030157242704769301443601856444256474358141796779720991607790124250434172888539693401535291334744354228822808603415492008919618845845776120112530959425439413305519696125287449393094623109254633053130383755863984597597073993309849213426504030172360691479867109201184697945842863053488578239766152747002649834395924982047219742530252528596868000504579659458496321968842924844751728816290109210840286900660799829806518624822695671772275553962076915620432258011571692080777495237157353966533874918033545300587077166094189706633573957736561638889446021410523419504870016562360285319593373980591685887687112134389717874882370991527866575871392314022912114149023437868289680518871080619507081497090069210606333060663760818353167132593393217062998434090908627159532484723098012854166665503379466783962717776520023514413045639405064732032209961229166837508383226302831252462530519678598112681143062610722935466441906477777812337239065587200232724476607319970408631931862177858345303351333674371137852404071481160350080409515092809361908399849847381082979929758970653708081014363763668850933078666966257771666525467299364631544727525589420968633668877357770902387086683667219432263837144105619383583159735798664859829447078197929623149890419597238657728869279114994176588469602092742728339213670353312642351692749482935776866162889755404398474307576750353376682255701074337832702886016093558715476445514947754272551550493584695925724669698205588584689857428054025613644040613000219303248869476175285881570531956738841529147250369397948425693237223857509972174638383314701576690696577627480723063711768021493516425677256305438884074877553164221314515519241140057767899852700402560516384590185598620968618676215123483209656038831559337292537695498343146550452773049072663131221069878172501836872010822443767885384559737083474223718425038894347349144586262411553176387870078991711353723310756920175448460979494393592773840334753994738405981557465245163218002952508053470679801546413775573754262580575785363321310050272323393962590252462016962228420130369833533419452630850140675323189730879833630863352876362394929256399189262579816606912057706983779748236460615276565241964833419273042915187979099621053956345563746286803443994380346563166696325075741668187888102733067212023384943909577656441567209995356078152236505038944210830697228648417858204993629191846092183411329675129398230654091143330465158601969198673346014842656816611456896082845072527297530549861083379683865756257288586401496275152834591994013161361078417218691773870124140732092517805962000808356294558373711543385787901397091610053868636661398845381189626099290315003776440546243616507573617104138979869957394544192204387405712502021512605469214753931077637266202831131569075929976484301464045369150056132656147719003564449886552480578910041419623216280210606372052312692913292365720735421524485115316580714530727246443936312315102007504635255342085218513966114508620634665273164122843070384982292604855209808681980081064090136312581621937065973759219515274408686506854989093186702831084627836997300071945698870716991924208271307168937083606023666997466067573076603611994083583337645778595424663290109412312124568726563027795267607237650805868213107902189170166842706132543495268123125953199551117316268577645239385451015299922471036798846080072821496615869736901183600193005436842087054441627831061697219989320414031244219566468697702062979114182064548512443485848295250417973875275401460841936360741814197493013402405884013394811010689552216721482047943955217310238339639161544451660562630459831181617266851357382002520911041814981559697978907636329199479651571945964009921807692188922894568412140655728604735223502479006101975793144060789440058985862816684427293218114477719875612420795656817363367344033044115116623257756333832818053684177439838047872519240881071094363013678356535234548691484738677332707748467734461246787322057389765732718885408436363820190557780480163605242200571770069167178673385107264104409892867299727637715552840220449039369900040529452820453963686049134861646572593006099183038495442351335868300726202388186066585257481454208507796047383366538761428298438653613473788874756038855222116093146273309523938235852763904565971550141106916495497585161695367394244943829416061359150372267866430962768106877922566960779922823404956359532508757258545737444174873177612800082496923043460368572667278350701370194083532424174905316676883958324337863076421666666365477791855130937577423836618502735608112038022890647775762258280364138356643708761208777970533087178759644934349212164129277786456490851306183678153168792184359821734177861575184305818243895435467178958136752468120003156643781384019776938601751440476174407330303905622276758099953621089227601977432423001989754687377776496908288881072863715733455673605951732806325415282589640889760576702859133282866663226266630924590765102270465678535372713730460846427532274244797665166230915601435454368185895170672617001191349261706586831853368088056029501214025686404758077712266442133000606207851366139170092830863052192152343404574798850305128984472148902750491717499123877561137677717539468914995289119235438370093153821342029791715054432029807155132651514959992242439294518365326914315242994578489669191077519862859872282907750906431771796206752700921039031292378672648875017722098144456841224892418587374508461285670628360820921682584885773337311308512977282636280328514344844441752997140669387458795295792816858591856365087240022900592320042793841446327868697500907719475919159589840610276780330906552843052161227087093223806779142528389965080800407275165987330848509790297463279493106041318740953553960212929241174129357390682750597648035434130986087637600645977283825336662317758952120405177082332580088186419684466560542102496941081463048410088675430227034422499879669249315129520983569289170613260894961288863099502476606038169508062697085114684352323880161427903422869323197143548340390070148871131719060421590964813675334295327155285990589683795013892843617202041317663359031418384054908118387530713616912770351649064371719932096867859142106360741584404884950132100224955725638042310426575903294684265836158082937712778844344980396396389873585010628955053095557114136632413257518892110066970166275341132182212773227220029612764261724766954401340802761193765807180706042361301655687716245887689947783087433628766734904478816586590256548287013493914394876373114360048145312542521213772049818771241149279112015477276899831911141677886167930309257216397796194388630639069140203135517167354951760192222684392101814254521734189538256995771442021261731637832869978591640666282358034620032926522204186215700275201349879218819491600977922323884164102810257761175082389845967797064194045830434861321807695928579549900046684951326756785196526714039551026568962427103996984371044107257236408455550221678069450586001957527481699579732329619395165410859063348452543655411493834342357065616311998033967347413920654519909333136799804477721003429945791668768423874199979642121612343328606180406146378493796584603823366192149121284951643012538473595858063130514873998432373264002600625033685536392874544218448171938702115791910531049667628584408915025782082998885775891050955018896924851988224989351704512123087509448905348859442150315052734614829261065718044547058282890010341241891986744319726671760196021787981096429747078487902654475417436772484536190124437920836052638509620015569606820390838860478471774358412567453488678220861152397020341846481343831886721464267573309280292033667649387210682610040687649531562021581885196762703974276278555254233178087186139307904542191131518462199818810456554665332060652417835276847395887292764145364341020621664019580310768984694792872884184221458765680290440105185664562276177141866624487984200825077822785117698255712949010487417529351976614261277736895491785461393047857301852047259543049968569331944636680726386286534141742554747307431984082301947358067883079717207710218037036778854635658694703197103567502257623288112349751161141863516552021990452728028612631440141768465685839156889834088531924717897098867894658933114102726383423139885259850596658247489324819937786612042836803369866284040349250544768211511778034523705945238740588702602993854314209955639191803517216231400025221392392663267027759787991037199320610365151336849418691061138067974763294266499421643625684944777114032997849857201373254631679505438197137919344725053010772490397592490437921547380832044417548131672565024042424778738511150897072896122722613508863080279962152040773760814388718686054985123143530881657682721909457967942418354593896145655076431100440237144285163096266390155108550552494882710453254221008880430547704890289893365529496888452832370024694468908707020748197058725518695859593831732077201338901021937942429706266715637184575430666354651072430107538343095664191427650975037656777994300359925101686011307307270233089037962425925662306709693310574763584919347954414056398610405275332310423352338838129314581301889681892249448161934180559535240705217135983601569043993767345064524614970976414570445241079270079880700902012112459292339606345171795113908659054203564112181092100541870922027817574148809750200873294593911134274785001529246424848123811450440800830747624672179414672091283397179274716177264788551206350488781218618879531886944616319214342440876485499228677185430967306264298417316311557724362650354616595913624767291520566167075605889050202978895635649270284836996067323082277748834922860525378116271944964099650799657811624321221257649248702907092458779748475896471115681991979523533756105616616506513522911569816985800604961151387889064039371445646697184622356922543252677682722022525017770777759841654015364293276420666769370570774583220808424481582836330768969122977654558565213992406514382184445572297416128818687470400730996130248038823771025231203206706294975141782260334162838967836173682668085796951732705905336880952631015427954454080615843449556984754812344841959070915493095174120897101631715516224305798870245993179605125747613411736404335389271748143539805997136997529433342315374430498538783228657422686079595762079390697921839347337029864328150892928566069299668402775463476119262333806813526291584489555388292054530382828458886990109187216263756928547284138371189273624297967227192472233779809140151690918885053626085321610309447862937402839329624146619198874442212947170316330169225068228282560208145795719452592616084131789151709548040424046527592909677117168534633346287173326846140971355035482827981760006598045537201275495175470567366199758731462506192157225194059414916046618766141979432791694905956343541077338145567857906643786212273060785308096277122176140373194839320663956170535151871322362067129993127683126140691670532871028153391310556093634021911108415870339452038432329726644514228264908214955387558351703517594708031911680211820388229391814133610691403498783817470442859403107551723055496901115803483337321180716801682891230609850157246437347647003373709389856228240280329431179498914853879850870892529398125589450509190283725055209427199937278821972776309196081325290446584808952821192556652685711607968106701355459312596038313094071433218140342096983753886257115375832722251854821972862987914486708926587141614719970395132564572727427127103892521020507805891402321013668430148837034148053385181595461333586935738657903164692241718919113064182844720077433141599148204043080828457734054753001676604175817637839164519551479891990660041299405587682612772815289198383545447814700522073480801422543805177878531031721215825403868315290216937007138711468214759072813209254025383317255296548522372199718977123997581747175666102981490337687316156167731838683613402687203011426296519170127134610794966415314175538424870153485837563857349966280846747615556251050155017809141675588973486670782288466788842437987089248855508379558128016812352891039912825456716785363992813369297636634185315592736388712306717796333689298040268798045050917909585096113810299697862860272250043770253246136115815774720262646349380512805495900436414456187026137386991562460594052733414106025908201454914189534278802369612546922438172363961477799404464316137377824593691072715138942412596885693785943556306498352403735403593608193237655486989798629273713155878610641487861065674070181471575257027797537838828116260825714881675511884051731166653732714023250411375193100115715651374002588953071132207729842829613033702217850573171298390274670203438437896331940760225332454830390523915865856680290655952073997525422417947325224914501730222784756395760667802112999453139240362519642078110678480328376835998277685741956764348365670159157534095087839822937436425075923742014532120307702322694626646914937636439270431389379107014301933780457766378092706714851870864195712130983144422679484227789268277538129635455930026615904743128989051471262188134068033201947638251230843914553134482549935676395604257458042555812974525968002646610541808034135405950513730917084432084234544925197741858525781800908580068014453159719550944521084185754245218521419809119514670791291379568031859300336782918715714818207159631570935225145213059247662313419088717909319001101359074108140522449898412080250800290047848234140959070075904619803498106243930599796091212569098230111923180004067706586782499967514062275711189652220788410856676491519471962442093063527040419370456692472945562632295063724633548915404805322142732099242920945399260881170639435630710107666958507713350095387479438792623986730724198382474272119702783262422318689933551925703684340664963909614986457374288166533378035872424691501320977866606656027906754636258943271919945496130829285221801596589908091340182504476442538688950573596479243903674784786263631882461385737142050285503718773160688250074565674353011792745702786778135107265454116154167224599789530452840616787699683982731122390336988091659603549534403989635161592622172168768369007159473524609514557126342618922965855839953963348369015978427012516035134051503085154278895964958578247148462204094240090907497148019800796268454001411133483980367429988575929174365583167042018079518795666567786972230802113008565981787275503490673834119138519652555686969106123859033807344917609700693951040572484319241830658456520624105219870921669801232822016765674952821425759091046151575863390265820756509644986007857561882166818862576668359848451802890441996463887315298166467711755549903564245877586686153075116473644707549057209202947746614904888146113690711248655874309100544834979940420587245366356673238498822045558455729958668391610036956129830981397770888837925161924783829559830163939890902155856124085979416836979248480788559133535685475529906817633457729799669367374533686910545650825543431088258566316748837218318833997216898151160183708796949892269744747888099538969849657353232053475935829651792316758607906704311459276294463790836564547727424170555422527934370027898955299685178978976491171440693749848038842397050851774800080910034334055263268070460243004951383640761281082720512616237099826793100356383207964583707950433091956243442870444822097048556625226007481992658238749452540466692829081540286877659677663710078813880188855178826674116019876220135585569630705189609090924756541344314559796148061170198301691746304363329915017172909841696566283588177585340568675876515309921026276359143094398071205385152678225168772593994913702104751378898753410146888867880548098426036418779513854367306006587800173211222366799636982892497384522293987165941533152474387435022144442535473285243520477755589558195711520976255687018191600275937956578073855621443681426820828606619712962223305324077699119655413611396861064334663988281765180272004225588323672420030492087335088269509250573416632836907813117412693942806011508995451114044591509726831124720750656353116117305692418641171716733657353500248386533875607399961262858591734483592819672443955213653264461266911914956732664433647451657356270774014141426068443078245127890020883242941882604160174987419801403049313603145391341921323411198807911301753761081075386122708981253121339908698968620612985686696547631868821005642437563941072062424795470366150881131579792483238584537045831366444155007096215672934011338484692241207221673415370366113830576017331681402561015597396828541860040354770185455134176424282177356105303032519074569441985127241241132251153441467462095906680237540979842073650828643570207880300738546333594894099545252353861072974401047376037239895152802389815955979778743246345244769171367548980805746498503580314970264869283011166541933349216898933685162028460135262645983512252604843847526203137177854594259945472146443266157422383814566004722596316492771448578749133597095280801011033904108348342050496020243700206221670022765838247357694166968695640176544973044439623601188137795431681875185807336843890878386858300069007360063939578167323773472343301305002254708402865704794870267627319653141615397345796035722109354370526047681918113303280388507249174142830993594319974608453680386147688782980359661770175503716507024380866704551150088088400789915351190384849742231880963910512647875924958386031679415034413055106044035607968417928576838916176964373506619618247796748654066065819552854076264116087315070861173442036183962482808600481821630877712361871992843827929428814947894772727160638712306681486090068061153727667775531872327507023123736897754150773127121998730111282141619161037476088230808379274965136885970671986350154702611418604350778471465388210065094264345433208125167550183483646689759985614826032314317963386959557172140892181868420170451164081340322521572733258198306631658595109695874981270828573513510164375818263373732410723469203029481795866857152421150659287397674740885293543726643346469172569208560095514778208532944238660653402594221343583538872373424343937817529455980252933155577840801530808311616391981361024681562264803564152441917979479516380691742738358267934490233345868061380884820799668000681958780213376963899930845636225441206667929997484626337139860305511914374279873687551913287010139674148175530696051719856650210367185067604872664013476194934365892611207141179977377051018934015344091416385074496021412827487440476818371933180312468581333713036093094684180131914801019161732921234095641888276462191825719979269033769034719053047506690026480253437181851981363690564383749011049600153073889705895342962585918942592886940500489351698590945124271891734284601906573582011076775276820611519617035360622022823291361972559957585611487684640793440185390371216531708894327109806624606481104254617840092068215816583107850542630831858032266918444219053097496627428519027758847845115572011099823643647461484055168698414133134424305441168333675162187513907153689548250352698159491521122971056767311909733625144997591775435944906845312194888707371184865749386838896442731458772699496982557399533567120680249443416116990598025843689781711140022640776752925636142025641547192130489851193930201055987121526400268958946544938242320469326083096362947081062241967255142057882894916027593789287910454397397976975234326539815904909921877565227302902966562284610715371437546360298950567618934986082893887001205788889249917159532904857249520640546879746158867736293754464433477830678890673727270334896520103574801741818853282356111562345411439125769240599334861853905568435970945234930851838642214102933357269863377954195665437541914978328815585702358024738100838130914668963519594137795996938120462377546782292657763539520192710797068243240402952156728983260579724911515639188474746735517777313507419321799229814414002641179427416813197117526492209985549045016608469053725061620556675117822123287966868223053510340200064458889954134613168515138688941292833967538940002428340439672582844198897007164890121927355958093360936806366456740469115673108737651103621809818133082522443830092874306167350817234683469303404192502343099655240826223153246522596774506699135281542030848046964625217149457184317843820438994592882830040404239290782825608149285183267590405799805122475825409829801965924735371792043798127244536313256487943301084113051624986326054454622578196083580524625559335625289809034390560526923465095279543963672749885669864656183293031388836950048023462424788229786115774019840980517125190037053700008578626976487515853211232855173154475942173048198694629464497345582425096951732840624379681230785723355637335908767535651044203485856464512373202958860117363141344508900090474080423150423806660103624004004997883738967280993742069103870995921373738859977873322664234431283012341746725608692447835721451370823441615538607962234746321885278410056846379231677077072741455895675194569458807645713270608251822441289493440289895628373249065025081086832531272719049836327494987536324157060300656232606061405382971921430386221504236820804961365571967509409798885042523863482928617763477054257351693453905296688257205530265768345856451693606970665773826963505320003728673142405656990023909822572797280832857824578919450706488645121544056276796178157172841697195394279186951141812388833152341011772454928308156231034736693231920192523801582956032442252465185745198267379922870307706780219527753908694363167353212228366271963972414415278462955578082290998102087105947371171259043654560035675155309521631077218584354125084499350182596856936256130440435438743724894807085573966875426498326286208066817026536350006654306216540012265520072179848639749709403659064542229740384218564473288089754926515179530667041929642777903639365273218598162760947293123180648330286476590787420619155280501518123290197675092460295798805577532311826736534911759821401552839769594653996524235377091089702694057267665171886520453225286312987628089260556934521512407692268285347846795560598397910219554097483449533785644555484376390634924011294295064889072211772092529400891897163308779283722976873606865247758818235350127873663690547266342984265854622918215332629835870256654596469239216653677067662681311014899716128543723590504746789558388872088859602396816060864736849026401755823213740467480057123403302804838032933867409115013200886597062762613920919891140537281669301497024281129481496371826830207986702243724822969991390789659264476172632049915597517686273230019247489210986619572599981381429023690401463254894039472998585238071250561659636751921273549246278892242233418921603761057881379130304856340812447612496260902871920235260808278571441740747175494568218216318529182607562519744723214758411833688724964110645170138415122510665146987482398697840209247885055503426000465142941082665312617665110339252175499823564491872401733751158133742151221127506139813042653271628164120302507422032487027028757946655190492042815129870960845360520712657451384415006548557322371597545077346980051960746692421229215946592294834014633354997461096719417508861787548042659287439942249042006873524909266195394661354273616364989104133263363101912049109037461549388244430532336162991254516571931762322810347236416584660369197319055632442673375295256936820056995609148446121043914957797757452961550812841984863955615147604501837213621122110914794760072313737970856660539395273545822109401312990043096275209885425960590697563149847188656266228203845912522006677266942375843486292025227934524700908067460181873896865219976138333663478776567882687414763959593851015000621789395738651517096000238478005277278947561873776740428043270097053796150946131932960412424915418407184494568153109577849576502614405113024203377788728377143926510277251621084948030795169784019376452305176392614596713033719979195508976513444191124217797834043206991740780168504998777668223020514973862500624752481820080862040622828541784669725547751721176333411665141348780458708080681541235538312417786389662361087342319826845714352895190793459740454894193885529659222606475206394024776621864830840016919113847062394467976515948222370391449499567382146815416468006489106119785536793760169619112386263812730014621945159890474213310517890975807252743168684931517820526472410142290003531580637793372864607571721954079519639645075597951300999356187117237035882233381708721702972278845299152842024145892726015015970148374452799551093451358693187546794579553634311145269760862499997897086503406034534622697016339245512719539167238280564891747051582725527240743587353431417218849060336916762051860445499302385309843493877915597820534008775737350721717191506291383356433353853196209411262963602470387519253384779394387386787438556796693482717615868006323646705442667523927066993585968888487329229302816715056538477772102376304982418411036074589721875466003934702119994364709810637051457961285280076540344026543535038762180770047214760742727802211220708122161590500518496801286765508737212993729657907457500891868315366096948406707136757723316653036555245710611601301568169263982500908473056827899571693787258516671417541378236254037014076169790392688908026893895154129044267091822419531093994324089939799048203719384407110375811240617169307759855570314674598330599398539889896381699142673217757858163808300668579246916481968767948323036780561879444538494057595979053173022465790320487008783204634384094229360283688851584520485783198480611507814013568151883067645280823694176150124855400623451704131126248788948839899431413943000007995951209312597735641981043985557616596293588142635362162543990468544143257001590418157819961573418871622617812681628645807002015850706064511275818399005505501852513286749853783523468075402147187775021378561462170146627648542342656694858774219774198080724365439011899071117796628135907625875108975458487445670666423990340477471619590205710410808197358432904131313442041428735949883276157782117392016534799375575464818154084414117032437118604330155132328958711314008913222909516734016285183284552358087388496126340347554861340709597274237493703955415450923486709494552734187680067959613170817386890770270324872014141516260084631503918748904069310339996685245384340735794777010285439888531722513275391971679047135514034943435367249742382714745175511870911324689979779066263542375586015708548424761791047139143892333753906460526908189352469259746186898059478879084731808973607448348065005404710624892154830473407615526202465084912535479207624112099874115168814763953712879503458848353800680702262904798592461417809971896624721959788406084343197614828159651017320987483866380776684999034032711912134255078811666308837719849554916483271470706589741869086376019541276670253272023819683951476404389867846281723077289711467335122151839881278879920548157286706140983618064079114858717648954180117550946735484629814652053825305223550823808863916098797762213539274230027253307535872516864984609399073454278756420111167922859219108972859089608238789509817978635693872948347837003923399808614112635030710567043948007373749719381774847180896368257985506425315420440407072909950106662737654946368860552511488055044538796566581972297993723326634133534312444622018471220793420592745391130963150917352457784084187424357724209779233018864851682298456980883240828352421936288414376464250685298396104394999308617190329028509848177218437875919029675293686746632866256947153074375097095159452022937454124277467204173850925743719235420356592588239364027870436430949195201250068094252481398577957252750679456539882193738436346044848253057129159496656205792173040512176608889026377708440359177145969937889432746741380155514242496697807698451435832884353512359626206072646908194556336337083370290365669094324259750339667666459570946975835016797314217097718309331167476780645473036653167055630324522985317492883652317855514548168393972427819755744655939882481734267299621101152688530322093042876071879668545167805870792601009281656174760023017025043541368175849642727084043543353846674774683269782755144550138693643393918912126250575054719658227105043746983956624379518098646217684878895930168890486910313136382817446635596133719773927831894092682997559826003842540695354068921320115602341999730161783009198340712877071387016896876781620795512125038318046632766569163423004435743507397517400828203549538090607039610903753909335211377336037562589644491568676091419326731007592544204111439667899506795408482435331762933453089297908137324486679186088156491821130142604576672847995258796426475482975418179968949259217933788372441692112254817592884768914549541634447616640534805312564357201037043443815849972793178350084326016554996209639970516308229136089014922602191125120979616848248886716450196597080620927443305392538979808813908040614567321592903713991919020352132905148039174226771057777320911686977077889851283109948665245930487380576162861988145362734466216592128835412293555570192186214503175215180475769166184854339340048117983941679693382433942672230873468060334379119026886485985538136938873604430407241974944738993866910589056353656160407880897226599337784674912860472503872759348844243000691770729305869398266020737598640771605866242146000830470839425822938550186043032882184012212457418186023284236612105558225328091332103374277791220270939961790662483259847132214096132012706096179490943255737917138073042524035680896138268686450617125964353377034854876164719924319434825642584547242117751234175649371220871537729866505401784582852020400406131670973818361649579075470084004430648278678160787135808138622335116755726287789089352916306936531410309498367887046758504871792761044538787899280572251545260331497285853484898406602561165233489065017245332627914581365065495261092441324885198028130210874626901169692443257153148293927129260788941096420127170013275448359940625619615005998223034722409140586379015050573606683694468497929423032473362524545030651192784432170284333406625754465069707604084744065500692048500270929167647722067190079642756331414783583221408706466910994467317935544233769241651128996262658252220202821351070279759000940142404839362367511898099505047500500645026904699511812516595616821852475710478585337662418148718766394902337449629384198023916918727599200793558159324405661446753009899952492550816520272655586490963090297586948863648481033284718536124813640799329296422855318389726352134206554414593887639350358299043997258051994811140301281901064050189724897090046215265246789991838524991064637186603993384896639482339308700720784998208473243951903865381743033743269835860269854273794684797688151221290393414066721592839424500344296018589304839391725737967589875143210513798026779957988031390563396575729007603575981412707233189404384320960017818309158832795319458383820971713968922594020024748594181351611446364233874185557222070657940823381181058926213044554294021954656774835747027236048049193437713627457484815459665892741184377711361287853782148366464260883581040349110483358162780143313232586581334824375864742787492743689689778052034406375087296254008086895434367720662231873910654917769821840571828059036050175905208907394255569932119735793078178717334729400278660889845045244865756313481739755736114522244876130104402754389426584501612078598739816195153000586723315555730394650721658522687234222029059366060624233515587165429606793079485758138375668091358868558055570940935727131714498294783324593563350725392822442266000492765408340632396711892219187271417483929716269193425639727017353216550429341777512379069841769126855539506653000864082286611420454600076700884934691686204220619175753460671280134664957392074117532655973671989629877472020519595841555122905179612643261853762844049851961194951879132968932108784468205369592067992235592566427535459720974913184878890482983202184789103009247144629446498837190330309243554711200317751885043967038064210790376864190723720316859859795376588143179768372339399498269848544813032770533339731725150662533705229803569109822882268958853625102877605756767104363497310297276596030161741898593354991830742961096147272696925244541455521343612683132521294871166946510352079661474053587376214255498961676025897898403839539246118888131975461703832989281300175484301343676895758651992933697869604599536174525155648967988578326901053674645813236199393718279187058579556563736541549325461219835020813666463577485710908361805113191240226176594402073283482119217894108736227150147965073812011263091688516017642991389756489367300525936297614895961738875801062588961161115224846761950115538295867493637782433345052392818140159123448441766846011074747212989795803847468151259778949416340375889255692518110143163259601190335215412637076520285168395370101589817103369362609001881223986483979773003437061055348865659105966239814924003367362300744084867150609478941748104714869707605958224796315494969772294350681703959187722038935855590912072900986424306436507330036609061066182249422301921683567789911271196376032245334481794317251402589902122462097298936677246238942858033448062548977342904174400752340475358654063869622111980190830670870189515357928414708849281426767227228443423947335056662728366785190504997732907617547784413261203103264201780182526728200761638602894287040631459365508099857064516762644164274939591288814425371753704443099121555262133094560183776840338878075021963651573208399868263682855012385772285654827191511468384202288859673242489014116234417811464367859367225546898497442737238427008018018360634000780631965582583479492403340850737921680169382371774758928222398818351183293575369485505600872636641058662760134627144666797645069076322020779423680619373907173941318535940215788672901661026203530088193169331149692007952740729523364068244007950842224650312783125842986045468836916209870371849905983518513082224146542829652370050687891311400205460647712694790147468760910053403240002503714526181853008239684304107757744511104728153357488917612452768257900505127461679863955460086860493595415136701542555052215311224741007861444489779050354728337276728253611823758601238514188407479193245404119773500069000095702118999501557654754166943310420926892332149157333375887904314547899171433647075049468544940849088039971340435874943101957066926731371146669152763262810771285755238425523680016165156649109367750957678440086913403221941549113169212206086724705121452098900008172607018153468707007662984710777486827850591422198119016198858907144064567702531180540429293113223826763177581713098144482996621417302655408157582706325075448520754894113337944208910835626980260152683405576757681895846506641507403743210528769942928232266625353553936418735043260397181275434153606137608417531356068890388370894306839678659565072877052074931460321443417898375927024010674055964207901756450677844255740654209760887042110737739670203929149428569664110020206425158693295713119574896034633994029995887981065601188646067706182122188094402421707636064381129805459439344861931839819032689954865796640066819294170830734126927944915935134518624446318439231956974203636354641052873715796378503982728773457220829681479262131965559678025799227992705988129076185009053543754944792782892024041614422923001624736493267677853797905832067091207988756570008706683677532308910101929135800604559382227936334635279566891185049701768824120331120032450292018330972038376066749539977656667204518698072731368276658557466094057145138269212281736482521435334655523338541549647031786290465906505937958173197531267705297835815268361718675409475425907144802045213691353063633704447278563820207441836517433081720288570533499135494631271686987894990089556606072615254147711466029182020360599348378369258807374263833519622042796286822658044170520003413026207748129811266149673826631765283328434344926836606703105766002127685071675717606587510910012862448379558823572712410843127439425947702270567034881032336835372001569517618036155873619158446404346412700396432201655907387813272877716942579686006943812235391935827754213500541488402771451466153397580304730309091355077046082815652821368662305614440997880656999887769109442272641119300796401793505085069467991028774993280998067715714419842452403662835068244871142287829482338923301076444107387957076536822806664043484829965687472003524729320853545509053585477545892079152237727444519283738447453354814162083682673986549154766903173643445163596352568122937420665542022199672273936236788313796625258367956722633796624994853043292593246012265644241140464877423742629163335909641270333235457772597836981771088829293887639090577611582705484262392706957386449858217200832885958392327600395599922113508337067839591655199001832849827494896896549003413384284059349024514683054115514330344996099969834280495360652417554330505397703087063771768424504139768213778769208054587484788905822460799553998188968914469847249466602907273357127307639980545976823244309621726787058106193118872920890428011272230822410703175271208102272638901802153575117319496831837793157440370632762521109098029543847773302679595175970821348158986783010856191633993857438320094190230810447163354850331060149697795274250166708877349240884217730482814626014787748480785805548743608337466764383778970819891957699411647376709079375591464478387862059743124329419531803490785791367166217318752197864862110099933052035312744301550838410314617918111497790568926217083254031739380578045996303505833333287008616783723563931923787229944004446151901029132002178783676172908993578127959779893354912803628713249123045761994692173551041917084033813527897093347727420056432530883054951258126755993082078644757751876713214562498769190510835396342372573971827997813872588118188966866786616973505499528412770814789679270022503135669238947510235106317397512869806754398885883483532092451941648285691480318519358961371176777106868538148784427623098833970565456518904463495093231337557744956921414367020900980559065762267510282538648905049390807488696632683979469130055164963803492041810394824964832307245352143528951693773913305017501900163818474286621523468118497934932764209534591368940845937693215528720270611470639959125277340986518040695337083534222629882724738750943777830083179054887788141563316775946829865126109072703914810805552518726155938321005806399701083323206754930667007649504836056564853723597363177020633681381872174433409178457864674914084881396245731808772605678468113235256792035311410467318892297487085556106896521824013898667909378296860040180085937197898669608783574105039335469327637539959287441399779522031048465813721353187670818216520258044033970819528061983331136679156753453791848473291562909985525584765998829565624336898436773421889297333701945301050463257932483640919706854171589023465627056425117684066869741108621251569372314900298462953374594967563421557946498125825041668099810227381423676248703088145335802955778474856867074406197616319009532336401865272069224997532705727970056594579809066838396263774788495379464460726055034046802576348769974847900720239508540144040075977286843158907275794095845368868364496943119764282777375273428479234491599282949111736423402826943931803350081699407277426759068790290405061219168925591714480243621160603390194400101045701356873623588910261801388784978628326784909912648125004692975818796576605049922759280558458458119617902135012282071853459438433241793476772799825296025600134266739731032982946774838660588275645428965311607133776966438608387447130815927473059214797558818537323983581130094659365805676921273285642153815672367389554322690979687760121737308489049840599974425106760598984853752507931804284211264579266948768796352868404594829908449271074851344181482378382558160577902310928942475738003745319146599655713036779981017612054155806059094893725854909549172155326732517558325815396740356051381520111696284755306914172717348014006980352866300654708211630933748634652394830569445082616725117884265602148084445883589397235212701954959485603497477693159812910523429905851341140935339913589749579658453411421471988659568218156050297901606397116429168308163528723612703257697591610300634054133744233459348260479991491726855238223176703675372780751654855504197686449638539391928524338683856093987792273211241261006801890240095326640724660003315646121155884442290914733584208607358380988805599510302452703101442293933438949092956916939886066923083826760533573379591712609575483921954197113570891724325438964468565851906901662640898888465197978636760211463725637550152739102953730962223460334284423402116859610945624043698434394399922389685486665515378556939975244011022918300603295405495881375843116253315434817349979373624655264036666131464532822709805740529135100371670492855001469629625687987879703079092986738568868362080186765920453210220660605787742132185659022820486959090439035659169995287386387998607975946346785550322913172968998345655322915581779535060326759446143675134968988023057527255891844747907573419038845604778398377395906760824431116337554466600573745157420399816156172126667370766086398041513771736191361349331417437712332554724890079538427645580978931320485942397750170063571957128225727789386702963247937902220342919199359989649284611726852191576226832071460387923638149513801503483898779786733734591050442448488394203705344312973245164636709987519286066902865049142019929774336408182770610921945660350923285991672026171994254976530720907847171352621615316734185411030467975038593412270296769228063554994620912736531020424690003877250136511349815562803297390812808137506212163953053895508678995921278197906626376611711310014209589179586729904228371825048297441074349743498051983317650731800773431277927863988855329940786079364964254569764959228318626635650797740901465680697312357367998326824202773893905555912841053704964445550051743033260014289446506063551478558470216134118192559009055256587618243605483923183793864193299742741028717665789513570527461649140675951750133524555443210469203336949607866318414819065643837704313790920828204480340753174470900795113232982600476629367576034882713199257284127636914820737531366009647384421080498538040139710717827891145623486820415579196692432504312271001184447700774136440515675118802004164472527748899163603965768702041398562676264728421194748857152743298971043031827781147504391869675434612048097123758629708734645901959273762439563722125859333131608573189987017799565110340328404370659006879155291875584235420339525749187105435243203267530070965208204383204560901317471781303490518306645086652325085150210120333492281683627556134811885366459157210509185014608866823246572314059278707093738582874987116184288188432591252914204630110519557642741706815074495831527215821139884256957496568533723248208402910870374714119176777029119562148539405134033057030960038031620352115230431209425085404953869445144768993582904200757001429688761578665733800167258397427787383039625628261212410724545869391311017243874728329631514498042049337155132697458640028496585078116805384820731861488970806731897030440368215779594200435328390780006080765987683948004592387331706102621201241379700116214944371298243317946601760559381774339775857516693115207060549459946116147841504854042284632748716915806025397007383855313233940498723937545168721231591633538410408163193493572109087566598345862077220252019259096572198704734606317024140660372807835942712263364901357759305771573929456553251720359686376082211006241279297387078740862259824483627007377893724500175960826901733809889886411015107874262027085632924366001765848950798638563293713673165215345245804341386710005172778382008991838757519676281763515595371094215494342345302487115193061667100105133257834483385375801970190530163654535778559505463483232945185138144014066755049017392905592007880173890822128751011553923749636682433966491943576709447406218720528292480961628346424431949165207319110158815535887525678549247925958315193840157390899403782509869410836557473587586473870568123444495431512755095160472989472488038436494947331224029092898166021662697888077282895000645027614075906970857742225873508215503674694235410902908774753210766927034491600451407001340602828079787500878356060594732797758902592652905911683122717019231012677036805399024734765200748724832316307414719086886212841627494521374847200397806361101389047448196400407530266970251389080289744356388551722967246362091034467969876856049525552288575236699228959515272335349403731398554075022621889379928603544465481289487361131573793545915595356047988311228642180712308461562997874128775575229792400574999512811979600372208423913276277976202451615320795216357699462375241293912823341766376894525375659386042082581343995921243024283985702675346794814531638974867493620012559182823334060673339396717285281086042120164126412225982753135204826119226458628658185936195567432848429444942309195151616358986600712298513028257035601137861106736455041780711502087719323684191358902026658580431260248742309357742545363084062859349867248529486676213252535294080828211922200379503211922486633271496199620115568999381363526645171141503177316127919790373581562702023308657593593504461702058674269807769622130036646077914099816334962369622085806947769646261212279122247650312486964528704910916754510945008662145065899891225817375311152934124158531385971451736264524132138644445830184519591635851962433508552469714281899614732973241015328555146548881973728588570045033482749372034294058846699106635769962964866707888603964048921471337192098796921635562507635719019807541485593640654889208114198735742006073557740223327759884455427033254599275485901773956052263972186849118255016803786034076594216567410093867057958196624613813650347003975802900581634828809519180472463019658743399711287332058745218953923735773493501701880261180154660808264857506014707411440760850942924300225743313836040546665214700636350348595426609486491371073129148461108278086993272978055744751912806168304042817631846483985503882103111758579338148224876292073740879228499167300580049919554401812751291652110807323337837241614305856029866697583815179593056960581720598692248713426516093519093873172765662474975641822706781948311563271453108506680120767014133970898679502642723635354446384502510946076541783817043962831480740298898903475850451498231429970641942048865138261420983714123697051926544552429496021046662393621307691066442271656583395312356791761009444134454812382150124681367086925462588419336141271778986096564492311399899077654735992726590193867180209012432903087105087416871508396573013012856262272642506021860090493837582538966776479695342337869904845646508243522477023578347072369753731258650710978937004528369532525222260136011202162423010951143852473404178143419714574681953185474668999400583872774277342491446349344713258222666761733776496398459954651867948954925131179412697467429231157056679150996016480209124750315554336756350333993661328767498938240704184518739786341096807568444783864605191489943754964109629687403056224588348573251176658773982272502519859171736884617117430756439711601122319777878472861797770110450277625910868062491939936193023115801156841206656467926096663478555595402244971816409277266883701028237885407669333862895976274834372597825169567945055367883393416727557957078454143805744814669948110085390822327512960006746203661681441432703146914791605746687299498645085649858810398166961691334292534678430247654459310766906494380584211124676647470470102173579947295133026683634246181614633584260766194724634618529679632305491000624923387865423990119726770525979795910717180852805559013763355039423338240716724700924278583051435463201020433928562598141097295899884255593141166663580813240415922327900880339984502922534563540295167360833697340229017725357119134253565834334058541520569177327955054361885612962134264895741928634114015046780293105088080066214428754334892641203128641967384425512965147083111138232315245024158307213233143796680334913909435261171210334133285937844053707818262411066547845170915653363504216000341663087366398200266672289740556001355226475151293878633950673957400051953661795685266716091063242190919381967726601104349076366408537834779302566723352494520112935984072375841552148917688172043018767966576319505997857525183742874499767805788347879405170535165249766324608165820297861368696767701020052804202810627764045177735645228762123072054049726685679937092150748103956093951551648481937805009000674673852331009629113101954421925277127697469870110142891594755474830324120886524844088302841558436401993639119406530976667683081183012879536060944621061770467419718162204157445419761352518063459026692131600423806608190086719781877208330417697452248877107380028794747084754286718908697784372251722888671378038302596308187158018455747077567793812798034192809509726249671813373571270845290728948565531971313178712987692264735893385234333240624376729766031433961827291859125237672260325902684169726963659806992837453279048651624303263652379935463246613404328234800939848479828042649537208516522255313473870649096987849058779490094308330966185819496999035886051457746438439352557969716167278504238715152037631785617191675662012004726277395249237602631935546812291838183750487389602831201337148957125287155131400059986922289393568841656222214883622500285018781708462519238862479351651242650438443481088611726312981610406437564173822155940285026252070409249115653341904052291557298480418095692761111709650591983540319350231615379042716736268886857376870336824638058916376126737539510306351217418989329007990917561042088573425061751507749617303695920535364219199748191370522330006672394967346333345206787004849428962508631697148910058662062934541173243153007804557054781275904942667326464732970599138880956504023362968286699619069697699175314718296297696550712491132594594742565133997807760972198388738398822215206310751223943650298157270156101470481858021979348195338656547984805777430394888279081815368536233905329625085388829814599815155798319963266314236509083033346922699923633292698394292589012018308156026773719417352032782463815187545731286502757481936094076314674393526719866455158133364103575266923945777726634416307349717863653596659105538529801968115973128300741697844954015329527415204147105309294119582356407170728019433056203267356294380322296476160923567825977013892186008043599084919239122639195106112387109775400673601025761994032115878654709611376421408375618798443425938250842871661236261586682594717363252466130708203615609567419482178778010662277612227970943359788807716503460706246753591335849103091601045034183292733728597131061566729960527362197529887041154897648154204391178543405654760324425816175943813764898780790008726385296342101062811500394668879874641998356198891573532281421679659125293148801525272298481450522136723742009974337084116299203115889856750710816114904501916824389658539069860252291827339726226877847092720181762392683089009508196832157154904085104488374497453954649330559494042763691560544548756110573589149765171806397769941017875688617398853453584171353037788132902619362473395675000564399995284439046542370111557934838697755840196909147056381152208320588908259556599685948220986826631770116811068521333903922528558590195895339848668659992529346978313721744803386635125865043909922427453500090853170056691885036893017075316772054138923829233779358521696151669973125821741670987623065089849295019259530602929901217746427513226303297159988816994379221424945847237463429138745958322761010531813803918222886288613159311181303185658423962169804358967426542565607223850606577400080156480177380802517435737292798240456531762779231163689040178659134071007416995613826370210868929692878633030304367991968671942559677970815581950175847081388664889250903533499381986078484110233052526872418027964300653229668733677820774864017646150746639036897103066203901263883151370674229982584280530853905238913604932487145859388068601686549763302978225824114741896431071728842062482465289216135368986736099487862228790083978908392567978030152718190325650612790639384834749435323266648679105888132019315981755754122683561805690087127610544526281594568243221114243593899585102545024342555755936647826988351718485536342518212445004109152619840834936079478584980056817144775951270510350350215834567757728345077766231577071857863579524169903871540755165545435553607387142245687392644444802126800720595182179506838092936112370839449859372597704593207117144187464198840244944151337195048615931323754445536118237053238711704458352079778334283894198612316585201770744798553628799172273901612742955046551296299867618840087005908163770250537080083985137780724218708677341391922729638125520609963098642990995657776448294365893159971087409895614150885114826552544035878856693820786907829854480617806550975134400416414636148399600699226486858656642885277159483378194392897627326844848624416986439354064798529106541013321880821448941573848922130451951106885087227182354791084172541753473439744089017600298598206997458028331729261478032298038030510750995249076450558573769667821966790158139090183037620865771148006698754939901766647459191456521408681505277238203999083605197247128816641623772311699817232689121148879722888482931366318478700358958178368625855271069238190252484090275237410333093853049482069210213377050784206487021308974891020623775535097976861034518699472781530783226527603523935006247166224286858691178006439240162364792167206573975248317772295532075291432191949724068006576047253758726996747312455381331165817709547524711588764748340030389873294913401608737287658880612685498564086321579285454561462170505981643373365935748500777086306262805503397937333980828778221185333157722842138773981382988180944845982243192799124207852086977321538192044741012732512915216764327280178591494027222380563282110807282972676207744787510928206139721319243189235640296873822247877243908691573613896955027326159782973624051917422083436092226758050080147406612240141089940373340958701111059747146311348322284327222627005246839897567592611513060196864929522135762420881780029768038935013791264802076549100887658227037440649186300267004919928639647113597417807653945215803663125059860037237332268016143396018256081623373363033302446452987122834515135618617092729232235144393679269343029675040735566030170949258048030671580027405150482778922092221344615395421168724125465334829604476696415554883177521363204555197274832850246586557590534500162887863805733848439476407031481931780273076150326213219547600023354437274137829973537740762165006154612376729362996315121158728348338299494547417411247831458594689295343535979761257669927444734544212395093033906207908499659822016199450694613879574454225855140021449233073468869165221280782105156925962826683551365629836380576942709879580344179675481911263783117835749802483975865751029911561880363545502050425100104956220399657989901836523553637893523557124948564922468142851861002173500535132240055599169889681266741293379342179900489564454886257762327473524358510968740823451464087658874614435828196288089286635329850629301137767946344386913030702963868197678365002178473780999601179673746719896036309127238075898755299862199947556502731342668135790254226489063132739674578446575826332735506851745546160438183449978429457072627366603384661679646409858135497778522102537170427488225057588543581947945523645553632098587139233518232060025735104837904271838846760774110303370169316115803098458089038062399431260368686920506925746804074940935943657067810867027655404343703975081942334906379649365486104150653200122913350393878474201192923959932775603540534780275371162558561723918686417996797107928416396087382785459874959335867255083428805230722286805209190436724727665270472787629114029650998992993099379224526568181339085812884381062608872304392378701914148375671417886189446844833282934083073946857319544606382264004753721399114482985122711907017750241411573221601853707558602036444181727472699093333604801835835844314578009601586766453596423955967962459283044215638150025235378310319537289962093257153128122333054424150297008164843953082226181751064903457691273280115047170200141395045068115602998193342974647436953986853529468412849468205043600848605787280730550885090136485162078141575837709198528237719742063236570914481709027023256755141571972978157664678487326516583595853018881624695744510366582063112870324789038207152397824764512590365394481526460381508663805406913618580126130629027646996927931342526823167727031394155521435407714355178022544281167005639492734623655970449110385320379191932111033425198486807697642609215699077234731732881409308682738241258044927066401963314955384543770756457717826410154966141897652686368552566250953165188887059986479978084597877558195424446547343342301572856357743252351852866703625959339182793716973923767564179392139417720210657382058431389707144678828103213599485430473876522906769993541352355897332139991970069891212379291894880556260919948828459555208824162730999691377278112996731115076814282066011084135704165598875507972340565552880718872806977697147305739764374536080152960747481606444707253863430651617355311638161859533426313428447027602674335314441443789273216227321471822569842698724898086769132719185426778459837654536247127833865405835822514607991221280744621431434220012079640667477731885850222096158047134943469410406546915636750743877813654242715755907811969040450279691298742513627020021064935525461069695964578030039025365069584389474602688853637823366847564361826411554922974584895375902841125115211958005489140178181187948946885822988118730717746729975436784366455175296739337202431437717229829803596133827137129844457341988924553661737976558520276826025634429249442148733373142409563953254740866321622746392269218840408926238653206101916661183244007780360863025582561084970309059194742429048444343632950755464227679221251644834970660006421067197147971625571723928209209395684582074094026603971366479096272946732563527402591323114710126639627460759538122914792560731657311758414307050996259570627667946564289917773665000817883284399905663079674715908470060049565969558694551004128287968800580783336209290398433049946460180342603294001033793341556535180021476580470009641497157814416403736454311697024953352930996234403940161319905055256847914282392211123001307316556636886110505170206297008259860934128798763560180959458611877457262556159470795971500791559997064207491564956384039162399303257549115093215605206953457541328994645272019098180995137548746857351921951006289161726117344928611622099155856577397958684115728136882150567950233136150195923404904266245447396640113176795801688691685570103760765844980036573931127133707342871248218977226016184221611535315729557813279178204306157771345602381238701978956148795572233391124650528593967156547243536024496103133454619574597643167965384077610508973241119622586291371686318484616184401569951557255034735850378718692761115288702034157090160266955861208023635714419430495260358878613640803206086808554403810082278031548651263384309221847178351016532381239811227116393647024989807894697681699728042412362039277670735949015587233206233551506637072174085361107253792723031410288499945863218039804892844534727769730887160233071479797368129447808534475887572606390553843183423077446167229615281580389258329291941942780524278358814164704509709919251325626022626233847099162950733129981122712410311357307760077420319748713368272818879416649584149805519961828678899473976107229227962445996402899975173356636450637313113262307899815215600954220017076877932073010535614477272440846504583868308362057092908143052680806100022296795399310424242995396531727128036136531380901387258311353729217672931620645697772714721123117018173888074716938275417462056465524712365249156625119831147347176711549609687881324516705914354225329161240478587080427309406838135456091595376432624922734713885471972987545482682462024033933806333091570988069507216205986919556476269537707473390214030250635759415566474427423554093444485789589496742873664338714222262815796759480752410605291517169013650108955189848377173374251103094975108000463962550982899284423460384693987236584675126911716069883340310738107341244879993615334859962871798268562266295352246239430642911800353792598721968112692316607456950554111041311233992593139761449198991707100061347020103685914529149306379838277723065968001061149139239838262877659507221139778543614918438696324130304987744922622427607661077903475983126371513829479282296625149554291517152664067219711760032161502928163014618304787757006563454319443025093944717831693386970672331498897065294543801130856113198855795653157821892845341017078345110791744483350135606712678047191334889732007034589925686133214178082344008097513332387143849248107361733050141397752320350193115560950923009664491151940256002796099759490412010478105220864007819844796751330974191453088811629856008429091358707116061330532078728280328954439389258746782407285184950635258729242739983433881626747172621025203771272838211783343232395873520975864631084552132083943867936302138367087253423186387975742760403791201546267893376339863284246287279914972776670633458995032886271694933452435961571812999304830463763125976697583754735152171019538252759857948103939439351291349888251316149750993375139164853188470281307555645184413983570754293431242740888431658719134779910468283854275370423085925858326405678889311871636135933105293224200940193048265239423788850598220365897518922301182265745917946227210495926177506236185275683389336346160538807285279067177982657093892567425328990824228887502270937699356798542994307999134418836042219915324513967641013760518695603235811372952437378938430314466514375794001098486555049964332606831315680420099719726550252136917911834415991394804069799699412900478053240998012863764515388239238330128080266980364613110818896359333639021237636601814547617982215461215848346421295274926348119331174749723709522917453125979393327995730159833408929507508671803564151263056372828977535174304093280127123699689585214133159420826014615230377762947153919123053944988992780357243286787482510351383995200579771636374165325210005030415651196208407289420398063933330548493942669545843525420488735088065598654205211414511328876798400130707318392727166590130522024794774798506019547040475047468384227335009003760229358460912067635760910179221857633847764504892750155777077083494679129541252653313402611516484726089427323994034809484022750151891345158155317293917556680529404683402615076869053414721376899447819990818665118184914466138333634635965487896167937302358385687330788965020849439526488412790553914404203956312513023627837452647260343973490242113635971784040330753822700618135771203844713287771329427948220867359349891707597181202368662706607279824697005243804697557749294243689508050966757413402113006038100602827693287763152577410515921425572184508843808656082106612265237927785840083702849564893636754451849041527034924636108997246844139537022023412126313548489167409659755879652708010249739928381059393890913085728374819325405628467166051697474999840943252718389293966670179523070130299412055488616280986829168643977551419426446651941312694707440735326262305869902562357185507339992603483368964947570882214642629439312387477679188952897162519313484858612633424935950512303968117136140480458702983061809290930312259763122142508762343435242497816462503457263788985643767646726894571240170319598866607489239528266517217847121081724215638092070374663693993077919984656894097266285202981465598739428135258572982973730505136397943228625508130292546152117733569065015071847465410816250515548571500597182098758653962339308096139042694571756080004628697665826779957991600846744952512715214006908518105315411265055023477891792909401740705011746215590771245482115167112513166382859872628544023868449022280041994603180794947556213824828236090768667171229743951310851031655385379564999517733877282383880478874050063862841556493021633224341203585509742169922134606545406298959965895426957635950493379393292840429340958328955768988306891534307389010992367336385483605159886212347426781374345664538199110397668096311485144542441614422835803150750528833941175053524184609091565232333178328621839434304403027676317536148722208128594814907292293820743695445154796226773725611687218387430859229022006012312929013683532805116795028559023537662520424675453518973022592395333840517667798059350824147247203771194088879212031842009914047023313983033236086745516433170862537090500817577562268239814686268714885842009006892171311007065793992957229957517072409303385735933890082021496015535659376030695594241841235818713469132190631331643705391641619125848253011479817426070392547666030022216581360969471963328014654435557458386098252877747416911355792529430025056497361867418936398667426903095824992627689537840567750303241655643971815389742004921086795739871504676164832276733911652857704977266591749984171632573793714255968238966551072247046166014574848389354523312717250639827347308662663093197749585850484400357918625164596818774344835494928447691387600966601992046089094950295375754821012554157712644340779445144129895390212679250642874905002696456492921947365904986210127437895429692540719488739485913049168924557309028939698845227363935278425434647405654199669448588725027341565099323812428800521981287399416772282481212835150241973411029671828082402587803283434571329957834563649956808374655594165395119695921256231107451797375409241092592032809748517376752547541180407334327220017491865288098778801170287641807105923675685788002271817636223746121322745673403499002882754729300036571917421793334075615608699460033654742302099622796147696001942684797905971479163933824140780778729534952536849845680268214145075919031201630529279554815008305415422796522544922340384487640329545764686435510485918589938237354266404116444880849691364442174816105543772478168156759193976453884283502013285728070473342128724399488762688958580508805090896552275810077110402212049043351423701783122399344609095653547465029836065850586568148445239093800155799027624194219725005768585345371116649047268109806348896834169831590182531595098413057290599046793041415812690258930911814761384761454411183992588809088744120513273455342232750824318432479226212592548933849800763798415006960533482153535611488003772366315537562793810406987403487201204166064346036294009666296183115935868352158522652680600395442992397849518575456280321794403734636709590131461426403630949817326338175023788591286473064701492312165173440550904510921978691079949048018851569239793976919736584721255111443918706032395179175412363334159479978505874382168003175654623358045283551062692643821541947315863122782995964973922428724586173462079485117437562289596198123640554470270976751562002553465102052561767881221497516062379229612750987661307846491989778857625311960399867314376628163663042968726405752152512549558976767423529160576779999595835733336176765830353853276764608919473552638732258932124533170306050199054764408375918930850072581101463542292309399707373793385371249557318204534337236656860112819664818458805485349644827909719596684016224200261701822056334681574782823433928269331378866323365237126853612842889915335951557531065887751753605273818043587634395516274075585660080177948221553214843675805840077992600273146405442630588531784175475268798496098769617077024563780631081376429503483879545396468652724988389570677556933279686923910562315327997032583517567520698658493382893151085455475567729272236118950492660076583406262085353172652786774683426355241439621778613746880309667022158894113439217926906234829363188574909355067323617986142792954204875242616872677221851624960487770781253405943452499862313230192036027106411047379994164764474185211972924950382000410706727233755062991342037603933414582713090923747783568441033717058584834149767786425444178199416545575683181094321030128852523361648172066507896947003076236319120418895019183991411407289455436264037695343836563492021299615472776958579102159937819321288420926878079151683260339830649237519752904243736967975536548506414247477288854081862968398801172332763902771508757121456312004820875167169280904364281274033803842767814581159355022718012126576577626577148928661944971579688826586377357413331704403499372094948930520758187460608351217185623870770777276151529772676272959503232320025590806799546127520131859301528574931827418166406858179364121898085351607234322893903417701723176167506853073353786622734295909789751089709870498091839545755094857878083283347745113986968064976929391861222173104870354955940871364987127988375400226751094613874267422991819949907651024320411745149116736101886483125909744491733889351377723395804552209983508956391929643865415943552735783739125922312090914697036066949173768101625569736797099769081161907934472242629916669455384289807816447763928771476293852862432220050220085722721094370812229112493680636749106565053339547468444692014840405383629912097903408876589088066415150299415210491895349240675274536087485295651760848727554499224510015613643328538312113480822926843027121734313651948220778382364057796355783954765328338911608599187583956434751380337800467089243445990773744222892681512266749844727125560880755103317350128777493312114877429598805635811149344879661060084969666547045064376539977449636721490434764678242954512835302496632356226237473906298016731636249027429110464041912567128393961564798527776871254646860242671180496784569630826784856616265844966661172623543762319437199912815355946883413593531095492531548541063947008213222864714262018007949286357819983788320672957715973099188683375159912699609781675184417629634393191208084046772675206767323196904065258487753751856230459000748494705808919713605529735225083036183520214985781843070004543808892805308246905437825677490548541214131288780242422462557019622799391602520680105708223852241594201212930245461321941450055363411226950446015691792157446368023231916333448742987731784506573806949996897589341045091042622455834897793008376076564115337538663794205218042532716778852175698560026837763828769566085161798903285116075421561390455579226788496137347625217378252473649980304077271031687507483090099995543186630074057861902000437976886621437410285986768645517012761784223089987496888508594324763060896124211968256287897929655264376304166353348068800090809102955216162085098131489744904669479899368189712472934238553638185162744321870851699813916285719824694929807094538021165893942301267176805162891999172724941284888837416197864128742965879337704449741951361537561909416022530650348858496590273962250948331651307636353570843962484932125668788334556725417196137918414942015017826731115993872276551616625850685311973122407227600283512569035240337855729603091532503137204656814801474072368009322932740889193800410368453237453230726672171227761884037331371504210843493521855009373268646497048145646531688072817513903688611032135954671599168563515489620198097030788569776243504347626301186624927933651358876430356266022452730327808094483706361520801531935213224857541579300619969693218751356830850881459903564737068372729430699411046273866828535898080207483441700200272683128495007564648877073138147593780126746136798344856395901861389145315118307520240637507507125620826246822536085841293055076462095222451360775964437774623167785809843815847824445389993659521096913773131470723094613982685198913592893130922137661050906754768059136045818700100877784083667035049886801931512227531508222158796849473427696308842226104903559967247619351428579758395894114337321808179148481465214785987318883581709940288380377098934690764325983145341023727977908016632044130820967611534862932067813325985036007613061352286877090082601350164544911428349437069393342637180649601278639817244752259054006023454094343870407997910919269882896572789040020659037909242522977397160699474976436291080627624287301220051627291533461767513142564654378587345725916328618144249677712061700694755881175182655629388259724269986718409126330703902361444646053583359847605130223189258832854561821417592177770463747700874217361339776453253998113242975834893781285495675628109386378975660520598298105482111940754527395392414910510542596297911271583996158712518307661613996838998516851088961911405440806082340137499467330953083454517704453136396349198671620483674012818145665105379070424538200515524116058361041575583984215843706328695448361923053905313865696512867014113175771846286462336880769368438782626829594754152124467133652402462042314387678877330311358230139199805454866506518858277458869481652100986418626748419190218006192777899199629577212121694083585376495197033758682720702432576837286170277015265293185762177188618763448751073933277815252861411556097732876479975227953720813641223698330514316106409307430317046549518085643059687571603956738305603705034571423338857207292162813322175951202579673031630871944122521557828712981076656868645184188048058665617357879504924396766497906027138932762850810258402971503388045713907183731019428589450381358954025743283311452789627631862562008652132779477891330132455731355852736959532094370572431614825175150065440990943755026960150601846340995644662940047551114898230975310966467848556747186597643170806221522106524846002131752293085152262716887194532973316573359810246511227069980730306588636588440417359058289193784071180003978701429522827090521681943534012067067290262406502365921936377827255777571095543668032751601245170421050992055050515070418540523914778993480209879261052012628427840074246606842280355698579243381653671376871747192216801015151787216425022184455429038458936686443503125064532609473529479048608186429471421537521439599164064832666956918723899718539475597669518666610062264176816210813851322871302942238334782883689953034931932970008244700950681311165600267991748005817052393872659459615230691566710752952662195104271278814642592980016781760828854641975403260438667942415331863307169990800650321184706876267479328348332930297951340274199428394796428732040352962578760857218863207748762002092579106852193853437100194197657910582504408596072257278709844298903307304680514128473913587203425477559262491366122992062197749109080050792139634852404412590560683949885816128036588523121423129249303834709614461557688073084956875316611879634966446259948361687964193870414230191540053918898739377162781249699594237817807825224053409575359948715234779471672041989279629721444392032407358396302390822915468414648343344400579267307597267292372242143889496056962955289740066065742533163567139059316253406209726112500172716168948001218321508145051950565679554818638068692615390917123636165158726911973803593069422789837751460496542472581661476396915724140093076873797207293975732038438464406294686712696846477070568999568113866960296756525420418292591140919068346747911606780990773404392716452783772340109358013432471052923729547333987501808634514940720034204636529578918381719447428904919742169226314841838730520010011584431691922070048093506671516091415181251387795775636249442184839039594555131069850756173461387344189280689833046970378978588902376752195952361581891301647430222727767958941278871788939682781962554425313944556167286385222759436574839960814241597544809472491697438977394377950406911484138048704473282563172406471868325338160672388579650074409207372497502440623948895933636985706387917039413789777202352612041110820402221860214661686974211718561119828293224765904735195924492617073896380382823769152706139574187465013874936932199902292014698786794331449902720358381318518213953251420603236220995939410796873616881037702961607450802041041766933388137470304522648388353050852223081029409371714287741411683897967180437419497608403390390120152183090799456045644943376034564592158754495316868265641617427576782101723192637872319457753909381919162263983199746658279996319083642339119870296854393562901620783641489009445222190687295114518710315200541304288652555945884417800749670821259323599486542122388250358333483944579897033274155246168251674638735896418890543988325645540400764753878864474615008043645546959880266488008769995683611060729912399269240144993925092001367705553759043361254625506588418386765300388291831655528793358651005686356707242950997909209261132617691068652360427582155762861927257089695409989405414576497194141804492536919156877683568699527107795549981134714209034314916084760407322331385429625793292858040128807864258837055633785496159085973301280189362590869504051333097036005836050790117606001706500995672391741462403397095532334182394806842934267358547835252272227412563230127432882761090001159741318658817952981981543793567430931540410206076783964487268458562754125954812628850039906113035796186153949705622639156749071968287546316592293696035043734568042693053652297809630046309638741313894257560478564840475472207222582105689326546020582535503216154748068499891051616080205687010970788676855397518968648563663329101197301851197938980218974845847841211744851707471819866074639144989841400078940680824894298457292336032051537014420751997529669335459802191146044361708458512374991725964128826559465578347998919768348636021809324507791345600534740694790980046391305683453836528697360293517749127724185254172268492981856891807237705012617215949060222750475349502896552527706667492000058727293161065804073559631483607040446194534844738082101159820715203770026338034189817834455581482055467141379247878695029030980080288512856286714533368951648525494146853138476223027899975408933111848328842238049032989705284609722342986733405655589043617118463835161258060431736327024590277889361682936781535823234839628926058847782893674362926967120070168828000319202096941826019818394867661154503562295264772652872239136423684997367021638278465902998782245468510619523725224631912788902080492712991283369241370305937320389712435183570775791479642171834369417140129759375164549264215139592610269702574920443758905824917890470943179108444473701796052606827076245907646292858885504532870042935957718006618395585485667332695423960935114925950414206711267980071058502337609049119377153932450505914178121567274499899913155618516116926148220480425904170074040635413072591670800952423135734637288014262350720787479812169740686901966168080005093853807793352137375455022811548066665827856894009646853308116234245667240118805988623382895982379661377983415334932616267038504112281234631303805382956856791970592686356437701573026656253837043698930456593521335866864928424795788636819424527471719052791128321334016420980367166213103998036935353096933808237658042705404887067548959720788417118960346964263250381066485371619693492909500910108814592696270534488899348527236371875764185045701403330009778758288879366567907620458387347309399339102262386003993494859888816497086078838735284824601062127874678526430657434785096360770343737876645175984866602619129834219002837664620570564743284940396052278623807667670116194830280033710352768328457605613343333380393250804043659582036551711834579106144169108227510135018562614382871016707809368188550835146700380485153594379324931196442723694225125294590013948210935851346909430130924293073449803011179349850352651454434872828625130657001693543736784258008626754026964445857058390602002708088478541912792138570894017099105651123592976864288709326539546334176187220938962054719113913987646738807154256027243057261067729111965773141334233873527430555134340386411316807623893902473084901326773986055985193629786693716482421471939262375931563660668104212843089169432309773176471515414071023991524729849563976201509318971315458826136164009998658477646710631135566356877397082636823254286393970279239731195901581862418070747138348599314306349972451885728282208696501439796882297716653259874218028736120842606861504488535975261675773265140714563275121632317964169229811422170789500647888801624953109978765657683199006669060855132858824380742893402580088078825071006609897232748991292762605477170560063686708130050372454764813567918469187633262573559215454806129292253177568836432345693975721816499485711630033978523130878013808999176163815571275602716220677692046899200893008664297576306526349953442641841908809745426270309118668940086530223823469520292404542967948489774822769833608437988370916058616375886742709230413980836460431071680115010325691660803372943827161406386627761180721527952613808603156853680057201895031892803160926684857945043575773575212036035956683369233535039767124055486130148243519179940950523401511873485168053853834657185242390607697720880855410995174088448673074292631426383228554419585364104862130551115297272221498252110167586117675752108755537274849012849202088800490897042423436244694313099660432286804795410510339739703132304620003855663895006098006808530365155025116668530547062060147044035140255258723163041938367532524851289495890817301380303609041959595823147256126044909940945286713526426335672549757174883260726646848412788294187544634870179202367468718729482704899467620729752073478975295237416158964572893952359241319067649090779278993709932659341953460913069461971587232175148015823268119679746115936046459304696205453630260285844089792350155760256975993925102206400960012931275506160367261639588333293912781815805132201355031275214968075260731398044019414068734068511788888326049393098684680108451757752052897146536570013075455065436001374538144838433063251061999083308232887355645160233494356268415195928793987467687133597399198588674885615022842994945408028892488961111606107529745497986203254439158355673044843816264115340075603466214800220732672470639173511315402393558709754210546198563287506363134648529035245765628957273364196417584778563705555231581226578137677995899730227222127102044703350856549720920367840050737301506005941099095951193163610899597837815662095699834051378758049251899227458468139524928732509620289223322649827996959616604307779949924099974081338007292263022248244650102277578849935112373883127988846117066643625797729277563175713716971027930027175767107365121285263824823246155457412296958083783723249308238959303839940856272230766068552240823039227070146757410824733110427529880329333256618006357064139422524332434441842455181252996138754522965161372705908716672338640747352019045779623767217189859004253830130933546290874184219683985697624473862973628779534931041313753616515475460204471984247041272140706254873327846343509203886318228460470666058124744711656024837734053297277659334572169241553519342723840405900149644211303520005301621742731247756455227108085615608166283899946101100167676941228949013243455700851375768526918331946878731707630651809206036998123072761496741612683928376229072573724257330424679626746379796422952739499401759815810737292644923857885636900373365082912210985206637234675228139430515823328656905573235904986772900610936873796038015114850414414306085479598954621409212043270097187567856726280138011291709183367427224522635133222282097316112708747203912765704014679540575971248905353839545232232344258317940980625230214231719022840938895867398490596654182132764696805418412727352032721881088413850226166114337082800601949014260527395577578137698398733331666759870415466093551333844346906318640831945236193197432432624587908714784839883592056656526237120439720304311003967957630062291578943898329883516532269540365173603992653424893179202171196241169694294468961802705644368218163731756692413024811707234896450252793200984980622334703989293637314868289188901748134584419282745923606269651702441989813417484394872034993794598667762643049868165856985879846749776141696413681871988196538340228748372241122866646728336907623248555233245663845591602756143690715652901619870036912101797667827194850166870035631564287246912317024268184553264515372982440118830083655269838437840570474785270301985358620961420997844946304695434965242410757721303089619607158040788640078471846532283331573335495934302933761893606578481623394519668854609421293325535827878551585669640786968822829357133852947079996295396899794402345089240703457401306771680483499366363946051410105393549838391526761190835077098105553444387035747364545801871232839509843074545837501108046040933862293259110648420035348796162432462119347984522619341766624748797004397080593933298595684949092220715481015172782041213130766198546697295278610266020985323705952689308182821041293725779706383184613066471838514154273647281234189683178560858193740709832519552069556653951677296716568532693182175321382776771294412954046809274034467203773686127079679384221325136545031828096887231977354136980407111845650451978871510796192410866235958912438639387642882796851278312618431057050325444273264374815107534309026774085873625939546688787614511370127710410689041191750237168884241389790210665874258258123889445077444119236723226691545363433300427483856419436592271826894016892997740406057802813018130688556636706079515651604496913402766872733131307164648574123729016523827067611082202509277510331038000497725863380838904918752097086496389996414561577193620420098990333393801289531975966946749355326871480176563175600973736298909782420092142030903781845687597715858806054146648690348167270540381377901392878342587466557255943462241678655719418884554280979676950126510556487305921141286819404729419350234666574567300275215578967012812607103221272968634995310843852813819695828764403252482770397877221095615143626603732407086483983101623829457774173739110765663167262179244669697549249855585576461912868610427597379750151383313510368305975281082275196099687781309806879676836221230590470771132100620973310114522792122277469134368555135464516363671786656609738325293412444090376126260821071379165607139962626748618401145014017350316780249429324137612232453715808464845986474972761918295379387229422755810978995317546992339978710105074838517802057732801208798230522316888926648282024983606556377415380888191921228108959111069737894175647360940217252250326936557076246242926886513071246606033786986770591857321037854279015063145684730217313138317420801057103362558138971598153941213591239387171005371066077296056569718319901346784463913462113783307614684002633859095280859692452512082956887173129439370739954851399152266009599926873331194304651521803400440507773175556174074138111152962171981928260249802305704839393791840333297219730765028383600511918442056883799796826903127551856697511754774475811792942419613616586090906204673106940719660522881709279478463113493967293695662335374727368015213715476476364715962062146768608568624783579920543341722260985004190035965901758669856097931699386088987095696594713872548212214150637824413045088138421819310023087091353023129586172843350895593944255555061838602127070714320133860791032237137779299243366424051336034947697422387290583640788434613791311204373828821991987457137952855527945489433092611805707338512040516689197474903307087325685146098265895155133209539572562320141908690669579902077789972313714191814721189820981951782266771392189916516253807503798150469571310320480580457564726999299310153861643312454246500324844440545020919049211863542409040981549516110652616973153650286653852170810750745925437994743062706072690403650776873601787835324672516203531856854163856092524946170534306962942942753951199215573306219213683774974135453103834840006333561392691142512268196630686606616341248283854980215527460917714057047929796870234563933786839154046394419338294337976207139701772784660986718817967191004406239492817426242093647295985663428028752153331525284765928173917214087079194680131773711395285659521440708927989226298587120231824739661439568111708081203932507999148192215170238017672786691385083549954244504030948812667258726077603604595828375069683083491278787623214752614985229292702582318794719332243430685160077194953907559505519885433177989145694609010652283350162947208462744622439697654766742191193814467138408723018583327850199503049781080982881746299952071144292638667707840897105038360830317087791232433724520257031855345389447739602676720403526926093809730943244137437009528633938062186709816689221919324995283875483272092130590846758530112845498525222746534999005998906780156470490186287152827591316595624934090947696748271327989476369011210500222305439549576378391340443131618356822244433951113514578924199577646643806191015148586301538971836351198177553871948142603012494732585785567283283354709554583673382227661028548789196211728976897351337799404520276376493063325198642733781098840490779049892725184350025115177710129998957871191100414711681091980059611421521914025222933650046012541635375109238208909918368670090119596682949145666874495433531394002553319707855285830263956411306830935534295827465046364005139346216286405161806804792361825220557250645285057849709124790887915988995817972854028380248807011743394101336042620447736661466387766613021896643822689153333620054030272586419025030213933112351386653854749222503300840068529782415921063482584583589343370513184359039822272710191546043886324304728042546708011372560263252963246119161430614060866373410627440838689708397799430071275048658502072688549841513715112214885280003899830161124138247413775020680362787925783387665982176606253421315612183197933849085971918908962236384634473556125198278073266136032770265296835677626542872174515583140706087405722074739982529424772813520929089090495662727980557527684478002008883884332899514584574475764625878639511250069597036529343283937583134126373714153220330259665644430901177130547708957932995874976092105828176800482523578441672712025848264713540910471035084067897138912727604771298868072504468009596621712042793070504379787725334079620964091060075717141276530189426011238453752857848287435825046086893097064588541372236837855574794244934595258710182510329558960544081377882825044869254344255995394494421622018278551702237243686321954385835926597025873488895085096281437251098034879130735151480664981316280865861741522219005661298786967511457654782791395100688555372635262614499615391335093435160608386395199290326642553664937563377096767934023067835126252621045295047916923575299360844913841713846948642111145726284855998540967094054758484342684433919279114503266520074353244932497955520777833943572962727010356255433101141761350530013290177679561006109058034270904458559767750045355056934852200467165469956930412310294822293603734466162763968707986638756763182405561482897043260603445668844788317806474806069756278758393887365846113338323995558274167273102435433949277630664338790620638001504868380694967832067863181342902365967521622175856995589482110400798505746748970364883304559901212462237932406033584473238651647518903802287524116507264314764250619854819390015363938356499966609529015454890773870089505964687249609427952658902772565310552301534151801669980860702361252624681041930817181530912393732145136000732318689254611817761646543894822919343069695544915668658717384044790154873430110336367585921150548475255231143125928838479715986693090433572443500700126420696849354340115838056354809742666786964539451744575726248242239134137376431597300873517719510605039855619158883982958407926736427191657791954092173238511031208247024231026171864965743378619703342827705110135808425168118025875088038780931133756005821760730974974037689416174709123823032518991922554267207220102922787320297139360196953431241036085493224317231296037636283406655742786100612404738316115572335450353285344686277557679130698075340269424105676892551283438438685104123509893604978746894939748837604110666411397775712168587902218228902017216897781459423052921467738992026803538854543098502543413870915959528990705834949289432903138057257705790785515916107242423126563987604073916807575931367091811852320058195333097868591324681742162477804567922260757412127429340030224676357480235569728654550592710850652415638812854837617344807528619949718872017288975799684033923141039434367212327057610622164713398597911451677795974909440700494783990888009754298743012159670473362781929773361894676865970049495180123588752184204318503360504634001544879081400983167247922110033755265158175970978325525231210151043436131112607947636231780491348050311878865992636100028104546640406327401350604651635918754804888422626764243640805043258400517183003068003277564042109798360932618598427614282380300541745339035915751271058518348560139833831762363943028218207596797755112530338735852295306762465435215079869071370196196251145411944727902084837290496639664125488815584472548307207557912310256779140645656555825839857250886816387766324005801271610019773124144061183216285746324322746390661848694120614278513723773360313708111964336312850218472912243228797051632959480045019314182824995449358317042850414728376639630189053138915923771027603227170692796058575378690172245819390483955407053255456031985039645641930425772901895380343262724256339036032445028523352721595358177875911849817441558500114848561648962147806308243231471346511661519594929734324404442040874972351898782718088739413496974455850435488663928789814856129948901696298825466700520494412273487458829874647962237624670687877579491347355293972481547194169965926692573444191538174861137216965597532574451493406250823136217015731475379089110865806289705727826216714544859202053451661904021283397180748099138486730702876229202639826039490743676910824999071669425556035687807801035128971896911909438977301209017726914336126660417636681516828006173952500701880132536420574582229482445839249586408835525916955560473659268143742775183895151614520020590025786439312159170291835445010475979336877268447810747742520252494007267210613382399880230856434478370110890251230871991381686003317190398502686731477382013415741887505277687558438669597226734005630070775756902078629508963533445284038838338485849039390102723783922030633151256427672048636460739662569840004178865764333713166508100783294785235573939508347652602164877687263664976023318215459400008915996149061664963461688454561310562358776827895779467143649838514150904157824125759944268555633321699825037927707893319571468331545744321280213630011181093584602205043345104514806613034263483865443522301696801871148410722972506431983625610876452246370823344923916763095527274049117862408445884710393069613994279545831982823569904398383650026879171195603420717082139193242204057933381784610512194302745809555998513489530697589754668338031558026758730023003602359716515812780406179352710506216359681456616560053098309047612925156869574318517579132004224849072764134834162047978757027187677705518784864164648559558430876962911250587726737798545621615991307686903863511928157261978386869666467078223328724714346593602417586645256824255682451091272146452198210860962594405093513490160276100627014592249689785464327644217163570212226792130230299075167548644060549902685659787800928404414026080526508677124029576104876846714370950596440417254650767481996142603315999761251487123714641760237323336327249576741857405760124192861108148663738691636390837779438526502551616022717493521022671342532194524936018884465736526962773316259333058033608128626644230413232681552991273197679011072593989768052045978510272080916132336451228777634038467955439762449647081088661098785761727219776453469908094434251365618140655737272593440014286197393112210675732117400331026496917454781253496284860981045540828470984075279335681097156714390516462677123702170263593593373749764109144743425805484656266546880841671429030180795700828461248834345542334715139741139308322729502418422503703060259290733682318075945684382383001870294838460838213988324749935342270458497158580505502107781391653389684302207790045820338227868615257591829046852131368767284772258618887695363901464029810945679548944624255241080473356391786253532716167167194149921549670950642209194173510241643573257463704041267114995459412025521777356028297613482234330841031179947909823440268285444779371307841679103461089081425411162602520044066597599426883623918789187456151628507238416143839936748627705299980404235632587243666996780927272264623005377821662492358172159745083676403576996545436893876779019154647360828026915105661552946850276400324656828243293984265695242139668001290682182220647814618462742082013418074520964971294821264038070112306348488528998953918923320291142606691018054924724220275900837273901819018087281983290965109783403737103851662849470393850605388655980505096105628636329261204221018287274731872569568955522386822930120748323121048091698372958500009514635985570086690457864413832419630118810862175136545067317962558670633165845125467397855425316982591298176977121448699777314210987948045243650720309101724188739600327979024529247589413969260200547091520171971623261730230827036709057298824878997123106721903696264980664502078582964488880356571861367273243297949558624475382653608975784938626294726364427461397946851234422309431706677667961896908708088413296869044051720161132405191804911058009891096190956319987299305705667142862257107683336896088530386346472720269724849599241992620640847625217298639235792983842823239043941406985417802947168048253010637395825871218718493490094425428569684904331346948933529901923766105991279076866632797366021684933036042445469257753767147791701496324957332982431257549835906487821830508410916140201839007297130094304565282966544792924091527561168666239590414569970023287179198439690850896929733801853706095625739007821116338117301275131687662809966248845779933843645683674393586461977506888270939525943364581356082673239975968237487995595601237650211786250635455695054317685003871078043480545662931804236646425250304656898063036852456414565026060645844444374925130878790908145574919505426913904268589545010821194013402017771516575298175507952348039299860367583333361025580748411873817852962630992684362913445781439459513098797732053146630804019608844120577136864107003243462322474962601732275725840655751053170620888268285864295421961242877709082800987709720529907640501534440924000484497707821077862672165519505184824281173974120560161093039591532821534693877662934723272014106777035734615025446664308453176213708311109444872172143071107051810702611898143421910251161400387047873111759144746949876264415475849042544589737837197462238641587520192180202848878438730901350586229863697311035088805882015071086815994530603228431416997302025969308063629786679934079076000343476170196124826561655283198342970685311238187086585297392719006104024679547534573870587091885489875511452448472297258569789273154593592950526858255533979798673076569607767441372534347052513748849383137679143119154422043205577715407757413874644557276024746263438479327085832900979923772300251141725058195211626626951198436988389221562470777363678163330891652927929987593419666822758081994055806003504638366112118400893517134224383262005039044583832746414910098190005164459791807477759380546819376856302849013760534523288915867377687912674110097393822940646998298692488578313391008822882486637767891534787366886439890998168487953116619391041612005676620580179747703515044507850040485633949377339479679917462389641987582654896301643564484666231377097818629527503992078600182479204990859516841745141184940957855511017712930874921426871037734010334471083109404292560695500052436677861805336383220816898026292258461241830483857781406981409674018520196539994488961702925970093161093853169618428804842408505234608728500100024805102651764351556909216555720981752255341725592746750047584140608324607953494309964749791396847405804775940166221146723639090164846725347219405248615447881642306858039416265830539378372215329786350067608452957268725145472115963079121231468229778548069955954424412872389011686631585102068367037724968284221369351768805323460499874455497642046466535474493847657192042441209856635534217387281001660368899837944682867177625414357313569093607823239545090353656519564388034193794315210171677610461114332701543344824419041768696050382791020796799882745208152073386734025408742440472162236405405625960138449351674636722492370639987120993121120334447906464217771446578850708475458770075380816739121970462358581280207233831372063491057491620178589627594765560280251042390385113355877481795766288848686671192007434949679152690497793948661997819848098150728583059635658297666442695448103605123574088796644478883003313342635948583651829147306806983078543192556958909172449194094976259269071425469333057282654565193827396066364145588166760546295927207680822700877324620476770685795802304586201327152214568805954910456315295489550102417032929130188402088663009780741107805096063139960479178899688918124796667856659099261668609406809454200351672244784039438744897700199780684995275576937125380635407713309315245240225407638060811894434791913684872537497083434224129204109765147175008813346402298580187507019453946598264961088085416819569951131588572755723605975209432053689075219644762643529424157621261765396514695156048975853920577525049569651834053175992823176420428721324185363893494181863573822494741194069607913938457268241122921152222936983372462653252898301632373539359168920220427596559539813351540521306325948856810904657622530503718718793942164913240575727258286766968533752799685317578980091207248416305044976158506733832631031387942260269903667585267862266693971497649354763714525501308310437857986599173865800743753692461102415139699011414756157595092798349060446940442936163058728301670356922526257382274889228660395825715056400662608101864874214747257048697834057125128478739460164647373615372603233342936284324259925122914880749342721960126182830580940141451411520233317161876715051236344941141549949041560743732587475187226366781905286143356362256873166892496309353406055069246162680057730938519307394738869853204251985720186401511782820327749892738655168430436274416286611046728419386963332358679639194116685593923741496253971829538570209240210956571829928667565625561635980461406549166268681317509436888101019187330997783740382720771952563036091542788941908588369900077318258311241496052667698075309385952782842647077118191217448398473834007161323314632928286553180698270582131919896162852833506904059092987739857255528568763919419817037948875005937821757119404155037042854223081804104703518238090253029504462313529953715446082331445589610828187515475107013338203034812155802527992467524437544777279153290658243861340271842503342112397241004466082587101539854150564821302882308268551734243373710206857120833677243523799946536867891302893847099132459023597380138824182865493542968290994558572097585195805657819566263340527416999851802435021097157202639439574272912460544902173551719999335444901703676613246885808402386121511807511085769969860380346651764189910946303775310698484207503837020994397854354879639689853646744911768362755527919734020851967734577431624268370393891096143283719412627832058542912016422800093668731998226634324235834865470611450684200194281731407995922535622481549752589458638747623746948302648962950986187277302224535008407880675807578523986847378798915968283772933835492427326021595053076373702488741106504738673406950591969177234147238397264011277801723401919099553472690682505782004880624188109119213707228912324926923319607304601612231240973082147830428449913476147678433943987867428063775243369961809131511481182221263007685835546724110344418717844005726736169626276726500159612028963262132795410434667720400328780000407174303801007481039659035546750219924852325636189522476696544532244525259037769251855474489192113272148995855493334166833883557163867292495726002506487435978365248673837190835189300693779397661884600591721327741295610704290328877702445885357152174994522092785319614888272925144912424451583010431124332310107049277851960613579323824239062876767185445395282190778739730006276494581601818445214450666980178838789752010161789782945888150997387879706656154835908548313971029214213878086984187131490395916225805209102730886046307019176980966954735466597620601906234980524520156666994643440900046863983101664828442492432970297837395197629904687947213454518291381467958683825265122820591596562634180503774677959716421217451728798757296901284301068052800143587505038492093776527620948305673766243195746611929897009211425368391157773242955007932166923621391275962257232965860977653412227300352844611293479942284754380178068023892860316201408274048547833506447225279155798545349889256707961406015120710836185457513611578565765149073389638738012587823582070146036863149478717366864129906306805663555480996631802892947124552794350608225319467547040998934909600778921893175650412218149509188612097422992636918600408217653337562821740039980960983380853849659213951107824530252513438656574344589911711789687414225374753120319505115235428915626440091848945728720767850414837201955802299623665958758369598788761720220519348485492173669508960966240665628824725668758814955114346032393296249301030914777518778124589427207242441323288795724552465044369135143497226213973774479959179378589875426776374758270418804561309906957988403350600083314478970458447197129806802182099086092278742156533026900874563619817887420032418341645954829841620070908055198042062560470524530661590122591585424070772277260281011406808215834496909025714115276979309058517747434476096278438316605588494671695961909136200334849619039218944142641368846435750754651395258787265710882345721018964133837059641304195375372910845527728613745577485401746605235572917414003860459194541397697975674874035642561480677801173312528667141340454812785519856176926319388812784065897363328802878006060181976814293113242235772689422081782567306568310921822227500902971618063181298620871174658579126568347092297651498921956241982005399799284675443284802162288896932639168339587084273856608889069156852891530608033933098328183446607035267287153801528703289112713840185591974983704761250855901027614730489571369713945480260631248245511951661468554313625012995730075745843849670291948471287447508190253947761921893664794405184893100201399980937822169003493788041698625068482581635677296461784837195298091853112069850652237872433288380498128193478506705673138095890426421430383325791641157200457810551806471395405985918512898668328712754775284686518767168371504910034335509944022305476612294984807344688748823340059562085424695035459935812573981896349461607457549209366292310318091443086150651577947532282837909270421096263891157103096845658047898125809575176190416124379274849959312125719549271304486663492598690889956921330184806799064100783049811042127567877462370107316257622348461432046162802052369739985628768596901283926057622659589785092388384848901527128618350561386176080645814163495731815195533134934239185060419390529434997786992641685934869915155160709848476635577323844442372319180872153742713185941492339335797810588433254717225513015872989728065063349672957440860532565287140190673857733118861801789225983360375126670642763655889560583541741618152221829022671283761576234632875535848585968830687419942433302997328305206010409799875155622273601774652063293996858363336234583441219051355340233940073487367296197127861282733195334743871715729960225148101183776086673065684408642368483923447798451699452593863893559836246520604612017008438898075779023601491254703744406479722609307703811668077536576412653583651213123068413173531854040046726228727533302027389678768933186479945888758071085255246502871327543590128094947383588063312620669166956037470014385102634275377726921344279810174675481237909046366897403019392243367139232006089239861859564901657287169333533024880983634678759974365983622665641926526781871703017842986137967028464956011294353477138011750364990581567414049312149539998514524784157444126527563243772456991988895554951621771748232977981926773483181442348103751230043960682686184330812439304125645216878236797002391566122077494866177864217579216378226038581091797204620336213583761177322391400545111101881146579056350795634126696349242817145443297842655801250920539513795320888741169039531241010620960055981942695366637865016489336997262056382939664354229020920284651593468505174170984882518466069074257571850436452410915401113615853523505434900894259857135054323091438827596332183391207749025385631537211355336048246169154056885169198136496938308359022605013514887842076647631775001401907122612636822253753288220298860805874943167702640098069143454014098899000574779339972866970385045829381228108832354674476253228977451231105767541054398129128132293073437037315446239395117010661094052605637169215602637267755831720483020025441705825023859059536095444587319902106806996659618181607315477251041147287293075305910437856325356391031412367510763478950618687705571845229539654326716534626356642331391548931519539567560352279131811509498650728661934149058436229036614320221730015758748911304391332026098063565451355390450298971977566339824272599058939573795515107420691256795269640333237424138593306631154279994197403864997749456838190352456298419243543692286759526490851634063500896363041506172871699115820688211327343415775875649338405729382739498666528707214048526411273387027259549872159655379159057177543458756956731758252651422893497664146181064739431776259782573253677798381484781415399240670659843537653970624603916889749331534937185869897327309339741309670647614866500351354744308967012514635985967001230491809182300368429198915487776374862152743596197141719148191712481220212672783340182589586019875918820731152122743016274369699990456264544333407306005662087293711234184513998546048227862104424022912358800936834614190370893181552025469438817047292139981994657571944082516479958461719695873896929712688721792172281329847023493468901828246454666928823008331648760636984229327508487883688686696417313317046753872946038157959383565957189637396947837019063727563722796424446319364261505214865283145155352658085134260884458096520673220581976752309368837034727784583848153548502125226958544493548831127777055486342885740923845539177452388235350761261232986791099991802989221865894160779016235945002166385442604159226705127213973563012517803603403975671708819823932598347333817336831461807027408838950748050300931397326920630206702414058974127520748541999632129808057180979215329167318321851715412231408752308793584810812982818328418406734004037025487366323557257877600254563242016405860524140487123775803723539248028742034203187930597481847844673789002838854683104723305990183248782913926325055373363808164149428050844585674330170589374653310056744614960457596477863809817573594400412351907967866700550897219814181324733288134504517377962266717125888289650030825517343284518496213274143904313154709843521597266736071065877462640959355432314561211794535655996682873544139702180524020152973912676480363870692521421410262399456484948908060307798822974841085230909232839166072858022092187301178418774803335545099888572812644115884591722077608036106033602586184364465563370675323652209194646763203165650643915371341399703205620132479722440358391493026475034212367225141380026670326299006961015006097696330549103014384911936865554140342912751280882072852362711274442444754664488446338262128615798430720334808925816022675425259872322832899900112191356913228586470771572731055640144846957527678495872400212333752799162059746969640673947577949020509510238096980073354240522881209439087398596873587916868368243321196159513989701994168063323271879944982003301546549461758305882407461625748546504893928235564196604314234612936052554376284182329662395668260296389502282391112184437441421787608644830334296037889187466638367186494007073545927702483051737565364343743646787842559634053601640238008605797444657430743799770995376224151930606024745977979300792774069030458553881920220504247517267168127488368072442911576380313938198007674466343430889480664375129065752519240443677721111615342775267730666433410314159862539361961713615706960349449520365523637251124854265325106108071077474755511040794865187744504495997238588273860260811109891067959069828421127636069188205074244933332554047922153262586639932055277123081554431473005746741955168939642141797055510186426259849223121005074096582257277346984888018879536468536427807544799396237903679414704158019236908000966964119320496704833280787774068693576244903290595218370165803237095618558432899414929093794146802676945725474913495260361792176096354794497949667209200758711881337239857593558020334810840361032953562729716193373845951630543745184787963356444574141870068665633746796219966852501915612668923960815477574998623573878111380792092173545276830789095315038838956175298035034762451044647770027654903865961462349374300610689924979510582352968271357128912981998148132688534625376082627481196747531609102301179350444470967294828142436199388429187767617079918337073968723972975217967462158718232302094855020739079175749699699686003316892840899173591572602630105940286859169444613846139125873303342028511881543861843150272043339631774145884210488167939293067599186718324220208502395446919106406828871574306675707244564583671807633331937047806228260381412169778156265617024503930898488774743837762986649486238317559901389917029451732520470567761476056300835311595493214208860465689713616428050053650354708678058943313017251607942370673585203726035497264092733668296862723674179693573253176573187062344828624171824884510828848416364884894273825776701399278748246070165431810148697347646704675953226695823053998614733972492934315090966179442235916757811081810810103438713617613536589020426085144396774354901696170513528355659685587897683794910267372267745904989586741462017367013893917128609158354740461332899737780303424412250780258770405780535839383904558379868499951372771724877087805416330461982042212995477428711597195656901445656787251842317997162424561605477267053046331891596643105298186432392255149044083577747742096951214653098934320480882192747839508347960928536058376155235102590543180422068509921402807777155561119998092367633222207647287862933564725518373916766932495439750407117803189656056402451267623231457713039780021525486338401812901131103169848558838614512562949223556020464372723484307608639885435938153413569345747686804195325378420506894840007915722733502050041854197897173893922543445873834325901701316185854262881272636154165969043931985070103920605196979046567319654919247575471032069905351973785879430651284080672833348854292776089446829467966494516083418385856128392338850670319701336754888529679696108486940280466607982410254281252093144388264483123811190042898970464450713078887472733056594685559113613001500821633502005261826312329961229909649893617262197770016989793328381784859417622650646675464504990524265345726003351282333934589393965043391472065204671467633351070130522827265069495559566440089224382222240469564216176209519909832844807604868061680563780112973509727948378583709926648014496117611406866497190043499751106695665948079968089807641762881741082498454662873899411421394668282928583534682304686550663426795450306338214568629358614719445015557864956690442989747718683324161838087494805563588595299816867892550383472819175094498478433175999129355456985206986492125662671901292353118951942556041079254115933194282603813341468383186082130707641745766988424138723893836007261014502608086235430252919325524427345726188300446086660796579451817163682747465186967052027369950424779761561928106691307503484700997071170967028249621407508945824827985113502697075941105888737694427663007398598609541108050901880174956719009821892675173016140951518294564862822562559410585410098135880066442517607454797095445391671511922862786535987471083725401677653766712250185849021983706447377956866254131381198797025474161825483500094689115010581830284616269527330118693983634680469197594330547251051214395019228132330721287811143686037713606847482557415900466804798779730530074296586632295542474599717662928936286599327838858987924291884292124601947717566995025434078394744888828635501727148449004313939559031217231352276307150699330847553592852266559273071785017671765357732653918832226264038909847193842872575865700448910091865487398890444307306890204775007131533802048761170146729266368044860157378011908076849876961691901668700463100911109937326393712110033101923306562279260455640432858239846222695489759660161297484169740698256769888853317283542936626805441619983980442702534821257573087797790067770372526382439276989793727199218692443091030823691037298286892053691756377460686786416500816031716403311520339489557649645162309683302074630117761300396024314043232641532971622949520576378648042540194859890131614700517405531481113890717300392866991322188126189834709253632053881571398104461330889295075338333999120028689191892270650988432315801321209147537586548042212411711762095283923475027615530935323043177576154447509485257434170473296784675692003313368359329294564703374901253916566224437479595146949458329671231320800395210417927948435247153561793575014906635860746507339910203368382664921509265490592229965163823524146372878541997769339447984394944924291730167740992337143107576492123252085310588902438365571208652108691453635245035170247117658114935066471910910002828414666191707517755943897541464030272958879355999613411560159153164900215697553952914895270001686854507349412340016600513238211123030111472139343626307815695320893529906289478038110572943004154169084908629355531247283343232385820531805353310031708206019795957613349130840623436522492067092499223470173261881565518474378333750512379479898284781410100844504882317005852592107859188159019536172471413671205311521297534572681402986909553057003099104674961996617976838711572681718338615651030322132891159078613704265641558247146354896467670233252567634331373009937357038943034131661978978975464119655561908598905212137908528742584462949596300841810762838591448739414739770995532894182118947531146232338866885865005773667655475217491092394973830884978837991251630278227208272798192312589807111729645195937170665156898666488003337426210049666016486747361689108541513868750938746810006140234285690047439666023811427117656928442162107954239858997806412879343077007540337031111982652087218616907589983460777116243544469812003112253744065550625515425837352423492512597001274537896392375572668269664334711242074817392866660362845609216406572842529818898336813675068866673219477262214518905849258668396429359789615037417276938261460797843732385447639383186515859070152718407406722021677879168378668112335365310068457918467633879064018001092124076911402538736370469690305632100020605187261686535062962645858896766078819926718911975393479622842364397933562035587094089539568655370326904733775844606516179303600300053537217606748577301566114110757493506905128007144862969171082657295041873760071719911357584628430363287415266890526939314283519208849965122890079881330168542775253356159907541232248744532773894979755065924978857137572104559009666101549064657399765993873009938096249374438143267212666995995989501248876660897609148468939851530150769936528698541479027904072855472216334999605949279175699163144814126162800172154859189757629845011537804499039499983452362588566822251925602984421241018572408375598550403855694596519332250338204086640475669100566875422700641089321741417019307051554970504025193156964400532093255503623004452567885502924796832012993701643224393597926780978289408769704352731471044891382993704796289956390025566466388776966494511812791085102931641409874115363582029399578856484395715241759621288055094990965461697787877837591533794748417356738481349642404030291921553387730746899299286918455368266706411628835670822307332286111193356513236570091116747975923930582880732293800549198663305156668709369860351393981711695817316342289881236616987222724807414401013291145320802092774571496808711291603783251063376453088193530937109556569418041642593064258701452414184743160344356475137988618002156800548824571822357158157900749023804945883571770464534283633769491307590618086709139889910109728204510804312980147921073041028236397489255072184843686158883086579933423262813624906732447024165747223991925502506110750308082436805776189926918361405773263897013913473145994102983904200922884074721654898956344315431201071165255430360526957969223888914426105466347972714930479906162127252502423190347137789634771442976483089571603022393080793393942179472474573310222582120055365051741639801333580770008254000799765910264170968747053880226137419116050689254730318230881114996627497920620792079377493008883815820818112557066614720442386321443293986806918676634840766330519108711458214566521643338883983090906045846213279668680752368639811446368240197824766004196551321904560915630046037506673975996112862877653576324062094189800037442882458780423103483604298377730928448973465073228203073007731986022258796882949804304469673343378124330750256028370106837199476775935498959253329289969448054107400164159036549102223767840593056710234481017488610135841166612205832787562599960906026409391680153135761794696248850910974840558635008761660779768001114642221985248874026856527827283653712210013833320200574307032914809270135067898619501895097675727907477021417403513427143960271361142103739675554305094380547403399822607020377557835837978840551987327403021767033172973642417822150109593640431440144752634620933734312090751556505208198511099666816858932805118262992976018673434271269923308578149256084754118430536008066191236438461712133772111974329930074649363489902440851551201346746542205633756804091256481022488582040610549005658029303643407958060209434170126573549246989042170821208991003210596472770310394603242811369617201867391248095312003228107787745425031426084807818528450471739767987739282352412067276234005918372522887561920058800742424296744940668961729553368902414430161159265816704562008147976572950617861367483976483490155175244567554897659107263146519348826007269511428410069142488295208142248727656239341289270088125209821319530828175026526802311715525734024041871482898919922029131246837956301310938490264951140425526290577689581957400429081651922344417815958743681974137036765757414828923259671068774298468516395399371143971829423301820943632369382222612126012880753800785130420404565691886907531297479879362479049055590959540751844982006114133911041809832392704876323155442187879931346088558145055929917927058589489595722171167962309404675016420551623307450316440907763200370889860855538764913592976064776516827218000489551679172455416212311490323053764487540644192773336322735243883024797421843214962008167703410643449097104168478307398364524846082773135663206515288656087110969035000420336681889781294920057216054275975953460685823764058754784656261539317845819554178392766034137435841173616372120354120434415725788662869723931057700466902168890492138685042062401242731592019787974360207744108755170830567333253158654507435528044636677662818646632833983218481898500146451655924201315546526039496872670791466831636214925986644798751083855664306463973015248478412271866502720206723078931732700492948635043056550008474000225429411711364227219602049729099757708262299215554921422450375252036982581578484807091586977602616613036486925397724166361077942694031025877846485281842111836532837495151816657271272323768276918841118134533701915982080230630122977622413271913053282000671303000920099951054852824449287081578094632313274402425275755230850406082017709945662550217210602912801123559360282097051567909175211397241390210311222571950066175400701393043984117967489050489533362080910441690816998223670604360591469669339235776243045712010249550566133629332926241055268699595036901614204142389269735104664621847287981027624537286791837574267180087742233365903532808587773532526734150122989340445964642312215695267258111221001149679638655374946260812251850135876684976889317376760445749221455660262160699686826085751445762480222152700927717285620800701751942204897230350541725953260380643548398909078909982934930975921544784010702028904613208896911069140344690541144470201209281255619048169708846183359049194128096255338665516320892683190646798492300582780285877614050601242586206593186768803874411834635160917696968899307402699171839159219657865846411351099555304203256570696459285168663834014924458745358301821935978837521720385069070464907464869296554172853726224855706213194946089912621678717556357240122619554430816603650371429923110941635055686008881969235874790996274258175019858956317103561811164573733344779751827398306273092461107029195333018387414402407004141117210781487888027849432045943078781688067919395223556854558596978227366855054161460186348327336619085422322177722437752406877030343968268485494893418431688503888808574234326162757730821019527286532963798332498276266586100944374496201726768390620724365552216352118966336982234069696646856522423065976508562135925954363143403727096987378761016057655423110649456410887375262170856423550955406288544174619156967677671704931573453937272258323146422507044418060282601911383033342978082247574804415680751687766152074691347604262705381720312308088933758146057271363291495001906078538447665518739657372941266003641023366211962173896369087081530162613206963012952875050432387354080078766566133234198412966164312725984258972280792346127186908751171167226210985004609532142914868283187588299835386108432514989567007058183372237869078962282407134545562591846762293155283980636967150963845754597393124486356953410349164005949503985923246533070984589920651295008081646966096876010147776209807388156322600910065890881906128606047197053831671633248838537338749533048048402450977285353675113037126418630702607485279170441056664838894120705844061135039619218812192008793564175314991294672006355954069846388407345315939145633137014859592754963364616332104408006959079986927218535541904263764736332707546919073593774566685812798735763721812141316130616590551227455195673475991578123082085033991836581319620056875573638864021940826951378939601703333718252047521677687621735341529391500407827765536510728815342400470118360511260776596010396800407934054754601152398387050445094393353724859648209255027869224424675775814016652526148038400690596110224641205273176878483596776602517147384342239108730272377411766128476597024946387579354718380998328877342299633729606749649383007206606532442729262816298478999022175409734096678779697242618135982576189277338884762348775924869306639093981809943947916663227815962938955263166117157253653796518485906515497902814897309842358735892663910276200712549155951679555011754094130026752959731993332544710964295304313227310259334072784208943689868614774295719517343066690307026969088578468632831107831196595307779428212832262246547643440120970917963745590023622623394343226809556023418244553782342546403828645589040920784421907207872952574103699395488751869527584576013458117687623937066815061445120639345621673194871872302343198637240915804575656402340642911421818267526573056146512505731260991439149872326192952754714780720636129416007553338682543460030874212608022391684566215756113082288795872394891123372574015220941474773840474529777797219858640472781076386234998941607595985798724328853114753305535090543914060507113751928419033138741330494645846959787703739217640394317607328944278543217021944027851132516070979795647516285502760879549176701568872561027760214152470873709381405764745564015334579138629179470280499319925873536300475013874266421777226190987347649553711092106231393409351358112289136764619921704356617962688461457037455289976770979614466334125033787917392262158046192732028111353408444941985518499141072369671349790072019448849032370380846215488663985725329037679003034751538457902552140172468021004905501472492126494466935797651205434788093771295088028665670107609067229398790063107890373316097271401856072752012037066933484279158438185497420702229923212428321191895292540554163532516427885739785175077789740156980529966655066054497157834573720957034901661254769018836257864018397904839298533117709956773380732990447879617147549281027116637311671747313892632294530710787464480036484301676890088073225405161246011521777136483683813718872552720663639196181150414624636890422250248608725307872625935416228312850061080624905709598643654742920245382507716976274535419742392562595103610795553295316924444252686860620018688966630511511103821205185414212755898754750006094270605677862459896013906623856950900490374621390404617957951224251470116365911666052257392501073888208874158874776324480960468364589809427325149090959496753237265116495471224489517590422660951044280074582708664442473196913136520136642896283039086611237148655503491241453164470703415275133516179662896630069816106586714982679490505337592497178513952288174469104803410431909883271029187972229296611560950915760191883077394036821044976927938662220595070029551781013685432748561789619681500537250906941612799604214416471235788005622320863650684407523306216981883243986441630580964264062578902549193222676982686895727682679912489683994614445951834705246773539260562981784011423204328334114431575264749054758913115801555700710647261406849687797866815630617907858996929687909526158798759287351907345331770114907880618769303613333826466660513168195166873933367902048384985196277232866708117562626217686020832327015111991267944498702633028998539728427856928494883500151785344964497423956879005808417208331874400928574130283058475266621307783302909799467080052093193447577379754345580823859128159107543184411169211560141885955925910531311522036747905317253922699665945237283721715867297992144689846258759091694730253357205201356528388642685758194684030197670594295355265743499569339298113251070960108955302624204045475633391854406893751918712843000466353348847160981827376362994729387406353641543231384798031649987967096058882192744528304570651510419095224891104263952032033680609030859360314159259383855663098189524970582639918622177193512450730444732528558775119009828423671015633871909944226972754616207202286460044631583808473370677132057561122764935693582108327231461628283784457175311007655788802500598867231913743523561766748600688208827460353106205552558977763080735236542410213773288561503877987102296035171304119490407960637194174902656446782097061085572949325670994318591282958068707180224363284267688726176138410641108787421260613257287136407690071497796299018867794558672822966050202711278476814640424505957328097006427508767250007848011406042123452887170839984894906224631342041555055544698609575371180460516214498482335060390878232287962197301228821284722872511711212733893552282603466509794405911639153914983556521452176801725283170255097006160979342930964906503716364745158427161241493714924377083679459852370476183041146008800912127163302171316578702731230085460647631297878491335265028707990960059494653721770819560876421485095110375762741442873084377512305611909784722413740810939277146226433310082834649233006631071270362672793092402031234803666305252230480238448502750576702823173670947415430047955464606029369099679245424179509578679369366798422770640829633325101548757528826166199221820466892521870802230783826063204354409168012256862531321997595541422039670158835904045932826372939503689291916257613477780791467644014170688229333113059531683635978247482611259864096128889629715564997562505871116045596840234071658888422560599424673724014985217111552260585566544387324581938483280783811861277343882544408774823813900682002269117075261226417237113612785734086619754395948151631405721234717234850645008907856984675975388548494326028342942016624488147297456960533668779246984829848088000585251177138838483972844268454762071525932992344029814064893427054417515128442487144614203963590087650753955204541428492019312524719185614431221653272499189781778117602691701995311996510481852484650645942111125774431639241492421566207861577697182959272175125973503106253723796650931175479334829754536276727140031271992930223852370371401878028665977909921228206722044660547019947152098703251911466901400649547521553676665697683552594696944393751064970298951515208845327901275664698875564256552261450739935297774385084975418029964530278235951840854417566533134632724332576279719049936678152627229908025588304146132522158216960239798997665226508863752072598688708650477469404244934142751742739092753688882605978841183497595043615088073632245451287196534903416649350406243185344153222640354396590174638016912632234274730790204759865355473798906909949904995718343369818543002030934204493685142520234276526600132862284881753860463930052437652070469843130003617990132125579757397682550629793913175509889724126636866403545622755380449948483850304465683094215365886795339928748450970783185392908744248282552991376323621119467621926245445534701263118645241829455364750381098076597332559741934212610853338248474845245076613176297236455985497377892878663705449606711849377029985986496633046080920615130462869598290484227337353181588838011687773816277357159734949248324400856047897321244604953651590209378197447735587011428398852778128144177873310948093829592610187816318016546463772609983150291910933001268243968789406351725036748266652010387566977484611372661750507958207303921710091265955656991930395352915722357582788190403168365878854533416190570994297254212473152377834623488715631979710549987118860528633998751540711987351506935921255640029980371361469557014923178616295886554464360584090642133225729027837277312761006212174315004202179716356717610780136358991946960356671886275495845762209838340065592433916971506364307517310149375838063752022021740079634117437898016662847113934875208871721681716267372090671811035758621296780765812962108247389373562312849411776301136118485721236806816419106585095504010562942415005267008398650878885509174512472748639461316585989781707037717488723772964683990118988456317235089609915601736039081232294540645967494010608821092959621554488939057082949321155838472169500998713156418758421314560997404331213904172264067211299216800090253328593119527779603712290786699960058748299850943560342791278721795244329819539077003633054466334242218105024805219719687370674081071012174108305259302396215867006640937408399141928028917083457763975134553196410058340708172179915162683345066810480184358822466115357315797838697125961226419172012531775558843703840713529980597542752124385393929162521220883677134938033394721162828827023870637028161807883712636941404023610439857239694044673684208935159273984093267375447032789609565570817130532311987142726645883669067199349755376722015673757303836425644050734369693441603308057107934995716388828877860515555197236018449246500714039241863428146412056275778492471582345596254174553491922694929922245805359026214145043774523231270088323599961688009936120117580510823233600721797937370524622632968842760310800120949444405457957809143120389538730857958078068633789503670945160525116445460090464474965810233289797021962142065827130541925820022169514114362020273324707342731013086889289630025512892112027070268819256604914694864450606801374947224978311153514770407889539845212599965284542803687968704240175870741690075317274517806102650662142124103319175480093704515947856094719416474171858751002793751463330729488651875220295627232222258326275891912578011839892532973808463968250402066207189141510380324699274057883592845795655872767305766121630957317155273834404572528602822057191205879127300946989705376785761486255774343843800089113687390336978920736495468908859480362057690332037825252145025944242867834215649164201964309831820582052285884168495990203264002298897422273141071436216160854213692149428420904617220521938814726988070981358431273976033082650116106758142350569361730348516737402921759301538587493178067360852061972539846617970489862709166983290712715772947083314567733497787972440830856123501862783440067793800625852723775575210457008550157356055836121016829513930488513214315692984530412909852701420211154520108156591146545232273265775248925335713040556503876269569662058984411823583638502071446631313575775750631611743552096934955148692833035542422559995875624337096035751131939543285564411037163544095437514594352688689732988965248787282012963577078131812151984362026476702676611448920509668871277276397551445799889002056387087747286823223244163158480885783429682453059149454259868431634552113301765482897220088929996962335374296869327413519741587527391688572302666269801985955511907465704521088992322309501725364493733779177798604103662749337601323431801807094694689894367725495678790072026209223396970540397526444591690155522865211605228850570271113315883159469962776989560768608419330953249396437561006163681494553392090697493918421732456637035081095227314129444745695877553552131872656608946897668160194243048041273362397217681888768692440801810129628423561976516326885035030579733660053533157606744285206905245951671477585571182882040897540404058169568100253104601107256742333381543179380466836326357734570791986545641767036057971324678622315395439682159614799824688893630826604021713182659141301889037422418416518642872921131628374379864017875066462993830083987472146679302675847393957543323402360881651627980106135275703749357753582670096748226896202931341107448086527962613350567669937441128276240337254337879027353810489897142892434737759449165452708672657268143164300092048886201761079925795342987078293363542742904627950986688814132145574819610367950749689227272251567711939305230660031395231444805614949033032035036433592678160054633007566166000489604618911517766161949825770700391056159502565767915040793961527914010317239319659046266819451061563063872081452250317919785807585571040085511394912745242517553302157164842831060079394562930090306742912173072067918948727000873630473797490748770338081463245494386988011241043853087480438187456236256121530842389195323811367451715536731599176349076633403378075714543292214157248938443906190182070458969327961430935127321938350966127770917204923956802733213938401629534120893731349963473930023716766726114066295084975825562372463140374260503900093968620996747275366276560849105738042831749881754070114148539129764121119323679848104300927379428022580612934352331174610679728986906304701665601772086837837253618719068103386119459886473720910376398274222869325157430295845829001856649638916660221502749204418217270338652311412867078943782789515347407406757168788076232872240845489888341184664463656622035789333944247064434154673979920699615223165856740244011268324395049627410331184623126907752033624495905979513415092527317864186105964778796220784948337111313761410616251387943639855339303849664086537679443334995346219542812089254540526495064750788257901687952943568953482924993554925473705682098142169866783003259181570875976768920004358811463423354025478604616670745375776853114664770308598461578323470394060468614351731821824968287369054749264347747098538046078584946761359757635810414060524053071872826979123733162220401249268984338485954929700888342574778305657345620940754410531798774669932458757961079132414112191718373722514639732913710098268478280734999769550630858492864052288910100286603887649246458216213194892034690626715764984918446749295531919439634378464329371437834119154518848922108189833182462726825024221486737128370240184831908862870179624616794267008196614368858696371145013750471350114906634426661637848597766514500526086488231890192787935580315479546878096327547599829009408954315867099084559920168903300076824549905430207509579723680510630676055070523846513441029134832229019640795512712842982203331853754887398866175110231936731245134543271377739404077830426229764535442781618820106627362942854255746293866125779445177210691341833549492733833475919448935689323027933664574037314802140772823789423899749436935801933343440495147871159681397929759064503921832196047294452410821523172084468753384590053662143633474715499803868331143294158310192656724080595485084417322180734626232520903760634250615490167610574132986232469117834877992088535497410352807590136509943697767051093329315076360571203729510967391622129601236993534667676963539572915579318804409540992699893873057542028478745106448966235637823860114484054886281808084961693086381524976135406530575815510029069163857456560272780068787358092826885060190399488242172873016228254519629011524886732669228387467258136785419462177386386437291237134349516448194680020171241907463249094391845150108817584471009909891109894224785086222889712484196513186809952267588294045408200710713121101908196045848027681951278565330792489051721708451231777102953927880291071524134352783660033449706506217660452016444035102618763188421006788173906164297942951488909056737423748321386307515039559602160765168793266497993739868416735274006654831228180769059102611397980053225892297152389252473401164560483112350105270170217804769505000624450667568039810235826774935884681893131410578789719582598971924436634959659046934836619308245274240931589459708714573963417154769436195005797479557494173937224213931230620389651778534150892048894713379106229048940677004721289247360498594930371249157402524850272840953757902329481039704687105932971699375956797811204158661704223657640635359069607649291097127266605139290996682370659737826132562634944384176557245568270457636366969639206962927049282532555274343779116905259835812138529995554840190226171804411104212303041818760709767859152146320505303734295165298565143539396664482217274620972043781766859077786843851597517870433198538959766368373573478190322480441491839200281670404249906753416730173786189854201519511676976357150719953311685942585195440559924780195754092672020568880326423864129847149826840988718087099133907034616322315115750278803306556838922559673282121023421999568134870794663515101145184684110163646770113208538885285579861553205233349264914667421788299584746394013329030965016260910439244491822085053280754991548064599813295437660255112334859878976890836771092180592900039282578060304838823922113471525835755549068181264966806251521712327892808841005531159159126891833145471675400390179942321079962347515906975690172361581479376482255735518391841842581629364886589800924460912386667473656992816819231049334372581039261357019645312726665719267192304522673669417266294979833170532461993024650277634794193814318667230710834188010977537082357195349067027802448990227027932384812981623272263233455610806492882497656900675658075018750366190798932818566953676411195354997897257504253546011344688498867537925268753193377086120942272201376879701006247539015774230445717062200968905673426065869305837132223198368688013056669531470494936550844703108625105460332666322280371035993424752079707566698612473301813587521386887216035189976570149537425234116760428847154456992616237116323790797110795113793784464972973812748215636793178915159902895503241704158492141850368355135042494409571576155092284565636036888872622623105575177364028153922641193642172498582927055926522318932330610584325173743402272403766926967812253389401813934577410658476232122853560637220207085024549003792443556628995654952266141283048664315102589218338281043193502478897391460412848135638962097524016594281631487439906675539075422133374298539458021294587773679154342791466823838552615887108885140639741542374566379315888925441212369261660392490159584008627266723746274097767758027330976746995174230189778441166033665050862170996400524915264676937964713466815927086228063813335288165899602192958151277608339657861096030978419621296545628260233020741981854931958914332121185276780588009711514508906212992056850396987349708097630377704723982840876835443803805920033807891430995969020722117067125552996415221993935280064236522897121893227046941837106480091369106899102786148032228043467582370248143332635663249171728944404661570810582809756463205887841884372292838384670163698417570168957666525619391015458451912403449276432880292846266226931802051989076069882354930492032688638653502215464478308391365008593806299916802095317130591988428504199343293174760442476243428175630498648640648843205402766983076494747254796178349348441529752451727995960027269389540430556318680454776200391868973737012601633257181847548043455821548878309367890948801101153268930856264944013265683869772336978621836458291877963334150348502255548099167643625688061950144237729653685150768218005276455162494691682459475133685449632544419863858034360573678299301132718321513967438493630196598545538440952412676937059751746961011813443765599193621789283092536107440414089512993601763388079858354139844296133175091451713533415732087918748203003538067611195645263403009320558967120110065710468784789115235541772979982080228829223684211453341269959186202297967062990036594316047167363655145878877296248553069804899258318421642488844661996498070654266475022238590330806556414780986718501537806872538379421284509655320161722272116090346031376958530328676310197185738567702381667871952711744409063407167711278251926913634684281571742327969781449426829194622521247731305400858279877038177036249583159148898157903366844005843266147928808662872069626111491688085662745030568830211678598207614863734419893643005453474922440351901845804313926944848718301432012935952684927762739899652404818113398741631560327799086367685075122796706372052815229672552161031511165251575569917367271247979717437280024130703673305022186832370854815243672205278937757197196264018238791790079478066886003132223715782017643755555984797037371549292245012693183502056910828770198103687151146036459584736265890481634382692223019902572457436381918885465656906155400677017954798444577571735503305175445056038970834785596282703303313810960560833804229380000448601146433170912181378475472240938653333177347511968370977230860090750852694816663472014441890197397986967405095037834777343524738780660010333756523923699978393205396694716711884281447657882777990631452044361889294835055021761823619676009567159578400939268992740769884857145937974290662015177327167271115536142439241868655478499212278711589014514322457904740408479911178250629525701738490462169834410262792775908781855300780172030566058476691782558832097173953129012798370332382171595036072666901806198708542715719449917980803583076196859503897971411350044012425886215010524868038060601490959069938151038949547216425281543508188215903181439575712790057061462268022556981263252636905863107277117170052591981423780035275788922165424515291159164216156306648685424918082569385698390650694611053227993733258733204934480290764773428255552871493403438408674815960600592488815505896977933186789243179368352923770748368360189078053230771499968245468862998537486008703067849438881718582122208031585654612186492593455652671582912427681844227447808803807575252135094113303213482445916578958628634650293540566242982916299038531630185855268307238185106445464595903431121991688577779784415492524074854227276172309406000399065753486342927184009854398216546128988823066998358076065567039259976255450897352686534448081692322295992190139709028621619039226413616346654359941410597874915291389160611445984606642738592943375406659379002316979634593632736705450935527895203102563975912433472052506572573231576591952991625598296374053230146926779182513043822272275206301423795612022428150125052716461249428094620235123556796801522223439425843690466614748167253066729571242070177374289745355754156642965982824912989412331904259335885863971463420832659798629463009540464741646107971805846067456010420373624227203957565438375011310490099385267925540171530735489432891524488571704528453226513088958027348528185063703998450038034678669381103760790545555310543969502858015063417663613744484710869024399633329261536682999817271328242588050443273485846810732451191986044736969619437370185732913798474180631361845759595873187337591176545101911889506964242997381319913828841098319212272385316830156171471161528965026758084929920723810104562904891762238317300040647451935488519952019025466729802365179879064984188886821650374272446331371731578774435250410109319840046081081930785168845768054914861487414256199730752400714307005554608636331218069930196350210397583444493808113076663227529146273613163633706383475648311619388639095633152233469300111324937700433526339087966024012133405222594254423295714101262226459474340968285420502820649466185559408682748521847522439831018518193562483088172061020619450990121465346365442787207609059525655831568016888034525152450014072266739977135978276866240098270977084667964604117599923387547102517638844968458021480455134373079851959168337144322088653494937076268887606577673248050022206250638511583876803313622812119341793036345972853064660171584498698946239129385443229594859195335408176630800700358452389929770546114511560351621132177581771937503599393336014181666344774097716431633302482931457517914681294581590676460437032813824016459886446388418962674145070304448017313235448777595063274310399385973679720608568538539887841336056341500191170390323930823131572480030529530038144943944241202537319698154286507267404715046449116373049883765286064280590887964596215325039053694317872412945607824373807983856045415598954576941737172454325567716050799981843709364573661582666570039094309413150040760521347060552427468990384019392203123325698700581060629365483771489499014719705530881088619164620830573518472643019793463448611485271654670992482444074120781890772036426037614215759681349376510097941152455825446091754739186025679784777714048274891303093397897919784580975598839297483016322695966099768831825461300553942326025777137432997809465345569997028291328864464534462279368722564756459560469291260622174899448109008855313515623213427140782583612042851468428867526276675059796048365468959306739865206089558029959344844566497385752944927523151413156412968209306074413420925368061993436402282302803717981874956676967836052787747037862031216716277097418396559550267240621562799126342729977415974795375914528007872124102670211767011105152369461953477101451574434657694102819364339044475046107018698386711841528610005440733915511189651450941456833246746221076066857651068448297829193147863823386652536451631576716586944547017957783740956940239542623053478455107742177824010936996839045619648843335875488840987060133587468376786982665175388875887228890817930252445561631330321993382049028076867726841761957253606059858833368679526386226517950071202757382269590489292263671360644680706559273340252326223955209367655452049833926023614730564781593352794227331869727843458578006432563902487470594190803332554293938232438861225331004263281499248118410517487684247012925935772030709561187464562069700257078464229260105808042602321409691608717922707391774323635137378769550515287720212470120569932109637253778522352727041698535728192962131283322216263067005341002907302985917683329683334900780933115124958224882333941388404625529910091539346028283542245622200996162652090021500277686691662872157935870603251543937035628021672440069699900147254836701043810224115588232211132173832824414048207123205064552597217900758215768037004306780044393303600168305839713186562158675159992348730252807719413344294648176882759307467398724116041229706087435975100747013503701200295242087340468450152193267936377753110322688167261871451728979134840025102114241902521552895851554526286790071541840616680450345378296362971326561598292361145993272838685700095259852372553063184061350225119645566375809385852354822662166415508054136522391902273589125037352078088040107292097160341335048777122712567736748181845430116671376458098788784116397224264021034317724069600941194707353194807485259266223049057258867678833311263169512292777732050349697696518325106169191285565517337265654853047731138369725031661923277310349884253084861970956797389731800027695930648102625907251150975256666362691267985016630797265283153058274566393142370171666645748655183430877187005230591018565159631521847829584041049926591981263025378064846859634146674846245874622078332857787616920865714931070502139470130620562192601189427478218389077300552944149769206521169094557893107173306767816287100168899856549350952008587626460465913128950097863076541546632771352142387515746488539736977138889357721173086324191927398006200985570066393427517606377114846041754911007912359271697287129431929335606603739775949621497107209881439326313635790462368181361680542181888754579211752542602868389479632773742442942242421286168979457949968302154078214791738412650479154324459682796016062207033584360679228988255906076578392015426080367815102905396054002363605883026524536198895408765469094585231581345883338015060292986794438900931242098666182636615181243007863747154155245813138481820967260264763644504492555182109952012563596496598307553349301799717524779706901587962259080559528016182092623986250122634900509831337792949587908477955969138810618922276020098531705881014540772456526830578684681437093994563692682246265256067310890117647725298274456793759209973420212596273422487702232942354790624342032933966291610844923649801897741663775180612085762861869439494797908336106244837605663960815204898255597479325555905401510021867086467927467243484976999823297068120633229827975216440326306914658789520822377363417565394835994170522970906512461296730852927794515840146752189216458188582565239254192865425224129903514023918230488727210256359904080012050106166202428775995838860509858514748526373304758321059119927682711188081670378732772215366506325985837025827105705880917314099710597919685250818834375411992296984932624929860573746658162279813160959946816308770273291549355166608415814536663913919897398066043281388093947388637401963068717170980500712675114229895507025338727584574215382083033146174480914985039049849617751137136521658795939825547812078430441712865079476337730627450263756255576961490143495058823783777847196944171627279470072224997288178917862179651012842612125400754164648208309323591223103314400112883274024395561587733319104312336661189947778447505882680751495892124420664089686769958853243764362554909487371776142797941137113741547928263610832406874481382109445877137949317915538268036294866187795796925012577886275919428687078481620052313144645799440601500027587234867258678580378557645369597339766223910672655286956677204923554817295505182962792915576885825592593282053595268041804443720533867298047993626904639009967808504328712434826704020319845344045987422367536881906987923340718407466970065164419506840012125819036199235214223689962435245274291857267993570486819523597713280062233912427248776072130679309108514454303192525673576848916975350764766646396013611395787658721770789160440798150901725087744909242173636648187169628739312184976665776231729558279530949708777907203986278088805922844367119091644995319553736249689974167901266323949031483611711487697421287066015316169917625530672708571328593143292831381269816608638102616077171840836268568354653623698680612573847015604238608410636338154214190922507931471353664227604732695704557338816089906682324265398989903101713266204302326338733190088079763298539467171416608873743692267909708464441095222872227302007803819021616378176736390748047160902697266256522038923406579712927120590850471869516297124380973474828722173308059951005096247038071870897087041223905115039375612631418854560088837989463165584539836074070927998240616291680306217409438811462259751978306058268104140375955167004913490018881995147138222125294265067953916734575319287399445650209473636333543073998534062078495134024888175663151586135345660734754244836687415904698219331257886007443200733971739819430959039396637103553934435157196280198908023588264807442086631379305787617601847574822290971085760936214925534341277414664129241798697941669675605414893564106311067494932570903832465859173783405098267554944285994162815886879806598184545318480699787359891993206754461191195926815988013619885101470784965109050359343248395953175156432994821899635741008571916552606385873909128508707313580554417611116458622423995692354007818469334317581602750005837669709721670473196977192027131393209663269622482452262744539084130910940129667925960772270251915826175347977601237169274004244805727038221580834095382880498267677688269656078089541000276217556064282317293748930086907609444958123022710973468352530953393304725376158457284117997540694670647342236867558269315846176674686038527294733217818699519774465374216173900161275746879140960011683876309451608794072941547977278513647232124102473194567336195569430680486304147195264641503537739629648474287391811546716274735010375345516405132947347137617824678553314574237850832903469283920282432721469843756736978223371432099655958816406483629004306709323853058617998754356590809376174717735127932759386414214237283108300818238855865637085444257780878109941189484245097835658280546901096177497689160767893647799606507020458545767976520456025440518106118100357957614378444999485199483523122772311936686352019514158634044051378139805682926272422804450726956516316085733477596608123701995770446340981037345953207803790585939717807632326543716867187222305456360571520387461151299931488326712597378916480475365073824824392156747725639355204942334793474442151102589675034622116589054894689455026882591356401712436124327479903202034777086028138150952365727142418608875532058751252984611341851169860087854997035787815786948048075985433046567619515569489308333643202141997294865659260865320522680798679179365915617070612791077159773416288854620059511076282887704399732540649170571029705426473660255531704961438333996960830228162922561920553240200719820998866850226466202991706737045670325230795109430083880465437600844038150773784203849795944180617090196897072555088943461685942410185680855774288457655636746102463760962716456568011916513321876471385174611727306601903601553359862671346184963579272186495496631446556696335453071199583816544447585954726052085835761332926254729668270804989756924435248053319077646150173178789098585736762985342512476256598272166945133651047255603069501155270757958416961232581224480834279940353731171348918931225624299707504087104135848370654808327109194033157517290169495330274724971077802482767289226326630893959042395917666589293636528892006245428525363221601377808272779355513544068175011673449660615299207584117695273914198279019297899568796426972257941148253681881854794006185847236288043107807439572117765956394249493147334812167085038328464165943606076270421141881151155742673863183898635551795123418071200527675573812677974323519832136391236131213069909370310519498124238645346374821588381291547413137177378046355940938255309691012915134687294080274112885776637280384724343580852860971806978262538719184566417467764853776995969715382798194082552035779068091745463522582288700553942926167967523827942861082728402232353473491955515677262299004278657518028691368543088580750085439619451564776269866326164726070547431294170140936720670531434960022507816629684324351832525751555238180680195120901704909137260981923613620189242389644657305977896520133647562258533092657865571183537990054305317977104429700916389721665643511172740542331705370027605037538194409184675430560965328357624392840442253637624579019643276935762494408930822540662912930515369016560518141806970762820678159450684175159384830015986186977882870887226292921418125993843040100055507512478903372263757481293347931452530969900939188296890285330919726429536258920680493864302762236656545937734575493674253502092728772751335361692161575719748284950434621665939629883626666678199998393879747214347861775181730053293178268425564283035037694753841470908256134774977300636546529420492400161014385882530510170679590567584884545275701924587082181332805789686273480284094724029886924804205479673910743520686930646238955727162137614763686258434743759946570582329169304922741831871416472861402472597190903671526657394730741707719868848249951975569014666064094134876689516756381524597973092913644033302827193079523357352262851444200515203074441096156409113894234228588512544357677693335259957109960218540604195821002308470942843843053152408467928740026774704587784053659152317080902227486138724368727933065984042858587179145042678491841777428171874552756253527602783309343729957873066395120166701015296340609686383332865317318539942723429002579906934228206240814038663996272661697581827766564590516962504521727694700403224683498889303355301663232467896399713617398648607019367672192094178773852275254314137938450703569329231651441319717388474781203761384072970509474575009357032432870025821325743387822205272552057678784421331498194873620494341932238139583769945833878915876809977039136132824620288640723909237477840766747385343753709821388604143993314647341023001960252440534672057737341857039975866075324958694781373712500937032770597704302909473530233089418935094073112005083993586552354045115301169228725287083403173876216428160105548057998485992734334508805308824084015395654710477006187055851154421751045994024541146666954981514367422587111663658794740428008895395371759581912928840748603551126596937436849266731976547648102701207761075232743198910426760688712065160146319844620076581591749441106639908366522733821705900402567805618062390242295387281645759929579877060580987134652178560374035539448937341294813631499366997975368655717962893116457949259595739930230854024475021261908283466495588722593035066795266535181861790655729243426980995471974000464600331320656835767105752515282511565511845698834039687520547865528194002143419509738307696713374141812301069762278722738112533591389730940071256970047792969097063500838753155728951263355827993298029071900555543993632831593336745966924700203032820577017302409470311974782551907824406781526838168820656104356484158715959158475103927259715745870031752913170028584005388894233694464890830461354332140714121276580895945677259697470810238531027016551496638725584016462743849676244044738272860861922984388031597412288711953806473962439025260282125656907250265841287613047714165934363654724836712554112883106834635198230002141538105688073498189156294526319272092773101742835335643168686574485562930512436962183600497024375108229850678539906379797374155644182218003897275475718051248113008244170188950409610747579625261616819746092418131689915313425546430920223112956459349422122288730811405618557785706311178335656801631934371098899337843412930227506487003590745231551495168400831693838969589342001476777434222566723430510625404576824515253984913055117970267037822424684724997026327247701749796724830030272515177759876306524707600585789153065120381900922216205807047565751542799162161875135601331553222688289513735269649165144532720106556996944840495515603103128697592139292927179741698203674489337724967030479907288139728842085928289814532920867539687899849913618203856641614187265026607713108580404908332514440073726888988797296178200336221831595001026739161752947314197371339671723305143399447093160423089594787446436838776466649228362660841614302294263218137994749441408979366208792240325634466669375650670497493095853343893019958912464867718928312168771207731657597889389381737442884300080241859822603986162164252021152893147281658480521541103129102888645787136589418536528058390476211257331976390506667743363556151854368784803106344761416847202429638810078084601893323052564934070466163349113923086439695662088001859729432765832155572501530785485179129782331135494696159323597999260257567817245685163476371249690628134096672684263862378082448923430570460723081809009929604144017533406350087512146285990244559895233564655386145268439776853254309412580406724449039818409965684550940550678247773869751440001015056513145789672745322306737575826177861982058315042530395811039568561305000403486622665318874862311909645982588363067971531073710880460880761504826826495173873146026161527881863359836555145656991429536788592644022443288376432630325574543969411195246255985864113407102350241250985966906472624767681172077308762516813427532005153213928395917805440319615897178712720446076056280208450886952426535872158015480508555230943910368319883202511721034896359941339122117755824092662073398754083093084949600567766158152998150653013878139041070342713103671931656454027547663922930875876511132117416870225496868693400570155386958182140618552779855273844860124271978692757682026622051456504446453841869894849521682563178516741039155564147294904144260403291385623692519441363079584583197019262850280861130427134935585791871899569730854564396914854857154471058649484695949072357782414617859688001397804661610892940687382981462540340451031850543814716905842661338346312722356295979649811903788719499185412022167813161354521870692791732891863183621850843089856148340529127032222172301754671548107859485429378818883382616161805640261465665851318852661661291642890403717131467496247087836290595357341646937476196912092870514488085800058462506581957607056265956785436434732300454772612302794148928691452012005144599167443707125690195166774065417393831492293447302395869268158558103760434987338503851438666268152003562560968300043010219790771523476694691720414943564589443985645687049726088167017663128533921633428673751149825735287807465217416384780263833936982575338807175226723261629361078705325865563131247841046504191952055996116215248350417253997338531490545103190183353042399410639986810520768034039319909445987594559682466943619961383763196360793800136010689725631971631123067595545440601273139542974024943143440482574013625856885844215638168482364569559203398338022158941879617583892271990722413604229868834519095852946978284757666612454647792976422996662094981200580361762932759128549349248823056798845319388147056401619066678647809102283282344982870157163240165964396257195745090600844965706625679332255876204210107396293699543433340211606134832692472912150600064383424202683677180687929931838631243349543544561536167456164539275500564683831730915169861430705849444314391449031329770042434196431868431213640546145522629904995971746082928495548612735687713892648650428208960767240692946362650553693176085335610379135957554583073539497874870445023534687844185838362254301786725427210031659496489803334185355519905890900099357254589125979457406408109068389156852739570101489594801047701584553294787516268858355992115913988263103349591732822015600400863455670035904153674198921886966489224338784219613351067613859077043449836657473339954311880523465878296790140922109034279844043336081555800650385134315821160558039959567398907492282344511760534920776239978717003497278467523846259905457301253641801110450744932671255441727973335235507694893178386867708797765753764823232269208565228666896418366706988007037151229444940213780950138067050447339229243616843806478718518587912318347590214626878899974872730100722640215014437796761351087669363094948715090127274421604707336608981140682924439293601167806221865156898432549270889377966444013057028258858086426650203006959155133373246383262474373923074195681009986623410355546603333828900252317663358368679776438299235959877923429625496697333015941026527688916460876357579215581416612025493581689719170649440624133190376565513276640191236467640025225564170621786717201992972853703290123627570596730533509128415584741689885483146083357472811097807148955735561897162761550266187536221946593855616633338727256595279655483134353682973272570479545713711858020693313510652828826209577462535494949276168710495458014938096953513131287042841664354810001875768100417028497218623576881546085326248856669040526902032559601475336439442932369231825580872925380620029398439959743522783929438320634367950188772300348285075220956024502851829466218320009079470437215494470243243884540720197073299429034410875487992473725532089458909244114635619459183297666215827017800056059233388945575030548528598141305330637750160499567625030043343911838481163916445983689478761533017606507763664821615823113940256280112731168200368225842075942637395394358958845931075255805150963687219189989314579730518933971104070410469730147980035705233295433355073336269228034739959577079456609621547587440370393887146476612417650624737056113248510109837702483264517178175803563726505929728160675179082063925014446287637135794663280670956382343111679817131618163149369773431382491735763490131888745329555398078266025952015989235497042631608608330493332542435411769570346858376224501412817516127746301584116059416253024056344602248074959129487373035452907676868446862181882015247670481049198354660436622682795562912110649763496542596086463731693629131413966986391666153761759303742757418774316528225834972233533894257230121907002716778614977168121401508913090896746177774964414015378872598446132583490478903718514652057371023508834698104150266066524406733906596011976373341950252668306374001423270976489754976344879536118523283313391827743721669926039117534568578749669939171321570568730297387118108761109201824367163200182526817508969432331302884260954178770218270317212143013573112156973771347613480440403613248435225599865623856427859910473988242751577223738057032463579960525906416359400032616621645311599831085752030659041878004043568580914523303693779250612424741213871930908890736723508772711322872507919678618082601778209322562810635793428442373986640697464033580987756732350417023632202927620250258878188589271753198101064720186549538831588162076869846791087822026971889121760257880583478092542001979151743471598792990882580010837373187114740939646765640987960371112637756663471355610058120721765580630228298905216023537841604500903996295379029023844382172199556356766183942792658146829871619412968915350181171841749378655507055293854372231771494505945357101772542342979523991851005818918070777476491832085391294105395641154202660016874068006333923458252953063501014866107517332555075509629199967474162639190675487587071205305898036239294700575399749718340024005951641742066333662705399339278654033204785591414055170717254601139391817325008287532158820110008761867134607752414998639139329575662449733418382121759790256428717772288229581632307835819438811126912305054415828596860684947824645225183581879788165677290681068324226511036737396305925225140515932943333120959537296721561671230799130619210465190423176989577039775576273067035888754073703381787600656073424531516947987536012128454450655983915705558860952350758477335900855975738453658070815456660159768808195511610927917117728974538787729916933203438092309421711125148933090049174598172445134130498754812886455472333309831179748038894393635911576415100837792932172640712796452198111650654430994918567599981412985397372319392467606678458945350158049472282338024517470170961149434755727900798318874035320632802536731532920203364612501740716401299887127683274516068965155147586858720261489323697406089670518630619844350906544513133830445347979141778325228973080343797020484491208136771278840456064296169565284949787863919499310521216113686650155998685898074153275630424474159814644934148031216600644956565615415289454670392713567070542856672593839228534044939960209028975830378994588223050466678074062151304509879730155872739882760818589948801763891614130371209387822735790235129901777755950547984486935102935482841516862478010746858820597522411095846335402487361446064614178637921662422763940267881393256718415868511389979620461606927717650317192306319474302569414528214697864031921686065255287451301775992263578858288129236034131477748550474095191452445488875626555863427822452407765500232990060693248319282279797070758612845292402135905492524412189769828183798021915443451049264707090313300437054842310825824717497147971677226277188804578736958123981880872903669198305591347259356787790903870975641938486570302300978995831085571914097814956028221731704321855043654717305186391962944070484959156831425946684617522836882563607756699023490878136406566514765382443073673009017516636055888444631398880215466582384988161749859577452808336649328595570745364369454025392593667591673673381602447479466978353235417631110141349047826840227264031520757494554974255766107999437079702917244946332583753765983685333323052735068322060367710061604064113338421287283391489688282915311426423353770938413048218477276553654139641695279337302717905148005007804647560248889977501821274673161446143028830599721904269210269524852165111753444894816033002499724246929822766386457677615912790521285338546480390493974828473870032985733041215685735428794710805336640632004174866877178258203721243280940430251836331856549813151498010401019226811668030220869153833225495232958620997111193493066749533000308952775562615193076045343794357533616588396483053290290529662597271740266652323516710135489638268042990318118893480446514959372188751360623747468903829762418181021705286355799242954506925777584549303825833099395785075885848794690478199025080221430703702752687999550015649159500314824158039667385204467535144563525072731339082952446328821465696195382506409997946754693125718861783933282441006065316800144909301319309248961305398065658211619155180279470267179570605877940708004075918855790292297601841230011787058798867839870324967931145000152599812849429335155671270815600649974649509927041373459550953439491096132445633293945248415676312151706965331216811805095786045048447724166099571216724726517381841516502068396267864693931039353124443272022243754799169565835878468550721873851108309601519780204792491571835022227519457452265827024374072097255700320892645266304565308719501645977366332882552217533088926819501418165820943118002595181484057003648434551086062758547090113642519508056741879204078894588095647280115121632980475235932792293096436745010449737538106637380041240798625002479200680259719622303562472576607193552281715970587183926875082365378227993399508940156510623369341633993171320082808948566829495447419779034513015765597472515636835527353957757683475689975664098203568537848364876801982721547747662394147514763206574662735014465853252439957305126736664281783732861430079473383415684762181657971791609976952269940672362557654925059186208261743531068566480888543956569370863803936796426026147711210251977994320003967167949904029236805889700772176362188592211919782606059694792702952243509105053583415506355792476340872587667222350833160297507291704967274130607819914623310038080838164017293247594587573538833349468332635534274675113467986099571826268538357638224150585207729380085925771574030981344054615696766722306021037382149624198280274005593162350430164131609874947011405103740745215063262451054690826952902006120263607195636339286561212271933673381303507416050681670954219591271257908488359944435019829006115343131834554823813605443796689407625804153027332408427464578492622408725672073286156539172914254410546057247292801944621084223810312426921146601613243505312732597288486256479976402634424989775860646307412430359500429383558202333735402710621153489667662922697723586212165768882435120629992087241030713187878997911062136027278949174907817787794592285741378463983114589324059215899497879050771528364422865136823844550976706363364110820501035652643280144269568342847350019939593348548035071353393185872640308555762694395045441647911084906492393867820120636136727193704987140820681841257104573791557687071479778312403627727081155646099201411430947010643581603250578586937047235643274059049759152564698142875490421704346438382081041913558095917210314453561424485448639151381017331794693494229219840094203552786031176626921078639805098838455620748795566938119641597347190179616627756685781554772254399935148631895583398486374315784081813883659463696543718498755342500603581006704466697055973317857177140807916100030537974325858442615278967640454634560295994147908874600567184426137108186808266978114049204100154031015570128713161358098026936551297592259291457154511229424767954612998574069661023744993256766059285361354320705885669925419712224318942201611524788591412825818223953951434118103637574622911857002380322631135307628061856783600612526493221592962253440779414583318285719839520037856804079937577047844724398656001899948721647295075807316027722727401241589192781156086957403877937213212912228654326810939958212015406949556888185657121764830294161454335011157296893876713773059759848011635759297481333307103273429289195552540053238222822039845253545306003830525181837206939238149794760979557758135476343418525974628250102069302078925488962867351111947570833006761323740906349527438479123235374144098509993969243191459786110495555331099438293841870427481173201505407228286496027086290112226526340259945965740960459218350751386804823998938851747330929773658529278479388711888388184065603946475481913675675304095758970101041876751455368558465097448420451663588980472375945478514299874877878455048386031137800327699751256706273037359091911759778375986253627440441595649856772122627916521942913900304900713581858798405427235959178578307899357201183103052802986579750244265006405168821577390273169377031322408079433774079883035058345678195938839054689282462529465373683577802232711497378577460589635682348157742921261139203544513272788272589212548021574799695088310178969841148271239585265164122932160387487370968095463707708890559186582070561696730837559430222635839493925074207409990513782043175725225398801280238867190337953944191117265320183209597766039664924436474739000555733141574444444807502876358614965379590205101222349308211021744596844893571893340516355687382998462450945827481578314135376102942615311662138609110993233530327582822035675564786130867321227005523184240797387170986066831706611444152852771294441857860271125388858541279606011480263739971259626754759453786560734648048182710773707343476015670362402102894822109522952529739013433508033710004040365009458812596249480197118456307869613436507771815185724422175347969676874421570083263984184391044315826635872969629439082518605440536638609997069192627202307634272434388483808645151419055604678029617576149327697186980039047127038205438894241233363753907358773506965060686348002738123494341338810249563476367358442721680201050743496364992778671149134145258831582984635125649264940611822612137383573687549007406053840739399252173861481835418316813831746584032645331778902531855119928345132256768505295383554014266814801355255373613606014684614676920602924680905093215488635679431728010123396276116662484472578106815526503451773455955207235744232021899439102631925548768209011819047277041843364552091359111875852577249516944050343152539811126101614294565505956159256725691854867870294043275854964768383592570573145317147959253527446372763229926123834964083736282857644053148359216010897045646263349006432845396593768579860511568435628160808403837053736002702057420504500155405895693117121046593495945410719352049157075233736104454362837142612864670791723755095000981192764554256914122735396728285671653416055574166797667506844824047344120067862772529918537706332953734409362022862033915730732490163222739990284554008197716390543135551098871661656795496709686321254905848336503280270948865908163355926012387444661326318311759331705236699577501885664804661612281496892370588264629446969475917009179461586616047153447162366843856715770270745657168902105296271309813267613296989395533020013311021397362206475391567778295881525236531032842193061245884219357280457864597004123765483177345421983207729006804543694888606295958942525785929844210082699779565730854845231910879879062125600438852477479463511016816256727485325733185523079981192635424422421195356384356685322899996410496301545443806973141951283230928502726435461594564319975047087775680406867090767653545032617735695411932977686089000626723548605948495109003060474381145876903692733716852239842851302712278736252030080631410582497896032604569724990742535620865261435113388250506320232781718036206535725304987120309282473030916691005672100088992089677755356378459117641344067835673097934076223724225158095743693410425104378167228904755670691144656117488778802329985781947982491141294020242344213911995068297218479082396751736692917295160215873061260102924244299753055518536105807224351199708243626922598005697223931931609770553775360796976275000080724363868344139081875098292484639554048877019376655225763682057497819049013699951313821234940238068356479355151494620596911781464465301017746541577800551046455324104739588481512222520105817599477007900616835305121108969262931852807752169075626570137895390860906229225507781939206723330421559397599396554730478699893384054068273020723844200953599907960209722880755018493039126637323356733257289575139391504755823845883285375709839490823448278139137068257950385276270789108985157831343009055620473532096423703015148836901195830847481382824425628078782006282117348903921710071546662237478809392999232207780894434285120701727685801264197251947119820117376191708487419985919689525365204024615885533244236398320130087883104755202629786386471085164907269462907937715361426725512376486198322627450254281133991436319314880966899043476307042087383457055881123550850447142379881366422409583188524212271681902608084839266463629980311691249077467370272862046717663131055183560898674789164126194410098303847307741370836101898776006836030931012293878443346697493360215085274623002153120697624231326985049747442199948413609586772947230768417413086866249692998659148352159105884320093381148318958922093074372930312597948845828314953854233926738872729923115242898088980015496827218121683733752593487842967657440351987965438131000764453267259767774289120543933558855479925191054995567016073336618378098770698935856316784641285278778129439396622378958273670583497995710361432594457341953682038985294338805017268215512999025352290493135643713746897476867485054161617225857749305805918299754667806743464548818536221506872903256814494483827383212880483237883568875973483466171505602782772646240421476361123864402611822727739623632734206438133211569710529990116860380661727695874189818608563612251458081369929716305388458947760596364623347756021519250475683339050617079435329217358031927375758506212512811950760256289736662456168369991195638941059567106539903717576660902440899340764956573776638016519509951948096880082083485084480163134357639725025989995891706021336030349289130044713094551686743863831169134630982785459175033023194673529819521680087614424302358764491294337253222052252243491613419640003287603730175072799365068398053322897265884667612951314384507068483556810152898943712906998761631942270460584939615540942966081405976586316116916640083652607829519267483570560743378013071961571891492964077159534085177922206398005985484640925309655775547286617569691327991756096208605121479293109449665213266610404962893807418173883133908165398132916737738722885401703990929839356956622761522218300057052083612861725041941855210010786474437605244325727268722546019472773549273604524422941053038430640425973048277518151688529485952531334982577491962083053925294474188173720234988456292934445616116274269594514855827245965785737683953728315042585636102439558499570749014132617840008434418961457675637661583432806333537970871587361773077423234598917114923811297087458518421931011081366016325134233783281024483189818378786022126464549026319075582213005536351913844283940843411746462773436620734810472715823005644592393734312052855373227312758040450038229914329985719360934108092583205059824582244189916746725670016766965775242493954646858022174327287819044836098216678524339207080785946807379270081854423634012311749131550057426802176496100852804615844382897043304438109664960344576922583504815048062200046386536975494464406536960356722077818389457835753251309171135273750188311910176742516558606935495343207672559319638969311079095918182636290609257881971677063612155522366606306468589204068403371201065934309604426253163891885358141310103934361665707183078306466847874852362566464322576546383337893020120756766328515064519398319497538828877208002407502130898475257059597222988955317962037312824324030011567143796534539912956617894958859300491547665968769853114274356395187554675276136216972243766516773857416009487871870299623712789517772558889351871704479943439334452364410306573029613682656935909971999956173731243731859385383571590812291903474895885659225842437393987196747236464682300899166141872358908007277342942460435419821448123666550804720531789689241328547340148750934985199823929898871917102820405983404504604805757747070191773677208023863012408280700982059627090639400750770353077315279338853903551626367082363400783429326406661426626548730339579243071113762176075930721277229147278053469258504322582797887663466921373215766243403971048230092461926021351489111604027623918853312765278952475319655824594964614402860418363298887490455648496279337600565565218216362663666640215237457556681496182904638105359141004837515499324109758232412993721525383550902928747257438858889315831381609990536445609773057887704419492066083085604788672300827053909962064815423837720696442223155735120871624051874775404624694874532506540939408712089407869635628117454024895390153028378107562879388818895010069007970539029140383626255167890877055419467407785578357043125848997824230196863108935015443130059298971776569246375480538023422184490364295642386708299452062926016389585278114545729002577724540278847539548623737424931475076327296291825168701807769589380932354840027844705721088526826663707335068453885611668070220816914716736103576795387031044153311186387545061919832706164834267350710057187009142687902560282798161983948648990602875104105350128438508669607607062618977153290740339055082685895391600307962640011719913643410505566869278835567974130648900510361659346255749626707750769811899566320550679754451407442050772858494654663683688831027546758766406427035090710976115732000300903253957006092682197862314785725661239363272276885750371693288516247978934265839810959930693957737301904197309170018833615441108589819006673809906719348011017988801432802171941596116754518514372289842759708937743839112840581579417112064303409379990943820058917909462723100083363767638036859290476317720645247002182247390499841856436337835180751492865101322244070892433176228478144995818089732039526086150999275954225085355094563029815678164112863439239864242708884653737987087090585613912994693865336708683938340422267397828694151981524547015908105818252012199836827378008699512972876910141362139916933080630565278359269934885767112261717591136245493159702854653460433350216481123387228296839976852754251504364405526464406195475849913744871736881072965470088113376839746268938932065091853050056269305973382113841296594650288823578588124012484040902466831581532034265828776528899042348063968652756474577771214548837618095187790412666998390981786272336028855823318507975762297161762676276728831116233698164152056348161739489440057759179887077366528973759370681651928215140789985772914732989824156726705685998761546366582731710040150432656805875113074163937968686720476465117636120071025377330969076476042736832456476573944131919902324939216798058887779122064527712581108161821472952207265847399984212704268945228335389601762053098698389335149259926581922006688070009625759670098314298788480969554392998522835964571509557250866794553213378670502668483801208547932960411506519462472070013234896088420945751468008560241748138484756585764682439948975931962895235924160663125432200440417965298341964904608019883667260159869150425062274289920874750986723705905319900815041031077576721741189556424012109156444082940358919661206098476264450013888175542344956042699620951271942184255923928278545424634447513705659738560328579508816380340037482447756922379969527428889412583021667407469242591058783755206957635156846644282794462763583006532468578979337494431584913461393113555844466734192568411328838356548815904747424083030255164679280982973634485728903110065461252281070704548451114658717654096674969748952424461475135331268995159451683844357681230904696093758785628835820383700028079506452303029452572463281624865181110142458501439966220384464490431341924938519919016357999793855314813014923099182803858148701343752383005783905274192901545925539702156970093613274146157100217615932355888260998168242328602595538316721994516579000318046274949725820493999517252617599928761443037103518373547356594017318866784332616788070684508301395825132495553631905015645569867292000566285578480796637584686786945699222805899325785083107061011903697233964701981336078124606728989980193750456649758815368747539295314150675989786912355468456054488187590648933648434016651246601084917585562725386325764290457725655967637498430305316262060584311353151712969177753845497092377330825528684784871822019337444588896854210128968992971414940342915816314698211042346431588828543806116757510733700200030100215068387637982306785872565676336418853292335592862627929547880371875846266070342493856131877554502387911402797858507790227848001300500081332871000682405258285900974148583438185963455905451462926967011308653441893816651233735737544443982016382066656461871650861768694311436003623028507644824748833721535497566346713928918755588634566456764101595063084878720350532117823413510733528580675319704740580648540462864598118643942227208443549128368500166437905157336948331211398189091166581554381092589305301133325145076472023221169076692233966594840170465660127711092139109999518390714993112886495200396353773133808794171206317482191988293706061976506539235750562484579001385723226919425591271020219139456461861835143767279952341471033725609565584445082441883615714911440210874383393365132178999232864737550979647352150387964169776405425785408564592864795720276084208693281330121540520857367371486272369467116946779568290319740018273373282368136736022289286531208916009956796450826942461176031779264895288533436938758255703560560352246637100248345339022285771689335824447802422831323370663668540474271167827694548985508544810018249367908462255075860521823402073803400613025103802661197270274800997897375863840929343222538954486738511073055238246459420083474266672176348294115301695209368651738232227664835413239398198883404020656821245945892088267366064806088360817572451694867757376734384472985731853981321672679365873195289907746837075640229953756768916909219022520883475856690369171671363329276746804212586437935961105626762310043643232798302450010555681626324923250013544369874029445608811829316667785191626469581562293041806028656874086362952769070915389659314470141217495314804739180536344606432328445905773619425373367814101131353700894819974451251736563118585912041003093207963630025216303415697586765452488156282312400113721393605206485803888383971449684033860611748018838850932185897411666493224439311426460976257464411427542734366360530470181951295011817624454792125165804661755355975193894349164218394138666953403178154761067031551942074742831767232402841906221013269569296005538088874476590574419155179311238177235221454468238487179096390597016122795992624009842359484269839329999239877791133182087910371284906223027656795691371260753317843251763254728158472009136561769739904283845595308375850723826642215713543064912770733659762162671800637861133940609696564327069667056653315487633560471857567149889372063721918988248522626571755715352381401997491914678739118584976691910139065126281841569370273191612783107904441363180949210384461318011634477785539860108357967321673572255889948619085952412728113286064286139654025996014468239033067520741874887627390855835157544107626324079267935806046776467323502121898426330513635728984262039222137125831276006551910785693422107834799711248669994548093149752992210198365522999621496136069202301667845358851470410257047343839062133062058727154894453271204434282141930956820176072477712177130590910772110518583848892592801357165614579368700952996264278300451873204739072544417038642032303551560955322416076819302274351272541759826335535365290419900573509915895850629598937569660685959154232113827120422418264403136800716910159801446931412703646898961479594597748399952142213607810152655859550688158187906260739090771010276401034397941279959541821996784091685318938427546118557239720533304892179597380079557341146727283277387801665091339728724971482262143861786491026896799004273724928675467475572461810234676789220193376973656285161672541442422406649951079035608829805938282778115039273147234222163148550695946892172454471947377843808253342062233709364607287358359607062159940152927598490906996841365328365768038921787425276936570967707198841182117915425605538945276156576293977744965646791257491209858973360694618215463706707612836723679580613026456134396205035533071944890969890891880348167032745674565160113960483226691693871734882796350806795311006924281824828806230041215041215910579135360949864410775095126281112581702613562308689687135005736039486426662484636646257451166610384817959778192754299323433779422182334143125043433496226304071642924410762459788047285561728691739004267698931339028152283243524182818752882879347713828201372674111345775606444387113257522550718490167821208201408069755325193634773835033220668310503806462980268054039128651627138447930126134022079207845920809959990624288009406965462825908758938779325456273716150805180956390482744224145171594172712900211250657395363342334063847284073576926489255028560252211296689671250705104410144713970592177637323347496676172111049107592556098904926393892333268276650925336786090010513445211855432047904266647315149946570578741919255801927714570023846175856173706557434728133288022032309509812965604256801781975371901273007884433621986227164299533461627965348438264026985879782677461804059309262772612202292346522309008157605653141945806422076155942366070456978070689503668483239063575383484075454265247940631102597634252727136750543218680026838031773953520069841782215468554203083619234212883282031539165726301314820916903322818199741609794131566773987996865948061244497603768929244331679221112129311355265511138540159285396458448638081869241279059928834701042883729611783578695798141600897483496312852312886135409079256752582836975511894295351791597422783688303529077088340614487834292428416509580789353669495960929503689567496223095237453636561118402991563341887335782878714088569131837288278173668914367596818442140079482447881489764045035310273469979344369937303646972956695598108563778313968360739091400119712810485453895783109327726031165515166569086561487533717907132818063992259949029152312121756796972089865022091286624818829047035574826296816650381407327099719501913485894118505140995296662534481371580196257697603022430779376987862417891046150035120041613299582082572992921615560393975900141905327363964079068986862379926000645620045423173942180168161563184156264571461479697843126194364236352627218424758016410656769091125672606366324080901777266730177251937649877752401871407737208795885972543639807667666108166082448742024058670959350346154949361386502764764946371180613607352786480705534704143161556506255451061011024176974897369960065594332137997609521441223643183905362263457446108691986875731233211223457663496973907271969076512626239427086278775199109342936071617857560366540447867037842900451393818155596963249201764717863266720844846921546797369883676000727880862851638202153746195649565120941402148969358349197797191213021623570471173653284943008884909053807298780390765847452144384518812595816502529123453220070976356318339398125082090012424544089349476786469546658481273183051175032213615360803287849344535137765300399185783975593201877562968411752865491333348878468732936593507916684034149891632256156839587502084872510921454215676341336111433030506404833940048178478587879104189866273226668440107050393003096732483134448662923248698409751289408355348126588977319516292090235186651046727734203544875913448545815607006695911571284497744517848105752124796824772637306629609596823045260526247593556584490171892048732772476255309263244748663097179161961160707433418534437329454520461734124689648460972554095178516894332592318977769469812261346785118270238559422403789768756720192168042897232203360929691179230755356129330157949654408802585225397018346353224232428881800248939565049305659696414793252678733084799067330033249163423339845414164079644356466630716190093576663782365043122655106015202840468891129040521603279060715569964181260579254013958585518555242048460700284896483113888187443508203404928809659689554675389992905374985092958977659835207718356531883135876647488848175815618736519817249674453600958336848555830382031254776139213491488239092813583304304861447103029686427475041789812246656997367776050200736884930438784596128880462840749642900551009912804636052031703687979241028917431015994007173540396756369860499591563513540403809066945664775780673240491850568856588017432376393212485263887957133204709203463129165493781007263987101891878253326062992618513379760746999589948798041255871343830020302991611553410095970496207234297891938609090410585642046131469704864113928376738722747302850119313633682698040635253223884211661087500928512768182245863666821821408926391801053725368663292683143361262506174461424918162148899129154871610520540035745934848549908232057330538661241850206854199403155262832073112248859312382976335747030472530128792144067289042164913708584399025374497888446143800301836927825393487228137162823441916281482498516835609208019528221075506559718763736825117663678360543223351944848645442671332266356029669215145254696148004116766597050085454221096215227100804502377848506382247027592586709759567576376158409527200613440893427032791753338244106737091441455226200411828162849601769811139372262841894045098721582451130235902347300559655105818750887371918092940289637793665452678721907794066252801827514244451236527300673704685538396798336199913907994105083339657076309842069335209104297440268800607811494100827104116285369562647672329392528510020735896423949963177877126272445971368198375022795471562741901158644235883916763379707576014255323702968788955140448233944928656273951555475011343430337889020166150382374013654533477079003361112462944456696620870879692198210127203970920110963207603101904407842060263932628702624606379472068690244180020812188584651695842413547047254099464305057179617422458782848269788694920706324992409864426445894088630347652310210102270709615798732058681204434979584589690013649067566058790484661433703695249228959285627733791238132051911009434457836078611059079195561955216312315709875896426261756827084598140968170147581887928089341147382771585963486769934344768429711879659742934419851345757627027402429186622771926255003978204000932731915447064648576611658519594509854117652556045303764599365059171664095404944600251349222626421669548246391982760181498687527082459494223960116959959995783854592459490966073724929152505775140540467968873789390397690815885251023679422625119272775788071177864994648320568702867169403794815617452643389584996419735144516680428461617752200992910909131832435841590616545778065301042043803260891421900406260157037831796729976840682323697834701683188335376374469401018159218551907382266393849870129754400763019726092241309148710303414418664272404327916751662136453649618135466750605156136405826471403240733628730029101133690971107647893849955270536694513428946361685641471179338588466617095951260800791853951440063552397846349691884829700408739858265118179912966636318200059833868487137094798337077117538644175029105686176721212275097167379282419197306960874397111294964372832535692594480446577594425877317051989585436237839588136997688183937834584857583259479909458231437998107342468321657434697307062201958944934519616580647055707537061670585671430012751595008513195006057331106567124898511856978971157370103517061943868776905010719367999838347556895452201698556119738318286246379535993584602093392359678747811712284473270707979071493699797116198859788160547583274159353751043167381280877395860967265321737493641908857546288020125348731655873120935866585110758428911677264718691272644372237542341949439832226543128634243159338365827794896818592865732520958033064044146546389841943869281234490927045675223235190937007732299498836464848650321663988578417874283335106874921062194036591656480914116381144091528136019380058883058764218857017865275659126862895366290573116741406478855141490115525181441721174486347902675292439439170706844360809359900061132038498563811255707723036769993557471052123391118623304074047268059925544001512978870694518429059748954079001087668706329403520834914300773806945267463375499127934380084740994732526296096426958396354000689518059359410072623189767687677875105850985799444570120993456789274870594853656386520041530946751913042620419111124150148657592494878298700089341251358961170453886681998648644886991810588279199299087600880861822101175344708775851255907331511530839656891992625592163761542266981821569976258421704930641033233416136783794949766742920276183165684688263227143699847143572880429307650213941726828103672138442067636650725180401795023019242408479441429018317932602894353140092183258563359841811960808293399881366625425483315812620348229627509739625265805416240656170377045134671803117651508656591230573097834830817971822506486620972428119096234609561505322957872629659127410363051913249238573036084365014082839084695347396388527272936351004752322327981615686294428135805415959960103813113379381720005842621013797509157179297711751871749248476462179953838273268515292388810114409534365854096704188450624262804242981311772201366875674267612437400010091270166644341480573322013429773478400081089632211959256745488175839039266497922256141722680397740971647667196455620067741821889310244054489989361704853495737530304421504375170244388069408511816700582724950507557090550081510826678317859784740912143840656644768967254000862121718249598590307720415966720076270721175746336638015995654111337316133909874857887149972745522442658006227433115296015844454624419505968954850780935579521269302309297169846146155814521803431042032310189018323211663580556530693638772577543606160906912963869793053968723265445611243626556121213136427535112279701022601580118296874777201596766918695477314329056891374857362424733126611176782105589373549353120099001944860631092844553567844419506094103669422108521907861934957055543926095499771672953356922087885425702046018617798432150183511188272594506804088518714245941029959503547673605466669178493980373649798114489738740410377687221616479650120850401398785563641999276180019692765242218492406205772516415449877545504892356921835376016627086833539871866615853781644208977997603805069418809994746052281775684100477585460780907032612836336256561640397960771621991119700993224420233526137272113323736923670740714895959140011493358728000671064584880225835463867068165212786043869338219407632318388560003967708138313293013933766928661916699125939160356927065269891911476916341353832420522113871713711658813069273568791965459944502084466278779573468497639208265785468053213893360773892596100851216316074874638403910400048999946917731835239702715500925724968374727279748501426062363631890307491883246991457449897461289134507070272846927367091700769507931232728233700821677866923257684266966906064393750398946990952954482961693182772587424177057846953416735837445260932315382977804790956314538179042698381962363931339053601109527524549122267203778849847880904851541636334588137751058827066378746913139789965274193628239944898505653655129115376144865935240346910947898522519966456888105318462870831669768046665923674318347821858679363082829780914241166038785795694857541824461631923117213264818043692242900125249865847242922494509251603761666511170718518385156289698149808589087853731667309738747824548483757935229864497755202582622184426082309272492272794617401224486674488441585738713433930769839505958367098619955442509460539423658344938202434145877746639545142791346230733001936202743467660765299134516592355406756545142641095485391620428371499054330151668843059054469086149322054244476511732689532291011517324232896160674060268039041196845267594097982635189556530730270648343702964257684851982339794047124715173518562851579298220325487367592193325065325383126802649089451965986965148407781238238812020180999962941320091029749601877422367329954289915304150622708362584242526639165327534141947185751849366885216490871335508304841257915450605353396848785260035314105374681778072882125980605122738168609348137716500108549841380194939637322485803822915471405199507161409959606444363866170170893299160749598904321327691725564176791029966404622365544659993460379239776254608184638403509479059715108443315956842458741344134962976902798760659643130735551891248235787217387249899407488615866404333550294495510524538602112719860245088529605753723033253066590562437987997256548153940973572135427101685648051447455034145110669217524591333831718405950938277885434735475838446484707025257711644488987856865870496740748261547616239900643565261972150996801504612006249914036274088692516375207360543911832358702976234421944935259437442646948657106148828319009852363489198299603203529664246635407797572334911658645561597160110838858171212044340952915400549356880422277706029341276236920247131791611663372059006607571413933683517256883347348248347744578533584821326005067515401586854190038864591789888251901309920073784288804544237789183331677331900116194222930152257655020499309365334905469351370111168249201354744103826987608518404336264861227644284077877233936026097862610568909508966417254002183410899521412108155489027636182194833434491530881387838472606992681370346492884592768419476609362351978223714388485416712584430129091167737227615547398824862079660158762053153612600160152208901257006010692267542919847403242344564931862132631145459005632772383234445463556806050029882988839717664268647511870574056593103688142938864703798973176539355389451553254043994397337945003365221324099874676344001722525680553516174927372857085084250937956172120318767014204973551549555815767096948141833006992103182674852601591502466983834177445050558174495194632570271736840729643151749272478474100343939264039540887864219547478661995475675364648677765010780545922588481997988942670133455747937475175567470128677384081304435803480856018480154117584151542482052111672441910940531852347638231040835271431151581156260462644099921180336978931115395886816140412243165464828307499802210085055274996318353251722611561386044711449958641518388913566738054997037574491798335465834871441495040885531987268902380039002454002995988053986624686395349012642475956806751972550654207086549766224499885168221914459196426434433596635092383538475096988791536423654256398422944237512091273356078923657375215843271319979526298266472921770107343419724440875680236073075912356454016117438142734015260086186550809368048848717896043598157400302432174934034626831517091663989595119238643374634895265024561397768809793190611400213049405187468141164629724389852610734409207709782705004416493943638086979635625857876132856407784060510209653835867269815041705135543507395399731673258686576049225637605510955234051596277637352564957436023895673537242498913047819575459421456436200855486212804733856578829505927709047247178499056241307146634310308272246845133276283648090583257722033666345865295523825538062484617811938898419994927114344864322253914689853527059976612288199958753406341931587840919845078737008446545462939868561649334751362817609336407593840042941820156660886999054961741122798051514260025367380287297148055178469118843172379933556300696735605300936042884155087625603333149176370524128948239060809101932218347112523940254055500337875959458477403554124533873130208241415806874013417981915756749650949854679619676331800814431633301354593645427997234884072239446394032651741993769946586975233034272677918747631960279399798395251327558415348394856357146003536657432759044064221088072402541949146255686663047703200252867688538341327907929233936046984774565309020533335620930049941884734287062991663648850893488317082423060408998980438112835284337179769654953606635086770755719627453106526284917511259993177910493479178471489265613672673722750310087220973818757620342729971760497377887431332366439815100654822614619513589381968719942061576385406440392770356771606608712903924032623419718032167816787269651689774657913457798476181485619597384832559790316638429858605310913130038855069603637365176844536701517736476253361813114791474323310774448929946515064010465661773108860050833542587412565178000788535599020058944981680668828432456093730995599915674037156136285641046016335095246472182782240140532185936952793823099722259430583704683272871873070338022862781470866033660762183693211241691736868277765012885439773615053828711030116388972039674910363745002063356260751544337843942007924980817702467704441693357946136028840159395280506760362394060917807881892282121153966885071501736364584406201471626839391175841766436521544905220705197552441918036943508071168593930456197537707615576809330344806472592695708048318849877965783931411368572562549168037121317044390203725501621260255506917704370546346904897768116864083244723422779503888510229121808018099520554232161163580055096821942300750731745273622990090874437425477760669340825094753277751811283160241765108521656013231917910366175489254558914821348850937255212731742659320915532576602616851261675785861356320617473263226778237226241770374823630420748548787418358735524694704357187542585470469749240877901419344370921411881027792733031438733814244713320827854521132920840760138028431876569554816269029194909122283712711453896261247659522086203317406187506200237672039450243399797075368890686575502968175079189144634450556906648676967905067361282604616744462297500710773502565714617777324195074410562259583426818969811027382255304844035607870186433626051972635324439240683905770709703579152796730289636568499642992910751001106625238900105908472172795431080286879696641692384161029637264998228165445999800662125249568209730363862241230747296492785463675059834116077918729317415238828049858986856303605067708522949546021806956081396224501722536009101957541729095851539169725378942921944722094298054216833105243900341623185306383843659225271929010956602268197749314588172705362671530440317175121420735260886178897040180729089111573835394170522080089643984478556257611008693478296376382169273908164107043684499002816863761624441374358855930944081745978548136717805043907681246069971304770417493957458531891187145573692758032455488241582501555059103504254930914507502951728783738846181871405246840498550489685554780599268815767365730588994888935696951480240969426322318734333260942281341332426574885912743160412901527199362700570624472183879640456880576257874248795209267466040404709926416197595413465270605178848596790213651256151206251365252431061780842861288684265644969421110172796814267780614900915612519520139389626854564145761406447760886405435946566677715738583306697791378669785885168314866558367798466806337412638069119269825160099480185996766938039736451183364248875667571685146748491757286789143062578191275804762585079361681242048953198793132661142165897671786961736330820679478330585207062314920351661623577114385779772568796834058109976650730523117655118947713244055129133477702967780648837724406373663261690860458102302940843385342466522857171988542864365419003514204146347376164990318834663396366179449819161222339221123339429064600922925551375859105095860093231312029550310059716978878421483189656651505839061342304270007630825439855801644496500879818272427794850173810892774143804196918430460208960994882664893870891725515735920725780270448236891343917408041812632917523007007665433099063074079997700741114417561359810906873581762345781902972444658695579886674756517980376067350281064584640465678883445917390772510051379005344229613358120228018734768305701616395811979939536063171500902589157563221212326301604412083417013426435068023384950423926832575799983849198040323234999515448678414921850505038077848638870326166535876983654299392641923053427009858093647743556664769873984795597050858575337178152516424156276061088187425457710241423752890916031858044767734636002792616726368770242706284250970299159343174631618556176519046636511279666160246973610971317301639906170645195347458743938229126004691017633988425075573704100360411708345166439111926462481330423405906157872373985412480758035088249464722206871600682015926571954813650414959235589214811300547862362169063607950900776552045542645248512562444118118026681363290265082153804518406821814429051600033216501956268558505492528300314998727060763779201145544664275311036998971533709748780118084290955613211315786495863777662274006912358010527262891980427531379042304750066315218835606441515997651906498761343422360236446329243480955599426018610896165922567067260846095013292798516532138327673765108846191419047859560283493089240550288987056466449050431708157101517410691375791227045631125573371331490181505138613752848420318032285496714694707427254212516964920326525647365532656156805690863153584082308079405742702488828612468577862977002658057682313106404927538568070867392601346741852497459090803380347766698317229732188400076135078975872595889696149054706428649756450062403216559782911537717468185029920574226266942003506426312231103173219381840259960065950419760056045116079012084437247896890401698487561730556891612179712663787917339650485836907804981911560702086879586642708059186773795037306073999636521550053924757603304967553099890713137562302681072120847785663204516617735959128447756859036557821635160930391713066773975935108638614394089997645558298473041576191182503109548182985128047242486714616619796182131020903170169177305580674727763554160422472929830907160448888178804673588505330218352455634872092715183978704107090384112684736858287637279719906783260608392369360167872652079424497205551915810085361129427366668476163688619884220507880795124050209107790928132779068540008895792065503036547494882564828199981394701511436279435447383448044207656663264009821542659503058873658972009363481422949746504949896170562299879077442168573022762536655795835605135952190449216229432173973016774428768799817051549254473681040892297952012212850901985225027776570984503090408103928519386889557804363742054405492822576328529692090906669897669266658096594951531681230887154187744863186526284416455837476259986132625243535328078585917593160666057520049529839164898433543728421024465022673832641745613855559601689680775532607114108406211489586030403965475654360490670818265474491876592805764263576820365006870703392067880626635377657096282665989377664573634223557078776831521821721714016726532676919595437184567446887184175486720733170584394815565151342248238854832839470373891864767111462332140687811514008689675569835648630762091511976656567742140004897513052025007338747915512516904682140850297339566217971920403013389922447519361820724866646390358329153181683558862519552800045482236182758587832342222811978777594632261936585107061344493082550300806301677411675017582587393874808760859042506921848317477709874786504211277855158859383900390805807360801760379707114351446841133042333324728555924053602915990138758024230957853525451000105597663051398050105510899353316474786467343167869690999648903316277722360346559156488388152508086277675784537362548755704649988878396314656158566098892755051915959624305017598942095568078920183803063973919380039103134619411841063688195884266016241420847887421580619776580143586167915520488095369903941058871122793372661809423276893530488606265809552410971453294386500323483410292273627678551043811600837764177710294221257376256047489994216893971115095257784057734710096759224754455849159719531192090634045627163717047927072840055760846037169040121772186851625876243281388697460780927608322863060901708565292857088495846550170389006775422330688591572477546290361425829108168417198472069970625733202211334709562537384198468744297803794417844187626926585513598004761064100511175200174074568639321976170298087513067701672991303983630948766742760975683038002413630114089600091752010201299521332445145159624351968892992301158554421386904986758271883460335497827859576506917935105987708008422861079962175214773810487803520691262765472882155531738277215443888529532602795614816302199753659660726621575948574461597948812699453165655972148858675679721295544787857105346521126253529101800047079981105838679487178143223980928360008621773140325797937960017966849299420088151177070045448406294773815768189686745118362358512314064424945775354544108521513992856100796548452805487166000591124743198069633748193632071279071689191793630675399492846292725600304350471378368458518667580734622369451380906443168969254897592078209640719272993215677193348246205514593693290448807651148284936016594499535657669055142600022514123320080879978592602812103799619980559985409577857427267468226880593552423875668660395843243552900240907147977703374154882257698107287395781504356409625949085308953757202646698947730083009587731458256835970347843510645756142224983499475680369204886285185259932149948992865695260117438204974153969912253856514825953669262713928911601055272593884698527374686049276593166816757414291005988507851315334809885351455936951842968779948093561057677159853232014015035979260849319166512359487769376088821372972837181127324952250005829161519695854434855587574458185121795409969549932328947440195885069901138183917291628216797919834069756922066650391168991335897394029633788194748089725414214055944661714216277795316446908588175358745987546914280855810816626564042061573911778598088850207944522308080412399633840409092419146853022122703435933604859118085827334787452966362309459547930748564427860822188483652700751512541328751799214936388001527327887398282490615278782343674563071323475390861959723199039832469866974285287477629649758947791469960560335573223436217901769175637782373887763264199092326243253473484752347877015084699978540325530800017431671827295310517406043091549039995025616099215166033978146043086882981858448581341034634975097162663181680237061462832297465729450691071784017755027925154666056286080199549327878138333917518753802313128536369406882630277337865305481372803068448661505300998607886776802866008368280827887184431490003452906026085647890071376059902007976853783613064160707808836356849464357412507222812988212913266404529587725293812492658365445804644453054842296697296108880893979336757362020362737339879909165834050037488826012073446661700294323515399741984577478209193094857811012187765654761036986436842191782826506544138581648643248279788741960265434504088984557963282202753156379708073969386304717062637623416482512702062812678325347011277026067657216928212694198397251553982625326439908802136478052948222538367731860331690767707233196316983972159783572857983627770294925529669689668744583390909171999035647212304751463085679315002088215248361068580907159080376720536910332587692273999436985145001747748376793679555191801140268795432951275600781691149691225013969728425401166198872407994833451616772157859685820149462903069880775681417704042074940385029129493709451622021247028739630428188572644822980331810110805248926379205398489406168454885874301385312509248357602249469326730595062779361714025834380271223494565093222974148917425094692142689325889801484049260451783784795419642165976335130954500555578027203910582888974313960566418462559564770061893905591267786532384289029988314033301023398246433822608224233842826871764631985552171531722180620937122630402356293987232229041715055622108749926493902851029672387154937899119327136270537931929351303105185653197507943168629948484158519054125027121863738716950469990715513127161779436267042717938194025553567706753589136251721358644710517123161077807191248975484953596751743136840779410554749670080152728115269885631256137527133955654136345371036669723626316521856706593190755160060767359369237679781690229125143080473227835779671324716127261238214616130087422412179110206302572672372817785395328009615950948080344859346052474052323522002672272104990974145643911690926617572882789841634449790598164165589714099309786532554094873321614739291899914300136936903270951500609804668539974633923763205259299461342985537262846630148272390285146966659740132467100739244636180091731772090754637651640096808689080841373158989711927216388026854311188036434822948360589815671876134368879631926111247213544051015065911186865302334768991383123864383854125057664186965037656710222711694785825824772385694608567534957374988224172575268663141094803484500367024154392466062440188706970047591245772246245101782017818293473325692818280271079156212663546052772026397792298653369460454108191326879106171668790986745953601458110366826251011093532594350563171097007929649941281803001338772912001672510157235456191033070541961879054667880348035150544072415177396378676616469065650146575496254116151823744958352649223218643229233719364275978147849459511445353196927175860364291070755439359649810187570306861544753976770922052302495070976236804250119718245409454169857726662743633361552092757154842724816493852385212404983141444060853024691357801815796336846858592283023868387700746537470343067869613442092262608102696569749675690899397216323197313340273679668405427708738930168672075666009618834003358870847562409801046963364113884298377008481282832086305265043844684787023991261734332392883717369896812626785332065978694709570927660885156425301806464277477261790416142221340357692112977329571274175352924203942786244439393956599097707629326735900118747625910818526884301017915103992877922083438264559302469245218747280598629269721226155554260284581116160792182988151545998186139589204230446897364665768167816132686208556070325739818892405598012103256381391454804542594794584010353718761834452013370578569302488502206398740920142861147833830520885719737602021143789927572249711110436602526463932475344413474610350404894577943494605849274773831793830030035906435870607293521538045531653114536826893153595976490054881429239104727952604881676304955901453210022746407945682010091551306783436460210096528299699385767963746774669995700961110992468138272844959464939676104935265517514893697184126803079726727829147762542698030725891713975716116558173714556656577110474258491489666026225041829434465384936929437878333554923936348872663367778068269096840373739469577045558692151404533044699006515982194913197317677137749913803780832043586315302075272766533046107869277091766279290172661408551607934899404298523610747962891630895073267049866642413654535763457351037591270003852915123561893628654578027780195718537100958141735489662616931697339508599181260284920786599908197622278660513104884385481241390478556494359653664777792868030212310883322985658194057195111613273863706101550676261756632636776912395341154343620322687594455026490799716110859158848110079090233898461870215926738210152021175042721313449512411382247261376591040846325481663010698854773330327657656318988599241802199645517358823779769560192358946602121110686934377816869826113641378003114125591090332009943440459940555813909526957790907724372809913725410766495835442581567521491378383282746397792237274642189994616179997716131634817226041941711651936670719240587883567942234966662427360664937920257962859165413463466574917451902040415365487134286090917720151129749952969433219929627625033189396017273610313084962704424241592515103839408212873699333077296591958849742470965403896639227924006637586424606724636281556431907250565998145130845109083511824755745286961346890961887034048948288543052531802731543720095204025842129906963684886543611482814781071724628920528929647393343809300681375046442531818143966304610230241739083236856267443918397778819603447647362960428345008984100132431422291387099466403232488458417632002934731232108684152878232993563763240272786732187290228779888480320051482409502350254048426894828340977177113084910832521521311349056477450987365808597009141245952199749094032755893494598059759989040908552639563987361063872934671173359178678537141466002890629935795932582396786572953876215240627284710947847363674926188709471543737522592695568847791202572081703151000573592549600229058076443124149380446783549261049887696049836693126710413953248673389593738236484786872134083455924377177136699959991948011371288246834058239345221463150971013229015650827957919350659293219815722375441898113667008608556129040040705623194630696097487440368533344116338958974710291064027533602130810817873508502608724799516546093240649841851841813434355874051426657327400525434784973312833868489896292133317406299159420271875519731141339224707863346722803474272352717854518617521476382823414968412783896014749886705369828430578232833727854603485551966682866169603303072102628144005834504935228769671770574336103712963264672517026074531713651878178894815144727670396125213497784563536983579834208998459805088721614893170621521656359216076040354394848062704294066285857910010280766663230688719545486624848645582713915690347788935037244109534821009961405897593998640426051622510834020570413354565389842916513905847989297660693699811831725678123770720220996710346454162329224927356955629456032532260754029895255702397850694823153785854331433939918811728573694582535476712906746425820225949884952409033698524340629772391753160410185424869529665202861352086327780706350266741035309298736741756672246625792652659630162596916237726078226944763404239846776762316732252339513821657568266122444730680673990432974125927188876379345108759069479848363460437762194732319491686263175338424223494981157386032457022090319488708143204422734626490824658408098711464697154718672940411910048719366012897338890012638099138524541500203679993481438419506338637358173564273907800965727979762195453074958574807197646730648557427475100699240718094897427637655262721503090347435749566278351630972210965154207113125066235985220834190931133780251293029439525794379272303462679455383387554119650233985548715568528830931477320205626231384081788556242303098279013258858526045824716836697847927726056330389031166647462734311499089692257492918121301652654931063449713511716014474432603642544557680200243123486640831292975166331799476515341464822235018653615042508584440349752698724051598847146264123143336001857461179760656686300183678713634784787674660560384419593310600401083876356560645417456519532069202109798927449772924905895155293049844104272339057804934766732371344320311380350849969675647416338495665407453179084499351790016713961201689133124481006279360580485388756177570023514314742848150311891957626842555184594178957625377790869177645262990536074398193796767288156223551481795234480509111786429281145385672276185529985514089882312042591690918035925513462403756051436094737378242788910687152774845296517896893565755839965045342761087411373050647145018108463902765931070796752232724849295726155094522852375390816773003012560261165722851276077244632174014818907949313876273396644403275962809308487562997450856588053341741503668220492102780933052368300361969541420167047461739066428927439172181201607418603980656200247965795718813756859163503022962966277855637276811502734741110414292119388871361959771361622621908279713156323628380235638657738614921125912218072941377501071145841086363506072664322513154854113307527848295676512315536203783232515658114578526887048619462092364478790815194275617683185382575292620626738080686781937856681130604353426004317760103440306211670950073645043016416583692025350445067537863289528703238917885991279158626264415252205382536877085398411552825045108706102036071920203766119549742378015158805366481596078803271305512115984616285956676425186034983882515917487086169529386430244660220004521176695364711883208774755172524967865190231651226166044015448270304239400082466925170384661950008046019363573622349452165824655994703447715057710166812388470425340421658959966605704386626288822173045636498212844676897913393242905255110396079721505603483942697890738588228085425375856567438920753189960638599321978031958341438212626771425596327586636264409741728573554348120642560228249128288854049901979599908248582804687714020049019863941077596092760406208521541040380266571067143000036559509699538502434789315891893140267273989401883371976968670514417831793964234259579794948437786214673272694641454838793938755402517345821766240671057381962116006234036419979690834647601193911580166706599876897355200316909396941579063049095564606644061267592647548587585754067605466451603767190724164390426424439459191081756458422721289335611943981668083515809663960761469654784057460201481841398295816121244807646397979190800408147271199300597351573446124487467351131979111028310369322107504474060457322601273379272144160451024138486872059163343488960923083732769562370282973482762321658262996699733883753545574733528795001515902679400609487490903204718442038980090266640453445200581375669121420547710115915174792422827407333076687436325034880452330287067462920199904780070706610041963102944098292631690065282521414592879599299146883315711201053347919503173839845075449546899089966357752505196854133656206007811215785407574203137100026865349249375018944731101684538860503426295954516372426923666650932040067211462398035176795716254850736878154807948956195399136265977330804880216015490259763097634816643551276494549834007714600860015379464017467270582861980700827274538868553302691784271777633383763985042575454028696506780414266070134401850073130723138781487768973439827980784942104843128518756732507048598757773564145024546930988687989049713315721355720943652918588985715439078057231536210528966982447638879001157387942932429333394269299415494063746205019700734675300678948404638268051326125091883935326542567856222374557584467036185766658986410622204182846257103645759284333720415823799523327137252845113831560665597874792977588113870399428754818570228270793936972777160163655901083385684771717258841496639978826128552470372544579971682442085819950690702391521315459220484050250470391631671272377248364322282575627352466387626431941247984157742958624752572315354878198182721349069200067305367140805164716412527167294087044813216198962211897041523542217607768312772454259949023451558087125768865946645441459960413474743846040852713255168811774491959279105840228147831916088776242987678814805608350854900098077547507148009017353854468472998813652330132009382731591280079297205084406200858047712799339491836339124689411890789935415924487141840521885541041988086523313990642193663868528758834910814341344219589095519924806820065048916387618776662396212198344533323997156253217643917066407026028864748341235366244849806555961229074790257498843405503904434940536406448511701958867458489883871956235371833799758175557524768168825022572177820760899622569756787967850743769281209563980879995449778829199289405624599042565858476609598975945595283342455713569578655938574098361091858799611100046827086257936525491325577692479152342120981799607220323628951891189677829239372876726068043481256128766699459995353693118825299226013709683399270384200437786104945071911410913764423446990564691403060960982470011862020938541578120853100884393331758540137978314358474032113385511483878564676292123720312438627387916156645202540953960841209816745765344656047161617605735258070591176073984070916287433933641936969953524174753109000596772467208225817485882914995950132287028845167612042597052686561548580864002018095348635566941863153429122282348445929410058563684248799008613642031947806439345746416062977636831894638933924146900922328174967896173401494028398173086926993912102904480960601580270799247842395178960603484558064851054598251325132111684237252560555424756288306269638140981363899709136944884664607853755861528881247066233613088104343697271905256052719698738619641982598602113900465353687925372161374049015006444101954015131636791150245536137383484236027427822459053672667729783385558584204983571081794840150512554116133460786901274384731048957216858151105591068209756943910813051235337475254061536783943085759200212506980760599478703464371578453648133607115919942494927913165283846945848313373061064830871371635310924385966019325623464984565540773372171777079666041015653397465379678260612195249275738762933290273513804719162201581250790811624107426352264539908788056968358300782263102324068647216639888989607136095374402308421451508665594580862694584238040759808778386300436410072477566195113667463560907637725891412869788818727071694314173807312980519348213971712880889760522122054468348920113125612677188392033738541758796012887431912315817739435500878651540609271052734190614632151136784025488967544429980728825733145184042255656003632555947620609045327670187131766126230948652826573075870657913117672768203402453572654507336224354039188051070514286739570773227315336234932700306346628993563843078459292342304204948256109337519715445405476528773546951140235997923820788201368525148991143899022270922338488522913602898665304120251948803491162462028483555026727290986998733529542445880384406219605243365746252479629699045178372991616976529326790068269196665948291603100659105596388210467895780395038500335209514420558991272141995151675439659883151757997198699226773795236348599969119676618588783719323727615170640779853442385779726003285159060926716300735240474213117510597784633074087203981093546749318962444442836400500844243499384433997884905237378499906028291119083458698719677761827731401908480561869862546946248870407582198747765128664268198980601842582154569892296610725446956294234790053451678291466633290646822314343802988800178669965362090612044888556237852326862467662967770561053205640146478936613769961254261545301130089055471339420928938475196328114704586660423472965694643352883063458059397553228371023505917854200258010255634186291165148198194775554776899423161193861735987725420661791657502834081113525783262232013944833444883340275215919427364946003108359151932489557192880260936267183085332344817260071076752437408361054217514888843881960471287363344273558965001115651284604763496668294533198184869891079798972504378458005888944986699722339245107898489061136199206127450150543388928778716105543444968406756215073357855797385807190708550543278454129331510773460204229203082677832358793371127006381266500759178691964240848701311453710397509289607602993226281396981065585771998520827367276587423739796206432959863870494595803192961880715742825066826846251380062715268988711162871786787461517781178098129843823939933763332697552511041695808611342967027397673645600015023901368781373557238011251248049741153384886644710822406792758109440146104212068548193195688031287389013678049072644821365333400715498171461448038813950241063353842102735703593314826360349583122883322311036261131963668310809056596942612052973582239914365867992118838348926005256739688055504352949574271082074996404350941042725212159755134070911734742239964111811819977119495709541379571281532653674950715818358947871613883382323631666658122980116128385675298391460965412605489966963285732701598079221641901249067349558432213926380200212431911846623994234749909041540770692505791620386302036380694603782512449989087926208950929692361737561222417627286490123708150952777532030424692740474670584369353673013588823452822895859781719412545381543002882714723923937601156244600196648857388371110880526318679657404710981137625736132760596608386411172664534252872205589251822219262391586523533662171635283013892795411219201952079622069085772883351281448902011971174366029433355763492630982193705166290842343682835875818202816756824371771140931269771251462676425069928010867266610949360799979634405517481929550389139570009037099265839342770963761680058281721324060746383967831543096770515071720715187943258327739259258590487355744019159249757922226903638712511907290938964124759762509797354174702305500200219402654755109556460406166049458763815557623453424564588484430788531783670815211204119106291345388025915566864777690497931099137597666660667621738121259067095329784596159189205288572612256547021999284163992808073608804023589126383088781420486915841460147686864778175475996860454738585360806645683877030932001919442318051916002941458424700202558683671881387853633159477870449746017053064995333176201514793067740810994835264898446978007543640730271220381572741454602966294389020456331814085842696402054170873619546522657720147883042034332497520220749844591741793749929125114806778389327907606944608597560835281433777910804461336804188413018113912871012304069348640026613801680181862186359409994449372981615178197318529854643296328933172937806583346102746483715609327229425737464431875613768619939774504542837532939943625444170748674441513544513158097379486376132990050561393497253176610674122143505811775283771224962491364175140784008948633012949905033132350827890209996909228304471889624791565731217255776732250659062567117910086136267592461480775677929947612381860195333195200055183673877238829078381246191213800525303901502165277015481519243854715234086217966546912883738749521304920903723623107241050378272230240077171404291757224751815748121505606513103532105691558725352119300817449514206004014481129906016320917863346205208982400744207745395267775445621109514349326506193453381709131147609396507519888794441592915082251672396157255164652970245585740703910870067656107960550528457176020946834200545463720531037457105698768646892075273871453073661066757664831809164949579603181673671604301945919348449643745210253174007841917000702299927120857066504417846836508051818066062874919570716500859075823921481947329231589234746186087161695210629415399552795663704026582634444062662420041118250606237157231107130129757518530024734519987545562800738416517091482397843876057120856712339038522480437582059783623597357945514171466088537228022270501216861287477648234776405483975971671981841824226880915859457625840984183551905702289329483048289916244280549534613633332866728313305574831312759828966664166278252446150762950070267404528411598893422621660526541612721557523873691691897563401433820237278339607633854304195239498483250600359529064867332918902177407387434452775915331284867945597761805728542775141391160680484114156559506015060107056282409532947933814553650632473605597870117269712714278072351684165094822924834347779092362002578058717514606292301970367200448972482887837095635500171122770820310893404734270950513321955681405672705526146624085279208486797126235940565130411547363774157262014653906938359387068728204588642229542476945925137962152651984058826437389092217780141119082193180093554911015721982485837893268386654519710074082284719414861109908830848674008315390925414220091993058359848161472068464388862262711479197050572194492845781429801218045843144129922560006667329120005147359037860850731191715964954124875010709067650869311529611851578897535195150943206129306630382367474726803798364717961444800181861806502687425953798649976891724215086377432928009568988572338099704270102327373699936843530615318842414507269683080001465633475906241587093310453886824976400256737919664685633510730109301543928740363117220584738079010048289805139404074489977185629913843563972789818109359639349797621252170639560726798291407699922142974861667397715327880094429522155569425583683392411396658416534345599959832630853184969665309682292375158441960209761610271232152736021804334224525653957294617508105223692209279419900152161624882309161159597698645914675461395884809281465699074473812663187207652271470029172633700733343479431933829245240322972273842267893747232644917439920929244615098292534611443748103166225936566390867940425782227730112088929964299147440037220137945009619479856686621979906167769415153736935987198664239187454557886582768752249384432780953093925076502061184661510769575582835255683607401610908755439479735937809175629504086199327102832631358911982179600883178949742459115615177254787514777520570357333617633571829188087287131366059117102591867783091900590580537713684789877637142178334144210183193377656749198056287275711568887392481498075717852688749394813188334139055781610274078339602896904811137256186348691141839858045787937387575150673816849335195483399655391295364429116068995288153015074539656736279440078544168925575134923947902296333553058676137618969604122557049856098967077699624566961720661593110904004728697709762740380925294268101767789894944875861507545224281366657687289880805895458858509189763478815702293393661692454434739882678018062041792559948213696276023817504642907432278488694401421720423340719420486915005074297265183181649195246024922451637799381605202825120670756909841152967087800754222056751524293714976149903909244620783767480329755270150685069650281870289163436417445674960313755785360466301043570626190422107037489654091737186224219407847724139173902499536097630823574687918352057673155821627912824418233341434702823436958560981503278881918341364307466697744712248711155417449900139269600687510870419280382228728420110093690901834398799555858821801544662908467840757976147289641775972488992295894185596187478973228330905576876917675337630392174971447370433152363971481044584887689796852976501451833453378211897239410290615572207021506660362432381016301502206733391881675274163993076573828674493442900974919991228019333885245337951766779395940941084342807645003286672494691126052991061488449932169042018411286601705046212017908008044755633275922777904631883115063408987898410116704824387964062141789248825422565969882764301557137704958940093855666491813974637759532415152795571728418106839620987566067080551148980114580798814516117620708921896678520271691650587526866455776484365633378240104519106771313733429630257250368126819958388316320227276262581769335759227928410696105422813683938752539830406712268041822011961220308407864709481406427236484667847403124974086335609672446649618660366421937149599630690592717315454575617991052077095854826285117692668432100118560499298240610833591081669378775124799753018739470728483241396631169353614054413189970460273685654138353385763680137047296325537836261404771868203926729878840842590851785564384057700544663466568350117625607237484167177963101612430685248242218560074562231730889646248593349801613314536400566612166763395522567068002569210497186198792056060372515796288192494194098652399331720374507319488780727572358505587059083195686131719939953835136861636932886724326936609586146209233238770462890838835644105203637480314163690099904855285478292497479798476534736634817824690997404552991527731600749924410303764773323561779819852424680888298654733475168713684814274131127676542097404710966128318963004276789280483068952522399569033400826459006813601531989666920635727688735798043200037010931525674207949392916283735592362140524498958886679592858147521676686238826320197322519508406343808782575103720015583850566677765776465031570360741378802543593214383472820694216605597390233217353706803180162065071367977558350088115997282705996494293186022652832455960500383707671814771057093161475424082687629706987542224398992824167505235659959936981622311870831374728875658934490952024829520535539615801013619371985028220786263963298391342430372770965143573266865432779474416967674746619479064404908198347582769824710123180781306837113616634049898791651115323934437733946190275038293995514090130118738222446230766824385226086081553996601997482671430915785029931019408418345761093040521475387239871565587339777315025598882419282966395581101406953628234809983116479224736739278256841256451339447883882809509593640327140695463688421964856402965082728376494147352079439173200214135245080771795703143493122515284605090653142800635747494210040804904605600847974435869321821202498346105693814470154726276269298062561432224698211304630416061028421978555221501343754386491906992398676239598184289070799583110567360068931956235424121801942850710771541586894943088361489725729977876116987474558098311223303195313981230835233711470282969322611812361266391458319708396252000968057086507726727292678222859311162664703824275802978663231872974840785024260261295582554537463709873448071670542690018162028234699345029307261818921967722541011261408351374244279584999805157785435002695136845511122256571890750954349207060364910754495577362621726503115530433918359250275625684881295898296667147627477964703814940471555394503255363765095559590406230988971742694092473113824466120740186523982380960129823703286828181361029815052695125748203684758629404517551092829144979890867300194479475637162435399554501467292187069562263201906740344054128462807457285681333921189893156419565027533783216805443830873800587734085075899689964408531880336648021136878549889374636436074252499926293491951314283536445353702983421019864017346239699118573417864241794190408303694559746224713034539656181083712581599024162329438260104341827891674709159499381665044277314713650786203056143635855120508323501385246039131187327231965056154946126764773664651655577327698807920152511401317592662318531210847346348378380835805062424882878673624468085821098133542232271161644315902237231419672752231647034164266033234113801574268905291783645806460086537872778577575930964123216894516661025447127049577031268036676432075407229709544338944010830980512813671643577292177307666183884132316056229664172034816773001153984340449601062802370158833096049822690065357226724759790982458268959694257702347416635596653004373053832693239529625907337674521759848456602014806976677437454088714012948077424414128451691917295946103254219332197348228332626996415303187465433902986550156447628359339636838110524179000658761795425326677672202087285618356029787471358212919586138450021829978603571927741956792412362097375388958406177209065183938562760250584642609868855168307986648492387872075763430769214765061063492925950449959768996383595241534111602529092429349884322151578813212553579727794087921960431756695507957058877098057997529506062416465598670750317454839748333757770132102034774068168801719332965122144394114550085871636835605221088265858417725602556373206156218187919278272503505175670040180158562011823205012776190757463085704282166924448066110335291768607476767911879146378568829913754363295056250645245504460911472946783629516730287590178195850821669470239881702105032478409068882852248865270869110201589746154955321927290862376456741938421778952314577612793150404729223001458639803039286805034352657220083783950476318908175553131316973034711927983896352898744467417590220152418875475761218063634846169862127183191993492136127886514715806647035900884446415112377226421643527742104430424991434386547749650256707641275278927017684564664593831646995142011310318035297177852597449336157320209909946430946344079769148125130596705398318915108341109350349045970908765481464306822480133216768947790144230334869726584253596764164696280962403905471741941706462807107802932321382123690019948371872717057844667476348874017072341728301055949907413743823226476639987765557450706546766671445654142349644228288552771056573972874421826590078677917879073018920116056438210009070291737589434105830792584467257836522286947589743539007284682050089031053596254162424710233989617339829503146083439606467826619843348674526200064453132463578571343396130563500476304613961200383373283422536664915190432992747094807986762726833531151747763396226733370478860860261215596056130768522910997094133977806803896767070351998172931312095088543666526866395003606020585835106335048936225504231373855378475514780370398968082537535805186916744253858391790898894490221565946796713927091877210072818312548058114678048682527931559293587466071404103472762401272675028342072565248968506819912508266480528857419833283525654881187023703476169609797809447778292055151614697283441593455877578733596277105002442730868680588466615195953523880813150032671492455152288291187273894062784149699696382667688624748068321338689625426836261357098874271666684498849800143052077680399223796215115772967203174746527591286471746788889522166509226399046204717945327784974483424369749745912370840123683817078816633179987263998599005096507771720871513090477188955794915665524016887719382974167426758133928146070408364667780402147316133856334315556626408307772855891166380697098972761361404542182221039006175981743375599969973878686845262170973663533294364136020721632049726532067297743232159072887310881117762775959777256433610561552688173634695749695789857861655933786865891869691307448525664060856352518693598078333490791303121881778269748100134027676162781588173185748296725146840659026317115048708279223465897807795825536784341751713044135739205119886946500503150949536685187449979736349773662085150558576532249756701022062622705542268702711269878887615816250361168057688262456350361147148674173818612151955462410107432438667461258725867790080498322982601789062619245575821137916897963101919347370491928955267348964913522861341246669396596628177455000708336954088662560182779918193304382610136252448970696376881723358015160384206556202263265709560629396314906008009687351470830688970606206862288894567044393592541202487349275858483218390026270241432097684788020018884073005830981584118583644608253078365746546352795470018331891238561215502175761156522397306674483445686180763222360795233182030966414022035007784423278266087894643979579975298446308620530076824313817889270590677317145602335165790109074182639971692480732718388598614723829959647740410566440778095627016233455470874361317638310909390870212174983024557220808548514116289786136696565384677334265024533952133661365426920751726635180253400678446376532472549703150119761702727515264544954660841443809023684415590845048489067492799245398747689007275502036850588730015754611617090760043967801271306609431434638751447778858345280071788879610399947922588486653956058785243470593379710548212273567729206011491050166351740803471692649438270257092899432819589207673106328071350621943544983962932207529073611317392327170513686315505221680951219217200547608672594885540582657334992528666551840754752241228895008660302417847608434093773201422785631065750334050224389243136637782143909268868110585771010899909782516175620965439976674260118129593175194483963906923389393524454750640027513393793282222648367528605147184731333043586065100235312186514519549245419235313822442474764201518268354118587879185557591377141823258993163738709065713716327930387300883692610272810072755300718483980590218085967570377867614802686002175445725878905727481828572310190976096880346006863799022772762061398558876805242951337270065405213432675937069211054833026160719583877636231434335631185302597194251182810321761102485264246381795112402477144456904335420479621049719893757277688576050884298250317837826390293716214943873835856536310198596552326059774139197859983592572686813026705423288924386422013777008550144272681520789697497653704680605481914782968884347083640379638284296036956085153115176110985898426585895961649260631062968929398587239843488296823196810835109269985401995939397865833286207735098700051010925050631365490003945242742681301556100929397283564228509646643188582738200249021031956929090071823165103600896935012731488405758712815474260359563310286654457105759603370562976400001927908377652844353534222052113869204294466261945348312779300303781291513955173400590813739693677999309055253806320955439525545307322937137275307841366364923309682855136285494575992463515855373078083545149076349988533149356356802219780619647011443907330118830552120086724132041822701361098729256199111742209506952080467150813327250214800194652025257499568251622618262203992825778579451364587614556176535901286632300789591657491226568696312184916588150145054570693247279553870215386806361674116310851663222465280906029227602212494022837502885246542826401502090973068183665073384851178807759944103845640417197303791472676157658895138594746697065301801057976044230259359167335121912052403144188172905104524454200295260473470178656336554401864886189296890191097517271271817679941347943595769008042606065699500897109724552183286758395559556026770409953969400520448413376953157542251213189167638238933685065228314287924400163359902379118837020687898104904539129463301537726725065189472165608021831553515884167913323599963189074179576230995226015768928003344943531772834091114465914233123524356050248171739041158289124879276880894558220965388763682202805227872784147433478069963321731357633272397961331085262657309128543296147101087702489109182858099213805471672991573478712874930644705017391764686019933155668032415745629904315860210294617126814944176543216915987757288446508844949678815348491238840428614023055880215996788878598088902412146728222412609510648867319466273391447496077739697076249107998841452724991240039456131166772718778461385596680801902950580101579219941888945052063881866217536012643788943742747236451761021011762229727050864429018952624372184907247763336393858013047474559860288683575729058983191625962860364564696187195062044586427924414437818981256006570972139766286115665215871613041302360501609624764820378906162965558395935935646365671456961035187316374489829816858632932762610593006302653634393155716169154620012033600560889077391414292203151959473190401263954417771439854825573093351779015059535562140199896455652993941774281247609241747927030389916025301359361436653371088156032869258122540931637986965992112381666883555053185107220583659452846809507370003205428708645074411575396462933198231763377730426829904046345488308395497205239971051728681114967725435941755844635500052829746531925128779991611051031353286052641745616565312161117622225727191478827845073654340059207641337227617957123294228295484566656041208711166937303127158403971335714995444259796713709111135383623064906001977975948752026177265225739660236001664754637942244546265763514841065068467863554723830995744761477034689375422329683588470974359993657033189045266455800780177744999961433973034412886503796818133342298511187270974373421060096430925116085351725381228612003340429930703941604249344535613935838031743950125449666742684294487055356599247923137259097280984089382525483659405644148575823592150713815265194746823074308375280648481824582383456001120989595680366890921046610943159245104671189437756398506298081845448410403278574956475210660508967138280853718664573233147238846739960772348825219446041934107353014209664478578661494900038258311676405174551825549051105143283856576816319369871395091270952030684504496081186226356930690671296698126586426934489999315004749052645947502588320214936845863820071651640947759300095565513840184437148522797109064175290191886099544703611362219950340611248538897632150535046408424378970555753849701243985015256695110529981824594961046972802273693708557910119849851275506007628113706670885931677467791136263021877178123388657463782054869757935482534983651399621224637338045295149717922448329941460587350538607152056099667155273145559869292526993390380853458446665081431221448211260433818951658680388357939262567074491041600766931111635522336108470587285522338291129306155183572701623345269491491765926455328972291976828556244585209250559142990341449264765764221242405404262326476553078373653694697192540280771797730950676838404360949740386131732020230113295114786588386290944625591886492536459723042373758183101662045240855771344403136024630892876854484225808568539374529606360223688072427427664554255929998491404002254938075850562707143975201793979804425296938823814584711861061063945828518627484620252263881260100917904778382083509442835449090245105640367436066966949856622964989541314937203899055986513299785484412822648969283981311048137055130328851368143566756628731695113961716300434779084185271950863018939150573317251685959665073819569400916027677432128043329212254720862997178169738807117605609731805727242050865468308537084031974587070159950234615950934732508820615058883579274096316124267207073241141885415162385217332879765623562101171738190559273261461842456188180160104713490359250347637444500775416508792542382438420495601320312913668172151031480948334618499107821520316338563655426364274500662192192102400795658444397473864089659546219843391502189092655792497454163347089657816447919031099060992656856686181692503742107942614158257181203542413906819038827736045404972760505946433091096753931285713676652904972063285072133986582309834936455490122206004007697002646659722892142869355217362851011532564812588521478017939166600251461680106405321728286556898056293675095864620929475491116452723131139968887889315978081266203027417573167111000388592723932715431219600053396869326169627587946644456020721767776671460591232939653636293356090053803488533210193742592819852053831684607452757799533973425249644305941321666143117175748215203773017370123997473319894312727844723160797975436878104232749433392576120922868739500000920583702436679702894212051504580241520472045902514748445354446294224230660122737927617965380026588450636667106602486954433444026580951782933539570841260087324025980533683496061230898859417330372254959362873850434926251667166077064296222817743626863192390400349847008418047277395281452172940860600624735351841742470399457757338521338468418986211464576612577204160346854809607375669346985526688971281685775101148940315407306374424134354372528585587294267699095744127149981237809111215972711663912598240100321434168834291682252913344836504562250969303238473585606748492828797278489176219571828764993139989810096596524540392618337239048694488314789919642588624897204000068583367600369651655566703083909025227484583133446028979421474311918714554026257244974202181301211669328143968405261261344368514659933805175357629628593726602156626512132397014147925533898397903014626058988441026914221984384790935435152907867081545593291562442618961212802560647597284549998640867316895876904952354304718509590707010677270029579891163821960404371454381355798715206849936720052308318263299217141578021325818112447286073517572829663157092672000475508518103925322072142994912859915061729950878144630761469747506693452243477613337015797384187253239570000693876632318948034704352056843897566461121808014741088541880941898636826476170460867394813105849623536044198830232686729433936710496882481754492314594060238338056501867927890743209762423517378935559599120530713391242973994788474147715127612977556211872574155553914143050329715004998835934267738034077445949085833878912554277873218906697984851379139779817499641559633496037063450778038042941018296646246927471302962164282318643570780689128399793632751878809527801713144168512073124837874811045374745007676276519248979197801683931732118144798434422248669939945914006685272701676314040088959298216637492923952728566504590586296216964399359737384095865204904887132070020202926213057003078438678354140800240360390308645622458926182277651756289615308673657618519403215118547656586929318233000133524670587329841926541100014902263371011011006555637947623725783787136234352478414198178137602348749830371185012355890619675391907705189248483975397907605788242400468730466776844999450773567718834158307791917465060864337191845027832734718986509115650561521965366010476806331676086526437798021694920294809790314658746516180741083831155051053276526179393791268182660230609233908855840083515524648291894543916816874846531742604493930946988736782419803096909592743881759508914133273020148280970897661761080823400806925630150690094918355951295447201175504050155927303741047097504680134304927485389282376349053124022628409151215540193815895572701173983167781031894509216603122368694447193215553044191820852384132174940643655309557482895983103172694409186423037067500750616701188074199235680960433525887804971240920619259570667574017497990078116051641298906118528788933686686256396114638131183555509924989309748399972070024794832831464219065397812345672938393289160163973915406730282982268632474316949382998716654485183764359251954993485414155613042728000241447696895148360813667766299875662931269951771516003630011743449811684415574935870082431771825570183484371071508845103715398067085781441616228657739318258343418313825755992593458604152632765024147950297006812428473120770884147201169904434016203137591759786249931906567676119953622841321238324910760710582593001681590517319515757164184387124588922994502130986834551425963446245675206968081472827412887500416244059579640906650399989709557336406113171341399448088102948058406555453634149315616377962569343004364602580853574352498560672746832534459610002943599898925915321067383020604012194819269565430314907517903364184988641295461441055739318458568417848833835340657683153811624324572003692945589884268705765048086982295375702516796063315096810787571709426232339644742298607162906375491460938699567670824088255603167041001853128218492964315145796876807924858975465150923422701751121770101282968975624025455537590708730308791209438427078708756825868539985226375212168916597403967024387078131031854258815987035691455878627212811476164465816841059732424792928439989730693849585459603149408710106854146321965069934653402493841491633679322625418057104347099487631721429788912443228442556158646975033729923912800122952323369458344133521753812831759321943120931772102369651577387612749594747708687129244291144534597330862615442317316842809613899462275128325526294179515661453698751138870556843950541038604138592335575586332395579781262868679753384752423855475191269721303459474428152668865430480229221347756781289291765368577583477372799290165050942598658363275503716923631834172952439790153791088167313841542786052879167548793670780403752384932049344245362214084917068601692937297440596612462295582536828847903690605535760217243512994479401528984657903548630448500226020731434036974428375254669805977227056767905989601691908018806740666869103697251369160442046478489130081374390601426109882778885806457765695386616654465318984573647129451131668558483103769363480515873654616859324889904007070687898644524583586229061742311376981397295544528801657309084269892412777653646994674327233902164020749568478038838144116992942752796765484989833655592947808382352950931739607892388203620371803262240035154491473265844947653326948417666167191080426283897092472662331307348672988852791404104204191706593411380479136688821997976278974376416893697543450409423201700096236490246450952008495183767985482076622292502501938808190078964037336544537209681865585959222707720130416232484569710816272741138078890670511150028844266801399336136015122049577275691498137361124343229621405608537770805548208915774737963133731080299602643557069644024615819606636833586980133708941346539792622917323129803797226237793320712563660242357768053780946337927379208791804438825133979731379736437909257688902891945076326036066165144958640628843633023427876614058349648706162503842497897712299472754741416478801106274212357989178993746931278333625878890079222290852304009199410420446019581667350545618708422958475652192619669488829844801348557572708948455381515337573255443016289926498601376017763293655398285149828635749448166159838075606225730997758285237394634816506150249567014504466198036046626413498821578884173022778521007044264742721081737565809141909527964915239389927253333181188073790805156183903542363985285261048626049362625370479050448867294963347234009250316108577373795402439930258322681594930668952102314842251953147411215971894576606790244484239742037967659516905417897679931774881067540693088198593750077564578850598871428588717731423989094599101510643226452124998909782268674732043915211280955481073899969107200232860731815534334548467909474753836255242407917041006548769587225051098105702256580616410517349219150591876407977400824082671319148850372460965225968741325270318823219481857266475152192631590848412315220808558952126247721345270640395695251902716763934747803156107877887710904244267554235125461397223484879825582887678063632760478509485270883064383675198924056716596872292388447807929620301784139024680334821609887349392403192908684265916889584576070917775662701636220874402637488817590266792519134155906960420781605075371518165190062705662177856052395912646267773085489543724331003088308696837331033735168503475768210881160618011273346326190706438126633132163490125683410834611223487276479377427819646668225929521047110437672288473701352551039823142746344467363165970892806862537184845017812628592457991775553717938307409551788209186462737982991543107768665665006427196178812393577087172103858555986673000442705675225552737201218533089294581071881454765222754941897390919474766072542931646218708519142293240612370630459341519075349248788500911562129434560497718385940741793396195176529448771017411184103570689072564801371836683390522386901921092659358730499760316500602387098667637361214057079727737653254247661324424128069867950965988336071759485870572319842035387286174177796045489218816637461944123962732091837180525883195208115371607578242844909558385632251216807585330352183727453620759787581456886521079035198040330629171643875671026645006316814069048725122015958330221127410455812181971005650157510862311485173307277495466435928288319371639897031272295166369512621764117721547149581259587363233444898827458645008964522542975764578323419904495527357296076226133928488950172286017979462252231148547827696174218712434171217112384104963974701367437747633991208110550255351585944881008773438600801318128063815152638109023268084882872013563410918649031028114068429252620195647913340952845285344604990658442956032830235381958080294884095931828940135431029491504996076558395570558717675412154378423009645728532042199098393803151419764957659294283128040677442977173570801049870942311608121995486703635212327970601048520874653684732612828546266755195100611883239637063185225739982639277635942186283782836756099891614816338711674217883805635511743403656156380218363606962390120643915717131703228983684691608462372680755271899310697606834526998976536087736659905975237144217537964563403201571599133875120040689070671682751364285158936243255926861093075415273387981357953566492475248055658653643271678744339570463524942598207879499391620869976682174455436203166390703188417175681212912190420513736411534188043335567912622353206309503562851272422727749306764834061970671070600011089482906698462545547560708106188586556071520966249652641592089849049323058011303307706286790012616753841016139192262965011145868112929515180709142441239285766641832772137991618048849219516981690391020815494423602531549626369545292998516622117979078762703738264067307795767857526287680396858568503961879084054099045285492073340405006740961354598575780130248167635562738409299020700389956328395121351336052075518789573951517197550559860045254803148741298977494833157196042521564101460038305470864967353422916963536691756867077146688299817679495652975381799271311555437524851136304507771820505690233633273013465701458756387929593515467380838992262158999146547400582231181731753191077421936048547048790663860151740689024416854439826151298410657970739072573648761208727527268825146564142512969415210982068874281782247711293101456697524826564042861610281010485826965205129703978869714801089510663935459194443714757481968286932124707605402750678129253602719096073385260251332451126307879505234260611149408650903079143856267102899313605158253902431513892745490287433624341289841078456365127051280929604019390486700856057477538178969830691347344834732811070221424323706101585673391298551734752532317530704875379213475220244610844119421350346891352703120848852593119924401296261043312631631201490038987409173815581614593355984602479286437085090693383455937838174011546328207327765116233840863379373293769400898198644437760825473907133493659177016759455464867553844288686517826350888033183447635276870796185757171030480459689299728258418368628600411779958652803044487792514181940616758273235271932941428501328014717645320435293327192484602854542514375794889384236601471464536200451342777482868297229349350580585517081231747874488093784188152646923547798786868973893898304580920254044126567694688287823228593831493196290110595619541275910547338399666364898134555214666027065298178316882705767642550278371670388209699198660345905465760356766521189204160943220727283989251290382324814778265271018133559638246046135751186545390139972806107878715360046717293915818289199715628569566075535526049561960954169512015164018060377747313687767702232435049947565223042050567811044018875827636680229882098574639018593743473240459431152967454086408643144640433140534133006485849050057107383608489396577665325946637648282523721153283904674378507773201712449598394526638280446429829516842635129639577314509097728151858632398395916739435535398172628811068662932948320170338910816906427904885701081344227753977108905699715878719759289932910385902607859638193477399138176507889807620616189649193143140612555005023819335306217642925895224021684665301799218921189247038597557406425086035703498301502015918184671788236869847293714496147582756035119732149697773360652690760049297677984317048151677397614110697516394677743485396476714406625199700798460940817285649135335804926225265596366967941787379392786151450078587211193654967383091639533707030271362620689231412497376382482820573941028917967590456535270887858192734294210984587286198978019912710379205820376594433803154542218582448771054505370022799841087112053931309499074509597536443619419277635365934224045864562654506906216158228246540431351694701968486980470795131093387560031081517822147857875791152405910709805839549434492951432554984938262975146816342698514255767923840620949115720166272424408049833561575770496295962107977703845516783624366156397135154582836351520233127127836657499572103197902721714383728826711535666299000069871073769440618386849911486350248498578226625045851577556869928253118071432932480872179231948845533158761523455501910288455625906279282943425439231738738972203591705347705818925345335973794527380070744917646970050354114575153904937065574322354516282178612040540386515161594135272423411504794713271099146530972699077313149086344745524501907157446974666396223481604659543739551833937114795461196830305067809317875462448725878759577555892731203978091105987475333318130748226049850461258231100381081561518936612077992110026454353511444813359345711101957464865737350322088035651371458905073922570629425596427996670340129380916522481839738677935739539466586027306058702619977496082613143298914204973321825297302578594985576389093569311576401523648274496929429004368163240884965008724896730017455624294116422548145286161716603435948331509485807301168369523460759368588149080573409367240663147763128763864524418811305526595210648198341546550119645751162019307864113240762865508889445791832214355913291244980102155938551317339765390614583939136284414369378272831453143683729678029405418540561412337605641222109175175856087112507142985728258767937120136328838120886856932066385523299398507457146060705267094771135955895696885227604834853600627754880782420393019285998246936358442487319034841043940182289519700687845234641396927292885162143057724037995900598913264694243102894994764541031224112046040963811700483973294882691273566157264400244066555024514199866874371083482520188441787504321022126432968933172277576700225557098189444167168147304650705150087924124355562333055902897551106567803155180190345684627039808321358691420797882645471588229328549408457972108961768046122384826783565485170808815771700084198488739272414191624198499683150111088054092810079762649970141190907965936744487279004223499951779824017116606302553310681320757470842089630300624743796387620765961202635561718360630250890796732180431753396341812284907090237746473024447929925926451130551340370368660920349683833703797842248634442926691661235342710039825061989120085618606476432153258025079375657610007816251588200516728727430461422430338117859016604306205789406263847025952287544974240315889020087821775903137838627886850249040253284417379014728832959714718600660204003389092221292763339533548902349669871802625154317669665782432293809624527495432674329672878256331720070025123065426640919160365048669980144924738363126540012339283636973021802710820176072868524071519150496795681253419308005324005311800999045798635125557008548850234845471773775952946868215359073143644326241033460116485183121841909450274369030521241386726207698753477137372362270057927858176085043072173284934021441848994621868601473830797486057419517661023346806848176965195966303028182455087659371805289259321685206583604261089595565353982620649140197179783201186870442375476659164098591278710555625034702910944213906230324647409924842988293151466252964843594255264518939279135355141623417939981343307716326668241722613945072940733860597908191491397527081695657402093039299741654629452879789394755302274448088725982351346076607804403457143811215694399489441632195778852814069175383838909199286801468093892878067725425494934789118526476125295545080069874698062768760953987007615982179077630651159184665696979080766996422492672785537948263237487450936885256690602939291896759269820743195288782246941696257677764599520587444347235762552399946827398147561874398092151337690497065016751030038232351974003050407075768928084157427345402260651136531480652067626032230283289525712521862978469968268190114226929146878794856726688492042291095800285671361143209254897002605128511280505908606915970036890196930801455642243456244527048298894326129446464828325832341557596754927634450743587216076058225799570934981051437894620188025945600520172673817373746617941181211819340633294557721206171546858625769026150054681556683114593771811356416220899964533783682449003664623856454063168999669295803105449868784613714964858994632092343681826020388376022020760224673363060876811490027566535697763745209409954049211227858752553340423877602178620620196426896082790945175433186271662808876810935170793681699932514360803566430056169660739504027455332445045841386929376127480473672627211658944067551950084517747292853968109139927031172970956494308034240160148605599296127636084173321645213468681029523252529697153530547636425029241642755685781966625845121843077087509716100380027605053294791233526580235769679217651338958862874003926357448305062652978282567275733650841724444700180425399917781358256525673149671800020555736472564166163440137368708366853894200996795736060543086047506447588809632129586154531326537218501844756757395652637714261645949580694295382511683364878129301211962990376923864574643575922369291815608939399231629970084024765046940486460337661412656469414438116625695546836018231230957548620274568674706787632987412699912806869842012053947140538378568327100312366769908502955696029168946977261079142610315842088338835117076607108706878526044675427679831045603590312098984016404116503349643018310711878205198651502943969321417831345801540239121821957145236136027277172003701651528511124757261466423883150583981676256194308883058815333504181220637752856039831247174200655266818255483618443633044457223676834699765699612309003328323521978060585852560345015556162344990536060005951174732043843582985371243772033729564353909248562898495005791968241695963222494705708622465971344042594163410243752174604510996590625609099252027004802192922253401581743277032127361070114459149527496757935259935040304656925690879263399159342723212092479838476814563310692390095646456825712955154208317976110122908042519866255204790881239881993213449079186211027337321080470249556205012689649362182295652797254449203105556270643785198996296858848626110432621479674910444358294652519048012622315368384640328871390764061834805849583114830898559732630009850508623738892023431614602120803577442665432051872708568789870469984541159971614166890680128158786542919859959213244051648507947976265209273031660239723521605656615814027774849891022099560438326021002807589573512385421797347722913148637691180773418184240872863951079462209108206920665124166519410397669917679473915535969443563160916217242704915608262623982797366637801025563183142248304721111060462781113375596055980837826386945515147772596719346742752513453987168598243559884511684796122210844807730687148798199045887493744686258287982010850690564550415258623657277104042140234265533128513647193209799818493630206900837433220658750702348358762117303718877730093520766751934071616128607590135516741904734081335997803313302982799187009251187420022869370671316660585395081496091560313448844760113444479186942170546900208733586384173667002515695636852196259907224624516112335595166609033154562959127226835172707745153443853877809212069706294339757427019222271349880354331585649148742424476597128519947129777126047874503373641073721283053466078151652616243605717237402376018780951468291073999565808647843009634488144979578240687449016505469327400350734552598454608909179459601511984001461167067318582995835750695220924105477797762229789318239804839810034900307585473602994593991709945104520810655618017244295905067102114447417986217367029986154661390931849078997607171133051848985833679928780924929714485022808663183144460212839893597439829816557903410874532347360739233196172568604532335224888697318873055129566059161958811286219067677658012119719942931982985642814329618456391898245141350387768669441817048135729978500396232431119082743835411605176274994127074007618401470414712578642008783812473919401437975718789973902144745413209835637263861818860761045944465759753281294528063817433142119632001457009370751645710310808123636047653980443526763640618777512562805854347832830789300434568622234455122869659280114201415512600887004198957689495355844572378210904518900951394599910782682498465422447123172617789487565482037437705133264358490659350685083248920335766897811620990150764865331512941275591631472282408025288083527708504521744224456270776473932783896880605154278251670680459955278384699767417155867581518552462907294880030166066659978776470600347346940091687032442178783978929745900880985084683754246415274287903725133879465856920776040387036868513905374728883207996111039402191934975447364028680650441697409400067758278510304172100182333886009789768760895229198688870684655606921342949589491634914412279248281448889891633187374881088300958465079499649097201060277348227089150276256641723794195474077551743594736042022464580350046094183337242357694891379018829530740498736917516047624190439687903042243982821654655656608537180244978972616675717307400615325800826215200697173386999175021682540094498822077273600165922661375803085277741951210844140887129258382841544616934996642137472509362147896749922743206201069979905604365086521005102638412913600757464498252158265139273250282706321098078002917147129043529286569878137667165315279483910179326459178855737049099067423260305495440965338741838315062016881715494912451483328967156465776367741595600251428699668014998953683345579909122162117377976144109249036244353510250449096935456791903333837202897765446071567762083757021654438346396006503293360694502767987329468541095846328991911774895732213897527700518125424180036822683816759195035078101598481935575459454567168941926622219272567665197595305623415022761123620367601137029234667420678448769029386257439223879027549751579904566238261639952009025334091748895131706582444776200448820511243612940408684819235903385180147645094694884883882692971965530484351658483421887940340331103490823695310613338710545320338386628325559654955458706210180278332861211726649798106480755194474385500288740053340909292561276285464702708257157386199033078480861798760744836868224998856009693573006860511909559510684866972599079555746708103149841018434053348934348249897182821664819005819975124457325383442501801245597913036148961082968231551202773039847167742913558411749602585262860504370084699859680988546831160262224761599139436332004577341470649150176526307836728289053000956880256684508160015439509626204656336101115297783223032582579523034961324465069807045150534830143526540734197390395953733259568938882476267009506228322103121400901865827086516847682689278754771131653113439753628101789548796862166730543647345969757397260906490195174218810367322313009058828416271803004715121674656992527150128163070438602566450471251224733772843596074100058385640717317060715407753015242819913681828305453503501461309399976839848669155522513134202124536072896033401412678242358530071646145629224197305955038512254064463504184616324300938762805864072655210477904439491449787959536267494508914659612489318309437245210282614375838043762187190176543147866675030339205118332808415523322653558807362108868286508094245676409944912906616183430108559547308804195367240424798403141910604053272138765770640596545372524145852098670313253548552627816502871483474810066847833944933936296452978920674556837055717930126516479994965354304693254429155101709226835588575415169662468270947573413064221545583668144976223810927449470266844591526381335362156221150643124045761710899489431060393336532466417071253278571788472038853222334559339714021797974400270070594227487719728812208295507350442424398944217037367173538884360209032186563741589259324327051926167098594390620487213165202768696889983792256315160237431305000419042188255197554980446145316331725994250561224936114124161706544661667131930992311194336451118629884355007209288752352021171807465502331519895072054980706536660267756650825310090056181007800701188835226936712416932597492435132840833835362947728026227850222711998173290245837058592029867550123880235561184536478665173231775788558525371996047565532030521643945915398334753050955298568174489732791219850625941317147411221482487871068644492127964882298942037314134137095538706225881842185888118467613386215602206427740857811876342120220274213844601548166515794389509105648391099624996279951900163439351784614164205109279585860478075698324363777799764008600677803027598346748959578188112105555465753981843488608204471605541529465212267399513577839570579216725903682407631255129003166460378438964275193810173091364309345208223107113735103649632598551465564753205455440036190120880327073747036647170239700697487212776200175372133020517263563246368689135965419738312215917802302765850415908667447801721559869118809748490153045368549695962680948102377878756065581556565019367407562238168687009654973746146717821343414988752830551741113283749202443820318252216521821663431002535728798164024756129251700658511460204611764079803155967331380757592533344215194863418631861872343001646291487540927548605465248071784209534756464273292379661481003506543831666052966042324273694346063953079124937201248517550639518008296963832528552230455485834577746896762543994171426181543269078538452681517814603564919128718811053370506374711621942993849429834222818396050678531623900142606122416609321811723782891600331687254945493248891378400703941680443883760038000958694436935517159983554111262601965164300681083040551276760017846765261803488748248016858046317669663784162829591032404749472456178539422540996025785692604863077963339428571734387921434921659431475971856940904793816152702039315685959166474585399487955192438491074093353825682924796203459364975211646330464249065258881974391750599470071740341907845481137017525355205980158482317537419025926244049977091423596319344594531146058580113131809950685310376657851845053611854263730902318717690989082566017723991419090720607405244765717607869259050973054266012115735662977208451951508475600329827445748213670745327613615412571044156154070052835010570860474343511092876931260917384159183234636549039153480380039162466277628760826652612751153970210499913427337513126052107728091524541108920693845071537071550338530236741509532970450231202204180628888538668370358961353340716497488902208075668005178021350132463471503505090845407767558344090273073347577376953469807113998080700473090046425346781393830380234686432831865179876569874196729636598748799854896614218700775247253891213684441732150320437858163231406634126211734353028132054994608350627314370771306982237980339952255777734235388446852387374369564713003462493633677335964891145821814776767241772531604599562062072240309511354156625859314996870483156285995778190206105865045707183471628854719148826948789276933280472070882723776745923305508799013624432784076895324831350481526145517203924057989113575364560778955362339437233165333773119355483505727935223026264102661612704440981361197828788380705460674082605460516343485856327735487685842855896971173380305705699299197463900671696177138488701608057548649007298344442755695219453647474650204410442031287279839819973915601157181168410304261519819917044279390428477800048845917058611085673447693990029685806945257838895021640890272010015223464680637951841118984793849529335569109596709227965923853885753543463117709996044020990805487182471815215313978137608875520167242159043189585969158577431021220677591397833539841452948683760258941855810697095502908102023019208993952542866356076931840896589715407171609597248052472933657600064750009242974587255854901841824762287904954057759108477626942463695370797628977682819082496167151017714576893796626091893562673946733414454622020099490773078520598028948372113902789649120176773451339311680141519806275603289641663606743500364630015507720387100704375719957721223511074993253476837502141093948642899417812916767709577163982792147558589061578075861045794795147782093877200345933604372494906604641630357589125264342347067893058456274851103622280779354904723777818290705486086558282643507682151643725440653603338950334541480390500241933180224656194534248442007923915065141491480191969697588437743506218209733303328407907065470387232037366405095738594985163590903633500303917286078876529739537620628479287193350856506020410912692053574025238004085272420219988970846743858979974566949964623012697531915121226901866128483683677447388203971543758303343468299005878970106611116339848329001764394028871602532657705097459879986726086605527652483482102494375657101201610510794763882070750381649455391121821231239853267843714738957186773739092284465948382320864233490762432138397740851519303746989131364537964507959301455829347301064802552559452876473475780506746718600187330369337318675532572491242342169155837288181087804568354510559466020844155563906228934172812763269969825590897342446028487391433796171949415804426869602917358987268328421157788538705922488536025461293269326035045244963845274471343226861060568981885428111179671504315542936339136453173347345770924223175208206962670654579193657079143214976128838998978702724044892795463279773205374041937136411664605705739061856999958430674039678297472070776340073244374016183542705127561740941089095577960724125917583274964001139485092658004803279991225883123941819723899159645715015304911138272637625448863378192381720420013010619162301324608647499323170137463741530920965833538689849809365527235114185538452813959263063868154522131793263653143037476403307868232275616281986918636972374425200030823614622989716888198972424878708480278466711405187645590844694106174277525707727459279412778910130119710509618267154691468672195045462478801389246559262453472855599005607164398596246079640475775418367467224552984433163899958457083217983385551305050649792430092860556278727385087934052627506136707768722790940258756321592314151907909186899139868026420482529965541849950414286811870831055163186885906045782675914570954056925399056273920841322423380928226792199452736685367867006284133901658789758937213440538839887257230464423785749502058739596260100735875245186832874170567248507784769563278322954495683920974249927501281782632452472774162285915419441101455094314817488956531533716682329050946328084379938340948687953102952768880944563883058100505527776207093311576650624903680328594232951046660626899920258257709383635845501041264904955631449661074923833094414100175562495310814826454104733227156989377686240953527373808380765512980941807968466126178055424661916170558551438772805025009684629105025545544901816897817184057211302551535409630921932226644704185027847281670832475379374905642269422653387998542350989134457662336716397184982773506085803205110537332264038598610904307528891476508385294812335205954971686610216837035186998811889558685251760006000426983813673842861160243125836399181049422675836989119738743162904441216468893273343322393181989028499439346229454460177750798995903894628507464448115277348029247862709326257661499382606543989445884357659678517082252035711455863577908625066757553959596800370157448997525479323668646136699067021215182821112356789907819850957320792922295049054771551358376961170670532777256681026622494953322020007211432975792516005442084745051139064351715392545245946513064144299016006540112784980199552526843687070720366201806041560971411715630860168447575015757809155715890268015446769547670152226376851966681719737346869072016702883188766839583049822332629793640990412028662265467640558277776817044091737526477587519455138640260067387531122813862010371850185442474453417171953583630232985000289116768133980773261266990599767623089914624374091038871234414813869164432535798447677577124951585187363772162780348016466376237645248570251890742164200647346434017230570783102762839469466489983282437925571908074326718258813399785425677672625290975844456335113235947847425930471030867312734797255830398082965113098376353517260746087938038297572471602113677919616682577404035835763823121132161541466768676292822552939010851582728784179849845124188545217029298370843202793603851693054043982356994369259124113295285103215102803921284290713149033089604457271752958573841603459298079960526016116386710004540036534268557626243096273854420952749824057802860212360165197158868652638097541996157774712834247722308823783751610667891135178512998884141362487232857152627701421678089459151143208299936764841304377833616099182919116207917355284235797964228304019828147615363817314319153713396539297882449638978694417067078449268941663575522014284385900890657328279261449748583972253401559583114919843554655737608401721799017654108904687623635214928296164275024488519039402141906734648459891159210974059171372923373858032631041832102471393041502963054856411648910771955711172437095823072789926921818614594280321931794778334750060356045564975894041705626864540850796472951511669399410300313575899730676359285121833261367168599618940969578317678579526203374936760331416851805036712839362583617912115220396156274359971635517202069521308545796376204823679588395843528438327582197140002681923510926960219188391118023660581839136257255682993993943364683957144050601330824852316290720666234605951719819672309810261034100921608277730459039980484928278954239297608846577676758138085911442893637689552549555103846387167200616236125120756919453650488669779752144211556220361823776192380066083886281910350727792068858921421358291332893391309657511016753222662133650565902111504349363019907285522098914077647021093824383332599315538464586597248780816358775255789132508881210827392542787673342939957332196208995840312282815040951705489036953782651242808163839635819572837747120086720429823622671935485548173029056527131018022771153384304159973791018196638925132665205137386925994303391551963350267810921911215275864530560365852360908987606882749545842319530721383106906220429930083135890133447178443039926858099505488224807625971422210382424148931360692276019471506132163533851858468210906937467063415202492615437057191693993912294423151050043229272365858259803442493099144343598224737653137366532485800554963548193522540910192132182559562314935957434834100397025367311416209927978099398159642492927638374336460643796519308992612791419560641892210321093588407893590892357511087350681266506316793507885448524381238504366394853792290264260978384695556322887967877902156047275698089987259859526164237036162926708097319952000817861517483220814733275909745027533776956311840195817623466370097817827651341693299984214201911848916296103902934074915195065959810868685775415858093538969418273307749876168972752485552734305039342025345631325633481792047210354348230969392254829082765833530541312274473610901778437032978838894999317737502007415240639090585891105439526632539852360357177622558765475282911689574974209248907736209501038309356741150005236141552570614363424071787707940463977377692850607395750334884062493484246740731553575317816386384050358977464445762003091097710266253773642158302694859392409603648600347042965551481288583141882357209971769688816438064290032773226854275016163831530570265353863189777824567740374837856992569024377721099596367055578276101589159308017400763899309774317876822884331729797278629916299897528527659695558757022441672007930564384683964286643954827020475778335180556274316380887684399154926561185233469516592461131946594635218245964995882537714213174730415942668655384170410349829484044780669087423775209797138801749584649319890825909432866445386191021113136467004995169455420447376568549769240823344561990713299225180959593080023169583740068992032675056545770644841043454474493523938076361094455807394130391422406866995277405132888374631199420303982489019480067545433282488741129199513134696398535556559883415102684330862343607350150478006949448911202332053654992916830339545443103508904968374771289654040971380425254226851863260824254031907690140913458773324036411191142390002683919306244125279392107440610582202125487520770537689876797773091072135839276157329931432642284877538758374598933111805442478544926126409316334952282465826997004523577033255131539952769494280366955403323637141514822183481778960594479410255647305592522542057735520874333506558673475300439524387088866482987980930687534970749995076363185099892526389984853754581544756537007291441184667037941695916295989776879918625171936219348186331088735145757863224815452342338953066102859992442423962417295646519441888622442407080420244477082961992572475499024439897974945557319567304234387897564556406739302370854610612749367493625175483498907491599208740002897966082310683349968329999036135123394828768876255336053195663888890185232072168494582314198108855085466271138851155114434153694730277099935834220365124852548089287650015784435123278630530953141803394603144815165492773451110781592783734561445633406560747628836277627978075087754065999238232941911001011388301842175900218437190291686120793554378345169658871812612121992128176612254932168151692673450790824037169294832780597083444047168770540976740398023518061330235827693684484050998579750630616737562948229778282188828868563383266007054798713809973608545528533265953297814078111720546015691237030551118483054851761034655610031614885272406429689125550913242825627133832529470573339094198219943553249891186698665947319030132850675013497511750015023319709651622168904794349139769626424611820250604224057834883327099823606275526414290384121922125954272421934102787828659830690706904709733124016045954062293802734818442196180276445669395811307514208241068637979433528029052360491284138773194299955682969603701860976225394501540149589961361345619637716500233858009032084072220656179776533357559156722856829069295931018243223435464107999763172002923140214336751549368659114905880768878381214690873916916650915944704028539898386388072197965050184297547261443833104176594106317840453692679927997477102009813727455657406612512200504036843558209237412895557424897719363175263585081970722403955230300365934659244695599958400118544187752136000826985375463364821111969450006315095496894824868612372964951213223785881507913628744233228334040020935003840552546578446507085388100917687121503393193952256785940650337799435337947222610317669939109973227365393876994100454206127668031031469369573076666168429430856455284792875163807859909966554446501327277246061195614333961380878800291874491050192629510079176113002529403333923520092930019071344956899610533131893376556114215849835465189582746376911770297101304920052794389269109027231963964922616500737375775852772596265778833331918773881904722796166165532309559891839956432293237628532230714604310930993202099245656422166050549054862470664829795714711403337184465062142926020260199614183120102749872822603308790432632352985771887554176680073853067018590472101091684635863030039902026336852555976742778975357309518661555538928988249760694148146718627302924898081626159099676367293834307715999902710512169861193867970173865118153778611954471051314407060576340548975536972883902280033496447792451193596596434908870756223544354089308841223638915193522291299894460440701837165668341284310112137740495267454700247660836913284635379020583090858024362980095001754002331597194342245709052151457022258595372827470394337185711261001487044799971144149542987207064648390601997303190943911822324606195067749226900677286437589354779492368337482980049310805645899577002807173630615865247653235997561239818309785859348277266233795657381894583472341483506409037974415700673459390115673699522807402787929595402514842297345565542162532206977312675498824238821245178421749239676727877483507686819317234313710752521975448195365792681648428021296606474638354176867797348324731522781990903135077946854787387504549974647975274506354662138197479211031031933643351487127162634970028126412925332101057946748908886184028538455393765906971747654314584135294378465418540676916241986095361328090383269975576356459028070697908543995570396188584194820354528926389867204809436474422934091116482274879634045645077130518476089308538420184383043643727500969923428543119817387709409179660286106479973342351980314369320515148120642605972612432359082391776403895369165100821258059903634448136808332372945351968077473635865207272726826950166338763938057898020634914347906268905810984377383004884582893923900191102547092486101507981779902329217772454833715156525246779716216649796715186451362894490324704201615174432430484606671662735028818403704899831380501373058719171081527277407054366836129910340533900793495902586175658809128412671524338641040247414638457253865204544340656050726630577377373728909235563194549590878529731138327672344640838404386229978411845494784760069723464045266475273222934651155161252218739473060746805948761793419741650947228749413563038351432781912799910235564732414118245174169742957195736952840162798567480297740704714962600093106076916276911293800619369475967600178101514525333665516646267877699277547153516689571921691684395855583491517550923770859466852469960986764203964401331144503032951019470257028407818408991327913565640202417452043711041508221519286470168061585336935032771452802214042994227321797313283221475781881795357425181388701927941167930161540089662238603225954534745361015545734459603722806800882428057863733471522992022716962658331418708690943535460446180028280214305941371299993438174703423025317853505606862653895254050881369750950240357295809292367675735932798499156594395343693466657727850937319494902883057633146891949341240157397760963729112719595264706279682613578987112716864971687023818992798016956976600855499490156909679066823243982424341238281955198579369432498610553960603144994318992594807886792639409033295139641565553916021264692426237888493126698469343636256196366538814346401307717259136738405833075176026144578111327156379561614417513297627563441005726208681826575053654438900291404196717498213454984206384903886226162659689139293061105553336376816980649951915339659272299753415049282189947361272879565229747759786124483844739886627347696620225489694550131808095342675910170117594483650439556281429674940723101315602299635200127953156946932728279758464196491794564505708403441427790276347210433970653500825080742520157875426228701540707993524800155908643517851579950682470196604304213598519030499820684550787993641810846432403375839672247312031170825921204547323715853500007290293861386717128776905796103752854210415846203502521393381541425429323242004828063682105250679438890537696466331156087807215405569542398574119453779836009856777246748469038358432123316049806388824671505050250338294094606378720589270735817346970712249128957115890339800372210530215058988123674239719452725179803296779806758299384999406235941941863883753335116521451785271410778405309364836644143599540660155616946086848023760730301321720658345763239270836818897671376655629314614536581614363673104278218974433653645729069138956057414895405327513114039061769839068058424142683917325843015203982562082732548221424239363600575502812963277309321704890013828054376344566551025198667904458388142551635366790282759844579364444779735321062736798148611679926559492453015553421318959031376159089943698295859037746508338496399031658265794166657268852191563999987751728953906784695827210805547373611348060286911747566657932011064171886618379562951826027397207812948089503093811373086736864300863999418901563512179578295049534257258592150545904596884781512550340598038466334208796338114253713992792701806071500896160596703853830553127151424992220634996407843184053390910638266054494949135031621896501567630857621351102186902255544279230184315327356005809270745257518510481865929165244192449246204638198964251861218449525268638446242262446601225996900078863449449552659384330987855902801506579862577281301575933331852226836154242745278275201144124451202606993842603350428511467017186780652342681544174757284608621048056259423032023445382630128300226250203522576008193354520005765200632235736756969136264914129756341236909818979154436573911469255961653290155412771485479195254012149302105153610747899120357861284101734167994726869127398414009547672017408252629869437588024830941514072913989815852103823411277521973771851439485645369571659075101469427934666900968816377509364530780984859867124591852935419967947541428217701499126617077519156221380081450518190119920983136308490124576786986423380239718992762093409528833829536726008042064768090738615348041078895110118848968530687338089483590989304250269768603337864540190451020738760095174763128542555013529216508196644835090673251352240248381168859772169435692054560170746671035644294735281616067283907822706977727271399911988887711761479267922627937451988590670788970957514672887210889663805511700869160692590921071590449644508473056742758365425935893620592928874949066242754078188244360812809424526292196613354326257327050508329962754138847616001458454776306887784689288126398405684037935623158402099280583753220297966342263574758344352220418797892149259379280718390473759387258991002238561657600477972159315922206578264058776392126847873646516315088328241967835400497420118838260834837186444431304219599268743120620989841001661416100934483518003695610417216106962799093818928742784927837786851526642881016456581664940732309980382377164714261095576059417506969431545270958193706204886432723515000204576435429068753544172941874465412080466557034284313311433756066051251553143295632092328570273611127375596911395247823362817113302216698409023612164802679388138639952712349746747087025663825333496747469586920134770667866240394319918209433933030098828359398946652467562415898007710438844685095988383247723185837252670545420431983280022780781407913772793852228099726061024057530208358065300616836528063691496316765061291857612246407488917362538322164127217509803466080810535373487111704486279483536133063712633290034225204679985683803499804651579394711603648478530248020986260684055335465707968067128677206610551283875928351887310424152510010664581172048799170366616840153957183019354621701970135391129271613670197711310580862028256838878451146274801305625036066647162941208245767402237253785486221334720245534920872984999866431480313689046887783510217861745584312631249565995274417391091899585610689352367449376244535377502878270589856249126511019935482017823505184398549460662932290297735960293892947552174317538453399670714351574142752151587464017308307907844561163496512513591300879444165492972962456135168961141405799150880789643015476841394772817130311110100404467662284863974889316754194518449305658504782667738629840573936094422490168776389138905302253943041366170494665978240511115124093464520948164705660979536490264426081814682695536609914355549479901775447246091914479202688535421689148066141812767284717656392233263191256815493152246014951127099992826862318641860348617947822765321768797857867449334387099522020978751513645010990547632394060482427189138856987337578916421235486725667259925949994684872230849341381263158880363065403576969349826008079900418021759754333697784322725314263597253784717812943692386054156194623740216667630188572588188269481911124184646804572566089019417647634925661376990945244541194356791830612132837129429865024345870670264870831252284463327506435589304018095644660219486461484226296234466239020968732881912057795410194507366863298631759874671835828926761495363668260065567323821053139776809681128125605915259592429743265357578142088592540786837048434131053481840013335754883436069393206039603648764803537797897926769166705719712859795450639397342560327739823270033780767983139650463997555041272134685752115384782854308881262739517413093667010757556727817888107962892886481480641574282705324932026617326951186669821042257050587888327832986237532254334307612631238676975851912567486283656749945713157635003868825544497989163573010421201387088250281621448237532754940294427179742505748485265714425937170977387614633871044008625355008610641298910641656534098360844602410094520396230150304918397580298895525324345868083592251774662018948198565654589134740191233905670255132365433198511733015982926387597269167364724230077221123423452880683976046115320501730549280723319969912736369083266037209706671677259140744686387322368217007167867855489747652529667353764748900941507586125246430407617936980871761344417657022460033046718011791558314267122893201843224837243267890797785829902604182790882789878427760767779779468392560973720729444910545513769526884694319996194954950096536119646430009896435048935952978936672480272372263621428717018806920010168873999441227890534969344507252569122497256197701657821223423397707953517972936566815257156010312669715736369868586420193926718172537798758433700659727353824301143485865164889085823316523812451409329068748739985801895736162865552094393468826482137316773157674992554796823832741026268112126999383668858380686261302556246861308623866046068343727211444389443652669775419075360173467537348192291103766308177616369593936789479806343512931605171062390552882864871017518013739553145418974482510635153891535012748190412549871577291787594104356974653684076554106614506277167983495935160379159344385520596291331762503460062208561915155899607417752891200122805603505446052925981287374198984348206819244284959917110286303560241142654357804313521169210327227060675643834346820543409506887014426072768163409773682121903497426369730311865998104910076680997802398153309583441506649409306238916114333289897646757806968626122454588566164424651682094873055706897570525455936233784582608195578391162284416556751940106475935392280197187176443207678454334995559530447277243447093342551771755936238880309502056928752901375056913150751676366387789361695058279137363293895044471483281164735761731489322145634715861554578317723292739132281664610556858877049117205756157155657946179934076837526290543773833056560277141822985253516668487243194564500246368946400935763064127458786223881074234138044916410125525589271452195647769289015401222536384859116622557856482129248736291808888769597342512262388343250951527786632079377253701440893834747304663196350478039044021700345346634532500208186468611523445145919736619922538590833513621609784845562906323438682529323696267073017215772127825490717599972179965527221708876735383292776444447987736937156754528963814805790594540100473556956635437410158837146340129060278410642694079271650258061138633435025652041792681212984945187166171383046689821779938088244541547021866645178299019878769132545036732658566286801894169019402125486150185984773125384190454762305476426683877991034886398985324787330203383180359769097101179900498231639660843982237879467564292217149325795599964134425939471434969327869929072432034370654661089252728484378002932983001597687305821611235831588477352420194179500767410914294892182182501447803192010088386126098725574938808413140501442836981114582202303493420007681216001705794523634971440056303504256162597589857327513251604716759295956412578995831862417593184954239446863084297257452407128069321975482044023415751271802284332064634006030967362280787316195050993733309387275867562613763602087140246077842173229156716977205157691154838431980917306005052281180176374096457538921854872586250917951771135371505616651913932596853887381511423178420224828280033678325044995153111640497561694651232892035284439120474508430596690105732550365950427744449595519382527168117985637570558626117026411865600449349485819156751834155994534437252674040726864427183646923710403157478720203140824303831204121726518018838744834594074098890525220647935128183684947705242820563176069218017190639665558965548748993586886534152481771219067456540819592923620991604858396793700252089621354650251668033529842911445523127573178426317190557319715701662562600714949966922220717876740888251629143147188859326827605227468841454417506059758404793237145241569931067109507994679558514516484713331176099697882285134650485118889671465170623977243000043374065239500566138096275719737887338310915576536672120597923019537176553623743841318951841810704341208343442352884331300306774070728967881889621119078815248723112661840693915229946718276625532144512442728237454309123472827486410898409608786594423632377963774533099814871299858136235502826270418684824344674795802262074724027032754228643677566875634509314037726777395637795412036955400622799474498546268888465966387624357250266402187141540904147934790091751984597339973357440484686984161288148920607474236839024262501354111625753572768629156680803236528818125847367559841751347061394734491316944457962709039619341968904563057211223621599306457541280004994313134523830997840323385358970783410006043111559213510621614667185102688274570881241579638557901981439046831306973140649780638044152415174650636933484977200607452747999893310547959139018186639793169020944461888890006432200875763175667782075294976211612189581585689113070459111573129674798924394141845983663119639042898586808332229727646067745301945723002457128761218699547952635811027227589396532657425310898272210230799139139272133551821270093188026132645859950148590015064112055468621326312907499486697189841564293971842979742226663695201706333524032007537025227751074883838202447859517313449681226694274016031261899122329966991113672821456338687004795273127629293047412276048538246230062811080850500904534707979842342148966436755653975793966742086047537927078249229648123588413468052165966811892280442473827654121055468079940464155931954514380578537434774815008790477217338043070741679387996956116757298238340424558070511588996183983921016491774890652853470413937092414354572131435031292082816972690311394450815923936646742312191836699548189972626775790293317520418868100233041765904607801283630865102444241194983459085723613187615267007999303730001454700919950478250091444473106122862098191369599730079221146569673665114077849500981683364203086399998113452705108005532004142495358085525930931427708818282265500696254063584776384769188990003375932048557687057948310384316100107328707917480494879893658858493850487690657720562188183409786306185805081400339555185542799367911263437292389497447077925657857420711968278393136306776068327619348642113137928960104153229419389093334963902194778153465581055381791298029817488662997536628079299250897371163377875527084893790794446281359409927358918869203554823855192478300629404474761092853358765610288892385135191208513841439457741342315456334459399108411659406170224007359719238685584796116340635085020582308699172499641172385317127125709887877605411004408201809498480068226703042904607979843886787741080432482380574706088447488708264401978586806612916765652045603753296552425160149641015501291019109559513158191562286746985864934135806289550444967409001297542625803113213047423413821610918320391923360303161594756265274615051849635147758369317949073079053039835810709454020949391232830567168675847330226177675309763544632068622103856672201976277912153659039085964756082671501107368194198972730277008855777557818269008474713916486355360405997769300733926543966830791048956476036635094915609225257581105523218033470330502842580238856749682513034798642009547721274689051061594110683374114420867192840965075235387904073645877525568192367773603267025153533741377158429371777667248235605191085914932409831644407502983581817792384821617584317238170974891514875893140352681860604818900968476210045698351058204115692567092240177650805207625674325922308136889849278750235239844507749432301406983516397933589111850015575434124266209213913445961544998954515589442403433834707661372948270246733922808214399749633739094299499857877208403752495804539493051767305005936081549137530890436018600724500304698410245944858361587402584263116525656922555392106022170073285436416125085082496586643788241561267514144328466623470391405681846230017447358712766495157955890681391588066584021975365963931884354891393918318920430210823614689100388811492957673927358321320108026917971933325773329854894102241653630760026188515014943361456202001737722322273699919221287814810890987158652929461005844428276856282218010260562015760071647762949698578191753188460637570596150515447496513798855910743300345198722687515691037205605878031017782787804161327069825119349871555856742787255834471755930084834272443530459517139372171578276156184138779281527081215507355692548089456920924068493926616576280554063696019064777964202707858055852308261081328678841234858595287439405481885940974367797959908752407866844499205941656579080724661901524206324483245263351829972721918546311831147405281468363257602216441801563647608609855847280835413705484907912422320224207488591105173634118223220482814807560043761788715461831439686510953681576408202221012513978235215903417348601598393837628248122855376883262268089193792267025025905116677144953316513947746420471812864259025040537373413321737512626250846224887979225471938878191008890170755468014457593967938494817072425574089451072009398318231389732305764549099830942045993284461913785723849791534762334713873677247587103530897576306361989352789231867724768285659130193020132196630716882949349392037721897900829988645111252283961676921988853812995494495486132046554066762032643491683880800479237223262727816308567199810615682579690406537794130921000159936097034506344008219790333848923157514721062511537535951578818131605715721952487477129697916948746680198872999234738164063127260361171380685634851052335966580266900786271055654819357983020741289755570310977093021514877039226399690747134951444589736822960998284857391247204531339005848228890422580004821694116417830945208566522407178133849329184110950121745595388943364322072209475525870833924586441377761353027725909055185254887458176512411310494957922465492791887785147592467294193546916362198412108322198168812576247795730035964259542406921110013780364900631786367516011594089959276555213537193900095001484092851285116252624805260502650004297194775834688815468352683520333611297857197739720374473453024055270479742208855063744967360089601967515396872563089258039872521371596035551108135674666238082612092401504111156532083077154796703063353090303257319846753279197804514000297897829878650346582326070731483400023636719127992585787775583780849917717512870610178938831476059182276033341342959426488322300156563828934879841408754066626538181842951891473597556475561288857824033673571955718461361224896991018034499318936079068637509432528515897355795020799483204575032856907126418573658264492262966937495495194918323380560302269525432102613103145737775556628162496948187645464928592286026904494792629089742959774439945189792552105497586680813139634701164506816611276572005672054028602445122674252802029208261993789779961380994185846858860317448277087816874798596777910337666970999128718384087408009074747429749057562672551941271068946821433494886492039052967463717808202003208625630924877208240364088911386448725017552360510646726559805835321481937005000152692785855483565557213520830445676452470550428972581418297783765487735630167727691433284934710784814352038509525775721330595957097472260759440960517132217281516457173532129587173751119983840713322892272491143266020131550415284012087672072884604880664320236807667189980755891375815266588650921228972583164261706353893377643189024338394885839181595543692563750131628176891970386804550643873701522550784430291901982145621570962005031599471832154494632713279401779895166814576530975681501740814367004777205369487472873203417219792510672316546850594115797602985313607806351021421033028477666837106262681828068143726457106029690262029089779921483694503036028480216313742202304105464452414400072900610304615249061277473444282232623622900567425186165925559493111277789906478224607822918019268877805247919445399372860234928982866607927834216102602776071545234974564098604533138870290362697039943224227386568917469208083854708741058854826887401125424885625935440095569286899308118470465135917081877102636241508563217684377578053286976188329334947735696211087065337410541710574827087812874314452745331867202408826481832806124860069460163921055820380813932607126542294165097292000592516086610333658121308485675992327206174623552783993401758746043057778749294377592446129812450313063348455047337147425868021380080494107101498676007509511379027105302340946460633201218376662985168534257477310746063104426961831745704245863263196202107868234317453148431937343038262117833571967031861143374570604347450045609854158219056153703603900878346432842760828769706641531147330022587805706899464266050002767573804192701766815192089238773994013707572867566938301260333981852064022084497665163489606992378348257283484678274646399586193531185869854734115309947331605523432558038506426760800634795298745593574072479864076465320203327310774520818029669380403875579261363738313316214000075140765205908674241590852406425467708538588247789531732743978425270684132968694418799982324837137356639124684853622567006853270388186146703479419920847319272442865961549887584488887787205110537281328902493142891540206436113065264581899976117491223630284208059813691252580217861833381117309338130806047722208267845780942186299902804407169755558893072602691921460583709435523091640222546402515793497972107635160399202607991397132312915187248823333730294986847024461914876429851926499526409711986783737819646775243734621929324491725461314195927454457162641166281323735080935056598668063905780744343152839305767024388491022413785848075278250972392433311948121130142825917323760497133764541286800368546959966626080821223167829211534310590885979122524539171562626698222835727209309008004100305324130129438661781223127294432233277025379663389005483487101726626238070699656869399830694548027922715861184510648961727221418840069071868388465885070246816326431078219247203989569278502170834916813780565712066296319431950422080719236425351564048823608776710424011611887729048623537352790307465714576590961007762512447970919407159002171301567011940938706204017010451759196584044565460003540248182541301349898557839570492387974264455911224711330276354578505188788777970194149870709456279926134603150417550035340601780430673768480105925738468595280836148405508300627500729322539473197726311039315704997295245560750223128030896798336302313680585362122471773808503567264541636912042997195986803734744886101812131546068347725685882853671742725506927499798119535954026147806653532081650961256689883540266467977492044691253127143832166930591105499830669123911993003127410563772523252278873044692585551238801667413287243188633402874225644721091298389938458840375709905147028489045081916663711210848216933798060521468964991792176039640594324588452862705282354536555568613233783098974644631458395404404207082531016632118601326386077804479247498526213319646901470242267487971886451215567625905275374150555304642633853770785961757004300730389676761745202062802579064623581579727042258677070343794883130532850099057402272112852728121462493385690690267985522420282762488149812950405938477257659095806142266679603692703877136177587879340918013621945191311888327565265757195075391240572944193637880803843384038239462545360881307321463299156249583956727569537512642386157159011204993891349247234845793427208182717149437077680967629319865193495503840538455538667262156719992539163449917171565014590800557261085938215692434739191589777723401388858373558646712671096788886019058414519640266503936504584673945875651439923518391254762110025173408194587048708696341336387140528026967455705920450061231747464326937518459774879667825180464853266136320192392628390693092871413086350093720501261136859457117312716253245529697543272076287282267733521750604902966634793597164044091440322957699416149181964570821734818260247419484778395898484027018830799256001655046261085872293840717579369871684746066554501633917056039844181545223220468845372240819617623544872874032109016465533444504440248660709596081295906041537934173115111794722151805643749234116508746664450896553191568192621569754648530242040833217018794436203637232363420265059871427086355303034150484829865086985049528835616120649394232044462193372268741988091647859402942770765521071112014168618861354096907977569125418034476676749923022824626140248977952180150804256160566442924013009634125012648261580917407488269351410425961754293446124130129299759108069382863485976860564400885617189346799624810629358423418543460852755855097239118043746781773593413708984005000224628126311628681743421987648489259591577839965404908556969899186823521063686749261843964645769085660157733920915228363414832428948975360456149680160972180516840345046165866845008980240784073641591941074352139262448573541090029474977698391248460018150842983074713079337474572023415307392378098978216378308389202250604217231206887742433615903244848562645884489667296527634418418122585186548499334700931177266152863780771592700495256968894468105836094503481087774651213442992439301824710796410460752600178140926426212391801088844120456101887293228872897535555382393198380021728687640664983378323389997391424346259088934369645214109845217837959916906927872753225833547573218828058115380743692857681405534712328918796520151774376336767624783372308598231573292424997407372783997019834387528618718689387351729070363692880932173229171954301625278303283206469103042669360586895514454156653902382822276325100279701159055574184190257556062513173325737757673399588804174618053278249329032700694054369849211851469427208676938078230798284830596542059130193943383542589546397574999391129027828061266775531054300365668689411519305606590118035364464800500757745318898380890287284859840008456249428759405656529017477158099003401102504385361270399904519354418421886673347852266382915007902550962678802313807025057040061668985918241803891703527150620635447551953053963155108821868239841075956707132521890445703943338733288990539151664231890007263099726744447376847588331911403864651278329007385915711208247340036161425139785575331195043572493980802622119499725058673936657745070064979532735229874995900613109188458610479428750922556454688170820868878521186120763798810272232225456751569312930516504257089792019696664151074858783835673049927643342424091102731034305461819918417487268139625113688882780652844486056535379178058927984308982375358200574283017569858578640715597991008986834125605485292511414737069297755736134016757881404022471203537576966560041461513031202057098061721598286130557897647680426099562596169586095318456931912221515623671705823394703586240478032184826548649824763702484570840308727224029161073511037414894478889793074116285195000338128042366880821806531920156893909291891146852989111222267636076427936676449739023059078926367634377916101958074124405270746313260995122689288126093332584971615444778191063140816908610190112409888049690293061370484995684531347304189603549777705810410473783179256957267744532361773239859993007994055999262329852507988225469045787069009015972546050045044566450447754468721669111678335382491229868785861970292888118423608473041351012509826319299168358120577562865171806883044427352631705510598509997862447462514930427428103484086792849650533250669010543485888974856744094202771490943682966125393804069494545409137381471308889935210960869974713484035272780676746603202839511433216873116375415106921655787483787023426606592210057668110148329248998986678045060892551212790668990009800763673783609159155024860308103223608230311158502569204763090189226366866203932986004203185528726512768978435800572418757098438479360530846746566954997245174781294870765272752059774679673171628021969452352294453264537994390233829161811209830455319654591708711073803511369339856205950676154910935847444666115159937844147614450254503894726847804688318043368075502805232557858967280345410883832420839894791033269313588371953918917855089442368422572010535441337981668048632908459634323871662075108931570351014685941357993166771838192399002480414956008144418560934248570724531641011741955888017894279762468038451616072306999001016063542754249541634630491490472894533151143400953617477510765605831904429238877643066885526379492113122758296563742208525473830894388022272765374198517770296109194325874452668514796774220326840150399772149757614818803968308150013972155408937923287345935591195590994865890538904597820568261056258082833653429457108312947389371935824134145024510329905546310012815702758337846133800282713775030866634674747121192162227328431910940916801106974660550113351881918634022151903645756740312885522690375513583498083735094117822677453976783437892662076723138367744052354051681398850939400681605525229466628902228335114894221089311197394626674451827740829110728529737146161887861388506691316732240855524554701517285816318673766348635632959811137315473324843058395881155897157126767479814919185866618989410288179643050493760719813317140356963527626285313891863973842425963300916701682544203392405109366751376943808422773433426585675404004397495331079195916510113702921310537301879261430607271267307048969013170021723803855543957126473368205656495083138981825466822726687936100674991463388166954089452535279175147234106980018965037599054819574430768217382581930681562442991094377929668895404286696975322415170364337147019657481563297865741336771464251873191082304383922134834027365687765803400656992730321253914089620410038027995304804871777578606164554901184449487425057341616115137488290566968352683289333396287488767869906612742547164568320446504561798292822347746259778696619389185672793147494350003211010554274894244590622269059142228879863958938331828533020270772800743235734170783372456111394463311631527352069659010724449789753091107569626154687651996042890672195139464695166350017235390195330344706402864392456873907200848147632766742862514605215183742995581419768607114191913803654260111781627830900873330970387337746108783738878217079485427638727608531928260016267307972791530759989113913160819876988984592956474848512478324542208935352278390987820693077910005172308723712117530024381441934141165371221453502029904209228051263281390362252355109352818652820968067347443787609834151816846481865076768332858993604047175176279183368355984107765368398048873892772500314599461665984633343961936560543909723011254229026506419377840857351775987625137509559648270943089798715605950274057938344234010377781881499080966793768991138296434118583503434947996367636441191669739731371850409986140437169268455202690248743921336474962465782207139336200937965552927318268528471270151978038505369613131151759582211624351160420932151619023688372984731060924417618964628055755494903544499023668941040728738833563106678723310207248275269489459239751134227249891626548109326037722019794807352403625552246960102748996561207164915146712473862958623030170252360671375415477408078047522589654928907391383963122445346954545146971575173146052438710018365015071564701790445761891019291520594735503436119604866171002540305907553599325925575357422481726734688329387843003439080376328348395863201034463458625550645604812638974645212848669717839739773117596127101916817685621404988739724826966893995146112991309057654916407544555925468066705773151209232447943446476685673605740420088125985139885815136544333095958002654558833620274336854165725736960166502415397709182450054784364986747728408365918495792537528037978342015745819575849319729530711441624411362333125516024086645673545041171691046464381849853897906320231829282183962193864555982967438218810864358973329367501642901712031321157890902621456387149157593684219361443259227225860737000990454947122890469284675180433111614842377571987030712423643759850865772544071381044294654297479839910577545281965693608948390247990012059162093518368281868540600709364211547934292455809326417116273754328942646585715205777532190058139260406583454346289644517018868240659409715970057096218873597215680401656187706248522378535033742469063986321244671348449235949775331645579299768288889089869090388887415368298131334181464884205560528283015622806465560012062641951377076265134568264930584719926292042182800552388094657811189313860166480499058898283932937861091895124478471792666950435906651289170669346854277543394471822964682395533980812593652752945716958758194904978033223193062764030303740677368086377098620915985622028394677256947440169998042826052123436168205911956373805658346747789969554973281318531553623240161272094811412943265374407429743577312250257524493102273249572612435627848500944942981225137610017525361107257753738152013078109463441347948853652469174644901529989587141295332398648736236841597046328884595640383361093551156865515005336886103196979863072064209261507371244116436859018222641900983757875357280377466163129601839210947752912554427898097672394773456221426909891298235508348461032799435677616936935787251779609331267294682207891075231517484675399094428228285908746584030173460647744136726050782434864805740168103782282059695112155422415894497598689092098475965154414718854138971991815450446263101559257053419798788665304386087443701569182716239165934626271432165230780353187251888107018855814478105411028852970170149884135801067270843889462061781592416023718850730316834956390886498629784068584273209243779714131996728352071123378921383686322919132655418643826529542174221699095473888827244865184125307532279166877043358826141070868424407171851632583117537453682200555227749528119462504323311394300077770867791867478189896936663768227209236502941809519583495973022890491366650502067832843911771554476241085374324173584147934111866353885843307065865128803376838296611777082090097694092777223527726174020288719270705402274245825083001757364160644554358457271325740876037274413130441396411843159757643191248654144848722805661409880689375296175582081454738448157261417692729026559645493000130730967909473936369363985505889352289233151899276476733134585239072744642408708096583489998176794982638021435067627645213488511723260614249228468638759043766614861776106971706835618779737481960839656899924874897265623841563172176544660501548542373726064869739458410928516083258393152873214607972899681177387947507495387140635547835651593328786052854188782997397017007286316499504349779904619002248646041488006978024073660010191777410820262714499816307968149700282884246696522218963880387152976518965898295656407722936047534517322589241953967185406509978399414655366220064478267764256443553046105758748843082063861373619413536219505294446080102938005968329070799331538234828457711640424223906314199371799986211457441208279047356670472938198878763624019003664344969760319422966340377789274574725282860041163146511718802700077398313528842852737141241388423838951028542592189315439166159329497844201783389197709416827807369193702030018753030587628982073038968672495285724850389493856520150678212615437539997431642811288598840983080915132267031784824527491052151412535354810292237783785114274867499612017260180784810952559131825074831506144336171103638606167478882685580162803016777205655528257441085705148622974079080091013993944132888047912738903408103496570064212185076502928240725326798515430448991528062314951336056038316280301699263119012062962254464619211457193025497597678953565717892304820686228649786261674144159649395092901891647523198335607382566600162669044850127922018152754317469404983894968664278603861729653339439684427545022852585274224551995533692248433603065330229951032934992633613900924200482349639639158867008014208264531053619221884041344829242365516917142929252540263468538443091905774254797444462169396270392310957806098638507601006663657607877985467628313883250139083057208488133179074043454761147234694814916790795930400570080336564902418210616113986550747939116818243118317941930477059256325741588731804091744710897357728988745198799060265003863122808437511315207052513701811835464200663785192625601259693784805771852054014073522585250956736207749061400691596261617025459166618768947728716999686733217212378648379809860829072311151531974710258184356629838908268871461374957608563939009518268728902925325246315758529556673770538259923156740503108290032359341157015942619132704117254636180548867139585802745920672409334096257649394335049581066241651067941535835012369405642521466038073817597456153804455845551482376094010516361335028832712269252291058086664373575293036317946649413645084826270196501272582321487203081128877240671376367671845600409288997492716738079165605546833393347173432539987031999851389080826516593206456080633262873694369194286764455763899303113620899513851006787034633722524701940066023030348964757733639472203580550766847457693413003338406146248669630326497832847458500864989632631939538999581911769228574927065597812022137837630918441663367790340329723994199106749776722546507979709337653988540120224793733993141617306970302203988184326113245294776991486614365586486482903793452274937893249813177382935665886775785464943831072676829370788126644707632044752624746305180271137973165350331916334069837801056488942536514769966090351469578615590063038923582495672227322460136188983406469010815864400208290834135060255185195126076639994855371321080039211230708913480916657503448883490968760868255329760884023769603910929344114329805507241174021315382288985390759381503790236803965629307309735705221777360814407165952946348844167223651801373616892915580990286521785038583311257605355470270565042774880315079030994764958379995987326184148891405518001248397863270794134297127756451446490133455257464866721853934890509195398973339650973352492657812962466719525533272644406377934613348315096842892058472917511300071969643535677562586948644466401990372767278627070432668986444781446466805176786881688568884825097642089910226613520169911276077819077213780150812363366664354625431326991931244624837596318820606053125256415179506705204694645869962620845773183049974815783181759038641672081882158622557848381786753438491607122586190507237675007689389169338653987285726576712482127520320891382732568078101617573347484531889010977548903092575140876152997261492402481152027085285387001388769621743910937430275045102516903223849708510160082277268826244189328928321182198042289346407955321103875514192486653398314205472918291644492027558829336303691791400910108405264937394378925948767917488086881282079803153423537061235516190544008945031622528621356219561198192354883054014977204119143949513523750095726373960071912165352791388036169080251517179369123915620119898914760993842850207519842422220380274338377928167458659950307560401775716088752828681635934362694925247436363230562857916427067540148027337342296018842926967018220315873445645133722056777413088260816887865791122790348638274472029467954618008168322388840631147272974457743803145609470279855808035001283075229588439268096047186057316447246720255585796073218359965854525528990788937144733859107210754786398116481157907448446793169917973367796570540837551167910868533277442007267263077354751468049812677700662046802096494644888261979686196200363243628366194066152912117028241472004891148710441975837143276449100253950255846664817132471332580709119632936162187514081598251869521819624162017471520904617782961723709291559120522395438640045702304463354543207590074896330259494087074697654877548760938441664788559459180873053681254608574356727273802056811709578049277172784749994437584483899878556411343674234837941184818874531718595140993574264192258188065735421908462461606892523196172920381594381874467030678966684217081875302143762415501585103028670234201916503926205060259538862390802162002260266416600395412469277181775097732923044431710141380343385118983016896966382130431727263940115333094379209805864501279029723083662649767201978894329849749515669504032492945167203030727738009400604414848279752242247362669430300753895470786318405188262500874353154019137441565496517011784751257438169517613710340531291698359784746562259511629803202307587635204535876830540523329439362911373470076303310433817526398806359685905727202221195737057100723229656063770644085914740093231850850077369830482831883441640792718028456191139211535846596782849745530947426412441195466915977456076251308074489989035979158249952689222913847737759755794227760742180052019250387930821682891046881565610705856063606656154951802802846976624388402658519005614458271972367960802437092030992965502300487823484717292724175830724172466198683686993051900410120765794420164278537359474966834975366375816158515172074509672979724514637322413399195473863922350180736635404659764303257525215619175395799309967525732175136577413555658411518532137875159642038132664094406048031539734904905186955980486300365595976963633425153641138445849934648980551860771361678798039062367256848965889924558945692046485521939034084114172591605965330909249834986038409671135328736771188555713180414100484636862700373573697952992814464030680023009973331910823564879240200820846140754792094340157356645256096834509027155895571975109134041090031495348550097958816576299987364567823031321614305705376120868437846665835230811718719916716769003540248370173328469756989009621358631935804087591615979114061101568296026372188881894096900121897640164368691975119491145382963162737050859502621468243446947876599189993318400895815797878630987751270071354921080221537062902040994486643102300140966605923331830272822037264344993489811432520208388428157712455491109162746091893966481147214077296578202898497662880007649480445762111290152641806944767107697229337172421947226767229420378354295446269401358033860811033005593331713652499175854816673762156744164709624655634110965986146984217196610649320029908453761761303224762572971500157932110036431276633455837057062756791200154640044975167067278812099543648100971793499656316768943741754668781452889045101104643852513587890981709175369840734222685551163216725943605246765961833740565741861935710140927951999076805550793228695207894781950192565626381557713088397262584158789850887599924788372279074436069336636681358054727601858471572571449607662191416271035094286775945057936031232086165684930263218040645365896729508256198238071852411022015925570986878694177101581634601864271094472623268978768753356517102957795036708366052889661257495785287686922145044662365843242628614562297698261455548579301325338118285459314758444002902414335691474192318046159203560600862739291972822517140808040508236931074564454315801054711741152790300756941651881890895183621632210088633941364710043596331471270353806752158695073343538565236892123725031182419642862361974117337590514423794539227014620770210186279161688180399548972574250676901351778827406786498265048359554647572665974891070968507974238794549856508017074256346288557373073897698964496427159068916006460150467110393763023770373135535680882439364125471206763585897180303216791994668521831833182651010141243674967615346020969920462458318763569462711935577839954081809338732479227692591936177887941005544333222699607257397740366745475259242118677954866184200971422235528173629411927342142409427130647489734719711972253416564277018931920564507455479436203643027972399637797682728191918377954727634608493927746549805544075225088088841654524466841485830616252761253743522265464070858423979692794264147222154017480240773257534527313684308154822571151840074817036994403184084821851216947541516296210757856940847859082276527470727329596640454326076371447900877501406466659251157361478071045865599867541261684138450841768139142836610511737394681037277982461748300244645894236020509793260880620058315016273893126869938329270917851868497081092159688336306657826878039902880859918288040990818731569514717862341956194129989924485984915272101502562058221532760798422777891312483067226414655421115499862119622125116006199175384178710411840007122448288343632884468010258974812506685323196211109862591550271238160235354359121838956438499766780049219537813658944507108936871369849465642435095333499691007794448623366501879603553385006556841707421469183962623156447973617357697451460348290143191609435669434683461477547584538661998504270180112294529818875548988286219456456198706267661633302460144944245254032452847315888626865384955960416560898189251542981717843132717944459898371163841425348281249335965200881348914557113981994163919472356954754413221504806670959993669457246248383246925559378468054694274506653330551704563108585720170155818733415842147060344890043090266396033166098958996666700027787066953185875394230933479532110782450591184137275107331276170852488484891179751111733548697310656735395895297738541250543517317382447935919752988551146766947021796659279654268048632273296460437715489881673922563573014408836143350715301766770123215907442173862278461786264764513074464081208932059827021329995078982029459127273464569819698004616458818197669587522899897153949469541247133536532955530273333348486973534212634640548494749345785985227232445119557991720848215326480475450898259833874332936856250773212556319643872635954197758438625929749420373213756122096312743479173917472037891677470784591065492265633485630759399569100303334794301943657730746094260872010659691529485834691921325289632370865176379706607108729254716304516946080045572076484027735439668384307172424316822137842768225231414408980627073164392383642872020566532509771840689309969291536768801792964065599455382574439538235408834654150057713486106382296617768110715976984998981853246550093956484780396794135560519591851273670856246352128633151045147883761444253009349458777756371485861761197862756302953697952503728266151842249088079810903902630054372742495161937408902958922409568799347294835765156272421841508123694732849161198742734410649270463590508943352464954016248010465393576201463814321493057813227827703479082949776962681831414061073820187814870609070278266654550342251708679018792810245411807294177966776116601380752809919250157407873846930313261163080119064289615759644900291541539864982845879665492028110865313797614644863188014593612822666324220872811153310344670520241529932449856057781976785551206380905632410033654136261690133501401293678692077171828478967626287883042374973877930586510081354901379194467422787985113836632530452525552627724631565592738545536742223109991023540240981578920058792913939188794005006843731426157701664634137847255982435911537686349330855948717540875487418885418516555207491043810002965234659186585241496346698476565772399977545761136002980065577284646292638448061448011155188207179069377751244436143924213657799330286477605573636492873910383228072774859956955776590978542816070040164414384265210120850540512553730198001232753174256469256903813476875011233191483743146763561280578409541749192008255435388302028528736575392896720391908215090994771393219396818432868444107586778122431160986008219742692405493658537511862536721583505985011561278266135028979947281195522647571795593011069572989977956141939137159315752147343074646833062473419308332282153315173210460177650297269395808186043013284454808558701643048747205455181711662172987002908813462077617671082458452964919782820305129884448428795430018318416407663919800079956973723669388420672233508150401680115824937997021317285772587129040346354916198352714189618548958322873633694754709481052909517072610977332788018244224465855226749316279313886728441538034854079839386297658120303433624492785924649877597515772867214731700471620248852757357371498716970217498427758458801264358794743886099908262878102479009999276570630355734586922868684252077226828815612255377381006857167320473451595842097364040834043991267134204046990990838614030514943852192866038198787986287391234105261956247796368743071629988305904660914834513592189629232719394301695182537937247815536405106985898182851345460568912415466149754437412573236678831136905182358885234801380703612582784382068284954594149426950223277431683294432640304015598030113946567750803870224343072622688545363463798105300551929536430141703412042811016749406527011124627825457384628516192120518268572508654978573507263068237001645798614197852641068275695656121578142178772882761287025865842577042602366297972577546183120786385686588918272421217460765724946561595376054629599951689202506157559645033364050048151999874288879334325145986192399114309609113544201798226020369028907964170598561144477317617631903594088050408219885773336718758039491610725724674045872965439345792790484560003202970814429438118535585628888262058035783521224767221297882235699928704616878910386980878986031023035881337334281620847292237766244089340801690647592298473909578632766875874748312581896325144479794339006508187179798528943533847626719912603266950031100982698754998567558221593480601528049078968635887614662107893272249280050311720670647108641163604649639521117132373848997562232350707397616026281677133723771795928885540956516410160281036570294654091094863187180983915590921701825189612935125716826257247054312239817020422699136103548173835931847208576370460468933709195253990111460778035412798615624480063326176188345461249180881665260983594802586025719291725733226403889798775787390334491171089171431722864916279265034401676474267634216902898727980516606911590744456243628369228302405758905309295941435823276824141860977273961546731581183505510382843124860338807968023338047436982303475798321666667640992243287866710148887932286074526985133600042022873560897387114198560485217089685702863781297590034367880201909359730725203152677212899222718593682323495255067266250903906832887257297595193169835461044249767866526807405028303323976725764576555910477515254685708650663922048494407033440660542988463245039861956473321517886678318465571199853737183212200374480880959597785255620289183697415229285942516244535214956447268251151239569131197326433584290635633743595587888516301106836482853908012420764640327748941177456605732585963536570829555361765759467942137660020267315085752454333217613543883723264466637883503453862858389657020396278490312891497569386600517087617375756173771310877898070573286847240014268278156468442275363323769591167136940960213249552757356304986713729634813052243394795793872555405500332785077080279022159394767944766574687315270363988812383235987150715698227174006666339022109687672664365593472008715835216951674082294111992337309262906411035488311870930458505321395561600640988295499617797124638985497621663865235343158620782399514005161438108355917194989971187423301465102262795545191814419787899475016762713994422041740584748081358215514927589877770076710594062835772962854729742421633237062337074241185896847665430887801414142851526103383517003500796939053164831894216006559333893115916064184255592770518576921719369053305209197663492434084152048788331206698716374155502056912551188584528316480935824693739549314808861263579521218849505571257752723774212121805513126278167496399488663699258485325020079303752193739017263207571364483173206662829886710483258748582391707537867340965581129292493798322436541560958694350255331446178268345518210427872102576858438185977973045649738809239578370984157709946172541061719597556441681204798054769656959756498758557018458119340785275546079716467900694292928396413488164052830734116440634646214969857919403784653288495301142248321757035402930805442754306981775113746164374180611327753985937685204019621930738783945714183273466166294453118123063967620756795081013152794165320785152605415597566791362611415419489441721980880883251757120362682174083790923500159997780809259494116712246756458385101043960448827280057610989742928294568225387146088072184691761019793168945182301391887348108689437540532540084023116077268181198893832780170796178524338848870537667383873410318487299101206948432523679083668442767094203951252384865764364523888618733577530880967915218927945420876363556514703945943290281834427013898428384253441352037279386622994876030725581814852453857333312137795781087015053655802757038636277327478428683907172275604632198711053560481733527283427971523897222042030063235313735237945371400532004958711004750135642715285243306472942538396567234359394508997326510992897926394005176114881453432329305036414181948317199016768283007634641096704968591396125907297988414972560716615621752877446657381161484711926832824746919505355081762840159586277253340057628557676653511872294902480151458773844369980761117432083450669049186801582962830321810571012771910913709085153800299937684574768616830942843980335372849333703171651513857329112588160394909697325326674840479333888384693092643313344576819657603149567135327339302085553057268809658566849384735964788430424120653993720179042025465700421266712893920579339752077179843153204134143380580884691317865452518411114125257876784668238085742580531938303631762814993667234934808261892139006643719105652572296545045038968913809960143068928284951497998299572417255052614824954972505636954530917523050726512403033442864639592977624574228577327478218355542741362431224278819609215880281296671006381829613879599744504316594512483277725566415444031136131235711230377012366528774555178745432345430866791462791551449652914247520872153949009471581920623132895907372165292985800732247367365200125923552897562392992830408400828568078798320591173594959320530855249882686697290377882356601579316302238715266271372414517151592651388449355718658110176270599819584802836037627687574416027571398359039995490455320384273205133483191722323934589681594708568004352760950774870392190449944925119665388071561918756948815488797337903577766763718425098510491997263980495696582632536866013289262718915726943634397569973193473921512011622482434790211979919806806252947298436743246817554511393095531122727756406663943001497806807898912110882796365113890925048385162869679896363956458298508981299263432808660717683810989324670255878286091154911652830623164313230141453443442735941848039553547444899370667415333822380398833043312666061369008564132638645389296621883356824023654867255775746857871589420547901333547639586585907462816247164901980079474127646367605919367491953852027680479739794064267432603143235999309277021678220954472924641643119521199050699470326922133489099516185674217757611871381196027205948346117105071252374393616536850966699650868665671745484470412114957373476496028413200017991897516515287411071817922270342003826717446046593024436509961003329126076672181484308580327224679582091731374747024913898904410005535925855642206335951641581386437611776516803244972359280976415483748399118901231337742933632848891707514686092491564748280637826472633749956632940070618306565511259400724814098668746351426808074791008588823139056100009199107437992467244818636186701293264259312061016250998539520093220534361832698916395481646995019709482704709115099403150306398976626258437724044257483632443102737897092066973117970065164987223212742314790264468282339019395743380015824265320226101444827830338885442136211240406330799234658397678103345812778598865816369090063289290027631729542674287922497293323163156767066618074606172319683231263845299348096404918380696911007764228542093748666510265587010617242665602010627230883550287012162694271526403940632335942938793819549275894804265866694837296602200170243476355360089379014856616777299395280795047028643265329532582338649165471854969199321587844554947007977747122948956631555232307789537017560571476235451804332820045114788551625426755545402953322744201086714406747767525057781944112124801336656323963658916834360475077022222260650092738937648642862196991416569171961822236610232849535239255730005369107222612327148335609300949598543338468555312126025755494169167075468764333281366457680599685752866251493082925954409187176916341022476824828775883332247638377829595364200476608966818202747513056306872727278939806260840151304645869241910252652028391239135476393861110443521025092971149650494945355577443541321613536401673314997968652444709947889101873178351792534322630027456480668994212647381162908221151787740666585594761872788447312628198711820608402205906781845604482625099204969613826752062919948027462709485870024490684976413350817083983229272345387513398321404877084728317695232326309505930342383897591183259261683798995780775769826352875738034261991200503716259703123145573205849140281144211739550247156646144587603308606656278337501651990352775046605353308152851563602913664429368889989214336671728640159557869271335657743643827070562763994868967095897459799017425055059162160966967465812925837519132404864346099856279474776226690757282758902543232180613943434261227451207195203888195641739024577605022108001349830770280309635588821888645088640455981818176455639496047685476731476527443588306512102828338614604479415212183997532045277265730497588567450308131602967794316875048653346503466279594526919537990234652384710825079380544868296780896534595498532639728828426774595811295312952218121019055751314752662768503994815479131078705593113895257534720845454225118183596580641912337476339996107258171324957599989492521565468448663842506960418556815850292477448076944574966573989067697451726704431029098075234799848216310108019409540197673537530651463143705943078082890732194347380749546087771185545554843147538037926808853981517218643592940738411606301220808126852627205010462651599096939734898693280932767206666371847617507698434337266966635520595562171230755594438114427021292191771034063186881178443242249523004529631229828788427784352161659247809774986392774392260585630622210876641629709065067343644758527209382805336546006059120367883210381912712175438008181198925705207748559712282372340116804036229281088319188987500382532240244575376312152025332814863020932502257647432569831324609710662728614099159022229428794138318219093379367425176915666686039535386870130850057395600978352038686676967466818073292957817076877569551290733509506505239767269788001396149392917133343823785121363563398729369161471480829162557860318023839631375842476463368010334096146729588541439653645055243639423511608532803661047552911235039646819588230462768305403223388486970111017859048240974451661316057017505311521955354576123704881333740065555436267654124452304952143385614352329208383336029432847633578334728607528615255808201944346749488319598590911089576215502191110362111273009313957424232193346063227350063486146268078615789932263532060905516837257712689411339099211037090168935204091806917496114775002501102219454939259192165489530752192162407085607904521867141799431365190553362746822250896439774847549581415622147449706700140130975378267249975459962933160048800427423530675806889113624892132412499366057804396451616587365294065467798732760786158754576463817474419028211660025935859790395462726550189716602236095568261889763206761964549634238935587714012801485006181682402661084962084645653304414985694784507657504111070486971726516717676878427512362639210715619591371638926504532980323311159493507551571289966163265055951585192508692451902660273374293952343316218033190125777199835026900266293241324324679541891105538008344685183514030491449024699791327789643722387926302634417064748718035157990508821173416087448882089386148001264849218165047423463421767668839056024450428428460020511539600940094907739559175552356865454760694452599503968554122206879960647283444154224799648686411777440625986793221773290874104986101622399607081961312965442965958724868837529472777410511079024358187472366287361540310698580191454162422112881845016695270643039357546366086772064619645318036980613102266983471242262779999036754296046782775187514636192384408972697255361528639499309510584709076694513816739317933596052553874853400476110239754315987999136706706169008648913606233375717865176998976130612175797611918939472694384264017259482274786702387558646867301103706426842045323336543589359771632983021827468501007984373492956685626318858790154106559543211434732339640865274184833537697563198014101952270751730512581687173609534917846926804014193306947231793610480659654335246582505456828892034695979980138793142893112074423377638973361449714924206154564616650472774868460128056483235254914514556669601366056342377469141057255902063794634912241497567078542689697832478413507771475100607489576542261627822098245246482954601345373720813302629303743853864303391172700379541711246778145207894752352694832538664467573306358278525175994940397287476935228201893047281642954847211585065644591917838048563084418567424288629182162279944700986334680063086847304775038856611180311386446100790129267936217766041662632243294518572339712385989792845563729770399470658241008827744675953597918957548304464469975719065519433338205351489393283613898514188415361906900410425252717479142996651198083763631802178998405858823784428923645893343714195414423730267739115835220225556721333225874551089997144650660227689260023793707582938500316998728685011240080148630771137275341669873221298024790377291326640488133723201167979602483787977060074708300288862445839459361140631023179356431117795429708790995701496685826899241254024192355037058372045225087558910410095064431981458941562522266037405390794304455363207927362205256378807934487643760361629502706231872129699543110683544630528008485759912788115131772808355200744155745824130854881678600070220792671821508290131946341206898795594819778318741487909553210265167321895467993503990499706792410459575848158703006775251045988641822349974236633579097866324933161857193352020747133278568861117549869604794418477454001652425102980303934022212825764134675927951161208375612211398088434827904126766027093053473060732113279752371241346628919527613596072053975253957429791876398436701970766772352949949312051199041637180425048556948291222587287042534192091074462274087752326500550769004731539544196671433312704949963569923677989461004797058384517347006326477062361820282628740309182598768514860856772957674663223476539106213252547891501631406075091199298157446175678745182340740946223164497209982303377089287952163717684577857672333793264394813603688624811433900151031299867850011134859970440380240840471962558780447113290156060214713301296278746204241137729503903406200903653968915890599563825335799519715573651019777347965934574959041610058879823386383123409228850504652645922895136134138659992422369025519777168625702871983141082433546557996087213874275233273386357025854993208913552815468509767763829821523498939738294735181603194193887596761416090118436524069404265039367899878742252046192711780532205466982410597743161391311928256272303370954418410844906854132940170538764657704093719479921858632484531157542000736311685002300062517116634621203214813150025438039408591565695966755019337159369363669902736467782502475513060499596732107346612294090301816276246380931084217870364177750717189858791237323906556453121428314382496496070932106060110051304562817388659688900509724224081561427192895586515921039351668395775553368511282645026438487957048839681641484274053887707860217752321497534654846719997954556041759045759005429485611675944164822782985979352392055660186747874613353839012953353661994183257518846913948313776455928562020358011906818825950333510824023669165599298990775502860315047448420735144370191254600572930396051813627167904601361631171035898451152768615032332994479495103974663422802190799104249649292052302177199919529602579391096733893276141076706395839411916040897108493590186147893541012704725591713776006055759767195834037922909706680304404235300939146765469923086391680546629494252325942053551942151787968129847681902681064663313209783457530928100240147933369641525714449431720652236800932915823168977488045616924515087503677776563076898760248528510764378952002205034028441106678065029047327061837363354785553365588116263758055101126417893653258614345648824639326572047243838107425853244736351547612621089433046370504645281334458460600916604719998009302317979962388026229230128432514079456349287511966529887171837320602715848614171163737977081411338396758362505392823986333344168146674458549506709690014522707413524775816240998012482607298446030879448670160124335992446426153623908453625294716547614587153010191347509238505112132894011567942841088442241298305814327306674645104287647376672168355334140828112613220932925391255251806094605807937596448767067184056414253484153334495741218940444033249895032089745972415158430230681718842887688829510491845238504766792759212903441408469525668866824248190408394730008289017847920671830197940268089232663143637036779846457588681086329850190682374242237107197953673865047008376208019219211926807823739025628596132853519738474095767828885650222072574730023788343723144848576849519012241571804746335980636770175771789409547264740234407669112682041634656995004594557104776399368248417375882811357441650185017955439299867059221523687706811048496623182555874109331561020177510303355953980672465845162030730700893948710097574982051577652862837084651569765288209479180343598566517607082787141689958064119419465964092756763893922451028822753960095917450546854547020187562484958741725066533855804173135855597067380144295051571071712328794049054624142874087117390955996050343105148583344332915918970738619940823746830989679625992904718788385223694430227288579669817693060830165787904557462070412532486253570417773406941028749278083638721142150255449260876768292671741812955324268522099995984539897451154018073194399593301700779081636697288353266631968130019911829818498768973131439897387075147135541580585803227991704916127970482748061117456542694541270132951860705059465535214173982557051107135459012830022431199182008874285768610228716949322687028144170452889864966961217528647398523386631274643170290158974607367898377041997668381197693016955268957573128083878688850259367691009005938466745976831554120154773237372379054414845903487334226717809863613167675534618002733720764544898953160295826761682362045206940223810811943322320889547027397962733798723911694163990178455619641817351988359384442072959142016215132792402204223663332696973083944398621234174649154835546552799893220444411929325053554709435535345447162429406987327699065055082978311506229515044576752251106628636951658776641808610277490804086943203199769112679575131465088060890774961945971434355094697173774117565736908238073830090736400680152123781255340586786572947588085280170480126691856580944952651910474407989115390164439604238089533046793657141310648697034255372272609096830894775081629049629964939982140738381579473677405880449715037564696375569485356015104238823100019097816082808509516746703768127952680310276736797538556412750101002324386423788448473110369756648187177403129335651929024117325327601090968007508613966038486313241207870753512549257132842085558250918573235569433619853406530347977133979580328175757024994397613199753752184151740220347187230638375325581030685857019421736259075435191358902566559474171996578509643593768191540291120663328270860634639280341856540946535031227189715250380806308429997510093614949340154003295573259987932764287889986833912368208989340921051149914658621101322187425372060458152202224132833162045778510106249495004477621910553440788609189863613724979894513524585296011760427100468155213211339842266116310043213326940422622688074554116365173663331723689880082533662402145420811646519060605077174041203438887338491329647637781533762972575190760177641146269939876945901097125608859603367401659251917806887735601863295146921326184688540630237869863153487100552203044543588210030628906227709894265195000496698841942847314822978627946364532112660775755593851570514252435126152356655753778944754890741563300260087220749827715356158101049990005367264355579085408338315452336801061144918382882350230627672400794359080235176942436768189011228640230645676385468907722549023503842938595376696908152808429626087455277933414800835616451434922578926028618114360074676181635694337509864693275316486560557718258667860179139318423593802632926628349384651316767981351391898950124164106992306388026399748896630481933128871603711471069146487395158928826638822913920335027399788560431448079624625398238318663024811296134297926519803994377940852949389291331564928799108726177527634644732124279591339460879901005407780836982018129231926152489536038180140607503487275201332443602812019942750368962211457558783156513850831752061062254751097837771782696699228301215107541342180635314041269965913390906178560034268888262021634171734708088545011310615931434239082825402552869074900973705547674807505519755899018112185887403861831673718926639803759724122303824679664227053180316534380654846972357100515961856720638942481912661503082535925362527094927632094353749210669088166758724687431790393967057261703971781794045513263547698689991729256515390466141167573067392909845736948542116883819608410770001341588881870712154270378321719852727439647846874427587406749741294993868134588531402185853416905115228592510612429850558842954194764316674268786838622670494363250090197704734451413705506978542317475674634121828277426903950463442065558439190730991717685003840361682823267216802664525523205927738607898005998683699944293698703262887565666278678013632549232346733174437699189559895991614308674034897067120685936261550318991158327054844783830755718134218271325560176431272025496563447917402688908670312932042519317167500540371704480586279477047032744929145098562349176205403794892981278186590112927524366758620725983697100064359350990059374044650002684952248227753575719219351561577690440004783137546213752216543940509352127705570337748715347852406736673164775559024573816279958417471277757808176743328889707365539828936680864126539922465545762244107755286163169224194381180214626173394733173686937938106963878427062784979965837281507578718721218976948306047458794291756944318512625549081475276944665116609458745701309509503738683315747573015889915302902988061538359230189018836368219010792781099045213286660923658800325690419474557562048294535487277980237129424838295899671433391074900882382170266552335926785196412165830171057888201386576903954452275750636353833079169629797308039615071803542868819224291442474077636600430749973726960717160872307492209285036153716078013969014766549453823674346652340263775199970379420765557974908197218604528105245695202072455326508139454363109655430092114658278608748522810281937904198085124681497469101139439047448608501072398795717999703939798288071205213810712096121386787800347166587657929973287617646750588178181480272552575375774240125014968059268071636182169271955360805602284628034151950094867943825551826372713277607277038589739157959942724374400880444937503886768043528614188468590687529888076668951298903813404143914431121403803414700461701538729946144706423829457111791148924794534834521710319830391293594107271769256966279815724500026858901039345598529954083239868797632393294375638606026683284070204312075615013665111858458905750542943436030258935628486844831216063613041070021919806317549496326285840742069176426091826590323358038120289213755419471867084606017510077693870002179154257122989306692264579966758340466074336632574985768682909528564115580737184875790504480850953126202463461812735716893974529635922175463397785679523243559930971144893127166958150641030505457673465641387792309520907658125736451740810206456724386526863938373012901726644889728703532165445873111046424816917764155121905282696037273583720226129797922165581594692847959752605207189167967429959814339187569547543694606903443029842570831603479151747393471235795938331431631675010485453839910236009567951658765332913773176908407889002761551875634101056197090691475850753861809314577133070986316093809291736613559506265938219991490270060689083622039288580495652084059632062755606294443258959175205395704656555884021456510313645045271506437586198816339250216540133125798244017359295060313393161063657490608012206477447900264460998709100343288520798868973753684409614181196195532162773507498259700013306510688988088111438703325663617022723615982326806770137756283369145333557176698157985613932069124982077367059036084529260119564983324076816965693857050017251766636222516198911464398596928612482959262636312343758955543065870949433798361142869634658512937308027242249741827806127514568922546825508451974143089688368903386464724279355249877951257258831681917560818711983868987722285018601901354911013028359392959329112015053353045666099512970788554401991778624201615332618650920841530470971585104297701396406274345375332735572168377363761191297861965263359363127196712497305752112921551973818923857949072641615020789445415345461682013068275864382251825047815533794673539605081842666944259456901976177116084093058324007798217652194582249690414487331351994665390745077346146375731136150643528049549194396699393511620244465223158341440320351543627687168359827787164346790609494519312604245884631246235445272734262572877793211120862300122632286358262447375196678041771618112927737487734101366524564597769808902595800802825156399323739196938499071635981393932744403155314663980121996587239197753772581890507273090869186058849104048802745586691428141176395472492306203421092177166615352404676517784844089874293936117750589670475590201421751682982715384488043433757739936930564917799964277353020594691114584725681926934242627723220434968226903143664526249673975932267632006216783504555919140454750740754705883390577442467203290570194531431658857705398287679113490894382892229148104750130223617828470145390689945782494036900215535841675668856641404111530539423568920642050861424320794785486960448676481800746433425067062624142732809153604944639366816318209108264992227091007511316501433134617382034609727149130568808858962225599842810849466379239499438688693307301109722995987792667350419413058754629125881653427918475326221711706796737380591030239624873175443911719586583713950959652693405020034288025232954069300767783052938113144880028314332444500383848221035237097352090397551531924806038188516167421304806920984588446153285065016965160330411098471003013728726480226542163170104864322407436604173507913299665244521693272146479891666180663501486673488097568962448335555593036209387486072681478864559154694240542072086709747910194329612556611641326109691009765555382547311170468650455057664494122201536494620321046936698917734190408298131480627879664130028486803007949690194656706368788784040665154409547411313688969451631032156679421988532603014703937324397731168645726519711815059348382182346999855716150842564265263538191970853323559427240685729073692322094576989616017160790481783490267760229502238135263455804899872952349126394680078027221401577938543683330085576545892838844276501374046613131854729185123942840776489045756055878768442456936599942879244376132548945061288031260775267731723060817459693265015624941659982619066731603788924723881613878041276326054388193048681932622969765263121699930657759835209331058945902510715951863462444239197049742776612009985303076164914982188126426886792465027169062807821361490511100508172869324536011540493909933134301408506277516632552741524551202567844599708684455859398359714505165600301481963835453985347768514472996457448128717309508133101582904072045495148893744696007415820504222276661141335092578272476685493142213962385833405293273776135880326580498591444078990270517938987104015687786856366287162665772492969153053562558573381398066973532237766759464746277334691858851937540332210026821284456418378065716780384819130630130520311573095348778212523452204310286826752899756434396741235452234358235386338220784631983182596799214340025476536694464007418913762404367988602571525381054426053559321710846907050791523370155078448728548979258455453748535824831858951003008988332532235407957304997441128686049309493757464541052755115217416128569004806183945253379308041093150505693785300770853735381419879031738075466284440293751510588605293314493738811197831376647301010969398846658961348914045552344423832947073988028451732287514342466275062948481607640424961549182719774563189169836884190401106062873079424062167630484338248679073231633388589731547744689702036242248819192234050644836081383316042645046749895085616501213335807953788189532431902223205259517296299823552774335181295066196412892165926996803303311472158306355714830920101977457837996262870682564403962692187298457138177997247613848675602844666453737009837791334656524229792991630614678589207216862604219656780082535568367622082736706387958008699842659831274662773564910376823004577951696099632930231583184595757147139954684773336548448788741380158059927669702250157782919204124703074201092557025540520707708793628888848594258249039641740594318096124709089562302546415384000478775307937065288153765047951381860173325958807144095614617411913976190902940293947012698644750596606495637252702419057533257149595305682888937238001111062715670614867212720426973679942906413907633668516874318019882667713208949981576349490577047279137872148545120774414873763892855137235540890539852520081793227835320305566705802076917572708313800108260393035012076919963200354466666476024326890389783284817000906973928452664177331680802895533920836267773082686377845456221080142951505051819471235642476860206217463302392905710185124776959132567391270139151144360184935300499374438336358973700131217447061786958192914194752190463385176454466503309592564405466124834075825984163057545117970641034743746631043444265556406110575515024272616557132423737036997225907362352426228245767639558035866698025594169410969023356752531799715837906805462580952459842826295849388583006210598088281912898835382534752709367385877091020199212261905938488887098014272283701808961040770802787262789025863426802427453785190794800271318784889915681802566429949156402214853284072786687188559008564162568631669488909472595160209595266408356297121428886694049075973400228976930786434211834590675835356580142787469857647577049541397702755620563041244086021008133759129413163026902840953829349530326137877878429366689830262782561143535212971946552861119923208738622482183739221797451863081238266599916508750639221524583805184235897772091785620445343296306544436469910524481450242912207347184989106843625249250114226883137996705465916814231120035504324212875715592882544488756531879922631061665408425392309448919280504050051450166087228113514882025185225720955470851551989637969429437585337013849343392440573634905435712967414729951984340454051719780396934113707959417226273022054505225007425056865769927691980880462459550636808823624034530496847676494351876720405862238292965914283990588730546246160940114707148530225828001533074800350169747684765579758014416705955515268046749525846283607951546269106319495605887383011559821847965468513084700096483554352724583325783522368308992400925994855893540312447749699714311357638766593213426251701258564483406181933373676844470771953943030761123968941800881030032959668313061326032662588323898226093037986748756787822461778362963483100850396598071699668789008380027349985707039437050971474871750509692350620571735353641208054911220810797587253762011532478024623841466614014012513836894421401056318204394326235792020367089285773424958984760155413661428249328333802695635036636180672517468392734779138196223980134679272284830393742956620837534903239815548669171780546297679421406816064852304394398267407632791109810120460531127969812957615818007331593071120162488131788002671759693526616038557256731497344960908569587364335401299224316515490762227086125228529309113055130412395732314301127818429812466766727476775846411832728010209129247777532349275242202972888354543995515867729126176775231402570355285736876389783089433618102875745629650386308056942697787737712152107234705995360722523833279332904788331333180587147661298675980585173295579313038240121392735081634471164437437406167555330492345035848005226298446847417842639600170871843463447514886462983916508871352511948183444698858183421975466251418071731376910915964321129541044397442628442575456176567938969480325962712617854053467108070910459443860429398529033252659332515777127837676151828439267192982221422411253469480099596982073907909251155806034652340356692221109407212542968630602049211327635765952298449693444905491704244667040632629591187436500418576272832214486743023887126999094380604260419968790852524657930812679084904994964383599983500459867018456839818020317165384458100636307790140691783110351843986474611809788687992765467202637248045843626748045332823161361141899710283032623846103226809416188819587927949940407547778151063034698158748590155584676174676432613586867823012802834418714300667702006727531823043149102012864923165353307236410584200343648204490981249178129635584083617270081251911697661428405952660787834792655743167408685753717504088259055489922489470577187772868818539571773546965550210226860444912772373364708134412552988909420450858466178477974064552112618548668536071775587316554080985203472657734055790138614274168828834125880014976043420806931825133904922575410952802611964387139502493050855045184854213224882159734036342528583792369048678467047096954424919335590423253081818714540975263440822813616613808212878122256535578818719864259042614249575117195670297029946028990472936047516571957285382325910544357979523284054955228293901150778131193537156719376371319361791017843758073770484904288573470506496748298966764664783870976602897788106432261828603383734970083543970554849832490642729411061871249702431056377551766960267795871480179737270805547048702538614119124123301874505328425467269373114442649258238212054729477784501889920207154257736579105756682818440533182118071223234569486680835462884187419370246246185466462543610576735039596288639186346270693464645387141270372581538554376818649498365364647128399426298677719362488563657352678956358128910586942065472975487675083981683884298582969647455345501076971971367142414558654306113082553599138602154116936088158552322965776557514879340494637514059156333045863424529673236300171634103540088880540237103902880650243722989055176215586584959433404818425716537717549444788097342736222992202109926211051655366102974971450011585869372205964297938858548849118542801366763832959180559801991173395473000295944014573990815141776423642574444327700321040724204238283506094102454148368994563552280035250211397712903500693007111362292088287333868337230901177236055936532531703137597826570272302179725043810300979791547187465655514597829824941675998876110065064467604967185992703469434224540093073103101027149813308913430885176886888473240079934746396200368668359600980233590445326402998200919049479644559205908828111263536960637658539930173358946469753602530411198038064019602435485621819363139916756111829965237160733233737602023581563160630240679929062212864794369172613806097189413281441330145409199093783092902445903424173223938932065255537665412199305562456768736188211886504259120498692615144629270767973328749428888721342847947795212030391780557047013539040174397041874218765570631689531204251551084740319946233475562378556753137001056412802570859081228315372063308223488385073638722061934343869668172387721993682318796889771445024659036330535551710575820346534317842306037630768414299475174330012319764885388544387793314077057623998927515604482076602610114013790705484373949064685130418937672775934140894988898720363501656358020019957723130772788885759225875271350461053889281326289911542458073191592060257087670151069106313354248589162619949628464822277592443763177178471223252036646750818767556660504389148934013244957744203245980711870119938115687698259270808114901124198931028534380705657081842438050138347081831381177179373763673798284527945495809398068363074473697780693141900067845843333701236255320167726232584141716509284358400957377458779865697852917453628951677130037126337603974004517720206448809048441819653764728205454476516994638380675001168852930755936610519310154407884863697177646348720846753530594240004723543452524651367467341427523281412652666844530080613040463597610385384352477081741532171513243592618752451062320762470421524801494537318923739022470403460754034865658178484590134762253462724973883281589765575291231528634679011650519711540285191100321271039004179282543400047761607262549049583182215639776481413984080738719111241758675413060299577006969338867594427081830165922127873725748878161953411154943133081938054749736482469329923714504586985674412944537484987383628249801951017500762093061556533026272531243535421042225270493572816907787853975640748034810010523068438470133637138822381347486860389562137084090519973624414117787355129350720080879142531145618709232716231458475155135247500585539933872476100295988477836713486772706108107046535944427574872566241487335851777875043498678333867761150374936582715766461094280313668473579990636294770177693546764463999701825158371650917726553686766233389298754443975573001815726647793423064104059194336521865002185382589580471956758151307089754227678464563283354079593649627026611369605092423154098738141235202742562256986053997770714871217876064079523632390922925850901509992545091257071063265787387315152992729823523408389440315810789151786330484481830364760080386812518993985468960489054125927909180879796483240248816340589177756770102294392251798922327934065335443989366333633907530021744693878258953484755852845304895824045341284641337307474641313133791244759168645805739435856578089533599351615079812104135509662048487328204180317854566391710517663728182379189469771020136934091313049075911934068727107813607226144158651381589372911901879757920229263552344277633949456972895252859251696628076325169378135656410394631156574701356536439121393795989059755429620839215941914556895172806606255398054149383435368079792956286830989517601772358892239966721402847681161063657169899312139455679892017362034903859224816128051523589146309615085877751567114912799692521225238181671893076707631772232582779867700980370249245182373449373786682771685579038160571688359505768895190523749267455505737354362779386496195166931749663755974221749856136537340823183095480425967283760462125496714995063609341252277701157559020576839637907672270854584821787744415114540027862809823971388571745210812753820920108834177876268508680362797116112944197926449056967754043403262109649050439261179085350594457544191854682155063879045665044312705934699645815700418483942162262926255825286075179671792356995689233289952587013773240683275594333552035344296708754550362222144297881727483378095057346911439348473073462326068423274711790261480208997885634793927344629622426728326988495787720444527582746618230891173363286389573703379116890847518483050226438175155517907912689392912193048279061287748662063373582865447224001372963496198715895619984184831723989142310797226605454647292494056455042493716862776606691995316185144701870664958957899060620354312108922756629508483293787950404159601743401594849800354073952196707417328018668878608410648424853534977695596017754816090060200685408507160184606736077845175775547167336973535120383177483717992881138158879769105018955038612751636909725542367822941542848184637396274783452663905413140552614146948194043154440070181870990286507847029308576477242212900627983669965122481107020943850010901628399740490853735620285940753171640384440819757376715044343551323352542412866718965825320351784870407772123199305111735893233601157337262426280631136972715402877261362453726635823501464277877439471529362350634211905554654327458823307089487379100342214919249715269022122622633612952471365044230092890875724566242954267846571951548954501932874564831744876661394404121878402997719830280156337399168407961198306982822247631067055168005277193440773690555429141110741925450679238638900196055187266867523005063544300453940937307631185453397177338720266841053266812968346166485021702733343433028239260291909195919075456544920180000859322271349416908911043716192626261297692210796291378342815915556211911726411787078833080809030221508398785981352607194556469846624722140053167429002489052635330428436700275763000848542186717569460979627913785017919022895134507986028820834629895126406689105218150712461559148602554688453234926804097788224055303160015232586849734848250541643418296073548333111246432059970215387513367089349081200766644633625202467210466117413753466308216336426989856281535288415455079791657743472526054766259369881616774926209985105184091469728733424992326289871479551036624926064487802996504926909417793883254348392464202129236061610353528897061261635811864435648525609109536393265589442561852611553571659424623867679287623832041585944788105106860200986834147290858302255521209929575360609694932312629348995196246927800174717653496300564832438693951494008015837531178384613703382727546447745199730948262952996403111416742927686201985411409973794986289410593693109998702631661776531983118339522991628987633842525871674049986795567045351800208266168315143025450026881437512226002446037518375285463421412599724400331637381889599262210997951585326348150517285700659616161804527235704000977675158601155787309152304575972001456069655370150341552102978458849795167462405384607286375270928404750382651912071812758783794789899511108186531422631623558129511222970777614725783689510294737658614139335703338013839603306538976466374060338378222117695733066920266959178185052574953499551458834378394466800329910793198479772591822848756712745651723238228596859648066352315136670927623433425185684841043235428641526900002201791802551134085755890439139454252678953866440874693046064774578550019282230600024620834928203623515575432011375797856485991920143366027459057036389649384787319908544855990172431337978795366578743992575829859110176292411669208307014890225513592126101098105901988324795737567587827357792804042510710763401198349692076625354008904706668791095530214930872482445765378429302385805752808381694142158074294510218640870500953292265498790081811126093118738806985629594958277539914037293326477865211309963439486080540170112262592284112543998891849112692917644351599678385163009146190513192436306852377916620510285813509907868235125028365949985690395404756403873939246853861811273191383798466601454760470299164182411862938804597714275027715609847675290234448241410048672206871858728830391678022846378028980177539187662679396877651573221738665248873676424521335736592485259009728475962226978395224234952836002131864054303570375960622309604606172092283769651358184601593518302486810408540607355900814701753489791110067607820479941395913392406028786669829915559048875601391399655560278376536034798723671627387139298004664750024017904710412816218799326156357430703834010094940160275986656945776179913280928798878679934373060723427304832914985600301187145372631177349815297952795072006955718719819950446792859257199032663398581752122683147864559234827359591040517786269970803827610117566894332078114008574574715608510526656638910246109868753560595966367239900434656559765272393954495290581997530081211575443482810594282068321695962261127858541051573568704530012367707561404385397281540781013903082325345187611656932956534342977274227169341776907030507591715026624604804564446363114362199464938458391716821607182948503106762965092570963078006562655375670901915605788383746053745379614312238159874214453831955922792730101866030845325691029507798618752861250878496300399798376181728618792772115019163639485706077295360909321800939468197789536947313084533545820771496485519453499473043370834491455549883602507914012816984867579025937471361435335053162720462621861429001180764396280796331640308367771853320999092858063706003860714645594848643132074767755212200429647980270074185624167402093287974690926580300305289734616113081397505573139193792574651457873645189816312138097501947227513112705272663161156122924542249743423270065583575346925436587473287157882265378638564301703235442187613272540605872462904158154239702974376235715109109609767292240298085518482457323071677478969904420671576254265871943971887510546193106875755749836545032747058987866423477107928135009894888600737715024537957287394654241165554840180739443112878850996667324778310687324720064641426704467404054523274533568350821056051259031057669371345303092931957404986158818341076503173924350101382202748108859295712603579675386353073724008145748294192711310305046313469165874700508298448715971323694928837659498759035488841299957602397884736812138419337680668403305102169322606150897592830430611785194069742561033424636635889209439029859355092057125680684720691040957920563215413920700232838375138228925180786074376409303999377416423342097582402691690149399886444834464689609021932840032547699072766632201365575494892807398471259812896121448443890161733329344183545103689747468324383408813214470529688587579959599675454791575445018574492423487533735208872972801433307638141945087601359359110858065176432777277416263190833939546278109208162248212493293875041964510824297886588306804139515485985742528998639300521873733529849220733393492290284543944274554922017164285122787511736507427486056486194423267275139082403300312348940864387304545369939993913581455819106574590752651845106972748155948513252063228934241609625822225708124905451759547582410809917825956254074673179701304011538527382787417441096550784393655186728199697832810446236387981998611089680435326347374500980315078355218083325311165832404780365744270097965658308402654868036082048985057211767964174152995482313762396037363968275378044362771258115288735937084926200034161724047776935618904662973435464604604711308990624478258554646385800383570386287231976156964484956319065934785009667790347740867958824182329731135470572973737233313100613302421426867019617295490593585702399946426438434058739121913436376671488662833774426388902128478508799478707789088871656965931234674935165123179416017056406022473531164920528984048693266101609879224895101897531003863487989368782702034126601488683047004252145102194709751393473634700371521266290799352153938347560201347945076778870040840724305041188041913119587725590363918791231256183655993081732150206328527594864425053471980477294486657137953679093108049052597678017194575976259940592837342048954483751878528662779103878328072223587831627716159520743986101973063631489512810160419450553155353036896855443824943410924594032384669346558622356823537299895256513934126834949215925426204860517734912169543405064061380540284147242059268308895980134288624128299438125771629233861052381073238450425629345803572315628708949203229245159631286306840598756463577849935237393857999411027664031854496929340190258284146046119473691468918946060320069349046608221086878799912039693773774060480887818104256178711517492923158433521282331485446848441595279799765872358862221027507002054163345216873360262143803007879110234130323672602157297230045449026702365266806586720545017144950579092414693808955605506839053400950913070392565768808542334150755442181677210674237132461787951765660198256752435480216693259953911322952907435493627882878007941498461895269034841085963894732478170420776587738344334414595123460629479742527006436935479370233291159526985318083475012379098880142168718605792539722612649857705858132906005351910467330962247342219502903712938535372397137248827958566825103056389857063616615424954079577126352473935585897317693231851160785307775690381514323190605626908658609210026488748449459546718601944551415654112126308798696345569016627510044540084878879369959425860381447816539048239368092369886639343567989042421689068111479755653404049179596252729199682872591837179314055014007938697748321181650264383725741951540700320011234685632207750826364314058377374705758288059955893376078544420234511555287046099411897699741543713827225697613595132366397787847217853082961816686267984971222983342321489371562239208287852920399136812868221680210784891581325712270862049122307847696486810326215329019651381635806234492458002622976701840542409484062180725177314364216134710164000464671480988218258748077649922896132527745718904001558953100589935757642602564081578390826145567139738186154694980533430790726371390250741024222384916513607792434564283448053743655331347488989722406578378885146008929012595054055935503159330835127292535468832216823393632621260289148170899780758200451868016657250048872635045066690737904870445021211797458430408702118392890336082191083551165957384494757709233502242740212127528780963163802360972793395019981247172667136793650432433118232471580851334190833773558733537144007532170504329207788617554464928185301233692859817779657921273618103055561483086457594674539736643492843980982981035903496492130928418441740425020469844443897041325517992346585394545271126731843458354141000774750823283256231855927840081206815330265045346389013861271951544940220213465606190336490503721960198199235264995686596327678661995092313026905902743687013665750487169015099753483366798705760669268157059307195842535104394728111298123012009683287878208458757344122639438194165477265081705665461186744115385324276174284865651200472872501505729804683025431140275771073642152037306939694233176527855633513187595779929003737867087560094757899912336904296451300703748924356084128622468936297487030298850355538321390354401112623051843428495945085075429382675011256570638207200618587466963111269816134931319091107526468814158920518752740152269819196322767852049227048794729273545123681911605881186248488426777324505075516736261622244082501843326296114247036364997011264043320387057726736051228308258207139920055120200737746413364093517181220180078412668112729796651612378680787423935603352926526597450265135437109252050728693640208691235423693109207025884495653235056641845016636588040491537845469380700344325933281695058528388881707460338934701022198029111665838071557762312182224569872461617231353359654641554720835607378918923141679367328512892962972379740037034339631163659557381527096936907510244332339010068039040672867901299785360328801928866684404565642536632333125570238898882848092759044413940316964053731949705741097902598765036445616292197562484491147935346672295580830983640329624681640575617814072583815581411729847891439239456299491297573405827406955682035741982383774078159812173702347460135176626901722327048397134072799754610966334533466501665271575758773248945267988030351520065957527357092331025748470320050699073388439658002415243288708690420228528679422557979148926854045596886550643588161796590964881322153042266084543189313221221223273885599112248836754674369959624431631678605185748816239454483739978370814809441638111553214758602236572970883211331752330227566818294925007644345133412338600424891385717844187835774838381681531406681887384231515885277457138849266922046447174815000309806117611811237948339201883202436479563372320498970593777676044502455580404551166810588625510717438547171715542949504404700414467186071924793882411277676773287111706587523631519495834652983357704610109040312526112603465738655467737763136998664104705701325651319037645245984280013243512651772421523548636496261539124136400990345569987763608742408079252538072849670928723490532105782778495630801046583153143537213502767621603766567326929536567676234159175684659004130916191774832694173790667875595570422088727544285878258218067754763519575636783497669987897933889513875765623276529658568136468226255615365314529719539744518916397624798298020484783977547195116061695200331066383554188833494338184492074902492304331672354629537971170969496726793421840285943933010906500941832560182290511933484734623208262244428513326188220671320567225004717671895085685228909636939376224481511277215873424553742806613612740621539948113452576613112173344427577533954840101226398767286706643282190062852349715709996938515869521193953344904024319688017391945569543891204572297841562387109050926859697212904400374044177088719412374115798210427621266902525317665140485031876788899701123097011696588877889073941049703210959176463332150877539843755072604478764553223876806441343134725430760197310106218923537062591189082840981865944079113628675458488456239614699197366077145913097649292635849758181031317590293174663079819852984899325831102480848533586646858449153017021504298501164260803465919464184919674973422900354687520159809805161101101356810103886664034962048233202176385306298840255200186291284419873505437556391062918588524534615100727714409301103193058121056036710062997749657445468131285575138829861723316853229693938271415238122168837946319225186688465360448427839134412257746509369078574320522489794884436371208855482559421896005930709746003348806732482731263298694559619238111547774308331601571030609932658505988696587766989750959887354648218955203304457153813598592210162768700910938731182335435124848149276680784913062980402667466185584259959570025244172922686908894164747255713533652599915780332044177729032644762170029770359203825695666071242537527410844390006701232581611263786004283939541226600804560526543783648365648311484281113565583372902727562463894843938969424153396711341104085409007008225605764811277032589694333676491618883487810354805644248007029118917221422710631811517956470728092176018695062258218138718008065703731370106998226456140950672411042359340760625424541193878167826107309260761713874033787893417283564124958158845358483534197401946953069114342827346077216327142866531910741783785378771948992402769433848439282338133416460027041189333674864754992367873033579627750744933580565957976007784797896806664311242021811589886648424186144167803459438107517038295262493966247887617275126301874062378402626657642741797474507626412517084677963826382098622766153997007843557553007848599084634891898923444016859627367651753989723827973958428942119722467765692142120554273229926762976294161026365593197959900521727683780454823256032521048705275233336144828819810200521747300623767035096525240348368857321300819145588433459470516665667469996293128315916457255976707037581506106033083036992708444889898541887343135170654618114023698498986562022724086292069800140436288014015237166259238375883476851754328917224662043100726018381369181507892666980702396199257243089977819433555479297053351846940575173336947868683308641107141394127132770524100127491479878058254407813195286256557434989383270190776171271023245654326534415978192839928897147533726154125726367902951002421742608494309685803370733139269104870906023113054877745726053647669964762308505312295710581626138776710325465336480196320846850753900972359018928854346712879648824595187450473270716210853515912610953159995683197059288062883062065046749326546594397720077055025881306239212688054732933022894502939059446871489492418587152436189874185343161984348870691004283051282408908213149668562151194821172609695688695569196354312341179208389557736920763934442821496246380762168198387647893202892932392955243859270867848724330293087021230535924093087130282090410336014620763739249312403277080595129305829378723198054387981322121552276088274048124110084185030367893077548857818718863824517560629726937189353999972626328273390338224955747158463437356883048014357688088628076184353904493561503240059666187816069916697282370666364926618217868104971695454663627895607111485195299710625218721135751903470342133021975073783543438647544708085190325113156250623455303228205661630492396438442685212161018260546617020027116366527240835243992540239050042569097476806205121150558631121148812205672013593245532888831717067213015743230265321964323807882900575519932199064321899276553745864065427357505083573143550420172391264506979191855846551025275136624163707179429377298498511572972509497693561764873012160926838078806539582426528252340036133027771219495007853869675063585496531231342356984953969327383905479805260387414971232532044601523529222275609587314583466766267225020566403979796016705089041224533484884545151198190910507600249900934433058453763319973510460719712202599151657365178649563430216409701187402532207899839213365535246781158611946767334425766873158968702097630845974937589020182918552165286002289840060977532429310611735957765931218916878541326709954765521214750910737826884104235336530988032851061820929800959578488420847243062050213811312685605522920339196244927946523383290938850377372236569116117293103950441209517642054390842123747532836824368592004201264713152626540902376570158748664402794913320780785466536592882259503972322551408748232701348318571996531187001984733555334767486540222760822222895332399522847618396796387919588738642060348561596908630724603709457667146227948107200190052510264150381542444576044863821608507688495790950637620771938583509417277604876682839210819223804751434385190488984646414323918013830391306776799854789756702171866911804807788105707145404681052501006386831263687632294714461735594428556652052122820763964041662932740628239656765892714720584598381282141518408262884037292455219851830603361074708588962904027649334694077596710270488412549210260426932225188067065691080498302483022853676726045822727437360871461934505169696343109917171668498587525938199931714211220058103445088335024101484678527827806421836991076711410057247615419102216526793316061239081877335214342943179625317323159968648132821219491374837361980401221375222013372675366670336902093295762825529635405845916779812012788370830899070591576378793999890547612092023387924409071988093987877641802100382409275851442692317724741661745990193343650507181927451677248234317866624377069219321782439860702241911080710314057326333342526841806347797912544352252992322666755567786573877232417642812777068576372273785613255439935338475589461233888744177609372184669998963109978316862881744780283597492042125095904157316905431770498483382529644731312280975736920007070187439160846770387466817026245743760170812509033615350275731159122192328304194168299262743047024270620034656929912241020766694659545129565657661991672425246931402704010975752838173395015675106990602707651925311681857203990878475656568741966997741463843921701206279165558885581135089410809034135325339721352368451086388860268836510592793618542883199501940659419409594625381947361072661936536390264341149624117675041790207334124335682631434078076519158248491891124222654727119698360524780234778940964809463633630917972856000553497168678015747378206370920023025755285856811604090698397328744037827618723785136338470305267445539237252224669010406254078816754442206240294663130546748856722880859087397527848914660939302054064902766842775185506610627976247317857647298878387187480839691118022956356254939285954381465180670407837624133189279174240357625422026164034346472722528570203507972895842868979441366433749658477043848496874478492340148908467659536365483297709431485193165818454904425257875041860602904646151600264355048519918462092402558057169048535663257267837935702035774682072917523508572910918091216882134800438376469422993540203924434526099354390097210685780659725397836017409468513295580501351688501950195072322056216431345823380899067097519867072873258717832020572770481353106063875544280653639932773143781077955767280472743570640902879178857805703777021347912913609363543339457684470896993798750708066537238299678644796552215045090631473819880059603318978979858370650763393723553853849640005420185580817175858607732680217758073356554585393316639955313078976024947057084285192311293327304814180459590662072343530686600936353143127691643147581389958729858479780357524169050817243736059725107910205999863645746809784314863243353509023196161514761646203630210191245796471555573246129420276037717978366243038784041833672490373791198105928166162281678170630828758601221270931892419596479209381077437929914820617371237850159998847449394465359439188474817865466000732629637438710933170528301141483535559142382302608176502221823623016323008606361713349091137582560573881609889018112327487533110017681868974968396585159585877607781873268108549251564625850932579018034277306885739814369123308905250662755229935911356277137321114316103215151722864365632882762089763698476024535379508308401496068582582687274524065137686818999608338644341629372405897379460822583206361891822627609104326470325948820811827343362323066270526273354417931487647976288801804156640723584823016296484178938831584747722888349903172295323067146180696778345829266773644470785809081879088788933035513179903467546185506071997184286240343655821855288255895290225108361642232660151031807876475271399272151752307662989327646999653588909017369169540364430529270227444120381172423876674160302290641633438636389987024896295142313711590017446246099917808802041330890885778080855917776555100447793875806419446652528934533121444293625223023184015451445853900475345971604885806074630993726886032574924187133615148043422216054830828164226493758069737359201301363090067945825504341720155484147663548649938093254673835717441930809685548679586803105222816325621420422053683325885477380354206473553382776428218299774223182291654661519177093207705481436647637665882791421680890923573361709095058367340646618451242163120450440425604734944691287028884559293948171862685760305778550892317620092473686086686475705523456664132527784644530158956524862261082850969136530239914932141341311000526862518944116362863158854998706410339961884300866979667433642211560099723769695035812832327738823265549865520798482545280247295807683948185590281323159629156405265254120031390914654294379704487419424209609985656484991962328016736760012826888519568503142069185266378689961711874958968755759093523538371623724130119152654636203102307732958972347849538090252995122232686763112803623762640259990991909181611312170268959719030115802742787783754498224716139553070019167117339480797769394031151807451995924651307144711273574105070676843836531364853199824236841489692991766205489382553267173788642949311052937614096375566197587254443433555650864897398581404530759744695534063515622257401477174398186876784504458867774682832975027771945807139094583351746006763681302786123202432149614571223734559164583745149006161479502827360135016564053299022857632916522554284573765210570729655956188515604220207326097300790638904526389487074365029204499141064417438924575895823344274349542889928731740497378746980537514632013688290719116543828717831827362692418535968446218715033014864535173321995102795862806929211781238456386618260021062541314042142060174914247047141460637257759870066416967356177381766103416402403314100063960969813423845025511216190799978395661857695599938464363529028348983323364684845064536534567942791330377942115970657554639183951495360868813105691825474258968742887486541844320552951385712180342112966970511421870440491000093895422214573261556907390867562461225980991113206755914659075189323998947837341601834947211674861245591784519545480478445596134297405554159070447579258274044282879023276495595613138272716830516436354525862897798972514953105709674521431090057830396008715408393559691392442648763672901267347487700774133736268307387990240895460283354965621375786429483473442431658276867107697786343155110077718351486327181572801386830792941394672831859369735397448108661921843188746359635582118560516448205216680577792711955318877462763459178563788154894936126607784155679823124125135077672201075278773423828694908992616050921480546360827459110198259946301762568404004352964279663129276382699291787993899582534521353414498306953206104840796315625787607021484517028414225883796188127117699784550159206973425099745286631781954111851687469759202825721088033769354209900415659873455526339585134378624152776489199310330064303479238047734994777520810470816473957656030954806684977120536525541636065666896279077771501658481604298315595343269698470095032385685755701262133296794385248964135462257911978605206694405060205735466548693657926636845662940569712926788122921571638685838547117694495909785921017675611817404657666440943130446469516582419577662741392622106316628983266603662841805987076748652862480233659509748686692514435371118626856661451206606050516416956488735262171475618898109908600108142809702233925706288013931952685357233612195074930053436561858635269016571678688967539898884928877452008697753730426321424836730329717074284507644530832449803257460751349792308259331675784271154461208507250105242071847723299353177464821862858170474979678444848837099788731784320641247192930343645126851017344793517308071022766556655985234179615467487798894349650350594497311381383921305386345875889192722469131109411449280923174472151887495094726804535807729620761730875579864967624210494967184136887791452875960038433095265316383868749534607009475141393324722638802017987291626139844412102806763293682434375767289920981719158281290158460298947535181679629420577336476218976669846239823770578717830642225017995557164696013018888006332932051054580144927832463394091721655247873841274638074424361523923957789617406667893039512827074162846471472685468908329000158632733403589808448067251948043409910832978676290185745936348612610016502452554240553449314588108309730433566716428724810248879424220132720024920112983519126940422366058762575470662653148870262689790772991851124457213872972433713231713145749537545281815397333380707889681211473317130631120684727987462100331603592898143706936238889265729934348239596271002380210334205564205398223417771525241018060603152589834677489797587018584021377276382326892906256498697285727721517630805176034748380442243439722786245114920629598023009430069258959027977168027526525864997725811501339178955145094525763207566982394489101053339154553632194270883710254390582630179325012593138089445987800804528736009333820105688737433700832767634992195379163201260348748189414553147198368857682291601338610223086349768412214959045371053610436608530319433467540725087547274973181915440866315077626680187668655044950185262041409257438563382883464502639221737822180134836737077646333921073416356619901747503140023899177851796956216622671114933503503758686809222506977044488371194479838314486365644546850843119412394362230775894591888843789135768973223472014631339605681285268793426414491714318391002286155192717470846188553240402695410873932971458912094947836219619496104089170863584157387524960695478266453060960581478634231665408886039442161621657117466293440346598786789960035579956807933803450477727098345788478070459672542641186749272909512661911217708394013511217078534747701177194832247860541938782785597636397023921448236326794456639981191570447179508518653801255264740329317026348205688709287864580170209871758174624384118474729041986706186997964421286179095349695355077461617787277582238350884618220739282877946217372798664217967696034906181515450599532426637579282548248980449331167836603376354025331187257907198624413382652135251667752457156834318923372813230120979581119584541179663278375174563612953919854103565701987120428413690828009154853184952768877577179285278394559484060951253335597652994875427143234385235518825748661243521005683507956168203031832664960581141736418137359144784409734073529767280255516620551932442749040539185172840083439916430840266929188870411507915824882382668049760520890982640372907340055513348992769087414169403061159534999126623911664774024105085126960292607596101440008946761940510848511286871911814998854032001482527919709453642602294553103245627944976686572694992490484468162850635432003825662253294782700603601533723394439798539646848098868971931124111847394506663801724998086996960859700175460053786614308841910771784258604100497769026863131384232569295291209708120363649845315973777622669349458060837094590552223704345237350013201836138408555708442210847710657109331965782311039753256307888868479179905400381781319559794235953066281395840964980081401851713129710989597617660211049332230851922412189883394477261137556549914782112069351148035522597748708447975703099837958140506320753853280444775839645319121820863498208558151440883496596117833487928784561065348358933402862197454176416734894748912498392809688584976295263739863047501063848199706923083487862150694586484334754037139471406604407850544697669620626374844613146739748156167914029774341214602474354260325895889971948583793757873064946989160579752166267610750306861376033149677088245357015114701214829983185212100998648182936771279259863460703207772719661985596781175539516952373389909389515358847470374552857329144987189744609978668048795819896096620556209002031871502905276402216659653901491633570148847714318716129159947595491553506374209771999074878749435531748723032901989639285020296028964523070285855778006289527484772328837214184619134334736163484895740435549807892159920574787619614221363540265073097021722683987351278235460772119081377865189851776284445434159062026922822831264667633325326467953047547572144255098954546930316732983338032307424556928978987740631374820680399866881809586655129393280443470799849362546586609197027289606428653929183639300234163115479873756726699452638926961797536172284719245552303902583961198310190285774732490626877240729735953909291403485664617985220659170683142751645757209948385827209424139737229786492323459043573291707629281944871554648184194677173736832230255211059640719647583554717654482477595047935283648829933677577787409996867862354619549932155131850444422709121741378090064845553072352072263803351710091648125888420267309630194039598305228321068024129659743025095139768250145673791827495046578279909732594714923181444560895596360960459175889711868365828228805510988549109466872697841272118460414153523399600727326166418706307175160703243081748916568214423443206244137711699685783102546132332436563221560042369291390420644398704917707357305114757765637287970563854738280738653921709439568989003454210325474683878094478610344132730706780190723748294077034201286629782698258138011694401587727783395155158166198766174835783873891246147476416501428737363474574822537923516040021989222416089066918471544795648938203463857029080908576960882106939037432608111475565252725259326864823420453727708675728753330171444385877430887136062935903172763862090690005101324531692540553799694044451627977602405165738795188459514371725167145095306081230753248709406048586037864353457811570665610767370604341487100499603691812136437880281137187825406548984291761444690748404819560029592549685626853841925796808461464151604151751396839102676786574485350090315130455893755189736775715463639090685445837242710486014954353152481542845741250238509984423463639396727609721913763002646757477894342510001954695558001855233953167355116972148053700600616631070235451208378024540919357029107848009064329400607338271390972448919223257963552064993369563550730974054336451802779370354162498111954812677279408426992163561669224018102476819591401155836744004170210596523948375175420518691935763763302011421369047885390644490407774050258797553967896789330324049260693723319612544420845044681997566983876525117996192103029992804970349358821222649087379526752953555928911587466584977226148966044134319582540164992829568565225133672276045977801942488043972513937978374954556436960773343962913431941814311837117911851954839782128740390655554546004274426732486264300052449571384658976428968405522071751505452378311081916243071333519121476516990407375312623701340919379291125338279201748672653517318163626417009963391455122728249408295037722851928485319900359110780728639186926943317742706159933184720852770174344171423742641994571986383836501191488767050531539234317764655892270352176982590980936329290000633528605921846822261354241880968916274273444231351592349932657886602324416939579375490030139117509053465407400194704401273514243911202837908748192008939498911358527590267983361628503657974561218811518499803833340357070288186341379144699078489565670151645451880558023735892793158648960057019591230563259197133759292915437949624794163648246668873906168487089589639083734878521884093160452782243858697462013931030463728427469512344221142962767049956484572777442749872409430531850563682832140928584814702978562661359376394951074751720650861919560506757269281475960785014745514057975778668789785817086943646867265436752535458992862664851962362071376125788004210778930244251128980172632537663369457407520135296833450312560896778064878130468026376940358672311608593509465660582753394384829936043625899205174921862811453964703887699584771102083952530513955509947910975663329918726057878317077183297676354934804360620664405953453095384653386412312462278085798446303541463927508888433583750602180496922406183245006857376289285653053872920155107259272474713666857908414740115679428567046880268272689573700940901220644573838169201143054411530618231495705805732657934476295190615563828965269603612978362075171620557061351648337523916211616963331634183638333516113519206576580826700011878574429227876919762419855577763850093682583709421943137071367753602035725101948110993196176412950836794920683546643559748918385120372864581218728632821241854799917748509269742018511712157098881532542150341972113155571383681836502037619270274962243979329792811631383269360659051381539974042356027791463563823506553830669943825463255678014867398237759084542513411073718389751799254044922823937337792594014467949422268123098518981162251465160302915828323303878404253821408345120537078271315551604364433589664103926171375303702694100023145899747034525108218407309596367716334998355791575752936706910592037664309909060632198577171350249767868117371682450051624212098804394033282731890705268206702703193153406773473416553413050871379663729137135621591654551232378264321589764435533292765853744381964691971750046120489425315714756571374609146545144930865613603172355342232299012018350901917016769213460711727949830993667729537866917213483154044609978186866619235259005814489756333596384272970641642786106749320903327062556089979080145027353721276288783309772141554580966612380975310402556064703052126801069314235588051523404159710580460693218523885193492276928846597945026533237122824287671419913909443108574306632246741432509466918916192641644402441389539328567915267806512801857853269666304090465525697622000288549300185921078521926039524412157295553964030858898723284440180863203473805166696206660988896674635379443612700039704795953174536856717378435512009521477068835412593870611518889749468919093645619597720650572135724387889505374724659007556522135409672820080965350296804661361866025573356449453157872770643987577862609782485319037145418835885373116347255775131750219501629507797721246577639538293503594132332659216197372830197807464751627476046072982274271605416438848868489928217761804234243431165293498674319540873504335027212344530965140988466402622878219035112161809117690336206543366754260066539174302057804484622233371185603788385520973704957490873920454736612341446242587732007619955368439780340899176152876378645777639339915109828352082968205511982224985478321380906921090103474844409535182509941257153114312106134094270011389798418067466322606615953349938980537552973801603605448356412796228850384928009168738914805665516699839312751589412308169615821139269846748376608698116359345247433458645424618519495130101655021732541269246792666853780149651272058650259306723490183257463510940746019436301708757792997257486722327806179198340685374628117033562101239286600585954567988161902404668650119676923081304417945822308347894782692454618758059253212382954373165489196073951608715918211778364911642499848629323905686171196997555939907612709530694981565999880251532028992741985412045355188853331975299470437261692224787499482526768773794052872816564378869281437349105085950155650932029802041944865355147346095599846972638143426483192911917809874218212509807503156281409054525898336643677551795082644000274911352823570469719458853187968323241625480372486817089819177781181647399955298082183180501913279044708032265895180249714334937668539508664441296133645646858872318945396493816857174276184457081775713636500560126659283067904881308106410774361406419716141622167148979199409728754106254847239321049605946658104346298092754959290806366267093884464306255793368954825048136355739858185715083279577850893943416547738258057678801689114953582520904571836569517121809547905031902806152847298749559734701722898512346510690653010001844379233035691626154543242659945482198438414183440929904332104565029316933767127945710269667266811502376456641360188501082303428731010464086265778134207160259723180964955766771074952468624349545941210825892696882754480741701601822744248113821084931680630880110311828781044371650001390086539630947941280030310152650996438857253223546694437661788903432309978871361692153568151219394349747056117490217406535997646380330559946617818596681707234470629524966875537801634708963096838684128988921784216252777744360517197936549389475731533042360760590842097862609004510084600840688887199411262794756280845692547645297800817143695799107299135148145759637418054626090775724731448242646012618295756254787222466272952499358906988335597771146343029307875088065472119564798908701831905695513217519128450977032681470036211018146976276207043739043325704638910418779394303819861403225920582158729995524009885014644287376735514537592473424019917105586611656130266005972522122693740954741693794742108235188709550973817560153205280336744006721005953357885345646347424034658905650499462246817087608360604957392967280979211214433221077479818580988066724226950549408399617233838840246652149327387204077118952069227261308091838807154312928655713035658845832772951750318711138813813060256993898130918382513142831044271827356272091002116492723840931020514313990505673921702263121556864628658233496892458640869610453523403943178331859701994638003622748137194800511845125942888262407825452741920511637401552536183846972086785502305972219159360090242833603392303073280485809277319922726298919431259587175562499590583494704341768651045527492817070937943822910419715847351486408410492933379483785901676685444089606367870279832827854436297322432850207900188570986796942243207585858864981855551591982125964433803147354417676028879678480363598167747771978699838321594548156702609697820456487635045792838485169363557577864096559690793927474037331847371403941012942064363444206251120023868723325089444509515664931958953262816799619223272139651211323617434977842296427315701533547254728621257891376757720003486559136358940980644075247395925259294971421464917023067146603760707623587244522424819991753529790527812206372404394938950013718089321038804090163789990010077149292025875860754816113454511186892064827585442470818127394327830846972126641027243869599405508110741911247379479933171395585140821028797505808126431396343640884458844653747716105482890289071667411502188870203083390629401636130114717332599412513135797289675665739609872004151464322856204644089426211240826335332967638331634102758219105742940354982792829872120505189083254173259512250163449332594099867733275534685163802541277715320124088036333304497043823856584211287135172255619721193965194378969605946805440503563236187423095105635625856657083323583773032082335505983686105412850572572330421298969293324949949566303439709693729442189465271007082866492040670313760149495346133778391922811021583799247927946402558991001420434619758299525370319403590414054138917192242029106066225488765787215794811583936794652439003258210386337919187541011117713901384988866974889685647664879678266392769421206776556722234230906575276795772996356620507888770417151862836064088104728829333447006777003290071999468282617981432285708415499928666566534551401892617350128727636901263350115153993730211587708868481028362258689824625942532058350557776400140007167206879090905738303366919505721447047696598484995660085538682571226641015526260804041662161811261450861331902458974841320916522697692219141110030220310814487463779162620386299507216692369309990767886616715949738249354311136534186077573511669265062991565257555704829629533531622329507509798067952853278059149400114035501539466735413851807089239791193004823148555463266487925974205398230898935433104637979424370404592046024467150186897815460045530727219148114713010023697460694270071401131673144266473264878835878698949299955511255087407126879404547855126995553769190995627152395275754782241608046828866674186615484258439322999824202138982798167071893843184523648407110167493759985411622592041359177325655044383076543995888697562541774765867738919114743602627675179665937405853520160179898474608222705658228998556539491480872694764741068628035752186936956460450283283452496790588735198729566960575490254603973839103435205455502168675415634244993219079659101013894368619076482781663387819307194030497939801425501793604635175958304893198377027943059083155698852138101857484207557235049383673590288034972221795870646912757249939230135690038075527994516472609337915111879717431025884472876745497821371240717270785449804528707657318139842647593716923704469461354712943514789387710419400894909116977489355462964596222859617697216329609707070181978238925385048869210805890970465974571833125851171110411659776258743796221938347078833304456084099123846145638226993242705079128288772332009788310304811572815140864898141542099375131645043800784642912617505304605529007515382121977755480231641504062964454785200517944836435336344899516836035254110572272161441856337568141468967553642933546162452279529656090139465483714476807121244425238474679090734516238090243424038983613171322763171606566042072200451643041451544303408804751787837187852537230788548319591512804378144196986790058850227415108615683821103223921738261117882349790772773187062242747376493195502089528372881111259699505626343223783782686977692628143750993805467731144151636887241242668968197838584509312383895897243377103277876392986397084206031686588046926763931150625756040706207130025680379698578035309772707582159813177914873724163240865658461844869480468461077255716198858572072544195314636895239430645655685978175762871395132657954578888642742876388093431570428255860718696932198405880831050407590903100168680134376966801654960972752877983744829013996848124739669258231591354755556351018866298007671721330654394213113760276610299223923545698996692719000046602205326107478864013582351717629365458545264773953878266338970783523903343438402239033158078851227105917011615380062417792191178532190431680228246919294164355196942770717174670158315279931881288782582484524775438486495366541532478982852428941811997691586598247745051313971401985766652387290466288619963626649888750105156685128380339736038926117337598901466577837971383890585070137189314824998245369650977325112508376412726106811782399170691622733551575402534609134711347769352390959146738032257421614434631862842989251883761533252329288667431309909193560790641039904072081657945009420947307099696461668626179663434816950700031702698370728852986845469003183765347571901840965867034017323084628470463362253899359599637247099339612439009548385572076373455337681441059127663782802929683603933199809612170957978049505982563427082970487635293192909249934408237927605500938427642317432661136214376686785812005977730887925618956589134154871015290131813803329870196757036654569681731633324659888928361745540576803366555871661673615340693500208968797642135778042459869769483845216141960632833703524256851913283838354415289172835437777395554748514892715334115370957321205179408391080460040943515413296343104554634052069089399755892930216238115544909656469519289924561958896891847866888667924578098528054354384284974863451907126321186255140250964917309901003521396569777037254130848615035488137539129622499728167701470736262434182290094946465501019555944097583998893422266116369695558676063909726679442730020790998032735560253193150744070566453050947591873955703833133854829839387158430879634245357296746520311317099520556199939171394498087836352065141317028505879774035891813713678017312496530458685924576777506982260648319935131544884311530490869438683000498826169159811679761265492323224494787079330348435616139056661518474689677027888323196769263033691036272676037331900493616093843833375189497933152792290035371893995357537957889984561014895043476226333354857499036167268175748639007806719824746581860499292595483399038063067414010023362711540564227705952312342903848654155965159232367550382626789351891764483404239371208719685598854457154602462024330968590402103657865948482362772929196960879760928010757288326834409897981987653357447413812007312691770014298768520203738156877115343510476489385265071473793513908254071192958219764080097560063488089688772609200200718127534258020139003725173686632030480315490551115510671531869704659189030108701860082139430664358964048179913096489443887561586519707523981806129912218173604195865075114996648002431445606429824951089408017060279403025386164420922256050571953876350094639304554189964769381330706254718145238570314225643668902490055602244806206225591776394874656492345807898837230036279308663706633264001865599950645889294255267184057831546275540597261033767027986192488983990875143649444242831238221738191507697639008020840624553083345833697468009181231047531479339100247418062201403650731523335175303476558657339767643010604646338695602466413844236217196883005718953277599553240966390078860027831819200661872347267246771721403104477635105984958805249980426178037470101939471197346960935064506281498998532971127083534755513465961267873108045523305483385655758996563693585632765483999055900070118955574844924672968274330847067250325376862182329612968271793837508178199428128794141867095357484430758129107024310458766414370974233425971388479249851922615836155447847827967974012625064616392768086976690858553875995528731283323229948823827259125000427833427165984667622330325845973808147038233103543731141935932096824878143926426113846354676739065163733984033387642213617057049723264676049735557753562458749846090137286073172873441327267690630649586436470432773683500759682053868388586689648943576274030974174735264392481690564256335608181068031541290277507310772281954477655061078503183544875854724144622612485156250472632456099538787331468747268879833747442846137572752752400360940470630974464149713749318725658221199786358478258613592782395856037979696630351483528062534331735955656590332055479313626517294723143419867657396148185907091347518332172726788215885814254892981127735682634865006492008939126976480867903177786457094714213667211731174579057574707396500161803744417280110596193325012897815141923032072941600884422020450278707496557392140712822924998492697392468103942388164694151911264311868075492593287131196175568186872289118831047891927085682397538522077289080821348556613833331701943995511824667214582418217613301715019981494931307518698041934806853029662987076920936582791842351680789412246346500341437565569224519301719609390536489618587140012159913764481188002045920217819872918051748550299994246139478333590330366195636063939792357865953988201524256444731700427340221689518995620400730223129941132783149445016326123016192557514808053295306116380926933557075226602574169817712341100033776108216781217043268576692269269433007595808561800603350163165353375332640389418284021605699602664097041637792274300488844103077371632427124319696698954139329985286228620255697006091840341605315404909485804336622870295630104783087502063019870451542171200073805053316987994417805961887970981286071221719649119181238830176489521959292158643712890802116330700757221904849660104430697804296010367117713777179878688742360692135412968929246116406313829830913298020585449291824712070629857955710557221118589638612119408270048346158433317059980566498417678377519837641378308638571400745306287344712315312197092795294172807795658174372873260144194071961149608335960857556617783174359794556953215352395833226940532451069698600038876072163765060840528633801407283417774694818840022044094106735513352995361775624480668670417843331457318787543707759344510764297258920204847842832523466835256218125997723005013977912118113266592055409855304575224557653369301568197775605329620553540524644765681643332246736205885514815158180350969140438203256817501593363457597463394128932274071814507957353793288669938992096296009777520889753821499902810800924366014319699080138551044760011603850145845268121426458209240277493923523279562518996504584348801115528314676390231757321510160493133570717593393615026341214768038325731156215040152776448892180032400869678021165762869813772845147783518555608432781053881325617029879412796310873217291641562357903448388328186225064129009776015556177665667785333452379391262723458042125090376722975050118522319115906180476767798194494802306148835326306644889141215977124781982012552431289577859801033302342212776019974771236903715649598118425276315536888413136656923393303507348065403226226512675072305353940564015479046685917410191657640214506041190690595475039677705804532162294924488850450247359040368113131836026874198725325963542935866108845561293571806505120057130538672897227250154060089956894300713799156519514030485043508644698417805407637629044117852633648400757383891288994464046893182891851158387217955704669472320547991574795656605840846179018232357760284127059245304454635111715133723332408040497716223656520418645597171624032298496469539703717320561308169133334833490807360648441946285482991566930499330376092819328920720891946957663344187681977564275169134769185417635806200165388562022383775913500577691615067173604573467044464351706620434660178786478019362834235455182106766349477527744781012809723167690915196252872753853680122616660762821575232783939225849052037506505639192854923597442959622852617199292704019803681000044594353453999096620027654563393396336589062948502289450885045886214789143179583133834860027741112966343989448224063664703718618989732998864017925765523406186874425202522808457129462939934963827715636537078593864127029609129188995912658907843683777287186858204193908279337459547441235692153269332782989279377668898725653169662258469525703838932315239834467523594033958750512114788717574179375373519953539838050992386060431656555826844648787793448434573840867144374080145181007101666670976960013672602619269453177538540785727172532632154389882511918627652023770139501323524794895093409726436690898051911457925234742977316330795372846195930928954770130824857777717737629155942223076178751242655966011783328396470523355942368488504483780465944770217907452735397893832027414081239321309724563119329559698168465007327275243036828428730008291738762100033138479828964162174418736946316129688674309189333254579047149992913033091881446458218653423804367767011776989047289441543431237596451986391538802790647384294494394044174086890697727930629455201339892999718514913256552849975591070835911001800375557775858863313093756508140747060235658549194591692973387088800587567741257660718232974330523139385426002435980308990444923760895245197229006531010310879050823178301872095859082350233835690402802363434262863809084936832068128641380122290858132529851488959509845037535706955988334084277834203652124600645402084929318499386485581347761158638444565676783018339011512436498317707859720595329719544762513751951350870575776849502421832121965544514106508891725854513276649209401193044859768987941811551151065327535240235721776575715133483939978951283050221843194475647604871240266673356918260185782189184112012499024828147318476810790346709817040673319943741422348178515091121861713832303615029829550455197147347994663946557616596574597565568032570298657613756217562195921440119587451882493540942779416713582964657493277554221645934748181673578585934436771432799050318866812771566439826914433610779917980540368927728850126076695670735255838602895914767361117442793996570787777263333278537871926303870975857588445946973396177285738522466978765166456053337694861142899528289415280985659701457435545318525168314563675926688373491991177447054042379188001646578132303917441187673490663078164277423717910000996854909822971708861241707131294329600865840034829048943088332174936435165440469363967955834186713685497431711895301071409552990772930166302811504407298123878412883055872779876168678063172049031739550329514153854476070894954230932319560997882967976239369182944545154140662145945529439537519404998043884473111122677809313278833065123534853025412262932206444814130660824292270483755666828589223534417633089394489389344127996213770970135602056782967793233938139032033674145479252765091529979915751534206679642396308618606593824658853249400435555322998493389590275311634614270641323644644414879339870806451121882545010358762620827610291583352872463198340257265205797009753720983367863170458061653825369041865374306065004649065112200869600796942258953377374304511363071824155741885492845792574951319126410742285364748117136379099677987168914185606234020664216885346969971221380120000692990483841689749164207973158004125503127409242484393116649775385941261364628936781463651919805578514126134516329022518961436788592165434760377253759234582289289402692234935127506592296173482971768992298322951222511732378417659089308296501381354320536372662344092672102772159488871527642084669160832968202424353822521327491384450275451473270712651166575993636120661111940621787831648934133071220604166063373939445283445855139515197379201854965170392025375063189522119750840005936513576223970903320673800827066489246829442422867140506209796395151215548078535284309965021346409141016732874446995137691573862605877239466469926849018170236597736294933324209449099360699723472894913397755601484841930021550751435678385767646460044122262839680591221832467712903904768735601072449108797247783873956349886752113307741808222898878580476468027938512454297913079099564495838446450433722681557121412027511600857234111224235000977426835031146567044523077726794523566783973320774456390147366205801446390977240812871108935425502876064476509738046270656877393196908769386000651081220618840190750300572720492627874464890798244948980418938383510567057025205766856168438810086119240703636224872534855863522620342516034774855174002705630369062552600387914063787288757765996144289559221193538876488589705401834902113161241660392855962889419279590476912860201787759958460259525213197041951743277320069108256307711652650585943651134809803617423493722767270743945470485501066539101401362210017104844563233801745759807844433901035562841151597690641183436193646235582995721969937879571676429459929473787850502423034303224329455822880693928505228160012534548801327741734634612338717893867084589711878535298685228768846107487763186889128454848603585942446609509505271558383424315117783268935135708239429864761032546059632618899070677434725038442985343996735235537000480845068150927178914058787017938784093561784107946031407041108836130325724286126886706344305624804471371704293911239249790232438373359630729722613630734534557078333882909521421621270534420117607163225352098515340024116786455058561299727183293261989815378927329090353574050141259625281255907950993742230091274536013548209976433974155067322412298656375859784624147535791093583264364589935139372828808813692806076058068907671276721562931076075270288610023180389753817302145803839156138542728056839225188865757517994966699883387989604226356068007386398685864579904716175710651938013885964810713970672250972079757895321632178483675260125768459589885389291797771932069737085828700689679378801473332461972068170473819841860058296601888014331037715259203343079389063831807412885511454344565866454953339503332510947788727254538331898189047895376443952566425850869143225648708926191054931411490259426371981242677162743045873827954020792938651962659644177911104160494898013658998477858337782421936994048819528406229248170846763623025823269152540702595150504383724327246031098003541599795815257550224394430382080289623249134592870515993698031257788806662993666012347923086817675651762801375264404293447828509987489710012383701952310336467727723561892227932793315371538809927101980903254599891393471688065649511952667821158586841887058556272258531669700696882040377003279275434203203755768983445402337344217910777532463712616761756734868640252312970307180550264908020524445183606746497580972340086635536044998134300106016679209120367049183032563968109563458685180300628235935058620259432130679734343078935936027150693660558054800775360073511241105667012659183524245983610491102840955578824938179696484892140480950663137383699410920950511397113549158723265841116716683559858666755202456670850230069506272864473494662245646648989982173034873394880196209742171911071340377673467806831524332751593074089275197842349092200466761574747800029275186211088382407979808395260280446791382307611042595737309516718820942528672656469849703913504434092375527732953774924782479834111370841838598602198589905405217554256736312791619919797350138573566390907719640815913170048273102762618462982962194022954047950396529946307034584530858870515562039694879527827704516079772257864362847118824818984818709662157850870874184904314218107806257541188185619673799441479496113666886834624235446247978091760628323745759365486165197241216876621956948945544777500203049453234026394418051637241683850325125564879309195726621978190384511530495773184154699583717257974245419186884235232649562446174304818104307900655132389095440985864910185424126231500516639227378350078937875486787043968742361386243740669131839838427565674520398829946290330879609679209600333044972838329620172735889083924155638667557676790871841577508842546523857326604346800978266597621377292883944184169050790740249863946059143429490798050369656474288306892238129607188291535528861886699816919634084334472762438029601232106191534832315469120462191723335739583370751203300423172920264618632723272987738543108721507356710151907211341754858444759725103951259075596737079361422507295658809107891022602834856754085482505660845659625555261498593998963230903279663692774497847255358127022276536408777330395654178539649028970546246729465559283955196232756838022047421687503034044041970535643478727667247108480845462835400472699360344112051970215145063047361047497933522108013052361552949858566929787676719107624584113316128607889707431849557231307930423195680451830989135097789068488232169092388489510335271656938310770434174612736872604931761763457392209815830601777885558300177255485115881474424875394580604095561431538637822651048505694325852694901725698754499861608197289089115169211787376139005537926623058390923493023595567494167470942029416030038442679356253025856071348001530223380175476828813725971999563547802976168745250759753563922088826319458027167552039930313069337774491184117859889224963447884549142147789000866743357455184697091724712531400270215811026829974356893670353829689408650097414862861213893591324927256093610080229753050727039885045522144757289628088446449111090827181078009503475224385922459882154835670505844030396778783771398957475133697334352220237438417240307121078921866391364316382365264413727392460434112214354793749415928705658057134399743518212299408661508031811147069727011831280506065559126417483640421376938155290948708092296577327181215531537811569047142769317050228542755915460377439154259067707034875952358824406461878740799545434640678099463278915343341857863455467028837932634037158517747131048652987697960221342328302949374002387487169746252446615906560970806278201113354456330712915640996088878664454298449706631718859027928096829362187205867353238875356167022495031770130881982313920268408698823819375842313656490615866784469079025991463347470033508523465352899847229854235566121803950901100174397939108799729436034478745828522077476289089641884470460041705999648899806330254159196045799440520642870353454355751975638747246598874381876388406570099145184749046495733848480088019330302121306498150300321894580918974430126041006467626588136691922231452015391781227218615157608451880990733937490633370722598195056034584840607934144687110874684138948813694683731597619440405690526344829779552850625909013621317378164934153451667931051599505011319685934626231331047472776526647952904257519818155881634013125774126530127370325825625957612714248784201698328480328637057197455519250513591168702098327938412043846080844498379773132201421255530537255383389103872088716271822293241008207952400132850154777604768370688839418942326202266519336144198635963795387144094448143961931219207579636077055958601482304622025072111741670359880863646499494715249532122491219573097228080632489108583747889824903210489910781506510264700657026067961331962598549321928807506404327267823670007975167994841176280144939093862014877612340274387172120860521569559944863710375701613721161760412667304471040782282030200946063625877208281416555435947015581187224793427002486488409362042699643423012963734012495198697440323812552920306536948583480502449285368397861651026987277858964597332887540086956585695357830588304912088590605135502794601253059119564748745731271515747742184298647286948899952057173899484094378225666799908522748111894512217865429059972758616191057972560441996418445094245533297246171702085457632592895924426092147200211146860247279254803851197296926392642707304373490432224526403572848048888002523770428686335040924027412313988245772438431608527232757260761348289324566142742614694240350822805546259268495604665784777073261808613305427078334267012714839868234614341378960467303441077398157852298767942067591996755847589255528195564514034317214799501863654355779869250491499552408057735174636614824052766390302136773654338669985470039186763344644412545070616870538192222843212588333609162935851346465148589272543944284752322648498059157418539603802591944019151508134066502766769940234507025377644741900190708779388043358258667572393864275583570480203884611508697695298282730082455081456163884179971944828103730937697870083850477944612527465748978631217658017453012049366670359749174111441566596168505069229108498257501582662048285801552275712710927016009585327164091812083708624355294115503128517208782778340031200572733401108148059723760765834125569816215450602240770701896993967617644310666651365012462251213424276633103620284825310717125839779908094678289246137058433141076355819078024835092621285832844691876203569253612449896232455729560736883486151099229502190007052693484294677306078971586583437058035494671031644877362500126764471051289674987392750550932242521540298292142700897530233874121130484253320738929261344415220582784575116790150569315159251342872356713705347236904535124149805319943867761792285399887371599781374098257765724313450662898537916957323084953662458170331868327489885653383120467784133265362968997731150347786148642927423684128774967296434542514407301192690153007507154748534123540230323147927821057341198807518571713408392562136473122865347132594117381670081078128042657912848637633328349070123202622617909462315365032901122894780847805442135377611906321453730599758270417033109512134652042765148319059431964112678854037264594522939509170405808675249304368776643943396112515693734222808617981652929984634549474434068651575608783601843252600384383839545078651160024481243835673038439222122661709424171853271431317527025830164053629951736065365158671053317861765848978296119944253061706408140080504112051726705349990538580976523035500858348673793927742071758946417538946181639667419589121940842184829098555452220348217490984808316484968082903840623315400035733370918594678105191343935178949597867525856077745879486607055205778398761752428728311266216882525153587597549479268669474502888363365231029018602408957442802881812951342040387231040593762041008166144422637809508898784473775870161520062162505456647675847311320735518492787267535573701929772244498764584987554138604479758458534598794522660019365968424247359349559144228945386366120390424073350838604936509943551215908702991165742180869220910895783419616451116594530402230930066758943459980625896245628140080689194885834449178734182048046299079574183331556232084993066655464054390007312016221388715273475082934224927216456551859330496363258641323715067922896892327625579291441280202319334457288764219360118733915930832348147246539765040105152917862440339920094587133213754212504137385148388983121618948475302966962421012552483186680626237571733294141462966345810763602867743710793645801034516810971545800476995745312532290914153871957988270838259140309063899552340118126970269676657925896218432807629070496073296466701302591825984084890608599588882005209394540441683728906353844834282143929288512584594248210620598072890433897628345316957234717578808516231063861302439654790559010739670401214006483384814242154040518748581138999394196764935292880286681905666973811634574187452508935056598340628243343281013050671251455765674229968437193432933478143133929754802048953571622467122976732028280689191789539255973861066858251322061045400237713610464918357012855553224870995290779513888071956466586786076208999116451544398318074373648627813189346808946380124181118878987369763276127098815137911384644826824626565460380320693029860722146305573696792275171693115974518005354099745111333821813031355558460462992929813535728408154539655159863762630723210283524660305835570411402904957109636860852363293542797917053951783430005203799852674529934684806495019553984606746370330603869324627248550281986394792832600165935452207552861126220069864071237773573439335705121770327205452034505721880554518622500252661356904936560912662666026596924395693540996591423216446441661575664846347010360096394410549650915572762359865092699558959566745047130451278360433735918976688594612664913523230488886281740748024862746454550300931516014178834089331018665875549735194716365167536089935985843422975169613291662064150533529309265379025074271834691479695869897123661867256656238076998176457597199463277112902946488133328335182934946326228762016012693109921957602552896790161487419639388180879514642382274787469061636538623581639471926033845679322382375311161775675737510340710566716148719868488453009097271991094176193679610229288022069901387334427942514555623447855760734549329837993512846041581911627770048912232547521804643224086331252467079476318179046991058879622488432749001727774524661648165979646959995643832323056837548798961922946261812938588140612173657114591488104317826394972861784815458860840072381070498540900540246677469543988852311464315035642821820696929134619910010996943843676520507417243560374066536992892328524917362574484009761709207083127190555366397609813711892525739548788569764049563243068128795553456314546821315381922944573532329180477464406086730301926347315398238605335849475442176572158154578187433756868641033631518558580788817667788497336894540531358285306866314659230632282442758795462414416095914332539897024407694955390741480968542649464000476950234913817688016358451290432206898582005635856531976514699702932383024508127371566757413731409620559548628138006667057954678978633763060706191219524752233915473746976137182392935511447847674363900839976308985615680537227002318502225953910992972220725583502722231040637708711836905091604925222395323588153671902286972856398522566863554220729459494240872842411151088134543797748863448767825218451023553999380408716839167115077493345104464996780194463175425180725642035394110004781906003455803173533972026955412008100710853047261128394465689897839915971205793577362897576983844941895008395365659519675338571721220147987414674446357681674471769041185830590228620273187810379256196876494114834472488585073128319562269734482806647264932670062889752635127901993653762939842958570054734779429133768647467152929175607296606424117268162257325933274285509803816828631913848445366993838214550362112222105938558036296275428017561263530432841482661998910167998108926851777229370777876215049338498653434872032758508795374268321183106308369338430791855970239904427145443249182672538139736126046716770582821448460503860114054037710843631037344760131278505319220802318255806656946366089419332972192318059700788570261155393911721441945409957750784058089234136447289130755023616699324708148121734422099612564961229367809534948135858908975276144199628233612062541223904604516859619748082320468861000016092441867885975407757514993746904162238044001852073224529360878648107628211712148757548271573718406104238457393309965948159422011930569384034757109604929210737443270795612995801318765492099065685711746064316230316657601600739833587743175410784514016201244835594729395119263213796903136219209225681482578076759538717232337848493092034337459288909388142230144583099307286436257035493167120227026326838013651864372969893262773927690236891360504912404376878948055387428809613746059257101779330250085834873351749601216920025165007917627720480634613618183098823368601583110832033485808790039329193644929060244057328692985104052285873667039212103924366110480000057027908738933265348657988660857600457738778031930356203201151655299836529645253040447205668482304988624351466521196750384759461325395093221425364547141360659569172334933678934172070085307533261241940120414142917652249509185823957963069408453527313829503208169144216087800258982009001494003855630620731161209512016866481869666359717362085324323831577954218271002392835583337055305098300883602120643723517230725065453030705847368108969693057834514027712233231178835859487033622187394984226674523067431491875653463475968469371529643418235307642353109513652112957668821048818410118607487966479031043300895950596770177934618437988142589179091343468550563514193908289985938726891178069278095968064457929689624478152380932267012891596203224311773256647091035345366102961785869245139986304460036400103208725194627284126163276092143391758105537107146121566443638415898374710635904369259157845778876575699988152710243651206727174845769987769015531447133975458472416533179684640544490641167766167861946049993114628692222434243484711240020387841204990594959372781461714726818929222584313927777902075387421600378808155549193493635546212253329731341505254349308834419188596071809643989151404134556185283269638277659145719168934385252011177711250009557081288238671836741587901315577775727501477941197392107298697920695456999287417876337040611084896332720456862624564924292738231270971177031061782007969378964183440375905040452602040910473443186585445130206154025261149627951428544978676061550658080262914920587733303803130100623626926686028247353731174391676155028524337619075889577140493251240226701011487198373795701029032425436388850266063903416873409735534370798375641546580602421201409616288681380471987246764052593714191419158762387233557361414468199504941275748169861832178524013418532333113444583077392819409466408385366444750263688841512867923876811984935395225635592417856988276648763313771809170602697328905279614228178803381570946176195250019765616740082399894429533364449752547933294155644263338792714212283878233415602738676652191857084044815787118528266762761209018122112998143625740154380885597593471725609031814126069851222581696504242595510233757868808053026790095942064077228508699587988597629175509368080066169301311295876277758663571427488053141666538698578209647683001633040712994101914723186626313914010578613188111014625344307945786647314475779987487688308050518238557950604647324688860590385043523922433186149306063050018920370512105449522614869738878253086307686040217314735901632719884237472652782886550537703763829755312933722795312257115099376259982758747157855635495775846409512708129235874297563521344671198816597434520273630821413779368647636960987794219930971822223859844378274561055893128730272978221561992268280058265139170871734879583710115422456227036067770775013976084681492972945225177723010910194324588827236755789964098657552213480874657120917839579439365914850309784873495306465020929828114109491548902755930904931610939886976662103825566681061280307371731141302730546205590424726437467489115690030878193582738769783527028288693964119879907339291028110690211212846694580603877577136350023997516610382255297165147403776392943908397438468544799006234233942218775779777302503367098922491201786737131288052438288032684140654161923697346561844669653020582768002888159484879240502688690690203077751403696291383024772432840653978270014766532958350066307238086329081042018779261062536632387414764834363004873215435584355142685392748756777191661431571632937601927967544378531326207347971372409727167871429877648384692405249007019660534742586413131548607788048424362491029881407206231239589087776685838257431674293473272406124296499877350049444984558359419670977557368656025373302633091647906674743808916340481805720704557584126181537059592793057758959589245012947836595162149840261300750227872599197735233411899808159938147909397905033227936039894272481619844446401014931422930886223905670591777966243028255161314468548827471558762579220655778024904420641246791296251131945910382169048555856698450739191774540351541618614569546967545434943401090349927852321542414955352458578221578077270613822937086611601080092481321028552073762366513777197292705846920049193761015564333241310572659116847911550023086548638511843708497370959128772145946890896936398286177920177333378667125408181739811400918688689363363285106175787265410152760192369986032375454506787910619791218780759849544455068942000368771179753428904248982064161295704554900367929533870681547066531889219695687041449495655149508948382906612984864607290284348251735324491394460716880573107612330940392022363966732522330017178142911745775789509908742315227701546370193532436799344010087348424987078842992133487102935731801511133452382917493864242085331107456757674144319569139021896627674415693782742647079584270872542386440785531137152084713472992913144735062843918490456362903517178908899363077508947190294386268983864346857185620291729053194725908262429471886562705493025935165589519865259476103824162027713420353858069512313083012560682475196981819402577255165204447625156613444271478786114006431545902236462611648818034575650160448346137341054214049372444456250912574627517276313383046556363775972067348210983148801457569551783222363964974924205779299714548731653107802765029199385044424619838320294355498937851759587751848187211246126534173608636452877314932912951206318997052169184639819340412320642803309770157797217280169629126906740755118241588393947108858731172374908571263649377436438553083787366755095594099236563969997214859739651524612386416472228295725250634088195273677181855410453880317984027632962957451494198978528201270451151071086543955906238838338025508264187243875837142879897193376998414334670086304596296345986147691963007651413262397723989807436594651337093642706215743934059903576998178182576969464287908460090521511239824128921582630604293649060675909250341595738387513654247299415074453870729309734921845049498411317406089870736667712611531814350876268132283242431634694286693734090147689765117999783137315295705133928758933854053105350674753284712911193088727914371182885435458636490361434556932089608325712136874050247577269090990367276681097667299854494717928256606089819008934113875481432578029021268275698868773934372596005257960784957754756803926077004756572691315317183410471267508896222666690681161703469902906713681147666437446817645268224548599043299127721846559580700174604977661143908975389232742920801960983369848119426445323034258326931805671862701415575318839216943408591519898825682409628585611982913560079680497268184891426480511202667556901386744926188379998008992718740917268387064659468378049597950748004768160470211706517619089315458764346155731713672160706810953277265550915486188113601743549669297706616723784361406892202864952460557894392999101413362530428289826652185546237095962902351495296821932279689269136953904585892122896619268394486215027559160945709759150581324953279125408920509455415026653200780284499859861622443030745584793315433355838143997998168315226022417721495576878169345145553985846231653581022245271327368491367705027954746424675434690365718018150473891951855622604413571980184366271209754732189362104596457316192285257798311246580241779178629387804007781614346705257164258487150489936743281654289126342285191114441298612378612712967014908169058898996633272056176627548266737427032552826131529826567092740203155172519917771228086259191621919963291149170902758406874114563801430197055566632432994170790510617463253921549232245559434870843709044973500383078614425069409093213270063356484311141610068491452469201257610326475021786590103728458028742063843799383074336820160825092095665502088499198955521032506040433555042028857354799302360757152950641538131858661017403562962106796406206345889994761780655199373656580731605699868625285910692827166685415535259297597351132741991690052802359336936553226747940585706267701335207924201171846969448548114848625990216386051640668737379144869116776964313623629665545593371965739733367016199544503861109516497557014938969707578324492256626738734465208960112527262361491630515077916805632929878015800035812376697737914774249448044602287160175971683773352733476653366983284699166659368524769702202649958717628152260873229022069031591904343217942054123336645043487722585054966723950484455998294136899498627716527955572343567859451498582240253253164874049081329090765322606095517539051594245741706457007395416659377344131748906780741420311005666701044054844740227508828922928507892708381480958218362503449300017619274654644010256788473765411103428385984419495316550895581171890945322703284695073703639870327101049654956675655153907501464332365122342574094222255616539183670457766945987450688603628063063901213929127332873298958576425753826860179104441696967178611024852253895852889728503962272807787882962914176547821311455080912728828086537565516325520442527052654058899692652085068623085737355758869683030650634490962236078888025069291223688576077688972370956262180451744105837323227905268656010779176332495833204349549407410250168863322391376410747223545417230796757885371400909756533014703469294368333599060098306182621680438614995033694009975798992575640123558604703858200519347639071626157747919491771703445143301086336560171454997863648514256976394421094232802132708921969353803051299379497417120929387607427933066856632308186835099567361863814293650728553778732923517186552815335270140550983881789540073294854581257425253252400648435654347342552575499169601260616177510357373884725363496507326866753975771783055293105901767278948685467024183326562288855595985040609025276488293521590006141661757976562215475310191104449356184937324855078388244684026261218432062915884005311195787953536344711463068516273499219309954180077443350132768638224825872934267205979446065525972753834666836059653607823282085677739962986317990065819760841270225081338208752443997194277764009535666090321709388984684168965543604514649999039438024900268477940695512175989873668217092218935784234248157176996867103626376870286230321134288194532389287021352833716454349902866553570517408202917400350332017086742237654873669276357371164852295905461525677898817119406127100171611763533390001393759316350897265424106669187013273886867999642148991834350925379983348001666231539106070428819142128721754105989993939473961710057158382603172365162711441853084783165676193426322318554767669244222976910763301420151454739979796461507491821182618091967323717287551498770811143045406949347258548647893556209220147992121701952700992716465904186937309802482879042321326644597727187047015837525185655231782055802629965381227807684807495365504970715811754936092865829525628978375014355232653772972772654365540503636582528027538272637948907022636856537038014195197073270004402357444717385253876580225160193229738287349503669630292918618967858031886857193486141943829850082496884617280539583634696506827163483927966278621645219801020232798289413036303740724930692678149218236381002342707687150116269333243656193037205086422467502311642901715300675574722114606414762936099186987207458800016378520390419724199215953020088308940573330996419959876492492291106422726396955488670582458820044585851975111478312828413411377774084632300776796851232778124359641428835079635388665196964227058434012028012105758319825037894535901467274358564807762918959344472658118696811069267725360398129331071229618432519188377167559422053854157001611113263523609135693064608435470646894358478723457059164571552334454897804745829589490786583064545527342844547214740655374991163680298033634275592628525265503266051702687407737752141559104690277739184371446874280434329192041454818802010031476727722673388554861188895159522980824455613390571722577185169564176797944580955299161962968962933384845674776506928742635579366389662464922832346619371978300296975830781911630338458856800293641956423423591702762748746977377353024244480756240542968247980446810353727940572154051910939287033793166173136178208232761867271835906841768943765965546370251945498707773534930350544420391130147145547839588170779516085729164440105330418529892141409649143756870801132342338951525501024590412781079550400730522543396686363765844993962168736762248763941589703474045442452981604496004172504112544426096824057115810827145127631709582329792584751845699245931486211996197579862322565888189114783718442624728413908440941231477449767906395774154474404494517859719207469552449524413299101382904477766771637205073279621800119121664073102392443509990055261541320278506373807848856163140013228712456057398165190173537340054487890204949361709698223713008644769710839679836136965927765797494770480497639146439741076260791005347155897787290208209055195408606378237001567373935305091202422324220407713716646592343168605582286065890122224841040466894860799133356481076179745961600528988899391310329871076570989280588137460309998061509018287195648954882836972750338027026750887433900649544854434090824090738095289699371584377194179693604512616765714429834372629888683683806606193255524271627298752474858557747954740421138301035207766835425753056507269977255430296587108491158518002766472799760274524884658456548531503856243635391340100712710872917086608983979959304412136497236623516184922532436435519807653023631426112780163320853568322660211986151906872044890554347622546496114088745023731539810490341187906411862539854737256736302739395552744040937645859041387181958564177903627540573791757040075462192297417901624684880635536762888704341747734888564967985453118647020558042615973205569210889581978597751517745318117314183377873023114178026961249342703489407810077464072829928456346898152578933238532620336660990545190195978919866858424651884033530246048422042245679691842284382975541289091503891450505640313936298927160658395729177561402933061023622096379538273233750749487434428135431842113369473417524423832299573240466735453046177657605122170559665026577914997108835215732729285964505988603959231597090330080361535899145923237851265915809749920349800345960591307490863942600928681905438856244111763982422683596699111821671192737820015416536607079613162955669450999930931709615712348965833235000521317978248501822582902171179545580695142451041232446225746738279282199165784962306438583082248147519253218848862285152874423427922248216198084390234618783493334792666793733923580272956484402429182155171971196606693567294341064671074768280795244665331357276041929059000759004516151677164376734457700973566512798127294266534485567272245748749758098337580106546298828544609168096857441790735842331898356613458668587259168460965265040596306477046614911603910176894454075020130943642630262694731740151187883836060081365165766344717773224682308007962197463254924771768794893140374275011852522719057628869621054054511047606100339350496044190899434980155814317151170379887823944836305987951980371802384662805685078246897779438521029186932567441986739478501500116304949794326038540233899012009926463705146499892104226990692493315778055683261997260163541496534257918161242643750655738971076538119647771774442561716151785419424037028838681804153190330477486266996031160954308455674698456495742614749389053632381281296554224524306921528018996285833754482377238973475955744058200078402591591487851827417696370216326293450270531522948097870834245053162566081195381066229958795181997219570147115385239156530423426951904603718017142640805078025201443690987776465732965365512656027980782721825565910802356120235320257382390340776149223550424805198275182281185597108732963995345419594947801523283028585728395916307658647646708396457933458276884221410417811271533180890262879351546692829826245155723166782724297446896182873105345706338311731470918680201588000921711734846913975154145521933988112381621392876728186862279470322396274790015439016224843536761653049381028687440952626530551464115847008517503585991665642282396101510835023054157071846737972727056557126175865567487782584641378618044256303164640097802438444900057433462920533819113845508740246299061119794216191634526507637039486121873770849687033960414129302154714742670562028167021916505056858314862210692868844320258762361949728436514579165004302744766232140799323003558506854223506275005757845822899152509469042128487203789771595457944680269911647442474010840890747324413330525601203137548815440518749713344569269938559069644905472935328405609641960802660462676723906186117817508503827950720111483180750389930006494784157871809200601421058193396057596454886302838184527871685009898700666327978262726343740688744644202373883159084966012422798695423334903764699490715835140962010544218127666304431344373405631065233619569177313830624265166344332441355538790561108145449309233119564381047549259479303249338028775943550005026874963005936382462475937181297809893686801879169054749516507808800665027853101691044805720709432867359944427109697142718503762809754168406776803254902808446592455496693974129269248074981327258509275260888092737645890270236857555444864900320597263306703123626690696982651437585466589706039351908445016527541892383454803407854428580868369745233248180587135496859340329614494137821959009696224429887880054863069295782144530646064328782776496572415246644407461094301686210883127157763543121274081362690160701670557736039366768129515236228160738684638007418155459416012001918005476706498991219727454835136455884244093822643527653955357550762191580961450339236833987139340384013957039439284601848215248030355666200210024314886726930236566543501340836817479007227384750338676262887906190383915341901583891793286844508429422686363964064285057937385814499837781603162306997951473745298320041785518749769326860796880769751781905861578043255535930385251324363871989510483963861193366488611270110458987365159292781167552678619814150482281999477251473933632064130903644273929538117663369658585192993457527622675325749568866839198610580382299375262649026135487185018940069676151794045315472393409480635874884573641263733544705531975731748366731285873056161792622589827305924184474669507084523327124249845563223094721561261518396371510971910367976220377725228045910711385937484463626685863242062523422823363531124463193021210756977910341975485730642223546585907989103969341772229364359808522773930945630318460235811224945762521596889903292327952593818894412844659892545110275885116803019694801913934971139991526185130963716254017893673899848265820825167050550043497477175002281161887125074329801551456718898478065773815679372222638994511647213587343901210627036759241258153338999555417272058123402514537727738322827858725240493384536553232574035431053364917792450445239165787998046126615074429754471423125728066920990495186704162320100123314371363057052001689554322753485353588633185747567765571636047195329461455529769166864505029150585273433007678131285793124414504647092458896168582434560179598825290471690399628268764410279558401731471562962243312766141421607421439556794935621143175057686903639994390338660368088010359238898249184142865339496125569375192223841641119256889503858158172943760494318534193704260041017145673477398102765431266092077827220609693149745188133150276603190279259913697712969985092663841502202388891675660583723170616425373149033834090254549176210623348754076942716728490161182850414145827124359683605674732507605008820823292759559472090252522871823724432694486306794905515565003973776181391123886513832094810653976561970240369259830361157442038303864909847113263917571885721783792221974578561689391602346063231478844580548363069270709117391900611111324894469299223707683686498824936889429320559108477366278515292242247191796150582905910101087033813765740656659910359225549632516508096938630580832672668528734686416229918360070908661615723441904121002790951302375203699299512097174698844265530050773576094256863082690532532168731129407453877079042735290851350018379483920269597619577746787589623548389014123446035488785409972853886019864192274796891439550935999254349162490399558915764169000117665699257139306400500433194705632740211548073722871966512612331881223633030614792313116028530042600118031743798493960901228424013347454135649323672702839755677460481608937120374561110639695941661265947532698013518048533297062556677504411463801783551953400524942723192579943557624453241619166204773887266692769022237315042442583521547994912379318263903464132409151329435201725745431132515247213447853034655918246641225059782693948603607191828885299602719742735680836601774123431848487038488262070342790134286872520741504230279248456320305561846355831801709886769226097261295483293615955523239951878252033632016161503987744484551789443861287003790826482993822799057258532068276955465940330395442605687727948225688801052710299076271176796373955147947112555842637938348331406666013748722612677961934917097813782826988672233683024377349274304402286535938425248923565304897087300759587795328285264111846965901549102364774395597699411679320430268789053722204099518210020362659374936149001147424349326811756211001487410818782365440831165760452181545166969465240258704795254947947868627244421890080178638896812546411344012184393740463630473234345697461872304244028753399921487048709428735492520281050061747528245044224226779836038550228406872208219334203318288569836429423545671738667437044028046211147995849398015412432704694711444511981427465871668927187399480473642902489921513472206262975933929064917452805223514452421865910093476584502398348143812931830538246932705287623714767915379024798339354042940658309294046284453229921681015528687626314905730069743209316479149299826044164020051296483337059282744034187482694086259737028780124907801962550263769803833698858568909689481980595546486643781904717191087188141363901585246203630191387670318997552360428382969040743871853440381048292963501170856397890993250691437501366125872023490523376883099502366340620289334485630614048216133886528777476461976951531757224872292538436701144474031364464018272760888541116024697882698524241350258647420030325983461200355555425063027074166902750048870194845355523640133130934157149488275599801992046214452412211767519563314064905456624590361532949328456459827017553059032878574842282823820693534349914182744548844599563734268110501400071640896002094188108610457410137987321779938766719541408175064777025614737110947534544133817512178044264942260426305026451229041639761134571163351458182884974119615532667135406716253742445082175987722151445103443902368885357598416151360325402342532159723443132653646833976680578646507696074538262224155822228588366104483125301581354832789900321782937693449768781809589674067682669651034270036984700015144232713224783535839373263324408516283847976614751954925754865095794148124333134830846692259406116419105322028239293889246721398036563115595521220468305189522087850924553057581834755682958024678474830619470739174667660170666105712214020367958266645690584067306885150235292655183898660473882685320279688603274194847238182928696121031830732485012066198080568191229592696851668782031043538432617047987010942324112491827886547040493371459022258137608658377403722372183413408514493259752458104839565735354270882053608728044627760276213540903793943921330209693043338666996843565359725509780449166592351960844377374023244590564078475333108358830001963833879503758281349959097371711461008548944757569494735830525484198607046674962244742359627447530276506527157784814342421684705347572560661967900110966457531570494748510331917677977610291610521295490930220663742153159297724087829323081699976410253906746391443249182834977004337068524653993797659638941773982194653778446899721697988523852282295218627259736455721603763516853297968291643031119016104874844122179044409199528705799166973899035034924922034653446310866437585491778490103430603314111714457316516593997703380531929931622869951655679310561195222524883720197015493399973612896700388245235683780305319553133314402265972210707989146105811558624870197819765693857727716396864017250888224399163983355835135305148792720772529918004583233042185000535218312519225266204939704290748093495012164030456403688538161354982208496026809700576497277473152444550751715861849204722764033739641264443148926801869008649355688014383139069690996781060669814313973633548038349883271884437238249716943775149110900696512115415828130592700888745100972678936895664415888630337832674141857032309434783869449790021175871231929741327513493316770283973782053542178663847369510103604152677999787915994719061163792154822304114188951538601402294994360055529074765306299793262187612701940132000636496728824212770292491042434188253467905325365074268000623898992421136109612935180444260277666837408544097451246370685470454776560925686052567534675465307831083675569163932569283603232804102857730318747129974022492935377477408481974850466792506807488323254403944237331859807538301261026409941496059054157371560767248433116418704676030322772860419495678359820392089366070208214936823973170898690017362673639297208864881031958301965234358724346163126766449450741218977055183331768787071779075717029549920629278566228493455710690877997674328307346917285099167364188525253109207800215245968323374582271911184479299090047461913832001173059950972960361985565878010152328861938586128172629558186855542107359234481887274433938408150059763685374781975777503529335168344431610828100644887591528479471669223723344382992947439966872048780901373477399343301735474751231063541441182290605071684001056919191002037653713445414891941599534385223989387864462760021660784318376685067142056325565245491327185516511509296320285154038552559991979586442883759421360137728856466114287438673561566687473425660521718700512239574321772676624675333734015408992253351723460312356358833768002602396245572213812438110921191202951080058376372158745131177163881905082591661367702247429001106874068021606661094931579870519224381722311779822469220774288718745422696444398397974568556298069822760472920682000310335381805592408139304198176186270327059214134919939320141776184896179165786427033924197728260610986501523159878128397174361072742127057527495823661386396529972979056065562492985207787719144887297026126801295976128685682103360981310649932049981163500350434745737209810246153403024530357597850913913897577086036355124272556007681031412771354732611604355872306267623868777071463500849957341504518953877622611047977090985621181329400022356261253269570265797822770156275402247092531557356306029820527430139570018383627981339932637600125088828230033493963519333873892151196913238228246912495952378754951950607748445011899416653102576604738953915492512051982997020944739022925910299392196024037581954719232325383679769423322933225119130532842120540524994945106110866444709563068465393425723192538252761063999477811487827289956354346387668386409936261913692607989316571201903208639767459564808210185187906393074116412651694878541181144372359955779895687615887445295730173926402187159167333310300304916341673648668646735315913795603090623536692649486075554344317854269667551663185231681701689000456049557027861488991551632576989973672299935585075209539250056186081427918147561052660511527286703371918991979214556326812693414102646003136172909669206770185745610571288124580311126457078676122522194761328804187930487299007428332653835185671273283518898467770620427612786860276714811736845697801300602756750978585719823041072841656592754944429682080287248190212771752002940496679996417988353471566459089970039853137556503606042069558058077279735058524215859449813744362223525521617298869447794862973888366123278181974514343105890439024026354790917509935183424516925868879917535283009647032617012439519187029679803020049675426576103990213107511913441832088594538875562121663860798516593391934543859154777144981958232637577564800868362823027686874262807108710030438144543477604759931367043063997838355984852018875266494885111046490767975458409343938908821852316148199588295484096833854754066345388558677345315714076053407158033506201149256579753728891926616905296586296369092069897551617000577072204803831206463921087092628303090004782094467252811872169543943304403741180981262509774908141227804075825181542607509269087871615816921523452071591987177249831093009948477686351407600210988627724653726050741159053997608053897479191336119412782113635157480522380623504074830954971873655023737161854238172899448575419139242676964379423170052421431208835559485155822220305307322585425496365107403556454878960443924773327415214664005085940000109345960523221468840666936984410187087372201563384066742784726943048883798669559381008606196706060270505346637981847279822861108868892181035901982693805183041734721476385051896767335427267759460021847977598193131131160390181045073579095790403518761733949599151606557089774467805219106263424631597193779622382328121684963734236311387538551895344348802208665382397978930215257446931411160002711555956729345269017587972342685301886178282791381993052079283167003732100454531401198384178368441133039453172091565681397536471954305434202256501531247384992012333073571280188861151394640048685099901017827203312218677915767146481481570678823378903761474373636449671235526196583420879914788321350955474305220232986542328142073350808566219469629431351407395617879718438005311744285845786389340193799082359016056344417440128577796472734092956513311948418748065233985293390277689034341800492213250187886424469749376218646735149336200639196290591701108300150053621203549283470777055823717691392233537307299954210776668479995764164641519975559982016594012489781269923713884606332671316384732407834505581764601694885670961966666780498377873084102348746193082222597708112482984387984773603176454185448405683143840924862286318610318992830772393946078008331423321132947663660378080443019004083424036539759797816580128940791533608434892968215906291327671299566984360264851806140920366002558692286817609420925569977627158578215320427703761425725645854510743758068626821949614110611437361884813721996076269739904018634979797918508351589680989543913787979548855384045055510133532342484541599758042240847275709300178190215069501736256182519983035482876967602187152193518488081108987414241433736637908054279718382532948431635607538658939313088355769664332848995125915910481896539044605892408571126374479903068100733340209163542189446777884311280723531421602142962249299441045188078268020203780196161056893519198254369708185548028611038606498145464192268903112706318755884666765667497330121744746882629306674623584811101765763460749956264618584604115263150589248924088015129489121329487079522493595871461038586242444571565619795016355644718023668773352399279486695203697012154699190838278382308018791483134773467843606665750235580369899101771159438380974336322394805745891168651352751678404041011024816086446342799832762804926588621483081620839390279087159534356508419135644711703241783395214028742954752041404038553253657277161838119668734918939472048851178830874541587383054843529078001488180518612789100816586590294929274071569314283382204151660517092864749693149667770060511864814157002454349451561534622380376269352494160410115847923144275493441449371221376633507194701239213297659137180282621043088234547886052573494550396114306652024669899237531501485109116768989648648025737403586797579981987555179980073360154679070644120320983248045496707748374502550850210758886175650243564432016751326156801288524630591450645847134638792657328818157480286035088369844814618113455585145951311792188746707580650505734094660297788086369486679715412357105818792507425850528156918068081083560084169165431300833097536214356503335876817256318899773619193932822360804586693426017277446989849276264538677305194101735286323033581810051728818923382229508585945772666436740921017161084017094251968546283839024134829463819377141804192404510955370672092232650111712939130646417995720154128716891901559273519964158221345854106319356193999929012579333953697622273542787751598932490121383104457145852623498272307881778785408739473213924626478236093095774095051302287502270695291531493044399071237986060229302224069327588124206364076751071464859339094917048138051454676007782841415324060400728567328116536184643818733645702836110384060053472902618248832076060662515591044470729555488602055436786835701601825426875327697177679579838037290915220761866796798567274768223871939816050991819315848413221549647815517154259174556742036048857236745692540317381949971993954893993172291837364986348806857512521093418453911198006414388188222826802930923131691837742511192358548608826967362806591787304798443203697083535953604228808975605023863276563249550173229678349748951709866205127784466609018303911337083867209726321139267291508696757836832518188668516404495623657354644153432392951134865018252311312806739998041992124300886278226328252361279503761690354137357667598160285974508763995407998848377414984647119341561100533002849279805634143415484183642657914641063003759581513934220597295493938934349500327800322163049937318200097482879408397264484198047145423424889483909632720074020759728907820296398440004320248209071208211318599642551183042578789023502500353175279825783340013592006074869482346057883433142899290364297534163030372635680801370984996275485057363217608237707386547534507762146837267403473536346669960112916394271604491360811358346342651124920210078733265714919705072852422926029927272955063448804162370617566607057825619983565507923814917924409823874509809222336282551170371853074442992427978289417676738864574312591483124985931882020783164246718233449695891142752438957553915863793167656358043903937185993918112994992640978353299816865640695368364968490979364845451752156235565401849961374874640171406875851576620942018414834621386862068134369855163867045622535856223253285675654849503997171069575316519518208575995038258555164799841955222634637221604454656684013928149473380685007301239274326517957310515150563096360706091602935392934019823991739690391038528361153817446519661863337939670603796835754367497990002483691409979001819219142846098366751334166043789600290636261375945010783430689348481102820597015547598160155787656961240760617978448060002011200996557442086371451497937650555136719250991587795028561700248070495384552754746387425298183631974390870624277440877883210572314041644436623335056882676441678171444819623511322542564398275657183562515252075815508086502554772586922040200345080588355545874520851499645219943276688079807729246268441365133291550967222195536461508049443481203411659447943624546423014586106918467059148715198671864209271853277822657440315232438048432489717268644352751710042422100013697541346472867031336476214884882443054622964935069130135599773413225682564377673785048051312564461546865074409603892080056408623474005030519280690849808883483138962152151411932030706661470301033599806720704815760677170335688481591919338939884397735347946836110739775941812303055513521308068345025330479671912242049188837703290295777529715396013629565734547442033030709688105116011957621885592668193009464800519537683431881421126444613300512477519879380540916726115924256824085879197179997528611860019983866072950199554539648479829670038514010089125506126260423866976735240240811234782559998515976675828329551499616335219990226583397127982378997283275026170766542288062309214540925022670727396327583751583490015019024546663863197520782165965287544873730707160203885168147164172653055079846053315245592842793623653412483447357942390802588490279564752690919598011938070668858825246215312656701502263250032639549656221652470448971467897686593350654060454105099268670207249323638510943703022607227470511890874298805282192265206595031875057880594309932185252555745775492619112815277739526992776523713294296513806253399843487910217429942961374191510422369944091185929457986525649252171152122670383825142523950445642927176245427223984771196929869968574730897596725743938103623764976079290283504764610195799166774073045056421023012102055199133109634122998387844635407924869990438914512118303767930146858996694178176283888501104175973740377920785232152730856146447732342562489071204963507936167087038060896783499173174616131546738366120013088989158992715744320056638832331747443298256196371351677570907246147633847645858274676631790593899279270384262439526794145716070747244473014239947131878324362870272674701183851790248579157898978995223931655893330521131081170766182283949033379702350061933520988292046840119104239032539487362943036449003905637891342514822498146954208795124211785962196020248560918040291137547350506336238963122768569937696457416679547076446258747804628419267801973661889294835133737174550492104775155529951164265948368971796557139338898652064579735485337280384281096242223132761994042185491168459448525050047167550358982578643082046640349755271039598005133969614496371565531857934723475225377292889561487594334300679021975038389398529960083343868708780237743695010636071634199103003812867174247847584610477201416574273670656399505418727488282121739160150672907707027821265794741990972534108640102486459696347706626543897438767719341344963767895803515407393379778233865581879818750360790726441485562518748082969276206712623728396881346233069914161656027662552440355870356164640054762858476532516064020911873216296642390126007235809472623018080007635326329976122483595907247677289015010692931362796279261775520129486485795399202314457663809490267043437521428013489288498376813748731987222628827420856457228747135361954211521831335473215034946113215121629363301169740251250047829975737520545535981728946812978024455148551207365071211325347744090815622691926093036949579928252616765917533287461624972495330907657439804921331823533514357144817756796288878625043724677563025821555282648204582397403278606665957279001684558542748732044303250547212424597007489491880229634107100641631226251692572006462808221388531251733299673184411471609156193306807430935198519631363657206849175008220495480942448232736443303738099512957562643555622933191015126976433680288066199974124578633821186448565717913908751237994124077374655676133835508515645401494882699886101799669491690907323589583854431866479566982434074605352704228022580462177919858869296281334091258524098305480185394502221133879745770857138903324658577431836522641802662251922303429395549963678136365635345925696023414503937270311087201739689926820283062391753746315655965679392789971557790372748781220665629992026215357490821252317348820100256982000937998866381727482249568518412355823661169055084722361616246149493311051366241146336855800504498542044198647985960721146628738677965758814346899418245197646743702072282791832514910717607459460430020941761178162621581795941692725522026498471149157317540633632903270802630138155107114085376269451166805218838448105864235324950785386336097757635963296934404215337884953911671970092160268509168579732716717011894729675549548478125775196238358565200837195670733197661479621166333627912753472569076215644126151962816872179366603722067001325355079477139081588732058836427972305181533627086177780116844742221443148850800452888010834313044514191696465300022978396204634233289501947504560993556308984270659584662572384009936572851126842088340678051082359860590755271295071696806513480490540380208767054623540533849968636920863645861245715813060488284599463844042328704819045393283409911734241200082607184215113091680985981093234516888710935923060811644566055622259830892962851399676668914322033391710911324270196603392467159572598646653760741561207612572401434628405723583938493577869514232943436100258337512032477239347496929696721366502177642474544566714856697195997311689043270178555386724124017663195817908203751830968768173148331844369661680891854866703091610611276535497829458546766719134200318537522874496034592260131592432432098937683122412494927071845794049601124595884234395708495574421498158281698875737716367948978273857469269025589120921605686052836072510356592547439228601717551541195567562234710623630935771157106535805424245628823196831599789641759778242347451023356956431852919135877624399110745791893037044822423691846307998590516525675665143562126310833263905451325992090434030086249200775693346844561705158520544621483443284705132825738334212938522322321728590889871667279107601657911201944190143100872782946762254330984115270298308864972399763140538026153417308079968085303640363671284535014984956084446608020965846530250160747239243472580125588445443626931796864397953853732078235262801867020146344197701667827881289658933377079378394761913156464100632817527831512342768087462188017047136813520957571032247492249293452904471737271259305011016895598120455729850927108786344219054157757095896140090108951033164426982713840888836748200502151178496708124944829569649652512208884812023545851033879112690977814697334255617895921308136889931721886211966632468754590806469578249739859394216784702311551605386547347472356995272280734006312876748914064579341431329618965633142175878933946255580919269579879766404812498908254379649625655762193715677275111005415964244787966567366413108632200558124836012517739072952949421691452860126986246506516539842092184105436522687442387511270391559385883178291085928041839754677619185553328736344430661734724080841376473072599884335061626036979930973119804705053529531952971473902766493016411688804077647259302144177833121721613230960163777102391966887210312947365190570008815860297511509557679142643262040546500495503246868678523327056181245200166601069773960137844430012307682906875217164790228323425022470883337566173982252695643819467939024378613667266200543037503975409627971760169263076589238117847314146503981615507500085617820770185266504105243419491422061962443260425350986140799967421571111534828522873618808993464996689878962546971957001286240974621899723230757701118084213881080608273071949478373791702581696836380283952705642000667369512170256134560746447917212376133391754508644894636461201071102323073297438945019505037766807749239951275849387956664362635060033616765949294543002602533885017309124804922199300186335715491618073509290331217706347229851522791504852380622677969014134975543575791041539541346285584206762462199828369989684301305121473429552116695275994074914966041835161719020240717801301834480321620612266926332849412291843620640252529563349207234206185357322759784945245218347650616537033933848972642012329500427808064443610160693615426871429814100900478880489808577328287788140368303275953730976400704358564206076866307283703151139972465779240216276667175867543286417345991736281043852452216264980270975384107583167854291104102352953108663613697100234348220733344201808166884548200940405101456945364272931070555720159684196434031824895266758473757490884198858794515822102254515048447316591451745360676512157901761156311536585142977966846807286397029066419965693930332930799872182068631973797176656954464830479699260652085140562995875904188567155306722935985060232844066766114605429912002855421654746472322966779191756903462547693825260894187605740430135788580555858766708279856670036029868603788146203436259272184734870813900855374488849123352580134063674987515696371985354746470337157849439094301777947104926518168501123482978452301710662765615555834742399925276317245072869754640344429270522172076416567829444272674980103012619830668569272620910037362162067265403042015824279591249791575825329262119456948952499505710302607493302437479817314481858633327210365898411852167171809288482295733579586462761136911709259145201905665009744969872782811321898798266315890015548321009418251543507680898775122058992651219543135206537530556044859070822933514476206952047857785711415532964014097212345481483123901078691017134410419019172853694986945256107470428009039540616778836498610868080268487865644816990091851994924202438803212065371666097596495291198744258518928482185715132501971733319113816329769204465367754968938067117657338033116830218960755823362714334702672085067872095796649707892752586807505822866886994063693073835351429888259290451964228314018734084589448038578865480058267819251584701595173367292444564494225979096280930359425507184768385682643480225969140097420675310630413361415923680556705558690456602720193520776666796999202798778408201064602650135042127855570610459545787051785830495696785208431416951282945893335151617882015147046845399900409803962910359915195958407017307149709926044832586009423537182583781870817969292175567476138489873998955135289409844497440585670465122950654514629435302512664420209552312421871344762060184437782375601578691085527774272841451904865143258806520157622926393378870985669645385411846476279771214180133849729599633772263087993126205709012662640073866900552586940678866961090206509077654006901009284571813616530973800829979945311591248638330824205993189641010183928675681753254910205072713437180522181014841091828054277240439694512687962094891277448422404505731552603003438430178802267463204918452552456437641911822051487162034178813832685473295882072112946015237469740766609672085847060680057918951114190919977373386239000607947855458175481768072576966835472691134934303521456717246405553318265709941851360524992259740682720256750802598123294290533034048521051672187367114902441948326996556485415388550852060743643323663970710074649255836007563750602915809198258137829414959794892882718836120163580922774261276160466495358167301927072914724711943892380908059854286791626041239972354229395289569463722381218502316537180711892763717531197164653206686956016721628633277340747597512757836889165524074687690525948628653614798705047357732675561921523888253061818496149944080663530302872754841167519456828485998393148821234447357769545285794297191845180558839034706766524592037197192197905185498915136562184137982630680440057910368568867349436253039723479108350647980302077417778629668158098940034565189676096409766471638585907269784707641969866973002204818464369720984911076795171899371371955275545072140496346107747006846877922645196165306657225717769808060651578863231405439493715030419892254690384738429637836495504866173448048992170951326199797036268400994524346704699198761039607640315396857186879117832240289327252314335367182443965119929812884396577059796050414757161232760188722831273158437612061820218642536580502823220928598739901049962133955861470798716822908266023468597209688373353753594744016819391071414503528127417993043266890899109612936276214646332270119608844494741363487037468304032269895682319616999438114008509301179891991912741221299708920716970979956437092093832604289807124073835146323380689126518061243693270360381246355902491674115397962821637507292440301374107660340430326785415509037891718853312301844018117823526296998455040960125587653907957139532713532346584197332191426399426821875310259108632423074590846813043903349998865639256993452930925091956991935430644660660140846804782734649691967726604709321747979284294712598469970653194358650276708779687241886939196901415170285305523605922115684998406946425457479953857631526174582925375417272385273554795784200958521344336501370900231273287098100724908194514133847504053061624334136727021871212886764153018841557166662090086238785985684696670264994888268375981418067753571235748426915654823214076840879782395810368791949806721129846867637719488644550350206923681978249960021828971565099055971012263226380393900976286874701481230974958724102150105877250924496048046526052055463932648339557597966111428359118286733014901406894580394847204515516292053673610855304773581148699958289216547877264757142543977704211202649318538444931613449345423813081834182286052437142675554595421302616794250593794546227279974025727662195019201352775344985684005732635404748679008890688259918500506063493114746796846337963930754319997408637161848430843443800988752119426275104968569712295698980957515972591261948750415610789360533218439483391542384137946008398050629120147029786417383939547937516209636028926544992071811287411083627035063426177599018188066529041842857158591872236593150661105708800223394143006847595884951832835038762454518337797351871947378317710201732124984695684079625713273278376052967369099706517963391519239661387593292718975052067293622723182171357881631141570077649405017719672937424746385828979006693892795211235972577320714675115446918980088589605998484253281253882631983616974251445128021914808441550182202256061323478869676589767903810163853663464159888088469605355848573461812121314047319144184965498164070048474833145128837460435911765705080340169277697172308993373743144881109650967306379739921053511836844609863756473192528654650419251709550381423352643999103044670578842304213385865784593320712042606728096101535681103565060839546023755630570725817796538016839797222026693119675468552390290924802491972063372765287859035391237460610431917188558251774037213700331738285846649480258503477163594587624213059145421143575244075516823936418021067721399737132050162154528610047095422863989947631871436784086985400592635073543201426113339689321433465715242144778728312369612126359545660319818696463723326974044845510874325859975888989101034215651765682900551429583216890327978821944556772771806507651275088961171899935961598939264458482158426604813161384037014070624791711124336413224208870451188015838841003059441086201888888564424940532390391894800641748995717728041127758377105103498526476990344057342398197586221056419879047149535886026066304889298752551108409000358906401898854540211897663878044138663025422963488653893787284970230782122033598777766619646165290785053174193995148979626495644061690697760366017748633781562779482002242266433159532910702494471583090562104234158373579331813039526791939505787798261848796051147495183508167994141513905973541741326163175277994807270526674629177720978886576664406715082158948711011568293569473951294926971392232984651104526489315234732798748219046887745167478344986869574960821925169115153890803269399558241468326110721481904207081680746104637636884409672287865866814235845834701505348232747635666431091788480683909006333357458597960958487516004577923365958324480691706592912576118927499612633506988710311478067332586488090767453639898119973468893259209275421985962275294089122886880025495669153908655094435941027531437160678716054553155922398899057746195706929046760238772415464583996435154931808940653319427149591893224081307151485283204629077163416439928211487107098047603459124196378017335357034664255170199180355202556138490772466166242963496786567804695802416090671477466440151688684862815343094939239488600998465773273893102448431631568767951179375484081955192624569368711034983353886993892850030380204955536395365497431022880299510855666204617048078325873822244715599947758330235924361497652275287758815185683026591473967079932692263425982574220597091133574158591787077421045041246447338520394667995289472358560432355244306998171658678958678360554476395382148393426748844505416099634657057588555601168241391393403659144672242354709028346488534763016110328813860219377864976667805294745232509656231462709611000653962594552394759272481999212181002766243589331412138066205389531253256355074198749573427633648261385509215255850316315584775241036717057095006806196317595807990568657303977540991503189480943664421513663277407953675034193946668263534292163993494982778456185649728105856219010397186572626268582284087474996931822359077250804232736294745386577959267023614030365932023470640036245414020583166498659512148492355767852833378343783701913504093398724016219801231447161740867294692480502620258068510571957089113698158575009420061349746192082642878684049451413703960197618833381479477000332065094382907663216337907306131073312093627896164109379781211949374453800456672150314758787087214691446033433257522700188707073061083953641003986425987721621779546635654279922498293311525050823200508652242652017926500809473399257607944317594630435208192062750474902435860119333776120302335945043862037333349126331885544189091833802610264734975570222062814657215228310135725605198339408314233777815858624099294843838377162804802649211437145805036573471728919001092906408330608562709551176853005524800318783549433124808084726569403959952098005728837976185579349943082494623804288892523313048262039188372189706129365011577909083612344391366310306270720461444289772952408648615872011275633686300573277203640147074543243448369090232547853548253627106579836297332906071191390086469727749274816442864167905849241183639021147970411312740378245534893327136690167868938475799292441535226880137110146437659590863132496118589632002566982382242091339251478207683554066756182542746437893493716430109514661141232777112504661311240613799116387617138499792615168041789630031114054445174809145964134648098389600758238165392849089011608493362116173232461949750094948325782087540103908206724083176653936950277255095472878141997507767779824203762638193819623233447901867414965532724428970150509787708603747499951768830792170199498941570610639297769080846219340680107291365185688315454230206463161477405291654173301415165530338034300077834636158842849596399537618839366780294665500426441178436526225042869260048389101982411561333321731041777564662394894574464890328557462369049523778957725867832402961357513407302822319253152231809243296535252798418382918534315840484824579536168228543985337555038245354586834643469196657471682165513533157704547086796691875429715767514906028285066542387969997662367734066037438909410877190060568543496835717227582940905628636845068284938817805450013836111309935598096275364398756393315737162233450074767945882014764121535354493805909230023054932366882234927072145472699549601054612313484829328569861950021127726063472301103444244168859024697241284024185490591259279152855549385494141185874095431000746432207599858115201034961967637512555632371230819091473188515391875015276272422696743021421712977934647724302989406184019405301452849898637152503750244651633963817857745031639350402191874782421791266628584563216035680584125919501699174784051615611260935806277328962625250475955643228174669612957088701008946967654189912037489289036057327195033647027905800916951211047798232431280794430689844355074693570569533211495172364036121779520770339122749192260419589438140907758249013314930673174184687086867847812551395310069881012286145695875788442201797461107396372571660615163790933225121592922009911155626445218380203661219307926553091951819520699278513359097553276234327577756651484173442103166670853529189382750330504922886456722079121587593074864221792586408707111756815109797270405963835914519976740918906913365314673846462729838493822912151729040928741494261064090284534778808157895893062263159781248531426947239706051087600938428443993773449664694438358733376186227030477261311112724575510246374148421445861835542099415775087006993641871674087501642097022004314561103142681487916833192131605718220855471609359288017987354424311916973044346559760076582426718787254353390357320683703249146201960153789157670254116486339517107572672998933283121593266448130501937468746827110051017964679273722482126676805874202766420105658678579452691770838389393663028888219542093878511820280803107020347676838006502902274950243338711925896231653869897204820362602689655158585577296162700223888790621054546885095893785341310977782550957580610544837944097420825764590794486511996690090994933519936376363899554460286011006624473140760892391144621054900725493565768212714942277066672455336519157927524130684922727607344919736668258507285814500346194119898413398544310468677796401618348572106439333732607580973364312543508583671693509493013066032413889938995792558473163455774814999160956249522624157564926711492099471814850419015332820609873978109901557436359908765477679667559691650540084452316901224515090848860417946365454007763695883061042284096699789227535400648696905184725755980807183367357118668712794157173374792146865745098377227030371073170673441500553733610677204683904513836813796752947372419713402329271486753046170608412022945619174458649356327312685239217462238819980698239330616913235100644669040150358705551026129144668253854889398679582917526665090060287891819756512498295679035257681674941478057864659582030315771407032245943701061385984555929396019505236286732199102564476919543462099128972441212675739516022980979267726543666110360992281417788645985205997345221627278272668765022643742440404672873749400125777800799894788716371425526517463590242086566422687824830823986233749522904857124600178363487177686004241596971043236154455389520222477540956177860785714137498388782767001177221828455493860972375704615467645388930602435005458860006339632434931310558778559750421401693748118695306089768042437111927040347014035844304592730215498953079917781789300899504358985853991327918439593224264112314538329336705205674184980744952640927954685857453411838586920506429312749026486983299144010895938345346017946306964644981521670584548701750600382229994395247929496222342595443904309112073413746175906694352138577034924460694788692488532376030631112826519830146375489968108427994563158575417101059959059827086866172202118921567789141387227734306899911367406366666236973686799559863233941518857799911951392308800263108546164303490965513927861302607420963656753057514179398379847421983106552510098811599589401287507242767029675772213357966720846827133150570419341424628628976918400852997372392385205609977893526620805852987008573498786398165547061967321581816714949966541902522696045476393293597816336807931726886795437642812589379308690835179990623579366750499908573150954629216096466447881703031843655568510097987617951942137965762671175582358242071526043226734779029382941570866247023866538547987875371934827670312386037392108150396787801253019655995222252168992580193726038288820697884824097453954107971242949142450149509144824559940604618494645663071002668894963406675053927219259920878792125123131868779576419878847461641321711500801467151242033865901916761631961619243474926991766771393723455618100387830594044821530973572070285736148903577564699405915273970456346280465157121993993126505119275481203236061348247804034385510298931721762492950905770532043104454984259939570519689155655138701211505322409841107712631077987846210927436995026721810491005966139819912537990576809449950013616341400142718029955402021270741030642494255658854251169838009270132243486770255103979473982156869987277101474348656450562038135852413542913931641332656365832036041536621536677491915465062602935463316707416223755237166975659250581907198867416486209713476676219142745609166824271692098972651276390061765535481816324193616670651027382354286454574200992289129904121745124325580446604871919364242442492796438432973172955281108191412293208134371046230844006293857613785697607765063899399915414427889274735559782379417676264982105075759823989056693047416676886227888057863078014289830949258715320378313510149076636647254243760329450298767597001479166545141795587496885196441707427516401585836118462230730270658676047613562743674201481120808473958589159458778419532177639745304034208577832942937640457903455489624944220756396232568678610618338497483787704743490582955977406520837319698697189619137386661606248849534414695449816471854551343125576157085259246665914986300260289638646615490532197539244112038047989124645414018636476831008472829626197328384225929870311725353180759737920472119430581623585807433751759730678861096676700982936783461776651702638515089484429670905657446021188094375638415638080840989175841593884594664632622456381789666221612372561007186671839458010881265805181339244802507639281808941233682251046477967197907723914677933040487386249548105010106192922532242416224664082199423991886246570667855807327211152970325210917139017479551654108295447798267113264489297239417877148355264818573734050895854159165441160015277172093103913473071034981006325163317567532123195478403271001660860938795480650739446679117340607046969196330839209259055026797247297096583268778653621098192508986075178316326097792376637412372776604489587079852672286260161002060070832663813121903726810564689208673238646410559533784203959800767804466638437913662959127614475082085905220501979055904987190204044935845226707491569981157247748387883289836882517993030614645363846550131404875050822405672380068899938899536941011315848337980381587732670697296659234008653273402130957812662437729246990879632866218956240018192324725802843061934377747492846493984005092946645003283108970958823868297232583427583746619372723170651454904249029607460236393221356557177590255788124449823278859471155303020411819613786991127457433358213851141251376554329818679109202004574389165196474761804907224241156227606729373298092523758084039743257965345079853852938547137811145092187394001754120017384283990151760475634861181669677287863099709433131429287919630612493141914964400654902154651499845703683122548600556983227281333787001636103378461383807383325201611860377507228242463352819875607229471556810026873870860453609494423171272708935666646151517011110821045898947402981713728907432415176908419352603952059769314274614400979164079824573464936761068729996114057718191453663741599834781120674319424668254595870215855464187310201614854582455483969140788513581797763512446408610217420852588791877179002452953121142623507181593192596705581556512396106186993894193055229381302588562804937791236800829674547853532475846458947475695766567977326818906971412308700474647231733311896015203423252591330293850483049794755041604497106636766831225367390297888595483529975708970439576693711827073977424152848189850557266134339243620101518193209781631037821651832758461648161768006825855595125345489579636617672179846844764757449071624847738277233550299131925921507115516330551830000043517292756415190326291413614696030753936632315251871427245150727812035850711268054484801135003205828351985706595323421908038350758861085259442855354166782545356457735852531324025626629910460945049439312265117434159201257043325465659193009405073132221935415594076534772584980582080525555742162668617745007804726814407081113833511206220798845365615811179063004117016799845576571693715023609050979553463714827414025106724423358357272149353000597948364167894544545367423892970364723670772710482739776537455030242330536195327751282708808771044330899215598948983455751715587476507032389899829899987277806528693546528885882214506017901267477014818966856710317977903137468621946386693198359964382526658049611530277378489055137884557885001211145075414838829801652832676948170618190852593997595219390742006890873273093360126492212193471114618053971929690211579769426847005291352870127793204900446124640661001465788132470670255261627026651954695969005024829608577618446540440660495079605644930641060045769559377169828280499274958599363122333410470406929912974358483526925111827067809696852433761543924603598977017131665309523096097038296223477352073952818190399978227908269297287537125618571699341270928343005325078537802601452952198460876391275532483437094985272718280537738436649209123771078396421913202190761822484024258456853667613283348201007441888717704811281816283987171285397584584063560584268375915922654236482707477361200808233807769606420366275511324060336639173664679267182766582579174272563409197605003417657971541882980882820376787420993703367331934944913435107094190474651220582950868919518641101119926281052585573034879534386838149369675640187330254854118033942724855237182634786916943148058521918527698575455317898364344596132845855460997783805382295085681146890062713248437967798385455648784118846789075927238232791396159463248133456548822352010026944659526339209000298585069508782902225510063342697782440167832258856871024910772995664837848556869732531272642265885214590696237632073808647644572616790454131216712478164607418672693618469777608979013063434307560648334159890859605543803964014012903854036917033635069902176490799356914178693362428598112668216880125229041733758931669136622427827448971838412208419383548357229572082155103670470482587020343649198772119051602022909298279701736761622828229787313080600448030386574616602573853056321332991864149169818498805899897360476883725786972178366758509834548072773010461573345725016486000567302380490348146816231734037361185228043319398593150645413922082142974905555219962426220239489515062705690020406658139474733077128271981033759416585327204895672661864624926603056648291204880588642689392437558121766213442500084152106480008634314921963866405107077473765509387896540443025704361568427131554072644508771089236657775716187931733802964080697462169958383673465281046629593353693917899469776741166789828220572227871347598952391543696622432243512257000743219603184368041739529252219750627861768817075822403540838921367076772860582748642674347088730525552092853228928281326727315990875658230253951000996547481314870797865386732543754580867324737421418449567573429548452057157021073315080759164667014382203461827929607391902395893435240715384818169854109376285739484913815729536487058333762977430054789074315606392935486869164256574945462781400667714658690047029177309301374152453485154802107890728835304612469323789502374565625234633314713204420576146496458408750132512991992521633148337711053401182129276761734308103472670939137981847852346022093599360121593262013188769940974522623049717406306929799206743193320230883912554296982918850937150319089173920458531548042581736812785065452263492563138546523971759341573888649716108115241451090723835833632281973308641297666579193622939094831478943793013923663718870896055074540995888313386038540539221805893889650583257267273079133013321952645963300661962274612082832722457886767806573565898315040587246715229877203364234727335058426747979650830542528664504370553116065706988933784981855945607628356334075617852943016235141693739851313638035174659883017087478413329905594767256225977336601710413299368146456760566590210871423097586677921682730012467610971929667173947885616054067875330281199586599373194880079277159631237950973772548098103511530968575836608328151422328360313247364043669616764422054619484547171561550827229586539688393293185204351893708427561004679202230243890231894147199344896629491505645587121459543640771147178028480223784670603233146071366645104748539694124708424849009737238087115792789739114651797532817344928588339415873833697215688071709799072540539421451051145182195338267663427887895329373826797633432436349924810375240189441837690041714798684509019468037551491749284397127731004431503175785609319493869704876813495431355366306472729630069516376636381206152375928973103235276081921857638209293601759622172366011812021073465749224438084919846601864205359950004140721962167981772875530167877713776963325814178149319562835402783868619015616493223213797546237873931728707454011271330200265141885317172043006935989315423188907619019243366321981791002018808898372220092409891686594067735962001370545071553136058199106969777583430857767689455957534170201338220164835190535884968887075436455602678111650306515471024209236251312275198291300304412555506311225074743007391976407388149969923822746840552140167784998657077202787124950095486446635801097096847840938648599250491140144328727667118874780282502332658914827467546228436072581452591266997572722582267755685815318417487963860957197327392280544982394654355821956935743163816292326504657889072420175304024808936828900741403932134010617908929204651163572464594108324145335398092030067563238865056673977041541175029898242971208972908569355833071419851884344266749565577025488857622305942971591496039476632883350398732024855233132793781189990380322114496374478486727573950319055460792624645495526587187816839549541841310006868925984042381206555005338295639603398811092935867983911146280159399180106375687467223427195265974004038169577184426873502747849093453161228910327496808821840676208896898891059099384348404227445386482790581292959021143838645424345960680566406738109466766257578270021708226114763282873658504363771595105231243914050382478739154278977559404606453061235522457146562536391062798486057989568801280055134345251295173822216148908430330901314143539194853805143001178087618536693443612173495401882083901059583821436867570436985814314247498259946447380132672516335684177633559696150466499679689998636412301661762166936987728450684277567562068102809768756872803788126344558052021166698029169500961891838081055887458578863970740264835011380722288556517441732056467840777324318258875554014137788743559854606424486248978751105144309564376663279947488877048256905150453797262224743557030971127310941537123610822062891725315392199205333722947594549169563261466295094140194306930682445943238095782764507372239090591072312842020338826729550730616246254631227025160263769010551464016562076868861688383755918529339048084940357416139801908453286657277538228563760558427424608251874495998867997704784317090925437855882202460618812661197911312671848740471035764194219220639444489044677662523500962153122784051873178828365307140393740439320453411723409599232763041541034666708653717371274820903481552521453783892144689466655847698175873250726861285124392333825206261777963710564007366226083193027633899034470350058573155553098061319097944975432004761395125819312336782470505820548341810133346042893685144906360212110390851548140429338035262344078879707916039076313524968096650068088385976306714455178499713404744283713072950000855441276710407453853920019204324472980838388320739399689744033295866728389997237997692079941767641606236325973712853489120285271307868596375148478700883273378343871599667482625478574777991812874950493519370157684738995562319355460481471928411584117398394461016948583672967812741278916120064715755660217089989588720345705856380297421214223553246796308780889573052812612304887884110361842649580310434358600738084429519693057106456294412287367922740480280427963708553069433920387872010848096146852985109301339760758852456393879868504511980509380627244264073576365289830777525504681194912135405473869025644801927265250724337734576183716025205738503248364500820060256792518463444025086164391281015098314503818757449889075403876457468199671635339713405002861368814310717156291916701761580405343505319396321307773730465136224925540464050220701222149743351530393663313822558222146914302309755167172031783424553561951853162599857834579615762434980542810761912500070660672034904222048966793347714335448925241359331496365997919899000076222877588527203403877035964554160080465294626379001494586264570091949361604779790051139989008981518174908556739517591292056264881058866849301501871465263255024579635355998142886733547663527631429746049023470234813812846982245070188972549764934078892013565900056507340309042639506833288908922752598364680058340571598399821659426086081688700827579171959713379758612581358420101670042708624295131676627868427197351474534091795281610538581787781774808345825627669793307900584636150623487156414177036283362525131951364461682376941536494921979006911589987298935989700287949005276007913463154842486047159040140376773480103660551617190198811416074109249790969193355735209025143094498566942952281898930965825146435268935744399746020092869690172321633730758025898997350971047946044457288954903006598368619188476858293843047439821368424896109722679430485345338436064263868224698151311761083027846958453010159135859250083162818237730122370652194357285527390907610917091903580242696064871624321297017719228161239278994432122545185857666146568177510232667565305695001784188255631166955976494957057466191166807009535760238075082949578697544268828651695078129931265653466131682750745282378642847801328352203216726599331910765637282932759412807017733052225107366740181278636096864281135396651581037797314092654449078163872380814308176165461129915543837317291579937920425778745570665668678519530439415465168136067732185561142096106215456389555247473618017597077547866282134069501356841247247152023031043303745553500943956879259404662048142727908395963498508679114255345022014376050828041918548239259424577360884334771455977047594747165795659848889206021100396258270777804108632442012714064860353926789123191209327667193985326186244310217526499525749093349665678342012196472167275332830389347112817079728707847732910731577567506623867326734407262050981805919372889424630977424072207461728495666733838710770815852466410389198257215808618372292209758466463954154810780136404354616958729945777945139298119723644963006992781626219101316335114858253395558191923236290489949016352046579402258309140128741922465963215747483048151529205644197798998045198352575637713113356445427790068923590602220064389647553952945021944932121880112179803615262483592297211435681429754753116912793982963540541346063858827215921377660336568876260611729322074046374234019402171563219403969361844037264985716583802485276515041546126931870355934385866878087696591487816280833582915876649486897957589631268793642365473967949473718146206425451126749350522799602841527957691658248130721718351122377598795913920652535271454085278421661591662361373671079774299292662196326004688668791130326508191818356955387326869249895971730373705986771373326654676902820331654591733243309255016733912805978117069749991428068070517482558888306341934994781875802253805286762278756929302836844293694894390793605408240253582343458896548786447140211821333624365531018335044973857521276187114008281895574711034981445892986436574708014829265129105335868483487055721064159043716896091118309895297746238620776419334773442262877300215434764784252065719036739362044091306811233355276805499106713976456436093529639383156479869002662623539409109375209646754187363822637215329526577389678186638562442183683217696249269822734988868421905548183354046573989263257995062722988275139141749937763187826311886050736449332481389365923728844793756034429114083198030670768280839849648321084643211077079119672383256710768408624116003897807510655512355403549515658209913451565771555214394560021340780544344958843365583354892992613259933603744544186107004608189390374176884137357500389436057420444475497160708526947753456229956824123797259623500115501215478781232096808951057665177451892667211463005290147099080443549295014044309227451630593615325793040250525407585019622038811207156026848840386013756508011937260030935058711897978442897751287778213379336848012052215706949899155412086488423740892830274946247919375429604915646660738384539635945361032896128481804231118420654595791682155613431886054021450273188202550910759684212353249406549685648187060557683940255028505539687046022316690377272198381111099263945861111639055869371387010117220059398886822184958364015183333000986069912691563898349014195217170152955278347780800428197819546042965503014345233220364001820006273417424274011819386194659504271948619362293349212143901313402923933682479073388317667034805909877827133779780429324464650617181415643454458843449167958222634223944974475236673613403254164769576256120563054643078270043145796903005578053847263643405987170132465243624305943623997979240503267006026308453381431641578556112591026475269137685239599857797945735951792996099141963872453893172984610858057703743223200552695114511872537991723610870376443296968209572232026869835264139439042440919653768011206488748208824940211416374658946708469865744964868909329403630830022451091187728549126770831542031376259056690364839549366600263153857039607895933605185277758103850289463433031874264369773345480369811125804324516426267517952568833377209551333203813139853143247049319540488467397344853835627044405140352351780650513303286528805626122589166001460581828161396664405094171200472585688008621932711092182046065268108785540680787344746676230041606417784943523856609021979611927116922765107894593948374941563011138492485513185071386079139339603032899602329025819852034167752484816497890930533338492093208864622791402083717697457688514275247732461973850892060146648233678986808922482342878178783187231398949387678645871226396186947018009300536961284511406201269930564066494563035375754746257909402158109149613544672676440806819422678520806805136458351036450495215504903757525743065810653643282311721186922906931541309270823503946409458402732993133004990907145360068936705910598793598877202330732698100458165302741158891185012661117473917405034132183859745276152095140008857601260159199725724186505476556203695951231778696691321014253061067380256941479322887459607455515356185477592418674708928285127094875698938500939135249342871501609838002363697934883490549036210384829398273997330569203409235829776926343677978450488937441814210705656383435381779199365061214424012157371426834972334252106290833627032239620574108801505049025182498145698474681384720451421973116718721649447075038957708787060280306996854284586884348083735877235066562518872124783911022489980889749698665453187702902289103767632736257003641986362427058278435492209266178347279741542393178620020899765241492575499397790611031634167696881473658992807924195010433974691149389131366083463711303004590695522546996265619923806889247069863354005548894101972822509929775505176157088553539077338239936277845346009191534593499006378297371045074629571957553021747225991396205723095036821836140682145581822180826510744054605632298147566380578055749733345904956339427834396236621883860738782451917621296874836859784063751065582110669519759731407058882250153763329318950301656184087653733301635440273880309053152022923583945591776553384229504059753744382143396245943100422654001571952973188390254411591571622213407838900045559043626412654149197071562641172265314264519089595557615697680731053349058543835583385490953607439498654299366606459576461818328338702351054590547543111717710886044759736607610871404240774763408470393615016504036592306355770494306608714602394442770791736412480054904657731963984857663014925527160422372764522115425999532034187633657160796998989632198561132823683869649299024467130110885694562655710476126531524747997357796253880754847673085928429623568985100297519394502762788488907174042710448658508517479163580029570042228296432859208056467239072846285399701781393842648479527767032253017885424906268544927892739755842806491514333385112116007259052298069289269692635834568156989096362744026573376419453251986645754407383500407823007090377797863604296931348053842201737309855886419070492640115130287785245165473970121859545339339250263521512148808084734244256873547272266883129331776011847996367594874973870078893848275482717826345804978718277472192599537602426674186971481901579942967312826104331477398495414582140350973051530156406233162369453878336971752548945394167474051347834286444110012790451825425552905882344717293988148173450340895115447612014475984182219220058506401447180177084948838436520875027794218200898508646417429656688604835916676892508815000308972290701424440128978626924100402431272795440338593797783186440291046876029427801602666701118355832742829182775784206730800727470959841252567850245415888198908153539323301953998417488273725308124722223364607637246498479087322509618649727315902241921672081991376911066042632146060051137614827152462810539225254406000353463376276742938826116132267851763252027722150656911048954855210235615775567840576578877878477598630869759237966779917753245724525917278852967465230459891348143065709121347025209522530243991448096977597531912179453330558909454708751862838948540447245662505653644832680998564944340256163813861490830681295394455462349904854597848018725822225498584138399602842807068159216946290144212667546629808854134684959730060370139099937599648294677084794816988770784288354765708322422381839622123305639680144811481048953902346650580447924926305251309599761095853722979244267382961887583944143022730676709030457618673569276015910783841405847726906924202874949392617161967615927339708142719452878249481433040783039898646843216792740241449473128898285003217111750886348434637457136014692023314184094960373742537613429267051412078651677917332938635290545262076682817071917631521350479157496858412699966143628518028917999043417376957613288106095638046402516257530491579026940048435198608708833462451780456445645750192533347528376859401882656980972074239004308237722601487897342759021903366601069499981560602838467803339445088095532569934402598939301266331114462544513562571907351721891968894639689345810705557513535675110605289247708503099072334284249310165604971395600061247743524957161187255939740830126763122465309895657165418733105385798048743334090395480079045855376489545855811059350526171661112573892058489703514525808023517214476549316484735420655936003291720678577770408750931792112129573481085345729016180081526549595184352007507651184770110124459080303273685323285495844471570846131098682452157971569905365454296086184441716500561444567276484587552590180023970968112491567560094197519482741895301246242411850502538652934485110468406883945017273592551106311531718978905749371451103605581073679985725744078682961085978088987688284564966422540616855061772759593869513490378119293526071996592435952858556418335584885607634109694103126951915658865528637965780284500228762093205620031562321910450438360725472784197960518345062872266278810366355539370095913713433885222045964671899119618909768538277514751208076382022999118218147525001888211042395791890178736732091060748640074901303277879806855790808048367686345196701792695638291678234900574879898234100206093180877150948223144105046651045011122080399721406507144923729742678313735762797647584315627282170814051728275754481697590934338223808255570812778962376190592003448690309770890018527202904039030695175280285558464015338330800643746813732927857285464747739527039333128334900150009007712131137965081528968415270752072972245783217624421248154381031193327774474756885759254407518967046332926024221225632372724698483738359661544032746065646040016622018189712893136192691725868305033354502848891396106196845839720380613360387038918098185633519610420564351131943098275528910785781681739641421671862152166983811105967635292607097204626408936849573044510084086957316050490945905145684715029940153475352893250208017169898584316518609518951524234823865395652652810423909610020648578538661793747538346554949340946790204504748777466970919767504710952832468977937101490455968629285736243933865624507760080525116789264992012896873717946878094871987102741464812158966109221654078133696057673117895773021727758926564408938673563109258182959621961161694516685135812406830722329528186917132253257460574538285403583437748564894581881276216581112303858952958008763055661445893000597642800927162378218868244993149523023619229922610358403022289974030624591474587534237060709965668725204842938559002180531395454786806591413363819080951490239875277383583871308090897699998770498677049242598284780461561975845857152113598275374762886327939333701954107722740472937069880046203574199193633209727284368497154374811394124675185706583597795083784776340606476964010887782230109406006288770431184778774390347511184772006431948463922066525548374149882454129026049520026229395530810450111083452884616585591393873370862669153739954927122793125750000583247513393265711011900863172115283782610215472016920648312195828535766375477483154787877806786612621156310029408110627541149166037193515706752261836408968100211369051681295400529077985403658799176230940646736011445029087583229974133642495548137891241328645307668913454711628464082836713990489415611552645870652888531224744010937371434553951322687435280118816308198503399348402241436963898656854337803593291187319467119993823460147828585672253262569962926370652374143407110597426689292681368384713258972448830483686366105851036599928996147744754984481181302337159366006180584382949516091901578419380100484499321714886026076440064210844490787388969821827820963201655686660541783242023848366937425924816820625072895749753652828394331650091626725294582982006008722381068408902445666120392347596787341890563158159477969786849549444585776671802541172775531576002168776622417510443900782939713854651021304171710982823171207866447904251425371844177810978496618532379248235200709690966004286067584898816641026680794682243471114355684722746988441848885817856404080640326786534545633148375600323596678095297203399785348769505507537382326900656125383873769118544861347324630906671783377821845368495036987274533699329207910695122826302822229070982937734419956386869626918891394796583115885897138389851438192055636252854244737471571291222627307858595468072552338424701229504515405862534096790068264527740994654567041776864269159713109149060601177554981938858759593089380890826404217723190174821131588456036366446440310818485905885446393808286713376418017880171234959062998429366345664768819924118566119612750000066184379716991069975549529727903356800165550121496290536084431357704003805765485975464514119366552066702943626089163751452142765504792863984400251848664133209391106456337930891712038838443630929341212140157590112882595895189605533993773980461316976083883298208537078225805336562959743575575971040579960425666906010591223379902362888569159528900198964016117118256081131611734061007127203205399372419446377146278195790829338973234625448013936365460961072935806840276030822515876457758890576857405753129766723976275199543637441989160341960914225162521483768652494228282552138570991946376242335099113833668814597674949198917556676764629041623592539269584300471945970065241569834084307439896652284980465455367170266936069209438826176623432647637349897916977728070630228349667042407641925567354945524039332281516389767749060804348704469412739437054764561253278664714305929753568604926284327631992568364968554274461250661730842963277077200856564970629210416223099163979726360430771940611263320474059590845225033258279858829919190521705348822367459284170852688104470653753780702200992969516243663178545715397098291963609871672287786400674546611831236952977355844609131564560844099322772421103906943427691524049885586792401225703565612817546844550297857716663933564611133677078899555770694472520201388766739789381107578214510698072886275551829864252963849280340741571206818456414351364567312742331232199836792130711411181179844133921782511286083186827681489435956880134744464024823605406127876521803878894158540827043351742542519441063113407749319789490600469078292674264287052369299716720450326118044640065460767853334014269408484114025678119745309555802832040290544965553240300425450946483324750730487052774584137618723182545970234126558468462001992238187306984420902611035727717517673276944982350921768284608060705740907420673192394226086862621486631136831469159236888832533637694671411584882121164853241497967934614361590033716103259644546372080800990751285283948460379284930181280415141641681933537759060027120438910802290575159449462033857145114319560025178396781254960152997187956647289946755760365896374159347661806475592319761759025753169376892253096401930231129917435203589018322673672673754966760361028282373725519340085955042919373812807774367256289207719499502429520121850774861493920767836666492208806252660624817223808540010518232673730153206231720253564193507462587985438877180142431616920799917184989716061941225610891238765051917567792288804966995099168898351437068641149136933250286463689975095104148579774740994572537015511884962838999407721684020639665190631872224706630867114432596462883077354404079156257386616178075714886806010765235328681545784584143606557040215765973841800017964949031325474223921869193712306542287370356040055439476196319611914774920152714642567405108558931830176180127618392165743349425708129478464413310417703788117367689262325566150844463487878950112021655033415359968576204140179782920808764608324814660046381824482695761029720005354270278899138932100593153544642820616095789408960102411424400934372147788562778551968822567084112804843003514172659281304905206899661548654452327683018922330145885559785685427869379071579876512824223081353313949265248328797768821461028446988664172424903615647055876233841665990512949035182230790173127621291890116072599099361827998690209051325946517741792655529599492102223953662411757070062236198124893362336124208934693078985931290574957273700131312592428044364119472212856593306067523650362260508601482414002406657992675986765469528928536182693880881438548423392994783774070378831565661862112135143279329806382199123491043370988444371300619120060526827070763890663315752115849250208770074623163987176131968170898082810257289930383070219662813474383230384219131662885573037163164616821575742834023925452278496045754260962039580037093674036069364152058253533407223133922795605262149134480361268158006413594968538314280723974612672884926416250840972023287690501836025624221808165278818456844051862702659830696232279025407487354235290930083018588503221864164757858100671581735937226790483022494570913197697028087627999470198338614715578000167355209116096240891864274181772419736644501622942990234328921246299945280216492121074386227961647882339409816445625245435694758502471106599289939924705398349431005747253294060310994947722798046880085920539799784049224757482403598165471856858602810740034485609292887469835888083419382841337173932804583150365385500996197185603344093405322383877893461659181293625937861928592305142320692192916559412294573924178591666580990034295802143330536697096259327605507598591007233535145253330207095415736342793196222906389932729572591449034113126842494579544206066113988376824064954005908040716335243545314367176528155632959557663723127129068339598064249761109498176091333775039538400921877231789494516900780933761857132803808512514612381431188156573588679183939790950747052978421922454170870450982056814161672314399112767923384683901488454815319265262395660071202052270642639286949700075917026652735977199192272605335966851416436680019624962762427852223118825569559410106150023384372010014840590964089972224991699176502877473816206148668837390407416513286618795917136353521990752316295339236486550882004294350029606629656700587916567447686666129450430558875267974988043876274637461649012552774998837273756890402058395820448220966749866532900031775951356819110669369588697475391129454966133138332055365573407383750403241220948539241517041396341036904677176894879717256573003632283930974856471181337323783573235438713233054951321116087611072174113140874582172900847628094006669535606479747508471196816849599270961923818624187828245598529891470204351632629809281983026129441547286551451226907172824325828177529569361735196412906613734631098378330310877590352794277578120071920056927156379622610753739405474022176520794432538848831157373527471756475774202259737556510741687524514731700260318478132125342701332851188741204391901195330894476823732258168496428186278636620645257572504065911393362120799837725891004944463309208078231210357602171532944979936858248620204516067884916588278358022894019379946175831918502063779632922570239696868245728889438839404831938069605266397513955208693648134789316922144554813544939104150095611510210788944387685336062922504103011310404497416419002924207054611928969099368972954610830649497374228191876227224847765476066404319568805617135561913685704176765418713594122894892704778993134220480761322557395152562853871671426715050351389958557225077067278299782154167980857588935714600843430348282276761700403935749568279457346048723886779639034440316329905384972257791304362014855938948690114048695905677670459122954569067046334966277100506865911241392518079980984309324470582267229155795876605731262165779707111589060063632898814710594806400738207395905544151139880756290557797920897762598345702628886162410968670109772806899903733430180543214678345388753182056901016679948910298155825065826557678390774530761651138559808858656225830782716122537629089070802294928452997374940792511146350187122563997957109890953986363301313024180986001435266329039221584386061805278167819464429512039719621996745353128121959313002431933588050590544550595015525815935584011198141161157837228890073375303538066924988630709711241282252129806828813039608281749528276997765454091603919273592720878765160875925225028060900296595323759304122659848096788214195928086328413733394630734741923717339691048259276774753295672010078749075323582580544054007762061478043020188614073320260709174485807059872464196001798191037516003619401561586431970860871523140144525501668403495464356266271637909556528460874439073781003871825389071469402970308447455959166757411034581429850493697716892208255290292578052161940531041441790091575535920159279852986804939556133488858373701495871662537066331169506001573070806892092336471599404839885539410308937371623616595603074469116521238701885152555372841807516271043712720255481623764729846977442428278155683153584435482322821463967885741799605472292707835208677986081950100965888016650959312540858457131014590629575893422457416933127764030093488983866571144842622491994062365113689259434574567762962966342504194092968123790588460112633633304430253771043884158367087291473767946360992877183787868204661090139849913026644130254824048673063776265652463640654296436030310869059147059607271073088900864327009244793328387713642368823095883711152695535343848549306965723046780075626369264932824813203507612433827792378772174268810658808472527601688713723248065971631035001768801227403219482003612955305043091523710580977587504138426566282975789085475797054028129584998010744558533539122764271625681789111314555837705240891305421350461047359584169372970527183243423815522032505443324607886353579416405796951844559340279193566459769777864018223519580484451043231916084551212367771488261967979677336903724030175198115789536172711729600013239939429665581629521747776541376508404251526832130069322612490944287695543472489207247939571993476404998387698053229462222194757739042079894406371142329496706288854641627775341230925782037509357233470411704231538482827723010781793042917460207704182600735968335703905212999287415344204033392394667991107648880728707348971632704119992248233949121264982028584720665000766538440285603175203328663273904105776461878105939107419584178994621765613727179398644796796325486436203149643752802105713934252681082643560737504505245707627259748241013509251899999882287385737624882226970294557610737667848582459821797646803180096820827142313918537551841670243373732020742834187360872296229885027220415492097236980055473300874396003131967309343754980338774611130739732471565222457214203923655717178441786204701776583055624415714807573098096991111604025290259167396958342912252874746839516541976823693569863362308879311521442887426586974282295835065261158662875280391584859975295155799312660679441590737257730552530091203824862179757484691735256082117279435174489037778315145242523172533784413697914112339854975659380777995369819825167723048664668305773507434620385840535595399628025238839306463949878376786163012800223749846123379984363734785591506728251849033341464892091761449320747806406558050924302244060506961710309183488686951350174307113385046800446667299252315784347797776088886017932850038837645361860523739509055097019189169150357624726343942058201425654957117522782396862449289171975605910544536908103270204240230866223643940009280553791139934987225018003112712180226944581959853944493880193548235550750599182537668519362046538798203356596547239853326746986518366674484714716389236201349013216590958806925769553950920361426125804002879768432914161655681953596451700596055915770615538797517760280911205836005634357968784565789498671969707561772707756776521942791543386254186619409016199028593759010417204391226876412350715142007687634660457383884978993746691354834623420248834026683013862177392185173083851240319081716508535032034409852012752667417883870456597997680597065458318773209736438706430231986904504749004791659546653844775391540432287979202457049976541179391577726304013601853917217111849280172993556551246771631441785592010449500492438814576680931823307872561066152868172956366083698101192670026816490452272132504894442986760743629970598045827251113300771858560983247345157153574625958525789158885345547459823486970816148257173103593196504109533103500210130037634825764971545011856295453498292512378085662667754793726614663789785872718750446238879599014346152285626262911849524331833879820522386866447532820657707680349855312129001461146931802940070735133234977358731146980680559954032757382473661106723772160105359119693091099948603522758289760257224721182077237746771133153633277811895121479736480733645768854585506082777004200600894115046608882949417020928425692201075170422680352369388193940433869810845791435304028815238423456421040736822974444117927082274262793607558889886847426954199297513529458652913436449440020756814005028864954738304985817609295463432879725932045711390945889296837238854133109559052293200466323153544079089624456320590521412370992252423766714181406827078559580214563616226560601353057755123565183661851497902984403773570400289124105010680748641341353117136033600412262289391842027203435376503647571225262872766369338068509818891998350726756257274958086602413293874917878324055506670954248917715317055279658060640298673576086260969844800030782938482332655600191883079061044648077966508631083301900762383826115327134903238474979653477011106908417474667027748109490009485633828799334751180034848212741370672655533921910868215987859520312399584093784664818899015737241122244931047884257205785828365742864227138688268987073052056641690855582221627472961076932674261296995670628029808893228046226997554793408885511723928829839316948453324400612115090576743200004080255349852555514828463590326983876561687970600748139208812464438471325553698748113555918498035197173324099778517819079705491059675083930006190899870501859662338985817802350634889251519798937871982193910464828357611032096478434442941415764973123818897463690522544438544208515794688723553790156952113716348692390368338978262825400114401268434661206863093250949227781545235534960163027155600493667256559512394473477757417554706927430227606601826405195914666142045479182231120329874245354609163219973192861295808335097720396847120475414997634171502798666762967246214116995008759802941301189915524703367934067690225339216925165022206259927544892361660132132483352915356043843615022045432661260354020543257242908381264274259810489944158444250747128923599782247518109214023639703794049448851365259694094704821957716113110555950880537903024281514737259025454594865481968389570014579279383350974496526034582406693826958559711400958667976128714666109643394459633890368723967425727869081357572699740421775061212031362000536719196959288252417597504657913814005489310838835501539189970350373521163403564905171279703744339995889163133413432214472756809674722820442725262987970345884318684341859775008270615781208216291492541626119004401274484483637410622344618775289007712509515018839594888250792258789481815692039583138427113317546328630258448469531748084764430148533989552771136483704278581426377822327817505842616203658448521262780167976137012734849371092626289666794108304742095790012271268168547321085243315477229541408421700595745797894238397777191612851282743237384509600573337640726247997653160231739899561379286696889699571797443883328488259150440183916207885482556479056998438271447354171256727967900236424586080249335224587363453952313263144352446662719456957050257766756940708972497543927622490290516592079582819012141031283281251414976304651423105955011030323310392535422067341190520010357845869576084405609793836378395106214506013744885842629930811796557969029304526829291775011288582580666893297494890415727875704352320912755759455725376517483967041717725696568363851490574051212398859954482782376056314617290063322687569419129667899206233501306469904787144090379023165651584251675858769541633523767608097385720779001123997696222945431861913912311232760089011629809801445879270632120750765878924501618192550580997573250051486595944119471324677272371455849830948563592730140273171494508436100652129963374994379319699126989875490716271229390150414787129602537680267755107024956836026954003391342828498161585191673023902278268534629243423843374627715696697806494440455206320660720274607138180496052649442057261580301171354436644697209742870548209868715503842825244276992298673811443189016600425659847536906275019447962081804664795777072412035594044975242841226380167237597154643045405911720747466314436761172384355355805945763333828980981419792800498175796316174670749273108905001765810931683609918896548846545635963983641389740911042223986180945599629078376410684256046330459556551368270041319576636403635586090911306172596054190193860122618996971452958023841415781491983727171934403912595745111632363908062656320537660341494355582065410692135378554455460042714982185716741902011234352942583416970566971932501449659218685485586321789486256495533561089811997539785808012735581802534774735024395978652520541544758200103807841848048554921700604163203678988733694860034671683440465828491937568997526778303959394758219986524074933374349991521504151630926545131617444060107554484270663348037786253394261065066796477245192806761354055478162643378072106457235275578357111591996199677944991406985208865465370409531545558957768514311054701298989085309158570754554504768418079805077977941865114482831763312851085293929433251637536359870632077733548776998823376111271836199859807904187670412492850768208657418037348465735020211282687054910204662795262634796814174569571823059072188990088761222134894000029233984026002894293226282903161225129547423544254129172314486499463689255526511098332315137996329281049822740948916309260100107765873953645045210582326465415516082714002298312695255505086778808603800403698473319994698055189403456761419690147321505184471413537584750402545058555443684778034253201579656418580357314431521284451103484657437117306034760724575916112627271329669635595211423486358698556057494184933224635209256128967961599811056548285677849178353032546488998421317039051428219346247370022556509974801580464085852688522107026090644474563044418700072736564103501970359599863844638236218719634006624410474886912809936921673072962259598657431438928733015242670972615422565675959509857855538654635516901546495057049166288609910137737767933203962712854349679074588238135313665790571334552060694517346726835949666977633099753702681016039351216618497825257462807453658812090905136512459743045086959736913585262483403886264330718501909138756243357612254618011116042130365448210481956029324910675868320411160202585193917757241997001008538366229120153560256372505258522733467470415030060107143690367643986283671742790955371694015643946733496886932258522131647155258852611713299496423283737715387927184008767290154222552398887135276907446000915703086973080365261614547970197009509419643391686303397816785167705269633260422675304870954073204138237182340559632812457098639526199805788421359419954834941632438640225271449166539001942631551976965357065936735588551826521184700654236024601632729666935511651768603464682351883187742999601191814896556675357949737368333205844623298484747059451099786546985247464257483062187337032599924885797207674435599046867111076151676658337297042291684155663544783541320517517459458919312849863656989442914701048627928103569137162265858931935051308695610310835668146233825729911401026333217370354546283589031942740241851003200080566546129167812378850338176364633114291275732109784286947542520308779989943145037069591390339612398159518099787264462243141640363818156246140616085201686054425295119686087895618231576605682637456869786036138645720427483787847767281035750843370869944372686369610128731745865897010316319247299083567480010387857900837808251683659384655928332392177391085470940983844419161917217125868758267609956364615763843947974098965699336110988007266854440659313528186993343729188460674644199262907936996645738299374915023822509592648728607625145238126030041865941485564533550742426855084558755948219017211071082224762603707306625257475349971362566681051549893111041989486328267725137138747428381818823387049014785780919358889013012230388623907438620153738524830920121939257898810043275124704553378329168888328367811679046240342275478264224652101224062790760999666627397739805741581419725258422251896150189377457987669812139437349372714602610576161772565750888339798563362250998488321105327989382868886907256417026554293437160223923166529931537444730731662330061107685441613766200655877667769632193646302309235430898582656585940577808106169322118658671057945591011503929025639971309552265916250727839374787583927166285014787751825306814650662922950275396987075239217197411013992657135966442996431249718177141015361259040572490917813912071320651484912286844905170026619722735511867331882645723305530842135669141394767733848534795110555177780021520124721395065326171454742030081695185049450180773456675331876214956495234949646411908734967470392139430442093805600424989289347736427171072571452120502616863243587668817911853171521704069597441056580118584339020749702221437423349453566569119842916784352253105270541553643638477355587824215277035250765613772543575327641739541065702092946586204892846811108705105864600411015310399677251183201891603761787373306443355389735969607667954675502058850501673233295250943095930853246941955365699332360839270305398433663126871242617064887953259725822288048358108651010105032953070789249335441666284725305894856074524822007268336544582624195671398739236729674116717966916030836389560337394097544481347891170343313284494645007512771738169340439784528245919144006501914469984889646859126754689298711700938609997329908734889173883730238097976661513786415301981504187836378539075081571678359796330150471856503134802312877441485411746091822388099307952496623853442166860608852841716154850845306400360388886172260145615663296509911352562630201218229557188422930122895126244806604010979096095603638683660311272774875180645510570570552809039072953106191768907106585118892370854005178720373821723394306457187865403827618367869115347611612914380398907689542479910066624689513375166505352274665513094893276369907588028832781180301125124100132429750271168221084009972935106323126675113408412292575299117366235045663931521124001453327813649723330589555858647101921571768244433828089741222144162302829642336621337835851240636417291786977470982764486778301120780657363904210996108878452569219488188442932268810362464112812990696547480519719265984550583471716057329275970507632027336124410824467087101600420142255952551508671801282652396432179463516783550067224735651444363586747929659675850644788359910381283114841859745713743396156962713046528721095619746618156511889011670002693115220703107618920288468450236974661651390836089573015241733491454129919745037059899078372744915756938587849052062445035598724654868463044325257841120753980076605059311719171567538320488179057459554113795105237141202203235967929105412299416842418976765604478764134507628851306779775518517604502868426714373326844920541970519516071844900871395116296940015529429312942525321259116935388123670250779941925207722184942484002953320740103642477146772289238795907422668605945370482910210175081268195038022349541787414248084685398264018283891504968589092451460754556482893174518535499884859665122288330260997506461977716174251208209009427993120647722669412276583110573166492795674536770279426137202999801826204381435306123491098720664763352493284802099908977322703932782507635438180358342469080056331280153111806137834655528302505479408165206331588890581044766799309601225714068003740854616709609667974207647964083443614551310336752398519127526914351551868842675324846068457619559479153146953236564678672526292546327664813278805005113901010654866317165873568418750360460891597102922185875723347883577194270554648723783891096064430622812234642338502592189251357901631972986063885186759173207890071683661597105191049691331321128672938565663165730967348479648662261533923757523105425550439619648760145811000744229153933156988071145916958456135197411979847541904660050614516567289169429672186542914348428285643207747787208650822643834576336713203734033280643487911938282213057116811605340082871298945041882538560359741395805228815908044209853272661828014861112420733747855182071104523736160361479805374211053238555127675833433273365290727720408032511606708072722233510388507272641879036259283608364668149503108318651027398221766664564503143473046427488323381693281431085929428199915696875415518759599677694697319815322484129662203528002577609450398956494569527845290342605330754592439951808180909780912573543409245703918828709004333791307921868716643853042486369414182645121090184089196954964371854558699031379163283482635362041084025950414324989738422290876854426838992094499095945111821791287896507120239387228150565004166774994030901918060838594924117471687196308297422194620385921933428609541357150364443496615594621410923171876887672972789669559154313128789010589148263665033189070606861944043605279930156076367979958444458277871906912478366037093905763281049821333997300256065737977802815044010571517817139933573501735981884542119662222157813214190557813548284149646831286733381944933790844686244187523833784534785665567685159454311849491151425420823070013761443144335645277566320424749590225276215079593242029965593563115356341707182439014259330415488114572731939459638446590782643079739849758050837298044538477317029443083004810949658278608237549432851803659538091466811522270793780563593794048310035797929851948211783156245567214119358501617715965529770812603244456432202767807947734845035285102636912332194412113806117985612088884320847174695189057945024100753011899543774900830823351449745813093442595711355661617207206474585587198462019840504029576322273844415255760233832733971002536148241035909077457417021582984212167712504800298941920612501883780439372522459004081786719129354378736183015649410778216503460277775358543967059733905921079090991141613067810625234012910051158816897408370662449560900716069755320459358755611467977733604968866116620531269728162550196550181468581050471259537707353751493728975000741245838743904624072154214966871788297324499846618354517692242995698021332182226870558555572089283915861119208024519484764739766497019838948952820809597981614343958820900512040167681334279940904347852481974160267831637113836997851988838476053210030525889283193737281250532502360536335616470313913873622071570402869300639998238492817412159276390248870250812445011087864542894601298879687103795773677033774068138093132782756241187066048960811202981426834122656891605112485809513278989901939380319321197392806952765173592368602708026423954784910056251962131959228052743394258556398033881615964264793406274675286619161504544192393938806227227480991887058271071361370399427693221175875681449984662149780534541720432241096683989059212887005105328571562736315306916126297774283872948422391874999743704645146329055197472342675772394677655473270609958083651566722799272485949009587090040810458292740311099590938665325771387468282728105166488234112427403618152405249278389546848874366582287573862615195055141396998854614037059536174471643267148857066042219262104644849299596446289314074165391688650784286592535902967127209634553344104269675888563049506467759646154404157621133624725303837801903982832804636818813756464147482765236747025579503071124868314216775257518555876083794180804102590595200939770288545005999175968988320710468429766635909736912221457043765505984973534451011430400533610158419912739682201152582000987576239332580007405111161725344148743079809935273854250890579984712607851111188593804241725686171921059528697776673929245656500744201917536628832561909495937878828068421650310490513746446150628806128952408105662205338827816891154813540666766828220306839757810369626079943927892178151386530913356466746730392723581495236861929547195011381736315677084403851641838605593876074082678157552058208517566078070427257783596707604469829880903719165805202079604963709582353077864588518381560690856516924617089238790137872258589229896304396461398694909263811081119121550216526304972107815865484604305998442395828930419974228888421472970830395615946036392199756551153508564929809051936515108887118626856559841072387679445093029532215115332543465547652558800896206373234698352065865261595431606843756263279417528122061804398330197861965768583682506639108766682814678264906367939558418627095678770387681256916861373480274206948227638215305895366618538705761667013671744926936746486956307079915740924772820672415773246496428917122889508110769942932726273559184485927398189924385652550582015694428153296625020628539576046293576455470982888988879742776077744659096889055039237911254999747012267873233105658192276183146881108889206594986577560132818392783399023357549103046167650409197813565714790449361459822860862038152515621349852004590157684694847466982241070763292003211621192056862341976164530309622521929671602285238907867326097763000758349482057453762180360255400908496816719591042854091717454156598961972192628646739758192816847955941255131949269856007125233267357029865099036147711394924852148699484468557421106887005259123682059478849488960972619506082184460528258528119495743605460439525790820424655351215022861185333910031354078648984003720807153372969538866715896494365482105679615205565510031670653944870324409926822437974244974217797271422040143530920346848524931750439110025261854896156120641838047280841250936841482014933877565998695538260841356351375797837455021056394298691263468829247214422585403813323423877620836695551910863421833309452694005235239352919154164711515188696015063699287247476717840726658768110610121545390819480003229983236087003721002692137599562987478355726628115755184610292711430276562157835059661623642092817954761247991388128050238125265594679930404992961412719486082478235693530156688056947061395600963220009757469335109542266437163918749807066676400237322383970478839852806884194143009111438670782501299600568769785656520830816181850330942522358415809758979595534282384336968195148201885708333437706038857839257465201591442972634679762604090098424292192748020535139950285011948006588738674362513062458625735275489397968238734378047115192953078901013102921168131053176481285180387094834679140828420065019876959977594699254221347882096103619341367400058515936028471973889820126034874778087972697185939669487474565261881961008569867298877596586105030535707501951691730386761941449510962057797365790602315274856286345940081830623021288763726590166019199530936477811584258292056222946055270664642948843434760078938687668567488599194337314572714320197140231348363534207516131920741282107193819836847973518227655051469985816374714601787628020693332230210909927320927413025910895903610603065918098200527617473390227566219783508177374403573909663423274598262813426041082345113414293074847805669152546115941781226625627342414307117979690703288502390034872050835390130279196286193598881187932968767773178954573094511937836097714592185371385888477370054067910758346123428602605026977398044086414386767575311080722450769747367501802492919145662999156264188179430956484554040840140057957917338889971806112580226395155118717833945264028279502267978366958666611170498867357947808857840106005125492034592546985985403678828859411475953572538228377667842218222139797618555762720274281308040135737366823170629806893116671868361933636531170055529773777472310144000431435130256652902130769158268447156323836228080049623330987690196398436911977231496533387313302784395079574704499320531062244352514566481696291065128271746064600224704849890027388125414266826436127345386122904673253644925527306195607665286057185160440907553349162800967065873116067288326579765978851554295113500644204801309252468370432552591755147340745924218291242189126125775047198661745547797252340822568599292749029619616248161563812600934940248532028991659372132443909193555331658103757458117567745833747959996140766388347962283069267801026770372555986774550668711241740116094395749446205969612417755554457939744965368877622261161164564541146771860766212781915967475191639147849002201449617798498321037143811043216131840044862266491882039555836100473593950774780467729298301177118339418171647875451987829814421338537837802591842007023200701713827765373678048232610774829039538668758035839865735443514394581192266393551471071339934149298821401000625126994227454624250484755807490502236261004505415164052921489805385216718047642236773460044704847141182528503623417628283578421143665108948747013139332259828540666109384761208765469172318110133464517565232512909669224438219767880454529908415916892509508045886972860228695907302626864398103243285454928744953077494695228832417709482644869536731948406176140641754324230947719589612563885252122736535565302237844015800384235640665623825739449872594447646934245020134435956908064415875342067961419712534989344838795353767920287187676590442680467233825997708875863515922448576070428762884751559763745995950171435567875212695452339288578318809052839341626101591439596738924375431014137461637056625704872104872711706984794425336190698483401428478666890684660655302378754313022951186282205040284807161141530406123335404717603312203139404210387854020979000924861535709017792784789648668737325364141247663742701943916906330519823274430179207489573319315960376358815933399866196683833692594277101868277855974488212941838544831406958310691733404069144538633960766429039873124673408466213818652678299553693420294466543475282692059380002125490660095538820093132586216946554201786438694608425745180508861988356371453173813889635278970308844480154716288775219043559151803934296844658328332644236043621632099384216240364537053097465839080066910006734363202582150906701511628776735100099416200666227063432428181813358262402161591831965669266480866542412210732423543954270729499057145696193050239867270500351806201998968984311819875904591868297560047408701065713425003875287570033471888030147422616740831207569299221004870171892150804323593046875799675239636735300862859278489208861139703949589290165824440012532582993525542387154580350111594288910715591181598613327724428588622931373127093092814401245247904395466180870119414924701290240176279679162963016817176612265014606384613524739166573807442964338021378213018435127613625355873410204202201819028889262129745934235330100061978432090212546424678470560672207651675812736370472592130189059202153029655892148332791746829055122329951632943627107044214879624283611529559762517596471402445221964100353424229334198124327713256921256830661400865682392732679270166441157554497904407394396969652918921070997990732947950431410104131546577786041290831706969606092260400205492420924938644822791813312019461027401178669830356281166403789918714746002301642716090964206873330388454840988129370491776152847488312336395840090583972341424072353935672143683041032035165560812415366168652456405288660305515861572133723813993783411466880717998447366954819912521284901191317625732563393462131646839068428494709973723089259448594804609800859079007261160717824515991031689420376169628020526624286662011516097798925682300560732571703205326593504682652949327212016217513450923424267952611923569482008990805726906867208938721653174069723701122336943660927409273923200926565301463238280956727391152125334182043062551247745397100241559481077904184649315949958301446576276985201089195625956723463132327833802136624413778293948645863420788552657323100037408098652884332991091664851020914570429698403926087038392208039673242715819273535340148124849267775179992663166694725508620235127854183603182505932233308191180321248811486371103219389469581727258528866464038632003607359730209360909187644965189291896182267513717538106357306633697442244243346100499146681201451527430568317442156452485806069265799779737338224763620793753691644796858077907141013868516489164859444700879652049092219658416136735992084600210415599385455188092266162979431807110284947992524308729696015362950916270046996061954923754270865307255184773731223419171289324459320982807772620195901515726827119569119550483244658951324693264899879542276318625572469796737211853422964951595268718017016207879805387416135422660192336021156523398558220389786518875189437170868603126366666434487805042491188933647687721719309104840912566350279508306589107107012541160678420356501703287645460875052139581768716553738193267739640306005050149404551205266229186103229978718280578075907598220050267317370154057142906851701362381430124127901578854493558430832435828492642219145241076864228687038301938508873716534354787959121394234534943919668650406026672348363822831645242273139302720711323149492727229169899520973588240310826430365084180016700704314757755128304123542944827623779251384744944355406841641940362052164286304443495070979761561958361567902333940850947782720146669981449069327800884072517972001965229285211093692214754302927483424544174729513317219220315456010146668055179500601973274843386949878324718762095582870753474631459925778740107687315645671643952925059795127526579875656599765757377987963414812743584035786846111557953670997988342957837298172672839681840002951151075081596765651803134270038693590860129745667321414877627041592163827948879469656566423403641840690975911620055570419412890094444338345676325724803258750484526400987479825495071496376221444818558545182318738738624229632636594188479255611755042027250071082948169216086201489747276939700517297738936939138341217512153182141267091461002735085733933278192714437358857057380894609906678628582983158553757331601264069629377630651911101449606724441209255419885670180371950837600629454183328867199815366894866702392305302156056003601231454867636944952202286669207834353927689099770163653052864201220844363639987985015749543119231054283886099759198626069264100497192059229993871245344702343363255819170932760269686477096849458289497593147469176609078986989183235196474605395148010139306976458427197639194226801571234203481376346026568505425658777246844812181750878635597623181406733923788954475906361201392139470263981300158242013576285464404845964054554786734966575039099655069032704958033816786649561956767922365237526778899070907890004174268438276243884852931576658514206374926734067164232970933348965713055921156564190964295055759611671315398605370855569121529436365045413785604012240285128825533280492591745050520390266440767699018727637629625122788813233328145541005328526117797273122528827134421592820891815779164496089787750084226637633874960114089188947018075405145042820695885551796620861412840072556627737203155093914132210262007568400399706131885223344269226289809561865138868012837793459744980795658621106653821855939963522530825825543368366919680976028771216121365917109515058221324676387876512035649448142914431053481352449936228778222641999068162966480361913522013107855164817387016591077573894757864382712652335928439679134776416361866673357581658360854181265611122873632594613002308879155240996640152519875409046594869388674633421763126725173698268148119484762642725438476411817557806378169010371650930446566493053603067293363328906368098889266223316410823249991593701113784932957399646173872780156266396475931348831859002027727977539626497457315198687801772577993912759512980851896520760431260700625266880957594648491844863686172227737007316477066982470884202144249755647417068388110923695077168508119547049730774360487781533297227978717753060708816821785004808458931479166130654855018931661781445064498307053969480339532410932345130691179613691634762466605412416064965564229659797487283338719695426077073328411538276270544374222129611556348572772474225982716557684782936709410450134417442874849243655526775175339411506400671383733558374655966551009363307404363229009407328445092574538237818919205040563513419858790571568522266406874459898483957510950881595440892705666941034687621410037607414417903296948276866830532858196084550225038784569598847758830883217288795576737216455548839214569003852027090051678295521363023270525560445329745608415124701315636429668138517124930769320202836271492744131851422229763657515019777203059428254941698806776506364579417205866594628993347529740284757920870579709361434324593593942247639550311900815181295673618732025865762359360436320094810156523611106762048250021538784272442640256899979492035001476338302520346097089770638287221259257418183746008722690399083577645355448258960359068262834318270382705927582754032348459083054803150151254714708889628016613700250311863210420918628871066524613197186759327668717604181171225882447140074451406421451632888654341812510070307369923368885913569372534230717730707203861321854426879951949673793509353618634991951211253158037186571703802279423779142460683257215398288731470646239215482379017728921558564393524245985386072216657558155665821494423027830200183412631926148829030856024423687815223731913480002946410689167804608905010622855633180568273904543734869742963116496820081951432118101957417441207680992396501384153631924202647419627375936908884712718444301260703861544019571417229342554096541998220889257163075922043207930025033037513478598146093171690183227238103001123535138704863005450747054357722990121623977382462794373879668241361803108239044716849624502817722487014960420977765726671415810182513772255369817169627524994488574558197542968978297437526380679747113188285322750271630328541580218370237117352525474710501210910835709797013599912559726247084939115146786366707891081411225186985482674601750012052822103440046238046863225488993271914566912837323055677981812922594789478960754848092037948835367896751720569177721477362661651265196876127582920329629537283776354774471882392526971249227731256941202654516193165293224671328851891822295728169291328945667960163331887150058480229777687295843385615939344441569695128878473377169088991593026715947786315187297529429427522754175106218281843905640827926908628458413436599922115547297009450208263261517213307013058837939271974482956594684320141077774937892327479038269016555653290635730807685231847429372357484660686757140161762524987206543109253250730002099422885861172952220745579823158334052617464242394167161180584380564089468983773748048485112322803551136114907816925862640570061563496454227118624181132913840862758753032119887825964713706948705748092158071764541849442802163128491906605907560473985749240961875062275524366220060559185060764926944357279172240109507370840315819631031435742774280664183560531831151960606320199671825603422980214997504972597407474567222336225268894073509130315739257774247901669659664183926526783146046069705171522510022194903231229660511983495328899865792717544030188809820800002147491572809206189423366911173858510977289043662128641697937464782032711869560029665569929534621448957938967263442998318519688075745957237951406318561298004265599187549245653570133742843438756814015816537854764502765069314866749121590810936992280770344064359741228642579856307968694049227563167944624769704092203870047637665361301831130153626884391102052728422188572295200706685537974882440380489971231984550251394707564946448087998607853261741143432725594073322132129283300131031508831223767523112348217513345612789886892240365450030140766203022666938134047613090218597091720763176278041112403245917598680565056414348454404605340964092903913750386016080650545348582235130089873191728039188944978738937551963393929433165250453557498586634122802274702002281523966317159498898792049452810311049178227089789012843107296479274904329109429826708055568857112305660252571675611376738651958531623305415100712865589151017816842354877783924391217503804146289125212694905943896035083172455811582778149238775704884437203106894412183814151390989978028101597146860619024358799696724846139584651597890398989563619746730214223134376061547684577404100826303587404659837159779916963773857283948478535029230102922005518074098974910963734443097729409883128588858018160096871780334801945029057272251755895840467361859216980663000750533899617359491276698096383729205341333161702998652538571554398352653000958394319088775208910570493286832860582297735304955748118066669762958457717555181442232402900377561405287475203737057796109468544960120867331542205696932491196369613044959368138150158207655272705818383254239842278057159505236482981938955043698604261860543372474207514870242186278396968017175216360112356165424361659484090903028579616894845328215857018890274061816698685216808271532253386650836852000706678132603840281853579379289485160681864948586634909739059986827828910698135519146459956269178364996801553371312455624838823460023968797636708132433757485543862693704283555893970013962864774582870964798913058977520634819299898592738370701136812406775805163134892703836474792333033973120419843862885761437519733174536768578139919903263001241712638483527083970194493536121035536157889474579942270809966621019237420888179854760134871884594612444472130875497957988003222447390053333798263932621905749739692540613478212126849573070295369544811820968703593355217987336908173592326004762256271176585863510176139726391856620704378115700690409744315344344582837019730991254885698676355338456689768068882906878583147923415916770892778923484343046682174471171036960400430999514936337761151385386700123389868421964027460221171708233394088958603124597894747878118814162531931642041652129578177701717570472320155767237025618904117135338073626646599335248848341896401264563519238955366744891071202499656492339428769432174832799200762875210440309617968111416245161236403905237524714627712639137319891415915411691753573518686663077783276014380680889171879928883571015506409025668831708294918486576010378261901682348845097680731385003852717765330292322724128999462282356637008027140502810759051845905419633053517072606750026051707246416813239711967369281542843727259332312129817417630280280958530843987123937049055518825625645148995548102099347508529264545608418572757934552372026030879305717295073079876000863476574822789611253559993475659040082353525971624175839358179741982079204981592968980666705154577622418462499944509788118457158910054323158190136699066629688687050648747732577875662265851796607422407411372884693120510586857568861797831362921600518619688695064107487128232846473708741447292557757300307674016314370766905211040775374346748984739699127096616520850464498567717298259036349850625969238542394143997921055821810236845152106465639783617674677170503222339986544187297950295917981010326708375576224682028451593499598332114431858462513588697120471101849630172884383091363623762798993860193397925063296857643746932249567007915600399143675436721786158410380527849074731320115014901093482845734409006627570911543418469310548346637411187472253858114840976014195896246712376392765068872913503031066764709089929481058685920947642246726708047925333723121227061001892532930804670089024969629085651700107601195639306774375410197839818422578254329434569395387693431737702707185293321175087275909935090018230433031397747159580426162274504671164389044215766281087991087993182179533219921321879376688408524556936908060559137827926598331637823637036992941055744672009732443678313930948583519668542654172977920897938044887816161913202729795774957658260851609501885773726382844495341270418804879662676133871322017875250520578130134692904961613469308916128835055123360198207251277908884390186549133166699320806444396940187492154234986710523168262261710495034225443298097426403835858943076530557741432138183840439938325741146535675949717502327175007119143767255352249949479477699542326558390180153388629687747111530856568149847257318807976702517056940688998696388877486364881576169169753377396623170329153629352081448936143410589644981613600239120607692755680921989750986298017507738247765246843134653558249686781635071908613769113598644092200564110027042138845988381905375500786733413457636232780235652501131886358656070383763646977761590567361073434366903899025404755364457316802291697844206312204702436906296109691230615212122736982308405533707852469291316074545708794381722849315519118431375921607384759636761302277028358799021757409067741104624769346014904059272114923781891385579421626223831421871699227116013359621546690385412773953041504269351099551043369861848746977948777090921033030173002179946101142124484126951733852271486449386349791721956662546402606205895929260242719990171875562673181435894138802815703174439510247206451002216377537951281587616013201471558833487280192544699841204547344120558228823462466474929150476080879541513392671069761551627497280460706577168758998971610300110334721469503259261551497438428866581625458436491782294851357288623816345219787742540680310704448848023923368801658499082444809033277061220545736597019163771569532025137473752579223840367924919320542434224342601354716626582052707895625113738855437358120189461514489607003836904114475267115881576524852698085822850581821846722862188044950864170274081007984093410733535078771097842186220642203789178123334327775562547728161671923936542337877091842851572756811670182368789472563937099922229283821197155545537179968582228088366639198191172039211982583090007524017809997230631611932527244839852448112977392843775991489968642756214022329868565275257316314716273769812292713982178613470490551960023386359418020856834019887629123331925790853853758534550160088588517875714117110379067547589772792268319880174806573718524010331751837537236659509929644350608244995640188519822243001700039459916412495693578668900461438854543376678039698001399782973096007411787970381094347119137626766803835241447739698342687005618579190645697229168156101681101244636652391002477029590815013663365444224942248620662236537224633102595773989772898479542995028180535206694865023516606891916646799660431328632442622364501194033377642986638444783291403985492617842192062595901427735226930932664837892205134139625788926550920070077521414391202052447347333408193443978878452790545744824615418302837991493406913314668535399083549239909974887027608466742634842540796416030040559583271962339545448064003399844243701358470057154096250136900959491111568446146247867977596042877687031497447522050504421565062276864704511116069424081468464986303849669303217196890321182140195535985169550090952946588020226084175849037326785781136769427749413629263069718709315497880405881601300711504272450769281820363422673067599855366192737493365700224927694238345130147028843326371448678080397420884115504110381844692125930888691908428039761469573602901418923454045270822597689495127503386726138725896631254896266428030981402758348327681257037923047082843521244481720484082406549494039922742974600041018864925208659205407746411925748465419054659309774887264702213522767106614557799063707033089009357238160872819174180673336992891162497884771665337171527412528054135538812978621522890753299512396013651832203409859850866490340916329310271258913743278485879949606566715215431354484401655119435102477856232447898459734709769468807603939138079495092339235308520699349567630755792313846487284138369013124746077705610377687946650259439860651519255607500352194171346972657622472675624032803663646080060090883157766977851970171617710178585313209555431337843725954171307477417146865440967879857403970452093518495471606743714991937836395205241230245061777253387626789613811322903632809768154813700800771002732875572867953591471750692024363580256844657962953497154966225805539032904769633445235300266650230489428870938895156180060489027450044980793372888659177719896381304291482377545373170626701212574728161159319322275385231253313670686218809061846461310149543032555417858129143079473139319949018033411699186128444198829068983443975160305641500887213625806895318331728972730477506060769867319935637367869868303460084621282233009739352512351277672417074514653718297046624426357429283467600650230662982746574424739315469606613168292861688270764541632738943186798523083420090364452627550732646938927304901381032725411645235551872477524460943217818822419416175705640706659846027689346605060728227200965972076033524167662712523693213229064817020434817044275364097266505965491037389881027021480616872527102203153357413294427934652278699692105303160228614873692396447419189442528228881902486666627148785022475449662025080612094913282548393990379906479324292378918559618307587199773104410589662237906978081829150592963373707888392132431411824763154960842251211464514850954295800423312220498735592684142688587608215195420683890791875696790846798298597197068110694229441708719091772027932200054570003920558575224132345467314859611750687456156929377074811940902893403218808850393564685392529370292445649717261320004028651034726082160817752160342067664779778887197978596473794945043335647257392296245769390244621740060413204499490849612180245200144054547687851832553269617714033868668112125137041646723632295308586732799599465859854983183415154227730601590878885201770614379786234156560693380108157186838537992528038935592868899275311529779414438432399115893234346716917159144077099475486768254698676684140463943540287053607639098426447241733403651219370193116360260261929747718341888549468055584778680529401350603855456673309449943779340524669418100686955611882356174556247217101740277273253549091954157326078439968269656670219223564517615862286888374171633431431899252949172070840894300468053590246694959622196357923583069294070691772724824188325403600794305553929671425078699300163055738930688438154376071310216416559014911940466879412868999638798608373617873932255502398999063688263694970914612861596541344705524818023556359254232335443758668177309943610777291948013901277871056545616151628372827187836364598779068884798174221595803928864248970123306625110082915999988600489648489346539474540613421811997002370575397094143947603838892907246055151552461093731148845579592375055102085533569754297059812238258120024987064203984839437936639549470446683495040544358498053810683132163201636379291963363303165248587488922864261239459651139034591879116269074055382486685134969022442775766985694729566110263155851485625915837368147202711034488073882602714099041426428741389468503320766741980003723559165267820775616142891515987669997056122148137676814882952933322654856918074508968851415577457666907166011353538360715079863989537934669148707488212533146384886465971349716658850345169644572160960635178899516627213631089660188444245556119330277492687902894182154405513554002693910169002016499877122073426315153582080471845432057687159151074102571037349284119761382419797289169581019620732714867588615169296677975671150547726358463938057979809861396947728282989938699479834190179079899032113606171547260865003461167826592379760804818998974195236891555119470899849770002442106636939847553947584344874464091314529324740934050944131803864449645331996302555667409875839148057360578686835893760756486835051639369586818082308648464231760602589148858184439739922351284503430791643733692179805771842952629988792152091198890751662254125927590274436401495169875456674733199120151114722877426828859265159183500599653672201771446945628211969229014304873466230901956143395683436921262489433334022549923053255789370796805273056779371235982733602221400697355068277911991622395483605196291485753483300156735260306507126431754987495843726801018700914529421595807803877007367255644766123292699085804307455817526495639723217473141573340478130882416717202269683258166415570145713004679111842678491003131560562860374076379024590634602751958625547213580134666414636629256922362048632025660533471409809005492156613884725880231888351588207443055981376911916753915788260366047527114786884521386931224549649308372728493064493394216658699918404009590601417745302968090022121648891268067067189141344260924837467298481739159715770424213796641996821266843165883489426764651247786470624367354395781054903061741911180536849587588216812416642908806324265862898461336358672192678013743718448411772858680557716289610891483700504439402135928771229033715178668651626739342728358517591656000231157183936491094733773487779224476509627844473090089513906855441245384415818096720116363289556847857262241245469284305625154920735946275134224999252171983257918171920932374417656886308371465520391574210688023438326042302386899561002068849998757614240478969319298131727558728197041839850002149200445301157868730571256793105475821442000837556589554183985541842487227474382805237608661816031580932504887084810168123340265463351820632532497705837778304660413397508717079488656779574239333693970424921907542727389031034887012334375896025359341439559434494439947491577014324058824382465476244549213347943213387010158107912639355398055041358423514753378095500491442860181627447015400004000007791544089834948815605483720897500428429363122642070710255953756603341040277732342379333621542312785315325629261835230024273800414782964994365987087239172282043416150047106821033383317055828325258399684584372230772220711407026818554102933110060019882554818647858494751242947590605103975839982035588760260640405255618233682349964759140306289298884488832420182563661993966446545249412158032248244802844490853699602270666408519144728734441924910220238933408789371656595490452370847705077852931011218019843680760933242482833870518968105850802197627404927745948699445339452391065072499780603984557838135464935806522168193775186779505203825245600128113014341937079545960294616145270173970719706323357473891824596331346604406420800366728713462515512351865326835752203900163026850110737361065148917243267426835242309601996891176521515197116278888420736377872629535774670784425099244629562704472056634143526273764975435786954080877178300549782770929805474965718165163414203604950418385622406769635933145583354967139390602303036378168661812808462481826243230397364753526125615728319808639001431768112178594579982004896821725136399286097670879230473140371261927957843064463813050388238652683048344866393846426653477392673234809803553952652453386187068982547510859558755912283385581945619915465949590116786089347367364792312289943800243601784445873704176380996476763105342170365891741142091836153344668705594172245123744346529537435468254738642004136732863925365448847195271190973650595041422216083772229043000208525441649750951756407985794831897375083252403736391081277350308380819275706644803238954519232977216425861432176927524659907942338611844562054259377731081748123982034919525265420830178853190703376163479083313586633753395714175362478864172433062701436012998850451026493152161792462782146345094091340286848426253400425557108985820551195464439118352598220417376734292033253978904906339521713867764882481119188986413566930864239257052262587627899043167409014313362722138842543700826189021270040989758721750382152746799859960657771064479092660629506731421849583217388063632040694079721254076126554695183915894488381525903636612281892253897782709776158873135281247156146347624649646332317045187597584409707362129517892528780526612180325525956596347543579214962956628102488114974662996295103963716046671303780133107037716545812967971776305588805044092748289235643305046165136003394036236733274326311558222522470814781348645625667663528561528102006594077714505102604401348244007549489174894976340175742660376518042583213579621689486308709796710993539445978943656291207712068802112364320013901117975718018524937699892191466400238725790562662195846740411866373461115220623009621745653388990238051423018055919863181600679591744477363275915608195248558738138853896891775048353531472893806415052180477726148408863979170252467077045062228282546730174953253646732747884137485604914048572465191676415335490648643946795120522235413901624444175412024634358062669940719586771587437410853124267712800807206474671354128880536336998833100394835497215816518855852515408344253715271293238615850332993011772580724817534009855679014776805358730731300214371103203541204735564625823739722097839919144476018107857359134367607853188188915317156898235444155838443007944913170614821465022247260459755072559576855510450786588342824410776585616849516342295142179217270970143689290019270648554707706527097041858193057132589046505084500325370420854129646966557120934646580616376449763635784385815359383016689702112171296478903369609132069034214202577354814451920608221449958848920699813648845041862363692952309459388249283582978496237981779693435477337679192170756382452407663915422333926462861090316870348270479931085147740177822576087333689701707286964606431153420946979005443445396551826266687486405896046536374111225365144961620941042485331460988108977888215455349061341688533590823460110858913161813219150343626575488264795433126150183564296159335962353141841383137992537664598792368843039554532846669194750562146855244706672005551883257800499093798037684382678615528363868295335979440127967621337134294242809922284027055590825236365234315885760767659554541920496944083903560099739206175454675869390493497997770785763579576556797780906313806124334906408930301272222293500033827445960063580841011174590235208053225817133781953917016005567717389720910432858887964263147160396537467132904377264051645127704356071164443554379490824009002424244619218802237627706628471967726671166724575818154618767148465396125043627634927281566514044968022705679203808844148607413326396751483448712505333879886587962793063527644893083884211519280048750517027615769239418616858606638026371923287197081112441518089193928451245617145906557373917312325119435302956031353697613207497234221889638611724442440509096318123840261241366931557219500092643253145572301407354293991422045988861041948251890954592645316443089616242169981443448247631960616428457022482628841662479528786232425590042701183766381727318137293101696209400625556870646290305227973029480292396580565966352094349024539177615262722276737614940841259149373798408249092799492164017975265116366100367259189926652500717856489108676511091468687188426437949559632236686869714106405632510893877144499223337953483775086694944092488359704676288422874094925213760207155090805796272282256323549419546440684635899539564799685191629324018711167082512114900865720308553620013987376612734919357457667412866886261082789428335440368244644636223885737310728138343917253025295867351429632340557309146380219022817967799490172731476346163530206952084740435801543541340535217607768953180917128839790489396135096529981481891023657785108277249653574132270170559730494302279987545750040316149258937876929000300983389612657568307475292656239372609188320518736246912166895076444746957415400392498481577828001047056437960596528682401010564018433446359169826021950473189615375418856019863472990118386783778325361278583096093141988794973478359714019470173028136735288835378626109422325441414484013325067078715465248260845609940491650960677627496539444981500731082038813196053079333785310085596931612847712438913717012867558138226823186227548603577396795663477727674244896531375448668801239022429085273601412261759192475798541604652428518492964654962485840526761651834694990580237956882799939544199362931958105408243213869164644156956998942465621686403865471659750352385359318210071142373912841991530425153334535790621603739555625615926281026469447494565186135690484534857029792662009244356386532488885426205272135473852128952247900990837452921118101147835106693502280925261331219239481588576666411722046721952412383407506274990946089068063017653784605888386996207149539227470275944272519552308679042059819166157702155020294720752612104395517498962156242809479397627682876875904279505138664114097774323301261546730457838627439106626149304162446716517031894716706560438039304732133806559484900441641665791655101925897676146925452764752530153752560108384342421039156369958990078547633663733217554740039675131219626384680960614636652367478239860345402452028410021382980681237076292121813764444016997014371164924946828068163374544093752283694624208033778867778643724852748821330924448748194730978517091304169649640498672740319571491184281634370292430191863951237692942436881055866424218931648724448283738461528021263977629186629278743250187557060707765548452643288553033832624419742941755032766573578611880814064671143556180050442912805649398956586269390293286532630006589523254940753144228642626911166278129601309501247038760061501826727781585805546456118759778332855844807413713954971515812592126409981453876794352830373920027710580434246058025270652101948346751707761132479042879773593124533426972819704679152205083589069175374224782462929908039503454989261959971261311312223406192104923631781257603995476700907718997326944533809434897832936373933070767127134509095038015444219062092176593348230568587174398490666797600932615300070273413442286756241255110875667195026689260735913834863214666826106130979431444567877182290829279508863857081980335097695513531843036855679749072639447989931831336200776376413599042833513840751845400644990002026221475997160624587992624422635452970901931713199987636117134792319002288668777258322402008448298981807971918468456828679287510430396021786360784572075982282916752751336627096567264503107165506439997368244648582252490824312915499629205070134051550403003607558872042839169352888789380947103872348948670297087432430382292041638727706849705763648168631302815459688063540439748447255005687960064596244574208773260933539313559353712286647957481338813566605295094795165523677965759939069097139624052615777819788961638878868020499391805760642982519552797959984029781693893225397895729277813268703630059784999732930020137407618924318996075365199135229805717858996152365584065251044550890805134832555934862034320075783627412729119181026372946126383513905200225710862698660665576222410616273849770821320550619748712532089541142629301708237390131740089879494784859680856122656331873588902327477251062721795132640228556726392707556130548804943554821752008864252859214457448858980023330280973235150431890115407740404015461654396337391463312536918981772932487047285190161489092037311794490878720093142421665374032439130176099606995202583283990789960965888904126661099942166469484088868353175249265213460238923087465660635117724929668339140031013703762614442519854401399134491400344291771476816609372290076301794208893972710287662266849889075220296522314293866298728732825480293375055528738494184094550518513169012593386556396546755019114523256372213593284756990938631290739060593448732104161477305054499352777477274801873732423476579305473581991897780243896831888059134519769487389368309311931154788049540929275867781570927972179042249428146251847693119763766785588668009289765571995532090850340633038938451445634834212880531498637694585995990012528338908316274924672141040336396362917888201262466692514693966351751430567906458510696152804543774796460393553358668826324899281123012588217996768904832639160515416950809775591305891987425528146927113434501626844270519654920209809818670040370528320254172763265581481517245891811905909292508540010468470388629816290728761677553048263042159155325828162577515879770340841649909175880302837363216527785541560719972498126768273567664752033312000665921466640858290945007311152916946308046276939235950995069035401649180901680020224811141291211947483675676195433346080513465443350681075302971944786925268993788018499222614227499221817096361328662438283676402037653194951714970557174586698332383606674342421298013094390003699991543139126398978936936817066363579508826011997918986399776985820173169989962856926435000391322095777059024302449644962551050766941502218026207008557741075950098847713264772292663013096794554562390777571677209570950413942762883381708330385124938388646121050678007584021450289110159303482517939738095870622608825705947679073942487104492723369870430216272425530402599629221973561331787628546706253596074678913369824321679357777518060808392757680058213278014327799546475448607870432141108038092835758009570960990356163869580728990027196115944752188661890608420168570682168822225024207326541571643941305210723984362002653438225506335949179498258505392811686871160731844435886503373132777303842376819724195449801181914348888923804776791847287929210298439659183620208525516117332086497227992772926521513430076891180924423854934194613530405627980017784416105826128664431605212018308549728868489914988646257934408401049115904690263169615449489136870111559760498835097662279380826724406165752975486494176022136546545930542914681353483088420804856170052593107610839071613897110991904616081005184821331875703611409862180828365627479110583349999863107990447102602688531940834089783264883285251802329911861107545566988147474382730230636273657522867059165205289145145378404404464673344847582949335195437149636944184729611418419334528673818229714992491324560798312427674388252178909737844077812476863203458705039789664049137242449405660921700921798385791548418719636993985723698530114014095470526579114924860474305257162137669067670632093026018152455268272003753070221588805900072418063855164626568931512876931241725038814889698934125632872121132633864096636168879153697780935932954477073716461410002089542429655711284395324515891249762042888485173080442225118582852738258364915832624870388299396114419754751620531787791959861785914493251407073910470547126329707428788456761657174166608188340151557216834667639720875383431758803978553638588325882379686726067299073497050225468720155403045837844734515602286131964620510759053932605758764964717625795044615714937053479237501262625106284813684872490700910445859854988879554492536451907685701157157081171206361517550505114687167886441161191911321745880332289027419223609178527119084224704223612140677098986472809329862460568945108823581030467963531668748199802395558036363683396078140622091212504053362222400344880706596519914873551765856710196384599458367927636565982247179155047532541718598109679423721680274835114307596015882386345550357568497310016023899440720876819775500906441926097149815294382691181011497093259418429530675110564222501010693145508112334652313196617252728069019194010026118381844637231976774516186153372548344681082288943184210134671618641450993545233011709423904725027187762079789952194075886199608479648506256397616591070971509027749349329455082025006449547683235947769466573595701808510224379499899185376097258372713757348627702321623656577456870024503586465427022007853803035134312873825362966897091274516922413505899990739408686503764480548216662788428471178294835001518133635901471760014751280861663880174382542651943059668823906901120446608568514652279451522139198777924397751940720159633977432718486000578636634170381764473740349502613078117168875497950687832864521197133778865446118950860744584178066035997757019111893636141272283789279488427387100161428790991923229236950760044777444377381474553410333387667346860701219399941235755486632775764868731337046182728441066056107844736281981365827086728863763978055093445604969444424436884532263000026200862703571582908295348851977312264746920244920573242118332976617997938794897626320462208589183773925406730369405068797829032943980863197938346288280082001320859958422810183253770380112582704874805121457961859789304740072864906798555859633580904722823750805140745621583961592302284608245081998372776196736585974085362532518505661668437909747156627188980992852817763962791225595618698518353361248572270195655395222774927988647453678713296056849304673173461263020415210118442133168194860946688445966562150237449133278821754333029469768971681215692946992798527941197326531226275170498052338218516635035195850308622568518916447380388572016970608662977699574618259910294308020839837775876571286541443893551200971271419726885418470906847872182511787860216731813747949412326208383918977315201371559368184296157193691163155423734482094215711476397077950286621769194921365380377502977296143311529768038553758375980516658652192239766794908167414817481810190724013138418675106210761886996684670643209764238551117126496178341880678208897869054886543595018461874920094548296609286222373616493586299077173461817761396516633809708650205662241125616450177378727707981923719233320781210761103465202705372145158727543371236684663358245639722812969687577700084940319313574951256139854014398774690801865175360213077964015228673193832608881356249374460447783467897598477742406106712577196969307653151123895348780296474844377877635641894522873839633519489337762150662356860182728841829121843339462184479150160065277114777850387941759796426491609002531022897678744500665383088660657633594401723800453180041800218899656316446657978126064089350006921794400078820187076930932933244383966799061251231016229149494023261741158651635855476755469544920806056882252468455285773232724147714604796393330096515770554849711670850261352769533260528946916993134898974677774011265974828821531574496321839605163635840382455782780384601221144809998143229490588531423992848149789689067900013936493684879285435819879248677325692679433870505865056529128283674514113862753339173065963416303768382332555661574241185203945149777175991126176322638375375644996140486488776111919400209608506258695459974840292676932622003682988056651399723319305825514454042332513598299727740360799101072749605698507192171152301023227032811197455090139831199082052571688978045944484635343673161113159784118008324575164994604713167325076415139048728702134220151016332871005249931255478296134208260984725081347652690812312230024118539150910692377828651601494106314599945240607713471327113965369173480494577783110069555501699739418372303946590794826412164972882741411639989710549020694391010711860655720198420232339923157328863586740726099687775640536198507588625574751207253239163597644060240456252558286872037158809690096481603846193427830667300940656182665448697048536658671528214525405436815641086421524446300556414268668171656934292436211864661799707670214248499863845687635728867409324099723019021192475079705576549978430818548993637032412682328171690044691365989958081890823522895590540503072045924041411723082017376260969635968085627870347876628229979260759179280348036931869892375972088952031880363864900649295727284925357671369355137879632707501779532832859261435549756047089230551620554048061554620062024337986853236886201103810263186048917598379843394005100438812116407292497913439617010279568498881263283920159679813151700860789521441634729168222922580090224958977074009044196301142560711518984519862478474149422881745668525693909559336907485601508581714685062667429626071043850485291099787983238170049826092995228933552963100772415699580652236288542044589247861672612488069887169712447221359375161186814768989870049598498635836380370557817457436052012037912770403637704939648930384975930643171326385125286947186735352569308897494997516997610367133280461615287686583628849690048351365089637185795119221925808393686119643295890661766386398363060668705662370880641912133343908772875470769990938357388301856076779309707062612476657557964842365179491646105468625602965567506763309681412787441508227432999829977802190688544519466977500756661088163491698779506230005294212514424301945715479171717705676293616050290707909589989901815330687121754259919386191731760324532816882943404766443861372891458704115624975912975037054735083579380583922808817916706796524752588031130952560374492823031913581961000110996816140150028068290342441995345638602428406194329115757738622490455632292371122892622944634210030910263126189117269393128794793680142393331832305539658556998322227658828348064850175563510806620113548079318155847012409771826290573163530776885283171548934636751393024591792010055181754813160009654062184735886556509732690701943079627639875038591518340169201773083502382823427771418675084198426880615120555399862048577238415413724109460049872562013702380176464897313255472897990253234374643281927705108894817356704238379700066073163786025506678553728315961187113112950160329360120981870105211450593226043960832661608548860516014537042224085795155298507146055950405324304655268521889324757276350423385214131775911199692847898700484071347966068921388371771643909718062127160228264749080580688047826113971017090939728499565339538430930083780675486535615618961760186864469006899478031875861373544559053325068784515782110892231179844928443155095468442476471640400037987906823121949114920378470144273002443610767136831239232647693206788396643000853986076429651566069702125462380250826215207840697584719042114574936676813113857702614096261551956555344744473045549068653574064913478053060937929695552630512410980607900148028359088978057861893703484388990342900154219555514871366290329286714104060793044825399416951955151178666703866622004370108453282780362265232925281639577163682740758792811535120704053267332292266068269559059266562559674511928123942195517634556839050176813946987959482376583397833369487522456650722107102164702834528418351840945394756668943968738048489257505724028925050044508095854192320466583418318974003212218473436218558825132740180880451301214569240723204416470622466849356367363320118949543918287912879728020883686367405447918097352395925469102727506785386522699263670677006766144631744385332408772833237688003716412679867062454949977054576062345051081249198308734774728755909007702906828662813029883549925491961722144930823978492794760733936405241734550920469044795476589560087535170421088151567930657398058406486779307013286299002342346052115330700200598554187937423301304484150818129905949397064018244920695237443031558744815045544975696134431675308741328895571379123078882948587047774833444710161848868677419365553890889746872832331364928756862860774565458713042995842449737804988884447334564073260441825777709336054043880841929034161358054894457919856270327675965259733526364781522153501843896596034432309850144442250522332883458948803181298117018452780408770253350607185974340016285773735291489888155014201460893139478221595422153234018858314408423080623121349945005970296753512064196881871451854754242805548672977005658921852602208932268274031783960967352947810498918109056641363803938199472052347595598908715081196588932850034106148514288941870119407827792811362730790017676599970286814862210114526836376166005473426511816415765600533150690458857405538046438929421660747150823437791592213654588818515362687170182097129018125873458662825222042942711572336424741257571742748966949411690694787027195060824629817807721800325897690612256776805318152525859887991331277446493134958021079131068005046936735278662675321186721533468506607689339982771047749103121916350820965347662876810160790020778503445299055079125541092815482671093948777994147708600639364066339525477274192376297740297336648160930596552967560771992672602268053580245570670420615652126696394883138736504777039740806279553487110353724004897088302945964500708889922190162343607708968001019105905349908141613414121461280585461428433369186729454111278824540862597668579408793365286228359403576073668594395972937600246734457679230191619765680434663251368723363571766181505324486537355562445683371624379614716559585288845482523888299693227899124332223868862882379691055927589717997566148554252334002425109564421875262473520871221771404864499881090049501787655029149721455802836509199926698367734066110623314698658073127301085045601461017790674735940831635837021688477687239738051052501319503032194454453609366900983677852594114387090526039348152770100861398053133832052733752456735238816878679249950770527793886288567511513799959993130660042901836563322670962501546311401977638308891970115297612085244526745726146273490698426738445180324846113489313928804942060706724833192041573932252801839394990569586893845685883794946855096027316288489899296875543870084569497510190141919129906435279334625122205808929322538832580213235263758482310165554126351133392285137399423461376238320763224963647786996037212562903467972604772431563324671337361761122021302921701414500346466697519885324925586824257408167034901337228758520493579469476012309951788187957289778089489020133497291528027836499122768626186816202591464814846933200176426448910118830085110778374715180406895175546637443298104000366639199796084230695995346001160641093174110437944762407488609696199627483320753018944366383698312886029996256445623864127620146387538587813430109371227274109564175684908721863667575247714938058477668229325479776688921860569846957419577549031786908658043748385698048766046199389802988703617014752493022075577702141915362877464118598538795246181167419739896532879356354520245851350410641672125686841373408836607954659839624424528457309023474153443152582652654534042019196972261612125455500893010988682924096016049282755470686917838977720121862795651862591718545043271193096258061305873252712699329216769990319048863104831226938779637705666709826120931684188550679801210385660946713881659325595687971387415198551328114161508315283850213847728309888697117104509986176259982443800484303837397440508338859659278666343904000612806451514228590553152396431400274884988997966140184882113224058862117600806864822963975759392163976049060908826746102617130216817951891687472827934381824363254781580547456732768545384719722586369293085219944071784409309297655832284358556534132298108033739394707485491353851993498118938057640200250755356032916502615239084896234376064315725164695879604136980380930136735225005135018435291675958785037194288531573681229516653922499758750106891611396729020184102678656688353056331669715458273043623229318748483925930265036278460154278841803367559242343588019336549972631658774162565938214338828735811153527022708240340316555734782906990849538915654093026441217508151231625478291165635449283497616924711324512824349265940038229080872021833950650764880266157981851053905989016366213014274396641334556873977505900934453887288456194717399485009583305980270126378043482630409532351063549372400114196278679118728653328429795499630473565031984440706618740429710925249253257251036110129547506473156936121842599995911561326653073058287063954173512501565052596572792777424755282374726006121949649436501703032966584800453046486767899677166575938951588392009237330913497805416454878261977476758729684589631603488667169078814400917550714441181722565633671379014095905944750245775335187047702582542798820579090684465927290438821892693342094940473724004216127656119581078274336364383270347797095117900829261367425589022658348777661624544394211966639658171464249913263638291869502852526111463351029260466830406909695246580368468815126939979370025917754428199850398374065232484517384448576988471492520131882724254883487232744627914802385536295727537713046147131448989213910797987810096912302369842079519241076159069076835959441471294455007677876937666256668221620618782812988525162454401371553491666262366848842021824718919167329750260574997522340390037767345807741382608175478591269317668880624956660788054835078495147760389985218371151580310401434967630282714607233779813837589265300420598347699942128022123804856872211344555657461116872168795236644263024434070322198127457195547328176678007196647461602489225541204073088692245340954102983740079686310033656793831891352678625666739978994203705528921821477986253906245273468675515651795113830511284838830185478698718509437077053479397947719163413028454923718224912970167877540726528598331578996707322829579345196998145076448165927686077750804165048513587596418164403467253799497268239894424289767006801527619183401457365365367589837268877924709078193128548593701424027143946843669320824887729362407500298148758341421735833900248255272958385536194235202141078393281862573207224236968934662647158904249021345901860237767689944638055984884161904784160481122040927060018129797992850945798643047512397227042531053171482451207790725405183783074227659992427890722708339137695776511005387794654920443564921945751323470965014140946879652819813782324841705721303503955461549214219081755182704913725365934252617669626007136872491099207546590322071399010658694138421335840075789708985098853811582322838307336497375973753086234116056492335131318969073932200405671989295368580375814128649567754255699596730332226168018010473709447416605932536127182819829138137215200559409335541568592821117617168934710426905561451126493351308071886468899096025055237639904733757652750740814004138468036856055041613439630994991073903739391283526377020156154798632894552865281094610247895253345004952705868912220241871559842789553055042498520186214636878774222120686439792005252952424969887852819255967007461234543100691093722174295075950996653018998628367612367265325180744837313435268490944445628543301512954969678656936244774621856641481676912432524659253174938048706473157451667197944102949970913841598543621226341345026366289356694369036265206962033770168644009010611032968981385602503856563540908700973435788647535679473475904937541992087932175840061111175988990345654457802215769781094001005208216885618967386844773808202169913076416537134262765909072300079158808124563675351584909311204337193583942724782842898093085747756155244233519438828813919190756914717357914957274726740907769654301787214719560569560719903444801837436683497590658543742694282158844946380814436412201803173738433759117987869090603191360882785150659355517206793521802342564758119098421829781673337668080894046358558311806496280517496152554104172045097722534163195939877113646360291967658231386155457173955970814915494252001123781117262235978599193830166137942291038964440654443075032896484116157218214877067240877401272648957626353973232503396021441251044934980026551788190975564818377987849088088556525459721855797328946316500587116610672702226422853894961044445708248477728484362836055382721525373599300580093495744761901349161438575326295457184167986340282076646569221710770010442362070827593708352107982342670596071790855035763568573036911276677944344441261765006988430731937229249065049511666935464285820369960787101690144681033672801887069092249796520795536739320845308868666086141468441397656178824805587743794064627409910571395437847793080153173968014602143986895848191693061493060347235420431108953838966234462691562579884490377838866871391232653909254441702050746700048507945133417217139234442944914747521248084759828797333511286578272624961451381792281991600588790862017377309079558846009387455652778336735296679577010034359775266519386713956604845242749586373968511129438361852806438208761458092258377829621471371143929974451912694915787893394078813946255071804465189200904495344254727645191705954779253023189901769817916898596125309025085194658817349516132471957417244297374814125518092142921052578166853423285259892900873060604114720266459184830538304497537322059771948690077160625506976100400795860554196156870173566317404808721240759263488218636575223787917980761167006116696548494811707076748529998451518352791526056940430235458464875074460973890662229356892408511416712078455377901642174911357040563448327016385558281606493470160043787215185289499757979315793766360273656839620291459704477358811174782572234744316527570303645153570375633335027637835394359962859459613361286093756297370508049639752040671208057322082630943511782331388124469169378815268844511371040446354778678878135425469195032282027116695956357962284890266441258823012354806200403169401910880090972516745375280900748203009222909727417959847432189417473194646591744008147858756204204323227277100825115350958140230327638570163823654317531740610120605937611802643001342028937353498794965435809260610215026630491839605171854560191257791962679133283318769312063431106001214729874691633554389814229439800115637794519481434094610879996488910524766101122167169818834190591651206354240817672928597787569522189166743327587819558360129204245899866659084855359130114823674658155887385137392267367643636611291136355519228945812782794902495034182640715721796413171448146967509936195640311886244604716058235058133031648157531972735452752505445686123230848270397924803398263307519742926118304495324341697035851423013032157132972565110968303073223748920963184254689784698246616988304462403139763668652412710780377565336842571662414573012525158940330622043898462607496802838878353222783049762504600531007207666009257475015584862385787648004877812324930643692286356341891773759091647797872030884749025483024847799421573714821387640528547261765962574486282240357006053644391425689136529493762974991511682912806108851898671560874781765687304287724046798164452884559619949782670265177261125792874338849291042161312949022521193679180989697351156373728658397351120943713009701411201885691955782663769901057279395507913045104130364362075578979702606601006255240282156219883932376203774373520828328821125192413418936034424806160881209097204106930889614940735718925840423801126141135408853706186749315832500766529657623271845617290107516550303523836870500360540840915237688350528097959677794511777947401281346321764275903254154728770709671761508745781702720646022828377076656491423640905324975032501779116599809056001344031289302890843594501888508791531917157494856428751790521871163057287548647071528447643788940453075051988456859113711219096723050368505925713848320381915687277054983897555348608048060930700854241963374245072207665941863144328844660284224347042755133058398210028466916275065365752578632640312113163494776369739645316898430189120924539510624349049812014136478125787675712559395265331989116267328472896980178147256180314745552157747755700646000841201488527846224907258375740621843494487568750352586165982915598706194693907289591269447517122726607972365030018788616116047249729172133861900281495131798618298660505950187205718312318366525411536997349091717538541837181987288167683166725842428630716082859226944776530092335798935373480756866260822421317117089242749340300782717240112352233382606111155419826835497374425555889042276451895640467639321142822221371295560240174171146083179146438152923952425781544172352399201486018840448009715073760425651998349340132783685688596559271229181352184296377595157553408002777860610780438726288982027689013488924879860307357001073781081173150370050051901425613609392888450917765649162104739165075285046500617286903193586275451914848870257913846903993770073153406713813593747261137163371218779023346447044772267487797267333944030924962271046241705968412008970175545534181644624539448317416115567218264370436095126027536280124186575131658527432270914431416176565078543475409604618557605439935345280390982030850791378911381698524669892270396589422644869237401204027090145429908423661882622959538230918110278806338149631570263777545189471644278015156593610638563128614038787901606049225243569295230604100350806412559781450434828837015670687485465885815383649261174644886586364599595273822459579780054354074401374170650036633436136882293067508143357683564777939457700827275919196638341899021658871734148472714728804153716228690012487265987753936809547887078923171624879409897883773164419448307880787986269149746729303170381143384569309093280982990730204607090012197919585134076358526378191459518475797690728796228471268877319479207601253943860203824372113615686765928440766254878013701847028444419830430787440784404156011310679702774395648737267917938743676625780813930351667677757611217372226005374712972285036303585245087078321254170976352946179320437835510713773189373681464030263885978797370569090335022505089854418417027557146681124992004687194119492607206301764628559122469939889937975410861693997362603547471263394676983008684896153969087338933920347519693216863739904914328077035161827558751716904434517337332291707839653047047701215713054683811425587082548683771470701528842530386409463948418060154807061649615554831015654335801107928597964653700733044565444549543217057362411849242668544019107005518533443286586799111085571314878467712596958846821838425621035688517693351959889879531051639516887749155859646584536142152754295855796130791152738126449681523643205456445904151168502912377672717364666770928979306032972470336142129609320379565214192677008213374566396075906416210160538262280180804024680612333253713463937872331080497092706738816240797331640075464332919896020224608253230202888287452277413576033883687232171586199850285763279218864075729230361192022085803618422519201240836075884226976872149214663021555959120670925400080307873233504346422074589824446195343787507362392285970844156998593300377979996718196572564705622711015769755286673993532418390775919466748064024639514178196515553247675827581952495680408023106010800657397586997755956072697604698770194310684120119482928744507535874442833039003239365032459202478569295879131072260316275206026713199522816652549107199765471579141813213596380254733742730051435876303489689734170972064351761778606316660849481316981179058647334002670225434709200445019474587739551937059492513391096340766143367643077260440554827129080508605028096144225636358700992117570812176804297639068377902540146997469985428949936728028471341446789141086616519956949188780327107884982203691453594852823800457789460820599153498540391587482794441788036654723360150499587108066888272337044521719058254717627150427822890294093178405797256941986178697845414050316244284338947564680773496636899801952248965696645853035131476351340146733149618376480516579974712315770936554449084654253647384287890384358427659238788539108208622470211586309391329065571154090027525129222318497530237702504411853060985638005454545435551069709144042079533048465758199078658392833298725589614886272667692141852000346889736366379365367827429566588490551458289296899544420716617843058991272723935828293114778465544323605353272535329003511838109267319482013498501546554367610603343098795149205908636143073290783347069877363328386440431246986277383576679226247346416036651607120094857657014481728719763751540157981757092350725201400724548101041271255361291727404012654370717106426776405300460667012866882728149563694868714663417235035034011692469322996467818749276652672302374643169959285457815576015312039490836909699947572224864588439175463358466494725567140402405834439496133180139389071175803886018169316928765428663499567464024378908391305484935730661315071867728914088994400613317632051546583774109654702004434266064051580747164918885679672481709375488221935170836371589602718458629161538720770389652528088234019456208842343870452341672252346255100934771178271265954199189548435566960409325163730470969582471402431250919358334840537510347726017463336503320156187071558696511765191510063444077075052265726375399255758755934418767746091188002865911818949214760889921836421152939078966463762819609446502517542357900398972580084371457501132569056592421984556026105471577792079761457868667269395955187132253760764170711404947361952003881338233901966052221272711332320284852719467947958631317677231353972996735604753850131289659579969224248638130685819185971851540771421483836669133374387717893605862696967247102799329663392132806874151588497086911405762711136074252884009318113202243359019667859596762281584780796867940075948151713245582823237482310579203401924171043834601000178435132296425340573022782106236933285051018355987341667265046351372981707184437768235457969144677916959121291380197279249367141668667738162309132088057765290013929945347418526256543393995242729123661569132335952585896461724885943931877254166524142039616795757389790319251041285928334549752370005495287870768188925860764449379088449423754449952001794992977685700487344855674174188953213413414912400379792422898078721573007458224887728653774285399923121359815986435751127580113634505181128195373974805294313667446162565400258777400063100536539795417144737387243875828948529341868845406919642749851829346383409222254357317669681344299880336635748361509581082714750133272565847004794049313653023012627135018909538056817035083585352079188644401916397467130618547684403259007709285672708903957298849180491966636613786084891534745405960126851800041727337524209368662680184307114816621657895740699263457174293655729916133372443069143402438271904249769075074065173171423514265587192754188205836370626203173092660248414926784861135945096365664780654902403871547936274597813159626664703011926638225286617016286416797293204552954569474221841477430308915080497739587480997431187449271929889022278646977314876921403048476605840396571558053181605728117054835381800705951583315785147927328365912957264887485587101738975987248296940208488419002147222128662410401564823114817252464152984279599738016402609385807744021306559175263550617195608301182132234564786206272067619965743376851914916410226894236489842458642486037176098768479643742768319725939401064961418134034755499928061472351090077259839354025334366393726241262166541989709109018236147958126402502354595924912470935109174165778099428465200309960529042441554007991059332413975941690992083746475049240366293837833176810564815561120812370194904913000459615426244106317049473473617695465081684470504048806413934525566474625153407152958381221642008141429432606765894827070211607997616545162303354733732892777336094913037149325868476807269110401975052808077914767162532617117130408372534990394001789875150179006740327410304485079368577320380086089700405572265210381458317181423129383078676356968071309823135176589543569235563848875571068967652022717473015680362496953442760139518065399225417362567267028683327427044974204440364489288005057085856110703995777868961290990668267811824266389192375488967023576897273442028980002738328702306221421382509541983836468708338735163640570781441042539864077438819894619038417461583057605730658910204589465709549101757447973221609407038185016804125995473086858954689457883806149987333909178139905106215307994492636294259730597071822031336247582242768344422957178041486505253490822418538129813721065343192653409795426940744984331496847010279402563617783022639619587930034801997153656573072255340388259784329359674117635597872075838270665149301578807377872088797073258713923884777543655940140501301298877459620583999392468370318033631274882650186137617420379242075215314663614409020925920249750483845584692332310624356380699122598939458419481670060090372664539579896284937992784292963995654808326026858200642924406394316339062125899966203701150516819250476163358187254340501373928049895628657527274271986005052712624543332673239584621585742472388331731680017890052232866092192169217354276514947889611160137504347704400717534246025199288952653572561974308817362788463132572529210722318634911822937279549210339357961505065238388908480502042815945307048929370334188209548758383946791392274050081598051168739746725706738722271416998316108261616471419093931023271626423662083743056762964581687242879046772426096797895190896499678991113889227591643779364744577711550724203511289400573650589655516042318743324904701777307392401545268916937578853696443883491120526608439294904076385576712546060959743282231220880624563785995010477896923070162527286678672798272242962245635859453141152201130778931004933217984373156128989150416071227027127998938799957997245529500018905908331069066800414995230950884172142367381567220061235832220350100255379189314538010356146081336923633189477770960390091047656502603385933937649872342140274243293595853130075373922381546455489796479098752504623726781568904195935377282773393989810410135232393492244504384060138075589514550322560512925577171242083464822860449384176468412526787492121771812281835229068763431929767333375521434525060806122244618047681082198640958239532776497372447848658726670921266862712432523549731569306135390415827349222535381033424530020424365330921381581821796452582321595586313568175709183624082429788680158774127622281080056273415887651547019039228804010439413755789483665102376915603397446897348065496987174216025534355512525022047623002462561570116939356990795874714458121628704575554213170296822318690825916592111497123188494473212345338164203116357141718376470073968941475811061762987905358698835443031161828157023901590414752827289890711898661613193090066187683946847162288880663665663768732824515824376386549022010702300870734629285004779714586019094174811579922212601619891302939953109351474440015172220759446091857317808879963044433981030017115782069040904000544102868341473668552380559791440459916332947786481345248747248410573390217453803913963549751474276896577689023142415327527409325140538019545721026997045893848916625163570857710127000276972136738410354146488111172050687310073007633518190733511256381225902490554354803636167725745610305460621676603447152038890622885124676499463671558552693262458007247207006998174708195469101772534308385705879411927897672615717879842979431806579376587385922380556084774402750731965781538027139453912818165661094825483668569886930886092981571685470968730295273221019699457925145995026187975621846059919169760490939113671110050259320104360915964115224935279206132145436660848848742676748916551993553458762990844585714290747436859717132379627438449222185775583463703239648490665792534996202281175518536939459135989320274750088822745929319779979479311045613928460472009624843533337123744984980716097824655169419266453140493809768176736713542784999082655348172886649647005397860879679538229894504493459291395041360113366252009871598789174268586578834249296455203910747876703007804813618283400682221020049611349844951347622534564419107529069647831974643068327530089075683898262740487767575506733312662674034739039877860260932304958778874736442425159283213893359570717658304161199768710022737714278832370986023621121185275177541169272100234257938673213880178769160558105558530413390805140170823569060321570317603537073661871499825510913817397332083830020213963327144986837604909442481595684845435200181697250975665018504506125493081717598532978583411203185036605214032649076145079164880019210969224010512478042236545393235504604765139660963662862921408882638686103243491782207715842485352585005345301110354935340109377002191186645348184257415244045100482657040447371450991202846057372703966611714084149860937736436390869989419455138351531814128837569327706163065727981434732114088208169299084130442994494256304809265226435392596193401348639880848969047205981621231441178842543769248988910488578081219079155236297271144929731906949674402676427344434785935302967096822951566435287979029945728182988243469094360071409253693405576772904257610424172216657215168227008216703273458937616520953123882807601450903194051946307519550562478678726684960975418621617502984763326618127344524169113694651017321320471775129483445485991366334741679327640215002120932686015332217015645276528207739266746717006796671578041548183261704581927554063021830526553878128504445283036808159428188022283336321563574990424720667749451547768490446207870696363895464986052893182338688763036130499772523329869955340328352042029251297147945073043816677147786332242586633152562421641492989328073609065560282548866969976419395175873726532998413389178018869601294951247366975765775485463919075684058448575813506439244483817602421761826807304904910956774546608943869828691320385116449614400662801130313795036062343214747334229004335037981488705612294781572372214734331626750403283121927912565806147422559289551541979945926798881380177197629457025774282913633556868070366546452620190279309691076355942464444084018858791185557940587969100661309357306690754979414959639456591903693125819869214909512664206609639029717345109157836700827073008346452184514027738825230354755304605393401476196904623009508094129868405172423554027603504783448482876605483556944710067862235049365276695672330898444374535433334360329679648839810204913047648355182187337677720966463652136999333061715877365767057846481164916182985623277626602754155387637200663194163504634254966668367795856497243356809360163662470066895714405122303846660851534037434436235383707755547568899771229076872250843604985562332034672576453171911886064139266026305060048230046147145779969005217370026094781511186404521755512283177461058455129782099136752093287673544338758370253381508283784274501777938257730424440681578458846258360817742014545810456819451437494707682345322844544425728778549075328794727716913866516883247337540976748517601977918592521421143853681969140535140183356052604069559037359928615357789308028011218743728956988849537449439872059685840199092168290399525072425752721951869233573565314413910216132057696716976265589557778232708051830078292566518139448515525734210230614060673427040665228844726394630073657880956927020167326594803580776916341978903882785364657274660784814279943552719848584296811363968100672861205314643107669398837982454615894560885189866987817688923615220172094447843467281792091516937626304839811446155755171836515098747040829577523498949649444246901446898265396873768777160064338017484470221747433885271746259281200333251296221714328707833177329009882017474985032458325548048398080448723971243508309650447100186723445232232981111683077810719460416474786680564683131898093713027871135962483272517636876202078857000874218287186039053158997351681301891637481866272557987508761317803740869176592557079921861631653389404726086654602923442767005258604818748199171009178053729398599311075039678586508948559633782912918183670753642521940639783231961988951070269067238918612495983828078796383476631741108948807948880984478367828432868837837864573652619722134887091761272374901810520074405046310290820261238895040356307263891431097455250049293130722625506138602075247167550963651846705641515570961638812568015870979816747773054607289044309751938854434860738670140257308472751324452034530380136300516807624064235972471600452121727714021100706432736801206545783706001493293019680066461814408046709769402440052361000573794185196798979216281919217422732204980368649337773566691182743273242607767272167750669048337430757865524289701708078903483751927786755489433999411081555107398979673331142632728020028704400942453377206452873809498186476697648139608859731199740932961406621685639468233317488958771946525655042813677895960358375253245112070724105187717861941660693496674172040431758218156442257145794345316593562605786739832708995808667262310681822308275343112177186297245851013477768497001389102531434561148674301540470399586219248620407335146532629185405115494065297389301944047165228057497813592176607480561794599157212601849189688962654082466613792579626299782974650662031261330065134511462171808010252048563423700922954404345618918579833164606322872010652945091995413936304244285033376724534855926316039095031405093423611444222054533632909395056239558478984485170052640846155417317246313491349583251711458514622945629474094934835611944285715520631702133103016573571848370108850492767693578778469258524051752728510058649985589936747807113115719481804340003406928777014939084903574155912045234059746211338457996904624366712388092467925278774586796555822734459480585655757174078281144939272212381460247273172839346042898456547274223986010273154343915442370201354770751555114264264089528387273403874424209457545373402167339937008206762233409961426532497241810967907386871062665256863943654201365363315572443399932962187205756000961273982063858565329304243887931231508853686058196520078798048994193363797666532669536912645085580787372595806433569149481575399146451373018928594527896028629273974275742512885505844126327992007966709358734960884593266714031228777060238974962039762949515638058087459582904415401320695360590709274717014374949333380724241140313328009630318773376010180606625025955441470598276129262753326383467355022539313615717213814579633479481553817712377477232901022009384566118967192328744354396361511887405867951787445673446550686327213452640311239521494064667790955304028873681688259651761694734611277328067353062572682469389437930923357759760904005798485055005653281787861999467275178440487047344854117392782346535965558281433989833442478253002606885677358293894279330879955846477534155676449158297544096843043511948036042569109633225240906997053010678151828516984126443579160280941165355664203418521872241750825392927472462959627232849550587221140848604909628602276700681531689903435659361367185741487941531511915475366617774674880786646515351637332603133052157939970774214664695309002787035911291476500740933649243896923776780524457480942354186987603449097711703506827932336270701257661874216597111836607388973086441781725359430170866996375284470574700939166013996646621574504568061167335559580279456434394416633284515663315229486189865030414252329341786436920927934243382596479444044635715123442014466817454507025745572390662265752619543484367916708492768326679647387905071743439393520136491611976565903968263023440073702366576372734210700313510634519656933830999656331929203175770227381002979446935914871899823577923999388773205808149769468845702865388010609809247932827083557533129262648890669555675405392430694474774225989714728092751845912525672552013843728911527609826256753665490988975488429017383351341674131551670750160063619999072280801055279922446470340162237854241138382125329128108370187269220557784873995926308034865825863238624794474410055561219187818566412775169975251387925334034203595238805984239269917544352637988484091800952239849267801552003328568853501685529020335871687495168537679533469263497689618440447582752051787870967014069449706350120266717853886738494089214526457717374159080310063740804839053252270855182617731572084254233458369955428520367747264351927043512456116797268338321828054191749891253782526008787821708386835416200790069929726246576948641189535632082786047110384792600471299733989385900765070783885751644291799682713563817814546812241819290895661334027411701450824864964333508758248724352051207386077483951020331924335758333225682010872538713138089331399727440596441465926830982815571977641606390442666520035901383695761131120030375504284544495706388395875279882719255024482213738001918896112577884737041923984110051742044175956845962952416218788053620534235945796363266558223732880209617702344982545069564311133053364575040733160600861382127397344127921271945945746493129619194383591062983569377188291166219196040315549618380127516877115979905812862586410685051269692009680367627778068052308655235610431983098281086101937124156160814692987557715257167490920236034136460140676122731413537596813168295412786208630205067895934160833977346560852210818162270104624355676116444395068186944042452085613866016710975559281930602948309605293793503534794328677110080954055570609423487278411212873871437492308344980266843231889869568029070805881739099070753055913001890469435236528891431972430541936579856141511869487715980119140194641823858660434837392580626181538228747709796865449620864048654773610208590934800554825295982268695332534071419027676529317945433193803013890346351292964662784057371129633406850940677680695641422648149779258260781669413046855035132504661977158462770839622969961856250975499807227794646801852269376652579101717762172446116453122808290633846496520563579386096513131449088651842516467100591133423356901048341254325020824261729559190335098585650678876594689556550488490693629061584832357854683762771119855509850253294029740458361882519419763275192841879663780497758340599376955442058928913063157676472461605212112509381408399863234434322923017540924199121206985705105155322442923758681574936475137392196092317624934143131182394508092182495783544447353435497782744773524857880577731353420037554560195527734724112556389532954909696248202426088435881018438384496084656320787109265096461049505886799282313069151791498889066023877147087715890458583241495705049201848405267238378929257101883801492582189315835845931808617366284910675580440804778484163215971741854582691179649274200067608680701628642997570613275171416551712872596774498477034229690708398102427177629025743861453923222514745354743298755391946732837899748760776938072796946134212300472910703560415128552298486864174508863604443611368726978078732980369041507015572422218956116216110422911683139784396708321567812503486456524927498876262330121716303673939647861713832124718343161449703839482905515309969677180963589201413902404435233996065894791815407162406214559524188230159698082929249793421404469842854354296251663729558453482959357291513908238760683789067068105314134724386087213042861810433525093832295059227441800820515186410744014036794913274846422437259721239365851404975112363137559265755596709765426315907905037147953321795023896912560496599463070025576831262262900296235521339817405718993258331124524681302442460872436006431575477228677714496593708734305131728299162485136655811944872682116901536313804464031129583959672475957342675408202886155438828093446070898567426259656182232505658246463167295724407958625239437354706661698250182124870352989124133887523829490872799365995459627795802976843020359139065686352786982890509878115194527554571351561345678712903131085808737031709335534063751784415907352031137984172549635735126104548963412651539721283767986778540535690237592783218053798053954294215774764072236504711147390991617605959596537733747030973677739939994930163134428277052273512682753486052711523415000251081215033626778110307236163367675143511199850015127069242795226099704450585222066070322737867446866807676680704279119791131773634629197712306510350796943339955577198400283322830340906824600748994191447108542888193548150150375521905155087687180148923661582259232110044498716896962044953509051149359680758938979314500705750645760212232439465643644772536062619734135753490593604381455051837956576142582227631479748774445550052291586266323088068735887149832961397571300332569984331408456043318792718385587767626793814626213658935371071283199084066203313446618572456714458421813311634389560392120356940517738323004490172499777798247357860836921138702776402462652184887878001762101964581414201762346943645170219763988830511121140418792288156534712982005679909372787039657351856495653630457008610278692522590363572882935445156306232726952633926539067060527204648829201994717128043608159646273360538122703694585295768789344000365429126810584470648162911847995227516391216439815872253235139309419067455162727841942541758453781436913414041178370928837121762511888874476115599867566209470729069429154961044605696462433162066100231295910792437133778937123312949067576789775840509329173952847572785034126639110719961867488819999553245817290641323527431054097102986382133293331214328352501186595518804311276654840851896530092672413642865480531882727246635137571697084288539663501337409561396831223058681134907084309633696634792280249947165103728071710332642213824858595746963674932420573601537791302883532424667246413511751144010121194728003794637326903916424684550632254736741300395633840873604470217756990569147799788283585892376128883396687134629914472894231496046384142733398271930321371624458966437835386232736868738846893004615089141396445165207682899158332390493387362556263382014754943713837982366492117236132738840399047739635933212374130057069408412031239881335754298210912723798372960843360272352611030110048905940441366561086205861882817659148912873969052732100449317516815671235441520476168176350705700115001122132107304574740101210642227034079005138033153528144611152700034725834182973569764485611267565974478079332816240359064666633630877152971560071553945389207989982917905242957587073410773733509797970430147503599930823162631380739707919741459849680879936013856999887022200932332888600677789887772155640700732732741939043153773007624168417149772185643260261349016216827528441223666806035352037142199681128932302960707039849011854827126675164258501376211011036995374678625184789690629582508988041225185607306274494328131513020033057208488890630083688857415125071000751701791760984935231722692432781645676880755930317715771151432107206322432978554150110814786974118936450662778249465845841570035046145259435822915034356001541542212823167732516451583480550960473322063664492402074462107549817676170873799432182302169340287494487191204944398936321516269339173470202228402790385011404331750415658606893894479423351085323769246432271217204617426418179856844823147215136929090266578739617232365883539251913125219110979753044651450226270146648722682446988133192268900631154708010155763357519451181088517595337275267552096073565495602980699504436468268634639951683177614670352553336446751912873987914780738414408120719155981954460155857813205538364356813921905989667645431161369921614334986573025153270563023377263895495729796120502235952095283770573056976236064176001081577689601903757023942746153216426079197690357212827184163521810469222244756216821888508213434815242468322466499218711220695681562814477588943382894398233849276955083262211133539798497542710823438125758494139334493238576997145649855222950751992201337577859686526712001428687311339835687353601271807176310735052937715605751082452639661022978342736501569842446913639695355973271547031207010872197077109407462173169686690611405811073867560638013492161884130942998436613827588717131120318316937790432125481269793752914768639107684554319262923923475005850806324335761319232323653182663957674460689822923119874256919340685376725324528293315321393511595517780104856580952294198379832517056602872904530342797289334099955027214728087750113194520677539141066101826330453891081426200933039953866924656283041973465191820912060790182094348993148038076731280017699257001674804728530670299037940368070297153981035571165277207412871096230661551396070183794766327027222830140320976097904669402871603661329578512698386211612181553023471118012171662775561660227597405418699742814871791229941623711585425759733168149984771284542841861614421029117942838507716757838066864474857942158984013828560316559391802620240102628977664113919310254128318278575256556407022726985510275238060805350184663393193633130216336291195602499743346003544489744236563631657016416203524200868565463044728195254370363214828422764189268663609803901372722447591984335360225515013187152034632646966529012441717095041018423753346065511534387084129644191172098976340235853119844708039642484454694083737218026978615920358569201617239019283718451653817871393893684419895227048963224131097005165963173334114489920272338677380879112012299801474564126668387123198163095857535302819736710206431022200104422788253657602421524880785426093797364394904676546144575233104619274251296201537645300670220216161752991176546109748397287722860966744670048265635952212939172772497770440720861567848715214212398829947581742081242526117791988475845450055462164568235519697442923092444268636780034460426039792399181264453866416988061983670295048134393078838017256308961475047269828025793305352338362848633929354122181560099522268263791720685178457043850530380059737866708647597359136369623932008403301448700477145934845819950221885201114659231013437482565709146588038044179821982228444256882703218472836511565238432443315309868518530176165700157023034061616484006030007331062119824615816498859434718482280102876161482633537005109319029668829586734535638640169097952983261273215166241882512513235918971603925120226964181199063724364163146856636706183682753822933115577816601566725673681521929710617559523817295785879515684430293779228443427083695741372485677210211265351926658613378758219736596638367690483704478620335763208551181117380457409985564518355611256320564934022805545559565931847457134908905904665323261488242495979321344571001730969017519457586412801292653589355423623581306762361984067133611427915245789890493397137423932293536978009500636689990916775012125779252051361661740864383398103088750594976400722719931857303634304947240401794219891703186938862005370167991812574967586366859676591371946459467188596944990496130969961930501243105869856907682494823147781561460321708971755444001608999691546816945938653846462010579949393659046497011961453009071471847637373008249979988968491391274381450439984047584069327696865206564683563097848561870661543095762860428827631109914415168377975510964683501263278738102723214033257276491414096404161928193962804762913035477919285575234673394282754994934772596034546974498080790074314439566376084042893391999434406036234249024201644656826799136768895903228947842503723510140259312279775144675364344817504566248416262178452438642250425505342359783773400818025853526698619641320271726004441806015492733888445575499223512144871045590132544618826606680784298873853745414358310889177047283109177355257511637481552328275102209785039413598392398936022636404332873737015294572516053578872901909626349915138798408414427187798615011038822960562196438925510441950208912477185934651969794157851065396550029203570047260226207851437559217998742649042898695423048668908233214511354358003753929502083752327555001423536202311434278224561502814209549148708262083774792701045607756764060011370467656490747217395900915391975753151127285766376116191465268387832640454985287198270235362288497427776211938730231065168815749784853397555645651818037001685719953320251885889011463488997406123838125258267447929077266459579578611608996751864134087662853459234125220185867617713688253071424135211174486260372794479703385781300050677327117091087281611483175894565136918937051120643134252069662644636429237034830852031092584904901392467707122988499511297321270367290885950618335307587884236589620972320123309760810643206198496916406791141115610554751289677470836129489821502596873813770592262586408602923500343492977696338196566898336700649569928796160539921805469166758220952355130494383531059405391869062523739844222775415182596146584000100326332471084985759741027313305484242143334700199050516256256419659751692934345532653323600938271466611289598017903434239281670216529788450155364662635080098850598978263561042848945095133816137638877173348315102414019307424934320913747948188773587305748066037604907852391772049854173692431297658293652097340605852213938448688268203095081596673004944348370314689218895153654011138637888858153801950313935912347865062530589708990197650349097628188659589583698990950066251311699994763251866378159146073636180711347679336193910917866752204484550829832163331694744784552669351532959216265834073060254359944832475263004843860066367195289336084831573031012548760454218502836017080792693728443963397223715702075307488536276307558136602189416449112871289980705242748648451224883071627806583424697474418730953850153889711670641318826405049160527556716827607319553854148200186510378668766434516142772579910644573115277923839640116782915267345279693431530609955961396024324094370482328559840303372328361878621276001725721517028798321051124221403843600279940397046288712961060435499479054717485797163840601689110148887781921428955504358875797958044909236157204451561247962880335569672236685646271448213439183136880490074246433603426551230664580810819238038244763159071988145317406361173999450874482040907071734175917549341611691410934933774052525328369126308857120259709279211162781722789818599132307161328929602246496443452126515232683539706908897645966978623613231401255836114187669353917076029639684850095995187458143667476209592981376419946569058475424696559462952998635372375356633729753655662822176406235439504749546309034468449948959495934426705458532417769723868504255357770943265844829235384949772490679570949430585918346579791000790345174394139507346391181489582654683887497018298484441600766823478020623179505432959888989432879737989761747277982070727383030383026119767080981076497597453041599651298426403168732181416567401771464426524579250979512230570199314387005245509541655302502020822607461029949114399208511364789207887968409396678263705800415543331931653414767998532181337274708133376348646253332699620568764273438600792811533682492750918916034561314055657821280705355079707711918108357748577874880590583568118134332190523421848942933474799976953380348855795227613889011904691044432779627419432915948391940896760868366100837656548543650811055861465248376140769916422169909049715625857559475941635043693498192222694975968209891077759435216153211658477157692869719574249706765312956435633518228403626153108695559772095801992565636300115914504862694008634253167136456060704277018962196610741217375550995662548881807461789297431040719312730803413891203298649483096683277239459637727866312164942640728184598693341983212991166699315888958055366358468209356715412490036643668971223795070228138201993105533747966432259746171763785479255938975001357960140800556093283384927705506439038549852101065934363258072493191174275737151648730940060722459933171029407437392425696162096612538125995711205435561467815673465936012541743112125222521278638145250285616085613454479881603697705398889767671389421281327421067291932489592163312041325887375596994537664353823437056804663256852778004908999771274558974958122953195772045783372610855634729087761696212479565245478759192237945370117236316358689650258290658603412019199810216319075300506838815824286713142802404652453459356470691796336739842802749192139279364879149328071119686945627273171446823474582727372548120777077731445494425592785743177239766825029980588901620274364287923310362864696013266667334090251588025325032578544881048250450480111323402810803586641494865579460761484856479019617595258569330613005738331646227736573108569040750707882032377537174399882497805202647246507747270097445636676447776766628157421433676701743258866496396836818864249524964442608500970851036027281680395908236874594927029860422880629719642868393014604904629591868941192963353752131092830468544879685430281515267291957030143302719488304393511987328313708536103324777794870245078782768842207510648672199685743199270061802880389475579648781746156051710000926821030853637229656360792443472879844602226615302892123899542437646373828395783683502465464627960258063171125465994218295225262808447074824975319933500644833788127566907114158195613053040183617431931701336974529623652752430335495688661440745982554722623259134812388625554240000688003413940312407952727498630179728013077454862093230102724878001293192932108066664226645815536501636655585506115011444423280716708705764892152721561571340782406013186837336874770405808241369537760744530202325978279557681736517045253447431444288562381519806268346114902062050711506992270685500326835176398785045772129046520746854960205842718986261488565823655566401924745007896205180568938939802321817742232394965681480498444278902339278249952779139577270993662757416698633106153309354213341020800821849251681000301776002152353212743832667437098764611148876742964897576489199275608536808129907753571877932148428242953233255951692367949549978100957046476519107775172513987817058017351236704737878139310922159788462060361136393935553327905900733209783784991854828260746418884120888055015457391024064191578131823247426796640989115591710338764089674294187415099975954368142386009791326031677015147052513108561713338497813387064756850467185786287995572648347519912775187050546566561687777303398008366846269072694000795639624914994471675899824566251087977157623378063598451938463080314920835403182914164082298407356274303181957742521691687886720709443986981585110799824294807994063663752768151051398129716493092724379089122666199878183272223711803618682441534729407948843333035726173863644393233939977911054675739160623941513275932836069327112195860497025789029383594432025182627638654877655101630723252070726388305967331424999325957151717114373755322170898912411629058271881721991510601077123847144598997234131643091650347092513183359116222563505872309709795973920121906972348531758508284365733533978030478415648368373620553175815320275868001923116425174702927365826379024925204636431452692089438491149545265586851469734786151077525232353806957994984562559312000743676102768229158372809098018877124717655007014600438383030536983706849789843003306374593738880642494017042997935008920054755520332368410712529809928216115141893578165693723334954723337344606291787511789599291295500217907132449675050532033040698638041540215017300683838646142115883776805312768129304214024665536583121063832022062708592164971286542968074105879355777882260997529190813786711549874471310334760361521168137150936774417923449408366125321498264265171317591029308912607690337637844490054812135003864044843063469746654243762665965754704943625031041506899090789931462397461901053577966227789142287021475724781429616006938666683749344124316063253282967298509467191778275153737079641849465927687638882322190455011207596775707542590933409101151543469179909237827417292006958647686444711252397078515236311596042321734666195152140285587026848362706318529745726570830728399348296658965739517421761912904331227881217276172832015293536940242495649321044977933451693179535022454396584121336082474286035989905517626933040911026069280145636595181842114969179000309699004910600346950403978449989140999992657270402422440011182309837736159977651753408748075810855872681588943697708112960308760900440519975665476827885834379926376218555192233018493218449236579142654282635600359971425518173633745931091629522163549492774121011139842376736561822172037098059116810585963560282931168346202205628140510346246586257813263743182337110507506389905754599357282133962294030776510387585857991059943612239869859611517060593134175163227478228851760914820359055153645812725616317735376358573012960263086737524941060674266608113325869953511739152978606045166753902798992898389514143140981991960751506426287576242726164933113089462176316614165540169724971541548976504157831671973783673952430530531323163498911381590787584795084696349904482246834900522663872710435454302739421922998297830187299074744573881952505960185474136253765268321410512886788513463618533510641486871778181169126075040230778038881802113621419758506367681387435474879618646875733153125845735033925654562051924156111905577969390206492690484556659924206808354128875993863478500026902335971034924778941483484330914577565388605984196456084275868727787364637487479103264875464077638529565730938290560046306591173115521957551325787454538575124164938117399839907076809641559268153891838627583640484646639222487810195277324521817059817116080230701698396350589144917814198176467954951636089645498703556451909198290528712286803882585367194158106950135315334190129292801389901980975842419382181607916201317840057070782880333635645872806537342210987086047614013583126987807275199767942628564278687373496075885859479524917767185673377446899126337551705317853626529726341314655279557360734711248270472541607132450434046458714843483656303950520349532873978076423282062356376588813530682980429529268247166273305778693674298983099821398596393634592095701263954486990879376817284636703632392879707291605565678849158836368293942489644289280634737311199899120651272168970828366202719586701464499113611524462771655255540990926408795378376837713685696458665473828849067685650298649650597728710268542740296437881440672842865999906643664994479244425596931887626388497928747000621027347261465667810363636868564757278507183093097322689912654928491609992928666109659784875195416606672261602334621304158865075802601479359134326337925298997478658647193943001917212354870785694707955298366339121836252688041559718361971161791135305550208658517146555011129896375724856318159292979344413484144703456070944128839681632205410857352201494814390632287194389830282262216552687627720253915705529457178175043413619313859732426952894069179422630126536628341360683224008926150282268652346241703453915783848059515381496750752201482398241429706897166896431348433958249314879192573868763136508566419191252047594162198613750745870716194503144701254706093190500181997919107984195644812537452587446499438749556405001763532723849853492269108364019173415469396229362215204890306258411995299337544893627467342998366589568909512859917639093037153117546774201933763519195124886068659970782357356106664516866626245891657890368202934954519654687583901355215310305648858677949330955645066027550336145135101547612691063572890736777418791026429400784245130912067333433587815274591224754039284407496871734773522882735739399319028444842200238751866145089896792429155989085279927028112349116857856840291445455957923931929995327557183627059957841011467973940191953148140702475910277204905259460098061746201963655329596756174729070381477760008114418880542941437491231729765940209499141566238783536107857544113534764842813687860220507671370940125649103929236198475431790988863031379680816617661609752107024400883658973248684679444675402851275646692390385309049010380039338935617203983199670609717843982543662343215861775717784259216899021382969829732642609930731167996984911511876122812772366486856615970082902818422749646012655675389569507048700943969644771824180353133538591355375300915553931224842623972051042543049834118493561083434926065318604085448908807767137080569002213041815348889080958914244541707112178734364240153025180496029672680594440271234917785597989926095561299787596785309368170513641641235312086679673155871619089831554854865953758224618196022690528538227271302183482567264429794901861216758969888001371534683943053642388550788558119777132372282371727221604747789625333745861343774399448818011421842062522491114442203499593919652153955088859587478842354583645784170851084945797245142743662949070791207137074483569181787547324616159112775911289984341550619261983673464353581263640838737816096693797422677781354797290825169865169308631140930653851074958713272129805431532610860010479621863441534684969517705502032091233516108710734488933150227657717177078036606653018317356849388281420109224357062056870472155629065359794031799687596365937257262526686010472785061108423470620985396149735119820160277004979043387849899832130178868197827525283325631386692093614553418168406708172356782372423828157176937157734564203018339397773074122456990917475187578648630776596729378994187501789505883620668714194247241159071024682949243456487366607902053813961563797587088058781027905957266689992273704800646082886855827781530507499386732956814647602727729621590844027805475333165901924653542163788526881771620961735104064223737608324581445645294214387207174766187540647866456425984027526532257566690245433398694611125476670825408901921011667913537247435273811104145245812329298118120356884256367458995360135402712740894148542457885839987908746733364665831441865095845887867009781745798677765886619182367215207648257740620995307595792414983365234008155407014086083985384363873794195429059577644316572024852394233715180799761490966178514620684700922960407063805160942599757705972813931579021997662982617811235786332114523445518020091650528002435328382808072839042642330426966592809106496515361089497883515067134584156673430248373477257853718791788347432629464629847989801074859535227353939708090183697273204869200528395293011496082720858035747214767386992807731013464193699847531648424532611003235348331802420780109206858150157683692953420319768436702249494515138732650758016694353086704513596660658490339190014595811869640988056933093590742411552537608839825997890699642723527195619198947473264005453392990052041298739732803293838384658498252783741419390235614138199798487671673416543130547242136888715077192712388192057020766608733333981556424759735811313987061055211148245291619970882363675008233261345489994334386730957620010027334718675198276912565932036257724806901030569352112495091820504456678226683837319174086202777946327342284586453874287602270465234165816078036341907494338481969481776328704196828192041363801874221512268698395270822597423940716768131405526603450572218209607424206064634176469132545216472661131062489105597269420945566477391151152812831102202241132318243044976825856497452543057218698237382680637346771140156815911889549247438531075815940017227375975036155203835425888033953348263354939324578265167618842323991904299534527624858145540797258236369073727895394919115846262686979266466742696927355553277280161456619388763373779842048056723006515376973531547858138122359148417728314195884534056634494991114045968792037394144844482401216495877766603228386332801233111752369771033242904134553188592231900573438395562722998909193691142908962324875556581031026265620742562031905166925794092449913253673080809842228812498531711398926834345860086430206787149527896813360680726585509214219439432675161617078320456196406709521367799493161359479639881562767232529259544365438982760805039281827031516283611923495596687038500618967229324449564806076650085720046079902755455125266195276831907764383453784157424643986584476399892243032672448178834951510576398469089021169738636758746713424293489682660053535523831788356926193714320898999591244256309234480052607538164896424654635980327778317202724970541461811747312157195208996336175359699164903964030144485267537442290386018099241873026614009700923208070213715686952656737945027577755377668559333957416128588892295243651747069836647223395565746185376836078331470573800119166682975327619295720970909593362341482333348595108902212452736748068373823269252065999766428804644241163897717693074375222863948287209321003492437214033293877352608145228492097231239648590805758022540813565219788253689729149724999093477771398193606190821207856314252242255708842902867836889646176620301095481943960232210208869190680975591084239024996387388870976749074509467347608317702969606926042170380797818852388240606269981933608316729647482182349455405287214197863326855930609875678381111795698948217122711358146961488163346172754535235780966966101380053881264210133029927233204438504561491033369500984037461664415086854656438276875204386338844620111694122811465263971059610657809254597966087626459441096169811158483528437694565584529395305055142976344217332190820029386092784416267827039005653248990799128854797634117945968442585527329552032856293409830802739227886378896728954046616875522496347967616231897901728013187718762967268362804348794045989865079209093920802021559974246145230464185963283109619692656887434844901698609161430879246156657279146014111143275298120844842876663538291178441195671606899754060972897379670763706427699280568253723036727829612572195462257145911561220556931051959730791911669234780495422809578222382789530041543246320429943952325697068207420744877878913861341688207337348231011255533407720435668618192485691300817871294592382817038600648168280503225138547359625436583511283651723701471384228761089412040701083417779990295911458087036167103064731650452675440720513190278291522208232210679896029582310513511177454222851256599092965759667931965774921897337746076241610266562314727098183907873557362646944017297167934919003773363615616372084851715316172894013249097413607310227544964380561559621840341736892981181922230089028495335939250616999608080979135054611557281257034749414668318461544639908920791162382763868698050123687808145334350061788716192497869898341887725153060954075206267579197250612305997205688571129528063172265218537841255764222162833725522539331339764116287995790998934095799535332950805983481566115549644066074640681107206705392691127089484404077741909038875669071379833699186479708909029554715852924325371857215099104395595379909221551888815802108136613028783276529215850749511446181825742810642760547921787671978765882947840335239101794346861934626031294700872269733551400477184221791550968914864553998721833347513874483409971960338061821974671267359961398463026890147468731621992394210066018758590571685358933932734721890914391077178037349370240479415086652425448685352190476637354842708783493295399257107628932309393408594556731359499366811549815693682128843842908378967240986782148701857110834838638869688665792871371885011096080226326521787563880788728304766717578032998089754141299437195180244371663507627681157834018963232409703508118970187306607174356496008034411736289225395570873901403090693063226780280423991835362490814406005155872416311647808419792651597842072179001115606182807564250350165026121294113809441233626935959752592231839151464777867642189103356220336256526845557899475031108113275829325392904031637803601586133745972668157478370403372707546763194227046608246358241196119287612860245288808826141541841824351182541997277254052400757817671110256940730871858446015213495942245320829004567149311001664316716311047807936084642010507200992461180184596524584684083681907368222084033988648105825474576469909304218068945010781540612151892281342547121819390508073864821032540176742192515984577445638021812983158016871698127255886614740140173360850596966162235063785633575566357050567914058393529100557801597653550669840994291264167481029592807672549921093611088081122467967154384425750374804540072392824497243082472102215105164373211190116881550374972709215743705497419703135797527199818161593638046884438037333595027274515022226556686195977827128599365858850258270767210405162873869338866937080410082905129770849605606133316074270995465136531561834489093348439214492667146385962702483131798542539438097828305411100738814957089940091529819712244723717804949912876582204562687357439029813961613209658512401812108563293749518403299590248775257896608659223098151580999860918693947345864637989097935806391382535951716923359038613476779478647111904046455277664783604631233157329579552131826641115479324378560227649126551814036342191138295480800742999389869154804001940183711108635601976926998848455763408378736573047455912625452756177392024400174119864557946451528316145070286532454672049609925409359256135627498459862694058844962374716093141606842534309609541481234466243531469642945822231079125403674977597748145179319593283710497835378282242406217530354788103454826581103547404443616193327675227691565474399491822928505960936798235303440817321426748506318794844251143357568753911798706628755661661414534125562569345387299406094673677842967491686370187716525860783108684817582533551387229333050808488611592731125495309195925992645888926778818157377604898436352691522913154897573867505095679579616195240889665985461196803572279124789016354942910997530214581656674063825156919857852772528661832002527352977752350977907054692370980392670789034767340842249563658616660012574163411121605584616911314339386121842403733438250435997079586056192560735435558488334702567629238311614937384031086966263000645846214927579430872129037357581192921824328899150338178681273026864288209964315675622162750080435534434800174608145824103610660474635745203704140386964839384233302806536948198402162443411114414035698327211031687277554576628965528545830073867607267317191523251860934563377853994077185005890826864346864970538695465059943624122594835041416806632199516105086418567931020484541237062853316694236727320820052762849915412848833166292198880050882838937077894944981794261969660599275960153020757022175595527727780053628246179560693038026992100987968798003904911162600198644234023691165727404685554539347155452613177353398972411932006380953762623934866901830921273891646293582526358417120250500594558292144876708027886182409727871595241990725482088941496485071859755675109429593192209511788277615982779750922808354593970302829734724010269221790121199147076344236778314417172726013776968766403627686326157698852210085289943130757135072185430127378496236516858445886847818761446326588158893693189634309160685461148352161854597764507857951233977613393933508298803057491643525781910020319354723354391569830119675584161417790383396022155608969414569428271159598278000773114548394862053264827356566499511498590007491792131456151326832361282887053893594081956452572004792084277337418315113189486607286699149681712199251305436075054360862183967372265780781161330376098472689753031864656117441672777108848079038213652230092052047258179965021344456734205893394140678242448732463098506046268300336150125173913629050964755281741173465373173203095255463632484004444496088178628028962433384035693148146559138517869854824043497391794382528262585384996651888468820396483609250614029278695488725600335074993390496122037965954183980342622753787632503594890803565436122364876374981164054550909353876835303715153712179233873725562965865457268459838484474457897671666980001291389453936958395089835703851529225490908365403218719974432108595368806036485671055847900604457045167502511034023870235024738516491525585120195991938875938594170828266812176275753507233046276592933112579623819413736821764274827791462119099316113058144813941869502250048153999283946191004277768224599520298958391357617561701491101961065991857515386942255229708142062555913617670880941405272969171546335284711245519387581694546813667819199041358519182037133881205849550719514151810760072115602785773083058767965043162301013556946645621817346766973700074657281556402751863778258567041229749000974046253537255929086069462396968576361415294895364177173010244880072909861371274139419526967721013063129859009701739955287315056777796558524386667539438966765801550979746662315657868107092621819114873525007171065485496054230759222068004633730697841169339007746926010675366636734005443094263099033300458497529391189274420262390728251912873873064236790836113282125646312571794208593735131886584557791631099144817576952444257075617641772637594143515743821272512660621034109297011263705804440754501771807183908287882255170277547737017922726144805600335210046823213265381769640102934498680951090910215500363861103403318510008175523475717969588912723601634172352417885367819221348779350252654158892865052941021869091988762722995634819849692834944426296244733501012498288185675955496975010830682842155415854594351623140700941979045830025305662043180532529780551855259438684693028615440737061116515264044594976918953587211716552006628607978782676372307667316546199138949067563603211817845773487123822255466857442280224189613530084123297181499648269225107557267293664354930041784212422498211545408052460449249627639401388416845452310325187080248610276539867324445887888037171744803871357504885376936267334363750690322677492711387974702920675226463517625355548244476382523422050230895493318045057952078109106445394838527372459971973653830305424111346276499657845758571574877380919702021604012899141415339142009063266651239891463667376437843438156732436640969158066937736234944499341254201528021199756761533008092903419652751218846650797339036382334464508503760699668832298768424202309155861814377059982485950006705331888567882935212978040349885654151045770952296369055609589637899867400850806739336585519802517413684135736231875901490170430389757698090305072209437729800579228441752182182925620300963025085310195955885269064589080237587172980032611866489738317246279230792846304807448699692945654309008645889438837590183589262284524959110457148492556494382843347439838428132216667571436656739708918963129584489237202780687874945835257344299541750956451703003213963399615357297232512180826712259953711658360993962519013077690151584988108361078851269684369938226722239727991861934261564988267996265764294721800381234694850218171521080068184670998147428989522213494474379429462867547839762255145732610881671362944061038668575238836092445802033219135398521521686965953202335291047613859674875570389472509824575253201299163171695786591463073793939502076913557713408491034434713047029648016560783111631233883395944708270513647205312256788794990228587258596492272157862588230548844398478509948418398044608962709089446397912863356853119999945170994581466722190345881994112697454112850681350546903254421677890504452904268255369996756095102554324123204759539528864476837101532007971647011501548571746092805769545406478124148515231189896611101207054987333282347715076764001257141749996741342679631473808266667275983965632895782161904616559096617169692948115958638192056065730515344564600256873868242404484747778350397392045479782195186556746853238155054616855508006715472952674203122908316657702108246093536143750593359119801946615622801680232236735241872205323306880795171416106648523775823398459797787701529983865531969797398102985080399814550391507881600142833811503110209523287805199529627325499889211731923657656816124905272694217242631390702932226291659695313162371457091735366345355418608762263876917227942874928383411292168639399619336637542700349340650523489441714938282320370184295393209337535872285244695681879506524047833272091661444455506595229515829360320903781250117411821293768688319457947436836909179397260880469146557577958459088493329767171962493222472451933199865848541355939194415771374946825493069023235488665701073185059254542889887164994209279308638384702489231356546270891184771514026589148820682787185316282926047341232202134206350924889364623391082981592953500498797647575454708661245182039881568139297154835598033503048298783039241801326485570955424469560069540212998861745626362143560145011853870966838570873124061879604615464231120468349526375664327945929540592461976474713146430820593587499684369541515914939825730565027719162220760972384103976888628476305020522336100605912713821410664427305938881069553574136791388774293120556493219046496683799909277483691244233068593587390568821540779611864434019206690564930390904131120592542103773293984585602435221145854342359558386289566277538129256289270904596769887286479464846271000052272239370967460071363123209934625076300567575456406917106173853356891465890440145833983897747419820945362458149719805636619999887595052844060477117611052409395229670705114523983306455497451554883419443522142659392187551267886067458689371839457430383102266192115399294590027098923874443727641491117336165955720762568461561104531335396008569692454158375935882684870204127851666193788869065986281036785072517741660198655601669064551087157446044294341968151435704585248939630580752583886010700867673935738343688805152772635736510178862042781097474794620928460514491186455601339973747480813783969643713310873935736859320185290660176410539308283276758253937108897918740736924117189630470028930924477681445358073860430880632198550055454175681014655812875500492236810717796271640248371899934258929619070316963440783882949419559281145592514988658069523055524504164565107639561649647670900670973836693160578123810589777572491868593985247773581001287098989798648142607691031698969934218575070762640327994477793613894694960911532345846620972165914538021677957715184396225799684284876899335874399709946930498271110377260693621849573148456280393970566655495341826479855157169823704436961774745470380566424716121523172125184521002071567478253743469887265095962982010501579696304942710967202656476277093438403791726315567117306992441119181732727585894974287099942370616972689450879229664015014060999036008718167322387220958014242917463130500266606786120648582008912528830753652453659655789762539710770880932093779947461255247921288758052511138966596088828263510616645130696906217782217598726685778716851755991216831245517967083010041678279633864473627936985295856203145775530693817887829216042267946721882025164935067636887339982250734279333139165270467071901866038634852640013836933098946272407627312769193531130720615028869716473471148339458832174476751704789015252507223969342603752865097536415624970957531051657555455065255883011863113457485083139588378873365411289246681171991162834046005598155362288581051896212108427835425494013157141307206846819202831958764229002404088959262670606906208718846121706493779519274512249560023490078347643352256389062018555565615507138732885557354989590699879055833516353066495817010182170229689818010943216690003942140479555431209715298694422460580874070535492795104740775566187704162930864094677913159091074862380753795173006073045852682590739272826220999364430159164473603021905135446856624964565000859366507122736540048215562467264913068365305953436774460437640844008417945548078232207702223813798899195001648813667185772676699877668459610625318334975383672380368073225901620823968042387074974883637606640459920463999963936122806428053843366436032983633848041028666572410318052299530484750304390019759169524677075261931578172573971928329266896958931601040768019871537905632287720897492016392126256200643170577357381496077042373442310778249801955820723521837105231585378852948337610351044705315191485027668217958452416339644290466709526535397019375313753230314643659362389584683746587341824213647631127410890468572391787477825038434781644448949340780414618864762720060876412080320846156394065896339528919380973923041750490096294917194901875828359064542796328782069817578973150456732673629523150023050394221048643907167139620820640404023419223480496017196451668846439072023209083491208308982841689077967098389750692989236927638551559765114418212763147971210627611892771955191326108571387732624673523274431784679043556029248277243388340004416353702975361628213099170713630288917935571135272754500822442942738818806822323327150345005394260968939275295706871444837420228642154251503827683371870264584418747472215233472046735258971782772702714006594343852502779195174972639131987123425370959931511347570430671379863470337375179977321554916826023677915868016229818378875979128308669337268201817225824273222146954779702035574889674657784901899714415173912917504038976244252111337732077216429954302579834733081989920240450146512137255775125310430754166324345277464142635873811004083469621242405000196064717166397847126672598001069793918118539460698365558253175997826210463218541053058958934638548917604994278966781364456947968340573150912292704903387919524750026540434268309135475543319443110235305374558892762459090451373227043309563030628171295206743302071129517912861336287875013923844320133197472951320889547459062904458810711800888751142966409712367208048692626859103577941446576678141227605134604566272275905407407231710919841257979714857979909832118289060209479080366106725169944279236758484284773990570028587824820979586787152026206036383800578272917145428671712361457175248616581817505819299998932298238543604672801808429911915797664065615727038757769637164084819428739874148279776974432347197939771482077664411710685717829677815672564245114550233353800900390719669042411357809695634640076107968497981505945692811996529914771374306743484300685179385000391967344329216653357654578972747868045108370727991182358146186020455800635354771008254524837037494552107963893667938290347500931706173370223359366793094738536894610561578519974230679089182697412359531876517662029244620606560067961464011705893956128067816664428330559503004943429639392759509809231835004664435575084155618133842162310023425540491598947740658596023169283854635768305392047554947769993482789309237979356176733671958530213417920015080989993146992345378825358144016046907900743403767023214846027270657610392338679594739888092597685771975991400217692062890052697340298141621912778440102385622640409586374682605969288976483702777885872311872265677068745348665920368474078269411104400612348078617605621289536905877251250510777484397421152158425787929524130781010900022114743452543574803772729597307680251129801989992333439480626543595902355296386594131905148708953924217482167722348969495666279463927742445356316627891340857577146062566989309221614864934709324715265597078763373271062488232790557585938313934347506822983618818807178369023318421010363496379237320626988977650762629069217037029242875379476647828555208977095184635001210807721329808421927277745753322865646656038212616385522682366975614799529083081353873775711728923222554700567133172941461055732092649093995596797185534524037153794301623774722579214856341464859123025997898134253145313455110913933851902617101681113083290753418541161658277898057091942135410544901815518346974768156194974000130500558783989678696802021567316621066166942796942463176540252249961607016571434974820551651634744887838065575885514839929610283994476702647007045530683285879690839218276825204428406092791169354935946242229950395283190868934840669092233415418863150621067568383044831919306593770223984866156366448175006306989459354737093097242771948634763108712775652658448058100147863194252627311689082294608583628419703450023093681687836893690623665502584248758540140379940948310522326998060545355439028914456976276668234274044238995630415107694606249765660521465058290325305106907982360174548208206490160109558059215008259028085120882938918190450245305992861366703932535676387388854044352980275528471175403967456902866353947918097711895772906806499250514025577274404549744223933110802225456336820443065043907970520920670065397492617137593857123403669808678197859229063120153527079967641037191712672925671698152538359583102395551240518296576856488664560076234934383777911008027813583279701516063951383623698375211216783708664374348649013406389949892824892316980870789052123163465532548274194066257050604549156317701048421481977235875893586958755311482797145148539330832212137249474304098116833950197176684460463532745230047674655363261395790467057310906475479138992976117818155070098848866736519703529313498960075445563285834055199543869653993760777793773818063802073069563096488278896674727823081033579225753344544759642135519585879875961216920551869906648139141793448133612924304218593221707649916358871042635515107570504113429414256758313521809528946581316949238540409946788677606597840578627491039584457336460684431239857812908759331664679247878465661605182601173934439282107232704924053811106783213099076325066576329605048268615006602442278269483649772449094035518696798322963301977594653923394298291691715685496859171990612247259973435124253647678057598130590666854236862624863885843551040804201173341788962581750791669542461732971356822624682466341103772906180502692796473064567293493517817149259192052241867866008460263614586627311943193869146189416266408683731618524177431934977124371364899985362318387997897287540228230992772522388889979299473565765522714810184742330093484415459313148372380459690895225052778870071102764480547040940448190136028014513205377965765000254973038226075551177355402475479012430352143223712439904701765620856310029877537097457416506311873364057600338753772575740357618611651129350063901078752376323734305213821716915199396104165769973030038592719872873329976810577924188567885598778035792814651932185211909865751276826094487565033007854122285529346810093714841117872934671938945675636080753063457415736146435157935473643998633823316581780109645415340207096534172727543028594992362876234900772095111520102787316299744259929955962128661379202602678131849687822963390463015816493331607373571478409078982779379725216647457768215201735315913485540975506644779007577077199036103294209226754193945136339967299083888509320578431027500694793351349603803166609754174140680863752678821751231901661589759460192642148551472828407689829061927240513795607212725309761926347066776280143718635679228413677092217237057636480796967036993281361033410341257015777238176581424471337631506643691319106627333285362108185524852876003103905835789851860579931008930223687924095129024593895384602270890130482326453562273921485244287671096364283735043536746011505623045200665368082030266900245516834924390684557500858373329377713726315105730379953874767699288060646205652215006515714919493514068249880466548236303200725212297615638079582535942186099073200187394485260248439545843076878769569181768807060381480112704728092203673520775379384680417030977563126880058130589632604572977477102820211944214009652991775129888589179147172827504039293920162962571626176822344462135200306183782015662202842135182891950263967520150246342311146945611584661884393917239674595126694646923074059236008829851339503927716109594879807088308069245298908140463416800904944738205780395902704206021368093380497781584298474958384909511403590419728909395041111462171687572903073687685918650658926843298724940302478497573385459844752084395935778688961578639382362675873379533201082918557017384539378747643485751722310983432827195324924137588135622864153728470865927170583403068028792462225009423442801334080878666583370697938676099631871886250173469868375204386651256527391960008741842463524831074200509386292494665333800890515369337354227837625166656670288807126917936932469504366499455413978880978878925082969137364243475846893718499021130274014813161431787662233139547588631742609141554739260758900959832168339232123482512317288171938424052083512375470901919554025922570092193684803326566258566838756022834821567756340987809361290700579416924712652021022202394500193000393171067240195638118298105780353928704131356721348593791942527457894045526460296061934949626305957136306070939397216990410287508036016159522041832709451055853820354283091525171588806544983851274727679178976021528680795711194609417493047000234853425389818737619222523978435839736433679826006342109018468348871285852912601816977110998864641505035897763566572251881196780771889496367770623561818151316105027013869569567924460269388599090854278924160848458764710709342776321532707525510267097016662851911522311910664053316009626071996900110991920631470110712500621277168052377249637423950320290704147481812376164064122265767138224916629731172259938659481540515606167577158365908744491543843935013288720447144992005951842608002206503313500086903700526779659159575804464154312509875474307709278407529194818577971720665901957430389317200262022661392104307032676932801298809096290792236615181610159014610231638548529038846714528541360339448216992886488287788844846863866247422602447244496322767336117074333647597886622693271603847712916829641746538239422018458116364162052820043103759952597549605881898277786419001303738465190568339960083058916208599967533545440138071195885450371765715559053749157859370758573021143873154553017408706305479609585679156685050441331590115576002635231110967452708738531875041977643806101417950687850809009334883845919871746279107849757789022172779786245395884902329745523444922047108698870750934667797866249799704555858608441554578911567279131547894383775230743256312667159651089247967741696250924088174666937198549273537664678398819398395089630167334502254770899435452348610361163289427481664221373961697991292654665948556739089314532973628733249170029159004756526563738698400371751879418230236230682381157880604375214340507722929202784186559746946480917301908693402513219191641858123502261244325684830873085436722959558910250952288784686352160362216711817302321366320719604339905789558471104147792157305708230606342975598609377657749254219582144248490432834786112063071874286673525112501276271557039690544450515893569073037906048696193125929977251414789885324128298262112008252434501847527686609427963199086593694758303210763266821742939020006504649453199168276245796433917086197595740014630846833845588243522706096479263404568047321301701296009697031586957751020443782351125185687901125426422336427188948881617811607307323379942965808880085694138163843143773090097572933239830284738721602085972299316542392769792797450417156059801953677759870957533023129084664884471328556113860338422587938933282553513431400469295048174230925875901046475143537602888432963716129055108176062702968422553964364184967045700942640671980576612485470867528807099224588282849503677411888809413497295213480335107935243360599303343661654177251091012442913155219265947238701503300332438463564810774985180672292399122024082750758085954486823749746249211790306080086642213950125130254146076584281373590362417826699000519535745563765447727546174942367524661707149184839278016945557073511070278929431616505636394653104219290110625849505265356138733004403426940579117263081143737810504931878615596370642781712082502200733556667126018700646825670046823739480747705945393000630592543440384275878735845173820399719523727221119289698134707029711575715241114098480127426722110800514747400861276035229985980067613726015964622402210274605477620445802897000335974990179580605123500051106639375718204911929067177259048114849349142975513097903910723017635988173959488466730920312816725177189165222889013449645617508156503131407938884813052893658745645847600598722619129252347814835487708506514332994974319623603333619707391702081018039362196307827880152220834308486650998653376156418075476893879433567580966338419146167790645465572161024407833321630821451699607187076035282439961991678218255175304485059286211511438580510889576824729766101552207723763806726732814122738508341303988597414700009525973401530933319724739396092439493105567218865630467661542230878788470402220304496787990839272087334270394642344964976336261898049076320523597703962036400185760568741097483785101297300932958405126446438043481595426450076024564589067032872755566405769426582807289474509279983334924073195158131186121771426720022819640155883029207217571608345585530242094505848728659230663288694077988976355851774248264974420220248029314892188316037095852932987571707672919890775150673380951197722270894637337894173445680754185245152393586280468219742303743571511231413656313291902526550041079147995858762117485410305368331563425736361053957497612878268491154848276161424880773850244782749990210664828577156371297367773649802336347696000176398796352233879917646135093144159319633076502840509147941983719277003620401662198035833168201362406621432285096550585203977594923102945557275193014069319423229936522561121382850635492624597763140934799771872403664352719565244937245441595903296445836823896811322670667762364662707854273427139135068628351520142599612679058119976013004812862126677318669036179659601719720250613913328659456176444624437234356334958007361746926921777202628334570878916385302258180937747520737018621273626081747392089136392001554369400833841798186030066159121460319606385857748579148243848199927279668427046987219233283492234889944249275038953800874626415654759130862994850735770461581588005461915938905583476776354606682399909743219510519152861010270352231092708044488363016468450467524032113613031078112112846741749680633060193189435931680011414058459583119448721050814567297171093123674402408079319387373683572385311389971499068330875758245344119868742309100188230171321263372156432990914785941181057469863844569118141334779318857724429450593048834200889961685540601603775886026351859529605149253617813711750278987840940212065362812779999133269187318450449352200897673940464019550008352643429784630056844025819295749509971652624963461119892469078105959140565301685930488205726939675283728964429642558496762502276758715641542839342828074072260098544523711092788313038591458188087757488552496856776719748846273024031558029977600934473616164680577600127293723463198930110188309733208912816557169919158599513040452789786120525192907987760010460296237069673883768873102197171396023020959730061342378391190786165761083282852312735749574581406215727277670115400293476429088044408694888729575904476696554433963338131282162220833080995012697507352682080996933039530578947352726588420097278395578681178303053915645558328872128977205974170709296696734742761724882658391507684527853428518669103415761791507956483354030813615873844667841501226675315784011872177918960570900156421203942627334593286779956927653331483857896142771051662382725487506664149753166347961289465789204485423038569127757896473528542178172927826008774136906475720284466773073806555538864758209476004927981885539915985653396013230128963770190456463264169025746977065434927556834704166790612023429003924531798392968114164776214385392410841969869264098328925775784216165894993124335430060100544255526307554355785324155456314268802130746573415903266335280729018724884046791528957257875969502117449620430008399621504864025653100371626863523552832601212355924379264590167404467585622763509260502293391141456680623166099573012033114595937700378287741964081583163116926407463474988445663753221165724816835233728673126276289375920052254497052989579957669781875365323412616852804210993617500355054138511168905103270378354927091137517034091465688515478436775062853432887973703195210689961669046984008659029787216905194609416106675586870327066452382158233497882374369912568588630549024159679783135391143055790844441592476280228924320779793166289145651069223254416645106038974675044458902177986688090360698851726451422606620114222307085724125654535676720078220101008278544119319454319311327083107007762603060953535865358480930812125663015488213630015624438995558257242496217601461761033653561647679207451314983535455872706469199100150258021282255412160297986664137363953621171732179991550245836357983093819809606791894142907766471012352772039811853554192850971018044869120046447483481681991635446297793674922989219699299816520964483542036954726045963908861190966692436986698242535442192151450450803740746779755041134828938675366523170889924054647672431181650557526598047900047392200205748473272293091947854021555124528560752686749589103978286285042203973303471905515186011939263097566649953876581339671419512022416786846479950840142145103560096625349605455203192226409855353354740727901155637883443393932205297719283595759167914975620960715360047482678680924267398014502482430122370202859116916431488027721678589108325270741129809423259788824938317289128249715635683163849384951214096606318767017748415755628409715966139845245631518753320822063127566619332809983380539257952373301958030375777436467658786088881096919595939855241059932773082372478007367819939216943633338542189010338412345804432805933627183702058659373694444879983026106889602280175270517217487944493606804594858380569591804892949741520339528651229025629448693648207125383714007839660248767699313177105575396793875373066721189842542340174737693180697574205330941183524130478372981374715226133307471649046738599957034824712455215272507640681374263635095955411134145053824851329631114347109784465371638273407579173742653593077667269693573410921935175358237041092491126110903700218742396049096615520710783441451610736457973228885718510475751526197437087598759891776001238295570620923736502851044410128981249978284928827029596541081405971153362941765693101866996680812279727810604895911830723786914261966686698951057489482176364122570727702367614946755331286612190730285720283150567749239063268885368100474503926979201810233779831051475802520790199468143391617998580434510550183244274293883343601907609576948492373156361550592855527078122142520134088413162227560128018506049589918176890648848543394428101689661409422988270981715303335075139938791779877377567021129482511497981525445248145162100329291210494468110533696118873789222314932584822827308487452663285882520750585767367957105772159094331706700434128578898904270171522352246559142599488402490240438582858985030340050382406398185664992442155803490980103992501433663015472641545445588346609947533099822181726907874983013576951764127981009492182464589961710941689274503727702321804062305941742476663557115423748092218593111502339938739382680545818435160446115356344481160085941255113939290422838374297977668274384339682109945381362319797810503335129961580464537314295008113934657338906968621525478280926728159727953195896264628748315030956868975596208783112019967838439656457502503524809855229175927289017215862051398253706639663833904641398311180924182284585861043958940274946070230733624727752727214242785615745510658322377037549791533301323286229941869410253991366865959106506355836217327983343302034738574030793601765740533031838896016809629473553113781593778090419866548065441633882875645421607976162946935403506935730704502060912319180610243845486391534283488723467296851546608312473589421524445541617539303013077189129094525079592919314089299476462185518236139825618788252443520727560301590451623933519334700109400307793740521388508075019528449182851758160040398151931167359205227199471287640639230915485356393357889963216103567859917792219570719677396375642833470178730120797004774830263180121628844949265606825419735538673452780412500105587817121089202864164475657702685212359720865355474666361999959096129868014400600604859566540739627634262484934374137879738922928821812939393735505892336571025745674194317657740534391379037651800166107682214149883706897730648783874921147627099415196306300204454681833584144258050335891669620750624432041832867337603664193004009843091849372870893302080635396824733761227763997643621934964846894171597550698700736481692105077169290456336022472159803259854342506923962366960727763075426679283729226519212463332090287637671331766075776622688074155155720022009012377925496161469264611299239189146290158018396389383859501337204428032162867245286053973981561716502585364741381362517909755476632399700902772915012566972611460812208803235522431783276245819540496412090232967967119975742049048402553238783352502852812242446398465936971284010842148734236028709613886577709425741907677306005427093980384882347840214119432000764678008048150005000310972052296849006675965466912291404628088380063243015411810769814296521089356465415583748834881286499458965884496529944304004615833913092704702197146286945192543603192339968098090007815851078835315397876381542480142934363050545806269874165453344695602229382648807890089252203991739220330587188953415097436249606982630598202683127315472832272050438413696161070296897180517883999447384301667105812183022050030248294963804514884421624396280672747873087437192582501218786390705241383554690982767057526344587219004613326253425868724793313193812004540735769895864804902580871442388257346480916919218601257524684939479181588435857398133790718609057498157935785533043765250256156735230373582588992980527509113353412092822487840966578346047126765617679877257649305491919519964114511545564265342741612837909475969135829132707775383604289822715728978318864778883393093829974558394902059482064458452746779163818221535187846618972696780994554533769748371084448768604247103780651858160069748770479500386414498885532354544184764621353789685705392301415638281129019678332104552962754050890069245275726558433512371608941907061701443126651298221153803446039620335110772742432506922582341053448307395091377590058453842720547048746938925256523662050596569449299203778638894595979389744167573519649590201544822901370769898523052543549028605161103498605601206044254349186011417978265474068192784121737801272337874881607266644373145997672637037297492459806685562187938099352755247211748521176021397005583590677972699935717039342689920740962764578088392299585498147019948825137025938687687175714888230967410950440707220676478262346453466251627652290699907197963666858387635654354265418078194535808434681530078258311656680593710458907284758457497492576545284765931683972202068153532305547191768674961776590976920769526133890353277036497656664312734044342235097958325259584827200649968433108280696017471526429846439745053496603457856835367363709712156449446154346358457306519305122358446196211444202168256520050737482412261846628868446120575638892744177196649732715931888542686384644629398713464136192181875670013088829466698633251364744638459170912948012187629610759757541214122488809886069283900474542704244975745877371495105558868697024819290870915541008176194466723542672724886631672801857454334813433851487896919441985447943490377946475774534091579291018780883596725914422163727732079013612053165132659598113988385555890755521395659073835008343684194302868445741079422395171706927738797318294475718407723658957024816213279394044373882469954985012355201564184397423814385781577856260642946188011351398961996126985561748611061905386531286193915945714784448942602561571648097405033902822900666085033239872012056011119912244463971831375993275145277875811589958434062379433966183938168204457769073981611922416179286761524937228909989744787357192196873916537874199136662259518625236294103331952568802998781114745635267144099067358133741763875154570882196104290013507508086933441985955070481572995050719036768879741679049624269508490629555850260621327886422748314252001586485054648903037895962949927540391514884627644626238001977696552274834716367864516715429344651705625069049120978277749442936884340140354491649912971147515967485762340742850357830197937045162616131578527952123192967614780263264535621416543880891821537530447411041039368891113597019016052434284972270910715594320374715027137496354259705928181282281780659394743393474522010369722166067741678180447033922426215048707420275323186469133021197962516676332969744677245762986051376114941976170142898407780612125123042640310301458571975249443852663179072105035976491291176478346908779666147781328079454945423003240071918406270804518629315603603609763644456930369547251665064639096649413196055689254333990702952754817739419562570928234972852693976514771309763766134572536861497837413883044749962976235452838251138534125161010136526888448905178879718848449092704641221548821033762680790464573786491222193547984426193174092833487816965572439044089740545582146863113364271798203631454522025180105641684120650174462662724589508411846309492819799049319732864910709505806573263019665549984667522010930316721299254389623093339593598867095993122770320441503207570795043235322713666763057733217657124840484339357910379972260362016262943820175673606525015348524955313900437921303917026905137282154433482774705644619962106193577716104004160435670375420875089431106852913876491093169735816816738034637953053136808832687755663504180562734598406907363730977838670292877114093903354016352932405282102647725057333190447877174129602886629930686287756665334609023515996498280197288074668909976710219101836360297849326852505575244787699772231656500590300180450573707105060510559662505514122469923292014446357245883100551524872301896182614230127215789468788766515371250181781642082520341081274800740937456403092276334240090886773591880919419933396610255921302194479972370484968086139101928450274081265243372168027906900060415071915745069607510353000887135041243243527800272095374498029862962210418368421169189338877940693282745632689705373826090425667722429628315445703777507247324683514409607882164549374820776675000768706416386203116277962689406741963677781574823121313343354814882092014345695691779840026983791817904901489722380520771193308975614066358734123495467551538607723412889930086104711531120301393518152597090585563707441645234210520540760610406421380625904212921082335454629731187247053537891735179480841940150083450913268589524102548293422081588691667883377418673093427350512117605136814661052487074022263750737057248495345962349913171531564455636959544524864681465478070697853810750358898217456089855726414740716031928537807891489663028029907875025921119084395991521039231100073912154606531869770444963111793698363119989093593356901234809456230706524832226268628193210718242603946611035521550109910908167045691850785938846518170867881770195705791534084150607676086014435548874659253376822068679572182997783301461638900169337007920197576731806236805180418218713886079559887642693395334051384561674454923420900958811960794678557882247573545675703325110629506904622882772322496290004449603522251845362082007542283975375418029858424866228418153821215355203538456466273337076791983297717231344311396070078825496310126527433579844326822673702981710523182740394064107968334240061213678388895049263925613013157141029502195297516809267726596939536828396183635841803692829124677567257700325682080804071527000187824281049464393041662216011531446479111324026891825746894052028019260701278285027917742125619079392881802982840991631668549518051798963199481122017067260287345243149758952263701979811699891925055904275684142130994190797739167378536742463938622411768211898374122605343813467256510003440969670545014657045627360039824921036402629970599478426493536113396982455413149910607546875047380208586120985202785337629421017997397710022842878011662641579638526617792847808695196506461953119396075345251418301433431147756394563943327449035392559084395835285116094560734390548791517309943430661463821324668961550730508069611789756493595446601518865638953162036338975388456617361736648023693246886592813113265264678109022837182007843638119686871742343260978380735244254572987967316225654592167396031380662211245873330354283982588386338160975382709803572651189193601311958744862523006101203657205214159298377090624781234185505124389198900440350499826376720106457853372395068764858810096275354123791598051849648344217341519824709855909744746300053232545706497807968091643035492745642086534524747495958576675660941694670531262127615596790201382523085830571114564983760285119294664095323767788324116054663486593298111317382111951862461260824655182231736540673145568691207141353826301126768928203130681181981027965336591691732841144793607342920494198596742232561572607832932248985084187259195936717102420559075877181971096021857221381914133627644328871193358037373152911211119384160360621104511577655667920876497956279572017070757395449471488078699756680146809490794242709880751340494731128632066924821490853904953674160586854360877435249410808368034535326383365166203667805103367885532603836372213133166662448658370854865900750864893052551539776024946265898640006479804194539237935003043729925977830649236653579102055028033960092517680413951962696878210513221546056616396531322511527227949910496867505504584944942753136109426358950579393577505694005807644756318429534479010272236431031639042600571322810596471142069710839303675841116604577398344047734100016317981011807503438555533172529363715207572752965279566575649577392696442702999714857881395640111285804248112232718752791747618055280118870456310082167539339391629597697729043666443460973962199751628309421502402939339897652166351441056207308954196501140557784934557370726338059292103815722511237451921643294696583695519355225464557237720769231086769796317555629036579110818845056174064029962226350586450198200409535399482748262814778402697031924775521774587744146131023387323309658941910846481822216675786004405938144326964359366146209488919908821803777843240712370444735767137685166391855449030766217339139724691918655614624440558765802506365771579259369728044607339899462249092112307315760598970943767493409191434948270509654333452797905995292317456406528367762484158516562365511251449683513331098810458466810092587928728926888820612431147193575083882331672680454946525151032794655055646163835635426251125041710575717538302801292515626388312030069294175835578697634331269590099690561458158096716519846855000603153445172294616082345515900898765944975718216000445199779494778270623980853655791260031962583322116338030389970628439692478761873495907501577415990611946738362636133984049113574068387076689755779703954680540917286015790513077169825707216759420066448920674660713653783405497169617871588957468406636436688247065195140060583512408713047169998965450461432892274879307196081085836152622027352117755207057647027904151034221171630063416394940238417085652877936701772880546733784156903648393430288471331571679977721613454258365014911008482583071244587772711138911446868045830985331488848954141645148508721348742699344100785708481574632014443125528802824718288289700778908076914480474569301813535936907375602087257399287372177530218778123319074099322735055216202196382545001347447956216162454721686688725926444623943029515374978445182138222141315542193569272737671289734548685003577294503536379268275702791206193697374969271757823173087588263572046389904439553482416652061179808676369221929157204249867888393253392173557271815446460578668833538239999561288822931896756881486173862326079565452681697465834751215166384469692940213325273258797355288660001317185365956355582922855841728759700485044870074274897803999014460739775371507805242052864286059841505218428235646322324490437270578195276087781334509088701675985528514457308880319388561941296821939294020014113807808700776842004110355425701237220495665121697457596060185799141295568318872653276155291743786998370998679295876564310496775032008267257893452753367235220530428368087013122741041632570214772270987616454416084720133413095079924501521744829105010143193271189259038454889531441208823477059525016677220258096476028218003926964630850461226585411403732009123747452812124354158366458500617674862386829226458867824512550981775139491782209148585897381689867067943548518730736549215342229399240100881977997818642281215042775125528158116501459755566480264540518548359567941415885958556281637737272726116261018503164517804876912494290676961537438550938467404175469157023953490026331227396673675465084221413129126097497549287174104285856416692446086472414055889836714285594951153981584909468772646119730800667515797059408096914196500729945393391906659991658198607034963653094264574792363036873826874348215160409706325606207256797633856284853716695705482813390185076997294104233582052018144935451340423069115000064977827296452826860830035222410731942187575806560955151607717634303761097074880313481893555593585758414644462115865781702035887776806806055293715986648865863408281599316906825350483293307458461599675069706398784350455678121205537935336271947117231140688803590489390112833792942569104625434635946642969408648278241347283425864952991794153640069049892007671420558571905304411323885121225653391127658107412627107637740391306509032051125867478307210194018131444759147168745651643206794419075944041899437304088143934039574212433019441260012792098466273348401073479888750477932144461931086937448038466912891610242060789036973245362554994708340364330911932911866551258941134277207857656219628994809242660661912638249982440157129090243667030610431021551430053893359378854752942560555150685239485287307710259356620356103181497704639705856077926529416662642919716273600727575036994451562572617765408203353329526708203572496583964509291468015701621028021329993551558542652219042680303624274622605221411057206167423784789346313672481800711969350241953128059148341758281818888637887884900313888053359109996655856906682930258258847648338258456827033052670038907241111615980581091728201417697560477132767999766248998372666984707579945534917787844161066059414124978203352363465061365919725995612403488480640008276167556098745361695106471857490580726187962401630236218138635376365432946397522536012749538831125299111724519271479030664383183051705439368031610637022751386658602987802924615983307111270667813194347500008247397021228659115953589191822624236357831895658801505910026763597268114339839674970671005162427347077986262921490966943780893667660027499837751899470479786774899545010968528083388613688866268060298318823132997775854902189631736080896427656346960179888354052065839275360917041129287517087878014636354776360789953799672816737997214249776985777600757673983574115361369355414902659989123305528114003724720598286062671787609700131827625897168976775385907971853629794732000051351604117872255821055094507271454416698334538179652962480341015062784411091579311209400465632986992658678166381123749182460747816656197043127829147309844945845517747158958366791623796316719943635781362926083314444538531042266200744182875118920108354398425799096010329652759037512913472486125967624565596940176425453896688903699038282783549501679481110254952702275670962860172532626868692688046524879344053094353837902119995738669298819145342111903146446782805017947013702797796187772645600462125569270393912731704824290723491951467323178105371928738046522133491505270551005961497719757524318150638097082884239570877496175966414069219184129047218325758699836513913583765715356206251288723747726173199020825008616149353785805445055107534299610587920517023239618944820407121427905345973011305761137223484714980581727377853479544351354754458716082288168156581425509801835764038241468122941368648534413669647895248642396870373846859891795920635586850199773278412107545051540441239960272993712783492348767858996115621903400537326840934352696973562348447713872946340230053402985922458175585676474824377374978958773948352713369674441638269750237662138427564685121030810613699002448474539709259772987763893156164903665665216745814300388965689155765653216025843758203043822075314069068048680152021429659538515755352057991080764710630998919912652308406303142204797429175777929546601492140758949086720668738643670811457277516975483612167276999641108810949357528526002685098737288711737900910146139983044894353501538488555427490394155675435009369378134029599819553680773991661529596186088193197924033122435440548007337791798029730942741033018720285517511396005432430832935228030589039789846750764292333592413086068910833951587973903836357413874368721241311252989165368936081632823923265141836873290340352170967119376676947303605620163788350156193237762136872813082842073956325994522059124473431146973708183339162776677199856806810555641159148854494441440647293205948770738110962891066608162125100082441571801010656353859714662950668154345005634951686942868326940865596815291173433670661235160851145898399345363629245212027605777286538991457268726257900830726418965049103707432422921266982239080061577390654461877356349991032939081864600100279772281131600646142671208699533837701368787106885629316272432311569738248764075047200861350173493420780027024827646052039940978146750701294885755089108312784278831521100390055956359955126890134607558971281713886194510528445088705400194238023185807724114159358132849527781867644064494455284335929773749333183180372842740966811045041306774365813241283748655164962812943910684099923030487760940667933816320916763414639820371879250142242126377988690682911564439598294498918080869684949313921706726976695102436411201992092634669363890803771144691210415818116021921344063632380497142234404063998838148098699692546884162813887314585662256878590574282956887009360461313468347337354904377284028558339827348313550994890547506372985767134474236498115005530576370814920077627125616433043565301215046166526630386496293158527520612829617025143299229548802988957790788714947007096119498436778140111791288095150009078715645991845377069894164823762108385337077859807526197156790212102669738524805345323057107351609569130851622915098612612005845841683610230021496393652215873704066430023953914303540286765925194323197096650969057375565459241390048689900572962651632555460035019600183024261099477804216800165804642678085863600664585245981175299056813088052303760320279404153473805397331892836903579818987904057082920734527775530061432809637083049513927462739899059005305693395086270996924838343758579410283418090482763146817637764350127450002370658455235392854681391643240850013101030871637596750395502386915171458590326243461010066233520608417076513005975175965483260143939404124710706575474367758287735835746139717323343927827943710867760528999935691065327507676792483281154988488445472674540667944066530649573166555749973752950515957031862922700187573886424669898625206571762090235035508276832347777039808344140812444190653335263379217633712932832987567389868753005012296394596356800902790760774152536713111334084013176468861830881720508455665293409562169441331221367896018494391740996375172988920167067327444874436554042057191248611961525265183503414203190749251175458786981763375299333762074251141943959865935775413381093692424253982607565688053785952512953196984659792089021391958995247955269478267808050885261082385369842073312058092846437045544070062841928100050055744579679073742507448899150959515561387728509878974697385788969103850659612072206521341755185865519615050222849425808902726318111204865373067740799855668397476094799691366590327016192294366897148605324854271646942695594932143652480571831150335382914653976342212719698456843285385732996129351763233330376879037896931370086858986843135027693118908632583036339919944844625367949190463222630378262011253624624491368602192997971117195172562790680734585724578832737791111223633500974143569343694526557914817812844231156117465696084603501826770676371238308382472808021890467785515899940262766062427168079243756567963129757731320182597183694169526760013352600990957371857015767013918710839536487895010484750317235607948193807320197017030391675445156313288819170436395127136333851490406388457618221264683283559519956211757794787106806288975223646145086355789316404718232079903236516272846254000276000776309336477224642595260534395059349902094160536308204196113481765983957364325945257523411509336361856022220796780192640515077662985655761087440810298124558144400567183299171295586842633581539309509830767923087647110257525371662042265125359121563925558453093107078961015631787460706633957066310096584798556193505954331401635497306717191216879027727554088827960977654436943938158957057247670164182974990285834712713914738337770245247598944199869317495622482572313665904624157725860803750487003411909684072569230448249464601638161795995757809478393787554063490818275415873738035282269382761670622523910222525603096819216359922498107183591149137371114396796454939189225585993507501721988467625918901122982691870760909100459461576216110492197012137238584652631846438804914186883464569668203593508191318751998419392229548803494414319382935316417272219264774212200483918835296812537493356173108143235117093219684515109464158068938534891375544733780449070933050389207362432736882476854212687441990784023975337860690323615463119725326281942177171620653782024911594740888940909044232451906894460412055687342532617625839236287739625592251627075042386851476654041718423489415982834619031057633510499060185750220535050847465803152731911104529973051732712797998619232690372253551684125590141760332057092547108631378030376574769840988219451828332778232078602748636028932711620070066983587722702108503855132591004701831611140198231166095304210405665774213943593694120761625392816091647313748433496206291095523718242051735667661229775939812877824190228924630572281556017590473103230146799479890281325442342258521611057075273845831627502796345437265365025554726290718282648795242167350161277809584874999765149906256618993634580218598746635251230108716574093790641272652197127833885200192337521445079100519467260464470868730884996520852075975508501576812618029551360081824661061953524152637735260259786913602287519987692292406189432134270961412416004141514003391959214793037566718581646756990150347460830587145297661770519780841102078599084658510391161184880702092333044786952185373905044963755530441777283846800776450491936775440664560447262638162934242054794073424138408827420384094703274637865091566756080618353824398005237530366325496885284144982170673830013166861046983336965143074966763847159554431188289848183680292287459923513091865726036125884745142669271406018157277362928242274958597828131073851893887566991267756360977769752876138434177387192535905112649766636002222377241822253426283072410389641114497863098805032968673432556689163671910281442915098763908964282852748730889501986788515440991659072341513488344587970684175995973581752816415183006382166526206960123902264533921171010003642985269415586580052788109561613624835747839960669699989921340292054240942740329176505534403645381983539566203129722618149570935123978003969141279479399479742337565368510389521645703432218045068265284373982099797418744651340767779618606298612545741897984307666732584812107674308964306864075129771955498118174482742965639130940040192452188648617843590711163899917263660985269608326823021146581418402586226524349804042811380131430703375671576103156803722120675667411978023386095932460063338549286265831731929299147632782649663513359610423323589646723813152299196959356346613641703491730297370228533540660823397052100740859121392228954712169025124810209315335169600314290506449129666171886520083059059188742398358944095610862605428526591150802450014350834620364857655912183051997182392501021880443180610502814759316360653166568028973097602468289116486937614674497133362993882087710930437369327019715133198594791711938105139435324876340707825327655741920561763439205266305756920645468812606546196030311533815807030866685250287995092631756341414944181409695647298253686068292293057715139851664523709195041900787310712309972049525620311581213674722407179660353806262398239594915011567379908140316781111362996812216046719278998204241618533279508681188348089445960672937013473587917794912449796262494077681510593402665766222393259270083768821152507164271154947889204944540894392980448241217750512752110012663517222918480002092735535740916448125726686886631510997266859853906137225534847945729748592865386246132074510387039391317957680002470542122111718445061835035326763669240755770661239334452171525872866078273244529791847483334027784981704695450610864758086389807879447459807588007087145198420535624117578499741740039387337782131155654780306483800029169359501595671646620508577097506791238773898204721063863899468068849526993457265746727976228500849943386200560431459729534293774631380545931763627073750428190297257017472612807033448547689325890601690606718912617650334606764506466882509407778373042902073275858376939623019498010956692109240571126773065283243194977649385887254607711433238972980720800899011833281765174636448051036100767352695398247390311215660112139400582684920902772924341086434026196803593527067060168097701154740740014165819081840360551491671629390748899392983123317558046951244962689508858807103350069457094292750685150937648242087413809865859255817220766690580520078589071372593798756750291329053643395076278445391964543670819473000444287590826522318921797427515538210310410711052380338806387281219857818844735460911146636819595045169255897992135341652232803636802045573321802423842744117008068033850723962181936356605636939681277504006827430281618991885242684511596967472866204253036300581636512341756148186740328781446403313161452529510322628828259346056188034383542413076228718804781511889330447347584259770173625385210051962169768718185431997218783900137496504689958137247696699173027762216527866172244523300332072741757068497758316606766839611281266237143924975729217283162068491399352594373618599351998481825657950770810125133278317669414728688990140500733947977413715500561410128253555210691729310123623686546652369456176132666986651544458730444541902969237557154580133947176391678005849069305666733050023903176934879259004085825749410502252013588751216170267702325905881057667034691750226389635407493386809245356426145826181000654472509653279715107668788185418961088535527126109901940969515962937469928358383168879310270363709025464741537160519241942305612715448982035437727780731315016702377508638104130214294433221687628730675634563204402137952452696486531541878980043653680906706207380460009448958556753771348523429761284021385786797548612608762584909811157553811124807130399059592957493190254894619588524406748083535762008616709449891420271858125824898436407536394278973274441749239335557533550469693578449474928493974522617457234647699807467571486054568610267011703615152472482816892528741251078629010031332731175873509261270483009318968710692799074747575845509594017986061493885908558738535743896417998027200444256643157538681511455629323195654192369567258239879562050593341808851854233091519289297246646592212373715366216275425317168937815848960114400212080838447308296397464570684489626868638716104067239728435364097868544182379439869474729108830773267200594292420056891368489647783935559373725662218003079318800489906935395855838115048289571816681358179515804870153554056296312494097515125430521040632557027225315815102947689009784324181049366299226484926064639605659040156594050360820935288607485389147594682969172449058084067372217969996588782562662347335569431042381209243318994312377218490623690201274912081537443409976969071837496270838852681344860028103911509992633718699461484140415798065811343090773146976027935995723933921924806853658484111777121113718396064141386694261285698842172031695235877613314944009784760641873569708935007704303339230113916019787984726544670787090262953966496085874196241842742509059627492534369541688811749987724040870231759834836784722089238423219542437192806204039535768983040450245002338245223568343111178962067654816077910656581162273090940988188943786300207483981797544389451955507528919841886319465082412773845341518121886647517023227145081609584640694868832307064279568968757904479066287497845049069559074436379007359599290173902235660514907884954642191397369583638316381819056213439956802830121938512885887054341344650691486353208864400806409819246926668701889548913708562765291832046903207382513363025636097003599439966440268742559389538891448521471523093519366801901802966956575474716972438253905296945385485995684724441695531559131082461346317211385437295847822662077713649235812785620467610837497934714408870381196680023143855466918815826373676040128889956226431635357145820969686249321225024608004665177210887442075735759942544293358203112453424037165129911097878708357737962741507439560199103714316397646390468054264609604679041497924662559657138740434923879326009139521948460528733737123361997415652059707639404400543434282172469297737307301930562618925237093828059328918375678440800602218652194236079915505031529059449338873518638628907265944667267284738569788348919921416576455755086714281082180472668730127884683210769375414758459939581717443070081609128810646900567918112233298330337633268291606443100359382130233816448224449047024304800127412632244858413646121653972833923941792879423406484957213897659751514962443591878447867967831512682869219771083142364424003107594717872600720939390574802143238492091701926664064135944591884494932936005033304749676557329543829936651394319180127775759461558891634246660132918058453604695946252547870456438837227465124755378131779781846275141676881609408184729945803163948388801817089335606483496430776995410860761045841703355459352490665957547112481913469821830843215640796325916808445874788104438409627678056502705352512835195365792365580469923020640936123257820410612437669481938033038631891574811520553942522166714175761236991280178720896074264725752111397846823165537974007444525534240461119438189666888288100316662567006309284597536403195945499046144734949590983034588282083230135919294424556158397745210438017003538010033591886499112578440318019673526165763654731521760145686856523757684211766159497979194850183481449191797776212836534797907702344199662608652260428866431128027578493347181399827365054735905731160382132708773484754779850008361188700164786159588833006511362286151297777380887431830979808372150256709535420892330524248755653381603410632000154044152017103028542079039382456014850431849261182679301302996251564353770174760861770063219055007655570506969320297390553729159763845496303175709913377894171695342082220060811201503470938130337917961709930033309798003892519933516863256090499232476962912891043599053950140724888582321041851622954978209761255648412527520180492239247755855490445589251286565521193717797601168637450632889199562504644675101800432244769988666048086397369829161381070675750171640923849880442940312759849078399476085698104562662343163147738334860352222055378673804548130494486834152458928436719416733154338690745779672972281058223084659395229229033234114870017322930125864720766494671223359672016808349711200049525810465544651628674599752582624972463530366717253532637728729910821149936598667923591226168330186603068818651390600957073700163185802297165455148703676539351792951099643957783271546253833792142347444039751693152886047254244992667162732919939358573584710451228963681008926794836207119574612178405826697340914394210604980283970321463048482409136832608270907136400073204151667479011586880159152683686372336211623653666260295323132904918726121066650535362426157902750563310059855019974495569546373558414885679335789620649211983497879087736049387746602558422282349346937828817466037636296132830791879866549261825761582151862445567709599634685886976890591528767477785763172866567173216255261629791318940748914763245876917408968178873342399495930040499609244152250378560913486070195600460733226994182979105483800011560328675533624739859900193773860511106754244730702528320465833691936445789076885505600305125880429227847348217147172048354518612847824632410134135121406214856735715605286369342676953549034882348434880609421079858993742178268485351344140508284125438933778638850396465894402347123940894285473023182704804705611903463678975914942264606041342923160316767990334799546792918001611386406973685441988280393788719320451509502888142699823670534532675004203323342994407333578126377600487423742074724830185029638412531012532496469151492970569159862583894344324680834926807529961108390761095755962288425425907830491225641739114268249840965671301317145190152576854864933791916955767555201150479986765990610804223099539200064045479213465281947631714653477842927088656173367806662163190002423386331175516111261570048574241725313235471548336885029994759648916949235019074099877981242686312814206136374717833197917960758683993064516693769180419578613958076800625777507307100899844916663479301395598909302188519202567643606316827450576334716802841072867598868284386232763125872104319362668296471586088835288488808877786964293295097882258239449574557339451561214318824835796274553898137781316132584623770888543511253274410669546692649184722364222958910532431343647703174188093490821146542087598926818980069110969003366454140690098053619924421101407258196433419295689352725497252731579001349989333890227758076047149435396293149331176228113621515421046313075134867284825429470295263617008530814391495424204448896011804065612524424306118009064706108621813134143070097378335610611530052095754015851487371446205663811228702250706345642161622312342527106777583053770864612821683112364907810490897554900176541282555790429308170269222940850129485086217993296885199560161300093330490195072269322351918668092816491156466547368217452925836007563080183673410363062912593160125147236670394639459257838883724824654480182404151103315142736869321150785260583551445311545827867186130180623861672327530297023641411283687913488982875825696533785624084314843453199390482093945033314658413580465853611722145105564983622872934214326092124144611188733357203267946280065745588503395406800954304648160856761200199812866040553636749313838933573400740281213803507681193852953608227409692950902373603562781258726035344876411219910141632519951393473906511687443698878282867952900830527241192947377191204376199010664186060629931938351921962774553027034855414507431352867555542086852525572998405129941788781332111104556107730316550597232665509716582602757319555253972436410671232158410718429110944275440721056914310403711465036345789098095946476356631024672165963897954296180868367558056049738576655052763512934814483196197553434162650430708533472036231075358107136415823227928899248946916731201399853073497673226905051839644292997216072577731824752789552074768997303896679146472134096723202663399922733023838837183026585182078688610913714675358885840091989422465074956310959054179967372802415302012251190974158126549132823273318123730622431265634525185496506909802665816092594041833593413818798102042749241654640804941188702119603917601255015674092365743701882220723696099940610734409631471618950068306125175450446955903887224079630851635398608498945440955226218821875942466733771696793850699859948554137314771820509172569773457419353949187839190719283042447475441092884531058228121151814980044065381012625664368637583843719106990724194701084137185709367354667903587686126462443989873422530641094953643008384771842419626106088381154995219827253666447060601862060990633722806459669444933689443438074218718856290646005657039303408703068901567569204693925661248266143457697986765899286794250550522283364786410200518306177648085657353217483584610116815835880874095971704739797847225008600554858989828829531899773879832656743477670898771210216279787169705763004410492692561187763980079711266168097821122196876356569820652264529969255267483364479762121247062869453752763919096237347757640999343807527527328150776063452438802608323772622544053100549615233961988342041258594745388432009109484705888380565627570840512218295384914513361927926917627630504284708990035232041646802665484650650911046812316956685677071808866805020556260621024745249086222919239600109737118343223977296779730573034933199445239924489989554211220618588456516021868358545206723806640670434793688777391563482367866333061308370949919931044265419968446129389072115673510611141394939319489763762919267787531777858507849065515032745454226851316373246438220664525121598247662777074014507333154798929419158262565378090490139327255504745062857030284468296077886269945904419411171099872978211689196309471106747113119108496995096196031037975615888461111479665663780349198588729263467563668468408820220974298064480675253894711818739207459855186631907471825297573586201833660804909441844125138100072317894278818429154087188313262536904565239564401631419583773290697069640210816637833450624235569708608234569944455780341155743261555543175559334458424424610243938330693842633704623469925231643226887253486460250735776592612980609362883643690351613556881415704800247882339247135551072183481735142529158732121514412666575924635051582000578717704318204308357306510153005086791877400533783176543911299511007705903441182044092064691730794358390000600485374518417292278817552051422521064108341967028985590664709869173734107826974767442311107526264553297366237402017880082126777392743228857750832274838146584611516540874030927953235653499318411427317159379745058877768624335155665410487010143648804154930278768055176566645166724511224978701622637229699733014482510275976778912226551588623787961468042456151134515776303166176884531445956013236713199746218912213604614192163232885689560390357329460350552376266888798152394817260379486187410109301918644211794543182406935546584154614575952918141849318637663017104064820491335057563166780451598216381556555461929802234124398756499844381618313056382079390576395299061046299199496854970394533193047002337820782274851969396689994059572089843063468658126813398868512309377709018556966482250541706038566804820546267994952902306287249960613750903087834658477864253127977529060919678816470368154574578981981317832510483487935980442508096003906496639071403963744555286851110485918589827490616062931844205706624228995920189842329804712133659263699435964777461760609483247581298203017974404283872784777992394099189819455529454176119131231255210506113127311002616262631593310677636876766721309309706202417767472043658293979013915314963966630134556568833476374991764126018128771910938300592097705289187358356402908043145293844893277382063408510701755514940591144602556634948918097669072946991937156552828074841041526835580326657593647231160086186777178188772581164091726908538889609100091311968897788961880762190742197584350122751111301020842150339845658770252400133423349114689443399687742390344027369779155317054022886106434722750492469768390521746584986039437426441784218001861730522375137469919586100776784179558726556528387082787632844562287010922029624056147140837446822957715990242231977093521718042188014370948951262081485373180098127134565480297688677021598979955992829917740780947259554524705866502079889896039530317741705182897043020541763806395543226192245415307225597269427653989208695077307047991107894783722600885640437250986785156731383352938768690599347953013358600683017951225479280120975077636597032436134322304863668530775546192060731941386763012848529558715842441956485898290451897810209330655149787364977513611253064824845030069756980707688514440191177765072710920377230628987718262568367099048985340098537733844190932325846410730213444192242795390287230847547873134036218993523119677810886542657072573576511891760646593202441496216006304036988998169585417046786455709021292822157235790626991735625815487980296263252559749866669455290100068285478673220665957568556859118704751470908636737812671985036474882776467163917099796302225267585890606350518908818663504811631172545916492049887996344342074541638069061563197952265582766200452191490375677707696635167583148150206782110242240424383943451971123688887399799670132474972700477933811439507759165326195966141693222933026027022955753533860544796375647894274901728861044110506019728811895557409488505216963885477087261999721720021014232062971693006045366035033518352385838157961782202441509451280462667391512885792209343762564269959096467201038544933710016137038207316016323503363696780361001191806867874808887590263200663807736701771592380177011772939825869044829721590776351589135873542975067319186994596586194079899723954676856192777107170066869169892936960391047573872982510368573121619794852528414733964741396600310343749146199865082352429547355920854770693916605763783592895235877897224922211541539793196044876222898264358298199365735825614667277944589231743016454763046355638631479938856514558612834070437611552391472444404561614064746016939057274344309433568608764354546494162082127051739558104896930487618292529593568561996838227727739099391451466363918292629557549105947014313780684270696214970581504478504752388559019348049159087518033141079346955657932447562411814931523970964207767344201954381574585359723052187072849310178847572178464643777930628774079848712157377062626636416369056535511877030698878583909420239040416784764588715928279626400529428576048620501511618293652007199083340870039359900327338274885429978406669215042734354043018770399303020283660110103521251064399818699060904954356070730504635307283537285507544813778388503933984912209369731687892833250592870926056484466540859622286300638705028207748385883519168103080596692455978407107082610658925797578467855834598360627542998293028875043699613673130816186327569849758426192716382023419742033518636178535269445304233022326990282723261916957639112412095896059970635921593178934362619510249536514550234590928907657922232561852151824842930737584550654382032237252125798445125471180065378217566825046191320968788804212507442177794119008777293987735419789564154271990547622785200647789605270994353437484378142408925786338866480302589956715352777887387943309864331340034934702706560228044286144782654065443716549148252284581044903368052454193717607101523433470219767137634762504094268197717711243896194493769237941064047771943271520813395973498649540679989417963969358310046806801604510143922719136580379812025913645671112703104765167966871187798555982135056972424306690157720359867759867768362948133880139544896637507841483819878992321032393965873358474159577563323464010632029139537592478563868971137079336031437917929908682502527561544918085658246664174133960295866900982964968350834487073195047482093854195506672451519305356121792584030703762926199994075558424258967388100372385255941191036849680029404551149416241686370421964876351735221559929217493085584997771300893790627309383457624777097323054052846646967869403799186950679082233593769343057691633336519741080731740183338330778231612670688090850838630200001927618727394682667211870295757689421950711771917879954991292702926594407797985572434720135968599135828609325220814602660549766278132796036303053245972369293180100257734202396578364319064705988293831872636836533421865400644930526146705938323681801001294788943808574344809067589259824314029381609590883115143950746030110088886222732235325064220001350891564371280493990272424819483146070457905756042802912506117501624024177830759229977410020410268170792148429701906858688416329484792960716459310242434638805893543522811100117236343008008132346902165075494792484083633331213865969149852114987644912319945097884299783758963778154240700937526516144658774520790934005600857424841449544428721540821376147790463550908318334984413518282845408024669911689783802327799117696458898925292470821170753190620036943115464760385915236150406182147570647528852697601206812373464757461338033921567940137518376240315645479836215830108628890793782094284941345921554334391876736827921371688502393640306006906840209912498532895796739068997231955915656114325158687023737834525989930257216014170513468169711235104531741590237783037176036157491466797205677509430823185619473805200985573728151978487034076890202401551418811492890480580758496011796259174761400469258411346749953732428056809842704980938007029069382369710498779994708850328003806309963534919396755852982618215753401899637690604237981751376702781827927122345724380674656366478049274258065273374503189475330734701470001766259870492286455798124308932613765276964488882307394099283034798305122415886460521523752008112940447388435208677410083549605113673841991994885474582237900748282155441885055966103233021577316482775529342248662434284500478857507037017170295684693598108483451517065928626464592888009823336454840911811558209962860461018481340973329853755592307468739783918927840247774435305580991922023236694264227640272173708518409018449765054611320804228983777318903770691476287399815932973199095032424389782976268774105323553414846082211251579093377313475957568330830961334286961470740017426678831480665547676168224616981456938648992072094119382736768490263768408003153529200013374971307928988134760659378184296220266703014211785327620301921095466809794732037907600484562268309943377739055891415043883278638160599299307625139818913937808623361505821201055699289398358472939599547976650785290382156287385069148733831023504673383601122947293040799571706802908952941507885779260735420093954847134081632715599714910736603721223299880004224501962791169221339954359512933387817382040805124103317308113434896679738398382212108562528263214569413005767014616307127536435255197252880174121842735497673683948972688740699602014794741828334958003102862221988052189048480535800253395235463437692565909950126671069672075566526956794872173105267860292112724130594161164588290459973293323884729555259090644292366424022674363091551189101151816424602677635605558601793796788354751522013088400856838506813647793023681138561328805940819412739012342098868087656242203651863101154902723399811354903682269003974165482732032561975819114568121756128746474118566083348988448660500739383968581533915039310379171928602267214315487770754834448551351752693810505078522492955735162735642472546131118892237492634697758206382134734221247379311291070349852259103345864523775214541751905608354903885183062586430984302816949272560010738174047375209872487668775469163512107639776125419294401299654619585016432683387208632127484201120167510923225654744096391634966484934886197577021788801711403201358378396068040996250868030469075159832372502257609251919460461934769639996145985141384103047083289471479874590392859385538746651846209105772358725757414200562976209971667214186004763859822690354839807772293666283983428877166870746131701718012790202947676722728554883285169864297862581703932340513018354983850715178741955539331145048276781696083123126292626271648814132904168310165822133805398838848083512378519667992547670536695915533908317262710618469950305637243845284439980810541069843827445463044568863121211595025743037958383297516910276618447451915153079409011312718628198538480123863670933247692175272413374455456829581828311518834787126403400814921199652704789999561103738644840029623075281208326574297327667745630224808314891456918180065093284390184536368155325736183092566260266610918915055899106898415630081719525944065647547223291534721087872393607740548075414476857794962415884722344615250563943154180933885735520950675023669403694093053470650172635204805746620716200172680384786455429650447681483078526368754346004735463546680730835284095468312356885046162173216408666313161853039415630029346553854358830666731968219153162583135411097660275555912964316300622832477715712939157017432870818045996758127415784602047791685216261650945141093966429309619173553456221280654672651898026372731981045985559136003133382759330569745124620807766084252755937522364291732605529185597095726118526483420949964088896795810966288575831174833026989715649651187466257370795995650083292448184107486662330476675914015243155754959201282952546251401066992678347502931038446709214973151643518622304813589717450539299310950236735536971198206573708394972561271087246496172900445204232831269175420834088883697031037518379285493152206405153133016324233530329621195313771584590548377391589162481095455642530804935089102080814950974618885487972314658732058546881495503060330639207122913877158668661261498023882420266704488786743786870280082284802596195486572912180973641531717563287878588509401804556674296594069044768949835821150169638759755128237341449382071650281586044974359455880161825859349774560618359358089441244589003681681262903257405993829847415097354247547384338836898140748115580734625481890522967941940503020197481956552733502333509218830184386471144444452601264857509781810643935300350821178550870488620009255639802702067475190644586374067628077208688683265463569419450951307589253589128499830355899902129537653092229455596651877906521549277491008644386958044457783217594036058835190798619923731032227436875021524195803756709354768639341383763543480287428935095006961176564286290666223292693853122290230442443235163747297990802213248443398021418757904353739639166551935007714437301893098669007502347696657998048757043000080706674494303008082362639930036713558878472496983676054099743582823945994450065998118457202681900421617438114909308483071564290312387501869897722034660093244004342592986789780565789317323313105449911249231721610072153083785514536553972769316720858221952186633598590673571478906532373339687241641068568607684771365192801492222460323625038839293593254625977173966251921303804461379249118677463621146436504517092961597597398283709254843452174730873244493665863624223067861797313240346707305647601792736989110050255169860715107817631825318640294786258938190920439181797555276595702877585004030912022884548410786071664099094783472144905691148940235222438550840496738294165357651357971133946680196653277514221793480859210560095693885256042254358494823998466127549768797973826262640126377115948314632053958600416397572369242048247700462097862465704480720040738472217703707634052662304853810641292286878750000230638625786294780688892831043618080958102086190848951145500226034105103754277289136824010614541200531329133472452740234486854445286133788324161240675130090802535024866674591324507745417016354376910690028865305497647826491290216609492711027994896236609583709782374114841111783782484763306210518539100083547384189003930444616218767565607171101877385519796546380407458826648872963246015665434563360260405320529329056281365328241758699439992927740702205705274236854026900771665215597580950992193270309617668883949956174828907508322652111239484422279693993694103129727118488769691785373945103971180891955164250388719650282347239234870199110497726029821776396021924593528099624224823764386598342388465827878482047815291936141852391044230510493849060486499358706817957587216963144143757422938667725970564761073153852673584058470218732170854012780465605581967218930054393112506237297338077382162773781063895734382125059796842674474121820430578721913055570597981065322923120209031239052664229387820626484134068702160225986188892267883217724041748181364131047580043488702323270382329422670453579799988283075033436977790252032707723423381100318311940806580874077852327121984632590290698610586995414496450785614918722531563698862305870629659249466342800445569180578020767505054687237329046039389018382483350473604981392364750505025383494046066236240227498777363324605261812472285736897980862470572196633417164211776212198406049352833064382625817721428014096590244103817585316554378124595566473881561247450458396989991651812302539329992397914295282534383531743526562835327763734740597135675566933663960269120546793759174556092760306860098100262985488632333830813336654685460101484051363859204726113387821117736788920985028998301358571414587928545892960287573458283191038024683397555675333926642980756391260673045593843187651574912352112573867737713214319638190128778813511286277630366632336200215610210922917989734431640711957759638370540279131519334715372627529048809437676458268817094423788389871085691040503516837374606156483828476722716518241081463746288911511953697597554292010033030105607719565242329014737771730580199227267493952297571702921997929996625272607157997444942960982870482704578321561573636570284779992299186118792532476741503176695778028310419179065173664958157395646473678170995377735588938146603210812263231077400601306511284107076827625496503852788911289312143988152112066532380821958129208756340568198649810421837167308902779766852825666747102409918792744163580261042312028587408904915288710579373399510604473809763066686397066076378425242214816339453751677639549429978489515003163117361223607453012625068277145398179597265965839442769555094909599022621083918763274431569319138046812206685672649428868216337888069313447818139995602643809114783904455931486984145411482375655856809960357547867727457206846288155977249749675964045146005845803672422643977739461214332553817040527078732012724453212046244215354901281468523343780442406879465167484938427413139624329048564490685321614438132910145598982900870202026923522196765008039146482510866988783125712098030933320086518744541657151525751320989069495820660516380165646782658756065634640377859224315867731025229165301966481658840706170410035662657828769394632897861445508139437994418154172328001066897847256503751493256819359930070249563201696047264975120568239776321890735976856645015772369108861713856070300673977775780741445784254878886061425885308716444655114853299302262179749727449213675868234761215146574729664028130211965346967971925208821930902511140946545794053462130042337154487928757979098534233031666153155975660277291532912591226400875815636113580764787643553711237643526693212762127429889989392810627886355012014892333095638850434106336071137211001593111694493119296660745999197638939178028014841465155465891842270491451368283997849128580502632926415130068992750193606027272979900151233993094639772480203345558459445082027909952463734495647074233924710182351739369679103329437904725887405743627201867434493240867226081266326233188333812640887400360186061473505886960200850762301192242395599744690932475402704155522763286782949310127673833119636460288819810164871672489451963727101430708444232269608494634612662792450466165037229278363328590053319546268167693121207244014181930676669338433781634366607583422758050885176490034575390688946055203466150078023787435875780626364581982796689303975296023803387903399839719904373197036314862855485758006727244935670712808959206853419827678507065342141365296610261944723505671858334232108271164100972627251260539577370312608197418370561791580148892011710536233754458273463760830946585912456210479589000522286114495224390609667563466120911592490429631029418697275318850830890103806962549977092149205812355929866990124869236420325121107465077920520472261444951629951428406239720053524160521827927314489559515477549320133765886738090288801105211191391529813921730238566182724008765628569848373711648715949798475812312134397004372388060380625527557544709410967246793824352842500475834828986418547485238285242332948997221662615364984338626563821192435791290522204719110826287371105784778421189006176272648557348981885290169367751076488637516211444908160535838241492658692377971024222721843928832534788664325535857684737296207448252814823563232959964013392686352630302265605307038320232771979167977717738331883165008914520469948096285863967787415239887693999195839741871775477786004170554719490882750032221097650730070282446615960620734574299528065468881457346362242781400436410826415408650284895756283151623749403871504842604378671726449719927519470777554749427054769495689004808224440254026338902347810580220919275237376523398330190400548901499773397928318744185837727495631127021616437900023904335099478536571080292853555659252046415478649537868644830527531448367665800123532481814381566560277344617384855506890476275288734866508935755988700233864931763876725230732145845117115287198328032976048718786156696766372859714001561686273344330416989831362360430447599095761273557195403472134863275200987525263883939756002695965803257690353596708823737773930280762677908753298652306580469289161771330050991741724207183373879974567853813596778326686714703125213491276309725172299718099950848097714712730117999271202521044975025371398900129514287627736358080258011531386958365047869784404189835336996180043440328098077848885854543234260721443043079802203716781695795526394696142876636870337802775216569092071114241630639656872358738506745602605342588861503872854638002945178133949417100282404159431022544500279580065475899343094899110244259304375458112957350504352932504448063249751369327258628144331023884240372336424403577258877176064305232204289930049199584203901655669607835937746069075410955950978318205904180833999756585147169581321813724171510365115084819846068023955063628656798846906724706241250273012873497371967057910069346391434071091848189192199160537025525856126077217823985728510244683355997171589659675593881071894589174947947014085005036756287715235683422670968093587449785644706050724431967396936553677571597374278054681972138045313430839244591387986103917112742505218609228446486689457819000237259237812212691487954843001711981713142101228791840454651174680077987714101989645716760549519436740636149649669925110157195169648605278978540678556682858580410093817719926038710985761973443203655288366691395280867990431701553793567806488646739866792158497942727432384820902895779971370179006070107866240043362546413747089140575006483067646288603518773611985917827178608038791000288154482024267075007891404065061059892019585104020126619236423483856849094654605287263001002777523930396128151299477654395106419380582445907375096940010143429629216523570471102315692966629952952688644842888390134173619899047567475366906192259143206950464507643691560479318029490290802591977867673255329678792507485955334124464769019182207495423576701176031196560572227902631961090210905262691498453132057635017836292077402682191029093842236401950656541555243201856099220795143119526245061697959773496498522318415873114146340767106851627479152090862771350631078009192407262558492369901856912125458972323417665192249611700300432633280295592425281994126925860330141134301089165664052253076334207858364745943269371346273407376014560044082739195163721423983252715129770392239907779957943617339970528702115769529530902762453902686464192503722065311829450482667810440281303302788670753762187940334115041613598623353895581497962176142614816218008181093888967335575479423510495535306162986745365690072199857457338144856154434131974271890561108619994902543902350164623374483760376038543796899545133450570642849234181892949243421567060696031896781203065442006124699751454156641317047433797388150510855285952272841056007705604474878528184291790201228693101884821514189677095807934704876741926219424593510974282496870896271811940016068666159420654969689575807720690876944199740456289975631967323847642340879108200084960665026682495996677799797817240773951309418257994599980887118188282063796738510594336468274256669207105962406001937476625320187223760153825233994294275993680410676039059481468883067416532599216317186121229267880977586983309915093644765528257419194754607740745300897542910333251611778990566254648240709271953755162200228860319793829245039589811652907097516680895070830258843285930568626528190714092470459356818028762834212419349107391261990542910220935636539715193086612045646425939486433641083026690797517193678123451036486960612890895488909024146953989563834127255517637774862033736397410037181832849802818629148966351666260878549411168247601451174521237338816597234099191897830528491088781577000529689102735070786133093870238646185253664937030735309072563712119203763598540683673597513564362866782944004914977315570471143354493439932320142581505129321827157885613394036236385742136305150596521874772209588088197714962389116420496661714271755684302358568663746451820341974741910956290339256431980544235062867315188052400011095048252335345420036338231896342051735475910741054380605262189326606802040094630061574161564913374600666429882823549736951119305188899332781757543147258722389299108846999763687232615771341969118999284130349067158924079390818639653014115124663091996214378248205093830294188378398189330960393655818773980779747939342631209524212002160226473641436466953118236622208208240467504852156843257430877857202896250864798734912983739526233343748149731415872192405334176177431008952804064039116850014068089510608921801566466046881913439852351908200384452126713028085993572023761870926954043503569822049264851947922612905046248578468741823763849643414868287195278213451494487475709255955138986015329493361017433650586830014906869790188180785843958478520140441214596222941467300468597181483731805126212920582705543594128304154830793671232165463188268796841593359533726620615920862820423717785266867114817502848563637637368495968092864018571018406956654568088594495873247405869162997139523238773008375174169913224898782025875452461043161665845268718354560941671172589699669394021063625806524768905666535848682920000685016990750666649778668033685684033964399335632980499827846490322656763869846315601185338357730831681703566203556009003758933063284395702111558681353881053666322484901317629673503253413974610298781517398060990929449347309757520644482432427400867545959822741961022226327094762992588686441188280804094880058983675407145879730033603622151241439613037953138851800366061710139040512304958105812088953708278826806804793466352170079364564793384230100162276265021987151650321290288093654593870120920313667057994314862893170588001407746450684724389841175033695872135774430660714657898512174891583215037879157027383377995946683957454300596987801497860933531527932175401690457318106172688044685455672272827453201320094442770323157860737947916099898913596163635267035198880340723541262832004914349758456952279637000907022040080772466071114564914463341917033759796972264617211478594086196102080963607188892837972528876927133947510412705898300141731503204503175771613346568645481021192286618664962469458020187581738704239671954104667478562086202137311543161050312494110039537148328933470749516168417882132395302893098804071312345248556689389872273475898829123441103429167608912640108660527294318069441279311543542627884022248820988717088670328474995914949737958289173290259948512442312073856433262871702417839393303898457311641785736365826837551645134225808873603916139062229310530664239731631648268842978725565345770155114655052940468703518307870984056948159051597306577832810706315883948714127239860556612526437487837801149806865284455337041167438797708155210208325408049191871031961279723331180268155565429550604831867810469149096127416584516977679327047295393424453037806568677727320646254153029367587642729971383288692214605353961773056344628246882579374810044206825999015178536655231655483629707823823113368352181888134371882431940818497907243647909278019976214124019963226016438963689178850056085957417690180716788858532010269029764054564966661189572832264053882691360904653331481153249635807373496717793714927192354887681376422609796331181967629771664274361731623368838513646951777385472413926106934231072602383977088021882043020642285346402203358570572290940693543826300257491844328312201782879778268903449626474377415352426165088939300244174770450938223762909580248918442007943152111286452604635975967834795156710523325089456190680350952892680400731660465951716744968883257263572460852731301005708699070930432960038987171306895502344709591903991356046629966459842004477232322748104584962871687411324526101517598684230523739631179090020029997540124375951476443914957903226807855718714327009527484686603877629924507065725146405303921762887951577144704725945347692680123270650586324959586450712072187728065639961546942417785828080351869503094518819715312130078580908710748590232843441463348576050538625772827320503127733131451924541759039312555832160116670897414919868127122507863471527506071335418602712437980173327296806113290157252545023275845949482397384816160185221212132745625193851690911689376015870794757358684507026906081481808741474436309145159314461552981111360625720395901246071541200314372688083923308513346150198538536409387386374605977472393643395306063173467432290271123476676751498966540464773880679373327350531072213033943726955834428832716546344564613195941844982885044020667038614471118030525542107589424828257684691340933669952340457337423292891394339569627471907036392506895177087565831207880179700498154976342733187434405178206370928783383303149769060856337047880785944433385966455471804767333927311931483451761123894951237911943647451760824259665566208260671031307771799218398019600458917040977870654307661605843728459599162094840773934853046852900896680395467644678621703818387044609269855671016238567513485588477516428571365085599720359426550832109470202685161053419054492486568841017915792628393278893752582591219013647726792679285859004251703297193839219714772659157154339064841978635194868472853357564810583910321989617590061556526664996845586806133018228650878615520088737757566156922985977494024354012197040839484382326693752722091679537081925775429022548090589662308358158214300139530502044152906949024011788172091924763095050924111567489393181456957664815250065181311235364104565012610446566965296016560507505194604937455594051759087006102763536762476788791819994329178181298737873525956276776765395402069734487518447561345422571582917326491817917533770355087004631675202867272185812479930171629068144028759712327798302812979569093656493955366654735409341445558644083266928024852249099669832034986084199771901988952614347693200919806827047533816201855673050228011010016365444098193582306779764430706221403873775140090829771623704885014769457429964559119071144703518807309885154428004744668298542424250448583469345296586687883887163234476676711975902434654515591512338128115561862060485371659004196390397804949956238655924405710915371936366442508214620104238366261407412667366935514599021556001900466900925890488464794896022866059899524669647910784832751249983255100417595685421187278297126194814958466289057940264860089538002615359731869753168105871426587073527691307469760144245207755950379402482910733038989979074128532950008963071443352892616834072457340845838928906331458752528088571170024602507255493696126223569224888099023031276185352040695240404753483256756268687993699869397216676604019185905582264270135287765762598455349162369596767745065078221921328899518860007887339220581334453845821861157479436286534950023522370003105291728076022192460954017977461619004358292646489333034771574160791093606369143695185195236279663887563962059783184983152711432074746355389638945284147090410441485103406765911947600576621592168257359728455797629065651321197643977295033907444015287273536157346997265769650826399781878601965288866265119227146077296244297725239437274854279882892667215944595024296690986401257739558321180629413442155306724821944308300193759203714242554026407483032585620958449779938887904461146670845415990276152457547463421125824008497171495669924223170883994807397955754668201448174904695033301082505739716730305787104726970651307827516323002365448437046713933811159340078054189193668122715334099572745359299647610651310120508840089243835268194185357307868976784214654249618389682056412025493557553518278423146555732601741481424425965518417308823101243857577107498138117457798606061045119585130417146014085424438030100909330165005684728752648263618395804003410088848353623088494707375835170457564321184218626310494788592726174627168830893879418084474715746274111913227046023935399089524646445511759885699646585623773473365457463895105258444329283282025782810537001844437430856425164182834271949717961049134331588664672264119266523084926198181704852393136256399387468462291423305922792563560710345121603947016834096969446538361488067324462291149525022523819828132247834016598925291354972075162637588616075707129056654953181116131503191164782571768842279439210435116819056728589857612486962013820106432990658854432296839083889454851303368121223161350831022592777014730704456378333889339444617263982394222922070563717226065517267000402636852397056208644139890867701819558682785432344487488049505950326597165473443132693149451145645403099944569357659727731206237825623864473475628713920321633743504255507497407735728696558210717244631513892399592653785155973775780035543393198288822109297631689317699176019465943136284836423941770138536176888748510697111740534341229436636282938009734043714122054801837618899217578998323994549808781853255889090422045873711636646044889280286423288472405677876330437148992180672352895888733315085732537490931391206896811933943218632367830688283409867411737550501242323751725909720123281214611476492474733894333231825939368248787235507746400855451713382588373424052687349334988189781103939462421705022969654960369685308073501705203972833982846882762987701434264492355934018577050818739053335692174032181811423365689951218513911948531698039587833625853947102008235006540127368914027436446671644749483578178383934264211107801180167315796631910304617858657044094396140039309806082923493199335444782321769589770701449338319197845668067607541133991757500196882136508695283414591133896645110197630065885182488703318663106510132628475062345253146582456438689632433635694631000579337804400527596844034837544026230557354593085582552222456032179251500727561405310623799415201750192655524042575493263548371887527245063635696507689502132480638076918986064281418580492651022125436893995849508968726888611814825739611027232788081453895562823822959619618058848053898131836246293318602987302997239855503719138522811263204221255845614829313416113385519948490989524259717774767883867091798927232152284974074786060362055187188421872370162332930937615658590599655122881678611294611185732575981896483041964647958963928341147458864874514698634722645028618968673793615839647668175609308605322990420749379873732282959164794879925420494150650398453773702549151168728540300330202652183365389916086045092818551724402257883965814616766775052817836136749693420861863602345205092952249627751154419860455742975763803398985431292796176915727606281654502950399440178988983431307707352672148639234004880950647641787554843596181028960123390145199281568226337828953763744251233463789382250508478061501235198934485949536961537945627528224798788049805986730402707923635705615573458844359203483725615498730567191308914699940803181382408763086066095645532155498912010903221976698873986147647912653638277749918342655844299300694250490704172234824892335680486548530707700609792427359810404235368449019460548876429463646647772497788238171439436480720532569484278554460778694975765398745969623912381046706051705149362873642397411605630222827170225254918740598496942815158050639428142755173162555186899396119094040838598683673828967136144194182127283145092948787741378678720453006829443819073955309330580793966916114350406410305385022823300583931091426709625608584060013801808219955322937284747580000556242471608146060021262745039496612067000980064144278458603761465171420923827699124204310495437272697938856349132232562291333911870764700685525527024139156969088071456494231429432674101543960033986572569037953853524517379652926330997617793080837089886260721332100549967949352927798750109673400108239206988422990838056637711488892447529018223132152828595138461501984434443332918138493723223679612221695830258246282335699954542816047165676131700155067188734999063817563296875608812398931650207570399170780108536966446368456139961191994828395172496057505949567052355847467650066510214562722248540850228355362519638828206414960419984219173554859157393606122105756688719109120482879187952845999941494285574476992472971540501553291533483885601574068420544051322081867432716068600825563370310393131045368051108941735901030317741653871179018005496123162996142774286234899160089016758770174672350877894070882455432787029893165998621932045601672336638360996177230579867714353505691554227122717689824596851981878172187598017695568254956607362196720474966290782581836942522743683287916320953509420905700403584486600114768853783066964055790121457274736787855406203192237261640507858027078985735132998117750296555557601692642523385585413818168095864430427738409004069143616268283037039509100576760934837220567472184854051674062590243486502312070528749595006525317960696385861277952004640143856987791958233574684217891666888134880564731957926991672363919274838337902651517510257060609470399049742052304953476753926465656903105815690542380191099236008687376804136452607951174256379997059753679829449254276455084267824468869093633878314840479167880437820502013545130764932403644518511465983600015285382854986158949665773832613861306433654063180669344446990372016365234279100229098767971443262067805831558138869875026175401647854309025814671262529574688571607766469925541451245194298127274089988076282596317158901622764572765102034000242933222484337687974300362528922901089109588463483322012044259365029493426547461241441169144340362365184115724331222393484365319398126040390431871092606172446387357439133805627012783272306342727847079687163251523503469461188493790121196627266043465092407306258748173342803467519062567653517293546392861774920238002513648862545835401529747858294577621906530269170763759598310041740605638278808529519606698908559330509835201842691480058777952870495529898550490981579010188888283270846629318165644672534548585402341817698031094186091234679002057880730117070133766272312691560423763126196198477438029327793130149318073714343189476954385413655869467198268042468905916066804207426903428162108953809858458598498764137702132556876209502942645148549190119750848925304388546581746364665269571150823362804388362302736444368881789029438666351121250365938467917334288251395679835155031675989259330735885950548028931148002826498516685262681867821482328013838097331870667265792583611587181819726319479934867120374922194513060352977366093192603987420202256371127575653154486008261252662279625253141335021231185880900659557753291702853425994818794309695147339137440301983725360440140732164772094468142270795106084310063558443252930771328966949787099281715174250550689895069827645139993609261540966696028213129758488991706163098906877801473615629413994091222369495023807403192457302182123325728104650924853332978259150397675890125702926695548010823248760249220842198913040712896997044203769863445652018378178567845093881845333015492077496228753776300848449618232651944960757445285550936831930179612019145831631867331928865547883615542898548989011932026072327980516852485166853719673120776967150558747179602375354282623035546932124912179060292257576045779634818547135717930356380445745469853312284632718990963409595697522074366657228314603384370722985822541189634406807339717608528803251511747427515146701128725042195172618965387466647589288793781693882947403178747992219127342489143861528824231845654831780444636528025960025322448057575970412952866550782540675934485403144687386915267386661154497328402688894136971341975637271940993365736852863795209083327422890235521305278951688813362147705802110289987216351644002937374886243549482732472502910501245250595771969236089458887075480346287725882108704362184069153025116833845137204158663715922604371196344829381502518739417617017016633325523181792641868979104223340595857677305440569660544873725406733054872992604906493178845574991016575194977766165631098323956126998154882291120765597968055709587415913295324745873101662732021109038921349358754065380678353741678906016620006247569080670948428047281393295491190981854265137003445815195473321450672499933289303514620439703942697144194887600858575100849436799906409728547367306854717645951881501873401408021396484821490380222496445596605506103431346639030917025607205263157645161123114384894188863941440820527340105265938073753406042029143329599195883058645736937811557555449444268653999584826404824465804681261370271443027582512544465252982060099264900064996826552376040497480831352041324959104999815048387888771976732126129632563880878046326118023785025366457208779642816910512403830198252739591456633814223711706380083076285753653406412940428002934486341057988633945801633790858631061814335567868110098807339971372062238173154738085184740436740893362252183651101919276607003379056174682515621805770024980187646182396323188721010714808984521124216928030134886476624503892771633647502091149347648590355930535275399456268503019673892976176845499157323626053862759048620569523514321169375326239122833041182467405360147108330909616173560654150001245428668182445525827226574745733406006808078853487026423801725560051564410025025839282465943541616637081060433703705452453760966239123925366832692220246248765149813225929345478541830282447501025873035637490257187589239950914017241773190848583065710757796046446725064159883519412612956905334840708052715508515467519284073097102942942374163803171344812711792027318798717206112867086221216279483483997122778054275486707097689303687906606515311378443153021448739801522355482203945508904559400997002848424234136858184990809107473931653630592038116377068479702300368182279867284230524525013919677340604318948953869171172567640276172179908168609224066226211531914269851258479929803290025965732734422706206365114132850791179915096598983841662278040146369561635855119980421009587648265258987606013352854004501841583345339852644366729657370164593536096922560222883267850877851910844259877474543038308781421105225195484896134014119213155462661614999957645163519350583129245584959763949233154744429677129246694048900702428010112063302181706644896929523125787263149837275764803443764242543082557379717952343203947015196252141530684294913987456036183590040046541291679564753634798866050322297963762303210752206353714075434378190699024816114679753200452312894276240773847306341086475856180554621727873416213566104182444028417992339365558633930227357648329462814792874163416098625669032972012491567658899602398414310262962701956961830065997899014540936052659407800626105809255534859388955398615002693402561266467175486933535698887340958656141372788343457055850846549925015757625005442247951232869115760192324554707529323609724711471970310425447761946481710616880962002764864458502143202493465039047327668128452420125274443735692530629431058723252321932781786460760821879773375529164612586446890834431107109093625395019487263939059905247892827862751821473497200306511403675083002889703162720980803396007041828935298141049521327138439762359583340897851751319752453384656337626593036686550739177207060799878762688619635461377124530366108432214024472773224725758959086737288662063944748949725140054628824563155482239311701569474189032538198625163609036582735150154675078527564572370649758873342380723826002003643083257199817891080729313066558524497621009130275754595671608964045162407494870808255409665901122455681753102545178419861503412723094544392904867195758930045102335730378767808529407497165968346393466398350306703714198914315791717551042948622272491582796023540094021286016235573188624035549297745742799065421470610163822653697384221269765010374408852319698724451361320875248889338965750331888323819739038901028401535458254828173552611240323249565706914679130975326632064695272354124140661298927163454484778209193849655026291774768755204830400201709759653866838025229115378981214842857886082962047570893372104172010294777806430922322291082128534659810297818653318284301115297108822906196017914605410680014108871216414145282628021166682597138014605209868576071579383881181302102958474329798985453113698632945319696185875984740201738800425446858430425281407170012209271406485467194318415522880108398042854464961864444969836929383408607035703073188314064508446200662833705956751191844456544310215254441809559023418276143137075521252721175072428358721881167216513012458482374357701418529227407927637343402173263265771551763739407662852101296383324699999863293956814023246068638534011410951052579634061313360775304233549543356730856813765976159125261322344046003190937583813445012939059175561836041091116456022284723360496829077464174009562638585919519114335508833925286990384124951178378432904135148578588502923987987567059006615317877568405633361947821530452357050097691827583566808598978692019101204347217653691691034317612233725842912553672481157844084772859068404859595459903991101307370315450894464784824637831514133270372299442664094317095289778066132453559057715870028497262023484800933813043638397968646666029088716426703854447519588225860214865000197653946013008164155947819292481091191829113466682755493713630276619925280569728232733560215234551864661414358473557742922548128065924872252811863798220282354901051214950789456009438118180346868882640798286785511421227398460232717822481189952147890338401981951768422804933955909378311653269390945654927320814576962508680374158457713579819339813089773832095020711006967280647466293142010249687820453426109546270744847113726195087102900094909821669161049239256627979622746314800197772829013400103404695810480196671624900014676730965013904000491163088754888789358536712714885797536089883879219819280601689888666158658688375282154668398298276990205368888653529558714762537525672645589997415251345897200099053745081312280018674176726624833224231718091535113894939969325378366112894075116678570670745415243545676964066177870829000661328417261560861771460778334293657438149450314696465634292391317787703543612088976697819874491957932060353656760965633586627891141491326749767997121075087830620459585259444876184816128891141445792839147431801588423894442504880879164406927834562808826861332549084174376983805445908894805054906499864997891554061463783543816959879866479272550535768850157005276063136271094961948631184416240965955498554156840034363781358234734832870469561775604717866599143264979619314483658959202721605479490275308280887405874888486364243019113735197254195944916594229377033165261398781499453328115907456370336652624338911305318202931920169759856721150997576777065146830568893120687560496267563504809670549579259151459757446938996814909933720710928732201812202023570749759475535703625523106117491153389951658980217807223705779383306298949267519363115216172028230250188197759212209266252677872873551004401568294786432437580880133761016831722624640666239996507715448019844717094720980846757615141219296210155631264979817729144384416032132702554953476652051246064390213139472456200159199719619668494848296323276003874161809927087989197971943772943013998242570802156209143566269891654000341402478116368152086214341321995519936016327551721087714475539435696805981123481343628944156068267224428015105826561310020455024827554158917653346550771093791005994082485850310739109560684937875339721648702985674105208023121193677614635626038436541771079443635151878781401468063738116859540530627789045282236663441025252412048345744025398495850302076177421303296786952715621014172240654110102441660662010023976891718989513348850701241293846813107897316316615418598096358941284324641228795195614948548559821354876230108565529041330403284309676726152118993572527687912871511077770387939737969873292208080784589589647477373253818517403571076496373048385335845396747436016027847384288996670125148758067815024498149664961923102412865307456693291880017910802773963369503392403339385367930856402420332854900686160464257072293108678859245172486268435459588310794594443572150835856923377707860148414765779603748127571639408821794955176742912362467186137880689800581471139020635112043073391267434746670065769856512192242476072017367442739559415604381087737562230858863897346422979875485347780170316322890293013023729469170301993378543652395753453684960082278779841478076246900606907448299838731361640280881135453294251397937870068562023715006392535075044724450266335780688640758587833567214795982113607730524154425115594930452169801009687192566654608098584385757158212769320284038289474904593053381264156534913091191934698188091324252689991422274835373542646820372236326550797870097032364947514681981940693827197836481789222900474957216673729554079708357050326643506718423768554253943413649502285174269189215232902563026858602737930251038639702842711024905959893525443587651235363133277979931238852635204325691120759309870914680375200781136422398111119811514168076236639225495403442447670662755058817146604642818664775204139186446204598105111948976470020415687665616010560142649658262840056010937201659524313127973005486034649946865797515219019381346830197856334596213527296993347258703222054898144572507083358963941366861445955795262388824902324708871421891620418028282168333613757265128006356021876599798771869135046577771466741237484441723045434467261477118634658113774335194534320156445447859777491327679583817074600548282284800967250118064491420516624850955892509805337669321404276881478025798014519011257072263152234166818291739172668428110283032017983057506843026477990879728333988971430139991791988376952085657048358522964225349392632897292385486366079423384833172819790554764259736682945477111351178273456586960744789771706220287221484132673461007187552979528912779567092475684793978220223754270794083059150315987795116009760115579918925826610269070902346821727078363036415586227867473217964688194673892383740235521885337727041533618986019873438522109284146504423445883042057855300201190340640152195502931336589641433382730723433361840660136742131302289645386802876855533345292315722979631949763503429136117877370632682594459391961888164809804093179644871573478464782604431416035500695899650808300506741503444661106777095224609748692159630791042827061933269133490188640749643118365650308773970845796184793721248484406077485530269027893507390749103328053038577689416687490325565334551743090783808267172676244334983012121431385657179414429382335735041005561379658360144982839565911157020938759107945771535603039985397392771255775285040708591293725736832657975289493173724509753056386094924729921911863935017358443080595634052238958633572616076810894314998219473200259955737960171937192184111958670278784862890543479711852328766616554064849032436962961858179963981626841435250428450168224033900076062440988111589818443746010881709232763860217335862595849532814684409774865680425010178878158621893481767819139178605196133607151172446060638508153730834711588136812439600910547443363635555333718203223274973147848631609629846509345438523929974964830620022316101303620926779901067897521962705996433414288180368708321693292126052944978120041928940954693272266998089227773031913108040161327402627074674683918466860122328848292852746911369965445535201911365483898374331189654945689280695177417022172205678640864395397681884161233848997171961953309881333379313246641535095976958080212583459104219465027534750562985619653418372013314059852724977179340530383405229343716467993340239295690956223905462274091940621141909966306488747177776464945021728444038872837002148302614442158364410930132921981765155764079689417385787491661835255380583955472451591873496340078593012674524025500944292648732831258807120261576696701384603130783416566785002301151710159863232832953057674420492973942386025451992235015879230658062259655330369414252992626938597522434348691390187169836379339587434756048881847366076482177344595347396296066812470289358541820542878376282336338161803384750115365125877253879415557071333070357390831707555756734766029290154639781032340127062161902612534218075437625249461677437785886361504599670714125910716156282726625817335127857153272886337865897536237981251541816437423028093976052330697839248666875471631863818364356445986575729209970452954382879706336002682892173044569295900717371057553528682461061235477294721389497071568345558997510414828084286707447812906239020350244140168570031753189415901914769942583522238082000576810684746258620644328078335658466013234886874217125898394753342933275614272970753837673941503896732674824129973636261233856764936885675017498563278752210407426741318007232865700503801124871305490735365441311142774527966891736680986337572897278944218421359998129033576690150342893128831857305965049094059209142800409534607231800078672770920891027962800585146489617072206415895473959977576171114113214542586645154571331238983122915501660585326060790576639741488685741558594182414218234784057622655788616984439732708162442718735416126385752437877778231187257382755296315223455447149059238130287264145267009817642011636305376178419025860635159217121174577285824210238406241543686414348970798667455747742269833877882484210167216876571261399147674357618114620553422830424443713421708250264756453870968127140901518833136064255898033023699446668525608044671442084114733698755582812336235084240994404458995468037195919380569411124716295433485366855492072963692935327290484016085589913818181740433827794529941399240090440635738876697094238289719772074260354188849982899219008646283538287089839981324375697727587873842351633242668344287673692250675204467969170313040084369826464567153158753516277506778616355758781557850208072419080749854827862280652947828277174017803698340283107321313698192718879665713768082298740671026340606827389231430402812844351504613644187082980904974128395581647735229247325851128986257258819520483619241196396992493959199154732409886519380274404170488257156811682067866385222581024105902002006090796460027346547969825509923894521434760469694753850927001164636689631331923709030796518958038259259334692831586811104746865617839052047657719199857067416925039702371481677848110110567518877707437596770820693115073509374478755432425852906509450199327537384121463220624085827961182928068132420175404370087913397750054371876156980960667378637551686079968344174737699839429760930971946675327438930069740731351963812457560376394675569934319666371196289648601603536658139270000581711480198646556521321533525183241741047025665277101177643241157221298202539481877742001457507030742777031548543033994426224777674376052225950969475306924407310936819689581130850613949020497048840903223688135603963292000300881136547205749458765967418069051389035869533805911890104923686828310045123325252184858586538808391351226331795329827293345688038108530021842785993539941726878202081565493424914116447286649335917013564220144077877971155490298364957253890462427080230634194213583124174943007646426543935749005231492135303435930205137115224469432838056380963771531354336643328749374233642169605991203597264395378014358110862454547389266561637110227869788809324569434086044486524259265382692386961612512581234845395028895762104298970877359724434529077160784356318167393406153166880436144717766607925616899767276888739045224488560055465198959978000666074772022839025239026144405904971839013706121277750553579982277933252898831961468601414531857482171154329522602524886461160283739845697313503639709959086633824781517323447669130615420226521492983907778950318983410907554435755028322286795187251666751666904959713817527515491827479790150007135862784817468765029416809219669945830223353237894843589386206472984111412560641181487946006747020089895502320197243047795550691042814532565452055858415051933102209556999115441268366884662024573304374611244695321314403941150706413729411354036994202406519406608782618730436741390322092381651224078636655119147365827530701851447659112636156642450413324056545205676875471326552890292247059003157514485417155386470937565382259397716787355271777017038949465981797994918391091747455494109608908345078130535640020452838878833982820809471518888051654178529575847207735666955026098498648918057444754069999484399504331580868139855774241295335158946158420143606345814281066479016204210123309317500462345961967846999924460459617997451149439529449025002227972257839009188877289448377099725818806406585223914214460388829890662495721012953857672101280250828420044461611196989240816248765563010085313456107620575754794825422490958601720350155564794020367388244154673509860746468164759442474091364772885858658289021687662377601707467905232386224444659506413956379081803098682326178322490946721647946730443118887350051275928287477337562642425231312596439533485493577783203949168100591815122982901709929711064628071484992607246680737626460310740259572221621261672785688413624661137928288352927170768613473788381162114960837042337526596335575227339254273086642428533318981769474284102008041177478887057649858611058882905354504350037052470314038181582177963183478395445143909142084877123976588060442948910082753454841332816065300909992729531745307743287868832002042274687460658801039902565030567602920385576011936062692292162795558456905098102958626517213700393476785943975979089564891696148988517379704984059419221085831705388808359147857566280370434876652659130378742057549967996367103294764228269496796776751579032277489628733797714464670226622631198221121879367381875049698633450124443988836654367257908481605575544595515454423309921003760352635696080137525600646040125400182232605675900678808525405113484325477836396738235810930357389021393449052600948097092174514186366700493417983490018918769844293639763307189052324325155624985038346363984633181361318274169622236985521126930861746016638092252412841982747097235361887069788958814318294902052791767192927621438716258419466407127241211603065989341917234184560989617101123538184867949200565103650439766109962399872967777536032163350157100179293369363239499689602571542781286349268777055755818361158907185070945066330820165479132050088383270734976495347260218811971546887257169587227483224435151590050044334843722564803311556225857046120584481849771589073581257299231227316374235900062721498166327075830507696824140903376458256981681307972213926857315164528141439538959964605715378686776746600772986209962350021382112583626023577740503246436198625103701407211047271715666002197431153978821303238972577954791499217428146129111363029970860618196393771326392645391664562563415561279921999930554455661447295686664541951115305739372749035576474973809018709463548904707795777776009319523579980823560276106508520058593373613317232400149386502623965775836505396831858204541430380985142271014574368211644656140388260272410621916580636837096130087454965330993462420166639930031139603066932180286898268551138035846681764174139057740513051702119044874856793648044296466993151150743849966508612131958395304486034939944319014816380594269552281905038528396479721920470383468508491781323751420409244982315178636076946971219686993029194578013569315519890212433988577872250198188310718558994518043830532630875463101149084254116648147785999630305397069360357755134826488042669887758335502549231079519543474796916965781235482237039308039327656452322754990732864980226373398288390497778591255189697513798651191687178067641098923660881775459642014751579820281864127359716893566973167110968970673622864352276411783984484254957206217171960709071789040140269200737500914450878129307655626276662102276305167258511977555635431336292125947340472141506108881294668269792549986517846368476251501476073466284484420084602739402691869353208526033222032990774040281907720468914462288196568563470455864201072294373175475274368459685193911804841645568546566146500747378557689265542835295378519338870011830982014363376293603373136582290116922268833768649557905536178560996057483669153296021211236891059365204164500472666139063456580864331206342387755634603278427446095777246162504796668988993619147685225084298279403870590138020421930257576066636414062559747980366696694433680005794802547492542343101232591843597586664601885569704707399699417213753310220496927488107487064738623345783514974381448091545977817699089799685920564212542188193952750477130275954272880037351548449049928059464784510329102521645846992912172495911121645103074445331259477175891891284357205705324706561101992648738244860971459563551519915952188469719787588883943766958902807671815143722850842400915244208079671809281886356038207960554189548104143320073963287626297541385220319946105400353174050549655896087402257856374992247806537429414659906338650317078262909320554211596564932532314457493500210180369386808834729001806620693481248602514762703500492592319300119293333069269630964098149965876838605497388328185887020837678233866978447883596144904813862728458265528758338380536125911922565635136258277196562386066469289869981286792335224821385096265816014766088550286343927982883357110985123529209557730528345394878760539895722055586863746642503105428138706195407974538956730284863270762129347478669353683941848830530683290762831631720090765249438641173479149184851598277128549273574546733275440080548214348886106914092955285668998112646572765421596040941763174893267562367235368068110446792346157597936637028604643059378818057986169064123699479673599313603805214931637126302589925437662115247341013838319783126850200045535404687078676731293081591098543645734121962059238670877991932419472996979604883610041218100335836704199995856099224365931037747368649325333535103932586826914439544964167475302370807444634831890769203567283820618970413183733018989214038827332251051486704328487268557565569449002909091307015204439171484914655889029793700190837001836513607719662234057186104362967247811020176000832003809945777710701312027879458746368389263072725154312680111553872946970226042187854263137774949640728480158111223824035154558962128160689389268472145233133625900475999123007187652929175335972342799398870142055888712993524274366783630304580189454635982618049704003746042656409704622548031784420306109416829046344465220414368532526700312339641576653115415778487224215745229218333021894362483065240122320543732516154533710690454443230516859137150835705648339890635419829565574861299423181481994132101343588579316715146229757612959164721583669279267245424066933944717550192110954902192698701691874287011500683955552170137987570510741594188473922558355841461216896092707269831757334973818958471310794945179824494873236531359400989213860528830758377017474740618020623344107214624452211461544412501056642671995931709489236035885017029857190499152725267873883115112383287228988243306646370478380137524702334263775634546364287511503843282570013650652340166582438000725074997304853432013969674203881593817850034524346476219130910360289794022560685082116303967560173980352426625449341939318020306103811073560839703333836399044353952862427202996054342588422690717308671476222257143113074121160947079325045080699209907486249472114656822595757722923877181091311920592230449334794995933773703903258428011345404628852315712989382188108873302153921803390578923203248084435482558267046261863975522665647245830637949857700357650920946890570581587879102958229916576629409302659825464608362224471980240997765964418775448494160428278743030160072496905252990116873660641375926982308163387454258184831593389101984452335231491826594101665456389760409067289345153288119184420526263767337168587972914859567205321088824986474572711265012855455267213318485751305521720015861751234172470557476317558249945540236513640129084451016818608152545066003712859223784039863862640828626549638603373948309399995940207793576658921381215090634199874051850764075046081901583132925047039620031464667080710980752892148031256805171582442823769995901471319876103624251087320665253406519640707579992511928275065155521763900856520210317376948299310512153438440165882419979671905287921680233988071348033725163121601070503008515132466871106412421304481473709564746891233073571037268610401658371600456316262325657082620431893599193721943549654959737540223350484659564417704245809011738088907421067826979014877120701176843406757395275331406978956692492332055291694063273594584086457149421427878087286542476950078305952272676193211091521042148475078505003933688782667744987044617099931692448872311997680990886650533610737594813598356702350570590166889129847700135333047743407859590726392038203239809844028003470860505539801379897335200376621146262137879425280863963092077156789954063217471896983142355013035230119517524504419348772519734535753494351886930750005643600017428535800939460458943392938958866178992530170838224934489863513229725168263110514767708028510213968221259384279930223205919826106142490616009367054608851493607622258054215467113582947179341171746386994201426513694941866213868357050303266662552307462569745233183439169853341652135027361753262869529526565420538764475916957797105424762161247641567474532575508349290239570882556666411399582369688420584165354557752321965170942381874594460145757892213397266323349522017647162375067879466508020355240601333963497030306815486240673309075202058903866343301613567778643540802766269420268966618251973347610996289825716384104095960465841843024663469191681161738085415179784784078455316035994123180046467095636779799037082592339287083664659133260370718655866038816400490515090689158289718558961302197558135964512864806045670398119418633141257532179601692854290524697105420085982406798726357528867374040725982983829916051917948849689798411225956272219362381423093893039168981969429889803242965516992047040111358902554178864023392303429501627944095395415609269450674378639606016673279254065362073887274036339767359822975575996608151519091863710741183953042640231340419468773572980613549081143656492660961319741541547343719490272025928759263468108314136621024474648398292032014637983505485047587567510514206725069823439925519415111607508420423704482397825564273864261482315280420104988982607194954164551729874249929603766978997158881282705920118839384166781629998385985689646013888708227967920998221751199411845898789082297862036989340084484273394525046831041567696699003787260883477619394295643756027513826651426138250682903361649250299673353776918634912128030513056376990700564507727478748821351095100030793217244398587232640958034270011016745833203796173857731932131925252096507593883895724559175176131612862170137411189833411545198289308552489841166734154053459434574003164858610038318065971108861971927063827846955914103082744625369812038304646048021185450471968660823449636981928217711369005189291826090365382085131685795057448568920222646351772076035673199717144853984443856253719838133284059749216880017326760040183363651539741553708180510459781125025160992175921033370014843135240663003034701265920226239459733907249852193673953840371741202724631519030709835306220604420849121282097511620675616142630008518942642371093059952455246535025990597121999670501640111198190499833005353293025760788862538315764543230496223122461955500989724288866670789022796854214559008003076751558588249313638951359978201455393565549925663812482800447858797752348120580430834420892663752716783770070785816768501563617129444070195668180284898829204188144025851089397243404212566162117498115279964296415448869997456937771728297603264980850279617600636244988013236227567663319038796430997642553055509907378085432374093795030238487714144099257552547614152251751367145773222818237389230325305581902244173793875677210662846381069165869809754781303228044307985580759904398108627061735727811479031468430203202156255232195164413582712601769783615132136841529811360969916322836120875179850449888761453491689631093961557935696856267308389611202794156312827726265231619297629262518689541508104321937936741184496819142191456358482918954262989622709446945044198811923631925312588943250614684495084258621847794146830355381539982457120579283026479429755918379663497038457667408552507135822057798979807947427424849026991750822928342808012931554557764584515091861313628460158966934530124310840594926921083986813350060042353359167168649668018807339534246070769660886148956460243523796297072322416005417362854333942605791421721811542140478809920136000714850427454469741536714162519965812027235753371619726180435835293316155024369499826677269890019497428301286548085987425773109870212020130880158349803946604479120048422344672532472577733643556090096370485115410975660789415074204111473012594578892964756580623051272805361695878896087168180954308078435825868521533773636339418853003066795445650359875701054184683356024487100998935601453629353091513672836872155077874942918622693439922758565365643528714934136168541970445511318351787403322810071168851515143288762490943062166411320321422942125140301329208679813085466967896430445159789847911040318874952246608878221089307199333546779423120361848387219124583210206269692550007512935624464050653888983520764285399091203384973872846165053415738928814828667770664208930137205115345982437588970414855905993364003402300989953365275257553878561692266771063669897307002144591626287524269587670564794349753323540739291538838889206478824530392447616167073768130822399337805778627056599808086190626407628339042144557388563616401076531003722717320924711149988298969778053441610705015118063076960273114126957083481777604818501105089397885438164592387669525092042049086665166791521786147353049588045268737994605825223679644557395536495434135288048530108184932951066325549131624871769643100041103493204449620310565857154268224214906889351774129001616766769252231940023990938104617634684320690682708493135602686230200737908007502475496996264430305065811029147637658144677386684595735336695527733216541453803513759745987252807923369216968817091647799020660989621778164607043172123392796879650865604561136181987269545722155173477086691782172110217088562223787394806386292657849829387644407731241985302761745694907537989663570890675292797321996847754207611991377870484661724069969479563940100461100616653054168748226975257352934484111472856583144601716272522274887970668086549141646904912670164551789754300037209463985149965240455515326674037675562239163134648106322019957297350612694102271350726988763012035762986265517951378983804305195199915076401938567331364989791921071754165756664735764870267129181332765993688537424586470468585532390987729872755124662967598174912287589257785171545057568687116692428877191436014563533202783477468941184834181278515545536161481372742663625937303626828427655880037719830537723365649314662443038641775078021090698722261514952577916168165187167926337578434262945955507377673546977198697025532350778349339100920057571642793024066932168751577769066656306070144792243860455553117636851304409005796208646744620384435825211335915566444860791076151935201645194615588693444179675770464465422933651897905740299442375941725034426810943907773687314629091134332356737917667377411717675624318574765047368815294454421262546330225170969149283200540721310491295123827188620386520767253219755650902122190461673046339626722509650534075898642702323487617343410643450142166276077677755074416274093744117923228316918734060654660160572374210550408337898843990455520868965469289242550056454150847887129131012611555698546248061505539108533419876566575791296849463875072567277447459489201283974914176405198531786701771873752040807392042449706296181334596622373231604918554161182918537008342353977936266994184185748072814165690866749135345753745021254115925673244808359372533744611801904952701073626138368400322401653129571708896515224623971458199287358473681491974069845008434119429651437009521037388084475955040867769614954665186081520922704333633142703651818160234512240442447806059373650671096806024056897700875755407542384678235906810031906222227039644501826533692712667851938379568020451364869538967152576790295039786491212341016808358222759031481784037113737894589097466595816114198977537949637279246702539421331709941898506063000289415106296602045069452663657036299174460319549789591833685513785580009989301766182308107006735761645008454492151983253809837540314565836709743702224866986237693432963164636026029033437702343586864426952763494583631312867755732260575582782391561086096393582663788968387881894199311552803524925972888754951384272344066247257997312402549252314968448247427211726062769593231623678254355065707731174454487299764737365646686752819958283955411346283682746776343363566622084230251101346141255037588653339630683305307478170646337320348074054662546117184367295122467350746483260701200371104060940393137882515283547608499191199850926572640420744839432295144497999919028767170985044987041512927384498868422137831816742410566380220973280218083102549114007294744387743168023725403820926362975196288858033257300844614014671565207197653570225582604962476863164054630176640204169181711360161811277206701400227017415030026497820702849020877953830444652350171069966335132179175389532453762172807905578020055030258634129479835356255758165190530730433842653581981795294037038810566774577053481759933970149198268053360787740478823189937466908299335589349127625055338111672772979660957666665807585747732566355443051684640053289044917050718467750444950553314926482579772815852248981234451398750148171164204772715121761042667828403879886077742978111183382528498219678639413896939638778013601904592582809604166985203170661188764180877091353541037667847696049239128083313589714780274816484054604933277824302194937913809539917529254929654849564715242827915705993770525316262119712055283156497217096037471475237023937521709758589620933134672343507718282865060820334302958993908519632783636176811740037256908259664900660052443956246284361240919189439511745684749128311456182341404045485516926030671431314476819650131910671885998194221369133042504129441911902374130627955557201099095452360704116788835572753874536058129792395150849445329162527448447786451941890044915252073395424363047520417395629939104203029115817932641143680873522399735870015370048629328100152541389908012379742084117480249811356846377767613263441989835129843461303526047374869133405592357864835302201414038870316189448371429764205170784361102627185959252029832596162144581675294020408127653141357383909903637213840565493143210292226326328752436580607418619904156715789498092730708634906274950544781932451257620987826786936850685286901378544902740708988463979633405403980405944760760389480957677936923557439733520289625113934849729640325921853983189074957524636898183204923302680239054770517856866199604755439893888456420789202688507207703156397302697800245635329917878046992234313505713242012229860999943710840232633439887508189681620801556241112485949075526961997528535185236763175677049310473232043365201740453861952545078740580553230361988600211727929879009965936495585960734866334123413906442620242325110067090205886601049803927077685784949441217737581455384213229377620685458112465434577425021177905245105349016446383222020196031575808820256279398781717219380259325830429988347422038036086555763147089392135910542114265554348426486694641578652365405290971873415101413238201292224838003328053909495902974923556121265903905736401168536712839568760412356568465375537290818345775974974376483395621001645468563390949875357847986506842272177423242925515128487728095027966708699095468618168962210451346904497174184928628286465152161515898067288158586853647075972974077565696209865268914762437541078968433211376209337129392962509614712238451477780361758161011564699675944229362327122493151196110942423561061186369104606853016908809262791151741821372663857221058787225307250226986402339571612751944154027994129661296811251618786792854045355755048905141948650726012732750951310085810239867409152047202102404522425773817224454096203122576840134155519284453249434433473211227964924038396981282904259458523305299210492277364264552710787123047113397781173390794363903988750072397915114758184038797194378679632286112310913997906141650347500769134437538375792414815115365428648952277856163379715615615504166620693432996325819329753971163622903936700870699577947940529742804991817585448884912030838309310099791576196675910499373776427119600206497098027915018003535139132049733351235995052713571585376242574970091474085060058654499788935765875780345213462828180068977836113103366170960520858530564896934736256058289287457814613536460355401695717313067534657008477150011997804847692385482774665797347132464095128075943753815155950018223225941853621201069048060020538775336495136546412755220373863388682243856119517710800120374756227834734601174303974083610804599294873769047622767165326693949857932109293738766416299598591421173979478671462158114797336170711175688408167999383636010944164849310826108616190142736612861622379326826622146430160753861768107946860805098019326037855327916370306513852775451077815843547958728019946797100158852178223474724874490041900242630911670042068879342606579417468980074484676917010619584163687680571280121026616567554744756070442641775406874893474418450084254757447176053353838534557334666540943598796797094099790865600108410385194421233672868785463210901545584331705688748756622668424433940847610674700276727271509029127775010881450821218992136048971480449097294204853050053127616509212609984952816819379888559885113210725199371748522369072604473846641506375317657374393322371351647318768729235591731091002903390682558753565536330956173062453966636437251241368817457719812637900193169828941332092543297115835945090674568312646959767890859932404164944681239648172401470186647838680269278222732724853981786036595213741757054062318861746465177965151850853884199764561718970938969857049338976859882923569014825544409318667616274788415523191727241423352052987725620547180825512471499742587799127314750693066931069286215283159340003477684661786853381752511267056787766501380813262922913560083911372275046597618031997954707882757187863221173353592274446089994438230028998993798153784840596683191616336576698338005005042597284502954739985210499889763012907064540441079851903924126459115360904376061850390036236052816637395971801344893117099749203411114736342553395065352951090877963331119506275815059940641893358372759326022714438888928825197012856001724670235859014722195107126085246121749848967334738822725022649446544577087943203692311949386957931667242125427934952303791652145790125460949053776660267918762005239868485614809870495616878725077850079020413919445561536000333191487531739096484212378776833074649463091597175398798721188213582297831842530718642514941846963303922411830906283963901581812509802077607168549341366765380603421876280970713966144571016576732962207458301464582361623519344559827319574473929700360430338785408771710057040615748544810416254689190523765303664673994606288232031048554019696009032994464694011319186064987071621124086569570151063471774579926977630293213220769790706553855183927313977691173211355882974076111252858434753396099627682827112266894528562016009160679586472102392687761179150311271253209509816787437622089829066410540375780074785396591976332450449981998139893424266658377553445411956728498133751988302006088692484792533209297963882260269352302758102003864417264964295484915436347606552509587265411963919138652143439064684696619095925344618176708465466524997056036784762208286303989330938432923031977197093531497724140821657551367954747520714280551274644168633490923826860350183329108296240903005940491323450377604322051923552705317497906081489681966637413162918410996269160669142215682096635765298344259058046086100469100358509246516415402958466639244829003604098669111731120369449665883456780373299658903407612834855138860072790282345093096865274340641494914685725439823836683877767601618345900772888201784778715279701814191355360688034972837258235347944069695893233853307000971768377631414047798435021727261770927728192288302294344092862135598665777294943760522645113588549228543916925866530699599669059493894231617280856062763651949061937227939305817549543014761539249951385129179886100177927681733347187669981944682366459305767871941548334871549001958148295119876400646096034901917356052050457889854455494749609312760120015560925823290227921329478764962509691901387205945806183113924168244839225620393817315340126215496324092259042052601068784907346690383495306575848330692942289245274401190529592800346797140277009460822011204543367141568855297912947145247341257549747772294446734167630789502950745895617132310203288900296424088756512033328667799066054167458345523014522925515103613338185573949200040002087224340001765522757516287329683539244864879107106355074283099826411722280510377474699620912682552575232253095582708186280914365364757454612841287779095344886278559241635262278983891570960600980082390923692454445884774706647907954017202399904504974783764305312723127800329765444972354680325066157453375198948847069702035285658317286707580614979032905369819671494390138307031046102223107749506410763160162024250688708964625788000654335624690328525668035341723473808246460756114308684102763726379750535836717641324872943622650805971738576238524989861169727965883519646889637267712097178834286502026493486439705213670164329096119498948646232098742235411254930519923870288444180001926419559544603803121184334946126324144185702959689767944636817340223571027167866551486321324654267528541570566698351683130879291914771215265364842690672273106604268322222759763113771411615557874299152876766071510382574353813878901249271554389419406782867319049053677366818611003184170351499799256933900739221865402417867225816445514290450675915007296474107262148295146583814921794567705930629203495777812681817600933165235022438685267064485471186264725050794973502359932834160120522595124935113388726119853633502855857143072861600879847840148326224480759774962538938272074238579391994254536506964610869175989168792850366770394387684759888735187092958127547074159005957651051205398721137810226351841235063179203652730535896477587686376002041480687632211496416947273815729265335686035355640748313515662989321097794051212717107245537719598238052394847004453308390824133837688439568411608256187488178162643444443507004740126140025283921034637336175186420804745086831254663568283726610743217119243060528635980469927196179679595285982571428074975344872858197146786171549747853700835403332320471193968092344147062597822257901223516559585179352704736471680630444286053614114696144990793681845972532355171000487130892470765065749100866582391745694782424178079583299533001628554917048524160820043065391732759736759856801645316548178827611067262847622107430311483610471075070324026504685222251777654303374430106722188907598105280859958278389609651094443834196083635903344972081592925619368324979793533325024685510009801465215753512844202908949187275457267171768566302721265579555638857263113903853324763598339115067653518261929021871918696963263155891602015282175442588016487963982012105249801372816921240397549953643464284952443027208951532523048272364964993957010413936340740527344443917272511127506085200249611228159221021805371857052605941146586586228322909983397973892929369341750889363056013796676733270235563861579737347091032027064831524863231977582636375000448737813733551116844971425090120059453584546127695047090787004878246332913358935572177759674681215614441327050766431216815757861787785543620172761274503181919037686250284618988196738134912849323264191110083610020323156034582226668171586656009944162713752612940085313101933908169532358825847053737834897586270390878579934823737166709593893917656265305687463321021271098069867467800238120694358040986228725792656945192537768953106069677299608712534929625446238579257723059846898169303041616571402072865425718505467003989505145719352113448581963159731180620033805622620353789551036280562772614812302694861501126389104640576468838307621750486683845853927526612656549800969403003000063849977040553380856543231115411380302639691811022936512137196149511913281581353255374381361063996637677830655223889285148445377774096858532866852424751252089305761210935008114686641935637704761648616962271491559612956083911945192230950277607982851030100531867666985632456926584367758489723615179729205843669244156570726008492570538006022035457187711820952644333904953738440052926513547087008519448438512251668073598416128044954678020995844469657651027477641354548996541151664807046814225927385016167687649443125366305874619677441377229944198631506314290987288301972627307703971134519268747595146292939845037859055283393545289621449720274100757098724408640639550862312135568923276773120658223509153517755152192565782063105733264806929856375958043633205788748295612005226714287808298106385752038456347094289773670909171635367939668140856170657119600860831805385450351162626563548992208293786408104496557563968450022442184498093091938658941840547824210682169299541297648953313047664490210257177401163390374877477280497387853998424167409179640148543629373202627373685011167853589673327881427407207003329865112727950952186903433391526416132105892376990373952219662219080509312300302724995950164704818436452715509073087698322689574382177712899845717007146384449689894858845958598751733307747272336420936057221213492264664541318968879474260155518383151828311416742866507282868962836676139690885216100864011425376594634277974342461323351443693332065166649004501303807179358158846236785016825332123422424431455816745705608034908198421179846209080799409487814451568779285328401535363084731328943518741204827093387853845988119256803249538632737738823466373066533218892103158660642803550073442412366210744148886613190599334237239450326641916918891712137397703410261565707586957913299927538486796269841105491104242876915252425382788027281171454254094965214171528891998248694632546284280551616449042784072236632964102732938989358981057084918333765516146056435433990205245972098589466889715521202315333063528268858232394231397843144913932850647746410474766815497933648851612640565746829345849808387997991315115609157571338759469940563970246390533031231166967194784306239336474249195977904702810107329855886159082944031392362960631317209373319103860701714598793441687890045785938259278322171594183812483473521988932464993291615700266288539250698036146744976907684177205834186402815081221853942150763053300453771578230201174246316401287237534647787332641780670377469339411108506718439234993139907394918942112052862313597957983508158080153522920432955174835538950334662085415057228134950801867192310998993015536151072701706822031285669524512725404832624771650173845499114144396822440217796972736122573227615938548502398398291711897825188149990689423014773862272560138360210870889388795928482525793162953280567401551919557763408909914582977833790008081151882981537096118254453961833776795615722938617351060641919210647364097477907501242341864293642495796484884294960162474755478966352492191515443987951703308704681508036027336773585071018227751263021014592390684164112479813346759437837615276283880770076161599582109346606446062722730155393326273140140049947174314589847571125627686334778664707720501145776788404977691928360382134833411539934841153903677830954409399732980985120639524415869678624887863492324582134066529001306629438970899980420619518690899635423799336190022292792943983632111538197691589059000906180170477184700672495071104453776486467265615843180455506064128195053420514204007863063781740549288149540832720735074991709973699254074294654114346050421266673459633721038962012873483636973417162470593167914024174490266830439253842306789320036885886284294456990008978299231977533594633429629783384371264352184777610014058307193977447501175274247856878819838508444638159143760424194711048784209328031851383533439828010224178401957214764689764472873420569849916530628802182436064146953153993047611306490781355593892590691048528749706960384766982078474114136492237806734509162867627357395098217218487443684848808477969135290601383199742041039308652370010401663457756609550312618032732647566263353419580317230570167103919988655979018945100226790196999375944925563424091666311982601119786621672145023599531090036534754407929721836118979750826170241290393886413916857211345111905876637935463884353995587856475783930134620021400724976435016701654151328886115601308885374251828627275179759617830489625187502115016808334469246074825691123397906091087116325045944712363448349603486508304678254028317036826882742847990283652792330926557418022847725409852616737611974291092153944796141849990655999696325568087584575184635456080923583015347200893896000220453885969432442808265084924696049595401731681055713898730542423551375864662474002839842739508295535709942164564971682721953897865357242129225081611370799676503484518139152355311455632466719700970420644523685101405383368171865190037151425419189119737481513340620061438164156699477556633516556565957425806259079712164938370147699034126679230278974514615942506412437237187394220650454580111887374106689417814412351955061942807783676363709501671474890791776732409328012813517395200488772213195866878475266408093137817147378872375578454425633529324033531350604276308982755460920870679200735456678250160545126267250917788593297938938311782998402529907487330916716860821970013619358895276186513138387701895706357429639476077952657419747883238670344331309597114566649932875694429207798581725350931343675519463029055859558299246445532350825074897987899628939526391709162334525852159955232570714843160244989729911196162264625969698021347864959009955678365691115698335703668395017368061511292417800059495144306745633175084252732836913112489114571002403870638164003809677296143416316343705904627331544829249180664675162557955939320633672584145342846312382624408365544692501429272022695648536288592160630880481187125377231925704877418765808322335110064471689092157566999024505472625242932157337595045941946526189933779020895525227483596003013971117793891443126569915514875205731066667473430594050421451184441752050903707219339239969681776826236955496149133228515903495773319677599636819880314367323340095646307934223482142835013261574764438401948293603435544037726922592941834957630331991981897097678369946732666844411761340320355989809269049143613289123939217640524185695594940572636980765600151284615055294839960937827376545625816549992854872405042382871074657339396867667965425533460711319672108962487690549827590953314933749287291877654835467938494762257283020362914729025530133667881950445759931415060272043517936746929338341844378729057918650367260489164446746581124542727881183395839074116782267316841409373867004617170557218525264225191943601598077185809676534657345465017198389341506465795933058403380543843082398004282292213201796201355995813296730718830215415968975455329795387491195020313094143811923081037421812366178496229973169610042439128102731198843831713001380388693797910819601614699612977905756348051180441682826146677076815168890881777778542538700772146929656660250892460843513652533382359274048977627764663218726657833107048386544901408395324339578508969552470114018272346703302566269588807412752064312720855853406370681496086947533483427430819575112275876211458213220350788693714449153761916704003945344252415387801058621041602960645195016540012851413207346019681415178271942418805754085490278438514003893185113463716137923739786316809437117597064300884373409355480365223214074790350940415380888668384681996208308099692028206279614894540117785864616138628382784864594156018586562133065637212345570592895980138949597379487344044900698729719738103594955275460026511097352069701715076200149840368019165322499837365663017417279536466172161821473201334851664302877026901616640547926476018206114259495138546907031590955457990933285203795126530007037447545921639006623326649861271470039177686695102498242716901501302644250137007398148036490079605732695565753173158718987482232816052388385185591438418954841084202051499523097071346580221774835423330657065976397059173655371203319572852312851492001696332012003877280506857543610583339810999957643361867475582676145567849897241826847660024716640746769802973062262534403055580763537440063881726573953378169898935924003806707578443551149409310382710971931019176980103177438727772217877120403311952772383438433314021406555280045268262176718529317489846043273311730061077189437711838525607941216545953570485420080011811172624766549526745928277549443341211356342498929345770951797443276665331993515172034314854934402909509160770056369024751770332523496246092521894128279110766531258708924811556924282126146463527518732232880639588414829990762891835257617278804280472332090820485519539311822247991070971483558129098488626761831849164718162233654544733125700397578556860467127812467581713398810746073374058604396673630357108105170079315824744773429871415169194710105931845961502688610322471086977355687489333459601986951547186678977691099536172954464592996220467846994977112669432903334990962816024343756432642621735111103786131047885838100460764004667701741024281997064499431398294765975200371418759719497480107267393007418248310565259592487660037880782660911214403758156011387923209492426608765760559001305924613043331766967040793123316248895930052689353517757634854360825970756141746791576184467513083713951956057856975912404281675540252441356925103802271041878683037104436032757818256443042171709870923370708161526040069654747611323292266815672505135179617526001639675636112982991631400848918683395464564231796407573722581701212263870216733052090256116202950187005750888664146638882388511758428220654946881622293464194265932355422572963478456461329881800794274364410021506724468491040757377109559821607614773737237543251907806045659962691035026614382439317126532477868059492091011171888726261666889948618937651164867248294596001828434311814416859362175478992927950906419011581530826580022915399729409415225523172075361130789307640657930584391367854276251715670115159012410280030372977468176377192558230198626147324274832756570524952790095821293598478975700385288996568977665552584318616710041546756563506143961995652907672419481810708505843146213685692668652555820492442791865402355047466888588663677376951914176701264625335570678743809594389218561109035469607564681961741786246827572105067142496494997297489565438180716281699626195869277571021088356751823111060447207661959549644224442279311342339966039807240198966730581907722621285550952305654421775909807004883168741073962680006508636536410454534195831660269546221188840918975782787834716610873294559299737371916130977596969869243656380870780065413167261780731612096312286225610488541415906952443024351952421112224432027701212815295843631758521061291019432352815706738411579037162364791193572277781362515479290853596426259946391609295834470671738808515877039975301753400510712712639181641708671983489401070101810390292647471035441801869165294058255317596948063288909712887281853880729789471532692480226000884317700220314372604445628943059974859944345529459277655730868677285389081677695033739931915559265567915114848700331191011622432916771782254809705389659953992420181016568828728649238200643008448137126389946288301553711228700999560738781754506506999777087486355625467394072140213488432682696893806760761316234269444488411787304403112204374692477200766617014444250453656283968621081590991825392481288622795129929268673268267102847126539046386264146737129716888578897368070755487732229761379006481753693608320517512709300949388622762255853693555140920214014014569773540861624253959843444684110362765720633154505064765655999608588648140214325714674201275111719343694457115262417219155721701532735298968156134351296661046184984327059954024013434698383594469328098211510654920490735192795156769884637768231788156725152607461746182781297518943512381952321674269935010559615193407991047649720966882693572781256066568054941519476419108891606925001019348743123594149124198787159857028053815043280014378777527235779596709207064080204355941601217008313933920714692035409375530780650983260105479320185627781279676457966139397809328220273147572684948693601716604340623815277087156460292588273896388272397913157134221832567156295584336864962275324046447781337417458846534097714348967560987560319905484293015506589036706514480437341120074797073127411861849272425440700325783820785715522991180056567979480507943483482063656138810980414991059342158211537523445824702970126453858725624700198178323100711868884791352758083217190306857326773449217015353407229029510617321959741470155362442572384090906554279618860915548452445922443527200372302360814869862072558537005555866980538418055418863905550261849216637251619641811107892275811842827932963262595812569987385317467046048509004938201649669612116128403918501280260047514301241331479019239459568367076885863263055367350511354504630783707156663427904500912882862462042314285839101230066366309926138832567580822568949677708712452138377627794427835984951131180814508387769069642261027503564030653793773739944708370775139545680154398051238400481364792008158318692536152650106248205284967527532967522478896575619075048052053449566536972611936586550782314472032477295890823762312794282447705847522660171224263370407280200228262920973748937431123667131984361064172909980356497285833007824312054910537043133975313617075825410314554047638770341499050781841670988874459315730523981633285126713371744554142790801561383413912821986171835966587880730684069662957524334740282795692058675320857967988223267383636820644502826858500024838087118105212072725266114487438066493320353158013836799770238910120234933950361014928490530404216974533562179802934924389965840210929305029949200105116494996372496292197281590697428381583643025391655170317562662534924349216800570880307954084681729036303899152347721028267394706311437714055601875624443585387098876711406019683180088183926647059510943073245698510977374778341125611874265851136611790008135080215759461857135503718323287906723292068888318435771502271391435110209983714273419429518114093381628475212005253751961369787955310474473721406871767114461415257668709069345769201118855817726764403002004969257290688094234864398795995998689957084647328674286432597090826011221352291635435680360148356317520099688515961972904134449993068693006890129010460761772268769249218369163351291301361922738502606354988956131585597963544413451435444155845580674018176730137044300776933055234016651366367784798708543645172919385006562551728407364374567055475338912541763514325504468713525395525696997688632874104663387779254391419456949255654796185280731705609730080950549806123510534985418300046151065577676456627620444094321873631335712627727203591724666066456639110822236691476382280582420947976379152557574885750408519160448899427592436056373375732693453242333919071970726370276449930368737072672555162209075197616589892897343441507354911671332537017464392236193366677977429699518245839500070484139854666420421217737449253903274824492061636487301040330823872086269611190572799920545149503171887558174652327391009455281710776180427219341099494213383550056214599274510280527843268255796259728217488757809569065411879262005121842942357191052480784945732211125053358357755294252300617847691674247956524361095436599350333204001881340713725889368710789661646715127626467365225925713642693451492492772901632623933424474666076162893692951242692313484113437938649555580576437902582999637870461458404369877041003319370192689687949537199953905793580273879088271944051497543574832622426713473283973307757189653063462334991638071260873868547780238525805252936830514323371784677104921168234971543960040251211460133341562643598074566337236362296794304961893150602171438553695616633759600774808959537289288840522558939620105767396058507322913083952965206899004921824065501663923720580526788266494654239647151666025030947926260012046087177167061302203118854863513712460859694911459155626278337402213434698300996073702397685338702835685740164477253196597045350203411365998325470478325715621909235254641203558407333944234835744209516436518127269679101147264966566372789440860220681143652694109335594321199316362533494568320698105034821908808092262779966438963612246791457475518994159622502885650871608395572917970675076855284347528578021628571396178566927265975391768375183854456609257688406651723767316996781718541274204971397395504053560966782405082245961474435067726825194052094581732121217613288532055275470794490630309628455543850938843598348424593357394483348590819877031223805726239725243107020640892435862073195106444892573544520948215940024334274841849235156706434365497269619711056212097025093256316536385021361142154359880494701483553781939022119165518301231454596537202145226353177194404923943969608250149237728617888312138098310355667949724585274052762606544058658272814122191787530340118784555755624506293827605427731956794738102674203525585169025044950955516635936176029509725331569126344850439537849054869388010539457905712862364659030581956184288923930340049394392848893982658923544760714172196063828660251205144879051567037145956284708004196037810774745903712561272003341079525066189121492785399491268795818762711491888976788247465105596239170434863148626163349339883233686369296520619603395994900981909161144610023882578316220871548695498139209337681560340489715108181810308277823257465086347286956297915312076227135910560464717488200908650705717451215349307933937230890684170659636103054309886044734778165675514535853692872804779841579366708659737396902364248848537470365639091151623651093984995214442996246812254485650701155003284076822540138845522810846945202903156253610304536304509535428009061522642190659174162088122585378200145539097965147189044058614149148091678380851128893402557567602922997909405607135581507095533466081755752640437349502187561495635728500283039172524793953578208652380167669314454548937477767439350712934059062164931400415314286373517979852010507499856158415815166188149970763652456837539794550683423799218751832156954279042910863271306059734621696789006525063274871187334708997042089104606307523636828902223823031342478034997447497082681100756228938632183917401570349188983235563340916025756512058685287061728273549936882678585813831281333602096377510752710177418798237332650963719995290316441793086064231130529214926801912875663473553064459670394541384251855411230930514374649459570606465710893181104221992196242082184545316426020558064108731239125177248772623635840565154033606412799804549180364389697622184228923026759267055489250549996949471510222655035057475152291353059498969845971260418077232526221109621889149823367387441725321391066879755829316256003312948484931546754948986989793755053062172527651497133930769379667132473083834017429086897153779777104716991778037746238755003274504109482024117790705454364926638558905856512591993119252970689681423789141911515959786559606272326714496891529427129247950807092678514885533322193668948908204952077594776661774793508873818970802118368399539690676382936585214163405496570372864120909572002869500194298014896432754169299012948075988488276222358539232561228568767858173964258597653351338493882081335177725320548260113840472169576914843171557355107269781899453414459143927784782252372783328713334879114748656788247663369682979839217648815531870121204854918729546861540030165771100795293946985954714795077774164070991142491695733053160152175793396252438322744309567377864780521150879770182102776622342069500732080004028323327293689827152913439824241604437822216606089088360174258424763730056795662331280572233177942704867315126588296615736425127095976832914123170618201739748707296290461575710556928521738421689709024527803579617347503302902272393894681631050612587871385853753289603570186093652894272334481796720915611664848996088256949418011267380243556509233348733327894949332589272419674820297863394765184717906001362735101401798586083531941392617503535687065382655560373331768001346595549974062457853944494223077578547691323397033369871168060177601759243837211388995607400008416124564743279779557284752761817039597438223882005217574034074444276248763538545204887942940301791622824112952002775093125593671095661938709867427352942474296177699947589709427747630716202960091251185853647970592020841605837805850199668538868642646868578898297188037507295605275405579338491119326672170941050429884074886632737408975280767820943952832215534857650815957918296588334037848374576041551156650283061732193887715985625680030186217843926184891514135675662978902264293733983245847473876684664018663533318458265138374160023273493232961736478425550674919205580659650357450330279347772462431936338978124776758282738430079806935810837883561739816646801397274355147847635434821674844906300715922363787004518547578132721773928876575160227837193889783154465712430228378024789644416389916622794860297001665324648497483204245144930161537866395707726694867947598973515392604962045077890167898372829485076150745082801338468958672727652056894628459710892426585288575782873597618590690246695762979402231582442489633506369727893305565746200984412328229153040288821925450189109850873430571436912666367323585734366310041096857271716266045010328763045167335352348172582310089652548374814562444097737598433037905013814853883846776427697189519372536008571381015474289430170223570614643640817607225596993012973310309652919052728490436365003258287408686951956188722633316619409438510839290862236189924957781823508734729863891403898373160410332599321685680752374187855465106056950437831315962429549848761966536324462009763245751918952514354259834426626589946250926039855608806909001259069384964112967270975899452333450920850136694694839282022902186617291533187044422131072511335222205194085589096556883216883008373895788200925631129016360152986383032853570096336583754362007197638221944555134568809496590267816767828145743950498471918328022438389474259397211509001375614054676242053052530518860682832959298861069163645075604430988799246850465084856412365852253984635331002385585822254338595512582651585490090419915787449499362740768626570926865001914145287513088646613516675871257438523069720157452265325045614258820681801266956239178346360214473074397922879995703891708499775633467484954948038333871704883361235515351717639976322283406663298692748038838530300054826396460088105319798122994745907685809219348897236651592981726165528660895248520466761669108419983621665746176372010258915205417952442511156775425143435293688776838292970079631708668570407288264068131960782358185294639434565693585860104339287448931670981995561140624124255051123272320472395580662730041617947633387586596969514319250649665197503638291380480360752905406891402993791675564515525406529518975325448947646212381240804404411479702626534975306600154269808233923680957554680062882121951352668572646829854568844743513825778458786311818850219372518846863188577511612359846359744446989526717228986442677871770267849581646246537480539892913956243890053668697330321150242636236466211807728062706388544783052415833096754814490068026847745128156491642575268953314174884457616625040049298027180037486587723623665775030765709720586143821974433164937489368044992005303618704535141771876044966845790799730005263004461668305744283716321817677241828216863880123029223481294597974768065261153109205121229017242723818088880271005601171476653512119607847746921414257517865410166006021179485733725306938666866317484148614071163140999017117382168612866958076680895489654380713487324898418785915885952970343912097598800770282445865516100149690816543808559230101297163190874849210204744096409500423126735797789950310936503528185659066580520225764598391588725174738314419180914152139943269214086358657438873723639692536827214805605117645730829646186977155699245223942536805261747878300017658345469913214164467164616510227237443288158577174253846972093556375325383345571158928938551863464964091467185084497002207976470937597615867063226566975631610454324996874720564207695490911289907496033331760109481953125942717325421729653646481225941486469478859873003648379337625758776369266508435258275231636439135186278408433796282578290702946562258907319067247028652446988296956883332266992158706474488006711364983134988004187065694099347728703665102731623194423738354798799388636948123222713890531655338619992230243459507216283418828093387164547687978306423660529143631272751971351458920222742511928182391776613052122969239968448506787619354261019485897693434271560088681818533947237181860651782369006283872402461780347688168311324870853533652846222507522898084388466591741031883852931392928231804460042158940759210629311457665575417233200663301915894660140148713056109695267797783980368385210734350597185393730574991497872085545885471787220598213770016548911265538670889746236807641352391180280590857990973477059619350385122626015111357332951635359845627451280216319022456263373518036146039620146509669017094680547746897333480959978114619823133574708121271984984820693722118898956497201235764394859835054360217964858698170318030903537878625374130531539419904718232909063799417903839016309380971555935000708784612056253648921731620730462016534060215426626420138893483273749007589773358619304932269262561885059870226055142215785492469641384680687789236561349480458748196319381723204854320097631617864485873672967869346904121035152051577079183338792554598167138397922497976086718082227628986579459231440093733710629788866928204614956468574619787747352679946370544771504460752707563748638531535484589226444285608512525611670634632523683945735447335481156075350604271797407341814411208520163442071816517927492858262459984710589724807289241590453477127866884929311983820488475208430132963061200036513189443255099914905561475768872089128043036955208102907651382390343707356795188805159323150277816321815889087349172868332351227188678406558212487759410403275616770656733651731948293764653045893407714369590816051886779266204715689716202512392037061407673832127756828544219733473001186601714896349273956283623447054343001548969242313096078461965208834834355757881098347897913443010134814183773597928735301023629747971407827946411490822144499199297534729636220002768366059735024579220839838241871938347204089822868624433797701059967356799606032947179909726883304770574272789671685147705159768044496172376568559625926016665721315210030548018544630936603251479471516046889614637761649645174299293160923554444602984409332365362299159536212821408642431236776158803489484109989638930708044330862030634196629175346356824317650215206909771431682461855509707656433120366915654707853447991948269419366741586403318905233253911911413408088342209123562009903821883591698922799043538160823591463812099210964205081924808575957524331299674074437573204558100560099330860689557433718191195242995390578144233524470198446721123210762051036464430355787456987896392359211060146839182501464600845966766100739689182506430344581542348834229679901912809935897354396444557759037401322612652439532387295765913125992845986320199040611646963529982541859930089557859122902306781790119223142162125121126359324769759879419696888288140190662228522328902717335063462917415569141246830104394335484522386781272553686076860339642023239914812547278299274738475728807193496058569392798116862240278789274822436967332595864534631344544209231292982687967972528064471594901122409371231032478364924680437036757302730737630209076246770693639632364488543594155302441067680441650616544756839620089063448283147031629856359499079279239059957957091248573582023545817574704999707513834318135972095833420460155343207825087839995426499160158573331442893448655485142750700848244845842016259127149859567120720432185019306499281477193408389619233447488239769040675872161180046702194187512965308802106976244881983731147821280999604122329512869364898105079478971737927468174243989608028407385624195369600717879774666837505987334953541668984926804519517178125127507354143109142095116705375315937723617601210124456168148539023040239945772525876686380304398015695456580909481558299075024895739136507722887522004289207239917427104569808275102122844538821674362569872957264585628196407433781048360545305963644664214696564181489543053621435371874236708360218590405593639821063286921979438380396237308403377871605161595510154854479368785492390192253553772286100570376653298814771550999491796282921425880622637874761201587546182542752284123422937735935563916834419422750283130679311639116907453861520052465941489904598587120146303214002279349875221255637021843961873094191398749380797006079603395215939943979634094608962927016864057440121484984015440349811636945339721774974288671007098170836197064354455031368817183736222789068286923093963646996535759444480896909656458439601018470502923401639345899388592485303868067021366406064919098209608395284544116904965303730355033828794510620902422309125999329518995053844708325066186397443017935033880392105029899596541676003749699178430689195819876732318926908951144480132821091286852834433885952787104517320806782526263778895737067732981133376345658403639103887802888137200353245977938826877755024642018187989308296399103452663602059491038432347793719050108946247468904112920492763608410156707008670585396612401033705419308563400082494144658260962343512782731572805708656610407521461952819307085682922256584736507489939709518941494862339863205098715230824659538226034953142360911565761319202944832812441560038827040467704727386360506524125503652440268019305941192087938761062548395480336927478651684799009090950373458623723260723283896390181761004976600567090223231857060473080605531577895666128426705472941358298974565028172980321522342546801559221942172352526511982604552515030235638427865215144794533475608264342652944564503274937089153211750487100242139071575989836337282771221041539910905790561933467811530866859044814801875996182382194299998198095506270164814495948266585923712462129934998255956992803554471168435667856014927215678145464337337035910784397749205723356411331636650705060175848737684644031611971310488677770663028639268829243877175585130115220003088096152106109045242857494620044224127532984963002796586138190613654811320137108357820206310638048716388896333396349423652333817107378821377668771785157033784426430268580763467039200132700184002295882793365598704726111291894128448497606573383220544682113580433327037050300200851330808044599051030840742429843252441214365218852001085788015918308632066587663484695784627026684077835329700267387664051793542903751129529876235292606490257161848316862423208781896036628022501051621224086642458877981359870152498122033658488424458306394670270935377440594443717954756488166863263042054330837639760151808413892846992468193579509546938235666291139821955607367231559294943512376633731604687466865194327867951573033808731111344628618045285478392512325528008544316420863323204573598657177751254194096242791548281016421747234134957941682507671211399767060315763388738651168821423043920659308606724099734844782508102247554277711564836764381948163407942210737993165545914219495597662068200487326327505299301706780394453373873301515346915862462023992124317642555329361207164251681603384983304323346182649154540358198739841758515158068856397923767262761228649620529562518744819975592045208530130018469705270647479748274495775569846337648803408198915418788152075011287142791057311717750297913567489267557055355378991180504525557935180852854882700959631009026409406835455838629500407021158555989502436253154270066047841121963525207121271935717911571447942211590938615035593092661460434469583462469583714921164854296894146358812268152699612473162551401036577064831941165982887953759368236178850160841033373704389394288576375014215336813071498774724045268748461789276433366689959308294115854227842621092388404697376966268353276406542021188444293859537744893489315201057537524475394371031060192110560597651719429099563450344571742360933699164797371426845535214373242586344429788586466568214283809666552141455811428938786119892142827448744677139131764717713713623221047774254596741676930743798955278126227393290662677047277151027697887319118583283758499675520147579752849675244000962135231126913534717901047272540469025534950348137958772948526244275021669441452266625816358577714204517927443158353348890910162717628738028470914856162036855764364229322669035237040345656387419306832628219013650305106130716612901693411814273776177390097834945965343177598169086049592123295002715005933545072442548529888512448679743610887802806372392615216475710598718765331131460664570251246517077116974193938635865496192002112289643644393740959410196875071631073107695480772484823234554709781775909935968004327598721844308969667233314581871696271511887018992395069847845972050084158538113367206324041238824448152615402560833535119916333470660420225910510247146505120256250848745658231355321313489518557528982002263048063170931150657119093732307971186456683695573043134273476564692153897466734552451168248018941913403595325908060868718833134303560692557286185431584331302063945147170905324365398103934752089122639677594592529725449508061317281858871539006189884708281675415254501945055528900793431554766188000060501476163911952477114655161313161653293325076385821228631103942747534404579212501319995698413674891826736497649584804981762379167988788961483596039781138646775709430277125492795736491330677932356887032495798231635349516535338630384917953198078746365300113855636399817222088168834525896774869942519767088655547971214406596603258247999441100659955945299362023885407555918543982932588590559462593889758950966614124489715353318240768763389985458561058331493362810131904852478549495892948289778461504231696829488253131781140515683688679164442197530654501262612866685620792834709305593247976438946426865896506630126297720680285226413666264225092485591717130212760757485009254594839104284064185089216290955041716581721620801262014821379265907567359683077136656002925143051405741869665606264837062035324535554306179991245382111956061858688095715451763534037922481450488433361457996276903614569791406667049711876038562434017469546982034875657390231760294339499443030957652839856674918448296352695153298354350429581886614559858653516480667276443184742262427069727674249622378101086827056000585535411321611258051776326496944607262647499276796963588348593658676400001080831187919681330924516914751501756244521079907646514102130450829956079883984426063316609342872688984587550748507234391774533724176078398754366706311806275777592327934386606849542471663276992152056737691866651137704612727234627874989785117583131895123255408568446456087591763169976334352778025406341991600653219220167243534688639433889341428374901326849519632354142028349029695259263653917855926221854352017138228275014252312553966497576877486295173241626985747509008088437731660406936293726021346018123608744136087695020026115853437319109271627759367528443425124716101942279789122958141997077532882921591485114340667754525832248475901578292573367905997045756526770835970201053329420202291773755175325322983106427983459950378822020843988055779816099303349217505258509704776370451488160489947573880649848120504137026273321064355100442584553139456637754194183026018654900120813889691454842842160935820467257310932873481909799514790665433710895223940839291679959941962299350294687645563213257951103991787090004708251817178683315508592690703471693743517561114461084490918905324458000332619478385990474314783261639174126910786556682130471472300412712015718543339596606109747400206972490726414562189447150223243668420651840295446885113469793340813698488819098159420612347795529830756521247075244573642370345836541423531277363578682899029483759029651812729856603882177371404206546642076595028437437821860681414140696164375530562122026997270173786126763615087411105443475979845684082053470638697005937050125665490656639645563626862551221256771546279045227675018417819654632263481150370734104894062338662237002336281965893494343887967818524283484561566194758348142425809565746418641437561657230918974094416229948785291086789760850678247667755268151834805122139181382094646289208256508542283084206720548866287314094132106984204682597887171096971490317637867837797219452236450207104619907198628816576018166190845760714584679603269352303574556980273590730774450959340364616609612242424994301568687153225585483968691154386552153566583239954630190976608949359850685177370765651032316559851264787332500907004931157921563605831191673939175935058453177701690721810189877642707676298044876907572300691267235949097783413629408683627229300910913272306245466912479634969947642860380553795402031542003973041068732808072779110240600456730479954678840178126564858697353724816615884270522817769103775830492298055429062839033851489834571749175888075715502326833806351788129152002583747709501876053491314717972748718170860487097988937709987776202655333747653445234867620510727185364412220487089661528662913887618187970504359348648989434759439209210334464950659583544781932560716901617571845324007572875301567588499049834205968626135702050777108821680753269505025689162373080529582448755168842817866642042400095154802691576447658040403254241529738702513803357194819563532722147262378345713774668337997410801165596510907796502741317422166602586473810878182204549353596877654923818599504972892021251665977432673748733680872709936538381408727690797739134819510740803168245079939523325346236409740256912625880931121424334635032478417381863342189054596634845042663178120047201910339629878280734373874714887232508871764884685629539515334610655933905505942708194673130956196460604203875428386621651408995542526320351987518771250985763789537332440122487573863354232778983952663121270729976065179069264683693950661846493421000954250389471762315983187680686554654387332429410268337718087191090664866147910695267991406763883389223137565150320040989627703137565480074218472917298284565104233230490238250421751006792307860560662901789550335431548722420940615476266612426498427234181967660643224076462194063320988040451886050840570623666630213416616976809319753004524879061458246946283459275598036036029601221390493432469143469316578807108597488061387792962872940823724076910371523196338855460192706826876496373419482335528876150585118809033216442775926193525498731467672439976249498410518922594306836948646516745100720887498413532578990858290559883486062290172289703713707695045688451283482601444674208608410949580529464246192422692706662800233749757249954507714533319611605270262045784627885210005327573394515134753649235841627555572545859647579460223377575944854692608729539944086370378152657425720998664172488362145615491242028094067070968025666995795735435524342855288411810164614268410726931107692858600960383010502105727016064512755106511649415012331934259828037343104366734734258806539088175025967746225069595055818664202989660524551306765011644936387040536267899785162456918053029952204824308464058615425521980840204689957938933321105477138296189442363176505691412278608865167322096511262384834878170132063364784916180484629361629294386381705770594688728790685921635025238637654274584618346994156079730056264706467240454826443384053590697836984965499263414511795037866504595778315782189623455786134434855320134870311586794692650332654976240109462926625871492972022194491524089945317539148895608085575688899249093466772442576311132535039990454552551448960209604489747187154250313329656994234405247377270681017636635207214127694041080605464611490383945175331067334331674406809662678066757701529851755438927900171097683707130028423775613812720725388201813347817674059438866221094676740137535968018776149739371520119555404689628445906512261907233725276678676684082850603823996441867328862680145510212636244224360438822465147062855891635097649531063987694747616112903808679615438226145891767246363766468800676312338546426514336658371153584178581565812159522015476260711296119947239113143050169240462222499237142751277327762531911183605754109784279966666804007817580229492015120498348121494362050653150451375012811326592069546037534981685388391529455081445043988246297832335029292149307335821123729047203189089628199701937969800549026492433764657977237828045121116417896991215205565023365939527766213380388543916582666526819693724168387765761816798577748151096323942429746012902030895997198640436819863971627913904642771680571194977493339384637477611989612506661724134542709830621671846054735337508066757025227164535656340453609151923482387880018843919751453081349564449010969453189155395725157113762216909534705730883605636949217604913534088651073695072501654654288346619834436392624160142071088040182686120098503751874386007149528510002496476476351668145757846586729419428147956739348888232096421490734880488547597293459357647416078213764821234547014373605947074703792253839997533837850109424679768133168358992792108277397829559319155786095458643161889568557591979766119985529535859740833246115113816478838648208848849120157899705417608384059113809146608930104167294924514044590739218193979573492139154748151429859955256568412525210937703716880082432373522152737661290885789632094400208507721340688094444011548746056343325781461418623667444637767667007923947237480032105208966534747855864843601596935327018277791500982865065287810090561236830200437504088799713383398418066651610749391788893900992512472709728180945690008546399323440933896993557047742581857893369285211560130156506156755769386640113315718129559919460588466756289616657193211941278862388161954031235756566741154848022754210104583364511843536069285726079328487542823822446983561297434643904333767025342962062232074052852424442395795905847721167871847075473702718232406928172096210599998108369828310228262092368371794888008383613831721485192427313223954973290913608891031316764065988372967720139720933124676963362300453202072872331971528472873067497544964771743683828964776264523232305594389143657296237591965807400299983449327069846534686350863425131999262240351267892865629576240830871580145008751625755627183003608950327490791559589066568109033885812929649353543900889482200988062079280351604491848957712916457470813462276447824417868300213427556026751170388190907956356863132542383992356335253025617687961698858175402135327658517525510077453106417015629530802334962992107337867389605353482596793511004187568195294140746345165958708740017891738599594986673264042336731255669525403424381997550148656911897692867016624490094152362690535675853827201920855636383664890374862587699226144598036133071724379436321658607817988922093564050290497258224391686949852613355974924209472756212580777680040738363760566375966097421160533108580684284818587887393180313544196630252270797328953804980999694822730792938990721976066316813370140099846574699547522461766228621623828599133825789492881507682367059812520933545830255108072002150995915188383043316476404546747494968597068844790630345645603266437635382016254152991410366166194675485764797445678233134973892358637293323193056028748035710165279075385963207000596538913612902422075265184539723563687347125768414482418633531200163812215310734374345807166750686304947907705891355826868703467557275117303589690707815238965781038988030366663518121238668224466703981984582101036534137560864063008853406760369624626811945061579394252632367149725179730933950374789280156596643707386230497135399061086036512079820503544956246170626709257327760054164974643724090698497544473376653377314755414824589782001277851584394829079189368271716208687325316755581817890592477191845306617138550738126478519936213136588202730968813556225754103007016146477314405444582750450321291822780204054752498845450010804089693234849716085335962018825053096676698391011821174152694246409847798922161986816713489984866917075100451135368780961505950036386026687944071108988582078392737546834348864596585052165181785558180501196867325423101622953620390664441794503064880101390811649826503783230979810925236764614846379672089805838509012145416788192475392892862681831129332975442342965190999937864215691226027412285112349255211028621080653428542260570138979160547342028049766520478503085782999975748705673673528589345297273891455966102722663360585305752230355584313663898668374812346555029284774982551028233826157796209703252075455532902386905373310469974519010546198797798408628488515631189046433300458089451206483409955819866089574168847923301190751453040676323854713756102776398283551834796624407282093302209305238318099206962998117415829271164485084876180756990055563744711256951957920209108765462126153627001887798459635795259219589240169272149398242131402360241344872184105965730638717708305819051280844245191412814042477892510358376545644774215883795903743524012290413499590257093457152780151170916195515181503532582394069544436025319206658712663272654139867900853003677430051137806155424119133164792365752903525787831328262771353835558458303903924762294914969696220232127436577367940375701729887857472803055549164249873457731537151061364946279450076804982436401883259279565474999138958860850559881824131248373360763857487929454908008182380658029117715195898430013588182105491337371552824517859657845000881062711084712875711779264662057697069172989778343753673314431119329749581836557091496586084361592516093482607086320826471738905600347433335467798582094745506104175285332239756072358020708609879876743089332844192954546034125621049387017598436765761765540854194899492480587053378545786446474012146590868451479572602377440758306050966865418369583127677214321778936847713126796903291184172931515558466605318920834978296539768871168831919362546914932957780210971357555771043440253145013672521025623237474581330475327005471385238534532768149393782795970267229791123865067060066270085084024698090085873245556398752462221481565502826582573202260763323856098234469144090337769361250035348926491189932162633846145339496469504965463247354242770250504660180773312674938501324006396774660382954076934796360567782763148396076567472262126633434289357610234618826997064654179317743516951492581383141166118160011682131084851777745131018558852200957775597418328049445596578373382385111589073344362339722426247813589866366733951923320331522123596121204953033036255067660704133192799688366939815268320389121188906376423239262126581413364688216915461942447921702999888729802827939814411617782928395363557995255454316895123794752327978618999023264562912736449931654315349593679896377420089546240001146913357530630033678227657559072427966815178767210982886183144041698944072135436730082775079013087820514299944127114121124747062284817334805439309456208715500738184121447550612571949639688893072189411618413620277101235295994883699090081669078615989077466885374166305756105948395024752121178424369066002034710703207231721755606559653964751297296081365208701541132548081007062001494945265284807635739915802368459965763681963688274292070179760653407738057194395126900190362023579544144463544263311325384666849018285771235295981133572426262340258328596716992366438218361290259496707161601193549467421420146759367183864706610794610166753123992100068465467561592660784597366542885658110438238617388363608937993328266520917238151844751310627151220992353270464178313296335862241202567217293832610764888584104060516726985102142956075295657059761973159372928113938040447607255561471214539370393576277139780171351672629221193664416319829391039606272649647433916462922215987720514059457436737915688287565646534034708460459800229922788968913433708020663247073846957687977131319274690991947429204297265089206407632271945660900941902005825497762142222404165204588121712986455398719746790861903207486190757398835711611954145572425745493537129634289487661196562632621755513557850812404109577391486117032683862749891331589145673132731096435505749808911992901214531964032224821088114339721824454995450895487051164121366317065450421090149316960222499872668578920863370200423110482992435788365733778712782230494091930215637403686973507471591271753827140409072152277420679440139073129847866312879317003526605852101950203899749205639313679676487105687897356274330319411800633606943254780430684022181466832031368635366475104806685856923952578589236352259849066112527731163238212124673415517786722493010726780299323538454408763282513359458187575261176395084567926168247979829170919388650862679164459027099511882873998578115629643248739712650410743788031568326516087299853255141918360214224910823024130779417739771302948850034404189571013561170044336430282593901413644450780573435925790098334584717612256172185514902424063127016251394124324152064606277943494657083573767419200115702834770255507580435557400179510112950548677825351287556072875086270083606397251583763410660967789962751923591740270789185272934393803732844465606450170663166983816331621149290655890179955386751599141280913468231118361996503586656540886714759427477662450957819733965634076772682808530269826547160817454798808808912550731331074518066785958267803063513658672787288230096752008005876141117568216228549726365967061192818184811072623145047925775537054094404800825053100469880426717135696052143645572539288277311492742512414922336486796273459254579102779105463962307837236987200405207368199966286334960099357456661624520474889503019541919834341694384022879114378998699295025733402706745567498464489461380265406120596643483164607106874331684694752155081370653153087292956341470728694505585604108179107056210038400862960142575163073901569340852031935948696381728326326891651490700959286173144766635700033893336668682275365029534712584502976666585651704373618412480956279359791199838703344380409758397427171490893010123025776266984121630281070581372738112887257197603890240418758329172679912936908211252963954917778959652789016388773010913501058419802884023008838143083942995578827750874367348056169652761814231344227836440504545930755961453447812723427282609288688672679492814317490919554941727764002255971793447044126715681365186191062897315427358719127040265227292403629118198393284693581222278668734462530575554201371571857269265724392273290790887842549256566454829190969933185212011533007970979250621915979996756406109909686751447656780666667210335148465720239218602354897375794471885511837495942140776537601274326367164451054626349499566571249228124243509019172507911946265376854804474495953455924087394991972850168425201092586930164576767771117291828854543911291644390780304581368739050469570072559833939492159896516937836971073085982595469707968043164066626078598302993485339035755204289563637267046432638245744037789257848618607321976697162848017071565074974938408686696468170051032706630844600291274814846395125677688547951337014026148154194695835169786071600772826849479004203374084182587592368396400327421693574563651787459751375744256613613606969136559436913874200440192436443260638310282393341549235159407659634834409555328865027288436252372928421561190180102378705750009396304324550267570657471633515601352561215082388337667538867721541621131145477963913956100915092802376214754439516185373046247163260339730824367684200468726025545657979570228054998608507759361687865960041165916070182052541748863827660815980514812171179965824979697154016592930390986325325141141906152364836022837136282828746187632216227525965470164770089089281361722239927054423675855988275640761835854350796688136930685036417290435808646047753955139864234918355660802191595049119964026106845872459458514805637912329306222709057629396444094633486984220818848141566002146669833856308309263106429793966073717854006950540867634159501486690017557243662484404458422309216728782161013052657693221344283875499697364560131404603445645696620423252136369922551020678482436585633374903548342726965086510139010748371500969665235516912721367248295424510231762373671143808732039472176315362705192838573983642752954925417571745481570817000435225362355958228200230535155679255014277231043117376731112313778505770901386608366070658406838281382165765721999674897536874081016481500423302803447383367545714727248959451476472756394059499634687205840153992039695927810686520847846435313933550613732530453941440027772265703828758796786035216876140370880631585989163986098735367353353666379342086658442413590899146411632507293076625530641059681533200333505200059299562361075430522770363023506926520801710257995018844698792890420509222653937630553850804030463137033557335213804237495468424075987738916603693720802608829682591187826530586368579624796273843853002816333597776738074133535895662357712173732113074045147307789795897830674095743703660623940019538803652715278741026796531841934452566593643263114674973452974417337133696812789793899322384616906487608878505982423883406956546473807666283073458477692254141479090162592871609916834071898061211264290774959795615100565025141904586482341139788940483326712868181084877047686036465769811419068551183396527818746676339352289631892256392643849473884295644460597800173907224654444601318081201236300859955612703077257868682309156222812259781104792589098944573399491660459880536751287572974691116735966354474919026898303068011060831606403730868704625425428615400739303501475222002382459163614699560876964426515578790021194946261104988056071761541176265109663522375515457908154714113515189783291071407570292690879283672289924442608403007238985249976009845154084987688546705491323562192949363494456174448370658285586643069115332919169776556869613288077102621498606009978775924858865592783930341898736446246289686805259947843052291985993506875267584089089226661365173335939106795795189589767794770109343775849969782240037494308053017122982595615618832549238085058275021092619264344013066234428504496588597884208088123388146056872412006959531200452116974482799723733470785680457442273101016785414254936672124508761511675307125087115926903898857013543673713211591154017543145737440097652609126755307137456572667257950224978524088061804789612968864292241338027061374013197729164238299163644153593910477835340525696979375587549278991603223980726757900575409437355637915722117621693302538548436888630899395613898726806968005122777459693800415502433984916537221029450954626681516947521065071607709007246951805664870024379166256586967750381224396574172374970229028808346973736175680063194375187103638456519140880449729771188027237570050425327230659963051209699709870198804486684259766852480150752274709920815800923450502556799541396811443701919600661164586317465292748215299471255221763412443814799188983789731163484528153611881490068517269139194956996429619862919895647864324515873429656815816344762651720746130307502389869335255977868582352061735595863603655615596612081200419138021342368112826887483221015020053821659859711255024642095758104689963898566691730826779117857957572066506847983928619192706408867881555960055708699922280630975540866052764590843397148666552983426922567765368970721357429108705436935046547500822232320531773060047803306693395794100971909913182683445838177143521657347405900750986578475164096595240408291404198988828342070852886638320138397663556850632157442805907110445101325633423561504437972382193355401142496417031200130854915198991631353450734850242926441139874101926411289499852756108359139494579595100715974795630444818323904102542501774755860636980431071382021959166727011371337019890123327648649034679500589662631366253494908544288824695585531107047769292625752829896899621986539774068238603283390139315784795568996712700798332141537187152731702710129781574119135134075959498368505697181614577495635457280474826761068307182685579713373626815928742306834392110309645336034699895736988162706036933486835356541893953316117522791075458021163935821733879822218899858719089628949935468449127811219433432832891268870977985743447399455386774467364078316986687163232874827349774383867583720880876075695758071094978522150175012109167910377845238690058241457245181638036965767228618485284156503593681553372448602005871636827727984328307168009946924334918043237954708997264051617963396914276552817454851739430832553345997065686210640946258688594726167235067513879902186335292970948440335974588413903306261964321874591980314169424290565032900088373413854989945804875330466292931833199221533929081407280155744262727152692864338875772844175568831427431863087987576628204470806515903199198163217901430740939731890729209703052178171085765582346207631373867187736307368022381409510487135009185776838374844946264401607835739182886734856883079411335801919531855204360088613199808734482376869898247653533395106246426846573259726634953407325692224269686258426303442756333947940935878495875173668964531643011371975327495993398727839844375787553717509564555255695410342289179992370458334684009067971421672498726504586347857504941498526678027349297692171218943569514065037431568575562305702715553980351922596840103181472101235484500873958429274657747455932227790583868848657250062266904309461895708739495026084336297581383431648214745877021216531992154484653763362536509560658181577096257152774446773918720966210720737931500980783584219619417427468597907261869406284295199089073438749738713957623880719513015376222177438423487516014270387236989026796728851627366146642698778806986259329548199557801266497690996023798689955009109072101639505572672960926990535474191231192031480834008023181506204240700020857158661669458064678668181778573361834949900469922436026870682075526996109181663799233872755863813415335308258836951652713595172053621490319728865741949023807514688782766633716883362290912473356546609712866644395043461913495166905786478023776450703545537664059305722447089720663411227249281614251124715629107748123975423113160131105410088908597368350332980885094758520846109720900389153907577587316061659613983641192089086101926767880395796584352424514567450212311248478833536709628601855333257276165361883201770653900981980953166205894192805941136454318493780263725441682622986499432805856485748403515105795381519528167134140906418313724307149723807379336661383616487039551875764095674122998047386477894921981438303512334539194498751172689792000527930776069135519334779235991541744516911117209948726641186201955309603231091656450590918258481456637018267986754328269530880443873633710592208366544953190380546142003456097047604225371295550254916577579509340308304075578407312945469567477667397017696288681628080996012198969879964590998112604617259564669344381287339029900526050288809994659810787746506606166642321265658835064568623136524384356238862547645514280716709257649128967053839463331339420228972950269133067651539266101317149274439802816956204458471317235399155625225903955927978155515350380421150216048027401551077858474853659677517735040587929653231445714340241422270579025796151998851603884482225449901815099023197863805460498541655626604116962397327396810631895681977096992735790689753301505641749905363795359357782007104486356721702227759237540750332672457830118517215581316084802409124231925204982904432962853820129052670098238405875787138030433545958977299041294635480039507965313524111625124516763827368442382584810843316316554206129932894690351559781915833815053231818229591475040827657297213954696105428602087397828113826217869062629482069822516510459843735232467486009407072257425904300417637133544006486125931539884349973589123498670864447410041703974110706895046746968507292893365461963780598577000538540083312776646339690706598280792549203183365405467823716126796341497301728275210525399141911817706671923286790638583970778252869762191608914297402678587038855520609715937635951067582972984405846461219681523355250372732930979031719785853419069686359232798426459745882576429255921550472465952993907023400186683937893272849807949875027519696326749325407080067922379159859296944592844368676746884772865985816297215739597682651479140166499217969640819455047382903420292425468563376416861471901080909004826392542249353928702433043627645961929132066787045829275232191079156078078584090070814514264082637859342032559020602959365528715868151220206393458310723922378788405352425642280741650895910469920480656606460030268689054074495454103046425078105953490679122037733824505448892377085638266264525267154065238093234626503031868857482288283838779039969097732823316461269227981065117176291707533477964509675303959878106459061077927006509101967449497146449059957671461223777741957051494921838484395857739439522527481587895363864151888347302770002523277532750616103070862976189809794463166985032007640897890692472840181132474236400281851414827788552330347306900572822883136679473443699642129592020528921871730327573162586106557596356614190890226886735713549275835399827249805173224054173713257544215501819183923684962241768502179516515603260735338657765892462545060503462163086141664511150105132632360867185657724343397458923897839493160954662767280121023076044366403221250220715341788310852345624935258649451785072364735674694608990892677232619407446245270446184892681752495415120380080003617966657651745234363889597756640905506474877910644801768360488537910947496156786203396623139329865562353504541624979043556644164256485608483294581491750525723649634246774501803601234288708761756785892376456518592166150433009223453330609214746009549053396188448143220044908277647314925303317816490576369300667611208608346774838745144660965300928958837859944563619274878682888977885945608546493802934118792173674555149624085130246982569491208985371089558689542043199187444523031922956321919004841791178407102593444154943387774912465229316024212436227686704393609558352333811991459317418431298247959796728424727615790681642968388564947800006506198836621363213321954995482654335499413088200537617837295645197512908707211952846306617585829024442537963575198292403393446605888485217954044761441148525060938216781944264103583485233297722726615988646585091300395141855559398782726978799106031970851483187676865492094678200974109248247452976717468203584648881894477001470687024266343757875610136707631359739028714713382266847583975095859419497629336925758147733086586049473757783560993944395668954949480907988349907273312722444616490567520883548528089206519227301057532967123070647946854120665685294287403870966353547032376867445308201515445732231752162940440618204905669814653754535537855247251853129129611840089098118237648321845435058551941991006696361498613527721509912519808631176021620202501417815150823133476365338740223818582998902766698895871401297427456084261997183454168161441808018597528891058333483862093609645542426986295173575146275547322106305565019493505013880886691910172803628451299391118053628944625794854067886894045338553243166444097523831728521840604839717163283586535993326442030272109719875685573704111835403480109497596961104498552705103150463270922393023403554612348197487278313700844301456731312192799524298889731894218215144518281799121315607421123654908981125740306737170305467524696464906530282245444346500524090543949788641864883154098845001958804330162566006132519711963543360556748035767477623387039652921025238472974137652326318600472151367830512748153069551214726151624636493231189548861904409296411063445163262153903362100655182258537790927221045109399112173979211929072086809946077432928258551155270588684745260180385859052047562517140054740027085838625369748452650827637885684157570405634881239502441439893745991354506488903792456385414971520249083844079094427399349268255175430551389325787605549981517404765714996739563746046417476168773544599030856224190386395250496023313701309015823864615683601504818251749039097735981567863047098301926736418994676625536228173748451986044428635506480875859070031082944397858014346145316689855345793774015204011254045627451003770132306861016737666960587985630057694601911850207471634995400296507334511930743683086527467499569152648992178894347280540163395910669579889990846539710952179451272445678747709748689995672546678563296332353628996794964981576115013025283037273582727773393856556163962486764617030197432862965337743886452142768220805549222158555523991373033872431316214924137700071498963190867337743459626457860532767492417390895263952867244523363199416664731542615249034487394562880428109485562481889439199886775306944660815802744887191560237559093781168861829295240208638423710082831072014837587922871723444708494387389695928555263979019645813582265418640210201946320464192183758090907854498952879272862090734473237189181247131192502287203886564784471935876434259784772417458366218403346717719668254756494400657146222101119485899693197529437775035542824953463412343181204642082612557660568973028162123060504819048665619067520036594963296052179518991163484427994201120757314135909334844281654969553520124835593000380699206646625927221118792833612967834112074380389099125300832489845857442705314451748997196076180149927461248312736390250611439282690495613035053853999689110699245607793692781862228264712054905814522252697615428483357192204943340027918847206087076520932985455506504650297839402658781098871298720136020482511870842475602494326989274247687406883871356328868450187007160901517450442989724769737589589958582944962913138308531973798852015879230699899567217349530558546831296932625551484143296857995470403586367633046150167656409972400186071925246551641303014459186163088098091666373721906188586882414749681148692587418766592755835153545561778325400808762290266648041603176335237143797838065626308047765914469642429687745706865052326756851359773073502450384911538849703154385174898242142227439245953832125421133684350938105850805054070299307568771689008394811670515707542242967723162908330060322237326000949759275227288482382652541771228316288193995081043824479931015239004930269726490177740078135225841978049454297767903496262020482497640198896519554823449655079879277668455072821893971931771673464291189482756127575851256108297675563802037190582922892407438029353781338485521168060434844554721025012374291055411601963778614908821168170493161361188335312273428667857238399011333478855405301489125163309444557941030545449551622997524554596042558548972301315826902660264383739267597649405647033769211199996716268201117101286490447510102671717696620452079483003385323602833524298371879825247652724581955050309574778181692517461793760406848962394566877997970830216300188189385256568215571242983059264187742101574778661509507887168238165429215535739405522444606205916598812870059896183221438743525758787218701974976319831677027466527835156307921519385501754935708174948844626190391779813659722451380206194225015503806127508801662248360659275176164649079613582477797375234889346335833386844447470406132397699718064131207585030232179657418573852084667480585687639607954248485939552778552769059943712122577016543668164533627454602750204124312570009965302063234385809036274795659078032448098664567513631823849363111291147759157373088281489685120258197481627315050066051278916420917021755993206515010666178014704881581323476345968646569810283375168265187803078734164210778218017705691215472318778189803706420157814218903993469613477984927653443983193615108905141005991679951195924258889911697756062823235543164263954988687701735417516509268046170704233606381117695125882623785139486589146478181296016437178952835134965863121245072871311125003474949451276249643518690063882603216126234875846899136531568915441010090932403307633660008772052607070699051930519290131362970408519498548113810900417826247939199943269153053816628071460599353529318561298410348890369867187724106209284336348500949791415314170203978461236042721438118959959693637599716688531299054382772385319668527199492300757572070316617638152211010897177857918133192900692148345127345019838756719158407357735078119904948960184098761877181321186979354126651966999631608273789537165150082297113255052978504177026370441403778970390663984926769231327707339951462183143422552707918596784689188542929942910580667384467040447274120420209618129311390018131740517018949662687857540972569417191115668488277537048502656110172401391432353442644976010085073684995554691943294878082039594917810513991813995797194804714874405110681872226801587981273159064781844488967066282634987618242413055987659555181959450852183727019743614688420348902852916575332487148721025738434667701125811979190681656174764895467479564531166404819090195725799844944615441439375597162683622441483086063759842854577739971580878991520921841249272104494571426380064123728459365404380001583919301448915313143215262207456254894082803711757969385022905275568269539304560147328569950891860529838119943244588955910955114856908947257850832324142372446469055530341707977947427170993119155728829013737748632486676647394066479160837190747023558039878080284863933743439562226251254871833847910406031825598403003257638655827798558109061949926456732304548868565496208972264435012502767111263536702208587745975655750323947128656306845458657816969444932985457357455470565766201363497050751376571032666919876063127769706112312315535408293278740038821978299616234896093499242516471791828459989496845113544375995320077758446486258291835879150443885493084813959205679555558218709061408190935112729140058399944629428719779052019119223740062711377479884046333558652775363383857119027786740618680694202932473206155494123083153649382404126474225983377406648313753008184857974673616085531056548913292258294675492190707785762980518109577533393370570169076808793500261565274876290773700767960922134620950342859301446933103789770581277670492898347372248326514862647529741061153410555502290943387215052286521647423094335364421852073951856538008363567717677053756773468068002424986810438523174403415120195069090597084599657967299774535227778119185212471014812413213521780604684186120391105103364405912895166294814100120517463156093500193161902603362759683763771145031761055937381247659719200669122332700966833793289918963546818818096578268989286272462230698150869858803048820046530257348348439188237546052909505445713835388686968983870928721770203702503278306142776297243656955211765906555535836801272257899904577151872362579529410452710118633868398550697929425103306313368125462561828892739755191685178296979708377536083843928489903275652962739744358836257778383223309159489018519948323707735033726080179351560613749142790882410082205736813003135525450164402291908503418632250676019733677421607377057083033086811883612640729541620943174577565492681852409658727692137690940305210400344432221549119859699578618692435809192784159701509027836251648245770731617651055175873630637837896167343562572401246575085296636557279067606934498860834067628835154999180230291078217164757704703589204525801499395344382923750569281651565953519391464532675780052692176350603604332196749891612926673372742912174621202220493741615000859788090318912637625895696139734054790055968767707220441496657127842453998885748912788622861378599542451527909965530126980290137589185973849176281683065190765627169426742221543003276164844425247231399760334158234426302947825967507451555025238668211059441475517601914133873929819027730774920774478127995340581155177660535379539522802908393706218098289487517927266941790953276118852468757932219210863028640740583721153053407556609136330069608900634303869902777071489966051778359944539155769996546641230825176263376379420893230189684539529948163515661005979162448754198191416471314544430951688762204866417212627704835282295681412858149168336590970486417160884821444239957131113009563078591582817188523788867131283893979681613922379744410099038421482403572535537571401598366170350691264726868279492561066705747806115056316193604553627830660947530373463232482467555823251656629848912638954750398404088607678309400395051654280985393593334796251792098389368632401049170102689517844724841805231433634379131473512693238626491146422283822266649543305157141158161092408439673836933719340372881726432640658436771619730353562703195522469179496469594839001345584341823767856806969646642587763609517740296613507955947688021299395874054299164661071507281690773890674111188419563942202577406862027881302875746992552637913397901345392556756248303846213272851691058448852388741897688560982683057270955509308382089541144802285203922384257189855944094435223576847855622077311337341980518366231687593755920467536913826483571575256957227030378882093427966138637776844669728475224904515769874447471194162637448083182838419888556766320625993215598106672010920420656869885258594420189815451579340978297726036211948767923774333091627923196246009535987361706668429764066655199343371889657113599657927075443066279396432573108507729687547285653043239217017598052057701684117044658378695511535165094907852242081992288309884639376243581555240098776005256229244895105372245614902456331594677481366010485126594971055558440491122341889070574547120710836452694125049374774581070832017238697048024413642899861918881690026409075943406147282423645942920778996226934432074747871837790966432988218733660360338628221567483431017900734835049447013479607035279842056965449870686545380057014860812926963247800088738990685729085775017894046500240900982484465910113053698859874167909099168795437391962585285512169620178589799407477221435655431728827940155511851393103732564431104392112996470911890664500249682938356660635145210067867694537608902989952540099288358596576621638783761615480376284022519125553895988752428669334408163559475569033980434253690094635616654151088899120134664802371041807018349156666418629760035196910625218031295991794190729761763367805551133774618823939615363859959041806895677661301383936883121212053384684572232851254444052213363500291731653287300074302488862793480724530709631092146166301714352297104025053098267279526323022509171416260571434874095197148102216396226436910360766527052749638989040220737566563105977981918728396380852531193546529414653761339942013426112784747228107746037924360459028948041629498189999061019481103640677962126773620428717276461150137062515266053089769253827871505578674199706579474362314272359920140023070148108806052550517310367033265445865802727425841605505487428007588280224830508627982107245363715360343471744396621849149128296834568642595715792408439643422251790318223257657651147514674373751578981897668409145225210858778891893162785526416956882445899713541646561682862532731741897400238770664764632209207027827305693141457843077009982266469504147586052501009839282413639936009085275145884339544814712932516950131908210682100371574644180582152476727803377988029416399670794017236838866715537071881924129586769144561846000887643572648726826045926196193606913218840523419486331234569860394683843936994702620505843342448775066267777007626627902193465749641251802342567130306377121120189188332401416448544659318160217176596159844131342892775602016632566513980462972381762637192944221246374593272071423192848644009994659462940076805096164668503610348605693681360718270927189654307104254468262130299845058499199477042868697316558812705111009455401790875960915888035920253523973266186385119345487571604779532097951034277529856625136636202611249350907720622400002447538673630448270311957321915872867938569715902482019249284898467704966803886309602701827143553231681437784958565611059457838732599595818823516242400213374574155019003619789749961713615243795630543181332739109292790546065529992049639978541431397404411621442845464774594301228784426302935939240350949526656736200758994012635470241618291977204181460847735239328791399980162825620088274979637848728706817829176787790043927287788926889053242234730235213319179807987468365089798653296146436516137670622963470331426679955673324731344918282530655832720811440068243119863974196889744156234779252591876221980859701000435019151814477049790936933027515782679494906663004949351949870903692498179251581836038492231015869296827839819290461746195067267436953035918180798631161070692958537245484884157982525337556293141148000776987859263987199313140006198776206892697683396711491731722426220492538829900006462176665176851370410818320020883870826348494462395896063255476965581137866899543744016501693101715250334552547207541733480838475862069210232408164974105503370410292294463630343752459781352069268888320686905079223038503584782394422542225730288166669431883182546189850773934960818258837422596014808338366652430072352103414565014833541166190547131936279710198443209488751378527580378629406767927755374938570617835446717464972179544166718441943552660789325161501041101635973815920776063261642148381127538462509107547360009199621038639218640156829362434558109061549984467873268940022000822538159558088817239567127004772307487855145363806966676658810189304352654178693661798407295834071112975456582501008868453259573590395797246593231627703557178529977346717934538301343148683740843504559043943091308931333809635568239331600285640943197635873077682677659119901423633613613702944772573706821635954068191562266026220872750452683306743222861422118391232120022151688442234187655920601676516992636152748743255674042603554528509795213556749362908343148344341669473059212526814015808538222761380783730901806743060693086208366396131314529147345785080563662374526283716863184560980506830072007718132157539806065485552013047751753267149723215345589679891700021688335258853676349464619657099122129702950828659405141317050176303247811588463565820330008649991106381031704539240010439178928644454001096811634064738370076865790284893300547085175552501094371464481620323197025328010793995200041413098387079607858021989156363667974762478367483587023429338727081866409746924667730677805943324064608037934408922587655679579268820163461244218696905264991386840045475925188949145355711765435617777725281661469384959645361561837227308848990037740310059030895033302237200755042663939053705411310010105187010815047575539359906311191434666418899742972338112291663614167392253354760576014806234878908449126901377769781267220310801203233007053522094662483416672898376363125909330900731242321505100647690198170172399480021861333818191191431025790441120737545691584542056694104908581471202452971196069965701443063827374089464816926793200113504672250770655748965305603381388608319975853770006651060509759479288794151210161702343717276460862553213741842996203670310727437149882660401670524737577641501840924549136793032937762823782775875808579466712030916803133838794974636664207824346027695759812088376030703847096557200795528186663261031380186549452506635289951245890222265880226847839969951802804082468614273485158054800329601836742231412931619757553240595915612074481937829781016300791838395072318552225952700757211503822551597052208865727582558848873778733017981947828508765919106864455827710333826502318028788074027286200234319063183104679066600502302190535388570602875206434297020187019084148541011252652239858167838925187059899949511545940196310129414984811077229220874365456010449982731281890320118773538050153297395892553925343598570308704733015250637624612599745803036511845669046534018511009367651466853865435674630900858355395732757307314566551826489283703567686825734738038999828162533913107064809496765555736463254988750991268234419598286407977261420962654653771946119426804016431734676213274054305484224108432167211526538096803685055892267125191141356513305501688225251448991599562163871833580198268063419397082850855046069429903757469328031580240836701186650716038067616687250828017444999740982491606445626200564495283166088495207507864012627063217185818286483521360894839960344157363235374453881574663160673899814997585825302560967914200406062044638257100329898240087934673489830905874895412252137642033536338736063299862113246664576797721093758653823288014825196170270204237914324468361972170967768360625346899821263588081598769975296454282493905425841671475031182145441299585858864051946505610672627733737850149059038139917052120723226270025425060171271985905042473000893948327917761652404544650650016582661215149384861295040940633671297459291127889596627402852334850854175027244793039645639676322841362575232965306141307213172499480301012382949703712204550385476547971309707698495577397234617154461130804150864702105322929238485136148400133927512146343133501601954887143422627082467452805505846601887782288485484534791519924362085330834551856629608937982675245272148261540950116249373726319143644270248034118588637627013998269708645971859207734495502555750738193812964449349493100185208827874000614650134327225862564456024454068640263396142251045689642186775475699982227039394518055285571065136327976244672939348332020777825349444532361310637132095877155556792767590900536655120388658674666188167117700369561162550475288665126410296249908785648573040861944601419215121902100088901040905310054384108553597690744596365064538515636100289823773665053797523203416424135246054879885017831879626406756768857204150073394182052133632378519359294110224039230667303271237680251525963421011345349094878493603205377919258901830780907419808478682138971440234205697344642299420879095466245760018516937958072360851535547081121549603938126574462415797460792044429972861757214447236174410166262354054822208984087825393213356091525900142136137837327699245188281237571343221170849803157975212299721397303666293235211697963038732795324331104907775303593289062171414095447151115255477331822587249719243546200874005302469350631718562215325796996561743946815666537308365036028349957915661255908320665395616331679135360734096683654251716578083105996531934714263150731261596986546054234115446022348770244007677547299435965165766902742972237381681188378984298028119779107055665403320933740535637865701541426035349478401295235421580254122427556511755938140027332178274003943417928666131088786216226816120015116312866612285092688463100857757792887697550531801548176215553494195499529185118979356631006112292725218200103011756947385040577228999869162264217289162379422498988551688523711385137849022288488217730565552761435998860298111118205179862551066603660613748882999311914681298194731802177843018624160924836482150228159464526462505532100272170182220012546277555366256183392358118320997491024241307003025976536522381488340266279864279417822038497639626961131050497438042444646117565053559215041921081523030334094205299473409418842337869605972492911435959475338779826562098986511610420159435139878255475285515006238712761179389828191020542941357397800690317845053029727400035143695947847350366121282148728407681099467542026996935043818029526054575266802201713689448116252020746877026548526817455581695829095775703577041241817888347838906360980716063509928754185840056942523434699536839411886229202292780988903843614332527603935826238346401584142540480333773067635018164067920128033618446739447696745362354226644374961813008643477060520153488869105240702799416265505766026732369779850296696198220989090616797514709881101411891670806036180409325989699321418424105115878281313572706624571256286306850877586158652089194886310418109404202981120318418075750347893366806283248931072349606750690249325469201810108082596480564758150704827698521164940935431359773216406361932497683319646143427725968816255470500852379733276707515453406826681070765456603664346714657782250674208648059202061189723524119243912246155367024704954774406945738484471746894318746096029530441642717286178886205636384235866196373515474553815338289128595060434514535645964904488753799373498481021374893452785119294069372078614845566698658878095303944208775729310709568007973549912540048485662979778078783829553305389184882627788797479905313524433140406349053820596562873821200576950103587594672365851182116800338730567833901964977098076988964962732946804674108173203539424171580734704053475287669165823883046123521609447671067575978719314649704172633442015529633935441886819890406891779431786108242711934155278885370176102945074448324098248205407732521891035547960170292959776915002750169891417036922939750147909934412002201489870327321742284470186016352267155296184733675522616276796534158645961511336979720748852532361873971137000655722790132868139251506435811526572715729310431780562801064911929840634823080363450084995586258735267803048073849528309923826928944512736857942067662977606516988065836006896265185930278669914896689025789383078046861149013625512901189767260780819309648907771252316156254174345856372630927128606640618369273503550655852689859049237857561545938556874560084216693294794738104339802556034378277298872607384789900551074111366663863258024008204075529087938448940604596215593229023512367702572658817111927382562420154837502577133825316068247600447276259084845192728695454680153170000219033204374710452546441817237101083734410933344990519390614256031310480977847416891588208327259223413414934440513975368606280901978482897352519166826543349012884437884402449385822884113272355296723243760993562008065303863012332600524788655337373573066596866406696267817769564137106383748106160459043341078968046088523275011313007894498720097488846864660402613249983110801883411989833610215011632380426569407761483936869229570578307990908128351494060101703636507464431337345309811890058303421497057785249413616809559148543777209598323624403778124250644749206654853634986130222326992267082331207366430022142340719693141110723399716904347594763067330541934413705730463255846359102210679928464227908742918063957409176998811096970870321228943574608306835995463360280457171050277999086233723864297471765772266658366755696837232560535935499540190900763612007216177133391440830969824174410834004360217229745928708966209307781393777189051345360033640781360631773026233891898580060228291177868779743665740573847300745540649078854379607049974263487764949557707263487546461761709346070833068474180576858082863739129176284546501607461841921008761693549787254428907691146806973205455565200853378804809559295116793456359042320395390402096761642990524044082304720988033977391201699149987817360023131909846786058343909747893006944009167988843129550203583286425349800697367490537436387184558951186619587142335915975003873220258888937535405227698731090575238680827689198654946753678384360762674211180174790779165849909553154225690127913321942113451775411978945642290524651701032391239848932566934241894298982510723968544297628545123141117494833599336442108532781774480794014733174856078735543561533037651446410647735326153777446512815918283735998410611411235447275457173310670758473295731059750707191481749785757763042122398965486882109411638631267649880358989086627838279468251205782089587017126726084557551603042919239281584392854006149028741255859209791032871939802889456147636165051276528860457025917995414074603225199128584834739612823885633193893841339024909128135203218870852181743596369955081171978988085912760457701965323150184862837135408937195131802414043819236185674282918849109627080742220718745471072185467591261871457168638485239510197410174149287950919375320570731674738573352884855574282480287372319220662231673951088293138728462067531698193307143639610702339117672845560731234897834159761802075328811847974040192084538879044382684622237365869796328753352427135607277829463200379794768770016052636966376263699219223734659376396155527979959658311271097104848710862799227949477375668127664698231981165515445672563786263845268757987882998644081947785431503363203751757715599595472832865923492885408209569101432597042855033592822317166407323981003786046250517105299995116379282450237246198618592827711240100150156360128872136147720874794767866987568141983575828764625546064011589892648872315850546554329919022292802043999057849418514837358220531548744170555396993521083733073455361730522652970661309929312198550224928834381061223461109139223690052426129977195729835573546317051513988766497529729540218486120563561570739161507953303787347921372543288055605020376607749470075816065752107517438723968574673240215898057200301299170683650033177111610957413162966885730037303581478227291620683535679000689462174027606174209519926732249561462086317190519208570576406060249333996605730674185830442953957228006024780880627784587698031839978524491583805942419717465813418782222401974395249252160465559737253167436984686140878458030386899278085793136523331602566975467066498166742389195777279831168002161053666522160335830581565004696384035550907794391116366112075958240158775457435949471319771807286397828914488065035441151858709375364315233274054003811976093384027956673855311980588183296510394421647498663346054916603455486771392311550898366918186122443728596175400037537789711650714200663226203162152077859536056831082482960796034859204191860532151580954461802138905431352833008190395571406731842723237164609551678672258404411399145308006443909863671605187894870208977214981657116876851732620469853016157900223494089810561805864852398151976855816274396182918443621871395649362755890375813211458635548297430157168427854454513212182015184600985769717082297912007953508470714559470387244005170981965072030100309253853252512068259531283079872025506506170019005141434623863133179553635081321086994065387587323806735224025107111003094509372715830797876016202238731372047030990816282317429871616789687075591459896473621935843725885658216449527310607154692848624780547996489580705984594304279134830758319924871971561686392223231719557738216429248883668934320584143394429960616688084675760790449988225911637437235160241307707097155445576546909379621904769736537554916677087280805165804238344863215597745624389496153951614431981425879532948438081629018033420207686915328133528433494439405022553358986210845283518632983138404559942577618579873662472463859983375635254342172015823450907627992815282630403181509025807871396233989398830141024184513569817856846031699434979298625178242671440288481152808956691181796780463174696843776142003819435300021426818679372128117513757121573106673576208046647705230799303335121294391903276590857246466053863852751642960655201985440842907765107822487990083302726456862920941307785092177228031464911705320721694616202269174851692370847181598886369494300342358170601611906398203302359184729370621034669730297051709686042210206144892252942192750226645803680257543524256736198653704398755397362037641233043072506847668626532110612391587978640204356201382813447812993954196898308114598702956253150459331113505590542561957489276540163164531347061117015636769803060525578455093788735412888456651913778732405199339255840792970682040368771579411156692966874332764487552230008211296603885626822872152561747570691398602560945811014753142016932506952262514377858431844076981739638254377387175161990394415611681698337041078001033789166130168508244698325795761634627947475103902443444464165369865279306243798112891375857308251698998065861690066030838579149967130628626071186640864099025660991005585726900008448074703878513151356086892730817656861244658764860182499473899850848903539573278333392806820857965833878263094396765445809241364758394216904148510116173287196570936974276176775900431190425103891542122932957368674400825417595597543617977305660455793552001408461315810263329736175816969913370107942434468855235751576718974825967815028212859016338591089820941325290198183742426678781060174874441880474150587886787759671501914825404427190291837020643935464740589129078835429930198050169148771327312446507762322825636716672309020209564300871407760573427722179886979970769771665109583520511394310349771964325998370359147872453687847906599642871026908107815552402394005402279899085181006324631732323727361615846879491626471948935872614296085458343953789771932059260543158084206367625810250797810036504058976204103106115924926909565570820753922391590977055885761327603748148841003820048435131750265974641661104534379776623327803448326777072773358259425137751085776889904684865499683873080667129670697945825577809741731165130678865862232374308006188881708906381852621103288361849136281835630133861160238459303432931206235643715936652250708571921198901860771496051150563002109829982248210527326444213026834557005785871899278360248659707011742847545492982695772128728909509778870204019250462524671850466534501423292631799393622366395154344773734142512775825258051479758717309021457127717085488153896501354757843127337171136878241278062815101648200967964881016443447644725924841675872616836353421120287775592627162954892586478017544643957295577370442770176723331004649808593729391200992480500493827704045250783176297965023182119030854748714228426851686519443527658977812932688344734330909948663492022775181617757549937653100278393657333009701055279674319132729330825381876093853275589663589944334221199390207333545490609914954190022315645420748357579829898259909586925739246255117264529476171453091713935180187291170148433480295214599556807851408027414483008167084804429732966292544660266242538838666344880035040155002369415331787117490229374187205530548241133909135082465199880518793734359079398124126131517937323044732584368347994173485117768817420717795735829137071603768743775556078625428510340225448199485329425378190839846472530188808191831912385704653871809962199311271655398117047430773996342895383734285626386142733391790196168434456774707562277347426572292971829708672704190145810189205672103634400385155853182226513748400359836533696508786528451024334360404532885638943368528507105756621115759210071408921283628667361528663049797659424915915734722246850017634738089492621433558716125566353166622296736315217160738081998014725114407837141582142645844808391854275605228063052665791468951119523067953233946168540460049136253795918205840219987118101008448574776891712304194368440019157517810985744633377480041211726928695765537567733519130647430390042662931454157816622403315715986790713272906406915165688341583918986195308357565432383842458782820428805871586108943503456855517682955840608820589911832795526732757630928603640762165772573879807484466291672195428951151199581417857277159192935498949233163342557623372777364041031495385148489202588601718711465699764920564487746720952295741461342812928039259672113015041050061343359574396910222770715241314937590199826850597192677350799254667892928930687317081766304856286703654449714681983219108065246504727797134479693086776930627258752807393655650650911033882851286905883017179998521441390383840242046577467246693055825580127765134143175889622615087202569600387702071972351016655333772368434038984383580800835048535460649788538710976089928564085282668605718647269194951777736940558113165459822478042106663816507858376696696079440436967922337769455262523684814107051907004894026087715685016594857988724586763416046548849648105663007528814117868302797210310182136028230448638160896537243356652610709115426454586163226748822101523090499374586550718534816116323998613549396880839956634733964875946299418865238949999174364957546428209966564925565366846373564576264737099845586749246133842227974257136831040040498334905053836406632160083565279384597604979048647388739296859933563546814613424595466718314792921658498100089183300936042325907961107702817369542688966132875947566363247935874915658395684166828200466769420400565336447738585326108162579196412965720550891820170335030429180614579127667709424232955716529935879323289483267722099640432572277355088653196441874155771459206269535633628551597462764290939959597476567192698730451369433413046836521373190879625105174762106265950638587392336858120024080129270340336739688515478210008255111606895132013650936852822961029135920950503212106099195107588028042756855100647364355442938692767471816688831145183344916359942056645051092913787359372554822276622178674207200129729151456398490892027584285700342589884809595015371411411771144762337797790859894228512633341135548007052068021684201529652720428305807473395501031651292902919126340393793143312515212278726567495274477920065758421767017583141717633959957217279651334535535798382116415938893215312677816613644918391347890415425641069356107664815376816457325959470285723868109477241802826048483905576767986688929327767164460756540749772716032972066239970585768665447294798423765929176181008378052135469025881047854988031039325598447731138467150449282980725834547068448258336354398347080743804237828839284688859101709285586969144950082868396430882549426879209375190893733701330045219279517639794786932565045123537660726474776960681793141282849241261118410726621881147730563407045815135841111623270435741914427370683194647396518099840978800656212423498865372349489508089712670829174499584144050696208404009253347554105745140512269057246071884301205430331396365258231959503159252284991505780525024916584851858579126481233660862820598167466121303493396908104038060984680069082936837827605886038873638660847588105199467332160874791853805491509915648037179199822073956649695847634898371950086491390137382241157284120655152776176319959779902700896165245558079710880321615869987076615455933216703177933133717339562245345057905666040428207343817069270016015894198102151851803715534730648277669322674642343729328972417708156991915504973511615921175156701861131667401137076903498319003985902177644737056341367537107944607492605059683016192774141729235354609975091097442382261839587282020497757915648238030077069356208644451857109971060151663637917056745217925959546639916955442046118023067417972223788856822242738620612509149838977660873360411326029159944895404199389774586508747522697175365297504134331832061639567781094439119447169131790187136945881441458845530590539659628049917394102671633448763398772455252470255545688116740754260233524446686680077623666451734501164859203275285064139924487427134918674519552911024539375928303778402730650546782855106314392929460043531579623429368708376560873569397595095330190418202576958661391064313366886269887438973280430947023820648710429316755012601939107260954465111487013810465123916734929294123855623969864661633656883735164269662582677046383796080603096532055381235401194790792871459207724018809668064415861088836320472431242310102424102738708870735429414700307403353934352422269294618886279174177972768676799229943137266519590106103526072539896960060565294865512724424863573410036493195598886549143799571223244614969422752509419581875208777432889830955103510841722270838022696929038915210568946534047305241647639780991954470647433173223348543194552495296096161733290333873228501030443055982945514000515256273966399767892372690976398856057537352373294826606090509613640332710416854683940439794470448574710530549839884538692981641082698003599870984503046021815017150460713281040960612540010492576803334988762601853802425334242320934870005978063407116517174324242135247386957222948139845476716681946177555006744763912934628344971772501550186749913140780841991132114904895574616299613981548116829677161381357341788644816884367171634909849396092355806309733100680216565276340724892697263158651803392659244322229140964826229019186199214772616226587502072659898836830968038013171744670539489383229503421661437171962966206958273795797210117180805934063361391447410359078269414360002840034030638683458598399867090389043184128766804306665992752606561981837753890879028634839081505048662589407894215056877730448038286375970812742533342728788868663059435945012129807288949768288849973046463554269137644839288116609438978976718572392216822512935562645882495085443344359497795416602065759603600663144588381899847450317610344508877759499782452104747563484496659685011666547864076169815608380916468251192530773368996406192313997913223972754184471828275972607499634934720133481935455850961813262022962379949240650173068720009936363753936109213273718155976224098335406426497982048294471522100448701197263212144893593405586390965142191702087216634846266644754177483531492948583296601145242643137767154868054996984394193968779079569351102848898452002133970306776107310654540955560506831886332107779850575451173970171147333662632825479520078440452222548759650344086034106474147890164137199903572350232869600481445200191739620097676221302789440620724038998208900566679133952053082254670795151924213378941879874106202136252715788126690134868073770506643722407674460991049802213314217628436954784912076443353593305964738565593023285654626574310549439874346959970542960394259006102114291537165867540563612753482607427152848067280735101945384925360103858625156702109120336811077501037342000721578812832818720247152941268233483753169670648110891688599917760398190485772358022732155724833324074788400606951378166893617978790356511807511012208845781392221916000450530880323785616076226902649288991805270170593447769044237608421087170935934207012157789808505461845400963381894176106388353384631739289913770484567860331019089468243686541828680106433876619964810723120706149220360971770324877100647983257134985491603363621097414950814066591470031970444104346413567390871619420802604548726068692122768602868901078521355264973512549927456395733415977540971273482325221175845563860625383124545545168927533001329349712659005496148580382307042715123374522088279547541055112975717510313623007593339499779232397199998945512065835983478026228234438337713621412250894142447437809515050656765460525198136938398511590364819328973226448580967561965979066892147600366022810013761095553089013047748034407530634389877011730898494654975366511997028600082167096143333674171242206435210229606778206428194478905080623000021898793535943507161640819571782630259107546921986877410252337612712289605877093275213818647101977762031762634822601721523164397191817793756771176621080516153882803900682347696758158589795610953312088037999513306431816158184579911252979446577107879311155114583784515147252785904712487435891032124789155722403603172871141355348710285310650930564797124488890876183021420467845684799684682801515762896798939217385397046986603026882876713742873581376879206889863485195358655750809245170975851490334796061030991437706450870589355870305937859104318593209346833931859172247330677049193275433740857235889560799787189163576751406636845033802354231308473228771110228478572986759972461323667718827931972478808905601377687631576076405787318807284296084357974602269228994860644503538452028486529179866745451841888320057832224902440216364721347802758634324991422080196027157266918658931708139653091252837343145508741095856722532452443685841648643057051559274248572877735783180097782216578205232762461974508313527208481076595695532081831602857795613045561525132338807143145931296449426937450027554724736949574758312131659949764012382668995719326980241219891620664561367049722582264936775753459008610002520729332999351076283868763532172686327837777474169356032912426546538358249986283869252507891074130625321559185693498111344237080380227024078285330844984617641323934370200600159677634971465859759532844438377572328255875837474688748739514561066441832478301502991178361589019183664968533198710976861679108682240983218683741148915551825840390687529541672958452040897397953449385915091882154813031844064922190752388201822504290354363513071600496702084277812609290255509273553020121238647214687208429006005524722638079315809784800403912910987167275643596483063789638273828449966046007199206194092168328098233511466185649035437062888830110508143266556922329017095633492347983663955294018275041227143150766134302224130249064006139796179605615558589136235831458422853600739656477838914634626275052165216456444296221646091981335724261806622693715423831043887180309419911680618531833420244617836439223520693429323331936815906307289823807229066341449778678287062369967218993149722305230751583606983307721126633378528790378702399564185929475829788908911111073088257776841576353140815595940431426905831652586256341289526788845259730042974424490168829709765886746638854120122476959472146915279987175001492555303222113435838266645477299898114419397878512806869218717117213873705235967104849981450498203681300656822412488986574399933393040169568706099152366454418368534811018986333965417262763287458980414024172696535950177601556102769497293933288343001282794707386180798303706534423234060286798654781999425024805649830440848756349530091460016876543327798339263067137726105014857164497106403324434283901520670669899913890889213913362457999919320730194899606953780469759370831217523346956627590403904867221431577023459991505103070866192007111229784672339193332170933859415296187837491270337166839783720668420301249176816691383571724288088854173636883582706616313828562523156985247579421061022081691553717919398190808362926814570710547924389418447268252711437364044614537939193742646603245505434308056762511867930004754353209387369548614013948876597118590761037281626454899309204284812252532843900769192147832630955832877027103265799888907336577043181623735310847181239150128456761875023310302349605232838066139227745705200747862146442010533625435378433683186137365705235080757904032403236737312053694576602696665340685188211731967010117770833854132266430041371969508663033676273458912231728278911962658958751416867191397023885638075395769302373519193480797543694160239333273652920049550705469312551459627123420730457259508494550884263919968852447340295967476051776275505455077622889876309006134986159155525522161417565590981181880691682612170116504513799835113202470311381424849307442781842539491909154735544593507389345548903068835745909948749470695381587145953523738219829021581519775144227607073162295975194006481293541359146739341349556888978169545034142184468036765967544097388970754505805802417890992666282239490108410039970157393186650358816585470771842940547122883549902362666309810784322527720332279942073583776174315342292409115601101089536161257947045328359339700951786829619875584301610161047549130962458467513288340000346061087513967371914573289816098887342401368174533048652865780280970085255061514860291007982967566480825537328455463355479760606188625561739587049122372124012624065200325842961857553895201913095125524486115980654028020110380551487858921046897147980885383097270220768723165637415586413903855059991165897112666768977986404991558466971470455526874859897796533996642995883980399036960335237132249902131598582375637515511385140734005971040028896029439433000519564651273432699785232154264893890099605427708152356071351530889752032300567850504201572303384102144917301053540771384761211358544737887670220577627448735921618411949619744510641687947039190799784010698450912718019743639541935589184086507214775574732614795166301140276074859722132688043493572991997621163842986726165772561496814523384636148983784919345459557559029844376169990616032305596848374607355947557900777671775971546366659035457841345203158383454218632895662840797029178239096942118540780972284565850004004193839667535541533721582876387108964806146076861148999938065105147753797854452365699699732301592566015030038521383085748435839714969599958333019335431512009657603440094284811307238672176124880256317590159914183864042195023578104044577288164032145189832389349620241363990306050107560784037196449928906348222915868117780255735762129097873729164890334401808529070960728055092532754067431838468522446204835631443728536223455386660885645398952011543570002711071113956900026139122028143753343069909201015269388538160762185806644112307860627976952859262454429533505480748076312068761729950312253019230220236200100783698431561255925852138140097335219779770384798815334093317725324760726478140127934405381174236157759449363046294065655269988601470152947607687992508181615741884662139643448300807086973863347001208980582614273532687621136438022924249368858997568931583683045495422807678791224133896365941634504253071177182933809105335978576293888382881012102378352298597879562243763346694120547325655046293153481412694470081320440159546256377450713960890124224465036905701212040581664539147574464150519040225392284447142446550379807796230756079174606164595939435214573763699386361266922753571813962484681162507625129878062623521872609739518829326041198658804114431031807751301223384976272486554304339203314422861923012276003070577119554912057796953052573298144379211283279049579165533543661828631433571279056877993428050630935539041784901616767897356243956893968202831038945866486188158208811509137041388859905463505404194051416002300543026407644015215557602788486763098259819893242559368564613160996156550989381511367798486018249439335854412404911484564542971826706536234122976356410264301942464496837157947160844949470163572432310250553723251369467285735786129671617280217314591215452290749078826791821731045191648320708319090857532299778163285634923840037024921885255110498761033815445031152522267874166038803039689174057437741731917931510265074431529079641415425900798180967203598470532100950736765923614583226157442283179412915473204647801376389964323679537173344520655414626872110360818487224619824314349243408355603711366624506782094953365134362101683680263026494519314816574587380729873749684200037775027358223262356608134793899456536449556856909387584070633767733430995502824578843960552917560484093592577261628413876279135156043200641295524125024885039081938761821664000676391164263570377234281970138755457328299867621985890043036624288137041186195817298946084059664938829372853262327333353498960106587833779961023936480674319491388060309461884583135162378766273894693843744493780600159985626816552024797330728018696176203134723613196445813583620250433668584713384038887823093534207050608071343045070065796572552364906504642235080495452326432032220719563849065265671963568206262520351980647416765989945611276595733016343474053253415787408783138067532252632210082241685002115005138755275258084762767307966590034739742645953567913160143877365848959277646050475517357348640190959174174333572675089309004057179220976653731888033942411484380812268427331835557259389110915128176138178692533376607769869509000504295065474243178969349192995276152377465907256634928954923731476545806049083375379339713099726539767304900626019778374895823433241176370274462050673675359271560247804986534219965718018001706683318618319022400347870532096563072694680941507006109832245583561489819024072519877194473428956888722241353393324102415502820083146735305693796853188203300815911086490509267508699630140468464228039151985960037459919559672076386507991487927793374544809088635029873572814958047662652924653037140322050531297671387166261295000036107090341265757741037158666562584233047286959876602487620176946785733986190599857067637635501011517965004224299198883255107738291584213572840054375160746594033482462620620694850471274776220402403920237573064183113056080716057451431403947086713916116958968046259369382408945721586464845046955475049737034489965690384241630973457732704342884948129784200697625217217458175684134088808901986063894622172453605495842401976760516661341104312353208525956447226739824083340827026543738204599666360737396176366235096682500545731983462182325756030772327341442570659633119755037210624365444435451085883772932664088418081800165743423935129827027987174562667896987323796231055817126668940220645187685782598723730485295639785771173526335300751809971392156564912576635787257375424766297567531028969799928506764351671756457345969305614712564519771162894804789827908716337441983041838621386963618275610534194050259738468301514831912429024867714044698919344611527570830271802041174823258172156193274499167382228962931036763998328142060728361998930369636424387321626128741102437112038258779154483785741125665963548477954571071642096088635657760730051727996259206538925999938579997516612461600033646885638015766267288255082921757193929125176102729568403948133052844307628973585799433071341103103270453041524437302840325242212872631410054509254613651626498686771502910147527023995780463283609280674022822039508389590658245175668958429469032381867269526965007776725029744272327560159100125767521213995260962644501371770755334587389039968522814044492064087289244705389171369066660975075327034948032062339644138312151685779397085080380932786490819913929257593320755379026760773560542651279776581024505710562117822068501888880426157142858033977482403527454983141420566485739464096193859815939998289408650872192809649510114898793486621520316870882779667044852112876847862752136951497777338301651170649600634637972310882206627679167275735764487161925794801729055312859100781576466254172271809005359784598764691008530615313414492112380919448340181701804629420956946890221077341313901700112569373696621285421107306116807620362748638905290716245229860879805808385321164880826684623272146431553506956322161844567527862889751923209884881759338076167336054569363890049420985749767009779051788620061755095995370675489999025681577340786547840717010913680928901520338810959046519360165718921194003447929268642334025419257393864779532925620241433983390305823232313034890227150131139559146645257666351590586563258293935112227525962957990141878715508681956147932890522084847817661857416147426747093687069398817538205026998639662976237911839236003960189793455048052865584678063133284406501696674336406126313662147149694696629342157280859886384734235241917438528595564489163252366325039379025258423055054883791265759697809258520162866950400610998006186183816204850926593432709839768742272883462121244152137626844816773014721363452932480700452419994287672381734572000411984787596935928057552900742403761719674335715819319803442796833147260057709883576636012291859636072687798521614907662180114081905482154330743581177111160742155280675560340098650998599105426237601017250403256512705208678052290485165171150846957615550825348508148032881435122106948605730521702285517405618912435194460490593025515952359462261362174998620266001249813409393432248272159716725091059588367279032010579672446984718269580227122111341564935564820429391298295936312181371045839387922753604111771526933836973365221693656035500811965493802926276707455171557840819496789512650800858915980176213251906469200075787741290041470217042368392496075293844605745492223455265338953538949093250890649741088349453871802327650028132171347489893798678237495275619889067874138684168879736803950004161946858485089804704642707094041720261256640238933276487472363431536144599284204362523028194135992596662023972443202498750954607163635443655414661634606129847707013544324695749482177532206215325207212215248356025291496039234085669802685582821566790749848720455983132123656202600413589978427383720290816571486954967210644811391115382446422712148990047390375992037000126624134052102804093636923996730267015628865975711775914093238087183104219797893777173563924633540636795409766052896680516426247435552575394861711868416267425280227000885153562172870569392857689000700725381034604174986076539344263377576989239803579557177068913052862166064385630646831160862075463072866453322208876669104865525379814156936006399076301822094771760960662984040872647826432203284962571704355840620311168731660727576895511565802342840725417791770505614523754736450141058284614057614068424952708502116306301807555791363855367593068754025706352368900471598301265393814995728306169410660040465959930737831505524764361858117178543098799162548546960785329208114446462301665216388429569590203430956583023496160696180028742932766317319354869504672397817214657878429015875564964808493877597106782306424750206766238934696770716100239926779135477500854189543078303497322855294782355692358957061801880479620307903249196967872372208148144571351963001212942674328852404392975819014803032046615648314877548073346583932231409801942572540629058071712170865107317605749665215931476008773055462062267665690840883978831617295414855840176381132971569525014806400281498587142599710737034256017407427108632558476492061156168354101397917534038790249269424624801268969126960960608733850881726007122756022583516625437024714374975494903234544185914059392374870605554239589387137559553379935938393210398510101781058923067605678202364432977613967309670945901507319041355271274703697431592140156048181758764250695002572201465158204813873713079361984328265661147748027010966742083162544773028610600026844132243125577959551090527461542337152938425984992391971274210081540355920133239559641987239765100993365668340535658088037945340716621891917430348539419623490942886951051520801745159218022140790925936096391135402092816029586969441358137398516043914525620258542460663705530853438199948590746894465728803348609720559276348658886780002518943590137016465585475327306253138363418455889420841738236049889373281539539786391501391347753332683681896817561330331170199966992355601453540898920743598994636449564733976649192049397448323081031064176599772874420584292181282322979103291868157665673156428389151586726067085837523030449652962075681296318425398854761317141960209714680437063032712352184346586309426038072500887961710041650128103904618131117768867432130189071546782321002405043736144980093637885192864828600589699165149848482918035398244384100236514536253791154454767297540884421554944731486807548121841147645747555663789199158767484768210728148312118241725072878937449526117494757554142962154004236232439521448369324111694634136128459771664037154256112215851387298091797254127050465666898472009885264237095524959316718187229717551261384176269467291454133863522759693868133915944037434209964950661936206879211461249446052990005819639519193793038951582292080353821065497014119831523955882349154377826076179123235672454123437184142559700888855965768049595644922830887577237989966353254145256116487981025471079655697496407029515244876936356115520250424904758814207338174763346537624293174149853498293998055670772897372794506540203839026033523553821659439000469873897827941185067789130012397180313557596281136269175831712530718961211758871739598012005508455981367180332852947345080337744575280280556699160433030546758910832415678436413313346838412546192400692891108389018173812271595507867074914488380504779622133512189467214030058974487147395464325070823805898556727508005838238818706784173599320530301730294874859389082496560873864341859544267280202592879174230437443149266445211100692496651934436496856968991060053104654344638054268043065259527122195736035466146037256779838628209833672262734718214393263822652257015490534373373201070238169902041486469948254842997539776302552350861864212612150208487060178211833649375286676465238008699935225954036994860817606747700820153955407459003318512329959698989254034423936036322517516634336572231371516732482405857772840784073806511919654576418958372482294992341760349695346784288857507297350767920573163166590438834686323735653574679405499859819645074666243583663542397596837742639840862876738001602047432364157281574000943833636053163231495451213355203824261900060906274681726636753359884591160656519818310067424200647898175289698798486176601627975190897839383147776632640124370008488587238398711050580286620967237677496151976273382126046925044124159509583413165330405507268169209455459838074655844124826603037236917673473157315778925526703981023262628280397744815125528963201886557750282923234985578286575444265364040495507786793567862436310557854848024169379066432536717620330529082985799550810526017997351722369082993278551684386888436982829825866613426804570543636760001134344745251573082920223437730580676890903672178214022611966497371101601636535394487510922488064829285275837839476435736745528872113605729061577139416116955182886631377749135403358412986398613248080835825990205271150379492236209070841661316074277872076421438708935914922027702107388464328124342836590262371839001407197616734791968316160931331837077358264234794473927005744206384455658125294674978211167991100056222671902023058240027681071182138279770643398625057269121037832850164424311711876948183480882217864731668633348420487700786790526357714074367869677074864095189441726086752694666657349265790090407685249009448937343359309221565469485614191344325088493223850850517249847362328191230449337619313155578055002472889519498516883781274105900753073406199051800824991645088934277884908393692493481479375783184982726116929035081053966736752721917015562915193079594475362718884044867437742771750894568487184435805472058017195173308838096854809386207456809337509388838054127428946142811223455582131243052141450004146151141688604407114757717297441389657193079544776069395919451356884666390641937513381652673198000988974656022382131664607872000138206489268453615414100164515168924350040414519122934313295495114574008848991106744048514479270474107960306839093061909493352844182129445826502595209352297076284347235147076913741850287861949383198756072996635027474727851213810063986804115730752303580808374653920494226724682550732440578365042184435077972341813236377771692667042317009819135717013338636177254441216081897253208313410356278755203981402264953166326354863368836889260121787546849600580227042382560153039856654281129688457982334400560465572314741923715858509983228402145096024763698021491389624035302779890689436509459728650158483927895707643340052908411812694229730379320472798256538966358055772159964014135415436886209284434888280247692754231089976417500482858823136614723649073389060412844942800949015468741798339181309099870854354527175458365847892846857088834798238444874969413793772031128009530386511078666443731760366130157412956132374941418720542667851592763048690913289136448824242844869261413365865127299235451412367231160244000631350689342207992792683039090432646805069281993640657749689879089255305359539841162094626615175853960071453254851758070188198339665057402711160991180028184512144621494211255836732219334950226107856026923254791292851854335796299461060794816017226205388127113828251816927504964021262401151991136828714009893687319712701359673303269936467771089117543399879747440122995210923239039653857310930763677660728960285006549042828215279050079284627918300542701436868515699148452598777268410628653275676829749115729856188087505712113830506935929196334271127814480881498014038401065922306515845035684653101198624516886760422867123392292497557336802057195208391391399917046385142104535865141641111960116383457256910412107237842383110704173854858829309826066468529922605400392004679801920050844747019352310490095684426275091770386157802142898788677136741064664288818661265730945074051013519485259349756738408345094832375259310184069602772136840687432838432934295420574728387358704743526985869848640429526664616574980057829433691064461347006828890509523612281472841129096340740463587587048910144018125881342219399898455032660296690450743641628061366057228443685848117751852451204095651483805485321183836784683802804798058895189304789434259982967829399287612454756364656625003707368397596917251265974960419335516564388151143381064761793195279576329001883658197823406865912108389708518406403850593888636910608380630236116164030955807679449516003062496370273552103030858788402186989876510001965502221773965236792956969486413106674562609771136227372094235564631689239998826598546723551787617508073224599261777297516491186416834094721578398296393963345271064016858447857290161404925299227978882233109616744253945007269520548755390990403310477167425663230360141161169319547664620645690813735589289152114473070603199459813259327798221957456766545083358412240252620297167487956933002007736215007435016859839405347138721873455442783174681487771019815420123319892861988319176919356605451718621797441609391602033863766011645919434848604310320309502620165600224500476123542445345562543161219352196911762652628292019757000598607019530918861242194236243502124438964978286108523608716086654115787399415800039525350961258467711002468456813100829251689131836370155702138763981152343048044403411874425110085687827480617017597064655391345473088048721824864478814164479881406612941199485625371785110948155472161648137349287290209630634357030345926957634567032451393872222332140592655686131761397992949682293711305257004626666209079650595105885792317098746388772545492712839862140349135099585537423979463547047018003911266302301866624986897983827782252955128365190496830380285136342000089438601665084259686199205062051392936618859447770368827128029253970902563539461408544314757316562429233583967042593374095005028200283731373927763317284748605962875971112211325191791040487843053485857149051745829889113197088828793747987674200784087295574295885825477070588134889679914953640507739059217553248070068384510075243953175484183552993703422526243840624600209954892704431112707143809847093625770685913855129783504626236934820321573577434798511342761953380636973496019984746674425536957071744088256665803039452307189856430755506091002871123326515774233275302869524236940590480783750706240362710511701790293004765105162936837103585296842932442757141503548335244912169291211532740336994317216268368027701947176399009217391244043542183247660133945372653821717166153690038885524449329571854833759347870611724843122566401587297109431547570133605134186090342658859648675293584173929354346567442005640359289866934380379275906798090003349630399782909205011202255954548653706535946874906101428133925956397007511773075066056243261303534371553078104410463937318902636439962737859467095647916548194948576770180645183410671951416099281940133507661639500589350023784558006454917135385259090391262510814411989414418345434641780513931290175069447036643776496342671568733215925944298187612645465013614512153777969277322900342441272100129592194510440516435726036022456354013243225026889027315764109688987210994592999484737578917949494611248452619367033836864569857330722777055645493937995960488271331442885690953899329408340984356617571360476644955017341136126825800309835829586936316144765507988023392386527285371993808142177109182168050372498228877145179149767573280104344084247522324601495777514648271107695409270226395960186676594654877908804577968789603672592313134932640469403145802945134745635958550185439357749632787986366387149879753622547409524656473390238226314584435257823369353236488605923762323992487101253778666408196542839545051706420789520461243387447078998393964022615263073117568324248168947234741489238808336030242235374486270593213691959173806106445459518657403425414361776503863934888454811200250078455390390710281043150248528196305211153179383483451812190468502423154613862678301200183372389707340892834933688749165640311180626822671761992175593347840373555373310953613145929738020817365491198246170424051317184847333934888338897380801383998427017812926023355052919385318246018358303698547297524395102625717316830434792766170060422565302029345229489794362718195322714339644834664607839002143158487730990585830419665176791291878840641950297416609191255540290310333668324615900802449639757200868316655665742973483646094480207044210735456453708576194669090441316934034493017892321764848787846358008475464069561084739969243899853207618936722705463584200106198048728721500223105253092768592304604748477720974282263696590851466286404167986262213620961384746059268231396340830364538716908330797731966288715454600722795462600687828664575460044827061743946541070844583741417013043005169633240519654365496636796809794235438773277641250317354305942088616434145910221808761266083441741969642082441836241847568483890356402609308700318567960851253491266881722595353212011418936411908263328565970865009741513671967171283655468973532689930654918211528745099255012134951353248618021380125920382945685147972346081016534452758959353303302267919563200188629446277656115628610660098554472007696307549224726542171260664052108327578351561664328077307554571112611011629480302401919955781697355154240589149694514433853888064909819685468344953776125555067435888540401871840847116039580265514774089511469579358499804875327337868277066565062622110558360344459269017029289248075679803285103616679852341801249108403162225362357063250266935421688052933635199650926296348322541127088410633348760251406735663039584591585601577939319057714006255640639093584928584018035099253942766672663248624749629340955398634809769524988793173507777256110615777742350757359760661879389200391229706878569341900580917354703926450643556730580801199838705154199339761475302316345126494737781782381614991256843124238758755750335856063738498484682159955833162930598941908661430242013585850712827417079768599888181895435387851427637660540277976087792562256036765618131781121465721660125045336247152788970620501165775675465715647844178031604984802497956338319823528627209148176350243383006266323069759784296315035370664737397830236440886525971674493544282181980461033949208115644368842377386295876424244016827141427614565159336919462918419231249551842681093877276022481639951798806159091664360956743171978580769817552777877076509406277989011925787232337642959734119551065536808280897733458688664515028404856809443690782226193475520015662453118477424809610442625663975788435092175760768676506272600192300939719052606447590444201179865186608091114796532342824471202190937210879921394569636175150076152732545544462493298619440851834312435126704470794813443833717772204788175548011990687630226048642281063491990010529551278680960454426932749315110217885295846633944804992482551621090209064806880028149127779454334043122476237275764048368066616789635471506972277340681022695813265100979176422249757599109587209794204803190650078871334452703055342623113311797410825105907814096028496355674454284695735492329883770411242942159641980995855512600250855696289872322458520427132786203727123447784451624933877096304868955477133004168987728782957843420098677126845982091513459413927997298517366466546626856130750337372465645479299399233253972193224197382081296452957298918630416101758407415493161269253638264954695280248253084503112865283629437764563574309237482656700873418219979916840246781889200255114274351431905648079208387109552258042928091036045125602387510227401969743568759146537632679489990992501900313618086744571711142832756170067932999541764434652088329126731845931672648369347685502450712580634674063153033468751921339474261053638569134096552498075899072371768361487385004698597965180104202430086322421286353176887111684948431828344459677715810135666840356777042452650288467691940802199317692720172412890054517780043561080603112705899201751227705108020793980210189352150823403590299463880058430859800134345943085656699596469672467989458379539806577276871222610198836103896317068517243116035510508506124997541320478700993387991978365046455396069544597070253168504173012402588588829012974816016327740702405777942129965353504462963964447608951088691463871237811826815417006529324418289156049069620207918413151013080198794434934385031241336625575093802113450855944642694047801270445667071479085975400209541806639682341060068517410037497781586189871308184021311933988767398741239298671295291869316223481778557054413096310057146423521958556228738024353921703756630421171716727869986266324512364720171475690408493210418397346465542376843354455171944726012373599615235610167668956681962311452233580543765058160214646665195621471088436816549633965215000403936981169666795076768903170890331255640618779510377440380250805572033650188087493807339820025139793095145985944343994061000722193224085026884537852606798697402194768742616823037587695396291654550842902277576158017355312917878482959955377159710962330943574851113690715845492844970684094240195064326019559833535178826618174068473831929462376627017876098728102880999488006819480347222209513157015553377660621655665560016632926639703101937435471090092930449261538767094746868340860972354233120344534073758598466317986636565097687033290623746771827526881602587188586254612173762251799489834762951908736072659330232445828342605250478849187392080103854073341258834124677531178835033177258591984596138605888883552453062875441238257655680544833394365465875405127401696044681398249968834197924100218502046399309357295243729637641926007907387064259814160245723197489412356032499213886376481581494638019633561137097862814105460630997097067615279933309230625891323921353791064355627728548814097972150868182319297309684349642857812324456215219055728748116235287625479870831203896712312345681232180820290498384205796106598945500811656803652352919612223887001418842345581096584045602275832198554079622228502036533792752143867195946764596794471459925776383847553919976778068537050652253810563028517535909942558442731352766217403346592344866437510019127152794150893623329977587241610258297076056673900326354496316334058491956584938096431271629878378396954649918945034953825979915767170449074927292803937242904200437734436179709016755626792032921058073005717157361543226216913717490131826528927211170826273549820241465024564296819575304676976124124407921766995756593434338284023764363442616858551346914936274596336503028328382159166935277513451474375073030807013355393461739757263622839741922995085595204820836232527332536019500472882486469434199137566983616955351607730253641899371839386848573974159901075240753726666345884575215927897670615922922319526502542103785188937294773655827750955036360123439465679554708138177547962233428171592938172188655745558286395387005507470404550839759024171067133620640611588763915986331922800549068164341139825083799789800042401268057693969453294251283270359691866957796269834019252528972266345535924894039876997494895265604344635000248030561841642427671211387156785874681736705634093546696844387911421357293086193074983148814030463938603537060284738299136440611295860822385553673689470253959499233083015235082718801152198864488531945206973465549408424001006159159170344512565527325183023221686733927379778120853673072990503139421954253842801598667935499710481226199640792140564917487176058148702893605328366271624640697982067807984592438668140790383850296467664562981423945137128422249962274583102242087646603722731007202420056136920855950746853049622190836595623001162379349681333839885609747434791041783725407581625586184759776642781694730947445137579847402377975598357306079032958339495313219504944110061241742010573137736339059597457696137284647932008941089627807400655072559133760845602613683626127466941083326016629704352596465682530019573609006522230014381022054386482055058861597210381807046181829666516596576520259066733586506299642501854065346493307365986181961632637057412529683049979913491654401525216777407945429631746315545720115312700835923454761470490290885299269864999352185411714292712733157241804393716038347256000098875013544976537813456094787899664973384252746593968571070944747591540154765788453456558639164016222244290635319093689222844327266299379980608224300059561890127030077412894773172538198258567215009430108666841379047425198865080247106334479956463555427943037659691372179708012084972682725269927770484444909760154447127024720869668241760048604558576142517625223826552600301468971899078112642397221302557646188457301999535209198974089867869817775371637339258435931290888193884001120551616596262055820937713282275046311935694053863164241513709848234416198221307309551679382889559786164183102379272555610992390716565576391983479767972005937283801471501220463216629390439146352664123995257236793903844953607992040617800656252406299523797707545973694249159569515213667489768868784800499489437930635938675421544393255871694774837561552456981548342069029116627063751616027608876440666055008734057889244935238256891111308640136356752259725690959805635929630694182528072198254809410751983651796715709929695291035541643988398687100435639995442156041317497575057355234195363365237874687769172072917068706912865140335927956845174245664105226867031991736597424569533903929824109406511258420864736277809347628047841047003999556456607189348997989892536610025309908389627761312280806763737575023035270412429944684692932489259883950034523428647228488401860555999761282294763106289107176179501983160259307371598247628556021706332624898159329118631813840335988721937740410291742360860772710217864229685111275409113949745790433737065554141157158725534640386717378287777799211373860121435274372143385119810621604649604436206681132515435422888511429718258369437530967668892575835630309770262391771575012349716912216126894726305808586689181752633754044164170809904569828765645435368099719663046139486559784688565505768030806030656743076278303044175064231543117000204358742427541236113028805576105522275579185142910126482417912363594200502937586614749473410788185322557666715408746966599907249710515485996255944653328323017188110006681245889106850705880454422155558895003262340410778213122434306669719147965531945978307981987547031382829394252166976508322159363667883011813745738198897909469825753507032283303604644260355685332912090936008452638001496629860093813784243650941952894923662145794031044982456086343802404735771043529643672653480502828811558809601934263420677291716800378009170023328443366133391703466148564292619817077230812375803570286089915630209229311286784654712668288328411226502763851021825281287820777289959179834470148251633671563928293179574077942126794567220147150201074008815998099210605785258037892709723998182416470906570545143601568844910460346173682844191246912901196854354312088786840730517756027513433548447462613167606006735609963439529672963555107936112310286708561406345131562084564160656965087198447844481098542491317459573322640946557926993682514981387809542275378637303625794372340328799318723238219748114073280391748215278062684637979690185358792539227290636256449202424074821273718423652387279545330104381233790152208997326366963725887225217874523932133460560523355610255217056147414326659632148171406863125112968583379559543058877006389570619355605965440151217411697404828268001290189267026544668717466794504711851816755460456498417519582791505266145464890220854538454605889777561430631277877467960675747461386401258813255121726681390446109230004575035530585154060578505812986090856371125955443981002740384883824648137292148125293340587662438589461019090227660322835095417300158584880921313995400055413706611433496064399865741360967388380300690765176312132957496158353176287350125039892965654534514925268917592671019624664692621593809364447840020301048960408024837233553235886415244495738803285258590090747463709993678268603776876279606779740605477530920510335549260388021445415640682866197548252817759868740391853636150689297527269744655438141271423144553873099158038193974845287772196041218452134284387499266506458378312845360717536419934596614481859259609360544883880432493972245490927510137344604392260658963820651625547637159787460111497009770104924714912669578215780545045242714376388930809895675241414584677833807236866823469102688358694022468888660931726366644802794164420570238267550315741847120611429380932095106792318419079970276716144777648521664289926033453088834460251377177437637213026533320469167041608808143111266631987679273222081818519841534869377025715036458812731816020025482511941581578769734628478718567863866683120529568943399033231696858966519785533889535582667734903941756372482256498423340013773802277013041629856128550858760070103704544451962035355791431081160990265241465245217750539813843845290738454641231617461938853837018324456280641575751900653646936225138836719993658575515207867292075986253694541583957118668062630402468907269398467587883130451219289294562006358774475586575460287809902735539895787938560613969806369188440143376939218402619083038892915952516567113467063129340800158553971260897650195976313648765229646224919908220798246695032078306805221344773594581829228115772188185916177246698131944477004036947554702739021181953515820972260804737254219468527169115222806694931783706658176000133697214133301770434030185147316873139768595050506057362331354748941446429796201327278918525983208689358883915326686963329762388762981234814597700409375727798631277852140522680325131098130962272444426811380228011138245538156350896996683999545731040776837772387749880150185174866606817118776014738994509090271981316135497810016214806860617678642068638673533184157390834026779945347304211860121485844249337142958731783659571193642368133563229295263555928665026811938225327921558790213715316777189652042674030681524887834852419436765315335868547911474497667927401167124295159007547408873603767989465244149908906435400595494490808698677758952506978012413128833361773183627503956470957661366273347222151782960294314590456029744333172874440156581554476262305208412022805857791879037115311004971917855568806979234862166917568103102783909251140327659218579137427405468111450201690734987312155094523969472835095623275339750019987578698535093846654686742397538888853234915607291801697180821753831363555264053890428091435230510319658374330533987457887628950120839007461256197285581629883972378737148523173789587664986057216580557422368292692005970963358468792893710374862070514378129944085828896367243258513731269218143113944808663998210329614635993706353867855191875817840518661775825497132708114802164053803373606511349739195316372890225076172879665264537131344361541832839920594948544396856270749057464566140852924422499531632668902977853655869717158965189759329023966765163073484863217570444859966839926649579715773218353966056547258393765306852990546741218030976396757247482186450490049186569962700437951323943674358028172123634566534789138394209367215553093434313810133931453931005797909710030699665735952089498566591734655568048386503308071350301115656799445592494710841479138619252368505045996302691842364320068934026932095063850472135216706571970448744198991648662820311689773436178126891393422456165096180978223730576185209615145994422648076127309203126609618610269697926174898791737661294222859910061336007855230922676150865821756624930543603161555619263704507766303203205207622404619754838306855419528086269703037610270545115818995073737673265067388980441844724299188325922825979663829539773119999888109539761103374132138555923272917417926004413830211649863346316089397708355423596469806949575794737589201054141933047621887494947612633592198159524994513223229376673698364563952390396722393153764085403337108218092678589487163132915102636308999277706676485758710945598525282140243452357970172960340509279893418420396149591592851245031394086667760347074651405669171970522350653183839335578754439471387307751130421799957987434032338760782469634937425932171635770426748340006509933645656464908346791952486735862115253607329832818879844287359968148674640546409288393971000481696457369297040813608402589278317654519069859450425806849441978342553299017019528979407422929223100296181405726411327578663210827540574925684625688863795566927339797679126161990199538574198683784999210640937772023965218035669543019885716095039741245390304850531235946006625673199922549180620427111004782881375544372315919615485989472974316655589505833265581983810641425625550126627471565239690155908145366826481282513707620526147918681382248282489232676399677445264700743801643122617653029192919553522191376119655428773931628705669458562031968334299433740493800279381104886385577000964890493648592359470229906654306948944254627898278513023893690921397249238635048295507810533252161392627114536965556781773894831799748338303004537202152148431071419928852146170885514752507294238518409704658176448768890347928250680920171714619599637868220843830701846903863323124599954698431073551998784303979957215161233156746033488231510003438732368259984719310441127971288601804238819429164572777448949389027287968021693993208695162909305204805036396533020933872662424974825464710516982225287362222906345450539729973497192875198957657020433565766456764332401348889248553935545265685767964918635965749524251799096242008926092957291152036680483812569614868670787183776973726442114734700175297330295128595657212387866425552704738213146597014555268296683821873172795270260815642155758958635712461107020780140545388704324471881951379120088397968560106527914611725652346021087279364021840321770935690440276204135626386764536121892487507584017419191719180996576267642668025338323249518345868116626736916294633620029907411487528495518017767517271869730894523460927315976487701914107368370390084003080462463817318318532258413783734228484951260644810025761551427037550332431767608250201703028766216707765221793379075497649232487777292244115900848812776940576979654410368323541544069259360362398735667070070699037785367327551825150315750466717584558017689066735116603105289647014529512782603851098423859177068032780176454343371227841211403056832595431017672314794389756384081128171766269332531647883185746865531133171291723932204777026927233974100051463650146531473602032223029190296886372646985551546733133029495839330101697340945051897248327055114295068810881929444317088292586645703487618766402680231886531192111035078696642006191625654538974595111606509042948913159101769258722263033707277183370461414813637072608449942568381676060951132024090965745027057672583300666231188628168113293180308047023987329704228201833883186208350677209663624229848303063396069558386764789457623606479418505269628998765086031365825398896953801933006067548508855001716857195640134517109237797294672221131031674501738745547765543353336837602812032989018982782810029887223786553780072076460798831052581477171881625762498028172219014341911425308005797855509820895518724272884986112240671280536500261980202088914022452636146486794052381969886332438003854796523207718924410243697000532389990573048527563365789720309457160241016326731618849396994968907256958537105624870028700360702141497714213378663519194529463673832789572072072249014821977238234268274358726337207742660693272799406961597358103988983403262005894892739450578059353011925253672290975992268050901807899946853052096444032689034761439258120145865974628139263261586220713359109612854164403390040859627112837524768905488038444100662464431862103684799745290326496939584874105770537114021794363258517992501128906536056046496329546511863869433878775650030756177759973427264600803983126969767140042401804005727187500964097143082464194794705688517370765228671146186558959001636401921760610936745669170195777504890893481259514867660946595701522629084996672535404622796679767303718533730554029191694290274090652286877908706767506256342012038839141579667776959607197400039068517131519334011818348109411158838765221874105691372052627274482712162741571528116593620850050325780235152418856094893414782851339013702687725279107433008347279173432286231744547755194858238527509581919313445729241598089135616626964525128147106003305690553947020767401448674407984783344793210172524817076382564307353457953456870983249273453019984770187221766279246733217549756711291692928269201621963250011402208398520518568142581781716290537062639717556950690285913214867430405494865097701580017398186969635220336319598497213575310858620586253124199546319295875351462638541891339151369564796356136164289146651541166620836430208650022614872196097523359567672446860623057428071514044635067835361645016622366819539811100325169961142227588080595193926964549109547303280267582949044068758138085539414187233674393368920946354541955844060786503528869098017335851064901351440032382880748114024514195424258837021067354736439324711926972508267136088661630313067337362586858946692318905471760069541432770189295232880409833054268712798260735396226496093298801647335472206237783442252756862207463738283757442314426041273199728477220649076598701300951831047854231199576693087785633469814442535910158114600947507678177394405732370179970673095349737079783059924188299302562331444265133800469702673151921870217743501561548367464370005492064978778433519235471679732850591733770083166546414438875802440271056112149972105243536125234913683905072957217716317697382635142386017227362734062698755627162087589347514448619656975702678110088042235386695444021815950737240780948740836261421237668192136322621699919352528161426962508968841059384157855545087884886503443534380127963930696136940106151430128662988583899151678409950271814065884057815996693973795893350114728563639551722471797451389486296760534615443128435177015315568689920664508833502450613146686580501729505905139439502422211010754226718177858989561122231947697525780674091849198539491380741307966331264536893260409800936516083608244662335692068834741111155085367920610292285992620514372224919642707249520919774853625388193954036142116205151223951084004386628106119870614332563905607932226710382783124315732172087034562453247045234426557074831283570257780202559733694373274946015890506132431444807049958236569307713289554610839541172444297827774474549267132766249461131112476213928388618738738601758567797820941842029227477240406090829157042361051132877364321975274187686228316167495620878905174645800565739956903647013285034429224759166952638894003364733475430749346050732397466658171546938889862701512221187774251610039981314871051499678065219650288725088984042278793254771973662881746980102300657798030710102607706848011452676009889501025139509161319347572600258280335920028487098236968726072393188095006173943188446815846178831638838552215612135080235879904415741486155021339326984680184342915716777697306373810590579166093324423607544563255684241862739458520942689529262815652025559692699846157287268652546443944324073193350571698649562301451921952687378147932553348844531471644392672349636544688534605433003134043871957145063438992129729376742755213688980216866433802322145888056294458865415998907498487518737654598823101361393130273757681514926547612235596246295804176236669674119234522373265940794407412311326719131240614711682475434823248389393985283087772561429335256620845048052762756271209640439226151067329320162417736441773364472624544358397674022281830135112154793247925542562298193278077890949756465121826373949641126183118783217558721946374364006709312722129380151074020984851351119966574977350284734780873176182982176350266527144592064668995727661315289547700680383776013259829443423192544779390344087426173661950980530545045988721612504584370442428448998757168096067357924080553613543148486647040796080473428308955227908400144225835363360460032828253987956338706938483815172144849504978706417000002536634747613930183014877049030341587774668143299391839191832950055094175321764932480918205028912667809442040275947125977704492928876634219792010226646189747880369404469631109247303771437962218307434946446072652546553377264435014313556116240501737007652522240799844761759537340023961636500761658445419867966376740741601781769866627208591000501607260578858590582617911333278337915097434622288258847508797475721861771711644779761313186999187319311863976508790521893914249137225094583622748833071759649900766722390717380258618543109093999302943904591416672911754845357734857112977266702027955019277710107680014408612627443515634863466536216147951848674351425108120030004472434871877277956127382260460231353611754732621148703750612054307701379268840203013829922913039695936847221168242847177813096730557961824583367057453568473258768589295641378836381700736675368669077055661757803626841228304287696127930637870290468687287363852163924979684874503592693095603609538784619249496017204952392987935720948801184982833025807489577199034494551542146542176612589504054309820753973645803668430725228500388300802459131897356131452176177115348726315779105397543432031781835967732284702240508952921239174892932410069500525600562656010474177576949748341911016168807234633448724984171024092878287002774634478675752440236868793752220281230850585830926446678954030809778459978223570741406127841088494910416500651236822516812653363791551402488767935596372612889687468261772034247531939835967938099604954770753587891265293906986702724673868310411207928455941872240300036984412952076831895519138792438974619782835323135316415232343871665067488784292510076713044628692008644992061616909991109553607513098982522811603812875382484322887219647775802284967479106409800644621572989522351967575905577880024501781794845198357923406123865884323626630365523377351092221481443739353494634572008043932471259709024218907365909188433217546500093225819562139634253994705630680140408310189389955372448651569201055426469302450929745837783451892966674738022653631483875166906453825465159602647877175573772864183900523776054455928166622546942174070240094580073679817975766793153517551865207875972677295685965175315839311086753621390365456832571500310285386817138631441540514314319079589744166379264142224381360704037853805356495284886588127223942193179315228910268382741879491778119774988365293747440142970401914906699038481372000996711222615890199645630156349449812163040217797551833973059782068605555129138637546694082827278104750571315439403966041628047188339135451407961988212020778520498148419483911443211548232820250118964226929421042808621871650110630167723110130772191561150330330858581748284027868190258293228861849208847413100063207030191510277994676370319571780848794960570973262867466273135601625016946053508985766836746401878093759127344138476975995846269803112328258650914816161332195183925929259903354128649723093182789447691979960040017578459753543088923072221314156055401724838356755838568584682514813192199087894630769577727383291369052137766485873864037563414626537486462650267811264564286479572404341858965622011216902581915982352416123664920567741860746131614964668002931582125461282910263807554503616775604398918200330852953731152526096155483261830646555312178628586236941756878405563416371576962409268035012002863435629322487143878326689656906672169565024971098516297635822544717913633053763070257256222321118955731012500275224252398713324940185347260660892779194397247520269318263408342007830283586669384747043434241603539948649342824247046447686100577449026240386791749733907280596174799291412443758439090398891110819324985298562530735923468990155985396310641300736016018568939564901869534063451213624960516285561706561148495226783050282477595407274585437482836510684075755067943876308957442910030049107190597010805984020645766578141298502084837903156038901216542489713546123587708133427623962304786046890606811633445046820927654591445904807650483202112952546090260158996659008765011832525379240888975249983628894955004437380688702749100587521532405703922271887480203869269384807106370997402681795120676251522492836765929788651725773861579787341825427733693558667109694351234798402856886453512842180978355083766772414619005705234028251917425415940503280695870435707716325095482830369924491245301097129991949917350482332445989796887353155256948615678219478401573584869778576687986310050214064017196185791866775979397679228999553825264960808538998068556812449725076568932160418725801522875380333447936501331196278289618180942504702792051508333358198589160010043849087561200548058721625153054811562779763441443312296965734519881094232696014791506795012780100693945210860689867316055871492146628834014905893145176159234648247836408444235280507147329775413530488959856118174101421312477532449531901736537349893792983446584559367481450810614054617716041523588526949122041828431917927564963189490575068714344738727721345674178450093443869965712399233918035093818552866982819037254560134872806051530900945631942048282393960843901044598270386120946808996211159264851708992509790130956323828902005393854454665884993331434453633688729982759201709196886771159388663486303224110705319825412954891240900034675585450311873454552593840793695846045124313016255874322669390724432960920699423258762552741813742849017099610253200425620330564484466675233879487865627554985262454862687371156124156153800005561924377822837102770606047799672734494244532470886597280713106919706825727037797530870392624524655587748816956537808455953276715762870900779225348483313027075126318668757949801800698750327757928500050329809214290711507306012665235641123085379849795930056842722710863025553508729952181819025457823031378718546227803378801657354590610373648936290268627296532098889184677205752864029637672151616237556486718778987859355044885019035700612116334322431565509499889714318004336365619272429214027345126899719984549950549398089472131633016625769916779778393636187775172580811260242957660089734903439459309233142299660825902326023682647667447301757342499584493248296503968178735293259074089280192865681577910489525949093356947455126465639056503111920825254955354942193856036077577419710605456758525797311366795424760204094732255144123911962661875068607756208946125093951817433768225789214729715219872234823232976562799796138106930399077271454474629272807441590552872978015052907171689053111460062062911574675137971460701886507683046699898274434804645440153401469788556205829046611619613435056182108845662543694140383752256980825490423408738683758491856307221695033607802547618769641806500161050122440460872179808613711498540923936218982256728221125107082860436858349831796830228928561946943183508929658490710393594343861842383456132823334759771118933268560268290072254475468792554057400206002883779212701211700518847754977159061475426546917887004138706416277001146570864334541605910073484004117209496128889399395658954397996939084407128634791798391401409209258357608954721231141957198964314561697736410101143532948391766925040330622597913979029294857420683266294873401851397505429418033830260135418921273219469633151461278979512312983513697030234898241680812098682819531427528603706960930529622010946773492759503006102140922747283912504139974030392764896507625834655635943713408012382598376935201370922154657511978972573386683182468957779033248422283594530291370861419544994997448854583557296590769754265104808896714796561422630168073550630546827021451357219496550284543557280670001887132590302895338774917793767393942199424600284558514862704536840678032882086776389877275076025039977769977837161534916076656146081727301366145015918366098141893946432581129199505493724967709646490196400794329768524520016070872880917956173432921193633056123890141185696813270167127143407485381587157023571186682284434706737410684068215883254599696117376309769475502509886236547318708591263378580269344628031000773056650224912067113230925011110150783820430425078463671500494518048232500528859351569113335054350227037849627257455962329156642584600179870756171713024643901886174955999659249603539065275188535875054744934531400588232518654113608536236345192964170733820652911892605042362968378392785917464046710244614205622314934352527767384741108479328937425267890920254402216981575839383949847079804402747621499240493260589096160503579298594956150677534983960895675146751774370163649407413961543885055454156765477759940416763829943234146020842129167155026315943520370506844084707612792897538809551505435293813230784499364766607108050061631674168376948866871782487410596284989133187908934141129864696938263084605084082770980732186327238820255756054701448100173004313589335495860886571335652614011134438881675414653655594768080746300527651738293443654704826916857279524455212101639762588323101895038715522470149084769391554488896665233827477153589290583039934477804277700527880273783054820170533421372513915992791274513652117568428351771859408763778800976563017816163739405765346480615799642643082916413359208570643048611823873316438953058273423327295965982471044089392429698432729075060058524158051857617955314671141566072145863190403834663994059845707874400300309398333977656641453363660458304606185032716630031047867946612177698437430291108215048776042307915008353845043798023745662261717939508108826761104906248167840762604852614597599893654383376084778029994469284162790082274404870390557768293461676693720959463502920522961136625042590000603747653340915677072746980000468452404738687742571853026467627171696814513131396002738063523979141610649019175459947759226193839951991270337044635406607638055874560395090195316891625474100188917287592203993006077112191113655176919033823660492034275553024736941248030289343827620956554530342704421092717591159510913300652768104521100765085296789683368601269030657692760975606008683547125897136203268489138004128811684435005568218484685841057964644915566715448079462050981210004079620895570107755195530936749335762673803293156859239384340180192928939312999367459072847537237786066954303992767885991801438435684456820347848176382806044731539895875820786962319963610813727587624390167503064844465269764143749253192185268015619584327118210051034950781488963108790860508295690701725714355803364523992335925123119560553232657693026862125703329866864042017825887425237330134247046414890448812269492435476650260545912869270155097913732922914394348947860482353717004510476230891369325313162977447412308648466010326898323813385109834611843342669167294344383159700559109930867374655323544471067490428445714905212708492020941369869616443443849122046221969498967702716901781943954508549226054144641093860594967587316733561737785551124653923237806676610638489844269592794446445584785938502689386662157812632955729818736421883403697222065161276816767248417962250569348188814533320334109438904937787782996835662509390251990033606867440248107163227421438977080816481245281179926599786355481692615480668898820159924444635486095436295223684032049829012054585492651567226098726415501133762150759456299354151891427974661933070709388563533606928407092089732129833265120400432715092308219429517881721774739633875102242530548911368783974231699518496524374527027236175843964673316515800645246049077460257062271582830654999792485008729006160538113566474193539956595625116372412305971062851658177577507637015118884538425725995450909511711135115222258488314269972996981407426503046437505004371521044805985408519058343269975830214769530326067542925644214772664254476419136704374434357621006555878681106217692820827256593629495884217109435591602815798289576808242653591102303089770708005553356292051942824819855615833831100576656703336607432845108086558843030336118299081155974679602759556228677223619128752055481611954774928693884763730416540278308189571351064450578220946329009468071419142608097235462271116565743912058796338622375435081487116587565815535713606688383079605978855825424585140021266491621959035226781627717835117559762737499125098829764255334206946644837335895907922774525991795089152470034194995859955088222426135876946167285657215028351165689574736448852444656339555588553140999501329607164562256109625702068593107677759605462297866828548215665807051005889531268635342255527213755993872127828038263601539355101197793376706223198796535934547199671239241034221844662785410754770897714384335307458033842838132402438595957378708335650286221332273890304076199834868381125022759716841687906648341656289725350185170112949437015286482029752048728495640606804017522941966257000571626347404417431949668572200075924809909369293173087317377973999906620511451462816911874541978781471296111157840463315699153355487693324287613511741045696796430764938048735301872023364862033867742947056225092760383885781370494409242158565121292121145609850113522522541132216187176521317171153065282438019300245869012214145491319813202010865911140170195226885587137477068411710640022358867728735692673984418573041930560073493569102390341827904734110661079555300671453079649831311235075668252195084955450152271953516602278101302706333196946338450725814596800610860809892715737973732660424406526652946395865036407460884104258493331444601090674587933342426826321358474239981837564147865021040464004099842095208293355847840813179392355493099770300213166661819224819404676206471877894201467311191824006961823109161126111307172600060650985512076138006199465951917183680919866137460780526399914571630737660654540260328687976552867060368517604213421915294939274191535308710088180457268275158363245456860198428139596853533987223754170735741251371566413033075344318878381498731250971245200287355441944015550865450220441262925383926874224240597808944458191949976364915502992470404746157748356013485823585028527809577688939099351217481285971583721268016548572202898935033360800939943536955601458348161325602687730827761168874431970877976857472011185603939182877444723599526692267673927555865392596027684356124199009545070878705654657881666942859190122540406374277903888584981803879167430647489688055905364382296466599127660381505013915613246650139439223806718944641567411540166543014509145592894662142451821040310456963091249241214927748885586628400137441981043694751403403746438994403804243745613346234781326838933893561593639811431404236971290117824335559626975853716264609260367635202262405579891625301930244407713052885455704092929354135063095104245637064426447681181725037817999185225510049192989195730890599296525227294115711104609322482573526916089095070571899260363278302923538311350416883702069582915370042994580816765166311939581979169452746563992364471640281199325078211791180245856918336940791357532496756740789707535907554756498425833918784882320381150618181933099872244642108271165460588921479642640192991530184215227584078476849784863475937382139931080103659949687510188881461062067625261414833103997225671071485872958859521179387156304147748203558170493804083066762139116775401352752979904628467628304491691348614826823322539433289476150015569112875127135865810876572153111122197092928705075840354482995926304544730938550768302720033699454180620851994856399456405719050561977155679342190241123805669632413486687983047404113474065613363865031717887616560227162270229138550876266677573310845547689039451026701551685369727015589061113138651232394554590378242227489556929048607280934867581159838216008442041567595156615644331713047122210540378271259723191501308123348518042350345996820334650356868647058292968698763237232972805812808131551854808082377393454188389983061062980418641429720450803385706383085077174180016242630526306864645998268875999397895215052570100474359995849921440837590964392170545582569992097136709465030664707980332165125250624880962721580656356081941214958873443510856687767919697361385307028135286517014187224452962437400704876411997364532939614450450497649004495648510434887178470863366370418110563669259386814435514054858182786298899960179243286069462998220987532404971534656135127705053732191050566257782667645451596337373560025468035734876321096647978308009449954821890265069672351524539675604986561627621952916105530529918195801387831457779192835547800440741388126390237805190875934208611816833828670869146619790226109765918914711880214491301027664169047299212403167703328328312824286678077516408014754518327134140963653812888517128387211551305490441337566975534438240107339992259514912011075084273522956844163154818132561096063827217814313376143003663146876200320166063087751649418571980599764674174185385351714868478135433019861795751938891275989448937694664673163071607107761812495509748613342704110366238656123649135740944520020534954353393023448275839504610641924344865945219804468445689545035360575716798335098648207311461041373839826324116095125045558401082014624852374003189039058600543390529184186040494134015014696030516070178247604338851317178176751731115044846059635791401450677588668637415156878144726871554995075213357190101072783761307901365258265870723209710722638106095050139664694160067103120168742682471158215124322837371459753859300630170117039212486832955615800371844074701394548044279517906203209267233883512156749764696431385453580110165988603968929079834301983924523895819135805239278342809233400843318595630561084532348968045039948397491510386847416450935243366839781454485495921620855229504736439974762493838800131922841472236652230559486097757031630122660304136056442503713600753079868312765793021271804110690864841452146343365472409740809128650470573885728724722652960733841804051965070726422192889849248594664471123992165626857640953403970451800994176823878515977901563767476882225599510441343517589886549383903197444693988595317874296455960768244155724665064765530936685755120925152235029588978542066650410681404523868917716545416592420784337949699709114648494552441686469883691963855395113354985742391048854714231429867916489034077343476875845550756170011886324683217448218104437385292153510354710695991055181766663380363576726746081065197132765695214185402072578446832285563661972438211818645469525910227814976431196387063241006077959222870506472574271799002169524483573155625968422738311964385646366489026810887398790256825903866549052738177678317266555495566838715788219843855756045663981839932125185279501183682279751764274229090103475571254865967737868920399692477930132938157527478503828231073639407411793645051221121904560950540367640336554188823960995592297901040927840171849521251568633164657007547667935092766458002763297471368178260848912466002382581650338646673151618987617465450988366315662552307763125044071885399367491488155924278988749324142856054436920347526276093690530094077886438654283540274883762946655980234160804009887479619629232134054410180638859926741519476458548786676606508363965208533780213403312844197747788503817481955737922320655412360874810810555542550380080155525726118839248110495266543787325049622993894517334363256563382096554191225758352751805953068973816367823456559551203140058742069121843586663784362174992308337067299331792816811800975219838886536853533881095954057233969615145397761036900007511143597820454515767161471727776307004025923410387215782957438149678881921299052312748770741504213952065938205463800710531015850064057883598108222708989050958990723693090445912291887464202097904873499271817585652081946268348826724604029001637816420915449398652611008851402156249528877560220008496456335314870990464502025855474599931041046794666177331284085419040530359320428054325009434386953864147583950189666002010713070812667221428219342050332169436130670630814875298477835847195691678686287996848434129833391126469377318405921657062224916913003118958787705184563099764458574141282899026365339866209650381977202153468597486817731598535696385202305851792681103505265463854177475628433644462044276627081901586805971892579179036052463959952303388746040596048232743659358910718158143579938199803976613422689399236366659608586217380882582046654490950284909801672498462121644607339370600281636907972966014228630618032158698262651955338873866725016230046705509833441068177543922564588498063326830262928268729678640229035297899724359943607804615130638980295806821261598223284466484523462627939833664419395517355582059312117104160018923948423481535470518043637201313314743485091621514162695790200989039976860488401856950405727712170945143632050179751121579024397759792680237562422919087338918592211625315047456502930288835435437247097195168724835623889979651209957253900386305441269416596138985003579738473576302512782524545323523548534182594816979968108169857572295241175361654419713782656960313695610154716437147834190926661368729651718757442578917333540716048180582433129475916075731063281628628403068340038582674621230592650729353092302540595628049427492549319894526763179014684839389809126976171414258912250170909196997656968484076673233817011563936025332771063140495955105699641333992801073444470703957587640317042134845958493515343275736719846515638287423251892964346722625140436350633936125595338624031198924277927608686199170679576358402551956388322364450392991511478231407926083376644241360311937991229415275661301464208978166435077382778254124409602654800807443097743239869891584425539305586539770322607832640694173903254143165955635500193631517611252570496869214409433102571748032231224465621682587129372609825615118458180388403133411395260153950655598993781324628304085732817634710215532696419948153048026119855742021238155280936374584528352870713883409578082674652629311850205916000068565913875769892669919271126120544453208044554199628795302988094918023816366059795565909444543413508626839061309337232977344376086957321765506876008848226118141387499001687710250648372035280480709098627326227550813289311972717843985765186122780512340648907401473054117215339177961668229687100916040025077149713686675209239927909938224057090519444293813665364973264469402612269147671064392073180133632678820151122668251261618072777148756334458747284061742188463971771885697033788654358526185212183216703222176365681393815006994707962652752066464022563864442882636318277659172392800427359410720235413969529153153109074417560710374540196959113526322880602595081395526498791881397803023839491150059833220395154584070310514720520927425892569500307576963310802246957160310356603754733735139096728720870917726713329578048300612460552678123722763232596132346404988220627173111309215867504653270451150148751405556396959389232467005754246801102634392558774177249322295478273801535379018647303543442683426162928106281460944281876801487126392243702558957083463895880716907780100220535378489211362284509931469151601365137350911108635746567790194140428290192107404125604619541371105603148812654759338485741454659752775900462778156410257817358873292703541129711597205161798072796793921015946297148684259686208689655599763038725782861706635210950241881007078318187188517108165653775969198883690747464728867244696528890959901092876838505994767709023949579983656356406714087345331515782208523263862631575040169209968229990520846916695713720852695232122077979567471125151081947450227562181601967390677224124048961396982401185215378685309328962629347873286474001629799684569854297706942749322685923129245121126915939404067521733449661892500899521431518257432283765978529509338097955490640544625734732123972909768340578908671087738867152038121579082809283555836883601156933276632801333952853338268376348077043227406819360699253947567564701927262186561010880204804315302108026432478295237901521394710982721142409572640475801406758197671530837266572129008194684323366492603388989943745865408201453977157560291305162855430818095844929245126763151901023807674486807524073518477151544494970816874218510183410293102633690847297224509991833495133339982744800161281286076453360485107743991189703055938330095050886524545158345854592231820939632563614436085591758565434511301337256763414310623281065983778660607834617797136437707191034609450541446579142340702423776230897414794585646934059826867694505440453994466726105699797670873538795962910215979982715468094376535925588858870108620589697030937678662380095212983450440285064476092079290842481800652427025559800799471301530537914237478650230813498411689606875576742270805909223945850584031550255776328814253822387633330223950744420529607027129484178610246692716286636899696680025905287735332850227030779006202131280995567999275071453210288593018187560006116626026124213515696510348695366641156907308226488082745658137307156542497950961881399204207464061195337479500292120010703915511177536548039814499680131297700684070604419370373075570451580613962139336827199798835038657351258521430464304197176327022100360494817428875883941396070359492135616082828835060710449048518900673833115224605979809609700459179468376575722826797249030262611420856272693699723331879844614660040246852107701018855691510433317758251725194984728781196755275505731170428765883091417439300173752004904568049438063096071693884587673970427653682831346928444913328148753733941151845322733978534808587394666618317904320913169768835733525852629563611337339009149676143483501206050609361606930217185112530505584860590664796345324288629654618586572486043620312400302987273978655963487738845235270835963740616979613373174878930031580919535193271730177578046497153760060369996968657106700451097665136590378283991833984711530577922049732714583985981874107900053941294209292905326321097473531915367951189023119646509996030012617329013765571231497361446817541042175265414351757813198425730601714628058143358171344923331488791501962496823167115405491874229570672133079077534076301499698863520475818210451848294859857012350428797488601793598214769465376180861613601792207593944944299811134398342537977869788385707182167160750343080633140292460920429593887798459416729053743077644053085290487359566090460055274964135581052343207796160362046827383122748733384163083813265804825690274493349142488206971390481655393549985037895983868409945983212611958704701069909247149692299905114570010788324147388048361448609466792413173436850986048655220730263403122453331212997896752439530307894186791999483625967821219442957168094341071968473677532917991011979414326045968665189129050264839069196449319361804377390006317231274391242835520111527359911729214506563181821916066442331825912458606475939610892539605589930899705468058685655859959574349260813769545213130174362127968827992388509368516540726874702623523317822079660707853044794406893320038439773027373702942807493396628683166078767030782862554974190587345386048272042098635560874205884435897169235737970923918185689337752356008052502533979192966506493404364463134311751783816974083234089813939117976665743987358261934996245275229025827483202591690665481839780790026042049569737856945728710777445110519871893209106484827322101672023675063863752201616834535739206090582191807421102194178338974084576528522512803825525407864757603046088359407228970649891480536352531095226954735692572788388476001546226761868805220850388842541780475185129794557371625660670630660075388616099206506525754160755463472820901314412788141744544939867155319216002151150712565080213906291293840070900229942980274056251630098610732769940540681370293896571170846594320837527124796139051034441373379620015399020618757346744248887324496588346400575024240723285936991444838004190540068918874276613861903172302739995923092940056491746653139202260577188584022786299094822364061479113713233579898422340008519302035370610915395787041012577133214933976225601408673828645856599634224850376794149051973054623249688395633044122120150015131015393523705953833384966585261117857495714020807918354986503908208127175425443666084759696564745502541401450671718503662354311510212973629710183480762367137746139907416361884727561548033791228164970754434534495442079941564702975641725427085085913864336556920445079966832777760433579619590280447794440846855260517902499293091866481052104925693577413491658269603795026836003228718905422299386488161497745339497126828350274960521399976281596608771073979030389641750638480020092456928540356546805759140553043251772499603401200926842794579594718383138628586210463255256898878110654011618763383142874545383178561696193682886504943202493326324709262189601503234353472090694736820476349105906816203069788576941984341724574195801550513198542276296272529394704339474608454402262647484622684590273140923168493801396097354524335140406473358528050339637148081388897996438472803443767248633636855698460076638052417484040883681687685378559106325667448978363891703237880694440396083758927541446000837742361668771516786281955540804090990403636880930842115252066152177745335942313350252802455124511699769563643910728297136074087021368747149840951943271612993088517979521972867341898185374000464782778038706801561717293206943707609148627198707529733260453580801919796053079928829247641210133831697004152858349596666465249123563846602838606692613481003219662228259003036641657820383132843655539337919702716269273719151656853182379812278354391930009729063652133632331463191808838980460003353153727701518584108953280564180973086565479256059270607484067604629623619246388002224312634750283594983016733618226075775395884660384655161374077048337423251262019577684291749392674407382427335507939446229638350200876964886065734509372051087430180341475398640266652190578022383414775798875127489845710554622684451972861565680031127633802958686887665856883187935012039860587510418569373910512933204492856126436791983694028388049422011117993757840213802269993346087163430013433757966033162683281264604631921797364029509566776902851465148857650430142101766443757738142207070045297782489490910481840005832083780490147759766713786678063181847438706518217664615418391890941070000122501011152499173809396056701320071434236778997678828751983771599660979748898493608094838267596551656908505540898434006219579648571620631474188860421283908726756792405296050954480675376915395469825337418693374790114141856330329239883046923957056646698442684256962376298229680417832974511178400609182841749705325718618681965679939790403271539297556315096033936769601556371900333323095980866170305302883316532408361513547215374535607319477214420757348107892421321769320366714822981841167155278005797909210387579923927004506130418312705763342138137565059565463683523321900765512970710343040933200111909802961538970127647442918872262647189589115179056564417719614731749384277619820131083448225957977246217072566354969739753187623964390898718796367691423343993570224601132448734599420573106526475810058824924594531897958096223066665678770440013139163808411277253866419397538583723118365475119362533038416872931928286088520655566107976012636828611452786759178032860298972357548788278404514514412409923712586775790953512854326826823981151224568623323077996912200821776709072527523056067683788675902627670304534392174552544929164827748603940425688265478698580421064562265260476604895163664275842411921655546533222564477113543859413417101743716758153066568615569540953885905528485336879590015228072788684270183207524573037367749658012122492106962022153868154962374371938683445018919682082026079860758288759759477352349255564889894606934730636500943370608497774438939102091633973028478653795462601129790750980869398127724814721499029713972307937842193138996899195594737163042374179587841276960802089342330828579563202545147476704175482357999862995061810068480097041029072007556357250338557259725906314775510953298112360724857529797487786326795259014651081741599181263425094155645208672486829781000298175804605098356176375330551303919182380977206030114980615637461851767410461260423141110355085928648524011216268202776874803979421311688430045395657932251982793853545295087565796485433387623840622913631686611914644359277227568161531899159102619067367932872164329938656156587845765884997631706396801532983786694743078787421134844300912962881774707216707972730929314317802624917775441113268078610815943515181974847942418558608611569101580963688769621302793713594810573952557011908181832362928892515789798425917178123830902034134177609174469565627422772905093168561310571272402274319702528689026175687738720377841568982678926313104830200490498013943429914332172675464633189444225078991048211137114896115557486444908156383344171930876656805181368095259652221558087730970155516390484120804476472718270019573661910550483879975725195354357765844117487413743921319941564013955218369149678659253300203986157760258755898869085494902047955846679605069396031084873470392066551674965970207813552039180048794540665474417527358492106241165206550516555549063180274046377447191969163572857105704991452529768075358035388228770350288517309493075083695448579263332290840817065063549967389728526928986821992072214486152051464643942855776250290281379175491226400996635307471752063430359624847459123507490781830256156392632119293941523140200636580651907208365592661231217167168630656611647753974377414762007233001669637822433430388045368571138642219123843632521242751371880256951132117761033819872442294938696274269093864806300342170269098418264679260939191066194362130129844627384566709577184630582464759671261043945023800124749383945126194122693957737988466887289485519054965777080403063144396851870096625337824406189356086938603108131596283641900272993246071245889706742783884320276948480116830202293558604212867961723334565974614805936148711249459251795742306521740954676404605688126792097091410114563222629402515747507875675860792002126759412564546277366785589104774660230443325324435787929591114048383568704602821104224339244998403653446754821288633194487125634731579187716071434974327010341900925672131745250768158344190921277550565655256816915588513258789423711181741296519601817404172299018537895346431631027354017001683904292102759780003819161165393507055505981086602737487820991442901266348773707901070554517572711854607935392718921044379195065462880590363149567495817400981989854403060022096517680214876387377855453280937550639259700808420930560209808590140090562542358744631943324395015184218931664116754065501498861631388514615293182944315935923209850109437432260664924982571247705532114062596846673296801009124517523076149735159326945024045301648388443897889638112919448985045627771720802360781750132458014462661879871039445706521347651534612002057599780842773765037776596471437382584740504568563770275336262847975889936726827224370792180479025166306596558144115909122245290414984357756026925135820193427562436074378092229421481396073869446673349050892740087420308578573774329036329427140949016683728173433810314780673187753425231604562342865280369048290277894766557581171571086326225670402413479103118308877372366954993787603298720574280705766878818967495323616658751332378096628944891394743840789504707669552578600993245922220208079202381447213756775681456955138610417231674302700713772825106690041993392057663672126998709084362420860368663462101955017210182831830407401426201322397475610659561888670662248183857160802199617051067052719057326840074090708533501870323035965374931068617626141676255791731422591313960813567473334699105145618727676460170968497612739975801829037993228483753104520979012053429683444271886150363840338491634931795350369397362194077042624771563285875658254610651942490968498109712430480475652181159799715376312815839799565406694815707159080966687211589160644506043940353540344577818656302984140075176785344060376492233096247711424138636151583104222869896278034701857237902447801344253450613772435042472292127751167754478366128671368181419710691295948423329803220984074762108557745152292716709554353246263770843344364058159756981589619833038736117758517978786324981830401791809272018006811764851787332527925514535099140976496944302825312901393179360785568469022861505410849378646569333960137065311571997015076265080330324128661939485264748229829813431715083051807258876116216411610683475716064004113981403209900830202867953737646727186044716719667654525601062588403148070902743549311090905822828411814477626433996428117077912563486179487847900522434533258022243677669627862066388363619383008609788986585899167444670423231491584024682683589781307689577434140857121574338990664421887951480206622257798011968492758166005930260145245996194649657660513003432710319160347891994574228972760358262621139853036862330434209912075869158094879537879262441342958490166160223523048924697927170492902704415680156977069138259574359738858334938745239459643731622190923396358348788590582005087114517072270480831438017424158795509750649082894902385404783815025944746478733393755028955097502467088878398035382754104660017695933809212911445405458519201173957400928963178150770129514968549309363753689345257133898972873865902426790631882986254624527939327215538726385514550933120992690976442799953869532715387057090763247177044012535323564755549282620039229196062727296611280745417266665242061871277750431585496566820012778304229015106339272115998076135008798675680599161161612096066863871426585607618839795278942535076323894360772648154411611769397264427375148216092798660368356755096591695442184221807102555607060262045469474370898045456360627611743185533471136813734595292910629986445708916659816927491029934293613359089405944066168727906633574577591896509996649034504545729503088844830770624930305960094289633202612230520282188536808235188701179279921929290283763106086523650680504053826449776848537245978970986920321587271028360081686751052522589946403831385727443668375626156293319481493686047323128843827765637055735376683021419537634758247014966262252027364892365951154393666626362750398616865656184595265093211919252139526922133054365383487753826201940219572181260734558475945258500573656047802325436306678225044969864458212058074195410327666218329732524634928669322162154072156803813491392716134654907615467915790686418022326049410978022846835318677225369282418538998892181134854785302587837476116071929077632068066961314359292430220879982337736320432095546106378235143621133162583515534246645568109445619885121134103498212412780564996717703011482424022029963556596129436215815624747684990679009232621743668043201282292367022680632973416830346287568959505340471730937145958487515676728821460137848352807658933514675623833661126374496412655233716487956359050482142578179511634060044975552618280891261395852490273564241892402585254080335103944519348173695082943936431558203411796868778486534459473753157999942242852097637059584089463923033292963821019711045815178558540730480036220557042725363368517318313119196252753709707260314365563768797569355227842662617359139190305793103278766918958287710718504483415150307588632662485450600477004012109143692296039252304543253715192840509330164188432014799656033902025165710602612583733258550424811191489556879213451580130966059475545939819764965832901212124960026016378646404150086132614503089993832795217066271813185024892489202405999274692753343829206789166250433964018386642506002629931566399257479844803253140747910824424707503185964007447136048723487498550034389950702236106503633043057121364287597051678558534916905314778148365339133795657004257630098067544683085622263887116348477954482623499051677019167487775042150172851015343961475773539936453539803956241404225636627906591673977553268541608734414516702199837936989985442047497459501056190857041226664854790031837210910151586242148902984886900032947084980699061245108401927455127481590258726158666994118615557229295887293620184062643536096382395451344804866386324153590625772332096936363874703495170171694220918052277846053997299392980931385875890289439138949456331164760019094771459556256159902733334947585720738771456908217904233312183403950491156847903169867584945385161085814647975615120962027417821765245833601045455264233599744417700683351567232607110310830205999695380279282642748065665237569557731927690735956286157707597419103786172780171224071535370879625924365044884917310326773075183919537313862896893411027790543148195220861579046967734872864304447101569013099477129206032523755987022589696718272209252183683806078520174303252435653365184396978569441104670928800093654141798794061866029510171450131758738560103529048832974553215052949592284228359615704648141868767030548033555649616426334334273588379630748817834624237207290753069790008657440598011681113819757501927806956411237563655606626793659708467987129961689808433146389644751923100701288436858379504005761259402742499913978259979198359714257259378949047166091627132519786842100857401664412945340858970974437854202005694916060611427325552172244902364822242315486905771559293099176693523836816792990234161886895069333379188425246243924008568834101288290056957184612727732370462537168433316413042757900943493935415819895953936132823050888250098883601220381554346442806575571448565073018786263398039685752612361977432748403832495799673185905768722974104260185237634589396753553727502755515604108248021722978158383768278189139159902851362215924289239418975844017541528824211732411885258909408854638652460294273083820611937901366025804018601407761305879857007357484237525175262009517024343087153439780722338677866830657895526230674167856343380705519279791337981157281660711412443800039834523573926101499124404753918299689567491267749984434585374077312560809148745191371319122761459860061018119675917786922051756868337779310849465046251440755366344087449018505170416555497975315270373264285356721647899988552849104285971577865870057066341118932450912678563237263042807344566972091150201771046945763081240043289115305971583843927604330820630692962471930470269393161604941127054343528382413421268837383258065724674440686435544604107301285768689892803583226193609647172318731882949690178144162082172702299394796058935889090082093489007890194967431073339148516964220880814492912285894592136558058471857379937966686089665797597582821572496095749685692982109523280335467918469233297388340122545995700462228960420675613665363947350301988436685229552217614654997983015341322424559659794718104510549388746439292866388306965837654981953682056458401763937701899343089193898419535243518162413043130516110423500940265841525853527656567268211668017098954398565510310399886596657962760302681822340557563336373496525154660812943053920755865149338569580038559062214617913252620692224324048317407741837129330055729453843347875823239023119117865726510307197390405279674669822585826073976737940493709605975932409295751828076957094729630483203208787795742498183790654090995328408200162442151452383085306797868869484868557982507958812932599917548097179642115598733153003647783773430321150560313695447409611017147759464928331835659515215156325046363145217629156109733127656315248026669084253554480827368977693510950896111644380655724240196480039917461096826054708615483284624279272740393865524206629212193285794773865687689057159782836574706073738186430316142967442717068291942099472490652790515203114167230146970575449394068938943687191070584725984165114583013506448282450356804508717400687923239339381210991587156023892949916813954918836491669879165720010616547695477004833334108081846968752551528497458200040721209801619577744927784435899467676762937982432514165274208727501838283032381274868795696672462096967076340853459181636967332977033449133850593431788736046046115149030004406841440188905173259741513420147574254378249378422053892272630660516885363774193179471519724362175314975691136899661880713817366057549657049656871075203816525761062417595110126322669347795264148033975905112358896908027887936806142944060003551942291612626109792555824603360605696776542569526686723397208996449782008423321728669822980614571534146163131266985174825558333847685648982650941109829455502048207303537588330757022929153200602042421003262871062520666593416437153982475263940193454928669292662937877172044898419845955686655066380686937533958280450322886274965701167585146919327477070451985654680227295373951222382328605151236042225874856048873342127455004049444108312985131622121917880010609813820983147828379245434590851203352170038494040466314217069931081928849727926344625652868789938333449025230763613667751805220774288643107238660088040666513835742140776220640186117804468559773528438604681805926870618209809998383653204294870588293561500603248279210282085863500438396326501792220119494099314625894058735014343795974868748796505598306396357794302727644833776931130279245082642447801891973703627090117756421084982376079812466618678623805527806189465813933815422921249748402310628780557254335809414384464173126237813093241525326819821382472928410314885490221290370289366334414700158266578619032509916113362039853578748447456027922843687104871847666003352195781246399500305086280571918984075571869554242458998270406518107355060655829187376614866889427737713634023562773120367571960812011640867160337228026515080320492256697585562099176733308411637393739100586196937811235094362627441623448135198830091900345386330147264596132166025851141624218985793123111526184787689208141496106559441190422820793096994347188838700470265640798586918684183159339730351235323869768006276248967165967935769016256677950590309779649887949495260931448586751416500908485605342478036316615948536453174293203567227650677505554123185477587679987044101410493192853990898858110376812967723695370260372095435601907061908417229823693852964767860097675284836004533662895220683348282240050819082277353245343307315703429552847628248351913745409752555433769411251729348024203932993961698837286678855977854459396587823445577534838687410826406519149965671350789550921418464406333082301171136187930034056608115683064270086867611444509233247477834898421775997912026458479036503455786188739119423323856117362866238489752806250332588002900285488946674045341691380280880553248641821970492166439472800329694194837756737177919300527734432717390105793103609419060490169605552024276337608816009822682694418933742201298802333962473692562363969115794634998748641699377583537966476357298310089358709595120044483050421637430074961249066338346669093353868565059505154996707224996999968760940652894312967454844234091413061767492274874178557424457475212192916354872552833392517837109692104102770304684110477454966931339069623183143030785158533444376414510605401806752546699462232434370986160703698072511060741778662049242776961750196262077431384120151003261649433144398661848461207456757622624739925596819651085845255651524740977049198480772472785371746042960335860587949146357367377689577891290847549908335976626379923210408326306148479742929239142049424068905933049329825541552096350685539180595214002407634633538351133862264536084565296723529947103576044993056216423105183065210834610635614980364836829732391834852533902549421275277457589237185628787907206421022999544315758037274771035960837842528289023057593359907671136365826143483119347320509372490863484308417598200532999359124921258704743185859279294149360753905433216846452769470774753340570634560422859500852840354564846190785681217145993117579383043076904589604105216986922063467221156441751573774840440008485609610556910910706281486872305621614341146502545558304252952046361342101651404664445339219044924826965167138850276211365198074600312296969883229088433704592686666789195279908854279138430795380605564530711889471268685149448643471841428565803060058351986926898886365560469624207082229038761195083449512246693654735992553498138731466202068742269407881009419237298011593339092478516787886593158202230491040543457099652838258186903434451620164473402062088909241697016025946667351810466685617973801864736625874478696463372545744880741097934531518724941886949386442116898505297089577940423662893828990781856014397767692550274495253257099580149525423408351774000160705333089520856234878194310953302827111879605571392170281204992989009294012910551503240044777429473366297773358884916566743952456675645933517166961528905797753693989333987654197150238668984865381178159550473835610063696461253803231228222908111493685977748426457317509175259954676616960324514650222563338119810916326133426071495533930814983561712092905971293238176622642462514825328621768221661611330806238467285542505402061090325455958765367641631807303496200140026690020088919438052909737384980386248243741481232343056720971882800763486937234354973881593562528659953272719756950005140016836984685772681166199645645209766736901151862264759529970886614433407857055891701114578517746469404188971380891510987294422039558748262862556187220593337798062284724058457617354036690105930463324350828981607807136395977817274851630756059621652928780936095124030163502452096810095687049358340383926334042970203701938282860459264559093247023257089144737197922762510888633506306117469571000527334942050197878825489027943074652433346908372467459411305605256468594355060984495158262515537364889592242038356953370143864469050752103028092008148792792369111575594522196440488628711727535156084495650133649337889278983340182904502270599904462977262678237314728145169290953911512118458835707421930294313170197707910436280129730476414109331441098565018083332881050511192181524147153053808374609231912901826900884045998975499980277767926481648256878338455186285107072771592407282665422872092077401035259911522292697990866257931699234147581190489812142466797342346809591760903284490048238581396460164634915356649696037505837151619277609925048247858007709535170077186670904753212546368849554702373021064104258669160907024115770319618767772597545934747246107480349619274294910739258769563383683438429909692816262778249431416406419469404487730987585149770203211485564331723090150057899364724423976372892111327549741410372536169208752628783380511828746234267073333796364210498751158503077281649089244077860744621719749481321528168650391086809431352761752399188212488745527092150046582927748215587196292334871209976893864933580092875400683786393124663091500782616150880626678822464516027075051880403917983078607611086713720191941718925329715212492808672492525303129746205813664079662853204060586586878876849934458986622242334209657394882783101583551959398599564996516067929821643161665369800992740444012594491486834160519283092746392549542233357784383525361548541584141934341105697991847045070128328330714035281754825070652529164907651123873274603012606393697915338620812662616755186714918447573016895091588719935014780150643074219901753055398893821843513552743182287799254472830993555274128233346311697236673117379216072751957414205830900804155174141555507049804773086386786979793819005895168901466621820698846003552924211758365883893049739773310752179741461833332588547719589642628839860624367527842386284694735965648835332347564659946500331862989067283396788034691690582438377083828185305637702285083730886654254215597127090447091368340806262721818450193579600386344994274238125428766466042498994612842337516069194677443044209490277333260720906075179809033690803743132116692128177841533110145378260107312548258829948870835992471412361083587671707484335944440106704677543321435547201114883548823164208037496757673862945872048808520884658584903528535706908196123345346811728254459488063759637415107634344651574788535718151701808723018141246413817914307369628051813768367206676275939085827242706748223081877876209194691118461434073492954696693949528183628983370494963256602006053508973853956905537408067809599739795205409656906722078368107539202525542621130594738255154777902506383622845195034141214979825261635177613704670108371161666696300102905153371168699494267943026177847592889196031803458666717060834477133255327518903417620272643175983319128949151192007088413173662904616516277904845831232948654366491058620982728595095481786716276783641616460517855160942466462621005810045468448706570221590602644126695879319098295789077996089554269628688380898876603702921338628345453875250801670497872339761519249686978600304785185695615298843163616356958058357031603329171814391919445194031493135988386335006785742065597889201619963880015026139314802221975701388703475389461326788001114925490168076506744871797535153758094378227483635357062077165311814380484836645295539349482212718012659387990451875598458797398387298179766216411231797033586331992534617979910100014798574362345072058665317092224314156945873377161051613254523383995201097193602473864071992121269766572200885415168829767114549723495585269771259049142258197590892847318514731623930859750494737837080537374767359766078909351836383460365195720745907307278376828387289898373460972021273560481137777785525950429800613723729620465484465787227593838318995524767128379632372266960827774839795808054893091187138745772532358623066604787158115072042522108552219785723066234373392919482622452929148184420034869730430462759171059125703807350425272262024954479803067560279502204202396269936676097128246083917521132531751414550821398859667628260924628384959682025014185053231889984572715049928132535541709707510181247574883365723396929519204127505533572548800829494133259011514799677783189515128232284595548476630638846429074099012516186924227842288091085807399611697110400862340263556186971805037743858990817912437254773494384470931250421319131835162082904371653631226992337085371418762962358845126731009834242013210477005247025114337567495732850950458301468291125889932406269908384397270010634668457470872727280517130336356581912565394763904977563589212601783451747825611053620969124624286143922037601000930285080351473979823605737188517422286439356765546884568902185756348682657746476005603477546883619720756511214679496426798467855667367164179211354011883151329946184813270161583586884372192979454093359968285505964368978825884168269993553447931966597522022049504160644016842372766455175201592213574224714866809069784046366458099802561232666370728823956489347224882602499127391266519442541935677075437197369823058848162240594746752442079732704158559713424578478187451809961066571763818337250444104672407431627460852648890500660534112153697734361361806361505213514387052889191997617588406547096927137462016913619273595816519767611672855212056243741717913898036650558913035334431785185461931114522866732660155878124793180398664618201716212180323945680931457351438041849315763900303126152758096090257874444947973589827614416837979831518686191869838060799272432973347377667406940970500905399188290637335983663975076696211610311250409220835782878412395011366832261939922977577407121558980059455408064525233628947217903297653584086690425451138350735523221819216254168157630392499364752708794381108195428050550730399354246728045384344719246417880931877281121450063511760172478736874569799136219100439363189332350569949780652651586771595744954682898630632524375656177220569685053192409834429976914935973422205998177715117344266134951484460162400339724046497318105130929156488465328646569039292404313233894568733484189218893239426709722866776640127463081437974429130048617921855826736724210977517102893567902785215916335360963986649828812435179619124979876872893091068545569876689020629179648404519559990838436348195558349971476562581713293859279173728091980864792259979326282462541752874619875185025581505708995108781161489548279370615477168013635040373272025313819617203222458307589106001284243070602675808461663850416807041687469668360817372639747158963850559248941709500576473491981979973752541711760692437511478561325874433305024367445801605712538122060393598296276231401994706304281933530018978282980652132294059489392472247482262962396719100055597043640433527029701715700281342182003497989812855707336376811348564619751940253313553078690967614115469779540092489527783869397939586204659947767534279707434334652341496005395700211997994310607392488223928222896653577634908714936822272678189728253200563451845463876232912150691831224375929036796900288105390586357876919599045535679005420078895670557934535302956473130804297786073619435136212326188455277577971599909289503573573578612061179678212495905014156116931634261664186074779293689529287490066572293995842195964842460079955141345930518050764609514305126831826434541018348836987876102096008372044190634407086523260847851149927853661858601546202153375836221453059218435389532188999910595713553672506674521236288776615936120978848349204521303032468707701839650866606376809044110390804732594043533342010490177895607370569882198305546623730906320738148655086846137828316099149221537919005338527350456276618342809490128322244907353690133026934239316507059902926763352638833138917395854363280648653347485233489950697198650768408376589022510039511846368571345541862572403401543586093922624490009722846502830419373890118204266366983077997683534617108016349330252032980786151086417293302981729439273010610005690400023720201159316152593299192423877626456674676333243430365150645725170560500878010089420785491568153896410430352763629403142193091340960395088738398558036636281914825087120565450231006416851006676785257577855238151679632488304004358401663386466720977674652004274072295968558976597088992197062285645617083174991635762046977546551990957840797724157487786687381590944342963906651019982019466166820650010017252980671210526440684041792970051102478064223832519162035201882912718418306229674629135173596967249823229070495472005753882875183379042607482949049004787555501139027372456530891831933339423029751924922767578503291625624729785739414437696842253039899682863294077811208645760484629874939838315033333888524597301218584022065386519186751519072593779655360291522476613917363437407668917163327729436130325948893516994947616360501493478665271336335766714532281597243015746249376049285758773931785377723928946788843181513197160196973668219674529759016804129447958614145950668233966292345665906965150069385938187467562156110087383175313611184890917210117336028645103632299389097896987869319237850292783021528549796457961127927000182855465676041509278694575241024466106818767456818293979585566870026236442786133555580223930472556196492107321659438922087763650370446321135099306856769407695186668321988737223192622150672748410737387794544349208469593695466967176669003261297826181452917556410642061281862229317320037437102509970059114959461531908946810746576313480632299071678969392402720096699888950939228714033571653148874641559307271230208597756804770543702154173437675606671139330139431425235397008676369150662285767959603491395498533524757708019560815718660503379810607252090729029545182600804786727982972034054491286829329565978608827708094042962283184379965660330006891652990024080411438237478841631297638470754633609075088832850672134127683609492109569004548731403356820766102030661728838876563177362874631859782995618098755365505576842951962727512428352502305531083966144497211593325334797949174640274330179719709766131222171232416236789024808605954989863722951742090532456044899741381481179466597453388124056043836034387942777828885754124985610168786250971165871149670210010138274475083443903633312928028918219507041584598211662940521197140612688292523891399699521476148810481804236929232183218217984895279322383651609545340243626954529707819355010366547872646381973519518960355703486298141853821093494417957061207086040488552274328615174584745849834713087783711718741738478507222282412659126121607043252240301240166228616507254794293931873988827159734281554253807111631298617302933906563068299456705963826219146867857425870244186525668269811693646781849232914547402508231770454066039257682925811607056158042166693513014252085429834407161382196468698630760376951317567137319592900129009631129886112612708731582369016987007489652665377488958775662785941565084063872467417885938693053786680850359545643412748044392396711923093239631824731157228218465857635137420699754763576400757560820496797591877414678663020143966201795692373829910819699206769435486949581869174153416697759713473323181849015356032422545241134708650707110004446102086826799570172229087697146878600394704782327018479142721728331914089028132465890931939519382840064196916031039777277502412337022980596414251582865013477145404029053812254516170838843927646866974202111941157509380961498811394663455186170881334138511727602971051941117218096949139510339896257448760505735792675648493612532860658839762577923533175566135055873098725889348174418802255180218023423868029173099183231619998627192895808307923186974190133862298852717321452778400041277399454140327526432202115812659884093351630301392870080774823993681372896382584049566417724666832842473059135913872326290541324304569676826710411291486468877328605267221870411711865002051320828944438572046788961171536602988401050129079072556164738475335078071077263105427873969767158297832147430432556803510346755536142925721124164446089399706646000928604818358773373902880159983205730412139465126810563555179699430540935420588605072852484250159516976035162496555853959926276854940990985536828889379484022849090801836013590392092722369082328153736625830794548949234060996570512081318269299763172123072156694854552169574921633202537968609696153521216331208421514852293045818484011557674508889145902333860744169994753770763866152991984278422067683963811883964959074595114760098515200211543004556060280041696746453636791365345500430077075109128257273678823208003927297570764714530833473991129671234923106544273738123632228666829986821517925853923890680349356260223738288083937069624588262763787910200829086557972977161502501055935108071746487416533151618461155253862670187301063268317336162162390267715710110260268515655715965938708082836525857991960329332842465518803764734440432318766894215115445361438845056248537207510803552717672695522821145255799390598008912142350587535487250766893550897784437983981316890301068350900707360234833086283832901335612808985852652803631587260914825561896292868349221290096866374131228000329843914732592019507010045381571004015331417835152745794084255017180663891898895500530380593973567293621769317181053227844419388026290063426110482697069356670553244015723857969711003856085153472248917248443621752056415797888453715179428886434031906394321258026426040101842312228333390202907880420179260188038890630560266971877600908583274849516565215114822192789259046657633615718182114264157710026390105634367708007856447951587995229755184917213269610189825183417167263418115383906264267817241870501755204973810537066597202565573381977425609846059276871533710083195833232906352134705711941780378216616146976173642849975847339419796302083432707421727903917825245889146868955950443559605989689143929181965509835673405884787436723180049218393022823099757733909176392268971050508655575154125851863655881419097251240307762292675787798183392097465788717868764749021175785274317156379478726542598497509160181316155056558878294429390928736448365098813769210750865671955530244750357165085742780116619671341131308198106352398952405382216711373499979985770257987160127114434833896755501583469258205024487222331201923753915678826872280087390674972330429681801648737162410461803356232884228988086421604581394876652912148337709292640571174110981678337744604200854855957503473712601015662519457525043595817989362240548508948950799789037244455089306703047494495083786900983333814117716127714712369041139536429781529602122066080049023053522810970581528953207565929158205305086650748290346050891027762148275489228679829704349810394078223663963124709460362238483590649544371174027470884692750980203468656785759848383050866180852483961839195588216251616194398288730061060951238942668944684491310508851488129849214548433286450464117495162107312924827320161883445087434748963245648928832718614009423879106292895629971038431794273034678202417086205410170385001942058218811872412091341647930287174198131880811672051762906794475705031543987274002931054339417211707481318622953124457079743450940064456755339152652305548638671534992114875592142287142196269172405420271019606384734418854063732079493918740914811447617014001543734683709242884425837960728401738317977800798228126612999181018051484075932451911734154034405920653039135255101035215943879288989509667781783778747142394258140572523510070323690830021503615914103924363576190632660302135603454032977092221654666073347317584314508556723452315192218863506097845995576418914222112845962944828521250990535655397378064946904115759765195050779794710506555470593169320877197371136346432755494027224994663901230069456015489099088350254612192763907026405837524623576767011582827090039145564750699574396073618127957910222777264198840782501465453199110589080290762153378379244977878285201378252032068433416816186668280989255038636678267241752981038115178088897866565264296533066158339150554664323654843248951734957687344078811257283671143772827390093404379220478061027559071890038479528731450955834309125726258632922022947237945169551652500871584237866047332870531322620451051594611112782463208221762150980384971576078806127209561883039231415771795508461700595414823947682282734286858590815270385026852964683278604227790674491613589878994185921994419050516542604575445119129793681140465533666367694978717979346493882728711114750025220610823272136076707462719933517678762021432515071279072482529163869759908448664653931132003032281418865273846627643331393733378005258502891578940645150712039865057273056655433651911119037722775795586372154354000270652689360738524045796454430000626619829949877397428540866783220137866324944431845434671840193459246533091868228009496656504028796971651462144435877576923606023110121384431539629742785943741671847165675802528581591937805305919511146312026957879730570415079098939816404391118449778465772855136476951155943453721532776957957709477933817268227511051961031951237487291456540374016230607454738316848362790352156736410708886464509288389487656911362349593402635419723778861808245748119348933438428538810763860144947723726014567777126531545094248400444366572025748921223926741495413835907522544936774321100306919021317352011094654423861294203112510429177906294104078733348334880392473471367586518848316051549012345740215995546040368326752779353697441051802598244509711543889944796687125015912297953620297212610314415323409396513109727361084455175588895630074082437734137016858854490273815006992527582202142440006040965508119820316811389605233436445132141264722894262018648419113250186191687343353644926869603465071400301364886446088851463093245718183507319319279408862273122954488002666478562744885184531157207791933273723737235367350734188407013491785521973702236975973606532793555103632441324010838733217865791500786805697212778564915809386619698239962463170448789292061530831383102457513851612777274652124989606567743543922691187102798871310506612877050624961221906097412353809210429298802960705881384336816061053768954178012224463488390819171414427214872629449993539754435525515906505782732753699579835728158888343113763205803655174087790335941627364706287304306852321039674332144352907090278339134690299531624332769872199311961694277970749891151593007078765395755221687279455803736054417536806706727355575535527772235932743524160061928756554775129917107576875372844309779563123467760295813390024670270801010435705957469656581894804646739431014373285080061455344733028763089368338652461646570144394855988233150030319005718488385561666885766391306489488236973027252014238228892718003646304167485479988457724925458362027886375252438832919710626017687289137827718826132211881476095595911670060469144672617584579312604745855929432439342718855464576324339478066995901333609297021926819594972394868285651557545772544963091080169535614421174874748289601408465089627951397525469261494152274017366687074741295884372550778485863422584943880978481254229411611994825472774669656482954585611108831657461853240802482213508813106659553835536190117978660761924194201126594083631623608773202873325733406072150833141301942280017266784801831394491920409195099007782818455903593925376398485873598123982661569295344139995967799316229716022838847211980434223658490937557383846226972729230494303728898135660483450139829979253279097992369958596856606623548834693400071261787892419866404732248871049142736114557992259445147624850875278555965894959011226294433303152211774444889475313232125404427474768556050765127203283171485447995126404454850545354526782178496296682596830468837726714895517004967806926696653563099061322866839470231822977260670159348904920571424728584455641494109490540518661518519271648456938229516211224860219322650915417445407581467009064445781132091970889750759559115863453452544306567922990442240806662827819072464885087687275026569613608409003782076196319414692233807088864794766951871327619197998497807230700452483702613900446168806119214084826681678249565068584174548927959798247163307047825732867230047145546374602966495036116299647848527536407181662518782363775315130147781332355979866777042271061754639192823641657636864651566057784619078442221626725195805318377249217560883554296188682146492245051777136005459184409410015638621295518693812778381788737600641007951149567770814438445824121136224735707809819830825696896278034380233172990727022505388613760447565640840072881519193847696076724999493410985535461083137470222058547575588662159642058525151099760549042829012168810442334494251853771790256437121396455514639771767244693533467706523754635603560511702686266469705436580279530362678543744700145257820653361234880724938068036802098539430393263444292067959358560651326485626140426916559393368092805267994924436311957528851082095205228405735964227953764493504949353377929227480902453624087252101825287369775867769623562232060533254286886388572771253794713684883405177329917116356647458592449754172282947557527089391170594563906238070070977578375692084928582766987167062474167283886138233908397824872963164634420047775143445827620690159928506705460941047292331637118224364361363630546340358606703572969137322134379321758068061832549144564862421913937505747993117739626446382391534863260674299281754110815732934644206078087601405610830954863296665181815694651937363323202264295738057889166423689970809152916118402044654468354825945135309480800576656096414042382022659255354020870704127913636870963957357413387387922148433419984492333367815983251671036808095526009014057322143659703600490934509497606180613748547602586032575855568453962318734915411585077514599043556606779958447661801072168545708830185690724921104950295948889522876397582190062266156387018795158048911291693184512620855184745067268922192515743550267770471280299609702858933432908171881494821270997555010360171096328391585908053350237757253150911876343741079676263306502769088818298227318799495394904505004461040643028722828895429183868577085534573982352170314027424768797905785307777683270601916798381169471801275619806646482260173772403623371166744912541601719665969877234032260203657037101390504350894169518587708875750425928810541154979548267572325261791153516534176077013746066074433319506227773328297737108700215604113662146698237310162390751543065076397183581729784845131800297907476493142766198556024400153879045462755477480273267746036845639145638674722553886049811852385617947908771464025251166979153303276387885880042144922874485917353346115915587647471819931803981115077635914602398123535563143545605799518582556255518120504043751383387572854651617637473857921964023110740948262464835047980903184035503019534330266754917269391668310926955900994977600943881110828496842514174813770548503034985694976934539158503936184178857058720994492116813730212357147676522964059659138892778676380291873128603968701345595147425017342091016810139661778641692418267706634858329558149787272825127597451405512178217418083712100422319424995198162428495161669185358090791230868773976658929784272692912621173131844625645210214949952253301310655797979486270163827828500754112763627808221003967190088880506710123833556551997966662291059377690283526784016485944772924105732485929561715547213540209083568914662260306999639352358615776422481505798768046692600385137755729478925645594476094749514157678868553252642816701813918945630894076208223763169734605071503458132658896382906171742923224793388393612871387206932487638192392244395553327059537337065929689485964094596005999399601623780019657787276860772256195287393662774909531713851496857830308110954761832072901886455925935040547963209903105650168637908681293808427538939349608169690602641561806171280101404580146614893927990540425878592678951216946021574738383656161570642676392138368823274315507027658163049724802285900526836912627774212976042420049439237755919566596269535207950772156305963311996344928989514265899600465335501354135378717096839289766134390612925077804153126257668379879524755798598957760096795338467881871354950613448403324632793633085312348798407819789192337220720911332682524733996567617947263307554104655910274421311374610984943177250654264911686940248060359908034386416820014159410852899320951488484037469928158009426948501578868595816917626742068762307747453656994304741786346677092261632602061932693372935339009356626695622126432282399072984041839805751362292824833805989449229239685111086919845170563796001345434704645525932273955640362042151895901205580631982568506713766121407567809254999128984133740074387972858533046679768989048884826989173934003989936486778696759814426518168406339147564172204266003684599519473277321496915666796687713951411966928953730252585250202930115973543148485617624735306256892084864802275635945657500781598098133910768864121245450247809050384017886733317344237566867794467757221261954389832044270141884626172841440751427813234104143051632476617147269411096239899620796899869639739687661904532884750750442649641877868816423232905076666575285596780234753103762076414694914494811822419963747087758483707965598148709116202614197053925212461120832364712169729154029335847092993049072765306564728389756585746053119168235130080853499580204856549408792255995479821429299398508015387780048364086336765542298581544030875471656381314095030170190703477504067991904736162454564029116017039330143363498254899261179844612701507071253921382254762035078135271947364100145013322064765548417196794523659356963819858357514958469245588862527020519421479302038388585428649753267902789107931804426683873301106271886900060755415239903136324731460424731253111554787549506324680156980364947055753308363632152797593133239685582627814720478835691706898073489011702346708437814290811892371420408804759070459590993012696568988767648329613099151846072568915118198478569094708978228070471981617754796636271386453866191234318256607638494165956491023966290826738091391828971094576383716561082389749320288243353164128140758398311300050594504962427880630840825533576498631594968620208951930488618050206386098102015566414569665796012116205380473329796708574130279990822062918072638640515468276494653658992995050721185225284958012481686339296814181759621807681504965490425646644255238066494555822872865675640112834230837274762055995752802893509505312418127661982181546531160823379362135978722681957106872028967653997311986428002580850610549248059307191180556758415388599711004246510869103601992378458328019159032366124383625114406593707046765603932582168053993197466951450341418321080037846692007868439720950165089942113585438762551685809383941700011871576274325390382316301664254059281186847574279515821174851875329995782252162983749276928647604221218126018679267560157200772279743555156430535687019960740497809815085679686502255590233374894564695889530910084069298603547847533099845815797240499253965559920814043568094542027625375862800354130202702665047302347318944135643644482487078503476647349821391321129445518202972163536371131914374647592680879319043768679175567005236493722325411080969306490920761023000789469807642146989948183683745856395285821713324503246153290812996111671755900739828670004502340094056646031312467665327566615975349640009812980640246855977161510364263807549507078818410672339831900050170712206183126018963615704679863981526649608188460970586364207941368073379878121012881613322698062360671598548536847851872346529002319455766138263594931562349192263761046052046455505245806804550123184529806166666666251828930136816508196406569621747038097998955212303830495737384572361682984355345025901008098866234560128554733506811336821213292522527652290930459679355020829333415087448595053817683896205333329761984251042395919989063745077747242285674855427780768078415260507439417783881105706494416382568641276823051196749669967536286441904070778690228057978113281864526581459412617211638673906826009977205803203973790693735547055668213451535115571229458484048531709559535485597691736052814910383666401147410226570056658253641946692042341965895511687799352726721120807885474968613865693252906209153552540082803115497821545430213169425389555718761467028537980376234235288458796149818995677365115572503482968328854997777611713793847335478584475065446616667285274970700034749643643572893991402391234977623566976265756010430744354174918956338592642761878131872584090383355721560462703820500624653896311763581534498515660956273254039588859439613139991592362545198887545920023182529320032540372088929353123579678115471965881237391195997552363031009977155035007222443609557087309923658732420665468757818567965658372468041641337470814606544391117842099093879041299873182952132041710073308981547373234422598281483654484336902110424202016974333817594796880397042686116558781069341376193492553590693489704071491317683778789791604887264632286266495562545489373236439422145490397533688101992890982287367903757823670875723598659738322952695268743224627975023640047371406603787864432809748713657754152741935253316843915045944869107883294129354165475397250267635262427786866305262885235975133137107248193819984223445131198327522427461072035321860804189451025135431053781729384806048578699552141340094545921560467812911899500583498095179089704752668292177500905273031899013010246737247602851163292551001490851391446410391198127778560494956830554075089363842144523362503895090549177447833229195439188478750039831135666361197633956813780293118402236366217949508358550797692408754696022063767024209890108420283710371001612127092358129376998143019870642386458673031861069934025478276332468199902620912733753372295366962288347779485594578337353259197127431491416325717557331025939486317817836270232651358241429517807679523352566289250893477184008179305942376292157549693169055557590696156322786829350225233063798976721655444091588866158321346310654593089095119087344000461241008819919049008385022194813338085093357292105226074307378864441835865462160722214924762847292112000768599680703577277448554168563733645859952991293189805743727467536200335496591123928868859739599341682102133959592964137843699684907296681097979078255145791803619742054711168660883181360929524592804169545364606171192967596028055705448347570976805022927084582360187467121980968890988346961118577102343576496446701720200683224715824455586698632542375538142916017273177274863750582649609677917391178988151516577106946815637679040704818382850021459673538030849233845969872174566301904368749887288715834925334552809196675614738920249595939915574683917567744030186396841487991131650794936965979636723582474635429297028253958826814787958236679456614650102113768545248182528522394729416132410559710922432437040410909813500288616855964472774270814663764389139535916353971825828273892145496992212785906083448849866425243046279011577623674259677208490863497118752396892381143447216470754414579373914554546566980118560319706049587812602533205404228384631997585146226998895264266126037609897964127417450154329744874719543727686227470219601148664383634288398897927760003036243360898153834263369016456123243823863490147751237219027145851404047888153175407426590086291069130191322808474062170970022211393874791746685906034574652416685869669104949154592706650573797177047553532530376545668820267612213330662135069817284450349648925748936979875899193272090331028544504847702401944385991119964939994247741630244220000724889511275634760915930187002793851389033031152874841339232036791121435771244765730253999054624288216594365494186750571099633094548735705412227875747147992376016306078059516387821423861673076862019979554131273651539626523986130972093540530683332449191827809898718825466705993837477752571216806133160092159230762213449864021904078280639919909173967090262321123963598480398017458172690071572017640709338070008502195611332092680613334863148566464875770975052576916578199432040212648414980796708602801854833998170519124872906133640521346585438087183792599108114056600307818676778597329897456841646571716770212554888352614048932027133419813157663266044378279243178247340754377259115829297157962871132317649542182918247950066417052286473645868924815890178620297164552105685478372378773248930064155385530358774801854653644736742172831590877267215353256504431077810930828655314869367024515462640858773581254430376722394740933359971454684026052256505194249185211934972634420455527058237143034842052936143126912686306355934574222983098985251330871853753348236438498976338560467104468577819643489303615512812626400824276351645284425493993420574725703152734085772558191648866685984029415181832070044494857521577992686694932535725564192289526091220083627813939126505216717049837187033146650415691435272034262542904019020420554170104776216809460757275062761975085161261176970793874268903513326329786819013986777879883114757862917909528796800606857341060074925555904043724939761517117119570947361916526899050314947354626242934576290768882878604447787949601660399823449545901585002943229477381048130822513565956798992571769047991425684100909305931960574566998037840739692169395042730701586038200468017258333960246235267258666590298900405558797648619874125604441262489839452437660716999617404037807873464086856169276926820261109974494174125247091733862452364823963116932910332556653226065672042545324266054523482068805132074320203784500250021837944531999587114484365529064441783952025422136328111129174587847746474012851555823711276169275647619159068875835252575166789313100613643932644683194943095269161899203123403393732090563405251973049514213803556327107807144734447638059013848345289221877198313511466739394688532132204473317672069747913671929182875409878316317267506969281225693341232320798023278712285508594756768714722926867015217123924902349423721397174321430041209469497243225962824352209820566682395286097857082409341302373693256717869716099166953297065324740228254572897640877661371808952733914692975089085688941405699435505121541960825511844865650891917275744744410766997911339257991922409413944341604935903625803998489445318696338261621679943101046532312573687829222228586881240262428548135039806425312841194082713486160500137618296241598276502376240651621708090378457856893007339413172242368724598277567994881851597677816836413846997685106819034011974169689795288453550589820963478910890972051192536088470242020004119519775291510544036671817546054904558404517316497455881303792560827015458187987407435191256446388507792260004462749366267938871263933900606201300989979213354647830629867233472776469311573944277014435918287898584705506115248429498727440340165156331253696859221243132410002652101920496238985687316314793061576466608720755272222451971146771476889808095057230033054081073867435029499050190776094219329099430172497492726742539204519236553359063004918959465919955091780944219769694831871887378435350647863750877358918077534123815600862269138644591487724518960404626758974134730570485098554615797622904890438095140606130381954201469055214822235263470343594538045021393800533186359674033166436544927144523526293739016755816505002410116473719409583165350825227644096633017994257856935445042475135946288928145715910412414901156299645591135270108004161359155593047689324640700026120791660510790973585779258853282965700186210994563687048090334359056406050538664458835460716354751003440607589379800421918413762306423633880526629731206452423783938451357744127272806112296562061488586085501793812640717159334207462492918958769442829367162996263349728336086533971110161122024358990896322760031541053420612588457295312771638816614790350321923042832700626484884785693536680819172704017837526224380365764983993976704299419438704247133167005804822957124875866842736748560389149914149253442231914049267580899918760072499647418757262505954521495043002007156302923208892741093741462615256882659419616361247616942444466524272270668884663252953901605281740910215309985293638858614146620621697265220538978447994899839296293549940398827130999509404622904888315572611842806297056111965938005728305937974558604222287606584305623371246028049873474438372510616264754860814399551212298782847453896972384477157837917022209281396908375407310224372992621746310457097020295008664183304305458802293155450077476711561638221964862401254454153650742354149420985259632917145683461296989433824692908377889289091644792451285531756073190450157158004509802265922769995964577056740966466812556764153823961740754038130162068718610305139475787179254201143493150507245632470517089069830378104744854683959917127705641687889626852503602114588914730791349561157635054733472011038127106342634637201398447435839972865599089874859877037760313699625275604213196493293088052284033024996670839846578657119503460322351939882209438740248053218130223201296315188818899878258949033975526324264025670323834244044604587115536394170540623343882504963112149851723139788584657879865141942158853017830252718189199445072807622011227216486099549994202456941564613434601044007649270661136823503236184270562219495441977310638763376306733971956814461105227323662114597315252266200597909527278445410490555351788772078640227238744307594285488663626073328390744188733392738371172847296327138801618906445587123585176523759295002584840825102859207297276554337103630927587350335720157065810989646511110570298571846536772438486404107224378560717984711182034093766182969820430245087122982944515417381460196005406252180300777250631486473357297060777664751967091660869955326312850048337356536292625639011442578724826527115527073246946806464810070199706831283848838239747451664269752590231515241093484145527998006127578699223750654585041697420327080676785480031097154583218480612226871408261828576664247056315633829145693511393539263065942743440437535948255048749713319725547659167725327569480566089394266003598026212837423445410003871695072608376625757666350685049650333201211920928964035815805639767613398095781947117393888192990268428862569999811428085211961984142921347037015858698337752228212602962902809040814726927829184911467999424626244750977669786226089398373822425872505155337809988211331539084269349775304817191347284148005894245693852171280632288082306069697067638821685258771211278501020213069834128905827387586738842075291348978013931860199525781493805200512876145078347914660250637075755434176066385586294957506044535783072196779769297193558528064489215830890421786297196195008084807261985978057688272956301306658994497148099279550572539788173613248743909485105369210874601410203125330447385351238303784074223317609258503898884352974963566750313869758070896038222547574706377485280077020621007261144429187087032495327158849310519272447834582347530492123406893183937521625540849075843399203925428620828747118583361509545722253453649646399485313276526389891214885463227629747524769435330400649109038899369808434672219131785461893768514461413187904488202718449994512425858767203590643945834729844340410918554796903214820646450956891734058850664399212421353776792768725266196955170459604855846690433748109695628416172747500096565317278100912045885006460414248964634024960097485015181130618616986717834817822107005063844001783491182602936580288638241078992466659400406538997380774122027465662509587137131486477349236563425904148029917116381551653087824843225772718351998877215110236606165154249229565942858868821190846015792564084445204820010123981642123293501707595321630426596001217920568251471350006043095670564283397434328214979294774776032002154249429661447767947712141637309753253180231780826605757505128457113070181254036627516681442139065317653809556415289444402296309595978049421144256095453301837646859452804908563578442848490111901188689390016044926739389931919140476224112954622306469908792671638702137534498455344458781081324869523384476650748795872462198602722465457117802421215569531158717488010224846020520599253541060936200295450294511456632688477049274131920589530079571466364919662252578896178929148861906199202231253156068236753132916990649418747350564975425687060358997878818921934187326064703749769675839595215567984195998380983967182735466960033661534539477087938936388336101269314750119080619487448333743408641743794654314776652871949888639998754977095935400602526139414554610195915439525490895935740767423325039075395949533797211886380926502661854216477615028192413491785553359710957333076597562740461663356543989173001502876735067700934322379646547518802459903981373772571839519141750423308257519449397232781140141278834230459391532473092972092655849616017733022425011416668323672071412569720545521125318467497046577000396102320008962489203763007984538615373349424857844168768479467736795136206681215869734842425749911385905797816306689897254925337860191935563207576458898551130450891722035252150862529913521568125978969299784434759171005148989487339641565852385576077590829983409766110393992793011672976844314892878014184439735685676340413097066761514970660767160056125736375370351182477970151388146235315523775630637870710697656108139953870589152164617947764502287986041822373532874073598488969910004906592066268096101703655890096033164161498341088509664598886119834895113524421047480367556501239281304615561885398279940887731163672933106461349304495082134713399091069164568372945105225768160791391760808136381257746690426039396456110867598398689026846313031288166810546367708374544521804602653169451209143568021582905280462755772833823654208921252734665079191911626437918816339062816056990353091307610831816382076834164426445740870757672617142233204047341601620482835471806618368060100774538261944150853719546219067038017593780358649933552930335881798873777976899144979401031730436096573286591527941525321553849326172316332173974716528029073621254732405889049276444300827747362974493786971629179237315841275714684996995214572822940301435902273195672244266304414436638972852349077360404329566461038494983679034084861013442937624754200137711262851963796550366114823604402595855819601186551335356664749925871393434387357314960732703552094203324019235664504252462672783749890939874931884768030713231351969827823263237102718534812107484858833482826661517598739471060342835254465032066140828301965374818446142548687559933672595327623345787531466632191750426584237341052332390130789168979689544350031374481956784896474201948686240684592620345142329029995130301664030006081782524341480076479116284662318718945978225800378954721823405564263793391034436408058526728002433241333886945406240773030230754648561760394725516340453276195760226908480617122931014354087968444839818995173258061486670578406004669284920034450292341758720408161169708714748452504590346675902424445459824063967178966415464020068851645985070066299548108843608472527278657799322588459048885013017153143820636005098333845754744015350977291112721915187073827554764416570810562636847631566395425277926995426105423954813068607706365472280785684745279493895908120382139193690974473921452256565113171188576005175213913845720256617959209554164145862179702943741266650145133045136510153693941646960436441173746716965557935433504886941254875169790256773582912832466494317570809908706630435204821420941563285414405059113688680898357046288122395468209652976402775717508579628577669671257151785973192310147587875285420120891146050445862878661291815109420297861841854643267436693902075568838694393612621800776402878286244815849227781210597964713491869646866599627594206049995926736703284970127559494632459694016007563427293902495326246323838686327104673229108098841096149383023648065194556707363342422867705586075775979253519656368246440986426452869030355271894194908214841099447228490933335686708730541755632512746495751433735556844814938005329611614472658358675769280155426667371651568407536323385510256445714280106287021115771065913004191363047681033636316902507545416193644869434379525276377240267919870716382233221590855717315644081956618809176031148589040635646110968417750611816909888622550298524139645052485357780297995492340202355833074277936264149095259348239028249108841553448239413668053741347059512851940001959987625562106137930988721538676702747439569678941681600279630325466031552244106509235838479403255772294461836849087946634940317866197881543539211149166949564515622115351962841618555401254880580560590959350750096447941296405161324114864220122296791102324021638133738951780673095884346663142117519109458533759218203003559447739071620898023591331107414873527835593678581742294717581143433661129688614650323944489518051831819581295092784544982049178874886881877772662808701908205394872279763934933683271624895858890915500794740652027165225357076402154626117707901888732524866027797374391669986720227134608092842880229974653744108604048245016883795006568769991030339485376933239859083815974433794225429502682345188303942336695863283366101620879234773554079992800247862242407411121937229297114507549793775103655237696478687147117193033219016844592480144339012890001046506530194615066740185562693517600682681619096380609632399124254695574980083609185365816980790622803728469663389959429799777259457381572219192896789525915213359037968922425361073523136434050175312752259992071352553898586779008140309412668048248421207050577182372902146307357805567655972635265503441105209795539539687928033265445146710024699394067461520379432200547509705663098835279891795720078512365616952179688713940437815184113070449731635321118263726433338949330396649713416740550251563823509015492119975695275778315039306916756210217510209420526272348930262225919015771917910667345551478551195252849719163895845573659628722808833484889789706050047974926771589431562614812438454853615340055204603801633404934282349672134423940340589321461832025193400554993531038283727722876878592623356638817596554203987738201358642951957405931111853214707067243322389164463176308607858334525774236089518021767094893977185394788424492281254222561390121363542199654373482809775265819926543186130462155966593148566071149280944481628083567578825619146500630456618155506956074907367956645148436036011737730124675340418482399555334198386383584260872301212931490193393970958176700492127132126808270121104392679936867453836628243155553811325474763422339737197397443458775342799665710664602788215159207098940339344347222815635473560733347827653359996094948698136004823081800027796223509901654909299669535063653896185562381652548562489877561451748116485252084873276775516280881614491247534128297893393584597176864047869520929236550903528903411425398151529705780378873083561549415127156782367038097794690556352553272598402569498965871204828831891870974306989727439970240339072159738251723778441870663163427292854517309873967151046826619916801452867005814252767628050139409408821036376555384095682664340578612119978585366345887730317287531571603724660232384858288063096813290483299122814402000912550812713895884233853729082040249596693562189276356702047510470160583336831025551693579938680262672547527456910694293686178467220092513430089505122599518198163708254531096506048273549901070827881509337920890665297498848497995893608434432557236526434942135053079315070246202520028880374346934809916679676911066773999521688571625303843221288184773906890619546069064446698277127819805032510651219275970889789256107175477987646482557436584198793713566565040072732820376274214593917521558011991340219398100272745412540902794661694827359342982198151714547741468294018252756651290448213682001374121700851685284073470866917371858976327534912901057333224517379438606111678454251282363299978950931704549653118670268756491745878963907311856599088138942061748926752767912080253081777991179535727708594139640130108981350482020180503161688671170320978181450822519578087657741422901062013104511658932620944776445784593908162285307264177230179006539495732667677024415832236563612920872128379530140476530075999196904079153780008699481930166381801898235606747749524442106753937516852210190273206359031926380896428823353758891059759581793527326447577757683394912936570887011475587025970865600163935844483077227146155673336383679013285468015900303307020536091500853229389392907516454839622812656701145511250181658271286040851644841007592781388947641321421464791972793138446743179791674783918727007080834557142254244269428384379689538406528392583705626133676676586543795414194825341442010971226666837971654047204878034422242451994053784799470584657551076940334092845943857490774201213911895034908464141124088996926469200544414337637375399031283106910390028143339970584951900955652193702717425485125050958635678640621282798668953805478036856373319165400502897906379729732574536834085988233732670468052871029133141012355765909316869773630216622225345749308217585704777868593833143421599335851273822318184550770658958320560838323950260043111811815777354779245120772423383786676576715843634213984525881586125216871194249111184836917834519844572347291780759406571488304339859910037031740771420040328506666312824940653910651521376978435996014030015488075105103296310744265282745299439453628326236806530181718779279812757977964000110910675399503351784763046724352278920227227912936195688705217948036040596906079303215872089116046067395141757365521492589271914506878363598094338336641942638944403650535332760074914847375764331421541695025517456310728856458452904814634790567671109298684950699203515916450851075491616232669499721066094209209794564690237987399292362746913603815856607743844385221370846332174598199046736885281668036384968045699665339571568670093672088220831611480322302978688554748221145479948788839435322553764303200268967613791980718384088826085656186532822060950837493778906117324401740249853083457314551858169213155300041337794416992644649078814448410188675519230717302720580056838474838551021340646517917414605053111498433377283709085544585423216921626554845578619306495977754984004556784229925138867660123021077293496363222568342079357399247904410150608545338035361356444517516441828957963628016739565749097447308225730117381787439387499201890737789083942459507864760372105020254681949176748088794195562054814614434761272626043777239744070219569270342768250729366576983444700541498092168201440077790428191354703334700927917413971621473277333582955581781385994955735954978766894372888591982141670593691626697277437759886135095777347000919563363721897074767192642278023637360994841738045791141460087361670421426218500372477449299540020914709698840991671904610947238688609555042028196228662323453899012097291987554019799681001091705747179500179070962557278356878614170568324858884184828429821063324042137572235864047804651437307969188602131007699619833811434228291500361754229997530360443634019468577327867338710881366096595028844910048164062364050586996740754213576136884003121796689509834447006417352538100486347812812291577494682504965446943866007094217082686129605337069037012545988499513124620926588873668510660285384582339193477297678740545450570224267545372871110649832222668722477355292298347537157917786447599893248179272764060518461225727161170355526863420096457942507197341283696057535692300270837631694701086821891650525759877603839735436239921979448900696604561461282275097453539852402631027029280980019677733296658449792114546724954789894812312728041199195527050009270443030323387150491632663147382730319941881822752022006996896873689488810544483528339472960322645786012710546949737335964572534073843334791937647932490113090088601396265551322838706039694890053480739475878296452745160113832815806963357803499952873144310654786162749819918230702555775897592270055822741591122421329223907304628255417658759204735913599989445772932086803209036571129762944579591667138078137585996130379765058342656957436819744300580331154950043291410295032898588096889741787833850155081707643808413398376486779155360704328559287248444778124887767878857872041109399468078051297956185157011008430146552011383625137518522606091620040548400058086160013656845558781684202433378453593754227229981874032161181894381550017315276530993057820259545639572743086854824370186313730016793433330763898919863739628373286614516369570478498478693644019509527780902828495275795195915357053548314455890964698102988011680404089790281278706614391841185002473612777775640242449812053068097467325700826627752385672850961369282590707358820962800890882158266467542376329866475739575142342736144110021062854685140130397901446639797724249754915838800082319417220943527007631315609381851787534612260196706272976047265110752312052832825527215121590906017986620866068390153017540034336819218845822251859550164152215745837186665402540438704864853443492498096188740942456848893777462371882541382070024298172520580132029931152401739545563425223449371538199892308678501634411529413395654427619094068044675373597734176659782506610410144945298757437170377599428784051475346066943594254155374570994839045982790710483895018974374239750500225204796163820091610178978935100967999754979617572890994587681325261026872951684455388670908854659469433624236539267860992238756642148076395592581452211844618382897162973945654685839192428309758676167265498476365987940607545709193974378784481300100710295295466213129606767164434700282205159135239507574142025699963940251598334402194433861491288534366091938386911297311555021141028267512617056386641559112809933621928250253404321553218174189722856752562328101862623072480769475773320385144110741166224293822521100171774948792838376682293486314719952868415571684932486435014178059204740838847519246701435992067762958417152864044772546975060509032457165376024857473041963995974726529199594842535273479152299260377300284069738191067982292814698846758600805533510669532206307849832395874659526443301011758276507411706327616312359223388245967309139406437391925206659645917141859176129532708701868637495379667131374195069667036376449699954759743179963114859849608137899638303500574766962102332698725981134590272303150091182959413935675161714589247538317171878311660758352506329941847619158902569884609297969313851238566955653788235534042648980351609097919571644347030799708188891473141117714413888504631305184478321006651354356497851297821474938223839612313026648062715426470022724228598355219240041495720789578149616400966823567923076456705816587563523000544921347389956734897939874615634018699966214665353728907411433534605760205971062417418664812267741706338141316418483886939890000931665186494893300124955324591115959364809132908661839685493061231869655241739355587973438049907595418945321001551303763824946473903316609997743104981724687503014387401949701816044597708626105201022833668311416288888910316620883584411577621979721954253459191048295559646709061326935072813652003158438639592073027348892327126006789590590111027482788746505700419785559357909154866986035895377973836667163437203439137615438937373925426064026318094349968121709040053380345202075768650385864006085617408705275783817230198042028733399022953494333727810546453648727270434062839537271814923207384255639273925926687262100806507694460338395164077317835667005228635431352872991972166431229181958830324901085778826224230505109502462952776193698487266100565894748415955654012718810158161501481717626120221220530491729162670503745037307156439592919529198366218927978193850947538518479237300345517056922131945114054751123515662839495403957467982413725804816369963834768849804380655008157975813489498632958619347915610637539483285120953338242389456247320055834633054377473448529251996383982127988797553074015858862235154600801940946691769179641726735307146848711546189787632588114784192145741749336886977387195999619325693274759228481688789526444088496222489176571140345963404541234465552102926543076443628200662985580909992242383125029448123582585272432882090898258717590821795520009452209970082364775863793313811501124528260301041887093553775127898915140504512957423536390245198975416956331231374197422432480642745226181907812107718952502030745669897005664881662452356940512831825436082685195573289609071158196714166044581380200832893395801800788686040871492129891537060841297983849825029306166115020825931489292266831205735627759305867313912001688947367739627456240805613865202242353629135709457546012424906058692912800062443344563183511921012721825138597461143425299147700814964864246603285570075482960224748786928814778269002398528126662852197109870306524779941606474287993007444868162015055340237174957664956721727426809819487683574990786716453959069751002176703029783069980743148833477212879734055911503458126459424439786887977533176409438906882819169391895779819710083567949279057700866833373062861215553973083779386524545016806365720193527118493358320764268063551923290177530717236201424978467924926532728520413676528563368948100439499611986694755576016204712745549189997187921920832072790115250857053143825843787357245358484538576441231122748034116132411734114358900756836575265929917988764673314877431070491315276915716442566583899410959424221531955996585530847380120023262204098711708620615211234003330295976115459267640740342518696959626637997686943591207132072953487776401366739285181752987321247609079672882775703163965187988930969711052719828373707788634852598598206355945562319289782522886790078145312400257353323599515691493483382999382060615578369425184086731522445690994786819275582812571196867492971474366556775516687949282202900123322040282337112920502029169535136546057129076670183417225843194686555860041001739796968503632132832331091261997886103690770773705401875105894762672839941969165474740938514371455979828689182699815265471742596912704900422583672370737628985813790256930914836436424415556657813664059339959327273604957715258503703300361249579651698669584808750093639846394837206281378382213320258871019573820901444690294800095467680314162284835804797381682160722055257012629810645054420790009139409981979414312505718565100802965360180286074131826602430976618204468952263376624463787536728959065083943370244533729405753665877866510642229202802240541819541461013842154563595057355268136046362801290504398216182611692390042892292870741299502738483743557967531308863142293885559965243685234762078571389813520859014644745411400921089698678082396375712922307288932245558841756590620016666597441074122249693981423633881321406424744171598851019890468540279455425434254007786341943287633140884425727149097812763734135005707374554626251477273920865855984141707006799663924911426820199705084124972580593938875420846129638902589072170586687154488388248464416946477127370708917238173298262218669949686081998531204520208883131103783012818473018675713055362346149956600930208937611286494256734680694653259850787315430046056332012557456089883679546940922099591713335137991978528460639335169371027333548343407725085595380455133000051893604176839008300209797376963459670952703860626295933224190650414252243006971094005819561467199376549215421573801485038051380430713755517999239497538796018691932513240370438308770950600095646455299415981650190815294936481820248131922560042534291499751663166366778942824750905578087055975671917811741156728385471037435225386827533212013270354364867373377143900520422828488327446397811106619843978392397544416564382328390130445421731813440787369818340514305480519281274229136532261261296116350973311952557368446673313894728239289590460882959012483021983375223521561279065073528308905010738783418050984754318324410664647759270205359198798423935887219851572220674239465318163558462813290272120075177996654535871212053352173997198663773464393415656301430678867741480661861447729444729611231486163203611009795807329498868900364344142884240279023415374748423132543061189211517588940021442427755291168945858910922709351833249622575509966953220216727756124961413443999147831371155250024712084982402772288504291776509045561586236336591979891952657348009368871955511484709091550761780531853185032184645285735119190841665622542656016508559029603999701698246254085962306431970207793657009639261086177650460193890907924246495413481637892372378278720648269373469831922675353022334361615770134606969557924338912515483092119621224065478003683589106035013160454234506150054842207351343141723716690812472283692196489164567728391176498714525613034356937665279740029436094269387673241290657349526125838474790089380224590064297642377630255460919813412219074548737149708226555101093698819976027749654557671924031190925378311016551018891405323687249839356824002050807547182047957681854182853300883282248209698079920087259223424428125503893625415753127230047154104675285169603673726223184858694993296635941668094803095635443512942710100671964240710346256584198442150158819950496687478595625461826358812321738767279708965744600190282112844589566003272110570673934025559859609087777919533844236365410854627068554820280249686205003695703126696034690082010861076450321114226643509938892718091326210227184464711585736395760154453951327499269995666896429792168726582106027514138244957388015523961734230189203986257631269165079121049688899857243427591925076856180565316963841623090346548605563529054047414278567735829738730386461760578370660250144833765739360161047765268121552538960047885364239881139725937617805386731454709372244671362263713280067927033204303631987633231677169985605460523579888576627936296987835757973051512675923910452781705332442092363932723927821036460073933572813452602727248530294553074236794037780985254818230976997271637415385409926326560174292506038669893607774622597183985006246691743692470588166135975684269768937359550675487865414362053282329564269023950655331129595205358885431594623609482888084114892390986482490656124375568492954020661569912723354703170976753586450338516244497759600528960566990740882497129024493364094116108171756349861390080120096090516484944726259845197825539194992687745826561863936385860462099322766365664127896504475160387729889957948256293570718402718147299302742637697144938726621965824541696569573470921027884415550374389388744421398579899052469470438773573459864647092785153819260071082231244395531376526238540015504056023516373077776687801926124089112586251085843765129822687134453316534698652240703770485365788141565612643866854569405568898935324945640744030976963311899149185338823769456185118855786601165648475458332828427289984527769984027299406919854331955100829846168451343125664283739374364568121295630767577150230657509984287255841703428177164228169777455795598475655664681679839048776797832385532733851851473228467251225810530676082573587408084580000457758440226199209983542055312320234398782401861235088041590830667355214358340128965621900775898689756260517650201139223576509348175662567981275378374038030351877095521124027297524432478856678152708486194412995495401240565352530373124420542684106468043658717770326096474428409647072011437827139105159351630046164445598037917567761404022742237483651525467650596163118934350344256366454376217307316421319770017582522397372169077333875685961396527564671458084325251785846120205998521737830142256503190963953765473807256615675336923690081876220780688579267733146736700899687794295739388783071207552033148636841630422906859962265298570484190598050531063820894373483356914274283748183307831698524469309380042961213365133219335248714402032277848403379593155153634232949700871675346825041304139852400789678364260050195137155175562566997152514139928534072388134293892628456868287726688744233002134599702976001140695187879907365824291423865299400570963642429436389246153491530304504273382187851619573252219367153753410110438758462407552273156122459440118698930468664914649278866596698686624470750733718576310682538061840168483521151324409855857948080428787153702693340132027004661984627101417503229760374075833634433075558681913204928676459770096057566869824597899103990336190281219968874980696049211729407296216551324474257653681902323934679614830241304206322503740539071938563162511019129215787882173539874334890083826938451545591917640326050102916987883039388509871258005069407288062025288730075016518943023355141489416034222076895238543820603561740652503676451118434791966928545172644726332359055857683768078094504734429104437514764781198303561682196903630107895596275745142295105652356019155238822915197919207851600212740128858464298220419677063915675428625503195512146332574803345995890884447941784671265574774762889869975089822165411409610702358468867149092211108135524491905977212967975386767371168775166882457910999692070273048308142135923104444025493212203668936971227570873682353925747222712525839280645782262544242624079403085932548516381579606068964660000296659243303625119584378215442770208308604412787154376121614638620022506555216011246009277695105900033758818312023045481023703830125498735306408025917280100379470563155161696474426733058840989528366865199366701042350424551132929568234105608527930764587916353576472217421464199964456038922430390014666853247775562653117426351638014982391321745350412720925353634188032644305681243635268553768998650074456288839007154274510626906472526895702493890377796614873827736025480828033888270705879898896816093774705201041390717793854735095530605258439973379844511628879977918778358811426056034464814716978887103706920178920995517809272565526708325922811566367345909275304356042743525593616193961462625179220100937185918711031114143037137428866693634225656231714536611320805030807332459082550363787050961702374794169085153476878704164429936893013517961870231600901786750731646486473944782649124182081604123614860512254736351971887634241602987879813623220175641507772277625142805726907504896979356351103473643789553086429902196267044999152600622088085866545961427812916662946881655663383490352793317178341296299491909166696284541277745704382690554421714021339903957377074440713448924595822081390153976769205092125462083683197064529438582309238564864587244708529455394850446918064842643684846804158365262020778429042147344524233309734176903654713553551429457777581566699242882457373931004687576751992996424734637243691530595039305985246583098507840501885344275734467865306009480844239235865908394077595302636405297654562990357735149978426417513706850090300650399001412281997238933794724008226066465895430473960319301945991235089689868300121734947867493967641130597536408116849858864071047425386216442032207519960523950332814559919883970235137615476364972874655493702426659980410921197219826343703153853946641944759999183284000283550012234594354759299353839696932817322395000599547102563249950411364662282514270691970205534148112831314846696845562886106374357803389012084755113801248411552802330041184213523466617707098772715368750211693509813238106721950941054498070274240499581612119728511287859204345641564018831729986451982984426986909989543688743943523019975289132261179253242760473002383870008759365126984690475150071004977181167198868430358136435780390543805122352131347315770173637679420980236483386302474215570113811029582972429374515861937820090839019338368938444553647546718609060731509362496622999796578390450951046028251762330234968922602732776392823920595526938157793733243534590813773001410228193694361664263857259634869444589604488084308776838627032897539781003067419362062494451220506707241033549347651211683110626824501457198646787003225532217840585914593026036668815239410480547207299627516515942765046532685051973945291334678319325949826845602169853233022794971781612885521265989449513984768190825252798551024654121014968758619113393245213802156292535394689374968832154722950528857098023217719057640453357890965128253728033369031702670684929161252382438435342627966750830526021060126112003604989022149296271816245790399329690968240104613436850883567285637797006040678834365018222516063667828329673752492678165249908412744013939964163356611871190863462653244290607194452442141955051617291230557920270770125516073208913510848811629493991859564345201355115159713211429776682032801295356698052433186694453898405949025114746099736054640176977784531144751061142529311265162050422306282068761839515502133696416075664820609156757439622047458882507254184152609420948421591510110983189109345529136896684640795116467209100491046709782027244661738883509037561377359864116278832527236111007720443837861216035882635431834173039127705005368587381770399017632510119339657007612045314315766965751544933559533094898355633721815493796732985690411722189835319225155123958404056927670710906465650063394409179255641373753568865118476145871863104587152344966885037232720356699078665459659789778221015559692749367487252593118132929516532666965882871917427349506793504728629340838828339650974869335407137686677499391008176796610346609518737416559883377191977642431500463262821953143556496577465540949489744405064259409316899049076313766740089964159918923529837604129036942188876420068896771067239500277439013379941546021293435607065569380051615822916395144914359330870146294325769207413752156824358324579703192372913230893078030518351829527717080044896547201233573776157857395299009498796844133131555084491152609520623581069122629667954533691816692936826102575724435032587619289450313434828459554217375515690478863559506711704103957156555946833004403096361871291573302763890775353770687985056440628171826591428482889412124229487611074645170501487820020962898198536687045984460781256634676242479829871460351738808779995339205911710324300648049437453959984128337228960549405429388829638838839403815197562588227269431705073971187097038136396378612913435083483632573599064263290497720122253427102414934257645870027820467707110941053761978753802158409718161569786261145668212271348891088675782551847022746836548736442010839766149727512023620960691333751749457130605106268769458636191006264673218483567862960579690233869531569048292993403930656414261421497211988029910047182390672471936593630690951237548874886407282492434673206295240875954790791172238919946489008976910366070220969485687908343283990670388707552541206713051202086228376675856211987508999482487832008292485748579823956491104084305258315130311616377832103067258484105535232094355665884472335039210959665081273612022930600507189676189486517223698387244967948014517303086598791320096329762113207753000376540170387416118187194272168605160760374912162331595070276944294926067093409014222408139216230839908159539374997394310674079995683146960308751474523237283215893862395856174858450035063407306254741740413120053736870401335887352870258576054794853817805059607070749248593067155164256778675139243632577076734068143537225668820314905008468961277000410419391700129570157889428045477303433016173783586424753659834870920491276801852814193502370028657177156377411688955244948481772141081467967655002581123556930600091210938016800394930119385864206909497057954088776659143478246393129477481158730268985088861903407401192099650209623526740824590924985656845962864955871563374940477397189412283940082515009145964073761180009027971137614651153707595837469132395091110149102394950626300218676603355469181071799031938378656815921834919398906304504321377209172531005004199567932941106095698189171445687378973274000294047205092595215446095251380293538786238103933084505462602898745565193681671562889405274913127343270835794884940098271627980947348920852125729098641594739856175898212618592180677577202040077770714982384755358628612417281023135285776243360194865143539213083647731660955549602941934488602225727529739433243744920833524051928498114960943373190335884790533049540820192880070825510150799160569590786462001721404757006476562365672977764029530296658817125121851576178531256017242682154009373160729843859978232056159777100465744618659411222204626610140719363808778674678772553298477598279677499984067668635035837252705130853998139317641947101477466512984047656496224543999940179503954839010714788539133897251973479932625184922656481276145592635907561241115828243718612743216396151450775305886730096198046662486753292677371962593291995463592163636539729423448895359364785488960745007875524265410961794271210622879073435383221659563710217286576983490425714917639838344785928347183125288670270908961442121059930248539607584755749354146478609707435661556660465873510140472039050240560342377693965401607514315496889028236055870294071073240341794214345467893142423528923425710885466499158855500879498471010377989954020769483966185181517058372077025323570723045996667898191816492037866357346131028803026711282100236014840092474289617759758882357756548329522436268208407278911617686431025554791892266973702296739966568097668774952780473828603628325509802781157339273504854833871497528406317483937019334846348101889475878402572476827479968788153113438794844591162531123171332633536236619762698876218186856390230654337296948211016133179804586365024717195089331679680715454450083030799478499781611359082800485823012229027241803093736049080863329501409585831488710034074121283791303940702624369812054488978292506041907876845057686419292459502718202890875362829377631213332565525015988332262520651951250260058149434637714735530804476118253421969474760697898242966021993857728822134715183917578793000170773138938196743737153550092219666840939844374014851105721191572691878347534528040354593949561989780368295911671810450523788306630631815548954107079299191490928642733063257256335280451440454335156532424724982203971996731389218316545845165528259550216837099984332569987845034988441633515443266026699624383500680468497466213805310583938017255847433069620516077246783907224845984296420652308216842182490265878817038902208036341061814917454111457356560444579089325446615755167420979659422870373879898136848915845487543311846167695755144151824526185491088360431650109517116773068928189967682990879203228397696667832942100530873120840857508784464270819925120154464089452232294638108969107197521802952996905441120966989480166886091083052468298129819679938724116537248833846161841442523654410640163495003328910610343852422233905482779876630480269925493833216948323828396010326457302293153617051623659377486647290322592421703349027199788273635692528308791321859328803149828624824602393964565852022379220110150831659167981577702480903794019388089457381282046874692101494913752149792111595357812894282168997635774786023422033331766005847468132363542517524562067146812619788965658530871518065904053212494932153203484616084138904722012530984961349502410679274778960845289168062055429615193916195957003328857865628479185439525863058759589865735167217875831653623453045943553227488342807420441769136462916033764644694641687977294059279757883865951462587558647872308797100796156754132010703431078429186695324323778910421870689347399169777643905051247565315073363367021906494564900919160839597206418846402842648579180486497564450072231865345786852825884762903070867716974919824720976335005879619897056079589119924727988549659492399665067908616583003620393395372728629226919834905114332827815740349597359129329576759573492142087052856374305617701747290111239509226356561020906496538057124391225307371223327256514457616704450449508387117083718315248604351333019733892427507169481096318396005252578644792953346144438709551602834123727736421676992309116803011985972487886131663933521708952468863804966019771543184439020871836926749387459842408715773329542813517629931488232002739588138748211887862781640189627714866113233048939720467702637674921646297686120928250765188903840175508959670729957984305034667218325737253557930777134652052903974886456119986486106178486146260098767875158111684758536665511120331176406253174055314823902117841843488254382036744727341290462770032465446416025942029272811212679248424583334632928718715219403239977632309967899912000502421428943469667958159586867567035291017045941448537589790230163657930926231549510843942763493078482627940710068062463390807129109506888463899612055867826768144132410106030224050045831435124155676332476268349642399179508947644981389447095306664136047457081350465959086138385037080529952555934337111513658184982810206088813706259374417183399557644236869327913583419750425496180927024760679588112759763647980127600190122398063111507605748328751790645949406911635869946180768355321983609184393046623422903980059543417042439695823016171520097717507864486320920395057667876183947374494157869242578840612719184494559505952847771411439116245437254681928274073884902893166576672401632445086143056917428226191429038400081824304022215556931538909440674469194878765029030226555873051585738599237882172732962406839442984382104530044890437294729780243993683912105820626838177156067367402894074337691349158888579265489361768105893271552777051976512809786497095665614192379068407105720448040806429333063569460248795520483212587665174523801121044940350933496366486644451162757561372078015115923844478766608815133770200493167721487969120760692253226494869212654559602004756360404025459489710809827605503064259643240114902806110100061243390777893742860887221535892271659310558707667391156857422340199044529779806542271647828719861181911572934836866443115675429984396295606689086791153924543162094558390730448910176432973514434416566785090210989292370682091870928897980196773152982389044404843078979408178259701157444891348546896873623985370717877624203817085233771740727855527692953537643384615008435539629030805274839100287593391336562856307400200236842660156021384189110227157157394206523596312427269706175024271900810008813515757597134107148348157514718505779124282103717162666470436310581490373328999258130613928157285985323669982218321643681750819887830644421872666402824087586965647898188770746415260559593065524726095475847214786554520996298219072017070557001984157807929761316657940988392732411004158736860969329304138369330240769497760781624364503927387304160755001760905697721895569206908889427435459650496380533326761331001204311436147977565608633887520452959434659149106091649313046102097245809633962656356163105586038000759213571783368445619905003344612594373389134959266727391999762772934661625099234991028839802399039667757154734298728557080881775710767055106676964696653003315035728331878183759205855273624398266324410397576762666281387091890835211352270165766648399003425194842219097338576597371391822871660506195808482786137292463375218622649788848145996306621828867034253122009937326928582761627360511984078984967275557490051017891186516550112487654533382348242218432713548303315272369535418106495412209468561837021005864558402429318827057970327539536564565691664462969429196804764799773612281017624202725228777185341003588262137250653680652873523149851669416413157058984797825063580890423369636146885979461651238310231626685218604342997012421117332222789879801642981980318381734643511668989465281246360819914108795290585910067108117228048965424793876369164252496566973568782525266251175959685967307619028605873994985157769191198835970697612688571525450335320038509183960951247604018043917599501736771797543177900817928634242243116402974892780869094928501182420790866200031143810888874290015486236464588280289622338177521425577153470449147257307851195383448017232846345889730036341721848648180509173820007508150895184480394237407670967287162347790548785453096879029513008249439752142525922594635010515889906835429166373465701676197531829471286844968037081040216022074253881353260703884008833061889175792302852599589852913124479176260515351672521252361975679549868991812696229580029514680805294073818109988671033580326009118174351152893700599401214343865240892596060663367195695949798726096115490030522205581480388799685111901715252865981393930519619943209336567278766304255975668866447151971755990391292005380292444076669266250027570072871607626385505755972014570834029826793970217117578311334362125179813940731927926600837821287959467879460244536189702637815878791225716065332830462666671149116724604706557877935604701242035383686327202685475046457790477354582974112892845956024743562000519722080606533070122456143670511363087525746181959522698067653695448568219347489462316432981784762889932855989625510341370837986889111567154392699359592184089649131227888028520863303327731268741421219308029079619252135821598035358705750641676862339548102174923596256003083203495313213733692979893614835324341317447693205458197464974717394626715363769479883583935550730144597066030498193878756838891636640027431324543773524784791613910818772628342598835090912070973533858690755707431518981184953927076906684355917365720197604671842607948370249309863980676335623729847624141643318739943145185122442126657576625761765694470140243630493930673761173383606978705324458101827358485783510039719626122557482086971623769156848237642481933183938903346330560056238402860821623242252942964813882229760698677264198690925228035973302619676706148321681788071175004928053781639016301626491667457166730841027109521132471172371951942962763690768164110926970414039055405091137718440701601820792975189151386336896100264630117603727421239143193032898276288597865433400351640839398877913038289001398638962745814874502745617103705692431208533931740233724815436086195329567268818145914875347295089198367862273100750248172722465197948083590900586496216246083040046516219755002899672143892073202665968687722997987801357950247680208291305041091452539430128206754191588573511300328164706289831379952332764907694382816917456180481614247307578703929491981835392776522649753128025585036015735485285850948372891973247827989257372530794299055727289766181289439241140299469620235196153971462346677635593765181128292604567255948806120247268125736670727661026127262381162556287971682390830190537631570308720225331848211528269440529218395148456449701549877941392063784731033409298660104742371407312624514441593641967589883912984994169234234847250003356185660309380847873841358672489307589151424702060892268748477348838959956106181682634576213078777274576891652442949540492329330772433784946920368644407380518079804180789123971220581947069206317388272660772067676836735471488727109161213929836930785755147456230904366717437017847071042948052293051971704444339321265621774362473402197129080708205287297127540625210414178594536893338127654868142209535578674521543798506709841466357707988509348686380622528366608065947733434710703399675848811012821926523482529642399280618089211597939636663270720443772821531404135471895048568475908116201659344424807956814277099503153041524990776276644877436990289660428687054483493263682508601912681177177692598366425456001639609181471367687630375968601272174214485819723471803733189212043303135890046372073364795238715781322441201610565511011696999501253920718916663903344302803013369881402745694995780947353433131177985294516182758106825658899587178470548592808819894161037880207963467906524037575473875477597178905878540288876364642247692635159641549732579890971677347095153328191880517747370216143486429034451878349757268930084731785423515339994277247604085947058982192298979987706672667214127992595049807430451468769574229090737755334516482110150525142825043199276500324405025758328313235838310889898328381371739931993612700496963654936113740766529228508399643035905284996360815783899283471522497317009296860438484104355879172263328861859542479604918601394973063841366779396900552522451043408237281235224887930621667319635180809527086105609951480321000249469787126022070564200824217640377117176111043922492404455643730785430415824205085155708828304176665745170995474727224813181829096214278156791143124179508873552932527598427640319631014167806571275143837174240287232544222461221737269033624380720675565688822904553412869957002601009313679730199488755484335914127788910020369338039648656470021542523432493345079788145131331681022953771423180178004409698586000931726968777023400422823923873892396537002165643828127656503809986433747328933384465804010113951934222667088280946317117901564236045235699658350485482994032589015796153160069008580672935459266725802568833700230991817764426903946715942838988289448621447629107484959249493449363264550089675137458846066171605865448269331275576835350139467647077702811763667018264593672637895350899298356791918573901940273906738939389691649148370155198461979811216333777526367227054919367829440521749339681393315413926414426737171774885230368979855437790771526122561326112417796815300316428134438079963120118046969251584280911556983075402999199068368470206755843076241451891637874400486985889394056351519336381471253569907254697708656145704024639447483816717666902093299621865623288774962827157140418298368134114288098838235234096281325191223735634155791563222691467643688914659508234906359544812636790697581279313686208176611728438413804182217805677032740905202513121578349294879003897353256054483707196279756949495864966370585450774994532282636079647038177911843771943030018046295882066402759289091002772902229224236345560669758972101994305959420511421107370879973180523043820762505900809896901076202975030526154329383042678341799163273916358126496578032787611321829716156782302772181294536000037973659735129995480642508417811881334859143848305019597408944075605825562131949878195949400110607764191116669386227039868426654691593376809759352187733576215042163261882139291268249546828690718082203838710143587744650513570178903313101724582372770045967606763106977250376031538424997972864883942436258993415935157937299708804169178508116625791717665978770474455994198188576299536601123722635285601189847564294951160130022566638056835894981685961540683523904597425530683924100267659371357729571097181745005386116844041521365962843428054715762033286863776724861052646742966935977078049834590779841561867861403917877614688358115571695471191689856652983879358632869910016214094892836276491021069008873073039062429383398844233779990158886987883111480945135699793489326505141819685744971271784753305780605350386027547881738527753109838224159806923181680946861798881249248120605307354887161411366989067460694054966531852583681744125781749062612298097270674052006517975125478524927338392483224849404779563202809890170125767834348331416067009325045402108070976678840503963110963911005903966142956960979769660494553023658657544359506122480291506558346751974469174601777539489959692834412777260905677613259414977924967243573802078627600179994971223047829886765803778149538491842044563515278404140565104139472132477208679652419020723651219425645331186835215890428836445082347480114803919864996884437462232724005737921664588863974594075271838375375129614203206537302029267058289240406686588103273566519722899100735266596684714005396712253035384442915133120124903137938267646580761313606309789178265736778100296101958604310108289033828301210608734679368170700272310964047928924149403200921630147538339987274207496062622602571979081127670547546766993949440740718683915001506406100997264538321349091012284876576797060089567401280780305735074987087517575027286137763279327734022395335406444363856658559595165467985297735843016659282859894460343879454530583733185302410478347203146363613225049634097299680037863971414839702425702816024297981301449297558482456453338018591816487893294348750540366184901630945000970625876328969140169798474762329655860865690558972062021943331639164683162384108961694337236760305524387112208836607201660106445565020999502028998107505899508342732369164458012503663538178734515556099151696928355071273169755459278616750660904143670550113792276514052695376445074830706293734775272506642921529232876064922944847063740965330310318737999517125006214744418214345570241139729336858786150734891336861033687801012266708431948045353437398389368576747350092278574721258176083227098852990732949678512298400238361621786187680997290732858025853907185160444064576021203104718467116898415554213663443714568111498446891378370639449343427038626115678566574665377416893432566716498064363559100808005365945198245756456013775848525445091435144768123503791546966177654072401592993665482519312523617080481506101767709212484994359005832073852195603881018794991995785779319790006016260607905475863490592799791308656413187180150200083066742439791563280178340749338026315597548337653982544630027723474491070273144329412527530592494584249963133708551477100975404048983831051097126417702890504311059768148067364146595109399445445236274701968175047993518304579773977765685647697715355738652935630073795043377763882499275647174862910793241564108216488556210198780902406423179436848137774553003563064938594264824508900778758326427354799477991173783346490612666032036285384049310519321889308852064026872013515394954841898615906821651798828525598253210642889961652834321789385224579963107298590815565137320909787930468989563448034536661475248995125413905363800707389130108928773141961074014469489804370996527967985949780831327985946284924209144962718203344790311783905468265368715579770208767538863436336230281923473395631178738233874009854755850009082718000547569015657059364649646192194975616166381604493250377297489006954628835605052488498343447775990923074025980211101988689179673597259061924692882927802120457369005400409345401682630896981167338542152841515961395339838004132169896138731121897492302522769011812813580769308145591749317959242194390628438313899365089376703332614025640720011883673988292643215165886512488404727818229829873501652868191014493124304868293369445702138604939284075042291169520139546526785124986106546926900227183875185468778338800498213263413397092450276419403527606119291238424530061424551018100126766530032525209547915254684781035763565616751418434750231613096149428897688275279257354308200633910597900976988111951813165458732912853171735958465207354968251748966786657690350759707745827326956878995450071679823692406089851495534370288632276965402105575473562607078261550958826228883444938987663871260334562430957309878103735555634254949714182075257890104549138098409817784862370415323326131020947890324960306226670377075457956407384967409570467617609493435536889240358459565494558460073154189318576256540495025459274851797854609431606068327453599376760190995910427057986073830900989589553119476393005964459720224599994169202705068457015587441579188582739025028729773509172081228063917231251508200241593947801907313204046823464788490096980339714638263959645355498179831183703813451272416052121505458527625555854632652853069530374345118949043930175781020405299721703883415519239688900756613503331296881936448597375979861143180034981879112461666692122056100527508021907613645397785348621266879137231684171580052181272776411704555931371559747009920208696823988744641713575292093963137399842748876740313430886035903987973233251703343702019806974421012350163531626785853975621018989130199210605022181315383860474318007533179707091223477843674341323643496203127938754306125490278486477440749217217188077557211331284792406423319577789848853443594498978415091150559939938749356582568333130739742051018392511240965701032733100901959488029512046622753922636724520980507656560713299513107434916628319928117170311751899605442908851543011975254745565283375314136004654948448005299180709770302249609742815485433196051111896189267932074890168747231983912704096554979788500386829973723696596675015884418641474222688696947854808205935222149642925262764695489800219414688269229521374399421910163791183989004190574758700585335203492083548066141674774342618241206128950869371404334750777595016599629111530219785934765779057989092075787996169315194336573099417786132411786714323939426851259361481976281218463622987403037553993569473472154463417705426366940332529032508487649114735079399545494956129356396633499917354592481544782083870478724987105140819856899494219630603385815581157931619092490625626709343041312908643012825286979612273048543745197230279430250115529023588074054845475432360830541814408683137309425566812618479149079922502750757722030401327094864740906224014013245955737501813306745116621280460546499840108634995575660682513967243815819357180378193106663095918685991939726836069328171574120405211158693323285849569010941024704919197571943434436524954771782719414631055653718876624026336072362648632286291909233963747199127071445807539926058332151842430773019999041217965907357288894235324407470811978533657674350004831008561140328963053068297901605695089505139006470976106100247696672751489034418381601352692424222489056360310027824353642350747918337173394524586413317222588486798469925914723182970985980003153681977510569356606844697427071939743669920139933507193238614997585494431113898389156568587655161012326654393724015741773230855332932123262802017658048202693149626259938781088119207633136088119284342645201361395040320216430337109375896326700935562704882846820785394547620718846989228705132499469788824338449187754431961967498046267126926692156429670141153967071503095079045844635214991626598134932040853334666094762336502620437259180647501631810127455972838123715431542409729267811152740741709029638175515959705781229979712822897627303411945512474482682060740183924457835303387787758298255471820233466797227375847904706573466796210268236737627176857444123199544336766680891987009388405389916416044463157812585843478583347797420440473782371247962321069988429767232043689876290517441192584656624808869560065465381696837732576312665029064544095282954605668037837424713342527733843422827276668074520546484193204057401245647482974048290061860812794435376880611236843535802114522562150153676531054975976841400720078853441002763512475804605493146232107908976352557180588161307948909561380428667184816357296624706972298729698655099856405143996809710384006498419027286847451916661995307571337303037244931280132737307951904751916749523935387308267343035964229417143835181547730830363299716299907177401412561702382382332165467029425774895290724430070381921296021631225957984528732955160294004614670444199296070859366783619131095153486702576886439036311850725636271595978339860848272721279922742029059976327425962472263477200300357116251207356119640836624286788736192536796501480227447998902495167854494600207118286891739114238268469560181649782814877322753309808282983704614509449744953061408940955659058481564135668693345477070897954388330715762630283437297591202130181557581052755457748456661440061416500721860849110688853115211582403562747856036528936814855847251168624550294488244079382167569905211859313691856921788469733118784574822811748767553706048718669458149427357675458915885273413365504768477021095588516847873789187733577147508880210491877726302333365450812508662837405396102307736005272232375194745481680974441487031886170974540799945300678069633246278065887082389458727137005509391576349258319129955760209539911359246795468167002742352185507439701143325739117965298900669608655703750071266626496768125330597182959621965719408871123234372428323575237894466208530698000164767043229776324030283717720223096432352445695762822363531906438126307695184403079956841597813045619182822772711364753003687792579265515343264289709333279277280818751884944359809461661834104171502657353026016250602949641323165576918383435172715939364547609562816638189264455709427984566657383370977272951531293938157813955799090772947392870091557407814874514858837507250905252029301796121329234554979755817592117390997974874227617783215954629392228929801677773307959438810447058027438414118742757860724133707197283923480348122509088324217026444526107564336115242688840964936827738434263941729402100948681817650443908453952385174645519373206305782125652549963767010558071872029753845460735147142059414730378499208331958476840462663891708519744220514872605692942389935401799726714892797892988372644494202383719675548419446679942059667808825748081398627463848385385854710616067154830054846897597811237158744424136793243986667457547282502896034874986260286178082395860164135353149739128312278375145821656598649214619811458346935942178202782389901611035442303420909849784992860077143656665372110381679208638750190479444009933539215526405941150660874603045859474513241050680966984963749687935525119802668539055260952812753254371386897488262610876152295030365493741501210016169524231334211883166254986168356033205329098370978305934460546181024362411084353142717874005595958056979373371950257464255562970734411667062009108048571893087840731469077525809736483262772936803910002589707919673109396750846223924917555293085594301225968127553422791710115380517999908469067926308422791498827252190349722349857421409557606918890263836743581171996155815210363122529763990920463830448854738774453155339158094328166837669802342358001452813382670531050029878873652545813569129582078599277200037119103653309016114552558810511473393631494142524206152504902746791190741730972515597426522641211041410894915139623953042898484129030424535914483963838513167963516043662377749846518282529231632617609398842214343122958357415515181015721109181327803387177390187385787084640721188288654001166226626525930701742528368712506151391971215686937574020801737281783658836806434472820736623556887270665886984339995108869329944241261545118907587053836938164027781509511733048039401105402903219096280795109778182079830082981421385686712651953446432194219762454782852697067265103101316970704432913776529591156635158360970309761304522018225473950856814311699756503160952180260960635529061897039412667908371608167764764361485246362631002068110495586480955987719637515312469999259705596808331294437907986781082855646756783596927282793707957715886478087807875310633405639350049116866462424797516887680165843331486700705228486346433905946964201882216838525378406431632619479570898655853705182747050750478837848361086706463041409559789910323226003707895083270304184812125643949025301468299700930203865461377692907826357147205188695751878159596646518665280702383709421436785539556233202087511584200819357872779070661362244987772063902319155321005773363064122268931796123307414595581458484921530799219953593031854077393455555561450040846275514281660012397604068243968533420666726698688350549728112467925159453273870387075407578980259684138984820186198375054607900876205262197810802944719728104084459665622053116173196514666448922330221101008800837991270673844611365188464545998548417179740356382219863393856263090136509191253674118021503147687360240703854668165818826778252858476816977445947751936071072280665871629165447914160173145206221826258995909512859021306343079901954797443267129122674240543389447819656694083886790432595033603171903028534438130371580284497010185257410470264041724058205116341116210674135073599489113547609757570277913043545386724351551510506819366022418452000740968261305030294062423620213248582132592645208889708067340092237343269927842817068687147235415940923079525296565589689246125311508883440075545112933670039249572600544866744497709992781072113771681877177591255599509252191532891789482299186186256229866743969739356521138792923096322425602891061717132378868051057108803433890161119251604259535617995327795181629009670131956505906147161184879677596708388473973606307921113922088617133694476901225613791989818714849606341147182401384841801385264477178429026634747018320029438228695550187825016088592766071960966533537789620039584467371991257253213529721202439425346717647750157018878576218762931865878858046464891480446373519765135004604741177163651081665839220521945162930388524482021826141784788063035724218229532814266093906237033036760057261577362388487009541002640174395446254320048430480488068670224763633661504195812879097593189052271933924660056802176915199429815494015381930999866175595295374962849912516693614948639018088602596865429093211655761986590537412587770651288213633607810556705053150224595262778257426350003731070166175910864830461713419273680121347493211891113820947477112056256536838991847788744850233937027624957206173842018454178246394265882341579563221434963242806554405681161692406919131812657300087485000415731420377172388230539908314599218825052856758609781724030559169862105869522602659929112468834179067403878219884975639661057535912924051017431992280237588657786315208111733704252990126710739390561880563889902493157719442979831056233980750499138107114479507692598747305869201403377615537873901313400604607787532945820434692884370563832173769459440208564097846788448679363983483844975707139134594741976685384881878747465236626192659618943625977348420825910748525845536725547281452716448908742613746897560737091119228146223828472521103174688219362780125002527400837883669264702673612896234902999832834266159046949501771959512141656457045677222497998853084180451000875734432663265720068741287433831403169996732268968905266930335220518015341258268499321573134523855341961819737323289619402838269575691590254208762651377919552728098921909793069586887207153518005661075943263319925783864318265669590125690368616653636161346483484381262440265733432867439836421624696648918611165179669172615053563853229419089943034257422654320915889411971213100696741700157275588322723089493016293584510269068489963373215780467319455420917728476523237714893296247388681898968113893770720969581247914437266491510284427593340432045121902449323197800075411189929089643128780796622032792623971351999495675036315176066848801696654882555905153960573928637399672140136671434396491637879591108603174360166633397371581061383858014887656089351352676702880030563453948630512075562075076456266230767744601982219741860650166525717822399795652238510012570510476034405477194779784633709349016797197939931136780923845549695730288207698401142814837950704602496151437661048697633332546985314473165220397913058036822083183930243241270905704421797049488665808193715365772134962838322502131257792375704847008394334468559164774264928055153965149791181036887243686698818496415104901792753061270212071476170779077176195802370444661376036684720520016813380282078515769860982332859739911968000993566488154573777411420129689777109848370373526802621026610104453840220595192574353057635196939706152311431433762299938974902795746458935860908313575707816421597948910315003764087833441549806851619343617529242745162083880113010260953078701180677748007340892091320289770640158526374679039397531278146267715524893507971910047469846710311153970662063239501397276620547978200360202514698371175647496267772070714849609805497594794826008396840595200160450642180941806731993864996863228855643431954142357543567178835646548491848682804907004361429088199549011632972215654050055343472716078882952168406970425128175534845701894441708860308338347790077908946638159121652456648462268756128497540567063706786673153516826949966888264780924950682728780089093408877466351939476985582017722624249313977839471900093179482444599026449324284099772080380990753599012895200357550089220896940235330443576993941383180333434470435856870945561458974788993003889741917658983176513580149870372019608904228679761229269757241581591984311403727411491616291527704087378765927485672999314962407335109903638167423704270459025624323635641071172509928512237670430783237936964273341243764543327670200723423447371683238845801285029796851296635613607808599652721790902727043542749170038593807409730891576069428061388978012628524577768216261760837561549843766080317745817388459091073676153729736050443721427482833138186156845528778089840997837834647459156669294562136075760379253494493929857789888947175779451522720158920710426188090269215589781775872661392915024537025714189033802539185257119660275432427098145273739230624783202951801296584176504907153298368611334891122662033042344800739855771751360104991345884059497518030014980872084047729467550453300790341690022097249834349913125791567521012938272128436236396684585487226549910234350347876212944170941596809080095449701944244400666938185813786219991137819761501077139774762416952126688546603764848190155916955402734193627246423369902517701972654098172756571298981500013015845870170782224658245001358558260902409489831710237542107657378085101957508778421107805779694673701766813905226629268362685663529871328201818690217808184439856805451553165791943067735276295220595530596255972896555000296893836659651073137183350957276299659074819164860237304941854287288925389513562909701784747455485882208706174426471694100729039524942169926374117471765624911699877349076329907564513979255993406648086923754170049699072342040358127327046897990262607405345433951267376736768319986832154599354049403962159009718286973948217329781308044802328273115507704943412843796913862443461541253058579688929452061602010272010390139725453494319956996454590715494529379253141741147456264662656846548533882004655188944586884340841231401360759357521909647117363261943362047052434273494161766431449790271798729151639148060693960340124608929972856608734149528121615769006829808737594709084640541327930808117637346382035214041843504685889267417762531390496415618594208534895401303328644073671221115921238093787486278255124877238817945516700984655222023607615318746018581847449574575547147536608771097172207276040703238904433354423926161556618529469094195452562598877616675651889675536326539893978208987648611355268003921181076087748745821522822956567467696373442311189892144407657167329691276681555036337056615215247429646126654822279560959414503246046260889440323601382374910978488936430379722768424341541684937311347038625864592614313229950153863594332298960280885138169093373856599976233059006368460140228311598416585077963384567034385984077800084601284513391080992022216173878831579953411850187405772700361942447858797699572102245565274476993760224629459241336229180028645668626978323774459389583022556160850742510680183651160222537929927923477982122676566698733680800654910751717021755928354869343356747912265530633373524295655228041872534984950209848561635729990214159148284966639984043466832425707472131208384055708483477615192814298265968011203664190478195693890386991851603368715345168107053987416112454954606308640593532165432933857481348464377756901230872050562297003119657428599380731903860105383471482185244222290621977484789970869668454449001855417963034688150361021400461176760387830851659189152793271887792181328164639918051747772840237848525960104586426642902179027066239069241102689516885391208236746894796044602232918550536537472869952477950363924610406509330414527201981204537203030579643901912840308258907830736519997022456265068024369648816049614299369433780440805984080484910525993755890984282001785674990618342894311842766528403812708123907964303339298909811565480958536317245344807008220699136255269834813499591874595654444959131169366482594687465997795958367707232977127517818650134198228776110332035509314935704687091042774071149009010511607044818331433543460278745281472368056110560299568954384315293349455102958755393468283583219010447186369369315342757053091812321194903792526705332254763375413170204697944333327987776589264301827068782965128479936718596536308743325640775878144957809019788810551687150709244105405219023660441975235877157645217574887299749870952858493802111579888989480079845702261783822689565185083277135149080109506327039111453503851620909540802210776955654522471753906571483171867275568814593637999443713621051929929062681577779938328992163734536696759245700125716010902341732518764629988043289030922503656372467138835376706836753688386668534447331522942910935239872035789097399260960501341134234275837347190538893242818455497388526926131301765318204922349087883098894961619577629096846478674855867690940407148877328374299464194998364915685712932002258145243383942619334694293370461610979073081481599988529023455483524585839199299706704775552453647990692352026544965943763498936517339265908577719375983744357031573550448994001067779725586484741780721115651700708141201933566705927965018688161449925739272158519544000346359453262720247309525205904586442196584759759547311650479520904198962807966372108876713733334580844879117777756523785882862505406242911613613066087078486460018249925411975158084908361259982651237250637740423586458288606205462878569440775873259721542696080766881896894757062896814857306139520775257816620378370538760714808583089437512922331432663315208118083589718752028555597202665029623200040579326349158746780961173830751750243779111302013287986224252823648078722493472795208722993618745641150705059672788002300482569215636991383598711329883897512884224199805253244462623253947444927101912640021753590976288123576290254646386273365039249606007241630448922313484246737612280291921186988807693198919397118051403487613698525989535127293469333502494624351437289164439786732384519770027567053259055036773333304775925677501977674607788174569577500935929358840065688263244172251502575807284645285599314765001167211266217439926284558036029771493467385458181580901526869307188141897414197086645728971946884801110236389607756091612796756555543587561360838336869653369690058456798464436807573439174572231282602832392203704842524491009520715399829170912966783517921313375297320660740059841132288729697239004448024728242912672608030902881370677161571062305011080159341758562221871175930100023452571559229228015467248023987591029807656767214844582545232738166949699971996138533257833410103656489918993733651727092583213522242776783700523289605931621168216754751183513199761431301167869598833565265258923551478051748466049183631599307141236329071362062068808476519865913080580462820053478689136609405106058834273397943910433648691389214659659091399790973760201175753978065830101533277324525302870202269201986249388267665190580705142316322525658877278030664376075506420517183316586698213624436079308733963737831938662644692286193920267907491318715825543406052122340151702837998117814707541967744101011449210842475555359717095255707197184451193206990444151387638701483597627137576298219317981475796353233935349643828893381175361620151741298841776289496014663739242669711343935643872954044110591444592275621699492448487595958432778132480243043011172442534691054036322204408080705824907642085719221462667811552110982369574491709025227227994300385086480660192335733297290255395731731046097990897768450746210164757780501188972698172866121069977349764401517862314360490185531518016360726562846437905809221325038288293481253692998128163744654465057350744149081359885766972069974185589521102446121603143018990896510871802614876762110530233758265411898546810420825206751083357040266534453336390311354609014918538699456189179565638903704160382962490148381211476381244443245246442462396546626710923569967982489150048505919181718642604563618610730388403125086588043325551463712970125708435657003081566665123752575539620669245160949931940237719612049899190918867787096362674026450516637043957055724662910880893670467305673130375141979316803392192639090414949286220369513659228788642984566866155174744552942999601789663870524004693462624197758505734016429193413026018674518802368270589948811304343223014835273921331430948954530611933465829074324521891564450741380647973069797606210406683637942727306163726403327372103244532099423897609693757370113289297424422999530448113539329243117828728050920251605397060462317108932127594204563138347851183641931451534617159261224772511902273807182701210459930035036408053156837561035137429023027887535815626598063254306856667939276301629134648080278507018430081555798205477374120557919189834750780250847076742115749672216622827386896278957185823936136380766257236550865894616264438188632164956123441171673383421222506216000936822109059734409645808518521409553947319857518445849477541830018396568153937388632106736949134081631976111018031971773473333871603715213729177977653810251053054216235678928321558157774654042360151850767237089242164496507342504578481595932439903223832929771275925438082256344822147304374168500208866553302699122486288496793533300925114001270962329308123848481036969187047974419852876372008129154105739026575411412959100593803365312260985475403793646360724964613992378839772762418271001572061698202486814040170011579054775474724808081721162167847726836234392824419400694286781130072357054401261374806478966443384983982547839903354428472252729207758736812769834908019553581450217131817698028299927418964462679889420711879143769714470524453650501491919507976093303998381545033264794186574611617132412040153058172902763931498040374417231111014682302790259493150491272513275444660190060921495165321160911950072858533946644163268296291932323626497473016343421576748917852506793577784731745760347020087093345304206392043155172278099054911449113030962343217296990019133330613365505109633688974804125450733166457448750121308831790258679146383340439031382636555230020277083225979688056794373494845870595523301090404255095056396251973830616250410199901991164166617188051092404729971858611370000303920371139716350820951243399210502906863268596819041108729373616314356578712167627067312360990754287075010541054055112654488033669468787198049970442036477093645948985465670990109160831542694820927954604481174231382380260450626961910233473149640417754833754469375919483390947942091511306459903687190636348401807925229604578824299948320591556235910039548337900455868780410181358957345086662526462940089901553651988207518988156667010326058504249716391992475731111981844375304186994392279111216228983365998196397111640993478230704751025251761422410347240985095423045828658716281668310607449726004171210176344705509916411450151185828277789194649873837737093929342167940737123259599478282070322986170818465845967603097261796248760032197360911900100184360834718510125028648185225190862016596113792970407172600942312760094325182620786394055793752403626406854093144099067902927355427497121724153215556017448092314999734422072940740923507221600893240244047778570727079046877669394103161411263581401710390288775500657391127286960140901836885662718231588450239043737451207357644529613289802663030310015323284624430582955180075213781022342257615509203689516978653819964347241211083525313079235819572392242024587149802540948765004152417609728652732589429117667382322997132768372849068340628988715493260244561973102164524094783348064137510527695979133873187421696391020057250429689170901174339851175988420930177619541092745684909199464897581925009605788780283719593302651889913235877051334043450572967473338477862537931882170551466439336390308517443047147996099890487531484140633617998989707503653439291853256231094543679191846391180234414095304436763300244960244811006438383773215458148637579771038839602471032455545289167813223688373624009064447484103371790647682155078338914688008666101601800204698688176024529863775653980068012843012913073207840526992102392914351832593685418275774870119767372015466832566479468003634050285184188620366030820518661313277353642425246210916098296918117293792539279089587909124625406874954282757187776090495854263730645099498647981624054792618275161512747659811151480206404601814685323544528192090282197996939614465136465868401505242048930873893257372821129955579580227302152984611595718729200525014025672070000962523326481016688993981425733977700980712984997366356406132288882813475347213651350346827681735483884813985208146897600302196510261198301720738437096381519108058671013748912876126584019341848147574217037173301097781532215306585814072905038921686934907895327881564076636681471107476819594545114496677457259437238167115137246133388067372268509292761731836086497745701137511994928592499001610706800528365910385901010013855997202326016810366076645594851333684425537916404804969455184326066788367400700935633455410902796646968864666752396287762064088989283148315220513923180123653269791350901678197274134216401608526481720311737255067694755103488039668335030509543765819686172571886431622865755416526638527339641464462380283622085476961206759425801826992384336598209196533951805622837857899106062921001334733079945712946816286983725698445072086365797774560540132481239379035833381864087295630826512940814294448515983509212781416585172553443056362965221579494112607646719465025969690301433030387655963116631494497982092222625060501153064336465822556329700051572416524606183885722335963512007337287756639172102461249870188534844576093746550897869494385275796276837394824829828158123235980531227651572000864206550885153156927955148950591534926705739837122948207698814327568394877509940912390890176353829134061601725316493455000465369414579045567017673161704842948321843003328424571756767407621553196963684468452991049947534542410258895857074193920588876804655733962052413847441812240503626806744629964994820737812912590896560284762921559298952373595218866153550402973791168883632406540662484691089249919286158275852059644887827693893712634428550390710470500203937490467571423345453546085648160889723516149473107441453878415889192317984701376814962531413875036350260162626969473526630515706032846269757444356611988526635622263900346807424306513602001621808382261211712378921631534655467776746423688570442709384126118487832965351575585096684661653096581582809326163213086385522574816880534439976433009901364137793231686721833832225085194114505631795885984260949725393146382203129548041061828201602644873079641457243496444740931608610521506426175222613705135027579201566232032507799028616481005913998041355363461564659603538708493598104006093038930437841384158498781197933707284673446883037685947549944180930113768469935870561607305610883782075572488194768931436182337990450377234280456162188561744256071863198524144668581246257999058909851519893235796105037631368880090502463376829972338141843411245797785027060436750861838559074866931435765324034695375761942966789405738287049929773036711726634993643086374060710367442369609601626019550182675077963175768404498428122587501904104411469930207036884158208653848984590464336915355572592612397444391147245299646020255647071858358417179245029069609035929692232968500883774819638144869351036787495050736518467715526905495103185769700656870424181632233311146127220863004574979129103794414377834016469680204990588908052680936976789837814721515152860199752212248976976685069974361061809055568410044792055296785041344971700590679279059006866264967989219372290546583605499920215965273891704060992223345970687903677559790926659550882089631030612665720459702302487401759434643415884626586283064026271695623969679660838216528978886275018513885455370027150212355279693107846890746664636244158133825290629379374278688035950590808232857707100299236412089820942822064250661945622146247347057714685049861690559343237656762569413955698589612037208148412609221536283048689140258826331331296366245807865644333163233845729548738190988865930012833650322797003752235492354479325772205599935719375203572695898445904006748622630427596280437932892790910125246671781719826694723973007347280578084774916977244089965091274043982758871683780334114842959246888725945857308800231278419797773257164790851929931383615992189947503671252716400940281857928098146436959716369930531788526368126986923015237333748073585167096996307753488179728689127959292674147647011808658844204444595500468508962321390766636071549868991886665496618266799764638321265396465897795796747179556922416986178170226256604991693333145171270834101610647064305822863316429929635060648841998647514194184933800632037428755438009517823483623499034293704863276453840507690257665973491610926311506088225416461537369354392701618558446714138034361965693103814461379575451145865535432966873410700101729727332984746795504259990861407709090567027940536703549628753065151110578383378718362381948618435188419726281003603584690456480876627384023345364953091933572817753339056841165694263209484357579488843306274982151523976485324271487604705793428354843719603691666005971632112387285098889348079268770616663123767707967739578656656069057471633127395518402628122223517616418415249104054992911786053663041093547476173472384189479098379568808826114267430869295242473157355073440386292350734947350403645720656814234670921779219740506829675797188812862327173690502105009404372567634540640488864920800295595649346073821531952750532027905548460147692670199228890983827898717543957441752828266095974632155057107330596636665113086907539153420837103869254156900844830000567019185017766591262878030593403408185550481089088817092825057287613994961047930297066925736987749098635143732537356918022352559454421214058743662328768405208405597510158782937346255416284309143429239970166129329782748274991583866322198950464833333134098207643424019474432911271568964083942038918061420073931590848003484933286602305769400839413263698471626248216438132242167468156439424339101774874015732717287055499060812375337937115523993089022859835331593650981897701149040934796576673881831128352152942081432911883825812156679416236706784466047908117192665857828678334500288499935343028771180942564433930118327526947350429387207376635197179778082316598562936681574653687244451555552821646174550864168712083623247504371385268083845755938486066354711705146465679271508066408696783443485613780032689379739943027224549109479301415487132883618461707870925268889674681101764741166458684340852221537567536427784945428159846404884405001754326776307610364352128614764098871744847519445212462415799631455109744304159185910074468810773906889906513147509302908460984638342393251222729424928459036466955200527401269167460079862201782569708757315419962701673367759198990891777381421879345789253523774234647920268211531331987926769904215854871474307412063937256328411692905596584937352737747869954975679212835823000027188717871952457650003678852704394391615710137015110397234593372522170016487591378965228324063389836346238580313356859280815283904272659228100348104130260705126978231765568107587059288454495487004560767212381032311478059838531839023242658494633780909756699346729940566420734441040673697421898750374828370437331301192570034844900256909609482668615257660636787793243874257816678617909165147362426107729105033830050771657926279782013159291500731987760169467444505718875084040607114036775383309901434963276174434518570436340756443979703817578774372037218627008991017236533908198052592891861135518851708440005377968536902985119532817414115913267744228160053955663705364508310140963767749392910843744455896726358171557153201425389084448879484398953460770694829732189963741465660760678847883243821953883531837962512827131744406920758028736737780443975560188261666355147379933440700889725373507262317130172295842325916068857109496736835055318743893231571571780660582477132687843158066030506602303221457818301060422130768971891501654286876409280812849244220692335170074233231256536987522668601863325453838449576847242175875221293936626119029190649002250889885826246158189533278115349701454440115053303312906456482001415640999116991359048840466940561923893887738211042531737183516620730175758899123463400074040805448921051189821739326621452742674973652097853441629189980407858028980380424332596719555899593063752263209309935201882315445628149210457478896439500181890802534690887912262212668377348910246881639022387448222065061963036690289306880348685424079233245833266130777680851248392334953751783136005633643317206596115078814800223458604179808666513966397748315357191140492903626509033794224675883706879828622496204341659436804147878101615658707075094728494133214899217698972083506913474501432484863136115226399192556181724695641029022312026076423790418918149931249750485623857212075751283681705273893298949964551883312055644577357069153866997145822989511231726264707413392845825234571973041268616359817659102910045118377836071483422057582859271392706889044710592434967812663867255359367755410634853551070046383303570157279448714076341463808037998720479195558641561062438621871009093475509969500483075818400707894239672280991288086767717766473116495412099752613702295806539911318052441850737659539971792517461458173490296622181941046335513620226056822688239048900596078665921033891507741054020320777539904802148189416563560321360991709573891356171624865374817241857544607984804349534152090879735135257828172088934888271019246269395589982119470317713956650024289751319303447961979922975118085422648275114469705637035705607249140832978183391596163550799760650347889976244495787557750753801203013333114146694001152800834818819495581406840783277296952620320662864826763120194153295949121529236391352710680836047843209976774785659114117005467911750205860683520933346305212578405737967926576337948043662282332139126967811725243185230389913688578051146032063102149967022621886929424937568953141678181099937155845857524970823296779038694998565572324265961913302540896247578223401707797300346427591866221112433663657840468842899724661657471100013160197744952696898893734118339895052568111248874320873537704533746940677102501466265610345091250655830789838862888777418544726139417774887550413379663070718361591852718665335305946119506738706359087705734493471356292523204179431119104102679083942108941171604389075508908048626901152004705160885853907001858967934187542730478762321696153154220301521683234406239541793937846878473220918445730220843620718632351469599741796709002638463182225093384362315665003950042294562976135409975013003016782936323345772448281766441644474597564273239938261662962363362642074577072411931926721624811872272501837033300660337962185911415976107399970416665427504134332130611914534147877243484439797139065227823523897147498908874014680699999819278902381120754423779178497632439320027678572200092674280712908967045533540748524373429530151098921661206997697771727121714826690615433741081735240940420237323779466663302834756069781992141969854834900998435028551035820958248553634956107300736184947920075956628546993575642703607559107715584703928840581148923589314893578861333986919530459801372263198573864654717995663097700642129004864289576143509143061883870650116016306382577480405984551227844454984473054523270160089192184846520436609012471763783931907999516692166105468469356867705244080017234417578411383710370988648325639810346190450847648477873671624400476176486822121824471993774500655855295072807167401419278448745442828640089672823639147877338041256094300991585866013478609080498194700981686629873285552052012135968555983967771627536245718619694949046745294315382421223886367965761180549690866340140763025180512918964595394402869164793970969244839527315135946407386631997679860737803889619074243310508788534227663465244894402195775786653725890962937799237663299965886972276627816831897985592256704535541345522574098115608465701140175614639374053272779809092524389949575027995243392850272393720336977570912225343699264391382294400587706072885417034671971896824706451406593267081322042062563598243107083951548255409333847984166115336990719325167885793745539143752866094836560604639027075233358286745667408498878688666153169465796972516933782464617731428711704011881603544762314036828358223356099758486145937971424679596127418126383128741368671905056696112936270529614538879003749828837218495658233190627315806579513791737653214749523138529663639112233976561276449878970929344037033835115687283451954803420303039453086699543578273521459495933127668052946454424501505671108740267971225019697504398939012755400009102465201139390845743031577367718817959515663126637178483102884137673852046326367029664309573725836948817830226764742709435753827668277714680961904042602927786704856728247002814020153429223276466447252006060550907935316223991076144027280938661863304778141850318760580244011229193670313067132895978004495219073719994038820006359397875816347233134410371340711162459232906718114980600184573576744688933418817697153676545052431411976951774176528276139084561837862774074388099943797842836834622359267352235077329257979750366931915957729594426476502772683567551859030158704385900170018499311905836312411234723453599907544300177229214464355825237541997365880060618217059104434638718310274670222218124672811352579279550731865950302313579857583760557201810455849326647561543743090650397505550945866299410504824479979106068983973869738567073350326825342915285240297086242861557857606691583784495074067058365396329562599185528633569888191438732580402281474402143386186700059071305259270129905877538251573647146923642853713301020056188339459664030175974523673552060545090055294480264030435205720597103116209424932891892676045252464248778504931399022463666487998185498567950962647716426475100757114946225738686186000350009837898445879726697652612631025356892239145026777580305571400091418946906401146268081155572377380879885373165480231915613963439140985191819257626175942932530508046382336882144067868112023709510255472633107678229554212055731883212959401489509569042308182299753997538681887365282620911167286885258576517325584267098813127914511736248768189126961335978775883785980861699071523671890068991853998971493076207166401548147213194034317750750656985190662485386642522706567395757121971905088561494113482869831096620921991934125280282626179773134355735635023620647728632910854993853234925334432472081645894273370395885504655940219017826909294923121992672694327223536827990837580756067405947134753310797130997081185642798626993259536363460637031103537919901081087159420442501907647507413574192567283722350502228003031043477277054249493226166033774250462662982903345236595554342804095050830991383211306090237236976873092066956465598119469499660425734294414220807126159010677732444860628120631469097603138577053901167013208111480362585714857625190386133860967776918425153926052508155365363187874126185537199764888244809784575713329509317555787902752805497733962456924266024405898355027279337721299822333990316801781019648781404303452324414739158030568349931576453422786074338815189294121300961140099864023660219784576095106794345104576858873029827035664132939699763326467528640588384961579674184107556716905000786608422664557056976181923667171493328036386194549092114899314088833414943780323384461742579340185857219446852576115924312152344897703086448907995177694068509445228589807109812191399125916780030477986447436814362926306349209471048894454350756812350786435076215139837810757742366625095059223087439415140650247013700962033965940491241962502537076950866658888214376039556687580320946610267608026809475088176485414396644782265398394169519581363822728629675943860403044693493152844429937004487898155804896583976677985331369448987038016112996937507925351206074237732705305676749385098441497059243383549856840993156363338803243697933664370508617539857999953787534830058349912189079179633747055171918255787331241290301677278961135438419967684889683166172005873142932450120265406586170005535295552317635187024616332231447123880612277641469552926717156418715997936981457614268471544396430464900858472798492001819637131266777401045723655573610242769672016360783199279093802796073798373821458258408858091680409587283546453816911169142046213822510411324732959994316182138765900430143010569015701891258011739943003117040177408124995711896118184544060818358355262919283554395625128699467469920384891744709643147153371639907446248692365010491099198916683097362415669945923805087857418775778846788273735288117882726553773531669819119591361988857434760317672227352500519674524655024475710545725490642634093032348173679002377387395310391989446638814101449547754488439995316255108769095811272220358857877145843881098214332264129059951996174505722442292926888111652131179833696425002357807995722586476299112499751394119953251357605629145648032692741896742929793297337620373204750234337641557824461249218729950649811784039644327922921577989693673477344813773075498497787414884275706285160471569644837544904558789845526268647958301835043166231612096557666933254505869057358095348284081597649310296012792294724493933187063400042275499759972773553518432865841859814369421252894727349922960045244926252982847055010550057635902366802940690345669994065955828934407992296406087825068352592184713992863101129659177602615377053813059109693937152983202697719983903350696333435875705389109652458566185763353822271048985010407947982448378914141368747434942942943826861461363521382172980821323113775925361523190449393072373050713074234490442197583067669083753419324117787858908071983856288480468789151759610812680183085068722379951821350094169005655967416779334656387718056561178835263572726841822941972075311943917680937109729381366744392650082992043364361470010809448133637658681960990858590376221225778688834151017332711067542161684086448855503831676418484997470911157921838084646748204446704832108225188529320356149221863350575829958845170645793060556225630451275106592670385718067430821256345376621786128580414193060630050474461165735188764196748256783678667890354944161623039295037912689505746644166871153495009680283818026202493587025555873010335049079403687637556310055540597542635725013855667608729648343739374972167266734883866639281150865636464394645041726853229804392663071021786297720388885053193566514722205324402398104821757340420860035127936981614963982187532436609052110324170248054392909949627427194795671971754802032810715425338600695019712418137973061556724702077440029650260794046561732018526973034487899407817139930286370467666452291160058916812962909020048163539999197689495158176396756384082116383024209394375345194450421359687778618138066830526760618331545954989374551486195175916766245065710185833594654423014857393124437710849647906059346252482569825980187868465128828720767386622585005250853146245121193592748357159553949186391316916110862986770222913293523666107103654182597061883497304830480400232761203319762587920545447065844620970784448935695802339853213612952387720602961425873762703476114989774850188961940680101815926222087355959892046720401979887147322651478129587663896142577637627983026444341720287508418116158198751846066912489535453614863399138696088915183119586807886625924916631365272711107574536958559136549153080608417851661465935403063499571895145963973810357975245445848663649373029270959996146670605526632970734813138001723099536366515459998059099572667880754179027193280840966957512959109818901205603634658278871736147880343020834082897055924452768341574606520225656343737055004094432995075951373791115598570385605878607977325350483492623733406053854203722667717814737356997061247405892642812043831685727817041881663201723039973648091871067826142513806284677550685705353613339039331975036553196185338988362439102714631600004427911295753366979066865670331581570902306125617406526925267234941325616032129759503187371131477837031794884711632093706634514885755572147990216010560721540515008463278277138144770376571048360095617320358983875083516189547454477624708723045146558351271728523220985528227479325210065975274320312101831839546230304797958071158020925867508542214058045550912437294221858374024171634050137961801787412792780513344522716677568055065939864724228102292157081617103315380964276481939772986935099351624049372327497612690031480351222858189121689760927812970057530077981581390162424983828242648446290278516182247218534111646086860081014804295821709780407062107330562782926270307736902388990319860825193567998768222113078363033573830583606058287217968399150457903326190340183319326649793744839327015230703290611754818111890404925004164212035542853250717795200156784586790172319543958808383775034960843307072760520387726196384982958488577045894458089236410946509667726147905497602084656688603830405642854331672353266773398612160635264027407376778739655958012233590149550015402284116121801261383020892257865406701138392601200974389779187443848026685513087076624251497956732573884076618467137374299681948785943464440269669576314528348415136459353977795457560752042175619356679639607998506960162720854917840130441860909757389877552404342731641614784738856809797263964387483193387252597294610542480258781758673850842826877004399845452439551602208487434080621829212044116540744538554524116100736694065299054031988123641580726106318962935913351707557659569751778308461846915244580531612762865800712798760763727230292581374948519277379326233869845709260358083227655668214547010534526677443371720910315087858755577067753013142998522450882822459168699218623698196551362257492587758749898567247023319333213162016936919729396811859431311218899504076093425555885908977235673641012252895228939976972885386023995556682411167224346492731643917841473627471737904731331113613429613639347689241612708302628106918787294256904105905905441745446784012179970984864161313236941310920424363771067891803918880741710019299575033034028061854815363355501341595111851839860646225258918747184303728015747386905649678938256156665856604547745593071731149270791343369913564943283342301115376815823459834319432793248674878479165759866533323643985728410502700439391962883279743082725735487741261592956114408612099835413359659521605742942390428818437684874585248308341387920954209037966373908820483516195331764000163688252898040699210014973774224187356805700898138157819574663348116666532323151732724668823357141968890588462169653095688357341723356264969667327096343052642149765015982584029978005494323072398584787861102325815338800517686473780029452439566131035690786757565776544240243190803537229451207199418498481619264229561610657237750351230179171757554515513111318283009276184136645556354206698991168459051378279811310454663209972227820282312563424314153502471191887189112593390680562187068662082568886951270484631004021193663318246241840362923917877662494288176026043494758640312772398256136714471927536440161106772730001281207641174731614643103895958053120931023207369244906141429061959060581342858778556868488553855514902827742192020694301701871301748256581473696209921429094386606957178888329805554542705411474991709200284284343011324655581670645778684156914670486282368669355267303181238542286524612321436442255663737113755224592995062390901867898680321797127072357020325624318417013364061974660356579777933027796517807971241657412112185053638622968109984325387801218895623218457276183870467932315631390589436597757494022471126589658625653451714564972036227561340532458630644037565991442128538812884803157164342791556802752832207887009741170700115721092114965793189049557561356821115298563587422274460204859431713272549745172857049877585597018204280060661080292858781253421931785558328420043299629687616992124844507095362916728064185889164847838212011882158457475111332616791664803608709392150366289507145004949678275598106405759655575706038309550473582751585660123885614183812278264602382418871807471411403733675128306176434487247312538374160389789857692406964229620553266206682079371346520727340780764526120176693728165020747557348455491971834034042755101479009644045634422391452983900602137822956352165786729192239814991540082486181984020476382162301345565414025764222508093565041409509533861762734293049513758444451494119954519492034505801053593733452781484575456403685308243785624175667766327551453194432551163881413163801836408324688749716794115916934153022200110963432957979294824217680290127880448719057856491881948611192950220810274807111590644976294595548191871206874563736698654575388824110749778932309459890425075734117545903994620132907106683307868659681853487784561654663098437556187343668941705130874511472941295540523030551077156702187560549529293960154017289652498476573950606485567229373088699566782034458330225660030288378300643383726256815497070106606225484793455642666319070613913990350757176031664109670818200147751300200003145072170568873686231244831901728505540198342662580049893058281508651261992409547279284812575095530957521321556292340988686358642656162557755095486682973749419925306407982406299593788741528523328227329300754592516807539944867591469832826043687073213971176629381937485340006640206998736865706794556156091454850700815334637601548313881656205529698920783887579432433183026772083749554799585012677232861665819768915008692176928911811254055089084870856773119716748933234528985390117414900575024025859145844705870510012841664852761261641510704841167403208065722595847077487435897920519732555063107656312636790652370213606625711199793996982377919635582170440637395141083170846174297708285611742581066538123657289884934854026523621388961522985090470868138722055518173487074019840079460876999394598961031489645135769927672352778801624145180536084056294300740827844318109741590409646855172366630146102846882292518030651935174688496208482793707393979008590307805767511799973484964756259826679520836548221955323635771693687513627792659216415941229126148907041309545385345213969795775900939211716032102065065739252965080958556623322076332334707418481769741138916182770710367047675599507463589023753090213120325347578202292100644884048696437054051413127310353390921180655957085854956690648375373167154774605890391807677395720927852220259891423551652419232744566245357565220659603497602602660298595066380797240827824691982252798142681255689147953210097920527395904609332731103925595256152737338147594511682446260283837204286371091185929055631369038025820306402952326586682929353580707785359169796713215042415442198111206895137969234347862714678906943493820190112057552909800180123405307918031410053439329756942642201526962440248371805632519665314046614853596984007052599460792150042295430935837438591650641018480781501586493047116168481488337839798032444596156724216569698054278390138602996790300570401708148528523810180802844710530343595770934240559489408526746258670969671828883582278064759073210238706897600165695724857910422386471559046149853438520332804493101550606336811418947000392369561837286873881972268602138414050600902513127174844938686913966315010969608941366571449389684824706685583989585458482443489648478408981677914521946121411279001439392491569375494281850230969532236562620862648257399069465759149440219415693828898043228346546097624447300681089813150131844177008405914250672875338274742917657441709610366019156035138980941106034393831298196337232084291889707499435731015175192557820988619779135847925720142229625851925846365363736643879027316368737382310043489284651706435918658837652347694656702501332036312092132837417353169043031618091169947248513142996735400343023658050000400853319652305905737721120361171373745038381924876999817315858914923293183501369491685159055147892779029821454792871016224555107400491308548033296206486362566849663367069047566094942246536206376410435855383899849876518293070258062077468794380154225865913083458017764217850088786509721557964545915557502564634991668696473749824794334126333501524576403966022431402808252626813291647273518653167083815432015653763855406025664485583933336945117861205924742546494089219984221542921599348611683727737861810895585168241961697143864095619827300184765782659262333534507297764617243141114290948912145682623491366750250720962583698006964171505169587278707801150620569635523277406011358899961255591034738092195540995347743176909282536025829199580006966122536294913501173612727029200722462116451738088859143284194866815706891101256877233890822249753161822873331230366134082505605662709766076801770067500526732860592572568500954272884210344815494929554379056478734237295181612180150360557869811048850314249057058927451375304461794757057576488265800381724310292194460278544441750490861738595730531088977553460948815318617423719717198292871993999985246787917246516268558075898876998220704278711005564795878677328309538023194161668709690722344725716685396812838826401142555290565689930260632208700885455241063650429036135599624273110310397435892348937772648966273250106178089207773033575700277675254754773995970602436908838061205729623007590045381658945700963721274296234106402729021397256696783660313541990481865132405149342539606175966399995395823651454271155400748230222152692477673558322043984406323340110535381124927073912633063116517202997394186945271486700578778085474709352639732366640703330621530888371769558637586298558778720155404307235359373816018763973090377303501033432914142200704678388052488254063609078546872884701656178452472108417221278043639564291338963122281523322800764022572615691855954610933934647242998113251001241872594557250292849844070440552799176554440176389773654974731074215371501398360944780360704043731600410014066752294155168369182865534515316375502489225704774352158625636409535210587755858742756013527527348933032411505313604992317606127105022405819527987114750471510964726807073875210957704313846665683786455045951987565929226661991230239768925550588383669044786771884475995722136449638847053638637121342879959793248451849567379114832239414149437904900552716937844574255387822418044370476948244278249537731634106285015540309170415350005709805927655646937048448619698851812487108087508441696004587440231943826808623605403024260441377934863189235503005496875956596894951323143592906730503269326157804235497243165988409340671915264010231608912814949941133740344444968581987379066887322000500059119340308088182108168663190728780359367591953844120531158156558468198007953124934860248672801095678447891916269123682310147277297957456236684435891257862164707559020317479989005517689172606459545442777008798791112773310026775158222243605133047480982382856570804574165008420740825317058489718614186285333280630250989093837322833026837861526027060585432294976194141633661051464152544036186029713696128447079124272042115291230597939212627608783824406356048954258473314957743538155206008266415510297921830753305637767369990056187871765282116948363830661218717985413263165272478682744081545943620269171732935730905423424512191984979724025025405456537377394711709751049241865199295092468167402864430497991893992269738735151471365676092001215900659711519041411860642820705492759381599932677102377351054195673012089087783100522159742362066464360399547429018981777747605350108524222283034358967913746832280425045490935459398265995444567190067345076823088932478541990636658455903561158610625623880102382742019850179028498707307562564195174912497480762959429709927671340356581164006839061256166162067743043567954642475467671222562279714190332135233274219773653063458554724539525755882684535017035153179141509093768397606487541527138535397768374298259522950823211753833766974988110121711242521436512363389087422154361812791360245359624665138436261600746448812434792776397497624019785911932459887973345440827642076061953257873425776431853303498739570655220843119460079699761439172486295614715427224005538232956294832396756668273979221491577225412570713710297746794910684228792112273896712529058484544341616944780164321950556217511784067928030713069215028483189347661180025599474110801639251519927768126659305906541661553148537144444766929738219487518396242726482216762961546303346900702260604294216512560818698471037521388670792316970615413963130031869367800563303941044120142436779234946597502863539783070319610924422783839615770650148152420651773253886162747314735425125015866223662723993004287411896339532137264384881021857638142311223741448173181755578160501964194893012581068361057986167838834141620566334936144013011792472522554045945346110718844081707557277613470865055127285808786688104281975495171342271947166481106295067969429163543113387922571513278424909821134402214050764452449757343990799434344453094070025516898969813570627885053931652543983445306632045548772865357288323256167134941203916219807627508302020650883701272985743223379287208290790756406503270446457050887704396143277457433383453010193965249151161275658778982261597257030073760705742499822766327719278002883295730686899733596695946655673230476822708906514179485921969812889317901446506837368346141710743917123757326092545434259392536964439113657160732560489570596848716383505071615807491140907685370217385361889764095500794045326697141752871445585093036883810068642513485049976797267742616859294157602694408636209953827586368079116237799405392457550694526661817109348907452390060225105006565173336606551086988083243811108355441995705621032576162495068050205633466725825546542385648787309942478231676241931652431917303617288345205691727701487468857099935013515400378893182124333306376716483101679163278769252243468390872156772769374692586048470473416110648293194634653561127511972924872854390819291653224204550422210132614583304244266712841985280178899450878105999148365772591976667249264592242854825219619047177355624600243643962877625850220036617746691362559711776776836737606434532407085485543098456562447316071787267132076232644946462930756129299541928937267089826779912281078247365384301407427083918236361753054089972572213432922626460713710207749804880461091302466208294017140641857147435295559054725423905741815200097360002023411313010401765117444614945880491677740068124053388113304189349409136181227830620379985024508445520788258269844969097394757369148369370888253011257889443284425889366060034193014743884451648189645098747101269489730889250321346388426036456244761762781284842604087839306523936451675857695031509304346905629432254355893557642643553375659021278098724671774195409813432762532211663889668985676796659912857390260687038691572231111947777223368718624009690068523471279156834057529848239021871178394138358530806645661191191389744311483051453251180549386855140429885232211294949059694898631986238300229244001113983903598281954804295557926711032733435406981976232745379837193758793484899792830510135616991502026219540800325776960974944012873649119621385272912911321798705962935839784752523520732049851545372929955391733965237836997407996922550360346892798064877233687996735826076784779188778804837803302902073096166918818993725711349224265926791431773100835204838627178338035774422615604084643277271156581458025830823304753775999699762566700580681278060722857722815997056065223881661302542367424943101087487565836631488894684165109095619869172546490039946047391249721528989636941221072877922263720342005915940333332515411678199984804928664618480698692234871061977589799375913282255210299222030344326625152340409399811026817231957404144878097021445151040888338548151081979239327671725473386493758581367330487852618765760239350535543648959232210875164812353709793735484663811015919513523932310387061310022063364150275203999404055428665882251559410880565002966733781164112693742327426576977123831462392277337064115571388623676651081711882455755891110774530990699895532676001209013182825419800617100915635538649934433827968260937516280615356699472686480963226318805462013651262760756846199619870682583841471053293091345922546927743959519878890352059984010047270025341874888568869392749276442625652839813997615670143519085933906505184366602114224172611534030778049689684739501184049760907816126560411424235354290827918548088891148129498719669512911575743338629082977161856526718133278817552116147845942220862219582057544483254164073032737248689079401213578048104310387875371282365495732376830719338571463002711692355701368572597562640438572324258443090747112577038113038859251328211041238205747906227927124881620735488995090669740840453032031167889415645263582232319968814645967875509813361603246032010406173917903045457156312675474185929438477741667394534701614387088309030862283685861512050829263980737122562986009367521075079153464131186250105408236983373574957537939447817442641169564422794505833251838757451976318412220275431697324061577966227739853154419049036245442235919647365918839384195896813339358748799778672369111936875856371695194395365905044528808764356639736995869181310465168758579466596363677147975795915023140217014147981806269719193063575842110118661511002020544242443872827794110254985241085345132509226761082656397752373759661948487562557237988580106336506120180131285223466631895820619929642555033976622526160886991538358596197605274049840756507752842175548958609854521642352099397544440526517954784124833189499219834528700555789079213670536736604609231927994740197723026438935941628879464559172762535601908548726271191191617846344129961013430619191836080583644603376648858502266131454352190309377433586097252388035404512023377945093837370036775856909455783693071178762195887410120718307016350633605780536854509268146451112017186574555141851605023019428620013847028218533518533561056103778344048035035739329842120077497074960572533220797583512787190417062627188563597203329388925444266526405588992336699762085167847548832465579834461604779967182540025748822825770660199769589645342498126284321604853703396614247729521692450902894083608248515187335363421329956095305798188075719265834646101279984528602814379184007410798538986071946797838793208956038457789891039349067420792099424491210085007396194837081942018365444510323178300918390328685349432300621499720589294761655572116899489491005915059266645139878613535808522446551555334415673783545136000732952709210222265631353004357913782198189969036837865998504742348224154035927559603473313446068022816594615944622719162459919407236280154991950114044110723312061037494177749538369547955163153336426147919778814916127217264574172773702643088977868196907232137235887381686604996205142694926035135280132017294737725456915363895316110601664617808512230718871895120272534151174276550026734597052573887224880986024980353325287996971911302583186890424416147266378493117919760549069069922536636009702283086898606997739141693574258114466666397212716489349574953926130860483705229359888406968010519290233575239575470684915534577803075549054940442169276661864640755034974801834510250513675449314288508543934975326073254540763716158816715963520092004921539775676378482986118565107947772537064260402371337225582292342994549605802303363911634448110819158122768647123581676066742322218923690932946026818822455712170848064699263616332181970197432600589277783776255041770295450890876918090715394464942798721706392747819375553798140385047640011791041779145240650914993941131168991945693852895516160195967608837578588460246894516566989203884107205864219223665335567756016264746656228416401302218846337640180199427061167475240423948059290350522074904359581666974291614102480016815746862567327934649316617175988609216484269495128211269573506424995849145797594960986597520665628161967790254256346098872024555874855130485089644168810794531599365110712319046611900335176291826856045824969285848940382953616100190840472785728857340247305067953023437918628892196745064012343748887229695148817731584430853142151138273380133224651135667864191797183920408551899347787145988771202057298693438973056172070326060632910091802052611247471423410860687832923133713395247971950384827408360134347882596078222224745764998943188137077111842030430469207739836097636281889399119186184336203910590797194054070963901757065931716947205819916113104082599681263013561073161959527921631945031678221633541510200145768627792524813036857370869082051939775459577951892259381453047769604623155059709432023181672432947409125851545264260993812021065400692292309617486734056222432895623191582636434423696098487505073591041828878500723738118326332092246387981289026003088315661686565163879855912563071427031272008199254436541595888769532145482260603104368327043519985674875781346047690438082796982666799595054877045186050341340260339523313436488018512650300156290786073821438685427879181327424420952563536585199541988682725107842915756241672841371073330646384518792460796469632256491722350253029417652186866533952294933062362620157861326026589870944487577063632282323453320973389029068328620264930805195254805250191613837215757180304335199675871912839771850699163762612019156340401744739212224294552269177654169350205793518755243213672527696195725290235553213393706517925449745325431969319562823284705009803904616787871763151723836994994373001780659323897378642948743135011137836050246168917725788933669715234589764819219974994198433650199210010734999040997456027434664328612539919790616845728985596520550366399554405092559182239287347207957110377274987524804583769003251115926482662454122702578119873740183129733377331999052726504943580362910365058953205159142677903175082761857635297372645741717651321159575578488743427995042016332190122410268491763898635411206996152330594569171963022745881654480071724180028610926686487405959148416161954445409604530332832719436145530271000285231143923127923914842531199795869493946173986755231273182375971971927128831014023918092171300375823019095585082049601481028173870273705942810942768886440652039966463197813184383052106422238804954401928111973336491177094807216091158685454349516011436316202161640834908343890772029897389284374941390381358288916494166705832808437855087000447423258943762417331598441154810328835281658108749713159108732453145846695844940932637984879791862983414777276388860602247216249551774664292636657837422271194291673084276463374142434925564102306001525188804918446447185776760717574028963552948808123800224149786076844166116888772061105085010565600292135980848450314509003828132257169531955620342809088481596793223656098574289443846147984178901733468299829644657074692514605729724538519075616170210251265691342256122686964886022735326388158788473311825724958186790769924149393420143561908988787324209951029660630449446260716279278883973390195789409033318286709316912959408855275904411709949750618642203202897549843925957008319186376677859984915839725522329189174462596070850803205951752450028512324100044799097712398255076725602069245779461206773025727314261911347326497959854160871023563529157344463887560733581786283240971599592536627575213897600057377032004815982083382730088932444711104638142567879793749556658063626777690021944580775116413119650097734788975218789344143291586229609272306702212959784949250776166553330747065593735511922567835307160249979490081742315136226218286945334200026902292430759158392266957864676730223320043090166630586655355206870191542033298333827047883839343143806762966547751012188994652470531644608781407767488708922893673549919507030453513618704471124162752495161425975651676670665985511935035300373398681832814083773803046554227867252910770734131206772116064278977154195150737207191724472182088728138534242633392661299379855692217560701544621127000743331563838017774093640094622065936380219907350020054378241834832045538882946927326213332551847503370785617538736431354402991126210400701313167124785692838689057794674277687441475971898247775870780354247376683388169640604189590903462110024788061268686335531118117820765185904842764947394399678876618642470048632363573894296931155140638932188338940527250473028956521496173499825551621464165318545392766147164933834004022288432023814348844409673968769878255293077057317170263410695005324377366695245828367988156265586266002368195919743212700588745300942172579082025444864585106235337912041679713080047487594759186357538217063163766514335966985372247465581465996262520836296270182429758334630485143059460021393574728951502653909461937138117461153542721038689241502764469041107679620371190883264507297059710710258402408341877297226462197643211403506202753743154781302684276020844894194370617177896929162196553857864397720548136247175146319061414106221725640753711677877479372589040126680266306955997797765228936187432909144163267949036196711097347854414137864207313944730838286319388708178807113187840421777687038853283847880447754548712356546497054348374582011288467015324285098239770684841944381235687562046432240893492931463185188848977039629896481947670831385671237008693118188841506194499638091824678145214636000958906214564263956236482023261616647056372331858826508803569986546144639698130201428072152632258848764885635545737621795310123337010544010590893737242474822780720770985325191404832526292206135775446368721020635296877143558226559570292065731501635594416998425583894593888095439727375346213994202171732717298629430138720422645901761754065825951277436087739093794276063895747009828698042951233351284986454603851947666295938311529290748178109833085149431621085741849068659173178924105348778893219922496443852356174311965884447544694880071501301845070879329355118217628781222069448483159012320139206090646779968346632644729157773606200968975544186039105687040860283488454760915410097268550081568970646324024324648890955919394435993166127653123067988999841394701148923056631357499327265075546439513228741024534932119466461644243856149617685519458577370496765268881779695618482167253819850507774757583950111962280748493653911467150541418102718847749591055020634840857413970589424332992996205220736018411649877958271753055261032207747139424178018054184431130706347604014794355681996023299972750769010976171580789872413189866048224505017529507048188456206160063875290977210735649859352780801519918240985638175887160516404732073090013592363986520568717082595607985948965851393979235934971182349203877796314665502498556428160805509762027499305881724995151889365821386837216855669675195336708311212111482946436179952401275536634751488688518038401783692671429537608047681972652278626578926101383209251117147161283512978825148269572691920582524735172872880184524174909662322857366475278340703872107614442847894876554540885515046638049589028406464631649108203285812281979320735712391006268022068398259971923403542283697335392656657319036957094930476697431402364950714659879298387212709058633420774519638405067749405154543343140361425643209381517589814653902655535291509850883176703263784833203560123543754311581031434756683686040505169235696307861266577521154648874255667496200819752120182868918336035988509762586448285292023293245525068150815957842102981507645723837996302186576020480626350457851430881901264954836482252069832059195428577948656743696231392315672245665817572433263642290312952638467895515739829383152883384547053012885276059155404915038225967965855584985904297607554526985542187073990528876499357041815898572597550826080101842530201768184399454833376278571383561871932373371300419711466170084888325350557125661266137299368162924795344576329190568473350696382881768155594249777424458409023923699662234205065824888698305178612168495537567808226047049404274772196092348826631520429397599214767641170038875276173591707588754928541821305156918905852409949833012627516616727307623644693914189418706676911125050870136979957501770389041631945912447887918127295211079082280201217092997240452798525708846565387943502658761695368137289937408077501802312372569097823827122990950375780293894841122797752200514954181191228044241981758547658619358872982845012298591824108733390723146678340017568462038103324797777919318304150926126581167078709796288945665669356445778664151766457451917800155421164245716235014110341578496352536456429805437142516339617027530206053057866198295647473749755354614996010066631389386792970378886657913658739441329734319161167777114491528025476029122001625148380254611481385110656607521029596234474685115966067445853763110403330810129848626198665231302200855098918841345041512512773313038915538941349544757895250883437645817592567942819563403698442890843580335572680789395270160173581999683172485962468083114634098404471746194680385288013684629554968583947509298342839688019920686117316217362416511470576222324548124232370834673973344839759632696167591946498841527337368982683222753443895297271462023166966722668692131656384633864627507824992760078658928776350412035525381479388813762833703908294531485679508653522986944393937903463848756187761568974905799856487113317406546548357921474903118746212011046066866897204118084343512219466294400128258930833300342345841610430464487315075601400926764346141043853681378493951593323499102370766372301087893106520248071704938044949979839185872646153027619388596838962960490740092968489687221642976256710570596180339822542028273066284024741440420970301645209753996975382198877220285786960773768157109514248598735928307888927512941402398819400293558090162170923707444512303246321357472093030161023969753055997350053349631911515012214032163315437461057292905935461559582764811643609745302037359329926581330930595123028974125733904822072816119600880924482337138812954941833088185498355015103813199674995049025999473207631564578199722827083859938065866249972014816855453727206850404257807940098559713619749471067598895987196654327710377781694983101158284779633654227659655843806893181868229518331584938253252167972356635051371000170711503383645369815452405357931225400909257097414979425491094135331402716984989845496290547385061826614706989194179157017926007904918051691716037350729589531302640577862508468874966437498874097582709479763303300411781535148557710619118521883313713291315239785319168374442830530189517531102147477689355728661920615394846246330034741037543896728640461582894103815939343636406768678505682835813995905424209474500134782075430456510101468220130717222801380323026567076430563021288258837505235272874771990719668151890032252525768317518922853541089308946324924885915670563059721698360253277078465318737768147788112498414733785410955189090216973115505793270729557060606588654899999528310907855932454022729752189301664249197777267171120201702411560482465795456697710163677810623240029960137017711674717793199256083761959771791540556456962509093597781630057907203266874631564682604805858471443670101507573985876979234751098105036053680452203229445989796762224815222859402087992561412601301155519675828656791846736614949372291602579617390537925845675021265114848917909185872796385982423802480602791968386155421508033964561785742378017262286483722388855678090373695230750939220918310763380848428946170976748385405196603965929711476561673646384057478534717190825060612394881003130679165412003397132332073344725927544897281666814384741711876467709101555291256678643302033547241259498384307062366266626430589857613919649201157886109870883940538699416203928220091299841999060121593642921216096244495803532992673511773179299725656820632836523854667814168959780125508457544324076738468461429158843627273229840948141951161875440367319716915074607499007554066779919225426059661633688696505340436370096537043848873040258650352678080558730746799336846351142264263831875991890019192837362248149349308834028867004353281305021056207887176784773147157265116432251706964243582341251600527444636976822576069342765074566573763526615661940762914790153841831623466353683762688671120830212643324423560790637691019075558957018248466719519282250419406635518675800466793479568105983497440887132348377717479638119015910842951945658912203732238560125090998864620641411183949641634238892550312940030125158844472719065716808583999692273714585602745757156220287831646639018391842198992110280917721168334181706022739444887882637066355963916239028353411832773752628831093431111614805483662748883575660325184109024424662211987018858471594404486786970156552146993303116067349249147940837771723937483735405355325527692641391323392708074949459626303374162537402250264920505918102717938470108316784855746776183822715149003937284723358283323139693340873680425719018161840831820164086233642105336424039919599757488913491352704330375635127964677304845576749762606336790536116657686896548138713320562738981686810939403182424053477448812946000907150841919794494866087823253009611042172982344089050786205494352657597687689945940816808891022513665611036728160898067506166965715906221851342407232710823297968640642991342131967564037661015757757369473110426017003753119485657914442975242125215496005111411738851684663135149047754540388619443513723737893765012064049434123230325272268498320216193204695664309515393712872880128725135964860696420296669327562044231334895657936785796443755169920112027494826896149990615147944829722335455913900117746388759600627983182805704344755979660821652634613491342519783143299659522862529525513804847632534837813353566564597947008132776628237799526762522718103604574138519411570895475581492575598110240939333626351870027294927474493193455552686140561505136270670876104261769958744223163611272197842318136715084635903491121767906953445422979577165996555385988367656146736834639454557783288465742878243464976610019690143086051203809667338192579895275048536757422284215207931064830105096508419109944323503254639125926926660242088291328977852408161916391442364871946215323934054943489582611946457533639522450685181810922221318395093371161056467555927606550997070361967006564742395775925214534507760036274352521026361088360367262195001576272244198331205911733259783903607161694886607214948086136025850096970651359063241796405453652351468611661948877183103289344485275768464979641820127154860026233883416264434354062648494750058651714999106299565223408207584163372198775562643560138301156569083802701876373877459789031158231792757532027775980315177996056642046083475731061937439223444153124641749795924021494634209785410178967245281551076816364408220065920265824320060918948641082403663172202977080154597171887782268919298320204703023120508469557974796499696524785698494007555093811382088111062173125875902307459222116247002916855628394468760586074044492630747061667921398998486213492153939911474475376347791443254179320198151251054592369278756344387291679422498487919362396589587487174188625259796245845301268019752986599814890362730007699821932856691968383025415012250144847448984308976074472845831664195540305973890764332869122689347290805299063023527059619401411859504069062659846497666504015665310462548024671932950256989959299112611637207330599119942352861469282710602626659801326920837860701641410349645288877612620261653616317097837966006116275356272172595146158745159875393392672544955856181493038742298684497642464149717518162932289560023152292390422280648700933471904100615772704845937005245378901776776056627665513076657925083260493815340274201540844693782297428261910543934923521590742201625451973183389553395247398326051274752182847525997868141917941030807569627066984674810782127753747887974697316614630396868346658773996265549331807837003222757270073332266051303521110593732799889336936413630618596972729538259676210520690462550261493537944588771823941494747235716059088921008424135193221972664508197480233068179030073194680066544213152424279132762007465091748588441294834594269615848588363851479967635116132411723656854758397263419421534572964127580739329392808150036231110465244507761095245223196180869991143611106380062710906475535455964592400472146483775265838381000803524334720606476743067110012355062544019202246491027678797312561667566904369024414523475858345913370109174687279424787409901358715398914897631839722288873402014959293731278373290999244538828641434332207136625191567053394254656477112676041592815158134371387395440782450474324094601780002711243584748834604244402837009719310605439699290153690064104786731361837616199419548918437592227499516747249906196542231480123426868733165471464589071433495348752870485804700880413755419184421622348086774106611002340672829645940164773437043201522156428888799327062436989983298273206076401229649469243099351246136926739433989222037536777136303725303440418855770017912360318133702742029087033024695485454485477461905768502324335112926928414860302736949400877350835356798989241068639325333143790451832336398787942138368775385596948497136844012281322573866186472741067307087420464705060074810771689553001107925034784622312038371731001776935176755670976730317309961721088205257359976697279497536927507330819029659175307212952862985972857419496342443044669682612615194245355352074753964343124341174501761378108058368155880987162783137578124482139052072586805030358128267897377524343083080873774005323930054336666814879094888141799986925822892566357285382563712307317095932714678006913754413414218200625216735682372716885438843318891232332874363211320745248194451805904464296028289048793811238401073291770713596536320095841302771591438384756464318646957837378545018982709108766791360923916971507466049622670473267559550395369256795546412325887415524727253097772914859514809048061288780035894815859725365320379577427954423928817840655086710073332041421164677581231363166440054390947485937260406991124032680740113955775634186382581060250930963152986071489967580856088488069738432870526342446510088762678290121761999294965545654620934647524209628366595772955774667926032138884304806854171080031384647125827723345155425503440691533507704180193878194058406502646767887875376139920562566334641564606766491655953471036225720386365397115535891847777959075933631800315452709127854696106507870126513986223206621812525252642036909530955510576856081311489139505854609779692100367230641422990891376119355519225478120971619761622366413737997077949254164676516568110150148857185778774866185890012593022829941238802380448819497734728272725039380999910429733523928367441400146975438781362687654211169312963558084578444785545474429258155487743126843881326471406105018012951804074882846839090301339199213596701094044006479140114526837414291314285073788375415673424594141886306886325663872058289056768245631841603840260385330009274897767722460851774854444528023109729146840765698237627301921457973187328747546796494984936414654470849247502278449469786540041345561553436924072415341177063810477108971889059815419268667904554020750857407965954521531695136981538059748835247137735556104284180170835844869850494949801917135577699986588203274428113332482278612979203950153392975280493966539432261495029055123244849951797169352589159727190536845195089129423222457781127485052049703940723834994303886694187940032223646965828219309012964117334042974061269656042322129125390301033503350041788362010390819288430434522989144781656084131759849942245054587556871388024627901831675799168205739294989414685019232797994087632575555451401116436452497010052734685708278101661137646707165702618867786250494717064991827797435923715981949994781711975433028064601973702241622333164324249327961116452746845946882278628573452302968249345330941002885162691726844264942910696414397288440079910917099488424875163035273631534710476679783909519102391886510054284321033336444350047082994040679848530968742544825280730733438633531559004110739877711686880859977353793719401987351574038426384198981710876686944913590572238900077445646401232198239088680995846424471893161232073410934600609097892454078941829069086287964080643184617518879758902967266339108819611641576532850253171086708049280694799099617417388229508429995944258134153625209868653720224076581156884869163875589506604784541322817160270582598688175544891733244548057667625474448840848810965975193460777711217690524651868887116254384017170289970696122620274131667689957205892398596816958656672599294010070727226571529616082935272717520515938690380902910316414106321311539376816428299014744254398477039396180251202756361296681000660999391860942859645507624886372766382097387109215130265161014476116740627775561462657235940292951488058939013949527033852761676191778731299313314360280568660587996938949731807619132816077310936625067861586256384806658222877415419595590351604775421049900095772507158826097240239555632686686737825206423403683619053615283747643494963128976949064694442882946684057068907138712324875364428189592752505124607693975297970823287063081849336341237595833684549173561623919902147059850600546966798985808637806847475254370021991401602949696283749970070939496432447770297649380623686706413673569207786520058368096386131318631933861315466950017456580029849343777254269530793938525990904085942197894669473438421294236126533488354892254471115496077295215092794797579166163214385011959276488981028837971905011827434563903069163208157208042011515756380943475250612892103554208561466400940279597764573961999599822938860598866349536455639987391793551098853369209222847764955834279624451276878069134808160782012403102055528541805383998704729556763825524494817009132804879715229030400227488120037028967232177304277060405022445555369449238783184410330430604288303015119869652839885648184893502045826436803419259008866217649894727263927467322276602847842817085468674206369354543992581494766648030858325534931215960564055528945740075425851588165859394030959763239312659860317927067771630528946529267761837760708135015025812558577722120516827585453008573337545658605337148882597557490186425865865651060036033776483777991734215516753349397282092809232189924886524002217366409819658408552071581604666418900759503823277312621567690516218780303735349632900208066110943666044274399936834974423496787608628884918511581181589324088761186718024634792798824952209558447711191174305714550030408605243364754157428537425168418048209318415952668338507931602887793695031840800278661377073457028578059353168625449759859529524755691161401752191047593367502568333917348585752509422850258303126889569981083563692724934831419548592414143636232804183317500723852249628916056663107611018497992077104102385634674374291247420994241971481408010438681298733475520541392437365443597252713384991754720519064942121565870877412814964977004853838892266385258778737426192442277355805079876049388310495856282762034937256132050385779855586068621367854749175434512941663098430491409079753026388301170115723250801177709815324518301073661420837607753689104254282586826121552320200687175123995274436903801780002956154531184730517757409862747588498375813620884285133391836453569128180213297226541893545807704061243490369827025189726229985816086350679891229539697930800928532629888305053921355162184701479731095141131198483130385456220636540776795268027966156491582493177565617288421004626749894385798787160189179481422963878137495717734831269816367865756786788229661884038265083043259793948911780919518151537847360346942263973691684293764642944849413293054277118014373704470849542184985198827565213652709416646040520235533695280654425105742856665775606043329338566657948545180858236022835941483847542502078499989784239745005405974071689681694730626374661295745431952521820389428771911332247340201492641826608922389725378249341544201172558205423141209372761364860105419462464229883142118791316577775370588098315829679548969491859370262039276863899769655525861776879616514212967343244004320956124379315463839759460798469909184797306042291704775024181708148182347546115958395660057290231572045101489923641821945748399035567120371795716474771785382350405573135191882397253145399178130031003361491297161194270104568113213214397060146486461105192761386359203752209694373834056242701118525712237717286647704152702495871238688383508904711879445454471601373160968594970798978754073836983086591977557487249044432908788135739903182146348016606465649747904344084081584834976947093843496540072483952393998035720587168191156556055832878904551258443594187725143826283163512449348340501611367426547702778487837017600586521830515364167483340328772929621469061813619056553429174037918337974800956857729075789579122251669878100457661124420443376611586386969389867069989823314181618162453117271838722652436398320963525018519509462240883481448592246605862087978398126207414688409593794607266763953578644637148647399966805768377659344586701977079371783615031611255957346733130093265538994824091527149391139610936422144907192164539267131288790049236394158768318978122393341129650445144294250148958550725251329196083444367036613806548458565773262118917538927542130828407795924615734831153171038748366489009750613250642777115900906122633329789003521804664341867643393875944044401001838850456602314353715956201638995891355252747112699819555995229019356033203826777226530687253239381844870243660521840321845531206931965031937875891279911352209010032308293890845652229435103806639635276129653994950002226546626188071703459840436143314891603582632623960733210843463586570099433211893101342297731407400121443079245671694549913215988954072847453094117026032011227891882833771703502722484632134850014472583416755382333095172781246539623612938833483851000131076066918892028066318742305143322148981372392420610304478474846453636772448116395332740460542033952873399209617237793043748160518137996071007929381659057509117337583149850999837257539231484907952200996628713158052891082199522170417781441792664804682146362034575852709146478811112408230826950870730889379710793279071425249420356215172345916637940503806241507643129513413232416594536109033833601198937240568298304555049975621415032512525234349150793284866475301980056684718481708506897807431973781023393497672182555886297979821416490713354285247776239026947752917572144784468525426974120180163781609327081293844883481180444637676074421968103166939732287117013644116629010187463652187472467083775602814173424017661436850128582131775356931470574963900498060720751730385721791810303202374768259344073341112737918755502807008282403143848880965263915582029833992358211087339382770736588403052237069205960412529215456922437391975100068385504762575328894771587283392066108081681857135392113157151154245799389480510847742861524614449707309342243185156960667012112587977670133906400821728899584815552362102861944558947387343229787622461277327471431669949638256007576124083344979761706423750801525890449610791765663177875256262664224953945190547760579551075502362828358303698246776963365461834287271002819428026204007297372266556272988755289340239482999761399114007897102506285615725380802887150691755413957828328807584101727562174649684094356251170724121841648791717936272845744396243018198170283843323278266913420461481519205058103293831094127428039539277539068867112304334620810865282532488180452039718282666677056274518922056751033217131415985003988945809858743179035119981174815880401466174426984975565925717927692145511654166676441813328465667162000616225351996570587616312176254846245227775938159865470156690654783687324420172151498361858474875734732646704301112108325344424682471388022818941363042783387733007750754346541384509702576656073888296544700248852638348764265367902666780016212481634248923246352431732603415028464376439277894674284450748283399002751558735482630154850913357940860326669701387217649842052761489674743802951790941040521946986868610738422287796782457099199262037084975264857742537698128910585415723516000201943514635808775731188263326381389398991843932222322356578116929186482571057025516432925739439975382178756174338953131628854294611954190956760925882144609236736039025811614100318988593063805474167746730950150632519796918304766897522754914371809992763063423433787297513500037412740629715338766542221283111906743764983926739628749689391634183031780634208159040642196162654094377943578086923796111591433485339821926678483361732083907762597592869966820517584750546386177132563026699413496096674013763584152147713320646344288233763845391995936950393555137889101589409066797891011664906642652558895148679686240565224197750964176501992811659279188682479891275780677317657996535401902464257551969603774820971126476292045896805633160079036399706813230864055087602573284616692052935157379452390486331609272928168576439746032865181136531480973386959254360321688077183468040948552378639971493205794183843779754934622459523946795129758965592070896642751957207514518969682844673766768107077882636066358828083479262955200486491839826555037415793262627058176541119037695439169809959719867170118552425148828188082860560012809554808486926304866451358815730176821825706795125419566888079998203032876521130246665590376293467710708700159099629499508714494700391675583881160470615290668240692329215561979757922287167873862870225598565869817159978887409743780408514905760541789149404919241708542821387457442880180919337962403272602292823503828123465998061895013044547292758891106984902998964611534391152577732647452570680931551575101822257665886691017003457687793980320563593478230974159878273958932790938128495603595770141556184718891448796031045043849577602752440573226118524510632293375273023042100400466565348027179654296648960717268289355352384114884743443793246063868558014928250616604194350050840282558829138922728587149114355063685675789792269828766194696400415713516324382161808654201763315064945911254740401331736572861144382460207754875966740648341001252916410964313228108324179008834892978659517583902527720897246442703614100484538115627874040317684727058354029048880703208723864134841776950822834609126538266765282081502496613405668632186585351697330710398689170383055167479311004894302532277055346933296120908839299033964434752849305365951075747789700068079942263650161658071845150301497568526158741303176876120971430853589145296036802014796799872917211326900644252385543697531354176264240195023840755333815524787232172949316375138001091455756907603094168311383229306857739776639883979315877311653544109348449364556294033284371651781964352797041317650789248621449697574172686427050297626584010637039323848546937690240007777301567997807163504397338591419199282625285578134327039599785785483134440180284593018385818008635653241263546430891988975000197717689003426701234866803019376370300117253419917555004281479065612258462310733013544327184941270629282803653352344761338832664587463254821292155530040946717574681594876557074287351032723189969988153613472421493850475624633987044608010240679791947807087335094495262934381820974752401289495666320829249507231764114758187824007104603311173052264487433768956736248758874364066563461310758293690060609689216250261672071170206060093499093715497415170399454033719072786143162314421904605564118324676818789777927770131457160200876996137082975681357422103047224897829012827706151590499796335145516104439733156631328198093091025867291938076675457537433460874262014797184473260573125900568926234990232584019610797358738468857951000005036257331010843291461035896409584435754118496616329600225328800872018890879943947582114257770683151770255452619104621684868210977978383978976948786286298129925091183006311303088650640706707204979832062718668747519602372256478948118041684674052493099799408929375638705443000580696266072475634650754780787554489401733581180545830572034603781302166288473307704669724052543720559550750629573116657558215497099201359925133988902199813895224564275167162977010987646214982311990242521410104604979442971094433250193067330544579237516108389462516241827150264683235097136320762363314322877544990137541421195031307790348538455188736398773713961729405776397680382969204981410317761010591204843470619334317021271990692350839691812202732410544528124815534591351350035978218950629817597554819506721274925241840862720909007053778747730660170290924130415602097278322154132735093524674125012905072279608556354418776233417180171033196395685072949412289837684674804748939867022223830881636363165015129490881754813502749679636063430869190229180505834286411074134454227523597426127411850758386727706397542474014299327457132925236672758238480236428471130331947488199638486706436758782326144099992501196061524141813219957410596283318824752815353897394892286757342646637534886898419534903878769835065096982758489857132978382639285328925522120370089094029798634246279643331462529803091521775318964952080308058721142861353528693123411550440989651380899118375854469728039253605994619236503609904686606070747133366097622638570965282168245761457913792549597026623435965247041202785706420721440849630026180214120622375660304543664835905944280679835087096824508850640938450605744236387028436698965229041931066379260390551835602422490415098079025266372609115738546890470064615533168248060183104307221254016208802523589866994235241667866817796565015607120127132369046971179800841906119503306781119610515270925925723113413344728441790730635882856125127803196535445103056055086532908914934221815257648553469672669993960051518839729544156136343933098997388825392680608069573495548847766075178857388964789001185674220437421083369914042466481250781573569231379646245143543082595483094023132836908895108523418370438219052201463713676309496157225471448790439321098548020579853303973897213180847776947842699445874373624263016171607205277077587908364288853649089091557738576514513246065932515258318528732957649555362992345931641820875016991468894067108956389777986497972024006667419591221834847865061172628385088988478343487211186242314121877330717483214843123286456913190136492043498272578958272382281074679391640046238353604886123420761341688634539817201084923638004633733728699317003840290282622628743645473180440989451185406444203106283251516042729483899066074282159959203888283948046206320638208314985157246387155789365495912289783421540313532012441505611238945368242020618719941832913236577447834429145235671440200591099393169604562457566159165035663590975993793156140643587651861665927699043957633503353245355122806749625151065881493500129065524186805009622188890143202071480876299311576406825810339770699414420193472485953123221536704678456320723534474347584776810680137188619707589097520466745410483611235457798318323392303276295706459818519480621915034925971139260100501304470495280916132511541653275974968566888805833352497281355431812276717000054257334092546477433487625866071374454062412917065513545454066814919871675804299467449779249611471259663252228612603400161611862780934597881744412324185641788664284997198885900848936509032842085669919254368732259128740241000404160361542717651523201374289999172557309726943912677281061631778078608686214344411029641472193182497588398756127545693906046859127523712697671755121019883473978972467859515174250662137740090055758734772132531224938108627483300143852601326878892431739669912771975027947032632063826413532705689280211946537113032282626939663142442525204549357019566712819058552154083614040901975571511474032295394309683202752350072768133446636863517899862229012532503915480986470181536377804107987187603117168227712899522110963248118356332473589797491669769835840766618751605533573375149370572915414272376270895429780273619048184843934117884857883009765248753880933883871073490340731286078566467155931148202272607412598979190082558804373452570256350323828196373983982839496432789973659897779170028080663838808632830864339740509825499592417890304529389825720212805379791747240908485542487953342831479072651720695922754337242725742039100994434562059340206971104941554303364711026334772378113058377078431427651534294782807523633596345464974211454155434373976319537160377306730075300635865991022754030330737844356914482825439615393639942313927193581262661024111943332270688514392587500426591798547528701209545416896935617193400380008699873592219065690043935251362281650889498014112590017836876575590277221904892355703464952034186669881046138304864834549170987590051385155370584816532621747144676640233002865653643773645163136404044271179849870105122671880986576754337343301275351661015644778795680575863877934273705539497356739851326864607403722885432481448006509775049660368706052995149997395305455113671095507038510652687753606809484946411962176849442365001937680340100938674457149145163916362974158247244657372588677969272201902178749779671759009499940405468599748121903734923412109890277577181566557223305490784133013378176774852550914100523926072688198826580634848134757139310654037868625869234346713192877320283607712356891392955727761361126768720218901349935833644853945265968105753536109041963279079513264078846782785316735873206830246511228133217656883022056407219440008990025606161425432650304777039954874409064701678616728437264656134695418545926085901138127650060132147352908743288064773039368266595495919917921879746357684591618119273787786487594917782330929297142271818936144895617604030432616946162649152097817539711228499867151029098783791792248151156179292840514154934039942958094035543769067951240114515887739729047865566709384825616329538578420350084967551490052034398860998963649060251646367881336532290925556546540276380288329033907055018181557386464997788197668188561872624541096673259433771714104069573077540188910237811130549830428659615748946354188286990539962404565964267973137776217353838174335297895611966173605281250415771671757390206623675893601649485865124448345467065897884800288893850337492754097690419544550817790760538328087854924819902039810656216053983299869397208459109566883468068738152340234114582093712861128425946373786226920313605395578081730164096653588829062073218957021599609443897621669340099529638141551697117181461180014792551437888910884520343622351116408922189402081245629725115436282479873836729831402964517744436311808883497742894548580802487773604478173604487004363378988852770482161180640071658498996433937158543998771304760550868632091840112323204113177908691727404803982832178184631121315004730129743446237881773434874218972253509884726331076339992302438391860384488377590924879161080414694536257816340049663543433342780386112191724738258589060392127123891107087974962067931894865893685856837771293913242196442974207991045591891549503872491206078873081176373179873868661408251919886774216473544389049350550244242902794028468542769278407414650569601102400398536270296443513583367939941593428256248047689778255718035065527225713159191675253142909110905741647060108710671345793374189105147140036337755203375165067273354001162877570342188131378692843742528295999588597426933610945160662286504046862933547602909425588609047980741035739950099209555615981636362194798331828446071777563748779149039157639006516921351062904737911017673540133231724674126823679181735624422322121803241870708987486743694122074163573216635710454652743701570597103051825389668024104921654607660874671800957204356608112178142948236035780024814519005953209572798877122975001399591506266236668231691058922515427954268734440792326672700293950763292999582619071160736536524929151917639531646658837599181040280123414443817457862866544392789914521886986696679660283723130910141743491264138463788100540262698925709417812566929420765918554780421143886987631956758189496919011266671620618716611728095324347987339129618826931059513352612258165228776746328589646092433395027884285776957549102573923600385405043709492974483420635472661625206570217288904773107582772490290337296973107398337442871371413109491476889304380893401880265040120282977410507854742996907657655386519207182733941417206884634405764253227839940031590348441707500686874188718298065367991238981406640419637035410717377099008259532100879833915377608589658827490399031963364384107583656155176106772289533076580121743071871397585712158173040992370735591412669133952066748946921569600758884223310077746212114984355512572501993547123932835993667176003596171573347997040630157858641464722661334814861831626851417119408357359794378521356884290439171965264474663006188876243454778188716724215771230138900326313857638977903063696448518723746619013699074158278738248126250141830813752361602745399968200437903307090382337727438708738600897408784997750917281436284739981313446327819481866784339729445163092657322262645467067148155045330761166171213338212815007595910135993698398092857942170562277176598263652120149573549599273266984142259861175798803746220759442986098970841914274282227425005884310665363795795614948534189674030577104502286625331740693693734935972295286063332149912094519964442734204748159397523032154240956256133306896104172673914932745399174923477943933732374146262085587138616109995406662592637859481532159916410794311319155547255776415962941213184770322834825647288082157521648330608964921582483979845388283717338100259485437284226824792326115907092640629717310612489656804141238123617418819259516654562442129392532884966003852399869466272020022452555721337392164547236224512797460321687319879156483006030950414780673351022071000144838285682617760344694716897525402680029704703754348922712817627272591876692360226026598798324487066421606928751519226249577640443369322812238443570101977395800672049625092872259950974522347136771510229020150643078284566298356664770169352096656711891747707410181395224034114317987853435205469841998924604427207689795749779275471248569700718045691784662070536814835099042566512320875056223008363616180423795372319250098416194938731515513670163991992576986176422511216821420950763309831153538906821338584970840890041499189667993573390186299702313199190497869179349855445485842310462413422907762185146033641107470287171978886863604778286017859752725189684236346843321214723315388862023985822336283466479356837054578345092055728497907316546685028079479196527167031382245521074757285321573514046329826493447468721425425843184805521953993519290927104373357627356950591554172223511454300250364289673457359312826191795371896120674723092289140410851627763128466490629009265622452239734412992155741153303936351462164499391957048201734257400264685784297781861527208357059684441507971787100999835546822298391150414845609207405514277950963995676788831821794264847000447137392022020453538757558272620694332579481156303241650973347525162519969105701496462461282553899418915835065993751011121973472286905618961077151762535783296426520032550716329465846890497438131316755227127120773859435898444231805847930127575028154548606704036628072713538982600175945881524975146616014342878856523245244955142249920093883606186036796864954677176643316751956823598807322385144766185210351193082129829732990033070100912202681241355494178507675799063595101511848187685028087144543123297297693312919801128752475327268137654379545859504052064253395416395849790196797947449686137139133820412217530111059818783196109774098347363687842768031337146105421169607289019824455708009565264303372722099788510284644882177904486751735868800814216516571204486646013138372351373960684032382229433545106879551426961877663561213420522576991389592209655436886192454144618999995585834692850503352239548169628113058786097502439799414294226849576449898537657307555532748909185563544102915272390313923501960480577702670885842154092202093173781570654065402983262716170217709593034587078668588965301687062924796728263117891748247209823965126939618258341684164752622038802137033232165876803903418328415684494502606005642270521900384914649749597923640203489526353280744991241796562569938245369131235314383930423543617728579202735638642779862206624307035585551181797242334131301205879061118234282982575451250064913716147589003117204866736892279227790952236525838286538557710440415465678886740920867992154763311258284536693600356517236182995320099103027465035716847694529386002328396482930998364956478349676559507478418890280340536441975647491409813507118415114600323475014705814441202520084313860561580091664022309740560823738193612267022944383607618611403158370605032713418993915335454676300147608770449209413560280225228685507809973978813782865760850258611475527292504747386342198253252551189462331455527633912476058980080577476510913209745299981698146340853289631969035338851782987067774379561185783613639152622754890093210035411468020340768818021900536522171371174346798468963950236884818166730691002958046895742471149798462634455704008914295811147668838999712638702515728567568937531082593028621463830566274358166633692839117732414378841225246810451862830299797580802414170578174419991928956230694327426763400318020210673350365053646290963252525992725212425531332323381192925669193819888956154225424611990748954018232681622699054202969631317268497945843313357024882730552934081204186674036056659626790213410491673557025557332967593736696737985957246054112924100857637947405416557688102656011448209604828456227967163808264636975186057181157859619191122084081308785987216206297994632546558975785029184106332571751071703135202611266863667592339814392539705052757653092761934498041386081232252443568106594551087140223695622504058936729966199575216794389301807766934381678312417513431838036139540862367970886556046854039364239486690202862656260767546578497422033703737846729388189461401780198194076437582797839731664902374590070202267174108614200736686894251227401218022959575297552745442037253269412847235395270324032177945678053017905680664275470181774829865486992079569921314218702505367893378309066678199172587058041741781597303455391665540721798978243313584302414651928395564454304422688125900653439890938926172704899486937316501228587919270030466959513490376510441788707599468826959787565709074763560475903612549051327929810095199227235997295818424749807091701665260647108470557040956671017091252275778638284816588234907274608279797698335353122758707487314423585121996242408464331617767268546028464099075395593534621210796614291157806197163606648752742958883298319346163135572370037996529931251283991666721895847385030037627359927144173976163725671834014255814802976746001750922242755123475936590778927987836289637068415176086299661997461761213980072058024089908369813683979764171550513397212078284675304600876545230268125701688611019760149657172104919158689224069436058423270791096915978181873007301122971637310103189333459930045460320498027243003992110056539566397723617605440237561448144687495457012019277457707015708851166812694722800968845347635902384775899604969245693811126518316061277009430005027598285568985148421283553801932360735812955228561279329924067158017972188363759631678001704704429938520148026636471633100030160989902956263345160232826530120112101807191941322615725286700676266463228729962040652625444413951461338568363786074827151687006928882599833812877126957805329846647307914260328285701627308710685380865212990971854702269279242695170720056801794304147784023873079869944421533207241778795208451078870402126709168985927874441947906011211331421812129720854249279473011301649092760598496232515484936852857244522854035836230770724667163652580049556475662432247390358860689656385287665541786456508669747993190578286534904797975601798537254058572211901942205688110069533258875901541420069854899265825413701280820748469158699659984446113043048874300640328811641485588729357268612339209232048285631175259994604970620053768130946560806583389001452772910613187838004609025026915971213379603228010967178639256729628850664918547762701319009544484025822378426381042905617145075565239964334973673581968254112665740415733931301437053803750407362203390237190338495912883307040062640027889446741569147377075586874814356860365195080122265013408449765324513237219425038028666338366630140490128714671334012750520880161914260251619128958359008655912241447838151750301533893091478185222295020658782109863594133318070296617609046866632690859009555025105048524259033829469188022641726123717595510241950910585739797615387252336172573024270059645662315431709624997702224387373036100990273763532147763560746481782165125286713391714827730566467752152304524021899282519873377539214064728897870065360895469128374271144459892609811407074575273869722107623688345155315070204082461102148087761580639117204181536392067961255109695962782552226916275666778269483683050814134270764160631320984212304088068131343613667076995298766298259270932029979198235467931662447148694410664021166477312737598868565743608480449351743817588506494185580007704501340197603203697925717697942764954418576848311078954451779282053303336892770729522549194348326672735244804196290278824833023322001440709808614588842926196188005489646155465980809550804833616732309742878025889523345236784696992921741638290683208873050025346394196375413998654792224722631473329423445818313184003097094828224830429485644580529464067807565369590375473665370596992475023973396098133957354755522765508673722269280171293515372775298639442900100521804997702149619708742981059049122167771478588959738232033491616591709349247694332565162688503851201489664432378796445230361437520575943202964625696990330620601593365843715212800447357403160850735254791032676761641769299421452935496713416640554905799300940383779804768098321060509205568212840753652018915842706265881402353867638999622377112763396196963421400957600087051419438900428726141238111460170266398645520151832303624489296177138465318292455982878002965001532605973388226678720262183045919194369696777599368860851829221316846142526011901686457607993865583090104481364920695483025018953624939496401341132625913801672638106074268151447485776421601161459474423536109916939968706920646028121825100272558231011565917461908849441431021648049310435611704286268188050340851177031299595137162845904302348575648933769089017207379576271781965270430958697050420291114219073792535483869096643524118161212935724423232320863208576909434354805440769102324333624290909315268745220086750019471363833150234980387767872362215736500120146571616083390889399166413263508705512776517846532862410152117551477724243663376358649545233597815107929423451883853544824966440344949527316173469931181414378873713244171614389496409037432281421165066583758553757730698073107450553713016870355928353644425744151018601779695168836754024189681693349124138556068472495849841391820309723621760546820434056419502335926888064694968639242844126374164038407161912636343132163456956192963332051335877108598739781778522640876730808450471350707435543342419461804147873085262972114848340630105882357442701766507425844494318938563940787044154390581455895358714398357644422051945970433392950632276545001117086618946926167204767874136288160672507334488877153316270061469100474283818821559694803826336809657640767245789721452170579862683414947475599391298721856505241487853803224472397142892773233273956769438067862994870802073134275043305222499927600610891423691785165159204742887079389199826242567027364615695984020650438836805430681899111882638691463308090625504062899578371990292327565918934911216656410995999401418101290152093378894139785306293886699482286858016705431219713902846398254069324781680894099389746689144482075590756497106091125994991074394638227865995053430492961794543486330675812778124068198026999417493852543995555535326978559717356639615730405434099740603820204566581974917459354415362176018171591315098844998916884391997995762159858442881724165983091152887895568992243217762150958851059214071198475882333372955695167637467487060205354962048800707276467617390792454235338672016169107432250188437519870831066741404203055173162775107975016868245132331706460975646654040696683432515585748731354136411299711681386343237830510685348540667654908412613074249969756122799606508935427883489732889259180590895522898648021930907692433007609826299635083617475042900225328642912642557869241154900474632471021507962984720497198909968370342513439171781090460376622319778973543605485930074757071038730171052387140768664353460266653607158439228328637331862559343986792544131928970848999060359335515756550549015160058303267097102487066995515142805178979622619224737375083328027299249596300800240927485787606854646540290026609418003587045575169087695043830206039200567179144648121344564689657876525992636890039956723338823890510113385941869383477761793721230049266127541978694203183799993228901120887264749037345804826666501891464470019375096358443179220116622127644925920165176508185851736075748239698570414511269398360923258296973404254603862690661596642884034568135770899758952352855658869389760480357326358130779471914980475962953978533887827508559281880648573688053131069030913355159136671072509330541980324744296567407262909718678350995748645945051091056085106003462554134359003923363822343088133330926332031871357204573001886359068752080578264914438855354443451515074024777079175523762652243942561020616760853174461804773911945859122259114401543655003103836410028329921853649430534997422665424525651965076726725894059099637751914500766672771753262482806297395898037102097868669599462489434972892642566293369080400280516254365973001494091692175940981286808602585016767145277350964149413887415814483074898397122336995572385472065424526521377949151532916017419119605153285806017584755095385694913162963685919775856582974992871164143031748596522821980432209169793735493352707428744449605418073064566367988158572300952730019968014055374184509970417324690636873171047590577873173904917485892167361757872850044525423307125571434654454145865524404560690354963715479146954324518028838064140476533060936438724186070733639731726891290263039483270517058520232387300765308870743865539997830358449444510402074042631484180538227701617896888754711235281426605955312703517272916669867770607604826082942599119895701006434292977001086641525738085736038843917639319867884035479177171235839221920915855567244646088304459823722707114761764066386879784342667946227303421032316928557050210116979746745060180521509534826119111934452197156377953649369702031452127225445777287063848310271548751800981667454303185279138191128929546047216095096654889182646509084558924185132561895421721363634576130443876656930226296124791949971051969405486938071838684879310122950884036368123184658021199375096855068705153495762490289980856956631318734132090518849685302690111446179223450480394721740820321765214851148526855875615787956311595913587610854630679606993395290729086782147530557062468365320550383117284866042710481354166491656354098547590066328681100873146766237365500732479591624844093491429035781365971654902870684330647672789526163729033767911274379203070941015288733946230221555780796582246858415950291379013070239930172342665005088350327128708980484661110218409200322121553508003202392298083650526829329797622027096490972182224352769523286497110940544333783989285972406749476504768724348519911551637402093434003432170948163425970731495424109719361329865894356246289240180010202272270063370339104416508833009702526124505394720259386044636310535456863126607072996270123769350387422421417348909112428175777927972912454870197704137446143234834218816789597801104474690127385436597082206624607993882067072795833352353306565177731021966518799975376767988879423812267034578797843691036092544608309530266949494175001390343937721027409973899276124252613818654937411181705179057949015623925668304292182483612421551260646906417478190005963855507870165671459853514884797114340833668474985130735011629112551056586770529176812950866348535812450711356151226936670741187278125503351408985259705876050330544939195884406458299813708915120349786019814613905556801729969113517581713582781835676144312218101245595670431309708959732691924297061592168728077283270555689564924636199060583802137505345410699405255386163174995507610102600857815995862392557396127055396453120053252891321749196872610850704025463759647692040069070752520726075764127290042498967396196844485826537354783797766443108205257158658024195854857063305042405091779364610177582019966495407302423750107402263115587294686810174075945778308987104635114204654382956006837702546320268995656126352313566742696434573208955812701629187196412800622886514447866117468718379998112161304038228155285297878196796374861247291977755886802821048512336693751383142491029236047020459690798112510824287915650890983710219174535578846523855461296789012949631008242384239456082039008048758224646279422408950277098278919963221145012042278699816142988302282765430375669906416466311096427921433652020013873487448980583329507052189035541398289738332827523044761911111206732655513174215908280216587462622101126629067572010110975523336061953060365196843137595998418495280314899243092940883511345341077357374198714037894727931812542561034547016411939576968149569061332877108171162663477966619792619912130168893385572103003586676894279910924573820868044283689897642557632743103220727527787446667265099457162068224562117071344165810089559443121664737978778210932856224252867818788112194974518538385987657911031212611385888909188965610725965837273160091607289979388522582018863637558267638778284941679147631363072364648877865087676982478802451013080570093869501271392501178311277065139904168428669000450082457818950902342203577924827252861773939670455982794783650948147298911858793021256093793443940322690568244262892260196832878105015852737482700870141579079086099372290012973942716018704948096747623631592731280003580152301927596238871285576739066916175486625618122881537101143289531810838270008509587361231630624274554717305980862675139416045217850087311914846347926161122184938374230546454149514257750232091700075745450395419179719010362082873112071227850356802850659481127628249587629813880328077888332427051349150664525818582817932971802174550294432078387884411232023187723213785664596513235695309701893329775625309857095737416799287397299976489020931228457480028851415704588724976312157669093203793505559778968361829269952309801034302698989592194014859435928726153440971526542079609511633099376456899579815231554134777824875999638413133372217067134205985837173311633307974170703430721566256922211498881760003759544207695495506779620502396043749923781966951914945438558620592111446938117631955697891689309335795236049926105692221663953723315640681578980662416224129862247962878101551642791756141986710261988305726708408118779114042362869590744363117643122141582483509034025276895993884030408661475545219006987256713084940065235500143422614113634400865476542158472769590852971484114967287622501168906374710599252059144898809685565186458081593057041353227018973060927361122478783522345428442094882006429614886644016566769063536873485461905100337025093740465998352487452497930642951493800205519190454250546676007244870932493478486614731849445912083784891227505706432491444710743103739862575145537473568221217628067633704957289825893701853244481626557467431885235843501182000277833917660177431800717854125350080641515448395173499007202900527207749783880050477562508274868505901798832556703531538824822759512578909948453459545205190482297904752466499375774784228243817903252312660686686550169569366310703369775923063580583737013195320973457878445367640685975036656823535838869184341053954848881258607471185906679629309990105938117864103872646682561680791646552246164223576070473879822239158609830201297607738181754948922294635528323317158671372335770177659620663731588837155522432512535884013122271534489581351271869331030783981609892762965363270887061133002913127838649224981894947747288604148585663185942845933314275955727612064637728886161804852805038933797069932245424581353006708723078369503532401665439475140787352179744913561266676082415378309291695363742585341523734619861032227232121859030746982201740974160938771852860946407276796447248657717950273624853601267953799336769942765498372908784390808296469341893462413367074964292733208561230598385520841445994099139716259477317041759055764211114459397185357461540076484586108818436351177944300518680731374552080710211303122604627619770865107316974076889478910701779114287622851742633092502381581032481044793606247069192285255361647224064291447641457148561696287149550172246652042679985963267297797774902778476251220539159631161405793179527379762655118681570514976727958689748229895512976185409348398218906264198173958838107389208540671412303152726697001145964331053262923676462274094874813266982814114767417608069798743008563373769627674411547921797284405223306725517804749191034642691850075308895557227785285284390201345227508348634807935234756783758246548548112822711519499444471436699655696999357283676684865920213456237295568419042834434921196552868174403518199299568069420763641710109215799933931919545671473249837479986365955487530790406603391105678182124654980800085143509894123598847602437389827608044142555518656394162466970260834422535553241422287054063204916514411054002912186052151048024289273138442756120278727659741903057347746613951769871242220659746124385365243343762181605081512176119858955617723742773173473293076883957905674160082040169881740827855714267003442995532666658120027654760101053116958539475430018746875813811112037161767089022584641103175938697180428726517519688158213437887814059256916532275418711831649727805471151673098483926479658572915043043114249619068102912087748063770139532476486548557200765556127854508612018623943474246528737438938125604244074117752289497638833585201209855483856770714747622638793593836492501739546963782142037603751344461768350151090832842582118406232961430463599563295202226160345844022273518694160883762005303811210311926894571089001642858606550920019220966826755020133422143853328087651697983984315335272144398380308879776100426351181379032368412086933095672932957946598908769698103143872768571044573510501282784903510662989525814615467569838558327893496686320693516644729167468146675078713580612464971069435409092673600350329558155724664828506925478606609331158716309334969492148076421817480247848248346559890112904652717514973601320109590136024276654599310119366387300313083748975925991096590546970051749807867888863979304449221653413807721934726612136525955347192678426530825636879327372806491615457955716272216315712000635156846405245102853558764342999103021884425475679902143107425568106466711843246083446660336574597008219235965846980026468203289741604967269583147455435502904244295366924006113458822171243250978051304118175923242435876510793146418142842974809112096050536731952828810639078286726144591800233296246250325991951408561618536926215112177300021834272364559508173403895236376611726000472352417437472347312268087117459204148299761897411313047423558134754016572298096769949146977067211844475498478413553575247343098509965806371668980328488464885151955818928298782927296897826829656866133983359211242674154013887491216776841304094904328214180843534830426204611676402635768824620553520597275799988751088069605387878085753073825286791756037419176745616298615337339742732482789612684240948604122278350252856323353870134060914795297896402242609550939596713303787984418843319634554125764110097690696359989801739462976966681104631363051401948630832444116953995180201197380748895031234312857364098493148154926031600263736808997157455212916914876003461467717816664807812868246648167795940986725827612231239190050868586912231653456793791307657909933067517031859918136259144749723590393899265585768180051262824752746493884185777727214356647632069891727135431331001504871468317323277658569711636902687382592215448158808222565243082840339055120932230436166035482516102032726545415883685216731199089616183378477179271287158886489145143510431570568607872224052533705129357167263335838895231760444681067996097955473371089093837609189591239186786799887025838329126154661955465078386605835004778341929779329479665062601480804478927880674069232981536577311905421750710279569216845755008324510316670092013698359695498608854888161735879344662482504492221654518537829486259745627698313348214588557525238053296196044109771237870046231444640735198560245636976693364921995645058686147789790375913083196827743576353915695205535186295654511146297491776380915751994251995568911133845782675831117740637329858316353691942751310606480441639658769669358024773623111722150249679131981758000961000193757007604545003377157890342843685750212209596734333110590384493734553156316453839112331252888086578746907966052479751350283104088851972579914653788723219854245792240258526160858227630281277223087436402630174714333005831646136285484718440791803266475706253279139428110090127736274364164779843905796681538715245988589140729647995711104744840437086230113574597297166948590751914152624630422820494733358333673228760156031357320302594531940825448257257143138832536094300974353382478377261113066542938927644395531379601662548969485597146500390673220547481646404710021295951574537909918785008798106037415556183055463927630450872518920786425720735964373751717281566985675143970537046033968955769768183932178709712711803161320743748204745287412254405619539014907764284132400696032967691357577485309718564056598742899272112104013046968402446442146018596814088671227019245203592413541264464053685271553035010816871558880430345539358315824134629753172032625559972899412990863832708743762423760925757799710942956125831666394759041031922101507701302783254351206681924890969623669807889152734106186702931423746095950236303292183640253784730355881787508588958372637917508654873321254118970390599593343154490697364327634657713156250902745511980390653341549501879710238723960439534457679382961189646900681671485530741793273635223124669981320657379098022601228818037702691691049429733017264619030167531797312248146496039257176174652584771951753553477580183268662899573622568243651944603883712961405868947230365676605060108397037245543130224716678887416715218198003699271366940864958900222467541709324930863388790488023534071469257271366058516698593864732569938251608609747449782471893194218807127774795869105190236887988213179573290043180441175731046164811182627237846718992710503007464665409631365717358199826887476605984473180716021116913075772291222515555656473602733440060715869641755437697587509150771911681957974111429421669364205828300119379994278118679181503084069168252920021233081223091793653139708594311410805114831511467028912123711636622483174439197228093521378115197425852000295967105104704609656238088703165752992197501165444772170099208380551257618453725666913145405607699667078109784331893331652134272917034801953050853595656578153044787397843303499080653728723963220321826563013246003723472693172238458140529964436495488806682050185778577070928204751564251364530391434999963942543230281799252858754219417775772201295870714482980805169014691496016829245719434822940657052969028060956692988540442856951351559797804790381554425709507405888508303322511097086608366122476830157806424249870609771676135245607252554447696729733952039315422302611427715071198011427270716586252670270929200759588222189324628116441265568906273219720326976835430676878485016961375804093280909606485469197117318346097602124887352290062212377580778426576842826026865061395302190153272315333022229540694500303984720214886495098431513604733332536745332535996653770348764097654292934024175394527276030371432221258747377939401434077063069956437439473729146232505522352744723651621265680979321209380980325458669170632785911799272067237695535581100311249181856821639616535826192519680180920982941288948472796730092993857345509163534829996600362079254395246891193289421462486691826546524900776627050119607874118124724295019679972246000647914614221115762680237737620076872220838766271066960354049290834843413137272142350341476418747144731007911213862145807936864138681875056397877832007667212158646891659309202951959909280544819061596211870922881735039359696761703285402827823324866704288121241922646684203451687755162056901175504252714191332972404268402998102933741808808079274240552937374265276593454378122081028649778801381025557409897955152676124297594926479565236572036032058653544945345898914442134404862687368101117532630024901346935154054267323045629524780904870289402867408289774095143879043064600617348949495322341793639297286612789132957344859378075456779460802167886935587425705504377601801007089421037233771689284263310879523191161336410768664837207512468128883116026205941255060496463373068804252107184385797717055079479845198345887422568719530549169996212401416515833415807191483146142256811061698484997129848395468257668350133886806762484744001134636851328936877756833863060402992109641842766161208346328520252436389785428053741937786661821539410864798289625663526764015870379501120205515645967545684202991821579901430522405780689110187689630410458349199865455525568613832894991591312150341771271250192662601850165431259518251479804956580171023888673660278653644398293397489177361643712890597401962641872691272181693151359470004226768569693610862313183844233987599377949638228959550108108522801407439365169513614252080542453002770653762306193413487654268923938792129862731147396133536284637225397020165822289945243088421875972506690578698838993543366526314649395844339861847864796540646091468369892769577481914387094143576093059197990308573740294003216638469263041166016397618424777807511817043535361624307841217383315613177131736379515424140845418853290066035321928695566850660230061446948446936067027850084159697330243536261327807101600105909877021723504033093753554905205738647286326517382589663673096368598032826018141120520861103581851464164995832469838785475562504830105643607657333893289279077670256859840605576212011419000753105031830075389921906729495799333371849325819889424384064133895449052161979745037459217318454017840577888881339704562450246811051320685869123518476010825298445464541496649623128965257852251251004150938088421083644943502683894664209461932173529599156692587256365008002339601391141352492865163265248347271511135481605293900660198575710150986667985542273763701694829016865201198140787527348000334532616474112467812825180214460018218119873930937065155743673641714916539699098491350828665242829748015472400312471808407468072430626856475138930470675908830344226379023826565480444246237048036090956479953106703540094555555221772333207217889996494217772748715044085249503832114197817459983127340709614438542915370193220710244909154138686803033853204500219105614561128449831059973141914397965145264074415477082147560986253535084360177261643610558993775502939704130838983427019983660852140466426662679193398496164300966830450176254365603018158484678237586523355916303114256571970540034399174467227632277545060940468074446938593869612393992660008983615880089915335110247892643745963822787014000739990467557401693622795043065596994619675484748918194479513403488384706034519063327202248888541232966518599223439675218913351794593903821695907262907177608434203425810835997029618195901376154776237757191570620757526605150746486314732230287068801388740675991854491351020106763029527262283191987487042840915868407529475259759934893499023577272431036073529323136388556526650643170503074850429945560810587141670757913949116548145245484013546763808961496080586591311763451465469568617524536880287750264541218671784831224938473799764638764085272555042599190718478183492094491620051361288439858580774278185238146937569579745129382856854869390151444539206519104923735966649814833682893113485770859483480954983907298158821342164386550718479719006415281921096891881488702645545065028869893905907732518789359640449778611627094603913168232813675140552762704053964959360874194716626586958809587286710761037900190334850897128780954582406893970541953500653197710395865031040054765922627871350667817614205926661103442787804654365712802009745302084132041100771042391493664306742522079273437513348851765026564367235941502939545638973909984544664345499586002320966303816249999519885048129129651007527396535691739335959290343833043323983997808344287304676594206508310905009131929774710902393425833877903561053431566533799675305375057765417558170221073439274926763587976813424807204104452098522931045640241012225453271717011152167612449585264551339130996852900051252594183813676633261935121750724734606768189175887027914689689012158970536348439856429239383199488571008025082384772085876414020411582071061423446036324855313087183120221979494621453158363599970937880937348305808555196631458484975553728202877903664332520055845958545072080374512548484783669695388974017296907332151441878325749645133280689676306120026348411233991091168380324138005315130490425467047334591318592065956994172240054260474817241920384734772322801535694517727428789345945197826814703504640697379496337437639741875209233721147967951456107892417389311589797047834459868531233037731546594498247915694043170053806807391890937212861892488419159386603815959412272708734298039927280149769721431115880698684791118410437839842513691059685548183397181902654814492084857397782978846694581290213124555596061032574942227026055658573860836703125545019024096980667513087397125333608012864696117863166725988948930067339541929305742168264000635108870183204885285204655506033610383705123666913361511200850226594458526633268022846699229934496477969195689144543613844549840010963684339149348483723289305242031830838871539460429804927276430714509766665875054795686666040442260756558691817781724057259730617268077796433321198656491725239633134470587507792254395131861934255876880232961323337089712120393665299517473557809108129083937039184621449692950788948484168920813878441534099089189735690623323277629915417131322428672806152545035404102044164381941958567695878714046884311580224244710169962300615174087225711841104919765201046428916610140107997440796813548431284160967873471213697442954902875901635747222521347766358365373210538169934535424732971908140535049449025160457348054142850761124504543007973480384022651542334745550601954833365662947501153879161935582198938278297870605625344299622580248112083177900296072885600517915682385405135893182546527506437140338201690390552240407921097666939254379765566714211143689250386406373163307313376597022136329091236353646073894325640331816808244026975703838608780002442985501545296587207653448321657206644065301124400339815462419892103343241085089252562356235292217929630561063875200092782715443538435070018105921572369411507624872254994913346102820728772763887631160068757482576760518431752002830292986875522135051285544908503970719875505756613573756669819465681697654834822985751666730423800860494946629180542229085077718288881351397870895174151127253955492687812551195729114074679772511930912164184317644370786668969083647964844181197224575437560009224930678576082628988606863962563003661534203901814029912847626524468896877789104272002956579878523108476801182429066876030801241365932324327687758069470294822995340948048368773807702713013027388848115782588984256184585602339128671453823019806572561877479649170232059703284201170809909876138258483886993503361570169591755007107496277439354314836652928046262357733857551399393315697477693370246031490013213445358890668438574442157225518863673155282499054892860754731887631871425107180791571049587238617256271840045775511016689933685445723292283578474021787261509935283425494757049994152023927659461981533589034360071030657256324334611382644880266693888806896054681228793918034682030793625193974330906409779327717710181368690020303854260992654448423276288049679675554853923099632857210678803675588143314604634616534104213567529631859333105849753641972584282899350142119646166521616097877854595108751995152072892912059822037186707929351217176003578074146861534229361946543300892276150030422292699950147600673314482452750721023760980931666710421424233944096738333220329326565682305169339502490196303719041503092447028014714844510023937268986711070656980231932947489598784456638625772299945141156710744323471793055995804024251235338071861401746644885931517896790021115616794735693557570557189685808140722617009556646527860409770846427855202420961517609238934287709729298881803072217308966945389538887606555524737225950753775207067984716254520565108974146588648154834815574438678069526924205268372048469825181484183922378979849825711902876696834895098305166563209191518595982311941370507959775097127187254202187531494428786015454733046487969630625851130328708768998047234227467610487122873323130314361719067410699395160189651107326065727076738370930836720953752908432571514538840885800186795158422270861393917011477264439173695044304151987603088754460186867193825740392697557642629797342394358645570896711713399578604774554791702510692282389048177828907982312216040422212768195245349387279873450171358678512980751349754227274243246170983693693312013257080423296373854732689558024044732656470920855626486182175083041825742560395682221673933290611806114009392408856899874201866770644722510644165128243173966239495293349202407034585461747997809679008459490246528012803283080765799010531297881680081257347173673231788146131376732563606140036938009727912803722402969437522797420621447470814759003226905269860723496756946171340418144712922941952524300632543956065435353528772543291047215203981503903182416976616940486305065636969015200625307161146582716479538428041242790451603053432944045887093359122321616588016706533799950964724151626779201446455156503419981318530409369939838173106199756461468560395207542026976877436139889448879781314742985502395089418196603453904712281353908187291088007440040139641620712609914996132484872447711853412800254410211725215188809849797571048402833424657745894289476201000109232158283094140065055382392870645437459689547250563869799299513753508737805099285174454396027143623926146380706739292378684136786779640591083507486479432862942160306908323621021822258674106792506135029645292859603391478745224361221891026388260576482433576055562546253077926074652026687317476354251452044316403377516138156694772787676565654066745520877068826661738177360119940429607685636968195397320160701367257171902368410947634525678905403820591294572553709296255097400769110285860110384144976591316751459684683499002528418019146808925112415844790150166947997842872041815923464734974593310109134007596971763077325989318040495333033228646742415277637533958332059307161568179694750799237050987738578720004584672289899505142618879624023066828517652783969873397456300968550990762549957298790313475081134794612451837003226610667887809508885157606111175921249641688953832415290837286764064181385364847757951769145484519717235846754161654505347631954056427575688875565574145492511508505713378920410558561865403356606521212997159523077553321185013700449196375218324865408268925902994576760730301903546320724236108622197421492540487901107728335198891572778957379828973601435422397509276210972672456906617865770613645959798049941772179131851674332118354723258283367583561517996771215907958693304756247885033662781827199846433902796283966809312487368853679830278678137498294430909037420294117697639828712813119341545135748929892022843289833712554697197704217377088915529889445596663100581721528138323632508679217075829224214092470820004155682062748163278683290844301700101028835442886767646464872432078680184734070663258887569492417043712674448797811039104044560894325350877937745635031482376314166739405588642141708709429118736964548319801914960259815703427555761522590638529095739124709641390398578363552655981986438259757752120629611193213173286999265720999683968952101467051530550190535695854068763063703097790719749023565805115317594399057773074440962649333981163082515054312008064381458783608383317946924397911244771913859952450986079575084727558804298640132472146400920577372863995156629934101144122321194210085523837346967624386379390243773142176488098106240369525523697986865651427028648571455451991321231171411739442070864981526538807533028721734693139669783528385487621012062118591015923933110628530932937529769824204442318689886918156250726019979663168984365792004991635432679045055058531994650575942254902571383904680317671989539637838263552741265807038333873788161973112687372314716166637677137967808521491193392535307588487904408999187524721636629688285125658792162409165874736598681234216528993607545743638961528271428310340812229688368952995340322115160979196802790679818802383546460857492138625552610565283917153924597746589839925027448784573184919720148789231918925273475151322455800901348739437998721202339399401193059760981536754100030651441098969759634832420246953662361598181893495023397798210039537252626498080092727554014326413429615762913859854848836348139077792266077248726402145683609310420779498790146045864188861663101075592753170505764343541547808539006550885312588329744341775779766584312713024980716760244287597873047313922378535621900374025893660809539156226728118849552189460429266653726916834679943044597587590186329891331602316077421457346726985510347803717629587000776106000979396128719974182240745146239074886616633646201828802849266764443028701678887653294048718016074522136113019648442026018189492422614049028145643108531553738421369264836948494216011527453374495536062691076410184861104398090434376516491250320866341474937237928985770066231165864221814471146104499138863262509164739911213266054227984311884814852608934032143818264704514686261897406966297887842090788974865261344529262309000267895036423148119448484439848938844376930381333203787297876705744338250055247842434420927409579448610875911544381217129010939858326769911730049882108262456931112511473404024877750568483417999030963281830313786825027629148132959449027062453273484624375430702572502812957408739232741558312324514944236009411454001326946193262775518058907363525027404831822200646126601277820467746405580674577278217135706871401668220709800064925284600542952795804819377058043601618411660753962764094983773300627083702159741346150765970103948830636802738261464139307781347376222505087423321811913843434015458290984238918498251782895586524551419321786575038960350058577893886853848057491877580216889510178692263182278849423116735058569860407086286161493739564447223988196010095462096918757177305594781297259927913586371496410763595324149969600922828892489138821898832105873616953098343928179203038467418616102885168049361846582196707629420079992546599325072403360548299597104538792573684179498715820484180098571263786920231407429101238811588157959868841557281542874235460717630664272324752538314069990334103108422792897475408693808870400149918631285132008289177775872592193010223160232810458677836688912602659183598079385275554840157872136109077579470867339067504206186402608406420178657749712215436304075306370453922340288360580858558132335766470652256202115301410645617134876112044451421828625671282844974744153291522693088836268927744352686569195022395185407942940992410242476587317750639513884972882293233188435424739242634856964162866771008456232427606226816196814521812315953238537873215346950941805085392182535481771224242163028411612105886227716823707634390280759584938244669351016501708309936211810344568605418240706183836198684479424218827712352273449825059647327045047234505563005239692826252789999203301040207084405769665441826790000245670766602442051866399413932882628048833873997025574209227160603398923602011792354648062199460776607753060297083593843670581976221614325583202170455069764167032118976517863315375068826088937608830452130758796250022974926902282568447555663890276163030516787377982014192335638643204516200088679901734360458555150336718286863591710750696166211055655477159571170476031612357655561567759038758464873795639844608793632733963056453289444441974024706671866162881438414783849429730985299463119719993160072910262833897034081015570411262394283109477709236346571624779280986491200581725346019292710315446901967987519673703447498033667040974001788889613939703145783408961632628147429502216154183523789980474897840125554483806806907786285576920276369588275922499342161155754496263892764171408316456277136196700075890695957681770502939664404785968683935337826753031021371283429240573297144172633839935241505274877611669040216633011735428308533217417799923419438228833855847380274137339462549002981673142895811961944395595525436872640472091312861234230060991668546844065805556215730754480013439124049945876818154704641762934690779835899698334430704654681439413564183067821697131655952001888222842352533047834660293073582082010869301062807589332577626678272864308319499151616798114693275298553440853227208005154739506682776862136414601213045636207692360847933706688434422940404503609288148429300635417922143765539987628974709897172886403936989687284639699033490477980092742196876814168251984470103565871247409603811718129956972426994286582670318943511434932629402398226881994612328669448514502812099641351863014406364988791580605085702733072410349177098771547261462538583090902854583500047433211093984016149036932270161220514945379886611909279595449870238080895242354384897891774930331223144361837416239948375703935235778737450360081240407684348707752976874118747163219978916931443218806898080717662079644251581371571703758080399988410159743539728708871341018434730621345292183931982197978476177104491652645280133729149429372692986646978725014072544813721699214024379193629265461306489335200910235721347342737109277879931157470845791399470714111311289761070878036109259203537154836499951715208732788689494316373771758759244644232420615075000942900929527894329087084191817478406696856087130841940184233342054344538317736402712641413001257156057702560850248344850292208868190404376445474538893081741707044633926990516519450797852265909839285442395465415801821213609261486334504588550978928842669813519813882702409262796907600359058284383328784674446714256446268124766713343315778735244053451959660734196613950472324642283785944524848040127392609340680933640927005612431883437951473513020825296659353896527401869588823794489394514611804486908539139364622554569169377818801490514624807296115642969105988061171749022008034531586098748089361879961960311609944032301295527796046942667747020909028773091624080462665169539720427726368254555495870852247156780812255543831064708281433875149717091709426415511023825439180474800502661157046541513536869493485253742079181666665605164790400653117225054550491829470702191307684454465406762336421985265111951745535444928429283359617453387305436573565570663840221276699048104093671323805054801079832218683678274902310795865293467870802327544594412918233787999897290492871969577247174288948518270954826583806498059344650319010460284647313352983137869894879926400658677179215198028977142812636856556546488771678513444487184655277496722361612418079466095874306544541634614173096066433770291632979442855296902624400079525760814534968716014298694778288818524028310232261444797255125050679551554978538967898179558056866336540604608079463629236115057781645472057048629930218825654712046843244531267961015258336593222586094738000345527547532174843149309821572612038907408157661513572394874911009943899063915690115799784708649705774915083773563630754136645638180956669014764486062714234342083335178584302087801398732345815154166248533901518053510364726750011680208832616892311598051610747897401486432954543360569068794752407905181892767548010661755512097313862661714602739477066483649527209533383420703068957492081576249710487114747049965163106694216526828601287529037870033332255312218282647058230598096335241017077392634012243586907305289973115286388208090697590764816938284883643919932995417816228373366078395659776353316707513817316577987134744904724300436892952477496395393766680299169051045123374531087916819765517885167253178698378382549877489439293723105002864132143408291768356971809948141723408294439706202001908040977578601116128873241223621192314034675866444767799184377588071018049574656729980475022469641117101829910490662292602718643634584002837658857315605862576517491663066912554893891246406800679118817571017808393994527418306773737580024617609716217461522185934510879496974246774531034952410123486730895819780315854752512873601908413695919479562243477279684836258122729332451671076621797175310885543449216796456183417634756471315546313591004933324142192404885357748966174143349366160816052865917786920638066222786860549254914849558140991565796337088053433991341016638525564234213454851049444496236081331285274866025252722255219936605053949704453615199904256958092323470601324153692577539317450522019703821261011143197196861013702617570199457912865865664082896467826697179622348124773571767592965268970950421582736991751806967498402342031522308868499934963079075283570446685795894862302106000298226185904581994969241936096026494307144825138133694406242537227548039405471931697674279720860366408045553743400831212034438664701945232157855218992537530712701453421962634812779079799555146100113853830184026610464644336668075186670075449763388187487866041603122450997773955997392203744513475355138261194261617046386942539120783321721147458679820226051865913289787760408829243222817225378411828669274719057512735960123184026387768086094589551728758679213416037240388751695522485836488774101990818826809233234111861441484083711523343602893594391532183098042032228387982179395686127206771520721751340289011483316053878762961365764397159454387736953686550702573887983720276950151621499949741967070986049125812582354166401765836653637779912661307403143249019971641494922911486415332970060117649753290758550924660186287746539568164787302658488422397568210793714664844244315763851557773947639594201355301248198532407527961649500191530183560580750338363907055031028192643034648111100906086654542680054438980347823430789087827634131944540431141157358880652269480884103034909131934867239352270849613634569539231289889978942821292650725461918011033466817906221502233329349885978008208441203708235710002196344035498226248281556405867487109847241397397377493718003488224510271419875197227638959077140503173262234631155847352718149158109784290706868874779259172844856399555229072304990233923655506150797526140546858133160660549423142647080254051635397409942784168279867547634123818099415511930792752542880816895528228249631391613030823660972675844467938851756238910886585086608139436660933451178659022472833149303804128368246687740563708677264406350691607802855716936923507856458992772903207734552459990185535854799796320772253312777564956671789726264206458636342042423523530682931360175718071350663988209389709032389076919359251896835744173110295470824010468598445014214887916259212556070490795072984696979226002665553399665674061740668611180637484041100863858514112750168608289621633928623384220720172008580228382097383427808388141007257805135026355950444711350765396515144437311184398747750765969650216709501495998674089315516866912547603280374355622574452806944169191750483447552118041624013024505424115280225785037476065412293336892307511967298415895424477241627601882320102937608257316404549227940441328785571485199819434954477488996884351491683207867444907370844560258913684267433819689994519009622589954742405042852785530814456937253878012964545287773779804421001397565439265276256284486442106631004207632271067078446419405490151216010423826609757942891932468376273567197180523018407089748430292404162109177393649109920186371977379526728644664362393307978394481780114118832048778446242916705073451168489327404006019728505991809249234922242584986911424907338334634523912186081959492864874493255009169860708298160252284227384785017433408447781496545776953459565298869618282105486751581374909111944063639390778292599680558808533523007427887309314557729427593556123277963999262240239830564715252277476002352985085198835796785424459805972160704544856207667820758190959713099673436503939396116579919133190808950676369710926423825606246176392033289827940144813393232120299489232641958682388374124149175618498028493967444111348432899377086613453601819111823077995670676783347384903786926883026491777446308435876951978442692897042921914100713277430974730082718719971120516959983648142746378163153860949503965548107913629005239930319166744135622429128607668745737993198952354324176212421366147299047280301599686765825451476532039067261548418798031670544509123205544796646189647402664636090081334653007901311452757374569187095604610908951025922704337500013297533972068243954892975851662137758923805735848805410299724602221013851229033658511466737096385392197284188652720205984212095672596043404013198932839908456296973661698807942067374337019780157229267383383376934760911362701662576554395515491743087754805639504791401056730078053901449219120519616542528806792769974821584501385073619682791652879338042971248877085025317893946161427435371444323274064143796678229013373342956503138211057414730430866961945998899429661043891755450069000528398588433413677822687739023288867785509929138350121556348105747906959207513109738205010516655706289218585375380062327277949769390500077695911875030905981936939429235410841503952517480195149921970302812748698105150377866392567143491775279441262858528666435846411885648099079087198445791980950818611176137621379952052004256095813181174891292307802293082483529991317527955195631396191198531376767986649949038065720039937486527062322439314008726582322328435546913124022042411429888321562874609936359645571460457347504681541954171868832905311480398784032745623244113594259533510067281303457588983766514309052387808131085770785952926023079513824908569748015116830566056039793083197482694919504669217340831537850485908051330313222248102776526854679618609713762900642527995564035509876469876043425404919809097586420875743825006310925134239134930029812272344635052361525307454689437464706631965410971048128995665809101214203739981832208340960197862726385810481250088139006523994539129608588503090744386007381790669247138210743233370371099799535397658139529502233287835091343097500773045916884405138106933861710559001439601384038091770910402484656577292155912598339252682625052050142058406364730524342050856203920577939730515905560763995847302514747319149981228853498389516521955781675802619253311471991505610206035443533571618656051227702598848360820207756304513640626072782725276800355185323266922409217411719552214221578244580465214125141788324959781270830368840369144085141303539119628505377314947784421618874475751571857459990191059026151967408372551491281309488022585853840307394984281243264084862220234227508363738793147722469668862024524082857622746283354963552346531956246720423599292664790343215755924738549727762515248449842798293241940958402127166578880667277076095899918449314156554680492728168317534490161849460440422883549194033999077520514989089926351310321665044488291798987828055205785078921699865338989561152345590234704100780378701828293581844698291463861579884067220402608272795726965601583288901593545973276539958422809378412818383803588847350041659226891267505349324595189692744073731794420839521956773597178635235646931165447483736022325760892736257204098682963013847622130050573907660653426482842148389657082974824457340591629780277492704497609681887693840367892213008650718670466529785954970901127929462330557657480740991280804971915195936821914323399260079434598556226448775974482926418294633010547935046513805683381815940007882225349405715007070929760529753353691331559716749810231214629726619291362080483655476207671805767073551051134862361045024812383335684681961235927566464740874649689042871117617969231890424588297239380858653539758748719691889771466810091224752279126398610842817923896016173116396603405320746938670608719779504433362534219659975201067214937626166956984980525801069793717915276115023005650236479314234748786993021436281775499307999706638554762733446883518886011405842321088625276325401324229630771337931066330164406256688828842819210513266146219001593954482726520945585065276434878387299553014297794990665947005991964783256455516662318706288075458548341959360607116949575570462016345144504044186993547313349787836145030465838452794582074795867177607031042418567868904767917881064133701859991014444547090952100560793725262829848192592824316289385248972751335799223408599330311317547990715452096019629622329232286811009371265477474690997558705460549475237489199044304486166986328778874985959871636436243292555719559063865224183565315600724668624135276039404613405252088954223604349502992184792606802849791219099845944730469009670097518819613640215708115941489308916430025687997124635223399412062577960381880125209304944389552675625748518238831296128450734720649293167915889393327651269887566411839868332604448680266195652766792446876805957895528306108974101885504538318780604291616944945105228365917273480285405014626529647809533746990308784352473715320095198801603265801015159040368159267011578371406052424215743635351233021543260493521917762810050329211811588462180474099289159529546030129839878523047461914134651234764356428649792629085187685721889841800431916740425806692783274491203401426837054450204635496623032275558320104459026260597880284685597810294159507736419703981496307459281166868443225618408730119005493358878173611504411928811703306676644704554849974634893240309521572935951745668768119393477978132212911522487155761186268713621963670495003494635158448527236851568353022793329484577441170205909497471177186924748939237626876734973546369836965663977891012312570996066419487685803951166153902477875684405544992662672163728470176377660006703426028803217722267077299639377388835037975000315613133654339649612028744605087605156837672999823169873419615691490756964517429181693694628956508646024564390430008665859768973533525026288988627094280319857395623102265312772205802526713678826914347051534121320053508618611701584328827690716367508113762134943900674432275581088071693218747947510499988204992463466815719568170103414781881644146556423308570759702724215291410245502141352403381401840609610095903094347996084248412038793785616860787706861678268340804005098868512535197213585337535432892426668479485511986042449843712162717511682455484277941777196978230608782586189207428353558475481311757160758989287840483470870377941624846481773269702811845848330274825185298405754526400193663860556847697752360827206475502491121740146860660132370110193007301559262360861047355148960738736840264779624453427409728180260511105327359026131771345756945682979743796589246666164001290995059670181505152981976967975585945652823178983197060475678487469915257536223979691122768605862892305799520704024252861879419951963306322853217171947825142836723363390529344201071270595226245751478042686042220698831839685623330370927567868428076595901744600907121107739692682176210569315587961090612069398257571499695822155695006621241777087400419303644948925693714697345160741189100394152190058857161112626499865213301920057103452943108971285907073383948071849702963210247097037751977831660342526748814026431785298245631783140796527843535287318518908066237479171099465329800039577524075997374543611334672455437004758942840300155049423490419690267015669205498898331749923974318410870188314462795664505982255082233845287412752623963064463783309030111456429554296790379352428840121067026775621386708665507337174892520401412114474452439155720817210075772626249614307466685017338539177750935850267260864747814736148091510923863951559123163339237468635911695350038864083738863055703066124535699687785518531340661911983384033775523835207000039538418670661758519532093801053864040539608235723675736436465129567112239694353313878133760785067597838185365752154462890374114676807087401749472882985733917396822871330852013076628411200357536504965825673213540139422038386356342562466032110450952362038151501832979489663363174973000199455262145909342991564811932614961663796329935588912308673358360130273376178260471379859610816169658576343142522420274593409361927954575132313254067669603895644456164968781011165842522491890412122410397833222338913629438156408430038796618276005944963549654842665430028101578937278830214192936376423255160557424767754475745922786544507735913691983896535031331242167484820340532166572513590686238319237441136434108632072633310747158763800982307493581610171872964988157437237094064781943149319636862675693959315824345171085546720871237696852306651770006961025661111222447977209414842340720683687605205619651886083709591254162200972715733467234123027782343278070127494569245982826072376242618973825874529779795386180640997237915462073474922264982048371389392850126104240549930717732817526527760283945406810778152415123262088341775033411013773108232512311162745639995966706692110021342031439575418925382282337540740457820411026824112008553903585560098626078953495735921380480366169141518406536999367885948632751213983570484337332656227856704782330845914172055166835345725747011326130036508320970226955461401324409665848939715482161546452420749706085728210466219324348253472050121894355942421560624454831629723060718142378695385016100628794986207103272878969068094849891271068193901995704793481268754749216893924670740575872891920340014559498532349573529648385167763043325958212611143651195412769996061265346017871058603096830156302979190681279907493100415086970917260554749022432127044015767393577336934433983841051554860061156159799348602978485586472996295090283990987040173263829889137710425381499409156138155460834601225084776339784741426254504828628947127233589431670759883841970536698998350820033535242605967955603266223014421794207242973768643592235138492003132278318700918911178964104787993161787427167976499132538427794400167088904976487255503375074168728532705901947426428750919099750235254444039096021011380519534921992243495805092166051227555157792736257789740625289926961387408321293682254762431385607838355053690665195900780880164717613558968735663189654169202358456893876846525061070319918456741478963629883913484118335836962814660114739053996610525624151143344896106908827435441685994283230981780077421881514574300437679458336590455332659170117437872249037793206747684139858947516488175646066539405902123195667324577070032192824639654870242377341594352093420403126579488029055650391504641097818716300437443660609188688601721749215734644221992722328571073538015312831502679356141586416538089649034899627024261210341784869512524716058820169395611268400584028340700120859575863703119484568323365708585213878459124406329282114085963997045516876823984757005038996224345092706999021695430104314549397870143310229207738441825906260987983656151141008747643208372646179577370156591108981271949811667150465343525079827030570987046337394093833366891303517520292398237820568594377256306446499844835762137312992317161567501572069852030661535744642618254783011801232306776736198133698343446077234877220302422322792636756344912298873213285768911372236227341467330049547905954117680142795239580776639873369721160008003489338339888811619591063373742105456610475462733991046072316039482722273540449089933037616526953581739768967023448621777631837455736375732955006585207466167034630728056027722706254781336270042076152013096801842775754291427430384085467613171575443848105798755962711901905084124504054032376290925486962038499220263011615280003900696170707803852443011333562143707712535329625682895827697178209179478191669493381505506390167132582017660369670948218717932993259379443617671250954566472863577132570606802287731941617217379516783591524125752932830622933025509989516177419655958012548236606781966199405018730810277696086261215509631092502974532822862722040187004583545866763316391590383019397386374734040978106688628558706675915972495250118196925524172253691939249246315334217411217676192915481598176725529759009530751659858485048294479882315020906744336849099886377128853510772884500688020377121525837776801867855278684968464704296034559157186673262221373495997775443940133706204041217994101598611091579645141399167007468540884048680096325550621857879166420611537768360291949008683838749285991770103035839764750309083743873115393448257594144813992552617486733439909449539198546284080887478008392960508581351960898066275805376456590024556597720876540411817093376856118379469878157433048889513342360545867248566149692648564099207427919034961121551215212444061179937141515440929169428843264354644846193807211318121658324647755155952294679079020189707280739713309124565742820645785669609941938726826768994688533868154603909920754418506816406925898036221388766309763980999684467643533136926139807134997759886680050718099273645119897305148642523221043194794719970472312523391529191918365840655242331825171999866227075200690631921210622246080876840453311751928043881224230861176153211854301561404307331416995807237580465429445591290595137886984108207940308323447557501225854480761676594494410669985243229859750387280995981736004645771197134565629138447850571307657904323679224480308542426608159124229922479493377269030137961821875339468898246754034050034118964827336162985599165932753976737829390249186862666976691756731553404583350912386148509871782986307587110951092943176417596448357214664330408624042891965618332254738797354039102000411211991215897332665145699478027930542136661075465431026193261764191957209065905185404195302349679031019062492358880952900175298286783078286783974646197118719200562689651195023611543111444870570812076915725760112426547742235927122202712737368078123427102295324054343390210452216901178974446790941417100213640940001665810321951908798831662445515790873187033781425847775336604033076163723200932242839439343390937347682384602949858484515439177841147665585037913613582930854445589275025104900451904168866349399841399139555381461962582623966267494958414334009399460213077782652171491623444235864161144887311150492388631664405018879757931776043116232141902784810865679914721393472695001406027568886595213958164663542199880139637473898972642308824668024643995270055053263923506786355698827137027772782948553067269834873989704155333492041406656952222178912339409485459487668504582800261458458786744222859322882253854969306677937666373843098303485317740109450902697073381514227125104417677732281476119306902826242670252317303420573624448593903792170997291830415970286493723405705258898986706515548609289898795387773430889020591999867749552838530669090287644131411450598022166353048921993568134710321851055769036957539908037090863240639537782358958053930130253158808659970497252687820945042218326047545674930722191226462021770589639381692475545361162036397937926945115493018113992405712442500034537490932701780452144377738926356510938096208710452274763019306573161234464333519013541264914171367582169728232886522827623913173129851814356120651345823107842418257762326087986816498093471347416291509857978362363961729853935425319524474616938921965334087098070161724306072294361586814365382919807437981652891344326024747607484507296289805470045512835538230992572105545564659349554127538642997608263155461379029525962134702574239358701549503015706242254587505972544228493738648120691566326326783159765798345236113824475224341563025334534990706585747384133984793287293976688508034849574399889824525561933500441226165994385874826670704839961862875153789937679204735049720418681322248837084334108173948444108240107262508690284744735092321023834044667055650044545190414335313086964051735914444558970847134799152845784969746668691554744643279883381096044462540879312039563649680726297757444730862289693222704696212431989836277480214654269864617861065693060138605352140229822277760330585857382911323404975149842578428030119982648340832300582903700728226097000455849971858059028089355261312883782318376860956291593493454909855129710998814510578477564860393031476935045481994274573897690158584077324357719041247416581421469727011334095816216870894596088998644464973436948743601709493911929987741125355971105948864896389128172300009796081913812908790163152336170908546666223556631560859753642549079410368532140215123666115038208139738235537556221408720694762939483005693453160995340219438788169125160897262717026271437331626171678554176966990490724765521463550504290634456431800517015251186362556841520993632150981639333010862335840118755001117555714264360138635648075926363674954640072797942498023593035326064088672776123813332553470581943150660906104476988785164390263291220454748360896846228773741275873572459821319313021843900419330416571218608494617809094966600756003782771448797150763138271943064619695169569773434275928260433899374799578521221214272019917339359086518651530730111340818684792524197698299464404605685181883071626947752839075103890551448632034337484017591102703526970177042054205241981201852005248847902805833778459092056407431398675986643063547001950443128175293491857534992116694504541137878186495969016417030226996050512633820630343687516054427102656765540860532427171019911598112477731933853124047622635845017937157804488674418767863928767999108906525702505327140985536113038882863504265505906740690957083232839285475308984111978876233116300466584713473983537936106703107274530740384472032935409338039311717381155724645965638447271519115601122427528133557394575053815073592899840219074193550931906479749614985840797023064658779160991354817741211502395269340843111390251809945765171314624022123112444131199033300878425648381547628786397003417535494432032035004478226096687334681395547348494702401003746997803276639198243298191808334005724298949104884743244454693293899700179255165719911225459034033595181698746698386204073878081300295165631195888623367780936410686423770378665830117436605248834321273550020731123856664962198851861653735411790689222038189520391128219543112967265785885702801895761204999608422922506588480858298117961770481895452621292347154929845703968839302951291605943120660792322458869131780218440927894464577176508654216416238571038343129004514976216749105239803219516285391443117278142431561041309239975627096014520298063867183475289444759675091746557899084055851764360707122464199743451733500686531635917976246990180169465633500610956245279569989597563908648850122884985168151483872044949652290355955515339125710697173966484412300619443703559533782094651786825202188288988664640085426028249762783242178465416809705727124723029458119926593791898921250111859644422119668243186122066070689963989265978341061200344766967870319039982244942047410870744858127620105399187307279785741291032493629015150902862533758222066246222618129494294937627793760391177083852744749694521518197645635704921062255405497519943397828864569734004504865392393393840806280461347719959348157050530154809061350375538095819060652275957166225765177629841949596833088974653722845034162155042972265257691629585420522974164746828259811681888681744887756318654746929625298912349531323025963780653143661436473430213179842962068289353889517831132661054756280511522240800993612166479096174324040877401451811295713705934092310997712009121266392416708360911315250038098257790434381665935021751993152688689582823763311593582115672672056411725568587842824432205877737613235954976312345135184718454401515842588933353463966581645792258924885250572742421881716375210909481829503039233711614189453717691457872401024314312703833735560267321902514581428535274861858130917310507715267661606428344545457804834312709450170068231916932922100989838639702152482881834189546016978459178900935891876646010609343783713349276977742307991112349233988197060272007648601940327954317011545508803334912994032401761444362936740431811053842049806444359326533007423629459348807985973730868299056889975724885945549871086024431668800464861385890276903218217006258915443456012015829276788257659728482484535502560975852161159359555740426310776993082133817244188820375905477891185835826975905715567379814335693267676592586402132129478943399282563701035184091936382733347073450047610500656021302920330031695400617007279356555037607199120936967554121944513822952535388305147802563488015166033356614039998352911605398552364273885006819139989992651243461665178633934894453221288837007465141774346564924810747209670996353267737186186396697809064361383173857467279016761077389356936686365328165610333075338798827946315147796075311728762702929292383510131061328922087785844223318783589774883641397140935397533223582419647765747881228918956787457059830639117929669215884191699644685459061737532662882320259800744529135540456110072219598670612818061485475026791932076274806290879410774455074380739216310619819018430844507843778756485987479286276300986261138038199155777879687216519612478109736378711081102327197336817627580769864083764950995064728269680352846851680152373252237789186908006375491009909097043025655637851375859635975632861493948093448554002461218221892788960061638672048898999142614909409489668740774846393551741099412318060777440404409054177583595010411936949557217970731146905108874978905479149703630006830368429352921110779836565798559560004337585358873523921512945928029076976149136389541489958359915482424220398383466986915411582528815312832577939824247105169874068123087277552418200074243884779155321157894153223993891132534000621294116457764346729259881921359640995708080679229119152026164648202353402870696135827209528419048192430001300690923741249143321179529247735805090948909224070115159057377009676051792375819118289724985531640498049679431207169109546428663392756918063487541622585324546774489172535455787767648947476244925360746867559364183332869255528242898091320274786934084469897591857145229027104260412175889085111082293494510780543018103542304329977675377439314933968036131531407819779847513007998778721230138761839816030502144482194184111025396129163385261155043019924914101028082611991853107231643966476862272065700305707136086291747817401375733539566959265093817085192240173946732629259236045878727280196830824861564178199415800227319394575189678291512102472434925559009062888700737376736382920146102656292333702255269459870064600711284277996574195746362903948546322549310446615917684955015804344716704808103183608166970438787307995359580970703808584428639002067883757716912540980597350885281920750880648441999609685836053511089680545632992158964332652365270518241465491086735494417845724690399228207311640198684148049424687718852823229409967176344602473448936549047780509194415488900004241846565301545303721915845236197784447862477361958371144348005812191554377876097755907696921315985346937143220219914888604885343200126326404771919172153999578769291953011711707114306221118674501531092196447036852930869322545474875984199465000396409843560964478838548073307822038151330538806107011816437304463646084404958014480693650804971417184455186261074618557934340138614441450929165593473936139800732494748044114958582274110791397678209968949658944077963917777301246570368854291227210136796128164339393719782488653236415421577351985226516007270963885419596518280626137189606213176601522326622957728580114978743577264738770731875944490568324758995502937340587967120915712930834493204963185150331012321834644051231916253651414890412486343085333622686701943885423122696262028593901661246639975658738654509361447177990402362854228362280588421384540692905526865773997819721275411327354999355071856007933408850046252289035138321208990908772857635762018139047532852877971191089544801412122999993433488957000522900151877512612897487151895781502474254748662106161597036065693052932247262231124185265080673585552445217504178117840245873516239453569590472163227705952631808346145784823146699234541762289121082945489646374380037923704481375464578236281831538505205622404394349661424673802644631637745603666066050125956283102163922132247418101431186128969441190962068607856106845427641089416860245563060321780091718260570447968702639076444269281464300025909248964088560393172295094758844511460910393020771223526392720640105967345830214761412787950300975280903584708150823935751766331385334134706475441616357525537110512863066235986059529118077437060679883629642023459558052331580737948051754879294817683582059583656953866967088834041763545061133065182554408665483307626824786898548564224354976087231846657305675921386762918910069251240145598210315271014818649556429127812927753228567549917375762605129143321421697624125382905187673931561801725570045984534368621546685945294188535064495448127292818820110616905192800882333140089814215490063342970740686521911336433601187464536413470078981707794913600747917887045090015453181481919195151547948947995448152107804983291758261828374487401159746094863438514716698749546181129265900711808512813222170958010699754117637264452728913965218115091274733538825595092439182922481244618015917409561156035428248784268044849305823736247617894329002299250907087756739261753210214023981178819688173298447372087572909697168347105974891862676742794054413816695671364451881882258589588472951641198633219171166107750000914008733634507319155480146345925124781987093193927107181687152104048959447638933176348099926755901129495840302319664362074242851472221085817651228511237675094690519411811352719439407861193092692426573592119270496497642119762919562092868899341246803726943553274170296898290969518241851739038169417315356419836065789810433928234640262056679513081705764225791013922672526774041330708773306485066705855696032534084198744692761470602961642692280105718126271462352995775117418086369675653955688130651071089657743401611057733380495409404382880133220674830742633143301916065657809627909384590126865480555561817563546954353201706088367728927516091194163324541365497039322932997814476135598227220824591881953842454615784768486303529254316436889733821806569276929528677056846352427522654901001528265138425040295211348373637705131247562783806728621995348811195032213882747658624762376704671325063042413929749194946357957112854663836537046909568772568113441196918530199469025433328136197533918154924205782795857900417020249707489344785951424260436053586892970368192667184696852386584190291649119290734502864627500476448880687396121063897104902684301663254409961128773052087860190802647543193842843022667440548791135514803880858245416071271380680103608251089029540189661875520349259131493011728151356390235505268546657378052364238827819342315374330505217844652588283172424912217924110658731165331494100581581279100107070459084427259843788034543448781285177644920494514764537199122731198161914669088836081565681142235683236146090021914860652471888686024711696548075999630970290878746218402555054692907267834592478572023730770701590768506440027689741434969109000452390263079941973831170082895407085877361930437053068698798991181048595522075935677888309160924920765273798479850082397119548404584324536505429073226714209645147322658798661897452784974611687625820720581545966945593848209548138917132120816502548439760058641240976554193839465451656718545186073965622040262192997653673976386313765577128674286433742994876130054610527756879695304569897607431657981006637803552960201403676762315172062564058337146283279272560277521077911598715366266443294346201071056289781536203264476431042010076411538275916918633006750146737620876274506184185190463803956768356066213737938128334759005350767258668421372016572935799725779560655342863140757521437892242771200451597659019629278060816705388018512056593291635606400091433555743034289871228473412805129495256241145037609366275063398864910259750553853925865899032439693047577800447392450484473990512261686084706330836259768997634278315611613606219390305229826030083571791771018993568993559895644278310355643372965217619659309113992149297606944667846209543271994418535385579803774840559974509079707052239246355019852089326921996528970480705918838589449349545144327276067222409770155768945535889127599930878023815348479267442732900177705775463161396041315663470714517037277389471944727997635018943801216117429997694276363114303806685381905251758001340895600683684579535181486271142584737607764270136609928483997962182420197587027844915778269085080172134868921794720865754370668431891749318601836131537766121160148575513646948116503306939441273864846821634367377458239310364909021277141230668110326846965469021296114045076759565641848059042212224599700190151265563616252680801953183556156571140215252028237993085571249733377982489698694274170303367479017426338600929219260793593160385286386488581419341250954283571477674226303144991643235668879831628528092053026918903964715595891309537376999498091586195810078251697632097799818511694510679859555747857710757174609257906840210008894194774856107629144781812553085280875622635414281892057383305123624359659490098525184539324121931461903899526293645178420253231297047244372805157600288309888455145403340301333886931388522903861730208703925843724264328877013402194269793810289371819165520843478093900978492948800121577438455339951018031584001249178186419088225018610015496691314980383695166437324429413377138251030665527661997923356022539290335225397917523273437374999057312319709643757152798548111946862216832290229311205225674409678363048547999287099447749520212128171549990509018401544754640547931349539577625273181034918649787030507926203991668772161635152209340666766268801564829473518946821611771726537077638829271803424109640854230156890928956797876935931227121015551067742318491790438734285481147929569333213893992180593365182501161449969642060305269907880426313633941570631176174841591052221295745013386927298732244455320920991156539365818986382178402790707797492436734639169517570972928732082744566049238395403420489695637666966544950056705249204522808490633359471462083320910496176551324475596477713343720087451865236689364666270281789985397026524381056880140501813363388347040969637065275256658398430920522110285045916703532155988169756499809887102534396886685517738867966040680922829528560289773796393627871197387934296972973593808055363682919762774341015607557157735027107596900095268828104864145554722874059001650581336037989398704988159355850386074307929047363661916059267117720356979236022771010844608388637825578270525531992224796183976365023581084621657509953877857105998064949954191209895172808627557763552236781341609550295852117498913945039818725663022339821937165484888209726876422417728458000490039049705183237937776416138534754444819542294088850730951057787464777507432091837542945739765620096932739367609138176931686941910350052156735107897674200118248527016365416114496625982442406756992513781760261061619936763711653452742177847735977479122124640317252172607036383414214582152208607130896337904300911085894664708311048995078484121672841074935960268575031171756033389841348018234375653785411508898275248139685552576124400128616534406982052237215614888031657590741274856354416248058915609909299956472853766985750397526730217278721401739986902619304495790629392065651107180889273426282667594411793382919875077525347372976299701580071769652208372069768354966832373931002958430867877844157456939515378746167773528147790195172079672573587436438743480324806677847593692029586253720019278620864894242468936167900032594837524041232041486315765940152020302222404914776095058215802607205186526083274932228945200640421833309825624302544853815417967241615811750144414974712527376681323550143705649614448372716023852952802878200576656327682739469618606187909988839020707667623926936542435917130550127464264714033093336227490822553979855522783806311163574005161487248028037373450632917910878385768090043762132592095797617303126786270272275531929145140276203213882643849343564049177084577836601190872652868520413370823926611029026977007623293828035966729843675625173857890401237671702377042133627920124512909076344100119516837978368271796503599978213005254273506556439557004256805391920573871749102860753592885411451735027509848978688029616518445005314736023882352300316006312684125588207187096029544912186277711903301331932024396968779301249117726076387122613986286391052176127155405566763949028681636184492479947767166134104070176989665272389539841895110409011118010976269740220840246862018295979148525918600945201625492913479658248945804053080114901354886149015582009154166557430717162354738532414137089816255751394222470554500601730167520753879455906320222928385637538196952012823465304532403837082936555890634780124613583455480170603409931040957429579843033079470444366126806029916940317488079554870583975476322651962100750510727811125532960290401825678916979499422088589199319733375876999368214664755535662378675968952095274818758690327609328601359295877609933325270789400596403840232139960908814643584301017144167315672666889771871914694281656743193664729965305646664112595971034490825958267132420338371907211751753663870466996029781537063438375927446955484697020367633080193685144688836866596168244432281242077052716855151700127147645525218169411936939430127360769441809689352757192002702966913758054726425839643753423870271539910118686658451530585762050503041290604561221988097461462788222659177641535537899134922087327556654182435223845699343786077244843242159153605955280977527837506415807723996108731260158858858858628822404396936233732176219318488280740588139080984788812274298163491045130571969442554159331600156456419422759988604115129599114958129073880276794605831604860403973525528869460887936919329947643929917248573940187767724221921278763305251375256306346119417878714168314205699746350901119279836163262652951435106933998034163511994305943925948482492293035534724848377460200651231398470522409049933705201009540696397864004224487109174516480326673264902318240718067779685365272036708722648813582443653988565183191973974619345559539287041966708881700419620922337798314287369299421419023487072783198278471556152558486140670244547171885576675756396547412024956654034833406015394629836054110867772842357004203089415294217486951592542861049741725796177701625921267031755722053750211941500814430744441177933353233886531447788422134020303879464468921589599505970449886793774285512481112054958105682252389965788197549032497983613661684890348434384550346504899968678651035244079779935645202338891160338489535969646071613997297021529302805300550228549235516238327660707177451662673866718516961716790103580751347071117865492217984100808633822340187596198047525908160750949967571978754174365882357325765050558070011572182119656623682925531053652715275838633879512478583167570971291634032003373648422595383724149465443328837169710750265820209067753571023789131821367902296761626647696165013849011390477088383510603026292027115276639835653780292003688327009915641646598338165650107625652965514894589001936295125013515559490884575241144284446278695457100076169901465892457903868866326646614570081117972614696463329032311919831617826895998350887420858070454510812166084553476607961123158903072343849259000168765814756335211456510031817833153776502469945739577328921603849766224320726147388597458644950060793080418367671322895607114178990245591063011031933924412437626720743581447652602143685652424849341894714855757440339772546667179174055863788689409666855688499594352740345881996850346584574704321157200236702107503937959110646596385901378714090348557387628392170535679476369284856751228059391768924703964188792195804587687166934746405983927549286068834892753629171173316828735343347980046043805526236615720508588398268489476405906210440012789391695803241914745759686609647948214151911488601179957608518134620730079978179815195935036678389415693705170593564455256887118312120687588818298827437760464548391533964849478230732467315189885845482214174529037855358376354894085726527763954211327296537353017747930153235183188271036685323580499081078083480667672997234406708812453763520815177838768152139626176164702923444579333731270358293334905229790523298517467159834178789184164704428729794595857604026714665642905089907662190440748734412881675614493359769058368928608698641089358647233176600987491958948069611526425943056367743925600861481962401063328517837084803916676284707084959309319640697103665936137958580264706825590857286011864180543945127883799593426960262950100128409663776550718679238367908809163476045930740881668237762270071299641054230691327386812615140165698508755408225376798776551584777855605326149762122341367797685895060619744603034841319106931057179482262624613192503845791018097866897209725948178978755091213491022422010407598559826578985859859773648555105765051846771555696269218408808438225888834912144546935944756991241946294702405767790681240961368847825257362054703968642104497734788977520751336390671799880434172330879571036220865459541724420881370460943328580598217804998614148839607456843960183148250640374163080163440660742884141264771234372414911707082446851618416557132349028251714530895489439150672010806532308758050508727938444175234005672533915565517681303353473213759587336981255219152995329853957506286573855353536638531211882051150073798428046543275043995225377550511091281656255380285290205744428626294500716911752006879210899783078908486586023389863971060886813309994670724391628019398279571313405140075139388290622368756518643505526128753328288278694063931409983310714657855639035486220282202520214271763179889454952801736436496455506972775891650866067211519346681984942966077493228713440064061111266605662716697344853337058037255550581579033641526047985241203232831074730216488724120637784333164897756443122100780129551976368446261568748622779732702129180555310816963107661490872645814354937228437594125584249997013854918460695719000573537986041152442451475471471850731181442732540235986333640624222303813042340325262560938071776611538824590668116741105647274978517905268579553180408126873840975553018310563371972207553224095233292455026881974281734033823883134852643674184114247390950186354792710639242089735990703049476636501410542203424083026230273405381222548839813820098968346563735697155162006056204109359929151329760895648821307768079176446554526222018177358970637540906277426947743994989067228728360897106334666872776439317451322307643564816151563974758402367734722100652736561165320552235656471952820637071934514484612526193454635665963483270215072275328144860047209562495502738866280127546740758731234552391042817275905563053307802109942999157427229864698923537129502446275733815091596148092500660577148230824111386142851174948783290112577812708150808655362726448432200879151139845363976204665358656015263798201393549733033782756920582947828858299609230006452814891118684338779173162796857271154578890603877555876910398781443072522076795637457863224311361894985487402015397021275407745399481837497176327358018268373269313603320854486122281100645212641747625372201689448772378746439322955271600449210702292325591614478466149110878539841376329437000037416321379150078296319544868581447695164263855158559235949632703048933031619298910732396829905208898043140711294949762020749433419498100140641507849932558911111787807855106448835691034983427006853647224398103496794626141062586301237982343734330877453876640064927124373243526634548558011927989287794714211541340410081742714273102968129608673837404635232910992300075658197304558916396731849102058159198176367947473530463363530510751711490554986304977074688854416125180220168555614266197934159696085024862118017339781870983284160183789956463962208750743058053209103385722838430671135048851729122394408180016511959130532417672689813822034458454437039155334002947551728165457102886984213880893388130763982241247510310103270957502092468164709615935829565911305554820623276808700073550467915547948748613211156743261610600331398917600074285800699274608896202486466686043031512024994495502470328431654765903668104248632572457466835461999863984257604274276043991594087239164444352605083391222420950098004018507532894086016700925336676024113928766056049272917259512671411707661055056713956182384125376884779770891083241897625950095918650772258683956719543688304261243414545188402752961662445661232779431786620204440259681815065426522023840189788659022477763700964128277160109456851325506115482071483653103426290483751226926093815900442102341386593187263638322707467497440170515542076464922960188132606570445563933993973645837839335350514121717092092675609244970786297598173302313603544507517954918020964086156478085419815038926405957613026400600439918677266677058024950772894280751861884496796540605008702595425956025256205926561480653847323400060154614397341908080116117027166006593827836274022406716618895507181646605321803823269989708742537280693216791794589439147121412206557741259298233505700680064814002980226477593115126221705330588926904751280203260357945356242629146072570661318808416923584603042306522458494380520203838613851429546306951251609841480975862366387174977042517172506299472950575398838661551459345469765803814105217150911757015446020105348557981596101506532226835564867859236680566583188831013229818990909817281765625427344017363978736359604692520811909323674159171623487152672132103977081770214957126152373617827210028133736975789770405926255338391586787374163124737209286363853277475159067185255727457040594335421301536647922838998053314772670822343261155332693661100804850763522400755939011928655659247157912151057386548834173872697083124948194993689345118955340384356245699295578758135290231001043580850519507131579026746652113391017524373613449084195290986890471604271532702882418571941473543374645308212196496209231266607220272849373256307469225422435277932217960957609985847241138427431355009408021727964178097436203256930184112450645512745071064476137456706831252975075272813135042704060275494078248846421530758130930631465497814440500935338464806500253586589465848274159562489028919965460646338715823645477355084139741283701594305009839946822552760784205692669531992880284240398191112732411775150418731159719305345848964342647231421879104009368612821672956061830439808759124089213787674983739571630529920814326204701315315751221367067422864639193005281993979062796998592662764584402383420134769684953240132746623364180887143161903659832922970273816536583896191409536225422137131000629963720332723474665180170833052939746416100168585455785066153033077152627605859654401503290487902698029374533229581348423243276373063520396216482122122523485432181972689201279352499336477093383171904174079163240337602896224813476223189124591421858658912022645077961552783417380189442722641853238748801639550294308540768635818329444032207065906305924107349280205264568388237369709111220977119356459797318203125700203835666500284298583852538341492785332965173876251668906915504314313810603977601317728428652163470861545228076919055829290625726349255509866007224962165651042646284909945922586501453973416480817504738765471579827750993284252480742012968085489580701068021047754605305850948484738010255185105248127372398115085477486213639697420245841976020230226247833508618333336546126684010253773365854908665816967893626734547363647140019658702776745770323815526194934110449624459311013549582783168871650512730399334332406522582744785120208527197516260296723240552594867404668517304159938442535061795489767111722994285059190076431073779228163059275175321811484922513129822731766574259058769598694673954640654741105448768646696390954799695042693161061291857318798479182321815034075751934833942667849706470812965304797232677740358573726855274371403840545447423625100409272802575327303861383906083864096486526692708644305054034652175818823346826584175451156418367676491704886840363151984356930996959318775491735907617157976829428327261971557104381852111779630457295461926896253383330593079764470917844178089471210937152272827996629950680733987827049976034192373583448541810465363197664005289501501710238092377300557492174731768409791390427690249308838701611507833433707838310517569998601448121286750448813279285189367120413621802024794913988912839598400062256393562504875185593113848732941123778698734549069194670085792302938196886090409445127323531302024448583274099196750936268994767984247942463464375194481509692230419009198951925780226013719949214561317510488814564737467895663866655081714987451560486386554152230992022216830093335955165709078780608562531522835405776261427554120313782745971585719571424274083195211752063633958635508251215413189888236468757042088968721515641237165889049807621350889106140566014367760251329410284583659637806247913696875579389239536430053176928924559670026626550163650028700968843098058984443533238715184831121694546448116285168184726611813074936019795026802606129331502072094604418173751755738486845376638422147338787005166601714059582509715905357083933538113635141505925791990719061786478863665479562956632996434745028486279019819057099858308193347104160741112013903904611368169809507881347261916933758238162032456293936804801088318016293884156819253370377898978122447558581709786643604561526656514040099923515048246288745263150412540421480019533979308895984456342916724930243092307476938599670869037250606551417595696478478086913903619567588004343284196765343413275072670057377011912491695367206119956461688914634480170431340249255872932011621646562952709714118437845883382184543952386612147251106070745923569069686460191189750445498177150491327025541133950025179534197448631776365877998291733402130543524458944288050706135649979445413950361751508403018032564891027936999511364352490943519230216419578449992229393015888361563411103569222176842925600655430574511244010407599130914851567844183150342070874348156937941527578403757166331323756230608970335829829547283238202472164550567565538373197546388095434231009534729950245846383559650801561894040937523706609900462884690647462855473134173774978266638071058062129056030629236721912821582269369695528982848299475854473131248241488984657623180077998591714018372176865998664028050922183686964657165214359763479726926071431247287885992785267139354425030139884778949890229049816995065223003787747818387647973026240216083425020125799251324694563389205093146437726961762306424622745054666656613669622980280637158444520658776874254441757632066592738789502718328240621173034731318130840640272009663832412867008051769416521286270730090050641695651063533521752851453535155167627086500528042684726650232977615768547859651916935349170589396544755952960596801648719546022556693823839071780110186410968176603985575044023444019578538633274169107364620424790180862014039024484965127537890647612141510531211267824918324347272617780546527365951479223941283292123015169583173969369054787190514144481664450363449701580734567639476960843443569011667549333766037319316358671259423256278165718466214449127155953595815157871459657963907937101039481845590237164687121726154787819532291456379058356110043347949056615831444491150987498879837058922491435577468080515826741400752394464423212126592018749246766282136212283746585170063158426799364037029798407875841247306087581005098208919304030503522529603236073662297286778732526724472214810765748013479849149862192614345691089793350413753123370198366769178036269576021153207765640022588404247708702709284264061459171854570515783792712742061721888785531879424182825326159493880449124722563435645415302397895473459632834982706222754769917098786929808397826830277850388139734052680474145392613026151378001029516166378861095594822996389373651497525521662453158275138401153581940927474144449983448922282447445401669906641028330843070878476131140681928588969202355870548558536231737426492270398251612969354022388919837705140185154622518821514258202716750430726117227845569595060899629627596158136093761935666828481662093152039748610357771095652823967559258081580368823415050061734738983367947571565334669350675031027776338716112873725674653091136273403180994935834580364171865608296188942827129670399150498971894752699216374272258869974299264904015155757189466254115793591072119020240725742472461912805510095533546448368922607290958427906650049700969665417478522994765541970924425462052228817970448521642768227252676825117016269256459125756430389720820035948750447607745483020697900174119077460955698618460696820202589233778936536686042761920036687776521030643031119276219942609116901646964763646867807321944031999864827165856800330601454725734054613022469130373851256420242672432495768981653291193962196499598680517979817270155124556312749284687927025115847117470181020134771697563519835165081539629100857349191473972470251692932759316092107874369068980698464043166527932434526754057789143311331559204783437877349440902197700380982505110222599885666672587375265203172472298761390352052549929346633092626837465844993694218572961643093854009326650842436268115878743176253982487513540110931047700724777745499210695552334144624270148168336801640860037688314139455225206908556724863678261360922585698997896794418068436114882628814189875980325479893394603485919219053924806192125404697531528483445403829468072974720782369261565214081053717067488653114531192304488183210257936045606766554059266708395316294557973403885031808203521152356602605108248685245646916748727215708538262676788355888212238701130200407363461844035255884863125167216922386633622720467815980299312731200956485414953280936163712756162791900903918403586564974074931235241316088937291433139081760621938236170711329840786615153789631339082619411865308000438011911938377376397621093207119835965009616705770416012227471297759818204642015405593077877299963895858438061057775783305646869717339307673289716235447354931986858800001672090076258058406775659141320707289589384097017596935759170977081299816993279213943153860769262355305993806070477174995418089150066675329712630506824992817495131130693166168067952950725969439717172759148792648114383497620143947323786248082958273061489075349603857184553066662263877132683598211900774964239449004910892604363563219979400711884623572532267569711718858860670165652355726555916958097044023569161388532395882927893454185112839691676943296905948155740863428755279103532670448462704987377181270578707238680352512869584161233228945989754035910945157770330143166089682333707842126464449948921056128482657320668996644230933774931168036914723920318397896511252424883823293417870672905748522892844321992700367313203932192795687070281860210647870770748608214529259370508745887360931445807237448721392904456043029344586837469262088868335445408106081234957162499277641508049136328429068113832255545973514762035610667769357674894760185839791240243147402018134100704618888421872733849590387969995779362394336025669938021714546432698682114347069357419081789462743055603634999530384758742356767590560779747208395669461784627036678451450808955959808233428379269009021436257257583089927802786382269286539344125070783729441864304896833363159410580010535827835043465096813355245104402122510778730414982818621118818480224961654457224403813007413562870693127485777498748520729965423430361080480797587590564033409212475670759508565516761749151118490645416638347002084120056037210034757316266770799054889874733132433610514571538582488481632012476184491906474247342699756515876381975926345553663034031971661577473080894821998184200230169303648365549182579098416424645246061186156922144782598781520127973521295369480015098814523888395710094217737092580747831203519651825415404357879148503140612426869019174116479469426854966697885540523762674632968450985768170418039705161922038514218945209638499672967951640403153000269560043556197947249569958002943892174129986062819893673205203670109671287515852938205423676165873491403594738058043695632698203277728708894945882388176743542391802358109228839870809040964916400932970983650234147614466956380178792617342417963732523004860401394295403314089549159762722978881926948511118390264461453144526151374230640995006710244181149231096414950235342703127913999928346720712172060278443458868461150008715711728437805827894920493978923925761890931963290386327404445492603414482475639440501519715272718685853328792753101388443540406433453154375495720495209643283706898765552369819571040697607412237981089001466446700276982971234528232728430695874815603861705531258571361879018398773558696208232609772965030184002459026946817359063894916541760641298348990908609765633300615847309040016775426306576952296233875189528004277119802618463677863583912212634318178175563736848104826979094880489347224341853834104733288966247558918845677758992564334135494823650664194002617352093928584953831625354709632694494000860063486180517702298152850908437158833878567509559079971751387481937770306071712520162285245376441311709302873438440529499260412688882472087714520447799726694525550163333122956205623681348987169419863617768199099477841341822618048841162566016858108793705692816266009605410459843669118369521173629331693837791894861174099828423840596058257662971095840619905226834194972693498636116110957723144970469489856218505358787597567008763683203615007509811637691554117516524277431998381938825962290310821085440928284072670701147859385858592702355216484686209588574466103444886496619877984159493430995775294597834564509117244652182352531244462474788290963839060343069553060345128780756595430527097473327494215197502057044818007149493580228841260247311440353558309271813340171409405375263374841255835375645713954513366881035153253509742483329898961364095360425495372823900955121726032965480481835968899775485316294181566776160416228091930773070616849402494672950114260593504919168080991292700560786933355843975828350455970811493600943968651799331186327168217416445511735938984455217449261595322011718675711277743688038256966725119826349526330342471943180945123368927031766143456152805354202871199475167609145003675395557510560127138332449475080970924658238988409223153823076003414035994334853514006462600883992941293901289737795439376908498422154971337597061628282116731808837685686632699472372236313905368923764171262459262021954746629227397793730823999023432461798221405219754390401297013636246879931472073324600160203826048998083288067154834055601139501852236736732800958646651031173237784685012696000459884401417847128906762223048417708974513043865366598090790642705381687395348292442975374840563794681069305227457322582790062001079578977044037992595793194418005268871365183507434620772085840325775081180225028158575341413502005730598276896498361125414096803728729440753998566098969932029991329130752260027560516682265478421873506684336937042792301522489406338443946841496156668124351405364658966725313634181039868191886218569006272058498822568064083129580425099859120774924591951578037237559178254801627142646638043946204788389751335143052090078256279173785103078922708164924008905218160137590388248871948265775362333900132727768706615568318752424439294139874160238410323425069075258171389849663644000916062078012712766937992688586334675121243767102792030284467017749694136464749005180103637497463733877912685159250778944818823108302601483211493146878463630421152282111062546811874534524859591489901727715910074088741316353076229506181390112712753138650823417962642198537025706251525906653361178595613609092955824762398891358501437797824591986353305499820921979266470279395265984619283459442911624367201435288896645027662216493208246587653610497491201659098683930418571134859853843089207576051548624985411644735579888695587654524500095971323892489641624210209820176536486320659540403916280860798448818204310658077054824007039219578317816973266505268371324989555466126832522723952580920440215010813805188309574380020377219256356192423420278454235889066001170848201545346481483422723052094180450882179403368441509615097466601485956504902671592088541210747358165754240279748410978728197169663890944856511221950611550322941048567451866010180880435334552257275765447106072384041521192317702741240738409958199598669983239227892358066451841586373913678239115545978696105400101695780066911590447743579973313609257088984468294512538276149852161848427767035703312505510139461871931040570302892907777230223468235163765632716508746045555794943850500310883104491381376093868341920630739419135530052877977793273843036537902905204607090258643936053886723596049810173580774911616033892409748087439929379984711220559522306823599878064217224677880893439370883163244724574109187774315467939714639155144576039647330120726714512162968677532524244198869138824807418437125186441876061136611846766994552973225149486347240396966594712936508423032323137379579407515947649150161603135533156600753141844251634865228891812761155959820207902537036706289477948268951303938829681580591032477928975577408264307578144001574555095466094795248332209077020139764733936445296296360804477341506722254373824765365936140473352396643075133105975918452232785607565607537205007447666139320533748783745587361371594950566819560862447008716532015312104801990593136959235652410204562047509628731371203843447286425026452261489567611394333483768113476789100010163712918642522995956293269391667214409977501739006850340542870068089491005521130106211958823539500900820147410263515544812273877289062177862512059600926686900859604642972407253217105417372302672302278277523324858642135610683614937494661251546188593047928891069010604660552220892167661344908095257878252920319826353344813158700396691174504604235594542769277224255858443718798385140150060221566326202165236300556806102790006920542377266221738353569060321704418318595486129848300605831819496832342396988724530621068574782527630191046060549845625963277355702418305337645148192770355548713537531654238571960768071477955236534545425252201556923530714950306117350530293398085326596352124283736679837349240542736359775922879086347196078552021968779539617603137883730325175968933227504097480591142868954746200706051973495341109533733849817626419462088285639381400774425574990502090317696539317489896114886357319254342673730388300288757727236321044303008527888560602573161755051628730336751707406977941020195622587325438464020897499972086744551590649931419284674721183064298973216249102407146534802295323677265025136668831280252659617293930148837201457655752697469331167812869732548098947425803915584756565873310607498609827396628328028494687645571204626843106720938490164663278865481871639890344980042106163949219659556500761754964236270550084062249513640931372188932354844746478359416917217547405841147926992593220116068675071749873170781877302308936072312219149817510990125894950625815886608613137200730467054280090649159491312251793389020638986861436898083255013643736223375165315181771403582045059991744694672892959613882431799734861938791740017777986088999357336342078345514001145678765629137590302600855456426881628237535357423678778656051418515785478170605933999994475272293633462525845844502290646680270856493077529248738132334632373791256522428140767490690620132232591553136770659180913894033941403986309818483592659797077784694348731760105428833192071226715487671083260860429419166640581393057267684056761970507738375158921342535998765847498207623778979650886658372180767501416955276117161039665543927390006045454640833790763052456598302225232951001458727389607092516865354183132624944181707798281607463942502709620646168521063328977411919059430957584532505578672362437781133575005940208225815681579632801881032713830669458544803842503723614648759141535335947910386453339876234941764961742480622262692909050804592725028991700243942342813684491371449099546092984425501806803498217679719710804774358033482509415922256016332258158445402113483225600598788828083109201346963800104423312985614507824388382956745153463723101110086018684950042909830845844850010126418327001683309957469489207682377557341503449679341941743328136585896948762696310286669649348694448416462406140751620177605784077385209282608143033152036515471826072492812881571727158376437987495265748456609409312280009875491369615187489678107194696068074112213478806855252741392837518896033925057115360844434409809697323936237780248796178344508457276193314514829319699338883581228051172042331901848051495942959457803658646062848767814927641804190946682041952075554054725032875565995627266452103429512707170194216774307429466953697461837181124971461094214716161464407860392204668932347694523811476271328903216269555787771521963190388879610036472915336853920802193077095899469543977903009751075925330178727680250930313017701945989503116938993600211439930684441024919292962562109336474760471515414499543349262950089831946437753286305179324736659309575752872019429308277915494005451496591035716246411927947365680202637375880327960505745980592749218206170061769205357010985804141131497106564346960192846154874811400066623990960237004249352340728917331308787874389170590929120195009021801304169840397697455445370750632797738841800814673841201411185650056545622979460737190375165876625119191940946091080897075753005470570004271551744691582864511918979304179021403701625646731069477009929153823514748915349203876492459653718699886154653802404239641721336553012442071196723070123158067841652247124238226144713693740004252882572047914067610064032945907454255520541316004957857070585215403512587511565877941293341702333550214639477737333956562326745460283657734114612858491751568220791285322273208988744448620480083913785375441641299580698986354697879876931179936839036040920276313447443004638773473101321254100595251405537016481563491879100936413797508549935041321064714513571310789622433666547430118267283501256427281592036980370160330250792317047299505258701638619303307860852441137236836931017745138412851011897067103521939602258472898888304080178007245016689268856824832147580838200113092942377539575350272953566470009468361964018517971912003151928199136336075111248957849357269619608412994932952112875577582349107465059270815251930608995421490392504858377815784873408988095580113269981046675782602976604340166916269013412886616061686733396657197470892000507845415581561497889207991321980399341721969698151528344568696652395568287557679698741294295588486422332666070348195024618029746192442562523006049052924248426360058762407262006250431951740754155994907890097194799157037483885489822235149424754303875512090565107708298077510560452982895372325311247014835152539886383600468017737118211418396762659467703645160872007763632175363288790412711375032906978657221842843294415179126787370314248761231436796932591927046570760718468367333099114948823144149585725086945595284988519989168349765704417616263984852069569784539449311211769681263784199448596357812773716327766139846376079738927761881480930640583214206580033813278301620380111869164519200810852282534008792883448814040555333708018614566122219635092453237525611280997337938612655845734587677096658168948941953062996971542849289897411544923790382774539529021816987601672575588724819646473930498711254843120854729973539384224659391669686980454509630387709716859955980635143211113032674908668135839702980314249364924684060053682650299307852037298197337349446851891965855621912201966682590284193909684919341881016563622123090188737433814650591093127020259518556568603590801063964575721908207192965229546886008705435953038923375758274013775693362197837185427337846864479818321722515013576115208103286777281874431550614129875596351002974049958051062560598330795095538581691805121772807540523790434388996275272031839851829037724841545039149765677135176039304145608407128514590418690867617795117738511665309209089402380621446550715642055905986173461886596678691313181614834993536661952507826794327279232767147714673242573869122147896329609991886701911966989572393642141657658002355285178528588155157640394292584940333465899241224980769933216124787548103694170326447491028293577157211710231234817097958954443287133938599441802380621930874456536113226747556087690533214706367369559501005567253044548495617806100153729317946570401346200531205550957365107276477036923711217288910277589788133588308905368980089168420161005159092541421032973009397929618585870284926168990560928304600416412570648388956776533450780880963109941373390855646644744814863189171977635738164899874177859683520964013876132655021540234355613616837128442850134289982163781158916834320955534344527260769109751044757923783834589668053211836544977372902116764963798899300589427050488963161428534987832652159305366772139840501029543709582598696090660130494237262145336733313291734830199275289560000932427391248749152822413068431916745494686074344995417421880323288969821373363200936932074601192014681839442865825378257031951438633408179507803511270675666480474057836045088392216707736053030384312830925784744089449996602369547056335997812376115398636288095338228483089210976648078185651752478242622769850175557936257124405697496822140709512742638889857172546988393109193843956381846187501678066468862362511418977252564048607398985287278713362657465313527205405751556469154921573815519850336884606827942116605750108622490900692355461495472178403585848519732792253253673432990678800687528055486478407289539849987435120216231053471568280412555932047823236159116750209826873682499090909202160339391378699951825686065722501970986985519822151639131953996142740149991036122877276164756162815438888705805884533570632815025470181223705118940192278829602372852293037130475379043038353245716838470763780886848235206710731802034944624318132893356995955037292828714300716983135355160104630603593496696633726456295466745294103410700444241771270441789192170796578844528756300984359034940167973232421649145526844731185883816714158687782933774851114966489249246967530946043483584585410837997373828457042681016772132803177576023062226983398748528710008380210893476691641598096662180744060265919978419345939718915378034670927773914489888909771407380407776340378150075232358095891936419977005293755137672880481059235988392499447061643007958691783127954726394137791741905892470698702969361762785579334005845398316133590563567074443175281917102039184074046917677529182572369728064131021590973028637742753614832259913641703230448922060423515203633219468788751130569383676315421947517299731580334989073839538858311082309071388934472133424788619954066495632164015167768552067391756558990227991495749921966467875035533498562417470949588031728226874301977632062818840714856478703748767597941052140780828748420636523498739515057389513488380311616205743620004068989196519351004970134056333092931496412292742204991340603380629053239232002600862596210382542214191165739465130200829005070817188544986176136155929801106815750881731154844186865707347358737993574914403172212470659701485872160352659037257900285990758163235143938162485136700586332234858836710575582277349456815287988162803705615375706960823880209361587988438292996716803960932624871179024246125213486662692103088330429765876576936402867420380043632293811499897218876648231967780853598429581476260442619381859871876555117236642325983147432038490141581788122865686883809731626966210513945245957257083398505539046697281424614870251160530537878051775247489260493947779260046852357749526739272016760243084103191880305478653759033755240020954135404045988434462355880933592272123408003767419515017315950199655590166413213844359285994643494502054383850016033304369507681502492293557315901508879846023697846067535569423595894491739877549712880726400063557349996270858308055587345249644705806021255181542500857375507223734793980441815391147207160115518044730817911651196277603023340033099807886736285606292073700017780466074855002777977440381472524724513068770419670512718156200491926433073936371553679192572444097768595686141098087095263813807233670146984028677419059673879472697555569797661845752955411245305736020120236435161932805570247652547129445271988815741722218776508788016444470040656470013153867801285530643570833648745904405483038690624011754820694932695349305518828717939454315722884713743180386613655788149118115595141677998819148149898372725838322971545520286420580128192355823500097973622167299753977829045308711386368932662054327453128540420786900249277550294342764709004352922019739823312959220950254377746925682233678769892336922404777288371216883894495795020698782735766732477170499009590140703716930321533547098470415442801735451813845846416265025515395318289555188223099984898316964135603949426895242981706307413209893395905809244703840202229364259587529796840802533486767492967221058433501337422275403139197256893166561906303537217390439682880395229721110690213553699798285931453060259073530046338275028711432602352600890618058159071133874582648466082313453573684568072689808456195094576261296414333296676593922426269528802331320394553425529696325111860260340998978909682280341016243335150398894629616389578424451154134036026902655597067207624449288183748967900603691512900212141944893844110334161434219588628106957924384843059977573206995749188785997850223049178475557921927005963532124208313289928112601320731527882965049559304940804662293965630324478310257826415039332384870315172672781035144460555192384409605754676465408405849700629740239255903662780440890062813097344307586933033560913266710694197439855366135778097312910355913930396032049568800665702541055853996471359749326425089258968672009995265996102646822021594715337271815712525714952430672763372151240628844402226165800313312627890399672806601646927250155490461556534551798301052145325574132825505131096929983471661383096218502491128780775761407457415703273049659545497323064324115400149066617509562084313871662978771396380756068818931143251384575541297899332865134404543545065570627880266885804713394470150723162220287458631800192050199311556226265717449076129065557154581726984927758076739346673793102623602850136835920847006290506772876636203902440383880986000403661730387405868929875102402768304777513898104185550335405640412508133383825108736629233634284282323331350866057027628978143858865336777504037325304639901071876295786728054541150502295567589025099367689398229471883100730003835746191564694882060406017699057591038776017474625844913116639451138460000902510520609057452306843168734212799974870720886162767985318157929203588884423120604878195047874935303172034329158520167417054257003712272350336063894122373070085088981482584862250627802807305871925337359983770246043363608501561668133436363830211510876678196007330921313808744795588543481561047853156942167633565184187426930150862118111934872916600584733488377136194876065522743884823426885906290422385271639885157314027431680678904108445902863953202561964773244069757272539538456583626728724056787997159945345449656517557383544484654665581660334964354594498988611719810333932920004049238320183508085251368620340481663908835763585335050690195027904235401889053695749855753243466450190512085117596699080223032245766380616026257301676109116985746797776317449604684835352205815500495056464188173993777811258016402104840638446416231137240429372230814678570032629334304762293515190086755998353987560788620678815747841088548568040221741896145105297260986518265388340771960716547292017378292267942616038854120808195109243734421105289750962496607379216480533276499887368956520454216079377233392156014927451791855622106953798575323429431763884543618363827364687774268823870172773992607853370692114813732425234786518536646945947266957744237750863412035473942054274988668987275681677657236529599812188065952968015960778804792107120111185703344011050990382744870668882123888760683822492389329790534758113094340669675153981750462070096651632896527177354958786716301431459446846170688892731383641242303421165212862453285882639078143068204548436379554447145328530908619404984005651845485895955400971068955291233482399784490544884988580668662339097005700598402444830853226984025671397319366197113241513026286530841893370535819101503802236828615287558339680343828033501060434593147933167379177949354082478436466133696604354945335082129649551988982330471326258737314165654302964652471232417575553559735052362228190752806909150791262678472423080133823742970136371002481147813521167832805940614954729808637453368265574906968412262346161122906962825589089681098673038826132730761272157346667343966129343458499741695825785331044348500149943843047297799455552913641210602637167793215884986038545884170253462557249887436782967364355768464673850830226789450286604113832710060458717332765869243350644634175187228314296177595815136605347644164178010626744407082205496369640233205804987659738046329730904376804459779037324873676272243301648793159273395620670522873410980881621162583163988737300294158190960249254966592148896270804939273054624308990476164708537984710834679221435570815837870488366463051096507120152103378331685908364215859360284252777834644877947627572868008665465640673948711541493340273601197324165904670407432344636771347719300096827472393696067124103774428712838986834844553526558937418786335372013069163307900111894658251125728918603801622189071737274948768126251245936068600532336959211039785432975690402615631041289376797836562121472821035581847507500659013381056813992622367141509414712883775702698272723431259565414800264730001542176372885386844340581324509688283832919944852539182801814152222247087886911013041274823668295916655641391517138681850012143211417654088647266052260633251352738678437615438181661601840621695327851196814728055374836146139384121022472702594016871717679698596422179000554894402132937305392916435767031175441779959274264173204645217909917196313577439942164189521981002933433660054256084846719619051218993605631301931986050636261905223296897751868223388969488207098406940413806287210883028849572038039608457451243003912992178487708891878580189857087100720744818846267072771420556648938998628553050361074351075425321767903641465508708858281460490093298335261586237762089569520613419256505188033464098070085026189760682196481831670698990680820106671528741496782656338693350278349871781790139755944744354408094216798953596584068759515596320820633858527889516900600511658403186902063109785858296931838124834937368556767393019792551341882711677970255598530783501363991971920804946977834892809439981656082965467344774629566910701520620760308270964196371148186860688886180071984293525063720872962013711797094187232053082096522928092853028889819899160479081597665464596842195076281916846207489069912107880268860250437110494870307677945036930410490172834705616127630663290550925360611857168486382526482086080718852240234811577836774282497170806071434005034756897619802683758154808305360613227677413459703273646294055203971540242843100666923441144196217070212025208661063164875709549292079840682926602672981591571056132636164856510044849523177029435033104445315834564768334910646451866166021917985501048045252525753429441693481842155096583883378576555787650511281603152750560893998161384234315510755111873941303802487864930505240175531042564704499232888880280561776289487179860328016503596289985835232798613784181303561844169735659627611624760298204851861354439569527428779830015404477450910779879000441942349135620502984788521323539139428031883263651731975066223709726719061826959166301486911652641749296348257973081001263399167003324265796071865724005612122634671338211571077553106050588146713626321662881997319888794597879852678218011416853585622654489244700205693588556180692150619314422759424279757158630573851817810956895822250105891734015379188472939727131240742472219678494715402280552563118250224748294889744490783402293727655400839277557572638580194687540300612728766834587836471805528170756495372254814136480744729818823392346809841946033536058077137271600445413663687068325053663104964844602638697468791118515289026440238307542832781442638146188149813131989178189505408362213529382925514281038846390980206825098829519762931657539050085798785188261851216213587824117761724459154951394578363950870985612299546093005083911415604736267280182492229982282820043665618924823289008905125388492849761146809402767047231903537817722174395831136359042758685372617241118182810600308986718603702306802136227977688585413017332568275731760916630671410791775842974898077466346332298358343462013389553412626531175399238743768613690536080231337765147477799206952957924291119778001782619619741250108081178813746520061219820215968042952940400032898745697671660656149374182148582114979702738942939679750613207358605592089337516338044614929657624618557175805787413011992312884050459452508739751361541522103765227052159771253545195515607180483758580773488729095000892756997571776396753081529314758172930458732293034815908136188061268892315999833327020338974189654564469775518440306536567353172737518531682828318417695902885461148476574708665857195121258051372806645079677315819608522510397082805017050804712723164607504282224425053399805923274875080282105960056068736173399558199967625679347318656489130141695880779724237968384031603825236714143096897129304544673774867286545874637373823465949927448591357400406885817585313594320025108752088408392718269667671218695324968346936396595288284445113757270347416184277703268636953925507289934911476571597972579916169913921190955432571502525792440673648959410399768710890837538575687249996916194511836162398897283441961265297498459301086720999595385033514467300143942664536735888021897221819170380348034282994279595348453666859347387596418787941973452511206941677430071515323879083205433226033265534018614968028897371446911937208171646221509686873142658741425027924141246525395927073792239993289567200475521783908387004119000512005381404021859107483583411618324124362043171110159134327943691668040916784553403796367879671141415689163275727675789569693922735779857419138041709659321304123081047282220746291042038169755945457007612372492630613123355162387041663054444839835143412181461140570110977264344281828009189777785396263650558582457319398684817714439481600005017795539531628743948986448280966902910833983578061559251335809546342807032706513037106370752789987795788010665693775504601207407163329475467851592235302663321514754204513381234207644258748359666182714384694669327811407111206151688458751919645402028068036267140467503607598095642661124524064811539572373534185210661880106054029264948864623571671269020051048760781998227532593273545774338694372526776222453510974834449864163378213957804830790333931246416446449977787223671240203139470823424971537379028426411226558141272131289743646491415700854362633470488971154029884936525207298534412282489224493660502170114884183938824094470769974945973093872735569094541744080857972716854401269135489559337593962677617270155038275188644634605877307600329304974449230178993177740594842081554728952657045327677614674419562599900774115016961053386467167990462744481608666171665515388067670523611077713974662331095167435022289873206597222547828777528232854518433554386066521432788640241212888356073261945389625500472761407970222895289414167270156160353515856551044297658023222673053356483657635107168198664350304297509653427780756666835134521591232962426882925951048881217034112411900910303375831187213116059954968209458196634641293321265967046613029308554802414288073437200607142345928987615036265422806285767115135697707205255868825035017128157589377015993494319498582247697952823747740950801266541172169684946971803514508136429442465178821406582081519173870278255904599601144460728860678453617412640272410559452257794455939774213661164332344906213248147131936047952021603229507420981638026534387380762104646473738314644288227343600528767661700004415794568752177336880286683177640192266626504462094577719087067682371414474287341699727616377276878663364224553725242611339395095804060065962671161952991865769568790592408048094415441011169904854045082587946952651866235083805922241828649717780251849571554624451118187628489622132436229122169003511977743413444351108454541586265657807159137906232990854499547733508824849942291784982337429935347750642160354680066987087566144566497001051144677405608683792077717328220281161108158856344745572535295616097765675340040594242957605567559251569715047317553072048025319063572839168622481654400837563538517168074766244227907206778053046191791499023425376368675884595899739561664256402936128751386110581759692414596243111115400508964826089623427246270900285968329152430174780178856889693132239174056718879685640992835051902496743957862738404115285029556020289560584657116706334466875435375396331541887603216993913110165010509696734612786745902119969373541625614712612358783120555767186770929202149630632739052615157264009675452225539893230459623772731378152287915336341589619574218158616062308044988487353733872867290280883213907492339954319042875169511434147837389431846093146534357967704601954975639261630772244730983407176015446573745969554559009347767323444354176237386281277986814706093657424114356098215625043126371088344512603615453722214135797823061061981336436158076069800182418490018056803057011508654382062079591956598698977232664996526201573893009861081729047319783446243974735732557661105063762200139793920494627735965676639367468660786899075776439060102125757926695615830235070622376706232795483475568973921979961052686460305829657335278967219283942413624923378534089495734986334135692670799287402758000155974587846326892049646103169038044537848346727436553496426779883519243882253584545082821291539870697391432384926128678443220124603694208088775993289382132786593234799179572994810687057622933332933951152639506171644115917572995497750622862142256635069537297522122079005859996116281479666878227194376141756329509160647704504450634728846510786763868473804483061984120483314861467014771764079495022711712194429973671303047517863391560624103255871340784591894864465578001406397072198243205246393204270035326117745916996838621730679278600319597815931683347975619616653205072425854059996559834097405759448243423760330423859089483233295618649930766611889299620117861316649397539193670395415152520331978171041541376804090730779011700980322610000096461521529466529895945940840041067120416396369613172853914351219264004415219277011689069759879084750174604297662052773583548639319464891611964543980544419733766676533088823204665668401777414291498130629498791563186941561785646132105473069281382736806839748634568998921212573794938828546375464886849103824101434402392567758085741181339643296480623976972616588513832812822184469117409246760449152033861285990311510972841434639931180457410253406841827476579090871523147929390277271061467670327957154921436823691220970884442120881790027529193182910121144073908134757781684070118819802819807437209015833152536135192664645478156383854321625044662414257333101880546380935518433077409064685013598978583267934174577035461629137430081869578318793311355681984680798162949255476044355091410988656472660614893219507897850279620542914320088247834611952262413085419870258915451054495840588485768734268892497129070753426466771851545339106502159076015658284898195798137275711954988418481275533545381394998874026229160742811246081987029828019803846946633803363898732554983472153566141833234650993613211522631521724235730639471378021372032172178841740978744005118881074112352857538761163718204560083549808497335384649288139505614214957700450983822482732436956628092762839311350181940131593304352169945545203488415171242912715660120235414373764401992029049497030196161910882834618089332642061737345430624964178418351288486450320699279894094002202961644776171145597216370255851186513838776344955072560386961099099731353140705111589213589523094712123720217575943077491852636325790698054419508536081863083437887658753679801255265638302436935293158667183703258318508684480400587411426968017369220011133096396570140207070327969732772975868792968195147031500451482528390782747510613149108857296639047878936572715071137201513719001952610709802948335671826770716247600796736159250764662543389086873591770943016790033113241680366198660668028477202846912573097300927325841758018021716102326265315094470626696790156437087557918718456499460929453674635257436563668153835275529325896678318584661488093163689815551532259995352479208023115193336049327115674041378935896598502360975951416754761649700013432605874560732270175836849251736967845305747462143573465190874985518162765612520450447845238099290698104345315904176972664708191109888468351091792889720628503529026687467089423674896588060289841885615488359663269512770824611268751842030934654501859177634434322563537021681923381255525727147159705443278491217965807367721134776162489092134242238382009497635547692078572069887203326057769815874478195027010306446058121999855053331902142620485839090120230094654250862921500434558989380910490698187317450434621377552916904175730201709427381001959625858539395006045218931862366596898357911827525545494457605941508749321701918290667086242746925451474759722942157288608064574118156171491003721292843099561537459046408779755576469084687535368330061064003320199249819712880721881620317775339311035296592633750882289453110553558744253528098271617990298313398784171759323298890835427231716417735655405319355640416587640775444410138711620477321523923776380121761801035179565192110061921913977066962797225711381240299371352927392431259256603512048921744441278423961312147939989372417304737829350692011171372290703425576790357649329676527612576190688843164680904050432365296477889015585854635389913973465922628278119936570992903043399964479965211937275628008626351437999712777342249667934496952725131262343606250717911141835562345507876136924375745949541585434823845317347697418926311735610292477386690028583210470852302985717464903422900542827019753453077896177911894004504589364966617353829062701021371335294776254311863777280087196351882628417468423659255529559632522759724710044308209951748224199870669707507065995427057411006812923395296686455609816319951276637511394821897064481740885029112034001843817088612224472161772297705214976782214934481497234786413075256779328925566536550075596818689249773678368206370056763858193205138681792720312675095262748728684365557272413957188036637790125022278966549032501748657374825063217435674929696097248659696949300813640318983723435462927561553217472806482478418474151642914419653020470662033402392257930079511553512850395941247911243987452690002474811648702518862674249247724792330347112733846726173675899911200843409032342984180156077446668114801401394586534743584976274883617215755618313535076391430521888317232030526100669223448837951736812036780655729583071104728890778333804832192068560948033713617245740163596939681862907606885369451521963943643600019203541987296654943137434429242451621446702012636548246513824053561472395234106655717305081734082710633694387899811938318001716001899084232755079081974515967001871964439943488313308496604878768371537096910645982740092219082180191983473625858323253295714174453964158602997885567576804166457858766476316608421038779993302410854995008055605361991447868503252228543111372506629386998717717686057363394495527079784327997087436111198335714160095247634070875369418522145466634926137426350819444826904749020747766657262834901890029758718646137901371520370421441110447024567306520175978312659180927974887811518445171717294415078925243185723914400383984467213018030324094973690088839013905907789606635383707973461572526534402378227152037258898220341274645863016152112100380752230398445620486439376259795400165735530901501266796304506341380395473131932965030026038960665891498553537952279764662288276445609913603864745869730198631100772436250877349805350745602650064805181320127982318763672327828472367335341476748824614203764171332382726949157102897098210851584084324461277959656249831659803267853143102491292513467268501501637197712064508828068035120628302871741829474314528046364748402622296066844099453547857611553164411201552107936256625724986233483113489817848409852345837426006202092363264256296288259759486072163327714082319100222484276613573790506154745902484239621207431981440187758421941125761276925316247394993960670442029277153346906458373556703334502004188315258321044354896426753970411965085018807270672902225699520490099547308037236648511425472430122981191804756134098587386273604053982533790591376564117816730516452948376399132023019499425266469302195624420691609779456913635061905116831016292724571285065782967188895736494709269462807851814456131323408760900028624058541416689555057890560691637472664763877759422275735944800660057547413659475793330052893158084063241636127849581124686867587510819353035219107951490386363754191810267622895960011421584381464709858008993392343821003768504050009618558508301166219867697836166748137289509082726622272032628958609152528433792589196643786543908326413302833042863657429604729489055923611954625618921199714170491364074659682775780367147238446058892801404496045675157851559748758573793112519112390419024829856331828850420949450515658642430949377038129210240396341112169975374379293380350661237550783482202661609246862022915048127584757148112239292755191629987842168793279072752034625281119186581820501748789272338377423894106503542085798711544164671585263686679616292035112409373767282682399366640647115621578664666695124445769993399996064612380452875112184540695687864524190218599094825172061766644544211605519447629523077418335327020162471776503624936719533123577141898512948943086732321139732852989018601876427620638278598780288315524962623639938085897992374450308538064241450902359429904819761611294954361550734640875509145602137995363936557918898398910238364476809409235873847539852112753592039243676054893076958412810256870741589795828272968651896986062369452929158632553981169003605836591726268782998861875812582623773874311880593879871520788825350467053459698565248166193243786522828611138971492462688713204149429651777552597863663213126644153784145728597870052740266283647590862279767069973296562525909323300800212525572966408922297919297133678497786395226686178746914078234103103833590929707710900108817915817975936985378020790162565176972909134969431277173171749590672920938003256291317205314518983211533268752526390847185129905181296879974709908183752929853776001265505643761675244645804402785117838787266806770020001825711891878531798412809569039664287868395652432120569374644925088416942931692870646920299524340838639577852368382174209743305788075561665741754692455426000430232806442562121229266829599045521644906505668473491113627325775056820377476459499512896331995229720993659962401364435888427641823955669195516244236825707129862586104421515679578633536029896561002489653479799090556520587039066354464883991581898921319737053902864425886653458798506507565071562333949603993667170578964170438812813428514979269312081628219568601891739866806207548947292536992112906601660839129019169525042178130949196314502929306334769544855054700859921188526058821503055003722249960681450568159499276513531688300257089938022751409930502881468618684941959337895587898204540604892066544359688325052829888445724198278270234118713071456414053817480345405071114692554133688997686190945549873070224706498387295341219637738246464912457146881136070238391865096101779556399365533746201869333278132520761131276493852783630187023408436605018879737993780497701250957820993324089872780846166927799389614007261516117153093634107987685959764541319928243410056979558012066221975771236904139031976574069046396150073942597667097240975674483260537681013489424243624159185390003475555331457666565923466857655456638515022539581091484948849194820399296923440520871261573475165428139500500278323431038521895923359511288372777870382692782195799509501936665779714690894588009574375321025253589534640262686770754243427297906460201592574159988337998593567044553666877417676599527797663468935953343653827238081205960100848586919617664195153742516667574032581767131075281032627219478485574193559699428703715806814418918067151265686644559555578989392656046630535674183961708235059725382568865129403778530358173532220653615307525261812228874782476588314976192104106154400218586046561871424934266896304796137487887759759647744594947199816597573365696057195280552598375018248172310265555880080554049734045490074774204811106564620905575127243244132020393491955944375754813067524306537235468504316833956959798363331097677991060291559068956219003466698846571803545814351639397151774939779372979606624633073052221849080477023343392086876819404748017149381653393374134643421079343335232468894432303209407719442847133431699390355493250201125106973887136522427191686390462130780661624730541402556436350611672726513233465381399871200966296100130051132144095733295071669419690647845770008285086602697734953524215447776159212061368113905724113406201232777103683161849906803236904922463892383677063163213577094793495498435518498394195727313612559635340427030943871900640790638884213816653611161261563540784910141620235435027972883884580826216499614187475496570306052414799643593313465747766621697337769302477151147785499847040222679350559145397067934939259387496108826025676810094294844408182087569583510171858737504572575672300853571238210625309782784002403262630266048037092649219709484286259422584611768315061112282021710265388852736696202625679958449841491843678848463209418043979460191400415890264868402118657793769850993801000671864760655363832921255653160686118190133229328974018165270460792869732190372637072080379892532573842270934031911849169853550710092796048107318431261567020891204313640524060615078396581411055207908981587112559041551571257237113132967171676373717314266654530592117239533363543924943743889485499544738996759828672523439465289210113582315134910695577382541924741792679686936268043131611802386286041324776954505530197471418720996638226194900659642324941843479581216142677255283395447166490376585476800557626021314541459724791059680094057153963092312060684963726202931397881549083454545148521760122970250092976258083649646160444100049431977216401125377008958015582315459120917768472982187693814545087030239053645296454215702408527528285407989120573827859662028125438893246198167710861015454055749876197011034983994246609476500534280248736788742388366827654145860932068554891096355493900896091263651372891460034109373109548478702847999926495639200934262742343774972593307873642113443617207637369673392310943079844254274808284108728319820927567834852987636914564665665128499872959490677812707468043634909067205946046314658227198088809180644845651495296090932781029422273430249698062201833654501590889053015658415965935776478555801875279516869631240785699051858318886980577083854306382289810696024314277452690824078757123415702828344229028543108355076899176585538420096755387822529583782644341152373327174453497710310125287128634266722152979025519845677376003132624737036714608473653145072216472452581273891896889357997376104230132319970657918580069743538505220060746423909297281987880803010628279739217585739279264804215691863796255470637603959711152273304680791971862999362160915174916109010047121073801073923820378693581098222192199915817524921703237378552805045843174350460984015456656049248868035797933556368893833537847202201443905902882170412418279740802755315208429032423560414814580757751234911634772285956710514475505801950068722863952660665948281814179681901418576065841024193036180636266288529482324487982867041588212895433660352582396180430960352200499173351577132090975884285087323017123238597411510686471484612783863624224562570978782098825156437141411446572922097194397630530435728396384281000347779393870881076973047127226895282760433001947185675468535420220363370383282011171032691846312754416474565119232366087971034058837584331825801244464845022774009124896131376119582674989138340054987935672531885556096844891319239560315795178657214038631609272343740722350236035835818063739662516924031643888915886240920391440810487131099240829237759405739324225774341223236011055536370454541596698112407828618910097968930205942195571421898183170516226385845752003014181324289329775444863960520244303606543940404414595843105583110355619083316166168105652337567885312831296257539302710940037517934790395476806467225754269862494522176402479882052599176333554935843145918872825725296352341351334905388783595902982524636006453920468057061738783142215478934749339749198475058691698848397687534964008358977396058889533355175338036266894479946866047221260702439397618615545481888572756092197752138860924396468768745182941905266063025454014293257638324400367124061299966986845559652158642799041461878372501969093305548097476892164100728161594902218596884220211899956336455605632361577007304683575096769928932769922875551795347062140979797965580385127421927716411671269148289749110699170776384307373343363755112520760145445668846013947410121009521176118066554416710058701997230655506580969523809505894609121552343830026267079447298476441033505680237769063187793711130830965287789024355022905078868249659446947026874375892246211141988032075006009557400752709964919338518649072534985660333124962752947173568232835178424797402033320408227825462128958761260189615337866219542980996597539240682596478780792799468673824655296240926111101460068021580257879107376886740578836906505527431824217347353259844275816573680947014772164585515647946520396693954544235081996109898264036736189133533518455376348900917794958561204057743502292181642653048278766595719054969490571637530776919628211199522360553799863857864626949500422879353298349697897639830518168833541208561788351470500217014282172529754535907297079027475219122077597443587867028378917131886371991670413873052365627935960064826207926237531876724548931865391105725538302184956699932376035684389036803182178425924945049382404923712011218698083910776683663671277443315801695258368430397854115857219681677619190709848567661263275065895630186398848945293522072369037502845542727614652191764010552139793647721471824916174549044444869572334744395679590788702270375549126644506740200351717398457316316403005209294622945180651290915930121118331114718789621456659394615746398949973378263486752559753715496765652976891105463860278575446739071295656629531941595078883354187347724140184220003193933877900321328513111157532270020176746920649490038285591611432286228496653798794792797929052487806145322525685221414664801685519822347066612483965512415976836680691277186466701403968562249333997848266834885135114216717118404727306016485907399708211040213424420220867151671624067490065765977257922656100801517259996889261622892751326479526113739909502808918499742634699786481726924669775779811891320924425302135886697230437742414430519365497588311984888750918455598807698500039414940601669119657387347600399590546471686974651612088452823119530194067315245197464894195003985161228516457862870465279777636471361523461825626290051145446873201001752928242332566816121182965849673808235883367382932529239796321450493396010327153184127196019215632239052171489835910596257595296889741947570499441360921830983762766345235462617959949153655038329473764471212629725283415476264465296414410162810287065729331934835681604226985529791214706817365517109630519782582175265847658293982254645390123342481154255365686668731925197734136319345262010291994921353567673058184229263698473273256084998302092676156845412473053069664321476586489226485867781322108892403463109530260274101405951578994796344822586031018766965770870476029294742703635068261910296629376877146375220321315477374839616528692201435103449105861187602630063112660315955022756491916887245674404726603222274535633341965827581441033354284855398237530519110113993802075201096441035788668747517854715335055981023533493434831050528481133003410210856354634921329124884124267953451368290651828805781911962473507659617354221559169280449948724547719247071727553785890466450921666082032193309038657707338803668320543382911002179783259170672314396457521307592943525023041840204012076514690540199644171504861744843067989127690423063286450469701780094564528332646102939304826073147455393290621337009752299816257000897933514029161549636675361700416857986359422547225229011755773232030335119005379885405019205109601729519471342680233636470454159738380813677933713221706210468023771362109184218481230606553539492562863662956768489691851541801564932970988497634421060024229722504008053801410811851872704489548688504568887015849830565354544786226183739751108698345006039350155906570526996858307053886590824942685070673477961313966949672586059538804331053318425941270810437282289966251342142183181834677424807794314060590523945961184740714701168244888117267489242334764566434941092876907441981340303983865311034290392499762444574812284596079586308911991702794704656132463518458345881119322276021873609867055653460087757933992097190309720757136844167924048367765271096336124714684435557534057838318551355860729390868083518695778997728795374273889554703243429693156176518989289703534351116729458304370545216525751726437357935499871236126239682862493228147233442572968686297051751889327444339891047408573903501468606322003087144425581589534637162007036718300396211366909481976039518885005809681750705743373742195632191136647096654884983511758293544457304930207203228509163002243821616955442212680598194840852905076855391054149170886421796636327931850361038490366571083318114005131882484759084333307499704828105797304866504973657721121804221320677231100468484880916058935782027926448394633998109163935880761187784141148429551969733213042001777960985465810165000476338016656574695684984595427153778505413117987287525537293380548697352010518165439026641070519854771136175609410324735679130990541775568580465359985888938311420454609515447996720421860558945203262193900208999618527751601602429456772741125033389832861244382403079345414889871577920593088650217390522234643194606176921659398049088865739532309974079060302357180023022606307306202301270033778890272010089141612991039703247441177707119575747864409581829623504825399798321350839375870721093502075765650798053138996399078542615276294334958733567157340452123141589023447632118494635666490052785130666647208625463941757390891167819710690513619658009634692441631694752190715529684774948869951998650613335706726105732675382198384957497042515938102554127975004702413932194937368232960405190872717292198121330952351645242964818101336535444464579065957036455385407219106250475152694454611253265354510222028689340659569011877883916688193937938116626415637884879743644092085177621369382555048805281940019386628774911498305675773422641798603213992881801529147780264867923176188053105485371564374292445175459441499190033324264354386540946328955242085233543015998727002640323209204373193986151184383606949754130436058897937196104787535334524720207988980785552230580023525862146661152304388911432975838191776411321958608637985033874303230842399801951545535604493705814487685944356918205559960899752270433450223152495434905408159015530459249149299604577046918494271018883924973800845896705688897491852100759762539807750964464168059433902723818281806029021247200324416135821136392750155755903813811489645659837603828962934407793250340285134658645125142147532979956233969854657144967279264018773634358175426230941807305099398880784259409218687851559250393748252798894512188590420198783453269679355385697743964549579555219259137576938933755065059395318049046312840253988650103829213164897242371363740168266935579056245795734458166066065646661720953293368217654795170906378843156996532028281306483926487076575877322423342122529611857957756946581782474777142983963583245643366079510340970342272207243552453321165463910775784251954667136054137721940846387393542676266494528922009669907974526865163216338747969721198205726343390829852661584297090262632364845400209108212561050156079983638981659978286902838019552952429061846074394940222391298308331720426208909357337343406868908098372560286688916527099757254611493423467919619053452687732285521815937301707998279621642473634110141187699128585876555729873069296019893438787954292252246587331880700817702538231154134712166487485889296810232577374907857165294844577254410983287324338839197014815397592626851167364831886288065522818182574641341942688732592028191386988412443091404238126633322754797382264635621572305489497045210620381531107176957115597891769828463558206568765899036963889594322800140138249400480330139882812086188566534200554410834362113729930038888895794675609573883389591005190755081530429573698912847419526767989163848863814018519817195040006644944914249715597981301663258636539918314492241070417090388565604262975790665541274027260395295138727154124288305673595766807165624091511299711573310580814209782577140323198068865255121316389258065370640809619805005678956097011495603660663066598939559402889963132676586851261012884006705140335049824914953821722804986158312901698231643867282079837116619872799713120963592382490456743986208945401891448207315208427360378542870433231361294716978723334490706826911026625014782353852325308519548668733274466085566880115082492895889279489869863015154836480751208617369566256280545190614275835862913795805761658503565766510249760408152989306522299949566346668151890818820438564067981668748601531800609810354173740497197127684231766044741254244398475641387325299200816448138583086219007267582303486410308071689140224017673154851103512246263528594525858960162527691324381634766376474320101892216588493029364890133050269689314546373028103617500783619586353923210580179861896994279509848649656161649329639204309224392007869407931289626092165461781043798617066079081870655433786282547283247407217160817480258032490219707506170357877178441891643117931107636539718809783735114550784315584462552786984293906295301422802303318725835809346771856724780475637971425954464939246911492893690371867284065697094104349770948353987192913950764159542477412047359155509713930157618410465293470882038411352567900025713864298705305242295766736941251785794490324207329253258556946980104269543858717128122427155729736190674295366014489137921018251385458677814507419676590333700503263793941530918341627520832925093232631029214613772261621551528848958858486262659382042007072605004698980280603949314370768880182252437182272160904598512273524862385484198314244139255659757735036384599430610063605313193413945586463858500269851958184185652242652341493193031794905441294271517976033266528067281897837604174379695365229793381059918384896928621712976758181249354580602322508287842569961311168552770768735146434376474640941611808864457007328780283626491647846785812577602155007481791655469280818253609380404294962476864529525057786196745927679452106867024301242480906886435439767564799202946652714851772119592089166031269742787023642776687699555609670300605749120912303603662527696034951805898504847123996037780189668450798148322096249606300078874324789849112536201639723661677960100100343500824144534352515388693385091320946877691048102534173138010624467570142947863788935110803248579648394041357313938134444423917248569249123241236874792142851406635214084754950281050068782952315380934004654790744740190594280188728958806053721679216505976713999276921216354376345853071440243792412089149417623698154382414020844228267018173514481360893199237021924532908738327162485820022997309800628846065260934927055102827464008047087114658876898868359126994412417229154639923151002854072824050571488758023159089000670710549747983374109703241387688928481989129260434451341321617587894136822526949139881206025443039251755566447641260399707293727034629968247890311189572355462576238228141208730520687181609317895315664071965277647120132127393017145485008591893316030758105796034819376232084734723460682030699544699489048231950136450473679035145044315288335321340186444751868769407351040621578975177513140201048399396306079131155131661692704339749551802969323242434798365732342331480320365905372721342533242166379646215977206892480930934819116998647397873092479935665496875889905815560131556025124945440604813651445398135916692887153943006099153122604470439694496139517393753156078099345981963089032792528348713610623299036787921325575609321835405197510043892184899992245786224824634502850925350567325414103423003246262822734516321769003892751554085790703042196940297581645337294824813000767725888166999456517442709952969217612360591215460127668292303839191994748470698917163292845212688213413102598838938875038048764400653246502000516105682225544820641697382390460841285886327645389130176757877457917170821857318714833782376425072136962833490596003544415908376192334409529164521969701644474464811282663073397213100367772169979780061640544200186521090237618167585842727280859543609849494523768517759200029108754402670655878878570264839072828493312719771010944054351179240403946217706840703623375938594944907452409863000521328422286622107649892951774444171268736038250585138979006359983577115571679911216792930389391438417650224379212362031169141032905411126138903257112509518233347198185082743948566874771569656503769799765713253928753663408679706146522103911759996300437574069203500436486103090875853818711639504950004832230137118471893190978260329611555594504115915827618690877122136328126243625151074042116555129130144287996837634292357279720265047429215064274457254280035262882147837463562349135661663754224148851660768231750691402536667422396664390752381035772688044189626913905974456038759314379608050648244509109697981778607316702044698406842569711126861651321544393109031809473958114345384272269035852883513004657531044439635673078262916762046561589301550949527168955767356678534007522112751536949210633769375732703175431699573086048717974438891086085202503356161025965928984832198200594030139757521042565559639857359260595028883291566421030209247162028092880665042962439688102894436886550725345965410965776157485606191746781593457120034254375499442678617090991048502566357298000698326378394387090157057541532107374505065333720245491571040901752693017790443292843217140491547730452055798055491742542270197057152120019180055008117684717407756854976431718891663909500815713943297623713880474101092366828118436067128257423084358072068475675957760933974545087412857788709985515949510731092357746327669285993960080583026822143305090768721431964330304646901563968572710649495574789439411416334677170294617703905413476865526083020157925261684061661282978935321780078101218728605080926114614346460429888433816701948217029682862778227112866396092468890900075996298439203231028563768607249092898117737570394747168210799020828762586138297161234663132817511474382032497920197391230881059578495555659721816289267394078468492873219838898481398336221315339223083802046750124341055674833763798803626036784944554357850621686896716267167354971122173168733806765463172672280943562311832499592489597322376892411239195326267364484730321496663984768354216660815126358183082958527691775514942064325299093620477263597581763749668781706262397516873446521518486148513648316395533502530106060417228459495335461990034345485446695148341870991320674576642446203962579845632235564598860617729155902811080703311626991786724344194285811834713499987257914530375519434076375616173528080584059440335298734516473440559503893732070728473842842379205059192543428307534494759210638306431904571353864415232399084748884038772588425385945464127288633323532790141230994612451438981116728013485465322806646919523132575795744389501997211269257549966287405171112617432696739249397892986371950864895503242376434239291206627884101204371682905229532673401993072799614113575132218493447021874721250370357388308218029914932971500372662419425222173789800869661971468275499637758966799241825404280116355475158208475542344213615652164639833662264869635025162935018388395673880977302894314009367462848250238206461142018372556243111645649983097649660206038289754415041211005119000375060187292871412473610236646314219190371998713407548964398208086502479407929182859261514048160838957442054352680116469753566887531935278810401207039245120067946727833760575503365340398090845709869150337359200419280703018612900649616249153214517644609969521362523062571181823049336814078918201608442420875156523104032645838569840009982648763173550906527602905884873707860340200767397623428580609971730517500435185432612969440785143822183904565062264430674065644938639326426403076210876127917205146811948160149756473918484301031107310204649233675443290221359160410881982629152210934650613621958854639521731131969817571543859213169897593500317767316183211336654163966114080379732125748234097008748084303135478197412874013752891353365640962305564092175925065744900226961970429721244151523245021758099550338556348808882262846099663667052457123923274527091956531353967971606615089719339312177325992821438621009404676405287791702395287505696028473679778913350278056356643726223924693872729174704298179521327752346881043435397607079391233856349809556145596435354132572047386614444574494860160893015525141738495757941849942791470334881026113414068216408791753955647411996126845137906048116895948427990920623007035351929113161219190813080691025967790832845690393423529514101458229123828283339816136304551720689755914052999122640566504510121186705074797483887581490261664478437466503411958865419840861277611464046901315411798052023931320397183252185588731787691237907696924907876199148361758017665449191031113502513753183675426541307236409571437081824419536357395366577257751654552490393566672162293759893441701935159546721365267644503034292215673141612124646643301252471540434102087568774810442228174926734502964244788064043272864487851444275577259848065797124674579338774057239509746775746711366943755732668643271450079195020753100347004177789517363119902992536894359700798627473930515192584683629700733812000843833248498935905670993122076447819791840906802294012586706186662542804155906804340550385179648599191170737198696147429878772876427471192518476678536419666951434226821516186401755984267861150576423285590422096913334473020390874233285367529703262225152355136531419076500203585883298515545120323272196127608062184073696638982911370482197306955789759098384029301659794611328886613068689322994664831009434082090476969990808369277952070596306556004071452894204481165851798723079084260105442517890373781123907588251472023489708131889304863548076326297805406322880346893156595333485615595203463525147523721064544746297738257114986119751156456898600646960933345406904711667856637754061979777146755026432572431217537542874704353004770057106811129952189215947783712226429580890364159628710512459011432131347717216748470846019649222050980136751476284692046463436525322505266450938368210748233998369073794676219591353415703908349506252610653009718763177946836995067909157534424756634016358750148970259022087850637160269873224081522938202194326676985332048997873826948470133017087977289125011795047610227916881600819358731196470829516300667372563243353838833231630295495068714287863063146109346704801485067648676480050607070028226653907279121568974361638615577555980735838855287074522656975281762092874687818855135330818743883533408261244112617642820664446620921933804064392980262443294342671225052181939849874895143057123902604033966747408512089982207843987005110163301680604039501688495334550506990988067871261493555009110573930519389191184118134700166876226771785011571275880708906090378099466080881627867608109877655553038816756473975971738365416760594960818355702246065467390462447118853394830895712778570138304357079258362240093940425898005132377468810552395042280232082454281853781858802902902328426971948645417459848516243368738182728889863684014779379460704824148535004855724389941632599856189095002198412633078462098541426633516545008116654740807693029229323288388739267096373594105585707758867400155329803688123152119311339011234652285896408356958061252211230271707203877049635376998614016428277705717743242033972712453425673833225209996550057719205868258962475703939425255772812452995331099083204723156526724967303427337899222931014358156841761006583621677992727446070236760633300986572077747331471643054460007850345280617463124700691311193278462380124934141782634400116190340970236504232072547457226211898648432315391298285884898877683871672183814326835443999857647042753326859497952588456398696693828628694232874064874536632120573815689871449469901138013222291953694638633395910584388245733831360654246316964660840351714560307088565815195075134015280570697849309455764191830235785043958523771745107586673286245200291938803065237417077165659421142495066619641088512667698444578074282979200573936125011059980385210113653838097835729745866416690173242615323790684898677294526834770283620524956735368264164030051794313839738190034480968917062314426740919552515406563659702646370549938203550021559241712623634762499265386541989139232022777248451406107773233766994284761650595323145143120313190923705548221307704520762011697317470827749740196276510415742112310285955000140725152283474026367432463535370160773603979035460356737127090451537306577662244100851883367888428673996281602110851127144319108985565795071156231424245151176482719391352229201762049781295509226711491983736236145610680169727799385401796991602585655214961238522306169139029408854655158359025834139506847579140154399516596657195794268947410456746805924077528214811008988750631145691679076389005442590419316075359698115752989460081945951142024863756542320710332732034454608680804395290768188346196551853705909979909283806309747002927325726770765724107334887405844753071921656368371067678858992330692105189611806847850876239902284022807724987364482983433134099676789607446060439324936371423835771340895868301573466005270908634280348856904652300356001833563199967588843604686948830421860785880075432430646112724104476959347368531606087806997216110051995806727459415253738171098897515505257244481864542991496592447759553776141993659712530761484618654441006364386191280035705586081958349007378838182451816900497903507689484349975467813548825415485047057458975949026757624628428088930567371074777714309115115557458815659994024998422245580882466228405973833958455758610283204602565190912416146553989441716927598785774841257175412430992203064413302990326778574806119019062416824259677670326135728228513401140547852639996349841222061059473758712069144176357187547012410957644601324552027637061906704837465035764938483378669838593305684523313878860302645032160826919317262272634924040122583976153525378654830937280826520366598765170554970416785142539727295238475162883768817649373925081013721670293728162211143084980722728243910068078154849837889954660503135511030769007368977376225618543020218035718304485182509186134613293979084064726947706909996052821354966429826480280075565598953052265202276557313247722698678136753239325479711609474028614209776441609107943247281109901332845213133322308839126279516734796754222559201226951913900098406894061235308542657295841937187554326089626142271066555223958295990586858869089171120824130843086845007640472006830402467434097179263969307414307229682253556635327542242904059850602862914144313279724201912419968653692632895118222238853000783759002377107030573802524514493590195190653073575530482152139632896120376017875525974682130228058523498916348303175791654508002863991782564013626492258904561821925739329755264186061185501652888051190885071083695355462439701164288192799281656636673176650056232386994371091937548274237238632050301251554613205721680869479941681882294956291252537985883741920566874308550129710876925869662562728662067696788640408772136941981599304337807537714815315498286098504079195392324097877579970536932273083600535059654591466119822193025382054803571735037636029091962299494251626121025636743389372222706245673012626793040367481489593790052975180900231205806449872616823819681030919169909843308209072861194716454905508962187859572991449307629550151856133108881541469512942849857303168133526861604848874255087430732742728335591322439296381560848583905045029070701739580238168929440636476893000674886172398411208902465380123732417051382014479778843540962721707069203179549813101718670272617219247630773119914887177588426227369526960833625224290226328983507677463928084431767570939909051515833076649088768167248658389187863197436496993706145404295683864189516513542654787212686719693510210683775326250881530328977848968622259744340875718169513582150614925998716362572380769559489260256481191007647306420840258522949031960455309857477050508651949268280785033210026549211489070289041611860290699574384880141171188919598115039844239917287008315837478184843137961228830779110372409486418315388417950438868255530500490666130386520437193394463864385344299825443645690336431288723810458700105603959589376432704180389432849144940712838297902436506700691419191109947142218986753601714513862648952743353380779958823092725502973933799845362756248722413825514115537730241574872518024814291120884428314928561277476108051492313296337092420022131705677411192477143674012935945161106227821567293231528077593076303138803494660708233180845944295379636241879791746662319364521629274484494316785134942795979116318560021891370147779938299361062463216827042162480571959110813131260771177327974650254714769401202510304269314967691598422019999577149179470126206192694910685476268412855349330721634447742670579847274558957638524642872233263958506856325877840145305927832943891128721120594062194258447861137485450846347630511030520439364309005194829066452245496315012821006000258612730431598715198024272192868659849815760303057036165015827612536961684301398794620149489773724337521836306365539717736354561488845490576516806679522093564338938158471650198041597471612107535113561088267145818516632021590115294936863664381621425502100306252033250870502637438991916795211075696201080709054588796361701816796038947365517547004749074117920680700078164203940706515780378544875425076779816347523056600374368308508355941908166828043782681766664077241669816876014244105816217262996748012995627733935049236854718490766428085254567572422647491628130255464240537432077278557880073978851417899707714375791148338537673008125576644032518852073549613281726449206299268602247864418294143632985392792841587335443586807129839710920691700866959981363509238558157596682661703816499127298840014531594716967572744253377555730120439494303632449323324216893009595625652634517016947041545622591722574297484788894632286554872022964113960885301452014300063320162463868922095753840482257468528031250692984291685079592280762585147842174049026875889976316401099160743525159465774715661204536160736334887564364226598840158861820571732876584081397404788537060167194926433795748834238821841624478867401414778674983936768697416256650580716303883387624440880306994718715681033917571320957588784755709166437177210759011917194119145134456717433283156323004141979104562185022109014764772310997410603393952564644772451213630875055642032495673043949284609652083378830733819061960561232156200126525315967870337273610383404870781514636003901583039357426951592538339692508763963269285906315541640249509049636556820762361969014333912822251326482544092469368153939839111959361257547446625071878394947840658243301124766606046751848774643226812764166465639204357950727403602892181102215877579009574248504209709497653912430894780312111790882497094506406987124512838146946919291349236882354920262478703931108974009478045080376102120645630590955560453846937475452887323195460186214809587714627437012338065077778166173332444542973130912962905745310665853146974861096610806048470546455728129849336906288845110377726579945323743201950384523560907362583469075628446535131096852531570947610579259449795736011640718907597463374750051737987827473237801792726977909223439774337559697361058842597984410151448876144821888081999244541411557268616863699853896130750077445752564979660191246977889816806675153021813594616608013052328353658980876957664363424416240899387104043423846484452671638182307191015931764678436739174582485968298465408693134761210277617700373779817868487402946067017440283493328277772676814855374931066652277131911442798864217065713570782631645051247453866053313689583828278975587961861395369519181238726507114249838588234489712258038997456978004303580847638273839461748591753491383524962146586379039631827799480928528655704245853892122773105801223395570841042243567913451623881541406672655467604704740279969405570121840400981759897601324680274117867868505418432742116072795969402067463981273631444813215993944447180740303187738237938497819460506741054017079670376202672129291425487804059203154080609128424052613193925356580836442159169101873602897415433594830282960333403121349385544799114853984654071684571872586749298983804990814754242282761723876499996036843704743301547260764393269146056836942078136205987852981463969069897250664040563160241299207020859236760621237630471700621609504246557456333182557243168368895300254210420786854687324115705041027258657406623655697198908179522727848101297690959889762766251643225954751366797491528374493926747445051644415970335690176471667063122948721101027854543629695562939030842248589776036106098381400065804698230851793986989525994368908488434469347704882516432879414102606899476530404265335316488926678918160670202746068995205115667589777646208224562512819758461480250539739834341237304190741907018524848844768151387227876812910383525521534833359640993421702383057932232868508910254333921011378381350533050612738933492340915578778083771676222053824796769957112823241393336471726424353579366971227137424474809977095181186831924046331095327305799933759062033518111062093080252669966630523834969682505610964941615283454953889961289975177608435876934160195022851287729736946701946855543762714154674922168403138535278484111528426754995018159307883463999274422252912470786804908780283108359312584757884099432778524798195906879787340109982093033871804668525939337609598365202798299571411330567046337883909162929127845082178702400237320219111996807157976954590271033590045435904788807814235312234425927619821016586603207648759972173493502075443651440279555127121356056218702276976596272253643151524426090729360225907040827024696455523563549063327327383538824983799044616129654661389202163175914762887637765529832655943946454745962568459928250464192318707411630839510267877215855969132976171852450892321251159665040274879771403223190177680643889370367892406003363114151970145709565476330437384431040801529408876832347528024271423022898843122548858040446990270653684689003737307425997350443246553089144480725563816546022411807369374915626024460663993348673969947025841211782643768346374698244202240721482148766977708205554482167260057768802977740127847083824128819365918428751205952002376311050731254872818376454848069485119008841660888969283936591324859378741334810555503549628678970573695857136930013218548671376145716735021580555508109159448924190102803540573898016563549463527022366475475803826771861380109527417839877232462845492355792526027144314080585853457976635707583356723562301243449426770352943422223757876631452779121411684479846495913478171632883526220645059731260929267821882047115214481944362107407831330093189615138716222492511443829507604971083305894412040726935538234921083277107649932495703083987433748407106165174298109230691190118017019396667675831027672387174330919999452357689423190053442800367082882392661467227985176800647071028136322623997966700029906511278647979798941963038910368100648798067509671434751426991852416387561182789832748166279845849041885846741977676864122927315690976388727648067407503777626201870081279635735317982352077519570679135307061954912354705354875353505792847193000551800595806672915103717229595942518383784219878201319465691046683376432652463987071631187477820768329215042261863917251066632084707345968825079365397015142585732134342136638423872690452987177721407172943405005763134617685432401383302327409432216007836006279387363929651223747393661569270843086672413646013562480271149222033856148157360502517727690435810069227535329617063716283221628908503083793284412851150029065694559222768152691673435725674502959104757080388454798242896962016044770292536180292137156088557767375161020967780227458776635650551081311333406583694703836847636944586099900387318781916996744524066466822983842923986437603800518801633527978863764939649463720896996822904296414495262580502246711445061598430448115359368286172659402039338393063025736202476396471567373194792026331275388802062941370087759409400125366722863679073968542452575021481503161865424820079660954847402207040411357394748627973014340239584513102794558549820989435592660673624125053105359844377791612548045450378247208476425292246043717499743666757388624750626660628492572235966531062725313359655690703928269940770361527810088802815083593528499347737984703154201576769390889437533392047088611275613420877400555672979787860425605739762842416034924125027047816274562622720546499946473809688573233965791553460889386526423782722461770021670574689543809763748356681061770556488753391490490073305531697903698947318549570182126299002242782658504418340226703624134845492459108361895144604154189636639145376382442568627919160167933916224877686758333517063095659814896783798772711849662489170977457443315279049868591172007427673456615214655928448064251741188936044911235630272880250766938017541116834011242288905455976627168721032416045897798899236253416310922436897641402382082544876521354653984719688469559753709305722998620581192911123435320556946573216566417724161438867014711715161073161368753891787525152834011447349281828133999764539329128368480165859095817072140829600476906662291175010636400331324940154516835177961249607726596124444904031477319504268428736889589138161344878199195999665693800849530437460525165884554141585512624110814963494626261711764412122102158632011495262872957190025095236953544868886600598786928144446697928480233002448895505750211567016479940584977094927765920962175661901013248196018341612508934349718935692851231082075826829210385280492713790268694716119384671835128774770941136013956778999340954958507725447217834730453351050432386325824343876078837630095825368864240498859668366370463444009178783580016402870412803979459692130547718089660908025705850621400921672292197408551225762449593799753291599800273251204112323568405004180606075271644138881061779352195959493592479721954527323346573214273267488671696145974028502678045894786806460443560415147990656739756165709753714586244053159361610354127672040914528697377865331850488675167269639837825444013183060140835836749840904366417151868100801170459401966696353320314959751106546656266774026161608061514832959232447750587831485152286092590952882927349945278078408852448299323056760352664222481752779686953469727666447775286434825740627128779252268479456139002270947272148998315212046221740923373395588622156623881457609991847884014284923012143191117104564107751515682765558963122800002631044756241164474086047243376486270236738287514170875616026772141046612258171846587624984143358438053555768482368042303196393010772529209109994517634470207873128674069845571520386666836296344045602838336028572569454151212406007852823321450075330537323767208146463274095533826624550672583905281046064822453433027854638716201636797410583580647007435630379410374360486204728140954407045184373587329717872138183483673297480746464136140797591012371795989827365500887212991470203481887082631708553714946383305911617655681691459193459676174036084158803661891650805508024511171104587241353212836843099735388362622823575051720138574710245450235481707013063244895201033223392378015959093001710619340172956140965475122274195141029940045374649172604183592823944526950349711156842807388613289252673009962375082289390047488901496130525219942210727308810998848717132568407538583140011053878704963352558956975885763673508951712220811236455151720896040234958003270164540105359432016707800526417199010196654566748219841495171583992203811766138360441291197877595234631769550503206462675958924215177141242273582292397011890620323405059246294198402489089167093848280878505529576893574165679081466823947743552185859819143349757039154360530923407230710817574841534544190129990642860383840555560764638836415540338908262377146924401393368605038743882576632530972950939661845116081578016995408862555031138736108479335562115830642637255008546259430959563279905376712160761454135584600711041594395742628415683895153874639553219254380583037618714087135583234188060302065697048224711647267383274620100190201335063124903758165114833461710694616773250011188103667529044775271735421376706705718073062022653659672971101214263455818688341615558256448285125669828197232218384941375232376623091654737678790092835438754730875449932056842532215980759813303707184535014187667996623442195679013494041263977399546153686363789000286514710667016334366613224486182652190815810400990358892163586187370515085371786613192245136805394191352638023703214342633979163048473831277989661344180697167693509607289277256359789334856823752378158895031764062264407217672271273587410466440217462659102384558939905370440603772597780081661327014303184005754647042383908718255080947521916129267345294000177966379384281165565290192806896807694300214413926425045171553680154551190458913994552312501918418008580128696903275665644904682099492038682820572849984614163002364106486191186922512384774077751977306582596081655675791691307969625674820514435773009420555321405902716226319506726026381182212889243782462293174083773582953478922565658886570106437347944520179274791712040790686073213728182950647932699068291992505113638507744070335478555012402330817903432099778520074133649582907637203508713234097297501223955239290333087356772523545754356879015855700283548692908923794053490415445121846311193107912353602480887683156397990407821253372477082620910385177161716220312558110413941440986935487501527600316035633579650586717591224441987916875286333771945692264126921884594644904484780910348263394607955131334227977749758794126302333816234711327318152549146353155308439917921696775797558725539550248487793062664724487175641494052346082524212626869229776227807771092553626176421031392441675189127438997548515368626732701465326359511794639887516876068179316320762754308734543857988054200836660171455408753128486348071649691742657681979135510166761612746082760463804823136612024290167820818637616245847719542505197820957903334908317769460439042224659447775539755688122496917069281572512115960240259571165038107278133383074538435501171404263908133915698652549306777430204861120126112899648255002612029793240470855519939539534049337457097325786294422302919932671247625763539987102981116195582236618946696691388427766151102825571472744776774928888590082807296105442219912012246360911623715866778503135730502847216993092369589462101620681049920334626057032906600861557159680990069640622170618325687050773542978712612678886455132691029293211451559622917201742291043919798107106531270512731084750384659880775972011743298831001052201524248800977010898362260381254088166171517374622764016287775348038787604575379313981732260795858417920134047936228601821823350088954418365330884680878839323167834115453076927135100899370411978642528080910369448266929133489747375031593884926193563911405466374806374641601632544898683050899534717244635547313677445437346128922838280491943399444307962350845591444073142337767936172024540901267977435455842160838935545866805390573718470972169819289378123355759165107778452937681131369821978841144628211751286450630883216145590578190554917051790485113353406162407374891278787384721739885610064626940259212730979606483504577479494647490207964967442185035280184050497726305004655127217990311931087413262741748004261183839445449655367796123263251114281298751521727688133302983355998778100473100410084363389336684929227130371752811405776004813197669742750703300848197794213039394776130880054436017639809148860010265236940582818922082090933813199774093010277917544963791103545776998312138792861849772196014666294439131285065182261427395191511929712826657946161567396950696503832097024790012780271931623650463840485327776920786906768934224984660734062682782393981323855581356185795965369672537122209041346826134608616927674907121698622216279836582487557171613851420539274450196207661233556242214930927663672640088467859529883135532945418792114692519209820980735102734620609864939248413640237494645383393144161229632344898873043419724330130012606024366509421309851673089572964314486235625628033972373654340669992247910375740552485812288941017103853974104172798431595992210249526423220979895118705925639331165512394460232007766148892498855374276188102013363157759173966375684164004538116955835822613921303885840115942003145082002232020982766295014659917992824177434349039315035752315767433900217429462789003797805056791902987281011713187639127548691469824028826796335861355403762723077619413670529691407058950299917923937845226065431216440531751696458719694811354151097014857016456883642090503521779803733090207032743363857781878370999006977571852757905408833389851812418478178788792432828538930427054275208060947030641111441579486903938838463922357391342968330162618459443342538435956942877496573526590315254238275829120463695086119664790787998521498039634005098347580996037148570184603871407559033646784536486742418832089196255791178006757941497312336972724199007696096938349371988727657875787707968981712198206692034506793148433955789885830704769218052827365460739009720783242637864532107015395341340895853014015547051027089686484555180333435518974116717920767211128980244276865790857917975400679739697522858763523569102977475667203319797979166434007860919331529147928513349405691507825514811292951139163351291661438040447542038910986476922414294139215860991316104192149274044143588042658504421640924336478323750533240428917112990035956717600891264766171594733016193559382750218125393401414506788745316376772923705334065449329588247321315253146095248910813140919191943556182422991493005126289646478550061786803571369167740907503432735943710699123028621702783319743049760096000391140204220102249761648678341333186040883571177774766350375455539679696923305606822724833505947693882183822621283298529050994486781505862425178671876405072387749127189023248787985151941776763378196744292527266698080785664481657206233757820212512925241498892867910430397344816934507539997577360454653251340984478757642509377871153285742212744457218432699402615264347902568746926714573841360861297699366478271039953855640933974836640587958342110104759496432725551164633837436938717549691596203770059703222856227051860873418085959785464477891488565148091146973647593553418679305760620035576930877547988606181965993112806421978841969690630974671213758702230592517217111997560578918166286553424640476547192485087815987247602083192887038781620506388531639949482995843044495457687364445617661673648803859251788370105876257460434542394984519786162281982606751412806241545407817742977248790962397217619546878500522045604914875944454382112199316644126711441625270614081536572256306059065097166199661829950500631339955015334600493395414272396540307678564303026612166890081181191296652481810614869130075480482535307674778866652253929623614970538602443996095914742971273566768793728562420105539206587665914803618368273001270941006006645685315654773666649974140651169390327933854363199502046795122111108624059711476038396200428068265107806744496784432806501642003447788484743196161836874092267940134408847378450981494975381465696192442288686143872599360500662737266793488678729732885774899656823858215902372301832978315891157879824473042419280108260091164166300173992826572721571739280142624361261616150886304756317331049808835452048668072401386843354157105855369705645138944193316359060238118063779492356331121113642323451346347477426894797212778256951191661494256983094471412110715110500161791697758743786564960316506845786460558684721072062424100128265776319023061700713936311484607520351856283146850797211791779857459764871705528250727637680207315267600272484396540258247137495469599620023052592814717096761723254083804715518285766869870807271441757512185021301480271574390116246095792839862240270320661840658430155579561856574578222141281890074185040858680584645270836175069452936068570448613322798866659142077459571188399975805876756994054107239287601326330354211510464081428006137539439300002678415690759409833989134831569515645114279491415351166772647351893499925497851779802695047221773855850474305042895438887311409407679535204137939240657450129851531017908465233129464751583607551231219179721117442503464369040898604537765138209487425798571357100521676234498830486257611349118511882716189030031685386918475499540468949613317362455325967125182516856268074172475720497854848697769221707293861293982170963032844483358756530980588601546008296644292579776062756847999977891965109029251200140596860432637434582159335917312422461107024048605042246627946401544148550509804754585198636778678367885198778113411039454548783804510513740851847563411611475380596768248969566079395439524906936120690326698475501621283793020939059271632511620799617060018550527305259076241596065409652023232768152300338178829149676602368140673157327110255249411873439181929257201233135607214237921240526061572771605837558631951806483490637558106842478485963843034855265214659353425038172243005701161037216931658509196302698616112965787741890735288807715197665532832620078133355177354042225503294701567846369795315440412010313839363253463017745446621057411674385794995804224004589786840894391265173287984252547307718052268116033413916175084473273436688952287340617986841052695613325301728792342184988974889357642564796395691081954109455620538656078430770475428037552137405380986145690148391950822536884550363749241470488613594176726962564065074272701188186440242649484598354016777885479419394725893457240867165919564062433000548884872327836374352400631993512855664246847698702901699048208493310599944003437595984360865626247433218009257767693592733641634338863603715280323769322135094608057483405453094319914714250235404723957571081742253244693511933832231578470637211638911136934842885830821548575016848829327220596983365418656979043760872308980810697907290066758795921173397310026867771792439415207741809406332386674760883754583743026555777086893161730897364309867029774307053854574300076771118806961483879674905331265254431869512121221763508641447735478975541471319443063295396294269241078241016549069151756397149634795047613308048071181378972240131181925073224196949830573281524902572721685478329796475949203926562684284343071648797590457551041722186055921271333860550193598663765274104943048765174337712274408365241992368503360202005031484473899474784813084843762273090059007468923085511877921393707232185816182809455414270533427844682930209872586709489857078113909044263367462413059547202156690019708434707771436746816589215565532171707153540454056453822391672384663270274089604821203095232848892339533076407483540771897016427344045626110878679136881829599756973390640758415397720359261835344557190948077047014304789777128910244530825221415080538835777031087308913427044696478190271640480027558734711110292904241344468481572802184883045315287566371387055147597726727326359997072930760442722333258477281330934071718687246150455357938941712803749411184088092281103607136571290701363328959023577538183794334072179536133843700571362948894073061943723734050595043033616548965685676700265150802461990972537460095845151575847103493164529328171042007186584310663732752075579587093897777924582029323452526609545275383897831100645658707200909223367211137473735538675201481108319238308439160932172437446364014559357474052161269714135237416901334343329151537998707983273059264843318880983458605811276369054399962291786040561786514992728015520499859755447414211580359096414775962052408131038595301132084932964152280496766007188662443646540427480446845429140497855241814327718419344912975135694963390199914823639453165045611837445927027999283801599194015030016940883679978788265678708029611565368151400399957566019535921958721276664059013573115168910456851401703027569427991964214668813631451496673423594774820009153678005468640034499190949160304296814089948640522398641633769612360838472585032191537541507794543029397787611761511808928385416456057234117318512657515377350287562652052437772500507063424452853619351803564878300700865819305355181203661421540547453048481155690456974254823088411110682450982982573592253285346359994409535901228023191873195695344342194998870182941890663007725293791247971206706282488734067661868662666647044691763057059117887269771529336066957053237556244468621985267287744123292812425869048724242537750697232369950266826767957716532336663262634357948555662797597923114129177024162215510518140031688780342746454858303157688261778126231271465926396724694847089255806659614053681828495460011991404869185932461432183869438483714796369913200297753320730592679464214729528955094687729274784741680525903606646263143206623741242105799251581347617660946914788765276370052021969899013226099775302397910905213798193084341736606586465208002212368979899043973344201200948644547464428692930482244318798465749265688083509652526103558117196238100551915721451169522615988923751838574744676423749215132667548114615795124456623752726269502577694806844910408803750067549758767548439046384295278620312192542508080429002998604146996572932332719905132432051959095354085068631780470765655343587910940084195074783788481822072958873753405860197433963492766137469828312334131711424051307195875342027068091072560835395781969827182144350617090354614697037793617955123168455512628648072002440150817961380801853541581522808596377351036896825328799509869214561251856722791967212873352065474158862133400090147395759625018887782166161549637185584423112790637295567361545864973764814643749581932422766654637234819822741713344425088726475398651970668392547379015193591571703683632484269190008363146810005777716846948756132294332661692691568324304229536308017524840721139537802512734487700498157433197594834071010190030677310158981576023913450349419356058043293182718687004182724017453909913698775419631579918867813207700621030890598605255936021018441239233042769479075117084194637950712333319086153639289145977092719477449582239362588503846316070248542610222732923067908455185899140019271857030746224701761882994225072178158397402522341073741869878456661899927463869614859369215604290761405038996840811530053505037248709167455726918822890531124214077474031110277270430011997251905880428912085067087305661268205817326018128140154352206161571836913862190726523366524892767193138452956739173480076229498908186562776180209034245704511359795474519313803704465295895778115896832737827445079493291692302845843178164534000389044212688702807915734286694974840254857112800741168282478365929565193083324119868908124714902179586803895327890560970340904223568433062308969761943697068228815436027664663116459671676867431629367079317216415170473394828390249781355138527032858333480170764564238220547042421285533422456659469060090656204453355528759221128760375059474704823464129752436585942219589620239119974229969958088570533002747759395818177051735061437441273250149792613138493614548802972716078510173824496088853100547295129773111848525456858980399705866253271595760093306564860552282050510860401376337157513100372329942932692894783370607975522567279694516335993231638291373202594903519303715632489352445446750424697682290005214819787664430707625490193504841703398544862994076556037935542937301579013356622536871082540181118089875893177771441662630984045480077306019664506426022229754318240578507821021889317260143986679487972897235903989125952701670369228268963709234381041083488390437145933184910827381499671176889749112780150940618428426345287257223825698832148235127573002493542960784797158292743937066293892717290991009417372455001421735462993574697822188692793452144547714583473021432374447649976277033565281131023625755767324113342272586627832154350859732723964259523576430346027888334388833358402853437948430288094251657083749508304060327334246860689136774269339024538171941358495752135448776980474080325005343895922615028568306585591619955031559646593469388496191781668205174716738334199718154356063128842646305421425994622103311836465909696542925750905525307586145184369145427039496979484549492257816053565731407668286374295787958636541629125965966251437388419980825767627597769514861384694164841882349587611991114819999868207353029851993988595241745012667546001400606438138629304466399786659418145444276090359106294068260772412566105116346980808607827385470729144531344390955249355369255372791488044139989570282824445230375419384778297934282347021453748617433271772688058388962875906171836303212871553272935958583700491622603993163047389027337534645748435389449990064498539618079657653956689082044928155915874834576308742885769354478909091996212700627765775283275477030425239811986635522503155795247040800278856647226241968747961625776546836018882815028137806314035797424570684142365084655242842209697148157848661063362661812827971187237764274142789535107785270386247536815651432209353278709832576174043523254053716538499940359588762983659936505642083642922500418524338376615787680953282862308332313808671523429718737707508780026856104645338996099156159325215092761542504435568819636798242466135354087413497849444565188468001863579268762668970357346950632004707745240859266635304705981220281089608183694686151156803788622865248556402881050290330734866261460504823483510967858035344648445265125108560600521591564412439659156510198145494872972791462039713157325998618906460007500318323528528729769967917468043264110485633662318407126814749567172654355598041811309331547623561472621955108034410843172789798488797325958858333509803838562254333926917909970530091481363595857181249789364872709511432400816876632725152723354020207593139794778335334872347028498151586315057537757271799026937836919035486494976310852427717590108615363819445042557741694294201164350444791290106408956400912681820434195443405341862511670806618387347544177329368160140742508329498410474800486125326735936711092106382357773309244947734983238381826241909601707091090514313379773709749846546122233367942029556428302273815389500214203042291799331754109153054608048914602583824230203753973284069915459142763866953764999914459358485225321774524749295032259680504676517751925804033145419799775521560777761961267857712812676658614241631687295961335838418921377793732662920279421237398733534148020335233658804938948550704812927760067644102800984984981782199925662805999514887403780248773090860097026795716602518329859113809776290336240032280832429790784876605686923316533230254434904940746729881382660579326156049052617112029236818442379470709312581117480283534317131365975015596913352804700104257990282323521689047549081524433407232945772445184068550427391885444136285485046178246859535338219887094643527029445757382658119678831974513036598396180833442171170023524833963492348353163500827214440377758682429672073779184908580823457122036691404042585351860913349386671667604392953162061366063018532605736967901460813503028777031502542537837643253497274944708343644317257889570117573775751700274129025420969296409072955352521058298680122438108951408797671458591450635602120159080810183263136828023952309133495020994297160480031311196099002203569860492860713033141678221865449753199040143619536134085890958419428540980490833203554385539089940809758436915304490779744991971134874329416425455673266727664919644574274927289251707171461377701494703052773199445331018317703632230369894440524104524219963170792453661442663763828919529356918719032476808530408239019783518986506460864985380800118398195436791913359452218051223912361770041417405558908246093388737889014919635836400535750038336005654881175700983185835286913851141919734307206533197630396524213194407469372078838083219628148130702740943791021274233717572374410075530053103702529159664874451978170159542946845841072767746733631732960413437729075089718506461742573640013398204226395853747838333218241779915040087411804587291243459035349609949933937110004668267482569742310337582748958638189458605883217588685654327020995805794535669394173446769382197438381192181799628400968912003263913960246302941341125697934376297361024842230909748720828300237417961395459652150516717384908699166008936060831373816071794584963447288269311299519331048609827758800698793729560559524765883088658920238807504055680603041841889834130899225025590917861755684141139733677797248637585775872195802504857721176736317974173456110418983450737390367423169649367909045305621209480207066034960902396834432038089922921004911348011612127981033732262993048424254875116593808492753895975933981361656697546356026211146867510749475405287659772133477835295256626587610050174198373579636683867130850828085970516083001303250593008015650021985698475395654390042521499762318658207034637549998014224572517921960812585181849938198266261661419490810995563261985897316504282691619508651698244945148229501035668063404173670257196451558209816072810238018260471774934220955235601956780698180841451328914430349316097982641554894443170529218447832081718481433692995900361592669508336465656010544366849962600595094334790474327262661856392373073042477219228453076437847897916725397265465930602536370610533100664071940132760935610131489080371684179146018366375838971349843406650111966612655643507462583745460888945586738547084721585444580414622205957062214941668165773306438429078587082336537300790073151958478668348660027425209189617224876387056598749048336882083356680175133810505430816031741286288600495356821703274654339901107394524519649381027636049585641533012611286861001510770667263263159961500966911640037158182699495285499320158105979513936097576186214738111232504370412091374662902799410615368028322139916810234897554320357930424760994523430372834173705212678079921539460628900715715511398393037838098492973548201165642498536521029851147543851409756435777559999460172050308997487048510168370211046952007911782188077045883116945194225427619537278026605630957115362426195633797742639189988011827192067969498832850100198864067747152240727887537069022210917072102236164021940320623789191054404056816838307285221762344195339162033704103695009849854061199086304298330682768295077173621027818847728536388407405026859270412720886527781627953504099599471209913478164988538029753247194228448536156720146454849195788662707187353647930644278843960194621093382766388834083371279108790889692272603088964200724931862192496464527679851906059261156439128366052497882247571117764380407125872395982927139571049601947898261052901042364010018022199950661359156911253688278183857315552388405860798945219161533931742355541934601731908771447373196321940544312742430838794527770485126855320142834578038837492669505936802344292867660767328894138534560490019323213111020411210310583573480049563450468409069324530877418780429546569512557745822747597505802847492006568388647857494054033844224909798019500978080589962867532789042200578544055077553179624475829853666858829407669362924385973188526793864835949546894509275156663093161706399324288189485400600085906277628507815790477425519467886504969785966485348484695291742755870856977935608260636113102807370272498970913392038593713420061868325243180255871301626750065758610803117296925499424314977104389706250299137329861614683220274286506960300058613702043053502288613441225840724493913101141107659823307016245231474456557863935637363273942893015002843695101028756982728422341958249035805880882881987227943122662799951051330852424988026072728479389818536344980237495060883671378752872611525829012253621146176527972875163099848657965270269071992981132788139381133055457066311482764691857043042016917914092884674425414864622419566939187054693880704632352871616603334903005677680910151288154885183851451683729355594823795673581839080196419002301143624667223363579162486940999959434077054179571258079448327591420366522602731232018836987657942937292502361087279620409718905456847783395021357709923748210996497571215753482796988989841219308958975132027808608269420533553213252647703372520412508720392550490680023053572330482390092868738860750682957567201435041053174680244875260982200233364182902056485748303042481281909103083934079029806340005597220031773252688721455207374773983824809658869345369521984728098184123218278790060182548159576570146092656150069458464633254325229827854994496282443260831006400763572181300735686253628220622063474123327030252398626541519762705972674072681590833140044723374497395881508945935801372950909901447827317862422988983448176726752366432332955077214376694774442745216954185450187396877679980885835476095648849907142629084545934814670673569919564245991607257809443102822031169547628642873702509577379357649218438748560689037312930600733726197117398988209920999651991161552830286515690878670906355222564180721324014613204478236405430349820511375766467091362669589787486245047144562511098671916928153638421700634852935845039069934697828677498592780727788495842372799091193202326710305646397832422504686880942645202286802411460104205930756774366181730132754847150855555595706633164698625516696595877087141267819923791455885603851756730044312085962374643216429818735454872063975670391293490812734615222776841306988841383877828342989608582484453235278021408453920472721946240589593336292271923473991807458190171071883390424688868418731670659928814611898444396787911746729433318839048819844962004566631649449159449772074249258725022693597061495834632013520330851766686442311142267936132856494090505363454958312136568404536397140753957727827418435162454552539655242827774093110883982826782958450477735519769388846955759572825941730977610174214984718708317772868884878717156845846672655760473794735183609727669466598718696455181987293921016802363495080974767667705882829204331655042505095372059765866434043803849071174122692288267647851012434460581387670677815065951428770380704463157927765437168928637445484463043728495960010451846422188434607598786296928259337013196315339516570388102469215029020756445760701363298391235701076994590475047689920100919694691218980581424035156421356434808529346998349633732664763330850943399642500115256721302178695507620645322947730079398569479227820709771566351638322860057039407168273964762383002891606042989380900333898122001401953864525597050487876026371597749951581444437540984223290786890490375703323972121568155859614581920090006113644028505468311080674275998719497466576771435025021752219705943756463641129707181211232987062453664431111537255137460639404136829314040961050352203390458372850993420369858190935114523184467437573758215732298894039632477158670353395862386524000049256283218097622283442343793671097800164085765685381909022564584910238727006651141945325768962592085761950792160142546900796259996810950664697303898354534918786150200992952421651510069924184238537508489905343158421500690490439584444642969046686458257169488068186161893031162712923946432974418626891382761759460519232080610217213444805965212807109676808689708374070240698056034019915209593088421714296744361180735723600687347431855158977660043188761328283244605191662122335688006312757395068493176101905336154524597046154729392512593113205358131625547747200920519315788557106212724631385095395530176683280012980023986725844693425936046100543095535615194808582916838171525266181925130374141457972795402460911457934809083698884517148480793318666049496204644636261044069513902503413914872000985375039337617726159708815487360755974677644251972979334444629754424560751138516103347382111864951867811471641909507065227985674457911303363884171844927484956332050989802102793559058887077914729170397669935676478218151510310359597631173884914950641778615334723622865892571256103357455426633710203432162761837444706815408151174943069026367894465235597968219275989441817253637800728683770353623305745438591007580598664363988070624694184103075326838969797664186536201298400903470218135950237067520365826988004666465567033886334093162107852484809451339268196891438682460570031633348957645130071559734848288027516796002404838535399996073661591138534649205901890681806294106059180763552301536516031826865684781984022085140150291936521112578474035679386134146093159438746930526265417634260222351643366201506013646927933637118975766216466466589765755160686111660293262291782700678004784823841064336871782925436724907633043086819524941732662316933887482347878781396541371867345748871291029978467401658075189023921340259577209686943947975330963482884069822952099470851255606680461263617239256934805452893786422344195214733937970160106460713795097464101700600754351503198033321414595523748658815624866867390876388327901841333371011802840165717629920738498659981155131380229220178371601042065498493138191413593339286679462918221457560643165345416099879443975851244534311355058014383971593202349188471277035325056358965306033646340262695917183233883330838429240470389833273638327269041785878791454602573199881109623711627479909138243906554339183546276809039748029243413595528606462333408567356379330831883206815948988077300510101718297944390830794602474069218923461283395573918921432047540864800104306230151336990670136645939204216707065291572278384333188021191246333889923418128337134824415394786363929023549634232104061924093522235467682751049095524330137259296437444371402789228405463285953931680833033587206443008626626821604561816724032051346016052255677376333769861401751855052183869545521294699094287981644834956289560041329522760292296193290653295365396714410494314168132847442052825996842694469541393051301851249066671375043514635452310451818153197384830794038531935048655714480801153245335321412923232939267891404593831246066029618290948804446130549119625096201503278792151321116093461604111412498464154619058847172281837002419980206774467893509357398464993873764703415536059883498367892949309603416587602022138743917567862815110829136242532883178692137862954033226836563536535236145387464546105030680509070942428184013664212133925908792683522607236866547018048590486659143980696691212655933314050531928933788150308537378718074146235764469438706734178959836517468400474320883310641244679911974284251235014002232306226961256790742460446447603040146160029023318950838995875537073497664869196954753231482210230507934625052374836697261179451842470156222306064657430063742696172460679825847991751238962832469648748845642903373530424080447746057685561640096898804786301645999178093989031048513239624733914814970307082845634818588032115753406002340866994596018048924815952322615522682517750406359317433860953327797076343937720740680094065728435559542076635832711175882354711936999893069031285748528946238661131956545264883050487993594142434221283393657925868878639475615839465561891215796828909244413325361895758600920708469657837244275121674655460739822212346843294929759013787891934808645227383928558202125277751813037765975041315539564729484677076855721744156452811930104351282281516679935534563687429465476129038363712284572118467241171848168926101852856079628542365446591462331022129434438811365550505000778000863414123895962860147671070877915631504230609990683603029026710330659432659821959744744728716442776657074094590261905425590474519186613884004850149335137495504965027173117345825176388231926281453723192636332198819995686711727507217503130228713366970311237857283555725023735354743565268291265069552450493611355672223678342217730968247084253936001065608939442359465304572396519198769797057718504744371262019414410635138208341960423083115263858167126036203272818221854664430824521631268730366475325178569858984170302049346917125255825633064227984434220552662183935633336494711684141539026574651644329219275514759212996308073157329882110642724277939807189200364091107559561112323597349537721430829295783813468217587636864406908807596759135788552260122231540687239739592517169988612582767352629824195652368461356418305471387309347711900448640428152447805826160384921719952487101905689822839567932167726742635741691299607246349514553744928303454493241337849616286900681945364041741497340511693665119764139325108058631580414596709184499994530369015715290133035786443812456622208185754745636055027683225682364706879864082097098473278107128084504056175810050047662826538288557646936979258592888128966547565288082028614836154424765267469354834906347001718969092067689687543003887802343255503172330877215855564075557735480548004350796719742733986901522178555203939643864837392285768909075445144105458399152515621271758954108789142417006101899201131031136628927148084036422494552210898415783085981084922294217966969293898778196030240039637449766610911594116417272984645930255404045602701032748963101741600658574653945706234728423291717078030616857417619632449313908197551985340579295667288006065493080708774645161387009755305725215216580608763922937283665501339902060495825021425390265597308593360947765047560156763536208035818468444138748102651450443205222153276238812347077167052215479675013899132738381188575450737493532578610799094676913850908277957877846255596814259550921178959405610889594497321553373831884079084535272080476871617257835078819591991944050609725591317262901800968891955654502624761168789594464132334535418450223299847348633793471884507899259374498623341127429350505735470780719872843680031391127881628210606817757319677080524789914587725249573299539773692539021124370649192890002008687101345071276966749712674979273601796052721145717295951678881472615328911176374875579457462173558906862115374207917906715629718165943160652731052324726003144544908264519117845616683938869726509976345530449952981455806354263991862650768815413590187818030108327910290761296221093303549419374837646728609578421730102242497233559168536359534049309937665557560003741686767119029404932787142841155385390982646327768169432380084972423003877606530755535003289691742602532996500122575484330109598619826901115096975803463924712319978500168520390890438835486930969594017057224545469287193210219995226787139105604107965395367153528789080672000314376124197276343867469557578973539871663928029366849231721245533648932036463334217161443956740733846293912111591904529306727430420556332487972950917550101333510658629465583911928444529550570771615667617954024059436846459413371347457297026859087246650753319203113251043584069228917416381456078778447740686003994508974057141910060328015236364863760310372334080569683120336640082851438697861711333710042466430764250796487645932582906637690001987214600544856896627202072838663264170398185819322877651443134593177634980526027328601417741390708254868492127567085836751962892644833309526688112812347331942938382066960506690959741014748556380051644004107430318938409247549037326990730590077179412167119940489170734214566221487012754131377556053596129881033239976744992230346765461544826052394324608757052907135082877714076130387550915186318929868352424244243576558387514745344593627015131926963126045128042462163766029327798141042530550318427830229474712007514730654437944782882023500881552658100730936532805864535120365548987975262603414449698050031167263645066988914633491488526459917389697281948527859749363859590667622792042098743054282265943585270221332472904126113200357684495446481918094340041533382528328170171858601237609967050224931366240086932581314006682534312334849217925743840745001701879426985188885284626134637460439856958438545095886777371917170492223069259169740116722275404638833737923894534627679042964687699155296919172394184255283044202061457174151284640336829724065587679507175150603592370009548594344244340642639426897603606354829438959830210979241956253138995132316376867306990994069715375810485666769040844864184901631001120357172051016534238780719124220192376165831408915049027754292740847302796087271770044309113339571498561008201308854252470879484644602898077351432456914395386882680290424332729272622866244456655144758526572928703728272609485147600732649051293883731940106897063759626200417602497637268488893460200533959906042255061346547237656571547633991666577627746048481049373192624467840867126928393831705673620597795252798827997845753373997967940624043064076847569026342873001004357882905863956389280220979153798737896756442534498199459528166106043853335347031100232634705800462507511774637235663635267990577178323454052086276769735331349241099954535201048171536501384142304287227467116349365212525055400240007909745910785199999969123156027582352691422557492841942754504547436755795503821750700609542813786834903822310757492074938472885190353934122809024357775084354806968077081657523634263738001427139949187682046635195282979528975780289840042526100343090765072299321991994156709556697257980717453100677662768701089618977365329709235492034743534694055514748705261169383825848368708038739317358945060921159797636628870476703651088126486070863380375774559107580882646324474498836075144525675833334892242682549577920200134565856434773620575399544561072604148664991528097469858366526533838902273818366503178694702839175922333121907044707279565881240962516284850525501667580224188365786292253153058687699301905741692779300939017324390373049321958453382453321754827960565794814716013830136666337296750686904866779813910308013704404270028446444993702394119018442833017361159410752532918145633872876798753401167311759301790331054362788250820436881241412619210111941777607592650930817369494337739555767490092386761461635469039932613979506076723922877866489666900991457159827208267894619666351189707567216771506303085360965134264923437003319540399256938255952483284136847956539038329771554203390042882924596138140242024381100775052025202174766491285291267125911197598538027157001074482722431445309101809859612149824122820171930943802331453650849977825237527574097642738603962426579948628218256781413597144264943698825842696645017714782423272158621485330814212211742884116709368278403630758963301664033889873059860275054324370996318287507391752692563398583723453584353810635196111024493234143900172507475865171029264548498198970968791200350722713630565278399261865530854384764392782790133882321932242589993849631223212875953220656414266824532150909671255691885057841742381540656454918130986344990048963605357931830998450597445874765220480645748224107189127006563993725006640165106334857792940765882638143534787271753216927816420806420622178972636483963071653252904129639729860611771525098615605341239174357964194836576801194702776439596386077849211322164901892137405344963017147054447660109272069715646923211941917408043153609939215857847072607017384842744470653352711472884862002952994100864728963992854151967282696181756605599641553747124015757585435090873274266548018491931698942204376568952149793178467908031355374788892476460633465520251337758148843797623238725612186793712729150696174727742403665182640832470305795713621406945337242393536674025001051527661903749619055858824341307436006680073383019263515456450692602919216432567507198070021357954747560958131481864141881386026186760759954936269764737457678949176710329978236976893878606879744306025739675287008301500148819284075054735315781598415593628131893226247572353721182594921844505364338582086928086071404923746308314515818138508521360518543170811587872219790434948915439668708934022600799816985483022521329696440336798363917133110883085933320204836286922458775145412136674116993634273733031762531829367435415698198184856906761231511398393371043362064536145871504876709282295946201426865763975809523122268494205839844752541792562379819580112064166620375186439509222742314048638491804990409517488679697169090455852152362133422981997018461381996473243804431506903676623792576475665785925175397233400388177677252454650402616731123589019708090434720929972154492298994256736576326857438171018778746984885175896905559252795788930401222928497483783360877763044666238295169527294561771413870431086309551736134187315468972837914395688487378581294223599084160972290006515363454934788678962286359336510819170381738377198251192999569464907796747191067516117764119192493951653291241651763032268649250592297850672907421173073118645815430283457711584151122560622069093626890152453809439086260330598018049334028304520696785749136813158946364766318478440932646407327624270016497047629592494148637791126374869734725952463457756590953498255676752008147917304818641019080402791456046436656934775431232513807431588932462996646074065928052824583030337155505473674586026543220882240240371486627498120952260192817896135722518332504226556168225933892135719094913744400147559510147640807995779092151985197986900043099244736074491327427419711318827248463651250225381575660726444400961728965262805316014100744459959291665531018206097049225557400304940210021918917034816674246071375349157405862091793965227274218523067008555562941825978171169146786503797332408786392275660618316392671894937949251089561592739233687821797359560616952310979466057274561704179249804811617271644242207907397566736968094261987404660666353339438939977232738532523336747040319358646620640184037656153359691322627116820232404709078884589392715088445914881732390970139375013180813988011168119714724195430731969267013267332174373795869571023903706816683237016554016487213933272182164452533305557923982611654877442763506999812140264516845807507326759754350612408197562888012610538448299781720377626686540419416901725434709436566436904529233888681189631545564805691338217650858353306765169904132232638310200772354641248898960709436326063071840597068409260159346689565276417940423427795261847344482685460793304083401253112027534838469463472411674025568955650155249359514415188570644495257588580833525166708027965736397322767372283562686676389283790389861624602692388976006049141038482121059338536818802586097204197522156937558734221480820176406630222647004765295855899785581086563585396135240332020857666033529799059475099159662472903199890232978466696813924506323280004246882143417420479766910273195758786543519519462435560999906076454718134525536378753905095345462913222963705272148353309713482520178275369717536287837253387035285909087325954016646497113672550545012652024409222567718419007480898911723938578844816793737787779107597338937203031408248025346219967589988535065006135422819811009489714334382411437177200236905330752823059656095465365167861690495336114771458222503705274803992729672542562103909396375796964458129337067270109924018128204089006288658102445876038096271895326679203276060487244233318074563510891360601085359474060810010366614935892341971318430064673811518936390296996157813024457121300708930031783284721386288756068321714451137748209580249966138250522837539586341541867484458905629136918202891547844589794006100747133965806700245195567472722119316096921117871061359310566928105352581063576484330114271021093230679448984713552035102958743414324533081841648746470955111748028468501197735527512090773698346845333224997491601942420954555922693680681081498269840884022518145923168900366033430731451532504455764513457063417541255348753754222452129247033558408557377812512861817160789130667574999782780349337984507567615898402047707014019756071774058936973849117814666695108456627405413551224696594973064535371466190057513596674567606804441913886296137570005482994180105942731210416009705709285290013712245606706999004983217914446836186284046884029358396387303227522334767021422947309030789275529497960871300944634838521194224374739121174196483768135233822519423943080302289903266490245284943778042946444214109841435667982987579968146786133695143902800674927941963133002293626147589313882952675102983644646649919603855849053133402551568804538931549045858078614008806039221968296097983410071953838462934595358429637970994287535366758042399190855969502418871457350358905870633407481358362788456437245535017161497379531553387670361226536870440162116686572192211538424396942217492564800056605751484175626931630245315287451938106500382416803897159178685192248643762708626340516751861127670236294212116862264708199142867406959796287565305325328904083253613874587262865346487730931532662890519508834567731945671809036422791884585101751025852135108558835025451513740748198029549726092016624523860368565384314154030416112496998044298140078424218724468915687495925557403708674152703041513197670380390919615026594967486909549957194107280219106937578530287360560790543324596666392101526323065798513484439230314279323813917475265069541210291347255915420909442278329964370555892782742059947563529392900266518599613643909985266332697522619905098984978932207863582405454666009560312177229268406731527855227801527377973397083206885736394146356898587665983916047706468959388036935714180300272949336085355371455741677727549878251782086125285347185439742406510410981997320598439607261101015184222254134264978573120472263662036489332771558377163513661643531341136428816947704858179054228896329047847100267124044179392240153852781749473693977213496294643264065707717754686193578531290816382677271742534858341247966687466901256477041177389481388311420777748025141587534354673636415375268918121492247022203559310375862546198521305831460745363124057410183471183610128288984262776525961287865067724636368593072545668866197117219679258597034705808796295545972655467476668286944171102091430511430127509579413587211224313589319913339424926581208424400911836358092952691524193477405498019708474154296329647636429154283326452046104815061801658681420290728336437151724976272728676549350363599331738951619348953311588527288559187542866888731384461448238122078085850176178102885393575763209040647605320444216875699079450838568088441648440104213773864293465601336478324547681364697103093055330163769313792939927623082659126618425344127746188939853633634747536941674648345791812051250252019366002157981205304247300683405729036100460917040001406806893424918367542882966099499375861987167658186749993867915256381084132293443074098232011249237740652829750325448457589440927317363482269322551555222269461944424874772222990065136475252578438656702210285061308756367855178116781911148319972247465526187051793142597140514845214087714572517173017464970354576626591330866808031237911440418222308044706028347376422054633211634374268194709127264357372534098318350037260168981041354933070817418705886607351409388802267576858643002409961715556026057843570475012685747929291100911545953963777895632451338117612508326164268971781814317394590600244434134528907675784254101241616895190079665208637850891419862939934693931117106882522389413019982624303176307966434883699044307659972370409892468387349842526525597556321378284400424948626207466061905135067922084835033804331904788689553127003404179517853838581776606161407973859184037733216939492405749979638613715474634888094811772803271140415323869072402520395071617096978726412130140536703814457009892306932245042314313666657390247007440998262097817285314354064680334736433022139053590944961534894282120706025943044621478963174915564856385662312477467986865968574030970761692522456212549346537273359048750385947239324796541515223628752782666701170399377321073320117520098071562431680120692504549194425978672460500573321565178565876689836592500430017943718145566356747561449156104988340259911257911034722382278937609711154119758579173831653303347903976208634020509241984194296931921791339321078690366513226447944780866868128455262041572231041737598554326420559434918099433344450941776123290231553914058027821179235351862131982339769373917312335157595369549502541947844294414063014952653463500521203359159541961260337851364757672154159796640301625724933455989188245471792010069164365696073886252252100601320592770384298550947417264285051232206200503378668924100699329238179402794038843304625528635642986402663709397849328492041342331749278992725923411403991582342740589203182045623757250277293663344162798350744276471508280854444319893841461873091394313955975521986618873225309744001876663575473625257276892001177866183734125117250609556768182838751068891527289748431663488944080504209776634733102765981025929112463266087708343852239388348886069195305384257047756062584736280172503034053522002551448617149483481245428279636404681147683564315312186153721656558849472850788931726467902469157001910246419335281995239493918042680169618825340631956708820070089516065335244419182389966441211512790234538939478044149312859664039788469818067021588882313992314661367929319652654085351106867696744070236354672959141639883907581016749047419190269813121565755122615611034434333562401491396370901296920784464828260072987640470257378782872772560080850972290647092437589127755799598846192426922230439066009278615799827235865972057038874193190347269648418873880943422630212172809322869837335711095233322055002191408746435560872860623626732312615701752876758768394110351704623563906924186742478651681873411381630679094331826291809568142697245933531159030147879617588863695928222641537592540382465688317399604708606546657557217770001607396301132787234268101755861470390523718955783080426262989747566556031052762410371973055943021352716205183533305081551212962427969319342724394687673100526738653585004211731359749704856718953036543173337529278201832402317460107377076249770487555202749244615350142609442990869099126544721924958548190835079599185795163646757199303741587550700106368572586520004333683692657941239369905667857063875534939606472281665319839302165511482029660228371746625622158175547764874115257579507638725478947587425162310637894208916355181332217305626449504241216599323554979955488948557475022389837312082848495949078599197291691373151562483617271047704934629198875222709287919765494480844097064286967296946285575494312589730093524975485527564260502808523296605064350279151763484692483186007343131814574809587650006367760243174694265400000254551694522061897690949666761574214152697848056041733547963764916719997698005496894125536432900829908733425699840847156164846812321463411013417714683742934786986612366831202003623428779985861658873084882674232355879765693271564996996451240871156062992257896146167282534531094390375126190438859778208236555052090064475781047838702659966601082735368293215796287022771608040862760669128023937888081184942333338771865067553829020580431219169607008741874844074439837816022158632292484595396603703177508013507370619844214444554798409051745312335242618279391117195396675872809743623313011731055110084730535621427992707514550558547783734288152046715904822658229189092833267900370174980505737869842953675240166453772748707119106615210964241281486902951758236988018555403332605694275961563095299872234007703224546457408501861392914505903593058900072540585521413545328596945869562456785774429082499226371180941216775628163482337972908309009188045380184315510831661112123176523664414530242058553806093078171804129697128337703720735208729293523591653290144867014832382925766125605883342930443477481762090776778027084825082196039787912105350988721364910285902419886913029364963744250927643951185755355393211965469528127787746838681672089863219946707417380542345309392596513640693558124825418040208567496574193432751051671070453530708912240414204716473542147304701891508124755991036897258524065166418288837438456361021420013667152062861076624459612328913575545356719911623565569409644153157924752320893720277551001349131560531383912108631859904662468903877466732311837611040594155083187348418328209182183975352240718224825279652696084209560595259304702368926287542109690787339674563909984768988698742886798937401566559070679789284081180127256872042582202841569328402835923327985848939703485263972377925087577414167560638035879107068816766185042189896790241770819740098922532088740965873006935690721983876288674442485459347821110010318930131481230017406239617809753886514273290925784716431717112922543684078492266714972855377388739667660217514170919584516458111462089298374779180797899098368660910673550218591860665022305537487758632478113996703568003879307896956838416389530597780655122706477116474063533956831284454181711504288237715214499239427842775255350907919107420619887311638207803198370564382336805088560360216936181503196228094897198069043390731640106690180892461003603255753193142697197582334745154759145084062539655243873649831892738510107288385470473905540491738430239520270125448440013662488727972036906522991847419207679555156851287919973514262174275874603556246987920975190076784538283930792874646983400954017049078434894223202843467924019803952324079442387988920617595389146109270606215128201982561036714295360553076942441588256048625306656027264811213574925608039375777983134314234912835698832818852651791348366913525002351723004500076345490480837067469433780364895251553804684014673338628984501667283718506422110259363491960627796816205252534591708714415854287012005119675511735945497728144114407383273861349565558088305805740636767669845874244917320588325991738506633401120104948780640518522843150464114699118776838258933327971975652917943081412083946074506618584732042903880275351583216272308522361023949217154223805083607950308423431823693343205519716543376459318877863952956907453982486507746539270470642465854278598805503397148738740817920069145082067921828345709533120725206233752367598448084436133621197118070836417662586295109693406001384432811426890759683517798861212844630916127426394421252220274833498965838755140610128887432290037187700569917449407558752238268675128053041549615063017493283466741438438566741998388827958861729421427127090751397978458952457238480715175966957221766072941698428390236076469877223853891107457715422212375988407865537664815547713943431352663623859552698664489987408137404511253734101530969351720751967710259401113473021495196273538848149844035893783395364923752000515638109699601711904567215493760080715808459538802310321001034272928540456054197434353014188036283593996063651889756091705913449465755135999196194036315954082384749948225245243083670434657479892326932612190920990577414489065403430235610125653655093820474999367314970727744539698868477955767552001323029712968930785293082101189007838528367803003762607829422338376845721805520005352825616446713992800890858147546370540258372050879608784198104855021506904160880320964470244110527227691358067194509655547463784214519100465139534718548162732921152307601439310668064455131221255806853873826277624276398639541631634861271436094206936484068002875440472363948700594022035216824150001783310893698378130208957487928116981443840563313583178193478893562128015673345293568907998463432057967778175023639209269221515568054489275667665745717866278014320912957577815361742293963081650115483209118657395095211689709626065220483861267549323753812399440621273504839229626609242847546724820025248466064895046229519285194480948582572872817749331497139146855914079012369094930144021396044751748049645592819396765267608258756928890765456095595650147468509116445426870480689650431023577762254254948970198566882245245305036496798037668151835371692895325121208841763168721051150119665242649968715180540036849492728654824362212496317812030982929367326707386496997291155523339438324192606206303700435484330033280791635573647015164515376484337550906703326166935217297478931702759790582138414954070036120444015154885464072448957499792971314681645496076369437943077645404576134569009123972289217895778346646961987350196360924836556210270543061381048609968750744273944831893716384538976145341141574300016913233626407020533938322726737184141885328711623906282139088491621191012019188491023133358352167205625194474672576148484696400338475615527329170866963249545048542760113393003315918655091164822365638740532126574304187544830478418347966508514903889996112328574498298417489331054607239581848272378567731860993212649399869380810157267248855911090294466528441308347310886125451189061217837234285804337206798021819403060209660914113177283616197401540516508556434336915171453271704101067958973135205858750573289679578985347638523080829961412485704959649795471345092165419119647821628139655478310709684509310121829439644978024902633525269045870725149067283989960207320541973761354633186444019206143739036316775201769695803494098131327022837407246434364971540397144734653193785454263046380139596783194590673622896717407744964054683377162067488312430668470253203705143300728489697343691039548923702989411281720787861483969126647110013912441537529730507099906333210860441072911524498290110600347895767868257836267705506233600107577658465404195114551866851605118661111019062943861211786305211383613415612585282540337096700960822174467007664014525142139288044543393428334416391547929513735453143596208655856790459742702794790694483542858097598307085546328844887121556007261208594650489112698531233809803041043521943054007685148254518693485385571729236949087520299294057426744303238958548773353352834850607280576514077247437568959584568605736160189041082533833262355846321772239003868720706284936305525451322682987695625547075025269906780353022986725561041202314521913758453792543695000986642391479156471437975664285647332047485574851902636903752230064498708987357369464431172946069756502917891493686199389941305089783148967876868090350759504811123820302217850797207012813230167173286426994368521391056469965110263446782933400263271667678411375764656567642004420348369647842677122435594682376374728875871194563645610683059092487414238085931506772128141905429294482440206631436858557834027208181894751900809248966347754553204289241995560602727552823250836000188819943845559824103543963496312829622052636224733095013017180947516204656628269766363750169665419703386126466273242753690522344480418123343689554189816737942518990528690295189054964795132982558935157188215186489435588002853480449275714878111307788435435338581939775938604657152764887088923925942909522400075028410551414052916442543882486171207046824057150736933370975152936275347363257657695637636681050849785986325431967858200061586707702988550475198097743005012938594728505521321295609825952785963504685127599371742678690905564449446044904676724723713696128490463533913079142249047987391149355101611075661303079587000989044304072358766503312743243107262769869258048349268744915698081640384033360305328615698892933919273582195149386353338327861288359379049271381709044290208300662440564255917371731461419530556038182779551419538746947562151651910346919649600799868234521963444706506301449385797798439493198601716639198378723254515719367387232286510052810888897815448801335732390522612082586222697369871187059829035579272545718280097649605662214920947405659749692897355779070808365123399588424224434127240109023172594944159524333705665043113875795188413707681299190775530620464068873310498958695644530900026680964417269134239959591198713300047120080798722033187087442104278456168477920394292759926173904272815915045522000042136236912533524405132160874902906784619333557890722201630652133259800249465365251882543531050269979779658411630901635924042825491809727906743960497890049025243573925630723565745582209958949246342755818271483067405814203702998753448585748920835575496613898473986250551887806680121697098264667123421902987058656124027242123844967513032905251100814945633490686571941971642885528159182108631059608951909203103337281069009862809537326791621751148490487473298198604413215114995991088292966401203941643226210692352861435613983937293705942946036487701866023684140588100121790524733567121004536384521914374193548719579275131664292065697073389053195383263114587184676741524515780773851570792262666997335816207524851926387019641953274720949379977485019817289535473890644344878616255608777322931421407488792630819583743046307219562619354718964294802778698372137496684626887885495706005304165276770550768586874993329448979203197839122707841091348704297465870590791027994189187403603638056962486505171422205818502894834060758645072772830289764209326498068280632984854175110487317722478384366154699030757234618042616680301280877964053271240931288738945334620224285104545617762677290595989590942093660584901616366658729066869855420312169487595957647778666360064021072507663766084939557331448995131992446709591273395919114106278355955817392396932408201176983867098306694815191588922610353809303587892142948211087286071285033264590789433982321396389265945408418571828973826937867860723808116443934709632882091542486571279885461891289841608664030132394235521434019364938855666549735699733527785790790987482636292669764357065719106942740864088871443043135700131484295830821858118165309819414108866973774867948334978396285094495817945442829624256089342500888950640620874236752256498583301698182616033796777023802766763109649355313251393228517426083695759456982811542439471967553055059132615111464048589012709551457932384315773087795798019585588844096421836132236041441775053626695993895683266055795383913823400714283902414778573788920638290926770351379947557627305373836151369216935138907339531506214116218656795254082947156372805824766975762816367784772456356934173038134568206491366735210704398096691459761440252241359164362810992083337894792078108943152324324068089266732731669489761076565850830088417229012256076441516659987774862183631363338567598169854746694972720174486507761273527288356868138381949586274376626430417489145439159584143024113614978777458015708938143116804918517389211882487602670229923202715240961178774761066794651686465286230948170506277808439330858826714120974717330783280936967354623284923904099019806227785595512979649664609944767343447995253496133415165247252344875815483192172088404413236636742806809775030564925477561338696523259661710862194608659579341528426599984070397485709213392647611095459354153685462894056284741215264271407270769261392243866302991650227612614581680628802575079336668997182253513129825020587894590848990397208322685209314278683142996828649784755232420645911354388381285322902766154001965745973890177630171026465692569495228717921628922745784520416489353966109551764791994908584159396774454255116111086373405807932605325277427494125033475827269064641212283948114649703407294285863779332153486401113973018221915745037471878781677875574779527805343728020785394042662974053738553520974339665682411285550946982519113691236426083366745469669510398856724858651055237805424756330896439361264272492192518566834962259731445852206406719339264808090466863489776221105345005429692744559676625420640714569582068395988577751008357324075391080567023026344084327982891836744631033734928368074212641000640881130273171433074212655636141039560364956304464240485388364153368433499275656213437703990048860586799138664762615197103681773581699014486584949729840885040909040889751096034472897278299991977303216752950441422285736412450066646521779409015544300811236432803404778036241782512800623303532589656395615729763847809560493946693849638007845228681101796816274950140131914875234701971884989883139784189698711066326975468221186975955364561042202680015189358149718740188986522842135138820624654571403379979486648927914746028350440401900560188545876065650980932929464351353085639686722952387411830341485915704062829582118402242726383798873664138697319483879970652491734946792124327940384485717692662588362468520605532843856824072033034691233206041445112408721141603849089819678447747630686543577789218205012059825793240571701674085444276472514487605594421683528109671715451098043520493344987161974133271385166591077711984835263201779045139877756599411116223962061765161423913101359052182523340985314816892739922112603966707078449535935591298653007148523942275559770966059413453780709520878472396974541690399294465787579616890828331106592492248321183126829699075077357089615361655445426341514825134436514700487838048341310257569680566176778429276606342157355487627619901312452886018625958334584109239964961652063115002110075111229072076504392064046925595508969687135622285241906607300206810481854560443548229325102107956400001593313409956080527296527772918530390889640415273436259251866365719575416415270521970144241590696595586126851450028261454651249491227477320044629185063797234985645910868663459298804170421346212323463390063008549427759150176478017641910397992060878377581176343253010134627086570344673125700715017093328723680367785234811108414791220852644359532046465408405878460122994629599082033968041997293379323559048154856329531816023513417609086464005909261515488457872527887934697403863178048817133985265134535909222299083998241610457594130417094210420455830697893811330672853087302448379245227084902724857601914118467577602283082327142353933477845529185362689150175840252643408929388674366799780670737804278681343515413434899327541285063956161054343421790395009525869767374424533387092974784058578566399451770480629219408078321128526717029535411443234619127936703458698099627797711087082335845685396650773476331139258767002143887836404351824524741420573092168399613950622450990915754999687468807890969107605853301937419661954800025828169426521803273734534964058768022373325840770980067397607090347005778716499110824771070609706937966162494166957718815099032267482001231224662690315974404441074998183642248214614875986682914544469874882173356637864033981346951285377711348050021456716484853839203521320956540279883164651709789693626769822153090181177380555965417767520136431228685488205049147354342464247799087222980421128606757461404821906398097347898848676110089580240907607407421661871615268919412589340905222301790119862590965549818738367037510968593654049969868343187771784924070636703569919904537776365709823134593971617139265565427160494530217402054336528078023693504924550026926092679145874611225435947784229755642411015615121445691143567653172012310135381135209396130403269325373367455047594555610659634667758351830556648740234811842040753367129302186065739629821853614995426525657032352717894975334969256062882039030418704271140345105060560408420536578149198468535434773394630868137213538175376713965502015564430079364402741876525555079898225850470178941514318839230783452492027578077094995530802477545959534329670850572212511327830121294893649622972976886215969857054757787013207596108217471291951748855354358526377302931921583309014756993171912975687683760432201555443775710994184666483825043680886131050846869947690482535392005186106529689961716342778943756447508538242676923749810858425022053222168237657663291041327920327423590549862636534216030586632238876711978220182034141750037832257111233394732268694748241272367290789450298155533711253929362905763832547709582071018559690463872219965204215384679042933540342548993488536214088503468060884596404101729540163926591962401229537607861487478999860954964952765910564712269179111141866124733318174007154982325445246775250553310600221689723201445447593956429207925632396780165235118201447927621883649632834448307314364087720370654468246703276237165820009339561001704234138227089347961010410744190232398949982916952961875957538345208790056678224418876564378576491266982354457701688093120146644696958158231246136663187523014869127951338673958953576801106130311206686746847746266774111758269684108628105400867699151983252679141774387899536822285779932434182874091264515552615396600673786573945671924928416556814510077358802429946652485397863648272130502537223497079732724658843928562366544592403996175649289347735905859520252417748793939017107553287296540382014430231282537358693799343840519042319264812070713948314321284251372219769416821294630087883571164575578152146652866564988824018955477936079665095117968133787403381024957179476290918211660154782172854460870537467729081092797039380757406559121102677318482468532460660400410621517822006049052783866719658982167987848240118718971168322719950465787782826500839578031356465993875806745249025054733366741505089037594979234395271777159287561627914869455865699299601026116265900596098164921415291310777213253050047522334600613282515740505701586525934147362638980615804508057365620786670340009869764810812458502722920325983198189284682915710542302764171834081024877237214629886500324559814236113646481549114983330647162735764270519592549466814609249765788782317501945819903956758581204696990174724065173463626215573321415559468347559254997173553859894685846180270316631084357723720766271783374448531859088474783660533406900957973814413191079375064952415058528344992356337266153359379547538322214570427468412275324887045621204703470803309392946135338579543187511766243973865502001027809486457566970336877693451193998471204527055171285615811965211861431679862473022795534883082508949093077903112226015043572256936996110170389118028144755686950540835394332042644901157887661538184492032044966662354050552740652692915413436325112956116889540211074307219774112766277087490728347101508281958669400415311199271932810185592643658130737126862444936646806939588703071604032124275712554993186515448450503334126220368126120696694147962285058539874015893199631737977608075765538908963383221765674682296055071080758980147076652376485084762128805480675887734940378384703299780044310905649939479793182668421991603423960810314488757683254335254059182854144032710360002723195963944797680152984520196187721708071232814918353801288535770907083547978879496044846853578723552314463157406667562336210670201985789019958968449083171055334381932584677754290396648794717543848001354784843992912160932078526726486225966249724444083558211606621615883680187649457793225279443072387365393778233167145777986238307534866447121060545478504994008079378081590595831713221649357300675035337368160875618926893624628583582121854415771827866490881887443107084682312475906715296325378734872260077403651582335949496191561710756064564898746800137851214805372053122866399857110678083138127668632580107549219625977772415483904982599879360141216515034330316527953484923026861419015645266195116009495947863900846224133893572930744066116937636714280840559868888694328790722877029463689873616244879120612625006485180221460279915883415048033907867298081139302155670755373911869864787946966791051994445082657244851923347129842363779531644949667997370341065724172027802322697469849767313702683095850663316456928968883819042626562887706449878281692315243721849822860386078107855551615326585557171342425238306217881736033672577999831689245200571802889405924160631505914596234176340404375538941440393951241742684367018192561247933517111598738172093777994398489144656421100325388393154064466945421712676428303917253351155582747101839722621620219641019302029216757005289319138615575299440943007135399541256473955393551812144723907431509668038038619660721745718063537408658948246471023416505837165066513806910399976773032047476909673395741113118070592236470170669040741879654879187860715152535943294497958868895598423549009814356922594441796203527937647089934871821233862386039129191273254311508452988983069172843695286403091993983889752257990719110481884204914691638900597151966406943547473228363571705696690889831836800174006574488110788540902541557093467256103050924611850769468827198057147012080142607445974861075477576085508486799445129701838119962802651634348411274070119985845451713389755350521528890060518052933691334836854122887142655684473194938301343140850176889841937778046647423840348803946313274514670719859622500478683186241220202512841801352775918602336621889909631285063096278914953526911360924497053190752575810662305315001172858500724466685151075263032754118740577420674857410726783695568005776556940406655639124847830898022117240269699769061538047398934973795641428283504693623800985404862420850022915582085364154073568503822441572883944592822570441422201019779274300466488296856270830457177928257410870710484346997273303158722588910136211422269667523260391545174391805487777835112649784354838287570248246734739510134408430031681349154415609783688181837225463665929029747855110264291168030873679946628449050706545791945319929695141294726821402899690557370876870541735058080361440826390957672272054218674256986516845195861095671824919657316459271653995867704736966284390636149475784805848714311808286462184461275384903834993883938313549068350079729407345880387326725592223051680999650862402033146482066342156559186461794978968208803494685458060051251112216202045892914413525748046329303515189626819808316209279355017910626706683631773573107039836778051719286571457595812611621113207430081634137260734287521751726136627142897649421699605279613563516994806550982295842561559543376802829872774779491548693650383760463728959918738993184548325702870156815157832958248762303633774760887025299677590938501858819378452249997875971324171505826481225111689584553958603622607196936986450634371282793357697447798250294367212008291107639119070448771004249682520624931407923445389582111619404624938408694396293259061648355614771306304215708010897794116602487297403555389847750146624386756463552883577167403126990976336593327703564771651007910611431404797559939239215076507498663472108141407909689343614879513721402575407906749610749057958551007881649863073633892088071823664385974915429691086073588838163273158551778924040186155914725730897777888356506362708185036538041099847731828103059344035094938854502537931630806136761082320000362169553360167872219500414554540433958620094343183235546382895605511958153267987813055071712488248649207475561643371722378302452291419115107281563966567192307222421873049708896967020612360664560038602861894938663145260875049515493159452243366833567731899188487782300163483576133479853921750719487576426123073172822250297881954240624545685142092462176743634545861532243692948650836161351567994243872498044722062180078299148759184508650760827638014060038717655232796922914104974236976170365578654398979461042467943505254780019846040929327892973161370929627868130889578174620731585171514789941357237671413714059776438892282828566976425580564172034031715187746030682202557685634422757921570788008850219634257398991895187892578734262377396326406767016351819462295862305517706320580660170704602000862454284416822961648307045620126076624864315448747538228216424174753634296510625958299218420522094356227812867389951862778972287757164508295158959248846231246551993672821164448163653069751126409979881125889668251562334491478899324014176809150782514052570985823685985676104098539258038537977598972164743059148113084575039882303144031484874073039900267087591542384589815278056427330224794637624555966743886978526195995685238961793198023909726283243204608802736179012352176078048670582686387019618084601980170449403446719576067593323698139320879468501018265375871026965287545740384749426321640257538722326254597965041077488565033514786535355656640754862998792023292501610644241644450648737651346601012853511597367374789284879915772690986743962224203406091824130838723812299024034910253524779401623325951653673982760490016283158610690004409590484964565875153919996661889145057685567222330478011916383866993837539330213944204839027940134091001042602976481267748669537983683727010106369571445967930192321618580676125085062373048474841690811134271651428557725326533604182889340345303115652476544681816912093805120170685252752615551828108055124734145555516070095933794849398751093489300528408621044389351259197518729363112801826718000333124928252775581601500309250963919020945635172439465721400738525628234103265998603250152654793421315256480339932044425035385130691273559812406716355615239561961906832955852349800911116692085092785058024326145581364520280568346202415631376981229779099494180455422985622104125881573660605881263013490212026870873369969682564328187837008404847220732501860441077512170262438486496597209709883409926642573925925761918315490306591109711253394305128501647383328866062903926368702346437758118646716788521142686672049235153877010717914130580451983539396734997117088372292448295901348236404697190674651641960997823064321799236191254739618503068709451497086901260043622100704064416052594057036741080144750145918672175948600027794523562093531300372728068760283789674545513590490719429050525474629306151272937861281414617340302137616253376677602744364835464320907710666449006310618534689691981289736650928307548544940837588851501988518585867390397714259200167817902844227525353408530015170972260372370275527115213126352841102037493227626625715504267413099081886854935615644584954780582338912340431783570244939565283548557898061601521977318736853365396586975445869288823069299936412148392799295160925650640510332142014150314686126284706071122536704283069884158689699163136117871566646469525554873294355238980406825730877709901711165516960377129479002709695628096463464463005412693929508463485848354955928144573463077588080647958109320314517427664752786664440126601311921905271976126208654422914611017055832592542493480855464327629775518240000838456361345637889526761933898244725758672129026780414062622751366547822817906225584751652932304527617570822294064925354722149654537351178181492538477187241295053326135980514186681598235528706926530148058893435673530987053329688300621730592528937111361818004470979011695615452024694948878549033245684550255794268150813434144469425894140856356945714727915082287226015870363383248555627973204180226626925869237000118655219292920266699489642001177216499713376331990329077067070683246619907396316448293824392539580383648459596923073474359237625653268609488132438319138734982214161710201022975832186902792898119737458636293974349477132012073725993564058038090375906750031912203150973670618361730587709564531171398151557972927034066931875690123218789486101882906505896112933892972811606882100898174131457238822165813308398586396063364295218426165197741378002315969946823769733480087545364879120493007303404426369802926408031536565475568062426677260802437535763068211011437605534550598505817784589393054389104448423265195907618425533723682178871829047156239797853612518499422503560831422808646308892936462553941473083719349379430916811786281917675424650670983102153029792963492841334257944981060914969869815131723965611365693424507718597208895897828377658790281237368986253952423050102464492289762320359318544964897169683110151027994404996723262463996274398833367422315491127680425255276957943628297418814203632372983691695709674441449592609106681202584491868785355860436918387736695793367976394281365231288628671696692982481030905103556762044207847675502892446141274036995775232348046968361469152542599390512829730284415310785513165644317645991475765205877234587702259164053086679828437856294051489090027570559542188059994050033541481689796848095718988031423108961848463925281413993509548692241038567524104021968243874436692862668207678488373621785612504429218574586625702220877159128443975385125351332891539445762739587209706884697650528788229388779559203475393918006665214306122553136450092931292562387142495101010921576536833887255796886272165051200656057547927379345945639601472111848826342687448883097448671079385336869965026999294476246084918955096639849491249872637744523798281192155007675993700423993225057769237533467623394330983860324006676779447357385025322045759512676208817136763681788141861184340297449877166983581849089157477628628659750920229564567764469383050046883955926461000843927008051014188463807701385948198665131023734292475091131762282145786530821709133439227297915608676714506198870672485354110710402490977010053534156281929204055062971293025164333058822031510391078414515431965685295158864079453523154377512216362974882248051034346007132372589564368619112330268329187703896688736755938612440078017568895942554094281251768462692677197455186946495781555506441314827605417805601492500056239040235021711498077893372767461127943163964820237031194555117724356381773163582711797416206736148998513372639434053081604968082794825090803681508907023050886076979580380387111310939678853370968439086561688078787394811416163227031161399247320430536805092593971947453266492773993272204082622182595177931833857021745469785437618338706128036950590261703271000909341424993949782494278068622512315456910441161897369213355658915752958121221788162896400473393921764775422918853139386811239801184009557100967518052213570209931703643148778009544723259690190660393249490661111503159284588056270192694790629455067619425103986159973674787384575837027931255815101658701630380389165075390862106111770650677715476511398382971127430130299525526902826595941130536917819275271913834686612412004414123211640311010598272073242449644317794460828517529454177713692009966211463538980426081800918130320676057526450924769947325286692424795493629478280967485654601862029950715040523170816687582274970641853099053586700715262225564607634874211745049809683351017350353072820680012870627568246270265226725066462173562574183664835906865803477807765129278804917975822251600828418012257401336076034792154297213304181550059601539765605238828967533803344732238427786936395069573582469387568818966039398873565672116616290912383966835799632603089246060847182532630905421637490032014581108231613597526412792184264495171810709640184298135286127572587746406545288129504962007242239500143337098044044847127711276941757715894672912216840630282871917103552377293917706051326516828218910178070526776855670422881252754552164579079705221888707031081391054091987926105993462786070709412833121324043338834404451945136740629703218884186394939246895367056432468567024888069879345670829481310270704439778424896323219358345523256645945107701749459492615326638427527585986285392843416559460614705647171975331146844622552610050000784263866622922782497474756817771445794895714827513703681176281037324435952546332248521235400286879888367691937742360358150620814263176344677284958757338674091666898770261427498749046736785383163267604276117373363586540955217792455857921133038528286063799876353515808751744413547952302824368451836731905688876756543620262052632292253334098688692396809865927061055154562737087696019698959230813347400597041381788447892212778843906809206640863848712688826093694315103118866111950472525716107906149058635418729618214758615274434529661223533334161350348176653264193032465730634233953788112713317210457725326463880283626888293614881750898920521626237743192354442445663558669067910982897457802722202102713599314254535609429132137542578378017100071079403108862431290069899139172193695247918590268155302295338951397068549867707997886792255178588991293584015287253650647035681622087894696420030847862923530921087352274079955427960634471779564836643220293399168966012089114533831609138916320718619828768806590345040952167853249928157941177987373171186482289868051166994916614416235557209640944357272568287852021834543385016918388056275054663700612444003705404711148171664841305421652096165033640344392063651588756651602937426318073423468885606731375452826863258849553520287402135532399526868507441185112975219707022412989985753313235717231621203018835366276495602589022452930385533529007800518515523042716922760349108799966312646721211014272031666473233002564148185447101089041447791201255271910124942651861836219606310187447486309034040656130945267207858118894118657061028258694579517804615118047447289093429824154594779093507016991638117169209192349042348881085015129853382749626982656768214138198940888806904004316542212802960519933449331403509827650610338999224554911172005135674639767808461418206988823245401458448416475353714609172317071979661244626971308841350864249300737625500671571863461241198659766813129507006536528683966357574983092771277082575662933581631538396043402977088331851355430214541763917579864106044139310483344253531016177553833040423661869187288730381424446687213463530327205558719973990948907022207416363014553136407433946435294136070470969430421190265811203731078959614052763891453448927893065853950022984319597884099605947333355200460331267763176615529878104654674094125635076317300115510002803907051227950785964681746261279181816722191077708624545092707296801748747164340156672220101104157777649496667261997372834810392275177282684809986254163002260696600228988481339825839289772524787611090936813044622762454651749369004761847644944798111358989609045668413980465910826603451863837881309553351009863520598534730019812779343682976190434478004443167889217856567844801995571377167543007924892954520094277132750840339387359536920801061781096256276745969127844023459381075120376817947613444345497035191578308496776329486690791145258696436844462661692555083316469435326307484606695163412377212674076681250077704349120523750496976586671567470927642951860829781161530035094693997244781028527348438027913494764048078106559021140704639152846383725994912678025710786078855663262989812497782855639705262275797227785844684091738967947109377102136558927824061908010374487091342147818139286019672190042698724256240079878471606718613081259599817132347512135843757939625981524656500517933373721402501301667518970394044162799637610470150247936187978173501622640726728990122358367689328971355925305963187649206686020758621145727500401976765029138472297505922500421264222407548708198838302359320567263362808487110402374904662025471284645994028009548285120674786585630929648522143158620543742196474665298463573373627433268460284708623140166520333015917048809153247346841676136580561484948849043988421221733795772603487523425353558674784173387464916207274766107299328809942463000695528237434017007922211060022054291658908857415019019659680349231382056251078050019751156478540283480702577707209569345505108526206495901688117148735908357874567089298078597425323676327181290591808676215628431064633939181350912071223660186615636763103320520106636547666855534304565579837188870695005536442581515526296410471250022789196233901432283365374613818014517299211086742721063733001036063114816379000028706155587282168820754105516092720324374628495859579322180331056036351050640716893796841950740332595385920166129426504488021292232460518228322094930988512322741724296184831247126293660992744182747962880828363238328496662213054299104721084637696840268784308712161466106014018763257814439783206985610244493978474978619333141148305725251222496181913808897209480816828998248090194357674978741773467453923709475603138648952474707154002313171016641618601731047841539399542466735781587489237749146084861922995018070034211171356658360737133295298300716879841713671411535116214412309023534696011753291128999757464753161352311174409567947628910230531497827275607483784287761224206095157876595484161470173203690311454113392946605080637070142040228284156794950319859565026533495322148447332625601541346000836681481372686734732362012590126971707771092458427521348881336204152209256948278717118548275027821452303975072894105417695360338920255197104982671215887358820489612340820925751830145381541975923851704776227186904677590414070378364421097453482970924421959588076055051688669360406453735696284367908672501777720812942504161737070794131411834787226098983143010517442013355548033440982256850431710759829687635659709475495510685300666971733878502882819089794955661360581125767620368415769732355906283756721019542593289963644198040737863114695827780230090240816161771655826132692511702907684894020341548459818447547526686379317704369085930402040216732044555737829664620584073718496916132422321439355916587632246101319455696277781715686773390780628248780610686356748261762598295927529274916773000159881330103757468366820111499112422032673631646459837779570198298113778028259834217681883105914879278694262214144076328393232750061382556597340958410727786022684097152192262766295887923033159388564796402468266509556916039287854245775213779868011088733953036642891781260319668561171449311098357971760246829466130993648724150061268085808782503702315211168523946448177624578779214720743427841021572901595669943608261399413953642812344513143690982067109228353741538128762734262220399053691544071714675212611490044486702615863534335904333707325224948335512145894542817096774227992228521694434704126634425780876731272147076909615274447405285171531594310312313543242644726547680105361863127044627666046506963930394916969289453875211921340211870133033800008831873109103986067782364257236802237158084085097019909968883902187251563993698081925637087308069341131263676192943539829410609594479715234845523623493314872978775929464270331450032923738506497942526803447524918555697175526496173483666672169127104573458041427726555099100617387995402173425391749032243138655939974099849923053602405804309324224781615407491533266411647955362269021824446381125613530331619150731586953115450958664202016287469070630724836989405191647304843340316444516025153399109972377588311103474037987112851072191719931105692784831480212850497881779821147179974569635905235763207864176511990306996917605608144005832715689530166968009977123387011288454584662008674594776336173506845514112708506590320032156028027329146036496748869238602472638391110549694463647032420737889075407869003472552608312788744637147226803315774253980151006782891846111870215791189181223864544438821605872900434466908451514187302088023324907117042752283812256429501225378457258512024839684830005773827100680454796683678864069015068755611141464152621252349802158978165520334820444203139877245486087318089290214612010816828140343112203511431835396009586494612620645495896298622395702900976624904467078119035829077945027653822606573536949011576603076894911331089425806856505863086559972694012594743152466377680044801958471588171713677351441167054825200568530555483163536637415297423402186991744686236326677511618809071633287976453561108614111514576650117934930994755514890282480501296554511148856970572298087504895002986807154620197373040705615727061266814078768807850307659772521939354424395333157125355260273996698533188426956162817593525173669461660613948521650169531641527885412845174529077868914567628741061754041581279654821380075079322257857111838285060395730586818702945320666883256696008769672122449460881302103517985518269212397005477712032266095225506913803236377730106644897695851205870779206848524210882609643221811134220490944541733099117585290040010558141352584071434167173453288428213704561547819078829021657099884011554973922777136411909247749599992911353016561009900688504921943570710498041753003131256321369839033560506123070209516878744891290728314649687063949979370344826425840621712033899618969819075058628845793431560143474572179361981255197804045294980505918444229410612588897164413933491008636792986043252754815015005499966056966854944295611255596207568312032918263441372045618569068387680669786067899938267097547143448848813354800270103243997867353489539948700317526852942174645568999803150190205148398018330223945494461944701755467952491681032498146153095788748013879273525255197134377540180017311770698856793375693108261920471282437488693452382906919147134866863359866203526270611885929736018480744565092362004611822536625677731462425903431352987526221931000905289032588982684121774876612421647555778062127109570246862126498479855416264793884847629824330814551950867583464598693457890590861873291450157629348966930656593585346328240554223860710706123524501179807415261113545115032837552122990016921862285139363793489278452503234411790557752034937955139141212927323314511939665100552959792552915948497348695753225030431148360762342052841024571163353168662052078090688619618819297566663490535657023390617916549790488062212530291717147534337367533311498010287102191205446134699759501213938287363902787520206055487213816059336807646789980464237212780764259138527273526037919729405918859260335823256791409617223115512195578600175351495009453699075061445612573559846916790391655594060613712832846312746787625901990947250778631998270497335349482115136221932343932738044267611593792426778506320209280517720388105332818763461107849854365981156289695753628768473993858558461266390533187765309541312923690154124213193088850322138452018200034104286884129471410981597209019681777180213867756594375129418783912146382748934269198239054590534289087345071094023563653722481036563454595348868021483182296611240482223502701485200197199709209602547774766458399294111434074739217262855088740562204463725428777588552752503500473193712479155171700917550503267825622370295246279143467134489062546058413816959608367590721251514966378421850311517209686605613257702176037292334045000127590130288672579885200100832088091280870974262830915682334702471639476643933496363240071103973403429545260459546327794207037386423559647640612356639456735665805793381462291133860954379114337209175372919192862591582148920261232497580226870995374619136614777987056666287723640225465148595646398720085672792337571218769752307478233367209086610699886344119479336621907072785979945878441131448069526682593514807912719265937962007948791886150904212892406811704467312773596852060378327420087468471320152714035964153491087634731025996715506457318925777995258125249378201402881356078033633057479819045125443713222303145502236518284883357959758129001596565100019400381732554830860296164544874670231687396733238255360215742559901839417812665668279240664683406592671882216003271130635868740853969815590370799996833608059917638102253155111108022057515520424570283311574442350409473490184832100351826939962398208685684945826588235149146512975785061353441547370702462569590708144327954952809126072246251383352209817315147007951547373407258069618131819915264536194759462492044498308263980267332590026161503589642518618865308487555764712005947475120817427327277431674161068246566642866140516265478872741030663932137939331398201104690122757780311203255605362161093320839254283419372600600303203845041369654235420679233255040565242125964071717430496794446766111896543340326401944912862639923704284354081367818763504297774201441537760928647304150014874714887666666470028799695545419099155637093732237131893173645568650925130270231005391954968434789500243790831085145521892822310160391716540059631662952413259177371309729336195176791824284828378504737639368794647075727358945437178390402495133377028432573364908935656674135548468362087911283917348219877216272322297269075853392145465983138966999012947067363634670097072193619617260340840468998689237165398333524481119009419928751496598491027855592171580391538130356318041071203987657809843111491272407591147360122800850220499122266993064370253547696891117499337949652424601300186683886595808282973019810533863815616665872391940383451495293725087508487531841815994046594910468440248955649786041684590967136946650259389032837239790759652408755914000656443309907025690559964174294331914213487477118624929496174810172168569878555711803218802536032672917578644527958357154919147544556784893348342221973433378062850447450208880656445669114206235274209691768121926588182083056005138296215949781052354237969395592023110404811881698435519193236184479140556357111518267759032603099138324756264380324374912808928327264914629960099910230262832069835882026365709064710338878918989186379296062762556498791940037928353682967321476923380859601852247676314220873777650464762913158901436706775305160389810424351566263332301188617360706884359457013851995424459403154368973841725208210605360726207512216324827049706024338531707752502747631545182480327414865760183499909677658200108851201596788939302473027142780640734248047401141659995884109199317823195474166307390179962028064176637798821750605955810866733444535414286579920745262090810878715615838137038145483226370892695550705864934704410264483124743209484833392418610834034613544116763709893811932018309580086492840723032874649753158257999203780292399207245192812114230973823776072124001511160761065885789249049922769448543332846969681339511132997706658047265183012593500838301649446855052044046199879367601637664139906621653051011808880360236904444410071003711990210127503960903586397716465210702564381972524574898202945352750762618069460346429398214245856814370622384205459522488788704273519105591074126196586704181855239646520259624143853378997880383085194725614744743902857898216537181510906972470510558900046967429367791744719521909352631828427685640252807877396937733785779047707931954315675405079998978714740472383898989099323721042176307867526986228964497443052830162055226661139872219823361039473891702325726165123519162640893670736562570034235793499044029460715706857163873059026129282654697994910513511111892586622355025523650558531516105096735251999411007997701014438588373197013483268057298353625984975513790795395340340210169481482649872290639644904478727612431854850371718079968702709164485393675821929224171019470408051565015737790102366810736731841187481030098544382055211581438790712275210079804361676195027803862339487574334769960921795808914476094170717319480566406473847557175428711378122522646959576965996998200106050324404788044640054434537245049719276720766211364844376147197587545829173455062090762894589273050569181061957919517331962852029854339088302540619850755471423814830706470876896198067684705372910706970807997581813625433252799322460181954356088865837063627180030267604982266728586206748230819487302456323767454838107274992427114642534821851783693657254051041079414501234860879969446420793094546521814482628266349753486161080765855903053321280998921653181598610448272605583010228861192721903450604229667730888295079726406733258253948084100905326846809193990001704609975382456219509948105616957897856965201374129976378396847203560123335624642244338453196823186124743286215843002996546301318965350349869469135305892358699965732739447486684680990367866834575686261704642038962456234396571312103886493343424490867490916699228086555750011710238528254760877509923907841870580805134835501155017913056460316602655337159841420358371293780743921322539877318732360367154625484302219930667466223189100997898995973974833528257599106325441334715511787119880221183808096851184862603987514951368526849596208902685468505577647991468455380963853628925374940030640050892215014136683903907335052950220924772966946789868452580825104985048587227750477294010047168838987828966369716142336166378826720156004768675633056504351951373322602542160571448342894725500323484567565011923637237419228882132120261591886580232778742189232476526035672435256343781431980937159155493432154850407970194421188968367779262042590237666283479691682071647894825418418585435999863219798697647091515105318232114918453736810767349321853055569391909894607746864293827078927200097764272673399928289204497985908319427992973783034289420122401090316744006201711115404790478416583375412323834448523274484077999230800838221608977282927355510496993588860385294124545589985022867709192383684258020599338879895656216564236915248226397387902888327686628241314192187195539037189516426007027371518719132474453758908897542345981205698334665449158552096608634140880241168619161342245100387767382912199011946337717332639963792088068500887408725929545455107802338687742352458748745819111222551589699993012579712452934089316415602366869779584500586188623148199045370463625484325588761134913112466719923113908417981465097054483769341714315283219486516124740564744194578267481031379756665024124380761510675492249242403259493219676516883967835140351972579776476884980791335427175347515630882549157867008087601151996845007046029886724581514472625196744944544271091022024709085306973023411731946689250894492623219126936870610770288428850419986630024775288079275492321888223159061557911169284065712236453779421602927962486400000228654377142100686219285803243449308104857473643470906850466635574856190499290236349659043846810481623285566951979645833222059256984411198892277884886057741419278761354921529260595045924030478050281933126842418369645791915320452357859144028697904309442152971170317127124793149119745307268443344718428727618833726372283884283663917176233717239568147178545577423706324580852352261165077664503182590380921805538414406742016082032310267728843971279651690559270134796521978935298570763674700120326182686332649282462278436632231678040109531616147331320382898125734714101074974435275892349977859067671451193761245753823464513631360013717576155289172977416552960730771203188794492810314540611893021110080656136836155176891834423608049002459826168080109994806525878761927173201086898766000884829550562850234033352568609815230876504537555723668848219816842096825097706124076397698068837671134471244358180691675208813411263862252911888408952273241802596453011361387724516748174341158007879802113144037268614101152500018329833355285980414048742532990522381652507118801455547972911867558630640541561627450434243015042740271910260849023188176321015653043878010749796289493583560060779224594498156240790102581113367544071577183033144968953383527624587228183017649912437580198722956711143298768042736572701549903642449750239693338050056292693788248856172235081573881254639505583274997549496616423310802603995728935197612586398917907630382973122410904617269361099314863959119061979594682801870780876232516091665035210107313969898837828186101742499266421524254874805447237685314926242963237077683406083970124626174914384543074844072023279986573352566121955883079821183160914751285194140272826655072620553394611827613446001318907440953418739069589380497932337421169139411434930030741610394905032209669754710056906106320486029572947569265897086090157038720756664526297905808983608744141090142720938988517954842725117809324581409780404346690943190851966822390647118113273378314503376915231895136120175546879040253276290535782576998924823992879740905677970622592062610179637943957771978339928466302648586778689145467209074374236661842896214175656128270995317304271987845724442561318371734284518530406161618978713317601601143391217348862832848707146895958851958953264560845253626761629565186516891838518159261143453855268679694045714874487543738208505099578464212059908231663077006891494711987267515166915182692726749304193311060938717596781466936416171840780320535808335242371182347957581433874812530180122043185220827578615526183311000600769666388626142108050591440723390348565872805298415269541655208699522586830767411292476017741486074128215111121361946329546071302286216836786531519469049940040034622871502753837083886370408882859531508608805598946658376211574563430045509776136650792956687763678613453902185774284334914213141084497789038042326593631121628781747429145695123821125809004792880906782885478174709055226510355593476493977033166886965505925094690675406755581572727747123874723289697765667202482607882509663435954962197519005812400408833558672545857012063870934313057663450903724123527379987852535546493868761583798528144254477515929169059931921894438303480533749111433476921508918435649724045647997100604127694770945379900487325971088928562699878504638533973810458901226826943582993017441448858650401979663168931885492014454118592152891982490946738335412188007133317273698523810713132215221571479779303201552966233195543113570701253110783570756887535868400726355202739675507844658114737358045492314467891068602222416995453217575427670403971734800530975823892788280528101968197695579929774102875500375952186706601529875745428592827487019174016725268118262448630158860946895190403857709605690815642312111342532068522778181625556384479646051249834723884112379366085719566570342777178451809827706911778221247977929341589159914358055850379311448182571660720613184513455904788265829426445753724231629625931109317829700707452489486071025740850613931357549406314212768199966520025311849514103002288133934200226035375065456925624901384073534696056527171824644840372037155849578743105674158425981856325678142434387736223035977669147344127749389491674669153027901756430337260637207069886575472026297671577391551530286970401001807522535515839888669151656946142066360442180081300966418983849919916083238259893427927211427174215912829265403772530093277432167044453588883279054527258883557091565884069684174579335385476715751720797978293063042374397471791964187989443883760717791872968846732392311362295342570348170176586048611187988978626378105719089604015978756765311225154487108010086104518235997652418017615071376731793218052084422763248374362752516067331271804110036857511000730111921686850491432163636004351956579402385160727725129333471615386623620951923231341934356749951023740103561319370409635905868867779985270502646915087607842395732808029346759755121025946817646305083195183647499093320316319824573267878992662886771582362870386465987718313720072960321040506387325069919167732165389731220319452398379272542235554255570663761339618312210234798720501809588467517747126811802162645925588165824292402127825919194706113827244458840793513412065046867671880395487716042238137922412529549134429839285226271616315615775506785963870464470001232655398284073239615338416090933777606494964623551680250696218247485844152895176671389320212800868093593883326854477725416710148644443404206603864918629959719034396646985758621966387063955735197451941414280844965839883956271024365101468795679499516103142617470360286312329293988773952134097921938570012611882410242357357295700073460388835805505263251862523645622062029595271444951091111688705189803008771998206299212221602609539996273358344665185476405126332393570373982516835754110454642283443011992862642891778406101063118436774448620039190869526937794226016594141654881537139160402421121176518414940362864109810060350906734751902552803269910035367891667348417977882780100485112281542147544261913000130393022496396350826402569769701598657272646788230180011395731058447941379274203109339523985514982537722975126250436514764279456647654112488116705045923254983863724673651876650683688368870371799033717505346081134138487172365795607521062321412989582879735564882398911360662998451031564339420053563471117949081861774491625348569579061673224945846479386202235957862965921150549519006395595203205151229583855730412507927518752237275790597749271873973059140396531210067907032479179166042689378045560141254659592217456445016100145724210858931111215149187132067602787957330551624599197557750351034887156431016995952543094783286810772698121562623160868977925014800687081049623408466736332418353704715912830279484067356981268235382550868925053427348009931788306904657643406736162934683840541783894660358656007644921813302524081741656177762241029469298227060137273868799641965248649048957987556297312288724098771953305041565360075605552414230889928588054693488911661671935171521267308542780549774794116246504317590824503713817526040871383153333268554749231131021571638461895093315869850091646081083651187730785922047394372966450092565939477704672704669321490809875561832495163945879822632431213536165725171010956942612711309969496784132733984886710277182802650082085567908587746256728762048580890117102337371060586364915948489244266697861073676730875472530400973487914098848563496069906651880818701731050567934026177104167926322246506292775924800501526327632281538716559887916124001010483017010477721386846989629007247104618661854388379064395880173307441736166009234722937881028783938381824771253632275774499692173069763232812682872957490888685216291418533323040131222847263422382769395730875284106300461634112265046211072227854613037926888376256852128431828459832115757249827448945630252852609219765840316009786993595795128564878300141530639161122449541850648138280952369730964926679178334653322914660882687047927905931128463266067380863335635228352891581748289502041060969922847631325770243047017922513263484600868291679588369803040132201388618480753514434585754399163961295094924613379208008449370437815813965799523660043441608435157807621345030027643895931365068379133236897808639420295494721411475756326727137057603280236650337150172224644431319857752428454080507980525079895797180359948793817810775215819473738315506547062230664286762868615170225492521099061471120669969412399356790034220192648938993097686330501180628561527293359311907725269825300042429321594905230704983686939819129028146969590796815004651442680323510638128604537206755653066062001899668361893243535350347017231418032693390219008036810866072867311261855382198924651349868366411502353529239309625220281260110478311351581243181145174772510279723485406107147290864586342181333395931132706089661073839345416098749375050600636138972375213962528881216939840421645292852102010248295784419721796085030007196056886421034891987501222973637911366868616349820469548380324897541060783775778602779593937205866174517872744412942871624862211167883371458671201917075701176190439906134835037314058907134404223522389509209791168199636953039715926181677065469436184094465929834946958595557045847658728655150310913084287787689973605063703246185732226606559435766482364817965714024323440579279108154479890647102752757781768486554894575854689069520796748832079854506609739703620860099906871551400888780719711630581243178921880357187677923888908449368235293207905823622030032111379831893923840105311472019470518779751290384955382517637099379274861041892828217120598881302977307475765548533067208012117462287255443056245898844486326189673254507779745648328259632618644799312556115186377450092929397928748050827607718030282252317853430869782762358502168944393778567665440850621562455440689623218539652657839350933235228492048208868353942586355412075714744204113639009775597384089733579347714591088900871474424097283391543499248324815718883423327554538444300577667522931220004397942011102787897299343393469962827340027904202270822082078874977264567952486818542996993236176737710676595523131153860683855849515738225810942263634919367374936025502381372356730353467496850272877465423342979881398461524881578061792852005243310627806106259485493951353624696872178479129114165117770861658464466229898727452607512143130442082074515188835050695731354104361917371227880789491750714444522498406747451816554013616085097439941110845575383571220025009587719833562945455985346322194077990287793643346389977328187873526190851488450980135952387668529609421777311079536331646519868653985591106293330830080235188924866739448603407139539498870500029494249242196676730690157694275780307943833577493874004520749785130873717247913530472797600600227734587078339172826952453734324378196584017261158796908577975831366910869670472539519050797743968651125746726293617417166762602727620615480149489790394875271697865799062704208073433199389883300007395986533176865083836402264656059205893598044037529343543562189350900886389532938939585173835974275418440368578662108681800746352289979418911088793996836535590219830838947273563932893839955062479823014400997222582124427806852800801929801124826369395095474284212345930875604019752836471901883700881514207728983872886195200213881050603760326600635595896235081879411126514410813447956244733366175172673747861018091056528930929393051254244495716827222278299322544309498641080259040713795845467507601565896439360993059561544606817886078558780329529146894970136507056564733533253709881428173691535748753833517500026774526618612137532204506034612323572967072369823213536372413840373135572339349766208196922452842696236168403652893567904387480994727748045658452984024117779854438069599017197816958325361002396537094745529429838680768045669631292306914224377263830759547173466566166491093580600885860047395520068794437169406010109085846551764532435928176103329798286932553778924653154752974293978283294611442357996712736143677642671469113879125372773348970553158326729783497570684754539747796365719733249579863042345275166200486099961034654467934922974442729975090930656668074466386070252235102257823171122145781431493526887548083491179460659867414028071430352761207000451024807689630742053083362091652731317014838004311459457570643745489359996736592865852337616521939553521023315263685455581699404297483400267715793783551377798017497750157803220705927742394942217528655246855484080856883763056015587524897104273479152274468649904758724472426758784568657042679620218695968516339845514603869407382614895078606449308217162318438593636117764150455139075648183805591768938530937308011760969601891135201898204691616083455334357640200086796573242937627499204527650656680044668912948291281179782402680022690278556535679682537592828560473447703583857143590035412483320806869014790189344851451554020097411799020177029507213747375151248058419299230023090799610676862424764293060992893818673843793725090137847997374245964057709852046273957086440438176659930083029346200122326554027368319842369917974041353429805615126476012685507086143500208465736358092128367262082136038894950516661931345842647132074155225339056438427881269347047234472371730800818504520007960499430847595342901109368454649846123079117143218912686280684099323235501303961653307545944850390029453622499079636607391484717127676087341767413980505894660817761789193588177629054407272110770910825831776728935183128872437593777645368382932352131038586059639444040272937346955242183068424057001908139784422668825182570592008789140187644556851019305782014298150137906499195266056430135751368840783490045051407113946511764296451537550085539109398147558581926895865607437522032899186133760307602128642228731015581832695331972681674577092431228692287601100725300355726026408353226408943382477839194195789372535721849682194343436078539503921423415084004992048733229392360589788015579648187595909628880227092107157514783625688097599568965383603454691179502121633007675332635179887555463591530447864188167269672011033430929214861046453072847272792915250619573208478225335338618284113919730166565463045974480386496223296756020494800628698946429457315843596136064949549874125172286060158766685515476969524917911662359580914693460201871174419981273064608931235910951348329850685239455214488272564672937489782782450445948918995496180406679063117827057354017450180020130577706606333834904191354941786375628387099935946610321070186464723494904306930322205394828872661490638568330705771388055011985666998254664672554071038603772672886405267864102704737596622940139876100403818487148147132993095207436052142160021617251258622612280903919097290433094196206589200372322791933426704399000160998717001980228696568741364141828159804325534085402523250300330720633022052847414045427106768372154336090955444257041225238436654633601867578094865590052814540248055363712879921122126730588389678535803572413024261986548189512972170015662627398099899394399738100037756165338048697660993133058413038714838746626756837489511867394467268501295987699778002279705212111919996044943588973694553864972850872240639498443359698424523896184600095566961447389661280909107908577654584424064586219138909131751080547766760533721322422493755533526285650125611436308534487599982340676063044288021219104223569321772863359088943824898960674522395663672902951083754005850098847005673354906365444171764454656211043885676736811569565783657046684267687701282002155783395362540733082184634583704789096538797247710746790889596128073413665082565183749830753041165363970077876129907225640450917785407068109625914025335991596687308940131370702220533482246842316042700608887419681307420514182733331088154259011371077659597358281757262424866017859915605837907849232792434092031647706719183688136852758183395733263657413954765807113119977463054766116700411316551934022947362420737360326338074486464466441601601936438866376137749268789163154511161694161496518304969344797271415353441890286109563619542486459970971728732861284879181616337797669016294063793382328760174836367194010489047717847528381976660876130679332467833135030507556704638639764200886559316239878832389977690852206122228867858922885248630784142674295585766103755059418574666742590352620267268366678729133257018010756726478162982768153435725330715898144188189445163051289452683045823846546714760498498933501071754641030342506150321275738930918240646803051638473008415891912337266869209352624309389761791350732719094651481876530933666793520889321480881246549714344714444256550615607761269551747607479327023568031877663196231599377208050601643897608076506942482458545914754902111638424436191629035705238275334232206576366872447188640478083694221335642525129042316507573109169355071845836941521998791719229104142255000639308605194095582105319770897064766716649153330635338687497079564443242024993694421778229765167463959672812835245380729226026053758443617766969479867649943153050144852679782341999106528512601507700411935175748817383936467058401222952660121361210993205448107094176664578168844117426953088784531335335037284883308844541138164864825720025845080578487371265687766508339531265333340705064487037629931324625177140625385984864694236935459222962876709805513401336405086296159417928263623666072067005274920507905137743802111515264966827183098481193291805098478462248630143820653167544261163300238285561160385116478902431136621658041184734218686392436158601664022083931195179186448422614041252401975384189392952202318831694462800150230103203276746085115635294123170710732153726254631449985375509730673127870843103693770836117855760275777773320036279778121195985690882089965797051341356525131333062650263381704065753965976353863189421280214494178496351231325496763368760894896971400184548060248713169098542936782317808370300317178323814192481222701956656047812302684651906845396147762769925126374963764267723156285525563789099275615587552869936526860824397271529694458416680593987576799313739768321891698519541981791888576306817639264098364934196135095420168131977207381456895103553990845657206993945481773168946717303911461503467696403179832937558594184029039348758088770711492613877427987084001079904085666020538930681984006896309530424180940453585940505129934495843147296255511685115909335107852382010002576945222508666183025528287166437533730504928727370260766894900555768255379519482592590598629292235548069717918273633558233114166470857437930904728066696315191386371913069896874564972266485615490440124913531301184819299771622490335009044689494293050240388727754825417138853469449359361006295584341995841533708121701506292759098667736897292621617154645542154131711027980516909459860758469200465479097732577241383383301867385215847082652445815047179973732035004674367980138123896056344949578997815394393330611805102012553108237866104840001346965714873804870104866890872173077183541608474052886692304545656983090078287311957152657162535968667817424726091884928506789121716764238294972962822038013454615246663692376469438500347376905837687283948849901214418592007665233263521545663240377428561356882234441143383505810241414174959658030784379623025963861743912187677124064519447173110177643609479465477843080562542370912302442589744656024610032418173590079669950291436405227467900134798822121832301948629276828348710730290117814587458548443147867004426768774389680044884178061969494382998421633530286118263311593385417192649254033640795629761645875853930366825563281540112459381737394118261333035578292975738006956958415391328633357227612251417564366699510969369908683189819682548620199940476052413477934209134456937360329944462240202372360987619784595305844484851058092053848469220275266752171363127335452748724773820064017902137652665224451288918362088381285507463346830977317409540032514062874209216010397131652051892019594143526966076433737376341590767898044376759597397200094350762223761450460120693723135821389974514103254755556179957331952411830151349072359320115601506144961400841221462530140880059670318997914638241312314779161917455133492207198431298294213814130448909034357734477611651836334468180416939832744946226654883262954630733114462612420345252299317784651860600907371304920044487207270823939240636482169595408246574241167613106242638030032602622902887500709959428471003118627904735865901526862671848657733095760411811400290912214641239634701655338827591733820791888965191638776785865956395797314154944733261779802130836058276414987129374235283214736858694898538244930976708148000548007938247382196883007867706389732221209523257435775626933795092332822297175063411361557410061677826131318107920779558892620608835221506212054199888704910313388943197325763785573551623615950483090328016582218290607431957660035415762719635627233508413148541307468469186281528467318659364233787770029617904064350888168624156321607092706320784573419600730770994447923414370204847651745708033924661624110894041929961282988456303287247474833829223459361169583564731845172930952689990551946534944735200906141773516118835010067647444880530748829581660325574773329453990546446332602847540876794751732028047834148728709906094805810241403219193625303428204823105686840894821959840334135657258582727604959729668424509200106874733489910378010039876368363655836588038035262210910139634343775398367897565725281977663068718228584162116922426822043361760563045939626582271675730977541942900653478822472581292215325913186245284461228233303454472592703347222383058480352299412524379146438462794488162312826657270800831913478104432837189740587560731546597855338757065830387629173630036085908124052503662094934584073796699965438333549484443272710174853425499736559682652998476848771610007989309052850509454912931190403993661706004418199020486935278855404643538689434206087147998720928125265513543488682552812223941318456482701122618457733009448466737045503195993518096946010383321397070949404996222484805009153962319075530499943843387403299568292653375341606724991641183533666497421339672593622105809998887146133487706347250669832355133123756710823668977397944729681207937079116583232444329801673961566684526475132603264802040696324764029324232569758999549072584091792979230234273750456621617598256312683161613513718823087012469966584622965337931897089249867574667459674208263587587752801722332221773534878206346327704918625496887865690181602090569184806776259941654954563046789567946307088795542200580429240761008426962976903872499923161548465910436075287667752843610485060724246440780640895410090228327484759360921323458116121217996563964764893652563109467689424114395041579324945569301435662490373332204364096369191032053014260475044183104100777441080400722007404820011550650770277204642142061318208415948214799523346039958793643523217270317292983301357430978199581843335874997164657603648416803073273448430000497573502000765341901462363086663044403631363354933510078148813826158076033701028210682881150469264980466341729372715215970244243856664640316179829286036953028149496992402384020705242472709301747762427709165317541202284297777518685254691665564061522304565771414849571809736330308870079331475748486184682213718497987765677402681652185104344397246407573156247758694662869188798054471217787369683161943893899648151467098208638964877497287180621012505115079195633698555261687174737192123411242830631902465330143803224262009032967489758965599795724787956728742880199453526520892628072742181136590033270639122420023042953797706160712162933526496793606385357503432884367239868684171158308749703117782645447350098741393012812377626724635083157452878119047692128724099836106514527702634296024164994803909778707142018109690099504336216511141661196150289068775435415799572496341622095350550501732238566577967204766348159731189873946070013849028324390741800126914195268714987066084880785794578512437167149160418912848627232761867594078696890534557262543452722772163628761995417605811250058518742660563754175501779326094195676264766146539043922702067020969535619417205117230885763378070684810028490446942774981493806530980512855268405719640263213671774005917629322822613417533621724748246241746496875156367910663354307380061839668932178152483817178102090446170616441364181197102496782266150693396581288520876059701992274830956139700507549038053902363380553332424609377356483734688243966359588540702061161889116642961758069369066807244519045389345600847396700523092874363486093963293826411011808410434348945058183221976359182902934196094638852769494160839004844033624646143987603736870514531672349505894718307212294173890270399498979649241071135541500872528223909487343978956506369152012099887474802219662994697657117545899915600131061464095300320964039989431971556483189308741701566863392672948666418709911122115072459508072199030436843474285942303391881595872783315875941792397202249471599413612227899420875878996859741644547100573924399781609169623267027473748086126512909455696626007917339302725644848145278932803752294028175758142897269872340782283665813534358448954346798217696113996800422619110636709908156240977514663984166236261618698941639494453938370112032978022293249274673246928783586060526677738290859617033733685128384980330169203031236853752946305653126053489947413042467373133908092440696842047433225624548736225804329591980995171455183236295524815571396903971959697720160221097918094660093025682215194243652315634616214842015473459028242465149979568480011547438481858856773827070783658895795267616762736781420151963915001478292466737434904978177357782060717838628496448624154567643053537754748125371706674831078132005432376318009028854483140184095664202039449249410640634486797342803742534769992825987029197020313562279772385498555790344329878632012150187379703751297714680229007607599686448629858231058551893182552286239248927561608070322014512919174630271529894772322764106337388949567087936953612790102314039122977922465914534096033446304568897878614461468005403306231659123849282775884459468041438664201772636421563423637060768313626973676650870107940684788377634460773923506059424217174001437481496262014431226504904674418964122228922332171010475597831801026245078989815387093765600263029619729290655226336747414172008188992394211369318830476238418742023275544816844794985167340476974167406238925315207451257454686321027152066683643492515294837255306494614508438549891001206038344387577922102984738024563671711885212964675685011507748038941362508999665001591452876508134485287987001419588915749130520038792176161366710962689279181005416957248335031697402176553387281306887837006041528774086154506446583324595381927392830271061614406051289159667562706323150163262714413776292979179560300876228600081771295908902661984640095204166519604342122071621602906696209975146598129354920975206563399547692108974613770336166659035822715890542191588629898173497665737280912310362441870536907880537022806191991812969791066497731294650989068443186500593381098509428472126488692254571904990388727503018074825341645093077108885598879044670025104359097373904411425723492236413603940787200886733498902900935472969586438180660170933417449712810846003759663952307897121090251974070931494999019504396752219212988869733920621232098193027456697351312427648634273471142691999988750090357304332587439211794316590073883277352052483568775227186885222505285175149610586998642380974331722337051912246878061440298165604699311828783257698862137726590522526236590969950411441220006305778809662535243773079839698023077817226591444744176948326987804208187098233516831987568309141204099794524463219282481523663506051474296706466185862636280065481483115328602411857589370760715407977327590341013110453123181191331614474301596244808015389782771462065783287877144312217617662595965496613124777411959003204888328088458284473179588408637844237573674944215313084873912351383211879735066881334423494544189734411503538448972736677948629252717406911962243900839877298641329335696337255691056594622011553085524938452496371425137415547809573215512591907908670433456838040866324769378124248391479771370998230151358486681868006691577503114056540916189244032170092687056572154230209696962252080438654627117184250797021242327355060008341994053293098535653940306185108873705651898099277584532464359706465913602681461547438328445383908177933274818911402242508129222888773864884501660361693626311580525934192529458825801579498539962535110655070591114603070326141519157123201480253743453660068296552940582568226132247407317978688541268421978484947733386329386451438884524558697669945847786256241150083359493719777325647642725600077828850624246693984387510446502154414316447794356480366602887274050688085512960144076463104363965286733799369840373299138343245668095091271654491232977204595153951967586360789899149364268458901610358607912345159835624691604640335046434848676957991210921262220440497251252624882526838066611396267624733580640073755491382758639598967643187056566445981245864012733634186622418703761032892071685942332988171392563151147075909375793478674105984897128851312189041541529342305617357604555188902137824689109684982405081221213993784849408997823073765324121178048686657759444965963577214997087123988620622547921579881626996071088061001766280159024442374488404417099443167463967384258294389081016388340038812200551130109488712243662918916761298119679863499709180187011689084471412061390754368387363135918266140387933256343548311402735270228172475785555060024477660819453566389374124604340971530944522863984480587293703357953707259080570496688249947195514765543296251316418898311097459022776150190942566405581120138763494004493263834399767611885663162147193236847456485906494809936760837747585606408343162780658354687345515683813438035361718170489051966049500414068159454276767900409510071575747344497549455426245048767129432731358756374447806333658546496664629794262064745172944571805781161198137976798046015204061925548134344996157156997475407779802141320682209940194340367449313227618088208914779583152919206755744675776725375106923471496568428597983096515762687903413689132476629164438900925196747273446764297110891923765344563508332937977720177525067466420354790499376887782720207481330957350455232821600239107683773833835438064061571830943932175072879375577148306183918927887650510528175568259922307562564879548614936454613697778014132887061280221543036267189300665688259887670389925345468931850832211869627280791874043836494762479147660926234298079978867406921372900331018412403380791965143538152490371509678289883308265418456112385918028026720383865143431005977876800292717685720081664148248602824131067697863869987299493051909871061856083360499106946010474309267190342410190158578327598857499347705756501159834750578125298810257267108482178056207466278385318574565719172340449149386941403967603058822914454148669187658813223278158105259059280837732868612811636113254538692875771344923879129792715161032755574036625415920898161826194159526384502008199730251808097750014204058724464628670411131781218867932493884451376892435401941045291765594445889473806643495199083954994901636206235552110799679278418635640434741314401131845796250541520014144138717426341075313610665415303825351010645839023068086880740705015567211759106736588696034229366689306564333122802194342554153555649236714748041778032335907650490235106571575736143710397484419052971142782315465755512258644992685094159811281441037029349988482967095718553129819775212698424467809141458070222482190534166472460871012062298124321995764646925281220277522905128730028262498915565101737296503573077702743040199910093998809695588347760825854652940961135357067356648597384103701272305389436229448636456022229132058948353797944783036339492487001764357267056488800279691306501580006715928738493841438647696278273395930318377635810170682055425503887689938356767441470555835502114092758381924274530820442317372335633008097196034115558254867609825406093121967744488188256551746548217895341241228041780125421280442728080266607911040614119502464992210332363096272756940951501684579995323466599760319011161462791654088930164543364801544375012584249756418568580247763717852561017639594089069503195692397851711454077375900555392479754967215749209752722974150708830389821863616377387649859659249887886497791544423187259767796179640445377416687198577279802519090985416199866763434930497180569254600135479631847787106543317748900363509008959838116994990519792733021965442417788901774756650031354474996773789171165591396492018316314262191188719666981980765725851135107993834395891201603585646509627242395327070258143155108081096299485937499034389778584480454499948919114396228572753869521778007581040559437514609491664995132669131583341333577156215779673918658352442328023333615174461692182101804961380115498976561915946839483482700284958116502751021131587963443138771418855219297240755841037496880339326222743641527231280986368399775860409174518585120901313279195393722143922476932781115149309010127671783471452529863930027879803328489690274096600214559232193845600205152549589614398531698885013732118200960234891255135992161318962891516603725845488613637288810912555234305826623063336328539320978104590751068621898053566152861646488356440594227000282472705825770430064503360075271157940045048225508752839484196660634713561631844962519785527788605835370351129702815115313416265531994425236921495784947811360167254684739612953810310925516638562000432474975992041716286428209694636510321941170093906205204346493822332456125137832120254997342060692352917994374617552235099052614590213818541228729949759263069915793482124241975680810142128197385126133821536830615914871586631653995457515320288877741707295285948432849273325240400061561813621010020720985190975180070014697932922408127875824534175335665626840833421016205413907044333695932251143479664915726340027702139073818217979572637864619547929909036935089541908264921273362206395775133655472645525475542203516335657216523860218773293941641130322685321409454509745202578512878523170646807802641167712395046811046320814395703440186840180727165591996432419106701966164415766525976992060546554701073387834282972778633837360708721846800274428686133994447865702966368905853833564488645596248611032604466984722433541586130148303510596663028054984569658141501498036374640156238621133061750390139165152180688136785496447989835512085216198903179198666802545131480073472638644494400447191996101442518304652755783574709172854439392835353942112389729353704897579005869898097751639046134702068249124155222060797647519602835509663328842707810601928128134033490988045094307334588868703777285327902091095984944034163513177098795948141217231771435391938322902936236497375517441485244549414208910826459792401584971418929493550320486909904609947718966915055365949353963281196438467366651685218130442317957610200036163572562465507792793950111166605086774352431224622963152516447907845027695410175576024452051496013852429989024870816588636252330072409811315868712634398995272007024976580536779521304121545961721032599746471665937453694220333617802918270980847548038886404889403111124633487413654830251895139372604367902388329813806223564466431859197201599613556040793731444802862876809612746539721079674044142800439264766541667106747688760148461281439869931729928766130069412028153456244977732909601803400657846993359800535602136443139708904217453271941966506916485238542962471105256396558842425739160905043496709633529378057180422150549116875283708213314848611227999273654671738319685775963937092643043951335176685726385031573766325941634707238522407225813849817497633628138204577173924495031513890838181063792987907444209059415096179369815382437782240215822607413261006286033362921278711275405550893257459617626196657249350069687394972016852228643329048810338036448963238569537830836798842176541500254899993754381355073309834750887586516521368272650347545982121904560048341993959597368190902441635902368707208595373374239740225655729646491067868656873670744404926692767927749649087108919517340522640177329884719313152140860971115492950220838115157649166956261460292393527930201862459895118259259136515952229676455038588121712976461667801609113361998571839110124680327350412223613502483394567966339076985582521616214915021037817180596882321027508207764983581713842192420328547683498112242570245609107253618417067816009557886521360590032492039900221781162268917929021232573529519875931859986821801302757604147247704529318389317699467602196683894687848525336375338856952761871634051518555856654767277136682654383641921109069943125718717810183741283182596898677993435295463285520369772614947549373262558393446363599580434860927813972701743758103703522705822133123141873505882150632971914622355496264462022729771482402513284907409798843115019545891803841036805998805808820309103346035840890974953964514511588442639438762163697574318444378044347003696361542798070096979942756519125447351479060389098206768657388842032058628449900925043243800396245526411163535871392656038822285036811806891028571298818300179284354881649235100350581947436586447927362128755397123549799331328336017357852761283416666072753864783890229971806133851073645865766683478997349670828199927453093601442443572889806851431859155353019619382148080832394685727487186674560021607302618109091290401552697964899399338801928318191432148336363023352084892506353174887139893964447571424198696914299857318677297177835201852072663996058636641858836823960185669981703518107126139524359401792334600097448467821296122552368866397982105800055539411674483171962240525113051293059549585339241031770201173872020127605961045909950420278136066312875990853282728956467551409123639323596559523882808321445948573304534681706778444641926190042863293470499749929099173492702020797550839834387281593407996787622785071549455900035997617431468843503584676784570336792371636777789670343406019850339822902783452879348658791197885717827857878114655387011829560911724593280467887026720683390843585409941279151373162150690270155236868637121277931318016158441547824766811734325388449452025640661106135397893649312729536241027371561467205595440560311130032562175051367199509694564199022902886726806053946462324659697140148751727652717231437624779970752690660626459713858539958820004627097701963813988106481315227326068668807600918062252882555032826034288625666991602152566162658180909392861122117439988496952325063764965499925127124796379590461948078466077972771528349217277354375766233006519234793608420055658047232687219363168436303170268864489787312586231581359656391544306198167268169430765123053805439958317357702237119973505095684961985545891520492391195370924421138427527079308044344598566145600838873776448731157075409337835546019085332720419781240563240371192346869155349208905483410956564440600155020162363325337149300217169451391352215284176503350072125408284805246073411146787583265082609270235087822156612574835966528481352521436688439913462182924271917779762415664294299718318582690990109485240797085753404437025385182277967455689598043193843145295336451090258950784019822888074893560224304880581553517252055267064684491620625787792800716085610783757260057762773999796071481615095915437053042150950794085034089079560192072166354582791350544506689237232962493587884677646235208072371742650501862677131504890268164267738495623060735227223381716535121349153376171843889104787936980236230351771604546846575630083881757183233942773023446448430429869795737893287942044613061631557487289360681343124661416450827769400321720563379076803558849319588781864569726313455444554907895400544207863948434118312872842351256173772745391938019842419756307086438257998390382128696848036989822499385418710822737359590143182185021657267505760859997037501243443404895211959428883069892246170181348604144388956766324049988406553583200538899435966223656873902785866052619802388328327341176984970868334897635497110649189345687823831954954183323488244180953325018739445001799259530828306576265618094403514303869285547998334914862954376131775573030865406791504732454350379562810422179878810639057330755090396535749264184811504942516838290242705379084127424766886962684436671249748229598587334308370411857052453315294151896574214210726367563879165872678251792547420856220698354790826658542148666684572020174094311025440332520504545944353112042622850572935471944177873164849334256542368579941202687493547452572354937469247416056139182476362551961561034039506325442507644970579989616972687601927817332402533049788743929753818768530799011513329181676653070196970830678688856297813744324792649702014625852779347300151854009959960618253064490192871918437103127493754264575664984202587149714812944663946836835263160991814371054650140269743563057014893779239968892782697357279899958959267287693227275636419121948744971229399969680361587227672780547286375272339405314186596908942120473244111153219130554616236096112517217871475640042671392087983926400826526258270444626574455257530418100252204633088317390347319523895573448956311893405841372750332865773571574389183502705287027394161139452755369716874329990479970858197171251199894033219652805402685846147502521421971517627049909158684765985346636157460877121766154339334033354586307894660560025449415731116148166397523048680751228404040581208816897107917705757326675991579944640593784373672363657539285714963275901062317998801325591472974025065235244305982888730165049589598486205759112297436042462978298686768125405296144735287921454179443879383725317991449629695610324886520621159029409732885032877984734074433713485275592208785682549096467876278800061828172217039185646184860270690289316913816160791032854138167383679628136628996164787487152360432742910306339696200951336689260234125601906027300009464846829309952649797869093995264453671364030331220490814594231382594588208849793349382454517476277522057168348972606254840893897469392459602417988470091300619771877847003174703785565342911182206142253058909951914364958663913521351729952623115875036396082633376214477426309167776942767897396219302525243753010438797621818444338818745276684614182024176707369564227665250557247786353706171644571450944369584714117769450611984737568215919603303429879616258365997489866478246084549135331215591400117612409223664480226627747135827699817522326544803654749091821209346971428966633173034783011127954602336285827052895237884394933645547538745550236401783514551210393368152439939189900814529298408571904766877196642409991146841354647678268406402582817463571663982997436126918262151513000418756637455363647617448871688734085679755101197079969004595368462775847667791751888285902921602663025845269996938481647505876942801908559675777682790649629256938173945855760580722604465385368996096495812932949967392406411161829634065017774100325084318877657318844671420451883657277366246806981663790548238020425628965872510050296243328845156229981150897589040030426933130467274295669042987781186350185462585307306493331731831780850712973556515678382783187225102234811489704295842896186524480468564995964446682980459477081531668992346427988691457825437482938641281415730492626947685672480927158350864956798762375965759571473590571072806880719933922295427437845980667701831823708449799059690769797947259866003969242882367474197427223522694619578302029626278531410015209736973345252032201606962088446705126419417688587422006297711393086000594555273137128289935813732842233322621617322703214230166874605584130181555053977544971432884956834173803194543169794297723902422014611442494430391127909668601696119466468104890308041526612578504801634354136080445305869692820878668272486040864892612556069233702798385658185707428300280053977702305595118906266414345102977791372052238636475614504399472768412483108141212203828876912171583372746701291896311549782952569601308998221658255002773318886594869092224426146060285030541899327241588125581415243297950418542474118942149258516348508356755250655023367976425903603370724471220642862516906384093032389482828747939475798468701853217473268233075412776042099166634553768581450513146546591129359945387526939461185549898528227142741234757634126738149336013015239133743275380230767792828528858572358033180910297155077857545249065655045685290160592440524458406381065905272313332211567773727653681795475933034761262824141408354961849832549632791480477960945385780140776542455409859242805805010791185944417841994820885159924003682445009644855672770025498803858747670644952069827171721500760779697172585108920290568858863241379273816079114475217599020650148630321748112667466446187931829429906126082582095366460644205437572044916473622969377095999981444386068042825913640157133637260190772800054130203035965166087721086512706905953195228656441370928511022277333833718661329562581256470514241228478217909196454553553090700199559411193325884458276854753896599459508284499052367226556290572563216005219265160395946238675672641486917253307069933259368260269028029821772597683650784383107488133857478189876518933768084500626104469365522829723051370948387791581944169981419426151998621885956179078452039987477384737365506577249017400386386150155066295783368993470621880026354685874159115374457816353959834766372062345096008420072821096686510104973619266864996972177685006689941237708047081810899127800561001040521695519980707675088517542382316724247357714250327698794848162655613864319318321955215487383770084704393818715363661370550229608296993057793143586521534197881090124827269636765828869184941283647868822534804761701418244368490010463243977964374822594735491085256563666315759648933039053762338339667336714090490150181045645521453536434280750521945732351317588674312976137973910748593328334760606629488923275875806063395491313538521969438952667776018658256254167723049700670309563248657379777289037091029470569181780518508420825593370560871112716589078072426407734256220748617967989971517015043882619852554823135013128024846699547826108069081349246501949877710189651050482956895852787499773696022626100012795146777888503899201239289021842715446710497376797615614794700237478443864015590461851885327436549698100889496993049997587782843259078451282635268823695070964972262674214060154684439279543776915089971588415552663305854814898744347761033172918886524769356438523355402479825342343087749163647887278486075969306571553465759436505297357526098201874604936900934508617475994185038327310558369137205766179788444877490503406396231007749971959540611891433822262460179666149600354986288099041547382146872574860209160519827510479339798722815536185047919769667916106823917627045063590914485149129790434185386156539942282853394900509520556894080710067909802679604903894704681552098594781395592313068501526263019923908016425682128694856597845970187921380277872070043560936391951247733112145188498947763620743627585073196950645769432605645900451469562013846068758765933278748274346140856187488146319135002751718463700126535882155586031764153820586464815342652164349892745350144176864246331526750423436674250024160531715372805720780898615900644610481073755327743058433875157698895383926429356101795932312826723342201328608590397586308855477895294073467113662473108962038391919371135211867961613976548501097198813350765782027778498712396958859482588535248915182769308494576452388610666859198817071439793228026468925656408205307591440191767736259007472574869045236871731685899531865019541660078823365870274618783746682254349097005245770326514421861126246689150381575896154482972435879662484269342791414708022610377780246142371545952568116390535118181086015920094710471944377068886662130079007815032965084318502051982868740407968971355411576364431272713394952300401609857029413841552953388137014819871295350984361198080764613442140528685962600699846580773435260402189263722344937085768700294094527550029188078955250149046831185934735531254714499576004554603969565937876771164220888371159253149233336932731977612748140497238574024431346470339051967456982642733612456656168862424267160158603715130547291410930421164767736743786020748970075534849537048615679989208825535823531372555866369588893386634255656905806948377266178272561472976335072633325765174432852897123908240245898521494884474781157405666137285890367874318415008908524385910602969987498351357144833125522692934396034862159242176496181506106629855411149765334557641313626431251796046556979955207040180748955846582275625381710419678338091494060230881913315299693351607604677405297369039415545809819685009841389908509518717827272493635884696518344653200216863290746514424626769303558244271654214791426363444715450247218032867448125275957312783535463409823833280867080669112910812480591669451800086953710402056527277689828500622303975162029624333952917340460578325648764226332657007899805378626825798823976451459272094757398508300294196485666611961030576671506528209258380870495946222018442719521194942751993423258897978979212443294917032986125879858240765916940691523872778103681204833995023055620178884932713492915698440057189983877521234994579075490909036684071270274474082145230202823917518467741653561642022346200763588575485242856238950500724042915972548060154618550179980896934702444943480937446903430035854895709219168147177666508067330052515057163786201891611132750024192787422531493326842997720378531803770476028127605065169728973619826221876877978578890260773322265070901897553879932016407965910870630096110619362885236162151057290747526997072916064041771375602109538052860971619729285639792301155721017463082664426826944431318753102603408411515457287293840791265813402832186976875846930379696999539623228447213578320241277797250431566768667407577376302084741733609945306109304955941389354311078028680068447035552961647401624672555511688445393955933505578683492307312152133401630788866139867368925408475186439804694520943254186974775595607941479622303180730287393509731115242015672070331862224518555365451535009964787619885417843636120908059556457847598282438116189353987687110840568948651781305810581722666965603739261978308281227166502693289912819879766613794350104306398178130178719606060534137200235337555958856600473902220094235724162874847341391240983987940873416201412834465260703378788486538604517035565031780223621620376512009593926195820962282236577723585833083546002211430027299271717767250113475694444506531334711138321930414881170015135388682598977741284844554243116694459835334538350342410161575492142967852974327600353620164208814243055779368875123847162541234725065159695791970463709351487115423091087784745723330565396830147797117908314840881953864008972956273877471175533274555793498686529750544837059137416995926241643781558074576525062241686361478846397876917956489034270055722300653498833164949882627586885278165664126225938170323012104843404755006355475289077439857944699326099875569534752837448868013536942505078062316462643162018999958710663903372672081771258713831349193168266356300295473013000623951364224124015898150292334034775197519177427041901976936508867961632753813420510461549363949540371707270847258319956234283642207519804969646006451532061610003919462303172014579054151984372874238421279163455972953139755288881169370515474185853329412573703226413609132738444668839006312958039884478849796819045806225056975089858966654701768160585781739490046962443986266801177484182390690165130574562544431107143221794178124721821140639580971244707238677719151779313250107726421479192126064174251913026215593676115055257708301730035246535279495421431748634588041217472179590429206237766366628540737325349618192191002429393832593144347171856582733902525333608582622931734803121119567184837873533341961101928293375317406561028771179673662366502314080050480823248215266373639276708937286053059476197794298134775005539950804636057276650751219592994288542943453395978009220008403385450196600457383056470067892195545192704636862052959894985496308918804116635136741933435511292436387842421039841216577480163352987308745038222495490593024131786863161934388177179635398436342731239650607585477486809363136250312563501130385558238354899953954172896292667974552800799425298124123654023752558169257355797288461800367997261400422145973098739492805934482519266274336886151509073264800888369707565554543621821770096139668443448788386234751371432577546580500243065099368546162011870860324920034401164333076394033145224748632638341863822656156817387190288084934529718345714530418994052144577040564126043799351688147573205649896634775976761412252610704852257680501811488643913836175333657630434096650326990163994324143078719494198493672643488105304427640318054939558199580013699894898578643072863386546754656922731716069538429379077826872536283498533950692257025499392297968909825728333988151029910373130460323760085906237585952721482143636794835793047675939641458928366048133990022258380746734447938888025176268130442199935320726152066082099538976376475721512958129273944659369590756754726328857273885498021265633711083396983598148848338144272099895345092626089477693671095666608298244243257388173258960945226940868373969434170356303334488786177415191706210935004972719954566494899514848618471887769069981947370971936882591509118352050737145177197255863532604492696451009918016370122794491784056774371208621237860594542803423286799194084065983500759984725755655359767628645832281251884647020522401656475708751737838116940488833769629190315431635488834367573631661781286880490700334832812057575294809833783233103542733916104753636058798115950376066710477248791319084768729251142308966607070445669716412019489599880919501739822706879319979129087062161052807610970872390708023722460530890238572504464654927477756526853314030094475222240244398720286128416030387760974681982047139743886272806476050741076439990778573001904807400874905515128857450660362310012106692228690180577764550055664084935471960887705354304127165260649576240028346897658118959925074102721647970845830733301033211814563443105213343401896424476845626816132027842868303785143722262006388639160949001377126487657668004601868313585608173217772507577556624554905651621998332898394138097570576374633904943752500468963290819215521985281133953223108755012883569808162397618228905704690250553562580668300129795083869397655722125045612754709139257038048796521819330997264051819782479509996284713439163539879863109192488669224617949396779162128424340050007689438983796537306121236535299883546277395932547482546426096898778284412503140169904186623135967727317278792433828251425187585419302672706586579611328583453339507684186797386430579986476200919086605803837574101662409619851974869577755130631261278520739645165772007338881205489052350744792072404573268055470640029582897004746479473585252747584451877758582282287726596085165683631341936776025762425193445414955493756600011431739082282873557470421399068572901001864467673637063676469716971990029602400748252024834598272346699433299118787404464592238567902460883413733437690270593827000149586446410438073984195320635703916936638109511195063466887429442176938568523873393969552227955928110701582856053630543627040331640317010315062624597938936655195416084366259916934350630947549985749946243467405308490789611804617168623235739534965166854411220669669117645529554423532615329219244544990396309951662875911311608394232214180685536245484806598432251397475058955656937475616008231582014178529367799999736358592189011458995369207581840523800968335480056966564388866514838089891948290760689891215091875007664102920392109189198249685336794633751351509882921973546752524693586923615349366494709266819947736499299248270405932766308343657813337450126221815616849585543174370329595481464419395739463777349448496003636214507666797354426156152779690337572291303385872103972952042339131172273991542895425543418752658613353798745932641396129543375023299332416969645151007170922116942503130621370059286657384337234083614452830492450094529209655934912278549953789584566000626942552658013219096829094248348576162551927315617377772596279519641324009397211955111550821935677971900938802685132532815028375900094284020561542826937097498630903148518841335181034444009408072322033347981902618797373540754402670246373829752581101549857772412272349641586678438837534891905316420304079535958640825938057896517064579394001663654075360347210761292252424194087760185105411303027058040391534632896677551550738342853881764876986390184511433997237168170665456132262110679899032915846860090550941656485851858981311777506500938425585855351243092880357761362547166236718097458892494311018683789088744387402709922606522629982076189381650263411407654398258309302323075057116237188027991442328069109484557451674064549489347750798686821924233131772887532092320589351238461103295592307650386889145304379549953957997061614325614429610670474197746422241565162077811882294308354058178518435176136977750142835501765925163130006563526509130387839889035648733877024459765582912591907348301764807511440344521679422730356721014465175951822674174252744939595376444594187242032640487125228811682937524901743783605730436383762451915391297885529375431190850894342669226461976048655536196504182448286709188922402976962847992545040853498837730765967846807978006463938857774454184502478057336631881633770805876647310102900342010792722084484394170090307166492652271339746720059127696494566379834541134759815061304414198999206479335939582071628219934348193684086516729572302671154466593980527963851438413517920909937493340816554672932476545852249131124497375644168123930716858226967446117701350599227650725778545992373495797601508531875121694997922293537952312450703575701031188864758806227572400495162560699783454344612062134653489649778623277974618688838731413998153311077179952723682416715472976839836455154338029357580596454979925754642614230890951294304908607703153810408355191416946772832186677235918091608997168630756255880837883271092019159489999412060999512832981215777047045045167397090808561885928692710321161462144087013529811785749555438454993327562146084259079552359357230568626564651852057365206220992556303926597475690111097403489907808805469692424525531137234643790925187927954124910002544663931742270837486859903552601871224383606668315218234813161267857354446125435550171905515463379981195664473805382604469973665896869213276559794021403218481745663016048771414866665213166757855090439748186770648060949174083095531393239797351212732848027025714468258226951002411216081266933169216671400035103903260416147080733974719652685942046419751855243634454832201690644375305209581870441307120983198096486976310602227034519792291966195447765176773946175003956101126066074274261324375083457614968629209703753147379066672751520191142027775947439536699408396628844868812578523706524618276746744457641295654901640314904423021108431298374543228402020198945486954790069978854608957706579706434062138015093308974840160373434103697393270819188752395226669719989363181421176490974801805234106467389965682874314127166254487219354787080590135403522106744972262950426468904277579012056430601106230714903231224350574668696187878430802077266725743999717306018400456491673577573856027089183162258140464343578933333969681593098047279627102539052081907099915600255725833929689053455422218246681396877436045511855700997023526681994415870255383272743360158180923233092816505749859372822743363287468594763808173634595381584857710394155647336003968951509807260416738145825651818188669206872585932120391368599586084658083168074496870057445246009015822690639972840184088019198083711061371677320906915805508162808451158709581069165934698496416886757782455514163053253919445226933590489843216729210749642815662209342784665985603258585057625633454839500910213677747323132479075198139016909464625143834174677299083735577520449521708401241855576527647151675213264292598425115361029635010696860806619007579083336289951111639343392032520793942340971759525653068823286915960836762834935268623387454713610040089489059314054051174178117310944380134114804242946221457160770969307415068051482503366585417776004751446285709714591535636774917836700263858804342044746918562423116485127158587334969448792257156584494721122962105871928017444500782179631624405495789933650251797270520742388623613205727417494553755629462279114835863579601066087037479914726612140170439527995775713182283380673340262849532481287750308030475163488637646776537298149221459535258968429465094458323365020343510907887591731005704128569957315585165954579537532560025688751224435014203525527929643554158332290155913914278716822656543568566927992453571327488860620903169359753122613191008220855452175213445191114931579865508247189258896015026551333414452315868668764930521364876531484136364624708919934549089082067326631127057414779297081631421931410533994720543717087782368595017380311468718238142035299349409264237733268857967702944327552247231214103701015285089764719022631648417148576209660928760039709603563412572816001343579039191649207402902867423709844641940994751022779699106411606202483804901106389038176188028237387645732276164658778535078296394532628160982664296435982245306164538684295739523190698158724406174887785042133411852535597833261778980793029399961633966173656206384500384328160262007566063694378030962173196813678874438441033198588637040683226562877766047777136870573640126894499652043299071751232155292150302793625556443059786155121935466501521571552548108014579006322446853400355306189692885671496811759435954315503336096457248945670932907297850982275031177247422420170951132579678234382508176124369339380296997717872113800800434101068108273848826622272295967085656290239171354985884079970312539785945194743929005262462662946180030082744761781461971876427612802447894709990525763395778589884202726725678876439500380932178435521037838665841650388481726930063107101653379634676217118199671252788101864397190089962690983605845727535535396280133897492293904095656355180145208471265306955147867649377264682271722379996110559261783572634242410670945537553594702900466892908611389801084632480642792518048666847840381708523724403076833736976387794599125309763902037321085861195925877990520194927811466656592567320733866021464089055480047349619800548254356506106032944330919396444852176322543434835117304666557842244276823019832170984605314876579896401061350248487773319057903924824521351063310557704232574074885364729632352053476259849574553100789882957738008751871854507415690733578196193327541213535199260707058843144647560457225169880875771952897565756789437042600606245685374443103656118367445938439311617219305199827122783568627314202577144500984913669390275496592750244369680305436238590038877988902207063539560768102107026557266600199069339583274042992944969848042559021061628277874058839927065457152812797187309371088477052875334995613079132414694252845562278641028987172993664690742228154218174417053325316152580895103636591408334358797149905164905319725613336928168224570063739537127115908038128924234218164954108137547662008384576766552861857712728660667550799848120568912275191591179538024776734731314356399272026057750128139848409930536213587436162690746562769276448777536025079803797602691335297530488084233212587873564576701802762798993678121767491947620199639411563719844723919186754235057016440569215337776346602869914175000408445569408544229501295232154809194376755312601734522701922923307447143414731812895139866134569698865042329224449542071501514235513111713199966182727984109646730288100891525958159289138307712055576061818717129669365791424306391905502415777410604597742588126053644775135435100965152229485628604171284038009955657310804638072006217165387528176535977630996442186290899905142873598582466616950865906083436536651701652937469277628122671500323094388252851162821489222861416023755636788759201583747231567435741440425648683757917596585616379529982312910918325554724684502026178073585154751786039611380311426490150076416264040285659022271595478110898897670341246547081761155496548996717551044669004109848934582599554135092367428232972112295642586528927123186668796161063416018759546201551751201739422435702913567443351953616623996746435588429971442681738086121337630219376559727766418279014582900711378117658511863398326335430809860008452018383497018832380854619725568738670727232818954087896048531881931605932013187416758164890099605041364081855973659754513992704239415469179415759735381932520428189208192750203424502757528910112989970861632107847761722239015670103739167287322845795930989034721398310236260233904611756541236907898540869167444918073267285734189878617663377964096191710043283862306264796563948164566578861541021106364780458982608931696682902011493076995619869857765556354005413544088962284238694811949217860314865397854732515159005588417597920278736518703762214302882053843288994191012248606625681915420395003135511219742084142360069861668983665774644756817999773188823855317386570119338320496093731873553418528991302494181151156053607230440755104949934548140400758470727253533195834634863132701014904370256974607716591684436434014927373089500657465375884390163720409506033362482712223253055006121408679812629267007135696736470400710801898601573892645907272272133328138217339384763375019272256337687644872432631433841218762037651857560216748674071127761849826207198273513296734444742021141894891121716052438647458501015677374580301350777217035007630391823273709280140425292158153166348280322352489396533079950959016971307690981933785690524732409508184619644170552727529563548228268667759938992777054371052520868015789245761460812580098992641717389380676549396540916618255279245782427497873694149734729680642098731387674770966542822511815823526478642168762548979679319603755383562418694882794907362061147101307266377186317680118577358922427387220399999910094901884414377656543829723291228334142221861668108493562510266667227523489898308427723374513627429874787140154526948223166035198588094325545553596987811943961569384421633677388490076573486361752688109370230627323674944812281893758444397208693877729283977244226069002447086248330392243557974467316879243732946188516064340359326850670546390661535586660955416055350137896546380210085544469525500027880999201374451426127724738255967359908457938105556310288696443670133829078256178173469463126047521504810378908150382976669093034599593869838552058242229963184720282860234099278084715757698819620200269065087025523233819220052663242854120033548414390696928068767641721467338673203552907439156529452522338706492669394192432663152031404958361265801015530606563511112902786705778935319978564992902732525712374523973812631145490849942173934781778893139868497189185119206155618642058044967383726641355603668341183679711433486401525846216054650959743417675750661531635494542611635981720934352991603224004628666105036726102126518189762592019275776211476832146659404392175921570371602258289448757021254819262870708849932168159858970772478668462857703503045330154993112563233028082481854530643151000354758894859701272865654491718212945553358641075113814254733191755913950871098939979629633002607928112433902678919731837734814363582670387331517856681786707182850716806206917773133797762620768365920018167052188484461975642057960872023400228913080651866438255116640689061036954129062135517470137424216078017657019289888287650291296899447232848956694743783672256038557697152164664735950806691536826665296977240461162574421830683394781502149710132772278974885033228831500868333328178869882682814759070841158401805349877791857828943147090210371798008916169062820383005751812499898448136198798519417162865063327597472060129539567087796280682014157413957109650182919751236325630402321259745464844937862680804394072583861100832325204087143429777999148141846234576328360800089016578788551876783355950024770455141073151627851218075804332526201778529656925631926917001053258119097228445042657139258376348089469197530654011101763742326864869023532524278387495180127135466548312695134705336585699669268864023377361597374849941447576566908578853039775134767851155513835908280506286848529657543874407123938785091128641387533546025608866344394321836079604814901016540081633971974117968067007178127547408297135092466675433332264397262762214387467123762709428657381661598781486105207457068034215473671375029540940352526178115597984876258859052527826566497846724915817985102875795321655290916268527878033671990384024586789317783188199422198838572213141409027620544457578080061050702489937586766070010860491356088535331936371144143632134942198288506340931862516338324563423994075703159445334081983340879050998077219820908014051428935355221319419743396469220115852398156759635232212748801937048134671967122750088794257700028791168092241332245590313490598012386783392663011125641228236950560622271805469584542642587299069607611053974384815695579417319850352419283075754274720122025828326851664676403060528054674132982746379806431336784044330898263007658872781567086409548119443407152690069035919086403026926508395514239165707288345629575571919018625319702071085323458332377545909859289418417010221394770881302655443624952915503773055158634219213657435314872919498415119485311399032020328876618313649150823849249548083813539874989719862958476269242900133911914890933447366207730244651035464735255121873163259840067888622795175663132136558412691148616091907933919101689758771685183814834080750371315964556280966213156883057294640082782235352837352099257791834214667406161389543376264875118841449390683514283702313428563115535038047714210968441740099323157738764721921559566871231896259057741807382350722702767151603862093423008161850916695579065249086652820214089055505886311347279045252306035852838896536461907455256255660273570086902984813871927421125399841283521916790638519935172475985273826306982283787833080968037767163678055464023512372551264994068282494472605605764743499986154519138176744040365318152046462633343591325278524692617910215624066038299905689297778968492921060631635647436703498142026047098952783014882130606335809358762409346616575310521352850668470285379890647769783855031175125119958170941781930197584246499997097018161320363665878208305642413141411762563972298436725632208749863122407418258417605266551940063310313563006730003274514285593324104629435224272129924775908480665396805484610791412230014382159840657726289335850119257072507752351846583690640182543355524619107468466474886211996753607066469042898221252334414663438485334055240498600996547568585196456747497990380030478148955683477361962351444589931294809216704059070348970091786453481791149221776066945836945541991769668006735424017403345391707025103501825239080256738211997625956296868377796764344301819650970678850570544508326365196263592570982283525407788571417883277746921369847053336361359950529090332410047254347377481934891752650821292448992774960653423712981386683342863310565475277108887600593246217897579481281567004617587671497259771742219202699759562452898205849019232591658982130486018736177370974852817512915551031593446981736632639511662322073092914021522548442055473549187470227013984745721563491562630626209132537801320163661737141572800407986177720362074197034191636008411960301841026721149189191550962647999915202422513830218847416324980030655137209289959909577546321376564573622459462239868058297259232090187669955769590252038505021671831292706114817967986279672678803257804655581988661656652470471348153858598917665445706752639751806914831247731258753684421028448148379048885933705303317881090190104186072977470373376138647041455284867010747017347608583954014498828691388121744085561503279084570518973887286437695663032899373034185903124493011035862756775135505033583252180997234819293781707167779182434019930033692758525453468010665427834794591489226166054582750113101620959936223703694077521731611868535387515611939840742647939322942024374449012239483459845228047545178135485971409937898111934866794881829212458710606483484433228735745460897881845168679873525020325411390283167562495924720070146794745049655956380496859089251974353882527135318164064395422306393357044303277482141068352742294532963414218569011411109246797608616389638537327930176564828475973134227984426752381843417920738039158238044795757802281145708256528001254897827025891554877126244720440079713988230812869569578653569062869340576892850775895747722343378609776364608026354448267315357117609865922869663816506768756554452257938278963787096775880443362066609051424642675892017023533806126766228875744437936711894039860215374632984763209976894621767066976587111194483605347091214686172638093910229515356234292859189619591298399722869121702616348025923375487168268367785909827127746007124580423919387919421153275566522360597616693830318360772228368367729834418106387471125707976447602430471252662146083696642462922379454258228276439322490648136439875194186408514329578707195844052173431898424477102575273385467728328133496419265710014949775708845704488368743033796392196408034752216249703344346769772321058254762248661322229913677096304127519735931115936320160951837430107104576719057450590716312635467216359343971421829759921546627999524595304942918331233787682467380007617085377693072920048647783868324998446624771199645932058976879363120320767861072048264184838261642534086819091863130738612508455417102915086162349915292017068643570330077405557796043498510106001907172839531449340283954550228583689061133310696526410114759432506967189225029929076141418645107547297651346425497150098340938063788705718521469695161516090329936983402653680481154933748395231786276155498798986879933565952443921765730240928436808762044716175068213288855116092843150813034616375684858253902848590913888233314035671102866155090373877599457902524251355637879785624787118191338159629222800566812751499420747639235658502396300935272086044954637710070653176381702208164794141832662835097024277461082479616436462875450265884010455770552200817643042942132592960186468522386954485738324831611729862222240065465251391103111362252130758118413282374196340335247532293740450951310956203889586330048368222630217836516866012157849030695768511824473264735250699555254074252440707720547105114834162316744466402892755423348412074222854295163648886499529489512910696450897236411998016030733011361004378341739983758443232454968260714751047891657185257322537917434518641366567784708939334508851461726465711051174569618724447662786764020934751622757718171800253591178902290250562735115141168930607864139231089650149870734193295415485616591803616304273919732371991382873261069638032208598965539710583710764894361894766794618149098955990805954862499933505818599270505058679318989037324953538363065687973661301882834075857946497788448666090540018486668926898229106295811403357608803845018285389169620577775290373527055671410352987468340890826110712452112105827378113276894546487072346335324607155174096992299430870606428339667572131429735435543909449868819381680234238277609350903359370473263625460738746614831557640862136101763119088687794902388287027890173044494307175587247545567639391439624930137100523913932495435747644540657310361519572629038043503137036880542436009036045267345410722231808622889412317845280517671236173992217970510905263914919378303286886267851235064194175324666459779260886394251917852947186771380960605526658911511445101456382878014987436130587475616887245702020041227420355213685977991451026417492086704280858268036536635594805716803813789165649861719600798716620979774956434622425171605497531455043656589373330252602397444785936597693152437289386309175536972249640756239798791629337158247645712670825538747961039160141921325595929988920042720571174491864537265442097839455118147010616295097450650423147399498818670824847860161061207679919777389307125350606811122613212831120613562558290967306427887886418937631600824795508280276777691327291226010624266261954374489567627441496571422786550809290675436401152158137926080906696832174084062256459867323282999650122727872551597384341457734316043082647196410827244212412435124926136733911670055167001752316888284972208970544987865333400058892280167936463238999314872553320559705140043192623767444407368502726411638813316464377162768718440551930984225288881065953622436142743424267445189460444984433646499215535821105699205186393727991397225287090928062945092994657494373858697615572493451235305209291802142763013281627427753929089962267662329487297890309678078628045665446297213501581646397883013405647648578483720234764339089492904798867898384922517115749387918292381761331244909679105298045325851716895762465134584643671227864892156583828440610076406807554252703392708404648959960703354652392949773676689929063693448574321066382298234344105263457359349635970218171354197522542988786330661061933445886876141717884568995587237011487562459110293528617464309174824703768115029143705123710300924755746898135524426998678580518937790718788113430388959480854712181219417690935405052598139491328811731228935496559855661780588229504744827992105752159921087877201628630782595212666696838260834214657956214276669755635717350231955806437321681282590949541193142149990768268032802566871515862855454465262365333149345739385109350376828123521984031166620426224623392593035255882079587666233154786305112450524219460722113597713514194201418624336569310310532598212833635710171951403689446032492936286019945960022533927370914836064131372210933817168074083493699223918171574601734603238057266791401717456835915405420972022051346995136464469136641985352518577756274202254642966012516376547681079578308323563906541250560738893275713826182803473232173214317240945870676531901519168039917041675140241912361254847545369479932825340072846156102139682301894684310220494578395933205835327558639064965449991448205795452144858433140586292453207910049756506073121631393890247324319745549037181451633643977441853681477092170899130813984764307291180392204397926143538308186649172734450902397591985375861991759783689537222268769821001047277347548225380984247181696478017731044905505447014400522779385176951140354940806020800615518354717797712216867206703438116779588697922986862827128343704186893873135148240634257356318981073969806135001146653082037229418164602694546193022298524542821582648242062112962307163176198593803437145505176512672790069467605974080261815248574645129710860842151187329975953369867541104373899471954871138556891074759516421787537358219941187346117528813094545089873876449890307192993915701746119026988773632564889272952312985182721993487958521223569295031540196452175742311218221747548356995559363985019140031803672533684619465832098641386843874707278065165160131842926763563808251862949344762510692879901037977982744075737399544536427555746399932182990713971298864419041608337417226973234282284638181659205560608124789874876531389020018601555349978134820981608152956102351668651384911145277614440218270575544425816487994322643201242788690299877277799409976882539501211845303497239523018732263429895317964594487159641186311132670734594783286768557458347570160533821162043661047016720247554844996426489314090303089488823109030395797363274409201763091213152050909872208531672500140510824163571977850529418081931146697536968055271366361416640607035355474146002495736993679275824875817774362932465914145676681515592685458991732900925480696772904599279684570618828995351023599598636381100587821798501145961833424888853692623510695493461677688736756723363355900462601849473572135862812712565885106912014482868169465120249845820185802567623388175395032096752837255740538072046957283725272001115267823498054062186089681277017598496797490621334839902338002237212106478849175331954737722885977222116900171832990480876091734549986958817326668094081382447466294529485251169307069692420698367551948666250304163665673248955224700421338173062083742231009884678232930463776487768701263633182158850809170413345198072233576729768260091943490004202006648912335965963588218875523001677747754397757839276970433462015309444938496957207226570511025388832529569095654701130135723379891045540222155431068476941064905791239282172473320392234993890385017624406617891873435230802961802575234470984423286861646905999429307157251722516977092182684685069946461750831573012187314774121220750975057940303090315653400176995191005347452171195179334133724248107906566399004072721252217650243926797671112320059318701461414455944625270934304117496019369840980960219215844233758469011970024518620416948332228323350373786126934444544671783970169683569880371776519710632177130108081068216619232626365891170665682235711344707853029363004182988259547229739176222688040677612887150838524907713694550349227042796091576572245018126156564251698503625813662776454288051331391337285679037083847661316962838321078654269528617034979721372809595357712825484999902902270492382399020890161336782613360041757653106325001180859800997952027501528672007507461755094633227778310350050178067031737846470286964344876249699351966767180725127686552720805108260184164164444556914998886111056261266256369578995730154535495130031141987624276952824972300193024888211587264932228937043152507129965557697275425663164151194497902581311492156746449947174635758788620050459713311643776831425989509980844524358040173509834293045206122330604280774124299460744449522604848982268154015025520210676801720730149205284292761088687817402350301122168579294547022518700111422360536464580314352118512350137657335393129082889869795011429331163644304829248073871285362318142720666830435459523533921695040791138446349353180371638700003637846886945389405387732506230875054257282021593256230754548551509322841502386562982633514861476584637296150949114779302147392654305242063165149637753349168296435881722360397861434062121261687276498525457406575311604035781983674967299301504129125408697945864244159535207328237155915299968366061362693831596266533610928979644886136858534730734936088123476572863961479042969257657260600139877107187745986019037956307580623285030180450479513693839147148581416127781646116076389442715844940357073596280496581215727137370180833222699022107308234122542376913342666330585904063835488117738634831193041058018435739600046438672567355419535600336346544225356299884121249714029092299436956261366469642684496493966408038425822457589566969765276404183554624435446164502281163139099496141713873319776413621446438975436385236397066130275894733989915041510484126518013188155479861213237329020399795760036273188709588349466303188043404291173613098017579988157590038465478763408255398549997467469868891664849749762683749433117542076342747358375893626519503320418568582297487852505493979271224650147026778905370363108287031245723618195590881756357955486338370278755997269050926461665358296589774123092005944119851752922024455096251502802349844517297398651514930804938621478244219481323363442329279500403851025803731310217065416238233384005096350331839511408412194336695526080250169022201025366683180116947754903376029489371542152396299964306276575099193333741940316994957816239976810225584897696074959732627116820111207562467229907195728766540991065872484736127533454597033943043959540340425935359380479056399642834298834031789072866382802144895364045970883352143264081648032508327342038702745478163202349958292938630382596203298156548377699627531083721735985436664833881351733407112259950881839611355356388890946260980314427038067318259223594291433781480213083438739007296099908646656578227211120656468443604512618373342431505474451293954019353853126116789791107947713686519609561454845693080926733063061542578404036577009845618423939914920010314752732766896314276849326874082193419964965627358824003054978528271933812185104797444578025404705941708442872274228603455879985377768980051745001339188607571678802654056413549654633028164595622857856380113298492129301589329128120636674869756030965177262349451748358564701417741324698418756565404592846545067464229658596556100501495149043677104354210846497462432303934313288728036381255757077616819304715649444382704410310193820919760215061252729518519482283403988231227104523326176343831773505366168172152293922368795847215158190450575501932179048524985200516163717371897445192039857713739999062472575867053545052090240449052980549003402007123356901996357231679727740711307180801540960100098819389569176114248496431525699985064382903096894480786134276822273228981806500899439005385413249623760421807135259915460970962186116824917994867652669913986859508710349503794670700303282852207329316159480437343514118776381783712707861702413284261500542722568800895675919624344284079998813518502516074116941151935120458012588791908654779060536447523095706594325054284748042246455537277037634227755247862035691731288051178176834490737647733735562328982255818165332462197195115620799220764336888906295664780670780065096774832520470323270567214423241558648929620423646483992850494503529406731643268913510694315362449803361029213138759750383943481645508629750228972989900188213521698981837994405217602872930922025984439152210272029846316926261467948460758362956611677415446056965229156422164707381431188730026473864251266402962074714165128201520618518590807767296615755796020586754487267928770009255384676644729951294862987878267180497641145000839382750034512153961924366352130473863139477905658765415053957372708702045463569057976378585010708728554035758728168909772797924367391002782893359301672726477970473746570841137194026841841463068578018142351356491256269851152864474768854630338101091281931157664637204568979339294490851760072420380651430238483187580027478574122990971966594779219157891252817659997504950502097677210915923850097289926102664718966212298723339627764125549013667895203976117229712356026065753403892942591429117873585830847181669984041144265578159100174861909747985455886961920283605140620393702986481603060575227239730494024230244385547536264085037171295045061251846596099122895851882681800076302675962429271638146956280844317997990887110842285700275049067639785240100140159879884721859674888647138714720833833957837269419370408331173328555663422268247335506626923120003750703115478063006556796522010855010212696176600820336328570629396019490719206583974393853928116402786983593278009753505609497403024248201989257770555819802292870634895146625142152280875676588623440086540070578845582845309405253307974347288193372177044290825112256411961533346393474245414520676842080712930643315865012654850327600990997239689262830628502034463850992732629690673261761878657836834127000846685944400382540752422446890610620570961057547543329701303932663467802365989862431819031554448661658307807618237691398556267838432110435027932509285184165431666701982714652427748648499554867390763550131103920433598500287441397354156764197233708702992070683179073822161166734466532091746192939352973995082023015843468738730294486260765192645248522888741822566807257065270615721843303308786632567792806609642373271744794422729479785104758876978647500126899861436671115177195196515452458663063654025258939749403895053581203964769510477422498018018093566640259091808825989348242903533469672147930755128407856576957788482059024863684817872657617581738265164385340955509120813350590679983639589686359006836106301576318871575750947963017325864019798136443957787010504825435868790777461385463391677877725221471195216942163758799008343889907802279541953852034133055795437632413101935021490132002619391771942116422673956330487765085451340609960302184390407731190266456451810576895560331029484802759762348163643103922324475927991223174627504794906400406008951777753182654502579471791760478355038439310501109964248044259380643543999043115349150516433103814787906285295419300080395679653801290450061865813845077961645471913596640048435210162963345825140475145700113129115038099913542581107836364684739944900305557904746472125689100738752323830376788602784473452119416038548447260127092845605038683590066568053133680438549977802075569594896332867640285812522787042330738732313785837400247998083109069495861767191504917928070725880347838059129311519472717545763170264620479253712867806208541034057051131693955367791258463905216128477425885401556237595312065478696805173226037396926372807633495669147736038280406867592205954833928877903733727771961716646794132337777139155994430188013748313053986663067941392758176384237743640964194968025367979060481145317316369277600960408759941004275562663243140913645151899176913336903638512675313621752344699019352900618886067830994341621991523602427517593600526000384448065597493506594001537305070350371701949515466860742396769354588155842125504116926205877440926559330531827897658332130613812759122954249075282539356282390121946784233412869908591406608379838113059646931478530976641945179801228740446401199397086335217420592490470055673932277424024395192298420445667803558942726178063123578276296100549408248982534027053677282787242356431654573041450179336841096122665376161686613684294054756267338807770021518222237021355567280409151635722696087800433017599548780270775386367418191331962110542133292681718814660014328608972058737613781549967311732020477089159507965975301434994424750509573188394709499229403989632148966054423986902143394082805003557148779278306216325550930083101802154742492309797389552077289919435890941189548378840961928719601559861189191700070050504953376168381257586241490615275572176295362659291264346431315188425369926275838784496298342279592334960622827528796486179486049680676979633805682429091909316792293333652689008413339612611255149280968594047916298216006847645264178419685847032834002986215609913844730946289666958738167770885028648545887104920860255723148513673345366838576177083442364593039911960442998466513701600082007056908539619198345751736276424216704330438641510168035453389729485791738563358094169230269810853231515249306810557481970692769241442327702693571717335693303410054093528752192240452604423891527244186619885370452434699067169564180712442167481672498849917627935694013491969210101588579893588867571574072632350559094014395160559555018248658004629827345979884967984958997431313815131146996650934775734244700857336941451528156509978587551684687732094696917938219076621614499189907408624176678262257082409447241756269040811712147571348680445275229835099946316655463773846832742610528130043190389608501265380098277953848366501667820159995495567645629291610298344068294849599781725307760602024807283855211287989366079734789800562764449761609309712157213191958994120902978872369084706124516244502150040063503432533561467435431892721472713547828988927593751046446739289408632701433756524597164931759395882867774185739611875422972049677718725080906274640719691629866757846266872327844222058897366718610802276064905309877503463802283883502093816495745188123162384101859071714640735436514142790264351715209026432951989955126441650000058045911426477527635033545395658823892468279302090590122390361953568774862615747545932171645679603964052323790117507188479678081496277667469139377562623485503536258341816582974048860915932623036087313381063465969676409076652776096505202770364904284745070847229403023870679023462143603028091471395260698258562860794310309539445285196530911195074659345515296379271089059879026134198482648960531990954160459921687565395698210562423030131291734538497065915605220523152247473350020458597777280764110133824928047962683415622296055622086264952711144922606577199392006236036157076597044686612612876206762076343388326712148520749898460102567802801638324470854241151256843856092382065514925613260108507754668004794507323785161360417485648581370522777474828709025653464534229134401951141458101254153226808879568455860889139424292601369757056651001598869204298940537192147175631248556251845856567713645441037575943947572315010991220949055029944954793318643659999088577629688045799494334086373191445626051708734043045586576881380664879259984299312643288639050840018076016584546138953600385590544712210595268485145948753065277763045577327717005967199146213395398530976267729609013089612553674982297322959393304748273439503923180450607683712030983256205344092025042918336748423296221951486683574239565807470330974915216935904503356474907189318052218123307379204991331879062184181337496393360130414737952081890608875677399399785123725075862517016164675854569003716443090713847019685129686179844939561495854805801637466701630661553018644984184589705954955828335010838237482067394599484440891003303903478303377273516095072267631976460972374443271907326886550336361535988993149930186948177504652945261471727074321153239717749251447177047257744054524357159338582920648818050103533160376687575974631539471010165279252614730069278242705753422263782263930520425040078935475485348395140938740050483105783423430815815377042731723019953218996294768977585283687335494199912463133170535806136830245398533549470046700735554090356221982596299079769388621692672031728795126342509022228422942337347486167560124730075899531188263232111043838781296697557983088466865841083224986854906031407409079183438155412582260111950339461309188187373667924347837616283992893199503573765834552408679162116655745525641489798116311229436748204309612274590550128883115395512923440338358992177770287066479274946906827700078042422596761275675418194147268803881144763244610133834344005420967166051209143084996306228341740696634016033779287109381059622331144228232405568855921432360502611239233172293509284557605449987598858666844958198525760865004217380083422706529794637734879283054675740746725064071974091596795010503909897994998760157974516654509324092538842967205981935334913308379468824436625440344142370035091882499160045831377904141584775614557152555568694254963397695954322314931419706410846434908639987652439896097381830880766883002809487976039076677044656471218244422564473583469280745128241242494132924935478086633981665563426583478817489078255838201845921583109306977565240483482213938313210887501645203322778917707491251877497985089945709787930870663228191661187199997749249648232952563707403963579300117845695389698720384190736649257560783905170492026662399476574668202393125266185244841314573938790111018829482535355995264523723847398826814037109930123518968034619772450775721946543414751388260495824570420753225539420895409655720219257540791826295201999262637500411945214534233474822128412127341442327884958100925535403791700524213776255113968382108365728716759060392683507803160243508337417620758238479177912240415362254344596422203050478289133142979660128268891540507020157663783804583234739964204088229237236058802669738048693613107693426714624524285717800482591605925957135081189817946125111771839514619468997959775967904032681106719260740109718007315773256892884890247904698544781361885285903005020629482933028672779782594987247277936428627803728866042465263685438280083481700688512016365965472940055703558932292101868638758317697383224341661283338843852336294062951750663431683042996857178397710032012179877961329461917953918183601661423492102749030383801518468786778461140512918735083356991276339347226192860640879652903843220334928317600775038373296072977707928407705323619665659495176961143422528977710408705773600258288477459550317631557117188465763533120019531898518894090102283342590453587710342055613083866680364121098892346497117475923809931508889052341084419059267183412528121661861619813559366720288298794882809803019448610430465405620871819413727773365230903272565713310003676434369981285247154247177368428122961555113147521611213801593206565613192414579439023048904730396743216563877892350832433681697222663995357098105629259886156434726868613579378960667659045351163466365204195912776636670727742526362538539678951293874024091012806327855715418213494895492776614010760142572303584441112913950644321339304094441372311520181605178205740355191417243510193899264411887919506844068383006839902504251026498176682080638001493876706119883516450867640335896916396636143560241827417769673531139625864956910668281586249138291273628198884738388754813395130533066551986281284045982135822180664661744280120368450302775716395420214529981671465258479144235040494289128854500886570576086951103754569162197475759273773327020129402945163691452819245113806081863193657192246620468446603279508041176868102535229661764325274981840140280226906139390565473689788856316472299497626995189264727876460627500169475291217404356283343542638566841920484574904967203837911563357409694070561050802250133268515210089643492951968877638180200351779323574398398664375521399700726366388072781038488429461075487466589855378815826815752820013204364005258544067231998398330186781255683268644589391933344998977986213788834594446805673718528250566909327008145200475705818022065893493770722998367124729145328861608512635154668865308966373119464028667852375555520143621208830315116734489738734381622316474441437762744292763299163305877151890057581680906909084863823500823312242462222418736858681955276043789714897207021411702020621698796392788950064638464212778565496737419555382662349670799707271539494882934706163606111993360365765251288707396428228219792900181205657286326166446204974521391808601812771867794406071871890100945618944211708297779181324819511920176008954488711189808152279811312761236279112674999413092832740103940601163541842369149579973946586285115595661465427104561288167563807176752901806172515476932961681466177571278408747620632275505848843066502001629956877656461430750167922850945075288595705902943484056013440764533953172753824543861898646373153255727942824386318646448814412951601545381323836759402877587420245615037436561997122712083313257710006703104489874270640437058924860852976897080420773999766897669226128781072468882523466181721486346824418094594471946492390080793004447060222661048035309588051668791817737356127779983037303040946208925620564134272727259651149220444157925777860817971599207206845473734499698948304229328273718702098529303141591794051335977033366623764219338893598065692883813856208686110023457769917576350584585153332576398442082592529500662666678296264506453014032996763231670921893436212855034918969630706826958048165262420228401431944154246280524663273739221859356716170230787000233033842896000668868110093625574663925725985601176337976464723034372689359388268623789717280277703037502845399496372576921680145776713911343893123737282172425182537904740640821578798394800394397771964165317284042055024093136160648961932589402400915964083471435203764399848860599887296580341691998458059286410447626573891251943002691748591531049855551445434706385137481555795071822352157852926728553411433970845664461688409790167223174843035152339646349846853257951638339597269264899256650945479877172355285978207665792297388309957318236694237486430384287352506146291244538176457592375621741247537184912511382279369670294125421947763569781356591030153700881319458748974044379566489875743841842403860246934082941966361715388885928285958710383400683260614502145540836330277768185965335465534137300150804972545452936591385449197519282439880957036615957627919953225859747700648198010621366175769737622601053670631301079062913162750985068699265791205938533751352415628634534618865096604903284383324056801614184523601525197210096808374457333547323627734090149418260051262785966041954771224725011079944848418414763540204332224346380577565075177330024237079104927737912159108267812172880007367730944543311533868499899499853628629323907521351616942901156063974615754828551685922534307986241926551105599958809044452646798736934777232371430740049383757995221234086938507566978315942836130282674204469848725703332771601596920184295923579789069368488404136717145757865905212337871687179457371334855070734169673376219327586356512951344580877010295111665318274184729876581339150505229777828541355487906152156511064565065177873451101823941993592376651865577578411771091049570532072127551255669152316106384735698869227838585647356815109270158132549093571525966604498848201722329777013056295364639172417250823022525254920590142180708378052220855843667144581500955290449182980475492962885024123288093492379608130038229694662234850105534402518974198163568795455392425540372954888911209857617562396809575812512573543286997379902467401629665637739233270833720093121622191126351258112501298168183535969566737507677971156214788315866618973806645797326824646158990538354098504736392437784886291443087334894237313636771260961182737970107848160864793753010556425527409563838643566517747458027434134125978113481094343025257078036202552605461932435211321961170257102313977528802808116548357566565906609488324810229301638266179276660236441987016755601738794981297816607385152928123510515466932848963642060711513006647087821048604817290308296058911505805146823114535677537753559581314305278248961520767660329362288784967839118508385680610167583166768200188661075466776323930990495449370731420308445378499416909049242084813686778843399061034360799283603330822121278140258041288341166827002749899568092660888718576257002354036823179558975604130227834362513807650245573628018749145491996575959391394033738860387977750011381395260136178336923009282605202030757568081185564862124539001790447550588931698377519002638335145396799634890654480481706780550435878068226562004917080303390786465637380531513679406817061523972157998854990218600630207733709559475924409228625327892810353193627678836674072718328143482580584054356298776271718488079098494518469363188779464322398092586432196269126097286151322912414021815147880009050092428009478858366551965581835477383961416404514145345381694633108836687883304678777529261713724837064586630588105278334931959541943606096693333293955624439947610364387487381240259510088591097604003103426027244251893868350139018452571902274068291279349161731740240295905665118034797757243371512419240233461578377585704852200327569859228186177687370874975422870826380422839823414376514246800827923536622448253032911984375230612008081463101963770611290575891252045972990555963436644756545283536320927468410209473154294738201731452845808390262461835663330468580741061895874012025421832363028093564587183061980937007692873278449506347848365988772576840591253960507014209840200442685918461643517180361369644886140288749461641792850125210689104139903281204765626764803698227505562089035275807754009816377210682503706935867340076775659449942778862358804386669720629021327594065473465636565421438926709821053485598977080621487325394047287009825141798638448558882314220717386452111132492773481564488569252604560445845384841021421044125904447678226433187960463906549578086789162198421619236770093842110213900759635513918705108449950585101007519901077712049311410759068708523385235515117384658535396347527972151548518611725118094161408045180993298561640861344065658448629552786273422402172845373211771135049168873297000153752596591494087642991863689807431996758467515625225555887876133470455636918429055056131648501087424900996478621912757278758103475919388949071832455812722259697908078739929063272807295107662760563803634305792286758298860731305274160280014477677434843823988465493019296091496650790851248907441320480053134614099996694848072828683252975990910003766423280808140282118814693131834693545136875325118713844629734069571136478754433663292296668002788445788395186667011147815880240696114576128260888528806097483669878914430599972081478146665547262145160426170154673501195874337763207998141740472521237534797058015336350155729137985136232424789526457514077940327718901794333746981051247819298484078063925582883379369576935977768465234797981430494730762288754155222376014806643645248966770595028594500639424970116360263261645408366273225693401816946671747569366133590686354220267272851033245145221559392805982760329885848204106647472658330360491192948252481719418929320515949689354655847390208444461386197347562882803094958854586803836011917289211705570248638868740781327776156066835134275400343683992250172856451976203179537275854614675279547904877741407068984480835536777020674528232378847448582777703853067176326688817257388655221126273734021896977620390460063324121184275344476989105046947462208269418505379395765927841054170459424990841775970105051903231750908421197046987435053026125711259969440799864790643444176220009657798974907753226328029014592371927811132748193457365168315118643264703256060363211044628217580946228093010367358711068503287715147054895750542291456259926104155720429060281291242229229471943930221073564788464473011958679319455750824923482789053328217083457859521796378318616567109402621794629150345193508689073595884360788236795309866954936574621381761120476636283543125965000759189271539165102171961420661004766113395656364123709133134603145958222633413902777085859479984290710809947074294552392086858077798127963503045036667280582313420854522059707766795750798993794111091482398028498724691133658313481999682344608633399989164099561261223319097808898023783829809198257717631807766072299529416152407000735779444331735130099871654504901467017995082743597608641958383031049743741976290031977792496433697854130430938187822854115239358840609070340553238038201323436933103014925649115564853959722366424419966335367198023303858477862640756504442055082494124308951990550254732689707287906641863742079536451459642723481107670540119384414794046610199275575549242813637146460698675543348950466433530122233004882896493725551742315354251602987317084295126136583512250649072911206114514273919790110799011882211897413172298055265622984462492003472753988706627160385862905244575968956677141596871342075242840602967030470143611769001225840048096394327025485547126368921868842341280193677011089274966290757716763783996027183247813583943345721650547233698706931687850860339509539653787085094459204868026586739254317574248705599373062260637502081744548069465681053753454903490744584319319076931514849310139455923851516945704558069980402793993414127738215113141603264409151505125266777752768513736863162555735295630814988475002218139507925406427626957415369045516857028281031001294909881620843492254522475750249900993018498494290384227142880451474235152255069538493635631058189651998241120535556980989594301905497742968787671467122557011111323703449755808805046897372127874522905716087999442089072201025969111100601862174860591075252711812759745341812320408433468369335046305534134084285174759911463268037261418790791866161019078697485338482809746932253596891032048815003262354576689912288876357104652595572506329843868186081718101687431109204186810503921325745014162516463129078717436181452094850939713198976529330519522573890364334538271976502728796897054416868165326311818000649135686728741612425574204822797035265164875664350846010749341215429704745002423542267269515656383856781099982736417955682746094283693706610266373969684613155576807772271343552290364135904670033243765727230028976661030396779718597285653543480197431019334645417339767897708883669376048494996878457583179429613202095461907976144266142651980980682355316823211425565975357889179536567943390592588967224462352224441699135980392834181217701304705657936426693618332429659142547716651706734274059155385262003548653586113565463321903631003516802921036490985525765782426255370584973885904527759909745099036592337399192307887583582833524227650081770618744438843754148524541521640431258857471311161568652694437657907955545024300218898066669750014404832211217750252914667501016832281079202826011248420750761007827853177361980598923646310793992440628159836292161296314482781930002996562000288326365282335659521832010824767994883117155317176419096493531068493975007388752118420013937710612622413004113896587190417034216725261534284000023390268051916382115335000012481495561655294581257107835884493375692318621728707982570275204934795036726190246465876254603517742129786393962659286638851628285130810754851118279523096430649641484685164499717850135631286127839414329106116831409116599613023281473972471221076097978930056174408165584856490063554200364072580090144910117296440309790041265237194177604584425458730056570961789398782111333326271335070296646059132173088337112226784126969774494548367133795320638491017363715735491259620534223074670169773105388438496840244560216218297156389361026821794165452184120326866739187929552331539955921868488684312084775641997521925907311709998092836424978089766250974671545834360403320389112370111661248957159022627191702320345094088624713639669296764125278187644881618160649871258169584894503968097979463413650708685672551466733460462972807176596374359369496023142152999789558118519646988879937525062031668237776368916497078726881414067174330164071580732784822396282280966644325998509712538930954212675932932456848251882740363067825032906424232127724143933123289323166432909815864349914308162024445991013385948180182320563770435884869872932738663623122439678578425928848247412276473211370727762921882470836509694155285507640125509875791220838936108860268700221675029275112442422105721039186499277984623402079956689883275688132523575694306221172856316410508267856418915423123143798550772793698389591408007534117688954032253915882061086085285926554064364716780697434192157604711344530579631834824895381307927979807520407856085565247082539375852217061453709510471456757231568537308281843345421500695826882205125933896545150562501764520288848687879275433012757324191187991339472237681710392183340346145332518522410069250998709365023402510843192822997928747589440916585777497355549528830164339629277443378975052614279665925217099485642842871183870911723732162212623901964244793346890328315440063472942085633145392131676509057675673458195693158862212505073439950294119799899183274472616335191682225941447397706334719893763627608395106089158928563315172610047873417879007067590069618309817447397280188074272827967722076293472255889344070836043237979442796405378799766870542459018345918056558282311280456499482934404112299843708930332997317355621595908662734538201317037938715587909154881972546537150871631326110657892306072467269336222982610914698144514639955764681874237080914154555520611433754307278050926970092173643374787807513705331599242367362588551372202957902042846058284553226884515040765600668517638010997960177458756876940623066551576793776831313980215444075349241902934511315670324872572401761967863782165173255045961767327722319029389310095234028645140477920897100878081473553717381938487136858346981231596532437486506029939347266475271329559017341486890358423620332772425021087308153207697296723900601507213797997584445478678303527695895112188277314109816320910691733536351604276129246179959921700736953233116047777917569744386598666037343364634327429995193963061250648619983783913780802363052146109744567845020534039255181413100348488881039901678870817058393306429066933627313240143706745116478960632142618464736268050030017757145407506905750767236178692698865949264420652868965200440526704749024965087215174141593537027031790298186732529798413364640903538022904549426326059293001719710486670023152452922985913418851029600942117896861144253679663987637011919882357936668946959982246952890349923156184261741663820620397992173127057493748692320399699891429838001273721339556020401225625924757439497266410536556653933042224095572391837032451536727434436101064008587438458220381632926680609551502151540879704381842101703964557076588337666084405648713907092276111636912564874769259841472920751072209784373601463423949465920703401577227304124631056223616336790250611735213302424507300592107524369189855279694288561469740283564701533996788666650804219474934580664380546608502986959047302358863536705445423103984747340588469296954289107561240769466468483834351285665997500259006747604917427870609482851982800881605791597237133053966996613375749073709854466912364195263363805027242886549050772539574771363831147532575173717319373393087935303436124064407533662526358958335618006249841496086116039097557130278990091772015061106620243503914758278668292116602184023451916844481902237244090144412050228252503356399781493018534098294061376805848341051873815276245442694390314794580935881223217497780082052323776205722909620304424950939796061360276443344244220881208354753950989263700055281653421103641964975608113890875515491334113540155133560015538545935651972536043082534602433444942792300773739065938544578099148649575051849521693119300910352546775959424149534273304705645584864274873902137079577083758311323318867885065415365323483779324704684427318332628128688252810067563951091049623339084942317044279619773628974047182583233465177124825445258160971435325963501870868903921342212226302880709791075446448027150071142902173858706282492330413202372220026223220732869037917599285174451513782657075559480236392368216008087443536943838452752983990078947302731252239309526920513520604843962026480016970629095899077661921405998980924845052135834053132346163190513024409802316703314848062214024010371433216426656296495082233277067998113255196422726369401273434462921463833737196942535741652272164935363946504779070087757520841705155538378950346621974058374098261497941622313787868171373259249998150506251033593169494841917090419558363215572799608456483001107501307649429281800537166168272482988230610691325360180096673455109411030128829229213503503643236973229830688255936700947504398733144355857907736376002654493138809634661184065841062727513108333562653330459615728573449250995892559447720161248069541408663859648342509009842878281055249243246314048894441689270792670857339096092947982548721133899037002657133457588578940176258203225312654940314297460703618118129680743019418984204961171273866246228767431586434299891840237437954833994498858308668849804816247327073951094896859792547975554309844879319099429131098575979769714817016138060523908021341628334356615814083075340102835455506142867076774485443469773372011123222301688431297436660389544333723963271658779977063362132675259546917698683717684594635884192163006787910656840927961739546643586470467316467658928562134773573906592333467552613563284174241283052154768679629241064837820735708254029204064474576855189436368923632944817196781146447182401338323362808418700968529270813463796490626843712253913821283166929193713491553543954756124903988694513543172585299850517641232790515518018808378675504158914259185410276473620150408615186347284686987596494753778856654548619635056923401755137886892779199096122017483262474071337267986181285265559521600433274791256257487254988774678496663781065924726923557435254955578518440147849014899573074965944973993786329116616025897078588287290206447516832051292448492791010060075921216068337872174709078002124909154367697286175858722278913613451742627275738919591222382808243748562912081857890781114847961954569018000161710719109600961620856533216669627378888089167200925731044914639467322978646804252919744611502655997717793409862806500568376996559863571096936062075361444547966861210213143715893352510833980207536912478141672865090985901366325174417792795533775682872463921150036983904168685211137077709337006759089253976785073630467447070765021634024132685456025144471360027427711581499830462174204574293778542431412738907368261202729868805915500975828626169392864263218283306963561762344029928878235990632359107567279689050611552192865811444882400257968559343384588358639344170708591932386783687069431397631642936241386169977263990407699792503003206057015311125431893228976201748274812326557156589916772321097030811047046789842688588583681306482839509963212732563300624104692639376623541273333498305385086685671336243458979664145349136590298200824993155870142922591903558976134799549660151480896487901616871965195937897209723864581589684990472676620929562953099909271015738497438613192058546141921341086548009250974560164465984427759840941823948563321390008511515056872751956752438984021520619336754121282459935098820849833627522527067240470575850547962531138317442233776308553404253566547855830667504383750332274013043734182058613475725281473245629947858051312017608241106281604947280925335473700387049543640194593315024223781600721148781111855449691725743854765646188456413810661623764916712203009246887591817761112577595785457513277686354863855511272238213704574400504984907329559400283432421597578807106085952601451360057174976201672167962745878368787970485583733591033504294797419636271954856633680300885906298587757517353409596673050249390214552402919165856856377423155378321269219005754206107380689194138830108076401125842374009714346872844043995794432432178231773236539139134867942864324177842293853841494958933896621629374853990283484215002614684874129142088156420494623401257566882145309464686329551036572754731536736831645251257715366694201881261056745919864251414806527899021122121215646947400892956979674035141424231401194140359666545924297199825440892050129634285965348063589804046374185673602883289998728214159695795674596915253455785153206450702119021515952702302241778745412556018418300244333286271485064024348785329509870735920536428355290155892220913814408748369043096127492202974815027113363990346988993347916133768994250711961331077354091099633025127505017774971223088837965079237901158714128449726957245898863685076789661498643879702767065697863736416202026884646264249448865279331275988543365379823119877372612499762267230542173488830167430336860691188998184639520120612592240794476721900476820148368051368759868575910041913356905541197623623381215282823170062460529415010175324623109565887128254300387405370621343547700701571797844002916512301665216043369648353997697137555393860507468661153253754493261396600601177088990466029494081637086513570002524153584693709515393408842445359684782890841254460574618291794569556043634046995392240854500021075830864376525585028253080952836525743942282975819507949808012496989580276053396574298570557407300635046956125760861509475027252715293240425467229952441053316914356456598329841974205610303339784392121858177681304600664972577858287024981488046422042300495070653212716769297138054218938077765545110741409740335981762897053284566949269306613446338448104691025591712418919911876387832101309703521088016699051714673586766399377749373766097462183928599724004890570971909574308227267449345957639721814251375527700628701139301806488854002423219774693373112256971888511363777215235704410845386391600914014070406864613390448833001408825841741865344138932210126059885520685146023489588515420716950978930456970569636714627623785657731845285671679281438971036871799714131905236188417989031764759722688113546376053033256151772372367256515311893031086593391353982755783862659133539745749936695790094572324225321129246497379711485100673834440673586830532838733231506237584141579217048198085766778761120976260061209920033982084992063606246381318100395254568537790157669720090857661855140924524290670093146768506578964958514790127654631814153990349068232206752101112011278719938843681767077781125276346153978573981043760279880906890576962739166575034161143805828886634850547954021010482735052669583547442997573510249547702303645785660962187844659973275245991190629480233972182773974222207714610539196492764446021075936283041266136746619620022741706128025958571390263725403214490779184515161906205112792032334359958228573439940173796191226959477496239938285674771855513114183864482115945708695687446529342130527769134054004828631927502279566487762690054321249380630380990448511997046397824442275231331289111542284400163927166703032353320663460646386680566534001399320744876390038854397447269579925952108682188935279498276306803634252510685104749647349564167706325695241079202875232589846416780999250165415840779810758138539377501605939156582805456897438164359726544561592743572237303955336500033470807546971528749704203446105750136306355587861589081098098634570268717171962786449733002874039193359514610634585554451865397000883972465711288964464721725482910836291994130152489763638871481924822919946781735617607208872089919862941960631761932652196901622694459805696325159643023154945289978294105929470479897217716345836598429394842936196307483536516419989214665307468229497815352907298620393370006269375663642554893971117369169485881311026353996282749493713114679625255848238368771432212714146841215994785006303468940020283198315932523152270779340373398321250238402731456680455719837715994865784908501388852780924259533650668055683404198149454666114119059270735382194821435930376228323104604734112251259401945911456110657771235208021125227319817519092847367174335967031072517420407379850563037300956905674927911773123234344198857139515603705007942909565393864048057067753666862094740801283898325200147673845705586642538466427660709815485050883301169972086004133726598800618711619139629002720257487216255678723368767107695645731050076292803690634543237492567148429914375643668526377590924927297351789804391640600766891836491430464323854042589010238892729901860068498642729481690048238100962481708064456376279027509442567511464434593979411241216623198958849629581508026190844864519338565996593158705379001651812777168398709000305031502965954360811716018214334677456016918321036796444604396080571678325866037273485009777565148543621643769924764130508657968948546232011143261001605597053504763828345234364350566398549013281565975660509818882936167002798310528831435602697839102678974320479975747516766033799832573268828300507129481356639806950674400428503068898797666933591496514222485685392666593471865928982871173309045193679574849638252950028227172667792460956375625363883526202540440454396370148930078517553757783478372407560637594638358857836253847433361349424205626187737861532746627369182309498481130111640285443425112991730980225491905016803330826331270506779237355388798680796458610496520657058088396252139503072486728743667080777542570073056745463422820564072459966909198576108224159619525591196984035201388908906189642788083089096164863484903825552405961232925786199092572205847068372814561170932208951528279081229956637121553848931610012385139395269822719687600989395210029565935102856693232709057120366958871795030294798402913005191629011209158553249715178248502351371783215670505755300577530623420647519585430237010346791953655841019715114448263275820947062818914199637758451494634208316541700840257995561272443228064922439957093388194171258618465808104111769255550806753490881587403057520963459627240910297290450971970101778103900212556795058583994223172318215581381902167287729306924786629720627655231454208632745904227920634858334722012497604916562720375561550233152644892844234387718587580366930016618646616016967688701665592468962084367703490463355333805709723058218398488341292198105254237300732317422010132296029540711778741331962248282017529561692082835886234624630520774599188237929345977901828698978847520413827378887285525736211945981270461399767735267837214553827327851132572142469661214383355688531212567508629136555018504465388206252617810961306634351858024599872234614072879037256957245301217041476214791247259543418335367348364915317753067842445306300591200794437222934977861678061938299089670171519707195670038837280350532458474276107980824210979099768710098774868877713394972029843223805677319611716040618317655155595978773796854081377908188754656545606868622251876040157417901543719816085424257352541057078879940873541391595449872646487207855266028606006757385413741877549350369131738964340500495960806406438412385316747483021338179546257558778727779616263442632776425431073023338133877015394476999355385053971040084152266823388153230882471890479587695982183509696971931994065928777170301812202699377326416318054721377608921156027818319309639448620884669520980311181496775241697784275921934473495892113430620269467309802774416328698146482747403956395366779484425189452640228597418423202906557341497349624615092937064902995651395785219432229430883086274684696007406052497749970567286593879168828319822691128277506894310393162165995076349264209336087242810112898440019381777039586946781263415564688091557107066501919622977958299837812859595618970558226325712538781646408362174316324345195529116878273892942516132625857418340824391484011804168956630035202404811078110998894534609138487893750472747250117159193311899584252451911367258678802722628564093641060138639564988704306387238717758839474622423535461819859762341084707373557217539137217312915933384227868161514378231843359418322386829990501205339902964702052839490117133541797021081157555651530484724094009008273847022920559863781231309066389931905051031013732597412239826388109333829242564048314253170876405786311100940799433678368619388705919205229906297674991047365955525066733505694609271331471192037521351552500364213372470242132473864052888379443652720546085651760368075578224111362254310357666728169751254926643878107429192913652320384883519302705185993916890231246216278731007647382034143299271442562545772413156677853259646944143806202075721811288039568871250128777327076698099558720567424679881875676052293793758499429635927553209974339676753271500904095503417524754076964107703402973345829680500021965745797844015626680956557475261866986633882474691335954909760230741783357146340891192246700036394649120597756518048147897613538203471775102574158363739973222810989411630004003853131284149893598867061004289144344470488270758005955003329403706524456946735942433934498220634491360706289719945260894856836748630937247043143785641617022913448964995988455048590713207144009126256812971700244849851642628015885352149946954170876174028279114354576563940076294532589873885404383799027864114601709861153177581404263165776026487894771590663973096969574969831219017490030057187686767729338059215622324959892853099418079589480582827175625537424242470815650972731522255106240249172146524354429249323607841671767612731762730522716139495797920749637345509200767139212648864367237282564618453169220018772993076343447516122426980432625235499408962695622285024007115749901648263063521178374798341806067757547596765271765311556403944999857835011075968953026545130951133299117788303702928571191876462031752404358112587240674428429336608715865762507369351445989496737376873687410082754210109134813302500010070611798066891440630374439976881348854678736852069325552120125512069884031011188106486356773072868512243522103286826381452095079954080562299709798444206295379303018783333759648816310469856724543166573180402879210679782831343360845757078462687732134472948893139774129214511462699581670732001934578197853046058503877632078343449491489540250687151753229476814077775196231312249776338056060078676230124393886026501162894004366486414603036577155011806632063138383165512703352836420036425942574772508266426215797337075801901498320968078003833520633596465926933252128114122922937144484351489842865709845482334915895869579174069455892769334559968364072336333509697652058098104038331519769954502352772031066989374338831976862256979267766938744943490834743478843412753384325695189048044480628352685142302157699710272008771151115856024519925598877550367358059581298011818185285729250455547096901982034438519074220433515844035451505773350032212299019162143691955010878724989459410222625912695671446981690665308591579704271705979235167028609768457116862872476638845675912897517780014745575350764613580780937735338509738556005083967817423185532012585257676786610161714427761939903345262629128068314378946709178106583341578545560027023069664734141978153280234636550328894311296356510395006704249470270236837305691356121407829481795978326815256246369274592220528984212735749806738039898717304126065259447070984699316929062046423160912857309804483717851503626226297480151369202342056444764511535314897744569335435190285707945198859662798052495638613110804894790136127613671526816820413301109469312949849262921327079115970970067218773674266654481362516491642805674334233653997279237562618179422742303687961919588310876000962304665301386574230522264530627754420940014462404006895973346396638628639526882021219976281657033469652483723042452431583431265202438041270558271411848007428685076503716214012749082617515082804472449199010799692610603932957930541377307491292011462548307855684763559691756953352677855176282521571183789416518737513533367476249519478976911777660514127369561139996170276969959702907372993775403892278883333482874920675394357519076322109333292755915359274723896531057178824102974458052066903889998299553163839995962023100416201525960856108043890803532511397744639276205229431960080332155730825238963242029576455013552536944306476987360223943190804769997606745733691415194116833699966685208888743753215675586007234402378135467687171834398787043731374704070015514423442219484164752877302368155737263724710950293739541790166575979896483633531802330625821090307692363543335020721787732618099889231036887911174037640290519823863202524936939210092993904018818864554384324320090251926724548629869407242358214947692607666810774617309416625561005389887130593997436140514587853626417907423898069117830687826611147556109251856604467684644873393169935248124762166227151271813816778048644521639858288294594427770950645111000266032455532698004220911401477288905781680906827764365031063501794585668907720148824524820937872357383132991489270903970214032851017655734147939642438317617485624331846862231675513894095850643859574973744858666642650593034250623105904325681596043271902970782111184164139211677249501441909313772085485146181613850578642601807226740480714461535348620786057201135280581708500521761873457271141384630365706115805101765312594079660392955146422841853001963386218627583870093284723077607078913152164444123337494449758167941818793404443510972131200831050097465200043525843808301809965441062453388310253523156341737793743391095702107153746124484321743674132458569162733228211372970961252956471405606055251569561718696325621330087131598567277936411924157019476814895249718159953325672078567004808520489531480449662803629452287251432675902222759499652047501025452498440037603695143342657002176951046501510687500059375510978276914486072084728224300785758260211336069964928841423767879005794473531032731511570247276196325449400636585912683341597604758462539122750196397961829982063439954113586266069443974562016752003999908530375806703718082314215423535883808799331482050366015224543288734537650324675334286285377685125031984867989351403843109947928592056059635182966405573241778587986448693649008620279975718761711236679660248506116822328047854453686447544866593017569430279236607625708591113670840378949520066466923836323343500494999130328138048660423527433670744221942396001023567062017996670133284266603506761760151935941863638409978657522829698015588229246292623912729615410940064804453779267389056479532807779564083227187923927449113116629613280800678347456170130012352772339680148680050498277927801510918311010948605557550079933808569613856119628486828631982777624815629248136137442727153789093332522500047343717571784681403435683356114949232291557864829808150202588169124665451900812593496347865093646770670100429537764345136347864985692514618463026194773161772992490903637826231106196983813843972828760896378400709023124920765017068158247627853741593029646019068810789232195000570678007947602511522334919041173879947364518107336248891460232751208266242835008135643045806823301898611894134746382418510307586397909017118477175523112060285043003380394593180297139862779689206396811827752896738637425311146330474012218211864854941806332126791969677151868803552549811340665615992479433858281857214495028365551920732913505808896122592356112737532556905478137812849938741707626124341750854077464126037933147994861206299420393630887814993946913972226649754395731400628481418426513902655314074003288419941177552814167997936529266421777498116606024435447350670881815870455503750020709532426946612126870966863302470042776918201928046939976596344669478546846585784957636787938359576496483650577799947723271439748570840636314859591312710040259225750036139649293780029695499258555393058952449626134823579822219541377163114782109682419262495019505589311000534741825212433278359565773073838180659544053229088381204782173307161363354314060005503468687373416285370855150778303631816688806802780166034998055108501078283585451653156644389359100065276392835818313124079678207663159164258456049195370016829198942019789255754094222009152661954336209233121226099412652364502277267897729022569396431838360452199326834445987159202336985815551621215235686812646933743686579017246601720778969906641035196941532204512181816359035722583759555193404164959667163751465403732471426410691840137641751522790673803573684766731990741742403740938972584489475131303619085563206469296464452763846238609445925806114350659510893568296252837427671337977936350297956511346494336004787293385793213299513140304690947197718738092741224209907469224249434705333748309859949985100034937831706404102740690133753222540790935588199916823123596947628296140139443730887642269647119160798430400478099560604169964425701189103214701581010833926331053213872160993782603720595426636198096729887401540513532704263092003868939534891761005423633256307984460484328171122960762250532067893384627108961986003913511535751668824985463669339512966896098738071851752091702225444861248024932277142669417244821054945536521680529771799639914621854470418092652022885462599140227854198686387109769030923844801632687225347086935477343291715691521563047756483705476179892358455658238438155954520954211473764675135786957707367763220526782476280468636539604020755783290732207395425949226486528449301741273644511859224798704665173543791107533483634578994104992965628162282993001099509757523672963174469302462468498048065206543291856840126408190575909576972508455118426536358212407941922556358757603894380913999487995968527111858395224352349872642894794881231249482433399363087064200662621502634953558869176100951550642943047162302121743574330056338160142129991026879443579910014617635996097367650383555575954538593375463609877780800286164232961362028268103184314541290903748784583928418759623222372562243372893636801977103072759356503714193449136300347217816565865448540520993546393575835647683054575918319456748741512126874184634255679957985766487697789656291103621107327771438777692372468226466171798561353060715831722537711918260580872967094283360014536816200768790971309753095619368267495927090347447043153693958963785842810382802032157429205001887211811957377549432268337246807098160825485753137464171223338940881563159133111123166976395945784493571112150515991294195466351638442871125194581497166948042832543885544933436788224188589179280867979520800454532448549337900617121173704217123559754457539650101045770165364751440533151667029800636860842197961689108950482020157285930470121222517652862691093006516090464467305464661830280739419537314181859916477834984428121432469691926850516687100012980609298046737845752050020506876427053078877579555948556599366498802945322681956521703773974502211884933647246451282742682156734026443885345477217243189601605957060610904112648066530695172445729177427233367427843413710161596496622913358682912500995890185968871212278687337706818823623803199001722132453383009771081211527842587508474066253734731374334556856895609727986428977862423520557029816812039170645887713022618876577769492176945165825611175907696772507222737755490591130575412557559504780153943900883573789546005748944989674408536972647521383003272167996290920058619979452966034763657190964032957345956834882947068089682121672783788884175153036732102455322289309237795403678785511346270882054671292327382777218315634215953491386205100045827248191348492206490322636378068647659846951276363807575080178938872106489605683203249973336370376478278486560788528803837859874151183546215931342960905561189502228113747856123741390537968140545955858768577967560505351998300465659008774121983833431984875364353519481846267642845571906780614834388561167676161469399148443546566908371911924551302106600637242248675879396798828704721173943350917386586958120179588267924650511470285760565521450739227945187584388861716133715725762564251060135695542454292203150056362248499288726549089194831581121445078946587225489103658785471532838828326416789694646697233926003160150184299879079941514975927450415860512594797268969114640109643037415916197684471136453648628467807651243789229925814256836474380632033967423781318017088012800685787252492970572821266145927394434654671419259496957359209773198361732036632853868770784152501783961267620377915343695291217638763781172590082748701349347470605871073871780437785528034549440625715945345868783663049333474220053160965525795314627410197659711842582055233237325262370780983027213899752780388140741465545424165663051414006499045522320935122993562570459123867237453780222100563429678766736444359231332933470927787820920336369985789701987774388274839856830890558286985413130846426777318220642723597543099851066795979272173216634748436594528593314342617943608673767598920773515209692525582862488516248756376422151863230790009967452219390044925784224592101177149379262154613441625388707658101682295221961515686503899741700894952108689085870666633091109127744295290591204875940143273338234757318666857910189143157402337579329794365299421453036108865826088610403225454459315502815067347728683528891931912884481063544964945112426867629879014956072307954326351613285930269626402297254866615923325326674484222100988403457771186609844467847072366028699797448070602813402179856523018492366253643875291987886315235537615403990439894340522634750744898678439529081593209298391790690730506065739890014816529127373301826113759089090537178701594556781236920478475815103646050532136646124620464585639729315062312788377167685983584418051760141201302050730642467798387063836569598108363886868065035197063701707814202141897640112767110017895182555367117651933331981220778227539418771536378065932457384098007061599844940199508240337277044000991068663953824785846594640922213613208084837842055203202070258696509646028714219439925497294877117605946446868778436669816374299827792815650725582754054899686593321586072778065031454454521058698343739227156074190439812008610505227010528032104398006546347929724572851599093766472383382829590195210787668197184364226181787109480890855523594714468174325555780806979685281278575969503410761203283524063669648623618808682078175543919934188780205777976013604577861581294287391969713933005639931424863287624677667896403572734713382885958692096360068298522085827184674762029394060717082922121156499661089183279139346605324060250287023036320234959526043239447024142418740104693107513450438008661758537758009904951247352342445693201027712604816697191687159317943676082209884514768851957734119681281274445502457837970283473924260787175184128882620190254817948389263494005383721654929423975502207918467151849655539891580452150458484284510660948176005494253103780564734509629091065840673610645773354946253875984442816274745877688698663808399527879339028538089665170983276671502325920353139154341713194518032714310866054186516925273992146276150443469555092841600270080416812649619147595554350122381890434286494815909952592694390287570751744205474782620918264917082859561181486129314109026835033656909606183469566865957562947622445941254995328967624064697770614428610442782411290512801465363491218790613593582855671803884210738367200773487702036953644881515098333150968004373059305793164705511374551947558636276637527670458767137463766555367470797980261684940144686868471682297972660032185864106644638346697864169721826843494942817278346011539465456863034474190040826254729384577479317740014929829362571269811467611037665546983323652770184376225326220621994222741749828598846334037074550677818340560648257070698430512913035557802721046508417606613433099586300305476991380773800801625946198314577143650768862156990227924511288518530709200957719624459164458271500998326682475534982115229234583292671970609427428601633448555516093384666547182135222432043051616953226603834013841006815046514837688949865749021520552265150766712832068087431554467267191974742306104049341157767732531813223113747760615767498326605322143158084275902524779131933385475461175354745423935727635169237660501395040589036255712125471942086194963795274843050316144679246336638732414890776505747541889272051157120741435737233244600830405086431385053088047524846884989615277559456040638433086857950553653039655507297466585339946170847105714115600101729275448589419461699079861077928863425828257684370632791098875077197850290428306883666242225459506232094257146076070604082035238069600820077750592960651022010142207317078343142982659831831957402809478732744158542218681102232395244961464890911349022687755663315308486999349595661970553485734699466225231438344930368542034617926374132253214102564268244789207778932711742779789090596188297488772732312610754988898125136045733943900690839123523994618262945875067039237916101379595538839137977826555430166411470491744709265618933263766455982211032116281007708801003873335812308155839846796561771316230544658532148243323941903797933030606767876233894249769360835870874892902955305715410792462032860032766827784625100963569970349704198051466767390793028950463799808653990499420550232776204123093259270559048367864447851199756405482996859009348451960458103427865552797987943251927237769676754062262207594632905009793143273029857859458140252502444219964267850919528926834901807028962134814334162041631240160856301579559537231201248490752878284952015694921220617990525366191280737333583979982869253323190016561466597193579719152975967751461459262929790951720362905069821309828679633267804535666617524401439170918668247634754502186151867618565055092066218288166210746270024822596747519082961292155427157985943057245283006930399144115812049151451512337750102304087742517372214198955126323886376779168582913600036294323831668975392926750670020026787387450127391279490646706206805112292993735780944196539525432552894890139023982669570426785018868627679166236752212307582552850178468139242391171548423793012094056979643484072431458948610653960485120421170432221828021365832449975624228224841527550054626980974225008781402441995404297131955990794753845772506439525109488940339172261555834055226879954722397913748051142523593176362775761077379796620404951117292127966153257666482610892069830004651985409308554744800571053935072286120684242938051393157668366355930959651030151688017026828483340580592937567806264115964901534556221510788341465866640111441111828211339156344028375806071064710123434773915382696711783376720819030749045422076730755463267193233540900207988992958879373581373176466506992630488241631769052649178260757990882777259944976406105006793576513744368931768782209416606005292822180828956801058845339535302067082697324300363754011674523999963178619520673628726151071854730198317837665222221962047917484180873804522393940372646800668060845319581384779904710685317447720579549085777774424317135145780338803621025691756068977607690179899681044727984980245411587800051516389069471801248028812846492142747003672330321907330024499764594956127607396655729375942252779982223621111975660604072602145818272251508083982078677969303958265885500856232402560002006991805351674556006823291809369705945757091692272200278274973069797992871783933984368270268770043710039496798287166449487393338726643426280200936935896366285134932186099144040834600644817805041537442502491364290211120382713036897924680290558451114344146269318360761295640251042439112266730011276208641095103256474352992384561354676328869626443378326484979624209990612814348332109058006523660771155319372786270143319895743885206220419621719843059670733461869044074803619094951285683571448752020939197680698280859910652410371078306884583024044885086981592732864227417277498914844664871807753328158867742500232881612253437437764846944595731495087040524943800933421669920894387769848603465804567538042122291515276883010569612303426214940904882439349623422881928404455393967633324039653562076422672440825473918617071748104857895683298056479983314340237616333878940418883948479248483231319656784824176857413273345344964815107598435279592472392645795318794527897710738206260288600437051540847180600684741154933707939841818627633072278355376559152050148038585407144384353303068507937432113254704250580317771171324386149511997403037708374501580954761500858382540016177056786871021319972771627027153956250009047643069293297682260372531726822602358209652489734519786001375559193367598524323235066549885596969905614905478138476579061852738884382937489506002182148207517117811526748880171728729782894587348108240585805249118373886605871865728505385107747684662311520762840373790728149702467529708914171386062060993679850973405031137962910360144625594817035581709389488648086046203188750946720934832579749914558986655172286191540068283568864374793521257342764369981167313518493909131376254596247405688838175145467503462920520789599851381173355087188229570392807059629827143428199140602591506561701666342917983880486345196846571116506335269689558577442541061748164723733360025319496404878582948029919341126410696938390103903016948658529376678821985358476308465367506393426964444548069009701559361768198179338680313013820617716028915113755373387451698062926021865342606369032394820368612686558779053158785398338504522654064896737729331583589330182256796115467760754187285555447483911344098104247493150499660752182135550671113632931622460230171881786312536276014808821809965549811741366447434587674708764879938833272188525011109544441969374129256844028200189785958068841512934675391441072308914912658492232394203871303985147633700975529842403420557460606255180006539908441740916559266508400718545884332482160484815851845664536589693625613841374355011240394492999957348643531987425319310277393622164291358353013843273853924883186720613640836180208893460175874990855780696605838019502372665468713735382646514616352774268125725413082442209602584395645586565696281856632372674826046488990814474020981011226830791494514190868565694404066347222483225259251100181135386806546743535879161909916927188958722330952006445437607655858543448023459755760122489466282232472416692870858819203623671355499047156750023027080803639720983266728274444770562572087784415355896411823783823891581405358541067560784963531544072236135780663339650788232813339842485711077613167099752924505939050767575497179004438423912631969051161942675664350845394290160096426142242426223166804847325617949956453791050128516051724392140097014051285972974935081780664822322133485814349396544093500774754304310820862739901047918872486056734484280669812315582738814996482892349087149363035247232485176436332848524359640949654035474631970831755307207618853074317701183771314465999579339705729164172604348514026796791555395672137961668427179305949780184195021033900884046598585388894461091282883368922827108084051193995603672731905697344866557461686303643475790557118146168870977966335142587387368021193880537956146912746249543975425334342839284293947275058944061026834100305400925152441765657074257648546561789506010391331696705940757184561593559701205389023152169975876839726861064721687411653721469386523263585607919358671335029681483258932418894796742613256425397780786472421300063009298069641921820621597490974801091908345446242038629445475306778789805140494956174059878299002234991604329008309953341660004288407713073430250292432959429964229070068886832777422793690069727950562943749256416548074059812931411844624400207690802367028522104480836804257777394767210740519390646373216280097760679615036151163704438809705916912104227789999144378923427353829745348630497447953628146952669976227244035208881327847150964805478416845440079061285138055098985821910158426982825638618731288557723230317550427198899820661240978923563370572515417960855781501311821323334987116262621891880235568834950355233161897849196123424695683992260547558829266685720113138816663559601281564411647642129926434514465174755013397715375840786819440371579517829432326418327205347758088878968461840286939579432988708596400635572884709312776695957806689705521021368955454753575423589544346076344449961805513051201646861670820323889614577503043724908069382640939947923507661853298317222244150549176910072768143164276713347748399493387446289803593466789495834815707738048496582812318573819550648336436669506822150982442352023023684189266029859482019056171730598189854797923373475764995135355393851232437255130590487296432921233748869145639384848816964262040101468806861708485965563940753062684235689280949784688510341097360784195794744762808587889463083904435083718877133166900885095332421038326706352831196075639631575528459049623427005279736586479883247718143518564829150878195933795688024531824532255282844179673468504957692717641639184864237576303102194906636024538525773195052912270312372649717096177182266586917876414384024528808937153639726472840845058994645648988093979545147228841619058166825125485173953385843543774985268934935760539781305937849331607594251061956402621052827640718462859451896964672371321459849060452214894975219693212826968005316388086641672475827733752055749874307187624836919875183456427002217559802183807530575785100079396564633303671292238503840300970174756102781491472759735508268368935466795357226605064096909820999173420547581850224466935978049016281669003228968622033938275021830558279780279435129714844974595450697656576224317690657266357264355675929216898262957820188081501961004626599493851677381228812161002049903384238818212544190869111250947412802399449873291816615000744789418721838115704226944612905625267303136995204678634519173652988617133168194911965858916751263188239492185876387365911793054488839419174222210058577853666827027595366756156808635623005889392025887399672485370235347307619799062218990967642629977592635032836599645147866268189919983431731512835735645745742283301387581025951418963539360057539741110305715071836168496664190773198889983587293633833994190087845257115589004490822719162205335330360034385055236273906384085969617508502532198874962922960846274427716247567046065794294868037271415210766046948673509957161249559763256773195102635889448569868203711441905651916983549602277951488131098268355890832856299710697414218012470448261089382096658208623026661007875157710679950858245086185537470562442512749768277699835807587792518068354017636599062663628694567211278109485763203382638381618446469122232218846572447857950305260335535889821222300370911227689938160000940804595800533275757586173819236423668334981383783267645307247514535335295700290858866636759052267786231827284539917881922279888551583401372815020880226804982420446626940980059126661191958730867992488565621535128630894244539150713131944111528451603773065812656276099617343293131178886374134934489185505236919487007149997978106007901275950486114641751895789566357700902503328013528226948408505061296927371128301440300973529713856781922335362444062311719312329650788520888940720184682092861970383210674182720187352498811814158782040792340220257744036555593620848349035104694357582252386954271744636752936031392352036105477399258471644309208169985587297193322011183352144937152729655422828573595617581740429534664540870358788221009953538716982472743037937716429226029081768917474637338438243701569134018380725306508887401975705607052666460568591637945592800675289219560006488590400926500293250404538859062868301192828479310436395314275453605278474938031275348986712236702620655632977004389963856807942653294196316353498478844962683026221869610993875648995651664041111726245971292899773498974985135378404370784833161765372908279654157538733452889749162875615782997683001024353471998680067190923653096218241537981980980616222425179049476639787287636773358252987406348707809563435233885666099800287261078551988739374233638277961798410825351233306352641784816542586581692439925685792771050273718392612755000232393535007495125884780001946809152378249103126413125492188327833900360030470805776405996237764905401318970893708766197681330312201853680790201721209414467770125535552425497475371664746119035659338832085548464103665356767910162985289207556885488111578669009682182081407465488149660024016816315871481898904404647395867335040921269298529398165812799455065872647658121333908058038822978431064514696481933770527710843419825301424158408181436704862498620908101606262814230494889531697414767503506477509474297859625180087309906599659764534402246153804636190150814668319023934626484645247204776389738144874051085983645188518709927819972265644326876650097991670881411200775502321754463540777013080793726590487832166634729782115450845155656402415074392192282391637839711901586066061084662524439404768111363098716144094920836134378191358449305209953932828894317917091410752565236753788476219991290943798110086529860929606855981609841733880734212905575938007270553810265096551371222861347429179775755267185479777965786702756039663407053402331162577984690596430923964726497018789465576817326454531093744672352822985448953042830029998045240003585440824282709069796186369860318969296886631154536849449620136463578374581369791516122228041377713233296617839113688112922344800459282121883799018678008695643370778216614059825233631501099601602884484634976885535668918117847623328271712192538992423557384115686406260550190378885142575416678356565455840715796520066323334259137427973544691007185852361591518083369004941209782635431090323410973726909030229782418530903350525284381535957601179536888499251907850091425382306003669644562100758323258736928972099453270831627396286006473134649845873142649149205991640088976255798057842898870047252814102545540226713031439806742912948332830090089763085761807664196526412013395618418254307525877000068080399698363064024467532073554274968334437967499177098437547806302591711176957278838615378772139095381887865339381686231629973555919425590246901954113921005303207903285534417967854907649355129329754955889185321989011730495148345687041079897732996328435093995906898684170791066482379947204801787126440145411242861990516349801670160079628642285297655906189122332277605276636055126978521174807342638094943005672405712116032713572315768044150726497516335517966305899284725015305986223504005466004964931357719958616199973258347007746096518425506421769901268844365094786250085804415100075895816138374371516782757702229018540627802280289482912517493127365883124314766511018158703175363733556247985097581260235714267779717798954993687604846649034210568838585056024085516976512861308954482213841636981189332199458460094586819655366376703856763461177069568506091215165586113131301037714373608149670824096867902092509733911762610242832738927218594839424025347770514070005948435203825150432200090689005649412774210265173815715092965452181876537971801955428020725792388541117754581119386855332570089730446420826374938280555382224507195492277998195851392248630313471076748697064426061482677091587611684332792884394301161875308835460924770566867213331708992434806239184569482730457510572116322265682554309588685435566374285604952503054186089197710199510330912138793020309703662590237064541965240910052094506512603034114731709003585136127698687251385687621736465863599455715190956138227249887625049474395328544506290035630117945518069024523644003083060387658046549632244178990698874871207002196765097990025182257091553885496466441749477388759822105891666397770327415945030734491881349049474411773413372114909909654725006283171520127706801555206350779414631449849698308708783636761607653504815557887880138414873212412121972492777486406909256250888535921052953293974239841943135188535156445184748675729922174010640632854010181405991010944624629663196640675813766840935593051576139411968243637204308306755474255340901259319810279659528168111996961362326889885899760259612391228377916890301972797290340499794960907300668867032513779478385122762478485824419843366957063330654172543925115824926441072815824911602834123195952821561829677445591070299174406587922797687225492999201490534156413039064860168508394389268828591046872165534877241740329665965504618005862632587990817217250905245159789042160651429768203090190509992660874239751547687839493430196487459502231132153793125641967014628902670674960809856588825675985030269566809928015513404347839308279582278308429454194029426365390832315537993186411143856433526264925190819728875411983527590922628928255569534909432688527924303611585159158019127176668159018298083381544288214008626939961377138753721660652499849822730166828471021554894563749497148005305831971831908637882153947976662569522342475034033578046727902654830553117263947077831862617008986381374706041804375754716652692369592691332162573586130874127135568681607848382303218709019764524772536380301488160612620046887739742728826464844027379501862687088617729214588047864060753135321862746260451829108011959712434921624059629527417375710253284553348356633291068179609143808088504309211620493476731239011291366014994262924949592181820436939333863149162528714839124054944627077415683020942381784944662210871500315074423951397631744743931136472601944645484871273007569124812758210850007095208900930642375206187272340134733384669726444102296308636639270521858976640455461203704366915541216851400938530091551744821069190119049362630715936445848210276837101450399967848190237104878652337081124147763508438390597812765470046969621613116293138437650647574093704026566280379742560224250914822582560588615089887318946773542454483504405680586077230522700689110363336200114463482295273255925577174710371289696062793509280398604271621621047075379558378991591603375745209395805543641571457053234275563919814984815608115892726677125842387068824208406793643722927014937241309023266941963801102826460263469640602609055840458068081584266391976256287601061577135088004547480106101680498525258656586407714132349652878239174963727194469168295131338544283092699993627533121993032111723085839010283349385165540420632798977782226926723275086412315080156189015851639041060040100786136382382268948636488371024547746952366674074155447046214066460929828018241820946515530831257927236279086472202694512927337841412098867801442244873790504857502658242838141901175231919405035198336216132562261002470322639340117189884859889450955428253225420401055676065666710241771763785676024413546863190921601421946041420935628900223649201789010188707791723995803076700131769716524106155874397626017374339776415530370198266725941978301921251522863611620209593782492469215684414804488185662921267443965942609067125972026853956922318980877866971266608007777112102537570670750719105570024447189234641914539799615244109604346625138446410443399373586304921192632032531789228658705007270207322428509201433234810086189391969273395753019735371436009451670791106946264135084906359092111094944718844074034835945807141270700701181639306111420188789966330038877826708276290113065935415501435626052291725418449064175592646783106382833377662819894967363395712085958614651470703217793417729154849742221667764599493147885264846690217146497756493271586951682732058173678642675351330372650157706289498740377700410746974378524326152179450850554282815110722904509792963364136532102680984971643754242544256402860924402763030001231467137390240887638229038392137934681012393571250735686793987096779231133002179626662250872056097287893287534070310681654120593795095694329062958236052498886131972511171666426597771434729664240687166468620540591063034820446961879977032123043893504351407520179118076228533266315299036077317313700339294723242757367652462045459874401290215052452339919674751277407716159357816824295014463910116916238353133321726098677298887209640210241230730555912702453518656974733318346238310948425443454684117101901984293937295514579775237613368614592465954854761686959742837174921702366725416905212568028994284268313180750159137814139779830967695908355773617894528087750069523978526556279248517252959249427229689325348600658411027954517330328335328327388741956068437183107249507975580885735646811505739945092367123651047981586282795263783558423627526877944721477180185552746546805025446864241159343540329251409084845965277143149044136674161578811688223640635534309768116787167683522634808288404406449803256112170095707157257840774979836726254720120144455675866700435495502489607200991312467458220095827881017421842409813363398714630010877431538189685740378317527673364561344179036390920177974031455290018946683855918495393924252479765660336626819496910366748471553773991601091278390191807757675580627500337449610737010524247166169907750062096435157238217773474399045711546028843727593232448260939329267895683590450469512890363046442466589957966864762374548424354470552650234045878821407652977160965191428295845217807544085567138226162575794119734561158587844255133646104594880892370770378285322610724176867327342802032404670568177334627562372228387722945145767432250718797958364059638063862048416996133788999469841522414341588866161701665204544899719941311001106587976069869053152484392618866110221136309917752001908496249979585050074349702041389621823294272298522880044093285565602507161483037185286460467356144135517789922320281019366972770513049222501725782619932603680250176653167618898510923842788122805227731393263414536151491052413792048577074055339971632039347431038123816907865958036930664819880089304127697235200307671367299279688645472543207079679532949874601237443347636797847712045605138980182061823852032468491600873684334514337928739271307637668449678260721204757022118911257744342151671244592969278198576460078378517958660945792798042182994048422895654851621837343694434442759458113222446301684529646693613100399200275061011950632936869237751509271653435800448368634317272545738711250140683403485519958851924255609709528297028047524957061616010383357257060383703984234638720735917281460573147633742982993243321326747475568955273248089949606531452430733543773002263579342072134414964879447159825223071557867191729319464412043313257385901444949978287895978550319459413119493200409701345372032591992487356440284685917308869684646502005058600853229531925915861525854972100238919067796609624843657280480997715173778264568013841477214636088255892328673890797365593617601996434964742578790500341265271231161474724132304529707127340638266001799614881098754158866672347804919880708810791391834848026586222795301248302823732153065841615330719998751889192743417921772867723439658727941211340592254875553035087829438954400718027812373728517118535140112483498121249865343818713213101630193638528472983898137518625956043278614529455704113086185389357725911056294146752046425942007851188325248309372947689176326226501106111162551706703355043843004515460400313938902095467654614749498405334586298163801221923118360320511144874523020487271834783499635067595436457484572460975214733930649842753024555657982090881050271153188993401648049247450952146409859665658519073168324448457560732811839307241603151408210026705625644074200038642882396827661167296783647420492153152008807945864684461794842920063239043241651935377928321461859767776477998367107803047659537486135673103803662270392346246798396284503037993956609845320384995121923608767339291735762846949399294597541949445832958352056223974718826400829166338150328066939060239133961900041381413325689074955927413297207574760723920437853439832883585353418864530933976098708258774144253740809875705240272695677933586102126381259678601513912370273764583142733211928118370789533675542166206551686131244420377625084056087678808053234962757026826596101896420992948232394776955840861086398482914763540543929356604076199298965588118286829276570883949172005729918873002684298324263452417046987925429592148366590370338124823065341194146436873317410899938372774172384874301049066845836620539279919515568553754562406638333885304214273928858431855526491104429351815450730230487125347696935642592597658444514349745122814545789835756895191651847342647782682818331247401487767785882130288128632860192186903744394187439811667274505270804564962538859632805095955505808302198587746954966324004113430148038897782400654486023047348082722629740877331901218534956991508122914962202736392892376855911255597362602005359012047085300558230981716142142058825727377807447173667578079380856162550727699581321336900309954796514928223476348593909627886528212596870341745268083185063462423701928992041231821790735767250859053433665629139939656826783347410510957044154633866377335862396276954979718049888536845071476004530145548692919578721584807239963901352783262409685871182908676118866965690443402577156705638873962925140118580958392275667357796322729034692136260470015390559108117979563300540892404379319750554219644101866399399016733953390051853318619068069520004272371977456253510688511413694788975547144765106603298111663427481552951858746218013453085964073702175780962659808765121558454079958292395926777212031056603423780459032715653420318911352405000330464022163920572477829968357473913896418211540369960126288236100364922857481214863071133729929683065262351876881882259759034706207178832172029585885439295772273804825610749032861782069500758585166530639677595639137117917933541779120156291394197895186887869266325636899357490093251769589050335291942347263904089804642595809086864702448217139295266906829029728222498434294990636510882702838253621742405612524705874335572825805330192113365852473175739764146247565097305436335687375850021339893703909327715655811471019003243627647620623570000238683850406764093292136258770491243103475397822761471116260982599978879504955657269820899621258712187593379064502169410011743488790450667368752462491876464557359040341104977539826086948354725257349219706108317984488164880289710291239021928583011841502103810960066597564993666081279275429254399076952382893501560807811510791324289113070716143871444954862509344026561138928871148383463007409787440428041979977463692366558901197716991521752325015185270862501644574540238950876490169972572705148192994478721129352030409957516098879023532089980671399925675357272083073861375830321761374524546512257568673179861594346762583907914304678803321572921943145130934677652254975379036278271757774439775686075907497147423445588547703525503897626202084241426156629405526465842793806818648276843475336360832756663192572715131741771821056628411404537429800298518253695607359752010448978078568962245060029614393986516672331864343307782570824082572064684693908707786744969129631145145070250433733162191457623397174743839765150752079063453166478286584445873408168625230026169413964650404871728539351519791660825287589780236245862298662072614941617192411134914847640362919946708469624176874788151113077382221478436841175836294433764440729567305998575110748758509513041300072031182851253515105413278847890544044565702706044912363060053799986577301300985687112882860811977338036303914995615842510753479620628277154449721710536038020338566278184884716378254647224857891889869747580915214515979932470856842756999847647947390073339857609864430118409097638991899861327656996517165452116888674699281543875683140908269377707007265914766037813537990187395281561151213437344482025192152889974192483935368234931781415683643436497929466209018336494821474746773160511208263686497002240722638869785295459491230391456644817997164373674067046399524791867287688599557244358590843162408081532976291792092382511376936316329658795688676508514346137896180081254762912043361737093605740235202173442907146874773294186521944621318101083617134827616680228889465759823646591283652693186887105808552369165613492420882441395267984250744019984924852766904696830703970567455396155837388388504989837857213028383161489768765425967566734254677254971462510325816421678698939835060420959040334505216617581386456193124469472587825024352812130651028948016996331808552549191983356935553415153928671874905462792996821911326033884352025817349438363581957162210640490666815451094008820286152327830377554642312037387976103669929482978181882835033606726920433917437521656620026564558450358989271965506991278331818638830813413085850199834732276621349032320474222687902406975881767288993791081668245141451046789685656151714312324873372323462557989439973912671987301679697125446379102501344034173566004454173933049922220476726051369352097238847866441764002766871555627639718814187472088111936012458709387046891314410787647143795082644557773920908246395812978215464726603574667090575553451819159695232612126136980774000655096135224616755103982273507097623160572780403115243614362345948178747820743705660803617558101378803417199694221496306778042869548743188915977646899103038641897922118637013848394726304125185393751600959585771559678684482311428175857334856957694867642072437266175085442476727055618906780165787354755139160470511990327654478797780341104874912988008821450887643886000142970171968412449632678242932023860405710019363620597009892078651554674741239202347139971094337704073520665877481392009535128499374748529688012846102638791711812289671743777225964093228719877251622357921909569938631352307942274469065714821297948320742634699113890218828877813523766386908136317541250395754613305821592322116167179149052797009063079786699447597084580110594602218666989070816898663859268579241254268231769615947043138838255192507823534482589600903344738416313480255022606276875396941942632910091408785864056299644919207296585539518836653340298548222028102322933225603416594689402350574162370575887818728168962936636942426905956113769760093455814356297380031908406693398778906502638464581907610282035793602338638922374954910974845034877334845289170937958542380897040478353645789207713204600949991646165459637384545924088286753823308462338334672619758662516684211208706416416732330254861390846265137089422779190105901659502279282592606975535795783579291986693965356384569805398792489928060964127415062436172229238517158258385062785778951714231949157015687453820391482578245296593271247681807057022347553473695142518297247935158352242693207504646432823097895277656933685391604332969411727374494996600213517251351942841795971678002248232174315161680414245950772394130933169821241195453681733378949731599544926411719566908482732971836846090356559735283059712737630345547113985584604173385826403739441423575284325554888620756517906314696379135363664616864115347648803400766554873960307442577635229030940843925517218855080014938018233170803042610745384740679025975647277034101876355712396213273172657229277485413884657863677636721403783081129252404619394101747748806135532201792519140391454884700359834516997544442235509099395377467575844069599409172860492513502080704436905375719868277335131279388277395300481547607061418896111913892803215464554740482530818954099617291952076597160573749252994303349738745884861874220716868369728994500259457255422019456703967704433311894701304023716595240967444483368263743954528249953966566684507483462159214284450993656225570676940467121423205314731175441254381436911519389574517953536782600109156752570269479726566536484701190509878343437533196088947814356694419400628151002893080787262971422903347081828305694461665063427895644447198731139729867222198768479268928989839515561313245793039147389725596331724179531811765975127700736919990772507628520217528369784138790355929178643881073498907525486075866386014361502530514819054197655508490337600466480090172060957969704509072103979272380114244884005203075241879738864329537139031026322130248364994311668357259827074314699611487427393340567195818554875965478776318847879490296343375565976390347828858477902718090793080051934223180457614830882755840696190094657005760834400579958398378336939971073674833177207963516001261251619496687976790306100253122836885763831516452115649096963492509939593953776551424159326782886718564859516477644622085019184374603845796361505494373324118844681347669523777439000126066952518014663322114934806670938605991328773665807496151125421639431697318254470254042662172515518139831215526443884468542586048314013906645446981425947916177633692684820729089873470484069092468029342308056872289537893137074204741842130863787383523893120860938149313124908740908366250485023773733553158964815804933021243256997778990642658933926920880091163366202360576969357278363628683816129688272881112146158988575734936862917002364362953849791094241459624877620933841283172877076265757051290192632671162964868263239931079863936953562629974722157686000155592929750324795610325998782008636606027560075024939968483035648422888159077384431559880647986506409408476472915896561701829314486121805582312865470820346352269406078586019533258965608338549511899711598018893768278759164060430358571336495978515463688671533545729535722160621024001850850832069824974093659989971120569585498271158937168643575713679914096121776841392516401694686202589632796531335117002037598073446766245525311512314947377917177302467604845300646087625277849351198302804810656276411558108409292423179596922115242938262355402489792150004840231440470339618108879683040416473592894825934017858128525458301336200451880093857443810450096736258249259244697073752488951493769241527687385794852856586117954742021007669979303485378888150670092899389795264700074601681661620018863418564756747774913968954969046593511052520314240455159057025951051085926982020627315340786650869717831911620046363993786064208711723806895012145030894979660632471146479532280693634677880536127727493679941813240429175955768205816497122195594282713891851255418867280275650549362564135751878268846649165239389931013693504593373322787450296047135323102940745237155440157285279149270017040543501977210597166847751696007504791220972725832274250951428758058418041162118089180798967626416321839892149691086409043392562741724985176128817848289050457628217264515526819472067011268809346852077371515199607589538889061359989250311297355574627908629149765229869317056137369797641562922071366218054993644657892289307757592208286296915689438416353674669490853810707567861214193238030340740501268666370678204282603871409542167698234424153092462615320157482235063330618563782556900985065527316973255550125209423510341121843764941554862590756379124549754342554951651007969373368881631781133967260821769761318351510702115800947464270233157663919546732556468854830329875051276682521691740018755134452015061417055038342639742650878152804585537068679849165763986367860767665764482851600028742060640331384440383349475265730446608713646958295836661536461161851969564644514654115510544107598229863382261403967054620307624318899472480150090017748793097738246910541671692451176164196950834107943800184860877258731803376151093200739673785540414205649246813145228348639592579887238123055436455949627693887976219590426690946797867295844662683766347494238457539742314257613015849723764758771775892528789307271490751233731248585604184593235145348694667705978993665242298855808543991387827201906989771024393643336042705322385409655809062943723149938219634282984965417833434720873968147536265223839025609145325800687223033296730131357789201348191159364769932846684572088911170459764015513179650489681167917774941748632626053936790019268694272581113615824810084463047206947802490295579631319214185220704644307799237388167712958167963589748227571655864794315583360959990210563678276541535374872360101721345557760445737506861625637230847791760564239195622899039412242476927238128043518027568968667736001794745658111082436739384943282212191244838600445023833129202382692222064171344790338226948801461930032476518894650144911939152204445585970784568638191957483528205601910867138248497376618673999890910655516774103858474563268905165757832518091991499509269743680954508124389087903385628709086929865486561857821154877069854135295142190640397706247395393820733138907725307452642033872865990341628150328919968131433859048962207448051874838408826580702629356191419710886544586279901508142494223611462400611212772983245612468933261701544602938191664836795965097933281484776744428077262222606343600037001752334151489568139664636994497065786320010199593645502610371738963636776589311174232587856003734711696579195269136795513224405190435470071783842628223821708247180187545128139158528518052009669064141744155885123952940245424537193690650594102966027223010874592540433648105746519164294835706259222770066328505096372108127477761153772580357972006398864547614019037352236453763661734870990828098483019949617387555495693825692873753597681914457598091078100408662728094896278635582589614351116135922234855610064268864513310728229670868309852168139900082125610409971324650804535891629247062657708617362683847692282858905281069924761723604263626847344079062932559883120177579498348382076123879183561023355015373006964513874410569022889144111198879339413409206641553289569848923826072956505516656669973862078308928198760309863705724934953252124653022598617444404147994712722302418870390341124171974272990050512432989542486024814179742140521286130320028603804304994702238227348018307949271123272041623702325500322076161391281888665115697802515094090365387276497710224169387578066382528239877061237316914999681516921325250967553175807113262920792670138121121282215118691690090921409934425547146340253873864034057980529726032289095391909468734007129260890596164245767431491922896245189297284735014058401755939346983719654316979060456967746341351623861746551349526549662067732459045510810481983057851893218188922111824971415610147408242942172036374931316570439853759370630498184509425585222020845626677673127203796025395394871161958617296403524372570834295720491850943600995003747901134406812720989618390647636163457535181822258007999849431393633927262049926748766527971174998146390817340855957796514081336774930345874389809101076633427116683689592141915529621101530012824644782181027721549062981023538010210982154838470932653720883055110726175862864680873453743453735462676304196143412849595643679043635317338096065195322796359309701678430962473456432540912724912067553385134861777422227010243307798640728789684223828724150653552120830051476068398985192892248182318233267253323860401829704754118097371629674210035025446620577333003026722060080488728924514039764771111210944569063886815573960017349775702734402787212027553716196800926112764635697999727211681248105302991659597817847511499025352189377333227487623342226613331955287258526716045267116564825686798583686309857242910234653629572959765509481055567978369624456258697862393512363941105141833454607807700108869251673414854297825759274349270405197524104550493773355508447929925072852210874024704184793019348048327381716735636019788401129080244226651864457560269199210298371694564735524256632160883929686529454258672512331342927811916593241898358480541384252757872586769244387220868808333379575005148507151850834909593222640060705377295835041173796520219384489235721694692965932022603574806070862675656924870854208693980544431864683380004462004376904482024613484779184221061081324592996290777710159332418328878774151849296173192948915268085785201353520227170986468447950471332095866556574554362779421647089601254845694603212616654110569225778981455476451761643329378528426745017971177221082883871238213866046045152916538296516551440489945494520495208070421608141110586515693718982259520556680506965827958679106292012099778029444328915175973461713195368481779266478235648218978027600480778845573607169559387226350422043616133390602646635161427453441595372941271483105835570831174274231073382000022687082742374504348039621325160989227218899892603645116323433658737531745133755848918736378801081231388491003228171738496194009733259638743020583868326194959172319835060454999039094590169888403562519229359693173877400111104153804975869511733916379133803331163842365647615707442129191796580384303471844919093739248931610268474193936386818092227650164056171837726634955784933359558754404498387503405599769202039010820486013560967089002398588731081151286593366926190550486239635846959318775887215063323463876576881321785853021490989517509291102794035910173017722471769393612076337186548303370484655373286899710031853875074044539585749991794079401835168561618369671308896702789507474788725414151817748766301467652364304484089274910488139482450682724755163274903799082867966318134636500381261130482953935646968638751856157800815458354326912912561063106295549544322264219228014803961499114779836186974989331185518388163456291104738308201975092431220544983487081401083076692186428175662743289326420336248059418552603725460312364153431832067418466024189972748320892211687217416084672649911392568165223564615038084757880769580723656497310149058621804280134476716035986469667924161172268348102096091253383438643032041639107144628427046071166478900829015199632428273818964004254978845721581632288736601399556801779189413421586570237717469159577976384879797701081503075826877872615747571884019541697040244190129457997984368247601416897552515174464916002335076836730624424022651784698494636907504553027634931511420613899600298846009547988588677534512348078908040838656499505542925402318660592240347615904595671572766757615284869024417412616953514225503938619066016569327318315267476946522789164271201689671320548392860620230378447236394550766798395672500250504205592565559493653935400812752730805120454800882976988750628849543604240879403384662100196677232739488275509770482531187623120380247856197437892913170567275586566210654330336955237404575337042454359691007769829088279972998824608767528798415672567228147833842854251915200144378785139913424820799355761032171283919584549429471136608421919186219831658433756495686787480238084745232988747125245988910839700864382743325150613260102638002601458700066433167969012349385763370501655894125470072881768596306391646181487210276436401135302699877991213628780241350038106827877965309049390468554762874429896072111689722464182974449180295346390762359979147797194631680035301149996351913363469833386580031576036148720977719424453421486791461867525843500313717732772950615665021698965819335015808550196187717634746040311611911677833874832239324684306210366782949459563125898371714038852068244743693769262793940406605662112670231301223785873194101957971049371741578619279623724465253311893434864528365106440563504642464269799861992066752620334146626666116602372216342491308125000925266775476393299102500454337352667355017418143731239141824538602683473794861191004640024529734680648347025458647184392220933777152073299925012687193995348739371606814659100843363612413437920807408559338556831145297314970633229576030875476136588864538459936261406586695948940764717564266790717123002574095224721511361430391078277254134712558949595950856263283387434860190569370385071609420455679386948349592699135589204553610925227773625857044186206270314512994647217638300523332007737474448544380217165385331618350439104699496118001163605578396998790798455274997294794165568119273845977251874217182396678436127781263551453466636188220038433951340911494022663331681531270264744523867799002682346417443882522683228421213298743772105391849513741336315470060438330951014820966961816114100287596562499504665782054963483863135405266142316944619821122221698133261352903855542163959034544853725321126625301695213225744774326912544300417806580564004982727375883434982154271367164090902270006418079716146743003171947903489920914727364229551574550367778492967254952482039749326977361202956243017134053728368001240423536239104802697296106059607657790010992286820248661344809650934932063357146502825419380068327620315110439236464212737842806856978640167637818383202245677219904204001836752290840335814571325257669205269685376776064457943219725019068404907645668059047398867188266428826348171832513874888629223250772928967544420966408367960131995621439792034228528814217101684391345369028686452068714201098293418342776691482730267756660472311122930959344153862071083402810242518962130903294715998545851153164100374867818691256636260190275306086897270243168251962420426437608358975951224973171936035468492369368553586912258835990319567767513429574011275044799409726584383178638506940501216892120905222866490625207328796271288759237829859996947543858894032038850148318238550462909966889548082190479370947755594576962113725708526457986128463777706780125338527037082093127599037999990346499829473807483597358098772372454126470944235456741664975287485934538497810357531257047854477992213765956531150448092825803422823237871378821049751955660620510443326449278779486040932634829924152992504987248007586802835678945043482437942732973708259559276597477895877651375524072031272725481781945979496969655894648138549337876157603566939583517766620191841673650972108564730179292569286051745428285892745896939470795467245827790953010854234231565006957757949151591058484880665878721251101357191291436129279517172626309036255579171307026337925120696469609425639168811872525778529916010840727666803537913887700274781468365401790327199763395111398815373220393952463333235212880448633822670305340920083051277986484851098504057586741000433744513915780392443458670360255833584406558351246323725819978263343263431918083810360393907582259945707132031252964016128972427397078832878894033213057971204264193862211028778474357278809683412629307626929899632913287122364638700915650777884892652570981371135548818365216729008739966421620997480510341000930034830738962678431112102219819002973767821505390167383168614084801822362249792058805366500750939230347215391687088665057085900599173220902255156967542491486823864704711088858236667507904169240148981400846338726503931511960949670146536406844785490227060796839135761243055086348006449557141078430527653350518021352638918994805279904295439102651687849434037160416714865580965375181842702870947514059328841887046833721487848794184327606004113148291289762529410642556363007372429110567908290772188379476473772591515218781935648924443566586596535307649889659414749427241062723069205577378482222029089758928725448715676270808498399239869902751671211195031648352348703766626068787046960056966892160135808516881054631631929511819459828899151060816124175204063995373390116304051480283480734589254266334826816644756765006154223120441953263070269557113029108084504620364580629443031026851447484514818284666276483699061750124940992040942610513215016418035589211196625081004662124424911399550643180116831104415757801791184103376530786223557796806295416494329153316441738281794909005073069635157221554163583289511435028264848794775618899566137645382053136641407020138446375481901662538083463966511364267116392668118667310088639405947195443224819142383739499118369355087432971923175866543610487013711487959923967386171501822861015831322255961681216120551114421871783877876047408651692516435606831794318245064259824767086707746393741284614603517232264069872190344085259755159038642360724692158513760206247144455505790812189285762394871468116925514642531743759008361369459774485158432361521396149598896711226190237306061463113484712031012744942563318750119316701251332387650907888863452383949907529798999394375698945329670728066425292988686161812751173538980850318084727438391125836494444718118548425139276561796275912196473256057781163769005811594023941938717699902372701104321395021834880531204256777725947556610414710793229403271207320827097352644539680467347597372928345842254977906367926507261850682456358108463684658137294894649588146855375604758511763112633898615725027561956291481617466403449044249247773031104779252084695494692157162468730433179626542265176800217838049461716721847680335799919016699094591842435852281671755204738772684998914630440240183135768244626344045672931429253154426660670742834670080583098918923163714456901440022960496879389585060006983505613175994164802442521297568684226280954631582896222720605052145565920629994412611912377024872578557107002665730488948187538168742314854353587587811838951357118469609203409656293324519073037813764584532992536435025474215165892525280855768287339713268908143302793061668259870718142080251966068255577420006965809446196642198778778249199656925777243004178375848074551043504459581185695290467898608345568656932335974004856032749789841299847409526055092197119604376962333122497716278185498590923200008518026106183035321701489723165549687751925430467516447437049040324826358211948737803401658835420949276287098628609360501506964353188261241195055571621354186683484036878433361908758711809019285096913183305794052131513227495923288267290922596780954897188175032610329404627342840791705182143222938816547423363751294008577983641785974139254282514375622055706396186208389162711298154249937203900681835399444323974939140810309812651320290875463029482683645469473269357751597931127329251558001983244527441947201663800490937905462413592857530912889830340724323849930749387982257395267360568753327700045907814867679159528168427831411917556797763382373842469752825148339375069691837744948141646461453107711994656464835910548728255490967786307976545365986839192129730115358585139127703362759284126303283209863277721469128796388813012928945591760230339379363301413595553557340792245741470458004795099676560311872548341525547214881456588966162585574165805710630842636696628016908338700350057095615191227524079175765618655885549033394440171108137131454744194251600829812548106410179698578484432250533336658064676155719069078544579595753831287126927290225800517635861532232994165716752557508844941613850615942069193094429502250990376988206623225771361814226613753509625398817997180163698997220120815234053171224348914498086742456886636750588272782846480372885708348493882014537618979324489904713005462750319339726240947394003369943526691951414270234792983801921576519246854800499716209460128246920216877057571429115060363226642864290173647063506781021474456302416054750682188328616634991960600422185197673483843450546614720700305358363993653816337768227059435878363886296317663801898822141125535742714777958109008874873024627505337396084583936026703199013482781139266950758930134171374522207189911855727823613404316155785572837003325068728204612964121055788018750053211339884150151574500070513856813346576015907873969055147945678406324716904267247879941875591687986088516794870857567877348956348937646164397201205960495632906817408867239928488961792675344393408747598036580317760331032044857421383085881668759037623271606062675406360085267556714700440247116950000539604993604742706590488612324799962859308227949560123012711377319585686676862812022385734082984796037457026780554273219313632677830096409398786820020587551538254468171226412263224522890664451293484201768263405909058454926083978488256128409909142133646132205331241799301591310779609439001298468089046223743873410070343327540305424924563937409307947075657499151561015314959505492070750373737736620299911727395760972273191805596472951827778068070385082086065760462198879818902443542463448629332896634853677834773401014122278114912151749266299660533740659762374824658108642807032887673232641964041862649000772438075670464332635386261182973332238638360431810032356544097127938051166544926257904525748768313412185256980565760000967286461092754208892885299335027245486332557666291331137929957557353393683615828194960645941519089974222525739678781006541760404265989519506105258462520011048192814467262181244410645420205925514989988513399681059744545859825762165408388747165953963329579105264716237497047050432346031069466924356244270738142995226977883851078564452076653651643046306416541452160025578936032946292808435089830446600580548787366395910250231676286605781438485835413794969095884577996379998117910200820175224158516351636694895716473295759607355680482334481462023607216018910106544101495334401526690703879121236020385527314395310883787782448756810487761531215704637434697895319392315451485020443320250396298450950478174387587373347502272351190601300353386620006562848698490042086931764393930797355341720757818584673896351477992281456943545223655857005837767704899723386208700970437391469952301610182388979808317418218263514556955845460502887380641323398291640559037678601438534387063456865876826664742168200347132654681181898768008011658772929479790258060777771668760335034983632551546492752116854509896489745060133569533131250215755583544233450431128387162975779672202768623950214597823588645595736713096728707581165941318845114020511271577329465916419322843862411196132305786484220411647363578329024768489364368331271301821900939839591077995131161541534264393892141293859672726386183753176465119493008978208477858341651369826849217354616423164188283616208355898510030900534136361774151170272210200646822258235082888575299289368108921823120834658970383550408827892531230118443500444965599048519480088105889546801337694099621930027087875118219905864978239314192328948943471022799773352074807495222738510906217707703684349742444116880223087952279191415443090638530585772624858296881304314741971988685071812037179144850411282749370474263661509906905773841408734368171205473035679191966616601776630605590284572652864456337047155265393410413641829297363035002915849266768751186411794722575391909295459526161725762142813279681348591814436366725005855818105225262867088044330142026927902694015547000654003102077003457697168936800502147084917689702119316390892607012203019891721698684902353884095899266288762823950025889176103535388813635507904054613584014967407355743944295172437719087128954951700998057201355867518899609697984426867789522125545541600443859518367800305077902615402831867655095573565073587538969032610946055378108776769353049277960170773734370059838675745801201929826768695351271451772540292399273351165207262084994134566038937350276430302029862496696123309850795743036538121131008021660873944541244979022712021509108626727049511852792601096645830906189887005404894516066397409202078494452500358353610196771635735927461467674058223621237253728245152250886683823163972845393665307502670132286622583183947817272824316275841946399324996104684538737586822702365349162225310986693966396404688668862254567188038579371809878469426180752847795818529022804186642635858049676572773793827445992431998302610751016248335290819044812080772833745482160546051840548742168759155620883726587264101237498464439952906761435328358406216191638225624552678043340150281904536333533405807114942393398119545900289868538489517971704680799778633723787653939617444749748679659147718955407708251830001751897723003109228094163924193140272612376159393619119480921228289625730093036914225532284082486747164887464079710522086596656969677946858937369920288847747791055450981012506739168794000902068239415595590615075035906248508458885733575868641619928910009324910592227779273356848834577228448365148395144550543419044655400133639651801391766964625366567082010360322296850874175905629893638346231895652772794714937810704345840168401440093938053047075699903216997392197390237140615241942771028731276936177562352561475005576008704957070907453384167053129968043403834281747816753180434912921956577327265635410433216692436390684958115918702774402848493127533107947957648610952381420121806410347470653899486100921962443044007106635806461024339718564269364225716721856311550032034771899770434209825960874164237935845762190849336173594142088926687783027804696491784188236247724533325427914700314651555315480967151067753739947969819220064454295048257644468432411555210652769074464943872895839527611510453902314953132752756571399508739720230588991491839581590135309549836113838682796089634598161741147088835766048585912421193057926774815650843411039536390601927338037741228775803167209057854390472074191692587351944680486522207967522984760034970440179705643801746259134076856550373850585481825235364910103707056483035897471784528382908906795407670925611072166460325334463631470143979874390815907486468762875375262428617504743873979372949573734808655364024152146993645811775033520602496019810909757232198506396652524851877781006813112044122810911141128745833346390302478415755272799110039596083368765628091200300228912408970459561534582190154369625304285878766950907154466092412968177040576259584959767765448828280759782015275123966132184278125555578862565305376369997447888490727565233306053863838528819648424415898876806159182656078432125373662481832479889792285361399484730936214186503629847982728196381444841418534430583740540328440383596184972545001292251730423808221554482410383237688248202958716331645204018090207493538121984328612559594501694910651856529096991502089990884493473917979186903271292994642625949314248233107027362121214217200930739930593908746430637059681257499431335949887488418979287490149205165408866875560703260084490545635514128917359390096512490727388321074440570214264775372175573481522243206031507899360680252808361543719411930410720371462879447808588052659224205156383542298416542008494347580158673568678402417716265012959024896251767476862589942160033272695355907940783799321776721869850798456509257236912997563782308281652030125768048971431254139522501615964139070124372145500640650484375201828378875409726758028288854147833042143061619732462206129473352749322427372338692048484493452637569932387407802181768186357284240024701498424374784768221149722902807379480673056312664399361647685363489829154773424707022182563735039994084432515902345997057490279698062171953655220511918591207279960596320388900035358417569312919760735844632680209741462309183173812797679879265150761210916542957683885512981373165007147794655455256930554242808821904070225947797913960001195239171400216144056330894502727695322588629525629014665821952769089570055987394657165089349747998951825279065665335484354560436284205261920950596085140127295545576053654693355212433038223265287705557959345836728466219517102975629835090559566261196119154269935760119898043132521977259870186794147450142127330906703929037010905769102296592360289893280059299796973251004968662093366932858895685422428387610081651110253855879893079836959121187825325242541597587148472941776444928528612720993549719303335565921966047495277655936710161659238425751400411641475327177649469847340137692425826300017248041920743279025541277836494324601618187396474351517782925573838477006208011015979237176556907460108482833134373002455925506392277550220306897272062478105084831802152602420100578747274681415765327913933464871019897845088445804287155012078207565663688075789390803306487876629640883105070713712500093811381301345411609255727949470968252822558979894783600090251500121019902633085807323081356991079750137637076502675552948835571583179728163006292154712099917676453319164169380952016479522192421195761556303497174502139807532970787451170608588278031535214260973370620365329569282560024791757445053703642421799965633610026329912226022916268699237225203661444436156130604012453649609072101963998480805210150935260640064484520691449688589873906475994159325440972307058593282982295230256417482526515051400631404900313853666504127559179579527819721901139108581782287317644481102592145985085964534141892386883627374945739124660190454965481198513211488154861204044017021232546373074227953226832052649693519983695892527815431366658981183363890081404238995322367682411136469897238998553914326636815802053246695422022159855810426822991687563570048183896636886172673645332260271161552680652744197343936366086765320972806404682735800636156742836865450680461419938078799025788735092348180814182143579050167478036733677314469374797741790867633897620185411831669108150538121281140452163958101361530180995481281922074906365868343885460260027904877433266128891908093857907832791629169332544724148146685492890186052390701224850728263457965037259476148134693184341596429894706687848776895903495353263078902943232982113773638968676673379482341961814188893949647778640887918603193517860004998732406939930553757225735088736045366257003019887217834654392148721705436130385176406098827600456533684206742468786280764459923617059371309166609395687556612253755152126370005669182597122572536205869431276755802160979760593060420813658341868205071712793456177227156792695527067635215910944124639884046388612778450132753237517862643112326868097780481474318169869042326333452674078955559238959461409799629105126975383512231914492475133382169410214031188369349757647040780102370957253188805673393278207535321947007792559704204220451860822754638270927532348502460567607948697899688346689051038428188680632747712436172560364291532503035418703412361970904335594289741825410987208551459613787352460299465311889852127100985478646324461808162841598330148156037263938378523440525636470786827959000811378615285938624706637004374187782481583841196369919850139953609615239867677125964727956672024362543807176631366705340644763786814481037248304834090026516574249123451995593163035622246645712769155734620940041993399818330318579360684022588319892180508202098642774817169710881214783831782481224778023479006973878673902320501878612911039654143293796968594827011197430780005484181859877598546840311551877357792757721063912645597664621316034801076321239860597189635541512695899940458684992885191883332771345573318906412250270050648610553900701381527833322160316017564788859484134987696718350590038077003449076516695589880180878144896168133661081663886200900972961955929828666788495547198815481958788162113451275500596263196638881099878045315523970314148216305657034582163296377430378913317875756788822735708126156506723957103163052317283020625981969518063753296403739862280517655764063844453593768296661396138556302500310868704885145712204718168877845210788015207406918078376603690103404855751783718096425183720566184893796196733514248197069374884991963294606346033234910922123210144624953906084886375446683299406775969750887366944863425976212268156203471916331784762394793865776439591379602022271831024611428900853720304878349735889635121433617261344084809595817431076729448494903879615875924631832480732464561008543210611229213189831107851684322905093322187362434823052171114059141631054576833997638110292523984717568208680166684725282960261895939811762181935395341873536148685789408655901551522094703961781308091557930758874761595142205656011943965437847082666003750944029026804637402442862833962475796748603311122517651888541901545979165358945872003902899116552542107905350272279412945171950955808823015151361081322647736363357559444490562117043162707875053644688701344463060055579218214040432890866162515189520665524353625904572746028743133806595902997875529422588851387478199971427952564056311773453310039535545145010102542351616243873009399087322732983868446964425793337513172472499556723516155463165207266659425622341710811805577615777868828092262286481778724767630151537057408030019413994464356869280160665187099928884163008921578845260924483737128481718242763215256080197951194914977407666680740772222586095913877782222104748478760485236394809479154482403703260396625399550485811103086625509365460551814552436302927377528125748211718719589199010518444354193237958184954570662695621274084956319127282842530020213572557817457588521771019800829700943626127251981019463755325732001832562024550343777506109840373066427052143828750072196060116650938229349612540836023793817023257948732412524875516983932000955994788727887287277779850496849743664713400270303514427957478035689873981222307086357777315928276611029677532425144619615827236585911757480747094613169956701969554921781970995149448712030306204848636774325069523712696657142101866192616558851099068287440567820698993410570591545854943155623465376934725657731229563513831475062112201740663158822172222897781526545889179109643849266026566258301477804579860889919858026132004387584494908948545327648325450308000193107898438559680183558756151326008175994198095318532181148797000539790790753626597732397066293176320335316574903026562646808827522011183967126870062181028683868474389479089873109767081209385719279311746136571989134793503108920520196206468032966736806440403546857948455390557588948168680180723943763110583087213245457564113800229457319152954359223238904049396377644652155103340040381133639765956251518960480281034504285106573280880786308114589533755074786851574240514121069840173221007094526224660542835800855460532452305229687312359265558718818789335643906081355179769051414130781673024454319050373882070378375564654848543567798837799144275596126096213799375839739713070823456503705465494750712410173602492009534068584881999820100942349547470452169833137116367805241958058327264353137211191026869339175124336789333781321309272927684576822788019715579627324611700873394352670075112268855976644245439380340230933847792967717131569239208725709548746667322924298256509543252668665484101198501251318677001960582447005726260485177802329283857305577249880783155838094993374701681760442310908290503218048004909925156107345647815070440401369798476765858366247961811373498344363101023719740067837758414706847202713445740262576593339542811287334712689561094904046335620726262507857759681297679488141417665868262272786409260744435644980765865030574681881904671165580071156379564261884098879694255883771327297662934003838069686625065969127752867671340513803940853290561704238712170574956481173008490909351734452557038529967967343758962206412648460355283829535641458913896092328677060609145107717237802890897624802048466356232044723848370419995180179185695419332794361515223699808169533752574983734617056063190457456464232769476755016884402957259243173445711604777759924507475332837631795853800798805477035915580643628988862271450667998915821047185686526133741450917938801655935357073953921084415996247041446185342726209916124966603025302740767361051893845215906034211329302818959465210982045459834358051502236764378858537902206684519251042586513464342944047086001351406759338365991540771783269737863783695195450677951684689844816928621362388891317534759874104145682201779935684257693102658580665948691137508447003935183539638924343443149417282826127563338974547744356190685309171862366977864148684682720012826246323482462553151939935000655592368191449595572976586171134248033908937392549032724583889417444555062747315676123960952685663406784436249098442290439249489162114536482225599221339620968586212199107869431707690148102989749936013486318814466612110151674969482538321718758317950284519487264399399985265586931666123112878819862210512343868273139475290621995732841113610924646132318782186883988683794173763358886524843364695023795167075560930029446673274973078058168681855518446047773274568286301061916694494465658062100270809878551416143091267576205562589937884588143819445471858316533674193995796640402245488054035476630635113188976795574530781207331836190495372074795241169011977339377645461617807477183595125051964141119042056994285527252083146509497878306313450528441630944363646704923372463434868107157892099682083374742398513733555196332892087246029179280689684673346500768665689287284625699010287110569247915102404603601589856323749114758737895449276661139699337958821104766877880962371463974207356164482013951956924515949646832610448896496157237983716246815812855334334199499001155635244885517140581532786031168560777383118011382054044033087672548886328030036549578219267643669648982579404159920965785583388780844660939327074450916994648952733117102897310451735916226527170499896385457955955484723060947788719319581631876222032253641787717282283618141812810225472375555340631170499975775677567980971841222977964740173989990353267305342222945626314655441888287602330378762327110167665809722871034322161909476517329279208458949275141349655456442707772320631017105392213784872786843016766706425881644276839064242400275182131902965077131829731074746835464595089335856116976299557493319851303204541847483913323753373467543787249435003692289339752385806076254074716571027602613973349933057690049119589353051371969649193201967795466016937853611486598802379226081710169554948860034391984948156334793815018255124754552736947267661416720525103577093403197748465136788774423135278287477363057004996943168267571112971618034072326325950617328758235864192162809962898778506954479995744220418384159815025477411244401360007024074939232481594473254248977440001577212613100134199896860443580562194297052592576031046179587992690488080142867956637421286322473022958952947815333913860391998078134690650898459539258462587799868014052149190002638125812232806356240538462909798065921022956108068577367522460041779490441807040615894102343165828140559711557274647009381798236260141609987177363200588972662211835142089877052196183502942472875980569644987601557614583079597298938622930126982520120701103130057247026655099708342244537211208782799115748139387705923915774545865764872914759454313271790812630400395459104832816217355864780890805506213654374079855986902312032076688081159703174401108813933750617431774049753302064199063787722039252563387909459424783052896380315545474246835971280649850005867963376489467420179963515829359970196477098605820278890896487805730311541908438593747218450527504302752181145039570701577722651539664625501155843549081300896061961882709809302513418260214124664750213116105259635391967863324182786268659983330824438781580233453964271412729538374326810305701842309303016220823165235763955112890932912851990014194424161185587513188309527249153723528293601081328457368311710961376353657790775148553804493573182107433731190466511989209117230414906973465949554288766090340646588541658812429783548196890831980002028549666262463802543947209143209338459707761633280456937185485988047182564520898550967677897076120803974082573833470533397579756884408508683695060088256443717778816784450242582006427999950401895756674473896958395912659997416555780162196335397205033090131075668064892143990143193321763663278798744805558957602992078113725582638227901742082035219642944735210299900161241628941319988248874299430068577035749735798339322326189875198935502915996450900905103322473861371417968506983401912127866332118832866430838186062507329273287957579040242562923742334264143585766586752454838654442955290259031340362997263869652573042451612168514490977973345815181052546368684334536388312450508890159185157595225064344853468790289058059937267233157770593002655207697237163953674400922292227192206713685025393252932690342754785484585081880423576982073612453172655725064882290890767682984829290183012777708813587414476804516092526356247142220750885285668295825101929874302019164814996306597809469086112589779754771271532780223378334341843235737770225908166648429235452405477982134296139239474641366267565258578032212833364491222527638280612056868589555042670591111711547092837447723733006337030932274256518709602662465849388168718793392602799742360291107981904308489946247658534348468667764908222216518178918301721730930282664613108559439792538631419303211800684167503900996385157072942634236946260348117512905305046045348634676093175347545129090034257596546029324482119484386367086114656901505083117075291983143020692828436064944365937212521961294207343324579590170113573274199951049888575545953766757504195581699927022407745571055653862173116617034799824696084848900109403358488128905652421083635134474273643556616215515233574209688901960347180296465279690880531933775725469332994944269879437520330242423171955581556630611110261645871879268459199203266047041786667387339518877297182607739062101118312331348077959919690543356048750977578323814808982667291109046267275131465355452823682792516402796035289928120100958769539135834172870099830318582660447322404156272276159629941030549394230150448602462966842927059898020232214863868819351125929840007409820674491934176303226753203160671261094736465107886892999059506503618729695822005847896899611032920042945348246391821372894565473805991400202833144276913481638663692429730173266004875677972264219403101439376771135888778028033744656026182934576227673700678397831561614735367428202273780882977128813173419681283003760592489325771640919654133579178953670662492115212875148969009191335619813196157007629820905051158339811048176202231777043429160811325845151835937813265834398870533916402138947376914001863731969604611081930016693100977078211966676506286363008018244946194692811993624511906040965506258505496594799564603440251633658093549366364568830513361816161232118321851950215217927687065324195747284372782093754645099789605931431775370360806384974125075921768390339445932876626649673744317351241851721557699487846640191812417210994135618652426127948961563708868209570163296324623733577387002440121389902492342281211695109330751990323346224233483053376809274105758985922527058216701900844627244238883494213251382119537162645011677454359460439887846440570354799647011623458119294141022599973420612315099816186966173768142879640662132931901610363362886924759319954488590579243921170516159955143006432300561209657152283924001276323940931382969109256151769067582081534950939882087840450737356188201119779359330207802104406731119289677246561878382335666874129214980095527466559634300390939965058037646496032276673237385860349642122142876682102314476417573412094920184763897098689785392619997439350433381189663853686915420023606579544115170091682484620684029753782343692107119627840058628202317028446688880375227184426575765374693883466667849780956564137178570955581503090622312744966034540534399358963898108233494330273963636782132897097968856642777692444003841518797783916853709453520828082451405507405816101421260711057415888678204911416355292450740114205932194665228578719810711013027517319363046233656716539684934876456401781633308052032358177727661639360619601756794068033824424120551420425965658213072266957674011921054616052926490295518780774886708019693258967672769124853931788872415242899193122338760850952565676412224827004925474224666922436572844210181096915587582130057854777380461703580239165729628841756673278547935065543521777027899298867470483786004557992883300682829753184224899540743135602899087766945418105489088373811370627279578415857032391448961508649193133193412604214732649319904327599468432306117326200259144262004709645212740015989691925638433083171509503258878162421915795423272386973225663374606585926053465473232262990385293628764162695019725011512087214808356948332491220482601341314024618257085850966197397523898700195141591733491358320018935722965875408144490592696798979524816848891050578973859155784905866357764600837251881721637855583534011744299773010395146019097789521302745282381834427362060764860261678097060726911635270753592395139574204975656892476915043735549332134100430360311106628119228064751157281245543617619896184116533520052616137702074745550252693452587386209228908164584858121672368409305854699725549546368990581705768157447372337648802439776874168559106014763468948684377576378502063149536342997566864735810148989490294133728489476014326244807151423397482583214711711965781734838625804194347635712105232402513213252565656954031989428774140863997869950652523020985034661921776833136034335414061664026507731549983441012286275976070273489896014002706080199197710345471683871774497692797625530201604384396362959720111470763362688129338617456099375147222371188725064483066847574519574626362042145873038228446438362996442068098320372663241690535276070955028052446331108019991550380334274984475776355395372251290452107164188265653803343215486758863148356744107219492289028702556194830283213714655322981400760199602657429628747973251200825461146110208201905152817500793873422240709050708006669534730351998757474238118492029814806713785796102900881761412111384010487217643674825608396994408710396765511980336364542017282128613898571636928093291359124063748725639111458350246635581376314164540021072991168129266088580264496633473114130646159606661468941348418745000656672106711644880251535841876416981056327372495591513959628124128235328289867794935154966230310312813181574340780566684031047048139590860552586138967134096108447194242438266987481072348009904809348931989423156383648580153056506804948720213482406455225802399211030024004854712846532137102228871141713395033277304631957352686264261514615709054889337202582881240780989066317369499566856845607181536016210329688155576845869254769290709733552718283937396856695244996082714997441962960464157435784291874698313304749517172112538064540089016344777079061744932933732229472000476786424416120519135173191306933092071048250253358879214530319773003182152013144543034806431008394176279375072606434896513324197864258041723157273020305476682923363941965280054270566157194166889047192781520029502330639092678546416646607727413122102661142514101190141893654276388935423598720458806518719934093039097517809347555837698157518399042705035547928641688608127221347024010386227621920415111500888831639753019980522816446572158778141676050600333724616868716094442507660626760128740396564857639462858635584415863266608134932300001458107246301718005452266403552558908205112964642609014722642303564704922134534592622905171798674155425483626084974215500763441461636538571450564853117712853297915812552347856532994991877231722877307483711461162321670376295136818075032982318201335082462436545591624092879808697072224674451948880738852417291044966074939961337813583128113450642732542129258400925176311463283553852734515232250355397085304599152184683071155765280383658328462049291348444343190831967368734531595624839036346061943673487261742884596619787755950343160787356945836515435549457660947001408553056032090204027986452005775212034566243696112132228360134788689414099146177033544134032303500357865382106642718599877742140312898255915631426579958356057780159615117915254871675743781012510765462217784862104414215180179120092781838381857950046769710174639546167705741223038213715148892367250483618947105136123762697597740834574140078059009363876166560949795246655045752594352201628086715254393357534028888148795891361384112360491818229631387645046618000101047096555147189248625251313379668973521857103596686074772530235439608306691001883624523310002298076828547333857882742425577349194656215112205845033709895474022474488271119559520933783701939702904053241068118819748018668676269251234530628496378769401413914252493970610539939067390822033513539060195844965419322351729889217961091847556734023765034828276879204230607618201800661762130617900857224596940404317629180016851441299515702130163045957808467276930813373610432758452788875680441340540944602015494276816285164568688109209687380436963104171291484501060238876558333250869033659330973479566551386559107138689691205434116435630950596797646903082423376077312321982029956596341944367948881049152757314141210323446702594022857479700597057457010256104665558450822102213229275767614090586358760679039999428012192107249529876857425681215330467228214769808314892973835510427426298701105016570691889380612255689179829716701210702630124157505023084107182573811203212923700144567683760811527261597042117441156022669507109973754343463652192704214774993917490095751854814097476928976060918011518765678509197007930120552949981593394794328169259984375385240039269031756466866496162177174071228575356381193206740254469776865993069847548422345642591165233021880628936626987656802782248352037649981329035890047391876257198303242785382895069777240400648683102380906954842629801343355208035985665197170626134790595625897191217652651833022316012402200976656440966931658784728532421728301948039003391048914206051626360141863300625086525401916335936475054828519366041076542838215360720872883317864094054732218182304009412314525704169243115716376645848860297729080273298454925487540283865140131293511341645412228718786396641935898883560695832088952504740225417509809825019091128474495600118576371323123527792004530906452678969001803379914695276396402221803245078693177495502970845852538045766457315786533159590105775744616790786776120854436903478148215285126170027226902442972152092361076423477622928719781316196034599750061813149035721766497655795704574803603546411974056773293668045666584090922536319624231465516466469210658644971252096510432318753533429388317314604395078352979541476400786477724142220654858320924921186961169767538062221723130842901026114380370530254874161855177634250627539526136944611731976937004628135160102737953724211291233874445604833794837779288474061160332659426277099451359946977554845773094773653894766060027920102680517489957930252162644692890701696876533984855526083182888821006150344115170066764220105621845682153139822126830685250411121715144195878465635118472214424051481790046054874415545238137812626796042688045792334860725245113215214393171886180831560369548741329637577649674737113887395738750582607184821611841788969887267633791107754911195696536869274952134551228683249353678206727417132619031434146625406756656123238052205292128908797892949539503058269567171444985651160524659882061181160960348877413548923255848208839807782469601896260570060450842604330386155199473482550722469461300552442565409258745602081854619851336498848967019654634155134504462693595313248233803049693079571973088416961236398624878761024839501322485861058686347489686350793818498345115230314167304726263750921337260941127303472635712812041519675929675322300089540710477021790061447031682275394171224760777183361440446888143704263871611904149456486450501085443463542925540207745043933774406340969152064763230715995419143838710880534334983684838039247052167720093533698611365249382442612178365499200800267412237263464166272797297146855776944088985111649411959048607575889588923042856643133385424352363569406357455800389582368476920839340284543466685401657342147255591087379042932435886664598183878249037005985239744143312586428198257375421767354046339913975997116156794529478046324812382413772378003565547044154201762739275576627326596066497660426043820537915271637186064112622611440304885790143630127672091257534660562143940479900632985942611920629175342025798948753710036932875590085184730155928251243298338687627592808804625283314842874614836175076099813436390988506116878649540777401984889167667700802214267397452032986277645341215425092198100638516082870493692547747068783223831123388620240522865126103160534905067962941836168780398760695845182842235606893241888685513250478849886823097681545125318529052286964587061382586124004479101145822608068590763655704823224056570638536273791300607404682846032835093756807643503297336754619886642361345391731024946989416914145222877033399902157338064718652473646462837718773865022197075459804233026874792564159933523047719606985534569293153212721100231462883466400202435773013332833760587898775380345453201451568481667604870193785978321538177073014792168118623401223618273048399627969609562313491081580899821334413892935440585471324371651894469321803186475615916025643468066568917730473124874098142717768959013115205719229191068642380422900210598311189933303593069933557927044758549269920951205283683566422478736266724248732537026837716788250371669124287999885055463971921540900121486988065969098775010586969476370433724920744116716885788654900202145979374371400419443628134507505723428062885354982701766905848937444522073265023564805291542634760137419586665533482052153268672968076727032474877354326614395170638692208436013734123059299666099170951933928054089624543732695454957672256273500119411787570526668501681219148508744111656948900148702641631685021768182153477819769086563987994772750099387447545566929474203655667096261891757691411628075603790236392562756185790480119145185770520677883360572248201665629481546948975556049573488481940688115617217066850781037453602135238758350885360993014770303498398589934985838936773431227529030406848425944730080658964560416104775424062605313147252113528387745146938741800295442710894055835053603366952723370758328973451743524639693212034085883317492998715976773342478575951773737110033210543498116626202231408835308281076114016536549761465351679706070156685147988854660910776759554737335839580654882932246636205823472396154748094315092823588974317713773572149133389517087855985184920493253846458678613988715610326423180683727366920543861462629047974030707552808372169894351327331714659154452077985220801699948732987284585461288742845238745177410700812586682556174490977907755643452666547458493125000680890244137173205028220474568847456890221508970907568060810096634075794214403007781028736283836526530401055870873070995350043889895926925952489801343938495405882569892187614012091791483720094220066824304664349589106686112997609901396489774852669883425349612195062825495471436563450002058487258337791520916871614397632391523451494593108992280760032172413239682266003468532616515318768770992404316999999199244664164571295186953875098030453946245709691905587084152714888957058682243505046386749615209006024328105233353203013778262287224577438642086564792321632013773538948058702664818161922095466507688132229601825186303764953075317782776195859543755119999816982428583072299979636138173617348870535705545696681219395154339185736372752608351481290549518515074125614084523914071895822400205633273527865150465169061602977989533961806775409463887738220475622041623535326009811739002410352964455066672408323779592320124024160978693411913999876863486046068830673068524514646996857047171651988190682041898560703225238036073699780785250154143676447033157133800185583277453330702322769001593050020383214272976743421826098660301595063733684472367854385978437742025377455485504904465452967941009383954589683346497618421220259449508347010673489004065800350337251064601020515723568568305934465523703230648826179600782981958156716854880801810283024889225115488586133991713987082834530452830756734071326680676351197789324040083770003994969513332869184185769457241019911425228429632013343365516542229791515868192319661597045510057227237831379456133221956289764000245135314892110167797410079056744298437878872874299101060634604463360315695133710232373827061997148356651816552594748347378105443948683150449989469969169243968587274921536601234395394048016132779272747796277355851110232402315897790945618488861150074159535093153613245215884150127864440409851245979291974954011398286128930540305133637185084329359377456777372701166407642425756593057603074515568671247410251271280072554034430171668179355156102655305966888695580449289248225560615651678705239244573399911734095683817634605456745964519379413254545359458389827093155326288554061178901729368399249801689389511422877414223065582499365605195759557929264132902853770189752557373389553478343042567944695167553749090396951977457401726048532635845558218453424467792802115474040879712586967384004262846785284206321431318939807855433674727114831070233256392584986678275390025751065846797185754193142027893077953325296741224806333312266162735232432647379045654145756327073496507577412087784457272703758686171797265669025872243488057226361792505608619299910081988335423140052616185253457065250652972846373554576385640396951712628150121514512074294157123331128054661553277099227920199648106442402111955614624812601834436557833772413848891668962115581816556442061470387252301733667011203924342292416589651993091490067199957208672905560339515799444333646622167263154879499415526967030173432600432406571381496511598558094190127654441722026975416296507756355365685292399877368913421840230656430058900118363325827417808095307283588633923335871849145663498204383658784172731932362518529200568558552272109821664819952076222964847510419598513121743890864029413856264136662354608926700604697077710990935045526732666492526511586496017616153514189223817118946587400666677470854361901245556811199104397706471653844900136809498705639312075397931376705336939716808665492143237705038787070362542374300475240489582367283959380693234375932881360455305792512907552573031475010520135468480302679134341452172106581462056109625138095063126269254142522393528317014208256738016348910887279492718716227399570536130564129106451266344783517880616852167411479027685795635387923560649198456054263112277316802879788879563737831760397471431978490426625416514721195789009941678011896630998613032617468603262557104984420239660237292949732547778505816511812694340372361789752798144195369671096534517699629445664205084490541366189490953733927470757812176106284257649630504700100477178326844383979995060492854926857339632316671576586282229624955492310770475623783485806230411463836175459553493001631368274309456733774136640078390152664001037533820401134163051385771325371753243367865663655747176425364163012924804605646243414076157070155696749949355590921723299036386067337198671584305092875737496211973240948461713132559225104100933569218033087689230230941235739867561175511440037086598148404774010027906480425304280402427740694933214173235912910654531476291972829025995510595661561647501286518586722311103567100865500096383666082378910898866332981594164517543196843356913337875903837726190440816812378002498131185744278597419923052010391983794610199010783725552589981291247668415163138395737261348709330072499382240681405790498175670243973344030953316048551087284472128106959759376282019146533325992787777468927540049634257823396329474274295545705132769984056735311089217444405214317884837495485224510896650038772564408131347411365177458603505165046651659866961380871483023410867329648071505762462836363367153505953445449131589599078668060852383660235382830968977938461998716296218184937742759739180367981232795854892239212304667167042892474107642119625810113989390069160571455385928755935878564738157756181179356981678900107197593427772106479135636200253955534416848693931104594877561284946561036686475100829123385793447539065549040655849775463410815102349811336663953740618740537866024276487577427492546442194683945086901847929558672954454334214946052885608030975687839882995986823527806118847963151743457045927501174727736753416197509481562564687878033161231713677865301608586243972319993496730609405811425822894651641381268221831612245987848936380773085019543128958167390506712816371266373841896713428104493768713052425092949372882560049038591504659790020164940097220199120189177882541516640243395645082983489326502900612098296707139936201363067305884860753373132984584997757615800750405672553851929843083114076616454019043107844678820726126785774979238827296666548316418698774184685941510160932597056332801374883362589158712416057759596172275653330270246735788779557047310024273709658688433105959611498118663238078590505749374451965588377997456892793133273298974383325025158103172743507933386001730588486558504993510078920762258874865072901730439768388644198273592238800068957475110590688664229081737852509736939376638724961035808114871504615463585703381435498509305721476424719298696693338824316470926297393718538496391540633424228631872646591263469271717561392139273582223413348929982481948886490743064500668982560487303155818773773183710310771401433995002303199949331656897435699259391269551356408364801387034071140625472291978260220417258790628905609723414159260637961573390880933250440440974789688257633363772810979173295302667809526085565359179709681083711479463265013500229243422984134383137773792733135521087098862294824404051352047235531803581258933740337755669229564435408791598866036414744754618193262354638238214846512035680616547737670621711500494170789797137717954922603391939756902638985179749565048722613271871210901292973682482807624065952642301842491812268449117469376494616022356619771814361644216527818643861652427649511950621682424745273570796330929830684863888521499971313223397480512766716881350560339740183168429580583343260371928177377365811266760865100055951511374396581739183912180073220549781767411628056165938396833977161779088635353066862277782028584394882868113014606922306787982844309106881841213139586330874626846337686977777542801524232747721208533227311176906093805428148780979195778468483577567743510738572546884401439043567601454464757767895509331675775356575096036188618567755887654162323343469203975906967049073777433346195988296642360323779782371657224150740092425707276574300877184457364960056492747247522675520342143326844562088593181999189947553207832552859041689427855859009079598013283300697495955782706826129609224480450213364385892816986313898103080411727054740106659208232361698579750844876326022930389103665240419251738483841280456129716871797118268768279044005462576903684348594683860619557433072175876012776104956745721506034665119875995558334027728219595549993566869144796196575894355860585411533308316850540047531184637784632332563654040175605657012471804746368814778103369499287660639838172969311996306639336489200161667850199179244311826936296909955060181625179813472505164807203239451981810942823354408129982902983626477391527304889135181050730403919896154544393066831692118223538792805037358011388229840506682636975655378481507900757886363743318186955934740488069461422896216114440446991586885150325363099104598869145346441075985849588043160731015317392073972290979110501254930850815091209298389771057216904450996952555834389834598126618198421589813398959279738638037968129714075248821433884401708515506686509798155703786120548180986182730012951512047960423545767064429532326008520433240597665344203746625158036923560044022518256344519564609340318385369198981769087815278365293332052422342418884779950621922100160392310768657133578140379535506237902515420204261914962726081842717098096208594072230063808638808374973807901088085508315091673011812782628625420962372130156910456641667820205121477115385520520127982579941292661812012562310092852079311732848877022849808626059010029428447128540766435314540074847811696443212545553830877979946571619448984580932302200049414854850500656305112652739893646359888564305182638224546716363631632890258843128632841429343567237356061208236681860212284712710298745318764658197969673108339458151866558751151021656103185087266493828281532285485248450706213764593081561211892910749483380904844857004977025736690659890708516084288753200575986046661891802921176317257175962059591828058536264324921062719888518234790917376325852941871780362937559175958829239290905201441503304296550362304015210364522309279839808056723021075848926932119465394432011363595722444123229897280963488993365114209461409554607468919785786224219818595971466848239655418960133646959905944085145257294898570143416028301655550956991253158835195135790345077306902190010487361087813319197407128432202648651862827467381933341361368583965385540008225807244827052003381815156862024931497273857889359177022706196281062271588215943996996065347954034125723447653721745609444711936627422986103618460813414454788121274567812401387028266163195943997222088408336984593202647189690474117080396604267007342038578321245245573503229700399739591945965015696038038159752592973059942315562706845822565001987857685377321389620631777027949038900282965680849480238819699133446971413133893952741184481717192763017333415912996042917714389301119981385017152572798719948092070506177728680221199652495784359006817778014701015536879666424948629406513375187496068172916159317281642312476564459291042081518425423425001688312115579827563518836069543592025596879992359255201645110650996953705735801737087216755978453658123479346100885155397705017666594221429863159170881783597685506001164043092363675324294306554638177685731277899396677696044584049890514928444667861794612107039285673185211465586643902271568503263577176689472880962873886448100177723935684413558119806796665185596521356417345114011095498143121087580959863336399810397188543469971167345862063820151306813989761864782356725097333981954754478836840310518002793989870516775739703998664684278296647797241202384275552390383054978069564484956837820755846259641073806542926186996513991769489792289899586266727466434657340797350627507994186808958794229489516008111338458753985138006932973601555505785754577121592754800735961722996766124649172966270807110417043121240798685931400723439374928706904266745991865560937049179210280287569130573061437524155759699934243630975832283776410310204659913855338888091715249659127902897865772240476621503106848521652760637732284542203395554033225257983118424892536847405535948166111821733193614462853620945776438352625268133195365895628713470205963885969366718574899590009074639444485827169199690135737572156929407957464950469408803319791021848074126665405866844643671597390937391413717089360410134820406679524552326626977875927469261337842812089679151863495404839632846680853612148497641533775050743808062533495903152097005491688135543572131494089607529220675400010450118624141685122564419305740555344744500267269604008997254373853469261515365955709140336818438881629501929284502881745082611151479009747749179624666410578758357784052809714458614791652404349733169496333736498650121372828458968830727267742291654866815642345110700594234219776802001432357120802569528845540950864424537123697429750572466548326101612109055310391063853451120784506913521625028450034499573272267833819494362561275354305748268158346362117566415695825365093754384883087959314886297062257420710716278764029380436952067391599438841016556451951448047996081469991328941701313591724854021326134363145655064820308683810494093467342728666219397100708990521784293387762921058741795734824686939737481950507163188225237857794532717379262652361222157078003598285128410558608077778696134743607310215266064270761430952587569768639574571888955950144296275721695904189631072426636612342965007728754659443223737141334409066415302663165198191476328914623805967633483683322926963077062089910851747854482508776688567691717331352464338836438894285392855223982638222520641364433515274384446984834417452939809591788803006793011592170666679665651014468167291851692812258342641844541427244698981157884218061102252877767499793044967223590377547493101701830379258300188822105827815712717154354557048466387157810570037067838594110395704765251203127813430166254881465302999597677022102779573471499874816509786248745723290519564973737054793172765192995998740086762935479596224975719893794685444904061839846371563811627214724685127106854814443540266258469660625870679192959578605848314460251798053667755261262219460764136752369333033969663479580433732451608954158811264319755227137510713021411241341269325193038267576638123053670056097868101399443882855428125987592972285326894993154619386803448425925654858651002757780230481577881534416938079871287142388663581534204096247682206061026582228580105583302190267823278193038266277111349760697107108107694867120082009126395110576787506925983311807326605990640841077892966502491635658504868926598419833405481556727798257414358794184638832737654316704760624828694001302073877755251562581042326959235348235817945119595186954677291963990291984053964454429178900220920399790638566990836088676597883276398294628465215634003917841932263955109816556855684685431945348567938763211174222557037422013847050572861113792682097644494594336332486062660616520382310318675321086501375440896159868135748981080151945560098083340169717313632692371306305760460559801064281158562170624805904212030674333481074399591219060087292985733032993662710911063974154528621077599610870895165590786702207300895902850537610861544220575536123734922809989540395211016579771282033305691397484381408873240669524302263090518976721002759496129637110474670121619437435086974931276668104850279520427384755142694788467157745568561749033380769190903613021158890342888487739797003575713860088926023035005464628590793744034981223895710332915776963642574149674315116860265264391484434587464436184434847057724513454475044368577116381714200532137732406368160213433672074912355539319434553520358026648212274321615932483948462154214667957703010452950838555026341825154565204753294706912623840196094002080473330555131674165163140910393580987625212172371211711820058861462603168885357086404537792482860095384552054781057793377492860787029453906175417913151721079030712105226664687410401301646885609708908064198204879448559183651564150878425806547350971006807686485262866573427693594427783019425217838077156646325089413492455811146839499654302954256891402135298885113818833851878107700112799650569190660932009478460999167122815351603558621423126551910803612615218152749065363941346552405233264912111194891467112933146277376191433349413043072727954235322189932089120033068377808009675264388244081469785664854198992500381771251780878094373771396837073258012451700406918047727210135728984895125671836659835710437001674031422290843164087775478571680821630450471069462685215978661625867069803557521181370177788915543821740492903564748464367597406130280727533722879570299239396220453330987643554410698495111735407099471426601088091956801862164674656120648044603897101051187652555164017407805357563465008330146362734859319404688381401220618869244379497152017595378160536326892447672799521175862650712816688896886253607324302132945981016781450149461308354155273207229179048233961026818617596196333457144531078951680120017916258523642511419148979401997890705701636114898405675854100785351080133140956664497319133772431463900656364669193194834529113555597342665101187721805897919251139106110902870078626993033421528563845488703910691403079867170892913329201172447283864711926777235855658972501263591974823789242384254503764979873457346940917356278996320274857943324681144604339364003710333085671307397909008292497054578889143606740937236184100464918320588774049031769099911949485785633353207337564380649961281210148114129523310598943853479104517497777186579574388203878888144165177093604970469245795038319578407672739538633927943295566686915281086825325758510703859847361948699732846750472581253419198726529027400079186700628387526142406372976748888991613468617842544515023709936736085995304809725189532567963920852524606106918416318165164255479775875504059591619515999412786891862768307412582402048058891011540986296048030681118196290023582111811209563213560963844859797035198978245469250863186524527401351849683416508260375458967982622900762973623453183825302876090389184604960686982086489772220062596595553125055778393022330838425049747524324833693581002474299793799065875060268054717865506348368436995382257785822182805890976425594388004953531819142269907735023648548507123850616061656971495359647038300720908790262252292207580891078852458503866285196399365797392042520125356768990085279664543345446277928526970117023071578808080244560495215481629354393698105553039296039370254449608478367198871556221237029997139742470007352239223300346607512789580777451510619573794808622182445760142779824586990502425882710723247573781612717436847184965076262927852987747145581263216860645615111306291053902687174387127338430343506089709695241247702258601071979379290868434881434488541703732587935881426953377266715599960902639282219547722240239566580603552303077062282957781751044053087641534453532887033039683102351072965872490802641879903402442256089530388532653012030406290821168165845193964084543200710313864107092953827817965138206500693814399955569717378429104442288956798926939069412720701555585401270130008220086304794169892831323161310855744065681721971463922810650742984561114332252585553287508173880345181006826642857181057606105355366010514876160857229123378322096421619425980014085544731756569460215078800304898223797517970395806530757750758102743734814746352877047636109228886805486756953275801469881400590020017916016440020637853323846778254698768615531562992745210331250500136471204737219025886398372589933251661833232840845321903839872276722141746932795125261047776057276326658159844541967251887022628409245861629462495193074029937223569279170771142732037642042074159663314333256809983599933465983947729276063664047002701431805524014783421224662817071126483191321382508407113070392942909316007594362321003550817816264771163847474660670961208926803549414338692847499391800947964383157002205756818592921599683483611284515937877193212735383258369400214732953172927910809261920028532963245633938278459829630646168024060584333101250587747984266583007457477652807671492369920735280960704010426446939571724396271483983496273368820827828458885664786637674641249834949958230198917537997473764168245316308796479132266636127630441078480887358067071570163289503542939798903104559661403660277776687672517206879196346131912752209131265129954834728970031376022207883443709196691468789739341591132649920027395889583894894906970750456100434632176453868100530545199481754566337412072945023417829624666634028359431651511549495640271797553213345475805377144787002989554851853126005135041410466023202824144542314425693348792603296803462834015981411618729196729855758712059956829998980785640595303146757929544595598257964361386492352996984324062986593088086012994678707631426713806066453972456601421994280153276014704879442792171585545707244695774169143072407500002577688713379562346384458108568422877280853937945206677932158887842732870268820896195304947776606378215363028922186354629310886270527134919183578739722021056105458033831355751321170396253718155526877267202972307955181603593323093568840682469486452882966182086986930836704340007074567332429776009843566571828990821101170677098993955383464736200648390519874311801710436466946643257608335501882064603323049278339570391471751270266049618964141058337982465738452666886085799893937539918164848520815415808602204792599377883342985758778697085748433649510356195035748014163356571133084444841658079102482376545732005991200570034045856995618406797019981519275301510206828035270641517681640207035414427948854478224905604053383900210915020033769255728175167553428483491371498605810827489755551678779439264927376670539702716921187582483397467397081717199944683371213744580960417901889287979790158517487590044791802781393365640940109084953108843249077905418108620684896491655296109951788956752090031003584440270702227716366318173243933006320564891757578575164553976302008280811711149941151554021279391806746587487252658942328988267864213005385490555853531763791478926659492708628622348472122904979205146495046271198277557613504476137457449691689632549628370964358241903016591053723771519701930151669759529534188933758000521986328499833383247066074935231772737131990035781877615513426814590819862219530968782555541152996370142368229642490439293955998215709722352749279938546857045228030224105885268581444558776710648275249741011413381530311134695243899630328175217171564701811751520132647034628941268163552476075843827982804280913460104075372631306960724939586940473671432128655696839097205435119978934407079743036246174643808489138929736209662826412235085629424160502721784921255516124972292008178951878801629233520310450808383657365267089760624635591433841812643712528723264177711419648097828486274240138095590480200016316847076898677967047979624267979805704157618824020694322123021769180938976152752738312294098414895896495691000716045946081881209606513159787532571399321723829636516584533654705093229606379742989748437202317456028264003021768601437232394863367440447002821696980086900197441655461900397551067224070737119869947202182117744381307754241365342302223674662692311689215478452486295846068818084392004730986966301733189872655836190243036172096932451408827870018837604826319716501508312347508535328989004357980237576867723283983044586339399058144557364169502621204442552297495067621888603457496471120730291560874847792044561936084207604743138797461096365789071437825700915184819923561990854100000700535196770483120962697518849311934030398486566662247987839412211760536623277619263824508419157143524345650181561311507771349733139502245204786630135703110571204078111984266459930950381946397903678631335305272728193529521414150357073249343479267603779812096860037465607037309770612809621075601342618024770542791105897924661104308776321974845201668594163001025189138184422208144834098125046099150474890064985036731780320998409979713246344387276827188327444232396372108163893659402250713756262483779061402844260962062216544197748242372176916053564544224543445771585035164405623218706847432952221281000067839629864582160580458962668912892278244831169843305016534177362057912003559520640077052181257793138543667519334703119360900168165917228588955752834571539641824940099077056486360421803818405885187340684099380761993611578388445752597809095927681810580154045576382251476562791008104611455482042916269361041415548596660207712974097258149191495151214200302129004221612123590527576372657778740241785751123992566935895526104255662084678704864721998238119279033142074623016432537115927158738203457454726722785113156366278764836873856010408953818217866209526078995215652997156468541934608557062247133685036276496710135197593440677104071365904081038795798387880537290504366484203981294298952810511561122121374490544892761009262127751969803500017043717803536917706167789510624177946353311370643545263609364844426890498258826810482640993466070111430063780034841293906209354931316368155970333961321880194160570276875786926728172627651617209643910386795835590459134330446508424967005889811287467508497515779105328411421243306917424249002224510360659071934224683269469857729044257290928160657042698115716498404145078823389218453162250457667330791880179186328478355224468602033008272280808239824082787418189414955999593698206323428815217758897834836399718791005754888244125619097920343172046459780660451202918171331341150305929875509285951191239590817128548192206308527402997664711889837924485437567693494501980377045150917009133926151036527605415095032862928485266925289225413150905516453025507083495223093699637715442007468467951070366039465447351238882403072694584893631351482256936147472594364848442266411578532893589776265769066044314666634026345500882252664614488263933045478043296713909383193957078732408431137038474862772199451822078621002196608374225768279878824262070404213294028635825813276647196512530500684642130682265174582385049988754186255574939988090356456931975020737330634300298090222007219915640939247983434774919332009110908201204120533289320693203391386615021327791196836100831540891184094722799842763599967901822529906474144411773873367807860854590606377989683563209316432622378834161458314879423048182212877443496556601822529902017844763347656148128686375851608653085132109623511159512006103946290593555952571244035842378547432372567558039174107554418762142047144633646510662094114511404209855955067930915407978688044062119006924814838046651238380850064117577762092067741097088121203510320711321373903197513401045574882441376504302027120385103385004559981779753926548599803914544730815487363936506775229862199982665460168229995035988532978083223276771801581244408369010219713909888494902323558737224878072106421705529713485691736478276035077536830883176357941952408315006764313597788584651977868400998533134823817062607510690505108463243613212938290952026154845774239102849302383065935775528956383063027251767937214972644864204114066698045965235192839589198695819624266780565387362377459454631804721181727000493435267656889736950999904248597586223062989755712887714469605341733110816626322018863463058781633407665017705965094561077636435362722826912143413833386446246033057746732309202689994249170168346997728725618409551591766826115050964242906655444800465036295918114862258566150201489862402211471658397262352820201046462534610105842254101670089940124016226816315406583573503687302517114856582682052645019655368006306189279389298150411193953635505361334887791760936297064769869419479652106544024296274687992400644782160239946284600772444829987992635514108422353901450063757682433125870740512441473535406435448320664946382677860863973658311018939996125702335342190523350898140357746427382719152570197706622686770425791347614173716516414289278038610830545926979919221354885646908228901794276986030991386224431942973479017649937796816672520187260736562085143711093271296200419208046815935707660668446861746162579915476618077174559229458618055599439675924488675239513163899092164046262965447408547599497353315249172044742690382004863833509850702104473654699507634463618932331509449301004290171097441621995403641418615484585905202150067241345648724443567994159631516185974803670849794230625015996720825896733276346518161842744950073463811524252519594091357223639339534160332518223105403555018180750139911491537515989158369442186825025729570419733478142845424719646711467046042941973694105342680267187264703858775993653662923090034567769678858000821718928472040991955676627281716181180147184213267952382175372323098902724278348353712327152485699804944583653912445710205355538464521458653899935318679013319956264587337210634994939199712872112526812091516724093856732692627776673465324855475004433608707944277486668959479538303947369230756647866910248540922930913506676926177542015129099503065015019496653839296584745793346161783936550187648661124551445970645693894160946771387008176357131064791952330266597904944390919932928250868659825470518090126846450923241886878556981646435524173372727953052427839709531548897739376862703466100771291267923446174162941160760800775895935914850364814502290583511360436569436225601892061619409663626734167084431219139772660090506388662048518918051548417068918422641804221119075717357969904513825655840444590231269927671962390077599797205107905046566538099582913143102906391931874309927810459873085606682306082534997828153918623184125341068647501992839917541686541210161686763610340614911625700306394703763264919288776246164855811996174213801098321525080585757837463733272125068329311901261454488261032059697807975347260196193729434452119201572638673409219551150205493671206295459843663179687465864723695114197334368431109074085930359385498288662082264103913203906948383795881806414908881721390558945264231446567787693173397915499360247204481545862198264474997967772790037076806089173370143591548348036912448941915554726165257800768521328211943548024725322635384789485557689551204592781218889641088747652857750496260948122310751101468547298444402924423358747352962594208963043063681867996138359173197361033222241281954867872799504824583193342177904212304624300359687116683043208411123847238914218369421231382663730255123164125453667832247466414002746205428961726456605332167582254191749975493971226487284832206863369683264708505616159003886740278034111721405735336486577332418909049837616070680496615477070587791364331977748824744208548875400809543777018935471000082225659423016114373948659200368690355107344304922114061987926628624402168542224211794515750897374163090934386710086337978785741503001585760653370983503949066805236227010255213155570362217898512497957888742615968388204136394425065301137726296831075976297429435977756161562930870369919707568727186988796779721211875936380384319062201707708969357684138376694795834948722755527099543188576407715773269800607807790827356512953478170851233482082426671181744255098033387637217000091967500238043403418013855860346237993348176001106946016945312597131283624529662940284513756138082352252644433201819451940808833051454812521898799697527416899606675866022344446057823362834208509659204701778837055774198633015572521321769044455268485370894103029188742455739472964415756277867873141739192292363959855772746021598421922906190170849276263244389039265053355990291340694033999616946298663631945766648740697263216251608377042621551812303543338648968727592936010388171128095651438670019040542347076846357913326186398282453106667692445205566415621516093747568894609193626211328311364299901539852173322077818556711271225162377312809997815383737790140871905792532237460550752672319197128474608565924821420483904423569402670208263872425959711669604649721640927938968950666473045506978455292509480781847380842976289289310341552711116264218224224036023704313644169574318908725817721085458226420680133064312638673802168269147859497113624561756062591912537011858343011603639864946407492750872251723197930068751117517831890803508029205444854077079417012884217716096415836014705764959430939630238184048050856386008035316136230729358854346741339183186280753696332490652671253196618264151250651515852601260654023992124636147900619060657233836198935883462947521616830680010802706914861507965315843279142720302907885313921142747935942718971598204638847840557933863673941597248283557385281097024057106939110484077866866844857795731099477976132429354254469562842774036751811438776452787526279178443546537052713795953718408703126549997285669544916763150330388379655317081070905445338403947169020022332719157637210041802504075678129430016497194787685858644198197940593190300460436623939626149787299727082277986208715225998675076065662854065003366734888730014070852076830931919540398542525019213550281708744674547169709801953042046394370382430618072176634475873637644315972022540913467211312058627465829233210523592778048165958102526866831982846240758074001116953085287007036783833881221296741135821575727283945781838747160339395165960454083446841670338520495032041682161155577726890148533991923703361395478556268699531027724529357569569054129970484273185923622057624644728142377202599014020034124943348803179685663237096149516736759498875330787812011261437039923373896387516217878208134331485255556678686741389193834696576608101321854181331736036697689265553676057548739562583834707191088756363602465631366029820971571439208847998959826654476789904566360200313772581800240707509992039277912360820306466727869736133937581720024998973263095061997587062284547809412130921948366354915917084928255811796685111274385534750630264329898105716688203463115771612984021296921376230915113532242922164659096131430996672861583792771702387988970069283558090990941822818521124518831308093879509369221092692383731845341684611296652829757093556755831569848702186955615841907154612529946109466598773483964691886296825590957838562752252046686490923274808906497241406276312597830003422156663982500913960722769957111701814186203386549986649121190872595786756476362675828367435809885797320341815487849296600952186469866099801453333946598787017004681119835666623162218450541583697452602894103321762295456056540278671155946419281804239085682542807401692142407643459809766868061167151533927376238083760773111757291683415440408710421625636396945251113707050222392838406828723457027105790079843238069275909435354254277444235686487479218005986457499628486494664224128104823787882775013702164458783463383499059600357188254141241339102350032454433329376588990163748427889904976545271701032983779045473859174138736733746861866429958146123272748408389972054442518584029006956449428620531337079168126966968801623701509511662784550230670524161326199028812807138658345805440714483944195997421574684782151892348712387050168640100609254169668845996703645130166219386978059200578912928100960787399882207136032932219716787308683761019770459244611194611174926422097210766376427236075543127240315984512031786846950017399867942717912538791572146047007346416874855765283190999788856962401278573229097467016473360500714380555806180587054626709079137460426099355238450737392048867795532152561616619067172694623476998924680170340326768088785245694704782271943102216826230506011029420083648060164797744809456726677519443948543974816357353359993694955351043455761260203304546721973471648292788670355107207289123909679766515214804478587128551711838816416045051431211857127489506419844988009110274654785018728314830942702823037429149938935090303955365082584905158823947759899787068155401380173357207082288585691770711723655286132948474680850109708791688854120157588808465105617384409998844660408786868122638906673631178972760492321998942785194701037861891264013229483109954095722943556152607638497749401093589917901362089167297827096438754943481215652420835270100466163398014060053215294828068790493285449486612450729873440106746288715505447151149301695301517112669993769931831400813392956749149344458194522879132049782013938774031134233704355903367353241879655894812780699408812491630773851499758708198252202235365999867050747305384666044565840567192526378496026166833258395734828523315404677157666722746095859328378854088984402791354905901276428498130294384307405567849436088755093282341041528627856627962103335724390300744497694153726569598771463232441318430462521958536821744031527894279739103227836466648347706289456276905038105702570160535617764239346310658717767786903875938908658329369534215091031647132895509640508479422433301510280185175347054291093174577853912544719823949640602658105426925390461789167461983267264417704306929655491270832688237886581299879364788205123462765927871612826540113822422783055397292621401116017773779956266796372184694147088395467357641086900077498697504420675580069724453445510454534822757084122880722823647572227721735975859944452288092668412181463670255027534101238928352519789581470024632516616327107127387962233534274891178217044208093948707490455878169263956283095188864779369104359581778115498600724696960528663221942810045642212677815415435299891844730132200595194338311484001139383350477213064805899183122596608905286557486043482434264371487016436635127355150257390882205318636344882380756028713247864634280819336248397409326534044535306186744014074182086640247098556681723910260093429074347091391331014301260366238406834304626432042082601373982558042753822605646712309042994190368165839148314639011018481357252722666460614268871544348378505849208938994600279246861020870369990450815798143904705515343469096747588313220961344784328142696677090705441131112183920310550943508331338485677082662520410927397784985765395672988956551070750731428810503607859983859742563053261978026600766893758483358758485833863917281257911405743144289083109630775395062488952143166436980786706854777773335893142965589243090039400441344568687543828254350702007124444226657705030097004011978886649853857919004695873758055608143876686425982812596430877902118679912739956197246148511024149799635049395614737402689448165977590809518493517102864508000863937980762939010464627565508299827564219513547963090409234836099650633832019801522904816795485314618549029813514042338786025100577578540067994242085512858408986920151696798807699644954079877385394409799490641678385155042229611716835550075266575489797951828365899974521296725497567341992652393803673630702420398213440837848963406287342652432355940329616789634716948685237672445050678660247279532702824194299035906771096644949186589084064566598421223801963145568661034527560397249979640921838271402405928499001286828020145191236408529073722548304215799210130870643848829293198804002522187365702044141075364694944337231794101666693561116603313057550085356851206496094199676807703747922282737633727140807101648752953491660829342009649772836477604498405195151354435500850980194225188913176421167325589183783943240288052742298707024133647214855337796456779352173976267045965338755940644930159607000076486917562687988959112809621220333506887043416756853256576189023557917789497262951971665810165736818437793603674839502730551194001011053911543717572835825258014140262728796484734864282428529048948434596866758857460635564732630932410084630522168344313353305596152809390762545555306680753015881937716181361396956767795092011165391946167612556350221706995540332076111265137857273848641830811519722906450283695526077224418977722443644056156435393422863209862279295679166541768536181065218360102585891572672131078997089030831982736485379782887546647034398801502817997330269255160222528301404562547497054463121367495860039550462464824080914304537372260270147769241330930816002105171916103936246132737464886333198064115497745094796587363087365255477975586180973503161116366008560723963611211368567411434400497849043944495320067110331819353414109934289733058165945705193592959385948275906680125534565142111001995044135514899401539191188592016540029502919528371379088767872153072029402662518617700014375023722924340491585232901113685640661851934035575758194662123120643432288783378215373745292670161240145993358409771408369932412245625918835930246728618765727247560054826729399778031205285871704338443293143672076952395243044893263005113526742194518952333843973889826753631160500028678733224981760944653516677900525995822124856507304512782458098005923327246172026182739575132239513110395552866988616792143825941345961268230449840849571859735946386269962553359524026886877789098271267572380659539302471743197952178553944041458246061253356110604846461323925913466802399806492195874115160841221993211054174124823890518063119105864903722336522913679970532358500324116233590808986100095135323367758326738451665969864809304399349863319493326460011370146620988368389785763492767597166851082774118850546894992329426131768405838307855351115523349700579796002131375377496344005939779139605061973422917396995217948271238552428007028503911714476940469241411370523591894203678971250335996553907831456431032952494397538900936120154062795277018558667201192236449177093728433398441282227681407750656205670863083742993020397108527743300834006845766456989261027879364776364783170624944733001827114235464258575031142257066766340259825899640377310847688091064033146187318443622048541133353413965167456009180245133269445350887322714798470386897083577204323850147307776979624248805972599774494419136271067745774998811629266375609329311748531120718794433246792646660899184046655492569394986321571114888646011085377580888771924450602558626870933425915998480963897112923304633758685626693890792331030228736212180446920196165678188022206144243834343271012555742306369393763950608017114971616555852185795907785794220147293189144744076094572340204205055794865085559140109076540369076252255153671469742116127514718146037615005175857042214878786194624175284687701743166315987587988350822276836926416918622640543392071663894070453357657940090882122654875665593112364217835225591935357323638255833869564587232455920427786670093935017924716805975995378975531298280459947799699103426186392839621067403382619335061966275965440989918232736973256293709628697658485801164742954237664827079346256993980228711307797315910638684762832122683589523495673460584623546468171414139570329213763809720993314385545857628474142310566644063702458575376469655421565695346217980220372711864790530601561792673678572999656705667917047875259725839558411546341123335993874121831591525605777637020262553998512438459649675883785753973933550529708641653644946607867003513011530619900573644150665255316044378850958140728664997637485129715297600349723898643847018020688997931200037489195230917507733787676374067444642480351540692024506734209607805019012919676131248813769083698476092404832004304497296697167563845034652412903006125223449402811306658822554673871229628875764628582323505265777350955632920499161602314105365404692494191645405904863968407818262957870598059571640848092584331845646832424071969394814783438256226469852281901648749589590632953171727559569425020377671523067510284630430987671578263252632066036495897582016545687386671960631453252780350525428121811532216828142207477356084901324089177243015807016327408254824173367862256585991135777900478952587433575487007329960286459320667601339698898268428130027032430588952440816277339686074442244921349671253335266969325314267057959199656249441233139063878090488943352266657365940056065133352987326752408140067080570330137028253391639606345934520794691094538404235366395825857355742899285182958239672512413760162058748179911852325873887510044450717327666696348600627793234082415544649367371726114353125656323374087677819117081509396629900189041500779875426234036258056584140379595411208234702574029146649443381751977023086451216344013568274029669800488278264763904462713395842859770013068887840360005125719854773936694238831764872506560178705610324460908549036941748818920675330315574538899443395358802481989649239895626908063138975892778956239208635206344545579274290848018413842647545600761035680751291664630150755319365260322755784765863734873242727645887464476652496530885718479451514759567617154972136686851933001834256980759109658704965908892664704566638176074051218539929211855921979555829873472461294421799181292350670454064028005521525770382172552180573809417854878031466607893822269474396034552853173674092463457884201145680249527337797317274594422124251087706009973218975543384984756089217932428973231540625249905455172028580698617334957119193888301062840909198769908338250256754783454513442231257255604866796134856200533855025731943674538805448512111334859831551743845594817404892168699684132522401844580545097089144135682485468024841073352153766300965872121022786539129806851108770820452463678464243354345937247585491852903241894643235687236375608003110084409033399438883894125718842431809876697452535932118304201939388864366082036788569064375735767049899418279844813865102213648140244463309289050163455243130024766233473773994335853451654294441545992031707063104311539589097766268631160584422191076125849096693068846353233999387600499777895436493050442013749067121405152274669529070406582323962517596384020628364580773789080483902007260178544982224588888469286368995431760073029721247430316075702467329369934973013078409056623151470260307632921291825209290338616304884515726158298409059438497281280002661622681129542999804039802805321368001993832128562179764537565403283167203764490058449720749034431144094680422066960777337433967805384920562640044029186658197908926435937779218899252106420949725095396271818688026909367458485998880068931479351065071550490527658100893437224036902576667692033234128829032827791962504328362984798516470689651291582154834331011379028697878440273516296798354227043900410741669311225945247939248849129195986240699431223708527092046713176553357789804753143016998710667354280197132648068138107163199389591805546646914072853311787600540962691154352482916471640513854836417283946958525394901893978334641238452895119490692987367551677187249385275120208244478357470885004609202777304804681522836538015196670350271752646806275518114023733428332826978410353713201731965841670479900399339131655488772203225680469750165618006621430440685854479578284931952459667173469674319693923779525182370950707130029123875449796561218065234717968033243612596490885874587507471033986437918003978934046365581403993840065553010806769373566795546302866333336842270496048278555140196050936975693689695926946762553314655744797193046661165355379042736215134992563216889859013099753048939684083768056511506635118265684101936348041352780832974250933026350821797201491135344866965556200686286753893846206108926343071221460954055828901341169347615784670605467631037599756160309078610836360035686144507699823444659588539906897092556447305216008643049744705304262712178251226876847048175875400482844098486491506743179647524705200990399512559921754228349495448833354466724310187007565048022073248506738778743304932122604940652677336469709879975944383597433179400051794945162787236616559416822228528833509078031533812460090404728721598330577003683581487146559596665493415084972837995873421191101031113045992990355868042283809342595053856340240921177735771997823262518188086584988771535425198904960666194066256071776963445359982132375532968575791169202037148258579549783642679646284197115177274763435177483398337868205866403873707797686028398678744947040990912582086968545703530887380389147057559125800178928968715166914043066291895058548577533573965547215144027039690322233929318925017388033826867548766250325316867073574700014430443852239419564007510800576973673603073158550219841797679177260299783605807504833139418271471592408727466423768272821982883786580187850107235332900077899593341104181526708628757678951437193688806448783002798527647801686924462550230573314509152914641428686608522199118018832704430964312450682073920256908912066572067906918750841848658295780385156038163239334966272662490351321319168973004706636347535393835356681755992854173346837519731280596304023178449531587145107412991116430855496154256728025990927109090102731734527334358472570077516199652087269006471755741383922315394590347618058724685133555694618034466084457677907030890410509934287567891553293427321399015804397913635792905093724027113806561546068728285264534773351049169879256672365750647631477251442830650949129932531503055100696474936630322359560527454516211508778230745967897784603523808674905988838346689807660289554132100026316952759595429497255338321367178401111728710738116310526372062363565857216353711708419972924303032285520334210385239082160798898440416565186611892455960822528062287542612766317313315009292636952612047729697385887249868342909564809311262935382943334077976129028324233395174432533561798218921571405417131744200410248675790988434714078254980844790981235715567233983320618386596857463902456801191672821949262515714794490227533688061701988405136657891442668760933177399191058989672142765465989029963291455725429432726896204135365115798246730225675875274115734935505684221728298378308940035313102165859265224124986153858791263101921240934922095891168080410894796048134293822653221352978055884997944827965084860304780353658307904106325328056464492727469758955337512625761807602045786384976472617225968813873266900653735483936838810099871899652874831433601082411975930578268178310233452127753685043398175917945235826034177738794112426726907577990468764023583323223148341614827158994884654338605035953887040388305726706200233604016044698985750832890873310118716890739160680825576123780444442086659663268461024061482182747037021558827771723414008980220328405511841445957551648402863479104898785586394853408927915828016850645888783310114428156728694839091705029803681428409452148787092250491874338908140260736350805137673596295380293552623154863713718582888983851857154211319127981019329800722809781282603357971865028134289250784280090327478357787259757569883326335498649032821551465226417919199156613030998133009122421236745743408320331699191345698009256802792984818480322976386595176238512462179073789344634820928575887504708274338807147249424867781162777109007206049509841755829282324063387072512569643691243692265172278289832792635130412218023071854427494433493632502455095364215769497119986719897419520015471415127697714972103895677185446318978448124194593437949830259508778821039376092647802738839920657722412176164540097324637711944523332533266078426495238033828868431922965234836035634673964078828450768729122727655455490451994704526971521174956666023178880982930916208314011513921333207678178043353206250686740984678490725316419551085686140748240626331277572498231445251255741364584141274105344477723053410400446651750460234213724224608634101625529525883122577619890426602501096440973904230313860501661474024912018892284147000278217702570471777836998673493002039536774195329570191956453732758389082792536330746738743658401668119023347554241075426932982033283838370944194591800244910773135120186942381161997749420058950894955883243770425483590316501267516739002639974332124290661304157058294450929509831157177665488446625675551379556990112796508764329401765583814629979518605046347241788462830444013140650555892818020241590805581186238430740101333405013662841467371907656098557113662504362679478231921417117326241582749569074788010711112291023955444375953333109468766941385737828964454376543409365339267372474288299182663911175868078405459157044546800630248399952862159373767216031794115972653187786366716032153788262985312801619531893645069771863724646771841885685284122324895943110504241506450307763120341820507804573757066314697560476943001994629547669313057002783338380001574161639386848163265838436622022733328348978308269477155453801929828484457217390570198958170161595886558469227446446112536470334008400178339799134025314130797055386015330336196050486760227441737526263046480963347724878058091349918126768082886145116475267699207300564497896255443084846869176448820737962033842976241480729246102163483910645775216725902710953634888989687698916952929063349905048883423543956060516390709966615998222508892895444707905787865171524198895129772673811030084585816504941272259866789639984441541359782221229511025004048675823994202600634433796768895033753627380321530759383809810271523368011794398149627250978835668620910897829043900466098397139801518160842348471019054386972817558913545372305332865057147282018178701650916032163997493765560683319248819471957171505171257585521877625838160938836693656851984714048912914811736765141165040086121267763923483369163205663830343629906110660031719540071263941557232066873007306688593031863561495352824869771727274561263094649693615331088260522544390101485532508175571987380257879922775218738796342224833785919657247951638117734649943029983281624959356775379934415804660976061386129753662400452121885518764106214680416323178002702494595298648916410988588063218629141443650146216480650818712653510665433946074580421913778779210138677141667100751822781027191717414163129012746316667435060350056164520432860918222796398992745076090560146472706372905777468779159613051505555967910490909164175665484800204717213638892063986279609815822810104609535273659388370625314830920865955135643412265035339033868256464324294389803841564080517335240280583756383644266844483881907688041415326824647332847001095770240557553095975752901055544221956511425496205899987620421862181536836834558252048029695723072000012486955948387789144345169316961047620868996401228297959984160761407641060477543070815571486087298806971803114160400034188746131936751282897348634995241333846716073351255746390563378093836402797878371964855693901111300532182271059825068423910233538386132000414784396991987214154993166641274656094280820778827767619057553243351074312426518690748583219538320342677317969230010630893065380157616126958923454595872058142556147282377640500819860291667876911961739731780718689648856541041802817376636993126782680425007344923590267134337673896083471349464823252672876204645183900997822163847431851946131731114294043761806935986004898958354832535507906364530149091140793619942745830687563058586841559669602711639003703936055451553264526126500794902183185301585069229015526725259560353646357093179556704679238091312460525543908247197709373596030656242122290481824771836090623076408809669759851407962085710907250777664942273101386334293413351837119883327750758117152619755447325997866086121943111305477239009761234817458537725805344460273180268524473278727822906963129749725428346670838946672325938910087791978668305429414732267070169509732749596722085022196916002288388210176971503471040026705286703683216249934756494431161170124945001907302228463201873997475792682398350951895337053266155585505808871617627239240094696229706093004996915474196949527424911182096806897065405659812024995451168501063330042845685079189927019392381299339197274991025995911202284393946956584178522848274178190418821398201409140068973516649059703305511395445981526359860061776395252778810719087067832648130494041617078372108423259565387267814947353410064305952110366573407894255645318825093921954755143432724533599921162949739651000459972451428444920829707976452807142754263469982293226865971510670109184825382124216871962315141045283139446350038294348709016049563557916190721650794937543081143080623564435539539867604975989182554904748474637511238491162442633741577099422195883714504347196184232723733606237512526690886419946902092647324533665010298203191006443820970470868785598862676690438548812407972798836212476287657846527256630952556335312201155966037426642392738808477954086987842832130608815597616017045939843768326422403023448498484659431888178561529987777276601690941380017605668206112902673120488094349505708912246548524752158587541563459296562991946657148082390184851159316460511646624527522002321211257010767297676310947534909645120303646084711909673449292432797921021271210501193804275377710915598446594369093912265597173734852399386756821603707973754304185293245556980179072876930819031770958234438807174098918038580198739475707374427266688119400605361671970938429490250369037695599966508382058418350826644136706226457764609837144745724240261140771055530258113926613177376011156344380803334737041961020368149512894072579814598853950098845182851756211487393304763669706631054399099307272107850456256618674152589092658638512284235645272058420057322034319305880655092811162539686248267674028286434635090773561764290946129200932439713553086278494380913066665484864587214954031386710607240060668171499015389895792144586895923084341362100332480631658935187735044411742323361656399229067665639615731898715529807683580734404636614493231663590532533755006185946653961210417917574875744972983910869359482310509444869437494998980638628786729490018975070555976869275339975949344452022012246641517739958202259294732094216638283687385151711682348497089010325348159153677829621418362990706920408762968202142741116475248852350261344322332425929195060896639550922254464743624531123819573305279477673315117812279832781972533170883132532571738309282311581064617971288493124266014378849194932677060720865270136537049368639877946118497924632793344865304130174559197877841375861647863624229626335606202553442334507300965068503244616222643393896840062089485735280008999023861327955179866474896763210487973075018611148670668981614196340834943753446806698015883725735089170626536663835601981209389253690618987395341017616741973938636542447780080897085631948412926321919952556307235316362302003701201027885123780599190379533196118530330706037918102060840242024526496855394745611128920572354656537168518165647189597465834627138293230449689468381537002614455213878236171336136968498148118087108528322996405527609598083333150883874522963450716226577678721277869363512775191683056181946157080591561922797339242789207030153556926692276268635861408946528006424196560604147055149001842866877024409778261582962041705406846190914798247264928591190877833461140341367631295178417623006259378575427336851601352821512002980683566075619121225394208253451959643798786527214958789644594780752783592731097034173206384304989795281623960268727262804332983339622026001160845894117493643855377152819248032221955467655361257670635213952255110630056889806248154721371494461431401315959311475074846383022701119343092414440841840152613072479155125302315833493623241379831281493972492470795848186603560701868788544269260607107108962641739282181716557649093231874933806222549136835757733211602535875793905909861870065392416602707584797934396872670051109669921792155100022866614331953167122453515298460942784644454678452213899282340570923724980549846319361589363820041897812383214017322745599280246494090577112953239440758453643936262997556062545403133002233633887045508232899383607052092018024811164561525136588342062274198115486162096112542912339475951181132603302610741261144460638729987187241048778721604183340689709197423185545580308894117942027893766014842983752477183533436700737774804862778419389221195215586147459580986713858755679514591540820357018211696823697393169983096486865095810659128352777695919187071265644167693677150077203958119163578728399782606897287952831902031915028657537873428568589397616328564698290603873580378696084200018394480675542909724977245516894952385181368761683458296283623189288508579500750498654534344762678834540876995553154875147423712378177540399707775452011378187698659010593437349686133051549646317127857872707961383261824608905829621436221109027911853040980766179860228521697809744429996084470447034757621769058431541779931283950049918495850805303293999694469284141110397124514130077351646506769747694762386472055913352470846583881200205513444303673892460316676395529519896072729520183474339387465062629938116590986047919940235444375569725405705181378260517192282658386305932754281749586814259547991762096370278321274354362303518400361419111241608121291660733741855958753307534192619871051213081982723010782975974815590876076634669980545766819913966092745674358397391317914971954937977555717908917176132881015729504893493692529793882002681169452461619923687399748099067653497767731104951446521402197827498476902062360125676097306863564348000799858332149314746049553193404775554658651777973730597030544576762527312656861904995146955759208229699164293394360074858553200392077368976765243715252686857877398494636611574568436160358305513272487900849342505470192097901977992308531229365571925333921601216663312067629700998115730900207740759979435381507905307106988978372936533543334762704140949227347604662279590918515704093552748563415129076214995164936730663574265738817236799064664750552308573779425595374038020821202867440154230402061228678756858527610240126362491675273415197587657263649532145731968194349531139322676608722960632624658138810991310463680317210795373775674334027110530975577125853161912039103611320137944962780659690165517317771485786541893406185743757313770721622869970065525519688285697391018383948590056641458018401861340705646962793482492637128811071195330096000439240576324654894707247935581562925021184801687782832275582523520946872032252934201498144555115245718990888945730000601698511901804628083298762890108953234217575881730142298191246734535581103508531459135772170957240228561996842647960345483469356769691425872611978448857816194777837184328164563901814807208113230166839170181806844330990109616513232554955738464670304084227846455817437855869511421383480973487473703593242083879476238241434054244374746843800789395526650750280470672598309402733241777836890957925528124532255465577088841917860927727224400835197358118870402437955123484008827885463699056985234939495265025812513588954091039720346492652734491773013582044373795484579007615582825306171334830553865399539756004017437913822164549225106153474505766409539900559267356370333968415458255904696048773906045811622220757495446741747317713286178629694018389132530724487132697806965997657540394295518573071302010053406559791876148511760625438374546458931950811068681454719886923180676803733861387263284583735604868679886765766144079284536659131872566417515410003876857619129318971182884287492863452163961062850375404194464195386409008292361060251670062347244540463275227486667466211798093244146430181284316278020140140473427230603834811184819333000444147094055946168709235607286528056036076589628125075165538214531360984211897187751814156454387271202637844236108614729152599312814954546365410302759222589993459469789884980891395835244807448910132918101768457115058447977785302107438159394387079123886737130517326678074414062199017894733135013844551518928816676625032262783319739342203439162511961433376662370358416690302464137493207659945704415904237190274061948140691369964052001690595720032763165597249274700277098667162743790427479064401373653070502282414747645373647749871454230477642647967815821332386705464396923749548337354545430179931841908440868133946240197400147836151520473222151520189873773516903227256040136080350773266696584061119370558306761133116991235929500627444524865825541250588209783846067730772251058655456446929423083221913268403780670259100372194072697666900648876659584260418691579698410810551851144966471414870882823267265270806041146954588890723807798931120070280446658349856857628774743597057785922038109142159863190542826040165739706262534084231269063278794566436569832493236548663017904001606711263761113110035304036210813135293249157362570616893907072408333190972869368398822725337543303675126454758529441428978124271787653882017259324116080494524876305977295939254307657969413916800192635685344932409320797231252443517556101584991980481819103618026690172816956630531024784674944029950651619500705897018850643072672106104423889279902647913065744687948898360003259028850700016609279732641274794469029803246560061518976189234522080553195554223204883388065483937298341057342420458315251569617936792995539637040828592768524099814685969605205164480071176786160799087860772572271576381099882807146437017122729435007571260317018730307936441986696343420298768364799314917860890110278567943292903327922210039442618020834849114864755340759216451155855431628735139537186396819394866520550336810616136931618104998517243188113150207606004799779180392905045761472894922500421723953999035759867069045225182505893347171721977871808119790974785577581815026633444248181589095803006866257073290650951677132511839122049422864000061179930691003726768944766173404765117382202666012689829949385166860121777758418597458162676413261256965716306748147920726367724414741654258363180589530402656624685474815714587880823218902587735819111506462952578292223797926788059037050178579929321437231167217024083470781296047845944604050667649725884090294110646090564966583249815561118420869407790277368202048374441867078800044004160853088908571988075260199303349478522715071987599741832776456004741859413431576580037167171815861431468675968941652128463783097319912974765972174967236579274079959459421771075640153916449808769186513770805502465157103519287800007304050040968385669760581384064908018408521515356894238470589163983380217233980931402671836782113485033245486008993899544348500171076059954570907697096565100081048042578998460741394448228879261182408503965423803337942418994798060909634468880582648194718135155837046070096696854986312736907606830425283728070083212293052116112120782530561064839887370353124709980190761543390409765843475311390770565994710510156499973492506793266096024762710701561835565260032168045779052443343800677669412275889878757922339351204753572687820188739877846101776221467660054312384731364340636948474104531004986169754159570598022624640396371424662886441512784923392588717366876282782990299814663938383850960857090168791508329247733813715006361685691677044514439675623712886552398459505433806789042673570321741645942819312367349189835598367726222743898396969683969000573229366465577424542430500149642097989566801441429722728241702166853760788846655816117494404229349502778175809544538972299332551606292254648356252043381340421255915728477865611834168704103538345954687553684104213937643101024051523600091721189685047074799695002499866047529671627818756455198423535128314920302767018098267859440552576130988117742453036853677354971859041002980599739481769288706770488423644579775327054245496225086605327644513199297087819550972092969629601447860146032674589851044481385935657651798993238927415241397545505307544994432849576420751753512715054027968233874285727717683668878418403195233920597969281949573126401809728444964981799274782518303543852020674017403245755092955697648073725646299079351102396980746915619199034518464497863869864186793240785576749955786088166139336454416146311169120762634934041746675844558420402046356530270047503018564690848493420623258220349888471757888505601469421210341195563865395532414540557088005603643365090191573163495628857563215786045050358795189098833337653374917302583955446284532480470680116760195384717688603565615038717559964229274629767957392726996038031304843147549798626344999762112505291522054995663863692150093589734368777073925563681305367466162232968760260464125831470512510039735350622418660456531549225966940274102371422589119840410190432665968920282213641300297442739591340167454273468244994089072012838970070216167214048046448472222950120518644767650095023277257213371400854092744820585038436902320694506502831597871266286803900920674821414949602645498500657477396158275528920300640827000534827750494107653493371433732020351054498901989488998086721034506333609321246788944488990625966237687410681978816517969592004752671207152776365851959159386067950518836258174005917525711844391536782170502230429789542699792934009327714135408427147726935225189034399543333511737647036419809096282073092998757112041090570229340053287832584429028390096451317529939987064801350989840049763721475284166137143122987051241396551300957617810737417220457820864541759113150890152936020461658519676282642308971336176433044564937497025953661638645591789720936189398986837536652705911702272198605725824184450739733256790035204627878962814222585582802494692059255468169602522856685316936156216356055722362733128908739143168235719256020207200319070204581137167061362743370993100208811960852842616092501118873349644863923966237858402333375655393462442612834619324600006925313846964440016634968015803439189530303756630278976487183966839959751836802842253437942192175273348203389186558774778278132104267534846845215629477970214230765401486932255384581422345622454400328631950661100600848344644510071565216068094654832760665733486921968234240677219858978775077464205427981071837387526365168110393945154520571695367977260266484538836393076536822909714009442281793539126890580438395130151740904539192154729420765835222690001556099307950285769290470817705559694896499273015848567842380007045774802709749435250623488035613847874248602537794449760090474244686521430212660802587344805607460871325733305347864839677332085660721313095173279427182302132223499183242861951580367720685463709468067276551558044417500454019491950858077065991188365852437002283272509824064775046417294117259709633455594160185455084654843046687689114809674207792029851525250626147601687539313303158094039041647745752990833706858233635620876422849202997161301661431009443339159033714397999947480218694641692843042404195536394258463755644700281444139522024242913153866805169297243774826592519812256654150074414495549491724896994290382559954237606534474559361999787166503439420961874821028855233658845174218846522912028949432695648589852781401852069443920516507577165332833618249923182747795986238133285138090781734426468752573025864776290873317876489325393342088005742753901094471592415411899935263179719868424497661057490513723861153033105733894346649444588790638489061893396088302539845979418762162789439915986695106204602001608381476710884479103349873412948825902697072286656984867159279210295344074427166798769665209262319319314768652739978687613899065010315606160234120748163070458998412829651708860996291884773995067270986621234708830437310669335365339984400163326781079160257420010915029253931073286973745398902486610563134466765333345489548491662655823678240786541361690522411116483638120336206330228357900250043225598105471354264987832832996090975181494831977171070222934096743864441115451525090127491516686805119648438862811880150588704674379756472911995201975407075954532264208212968076282313788150277090395120435957478024901248835697544692437705845651846880249149740463057686431415662552768701399123942509929003533530236748073895415605059484936106963608909914451848772897450899571572553621493336932960797802306001549059686219343276015647249074569260075037122784122903297074393384541885640546198398465307078686635053015460369539243894452003714497360324961956468636264076668225884823175125223787501299555316776277343408260326810244113311783140308378067150986092582785219783436059463246099136356374651962144951226639702419530110844608579744967720388885526618025907506139820345418376100151325423882795519078861286346323509567937540281222768375545493201261187483802009191111319876486398521187672216330774083925309823014631837258381603171768052614666196578636857105173403222338508757685971055018396891596708180873381610475527721814938846361202047487448844313474150497235887262090682669980359430542370335558073599860219942260760386494427898002438560234707971410535347777445583695695195622788879596102388642463796641214204841139122617546292457503473983325680323161142391199354380023842903297731214455443742232596700633748868954063565434128217392760660232758841955881588621886698306145521670950195867144435546427602685772710403523498237834596671873928906061272631501271863723818675378319367080859057109154914877927388411907337617600007414936523287663695126374702794158399996323259915017018564646835894808417662805729668654950125549016810170999281214059936078228783481664982735026680394160608128557889831867850997599767724635289730905154450154389081717321918758310318466799754006626330442332544508789099465450166626602535884484623008035811103092822410056255376894000754053658463825466313753437097291113018619468680802639747454016745414231395937575839643384668168551536345565966014813306592538923697395689492935293650519984030283062824223885249399992078223098542185512254820937886703537059481027832393651384061318513857182547295185819358364339475818209734713599010715737378364418774442334344471354330831772033557280851064714122134096675381241572492851508466073757321592458065800572369794426403593699754418586466986212054040629870739206817207235409739358870328211783339515219919729200908105153085357854944772404800357534959392772761778225909421371657860339774784530808378206642006714412222262400873856070472427841243609881049489775521091506533521685687384564146526240089741520823693789227666538416598009226230547620362852537719644427441859587118279220416116230667293473004631538671137142497366817180819037078982678088037049183857362792774539086487042849356178426186088957662266696200102928271929637677956382844823395885337351004562800085458038794767232316939663994155595529752052590279128040378951459409666067746933094483311511333285733103680192866782423589392512492295534530654935581495453823242643687671889205976079255232012591587069598589786171274059568762125113772125595292293877298333416938359974638102958552732158746022446713811064310771870430171832593779984002696529825001367748594906427178433996659415947185431903944105018402940388646467666212790066368229776527657425587164413227953763323642653205354600121873091845443281913662535356885122500637196146842653478697465272270196810447146516102858422481874653122671772032831537082150725637742527997902872251596902609364227771272895679049771625877407296637532361467247838092930299994631587634941148185242509673706240260072750918723573638282623881432963827553418370339718635533258785325788482997006072569148065358145853200149874281299945240804051509955512353285183770379263718779217361116480247884124347470612588633889573094288027827605814050053764769260848280949517069940437724381874611849901370771681281998683427995664308110456598697262028969165210153060240401347503422245115730543194191035718063660186606189972624141125017091279646230644751675892319366038954120525663581739905965333275284452894035760929410964054904034381015101347661123026235594312967135540234297206941995646091829653388785007950827717003750154353069661168348032901112382305547441191169238806631321023005953389839591859707650511270196222067265972931801789403419250710389316432674248328598065410429984938297208065930093665773910263083692406901460322743301608718088580960357433411419781547720777514039035923644470679607761653225496665295100511851825880266587001289241736917927562862834945338644276352796027535144684323856617971833608960131012617667132365335682440009399784040166571013195359046547743405583859231807246825143548639251115482370658313265937533212516756187515413665151921454122171281153375692811325504723611419963186630290868691896903828778402881551009300454471050652602309926888246916579064474942023247439340631080748046190980459325993672067208742026488915717616753815765075062576904627117749397705616600283794812694735142233995471608450378141829172431485890032864742459368981968341148968220579776999439304991255425623878001971278778172666883344610154586492223364496116048881553802420431119047376522572177047796683057330574248152373486597594086598797159944606214122418096188711543723274013737877137341213078312139274479255696037655473795657652581070862939976291559044801089233656159623661738328201775354257801442954228741562315422265381882970348423638433622098673459022882056559250259248381919989299960253870872117795891535952821641143065946203908043542409569234174749961240247697418742099289813970000623554896127219037217402531568703740700924407541825014369004683670127056813107760442194904259150490482964828835542692116793918395483876228954682442028698724507129943929366790050975193434257902562240647713027516922459526355766134085002052269840619720574034811607053102059682760560618823743238232053435116014751079284336565716236737039121285175917522693509371680349223516020577263979013994200177968264508667378840806388976554207499548883843252515464930365629213410930682657614819304757075963859251836247641471582909261583698330445316726492454825620231483063846531965379087569964841973183796348399567463390838057347300350259219376885517054135884223900943514801934742892854157415472890686123700359729611663845098140878374459506170370223076176594806312189293337924576600745611102692131002361825030467092623043293215332000010390401182340242204079137831270957771643755110936603832363320346286866325411872217374617183701207246675033098282619900330899636416303143381967088546673935807802584435760023990393054732883709798723595982675399513024804377764593424433814745681231454797486597036177946648846456359275397176084807160476112483705971304407233279297757914057192333902128467122509736911752754276435637001491881714737806710600736621039310748914731782902563693051927430899978459554589916784010777455427806906302445728215963751116314205872438149335164505260665387964391723219012020569598196440930981858693391262210877101271619113940245282579150031599307368564570990220171552105874852795435346932943435445819998778770231476590823868349608674165622759953324784425661036899540251953876250300435649495634550528787990933245672690855953676086421862384770444889882300263171218148131327283531814769352920294246156861644783150724638051536571832794233142073207450378425039642305152267213629781715103355199637534602415331663363132796712525083208755844295146679230183401614123027122036462888705483017971855254389783138168250327526338370640276513969526375161411238488303993328154866162487340915534473594094099693774721646991192610493439718512953648891774090075215516028923686123037578353752945039537749764824598631914580198631426885723329955162468965752462378481316739570729207691395909288554365963269017772520351164219259680459479147558920391919283947432277608204887357230271334312666297246842577179898602113141314641839395257123269664654780470023735778803227764972956828386428346507881186608376916157973464626455895942454924085600878924696342423283920513859555248154768986730897966592436543288811508848039749754366786453394660386896958990283453319575820161191715650759432630972607646500185567482456616963818016949885337489286890669842053468258186598324015476244174578504833774915255900813682719386458097731731591391203848641437647836792817283535190800641990540988558702566186265521479440958329067516647872172111710658811348814765193063719048087153030173145952802122500409616760733495271587517467200892464210239572005206396340461186162012210078849964614894265343801726797420302563907718764680665301113238354434597734786986883929841738318391499654036270117746596832037485440600648348238606630588866581920629527224078805829908302183996864855408488933205154101765544005142259824326138857242546178772895264624654611995422490563421461743972243356016322357350671854183600676060843338607617076505478822902394734645168061544745878554277617810391921552220631340155143370025321340840965991491754722670343451117354789421257830463313479200001147264919296861205811521717737562167044513910354276131864982273691811946031987319214477661613102693532120211973801068800155119734752662423882523835942689314434872121809160354767424989709399437129470296148158381409863956026522362929733480006331599485442007357110100551327537366873724666481664194064632659069188482411766598549760685247982035385771610499556616071212087602217107098382510062313264175785383945186797864370500475049055040929151405190401089130443290355474582822515535952094966237933243284913978894684694191457068213144430314493345444620962167293436591926228430447558051629970390426425632078940170893663420266150626280902166596357059950250867423465931865011489789464362924830637500502499569728172500200944482780326651746612213288729303692846837640447170975723354381959608249214916416088716099366741224754717058354989544941284549094440416943828960785486556829597602136216143481375580409297432387579414841686854171189468955871562153679108365110862982488327796985900881168599732406346696598552388674154311193352190366262317696207699944769655825804221078123314504866693461709515829435783947633792240712968692343323377417484130631494448861784066364655918313296702364425432132778754411996211781202518566618466869973515789701424492754683586812435943366998610691180123879487365430217827181396379183461264375362917361135618016484144962582272929398337964312165870318210417443329146529236445523323821994954112404698857534950693622023989054212492441348722362718137415999758977123389103545003639634295602727984418971248206745040113050180422955326028476137950703986289442715330090473252742170836345337533009443192813387120507102535760955311218065492573725740100670282959952011421066259701516223397218728240512606654118858190749222785820317061773957079007541007339275283492899519517180470492679656742222572267697630892178862691060686666390233720239325924694741723662951785344810556870725666023070690662034386373871295191333877551680310349700813768681426713074922873365102233136404860245599159749688197844691568191445404108649535291292117964376103878515704809615129842739542112518416774234276736608948399496514979283265302217023010282130025262215124741038668078662626632903060576527270121016256338466108777694258670697679212163888631745458099216077000808701018888988018988852491586010696749403745947623381113343719581441130899772248782822331490832864050296445236610659986066885793615783663097446819612451358487731776593320472182616451129553628188855801229651252346818754678732785007205049713693805827726405367727330258695921856834197215979665929232844650439645773066293356282392972086591055203944750877740104288844677318999758880549550895030282699067916752604495509853181574953706470525346840492010848256954973797486649282542678776837483441168323708217131189795718325374449149068181698591703508149085282097443155392067625033999433795958294703953011998283248160104363063760105617748955831735130843624793494672196399033031255711346751743850974284174630987679491209899583007111933173366974851253871515498828337961833957737106983922784429686658619811529976395139763270849240654690395162985401744244276597296124034313176195692719101144192615563210394156237178092788999953637729248773634294228295038550669004963223073517790076036049722145745634813056494108332878669192043472663924350947767933717375716753300554809700208761231056075998419561043119785642888675484705120856337543316841119147301751522242868051899140619195726235003568767497639098916599282387230597554614068370408636428412938246446992949251272053837716787032671651267028297792223648183475571465716717652307011230441541726592637208387382862779383206803570678520089670488422421034425585457582389861193622643108321255794334407850280760300013742679949771868728542293140234463592474109476635578748446010813187150822046614886264734104739061096509425085200336156548668403434062422908952719476300156461518218558720707778481937668350760425925992944259319131121485486829487835504377017488046881058063560068802352385020753955708913868236667254789931152160028594506267945876669231003329978156691091017068894872460059844485296105268646030822995253572177469600887315929264039380326192421742707059342374825757311549423751584663318499015521591579195845088016481445710141328447152296371702235437965054147554149553222800874266264430089849622512410868421460778166208542098899793739686700197281845718298747423785741100782154251187972884381935174233515347998928119909042043299313930114880935431261103805254368613381942875923124085540407035219005893322754761597152278586148830552724945008502516575295036686449887385077473178793958760102177129170687735415038924793057832125582703179420679164949006594500432330595484820338806447945204371100265701789367221620127148158042448068224737159534479678796207381602556446533913827420060132828664672372282453139298501730838474197116039354671132283138328601270406161125870359249207715688770731599358701212797295320325726572209797471741576991579822964615479482412109237909265400651325509088775351182906991484117658709900191528489842429331823015643781928721407897693640294156231242658356800664112373526728038240550124385126732282758404466112061873666650637958870588391878202863955263285582624661853484798973823785720842688678174272454361895427285358622949697779692410086741202974796653236547103175374809687906196919759209790234909510191528529376342714417572331767008074663403538303010001746786498581752454249720260207342562549297328272519871273329250039535217065029580017345689180178951518191233131481963683530067697454393608536771289508247513955460366641499787353029255142390456343741525794767784910293384651733402653141994314905985388689554116703727995772657901376829559073690794280643230705527447966227730311969107760346340407758786658134598317558900498786762754902621720136232381520651684592433798759739456768151977699284939972916896153745628552803659022075967903539781489451622276697294216638478828656006657225058183346569209842058109318285952254875325025688892643957401353107534666884958658221250475869869946920249398137305730249457998926312157579570935468027156766657764553348280887451546832156714801342667432144353740514376163087981930228103706594723298973300080343648358977044982995527411269934922430434829350292754007670327823053522082798051393872040956418433936606867485005796350399089647527882328607037715076187619273042877551313925144176694557262531504255529011879150893638220134166642142948460280235797661171829762798604942140107981150346523752323323545822228267362856036669540724528192492511485407287591030100134051913766617766237390401667087084561818022630441086363388833810046483042713701137802000963862170909827921360493266259831728174140898037652229912038151395293829991465354361086581496213950008687332941655768884479009745182485658342865076265699479644137085181993055658635950939310707927229130347279403603330229798512547111354476366779380457863592425940136047864909240360178699401275776268779414782056135387569128884168619345689860786604293817147469098968504158708681125286109745886096852005034597932098921640322301619686257949528074420942476542662759709088028843339555534684345321464021158693825356997752342055866853578862875359942565103563320873426555589064133007450334567739849712221631266419650869854355254446123741946213905673372149747847916228707574620444495697693234822661479807099755248232608311388793777512195292017269894510547114613159357839041813782541807475926276207526008862701452597639366107518964783134966881700403178336139148362292657839100342264976985474042455582033039447814084539622604364688213613931426494911537312838273313140484086334309905128202166697859221409331141576974239716834558062892107052605337748732529569855334879848994412403860992083729488445518426658815149263541316393798892872028806359636050500167112556703033527836337895771461867899621354661642718457241344324890734626415192893126436429409433199528534436425711859378911680566708084021263686291090689480341600744259187182206596992354771485861688180264602815906736368669217608379053958158962499753254445612601872373012219786454114652259537510651109619570059831336375857786994029701007968648000567310716457508200386702411685785129848906254940065504175906394448764905467849587870002084778578614076907203155823947412476191505319296614219137802905377478132764463609939343137482679080339277284168711611273706794353201292853865052161965578278006624952029503800685040832424846737027891660560579203255996864496884926187909847440877596726873025783695838909375669385146449188627037038571208062829621084277603000180219285785323358677481860977054531477537646236806036469558434643767138472415028576744961679881719630481260100723699811644161064780443589577390367229758160588768536803120301744396024436124984213913474434009265844920179213307239340124964281206697996031295548262464905995084228422579453581871934091952952769048530001845731966354324796202857399458103853212535257201650015603348104784305286209616139225831776213353210981835629527207807168391821361499925237782821899150970900821025949626503678583081824399284421043540673691162949709085143629166473249520440451303418459882551352220344131171951270523717197898254479173790262488762562781386042114878338441546649324125452058530765457975821020348541006915103826111323586177417622562188415986643596472010485515377761315939298822245375243541528691952552071232823948414811565500358790759079793505014523940322713833687163389184992631432048010161785512871799958501715808096525817756272577395314969594016334269706712979763033457018505565962292000639154554991470524017847803303073172160766608905784185611120134399904323915527896846695873450500464784106043244941757432220778922012989775267455860116229339769960340473245249672086862709758140714554618628747872117723370068390832328792768809669017712758362414532744836378567659625613031492181929268039799656898548377220692822487114136488891486005753838119032365351924147368267143745972508050072806085648090527070693371719667989066988123170269034139674017258532967321578585103473258225707586805289996940525984546712021290973061600253089994320001744463152152293830033000960365704471421759200011205125110428751734896744677107106171732654827404797060110269009515641793932460750821541317228171924831160976882623867727562896021510948637082881387033818562419037056296963513883721882261569851521510133523976131165966820552175106774023729709851226928580006330162039632765035039129205310667380963527089366448291820955808296332882814156213163719211905774693194593715900513973395741162935964364715859018128217101630989213599657504158905699339276310398221150102334108807113324550125844183107230243644885303187520243238148170177828732837526475370091966227191501769243828292733857310727063789041430833563439092243979759674652193929840750253345375037412923891547296193140116268700399929778836842246439019385956875033688235733239976063196890868707675589491697688558905071430684130045816845708042320667363594962350160791470147903819427746232459351783395517818749897583381479597230845062365665350013436133144302563656149004375691967586173225530168029209722879911387200209444243446581390552297615304071881540974589017151413978503955845172029059004604386106745845762748257651949139386402947666221623628809263510626845820887494130393447617552781526296840270635380354101881732427964341517433888794367746095653663355624455680524038457939557144405456172260049368913585745406645214975461086418847711399263049701042391183600435533873114461467996007985320599725659340901057969992325429596437736121354159438434299245910727303571773883548709120161198879398434434462373344946363456222705978750264577325194544942280700926541948756498732409124171081880015363519432820736870543796983805281139952881370560339322615270507086668993429776175133013990794390929736910014148447433456594221037056570999755821913733766635931763285074835412043990339669049553500645883145450550801616144556302447705008196541703504940882683919678592470962410467946086462292261327557831196629437107597860719679012314331600226338419172031131373880483069595752370912213705394071552449644528284594438923707337610373292205780936717215272169068495127757527419094077613590964524850969550033416931462606084076919177474542555796238829479934176271491714303479881315529756523916404507260273447429524103082112735758195947173599896650146956855587933603643951532430974086015663348806285148227527855552195321871215808266638286297736359882533324280477451206302884645040625731004355184495586175962840014682868185044633196059974899404180498084006102533428933053524200865055599149173704409504502219201438300368600416263050605317213140433526716493965932041626091371252660674933332233198210914564288735256025013970585052913230398280566021420332807534201477864154536319819392035908942260052420619127135505325181462799330473118636499281160002926559084696110844329076853211878444984588211351799964788238996893800463968683910633300204278571567474349736177831611274171646242316260879861567751148677428802874766400572202419256992950292597957412080657337342405975019996369366005885937024056545050639489199629902144304822006729137189175147446019572604776683346576075478247617212375401520816132138810964974971456942997141583457311408138428422927163799912517049977880588742959356290610099860506393710183132275908775949511771347522223726652347708506944968579520093781307513005105973724240813353967894234203473886626897360689083354708561026225224946112192755186922446592418477199987030491421003062861999976694950229054155160546420770686259682714512606378397343470824871174506750304274574883526486228811667990615767528111381103412913118933406794279561989065759472639596255949173370305359336664282005763388219999498179861128589094677308447713106757990722304522907154209383769049700229927218142596277529593122505097913457994177102915144563971160054892165554152965427882373593911038056957154477924604700003726513031849584391706141173587313377890179365578379199880779730940796948070011662025366579316815813191741531010934922900728536173522768137006036336121051347586822598116910113811008542120524747953218333971441010951030839933209500935562954529622890714781446687639946753668073168842847408959983292815138053971342931133193420032484521999023281603475293488163846332408662779606286359542286934924204145046075139062526201453590925505713865660015706325819791118244486976157523238377739986297638653532406847032133865894300686130103781381547464920671105452759503986089139302605324125502945348036180892480568362824883245885721644102133830698864312401621190331964943716842354489823381753680109864578805300116408164322975358052955160477965080233269754731657391804003756769250793256491708596405505324923624866886525374608937485539250527475717540005488145646124999921038658268196278320674852652606755120674270838503241733391729753178624201971420593001300789869342976710241070103503906521682700071612544408899857156064396299574456992336099671650356283095752938428021896706419347454175203830033532168608465610867751254297932681510942145596100991105393196175409855690442571009435842355474723010772242862128987278146882086194192280065264633682824834919557348334427365561709950158751599117569946680884089593150276648287317460558332964836035315780025459374151861187880669648444972307996047846647018354178515212439574887106931146213915695037605605884404042289017253857639990610291107041674737947186328296780045459441680810252094783354247025896803109305212271750610259926043859562631501829218105247541955593378956890925213088092987873449376376220201991470365327601694417562113430825726979324375580646740179836412441089419079135552756719495463746097274441359287605765259942393183486915860959999964456548376930186381548764932126946854486394325990923602538379680201731961872719116689165495827476737294684742790369546480574526443774199510007279928016809697920316506791731002332391692678536604464204641511180163648408621883458459942573942177095235012601077110157538633340227088229918396514415672489812477399364026374555653063586854290636697380773960624625648583299964183820850492023358900957833041425126899010969701797202851889047137313276559396316951632016563840073970957387593884966345273967753508249180081757812100787305422243448433082342295647154506274371227776872922005781219741180847466186201670208334050079388795910547760858148435582463113046440773845401352786829577931030922477841709207476562370224623656830367739760199672926551202591527382379040332225208489199705331072528437511454328124525675023021182260208963656774915716513882810916327737702535737588608550058830618368874187966507687303559161737630791190083285390441260041411427624625952467003829759182679285296890386816570727323886598390008566752611042032001838402559569572092798367226951834267220204506679300633262705648037484940947720629187066829898344176348370249291961273573883215547342232560543359819274842311227490142041460357150785304905179073670153515457037262601180647479735723091683831957978364857094762992485904367547184619492518466398088572168891402920858493849870354679607775653156628395202819367847774588350375302250682700062976443532527687129314714892153682034394802739585082975544550485536072335398244102711335118777450739780915760251034177108437142859155199059234315559316534652667636557168618126054936039129236098374896042840591102116627635337149840650524152685635092194531676191108623440768525970413146095244374796296958012204241395075950287860766228921138826848649183171356568572904399474221108033628145023849590215671638102900468029556623807739911259988284483450471194259883297630738295569299292922405495255058024302555330801081401904926087773964035166165523692515519739236677804554436114319911262426721906398395353071022689573108538245011664732607190726862251805783518699463798450678530577330539401201237552389912280205686995835519037070296736955733809292873698008678787663722992287030608771420830231937714207424740061168597116219311066707555489071650521842984999679550573288191656413059760787617468026992451134349953559429954704408306864997923045619310960680335895739075071399998158391558380940566799578513097442156911341005557124007833938540721885943321848860386163952367082803941587788937650047151634905130989393106841579049987499392942811956635389111418175017975626330854875090370976845412443245548943817130868735589161477145281761724154992880097211966088062578427999728148665806343538103991912841673329868583478330966392706967912742438612499346294864476477345974622376864451468050123723652908488529534831065393444590163356996017436573439902247151457885686728286240768221244091025389751149567051934753091264577057780845752531327880144432746151308940622046952924474489057221479227588955865870427733304426825874738072577445656108439705964057280432702057342138774691093002661471941151956955104087587325413674124662431110371963040259815194611017828512425952564351899319542112214891738750756176812086529158974493781682709124089022078959266075187657709878627794447060719247383632789976486226640349007693363576788420474809815300762308738739166038378789827924361036030103975737207678077402635663673736406379561560856491194678278321385673773708611416465074958090543695006773755940488632776319585861288848697193065953010626588993124031911642226129144466151213377120244454057108818594228602152637766934654991254446692148543433415010267796649365974696187425714151077165350429444459002560292976988566057627777002735157461707586787511802781481543972306625106041619940263408680822096793739827688200001443618998871852079976718856381405661087519462487286299423796290086908349701469406056199217276684472316998282388731757566457394006593510060941980411190403669016836606320343105199907104656134406336241443932685321750885556885125269237519284702741335144285041233974007329217348205830602942527761762591108224733701936901359953730544219364885086590855620728299728895760511259439406231628067354364689656423592442758423475826253575301321826321713788109252894691069569921750977786409492825117538625561451130532971568749676210888830156633444037929094217994387419910329455194160343512858426433793807125584937193282283356237323681284124534242041946524932836575266328029692839756342976338581849847245453864101430720292862719518859094059810628383008259969640053850687736198280595299450368319510371894194578837367455790931731555503159574140856561002985369804737759355984008023486672917805089591399894767075429642413169742850899859356069030485105234295030087418682416198699599137421750779924857444451336417677246557878995992493542829145094784194820206276309738937632089610397117774907853773619809166432211011368286849801922045124270241462646576834305139406130602687082113243159393434835400081008105983112423174531235754204376280228040731716060594386723690732967864723997332708291869135329245807335500243562262117655874380599545605646170599761220271533085264732872862877776155966299379740385853783804825185829032173047569088435291380590706092684183655908654775939040270958550323344127334810984154464649867224171086202303284007553055223017842709091932288516206300338962309402432447457863372532742292364270955238094179516302572410795548517487803857113713178792898777453263827136757660921173084133654961718062254238278151331765497878053771364418937800896196202866515994137505913625079607134038086750924695328282238927536851138957121870720733807915100280372420301382096272026045960320180589901767110493638646493253462555010801053709130490790193329762632504589125137106779754500026118296768502354414377222789507725993055314415552513906174900911235154591591309333593513107778603023912512257119373218518341072067363395311646049489633821231109732661106328256190834499507812781884135890772411985458010734032710525107933363878663844694958389684729729480491096311821309426307719810268515070051722580948234731886679435786617429656291314288944201827110935652882595754457751919090893656086153193124939980556334157318737843034197624493280861586384927157553848285546344676540758591770567794362652856510711041148858850005130361009939985690970538839843367645382522019625126425717471369907681787796652197542241194393626452881076007132396292470931391810986012676803598621363904556858437480120295006844432733659528531305404525402197071752060552564871716319345491086332709903356293602603355637704101031336236358196891110152358758894606575992524838214973783118979708229535412150419020070348955910323679602816194019408318086995960716819786866585926749448018861045066425972995069530743548102809517420335961029724035598422557869912144271555157585292469682257267788719762064064265876690131622475109247997284455151191071784493283243212195489722694586534067781933611164521784661874650116188990493246341035908971617573510018484155294334446693082132842074762989481503362303979908130057528499343179769488139062676572991044250294438542471770979724767956695604467291103567542226099409429910622345967293821235424518804643343553251138977014997972817921095116744354646248495389385612901248130647001638565953057897078892192209342803828486430771483934721462807404739022261123325745568683243659173636575292377689607437647358090152489737464773569193685604041350419263725156090471960035813871391535573774272334106671522046421721266548358564554422558709604555533402681832612612346099478780501987638701988197603282503767992581292631787810457400280641690079292697160493575802226644763020084331954742471148214139570920961518944217946999901458379717228085201559572782191055428885277266382403681046609941537614749663232786641959282499860012442605389199209309117412411290284521482020462786449826585893917479765398959827826927295353733962181074965523683361407261199796620821956942365887930707784443445029127072364271194668393355117238115955557687574546588447532974236795114856219129928298514884491197950714935427835178192388170225561967667804393543672615135155914295657759689417481588244375279567849769032677852999589781271954902833540525112290530801426301953955246752128762798120673201601418112509782926080556713280623899485874101193784654695650063381810500839405130786625207177738106559516291434000564472593586391325465138653581296976951223285770877935074806970082141304823416498803134556962993197474093631450656566228665282699645954709819598662148677378405130684473162595926909213439991093100614704062812485808101160983215046787984319534617901960054272812377628878198869301346650528368454775805752026420301726924021025547114183137867734125855484133639481023397551837368989398949813549998132509623561778507253725043842254549956248677792455923156960553280955228355563009922356624639067617956681866711471958288433843901955455978926154418526644024966152870253189833123646795954124492174451818635082333517850498815953270156927351249044602475945019210594750058817206644236747293381046829553344513251060688215187337995042787507395875007615718978047139798947564123872418618892948771627893295589807161443642834740404382717759658530300441461861250433635788880128665293111636648326446397972847571235814802376230660336386774873443642305332104485340346235469871182973481395253617102189475743653137977191470092364018729439257418191680291902163760149756722277697185501738312859410255397592511589769306396224261165216706476630042305968248655782627213791569821794166551285497216351085387446376850454294109572149589937970489888070010260464761766955887035871945575753609363621458315472243084600380610463385541835008292877365292725191647679990120864127508435003685010555364594124022808543782426385187717256445210671196665479967058364080199982716117602719126537343892172331154274464939802670157097087521185223029193699812965745313868283218447907567887333562000176457371464016560299509388948395267005654323208639728558128145372670546006597974134859963494995727713045972058164013590120963712625074297491358409683812043541187450079256637035080297822311033455026087698947340602606603340363371805997740113542796523683748585042156168088157899929503437235123831293573381792986684910698137341446530403003530159432161721032848497651436427660398538260873863024890097169435006115275588975768597465970839684526548810966505812436216015380952032326597987250973288205833395397738959083461955089909744062182467289897871362529604435053359222286734287894969679354189959054698021805568923636804656940231265965983541376587614475198813963709161654318302175731291412747998844970161414655264828134915408270756708734385159968858711424003157332393092980175573863072245043041591119853409621717239413189670344420825000558726423704999877314090394307592650459712960410017544602649050267616910632109414725726619238620045265992014315387522851958814713585846572715310412378730540656116838964999595067797907644076396722119038908467759115264827524414861979024088632960343850644575186276661635060611755844608862199824105149478411459424471202707742023860100001968561984515562226597564083684404765176069568528487553896778303814850074977590153167326477765711190206556024224330313097527601989608109714721412324771430842493717694404565409180968161092859708208086954127646946463826737196691709943450418069817524628673046908657205731852079473624926379081944934723985105800329438632124137563453620936746737505067683003842580727729490050618336652207804803679273542462079016955701160694867735077255179160880593118245186664603196179397780211223519822408908910487122331433585679893519550767519833304611135803106004214106321845581352273896833126692835462990596602454144503401935409755040678545282338313625958348754745450739245546845827280037896278902965455921194148555240375367374693445753398871639326849884911615421542625835993455634032092524390780924329084836332933221793661218154884531026200692129493429825809176102304462498998803110723588028390200699282730905876402962260390213225651726750096558215481039586774467854254421594339762539448534571104463562901094154738152748587981638608264587262641013845621932054828393579516549253271138118953501323776049893634656322166498687751397640935692774474304086822301524896559204803116171962045698699905755376432775305716647888355135269962845203221080625958634971088194301345325524565772425227789309025050276536339364019526542184531667774787757392403295263156136231946209175810672850494033038534835329384931478880515895131055738206297999330080681341196733998912370831265066980268902255025476668621979462462057004406322332536353193373707793195426185970661004573972188934029759446894942934675873765036698528621917588961522905420953100446572053565982721304402748895510722473434132640719085649588969008370310316875000357749614748885311182172589004856618152612420589872637974018534006628316940544374223991381179182495090564267527210641126263879993857590358399504056608346928417451030187730712385647433190017000702347186757491589554742551587804098104142140926506332774776904115118904054130346171872785417872610997088058325169873827851688029720790201216856834411698225464901942853964803845718512139940082582386854893776462799824635142654104353086001361315184798696417320794611479585107940916155624649732419769685584697596816666486980488573831905637704042958557627885543554389652510557318830797690577249750822218768865020803134894221495149652186982630522378955310223823807696753846149720286475934133442818438161904068525941037560547126793848301128694918423880023477171571646940436190927691013412399706145829788573760178408915563371602111116838250789610555432844626030760182245195068662855347501479171250149134495984066345916180065212831438077088921373984286259083863991193505596083035587307120799981392796181754556533703713869977578463179551198775140801265644836496378175532045938731655283749321695233824312236309488390724807128299594531776361370894353282408406499402518717453968569438870812737249334943725743164044556117370028266367753648077722749817977664110352921433312498816564661021472725975965923401115403772516920411612384153448321754361997718369642787732003613838984881286816143854183646487887459605701201036056881390519781543791743693954236590424692555459875357267257803758822523837123494900454977249267969006460062685764696826959438685913221154852867014281857339395179834250861017043513511862844559005713993803034671423130163173022825786924415622145248180160465325011986496480882286035590403331897215046789723812447967562952544957241711231915343627116654075515236205482343002733401346852314047717463858674229030171029069248950967478690400024357924653041284528990211978279137358979416984930303720269814279537849418036885568744804002885728793933840140458219779059911087663504754381564015474674507655740199123197454471580050838155394987433047060013348653910939974754068534894434513974522821029738317503523894892814041665503951841231564358440902348714170299662195582223390818141528124499597759165076149517915978972213801959744745612739984125372722407953305652364073042294334929316286873569734603974317591114110972685472242720080086446681646970878207011691486005004710443241890128886585481212517417500937268025927217019624563465280677391774551598724504698963588773658297964893645041949345678633947168937343460723169363149314633055164902650226337339947156190512788782114495133278881819369225163279286527934040835295938340341853169424306649000038528728865356624323813890957246249273333740619507905325646116281934070545938450471708349954424904952016138595851007561663755036409327285527126954611013608261735906346776868026818062666490199861759061103098369468040421330525736835497913374057573788106835356070259205017508061994361557156675496163969587507316425336673056795824456677111858784385205523381563923522749088478386591052133235112724649509340034560918173536071699958261559497162102978691982498170583300048608121626600455971963934568985244707885253984396323530754596282685115502752339261650998691669722210882487323411685579395149431998012906844101764316120517092739581448216637004253881051304068846999173518466506827267811678186821779898176247335016416026939022503094228023925242689757054287519644652933566208580891819625780764925225379644533264297061567279607289588363194837741191855559293612896767775065037847379943784493831499680597778935998803793034345881855488153253299966786717285729704252447168527077046401732021410421730042679201758138958771746806104717581590230201318350656774645618238328821074355510660189007035163789361873479877633306464399372000202562704669974394484742573839559012885418708355145449450328258935361683240046922443833120228238926451507677910273316042650794890103393715447073982128938314682039105937599368413375481497045576022747336481403488915414775360259058061071646963326057988424090223559133224451774011247611629084088146892514645929829246737565433009221511708701738696907475726236280222817763505393346526776475045140660780064106259897758234336642987503188327719323029560853300806106600691133322761901204472350775974518011476825152808974994772995900894877330641420214445231460655785198998103295859413197257821323069526213742865076736512868763121366205720701343455060114556366230442999870809959829137510758863073158342793801250012997957929078212886516443024130542688819508946472196222227876318546084690100422329862839703312844094588792654354095588830131138741903759773506703961210228811138427966718461659119715450950131707552265712026481440895229765742089399264575783393675825321405742469534090396562404118423607668314762646207547685175650068173235666762386873656058192534421254003834184528859885253633216145718301144072395031437061499470402575530552417645444986476456583105547024035620460725822302485737044993273094042155605881795818832068464813123651809964741209987445371228601927939036773342905617688097191974236173829890102368509123624516195695966207255962288097196496947156366367621050446150322350515835101673637163124034316264063411000663468127950413727344321226340579558777493198988339314489189594827676436128205702729191079839006808939165364744156652521681233400830730026984436863924458310652873864364712565394508685903175472435292439422857483817329730645833939672106217814593289219131723126242818774885930783384050580063112597357986472791544541177251517971509837074236213657052978134580550607870593199803207422004745389273953926266937109457929767877003980389003645024846474872989579820645257497483727762703366471438573714657143610037051655692635842331334636163788755747348171027550403756181435701944266477670512580135417912503620590988715754750504587454173666214366290792827515940056714804257707733149967277366557900865461508130693505195623144128174990519023313542862862977366507747620363226203596035799669648979774361611668636118576602639219845307336353506944118338832952669294385631501887896758808254971618241732542933302942892659347506164424742204337266491723428063002467647824514908178644408236664417304968923836060021220683839855673663925421630442611944302199502418622409271225455455950167844139888667531988456627375102745512994669783280037654830887308902429280629340773335296338389238327309537166333315119078319044558125252066982905750956647673678971194710169796298960273250734365110615641341100151679317909801073690970244113634469616695442344934620650869564219409461814663165953622481765426374624475529677958367779389912635924518498548835507250609261589212437629142503153691233689618919547674116798905314174086436580039087834138964661973565411174610449718679987376577374925766873376562318996596855584965288614956187574795970506665238959354974616382768883025830848220618796638077699402871091713546083074680948364626533716910359601664087783762890268193719388905553442408452113337890171640526133647774795132366470271285512962684068329975538847189469668222057669650964125904809414128935351784649999448996068511428049240903511575404210436216612733918045988782442640096236031703505496592347438918326292498438191454085555687795318717745519290468058663295720047403408825223399231621408552113083297511149430344827022311920709707128353323867697693833294028276773902305177369589006952753299155856705118471574001543033145875648398947427972265133182791243781462676624127060582843746406599893860482881896216223538151329053492964074638757075538105760007256281757767041561342879298992623029454504929893073116442996959186171942195817152640825789071341201578688904165229481381110260882533108472112438873198281790037945379987833532190677124473990602154079430184410807538275670694754790487886472975577635945015668298692394559220526508364782233192818163652313836319440041970135876690494703834032754478750562468764988225283937661725561423952235494221359385697159010949590785495409923611563375832661071759519029202673790495794717492231541046654032825895177810158936884115313489572926098062174107730139950711864339869827371353500140693947537465024026821627202730279223892351690951822900887220533278130256342187934937910713834029313284686816883512076074627315171594372470628548235297783698693399208751862438777426934559111048368088934481473913961074397312313717787316786247973748239683429387026507985767800486557972815342999860076493688468031425421724609837765348048899222313237134556063860407806160247520692067747762519001572358825763680168747827437966492751695422311166674177832327532580784002429547396800625903510938140054905060771722338239179268183220649910563229713751920768506783764073990060778939707190343606749234698406909079345958840145712207532404271651954885143732676844210528112273975613939745172786249680213583452521395889787591076991302444987246842364397585033431400675083995421215423773269331169485759492178291350481060697360178395860290197987719113133251350209959400808024649455227062615538693163161996613187748355228464917356599761640083911489382315038267251482510614921281185155016182638264238296610109367131275353731603277224792928769356425200199595969527106046063019881393472326501972009519934386920995097561075849228276104990244940611195138772688730966442015520939374474118114904671246869918007232969335438654635993541877009483463478043430678920437341248504251923126236360486793596163111987722869461197409137491310497465935035864462926789408463108718353915461487823823398698685697158104115407071311761018411183491975186603338348004570318375974344323064468638410848296638665245742493399456716705628603085416188778702922283804198071396088546943837443850314112888603664894911567174929316281251256846793802181500406705874418223897189222433283304559786424860116291692134118863125390233447331645241083019650328416250625584608896888432186159824881456825164266619723192100881888581746270116267922308112429642196375779287273450245397293816717488248954382201259206378519673765829803953938947344407106739180380452883521589719532849464281277242174836082587711168707794523571449880984834456761300250245452222551829665228366842337803049383772076183275775751946298104179428968713660025864472510352853875062751343552395857559969928758561540276687547729693124009441161067299648014392156564629282286700724479392759910554289659166948525156598156962438378302595907550449526164158038368335821843225993552108776989835704243595915566459676950075371482228159746336794039559110980024602399372380496088275820142879610808324632054764323902891746788864142270526435008999517097136401884719406100399122794704658141226069954226800773406422613801701800532269483467130334064514936982932049833803326635682850367209586540997890265071271189823638675859064050549421041311018006148167560680992329865284135575658520655258552172670821722495946243168145939518312510768675306129125294106801974568460734646267044566754912836814395994774597241567076481465806711578756420107442912158965429937137173446123393767036429352171065100597025697241332128778354293245132375569365166028758175263619655417937146729375543203626707991225118006360550889127675979861163314102410723459976695118937727098357064259438419750363505137416599657362446360463145362741559255646543806309634723991169686752492539858632689178949919499543751116879414901935024308513148562702349268769726298654065669303781046763302040369357440289344456567918366645977405156843532335055998574631382833338046125758727793954200473515360012409870631638283311632393341683821789139430528825065782448864364795923116459825675225167793563382887944568736542434246218640726968265534478208894958218044965792293720233372908126260706786983475445884371125513755279867549277908061081121897939629266120212691146854886138946400003371277596753166646236082236997370406621501264300582317789149218277009762891377765670642506582778390144154439891839834601153250582877826972355468381451028073475093986374635113771369215470872563738231983364699267207913955308812201963644632356923608422286715318541541469487863540865064420304216092283773879667896674973062507972457724809654889633499944406452687703543854018093537149726764211635082566293837873140549597268811903129676721553071234319163444647119128846537333982900463330187829193317691625588222723091578083330826723751475716842237338483154816492657224112865220339339112526942531942679341337673273001246706181810716475377481048485451111247565521854751951523553950826902119170619393951164749561163138101828123456684713468165368755779909932918663825933002049116849661126316508898686451046238103980490295592310952340017857671500981586009186767552024973347646912909891146045363202257761615987580798702001573158753137306658878230547957375740841786679586931042615778492227926244734804625548811658532309707763792185604935062765838753156294718421870650779871246368075481564935823859262190837499107685527327385205205451136111703505001011938435698563870826667871832494522139652802098246288218202432005135375358739142820882800953821625350885371770843130584031765219765086617633686673956492179845906467270749528895015176264288990352359677050749847852912764813680445761279882489573882052204090493893719984212891600493441237647519381781141953848506161738529810130859920272014957732234418490952399828590243410691149808554654968623825013440805116998783582370709522538363323026288261422854192493632165266269728577127848526484142156931290114669948216165674919846303109541370186121924527676692275812488986422355412976355431456636838795982263986795824689856057057347839338265210687336352806931694514086413453506776634939373773926990468797986575670986713554449716125708710523894754646173975288315441916593957374972033155223365904992849598143329595151315700255579319514310682259417204812009579625901499553434368744857649076303240594911344220233095504214572035843742355860668617340051514850858412396974082547414036685062069103334285995760154068400319654862936170185681061687564921443829850166201052985310032837646994355550470547313580310336342291337164569195600843628354936643337118826416239752482740653178803117102715048301519539948158192256642052182124279284523189799210237131983231827156362262957980969918457711983627063146402855845226661765010544489064461563629686580865650592400301635967288249122346355053146666004999320677108806772676568782726940019429040242802552504485998169057418085722572444282175801566187677844805581699830374175638500786274334322361997880827502846080292700606612287570312282091267116612719084950760144299160573524507599896851897283876554076956210535023201166143376491834269815425758248480804743197840722125408429051554792243845475367399424556321844556334744667545355441757050901800121120268583426405698610796735836981245819468040439248275934911115276607661209802714697221755694111064809737679801531388132159343836569471472215946706251329765687779540063777108346924292237989073725743288781550313824993681819631490650297005943038213338704234481750314836323131302655648090909750294254735775309168855328955630515828693111149787834891111679360743879621011851671232331802613660298603292974495928008127270224467913441521422113067009909332666974917242415814976262315754559175379997326584579326493108241932984682232728424077815031668409737639390832298292665279973789593967191966613503749587486415194757758646468239019727121722731445209519068896153088970659785584132046328646562315161745677859790660772430452152739357808486855370242534046659537191011553478997106087195972348304855568649564057889065171261569229466005352707019361640470908224935102325001033592970442230699006363716719646441511339608136719339931328211795691390363331426494845664323586581262152032941507050478630145615062293885860235574365943279509474179019449800926865073304858585672605713242368880848664038492462889140638709518151819509797869854382762423900722776278329306591991363969519157989745020597003597422920873600762031499752449364163003999410537402993473590919153566422000990370571689998167759155871990477464019774070013146768845530757651349991323837876235167684731611927724866951740327262096929296445120255323599810101627451276787650361211219225011363403219314352186676198354892348665754721553290619185405251196012839754698272836422377270056035521444140814976415611623501828074563282194687851524635057047452366477949918694829593743541098189196008813597647936477727324408029390547354597804983362444592374846079650203562493180462241697548571904934185863107589353011932965438769956016499550382166734710673496116200354438157770683955769261018398635818418176893453609020818259531911948891354076727957849224053264482925564231210833208526984663211979053539371910458189494879738095134226571565389267193017123841071618400359656842463570710134832447870417251634064733888897664505722690333092897552965460344588070891232891081954392680261611089010361376901143255988116322264745063758512808861999280596945550317420008081151271313298966921005992059668851564591300811268118849754621105148198821313165665763627160516691893150658029028692739689893613454247301676949972651657228687043152089000573203033633200453426442283380891668561196558967427801417357462585535487534967042564689256403428979350635474926218096986964105538614124542990506915000429895170775545194680440995112788012973203385673544550206642985574468720899359041312956774666196959474535021707252819018930944245202179031430038891907585576049678277574588821434987002408664179047344432640990948352506715127873819486197356782656147817567190631798363184627536718258699434823520639888827566128793130283437730314646605526045801249894688966656552961231558065170850606865987812032268556064222250743580831402771043714900202358266809636166960154903835046581309489066818249292691426642338848544531728815137115664234103984896589750277879206429909399189644732732827657387707896107071902994611783095872721008039062177048563351044674125918620260413401379496762882987566013733792191308208799558836767521683544815935818692962247782973717610191292276713868753843449158484771254849176275050507682625042089224288872049756311177380306168083565430868932427113153017898137080752619445591983307927744143076773445911196275256634846281651970185202003272763274974745713010440577348775702655169052783689006918196948153418692051952970555662880285450774820618205062900262381830000743021263619698826869931043260031211919859736708613403625298708567133652879451962079467489777502802112606666960457115827790751244856913468063574597929750951053595531759647128483801634683713872949808071650346665777053509079359841995409545914015499991521807960165979716533935477933142596930706807863986486218872995498610068933780422813230071728267431947411910925683013303650710034326559669578349997472489982804954627556172128960482557522099323653639795232490891128878619407353415951617585572127513272769892441268182753860430968650875260632312488541918488906021858104694101920132212883051050193253735189709742474737488723546940022184472850031206866468844038697430696074267310016319484407755600238946147249261439877892966996702764578007231898754941142008633415477025807335523174567097033175687843061320249228080319366792360013128216332692309895207202155188081729877185270887167968350789235576248309739792925974419316460173200354628452861984280320880941452399455516970618105320037990139950981532929192174162777618498730975482702273888924374562603249810031213446796624345481506117769614653399573196474148043020076039763862625148902886720713442648635855542691991026704255697150546068699839604188161791262938953037728454574662191879059898608612770752260364890025307135074609330678562694301890091910123864346969846124624366838104432487790873968808626166702346019881392725777511439894384622225751238864853839072208887417550807745555373002051059376091268129992143527265533344358994365156177000003808919476096219425148829751998074306889110718796300034697690752769973867027706804918763349287147001632426589385829780496992967307862016976500938854304131516281646493640753179786295462544725520022575638958852100663403946349228328160150906513261611341789813677300166280265260587941975595615442598416334664858192518868646980035537332351308303332568192355982287474012999319947203337599375837059820593483821292295756993086703051604190171463597895371596198691218092020319043734980219565901806225995180591684081793806755831135617584521698117667718508335697963053942222618543351902451973763178536424190241756619775250861832983234563232700289834392682255389827265949129150871590589579825173976132849741765840151764986956438927615205811257557981144461377395921383289436069101855016627166423260111228849422904647272514061082547347513789050030833216683116634443814566900639337438647669034608210490534115939558130986065495965338654857253542301409177878966713069699069085905274580290030155203585768495309545567678649981632041585217508759435778617596688886885556859591653938063988436050282237376746379247529213905989807237819701913829509900833278704806669844946006316084439263367710100837436585577430436081678443777299107148115263611495677738473430751495891073679052202155120639218663460081238043947614445409175884674373460041212001055623336386714598180179740823793376820997741026111825115344219626123987942132343461716078753839644220054092544271880413444124767181120644849133562141339036184460115745628412733000057639819600641234018951938819292288431656513421140586417793316672196049288842058052118719346080261749581107171522894891767977108150258534433439407261991344601173292264405238458344047657596523455491477026433492385956949359285531019582485236555567464601770385597840507034809558319088948845619964086369720909103907628555639182194277901332747688310435069835911363400809860393888082173412012973138216531921008025513182609562205401071131621305019784879979178895582142281059900028249021361255628515038379007991107012985293988707253937769952035524265127137043833730370540801317767382119220677125275387833955752202355636472436471967620595203025907688982007877639884081867750461359071584649320523715703289314093205904638176222408938811669823183450985980829501893211214325343689941266164601168833587561928533377471082767348956561522143217574886764540925336558557459403594201534514834942990358799389684372213710821959965692595951406978787154459239464989314098181687183660238358869810462646531325806168349362799664035089551085835149364248474289107750289475554919633484430114285364081856179181425011241144275720861568382862862412934369764848594037236278195487628665623825268817342677660494747903394083571991514884708733487872174247085529569907556020160787660435297909417748121917253792162547783509053375605058824670159472436192964427000026331104265087146128644207286978936975770153752458702522462545554328619297899903750003752762416052886978354058056705209334867728013477930140121891523773042678646860340916207142069622796609324895553621187373664967987703556603643879329891442402512651103090995574833696318053571919101263350790228379582365528971827228190057270650378688960892070024837998854205160970610748877943404795040118707582119921355794314327066433620073989420909255072250342447601157247935255863910250236801661254014901669532158063735336975463976878754695162940419678940052722204386671398865154183926054488944771572616965095402162674236324394520509551946817721914261146329554957285817773454469101379538070323443727653094963370167588771132772602133139100067890171027648850972285655208429776597136080126960386732108974081356244220892767636306324673546805915294683207727826063256971620251110825122776309447208314940290991846900955035148840729456504461712360914567309915952022013460898790786616792969152734954816956474701186471850989920924809493653802231050270254587398442845999106801068220103684219635626605677355259957463382852377389038506848897299915071132676714417724869541161874095493900776229070270827867799013303452982743440811554450540108991384878075427322481550342268274953550271758219764891129714742182136658463333863707690173500957267125583467580679373379982409408558659454446945897645435087440970580463400412613313508782617727561150452057512908407905385101366578969428066339320966799778712030643849989805454165925606760185171921207832025064261287787565751100709411431212192559071066499799323074386069631650068082694598398999271011420958063355676924385103614471423034465290965567753155246115510717890824511902135603225964495640443752379909362011841968850442850831041095302124398101545077783613534529244638042647604469155576293937890384486559988013345461282803532101466184090843354888506715478646354637700172101107785100511291608653941445271850970805218521162028092999635348866801676545156981820801109582667682563154359086815502162596390779470244442386303378432954977534348841726901904477011288855580100533714506266866210681407118602398977780932431348118562418672898224626063128257279305816479609070530634071695579297629731576332883196069263441481138612368097232598598353778669544647295267087485494536039404053031492990160903492550116082844082621143265860655153826100166271984012826433628345431183238740007187225757918543597918977417872714811233081260175185337578561624732001711100144505943821624584682501379142286480833091248702864033633085029533530863194028879816696960476543149278553286246855115290270545902816660725981339246530858152201426968156471679437246105223866256361042996701966736958175585419665714170530839307394407484914087919144093607504855728004909442967158002965825430724941107983719552943254345181922896763554119354831031311535978118278205233537541673349739105754810743979539828764434720117731855411757970687341771326145907514142251961366231137652668099200428600376858064465105228317557107783475924120532586386511096616280039715250121358476665140456504089205527923135325312554281875076729300564961036116337149449984278546506391738842522498032981685335145518810429590637852941350477891280441979481307060821787773263371535224272037269189654787621905073462065289128797120958645885029877746601409823549021250118505445641915725814993369705978825108658482025696883387924787878161798263656568400144231195921672245832227741724794608443205486159502988358426703239973345725299110838721885738620653620742914411706864017199717282762316330121230700964773792119401306115001268154440663748799217508279417826481812035976554510240751661939725614655468118056129233080378536791191551155670658610569359693878000359490239236281858441325547958424128373407514810928179867982079314270682470910753743291932839855818770326809912129328386834729927619607295795353531633230726972346715689325607059312099803341417031420620789236094564519156666427668675151939569635000178925307053057429325057113453793969180234253472793122923174850673348698205851700082610768509544606520687537380903330457323993501558354316681214648479582578240626568569589517564743772670514196982438472115954050844660244747295450757731493653281976253202346345880626682443291543791733558521162803006903155958861423322887729245154626589732517253794527257316051805019432127302511985052532922362654449691650501495118455519136943996656996594930723279351505011225501104075574784927807810836334050993582445279183515090280973768570579034734384641392579629568027896717851140130451449730034744353116842040920825970285038646367117629694473920432863968013036514078548389059460614704171157064572133234442887122650150994637847426038065467805695393130617869091453209258913871880821961280438873324010306713179481713550752166600367830593351880653915722310303662548657369726925309225314153866312194925432262615096133683718821794016196121046329114397214127804060891843736718827239126455939321256520158060399784897215584433311945842444153049758917210162798783274843829050392555897571000936598566776153464382001101301980756814773080342802429048768499469929556970627023595792374182881326086761248417472214760626216653191141163384389749411563521729806316174768045806794399385317029160125754324711508745445464615807218685898724419821545156653528163629020447301958203020765372969836035414234865480942993732754124056072356187557096481303670349384534768345878724529873011995199511401494517016796194503859077386780907430952240140350607290562039981895979686044165409660560532430213233361261716721502756296997417131090181011003242000968475771103901974679676986982462652980248615677054312970132699940078194484799252644757201428657125941182283251533082955038811467171461328840649625073198323056577978340341490827094289913428901015999129909273576056610810575229383835763043905555505936756826723883684023960717596006270883135418968796445657815474549810633157119332083887678945168446703391119454233351541410879683532821571764000011700959603963718645286886871785687044041916684439904640043036323613496351505664230437354097641444079378704708791551161198767887938836121503844388057974106176584767010224066159162606119709156038515043892841555852435696026553282740134662138009258784403386560770263382335353548402020895782562783191342221150684006779260511953780333109985568746261534442593701466176767955259709380923237734976827483142322824326190000381005172370383538189939156708677181097950274438264018249519972115391123839761047015269456324028874046992198942215529199752853713664352261345145721050170419006258236851913226354381388161319020972524872149707504362816064379463897606618798989867083198286251194528115180007377081639553103983885627973816770106279404723233310451919019330606073246305323449104250824627935264548418505803665012826945690415457900099197049502883888051959730498287009860112360022093150374702330375326524187774779704427594642158659304001246282495204217558002977106227131160264383856904168025047633158457518361694062733758500971591109050980225770694556397843350835563979172623346446748649522715945746108917537130058453349010097528404612033001774245219313258308883173594324970954475642797344754843885255331861293196228947697130277886699721871635687734601525224947391006270675555254563116585032395327225353765403842584397853571698733379141923139285383765709875861723665623585803197497944467928058895666239293822745419161300958888238209932133179420361459681297500787329290594095467035654987376354786120986069374608723378793238844347087519098206414042231521126292890427983483593151003369779078393746779684448429801122318161160329339250900872773307388267301527334020629705111816399803071141435454698280538460528208712568815844257953079036166908968300912698498090050608266287227313134690457621036430987182902288474620661944984437639034665645443608763741991225842313819427539262213225387687940580523316318050618180223968666586517224365849451908878506751800857622629260514818434027513576358104891991655520059528174937764288052075419240467139378948807714102545919786809283669009550513985312291824164343805275783255112664760112133166182831772800608827365163103918431371157891518427384010496309594167276859557658444302656722205444971655261301981635332810849015897102859206981728768454686905420988577619330066077794143240388903293999543417636521965103855929977668377501642425340947518374564374719736958937898617882444149162294347099599322393416131086800493050180904400412096544409837242396967690467190570976485658787798521537550424749392214450369800933097557752485954416892119544713725305457884025618728641018372486928717887193840516444321087867771884342431425773094951448255985321214745648780843696560509258591355324620697907031958152998277798696789937943041383222330861734750749102996313592658539733898164779225758858041604370508681629028253317769547536230905415908465833040561613123097825511801315340875716079949231563811687392716724073417759069278393127691852041745324627359412845726786750848835859445183869063881643894420509579608774897563118183005823249710230393399040854267445581722393402704127744040911074595120173286972495690734111091794093059811522311162912524004905226152091294147881835352564246459521367553189976700326885089154198835900475125244291509823009091299341941779042196631211390418636470268797909608041710833483752833118158976528047731752787731079910383532796521647171526059533379616203513782384203795030840738199473175706934076407105443866404016778845828642171310710589692112765249644987943892609515382118924228015253712784356400938581454951540661282940608964464819200832793205723132721676954862227042684532368493890493774668821556774407428864514312742591987972358198675833535381704335256598422476966215559724388501263041834818194844164316617775172510133070013211500064775359662569923604915733732394539092328188745819684125217672960258199439909256435391011128020501962880550045301058250929529656447723777342032686083356984936386883887626756208234918597989638772194343967403008236070285446660127364380589764632560017660168372108869167406274031739668989480803646345632132250636334257623035518038460341874288149083434281352699265656845131339263275253730237381910487490039675896407530315435553926178762746695030223782241714336462983235211766582215357145717284402155101204531831687855308594314300662307789929210201541485517781393608318416543001118372501921713445544078619985118915018852916395093383577188684877689549563328934201261377514893001961375918791789035475978358194921386568605444014862881418960883665698585422489382842166646271657143208996794737678571450135448620013504496170574408710426784430025263047409455271501162161018813267818588655557755568809645337850648759586816116588611963619068315809584535619662777604209433947472110564270703564842925093136598241786930851414133423977409538185369205624025429803776125493339322187542687123195432654539891430806015861283523107025150305321923160229055730932137749455857267497985190718593378800492931419484158643896723765743474443414360700852271028866467361622449117156517224828920650524764031245964757205480360302306577342514957202264950244041757814153979093555411334082934001404909672768209403647976787456017311784770858967097919730755654859671229300848680338468958419734031483278514702197009166622477415921431023958079918813360553997812505773400785048630897191607407083700243754395893337768520097930470427307939874313195125550681731327923370421909783822619654957474028925359683770687218693319770114464597830342586050705059106731197501182921971175478442730721981234799445259135812566105088657120604945172438987384201221185725488770159570609542524714058065093588823968564776998620801652380043207874303091034051077398089329932412597346563292308706779822573762800414160059695942838452674322243778128635256337828504983342467618686998373063169876389436745581233690889936310803953129288066938392069430227515053292957254018265097626087993805195060566456767861655831000303083674189774844056806768750155370043830985897327562036790928568255748319832557086033236629151356330578637926048078365063054371336104402542986476950749469987788180238000241167348073486503404025507849825936380472641908099853961660658737644866237105626566512395135110453474920326080837302335379277826395545668817240880664327456420247782020028607630407305359144353118026254273161185721849952795477574158163795306758049271793139345004198288927154958472496827447334674781046146303029147527150521175618645740490400178180265627648971441924575022883173992643337351603840699911465447794761444110872051028672936379738443781302637541546260022259422131730989770708856376446220372338787423346518269739475668612378990118869739828031812239181514949114990703254526037956988494602035558696111634024721367766123228256907919359920635953402911017831490172232303812344049514184409399149442558262094047854658689782706282154275219651430063475005515696893473627258282553499412130113312916549988298478029376858670408925417324852279648974209463863852944902232331535121240871218019170042762179526660543683490175091136505812838124990780306608906598545419317437551379570092940421911423058832414121109917696956799412741887344051003364619882420187562479494613301017964020102872490350927532450629216004414646547215430777110597009172263757431942561505167292839410738112475032590700785203260873194861914316105082841689321001017249661152175082225059603655746021841355499255440767650879291176669202548984724397324173596538096203725525829444751096211968497672305359147494230315300996269787529280301611636353412486629951453488408540271937469011123552750998086682047778201668970492497129620344586953431442598528197067891578629819174893937604619147641791448231018033669741445204882292968826270085074476658329315323428753989613278495965031863189640416546550678992105299238308409927441370026355637441941441996076257206292541791897046731268285269826961283037736657434615050182006437131181400855889162456492622081510988034177384094622838201086739613581733902579580545805996822739342913984804597178147469026213286101216446967866862223912001319004861791082346750832828294788140843767050504365207453657171925423190475483039252802422674987066983744981279390779468869841533713472899724799649838494467244601944286703865527779909050100183022688182445744997632758334082415186859380418327318563711520217293516658147926974775113617125523956280817865649272699658846627436290476729170046151966650431960409571672705591445435504759264776860141362874886065889312935237366104994349387461593471235196742587075050696063793545683517788911312548996572465393863684107314440566360899018099641137731776701129420034848537366211490308048299091943006059911153055606299773904422476494740838149838533631388310871201754852759365819715211508949522174331386848476575530830559278651152064980543906445284179097635731629912023367251874932677341966412893970801811998182301573825406075106830944470981445846078342497762124832331043063137601334608261511263973324809916695444253506682115915091787322968846017754321277934325415931667336824383044137623596055740240784167571953749658038498567351127496965932870761953558914174602200611939562915799167060737483353063440861426932795426154111583598911647326451310596768111934368239090303608281467526906130078431101661291716255238119768285486144953818638989326049458217773212898028063479952745624289763325573225418981665597603082027624072312983643127448824087513977750776734525842817870472770375068737500336876114830672631213792144300534958280149335158802041512269938049230623182558840875546308125006636626109170249587294012921444593056682065512233543809260501835812062089304693895106568943255773312628464708343522404585814860372526736691501149925651229128521626198669174765311221393933856377145507787537589203236561228886108914918320150694250275230931444757660230581408459422616724854714545467788779216367278999832378965643633750586033674130087738173887233985367890751442405213692759315401374374230596158023317704367909482740696389869075281067331217250028442275009829488199532162819810290273325752162581416436620785048197412162484394121600928757438063357725461685954858558390702065766141679404010501773536051418271093538767105662721415459109023343079007230332126213808483883774252794537899757676821036088857812047777171912562220598995558046861249978866655173830217417830547672410317909267394462165428439112797424088733280850532793182952216385354251537433516331720168128340669863974094332442371753951284019672726299913571418983599771763974466529396311205793196433619959885893248737919172985247493354475820993716479818828116776639110799144886248905155778254730123655066383829710635786963677627904911136946383883938725631664927362338511569687581694645920307274866581828824535020035656874545814293828043965386267394107468346339300855262445320078246596086349748182886272379799513733502778403745300443684864040792518389711930279581370204105223126151379040353775050290388226164709307967727355229729308181012824817992256458137913594601339839652749640246066730278768758568339518893159446129078578118337230010526549706477194762408637577015924539224551691727365326139174383287540064786136905642345419345181158434087942930390198290065519301651846159872589390086547828424407043313564315886618144457710708239302491440401231816853735138056291224927012496982642395310034493067050576815577987979629946689735815735455097650467731264240907424466819867870726736484022213831935354555927860010801958612952412648913097795569550730792968614078795622715673773546164672803075367726296229254182240712393710052913815920351615002736284554068727043644563733180227981669461019428329058550522506084076164944103816872939563843567251844848759004207721088313475453059155392092515940646773468922459456467368819946963150014279660407858045777145131231850071635680167472594364734686103825644621987599555977250795211584520408383765223474462985835432990486482364335291513656214985448784651520470290909928079090076866910179469924744768317529427738192575317736751710214189731838569664998961281344899398404696922412109782856970565495853103850541504618427183189787480300279357946335551485048542622693739198901492895360650588147256955839442838871811254059948640296635777214594121663656540299856682666022585452790737828865348150248685122088016942554100638462912347686049129482713204977680302084230135205839799553329028674269293012612225148913082417751851595573987092629617742933218739256372017355358627822225532566957549523707769443110030496128425813587388788077263408616330255555663598634568502126776512523539820821131190329881070921712200509866530242529665197219612750497814047677921603182428472053501905138923327234868108328928065378685308699642105019275269279567252991616718789519033030669630150132113709787283521715517903629043823673610415672984159008905251859990191831860710422595519777471446316450085625730639988595804541740087166968142564385252333482606038944200381502776843632035504952764417843391335563772025295624969945500217290867760020227504223460080153497540903045158652068618341882802498918319728612196316201405734934173897425445647046699104994528044458925376926337176063567748472753129523484133894282134794792415562180579283142394927263979044277941787598183566408380790843105545041580678299268745385339451213743834816440348322378827702200761719461023873910968400724626245317714178728825877994099394315769338837834022086531966330351850610416044703218481833009265198151460225673211770863244199884177985491094477035887382728623246828192640500321680913213196089763092518243697661808464764294820476313418736325909885280110386226800795581644274384673474278298968300219953198461413602441884464494381056847809945405795109511409143996065013538885442050003284825274213951346185023233232483923625435988195113193603557681304054148617072646290264980522635181479354247842224640433735809719356022518643151202273512199740516596269439698353526091462520449792633403440278677498559596929891058695597208014289439424603548951357778020721990014461251346752612879785707201274530173044723086422245777376153646680411557473435896989317095064278768020028774241500647497795331666790656978150211250997090778327486254872921935241064286382899854858124594219490938959292509640797089026987948595930022810517414595505581596227363516720167701650227589717034031699418366613783595485532895081883174114744649872663218474382950721691993612603790303980380542368217953963439450008321935880906803347174132038284751593538825642533612593003063260060522648587345365149753588264391096726227290429340104099187783778993626692477570109343994938560017489265989602389025200609823368008376674342891862982507218752130004191607338930812871696872215141970734867221908907547273947580272336873706070557553913143909356454375408796019938175249591529035723745696442225120285331039113795585575790125437401258904061523608019797629948994641877191743045968306560480817010794152458713643536577164313544693778817133752219946537846437083950312482011948737464691223208352029445544305088457865701755348212411073883049665868830652513285583098686112725336805966002981092664026914256909417993554223155952566901193377082083239461989934141547872791689621228031696482101897304159605142195219184866701568704425029057304110325349850544610974376703381110668436901953810422205608017363188883565892467583542148756409418204062208052188112509842472406312397214714082404060478057001021245569526539086048649895371891966864233792936978043263847738508139347959795217292982479508183310249713821736496869169549366177633165423237943145455760474599689696330219631393126983597477753238704530835803473400595800770793237016025490162393539683950284096228071359648555359003917281537190748918774793603491260909239316489605345401537506125933620696110511895398521436088047146027088311081015006259946858677171084222240975773354797627665253125832512481506024971984634595708317765644222113202500994922853974652731565925023487450932882249912526031308304120703023070008067805061126075896160201475897904086580811769599349403530662943609585840814267642779441603896180806495879289932332432705510367219084024570354162300194221732847702307348462294593761154725873969124795468242244715795120855086028930986434598904467190445143338429574925583769756922145454696137706036895866137008495807165164957865171884873265875674977026478051605900825814453675381416075050987484514324760865408008968918508555463749626575874080210085360779023827634700133598723431051186949835875866105955463286960839645195170592645822169433869522133117054554114328844711219969290482329293107364141560327316748174454672728535485074693752983687580492347537719271241295198292331972869361695174277015650608136921276480949052045331797500615357955544612489430925115610743355324982957845433523054711101425054972638283307765984193321122387110978350414683584161295694964930080133289894475537501467205486457687469078196078599695087763655435412196332106664423663628463114924282695082835197825602856617683282326383697199472364714729788457142357105024698899452149524595320687674365246666611157036757702852197365572317693184187907852095867785107332315262961563891572259733685609695878572536257016683545685898111342982119544803617475979667691540769186305879225521430911619327560960032038026540871897354209250658262072852506357736919171360896979059777416534458326734557091330891771647823391927521477128303595529430236016663832099438917771206211192543136077272110286175384808583176294534288810387515847515633722237375285938445813873784714149615419747295539501015958325601038473851190116817633621428687640331999670799233678799248655335890281815701954150696217603772020012864609969029456362993862187074872894837512168430756151439357278615754529446022727074661975517257762514703078587530991283379058802015125031472025921726938889987439121574397553833968281088426623744891430343343504439102091158196366508354573733608029383439645938197553317938880315358018813051272703293334499374617118836744405511314928388579329093022574863313015642684491837872657713303630476203246740695607647522842717853031851355775335273140133132275410287975490122508283700803090283746704266568296787906635223884132198197376717631509913455839726838639037212291943380147796281659684502318130722414034475392784461111763112677501552433487171975660864009965928292647666439762110543103593029393035219859767557965597279980269354686726466987829884381552563614261233320156886662907758953563043645427853180631334292748778528100522188150988800437564868931289206195751785030329557152614509195465213827997239604437676583965940979652401404341911268982293298132542089458516919421805705179849353990545919380106701943036663368833844500977458907646434922945296376535587541514317721439300699344217583225500959816354377432869426488336769187907382932776700389244656160917812170277535525163649876370732840186498284358198855215696213067808256162848267939234191429261331693209937016509984193213128702769708617932520311446767498377008856852234016116388997645841135891056534174985349738360120964987104976990543030301170232439649190186836058306788660896868876901042525009459345503936010492002706319986610972152106559423383625029118102244667269242783071797524361028883706780087054994889974446050905931296987054526526168300642827870852723839954364559251669574192220762357722119753973602405223985706681542968753462432619301697417777070687775042258234446485016031500309987008671037575995594102504531213897413365983127869057521171911978509564914288211813532724216554515104250255608062280371351061014473545563308964155645207300615871508998455747997594053854465894867354470052101676692094155836303704110669959983245980290171755723875383923706597936738122040795628127402960973425716008234340927632949647149466919776340241887301178204955329037315949718167162474105845535604425410888736354721123177670906208099127745121619643027106238411310683987180527054351875050773833515911753084460230758851808949660367303856308394038607339562635693390132301184966438313511760039658137287968693009860500158399538039446886226389339891194129275004793250394025366766160154461085326819503684659508981104612666898078931955268010381394613227777710317602709807274690137318212096770183548983964351767301771722553946119049668399562761910012264478579578382487688616908614030250600401312547637736618605935036271243032611274897729168557931946747722999060300653644538673605029267130530264650362127421086257860633383685761341300959079838586667826389000555600499119549009156870569117199188881726276180731855852118714872429715587331416533529830036086433661322217097964867217592830383448931017647780920530613180203685938041404112230420733190848036247286938514007321425873268050005953799227663169635149122078503938269719786045114807986462110699273722931918405624791911352885041051901968162433336449324869217505885128247574741713781253977773751249831615409373925862262955606161168528944394512664581356073139797757335573634118144836039217094635436630462759027368070076308051598485051699392451278579048886946179907096386348484661656267581356253075681762081823429202581017706409114155865267229002604080244348855278698499877197295877294815945918323961081558242896776360957485620134600977464521649268977297192091709761973169710183670574576082315003526824373544931831013586354527236498388562163054210179373304993422551629432525541795076630907892022408528929364159535389254855910987788877295604204980897838761921368796551239872308102765621657514432040725671401264670025763147892241660173177001401220734707911073286486140985729279736468819283843064874331435678321602310574269990360525487609019623229061612025934532259356197703355367733657482963446743015822671923578295282971283094181461624912781130489538428025506073294662784293788169766757801606394484125926085105367636522313945456564905642173215121821507924587044509394520030733209271417222451377446175488125773167821891466093482333310887751192824862974232146906311544356189397693311048802297372808106300633372096277629569349003021390311755973949853309763936247266328877112922142606010985811986109511026161277931426310536491009044461614053465464381896514420035235155682060898265631710980648208745050537481992164824049323897783251637505695323900636038128627935706093407415506629400836673144285548011021522363132269082913800184027186819448763629165233218492770945108861501666631849950408756304478860475361422313774187106046543373393364419023748236725361700074744672276897794498032724762714758848742895252851658723079810518310234803032930567665861560826849175946026279382131057259059518117500699555674540121715725068198049455490275261804630699694844752590274168922949902193131344992756045412023904408622310896009898402117687292726579068342140988115706803249357844766284010712883513978658873956631689619346569131499359145931466618886618763924693359022333468666566307297337652065817331108917908804072909897727985634659102365315842698520684779717497912765398124365102208684113523574519256859327240805687856621057680509533371594332945028758234569388079065308319363174554952372162901837790963737943115464568826606960491266618773958686193328934673384545578858187150691160075183667484959335755788583106812874939147060333976380770387463723380610932538735749295223052793092097362595811339183440576289912742445959646896529584572811857541841248118443398758441196573817346013077402877465709027663285695196976120692480685516538863791777164362502679087209379729848579210481385364185556115922607097468762245102824187459334983208627286693696123707057778796015242127827604173785926498012178878063628994162062521056551625817344792485840166549703482384986364536677028063605847835797641553709784701387162700069658062375427311379071927710562131127435118833190440925384683331106727820757503386415163253724756796298244518218700365823014835911377328601245910604274296862407363631070622664319883709900442399494787586505442820030880678529653000195855171293188544905909709064901927951288655993515122528914856194226443214896905631472251459141864551963147296641223323853769591211356152070765861387382761476260858070367287398245523872462738169116057471804564046911768918970139760480774829168157802627721282981136827823330353493934304765471335133477785377681294695790636004009389764800022023786359531427913050463999944651288252119599258030377613051093093134656692750707672823213708044660642587404176273480735671597577411440378565985865337551270599097798240068384909979877799938148918172440894089110801128550955925703222092675731571799125456718945363072746432746282708324256988819259708462764908502502448347861463436620676961081336372900868614681981039281209845285967553985525625964236353091572182066382726410752194361201002894185979708979442286273615981492804824409248299238451845399022624405415604469210370637419683187894337084810532777019094542471385722957117163012061306579062762079827921911551608823546532512547718750971884708238640111275038192565401724968614389142283398507792311944606261783824663171313141587637962537731990348953776716035788909285509386476707649392251066505526307790187339675038698579462603584808077760322803556406750068945090479592555106002129936732228213068888160103229014338102097500111216992097052594055778158419824988396180463427969355969284731893277514453754510806180171553022814162702017156198671837404098459439106785593154027877138355075675930709008700820968883545490688952372343570377504615526720892969674076331694658860523020880496774808770802875176199896811377543280181247535283700926140480709203410097124999024450299764162872873013119738082818314609180238743385382657704534792806694457645589128083175509767707773048967057137557162335872347146117675758055692771789304467793020733012916179835735607797250358348573251777293463263209140056078466428263018974711375583383733678409419219607753664484179816101795891816789740903662469902402726176544077527162350943678273405638324598112953379530499888180992758603733411491188611520176610641450159633497156085024393084718130037481877297587195093653472245167015136221393052005641245116380508674315180045501285170877800194950099457138745023062112196675286420182477037866045069443188522248343984004558194099262526286820273996699895823237654851414130310833395017878843595698946875228244064270645533518489471583392813731565739443702621184165925248420566334812048975981151876081997446741067382219282418617256052389620791033613570762175050560647515681914005882989057732360702663720852023549586910089652583869758682606916835748470102147240886745907326157512232359061344485501124782581586049456490769515441237368110522846022861970620860944421991964775376083812862046864773981123173392344317509415599292629763266784859384983814605809801671330482868310893469154409408151783304928818831483672017619473267386036605711430628289568628457212834405356636862573630085976615946214529282455488603799021435940478390935265326765713954037664642592551002196133368592963441836258612511279495069631649567496524143903882437256016689939506987345608739361435336684037687142841607586892765399525985206711908721873566272909166787950985223841086273215878004147988053033606962206304236695308275239084589982561948088829198575959890843902589290182806989701160391872222186405682603008882482008793106727138696999015002121583269058615466793712904521052016650339773813403044127843578789960787081761231475905637159367431392317715328814849951955549747248137355706609952058409111534401952926254724910872200187341603964742518415087281467967640575986820789591245991442787141664543710884534483983187387178978199575075431963704268690501246821307505020664974118240538282409831688775837312999464440425046313908415016319722206467058223778489866113777225552263558945496136470516253514019615009628911348993130022539450236936239296275265310192871043189854282562478611186336832228633096197984220076070665004742918918171723252249189584187901871230532137122903506961278649924700129536434680814652898819451868730668528827207925970511011525150809007053054181949541351042194043456124540316256144620989395398123344301911461686036777622310000929007017231978087540758437389724684097555014838585323608496997564951262589557718226303419611767837840859883306751852644548336560441120334072825980311360841434059624402935030833797764172286800820015906605023816325594488994151906855329127809959521619762019889172077854295859771429389362332588262292031114315785521568760441199406197248026258681868445614621867837237267896333610665925267630988324263189109199001076441561080051973489095207762735739733306642562883927438181622551891169673859320190405811134618711858859848540600890325041690939294198680285177294034552596429643279539907089500436123291805408613038328256611057362919254432183114191220085877335442584935343570968679039487339690973735600176075262900353496794486230907239762166497893754629470005135953322051978241232031700037176044197193625555652300600449925925524386632111518806079130745863165336295124993522342049381019509231064979275928725366635336944257186956793631823239191812941527137052098138500437872978500570581212713449662244810615057124456977642681920192342635418182421901582478422401162072460708394003569268574913201938575416567452156123699429834684545887491880225709262300853567275274273225079639232306419300593831315544736303488000176237119417701517536717156606788617425728248583806418694515371741734675536299027853095300394191546451129874765784892208037389470725887890004812283182790210296979408406362046921035839141580535841511693635804056106278565641580583484985014438530555609043091923968278106012521363613132345936172072752790594223440128093782395645932373189784079662942204176004739769477698219720420070552093820043501653406792572644384390985843898497921529128808809946939340730295854553530373801500511246214895061911218064994765928202902353679894964098270136734183609015630978673498573294183550245709280794952194504498120559695715816682902387827291218331513321410656296377267464208035614818295751711807616536236055472567823370992287302254440536074060660080852645816900962662471827555061961829928531147742714254382808006200614154925974881804988482565816796911315533946609129393733649378814521180086052403049631582305986148067826040530353514215635261690002414340060425728149408809517601537266059006301225089717291055499167240458902157973516973328435608075305084851993138809129300150312541194277362421346921959370149418646728741419733951148960037709745067107090130110377638022404383412152868072643849387751391915583684978780361574808269680745012563287245607170167847885057480285305036751658988737273622255840198906236738449368240526583717655244302915950731339358348446337159222709058477406069070472844361545199303971103412737838114876334547087153782931472678970619695463551445302654698469322546109470849978937238464189782003064530870055055408207581772683584538654234300430075021541738349174548057536197217065058366990745871087659544292225192451005621191139713507272973877771959880321110714831001811279419115500998198390567076401343276167752228280723736622458973458287985611580451305177948852683919923901944143514701052406850099177675160564877298436151114356447871240733999943302824423618055429784653490296480407956743961837056106516957493021189332662803621608160755431974885832413979263870738528899342690554966669855445896557212714216528595580024322634770162317330135578181763400913807730281917307966180573840044148758656093970712439528945798743883264702383187726412950891365385067717597531072459891738230663229230367587612384192700049372949413171259055075679515328458832044099300167758249701350359213767588757637866576617178977253925078450876733803311892197422371537044621919511943568716864868551253383254208920555337096028275138622272510094292297143259990570871024443296634649558832162267638571330721552659662903099729688959784079536560253913463288919664618918057492013459927990942118785339227187898192278288280303949282832129669716222339769773751886179197431585717985093280059347053128657760607226970698549035778470060636469795678875204671807024931467059394483312674971493866491073499700516418423483597029680293201135970372037475966071805111307428632240543637814789269340899009560717548450267203277619099801225031700852720779914713303292739724586923026836211540884465354048339671783225494477057712368101710190289416649832997485795333910413678676219738439986813810133736463560759023465682932999770578143367965591683593739962410078120767434385364903850273442195833891119318358251912216494666924904164257952191410563614307725675242989680168248841683711949895877007251482444222544705559795575622026561395353748504644012927550523918561919929175716605098173085678059465716363255195915776752137301478328991907730323462417998491150575286237681991858519603915609448951224069944130460531073930570895732795418273193005926041038513818231749944172047696023433153604240703471797037328923846370271984415945993761004009824278353289074817242938298858107582978368209803618819556473013182665419807176739428388939007857326062138624884623346613798553429567291647973756195436951360726087637083592441093917310585622642749203504200966845783933619326642442717397858848209350078185523902682484682414969001518565939916356989848696083442779213586822148590411319495912668495206590125690486123843194372956075584574517088388842861098241673915675296371009800372176630245339135156080040113493119905926985613525257632824588248730172373767380912319300435870160796625162818367665119844204930648794383847691741826615756125981396553736020752451043389940547030742515216858617099820236668661854697879664220029632364737995058256695211179851434622888842287113708242959291067862846564406581126252292312740665665020446501362844406920215778146234506723064380946187107833970634347386649305634622467985288030903771601115060499883379398641032833228662632349972631870481108376347157466949777803452280548850197758277874021253638506731620756784699935257512720613295679470049367700053408504386558293298902020954945205791173330019974799022101574527630491727935374045676899784560579202098040817230692362431571578178077429689722706426900146010105048694759292568644275526774915569291566654847464226411259883027739629413843212624221878677132139265213906286185526166663669871555116272464263094942874237272895391925688560569251518012005544200725045008591646147524585288606589833057873998486841300231060886455838796237272087138965823894615557634864544134957141305636845290017530937553627925556302865557290125572220135413607994671919922397995650427018054537678594086717091265375761498569142307114859867628765028288338334267318292223903336778510087081357919885425750476137043215581040376721012464165470316239554257884805730769842738382357115293861765808257099915172450114791423527583287349690840118140642181267897283637672468741885063911501839386949015704750578829839264778278252508346613880667042316022679743473465380415919050872921050365379125654377189985295411780184289818016411239301945392954254662035117580362102019463332817917352072432480751758995774356988563849509635738064551236424949859269516178356342535216429606251970099876817106958836015617867603454859043887136440962181610086339986553605208954100766310496162874495295491576299587115211492945118098437905368246760013640574508072730080101999937107789188343268483157617323853932728544083772190927022154675627268810740204048841237859625526507404735623971018934905834622511587997829044430053008837623650924456747216091675604922072837033975483950043857527513263513750740622217213973337400715921450575647378625239885771803616766417754303407439532680590291329327510067284523095047234743001423813309945763375243740881342600789428362872675721911468789488591197462988363506118089362500680569518406371131424883282496329377911318996854187810895086503093152996754336188496046388160467736277580375560370589917332506955082327917215750439909816052254302896837511919707010321177835974128347417479780953047864400452840595284039511654478098692694823073101752776713174577399213861213563658786310560282359913083658055015088220862686873782001993516959090864978311299987993998822210970278355768891762130126487072874230252722871059863244156218893296139490334201693911542381177704738429912525480960509914553784494008165297025433978441253968715243715202251004363568238073713765472646206062449940455610672196643034250588583014680488547862801482866208071193011370893342058152648060767127254306894576259086644918499957464683948888489041346086622154024756306066184808848812804103202143041079110490709117677256893068528624498088409625523935901161508069131555248583865868022113018349672982844848635826616144562630208130374537490566636527797959719113316347750808382509279276563842471574915894331806257180959293072467408858325122536710906850742964544607088941717216202994460305073353450008977428699776742852894765601894202009512405009397778480391598762425758867395299760783794634693248435845289882928347312208266534654104671622031204546778665786733888682451992928888602625004444780057030853087723099462802347856814272549041039400826340429560849109328312896452356562364167148593799557753339977879024914279784388077499830123824877814856694720664300217961912144872943117126871778360727901816970088986565665808796312025179003813676238525813868952308156633950891414171028038803860528610357442625365156091961235707933501585460372896450332202019569702632544502467789951887273464634876343159721603083136781371289889057810611185571789487172972811200043738723751825253577043394733290872670493911293413310403021665047479012719358637875577234697587830335338486922544370600028750882871358293344989485934488618806134153115641550026348023386826636530556552313523955264007196452202389133183771333480124010310390111385572431856560108774782230447067243931328928712716973955333874517186985645278920321783238603593829058346415724518956764859276992147708859897865115996330982448535292097475662492923209632026639082412123061520927215717828194341981703706577947610335831741305503569773364485632427367856107154562858155909817470913499989638782418395836815047706228645180791262882659931294378157984982280246890947711793520302364962977575603494147441236199555308192962002167364654254409553072777377214377416497893600317068987422237431796988724735298259765405013065829408370948167685318468168892821252827029643820074517152932796786704625542846821231387709195737218910196882620792355578070853168188765811781180955471997014070605448960606177470762911720966571909219830355015421005282878860411255984889403019040001993058486081703219002684780548196857119439705957331992547268043107685361603076097208132794710005449625298453418074269989856643421499704341755170458443225567398008728102354600889249822755878910817821692911236017821053264270854399881089845113339716872497048000417029137731527287429096583556095199002722927758956389423537865995698297256594246448214377827661060490885513417481554612687978040900267313484424609670178544236198038289046554791017747917565071665618705581337077406770848877444680966722973178376629571020267780974344410852604853758205470112723449122911856391486221409031790386430276966160321135047197315365460677845964802149090004904174427580062158419967307947408188835525923065829222951775175537236357162217090880310862919258500045302099176783706609658242151898601443586955462369352246429970943746876024937113954120252479365347846341381576946080694164814815475475212796204443712617486440733368740796733981252599287571893176266747942102359747038068219608435606813872572457324607525991656582425913863900745818519004364710393124657474602701451446772013402753136411264286810217193189291843453806555000237620400335333003016136286320803117548604944152240004067996342071049284368102671023901141179127369950582387362988845668296737195324555693932862020779967924559484984456471102358229694735293716257315647752192782408406527310719725319456940882208565794688080655901766900666701655395731718859965575374543941911109704295115626948032647519957237449228220338917438245987261397614583128557930467037562763513593038351367293632516847575460870802981308253893176563124816905722618349513193775146884184053205579364257867243641049891749846896597672024864170475808631226963359970643035429938925916348575469896999863195247018212416892422967923505051643126565783587133075483277250595460559967724527923123646857811688367950833913690199319577343156535708331713934889265301367902531998398075785155912442663477276939566564491630051868744962662146036523253918788581305535903501681295386137128977959492146581656273864652136718686917063894276088060669360264399899214211635933205120786544361456673236885358798948403685208744822345932116883555849445757283296047727843972938974561619522795475443252030728475751692720897919271280794507942711245680276245320042529515794083758135823592186717964817054591506062393703294447124890281320357926338438594685286659775474732260407440872073788095479755793370361092496837221750795987764107976359227336558989581505946509912480764580040225905369116231478721869983053307910602242010227950288680333690771158402674545505456207172287521159143092429457785485611365045586088054148856344456225177414450598206197443630558637505777838243202694350386670147626823328229970270596794071714328047587769105227087125454615082978966719498258297472850134315121315278098269462709556328318532873471663425305385794680367863825301722479102492193662365675316026013320638477546458764532484188320210722393576466721066330762441449866969997012990588701804568250654899144151777669976983855854411295490515537258579320561065887457156175315187489770694269196847391032606716893890460928494597582383871552529302687359965531619908483906543836274057238124139011945283323373720753184843138656623553618073777872308871371217115060125367804568199281042006429785581661645797853109323402453436148755645316809623555762526810697480137052731211345663121253420599525559923400675962620125997501049477289189137992589816427111160753859171448980661797346168340636248675143221596846163652672450802600236807227643521899196483706139270287070261936915123097124503322544751845147032906089732380367339233811800177564045933160039174565000433642611316258693288033796342235953357471036256672613056433614858651588775491866645734069123393294165215103943405015619582844327582839361087188446501010275564004676809254480889520292159758054821126748306192808412160988373445115284475008104106378224928267495785537271065986130061673542514964951185800648028387903620065110467426428676386310355969670396798666861124276357496487516298841816026315616739149960757898191098649098429779615125451203271188898334644319667486504378007677195827948230746559529168888794868096726842030695263988560780537628272780197240058891596903594093981724200464838912755961531344927056651938317800270592874955802756078130072281056308323168192077239103502675491585759627248908763810139542320865066063133020470010668662989758400226855728208205675682723130342579385584029770411858672202300561986111580832390405116004020848906731870841063958655540176945854481980510180296272546768177383757878542086933948842691391059525531910131807864241526902982041246955130397664192343865890332589814631812143319007934356476320143995191283503880622453009853343794811854260422123444965569463958255176400039973383063371029629235073493136559070547099184353553866989812945842980140867903613987327670801770421538585349542855204472895323108389015732923776629828519117800770872627758617503560154476315043545461815674592675968980483822861219097241110232915069561722962615056584129907048988978606832928856026176489995448108607750232940598415216521557399026211196174442661336557121504430747564194740204628712852702017248165321656312423940690592500194365808714663330419231431658688405827281741077652896864008888747405303026455940212385903301773840125661330222584180034118325671736311894382269547575545377123376161605348820290894669502033718226890753859018666564849142317494870711809575112096302425781157589741493406019555178767511368521807691543611529619691265662856134263046364867869696751463392783804138948518138426873996660048211048813281526087953706006601216795234851142490198971874505686263089764015701906409920781238348554036285793665327329151377580614713299458392602090600372760209481000081864564553536852020536060774247150446963837000867344751151641187609278200571934278951904033486639676974590047143751059272799951424652696666678611200765881050388130838119689337959228763315674260380586625600553555847055568478385314104360794770163549254131972773105796631967030828196825943378527748438860812399698983575527056027736628810370826497945798787891585984980288612799858586000873271395530735001321939756225988928496279530162560406374417291376092837654195347181638812644280707731718499941748365217071715842496681362875930361815330361128225040513767349991199561231805307228500744449347558206001532874074567236410555470221006780250506818803699724276267378791422797845219240208022547836286336631934417865731790588370107159558188888694890129464111540210252305850322516662331745664764438961655062704866610685871207864573071757046189915688815254599829276497168552330832234122060989911640211161704482833326164794976303502577215981326409586286484080435839030769829047248187294060360946640656830225608935884202522551637705261197591479663954406309137857002015333558460807383389455413217260537931007747336301717010216485959379279659847086605287811921080571222224625660736194641611535833528684316314470101543615850401356185271319134660358840464048766556797050337774560429265626439648713685314118201811729060400893346227536934590274207885262288800170366115820957329703012613125862655680197556841351304291213131517193942965330501570457404425865754677273533191676165504148824335464759119764396912624709643676604171679745767984133256522609043029809149426226715841494361976445358189696919565922929731827227375888696997360119950455399630418821175140978224479954690981063182581235358237009212367337992330006416138582939768047084032890785683259877957168891368665974575853883385332118265546454084183993155941523106928056692959364954148334299969864605049757875327945995620329815385100830318376476340172773860895297166815222685816751065050389719646959530427399136907100262231438298308342730984152524886554812111178960836924150044390489104430392290838024527917550358377624253849332581012340590601517239848922536379984837996870631149407650314901433693230044389770950365123026581313244793647007669793056736725838989416303463064748028305710738570224703727216798433633329888235474394824624406076891586140136661626201783395436313151141837652013734253035452612944633329846975376895629292452523846803455164624959567601121522946575904950046598464648542884548502732871732370257715232923242731895464658722563524102207483082503993434779215741565976026845217315278104443196897108307795994770002476565382808924217143380256523945618305576530678005592473085805738748133476322657072745145978362613364746433361992735365719950196023609915189758018431538070964193458893302307810168340078133763570302168382027373657266405092956625761033676582246273054836556757397634920890956826654553392526585638510184568050759070012864975088502828976932099645757948887795172623351771067089994681178121144211615626039445686932608426380962589950515351981640548922520877876693553497939860408333495588512853058465167409547359922077635939141405565100244461295849801570746504483228301799408767418517664520191739175906936899466409749183603298350795831017709146006393059213236401665766985224609414911670139442282235349078226649179084752887946309102087828155060473602872594500240573663689595272979118936659706297666638109907907848705273659448581699276494199262607822252898013089605637800572621801665992170791895547830834761178313068379275088202382860168564148867056717684767746479770293074262005773968471279067147938443731060229806927773734370121407002021590317514970017772072329834888316053400079565978876140026058465437378891255046673858684219933161173805136114503916547461434142921887030465298336813345391276803063581046106162134909649442057575009478898008595066632913309472737689725031414803228247652798672275833342909721025729923605524617126123411784644517225379508486293187152316884953642676418338595298584823792645241213240676044589103907150870216991101080456326894304152020500099043961163934291270737917230726219169395914428831849093274930819106825617972095984327945351537243166225774154106344267242135286836534458780445647434605671509476473137472798475107917984213043858998718893831946003425953258103603055248127067209484535961626104770714704833475464779494309226448746441323872594835983891069184588235387266840336913097084836407484036407666294009211479768047041170071195923680391705933849362541548438371639208387234051729543697792271955489072113640232698761286289262135686613727936302817880594719230115257579553655224899266278403695650513296859643252510774468126107651450923803922751544960830526721218419364074495004275246433528068525591184105988976323795639366400936968194411939584519037458294394347692337302211991505459759854829178572043182268766422867849525395994405864905371152495248862345956094896660269481577198716445278087879965714501801882870047245816116534670560559470624593030660717970452912663816313140137034714647594638066544833456030039203928111394747413443401156145684911093810029700434485501067088726429526036899462151445414319665046385096800734960056515997821891325829647613980439505940174838131243642193755918742003374828507251328313833760481671184387086236510156156763007358806703781710957906274877615511948414246431173648620935518212690784261108740183507836429620806409657188323265931276305652213204554930655706468462144476144655213178397732589569518535179800722694182721931762861491630682521934642293037833290055058709317219981614115977558768434799724870960736560307173085339518199375415506294086859085621191250099018455245738233663031484082174234718863193240574749898184795855241552499364950269993381920629943774392233955578893926438421929763439183781820188106114737856409312210865377777673436685643408687429420837346188810198406326671215138167219595824633915456278057021380021245113387554994166351602775374501700791282284387381387793731541301846273274808238608115876143775242405313491598365861493264641433992107822978163410987263975177107955756644791804596577928585047344682715978244078173997672677023957317519994357371680646395745408533336990246829685018662918022855613917145565755527596422755953815179867415783985098853839524024943900328874595328137343688464753611588244800903471045736773466945521956922529290439332648486399319614515384831769251206824038561745707003072360592873598318998754953268436600245396267691805066859707721756332915169740216017060532159181343233369413832429775445972389171462695141262139736672167659649539528067745081989018361512454507402348249050746486325960159278202553171617052059106934158080637235393484076444198919333562039525809648754282829153541145167030381172805786921042481605263219337602082138303281455979783852542136792283372252023854899461882175996632945901796894861854482618381896813720281359383138458796373598374429680160789684332042885355487441353996630728792674638240156117748791182654522228614450270464953125756947639788066762613772870278297773007160332942567279869746975150733274371897727399029175729801808547012535912583538300972835107642514607396853227353307639052643542323870899332094541151432135291589128135746687879500948352596095718560422695890707318774525981080634680961054003274936862975900910370575011767174657796529956459805287089512832218082618609290250996566424028901234312956360973160987216282266754464582143612677827619629076935718570897954760385456069051699920865472290967287496511114010924778361665585024085151086172656850111454374049155330609978178146740339941071196576297262720342478808327378201192779647119188522194474565637689054941613616879966544568325518926116392297936096391546726316271658928201700545037337739977263628999086098563994755195705558302336530314502690253549715443949340518164296350061301375108537415759573226145668338567590079058265341454667917722500502531445442622350638965191625089054091813671415478240006129562735816258129793451270919103112478655198124482687782152759969331757201956470796543205858215421149732211717381755059558868578626388961318665451485255084524075197079966217057901358509118946748677342706306033598268918591994992143458376742227254046620619636236172254299861604000027440507693565207285453420262011109638852875314835980776076866999243820782142074850164999396734088810953443429353040175851067853494850069183556599290240498676501835007464934815205598652736193189918128517675007259493849077384125473974920138478918982182925252008322599014220478798876629233162157838147584819136526002840447589737901352317647366455323637608945948533060170352604097263660382041082485783553779554955034968480215116939801619478121002232616513862983775720722787090191421231094864786342821572265958002653803666263399223844060662458373834107761707902092542947342775125510894478023892091173683658738764528334136623188041903965924697835749233216430533609112269070466071233360302828246467444244616443491823802091207951589021597465035960034104318702651984115115891424810979244110214979193842372165082689281646431376413875678638635615796827089069361884535633193734853532372529002029414491089293179492366880976420461964386097397475882605495215745268517971623247575693332652799080563125647664403076604610299433410100654805648542119953831181854438299703267015381693812263732622925572783580810349425581155283865795484934258660902566118123398892817491277314052592789339816126211326951566421464137049689171405559011445276887934819311678912461190429743236798168139036134167695085989693535761818153898299793096553886425562672410060596418172982755856930933363195490193513318295443892368033197578935471840839766302402650811203966658419009056946118503854734881629329012353882276841722498535785382353385802459475012871219817367437566128651065457566689848883257591176115159353455580516503086362455095798159769901604141577407375511613133517111584351299052144902331405198807323589428062254685998948443775055934830314644319488359057964896436422088011536608006668316866120758155895242859589687509285034650688174961430672981749929272547114060450397155378259513943553028153054685772262829229004887300688452912687943542105156278904924237429514179663119949891543991531069537483812921265238596501021401902402069995532277314831368156317488066881615046022976791139542142089531924539064254674528346326588548909490542318633062608222594638873642388851393787348891904880233213177446570317400219201530671179561570709811688202091479654940749325702591998504958898280141613464029227816799764516401241917317244225022280425997954798474485139136055658593981907218588828113674290586442114689232711471521451353205325931022862465140116587336721398114299450571524579745424679989277216399120291595438872444292246708208386619492070861139440581114229556004844260331012310660011958391466322092773253495613614596110386093615565606721112023951839860607718116118489384587040021860664695320524326730076114261863755956778250545053310654218867283896371822559928012076190364651372741944897249456499110084921807812244325771453956908622072771926276837126950148073023152218865639896951271092575599534694446583766459619281661371129120673246923731634392912273246271786366214407314657121850637482069637803957110770393392101644953535561905683840020255702351565339650656211941871692964667072191258199545482151404850177740108398441616294994973835396074368617752257302503347123610366369219176602160953225792323681038129301816479139610325303780164845070851666133234741847073631691497877162711617708004367226635860277848420393353766589360601136148013944000728337258866533875156762056077333984896811074949980138872878789697002906563608496629553969914456446097089326333382271226324508433532026380790800631466529378859633073017031845340947546471665590094271245820429566001235006578210034495703743635659269881912995594558510675241988523136309416066404759480136270071087879410034844555626085756144631178383809817777421989787804288794194011549897920153103760421202399853702974032624358289120663896815746398874975698750142409964479277032597106285407185353713639426153887362884857225427338698826418014969677718877648158032743879707251122189477749724189308134272532993784345187878853041239685608005840173409193421223077086001613596161283930350016870415633393024165540183343993285277763084347587897599098195897395530552859141993381792176970528141967481966410043299222121650386156382807589311131168102345742272296942391947424187880167824364222020109781833402315247885411211479517972556636421830477044404516632380860821595111675658905016170812100331576498568901942643474241039857237763074704322182296379801508576238862196030303638989963759087904351690927319505346752550919316314981281032371547655667847831194291181493947516168336432387417372435759010313009280134492046014222680485854062607873316938735524367047473089864091978163764404478064000001972963825809273319585171416195095521315737949582167208822318107185708754690394780033131141255087887541574845408895461431489077888151764026959891995959684456845012331453352463183763238978504923758421436909250543938685050902738571301623266155187125709151730467103337772463725498564408237166562289332029818716696169001253202054365478958364072189629189101369962120542992870963513688982053329584740124385786515747054905107577374147444503855609081117932934765899300427621824310532686375598959777694820662623527482894656746672776400160207905459988994256078566076354013823744771054543308338473523447675232823516841149715898090793498075593593647415198185350721587960526051055098414316834771654695811492065195968461820768651933217300310036648286329206599256483866184874823284062638412845648840099150837321639331803005427301220338057029446710874347986254527571218721484796756003500373349952405987869967973105082089231380124759415198595608818229279060701457066904446958383125544894917149331334943008029404713906634789486709699010023816253135508732337856399567538902430462994039998775821111419829900036810830418841525259406244158188497244719527743141438599250676243611317382093979142609220260463173503623401149351686131911736027799831611392692203412250814060915750338140679359523622111980697305030173222366736805398311571756982173557771351781450666780182738931893717986277756458643640047131795803340189691550319103856702773731068654133709105802027302855166208680797026130988622370925183432904539564338459083325691750144320896219604423504889356073765032586051459112899607796926649036502326392746354572094353662501691538205687410245791019377263582860440262863560350191897779781230912838566761829166555765371121445572026310387435849127044056127045070764322286504913810072848484969330056925848624193887402541766775256600129388005020042889577974297537863194790006306734283648387629343220304316913320428518865651996512695282930839868263158150021071836146777935487437597271705833968062845308038297613264316028184685183067644815054870999709544721346435540164849258636647289913194339078704964315216489277930042921648000465496774546049650051235574425924492107170700025787035989837702832902920723917377820046945747630959560572783912384533323913201720386272933519361042512675582753759357266361176335370697883252404336907661257470533426290039490461784945540395976048964995281951179762972729558028184143244930913223532987436898920157134042794864783193263228874261223716897215784075621447421019393395673517589089617133616082377542397605340237746995851132645732883506927049348357059012489650005990286443414741667837564307162489234082320116144470018859490450513258101653926428671829337604423930690220943847566303367400432028317321373929186248825563934257678402417378584953357564893723774214573946286632883590226053738750967703686665354863676290054986443404506327601967576759231787868849500923268904384357235066245650673849228948372665979653688954671862921781284603684728401190639187012578857100800824890099679338365652648649452539240575479866945167137887591236579170502416069062235505761825183931695273627817782553225703871083561606408766008717451377931233643629232290804460490504464952072172123455563703439343844912267727485921474178428501796447362247365038140425876608353697268872927486022701102144725760048237638241093008028821974406482392244256800757752999410601172462748775668274298644144788423696256685274787846099873910515965065701645133280445849594815657490243986363466016657190549162190458916551971194957962165537856233505200656805077068549222367137785884628706136910399760863878065756800687121278871315943874824865840172534336520689837590325517027345416912329785091333133044946986959254175801489524654573018678159148963690071285879862677830641278542422518459623748473810973080761357815206994570598686300592240106762960853248224566374404364733661662809256197408783020241944946092431802775638067479868572960330781156096007972981294046656673483653463053532587669931574194173690415262387652188923525949082841162540287286155300029057707214684708201425085982480408219975013564322391084325100832571529459682031521039398511482337326948725220041029994946827123587156875996463699507210630299106748191651161373928639593995272949239907322757738028837813007862131843251566728408022457634735939826317525572182752785550969710120218787801855612899334162590703978961255013735115589855059299532508654531878045938696266445698043446452919753960321564572497805634671932874853495850221826526992804065628999292057203685778433952796199638753589621114340592563805550186205613774862879854944097914982047385957787534938538567487041855890591061093194039000363935995202665553295069235687517196225942197463953460907653349042923515344113451184987872651932727601718015496126462215648124966178831634688313724886412842510713789754692023802487235350589406228922481652922955567871944871682771510178672371931608456146155952338041972291092380572816995206819348953510595953400840829003331355531078295391858706391987883203929347095113101147344531056350058135241961985817935249971034682629739794407061238359142764567254500694654867182451160437327220862248540117771816359199064428035513773161748329866499146628320349902605135729620223827840631796886427467939253360159044533351123137012777741176219523373833749844308343984448587549093051750102758310794583218490788915981623294925491592075450336379406519234666495433473464297687927443060981337546030471952943026229631751570664355877945633292238806406440116493589616139388865111732566076878318899802941259050478376340952956962593336682581548056077951219018430030442155804101820412872961059468493193949420307669289254241141173491885274328961273522405949391114677215588399760719627257769610866189823484258055618257016173354670599818834878305217037168403857219688614658134381506400829841185446732054347782635294248033062480292546929852970460830024582966743538844329188119978291710947936090466342874405455977961000791037899655902915554166028121763369461190967850499422459723391761539253130256574734259000423960332508605933899090205806740637128574806602541642612786281326879385005317927579746568535989320773383550257818485400395701615113792338713566677738988057016135168923390570045813303368694678328160521104563134940985812066633346285736495411517908382842997297012083546083147328957961108703395393763411415577880675440910745277715112495993670223567601405319213537746951362503983010682077299747414007629896986468483185608701616630525444956496648121589066944750891329857119851765005784730410663677737184406493347974178527774089357875639588742671574959173504286450013385856971235955085123943996164182496557518393921334554582550402958948228521564876186973496728827146809928309034506799988158186712742980202180490250036736766697433177121865133576201189725765131266471314787411238214933249023007049242784467290535487124177164237066519671202499866817830610029560074977311252779754537746834890745715634233139617813970671719538567919469328600770938231471418331925191578643228894219637970897477475482637558745258649653311036424408759143135794427417422759456320546286252157335081988486110979173127816932840881962324353231645046196929218852451699187019232705378764896652790315115140928021125666395145625095231458989137985378201993240061947645655689442900667581685467562151685530064601225444054384531451217976364304512634700910245111723872872695977943790231026303238593615759249296683460866353644705393411127696531306882461789667013316278971662740546826803485556122151757697821415459783281768651684935458725215958323927424336665564536918807440322062777399247233285498983548307211166787645870726458884800513357320997253273539668363825793863223510642108484059489501644178980392270333312724884882835177780462990230455753178544112393309418593083678400647282090168526950486898906645428438178600303494744977458016978630641961243263241245702024598806618031648173214365089566340162677548288198429113070233159385966547007295096630266984382358308931373434678209528848025521799980597327837133149050251017403686135098071928094990970587480132052656409926617709403804834859099969018416014638559570064609311872580083793236411889164177564982583425985077842677117046036567546644498570515605933756684461073657642222668020124486289164034301044219323030112786016244125759047104488305255028961847238154345370140517841836888622734723912870477851860780440615105073946405159388261188394442635701645275567379526136947200304099783656760099990812259464467744046618280810223668527067649845661746011906332355256514154653271602786042303020390024483586240247150682583669824027606534727370416893667237630900680437686659370415882560284149723905999061591265478968513025935975637983703352340713299442184804070541401467091393808295599528660018166344666934775180810436991550261473174743150284873973417100454680337638625589239716237327629715491516143995928732772867558393930537771015865294292955079505457843970412005348184076732676470580748608058238603030927616451931987392977584807366894881651085991000187536065101195038411716724832133593494294632877579212386636303886091716850533252306273169450422031445517627148198136767677000781197877810699543102447739594608012360701851558010119282210181841232986506641218768575843087664729087556530348563475877069809629276651111308411731691734368362826801565498006180749166497689872411898191230766877176746277026891173973981789843243153487963497355212251522633791929283914511987026002004736083705153767521810328929128011754709085562404011793075310813757902130110449581899740369943999585683921587436724307217639012245863985997081877298534544554721922566053867126254277348563237794290891079255365845381424129720302205960635779622913808762863640891690004493409899400380623463867323645318980482988451665673241177816653906275470201618746764704902764187128757348587163628814691300350534402626638119647782955110864153460216356193594000581945878342983649051003135275519911551776085436237942208696849699369426105184988107375339861015139262376278955023212492101969040513747428311270182288681809205879333346534085110760428913188661457496460794071976613259110138738254033748869044144170782451964589492434971078981248707645132571094050670091548280038637802389109956247013501248981223730593837430682987510289172202383464125357164066370744506045757739666719660044309374772800878360107132298228315712124847977094402393726595960111683526167408225818173905588363212110576777627030275489419713001504936117227530382591463277544292258988393731773890941122343478325864707202520966812613787638262361309157746177979296417609469150525199829604521133919620229347615842791308305150582889962367889327253492416817093477997095675879523994176302136148348007227054591828703050500861789894826485118572205452207211009939993199909109324388174852720963100255172549945190938545256814331034558314985413059474718528705715216902903671672499357488855565429191695830543069761448499719001940289548585754310093486722473823044802887005863822543388635406107385399018258637066702763341734186321489947617200162846329331998084086929127806996754988005569830256692629710231336667278358956157160143600614452813103590855383754832577686339641088805127366833884074087978988870295987902857670397770079411998450896154440137111651186045890793472791445236695593133672835485111641947156039369770619734455462809258524382013955068461509344407113634656891472892904276725388092560466168270762649203811200823198635956547157987210444962464136252337756756851448923103600846295301224122455774601769452974083055085247934030898573430636545867415591043922961904730719695507695420688087029187623165564500835714391565354063926287204300472432367790316941426626601224147285076463071282566160376366455445944847469777252432849380549229257524001398544918663067738226159816389876750651112255882896556023077221658975235517319984798089962319532672507907687104139200972953373005293016936236798005142995655040460021482419476160906534663924469357477997805580637365896925357345386976444498208378787807747659466329570311362443611152589540880177470076510188501693883348606384244678692601419274532478526661388269946814991541325955716189003091627199475739908275226443076318672794695209863426430645784559909106987286633625955304901519811217063646484119078928324782696954510296452228668360427935490323860927872789095500786362231200024175105300466932580548023445560435460950035742829704655329637901675156961434380857116565269008367624102899339051393269232717722204625706922254545375084623998793394730466208218809207711447553037828864785441492356583780426882146227331389523472324235202184120356506832033586319663322973018496893528467066042993319143249442379921103688499382395765107901205476834463168845169771334266522074404572099064835585525862355062880195479859400837635243834675210198198304984069105700934572070997204029676642370322403316517766549124372692654775835048359005510855281885465522421717421492555004549954741505422581833993429568766238922230889508107568980790198781680685903977267069440062730123954606419202504079845927367157627239489116414460939151446761930707463606465438651946275848616696431008651245169505959693431407589049356378847046395253280802161203109742870051014714800600286525635522337967945721702096549393202155237429067657793709933135708608305159559911592091165190038188016558056912535858237044023588405572260889511641392111118253468804094540805960021068193876097388453274433945437735943525882870218734816125574213899873044810137205547058376305468262093466644253189410858542140399955781074976924494489498952932330837319355817901394732887217554648749301180491060625352987040756215615892803426508136383273084070177465095387743765949871584706971741002664272721597070415318719271342013811852433293906852646341963515510619677053000226403411621233774367255382677160447247153376879093483599917000172152414899855234363548193276377490500561050355460379643944677161643578828353335614054892765639164660473267309260554711679702923882285936582155602945129451417036139412971308414277873948498668083792425606812347836768756888469971812829661950190496300825179025554879255686912031882113895941072171328422762959032881991236034234111173620215329392711260837661739811338071666208274953349182000814619695298075998323439339184999866252580737842010985127986876134243254457586395290174254810503087504286300796140204653062397247590333386717173900231513892880001387222733662728828140399386740240340236477043803556137680653592292968071758021857131464263336735232398037864100886141308515917121042765783890840103136597006523039694038166261801678790856250442229817193106151293112784374359355122477281663903746674663399059081466767855782560183317742557145992102504506508484661204099403363259512950714578272621072866721683270436720872255709457269028099326034307362818956763847739301202052931876200739498306538702171828073405251234423985474387753928706783907621707984067045984073873999339964157399211925003117140265414949596005156001031592707899076043084051391924046858511477984547007793754607944759735630868217752896017380860064098382858892464173165892439541259147113507593864484884721653757592329127894934375812468892290776866348991316535994419770381224982481130954488081991238238204210247991291009798731315787041155407539077012527205201252551544380232382167518747489948036495084300614985711701043470674133446554744444191874871725529213609014294079974619353231279781536407221857690267437868142395537744744662329926369245245602839963712102095932883401228480822892344651995001280125415905340158774509601215890463715937586373483988129566096351415373430010613428822625079223118269810440673674924792927202032012624276603848072541183954680197482526897386400152744002953837387150001753071390931604348283378830812326113346863847178440797503747753588265352549924307555871757008343436976028531007502055960186976424305255780331995472035798401076637190008546325427247284160549632654660940946964064723324156933533905885789646014211038941784999806979142233420359091222820687478099088393833127271015807048424437936843453094267273024029419155066872147660055839266680248991338722184590679154675409092794438592408178650062138946317005489115387886914394282406346189453763570874400119434492473996692866560617128547608849369710448775641803893424553802265014352735045575136613282919483655575836205482362718416231988965393097788111065282625760706729109001532362117984772543035397976467475980753140676017441977402871168499330884393910919626812109644930421364915576908866738612504761354435278419299576327147791063859250780638692185787218782641697138657398044581493481343361588101609950236961034817541954774167054914415851870137383956678227892144443120941484665409944928270181893442003447063759894575682208657901213248010489438449104984488695206373881923217128733206409125426297686306476279873459990319377171704420173161410707574614649759920563031640652466550541067432577187790098441349756607340342499142968613090657336202524602853969575135180066535148923986610190342869972483389447207333221180278454213949879462632756095509783001086225424397111678199016340142724823831895382363882961334769496328390619526581291866832862565705050172281319890931068025256590534076952726915147439862534633337301445651243251313204828931750896072592331211109153174383127391869922868289782816989274914780302399999980877039687291329452111783515207989176655173096560937716871388268942294184410350455949621414033938535861435422952890974327403999352225665255815224835594579678971125974250991523916940183212077327227199438227898869763439200138908584605640412546912246588592164084347466876684112762192627153411473364513631744694557491103475888572815417226963171835519443792527694359947081644945365696653914070253095827743186536691702103676273646062032839358843757860993525735942516364188040475621898370419702497329798505935830482130025333963425148374539906783293385072973517120054925336321061161444898221636728814647091869963286668078426875592766508335900372594653251794859026282684721135767496504513196047539779290509334734440036355914467860929947233319941259110271302439552408536045617579362302498042976966476170250576973968724380447485519067169595606153512118556228774586372892566814470350719231461946869542539484250583041500624300845070398081041179048816363866299705177076578860109246191880934276573971677437326449606225906103218341246021735165893630309483785705407429584912452357929345550862411881097073028098745337121475514538731867934910816715775999014820969229311519333908487064183302146204586463546753368775011202660713392737904085970965413048790119206633305222405303877310646442470666606680875686433206153305071836881527772909603111701786881393464948371495667145226893099528128721273926039921930547748246986682984755070542446293316608274660240799999080655177769330813640076538831514125743699497229639208052411150167407859142567088336365861107834016009901595162089751701904144204241639118189464588845099315627258323103312971602456871502120685200630540848288881438019296511379648814349187413669936489268520581838646057201416669456001932216870773253980929816526875378506053207977103420711233549628845517724041350658483534306128825640949651076568165144020520859809118282698739399000575342149971016776298334898261480191295114108099800584292164886760857083398255727869912872124041049086106550263820507205421928329769622324030133931132118633026298022320251160716882016614500284763676528293986795515857666154071441309367045573420966053241618120021936188896404855709719168196450459900970038307847460276122248355947514109215674129258864667008180058128581156390357713677204641304791186036910024593143353499744548810802002753514870123606981766140930010254458886672262220279742026729565431530271101144982614872588654913290695923201873982914059995635376976083945492716449987164186138159248170165012900179739560752340666574848355573701931055657684379475555148723386729293354946143788057275327074918928192728871431912580718276349296413473426246651181146162030312113761620579744580826048826482730337207903995292771201349298546511745088395436281014971626420359448926475832627351020384245949899749967781412548396040856378964853756889165678296932701990484151510436499397350820481048662017356917444691570389210966113847186465075977323407654257180078329871351086998937154696586791966718810504983208591588285335499247320005288076623973571079516669600683345925817158487772328687592455175366148689435748583219588243616420305367762441805504311653459182029679933157790770286077681773722847944825581929877725649012348359320261822601181500898526705497585354411576520873634024173076090793006571284141307168459176820677369565131627250186395994087201814205765662156479862349369557697331681803223146479901554925914097044777555890739742483010965248633038304886847708125434588161054592404617686080994066464111909006165516047354719846926402282666505699182747830714601500265393658346976049614536158539679577336356167458435536673457317607707338594731645826200546979261046393788630952067168506349706591451778995893151760248544605461967087040346263763797672022516352727209778465538884924456391419920913631793747226470774616077402046864031686249149547107983347112240848514606848436562904454576090961135343778927069886164812658830810146001150451635764945899813177775818962757893501098515957006697783467085713763048459813872083774071059287761759875514354130451634556819066101914424045131711671743111515693008801933045490018242382587864784463495123958802937311356119115447566838292551037126448054930759729957503677262364815804629100689144311009450573407476841348987918430281146412636707289971803738872012325427292267680689066587401307877741006754119597728417758261410559746860175080031251714001849316897283250940055054489153653459491514673453974142930974949561391123611309735750280984854229831328623564974595327137046742878425923538210950789651158384571922170693492885843657908360821368880921228362093251130049183171715115478141166002580160633281318374413262870645834862777912725567921751958111499856959806606378517948315292065186798628385129139721061260647324336600553756039799798846829586813335255396296788285355995677443184538832516184537739548537112937033894591653938508445331338865305604611875639236892124077387492230313492047981364045155878390046989885408904866447166704316405002970984578905660199317601167623758441100450992079613329554558821245438583246632830648289554947149945527072393168888048527987315416017457220797678232362276676336086504785826457857188504551418059602761464026174901990811648281251124970119884668431032092623460762968411451063459866535971660028396317901923947589964102332164784635794879127299269988381463862293374807474577683418541888706061253800374409039810448841577069186800463698394403523368920314744265955701704821782529242917477034251671552532387235423611343545172184154179009468723294887021866053606123847895504437444029773814099021790195548462790746301583653456965638965472014791097119050836527106402432403798097062263463776039570520046652524738127868991835283170680950817455035186652683973707215234376416360483332943823014850116996493753417347976115282968582487155098485901778392865067919352499764809304084612751807019219157371838294479551157605515322989945078147771496620278307354409795419360170670023912678222961629626453151576554501234725866465054048801433967931339414117109843873368367628551952765503868189491259150168029059439130747925643792152117876727531888950038809543820362585210792869591633627686024668248686486737232069973274872803890157022190384633118476770073099813352639988281147427076269166592024124951558622562531699138344841526218785202777508515511105786132920718292866473075395528933389773400305512828285677934664618887010035659018351395964555188206080084097808053569132727270761702447326278606715324412487461673588881657073542842309771850369864494405268237744860016826813962082076746577768305712386309521324794375196866873484891824640036567856400897369527160406629630047490986958222754104770606782772471521404006012949179084859561604812401623765716470340399705575852882323338975593682755801054017949676403059295660282244272032508890335992145093165696703654758048144795106269148509866362725750969180445071682299532634961170551798551658924974548876147959607886223265259614200765088610911657758724197857332928434465939151186158196076971238968286722503503539096200113360183750951867121365117850587752344310099758711210031630725825708909241844728684636288705141151218615021650929736138619285892924093624116279989723412494510000601693259349266435443225035151291947908584539368681187537918495702873712750120584017200041381495022841179217456595563494277717195884288462531038907081084643551106184429865096812320025102515706189175902137653185283533810412147262620743127979167366989742408177946749839946968455264808654084918410937032727197231675807517888997490112887819917053156588300682540780363368074665804765091401920390599016969681521306759720899798528158184128942224434448163742416289335166662772750133474311770649274181959614975873347345420494252373065902958596951536228613642016098936176216265186651692248412065028960576925767772539933012949018791253941690782503343862042063002644419180619507793342883014308478190529130740798305131217065716012955038372599339259788963476172905964061640095156250772113662606207038813164563576716877236431498953079768544936488005438875146593702586210867354251925787797090334929521316489728278614903038337093920453962085642842634109419267819885045153425623652195570807165800665963145408569462572384925303043471888526021628950922415103540557887719730945352728792777689132875748036125733840230662645626868183315080347711852133372246967564605708271956086519471904506290966220776742022342900526901709639001534453286648886919926030516201842359165281535164101192524990972952720321837334512059077619386167288962714522905287871267063560764893239266627118335503445372103822441491638631313328587408302861853728677860887722110873166606164860857337529700235378738171561676068091810210825439021284219029475346648306056597680777578076517807753090755905656193456688435575594136238298524053179595207766291116427612467377773718244774639491453885066475727007258669032827489295612513186740163103964336887909176210849106680184006737229037847859893011412728293240434583539275356523895308674659225954071355886172168581710142221881193750483044080793312152134504114492190254296042382213887731805492189664803116368605140499261212857494100889139606950439371152830252681183369426277175818098674994827251214176587006807260112188709239388203900394589121028194018914606015441549043421727114033271003556263013201553913959069869479872097872897785657786072285337171291059031770563131010278247874216146186116214809384858033899549441417594899093260625405918483357032250428674033812887388046960122060529372900501704702809886434038986549664784563373301553721892352231980340548512260076990285261229847465558734041840006327009810582261315413547320246877191114802815892956920799695362344899133930618041425664636128150242655502152616776953250059419639816493315763091291033964612874477034076316326553707241527174378986620360621746272379419104965537521319523531331867444099906655962568729001290491059750817626841352959609765215315101840258998768288449444092843701099867727981784072019357623021437242185165177602751393447686710738286074212900179747753446756247092440912522871674783702238934885260148350359129231616878232256775887602571324192679696244881232198294936672707679566081229556198896292176738487229735713111635694328190220051138146900031209660522252741017604568742919740806681108807433586294614467278795682676745522764896328795952674152003159481959692266875742983310508304607562305780498657379801854124355356779926729304052552813876640715734977276185567301666362809796840220907526364712656331353571300407973879548215759668499846852781029513098540151694588136338579776810573196464721920602731426856634932388042903748501992846303929737440397782386020661643054829400064099711669300540726247136455680473190082596747396868217952746803032485081029625091998973808586380688088472050775713390584059193662086101914686250241798489496950364918352214483163892104181651699818025959030497881011833559694144505055208197852504152437454883844247941634061778266685716658655168956404670143608900889067698664419180433369192276693952474005075539004815344937608204831096138639260557942949744427564512367164455215393686192320971463862494015750770569912833752342457795489464399646759927533183076065561859920968202197491656682928314625067803336273740179125498253489544495159079106072128806280317064236028586834934057222708509538631304151310974446191073015918637164079685368816475639250571817675244400455732790244735755696238367065291042012953425094031265641639743315812953054633588002458320303251532634266715849548414298067022509065839883194941233553594478714012234493489611222099278837331052601401734390593726436449959520257880833017452293087662539771233880945145659416964799480735438117309144179471641176681566328224776867279163731906987213613531422878121876768947811861983411990432377441732933318247844189448057062485405824707826775474287890786169345130147434454497671793747557259448780705174021981839526646854377947239486960337849632391951073534689153093342597920160441791234413956550901153796026491871210213219147909186617384156392673919064201793724104500071142625898987045702627972270921605584374285977166434403261406460564350537515542872402650559165765937409650259725823594597454569771660362647209685930150525186018957898262153035635959038355728218118955493950614864331907308595232192490720957343607978701328431235612951292732643962079412549018624185469922841864013332878388980336065865511891263509446699382996296204460650371680033697023440843320813620893474273775421165071595866186528405967294154622630101548314335912524797662753587832326359250046397361303060946613483007534451277935397492437156221932036006074607609958950216961949481826118061420578993051219357569954414212343075469215425461153946391497836720144090617991985885657171782338221369567966259691422080494002865282619794954243276707910596311525101401322810865659095637215851484794554815353192093597465787217997421605912996227296992055461134961324488433850821638703591808310672313749784287146355340013664538483922692812961221248674437853607425703264431994625761193589748484722489137216285483702081814810948247305330747149069805356494030096208051729436915289743276743600459760114972906878740415314739872475474627393475128583822835590152640983284077728252815162317728470905179825552166976243565414560212303325198464881808239264349359081243957150500982309636954256651863004568144070604935791416002612821813474875328610151503387708698150086162883782345019740915453423137361063671227338998633017870171838086096890273450919857259717002181594453470416287177337183399146549324914648169342553418212109167129814581991387418994591239322982065444412963758226553741084534003842139895906294842171057768502142846033919372880972000035415430566102002337811273535364569490740001958547257615832749823916742686563920584679951417918195953272778862159013117692703408749899018301324831919825325255346009044837195605651817944486820014818530523904396598703429247541367078469827294313462445281183243095615179612609773856936124159107633612905799752690660846106928605120427527931089174024037671890694059187468185430227473952321376165220095872695275905834906209702007194222503756501187368642750257442044502061124660949262490801621759478170281692568513241279136193715727515335148478691554877566558307463455598939441830449798830134614860742169869687323540218814696569379787448924357015621992809509153400506124563846731215665671053029805852578440021941448590642771770238007375416052256508103501289124454822206299097129545238630937933185149136560786983245794343574244364358551804874539198446133270927680926417807942941826472916478713026306592111667780850367816154263157703179533887014907776235098455873628308681518944250023936322587785209928801621520577270982690927077896301182218875634384422056204378038140304783353114730244428370395710444479311663564749500282672895730073964358052604423838593084580989132943648531912538886465525215329607829649859098584470407929108997401804038284593978262319860239921572433889262054933291972241823806653678345971226087177513920044076612772103275349516052702361687496443024963103881465612580894152914401912490746170158510737642292939751682773353744957266083263218905836259102837380648213346742179892864452923034007715819851104936249174055247752023315283601586754887767571150452349340097191898638502320183092063057980160907701259458608440207964517906517716999298652194062125710285301911397886647105851015828190021638683999590469059550828672119523384754621688291613893854128812105198473360371781012994442694286699539415870817294754124657429617498216683748560449691801859328984040874333523117965070149950587607285303107082710935889883208650071260925422130151409035472478420979323347215989002309868959264304061255190101377097613618097389672560317199660310687677237699879286333618950649695906752539590293113787989547532923804253828205345398922544853563638059944161756503544166294136198209058072394605712790127659284470297241751058189944097170527757153019078860977752903161381489244329383951544142140082401338280395701698688970200446605840946483008869015298745648946101769431622016383155463794040118516973626429641600433333534075954630296631286933304319243862226450183215573360320638743262108856460983369742758327085279369471385915162316190417777415489011160311927225827367179917266067687782223810823672338305517672658460690065244593024163094322390515206886639278406436190482883541360301896748063660817547937484828453613223851847087737202623079525416654000021185312735675502149400231764217216060424764468746365161085971249762289662899227132559745981004981476663251664413187133958090645051185361777394342046451070990721157566847067383221561885929167977256661083604055430994737003469265337750951715961798754944102156122093780561021986212224574842385715178218958381353391119060133338776289472786617957405987640983955103057387511531170910796356274366644835305513040709418136655998279518093060130757925967901199360879350090518914027622602600650493240269767592279861677204321304766586719789718396081177904909473370954737616432692869903370138872275406315181320681649303366336935495555395143385660067914093877349197385039239943408680513249645339603933923787033600264074764248251403472350784319532621833201347081655260099666730092280110401026318813368088226257686421911494648490364737987195543669098958422799332621704741790216809895003663926256408267660965174280832090893585494838131536497717507088807592184233969716790110129737210302997064349953583670954552844518150385668564083132036111666575134519168325398569983628225701186843355813167304159529493563876826152351374176869457725704583775002235681956126386257935545607310180446951911632563502970890208147152995423182074202979204540653367724253254065180421878458315836751933038389061099163887497096062362184314692465337069670416414019240346822427930497968338282156314191864247661888925748962426234732061913321882246043127824813304956580988484398014401422225619082651356135954310061501617160276486403928461126453976488742704058278118210064403470467024975481476413735700993631437224410024930257754495777702345920091040505564974153550255470834386125216186584037180675167899414247095881625286014437483224914431017657697797307790714473511511014597985554900861897950025593898307813507259736268400934095228448652191280566684668293579253404538970580143642604998560739634861570562329164558128075907496519711962112579741468517422978950747190302213162314917207218570868635548469723415739127186771758654277023688804505998796976876563301060267441654583626761736766232035747976942911417424335637264194084511004063785277408154599864088830809789834039393919206546854393577874262445050338390842755690777829553769803487641196164819682942280842053740721904618470678110215163428181580987049840254910521110614505663046293359021679866013020142152288661846286597874830859702719970250721486217450510277833772242648661975636012390090711161812781361190855482059061208329572466280785527873981674255774132010556220169107774522609056119469402722877922483162232108138532215656202849239887464256385952702629636765752451825893616909728919551857297784789606170754021702177391587981689354694098428639080912764816543369042821464060480286165226506464216882073203675759292949721903084724650754185196011265430274728846661629438800743936741486562946872648546852240656689653169862756896133314625708953108843534786374196344879058694140882679587923011051665177174463454572154794726386096205447399749474381437613205073554858883213374864182296511372371071305361859097406032621912448849848363214894857869455057797814243172147907893630675846731759103588374147517797180179524312021333006077915546223405098126212691357010918659961585365112177604879191007528933111339715882080083282469639264915332898744887679237026261681569544515541249828826794439641898689944841666573609367519692340851177570711734378754785496551535354014932343455715374416249652135914583945568782939156091942752612938818912583259037255953231960780602671367951366383379932080487182220071056627908522174802733877498676147050400449740748513663676785407411761706310397044839427076403005468049019850578121004211572788704947041960149227820277167829119733956411842658106755215592252996380159015834206511757873878651875419929705453062854794547709996675053412400087568116774407408967603764374803058063182916451535950184402635778773555558746471269304929666926846720521482525571845864290334282911122349532149485059685162821308119813152121148689082103195740254210940012828826915514216873276167182413104605963300447830062372298639914747554614808754548378908522766323047720390132784294813185099870868639942631444726605806655449534017232300319623583086383192439797645704747281337565054735433776807212399702832788406701142502636784274766140662422924457175952938393069637235675114808431712701276243661703586799405193073368493288884114581919008454658421614137548915934442395654096810820615050704478085952905345508548524566490683433248658520169030880244328592710275339906498548571164060376864684493456224508920320838819557096139527484248847669003266964035609012633828191492979264453789011788678265501718955702818982398157323717400960042908518954100487769404463519909391332713222855562965603535680411622150042053128520724721900052403060048366391415420469323474544927985108985942493456333627383293561262488798363224399289696027855603490842825294816271183553659442767081322992605253781047612710158330481181143805907183831531355373143020331030870062961936556397128935574370052464011239103462182869661401230046608885306557453856858860579534661637053168864718266275207379784184417268070507682334334291662485746097561880271797269576476952562031416268950870712872712414447501231608946448475224562166996964388621145526603771102783408556183841833718243787019659948561223026304942641935172973837868351131205478514720913900791971681396360905469305908923355578415765233084352223637063911082403088114466034279259832619155846063914182351069344899459786428394625920442039646374570130891900876119340365134713176244362909788213556321799729839182535418131542125172361830922358876356413312000457314364337980573066068364449376637725935611096049382069142507247221550427284534457757231319889799109724983687203959491627348783254932091434811033605729502860863178735468317396631166088086768229941787709645925906294977324960020355607030706145496685663372528579332597892891057643278385515894255781843364489204006770645826591768329056835760532471414036853182529499869238530184015064524185934196045603862155539430189987955142337685023148408398235774594828737013084688988514447152850684271908417250733012161009808697977965285582721653114899798936132590616442174004068071598951394893232321693262120446491666937672867205855084367943622832635651346562028366158666130570791511267379701563119030469790998388792653751903398581256919950445110752145932297454626849530879955337723958560960715549441558382530024292424100192681632838755051779496448776404826110112427479690467774709801388109775139444637573253021883755412625996423560339329283134425255216826392948263515669570587438015446678122327356812280165850738867382414943502350353771575245991112693542602744339202579164353427874394277816949360743608844588789745094190964231278005458385778212516324669396006082677793551600009413019834146984263464591334700933987489254400523603365602634840198789126150610380081782382365690098939968845368099951477554306110512380714221914156637716203780983540545375199286103014554939553971178410078046373328644976158737151926903008499433625246555345737150987179098270517481502134593277287921015943930720458362630596433589297062680403507914085744213409898373305312801860401007509770180587700066077512943708120480093096444853201194269106084203030068909092631944573899992105207921414800395083600017838206490914092479950275144761000219832936624895046942635743585098471883356115402530339590113733331906245960554127691397305997221426573673661254457300398108239865823785249113685939350581584632780181544269564149038950562548677523303979406935591767123920522836865444925153858942303483243818733955242419805528107690420754698909760453154465873899474151547209387136521125758800449001848094442821987657854131000857361172812409010557654435491661843904819634085825420555467103457592830972517037470209577955696981583785108101101542055012009300908637939261519345703032240186302937384369343923870896220410869768788902595876141282617098539203168263639422394964810656589602866505278774038703895689636685742055017401307352177378743992596841705232269356461207625285457093250335349412359741306516118963083103787878279053793707300356418161662974526135644831831101597519343084737511035874757280218742142522708947318353912918744979853375762086201126805708917283222539095709619431443570224876351116945806496084015051877731843960790897514023878050096435914565726502659950993043146750721305756695266767900519940138164049137329416925037931852983039105452934309533932205176222529541656108713952060444178414877987145922453256132756392530716096063655373377860475283383937799086967587007291582989746600232268995069524274541806789200272429285046034131317615849824532238493142592488805259175547454605109323720302159082776164014814520133625697603176517755529114723648865940550326707359489536446476426632539788101804598223435813050132483787953890186153583388868656641405109385496810069504589880210984561624416274135548986520937305943818786591823402952094337175272826939274483633670825335882452017204003896290143132126136961931667231347668823151924334519114257885614474558068677624128773126593193969427049544316048479526958439687077094456179059423370321376040073160164241162495471011137284875957490047158840039918584861958560764664336343279536159659770074116301419289393046886141892886343754071308313324107341941690020073945801149231920351485094561186073705291764589950162032752545106339729626695302991392491014096187639368340527837051166265684855212240040950148247482406865060818964935489939980527033540439212268683682116005769519893167874737810552600710298890591406080761006356456065642085070364243385995968497065584431311246122444264914576664426216686805495549253173247437755522182765476433877778337396231793583859288301043222577516095788563773208355727698453832687527792685696397029686149905073325980570330510498580138000571613089822483386465340200833213224839667130682311958895171554587932476220502749836061335869483773531853235438916025110484513232415423928137788728353648428095591702884071167246313293968648949169409416547630289957462219252085974087505977701878750837341208556316710465084633184132949358039106516404386234222978890225158263476535855371384210795324099223499368726626739346742767679385014428608815051295164989896028724881460454941100176627361139820190800365181377079572594700036125352032920986102353362972631264008252530105930709428740858442787772972453452798983300498973695380829048779832529629274549454480162236219856499488470986008063235884864017454164744174013934535575511831547167286549112620765439741189806574679816507004518637337057462896156871325215846324373178076733434018024860297816925984915256970439913961226487725598345971543543618359512750379649380569714226525939799713298619697929166720346768484048792745799153086613874633594885801663318730548139266840726049487827288557445995510809543026556288172490669045180478942822950186725839214575227537134413504205171540661393437642998864758621530336061158631981596750047076134137049362462143669451420600668589862688932911147512924283533200116850042386744275641705674445017855367590957774720453332188601439117479765701808762614567541051352633370238285243136549281834630425204779869659601909826159143280839449930543939017547578609201758100903781387083500800686144095300382735906223427533175714214365383093537085897569705928302296186102797525312959460641043776187859557314305318731622179631063964083397776880754095900971333176229363687280541518447920961449366435869200392509333103288495748162195541851144939276201826650444078634651051915591333459214098671198985646427417718176318217187215898613706436695987621797906475577231754964614076501155242542312861002015109571697439601227460093730511716255247465744088711837691096882235773619834605024269047203014380514505166710462564678879083613564103654799632173675528422608490144467867357408220839355339945377614638968139291500882476604402185814367396853181453390484983724427280290167281955218287579975872476226233891645569655269235148874494409828807993966522767746182807797260693938396378075114520679261883683720932500323712363069891800331175462731868132130412447553958849086676057169073599307708853849997153407864916573548170832533815301910298502693338846819826248181895410619603866519328666597209475982946420885919099020650503866227340544248897884397243241750675869286814956705460054800756138878978839214629538179554114118581202172888636730469613052468833298741513005471294542464359759260462076165945158254188141501706754397093301029606931173362355223553554231106444696110456875444530398487169720478840999591754265807370310802131118608096394570832748720117520562188402276693478968753747946716188283520825569441193243089826149660272342763054311352637789779008263185944106336254049450828102109869741348778421144664340295738762524240308742884144208428031480936440972802727535414946002915091967506916555129989321842241975538103509589611623023987409745210116203116198641867502832097574600677726925443634649275809947280870827616159660894661065665864494688899486565719788705227267492206372070889423954928228642603400883785575900883613922278850307303801830346143714960336593026085970650316431063450600163438751473710523633318963632392457103860970092700779424276153691067360599529380952508410127659488608351647929021566773756405381702200464586567966323958425285747334215887118416648916537331954753019354568946472693919210930263544082586800069718781919184602944894761413215603370644093050306143378940183499940631011480250595292472373749621356804285776063907993113894751495461321834134522469454332285030821404805315042668473552670528949263166684709504601440530606009144846914255895404154135598628072819810557680750053218830620645619988233938126479663364734876898820232566974167024855755590945914789409516173863703470295572673099704385074649990880681112794420889161572845875866217372431948282635321980872973810436930411926872890124649794161033382484062966041114456709345929289809841599686380323848471874813409970393344727331068106445071494386925837855915318389209071796803306725819516533466284994137792122511261576799594308767010121499190026016427546617983790696339527791616836777619028449890196938072091516727007811554967882772360512871666312740193258879575134856989623646266826019984038743283749672977322840620270923972167110256853730950883346068207326945853071618000000444311679732116047710761898790043327649037186218847819002563027013167690595269528753956333094487083026209904427226443110391374210603706305802457403864582776810910455342159745109893371923573175490863686787319662420663672967837444057611022969749511029104028863997677079597280095301959289336080234133042864964715437265942196296532907537978818592941906759536635485584309774540657122348452584183049722736722664043269349889155913384921374560702898398537819981854076831433955450213288926753897102575339265844699947687584974165231897450928455441604535448978099944599143785737860604345688346516992274471533963256286863534016614775802719296711168610962592603461664925877582818385638538959820468046864644521664961722217654040229063626388795082969436943010663116098264867389124641864992871892764685839884332112349688517830273449118024305032283385797897515549961258825172877212800609042355955381807175585468738597867707716749103688224374224048562370925186801502781588860897601445413831082722665037038262676562616398456946359194345686826979125852518569373476633830954803181985799215115387765402265029756198426911091321741677381616025467052396727298912909208678173013900108126289281332395470831697449762367332666701451088072736283560246646253831380775131592614048321241215872313036767390643411849661743893006226047518091407179653283850023480569350263996741983971331801454747004076676807155106464563547607432297197074852687293890130568164380769210278563822597461389660691708188968823186087277007348200284649225861295712048514971647362711874358454857350314116761257092282006803963146498835922718928993607625042794064656603480886849350414186232663736218837503805291039152964418745915387315898032985100816802170082612456372846188895078528736740706574822068681338102801403138198470321716615740319875341889449625138830918939548215025265063981633322648547405995949977390533945214918247864041054334761477031724758971080720125579524248462765528874231675523671288742632962491427300548545140710220615748576867579013942707507572287581431435386984517897563064950537785085759513649258198242699707656871967549742564098622507744646521711015588927501348352197816127611407151624340798531710842422079681132427135677722028521007071972195161360386486223127757110479334241183808818311564837547268481478809544008973707619768742716577941603436758948241293324220609662041724928754673317501318549707698573022979331895020623655915977036385646035225614220746026798328289980361158887615298971086808950592718548665979699908893631106357090408677668547460845208235547126647212888779143795334093940180596168697470441129247385428202589107416176265316545707766032078051372560842223629380732828852510851089037616482450909861722265703681612958857533797780529346406501250033202077179739743681412305448130175245116294065554179553318261295269636720378024360475444424275048697935563254111143286008866217634671102794759096147997785251391317991083161666059493464710553726658608029595172417901235517883143734991400716540971212136476101000020609623992728348627997540590814813437012095607863228451646794393860486519337418151770085206702976338896348950003617794385725253794241278814499241363304320779010521606068588641882224741932589651090722435892018577821775162301697110344574063882568992071921257014859408382495131845493201570294691817668838490045542672257357288217433370846986391767053469181610045501593300707740691614121348174346918086710256918766542820994692187690282229256952516632201260976247508150958940832948785766483253677791462157958256891703233656879916896340590598929459154363097984107466364058904140704358626994744042479034888058871146478727205303422235503937489794560119335311484655754604667239211019539691159602257697400498585812344875136196945304948778176329706809308309911880924723565410285307711439697630809976952534467774980551549360491466849736315149597949056648219757036342386132671471568605099585379346196075598312749084158734572283099687562137410797207669203936836795397256906083672683469532660808582061189957033747896028301834690111477911247416440521865751523731081550355138557918563976716385747736328661029141163066700834459255059445580655224200707125395964847769113346005494746188134228190273952172245194344457294682016243355436739382013226084854017881964181912684543141212161197930262412145672331324360890585019703111685049620337805091698851406701209497295946991250123286580997081224361058262829180438317759449257769937055261366216454173254516122949983618339294622115029410603564280892219089447536062121363300623704438686242508427082900059196022827224597186993389324971018387046909482924496871391391837012103712093163103100925920683959492981688163432057785337995810428462572499074418201703826627303354798908858421306537893323472347910853549344847268956872026528462816738507608879863082124454074102641512614053884454723530701734552881803363057389995444053389284047352002695280107506274396233124419902540323981428778919306806190352480847072770272672394538751386373240792636991202805566448429528536040554231011508551662802311212787637754042545639439781633193384289779966801169945684027008166140461908556580260092716948003703913071802858163627449646942026753400769073752057754555638724253469782033432120058586062061644890335062352190444769817927029161023316760315872592034942908116607365465005172418224139170836291714075227246198740512256179849752309426545919704913625797729585974208575670689135060706935191235863670410591922266076950359998311935559867346729035232219692316007175738866960668299748181528763094290653917372606480821893593571176233761918462479630298625354571085590202414491378791169507371698033772504523285143296740514421833907005282355278647396534970234143574130146783344798585656951608218691462382660623911823214906867766111923837525416553714485623695865905123460016067825988395058683910352602097936982327266895141363988590181168802442778622118855302360220962070496429088744289673074452940072127313926406056643725727251578589379597400525751933863883322100372925828151456941615695523176280632525725222733760679440289286626852485318474320368268508331039065348132126748415466632725025668030271276778038817027343269754040914684992191242342058138474058304043398941838563913071337488138701931487880081536802721449214560303148681956769114716747285314015849951062244314372778275632319990914993709347798426138584513982526461688247960810032399709714467384124179398524467634023633020221397202872676639707800599427053513575726540670583404021711949859261525398983881316184547440309502020128673137645442337307949296517047978350369874757482495254978103236467308723838383718688319443467971672600535804430293972320052877940780708363906624676405470663806735570405733452733002504325367085195162372511435316878724913679195678592706686207433402068740989999544729930290850461160240953265175109427354566938653383610141302989875466520976313353587905541234057628073788937392658340902007459537288286078175743145126419776299370543057454295956833143168160370987424796301344275769504429519695626845629873734033637762775536889367382865017464132254301755545649859846467923070817677381203099410208211007248263361667012414889267949927392697196286061108279358709271147950357599224975762938591097460082032100595336565880124285107662497176243081179472432504294757744811119050918252525300032905623019532904309424776373396827537189197851890525412358462485700235502085157638745446245159724913826378798981996049181518919294875831401997199435419585129169781529850894840826270703301568544307044126575900834911492283396222414434174945536476522258642995567878607070780539647781103222624572404116756293151104168096843928891552695443786051632188408353231726039182537832074727254999632617123827837296761071731678281472144769379972449852912670736236798039400111053929777292388698022809906436005573925282035794544609797372904078229731089277971102725755964631378211337240889038134022263800451230571434070873464169784277988097609854023990660360218987025215247121629948472761528814349111962463086998293955467504272325361135467694446867208281501023538409966938526504514618941559798355519638108802890119367540053790762886476935836742549280386787776569978147236684683195646372724572299432239048220517856889041744574367112209835651389814686159198253881572935218721638786848794548690768968568253999499314069307699603411591353588897922941445863369167207385952064481936761887093129002795954164139616572405192138985480307256612154179814677739375523747966747120806897775438841859027745474660120352213678759557376834998939001581001038278824786206727021376595436176535746815056917646934099758655804016921355106654559169311791797221151095247963763002304328365477688149733391652208586042746030585296779349514612446622191868818517279764163460780924168177608682098849619203165722932484360759352661227118169063193233511271189276784843058964084130380421834667926970647386027659862495575682304132039518033377696538513402066861410357326722043617698595783515751211560365838757400034236846814652289152606446078190043670656399453896434599358335936756736408658415683209208375614478834518230802673188997153727695425305374889690347449897704728719518135665321342859413125557137202965571956791039878226276031581343116376391983960347050298204324740263916661814633375232898065033215671511045792760788934415694002446397835569081586426091489144690255419215154654669465015159542182595085282016561698474755103502252959292289514887270767035567027019853366415568314395013563324331971144179602957449803673810601433426101761118330375972757232984402634024650832866309529727294211386057122464253069252329539670301423732578794492169491495268264005548120522383059665996614770474630126878489885339002878371157144418515735510988458324932785837378460647869881011188685618354609564915204647825162181130311366283783695999674707624379871717690564314669264604669884283734012180486360513216123535185238401553833606669802752419882285135304129717341443591892085674796534978182560327816494943125060572268335995568245511687458442505415497020035395284259818570031673388685412005596721805167809357511356576428472356183697356117234395864444803386325497984981017082528467755108864646474378377605581856861310482719621449401960058749855186343531917904660891414455366092124685340951900917045034437661977348503667947455056116597974009724555750806825525291682460498610354424780580073442655653187330342125103700273950714349684775879757563200570560624560112679596358822350810642298108219919024702790567817652871129738250439003132051123315393271238871237302978499312946109886690562711472187294633442784125222201500666841089256114673546816462705746227483106591338931175926812690642291623988458981918921539521295094616339816238189309984549983315499152476990085729326884789698611016573488659677743485473515118875514795577056540722917439494240652951630588583855219694743734602810148157010680631202978779784648575273983448945081324728663816346168922160800247287486374972775292620502578722359352300435832653838603332307528815625803628683333480431384480538715044987015271747519331994858922624697856217751647149342743149074337329287886810291279983086529788695561858615347343741907671879803405677227298040353021654723767910177303524068194771737008726146233229018860378123003586445553718257519866267194109530697315955527106479965986504007918734430774566171335187645306206985598185869510589231897194505369403098871107388672722848033825665282056333780063419206950610218213500212041658039158917300750568748564128951185057141932265952040990269346149579248222352531714952729587538683486168720834926699493538654373812510271645888464829767789666434935398937146439212981649559254208502654639042317270454096987623624136228870551185380017418580911054534013204208353292706356808192616646580290984562063911979790266689964695359178365383497000034468038006165130050507706288942376039964309003937756300980238427435568524174410895004017601385229649586768851238992533637263510319282138930059830147799631414416797008533447242667029212462026443098964830464476733935105497423550689328652370615624000698150608215392867331725816225642976978358843300241516985028187361412871773990525826907756992883038740447549406344486663579082299731082769720527515842298040058351678125620148955557714893657340938476602221517195150548513008371580020528985219795696567820192211135606793173674002247300283328788981211875156989521769968106035055597365559756323837157582521006561639589105092589206291279645232975426027937825736365124567985185119852012601312274006810357806686046222803962873064187451665111909067654907322248975861623727127223914607145781248458806106035983470954128543256626730971737492249948412475869548682195496755372976936109135181704936977121625812363106444602845536505856155152326212783846489638583629523451994857010278146486510229370763298781919585224335718439670907486154538404996779016750071376468186712791873711688573496495558808691612483747850022091805355134692276397898529908774629217562992941964009313070196302855001259931077092810038858530088219210378163196076129676721596906050645075812654691659932375803382753256718156508195578758455787362222128067945088494281302962626862017760773099324620166566687190862664720159079455894641070961237525037552050888026013245121867540785074177045339888870519611966264254806367611141334915176194490914339530836259732391641143337674887584721449516701086057664036590644760889481723146804183646090936390048155192297399727181511220626859788086271384739024186897547650790559737734642834938232826345428852224470500708513799687870108018517641224477573486239502118621972459068398271550653612337093668702360984253661821421933901504895471175417426288711264378826223288816672936684856964600547510410417614224324785380768965114982361965610932480512330286521140057390144423060853994411492276634897102509471488145169192299971173152941682935933001200769443876710049045217444376689376850207351461321079905842870812253542755814028489218644141767222126165473304550625948415060894246169286384399974911330042512842728117246402404398095189766711188850327244527416830474556380308649583166053967720000706467732049004780128406443128357183877499269949583839027471586255226249564045173435851102305249123235062689252612000296686574530820658724825414864274220462905175062686138713444851024337937780834306105322468572954274711863005302097061847785176753543011242972334366819805806286268461644076116209174621471112346351907186274805135757417708709828563494562261959746439560482825025460810157860090568444571352692497516799786719392126144797153672861001248028265211486590541320553337010122800081102621739489913577077263525001162461825105986945993481072917630799471863507304249897505823113811573123246637674551878792465736766449285777506232403973026450626907918908318918512732680638355245971940768356458622536443724274162922690453565823428470728728544899934344994122723559877626597232272584916437847937092450695930332281943201859668652042644519592047784874154754679904574576463717767414875392314663670605634876373508819115279497446970826204260205750061499061501846438940959671888332333850713263158890183229319482198665561386820188110319696855632294084546170895994821087204235145173324667948518567913806944406165107435534534330842702844946537556329438284261173181053369508480802646192784293583728894860771062341780215600861291384000730288691335046532936525231860036263218081285760213896167188213353549691576881785252484531049305635053494166331684654715332925729472079731174769051772694908773126562304683229678573700572651133966062342764033281610506292270561513421222330441050433289778323451713179147350728242987924239228618926992535353543640757826364821444287638699771055810789143563333386644116455427336253662412461614122277970592269350034235153773017332986647782805817956770249859686656518365819987904697813244286057537068987889226466496549156937429501416108722329621334629231267157768385320100468093045376706060525171840550665922555897533772872876939963935745321920825985921910205986215271652022931989585612682238061753897480406182531855259271806490659098893858041694653036509966120327757143616098647381943793142479328682644589345245981510042166063624834705365604810019283947675156619472858792299907288816896521094938058755060715837953718530307645662332856542216254065761300640113141132091960621081805514374112566386241148628864734335026508401262130209651593368223862707111510172596345975731623649675364016142066307138286025013329776870027728711253576293046662035600376109210762326904859152750881626390888801741458510169983876059207658655142973779658021731728908950506801211130189635809905682551165410729767789623173103347670188017763665230801734326473446294937067391071130376218510176102280128375405585544232729114129501271260248005801072455273157686553039023704610989372949336293680386103826196079909449477516376663341074535814522094794853785325499378725467056460604820838676575941299041821750132243728415774891970011320200975536931126423209271727865610534512043233458098348382351572646599916694718334028578701053524496058766816924458084678879075603867462492373194473126752951215368723838878502758223284366266179693523280508579207915502570935074666990908794050426948381157256682073371697170016778229480279721824366701675612680736357262791530997895857925252622160292319272797441396591324840933309249289148783254861688489266075619661399160414156820048306144159219158565270759128302885799046040714449272086489089846883297082659223698544334461890964403913539244242188933841211413067217243398230427928092284542955733202640645021823750953683210577246795204212586296149878979197564202253162786640995826605612798652621196799796228631593662294245057902644143310136920166301932845139509667901822722130958538564705311855787148746529611934488210371779687502065782510283303995799810149188174454246760295282848537058111429384887817909720600547022897863597841269257585349550237326077096535186722188736816521848901407332284519776123960849643180474371654826831368677962518642071141824120230925880666536414766945435276946787936303900880860933268515819615849991400811895210683504629928289243028660308710391033603599859038535680640739157533818212392522891346202534076123190391807351797334214703832626525645092935805230401783231665083909067082257963035026702275357885913234981886133972965175695690425419695512213667013492937502559221011389286867191252333694497199266793082089828153654728146710454559973560888624990660989111338732953854044608574650682103743677976501958160084837113146062072920187124251932185130984535734886477210185102388365647721993713653437742520454951590230140336787146489562310866860338081127562787655185407640120270961356277447196420504988280343199549916246013456972718473179553219915350613136597311423090187182991089397565106046685492935635618400265162490541034613265706144725308086557940486755083201191205969071423542968327102252147547791429206668691914891228575458690215689894191625956993665637217310654997554559942216953539750115106328381616132495110325672195844482454160798645443602758736725653324640268798145404992195236189023255104007314724052403465407139441094967788183804971359881591435705159883134778701921411760315091971446184524492221184596629869074864020534810579800815940914913437871669650373691156163642493827133701090813280051188382939996459872055816185836463714835906780040025264142451168855579201102907375999971297000250610039452696692264516552442332596249213223467188642025750652224481061995407757658047290329609397970591275322160475002298028332500237621544149229943822703848780473536579863947905762249790915815779715927621619411756810588822468846395828920754760660258753566722501611049691682194964287533257698064214839717584565090576592244182904807142865101420946359288424884506875000381227833841947408149073487926851851451784674102913509345054028530399773577657077690792633733348814322737699950301058564528638213929845031055392429299784326667288473579288657459145441224951552793825835866457689002359258626259396694139010116234215553647616119997993973556111276394908652186878800416101527182758638967027865364967152695883008262370854028724620814090154261378288890040606396071096475667405392222536853992954270670613110677084785145464414929914772024323748826425993987996366459820267722557995561538774390721290238148060862505119839706121246015790434792796471494237249844352416519406380934316668819703216291165035754197964408119063477767693966323858224466217693566587924771704082535128813581074579740138884456062905729871415770873034724486534768072561544410016585200414368181173217659986111481828546177189853911511311003638933487665844444166246046120304226344939266472585409748376425926589250337305128539147500014915251768897522816185502250884640406101847001581661545979589231749190352786702431032671745916299867636819042895155834224185416356911387152823199913256425372936110600862348172415777992112991045830762214599942337786910050805648343878735867935380141340667629828850142171055489883746907828625360258291139894220020604202222648994156845626560120849567100167763962261496295875875553420696990797236395378568771308760021746871885873237897664736619307705270683878233682041626082669446945500647893482856008164567360983772567428301870862810771377046803717507626486274823823231409713311971376347335349677154465608456263931027264515981755809836911567423223397473352778058196806715449412834724315205545283434790765561137769572787391953384214862206529347207052531468085357403930045059577561396381888530113445131638400265129167698633501861365498939854961731233611633941356590038167894719138460331777374588277477146550385966716714960769405056933193034214419149764197150515492657132695854803947351185625932635539418556421551767804644754338480328840661735637264685141601536968059691809806943692209149774202537513659002642087890878291431136794741754988469450266908772652711094881718988560200511786823871491127284375799575149038141197238048436450007060000678801240142722257017624770513154321978733426930519189490776100966258113052720150621568772659107819454356653189771128387294992641633833616763836989368364505421110838749320268713590167795300063844673300210338351170860031354805065991469595420408983612233747176344209240347276560465930995686254931484655532839343432084292686205976140735192841607056979416026991835793457220519399020433035342526827624914355756665521595272530443008995134854323043963186723391203469212556584378952361474496014425453263070798134191052026339921914938473146268120357413932074512224691023491373902694656683206168769750814108687805491282158997428835014318498760097225693430291940690659161218737608157443000097180398084254208120465420416340996374250265418309718691317235215821636626517040812112225226620408913565030114719393542034766030795628689116058105647933672353386426921846243824532526167653038794723399527074724129468688453968244844383927776902287833488460387297936666961855663146688401219522008798527572849704959377627450446519575050400508270044301746825360423951388492010030378596236561534329339857593398250069578104980828071031427931385873937101362013568059430858025774469549020009631120784066967025064524160116671071173093096106099903281671378646657298355636539478252548239430343621165094446081183361825979722506119476086953718470526616130990368156025471946595504243329776375349938669637387049590890208449274915607933746236418044869085088455772659750540282625320191365199073515182295905374403499864018645514700517539566453242871729087477950406442248681306765016424441840035283195530728474767342257905194677051971459906870662366706039628498697954025489123942372956277242939296467510425740287982103900235313063333538460511218302891433444596708970316344490666373331715202188462457822228966773421111873868555660117325897825635300096504610339295965283011428328669387748193439632707189845658591818789253488623300208680672751504420491869272744865164734421179593823437665025126655036480575696816804948663246057535587697654212218556373726913959806348880751801049455585229643034830134048617466111717529243035238317042274364638815121085673461096669841089759034077439958312183650193348673001904584563609825963782282163363131995699372457141564358428533193993837865812983915008951815835933883024673721374580922023804200433974899398510264514197946176395914452113185736404144155152048916490849844506952774147264496483464365290649792029548437274484116236234345894563218645811320929233225290211009185825079400360723390720718451130502629259893192847948274001055295128750170578853059603317466702152360966869168955625012772570925229322366545003888479078237981872355713194969496483594230599245281771426265692655757998267485236121318089652404913016060551061328706934547911694024654559073254700483931133967982630639254067037325657545900546202787487579575321315443067838320947357225697833503679994114667941467751653326873177515207753272732717425013203503850368368914757580606682512567740448550341743907251583283393644375388524058246932970688808193690123277503275780673537059585288582573515141975350295457913658425053582569055712005932723084806694474932673407981737516540978324633381851536888682014906174095205603123330735854532289277477374362855422012407743383152109891845297868637169936433767086984208846247225325815249365941156193789522313020587363789733121625937843339944749025650467845583990578398309552379812077888614002342332682886906858135272038437608897896893284170749956460888089023445862725669921171755188323920994145731981700595449791377546594423705842860920184502157981526984294415460163122869535594480834560590748375572143645784452823179562502423810173523181786148754499290070782097841875929217918704371504600870528577675175442708157660381425140094739649415870521710675740381718775813021278772331500018717378712196100795235937860108171247631779422414851747523574117860778197050194496613324914195132667358540787969092195083817769622569407380020843860455200368201896610596805522336160343628142016797560411303090898073711430708868977702294406522787257838502767082771672102108710328035121734710410538000034896563833003923853513854435338785694822162295336838061901409304545235684625444163596518389059362501094801679610861870746898161264419782222451486962428995824424634364018295759690792079870395386939937332241603090210525160782255203086574239698880242322052431610326141010218021802469615869067574112181514475989374197964361562482955221917402987645746283928890869087949325259459244528056104489049429834327539547947132484593943440153235469006649373589197092925793374096440476035224704700642220306480306656786980757892307208267016350052226344969426074680825952235633291785800718400483062358646782433252734630470289933283537448721931931270895958497396970731867974673291655322655722480516804389643462208339546101989481058274455719679742983043941056672150432211791903989920171904558162274145811378183402015365998992543162138713940136317844636137784116601685370086766036954919758347663773396380667708030224043007627867174491713016245745026681525521476830468894844704874936281617050248599347151717725682357521604676324518260632427668358337094018695158197924938357263216697545072266383014507222106472760968197837103381883159406121599403917685138090793001952600065610752988072686300318256197555757376395225294331979754157004948881102805761944367936325645113141568860623624793994339523021646341363618815533838132942686093423872636826292873435750266770888011654115410587235809090869371733278616861570576204930202455910556154746297053506750669700705183506512382626119577052531391541452715321390427199190308227654510876013712739399727685496132926929972531020308801886343428645019956891102716483680059576880224026149948371563242488858754714652570395611622010574356017434868561847948258214855086951119426020703888326413180959682996938035295199959308903707639971400006740517082551431057769062070254831630185340419397848046881396675102222034676462799241501940957620629616445471740018148451093627669127269601771784791692968654931251303575082551378442185833254020455239713378235241880220635453259941554257814327194321150317956924153568347222476177111946580653158373551586851350947832064766166623780016085723875697181948958997131775435087196386611862155176892616740646182813304054111714063739599203149663633682514840855325483221244962608865451401569276157976757825857132435965405488075483933622243924868273762141657155879235732112130909011115518329809004943452472051375719602280325621401804930072342399134538090381684999359333215799838561624040060640038586017909005321419636543299779147274665797912429019589278880883269713428033236269732612049147583454064985282373584271086041720132923008713638115762041421299674867019405495224756332393576690196052109185486422614134786638070123653219261753260348787221613090686900344040366670115562131214345202886842157070257527169787470322446470140720811028055170508372537861941869729671747976146179016636823875814076125705223043094237146476113101581398410818534894123913247049852689005638691141407873032467641792383818034782912911860249885731165844425498904635575341111758779255256333497100970935131047044909030847664145321890222633304453336162446212867029910294364573019220483123583769223755071306169444345692635467048972083190089229889092138422149164658116860992053358284780737427693027437023393961588732000411436346618636237314635295364671776494596083078184756019464874311091521459551844978415874534126354940066070539903470484206896625227412271661888477091029403372334135553221413207841898748076505187039726016555165562146705688251308703272037717537057973635748178307090368909220753759518043707236545040297384964565990711185469630277902289765196961758141498343837568371214446303932766650500542233636401388051849012823585902263410131603895930062864882716814406950624995884907397823848878017880293089538659988954456519252916903277306596938090159748035961330764255375024967385634496659817008780124466357671304884834792882115042011110486863813707470637612002431931542384908116828909286734952846183595653169411919796964749565629852246653092895878150499517894054492869013921034047525677134917987219029454599424372472790620905553236581091326451748561765718856913838971005894278116756748273788556146351770234815598537934019176752530433584397174626809789425111999196908277856499294544771990286010434247080176295085283332203216398214508345854527888545579613457716634170630458246930867204278358260053796216767079010512953892269618122601909968755519190135501812619661648649724859625791420682371059775402938028805327642381762774498688485939459278044802974894800101903911471244378032608412563616194904869570652003678530386318083722457250617419519232131046881106100212981370828231146455627198189114726750159239376385577920855749106934663440145126700690233287099725006953284233279019210242246087323684169601735220854518797680990670397701552577703202132996951082465702508383336914141635507366511615052267328150874841909240488999066862265748331545995722459150693444781325641437241968349101803716574933855794756512034285188756391286809503479163632921391381220713275000951881803587801084978832100172267874255117822901932499390606528819361610946189886979978020814439021347372525110264350801744965500145692228142553541470707330780054098506256297404888203972415624195504879280609034014408210939263674905687829365675014409933228221236051825871446775780090486730880765749973741007121197081559265272849937194712482872883211570124092862079718105003504773948622399077246156100914115393524124891187848172811695479611225122844370960649114300584722101385601126312490411157786907578960149586848984916622609709441006272849283701956470628203065435914955056564004192470031762556922280861656765773583514529417499752593507871494960131108547818270125921774890745553871765224525545369673897786930281609082291147887280412979509373767261349656057583818944519663812595438912586789130678474312832866951327266882849171586248012964586434432287190260079364209469079947159684113193706335082785371151006237348484054759110379350431598344366937721510311183362805474117713460446512296895218105538693661120356191058157352156740038972174115259370490026015602177377887243414346000300114797596448205399411257913839474025141494604206398018387316773204202562242976999075287768948194642170426746450648468327459601528469562428185287184523998355644170986710604157777014541827775917595624700949253871500369530564235994834827873359189210652659413592442045440227256980464503328641918336819963189929942197753365864900177118402672924325311715566314021227772229527944608580686522076731094781620577470823855963228418285361008841778786807524465551310275922081088908348711965364480437441866668664680987115107863038340803953675927908388366176810445685186009705368648855061132550222138096402211356767651203954982258672202054173802231439673055132480905237289457213038089086131448424217913146153409352175541881340851213600128942089091987979168736480143487955895572095715317403511167602996498149273434441233100429623084412379801137709843457619790269468241907850994617594468956354811462900583020067744437766848624312672276511793220470057355660891891660372095306277994424067289741347578896931916707372017150815700037406582319164818745479738153066831393162817331189684146141643656666910953569724387412973436553195481227641270257999987396457297036758713693609186882063225103280511656380230408564884421539326547486298048893538822667044617862451977693326760711325974993345502856431794941757226528683905795608738981972867842418230432102050886145009825795205383649587897366822218449979412422334312014696600508112487474646312163140641456376380543672602307577716942872441629455747108611401828375252763088625821090428369559794002338284821545801534243535143358917585646656362020764402343742018595277072726761575475291836531697676369586872478006541432111189439974286344193347969369938811664322031577004260553759339056535151110720947142059137343555451014863453029851478749165166864560090578227779176303791699956764181743260364792502861589898952472641492124321163134656733633121139102363232227312610313666953943556756990048960641723265517839507697255640164611678147135721604364038088450287869002836550323278722758834305383585554634125845102940872961725596633829203580525713070826838668780525637148418675077326568349794494795894766552380336666328067897058497293070929585290336572705302658868776584909412178616558609712556923622898383260149428235130500313147282582758850792216482956394233839242665930784579095235642508488066815940955856820616416933293362074145326940038923842333654596757735843399346717399499479320134823709724929423753398136989678997601832319003653697960714865867248599464750190493585581588167632343563098633277966915206358073755885867932648489531250172351530432023697645188278915356498655957450072935370753626898299318486294177851046693939797397627638699525039960419513685039623013273415190699654654552558016225218767191419194809593000618767471200290718441702776768420646601248037797801231450272463509371631745412969838280735283408400853522643944626713346068683714777482924730635574726151552203018421652630108246006205320593459907359147254274468510219104085877966795898048382877286326444167809627779976209559599657468906553498348766011343772975680654079364745112124921445942794911569625988359234430561459183675907061208730388935738727674677884809866415623787572286812570141626970209424749155010173063007893581139993698089482708676993301873017506941095276807004551618964429172017376475808178042360329994689317391187833801698077640169770200544456382242905191210677035316876604526961313178914432872158128556673373497680817604075186738732426264353216216043881826697410059956911150706020240941258232529775842768355655705598284755957200100006944558472456743997082388895147683555278486599164294145196853515522640233850626266417676660389295369634577521133853478088830952419922666197923186671834581107140014520434939513580613079112431885602089947428170654576594258817855363292985635958180693508949951548979332795286971656212898900616455862869205206212595437432694512189445779590660995332474913565048563513282465551069919804342134955646353930272232101202614719741854777178143393490175077352675084444413043404082485764889625708113359534272977272892049485570125400762090235965554100819682188470936331460726871952770011012888376120675081548996355178193148233266930151178980077474441697296117044618021168015458249137732301657526461580912123008118740504948314574786334275217777650469090315438866140476580052815587750620081662405661264466250986206716328337695684423342921804116253245416949259634448383753964062121126216603363264742761719821465076139879633941672538404230049005180403612097432121644829425872321476219832472767778129387252379695812888372494184948132215481044016896579759306503103720357517534696808201219378172689256362182090818844997578013836044095275755610069945495641881542841283291340141449882815324386400069965655617219882169849770318683817078846051490826805673751209467354300841077064750583714664087243338487861254482450015015172854134727195016633277872492495478945422454772476869012149136187811556023515165227006800029710542790565946434520139794542644946485604030533314422813604931617295176425279997627194880973081437091114560707589215821877699740650605048814362153785808987977996502673537492709364307458286917625595992248907745908219545303105724503464922353204896981910885775922610911703907619854200337444629129378258978542139072762553927556882283550115257096769756129133112047929172404572637886440955765373654994161652827930677625898814214370134858521646257283445275422285839804516582736013790354555970429860917506824239198758097644599946358406741597532934643857549313561310004900698602249811396894426960976919425457468728159524264277821514558839294992946339241889852661457757548360554676401454292890314027817142566640259814290006526724115192042412076300996258478003189250808079352665547002696157459569591456628477223412791328369397470352930574205207904033529499956352574240096963373076749401139417223860962230506599449808058879811177686288500678154160712636211629394881254545541446918186381264916376587047746961468647420869300411559389362616523885574993506887768278173332355864627820012544149878407839315871733816662941268286302249613043622524068341456695115919513318019039815961646074815258054577058897996355060775037004143152078460083504962433553333404147778534948155987998887999793553249421067579873803218264429447534989730332180427439278828895812910729498334528321094593758476088190886730394906375962295230763388422507471829723913396254184382639259530714045787344854269121118845328810771880884344541593393135053670209418786665939034720481256752663799745554265565322227399990543088517852790440666779106857945188624238375871859679638376701334670959438749617973800892291782132616476615573729906067001100585382006621693532453069578008619490715761387559976585489337817056797816507953398927309752958238842065787525741371877783099376690566267933620394154735412337982244357560540953300134644665694285142255859775363136026130266151684619144291364377124248197263642554081070851474046249148856024913511811861694639971423485232658858510866536905342253673729371852669969424941323819418646279365324176797972264241905389012605697839298977898788395580037146972932074613640916805786328992872500029859771836148238465666791227507426345248386419887247019536117921471196188330186179327247046150431842126908964022267999918568910804775751553514855072906726946939796490741943649833885571933755031051764805994215896901981672232810690574217590283645703083736428362228695324372098831004189825096446001234121704619931571961390177732864437092691023013927490833925955341981969497648157191634823633759594553739205401127187683007072776491889892417520580293325166559901522450727974422911475630631280213506527536419727921274541481130610767752401788581011622280723768373596405594432414059847266460484891974946069549610980426881404934687335439010247657169970543020696226482353755479797252705961569285480710204876016669966682763086052445323515581163472591745984640721921127805394114076916375566289958385134009341439848816018065923486320121917006206942410822270516638110928493474172128839737347756013120024833532850826438251427797969843347437531576569405199322189894245792367312306924685920184407063436353657183214611499529778660291929574184756437518366215745664194839921114026792403777911711285047032308254616779025313446310927395355647295831547236929009399723988127200634000834423109932086624894243356431733074958091443233873276955965568228519026279758747274373169157690820083660668412600821463964188079613323631570644290236809733570017274647355486317824180966964852436599164701961668002792236102787929541099527254512023091339574913535661751375191303380196693239061742289901133975288309874999331353989375972059828874604953153148353018285581169403170322048271245335857673997760455192412959664093454651956802432251663913665954924144577751498528238862561916931558228582791062317564781304585943973277651152089000430235635142531112211408364204960906916400803203041089914692076818421470566455075358958529887946339670575914357303079461225969742908892724886007542735029176110059940715642244018991936522581595815791190827121503739617701924320986776824253713966822067761700057934993553199977897597788909572301255608715370049171365554213438691835476093277517446675702767505637980524144882850894206906995468367365364341360564113488190393917761807902991990852032608395331308670700472753652143882711044592366551896414072578244024354859533991142836765470307686548033912936571194381782683473321260575660827651640748292127415954762800156801650099102486223021961356673190191726580235677361994690438074269131911960163684005422424356346886753144187456762522324394602650876831751792475780030758003319052407920126868613977787843297472896788201101700687680040841697716688972526657193511082126059732749322513104015393767278528391219228087658862767585437057643826088707632846387002916413982993482876948883784761447595448681271609284561413419754137195403434701893884556671954185147060302307537731028183747649151153961791221011670457303135140501197317565476052668430929407376100004455879096758564084985848046888794799194686356032410687844283843027623804107849580183753544031170317220590765225543554048756848179658310640857078440574210357483273767033529791685475668619342073914776452391563169460982022992021333469605337913665768882097548211843175697738672950773839435281800302420239413490217288936064991455743331857364244537366226264457320527526703456338401107881558222540397035391452782747963812367559551725395059382568721577181854412719810774803230600995194182622148088893712558966608162754847412756760019224474121034566689630108804296725936289672700290805969987305389188597318070572897952759039744843977832976693404745580525479717781529617656169789454516301196382494591739671271995167126703887340018183786046307534859999934213752293587917376006716057767687431070032974761741393912419875240870607854020544971059153849764216277696865444841789473449028395616071149954306712592691695800776075502664353911069925984530650593046877468877787760460698333299792555567520996177143082717332368712480863651786858858013205992325810756303468509049033211125460197102043111673485716601342853144094121533430256699836045437189592551147215390945419063651088669480165728281681819937271909719522961972755280751777659021864931744855620308869512728793741644354743083293833397097860982759115996685195338550171467464079511348370856777278949691842336669514940548547884488323702479164869190448749489809446860139983761366997305913391064044868310483570583266380417774414341037529589133598113260654266324197356848369635242291300061801316234791327573380728899676805558927566805454621135013763877912527381179783152582032116047567705769771494034157942720321202480105889535550238006673511430687123216622065948195645343044946839722626345672602248211022193074175711918536289968473840347171049620187907237967603257419626176482022842906908404938840155783911852117962721046834091788874820788004186061701248967039849076063078026245904346690517189572539361350867533212239310214011984036194877576976811149520634443191120232727066571068762181758915141602831286535910441233569215992794559291043174627841046237043688115265162488753543540724564834419698932853226860753751046194754077247333638562582349384371860401493304705485387797109886929289921566782255925080847783955209312990559209137425696458017555556529951948163370970801264015980772421022288168238522812552064199893621547403118811364858347750993229599056763693973533635496348561167774796661830141196471496443733143426647926629643095013425028564179693093928231788190673540391755786394326889248984305312571572671648852042823851077925487013918878541295634218602920846320568559085826924657020361924130855509978612527105217767778862632487257590080665704359051457312942199110128210479170040876722743762349593699565422653921728167984410261797780031105517634670291829678941289960622047118159531514236214545650542086963644011359531332538985022866139929868891037933708233971570934484016795628861618603941899450273738283208546668962315498600717584415926173737923696522181618435102998847861419328450666431190065353441494929733445866094430052675871942718150337703705159659616906199004899840295912127507430582500896827879162305779106832368919280111764628206220361162159290255707404503506893138184458019510039412450459398610748059750731003116120856724756826311199001696255788575729500506894855932253541756278168148369813290319706789428203967984098873845767926422223810767582340316380931347025189280924099014081762219514319919489295062816883600786306626807029772103657934187946532988502091142286992104448062548237456943073041326563675637359556325452102735501585005999448287813845846038124292861270323853351564448315229199487439203341799985270015677557993906151153280021497527964992412382064166902194730618118513083114229273855196771261562593929043672761984753330607262239684686791353935452973102776660477957332119810646834867012527787533006122704005962098498512694206866864902059951173088153182867024259153697667464997953532543687558143267974040865093989401541793270787902729566048109281514454105652992154855557980185009737815248860538196091384514495923021545678452640914898387669638815165339434781097874959239028500600787668783782522176922318414905356204912984790884704920308097178502866175864299356106895496342606128725933455462760037208946162383213003292608996484719890568066054543453626614073700305451270665380565100627150326665676406644267019636022795935785068582008715071459413545765217397063924882940104666586235532676820118869589190469037867208625143349260242429388104851430147720425933264600482125924541390246472866476990298681465699386860800844997231637395924198397212771392978626609661422954569235023496490646527427552731057562390503824838079014166981450577646038005971396961789563633684840501695420501698399373854565823065115890732384499364856089428195296314567204411105211309030259453082888423342109935062133498373610102671820177261010531466977744557835909709015136197046015247605538338136483277379020101807161881082871883338122605067329193767134345863008654025277856765447123081553997171709064219054550122277635708978538190893053579896114498652682126047001571718449670128782662642969596343327181446716365333495437938931055364910176804642962467466276546969403661734812203359966562937181746102372430043889337431671021990132147052191242767098597148140855895382235139782223486613289750479741714020737338135744490608585655812634145059986852189931676714677014585508271285313441306285896513897897758069455631193784772984607583622973469539658143049620750302119761699241290714439879297406766121406661047199606349233163102863259905009452634479544889555963752778364254665718018063564430082625919743820193966411816400938196199800600456164788764864982671696366145583035819232798914336901279425000905432113430446556670476404105937404646153259645463401017886326782992624939839167968560968040977293797337057940169455164152899193941379648750707607024897162664453434303616163675319468721954392609373188066458807592060658138049145040406111351173024496145664690785623492694999060211985656015063658903951127136995029247274765866174909743465968072663623400912493297905048696443480005183747029370286215732351379977190361199901613045465621886724979678149436697942637775286090816887419954525182400099663562885096964003802915962248162957212045882990633188144232658974686579645758860537165602639724464767009066804547493331773950459267288798220947320348667993086354899835948436073419992513726271971175890899632079855024507379711990490718220966422858253804795955616240299292464072119387920133989990498310284765299415963578652917830825550854287298650398372755450360661953808586651704148970158161240511924491419997733701090334002731871890054749759470762585414635765886067568504176227535737764620566452678430857325947958462616154333922516418959205444038948344163445114985989048191846876597850943551383461471702328763460674342561884417850617607033459063589586894721512239515013663516756496153411071583965703913632193837018906569727437255496070227904521137842774715308799918047389577659648088930127656795935989689775260470490733164301050205316519178063284924607303470517903850755963287740150143225025652479572789532780868769407111770865552078266796243985990163221430743776594622301549704248707849748793737739117134057016923739891744916978970531104187017720111827772984789755973094701397985915209910967957430231651009344972133406437884118888295273442008697668578172594692700310220741378722139346425649935285263702886771696467223999763538776667237997634714452764276613249804406057373188222178588297683299007696839006408736791442820913571831670382901417077961655023503545683280741723052445285348701988639682350069930037469710167291226598933833424029465325923562121059081367213945651007146746043859827648828625612770457218409547084014375294395932320154217683540909061039714850509211244961927832095355484800225201357475910688754149003508930417391837201943353676733448472251582853803793200407578115102073907754636661037837847118133973591173490384755656418877130594770424969848988399235289579379227885910019453025663274117148377296574698447515831263977572533693969254230487951984929500326323581945753457007778221396330183642770664163669213834623578839811058636634779001034278042963831264728163885916840302525836759590269761165575627223040462968531684773664628452066348466786308482799066381180458683632969290843340908796936626974452078208438479982551111792413826100008317194494556812177005270638638067612918566456645954326558431831586413634767294215923404564785365951171718712968137800774010618267185790707104023421090433530448780955723135525058486966232480841018092952444665173159301470905601730711149615092352181274855159826379852657831521754851539212504480161956058786249752569372818918240791558630591781005512285526242388460087352618021148763395865535677030304715834800531375109467940626971112064468181173799320010788805639681838385334236578952039936325884119550121546632966160220929135415582843491205736784149381585272693565349869447657219619818419241992479962511337361484717136426323416240231240047601241334562525091091771579226453747420465500762712448579382060831657247308129060754914889029818777365399746492921682671936469957578450174204319619521398824674702889532594728073555046260493947072830367045770655950079929622685098532392340706020897944310261696436451285840782272734484156090888052603024287179149494701862275193841609410944307663394123184700809226278937241440490844120694534155743847191866770473778528651225945269926662808110601833444790991325370348887203597019081301079744420044598273648904106447020021524930693473229507583653512298294180883269940098198444043421888301026475415932905318893748853536323345559224561523127366883622320592597081161321985112342569789013700498270006472919927185985621222444904880860652182634386025730303029770583588137068801909510680231049206869183934764400382027640501463187086763136191504928674136209307117901266505121756007843036824674641988321297630772598639277068399570180765043337339849066031733526566049988178553869431292709658263751545277702893953059076516722708805276817907110622262464271842180580152077990567971740770629909725992902983241353800573189600529960192427845149664248335363789347352620239189125684642555123736458543926689663826245261969148091724277759391102969468816560143592733694215046000507155697521878115866582232802507436117008368259746032611318800081124012072787364547243511344431939294714769963122536084764271935832459604502765798643284408129737398794472385235493474240559623118155390987814489259971107234597814414399287155494114030443878533060240412881707708460662575824826455422680191686213247745408918544588612269898279547002640558955359594548406331113255378692228533557254649515521086553440402461572270923210166202791307394806584418293792666976454362973803695376131238645025729098357276420830533671253050423505802587004312532888899058130708545981236066738382895522561303764249506038780326232314112807780817928217923703103500054836607409121156314291824486947864038714117759426096373876282839728723294579860415170076078756969720137778547401733074304693853875448214317311099770409488311775486639615227945906666857744913974483404793601289250655150147570521548197769510134807751300651543188151586391594036142624934852032996110038213628319260086751152446395935073501403082213643303786692007747686232561992055777058965889710223608798755747990102248173920148417073923085555999266193126411072746738593767102530003645341293273848978652359964169406909042888244975797055226660253187683651773539857492023089315726468625968724437057270068600567486518459021355322099602494254028971173158242993708558891769153267051660937447864470467948919373135004294826920513486285677430378268934599427550315790606792230825955262397061668092234070746899560951438791274568132164395971886661224680434139225784923930803883293326933475903398502097548206466433635355278758954165267826333892982635455730093542212863280413249936134408556943963601587806481898875680913405983529234742967588411974635014502811135095534487611517979196609890735818650334379561834421649558895296392542108796633837825606468937564331240909380253472517680228445993959805628831619524987210180935921002337599561283043692667846624088520262456563957647352183211393716143072198900986830093828930824733795050441880790799854897962263526922707242623587335653680855125751999156154002703422294893103416947716233788553506339033811241848647604698374669445280970076117895688739263254186454975814185650128136785414201009278550103213956375342704926113906361446125378948781508795953884443276893410406116791497690516958191252261573690980095097824919232402270782465371114464436652617363260597219804886731711714629561921753953037620719547977418505605121252294322746716346591953136182311174299115785448445188209182633172703432178038826604298641943813266943288028793934630294815652407339818129752483859409903150626587460953555295861018788440352909510429558594341079309873567288060192955032053332956061505041786147946977084446678622363479702829087542943467527876603812828759915529557914696359714490493264079387817587185946305455974241964312333465150691840882754743024397528308591032868709796094094715088050031148070439812404397997068572075981586976585955642385442050019436943251248169381683740945323704567895054091853687123400936244021100853636209666033184800551440622847553454415950945287937427301018756326557685444772145249378355631643460375321906754111761178594682837507977071287778269991361394024130764798941466745531992195238002398379342095286092442934829886656544601886818260222143113678359951965773742182232770330158243113517205877796432704445327100097870634541331732202363821839106001419512709885256979641343026939481664463339880319678197513361693203478695534714780592906809277058648517486494661575529662104875903314546489609335309777557350203180076362707806152294584644463213226639472803901431705959311245281033051495781952886539559468432970978852605357931232615714387241225934633523174551246211728948409897142180685503249970174519128344767984801577048575074280418235534797956970359787821615602425308701884260835025030341103954306917558103969790789347371254138237898519689000589243611243108688578969090976927464909357074924261708106154635961586676616164391233363345006098144006287040709533033920983029848489499894773459027467387186368516935269892873191110999449717027506369773250493348123853608356401080708539932204362500312375149304830085595117097398162158633288134085499796965491576643162730050404603678265347861623012979056373838862269277090639326517878786259679454934286753982211127866247659669102420184209032660141744828271375357858954878241774188168054930019348949450408114302579317504845984989689952711981075695862847393893335315719518923724556316671685672711665805324738201155531035335646344222066481993321989587772126092567514619077819872634556727801288012123974997719065944112670196180457582493772813183542699291886918260079609405819786596022153901080041736915430234403072202693645465568721963164030431500115850059048738002721276964568265215090060717978705806855655540673287372136852373233932916731910328940609399234723073441101151310662849733305170903007254642809761178425483755622784558531766730397648188078250445431111904108549488680139064484073885921250202316610968454556644272904398653388309333494824691738239085876695657735001965843549352366074844320692495310675082565980213938722685957446431158998594437443052161657875710648042803763745554504684068406470745568080933500591369687389690316822060917600896885209638521134476797308962827233867295040518059383982410896006102030933087953152655138888316234624686342583982175452473563700231778847654873315478409730331825637262415184387539893696102005066598470089953215671589141558655392864240156499580944171434366120970792344725119886700164189230497808049324623096594946115345483615676984944092616749353830792842870520912068822255438271575293947748724926047166744873397479456028170922440530812545802433070877228720776437598011082834992602336307580989649110042636769385515292362449139556088046524224488288510111771365524770551934459296665439343353176159426549787659323177725177697609947911693621647667464683475745904735289680191571955046734916376295471808393657326822516335581153462584289846063708557293050322783784529621876898427579478073245756820910613999432889403388975099506366386541375030617382707774218206776151977791630738766423268878692792761949567990384229568672148456096278470162565216589718251834355991034042157139240659307235441650017279845510985423871664509128258455605380309279918212275907390318842631587103054105101408947430386951179730706480495306746934345604638905431056578755793133672362213307297354098342354440266122123195090884544353731819784531065518384622202992044960931587191709028959514159238785692639941751653926904213295460702733811458134956383747180157088319938912893575409957468530142480763137647856785184163331259183022805248546922270082988620011893756744552739551728161293419976253283975502378021735192287099448666532638266384253212257073663298964416286154812670316491942440766191979411290427166488616918039166304037768571238948547673145787385330698773629646127765541752990047813954975878860939587208077807962140505087018541044480236790879580345807540758748268260785464063731202881723962765082250168242356459251323621381303731695606770783122941304294841078988135616199903977076715927146527445153969788621932942798602889180866752138145584404058940383474338086660054372330350502793597783700745623669856586131444626615560279123340153893208909380753090621148180356871607676973976683636055834853964454251406805797167061528635223012905604754290572067229211676997136552118060273557149246040488219872688544659627798900554537876982079842691669950687938342837214628431767579526843521689544925848185335868496322868706292411226630610091366152890603409064932114009001737398963827821787079929106011683151560905984261392327448295146123064134861874939822769484311746371091050669202482392727268602205037707862847028262601177917925031508571946220675324259207652322530553707067140980498623639253682050923487741629633939408746490793020494859886058059673301285187082493834685845381714129100963411106812207164500930559074079593675706740049818815236173982858925324519047419383045139500347756212572245273825025760247724717398923979888575464541035762111477758516912469654829546003198904141676269062587048096062584807368952155512437435795625115579445453734551433231461745821239817661802219715785461828727176122506384602179653542425065993565801392550767716981269555704372276804794154769005882060013106235747969705126533749344943838833297396417500394958538590997328837824037330730798013478438484474713196296574292867288261195048360197572823882380526336543672047272792123126730355840098204187391213285390051943146694245093403374223734673238361418363977406021665141736403255704128594410749425480882718819246267940906540048226464220309842680770710980320603361126818699913726822673314725737197502615576514659286251053283439455169353021481372282018253805487422120106141218010268853042386048684576254635780996713287648270949337724229623522184063775398130174778687849053301818709577767572102172567377550826400109881151471951190263645493889736411592568511959769109691944546948990880828804590072903205224103693702653198165852862389402219331930877882092919339421974859973347921085042426256594695142889159974482628733254288411629652397362225889277251225154160910589014518672530319325189222290665147694310669600362530524867470066322490546445640634195687572299935483267912551232922877245664147283315457565777974911619944504626659402325814802587239883569226252631030632070234731545104379913796444150994850530739879197167606957128417234906131667317077227873717707701012713431649353682103368688436806853050037062191397577864933347957809077004349956817188490460751567118119323717859175340091965412332147987438037348021638183028670362131705091513526313673173574820644774152494135029092634192336890874674311257376958410390054073919176053183847621284532253779449864740949419576495715216231819743121017600237686774112766694775599833509193511347110976443364092045423138487393088567807560152399989035382763041066496661281736563686529756969876573241726757815903372516891805803920577420873961328227017540292554184149500660525382164588848261755197426026996028796634405110270015803659845709408406368815427252296652734821788004154728242597603614948080828095154911199056664061107532614437751173759155732953581671882357765197309086912163168486585487156290626651710856564249989431792225661894091251642692608842154944298203953883323793814084679362687257710884107710649707126475951395966643388179245344671196094213713530414080626359542022345458173783639719977816692638443598959735214474578140655014315797031764702183900199841236786089392067922497271893425094991758157987551259218475904449035204323753483269411120153533888668565423323936887832724482734058476272644529068490720969135550631041269736049272286550792152140700161143562351685136345526089389437387863672723047759857919573790426082553212028301037680143575367963427595232759492622997924379445570233345164495128379391499476174471100187607790057225107522043867365234734246923629185602483549302458781622946965409493450194612371990511060332366314244747014447343794556201421252820190454739895463867254890405914539969202386672894620166345061018244246167309408524912804368858908583330468165881733492653951444836432024561240026460736216533006402865497469278734053129772465012326355429675076307084191742900287619318538081294599803097439973904081465597204866804955652425888894202671728111260815107249249359735344406209933830336097247698927148156019146205994193538026210440075396139812116134036000889565152365414637255037514788052636064750254635079734604009682550480816671381830755079117531328775053490347256547255375915484703945668259559113310430407150700067475849997113498349353491014713807246790936040282238380817458031757606916216517068014352975052274840720523201298031242492839183076328458421018391697088266632224911042542788198935021651153931402533777902926836652504381475279379763072126004139913764159175989088368660817158139669014790465974990735052756815043279587079273675611794339757452993998483459800357930299142839756712988939492538945905753120665233079424471561233134806583942140846155217726912291124564127478005075868744710505632464417872386086892654159126467637990219694026681564277661343562548035636251703677887995836929670741146981849874009778481186982918047137504918459166962028791475379110836684952047074564894944872603285078809039146150209811900502764794703535016009193909664911176556309540502827783799149607221588896353511413284872634528288344723180772819478120516031647433054258057353017204021884224853305615375256201908331032908416789386792185726189405360638686435626541950505542383699289245980115265225648664003215154083772410863936033249822954841742133874595143135502036085013696760909405633344010975898881234451092584346595891037822010441254215263514086783418055497450215726212709297245726513567976768478438558199448272357766933628565579706025345835438343968945892105852871493997640515400689675391809652111237903218985384587215491499266810421573045280628081529109572096992187156982174715893249522539432510617501145076057037109844729277783575110473830873842343371385462379656173354880714716918436214754086732208445020299738900447853037725200787061751338637774171268602365165487756168791513604287968277607317133214043475213035880152143008291023920235439243296829283965742397324662867742543806851183316365807614877298045558997095174025987438800370020926277840559606742712637193668986657142640657662208370491888072106710031172583821293417337358767014157995429379436504742616996686953413230440223354014888947022806270638420429611834471428005456093120552777639055621242968575188767537667951571702990537521884558362662400223220289876132927270594557848740945239369014078225001627150661989970304185648525182295062504094309011743028701578856830583909651762104615459118608856717209104115905551794114412357542404906072040255515251853836171031029862547532640564926354611175316426679707464633096101233572137398650175954533643890438833122218812118397711677612167275123714951672530256033932792734721820578182996569671928042989504429399975386470582316923434612837148355513345192636162758404329060964183675504756868208629857298916893946083136129126070497854146514682654170518638165553498301848616185714112837746957550807970964469076781805664879345537479684661181536945607556090107808076162202318947238964709116014223809966611814553094453995048576914644349151647206385541356616185834389052463319427763050528111447956045349692975311971964952299357334645471039337090440699748320367818095709141909676731770965766196414640995225076602149519324600023777761612964734562805367927832330219575761079264140508398662759142041369138688311056061805909650314454441482998547386689282783449635327353476182595456951929698944299748973163750006884336040067231457264016893174058043842693956572120169366614678553860091885962775446324596563624205053905595880638176012417058552022589777770113001081628832749075997804990319799353168564437003258208638461548362928884236469940854033928830021866551318462125107628438336687644475712937084354924266556654290048911095577638744636676152630558446118354368072536764986828984495467624615604950563606546056048109120319300411717526240922924515215122435057797369897895391218733581232514120603428088440724648799913872018980200446598102234240537217845004854221637655178529090826283611557542187980311700826661942245069383888686346434268146882741295109046763057347963818511393240515585000265096609418201811372785601164275112011917227459880629619439710006474528012551385334484671107829175586755431046480306256652984042119326225990475897901054241367848438480600187775867339972449889768972436081763513761643657318328528679078310122882390224370608852505784343018759584380937906775688741008860180392140890971477301322565979077346762728500447659362392117150274537461606842852874837493233473376262027474682337890758557277186285909212551748668183649679961690730841631289852440431516024472574556989671372609339890259580830312233039097110821823304547267354874475487740457785445361206520479911687979386437022662782232290784371799401081841205774476752265779201520349472164855418912276660536358825837813096497601270112191956746418068534966498312467821710290557195863546264680324984155852792076909051433832500521376033088843358008123555032344872166580683535954345268625251053058065345746239914402118025282250508469302733475171502151770335603499926523338957598049700955004377652107870663318979427997048232266847933317418139999359706656395838099235875722035242144869933855945136030127166604489105967183753514624410591438183720522699522071802866852747049264717804032640937542483150359659462031011365828596208698845553051293642022070754668849437194434811112723658224866528457727643276129792603434063246286048548769917853078427669056713634875271969287138652135571323527121983177799955079814452921361475208759510074814817210848704037202303980425516806506979099359226696280169674002065502873657538540790308069999293232657737728258603481301863118560947312511497466802447468647357454791997400240636281795774654284380294897404389096763586998645968190908111026917283349804556240934499707969092455993368963932135817343803145708146553805776784040579648743431210006187758694976857947557330034734559909553098647682187532990334849374889364711899973817422621201725533589207358214969988369812034309561954772708874631310393166901926855341767214081967348128542272698827278225353862617871749297631974897010925398619385868324491679659330977946294674472175216800326958320067082113328577981617816657143698392727711480937486570585980279567987995927708101340985666524356996573652362292195905709639985190690753920844114088718944365141640374220405092416911533648319343051817257622937144547320212935115442547542327007264645429907919082925515615056578997869418946377943301835788685636662563572582227004615859559475049734966225350588385979533333475364719077745141647818608069007952753097965421254320005086351824349402521153333476812560934854191052073466556306295624879519858137521662421603593231459731262817402355039240235814083869308660567142470864473086017948264581261465466106285624368947640911811168919535586853521983235339289174249727862173069743968379093370330222500160140418683696761982173705955030774456025819967450374095406662313243263019452522993500552011504214972118850320947704900521035548996683540165504772222401792165518650834109391780689657142163301821408770400778843048439623724473272993771594210129315235840567815461542817572844411591594861782058334533968977836735781922472035420242227867311264507335028857708200573101918866613944116049660631856727792588653075880329453099182019665039931132232366691822280173407743626088108205839671957161456104790876326378466490776528349398115254257364016509579794817767962914035980095770780825617627541757210554676282887321676456986783694221653652540734763047810711414449137824864944186884376974403688245971976195031087650864802642337948509461860380125464902410201884467728155290232378851210057616897375555592223598245228078097432657581945853123074339235754628974680789128173033357957656417595173691486583541398004921010633478335372032060696900069868986543705316043011101620205389917754868375579013597517478045954696620411157778733741065812661993123622442101792717944054078677099127430392171163001919230829984888745735540450487627506477540526049008374979702565311977250990150104709219731167178334151100409021622388810151844274491781387222240584212516418140599269062791988284970456043122021515231801239228023944691378331545622195787296116134469521574589382608781779755308066088318947931490337181104415517609451954044358274257611931498624011674190831478806550374004643662602063990358551386683159454398935175924341618473037235306698451519517957904112369474924456611477393080783945524697576382278010896613463365648870466754281718796116011054933920047347168350999033782467101338123591246116882337467095030383716097830457363531507836973633432236000091646716768423622264831767928466158427853733063528253537260597282863226503599318599851248030347071989281184559235160641622462746008344839704794479213364326689396834145432533113259880240446375109412306440507621539871360106614572455514878615303465274383669938690565501362844344781229163148969292610914084959928939618913227890235027264844734036381439421076153579248639548832259278998708382625077274250432491130042267164025617065543971843055271536023850877183023420437208520573079994866458844836815055515495513069066888837612226154421849572749372180014293231002562478084781847801400561343043097430666853606646487388229366917942190049882864698117492480420214475288861159909496460767892856101198955518688498796208446295629575374904279922817803210525652999888256057114753097400555117949809174418045140255186005326871980016469739668789133700272702465882491638832485594041338007580338145860819717968927310579887435553417904444800462147933494551302563515534502632347410130979678463098613483910940695337487439165506699058558072066295892601229530100520414135978030064273366876240205909364237924253887504258098218573474506309429453186660915186350686783993156277670615857272413428211889117574417577223034076210734774288015499917402130161068003502663657096506907626658194621864683307248191841427831373261790954997927603519598381041750683951448447910907629457442450159342987611416248157384340763940788209575209751032729293536743461840098852678362228459377130580805794732104092579972998757062132764179389697552414239698767270484688626340344389252870589059878305591304922448246567156259142864511097726885452318969687616586834837446362164153710104875735170036163239859585868653516737310287440602247913777820748190589834029404054366733264926210957886026157281209533497208344283570993267288643761998346298890578657710039339102269311406373664715198328883372614122760539220784598145435818453401057889936612759955753342724792368411644400957748920655739887446278942416037664858824321447631501449411526701351145064992621093142492174951692004304875547275516109615210305860267102708911203851930026898939075382895851733387707126975113427220372589855417811960265233801499960308355352740387540356496344452150683375648899211364677306329162143958665005299028644392548604702175114004532635143226378771333378766891715908438966117246160106302713924206274943536352325860293822536335540177676318595528798568791121429043279270199220390068187698853519990621851806502040916613078478483106698418484028269829077266981318485899143873779226122019129898372247792997928086054208535560014526843677001181313266137690376707562219561068602681016239517477566842445937961789061463960080700406096643603382015990501196748755869238416603994978048379816008800202283352843310611134209160792632018221383821309604388391162644490593959174213590598031957730148593201312617076293238815946631929915831708697867070210014509598665626744272750381279495336882782314209258599780782294711127211906360677791765038883209032408724629376285630816132030218299381300048226948561820379390517315192419261978418851405008722148261671871168634871707947927781418144762438813278698537927363107233250662412322448657537290814762689666103095894635914111577634391514183929447275848567338142125790942052314929503393026187051051297556205463849320054109131998259483363132735067127487440727661549559513143289850068028907730134020228303460292138637418388832867202188366678834056328857255664165797365610187552789431680435170172303670131615178378787520304493278945543831168014903246368712633406762984205027783923086161509582938894045745537322765354259812073187663183471567853450999170427725776745094477895989721745916349652316440622501494027865469847547367775875541027726486101114469784220585367773458114058348886074134753658814815559613520177147660687097283987251665744652344926482505483299722875747665161274044530465826152453953368685241281363236337733225837831577776135919270320188711397311559472849835505130304790455156685725379701649748494043071491439688356883026450222514145518037009189114239887817497497387590929583646476054453147378699313185723343430393361621986320940082848692040720746134808037236743240533190663558685181965478073437512874699709971472275811185770722714039411923137100707594963272275097818961476693147023374356011113169798876567068375447161413113698897318551429712771227662696367505435960511100100990337050578930141383745937098481828165688873544380219688793210553853447921425667178438606969884483169311702252691166148213243306485293366604784472847227789646702359249966708122363108583345434599752087816353648050007444172794130695263536919296374407949484036794988103703942174635616597351720739639894081152993547466683043559404934748627725810467334043268921114776344871484209558640691004930923517127198189416010321968315887571174486421029091746750085382033527479312073295971685119790015555307931487479773252737519014907635310391251662372709037361965217687465799943649737856702167134036797392298929432745225216648772120719787584699917683644315817286504934633326428274283588267821746700411908183291457635851338044156360897718122466439708575014570669786463530777252232358599839944586663683035800734546538820706575585049415845921192064159703750850489755137613335092158516501747136220241146295163412446482350984899090840039986147785504009131809035664064584691187956248784567654828188845885356631208521983748407348887276301127218321796005438716574328086670966542651311200982292978257733070733707900064312308695051738368265819121132626733036834767565624175539746847473444438455115232102711603969851583708697620155621113143777362333055754540048282753627542803859493909739850683407554213529843051985529844007043692250223693389249724525617598485096978408258838502442980059214470260568784531688922886073151209326188021265556942340626553997227264147621491448681811473401466262069327339747095340852016499637695205810887022327577767033462926952839264636662998801106356408636235280665530332941986599439715292256017255035005152921536105537178719459088210047744614085504018555833352931245200491628069726745782028070321171199679165747198713148726780749193999176848241085479795878169482093676603201753905466532727099031908663022746379746998560144937222717042594044239285053081756706546197926433944232658253723611043233617271703799984475358274318865001070287670595550119465225979269280788955817093024400413163329827898617011013772332200442973274919902724876516995774794690582112981041520822907146762605435818315561330421032075862447594589484619443280957287022714297113906627544035747736733033310170614898279972904226796413931342443856635453845033579261680198885918324337381517893901352282710614094870098067147509837673981018069222890426809151778301753670988964238304023011752398287238630076014697869254180405623264661087868363665464592091570123933625334280363787627681903563265852450691037859005694712366073330488545869830079123470621108804294671805842465415260517829246648983863644619665672286529153041558055549972960657132111047121289508570537165462515022932380238364031195905179786306752417963784075306741218698246649168021406018808459546962603173384675091972737927404898139360086433381588135998525635352439500288673628340785885778031771056014967401336499898233871423533411100448754050432398176398339131915085138399842494255249812381233617599926638502431814306369833698275025423222515737896949212913144202363018975378616255575599826531901458665880901410562489016543541183876489313558664605523769109079259240895503295785784990705213353150771286208879232013099451850619141347134178507262185596016014933663398506923504692575930503216566721156621537602665916549769797650323839657015279908035597143766692790283547588748008397908923656678464795139203096689151716083134550038916063162546780522758892976751108825157145830312015012593836820405389762090615042977478501569329332963189328112832220216416457365458498668203798683755385383891418176662403889839294775872094077576444586870950130452556448738640503672915227668857910996573917601007217148189811050371675406885843656807234278143459248477440366696750770338661983279649674798351282340021980875658909557072974352361499988617674227810921086757318792756952951212103268277531717810809057994524021101610670427956042081421457371443483382772911470628709097541178512408546443128588846894303055306064866636843464010657651498962787914753314139495149927490660040994925242113295710260282431014743627760674505655510674036453679020097473946293173331967003288269455217263253364826283415170513555469292876970846564773430356281519833782690241742089188159100423340484487345868673752987906259008654611852702229631196702958204794894783292553932139495625181795033832942948257285501937060062207534409477444100976155406195349293799885090086171616295169152778775876537001954415321644051500054936376960600844026379431609467751709684446069674069788844401776437147818560389259156597816223052178806643874169892938919595321594835221275597212034885842894880154139014930497774522656365964592950112383864232099242181513989816049098757071959495371303430224275888722500426552517329452102762802910324996260696335817320116663592532045794495680962685234991455124246903144816003196354186269837457102329798923526168726845674238004092090144644349603825831638125257614244930252961274715452878729564337148097782666039090487334814208073490059016596911596952833051384745885540224910148179547062181846881123218892311479590234666765900008094744316247985464207700139095393754427083576951404948376586348261518568218743680531357925662091461878101912871937844393070104929327257135351433642972306389034858437567663615014162183029836764586788465002609213381680692876236224497388495971790710662855665860970020425654775670599653639950640407355321785400056512103300057110289704344443327469597908016443677061072631415119024708165182482747259249338168248263361339852632431669738746948512903984758706927010464386535572857095083483040699181137504235752998225965888898651094211761422205901916839266822484423644810247100483207155294118807089254910320384669712731730666770226314628654019697465663223695906549131665780399663167236839223892019283106629063508657114284914339980817789698835177423972033303736190767239395492252538412662300251655635621749697687764181936790475340130033713103796008649644211909711103112489751270517103653816409688625906134895055942384333508866137194990179463052002761914918367447865803103479740823532081294611741949223571650054661436824609395567076149344208537554867198491095491061840443842377415265181561147751527869668501763993190865375558095286828367141066529377136129889324006594543378102304906954914285921738223230819960838318526138852566915294706051020794306613013085266472521894208602252977168142236771969853291549851688931369590687558332955708384884928014485078866271212673160743417441211229222081291644447750920238989973880783179462726988273998422335913719023843092856957544479787332370064487065036265292512891554284586618956162615039902590417088106850809061753968429604681724649657537069499618280902353967824558342049252631191581974527357635925233207843398306885343728000280444987766004690821843146242676957161761848457437399058509527559177287014253505177051320240441365521383275718492425697119907868700870137327373212924589756676256196502828401894531279708429017770749704791837659478577075230397127182313866762073973970774166187324043074988635840069687934242880549322384107270131097396017594372577204517896064758366258427869385506055766138287202229766205617398591287989628819935564661534191239514453644884311630001878741367643678967864428940833995436306687026637474025499732426623441533317355410526038299873413084973892692029731006185538294261402418388806976720732591101740744014683841551606269568901769970742635292095227319282146679402002114072811721695499395923552286311332566025122998911128119850928002608786452239059945150998524003704917192284731264852102297215941647732210519581413288047083126611429435306716325564766168627430722146837314618960403088120960625975766764117712259096002999660258598451023975811955375956255849257534066409435768471244452182897250320230320462077350409331666617252744616924911623843361589916147960719717164897524603412429306429390985875206402835603723754785720419486821235011473718098459416632596716531058249285994062275349190926921821832302215250340298222392783586398509826134701562999851713964092880166541015091291406308656782483713478181129373683736608201545704054579166537960867952264269688580329236540820131143227960990338850743011342575768709735491209307149652920569069516505935174090369532054186476317742731011976009607780033496787610675374178539470200530324273111351642675044063702934957793463010017043686315528235574191626580466079375435781644460998499797804845178893302585136456780043728704339406396446966760631183983294942884752760041393379346350029771593123818552933302026749763624086507752901525298034778864752288805942488104991938488565451027050128067850840769404672201826153755545434337384363243255284324489313383131523072984367856462469090605424825676509585111247157782895164028895397951577355079839451897030750233295366283944940272246421988524694885981236605416596506732805255885360255084922670469811234658246576645620299121475105251744218220768701602151235328350371275738349118143096620593398021908975268846317860426525931491815996699992732117479036553546888820045070138768508732457947687939802267697845538802751105695010342911867054119232926476054285298723497036886828908462627079778684083287247409892887245961866410274365490705144035338301693645345203666528569719440510821385842840455771173670446443355108580905882293049108781082408355682772045220428075026713921680224608621321843348410186569598587092877872544726690575516212464189316971195157522761192384056153307073618716362951203618005222660392697028474771674235487814576633464136769162778846463038195668749973108980129274673347803278264647122393706020539059197943127688559147226224572281186185445282341238497154146582539075911353086637629497899501932704399161793947379023202889112071582600216729007979934971464280606899846843842099465924641623811758991516568963869935845156377892697803753044717512056795596839348998959790021208983080830403432234531483537526958612450870576595376560950931200849080467718848106234645705392815721874012289949257959741025533731945136425447821858993267734128940675532697642164689868215897027470751149340037515454054606806697921993836218650215111605340354329743745528841781988219900435029459291329402835111571744996400379251057903838146544109465793607983266025644889592671362517810003014753921826099742481210612461664913278776038416733722689669999713716885724685201235760591916639179146267229420019845461299643154090688859436344590372941845743007581217312706056665374381683484294401028908131221427070241511062846586752031478876933603494694577345549502027604832964822208636317995059722964708101929201997359675648803651375276635868819620255393984917095132584191761131944687628842405177637485074123076858655149933233518873505132905603064779320760443720363344641226827243204808659052729992787391643043007265758967606763992083974056797682044867744257975134943565344006572573402863843866203649897279481437251748822139847409563610998380576798068146297503565389208436003367832173547052142127489763480491624058618567438602109136001751459727063433212788695456180246401202132210704589382612242132472223355193604609522221257147627530012666534207395645354688981658632553872775912594145500444659682476936819678001724956893876155926708189591242374694364826892885598754093834956015712498923917243084398210234539117693015105508984959046794539594431991257904796090724998531762768064741305050613010184566736995840507103359715318711157831851378964283244149976781730557318813433499819783972588177115525285619753912656859234499959835713498484196411207382830035220911054583126894081772799649282418829857513875898787061191630639378497781263009802467583933331868032163961442388206073353343878956751626856642837513482351673915078875350600328934589127941410320298335709076364680842288795950208700038955271082760891985606927227059597744607194260282602449170224165442718516049085571983892664417622823431746240429627918405059382944903188274917487496674653416167174201843533815533154392239255472881123248350479701996962063473065418655614618371737994868755759652640293087794349344419365231684023777824075173925190862721048715837352597220926984709655577651675805836833656894726249883607194986165525681578184848419604326022108626680826933787080046979401669966778985241118708143359388340796699978615193095006021811730639849539260429926092495278341377747812004433307239015364276531184786723041418413341172373902919716236385195078651735937704096438301282638108770046296463275059254590987185084372911027048186573313752981787782369445764837215279821844693996364938100685181998015080115471975265997595659886025098818966264947010766082779168445364792574507149855654116827317246870733298618322481242615549842638261983979993529445760538442300135649303014689322145697211446956898508691900279161308074257549500650187850593092169716204250586710805265411581987236639461287005578240663757815895026500257194478830451246367807740213180533431856950596728679887103796885322173408903002128911986589119426627784252039680519176973885803104577322517163999870371461731868835848757679407054962408248472541051580592385834071500373579333424158168127397143119433068472039937843033052910453992230021551055007321579037777720663543758618890282920488833798931492373411001646781664538301325220088932372138469167415161706052893847209622052753246675096539393619253301600369273602684649443374152134262563057270739705029925015721127569474136975380446384424101899287578001858170892399157275789309054890491125995215592051287452314474988038182427551955855143410221155913767487844866015338112419563698924829171193980513655482219255304695170231138961856001617724175352637976099284717022187715902300939318872107007221357408549501409076401269001195474544094462256625125363643651564486760878438395240751538924266592234470295231717672314529962541664837550069879267147335293150505462806571896441967799561835878378438022221216639107143542055166330117591511528519375863004631334498040800883732375249021501003773363738619791281445134142104888659592146650766764050560341855148954811398921100374505186379223919094220451636570830154437311433644797370298324296655115890049947853069545855229507939695179497430951144190766573447033189920598640406810324746410831385491266463255696791774181447261715753922516850093729442423336169741788737062770730288646937963044226706674889227005525838438759342355228439660849895850064369022662604919299895758222698699265697033293550679415026781089441439866590898591551088279090959783130475691727483312831238669778626907512435664275808284669900825965632900641714539744996871557521093128523642760850760163136367039088861513849127677993580663484597781159204591732305422721675880007260868237704521061127095898215023860944689188092955563128529444540529432978277358009497213198515706871523898507870209317228813314080424576949700918799876426693215044661719589004335657839439079014365581935999957571244031475747554351277753346113110096093292790278021072470372251469509339869256921561026708131646642095164818842959910335380314003848054253592911923090891628474536707227530791363739783517612265303907666971407639452883362567828234601143256810917171203864855472619685180465961685255579650730718868851782885546986061468543884774063189208256205715113260337943189794327380169615923113703946963761872548737054638609735592629557018086761801842471912756155071460818137584807489271638484251820855734048388931816791661280857636238425617525078688127954983068050042659878372169817151830070180270655389167416102877852270371615290996150054088970003662961969828410321336608985329735587599909990471500073699918011745197207239816932373692779916357055418836196044181688121793474289659504555806239735772053908966925185836904861006107770834064899923799542257297938865873545875177111720407870707054671150363128376640909748736145019531668944842329667707669180367537249000000706770607172770385696495573797887555492384877087070313686083039987572624654818471300763199065082958182138273235594679483847681786683282286816847265332010664443831400859968197280026086928881061529559873767531051298540542258542301380232847013536229543316414912599351031789411954319335084691423027035432502032505325895576208437363474165727575728367695686484619323627388129075774135188464868428386967732258518765985849896791332465029305855939608123931952036354192394982658663128114282273452221045035464535736183567985577922784633757401162159062725877958196963120883001765663876086212701615748839405817906212604170007561693693000857175297885506704298073166588231802301945406533978927163117927186495487005504043819424749857154551671671405434661249143628460588391954149026471190818952605606062547554828232524782976451310744891220424749783866533958175650227529711626063331556445101258866672140372689936550413641383202080067640078646184186714353867470997137344651571276583459440982525935543100188580624213686504853971218102816208854724957797653213482338128215449054164493385641490958137599810632687805673189571541653770390172597999231607342267873508113191395477346149662946102516733170364660038756732240245510620204546826970891863710785912186590418127284749687993472235051353763373336157952352474382065151063340552180685780064517761892034458821837349368776201210119608080646011470943065809875555877166233971699023448153425150657751489600153049788839344274132893839092732138339583767076537913752181079317660337816250740946639566908471475078001629768483671604138143588267174323201786982280799766335707164367026979045841854908431552199802499327270717765163842364096074369855295100483998448188439001277052563041348588205883746440743562006108474693092135506870603636730108292105970120451841655941494011618872095394801092232329585690996832393660307896367675529114070060724833824842530279894840088007130278730576198519983235299395906713085895279595411682720700237094026349389670034452796589057898427130917801106450449807870950497723752192051143970855144151558765244491170680578072755806013673167074807622093688234932975750571266045896685214217103894336440700320894523213379810275053473528559299239919229906762289784347657452433625164286905892111772429739210936800947520836153217196241034343382997564663908370021763694918521255792341326153804721503348010817379837950696449018237228826888343383761241701496711220314059808832146538619008791116555604414258797772412893037647051464063776770829294000304684573048413820770650933222112200697576124576669094543728947413109341026203799557366900234661074169229880730684538387175635617926775515428117023552586551273775226826208359785003810209936649614219795926420692450725141599901173611296881409251068884239222427902922881747923493829995378522125506177498261807611231241873066419072403660350318166279545045525164185254711216462718668242739889243231212707397479739213909444413175918354385554952167188318120730953800775587231160323412621387060306412962945226174472422871056573844660377737018293200959132416440446909152506407237379758257600068149837201554923658571407068976067542966497471065035897837196304985065674940499490991237620883307537128054007310471763604062109823342328142474495275815432638646343230049445309280505371152535076085887304106718180409675361956407993794583687140135033983519616561366205407434615010705510154104193764972977026192699364817029757847612610313928730945472611113253786326457681954285394396687241485482260330207539709195385951228416798262266038907302518062618658051294443822112929099822088527329951950622133279599741807105205068530424142954278708074265271803169831443820176044300208416529002805853454572235469460272078177618095376365707655599572992757895960845796424893188400538118103511700787536750546772562239811958175016833949469281784883304112602335451552037808089973049907289052442013273377612207143352647087735285627354342581914638422523497443754670541097414412452015329285495594443698260760937106322999077507751042340696536865572421691643912719087574661320897781274864440283845480330235051396948597974280602967804129132813181857657400933402800331297623381593184815774551649802848078172368160924906034803587129669358182290210953331961598052347786915658179003063287765091000393859523811377039314828811675231440192101756042771990351344883241796034037737079244167736730032375796049865530185856367871186673314786694544494802857472500242493940646924359262541014389884272531642684395675569688267915404127124571774574900804731455411972941000199147864861625401332808033938050528667803750606277189427219081810312276984765156223846801862665557170332535705144281943292537185880402317871989826526682307658432767089029652031962567679509321194019014053943715912141685866856171578478854405341310444555421044651423659074061839452947261548534457141491758098224211675906317929827167702395688122237991959116171602941665433720902189706694407682019705629354304707135491923663022173850346028124467033491769444039797153547928788466564760837673877285003882446593050899523142921578977928151187554171854310856510788618149196265256073103873775938212943962474891671269953007015639228786422525853248526871846244399007097961680732969881141221584039382912567159368078664138930440995279152525310985723258599800833530470708933092656660478934508295283086675468688591992963616582891793736089988769623392950494897037677337957428137022334409231082249572922979442445835460538171323696136906829371492272260771252470716632326117518778534118384905941795415911708214514853393167581087472999901826153601235339776493265786025255189884647618564874513901709019573534715396552165710562591942886163697627408948901092702806544285061632991081158415488942001463311641883415537126848467368301543176910278193695162218456140108192738457948494441147265443800468260428735193046320428730158726211802113275561773722009638819387147720360566718299108331529946166862492706816298418019249872656791067619461329558758388903733806517680337912343045177839193376718617098210994230411558027693065956207398192778924814386684543287362916567630953632594113604357580468985907316825491777765152693894424034673297029852374934484243410844046833250832822498757941777189291809574350258887797624894420839425386642439523936630410366682294695665317559997663571743002370108699636394862581029230564350472318129210423863393413960297281257343626770689495281411099686250563877193699698810332156750476635883842108252894779125727821201757821142666954316222259247596994612926093421010101080101894032550953799101421937669189568485435498303247786147414368584963093132156871203060799433105483187178880274351269135041651316436125412213745199061609501710480357712715552704053343139387306589859149810637259500958012190452917434851082411695894804716604835579903805243391327553718342711839949183764509523150462693289983115414344860543507432944394721107734327881483000631037827737706227445342223343375159818961357631128393763678824252990930426099201364800198086999771808289093932558512642524112474195356457244542033659419630239521358931633109740888428545375253548717555254388957128231422856038491158473825046638113940246894772733845365407554798253227948592808992254110504828261059576748401929197873311698950715037836355793538183463186802667439313791283223719871556997280398063584993630411202599945896327602139735488981601126428647994845862023226794424443450366985945996206839664624795609027111805409419763037338755395169407619615485676583689197793114788875692815384789879636570987172820462486434320672882332750457771516902996071003328497951554174091936054528003279232018187819327260385154224437340464185811122980712895739749469939670201030668398242712351295287193705111507880971527051900375687157294817051093707797914631470226024680694752526275188904859688349453856046973588068612589713251525196045277781152898179039585730538442499546677133447884350307590536966087752224935224026916959615121634740434407111601675411243848499004025432431816096145079229436102814661621373701735816328235468727575638908900257176348825075775238887185372715330856870418671082217690907401495692865509858312056353382496921351011298840598667279312472802067230178236977111433200516425668718875507278434961741617993847364506173006682491250720377412359024035232949193697719990895247410381548516268517894737128140096112498057712050334653528297679393522843973233844076949298666304616334236735786995498810761230067300794448645572618728875588435953617144469421848701735386617637107363111414355778458114314271784062929669502450218370794557201663764966151219111407581747832664825564354977399670607884089739546653789681499505687185110349572326244074040429207207116699324598417029687651702915424025583836735052344712636653233763990850311642452129418148850930280379212028148183621360869115897137962022766130474861645047348768641373754041148204380577060601219187056186225973626750549993563682643081726803908798400127722190811804843119988664431648763645541049635175732042993554633950960891179646401114247404121220719847252525523896776768056371199845153620847056864915548815592761614143333024949041810460960905452238021692557210604334836921540884045266067815812601884959677913220046936520536659331978297132194449048147319567898413180942456322258067952681306225038121677504958583828430580608813654828269140369151415091191986260251362546840163284541775630267962083077878659885509484640693067242973155874167563637749750318996685723870218774795724159008712389548957251162552471776418301161035737881923230820723864569110452937388235033352313868097085391845280604465629063770247027605396436946987756212578072287803918635698295821823091252163087036498873145174745215226890799774778367532819325823698465068252733898067657031410504854917784564731303622806632102013518069989383015594028336944288416931847099678742682438671679988996988835660157591722363145371564563175624544945535590158659869603773960062495306523606540062031143595542567228321972411832493968127246401385121760374658659902595114030957496840274565165936434859421117638653624196854449042239594047219957735575278092227517340963955329370246593155793071885652464483208125314232295930204002877677976353264604596105629888702030583969712392312394536212668576867518036826523184781900138709444160963283696092796104164893956685095392142260358237398391119151036539257689680224476358152579709523464376623560552685587612830254116028893989529325339519007017902310116847546883521966758415878423946003608939540740106592529601439548844022218799738678074308848403168017576810561421656444764681951037297789962799910144848922736085391493840193855862176342782453507200342939623426726707078960670745926619698596244474763496690878159147433682330806313257931108120094898426935519019049456867421289557340985440229197233696374978887513098125469157739329618150468053120577682519031612159541021885795538426220792486657997597235647375731062804765095095493212195562970191077202250693991359465549891223224776153850346663957581089577238913915322889836089545586232875974372537749987390170169393500281737375408893023244675651819051805609869858070327362711886564019401846175984357898828001786279290281459098985458941559569932351462911724724581701202154021273908637350206022734029313395580821920476547121842433247261638819242408673812515856692924063015168103694570967693388977717134570635057294832649142996556099310550440100511238194490787572651234800631987178499717064468539324166384945434809107114971838071538400277873499155386508136720357371342181843048878580989970685791799268838698059109736244869183985871708601726253057993159806125668818609055614046729136379723847776820365712631105954634830027060030281085957823873565805063331874344224223901621610786346636261695902430579745663813621072316594720012085723483432796178061315436060941842998839450496072842820464184727656502304162798032019639484795460531143493399271697305844490031593355447717466996490190345811759369704593845080885561789477765149663109041513607267078277897608160508366783261288163589371201281644006767443090434636742950338303070356920430483359910675868953351768724838634455445071512864431997646916724480466259750656992988611597659597005415454994590641215013643769815759729772698431035293555542151563240253946723761247014097619792814740655033315989190327392323748000285752037480606681557457530563188851167513353139751438877515529981722583961568710580929875780752402024773307235740299761234180715654966602421210560064497439747777103365477229289980282205191874799672016309396829944260992327407447834739597468810397718836162130072275914343610366638921944105326652875932585727570778732428617978313106296057725728198548550817673075882481109139825329798939821674938892117054838411659631915986117690895313831247766646710890325076496492336035224980180351294347265842528511342062329123271872480887897036162498308524030851986088016262757420698413672654810374603451852971803299960285177488284696353820677764590254799692389909281606830841335749414668616934645789617490380853545029458529408184667180628933963886332043903128279231866900687562962591939669801029125135218121746707854069041910614708321200423970504465876443485606364907823899975148220336001137217417546230355750736197676732506948456615281100923289794411679247140411745107530156718112217845913616754443911477250412493319591389937689447922363776134703681071329412845170542909615119248126970901642048231374678850400290915771593972516868229186709468897681423018632012629907296586554592304230595792123177582798463632661438781046089291809678997511550181434788510119157122402350078635919786728592469645487875515738494771714177337565451407756878576842169077531312952916874145853793589372365649775412743304628205177880993496135945303907601120831961585564984665560631780906661916713096770909065408670136172216337283008205765810825571637063367402382429938639509009692487452366029767729624868421275885367355334265506127619865811966242965883169512344354847947884604391671481300467763074052791080482212580237355904189344590156409669403412674342162885323663866780645641955323659397569389448116947866927545287768552712054162469464507805962180311709065600813479342564112809540680111892612106287791143500698015029171521887387916267990126092777186347810912182366418487440123696374450838623717035941222192473691773617933743094774288649430183854586456056503528905235912863823508990711706324216774812608302468880141870688548438342810460985186225176740953959819235118038148406239310923976788603831705109275122034066698797370346388793594995256197808686153219318670702136752645208209883728607502676798482143842264043251809823366798512887801667396628621995724466381567202949615004362317570506441754975061350066928309491623917268946127296768231603329917141239806636755308500171302843959432353381249459838713995855039311440755819857676619748374983419595616885446236097388130940499361351756564227570291606620120692831594968598771771656013004459143067834682823061642779323943161943455578457296447669490069981697194127836046135208615928528472465158794913776713398597009375239532112205522339983252858871164725955402327846816026816168772865560517578891383708769339675841165285722043467553673238808853868400384485208937376449034644281915194147674712228945396591703533441455317248007834959672033647615418579899473476437905797257183520435375223543168501261680483630413656473472341617634136064791474064882299618238078647817890955356036012571313518347233504482934624169166739654707696502292793331898373570232782869940257465743960277773240330412660911409911655902338402871212063550096536159353080153076769288369951150613671608354727177598061697324797656589363463709299907171139077465662774852237373065060441529197204000931560229621940773434213278426400838920488613826943916996436013214856650426610335912414848875429848871317541757180074935948128695952470376502083058330418983626447628068011315131085231680268654413977906311706492994027467601022941128362207192737299756398847105197085498717656857831222864427955579150446666471196764713703147400860207875099099356020845055988693950617265530323116408742507192083974336241437693125713129096587162942065951448832099561908610250588418056193442617535667553160864116470142509032050094196596774880436775787998302970461282025630590124086392119103227277691389699841884200183105139814614299937344391000343644055404770634464285626135511432860333940155579486778578731612733416506538640222415442511842851555950342539543024206080026730334507247271938366521786164779329467211052504228635927738296269209511959436018637249494065289109798740117007157356300063813203503786940226104031560142247491003815159443929125203132684658692459052985208955539788056873675144070681033033051655697855508618598851799125654416213791891470503101793876234343980453900760303057140537288029081903595183173023487822329855251922983019533250317263778903970438551692227864022384030940668058011659366656344658638297792842743933900932942189620153488236126961306623087594766654886349835586233040588642123463624149408431579371171813624627265046599654771997127578191999632467280075089842999691190382062632458227891841591380083979747884073158946741786286967595377064400447030197079331159574009642613406102054045972538382718642617218994180521518632198262878090891385729778062454089885469324268786327265872045939725286633226892767612668877633990330956090746808945903696066254309530176580666497622729407245460302532326905528084021444836278382877333607063211500713873591243401617080643647244841504743553875631617141525318455630001761900861956620132263104363891841832981073281583357081110101335847273346491392053351145455576175711288905118438322969065922384088335339349156528881443474518485063135479934465145626032170909970908480112547057459327066093772239248085992243464013714653145705337116547555940238198844758118351158783764285164017750484990431271391765295577501926161389633518047802649605440185870018903654220676654536022387515702606598328402503921745409274556178265023666730486868871788676290296482334208494576664221299697879023385870505693034688680367146608180435533804280982068437347730606880903005986049260106298724021866257669482918729842090436459602705285822662214723518879682167600112684516836010503159291108440446543805609517657656841168978366895969072443968622579700685860924871863213246138023397069358711278694512142626057858025453691594125450331660176138231500735020852227585514844647526271167793377753803341550831623832300990093751687710009812994347744390681065397156921739151349030278698471553217026195286106944828107805316548649956095483293766129182578228008137509558005339910025357239738928503063507422354015291692922721018770491461372587990712235032540939688711655902199328946429708011381287974505296905366156866602026420349318178362506609809586078094092654922096170540890130992460653465241359378261221550204171880340860392201446681808914055208811679806781675592826064295391423603721426353267980551756826211978501148735545312244148349324960875133005603983829787771537233216334512282014278053546742802373734140042720105615678502357387580062978693322881807567556127935679504387210254603596013713857297089701279824589486687403546027559255550596514865442316634249541762045003784170353995436767994445359396722782223166927306556461256600509210896292562982816281903672788165865642526813919252798275110009404187982223456024137958446857324365132859643790431696632451438195836375226112669176026907788856878205363372697976769691537273422546381101885687562958123543839878487579674435477065197472879416236392295134892589857192312822226288583317081353296802397427209113593906585618705339474596487833143920867868709288744459582081290265552410963655467221578857224398715178150494836154072538837899209683256327037454487867028888055856519031557811348716325953916150587310428772473861324869461046477931970519730258131645850123133070659018702671887741870204055282702563150917944552829118402126065581595218402447948739432589315406278646714253699076826474966649151764250219801917341973876538016277811313965184335427906714653088620780494604752527694143881887317221515740807279424272211006738860559961657293450724652964794998636788277786417658034850545824818058363187620816371950800202142635190965498042370248502276646157937141643943420192974873682253847346998923040462445698235339024837290719416578613940989679609999616313751954939078690501699777236012397161281184028402045764800274750378189290791358341330647706568847834080390464592475375480830320504286956959966259627588771607532473069503901850060338023184399538951098508671683011000545264933035973687939334241920965635913952705259684418050361125082331980795732122228608462934642949855530662686459600136599238054199847025908578029980577342950843803986216799989070987634246307930492058942100857928253945724864553302808219409356863765617421737221649297767695094958490645023240678685847597612671606477128433710251189141706136415762072485144959164697306766979771346254899701633635897448259659215969758349099362095425713028805065217868560009684951947619095952685128996200687443860728505946796309160921786556972740379390258987924551715594532664727464202238489537796601004407789158711888348613035311030162510285527695118827180730574295216974056161650766754622972559828530089894965616273688392676858286147274031306707046172135997271689543499815342884076454442062385556226228495065355113033920301639100871744381976668869834144199636488025760742852077319940079290079215277850902852165691171649871110925562276698580432640205372907953038873488050702928896907494326164225681223814406653743460327134278592647497618651865270728692832611213120290613048098583114313509486785875777105754717366859506119830870432906472148248972045045156825985573404772554295871221683221344850038419092773264460405675802867232828495214032189582148417469261216459441555761425454829698860948062338361860843348147904145378247946753079896382747905351949768495801034436955601746065407230343533644665887173815397940799763632432964586859338684162071797396821289297222865355738592271665979182661725446711256352564563225007266909586755868347483447016402214563911516796832566092239098193697237822857665064697632362469168631820494587314471665649583598086947392331783130432077654864290637144998280998552232160562449902912706927760047317480414181838264976255115334542076075567918919128494123598340688274464045496517624075041604176980144368754845120300184329708180164201414511781818667250493881205523828901746602799177135732615478499246853088530031697737090274041127112110145334225986986849582306348978011260637817247513569132718194614852984864996685107609554297265334679935986948959246369629019823735255461311810986208336520312544810404602497109112173834884429085285015209438034683983697495702272127674225777392751809758485216029924111123107769998321518553204195641480094552372691867153638813033186032007340521182272048721502833345193939175515687700456827479353145320186691569936504581788890935863934681317537126586661624262913164724445327493139728405145787945496228071186613296482005520973724416399417743195101006355835949366471718038673511559181682958375682334282994875314946045636178083487184714450483814652551333875853918872110668798094769564463103898132893120655000201448827952879006646558401795771820895439824352004902811405363204814399739396737224722257183540946209295986652065107291302935154487413991824308772829140219934931158207067761870895672483917228687535041698468752236607320702220494901389865575092049457672838374842183544001880067216485283116270935968682687812991866910756444019932224263179084942784628198935797707511155558980491180552511072601160923100859876707142986129843818789829308864861086689659181985797420183465785733136801311808254458495071098876486820189656070864585416304499100029728648178088574862987806359941017136766046948521418918088066254582182531530753378173903270991696276363176686202604621025922065368574040978638271302490973752834210335742599694790710736814299291906234274611855186261429601532248357864179512557412446226925867311166419406137994907128457048818088245056210447670826191192449377650830257307045579262146024113765292584869164429440684986854927181194276974363879464091243393460333196769531380603184652552014470098541999166544000177724222615479528196254655421977124497372097429523828029112028085792207001531607447465801153323905780624917970542923766427746900425770906631203715353827831780140027005391837766299657679444746874859215394381196251185864597841768779223240294511605021803962935375456487526029865743237129693795979164812907244560069033278671253619591579448769153050399501305875097427293077368091978306330441941754228750069267355543191500557622628358050012132149517063914688830555869050966501777851804205583746610248476375272451356940475547614073917573911576762383066304653439985111552233018864617909429510747037167317216084307672221216670586733916925882870840695299774038549247417389832101526621241195894466130748524710350938653243123468020273584367225095616040895184617483272282400896276651670203465500523507676341809762815821086833067579097531255491786675974342731245446064133413075129467137978603291287430119587029740296752954214202959883206359341588040357825879930727166037413404227337429506704812872784961158155904530409082385578697558847369024259806999730677731079272848626473256295042567611758784866012642718182881575541646683201008533771299389810613863793645221158537634455305727435206607355982948684867656710884479705944387522309946872101540617858974155749805635552774599164786194375784719529182905224254012590338102414514489949370604953565430506939305908211573494697271703574934434455353303630200459369791408070751489683668944251481731840630324867255946472394214831164131426791002345248217030123860462442014429208408665381645903369753585348909701677209035108320548446589899563165516611794530607029868139784088696488984094974179587379479636197812399662737404822423416950715933815968313448959753504450345953088283999753622996184336249444491642056214760942583313628061356577987308254686417088652321543364895423118775241903848689491163113825127120028672680720987939380221345281134866574540523676038046735518640649613386465291269421272698083773339697260564693259948579248612626434704022575565807746092895406758857896609201006327422809387829954577148657567243133382449584645084607276934930061933984177264266406569136704640673046243845984035698409664195989983795337251767301755254183833954588705000330110079576615329451274932499211281722146816959562640119830887143623388913484498963881567783383509513925713530231534920526732033882978150109971232751673030213162210474423508332658412760153441045079599056816717411011881507650068606277014837321422299125299420973288522525765660994142880470046867684526600266341549730419330004268322657693068940778703798890883446412204046512745206603824115562167910397199537028450801655276127543647200649457622707392047020055160838587783299153813978878176156879072343438417229514664793625189765472260231040901926192053246063069456352191178596410419132487941746203892575254773688066587771643768752636615077356320357525422514496315101145966400075095052749077569499488357887359998295582154696675444068138862207119616309256826397934792648403900009428766737206309787571010070063625336622845748065198419900923708940386637761296629767069759276710468374580624179026028211446257726113627344248538428050396107247908525991065321152996057535866748783451595860162996177315029072528494822352522434963731492878503009877916951267923872530238171957648786399097823782817208588220544184831873191031259630203969718104596368834503846109485424777335263710024976965271383800999483223966919665459762178474011477867011983100334869163801492490806557420996050802794139893885256400781497047715724412208967148859284282659554071972470904546341359267162267896550022042992115715663042994534693165859921513666294419828465624008950649090117044909989501617018643902673037293122081546563814103964059304751774550622403969567729164821691162195999116584689842903231093626379962825144192976103047720223840644955690117580846344662981778500033114603955175079697539457579056272643663353157235743845248442089713510716203796116707786021581368953245698645229449396631465627852191130542961926278360773271915005044302105660661445867511561440509775799072113346902270650574009916870582024351076131148152420441932575000781796615168340098295489472626357403540248654707306106187267452181119562115693509538471549230727636590116333394789678806021769941266491965830515430597524390280473331363874049278336926887146132610516298857457395966121961485868407053785313875373870872915092307467961375880489114785404794300880583593227515246299076000358545833214754492903630100400321881278984389587929866152759212407542119571598508757017900537997706807447094012397759020936028224723854256709775791787132611716463093062848668987549024536874113231508969798675368322540410568130810513724037099232452131924082275260351728991248303801132883263976915906850156109244874635413616599700918832976959586435295383598720649659076559203942630563140080521968550635616505772294198392553163582768854617751627463071725082181642231099636945909670574749568207081329988566277459126214741256086081310488621573197459119424095572129734634136809520192855134220771360578844889949793435245145392367523426530820877235282525038847361532606432542405529656193489861165753646473733550102999026830238085887718355364276844557377531691895408348622879280784359322685039193840061830040862231091677013536408030609336728982136238783641196778791256038321383562860064339095178123194800496274233572964934497697926090409346889931693394179229874917776668006876201245576430285932549462552150010028106492246271443854002538735934611485669989662213599084079857308782069803834446261015749936187648299011156748887510751693088323294627601961570478913432624670212220077499428989609477268627610399823196361014031633323388232681754820427722886748978145614823346236869631368975309399929618078720332931221617832518136461846837226627359232588971757913099913102452357299434057897839141850597587560906653967932904259902815873042456983058771966042811523167774668229225295628476071377201209759993734345987284234239101750827662614374527306659850590682427293439985563896829311953527863026197754766959831476167299359282173378590990315303903318535453404674882005052690146887203962848231009129306212509945450793203656331633495787528148243189842853224837272141038911613603248092244181726069238831954332696876141208666758321552799643235494759055137324223330130321203686306044548515842417955144120112750493837432959341942205371118298406194310174930430597378663536720384378411113852071074014135587614669760771761308546598745894732349467901027427807620119206363143543735121465978027940480177762028672054652343325331939612373537137783421939877093448834180341822992723154982369525855355420100482980950704056552233026643144563423059131890710246677442736553084320385881894325524667376435686809877704037773223587329438823053510567592063394211168078727903877382112907044044576911186324133365100357734182657534176510571696215468932163564665283049162675949029830078274329505865671498651557302449500343590682498047518185122205282221435480989741526805299368178387109324932665960728351798354386542590561954332731645695470250117504567212255474971386463913521497126746625431916642467959814975396658215053244969087869644350136246692900052548917726000813413832283068146373086104164851199603956307706334634624841688224304034793719824628265688081329108547737703229616526658460235244157678391384646475670836033528176588922540115535368525964226104343032350393136913288376205224446987910324994029342386174859187241126062647425072266999486947390314283182885374743002546553511402363044711936356407468367096612591572903174677964295580305107625379621136851990117318246458172109974979928251908279088084182753520481844813050485222327496720983458180078186816560152865378485639649048247537290227756133762697903689051567826034409338599585554336453808638267707552542729541554442344532693440245325008111298638012445531378857672345503606606673301775080380952521975262378385061031908403798063764329711781465264649633950180500739407563076281529837267944498020501662242394973997571383638808900444139796994722077678050230415862616498367607287525407789701566931224054448026343406561298935077391407244217376178501650390266890309753645120995333090723150363622364725367104826309771689558694674279240976978918627622249015728950520184762987377531751617969490046236623363249781376996133632485092958852794394784124367564631661544869349032449072585080950280934736470432484574682815373845796018762280056177075114982286838198013035480832871115000640358950328063070994766223275545792005736003963728138418079229858266415917185204765529116483325492084932296638124641954565887781710515313362213032419411950762229538371686917387777418622860484955417749650418289321019905696054956121488702856075039872159496244731170028468047298862117800993464709451835703226193645819462550120711297670449708199687964069643792144467442410047951815693098572485493606448860928441245502930272904771408700893505566546359460250106244962652630811739087670698186295287989178351034356215174261243053117509714858729902245513750169436940600888236749074123578875688280256036286045616733335895507817376472378506149202793893230929671599905139053155394910587890109926223002749577734832181702952785538609034846285929833383583668001515674611592188399557362735980943451399259268924717610351991839209244959128873001650608494062573778499163642147912542924636209096651762493178653598161016167060075686854142211805412672152419465973446504935731509991624164310225363133173160110828280926027605362122594311862170337015639881054403511158352461198443748700598395594091231412395666568253114727056061305133289160264732814962565938516726725808213117339261018669428073141596888351855903961946429833447795781208790759894711893215831962812646861632438105354663184220222258668372813653932607540363163625176463003485102815448506550286362771715181147354963565925520641747987648064300694913151584481758447764175912083828295103670828792244918011208009936134980370808602203989599828495674752617399649134364937348796947277011919310366200490059909307359602417364441567723461315655900949153166881995248154411655028241200006799376906790084120904358931425822662019867238766225086367634809815119531736863917581551406103796976411128995576289576973861525674654519533307080713426731161542411710319993023867345281538065952854372918847764369501989601458024664064195244787525998460919212816078651427729230293056379951596302314529944833946245492853803402144725316313918196152191036519598441302002631771531165647569706224708527479468517449030304465953716985981552432108389517007757890539014346554608193553397879287890638586363079982219460934792943924331324035344581127660611506235621258391064069038824443447868285168095475672468804742277458023592590389443745856729052036570685699491471498390130148375098561287583167383751723120400936027630284831213258780808166101909700270901874493946588114819989480631462672402357247265744097771599351284899058972282517242875695778619502455434283260261345838126318784715089396436155562131431786061670817709622042872479586034396704940035846895224697146955548769340306725596715368328272714822210338217050229027791004301539241069550020942268674176831806465911840629563665884521225676712585740392952851518979356414405356852585843515971406485609690705943872514921704870052383911615533902166371606224833005191637284268246143754509118552687320942625603808440612008954070975778022343746002053019187217841454226970000373311676871108252031933872410942265910390576746266244013716500031437914055545211766296482697181728754976134824572600662089189975757002779795212664202199329084441225330444390740870950620861755407397976266033773057950969618308370951533889698928339196519380185682530705502554012327100805078965531926162523027719886979049747262374446042116165813317169647041799737626671754723278099649508835021592778649913460972884432053573965923775336890240093276969691939181584157082760969980574167423899256857765003912810958711395930969948896975041103315982436065971004767224475083360466386429071293844419163905440110654487205859416510769661555016567928639491708890139800021860770978751282388489047634546722655134380373030150156101028156109757549709500203225844789170573942668849878327807525372345691222746882728729846141153292358280000498899570311528951253001250109463332459971452318665391777224387629486009916999551451287475198469294056647961914996631255596727901312531164118413700835303161611453603781002488444939525240558789644673600526424646537580009384647436380700389708029279102523826259305576756786339053264269332520286031461121736960941925715425760095210366277953013244285395075758504770805061194031819838773893918658509886391367320019031252594223927399706958989172485750841315211424296831415441879666284917844218805878899233181907928058993902068335886573595723580146427495596469797901058103269955139563179290458349778229027243785319774034888414828542936289732860897091790208524946326874132474648465516762647811976893461826690666972570984681916541894185731855918437920779885886702096846630359497283170459603736599319466735387948121909469378096543677641653949159492386569103136278894234159837029805670036024849478598939172029457664273963038302718676139893294849193753610053567211794617012897926586026920887283625407682831936640845373848774185719046272871821025426432891859519214005402066730205053625636691825707007415660903373068835211228956086311468091565973681000675360946691790484737134586538329182263661660110718683208699757117118562262116670919080077443664814528471470212676237775405705728272631534360918316657350776832292844642921447532220933731988135479334377483331506727431338715904300634335464067839733141191631979829333937005996000745906534703334859845430182286637926309845519897058910812552068428064874553268612904011313520242301772344743555046869299108688140215783737657437230000466080884672505456172753750261419699892527818533795408876059825593593752328426978250848705651819985208186579015335751227558102088885195084353197634817021795138142130812434425232166654929945276172745432865816667919492876765512941974147823888699794835734100009168563933262234807973655961135976909363814860088105373213995520729308820731542388857335993512318312730778977344329060873217282902140056257736112343467436220032214187854285216876905741169996523573375300420390350098328527786662149370650912852380728431337944135774828662157888741691997183789980749490206265050925292563024225762328937020644984851944752579860601342963967884072568478385405548812953018697404372408993413753958611493984643484532631043231881550488470732112289161211362597725439634119777219361863740951962401515248450277940223216683670175830035903673169992388850906054634282347513878220827815066835621802458337309610448275509322447728752260028755267127124963409166449681100012423183698790662267996866530338258118639704560828680014654055694573336683099454954222133151121813116673271058299295142636560511196221861969839455790156569515607631552962720260080534626924450013654268641386627718904911857132766618454843598883301862610864343270525835059962999928771746635712429436782124392143029087180481809458163912958658920690407249832332511881967999079966352241094878372747890974349166910743265475671671455846218212011421221586633525671346450819237851141302863145004125019466731945909324884308707806536080833813348914729210467459293743432269255045795552383025721865359565774092894628476317498386764187683076109641347776009928012714195271927352550623579419270099722525373559100867269525732667162510791152088650213765574428325791395282353666707711482671325986642533434557540710429107723481689380205532489959815589520612426653257669558373653973360320576460391904751416425528662636756044210063939487986749468383479008794035303233297318589301091496200562377230953118725266807412543632128871187068525806892245244030754861066108436211634315350699403298746200856356233421348243228063689172959775808571022209169240851412818337819278465577008128629977520228832507893783570598470569606597003778822549531470639010052833166251434227420076201526060307038913500036961809114337014721489669474768218911618293130193932232510405905939919679998121089639895161684982826473005728605374467333065458186360247058023204098154413332865157573475714162419474427959688935356409777236376900318274335974585758953320555791587805317177642523947506447479478389607732252798358340673836989829210351638105984007701231901561282149616124639551346002712416098990889693964274853616182569608360354256564193570658756448072964192704118085781126913503806033231640625711186786631576882547714033094701457796185093399026599690032636810761593927176493643765223871163977663207227872702149305912533591875460815836413594399235874560834249958738416239528664110699253962885959884980352089612191997412523118524002456813328179993324553882849759570179601035326083435752612991739840729678742420942526577736653655520416029672889593489906248600906633888450859117709669060366083989037824636337429159059253478542649650380077139619010199646470468219515510224377046037500025148085036844339595237842034014214203023208049497713921518200778363474697176210448450798210584534242175222667974006387415539555056671067288088615580867868930605623343603404303704832249071414571381455288256727193324351674041511863568036164976478881077378360771981926462492449264584324697568104848501401691329469473787491207897543380447609650254793725783967106693869636843791808780194499885814984452207725272016371876313198193195211679105866371385252707024685521610695152841480131843245333137854255492014371413042755404206159321450876028052059540972063618656028691122578330460676872885413396532010147965314202098843845976313983749287145800523200790439470956377381280053377384429831106745066963354746452905072889666890316799758503309817526309479359792931522733536623562642147901539797546122790105041476273678776259244579334476013064422729378359154917599920849388603898882848257633984692942674439992857926593192455644139021873933256402053421896481869639915355771250710613535545795077031501288397442886800248342825804791739462266134343661776836324573035440270788421610878866451868650540268508442985775383439691281702203099906304540634736616565248685458431949772985865303997801929041285416535172993313618826540320076348107460290971004749522916160125803201950566646035658042481552293575061362690645630941045522622305518419236388799811257908532591108122597033933916854711093648866031355217963435713511612362878971693415601640346708755200703409245157545626613033064415787240206398064770144570166717791127809201394602726949792126602165452980644407880089555092924235248647048317629137566956018544080158999279222818819448078314501861491524359772274922109472042101839239362349527846831927763728591236268696719832339985893017249234790558748529368813339503243529887589846378658965998575097304010588755346473412325738585036435177882569259238094039545911130383420565593193597110551838795667209205309454650757542885655028994051995869240432443677536935376431690396065922671718529299406963125393110143722153946456237668503066322456946104858665539049890721539378450984236164657427193714364977862342101175530890426889441259375257463393300222753215977408140771457164152939571466819007629080302948827167845186270681981118297575536579962725736250360779447224040059565994356098647306659151753432200595898888311362841479009004819509337632891026954857792221627121199596127819603615478461863647384426754868725957751295905125333977472606267958247738914151102071744104556551834729633127528000133039440241188730179880202437662578653745803866259799767505570934442851788290269841070976817461273736756670503020364091398877611523469374167810381726699193294380058192636588781780160681312034299640855912330741907229672657404633574433615931810620454527124495697595392871839746992383017348605727953838327939775255041629055271052743960680059517931184316628885216339570545804765372298647656851206081991654704100932914652377210150034355928200886216725194916883407643485823709527402453939722839655495386124999564118906533366995300797891953425847932068180655067823979341970659056514625746451114657415087241531528497470601045145001975588687414236053362244741495787854763478902869289095230610368080150350453096348606496361296862459329232140993382628390455464518721773887127853532060211301513893472795887595815357659987174065193046591009092765498656604918672220815772599831719582003837817511184940686756997772039922167658850461025811688503887813060606766044130941977466974918137692582291811706639744289547635270533477780223480898548218788231405245982364155800789196193993033185161937201785956762546576217343403925073982972451369423561929701752608331999529441373595818559033595426696534143796808086533581566195659166234540137568319864616917361566386227069612148412036482671382282559759731214136386390427316490844120456315006031148052336773848865946833686851119231284228805970643613291663604362944119603160805479795750970699026520517160893226788233011648863694089665663706858548446257800003954800917845530051994263917958759689438470818112680171640354316464628646473442915488260602668140782009279650072289626355567504208387788472098247711078074589420956218438279617465994595845046433016115873023318082548069379122102369425062266352806690766589535459029421707536349361299108974868310901625876375455019496185117164857802295597481201050418502812875345149231722492562844564680297886174723740681636688524996427522661716634171878426304416153977537406029025260469953216413689013263752854312529478477060083102889669237400336680629496284775188783005397810196780695318028916690116639204950658139257879836117337010055795037615531954220805718692365370626585829264123204484661345833918773688655316195390580184929017777513595576211348360419039713104456822939938162337784213984662722421240331126271839757487339872698904497205449927229280982146844603615683955104556407530257303933939662612546607980630250712277778548830976381938081549021893163761597073915561867007073094231315454609257219344536571972672278126988445772809276476310906282611039367494728773891875837084697273667938392493166481731634564197028943540008018721574641707891812590690261572950939127403861899858135955669863377557442642055820194845459716343491825192652487832243799182056918496300353097956874831609514207289484796731177959359854182909067188458484777368963431709551630678081334861741133259911209593827912825890654073388680837463297135455369048518312446670722038635913023422631120388952614347904808935101530801799522574244031905448695507421447338013135863169516013799308497770238570823275377194554695484428338816952214548780215612617229035754374147350977444121930394327945669680995466676975681737404188298254945876518819024920230099720387945773771229684790366146694525846809570045979952898897053677174155421595218129269638931566081923523411818617091241571585716246441923397236964401670435091754500886319540980151938699873223926882317548059673300143788867547261262374172633043165632478512739488690636002254093911775808877666819198635611035757522812348058614753162367521975497707153682736341951441450973507896497159954927149944646790929579628129033621384614756786116406473378409058746620964435868387107446039477796077663167005665308036120805356066651378605002384781371278427259503008284963858576076807338374665791478464612359316480726162427543222332903463943487737435655378319083872409441369171435976957639476306123544872321484492449930389629974953331375324648839135780472629877455109859093134257522309905894244202099257596799933487574069350302842839622114232183461171902579169893617479508598913631665206718417934868167031058443042954626541754978808320092088826849413050814726680388422224938604846257395124928347959382391546957784602259532538245846288427796016988343083299203334521934111201750846153606329589184853511470883512345538339411337267885191005460768717955188175511314215977827560745832618546574121980620129772061593172705213303907454441657277134932596149708195533393471381402237482595520176860154535886541256688060259496218373596007975827576962511786716335563367710309310072969468531099970524897064419711280536624163353018196458819321166460209476241083624357247484193847616123983374659044152615368942498627426142308273720686870668904363070689642058871766938368470757765528699931510009142034704556438328522378994358396864236712999569583760564590395879966463303008678311868633563972839217975875088381528981907562340458297865949321820571118493480580041659858898668351915371975524856634036929145203398840232127819009735932162427101632931714642259235313460405290646610175853239110691001575993310955328389485781285015465487808574761053191820811630842399457044458222176620033491339205956995683377003928222876919004159704079277297932187433965002547888202382294131869723739379289891304411583044629959910281554667498080729241635454059336881103792256126322289329292918155031397180558854677519862089698470181983009199932096725383803246270290393134428571634092143957230581423814159096726542592294797856681952422675540480134664825330449683584297144285181677407449754247359606636333312024999199751638417369585454400477971799020941047367858516531631583993546921794029203361632597576711757716000544095130640607714247074913590446733379463638740716228057239170185259246147161006891012642229053653348545864057966267163017773688779993964766276618336652070070838821934667521062150471410105595025579731600056596173302731397081435541634351926374871117955575655415562156230435432879308709609194334492558877556138473556452893071995509597740625114983100532558975423765909573909571919355211560426215444493896874089356496432391058984618515068393503254371665910809558481864122119611838797655202597436295022644816609003997031228484537881224924118068105277801160200514408085064396592196737575779340101664257466347023045567644262787880841895767647167995001093908902586924194524404807306306071891445223014343945115884632772192289360242876656389533036773050208275707200670414672747675831394005446206050528054136060470654459990801963088565086726794813984854443630227979538607278979074990823805679493598445026656621432432821350570163263907376931829334724181706173289320473500818048885898447315456614965251906627579277222815245221905270036546787821973442417506453025655871969202099282897310359659095790777391155983883504863038913974654586117799752444796173570593857255716615384894328461082350165507616157860025090316481971591070922978262156478330110371925086362780168455053123269500865532318973117272951399593842740041525022126523463980801809291904398410284606219108329637448104235142036115551506177021809048066750451540475068915931130644562343516609286873955780552884253336826609947456039884651897804101847750956760312611905848730770042820930239816481610729695545984243608449785827635807272233125092891628626579675911754617588129595645564407335270284369485733828953750867233916263633290026939360847098634280137298075587951874282320688374338807932792996701012098687770028937523697386206602553863827946682130247146692975880494897215361027094944165142964652665338287599349347088754716574390113894286420585868359468772374611282846763454351022243535430054767716126870104761267823845554887449741689828455530853079628458370354518868045346170571807175100936045927278694209355158169852104736664118515899962590638779417731857219776372414513205318713642233016311135084561439780540236311542246892436435543079151275321936467551378339284901444060559567426312889678399011718897735347837687800865243159650526319560297736156571152282467085400964313436959957247885711969389678240921757067633068664982054909324300929991361423268205335960861168706003727723300437901659243256684035565487538452102796368098994649921133618973387748265401678044788183234584554864786320361233451716586245797530091052940751657874062542440391901427804877485415740655172893101045104113540206623244942047332584633047809256263441557967292486417325111813278282207311577089903342691105250704129725342378789238682439199761614085384566430593808111396506851911205672356488651868546447497012579950617716768787958930869055929693421186232940290875012983199150076825039145424239701019493817869576414418569144162757572624577195972025725780213499667745234753574368504470997512755302229315291679801171726418525804681283744313653067986143272322551974960474811596116961351249546274591795254610686103495856997728207499668637989362695236140242040498465392182001111771298634106901197396013860810181632970874163643284119337728446844257934762528943166270557028964086331438347448174140542055670994621188736804698337747013116039359827637837393184033767693137733528559095619436543133695038909049877086785247256970305703372921744552143445601650687215910843193343783032721331149546002599818456858239299672624553878184606329852557728099627997915922011877167167900125552333773349028490319037478655409448166868117275242933690123284756548116996603686558848275420823917791305205488283497300346163124958722009063333094791994342211480581716283032884480159093792673432947528422811003603205153091707643327361793291064485822553653600064325288727608497664534338167320024213745673726268830459561700284652817591871374284247052959809377497697130202684256307626506055175077301809681927731675316017472248020902713202471783802622520502251674532381371333122462038978308292310494814192715532092210578033021605425966430212337814195339588297869763172991614931823299159685890709032930467998493021799489379144602575470112785499813352856322579790044636876810797910171726093366744777479871052389392140852028498969438383155344409791277844517509624223198690279517852593051938360947781709184100866464484425503558953846814255837196003557137623403796827287475269746718366019335613566996156610932748208903500437727311008972363966833725628151895387578569952804731244101589104294499820000331135602978608848356706052132161048692334856092049279347036583767855241933147521947008371455323572169379688729022712667662725656644528038515664963297921926892949829125241481684122994075158069456884349210891812228762050450218602034663325987110585306427563063471129473020319282937724419868924361507818854946633922938845108906250874080238391610751711860513294388741418998768803687430079277023115172975115822109472097247521896963305861062715412331577448853478239422592165101024322189876250345051098526928486576644940138446431737798301640247832761961066894839627374347995537466765997687483001437079475100656644001137296968301906745091580038979577687387571210117723599511637019174745146852301971995751029083314016679857978250509739123812594721544736318966431029126043189611606841126027073213257264996025537691534231084585481845671127516435692184860798178197349498525802264690757711257141253700984613076741029925043618142849603419769144129319636618284274288442848830545762429795545822778043134900186496502805422679647673582243953212051459143244211728961779818807633661401714480126428662697102275163684772735582388082260509593780915029683720869740778127741477680106842952704833826904648605801375669961873848651205045205961606635012045174557784179623816664744723338011347578119372977981668754278626163209217109899643118701918859983212934069191926008040183344772884510132618760028817475899891948049099404143526629149462144107980133039421055904895858034507287480131818423842210180338559067113462288284885179984299134277330866613055170386138744529246278483759762816531325076811896404742862388973908549888225608132152307211754495980654688740520677511134210812075412926556245934614585862912834115239218948112900114414459882212322274758731886030410897188514705533157063808667120659769745037197583721685708896509772406097238635780967861231835486388159732366732600296219047738831818376547302417809764689865458016117039916416489046973743545735135947350378876019453413234147480842917875358148929829234777798886068902618935985656340305353649505253248036519398589178969119562522528264257280957349598614624678910629987255949285852169713975146671867971413085999624030131404235889287475547948661976320025234713466485817921170334846747610234679357164536381567920622795731983598053457614687060062256558371584566572930799249000910026065258969327966790246506413027163955037694381455760309890845727291188526130755389578892678399943897784253362026364161149834853746701840241219911002890387848638477517764693310935402931467067590797828173836734102584285126598436860806855947467266127587130068452347537914942176871375676622551908640822446034859441587880048713413028324933816413411294680567576328442676096839640051678473150896900339380789740469544114191888270926135836545196628120791397038784480283087760937797799224528684190321022209629863334825690428653615119939776260038810436037478197992271440039331363775909475800241779662302117846853129553071284591333231821952177356057504695440834196066089059080546852988306974602773042487041452610124854652789845958638836944038539007579769864943076872314359975108299766449314940122808597126065838710633882453195099226419866336873259225963725521675911921482118801786140802232731379507602199042919450260633886013875080578242826455162544219293798909188362430167703032002006125181662502397715006606599069362847838034446191679749606686663584871603062518143187976720499727585927651424827260214825692035289980767677287834105693094034650071521440064059196899213628514489663556629932551882436372144686299335642727400061165570936995818612875997822079928939004278518509879921280395225672787050437253336297605542120274638038121972605600993301365207279439840830485853223377422589250484772972672240565587442578060734690627468900979522955948563701176988011914362394207940227037722487154366403267434968921661203907234903039449602272867926115168284608411823471191861486112613933894689466622914997925561596856807572729160291406767546151171270039818418602573200767175161169261303479551684824484185855119422086593011828762809598180788796055652773032035821965387249662814577367442285013015628867630029587366313787736957041935375409493933997329646852732444891363721590160859529514708613505713386089802727680074113173080200681791696708872243764798953440460750007747970299678402284864446555416851694281585294487342791123344240038838796926332512567808869527150027134330542570270413227051542803619037750070597752094315658459421000614712571158457556844390133216901615352422481359438252119115656058342577924973834265534813080407908207058761468752389951910006900931031945697882423622619018429479330055566100604041095315423246405926016532302159309684462480933044392319815176402981418703475078046613687438581902397735493417860959883600169365350217326199707038356571043646085655220764945589292423925448994968479950395283287444727137563576804550365445486586306482085996752676160477075808541582387034329842588587506317712890960131316656304368653920433955964121642951253375461234324636414508180092730988073562454491225042648811138930305326642447656272111773652768438007029252346907906010237821847542931125452922745456709307025357690952219687557306179383835786222463735102121345610611876237811472627769775785398702234663964006587998942341811350725847303677864029508362933624872332997540411417865893216739450262715478503841441186465058239325201526241575676889933220892424767266830097863459606932212998270438127972666105465098247030756684517208132564059286966207012553057632859638840070857777246323192959733693580544932038955107327550830323953261676003251790559620830419712430646261458800887031649088115349768644160939535467388044893709649493068089906487205101770742901989290939071421539987087672261693751850106668575229812488439310013004618714196191299704956771027048197255200042602436899930812559910381298330869682056724369605475331149432043211791618672939845041675707692110940428196289568134990690319691060788989014824369300979315570984622302515019099122844193740782493385709874421884541946969491740013997799686666346719115901614707705660207893177609348386108011337693611811184559195201952767355592540607067421907633456763894069768829387674642681040922644216683277055471530252738300671590778636267440780976282792683978767095109341669166786679832262594975988880813026416829052876226582552368485364988950224715554044234718921545857852902412756346203940798545394429347678072317758335455783729141567422617267516465593611357061801555888105311056423268132450322589839893420466315723854179321319369678136625556641163775670837290431660313683404339218535409161914571858259027502677263555400091728919149366639547025505290304532131773091832759391468426751350987739130970785197411530188080174992220806845965084835828534379882679552390644460353021993836256826872734332297618563250418929140033393129981310449676870056875811768272011557834704450359473978885838589843088742831424331102425438601640793168610612945952441198860262798117518000501048062068194205803003992937706745498342612059628132785629393623729310242879701427365813616708452765599474835806399959507314892015414010783554511500920391413631616598853482137979094142279588640235008288921590337370884561001457910510897110905000862496453064955203064906307929633557192939537910403454709185007582190960240310064153794113169748467818575697668682781642153343226569634410995467895550909129517118543164118468133120522199483171954230024055126851446595482151838386454499649257601232835799382548350036919743327391222455494425300045190016001661462561036951930292977052007153460741299254604399215612130727277746021810690443477614229881404972347714091292228334135916395745955499690874733461961009616191806668141708950034301520735191917984186593488507575499475698542392434258578158306653571209443494986316089917778759676810236396518836390326923564025150395409373332528465043427757853027140409990092541927969331321524512891939411739971512165471430172190057996846203370058314454685520617771449491206380299453687404812163371892118037728310604293830641320214145995147494411202108968590493254971087111274829354864924102380561278915698018835674699868326067280331998843881919270389525210274319763471665577169132101366059213709053937945263232339051359898621551066048975771047716678370186765450919133962961183926225735821444396508399142093233778855657219138401035504303743588380413817245856691170106613975172908769046273423276036240484804240809653618825731043767489552052593832296751055793344793842008012803108976205343317015269958464069387336558554950062917992194884846112706454975781118787106565387884254863975292206094628814949661424207557432729595162126703693917083233369806816012690008767498087921307219009277587518043122352240376213880978894084730588555921847289271933014134064096885920343336430493752913057274655142257758642694069022770158308686209680349433811157155823909899166186332977232317637319088634991359720337065458751338474665819625515094174467928889343693943534713779906572704058220798978159339103703117860644778877901379222307726707387518770406081605024236304663959818557479302412461191923272952214644004042508487183340091514727978264678824651596062791534921366668593239785072255597067175254830191160558731315085050085039879522011964905674682224439098269026374084744078192133038516518504827589719605390296046810317425624819234085874928272197558248438686489310172296953582783460130700577169906210832684429063230502354626920542822554882286577034345981637274384431567264942059048070433616612782616880024452892648829619852979805006763802765742811312272186573277233598520961795487785314602346339091000271029651511067027743070993532099801008158365043285597255222954918975280733644574742144302756571439884419004272127134865850279618102022328748524182354710815860793605357939707656363040696576015539536950725744286775748853786067920792281095158942495019881656651404434691652398434236543058921944242779055488777639877987544527823512652027104165038548267530804053987281881824587151689832594859476171843046686674468525684868851021093496446600724251686780225462097954774829649988058517564227216707829346098307463935195706829472531314861889689206290320830901100038995533329936525818156540478883999631307040674072353335837759898316795411312104722186734318354581931268312107526811260510046389604507388300759756106825237059759522638404557606371175198684064493827002020602835642733580285500186746919628517800927495200778873539305343168979273971658664407605411422180308484829440065125291834984524594660529915284216109370325773535854475135076811376632610032556263689470954984561006527245073833527968234827257750987958206197887573691481063102543001605996217663433848943287423055280806476938284342461807025994982649444431835833553621177712489287902306418911692053067811805073021556552521089359561862247913302893861897155377584361606515370838980796988290669204835113066677781162488344901892739287545359723959303154120526152535833276090820636985378683972907832608863486172504300765899374333994210815092512823492286549327485944513482889641882220458225595364075137709578058949674661856943646689709334693526086974815681505011468414402053945375342814943835345961656027598982874080830373917682107447121578417733077429435684081934572298131077281045534698651139608300515924823143670289739216446306886119474891594401047637812860717029728391017006301508164006911806770515521620344738535902597364031092811480213758487103190281817809923874481224737250134726016501890533454060466974848503117752731977737856640589207570961774394385821764806232677761910421324281357960698695319618592463896718480075137249006949692520148910202100241936964523831042738547143498930858922469645328166506458460693748046952011417829277200688314934032713217238773293142967884888831741661015404236112137452612638678140385194804896178275248590331523897862587501993472702708502406206231325014356236341951799729526649444084130479743584023813869733928546461998132045465608494114942869110014036683358617783772564832067490739623845707154769976938310518680502797131203305845241142341407193894486810396015545143921484823614283386037626451756354118237281732453800597031590089662612377774754170136991583643672246546630497268020750235488955242951379205294941304991374307336023560550557318809884492957380688650431082657482866934664731466428448451500619129679697418027066665671908393039868972027081303910835429524557137842676748985328311972970501480486191379737593848883966630767306550138601719459700805355682170651452565348031330790254279108616245867676839681876552650182680853892971397812016762272945723966151025370024679545870501892984608188082809940753260615147589601456395698812982471756470413004830770245746086900334778217181601096751651594472523821740280507299651969094146132485493018438607471675478746856252024442053962936899657378745183275050797781568362863359551341142485105809262448317504739153679139425330152507967277125189047012877349478287469243007106645537763157639072568804033848766442858747833221388259862411987281927849886995723646908366630252180711795111819713279213827799818848939417606965105511624590655595815566005548973391439621222257723398394119423952230847612242878743368982052288119931921943802257163209621306587764423750179497875031543364024770872719124845178667782354860496564222017242738149560967987271085775724174893241897475686645153807047272325460505869705745064993986592240790138492733799157267867238499552930047245579788037272930013411303252392844773822243558267334618035296953513038294042151193847596219651052714510653335733234971373662943361344620801864241236067855554112877303589769827840183578536527855889541829831665010975996975649512549974970140591638900593793045657853452197218894550329115447578004048480517416660219564585532492268148667497942848547861829848579237756830061967129301950694280193456946848297741977254722755605927583126955876829307017213928972026437384933544326116192112266861310308738445634883653828676584141043702598668801624785057435940963456855846377217249914890050386215572931909260005745556110804869292211536468034606363506078129887275460347992652367262892128084050392349391224591767753215088028106721248074268032267572533563192994961499350200024779471677137232246226928594008152422468906963770996532778707413689648762688282322408521797866753563026550823197097566674188035221497365249438788855144282662351119831733916571510224404391464305808085832893245721699320868111284112155849056791197635610036093490539033715073760967223737713935282302692800623827125396161853820090485323412245970895441739330205342141155333741637256933836020831554973390058138018592323686373527455211097646057968819697497440880030641277750086344543908310855846537112597642283552766812710785706508608482781871167949501367957956464373446266084073411918218070099802608095924759161981862749048933359948766519908926676899167592153502642280567062715201170394543814541219714324041272907497103933365781196200796318791367528309229220822459236823108202262681758355442706932959732286872679521715437913590273472599371457723918374973266164936616655427885033388994927735741203579673393497150059104117428796265114933799657015337675304783760672790896484765683583788848621096010382433772643892064441073079777185468172127338781670940433439441430289710643975816705053247688826443838464616080723589786801930849070064605100727250412411207128253898209233169327987161175077048886708386346088363697013673106740725289886341360583178224761426866703491010195775742440816545878525238624647107974595195030814967655374278907472085578695132361702295953427602448543620020364980391163071516480196172983379703258945427607185062608208729312651579041348561463147432025485920856057089685960055311643607600305701532679647168990534429901624428216397601905780753912049397799802252112004491732153697655339310851618761655894203921874353689110376590588488407829812339832493519030913631751334385830249201239934502593589261365005848693271288483838017862833810415774228200506085433706450293965751005408224810194496637036297255481588692644327780767540576871207460612554130382506308825160245832873953020279223530287856428352584695712801177584007037096393798561710604606490781909807975444338232216420059766628805000372675693866197571030712754758802985043507795179777232677117651886781663362135531181440474918948084190993753332534202279864445893806147207307050792341476983533023719303862328313287168475676391337273911822781775984607450007227495857277169455925932137234853757130338656614952385582060201930170329955338563536979297238322078201128006257851844118949374440923644635374517570235285419234051404411412795184175999964262886526403364638831426956734968911559234503218511735205931441882900150410273255558961224214988548292016298072843196555239844785344340169228100959487590931233095478265987051305373064266461977725289849179401057349246053022447628924800178658391761542159473693517602975774653677184988777795105277587497095376184550251629975146074217900811647784019287878383537787064800784670566205278108549020261142167225453161428238237081736783194599983907883779519635955589999194548875492373447524896957174574329231931936617852222385810203446257721675889921757812833778939299322162841403027174805598272786031437828412573032230385937235154205509102335782793581981897760293789102310049242200422634624900563125120346322902298100198644141076570141793904092126381433325916823951709767825500364259461807576104164198041439889714902185302748952854400277860551674151365827168592852047689133731461155926956629288275111514019409600099464546273539750417512840160346311809820504832940020308192563156690179154549251038194432673843129091934193886556909631016293835945682932060739025337614365445072830925555053878580496027842556969325237802532280704443162454572983299684271841745836063862436415967797787826237959519475733938550135485118073502134750314128622417386629324677646740339078123475552742974422882871483610077929358540798921790447723676243315210020678379014123875472983859935092624716546236338346544835784653184318049807373675888164410784095232853825542706518924178042219443628227812811436467347302904782756189807733294083087678064304554455711186190852658132209202451436119153065671262950857607236234187921205474704094955757843677684340622170632131573357223815947655607253649354788249383370522360299206915104718471681060437806763906350032349737978915329990666234007681762955947489167672668744638501472301028549989871957495229050991501383510419395007302404419012562360124596285561301625266057255150540065150554556612832971886682060176390671564821724897231851249881551733073686881000996126875155952172760461866828874027500457879685342844088220646195979578399823914560642521726327615501661867673210568613876013880527183083299915223757607929111659089412706568030856868409025429407660882499561221426259780803415821987085696446993321677871251193307048097891844841099272912526767765927635094734352584790414880400796895925318844326074478186174051034795745135048569156192837231497981448664781093002179492069386656342783348314393941181506645468691999530328636474538938847260322933153114184514108332498288813096794374688119683247703373708171358367811432599021853088631746188439443304233042791344451619224704795224099876674521505258970418032301458235480127754037741942142815891830779721755205496750744712896892804983822327801424815443824650188957328133982928923243759762665917021263350515045926546930473367459234110077410579930502418643361116258420825420158279549150976182517719441310065700997058582135411320338927292670767507161693381624332883027913320940729918534824960793759647441250944601466528176468104311314019092650070848621624317483996860675807684094729576229582379537984751756853614804163085074302700804837686042761595150601775743051518165418485652148851418540690313165066097082860268320719911753520966786474170663872150196701059728014730790685762013326955308403963582486967401185523287890525400622217027149662640457865922485303514445451091754062526637008647770987460916088295830414657022527130578706177508879346507423891876756107813380615208982511140634814285913854651788341090955140623577420518630076528994352265248167603128197287027944400343210671443250827542837698935043149154803636927008255373972568092038456337488477742012428581313396349760870867931043898813337874068130784320345729382541849487550757535794763958235417336153641759562601256224440595933006936981948845369894603001878366556866467528511461591758828361032186096102880762423803328252720096553249752357763920621096756693658862610336683715342597231674581298936445681973477693332891842896610441295257007420309322782514007148406432101230433679957972059887191919466447035903671889733492260600935410091298960650350490184107064282697748417439038624904347427156031430856469701825358064906817860078438827002123246222478741152679270853040956323336389283927253655803811815451631289435072235571970429753372740841641754648780749734022634106009276932032484689134736391086034869070881916966936353584091490128122144390640779478366951533558757162817231122049341250918009514080263445433244925530426861015338812359147422247647617713206733049843795009785828030523448001210505004745113327182673478673689357793486436550795308749967312001852102457767352264074384111311989432136102608443637837523489951637051766260594245351200521427494279721736067572245800706436801007937003193069138287509652140085031895149963187123095125331087821030169879948691845575617567467605745095465989664829755872014858190960281406424447206103793198225020123268663099336754915145613924273759761580764514223335782105579148151435871949357693854309870892013496642932545300057766787084616068728638580424399590119986434702296103981361592258110475940054666948664501927745089264052081493873590435051793039958388510949755083054369157613384724812573095685707970284050367263556478766591536109512736733140277484323099355469474752230968376684680576913779890624333791198741428785042717655909732251972393026317755914766430971551500711783840088155610246900178755748047873360376566580656475227655993196009985887593498700057542014083907446467289269884521345012299096918564896264457160064757523687547919107035132398871762159657166872873236314829120067037885109774182402426946166560472101294771869754828595252608203012272943016162430021458908200090268301670522514502811682346197095681350573637680479286329460935279215282621641327012374740386545712422348852676749723477767416108349017935929395989646580918035468123892869121623687088378418400886803494206788689198595774725098565044245206441658011950353399408808292225243219023593872242145391456932618144558745297371189911972738119507394483723228798914420165044040685810830281035256331223777848253523990318014469022865026698576997326262352697392507981788403205121251205923532613122239865438063060015204821183417477774101223986672225188733339421075257547512426921747266742655316120630121767535518684864549923030335047384697775355280486795972808294045862895571823755407346374247615556532297570333641244040013452508536313712734057758375028482792006493200338481972168665573033932750534909603537044594222699804214752203334559916578668440957863084754504107889504639392457151782917910974514020300695351082233610697139908748589802072376719742206719203754230639225233648182397153459929001842238431801053397847051734798400438535387761388929524612275153150755696710264762572651170354314968742549152594988736360276306008747199029647067069118257358165049627491404705803604796113487877837802682009728971063968560255455957062300594701499713963799221084246545646058494394194303873700162820761279096401154050644430358397451987482924782976960420381036334419384438483046946015261815113048132154908810487363007708961482340334893179805978001112475889054555788186943443100849253306976174140511405371097615478604680013249025262727963531192909950738162777505395065822269754554862089739952760685872036354632247079801591696728722577084744749545469349112103056982854348158029030728064014093386752944354525020127308307319598693994138892264545666267319476062415978897191024576579664561052629979902500809882545472371413434169894487413613088724905547726074830185470925641661231867950226205035571687910827981168633353535732928800425326368203099434340838144501970189449419280324404181451483160353808058749420192559082168889008978002691785784592166506982295747769995997617851322898311130750010336039673282918902270060880635342299453889946432180786167230644002493297210800163208293397909657468323161594829650690530869182356164755553711671436099645118800198826562455063225574602549650362089881876629780160147334266416784767918826055456070692083424856706254512058378986765615935355382969874701875122980798062090886391156393070274710437361652493510646061867427180988730070562349037943692516574889006901964272561506125632506132522922087412956963393920684136361311195047138965500504396994687812642596548598039522364474355324333926787301406070376643903921131941536648584557670222050440438550022363687868859573213733560154230399558019599618394321676470469219057940085930373050481652297231244356034142194113012694420684141117193519474371940593850306208337893450515018924968424858265924096460112060213647720058273541032577483956815472808856280457260511490702392834519107019704735310237872735103058365580343080357907950673743767585201886738882632275827554487242125402089889140236265582727497524295259931007771739382451130733470694749718025942105760125164252525090762695463386135339391267030109001938936609210471866856043292239079832972628592455025177596683469975833962271297043461337367157059921783558546981958025331675045568806733724609969646530957904919415198857874152408300544697325367199906397511931226904369632686465578641619235533769893056699455883963039339106977418785912597309929843044667142655185922056519817571487208847366664603414452318883380901210877513549651818658117856913392189736134918999703504386490489824917745299796162006173859297712049616420630304768745217758955693721162554960249481874771800218899256665170091608673529721292230893545710638468448586084366499548434871884628333087154634694789661214607194677240844375280751838735283409846220451338765206985360570018312536733032330450176452677976202158366886282598317536802944384655917283020626543376382259863953026231853131901629126658298634912932366810354701713894801570619076378716704118977638452623519338887964292788312315593515495271098863448503006412216372541849260292735201718730245252575735619198475104680870902291483628912481155783936230800290651393986114585072350261483760959153778216714761580581694394433481391939601803463109906238251722753305851398365557174959367660126472329331735515965541816746570839730746344237849964341467185139796585965434329834793045482013339365773677891506660868723882240103994395770010679428177569136205485255831850652540718122675249652350347018200336981543358765737111293025236127583176631341953793210027982492268135887609165470644058847746714822353675064776215469362276774374683381593486054297575032760772492709400819563698722089814493226427434325875834919793312126602322848118346767030309944736171644610934691611724172780514462457703101979228651003876185583633103119259811021752983224964358173919782620600715065439230358045060634645406217653540590789043810563712537119864849642211359560744533457438118272551525637478346980447155384907677839108266552942441324227688351751000011743218775277520863438015961333182417901401132841339002957366298540361909736442034065241184727885515167329570770124416471085422929894995951361835465587955522345975002245930118879835977203183273313538275944682687030478127885827486580432361387880995849355663493251146697025937916445046184459700350708384149526207546424421356464682638721668720780852487810969092233782313326214968316241369005437218763003925260093525897177180458342575231121489200123818820498729689134648927279050163208243324641798121784995348295308238694638656542325235348630948789134889656993738587049934253018409605345419614048332229711362793710629096558584661875516432273246055080913277582967987813051678929458469701431064298058562816101534665543564728973199169464050174264368320810873328535432051129388829658849626412643167448096673657787892176072303937020124586137156596706876921270536978629470944913140113839701309510788062556710209475278236921205232369290961336878767690543857177485409839234127667737537257614564098299878838405185073414605851479721103674545739587963917458591181667631213619308773339259986790257910111033479847439561853011802802123006982965867252674950532266262473865748965143226706636661554487903000940094924915377260444385725007137988082520748335074537903292508123247088313895092380346802901654024234885126761645733288091736612260589984368272413331803891798355626084261586674489640620898949200850998047408114946461406092533612114789659693752334584806162740273068176365899269223153443117144802199652319781079028665730496898186354030069874239954470395327456743038230581849893369443981458392284385249858773345172569242535852171447749422436511755470286116708232659426208655996137650983047181307100928798112850642803279072206557598836181471793610603317151592129330741561048251835066581745334620115618139584577552983356382625439845031805625384212883510167165737934297138607187187574432502819481058539970012318870129401574355254393389382510103177118370959198438551054316223467366976341672676004725635316442990846849912058639383002426823877981473388523175037968318833462806566653252784753535291637172889391866799946744181663097140775788596313463217226001605288056066645937215415519762813360796066846710717878098683876049521399974133373634181301673960186461777282225633236575169673787339373188658418026990375991309779509163278131648306779339559991928648117684027868801371371352926182505378267517313751927230540615241567065810343258279936786167127695133346624795564896596840329584708239644331262210487399881904324714361855654206185081157217006879398633098632233408097176519425001390598027339909493148579994060515433689970574472723600703913702402242436642096614648796540941008019681417135134065296389707704140775883407584754221560139280167155190677897483358682490441251088542675808906990417728171254918332886787331725249130401575479244528585639735327366353740399881471628281523260559910670141663332170700420453455401557325273332483631561144375981146372975833922755767868404614311878928669286415746074729565150641001066845956228569493785235450605956007317690575554387858849107238130714945321920841201374945811113345762820228643805387429911971025810893974970278665549816056717213313190496955783151777835814861414050232275879992496011284995847901466513226905317379274864395360310522145990312184799482321311371455699790583703553507307452124158632535054882826813144503906646468442522662466849660121361240745094167650583941221708051483162944695418584500483966150176125729028450315794511838483235517817752270356469933935674116894148887876473175125647383039752719368936135978537423061328813135834082127539063363983107409334300506154921043651425307577497070351589977012091392271647645655102117441513835141072743499344481537741386978141507375458686328301438486303652277145926246059569614551677821463018184184068274089659002803764981801959150384847623303186938110535024192926667568223273334804501529669644038118900272531202679375370364172107276960883169152935367358755873787877191990114591978901033364366530562589952502440758137317657088264936116582497529613266739834859926754328101229389255071235731892569439892331729240128452032875910667652897695461156113962363708897623797746308706187746088561718582394074836877840809729813098553338513855287302033459648664848076444960263228148895424539124931054419972130532733462316844564432279475864359171005279145578118293796986149085689576716877555108595416755659628625237857522309303249508379491693842457631841648318966330967160597078152294641103373147983832939292484657790179174334524502835150001987533850446101622093712803887852740289533012831262238514016490881446652653104627438919525644608827357632321737237092875098683247106549133729302592150217027027349981708591621874710234491891603186404868765993764738982538426759572245694606517197893819531504009229798959197089383326743840444997460318901337240270077155897071208637995339195322134333830497553382530502294599585124512366718131398641398775327464246583172642109523624349257081789370092450943255309975198671116634079178092334608258708663451650530690787538918535440789257601235059795200430837582504706961652802223092629696095519676349863431288280919439512565446359684646124147310988274219498668924962065022122994205219863041912412795706344483250404837693651808200922737812424819353177997381510906445698328344204798150924894718291332787663174649820632784355894862906478200890846373257652301160406235706495745265620243834412799640439957957909179694020185550876366710422327356259004398627168478696443275804030471513617518308883301362621195442744332080548265825212522489427122485035063944500272351811469733925173304133416488101552271351004481795547892849861702704565473020953892472586170973433782460119608333854812907285506428864370893290419185036224823656313809514403420131488044685042108330078411389627901538164079376598190416801274606607223889385335752631723023136982856581505789710603831737752337002308752719295728005113568440615941219485130670218925961661574232260176359413527885706795262638108007490846355975427623025632674376131419330981478974233292348928471344360566222286774170502213139045273108111295427904977241161838036831321300606453070718235850752930513338504119886734555734413805315265907458907027165303064465475638701036767463050086580650801166632275154527702645808265427839895680830400971384382390531573847732707496269118705840302962660888626698249246928778445949875365909013135378769872503740825099068361847160032033271823612597749156682047458647866268629683203839571669663609860966375374300979414163253182495761386552281656444562132499270210680882886288623084070835410841201333206408117544605348699415844826059577547467900095256018804138037081951514562189277415725440790024915863887918678235716700702162668878322399284711343964505716373434361549680504098300901249956826703949553542804033742978559259812856090291691577282117774014136800137595418106357990933894633443788081679028328611765208588187879591461368167177081876617307028108150993811416419513150741424520281841390795006264161633840774010770071378623934208411839436832712270463448952344888547239704440540854739628924588452718315118545922567314999112162283992937325461600926264917022077046720648061968368222946653557991982991482526069472390303051237846244964891159191091509633188457269239635628084053250769947238111972406785843202087811108916665168947259015538161120597728871356900070815724079766261219748614563791954005552484708899279672208075208291124371893743410654597061599750441997728804735909467509034827605033137899108638544438174083790769589109961657438016365041924716600707149144155591564013385649113376180653103105635832228601533047197130026383392124644351421065468517376895100892340717564573122328882839150164354316059034063875131281060869503992754778660882905096931335796346425389557383022966035304568915495683007418474070453778889931257952584640556845386462330521647026435641334751318638378539389861580374995854883604570805379944477147003010589727077788041264351700617282874595121203604290000519490781113815859480789521457911517924176717244322511401544179919886357486382832722854307124564722240632592699583723560202625726943312548368924662180252752640019171507098579724929739320473388585113796474903930538710193427610681877962551504580382288588564342367581798319820940967719507184736165870755996642575762123023512227732266110901567171579838510177915536370080532470865230859147488787345824144255609688907007805843827588186271669948508770900336694974711466611357705889031632893478398543124630151427985214811461805262988947081294350116962077505426787940288722062389441839806633084925478681050813207096778391139888121958368850695620065172589667656284938101232889558699311424518909456486887038986609987249234987772905868898710809223624649080535820762739075136629210521473470324585318446674518120318133752442985518042969440250066772196830755384207831805163464974159085976271231093133460473453807716772069028719852486323712809319670988837715775021802791325274307776361132330086637891778932892932468781369657962038107698471383422873216451054154643962435732158955424233775179130460193678238977445282632950794898627239669776774025165373808214886980816867114143661084196631946256696807046370108701034176123644923030984647783654389623916779965621707912038071682533955698273077111824690429685861819673737427308440467327581456206271865106524238805224058921619182424489747158885813651676088044121931428705731756790385702293845000007007766993177337958797263752833060121086618105513754151924552312903947364259417570915464388480020787787474146829908310770365136056413595923485990429383330281475571790544626276707288672854146922050964125068804768264090825203771946683762267019278557382538077150852716712698676117233326727361431630416799059779424180657531866941970233692553866790984865267039615771923641091097800565979613335973957711651510914130525066361653211240531249830788824792979995549845880534783109197636919190509728739153085730369757626609815665428927956313999371380541770752380319477029062116929170783848735391934278484072401699488617436621144132238743471130685356715672794118906924600403443268167627425531552063669509268403131899052169409192451150621217036296664070193657874622601869231018926327462772903424714442828832178381686864392650247363573703424364467716251758342537364820063253151997969946341325992310776880797763753230904005808268607690360793845771077884927479885712700825251790969341766669259992995444853107489129641716139506555858340193627928373781209305424265256261487806705884652217081109285213388790288804736845454461268023329354833352028124324162148943620395490428555398507686544761058354133453977578480207591882504997042090220856641020916789809978375170848083900129439613258107346233942586783546922044951621641799041224556591453978836612751782235420543998982060943401270872974946007433864393877826775715216556688440311328936208252513572722861168537225690455011703580936431310930017947396994701495002874674047732430787596258687851304667445138402140953820938991488875476830891376725240027872831222884204798388187675868816192106471416631446161695992111651485452815183034689771598960136101631078771081889743183550344762073494036187173879314914237791074722873312759215902739851058893536126971892780293418402601356789151765307086478856772009233971310335709726934289367813873242586801174553770485718613438923233506164430981687180034508199172557621244022039696399159151848754216774516948266315172127946621773465208630760234184608040347912009933376732215643893219614023128090588767497960736871564634477757398210448228632117884156553534473836828884757883317994596248851495443133158486670004654914800696700397882748847604562662553890704299363147441738248381999244905355424998351334605625099383303167107718312157410430827951917326282273754039659816981343408243412974582334970255392339954418620081884764062491640404772590310589625757291345259055668073252129818627118841469925178365862510736244736671736875916031328907308938936212050662687129514275202715429326850103695048782025459315665084947208184507281300869705269938471726425831403139194369717128980722342895163725210387379021565118984846175671510403563897402950873936760466622585338502679301943973353618271849815371187337467601434539775733638774210269433084828368540607409111061832269805394329768456686406325305837557485136238823161621512435753004083797436260288349403850546674702333616579394675303773972445817221100447729342223571211909380231498051325997398782421536253919108488258384881769688006133944825156842879941264844223399020354036882519941065606717851667978404307278853335995019237947355369513969548820123185951556534211428656194186175491327785101182571779139072596420728368506167556720256360496843716773131056411684335244031449179281599698987415523290232216710555418872009940431814641686499217091301706853779656120722624861726671479561036786431418414101200300735528049062220251847994761277365903406721171093734979169383058674763412240601466927758460023234375747407526939476220046425112687430237625732984481074013960552106346112491979455323466275433231436631268273143286872331386752581427341223909939458732398494370945314034586791112387384336333814868423131714773209673063268560535677388222828076460065122569496963326832962042808014286831878394066233210483664448179279494911177389892532742311999296734960932092892762112932613899031756216495040742839011492457415093093085602781678476281803602305994033482160788183229492890123987175710469981052345775473177732120102309123321096160247251610164700552982016092135467496046012253929987638477282727552670498196955965240668844394102139625709351024119902120173942547049916627168097015531833161673659063648818126858379949610906622752204063364975880536012949750081065186689203795865312469172837324050621853118018953251483968509253512582953015891986584076724421293911483122247740555145448432895436412838090467325964073183139337358345718314502168186323995476211430794526723940611178764367247941722967390588824379166444234603066010103926639840567582576015666333296703655058964697776550145480557899988226895699507538344735267687906495207444732114504518261143727992044410687052766540781696620143358515166717025500157485753584990330001469452150400781598699566235580051982798814415288248495115905525312087110828715898059765660513656423753835903922199822641681938960941735338101522748210045156089242692740089786946160726311764854646249617087550831526957093551150515496759571602352029431088101227946580101333438725327527435403530717436345466366842946379703470966521077481277721449527014175079269438971485473987637504794120372379002172039066365028538814442557625474631576193413288501078568266435889530410831359790889070588017234789837336296785963211913131286846911162707702594123643666934277462274603737896868157442010889858833774201941030522173226878909268709180688952053422808882672117160993825178508792782055273566799930613284746426438277878955603847316333858203626026608029050365387982093705516323925769342816539834292545766414735534371065375654002906046090528134562503797178237504845991702946739204022861791781488575652524627153207996581925360974412663702098765719959360177102931884173452532178723702059286411074951055083449651806965643294557873295196885916540585888794664876545251425572587295959916418024634982156864435962548627744449754441704029490392266820306314858605071649106791091642111725270229500549360091357004998239361958300741166418258164978279378319414572610071713699263881143176409879291957313355371582260076851151457373193398672319700686424000540037976071538635720094402942334048932167595356758817677969748726650171414813009293448841352502953893341614255367145828115874691140750838558188315022039610198674685402433485484531650846566424876152097524407639217660702878824368223474346745169124317386165676760066382002761520487399426527884975968478407787510874218708485302518980114178109045844674729207974904149058751318166871945804972397787477238146945787121068966949036757817444501064197917840472359871624620924015167573003462960327974356265494318646007149106889323364283210125455054832278856187041651399292016980501423075674858336530532270261176215517437386508048719781626297281008061987089946305425761194305789764266507873509168822116785542595420639288014473212268185528151893588223407404785825100606147989462646421917626976233780102477831601021456584963025601509673414318034104438874416321999152739216172993950959183187936653140218930713469495203889262352900410085603567054712727930971507652074239319724097270432356969235527249330609620126415559391121620570207324398110499518388511865167700240438287007347636067753427084728116390484253742242547055412813315518538524377289416687996444737025572972293691841393348659248942066430779689359965661331416681428238718610021561387086928945492256316093187417110735954897904126422620834465601323121564533310840965233877320993608248658665882869453026924585767735955408149746278832923330930470826277587190350661416638011608918235144765256129553701886317781032672725482797309460060399045293084116354478595103421386365484191598759203422773709165928764625685496982636752573190524979851289817904960148829418832264719978097012802597014063144342914519873814094563492721121085759450347996404626727787828092734783747031995771911227067871546446705410929737359996507120129724348141013798669041107975849142510942796390613047652620174591468434838942817147083552230476710985045196623753206965287131697243939605853607940978749491924054355006630114707778748729785401452134793098072131053189391626083847378261886224675196569980126517573708140073132935016921210107719818440914181870797254451704941156771021411709717206270201180858916569015029101560348948827839936463123755543395254967514374998044029183436316214815343202399642952083611994205881069138772118723918123533796507678015506330821127246426191118018189405598757653952941673556816553897988627316904172104939787839778477041619375871199119014089397390364798513768058793191690955043400826450491345512785267718368261682757948212484492406375992090550515901584958590784159164031245451981002424472656698293252805637518375164800795945077925437184714445595813590019919299733430603024162794405711794693577194303194799573168395004252980401724758169996527269652896214750986904759281071622503116011428864934011586424758815747571387801980566925807083099947919713506068584718716313114685828146059235147979455214830955538247398198325393344177427324429378208298954043649288322241021199759012599670096812733760109185142703133003264553771399954851976948569101487188592591610310462307812311842184796865845245111257310407010718442621534000093393414089357560589762127150819741897237216917699858388218265069041788733342683789321815781807030487477850450118823486406729237428999157492222087699335906741517857793836766362878525756752054866896893364735757145677617823130492007952335739003727760050504938032164348310280229844630351874436140496380478659663242615527402765167140620540638544254114467270867269248478210102188521015236347259932085548399987428596915315014443860622077371761883059584604896240746055263595930365387553181914257947957467384331544885882919501933361427579734888877684586628884886912549574698011035917127276767034814785112988275489651013373488509809704621899988750223545523720234049718979270264536326645224613701037955999333748428883379941933631137768526803971980071959870572296332062044341953588635526153686889441064388552189900436796688124740720859988287153624134057277818330091002348053367942851042600129843222977703338408430111329132895060026890238527027842023640485684601147144044628281574192982101408152733918069272908025563728196190491012760551839084902969570861347588683580584289169312419438148924597039991857198796284226042917720345339432760186341048060356506240328695974306921638895270389404098292750317720228839321852279446604932992094809658874021699038212289799855501310457880233425069695515362884910916362377856714833914176641029360983686394103984518457597412249783566052528325585420954853905619720482144999713108532866789517726123450467998406488035241778156824165855532611166299648713813051593763535453207895790379912085185724189361554893499047700266206751857015836596470049987364466226854197566218022487970823686982930135607491886412980248981407998125054204709620919318635879738981706858328075957857457647053341494663358406834989127427416033233188384600333223524904061253578477834271868496280312337423668151486821488408202041175716677430398370721595720305679983108227480668188961319067547651877376032102683026406904196041215672575231531831615842690472545524575817577147662270319975023067876396081360774747175027060815485797833081649074981232054111724527130082536687839256735302844189324171609585462843542190652237274220310089891054704256257273527840706790497510067295738837399205277900497651892246414789267518710718025003087404598657051459907164946203523464387928316868813599860060980440234591337255371906901176867073860311339643222505642041153130598351192352653495643680013164409453200972480247023796484355029314032617171473762473559270054549991213636008205696705761716637162381882412304533944210589540264475199113060957026461684088725141095575298783188219982710760851862175995999378786381980434487551660353716630608491153492217967833752381917396954148481103134967819830101455342345130062551474609626767720895037081988984500158582533817482147293630738935928577247107510051096500065211836836286366806146955147021706069576424322089513273938802444061297109912667898029514504916511896349064262956565641008219545064129134814894582210571423726583857194193876087366531242251990938929137304846290231117520851845376115321787155443574373093609486228395423206125093418195230957724486552822310438491604957707310936193387047038674576761890185317249972510354299487864513821686295014834127726037777474816689463657889779100540609524943539002287519565466117618520514640177988182760366864120319940402884853632695544162819572485002212462737157820548401089229152230868837259087656532002862617553031080377442323640135808490679687589508011499206661158990235259841807955487480044356692890608773121556960143878209379671061089945310107289038385323503291807280567854672911459466056880545924840787570434781642861841516068550915623223643879586712320901101181817769462658990509480645874219024384000190414749360531715656663007368226154219364359357447273665988508289436768446392365878403290152348575935772420671618207343948974222270320181128562078925543288183778427223448829369056131691435314772350269505112733190001744955225061375992750802266577655351772797338067420195979739642379869959407726924780141055795235673697240785179116818906439537275462042613842997192563821879568366116881089565953046198112712663432484122132838209302665593192653525930275774578097022353343442193995212717219349154370665634679333324962631091144659839408395553178944028043783982320625806236600827312567768747079227465923408258723612528780414644173199258839740838725795340205583272529218501018002372661289466153964067051106967843220921374651511600588652093531381556265017396022439260808362968440342787889328084266752116050389518654446483156229152385762331656836892026221177434021221106058298760715562999732061759945102987740707657944543248204020048701790242277882282791951492348964177717758477651182490225900472326601982618425790968244303428406367879222206527048738949458207520535896729603635138989794277181684157718308451403351372617794038648242440148304416686161942623752162960951725886228145874881890619248480281299975243630076423653609648840307814528899055859925140532105904791414328348978676572508393408307422644855587301004097022674793404653444485446183075571080337627112498441915456689945711062393490125349355082383399154411451666649290341483978112792849556681686675329762591328998388211512277503644503273032857810699137716731613030091246673874575948890719537418661866276424937080122790602179288053335072187894770794742731602320946370017666274891207332747843122671187590688843089096866529121378682038304280072430576556411422532331246135787453897172763045088879416196324340859166521947565880986256766363123909391110536208183938380483319180837575849415531947774384736431643316215789778082525567073598462659508209266088683876039808372787808527776505244378556152140417433358491446211074940042080975162893386475321226818720362156887834098432871773477805208121419089672605619177934107813613339491959075431544945708260185712127045872203870147762569167459930256429742653017035998752456652340335066113677930336370165409618231195894997837664887580534216886105600657261080759833924047657270575406166288036885667627979869806816568185701590568508056445845103813348609823334215775558386854847738018872487039946636918750429760649838190917065619998671641007830589645731394011537043938523542663676800266157915224594681687509792195501796747308120202949739951237166046010479205390397666305844025546517389631674468683241755338265465408866361253939596428922094771478426968731658861862328122426600208578721389830527789102617133447099990083789984967612823452151903733328216802953286206876978342405247368642510155615871178658509762061765681149427006929305277542527259293519792089389834417298030204697525508413308085024777072047598358754892467931917729355346289129231616126591949556198756740606220970951349298670416155479129405268940966597499465641535633378009431875663982823306057363237511910730150855113827758669694923655346923953476262339687564427776921977979805147113183459772953376574585065879771680384119318456227428183452033775666029913037732176764857697380329265557447371922996287670937222476930737121823618984690846484385319708034294538854171670881543191145423370110439422024259446662427518854788644618921961886262752462993449819870855158201646653933745445608359126828463857200192923235879604134749980765072982403527221335650812575091363478808077687043463559567473999317533535116339590946249861595131372333587661817286560682581838288313790968094418691967208602751141818356609052320353925709099394364691838271805846980316916312512688490514619080811067882567156544086931670599398950116781522467934199009415801684415487580500453960437864923822871551409133241628363404359710622103355758427163969335480348063280468215135363070042852778112677829261906125084556682448880045719461459337465095126152302178281086861080081662215647464017981438274320401698908069882963602214454524760558003201383498784664744847845904399700766107944019780962435725836801676427143038823031262367729482156770504541898595334247643324193230638298172898902723646318554717482058963503540825906190960812683195956603276593117083316140883835119064111307922846002559179523876914825016343451086473810714925899780357024842827986878208787856696271688815066226835418726339947677515965162741794436575107537255078052462897889516301491146658106642606629274957636484171252038398419789019002295710699516066754845949130996680323771380721150539915631151370185410334701230016506282549857866882065630318390471658498457516052127135079417346679632102256967195140026855638148476675948444676149721675231182135912905009939769021843017846425825447498472571904209323014917500297076128927858571873874283548450928671684673699649093734096696039885622886656159194594294621344972722988392213564897235951257528745651532445547777322701995081868927051594726491840405869461950285886563396765005471001801086478885706797430973385773847142367505501535074396500911300757211025146457581959115873734097970797903564898903474682169175098493551442607789913948302673291639076216954314259475960417082993180076641833249695093127664807162555770952934772625871741994955819238600593804405464346866864768361621709265784225795075544089034901109945579378340161213178518416780340642127330380416635784350767074016932024966941399701491605597135622006618135487297362153039844457767669998147129920250071409108142323326993158609620950524290615172846418054654345352628304327402777134344109781034466231995012784237581347184226512009195013371033519563474415130940564700626410093747130285172727356251192944054321521261354878121219064550186660846912130472025776903844444994678258196389715297955097928029692027297347221656532383302607180998730520624507944246984135187095163706240747794067520263498919352050323598794392722607541339660978849172975215396588011550675399225496781083696229914229962913610906889216080782932670991910454028652989466668896332626356388002157137133007570062688258528539055194801440004038354654480702465761610203973845951018210641073360092216719164937246572724927661985144934586943301510631427769486691929175046963730436901005608351124633462408182059336977915497309961729233475172860226127113286520692813318155283188244920866116362583458760065646897185876893451333794522511764443283120482747959307488013267489313129351453169976240800144490239630431020474288628356628619856636728271109148955333452996121409172004573768939764106483146999130416516555932381199706682615001518196924261646287968578203313452871818662402284818984154838437948891953643099201565821060974820962545978561472790725641214348806111789049518127510249813472386381076754558887722817566078929345222199438762348936286980168719966903382630149357896482171973732159451493890586045561052416260959841026958786706513174780591154252338457916941343404726147853222629501014229198000161422202321051425082539420997922763775875674602722780677609385105267533401263462929777442799683733381987672983586047580183644989271027047300945922585371038440331300518357090316195484241806425919014507222938313006508535911222657512368092156418608210412502915591416347299684423534803031801485047104283239611125454067243960087875147004954569381885793662130818426694698108690826935123370137094425930621559008981721729331223078533880580540819096823673134443376374625388476047455520200872368702631991538493623920612826958341429953878245192407142943244336176163686643734904905553482685376977142443977358942858468552272878777625069490902042508178071578725865987417908402704058173773429368857087310872205743334653513619045312842367380345164880624522649931751214135827315131806964356122037114789056355918617376469894428309455330777852104385266159519991089382449520366939211980951367778063541371064443861939449235821240522683861849900902119864307359616898145940802017323118361237018084669563613106202395056619662599670102828010666722430503945695578694401162191610593450083753497634645029915001432995622346823312868770801412088872148489234939767927743150878736347983356174117778588257908016367618742186734127227432523781481686906361912021343166911222041119492580609985189632172260586206729997173134984909896984999864589678518567094506216690873354334877997110056491095651891097058436324181267302708822242659649334576663718138270112106098911785303309423082951470949685371016191564274690138438617764612152546914470251911062724367009608565782683627413309163550235360022901116276113778579709108708928669811164632513588530389511820774615488183241058516513242093110316937518502992193359205553623149718110773853997274455206205386492286232959684640615661262405426648385165596160647842192868486846358882253411781738189579970149714925932365076721701255596437589964015703741969869896472682589608935523333060148762219470363180401991092618494850418686016671932145170422534591061167613998961227323153813348218555112771497448160050591211114788926650523265767352654240509425913440177812461844797923384704346920474615028792519187244814919464603533170311535446386387900387466157654226131540260481902175723813777535823341117619728471633254089681437349837003391401113527427544509616205754885421542135524427711078639177737708830117966878933016676827353009143895233157156672380436014360645863777747302433669635633428878782006400645196139600460259139510142605350396645449872298600651136793017453972238981342628090322326656732830388602414003120528629464458336468105100992533421119502455238977947844166189648205804937535338167176523130116117695387085906035852519740040222900718571786266007034539993398506713463802820197125971504264805670412328072052248474765318564116676405936360542149851968418475573894057189832445690544104883292610761405625101050676430996601215209194566614893183986971319954846562807381762658895536130400630417285242696495901334584634206160303579442912442386765968341878684347939529517165139232318919013378598397180880131201983478080429140947995378778157197995076160036712235835144736915448316214186786542784178169739910005321839506305306889105599302261529608545687005882329119724899606887661325899485776147684240653671320738248076174347801605841328253150108150970833413944582315040828962268617610125653726653241043059924933582492464221040224300974298967785786742154472854893775350778766942604499527524613850954783564800381992037068049242096850910778835752770951325262327224216390393770239642037027530015709690455024203460970951867349976801204397221697370811714283665863897680005346819701538164459670674042962602663812332733731667004220770075530800133676472507450574797307356188038634135870737788339097215691769115560438321592486932684111934526370780864594867013609591462321119034668835019745211720526427700145910519627553661650578938795285229137990888506027659503359359475032113347997172662957454290462813031319873923899561645182732555556208083762860621082467445125764360077246033799736270508491010940288280446751783820293131474541012652804131090134709241296610132614106337033152754861437037634773826024888560001736114890493019099229916694452194888697389126620482188940230328074135597992227310017417052133981114686951110436590275939534466100031467448467086572870520229385969233635306264392348337880662284978201180481955334232999190345293691759780167093720497787533411850004019142782848030545137090464598403384922323481205204168161085201365050081762477093905595949241154098581910489107080680869387380435311782470143032167596131344261978296902573398416709186602679008201252674232192841263428800449043718440020424752575529341983970613887906111156405668057840503469116727553294133490612998030377154951316258573311948193299226546650665259200337716724945443873806536747550437295413238479064803316834137615812121170745076197510968223278065615854466387950414592258461372639651518259138783671336635125194484789207470685703887978762377956274191190309110171816433617541974415099260585204356574565890487582696926951507663165235875591938403890111025721121355199653175349566324039776274000609012926709033599854799370103865979412006926528339338776982175049113882050607508135328087131245016617247097593638785402748417921152419024837098346683877357284463348644980504728612071713861669869696806433570465881592217063712402429336162909864952241331231651844310343649578271922326382818023431207955091813097697888959150129511210194151296548885675787120730285864517480110348120630009224679546743457754144060914982232277059792117242987362475806344381890176915706797294784893835947583198468538563370272313763305858289698438508003891367311338452777261615524748586437782008442700374014960132552001507676019138538225427136819285344410289622781511481555127254302757677973176423841819368578936714379730853514450211075153287031647937945467986255167536450412390165121577666718010617033376475137320958688736007888396624137595845610631274365654812157200900793701097775489646072204453923127799792923961800557181740831952913529878259070119574054153964440586652937445307158592462522621281073424002342835502192883886352569865584756895714985549971180869539748288672025152808895417872405684149124903981241600146882696703305152294718612414031491683017188891822857876582296870066405197209596772319653435309858601227233167040595941692441399528273240601893254108461876333252320211946686572073830215068336730761751158205499381842532065847949642229532763289792965465712933281773321178828545321590431379772763308891032718708522680567600824158575862148893141249258379021155602587185868046084222768225555823426453391339670338263335010440321946400167292893239147010036878767649102210020144340577823704557144427441255767412498227712193247867260017064693184126362899331875792259410977254434177632469479111694947188498833120608661789471903980034720988094929832622292471632652152105059493284266446114088727027119795927137369319624608560311785090763292239700993277068302140604699035279120194873252788215488764387829446314266900045207684782252151077975494763065562347888551640584028985397790988512003654864939851849569177531661138919987205484725300217013075720064308521449304732524204693198428728928822129347591070143738249231850369150761671266175338111781952578935422527880656021007514647922664560646519084418313259285137842181855480372256118621246877775086356009254710487045082349263006372267844215567860611932507698920706343781874331079943838675727252532456831928551400698613258485955783002474353034710434861276340540306678716893722183572401566462429567490927819811263617917323005047209585027031514199916101310336252272499337662748796865061572500417948164977714756887341553002226872425412288588247999948971307736097494716309513904374171293412042283976459464628751624969726422472507472526082066505112698667418514152687139980995781006900755822570572920064798577205203655008810931875848904491116480826445605491550840727348786719040363966596482968987817571210414037502270064965694112605240307008425143195932854839437391214100992726007095542328387474396578200326821580345765592718926686336241232630752135868624641957835715233629986979425826015304991253781087785528155599354637312713600026611673739696622569132489832341357304772414096096899097062698665913125182416367413966373019185537063752695723703821983030923186347022868041711239346255277727697480088146946187593633155218028145594363144466376303580777611244630769866859666861401105457174502412157580096563699929808232952805446670273999837883299072556109217941670907214852576235076299233729233279526744189571655649227641172564354691623793857092064746112197949782051487481883304153345414743083252820452535009302825850057313342756347021399714786037190085940979342223385559889900724246408853005015805163599518747117390168242687761365265310155678450317798694470049570165790080544295694720624385838280401008562124900052177393195838865012482145744674330420735133655117906466568636882625803647452771997053215544144358645073535229855921013908526131821496888888175693658313495695124350621430762725206436835022981028980647048345414429558949945429929768347530500422708133652015278691596774693377751846298085449868117203875469886172750267319290418012263965445635695924029560128724157573560206471001473047889108253104043637770390136736323111321146549105338641577377367356157227990324690482944363828312939016319196951653417639188427589256822648320266034086323903988424985199832567671692310926555767898568339347896509961159563728849392446925947298241470892924376649945071548854194113977660394069636104270495096757241001569995761189298832504138209170529658899879209687877635467774216981894338088050093309664318723501384067062130077106986018758821706122034148896832590803840409688953912217092974772867481325224812418920005945124809707946299864136418898160373645892477470675712015137505707875852785034590456563006588612435429297230043902067483148653174055454936690050950200038769772641204651763056064489937025245592392283747499946266985364411706638688290789155750716011087043504438052951033149359401400232623383740059053326778981238387838197873630948136803310894907243177264362117787431011739893329779552344073516555874230131363679079227642798683251559670519222710803941776425203845069581808533597824898488616064720800960258153167071683804380557885231494318844400097581360066982166181082837632751982820407164324023958194868655816872720950158851797203679777383255640197064422889169916118688524703836983557963866944219447007118771441006252618448404635546173452949312261422630293879514748336272302512253309024152277175248874959178661368903588956039283800831416553753750018248220039424133426009054672590635633105846194461799199573594314649844403782379750465461615113435837380912336558445341890572227240185586608880132708248440476902994187558583408853692174944074475739401042669685753318920049224160352145907298947489543047096853432392834076600526642892135226895145860091523659395154236871377928447984528124332388699177262979919223945996219790825500726672449311378843118841537692139183881870490535875783009652514802088565201915699328382894190323231395279389823790758283874084080144364065330540106460670880026081185803037818909126072839116411183346872255137234427392298696706730049923640378171114175211322524050028442028056233494378006891056630745251460997194170355223581534760335963254628799970840319884095643047656588237261798919258995824148806888136994799480872797725530219580700902603038977612629446677990761194239350759424409152875974576591773628081865943991865108120159107226227794593457573581441675618423692799268281551072360774100667425708099361279222586977918334670374298927483453086503420010621962754397117417529685586827106365187342085294997111688924352234000116706795399707541345917492117382046172762170565961276998872942953305154036711344536549425961699408083686408048734080984137379702262035358660976581000650902464417068399214691837978641259774101988282342150025799481689923269996702151369249912477217582785928754049178836018254380040598240532567589756265949403765271185610806807352618270321584120742013051970952403275183098427761539017196498085628996973927910145523633091887910734379561814038193046765929057751298678278489875436225881550569970260874013877672203835242875271953811783329623692391991483960284003130725638001586852802348949660228719498318391947144805725095960900558192684119669618802311133797043574446114757066798398432305199682566603876356017152156675047595073112608130654723378163417234122669513515020818300511696950708075000765569939614647952514854845953052859388184987828245543888053516572440084157136893196023779089571606133181873872181988069421002900911285171660321121794953878665096993810262799179826676060762717965119873020194513859783163152350520078213126355730105879333123729592089345116354812272934389010592484971662179275018873782570771757808990227207120308633796889822560846980218694123677291901946335775294428385834819007479892527241639126201173459797548293114987159785786037438564077828869581538230549941091141469655272226059187336587445389605134644624358711699537555969947617408791411694926001312315022766232716404686275205322833220438039105311280991204660946000167890974309762352843369880158072242787400210876689958172211144493276273601934933474554894867463901506133436065295924285636950415272138158660765203256314884280116332254874096602421038334614810056190295851170766631094083047381128893304898912660239956911541416600731397898828959576313998969255564509140606520431665721650374743651894936960946999915623626222196008564259131752901069691770599290450634829460563732550081546050881427747908903428611507868436902644388007104343709386551601512059524807915428124296072873378282004745501970225625356603199668326911614214105196400664775458123136002443052893593436937951163430187032204497768863557348008724026481635653823660792516762126847838198258892735201431518524500725106863760245747764309074461475411184855295812562843688063355543239778195958284259100281996963761513039681940683693944708354683723935202071726711597695720779330515093388457684023887291227610814972299832176416296096246245500796102884739179737151328295804107318562231157934583061472261757559149945395538559196534770993364621785839319742609940559747682679398597321540320805124928631248528302233777947867454862972768721767859210047713928569846628862659745232061240900238463417199507720960111347093556221241640644173671756395301240993946826092692414566100811633431383884351950085551278133973907023858706936433419499380290044857528975313026231653464601210565759738780394501847867789568331475656874096611056794755259557853643735344658676365945863665211360484074268371040714221589225758236989384326226019328402763392267624399434767190439182073895376503907418579834967402753812265183792031977765311934951358431677105820691851010338456884852187245227532573210625910591417657145854131180069016414884019268202888268747134192635171979840895458594944379944668064014828646390579373344616113611526210997439944433569739926840141032025900079678608218892152986852349082875548186944850887270481085256574155994508292835352637396284957860094672784236631727852652785869790795673411087957974901828056589688285315545658077116923239603575475565451743619382113544155000659946064680548542781341416999092365059118609079609699204557401162004158116284285676956211873805592286666429594397089288953968512085641942186110424096588038988586118337595207254210558644316937900356613929969250312269926079246408927399964065413183599165012508741603156136702481223519689628028320293771224659535971667570613281884036434452108013131226780334364304242242193244877784319527538986228855567386569233664552682792498370798803036369434844690605856494020708113961048115283755293333033770973318697239973545207436007386681991665443758558979008365609277855975870979413842349054893256057787247038932368060744002852011033546350663420464899493560280881129401475714553922769390353681602398837518782833201581369142790396351498999190640224409364212628511261382337506632087953496957250699881083268159562375555465882081129348751784406971570644393316159007242799636706506297619339989193575737233124235132061963665945906143379146924769791113414906494632294625688122350212473358472856015869435898518226949889878646228146342286957704809702182985341468642574735899634619162672271870004737146893888394320292703919340383021817867401191558502544379718905353928261972965877919022867272197694796235440979642043958251386799304650671516889744411524398544087669927888318730898238046403026293267278637843528443710213577939685071112851786817860702350874186454769653414488698255298581997765316888049336593610265854020120866664178259467829974364738209133762482724347930096471545522748832383187040313659187495163612115133564472684862029985317667486140884515854318223686861497882538036489520927064945724108902721769168580510061626913390921802123747362757539786473272750000231113903493179592645365830431820603734397764065774575744586075841668740339293102036133199605319977545760982209992331403042157721869786017498143269892494116764465859722185234341048131002819442481160888881840146929070636367846292447366916300496155990026780946390157663648067138054358194857055534126816849504021844484919269516987200942195723554658459181217011792118968220451785463358299222044934293363430409889125201980454228423392089286815558368285542887683119973115706186541245089342923081877705427239124237518770770061732908217170783864617808568989204021875049036409867988127344604738573288726315184853619697171633796114502865978238629805469259574780362141596474582621177850205273004685576537757126453111021354928605982804549317364756439732626723904598600125706600849334391936216065514515730331923283731334192258094154034182175332357748515160291301964534901374375963273355648657379412216195555007244147702140226878992050059484786512172015638000685207884523992587912844044744457270332200635454044229354387480936987975144945482864137054465063374200057082661714171101416366377705473110122111254741052629453779733173979898025295743849596769237750454966638982846824030964737650192633219011821779773229094897452834175510174252601478469139557690579587896097234086827401918368258372984959498654934238256216174058022518656999182714469934501703228932610919040201573525571321080347862557049609612062500050154640796880279103303281068251904942746376447469090229685573859570688647931761062886348056251025458192783933909798965270105601690160100275574058952354287279911459500364811802553598798388899822084414783313100269536718077202714735854571721830584400455328918936650984585374162329274362319075696181738818948371365940343499591589231681675972432640688448535249685555880258842265908064075791176411454408120534876553391694502820033291087739937392585335772467369706957912000890166318179253469250446813076605212310526701436495706521494574639986527666568453111808264854685482143657600125591674664156636250511495511422861634548717207072751066534642951442793598713428115548567977084171880768006720703879826873495088672644796951989449601489131851565222931036060693330549183995754953402551574147326643008082019393372913558817765799667144644291968567628671497043775978197165866630914633478258551790239194468520252492725509086146851910474704951886418142790783017921808387251484239650100972636727092141881236883314017162665356368194548561712417469068560159078040867097165889291785287560614809092102743192256202270197013090328045880956697207514527478960310829788765339067980975224114935644671604381165660488239137744358343688807929775932613072038588177989856087601063113768986770865996007577167460068051421806060287146623166112066740070923530495618691077831211628800665762933093440976553854763372769031140577734751889106987544708378648857493731248319091493038786251478881836817693227144627668934959746954128351738853815654126498870446371058992800307442613532269606187390636650613243649571562697053196837685639954047566531575425348503775644301304869784487670056699471589807526350257195571885521631325418245363464173307456750024202918304097646672188960739832637813188472279925018344347730050194990127634159236939458650495484336402670799338408539665134776601761447131434519419894758217994855077774635098919425671890694539861967576216746947701043208084960211478917171835116793545781506835567020703918042670538310738125954682926587650789870545793364973827072493087516393362622965070877591586452277114596038749280782882301160769468950730818136694606816557400444814331456398502996937164392636114629285939130287186833970453031946888436680870230335609324907686563800915446565357980630145862403664200514123374852334664373037696411806982881864616987723837835930844964162341440234668024405229502391354057005820479694152621770214978839340013350108706377170698581643243569059678868917330847640313131575449160066809477876910485116497417502474535081192788076510805648237030670210460069754339230452602653179794085370407802995049745167203800231995383146533294439950629814987911289165843158569224065315172497240491923353212027255539416802800993905816317688670781179538928564345147879239351136333357626574005540083233625751430552645240018619854331220185855955736167476586771690352030484827296282889550812369884901838052479811975287789249868986423297138728801135822700991604353859031568097181441857460749371700882949901482163431737733475306009071267922139427245730110199107929303492738406057781124224402755759005888083177480647197538041642141198922838913168241199056676155674787584054388864960263362640176084681255716988913896863351464998362572239469503567151051266823469661242393858811458858358213856401014486418988414431702906941271056174438608987842025069936678482078713485231730184619489422278596906164735460841837643257420100571996499935230184602256163727287856732264288452727637357270192713022208055727240194778732378093109139564919291622793482874703514843887700743931189488863754484054857155603420564990607191213773314113956247226465580685389224737000665609508780733632651427065934012643727651932991353580666990315405445059971450786348486218746850694244419143767574059809775754821098667016351146304091832634497230798437640226320517851089835630252100920039454264858979805727292848714926365883647648547072950904336217243460335607092902258806896714643072317177486261385899536437828254082159217753979652836833402601472973510933505114889882178356583003413612186030672838372004603284768680433330581590260011301983400269404235813376795248368681213828704233038260368196037442548260413829410798197683772569553128806497532326136188901043434879079615156454785407559161712919811099700916308661917029503009716606330012267696230742370038560430121479690274413720638164905571392216437071848320169972072156818888471682834580787623201849047255280605215628214930161374783328103713002632740663527632848632118693006949372130845187346375892983769034065749954349186335319750671973246293605684767305659777049769689343194375141622194407062163704928384305700328688962241825528258958555637185687697450990107826032588019003439824217510863105725336010968152368936720327916580630848552300739294980699367172248714836358800596951401094843813203745655503516125247220248654417651363479615207391455388872788204366831697645769126054287493533645389411967797580100680878482478005255958590532807117958527020087713443203728960315245297260088700358958897157097135229712772304281433265767680411237913026575595925636592050397266415326856009737825168453481100288374428959734147135912750091769031379154616618744080133276355980408080471697166921130958579694337887959776305694686063682194318237689309539465734766621370800340208125064802442177668708828948797337499856856033989622152052102081536619832917922509168168711761194302425973596290236310906272473036693535349631578619035703241301609524973891202086875338803768591530562477931169327497247946817557600300486309083285926854941017673966326854843854094877012887892797175750909043269473253344115173381877387313234965359473695052662490815704825673559504096130383099825095470227783960245370597059766542755144190470000419287248655724156288746224095333213231093647389116677366899797671038721711214679143393679103398965574184748300447383081593287156505421927207502607769514359796170887747752400743155641251550816233354832561382545355824083479303339215835747476168100482980538638919469910630041709452489409210781148183269837612579153922852128987868000960967380103570988161601277497061128897046011219563226467265167065622803304526638459004547194329966304236790021362775404900789916462816238905654912871254355359064899701555666121761686307557956502707542983172523911479383565683427604609914960546857578783083837158593552321477742832285525751496459460819664786282668076853554768930501858824959638116778570846017492063160147933013363564108286028402781772086685014819786140318810150740099355893632398583361916511688257928140023566999671563256034395436085679668144924573275307016910579218450834227998528274471252867496338514166069516866299165093035429534120708573412384007378992066737288206552534584352348121772971486952619852322972129140291636827998551057269150105882573251680962182117631305381200523858389794158157419729337866038722809340297553426067240523633938504072766265303356075504579909790713264668537820366781290897593810782676109096091401464356054926045862077963591171853307079310700231230428627194303860190314627502494122768288950202320463131910629684705440778724094044789154791042336396824146584392756615776797196980912515762696399487951187767137817018436325571959628435011953259185511270328601975175567438094491254937448490651089822993103484934821470150704217129195026457783589861775453129864394952471373167015818671086020127200665477999595033857494337655675267221573427194740333403208317416544315730264006539537377237005700852754326454638806116914503656935959874236558145240235084025074254543998819781677242850407559200087452238544762777374027707281682728530543165652499307688615426861361420775122734654042385714210485882579181965747716108226266481239934124999047135545262960157032333753488834634479161101395041117181005830963425118931442806969596425892574428419052667380449515228376308265229549610200594540541803508743347659732312465072535995072646340829847775534478624494391787480712290127475563505450935730144298417672010788946656911660339397250224984735092645911693914471339602114883644892787385136405548298705405705960372846049289262487877901333437844942028600513076715599727505537687072708439183026155746642591057197087140398069612034660848587566001915796283392513481806136156262423386377221395170947101706767904171755045065109600477859891660114804221254764274310010764055439617273923668551409482787381944907605173104415395655473936951345481964579203689784413533541911698757129282566556825770055826592892856657102977519238545375564763989184259805691631875659420374122651466040136613185289621861200974763757238699609554622943174700572816376676695380597498351908971443443994192521090583995629348624802918750221532175948987974931302048081781182088424633393138215381974496832655670364600567808244703878263196651638812280375053321168291724619829865357306809484903942491100034141624601337652610171376202806210830520040885080106912905945328182410796542010236324658708051034573424898356124682131321639008588015943804053534877368596904588089859226062078008426032679960505290289806978999584625290424724329393367254260216264655352926690191313782684265987611452678505811783527071457807610491678761894537257452014451906299463843609227340112106458619917855146141189241199568672302227477948125251137641204149940668763367356122601843444997393774034719070333036723181754044693563039186081981188202933070582273528201841096875457802726295712888727724754065420613203441535990852681116548056554396774515929932534631151351236754351401253554315717230299490966885628594615512020300030201012547464273245279563324867682727270862118569982441583914584556755543519674564539738237179453496883178543408918694241382365912236865591466677506475034048054055524293334895321932712261135710184735177122614243111432299868299493605637781386074145190627298180252374064165878517527601706744986657852600932035221611385070442693362442235332788018039581417660904564124005047298825003064647228527126894193815105954692230907641553404849540009110517740014700994281595812719780883672998159260976213333969773744235839106710090993380653261688827548304021139292843202891912800872288783830045189386778118752580994980793502671032466306602903165039339734070105026614481706217843524507621487989482824811746835841927556619175339450113020990791631149544119611003787795125964189141405215881241096808912881051001812930120144801538433852272594796799842779887058962242024723610212446452961870443341348704169430011088165302629928203851807763351424864859726657322968591013277633929744730927187999828719283971964324804615556014928171263900760276676618565884227206544964068397726166190798030101847619988836115470516073445792590212951929106460971959003872004075852552456115259424972647856284596396243457355096485660782773625519616437411827669565709159033196796976900569432146628794822965322227916732801013260165153090211526694117307893641953452368347339263491746128513556612323156681592073667269303999142538905572191947589917973704215170943275771001075956306850190795413239512594558523767979445256451510633431693491922729923297948213096112740527550382080810151199310181529496424280579673422713834988166956689529754972664161365713625073301788614807128743164110591363266090236403865523369027743909875963853774370334372711804334375209061147261564180514997504503239931761061223629337884431139664293441751704901698930824878769857487914395756538488794323590858872667473564097298716666978218958185621400018744237543990059682159430483803307384102456445186735436803355403351339384647772887676259074083259804771991831435029419736601044098156896765677506726240057079506055121043182558881044975115880999425270924236994245024232910730230181523084298209260290295871266358303540003315784975605609810440781583454687711612364673552385730539880805581079309001573664232668332549494691525080988306454859795035306400290366391823089677035124426390041439799691145839484597988279580696549238696351099204260725868077981718791278741404412152525908667687171775481423546412718145435660926953883755491106861424658131946653913487001576389814546612046645441811599051918402024791873314470027865914549006221020991321717593962588164457252174897527752984287418602629971836094809113080624488034643682942004077226932704863078464394127669151633012919763700044824629660728446438214117973213941192831996754153625635142681529135815910555666245455185915406969536017641577512155008127086774456503615187568694562475474462855597133873200229358425852502291698051967761134217761121525244761394108910502386595934872041548447058014374280487603474150239679924876888372388138993071683266234642553848432060123624818886503937194897082930728496940159270726497202068105422415647755116954303972446388156769216097319731050613259589704013519209425151063354471100064335533158826732009772254069753242940184837100889459938981908718122869697939813673939276547074203590326420459448466048811391354719018400620636914304164045964358459051852101495837242692928832858964051097906561413091817916566609099618856716661241859742190256019397513821194936972585160702569182858674337762125694249078577429231389171149134120009727158107822832550840308355387838009027449191263786007356648396310308503290030397767207298701463579751808726295872694000233615118132598818189583418427968145836118252819956766554017776259057730260671192280987296626595966067676230412263577242991228339121149477264001925097299445117607276743353494640639521740976104769524198942239369048102883275469329013521445330691708270539140544461154136575445991921543547778101558751296420183844879817038705747263765336523861964563303900258343639943958974096849114912333261554099167454167052766895683050194681160015317070010242382165401568422287013401325771686306131014819896002276145780763663872853621589218074541606643975744018096267152168162345397402850649526770994840937712796556749131570477290728932724303541757889810567593641388996851467323094473049986562088700620312716336193287733922211492732160957623507739248907969383596871959671370412225989948076575702993401584119037125722425547698037105000620065202968378572085682999679771339940815583025606049756797251030250253429936654554646175482812445089717008784034615303211494752390741894399076327405599621271409977061218875326177246186952888304991593928708642259816764166047185870134729579159663447174200210632083171900204173793761698417874562032302060563169347145781758194622552624916473373932071507331902066110205852667199568127633079866825983070441391714075761977650733284022710011162980176822717288722334089221371096708576874145726722088406455230951317460747520592175890824854658026080697509297050586162575454793350589125295630167612682804784889362407995488337079239132099856195445426921928016326949440219954391583866597630804311939130953048149852814338147553007180890547850126596762653665824873815585251352965982088096478633912664338887310930010261692510567519262611620761966520833772026509033733967834561804598519333461726470001487701039536179509426831377648534453311876642863461347480436053724926340344383489738863711194874598848067742167662327959797285386622690455191368010193261114131850880602401281142503601742913440720074030128501057998874239569781765545561894098038956932748015774526268350251241432883954920748909977463208950659864360047486911489742069273615501826799819463213748863048025056711997204237535668960546190488320885675475252107555636321446523573573933270332696107617998393049623351784490981076711647096455051277299622446663079118669583305986398510380081410793686087109507991099402429376774420454529428502749783366265674897312879473972727184490788655439233551471937625562294548999533844069920124213229916979345200898622064234227908044899146740026120890533684942472731220028616725873663337006370056128620532228167304555176318517552133407583735979553529813995872984355119987376832356365603754015339412304040177257695226383327115391876277909548697823070234806909246423926008907201321769822705682481774797362104888163544378085760130239411304483150963722891946550099827909982877093182387127067611816700378502879113887129793879957020704843688934901232847296462862424439200602952032303491180521156068736557778075594112032138698277167383059236084140903487749370286662631997162493923863767532694012899738642526938348477764433945526637530363139913592530428215720546943324685530799785885529763737713484817104524316337759962902611299823174607269199828984195107993934527786468137632083490440655266740618716809277303049792883359039409901030317526602322764418276942203471348908489490712620041787045956914537582544382697995985571356599178722680162746864371763304551034091199656872052671434562527611299630907839849275485112482853807769001617421695656008661842669188888038775797758614362033054588303713484621305705788239194408317337781570841227111946315686779687047600265443854208365854931291056210464399473678407164993780070734106665314126683443609141288161832521676786759866695043399618980937936869775089274465301977221084357168094598697698110452089448188232142713974756059128993334302702063587328369405481946312033062173282877898518826833822747802426039927651416310438825206773534787020945597144325167323102443225560641489348606413480808082909880840532435408039123701442726830801358186149064265083163799123841262037923043032423980974176488411503984013723410707982385240217496067716698704457642960811442479672194353897105099969956146381817485883066854332777947530354369670857326218992269798272174627355592168190760455923976424015871337611027116403292971721951611378557901715079595321544028438996953713294366876038514762707554579530100935655784844531338827734126753480409463439400982587784576891220982326702813101377151267185254722496836525728116879128761599833653698790486673182785486069997042373368646077086649139514878679638225931426191502506314134578173231378220793120669088824950120166378219320461510097015133532843173067121308950962979043599708533463468477222245551256746239753797824035414392158366268467763622441758257587165578531654282864513951680973029973359116681029489587311226579611913920946007194631847905023982323880762081848808142052567071840168601436992416725970238746103289153046050556016537371635009331439274135227191343974280563371296269426616289105779410689422144198340085568438378454515979017683481929042545517984459907985540321773689542370551444039617967835696170007199849685199130684075063273866496979889969014065704972883522415883485317141066082007442931952938851004994619714993828012686302541202901522288941822300617247532277467133448457418626283670024465140547909003451392356214442495163790897178512393718621902418165819465701121336011176935387093624251078895883624835051502377110648188795118465331555205517976158318462853600120418743099883862339965080262003745869252537179413039815014897455835723351733255086127693168589120533102065484163219565633823760493416647441589187960684618425155662920436304417324575901560528756910378529310043636866688120632823733468742247612006294320410815788359540023956203509031303140906713400965245025401407641049896768103765024955802158413038653333373768866421598524782445013161825076608726316395844002338906813506193988171433476277844017169024471966522844417685651821895170746078143753234767400011244786606602186527302051423769677569649796591455176806439039785926999420058539654525007073267886989804045227611153557750102564255499908207325233588095506780700646531522762002794402169411766075449135647290880621973823630188923182667695276174606041690722807914051518949399303597714629184114572558658293194561674270697111552474201830056225474741426903329306226441753976103884859499438128551620074174024818321096694741129971790242101625273160150016528404824402432579270847339567038419615979974513881254419304408750094752761312318859519516471353505391098738078185246350948048274336378323450556870343870965704009817824609959149852443431204104367856747046644489180995196184934204499057778317643294868021737128077479304937614158887729503263361567315871422373611381240910835071468711042178033768842168043233602464215539934019459447496121296371537844497181306188917235872997648782158913705204083299044450822492478590293355364043928049051276754831158577724682537316681678355788555253470491649000458432779505602221929070916167140091531852093186982032042320806052198935843125578995225749476829742420245749387712203147563932643809128329021738817090028079729059205556667032705524828830345156668398726217368964680520045171369070884413806035382413745842426145260892090880652164288893592914143339317664359999028894054888384384982199876292365707725864164020435661451072457320651044389214435441783367357298936155470563268920335364092679654384337994719652909633851546171058987798004748189201373015971866908871617620539905824825924815380421289622762035710736289636749887313836611544197886612373582444372085539433341295561986550725873052388696132996247815993357181710177313307171586324035507259976784662017232729893299310627064226801422163016941356196593623038773630855951446503936379720842104237616155943871246700843645228524290977119558317939031490945372834111178776463363827735204415365657572708178771159627595126887681973390390997920468673920441422414909274434537279250437058946330149557039082842000552639228042961505284618614344243545071104997111875653193769043943770550434210362166786435384808380155040103356170063268900904339911233114305675496755844052515559083224824976142023086498282139136047879186364894035646408305313705503386163297777103355038417075575572660066420958995201499562923624884749907458363535803516044684148831622187868967925529884482931842549851891832506162208251884812423818682381028150603134946165540587780027584559722009322465879230962370556355335797265700146422086156107487020694718299410363576200169241923081394296942486728860092981309857996894129896608940082140598546281372324746723781545295423034037849958203831577171947776505009594532462173355794342533335842725422807072356747866735161199393127203760298268543579964989422448713500976663911351163886072109533067643670427985061933778393906607493392691873904563482287829559814527620655925653564867938939310075715315387934659962070840641470653853092707596144374841504682555357754987402748052111321376986694511203813899283617996291718481842339709420046460168235800591622058303360408615929484533339720986340712859723094000910477901484095562982105793927087782571165227226498669260994470049312080515361434011709266967829104467303534670597633432342917934620277345169039674529018618276974958437875929005813507667137884195260247184938974363378124332617714788225383804005605086727924184998282446151815914191151858780092664968935862597064837255879854931599045092176275643615461459429832613817636017733660136995251832961889269299605706522301030718090961953197333471497685417653689770106448570367864168305443028357558072740595550238444899950445988952592175173478057204404955147417940606280111325242898699405523686393993831334991302007973137314692162421227293528528637891099326615340392929284028619410761520461422959423321319620731183133393092825043224262094517154717668311557277907202901665030928991245166308509484662771632900264808236275797426077319205116074284692282318969174961107349272427698724674225842355562290851828169309187798184850245014189653675264724994779446765704921191486190468879129033401277969092635117565822465300727772284383810858355967733907990148974336873057924102095616912048679684281541777264976761117672590987703243867818744000054384337928745856311593917989944438415795212762802110626037110482830033217325762629472131159803023370113731378040009589683781113162044545254753246098976339723297076790388369592440153674630550643494894122248574142697381945407804369485734854733883681158978066067679311451084321892975116427661340119943863986369298112729996849249635745783349590032441486020766942553812311796435431263191379227216495329669861684644584653633367650651200167245734743913566478357987953805812789290819883573355132343617119506390590246647676515090165368494414419261005976181792764042419147171995007552722434975267914620874036539798423515174681055832439186770203006504358921493616033236080783801955847009183923688864194825968483024790632878873658475583828797031999435009308078130612662810382887213068964239489402379977597481408508205818551474240944432317610002777486537534109050598256808472919559557386326047594517396835565126884830794348312379291225730729776075528578156788542586345434132801220119468567186968424794957714906898275646000235490687270672603125316106052759411371351759428336451782227962940116424730595859782880667754115950053213237866739407339654683902989088709155181846759041667469413718349754484966836944631523325355856858610677104063208109797247571357800952428807664850572120433269803488132925366953590246113806331016055910858719297459845312582237045843903420697554968853900712201192901643917365947997148135198046191962869796691238532340150556303113134610898934317880570507280225954040465623084007351789128311857455212506858880725067905722002726800037911104416947056616436469375912677016979136003133523039026688383636618913149644954016064170521414817447892956243345464044593912892093568277507411938195662791960153211606447688522080746492034154160582886163485685142118024393002557000571738944428969143696730860811346373845762156420293267262899656115699537828767650238414372115043117296485410810732312764842963308147988321896710750910166446464671782952409201528196026957105103206646646395207530801028583932504355438418310798206371503285092673337184282162423479463844643726567278637441588110542047673550918869160007882560245532758946766360420318886119002958223005807685150951842753633071648843815644494936690973058426730154915128763415097170301870447141302260397496768315237918836917952491138678528082585459289848844606909552068591623697621571498049392557189238455924184075661753084086769974861270753533210846608485639118041189752706961386234381743914416706155182554724813087758533449047514047927460582827897015800346569681656215009927350578666243742003396393071330562085646811512008743548648818331566831338896784392224101415041675540505540322036014562951048569585456335045045126718759309716681742095858928655039250841514641841715890184812406635021241351261195341411867349038729065066554300425468536923005107154771434494654462260042532437232088165625465191348605604379755493968960056174970407809147686351414932851605099729713947914490718766914167219859696900643867929654542688927358168402339520600738041051821824558555404832064902790917001066292973980436790439869248023584366201077597248984052889492008692459544056200016873457727060340655309818598816289234875467064304322720634071379691894455232947535125134899469023787856151267450699082971162656595364993384668971706215662818039036880321318028013761536650842403466676525882141415165280055931511185281403586812645039084573795229731686296553231980706772139375551027952781840438930541995424361551657987991270677790748885103217399470338809509124873589163135300900910238201384438237158788640988404340739036056790592581356125734078751624776202611713694631630007635451941885264993551610642319349073735754012582838200315724548143831668105062990018912679858475586358329859917023061664108940666923456679222638275444891012959636063960276264656900539302020768770469008215822078453793080145760517338679532641864243564045577442567165779832460184531289420520646841690534515945282393362316814633977484436689183689990302105361604177978618577503828321944750248879929847632548674475775619941138163973777221146082824343724025387646409428213216644148542972855276578930500028783624068523407790067160943728087479558358799400610942930708321458036158265615875479639260592343431687728863074842280532810407603377984363330288433423872213456749916110365258944331930046843008336551741395981631918681135438780696401980828574266226976335114005290328410329743555196280149027489088962942793064306102891472134193475283052376907966912969322432706810260973222842589853814520193446188246578538030927627431246845325478029738541515419720952497982006012754841128576040002133869785473870750525910005211754270067380546040866205587323842278478776926836394329676868365491593019016801792393996270821405440755508382459063082502541258153313662936736235388813278069236086298336338350951432691077174751112291242536115883015624111729697464864668921887024904227066748223400118906522752894873212460278035728946943302499495186741384059846965491257508184622382285293337935044233695609893545972826911437861548922113740609992357446699511873356303147715509425516791894803426557962688309476810053135021443644396811928244422127793581506070398808130424804170898849380288372280938928334862892894374934864568317569532449350716677637266688125669298760495407615058958615746676153451964781732754890829169209275932549657469837920430628061199564856143028162363994253404264542885666445111214951276027781657063496085579770705251463722834713073088606059064240814498691886473674666731843542046613015962121144464725616824025500215694277807698425016123473849274095222927178676361510622357074815535306162133620647561782917282602014879845981543419786546335071639205650010500846780556193517405798074100712447752556856919532655029531449215574145628867151694178789809081157989448631010733264454260713053665698702465743611546417581891712347213888808250271286176672608053465896557398987802382784951679496005246102849937098489167726332486600985768362445338441447025514612561749813456342276651809190020669311299181459246452030824898153862454404840344434676649283645587030918125047750148035213733219537237039755261771016717274271261603590010862074939630280871567827983661132994829897236001446927855561288071597823673897037204761099073226693783787358824115105371640092352827359156190524066845380033781933673297908375578332687261958723140793749164531277601708308845700391472654499206720832115718847712281802855647368889473608580169268110587212014964431153095318588564806669423256737722223358646767245260674088944492235215626954202972711206473006415018165961257414766264796555799413896563390056738968178667289988294573187565953935265317803139471208011136561695651839871417409579660822276309607760141022287748564508509576483178399212993864851866225202647697148784984181156361234587355329585547405468754739514843330454432230195204090406836254309999850675228838934647040862246123033533835546855988491448490696992199215101316557359455957292165392587920535323980638579688903030411968279552572505205265774105925078400766069374737311833490437748788373615077224209290192508553869552361931169703094398904640077186501138265961948393309882129302968987690574772660740133632780356777284035263360087268761022969997964572594260673628634822910772739970836150960677171472248763357246951978450782623612909056644852461985475450622928265367860446038811868912633727196935076674424828153294140731145668741249429029349241979680967068269601928364512849706466677342749231841350553198324780460838508357814315304750731188785813903303400793023855491100256509899086240528417739029246664711222220765396547535623182499305319077054870716592411876629441055278063375076798242009207970979520139467552569749263920873881791538881560418847717079541199126350167914374885921376120870243954514685551859797977012102129420481581238263215052414533890121740103371842141408237940170256516021996610946214162464454706975029306410750243446711226401505426598257257815632754560058786349163688749471331342616608471467686531721002311348431131644136927269859575749220576596870950229409442211742699665872387747686415768438634164271844078566417220191330027683451182438058834559169683297441145516663688039722189383551639201023879403400333043302997896235403025464384032247447700717158222630552765038792812972736756904581292588533522349620917902444087136980098201148078803272647091296351638648682048805004281097066908577791271159608103827865505476777724869348350249685582411425243642262998925258940308215192146288037006321853094334005999202026864813895154343188763091181295033163388941915591516485103077028037500280075190235762597656827601081680467124264794034212471065957130908317069944798498350431801856085853219338065411606629231688049167210389410677502121925223219434654241348893473159404526017739972418395252309930473654704120877540945220166203579129120302601058045724764582112133760221507919153567249050262831706653975029857561479848308591395800664637325370167854395789221320629050391697635314391595920226101119899587252106761297987678364970510468908367067638582679606345674180803544951680052445857240616527477584292789172960786296637703076741530822706136644205904029027015747018063513419304569613856134330283265923519695878804881575479431067412943804840960782484641539701223888631611788938956955235658088551787950287145780074468476370981197810324235321365150631452065983277423101972299552233465071721283949289634980469995115689130743277103870695000101260368112560826520760934538506224042787324475793360051021330281290043018756238921822040998310665641075637062616160569642800511735472919682470807256930065930477789144194502702068139911914354894458239634994952903338498054611294503949231210667985867069102071184581272029981044882602366474511083149202538258516735737504454790240171101540467681413518675466741861372194143562440986922613527290223324577485613336033551345373536057096333045574674139839326496314884680789306706379931123419103129136721411453199246600054821863366656283082154471886537242821283906165021145644681419717844512699234639321009136155227675829412783535290864974389563506960854620874924367716371788980966873335563080841219906867654134234357537103631179952325625311458027657929912462168953589686217214559797410483344827931074997779345301025105626069462770282804215256827579673848436434249709157649228128649770513687937101376619065094028700186454441218387217751557191893069003594874266134120298418294876138038224952340956543754845888735953319888060314630388794389137424701562656790675347148216717028231206615584058649579288839906425690644805234762810945947362799119231908922084235530238798886860213709825161182243349699409094379258999342163042821707664053677149954882785608298835220399187175977106474325165476719975953106746183431089156424570924911297100208977621465618301207873216267409596611438942365452719131077633297025290230694417889695158276639928109446175388913358360366966849171862215037616850804160952882856654124073321845023427385968391182097849596648563675936818472432363538534488535318517614746320783432602462657801511558145687034798252563858049410156912172041914998070322904679385540520791478982624873162351623726904727055395317283564550000340502227967997320644399754719858239214948543844778956199019601385588448217634152819200490038261769018602044626018874852580866097389069021556805408996927866428935137453362860124628421443128863738034626587564778108439591659996842504687696775930203528289929495988133727927965934773536107206577884931124451021448233308794698595752764270856489385729001503793691059760248744723674118320477730018231855870081174347160209316747922758664425624335863168055111966320910549991713755864557308756009706086710843297004230150702326980181089839295326738611005504158802965946130957700453886242992793619394548781340090974525587857627367117073931797129970763478282056719258939269291777969834317494899840697348633761514780979855366422729388687573781738750377672386455456955671298340566350194540276091843975099827679203507507453286457597998290669130893220956714021772831497944932452429978518410981181903838808169757168083083454153545706700290721082939363100638792759384522527006156942676958170635171971006147333794351471284267414874476946148774175291645887754916096547306811056176563043615189834716085063212139847069195375401915343753829103781073288339076206033791815171363677230782309228678547195327033968080827174396013321534054478384235345108845735935561798137004134387174838722032487202364791888837500987240368520304538900633397790519018685483350797712457259297092307483619193906795549580250868197700951700587227974374821574220975790026290202926601423947404288464090152228753745056579019372230020922030008748806294789764453250886385144842153793087580583815220701187802413885994223687262668803281931896556239543627163438009201458907133818584915425166430268991649610627635957666962180817137232062600018670814218252370937263282377001722559687123844551325491787467180178958937694730708000766290346835390276596780940713647256128411570883764018639599473231428793565086016114472253304814835670527905366184874909664671670579747024652974780574875386720308474602040731353840211598386231866672268406397483800877460534397687588555425490993066017219919949077003647759122823353803219680306529231795064069238116015973411750244253479984201305985070209965790651378385787203586299924237521069662114155167100830283909465099287529303770032575019113509010516796430168501833728463796000340583586491815393576722461140258824246330920677609530314815917533945474614334026636042699339828748144531863868555956467513399161671956946537428233725126342727724652927697110748897240059073424652622244641684485528294950741259483142949023496700604021048751910685502767981334236155976360997407561559902745559437447849942530052381708766592314169904236208251049797466934953400000982333910293255919419843397442997932529166921859884153940287953629478817387599294651455255421835906551603590283006788793052748822804054124895584755408470855491973660418969359066173157872946572275604810107617685084958994700349511045960248253153976838147035438276417187111262988189014272766823627984858186663620917238461651271335576561411589218558076003344423081592195260043528848642130854594741931118157213969553294898613638462843871628945666957423975415061538143282134972577952423216677038002395313326827026168728400329910615576350531695323342581996942433936352698307415826848611421967886331805869758250109138602531350476199583957170943620747879662797891348894300032953836381030292252536177027396742265763190064599016267981179315736495491874526122285511825867810708065931930316042280427810055933045287001136880029284310038764863280283265432857851378508314017627488234917485793496169589636295612837139634655318865459698532079476134811165838356514455749846123921854871149024516754696341151506976365236183557096024270782867232911874505333694284602206249015040397685799854997296538934971998431266114194175191358125493517139461297752596988325576747327515037843107223850421727973127297909919444462930365357678373757712742309838735339462910410399089599211606949496789653772890846111529707012942133357932701800013509586372206524801252938669217324235854725339250103850310414462779941404860739240789827805454957637975332737005123657347767499408203864510815269559962433400988039834240295028732141278213588448527538681972790144635351581000322575138171599550428417300816333063092572766618922771511630578936467021625610757240044069665427240473209910547244264920322500996666872812808983425690727747244999551678418004687667132940273537917678906901055437850541716095484406810841704714913437147881327464510794089078752368377629475944664503759830443220657483058291958331834526963080849910110498457745825528003412560620323502770298677064552621090006148938853484807174023130062673850835478257487976913599905635348709533428380499431234079752797100385097899612849282025620805192416473082178442914035600315878826598469641351883707700406817906614396785339019217181376930886815836123007872191482219487934380230819604762570025677854723322540387790279176431321579164438763492496837470126082167089374935634369779084869468314452641720595926663809618402802564678090545946859355941538190701910764600103750389130580323128251921262842081647568477063453899529386048456596585598275610881096761030569878200822545809444648244701241224451626772732100672363249829649221857191047755971277130318453236852853069580051406412609535922365973771367166237079102007438404670161877823380927533168548759312831425543544939824165489445586949519301552201293970157178136521016300193028866662435207605370109566850617257675255409861069950552435031470411310308101534808256552586500272119003043109544302656787958988954600440116659977346080316863815995586033940040709145635649781136610975572594753242106157576128325785008268588289454485135803662016162818955472822286291949617624419503711972001009898469160094941987500679575657600255877695332963836752314626062998039554857696453734660631319212129495533850220431516033498836532038951857872843080951662202991148784371324039044543801474968017648816484994127110326162569227956144512858021969355873932847049744355159062113927122306653285849021903219463070102090923346940985733812781225180720179345859300144341081264702597116435745846560363447610445187260428634653230323371763276869693890811390317402295003174469972262705521801943595937867136264934806270188831389760577388228108714996891320783372736787030929527319190405777674713215803190939237248684703713433362110154879972926446996971859440810599133954673452323191747887560576087140660156161791003032900703376478129327693365161596541327994416571993294677692149019220040604716456772141914243241623331221804278814771583284145289130001374693550035274749259840635094874477685946731713768657272582905619094931778014369270735929287488550836236014212767870676901331865377462882779873279825227988447845345852364867233017762215822661639309335325437512487358413367014163272304336586909548319587542448329756636402323368045335733230692352939388526548456118832071575816673853644943606118584797449200487985992672599866877397215463605547170897296164496226902559656530974745277270181548898402178324137516486687843181073610335704488335920222136777684255041159566686245800421545952640524854297424053102755269140062941853288609914722105696805888990931992949745465624940172786336623831069079028627667273526929584254741565589794085178130551976752134378777863740975600770695281350488862967101350188645421993307839925530018228467972759805077688343627750277129832802626195274160643600300112436611502571146952989268318682535429398174420710882252175240438484539758352639756002617595016714333044612726302547296389514877356517548993896737184801305864339643137702709473020881457890407719115952415291513644548440273864829391814191390923369199615178961992109862323327738056835335293644256103292697912422547514750508777967187180846507145759675839253353335174398116167791345071704633580004992618480962456855142211788265827928369445745544307583917208915043568251372837558686615916427036721342104134040380453715155264733705413146574086645472201794790981252585519517206433588165059346161849285095897995889724847251270695004931082647446963692372065088291430359115956110681611616728133489070565408912995846071756081675357804400955050494495540692382680443197316299513546583946465367708061524525936659087831590008657104398611983123919593918561774209254456432841060353375436333140679656464307862266487787653574719063281650098217994245328215722940165169210740227795290234479689630365547754081118454752914432139802259526067320293402424186711861992505287616943918968184697193599005547088848208157567049748479068185004812425145729718378321328326828695663695825296754951380873246224445303490826044430544244669331178208838036741230731522358965077528252009107496286078617215299257524116155566206298551056282931673980301737224902879192848368595484968791839117705660677143672459550029127805274894577493474445543465249975777914466163864750411859696924667133069501735182562344567934412195559712238923913655302340310056695479658507607071751218698623806631578920853825216311744568768770416475365381058052495953868889403433096422296199331637269701445682706015237920828583219012259434171931496766626946978264404169310175547890993405944951545177309073222641322727175058357559681586810279180339426331747696504886300085452963532394873582001934465611911295934692769293408467104543534068168102619666503204280965201116189930395813960279582890615249770982145543278076497181440236432855976917447220214484201438440717331440824126909123561854874246950644928697761989497792296149708331779251815055526127709898503861466363560655714000633289363190651754583218999831478098795042545820823140376588576844315366444582443556468498715933296888866735518617528360966924059201260618598125150825356795039191008454090449549755427322495579475675171763833927806638287669642865216440181713558077350997699241259548784262018295838951079994540028387340618102823405780783949638190663924173986010223042796423363584591919388171783276913345984807079488075175418371145533201970821393549493589824874633417382723277625519958109121705521083165246670395417563480836630833684312889592199305886618043765221998366773045143942012302558321401080952648114945182067817403225262541720597751787607791171679181434419464925023769381200936438067400591553670656396153961420837591982936985691777845141183256645252137159474702245614315526970904088912340064276602324950688633888194110565228682763292500758162744726195702839912108641129725341092356417865916079405363887060449648736182992101546239527946105544563820507816966506376053108802021756106795612280526134932866369811985435804581188879608033388628064789301920506359762583154270001873113483978638120489840903490216268379545538568805466006141072463671360093798327924851649877071811256305028921288613143325048082342975480198353262420852532806857779324266110997402376058060054681164802055136321609221124185933985450156332247974906166548926685730030245937594185623344876823843261104036174539011224508609185019757627219941591342385459493946347801243170749376162315945114675227892385777483973871842119503171816903179036449883711077221086451692279816018585824394117803386098679682369762085611491979216973722034013017351057404199479384698994904400285172277530987425292565065324000344489868804607303169714804542529376676889503068435521357109610409351613485730703699025032439955313271970233861465237515102574144250219088635145234687727171069002781268824149840143793607868134252489113404954358690478897553006530576467647657130774833629416916241508111745093401650161013693264398504316931213958492893161590500563821862100842154701500748671141304540901885717377038857029159771087895396921469750685470828703938595068283029071277099497821342844373153840804759397729666958551258896116659917016281793002199177094048002732598281962758271998199135381960071127765416786222625025053290764754001062874055186271801907963246407054522054385776544952558862629013312752563013578505360026401206259354437675134336307074239027893097295266458237252605828008983244712073073509937610794576850143530406416369706996650953364171541161109906866304601271297963161219561915257667903047844631501552984328095282066210408206348819368080859789082899264037249991733104676876212007778189699884689487155257656812540694972915232311781996281848585261735837474148630600586990714035470317974990907837452277796023733079968802279406368395621276219634688223762853244499470585680917124166832631093913211840732641904897740760180519428516864336649502650098035654694206314999227885447231459719886453100556972140349489781276254717824678732600711560804959281064031291230171163530329271257914419951037552227983843562224782834441625587934182257958947533263076734434719019560101917253839145880173783851425839230755344407985066438018738362185622788792384109388960506919296052481852091170565645916299421649253441773118375672102780306765754542338209120235217031196838988748857550324000343132964872606544643215671772245724940266036468941362815837316713771262879522253729589178668516730400543541805697571712537177640045024580248729213315856410560844649974304590211010234765526171995422258798302654531050183983871180655747684542404302753664158541410635894000349054489260943797266704508857688414707791909201208384535149489111694576471901328192992673124067725776060217461864948466598742908931230745703330272640385257305654305941317920308513510974504689306517177778758474406637951865477214571801757558054376881310416999891846000891814550384726370146306911363287956853577646255790591503643095299985071237340348730160545147924431151799857792496159602958466341307055156909161338114191893207738173966399200603778658573054588976993695934817471131946744756004854258890497130113904400361377832003836372385584911644505843191084807883511945599841516316283919544377647579339879172370339346927841441821271435420670772806174665873913087521649296921753738520254240224010712981279012011040534872621312657301661871536347784916835280377910122510773120403901994701489004410391263231903944762536688435036853558071642404896874274896975992312985460684367346366968786136358927999311221723515874810057721130055283114738722104794155748182620007899383090160482031110658866690034443329659859478385933613279324722874166250120172828610985378906757538062715154402049823157836174646242817437952202674858685083556276319018484711308584292522662913228389520860698014865278690244752104337882414667996519917005339559275468377971772644771517256606092971419060176162163014236311536673618127610940665858494519687862182979607771754802235473871698434241070178997178834728239490583764803266084699123777558642391396461274312031903488031160250102169000204261103915055395695036571891211099016867790368997365799476483383239560552500356673014472217710409277635342354662772096916565614226950690598702784324764351714207196404823739735186356881422118108604781173981733148382813815440585053811772232178056779211969930341600159712761187872420503266296811606361852173269677490111597315368567280352311961202363374792853736599192403491695375176771656788687432757181050702912688527891076669043177184850648650291210202870140559511057585345574218369557257650780351286245606088399339240659658974170611417801988165213288016418398477754304866413012527869323037002739013130821079912064280633286202483588956062849304885719542074772736951886202878395564873382227734163517975069059715185946360508189750113525813440717295518053629202861804618127910660673699466540869097955838130249075238575540619467646879681149268887007990034862704550532223260594352974623758813523116871226674578993588674023217807900443532002338468817706110035024484462533984102218505927111719594314261352126084305573147147187025377194236034533619408519461499137490272171635565525197627964727910178613670656283242918018492461270186963624546910666274725680692283278556677794522475150374398601466885484284779067287428951298900107327094890257382987541576079572813458503262674255828046849596916242678510053981802018997134310999983532547929323975126254033977966914816819942884784581377427922314425626065904475653521447126222073732326552680096607831247333159858247354560397749041753524258287418396439363943743544502837125710733917860826692842674917919562749279132483147796076110607922236079240283812945753886190024492866552440452941297683559947393537720424042179847873592319647251547111975725005698284221961516989370919005712983487335324209753904419892989493246343506966151774145092551560959103877636103410345365573989204677244703785682856175135098151518210359395149930206157606280678166587451304142061716609906141020465813007271170076725958352606901044673148169414422769692735518908625656093454962139014848471784146433288128007158386812579440616489456636541558752771908564128902552711162570169810592712284052075805920743321873809570820799222641594822522617624712854691936362891798712969423335395748845861096159154569561026015969971444818958892409017479546559110860879531477631122443772823603890160739874819266083391629755794310402934542603436552305124265466141868422315180741759901859921952919756090746004586298999660514647757830252445959239046640917176899979083075229702397419704008337356922216182650263224745714945372058071034034413341220414308801463469616981055925352941976930770421229254316849561818841986530688007345014375548602213029019256595978520791574325981221282506162229033053916900234243986988608020648287565138014754917482490168393173707651338936578012454874790823989223114590214289885279140089321192928401184448995706901713214342670408676476721216896625971809247955817201099649155809985647739987621217853936187428113383740987255721896796333941870167957676141458999998245931447445054577870049083991206499887569272930263790097312401193448228448096366740028658559364429783386174288090955027437488494996584651510389516578353069848867112687767460481193815381690901213025070045589974031462509462135441629683903384469530006292788823554327167383655468463485679249861186139714201561850204786659053400489958549231440272369960195062426094473607771318839418880255271898087720933306780655794608594310073547903574277605174876072496273617388662131683940192455785493433991429499643038363306874028174028071047013579721399395720208198294225688178171014692069513820186196986886956146425399724039423337147616897870396197356672272718342814244318319909091794694698235008071870215375344892773440998207424358972368322212008139083214467698337495505514653296472658356180141019854343390432377112922980535659853863942378195437918534395874621519421327406223766567556463377273636732145623067134894604233388383355213922035522932981679722322124274513192075554385081130105944234639260180283786253013331445380127497738279087701835527687414182206958040067735025629413630495117251434477429731542724612327087555127667946925649284651529695603984794026646136844198651286234031434495926191328565471610081139653708129218785479298659454794648340535650863567186153370531227893390907354024663871041654376439267642934008948057334188497685010715587699966268085556037211160568408872210808841284014224961092510829631310524427250222986846582139079091414874527152561345763780505553764462529569519863720357251566216072454157449279310863807616172320509792907096434219465797896347307665726936212813851884596239262598036313968865627000572440622150780195310025025639911266324197477968902735057023475718248894183766744714795531578474841214770651281665014259338810514632242596464814960640897888650530204997308905452361839453292196554562805939037027149226278753213778010397550081894711953397913906512935760523802129319751755179620566255609340461793917127186079606902680250544691997915372335505841945718439501685202931386333212791685010172354576174823850357222982169166003869167797877131184211443803180036505045824116359456354987160224186832707169872680746177793834797556847932032853840380778795667289290758343281231346311310312117929480750970536142158813152496260969142277646342793780395253984488198353408961342665167549886507917221375133938457498480805864310433500304208856660560849294544967242975953145712557452677936120141180812955467649882383678220263176475795287337881405532657573326150758457320574249698867257521690074343134394300507782973145229212817032383978848687068071998503315120987879899648429796804498845992920662397893913395496094491052117782108816525468549837916102860605074127856177882794460970592690243829710961943704813946377428913967784565581050121021024203554601961037373554069976192407021672977296719585882289790847252190569303016468675673463403218131977906865353295291928541859668248850828077924888649797099240591456187785520179326425193590470145081079346513726772095161152228668795688220906174184324104227961664974090757907417119815981585826730832759146739407365711254251688910145887894465863497837632814248238708072595415091278947656917925451653188493929219917943061335807690583386863165125437628107841529601916741520814947964150003889939545751114577268575867585144698556687397411177383819764155705474772247769236266748937731674873995851069814842908467522166005403973366743733784019006458720793248422771169192966563012194913254192084204592483537826173179785003477366556949417101136801580170540593027656332719217604581228894150155843223631786736249731756635954325081460451657202832739933159225269232329556531443789796486428911117491501544350044048199842824224372609322346126213592529590674251601243439853461412182863271267449458498310386460347040875837051497560391620776598273186900480149765670501130475396483259096224427896229563356420882013249504071986170769508447603819360731587726821854423903855253379415165313121977965349983060750525206133345190739755159126764287027706673871420045427048874109263282260844017401385138537839466647728397351801639941582360990744036261455938182226994425057708858650637168291444450539807506023849526970847833060389213192415256487952939517868295271236747317402497842968362746893709831680420107428477840397313878696554545179127746929170205905005990695027144280208169384248844487819943378901280660401935287552566931800099731187114073018818452757108982786303885088389905974538884829221647732499472061249274828537801672371137924872393660942793028245036041479952387207687941519514995178608977140208905799408396236926114364565771853755306624736868561804719603239612950680443579935710861598979578144041193941043347102851128252831896373081114986617523378985344535104179626684513937910079966403034890839866003131830518919941189642562644717588687045089212568509800617694763565589224922701816372357272504293068698186036302834631373545818674630154668919541683357577786652989149678828790292932412554446512558668961328516017142196628384008033394034218316745864962948023668807615042103359613161310384998680368189426971148130120484896312968929271376565126320167086721145030031188864137151255773700512584149058087458871560642587886218533838091483804363502254199239574273751359791314917246901660819833391799000437052988475443894600074474768002594671829539366063044227020938214793852253255729433281060030153707456811165986619573149112515011995718253769158715717308133468212750025953337469749498287151770350420331382090610636173197913090839158593301818094052779425769772203693631747823368950203679984161161487667687614937168054999105686289923782507830687961156562896767537494832430468793495641209977442459127289255941217014522808401052913578057585902092145620122204865485090916670091966651892282157719759248082966533927363527957893672854568671893203016011419229184623711609557267938175286926076345547491424771517081500036105964639123868059990208725735938346996510517215719165154572824638738133149495651149866210598511003599756693130100263480478211887033006522613828813434762615808116938169295860004806579717992021487570355738253541841375089576633808701353265086150381753186872897877836264362864401895481496636743435367863865656338661628176956332881173742210762596650899627099222499452267998935593221778265378507594966190022854666074599698038869030848129649534422500318148493628559802593932610650872533746224880612796370976109565271311255667193707637194537711277563833909733757679014942381686945514548619051262415591423748412565821184129191475245310928897467843838282751563480985846880142893669246705644795398344945866414209876433752950057752846266386766834189430291632835296212650290009357824026134494907810195036998078791682929805843161068322781533770063019548405995382078514136420606463006100731726807614253022608568133262500478629902404359440846204504817210947221873706909444366416850773167253475793218021155321191116660280593948911168830461522627063376797245650418190201184505653182969488460643504855489292219598938417058619233929214854746633761486515507452808349581069485199761629719671486750137979173099612680135905136572285171563648224278474665025030657972765137684942705197198895238841259088702927700851319105294632944713194949800368278817278983546821075146874199931263579126351750166577473079713167063473309869068740178577344461690555644371377316594211112973632960642458302877382470292094228607797019840816904399709047910152103095931206258911537227281013186370385115269896950201985047525101158228472320590921003193652659108089983974487446545509822258310125875661229549445559687850179502466365215738284520001272695548038098900081929925850502242000747340095031434374152501094705470678815832456667119946316763821976317841999588789905031492946338330837044009592815776708096734896906823597185769630059048616859978575681445509162107184058022972820099976913739932920491267991177975662545184122441052859702426899663937353107728815778339318527536009157978906626687506236495750444113871552377537304512311768230797486752466050179359983450641890535880073620402856167990310407730656526800301648089814375272479262713513134768457256382098735105008579689887859049394254835440724878345089628495149101805155443352199729288790677236699234877397459673454482284621206939917451989502097509941053939541263802104396081803831159323652119626196805615037766915277542054672047496052427642846705717503920741559356850264916064760339627683438648295090067243826847484803054366484730201017673457839674773319707421227487510747446315933174082921629387824905134575149293934458819906258874775792868150081534000127510561718176112725139520201985730546441449001461920997499606197846623221760774332415198685915858553901596190235701384608856101336031755409537216848095794990387300235877973813557368158976258508280632090351338706817695589722590148687681584821800884534056668989628314203593401224562891621512571970222251724664320147097033020428874216446681427007996597273629186826401894969102704669571378939208749524454622772504260650108968885574463820383201290908999765390442986671654033269959054044205456169208084667159899521420266512265857138208527998317688212668303542480433337609746547257674198092653238959140694661873972605870460426200661999749668361504166230578125323836178818270221856171568070378321346430440686705589820880413647982957079426539528007170361542487429804043536785851345676057321288376826540457068027653495129651971657171185541791992524283537869291770715865433068139529041667973959137573449707023851919526355412513888943507238287914807826981398431263105604927304622135924820586039855253617285230696686046044978548097197632050692385199726271244207090797173319054356975343779858584878925367004188764323875279844723335161651493118185265626595839438257170912408484935449594661368012422505496264038340708929977709825819601350904850930723803019234054584905339391596350777866448476034235661551475819720239576961046260885670545904300764575976361670164977436306209197283494592598813605941328913826240506768600689694139114304798875423523702969705834987594817250558771707655028149529760050821083527104523982007093676030826768167493340817931184326467580609238653795160961653589205873822015747679456444105652570868192076993596456661983411982802751464156764499136067317014317310253916813320236917555170812714240731259815497704125600689214376022570634443609560276074400235379558151047878781765822241298320359476680279603733988006770701255504215985356601601309719555332006671292139751475110627643900407249079441450356448692168628966662784578044636380233541486406067431734200759304518278685546163280563809362933244654078355493822234683818948418661264823039712203179768824946223826313784400517562579921980120271965540308171545173578613686960447873197347717877216772892799635440072892756737942966225079425687884805868873785691694010359178385985672982419763521355830026264050203774588896681994964920668868542590939497780364315033495606097132009463471415788193584047051000336714722893237253641041461414572044969833152428397134396780970782816376802361247335466271129674498977565805566590057976252540581695182584488299758720165009751215460191871275920632471105770525416946248076650043236407133233899794886924299173777606072982621837730567275804873915197610538701810971249371737335679410912681769051588206681015956985762667700747035501788789910521654450326814034677261145361622428258049352590605072883057688547488170366474016660984498374496812923622949285799659141798053589484497550148476125631304942367123610895427034799728940552160834061567579992599149114054211136956464158813453471427490936992098694868662960208228676923360319599091279842937284242444839269483238569915747938846118428094570153822506633413713424865414849517216309244170710433995422177422781456783797921302983512981824745314445972401897843161440821846046319178447782234354208637254885457555208148228589537299863134877795054732753465719980443191477874880832081552365552827351801933231131735716975232272676652311810697244040573020148470700761216766731988940142152598827407450968110455020525954114976548545582804107615664493666623730347392104789130282075190718170580766689702168678349028792707388957374138855133444778965385049686877210599301698027359188264767921042532079996505773808460022892326044281423399920287144122488876606260567634266142856274826993332082817333426668059830256259726356903566241288168622636856180183912294404211769631607962993351576616262666141808685410653557484560610990539069368809831971870825199551107690760136180909914383099100790742665481552503303417267886717577681744420577113385936800819265457588608903874779314791473048860452319119937076453739357900439947813691840829485374893986330760086793663276563357968165248778210927551525531230081451065478619252561345318592005249732709481262145405780742305339801987875827145949891610050107447925072058842575048936979449334543871460758281293297667174995611469474998573946604066291078277433280504519366235698192525155417102165136798173560560697373664807954037886050915014001703180809000944468599913801231925147408263744682791976285876447213242611093117293246489618783244523294669568003791145106178589920798201569954617208170579728278672416836233800542564494777273040646246895228752924001844126704258671725662890693037170438396827631640794308150732721213317738495258898299163892269888942695483259456251343865987018169916920910502340437636352616017464818970879289182470717735647817674381232091718010686625080086390103425588673427494877327432928108317650239971510204348900329454006867017548941981672233597608360715975500123687777114472956250133109520999373471279212641412785253746654683961694145206981942222321330729905416434526505041171347971000406997258905392731300712085966968403357492344062761424741553771379352681721861475878339902122699136124633778948993501900119041403710016506515162595009387158372915133924821658423432366241905194532008829803468152563001244032567981765056111167989563228850316208077988932327706240194159197788845097557614417234185517186736948662683644526918448382997518450754056007129601940530725650542367204030347870224345793566591599510978942672945507903582001556771919589624213188581628842170603573369035468239692382138268767604313529567855641983152223126899030821790344997117661548919137989566352953938702469904217161827135844527132893534133946693874097564500085702302493900968239316419985586486227592918303494805153854061519457855022467750622758251356701210963900899318713716318007262874053353331665121292962559420222356835724368626739093639660125144965545073773411600802122379916314520383099958803119013085278312401682479240248218398707088366178327727330372343948937582250814121584401355190825111197327461671303948259774443658871967838766712377218876625681053549434980965926430529192091777565110857505842235399220296036086393350323034525381935036984313683704711282122363148435742988423097429484060190366511624321454099011949992252715750910745194602021138086494494970613266379744460025465616177926926922688138654323885557009988415942351640115960741578155833833918072787301900372400944905220417577150377055964557622947029335007551784018668510122662907652623481956288903138771167978279497513393702879052908812890748369606869900525752727258390623930509016409326945358010866535708474430654220345507726170988194491246546467069918562396608296121347545870680338009262774320299823572026172392101775587992784912254731857479901313024735291876275901125764092829121942659987764164998914901037447738489115777706255241301673996898135296125169015011605480541199836002238487465753791735681963839589187973819383222433069403560241394255121488829144993421038081505802521321597579489758567943496256907709019841061377088188208200779427584628744301063080461269966084460737000190379010581655076774030377092401175362131768158771456478271792918123087730659658862751714476902338935371110872855762105279467906595576300161743322420046125355980136780009650867748068409281080056662317420889085224874129852381092700370955586990621155695052006653925941437466806598861203742425351014818908523086918018051821147502595958539672612207051930606158335122561825980580973645829811439562672099043048095977150957987785848441843382749030077175577137318607546152506326036632905812849156224350610407725073554442521590941526664866200602128020413564424226008471070370876683682632062774258660008589302267609978140615155519668010934877721236533897662226772590577596879139074330890487526799091990549432102915656581161179929119092259787294429008796800112082684079187367404343209938458451024082264447837588547178107067158352276617961390038209555418035072834338890294399803731783079101069980305248019898235457738898712772331259134461815181377831295755132755626470302962452566470369956557573792080615072113569839196725261012497763330289483985818686941447877445134931861936863529243564149304004410426286045555758988393731187143604462137112645191073401555888452255327233599395659485749002002347824620021165542603776166617300131485333120288437898449026736292555197188765030185878629689538486100282989606544675442782758895477900326210218492157307471276355748395600258460221443951236868150208494561732138453542872631051414641161358641556720728888443240866236485131295784689454619277762482343974059371498047360302611399684391738715676799007781608173978660021257456718935083682852018955625351523691049123052186804095209409368865872750576706976517229522481310664164795951292532254797036999111075225412468316805362337631984364187593003144289235041878439255947694976232556696401329764753572242233416233051630210731598826326087428641235705512520309651916735687574218672961744495135761594165708830575255386424595013465715825038511761237941416813742857553111406934942436812200725901497190503742550435651293376650828827139655796027496085911780398962637468567902087730766916886666718557632976608401161660449232830212462125885662587205245354570703457726827558423724204516705398174211057465244263442878863322520640089830772301033125229019518122127983610742860849309083092517701003838818115007680459091423077130844969996347468268686986386218784735582625772772158117699923780641419433914845300512821110033504245156319522396649988860114980330231057621765878290035424028168937657192604370361907805071214571833840618600237601227868054987168873519416008173670611481794565745164245726398049971462920987822969546361908940819153948427115145944983897677665497541402484337460311837969734259932852724200344798344295968876078287287937003855108134557365769926623120006208103689633300086322704263104881182512461400379826002316657934700646803908136458151183765685502762441933934896117402616899541499911386640703054933283428451361845716733182498070207843142075204990673779392664531440335862943991502195615386347966458225436513645834862995711463354648300805836714089910705623048927768330951366907437654136942198728768684970884457942283602018103225243328917894926884989325734516515690378427516539810875323932177405904304889112673753863281226280842981631867174047367672131914201076848574726585338805801420890319720581556060864585087319912034282753474426178493263761685462625038354326013201082060504270855780356587384676768225182938158869156952986760025957490922034885364262725336044762274644693926622783810910479281687255217366336579609212610359342868955291559662682127318603673466631307645176045198553559516044426937673036981159987401870310025450520300426872338272190266508824361691909087100797295223362266335755123129552845198175071186566484541596112462306997575114182426751169465068168119597035261372882233067223936907813988386419541028924680205408120056843665184677048540742714988878472930181632299333602482775169624241632910836046795100822880215064190227064796654649841008772873584429180522914647035043050895292821281378678322881126807327063990077306000171747220887931275983316769189882925906626686670076169323672656939388389483382887155704762649667843929945072755956127723279474195395531472702351710695646668195413676396693622098060067185355653446972263393074253090452054504378374907434308623661169173299462180281843863104997443264642283142608501278483520175820121619506834813928637006502822904690056171258610608974075673119219639314808696084412588285861728865053627475735181559159193692467418553729088472356547880112369761637709013258443802779769611616439593197416339848747952170195244883503652954201000152996702052459435039143301189673664216454619332238746022349557036925908758150450746908332041550707718685840953792070057686307665422220935007047395392940801374968058459704445627577268885811577761680296021810593947530774447782564499468291748118115874476731346754473555292147117893360271449118801647247619946203117678682561774058793333960000941875942673834012192604570067817459086505122542908149079109481185985795787086889264712913023770265011056838600420319859098845793226053168107647144059112934344936282436412996599965814073094034458185937685829073503819664640994281864376122633531746317680936624295303259812414837690665989292774607433628718381665995754018455698870966753047021654596560017663428910331296585990649245972798267929662089979214932426686081586205413011234919756016052115461353632487728733414484357028421588672161537879307212503522288343720534566190871972810921209964101684549503035031739532983906501336178657998402380237721876854903081312359409881151019166702162135023685406615645575890133214236098540407019946260780876524442213535107951278367660145577897700247243664971077327164952962417555145988378846622702697966307253447908293115280568998676605236726324090179480495897738761655217803408062343256179775378563590306134719447180969404902962988867709512844906029175873176860783750166688516400551809691630363275161569313951659998166634933172415014961099650772378048601662469500230414225514372341386626600228785993038426929800407413655109590971405711483198935030896395728349161778493806383774605009988979561614893111634895157513601238470414717997163345851986066210640131438113695562803808428481022556718158373349212783636231989398013459446082359365181359272394844423075724081216934440843642135299799802684337547853365204429131702541871579545335799272938516442990539280728333110823740011607745619094878263752140144081697926428689999590323299690263707384333829951608564021140609173141443614877148978687955819692960824966802401389692792238782213084586002123466170956074082767882959427947643846514774990692282654322245616188587115193637840387204143234101554384722865901186685925157951768950368497308736533344152319393375655213290370858841918860497017357732405578469705733831063620490090158944518434954385287888694441016606679061722135848757908991981948642829501600416677139914576016784377472890287718508649679037375582292175563610640453758627741418841908801679545513745939526165932104329130033655645112457321952039232122521620011632678340243091937829769354492276694462715345779676253404093973647091822631690180334496040962761316841477854217897766966173083819453365472322745279499132808488979111141403599737847694717325118028904525879564129658929236388098152386107922259445281066558390211317410700379055979468402022559284193222632059462188639959084257225988247057071807129360184548710869004640338471250197611020231635296802987695791812179796010428581586896819185453728152164715334003539022660251932325853011299825803532235106849788634088974579761628701178251824576359281202937003273811777062451605029158222654929750403141933108033791218470295273331854361541903501127575455378654441299054336063907121376127845719868253422958412673147260964125705712826498121397313364422243392595858441334854930602464592019240953793458295784044851186259343830187631666661729080673268098646937044549330562052898769569440451620745548776448376529204951677825419303701031838378159259885909806142488078343907390376842345021364623705092548946335959674415789217565104082282747292703983624472622624503736222770034152565215661371878271418456978586759486102043680911568033682448704699026330699396043031555684460422702674989462304521408429853056765640252527228479260180040656212990142918424902966743422395402649633657788450310315936251794884650668011830735555521207089223246539892601185486623500290304199930320912969004444604220710848065635717812605072604677723492769217921081323996640902696837837516156645646110577551503513169536139769302923532727240399914684969811751664672083381788522604958577967338576886624011484746126531177608679887504049570716689048344921827696035021692698503767991332823937386737683128152766968371592954907641544036499358807935364774164397356539583577221496184249659639570700549324954493974540072333934660684538568708323641533859562114286973739169421580018529699602500184148538871067628176372112273596554027317661406594165350929763653975335733311396364466142307298478871643538067922000215566645579609583837246965701313989470523023214103890558313009206330151217736979713454230746462533698726598822535613765246996449468635448003619699135252861564234040889683581629416349016793294471878943276063145873244936589763436057404147958140872035173532486709502904751671589845803037493977963652403468374941235919574334080179946953013426895300918437471323657078591053615400719310986471006399912437666206040372180361923215422316558067126153719944416533662369318452570769763647071616773479653650473331485566202459363710570376963260208469836263658392026635221784982212190813130481180184010079321928763800939974500206494411460219987760670269790302323052696638288271263459755273220779757036678200812037804658677876963612052477188036917522596982010288569557728283781940517266816060801692289489862407428107349582358096307069449239038854935940899787442400238739147450015743421719902375411817695532242824894734175240251386592139846906262255616818207811919019393515731842369072105265910591372543860977578017557919261237055890387759474431411477723075105765608941775388602606180097784730545010839637390397398570073571876379484339524766534258509659618183492633507540252694504591552784547219487070369726717763978984363955601425879831017216070586062701710221852963317272102231471853264363986550275962790644597097322182591359170542677834615112404365623552202944679424812485461710349976242596079956948225294954509084943927942696049344342447442104548421646829374524655728128252112942721796348031801735136955505468153905282499517877729795345388927636694928908197335744893353317312472129775080261070057615286241506453520809981960731204919996652450470362335270198263202063799098430660593300362874776155620466163082937188379674634379393828188076584419340954049619623426190137971215650307698646337516263419857419163526321835860607954028347288044021868279074448411989581549406319919916671739257366517658221012546800064393751755993167836536197514566531666094962521232690683416521146638480475693053075368111722645550478924238128732246229473614365792604360428257412122285028709969155457320753562859269557642506917517872038798711472149286808659132017600030009432470444773652583390396660003245833332433560399657578600714451201310264222797152042207402520556942515329620573098895415095460567071317064583166863147045457118696880839625606155030111677140736637230161142191421074491087397962215225915384374669348014206087750894455898800495607153398427360655934278012113129119616986168523034791080984822900186754608591387632152467440102463039602269777804223693501195170828364103571055361798534894213753900516342695308286517675988964231172812424347236606634355289192659632630514593608419795681415330237125107663240976133385537944924721627494767026068794359815192471049727685205347910190582089703730041213065685601586603772447169515115630781267522010833326725348907293642610506817259949239591618969072356080948509109415661820030011956917450528366625152565569716072849181946727026833533938500439777624018325709236687663982375656824889898000474713298974333785483131847619919663166570877936583439247389211718231000482063499479274158702961146895226944968554016168484159426264138141344614445417504745021648133898511447629013840388389166418086925837992413024413897624997659733176718957527147561435805216243594151435450927799955013010456720630171804034246107175807690343445245578106500448108243126593738337867817924778074051351294694606116381383959138456410397912206189666775540676654433910403076709219033746494864316800385829791605195443728192234000634591595789711450375265483512545100822688555005819066917681146852392021282458257280079696225788241315708478441743923381032059906656285508917911359442886991649143742822783242803408401358706937711917427703783745080959217616774166608573036554021733732705962992698398865890077318518533979320380781805985414913470635638172585283211349746742709277743075609975865881216922522459351274367353608477129366520969120530707298173049194655154394159492174580583776528149540551655059525747887802945621874964740540835004695785833786389505801607364274463670768351730283003717514662610323410114306862512076869224448585257727092690485657812062401127576152293906855613878041529059700124192941496520227783672614786692034547991138960671667943058556786817925558384944112437603552873898317487357862975014645627114066882276969603910639615783117677198706887804530040802956301480118299796387136954630611643344000675484445729794693206553044140982998054264894952516840485801139763030939838283852348290744233657014077735254321884182246151149780237620039171970277779846731170872800845125844659140604616600715360193645438846017995269982937220390178383164591734042152325241858075130095648806906871776808996772704592234100557826183721820947975572033566444116190436834757233106434542159990887214896406268652339813604045068287911782427457002314531277773587075232147932306914908476649985610596420582520930707675842239215069534166610967741476288429276612474783721195773247255849686945363667404532460073826208399778398321839150453665161425713204464540892588309957792362006055881520543802493168296810622795189462778270919495227925628119447445024078241206800407738916283747689594835806257855225912031187552470817734681205911282686695629032006363583452759664029029717622126174664425778403878808892865777243506150001954050245733657777277688843863105756609756742817435436020367126835310839266197677906616302714858476570069479971386876623519748982650471876078178824102744227134303957062253909878501051703957178585980110708679752603643112068070889088523300210006870609619223992923676942448242598411664092722672537865964108431755340123047249770266916670551437467436854186941799770185914312834696175584588290231882784497856862057632131173501206682062102882565206845399213007298643508354978742479632735756924528882957016981324720561595501731420238815573850348722215059731353378802903898011922063241903841114906249412554141185038283863594153730552288947743164378111980177498706360579990594167566619978317000746384342387302050366287795114771045234753816247022170728833507946951514592444399203772506694357743201448745804801488120899147276078783781429449472455682712165190991674843239471060396622028837593819970180876130846283942440552246948555127747605662520764363305187279956208064607203505928803866750228007432754457172439385141505605068805713558252498816307387138491670905956913549345112076869618068427950438682185921419851648085439235256752727175910825248543383326233806766620084407135360885218134266157011798300492748007792262036144670038621110736994077460714465670634744171573232998087798722805690142979589653824102046570953560001656600981165978621304655956608112584783226241213593602918241381035699994179780921578876037473542334091827257009998486906210536495747835536749979695390632323986415327205607335991670424762149255200596391963859684515212519983298280136824404250122964517823418527167055084773440480872206588371303331323353611708848494530936202538532817894929484053948657958622355592714553905015810692408119717380458903215849738857688999613061302787581458531187273037621292391964128239572549229134846280439048946756223725961867612090711491940834491922685652200007524423015467305124252689832150762608695606918751294171140520371921378948534315928862117051364730322137407312210205039476041337713837435154529945965465978774100534133269044318221484452829553340306639874550038815135991919330999954039300199449609118656958312426467180567266854640236788062393217548145253777326502450279641881814105313403684134064511019660127233563998707135305804696097283728035011324965497195527714096046795870769987849508105735403905195875383063914671561862052867700233842978328157032864789505674717565773208327461914479112665574284876463304400989272897531300158353876098977443436227539592727647459960978582178510053805435246082324361001250290314520208301706335394746118905801765278758706427990406686617957476417562498085663494275073077272223512837531586699107065934116739968681630354272120490296785704047449100757010256478272178228469769844910402180023842233315339263893999962134541308425797168514422421521030993431945577044694908706947589895547452783638470398698423694526036662200756759828600771519727937803851410573809718325469380810489530155933330116286112185215753965843413751514555967296170047862342962298936477953059618656081893239222059213038840199278688904449944116354231847677271588091017295239245033781955256998146555911907448116039312944822978460637290796833634199177901712709123694369109050354755631758994799516328149253907343929170003432974727398629947129811122888431339922638893577917044628426055279466859806240059666926914585444044336621176563512901569395085762606004630402202038572737762251069963595462514042872672926557472741130187415551366995014044092692482566757074838051491602487525393425970785860098980591847614681527240049790805890639477783668565750027101510849762306955134808327769321426650917234534519007658089849992628578474304294545051322749871230710968621392369563062204802192253973503133438090085389170947512696220657556819224270922441562024785818290829061261519179909276514207705336819046245077760654259855104422491327089885328399403857582904478239961539892064143506234573095738835512465768551609383881305673108636820465883182503492963869343239646040223049680004041378569707492441707845592050459910137428899041419071980739184039651338504537909588239926736458224667417030054821180521715435606882109207526750448570099190248983230778207402310822387977090562822776886805024923528003607804923580413128491985689123005163394942198086658811820435804391784922060815370680125092961560070337375391621619836082774984194931427023477503722308672316031705302859571499102108844256860422411510440885910319752984481772756563592962771055277510918137705047545469016170678059144441933914080879132042656521120750560180771336565503605181704264767010332051051041741453578756753911616977572491413977891473412181070671620759309367190448552701438039717029870793497755483031455550395000188430484765382105621042179095307360100357755496642563784752997116394360794063980294902250776489279783972677862592781799782176886096650927784598383648022077760508203321133546259836903827428354063465214263366625866326515425651707488997073649734400368425831777124022046900703556487407848377193398323819967403122488661904391849131996817113357982745876853502256527243798429844720296727325233267042337754158643835939067833488674653398923355649107534599218737726265335191161468988538925846357894026174182815887252360965736010902077207302999863183752349229345803357814649133788845911566054451550689771323959646040418638210619121923705744974605402519993992554884063694191231569926641385724100936346314866883052054344422163130916396601344008549405668893359287038029651328741819894353580163566059497533304314598094117166855696475241512511299802809164312930688118743993690154029987609985830242127287518621588315462862138925154767758651379413544666482254927102924292020326201269641684636265619013917683697412062691528244992406607330438461490017496821811179181864049746465850071483107132015573608115806020605040622354071736069228671274739181656772324102926770214676216704280257758846845763013086700049882110566821164736239045762101505655084260986428973776190630432794915442739227293987813044171128382495253933472770750712099734562521815410522853262513895610915704837178462343919339581593649602905352773849908159649048536937096707882697265354475955118136161837748178637974602140892135430324064942760643451688853251078344442612648634686691258051598745346921538550372093032800909795287895686075285207846476790972597685384486738263903051780311028597694840335011283901187685623422552106121720985893904275306669083042274664416929898666908150756030065048334800685673139014265971289215255588446572309474928541088669607343933000847496710708389141558202268047180134081091215094935021489179782185662123330602989088035674564234610449981850571964807908356252552639741135160145715976512145584262093415758962396420054424176175601183362521501826398575774334791453233553256587392302780561246165079965655712058372692616379905908671821019301658463224557123587315587990664014065024402330034008814634557433095167372462874265888305568931888093891301667248800174029111984167253333841902423027168955380837269653749743886664237325523349569265895564951544930372562588794550747269457200039184528293853489620576412876037823678514144878084660791567263537651625458000077538361911564622170740401567270370213416252520140075093407294856227453107941572193952477075291250375428519847259199282805887349272552151977346733733233244601924700332200319396564883412690319421683628017091282039348964760894761731407697392443582676402179121750995577098743573343891734306345878735718634933004050194804310354133324608827020122007532275395119048867355840240674847480577639633332319969552182859758908634990662314176325048247765582938518210344543941220488645597831620038036122939679162259291858995376678923014564538192996192136469860804961041722508427343759182384892038508612855617774282245413413198179786053773560095424076209789574062013617112518767122145119821955289874932096518298819919695634871392524650341709864952974805665447443563547763456651549751484431702479641085171198806403112519519080435021078290102307196782909365208716615292692546189544520778508017768504354653362056638011146479279070862141412829339958629835487798811298267004241573358946417043904895934314796938246772966425970167643539267402069755048758167394065765562633266302311897809480220554805724996568438719075982007934619635854088724380485984202261296521869105072317809513454031805465214878284080468636190026332825278646476100869563595262937755795661609871316100413601549677392315515236683620974223476590234269265578417116335359469377851326425426104680578754458355966442311843300528447694023529409684985537030291249837629698727559861672859979241954920196944039970693404724255718530927328898456871946690450706226833458032972677608434893811292112183817703702373057690467069386927086207432215225844050679428147609790038944678371758776324102160318525029614649176698505835566965690567314264410277009206974448089671799144115132779723028535103788206783855684569317113612320968284341514511684485471564375153847457168506177590862007366263512519788925022040622207628517712222264407029397719875698282182093885197693981204629625836207970891313726282464061012709039445342397475416604948701386033199937907332680061076188981790505048500778408057146005351674501696840937335088809955067559231935163731740989691401209165095469209613957258686016473844397335106808342825904601921534420324472523072126805656220682752081982835541001117247686546875101190003023887983936223953318818534169452285200969266385495940604667121958375868445862044647802382221151990052815362041947952469322676409317116347820570756032212126040276833194687092159203691454426763127763435707306342512964364164650734076742657369511129990377827103045450244798510640786222822332887662685052444709349505318275486286793025204642630718058994794839775831532209742122482215219023953994526478863358534841461164950987427663864923585376977559534269093490526159489108439689539622662204468976094469802275334173180245242459639248199672277873770464710109670350547647486178395571051980303877386219909882276029803539009184505651116772647531072764501316933696228470879491305198287540527668116009544046574714877374116702599755947455266585194210243620595379083175190390798697814415969618069747433109043215376050034126150310063887459792191014787238946402467479286520865412752212458691254394004686225025872736052258391915428684599296461400019871503053084158203265097514912054955208605046047821055945469521742244599159591629949488934390028301897811563277470206345164321095941227323280949242088404806467857299840093025215259875447249925702552591606901557509459299856738052574201933502080037053846211226144778438685472397076889280246216621070679908382021679252671715042561349309281521581441334072245314732560176235946799798865008958956801781352184545913218205245407340914603398945940285272628673108676305902963702788207314921590921664626968971146380752952193386714692919017039880527572340427162549760112654910420800404062747772383482284072103019613308199229655643857076819742803569249219703956357303563012956528404141507703065166146813193766502671575078023166230656535442442147868331731472837116507264448402921950674490465360117419115947231493428908306782285685726684410969013208782850072333282540310711746878205591598735436377073287258926629383660948805013569616615125763316825729549102887233410730942868604149234396793714969527518806286907158097491953192904273120948368850054391763615364719253401642604225933484013985040422208591027414819821814335630626706981274694046154247214389071256074553682128942263463379640588833206170941949025660069841780268946263442051480042361000743972982529167543299210169669701451525865770596519680795307089678977909729256995916482992611170153712997333402208916228204874536049311396528586476442298957108666753634747979752377382548651625054772616702014170487027298123093534442880804511453141263339066393318970385394737024695969135112480093362073656782546215356009334489036790247894529126631350306892507893863338973849396551596984092061504458020538327916699392294337221174967710819018597892778754384892541649698217098171158052521246704673061460645354010929658454805114690166753542138324169256638373588597619506408539374893821268420192084367861391521615106286748024605289439576045882465076619297297619734851649535607139127947147626533791470307671437774957341464024838347239164897843083484285334328604788777653448592667564182338769440147486292157725064888125651934214244131808612519323562716268890706501157412473964841039170343196057894102705946018636385975190580434072664369267147126626366004790058557241039629397856962205962320394260972688007535872243821228973508068148904410786199062547845122826912468195184194852858776424731384062650790994738447879523256173224143821299776499969917375234813452785766226478740718994413009942340757316144768083966677360504974387389797669789255373753277309822331103054320908160201543231513026205892928190827684007202419747271139746133338705073488231421426312609957826564217338742809011516023808885810746360230500318319518308344514859191155858293207204587066582443323642579703906381510308800438415729545764948643620243946465359230392471603559368451217362643325822317709587002154514313005708226533398584569430706190712852601983413636053757567448268031352153902347114649925232606964715070637963288469688023721276714679065797139669494791833100018895320761229145959679253319934576815752337965604858816738504552795095789230291235245815387407538641344140993592706056188915450523344177645081165486386798152011148225208567768187908466756441314608421294453069824146639065203025767933794378722904126613054732015224993252855051390839093318355658363726552604428678019375694303997792701263245242434202482871774913376599853539040778934513683613940983758618901116971225364812125164252661318080004960219637462820275099646141174776433512981861988751899525596175985050206481313474468011294834571890127629200821447516852263393471461746372146405003757138814794089351287728640610324490412530129958012989056540882364755692537370080406360128336017251489169522361380366541117838187333516425199119675720247307299657870300965639500066467047456535423282175189163908762971822073702563077464528114569370423691737252730205304641839127636663370906435362984731954511298591029991007145688866003597552627253395492834322176650871458814354575694173011004889547232951908763435773115543246433015977904233465069521757684624372655214818927530415328813161596876980545682371329063398855910201240877465637221892692300541850559424000392905013607485337084315344615632068394632587022404018287540580920701084581315025084766535263406719799375590795200142923494981699280793094992081031889193915079841784873619837536002253382704247829714499612786642182314968452307687478036304554244077212039900023351867856321090512687813749361427781208358528902867741470710305095624468098077016631513176697248407256350205176889488875146943462409780025171335954453853947131978128331555819066023824256070817945243319436870461774030664091551248135035766855172983592567236473853590658653914085257299756747355683858425865443559620073493983377433162873134190220418470067833784051561168185592259466351868746367169475596310405194885970118297529875869372775900361934853706428858766018788378162816442459942292783257766668710769201092204368031741572592523135084624675197714064494336483508355737616685790637332095568020513975973568889269252355430175491302329656136389924727582410711892462387814780053687811843023490003852802356885178901951280260650335988504646891366831093386428333976387021416010002774953083318442155793950474247589468286310253495956029984378930725726088295732605896573450150146395052992124740111661567971039701871000878855067717017353254631471317147037782212766062872921678819668331995990736134553491875906778948189753195936843042014589852695997636455750823225976924856167987622316246281880149249447975438566121055647408775950047767592126629816924473691530200347868996893425863369367131297107793466864563056307301103514346616006209801010472233763547763902934982311515208869099129507883662391363107353800650119833202901303341077812629186835305124067866630731291009960676371794135201954658364032342916640208562095501485295497178370614718819370740662971643278802073506899008909544566348563877762608275833949423002352832716050130324611798019727736187557493839219839264678147011296069416823086528357366470344879612256542872876807270885162886491518956444756018485706476830508191069242269754203192008883436521093526798551796431469074107474634923061002763316040437637035021670581379810318817603187673123147623422898146507442016456883448017388616670368450560641841466658010631366336171460770164379049801535493407405601549159666088198932445360543679546466963836373800315716393474484396366741527322200807299840455116067916044637708326897110653640818890654771654177983718302715822113185414133316656106414306471442304465851818375186235065572936975475846351755264592080428692281554591890788181667365948648038944694789332959049046481559157843564417589297961985324814627809786108761753645611404519716468839364886721982768518957867752739968355024478539233590438305262189990365918549584461594020283511963532012253671196017607135464528302528187187329404889112693891614603784826608638538558280282947549022696189316395446233193087774749280250697948781008840492547034620192956631873226573714572254380613207111283899660840852485700547262555205994174533311953756341160028486005487599011954329567046615866582630583871836906693467245425011162913070580636652227966895624522230082868114836630754394102375095657959384752567317872924216788886002383932208748244568230428404940730307201880533686328304331974208150423380972757384976873722319469019771758994254417261394072700001747579037375319016551560089890795173761952750326357631003083762198543877064238644177010758471678620728265522420892859100312132796877236860642852954170838867576294411136893433470893408666734262058858845784367708859441569197437206942063939687362706609303296426102311930402094685891184454967715843029194810985070368047458222133765722481096296363101423358460077946797597159179610556322621149271759323881644363583954011417704637318576789469664445125716409407937092902208643348244873532974516177050949184191436995346209333210878613030541751999257642718404711074382438160550454088345439613118224672143134350464089967246944914338505840910445856211015629695518911264691650748381143684552833694779385067970210602230468210662919633411524986925349302756486977009960215529448877248405579299780535924761904412649878693178084923443432105571531533440007069585250050868411248445754727468478235419309854152744862053906214066692442585128810523800177690483061683899905080495413798211806810849653440612887924794554348898002813084441670804992617806449382296816271758288732324652960623491045393810600462448798351947869323939209132077631852243268123483957781146296687279908653255677623995987781897060140734945548606345450598757166119652949760907457930898148836709391290105942651404915068147001575265326240175977334860879851863246664899578289526743650595586274125090611247753815789538968662498896352782516370752389021923240595681290935497126877899078418844315462426128567104327109797840033833806335146583554896165740880800371069433421786892306863964008163824873507321598212156386996113141596342879191565775726168088326611502234709017086539042764038254212093544810318488988569048796918113107014599733627282787145400552938597863899969668861753884227718228565112938356116694006265492807690389045483907642035597894614692322614066483609814921159313624777050964321046009693837746566600804690052794023182563519695680489617025280154575880811122734399137793867019174429727202056531960940820074940915015207268201498036932348206019519973769688165740323910828957355834377759325719456803936466787915597450013637235191972048207245434199331836837069733601569497951554051018192973100293547893639505648758994805518471570240529761874814330590354443976201533701711148815371820542306022712151986727161682151924438467306506763302586901250412627075850496575866011018368693759009212549695853447057443795762909212054274651051137562262846526038984180295431412592167405338658880690029755479955478793997051733469225307109328294256018685398543408801248058442950816196110375979914502250357332762430479864453947154851334147711049033491212794530200145558689486165290667763307697152767387720357401547030828018379206075080067623166935042284762949228137949907390604969252805965057615111252975594444235362907803523700859969130549897366658868314508025628525378201427212082130718008266388893313566214606123416753976177878012754720764876467842771954047567600376068912970468547846953849158435741025300528083788867402169392720865722995093913893040871305590176118458937928838406144136458546358311605003656149161042713140535410402960096055404425003599256989689472194361452142470455101465860682358701600876326193366983116075599469309805021175249978106510838278460294268103417443826201478857421585196103281466738851749083128260125975932648284141310105122008735418814107200812441706387702839206639737359756978950268965339433598494844032527501182570120049895841215547361893151606718902062601483827574228160620029618162557889081173995169677714991354036905813566387610523554251784634995684405302435079498189665822443543703193118576281222858387067821294414490583880567591021828288879433275720684774122758725854148116522696742763203939891902263806058600249819077763647494583732792666643154767543920558704907550516945117483238531410373562114452938872997867804127531782550681769172754077725585225399827165214648441220940323727451233896607508621439826296755148255038818806106165637575043558690225544959869327212468950582790236178493025895002721967481533658545279439837313482356743952679321745037756694398075390969801053261994021226925182650939094781945499991122232458883875025210407730171179475011441343129971668803991451455908739797162824554969462923384560589181391915166824387700352067007008910720751182946538130082742197258267214089140487809851428727293870062045934538131722339069406476001878177630735541919119522606236485219603524946297056769559275996499118847354309682708394471805701519790849511695537135756303951589420661348195884386737023962146113317902615983670952348719460605977852928345003633763649586243171227162014810508762369340936603902823227071776002536339678099752004225257186839054341110147180333129221544159159879139568908616410357095449329298643306582321555503882256033082081739501978378890892994740842064797061737942205786178535502831783938759568658485033631564513153244453862331436660894790595011568852417895601076355563052472999794193103959451327122390947848943104982991130675892077542721142631212180007321300846249588696855380810807382703727855585236137376275720238224931696369238779969471831714297378808286288534508596125110769561916576447154045965008629348386970802905283335502805928481311835147962060302923360330291064728207653162688033251143234281522132567619154581148348963922622625643584346173221462690986827227534199141107243963302433854949644072846301691234296276575697655159712416479950234204564877226670918729193998859427827947519672345290982083051558092596974434347326479559621259448685996030587828642208758248025102062052175534743093162655444254634468099467520044644599760452701278229899670945145606128476372123302883798073511684994257510754657091855086202155368122215966825103973643932561348925557867701971311000899696503522156678942174636201850265528903608604560931521609404290810796400983382144219323725660717824555788206049395313127619349615897217694722968212173317765970885346076003153867604032380444687412699983530741120247993172046305743828416475190107009397358470246126971366323828275329717952546165535852154824390340165947283307105116971703522526715275955915495247741684760652219574226295143298094785489674608137979004094097272771918954958442683988827366047036726182014424857065579580618133968839749162798749243011294601188275202045958474608527543557396258979591612476715067682030293574727326190829471090771280312738463421543108670545220840364082128642591912772287264692083273483978567433923971945178198968296619278587240942391492107837254892893698034858883860362074575492169462100166198852817753149241082508884650291768228473080697252517489847747452942815636715190471933557026294773413928595417871364109194560336468825750047278640941980126974909019352408821738358298463109437745711555863473621204301010314399714917094166368408361546972517406598216438920242642551492222660964385180647845067395699666667053459357493097906880243662845079464850914514502341651019074011931698148351837507442550259712778139028985326208543951532198711836901397040620193059119466705613912789029479935182593989650354076225138086587495865564419169362519674900468362992722432260985947419279361681113672836816581434386430641893991548106673521418104167721235630262160637033504724388318467614346696838553168239806311478543985497070659695751727994633051369507562176045429343597791930001824291145439340362918220826497437231015025363046896993698658298713878481431109360226505460581829750256912333245620048342727688220435987750457716915579831200676246497960614508029391682884615491135061608618380627279976243229152064010883087571719505534228913523531799737772806314824796217521007652084399855784544445340424953658756734395997330266797399800895017907373217590087337464982228876776237394973267302682563349760344350581491650948353927416821778216960655572657002566789348382804778260202269345028646210074766795489979599136563168341563430864870080522781079026073752880882828298071467505902563773028431596010520504498005205412882929390833415950370462633744610719624932167322836929841154514224395947540185763414960176853002643062672610273919793094673942887137840128765910904672993715366169701853100833908479196364612660172739790720203832412410659011625313566443400274739504023982189491353294403139397213780831130543907753651637315925864797220163894811964063282160787758695305086804220638593768496703140776497924704392378104260147918203618421314691243654156331153279743896714547107690679271562785098186745085806349541881558173107381834139671220497014489503431970869360061591675502723470127285909115851286245942289460156720508635161250038673472203209642295443381403358969823475550529147553278112124509095506969884430465215521631049980550771112259864562841541569849108015500321249568570535957109545766077936165889587500104907731696659263584427320723523282696192799192857193211780324099016350931614497557715203731443462271024027797558913628842584243090759405584769105315367763406967340652601166492555444085441776415574915575268085335707596866858290380126044995952834700066123005561919674504262551090656367472014947024088064366310241254781523933438400739586306168171944105355464413128256022320130014064376510833935367946704393630941468356372601020488393273337981089487042550353068342590995836329905480682089470798910224317773861127809210188844432680431484790841435652401234323003710184065345114510299729611470726501318722627011107705048129442788893261347228829621942697269733518347025062673465864088414444712573798072621673703717545608445632735367995949221480037656968645789994023340277866128378350652922233419438407420579988839592113680798386283083253740126064259030710370025095760093245980128642149079192313898176488844976825720116240071511254157936087786393704346029257925333562619645914884356668708789093108514936051664204976252496256521914743124102004085664643571062880974069932533210431349408783621073323864942408035883276905610542049040801824471042407918056000672038190701727495846816068938154427449368614019770842854888353139548221061628112409756476445739033642528865463394838281596844199956641652822344240201610288068666509547497852853633255765404044078208071588341902279673942923905818823152326396964668769292963226686110688003467542840272337715811706893835135357477766906387163787833786588336615853342214892495194669179445212153207905794833397411628527373610566263393041736688647971615977571401678987690151909501348389468838378585010063319503493871837621743477152684372190349426759143209666867121387250474013316352282789036357205262488301267089151010194157633036451822595593588562221813191295140394401330677559956442571802885154713032770355761046851866577587926720270610259617676998725884916210944645498008049203838401071028256085859691080582824472094510320022829930740026930057491613323672585420332689236342129520659172007796435818041759490375051711487203819648860485127111802746644130020707859496573619968962414406415672570594925614134423982372781345844148517628521801280791700033958462869101943523870372885199036435769611218608169295179836304592739497817430851413352657772211909928963787099858533332653406236709138944604081238208223096695113629783229261889466430926296837379760141710741533157145477591283622005831886613607964363653482876463612854998949990149270384399415215838208083294079760332003114618925323296621490038816638012836301708241047048397694224741614721340494834352843021107022806550170348426948994628054420509736717706922373856474059308422137212040693348342658383428309201320532129444572537130053764774479735905157808079485707692962498291814943044306948549811258966123595092936136565428336847490911233111083292222564715632924182516892105191946134070955810405050432842036054388649669726130288985461686929513615116143262367159451823014397570814200918560303026264821827869156441679914978971142825424702849583550509898804188235307116420122971306996663781604103411052801594015818518218481068230781033547341839148630889813864566784992897347570454076022712064158195840553624831938881517232763161375320197811599628957070099870793684041858886942170453724024495429333132051092838297266841130628683747569919423882995048993454145737901277029875303799729625334238756536153868327813371542740096003437303640978434104946103616018798819854960174915642367425190117785445551900817458537500845909782520936935746725837092120488942070900524697690174709437036717921997790856349961081497462425048973170291592084871022590446483212446468283778396896277682540684474406263026462265913063228384277471027276580486359546493677773074140268133562833819875010483613994546231642399018117638737105367746745032814682396819154465659796158730254442083710626931651105918098318160246274856345838299166311957258274107982245310887560851974784156160889336847263911948468267591988765797626752129092848964908927297572395966557157908408647823931573470945690478087523568956236662466593057493104836386572100365998965914956183060840986178481170568347614724187727679593582231167173536510773665687992226874175210650477429238573252028689649470420253530174627996514307537780105070263625880673508696686877354283978461603084470548015451311663122674981307065210487158796573517030400647340603658288272136447523466076783217582937358645077123142488868677384125873584776337702426924824398195184425506873617623021458273462634255675809096445039853957091094373739121220374410350166119705468767358831377052233063836717390283091957918262788418804646931986574881702777200962133525688722819371151334709418232731374109226986125532618225850102387985551843628203543720235468615911420400520916636640999893938668378973083222438281128744660882168189660041918438790673221527806730485564636816344364235398785652377125284307832696437952131393915253005654966211831093873347593143100195006762984980237548338139061707101355027912835817393417298260546468429807800133651877766142259665113966993530293920201169626773474508057386346066045162820749642547574378047935944646370214800470436763611216525789948931030083382316408100391363255009368221954901995828208267356225484250214018321155853332836707211564361948340784755818766456128821599314600099465535215540805403897293329912548926812251401792751888168199335146878227224568563577896656064206959654131663508103633635591091644785897450658728628656446892654787410010390698256634126729638844225774947966379575567664232255171015947846237728190292365834659200734814780727029112691586508861118359836781001930125367130771312007630836424763062490892808632099906554730893461215327593623131391591878250367141461922773297629635507887324188406588297086517754015542005764876968272759064729981755007028895237826816675902431131684338959032634708085866673510966244343421250759420171685335732712920882643056439557191870219193723939421788349226104683541582607639862775533941216758599783069731003853795230347874209297538430894402791159010215933006150003407456297970890540180096867630652240555336979285257595381042545435658460435071969805461494072925022450047790649292953247120397327972619134843867917616640059046449064812180479814656240263579212593011455536259132576255369694407302448620476244943687671436436281361642460323487797786169242504347607321432891646883771107236665727658224882264981870696229188488659846330956540296155237241596665359104770101711765471685546394742196266057183829441375798889858037304669860095476125609169969744215434392287884186969294344193003013366662782140478847968161656837196296198248795544377991898884840850312795626813927154474288097925439736522707679173658800819512691321287151576627821256895433982906102347295838874297755881920493969950575602008478695988878737148320886903903767644991399652982129730939045543178194326508955970589144097800471639127586938533024578828451377713391735447100376589505919856346416123467674036475950612269771263492370349309557142096829966506858289575682064751489494426780619010054083373062854431862850701743525824296189418853618820402206117025525829808334440751914548509057009669457360974050667629034763571870451355662223380273778628600564177891054256251922919860353311864326603455976016624233685268040519702054967436412920520782913985850482192762504097489744432773845154918321693000881930328948951339078703807109511465730394880621361922498931039277609773993236627009193019764963522380514383784579058582169379794958407183963195882265727695208720659700337033060044141264570790407670816858064865576625491567633691207347571803347596806940012849372629196770582457616958107281076786400679164547175652882674820225922425956946229517133561757257281153529367264758010676678784173319718796173722162595866284818646247870841013726005233896137036714390693670422536094869440712025481271803411113347901678489811972430426710282544207845233988198982632248782419195495971550962178153544300884558176428229061559689938779732401168538850317333742242216416818509629092028535704825432173315735104327545374265243980308995193495081868908324410248171393368944015434682503261444591840351622351995808559323928791758642094357141142193312696162595300941811870327998465354986764537571817827074637635266746260789652907189749526034374533399128918989062486080861693355979644230115869156684352869896401696447212181011655603999496093459097384714376278099160467300506141887382968012617899100830783490975439434130853956831775394256089210753586351991120635509789709249476031315793542262009427691027868427286155456836865774136193680114910808077439028545776118196061275939129983550453071380404364929867031311128943666102562410269648647295279927447942569624263207662163385906480586136351173221888639038439286833346739507286325921894766399735153542463693060499321628417897291757988037310533965807347701988319687985526732385500855818356994303089930224190683572048751907489029014379831399257059352821240710317431103268091229998027634024655069821388996981348680009350798711927428499866353513437559415662021328753612875837989070814649418079014399942173834077325905066844245885140435064194323791159530569049891874826339470816790035331199961540023122371811078330055285161138531505205417821045937724945573316087231894733270611830951317169114544159057735515468452502710733906376828602653014786314555452937637569811300472913278527040947562756825972174525745584197978484915612070250752022923672339758514892295619059493682181253969425756991479543398524431908852953300182665231014645355698394209647327823226555577258094846375590886241092210668222755353262439851914214116361150342467774009816285612753415089749603674982525927915789855133882717326462176466047456870423760023681060308865683572503845420339419480565039215464228802644478252587675271782824870101480006296490691576706882259797559840753560006593495972794430563376488324911387815082729297558522145512892642273698067205989946409648052971848896514606049997905726494285623532590600883207893490910277691053660815297908128067118900963005137906596419521495187980023881480059922443699876373459458375158135707975503139794849483366721572210001542618099325135815781585235164102061663955656935342482576272228250931861850986104347701351276254402539382763359946007640160821380918884908908413117777519830837919441999055610776537209512311678239796003388018477300956127761398858520366936220545847075330860020350971420368685880429456154429840877145436746509354419910981471275509542842540906777532109175568539650812780029855444345746457901491388984366313728827518256342385153022596673477761375694605410842540039838557250690158682943693610759611408351186126098367564484957656514964070679108599414478523897527936617139033856149637253841749916298709566372956508455440635333275093633836047815853910229878188855515745870544403438597267043260013994978724953415458867848872680949251377263873933157896864957375099274193504420287715814210014996513723977516434776077365878292346273709887400800253498237416796021783646969080794842468975491160123961217619147552428511712581191884535772974791299043998311415285875410855246666620094221015353711992003148966853357500476782064161451738371233492095477535361640626893460361885612815316324171458325180521116876121622343156364479776561281813153387909702313461011624190889101574854863231779833390315038617159506323359072286902332364608100970215568004953812219963312863015550563245846520200673456237880758193912416356270611841373161147216369409587703839011606016946965973294685016052409647694416030950613430519714038688948619481104261401165461839154717164161227260292520627811548100297226574207961372217719106798473866375005012500782075709246019100981033782513857170611219386625521073518361665830833934650977835980149246893652697093862161680697447942543078166598547211443843348622035034004446097694135769025330152241739455777494626099827348788522951590872406612639141843357346143753763224869985168661027067135840210675127281854194514865864718601447324112579855732261978685759524395452915639219652245103592929904921060621052167703410245139586806994875891424538184486002885164049906142525388171451298811775904593145205217885354976034987864931578097121488942400257564048637145599787945782933494319726956330359223926584698833514910631387961959769658276955912122005956440568765617686720330917675016535939453703587370031176589997025176301189209185206167945427951938609889005414591577645440245319149076464299516250997393410395023976122562586845573994752338885758468927687545266114395047708391489663910335810017030588732727327006071334097638699054135310262189034525961964951898464919257052564885579513873961808864844407094322628737738789146908687757102477269509571617090488689456348006966512386495769660818717720120023390334486215829171674043103657540519376485420353711664091983212008532263308957862200001224414951183013068464811354388814568888408657328438111099451258905011841481326483108601595016953481581296304722743798873877916652594087790626979462508632554969590382916839804395615653282264038022607029087406521893716936345734127992471399343413185210767806995502494551226415209150728708780258641077795660836063472923212557437894449754887174499192940039604035087460209503649991479298395182978652092477191856283686611565739662951699032105546173949972476738296558427063726289185262213152011466776197741293609227775269791157625436247790418502011950144759369470884943409613571794927431920329567538990059165921075226385199728120003722385863306328772925893532410725858469392576534417004548779188619264639695205974314616524079456683615627233205462611901591909374626149576576174719778274604300916880351774220636548345061690009118688284556149511931752865067984074180858607559016924117655653409768227417765705923829034376067028742489359551525985556495978613762467645892006404968982013038549102860039324888508828479962628513447903998833319687159750968344119646469410665170242768018558644507903419027943173801283217387245227244553802943611825529540861788232278217234496012764838864806153464269100661227892035142949743419102158376531986893060783069288752560304679535448061395302252060753030885669072842322807823412037768106355184808254741641424116837553705113255645584565636068260888646991384904790394984942625559380910193377506538609867814958554986508503164885534317471829178908651188448244759029927663756873729603694687559324937726137021831962219851331006285648606512888707866419106781855272737524333778636343290955663601759201137755699430783181412031094459089244277718710137565991428855521953263222077923584189389289578183110006100249519689055251502694769423703366305947454371540495462996575543105830600661241029218022120209101544059097924502246379844216294526523450804954368841440296378646139301432697650744189431330185803345525524071309697905865868432592840604064971777495335560116073960691837330803543019295700386827556566976831516848852338995159481679660121196798140622864980286690148446034860381504896378592347117410624204831597508731338300049780541858203626824112189059012879845519172928571839729283531604552731288035600538212770352157662206234492724255659173818599862713736726914191450910884626939761588385420457026103922720534346657613714289843186180704966529788293686357872565260830477097669167939384125120892613152701972190011299129576948277004641314129529729343867637145498181740428871693452651167074908422746956513567376240287391145362277169023076060953224679309194901760381650412590917904313405581681977204576707966146818311052336058971869607601854925910529884759377911821141969090959405599127602766155587345763427482930627233800038769280967448585874380784742094810177028701371874188482652600631232002759862994379366403186201880984992611166440431280938873201977724902881187963715518792508125107777218919547838693565881545960006646298241741422144982167467505086396939152991326927885453057079088872054721615067391028492302996974388649419751935472351032958848809135302506151994229947803655735703661935188306255275817228523330732582059674070771349789727164753782818309062189595238315491412780747332992733313745974244276345468371403445661459309703430902113619949009938734102558443613381138707557068505669227271419529404686462292982294256484424922536035040334508221227346301489478112957980110590971676635843085751916598592973606332228007908726374626682159835020689437177858647345173398384899482395840024506089897039353578181041803580025765100455691359355117600501663973949670751277833520704957322369396570707460493392640965461341261212561715766085440279741180079376457724024018757685099266604881928893656905127277071739354083355912907436017978043874546168482667016825042232509620538921431201387459010661313270916428932481092059538316647864510883140527825863371278038170081928502250522659301529100408687373910894515935679646820662729027975265788299819801499392109177140953224727976058138379435697412357441464490957628894869474089999128594448802802752672264205560443508386131319327853604433687242498996087963686507118209063455515130506205734818696901807666879161261633477043052753778202542377962024479224639392729935501219768570615038024853065158727088419217745409418588970678933634308880802468557006181999024612728782939313831025477725123928744342586735452485513790967559866305407890252209544849579785358537709836367454693803695638658551385255185796635749331424254349844052903535365198760029107205289711646378298698427565293575430530182470379273863677050820665754129597988769292659743867514685937557468224678168674628998991638530654069218599799457061207711480296129701662714607071020541563428500646903222450257286751757512196613089380246159848644400967557280139662956863412326816707690417932784614701797467627600686396354342622694113339574359377270124904485284925870078106657633790822882144570455271648666922038319802674426263165996572497056471712181544358900231695660921178385812253234598579554439390372804377502332442184550732617104309013847458862310331267016543310266872973858884473126255639453793233799962287419427142135795832910223433484916600907406600278143830604009126342029318170063011493865733141865697883316154443944668871222497529214345370584105773884372077005875392245355230145215842558186139555493969344585642003026422870684794344922278062869469785625377147315570590239664958616089732675460181697563411251493456050970397253773393833103824603832253344811576958805530960447929510355879719541111496454003747866626416908256716233222795533550154818758827909370195099167582655117071832950252057221500786642740058705366396327931855575464692286970571864209114690488277020353143142443574073275502204872261844640004137919349515716330544159721787265376161715357361278415684367217519596464911900498034277427569025778688894154381323376998060478581480170548601314577106775074877636020527441212286222511324617685654972497870667162723151844154392411056794493662109851332907084301661647452397860717577073189122036690234097656508519407416721218671241569681841347650526227638690498946032099903204235826592376397788379843520216615912046107438572106224311961008997341115435082767980339361181099121745772699152965289871735319307805358475859502119840640905056977203473101304686991467180473698665760221459288645682529736252377731890860438689954944149997247015040619221714612591614593531546736896666511543095242641928075708369440253366713050791067716439620299195209444760936604799843152499070330941784005262436667853969753539996791703613882943612038276432864440407836509012772995896649214773589810455735919247018117151289655010608056797466482772646545971413271320717073718244808735280753878634632920484376719450385298336988774931697815584588537153773369348816796007945920619162881687070284420080560361018070152759908987795785104789530471689365430094783672284695138550040408648185947018178391575724249931882470525579304083254001335866201711472987400619651836730749557488431148070827653964427413766610316287150587244516133496906400282681653956051091163068528970966549383040426956829554928148219351118012116909767204970385568380974048996945068611030014275938031165945972786114640517279739359717697477088704536111747210271186099275625288321213458815143314293898919053088098149408988913744739781463793971316917575501662286961076264608345896488927098686064082611668941648424222941513512211512111070166213421245463265667031382867376452689403643705981480162809428618804207606225992993582641427662604244129133904125238551349456964918070173938678987652081157848384880502608625023255292713802823492876207289782700966969716746911504400245773128681448523320418053217100479771645460115172109412302542364758543040826416862011455477918057834238339066429954344696172287264467781419457502940602106821994434528350200185859939475384509639297127413651874966485762815200704382075406594221444507685137075381186364364786378614715213581578622803524071753947881203201948977428451314859710372117000982940677583896789714248099734626675268867149329993839098817434230507532346003200655391227563023774573301092696828666451985287893106988080799933174129915549975379411790755882346510953990790283748109419534096092282493871282316713157634093899845941394745903370967918562984836423593718597804579457937033912033830395685954324297387202113691155441761398329071993828002360645164222311460161383125682259719547715430320404646164237803855543717533392948162302586519535351914315847814857147289149066331160237228523479280425473200632909920002081901136593307141326201571785115939433060123653346529565781848184290362022975830196671011378028927446697366135671613358690830787094449934629042622355290982461848428689571216783536559507200905103235117872923166574075365196957961499342494842500347206873630213583052990790897788219768184729233098929005066790667051942210256095357212037315320713415119802993162644517646757158740665749144424626594660036859167254154744363390317448666826474470556219768668240272533252639175498725393177911143078253493758141096558550497537496220686663583000025649232278076493518793057752416144476268893042293425594270083092009173135250756424975327157015415508792647084403414993776174756677153085286429201934798721423925849869089190032405260924176506294587687481629974713975071125311448740625280385180131458313652313954442572197095771102329036623072689178892401904486852605224618089765457260323561058701988931330353665903548653997128263310038354999894223839507004491213654008160980343334642212072382173521658686153223122806144691005216640832384891809351839424162055600484210445689085885885245579924724313344398379204658214212876130462016566584062427409264187325087286016934669303080667025433442713022374172742929797560805907410927576996958540719197565426607367259578783554423315412983485920019608818430408753688563052098355301889048018825728511983567484675100002691056252905984223308317097244969049402501836064035050381112165356808621977091406908726538570834601696079149637322579200527865027687540602890390416916171359742903596448119039882079793903331270509558795912873032080633862197826397266897184260058119008476277389405216760021160804269884909441607431255967387507740416636030690813815536921612002352018246291362223266722808894504268698035584112881646592497273176458746596963204123542436248578775501235546663709899898792195003428861740005803949660723569228152081717240979481776577318465415953027306764094981133731457252472674695630024909124349553776161299975457151231887840669177702177136064903290744234948507114360137498898982105283381357798509860291240939471085502359864660795719483425973503961740487799852791155091474773939770844173746470082292615105969704256085767404833435329188151663164028638525968452440097776149263292172006188690838420281087318415812701185728996813213774046181436148165416902202134204634136468894018760270509642151817626568572239392628140220276265212150928773692236197961840994077286928516521618295374495304222915416458722606109072128851516409118142698910549536611967780677908197490846717128721852361414021104570053444675805177061667283032491633566431308613995122020422082334742884486527863019657628905305953312388951920443796712956358583302589444420116926248326135479281467063426823450186592779502829099319224615930682034372536063469444610058950450621025574468677604426240805721711084980459340596736165783380418801353402096174000114826851216664557904978450739280700632248992388724074776097636386526099465453802671875588098197817063466957181768693179736974463036354936962530532763583057480174375230435076210163439220384648053202343970728927602294255669428982524437164003379482774427705635080782787616249301239694710736587949765491856814064691073000172828855951932345165928467785572457235518997947345909195503861564817488606169510993944354445305550904016082802391329000383658163313308009285306183922865748535595642135889875435377212110375644520705344513852869147290328196784333439597730012813817773499885825331722956747193273185097033616573426199901244611814643181769886147560026871879433603860817617891003192675337202952781925981793633121361321734229175312639770467457585171346416176387614654209169291262230257701452586474456027013074232987813616418740585410581892652757514334320710359460595160086418263065513348274606200782753425937008679343494761577451990543281228291005564487734170686262447470057715435153326225927898848432932939238571307691312722439368724915215331558332995496162678085086927134146723865003495322506507558059857685259909177897823809559294965454047612876811724242136287402391086731770924440453434765681746139525373866439637631611217715366005062142737486235686082711037965877640871683390310232441936970014196718475965114781133026145474243807797385369540228639364534834185080100736238373930512889048050592851154598846203153386851518025007310315290058345309552495957268128574133142808747810696506286619940312110551940518625518116162860461653857384526412983611301976151092389986020939283270303136344491506078560726678259186007809505705798397545059397868706166566450796595786156602680664183812030972376664827901555506918177330569360878484465499290093339410112476632343906702832617846164591190261184166354620470461201418964868958340165473791864068479153114483804933417346591138540352619024447876979583923276018616477335004227343330380398661467523159655481626283143899944781496010547048216524720633538268875643412648592913052098128749999818483142077236195113163291049965998494444493178027239354221186386637810429028968520823946962729643671590503439297995034366956343340314363829745476120757036016865858649878163389071586068154168440261219541036159001809062206174926551758208895312941464789889635270643364747088945088998494670062846530206836971732853793327805056235271161730890292174329635944797586503728904696622491881231362897883036511524321548542488820730978071387421250222611542148296700469916844402371964538126030113209988398527540415958907144468966885295324636329485480872739704526057046017862210750250836853539417860341391225571260417204675168725225414921670151135728198942020374103754510199573035690177593019786693801967958666159970300911821014883604119516257478487520103441712463960477167537138737401937314760010203743084912392430921334748653979190990535588623620516326745266660162573138728280149038827628297552331305724569713192731937646770451337508274973079224992061394437348195207254444895453720027583187251199611330369121901239420271455129828754579903520259596400391901812951176581015860096590534858732322159830530568239828540185648784230998820952959860127901941459697684205768611914888385650837556077542819226277665860468699208199937200586912792677920961052741090409545743458935471751705147358041089029605612210094010400601490562438023698179736756439488343993733499552602706051869484379899822121102186327833460953163071387279381545058981741815724422647668745170599771444701686060342050056720130539784147535537009741434335660127184088002562396734647582217476158957971731292011400520697241386096604148782234360511242387944628670283233124081450416701025604436026162972096712059519249324842417990938320411372721594211937373636682592725198138707318231734289772386139480122371077944395555428948020774874718705661017067531441518386494754589546436390278228964615482751247055722905039327348026690223257154393942298880452837273920556744765438253930924424886154751986477499989853377537021193096999219018103630133655199051757332235540814229872707292020203309161582235037032018105105954051609953914357736597540172234510566747219989498820866083184044859684894076586961058993848289702481019167768887852483134733005229314579300224789428953612943858373019907675416894962228880175825795347028768604240017313941564740686412698411222063500205406860591393852312917472189499460915083148936797292749832517027860365470861979442103216151616496117951314262533852601438728523474888149730091176259105219027716174721334367543712524109994728121293181269014136635682667536292185417926324752622807306196924923937163421173571117582759095864393597808806032310630343912992760710846346479252703317089059542531916581215272411197877241375763950039083400167766973860226265903661594739791807465017779029236882799747972819361463465705137781712005339104095408345432088388399538514096369324464131515245070674246066241400733679420643206107130460310806946552870826718306274863052800272975624296482924524847605104748672378137613754808861237597589635022094473272023019637417887452562572788777862454756961000324620902341237554069435833062641477482295156605775520064747437886654757155638523872489397035363003889470394200992754753583650518364213890404438470340307674475220909042788192863027119912245926181403050656149735137536945551739270421494610222165300730704113486299133968794639271136604044432460440315461005117493822483462818646229433343978148431819662121297499200623716070254699107751099157544635931594420135022935079996120062520823789401119296256322672417202153387374257931385528863311333230499239151161501700091535402302380761019700540146383862662302908591448689312630761927991979315251290056386472415274853576448555885205943999846628347401326141287096346727108429671171232485725919491917411798503699071826014329024008846926789365695324133154140786800034389777517756455712960230588593212386659598638954457733869702191686245642052579764679302724257039182891815702511685928017340560867486884257113801493422022873878124715176316117553829276089554000827102801718103326640309557805127850184381087165903040644088275409499339573640851390382066111446496710468809063409655731950348620603950125771658043177784840901319544010233528164610531717693882690104812612557279658758880831989556604246587284880958480589715774835435013903694015140584599102635773240911860696305186967053301376380329918933413719656494203367701248892392204231702866634727358043491664168944048437805477836040534941577354811214801208660882010834514702039933630273497688248655646919397732088764420898314823452230857889172576038096295583458519440901529699462117149028573440857493065314420289123673585134124969110362729430459167625190989651023689213024661058197625135593549648668696481554748758827859469630687902812018620522955805277002039528585026404648649611683547619563442551813419517505117927722140698059343536699701201660648975816198215853065590829571009770377688418984807787002593281888189405908916320280128719488032893416552552758515039848064125564262264974730579516258864809525899022143799813879183180122443826564396288395396819027287918660526556706897395052883278252553783597532982460073352239904281257528251185739437319127783627766802967124448241461298551443867942771149831031692507733448553079365904877790797067714264953403239275244864119940229752466343932534442690695056141176511258009902422567537007779099849261551442933521199478618420662404398346081075280140349193626141466995998138242618218805739179963435814936744554910985073322156904477659431854990591070164120067302574002772492457054066779350820474164304402682500250519602891720222121437863036496481027100185987833849110982569140451674621241308068590931234648609226195093277572723039007411821322215399107427229718920615767756835306195777723576121417840297834490949602961193821756863465357228698317284189832119850985149926934313528114000203941122881110855610259286761396264349858441560654782387718164127112818321908566867676769262137770840941906392340121383579100502710844923068166448073980535703670920983895860655767562157900751557594987675387339295318402813883042574805598709858645066595472692214447482161519084491552622579203182921863680948161888245485665034764031536566403539617697820760906965312284180199916894830520129809716232922779524028079639417671416756118988840353230319831865189847551576363056748109282563942675307621245184140687623842893697480145680501289524269727761181698878745367593248718236558377568978563346012694965431115753698265079692172123444657895924091487073136359211181942689876741954405044361069659589207951707365240436073756679676758499239588628441952285328616631329373094412787365890776463810783019878244579587511616674534171958087337479315977370728432507855563601435677116309974322121256076744248289756768021056303001688453494308612160834472205798076952420327000738969396818645306052890519245316554860132232426704694848663385878327933436776561073764358211510657568412940382470747855229730506412963433786622155707417018252917301282367890518129321079944913215221854205635786256955964266863218448837455774158272758953822449945796463196160521476004214637166655631918276916235129704982215772360758815621176900462550342882966441529341362803909634323328204163928984000209356252205227345971262857422111071455454012013421155010986119950016176847131883362459741236422447093153087738620028275840077235217503060478555677427490511716972300544160156372905373032713132029230522198084035895094868685126779828705568880590348047674143826645982903238549192524081234617648102045895069638544656137502966905720424690420292308260700157392979566624854847193814760874993322962790939739519815479260973622284888052258527092826601017748077638737423844698111456864656098243887243804932773401805559614766185258634004763204276016297173561153179624648716050917972457358683743119392100043179109252051231243736922752544463418282620168507426073261433725185133883117103216084947786277458572575915158579007742040798066333654666081164222609597059073717741057864984073122676002897426928600623916897978672888304755609492154381220180800044197316149880488769388555457907470133333607186739609420328675086732600299555005095447799494896537067605572304299982550648002546431721876483856632149763345863954577122941558540302325210631777228867008324910496222668801353956050130596656872414397634768442127609296509326582504988255250585216093670634320816378150964241100886897224264664907739740799551631186099014998238965135597920618408198685035873413329780541341754656932999695973009140781017667572178712809614082784865509130882525848760695039272514380285174671924918370000310283632777518115528293200760303947530517702317843129975184455088146223678896562099852748011797072092811481814447712252745113661244377666400704615163087241250692616963686864910599126622860026778051209417905016256286730238291266408445845207467837628598883307348392704231437527152097485760328898307784047764389251511457464805941923288860250954898086560920558336848112173240573931624280353363649422221550678920955275888921201067640117691555103453274296666410445403912509638695428810054175621650067823535401432430232383564793783150268950669004438371444511994504984541064939926211247550087852791679857391820732477723488097844900300514771821688332858688162862824038586700335711914471765455147854821134905611381526383409961416777512011959867988580793522594091612224312666176364692027642434452193197521358600331815089518004984043771554788623818020320172961192837036389926213939511098156746392869159583741898524112345177331728626719893258419591743506094331677371401443062861105238061061661510861395221388638612150130260014434673145493023061588184929420038374009367515934292795175436100549022453675081210661613856141412993621902765344938466639291382104022388708036320808630014019012162105449431185212651119774692765513058472220635161337653919618857858037111957409384212852657361491387065654350112018057669833979203712179227534417533362506146959020001732060756923980095794237653222121975178531922948875619322002158849004074301773528439168529136526864335025604287016853097087394958579580688667703793029713500910473877315214048069403946483233582417668530637075955618331743425812571700132516060031097956816925972597479634420076378583494801734067298403590846035143281431492437608290383835676841360866262246367342757454806944304620517111302176030724451842913753847691272276272364004640810456004086557876635852673233819887967441482792593455553349261703399085515816331907657603724836375256149708327586401483484692405921805895108620245338621920034652097108220909480058029228781316993623672542857016859952183876821964750891097893522187204402818734513786278573464869878566774042222009204737596890868765799915845400877399216993474863259730076373307721832073414719805003088207577881960579029210974484312373878238415301813052406670560347239752288869909366445503461587886490981167605434993727528400307233379753236894868185233161811812873801395776463662447625110490203250705494314361436802508323225371842594030406925403303303758223876038335988664659876452300944612153541557117186294471551447059167083382375721447866430372364539636926336139417897444760836064249248312174190844530866495575258559239503739209961059158662886322477051840183435187784539169252357707017294702944255606219855446791578886460924484934092811252889766329380766411330966210249798072791159256022346790735725269789064261282543854186064226488828817847245393700075731217265466423206548378788223456040611252879036922058858939952028473232257725817314262260412046811207042756341711359689033408480128357486179149726040824974720780395452338295878059378195749579416386898374178092827211723379199375005834266284734078391813625803541347576636197343901872598604793033306657383247304680422953351429514323696552692251074692794857774924346841129799716288118739514496318509705280351553573206961301169805801127577340903558412169895405014757663112191646746703970857645525025421884153189266137907612538813312579519111465952290130240949364504611407551039169385161417581168343974973172269599041159270289353954871566957576351046549811783727005661540585702163083560341737462228471380981418040143637431962518781355440514461058254845419669648435899731740590786661646707563925325335566743035680559650370778129361545695022086901893908151672804714386930293869848277375131295065636462639826961979677708681580276327623913538676481852391890240943192271813743366039743798893210108111151451348464886866736547346097814951494989928249620237686302779615404187614086088945500915265892071166885478076005988250742662838193090468713476584506231609306115146521768517230492558401560397135926761897719065701596236993171160704919444336357954961888139309624079286459337953271561494381462564306741844204610333630148974919856372620968863649932076204229816752933149151138079568896993157917899739095180993290879067213919687878000777667510890582768879329969943539857589854975906852774163716729212037749998406736146831671052779195511283169914458541903011710789442688530502499929514167340023250361393794129172457466976118779713353352411531819966533101851231754598421573754856322258910429560557286478423047844815222328274750059490347201459165328823944051708259813226984168691592957493585604493902177766811317101088951485139993605346845832163227193269434393022444221104259102823290035519005301413471327805309250741258006683679464658996607058624189633204191964076453236047390416677635894271247321240294217772004120160214261905106379487965936905583406311599882694115620715079378647325522861773769275501334191580772422732184897269560764351740011133938812131497076615480433449888903034487445685357782490837844420309896784209638884054496408949896141740364617058677932863536163178417932944576214892966038465927048998167352476782967051778429138403555009067277228917862996292149942770919659022093874470890218111973404192857248688389706134461260948228696156387171220216680916822048096330304925680955317512103220411553265339765841023045888237835081376986156008440321103805567583225351636526761205531049975887723287221177790766774809213175476696474347439790083752686772521346885950313401696056514922182384769254329661539276232016807004506375676723132876433263983100278035400997549815593699719569779268358547093291763707945470062796027426329151394112654259194683166973663493832803068037195693197840767471206055898961703771505778630652067486430537043257764862550662554833579922075350589169181310525221856408156300033794685788255409735705088313178889814166217787601941089605686831410289462298679208344104326313816816932870623947870138039237617491511722279375135734437818146701610291013833388391153276826298574894913686685383640779067842891810882748580898817085058448755509820476876220275048705291247738933188927783875836510936675599945649398726731433509652316573220501892460666825275552943716493803317849390699135432183656064170459105538856775505928420671085468402536177280315916820446604304082746783828609159749657451074070447192016492710689768670628971968430182917129496073295254238308445630023573811131575780577221531459712509181719832292940465073635932548125061558089865812543861325470433363350657584838657223717447432774915074718272045365746796090485583023727970759997554457814909351618036666762366935862370222423298542568310685144139501109164102055759199796759874267026593282099412358859082990851137622469199560931617568854823847714151893290855764214298382021847822453478077551143558965858920384278734151320046768128016356095157419115271895199710709723011447087343748549605091646217246437267115236725157723140401717435769771626164417413369086690377556309433420673956839058676101092948683109761917448045990521915181294762848824633228673963303381723433503784054632801491865209166998907500561530376975244528154566401041848505694728305303087213467642172097215813939479906193614689263613859505146566851816658834183224254015817924216828125423762451575586271127197653134203465279443666473201355622106620702980463472981989891115421640656430577856099272469462770202925193679271420288416678951342515990274950341111344650516548398982532795615322112721484169038854132691610829577740990239069903884860182059976296138264700461227087376323063532926092945568943626998745622728283791217357053960501420746150198701290407528899305116977274152849893764755239816100316181505471811670116834582913800812563752923100382760107316211015128774348787911570963410969577608400881013796452898657425241403875830604866012317102797298217712441494905366265775074987473225548542886956940634003570169537038706748066934414845056964005843195693436696206881157738622242498331705263794255757083312157051268722926149115236609487232088407385738328160723652028929912282924683566764071002073587195706933457679784222729665928170912439806162804217960288125054077840908151017905240939734122515458019626718471151537701495116413289867858164691894383630717476630196371304824638533747017641753570570861484778614727694639273960344374862400778641000160812965731458613572397641238157561681124309063292545206720241506770617181595618320967247875446049069514544673705468923582182254612814409247828179068365000909441359879660227218800873223632317570791083204373818406861830983748310473093473512193850606033130873617764523377006238097325562701623414224998908297362442927562959290800788772158735095067628037742745713032056652986662431927657159668131582750746555541086086753459938946145072956198064781220629205927875595707374731214034182182525782474018211071914116791888938351539519467651292271540418322838837638166252065617575805695939565720842463702968138049105029808093421220288239942834617363377988329173976715495083068766714163215663989844371021837754724286824409141258550403637030424224954357494162112248634784688367484542023916160040641274546378026203131560962614500991126675555014890294626044637467888355439925769191996773036916589749293758639737350820488509746350309836975230454788450689996110875907540019682213308555921006825193361918205991793897117294723409812811880322611854599189323176046520279136830160629404197158756958869832884217940212113634900510479666290035571634831668155313621800005443607588711922549760966350083798576643005089033965315285233222570812565591839070355862936866539075946911316972339638307424014735403448992049961132305444185770983435659235174764001978032336184884135819333246366491403119522000047056835244822121356402645628960083453273008357751062716520956431637353649689999093235519178952118261028470299621072759566309005837496583999407513986267216043739768482343831832303813042397315259238325363883247457619875195140453494400716193544000274322088763719968784269454645825360332592738808893515005666085453490188160712363947140879725777301677362690386221309570966665755599564183183568888065822557597330855976273457092012385823857717157056871000172729392775179645422769395198915776575770030709666280728584354907665559327247956567671441221808056348817534099015294019810487100647308577218676706419098150996879055204079837338030739198544606668888299799898746378603751154070360650901091421457007499466138129599216998551918826142066991104392504991865417339212345935528161236515643000721420728883007816314153345514879524269936857106356700755831834456962041498970202907572542650918690552469363331613841765635290297035139529565512530638718449981347036686199339013536470962096395862641746787586676444152606920643732195347128957147566655897365924674962127054644337851920705465464944734104510827054983143426519668986964487099803423394179528445087734022772702833046195068533676682985453898016085056794644135964485118894803557148672033275182979657260785508178939532982002878796116600995930494097872308610563914725672592620852032090193947536190471289860337016051631535310117785612427877502591195969707449503246617573819599208011068241802081619010842130394123849979228649124484587463188144717171525576468426336226962568390878110668194080096437079981549910411719883125601679799958031341375035516772816025449740899617892582377318931046640355804934895433178314237000048833183858322276964646841680110034470986327941154958531887034298370663794694560726569429067633935541391651356531150547002027838736473714568595815847537314979822227470585064940071022586906356939467833300821460927383087954255918256805152123212780485789293795918578337199106967958089783982312361642640215008311551279997765216943332838155596072821556873611917179065643008486992185130318579778925848910499690936966888333955079752085101095627839976481028220680954036194456784938727266480702894261040887636464521372823648483018437041063733738487500476208308462680802416373550265466832465702234587697864226288848585066381619168435136263787670877724588949707070925672632956685952908615244771858954952041519764442295376611348302057833324584834391454341056335663634412486073663072674218317721628883495188156603361781425171089450571324518405712631933169062967275137617102341717693708109500427322182408626882562904234754214013226341881943007500509861317959015277176314894184240254909855656496672401056903632717231131404558125418770651849949322430735188095390036477647073750992572282645838710037100348700680795733044884579854306451439803555237685742258585651027868258425615611755935088670039167132635828489398500482005762638362467412616591183706430855945307149187166745707635051369690923757752113769193955976803575511324423101519177886037560210871731139820865940349284840555750858713085850865385834110563495343507648642308853799734852530969633512628605540879593108164314768637729505615787260057364277299842804671097463260746491345486006986758257926548793109537756321926559697080070074019468288408179686293699184384449896109155078595245503491162188870692124453035380267558431288797495033629260396791140321161160513530319966879989145184536116055455491868809915442265134414418441934090732083663120363263341338659524746399953488372028302119588859675439243434915317653516951368881494097127737555537791467033510740517398482691725333664319653738805791682845704322227573721068877421306241714932677569699258019855793823857704746925453674600461810048560282139516305616663039965928360532623790181561579318625961449630753680190756162675668568652647323714934278977418979064268113661967934352339358680328061032487149650255106530388880643257974339392367196283335626750799110614313207867051874842328506550540597233938577212089807396495419772808580650681642390392530242000090991603430706757110919687076685224663821511390367149602447275709672766942268898044686548017061913127801058207962092145078270513186013137679219863092874653057869704263306809548898608946982181017660642200326559837073988300804069736284864708233191887028124407277709165110937349156586653679338340533777210707563131087001903010846971306591341544369620006248901352947424208356708933144459850464153381655216357523352700480405039955439482380732477238221539670920370487655093943543768113607018853359667019641229781593000330625185021601071580026458593505768524528627487071593946781266861276031047625570011663190843407057701471218478799063877595803017895446786556162765344626959026097592029010544281752000688274148901871784709861869274627753135477321926043938211748725723548607332197288023842737114850294673979751175543318866102781452214682800880384448142567652720838006729883187130944023875420771986952599189458149139513727179663081180241078641382218846902616928626035346916894024821402686639835208747174310012889205450790866604081356043893287761834664289312208976936932296498024304165985983162095138484762147160230182606027186306086499948990927750800288549794335173935683476156964478057062257142320623385810879944074076334022186307250286110402474110084757252059124905755780886313220373480221200757307336896601211551793204013071031639885237490107171593340073926177501145908842324872701892689856019242238930690894037747242723679653961554091218252133910984857140739296972958092439511951242830622897283640292601509327354092204573612078715438084922190592923784037274625080889520536071776346843988875207223142693613857152858476016175042896420581418770151133723107703721906064863682714046415710697364757915743252410314019801467847667967776108979412690159539198344863559894041776325250294993849830401042138097465287815886282945112256122681842584980100378611609166438623752219637457982096616922691029386970520965912772316646007616298746626011587575556227607560996202256725418029069340628701526295981070009711941654205039361626486992668542454679940253660256934295410705413745298043949550370375449068384155068238894347695640503655804461026697389527712355017118525949410660203659653561937483142253342424784000211049899082341470973428038031510543043396407067945932954782483636300203805856103368912570522595598056252359934499976766762915099330182426933419768760047054352304993874005928458086561992121195529213285679588542481993208691785992776175927896362736152078954681733859667576891592470270971034763142620800110330347642837868422060213687748314650592427322156035623613511953417330008054094876450283464155353676540282630467494456751076835035356522046470829679694610856340091340623333413095853960891798574517718143058796678613372389905154539890503591640504047952965365301583886143388575200992086296548574689018316906779224792435067361059274216462767961055243241259326781755659682669721413820706919900155668231389855489752755689424118058376935055373017894431529313891532795623366065870889231036001191611026353607161175749753912071616758549854340669528697874066459476462065580727818649295950216162624778355135391274439469899260305629845783020398900210904796927760517672888994496099601957024987894347031225440522501235424214172808268995822967747137345097973622187026272688042292515972471082564297461113020286094686872551565855914249627125522475302785919562920267938322188787630171513351564724581814985966095416728051574900313656899110196938154240387086193149652518465636648040146135835980644356079385962207812581131633753982906202068995087785098278448015685871325285004787945870353743354829595089475063125209072594605975003363682036476095126337065066415552238852414276383990474114098381871671813807909971584457045859452795226354940292390576757092716867059371689020840430366807292949020458811012511432132579164038021854680004263697173321337863090951328863403607729867699745581299210529721640685941493284078642357467552987917620141739810796277655043809158438347449479914425074464840579728757189690479664548331149146377960680280964745428442712963313400219899453104791946282573120884297926064514252179810085123342653134187401945531925875775185939184232806044232616264768516542244042231558344830610379642841081474359338052862890253079302425871219514086581389242861617666862802104362768966744688826325227497182346555397825360459616095849023474138009879096289131364942551578014070881614256366135690232958708756111729093943145474529829437975700487053151423086784228934374549928399317693365655630307626111349808569063367818985256696073214201603003072065461498865119156795097274166881509356428227190983573613791558555005638766178864735844220039033160404714635971421195143628111804197816747431877141620236989224521080339423634782008449506844836966294011374779780132766495754312990983271021198397127033723235705244134280737976311136271492632301010987745800120211596348490337088286942765244421786599199412399038006663942162055737515226178787815341185525230965924359438318574029167077064670945460997142754151777002682650426949464292797657931649828949413048316879984821361480080828362477610996294052908822093613668879108292170064616741363491809206173793968418060226816342029451850798419942094684762566041537768834200216428266464326099853152651620423572709982483515178148470296904793420659939703882709661264755205470311888491778136695191119268743196113037264164638959677899565056043633683394173389299179393353776488849911177964375728459559477609548987959782602487974507608345738288016809847458431310266232001386902002499454805297074857847780773327396998982128640731877697954599062456194323033374941630639631952604295049838733592507809410308512600208788228246647909892899826184964431813067313616141878510099808565393088082523055822006224746994952891156978097325065781836072004903218546962203525852699002584488993350758411264713681619497995939993996504827136614100532515739701887724929081568407064212622985332283327367277690279806646109678560282713826083698244581667351020476858545608857650174524851555087241854297807418115525338684462133300770035204130081355364347433778883491638477172808935429053865823989310581202970788601685403323713659590204821392467170711516946895941283276973076794203733719066070843084920810392466534893282205023226148277669997516055905590408410244300566046010080808694572255835556443625664526820952072164679282395087323047499950163939070140929824905139907047587724874965772205468397750341860977343105493609858924850992470090436612751450246058149787848286376250624914017917527711117583535462200862169430310921110036290606168068641042019070588415949223849149878531115037071859702454670740432767012933395656547257276952877564760794457511509082075512121306999814707073504761625710001436759334722275414627414093812267760414157423103439799398500745686816114856877418677968479185826295658186671184420863408259069599279644917484375381219743472751256212116872612049474744689966062199629810715133624184204817113054522699608062053441446146441816992305514551792571935858389314168785235176933351253552610341546677483669707997306126759199648677043003448941415306675360054242390650224035118078687199129222765822088553535824260915011118680730979973429896349436208637663310018227006216089192694649630815008972173329643623750492303593745930330427448887956764810050939838949666275125439880108836180492774683070189421584474814616051451363216820016027750491405541731778957468635079567270595485264548326504457466907630568795661133387204682023568956463955120477392616397934744604384924368085884569812765970981202904713480413548941072000192512675003369536125804894945256589875862669469393177393418903005850582056407469721100117014242656312988885619897712666548206875844052091454574099889923324466019577772171673352053143218314370901022699377341947581367536158022419880932047818468302333563404064046074202124584185962545676529196797968567361702548852744129083145655152008567975092613909358402493942232887186133259842820215238293106117199500424629404585302764658017957166541505508224049413977755932769125838112633945345230171645035581583128222723590610359066617466362951571193619858780566142793869790169904025478747921738153552279609581561445045682976375614079417297567376488156062148431645057469196278632714148287047733845520556589816775313714713241679956749309456050031722695429039509901517845690524178433432458188687059187144468777693798720440895479317801157754805460329705688715311146146967426648341182690044640117386123563535960879843724967082664874280796527058342327365580184555094678050885750029309681791810864243050551289695409204209905840909005119642704415059004675801094160521372365437343743654798291015093252808338097929784238159206301359358897408094445441758790545055588547227800109630876495532574381767256227580902955703203878100960208540004736812680201919616699512940461767893238067953333311797236261796540190875654994309565793030496094256096149071929809804456408655926514235517160040119478522517752229493034816183493532668864108755138054415874351192232222799789586216101812574877553441409879455545208412057340300707287164845594587574787261241535197268200417210912674699863604311544845057371044885066590719001799464257175955518814444063372586289013311220103291084511965081865552156196699130138660434697984127370160223371289893261294107358387387025434357993921680439354036965240118539092731017164351556562728571411973364345619986028846640430380830734485029532366110756010830347351812446096553053717242250827852436334845824622220688118543597308750273975974062026514808805427541210918115236101261169786982862891088344732114330416277474231871009598561350315306307720669705091832820298500325747603824444238249348385456272598426695530549421009751459996964757625031708664416064871181385505680652854189604669928611194011983676807565199819727329469355188032832221817427745517444977664843336784818536296711005436912226784251574915377878568947993470100616534227441294183953596685229905737378691305989863584479053217169232203488734515125957913284908711332588768433636394513041861606249676579060633678911140646405181507298929769067805294398116713255335454359631975814920699067199983918580986007520740035106361323470362398078371413410117891749943850359603107316619000177173184267588483277166183721574918651963418976205954961924863306229494034819621307650526406075614642478378266811451344943926758411375302726116614372663353178503916435080825658285214491032358448361017957354568810669986530172369376426462932164437644747985089230541753861536620971523939516575057593252468154660364238750805740135002988548397877608097900840697330888703672671895836178492529040246584456719169142707549060434909109044710266044194650384749469389361505850794330351440295556633608389093162936198503846917367118322213873988234156300061974412330901873482724022667944738594015772344755416210638454152464407212346255511525769041978747197723638278679166636052511207594495474005371607531211931132424505599560120264467838188010289534844543358741299462356004934815763721765003377735830977587290328429692708660254574772011205988330808473479680286808079260967940080433703194101889728504423482500635205907910472911035407306985525942580853166872536550976454997862237623605144436464772617823880157255317768546092650683493468755053721221930854090853539654032591375367874551004937563175195483076079575207543659767244131001006890792145017922229377228359838591568461873662465214826091612687553024792535610869075651445717953220992192218837933675889162364293720603349193558493004955613569108460289470167933015444113764758887415457003351051624240470175097183071000560356756428782611027778447754770382254769958914172184859390605014313429874023947828520811448594140855823220748363116613670584786829355306565846923973929793772213774588630557037602348237481478569915976702605156423220809890569252796179736345887729538396416658632174972452371922956609575798659151711621185614789103241167647754292640625806007619761900377412751292958337751423429008688159866408986494525061151884563497642419691741937590814664798345563112624319827137057610784438402074776704545127228680465802686638262720277233111537791691718820084022528989241254067843687818430349488435409497347442280583254537453318098442477416577844723659993874693313485878845099928703269949727865001519662875932096348146247958586727756817574035732419712609789377448886005036079715329302119467365224958016153107474077402348659872917540543882735000395227158074559681320191614972845324591336561161518923268372118937574357386523240318313276909188425978507298526843276025298898963966836388525353611690327952480998779169029937317168824343484352376567962887116894342411231262160393699830880886124269822740469187529661286592894781088183257399051612997418941125385240881938296731184970060778138761957935080669119132764359316631579710856394220410709472476335080842499380601052354565281844955092865116566840974573040945007361522032844945736553531541738108748996391130993101577546637428778121117351433111313042077496378933348631825551165248182306559602010329514097730996593089147375818182863836800082237252057510558137280822493181554201083193940294148662552589046312487561369938930154094049951021631568378797930794394328489862711734698695678631759953820047551048244802110065563360470086937483522472982380435850473931323019817362428525933832379782465326082545519293282043145994372467611153311200851410251141166308490531131844386342424860400516820039320196386084294656159516205726885132093699216175289132186844372763068743830857665032426636425595919241763140517636314317734129694863158979287932819168723980543372396053189933623592224742746252518669592402399299113780101150504102941890077508705850554429828908846649821342734862683706080604803340792563740784853428736647171688116366900606828196683430785255161752716007083126910869634060642913215062802807082810035731066880185837137110007500622792942990272710034548972959333537539464962797531322951582837300913523592396036769158307352616519189467867491032013634562682110349623536642170496286350397380761896188372164400577713490902412242615848295824702949107213856736251078347073786593427624515264032777947580409343602018094182553588255034321128767164598651461439782396993032846525166832892803426653910263565386291447494395421394763859848595738978559191902502329982658295770681319744231471188450418112682164901734327984375898258772398296963535514985745937455584369399982875161882880982364644444318624360349041590389016090089302509488387265724718289936457542577222503334350543251787438750717203418126535319848570757032615114109901642076534717813610399799125171442936902992297434978951910747600134186631515628244966070501810757066283312821189245251208226684777181129510915271648055408958794327690891471149605877101475322733206007095632132684270800292956550016780992601061423888073744594983989285311733680468588225968851420852273569673953066092303961651884100486534000516022751933334890104562090980860943511229937449590778419377779691505419537535160075179963271016990448613716393759164858799238074209992276261433755257289337107839298983442180677105300422249609155003546315026644720924818813055649806635685512380174683044936603933794081667916962465218309639006610000454536550408891651012045812514667766036493697851134185830994962584391930318838920683393202868898578910900924359155626347505251035808076833229415949710937237244110927911319883661146012704426122921500173429274471533539097314459646390996269954142329495762847571848006636637330984772131597557368685493965056659053771402021694574391927681616168823827763067941909402592549141203483328691116877840752546165856124178684520300705095270615213750279617009499334474111259836564738001829202235192331410361919879200312372808158462276788274603063903106997299108413121521438424650281557612109344738735992388898707066758958860226790986816881079149256284011985354633064947295362416831535462990835175419769923078409527293896324388330175531105007670480718963019036020681622843724243023056382357421247097626082614603431097391531123253351343904685703500987127688036982558262447322823449743274962744506737249839234350599550069101730133511675532683533227373581990683696874058482367910743062128871329286006585598452405170123010096557611222679877689774924926006245632421716356708469785595458871114472832195763434698555047525227699677409660974740928892291564834221037247921949991700857308691791301640720937856591716883921542097037351319339795801736236554997139855648603235079648598143556018036866480184731684199196005613336374402309859747107098378146967590321440930381136787708943832067188912510717582955253437370222775414222263629877886079703908539485092164192471434997991764834628746141287130493706222921198438370910817255296367707555331445139376431421128291632756443697576497576653957594743559343470054670598379184710288765515863263709559417319051660300726779312810173635277247930305329910550736388693902653713540341121625948062577485075925456798552971382975446390222986295994252367498570746051902253256360281315759136752669943872866790419513415269701561645876199832676724956378063443319922179008359209227126605270058262078220481086928411790981649258950290825466850617822168206415363912216562544593786960223541239583845107940587772803520079301429023637897207625542663021643028207892520708094776643039068358294567208862004099036263918789385558244011727609067055667756108229293135073339471045285304123329061640889104843877689973992958616299395327065410808030153284575044245324721246419388136448745127157389616154910078991997098690398285225641350636396124074949513322532949868630116465964108803707330283170228448429568676823519824875521326504403163126016289476789107900299179855535933028617292786615357545122174613769931759238914334477883861234330740473536196827920012568454353170715036863142002823510391882702637863080819150836305471591770495983074403542260484462162518725153350738265625944771738606154391450365630509631836715453980508728467515526382634411816972601866195177543457991900451013488191920165398926596004850226961824083458236336084994671982972030079502185975089876307299524879803467175002075345883676117297015955095650759696448111149008827401341962303294119781483772955580806133791603451654569285800446384914909532401934249421959120162794155924657577352636366083047781683173604294560968273236163460926176207797948312791910123341570864501498882972400223972431354543004353271945000479575969846419635604505679943678336537995355123105113947017817502363560574582138735204411378720398975288176746015902841278792357714162059733162352658340399592099548014471964054957558973205133869530640720395543581630701858867704700013766385083445699271395741661806289420481028514240229572939860299677190149506933164340231191102707138879161697955396623356154756575563288226799036943383920128919085976711295305634619910938604833521885288988104580368494382068290201381324277888153858799243440032695613821367984403179817508902020899021947768838647366748930034451065193539028638427623551021417593228669717376775006157428692648224034202027274560078610008235422814154274955961419585137043199062072789939679950614286502896257879090656198131439861380355523430843964039941662482935056249817451986672914640945704384438010862121378786642053857618066628946985827376602340840801196290417351098409074093332067947206870424309742050996802110809328580595656449238803056145874820116456177105177856471675832439156346623497450696723501411086227685018272754135019834340768319823469079191381657238636488869543872486079673858182778656226951608006227505419692406594108116054732708226677008095999218586728684171797001450503836481106893197469610271726142139211815729468125922268169057560267520139779393817734759255729486435329479183731395865378452037297541649713430689921379633347050890670417984452045264729027698270744772715116033385319848432137251992352505866714720165183246351414466714541561485247351821512513586984011329012296634004378501165395202304141579835920546971650534752882364041974891510921501773874099334673824814253652178665691103777020781908651413753169054001808290776799014289266596623438685821273536039446255604158090035261969148755655618835201996989443171412860067861840888111797969407955799025577996791386355128990757246687137102925472514996892669156212080381698594748809238609683182999959387833536034978486790969080222495343040876102064882932914993666826791157610305449457967325737529664332227986432070475115689574580927289493162186025461753603124511262225172305707600281885127960945808982237460207109907169264385360106887626192272921355309302606068661646939812802237563618276155733247646036922402398900313972505948763939666822075640233392208460280998471969130611316230690270518850254629827920253235815154185316116733011076963121663017650509653345935906204700583373068420417887362984134053996283170510190579986209187284269076406009056336916012342064111614153539808630944184132720185807178206198234796718608682946158567763417874813822121631584521903709298714700970013471456375632219349332453813662581237044717241866892818376577071753444905304371947403687396913940601970618974109811581922994924521801833256247085603164750239622709385414162903359993467295652295241364970997626502599114320162202964692514105650965027670348732483017177495046077271108092089048441819878621148663137841300016808936305063387333897558449759463738884549471163399631157525168959835507407417466514174585947751668810944335948287130390783568291016448840583607095733330693963740187060722735348486117795730017898522105841965180043492966062375482876317904840665307604010956615952360382440184038968012764339538781413740682090869404252842046821305592559528413445266230840102617442516691337811295812293607471121785802083300584959361753223487562141621637318101288296884922105338325993574890365778065629584393418868017362063192017555346499706205257609002222735336729579909110911574221262002423016326186622725123270038610919056782944215952190900613346288349519195511133745643326728192733875225797503525269526146108611678082846297953637344634477710272516238188780230855852524557803704087705702790335438669497003680410754687059175523582887800042627770010589339103318821229608511342924742046643843569812155805319561156048181806957786893503892131403202386181945653382370377542859112110656922979594307264677944617105333925287374018877415152585345023008525594885333352676852903486795568537309856059250742469016397826548163304927067071993428603393229072165347575037216488468321541952851959967181674510232688091891782998730804744521151571339517371068099381761729191860530928925209735482350645597117040884143027407476536410570887758869119554093237695735521346639379082592342614919281288871330947984355236253081363974943837182869286576784463066906353041188350962555816249442319211064014253355552942843853342275007662251340404540503218811496072920246374136372729149985933470242138925006700961484887247991718525040717211556134163734306571772748316726088404384284250210648835803289249258115866965901986989152737425042794233960513672581181453093516235074524076094753642416109711547161834807431843309110025597752984974507616118759895857852863748501389216967231102118827847587773620128457419116711763922117779432905042826425588003349137288362825385510563138029551370330794614933520057895938143317096525913123592501343927619531322628093829382433820957419915020227561786713622377393093883420004946632556453798125107947871824983283464775418476497709437904808789943897303898916399513995163550507306265066607049493217625984972126181964543160385426243599737795534140386524596818882750683454742856640456932795099278516726834510817531371686371970546417081225192077302392312974979374366616790246598952012395042738674014566424552816152481281795850692263346228195821292458697195782532728104254335055855780648707938736772361562298523338391016990568547307323349812533131703261179337064436404159694060858277027472702964162306199376251081239985818593458207528580839127771439726118271896609775698980115860242295571245120979106668638103934553238861390564591484645250102306351014320896119150547982462131724964296555625103827458205117119032389873506039338279418301759375537002005239009526732289212017980725718269087732836265643735855948955674946412445208490245809891897488493615010585024090501537832416469005019427824309169760604614584956564675267282274403828413934110365659678563950604428644180116774316974536381658317496006657516623544777141731673653450216633318200228664911079919136532127359310526891964365970659796817714206661399412455050708566973869091077922430825031680898657548804191744863567654506411430469288767343224614311578533623254227092151345043642654848802358725017583704805858618986551427007010304211327581956547122304669261382127325327894281197562228680011758515580440036487661759733318359960782894400970250755561494331258161048034707012401362531124639921354685455680545982311605145626143486037247392141339510511064552317811829675487560374596927256556786643765410489908591416454732558008728419595940336046660605792115392084072201442502790981086916023663600689499033472586416281038116543389556337614434122049570869750250356086919816703199691023606128587820551837267183508606535125726229708021164579045706345994590026651597810771997291373052838013342092868253220113346449158531124747330779237059839317394049169022307709190379016017493664307796239761002185671816319897731932386630021451479487946702642171682593909044999706867778548872117633720540690261313252750938312958206431032697856459178905503859438965957684652796826108320762152667036381651814558836918847043802219467950403812752436188270789765814706444422114494194140937055615414825421763023698152894189566537733602677591772130332437309797762353445514153113018262436894628716402952977809913260636938261446918602285233308809827798329541681811246493976749625913125653952704117761600360526063766816484783441346556745508142613162996045103723141702132186575403821659881043828416198497659510183187136694510964544315716502376210082562775467120690539722198336033644719241263405232071335803343946109855356583893783284356996226663211556091007168977566385717345581190668638419214886807653526459562246677734733454379318121144302513915025317281770985649584754702798487360660440693877433864861572210011403158755518437874792017370852813922509809690455504020015556037762087024196496241627350498622873610742578352041277809893434836219132623317181852214617618415465473235223442886241272353997809553837329278597177517383291429079448783047617470278236789206479341371380484127426609853625678987411178982229584637097192467122399109886802785754320898167366646881060017244790863336607425187442107787874748812974282230180397643421812892794829468705792421499717775339823474580887458104052323646417847134403912984415464030593663401499400594375825123456295201966269902143786881775188633277636736362411852124568730295859090571413468478646035281440386895168933202156015849047814062850634264059808701182810679354737558677255408129856801759389523601285402818993895925336371722958523851648320415238144344434006379542728106361699022318553820353209507981129451797293227444568134394867376235459189983407444035692237318524047507588729198786590487335508296499669976813260339425458049481712470675441235846852690173328772969915414131456928117089445649644978122454350339550693469617263175566901446280958098355096317477507700402509676456542928343945143942349146517030855545097231972115449715225577468623422659001028057256045582746847607918457508701748080044853286419109606993151293372344143247592809771202826469299008201985724405798561487208234744403767072607987984468690312519447914647036916442716948625503877442277012163736098245416694779819723506251094310270779841926304675734907623339951889400418701479684354767450183025666269141222217922976906723758442676447718621336731670213793210584575663223339135604861362544819912413386307855563587693174696024111448620620579756907667080422063762091252926855650996400319767184343140821252968048170081873689647294602770055539081804242459412245898278405618207189351416166079155363464100499308405493285666615682538368401372354812216583430635025922595045831667741926353708274545497182064412916955836810521336364759181546849043048116001649927717201786768445738482903266389935078578531538978622812689707321746985439371767514890913679655014961417343285763810854982289752804835098141857802050099211996906199000431309416052076985986864325637388988000501033846991237623939251302426011396578761344021439730970428787651135156616501086908111111088386587346924782458442509361324212282341694047909071043079332627028297975889577209807358454040125365754462157972861844216496933834784765246630101674057332250808830928150954924644579598107719988995615384203915130752534777713233404793517248071673142469907252722285536579385433712089350081629757036711610150680437336622247372949233444673628035418383321435030832580645959087561516700398064057661845303327116408521283140353617175107670563242728443138799778777135999859122043170593821209454864145080148542671652829868827507665101402639050306058151886982944862794992960102742862384467103168346392554370168087065751869834507422901806540847553180278436728210802886538535859972593214058078960763946676876772313645543488825129392636463134963734868893793925936453678611801342584351584023855155717268414084967211723179289680642869189953070755702969093489031756478868542541433879493834561636522138547208641815548539425141249491329875648501204242042463067639046530857231175322403583752970703164123815249826061927018172996726923701118175093344301109217022824623010870056871685439479869858750579208930902396529003635769458534118213940063173249137814038422722759281916100079951837504787331353471087635715341039913608159730266226039763895786892544510624159008029366710229544511963687005969945341080005302903743495693223405460775354016047309483077007084915412531474503068847762597836799139399223576727770424874993735021586993253146161849590090961649320894364391374112454558260663028897686712805644697026776852245376418841757065912584360957718793614564454714114039876676770460201906023153773680324567830521130833287588354603297608281421094016210585136081890982521753407807821685702022388429595045049639577256583961873283924393994146544789316151554744493749667345136915057566027893663887191555202465946690534692351070268108051798016690299279359339776196739305547697771835033738504098096463401870197931807876441901047172814204952207952125199513521181017582841668446288880088401722791590092437729557828245211760359608505456811974876753973388120726129332231034476093233894688540876313654241640538349226501715417329481937573426993119545140190997511329714203061756578719776063120879380345397796896062975092876616171787432526649331498864950877457714524748031959608959679601755089993981575806108441657563538856630722320830291577887755184254728257032237371270987960620705748915399691547274937989972440495935283169208516799474740956738150460581952166606080628339460991013899640025301623783855329166653478476742748023451353596018673236713640250192727554813214450135386930637913861674630133185304014217092305783636092642723944084345519885275388192614699307334125194471629926201273065807168919014745531433618353869364791624731872973585900661876541441091630314496374416050341608266190376011686328843380195935185915046159489139810866446939483111760621471177893090672712015717768636069734661935576364685144566517595128778174341097578300997965941008609701090457854952652948380118847784431796283316116343720150895136496549890293123726764815558255647360992766869388447458850844077467038040459263285103281708836046977449533355366306945905456383130604119337504835335404053965061820787366435273330608976524055211342413251692640553671806352647397396302192127029058168041397858458354752690654931286939643427139091628988557370563244948088232086747224906136051368581488066654408620418349920295851340777904545703197622740093323624307108276471101848106090292200792672092945979512621353843989747224281358721321791237149084836473380105012197855461425055530176645995822117535056683724011931405986982933969157670914705716897934450735007908977739876821559627492097431464423165653486523802773371286690936126957740565057865498861898109581512018981090586148235057770830509772851520504164695594713549977976743579690513580010204024724633314252816993738186942564673071624444159871414719245031649936828485331457387859783100579650375187591024315032868538094412232909916243155777252998339515089707114107859112486570151170039987128839500525506125581164789995759471749749508318879200097568048159057296912875888872992194035625468028271235806838281887750529041362993040281421732923897526549708399498907798545611749345533651592603654847832227858223210569549107572578035589145893143450254303159780398664090982614732694004167039918325823276892440388482130091885389099117053414834309714254886308211409033412204616145964333744300472660897041753104636945209056153843584153185463404806191177650001178384905367300262255512046171587642607498265710394189403756951759191742422984076977113598780235246906893036919406764447168020047457464704739949057465042243661186051257306541783781717379265486038523853730657996091650052240870172814586304296880820264822637692349529257704015712478390712740605951069273979300049182312766913377939163406287443138399023600060400840570098686627084002991999872069736640423409466005830044629797689783936088221646447253887880268765839818140233886296106483876046089733437507337261192466128403478841539551427586602671322725485846260606013511756566937269693595541145812713986765372905676305852362700188951287754654615114824785656138412996025735540339601282877945149475363458448314939480818441460445966005335624645631652288312993680726500305143553359197159006703138737802941141303100408178726204275897941904863592614525801186040867984128150958778734167777887436662805084215198438320159645989035188415873606099996300533815871919317346809964820398774778619245798505995577674770235949299351411493426266934145492246304608657686680376092980131453792675072132430100592402534033459268373903841172236346934864004083373109720016450579869306712227413269697413445236699575274643634340379634138628542681056505409173756754152107148493340174071761298761274191382727734510738834519648703797570933614015331966866679073605807378693861809854934915667710142197039180885257834100358722716419952627911386570819835835177120148657973271510676314731345580821052070960645095162505060543218384137994089495512462120264703317124170907713370299922323549375802314005034324390542794323335323020565599829545689549320949279902049152479672684507476143988445433358888009984276373676739241867862278353940045695911449540639495279693107042177554397078203064468373078465178923379925559461961089858367391777511691112178508165596185943796259831317348872226278317212685735863210871374503720729909932011589588463800346038958177806906334269446675237326419185902953835518413607987351150850854631226138731828591004760335867478869354709508864075716986306015378606579894491323863533306268178413039266831260459316577783564838172210618470141497075436062971949079457646206933939584435405222699653929328495147014912781054430234092819702984839099722478658602490435166621612489625833571860877567197955800013621879348018089239471643237168711183901878895994694204558017302478684385686066636973302117151935701485486915823881665423220856447398771036790803485955022659758447580105981889304587502853672601488662153352651427321459885106109140468700371692574733532717348127636315146035368068766308455045758502992867344868082107832949642117021779028494964133242047939258036701121138838717244963448518207686203937217073456019029371453322198460493089840663085959075725585956703923465529026000138995983363749042414386830936247014855306721543199335056034391915514809545790160428564471297409942690035941169923408942675530357396908621976587176272269349841487936975119441272960718134275170086578845497817285583779116168028070214504637836383415179629739635187072187047519084688969939553801183323048336083395716732755779477676960652391144512799476314125917648944191175186478263850557565732319736610293764173441224524186846559858539622455006308356956723481710108780083362064342859911485800897356521404118595110972059891979228602858044991659499262332219272661976604644690307658447015100985406222047839897363937208074069992290271604379069463113932377886705430138282456536004612687019444867502694122105275689310802593851533204631239532621423318486423499001886670332605912219956127450577289971344464407914491992708456272936547594552442535366340711928207497225832010810933574018079355446258606462328321109367426386792367602151306001787739211191134011325439535033275954750386968893227731222053933119745225458552270530504854577984851990569620054544218958444782230279123969877828789531571759685858333002866387394895679978244753299823070416478320747196266771172964013092050496076077496998723327901975112907046169668509082987266721296604180333508779952660221368430994016418618720437131243065269544389154212369177342130191878118525621857368452316715148362757678936997383508457439611083618529539861954812630350160919118294393459014541747343547940656591927981558650739641221496807028699032729738105993461696451316895433186233248297585230773106177593710980492909076860665311854247749961328721469518341100013769623405976164890618395982416467672176288411210675281877049141708615909589998968106795432163592936441557303882731285126172180309122802744605387560166277767287971427451645132108708046546150736373462028156978226903394386333863094872514225557255987334226447110799454784317023116973568825168335160047666143521406369427356695484445419986049298087654679899056183976828572009867423368681473311970740609592245820637695405666121710497881011303709373955881330621178386075663994191179936589936994924711389202794198328122263314381894779730127599825221215894268168919706837654854077514560355491437059006609117675346065257667991762827979152631023988126102063695776563699391337538662259722168098937499409976700167960917410521364030834470042305198083503426974698655143047804489783392322770907288794822203192569482010035863882960927614146806198004100301856861391223901812245808836348808909275072255457620113277376344729941388858602815255515833216752946222271142586099353073919522972396131532956579385926491105766303096281185141503989794646219222252233460090819028237053022596440625760281438247463593042207509425072493768253913907526182369506513682132654179108992526950073748636136509077518566365942438875609354603570735789993646323538831356854059784898956746045062536349284297046521642176003029464917074290343600932920646081179313968551394507413932539715852524269842791227332404359403183637988110861399311300720143454894066841585982930814983713416225068163145152472945447023189361671505791007659268314369119597416199564108641336878066462270373976466446472690513613170580782139507496721351709667463358860113202733512430595418299252495835908531181957812059160950427495285282836229228586182467265409102002639750910214187427920671574513073246283610210424016567293954445448322268523064892753545252807533713672487634742241534947590809248660041731348875841457047006386346687277172481106212804522608972070749536077496163362317023020746675504841204223335493129234226578440665680899125424447889572481468511395726339101506749180759738162586915815412850819137998841298005077849613691683378282484814658671616290696858878916637517166226158076508774972302333522404530751408947109409331784140433881227804719650807282940671204195193802739690785190017421261678699315974967532930642154773992545589628890865175321013428457993099025164714031435785923919225043643514751862064439052551849018185278710730179253476659620746551818198587083794112750590600978813845139304041283271462898069495597924604008439758079099325023356159333861215968932227425285089930719777024380363763330156016021513462796284300204182758537725011699915598370053966135059233119141252330271459257896724478722316447257073235606987068540685694370898394659959982786460431433982342752790239242865066190918784305178484573378926922886537523617262613670246719254963453887719463305163468714835730687420018463770100169911641775354637048999088611864111827957560573008838806204142693596308344883179636943580407524897095667949993363394057283010002980957044267666540532619588702828540222368255141119943668399629008507225310954706544675737335469996281705054522338091391534416822122058061706254711979864221700690518910812671644805317409589881256295099041255044300577788692796227325823360948871492866330391880136602685150402144968488319726565599855560955880445234321717766563160266267118288921791093007392770393874060739658874964338230589592463345435409921105007174416381805694632472148577189395276159896682185516471196377865976513038365505955476648579726542912047541795639596284360202366457902424683277380079640173130454449685405983856749866216680171019862387568872273269215351375886528756579668540316479221083444026713853395440379826145008606514032065417213124269580803081121052552692559375265429295516826680338902314971958872053146571705843231107635178455495504468762275854462292539530158350128574000445395450928529496037643460834644962914840632668867235711251993128792665639259154168883825212772099597048714192625331155184972329023672961589601947305903471362724324516364885086327073073469959796758429116724584193903570999565905393672274060208771736604255906457664573004099633972532123647197190289252325343409161259763320281613814195436991328466356507857875691662765800626925722567049895209658538485958306017661639314918688564075831114749955318750727680599206340308931551397859860003916494644508663143377778789754415571814102723769500423581016606467696986531640644085319040369463303704967363679204441767181858429357436618983624367238733472175778845000838299931313599273479849709754025489511315467638844370141407027714971488962602841048176708394782594509721025264182227160554058009522194874651122416977116180540358835840668423386808921376031323062757581672295666543929618589904103719498995510601385027297414905839780764639012243363225540008369264719968692289559324618991991687409180368770096099620026812056216631614073202979082370236439315573414731832811798664759575039290942999017828224130587749346553160756878117506782559459399426954882065841136217004650961735835156052464533686491772080045068606044261197889451009082737775117417604473062515139668514990693104432230525605656812084729369152705661868493203529493981472575883403244180609897886270187984738585393529800984225305851240304759537268574073533061172188827462602124357870759724157724478600123512131543352238992198466683768294521029226833935952636574198058293102282587407144923709116840825940767911632194618249499917633837912347441978569409317429678158089888865593826369072929460162342808585973754092277104899489193593544020696655635078423444972606215666181359932066670371306543195248137531533323140963290115950255440571385795131878473478665948714170729583590359056776509737295084240399401989480655665015505569819266144815664080404955135255299992700888391101004723499859724739641755346304774557988321565435856173808323078239266981178359372823355775933757236136584593094746525623155251821133902725399193468349811094217586035172453819910860589220895852981432091612365850491797120587337504774632894332411556527965530691759293184156285395959368315642372178899324386046239677402077188519039638011170430106138653557497687888667104921511303886624703551472351122271339539313093342521636874384062751648444763874827113044312596086444727067113513672010562570979423343079416245596704397163608671507331923809624524675488346265154469974831663941182623611560346256439860506836601259271636433253121913876599655260228610827251769573922653878644206063260053346614256383937698383080063882610665734879643070392358958528261400432460984922276320142428915085151530408049093805589401100292830696919691251912273447509462394144870915508658319198857046392661290326294774037794324068967703516735849390317116191775399605369296223576602700247125638861592700368828828677415657389028554198893343498087690093423694681677414849960597780941438575143433907436377259883897891757502998604833636796824849434516780767043427423483236594550004516465730937938225785382617949980925473944393612650023459828050561992239397151181937572625830398177432064123802697484365079552428907505911854577015474794828839602089652185253072401536693510217634914897796800650892233389097107785378215348722232907097149536853325875753993783478050040861204428125512240216928713078230131117728327957857717103672718885220790244147590026055397112780505648552920086481077781951171810391605313973570666182669929978223248510315553107397955057930816566162093059681869597463112779107527569469793795030010281731320619542821965006971822928997946908758726804378620315745837368005639399857016090932105795203767295108104116141467383184926383434407814192728800864481604976180077230798713858534761806863823256455348138590583553090517642073258330500927159217662536504658695022457022440040358810553627480427432356086342773754257675089567836630487667265603520095321556332785492915886359630081430902630658696028446139647526943853309503073650126479768838843441992296753091647696177454195728125608627819813961560156913962402886593228967806072081183042226844756140170163346033720887956260879877238919508019748118976523445765471211785745930153612838804565204704354562709107737003680132785775801203141873626862798086503024050387251208783680087968770533480530345248730319509794348397469943598018965969486634411908874808570071113837141001533567653589057209751412357481207360510212215376603862211283536056638649851951340763975693295310092487084868905016822484432918966089090412340080504984303146277099765955681795958974981563972721539836043528572849385789236682119786810122015958772899591440013098519010251952196630542249529977771893559787329850937898544799135184228078427074148965607236306344149380257523562268561881997008542769064544832473633520750942827612179600766319925422084035482732770118064809974567634650511204941594541521011992684835501508980102982212648479496435703672536714684423504828338109001170206569836456414322695304891544627976877274953578089630948952778457292261274643032231868556966737978969297135444504320919962883043112703216543361052079596223668828179590488876071494534973606526388598400943862526984124679317488119530939814978298157131793606935495101986117463500534802053318519675026958265995214093042919644278709686808196161843082484151727303625013693443947358980583891654858122612959453696568308974246311625409284434119354631146108869324634588340008785928356014679880588174640013585488479660884876611082139012621584173287239962591032126311589836230907948160815015083349435294521976004800761222980825657622269151569007221808454433096478304027331092389263885938821227126080788070759452701300618452409911659277293656807576458407769078368853903552737209863051968194705346451054245952762047638080916291180907756261729364325976423193538759721239322795720975582967768491411747841616914950413854058028674051219316314566203169460588279521567005089037601263899973622771652134272127956343812183228069521002746424426710489471814693960692342954687672516245226593090310798640120962438414219503916252579804175082119116699161293318719505042878473621210920350015583980092720330010444398445954300541614881121540522887502055511477895638584252023109014875561293877780743969263870739519643195825072498102019249768686486909268177542764005185620530735615888542936692340796288601720882624541769428207252525345576571583711595663181466840623947721353637857267865361716325937581148912847363300997761643038113352895802794080589962605003603899552687710010408221048583345797551040738675554440893499004682487443269831720180742253043151875405669297230771970152891578368299565416167477539438278844404502524104262787133167661616536264529952779112375494241886737371450572386744384568411083909865580910367739823842444604219658991584885887195651041430555818747258864094653882591626533193790435978100307848925761841597722343199573198752697096866780459474057732981145828098322326169477145250084587033240478554191270590653951794868486134205097506908740343780842788613829871804808029762839506790651290838876753995040163538138705594624897372333881590408210706833860242300427060256705117443858411670007092948376439731714918709074111652981937968126237561452216054998652691594025496903038921274497204135509202108721260315527307356231796200383878808571768035164940909947941362123748611334072218038874713959005292962711058008746383833507530534218360392457401191284732116628781969690965397545727534917775561619356908669552115409186051447423185496129521030133321455638391517671108831256745879770903227941381859959690878805926797722979732176306530970793127784642356228538353354217595829194823173826384540889700719238982055212955256533665548731429639354591490294038777875267099163766127066004602585215139676367992364532921034453808882063785979223754989183391447032271895832215480124500757407494463967844784470242748741733276631055109332007338405852472565192756409570138373320945974852018715849937605946263386112381220933092132578051557146981741505435103432425054768265438326518722602110264414409386830278056133140401210734801932073667837195271880240685429301915865555023296464833435411481195604552705140177392576957537367291227349604186061029146764250036924587431267911300640879831221195800547749747444397737312752242201519565366083291809890074104119640863801265088224615110259297131208884760356176598446033652299371316914367979328535018313613736138107096629930098003427823778183110406414268693341167510923079287023873664707326051548624698112263202114723307422292596851674578437928554267336376353385538907906782115925466063592618969270135320295095668934758099856732537129064825556939676779720348338398735154326387583876982934315241194163996646851213256987458259344660223608796288028785077859591584533613838731344160773766125706237431606717437403393267168202864404673425445161721856455693111878564655263803655724065532783876312374706284729751140004301851082379600864505060998921196466487443185799445123492249388177524670049467492754294630117394940759595350457841433165137916033318111569338077904729425154791365739296068464306956827847991605081172745375232143241958598787335838309697408837624088002307493555685309482943539066288422228545034679106599658522479177349879509059614768944417902501355854294023322235201300633664760522497696897929407830913894054096964938680053342598664452997142054024627829046921119843351382584076835992264232132205663172813425257606799931652727048036953096949663126798816059045960565609511467713262058996345187747469457193860229090061819397116760643433793526148645223419577651726072620588624751224501097204232480661325168081103407232322239896104693280120996585721838028830715671702390851968726594697314074979153559674413293735179606635399185168844579856612964843553403559637694719938780055988903108631018126813860088555235953962641460265880870024429898090060681296389574697925960843651139184281758815327469115541995828060723982878612304452084491760885586625288200244897304299093889720341091900944071446108739538128933659766976626062543291837752810314231641644302440012354550845922679920389513063365601251651200790069035928446554160935066016322088365522060686974452603709937541061891934481382949289968810294668764138212602173787376799780626170662732173187683887881653263106169842856339199308555061234273042798320030867408425357322308600488849670138957668130351529426209404634568759113320310146948639396574204979595569158402760380398192895408934306266685030764832202599375330308139091012756916557352941131472613607240031579867373170825150628459326257544424432019328375116805279412279232821619675816256422328944636992794219319940006209274270410556137160764601632418636489412864746462670740085957552823544664724728494079442608290184172903655825899199431949872753723113280488757694468343982932507620577400379003226951318168970264596954919021058305237940550756234751669446895597434063855780803734365474576470195003646872618206737597973828135623358867699645737429094117359513888053636822857322316851886519874902057252675246168813212869979912451211799380355599142920518279011499724830079186070679897698236212507803872313730098084021053602833955198144311113007367688112217971942567100196100728014929650737888523614998806826685465907059476128415062666567826798546723327978050624866833999776395246127163366906305992007793777594265356667327717386955347822600425159207842870254198907317955845553158869466986499813786416616605002777640954217620258705542910067627349364876733838607348160173145218976668851146572157889541020220557069833481266673679350944410959542511311239538196865699989673273614462734604248113327832234303309606702247721622710171222205880918277775389265509188751382005005848889089850366920175170973981525333710754013850006798431870239784162508293171073123363117559973069475530416435381765912817994436246849035325646544522364796126802539834864915029438200729346300474848584616362637482872539226781443581522224802880242197720500421868459214066321813906983487809885055423972716627236342721342320830294319697575599251084738032183904654082014177383363537282799475875245029211672381031192097738578639765854053204523878228686110248348399724846339133288071234650945376581334185076409494771304627815792907524249155404377978696953233866120199199465198423105568080424167663673844406763542582654133969110266504827970584954159353610584717218431492352434713189152567902726267352274769573505427585267963281393913025566738815754420666088588854232687186139853588676842037993357048475067784464161713120699051862141669446804383434927994427457657668716991483648295082919153304349578026614894359342914533059586928412762947546678049860258691886657194056374240308977341383482686932830633547651638857856603785444699052782719631561410568666428869058580493285718115604655810468746126712241254141499083711725484059272582498697623263184825195644457217198953310293287560747148912846420494659000261381547807001196181795095372206449669863976781696598012619931371522612558712858668750350962846743059812993687886139071394392867249465724299984788404271861230852507856468122413162815649914843066419890612458187034592008351143182521135207299718619385938773575074845746069121088771763699523774221345511031347562916617914757310324584552558141832802900859632715156442392765268068696914835675389231880017050653028100221794809011041293575647297794865972300455390739955839941692404505512409177717865776879470114723559135604430337004499277474364458499416498902591558931374333431240642462725862701766334948552777754925832609789377197293877427506296528521777433218825908075832268623226681722949638972389548398079599527761482596630634192984568217249959167970165952368678383259906211827307170764634278139831247403004819418272083567476745852940128071659491734796155186197272449586994021242009824124522924151121532223744134639253862505746970480564245590858896266842564112537149690336683248182153781436868859107678516238459000734001951929294859751084161090765765281018307206288938397275289050231671578709961764477746904198457364327769559019869789262593700287318116134574701717783137616510648528388942811555484279278695674912765392519254128346363792534660170316778079431161981977403187663615809140727724847792504239758753219630967951405072649422256669660490497249860986671011320240263970117324843476225730948777008412314915866484629591510308409039589000193078209311463183861419106561058568157567848775138440567989469565711321441178607603005828168414117058173286337579040623093421795153193174608997864049495557957127518293199688611621534416147820819749093149316137427255723843168217883108879069945351235338811663292385872484009502351958535430164729369774801429405528472688336875703870545503726781854131364911102124818685841350062929165496575767798747303189010339829882310927729691694398371598026851518159634890939925028150393953344077302294367662859821568900319303848148919506469838744240260041346887542581941669819976369967799368542887402212846994371935098554723779439695557933232108672098051080632166606368847183340266464975566321591508878855688626653207095332733429622080113877096712750178984211580713300855071943376065600074999322290417613245556700486369881757747842059640766472810166440272629232408363319581025981389596951715642161340515211500328420768237129967908309389010684183493285342096748922556117553558849570316878854151218040547771155947192103741662080076503554384042977866089424538840640836970695469111493493014492904345063213096961149940271978413772912942827128938603795661396604223540996822222792874771872727902323727824233624889791603068088917693492604697466021422440095919220268066368849229463220229249280703520243577303232964853644423658272205625079672936302091143418223197325952957595701929349399570833877163449634751925083184176114449584543442136568200549865521115646638568852619541827881686226531365739728644498960324666813727085592734494945376261802274525370968456295179160743133567089512473182838574988017179792669164531692325287744252680103726286103833501729813622580686347651269636656452997169598448093190522117060849028118564521580022109722916983219289082912920960627613911276926118339519783059086159598134173055740346722031372462420603261345136671717119482493910726746269314416620593106091690929238246523330386533353768019668945493402019799667445842026165568105128912481581550583514651023131823669575108002045973449597243047786666161982420598431687562941371452516013881030186730999285336150753708192917791600538803222559977475660018213355309288898025617000662548811724028100145269835242332226537719149156895517233803511312300277862398678246036120908919816543604886820662154129226619774398794332197757930067670687436740971431790878945686832205401730656582936170814240596023286812468016546281975076503249743761003029527608390551102744783212024322257809321002865599999797744547332818476436543319558348160227349171912036732537869491895570099256785010502566252950207188536785891753408662258020483788844684915820055673130137245436494231624865687392950648726138739011679392668866533774754726934776182942319915310345849579668390429204586075558092725491151213077984982527853201408895271005315746129607501417187649325507220776094437130666295952369308524509796867622832923601445211443138586388092004546428166658807242453466572005253456731285481596531599710836942670474566911007505162835969329342249735122290644226591765407956098712765408804491843560490644738226941202846337868895916236253583079330457554084507934028970628145275797500716016881639525272544200341501082880912789245380036645960058547263692761920298118597120406787788690265761952195578231368955965367203714597586971188575214664317736321132881116232235521808294162221318838781039381256161289291202133320786985545588094660235177351570875997886938837961343495357548931423432600220107278591007043893416048072726945059276983071219015398995753225606181554286654475725162660337753138948179576825144150229310262128563887162347591498075550699948225756763666508952313781257826990434673554448564097665812647947166534968502925186543399897415837367347487881638673103778882063333205029005825766403756505645763668881433994628655338835098897220717142485111210764502652918279485532945252883335948481732948116144193140334094315641023786612433576457768365469980960125497724181788436081971781961311923799266050967174731129867044931935508835518114828758628233492610243909482662210324362279837280525152593850924050020800645446905763089177768367374551440615555866799413997574816795104426129159927537382290368257284669544483559138235784011060178020431111491884340810641775838007990187543991293146449004928698557187856933561954931975776042597680756008543797500983766811339104675247295471933115918390077680686490691826712074877081424505750222244761724063299615560864868462344483781112088060636680403671799829128021038865115274344611065819395864360727246906370343155439427319170719375840166128858811852279889721737207281762515997701284552335993010194298140573328985655334074016055518058700448353798320315170759534567171836194279376667133694460136176248146026228328150629830120119107412432656827433750676113078152590722093861563401558008527565134142958068633237297426005680465909518881706632436521059466245260309502207269298020633053563457607591170227954736340621704530549980847644306193488078792747956614652915204628709927904152690803957284825539621384200963802195929355583230210230761375263231295555209456809640539857317411983088749728216084372871326852867293001521474184517640696600654356954959285851682070946314751638000841721927458652574904403749870367040078368930565902963336640086466164722288596292165750084392829394093172247658727519187414912942667033315988082951238193227957852396211359221992715948851404526363454361602828274976835303974647818815444263818350685337768714780160755208295045778977845763162238576013553151980598662759570461944388595757893919334104153983375679235560810397880534275146385372926303227682935838289415253363277739301367714303326072787110072581776542259689375093965579084548086046477648437128464253881580286619930695615805183625904378873815411331034611565414773288019030237166991244066086841714416119451444781641234981633462901241323287008084754787336822582278919435658973799040327490071925224191231678749515992555584949344004430659199573945697706942535199124956891712198012894198640491779439380444337412909795694779509780572351386047461976813050673477539949694922572685041443246859251204931693296245181301253980005024921798216277545925463428106285124766690521909313165922856534155283768776777787933102330975470284588831316709568574455168530191832690632745080912663809848554497016748813795111359831322478861745138137995948623044586135578437021294126961122202111273650761669775527388415065549681080292351639984654797338552985542302380696050347707803970980676743089397881466113480516000410743704469248586838638845032244257919918471322677210565597345174100192038600513877302597825893950254340073336291134489666543742264934413723261534735442192838696832344926969055502534033352340250700993447637200992878918638862554395400324974142765849427991694726189022958924826251609657811903235109255969112718974535875892242196828344941884826876657560590963646862953699550023412899333803841176728944368503015212542398006279029827617276967102684779929976367580601029327475540904130590363669060364683604774393798865699428484889313112101708464265938415152572690530705009158860767212065575875609856444310259603784900618117769989199652445351894632832277587924623510557926791877380094889869488950687156400219852211469867811436767061894203160897518250393441626302131622974377905724083933109857295524256342471351986008161780936666227648655174020990854040460877267048092842242336689480170639591392487922047584185807525083166413323143625458141888020014425219236728445758992102422217299579616851880497556225295591925831210306671692720592104755646375898952565270440098400194631027090100993382702397442795002087137488606285085613041443376953228786654752219550736647984799517757088082594818207410056856507209863440710234595478739327254743195364888126472809860139982036979084175366756456240559805360046776095871823101310313290264257237047608928778703621362251153242798042162942953476355782789253243683298298833145412674388124708420211477208125167085972525880438697607550053700406195242481938648304669964034659669656850246609762036066812551621168650655813133909980107909636857022988759298800847977836826988507766294582373000921443415905930868773394672623618216727410702433008146719619951477578248261476150391890060605270529222370371255057427108656733991375768826445987397448220475285253319089108588979263610451198149872154328138975573337583979744490584674757547313262025139742332834374530776296414076749006424183679230498805644048511010401985974070059395602789119106927670173265557568996989896674872723185351373989304615725322385349775000790006184645208289802503360605334961045709526857257886692315762108821150022194968320690503646406700630065998394581303752796854251819467691916198164161097709185410098821828822101581532400647259093393281310085018025630900068125560376077974274392232595523026308700259117118089593183386552526759830232377869540944301862584306934996732063130040161759831747243589107530588773906233353121080259347970495386437978248480707902768737402415942938049188325858170878321500793302596696131821382351096369838074661244172169707092172791210429213163970326638091547802045922803545092411878073539867441791862941279208375649736437664290396133390604217028674648011320167535410550172500065102908748520056794113278993250173382784478740350860322468027338676813421283931877244188611117697443211137275714756410786916664977436819706232238256096298633055843670420825473872479976738754533508493204456355642651888868843406727530176441839342714605864249233927411551327936897787049797549687967279588530017045105927770347363353355035594054957351146263672135471316515834611905941327632990859518051108372513445594589201663530541788124137994483778509846514062354153352090558504517526056559894568281110420709249107871582182067942075751326758566358404018551174307606124387186114669832716030707418345430250190922048250526007275192071322393290413659812956578295331643388679513224764330379581835372675542650144428262981636879247758655178626486769522853059565382343672898765081159699776895788511873115499284413817256458034777097012836369074569194221399291791521065746978494605484754716703429553529590285932973535720608142734455279253159043521844508577857971371518124788444945430490605057861743298876891611988316198100681822124062995185619708929815372795456374789803898304702737830311672255809137094501248843626313058086027832615185410825251915679472537929112031900817015096570121660766855006985889209806543822386613927280534464810616649047676770944656609536199826672540170037176186913342058887993794652115480004581615123093750597945488980103901748297899847565778844047706668696687914654690729683275984420877450168547958341212994305970304988456255478754203876584511593722906894552360584127913224234379441994638789497696439511338676854794386890597688565143818884775942146909948379187414060661332601081497835311913009787471747728826254955142582494416595192174053864380431373069036056943214090053595064413863227807058673521127603769249015606172250804902602387329158418717100623867731185621262093303618293674119735541056716855593748762498993859104914673443031719712579253058772576523692340151726296280792952751729970658063320013505282124217375691998310597813860685033340313350927268119770869120720561931324320577899775935756401989213839878833943091229980286547237679766897769012552349940523952195353920381688027820894652398639261440302933314969068462872741332094495119154217784159926427406740136366603666079989328264854074775546865897921664676481530165231458662495622074646563753896550788344216248625895668336609193171130182472536887742089502993353030772824876381088088683204964817022868396816069162170955602160597649702247270312903810665898702677100455952691920581114534568596340736979210213412400529606812071423123851861999828650740880849159836663034925705554610836256285623360661498096858152432244423457020459921136164919436668925595457468278309013933221808523553281807811253842594906957135342270679336708308645273125976722234553840336775311100174181366058882368586539721843005933866377502413395558386489453892687698236450153465391264102938128715165701126110758310299664643548396172848070129091973791972900593282149396350906193737632714737507714114848830795675175221539682596836212191797820597887273991434141061122803239663315703550007731142334480168013246044560146446652668805892636861776793558991103946279425559654191676877866973576832295432750307408259333601568174258647018874070287663510070797493277909972327344922168448095016987787512679449345068708750230866608249687660144240302506323882164830992236113217706800587806187280616318344880019553136196315708235892205680085519556069715762007489287768220338098163735243066548983005725328729066251265974439214171517601364920910553510125937095770877116097667095737423700899003961980715256212767774539995698997647877882683684259051090742924529477135041905417698940893742778832632766982681103585335192691094024058719721021982531080042332307011228068422979481478076832600417518701785717815573119924947961932883208273283873669533160844194303564763354313255128457773833382240582529207635468438176793840484913114557827397077296578516223386537134128096146302403429720511378643088525600880361289695728468268838668536954434295628980666608886736919055614343090958620999238698217143835040456542243401641302743112338105001675315325113671863963629522246590842944209349018139405835576496082590829043108120712098509721931592535864022394054932892626343224870111960927906641081600421937647764112456468963806022973336606470423696502773667855954766883930422325487328869472284248432790004310715550131482685314305453182279061258478285443668726597811654536053075806578550976283536666852263878040923939495189633953181107318418233242028834231268296919843480349668834874698494589751533964057291263248480431604429855255189290256559630220359943383380006099026206464859985846278474497626013388785871203437980727621980273300502118285397672404696228875324287424061891466067969749807913012400964610955759216475799313314261135211207123067816506033693137622926367092083299631786621042048167250411889896890020644681575811276722705417515370545167763938757428165361597687676145369364321858886649186042886895819288437994397969958667883284528815418800513442464339211759372843605512550592728087742657391695907383687196861065166401767392139802420696295531028759304688847994630145556580002045768410230417181384110365331086744858797876055377092687457978300769717435286280215028450278833215614037582386807488279906634298151361899728209742196128624519817762311837149433147767210360970232080175327414294510043674712540127320404540784867815651043740624494289968413021966523715859931377459687162289849134710329387056825794513337952112238215086115766894217461141845507121019321375681949706904909949857006993479144210409700126844276802813245164052196002644277083348243482530317559678207739511856394161973051727418871174241897622412171602420214604351505672981784449729799359303093646215202017291486070171335480981668942836915002945390683969735681634974464291118767597867152457742695911347580881051414863724759144202490598387000381179810755906140764218286655550875069319811217549357130646627055086223773653883705607901592430330438803520634865434680745797650905319886404696540365987685150182352907236550031076849555386395167487731887795341351380274578381284581493712356675760922514484643041694666142004675777899768417071989281753658676330137741097700469728745795404684804736576270486583661555531851192891816118879544575309043563831755868918112968148819746690910316846219891779250187797187308143136927512929853742452618710035837760139417648223110469718363026410864176515737765836303155499150834395375218933246101164224965854997184220241039445544340732355656342197573762430492888548187219897428731669968021150220595028411095852783930975955235491957605992517277317483389510618837999100205778519272133919762822952073081636288513601495783006788213114093267730654282664643345725857937871234807630203986142500033328832534656528630339985704540823002198695308704170883979728735745347665994422867251940632874708245213629918665793816840749287322656908253478458714695509294337951122849148821155662357348498310667909904768705275489787394433211395015690018507628809754506584592398554766097546367041224773878334830934701106402033469672067321144574749447919502403847216997287044597370540687783416650687502112361175221721368878586514565938087894881455027811716764029219192297269300204672287514227681737231327845018997415053568612161138866441129605842121967901393505358330778352751811092696643521982516903412315451293240270013380757652552992630765572638525060856900484749749347424311954040151671675395671674941622898065416911295297271941069841937588588090195672785447235089729580677851256847725771052885004682068958141236112274317011771969160243113113336580288671292923796097282170585094791484171531231779203353583608769619924652167657637668994997595913879387153202615474367319389413264450685598413834755814310706920939944192700047980334916451024723746414860074447179069441363123973567186688822373351296446340089904845262538355099901626247007337177978907236509742524038169524186371711846595736006202941516198204809548761439539317191533858900073597926662291773726129275649999030203028483188184055381970480237092430283804568137837521376634598219340867216073778325126718763983023756991898720717160676548734908655267302815537073079542622063328153963268194967164019332596398282378826612042975828781405315163091564110964986195923472124015319341308864857834167659121218146518820773154151282508615614782530211885780648485983382832634567746879835528551066417459212340726284365802007272265908319035487174403027734972385917494193931650227959330425093110805404607103506397400445485632234263218177629600170887736585711577132747697778392723386303974037155906381395338410647702089962598928819233468345351781927391242805729633171702412142599584057106411878868188993958527318997902803847086414261228325882113123914722306679718558064846943043628188059183965888381088632660646486240991314796724880565971413014275691672496159839820554276425210017034006327106325573882792495199761164326231904596659715891517561159578921603650201529657196346411933459370276813272855889074881883658537681108407762869755684945953000187225019138641047717193776191066907033071586782281488333462608202828899363231027112997339854537549770321513134243107097444589863774261627589404942621758783302572974304932525661998275218205250495520709454567092311391710069413106379592437053845168092817321940013648324586897992697761973296629134587810613776335692566270060532868939932247188966223094226799627953084498833506920561599721119481669778775384497867721969104000036550555616281683077948587406603064829484150578901404531269274310790376333466885799548361678404294186339827787425596631104913208123440498736312869635981473459684946578260772594851802936082593831441733761538964866486809885553936956056508960438088557432854993211998424287309512748409959332145371637782874435897817244973893484313209117630882194520289959554646437588812459453555243140927242994544306365002891868929882383880143773495646059953560717729708970852729033661897895753533624290759855752360960909500590110448975009627530597523738359234371865905447009318587499922724690975487086909429731741335753681736604722096918716361727415129835343200242575616622159419308384347075156152788153464156174167773145975173359387071601327176147330633823270749522039166697609787995487969336678277468076526429690915840508513524200015470186156790438198388486203734617981546149668971863623818781702754818095628639850517931162757627540750326597157375804551282851054689752584056487179902538702290424782760170940805440430786403739566355546457660406139494660398241023432640525234464756459740388149286991509511622432641841300441861667680753051699272984353705483086591109180204593350090609932317485799814960482159464016882723133098978826975952072975564605076859393429037788210147174162571399789541114457010981473180918086020748453326284827889715315288885756147332020452863932285203431694863790143479805233063426745055458101764915574380988632876787557607245656794141657502121995825892710397044981776982140034340073746983966921491249117833497470487936301483644297995265517511053917031251058112898497793377542268717741309944750710877482770559607907434866850189900661941306515697616961945954664111633865984416498899604972541019323508141516461611832629402554317553335755604629433127107906960828043626880729910986537635839852518260478908085977359405538599944029536194213257130886024390520719758647047640028562217291122087919527743534872468782226312167933045199952631216406669551852288861280242749520223884244197216828879967472460283982699894912682807642839855566231846069564549660591107817712342416119293670587053188036108627905978979721319951209233585208898204175522027564309029726896416145565062488237302163153030500836447644830120572049030274774575296134129987979462495654550573665701018187836799888627849738776044568417890725368481642227059833528415019131715244434971218920329835120534598692040877823838330263088493083794315194716519510852780050261752497254731523585242591488922854059794732275376328102077113869339968869917895110983425893502347594698881057094849638952810700425993713941357355983905216806720875505782068639679775325420675281425175460667543357985019871960342840167636612133162446726631152509362425266710659110559382879620128623449469021457137342572636498210396207174139698961754039714729786563386190924648048466754163556980463926365807823130775886937835974894078368055502691294952494836047448096903375693441035748143174377645835419872753206632357840440606364619468032211560580271422609650980860952300430288924457011884220709537285487511954772435681304279217843915007170546003521883852421642753459821647053099809012179645786508836420953484566556988071685867493647829727186638561020815489565407286475533154715025384816425334696043830766843914218423443987124795555107283856445416897733310825178996445233182429862808130386573441759639367259945217778991984966723173753439788817081409907278698277809004604075612505411144534613668739124849273227972947769073999791332043398210403168376907241873277450396149523062300296916322671939923783037211833608743070023545453249115252798899500477701846838425816316906451632490925122655024561570837463979477188463192598643295665703570249991096314562776391369155914423737798384172644193625839680393435440892744706726839628625168996077989873435351128964818125584102976641057814579732828123761995370320769149634163530706040862162341133018998746653052776343095484382873669921546188128269591102629507148589552679015448512170219994256700193456715868270739080790728400749200128030698291088657937514640671769647853781037763328193928676356491577469605262875369157501254788094974876593896575734134350400867023044218022903383919779527092971336527266359845422234374629024677652871757888438532447631555928523286360226589348819094219694313580456571435978672112818357839712706865357566507560445895736549694090519721579907259755922776410998314670911449345653785232453285331793671043185921132724655916015971206837617945405317633647929351552552396903069466776377601003495670765923948854110612844790409743232690145124061106176209232909013480008086046223204402676316233591236530692559690612494189350142337707717946725002927426761629347038287263379799313201996548474327586978291089401902706964070340612903651632995184455919105717410116395499610791910374253636696177992467744248555211605330431688088998594765859332176968028845341008044895503407528736957645747594451781598668592330384751561115028954344082605000149252815452685408337975046217213101990828955035455695857237775640053723216776040204309417492226305025088885861005287895629239217111483174233171239668842402447889994375558999689867542868283152231525642390920263312218514332301205279192463614850459392864756807668102858323219913147863397261983737164903700118331865611030964148048451933149102371279374610454196178133095222595742244151207083231049470440214968555845200775685950071272496963208088866794254831592709962999915791520279988953079780449693676881122984199761029845085055244447685300560336931741151376315464478680634706501838521443540220536556211416528028703588906922846671273003432108296793065201320366874133080629430244065431966022535219823085668167934601177905347068570925537301401313560861802627074332884070955879399145377032938618026231401034566906392912525704139485547428893477324095836653645842950956770383993491354105185353399853558817333823464469311206280391885708738851170322170406717494200646996289955754147885798590403278357746479291616732251378711222420152980303007823826714557016874946827276720418190846811658334391861320193743303552266726163442161467856905786686147617136138820265099565850810170288313961574810826464212618050864653697721079845120968575490164569782847365815775263212736731136707714393777420834795718405175892393214508371450113053905323344684607893552420472317866349206443749280340726823992198120979985945439370401501300799642362669513465980277119220300566041621731611440002354276014345165322629776633355573823614367021364331095746726987839821452158196843463188865881352339257835013433569314600462796208304342895011613510328526615729787312927616359660500658785912920830839342624621542809690188206890698996863900212281774696054584612642751444502010039818317549534668497720721918829989664497285568814477796284106604049156470901973488400329590776610928813619634323121891964027472826794940384004125108535858039857116819657347071410035204110832382237584765425930358989820165528693561947163833091340165983964178600029524586377125391745845772158041805609351949579245190073062827487638436478842315754209792731308452697597324619934495342858607176249009701299071829893479334929853533947473378051623308658324055995814106859191361872479328437585885948863428420651245786275409622978176664443511452911622790538553772916536765380924116171818309702286445085648725539575509233185586380236825338192398211184090681884043827280554885154768251428289790882626986639804651767281393651086214521955540789932714506816875227976724400650203234693754255431221900482529297808690750104979833910595216627217547146763984572822012545540735484400089484297269060724166501819259040137958854819053870663129917763873522137228933947593294980747412227982363017010687705872941517683386932354554170040179267373695084940345211112536123648266211050669771443943977787953840148720123865576645765881337101890620638465005242633193261092863844695776395600914889977629479067378654598536324985783096608030899932374824768348388643973855988666140914967257977055016908657883104671539113992961357751983146634804523332756697232827041373973895047143426880273814602787726051262108730010142366426776489981999565508652948347159832964707610850145255293938075172295712794356269103114350041205693077931354901215742704542928567416594443655238784144803012293194024438679727286556668207755891103778442960015263306597808073146233846283577079713895284546621747949167005217406148132992895831173422871605852015168355872243439647982804336859054663331678859387157733915163537968306608744992830854623382048055139186692707739237496560982854326468461138587988244831119546400275375078993520410828421582230725977585912753264428967232173000995329044163385762727136922297867906333073200720357023132011454740910678545187643373850688198628207099342955822563750470192810186814685569763228397817699585863233935245934283040519900753807586619945017631109029039531985081432945561116896419647168214673659217339108498009105720612005203303919867033629017238348112346120849275035957717485319344542475551832695458534494502582676027564115468473238270250929385247616903961171066210773551496610430901719550347671858554516624360004001360460745390055343180362780552923703732273516175370567892213427562591724351320659111490557528111324276165360739355948872891428767864611285813955908491715447075549900640982256559134040287202630373667459790555826209929065847470130544965908525491772450556858231498317488828524376978903874732520178750659612493333697397062660146923259085908738436505493703336226874062597953542853295976543630785113065372719543710526031360586895516159022253042128318661652311738858526214289801052445535246856203103592975882106059130293589348081231806727366768813514336528547100096487185360149732288884046967700550240988591023270162724992749833170135496701134013642644781917813222034348786750213782782279781494878243137911017003905830293198654229600453096968741294589098665830011553865169644190290391537319198271859412639207731291051272918813200505636528137854191193367295122745387252793622925710197811749534031663456902487411053108103401954235083283309884572089569605035287120462147406022630306316076711422276000570770721119672621337419661801620643892533376517814564874130128992629778207535156690205010523911290445109499828192262521997165357173730264663266780087472796660933169110928744345127427497373129012196801513699070885438238582895886497370695942628003610117184697598838633428045845181320547560876568809941000707875658981520469762198509719963127613493227966210281507057223280461143938379160579176276977620501796080585259362286290898665058458022584961592013257134262309487490521196491252451263883656491936779263106898512708902958163940452971570935882884303951522469913109704748872666026131907093317756055810967059067055124952992260419878274089567524908628696151702828014858685034596560029948482052045280660744403974405772713772827210623812080486067406251172212885582226197525589563283348791633031853054631911656527529675094359516250765733578042952329317084706394986112492494887786475059595542603221965439704055559475212976789323069988158329155022221820741538345853422683798952396117808743193055077204720333926840589318130473481145015668892805127040213791216004556181092837986491683678588809532646771622905180982835327649700935506871039901114689228461368324034813361069887242652427305484884968950597049130788532844049684485324939701097904094555141581725812221947759452899514565668599836590680106907507351050035995308819981182589803134228610297632615276808184388568537385527349460193703335952509571701555186941299693289590911841090062385509810256718148814740288580963041925767113694282044331861868710045436385751881428752633076424448686642512025263367606726467584173727051210011874585389773861363448400475495554718047487903758544369347697818079561517844468070937915773276798832135491968841764314830312133185780900268759759729653689734178435916856132616107052133914200634829257487920000827088667210214237866875496442657030120614838005783896202347561801430286704701412757406582653326297724134140852551733253531914014306482168205487917791696399497380492726615239085600062646936287675838177762720879384031090202442311484359519479446905816158572503633247684595393302389911824365109119181673099553618325092573159694085741262919687999372117685127652027780085790942376304921085510217568619294872469261306157796815774631220464518722146082197397767613983460517151975825568873983387430275708006448075421646906274535417380774641883813143925055885944206160172716571745674867015941542898769037124463539112921378334545500370966713430992871983521042472741475555966339518085954566586026479691570667883016658076460905494757465558712240363705742197810777816139284383348898636707381983796222246181356801090121677863149742008287256357812175105191405800928514934220741906352004365320592873332464561759507044026298022409885931079985215491876479908960941709100456324667497621384455556685074467982446498592003487922038918721641125134516114303763104882741050775376156328230773034601007614730927318082764172791959403213333926104845601958946421257580867524319966055669060270499761008529809074500485848104727423954431782131093579929055713772554819759446857908047403358632981427175444997118417132797120824366199650368034498641493007835610076081261665921592253567889822663771306689976447671458093407738756361703701280528131968380830279021612317795252209736487001215283301530545236099605815771284295619295734701307085556714095147568301791496294392972980975954959966500287852946715698742286432782360705630555219052449772893081362078077069477723576732394308037148309929722121981672169012164741249331537601151573338202655343119952480166351264150200862154109549588129426144779256760946071403991215925907898564424175892487002177418896211442968021367246345395469998780388097283150225236036055178518361258840477421205807098090577854075102287536171983727244317574029986823854109335761836216861614067140440444022970767097928172253350153626295142174353058245756358054479549424544408439154676774257514181052424799181247130167806808548412296326740840103484860164846316386842314080421643163741186505441860075113845758092579909760390289126361351634360003887959154121409613469364516007515728011738313719766721583925993549213766093108798206314525743211230853701693743484256840966232495459116127150152274401882814600258210790555781134952692406002412946989287740113743663542717867767687452702374432661457535146084682001254606752115678459753193578690698426358896771868518280917636373603465120591983653995675177480290541998337305997123338954894282633428329799797914924102039280743125204875282727156936345734860199172055833242407499007588127760931259312481939162913997301061385865083684153931416328458115723024785846714313063289931480102438171044448496687238656488136564968660735349516650044798787048011829515196830120834758968920516560923383816027608349802214614540802037637394340733698624787769543829224588487900176440362430241022296982966162972499289136208519005565281604794851818983810820720897013294506481366603429001706700599870834405382218073673724550845592387879788329905658793993225014168938554472161294893698496639996095256518464689567104787162378764877932944371665020172583016081841228931862980461805564818295874357126473690368539433714292248097660985431557039610220177564764922893110814707361343104456734325071171076983013686520580888580120006202935899233489473718316026027753249236315928286722928334038374084763096484572612635083696828316735928993359356881025164019799326532826744349258635992344336999682346480562446157943418488846642450719708806810795359025816748707563411133983015367105624845158462101497927448238554846854703194350850998612593897175968963873075639171661787338109759851992918880153905386372224101395962161224194989191885200484905897260785355555751279609732501030576248146105617078709480444815092747264679102463535764716270017720632004796347073111513498480167147317656753819055374897569205943820573038100096214983720028303770894310600600562258365263160427349230538796737614659181675515058756337263910771054673408232431757903358442334931358670159368667033944989884942103360637305476748665734815359006085710774877373635377828978721291201659515302963893980151907349400983558890215280022713478476955240728603430713114147334796034097915521494084428548778896491793427395847044025958584688834470228887097706718216723343706898112772905735612630808394895841742237102791846899550760843078443915565994748623960665396389868820712830072467874966982745659901147446904586499200867895031134641368165520264725982254081208181362996383856734370097440090352566607928882679580212775977890044138422916953314551328284811522116405871082067142335304263059003630877855676286572137255074212912695703622344204946154060858753699146293701050028773809047197176025474998971428802833247859349433511873545751768060486351370548163714209942719720951483237431073952358809860111850488108383068023062895220894700788430072139313213992679536682514049890632714199779917110622913859541899009113308764900624121604664983927622018893280621139404711090439353203516959333297576923952121344915120694960555896257297809765323144571514223521217116711107822234153550472509783724244024119287158443528820219035800375620346108443556638558012309656079695716542982165606445771408926499627232913167257126200215430013857881679986592389753982484229229766648755068839524290488962857426630812868665727948880811551173846675326322428266609851255215186387208635747709800447601501305390071622575314321589055960448477878084901252576828548542462465121917145502268473294944481634142422889694048600081491876718069565170923232500332281032596934715052090985673495052306707902365778692142262381713945665443611245947913468747533939323394831752601726726386583229140835888468047407507495590996588872239395649864746925628406235950720071219284903330515578778254729087793503155062711563632226284794219910929828552041443260261853750113285262997045124994266872266532880067925281097484503232856076284374154334674915192316005639455174349678378718739264589665687869832253129480554396300687723344646583354811662540671703911474016640395598773614379888273133074669427981687956354370405144596066129468888834645364424152287876573317444788392275612705894786898479009933569452715358532766313770368131291488406165408153538064769288435200806937072867857261027295699003288094006069063498453422879892861986437411360223729405535907328804992241969291832595896738847469622881870116425044744835337058826102603077478575834569597559576704632514213253151006800737099879801736673195226395351790046843512357376027440312432160793816959050075807982682880827950404843356524850234189581145703936346727016183798879433201821273031737661605243273473930608450509204441433675633734768321797622178204306816538194346173417223219388372164118784090118192679386882913412659803022044549482252087947679389604563517466231895944438327760056772234392912786347881404606103182572249955352709805467610667269476156891299731292556594864381445543654370879676063012784620600032565044520689005950503091836697883647760499646900897699834469163998467222379309310538370620014615059972926133774789258486553747374629236889606151715412540297032537136295129411157822329664058638238881187141141270679862839197130332231308066627919471916067815150363940378733575204292705561445478650614795531573289293890674094681690456808237641871034515388210714320758578010358018145865137607198504965242505884737076922107248855100793913663862040672405456513167026787375882790962625033100868200482740219718790121741790850813228258941863071864538610320608736863079044916264455337141935676263071530574703345453668423689718028836601058780968699365563687958659459235760121087411666503769031166105866561980037600770962450933752564661964604433633998752742419467856144738455804355202560101246528981126216307810673702005326730341313126925190216547964736020543433504046782197299735410735684359176907608980801994843452953765122597864545555101267211822817971128840458886760564185913271068368651381596347470677144552829292606281738933607485513712181257701439043900216993254538227693345269626714262187371617014638900934748026272028162014970039405839272039518407142183746540108584665138909553401766679401762936403378640589837051950745980362711517950171126117590404063668379441713531396570288607602254758308126058106868906567555220919211131917489259431359658440604376480180019640966324757371291610099223822509696086258398754873359232291011241276282233503766497239109638886767541250046398153184875041757886024130090784786450790164830152068339369450449296019550940228588124992550297377941340740061740558636719084761443917157073711436282348056987638203275213092345792437328715748616827820574477221889308297731804277506859772639731202876337554874788326675116924735727298137838757708076588495274919362277652369227300601061461250809923891583599574850798666472966094550771862158573356897169116401318999889991241228973272141492785823426021000572520641420645495150775775847307411509984384310238047129362401141747400149984871209594144592240923636937951156154989285499040074502051708011342295411739216219552133445548484766209329706167370108525479731213179355835882739001106622888272521475965613891448408766166285305278901933969182882259788599384282457642854333151669424222519588024003497108780348088565747275555093570100790731079390848457140722382931690441953450016488607913345824050641743638579509045825483147817402988776589562486051083095911846569105510420530144367944059680317564497966504432172225430840511935729139788349982175622241773898522008540959821437903401347377293097638434968549334157332074383241263507431690363972391629693435857901455786651482929072066255899015927899123650105478614077296978560385006908604099044089442655542420877550059520458809658169075995036596486063261651895915586592326707934442259248979898896767612412101839030130600536822275200058864015500760269350614963826740934428266649539150473107998801222313353848280955410405948095178827935606010390976328097685171337083068979735876864404139752248544477560934589818465851131207713922773863419215493494853614776141881411129817945921214235450020573234358706413405039245005755116386336489729087335343398786515381488308306295855819645772449876092528395573639699132032387738085200001386694362398869303393164337651811815021052638332709900708783455911926868005689597103231977791951853150600982410143583486025453543857825138546251254817293505058737843992092739294491869181775641664864124637837707021033899146795356243505760337249590371571464230157009539899878507200618477976547183812422178378110639263817110689249467615652709832689637338844187039275812222895561939809531281514706284284769575452801739781712948216335908223285408437235867134364111351657539846883364628595337923070382590487624794929515532643228345211276791936064136374766478589844768924530328741008832720165253960877222359088198219900211464413058728365573218218448412555797079688408237567465833394741410263557029888543271750446994022801601350697931928087343299839281656056183645220490997993064877648655770407481856542162150743331765536940955685865294407140734037447014997504973097006532872169333396429350391662950133568765402363698970405108905046076131583888241318892961922508571648480828184697006818289529112031660755835292771472572449521848086292349285265572941400104329082777316500588813841176966252033449834431194348854894786474914729689252938656153803564640722355381627736545993058928481126693753000477184712770313999657429842823176736842434765688026584686608984629757524509759418590438858872605823528418418954353000882250892649664724885449981953474480254050072054420412024085380038052899057509329069135079296943113697971388615615992210583774594786139718696417775400792804364795460122412124494733579172891632691842703768237608118368453051066077970479215287541932706932746079173798181677302471389217071015931236262862298666984307415682018575739446786816689741251881432961130157555696648464433225374172384628814276756952367950557042609989569118542005882176217429776489218588374821434621100372684903168473657141141187333022450514282188488044134885957180903405230546460198821069290636452814947359182966311815892419247187910164692932921703275385427452649042733400651034178524584912258199957272877304657161761135946689093478066162102795485745816361531263873159355918160473032768810005055054948697304887546380467620604373250765828380869388756098404060830209209479573138341717075265899490624900613032560817627229152765986521946778133917974540269685178098814850282639741115771739594522489442531970388613421044242665431237874255485904715395757661320514480837806083401354112973854811095514198454093161282492093675370034394329692825344292572232011446699567816338853965922378705961369331018145482744096966388601278754603630450138488642645529717551421093660167004837965917096951931511401893799699459764812474529116507477180062983113567576915647865178319040775112441926238213943974096642348590588931100983373317259484680165514995089408990498527987274816831533341024018560365723290661710984525017664327954473081979741305805832925522920956471196214033849917246656527750925382859744167395881368013738100582236786650581063981028893686516574661290399377527252960271916647187244157550525593010316927393408031142718718145323172167534087336430070652723670964533677637765341180975575599486792867315915267399527018156012705533694215822144612848396449059372657772474279103764387167514514408673716347327216457815459843292640474370733234615472747228705721095562608589518603625102625196414622108285436459493514920232944553631094449459087319916122100120631906331622629513885645543560358417627326112480282367121486151370646732586901727705240361534938940765899431454375732618218947400270680058872751591168971219836281033141909570901232112895132162804235591517924125682281446437137244723117151708073744990836522837544129451051079315526544580166888664810347282111205187849054296478039329050277509359066923724197899027667891658714785247036129398943404149463689995643502184443096326880417743471558430761375210515852051882002168259780669246750456978547014287142100886898373495809376667814776570660073660182921579931115393935767454632173297707606616196818482895086926362019395321080887498631381806997988214012436420810568992596400701073090519773412524791645309331273126606409742496283216707042857744611903279271623641832153960555496759539649172921549451550133559463700727010289276400241576360940423513491290353775297915729582981361817691490518335647204350638594880446055517790887585424247870203292549405292208341598736448439621766570134403953593715269274542912544394904893317088579054224950311511861015659794468599623535888635883312053622425296326924975071803241357761444621008384342544089900676835909864396890102702522447862940743979545698524361522080743954643555444849292675875521472744011694011528290249387321097294055738095676114927517609849141839412131349794855370810206713162726036843511317504225409791006586336526733539050124412838352418804911639216117167947111806732214465163541125543916159719597267721037062627283562349624713301674120023007286446925327177230597895404090779566055075974749859886999617718650153627170568540923755923749821791603624955567830699824606279112983888465452982400033494680022688003214146435997361620183819267080533517382064266631157442236863482821515692608191514684887895808613913597374790234687431861020169216735451441404275026821540135504288564735710352029860445362378690809828944115356611622113831609513336740823248145213085145504919616272805859027077603476664589916241679051165834561414532687476549152025378715824303298987886334294582918950032807213334149916889372387742796982918617322421303956808554194374327535175104805492587087189495899393459205770074109579704495392758769248407961759768791859405408121789919563037009265417478840748634970144506787714281779102021445044264979386321843497097291497238954072807492298834303869820137704580852988600483432183687584532939514552165920466926160614659263722630701059900187134348766362369430385012640216973872480372708942064836711733398610452221009468208729937574384017346933820766553260265678992349683872400333646423201830026406994658982477471668742015127538946754880140874468998282540475798653731336223468126983629722423719533582670156692798490743382377351155128210991412235478288330434146510919855519790042792705286083371545104689870327861755702423503465853095055589041936276395694620060557321388779439303890284890363930407877241559033587577095396129637110071662183306852864183328632835362231537758689713899806424571095524454474404963320116305657793641896112095665462836193852305486943701729881930699090260088496271189730885454314908196876908270721640815693491834027969535147195922790740289805614733203418823172249290916554921076926598069488532452270633425123352028528935080692333594192267309497193713481660102969805048993907959366359294205584951700230036959957927453141410395752675771192933379444927665302903553117542074620177966243639765627212663211782362381249546305075014237099071911688332701119845541251713049060325734942465645530033072266518968777452888232012510372963203092724444858813300100796465966661026910337284623331664827855238138211010015155241017997083042888437733471985991589918477218954282246172008514513703710353791291650877469847578462035729092315098500389006037200045878321463601564006720456495559577359599835140190224448965690413605718355666786901542010396764930222414024726215992775106143714830788979402226134806076786522009505059418066689948820048862946989398635954625284411556359308141032363010849966602053865879648348245671624113557826441661092369004450768549981799844824048951894961819065673792040797202701977759690851002688011179420518924440602232768016212132593121248715272890570002717948928667418734030700494526565219133839562820071597169210447133717146667978154195375879839210635139949887038281821647623488716109882602224088002149251822264617227184115966518776554157846821022533715918466689167570366655450914779949903249224190456000458476187509801098081759850981421458530504840793865825237376250361393134184062859042434767451812981886500118650154898323360921140532208084166087501932136734030993573820801666543487701707745937108885565255615411187724248048097737849899651711321212022488564511074667659288135250781029946146680466625402582694881173586098725241105798562141317679168826528474069389586750168208981026033567278214442263902911251145142368690746524238640312694312795136298191495054719363642421252378326211679463903240960477431563346468874961718380372563362146603662840996479067277389537493630194067645635882005215066808821206202815071627636324178339804948142034644299518125129064063333681283588016070150538015930763401535861846337675643741987596611869778712001934490387229251781613195136994434841397534995923806641680498713649875774367137645972269249767165141185514364764126500466661598394638185036096725295439068084697501549727051563127476872415196148803047258388743926653771043611843298138897588757839050425765192362029103034534548699672579953238336548376011497035643390044959009206167086769032718579816745142520667879315772182213577512582327060536853281029685324173728376585159053367135708681426432288509950866913217259277188468060130261866825358858402562649001744047900575102223677092096779733205191162285692481396913461916669552951234926335175497732001219812932666852141563029300124081380393172072912364406913644604771307662461945332792207311637930883340609705030318431554301500998922208520797046306856352539542556924103480309496301122362685344110245081035970292369913095025145383267241922845840729947237314769351153408844720775770019304199136284561760301002597831558204166519612045612371901769348907376591597269622650856183579131459602806564825717546398215298101615172726818763518477099761588931907072223819069607301447974330918915052842773454584465175853388174869165262998472872532708065069135683764682408541836432996191303042078617806244795231925384587828235298908950002049584451028712508650647465736208684371390693131261830441690429125156030067515331180191940115197661937040525352079231525807524471723974952942130166184817878399223915125774299786795263901401471567385836816091003092829981595932022692782284227916639664000698098895284325507311440534950199263425272516566508094230435602447549825148557555324953807115233650179573907951576187312059665535133348340713630710587307318066503583767714679855209115817892168832687685431399305256608738744842715185716583048468173832549674470657959918094131015946372088915772774405335510572324210672122634850895489568122453483002426527790849447165800247027946991146465417105257945286608351193990087849433650170340433752201992780173460413114292137955932549171572450934661892096154726549847738296547012211111650528702446327993114965222608417128736087015870336641037684642247590392391812270739078836864263968876737473287666651100130241839799965476802996433488975743123101867888198746295142967691218170213306596883126396234383635510839600430650990132759890770385478436256934362183671842525691838979612572291157419820091702454107944551112097894645393825540813108163975604750632160184548092307571002561015894857954649096299962473135317081329350196346085373150908228448483419573617157229327684470267177246060395344692248002429046992139349691111579851425232281343486535921877731611853279745249845994660105358097486568048863765245541470972514771377464316072424187278876927200066614059887822585407565622561097176800385620761092453267140164750477494363041533160794593592968098725780094128495676432498187590601172470340247302864026876064593330048137973645652473075592881577033051405493992925094396893882365085002157733021840419826173142478941358896224661032249993172970855807778492498510235710998375782256572702188777942359088812909812147618250126602889240620209333297421690988766641129167056683417858977397387777880769993944034748353080887718496225915145678503808551876060227519162287185236991226622788714137551907851999439176447231115475793275474650938725779644739710794149156093934095206776768947670916425881281015003306881710265622362831966065731040430176217155119706717490827737505740255760358422089164125438076549473509957253818635899622792056495950949181994985329408638037894207319422972180983702388008980177333411064408299128173204027822408054420999582727378241575515850927225926700959639114489637560938375111992995352651244925203740148041590817499523621044922755499271544066365205933681004369695584489198308287595712419220305642000140825394230089582438897618327350382973794052595306582705730132019964123124445723801286709536561422965287962516670750012429154735825768085872465993949935805011020995687576197280482188656671130821347075041907409742878048179522508896308750497675775272071084470960760111185507584545338299236667297184168570195768483347564073708982368204100694357871643530498787301042277942771261036252965550025148362888692258034034268872528370540795625258036107202291866853343139123662226211719762443883392785564409645616091554078530372414682653414291286996717158592783397962410523524572575074463046837328229073343900613068449486882142019971802266686982110639965990524347632424146483755675270042121402741509742720373126780869068718658856880959578070812795232651600432315560937669056203956384370527322223552474712929799735390801584973487816914179725071248903769177881065112593519635796516841691009828386021656781526951410973337314703631171718724722633851782868051071637830205303140445060832347952522556512523146054953323447735771338792195373600736945200691685184866046811109518514779618141731912873890101132667947935992514096180321304948950844848931841589381565540404026948628973534751689795308120518893554599647138704928543771142920009858027224233632395067081442435455761759700003406006208081753248835057369690147257594662825687673398708901116302960746287673216879029610227927208435090967463840648320184882984949560808889072755445948678312947514147528933213979323718255851997978264609868950651724562057062326524785217570956998791547233950424615625705360528388147810994295007549939264428139854184951887551428935542432392928457915592877508305801219398050040967210926782983639074118463715955330487913797811779346592676417772138753550656989419148401455748240896686532863732586698096550301517210176988502011537357877031693014569537127319525473350224646234856783301812418288636396982255128900428250400267603556062517720681899257309753487813357398319165630740032262723506873318495680843831179769815612531807190107378066230261315776142616321692886159755471097892537185346785813888372012000587891223579026088668100723221275806568045112987159585673083393044939144560715830058406370684475363606375617242010539585676333551271088973504456954782727467342887010109726922156146537756900354064828426030824349838732789379563004982780327733144020381926581753308237674773277013676737020551597668443644949487363681634648159507156531526442756992953758068308537907894982717179821645330411793561760852562745658238673106116593387635224857775171224549137889414728408371769297518157429945284408980376433253256176134258708173822927279474804249630578305298528006383360181076040153288881671751427927815204991480139423318767066740690233069186794723959006853772094266092373392628074063539062405757883920698279442437615431259984009214180543918413758939913566694766122713329970090693134406475638563545135487435667482468379949522855237212675452791301639672386234185549057018332205645389381551641437494413934407361819763228585293792268527436130261805864024577387157181399886175164247551080961696325393167678845261916076893151413922342731234562440831987078164442874351285843124594201401075229421325241949355717545758315424250821897180831580389771315662425923786370981209811294263633626402042636072914899164148310007584033287761080876760795220100482002185789640362046876092930910696882794734984052127440321693820300773492505819860148154520057245053754235131013285737168734922743543890439213194358703239868307534345472928176997264597891895566691672056628554224997047755226452884278704290024745073942749290634073804194008452006894782121912755080913222792212027205278598910136230267504657323985647766306865734786136991141411887575995831695045054196268134595539991502614176094564617537203010636569695584970199852522348804105587557988127338628678542601670870753657433913725836217422386065145663409430729283464842714084522422369437967873810100978970338773053594517081431550262631538537918799787431447935569288928754545361676224129594099110792650429376810960363053899900278264658613366692553100215630126082548780336916056311419983024309595394046790320717315491913183773637080007263675615563509427642563516420889162594875874147179127618093597945210518015714260062186341928270962822975315131853949512893231909554390415827764869701474941578300427163890085674475725845024460764590916924038246445644003370866310862763710591056778443509642062847140648011466948732049877583461259197338352006426035561955267195864487548127891017848758901854205191062669030895643471268574412216957914238028620680222379419547312045846667046680657764253560969306955357892403015820056695467479715835853855521267307124022726070081928425113712859024972923229782606436519024643250302562580694541960039132718517530587322678334151070886883208796894569824806932954354780474615484875692554764204965936274761680983526779211117651178948028862767844287179525311187509652955670766917728848227044785251232428078241676668908014009548264281140058381693281719925281571021975150581002478805131426996276405844283789915086648847606805076185888986395456686149263551292277517416950592496427132161412901600365755144892919348354150500539248349170047168825266410853666141189280046543156627253622683685278781829260387168049583656443783886552780606633229006616944933066137824991930450452740089245985508831563217880171738151630641520289052816068327758645978059549232527824218245129776275148501330972579281673599558969486493521474436692170274314390573616926830672289216862458280220019598456271596672541338846029498665491416251464265062437394172318124066632281394497927344530530918858121978404024229998095434350289991760105633315668128861106133844951470155030134051690640901226575928260720248646313603149408428049142996834467876199544242465753921655724986294728351601128679430668684094029917302662800198309677202300221135697844254417399926411328402313178649268444367910341786524564205435019280044273837846688510708620293996230022884555755072705261333643888899327760208351511941367322131749826629328211732084599117193538684839607100521982031447714253142115045797191614780297665312804678885239195520790211043259109393703033573835468579061369043851882257131148469025850378124497269941014443246352343503993269003807038524350479045206110660737078934143839289628567863925081289212614588755436684761272634456251113306106481480729117348642593620736903315069994836091772679862591662380348333406934375093925716139535863745690574792986312125258797861815789599271980436805821192618364961634108500077190791299293811202246341970015352589167186612089628195641582332482774707351019010003413188529058254750086698036252201426108803993716509817114888678898951462203253534562214501628594340232737644906278759627125056426853665760755505575338419236435067474977599699836461222538621240688532562539004981513919342777011069656346025232604699426809939219717321461665054111741129161898074628927903519332036850381390506021710189555089562244018788917420790264964631550250279507035143604242719295124217700233850598730085872763931425964313069563653889032681705522250630039897114331528679677560038878233323619846820098316015116683808260099713393128400171318344737789080553209551036102127883710078736124440811999519256799178937392936892386399080501144947015575821210362014836634870831342870539919745286258755732649472027317694972224662615300801325458381476637403336354930771688802443186073149853914327114306714268162945947845128364307157362197662754722576313656105502204234737921149675763673187437941432571129766093113433441653347212999415753754727082493151039982068063238423786070239332825471479531408615665161063322719430810637653582449223626069677674581760477352863851736479062534204247464034101438703485540620730449018526151065240550739024788741587438151044041768571324091043940765787219898533593315887794758608361660212018631442350831578686890235458541570756570989896434988162348995466508490931297717984477689349739968686095245733840497737498707174028779928546386382598300882137609541439125344556384679582668200828562542509011477887290005436206650168150395153339881041223805157825976921526509671809220520979607727684042835196197057751637475768360456420007109485717852204377241456014083486045463163085976611191778559902797043192184859746522025996365731831440220453103500017972660751935021625674149732157028327214737656672993253202363423077373582430665510843285447928622249197439577594536684885738042506592944924680077262794441991421396070352546457891394748709850356456161621014383281638725856752581918882652853033005812096837019544111939243767079743136630930302624134392644089760514808618797642330718802552561029678786377716670272010523423202851044912871846433758916607545071109162319913904296414142466431265445334114347423687989555422937492608938440093501700294238081254736735002456914681376745476367975364464775569214253310411694450057000939252643647331620168712838266370647441977755239785150737093010401039316733174168396936434428407262075446973530360103746680885550627832951658106458803681450830465649920404844366058426259877613001465806289479738518839796115109842768377289598716540199353616621377838634550105027756110465206230015350746553143931098191406210184009028438306815828708507214720573208101040353238866556674638165278068411072903542649291072801989919893593998919224600552758088179694974414143602990722604896243995975202607570380163746531677232567923452948686150606263610095024888838993152495377968855458126046058707333049062039323803303105473759427683712843055472495578511099498557563047987210175267780382336176198631601681619978426212279619217686090696742668951464314370735161116947633281806333929303919571835563392215691554691189420537187677912107558190929317211639296991138361507149311394894669216061393618247323002186435714194875823083973833173326607683971611719280877851939969038136024905119771806938333327960947526624827902120351736511671953480222575774169994433147269168473584528171731706990422058315225200600206233035547837659201549379171343518380147335768851665113300687153778974686115413920756912004421427506123539255015750085112934668675019833713701345889624016071570023181263141378964137621831209340586913592665819204902090389337973182403459038325898187098409712039376739018442889673528302409849063051357210621349460633580837983277916762232581275137052579163245134471447770412476531187800944969661048184646100653053785386458459820742402592268296815480424939845555592418644685458237702767587916269423272962293599957688814673718082105539484705205423583025374602822535637457153990626644641031998990953879988211760015522591387961502416746935475887550414065549400946475732085190159905200053101687067739964101749829284723288567236225223350105834534760018852404736605112652665498492076488221880419478370119838977001290606753641726830365702303799232336425612990252591974776630982277256210066298583786762021388441506919302016677371554826210267853205574529009507192270896895742744574717444510199789643649797762429058972323366842958840588455780684259687750066111738658058765755728469895937229640653096971270198865058587746678180175781197596371542933801250343149138426635450391641015132525717409086953326460328668516780752052771629534235822804068715556168906707671457189143974292809969478300336043466020410064390767785200496143621230111757601712815547385271341067376699031880023068837522966512271480463920826019287921963354329799607722676163333366821888369692320783167388167512585175736232646996866399180722224977191570970733691776635204529907721174094215070092059303710492493176161198093141022482257658776817655245248471533007357238251737339874243694212179105615105765015207361494137742712016567769943591706295173834592642627958300059463309764213240958278772091826082726226902101815897329762423820781896359123500316284861124890902503516959078870218652914979902491426915588213931759694033589818937501335907377479553245673933560426176401841840459704523658677178388874842504899548712527485511793057536558331620128112619842128602607572481336557787937252250872774825141422305960028114720230762504550878514047473763495230364064899347573665993588383214970688661110828433783114667353898052561723281269184025582617688236660039348345557257145207147691177430371677116879755590576592806396468599615505367799079230452632434535689290505345262745670397242279071603505840097754610181495106360561749030782878709865690270231994282295408599590456449632184785455605636085614344799810318868078491319126909091863716364694575929787014303620379728941436427850120323339867929085368593407496179257173593946615568293352150434336223480526394393106749340647368265624924514202066859240435937148797815451995681619223021340675439024659440867565971321474530606540025925268507830040788532380228990091040822618016322029995866896511552882199994477399240445034642431319277963064105286690124261150532887235422167011828492344622209943113110731181963903949151320724275849280665643000858349551275384376155670271549606948789046673036716591936205780314550885366935199344489300137561789007139154252215619490865382946143173464999619662921901472033379187341787224552516015611778244240842256130249213589227921802339349260080649020102870949473778770854952109468797683640956628185183901036567962995706221983446705465063534324056030729428289841843922208041116738731513099357013711517038436614345556885578278375418121879940411241577935780885848113306864435948708257185460032411111882203332169694169723180013229960053026106930780057209145947207050978067607819855456360815301398636649778212545918678638967685064339602062000305979452664166744752732123641588856395345300757345818685220795151313273260806829594066435034642389271387011583331010826575658012545930239025651499517949827043271712533578136516577759728595452472615867650451644124129463999701924132146836858756875601508770507430707459385310899593093025079198536725555650326981018973363218083002586236009724463173741896123331788100929136218571651993464779332787674875668947034886199526897138069258147292750065817929622107039536798784949197936443487759215581400751416124202991792289304608472637063378927829559147591706790924848201001118551594751459955516586759078950087149764362889357630625830017313767318964334240484120565659392718934053311751341033392028808708856613430561365235544396093127579177646531841022840507264757895226483062473364528030197506624933087444716745196444834194275365553070467637205330947101149817426186681109515788015699372130889973682483044739848880417699705449783550537700473703399180068358678028322409889350074720937453060979000518541787929457175501132551982882309022159332315132030399310789062336560834844774862883734324253240755070704683407497365581413384887135490796768142170093095496887223421221694755787444872877788907364456983820630043915266562109465044786684335778529171400219734778090191134023112730769552080805605277351322596201391230837237628803105711476870771430084273722795802206477788055331540508378987717283029027618710604290758078773482429458156425342042984742835902387665492517335878717856264897429145421453009239089626369984513739964208794261492479726844397608419108384107951875347608581748022107296413789913623687847701997580138591597594034939381607214439429306069080930013265320800146504962381430583343926819273150442442888505143779136602814395295681057646902391557646284580143346840058097516322568102534697703574110949224615196455307284446890097586326874661317013683378190464557240263173437677656274784901279939171896077844338408485234523372843186487649687611241280986381042149349458953693029134535540004730250062718441355173947947233991955017200727169881169045865161747651407151317627952498632356856608284763481480246281640900749339467557869762689061030839226143980015430929854158827388739322347557032042725602172561717190574454099072355973264116930025958014396104544896211415029775265145888268705869129954735036587632150884327704554857062201732350546019101683816543267663357068190936176659652014026446911049955371374418802890788936223276340899369461208537607215109531700557482508578869368580289415573034106238429812486839189913821057260556729136067706795741212970159592861334256915888465286108884734550251137145783176979685574910013474118626118417366509184464230986917857851782544260048113318315064776678424165158875745993149394776316277254888034105915997131430012657925703793418011033645535438319782939333554039380094848041608095525590496827058766423625632485044506675330304338031766388290572150165689553914351075470950010683271950068860805198402493543316463650104449257770527566283292639779202790451493142082292256503619035968769131287397940561729744357583207854430254597890255897132004827032309584827003786956838840707470145651738427938009791746853548341302943498108662648420465020141314813632509407317226810433191249250469892593738558545517141971124595342251695467637974080838527165059466740399583914242819360727023184964497080148939234681939942578425936866955596413464600187185801980384274774922803485646917446206265479909084591654501504389880454815307566562166422066616233009014234342017342229972913263901530622984478431993299356212418992612136400942805111502936924826255219410122845837600065026184705745090580981249919383004184788032565331425869804980376849417843349178848536238351179274720571685689631494440650160277169735264332315532673386042640282210288168743915265367267236420944752225577059237128321016570638271771564238703383243485058889016599352817900148526954996499140208632703981787335878809256662922865718905404383936870036055213135813145796779532299940833206463363335501356264222873804044233866341882332594327353902701788066369824118649157291872608922068926410783556718939736609057281732482842647826556488526301803193886609215666906466592844292066625027976647224157306913772117455301837885095535388208890078794557008977953280964763346587217898612387555529033100390210951862038522142277778829015631904958219276922903205575218106914806216369090683996278377057938806912842455373163904369505657376706537939492753140199509189943390371300613382921869745616887342645684302866588726846392837714070165369273218541930254447520213414832424854813985829505028036993065365749397337003416983819001684526357023606009787622446228394596517438511778104713806700623048931060176045586594396689579274124015522104617048165938768543667029595680152501160050372652379347069936890717361719494192988991222036011895553041101869670495722516132037013624643154214316116310570210146906240284988671913424341084803928213023514363768130669485560568286179343282729415727273997448524448964502780085330146987693091816524642998636901639075097764209714156240937611545313454065047310762894989173132627197609917676319680176114683659824054336976470532856051784922759014637406931338225568952172486926092050135997208207270920439068408296620841180788004194559611225743317522124604962693089771373170627188347414145111484717336284073655638985969054228070350571669387597801775746214770432251019443111260198710584951706975172774373309529907380018891078448909063639431240874993821335392253617632037023385531762424886546806076935157904505123662674620789619133175184697392999456027535034997331636297248338102364604729848023338572292542738122658401148215124318956421778437199290310641229264714121485459310961210296290280394823994104034524648657048812442640090711443365417747098994719494052226908585575168613926597126971015630304132306037885425121384699449412642724685708478700734709216005889428910747829155206292856811155979510237279037159749573688539108397634816487841266481556381865305654850592142394183631669536222465604451591367584479106582625673751027104427221864882557162961172924811934832879303529577433658607454924755215802198999890141297893176521919113634664002993119570890403872373853401622359323925390218339316488728742482905299276513204470725110669881221477279840980759003138149777938833307154457618097344301035075255729686999100228268598226738723835297304612793945186379898672628506849606787042524118783270367313519609544801511917907014013947820720380341298912406221576370130721166597511333740298757389606704410706075653568521441305915420080695988851969311943833399120688465144718081054979848727750234925377750775754327040682213673074086914982412815424287886658723649363104711499636878521297270238141996413838000961336477834391095087116135427297921516841452556617899945600157266025802461118609299467780527125055929683876085764931661117916476194566049577755775687280881407702282795678810946565243299276062664755527633117729739102503889192691420877728566498976363407106997237433295188766148948310519262201856225698434054009751235733058265334186988628837757857010505139723910254405021675072067746943582700321452242499903686342735998001713012523868459036765041783613148490669164033102958980915352531993488525901365989736880350716364807194284212684888682541347554131778312963895808038811626523796773010274589894499255849468264798998485375417052147650772294923292543671026959682934314319082498179884850256730254093472565702669672358450883054853562407016366575996122656630047754975376970339724337633305287167686953842444415281210744178310319036122579986341207863695993811165903375781544355386229654327239745453591765967989479209353209476945212774534199799788129333862430125299920956001003590263973037259583677431649540477837433721996586025872328786075562651827573825179794091011263227125975882959420681447016950623570401816144197360659150982227584485409454515270574694918140217056497935936981216047121531722846905068996273829445114654592401355855982721168472269973688476214817020260783413334627906930960687345709936914715566881291418553473165160729369826500162017609577693860928252455577363895741882274204909397954001782606750385925648719958129527411162440739356518906922181193988246866475651836758804863980042497536267045070110308374662908414381305328288770655139229671978322392972123304638506386353570839812897415808685859754350924010586803841668467483096895513527324305736253426621093938689020939720104285749332809862049730604391469467140419969599790782265153602536964484391332510815142452834336974325349108943178876465109041004008144749349315118618362318524209383474387334628702448261002520988349878686449202592144806587242350081587567185652644428607316513900158884543075272663713179768082731029401510557505030699588974459896692793801525439421077560450945978827628422175352096585642329350896082175614813335200164401550170793825479273589629471297107951817042787902156934586995937755950570102185173691159795239057717902905637269342628483163632547858542392714053151695731902773728905741859149230820156308552153669775543420355712963748500386643476635009563613616411984063935892766730471096359578699003817140429539325959243528899806516011761905221350285129366413729974828873555382649952986822587428789711802534008257524735044676913476956093905306981998860434525112564233625663318131696434223903334003678208622760200619035416286295586247121495201940231926046703729292877233006896960179563370957871551290824744196165578696097852430525732172690399025312399550306786525091191017055537043118892219406624210953486402975216187509604850913104767975613987720279977086545354105672320783476312216726194642631080381893186009001290004952428826734458251244965439474791519814625429642031730635320351605585945497311553809800449164601241446180719263488298823549118565463666549544821305875453160757191385865792872904854694841981210926200407069083388235591037890382519412005994005148605718754453870963719384576787324729112127543489791029417502207514944898255432640664628675255545726364999498837171313351205241424471319520420119387605728737314710493111078507234474826713502842167520346168433535865915792853342879052367337934114733027722913861159030954890280175945378458833268446858130165215795953052817334819235219710249885886083751024628752787220788081411628564571129314640244716657820092046691064008265443765596373915329514670496087692429953391899746906849133228627840240244630700479808382518642200310657534969353829339630698469904942542419421677938342017764748482360550572665916068147707737468644757981571345678037224697941937785616671762868571239270100717845486117326654359571464765326484384889270554701348560147320294999397070427839116665334433706762309425322941495058184775811884995778931262930107727429991345083700601295219240210647313213995163214232337159140028393598796753219089916098239417020502854996279524999498355752495084549647869615684416092356706556612141770044630217113599722502483948221645766702009137853617629466373750217826602312098460528363822932175470290680130105392356959722131858701861748233838787867639498678781256563162159424280266974630609302683583409574671065748762398027164060841499576485552573525696446035059696588778186967549124891171669386939498882850910035449801676880879545561677445014161200967457690284990975435241755202662864467124557497109128414158383091939683014288189123517607013528957462167701457719547203435993341202554501133596015307815138736321097737392481678280264903657307234011835344764190235683139678036873912051570623568156786230995252297148700449689739518597649521555314847610855429427253523607248145495641947502106298600972567287586337465892650459811353732978794371588142714182541081402014295818992931857826022103381798189544441284506984956979410841208124984511318191889579299541245194287767728304692490114166499362864872115174068091098122209901439141634355437793730197293083455396419367492571307074453887961719809674000001433600891177267505227629886129242117200296074370206054508900493630275873432765489391473228434997238452068860899700458697899098099048198558273366130566929099870335392514739565809025464234173053702571215438344700494470494848388634938612127813053299975885805524810201447435421185920923436103574510175826323832101879095399429207300959567634247068113686797116048223097131058453084779770839451526577383710105255307262589359474939328152005004589648494312145258891867165157039488104697358448640149611136582365497809346263424662487515142978320356481057597522682377035505701858672859946824201264913802195435138379171866230027292504166974820917847579234162418782907924632000454797775950898937136680221834637803341102229091959539830816446393090093242453250436899179385303251639622638446999135937821805864343210824652710057557333915992653178275980523701673234123751159923169126554237211593209149358576626180597884942769477642376356240606501867110522210003946532310599403111977026127051347213166049247335717391333729043348438561655493680906069708915280588323528840512986427415048881613871487715757928177283819029780407861685901461390717781656031892771684189127406538976033323825090719500635669983764473630996024297426676457239501086773457191520781715544159024230781406243571444441697071962270365346051141569909244135492674303647983132204932441897629008783944967083506618458661521961437493979013720662527545480241035743631623616466492374267539749247031551828028881452388215164855088814017513615359168818311908468408195596762485591770143490545976982472660847101641851460863261598108632439129511732666749417590823945323626196032794937291850320766635553124867400636644531919780940752615611689495299515435619942526456290659337329492585124913953635592783626611202741895278615407588741789870584108308949012834177539276935345736340758085982925552251591848249801053382837058072612174621038060415832007857611013822729838616728672130326697096598837767989259149331948128137484450125581436936970285958583018683164191792753909604906997704091859902088147788690443349442268425017677055144931029970681142214376264158921436821140069645620843544464946952502159329855546673608981962590574107365123899404998606843846178425027347543099373745953191846798081273213438727797503920001874585371308362314731246772343078823600410508458788831404523999912351319673522954579216312360952125680438268219172264296581218509773963818979650394667909663308019263344103743819065965143274453133843845968088992273890429675060574098691429324350729952084900265636825468102165495856389917313282374679727036797639414932907580764342780974481938613893604555974312733710098990200596439491231694997762440988765873099272787661655565182391237100624382978817405869710337368745749584229643499888342105346395521987281517423063886044865529066991477488145818809998978283714475892839141246386571956455883087576546813247113166613686884922150155444453840752094066185891444902597179700798131614732544077788269196831356226571693975260082786400577202607143117502399561635159016963645108395684189927059486446820480761234565372902555885762962411818930692558506721893185380740928891408867592693962662354035662987385535106450423360046938215552382565147454943619178636248748103527004179327020928247263102655713637902155689219175300611686424358267818584115039387374703245613801997013011518453353708852547987661446803276114186595943511899946498885931982386562800203015996559589312839471220007438365616357614243268876137708978165478150558285371849833356745579220461540494708323723459050857284894911151469247293752914676915525598347773261403225113426782805820121712440531431715040894534759161785000115680854409386997547458894437441315430793334449286516032613795345025465544642503950997422780395539719532730772992565958148512392199114975722274246402137720745926015838263733262306666006254453234066177426424143901413591485312299849614517178827144952217675620055866543712754449855679640274472549112098656245313049897687509082402117809891714323710031156306548700409319559385890029980699174249341600389759152774100447738774328305725277749091823187809121117482246376740909247340075745086401271227392804084438520895526079965823727927886112626452574811678319135842860934380583855337933585187396110091646471335122888416571464667512057269452079811668057369644054699806497811388563043250573895386486364466838427384930906542722668089426644179708165054604297879438508678403489240008018091520732623803358507495849776902616282724952537494143115789340780388624939402090424067370413923596096177714626857036788817469023344049871138163969042191663155977798454393788492395845769842499378886370179180583330681252058178786348684887272677313525533835694381263182268100943290950821482439409854716855463168209692670456485024249588173049021595430286112434743473854106223653725863633013950828250185530599190671367845787834425114882186505594913038368082999784292932895512643244630983646476295109293046562942167530332299586072979626416130783068784070916758760961412326678312465501002360853411100333621479153107085341193331881850270966273642580970601398572962344502534331770929921274444144569206220146021644520232654645403921046678934717620638256530374086596531313185470132673941200791716488750336172806588511065396732364718379274959601409695826028946550945770066773752952248755190051472461508181905515258540256479345133249143485904409003880256496522846082787048150816759334135335998068366255103491004297992423733545056973270788849349078137481893488009616328837549282133166678291983058664221856981286414529159301064604138340201816626523630288805001683103316494115480386384354023792399087405197566048660036403880143338425921523749895881185556592891816126011390758979249966276919372035228303953133599920048440592101671776982892052207925405424190630742576832864137406056126089655774034013843750521446294376034100428951218848812992032554375749626264701552470389474213922564448202186171786689855002504778544639020279930613624577269272293952563379813852815741406577829021071475420296616614165449243369500757706929899798711504747398693257142446263409221821915049338509147854123604749854129598922378368481931293459814882178306231765642263265146043401435536775760671819758852195401870336891488427108538770435588657311351406290875730838630130827647878776658297578669749560456500013480066625612391688506372013168732765352256729161288221827380690094114101536930243841081364426785874169256288870485983059754368548593116311316756358538110440118750409447791034554131370908196222987098553542515817665345311348048469852289818151980681470359323591113882694051163143374294180304564707963415207843535339792903157717498627904287451784028438397269616532029674998063132546297651828185785354467296145550897084793707176488614831522010385921401263284817000569615250234302157117859486308584930324426695429836668127946897229553493421205922286095569964981418812070255501391643471979341151230727579742223782695223149984811028249673652485300928074066369931923736119414497605541246125728527792886757885609589264344889032302256170931448215224720377483866574802966170578226504737350437653191185317926423648135032298730310939011701327953496354709304219813841563881688468366012206595065512385363315664668884482374745867921481108960255973941491519795444532657944544967076179985719553910858871367733182635840979701938309023042641065604810537436071755708258973524345151571150669073217986603105579574149046551288943647593932707296162926248356786407547016976599356716826139068231774843045156062673341293577310501593101848042718241898767616521679738747188561516570566557198017116026143796012701713627504533819633267679650617147668335367659700216543891769577057390324601572452615338487967966427535706153463796225888984599106996253391213648447647177204222542219343646236591847722669774834805801850789926500751433106624925732213064035834344101346599703893338419828634475030412936589951754886834538947291322039685065962675666455923312494190958572109545527581340929359686297312695642919415072576371903555298984309650272023628874199331030743769463073802770387097759770388823043338572580878772067627596134905861719603373553447351025108008783534815243016609548022849044225294754074178248973159840259368075077714145319598089404278481131902562848726569490210785743330662537084234526316275093841129980084642910918438301089018881133386568258597666195315275163807574493558590492040516741764710249625405588340633790705388182732621213624108066933964499595372004257973454621727552050337792237203474803010532124801509357755434530570313568873795022699733045803485155831475604528820996723401604300955237057939830685040246122550725345959331906385614355137306669731142330685189151403750699289133385800636705825866224039515917777732471259745465145047859460928249742834318583274736549216708884232975870881130343969280982646230265228305406473982481114942843704903741734992313097007103291307523193298100374751230865293755982854129861193731364848776887507149849107392773843355808136803816537736425231629687770269055963102857120139981166146668421552757772293947109528079468152939758922469049284143679036766372585571934936830068432233288035786372772021669953812922270019982522637293692366648108274878855185022870634067117115964990262698603518784637640753918739665188359995783157467035457505042352362856106990175887127828807455574695294765502243999205148726917999191455472596860116536801311579101788874854985927031352564264589560124466630038446594309374392452222006828783230174712695036762955926919706250928084863069704550646139589016469821211178488088730475438318634254681700867077620285284842905499332687460110317464822367771919783009921724518406127876678002620207249878212806401437158064445335080693741406019242438416615826750259635401260380408755839185811566103493046968584064885400526548886535288123543970131619620714406421702748924596611359662039422690277759420430678629461282353854590748168962056978208378336675049533424868896937104308839417163041952570936877691975116619555804674262994220205332661045997290348435109566203852890368934822576912150924568811418961774577308396920413558622921933986264161107578591567635561550364389001115589206444597194165689285357962087681959473958320423021079650108202969541085064992130168883228655937112531525724486569022726021681866896398355470946695879939408915655018901749061729865301983842476085748798118428458168909860158136908422692568617641957972419242730267760136464345594379171486199717952989839823078919891238209203325182369104547055084413899318830898673081295662205970917916025215784581544495163416919271623311367388197039817175740102259292475557996033393481914868463057288167225076577852593219822218577316494368117567201570322886399686041038746771462003707851465084314319229448192281591704474764463973212282738202875573236401826336148681961971609044950718519847173727359066845161329615911085799546242608442825798292957382183827240530729730430508863504177428046145858734655332539906826073880985797990924336374244986805788367109490622533317960176359330910143611784755088013105396074202407538077258830360731481118685872543699362397810028738353407146041426666848270412007690838718802500840887190973298294766625870618538017463907220892839561228734206994464101918656546170229723982809394187506519429810927692460017893226779363804566665805379331399814106117838115454451608637686345004203218806184248682081443753857329459132924934160240496909882014050270330367272995934600515204650977385786904562948656966401417250947940000959432661799716058938759125637404004255668048282522399956756481890775945079809731395730173968529626117711437451817408540317150895711965508645025738856464498241646133795266037045816276987486413724328955021648507554857268655308119233577648288992285134265583503051430569252059258384263028989215939773308438068345111828267776128341114028286400395539385794539694868863073835179891380674876380972458201067365471816260318039547952302128119582838020365277141587096423054067057776710070666448793349631971032413656178492765041623778084036687718221831520287358471820823542789187016495429994067577107552532538509693362862587736123310651601780766318640606190613110233594204960479029124620774272129425860998906064018464212043865836309510543092532355363239993375064448813283264832127848856531983019158518166377697289949388095364182308638969982708427936207830384573478007695283961010123671688549277047595334096164218139793642858610212138982089149910961280272475041272758939551894073280922566436060593969956311637284701249677302938292019840636698853821003674461776860495193656128246940484160647891287952759704900126685958232727973122461042535995504404090823712726161292089179721865460637351539452177138972913905019716806662936962081328905462168478197386465605779513628384098776624109723531408381496237374627612987104453771061920694264263292254097298436765239496933001049699131184819439504554884744867641239939118158684469064633817450704067070291405498388383598139013198718135881973725384156467593479964451169988384218007327777393831442824427064513331406797391762167884201578899553504002780026231132485292888288964318306501480107166411078404186849939464734225091900057126488389833207797848283613354002811497831615779472523302150665394474153490106936128776733959532029849182016495053074607802486592721893257932943895785980487858057012597993251332686814728882582712022066019559477595105427258506287172896220267541468761762175683037335971876149337846146193987044300825408940406176161158577902921348691735694909184957113410323746598234824207662227001588774575399057368744845331243275619392557820668728671115011448397448701126412294509857637853211885999318481915744173323825705799878432343734080633205214137556587096479934397363349954935879667488956686139942201012686572410647947627233338691061709163806112729142288588477030802826028914368917830296481533299383248934633322130554662489539317960646790713431583781402730703748419951627514810270627105232241856563934782242531244980196771010679056511551233198942427715457785409418633869296280945731901028064949275463508944391502755911014883416361136049078581636513346563919583939485110230319760525480879270695621976532087418433012120122112086426433374834354373868559844683952910753866208307658062355569534334189005607609021420752698419890744438015358402553990166155906242228886643020001264183902462289174108294174535355804563896845994134211154709044260254142296455937677257937504335549245592325477099799349707431949052255272353617617337260739785573836425104239694607305820856307852561503928316283923413150903540388470321611730369339549365267617143832880141542653557465917182362663036102459406686511765170615655046089359934033136639448607713424170849509285024830712666615185529490305718508727298067694254475030915590632284740652407943468972306946501591280717913584669392421968345256619388816250632548709669102871347492154740262061192021033692266002330102911997674509861218256404988461932930850465857863584062232215565729360856892260292028535713596305392193249238364181658066404706382039173560221470051883366826308383160097083514257292360730809007242335418474117129507085222315961298288768367166973598090573480563153623263397807561124040191695966851974953002803465206364141941551181343037568447893726330624950148608880250530453402976063662553577078407676095691119090760951057481641388544356141751958922994952269221693422074673945897027064380326642683505898254334305319252083909929298865555065079299033711535761802160894665192947027697872372300410961124214797098425099601689430206651906599894977899003408024363235766070621934561879199000639868478651766054442354035329783700857590725206267594266579833665884749244438851752819237813036295145692806780479313848347792383566028305039079710052187598120351623601649921437940938148036458147514828969203937218458335984254833450210556519295836646158545944053726809701882083359084693126394927815548975105192382837598498565247193217924513903124591463801995604940841600519954208678098349487528589478938578450404194813573584442575619399987609550583886265246784454422381053271109062860264769292534339563183298594443147605037595787235337350846689748572986369155771115307554228286480759327890429306177133649432844333653316700882975188811129262904384617911834554751801645738798640781562811899620590103296448336388132579468541433514527165261619034990907521536006097234043728384503582230425561804465114834196555773929696009582674484603677448771028572012478509088417721444934295803677178506538894571482797451094195522368843988800204393396526572878309120273230079405943616115584830787746747705100336446015819309863295275295049331465403889607018752500212956836264911787814100996351313314557872670549998767757691617232719148403639794500339170128507537258482339833378066117850834362631500916222133880090887529835147768931073406367765034913639651077982496358086644159893862288253403686721093119773572029323756002110278837449748808246632542695480385914301371860704134591322820823701008559865365342733281087189085102978139991958481374875376901556974505620695938801533950026259833582731819644501447492042107285506180732476411801657024142070566270976091361335429345151060389028484428448598390149549612045132726717992643720985977308225695733171504858138600029478833695269738793970754369238914053210112505722221492264201896201677921898177378726391450836319583848313323094324899461721471089877446725373175553139726778189886392331453092667441946624733372626566044265987267652018468017025317074207939705107188783214561473614180830963521339498976903747146023252561995056598377197835132683201076480262877584841883855687563194102314024132532573091931348558863459951095160395927779687497273262489114811186366564136659009344393579822366403472845417106104272496752952088607554998615682569119932055993240018886666872377523133841405744260627005867939384628045667492744948804360321660948322885197217424595081211572479580864231231320655057355568087945767485914668223210060675546644707944894796849609878174816726900172087717551296701629787487595254095062374459419037420576500100070389449820288319763464371421923808996572252528060237304629372805221444221372855380918231753967496831687107914090100109061084736059562686800196884355751488805278719105934457568692695663320353380774595182202315496866051908794896119030049648107408900812111129514771075475248680615459917999691410886514621056995161751724273922392005654874544982062720417650387320884118182497165816815774920490369709312898251771040312886769932991502921724527553554168889889616558900748441722429507321805953983488261995634360427303270259662755698154746515657408129833929743247276335491037281366526779939769979551084510057997284510933930247540897499566085507588784336865079208315589341050517252384598764590858320101513665263212367394668427208664222704660364446668394877601033442622654267528003377294732407007823946823607709347147873527548617367512406482118377039252551055510335439413487361781291255448412450543434080411579921209772799883372531180114095274838488715515787146427752144744748405670143815864714738385528170207974145096790193102594131428469858016637922452857428899826462617382162545572494180730325397996771757741762970255366225927929538632107111819102926533598778012818313346784291109682139811404156732138903083504674165616845666101109736120792207843391862238570930296186163796672414402996158617229401229733531688180027893779722789304246281795827156484461049824508150951079991158596351057751758527335514999505768579026808980875482344530888030711885071717056920401931585353162764148119532007875013195326513260657603928143045106768090828974204070727100378324446684931420660122408734299040928542119044009207854183185420948479701992910592761351046581678941079645711201486313587200098230999721501531830165099581955487064949051312351079941884239659191378454731735602057862747548904454184670227809431722188831172898300433522309887593398630330929166219569250336707074313707237976639878495504924787525107311081234781063792532124969799674516152981144001014507382507325821368153983793598933163945953625279658592528420107797631161234935951470986123657027739098270235256410781844800019805789171884517439058153631660878414542105688167794228536061880156359898199791094018182496543951478178818814910387994737011751460393503720872231631068801128637415357218718371900432657243023677890145691357369928668174859400770340239545832015393562743260787655563766209610359535552261569476275953569357081537914029021996588190005953693205146639160031400180036874385824779045635151751263899715920652313582723765191032373935641338715519509903046601522650608811222694057114011475191918507124370968412680039775393754561826909455128793100612517726195568710177375359183583706681425411761187055374703003526878152670207478806200398979434361147763765188734418807362552947508679455324366207407859843695292955436985311272404996190995998638365718222493349897737352754459748801088768986484150396336391539509824734594498622057061681495123195487976338909718306473332407226121979655656981450593483420115694901466566535054176274088386388961220504207402766529653206334653493446238256149980115400623745708709548894647122277017205317620696417753923052505762128208418706833918571358134581418416374457169094292783505764073481062227249523477453102480021077525932856065195486739090068052024570715468591801792842477402732075253276370022127591763536849438511005341817671357586932802197208279395798537008622946221426114572084958125519821243180894230309910387858668651587595739723452685009396643650208916099520431555162042583621612794208676286916673145818274568023940768961733921232908350867061961672786414409049079035920345985037084089608216059757043271788460799036517544624944653303149377871130181909977288389702248922871517385236316416547040278016419507360386858835951437797634857266462877351075654489062735936372991946825789826247522628825701989784166378055383744271150364934438572422422590725099833502514556539228538404170482181439339086543472125668874730974523429329813236594430270745097736400038388544267716973621708400156797796200098509175744473766849923319226206057888998668925710154360322571642654406040752660512157373430794900505224180404080296109596673811904492809794909085388951582806047219944429436507950030680936679268089311494783548187252455042302990892523528313642937456635369111861674105409185260027522766822936289323919210709941740991950254932952790334420724766585984864358069177191676186165637830087625820471787511937004981053740857932594909416938787212771773809187991272481015056028424382770564637314995227229564559726818131616120503386982881800801854440745988149567536950795947470871261205794469196550299794670142559460248564574070363413696179231580419924720825771498503736102098533212381150683539849064380793171319692998654233325418220171790208778676493677597458479382078102485301873836754685785318325043163587156989582391463158393767044324880723039030900602066599142904185684613507348057874967754862656723372409406728059253287799797086481017815819916583566218477304490558137799982835020269402003358931195962582233632385639428287973221877035600214370335545082130844316958799292484661330433637215477379529761775446988032801128322797161353064064999742931496241481685013005907522694498206895380550979588341582951807822035777688080480801197245609110976630290648736476506923842932286893726590687978346197839799776942913940801511496198858966661663834075386705843802986517096314102042019896198319450679704746687948811047022140428859376393484286774899673979150191953149930270919209717720187918271930929667859535258498100099385074700066372043431507941814444791907350230118944273948273578404943901188485200051381656275986204312650974432518761417584753551790325222556986568889769268139334354698397230248332198791253100624236313941741164793933976634604554092544103977885321386135355640645005199434125604548178839377310903122043903269315906957604596623905821331440412862549291117688138174443505507249189487038299376560823431571225794260115220543806396045800800352489535177384995279567282417759874550798736633177255505071144594595923534532898968391769658576159886450270127014204794005406784584195503986792341575957807933834146077510711157093153154803020430423738683953137289086226638753466359761051637129164857549405089091705343333765841963604793120354677821130515752618664402634004623658609935036495947291924825253877049655731113523922713227153470394378818815949705497431964045615265688356568282644960096463646291623657801810324508967879499322321105040975557974414732664600172199257599398983334881030189637784860085195116214778516727402820420757210157131707328926747683095286132223479875076229490869296198722976937689549189244623856930696176435577653203839196803690035807479259180282674573453029390638147137153253883266465708018542323108483247137662021273573881527744480186350009284948143140299098348620431336431689970970139127357232627545412264132527082765388105833730573773176622764630079355556676181599524535586244199149385387808676909170989753543788840456929986218979399159406640464894865421884380410184899410517874971218471688979724445590022610151830355877921313326587784079409528169907415211485071633235220981589683635841206417737301738306045176081384651149972125412899161369126764066369344710683409843227593607063300241673128763333679166247715782874117547962239700256475541805696615803786302898088150551223835607849042536253818322475585386360218993368886384838690266322060329534359933668756420829933846712526144478662558547141552512566785509786852346421769590889868524334687157585941718426313292491090841102737500429969574564701247221563888415123231683347576105830142220996092173984258099888670824667991285861852332401558857253277230929945369556881729853255969190958721754874904511633660054609755325910901464986424234758148232594562896606003548066000048294834555745318376165998388373109600005130923238502559521007485006580783992826692502586232858736097008940817383804224037853570845422409554880941994760726239674511004469044083811078567099047722681469046605283141843862724029687634810365311362027536580485738506762190917038753103103674512998527594689405994462099011014851880595648253110809666704051142944659931777691864957777935735547362951348611621321030822405083186283200508056837287157869743953892574998558414800591091862998492196314660584898421109916123686486437393797305282465596446504966151810265518465394359650895317403136068916145812009414910149197314504509480894483405322500973501589474916804718436938437146096071561280478915264580477681146591732555790760402384914943149887223621803854661685150714159435830036503347420888177019841205348686275776831064343079527585699461201089971844128556482557673712451799640339996419021546727903351348136845016914401858547316139900418903128993108577917980187483558206462587969162938116591354979239326983203103718273070085591928023349134900810773096003322129175009658765903001112773202104879987452732872381274918713044487395255577225229328001023426484101843617368209386344199192301718956704314305437452904239168419753349713521344810957405292405553110066751992901935275194617790973677097546364515940211316171000343742740906396487244637340039459081652353962354857373270258647722493530231384757645908355031817770174733061424860123556231434655279849470855904555999188943341679882450314195609825309330697290816345750613221645329271680045045503150396196980886959365582167959822221927808797418301921846788903810187602158369132136630257341701081064324387205064256353112799355515253464463438777034555026476839961881791982943812186771454691125873285975353487652721979528134570284498968022186816072190580923741236293597043087559912793465236375721266056788306655457387665935668429336643400058955040646547144725389050851079801949847583545771475342479398396120473344341269345194382812062316637934822547728648445668325312885279266903807916673893757195919122285291879171305624095576839714135785044198415180965287605719778963451372025794042740959530263118846956956069546669883478645876045596335224926602192525747123421995941089233505180467871776971077873730072541537067689337764031675016935280049204740053687958518350402419166636062512301786479981995039349524183973519310957114721554187598231096232601242722813130209712902696936253086606627169800095763296996666808322381077748805664919909546915751486839542877304279662236432043803199914637801042279402207066193441541261018908560769417595613725076061030477711227229927176911592713107067602571831343735784305343410782819125220138399474505623477355215568106229070760980643719463851335120534858685807736243379419549631007664285650773133803185159223222142643267462666000145105221599013019735506886845545582691513605812401231086979145487897099544123656385960639653657550083462172761947958829512738793454113934620893007404243869859772534821604260176023619988428853063246172097099580162858383354169540797663760578143849532438140363965526977175114053703727675856307382606104495493018220189147759613541105073914176580270866758429364203630431557011853125671679702321675273592962743845445615231697893405541667661234693201476661679111184198592560424892252522086452179150356235456098783039181606174036111394120015346577236022399757441762637771301773449052044193688628146329976376851149710642334299789933027234344110692905196832344690636935411197517907834090053408360367121032298404571829469727990757697950555685221956211449123158592001468856876385002091992426023516125386213386570220777207660599721461795865137521374103032979882808081784488141261871375601683402124599042322324989577364552250749354845695940409710201455792527754694048247747450370385918366058789294001908020977572560929218696769840334001507982059770480455485502646912755423540286633756046869365472722733952130433725053801104950150356616430675172093427244831479738882647468576756212819557836854130422946723114167017843905151700717253757630252628091139631448377889869989834864447526421681971370453756198884987071656116441389888712314008591919601933936727410549663323841355226052936502018078948216285243613068736448783065058727638620053217820655747008140296234100825618581695459823039073588077246205368181709589693239918669752988677218512487472773741104542026315116577760003556813780707031605529431855282551825116839560479989946734856934098058415863235343594983539676542840984013839181918029373911836455744718435128326695414218324849532741641464461043755436935301652473794268640917093994196898368736764312291679360147032200710048620752474552956504418389049191749443773681535596195914210662734139178579143169106361541256804361749763274238266252436498171533878414875226776271830583725512866903637645318563967255786796738856558989039659947007811786328767120091655076222835089741073571759095146203543992278763424575971238531738522130252104426282528647612023188008845334468262989381205387525628641225511080804997173271042854803981625276488776492867526983751791638273332293712463303755512588046581736859908972200694596092363144960987602558728849653030225226970230394006016007192504923758969705028028901923931782609390635940205949120119831278984169265295514341738463943884741882401884173354800077130068849372697407573937663908146227991449145851124895222339283183558182629890352301981989141108986771304569633136580603871402626973683971145274708291158102241631778971725868922520921525143636830167130307124442235210394488266016559873997587691519627348264659113819176452234912529354983536004183512260723894039347073791135234743466859326763138378459277806227394814539691880479254022576067710082552501633947362632459985224032724313221904949689767095912561283623262088202151879356113116936570276422950298443637040844677454803419135213929737300754228814227549627373813529280819435248682141913383272511829699237417848578189173228556792602939851532339158218404807121564272054300668017124170472038837702907116463665815783557629966830453140850227865956190735057830621970685157035165462649680185328088591034023400699007357336870280970002772205330248898513632648858926670270448201263554172428224493014737167829769894301676212647388336353428084806501525285657137527553398715645224864208600687469881567050985094699681326416445023073294510847663016966939882306584801886553804176005575069672560922864596937885566515737834954832687519669757715799227045762016459157457347905819219763359975865283409103684037667964556009263023709105025493899334707042878152109339061374163196861432028600819961377198152094566630791776025669945259148846902816372314202635959345865713077467157476086965038212818238743984695259986801033243466478947009316485401795005870319382265371781484916163703233501067349272994519990527651484348534573265580853143281408150078195999861325639879316822871359832979142509262577511533364010836087456733782039855630878039884201670649769893573769494416922303350751317800985729687925813395792667019861719331221056439420258824460234789610325762793718844299851837425426146780699325772534748817580491342494875644714171920068608280823791213315319548400391090184672660549383016168664333393754752910426541395132520042747302967627876496924880370211302977103519821925074878053103986489228220241275394421968425827879962807407378059842276785685111912702441976016778832368844274723841187106354482527748761194611844889014376457833910395093365156728149262768970118052193378406572729654791662106463713807301038613131714583989267837874949842955308353348965988265106115310055861196811161552542309591699925054324916991047625316159428841399992115738750053845536721402555551516870518383684361873681629996223281472614671444656845298712212921362725703496555770329946476088792026168355074976449085411777299879413391511793905632152539192293764511427530198936246060097978317351971012710165550510768371765008354133057765872497832830828353183180220231594719185343612376018531239563317039270710772762492917541341680323071688224483671944700342851539387908514612019673708784649631384441451622315560385010118506885217703010617079602758724493037329367527521014973398955142544783153013888043252963169072613263212129276884350935010992194543151093154313833190920710348815233270147953184534884341827297276018601472326549849615515104959157694967397228000746438389802445530094540257476145114106599200334676262019301457931907230692230095826945962170126205193690138199533810685289649190512369205750439234136392219767386666658077608080550972278861536564664188236216395476822055848409371449367620620765366641445016242155644981306884948701919955272285626493044743926429743158590590606083765624261976361798838910284657080767993233693185444960206959040892885225784691742249156327378304078667805908799530221615865129070468650978999868218137683692461214844537687448066401490951749336407779667992554968792065794889623638536871100890948015701800972360295648020749715578660438886068033156900898394515898798004708844396806213867939679162155264736391561844273606658400661174488706944914029483421376616303550894208378521337831268057178478259289998887751475115048678176963788115077566289067476492952716185165437468100949071977606649846710765625992493424826421001386915211385629858323133507016183512644235192462839583283079891430292463269419230859266544338661390253386572260633026737452223307607241487989499863424166834718784599827495627086999600490288970662558701764157859101364591718232071696088585212896901947947400626558973278018001863019245038869527326681016506768562231162103203121723232179748441819358389160616488474330604704684141231002812211298522813559988722081407855774878651974103869119105267247934507319563129039401791990263844079971990360420579130847531007680211938763914713643764306664864034923210242629310466280190841221230408422002483461917917857319087352564049092713110589166002318603759113871650699628212181599152244478698161641103512350379462421997595697265805621645636257476813820115100151794940482934379309477717047669879330497383513704759350593397547672679787893985956502592834735036848752253514271684392103338859179866387011756456502594330974211644145310456205782716913170796533741138363308847132882504344509986209451312556654328719572790115962310973444150111936228318576906279539020099265932006865487662092300435882449059369066806767782110213320855363152386118982265406260071920826675029301663806872227544733313835502517042300360965376202687782845848986216615373192316319616393506502602836342088975269337107554400568713575004393562583865097999553336291897633907465358358709050298933783045116700610383013722663887200553197880829755045587362157822139050408672721323362656931159418543957065231434141925040172512759639317937239327375851923345761819740000702521162504490424575095981842676336390794045004090777237975677617017061459133579073312267759621727739306741339124649461630344089467223542020676607354953070447840768421270131253675616642776557016905645530734440210558397956015549429676148305724998257034829738192942942046928695453970958334039386817769180280149106623277474761505852596599012479907189425729411359631484711755779807827354674452540638194253354437974487983537015478820915669056898179515455206484570793286899070642489256285762693193307432421863976324453980156460723071851771107023689358925080943107478227963955734150238428754700588321991888200557488809758635205152720375843686306845970548345124964771049371864634875774479225339980550246878251277458567740072354435219043603563884829668789057461518007452719285618525662073979128601243209893788129083379464339399324888235949833892658554106800862817346719024728609150963610328756861135538516275303852875998572033774367377632878589350292495405746699051997234442262327528256925443826048360704219921446299689161807380603393696479042569983611607293379630717859247206878979000998136355123262659844188428932682748230826263462172148779816953480528463596440271803184587161140666322063912716726720992651244057129200204494565835202348018145612063688018610513854144511717480944673421396913831956241844012092053090190399863851208551092778690845156574562634887219504869730603263580052840860438030022267296615599745826802131805102039956656857540046036926763513644161709492727715217068243423395283700866946856601907229765434606706124069773478935720561152603375294996056217628638116555282470931336787242324656300361900878328526886815011564545135249851070578240990837371373764141799437599236346421109308288686226506643443114520324373659863886471911731841618213688532583303509431153700633457025526642432183582892437694752656468553741426321985918848969519802981190495826845115755878259773665503013506870668367777108520156663842637402885040810604472755031070771894348368117585153351351212388340088832367708562141971075094860939629235926026660813325958674727192611688434627239173805833162241230369102257142827578930534624433872491216495861283910184226424359384294609932817001065018558473981597806021586800950782802885526794950710012515788914521905714284166990336465478106137802877599832210859113033086527185374120562628463968018939793564506772153514628421955552004511150785510532282105061484355927946629550701200955811027687329743918977568479597126996367752259670643552794907397179446737306110568078329259719553528846520158726648718218931847547684076993069867889514845415097166346734285024207334058283734731979004813828776602391261742331060848105374929725380910100672897733657577154766557560329306486791019113331028435792940001292892580926590399035625168866451893109690886291111943315347038663263219438161165514479826414880968234836202733559039134999165612959084977308161715869672527591834714097252342049829006304442166502973410538472330932465680884006850601608073331336748256397103228374784668898344865922184150024516206533379937938084013734940131095605334241786381642449044990712983110996602598904608315549421131985282961179775033754247624707356937743765191653313768081836742447758779789126146055239040800199130820297237231390997894865442569302472364907740605296973935723768628781433718699508977551098093507628819430099983615664908222058520988137102142380186361312505238261558408657601515085522667275597936677834471151451774317940857643629075747816355454851764944827731387177857170066345966823953781394820356367138253661511295773675366991225463988733320528721137929976955493084327919505234137938335503227191713174057542205368386089093698873441422851241507605802110884778974233716673639925114582981053095904493978724020987921935602428963867477447148170642796082942756056494261501943413835735627263969366938428495925423777827287168227376229765372784386422034582131046265848518943286040420188137717106141953717581829682093367692371622268112949617839526963104262283771202498075182468121698632815285215606299494558854052346229481089550047454800928690005619174996594431503587742063908522919213637081786941687833293867825052267444085793928444899729588703652084313861708329874250863660978957067659142261952893207362912897785336562000559230492640727655724412401465160368778795569041492097745126865350856802986074314372978713895980445308370688285968741219510854862541449558016375241470198979866799487059183054010597908029523690635646151797188989751934160610830306285621082074176284890771213192273606704749270264730764426364932192883813852860936395674212218521696635241369755261734358397908713239294582264684663662341361850428879199320042319663885593182832441274931091740622529749329978492820362852585085265019529025595386617240874713004167237455699384410791337460775120168702913643588801727209083124441383901606786399716217066476480833085248535535327588487884144454655969248512880381707909598488410803334571603065757655570427808561176377359921013469017180742324550576328209597835646428856064270153920892320771881315706213058330245266342474918183259141887680986127481409838000953584723240596383806338072356266749856262140305880743039384551898985280510004518080956638074302171079203783299394937841874457583158461337897851963834010113048641127586201203408301600046818164190274499999008448270881862523668592832825716207591195775449422804032210947444902841381560845040284615641281633234606948054833255301714560517322721269484890179280227215880951469870065544419126787339683507215961449863081643492891000351708111551690812435747514369707869762886714166020293834224370753796429385531335491047374873557618798054066581817454672640195710146049872707673549492089066853940966461959864287880068008527620819768353710223065155613040034816739250427830251994043732908595073476102325872238313666212141207835859061551522827330646423096197040574809514645416545148691668103330433454984346697736750877061534134645778241518189183507334210526289132962135990942095061190142613932259503486781745640733381293430034135426987297261091700947791048237361616785606027357641310226747967503350697288588930424446850122524746963010223016821424223563938751054493859436687922670528810013526061942626088948522375481397213574562051935875313140214034667240778734932910502487766161151591655916898336019372775820602168921962273480336424509072664432037895369247008181112782871493192659141640368182540596643809393477086681461551354117237683463050177857805659277038824323464828116760060173705530602866999221212444206642294090930034284963921245090537609057355834775489452336132288374912188995013934337086979338043658657923866600409220314447385314219316736776088323906798160138709013860797271455010804007280008369258932790224217382764997844020211822940396846900466764100705562706923562525431485520387338235523090070688346048383499588077407081744857907860098110230401230968098351343517729134503036642341705348823335597932384506403970978685572061354975973471040035470737133989260435147734159302372485298807085093659987878735175783782080626434965574136360604322833255119333260567990539470987389009716679148493936375376827294022210515987930310734517277762866736792307634514842701901789145821484235520526903516540228304486316276634434559657612732534696861900166229845762247735359664773891755343842388829075438056569113869430375864383072056956224946502826240431146074506530779007849489656855702744103303303633710070681535635218324016693918070761260219100204456650375693325225482371475074329251598269932000137366600280843924946861232560663374057311892870908155140187626402749464912333581186068988388539663425185686028575212505553281746639401651652156807037216830733873055839422901161207865508093212987895100477556498692683918565479938212426317137470685459454038139665487232317383640782471972834161250578970421138528885201743452076600367306517646524511375747213644669737122673456166199759930392969996997117245346755849736687887876780705389139041981198366038054242503857715993021462238933846353610570011174048273897912151711216236014957897693928638077817970639982364845310681083033661540746942449449716275642042483350267362946952208539455546067368242153527743030800199896489021109097753567158536547837608905238989777684117161819082156095830111758061853696099934701624435895243385373398502514207985758828537922697881450774904949108313373527660861052877768253834752067456515385783245376406336427168154705661587255440670976036766514401363133072634377359279311405618293139727082302562434000659340548072258011209521256609767329357163858184627409415213385997563391911735635050639361547657394606060888115076571641616257682225390282278305581264837764308387466460632676371088723438531849405459913269190910620674180938827873275688234514617420844975009836754159669421946464340806452830372131181517737872886911887438555884922521446703000905955328058427343319951741107496066292057875307384770257303242592684201848352447253136849265563974209726820991640244598225550826226393179852071348405299294148080596093722062137089151294472838479407254871606264897504314224277801697221259518033862804953617462840606865631281395453368294950263936884543344705959345231491416831089698743685539456390977948349856686722867462870896989451718791937901288342395325224528603435242367999064511344512688376141125889347197735428352162662685563305301715537558818573375706771530160505487324584962368634562739373595158240509394494488164684517569594920084930561648392833399817741303233213248163107953473048294791525091765094973854792191724045263679651595759693134982396818347050499658066984402953432075064348554058491984937771126686139945197090795343588544562933564298931599054227405947580302150667876323885987757959620863222201814655660871759684113817432870059265598942452255200802266408164154495555858470962832506208960041558350299061581266108798119873609447060173895110605599876073501869008155724825858632616134963680525604679914810707487352020649145785384734342385960183685997299217070360346050903349035904196316022779092151401388277132903399223293029069501870226661927872632257402620016036309621150377496652186160633890954948299583538370084471853715116434905887372330153063084897786398798168096082205216616417841390740258284349077964509824645490445584931748083318242808252053477719309080520264823904658595636376103242887059168953145411564658612747614868881533844584396837088118978901683563846801591663739584316739306204721399618048422620687361540140924348867796717632073922149599793190937164823755417635304435729609156985719488988286000325755983084236680616250746356400621343307930174209190757082806634227333192064912889284238108687993561929486537050791006580386020634999922557533890273638061017235829721842677200354453815236480954121262733491483828689970175429329768307637538143776638037602618729378234949540416703703434351064146735328282087169328834944663813397485570526837650009681589896838587260367014302295497862362000148421390935982097266701188842420514783485677914163325826493204952802197318378260094428474820212053241791422172530923870821434807567483390853661289129410403064134567080299837632093463045438749987700455718086838215887439735461715957229967605688069346633620348514921414218094010023328959045884632138220135371664451121323397726087391400359346655412061395228342521997632329803973844730918615095779744376190821092068153498736326772022025001625575927954434300305432561474256579679238533743591642793052791031759693047058880827106071216650443154739386112136324816114589650307230282923138815345542439622942962407120024641186326738763452173590100514285108330447106045463260879826699786492332263552136610111218293325804029442297383418206161236937905105897402637814446547165416149923607365169788877520186996906593429576154284025657777665284998170416276360600631014802370402602425071404607247094240042639379843031574556784302768388353594292279262491376787853865795875853278518734991567683570696600740912124700622634016780997098391526071212492105206685530591591374144030278891126804439446280805151009122010492637846555346812766562528868626771082270958126348531414077725869696370785942379303187225291386152331833404223354406555056541359973809604613914805842982493219731343494397157397029166960810537585668126941252718051952736414063750315617591312762786978031308740715985890145633062683559844172230647847577782821826179254609693712269208970630448860318995316321217047686378812390191804497810674037074012802239828415676880842810228058094679452071189892570793860512119087694144034280441610133058883138204526324615325948450061663105322734033556727751132106659361919423002639554003881018471265009960871585476155405040327704662757136535303636338157981449057425217263602737156708191686602959383412949197007916998061155035675230734497676275829397521936237868760554895492172786297695296726179993255132081902818048408220072302749545740574518637821455410122267839517161629307424888892839346746579246787420792888796370040499006560130384721414789635145605257696470730417009932704411150403879279618799362691577078164469741876959169663740470861931107317114967105724787365760020329171222044266272808716346339957829084802089269207016350971224501544908862178053763577418259206933668523035695601830200130502850464472110118248484198928645496470701611813484452795594088903381399825065141569800064371649118591148243309626553763770357435670820984513176883564520457834498911200296880815347500937719741347038048623990254758524600587658888996491457912828109993503244399294430904307106356329246341639119929682166170375736720190088187363708078874088117727812368132037757788929515631632568222626348046289786056910836056445949858600346848767572847457273551955253428184244117380940844122430126699140659458198606582908833156066546880335713763440483364141106432173026031814040658510003145598994355163215947239538009595881164211399672606899941189819669327303492435527412831448933897678762552808923032732043028204739018677727881756370724832456669889763269056423345232407492195403280869920124396427840423432683586795967959384075744549807018205597748867968105127527973795061216500686254858658554680330291917078572464661452020167971358163369948017258452270372032162475663738428429425435176466752715621963550950454667751245679708375411504069488096725089078985974824841081871272657387947849647187907798070482727946368941755298534886943788730327489481117601910627836457558505119908913203710340673491253936125638065687893601306908234377406183629815417901622068314221533954596344934248022658784516489665670417739665951623453887453719680209411859195245897390253113103684056365001361489600207411741992942568590189691680752326604221906516096398536337378578917239286364494552032637978381818690770072921086434657807219117495052170123400765894813743274434769747872236147351549334636337360797592705631478283167220561897702200626344270203405281188433114943333404820913556041557872799762241670537201077661120269793590214965932538924190428773372354041337498715750499582146826098443437657346568017520436845447540201190687672884054393035677580552848498768089037227371744683204505880577465430970178709606877707378736413068448371625866556329642979308876759699750761374220198996115595117344141887178417470542492321579958840065853520619135479876975294722222883049666581691470797890107597420220425368655586831216588370778991480515559465671429130479842416201853890579076019190239344583826444829129445851612710282894291417007383370454297469314278892063188149145672217262405325033296952473574787019297459694646355253425429096993348155128476264553554360905649944766308143848283593185569871802668471432021164800063658256702815892413739479975404026023759687658968129904983586903388315776578269451215891050349451816603865317615523582417333428691445772418817845163694830552767746202623281863724063450575765298707479152659292774870039800542687928437511181929662835163841445248472548109378998311304265895553295131359035152003161979118681646145556202933801939109325482371014799783696952362067059560027262771812527059949222431184821386878315843298962055982466520748847823762268624358278377096131289176462509067578162145168958980749192756310182810859898323698440367427680717582127457263324281258975370211429851338319930438028173813717257311466405186364506490272734166297019446776520646715484387508513778059067477607568511983535490487609046917717393879010917551592235655635819415175247422342892774480685774614081981388304297956145971946822251516698231741686217427616327128832292194211845101962352097934514099708429672516399760113355145593291588250276332567829017932586283468626335920697026698741975100530392937352457762204941929167926906482850978822376013594830389513662607823647635480166633661447341081210355280535657144936343482741370028316171993945298124597872616411491633889406796658556946125761642049620428627485600000280826851769904698279410696885148396061371274178438614815472763518259147377369763616074975497617582942497320074027101388973837591053955674898998120905088742935146913418959628918225091168088158837426691197381284101199715477677946639730186000393240931482437151924076623715910555852353568519757035353641900573349015096957994168954862647993554421683024991597537763060877896938810688140389436441280665000237170664032581160848887571512473690400823833010259525170956180182425365168856656866234210976680602921478039339586775371922416619181323244767222405237969897643063836748364230817613030356437879430397131810412138845762976691275647252295646125143419117335548970144211850120994754975595173390979129403684092395685282852523565350250341023080360592595584119136670919811813585362549298374500806796205724149145313554731482811119676933117969270912985929037826049933555976912963027411050308235482093410771199923626161929884018516584778432134216636579556141450300785581279765733809385754930756005380039133590402975908310839371952745200859817681141186007767403700414896701344544514392181607807113160329559646165524794285093501767572406916937718116672602303078670875313874379607702671653957491468813001060836054292996956713374633846637894330167554122866271553495554834870638341918858648262918737320578177303210053907794858735011666938628620307847415720354975300303884632026497357347087881699549848084229556490689973502510960384463802828441121084190792604226603072628904257173306249924167015245810381836375996964963893051961098969110307178412639402678527551405674882183571147246144380134754203151277880897618404166829268710375238026705076851265022169263895300075058550186152143253347168156411455739293099636451251706836129088465614248031626255936461814976040615262911623057315415001415804407629366711028225996646452054183278601603660978782042607854053917360441532502395643528514512762289142681390019617179964964296086443340250687596405883228189813253962053732993652398991453821088405655470668069028151859357401264912142560973315488080806829093580316971632987631941903766964954851135405586810204491269758765366309476878201975432539236310062804309515560567709725674241180043264740220975907268192441114884299765658429863256316327544914634434522172073085879675774705013684020744832833920549671502722580162189128856114630605016313114506410100690931132954990536865711956035315570578638118300743326378594404958135213921880502193347882881182215500791397313564195960832442543916183713692326124878839063959034651572984334449235791832220750586089165474317617177110185280208508451264129459703194291302776876999245948403310781260536995685622570819256858789798311097519027992390615146794355042142490526839236981807158799915172736376704176139640079846310521637988197784020892984456885919641330592619658695801582261456948116780342625300059759127645941495015852888888161618902670393429018963599566906621327875681238676165688508367349039282577632545337701501964201172175580853257566913898945572786869126860342881243563938137358450331762117180745175565036139633476398151254774945106594880166517858195386508796889066719270646369766785662908737656946645416850276093858939448070527027014409179824587533655487344870414568256288660536970242354675241085369407348858078849901651730634460144033720233578853442809972222745335988948000935014425761491372303231399323994445149480887344787935966308675935132640383197613507562926311558961966819005628593251977644960125868151454006827110923417152814570731765664091074771983152880471830755705272724115273481496308812255434468636876386165680867709323282015791205521170981014800081434621300414082380388207163158175192252019028258881493460608798684050833825749676539458732773013128505668141722118901924813606703428381993045335709900569184397321245562234718235846172318121118643604523660936534700326273279324762343154261684797058694468914718277175506321022363528147591392193766224992777804039106148725576726675555317888547303064311638450201847523161268048419994603157109432573052889458096543917736349951990145711977175344593103011611587066843315378105195990154676551063771814027518294864232154679830991437825194946081198590670860275501214847759748116050407942427721801535959347168491198579696845726073775952860387966548463415718164529788125863165305608229154557862178692784851995186438179602203741084886837500030305557314118727156445958106367579374198167285850561180729290517023307109393133883689763563845065579005938708237250694941965826295161285959701885417190388247092366633489140148792986041654698771101635317638286820637575669295950834729618137061341572974970421284479810087636566908275850055976375714178373052289742620839042278026900654009216608447493463630917103946763122642401799791308075846989958190472394644706279425459286956668765207770122043224055944665668138877720278343686031493665365411777740993985750281567906166024372029515784623715244764200756308740062497342058002001322486237588536484304662598085783926441986224060487372592369665444671531284424048057823131728739839437144062320692026632927525148355045161526494074359859507795840663179018496299884241149116471509628033159741952363043810077377101419261935283569539376643722598129711330875626176835230536413642636808008602089563807511508275809857599869990052552533973415005017927557547488624613609590292484466548033897894263428294682615416199021110643606721222112297676637724221188558110538883418398184418969695466423089066968539707542381390541400459653617228793567145264111814923510055750542274883543262125915593312004414756290509102258319253311037387459641398034120575061142662191191152634012544514306320889534699171287478694078571636425459187217843109213709566740811007513091135788218659518632071497774952213537615384488312471898897498606766603496780238946946945570946126233033132618785868687831212541314745565211149595379487301817631510093389716759903232069697801600383627947494067757711614409225985595230745085088577045945454937043463137373756252313213743135058385129480289261721475055804377179534722331505010543298482024309759277484547990434003350946773942005918000842292756949001973531814850715865262242527998413154850024115762811160936612216538369428521290312586113897713140749947421769130432395732788927666736433987657214315940848807790704700960565324698513791205940218775398983161584808945948622530469651455944130699120976974640902833496390498294555641967032116621327635131303096990549237670645276115987679442983363119599098904115279610376156917449477179825651487851712885557934428032869203922990051060168302868444612858269396380222704829818534484302814126032931919478112431168769373563053594445456461201113670120781155782573616486290958765027079083498168796311945321202209608170311049717378988830526004757536485770701340599462172345697707446173882354004578845191750788274718569430291949538431962367224935355858120356367910523344065642556232216123646886052188745787452555899154837512745095043011583728473132350930636467772716355695297463048065158214212487812828310398024061052433855495958947761556512869347321046104333003676759827077329803036431676203735389232467774232598188928150631380364279647630571334742484771958787758616785392844672655912737533593551491571234456291106233667942120641777502998777914117188469352320039434442804223871712949213553053724075549895167414146888279959852301654308152430577716501345403371781716251734054587970255202797521525743866420835966977299837243091135996952277506012356062237081780957304377609486683866629759905402310334798205600464349200122650825586278694246193458740909743514196387815475144554665168511686923397757071544372672711313283206202332882946678239521254016795201063940104199007431914690191821416670471653367529578167146857915207749897931879528734582553526318650628990438841967195000991056631980729579977762826403628490235784766197758517057889904075524518301704236652677056206354927502659474914380061324614110885265229969287429574313055502907555855871384017461517734747957277432004738747887141481844430695496373452113832631855586546792501236755559401614755861922514063389119347089134786875332515521887781849463945016340333214426424368970608769184576654661768557327088223949998515854964898858576268516288370237194438553920233237183159367422361688392567985934971296162756251106404781685681331029761430001904640562853249982768114975008806354146813992340142272700410368636949492394839840350248754754486005540984957224647596054305930663388439108550536721670722232107452329470025576826341425702388547369144352581143423078900927143167674816288099785834834786160403689414704570255293084498882794251010159036802195883539917148379657813540449827786134510431123777643069413388963707442829919282913594043352766802172284773573527983652426288703385714440866473256963250574720536631537041514078027163602059452691701656236570585716718129721642860539423057786535965686804062340719067641730394063230904112478330698838862248709185513041206720581663603209859586159198770350725378054165436869576748881525782605544527808038099805469216247378901871301713133838199521960844810710067473763243517334727005220683377362527270725153984567161767550392329054828296659251509079341907372367324685005556809151499558369720967907102297388417047767012183519654418839355042355945462564462229584999948640759063166463835331833986390301245639451163706329164531905653391065208719952844611436195461478435346202153737407994172073389958071091864144343615259584266553481492749767390654933358949499231920038184251674288537640343690952770024878181598363936007793840420078212241387405424072913660285544651220560761003996261069500710777582927868028785801509792690339066770898841287112157139656143903216614419669358593557555845842629265484816758289344698804941289710593701425516217461269732248537188184548695445593758864634385666063118616564126134464022225495278159585874406796519862420752296715921898322531299938732122259853112384648745796511366974910764795722582499745400792618549322084925855348487944446389545584236664873523454037506524002384890232662844446309614312351993779038371043127676215682982955103420333741660084844972693578452559995579042524504962161157267450099801641747647616206002025314103023085912238228718363114673512267509100597517223822685204848562626696292693874807303258047757686691178584233381817368726535595724414895477362663211080506470443150067974258090206598490536447375491919869973161497492995588548164713871336778313028470551347756868943418949981917597690868552628091333435996201094699259813437180581629035977477709877709177043201945160126231185789734444884416754025373339145365739709227962800803841395106845534190541035471302229376439933081610088669946469871033115405767570654299097110189674898381629712069935035332555850900222151048392021007144679165590375679504454781922591638303347968569204355198853137634728903438194338035215178197322799626936758351074921931381612826346335967856601519710893565581574821241253246919424610398871080676047457034086601557016410605258957073263874501215550164767395081519424841233027991358532051058270908017207673803620727148037183897673024035790820198157238681533238484435568232912824572285345422874890041879101899113625308339297433412574305451983558030416095032503378841236250812801432904263341331711549936584239192155547912541122121461218775248275309611099810380841112787823112634754925075802618035435078744355978474694787421805101370808628040831772930466992212930684062888319130820850900919215015417878811465593310091680750726230366937896691195740445260111854485874986772682321390452422839612463034711018739288109419391988318276479508809348511188617307979046993251319974191794665301988607904391449313550351041845655521588297654480323659146919104494663596259614644470143101771186180930819666484053988937244080555339307689299780561490373430912519380486310219467580233299504444167351510888943824265656222700752021226158393445725743253479232779130868263314452208694368892637009127070210422298737356485073305236149777720652204410444415961525464498799793646179880091240242722139337757329352264631981785167510453931530166661327737851835330699033669532261361039797074014694078818024260936834612787712599513822325575074347237478653084006086969676032053339279278800346377328207333235130076867774933612087907149756582249893624495686420360327435660283335582420192693148455463341282942631197821567175700805161777543122801727375625153876703236352052735162637405939192912348952030918344873328127047699788271968983266717959707132610869848055383513187582063595757346246517320225498778850432961534962039025970377902509495208237298378636316918896463798265833544618074926032197781883088347362554093748236472624085378657987877767087187447361608523011413812837326852869550781547611100375624240230925183071452039004922055174287126840207008472797800757575955672977371783316171831778970154222136144689037437090581928976751835207720530696908850216551972622737592131337557821579732633214038529091202931498806235017408683554286412714226934411226948526245001160139417250813061361600266951197639183967734915027361616973694342176295935638849678705602059783032383937226649756088654933494407571318809352333504948800516534747639769045338866595277236508269629804651063309060574945951372496863295411381907401402891018509604032032365357502647226666802474254414061587589007589823318475816421024366498563307513915861589277121475936052695844867263359219284271401553860140289843105108591517152213724169175104208169300625072820591290086181433606767705414023942133601416772088965697799658386076245738546630240999033203763728878796042517372247431898377941406469939573705604271149197803985667220067481568756556152378888013060101194879062957387622994788945442211742407154628125742650711711278360288816365224633831456079546370536452908501853243508070940393828260612378127723333352369847103153604670534423937936015738773215474596429312424766376409319812663612178653449680530384496899867101989297455435365564366293991197887219105993156888689333979985109117611259394140173336920484597718994117368020272452858069099070589240877853050079430977305535245720293423863520997892304860551311627937278635656910925031405739017346499996909923901901536848229315231269475765584571930252115339930700744373505202339040914243439068006902939717192727122609513868697769617266364579902710548284320434159112536059695606981393969825917749629407537314181806430606218455295126400757053384358591773208305215333650917653783250370855073438772967752839397160593194235877044269100875960083902111532698146497355009498510603422634711381450217965031427999728260118747501997651376526666297735111868825158792821233218031989195516440370772624181967446348941698705197591370464675326055245729493225973069805187780951258959959536897954433226305360443128751148056094189958879027590428752136983701544412563192951888746247600114295515872296793992227502538750516182410120527846727540761684587028140039935074141085592075099861536139402940617012024013533981124153920690140563909329208856800911825215578356048323328077866345400967942135852888074424670978548219567585124373411983579025891537180085431176781035459769833419056996032206231505047181143176818089281996758932022786509605173352151176930147234971479187002800412653054081240401101625741188469977467173476854784653679522232565292896196175736005091171106407514038119157307726554515707337928000477638736994820543454807611337119931523542892576709028731567391011754848962001275119569679528883502871018748096667966706449437734588858720631389547340207514833763112065511770092903338651022163351364133283499904893646539683474377224959672650880148354146774824779960664859145057241873082240326326964818947766559597106929430957378494540769371290251997028357390713584568610686034162843431815212604629393744635340274765966425163465279987951935546561429973331639085161986549442107782557086351355860987783989048851720821064334293203977665131492216211914891646755815002360912477209823830225201438336436506039734379991148005778444831673149290711924175861345147621817363484702942480748487038223833804676711016351610412757311357117683145103696656925862878847589358939261955451089596609500302816672990153698688831983235362659984388315109483963498156315220487667532618381649297284087739936346807219206444471365463476337115711719221274853421838487261972908009755352161788639090584611869255465869999005382337348525077748524358859999285416518315819930602929626671939605606212835662815956200884697659360760097967104797377717369635376640896234961516684056812255153050404882207950811063434686838716681372662416678453664768195951507012122911065003956121649621601449512149090161107242343327137654704620832515651590387829375234363567596957769848889028713954348276481877885350260958285305483180115654602579101694762236807554606604120016856554478414031732275782351399991378205353150785360288336125121475462548789443660500734267757387610833875170021072463165015990577111929811485641792036232394142480353102189393735048222378844965042410146692377563107179154125603585690302029103742228436013994262348500353805604705497760177918054621670520359584933471730005955031025343269933335943334840708252502328102511485105743651422429146232990455860333288992299850510564206594145369263724172597594588215223883399077093999668945815025244056945683342505106148902818637489500235280561057078399237031699656900709828900889106283012489387086870814632510531754709792457184862306198037538254506860544252163424254742785659148022231100675705686049411661085030779312547047754812409173416351314002627745517725215684253854825355559564738209858776816316247418316023005322922569799822120535847213772027140342715517298215974132272636039954845905272973375622164759738735248380791559759805467259581440860431139316513145726334092325629645481821128009811534743409319583380406820639839945667642812410526176210363656402534454837072414767545370540984817214812371908368561345642137098885228413083679200049490084588457599316256512882938680999660723711016363525973251271604802823780443602585620289230029292101389408843922354036864408277500346780328458736159679706538074994748893869463668262648975492837794825695997049349976919651966256629642830923144346419466358968708443859101961116492005037899138764313833845026678567522899275385081878403652714323536598791977594902737039414499018407954373415452257442359869077146342044923379019197437880014475430057703047232046484955948421535677470606566045511338038581754250860989673930719196956666381334730260054582667279038342583459831107793625461202262246158994111922988647973335862330611549255055513995098635358314212742385417429553424196994700758784529048601581951107129642645741127432391373031663791312318039330052844181003948523759282143219808878430324612247704308939988390502741702201711446425316945873603346717477929424895279240350940370653834527214433219588390199019154804573515602931173043893026443875709588061381542461751037197172454329515054721977160604670752747732118901487508966949231762516723827739540792798141534109226972429962054236734750693490844030840008498948948650232581854203193117282401366186596316153823838393497329474650447069628018541074551823739209915227553817650771407201040601322618348981206606742662696322188986421111626629215669524285326297050287406546852379388595115833296440572852671723620217186974561720365210395251230037772842165317572046214832103769063855196451566522314220561555641535978124179083707581628043473473820812760334663250332697412770361923664706721496505195945564309538400056874774764855204397478738002449325291984015877500861345758671489950757492663845322425833710891699370848203342863560361200137875881782746203328284626434538130585577179844755443650326712564303007077706307112085292366787354124216730694444319066737103536715900738175695734347312950449647639735522663350587530952585782935643411449067538035341647178434130209193359608098085233630260494516732395812662913920081625987606540054471126224510971044620802268533580841345934815208181408724820868035570674593425871799226340858328721674400133405346070381386772542487101615894943677345898206344772008265695847367084913397387080665071067041470620838886402681521657641389020871871525216304178314383030797175242043950057112069915252662252891384007275007558797438661388518078055811423059314524583326050253444997640055168808713182497275316196894232802410094690187754015932091343101947733254517552940721757479891531117279608072537692139502859722843453849957108849704181299899187134995541006712658025002014201278779674164046324501009525147625576749726120930473181199842008737809569847468051931287910394355747143041051201011554988678040409913257463300255694189625139997253927382936855660637313360987147365164849861600793379331597345615140547220586724571749458626850373548818818916832181765296017525839726191705071586189825195449969179424788445687342105148330434302691011720703433444336719642691272467592332895775870028343043417020817644460068609349776532905746373830528885887516443531559088455233699329203933713176551529020539814369157517762720380819219000823903180620294120930257548732636511526410261241372206676549445390889139563804657244113688356271279026008499743685100377433234682576907837899256085342110175060692870698927909408581089884070405420359406341700867965091550202843206467331719683152008530882194069886589645120486243619614079232674699063951154065810045368813411416102119053458078826061501093564777527550266269755842340137624965611040228375485005095210577869670824230292120524775744896338742121268547193067824607374038782021504992769584377818067457938922153033229815591177141860907686149015339151708516811737149624134440547940813981265331076561484245445733784280848344808783778889142034154067024766159106168890596419988154068417699149687116392091131408784036710382413981212169690934234479574155343811603714184391434649306976885442959316604053853345468082033521153506280316865990536821415357457350050205090454068702319421640305745732065763366287048683052563985004150050476217502291671257739894714486259340089131298649995704310145794286525698277970292770353260225839971004483164776652060964864584571785953486440350901770575180785798947236706464440094721064203899982109529340152819041734852834989240338302879199021218441402628434721069453490349251586714260329850443240189908533687165009858527064439879288752398460575888950215294907971532342929776843415611597169595724778021182826002361814519742762378633478402839354171463904641101902400355521625126015496766355036199801241487708957424011575452942064269877108123034551889864326120222574557704912727958820231035374854146292949731508482713157464913838491899945743818691372757584309618735894948604413759965101698565920961336191546097293703032605922883792035183660983423564510614390325268756198641192131111270840774320592015238786273809572500338655462190647088024991299943845052773989994115292442287744949306251224503966750484389710286747276211381197138096219987725063601407942137046162905527490135071780425447464407228067931020490984641617351589688932430344743585486236757330024789508516255514355519761478233914776700578189165060530008539682107693905625014937009004958940760623774490083794847023886411151649133017286758372046496017819379847835283490186065827558030640436611391474932252604644704034802413475320612113038199789838059700557641508723467177503366215228070731552012997393101891954361378032503514912655902948600788655491972026450929972925009970797402104417217986315853475335458814787866479856128847370911397463386002817173659772712118486110859549444231771628314871387088167139115495110135681157976153096905229064075951020886770770743628714509481733650894266485699015025008610320293552304777599142579411403484597030564007196847489621340929255857996270413893871303009177975682781504162620595635978471371685602012245324595643910852551916129935530890475956022279074598040433366046393887410688208441819906618527246202874006199352099807251291274751217233895310015244142345855862930372739251265421346392710612633648821015432117336786799418060827424672876203849848142255423296019320825977346932014880903756691345441943694366316896097985372877333467467248381851060942292228841634280643181354219089034276517314370478672432200486475127020708258564059361322959016133503306021242078708804402369996757602942841195768562698786829192847636070429383300087309143573627790738931154190073215422312423411181707602753232940330255049547661808433267199614695279174075339168888244592732862231291625688569426028665225740032315926432446328684200522139209297393202226902097276190910798200408554103707505654766989947576421761478149232695759925345733685466094332376688090023288249166705299522193519042819156277309401827743508303375457186946431998641863066532911739551883266098684411504932459300601579617880479656581825686954014427310568605496801724413277106161604887259203940590851239800768292347062682790170461333693420542181051764491616411161719879269158693087923970655383276944862685437951641219675789331099797966635587249819465368293616225902737936386838076285957309985393748916137104371728060894431317495229585600848558665430165178687282991811193510233392880147618627507966183976712860379549040101066368102846165106063557895848984992996876091514296840287221427251709637860200579526861849041177569479505608489055300141565650193110149497937115821750258472280948425453433717436301834006255732596214378744770489085830420737074997424224583122756468293284405574924845939322474255986136566779120407797739911523557418591267297327986214610129249646494119377246153855502600737043367243693970384800241668903827836549570688899332585848180849291536849861133053039739538519335819846818377443531581396286711518965028643005593317760121425675941552324798798115383240000374051507828443704894830506186814307375641622229224299476826348811521210204366759067501923622040141233893238923786839530093987002584941897576170987211104884543651214435323632723071471482030905753130743961390079443880591790278745983889211708768191422745213536122335980889962224634574200537907217241022286857723784575647109257937375051776989311374665110956221950350510935832139824323401505012285673898127953474781294783928330159671991135383698065032407547354750097082474915137725212809732026292876795647182936373476025907876403204201874496294907243082528598155310875900262198568359103630528518190816479868009858232348550585356935721008058914095508463034298566025657980345514373129329832196432105144414029849871629912375590314288172087982729795188437947043701824788803426960378778753837433850166337775391661092149427565204570546073963121605147634647433850886599397232584695005353981946619196754163852317437146578201517075986181949403616074624964582465919404989066229234721031668407116362684760814019690269480241068212477460999080366822334347764395705210430008962045514348513093437994771520098919390188473215845202113047477079045353736311356885454844059782735903397941875163961217002249357234628940607576982583360721234663863959031863066349266668508388031891103894847187494146418735207751952183125450714643133436043021479389797923598351915787608618938705813549205709055026665458087306298344183126909973418263371193839594615652063465678012249803806901487977968439404375322875879439818514726312057979824165632192812869506841166361078121141841983951307431384228819043326040918132015156546080324484958908851184646863293245888251774273766728905172672609631418949642899484088308965613304685430185448218921529177308393400473268917136057757209813861416841879818722428547409220812829096148167207198236981674197311519415367669202905285532093878186558529719548186869358742974365430213735395413719236134175534692803754513270366138071687420549879408377538315940631739087315687784706486949307197863441487282202500046444180487295956530148925555398898432265501601562954175935577852817330686674730545413669760764766743604790163769577032793147195411401837617447943453391185206625401785084358084374426037473745006050159208934876299903251300809339160360399684717541861211286703775326885884878200061554047119952903089745597817290619516274674937829464818980986267364728418795232563905507760203313410537524809034531129602522161903013328371145941892600725208593518018119545762435579512428945546884641244071422026296583012414484445219451853418902425636771937608046866579479052264412094574363766079996367174477669192525001803650429160206499551476578168255034436291135223226051924306814740323923637742478658511258756683755541851610340035422710641469081533135098273485509465955156803007503443768274749747787326660957658637596206475170349994642191031745421991784618551224809973086144583702894739267363033247242558086232282629936267151289586360077740759476532950921111779887266506491099621330588195967409285096988478345121156887537354111551224569617148595427801853577149037898050144008638712566439029106021825769513962735568010570475450011289508493086241933621834060327337079585683482358114663676519767758662209483692157919223418930762458941512346757534015822062935826247566376690629343266494785866231816343200290488653908122509293185413154454755338525305896656687046633051946101855435048190231432927372656417608890995897778486913409785301748193987457850679125070072040329585244853784779303997177854502957111538893778684733937894877235935745927070689140583850777596639416579621062095399859356992739737910118716162637328111541441205140742462798501319724037160072617432771610775339874007077944584962904755621514022509558147203654053933406138701089569299581312224580247153784925980690448584840079857156082097607519327058054137399210664835557376715654458161553793386128145978473501070465055116634902193454536142266790282122906157266606746034744495321638498418567712897228784694643993052027450424899441485627305960039788384182481846651389927742995479222576307971976260860874961307916426679540658520049337741780221582319188399249644741401932344529194620041383694747330258281876569662108933151733428052043717199781041689387639055193562244283441975176742060081337224978926777873586229576560742529165598580342146118124953577692754701399358309865907055377897512443338438339027832398353125547384733381734815921959804956688405712840899774337822593297169618338818347692050620583440678097920056051603628528704569060577763307144966318973431155651246280180529999546461796929972843470189451321548262256147233193149555952011575778289884095213522346122791069305095729377442641857690500253886447592206778734817824025886632368064894580356917442678781195107101683277600348970461806056153714989710442300270793686010838044717150438117540201519929821763646202371137231042848949764265231541002464373370629095706786486722593742213765465454406229212562439259320353092293079006826742845696372855048072608218082285146276614376930085857878769391448810105212174849981661107445276796351108022453320258185515357812625515702675242435801405984493268396024936807695972659322506453278715523562933065781484033361283796462143010749204470649960452628730268506301133486092517890183815804172038651822523633932244420697161008601082084196601059000783462291775428175119123562328240193000211785886549768906428288814935525428779999312840076941730200079594215831243196459846623242620058710237011161738024409500640936441103567830895423712390235144634232226361882634756841433292835153084866241487494879918699382882081883514901804674096444281720553637781574709565372092492842760693401900852381437129625449085724016188108842138164884651058340075921236480331178438480471906820421925851219419146769045522667166743459688971996755441046031869788724023069380014576165751949266920016398253193077447481975900521895555798725635135795032657454877749947498191408235822148852572308524011424607051807578896948430139093495837372420903249720126562162166656952862744205214512707431418289696835519329238121261768130229939968069890504984525473681735100402960510780056707282958166569640431844599756903213440920912807092593115423665219009098698913401207926108712868396557670011544253516571499598802481835414810683024078648752606163624203083578324157215383850174809284544693693866210434203179526436338780415459745844828152492565247718263826409973861165216086168251174210321736322099104258514685538164990166765842442807782064285615592388473203246531288065584443930518370709037017406498046228251751833082760656715984873167953764262887109101884703123240507674074333122863178957862399861329996266910557980185034959524915488082752306082525506149117758322713535614070744700235450412140145168913299650040018279864962657377152130087011667216196842783488064609107627315561154074279522180142464558593132788024181116520428103438367632758040875551003804496452521706716575012678390062835148654333986626188998327898859696247907639825778080672479120687475773159958866398103579443299490943534828055071676375854016061570790294951202255793509015030222707461490768835926350467959386367187512921559316723000489783767108270892820349749689804345272539088389936200291667292623385151634241139884449468079254279875253074047025756862944748547823362440864029716647036800952222210521113209022970782216923325327801597482787586865719836846721059205523317762414874634485389178803835214974951049590001220893624797430763106277866592741017056770468110155544378550025579626646822946974667350998194478027663885886650931684152473005207222802734680369693383129452935726853645527816530253057558354495723380753061150149365446332689056151271314962745209637228586019168983108344034228669782891403042959858232072633477834360732573111392151561239840097023468905181490066693611550058636074261258975573158191638366627939264799085345378039170220844397136366970183121890428845589582443841645289550405700800040189963738114704428865163397019951818641432705937036409249178390243170994117896812075643876104414809150849425217640447428330789738330400533642330346299761724356036481393302170000229389512677112744895104518360122916582878879906211180184692423993742709438968011738098137838061665753750870689044340786466262062849463547301307548197116722060348495992866471723421529568066926231343350723599919626622605445557371314636741251808928157286455109317007029839909149496035760338641918692271717678023316374305627112668063255670861839745299621184751108319114936715505425676702021027514059938223491302248930905984952609883322139464691716815633252793148247211343422690958504253930486917913807905684998232996561802770841663500622536083508386167368312000308634009036897834653585423097791016661973260217579760928013722687912379084839252641255650602139587424043338431487475186860364859344601203951835069658133750526204890946391637448026697886721133374681802812432302330018102846518217088650580648648902963072374701342294199946051739150818034147727507957723837847352762134536003370719331858770536423271478477053813603172951230936269697811353657106697422330011060772151115074653425650376938927641548461896268848055568603893485156875557135784990697847739321057910368192496023198549025826237264966040727459879862375646212513591782307285022987637155184085295215214914515183061573759125270906462213821159382798583367338674306912002318498290083447280029727118194149342670377516128948740983265675666709189488687308315871563722490055265327549060243835292081800543787311633993101675016772735181189231456612891171198361715212976853233992114883324398999646879857037806006818958149813479667012742566044910552950072551529883978310323406009530317316758424634707187979435726333590634003129877215133335052149977914500887512464360989045370254218063404351014491806693979617276681463287010453462972793229532909503624090509590418265284256563782979975467493063671466166302585553981873412941308191312929715934698834424954957290282750156772610445880127034348785705083500720914745394360660329565348888395361045115963159980807123893181789716441365076878833340913558425005327043104841139768867640334356766826463050922873066000667997061250523041055763156535593403281812671133925227135501126715174581667586414819442025688393159468523043152735068259884955642043582061445088705912038010879977576331081911288313272010646172494454448630070757606643603282865597096116028059568841630303030744312067219435998976168144118824583566833043511090868694262125339947152963542233376953169108239638472561675056553315761643714495429112807691967219659503225367883000053519399868222718089067266277015517925644870852491834739421387816273235862773254806239707389511205324009451051693414060459334757515132002342058741753972539615979527906429960424947929968669241501636532072289579263649239874613119201934604832173148946185022943192729603728220307584238112560143719516519107337404205686571355985071543933911088860799477508909264086925081262663154006787604816635583331743743654990553261995021276155818072963385774810198305232342540071864040277055739959830573823215094589426160039240029224949461687413970227329927779871767714421434041208648759469501409500476633485675467120853327931174927808718199091660208135002736970520430736883777225765088694498615392526688935264517959105188344656323778813887765563249178420055125386713905337663568579572548532833287586012541915759584519530227321025145324386054669680437006366608065992401176825431488133142803340474161586553122270452011449424727759642301847805340314995418345251929309774746501309188520189906199953043578843456576039081454531020509835015880924952100473862390059064241872960871641188036072286884143515881704884478459111822075491602239541813623072781025582195193812478803515589456363482344060159309741413885776324347065982061695076658203987366879254408000390395407957398030351359931108938354976967157093931630000530661008503360196293097019774231316241099511610385880336164765813238562536449987225474848914176699686022289798323384228313628050502277791349825412864260811617268544889135902974322241514174027272353500699309903105579643503755729611033252452547870791857729170157165983802531270201942692450896119754344333400033788466139012860535634042035866645801926980000831260593820284284885166220411022631153717426892556182127817343469860504052179235322225979207337193446505113399541790488064973889036432380228189749094863770346247947481085041932862338925405868101354441584789137632642594727289917995867204949504421109593027653951942545044857026250005867827490425987505000063944872324108693055334770086664562651150285388491455801384147515033929904913777263097223298793197744252242606362766289082001177872716627699010092497869637868104675160000349820017741229309037847905899484007502143189656963692191857394642524972422274718768882042842027694046518115904908960265296404501719636548791398112696105373871745900638216423772335790810477406146668989159098256131061283672652794599509128159144340141893644055549805498188042001458759873854317691892544149618970802918164056872664962491967712532970532439862467149799839908834489978077627309206404348185478764821076329110989169980838786611304550282268125255560401901921025009380976184012152312598651314129069089714762401266148357592075484613969067665924687955642168792029443972673015542115491211751818249399982639332958367856098734672825694982785962503977296228894717775976486330277725012720442351098484231996870272460114128070918903223042318355741112044298413346046773391522847893133520886252975032239892525022105086000339171215038890024600593463430503421899660673460310280124533447012174264619018832314855702065504992654495718496264134123647146352941602545481362668363506854693420821288704041505324473125776198162720463489857265502671715051762522205995057444373650986124574413672383808295624834549276907537301053376185033364078705381685799808343488126957102884995552149705786760144451334752725588106930342998567521707129768840144026034390785697051937335984296460848487509364851858166175028556583404983233151189312056823967793950972718950728266172059886052089843549432780275225895248856390196165779595924468368193840941680392554446328157386377820671335724092892209976532931591141900409583163830270713287963978773636117134140408871977246702431191887836986334726921750483506665863152418539832356182106187125553424787340221574928541855393263278865504814333011801895960156326900405315077083540164120926404636851852730764713541554242764832159005090728634545304395234819770731685099220945495145468170691988430262317447353421971125947205698941217468873093022398508626994783809118221222557135081515989021344115184339470327490542079780737968586471309728603109547388059903464099883115944103720869284228364421993297641825609234413663849411617981477605396537230651841330743359270089620115174438199580788705298887624420705544733805351127924930438765552814958571307847217049319370087138753193124034962398815502037480863876362190154878040856561659290386767401339726268303153591267809720855619816360219784050373195917186359026745851910397307560378747052865732596808637322794556713086136631744895629972250844561699578222497678787510736491874908965075819136235200788160879611967863339214798814370767163341566324664314177497340775290302649201264075334280908781877306702261612665347780495443926956773858481382446996381995065195366137836024104334612036994979112983841720574137235099988937134465749933019225120730724506682336799541698941477812903656872534367885245046434199185761631960237980526501077389357622098664652018601752976913267407361556884160889572863549433412676943715249149390347766793798640476041322305922910948427607624785010882096263871353723946773197897369988063863476785756719461005465232652382268992186406034847599544886437506813254729333585096390852550046033024907567871606061516463136007272641624856067253288406069319873859142492553011713189393555865690241330081774458148629222421661422274487934301227188213053519478908523044362646550527291869692447885837464803307033245241911463409013581884295544976629787707626860653656244679544880581584011461274559459366716632703948239483595056528242150435746289372592712280073730073992507428328793997277469041659652508951600612081213086047890441081888603317795372895175436594109988924387514751043710038612752735619032157835596951831889240195323989230017577000803443705001852511283699851549040523811580301671144870923796429061942955823291954470614592064527237126993466264600347827603381290593648674918960116637011648242371384000181926744144133594830477309888608632360375993602955608206327845768214311361298352544536094411716350909851145777018786454341855144817871184574529658188004189562417173010088861561523134678696752617238645621757279857171969385697343774944135748193406238850041077659777239503810982516295244962087688301167509724521372515607361761708438278616505469603572687287168805220638052145402222736698113992423506736457243116092780304378151701934823831911191285371457999957577330707370834690851413605509963491527719704125678652425252468725214393956957761328504217119731084944461757414182279154353778260284939705503432952170431772431110697380755522950659793047195287287725309739882852823713125906631318749859714456449489685475007786816490749618818704299680539726962507620144209057146467378883809431138624468947452152419671606724567856314254586689177507522749032901491976594394432892037091551068934047785916174854730007338372962471204384806356550391945997959029202372756959261846281938051840639593508230962145215256572599308349425339933980249443122039062790967940073487729484802637396416052790257931199463409633575611183186420211354148363870050369203670950380104102348595621682613825341452224759085156732683201894607138753505098339701284960602215682249229790532652645469638266021720281918908375367320374645401729694561774485666987576673473383921040386186740442826437650456670908179000509561384680563546012610983928892860072250035586902568204257206894595153939083120040822388494649580632614694082358347207052451056381334095393458580763101022372714750421955049276848702142169216909450625086177743028425094541582015348099243290908207900221489057945828807229590248286948347137745241504564048479092814301941239214593015811865792709524391066707519605522195805057451211004977469386859390303339719651294842274434341762167039396940853170176497227986854628581561026026270818501035013815410145036293183203555450591335229296116281855397872830083722198932754777740343726610315071207213416985500230807310748584188731525755307833908092509568448444284208055255364716650244507391791982842876136106630728309784758852111348121583062827633027345002497274396015190925606634881500469544195678329711558220100828102873219779771090802456381472199809359139834833016353721929164414128614046684962676814115002518464041462122470116710898576280146078094183474591728242072376660429899322403635817888346233377828312628506255506105395661700270627345450322500420898833186126399211395460050776257513190051465747903180325075001660380199300569324810048971011089664395442503650847343216555218569032570537613148564413863118074871393893204069265105747841104807541452686802101991622079416010731956022918580117625653177508541841120803320922597125631872378696683265552588596429563200356961356721133070235354281576915916222057546079409820406057952912785541059828349269958333737762892110985813892839706678188682068125988452785475667545491914729660111241935474416117942674569494730827416841279843774081809148441687986018872712560227088736825499488365868717290402298273971697273292447000098308534290271865544641576532930876034085094016494595214231214905440859926643965204116227182158996984454313045237530431846258173556214920657259296553686579605250993700501870960158752458552238499962263658859986820521799404215229854722930379527040476223658488875843550548812494830101574639093223502444293632568463788757382391712071550634087385591200706662723033665755517524376746108029176519358314847563453886524882967390965220444710153551376956879096738813081271335680944694999336232069702618380962492359723822307834664900628227873696294186345497504093933999892604847346737418628502432043720946242709331590418315480121864815654228148595728201375718170381566415263214013614517738422798799846273618825117132775377943970639477440276765587675206514308373268773139283307692294408347134816029293474602493693912218633811264389245689637173667774508484851047170477363843066849699147592710473401377454441607324710938187339483203023205223896981783472899487616385741407133856065001372775009734537671625424833782158984433976311208695920554056845493175663063935401071373360589006074474184700240839220936870116584762686103087866724250518331977431951346102675872008348403762099088280372386833770115536976205741720544192033824051120486513904359625378096829414791197237582125883115166004246311987976393177344003717447032273961705406721308621802650114329760253115257785192005208811787762086744120132811688727163155726956482778691738861918119733740888752457233780267487251500911542699812137117493547172006615208358838592583962219201681579721992463126126038371188144284711255402853073356058440261860508937192507782819351815934497139131784929286554953695367295550291444046338491122744953802583350168160403344707325847760525302476911774281851960118204740033740154726284750455508226952369069203482491502572591038349549317942621924210287834609813205521682305716760175887459812172700066646452286607664664730029357936741313839130960110787687799523325544489041816531503968520911280877659391856123612333710007669572518067423293455312399294985037675249603753807005010274050742280332457643822973703320169579857677265389972814562193518727114486573835115376031453788022394786760534571675779056986796753081068445302955654334978942495002729179989283389385605415858550463893366560446111333960359895886322054400381134726073464590484122063956543460034320962058534148099662038077901122756623856082571110831904948902495415695890737132507502245139126472750331733892038125778023481296873643482070060035381173563569189339441007559689399795589386600562539762245032803937010079224825543452317139925892089056953339607074476045487757225755807739836610446047676134135166993209777961396013643897776044581356320616849781148300590722196194255057983111545934656830165190128044653461103284663905279175908315101916329272949883351258509964995990167769654357670710205311645823923210637943716339802513039309657015020505725506420479995452550536761932809804996211885286838727753559876674964573339212992693724897800885092377558022570962515184913550244607767333668914396522603377437486224883113202655533596850299764295725870700607546873457322225430299780918017829371665319924851608325575034451733985282015127878226990096199236893607436323791326023024451259952682070206822227589533043541891308038726462326914205142981115708036859883046703346934359472159862936682845278833618770192526916883597777409292928005370237164468134848424879895080282313210463377129337969514640765848184054950451211669504636076340068638352554645644550204830082012580150393983445727900004831983642769425747427063714374497698101010939699489432782629136221388250771908766542129741550230644372458754701746332710407396857677653294516181639676690726557846253803367404553857013327860581807514646226961084038319404477565723377036894750787973980988470112742485815386417163988817829448430149453792035474758210923572924803959157076283529189757759702911950821009810378116479413959730817279798480408756388029973458330601811540805480709522053186757660008118390009220165207061695278392644420293143219549599512147320640160456597818359357435291310364289123450807100271118763660441101521687037413326375419056120972545497858108624944639665222832708362020219450401959918327150504644789590790604412713498176875691204646784507155497230061489513779318781006995672497013495146901070966071177782210703944664078679467235353490356992929534869826339865389124778560693666886456382759785221317967866407767961602297962053569284255756479224106442872310345138945463358787325549288756566265386786319189321137386014445247266372401931560815430432647703183923398355126968663482848683475087526403994413281189059435853088129409452006348666887568826738463080269703696237785139449626840921793220366569217108334587201455526435215569247535310671964706781285856645229557710993122013581339087284788165603657877325412851400215244783977590907738492760504025977861439061929943921080005884427700988178752281937482805494779592209745969448988198897798804879193741678564878233805878018057906790683547632764875008943078594090862943678761373974154538177011971281979865490977477799227179774089081824303718774700443306018734169650801061769109241238636944853674209459862241426169881665326198634214877483373549597703195430645064772772335426516486208485702800383086184731386025632101588117218259134380754910114849197374395460741684159091653511485084292975282554852467609401022566665977135649091572697023240240901180369422172869176209686937280738170217013520933315290600487153629706797595197201165934950334324245818059620257623166378865182316186804712521675382337849074671075129248583100088195618382880308937470333175297821822331301066824854137129607215852794479120298050010527641162801945373972943266677157351940265604029503209674854435364448046365920716387797370407320639276067424281355989301458529655238426658525063322674584204121552201525162383941665628701951906160351378801612109420779004667540981332562584194310214203719209951450408584024783759013261213385493629327840189729094315966017294787739083057868521575630944399857445446861913457580418539647683081867271585330920372335858733988199845285058972167058855963025357158954569722000268576172444544760488983156857517060346680506341639526130256156565779659563594720247626803773051784156170367944725267296544426039180623982067335271974824336825334817892830925725604546766267968335019030594502888893082342998104172998479538144266195450392153656598906737695613639900493582054723720281571910284984560936391926112300972520455886415703558443609966474665181988068917408879544503002164826902740449607077714014370833615833011770351101531899658494536740615999933946615545692236951092091657731660400366440103204760811115182160979255322092295533498764204845713924926613908564273837907356523459491717441036241736784840239401481572960531379234677414862704855585034922470106041949104763822368038006361676149161983426673174212666222981476169987264449331888183460174145712817070788185298172180087825016845094361559056698969050098186471678050016483645421971876353318129264940424634525603678609188328599588283474847502948069549056887004197394488967869572398404563379359137967907694538408468453705383664446304460254872375630179134753345286972181068479335577616553240763065681788069017396997203827661287537390860544342337057595329550862530881470989911643298921208868159425039210879784692264518553105541322634396953209585109210100610696103263961998323090061268173029604150688768508419513445900297139365470901607220576683896598188030271200505806519236181019531162539799169061997433476712469989515492088457365257685693506262713375651490527449226356835220429644675109141239448455371031913815469254710695846727299936587372798671074396635524519790003326423719102332155555241669817070217498605302626002843375566315502346974079340312859192414553146330384619245997591546657514653167661243160843650791987955532848150071779534767925105618974524917032506334830123666200455001039715268646544233586306337011638549588812783888155587499995389201822702041743814573686591158592993041135512977685900648522482805588689443582829488668950814973222403212421579804715995401486163947522613228860283209904631241839178307207583805559585162336543616569123319381015782280184165371498546855258269650248747094617664955037133376282566458378620886605002455326639419587293397438624151209310741525290130442049856220552648336830335615758066853611439191814286391437475504719232666947175773259148022561180035211553514446300439377715117113577721619372113016783651316234062428730904953555956269250205115696483332799799886972166568782658000041231719156691240829145579560962491888937577262023368778521637072045295106276435881078248834696756549188463213037970904917434486180269096488669999248854849833989245702088753733103876684565977182151671033154136222343427139425846221222056032269362355033537618747617326633549163926222621528322022712837906599488404773573716292599034578900207554936651397120734108894720065127270048988567930476876243192662361165129311350389024705924859743273348308965783409109675560877169939907149404200977934528836461680044611630375417549899600947648512126777883959639473245026047431835004556258815763900076802787919836928407966628326743691730467145778446365586224295192665652231667946355004610526862325550769947218537254498001914620100779187392928637677742722223735646035292109737409037760740750580067871264445413651078277142685414603788957663572427689893140145549608203643829440852376501792775571577976286649313407642707792840001667645384438159309062577944460483247838443966450703882076270131352781924830733096290874738820462630287251421796941286959785615255296471505024989316461374736629662645501952866429419486532337877140674735557047904282780416201099408660343349394822272800513865640776362765391876441460171965876903450108520370466590774826157837713258313776718312956544901183754400089986605760928797094370416994449948938634847632039912322977565553195662672421952515193958808415391527604838618032668456670218424947160526274312266135197002643404927604693023532494246493849912286245692643745983281896175811861240632232437701115895266773404869109943711474358571490268645861224333053450454159035661051486637921639132172099615958463544005242568302575140753228631956399293843953656854157298947165921653866303516820402025313588281722503424745826144045881887357433987452763914813372628060851682241232454254510013398909855731108661445798858434732757546721926673845269871511348701258263287689660701636444423460801494657090267482220423116726451963678543680690156074267945378109941532485615594300174884746429186661363013473565870696897782814837738256659019458397300026393173188359312317142139529489230941797662626307500299777163138617084593724791753623057034581747511793010323668068923182750013918240992775055509888749486439481906039241271290143664801517000538694588519629444255673278571350955514590341486823313673805000171849067580630134161508351788253519148285330043930934716806472651432137371482263951692408261824921313790092573422779661456234216244386200147186033321601007041473500745198973340175347229357019930502039383302859951751986600100618601888384422858144150802544690520975430919068255724530851731263496311392504105269798598608202449853915227773886589919124445484944416863292343213058087913954282760376641910325483816900974541484749381753034636852758892383265059634345040580897463755286285588019331066142250394899975607083341985255515715192962834370573892288486316602046269792838801268541227990437932419663660409913599047856115934658183413508369061210267732304082962072410450192954924228004569575677486877755104139972927007022750083891173671238420651744397834718830354862506870501767454272272880728077798370369613957424373073704787570814313025211925857385487347353277005613734619403723924334284207319366618299081077071327332650433648897195747909469030762938156976394807910854907951788609085574208129131289428441430333668116113275263965668770134537539094488940873843898975787986338873213533951215438432408004913707145739761511122150081503064795235561483642517234010675102596072511159964107772661164169658333083589378234272489873435482687592908994637731122224101961773513949722320266798807708284520794850642060897756275029270800982517960984844859167445004133791719859242871979218348243916271677282213965697071867189120420318408306540953081532003512188357897142280677141141290105585126376806340823523594417807338078237944965254378133781251152803989064583623778138810342277887421008598419097764360954482872129700394456713917357870026201469827062892085951204027227945562711827426914749443309111445445630534138362955068617571691670544270589578684884328516673123267650032856176171306230864164456623500807138919664131168593328751303657770167938094872296930386836103551268445470018470314137011568499016659378127604352260903844482967353764161042914969078497196138777889511518577568030007604054793150018932129653544586500017434167946572368549399218270350140571377047504144914111729808681426881942513022198843969019857039574781877584934396302134959587089782355434790614785221980312207979959281635960229307880577133915941366145393860041144303457970763049159602525918756927742740111945057671833176426542731263686851923803845434073135517271926838911852199551959954690235430393013256004245147676731341202322168375453020907050125646004396173963833275146051159190905108035183414202463079824248420736428918774362890027315431736336176373652342465497496458682015437706021969740238338887803441389617036358445739813669135683212975025517419716543168510422277489183349931007885025229338895686258936441665229076247689654090499227047925229148093832489496916777298641751918485166637668347609048505961534461009339110546738307313915399990648291862904614340685062865921930656851736392953957976361854871885019383788462035790434147926309888042926283715376882578789611193478873038760273508082129450566441895417591674930532781383464683456798463119472535208345778635067624002977938374774400058032347591904027696634154540725624381258322532711444734304902759649234457103684732487377623598221765810506262790318233571005992302443501435968903052276792927164117878137760865742736672492570242209573002391236169365647814179046233617412392401378474083364958191843858660389958790661452612427178078125241448814901842794593771732652285057566718514446521144300343450322013630718612964055510203287268066776063480533285315783052130660393557565507617458678201749139477487949781461793074918714579989395897493754280041155407648975263244780713620978507462774242105449081142710183203693946431062538457515396680488086241211903439723481200304037395189401240749701849807616097946160261909632259830422410626435985739587005021080530073601536918537870868383143012338734003659393595958638932913236107385898086666273681878584350387818877663920937604388783721581591995319015617460997060718168018320414236604119423828399305545518826948605469005074575726584273002272728002415369614156184421816306496959804347606660134199037077193797343826702893434973536955017494544352966576920958357772151108895209575999923286723236179798349932261376649850749883616075170836298312242828931222406308342145138639568984158938575808777535679358252119269941995427247124666527789588980557050978662984337138433738522381101323243820099773140590339260027853498934870970432176594268102444160273662818115207192886808150668271805697805136901143026495953691917213471214708579902778573806526861313942426025462890494743904051699732579357930375430325173640608289519208835773826298372245499741134937887277422901494898854443181916676426555453418971760220735741669125726357165420054723084497478212482591613697739922434570873737276904252291611549714860942967837837498330869918426489064694366903052961891103819433569977665923781834596041630413774710076266582238326165261780774442553717332979937034071622145948840639097937477280556753003627764612973869850006752211971376917082588046922223408790579149153307837861234881484406061602107674679906935929637632867241074974184513053946724735372513129017765428655457859975098556875311808118970730422351918615019425980504435471446806006094520639734586047860221951857330935925896965278180564233879752897112930802988782074681815089088080387613583268774587317206535418188001469467457236098539735996280504288839666682882969520222522919556346798768332688111008868933429372633744123007123863835784320742411756124255048133166433177611788008470552834780124415403326579258146832478698003772536266025784330445057963089819772743402690374978167803427962834904365613909486472490655201464495796627362268381158370529529260380758921472704646497124388742232366037299525281618174088650892144978001793260074552845165143771726880881907182302283750232035187352426578938696076889910249171184534805493026587176298568789212263612324894839854569619026035444459104683445334378106124338774616525003075006061649348247843916896927366724137536723968631127141468409668082313881744244625123210343363992724453231013120979305458867419108492925997132052813265957508369600450887486154678379882451654946012476218551338889863824746752108317725827579187926859752334400161296022929648057566269579981171909286317476516025299869181358797188222326301505404530658549842164574490616733168358483065090037938173115822005531622247450860051557476079382286470616575808445514667456902790495497070961849420191692329711926579859319066478076688263104329207080307881474155003159651781287945584003099230216448908259658244530581263705073301600004708015628337213671286011331972586559688140875558936210320712193348820529066448066966992159070533227846136614136902120303052328156918394847863062209659658279537665807456251504530082274626129991353842328966666240555555112245370577885955000583257386553596416157005578299571540698163772534868037111946979081071007284571720603067955907827891785392075666594844643874480132910929583237094295173372969122293106980006538908939867213871081943506931464005837814082091488656306902094628000412588483035003483797509106838327463069433601373566583814352015759965274432380191839794998643779546316166141331899473501781256128643795107182899648725387435224760081714980809423993813212741312022891978146656487109964626896184075624401146823662433838055230932924005510849570285643707891696035484932922297623840488779434828882024467866291701827965181869742802102761646623477979963183052677283556100635531043357748079132123651165885905744308245012950468598899895801752021769318260418355973458262468922329825527419101447614254260353135310708312204597703012044580698874038741871163623460502489321969602449631309571668301511661431397275274435348719860371245219216486319704253448622339982065149436445809416760481869545205936542276230633139121091396551929648603684379297260184905175612293374828721232923223984534463787208520759237759989658907157511806533562205365754313826522570385634148052640194975991835685914962433656011542269314665027948189075855464928080599573824744766939602832769437060540114577201204551997711102051145897993985327814093771781407814949393229687545226440572279574678084801779189719432977856223167489876575858311463086661995345247402902665425878968699233434053388074454410194460747195806112223901332880674092992260850994341095458198210753761701607448625604093429226857225328968022824107977777910324144813603030520335983659847903629274401747365835318523750717479556185835187750975141633495949101162811438265719167165743259480852823495739778810793682319527653910726915477284145114042256755245364107856455534189118532505753140593068837572750471419172621768528446756145203221318079978326217521734703757884455129512111173185683552408901114269213640650406746104008109695529412495722321178532993012004984932417415177228602776715690860510741711414179354383790089152909301149806892621344624595683400723914820455593417133153761886449971220083579351307964920420073323360376322781309428889381388470797643975427992195175716988305634074732537238761339519018119996206000614924495418823270616682656416491106561478772129366528263122281248818010315202626585494346067407912164278781870063819197936304517223338175282490198729482737635781261357918221059107199282359210281292551706342726681578454554384187919494278360206472756731561579471192304342486186784283740457420152801900197895477605852876372181196322977525320498381729164075705207279711648069683340117508729351569465356300798179122621196586736898534507899053342834536104399213858213935421552645532784316675424022075906248584006657957549916227571194629821762815744629055985575336245182096872191071498530198989529961413718164660474060674718397438598147268243533076278053394154844859918924501081275268067826875366244585996372128459614331705452265738448028809890649436985295040189938594093799909157896366629346005843052981782121615612075099156551946263433231704656099126568528397085581215509962370781144185605698850815883909029439045722599074814530021087915423142342551238043650704050037202381137894729338851839009035893987040776128292475545229474590808320699451808297427371474726269195803030553272189404860978454399294715163608552432866926415370969189006474591812685092298097749686693382091937700765201877631301834282930782809035390566860617749898434946578300727367465530765348791229606364603272996039065429787333279271118156899187953405797688371810026825648575719712251479651004924713766966972144403513134221247090038291742674943431990880485165805294526270878261784983143723406559145995369442698483728674653437914297177041432790731901487454530325399592379243130545451237666333495526732234320161428932555279473567447289379848732336531838077922936032106655611670820351328702898670686449621335810344690574976986690473935646107877963717692015420714358555916131365554591213534192173307201209861793537930194571822660488863417586982640532579838824925497524800526496114180224923553337335055276745977250545185099948543817407652149118055826891685556293104430298742399041262499458913327649491489308260460784294549496570925404092636067938149389428720547076932676039163369164279597203663091642404206499381539709549307627244959678560447194598076520872763363721158220873246147752523301539965466452786878305906997657759174433536143609698375713111133158268088271825128587462963146050510496674620296178066126666062547469089044821735354249115775205987120423747400423155679493750685376897213142643952548797512799860393887067026382941100365519852173074498467701353524834255532701655719717116282425904601466346901292364843061659240824179709764984250347260210659426151173327022035558914919611008012295640162108061104709865382953974155394936471269000993068413908007856140979645987163412091289650398212760878263115749006524632675605044482863874233796867135710454866147458597462391180672735741301132580898712237073544689300285468184643531229530770594078748729469958220563605232084976639146232120451261187612015279651767488544814901871468458439917385185506074149569151747017724549766918367932551000862872470368633801637212565128870345531866666730756724256975069947329821296457474727306914593460305614355392980572000816040351611254289773250115593463759212382767684596821769653534218829430379006431094740811745101779002173179642562676589693862976381354649294146298167509290790052656274879283413648769834446505702445514085785774930006035232302019458600661024617838074086131073782688167703911559196381037592810644263819566113780929637177011886736179657011102859369502115757204702493393494562890889627413523018250880977595169624863111074767834207332649701154284470046559164569712468532445693797584953597060476642056918626116142802438273081936373432330579273608665335211893422898602498523928576719667724290583119279349235448540863511486493348944944435444635763879894543403451541172111052673802054297057287084603847395689312746216434942293919202943759461591200584020627417461046205440572826540996767556203340580688606508788756900063838279334596988844938701958390637664844861691351887504767861162021838453629781976097039900204814426141491933883486575532291966744902837745095690437498747055033526824204342416926275758719775673993676091697673742897282151427309580489013493795196457594592425267204587522246423966143104788804850526061466426014804058283618196920319276538832207016229810161313708329273000270363182212216174303850978568177738949466332733258017852931103974797067071938711137112745029830930392994972372890600751227412163103532280165844707320049029166087952621602039614463180744914930398739231987498236268994731780380705505944309610354953966071136141224794104619528488555754336522025831509660073232238942723475481645563115764505127388205110363518604529804495612323546625672732024092604766389690492992370522931836235796612316529783325194212593798315073846159401813927090643832836015698367785855695277765915003063239436079410878255977406325543737727494723461974263665551323175975704964970237355009509176989973981549725307687141849291628972901897013455885463906777708191782810426847439399632154161198815520060396303597256301525838741310072819725778778000521097053448644326560638902982723984024084226551037555323023468858226682707083439442563971587716008874429236208426931639432896031673282208870316018554495938583736093618703302148035638164512598297680383740132452138697673733251446870243558325994883058109490586033617739698838771317503793313398364505154819589730456277546905979276722516146675989926101187025703228382222799324113357070492271284278295613612599209947003942297226817807370467172112221862106593510739393386200148042810791112157392599388985884636917158540818476009428530836763772362481955005873503396982890211399450354849186383180071808518299071412923877213366519122780357587385339852107245439623086585773857469222436489149385203698774277268729489517292319671045315905776932452884749184240388512456247577551703117067260897688729172430732388357402009451832046467376577539488050916731137933835922001391108910142201412074164246909134909330366584965845000169376804772776926706635233541392855739130930286405471743865050963152067353264897290392938420563105504902175097454864530891390147065303688418313468071575268916946365378976538996644979432722828791427755618915747329068073962117002943052080756777359014757829204547858172642580281004627797701920895002612699116563643203790410800130467881756935411752911051482483393281181442925425720787684060217795344247805789421301259819999266066561524114231494670177368417539311951555376931965616914986406617596597681130732336518903406710443524422778664408636882821266182219710409652385201694437303615845208856795338612469469840256763328520265736882594989616505795042747050356190452040342965347740509024299538227435489651932861618041939662422136655464397196551608816702356506537294633256221502521211655301451931576644792838243832148992240636876951585758983635807171077133578731033569523583610129668068925979834382757239987430442578742458088364773090210284405718864363940557491042242050699806727201234456591908616564898297457853972269474818185939186907472138386549276825000307218304602355228470335493570649034447026143297369768042038214697918552774533313628047676829166911000671298499793307283778949111778198069815567801999061360096588921481612914005260913036566138894845301572824637565431039815283858563368378177931715210696748669946571349353450028486823302399306891719727321974355154445914147277377274541085353365252178872682856482854962354487568765922697663250637629734168096551983277992121767851705385778709804009249878047038603582169958006106604150562736750861775205388493104405213733590008365865302427170115194685523960811192489440619563753258587664717628767422823652005722744585137112132380754541926351415025394645167604771674871434392175326356697847526667424722932500372701206769319822059358893226478699573187337937928207284305567381500795746844543472725483065462818813028291910159013346690503342103562197429611874516910689659132196804266830066682277081021358599168895055814745735038300909760039543492488788779120564482273322189792145353527715036075300823712275181112781526977859200403025491191778664888717692516432983501977049845571788400171630042975263299606637592090038988571641095520714849121401680440328899609060851887722609521836094832574662982015822170223684610635961840315611829880476044070360743756395010429465233373931822053035493487721547398678602045247602512178002837108323957180246152391000669927402223916022538721201852854952565071185329336906307806233145519042412428294471832486079263782622856427498207305343938138095775446389205497229445254756811709726954268777284800021849528290510137812259860018251179807473507790446040131298088195791883745824678693303315457928502013616113546321046951834142298630075827671672034071512274975604359999523860912223882381783058295800484595327291055296533134708412667583231751586368407016636040227758246384181626025345614137009776379692342093536343449260793706719077453106499581524929302452693067677032103546933837869341725501973323331601802126145343135730801007244548208706646150095226313046612726800970312342556480086141671685380411050382594158121429850915158536811841488121276409395527440986751036536821573552861682644872092419188515583988008335244616745571242530893363569802834853847551790422459900836964502382124317187139204341042066156612540304399805186386498903206129317265023772130355602373839699077767909698297020370336404592775944132951999101328869772403687986923851222153257109394490254630632162214260404094080277084571045861152979406506121496101564963606664727209143877814345062506495221292951844111478363307137702345994200739771566221722713096667041321695735838068533342524436821306685152584951423404584865156564305357688334579449569024157705792665755400247408175563457991603946907956811253582980081135879658896778666229615521968175317167621897981907240930680805323030751303828722013578065160429666372697647806144188531076125042122517760893726704224487969102772930465141659008259185666493745480544521889006484967023921595418067228565636061814824062318873025908316809368232381852331688605047992070846636635033643171355017075087347859307379674472550917733640391692218756219992733471640734920720360965915060026266903851174917403819655832130411130431442553488204456574238881874537824379667989502867205710764640618198475228579414551204033531285841151509631848537556680150378956637129519164999231351750321858958193670417634737667666499710007120080624061679189807696935445131440563385357713822687176740180162157226691866487435416998571113292500237033056262829756268734863984492720264659342628684566512116751158620767573492030466153560616199362980258801932606690948515680510176929528451804852255703542502426435029301196355085647147110377379756572771815606326479485538894979420149156136845330437026043479844451380661438756913233741764260556921592467016063493168143317086264181517725892074633605919807749679532542941798730534646749757500969764298053930590668748113511383540356420866664878853434453219947611481324676064816356400979469219394271362155637079625512862831365277149209099182874631201161127639241606104817095609380055667549035975411182844850287878811752385737852627330696765625652613492820341957998484944697176616653640619126383236785771123843059862537974340582087252520460738733485468524153026507867387111565897103887053889615630093647025235758807029582450629305305392911034059087088011547509176151333879392788112154968731008343430030557828901221696501532250417501243369395307783852187850254101458529840640480988587022496754939027948968662809198462736850310135343689327144780514562315330283385895697137014711067303726356348199958646005071069825135026324694278320457795215679460795219743763160727735035080627837093164712217404387804659060675324740753215758015600764533918096093637487481023846907337751573271194124627823304112271053138278409898881256290100139471788580441645815380727309148141007575308202351173770098842299623813562785665375908011086597996797613973751515974289794286745463748383132828897300759090999196207702764301955599236711602033953357899073987526974954187836973495534512746205188825310930877121063455948196554199892497722031159650716545938512706122737850231256824342817126028243472862151017407400473952048568474785811148406145215103385698278687215645580799137318581422569985705926693386246605855972768901091101706022532016834777549800665944781807456901147552940350304996701671092656479181199141940731120469740953810275495527852001073932003530623279427358219535157818413016978991321078238633705235997527183172016512306949185922076095988840697344844997937877506000764740137822855676896339010677783792583503784490536915436946994075666672095466077630416716412892212838073700770609794649667056220256703949274922701949865182646109666819561676372923082725577109517151613140614370676907678653965015670124026425538653195701478079157964935791177586074712652566369561015579436549582477844378748636076601639201220023077447823116965278733684386017836733930641941599232932959265454348179057825379342259298404411457564887803959916988284934929363132538964351063884727097048573413388154470681481549526959242219524327891747641686855421409346148144609064187627047272507533271425715671261386031207948792208632225356811266954192848489506573964144143665597623494590849329106654133453836126420690807679879897205443295368042978594352565796758603889209031394294748950385670392035646747998206848433719927315286725667477560603561529157657509764375165532696748281223984824438371853316008451778405091549669274344709556977554518662954876855428198441845445481570743347450256375761395864707632637553023235478537442216445460899320163271901526750375599858713560279342673710165307138922806054567658330474129614867009735502763240911152161381222643338552859849267455040541174585018883946905617890420433463971025087772247459554003252175891962151730856682933684101387391804248983733240051323915230387412549441509757260156364169089396379896802963613371619378036014009935844527833618958867967044730436966507301928599959180668881635312221432184504953163169145335988503902494848061932212876844535011335739029495282294608327528553403331857673356589970801556228126441110887120396874918484247104145695687672205971506275671970000347121307301617742006778196722553184612994306461942176987227152618590084010054652128556205749095894527990780613523090147451078873261532482017379019323270980819425822980983210879725201610281746559820453611300925285839216715806497233183131694852145095532453145681035806085986517429113009308206234808244035921167004632644130314035287562760014117012509786660403855632572544837067795934351952947576666324770532307772719200453275742223123048826259807236550952576447070858386136097874427308736304355267704943861742680969307669337048796097930458652984374784474238719866273586497837893981909268551442537238712065934512282137060173282514568192889947786469312960262168782090734146125574560676553728546381550413487341156969168323937179830472593093344507958848921410706418139517049886644532283240291092382279732011423385413845720394481592064333903372176655921469259376700035199609730508207383017400327326515730924481904770862144786135429089408796372878673077820279188742329467100860684863229047885102705819885129428498950393606044027659411880698531614558786442229162252068886158347300484733688126255636224187699264284001562852376546634535530982949965618994610886922967179413007445558365455180047784781039597992412574186305485803697926675790662094729067908572862958890786599965360288529940010617089696051018316029675864335401389131091796580517893917398159188678267508461631874968253799556015133852909970779010162862534249791738426606395486692562906149099550548231181377194955900764298766997774232802037825493181601162607948692099939312984220361783587575668833249263748931678146201798161883413781981844813889940886770433909098802832084997665838668624663405666432810886998986585294706155934528837562274719713338713933372814501110686908501954104322452140442527739725546971587222808404578229881771752630522172147667999106577210679435122154121880740389431905104590149575960180728597607313439441494113227148306211965988582077902541022133344771617666749022224961490224611094549138479508219197318891517205184842785249252232457287239606039415690690543352027124647375723883644791490747817439653962962877986009532563943270533369385260621155924180282553490606497151766144462500198665103547553297081901149034358702935999413272539357519777318857023425387614853115747892736124578514631408423381866587611525455363500345212885949178650444000050694111721308264608749424954634692713354108702170529647610781659086664124378886923432782687735460884418701448554164123579918974174517809146390854165378274506798092195766531300315747095563758493594677080245508997757022755277952478623337139866066749489288517351828332938302126309851019469056385087484654417215491023379555358059826445657810154835462421238615181520658780118695198219625097161122298889387278635388337697527306026555305598690489251190116348500516168550533262764614581303131268108497988227064003365293059161495293843218886451118368117607116182155677160796739289251168736363904078212203262904492070798002563568200266542299754661662572352747418981312748614958013098805312158573022715638173112843859018750807184559081264036961450624293745669318955085177424436509185325397356935043228540699683849341940183600657621891620585018704080111256925017486532603970245359868201635550844670073201897102101679974491583967583482925101085802444533313678377407079557178445019256307384390834330737807192484835390527519898743025452419094975655525324000016091174727673868657150567420638186321004885826101820503575844312807585813766237961830401693135400793214217041844211315907088091827361881010545964060638394749729846274317465995192703111157245937724146961096323914286983463655011153982485373026122270755689506965305064463434423760470378568459663526365161504781492474561253924772650510689721930951352878092208562360033664895500744494757718528690790413023285413945780745822157996274699343400752567211774616596473964392804789012814002488237409456212708488669405688781845501254627762172883363126031568180455679264074367477947624695525431320367571415887445922073531653819890865008756860558744836306985160448957132774980412949738460515362096487435353296495519615069990199868756687076608941749090726350409021496809211025306212745493137753646584510812625070162348177701983098407054156016918269352649523931169732191184045865625046535190525872192719873433055031854253695526313600559042337775236977502496503115012107067645709930455822421142430200669367738519096983794649598862679322100437375397534167142007192809591389687247533726719811874135009230607458905362970159956375585161728149433214430172539736030191742238644785876167423824773553773516093033815380641638661976430592882921022462655868678256825455015980835309045037699606716716088823646296111696001945762714846038407635266982843880213835426647500931367788548177850017401406646098118845870488940908227508780812983185177907259346706317008853339776229825624253122822487887254337126304636067085752028187238162929224357155725702684970548433445602506996719129771922558148231579778424901998095840212707265949379545013551340348130122006606605949094634530463689221329579281415426840822259719987974384000603373477387072575187785699404004701840646741380773708966546439250266752786723028348952257823515592602724760892014441653251653397653752310256688417009171876524099260940524141838714575214402548767916298718507579646687893723866360103594364300148808512681401783630776515976291788478336202763254544029900875856667555792678795152400055939504626632131742028573080525441408596258378137957800575677568133827160151442195580624058880474486203501346937448148017323259711113262640924699773585752579247730025589302600579436039330798505108602091424576066841152980220140155288341515045032549192166372883325017944001245850744837846455551249428016748555828097399454927403502077779118044687614335270469593316286002891021284469270070558717889876920682669830311492524171809731815918497291813761793449197118581517795661445904496169724666768023205143644667822213439562879899903541808574412194546029032927454672296137522983840698686826710248282081197290168076401731830911791044307489799286200535900983033069245242685681435196720087508334312541166842961677406589604280585407081590055448044474590593814424942626868771349824711004830501748721148261577553311814040012100071366850220576100886357195050377474065968377966045422342573240799838800487299124066830633270521174434407467577690265203597935803531552571618599654194369736609772299711555084353629279056199312354522863157665322553431935897961030771459955936918284903617952720839349673300460951242663940396213447625127756138421407181939033099647845176852298056645716587385123696514243486178927507332439222897409339295302634089487394186756633582584643710326040391309033370322395946768113683804337244664841857381199989373581810978022365347235456167896585581595297529373108511035539057072531097430328662907476972420844024397259739032214705333641153500603188840172630649274119737652228887282221399416136457884188256175412118345682306842929927034177153791037048811286696785954691010330486582525315380140340852311970297042552912319644738393203814306425962861637608775761347009506218903929660356445277983248593401781845587829944144624762612269401021200487786947414620131935437698019005146317876878037078939946565348223289536902848021526432444196430311457000403439045812420296379026970666804577776965283567266381146039565104960080109490399692704734113889167254687601920843908516199426759680223321064263462230855524877775668963284182547175698733838402532690078736014686576373442477387734183442163928783223971503437974224877665802889426826190063738019700882324360797170316019783002628314175286142660734697421080176397950187077103563861516571610540058696390593645026880985758430931945549631467951525927148003699375705761359316938270646462850617591188623768868378737909949576543680500496238554689854470545839648691584693871457805837499326773406275502863592379515279701949725863183286292687781943889175101206038948014517396559398853809548766584215362497676235833038067157909830443771997422573946332400851387659231148100107923753411910500828965754308907388425200798016770519293827423173445329677748329053040349740771091390640396250597361753738064083054384043820049566415184007110077249920237300093315873295830640187641624175182977789634523905462050153704332629784736900490400861884963716605630719354193905172384117738886001031578677832018933292654081045722606670170092926495671798135921993973055375650040856682921554209428500129783188228933018244893806755158408361069914865263802368655252382810502701958891201783784062460363738813163782247660291694475645310830148310005107846902234363677578170510891351911992714964973895575082415223736128726271253280064865836841253927683943820269951262581585196876502755326219930436333096017451978575961879858172687750853736947039948852078731775250460408628642410941442205430115450627875417997416880986202536495922641289385461811321460518499124749320925131634597091133815961810882239377760236346346415647093271361949252426456005509341711991842121673607818728034728476570180293120207461597483759082431078418295674216748758396937740159870463990112320128661646812321765039621075559460874946931522931874700754493202883935101086596960839796989417204116822014506107857462354227836016997767519498144576200582531466709874682203769945114815661803462668999353617624261396233232262729682946751746286200475571655420206587149922429359473789676612260634962310722771899156543386716130753507436546466225332926785916883365963178003913624745926584995342291713560279650322991137901983660530155778706215055868198837720005016019411062156448492167714316019803272766824876830289997508937379823979676068189137426236151481376794078286390268791004848665840961513909525968055656528724733910486449631321629980888804195311738488205431916632016215576741305342121872679148022872026698924625978000147368280476081091658297350826574376112008606343796334611211740527848672246991663606519829709158790902751524703453094374513875147732532933772048792761735598860480923408503319720763389072831919823318352614137519706939733387382526495859537828416489014034599410470913601764267805270133019475710322170754845912074472460133142097606008710946501186525159434346664234811931028976714644084259555542313186890451146000718294824068625796249502695002335667879004957608041024668349564064174048231301973575582018299957240050761117701884373379544282825472197445934040379113327539374039438465917634136868862539799181156322149272567873180362352866642567808240508253075752617425335374044238266666136733475879436733741898251202659599844468440720781956446752755879373561571725697645817867262817839484431793387359934391852566572741693372624262483039862877301649967134778826840098436210787693039150259331392750137921763277152799653605597241254739557264337517073499670918401764082379747861459547810894783032913964924841813876282253827719262690528096865321482997045896573281598544837581828428716887976563514999041043252652375027606996907484624262773868847792283920911335178441568819489947504224460107758837480132020011461288244021010261922614543013527669552616028015858783573862584700350515377029283254267415939853774328081056697636666611935928828242304570553786381837856577294776174344673429588811674185298657046821678536933122815461408777131655402839499017634399939637990026509968772383637228545170115311002309573354333300794693766454551129646116251590147778285792111649196438682549856242865334248314942910970079395576355998491847416701846554057701424335480118526488615408372199368913289107516531078244823630893615492068591354060726551494726606908491556175457161378839790650457643445078412738643505802971727686036208465302252343827349189091824729493637233746276912419621992606754407302602662115311916114271499116182899044006062924411773303627920455251213801291962623258893671883176388942487285048268109699549811304456875418508681540891102271894371823765346531573732368109565340261942287726620830045895914253209829372892494995990420059623317178731801533770070912565948423603912781167328497644284525337761796119722620482466467508479606269357057050670249502502491412563911450068887684416016952233254405614774176393664081452394628715349743174911430688328555538471281545398384964697354766434804743747881928111342389871476658220911029637567095714180515982435384109853024138127339885433654329226006810499725039488383690669740486096149217730725609855321872225634927488187518948138151935371366549489232523816001149836063287714068620742510746752232998019968550564554880771803819197479602250328073139139470245490036777347200040033421744496274275559215582570356186055265689488133007470332360015035483378498909230564636537630904108169248905626295760716288062430433946724604245988901317284703531671903617555446471127400825921214347319350719959900044559543842067958178920982872930470062814050937291460641198212724318996505823566193788438778889692598489613138911451553105352304293398758107712137883858720404275269797601965320433976506532812471768117265393914004094569424706210471884307414875429582368861665603794686482219536233433976066798978592856538871364516060660361603017649309464032780914506538940523866709123118067095932528023815994843996825703726899300222174191168159018809571371882703523255546516723755215270313890242737172342777069536077286124981992194413392487735809022681427608674789142283417973866187130074951642691988083840084391745019848634266211540069511503435621407905092907088378664141350478406995438487168649998739435310071138703431737897651169566163085513001808635123434957598600373480632495960201286491560399952140063578015120750312696165478763139147562486959182772768466221593394442206973795442567017949130801377399040433989896399181831474958229208385614422085902143197951351211414584225158811571056358928076276224459351666529200004166419605627954343419357212436615756511531313964745631659830661142547970721803400454203953193071350588732393412623306810168474697714879128621700599451793360739576603515674253849257996717806453495941182603735316742216402343738748551185002797277233079784551033009629610979485398018266826878116756894110354877539211426213827412937667761732701347072927511685526300916316955435536911398240935569375599872592629980503744023417965850119196952149110086369377835606331807523119774963501335886091091261118477738746445246636092763516232778352838505009306952466505244631512502430763245228977393372227648633991241999799664011439210769175928185570513389544065803575779122978017157234217405929135130889804240531983153665997855289178305013601692918693985719878046862177412632282909879714687336852316571526311819826145781368782141154643374710479011147537910563069090135461981528152707724767894411800652890619137949034662948638175993714553004822137738722095346186387996159278850592263253045982957247284660757458303009472352108145174609731791396801721573187828168357046652460388583119862693202443906972969997437609343963779278815776666237962603846888116593786538824516975113368684783345602199057155100491051368378393167042532687745133019233165513854457660255722513825394441566447713397901760675959568839091708562139875760688693261291157308830465000008979581320642540824274305203377675507184249581463497475892341214100841053812667495511160523693819966029502327228897096554271976230411371651060916670786502966807163993272933023542365675380336901475688453279795945796461091965282593922937008746245741315945233257160425021499259602504599625730894005884273709027263308444348918648850838504250898810305213259513547662268866683762119682488362673713547698257815901451803716677380358161834181711370522111044141670206956230376432332618237722996507074554743059340486464013767332371498368801696615047239145873410457395349344702878061492099523420463568455675017142753275820651945952346151607730978029830322884266299768629934888746924734240277898038979594783401598252917210450510685853368397405607778807559360902253555953875004231239114657404709143952051471504565119938025604543133993151612365454345194260518825341872159792510621891911669042589252802255541881936779285567861472829549836356420909629171681541064187180829257008365598475479040953613029112423749840657620423474130481128302857743488904681939879153277377432392998430894241140149502623983618622531571911256109904357606281482876526266842196744873111492627547942390484743997540751666612940048030406063346802214906668160829374928993902856155038003522772732010492804673835157356823889451492937276427837105372769813015007488136930447199352185325952000965782218600233440949842678828278340355971405884422797710837827261942761393668917905416515953483544522117852162009737297645003144871894933566338981250104053878293003905415275845512967848667312555787967403395794219012876721538734714039782170751340615157719236139718951208676165849132864823348190650326353445520962213861331346875722945008842005623736877023580063919297049295728802415940951010165838367000900075569922480509389073168624134898868073858374351467331577000739209083452198748543852924342887947445398027187791331248729308930095104931376088407759253240111149819063756146200907362758382901617880065182894832970692352824493520547322341612365857116575585469743112013709874767551559525957512139029454481832199510967868327021827212890670783620523874321117512233067967544735404292545139605410730953937590158507159144062379526084382934028731277873296396126199013530035348128823725883335257670409392748622441945300224246248318075090555238628903691582777907765366780189716439993641611618776984406997118142964027404808943325080759100681550433904621263340136820037446795039717897064309670993597613170980856374162094602649831483528083094291354360635600290841661379363456817730033733810577407681186231566390428504504227772971678045361435672841913928786948794653709473447532988499378205852631742911790852533520191110823637136298478017101472037094720315896343268746920004033031113601272353574687283416133982568264013195783452828238082867989775220371888761213698294450774932391842800527829468633117029648690303474828452016031122933588550932133868264059684824354148383300108140576078548766323671273168606684909903175857699496695620552942132833958698881144899177593852486060388110759508885985878977187500986711479225745926328605235125445586103145450272166844801481441523716312547891459282623721546884828736533286564178738224416436379222843525508912574931608597115446393323047288456607979497300823552892183982050765082102993772567043028161209924302610298866089274038457477217087900638662746513148141844436736239901671048443637533365186825038060178348235456502034949940008865985401723078628505235422477607960289077882604338903043362055475181163374681877486809123855873737512414127240672700488933762020245689383397864830187138903748339477290921897341297253508112843745834292365416188878936858369193435749575261861210321572441974941159704033582192283962237909974838857151333275108151641548919252240153784022800813195062846420189181845008252103136941167346698978051382307439650876661691794767592643052677553493186235271900598814750322894290643420768905580385656936531217598331932311634958657316786899528598164433819461705035066284865385848460023599845419169061461980892526063597635623858825193184302466439724139655485195715261443857277092749166682274723456548183362656930766349999884965335638233932542917001938140165512251010883910623101900819710973530729499188762917469939161535036702685834968238722414071336670798412373639453954903568928173552960613894891711784869907899624807229108245461211272819445068006107660634241323492505704177843825750672019065851991165571758179479485105956486564051418604286878873415640003835447167098945222568412648474778235748561157448067924407300138903063816991612132866017667853875705220228523678148366682797635785409440206195390392264354437332121893148006477445224237076950202156332961621674968791673612009164781505681888140187118794854782143812333894815543845292732006790172582743765508924635904691544929523236353661647237737163205107733416650937501571303222514602852745166219400128240650797091517744883911739503231572497527953316218542788147806717592084469778173881937728979345023893717665204415816754278331010903948830162851606697988830415718626215857942400177813155646004322332200901755586398001288147414840876429886438185134732315704267253520174707507440541067732646322839222406776586419550086308048410476298836471785187641868323578681966759374814251567985256858767001693709195577248696437047312391987094966197154487978556216359380137430211622096636752640744073680743211367653697980489122594188231957791089692329615687220699300436790589230466425532931588681289863228802249626356452367392566432242783711295497790538931903974839287114304330334971389699020395161287590689997766301488562672479521942625371871462936008874666337228151272274613786404990858542060659336445045667920813335078005694529901119286061076218533250527385378839525865613364546278391071967631216616655245941266785613718060630350958550993310181737309462266425288618247245891015372809739353666071426557556289984170050185049991026156828663818469579496982401166519381653308943203717555668387179596018170686598526661049863825974315173245072149401491650135644203655902082426760649707777322207613161362656200999711709110999828617939084738288891823379012618806102215041210578693401073078011710030635127649126513369420468187112891474556428570653095665865772153415727142467899333642232465323945807948472354145325785606019300000314926446388899826795932463043858943975758919870081644072121314637501848049572500893756748184676030461503154690989981194797963626445438562661922392456029949058269504085241385876650846004062152893436525453034554586937046379489422880782817208249232242946754644501957463472216197437940858994548497332387121857630534763846240758961917321077720831202787456138228925566071912456903966059071941857018922457153226403429221903333168118411686646397052054243559948246745934888224604469284719147329478275178370390968553347634405174532263116043413792557538647899466361995115664245291437738702492140897644236936571981293973334356646324002349273332437064986623383905243906690755895812699082023253314727899982710845437986699010001953735806000323669273217573934438711254391281716426738723551121031031225002422350703678680334794330769481912975867471837862495733925418937894920733563898484543541600294365140344277302945269787634736251401370762605136777658548448193674293109089113857800794793102503332405852073463249193554512366804381601203116075119524352672099334542629550266350779043791096556851676080851557546178336299311968502504566412982713143196118786439506220573711817988127991030313047155379087342186447671214369430089603160020472419583645508642032993246887410405551100430674554531079153171327527321928725068131544560143778325414202951096449783301813233107447139334702605055645876288791188529521474722903357702364335564224729572594555456271215007530929230708768311936988752774675238582493768410027508892052876519135694836942143261787347824561390280632813899270238636578775785641762640618473844545100902856274587819463951428671945410580131833649618805070932675036955719142749575085477142508581120033065861970437331232221127884424893308537373086049803341872319538050820559060972923919440459298950574731919175197900617236427227036697488770763980283060366097155401895984547623270606508661414882647241946078400159413525326957823087251380860687852824917320176975535734114230401692683989374473681822422210875395489659805559688084533333142896302436779933037823965543887657159824449313051882991065127773030182876244185708913774954431528197295717714523605141914299577109580746869040349217397554133547489796791287866861101128137685507704796041514876479785003030989083620336623346172328570745322512647865432301758522371262937671759308478728198210130821031189803580179576455134997393326411107833569832511255454688211288691369160684483764120820719579623732603533244417206014750564162739372591338587975145120144224452428751630238144145680366615169115772410519272522619661603102468590892653196260509405279869964775950964109911013596507304271727826826573856974540542533661841621336084851843681218220265303397884194509575274904561110013712118496779024072790980445818054245780986811361211134255053407429831830366314545736442113703333254897747052967216029594665216914418193886088433676671178359772828490795173896927213471084132611919475307743605661542498516889165822146261715929024670660937429099524796517783170554880042084172748159268024506192188990778878768437101740187068288978952494137274821399549726099977464870814758095865212375170222372706392051709693893444925076876364679359420898159444427010100744811985381325283309052553104417981287389631889747663274485608272949156341090494407957944516514399863146702385570810738373330208726155373512825934130542127514580523714902004135235284479262125779812568348346607814543742065479872339621265843005404263312290064190508908386461885478273255267085978761447075406224951514239797696477141253755622668388975491378374677759641846640831108108163232814330921660793689021812916067473530614154998878990389006315381640235729398245742165120373016596079095741205053146247639387210328232865851571843934240506939151463690354981089366037219063203900931393927873994523007043803314677974427071289703851565421008169062899253600292151885692064221993705494707059434119994351568425358025141733742810480469943308413826339967015006851577162912573854665313300986048657568802289927143159528897359431799487273528156298656003717092537634375709225969702107386531350971038082856629864921439624125291740863027993137589625469972305210596852254476676750773205124427611613137738685453419988266394430441957900239991862427200782816596617931750315289914599364882371774281205037532576741242814054375282927128312273407374231388835750005885232793409038285427125095648777840827378685053931250376582732189959140983540229027302221533079034175276931395452654124402592075717162838913595565474038876622440452654529336343988379991257152862785920602003480597336231089320627008072386180657296571031262579812973291367933624484871759361335104307091272057626301790481670054937430461655918556206573148764544733572896854521836074921556374949164639083556406794057728398168502042579088632886560521981119800691390567638734510367758024068800478616836892915033125195747306857970958722113670868214116184248375657159906618685865066061050922362930128827564344996424948369888996618862044189293928680679311881553452235662863797002382913325562669922923432854007121692975988713194942316904261161577969914012784650196470180919535807777726819968997023386489713284914893254726339516184815551941332547056801352463398184877263688831148257416128541282991951093309766651710991857215728970999303273224018499977578019872063319349113044866679014226585437614469148401341830263628720728336123447998653678746715090093749765866417680986159481271132490166641761715920884426094974641428003216797602747582579132892592090290813374152088582730586322564686311871831699043135695697705748676432565745668595854853853704567978653033852221066455915049506187073409307912095431291720467834448448410121231974272620964079619255829217295097865197399443076881642607110214645444638040340922244906194857355658164383315812514154994925874648809167644396034595817642504649527425324557809895709868165699323525056440884164091782601219748839155654185528840495437093739650414200323700516524009843538953275747271598742634522391974870903918534924261930359059042503525017823317321744275707841205462187339295283920185897838897795091475495738842314762324704030698824880406933805844144529101985586713833061367462757594124924169506700900187893330284442072948968163994628836724706327524559204310742596829806981334749620915553080554927544280949433610920092532687254007672778807157453627250529570407339686067285668430487327208265521525490983126515872534921319702596076970702694533997837279906958820824190127998482252772110542692683463979750326986833974066581132883965826871941318412686894863703564337833354190329471073790277660155844065671914122710146282408947885485385117287949385100765222017417482687627522482154839129045045830061670113963992391128199022392152264172729064392202726718334651134382994514355727230019721807388724037055503562574611902486534537805034239368359483642985295201586249030939466513128845903390597950880946862609534736558494644996578810210911245179196156330994793999152918575530016455620316625962437454279629622404000929059737297292286539001064655928035042779454535608753007528975622702702530152446646106433806223594164673808546721565515836063144529219878943509288962553496004113356175946465013258231583782025079945559106959566937236494103691385160084049625189645782500054322463109850794759902398002837280708080150076345990938530462719115984617165621716603641943691030676112087690721439800055037822990813874016227155104970651504471152186836866552643710478155927029063236085259629097117069672476875211804349407255301381939006604602858035881422113868880244485619764833682692102021909367620824429360447259638798753603974446926903184428454475063458121669796967016902314218656567837297352476176840443907360198164639551015789530687533625272361092898585252349841524965803944332765681509378927054023432357151339090725057515945602968137534027746513349856106525691641308382312654627101551458564405062384259058097076313653249924386100896320430355451972448426052351198485048709661131680335013336788481674398908846094490228959325264685059232564160719721328007536081138300405253851235253907429634878147552431109211490013716205569410916468479318403842943169597759967636496427770856338543682809114746625452964626390740293935715003575891751777435943454941456409308785139446191527424272248921763397070640042053106762528902461126119413865754453072476360597996298811643675013727863436825059436239260799848382824560440650315077828868117241611118446278662454340929835034261541223780718010333737395575763969858727624703104053389676135122633093086209158930013330819558507525703425580882555058759707212498050024184354912591009070071428629854682070260064854084276676163007388780396304397724924600540637045574574414163923248217954721825294870822059028849274070985597121143360225517237022217409832837924390552184676874656342524602367552894061855362119845865615057208668925441334618706287887894370335944229078469333131557080344897482899219856734329843932000683081170346445424897694422359442974667599821338693141643233626375377641360504766977044735837097668193572274545181116094866712004115486251884453195094466235787626295249302670792759353439314368688331837923600896895655536598561137273790493995427076429982831124875451863581322374520715595241830218882407075782091779722842796663429043715630345279178316476307822820191317446475860973046517838411237765789834613072806648598449061185450927483254145871191110834098240758494614381052836218119640802432043113110420524337166533009403721988158069319708295923139220263475093163087349642360007776048537372081705126852796333785172347709218136662717004651663282142589676095983749963052739883384240034752756725793840271210582765316031991211776379307631947969829106545300880485634461557158821192042543782248574894336267893131525535049988526574209872751527448994255363213667381645229915864163937580418964811792920643126630749311407717628130185314698371286089969808283653714027659954382453983390608927543177061575401217877368449029830905116727376750390952688785951512020555170049407778804205603975271175509339869967031106568892976422570225115641298285874529926050004592838190775842288261774241426899879689050836672226939935153949092658442001303045857234353052873424152972834504040972929519198342106787363588991578644034076559761670764737126113464233416718707680434525965582782456612805615376408069231064119474116190104058256924687291520494202473643743448925418588925063894280929086479365036470061025475425498635101458633351304058257597436118945274799145388579447344553248199851069121891373771737568553656865825229544884258112412080766748953836009075654848924667951253844627295343408664650521625770081269248929846872357154313035041182388967616367103721462636492884130871643469421860628970604483572653501687707731442233819421622335025813182312544940360910479165225759824696070789027071257010096287516084293785778508712700323985073554840788235876417386293069258273113057946486369608928267358941628030530788244948782359269770156637067324035123704066453129234654621045350930098840913582796288400705173294597628943534473434594943860925629060649016103876819257832317889597898287664267069710400430652713698295624881879568627626349152915815159694091557581370303098848616992309835487341198109093827254282876653339065611911388051064649689502175524665610201224892366053932954343690892694082315493262724798758235621025812463383145507680222835184810043555627753582634900114031682723780505292776171195712994534027036377836746860340764078152226946109990261237572698796972977713695152748304958463063476110517209862956948452091404342816752811097556710274261921495259288145733467976969215196574092708405309268317687659556448608298969858043951383540006175757159152555035218531600312515329540037124221655568979528281521585216932645367741191769614789169145014107352770864204773488306463687984699430313214202057591253191578111682692895051885492871996201934096997109752569105121829211289398634665259396526453633485492218091621160778656969215284004724481413755082682761849815045426979127757759878917474792072907828797159391548404928280498340751394247238907955018705243386307523937858695004717576659413288514393580436392073088889713146706386700634448077390003338990579953015698943006564188408522757764412815163910003333750108090219842986847880328130780625999194532313293542661523909355309112756170285574181353723780138274502395173324946869084224089358577352844937025900170968966859405403011348124489890150754988452464042638167644020727478275298384488673805789812145985780700989111267280715762246762239064458520664477707876598476692817559602530028632748465003539594191663960320109773637496494994288071747168475032916682978823534900093179788233759226991355648094120372569466428286854507151907125669301650640180599645092709455852304054942822034864829430909758571886251999283970151401754139771518934333823291255025979451586333386856631437547027593008884765837354742182293979999658218436624770985147872383945965233645523379240620512878842958728295319459019996406585650506084421041642183256693455915705285138711566251612071300056810639674429560330800784673339471313469720871092916325485133581751073032261922104753757668103310983733315285938201700794809343642581129548486866729502786818842090962118302824521080130509942036411919833917973065812290074274380928324600920536564472561519017826236569368887770385937616117408474233411975455476941073322844990589272688197270507793569348243355455265991996223853068196009714932094267956574388105545052366676152143256568112565558436985452197956322239767853057106424325257104422294000925084603427418205365845378604664814785053987195053351408236047971395096238202421616754784544177420017321983043260579078794740371243942086116854458670026745503446990991231703619249540535588886303191919335046822459161664907721719285986403762107912233070680438428600781096997838664697796721178630352706852014152809353387856472812943487376826213180051209604374395662564078680026960441910927154768974862591625066420449767075815765210110452322949115175432178648603625065499811538768756120384545902610460551991093673800590593535603691510274760630985524942497726413420547852512938010565386493683786967246353269238314450235844791868568084776128079402191394283497438702180782701893709935230599496323082812337206843708272888764452633043438399971593974965011645281935182128633491056881504639974232732966136142482521436749218458282604793142202418381377641998225003850030025152384507792595065096088078795463590610365415329430836306522946653014081304617892588676517390119026477457332867788552204970538346109242153334282459098312805123159494800438924460195792837266609708431783002377122026365325845572103408944358919917525412265166453391052796203403108303159423399721110939544189147102244849647419618702491596596298689281635595737338048956547950968838122183520937904799232005262096369055010179568607205303518469364819024734559843317569891196223859500829424036963152440223453816006246559469549633230598940088129834834484219156740529665821330758451579835298312978199901082436000609784754715157917115858849775631192965879618983118552838393359787151334153196406637932862261862645411106527803319877813452421519068559677668183680233308056401209666752811253395916984725676092310965533582070921592389659876351802677070125458719378487791555048672652193700031677464265246589548721401371363963210227734291998496327203780793917655500222835892752403726117224656720417427934484676565869677545528494211129922433871541328953273306372334296480099107300910376689169989372337075729135848157661428506975088270496431119047763175504323453415648286640798411188584076019056046293280282532723525222594067479516445658774440583663096235278398446822522680367960137936090673451494499143936393082407913544660037180799309571697446638518629536293471080004514620222825318442402681770594216459868471637249808969894340154963598777042313654569314265062893060771673592745243240328890928047037650422510935314663575118913807594736990246561863976018778641273857829836606435792975144280475400664421989957866989112463286735123626533433410350730859974170942747714081726537627290770473695537571211552043764855070765379808804165763661523493980980038860584852079785711824919254415158663137061660103596762462553680733794118555707697249718774334705179182967068679645072596275715686703200302899985420105549240285828110186111631304266577014663757901260800627194544773986114094820935156086954690895500741717530249772618771241253240086676406257609012280016242602183817691681494427191997361245176340396056057115898952383064536169433782004450590662402025081718218748623892902632721281661654503669236967647739761697770389385621588291162424075013391489435638108974207486136618908983241362766991793713474501161513733121924763057859541592131797076765746041813218877373479641476197086787368782347922177709858203135871034139776498499845394522931730656051643356751886155307110251409562100239554555546816464194356849178459694089715978668384111782312734952414462048342729047411750978708551344287855711800000541928959284977562662010507471711266805186690134284432711432073673960234553935944930153650020357843075794836699684431867928875532289521891471713026212713223244662794874870784015279369638064841020879330419469292710356327475709310261282863478030319543926056602650408714445994017793653662459814442722640176310110454620397184538262765514707216438902596566521482267434806595454963447737703163962399684549061087138211527144964231564868093839577787171320634975446494657170121666415311859750654977933679201595884343676892150638314673918220860040502059607205354285710024015398159500094484911748947306257433847762669640587731156260819910248259072634120835216050381563706077915973456319951161627935661829563892932015473898644976925477751654835544799182948524619509639136008691498201560697191489867304813250388845504961782982382199841059637096030357307344823064348431799941151790540504348318936659679122295932662355582837572580079105625858398033879842406294339608786199289159315919241717412859109000402033051215989760125944573328415397514898878119059604652112682973213448872592116117135650613653732855350768290952239055490420601535288468864919171292473183436735577914564708085056574002879864485768681539409888485735311639194956906650405950376001692289008923876487305940248844224996859200068291151258345110765905874914788577445433052567928111536374555877055870797513344339126021283307887092413083918424591815678334760664597777951064756610869287207996763752769334548591431395730853819304208055013403658025635705312388361473209567561287635217597588362050900453704128866229893741991325402965194397075193893714436172830045443558851598390639425731816069110519422116673112067595293191867175992126066172004609465938443870599445433203941493954877969782905362374722802870975149836778821332207635863601278140997118938413917105331245567158170336204406537874030252137878128711656102266138459248905740254386753101450977386342640037998397747139178152157925499578872879710413782467565405100742553418998242178164129649946051705266282041925942996587486343312089897431002891000735077472376858597796206076498248241501536655788794620727357136807342889475247885959049519603612457220926248534306688855056115671128929499697055354787958990683049196160634709920114853838109995586457701451270970593391359691777603374758394670177484063243898802020090480727020090634836737764022771433942107924662883382051503543411475460718347895240098062106252961128990148215877245963211930924249521802252041093372017821282774960264311784475990022971935945069346181409123297919429991812194688431114848086258988005181674909530402342520141867107405925120550726365062529651800333346577004635205986232809189752823547153434158052879263642879341754076930941920681967678999407068889281442009412727754812979687750159244239752187803945910458970782552079421331226061856117663419112451312185810694980136413372636644530923883733070215588200998701786503772342465717733046058191653118678926741212458794775332608180648100306106839380190734332765487411332421305501607313160434485889738415108798123231508031897845069449689668966893988740888241733611316692208774078594812521677733149560925357684723229444386403771956302131811891825579152702194443020713326579735124446270802399156133734529560297446581986719593916329544961667851673463321902174153390809919428537776922593025069612649849853012638926398285966193297932039510103529114204517924709783844385474916507516935015414538734547957409034970638021948667952308177574714523029134188790090901468631679234743422626106350201630927991561633317409394613244961972150176674609256912936660864725475311369577516028882221671831129278365292753330079733111389156783740886208303482848355873351117588230698605590113340922324192924508194599294940705571551308826192453364251114762691245296283313669887360170867248035040276902245216466041535808467719667862275303380308291904896567448365217758110116619930849284461154658317511985808882416644742955698691143194250936956695961611696739360501244594220450666143729317128652854695927720028685584688363069972423738658260841189859025173326712515126035997904423633834471536765793995819029937419780204062106705109307655937005387524597930672671749428818442885736071918512789706823768743254351556336691692819028570742075174924637168101518977879529051027954924052572393473934904736228777334140169960246320140876154227741892661070368728741174020590736123277871512273635857528697991350418833470861649216415361901982386135245400476170505505568399723115111419818237336625311890788679200131004904970655077882276601787285079643589649357922690680611966417948996660909182802118576605084979740766346310178328722924205455061943504790807029165348117004500684035418924759075750050604785674688841279433035174870662798694345271328757242678109813083740313893558077845784572357993453907892740891278728912887723590107162310459157151127420483457118169174070159171863095696265220054679350737855124046686765456050315605039337875261767183627130319045408380334014269313923800519891460077178827249383579315743992015074108199490752352475633274124129319898123488790205067660239069589219110768736251667418163387277841925976806219431430081303374956810475697341512781311909467810951212482513177251470150559703386300157684324174702318971059708638005726706092250526657206959141715492936759685933004559718635355809225634041108976976614539464275044621209139228436508806700449674695721940178892174673257558998195626297780362583806692554336944045294848692173186741290380005934398789761061333694101374525192896885540555699731146528223059815478944634638249656388079974665480265053248921773400563076111247400393395688749515357037678771408042310129237602907118678061709723842610582358084987263511290640729409000137403347617016035315084078808643626566312430483799779975903423399862792842720770630863207257767355273449825945515163245669484873300310791562993025220071953905228980239347610465726474944886949215251948769247839958470313171507266888771007788791948628288961883339881458756468786521691278619209299912251386473032717880464338398471645369288992176415162455698602994173558104352926230013047892554287170978788987060534151754149532527147761365538725423855912492765633555534107542711648008618822290263011761666779017972350395780923388780299428459985253706304059848186719590747815992802967828782559402404128086213593107419550807118977608246991948396953063819212445394763792073400085763055738601639850191387576097976888208415648007375970941712222937336864207116240640397301915834178551592354237419681154298043490977694403902453616013157290299973071140838504648336539373189018077260519686077810249682083903753914976578002470013575302880555858760988577553938390323887852950668981880452677714271061019657085676914547395200295459033866599988576705094289260694811441435179660456194008192243029774003291441366782187850265093951022225174953386753971819780000953553958049031681860772467894436314687759335156486226725770849526404302590817593495999809754795478999586707725174299622158351539631030276682525955363774518795545902785379826389189076092001358652472481287520160006716012468976255444813202483194002005764156224800118679240018894603497875622177939106766714324734727142930276229207275192013281565596840011309334122817465235602026467342092189378082312188511178315987172487112992479049946619083721289201135506921555261106882580763440115485688543330784151919375580926134506056099623913544590789570642351586900243411203888652018361416423965068009789622148783970138761485215012312421246866068458559054353027350504154710616700540915712328871509289374740513028340567473158924555011253793967309403505734728750907159090606115798447688910690089732718561315245520868111962110034553408038183646411798098968426748383309853970161332222190163120987986901799844360093426805902984330040111031794755136498955308505737488880765087304616330536007159334812352798790746702187225709330019810824766114569084685872331919235588536709480235075957897934792517455695991960789537670767329498140375256128291946029982629967323166807871738582663307863397120434582315730385810636570683976630881894474532996164717445732546116454458748291090743478311204814461420143362365384983638060727594637617029487855673096671958221430756522198458247872323643660757362652969016632762543481767288201579717085929213927523992589064167360534582060182938204224762966994481238410307030627003409661585819683288043569897783487788177304959246877283582756156712482328668905093140658077436085328630351470822582666651993802493271151102496000637566552101328845528697912679344441485924595179789870441518104326697859805573303646797733872115042726111741655650989298844593132734338140407032780091643030088416966724286890629093494890299421128449206621636478953800363078190146154478346671145999438211400092062192954575193079171811788072222656175950159994306690360450775732690803967344317237944979214429711748813681127911170380274376886370754590361681950888222386373102572621604017144482224790632234456001675487030567961504811877232657438894600274509807674158045966575086425158048726741572476756603917705621564628594173946508608993381450070613079401203845732193762577330321701339292139928920658797625711702477786987722969391473574995148016447140801768071083123937686830805964844810128097573346402495828044226818594446266923230175727691759449690956035378238917920170475384668223652479746350589902039457438826766469003987879246746721852595576069924506567422842795490630711277000345454284189467700538255967882400097693608989843883393475557548304282547671077440056788863529410905065236416644188758455464239702245185801734477197419854402543810799702105192301913780151329928440027042989990065673733157057300680884643846863554538941860411152498997071979633100218792854257664419834973758583732987126484521129691274741692939379749246204334749508035853607650582155207414642275180043564921117437193891278188868793911274555303152239238091721399471427982018149954041284848330804564547228971186614337029864504962695692896579481273993756937477043210640064213235651481107980622844799383671058218458160725055027290244914345321110245710933702855570901231704203740775240922224762926923210705904862009566993394776439580856167998235073290144301572874182705342979480620218746068443952460179037122811966620234679901579067833401393342810412130559195511677747983228031828737991697021958859386700960127802439296410243573222653657922170746872383010998209518022138876474423672465450638517732158941252763885465907013506811163976947596413857237334877881845703446631999340270349555680255708100933704264748988958010456321746765452282277989199950607424166880745321850764848518381923089010082997760675486534002274177492265840747322773012061298973121229694511488420871561036224873108578431087984389280577850409288720246942395926896553259822128501368488728351446179461934728219063520104622518969126382651574554554139430705916201753873702202441387159280438648289925390316522542158955782069214027861553606889717748173409867241800253123169828518888606934231951691780847391769022757485324267442315328103776315232834086295757277291249855951580649949494798994036938525927558071461634396907030719186938246635394416441724307803702228994650526873459604134794211333810094241409667639451061335546584660997120314382916097963044240078521729182553196485112716226439048896220556367255605869782131249633224829277346433456079220026450457528960397615981673557369644768424181688790786439951677391700852256648900484961893933484985189419777107725234211419125222890442317581891768391179730974237711022954557745380431836206499679619829902763753307589314175107329356494462234838363594802407609335377486937673441358547044308449808052086403090104320624135310441305442538968758524376946589354826905577793940943068606468346391637459332247767079450887353384083590706283276574373780202234110174837233988545469856405021224560051408188855443435437376824857011889792414550752398471731868840184996376604978113698384384807726116783033235372148856181099456319826460636965077209142328960797449438689296874296494187489021771755808055705131738187837326013572688879809045075607971530843629715305956089577078894278221697979491826239555197014000902634297120835947985625789629778150900738882464573956628271575139736552189531170263279448623590638759005290336496944791098776445337045342297107306212449127032009652441121709304126991046445461751657084969316578305361413163909826473893322071008539438334339546763565437394279449599493384170253911796745107229343389894747114884229163090697036602345728830748548087988426698954053251144407252646829056572549083679310401509059309557838124686886528832279471609263799706499158833937114282662776106374437564356094039569823379610878256463157622437350074530765655087541679445643826355835559026427411729729791535390514561533516324556892406400269732453385408648592169627700055824480247602031032176860804707428466893164259664478684351646921905615827192115582449446178927223158943038396227438378607673484591608612888652720233190268873155115505045715649628018157065269802111366666371273578879221588215738623005956620713346252268986919742020627039480046424444082408999839996578112623185562971112216224330218302969753749601232531971632059802723389388967595198089364825504497548315446578838126990625136138657567110123562661814189338380147610977628146280386553371608926119718083277039404366849128749630609047147082439091670934071997333168594172318359577413774287214672234699896275865685777079626302002119491275664980543297067003401153951485558854221556159902521699279995162930763426581917007401448690697249772449284677370679311527534652175094440517315911910818106597487728454455852413622684208990183465226349812206246594593238216781618752670248261099434430132745611484743745188878624951802621066623454200768000189774838221390929438115048348595020487907219149154474989637232961283172030974062388079640014274734231958735114228491574911851435950882254715741139733035503151581846876798398020012305015489047646308318862149184598786333377132585774053146064183704813517577454425872807350625786554009019436421608801371101902459914871801243889330610712418153010192737561278755508804250680303169828445428237403417875264921310103084576230958492540802153980437072830448587141306823942409180536455790701592231909776743329155229693080806355041687607363246187747804415987541543175121683558810105667929692259544232483246331062746050014409231429006724658144579357481571276250622271389216626726928673646904310606548753074715807443520321937036233327531968113518756335772183008400998616605220970072628569262375557756619436215022404502168368331293090368736379631223360661579009922542431965919573130673979398251522227505487622143709426624368135847314507426659125058903695699348779960020661491210948226975016832546111755483621270262383726748618812559272990537732611760144499180615605917682505583756272507146742155749584498398133731859768522436757669948352454878667966565143112421754457220765510102688531205756073475318937419759912850776186153529794062779062168277235573200225279960513415322211205428861703638634420201660636555014889235704009871970629984183007231845243205983745752198217640374945629597916813462767504589510284443464870737572171657989975434492724624123779941692923267264454870307715805930816411301364668757941643222771924916708169240274723602297652034715079939442524502354246517357983925331381115955578625889571996185833275929413310590298818816719830932054495916298529308305011987808459474752156173663811859534469217417970801758261716594123451766421462698853439496040762205790609282089661655881761373644206825131004707443097322529728263581057877994194171956842731652369589118413829294727511030803792149672146710416465174285536802844193593722488540685580493943623486052740649479336734083242425680728809796645192919104023154084468924214805874975637612277428871001144941093888939858397845898351024364908151879938514209268796666874991312817625961179272228741438561067764333866777507357783652019788832499709158182515695577711750353069294446561213492120440571528189560831224768240798669262507698608208091721646477032136551317870441807650303456850165935158091896016440961232943452905799204075362626993012453978589775126902845412336179008467537795200244207856127544385945060223549052199380028259167076805923460798482457254624568740663634089008411286685834285513370904057109927378621436241768190582493562499720176233437196144012224293516726405252606276495854083074899629284385264111409689504058671507989977631215930087136233859746492681830969633756558726039024863340436873209543162045465405507111628445961154805444962023788319331997986620691565108584753783218845946069504933851560056304698607520342565805019136219397376152066208341356882387004539423291448501487018820284237749798527402034769335847427017135481384897418041254161545593629111914610459632625396383394415356172738913225040866707410113762838327578271017058897205166672607017761579141411729962333357627663793348356305350761379818192372049795728003729735171293040781835057801496649105096511580663219863525439042826096441985167954914431347001327760940742829057310737219525030053723121498710402180563449804798132339294822818411706319046600518745373584414705432187125529447097601493533873701065462215635625893561262405898299841609893008409641356530416516520447915214506968069395610683139216934285568338346867745363629100734544013488701209102157029413436450395787408456607020624399750694865192417593640642997699369884349035712411289922919143862253932318090501169521090029536234015398638409699797650543993664477583636836527292425023919963281340379660709301350002008286895347119337160110848527095614870798873838063483104581890798673429954720656429138385310799447406264690920266349119970600863779611716179536440773522356460546201705161962714754372472361564017194026723246631797322024772375712121760648117924974983899073552598656546222334255402669811208899750659120417977320419923859272366819743729272166483665216871920164809215461008535743605785851983705886607937258809857405945924135585347674825552429273724339909804741862180683824299874580070163854521438367638401806036907226791626513852425097149352279782889535931723344489186067090356260569676977335909284664400485550985472638922118666560493433458054039277290846227409511656361015481453129750966552380532506598809987902640097190783361377278685419920621368789925618849900555494291857317222053078183678891855192038341763557172665672578631196166997871264464725616244940454950511410522053487621012563561423497831163657966115699554607864108713803892127762619728716409784833773751283009116821974506217061061200207344738166123043507916779821419686320359359167569373038039910839073720055916995757188402804136101180812069368887398993198957692529975017051126536998976568207534014483722515835881068678918962732295625629310957378336893490467927673930832975930637840813149790981206972581195960213650468278244996986241495728511677298614739001900644840769457737055169352618405551630177192769568979150936442236666551202081307887205901478739047246128202052453727747096104807835321892869432468399161209374947405825440352318090330963692128993898125353240994259404642425432269226163472701562974321699649146684834396427369349484232376104189986114588445357706945969985732576559968217799021501102962777428065894756470775070451988839660111392254742205051326005042317311434174825121933311670586833436849589187995919721866797472133313293710175352272000593935893058590230481263335156496623346574161051856972189379964223742126992490372068933038244384044639172073264286749984094828298421030304309478266887431687404843994610994625055309724253706571446784278069216202821800927739201927190744422686204264220382280287788471856492299944037410755754382772314835568954414856138537346063641750554342154306966612589657035663770623201450145363953472347787160545611304208076414143999260677716094604302413751529131286626539374226944722903037494129676345278320724857813009947365316737068570207802586133645660139557289383902764137237980495292512037561117466729996993317112727324777830433420947991471513063520212864236213341235769914167746072741892566522995582248382485877622172328363943475571063311087836229760119551741596128515849327095052651504182966667901468620129189162042695696303325295533083329516124326073356106540664639168630909668867146385339453909584346075666656267839025558018082209765967206292627383540964111729133728182303028687187421273536329157779661232358132887028249295069356076150656353339614713704127879247034876536697688158971969960353935116504150137985685813764651036088120969274737103372749540581328235306538348834359931324357006308988168337613639403740922971508119607714035138834543181264661051701744434671733752517074239454968180740011403888202895246038713829040802590697752318697090708023121263588341605787570243935514020328027927998953394919999541548898189288780461501780177671696260592622766841087330462256631571735493943977005399682039398187688304606276565290170920804976002802550760939874681701189805433901007420449205147312924637521946710489918048738340242873408144916412747573867722192384674286260710167285813133006223395469230527231655967380561109568904852315274064875905661541844322143210752693498661551928588787749429858770707697060412590320325921043530276637687711837858331946268071521375545651193558153334029104612496322253789625159583784506087760164628372763508493774211009076272684528588160090426195202253499780450201951937732519955615340738761070142589146899595800870739492331840311816384349491637826124043374027038040633580617922918346639749606142323982249608592292684137473585554099926674553143756437306195043645001966682762650688876409863873544777085122125099722437534631836148269268281309806371750832057557390087951728924309280377835561602434878962304814987886958719450196782073414601033446344763336347278918404048778085134158868842914562982971761329798306274925352027581755184915888087310640622940293716772086455539234715695906814378567185619218888787493674950058311645776251796619383308376708663970147551278855852500445080393778558680002493047540334723438071215253157461674286318463587508626820190985211668926541757530779965625083889419912768036450101281856893850813792452583939832820490535097522332104906340687614194080599847128592027895867179685696315093114170452844912358251654025148240141229536249279179558590666675490065949318265229730631744120870627323124429550294173192548011658297746387121728386125967477046862143189376867820174406036895969874915104190283348928334912846336246402546745207354163158863643901379259910642526958693379983467066531986208303239571034899458663724546430412006778576867780666699770406996723666538292246828773676661283394229645800113505177071122257341180819504395469219055621739721352942081605144297021248147209039866913784773651612794049801116222764393287589668135232108725746861652876500481170234136585665879054021415624337591000638321886818514704660102587398723380237858795824390372212974276208606812075746018729127855404330562197826634725536129631707540153955915636280329585015459816270035933447859083981931247848071200212944652054043201259623790073849158655831007751437899424854194301382851386834683449564729024216100936380842665931273341460799636953143045518320243420983341345356058096304661236944933632178604698337225031860340322191396612098834476732664487694129494680247503504209245927541167466667841661990328630674295444102736404913047362059801097183451323592431368209663384881615096903184750318388613712389734773654855547347555170135882050087406418762620037989561336155347141603790419047847890490594602144147127783926880367769955070865439012199784744814174573077351719374580323438254816627017318822057056607946104234375562894158955193325970944482591151513708062709169462249290903774518242219850532785883335954917876171779969279316258561321337683326790779784242833842156611685740859812228747427313674284720090149407149975285912462426330223444107569625136735720054089675220124837701495192838758655533263666766839348607941580010468962195416429268608616133387754482797020552896385857783903243787632464074125871149821456801558090047040023450451611692857848315483032282969388609516409040759887668581112553537606200224062478826075600750899953594506866840555232245915066937073171270401888423915777699128331990936005088721504913181669443518599672402035984970273999485392945780078349746785925648797424135523798558140531282752013835992920013235270128037558135832708367541411196983681190181026666114767952711133488595084395328475315377027724126294003556485437589942431013821797689634871983616677675783162444616830466076565417458465350600705319925941733226501237295089217959362217727818195318512689844145175217256224039264036085476139056061158460717107921984784766169380605235609667732150304644256722230731373667615286719958753721340848524540345230679100487720461983829231024069829683047875564397439991260411659711454287213518075674682865377173381126743349723026271119259731261394979382037479189750007102562646681536582222414420460466314997414775596529052139114412445512037246182811677886551821154437624004100764863774771474617869624298456663953534595252271671921083994364756743257218269697437435639548311315466947434974660514576949983648134527757215581658668861818547872676956672880075132659885565320242019054375142258928958747758010978851444458014607415078557809792873667807692559840091411268801164353797576235300944294557363139355228127754808424917826438044050820887577277995772670035915564386881025188753036033210911573243858435451176393712798396683111210909588002235901213878550968280790414768015792257483236314418323700481334581183064492074036859316412524499373132646790604097835704233647594950681633321569020058404094701016522110043676559242875697570368453236392728474592452335009807624718399400051208535409347213251517168198604978806272252997614745180994183236100186130158581447944495352009569139179176237719330083500383081048742698192775825022571736836988787722992718299442819664619725432200264220320463909334455427990976514236219699020278319616777329813625108023351810485838965411284045807919887823293891592288813350321641697821930610290136685997924094581318574256989623537524326118395833040874377300925142961102016770155081077400184751321111438410458953450768947562761565110397064161069785253194487968379494089642907084418058575480346832348683014509975224009239360546314612052966924275494268268742196967333559538678105034665420189257369825857136002948307563589433553727938691245884857705807940659861203754010123288105170954727254376586743205964739711475281044334537981671997507512032212135427969047984304726207024033061436206363585985362341971877786583760374683524401142770065242661044731323706397875571284918298375863127318992306130646052599989248847208679422123626268786003376897280717593989625908271418237790756339361775228127439380437111097695513557258316387632659414221519107867948355926453339348410066426404151822309136506626035693789160774441600968608884079100615359553389435470353605614839614226966504624918866105523506048556172560077271437570250057893652187930759264678221354111115705877235720534382103567366019622869784241262744044889463002523729687445816613490450825272104287021766728697118926336147584113439377360828043124387079390119134193286582240505377981460368032984920424606871281098488131992174478151987801491442024693298157845646199034328730128957612005524350243926252127414034925749326038115781878377344576665894382511788642846870498894411572275252085270320455253610371809396495996188355789122309891659888252767546773684620558082964176182779544184438774985202505486342118206559530337054895158268440050260756525326433809417384667927372837942930539979982941042097617197095577165664351676215462383132059473475976838932541117552963283737073531283570943831443151666203958332669377327220676344519508896422919674046926357098617654578643816281312894478021445169439361744290084060803551761455864321578565224876409872040444620573397617563743668749497919338271525826372390061998648464963922025198870421384888563665452376121504586973277784105484102170412696938359777816869218157754759707384247604073684688207002294124083122905353642484886516159383289953668776767351807912103325606109103990111779321104320910367870702337749408230332221563590070355425438174760433466269796594566595935633467562737043540915914144144966303193008723531601118183591482069602003412739568505703201060289791068273083124355706136758694912998365448864641250782996897281039545174868275852052876051623130417846789293619505957271202383555829792678748635378696419382750537969746238738161489343780802886254267886674375489116598949165393201465468742241770187525494620443568590586232231693017161250964643520066474811096653323953966108880365474851647136506214824033709864365882490101619100041889222639473922535282656267567417078433546488640738171237609839381617581407715696943519776003691783798603538995362017581274671379905096692990156129358506709082973496006976985203820817929997964131566979187002666711177806267002276603383489335801272397455824737269264387056331957988776925043407916559644219479203631380531028426847528543489875593018604897871554926833309886008970261332186483324080003388483623588634853609213305107909275560578878636866972879607216067686201675174008128330533335833359524533828945050834374876873112412111030782435180937869743135711641649683401935501384511590559769876652096887322085487664714143884313982375928299250877105039521944625286354020166724599314090823011561360247678971103498286968480382082919458332630195531091117016898358188752346526115956702628532366306969148882623824739431314729380857234564760207643389272629158410979850990887569668764094759962191280014004715137554243335900618456277698439324735374100865108367914705234177766389399601144680311505808494106776790848867557037997762138729932562622719729698026862333147145316789969914825565221280331229458001904345996483019087005403400842516736289993208362717372847771876283840929117425045210009474445884545221505088268573657938548110960036115186370926155573905195570168903711194447948422706758885998173730158052167900736547132355977189706091497370858083224916755962834733471852992623641495158811189492610670852354044014233059396482402210786637955368384742601618553995756418176224148061623379429747920583526825613942433591124454133764667045908350209084872477106160380036321612295311152837499733244553614566823082844744106172330317002675724238356406140250617969337127925631174383093366377900845443268376359351783672097326587538879058250112391466359800318463802302202126416021676724567741588156287573716403562075080866621921244069722364053054141677848227603789975151292774689257416529557638336273500884332646133376102419597554441239064597166723162752888760288331409516776275884633921610215152881707306044588792911327777537335706503105951501892877508283965220631510455018953269606495184344324969016236823514287180436576878118672847662441617302472642486742438870806352182311731865165465128401363401542294138634813837489021326537028911257026319840370840315154586569556931409997966978806547282273327606757045443198057745433940426750424226577585757454477480992220416789091478891127549013681414275424756564463103685425413633199379058799462785492910399148432101362746557391588423108363165698778440303099655466662280102027947785528822999544820767585063112874428963998705521674528849444315378806395985560415400963553393991820485339230071668819877470103871015652211442332747932526612943707823559576907075846067128774246071688748444118563610518084752607036794610945950678934800318958515425806441815748542691288087245563738094930908316007761230651760831734729092994468336126605953871578162962957008307288767570845293073137826768128131261880893020669027860202403925603779935367430760069299239667552406602037613921607469028818293366411795882841844874656374128180860395542990178838364101411187296801870050242445402027503015468562311565232653963834715891755303362256560550965460695322806306689757096783908783134077191744453551010345188643725944107832424558606965635558067225277162726985147735209583725078990775904265273638547925056159455467349549918293547966598522911829518880616696734014897326945997149953464579230993658989917025834046914988501646724776858845725871335603902397531555716803728134261444995645010395520159447168452007849999906282270861359371355040059843305566180079735388821186395171594623097780898346320053920703965073711559600022310340697818228695023518081134175481497104646312260314636045267345753744643705080999388373021130613381607696490001938498533101144435469168255189347424946956522339735035702186823925515326510723929579077350038252358965192165281952977345339324161579690735620348793532853308617771306275020152990433785884671287290081982049617346550347067633704301255782652296214385201361747766948702442451226306432918671982346416730544903508670487558106746123261825200289132431287726547976987064789924382912941999598790696382773364900118943846695919954154667767749148290520372869723068472112517264383933753846346435140392824882847993029354049785213803393046463892111040786439529068728274926286180222074672061265104062310730211352480335312712212999370620917187569681917196247928719620888828744626266342117479695390760970810120319523622473899265105641983964480851639986643797357878446620335233777029312770263616277494773391020453719513965727012101363920405068838695872422040231469636475127881194917487378294493692783132876136883896951679118144267989217657165219971560957429809742292653034512226515708283212291435963361898211656632633851076458258495166121040646580862763300290398494087330121628741278814620073844638456785116776757040382542031524958246890202907365188853002394406296817663661380591850565883137315640767480427067610807639925512228916982699817174320478633486319115970687090927631056874674704524280003114833705418807526921119699091848412110111332657180858506491467918163298477946289616738789439826095452425297467198402913116960703955203925623569440644759908844723459621143188333069136710630966576965035892351568231535666292918081877084050367460498352117512520872585294003014828284235292982029328880238215124904012927444748262271108664963178247649099856829841614328075543724255924789858873203205914549343512944626683129941987697098376919886071539289406108046398581672248569005708718176785924565136564630590024990984157475198341704430402500292738430923981335259167414905729973417911544390086930500818405640596892936999855119143379332550691533825976415560881815509124164330017614890849860417725916757141509226194136572156709180774610495657627585592206365111586185328830850426292790928627566884509841174936087517106583937455797734118163096251869610366135843906507004016720266251275692469393949268182368609010673152702892435613433299150491844850710132561740807127618312116419198216763982749643971870658640263406971106336216708741544967458521440462312969772914598468558353578052892598218483529212460612662072935801337222085934132519741087141277279107482191733019833448239487108615482340241117788745255598034142490081818410506095505853694992084857320647375878349997422415382522477588367099053734768398868532166445983437431156739261034474526131609836346155751369266708850828845162202090442874965234578587534974168252684125100181417446868035978877564952024848051802570697971462313283173970454437690977458725965206313687228913723311317834693432800169895147678769387330794326977023847241078305855712323634559354899365781933918085265007498491237397493439250291269232717371935665178275552379716320674977621815940964904669750597005255025331483356682685676135416888729241468964388813611187018027895220196905543203768343751362690835258736484224280336032071843903710611236921962336816635198778783892619755037710436370149162144522518300562545899420175944723105206841568501275698729302800800534159791997739948941796020902946424399436383824483976488538293810129765969652873713270797820964974271394047630310980823501506212762049912005654496704797130786324280669509336269706992839892034169867359512416894384538789198715446853949600563255746392127661383885033092725793790263164906809117969838490527557363794091809151273632886286035026074836608892243673213953379866584079849480349266098064349888268184250696639004857786511700702980203842721836699684076873244124595134915791369190185498895103590947665162910941313940060018023480218431632926412603752877929899867438927118403494903734324683814405322611117191962228619221083203405481337494523397715791323337270226476022259319996387124023400606408999069705889728631776112369954346649585082917593996241054258486305409631516261282425510247263999621071500779050107806022768543048113465941714182478093708356187076069409489288894611287552498769575802949419021237645610413177898447920592618100476730268798874611430013539363741465474596558187924334075889928263744084428572488429922957866088495261200425398795507992398975757352039785321334653787911539430717090584208114400014446493183233912654716345883765539183408369385944209327710641235943694346497022783942676165437536897100471788193813312867275897763319722916431895217568350421039796333851183426537280076077631700293103173120234017543957608971578906658927689396356399012836113954279183379400552231454624873702425750411730072512233931337246163626062893377981865850564948415576012183063894001680503286051234543716307576199397919915271708180025220676595960663011817128028021743408986384243671390468900548342819318331059006161467539504271672149117765969828107350109783421584024817259048693995307057984311967901610232971153672768302207179755480230792359372087552991435012043852296193730072647518968436014970508750856589338113112132741847818540627308334608294403564083254719654893916750352702240319041931794236366428705651417862740657153123630684955501626645352169701374542925897757458794678849509156895302105875517323876201817173404362562496148579902662374195582363163482977956592434537853511892037888004902967616533771897087139441038224006976197507508566127094467178207148988016049762379269101489632754166372826192680077416307136751924930299524975091615895872319670104492099684603423999968319575344278342543183033703038324891430210369959813818308101152649676352986247077422476479862205880194248791394700236204246901904435531140772650048024454601584535930755686449454652848754667908117330300981234139660890294499366249643323701355590665548448119762011112222762794953432676007840277398193777647404003518652792965899137364615653946803844970077660014382342463926505521276141520182334153025173045112480070096357386888045432323985278774407589996353427907886235374930767230415403134620907089157890929666565424695230911397403163481375891731650995267858018187175863513908130565106627512479494343062227546675574488163901413616024837594506520543654656838888574755313731170506780578698458103225254549292579042505990673537951376213252198113932193493728580735916628196166591333396667270800974502488916724379555614735045842403518298045511535177090749041995814183950787563083516896261470160755987369022991496787035676727830718148359361229927121228675156730602430359676927046327199587868234887273360180281470526377217681795220220238646902069719443800407634813629273697204016630557370482293825513327063381353675219486393037719885078489836235463104838622977332929111545172737472627957902691789139672403900858528667325062971543473332827849725610014516507071909102496349784451217484349810210384306843533139099564464784121789330464225105094059702669670947479984735825096839073525047266354654030434995788392502242451862646610233013286034983871072761582694243266346376263285431085672793940806561493376753041909314659767055160841280728384163241300433086545212474132195313182154289761495446609271487426494753979076002725013682471770815743276003705665877339083200503908702597960647410144562043772984554827908677761077031809925004104916443117934946963294150532558310341065918548524831237545320063702412827534328353534211005369937760977982278791507574121480209108972970988937344971861502931499229985950796154764945459539672335365992330800680850061471315898107170766383063028630290511363212804959629168247869864410310950495459376598004115393758920853943262599986778860335361466723697258884417899083870345003977544364450542331856501964303659046035556583438482898545016396699415906367271745788700340167721148005748598630352201328668181721899234897418581776470209392171000907980259610404721133185251111215041514235211928531029701802549052114132916424999236483044133647422094746371917225494724745817358107189473574011660399554292644063825618003526716776577647489582261181200109940404375585885216434731910535119658281312001689424248260883158786549807755288628337541116962573478212716514802411898533720177840602358928504898953319228064634899730871061958749726208423798984185152847619642760641912591634280024181241682871810847498925116213378508255371015047659503072600201497281057808033062047574935967215684510300531739812645878813255081905976481358179031944982087102823522124912508745498250903980627789860777038541469231890769380758357811996573496430298919903330963742125510843969658397070844499179163671566498585103456315297066580047759468468439256752321435688266347207230458138680518604898239118486492033182354700123519248978782364428024467323932924798581352452337152122526890702818923965519152589359707949663703916024519860597303343612250655709571873612552210064991067604357772766170617154312627944900638142364943168096687916908419545949084748668907969243382136206513442016037912488989269219760000454675910459004452449382072651671367175322730965585142009443018281574320346791177345863316107271874418245365626493576389286748650567948209855281538108364005959196234742035112337933599519233761129173499631150062313301071981046466039976459499104611295570219571471448678027440874912839594419927504908573784443128825783182467159118522803306597091723410546763283869272940925750134262030383681041846254280583568399297213932793999637780052082435961054191790378037550208169746759362281846665898029636364056081223392217418343222128190253562167767837071733450808070561522129535636902024361461687055920568900695098787198875877813087870301836775987201179176052866260392101997624707629512395106194258882743234604240757641027876482933565227049541511580439729563022590983280243430721854882868172672677218842357267590557198321790292875471852574612911468192659335751885982682096734938011525829013806432187006545221902565395266574071134058128787831859347232938761197143649277237865882533592647434701333606884764834564749642405363501592662071991965264874842602064044087252470809892778842426161777178883458056725067910586375014148363891078976303292307739746975596258246873531231621483214644998484546468410608125015086078527193250033819982240661071324049051369850021524845110270023153624214413410735972362872007267511856272463037050143853127820953707707044760134376694564233036945894160775272527071892575303213688044094398752076266345182529486454914318252617386890969152426762557684107799916372901015643431590111822657923327598373605149520633364048615978128151508736574298009192290655723340693011039541364263592102224868063143722095820308852417410611127748386840928405186889965280428901676645742802836748627114654177871591781054504126485194590363482151648567399716554708600934313837275766708080342092021799258309618203243305395593677999158732131816049878806819094708266223632508936536154184099079246192528689033827555520454181450711084976312401805117149018676517326015960914220558566435566347034559203357103434099890752037659152327060419491753070619640913796362656171391294259818283511102974288468322581421720495085784154597137147190922233263221528762201580119919862815465372125636035568259508831584673546670713078655989522751640469798192808754394869663679497549194942322732852946806349855064080943407826943002202092274387713167631972561484671096476674452945076087290851886365018416578403327826408035853768259548437933362212626082422108592983062584888615770408498290532065001184515372442777259713847746777755661147571025943821356128712198165691139801834446712145875084107757964285298611072091456876496874051015607234556205778294321354958491095244082651620330452026836321799074907377899796103628332261528724347186077223578555656216246612028691755439519506235931153836587934646893431919809164647304554173494846987901967305411803484386509732034237695878685569284385406481997533442347502607615945872968952713033925483281441391196009476092378491249014374393776149462096406545214866970651284662561044034061907109700399975812864327360458621543491534180289050025019819678770957009784100259986686998911890580496375519764915133388879649329036531004099965987498669942763684610633654813666012012587050730084057122038337809868416494592083386807549271334148164432001489252200985880941749953805531395109163141024816791230139800515332371094840289474444661646208161013328412812435565830661879103144634078881682405106422202444128303578920288323195228636389487226604756031194020833203141568866939145452715250526882996134898604121017412102256063066110020374307391236149811971537861416741624171151295750568686462027916241007141617029337119141902347612518845571955783198455492712716407875783578776179657441941565035591225686445598885781938178703185321903644911877052453000236050453615535656751690033089828843945238468785030711047740308348504422979312023839410560507262994911003668602326742981929741653059878185799938610309374613104370749026382497153975538924618169994298528446997348250133422436056408505966738758759923686245649094256872092148203853303746182870227068584978129562893264528641752226124208292409218697261448487884452699938565351621417701416302078872805456385628868361555051153975113255749437604254281399495565002260262065042412085014908594778398790929765789584995738926006574930947943309832931206967537240632506861338788517089646696174012390768081463947786335299034424079606301636281653000692974768647833089606872717108578098334770644006484296573710523878918054529142704521269359416907454445223698792575497677328785020731058033934903524132049981240295026783015871916869770587434616492961939539091882422486147113460761338038989401735272458820347112932864385954330193525690481836182919283512220153404904022985527929750015334283341532195289256384008201405718357695764827332836262323103344297980928798826616463841379347989082743378737718337245363770051892735294770304074035247843159677317704464492692394044165518156215925707125484014846697588260468033645376857883805660552990429482827874870967938729324955954709466654980226556054418532751656284732069531699958984186355479182473876882815463912462434648919372059784471954269081598042504642423220251100774786212197543263878725763457049936643225906742397574951696927869094322371122776201586348968929831086873903184278617308992336611309143429725461448010008760019473607923730899018298230654626288517305831907358450440873513422049892788032663532036563913548007465600407351019298998910999822448484541242779855892402330746947941689372644120233217797459044903251950322981182292861245834946646702458894857363175472572266307944867866605598512059467040695466793451795725927695960766138776136507931353920845571188696075317749645993379546767638224610444449304321976039377003340364465940876036650529888321510274337470562466332484696569883077958222528978363949500732134501809222682105572371507289282557835879110717126944477064925765961585271889739087584271551482494601756852897500600527152075754623034107391839218040342613086429461981603780575733305199684611449859586553694875711889817454043610539068821995516302096083270406695583281830819864173043567634938653549286611128661130366058896759542012044015696123441799036956103087409738659593735197011342436232352202107525797225024479991879604450725555704012563749334125902643566592452105388492478063909287823079813625680057735080485186508336906087888919018719544322205385987034492645786472633881166729282992187542249679774891897232588286265345281099005211478292250422626627140830249361146986178817469626765668383658984547768381442054846087711554689147340648745440036810535173053993371534156120599935976364566473625996333778867745627128010132736506403895892009152444560967099860940173733202747536101429425521462092035564574190542174279338118058463643483517691363434545408080464937872103448477921665238297461583060289443014302544880889120953987267951004773728316007865134404753689627294414068233644994212503058711671813399976942449927305223368018677635539709432954283362377197747968684399749887376534669208637211497674535947359007168553151283655611752750716136357906485686726828493692558917628446806296038640952885728984860581293122843505084644436943886459886934809743819942572823117238642583785493340322725305197320593555363550669649410265063204654462083222433430734333330547239216815063502164995140872542748581295227443562752979181427177302983812309918807135553551125550366446774098261853813042392525173015424510660379905489922328991866757932722141077704840418762014775903438205628544042306915698938417993393175065325076609681983470151332358870074888370982988285268171992508587855978032516746807614264737571981888622749318277246646568110809817646588435449261064142813199164770656729998396591532772856392382974745788221728478425350443571909623647204394436476444767204769556700667002402944905511609735161049520078454257076435456052458106443160637609093654583341328102483807122208426722551228327892273427044204711741327771073768237231816154815354972044692094103734456963010537025071541624050044612146691343514911753809891746876054750250690016557147921291686183384123846754471673289058313474822235317042241525263331527616502076118653371251735744527884514619499905996216292624316182562233564546301334739533508164588196692608628758809715534476307055281684634343773336608410932403715160874685434267324693399996033646325446161076525926245757711012551511719292129675688055309541396970877260426601699377646083018581858408359488898341339295514518627211188507526565557253651713495768748438193996172739859638347393972346388734562678776813419623383130283192369096513459220396802945118441189145846641131062785736356317297003817958935952893942715435832859000760369347092713225048818606540856487048792837927959300589858964292574471301849773484518499515835907604021753606482133870282458394996979240234578453791923486673695299280249506265015262392769359710727267929481083314291184857411990495832359198803210606804132822502167902125304715746588964957110795069491824457618132506433104281317573824839242424349236304675260465189333208798534042686539064802396461298930806115390609548304902309842529161620900450615365253930548911627037928332135724241745212237431835664181717075862258275132717856205457865082462163371608713916680881990929259636238512160388116659503725798146914962817915589388356702937151512625804451113684527631559350668568616324149437063202160861428836212448339791639254190096988307943233772975715399326409529470533185114936238251307720295221079118258757533469528934055739712634572283029570564857943359161959571459221658395655739688362536017010671794563902075940561498692943978954069532610494058514257271455835369612788492732733863056157153873556581172019951215758555722619491002850860884374296065722260451320302491466901215162749184964156212642005551407653287014001252099458339035704755486990594914550374685883721484165789530597269666419707383622421464633100914080610042168947226949056026427169985764108555550610513649599210063227054812982115760965090294157789183480737617824499835039581143580708543704633202881504152732509716680850077663295094921732426597530625911179026595429966804842733877173931919341557119237885842994328040717381662037288071987295852366707283142553448019612127836215388237440819148869506179741096989836016550635025182999807027237546012777683533276412880056121331344427805921960731314981090809400688242157535295504479111592637834566219912497471299143340449445804163885358793392254287179489859370416375455770510109856046012381828073474692879118931232528289486469112744677042708370951276406626999660308416297480572012150412926593688229212363875966242552422367892613256849191012483498692259699735482870264663662234226564920112494905281858708086881801891145352814205766859220782012338484379196738988677696589323989171883780921998908539945250195118761006819981505030969367680217123581396595348245913419588255352776851399636557795694168120533212284319067816148273828697148164389544690247444470116964516262608866105280238211781328667392041207402135637428564414006597107009545984592884983217983946667153296569204822818587140314292622614667760279864404016625838776612493688735952958437084547475676519600380825853079624799924666308597034117284002916792736941674862729007138281476873616597202791324028315448614479518881857409460202590262090144959347950672197076514422224991240455522397133885797555928446874060810248452479152405963997694664622222196950908252986212804227681337021352562840902606161552702234211597828609324804823207518970720767724747579089448493287667154827929674883912970901785450733590278589834754306051875573994260090078860890116998548844006939907232121818672258876086313954656604239785010616054938924255568244535056375975533512602117747187727516372675983781278454470142992265032986985976602092520476968415815727638020915670235708922935581385835503167217181452695539908195636537012090559527589982697628815992419866871936694856470479107409218935853948923595272995733487135290891848841390997259585124801277195610589585795703346279187620318310986552204265735767267713725434052391891860394565085987247133569336246706405421769172252043807909455204787803455109710646333005366294530274046023994581318616063205204468154061308305701832239269384049817231560426181239237123859923564489802913570644608761971063156458279799249143949212425237988133336338210587966903908607276455256780753640483324143237684025624467028116335017633597293141474977882080809557570711012537284669636018633270696126497228892711333697730424637580841787735596375340964972252001334743586404012058015548211668948457598922846593513598485491819141644561342421274658320037450900448867404749260362525227976621990067694620432461776506065199484081935200898521344306078875847397781407889290319428844629582264999919315017665959856474311960714142716279970592995776980679194317905602864126012023299620284669619817550516692873400292950134532089164779847841314240377429067376935205654309833760398454481548689977664776580527807612673878315065319970476878569663917341872592306190321842928195859401109609450879350701602724475534292808084583806342341948434966429871415578711160249630610784407667238157883888775985884234714843951504054210475010821836962510882287391628021066517888543794111172806812050649932397340825647452830135580869638509025944306731076917850187706360892871681496833982820098806208941450394246670738712574588035944122070791461492747360313472803225556575431671472689761882908303032928837491941335451786246422720027485458522696484783919095029591635783125078655204285752877850005081761551668592424294099713363249647987416140552959421953305297118251236172189118616448556353305061739847784363939947606863875072415514682879547509959231895220149183269345553346310668683807844757379905658835307936887892173815573539992991692950068444343692618912193897513265586830372062334832312625988922733747793026727748163795441950517226292782981776371709911058107168539449973289486185896395603255335877328270010501172716226609503468851412885473800113221119252611813882955656762328738532883989683824488322483448852778448927968543274006449649077900885521571543745293364374043354456916461577810050468746913619567061057316742502150986259036332071513417982658938056322301754600403214031865297832820998211486930828863121268176424696493802123626790548378579731456067667288983120561357992026799453200817812488867184345842519003430465561348254445433109007504672261752166467293160532962532372205093223818984117774514194136603243352815843864031886165486937732982322837023192698243467294470340479737744766286717192012280448150116654608440244512905291115966363266223372129864602784181218698543293371799248621594894411083640783427479105072804635047582613732298972424603034097336092536833652861291170728013385281588864865470763590889913910513726238960099171940586763114709401462104929701689568135637948308804977093931633573378434570263504992273149002829903876919628013205684414236093927010198649078024022141027414926387666325511261200502342744939344186381352241354017915514030309087630904200214926528067998808784516361109338073508739145821433204508594688346669219701541550092789121867509329544866351832110726126267994611791022272790211808939235810718735066378064343197409065537510193193045317316934769070265241151862595423953283202324588517082661386575246232138473040681595597854086363705278186721732886592548280402916146944417541239727653739670582329972927180341210427207032465290604976964719413079511221244747373029769487342193716368547438999414521182566611203644353302440585174124703447397562447086770249298210451080560132735167010826109586261521493264550423840567107906476459522421695607710881959804968995329403645651828817104963171791636197033874232032411288322326147128388811291076377325484400934090630061607381384165779342142801305028633639221527345626894558824450986139369245102646764606954263724274811003217052817882991518696444702438625598587431804772124794333910212501976875770368351396771351806518972276737527336236076522887742800723569489288727127642122729363709149388329816512581022058885874644257135116140789121159369009641745010590894086609671620362242172393015345878210004718194489403387337554491818349762336616126984537488628213215948873000749067523322474292774619967524353763900863341040378129540339646967792312294291976750336861553604113602550829529956296729970395559774837094425579612331865552268962839479833118345483524334750274188975247931976220400810986968807791772397021095192947376699839292873779622568324498496964623368978401315647812972135640479345092942223258790278073610533903675513438994247931859027265799096074215148229840592620625625650068430868988234453705906597012063827047080041983048991519686044865363858696799359621937735241598406765419119492791541112995326351394847077875729107678245212060262925792239231864982218492306541983469280817268280998874073957064593384546005621584210897996469605124590639515888540493735840958155074514980301463796905190524078928485827423725292229922414373827791690884567887132852738996212322274206789331607578972453182833007601527126020403372673127335675478081443728162304132987828341962979195928414422310296750262502339298528930199390909418469284066569219002349622756015462637111127911231429394115104245361944246998807692898620435851322755322539991709910407157805440300957983625905984912607490115010316494842263728618345268610577306432528977052219846136340168005847086417958325441420709768777448477292823815979527855206266358559217219117204986318995106741086145917179076574559070435127035013178967410883228499597009213001566898707654510399663772074885187995459305455577218169327913083974120386965379177974585309828497424883773462594172049054783261373086041649128323302208463268610103765055545805787796316877168928171379511055299373490698248145170093591214114116051098971556043027510895371520549820732881098911711421469793845990637687140050975945602531388585997840819125907737702044960341711458601111723023037675488033970684752873976024501098819909075355589237758273796194403161411030543725871484860369782597994366369674413984240927484283785934435959168966782576021853083030634016877431529287612638466351682166723824380086201077439867298251900555726311980453314187963658858105967509478443514960992839244481328306881020375054219679893792608718195094884638837808509277750639725874823551086535032552401724997184339439231002038452014350597991115608186729426101080686628325852527808018787392542010423616145186173366596734494769443863690407359646704560429824277084645147607175736473354890260988874483573965576498286839448025468639562028582018796273298731902220572792385199773189183926083326265889696819372780404484001131579167809497964117838206738789150339116214823433033668314783222086383321535186723134108587110170285887422513322967446696927862372185591872704470372564368194172478926860507534555629935477786047330717394370305730925919992496444215638371662766781358605565414918868813185700517384171450927189036462815554122361931065819120366080000628974139694413670295825799211652401371605943931284801873068085173818775718958140989880610944737785658754211651471483933738946716003194039810754713503138272030485552824794202353506188403076608844364720610853203240924445563607674935178159628842733663683040068364527826388600185078395830827047088010556209383234783637706965452294279588726244331156150968486968954060718426614190817287027923533442939048394320712323760449816844186444751724869154245840899796760666549115825624339867685271487643873560359729349523988250532155950435503860416366043005632631215521760101194651204700856975512492737615554918117205307129106074686074468870225602564673088567875595295650317798281103472717911729730141657564297425514260325833526736385057050227186117501467144389549717251659121553143020051026824868360025052186191582755246396148933140876205156688217604726713770472135148706195442692727738136755566871221921572742195806389361289830268019264075881947803306294718633237898036745632529361289641219922255906521972797975902626701550352651688047009416230734959531145798742840602416566557819867753428770799201968931797148547368266244399191936877776475716629505798631654963570463036291275786542739473362991575541376073798558713480181383039681969133954014723975325458690145243858522023866265665905082897384430269485503715301661244038879594954820608871433806973360326879513972010470940278900224483449403762926092802139097274427770176397974949262120043818196675044879832210204209003060789149018222942236897352736205959106648455443071556542298788504844260607254946760507621920461014744809386124659283327267658142037824358332163193979361531211855838570236402920715252300824792248289066036276526637610736621955851634886767678647116999936924484219145890131890218760525149935283553823182893167719067251383476140587896544124172116372846689568584213663472862000836817733800711960906862697558922861025273982719378882805073817579826300186519284982057716160580612380773237989278350366628101050704942662132450452438890560937004438060595823578907678680249355395205589691613972179803295965668932759107129088595708747911031032723565594511209024908023247768538723698935171081972124224216381965254614291028531040111593052823285375656918198064698609307968091661184298531984609265444701091946998823145677077299691687869659233181047875064337325072932745278564365072854055243002929653227214007421988179337968883358583064673879845860668384476123137760943262955092179718317178243167420715384714668123964238079730729185162879857358580452811509419380023581387168984700192523092078147984384882237489841057633362007306889531615678075331792211505768537941500617065858547059382825746695115589492108333652667311486989273172997314640323769651317889421431529989303001297579237041486059215194787287507831750854103626790248344657313766713949147156050532562506676810999684036140131283641747708358791057636175208126880497569947328809049818380807478875899557320151919166516752897309952654137828846834585699354694363436226748548374793102444981494236501716649438256507067956623976899659420156352937668892796944267016676975984336778767848639704848340398453134308601878682211853622783037085649269841907209387256797189574958373057637177221371219632926389717093341817637677354246265774722671727098261572774035785237106033728808389182191171087085529413821030060465763220215042573920073309993913149428226799982967552817666329033126146937105199203632836004775479596252120828277753648368459799445255188258936603318912798385154041487540826996882556464777588367223948148304483096049913972479758805707807983465901146896380744100133624274897116912775206170714717328121491740812317034728256431718125636648816130830267980731212847130709064938254110609428286735737077756108209074771410809972182592281281353241258261982199752326732145184480321879920200865610231078480565913587404147323693359614766495458286456672703627577391143028748172309771946450713072378030087733761065579113496652216438547164500650851046618747220181191296505129681354066511696594599611013869517133274834575543678009615151225848746986282195365009253672451261206650830058619300829424082196548158249353455646027872477199834245204245416492045932420349924573513653065531781634153878635180476983888945107841785950805727053512015417150023035241122766972018319008610978638273854956138928074856087050031812064088325396423449182339147759346483419507672922364264677411063072200749696862337668899330270487062896633440964553473065833276612996002635196200987370330181479959191111581744365203506874266980081823333934297705744422132551432090908508121637807607971038173445477068575013981555340045599618810770356695344294136772166658907619918498223709807181977223303066833867353487503664598738859110049331243572082180959549248080393932837101695989790268697057720198895364037152824004721646801115354954128059383821606356726690538146192691317181306325736849101479156836971159655220475535331406632301427314600244443917313411758892529712223582193077348379644366919236384466520704171494111213411239591949692460414810527818122984319392161721999905475696654854333205827015500362653910623356174727581842035218982805080214419793767542444475258647434350608820573507299749910998227327336553011948803472735882837000052260574210947200794409066213535176216780035751271628253481252179385867325937175291853590480565139258391608634686187091164204492321883666243655878910963206507774802244720247638801771003088462200652999372163468739778738477373792355084285969264061405846150571064529656449932081326501596698607946159423444087651929680083795197570169359926118027264923906477275632577307805484554021556482680045504782793326820938949939518190931553973257198898212659164940309866531781214847876516182981081210366929094497257966595627196282964988968598377317567064584243555650092705520491551744368551480450872379257866876309260516343060643965588392309819260936226081415650388218532303592022175170945896254794073516085283204067209545697994383218849841881444577186516246408753668999861096747038491926001295923213250938734598040707071250612896342477824795087255767453651986209733301440319471206978341334016989211107441131175536564129782078010017930994627837105850506209793767069358206052889270987999215970277355704056155887738887307188356330413884372165330013449144347828787788899635825702310378113202157184243834236023546578040912707210786382394280530681520339630002717399059875858649820717689412657600176440102990749928275964385267782846631500947866430261676454872712428205457690401573413432868705429740539965126091610831486162062083799783198171882131094397344141536824932117609107464885005281467181962366281506651931183238409787217861709272354807865488408151427172867799972164108750893758288307049505849048941687230126445166928324858315203872876690474201906564063946280601061849764836698371495137321454308994162598321965434015836512672697404941905694398664446803995096254055413725802903335003364237291213638467058640653371330502399579917609995647046223979219866432956382580547202294076752718449101914570222115995476021018456344358093166340001785597358666611622882739809401488794279348183241408199180989676043459219598013512638078518219373673866244218987108295561032142959061376559611666954826873857580166680688023482634148022412071707480844755021771512345846638754238828476342925800917746356772534328632551847655093340862982439138063069219735011267840629403008823213252665016145027474926434350212614824011672613887195365418147329816242942192427935972445876833671003547587999603568070689873239102101690844932888933088904042122205107430897287026547763168587910603110469431086567512846527937832242450775411895991472211752156254209383811684419700765399699527540310807036756249667246860211075864876702646474739787768535743821706161977216494705839242896504284877826034381547427306854875351799784793928540838613408399819797664125650803757140797348538059537528984623839397195139101021912925199280487916114145416396132274365074840978822903976333801382969249311428007506950396154624906678734976747952128932689979806383367604401481296581508896165801049023435671050594793522509701097006912439126421754276793380633170487839420359649826306972065195906681473903822230732843245821422496998130034970690645003168211873233668527883429921071083556682031598169606876975780637906865606964574265991792101248081557734011224787022509929139031134547095670041857620442671778548348713182045371017283441738956651565558203192142753342026697250551505571116436498566499465615279902706550646794700804283842367048725935712074866542834519454904713222823240020951115638550988003368531820082616207524271708970940068630501270163713389299936280908473229790604638301592069121272999966503518508132735018131090050683957755599688595045055233674735721362996146483190518876988138862627957151542372680377059850173359942641899955926412530125464509938022188460494604948009298748934378402355534422174336416147681848261679176211296930588188926704942051564460979518057586035977751722721658343210818894232115631524344257319252160966880205603837677402794514757018414078979855563078523377740043581768309128303215337082470129472369390162225060189830929992681655872111583844622274044174891760288830281030323751164497352771168724887075580877302911059932496100046295480740006522690134629251029209049774322069879407492420557377046185039324013116111095992546744868397784863325768801651761300500865997697653565531821885585707858004925131576180295570828901508836264154341023239624654259820450551942838003424592010365540737570754723288359978707094247872858519455798956795580111003759622324013813548496578820588202485714288900062650174893524796857741495061400890476837577628116791830471073705742531190140221332574983748433663747553443278364625205172706494934954407766574354101436834732231074384755207535410327955796620368055338878170344542997360392896417967841938440405821028044777387362884645792292404857067065361984027054814565288864044512180128934790045153090082428132066917800991444267885485820890910206416789809442573460242492218469002536744260750360636701173525800170952433234868613954698184280684715669993330278549779738894785087018969697436656989167623119890081302225700137832121341688102704802841446980171248967578813999779027417832186699009638628819324212625743941806397776155837314617942634637595074231253433211866030150968326175734093759518126247888429816903202779855034404223671804374768486389249710398593296891425085262503795458055565669781568515950922152741793453417942119209887815806257995762691327779778737658228836019695401982785520689979870425463698489821104290866100449285628533590445324526507932596475111263024325771080717261552908675123585440074240279668187789325366865451466030004159305547242141695525911394214067958296295173127311551568550290402561899291195989061129833596947136720543697415927075965639785442142580310620905927317389924187708686895212997691445153175544359161299789520247846043276087504578298836620495163987467888935734202030626980082528642417445290464096952728635817500093794740658965145802118765192218673846949721557612184782031771964090999268850156865597042989899078608470472169514751472615855460780535362658131829243629290167560732775760434135113299475725261506247220026033637019482724759144793640905012299108430320925882214730641513166086694049315322055331729702833130292987590088291519910944587296785279142296654653264937405919396697669843376232549178275814647235935296250807130596010822708123800403680825490066421220322704990009671932798503727187452610855610143612105936115170222547392673571171288605820833103853988217017077733136181480033980698499043096390081721902567231121428152363235185978734510363696937448666267653888181833012343220794140938353556730006509154549635879111666813138267162514042193809188266079458810058344494739411919785806824495888393153334832390725188629253950217797852111015926348053737167664840422916565503360676995998205325956895724353844158215550571608675905508864899393756122444545407462842632899556454151288397130210426654429330184347775255132559655793332929305418046231255021730786191837275765104584536149514120705817749910094284728003225735672594244204863288644837165222979271783186624136496678414722893622290749170386534084083599537161426422286964319288187234232454256670775032196590763622528164712088287497931165809787182043865862080895047158675619965963324814989657169412194101183551804635496973206754727463641696525196213379276712594387095308813977310154892893788130510752992124842778811861233827170697618193797431476810942344315462100713657837140302445432467486374748655626282411153083278424226021925099198986024922945754276135194839548307952078337901851745595776393206936188453159185967641120550540577849853255005206870498991820695020959710459022448233524345706841143804228802833266022054843082769513842226391803189652109741097998706029717198878343043967827560522319605681476846042860508395913585952457248720509318433767633676118978479520349524609020126208592549857160435020416921969535720058795947386086845736303408850514469450447406094265998372513178444377882320425963542389395743074655191150833648199489719821196298605627788458941172463668816468979571866726218642213593026338056213762391119977596408897590074128631795585535262017308742876517724188049445700748178919349283481044852022877416450872810912458148120853274724162037859353270891283347045896262584811984356055857787591304507505844151011505745381018001568731184113218456777421458280354975045579745048333230035149869686274895869711946879299372882720985733435111642699900773543014994604373235183863824817619614009525969404414565731807807403646143861431869365822011549053691747950952359039737775753488290236718485772604660209974790623981222887172232778419052925914432866423671447451938237313942761388784346882026031680181906044779673792281141856239279693328103081920742976150625622349368959161351739129334885978195425473762362232319278857808137893170246867426780132282800719441898652638597147891877484026014026277230496897144421075391902807786571059640183653648652602448410868971225468853726950515236002608720846811337945230453265422974585809753006150844677778134751453347574235247720137367808633570757041830447165169968311551345185872749589686218232333479857374128533141155488960856761091555552079382459440203243801654245481617707196515284846345885799337681864165421120766452795164291435708005425810493260663415547078337652063194916183308019761591725255322336667215734902045045895885979570893055370097026678721947184174957179665070567616425588457450784285279010447128554786049052067638058690380981839167495115408027484252881624207802613899526803088651906415908842201627644864031625215392030338212390823510220619044653091790540309470614373371828877317785508241726135338598250061933295272190646753417695327297889548414038656682991483851319938704488331685756378750229295417584882894831082326627543450470699594982151673068309232844771540365724880771583720032382723776036315484594013891388836036535049975790510389468252579560160889363498758519796137160496935589517743319355958720899793348676308482626535121820086682396956336985769841887643686326829849684979393154704694208488195000345237260930948483638727875157731677319758084668846572440605330554537320770751729656840271779514426717815429227048397809303563679786596319581831248857863832297100287270366527687677445655751317335744658626661066583727254742089435027728155376742824964449071002530326449908630326368015083351821546319305710268849920192366152719477730673010684510224039337564569996811325347929042480211743138010885025212325065628988069085735815852551963002468230614291962146135748640499509536735922033828264941885150130575241520076349427627648641266557635637818769343842757725489668746274651028117696910691099146133725441590373976261332132846320434537691619547641577676630908931980447875782980131941330294866346605702998596417563472110263414246440274685707345765247751790685738051183802218137445095832522609715760290226271342715574195715835305994620659748726200671684925607834110147491043903649948485257129372171261576485067724550972159939818086502442904034675572097487268346257672877569155615124620851360523198520423600017151559082811188568257022732415171413146762692396553935419907110622224082701822287787126625508557323578961134973278990852254419277021643303345375969103889666952430367595022143030558359432098676787599439066219857553127701024882629998480832619492928872273213745099955896034380913411542567934652689329170725712994804890596742155314078921071441309878273591310171634127238680158709958825784490049413292709523356362041515951090094554116265253777484730069899822246036270681513966267026527150859989455401741653379928169337212173279148506462513168239211558538283657177772030897306157678881740596556310903613512596270224912988123603324910918737214594715542678072830157108534072470978242025943460813737225713754866994729827068333003091970240687528925094612506611605924582868501421539555059814517862920014015916835622706885595170241197646305808514465311098605099215838282212586863509313345644468526906866521555171252765235168971064300468785308753325607215627984212119654111308812573762913715736934364865639782200387095913446435646994305487221275089303651995569943841508501577668729723388259514919279158982926283258081978064653845675181681426874052606926284526260828823515621456205530278054984538239315943390977062644805949914747921019299336457673050160934630351552859796345306336232633711157794443832692715784860078192482740972570835665775404097916032326321965622738398607938425181176435862766720041762349188594082940979802088027329852959365281367451947791902561468775089359502870486957035775012730195841736407706278014615500742044768559498263299265953782778049603706890546243084301267797208982634008485143705311042665680526868929659991833927080679509332929854675329780337923666690988160244797302575216805424482780850276981205488370987270566993958411491821898962648559322788702996003357950175096005163438763842144931602277863260646031001284177303576150932324481575068674649313885094178939987240656779092972466703218241906814266815290933712290048468400246797556582813920814720463118543699819662451754858008124110841268007742143814784822007176171016119024700904166701728879379445117267021011647756119107831878249141415883199668508066377050703557303014106178100500435891615559095889533398179452188516635491169649338242641461406713420793634677250627073034776633174788002207533396394767255402888142014118011187548144438344805743142093999645987531158719470479592911369786887572304472421533307378088949506369178559314578814367782256847527235293463778366838838856103440767537343840262410477934784260814543734862430946215856343927333071908531781850904643506782329358332459592984985544356360891053041196231755181103122864631652871307743394952430805878536197760712404756589133618583166827732876048297209043195891424823987108911133407020715785778900057506586190700490970866211636112631556224815780001115189257547681268654197138101742941609558489217931132552951380393649617396940365047334079428937359211159665396310915736833971022404407328493416681954041253722011648593943628780735883163499645995326952173143571585687884491878284252373823610470379432193623779840447630643031151452966206440370249414270232991566316637637377422430171297272830683475509326741716378263419117258642772520858830523641903735155840677521069961550912375683647692149662533365808595145301810621874566926914122571017945243137387113338603901823192646545085093597211380503280247660030737169853348166526418547502922787609000438553105730591344246519227079907590784620943215402938752569964246976505744049392796483543062582152473226960311590794457302104614230845993840287883049636382663468366536596967387339793443115718161718876665448091159124619859318165665772763440861192524015058702378975100531550772888285322174321069833941748229875242499048241664262067297673509547230772202987046103959540199113605435034040865070306637686950403191520613380315586096568802157198633341224132559678135200510217218590806089096460411937094032568751020071841103977222626792801886115182887614611860304039247766192286939513221863503699423079494192186608029470422137640338062467779759592186192113879404089369784204471792154358766355000387571026599016782933815034501368342723921486680318624388122853936380681167043469698795896528550844852657936538698018126828402422997775139832458702058450159541609926544334704283590489852499251536834506901179188696025208794983325856980811526809000881374991744009731908061341092323652617175070645423919365683682368965520572638910067796852965666760613793108165543850829889872129344838881489572351708946843967860143066808793262708851394518889345635405013956872131609426757661437681996123626355222995524815720380294514162018706915116571526451434362073117985799422938718336523444936714129832592193912922382395546892305360122492226946213277167729995902567182857852248375487613783655473036135463845021703908080730652940515889122148682447091406454574302614728805258613419946675864764409545941982446157746713078732350314656757506399098051447661413630128484126511503521185900718772548248816840182335509358364179366902435829893657363895684645269741984980672790108166267755822806338712357471407772407346357977055507862306155602503949087891150364764637582370616402095766049027573566182170625445224081501071260100987373623752819714707582279359498091208281181010121754792243396111705473114374562122522292970081220830222261735362105268033070399441630602102544432406704963668486290284154227374041777784344823402760069278512749775781257882120208430416419460447899500193653184591223179206067281548549242145104121261473907024472363673881200309206823368017408325882217260133460108076808248184719887869232251354218658353983793449829046474451415882658193963627017417424568818477583087142393730828673879443950565221685082245145118805898320240204057396898048628822622214637446807594093217347110584773436542037106491677139763628374334582800123416350362136952374404070053273381461011379442909649216358929556698446026535389480497313700956751842603387925731174370010736192494524770222149977701905709139118430462982412699878651447074101723742401333345322147044334360008189569832939262416955060903496895230349003768408881979497196278542162607483901993704808708252457708009358670034674718575131064253354324780288456783992768127614734456722946505894332246121654636086149553290791808058483932610931988003465886941996090438964750510591603702977446931721090471088921107289903402085937574637437237680971341839535990483857435203020374040013559623069175814879796855411195791891385587851732044908564695927295133133449144608215818436920290357760120661524298964284307681017951188061743376955617957298284126243489252279911871699761235614674650922738759159587458836656804564350310614748287531442881021623068657979824370986092852360840849234734038167230352153046945348372107657598051199117022369841919802577979158237462406128220104291571894600347676962315904688831203662380384850196630654998804281375183824430098740047638316156273306630505050643496664975636433405980571263418643878941210657945883194493346657547856947627530782541715611176422749487234199054052721209294672822839053503649977752476925873181565460370821758731105720599388549837172450932450109112282533587875377794900444584308297509867148177413657958664708751011949366535180075324181842598861659000383158477201368373044352955413666585515345240338055297000670213638415590341267157917255678398074994895482852190913108507458793901880326702167875608462703829399956980480272910109424181675360027308567132996586467591183869928330806466808406496827784616677893049294500871936076796734123021034334082172646051558853774931765686020777281464372120765529035390918935425163432680134542635026301936531925774742205209951750418788695851565974572246959348627971125743527653312734647056127657384889897328123932880365845089593495145828723226630846281558231881681275858082530402877328019169564730404578165218510688682266137458058503669041222680517918134486869459212634451953331957684624186980554067175139669328817427602407378022142784205257591671999120929392028008812835318055404360961226078288606341160876954459764375912183379726606776266854019946535865036871781670004692826319092466876838410969890554366613385284303809491290231896506327848524937440440136032197045263146968189001270240979061092948393458201160509323023405680070003010970612614287236467299622394039376553859018091464949219121301454700533310293490407394547417705647619445160052878574030729119509939616021533546559225326657656067398586189726497655605707896585472121455009337255533908032444051087069369670645609885985500257672243139651639859882839258567120133640391238769338046057990525024755987067929273048802219039338689011380208269182022155743511696269592914710592798187139821673256013074533074386449587349282112296109377826467972486723592586398127301615905166304239980261780586963785844298385645036708476027000362581094809758163925527061652695704145857113946944353178665221751688573878875781555150427600940908027230788163819039389151740223749480760916133894229231451694253156680017708616612293578444354124051029842593468223319986585140691270333708245322882738170720996463348733231443343665852851782290221211022231526945858885493615539354366708470576813130800497519701428101005750645922960273649402545637121293777472005940965014940502368791510665563149838366395911064846694125150643689374717375702401553332681870784086246716392933626800694877882936427999308994033390764104180226609112281884506590612190611273277529243234012569724167382371024646861541779711621617633884007592670667437742369029199725968597079294680623516992348494533862186924494361423949397255777470744858739838555513319252860316094575797434583221790452549030667567217687605227289066101701910038537569079738487528345408753437012672778351968937828129906008324624806225645899482020729412033274006051060500720379951309214583846466813902065896835779365909615312034777861494149951397851753691692078030011234073189152779632689826747395966262207218664995210764823386709141715421848906994486657287108000298972506781060698682506586118656633770579128487117714262209519314340228061855113285498863285320025044672901047578778275710101329757212120731636629354169263122780160972396769338157929418927990693632335041893613868944275010275662101591554972052238648180906605726523156132047493354026808252859339629239408022679902078573489839241781434914779581644546245498820656776590287517526880228882904264773991671732394993296973035908757967668791738442817002171087648135131896432314707480859714919345641466035439643192145315268761833994824626701767422304643538892838343245113131081204703753439217027737515238516106858906820251630469710908469258226234191656050944538741699391655934286919811458119076489714804928128059108704649943985992292799791215937510991334009487405174915931856073631067232346408781693403530019234359072647932982188088167846917099441819035841877518663234951843101329321958394693350789701094267404369407650614995016666232073444708380807448960166015816914347895371526341335192511393308223169565093221462826737673427565800389807490489330800272543358156002278543983469244255310660805512733074458481467025563970860325661593589419826578862260416044265967369456540317137869443249394557217287989782571597371293058808381564606412707529683981006849145421523255943190281098316797255695196108108755051694922345518052764865131912046383438940838671782458751732846245729453998781266748405514700063005639905211358329774654216014440345659641581711963125920109816294899656543454940952228769717167599264433200860640745662927446537801438377481545376344634435543343477401225769251105779840113843145949722056234159559292674485180029692323256550894162117442555980103038666936507135398339449569352540909138908302123511757328666150259028191429469752852726041996085412019684988305137770854624206512213379504647474006217012785067052596702398861136436486598516246482604317448476067064334628098392717215511557769075493110148512400085604238009449908987611307071450116394520076336794865351975048830903239103844241729935065486034643050485330949464983597682544358118262013825775362902336923484711291929929144807420261331718300718411040688078947942162741477594675343904041130867977750932267213959378405560276989439455001438320669484614097978819586294198893002612597504034163846193127130876787915005452622747398682727080842612190160633280543365329848331817555118300112119959747243027617913442211033464448596760951705421125677920471485497283830073098465423028721812527518416501606439223726277374160840468531541594575688924375736625497446028888756519875249248924117386718393513498514615553597941815386236864747286487635029257989629130386504325899257905284791328987445840609724987105522003476560476150106912610414967850076715502657416578131520566365158051434471853401671176205014626691393419028904400559059648955898818000755190342866098622150392868506548254797380343948818070417481642012529987964704199271842084696138286213600236898081282244087808257809754221456499975182832463455019156501691729827492447669745728046620520124753945181362919762612603648611712860641381216412874291687334590318127757603888907010687295788970894357363482080027663871413957415297320008261280026647257496439238401403859666831470094388668843967453350608722518820199417837610278023536661742750549072313555225446390421065877275097273487670755833043051766533869448661878605892760685273352955268866810907360358155230404332489088697950694336588212770469031534344466291056323489484874632597956599439795713915399786704879237172177039940067002437795519812185546844539043948381919081790149505676846624126635107818382896521666562152334754919372875850410784628509320991437457126752084792994021320254930237541673408758358272483416774906630979926026839157516585921699717510278482780702299974720400005088649452325454991663139844366927041502225096136801589039917381482016156968270941549310151952437592942884264937206797143054068451642799869283455922356410400981926392483027551691710439621596764918432389044867475068881306932012712782541336917240001325400508407114580298964213564399863170408692632082476767031545796674510402548698436253665999298106518342683346631725517004686851556649089255220493871234880474351141182058755014887122097081941052691814753403073122641674260621690026306607658180525688962096819923933937185669592779481665112798847708745051931905813544752603838675773741532293073154351768891583820674891847902365324961232722006417211542096721275391448825817454515370358157494333147337857447850683842441651698796415419284302465765759573076148071935001815544584858958565492343983385235883551558871840197661862750452383073880298328982101868503494362895338808185674027870652205789413725614617763299330390159546676864512578065270819851814464290485108572361358427788969860212870694633237973079350359885047937010127787013465062640833223482142921303472988584130866538772430702171156742056806847390375959004218698195658162230565163947701338005955062895989923837116683221876504415528591483265248466325100886249180755840730439168954192762307385771005544391090577949594994642860156149860364363541144173721255741959187497782931191915691452038392417922633605444379247274122714738700391252756188628479593404889049247201387252862338701703796882211350404137195967045220113142636645912967059999196132712847192879015207425438561404397293720318930957474810708450931339261544551916603570528449046730761346866976915062308169870645951359915577497148322941868958919278888649319583200103575520268214593963994124589176120935884614141945346513555798907844260495436216530015112232439481986456281437976150619982058944074403307722122422623944925721822129351829188893299355490756501309560472736649276062656811761238221863708541931120969896621945673279779751004883462040500324225904833255104112404377832621202772734357364943735198335920630546815665914783214319275081369798199585622716687189789266955590821038249262428103248160390052980492696047157361667084397974752287918694460374442322533490006069740432266058201075008143525357393203046425806235573027050987993213640107269710302489669944688911443176390095434483141635811943026153314401016980996149238988364123222966406303362356632610051950767210288168874453860817810585759421419007585462066378290874455521355224247986487968076064135346630409125446951180018215712300128018284817546058931385330189118792040691733609797712060351052394022178725969303142252228912300984382163693288985414290446483851044742407947532319726567038886031990494723162145595067671861885021122851429601905752596955594711666218291751541887042868663717894645889420327437792870462172162613268414717632235385012190369833788972520051118212607307048652496628699253246714674537826850721478976137609920799863622546002936487749560320105001988883350415920982597972987246215983568989491176165163722482942864749752265904248394168507466780286712818988765924036341105218330470231098216154623890657339772945109359139965389223981368246357095175062790067993895373290873572717126675830277996799639115550125024995968847600966639596990715427218369702015250811649359201345973786072354303407178084294772354437904655584974835503913421287369463319858567153942460554717360900212607519871657482979443150112606279909041258577031989222280230617580118328284687694907912457701422564699475813352280016831551431004207207264300314266448090246731277401961812003585164980914995117376537066186280915396589141948900815151783546409153030961513378939580957976789198463962368601971283534888556089854951246146262550715671018746088760763734781944175591303329114261728131178363540237290665940880377926859437949041889215032224700388708107335831628400782773852261887827087732763610465042500755494214194085642130594272112882543099541588907594172361009297615256863531829291241235181033665443777925912897665210733110878199466006000385277752656361385305790196381948200606688875425725112775439888222223825319361867424958221084098774027890390612048231819137735647162246474914937999913265528117107604879188638007989259505603544452289047615084452816154491684372691809133470668670386355741524761769159676673873190712063830279990723851368729686579344273806241527703010422146903994726850374711802452531120264937003678871662288176009279302943758444983051258729869474799813394210209546192798164209285336854337931104973108161826954417257357967714677610214744522472289230443314891693046051962745509802413286831834787426176453841807429317998640910916128289579430255452513432432694214802717990604192625576007667099242849677110417106046154747839465535855838119382217561272287687936661042281377875850041328237245735531793615983643369014393564600058980536472355812011136479761455475014878541399837278366977785289624658026928568597966583446971103194804966165333021136155890628946931542807443866052983391636148622332999547332294333510783095844187886641718080989842651300904365527438144674486750609476471417050108321860730585835426903923190221101725480325549057953975119012949860471470036628103239880937869759577247602352811652527346461842988425204287604339544014386476871666390328867814265623272466425940815958559406817303152468635017293854100995153756501618455854342381332990853954395252770795672964280492824439046389691501333057352581118964527194984028224475190959841430061239234831464050235400458500736577011464696017041944028603529786352672212508192784577892775691407464307086473438108184685903029250892957585426052600484609337792059919748270940721918492392951364995149656720612631389439133827295158823332745490977761118691630569996599855428616768343420023567304122027378201961748255372541823811018791114870778255313607341004035958831739246144587568922386361120571992914971073619082587057816940148000613605818273536200415785641393421284637004316282403598488301676592964441808664239795045409212930266573948146991715186824872390311676273846362112756495259265507566382982975806462365990092974609196365396263294043470599540480562512522794867593668379898097096262432904795583284408722421611572731366798366453483465141458653521993426437028878879046850382478829148778794734318011444185719507842844939618128963676479898742566342450866425160006702308134997614435238486242985353956018576773719281256832155697936602720001508460933780441859340304543670616167270537850014172401484591439985407396340536771954845870763412026103440072578913805365552784895950790574362335579923012314006688358536639214808162848989698797802148829625357995942994855905289234985590345268437609426820940578908691169198442436990923241534205389481097817927365392736474764446667102600010501984676690479933295499198355136767860884757130247988846888765752894075513662349472319966420097944150410278983052053215969036334819907200799864187286020544567726906640644729107753129920414986523093497692272702524791906118800353733038932975890216137952785596897706480158995998723915450504112638234409408268540798695742182214156333189095898518157979082978369130049236359459939402016057556457995199247930989316812217570980509790608651414190273203756571333946263080758584540510911615478520504555979611107158082978388623500085167989097321384546390070131744185017670400724118606040092164043079864039291192060034895073110365270231867301547160781719454469653284599811544066491977215379885103578257588921088587902035959878796777531878662344560200980038634934596587003787185683090509537856689723393650276084477034443374696510098752122868918961607563187685092732353369090695804495728048067379042439758092620112024620365293622917849488115819029086232612759650771142359735129973297461293871967317146435259664515390423997595212834329775017556023027260376544063479074030381208033847622261366117504055799065083121434932557094259431448028134211844353268924979009870792487295719794797616220381751510576365452484301115597988265482547537806077306639716746467651517333726419219417531991264757938624940811949164155255442584860757698470749661604893082155728921014824526301391270249269365917158913096461185847359603728444753889010804188047095053809506875188885585967073260401590419227483326228036596875937676940446523754583736975118678215469461411883704707721884743768280996344114802886350057013904665102861547701699859589024491363535035365801423488867842431550434514477579066129142987901200837881774935510906609263884455384112185225008544984946927817646021150965979865187921140235081051563595538615375504399472886983369148126786466215936283673112194736396625955256406062334356891580075064047434992552749535900192276142940149286073874975642742463191641360499473494667147366651105046348089750638031850033053468023424362343734466920557274014316898934914505075609310206381852816777435851049765589631038260791887158449561635019130569059097100889967169200390652506053871919106677653337284544749435335600978300257091559045109942587472869118288814102178888613741330337067056537242868572254370214321971675925108468682659069136995473942483877329872275241175021316442343382015438837564221860107433821735771082857846881388056067746084989685068943038799252477069449555197203120726270504675703718215584008917930771145843434891249403456875641746367523345101206246730325952446859168795549126047345576557997991591640165575790295824932507225094256620823441367930858998468284350562218167624915803466150426685760855148975716534906845648805816747220817145363014680872021448605697361716278545766651677682830585779310183615774487550729338876304592029779550756614870485902337471366913849640995287712820660352808702694201535212412837973904943569061186507911564505458738926050846426384476008862040724409466305612097208455878979861918364708286849083258805651849708489891797422563050472487269691137538307318404867373257812569563362357245596646955553953485432254495431897412095336848301540054271333324755402394212550017656565716475298865944183152570958998633563280917172326236414723138620832860446002684786083941861138736141496858607282204548405167988191408643059548036515444960539652828494071776852708346497654114981168081292503558830290561799948491179725806726858740956457736949012771140946241067107986328301142683606558285695165742820894210084926519421208047569698677730171112929229381268893615162893656448346416832178134320324281307263041619537102805645126818824651277002339201444182993187210166656598019402233414535690073189050650193301781586796864323632503005746852915755099970915702503220133241275139906091247552921412590348957537780228234691155494873697942169917682539854276483759390661688161912327915515900732763602515507865344805083643469622688582817792810120553706396981110072263458767183834226498428083655974006339295250416494696785489016951665078124125160876467001453824850094989232112669820145738715602253916573362208130337791348393958032699713483975202250258443444638951859012972755951065136569446513874923574709276268386497341190446043697740449149614084692081328524409855063544301298014640820511440557609053462968458126250635321890150509205014059891767302739142374670698392845674103270461709899953168264618020322607542108498407664011542025081632329278115842830557436945418629355088649359698624678587389499943685304723090480108993066539692735374061864011598709090979241259638089557755549846173726244578877674264756066146135419707323016991310994273934546824981937801558984223841633214309163112456783034665990376094962907600367086839837633816996040915957424909503553808813570040947406944408299984456446061788866786815071019018058982596771884371612396718494839640591405213079450867006779826373112194494664457901815764776276388950246202202927267310443690549464338945737453822020865953386128621180231960028901253372868069242188717662786502946241168972723137988577620386907961188073132524944025328594521337397794010137330695348078602658912827298803268414162773049268664453560623510270482448854351284556805747467039978065968877223782131550379914643940675469927565770799786570292999467781101229720639456237245722511399279528105962458281139637586499020528680063898625563934304319197656116562824370396740589448376001578252237508626979997161004981389608669983806253671690890723839414634808279659965546863432400377282915712340079446843159424930660493444496549617248490353757020161424634464974519290206404033976314954473941229496388123702808979876226403947404201577071301857828178067512553941816574018930238215864223313562534987317435033925672272630015143169070397027025845304199369001272155205799225433527270465713584865957312870455708425932654477083627095255889000023403518673270647322701378626847000403302110577949943558303728367927837157299388391179834357460163894904963762340576753650903244515114112210281334817280181868357633886790446652750280954046501508604929517437782201883946928816175821085116147861125823057211360542828758637866700950719023120114007783065938852709569263351839610119715924448179845696875457904865260130480625065399717920140539475689016180295348697821904709899970739194755019725151032447112343832203035196065813722626314022104440519062820348749968357650082262653094625117283802014820306728423210469246337446731653809698697584860044990280106367303510176215634263081532427692165137170305652987769119488636272043377929237850045475252647273261347283469831683999266024169530901836190035887773146056688446032632939774376685220021535658957218899263765622416053228340755947653481938901244127206319520320815945084521910773754190751454826938132598504118616468736636366880324109594148786882820610480914189379792666773034819599452597654166041331765323871752809378522747897417076512452500379770394105170037764480176080645843928563952183266000921780547566781077958384522048261853929174391567461779360145659708744969203908245888781273492425203228714995793233992595425805696736459001926540022943048927532630734130901279934956284997981542464798876036251818346731655798567181970056756738130492119607768785903407573788306478495122769609720521012305840568982852107200140545591987743610616716616908107725028780557666488841689579943275107428274885857004890832299828392257261160483820005466203420953759790567137382791623287770519129087225253183323415316182205446420944511271393095755780706750974107191381853799245511800901524756028363703101993948969064094885961016237146937071088253366478380816119965528849274412155593426520912999114211603468728628747651723552634777230411966747523266338081716386673570552886622264152072659467041001608118443293573896770109799775414351555630044800446812994833900222283420436094301279699801457409092102314742781504567373464202213489257720797739322917818568495375427606861096625100138215327824849293923082016926706679531649164635230263892672591327066606202742941224520607646271311842594953117647743924544048340740448252042557939508436970456669568318211670140586564911906313835287669774348868679264740277939615451764578274652193307232276702429981750029312865946334142266208448633036645333881119662144307601109964539186653387509232268650110421565068370255666141966400303355276391120118099188880353719496647280225025270167831439121090840665899769636702638753295106838216773271361939854086888589766479412332637262562263755292168352084769343186198143964817986799918254521700127919107832825630509818192383812581055762265910202336461601065325803381711264416318217528801367635011194320689737775529494248222658824281116585066834063717541176492577017689046860209059747828693880300806525049027116297505787311580765669471432704664556747508842627071885812252909823900523441148699898686183756535650847993809380728863919439753171383987643901762166925892553259382627275265312025591479608959662218605395926521775490581349939505616856062912952595384729510221100514091201567890684098401717308626342901712579855142399483521472681750750802819046241691531016270723707270408092617320422358985202448175376375500082261283045891638951298559975050247035789496098011183589004268679537064721414583312841884176778031274431513513419923195634980472028802950655618030424565163784245216154015661394179709962586406357697293941328843092944915097821053625195451937011496844012665983034206195283148784648279964516198256446749294092574451019011247350755524505715941964853007846022287841738576617657149446646615812391596635106877810271706702859327850030936740114963708581762372861769138404026606097084226992212817763636319505635011336594257602470357009288183625558735086969839236704200035289736918592279755000565438575509411948594010702491649996563971825226082804734450040770201909936156988521298162512809569260055829128318523663808155346528734581412494578857291909529467561555817261822172221363580791200528887166652210864704653466786883244438860455367351965726884819678860855583759288704933429127746506390344681790502350454828259274866978028471519840145919790396324850228594214418408932376909501517251894883971060273254174235919893726467354871530102055190925784628383624607239592742837392773162503304930889229944922374100637987767912917121642978298817727170913804536378797913985248141709786514174968174074001910431253264910686557711715711670969594880936525173760334973106258704544040005873840183986420939891785822897536600886397346476563588461693943533347018300930480575613733510723214099848266131264640566263842369789634463035953523970466871599422788979160610532256277767269251580883674956802446011175614520074434715276661931846797455854618806189284914151140534523019591743463812951333538591276976299955661240662328079390624856710298231548500774463835730252981680127376402880810447309024537798742300650955230571357315951500113663600498691362315213731445965467200613561461953915880158003833382679981359672038855724804564523129489722983171679390778404443698684452370216075364896051679319670664058772080159288268813809861314993673226130862058183630926499444316040045984972585749079973055152334127820801927418783474544268807913141534517590317478761568354190862873747935273641906586787649966902942672812466721902265678653253145368515499760296423663274652010154203547714543329709601535386788647439873690738670162316545837985870692961817602745905093517088874013323610620040096366247579742076691933222468480794753082405688025679979835656774532955842607697104441583774768727025475409477328499474452103503470778340012480958464520347655196203779735412436749023876053506105215303126082730854940789121929878822494910484003543106657547251202113902075828671465322764704867980115552474781346400634164064292718803567970442081761860720187352544628659833232270595444714372257238557300097793583027251505382039859001168758434103660381555453401107480192714115640445380575645431779454707135777366652874245880036762202492637446112878768639082263380458515657356232544450874528279133451927456090746477759750991718821344387253345764457634106088631888657869860685058612608200098958478374489529583695871525938272806285723208239508830426395322106579554653923062143857073035247745993664082915359692122296894720215946887782363824615639978191437909203925683360530101423027499803943091870767524430899304122129846562344099735048107591798055565539683148359750013629506448908339545191172956018943163759140450828053821895365055566671308549269215905420664785654320325491822100786134918775040056094637857965146450650678269216302345433913520343913250945648894112370483812728428951636836696304658482035077094609880806908927448344271065720847463383521656197434961121786977226176054324055957884877928525282481338491244370500893772098200028907875453973881279615623961662622233609103305313624212605099253560550373895322831457335808750136264591500944382789254829555205918358023542112197010446588735345922731760318129019633759600558408921636777954721986592195762800580873537028017300076666210447626313750855031516055612716861269838115187209411080869246520286702899274195305829363246127916199062815654721898411937165994166313565881549224746218121871524490978490690675171782831475970348934622788805339540301363473354916423589915157454421944023526098304246973141025587182484557787314606922798771940893852528909401404360879589313214513893787892233736890256589044646426845164640204174296579431544086596379224244325363998766644399030356670125166847350686192267007929318933977146819859785450092783790212651148102233251909046638482649314954921945165149581852345439832764694624002348016174796376891469653493104105757383281810633321188431073486915829600427343843180044311659562711670373649563844650743199709093894381155110960383932673801871830826268032243990285852878257433950404159562151919785498574826186820207241968428620528409611047183708154459453896235557190497837696370975984271770980000767091959713886136990452983687152229258149480326473017228715239532034420520135342095586161304453554081460015328965746378678199831717700425338105966570485243054033811441363969174311862497127576013276674940137772168721696731167172518114350510117819177019035437878622565251864282204723289081905284728470895475345509794807798480779488321168558315849142247126330299219020945965119711156053768825633676702396548653580801092495736922318690282411514260828620754319533903026891639930815845659729082653098932126418347751216902252111697353270671632948479508415709594238036493568020571516779145185323365123476911062118574631453037908646384278184313127970507884629195317782434372146855032425405331415492124253193208505814964686801250522894733219616597923611792219287128282733172030585035510779597930291025582329665230976467668625822632760615835635320622858779335722071625331433816877792635897106973639139687879204683113658256235609412566089196948174299392197957272441338834915083814643118580104784682439570285935285250813382499777262130596798688686016907259782113459618508284681850216259138931407088219629250316987603763108289724638490526134905925415196394268631155749885787936604316936561859964457656511996071419391788758139932975238684529877738270536725947355521063392377468509148641304447773632028101497134927594715087772288238161102918128753553553466785913929430743465540536954234521160609040747172964283079648571864425761550410408819973447298583547589716071583564683112025577639111433602723484456763195647762892531520971404715521622173828245497032960038374138836655936961246587373725052523848266246042690136109835905136721800217564502206616189529095040999733381115519189406051501210082341683700934138751661531515764317972661537171334541373594927508715743078036733627926898043337187957782330606758252949580235260855055617485873693907717529129323837457704967438489931219563686315398752018020426699504439023922559934774159054828044932193524479428852780800890412276335830603474657656252657042812513023156390785206233924489227652541625414084448816085320814297230606700556707680282590855736873497372851472706132617734179450118920281360137104572749700115577442541411882609313134187243199990574122867904117672546395943057427316976054592902195825959026956941317674236746457235961751010421204016774107276166135498938857122715686089947639401816914637885816265756625581176833799383252056496990902190752949754921700486119476853275470794056675821785086259773247924486017328099607900038265819442622576430019981920472968322388849218727653039586721910252550874177745802830252841550842184284483300502697306424492325462232751809072812902712166068221303561242471114068483182744601602161829033904771580688528011711192948156509729932240241386569345095126445224110285892525024134899620670520861541248857758094156904077768463435062527849117225633464077585226990711535441464412491603503064399352679683843129723569537847395182835425894308426577545991250694900974277743159138888733295019354601341864787038186565929325554741490512352570548553715438230846682269877071111579797607962476869108254510714886924882797709336629628069899378328587390152927858299082890726398159080989024249921738501254053586806745344058395379300157011924185763854250209061595383206261641424970631912676134376946782641729811091012736394136938203682317872845275495996751156675842934367328040368357651466068770023026758788362401233506827765469393767910145714817875529890494333038053304774955255028866479158808405015539684265996616321595456673951455475249251911399676625987858069552362122745629490495069082179670934177399874001783031882469262162409053439894268048484877181325776221647233252053845581415627359723218501737151004012833042765463954722849067318658240100198253726648942803334958012766691402291149292834932309626048952308040073187062858277656514397961504670029642107602772605406346643159635493710481632997956616692181335264847266849449331659202643033928653544822485215304760098520330444528631451242748099567159687057430884722367633024401278787501161761675158549299413204287022395495787979154934753297342654519185486356275555968058796091640232264566236342280204178852513025945517238918598739681985784475248676806762038201954429648353451926127801646105220016372600418990997606199427020623114260162463115738131422226104620348050129577023707248937510959666378964593955970235075052522639174131611248960824208765794285982467900624573827317888760385020759448340817912734290305098248050560073988482663164535088739655326010186362194380078244939646417172278908750630098483651556577089555119583524717714107630467826285511951087771871890915152407622633656225252079965267728068578317588119845587233421950577182068964131348201030169652607186304053269836053395497625555585199138296227061214302683507684613583253496208819230595880814709717370713078104769094463161459665854981385733946713017239342143482542595330298702691108206240844321868222401885161076309157184394172974249531592615791951589732904557367772786582944111017393712662391490433328390903002247847168727247811917186457684636743829234733237238015334746775092261156811110229135790334568287642212723361018037382602798055928508223095478055951132186981948393866210722615576288724845310831278148767134568802675540180280943232668301552964570246951434769072205904228460696547143374928210129947435401899903262944129451583292634892595607734727125334404633885787228145961368213547737976253869232950421014086288876052546770464014496462503247599640326010269037386688173340591476924132322366366767766993515841487361424060853171487706902305409869346258174174826928939453999474566326014259616092077076880047365078270392428446179400597067459971627331869142433703256614826117280665355770347957414624712854105579232947930488649886081270530297127691166455655087124804266450505247699088660703316297155264314806464316446730840635008656954301205286199524453792518293440845841632091738747228303470310978436332472089993879580299094188228470125594813485410679092952415488120929805271132434943413275634485520195411819422016269783231301713783511182418532262519574102473174613804765703409466694340740558181787799608373874596467502323364798450634288036890999995319761076597009989108391685455656003272309132515434378298159033245545580162714789721284742732425233485508379241692710737802780526630122580041899515114961536676927653594234197519339852786118283822003368961606801447496843510411859437236257598663044337654924452090011376219082037338797346603426737723438533628310934062749373276053091085254421212253481121624102444816020340790630800427280752946340777513314003941153455953384656495880659000732134985946375636539949537312878365752088709405306408975359232238443450348869256052274573515308571412065887303273567704591936326596487774371775172342364457602149356286859306639108089870602184428791780187956037288547875495864033650585616099640071859358672453192784265204292426622199379871687039376026647746205828156832144077890693239267132835487489534829229992765988805682760797785219282330821896932503058801240048312408057549289012163882741320209602571454240806004349782781984893967188662878792364615488827860791268190731435928217583366173047771586548719665387971078773894101636622072991112138924522665749619141927015287547800438979259611337020846103763444553929045051119658491597302102562901965007934378312634475592451948389967916589367839511285634362850653700844959843747884332875327505538396362751642346562129133125071269523657729416912543178731018266868607749329954708006987197695043756538040226771561923201036139112099227772102902951833623306417537270008445396900179986260833438040195935332192539508355834691859286201434375977749740149644815606858372906243881031753434620486796518854671823263104471713787670679685678889544013585059777574502779664848481032349365757596715892925608618887711186563664038059722230979526999236812355685753051549386833084712356726982119487754942401671132640243480509851961947022674824056324772893444894219660606830430163315443536681393057663044775453603733502514720809654192605649931659303973249567228335689016323123050780549759951938171549753929027926032207035555526553398629032305853221892746537117748948927318283752740770411138954829210742286154245238420508554598987201234586860220496421326050059242530439571390712399052509157807227464581602472038291281355230826679500426927904182640971277303541654000816507847662014488125278942866162710998561260723314931096368321031852079102240810694512382384324424839730576440987857878235373828481432519325046303157167016067175271393685084181575956344241316235906014316389549562928873207197007691450939625131914484977735074210777116315996801017920563796505836122455693306042975255510775627874759707869284391501485071422812328473532513020881759092742558073297100635983605578878550074182564738531430578221431727510645521245211087905380933049166407770971755783560708715017197772960499184888675971162748582516803170591054365053560142808856768206468516126837703619385642175744286166606975056215067364021551320238404968528850925521489822295302459586991368408426772953340307407432244246812421769936498362505528531754549247413423234550873449296048010629635678678570633448392339651014097720224084642751201317938139988098615785605757090835182343884868778517924138867671454244440129102562428349344589719982549627126402224494349513278321334438829863590958647861162006841300322986480519420777607373238831481626402457477208195002401139606085307539751410314914965791377974832034705318711488335503100203424926971366542977954648594529925305977122969403937496740666231262144364478791303477979173439539656587605196028901037632059355132294274435636710593062580607214713499828102500228738835200675552779088243990854427348305947627722750290579001738072800321739142525443479324654635032613832285271724758892036252522754248278911306724219597333793725385711532753074633690678417390603813007499761280232405537688800914253245786278461417172179185901696595650853625637687971376791200466720628593062614051047184869804962452110792156743685874896732751105947344811404618863801535734028216032380539408264724360760171478403756588734953986961326325187233573458342957045498963523911320278093873887506041475976856161527418490247175054463169658445379723441620429935188478083441279416662830875903871247865728853832678919771555164978253934950592999424321591766395903546474582289873896846071626206881720824530003932502610103003446307505731320440195423632056072478918535826332672330029097732767706279992103696320798193277847983818396506082585047260422298944875513136257598667167833614958918337957498072996964688622455647750482405594058362287278701425629073496796682038001344509524869959664005359382504335675935427181030418780543928921235741487615102731604456122924076260051551252430177442726899042214855762734129307351746573563733553933275863976082062504707676702553688197281393156089258593828570485224729108136177184771826978951286489666433565198798475633688492351148886496014508301588741042522438491928002709310194853305887455889103465993166298230851577462270615340594632615053937643165711428744455955619713556991121130421103456279270919655417656980767272499176728727757350741264324683563446096677755375521545853271328521544953257806436701908566363996500923634548068480154778710950026086164948276549608590686693955793046431267688626230931437798726325085405098006572164307822740636924163928524611961016952393013708376586581631923553304410688983443030730943171750340099437869489728202237907114638785296879650625582315635242401145227621939492619613005720308015133375860389050996330383564254161070395309361942407897630174940243092149784313126315627198664635322180982419242699302144014579520437324027392804184833188158411622036917249634172412263986630630476214561440605748546686171135453518545488953471922523542745830095081762195910634754807908845402320874575421164308509741577521854691749688279182550439451708787102565782517820991255309835989586211989167997755122048996268195188524595130602090086246140309953496833804315475492606304823974667913823212700896196038606022578078657700741082926131060578523197688347250786543729744700213153692852531193903382027084463514134199072832379709335489173374288010121836622989613593102377480723644887277635471900332960461234724859553466127348895996301903477695860076501616442759715741291841919649359659482841007502126076965972167202483565726802057260470665668135790277747719208504530474835609902337827696517154033367737339199394101027841709867342986879177279717394771597789525548108763525461375650896464773142591190233108775553289106330217796078113473863842441570306249023091712624633834513446915956038846610448488786820845291413463717139084889298317977473773333738525150808466549356723213487286259001818882735684982072198057266138542696100617061850914462213024543284483501887253544716374287995593182420722329750918360886779070706314733541751615712299543514738491231880790100446064340560998207661897431862941371105079040664145278794217988154401941852003716929548090215817633199880387654526876588946364574365225135213742825124859343127819858065963384691135585882275679983428268298120461880011333210265730056941049915808086523567565573610282661859092187513179795373840958401557854207797240335802352617923973472834440605573700530661295092572819697807186717768727387161422907232986393886790691606573499263542594183496992322961573063402847726530244932436396186179793466122075989278943273490635791107240122826953935144154186633575376182154699845841925315089524818210472260267220019841553693357148632728637689197102145787206936742946709487165351243549914917190110380891597823580882501608722708452512445543531473996024751881331025380809083032354227125161926140559797094986399028926696781606046434367720042151710905969516169562780888233143725749573525101795689942474276791252883809679850285564679285008499088786330635373225003342478110923554267349032680268505732100507892607976324184737170650546537802733200921989984903692629660270088948563433409287952451123771789386295580041961095998931453069448154715563390106989257370459479202934564978847697089129342989586072165452965122862697610940332381360903012041002929349395930626916826432557191169495653507687432092460340447131158805779548391121620044676075404443803844797322513932307481179595771931770298671686209435292780047453680589723420726696133214065562472048081344550003158550412502447127757858726752283158738764994483874643454698865260161649599747039461976667356090601173600802370884382723252663163517224554179261694389219277244807618038412564883485036751568601379299526887791685368383369842420194690914259271990584259573107271783814875689361896973446651842966415644082053280537018761617137862756728402521378362886251511231880339151043077729198888827108410022672407492552023862809499854058813449677993443169182435758120344428950882404249104318379342959906862812293669663378195990176871295511630737763850797895148858544830041138623602297584616311748258259320819247473142777805099452892132511737240390992449730495429782045736062604604838569163179180860846227756112038234101886491561027462350030843021211846761439677198973899889956316580571203707948281335795992419133665157241637466891343306898035061818229311048217806810059546408732293803373568398549224348833810894975735426876268316740680918814874402344917715724933352854315293045859673110406641135834974802937178537837536710860578455063369131810104839585845305376550564152178230562980988605039010384197225533958905978539334539586665606770318572445501878468341454600178696110444015039739255412232693476039869726318974706885441799114252423720168432107614809349740441105764172427476395482641738903462117461836324220718588742984376755108975630199292811146545441808253435919881767960315346836155283030948763620584765816238520142864277708472310783583102906586482726998357270315035064402104917474478937961309381733344263709461972985243393945254437071280507321411293882863655881734448194748705031387252229677574054547909472145973091106363977185873147206976316099782117266092472810221671567919418584791153323902190750313882544692017323403926762315277150258888832429656515992617615453281689807175893155098046541030983860951461588036203533536450583715561673710141320858910294380540245765612746990792419184921698153977912258993836317363102700381054940270566935797967526762497757452067903391470180042468106981015938148583705916048771218898331135519039509079068724002924128363798254670518125772569557139647652563079027526428224474328177921959158937331903352300829511961626257987035932135504755591837770530794396435597031176867468799866289174723216776840329566185107925646212583843962190920137523655984342261322244835504481733138301424201274000558134954305418666393509623454366915975158834136201297433753271366454267127719880320779021688233674912784415966144217955762152020561955282728448054127841815514267826682304185810208982573832795949587268736193298569482980980283567255146458692980251559587468851916138063992222640951248315581720389330429718763500003178761825342300999307183772048781949644547811398187076218947726989199501555759504756733403040025378291926591924970387787584394797024937171693767725998760564989122757308627969908642509544739588352276714744340402057041744950142116114344594049391480746988736159956062065464894709134185632815412149780690010299303750910767439337724452430035213708932820552763611265092110025100422730813301433055768462779051108035271000068992665989353991203646957130484602042539374227667234308400209320783426342405720217857218020936684433266797170596688525037142172283060156778046482066046390701980415647819752182333977039649613117069275980391769740327807690890551825982091358487949714489833859027076005220267045034316820596066712048490095743257797985589039065359713238418168130716721391841856615692332848485592443228565851604374173880122786438261512841446134676514389269557256114367611164524122870835496864965711027963317071926136061398209833141877858789148335328228824094040357391581979646223167061636576394902094572883979859377126839110497389601344939539683656426875114559822716222581057445550511102771573522610149432342775116906540141634667898619294170408554060844421093010947865720325778890331772059889034276831230081000497336488945844350799167006471060572784676551595513357605222211093817183439099603343761499580383144454993393228966969689214859097199690197029409911078279707178808913212987498174988485952572624982767919741665584915183709324996988785886620309074913296091307573794554969578247548712979536864572299399509883990853525469676159811514801604857650836619692742910188908262918851433178452692546292297356956076832632378063047729612305835110309444246150975416671600543177497352199973179897673293377643548885416404669696764213870864453315850503439811210537715924761701675217183458192163378104375498025969958460749601203238557385436007088962290420333932270209487085635432126456197368519231266250610657261707289048167569454522658887500893648724362894596549321547932873334516556843908006440064803879367586546096987135869696842986197911227883302662824595948660886008287026283422503865558138603658591044877308039733915703641704963969455663498352628529317677577341296443100180650961137106063401041399092090591938979779562885237772889370787495329248360807322373959556631892705970169128806649881298601993792696784104253416214321919829453373087602612646673741476116531321396528904100363332726891735413817975684642019594498222165821716857344727727191039480969834164770791903694877276922310746891041283472047409122576388120376333879035739440533257687537795423199782292200696427443377105637197708134326211974863735501085708627179774407933554416010248662331423183316702837482097985713449219612336756375549906858397988143372255620658238730725538842623770666671993862221289767902134044018839507947621795385191777423801664154415116113547750650733548847991264747751897234679726892368267103678078839066173889660249326011786374573233975692945672936377708177716413315701498690252130039658218794125770910838214406098033845842336052329350358513790286829159437468595624798125250998113899351969766844794851625828016881211698197701843032169198606267176549196254671612603011949267520961548314856320159865818208059468709792660109770517080452550157409001149613225946384239813405817539844727915239592796716305522602309643381427346218248763362429322449704231344434198847269645909751525126577489390231303653152609432319036749295596093161647362621237693461357729032958708494311977979395886411245503208823133917538532790686260752319423824448631663600312500670333655218942650910705781759713524057366836941436439243274747169524925331020472674152142085523629001610621745761129081165216852014777285931104627999139385866430565383219631297473539711384972305666737911620013773409489590618488531287085376743272777779748225952853787247557458287506503444332128044342802924803676864338386200216636115287231926987166720869828494131839422305705172901897064225195625812841767207082667404369510903805351697354233080288757776300915805075118847612269712198069733829631559717909866013457312533597409821861295174417328441607570755745274096351983669341034170542866025677956782465966211208937377518940196841631535702627168968439873146558068291515155250638645329781135556444931803199006840091294662830149877519154989943074603726275293404644395765752759039344337709387681843833836416448883172180379647391202344110134996032086861277612798408049696429760792855059592344793265534520196892298390849530173959590643054501587435624277519244609340682042087458298284006487461628354436340193244844543323961135485606230071487658542768658580436689937759931238395569853473261787624860821102835656615602892273140748351951549641767239957235894702100595928424095107262537598214481507806930868596807626628980813308943921524654489329161907747189446650367833491871688871403158710011455564340441291364191771428727952130588717779638797027313499743952589312453309074829827467365742116702215838086435775927145302695959451223392184938715525674785615499669891061903705184887492760914967914489897141078163706317198080743177891147577235234119475387753591523249577660533083007885120973483054065020959905298364603272299821026588089533205395787650331032742518137717974421832646152671374218072218730292673466335997574517973953196030406065018910024268100034768516791578839733857110877719309291869061759781437959498101862906498459886676795468838002351285180069018270285122471004229841475610746413825023573049095078674738894956681992186679238253567396797377316118081598059969463190891538367118400358268123526765719657614885305982921382569796192360600566659823788145601224367757026301159189439619472156520759846116567441267889395058407028976798428134517103430595566424054443553889720398406589950249762093017354042965362427092961955260073528549035440442924980013714386424768530704821511884391237409053171958029450228267579427574547820541668880544897851358477805866374065822779898873057892100773992597430879898955695049892542868181455799222391716199213556173617101360637745846552709038802716224700678010652754015264204399919146909893503814500741408347460121408880352090871992796143066457031340217130562268795519024000169900144170827617514181664894387546094294916100036954779634046259032673656065559023541599582405879827652150292861962883261960894743828209266094034966339094132376350648705211527251980737435182086395258675927378006199267476652883174225300094162525890138959968254541584920053944356030359015178468899389930810704575736540550361509818649433207989139070655307619631504321257023215811772981700516503698643161763142676141784800383761442048567816709751797375751030847178474912377626529720678699699770597304795313136553088323693434300178289081999326112857477935490779271368015753043967084010358399741110082119126701620408315893576634901668609086485595312419936971961706257286320812838642525940967749006704157971101447131184474469456401834013958682959822085438974741450500139404754521490382043376156767793322285565155158769397715390681927930675442086900334841550159513957579399481808435621626017246962724903315311552974637245857188318363309684610323204038190197142532345286110983415380360507191664734774503130927069539481257393398947835559977085119914349259344973225215660411312715325478658784449508436336614954060788223221963110423024843192152705697178858576202456594881932996139802066322277439993157853263923075671773153789186201304554184714323580561959584193915207311660156127695059518523266928782702854676918394547441298028705518876706553580981760209388068843757587898154770840823279469085933368778137474366287150102658227244852024642446080752051561029042906475078144018381415006198442411109222273052854800798197297780212899260064836244373318624166115198159257351839018258923452934465336563077204469055406265628791423561734362775582310921796672059147906155249790147292217242435063599396079732542013897943248270401288877992180442767644763012215113035426376742900298339768785203861293247071277199155156885431087279873398465974711366962732984386228734619570070697966080725090333088817272512943888073059422067764777055408313597973788479480468491470189862864237227921632359952511545974269982841049756413744291326599699015068940821774354746360665640479362625869742621206699894779267616663688456736692151313475965897933738580198401510485868367232845260444125940968170324697513791296905714206228059501388798922944920452246388712715789782840087540264185440244984589081357656202744186662302217005023714136094808721330946565970970894176722433195818672746306383788883855283640930186066994766874323935238658524771452778777194408258785341058877727020408690906370717552895051596757831479952817084125115316554736051855814689587194709150925954868567794078317354372919296987791973018991620728703373932612633742472078439843049161762190047926566381521311219141834418464099540019220340029613466032814364531399174833739655197162676748220328240547563147272467206267606822551622339167908015249727394139928119256319722436826661722513467127032551977341087539724599580206835842761244063506937836408470089439733831637383149307582453029121838718320946728344046937774315465224375448849285592144195845022705348068689653122314108733967402861974266564585808766472245484717551561268162340595473061328502673150438585988149528672611421968376391058171427525700883831678139446433956041849415760688695467402761514148806062073731112107390324025484651256529849762470326104290470331902001168172862193894298774800372421965464588048298643296768032925467006044348809912670415704646173555049784298346517748199493203503545084917896669240770879962819350187959823326114215786409012119296163064171808351824543231856649610137595958657764977577832372662060361403044788788371453129541610784944890746483871384165980566194740129465149820484612576035630047602894383115584704609074610446557416837073576394310758898033302975271892791216700895556128776468913238998110683958908010724564814134319952524255624933848879676906991782488610689352200725789740414316276830444625159078640525892077217594889774879136007001469923076560083920751747828205005361509011219983112442685959386973763207293573350359946402599719420499594494920845091367521915376773662758023471811855757555237165585391336082237358557445373112779063499234957968598154909427980097661576336211478950155037131934427643425691424033287661181068920474216416358660781748062355866251514824679626080278723265461137381215011194063464214292187748383476224753993323372886470378139747725587498725688161500952945104330551266509093320245734466822525892906504360835231284530102864194013818369780997964408979121803698516512776063491308583051992359029638019194844818914872062306168536525863101127461558619350982814290641344518446244809310686020416613218104194646743736934036495348295711399374171413614701843245763679538395454099116883558102296100442522994289161053016472927120935981806075134645074895577187070425029634325198824705735876090487956528047401754717596447444097964023763601486763308061724735060885913106547288607909134054525740619030136026243792131873577311570037680291346623724248115271147828674899050452492369402069891228785489699542771157981530681703038721490320321698859927060148856499362114076287767749808556865955817241642805657196641307798641121988767566970213739826432794220828066384833012189983607444014786405806187942541683809828315159469576626859887141419967900286042294912415719899766600363782324937514598479725659572641450802649375881569086929623415943458725871051800119450869765465563636197714166704098437016753794730396744234058936285773397691267293510410109784420322095247681197954913909233141260094575059892055228883279607761618821355387068098190820394341910678494943525901181315518206439540169068460632185278520930677313863584321300703463167841522265118924820697160346532144231843031960324470043692424392623433005803335860839356232877653525765854807618337195403818609724438728722806903351431369198177725360140769529448768877894088014004382119207521598740104382737457889892158224526130277894303351374060552772728771556141180676986190712549907686687521540666079005522407716369367322053811849510469783289897011928107445872838384701897237131846977438777249689118037728400844872442158199579885812796890493798261377885489436887951314223083557752172638906035855358216605002879496879310062084881818731061474062229289730159338341669620023154007876993362398473675041595904049870134727002395810903366301260485509788242959509287126894040763906640946695126858574715065848448729781979323798964817703135503156117603303070350571033302476405416398127583451868871433006402604336366614785133196118741364860279571928051195166031526302737087281748921796286727070539433773822320570963074332632230287945343227525359137088025710529629432196637360769433745086653243578191454687156233437056126130770047269533604739943096650599119879765464032986750675223133668117723372015577134152274756389131974834816616315760725523673035082304221758426155691849098756151391285626772755237429875364828478901267944921417903784778904903713414926368739242689628576379230961625408086901523765908748718615955802364247187455528126304449839630958681355400396475511805165850914075107042596528735222375423351686870698484649625749247640002082503727596574018699293340572483566850456333987392600616431492170297123994533631692135862364923078577222080350690753832801195994583016978477175432689784792423037003722211524057364977313708533175141222132773965866512826257025703875427351606565382376731029999420174150643340478014503216037332479936539931632951198264640550372083039599708254694765407204646248599560306608643745662340822822953807635636367974619708779040820527236610427170846457929177918941225226023544941196100941412490384004822507240729513882837743304848386463543778298244386950171152132837477040705814159893141147770882481898577155939569833512514178846622611559257253774177130102816332957684285161829905546116236980591914102764948543422784338219491440123893391227139462655724036557414029388478202484038647128543100673659522386215545959390275678496474084231254095283234910623028057659041362417180956467462251051216967001494024160676834185643606259446769378362473808902596355052286109774866292638270898215070466251763800520489257560872999489210660754034114632534736153113183503189787597970646052887375866419884044759815166421501336406774568696539260139275574260907226339941782051994220150149218973218518983433672739536662804316045005709160595709623693997960649533919631118904841855498934863343721506882800173096521362365219167420723733226773233403837485280304338910863627633563320753930047937906670731597206016987006687403135897047865830993412976330866584678330320351285844574250661566151481697433255375597360773616427196016507175020025717124644757229140479750908223915844434300917755103909963283358091928817567149310991038808409903604284162184924588626401983830723508383969570604673646488470447236282430211310974556903206064866537634316535241735365027820544435414697857062318701023384284173984713784521326109401062600974395707112027756969357733600994233871467651731402529912537663967416987980237771066295738097978917705130849704004635972977345124188241300219978976698141540609931566154212799412216112933569358923309593004408320742117334175030106751395349028470008489238089779853372096681409436590193919690463531444678213857756779145278781069056299983501625930274400526877379337935406254856443920807882539489550246931518109322323322264036717314905579395316810822140642080959216459128811918607951090023003753361352395419366479625248157128694282471847820205016658073344982273585062508785785235818866736524314372834901239529543086596107005583845082286703978936325009344456666391909024493123731414192031464768936164724951481924015366125557679603961105067128731522228653547592038733102011576221701139367224433419100029740445015058622099414578920303854398881322056772065749461423860957601997236957172956918178708145752131352561687861771778277796477966875062949253225287564229892475806252760490722583345803189070350016724705755632211888472728199288417470114194763598840965246534749729783906220534351665063400452043832302722705875675822857827487172376698574772979246498030123370271928844195854977860018722594569165459026227815690330036768231540779079061984598897245639111271071274218037878048658014280223305591177054378230488195993407776141692863114301250812748573461543833916094906640239005348782747747644211370832649196248022941218448927235174798504351191461601400380314404790784330006602758090609352152476567730582753516360851826880479735209018511565854276155874975951988298475210071835855322154385113360736212009077397407839477779670698143393897615882946606785609978897966521705416057882922864754217075421870929127524384513462575292513560462456032470234911666278257225990119267208125952033879173319918085208089524429526926375512529949446115200497051875052004595353215439264027482569360059520684541705775950002043689300655661936226442025462870527039188194446295412622386961735386607393713282463248119772902918427392775820270445946381766038931732464057306416146940968999302061832788652495667221779255969051374504028812219045508275055828939942767363073539453209606305751075317446262689238363149947797450775202517773212099385234596373013381252703702020028309810258336664031635630936754015731533797867892489461928960659632796751840740875355497194315604091735547210573078896944023619411153439676588798287238796858145097220556437125163110787187561934800112896185737479659598987010660549598199522854025782501741970282853505798902908987122315635273874539246946342627688368172036589719641321095188376705221345187741288952890841284525875064790499352672951727172200588402377218879719160354379648241229844489905504082075516413915542565657097113237024365367143823175593329401700052667111297674011077263186054785816911169750673821672337349928855692260497224124437913692062087563967969313735132522645767636698282840078860691549300976997577446298664366385318730549711060976275084018162384538155472851189087522933951899096397892442062063028381047362041251149360465058222226563519963895072662937776527770607539342131749486801486810228005067517971810865461336211837694861487425200850402795870704124180235634030797253930611198458393482024356153781178914689857817230877362121152794643192015747218217993055227685108677555752349233580303238806671531382150249007564538925048275589342056833346040619125178354812959333556165422495374063248534917303539324180263228190501288735626617116718981374879485256522749409953834262701742228463089387897945093962858248341452882911830965854532261618048331299054750035124910068704370463667352799499897273803928981775311302777965729342773026841868311249278700203655511890499728772791708451665579345741920518753321125529262833923746561459980758723898432606460456480767201046417828608664904487704121374916930748425098790349097332883060188092698523828495738883927977649011058782294686108508346280171872130104807882889125713472511733415911097221400589069939586861913683291264886618141686917717753260629436306128401474025114503402571020033390427165571605850505912191697955838554882643488953880373942931013535274358806999323540562843265322417731308547611959651928517459146407081353302850005140829313117642170759679710494106881527494157873826029191178616274521385588449383831352256172552269832600332859021104147907530472221044920835841456167427483820578467998548689381426676394711309468458351355188514875838843901246909551141220742453278234876315964697557228168848423766055833724198757505389536153242436083542539871461785586250070135363803039151966588977467494463057595969124015673595330532253246550283128769654828311191771409149138720989640989859346582408393420874437968424101856275366169929615510258863647248469449699996764411782233349243789107773232063384706320552653566617685297109305283618902311231300234206089603892071495174866746529805410001229922313643876806088010528665793139986709925629165285034767929845959164410221038350915183319808635481418948737848695649992168117371883230456519249721452987884279274188758480227025900881273387714708570086894548960431241351808569674360806049796195554744785019445021832264225519384354696765037550088156285196302518851430286879822851227727496548665895489289233382930044761683683604803591334130298417521483243455444888876653626034849541489872599306991931937423029186271218820590800794122708019333165145185983152733462468533589459073153838567112877197104759058420389316797081538958334406251146880953638116790223786815261592800983184565087964761615010399102311526622034301200939611274887499093982116637919105571390788185466334838164972748262700030452951757259119784635126284530459570332188676817156851796537786060256817132865694954542541090225853170385073444834817441371270732288342993473917369056224546568126000221047581373505399590340102841876782618355082966727295381767357944847592539627895393170381199187594606706439295976281105933634220721662420538446359748555392042866864130433602839200426851157614979040530350990646885570419323788146689954381145175285024013164660668110097455187818871170763972707876201232577625974940417940379474775740309722926790765288670346058364566573424445668692552817135206612511578536351908296083873761485105945046528012578014537484517276421067632524435456828443072518058094615223106781344157871663418905565577641757657308667858693207728635402763463717787412521520773835740449411001719081948132532847593480285745752754889039658730743628169029960829140137438874354968301692697042350862827591028461108451982928052289635421574045062174669103130043900460901308089767205616531113051692733948702363602933866309790709122418308868080266199079247709042715336120129349158947718269244473195227664087564343350238148261741329705152657147538065975737327770103124391124556298466018603553689549062513352427980191166901968724397605867087740999585601362146160218003831059296813269593635476967490864386462030821166217405744129607143733699004975367766975853751576581904332062773442428145348354187046857952699039477240296250774906406363704951694105995891389717684852438898471085545635555093366645749213221668983357439590597358359660201245144363758241045447826669055691322725174068208663113087947267281761334619834374032070800256368513524351638286387372620530413884697320244976057008479232154470881242723982658047874775692176691772181457281577775013834142277135402309393701949107087674570835222490628592403349365995307665440004451907721283826181481267793305306220485782757724066234783935596645586305446815205552386559502865863282953223655365345440182240552823929739292384531681375494636467009983493318303760947040377196688207551641046640716656839087433807464294136943310845517849895231409115535012809453696098289737026083812941060937545088495902332184663154364812249442633109309706996245544982607020117670994520158937990800683326871631012418512977357290750608380130567135345530230853527799461274768043129921165334027529044084077637272873882274736344229270808408537366958762967770132237749041517129810441937906083220385024810752963028220979005207159625932364114407253296132430709926300223195067853028686371972260119496003497783876966347700180913900046419321825022009779646078771159780616074673961364074753531635570958787828809647136092281946862495110661154430516237578700512208416045801194118943753091923203236497609735491313646786308489695443306660442337874764969764770815341867253158886913506637033078144576100260520454599330800335797533196440298107146052958957484043290398217004494945930668673724920387932758413045279870880765812805582019299427939292517174920598592989901020432061438172381368181409034031145382869437930739398676530300503628788671772189467515054356499390594276737563517642644611996008832405401256566539782797956487852506585021205053810232850889817377966644857514841545635328138350066049848063433583025143060682573729943358816231099791445670385680030556331980272793652291254019767503227979802589200649381704678720496066936979192602906862347693785566731664117868403448026016892107008982511252678023196181471084225475866976359719837478599557112103992999874039601894397287499547737486889632978206667802220776957292062746440427094746393123826704612758959310143603119107588973543440765348117523875422178832069662454183763784654394599520992127420859729054762974884465784881774721932934123077587481770023802103713516468346086184077378343016021270593048019138886431364497496601288643216388795331368069490923629114023281044019167316523559512129590252463792117434515984301977199719590642702426826635313027295795206831970990626708391323035870242756218444060738197533375255717068921317920098603615246659074583563597842256147237313229880183929640644614588166490512787124036488886966592837455579631102078769705560843314246186104029187987684654307051104353570024989119829620015658345524141611300788485762582408908758202114729551424037658856660720900982651130777073943659257961776156063732501483256913819866108966040544155944560702560084649965906455202326937864491616587157872253819324642378428816215288150413044279983987966795517134831557617930064442218355079552048169029730693098933029149821382649784071684312538449378253160604616363924529846781852052668928914105436933379716623187666439848447560422537804289886357489102159741275534360636154773147508169274725817762989972754245768071577719154652439908892703706097507801266250237828195147260085384307814113903491711348111869028737257991996073112805742552239349477317621162590047140778349291015294727855779352346892970659628727584802666356928014585175728015806557942571651449083531346580182917918199458624611581361680276190051673836769876527739211893101426637375724648275676845613069304358693558643206871730843146614835366652847533147930884244514283365842413057594821598276635463579009377389363339867001791636409415276339665047497865660895969308781671297040135421958857724087043697599355828278541476975678032725797919930917489396273189463841796032807180272343713064528398994811703078830319490167426242852974908982246706265535146754838665525188901642341174561851063856330849879235918213311095204687589954311212634484823175690031246689329380157208985797458253328254840285136609645139416698830337757140390605665132598766036928078695879826955967500687702846071576061761971034531340502332556206566396673144836165825947806679862176696226296842996460481280634318995476983125654688904729793086293646947995435077868987640697173954299542349096590225796193125411832959653019969661864017761304449997810665604883443184842298617891179826917556511242430726228088300434691169699515279325771246975097585373188830313377394307843639502963417953127572282005827896443031105568938564653917012564986952154385186203482209388218786778246335993601024783889458789215532318315872618540751032335707518257680261163296663863338830276297719620101227330275659080070013613041147982572803590964355008089110530445433232309678800428752912319836894860757114655567295335343384283596472242842882747330931092945214338709323200936612705899410911687855612468355391813724939477430671275158091699584161842027555831859912740174369632000146160692307614029859004423579566867673795035759608996934882416737219756070215532414692292028942095890601021182830937534834430537880791049848066195581253883278710907519363569667365587997002619873365794828065559657121117835867905220634230653643179112393231939574687656654535836140340542555410518360423840421873558956037036549447585395528980057663344245476828106765012931542041935872707633909587221127420598845679151374416454380024274353194016415767535063573972663245995183565202563736090113200233451647488050040481772468934284560745762747284035011582783501067691896351275971745740970169936611286618200682051102922682260805688839115674426113993152813809470942701761797176117428552089796616267103030124940083482834694661100189142882532360778089768861238569105875147937127990666906064430000096545038702931292524205161748100474261603465216364813624883115548679387770058284273413467840874763322364698037765056725478883399544672666075526016443898105769905611248052031129733105580699711112889099815748989781371505405847000617149265737435260303401486683373407733646318479330327760937792302082377691494898343197540490696345958703117087761451363455470669739994776892623918338049407564862132794521532229207322996985929881962686893293854315278787013157859043502026928844871455131152508866756508348986088807078792917936142162800600269501021208922824926120778341474385227618153769977446127393672930436137209046159382993736700432825592096123750381024772275087155853246203148820013625942666131023250710060362153808568227351388568364669769869078933767959526942655640259773400913254287016773077155587745937493415816919085010356245397641087214948336721587317989800762553267282078175163071638529849606341953045470820681177157254906956608133834556369558596213711840343399287702777973877545477325258726830548396645101720655163574881181332878496541589870654172964898512186306418884013704870722855515970482451828977115021017409390267413072958292076118239558455007847467927991463804587226887018125044416981865185840347499876101638644618018050312806737604619438951743535056471442219922733930047590649803148252567833012754058954652828744297391465415806907114975450272158938691416533038911031992501899599558921929470791890603855553627719895035610355419607596624465530872277106594611192788493838402566580877968566688031022184199501230292326367235972370289541794464538066360366024825471013644755458043956143159942702023672781367068574702146229053850767021858286264960399285414024140026882399109074459737254608453174915111849943109019544096115114907251500243425068159107035073795289755408711241474823175414062016934105387134713233550050381658072943069701753660558389949432521521520107522391792903194210630322900010422237906798139072821392509168958485009358493934975154151132990020789854772562214288459266763438438624714181611014104145032714498325219521756767202359925908127814547501813995506329988469264614866539681404589115403049392423726699362448546368341538516125871546640600867037394288734269613520702051954823844741112670156065612991658286588506181360403172777116963679434620698414388668491273148776278773941563005916855200332920922820337187267546558485440423464099858462483824936981060689782404323405600415955830908262707629723309455321764235307133256856103602940669188648197606209240968045625473286195017847253582190749966235255576138099149185749840301915930966170167904702956547282973526071402857877641379664776530140718279860342034316207069171021757859790242214868664628935966849710387948810591133545972192419066817553256919720909246282236792143058991364452705294001381480564982085477774807417725490792130238686117838134262949697055768514296120380594991230261557402128243537040098993297070390953242960004805083781809685838620437869203593962519391332304846469026521680464798214332224741330118172520909507776704977136638655110778439677724150500751356076987251322695060317397113004503357403681402042949171861257974338748793523752895149389325118477882449662561531616389846345947668092359866618388188370530697848744517421907972701812789588898579216983491225584152630515858020490147315850225604856116694477124318862999602225939599712854700091907034152870676974503699923761682612724585405045326789572690947777030671733208669987221084319222469538058185774981038712083022949592580744508792359331230486300979059274431806670311923104505644853804904487544986456619149447915880144938365775115059406680552323096320730371605480469275978301104929011590939946355099734807134248162787539013937288274666870603573855412427366892962533761190495431417242109247201160076039288791994208784361631334717861345128851300411626062808868471117968016497273736863556751716948734878945040926857174566401570729076652231846971102581471026428645780224024691233245376998425131071078701927198170386564328523173397767821907534316465621127525675351110895199865368962497601418999109095727557249818774681701976933650323298662451356988090448826212012987783491615158677235440316132348930649473607534066434388063951398598572456984707425115236379538407873270814670203502465198346088980445581379579127900117603339935024147716937106359184894880898990489958613261155521250039843382994125538354433724311967060119479188515821891349302916733680582780446538030947002366642859443352641350107519839081555588446425733213228715893920731591586228816536778655367875302722585264877167685487416552865921005029593136591718820280049709593356909419284901576700124015334893753679171980267138422327147845588143322621035765855116243133971140396459449374944207746403074169855364514208997149157143805738780153583095529325961791605037033444357494004895300260602629087939854687720992064365605252038298044488681579952144802471561714838021040374287915661816798066561411329185624673251897499148439077961714438161023343442838779262824530824616158541821013924308087107866422708611708329481706030327957986975581968572834443981512193880056424279820351231467155499937743257873456193576642035278594502605694826932952656195315166335531139057348743215856314869560726839414166132596319486310748860448192871854045944914181977049470528795924585377104426301364416645544959818568149527725615377673058554116822159036498507509978580752413093637147320554454145118668926108543819255646851927751950826158566464766487730834823214373160092347801073498224560644892971715204528932608788462973904676294047375028601556001271570900037863036656435873487021098090233466484635097704986994814905724451673226226082988616404305223924427482200544246343950748841936871368813617676984368595219043732580460937159090751502955980513558504415807849713928524921382521609391689689941775052101182280374555068532963755077589328520820337740669642638804156321899419426255702477498565770678664222974010996846126202352808199652046177188689517742918066037653943778145093666289904979179987718189450723440927979759995888751735228465832882685894152677072910825880774303409348678047678245374777213164784296185968485168780505935840522775322783539555690251188259069389942146607427214154579360113859436701464608322283482614577459175374280597876185629858511565064194295566277624507795938124487604260072703307731095714987327968619465204197044041767596096100485308525907582994814906437890001628201409828007137114179878595683874582936495913544930453929212819892657807192422695539307097209755152508116403615863699097960966503751655327523017213084246994396936096176977540227094833529636688942056796135565526604790776442121416385090573077827628085072051100642885378620518982699951481352470109408332692377756269602679115576152181180592946401670915687566317254308495134561537249379370052013008894508715722626983195766774245920908902626838441577540783186637958877563838339532976780534994746809166410531511421896747225062393528086013499065724268711358272325316507029903468197095674239080812852631269877318324336431797840153900062613724371580904411851465000145794716460798944807693741093493552257416612388551926469119110428889914377617431876347796527808731189054632174033699710370190780383922413690079081792126958337545848067770549910858226349819183531492950530434003528227064724675977112122816207016461806057894010244588327948916254157369260133000237375713750917284080519051690237408473873935792998434371618015858342440376789012541621060006536965140562845356292196652286850640268102226707198249450745275624314380742371866605865319345394324045412346364354983657845107697389301426979284962367726354065816937666072268803102834775209975104832773543007147242128477742643859947579280626406355283107661045434973317197137279063001351565108232350766692160095167001288291203396693945993971258274240943769199411657009011671569406517918430532521696196873452795560253279983271632343590427794913265449850850659533569425286989749970222719242964269852954130626909761707270992851584127472670078226728300347488975938100062555956592898151848017280367849151618060670639422817222393181440733688184989690442553031530000076242727266531282725957484782322338842340973085669005313223199604886196252761847570056736896207591902388954087776790346749231851696100856564674059901305253691948004243987985808363071761849221101485628734524000943305695824817174488601824683688853655184584233838470012855973044794861155071941536158566769651062509684286208728696396804709516917150418364669601100958146831530899501047684777049981037009127920467087590304534753835513667300037517633637963548171047021233114979639382408002980343183341763754014672280505737458427881998637450542508541938429954412834957985429125217838109711077699338670445490378453425020180302895410467387119408217293636481676246089670181937347386486843576179961143909322660982057666220084183697301278312717277461437603659864548026518866429249858404758284193521309676881337051139603907936078565693519693314593153461046000341953118987488570853415534149797315321566372848777614410141258497959656706148709022886196628546200914451902000692345653367667907706034079293790193872207882728053973860850350055059798916656107453518148526523195639093814172844461738086579991283915033555760996428412450488096708993607826009007477260173517020433916069091911663784019352322365513618927840394006150860020465594406941130377519221772379708111513068667325214502742410556407040852490327934394873223883231316747090719566052318966959516854845276902886439156328324959371325283617513358423290700977915058989238056905712151130440736659186611124240827016591354097285227409684974204812231816662691768186992661454033765278439394789771417739800911637048238842885010151167459222438432831400486097380779096734976166232359428092089576478029863372569627824548652306594190455520686284909742400048991679045223343773353803903893365105970341426699959977593239254307719130235424939857978554656232049371639191102738900567373751935039005403879118175976055033085003056780682941075382568720845167006092411875370595765763208077987981612794689315434725627782877005360685387809619604366975891394627958080001185098193136398995699727298467526286843354248418673608898152128037453151865363519033610070429062523501143420587525026194106809545035081633775294056682787745345558022397917702652641652382131892371703715146787223511969022591894932402733632050747763381779469338491094848265829881270126415247483415359059344069201239945857223648652866172650855336277771805931334565673626846298741012745683269512505814534835430248928526304828534999950599710513760646905349100041037947692246480420913186636608026691681334502004304602617625646895548973058503432079967039249602496724992304675169971551407019932398428247352767525137164138939198744032225908207201226941124678972945250310208503887238225338567047577074120877116920100837900252490994889420668069066248594243675463600570776422379348363118616061108572268494348664657945064046481235403650716425483847236629803425937172373720816589649638456075384315304770775999272169485396403930770282373055255078179649974845633300626392414164363776117904552860946174499301122571969052725961512083765899687698847281190052480800886915198024221880481069606804353450795894430280108102545854858622404679388099262042440105854706657928342006460842267659732617422292257945492683287789574654628907171046937040975937972555689012891985985039742736476300637808795704262145414979097094859542764942889704015149093112954959272067420718634923694670130782206259475336253313487178889933716363346128583657507605842023888960312580924889916739689244816911771155961599829682821838642557499150101576447488621963998410221465036704652543971209244985642414620399646658944914459624426669343992533954733149218272392284418988536744707423101447655264713010844769349586499722536683591104070756463249676015310491600847833222964620681397599019362284514568164954672017044022636554677994675947313045310479642127428507063556697396386275933579930745727737640883571797147863411727459658644946068009766228903962424773957044694593058960801135876424197345996699189503620251145441593409412896716077390488810064543703620914710665274939726582724214604370629449602827434724098370228022405837094093226917594137401506061059826269939434384049118200893387837398080027174589730625639308847405028867851525442071333475233267407196937636360517766912194816788319251988107733072301459901422817944688005327683888057451194779631934149657885430971762934481293231903487287009318233607617996176745412201786449896624450767045057610748394628381994210694458280543647369572677423937210115335028163968831496296213912899206311998173212388600419538075442854089197183504312100628258164779331997368434532216786797018464050607604767133300628187968525229953791306470396240841918753807306454656597738141681513319680142700040690241505503394297614411181024870055680986424707932809102834706728078768942152537116719215388327880485268598519132131830500038387512594164196679665972213285504963396220072462140849328065564756585645194263734736232884319401569076095831309825344238205240963980329882298784161279698754528440941104597620757489159605459757095332995488156146893975012261004265732420335502425587255895074663596416482686106670187842831709838824150889860637883091969459578335866101293844948074662917997057132830768028192233177942468931932420628336445004946540663354498516294232095744264985524933723902531532920790919187395622643859168741272495552851282826964327622695499033051709580867886375012574478981563541829794226335945168943206615163361425493898962582960663407778765947626019518143756157597620723608418031026640631532950991968069648905682818958999737556102373629148841067448600552032916774374242597551397480725686243645615856062343052410603313167116551399746603359293014187764305405472506280610906594661454870398319268880704603343269912786598974839276822858404785185293418305538442504320230000257102924055273736878076736409683397287199984754893609891702300949824820521663626725595147717317530165257109508364282326378546487642707441563552036934074830662862922301363573253657974103767864479499135861875801164284575376614228002734493354933380168630563325284676868627438160080200370624606748436419466281683889373761080999598950325517438663386457880858185291886199516404233997283175199286875047772751922044560145462807974393150430875551188106088816529778950080975114192962761813140916133526927383856107744673999915764477552637506803143475120275031673896246080569681001048587076848836726466035087907985914237216068315447088893409306718295102318961740033458854108548727825138297595983126303535671273348169125064663668805168139666771969067327392923083202442558093441902118473527089589540854418430058695863408714876205844556988897207278467319530784544090794069159548041764508987844050512748870202907505749660842045698953588275750555748318462607546859903655296535548152295810106122488237118605953972943738094231372777689237733042998671666321566200035385058886333770427500490897945176427261046462043309011216783240817594471369255543166636367049490027309133595281261361618060324119664583178842047796193640490255286106839692555391559600965149226992550795348771698182795623780144335752310526778710738541669533982101528951863353842189349325316997680051390996925898868815824316589363463557787261601679452078168504643675554896230253241660086606694457299316554699861500823803987559075134102257504384649895393943352753679672009183157340759070719513438764484913786781485892981604064163904617325556768743082197135627225146997173024224230833508412799414095867666721173523558875167820054692901481185500893614449502381128464192417282921486738272250972260586299664603694573651219777981492314842749865513374882156458793116833131118054550913895017197106583741501965482544141075530263324260824226470376389950847308311558831599561947628407534987112393528701292486386559849050976888552702057596062114521005388079333520096709621100653689833456959139589000837377283490056215101823500623392360789164160079023434373728123840829351814920377675246545123635888395261304646307910473010804398135426233039352126165402038852933082076138451109517239952126316904513146179759736660192501286973564446171656949940962204759166748904425200973052176800778226334314127017927156719443321530954991349901803500746709530335394343810464929484121691359669653187228987646398863093671282986990626004022947355252735503936333816646684853106452933914579617465474920711694531065058661524844356313957924769622540351454226747387207722811556340779970463205853737257294003097336396717413414409487564352008289279727978970319406161327341158499787446483987441085437844903590931697032643945362443166808788213682659066936776099375315674078566990541589572350861949382778077468001745117503881517702252258476793704560818436689740794939738416443050127130136337207487278350458038628828663512881281142721312272926463419202349478056288012839287685833160983866988093183548810448174356408012897532090880912735335909480417152959614253311028625284712265133333238420542789270684879626535155350810545378280822267943973704057233237406447784515069229686349716232156377226142193400251271470286346632345180879786903712946843357282686059910647365406905295636331084363589346832240135925025188644458844378212487394963066785224448158018673418678863133830850865958803767466579822532736098367254604869348962587615052036936366615790335516115823420716201118252824104989859716345563703701506353584054501977911565206467761031701239437109968961733365871362242563278951014878038538457775916162377792710949204770331889818028130187256603397189625461252258247683877388214156361479417970980110554668161775611059104191588857174162389155154557363627327585135330961014093584033550205960581218233064892836181895164438367511462084828867733486503743313294941463296868238034642888899088706974509060928848919239441549055750585050144244644618907772159103022403072918316064016383312567522891172781258799616866346836856601223913179995912901568980631812233550760818982772139282318944826488251236445804673298692343547850866751205583692320837158813848159388247026389744170630599220066705528127376582658510195304256911582710652021582396170600859642171202456968430747827867342111952140511341057433799327355985935559848086803289074503341324477697384570581908554172856447968961683307110610886469314071556237321719205230547071246734841334578254474926122213568321659073861420183563247126486847583151944875118177673265058060458175335109907796639458540203894917274190162858961040297393579234848978722581580095051623144202048068335416773623769438516518317325159840105526403875385515158350919094369587265643950083183697714613526197289560665258981107080026108477427372219896565703595856226828006019951634725561297723042811816284638251291132892823251907879843735241586206410137265666940753558061128515123591518250032481866063271013058113939975009584750234570250444074481369771453707254641253551214075017279336692714214535666992642382060501551608732536554789893277764628007019650755605694956541199136937707320577600312349635662732839332568343131990840167922220614490984968346735433521243514236267877039235889871157984784077894440449220255345053403191092217124581290303481805529324288642430598708981071869576581018379118270688790728230228358338752262307885785860422144406723170678107707282600763384722710795595945991957275491490274137877966351037604474314059116102669822950649281072470128944996785524296283183771143651618805993530114243029425529219394087704717409279873819751621255433171732900570798562610691271153363057493240743546785800638456172415013941077264137406281931751866846583538095765649911995595435853200863804601057818407611374930837315770435796750499998474776229026065848806872657660159215958887267100753721394120076481880199913944848387632009514024399543571653973989969153809997925686652213755721984736083178061543727687809310208335013429204169010976853589285442543872753980792942570005882502451581215487086047218763847243068217009023613992998405378652461045043771026412293274969585224350391577262650689115572923865144876707867255113973020820164664025294614899868953956746895056984421640041460932907100922176856004173875696368709514631995164167116196008227261890756868258169300469997049666190275675365071098778017450030952539738609852651182097382077306378545616888015091314170882573904324602884926692699310911871745560761005516989329674382875052390845265793524596933748062405185962863779490534277803196777732282977268964711189755716723137665295842293665540425427212509181827460605986288327368964999882035960430575839756130900122370961867279786155482428572185830359811859223977880133227072125926722536370269464356870426231823442490426679916910783566783224339669829626669576415920956027763724844330867914285317240749166468550046877392459365465298466614399223961605310296949232740938801159982130037359177107945428074795469912818778968577913992921779063787539555868591846540970989674559917073353390169343823280535686064343141586778206248814704022259800214229730459622477658611728098715357106722637990419060018946508586311980443863667270078666815109206170042723619410788148153707798978814302229600026740077629034293497374450397537489266685522158887010428827708987509705353920437661491890123242343171083981661590715538460016740561187032264281434407873447338976823392601873272564603074447853690835643845330308535636062213796119250313450299219210158668159389986955683748778560750046080312847339268485987750715234331872796239718035370795619956090953275352823932544477735453504643901078000527131569763967955372647878095891222470786230725710339187444680735728330466643566351862043075811543935262663869232123276996641668585678291412874313276714734225887462616511934730177566021231844922537943456024343040284899373879079232011196609296698082083199831282837896534393161108650863969637701892915722890455002426812475127087181499628985899933962476133875155448136636120749306559435950812874942248179754613871720626009155325542636548292256320176189447334660152117896116022816535395050770921905341781476015990010109062349989599546042922616420197623002699424228513496061163934309090054440916851447108324278273819179180378824225162875718501815693582436119909130417827457391692979899313522630778680659516557225197026364077986011029277005475848708865570942785818085838253328668460802621131791175069809410515783263367008922063000607858076901778357456660297640825353386205075541619360029439440250118323337469956462786786537132060656167221742955284643520276085954161897869875243949022944586489742049849772451396717885833093213610619069822402316182128858587619095082955685202385239004521663148358234288217158219040253710601309753423253649032250328177774862784515274930253409489812608360860753289882919662616856396006938210449342378577395367004779182024211524111659813061254264839639031927942042208702021376568550123390286639905674312586794405234263115759387003739416365139577643631623460396765885838399159672298637168039741051618516482366782356285927820693007226019700876741046306090162286139533862677293020159579391989168959103937868115443945490431252486344759486664438552312241494922556818872071748788554276325126408814311998102586075109681051082764470173311572198793102895365352087536551743586693996608837020349598325665467400366957387584012131829163544154368859843946090662239103549845882635341811519871210111714392037090411469188332298348333156871027660476841817996041182214749773080519609193027985639960972398421307392242123144472614481587532472894867550623327065440448949214660583823659626625147706251703472554505284141784707529241157546809197885273095936399866240398503290165917020850407361474260472405269144150178314125310816660217380365226399445535836523469157121456843395651140427488065971964495395786527568602049274209039383076228791591191488917309309570021610341131038886250326134173747479164665885189966842466549289632451725970236290398256459869257071847461620353436885471806655946366558532777619237576556147987072220500038745647519243752529395211086678932234526571074205115327610311790743395152892403452994983604178619399728586734348215575297985534680499875964023980677423443925462133387468797695117670981354712586636868590279838455224759709515843307709627663705800245820528269842028046862279408389918381229480905076517064645671664859310896724631672951419700477870230312759021908534787126719213753264810101290469522913558239390952567757280934792645731352566592954294823769463555284182989564475802634856870682782241461490183945707983946549116711386489411670537038413493093831218898255523506054593702234642084335547534092346976012605378307979326467831161804418369300241001576562284891503177265136659023975894249388317742445857280971475666332111830031244312313652124836337261627068898551835354353262697403252497990856144610012042305582874382704853857238499270348906849210627885326120952968161950046869219610612073655208552754959015448250395329129393709910322946757520584068544633790870117397763450705895495331612122602826325897767944332591154946527267218197499777988082876400732809702864369543382230688536882475555014771658773459401099300766621804492095294450657848401918983577723791391578787898918077243452892520733269736855705845991419425589843065304119692004663953836570783012408020042840798100800497818162619325424331291498810120290443273233455283925388307676387429376312233186163655343153243898152918514216140105314332098088935145514976603941848706091206332803785741744453207463579323368619773460662875232464090118088905306129308010702623289270864335461733074209849324739557021070601644914380901814285997623754399316218505842957689372370742391078093017057604886113832580929623387324554937412187788309252954024367297993665272907919447923735867074615532195595989399160617611918115929264238023991511320022293837367829911507932551679311557807915789190490652242796417608526274795456932310525494366712816871512457058340621546949128406757696177635107084262891074780749566268925907212403147857698384219809140644875853298668761611326228321647919399195379101044048673051373742507282574373141198940736475921379651298812959674177282352812200053947170345271666759966220245430786407398010223594265430291311133448588422750846373449004415594493473718289463328422254493280586013145015162957542211072174707235846133403970463743049357411306400508302743685996689795165152081971568979154626723179517863482271959911978392931782809108730133637063764007051241433571848970559668913186713593353515492167439819620403930625433601732990395857723356104926022039698631934019056289977074302463415796581943497711673754725836413615304831615759588569563823735399010412679215409814125745418454873125448508058675663347309067205546617056794638648861911744250273423491081158172832247211917667623352588494899521465004517896939776745647645996213655142971314627816503611804666598347492270182272196484930333651752630608912484095246790585800484147749213129540185153268953378188710009054208883796899970515500933190596411958934795699097395604400529611849902583164136069057799448544549578923254078008689696124038438208804202969531307424701708975584900085713672821398110035376898894750355496490532259932655043927584798283175877969969421839848940913086179197052343986990952443783944142130318429055033343346752547076451440684804795538470438086659425298413906195676748781029386442528504550623837200905334332174708169919713711578894523583811930187164603744886444035845757789309816724398182128159406649283759641023536478316638577385127222714128329396313624629887215957318765802921331414134765066740008437550905074621802004320463327574318238938471121588960494254479375766182281608084650173977176347168154974073968354925219995516560625316018892202939212209933138506616187758527891073107143747288797659617143334940213983768613305346240165077067381298498810480527242185130499028500501801386459110144916186994078798672155009654057181788208102951146853262168443419488240409879063484432291009009847587115468434211924522203839200735181667088838772273074291289748062947881170275730663401555268552698924288879099240273630547185450556369658348665238885906415029261462326534497290127401814945745024627136464260842490216612493748489371405944172197639987116261116725708628200386538047853062460309449260374214582953903403072580987364647481753478055423173532331106236370238619998467644622461983342887801650338469669316620589790913232137505197426866239500566111394988356158291652778575443601177616766479296886551312438357457638331322297473249065725006639259474059404653654239245743251699644077448167132835033179800666766444041944849665057289556827567216895595163618383134314466708124487960227446673672338653285574063702421379601645114312660229894538489226319456511202624068132783406184417617226231916081990069054687661513883792644011372841378918863141758731980735401110855162251154473039572109027807976429103683863095400393185409671915210120970481071610602894701048587907757240713760607290451909283298678360673772580616352435786871161784308141385515185581159913803369521629802924549420005452313347775100802269894248403436444615233648475891118907769810879386930452970972576460152083170173149708654500076755637401192072164513791785935194157956155505046928906102606209946863277818352269055198842176543561080602683220747903947587631458504706118549232695777048758252874082137033667315874130186170107188561197427555473799288593246292470631366791807585827052058945261393352171722520237977038513325136132698430033121239576398783785239975822757952649630944387150213335294189672041546970833155244621914722308524103819536041643735566631153958772276171634917294214484741530939728563901806739473556737494855754925677349604164840837358131387906017164971981141190481658151827790455002784306516726929219601474653303353800309572974428623471525861865310165403901506211644730171838698772151693574708199954006541994075736854387971162093502743106027919368415145400433823467901470163191753144927099897151387340258712740019057164839611069436674968048637471808563220203785877163796519948198567079753140989209798535408194110834497584250949623101710776065986915705016803952589585900762353742559643513337579407040009418618173194960784505825014800751820596949806278207762912638757394805268214716796496688842992603332187299535703390883189656094421325774854569011806806181081761049822046605466483403842343117943343680806240247091812832664637300944729008455190227663803055629646928211661021851646808189607734397203450685142090838589322941484838941869840212029664664510936650644603579454209845850298623168540710442470062506374665104895927328757805040558416506095173146261663690651788848925907942619650667601601406943950621347106507868497784333201444128101497508526277326682162213482508420780838118801194336152642202379536353891177429835251567304503048381852820902660144522662040189786621847387481858668019381062146105406837396508407467922222543271566743705016779800817052469963272059389754612385022560258262202525981026801008851285437426783386157571151232961216560735857982018891150762893831025290670176311262694456069848075017037378530291152759871191138173344895122134149450808568349972327760276315775805939653809566280941849817078361538190773584200186357142762705511170634964138788327676188982564658592286220756853772778535255420421905518804362552749548953915186844751885830567511066136450306369327106295989141695991742189261853746288593806328162259599097939765561436027846109890076422091888478697908123482014710759376005103956043977703377787813880137017086437879147128119279690445095098559408385165490983429137180248214381058829113710738549514160806125912271367800814483724240198361066549591184697641356228329982062788022726576779086420692851694510472667758591434226026986844535901916473854795743885939186105688585296532433524809912188676368921862604196434708921265987479654771689234444698676027928370549045162420404980466505611561113527075553255415328852485802569009313160398227998304183841685382197414415875139119967166357615701461605944772770972834908978742665715600829948084455471518114722383308873733842059859807521291881397797656895698150356953883980455290209966660142114861379243691441121491468689335518743768752404714678682343111711604045140234181551668053646192330620855012350209436573990157562638184147435966210579160782239346819495995120882646427182640240708982521789277327966497156977858923131296072561808519568818767693016966292384675688166413297977262843589217245629769285952544923075459552129253624321960101128228799353918723504204090120924263322199334016663412160675138077692387177403642767108469052480543379980500380541895860543537383842000070973464678817751610762856752605180550882698959830715023230818787729595600701130835016977304368817492404642570778221740818745651912504961830740361747947311092137052310770081315413537906352788318512839710517434039285566757677834631070419647802106729817053968772543587644739647275888602451094433647372564693588206903550838475499868105562946098659611132976190048367148813784116061499710739047310827040088769282207130287910350315123318129448716328177382928575812462519441804787447504926747165137143363939913654483974748677879699732022669274707987884376824096615146284372802182812483595159146362449435281308337501829258256233730541908223610589974940773812167641440380679176377038095586033622214467640505032052131271632685262002940428093923772321525155230257662728416831407455868440649425492622022693189970225224278610815272962458183036408909818904337697454029313626740388691658826769754759552402760057833223014623220144573065573253814803149031733202098371106231742316581316083495480611866784694355407339450821364237791553162469835294233970793521177603868823035655069739398303543274834271521932500256512897126321064757127750417502018614459773331796932064560023963010375441811541540917682139863870477854364445573535844630337893398067613479947067556414058707562674239750185552533687905092406582883899103803149553304208431771667302593495031828559869855248162213096723542873029910091766675742322023357540089739854617790065829563958696529188242980867419816714745518998684915730605219996954605537945433460728218284720541091491555643931912058653586298734770963316144905687386674335679618830167528071751275509491793788876725354584113463662411833122840449083221353650831832217544687633950130895686724911786537662659234551948557719649735582798946465496987555563711654009838877162401121252586516670544468481936776036676616174787410197351410529872807709551955564817003516613121709924679865185373240221361327108733964053539000644922100018930288566039381150533345906737394444266689787627229860080275810343320238755861774176392834356750117732116380045911455064866954556369284529181847057264025300643842557151705333648827341361611179755708538320722922301592652032594443761039060228110055874115537866431920856048918421511237281786342582950009281627187428528117055549837522264100167503695167820619795006317666136408566350993488220209786272452780663163854182921500948077087018684358046056508301089895119224201107224467008382723103466907154631168543578654125990486902459396611641570070834821195317785642840785101210532497065255317375173358535206475932405681425658072670712346067516316595234372571590461872852280903304300517957600751938031599358989511356302975188013434744861967610526117342723943688151111195053519574131456136000523909675100487911886599639724949505935962383575773894704764645209421958429423284070935359673837344849352503985710477753746796426022340754516550882772339592394174347872303216395568036015752518736601591141422191072876401204303178314184040202831130353061578791549376959313058805968391954112056289333271976271723334473886802145813253800620834386976059989282450993904578110484991220492698186319494565396541955017583366709745986526823925664108707586431420052558574617165744696699610857451999176902169148468103451116756373056664894163264023232901888001380570740492941884667393643225944755617302289540246386740769943238437128071029308339442373009604122482218694634292227882821316208466301744778766957248872372240965156301914095607004908676295350530813822921804588132536858385339026488854966696148605879661200288963558793504984491073994507564380307767361790822802462289434748660663572716491208916101007663692985452390177573499467389227289097332789063822853493079264202425466104544252753474814713535319437157483677165660241756501145820135818248065912128669326716242124081745035659160150892965334152323590542268717214862156588068327183935677543875005490520670367008504210519100788596829853002553283377891467248891347154784252667909709046366085629184171014840502265539373472153324765568665374986099812918829618415201516150432455831266364439898555718181226185191882494587737238466014959491807929813542858580059377231733182584284754849464374420907582584796331997095690414353112782632336880133836051497818276371567626158373822129030413547487205796541883215552226297377295721537686596602923716726278674593556065211189452258359311303856691570300018052349149095613190170339627404694700638253139412196322547001058543935385083069587552624607741120531260533959866623974881182856966729665301833264431488528280866716458174030171748996376145198234286242927224854040457593310503190844423777277589752541956048800724739024748240280963931590905828672760455933083022582924462568056669938635126428162337304763991789372757713224230931075139193903616780982139224316130230114537594266993125885242012336353009975323502028640187309896258109276238025126324752511925938774332072897519555772433629519396019113330287231916768674556080944569788403726962284678643064963769583354247588157829142679660385940813395170768080955814886107398642564521093531643345135627728198468014621494989648880463299625652910804000216430075343829640616879015839934679199754451927849102967637886745646426030304573415080297149862583187188633433597694953585152685647593605427461443605592918293501114568223948499605701089259341155645228790074362146912058350977709544511870970020384364670505543627428067498410593419335762938102068490299946317568043307062888887941999358985263701735580801627382775265985478971758189998853999520002328999081517723335944654608709271558895048542683341804010372660076938778177448289193451035094965518950886918267526663705312767242023567363929250945416106879085385625075769187584842097145688895638758639584687963717377849559659037614866824645760749618953059322614328033958280264572876518556639903395117127922410093618473329429593655741672182984640941370110775058096931888547800925955059044031123943206545141334035777104505132653610029697432039972947532712478316682145426735410654819274350976874975707194708025786595008344147998062574404280030510997256358453851327960688584546545451903384740155072837656407903371809715341100772746185899019931972179929932665107322933450217928168804743978121404282876342226806882497687327751107739383532941684230988513669044216194177828329882599444177884906536725376626689799657454128770666816367781435297872914793109034072889959223662662687400068609590133611236889612398268115375324082101922962453407206642986790774777898622526360565708281591988759383119606725541293550727794154508949360486728645639775433371177530325911343141679968418349181952122553875923674017725710635030246098530080934261106812510562922749449049580620020739036557897902797867403500755596822285316939206390810015058876928378862260630498838367758963966315823951029682989209124478269662661815455632238637250196598517532779167129712782942845893481624978971719282126170503897179107528630600760541057210507415384680302291541905277653014822105734089572738683767586047988348488420979478112060588320468141529575552521156618347525513537450427719275363537890583631055988946317848211050750674479041256817082182023514324492084029610723862889469897126660165057905181049611570735956802606496572552621927244792459270912520802416743267850352498895024092768647617480031302558025482795642054923833813409711715410628140262800552648449635028282362855330735268339052772913892809132548539634257948940090360922251830703395910287489874434466765754629467798465166098453000078572907606513008427148335577502021581952390485727235761411244948961675868440653187703897445524053902140708730248502225613028762683555629023386402713450490518456180314423313409262839365455082649303653301686928296881972624851920294983115126364950373553866259122002091618332721761228681376614956665271257970987977918341018694036268676230232374491019646674338160336410049615771874874157441189849526818644695102919975468391792761053032840515413021888713812087229399626512065682869955160264394438780187767841933645203807128416249883227726003405166000824861145469472301372619187458668193236800113292641663485359334531654262316944763732277586145533602274147169245750103777691065928723881699292452993883569826957338847291677398557500945633906807973999756671488781215587687749201487691705872829124988990062196636247379548771571434104889150418704665691443373085782093125156689048349818855672359416417503216697755146496657990350461456101185962258311980862781388943421620149179720804129383219353936202874353319045570616541333509839071860889809217193913817805964069506850670487300750212371382949979414662228475949176442237877451224237673158750847875142758830413830208039251927348344667490880055375790448120021097327727540545082470083142219007173356650604385994088584969121613984735080135071131323879715103665212106345763834915753173641261871546312152052945471589065595993811358693727902602678162275473562547750676377416666475098687031474383436610375154380289602257977560074038785250050513855536921889199570822170135974181284130540607586310722195896699452206066741821480902726522637013819633717833515359588705119572078830098461446044549233969601613355327593814459825437767384879925986884770730573029510081387229543485424747786966648787252988972188734079960322498350541281664711902892808667697440781931373631866238754527055938539240432859110254240070832049138936627843648007687300403727524371287911458856520097918210071872441595390851240622820753850437588368318784613480788678929263685679944778630640664900195982814929935569988315204418470145130981393792617372788996469062034116439366531704682902522240499887700915263459599774763548811083647573654806053690854674597549358662805903101683428502381970559710757713026467732128399483802419750690203501888984938004138106301000112811239449539000708221539641495242833373559728650533784159324925382492598501811559070609701741523385687553980185715354618284407497223264861009530840772936493521651846774018558989165872627090427899124942620228955480505362571883244569978683229865502336591480947470608514277070211670177768978748203292579986487315257317737634117253957593538161727894118134693123725774270030888990520525063509238494903883604747703455854029294415924998582973206405681572774044693121847132541592303165588383408570172511501450469139715627985897774120458754958566808255650568228791286034045832434411608276945121031213373422854050971035288459114768364878104930608566866878438730944716448321042366166622577293540078442719592665668916959756988466568140559139692401488803030856051201010341405246923304819199667801103546599873245025418876101522931717280824696679776912854246420883697778229522837631396958436614385096058353743326120096113259181576249943724620368151927237591098520407218689147814827884389898756835496895603180319697457765797679556673160101378120608616416885826858522442369329524117681463052219779133880505927518973277418161211571825990573341912958595456317346569473773665458194758568403257012151437222208335570716856484266999435337205770456154525528692293118669783923634736594758520992792267202255743361593216975358664485308791868153187610157480522407108809339068658121442254049673946632434223970018202647783231252389851422845996218740229734125343185846168642200967749088693793501103537422303244919283284238681700308358169314483319742733046594787178200891146513094517261585810758492915712002377814963932074650897992821099966479833005711184882062346757079172697540473730189805602361921139999239031534432645655126059365403294508704623892377190687277529155321976268922524653442023516606066765906137899802067708731826966273448195054439162938495253461852574908856360182054672493164317970141117048040379588648122217678843563544365212230208891506133294976816575923801897235132604895828903112014475665544784570269706221473977727380456414846489202964220507331047952802121269152126664383901748568259678826368173411957474669012293359979376857097976376086537850865952290450497150563834495011689678600039894251648866754163995981966207126698779514006768340092925923207794898900774833583402952631358099381994411079215171628916075055177876797736450668364732474399523698340213179615737651367306793401413791893908304933745255275185456239608853452420198909845047117068828631747596750135748180490811351103897933163597752137123447176732858163382216447548074293498940012616884498468875511385735956582516549660504943653855223107362184778779059332942995577419748347618074752831925715360161136881172582457583602273017841804603078184497620622896151915731629749974225478687654397626605402086247678237091543915226885678974162496452518111661540657448831010989874195740576686143684585182124098577734190075461612254634306382124212550169577315804571301588263924319812929141467959509210032188025565669950542358359007678952487072851819089216436203286110372008648589002418883981691073767488699485547146374146885792574123173356380646799641326741004425154548487716884738526425346231089350502205425737481626332771517623198511611411036108529569506458354987910657806673605391620067364054893881722415129532092918782644891201811052073729899100102285149402445689947562086894122123563151963614072491320417068135299002173886075047415054759270012561215291038186234805499227147789476708672256464557408252824476113643788990956195602183292053105277405878952108084815532831847044475460601993007825720140600065408836999000105072429806074729229314103862101533124096220388144307368724956875034264080264542408975253419925292175723267104485705706954272610964187611233967669439650905879536735209247413680107416546456043182385788074444040835654383214858512884806681249038221975466741314825815759068633107763581447943738305101136166834046183116114235294686725697817446923097682607393732634469942306213784892416560802587821587171774353381011969309676527086550603696516436369466248679367098851867347915300559099586601553007526900717360666171926677493130142659739321228233372011668418074575898539571972628162750429450818393597089801869057093443952293088126405442735077142829501236121350672558003264249682641327323934317744654753845853059531805300089770065087291743489562349464112392343291114014363580467523042769665717103731195277046528965230173273103239899345903386401340545559117204316126312146998217802499890331838056451003247574486349991074690507015880892416068906996663150943391711469935422113001103298135629475886152704947633746825188020654382796342936450360130363167236707190045367274574430504609915213007549288804908981454625566784557600974519742409742238027674935543057305336421342124607919834299911148800619403144169662419036356361640405986524992753391860978771342804521823391724843357964216350774219541017466050794102166629095199978147665048771176656543448986130646538029135949261993757150250665929403263764637003215864076751516005338262268476275738000090747974281743129883739363963071170760977806783459222587265014880261867479435321558062101024229763061866784805568481584596666988238175702470190989501270514563493329097917951205212246227874621427907911854079721064957620098038287220855935234633323928389560521505426274454358017985039518659424464974517257302239042146998237268227801013401379320433961735124159309253952033007042019447864696190876335706350785230231635504660820033383967240686554312699573911631050990155993258274444929154855657800896958463466033053460673825810696437011043579635960964630555489103557164386068785779354662899940631266716930134576917288090698458694712755760779441021782567789408709786394770167112071161599452616451594228746650072774111470497496301518606947105313372605905257111135937265480326063472020200507758426942455984379035836965601072555829387944933550963736660430528144429258232969252569672221620722984421421078906496422200317950206216476691567283671356590343877721836599155419176093641611374124054686719794520739910030640866098677268680730886796004317241758042191568878304718051096398521115132662883911041576186163485428927930765022958822023850459925505555183195310322093114621772082496876636375941571825086146804861336981018596379204748620954875985228419338827270332985823464886046961885739648740299767957765271356943266420272473815090241814435365903831562215009269743764525191224296837995521086338644109750271577581472638762114765521200176104786205954630963749543622534320719867884941204679069977570660607291525481451565729969768666520851906998089894293237286862050903499662620694191618987022707498268041858808712976436685997129204930864787296060766357002655086027347349482090732078249233850021387766816736707592861334617114579295975458825656592590579615944037576184599877065758675558511820697771852885432963740791490090966808280096920926496289692879665191080939221892280421826862183022295222341027120741568288682035869763330962918925993096166265768369766148972882370034687393605800069530827333800594074783477318587958153985606942033037444878372229285153328368618909996033466531570521985188970493167043345139107309778130120911471339011452453372625010892342375751103711067303533912571588992188251455829171384479231815621711320840379222121174699339783506293299567566180844742163439165479562881357339130165614262293152499079308805384777569821097132975427235396810829648510970125529815283285843105731848490769956969727761618627041456186707386641953704396972006859756391620375547826992025721006995817064319897082113920033377903625218253912368789056391694987941247008561313212251708200942608524896538349085086941643238887102596758093221612971870721052923838962124250317121638828009091517444549394712980355908218748317217295812253339620489153006248190715698996340728990608513717853316333632597118839373591359580806666634984692967037521369697590277630272167951668620730825831259015644338133377304102638599269629276435991184815729427819812667583256380193409022368181951916374071863940287023949363569713675892192595848066758639945943639289076810104690293529157334897326597823619004701853378817867787031138473227043210716886607671691489724081638088712553020968563596960758827089639840402806113299574915438120899012950139336156980081302227965210901698114783168330196553477411395407015906263480257762927008096714340226513963655986568173567249743993400886897834684456155281062495375435889272641665143518655233488420762362752835659039403619529731849397342504391068137814615432965774866946965665214374668372490376991119899026052321247714654055620591697689328871319386999133706162508603478713928946678494208321453164058374823700054534206696991434459829898508555403125153072349440580660804958745620214463799620227853509334374812601222879911430514749701597779691799251205159182852836829368525683479616855824192746827333022896940453175477575505734985938791488182331341126767293508013935839261800316734924847072311033219828738892797434186517827932149081309526287288361265992394579121075887527691734630639657224967876866495938216138882396626754198600601995572370787396469526168921748658276063876857192186051021546831140375199356011377265683222503437402409686830584191450115411456079804164217477153803870016120341054573382049499695818192783630516547918365829531868976138298536246684601645826784995202396048148549263750169825908100563409524367498042163988349555209352503860014541443674223611499420753541211501896942416308931353058777303217382239961691612923025496252523765062128683793019561499164021350742083329494460988815133901017918571719491215207350945274696196399797539706598735766794577168931903626486360315206591170621289091000436169898872199194171635206761305053325537488917196255104019111416229525248211023922551589627589212564005894475542954114371213600474361846132045130222639736209921371745948198341000261425669226102272736900329173858439798773955951703524933958353017216381736655405900659937631438084914021542326970227895184808136449600730183565747813721272386043067555713919654215255701839066999696872001058349056508572051807315516941558346265149573301873164644647257641716924245140357696664410816936105031409052949326983418952305353445670810898614304818478156255823297297358708815407219062758504965024315737247293849967176201116134406493189060346066951454411652143844522327282801029604318005699181960580967425127681686840129491821445273361298031219331598771320549866247860783937289903053461763075331644966045729165441145906922267731999801265452575120327229153367307048543780588781060143412890708284594899377407138533975293344926593906286231350439758043246129640700303980425644288392432330307990892109217315601873932640013400105400624252432746572636189999877185891310617908073438319300085348472689524047995611110905842022801182277450343001011666377191959418367066469522732214420226091863620516940108122635695381861021831208572600247389377705423982144768116107127551702452924519741245699916572862376748371943305611804659903674080165157439530880337926978284114184221262621590714775524942211393978146215792256766431834379508589972653485959343251342574275898140706924537298386480719134951083926875025003199256601272947597300330173988142107526489355950654817737968345906591759760312851984145976253806963256451567114971023866683618814352200264356796899473990553474655423674625786458744835234095217677008322304100058250852480556475548201966991819017886258967859697208653937749123208776792849124515838771179294960399207971472326267386989290135681201367297534339820506378721928647878697014232675231469545064559544452135952708432505964117264158696745654075790700054036216256865212926038866720604871595718623183631017898754755978621318306844974537443460786730368691471291898576360606355278800307418684512938475706914693177528599257326513640895187778831331037408858084170222530910074771517677195102868296025369681874198522323485293322925730150490728744991837194705315023849048677754402511350657662697105067060584206898634863158037656760416016851743066096087865893077925928397016449407146082053068230663164162424775703687939889378382769670315991318371691895278759539319918256869984173403199101701205834776329110720223664776796376214945149167691342896149590628976338726052334684383170910417457330735051021940465566983805145430822892228720329210718601667556244070122609299865571468238581303192186746002916581399240972444132925557806139037832017325650026440046011056621667404815504981836010262861115956308896354599152417440024957170158330336132574117281528460145325392423361048257187913098048167548973754314328141446244298474428759183009526580401199957284109986292823205295528786894467011991569615422534911929219332005106294366379571986327544171890764022697860804183865428385883202836354445450043474564543015725016943380529233156565498636324655273531018479618286979373266047577410572844886307229289283443944550132659544157578302776529877113920075371894733474162935432961930201907203990630320288673085916587590963636447749257714761966549781798834214593133532232801441752015802610202046462982185866135603212889967739217064326366438602411010373387615719648376839211553409496724432903886047009013857450576449162196338535362947752966326024768199391884982366652108451212881033206281806137214929400845202487385716023800382798839410557375341002236742272953704349448363239253293036467036611176034930113645600181349485894023828120678220715218036003984304010724836887031017916656905930800447120782797534581726791569224700781191293233743568551343176676584613572214874610450491303869388374881478956904261141967721875505952920453035005438511272165684740581834577993066735110650887402552466013190692969936691876642288546133484029286095131893427595345351207738613418910279680870031623045546482921446905989297784833644099837708525672676066979383933710258102642164022943167180728549612863920815060415386295452833194016336157784197678735120140284104908408869932924972052237691656300286687800445690994244640964299098127127433063676372455161671769085429448966139526525041235768665779784272454297397739371317589655090916795844286768423986474451534465909842366846005255105805945246471988526038256559346231646454104337539975671783461768553080354047687753171870053038500675555106129682583929625337317918564112055076568854809170238554652988445361019323035834954558560556256588607799750754965699441131193164218701802175383791288168167457810157556176766651410751235903754702794021843253064601929104344141660220549409175868711401251650852911137927587502317551752039503387867766850249541384021416432084783909819085593273009575521541694996132781264963201066176228434868300541487425677575031712708259114125846704422991227133878776862189589091873637739019585011048040709009243388620664961785882956708660851962482921426940481358915468507623599931085864533365052607601574331854281465230461162217983430567264435896568419381439549670859888387887667310045116065270171487827139773995124917989967006776731038406203437061444601489576394552537702222539917063168797600629941568878733013362353577701976922058511928345893186084838853421519905512043411005156985063591419140736111831488025703393562401913272578148399997225462515716169210785644730593507396531617006542810241844427619309437199745567027125701957240487789978143713557256939909683647525626350674341650101907920669725387991542626313549207951533175171428215451124809560929664864700479557458260043413079084102644660519339021021478563127007851807490652503349609152247467360997991881569477128576409970860646535162592743374609699519553291866047470156373074847759063997321067459334456062791888797721989172353316542508514926288278474167561468518989998033664544712783398419934491119781888255207664837625411613090636657892567880576628328853018081115289335139085764221531678362946277236114293590501055453935371261787392397703589787751944258609923999948747804395667685881668088716889294569075494528719594188052041715447965637850945129903061329938714078524102076654890725720912116245679311727364060719537435463559237996342434176805806249954344701408357348733736954161431900789521406972867889012710946846144908190398355408943698435581045440550498931920917855424257235093930660809991695757499770146678753753207019407784625214356965868155938297537260511777022319479084512779417468048838963502592586395712080259367745384813060275051964441951247078374771250628199482589280270818609268706153240430599420020825221691914647397948632934322593268685498710779507182494485978350976834604981550327531343335484727264596374145813867473790683223058209867484118841875974565552940831216015743324173098530688181647513987856819705739422352456729424024831243639708243052944183765743722178581628704211135023659398649467875707818075289758810564103441144069516703294484110151511921507084546164856349438310736302096504513430889620094646147900668241756728784769363161604219862929063571129359199429529783529192859321056564600301961903277060597194010496620685041278078434675039035460666249024789637208268441133734535543260673777793150714926271541139116343643925950502979706188730837681931268413858241663844758263179048753047870165937243778907742441364405002758744470569242862489816103249329798141679563707663456271683214803700290717870931293409156831026834510412214818054349112620698572815856416739328945796777522113302250453842377955098443192273375251901667974680833336534948847707240031899870067831897073970197853608042237767484676006725081170816920348903711923319757371458148036885415259195596645992797968513556182016796970618583493829167139451512581199219018075857652132782923606627349559494512075932355886985976765685306093920645386837176896440488399729314960580455568558897888011626048258137979042429793463341215205462220075514232725482054332346755017600631140070387192791627523657822740381458332806777714869594111840549006051174561237661938854552862329573855475609025448353331915079725303285023793525344071318392018903887401651900814748034098315854628311864811915136566526967661824702432356209373399564563222922826910746317525723311109168002233724059811212674162674570615863044754162838466502096923556058541658056741454546932536124509548994580908855253463970378064761656879036195697595796306754643567895283182592394728042821004160845171028750852240201952213639896107968355619106083460595768439047289346951834051892180114558380583441606737095217811667554443287450356087875446115586094255819886227563862592610920580097268693003921576093051583115338111493683015335220868286660076648401103398030851175048478980252371767511058980167685678225608873859400755196845608832521395529533366401078271919603544460618510157326400399335287731827402675187915583614558638583294331770765674787989743414841906817202567338212630674873182103517298984005451413279768065105892546049805272403831320392936095266755233807972595972374785957697391222481792184381249557560960700096393033773565848672458039609826134092849291748239927317611149633894593442949962083097398442050601832193010464372986718344561015940107662439398934628024610244050394540115719448121337203407674695615858875038226681390856330675404392810557474431960594910976574869545705773089053990490979767422088476655819794555754265973550308058142915768227547518188316986689413944369250842602586148738518978974854890901026688506239370187881305023744092378236567881046582428951946923832831626035213619265124589667646154415415876095551548328909588708429226461494882635060392113638588312529842260643796243221238470422058506418470427261125309349838617587956577612417044730256029562668335586801875924734227121430989597081524935723969818184563357538125500466695414627016780723053799382226592456774580953058530529190837658646467476381802938808878450447959210939905401984366598395261738184316847674645333909938490970484357924038431477001273575546933014721844869511919611956498785684040752768118931486264328904774208628409214824806197500526853432480519994695417256657615571174044028431122222985728019537885545224213220147255796061528896626936224294611724627414939893720480075412196274255722373809138518695820921966419792071431077907592426337737647848488966467391274221967173549520321869458220904929001762257695576848865275474254451848473883808441429528049375137934257544119928752572977466091422151255710628142073146139170513634797476419788226186755346466905588852702443164170538551339887930681407723630726105865775795746465146448241660344129773630572101945248236204975181616070100758446943487738836806823949394061401860522111072718963220960909022343939935848031221572502652707629530527393077176399071257152533078989159674845542599219663392458864876352418846574348348153345230367017662291456004373577383055057687025919263734025165087383144358623302874909428175392139376702502550133783584643734543182121546341064062485921455989396025417430875341573412525197755507985282085903014540562966728785861235970078457881372164247175580872482147210154735353581866017375143427377584572526602109707593289952573752027446519182278154679998559851089699396120899699002976901385294140379643558253851334200358181967397639147710623376174934500415354621983912353595067589372741327998845949927174848285160165073710472884018404569992512416456713934578931510230159022149199802199521083417192432490782804418189053147767343975762067404435088211713919208847556374703223811871556977941527857884735506020708150061434121365550511821592311765511603128132154585931914229713711708874592911193037742443746577962137591164158565471662617235409386857211153802735097293896170878994254617521898243594900959174791848485867944155164609381814959385730329946700744341580156131686965110060204055999898700521343688994077606328823909881140985351772211473209293076489361148024355072957284578063503003541746701449982014726456433729763582009934803163065776655790408262279853473845399528786125862260376617544549849045505923532633740976018153019530970465080883661015251925758266486343729818044109037143057388941782289377119493799132015416806104269140955885389295950136328579560975976777906240152618148936383496515385778762329956156287874018894960184065336069551553512609319460474781827562620930782268067766072517112378991913629783632456384618397210335460761408599856520249935547485022708734573002133608959190773472349702384095683900219426775383062583032400510053423794882708658512194929140925637263056899317752920918870723229787799164331104894312345708059286786899496173382905696822027760150504475019091170293824995339163428172598954090103251543541559138843274796828768064419013283054283005018986333016165725251450199583598335238322018487394804288282721024252269154687907928203825705263666337349749446441187896819673776198688213020810675863158825448829392599201795658347382810028359516185966152613989532528096653800475735615364940108866650639420932094228570767649565864106225786044268802676520825701530095436405452955527521798812190628681502101110722860057734208131123250537051461392836052439286760371331857190303611428180171620830432908982168385455694694809077662663058766630769330547443957202486278145847220205554742043652177774849563897509186703786115249269674555480053035316646795019002259124130155545680064871686891009217017063839878293007556753511122166529714197597584854801667723248155149678610000536719849137265038123191918154791692624250340761671007524022480047488497248939637044522148907356253134232453428437319542825173976625553684344781122932024846966580880026802667868951890690928793790453415706350722053028328144601670249599621530830367003816764804547401526066655322418272938189701515127735898474282587280839790940374472022943809127818674752105467833732350966778637883994402638477109303115293385485421470158871884463476102130049785055143068493392135009245448353578146687714751264106861486038491805769578701212079728416218136754940602341173856278164108564763907611828396130057541693126130176841274840481447687765350132088084964238167297186904594562973695732002938916953758742121828400760346233153135929281802429152659567134313327490696989887456940850611948840779910979159894698260918358433424798274278012929848156850343583259581174319262928731926264273192742177925095621661066851183234239782701387295153639840805734001767780990360451065985856422748653275653512146947304227320421569835495281154143032122440139160833218444865291139385740048673892940002632844229829732262561769039667359691352881362968471907255143816804543310370991227623089251445945409267833723597800625647959842603066056520268911230156502434948093030169472050707281243667904583545604993306039510064913332824831287056380814374869743593913965884915503861836027362560710746482153972244754404577509474830629664188488903097019757626602435433063047285223388921239489158563379743327897006499600548379746956586320093942518068456558061270482370612485624622085526237993080920968284491380952765388257214005347312333184309123686536237518836857914092091555167388806506486289337041342801069432375898763522124420414078554789877804830821333696080594461120398420284372379639158348335081307719543461630396595527343257874666965552805018136218475619444087054482778142485218664571022489202529851353766826117907407397536196678269592045885537597214669788794849850252533713362795069435135123573520091457764660745310737495576051088961815415183206508736630055787087361651598653615374945573172182200165450153354774610403564415182482517276046949379743065019460255344341205232857166451344496499060691398732256542574125268864478472180688727925669156775336014245664474550532194064157695769410602204019770086855359270956911455077569941662201469097549325684117944562705121457958398184469464726485528537262891487422138959777843402627687369049016751098555192284037252013096732845148942666315211312903373046643388717591376378319643176692021951919094912764942679750096863217866657836719853062117099327950929078382387078172327529562699648561282938024469499679310779180301917826655648329296143329296900362368388668120803616733178778037522470459418385311697106993011653616015765220771599171481619084457013696509833193366020349913077945524602188360444151154047478227534574860440156772594762069403348191698169329293923574533737389645005408208717613230095044054064010604942685307759072464057125145081569786425364148222751011620961817802418141475932453608744375830684277595692712579640700441153270003976670105846796041326442759650217158401000381522977826738632971353594975672403374819428012988152079408219079804975736843643561710775594329702318830860266714329886747862398091058633100194919727908767084029911378240754598667761785487954548017613222050319455390429044465357113529106401787171602717445566191622354372266196705109205691005416414727576323312481722853063611865739613030310751481703823542441208900280376601290001909404249381563768981776044971537293469855955451304608666007613733549665183033186979830049669892028705364845827305680048117626330698876821251250931211218786943920056910057558164493548604488556018258650787222797870766902201897501805344978821639978092348419446619269643627828459304698057900637954005787316010547166167983525045639985417069154225203453685455834462249424412542423420279568310773717778703955130818001502429675661223664198548940283489393274975748747381341029192409450587451418793494253328577339840296539231009019511572298510381876176774534580962602980713689793880728363387333766508913644653285661321613887094031747647220527961069820445951400241652480874387753741674655047962842694534047317307344131381221040867242166259008848816834560390595438628485996460368475320866273087656473772440693902126174469463528165033269690970480446854249337627045169513480798638639053065237633097717671001901142485396441670123173298158384224492757892753220572827396245665663958534371271310817160280128978047897251299487184214931923297308733299815027482160486112790243461620472706051114119466702929000307487717160616735426166438371118336490614831211191026909495426913192323815788734053786063692159938407651050384601953113964253345905395082546547338456698411575097501727491035065212106646224165534749317956718449385085770314140640117505099290567107038524721740122213133285538733205960162244528169859583863187945737581691367784577126709178956046367744256374831209654417579197216570038556903411259650548705525138880028419719473598432117787574656462674636354362309920948695865321387454856217491345374540382093406380434394572341528438276323751091306941600444563536367013083579426629328451552039717702456207781967428182768652711673927073855182263988799687296891922494457806604470674916366235243333495519170085512786837043800608348298779531839452692638646500175627510927107875043978218360218944088567265263646119229763025290229331268930875993844089802575548525693618359075893581331691548889094191170820394030627348401787468604716101635090739988339841356000705383652703864270991908857276943827463716957842364793724131362218500226674110302793741597529858814907866004813374407295673074195529867984968052711557559087943697287638975751439911079194588544263762232014838452133931207766826028002639887572287026150662477435984332467944906928863363423687124021771657510239996369830276473413035676776718274351483045718573662688466241513721996574670332092008252211579695137674256859963791003739367661344406939169917343302223573713647213701506761378362275919927509788349443282684599733384331465041877817490812830754754140042148648070575466617032744389323303545520785196569470973241906217351977753726399222658023649770699214354318263920386241702914533575230528455493255924434977542392705509791867981255655934205759126777194432300960051734846288095041923915513693025206430545211377247504902334009178822093489877208996195989342051906233757335109969734389053792824880070237854472064251785386736658097289525990095218809955846973696674006949408145263592152191559235552308849899815932263093322423479287369751627563614800496462529657304060928662479511527056660356580668913287911305172138523579602517479190978081816042351695236918417250712476858484579030158690559571902004137701181290559912532554096382760905550522171864185754543150618235080420439192712252244126654953722568673111948306855323997763258912557861880356568434160173855163196794560235405696607220012054624892899783143103475526555841976294395994194976637137629853057184341786936680035609890846352789976316978665662553724283484651749705086828751501853658795562606100332481238500347091685697885563580277736029993320976221266388426539104457431312263854682201715531874343844104899528348259866400312782596044762932918220916130457100391125835511003385634873539658752049504896045648388153522073678728567478763455102015658506096355668561691808290807953136462163793025978221044851499722296021362548238426570983813663834901273692997890991673953470806744484487563726686327801453090480348283358257262124446801278389516882200505449541016134975616873697968241507795979954151653467527274432861073608313554071194162082260781749567789551779442447457048487246621360653085689542249831981424482026962267260235426215780204789464535572242483258006330278298006606829014492360919656032444378796391808582921859914990858276810813186437292587635351540163790501628914279226040308336554338573827267682532498528152677602338282335241235235446300681674645634429748378093067641797169621394103127229593181979334744987523683578456871365898941951445319708178009333555843358354118842081604699606057695550077731559797573020253483377166307126663237969183092174954059923330309217310833049963148052501787290035759560549729936718286589586336240077458128228140629828156990849543581339150242947806119003198936139768326052300149456402434843637056794636083822182766663032066782095551184359285360623434249876957600565008464093988813335823066376357912224156143185679238251334485505433295120872955628178596657913123639072356798238415435291728981174268260451515788106530289717010183217137589972129989452065737454115287134255459448873776199351937933339245697933473520555437026902893430924976616053857360449047958625012070719185998134117237388415921537916871540261822756371767127740474730521087428114928621411934010272353983293423678666988414860409207004775090756516756554847631630170327465803553624868702024925387193122146629109574097058210166177192774152476868947464781564132189803962957503719413089650863971246145483139806850944908941371251250007439328789376874875898586717840990759056139276249996741909938959939488632595206484312887485670481455415508996623189887341932961403616303962454761459114971076274106189940538090961525775296089569994620630818381366708738458313190847049641479657298256580795626682483464156422582721320653802242549109149002147966593243373478554233016245064384194539740609630042289407541903258470586056746877268529180202851710880358908993747151877140738201534315403242671953914153650627109406472125202487330415183907384569597780522377134676148891175407649079957961247253434552798255343775430939778489646333202619743135819161741592336898734554566354869498141844331386803114922058670422357890021582071836743245291364555573667849068460770259549191068707761269199332572507882076465199915016170026189778836184421025023787254882160825425592032519222866266514692879870326339867007884168613488059119476082627136138890003699750494062497939531924373369942841895085495177688787592910197089886757891742701295686084728874114659901880911162160679203880366452325579597689000970764996191238307592215838711938970320827673121431869951897903789491934294980757416677346291862719546381273311933759078948135607357140393004626060489053333765379036990553973912346869547387273763499829514928494291012655092322952376419536580653457326366605219008654450240954092620040306573818965404975877824482460829865205542231388731711623202738635643075635068855028432422064612270430509959877877432114190432605473515251278211541461922068467986525882364935459825613200308135314635696630657188154308842352418820842339931545193119131105786144303408449496148596320500837076379309102814135341921669995174943985897152386699115120932081390740801438069959202350643540993160757950126275367578176088557319910855399015335238187771406101544948888771688715001402453570763195159108737881760411681782364092408939705608304594271990839791035942491913896850225808582228944945356268561328254704550749517531235161485340777908057241208387234901571916364234202758723851097163337373520846999879755185497018825194853999443019326374942088197561537197730482111652402648105689825495483818930184352832467490577265714358763924795866032070610321228591384096001948691531670249875794248775296176382398328473005336091127429201179681240089340933148026043671609322163787763121842612048176390334486869453439434258221327471966232835456626009747637656410253877754108880468166312674070692750314379608791405194700747213756182426063944289668605039662472821252159647482233926077503131640224228211402639426182976374858525411662330938500113690161553652018463551152870362323130855449844586302947005891647047441286104200983104631994004385064602296638397529416544333901191207431577446630165825354202550844573062149780422386070263051703337213230225824698048400985344999254614985509928145012989218128067040923854502611971434952251860697604604758971765756525090358939612494812184477121614194639549990275606182190628184665191071515486764055386968750212390255244742421753454832676586191356940439978312076269307568257299543588155432471709616216617099709040874767017299487697884429394386007993908647588592426492908902359898633348102542150875276302551884452142223040147698042739134987792669826871824162934167259239556919957894963865115362912064995006063871757138971610386397119839375994978972622284991012194213065843182595076333201989736122725278254279349392178730669711538795617228522023540684876397499996865360705080721141686541251976467117469319337380444195975463758600731270729818132310874086915147590344505966915435848238133000072346713701029739186782521053257928003282451778056916171508660445059228787292677027916157050979870949774430756113922297277960425308757274914991262620029128833264502948942054570596310014729884563071121604958702006375806466911626680874231946178338514151750124291942340002439474536229091948680056593129952374558054812770149457781344509192072659453746504838375747892069503590029216075910541749412413262677793904140917644775433324595772104928666194554492205426630323018189871160386982429382842728003996550168980801697584783696905868675999665504930645187737168534480766039042749882492540099507942140700220291895390266898095107386458743050343731566596399962979043889315388883767464846676563400850815749906325328954543776861676043486716206330120282796851997907553786545201691135907696811026738608201950137407381445541292037587816114581905988098304942996970817992590528401773907397719314953988406399727270466186209058171648530587026172895197640960358166537319939339055414702468485391173821837381513202568594262146182230492510986337425592379537178089131096558217483276353200283057149839575884036232517839805600713852378791044785143950725233731547265727946723972497740371457221232022667517550372092161407607151321469978027619253115200875737299762611711405103873636434175266462218615880285974281900211435266764517091274032573675285617081423828915073499989912622095619127788357533325720369841995370486195491175372312775747890867356584295526780387901708078120940210506020314882255610003455578603173351663063335307449596833962047795309556712541488508828453559495854750857077095285634018891422324325580435642485428999072332518391307186675645541797212593173518515183658941846349366318250078377820051816146942077400259924213370809581675256074338785097712735183277220647831576243895265793048968895678519275875376008936379646091260988864559267089200803525486778004436679421863502966828225852699859775870292701783583872784406026865326069919306598501260682729754496270572531177490591124318728602631573141763956649648941921083625213266299502504495813050697597514256284499215260458059855130186803869429784385359666337434021741610739318843367351668212740854942912513032730538603245793604383345939485432546812629252417219803041306637409576194348245929286217950098984715742731616805211232241706948142153597194526410761870480763882183917430538295613342560640431169803337652939300176271001726391794007447514290040003854857904680000336442374360279416120173197579163791975900006619186085774239840916195617636432813673564078505262228879339357254618733058120065591147121842683859494092131422829583647338007708468064004017605952861407629829690608541978680609221637836826985074746360825009324719955647941560841067903375641984436840363638327991837625734168059164695629407199902879935393511868268134789032563392318566773619220375023109262849460625681595339047317896341450254891306927726071173972391888013361569814976088788190464793193668310531668486099745067741735805124423069189461060785584878580707827896081772283628457266226896286423550308497751025884060786073688056440704448245476695349015527625339991164448823466065271956837993926239188221114838688208305211476100893087982223763845276795210310978909555614165579495139202142194213856513743503880077424740223492182322018213015153623729342457108904587872493129094125778456472150835550034637090155619463736674526098793485223896868231038712648409527604555952945767151653991610868928190373206355424893541440600838240641059459406308054640616186395683522627715408997440464439827613059014587698150209467772942096582829683390477002426792223655417861000756274018785416166785648367061864874317380036403413151007157923781163172466540385550643578320329044709606523098455755651114471674053951795015107400658776471928854292693381971859008275022528611155088732355854022706579420911408521199818210702142758834732873850885643394977455461253376699240507529678631032711840244732310395055998914769305257394596643323525277234145732384953353164903564665418442717929293638640464423006995164335967958239845938270512417087333015169742512993662439858281088796546744291090896291102927097119571409361600115724811584093460396670968013693305899226183842415945379136679637875145241233142141434790383062414163446099070609736724059127303405887332642030859097043987039823523072670603946720131016659512561134116432771749215976647580010997186152030419987656816509742757031318474708709210428620500633200665994208501692775957459348708128042398833408855652219991448518731746648323453579891411895897667771853600058047029491195242192893495406455351120357743240438550185888639569893104257529638191167088303711613165146745207613529982396392390972550946734198418338351936846730050350600784939825775529796586720511962548783804130152353807798860682057862570848433378611322068329909989318522929300774880163230750263638263226329263664942851390272456934114359142395048161198042239913973890063074829391212965007620183388083023940594333012456035260314848390328821578418901760433518467092636716462238571096586430933620408182659058834617203242922432095606351947078935765493198746603903242570963025796243585899931869918217770681152773378314075448246331701181511887636930204694079041351248221598910675291519836677935625819879644048783202561767489582310042320360971248904229431996236351787067793521414013909836043515375841157329175765073564913625670990653026116373027225918247949579070014661950562880945233596456601961897917375330018555114369891272545179829692528205032366510148094775850572863982337399525625862672747790702860835654705604907861713244143941524761573815045462209736907598575625886838797025672989550998566782309573375310010055653702867322258302677105564747819556229656266747906869388065691206137601975509344607856369788149296947676151527492493273060345630329716553404513946947822641948344722718383560237911007608925164785557498789108081375383281046304462120186785503105382778760662697116459652709825132659067620404961488933389108986494895049977608028901897242198336059994549342735464865855664127287122031088431515754229895648868441918177948280023279480513186584995548085642115922565305682455790838079114197524163277380226875377682814233824867617732626604856160978846516718254752823260194378514222043863043935909935148746023854474909011811472295294663025823356597226167306613352349757500238358319526187919039771752458064023892825237293002051454134175216929283421044198892827126223345415105122363421033161390352962868261537300587217382237705079232917666065101066086079665947228587509113801121005014600634502474886094185576988749578199559015475188925613591696515522086460294075455075409161714158500202488154003447383431786774097095985361907993875651573431690274655910114711107399932132339894649356733966335043815682847635088187715468238012378573197483896255282131705793023719567044350590116146925564048512872648196997056852291247167929716073809411556007559479609397157684419341634316139539045599695984164255471173212968050581521461574322292803199854580944213281387688063402366950753812530420520541678376358110265132428191620150379111054095660506396569961044448896636020407190951463250703981512328417802302933759832306238758574880687043350944322744506915470301568257155958202757558363452302104041257417032834392265951428293361613836861229528070375584014193497661305688802575171420099183030423474650000341642344394376878164424150062695378881664076824629887733751550843844699583354684745732040596997798868360150822061008152149914982443015614672131486846852187158641776391463471126902516839428565088571800639838688436483405850020383352358804760157091976039506230283934384140566628265806086620798816143316679894223152264224377602025118481114863107291481669509172431027994537057524337420693899354726023359131350191083617278167149942884706095973592828411336893171415922545654116528367549735696203556321167167335515788310920433663457586128582579881322806005534819831436315236469928446084145461979115229342772505448720677051976209548699965260930750806089439398302711609917616012962000555526282764101955169419298274194995362541292032976236066637125079619581326230709920020069749148176231607352514522378628329494138020611605781239579187836682580951927302102522908487221334059803261029078670987082524531261448538507951101886311436279019465314293326044937061307399522135309094597712482655782928204410117712639202293575160527774675970745469044705746499437131946918439391146757937871398314070615093605862328354311421338218728298919843215942589062528602455832753550094642369741687097365781994331594496281130617316821776176265135337604358472303764697632039697293294968034859931845702617623924558863581333643914361657407487585365659843593969566553070829557914358066987921653607126933881581652038427212510375096587811355215314199422042996548684485718320327279298799791633128182602923454343704389242012777084937781969885221248340311007500706216204044573932278147128974430223042895498555782097585194418740121080800838928231895347099374623249769931126044688303210026330630194330536460441278767383350879648331589507863833235868912317429833411509909595551763729116501849371613940067237444676197746504472815897339731964409878611826761725085095167610020345855540135655627714681125711737669966743634802544056193807542759839143661767425972651083292431192817515635507196836976663853681288616060449253411186600448731706376138909704165124402940017002764357860991615305414185233159774963133629743066064823864387588761169625526343608182553860185697236591860526448072048612337557793978134342174328248577137745898077203778194027570256952387094120805534294417538631943133421261834592087664180492941919373978335213723121957091402174197668745094650272911187008824261198733691398697306764685523973203347279098377577647219124173663079683399620391684427388537054136329835288021587795505757034577805648044845262994532194355477229701291368164920965552504369749629686017526932333359218164004963386215374171260617966280883408988677450876777832131534056941777669065509284270261339761809207553641449799209333641294505314579590339231025151244168943858527068634576592164634882962963090707829307192333238723418526401847510379852280370230557121373932015249589056695767092779993442380486307729367710668788569638247753933026828672668993205144652306818900619749286264398401042313746953105904073541640574818879278343339479546035772224146103054939063553507565318666209141103211499895666985554602898997661417994657547780101947337636886256061823188844487229174837143083494212508773165460868424561054861493323788548576884600420902481273124099240157235298663585867544575532190494905969920019429955270785078798500496297850231454093185771467770810228483768642185339272773371438007963535590247377581362730306544844112230286955072434958989988926634384722618672837080383392515542472858898221541737831953332029498219461016856762642518334237885672620527812664113186089502349425029595935278814419715567150782309683543954828540301963662411766958511470548787572352579101609594773090584190011155656866124191125097320138519471110244107646390123543742575230358790241755204672641551071850824898670669473573046990903340191935489683238778689820820595141443478183836394905294564728642760043935178550620392343130773905546388586522977265034886815665750236833766329743722769816594775820691270836367076604304253460915048779551560822670784417384062122519923396715484624174469537031991026208778879658487537541980174043087246479677811111771836590453704781385924392254588411365110759194794029258606265487582976764185595256266904152695095989683354764738784990300910909396920144431638827453121368015189379683276548824029984769725916591395539173286450652572996852612731524876369314429373924942255349133441013641513843930941352484860677743600447511404205363731970607063972108864044769287550227916043467061063248428797434549012474431362868509614060281272583047790708340229481125360163452997307202409893432710597411453635690410053650976448621476957996806444714021899487010354633480402103526433666230151178320368380267670158637754620996708582616170809211605175078791255351466962109148492642889280190837521247035778344788126774126967409252310197188099358183494938502179837494087657041539321085555403494984680096920360139629482434669232266905424283008715294229977384998491436089878601136006171153618024651016541532892430176719509598835562490206556590313311136514136127702165415213263048144992118922636861280405778859503415193361755674412229435896973558277277365653893660998215913128672102101148909277645904072338462927146524147306288911345123167750601460803284178709941317195134143909010765219687272864801089041796694356192124527169148469066566220040448778946197243935862241342059597694610928755032682455853955484983230136472639763387676760580276968190771111653640631413654970415560742368576075518541959880272446890062021367395877038956795260343710692978160323662364894459532929756530751929903770668424675471090799688989913910064366856486184573348034478993358531133687548142546589621187300543632947170187044708764352724605239769726997071406379905632820139219681481787279379960563782693395173473710465157945572449518369315901867553128899578201539349434032379153674343157736592499571624637960790638913473593567498262376860481789806417974786236573176886231825859448231237436018557134892618132512259747634698172560939248451611627196699842747771631813508275385603579475597291735445681925613632371994929200174075961883998831911106514111308822480084867650187296428671636983075477376129441577622260690077257097304424650472211523551059976690684246939793528013971225277679084190823958136722424107735580921397045177612898786175237560067205076502439644970033478481797323899717036517324623468489077993898581092494051051626480033218018153646260408449703649477597881449142160410953566317995675636460018619530914706921962109074372285709324822652365024787548127637583219648647833888090725303324921659637478743189755732755321796660309888435987648203422084062703729815684024068241748527132313204209494599972248792649151921480397806743047997402964131431170773086796983071255863769258707947619899588406813146056612338231576611396538189359114230483524156013085041419458831068826221020830904058375984152335023418137415413516412250530426621987579827835073100719624907987415760675237845023721680704912854180687058853304883324050646077203498652264703637694484568553119519752925856234849498054260783875303515524848242322778061315005764531092237479691490980988824911872570825429845494257105893733048466889535912547938387410530345286108522021249378617203101453661605085227671260594368254072816676315204071280404119733394654198724476818289397790000604455594864028810525593260363947406590154791248631592396510413182596516257084451491399443356737921675787768407262853387391134691923306175239285340348855985175612222707164752135284913882035775055073580262056783985131324772914566251342202858173579631702688907276157247617473123225078107802911055368337114496648596288111036291319834398081100690345126067795209973633451436083049874677378884802047419842806378974534012149079689517543536184897808665427433055296214833781167935681572661067381572550382840282456041406420702636777933302994301011109764221255353114771006007563115774985255509060726978374613174563599415226803603344816748080959580699987090710233054183298583229840074044913374762524076694616855037596872178077003772948101030862577485413938319029648208954426127546299252865365122990425045074400646683721824355717922553157974220186512404795605252397855983493075663115400344435364079421516714206816889446828628367853494910815604440885922472834592427841519890333142217599376752875265623641752650736779271164987642999567716662061271643796433561472658992797318694116981531428654592214699241914433660472606128125225079368098879283872260191100833728941934699833241002741058607919470438339656707019914913615269363624796606311759263692632971601459268920288539961240719482597342357418521801263528063475747618196041630034115463088540663895205901981440592757726722272493933822529404506847621716316029786197564068308445709919029796532847846109570013560999746219241427219764579268675754761783343022151434113606402444800323890107874256435143799913611782544518017149427457826957545593838599774568195328312925161632109988265102804174826564264534446694243046162365992659019599170263816733950332379468497685136465703369849689389833140955219140594733177630292275636335542771832800080632334730900360923411358539041133288922014297275975235794644382635197178661955238743347633462284746308656644225239488020265567546517435746809408988757231122651774315780109676612300676901053163629426623658513377131584197598075802508404769757363203935763135051018770201853476088901437228090017574472258544266643909227587300596133134335366262171928575848388730573007777612356089859879392317191106949951508676635431819901515211308007394437438701360368211312296503880501826234336268333307454131953455944054221470069388523357173343738235976497728068875783466920741069672804460028641298777658597491910388620446968621401788797531996661313585869879513796176855546796617710341436726036598088235124854278761877559864626881217532944166600695861791061464373111350610781223064631667638939701801013767690900710732601267307253013511503664921748598615730135484509620737437301522740407448179782043998110924449637759562868612189234038272687098249786285900398066628561121064326685578559927865986121893710545047355023278276842907141639539566600544292653212162252187961972759709390904538937356141330217128990702458225738545811434496392047608276986232325169729295472894227500791686217274396980658851150508208591448840882374509386681515782808219016677454633202833257387544277802344246439466807557655205791890679217825980655293046444567345057220332137234451258618226047371524156698270501148130833256449281543240233960256291702123853584376194745182783399684594610639312317405283904908857236426008696335802645327014699347831062295894258683823663545269141698223864306338179672879224768912698190245824705936080809133757173810520142727666348870509673780390234267145662217502658887923477859381618913489295248234416997969944688129130314495718737995681442908832059499519423364456921117749190331346506155282306864120153836347899311704240534452088177682227563585987431461637496856822324894175978227499069610227143689384790638950551409868306815971914726676880416910156274828093758267482096358461363476663195511240908495464392779970839127856376403915138450526235383798825538252651707744471193291541261558248794953390518271127865080265148143248590253017335715213929365945553331675318765024885808799523821673784508818882315026214331513688193559595339533234968017925348280072531814104979949699487160477503509467203183030663365100378990590379838779218072706783906597223743394323265816837158881947534660540318020704947304616860281143816660565920527391632472835574865425726954700574942265419422327652925317445690496576308665971252270438983498818738947856523904099442558098315009340433337063727281598191669108761598627189015985746036659413356030452609470932184906369091858201491824696127036116240627170693316829678021352041927994144095675039183864542287432059500769277503595706603561182603574877817323860376362128706919270387776749528422591176186726525334723641159922348912979183740992854896717330185466545233051749311312729975996265274849757075396534499969105194034149037804644577208570994609881477603234249513357084331115322562059787680703273005220043054729760442616424833120873325661256332672940322496242321627222420611105105442247915610263842428845113258681541774741828213426184076448345639742846221850146587022474652688108796424659325307778282270469322295054524246225952640572155749784465228743561389584439765127599842885327507971854234260378040287744074765672578786960620494930730503387628473400364368366415905288307142500132699232855315237388693202438572446936520021804531767022435575940324454188775532926777678365476294607002624051172647032652781954826594855953943982562334168258758146711667304791600401456363779711529416606808070203081915379833871674447861945773813780272939742126419243902436914102440686123102288770691222639527967871440710069395437706805372004016913886141361827462018176204033243596296641226169796800987299151222043565519189730335063132241841137392977678769509285363184663755155690372839533545667762818745436123722338573437930443478504201528541275765769953067284951959040662575491187250788278925359937252508201990471254426389391078565504556720480355927088753039925088627628597104055950393403482892829401940387803531929136063445058656474945709098753887442657710364323144250167573645712270687897629961264645069862951175510830950873784264465671097655862246959467019459157213238383747796605531082631967274440882149575943645528604167496211650983943364404057066370283907084583257519281300548336211287382836708493080000105425952179315298103726377111490989820958806355231896103912192513691870312244793347618333193797522108366730178483500813690213815053595890459169804695841121272155520043294113741558944546091535312752348087429323928341087193886568668167860290572646782942168984167771984616688160545937750213229172543378470702467570659501530940097444716279961166012599031328720108489072179534107305751776153828225527486772921235497216964630807141848527432505362058289078949390278488674101671420595531928355936760855678833414811681773118223677453056348223619136507445747893381117862084409822789844055323075252517753875565573548193865769331332930598355026563106573618194362081858375247687206087174998787246929245113491602618277361485907903277245814599635309372092149379615229539330194480252553500802310424460017405983014093645878623213928437211617578490448187688559709962502345691174805763266686060338729885629699219019174091256996029137924412482622758301012168366547964407968994558760658726070742005706694613959721347670105764827574620637759952338953236275896513256683340694398884241358044026254539007324629338358898539197891230691731830302879699584487208785208942789696131625628408156583303986035293102390920459626971522512894802464140230277406740302179919729873798941854838330966614478700820267053338399103158855886885333093185937934683662615154263158805158757833822663540406269538339018437816818922284845437983544999100977049378810217842588994034457726209040362695505636015724662163050617312779011381748962303636137226080676056598019067766924990961519770615859677135060348463886975878360048709673615945398674747018534413827943895468325214276756656595556421438699345965188851675640998044564281571961969504732655260851228649502529317310656641405401129057233108345548712197478447906637077733188025906339001887968743802268804063516638845126968803015426282378913022353054953665949469151007051429871240311092791478579456297325459051399914318138050564250215665447351989021532097674546942529535382530728038868271630252726340937880521826130342413139477283772486986365691555190000492751650662581973026752564693206125844021853205648608821060724013048011694096343978264528869132068560004952735781533156155590632992896573604594454780834897904536013859979574417666791886572756829267907140951072192373390070788284914506501199294693080805934575914825682344783189491793229198265089856880194290883401915784524070124381253724447451555812766189706191629485920822092064603343704966146719359455334405370178634777314743149624902681454373851303893127380549737255404652292697344443884280493853373113903455362201506987986941065281173659569499862758816296375460887190619237885041516746740903636545296974648818440188769094110872170530670435672434308979274456437641685723887011067804633275065394165514405511507914779543812188520099138087216266737771744867412847172208007633929763937516235032887716842051828347970495376540647741237734284958686771262023729704250358928317733881251303445471066211632883616595419231475457126554194833027889246081103271014214010988409348763600665253706619313350143268965968142758776294271839977307057189522251702751388142820301195248934262142404017920269356660677319737850190069512989297658010251315809756991143658734631968265892619255982917690532752033709239292205491003822164600823073529941915941995548336837518813719261775484451435824798810032797085996471813054199937239781238232243684367805898804453172869077055336564442578740674494272964715983559859458713106535865288965927423835429060554596223655568230125248190952939261254601624301242211699914556907368674104304497356872500677354256216089719051032447043486493926596169742587215933833958812968472027661891724884987388971617308418742042171412461739629579591877604504453215145521972940338832874719148832403944723420493417625434012550114133961064212571745736684867291616394821513178416861677944580962297696535430079459763458938267957651229181787182226006832896550548438830632882680577716671872047543482887756177757211656052802505752809766073709826101056708877603849030413639060033045260969978589845078452430452408080334793574439580954076774361568819676226553093791627505682021818275265405414564372832616396635688624008279388304738987534834482850682881441609869958885374396538399939700456091855133267022187987442465891881127297509421674493086153558962776085432442737496697206632551205495785380070811787630382976762267247427277570253259089574754972977379399579079581251333756317492116445385823474179008753471873998241250105877754164275918436794242167243397814748431228952134992435495355271941477566253136487282336678556043062344732764988094949078703025658686151001858186021993978236128625813989878659649788121171044591367376146244176932493094819409489209854428681856251776150924439168628616879027082962159466621050344707432388641816731627186621197983356482932566102874346065931618318782508751688931886855945555673744349806739316896564191818974356934972944372182725990275035274787233288276989945377516752177528821039240873283170260274676081882426646789322960049273820396955896661065856940369193718296763852352888202345727199492998346607868660346163613854966810210617386763861984593962643081284766411719925978051538498606304982512118213079800735766793453432639150196601962169706969066088188982041863492653696762496697487233282622921996036270366886275805252601122055856995591549668131408774115250839965464554228647934179638420975416012864965186192708517981940028733766268911836187238511113452805542783573026565625717739307534816760049044269559934555029911210401728895163310323634302616168560472386050076889848675768230152013354265008713482171203490326302662497538983038553619560648931809373448560627718111467229701897213528254765467505596738528123155791490482016941565060503464029718693742489083627750572914459936439419777574695391536371758255481092823073819836937553336831777766702744785618676097649848874647092607960335953961200778253344680083141481263954353023937436535529717664228512282868081972641296397360623760777763857911016731631754410786742820207666540046741439774382812581433531099244965755741394389252913727117162872255288318585559829865842337129069621233257674985403607832679050634741031532515261648759053117418310971466411753724345164780414419026826463114714903748196998951969334355412964655460434491205645519960591487812723775397175383071519166051724460880681959632431560622164866423531309596400702505318496957314019398213437547439514515038355837951001826268162251098578924987791500954893700675242182620387686514667291777936935577205181959302419593930077707796525457855776457198608722053779847468672301970822601864480709525124956144219324928050108099266602371520953812155682741488622765917946782163486971196340292282623401222123054416242683616974266507617507130261383608298134246458431734202742952435097888932981950410492865856260713777693470431592787065833778035048637323123601359939632833395758489694804136122806097762129611880397915377625871029968994343960355741046013147533667997980654874237752097386087241911795723810770807825927153446215504240267810161820508079687620261225334321506386112252413082854862241329576825757207694526911389244044816198002222873585507278145231736233794153579935153183234626563579807555801344179587943674719435509341548316824826802151107179889718556789423036910327356477439550151363704466417251449857526287221508387904729126132590539428712139220139260804884398970562434690328403939390892299545791229688651701534877909569320034039020282401493513785806804792087833267484449753921395631589482168523435847914870928763079885821329893309262876741499548321323033457022393991300923281696260250915621860263022272878742286019188663144491700331720809026151193714028664922735927581731105778587693112377926883347299756151252799874874007521095373664550600712174067748900748914549598838886244024751943029329783502987069390280984518706168720739914506282882741516346259905639654001349396682720118078117632131221405543525814878457258612348679577995983176277366966604655529187848800979246169654143296099478432095296034769221510832463858438589201674589871669889796211508174070544472402375297973981973063204216100636461237713642484705471059340982569685011686595906539420155315075835934752103657614957756679091413697939341081863490009155422792815924911620032732908610225434442827658359652755265002946851447057332737198360429820927372973446922324152313298696347623350875067922685431433222264706404650216046630071911808879662588437631075007336680857189224657337933103494463344741162293420959989673813444145111281966666431865045842848356261854097486736529325758089399476230777031066891067701788276900696831583254782077870547849690164946366770120232647110681847035985435007534237028562276954336136442233652627085194589329284272578053125476004535626089761872894408202695291797554167228309724545437829754955434038597404971188488120367997141934157378929148156979264042776154226105668867252810161716164716525643016387462912052941479693594441568201498189356850938944799347168052182413622401682522948704263573260977037083251358850898524683318670564691720617972396467328678786734107510894799907867420805646424599624930851872823649573702504604595027617209935467253432835446025629209592908735111300144129270938573184039530618834444670390345053560552224947199225127245284166943993324181164730352623450655094191843023164922688474863246623897897219447708346313623788607595695662621205313242599971641129882581177356537003799810148171109779885224991769398511164663445855683138321425223368593750400737200448759457571935814886364054867145287459885374666221214708485837901532206947866249425188154661242620015595191811772587509741305133764729546147237718054656975601162067842389839217509706051309510935777167302997794621313103394833742128402266137027458193121076949308842532925518158431877969904674657979799839193003931291604264683214667815264315338731123290175231847191275902201392697457930370428186048849312992865303533212596278064826832201839566677303863768041476325044037224039090676647682525540629108486048952381943958252182212033355937077158514684374514378694977618914209932159295231346811673451315472150683235572382747298542141688224869781071314842136498734401810976489579359840511274386154415979667469755102758611536689166815213936550301762275246496741993264434605059784040559681975228026153415617161535444721530282261935169063269553998964307304828781350427236590750172028657242167128874385426666534355858740949221079812919004208486426559209557202668375184970320194496600146529309425724739193526094275902691238129231602551104105502593407716579271293753181648365581208116281352315584744348113969351493774781231272937163042228784445614048540366753962970713515941649968736609017766437597622164244935694497694414907245146441818806022467725137624847878770745102940811882630058024636336622239623040322092521120708828153707281777768160842748626126749738017065792925499067169905138388710284724245459621019325065820085130249950583553619789042006782273225444775843732932425588931359509583355656580656177405156168904427092782143686469686262778788476888567725657222973880226458357034179414850447177473558570664585080300791317949791781937708745058795467951284257436793368599712163143854616613798372865637265748232895156190088712491057636712054915201705055230937035530551033833612426968452673686137741430737401476116003320354096654518249477352175366136616912609264271882516334055687389413153142676409015181764536701166717105919583467046839684949980286017883391055402375604698675649546712259641633193715730754532118523163337285129340184442190374399552918889484823246996966371988484498427869038598070176974228903576993001651385662198414500402704516337837351896059431102078447396234028666765718389355081860650396115037185322542262294703208473039077707221386627005683819014623289282892838606676510518912903734620073523635450693500336356033946967240686878812490620300763746733641006023241030041962286427030254327324700317384141409045488918869478396741314335842426667528937588210604471802925405688202909596776428960398247940882077614631791241577397007100667378929205098655285224749756209722781382723165386958859053198681609146112468667530781466672675793892849036309817154695114336400188942753730928255694880959933065075061964387335919865922640913882627893060707456470544454086822578164390672601666902629430353821340619810526440235147205991420858001652897511912707220215307544867130175373591738267196533179660820564178780056411799065881861355028189835290818756073916671262668738361998016194969025553786279097970929928490668727236757826335075540006425142920578240060847554672585058254626446781277878229167509406141425049597815664627155997776191314389168419642426631870076348343932379846436971634840306580889461031412702101734642139971436309318817321007322990038583568228290468182447812408098459477875412820443752549330556927642668041765059336605636571238852043846032970483458639345906657924853297019214673038459999758771805523433556685223196935700022127284068623265112551480500454943647087674453483990254721086440965331391118844114697365476178335657137139650403748927423986791678857844814420454825890147521162435672839014312154667299557171702995336056993236217573713888952579632371328001677211160194369354232052979340040794892353939937722881109143685132697308893420272717886721948220678970723294787599316102957929659216037997166989638689336176090607970254610718554546228291192999210185674978437540700828808415221313006421483423200392624924433076599396112980807043254076158014258261598587457707601663634902670246991755405402089909435571369407286315351208478154997383422872807878517451359225899299302868416295072980324069514935358970701815598110626788186997231823960934809078130696775712392790453731501346694582286121306097999261904901764522719227045495544201120099783224017234194726575815969503104536896327823094925332334510335576776626532239605464916020232902576594053335113941369251213167046920298917599375194452133943951871798579365521044668909722397758116463661352499795747805886173068206041140309458292686770624237173229825030136686210423335278156630040207688032703101780618383273872538296478048538997101541820792168894394612553120496726270692998782367316833221312806184457573578965445074655058952874029836070451620218972891597809034487589229465126503273950850888431873160683006983040418576640263131326749062706401685533460365520658518104792989754752673160230411831391318027086011493351160791784857058715740516702406233973247910280977624171521968435017940512079583002156610837798339787754901318455826058938914507430798051282372806031315197273075535726945633815228513713140167754444847594692174252920525047340505191370275010372509275049217413570168614170824176868762126501499404860090603867198298401224203216526962030426127445295953699353849815003586236637872292174407345189813771149178449645300707498062915951262257544765087536254169348219951800103678021638801931622909763876467146211639563919664629460805328083841758036040503776406861977116729008643972269894080858147836442915865968434894009889295961076948777707677010524882710415660165195641354111269221742794754846022992877088490708596330646189548404030206349206853710608915551163782914225633118954914082484604316387811468102304862784003852385822129436982230883433141448409554809132171980971908498549734395902092849062535745726037636738268468808468736695531598435947499415905024778585022747480541207212956738160956158460730211767184917440210883935708774204919726960587460725615930613190218275849750668963270269701564343719816991145131784675072337903387750540421668923252940826111556735727323243579412096575951827661628128693483912563870500791401270820085683660367797091908892045186662837745471322674882105415367543181970258240225094875195356353257211380152157440521434838502029307665263439108737730657645171661590757319460708834877871375699823139697265907951931281020882098851870108562180337047930346528497958987850307868956733288471003239369691136901095569380836531473278872212048151718802861575739708760570336826486831788692847635079021266302926133940655058469974814037729186196289966417055313241837400509235821754088617636800290631760553204915587599486333599665915531054858458411219776006060297665522059737078528010981654756196333877380328819641136534516055587538010750595331392346466695199789935372825761080410801783798864100661673123967045547074205106245536245586126951940337114539084510689060503171006915173193123606818707808499393070136913508128089846310810279199815415375320159875914030867760830276011635934794651059754610606018775609147433162350126956751780702960855488298941427724992763735767709460408802076855843104195009159203314519091837747697887253702617839767255630115421025002457751082951612855665944932317912622943849300602126060432231626991443350324023390353712006421738856117489633456025097004281919510126291758017330388636594156233195470831119129822269189608717040842934627575084448722025681855941689962908648926597517965728810825510881140786454939174800947162228374018737769858560684091640684960128343029283577893895278075288530032944094231694892883444763034555298095560331325632678047749455035324146281567081568869212225691231508815645525660025162459330811989881346399010616670688262377268336077955756390333780206561287045851561619619389177440707944072255709702852704317996208053453916282107881835834130449678892506982373492362648188546208824575226885150649034967901231531571320981167776729722882502189885367100737547483106081118240123959239891811270151800296281312671228160243256445921399519803361414891515512595999994427007130124090813411616135505118818614688980304695711061877075644632447730999828173839868763884020413239925173927125361296864860716345139198980723494798570066475230611327480295369826915565856236823717325449423312100585422046270294797468886271672276063555000730595655909364622347917497535230877029591529593514846692537070053785246108927250089425698553859822135412039337289164044697747794079802656096257449088231499341139119169253414714717305820754819761074175284694993572662881250071415975745243155750782228539828349314869433082426649408700143632499349282780876404500793780811422221373381156777261709042033805191871442786070535444777125476406128027551638047063001185123782695423447337690183872120867072123122444531072501260775211449041054195393288494841584344009636613563362416708915854410962349676242127561589781676498418869473726220555543855495877267654933226590078764824929415315788445710750476308304421470784989348489974484593274819041992977703427891956416171285779635315732696770975704726565694467811597645823900569659897386587364760705367756428823665944037606904589965398204094907918124067270501444041355300370493078969551945475044661948746063520138304798510013529869583449886594280317102848925806904836637353431902102564962837704466537767992308628223755301491230397825524891518788981543239731783067521844160302545412066554860313777722626896180234330460406430024503671349790049146745400708908251352534089361439305656313893666365386862588076313773827681009604241296805523431569178269516881367267974395628688896746560458384863762424424573886144769492725569996101225119513830294033377522095959946836687895983930701133941826758513088717097908752269800824199601663129619912498608741732464941299443988073789674889507966658747154412053055679135519290474364388634941847268957031749625547721753655200876813744320536442861976354712174695943887978439818014828348802517159898638468209279424906852940398129117302143972227935709652098776307389861439504526554563225311400489154971926642967477559845776869891048413374881614164658060927260984733574032354204657362856926583070126203430237118983673092954568003745686686152733110950400149445337458394231610554893387552282061205809203363772291265731213569163909833735275713014526274666013858129240772478255284800057109932223498616932010343445083030901796777990525002449729744197961346151602576027863480718704115658581228601294603758234154004243919533663105100760127397027803750762968357860181220222428135979206720950965660260224383891547755710548353119294285006451179570353686806427180484846036006707943381644814417966171992065005967991180591886783833496152689305546757448633798768830759644016446332282898888859845030274078617614083599427598315419947997596032543293485152222222702693590343095152944606982546685869550385666245617282175130285776061904581060262287046244569655460032227040248492589713485066624539262128605816575618875695189550648812896051207322823273340892381317630982150180639302438668662822911631847363269349427381053716709604139581684081765887780434660198482520332301801071660994759469187613683322329269251649531419042890291882598769948829143886853796217199407015066693193378837659774733385086877765605299454356527694871825900015963147849669637849305452899295139884929476561043463446834815094408199790891976168676988483448155042914257496491262273252535678133966185875068262851503256038517948267929380867591327991959527488900400580072193992715075931571634213571288678869895280811097583568035970981436013842605806194198779195624584094066303739669000362016359948534841527351096215146263319040913018022484307615072676195930736513012700416537384941734478298241264398025491669742003414280965177453988848252546492240689047622570108441702230722691733680372261698601993490364491795351709322849411987385619938935778938311886498867724162093813734935897580518679907505227961102441256157045965369568754177733007311367892641269285953108110808899317645342113904540718577639578137294990374714768012675537478828380164038666637469490625336266319496819583768425764501148310350874846566983694405850714079406269657630470687833124159074884359202670462623332948027545055261603580168230005304785545271108296701590534355806032584650308569712678374358613555707775093211156120979740763679647666563802578513166764676906515235730093746623328294704666226465524631924734889888793108440938357863449655513636357249545651540594697281232044668931449284473272704200216139003207352651365788311158427818083109543523523405853215586052144332542835023700455084278916673037831181698847921363996953020731145189404806953483637269506466701045318868374286261419041794052169462799846315775550668065033899997967490178002403696004252635623560788352106365491351309111353132842975475756048690676503405888641844883721389124593842061322564288299799327360100642887701874398668545861750041430418050327593271436085686731491056439022107433127343656714259020959843148154079811808943730541912650144493463793713774285787902408807055200851707856009343750783716810099511992280214004858664574164388706864821354029074381677490402285689168565993703669081401895175239593713016024849504903243134705871304760412061775192061202254078959396148527276356225870030044970970092620014613267667046651255890499272085507170353417674862544111541941977964559982825112354455599154277925758320529923003443178368904091821275814038079904752838719847561595737730703270479164456114569988735232523170623498782999523453162077583729832980017542606762021373252436852940246903070935339482410201958043509455279093214841784027780622719360341495969646289322656133186998749245911732005511421276503541325100959126631621016287895937836047925573273169714671398851001218625275909737317492453925973752912275724746313259668355150507708479139576250378988370048043838202154912557239680122742162039894070379911042892169246084516084805088858271863333419257418314563986233864453539560454717225378464928624958222074517688935131893391743143674523417600252994183540769270080496145650243880654143742348975929060453916940235442327025698325677038179008709774631535723059650383166967952980689274882370743677533205608978892304632627236151970153461338487229036230900333526567320789945253069877107188289388689285326827722931577392099169848205813809218069437269084606660229454440292001381343801981482574421419082285991611203510030470692441113159281888268977351567443964768127857600571998181673534046069786882361523556332056209344274324706483143689567217835382807803432957496989689031631031571199775593297909100372955269741777931285329621178005781772867357972333376093346663476039608686113286535521915345611607675522251211471390164188340148153144252629856223887244556318746193219339800291775957784709602932946131742547079813982224556711759134365295044893963417660364268094985454724912648183761971548939936548243716091876419606305500418888723422787810569657134683203271120812273986304533353195548474544637886235356081974972855948562025453068372046050359969819165794554740760564573510917845008281323181088381143021558641666896798695842127979205901714695945573307155771870774635470947567207775318652067279294538309290536860723410880796079983092924637276256452594383251048252333360467839391321064761267593566450541984763143715698085784422033950398741365547628368120577906427152908149691419275467288398236914409983515466124357552115821190864415256630404556222235484184283345963351839963417341401231016616204974262640298518647146186985115098478031557951198021930757200225066961017729034080230913998434174463484283359725690139249593950051939669299382936709760712438939570566649310754272372558191858155182845828621427901215259278877546409593494460514480770815724760608316602444828636237731067233695241145004286116127470507511451518234030049430641460037196308325586581773720106565361383721502436002784291989720402325289825016770074051671805020722670124867626088315655525993923321504218661744283011874547336164389287561643121869217856233076261277931104617637076375380560381101911264883465224770167291057401319035583715551748660643044151946638622789043261950637720818492986292087237617540471773016570892640222867286863600907156720413602853998845001907818110140956804374775223220597474396022293482759404672534786718346155971406471812662256825242829220136668225537647648814219204167020728853878594347631572424463626709270308964858894149695452614417258225517308149265515750512552377366621719873931510449779331024592946751727929505141164226797811841442057632896804579331780751660488548960848430852369412535777167010661043776504831537770786762277628383418403669612537856843048172111868994485023342869866799912985263936909353444179234616878012818096015220147643293580344916634914158521795715554199830475534432395185437319740798362253568957178928217440640218012976067612396930893724382204273964972536947243741884063356518772601903034541793282726590716607633974189419842402051787917735403443479579112829584034557343049801407453107532485522764067633991561694981061598079384466849744665950622169461114147955038010490941932802504713715063241521584392130951081203814845419385726373659398909409035638105075355090656620209023785203927555598858971603360871682730019239358394238274744511097227412000422423621003402013467185995842842048744490137251707886137537770507078379659578159518931439914279502472623417158696245282438854530981298818184679406218759043040142998062530113952007583157817124104789659194564162037690850948415739438418510410460490352239534365488043071781958012815205171202758727737570423842621329417290532157157818602109902765330949151457839059977678666215566433802040587594648770072593376832980810562643047727664511936918629414957829991440005132667630505240793287398584365426925479881860041189128409073908503900281648032817177394219340286881115852090884668980144016389851739259019472756402274928460690529761595786972751790718501815118393310110830539470861786982366546907523233600739723809623609311853655387198138277954419939109518170709388718789755863926743928794990891268407470512244326398883892733447908182838376228225635674952047992130299210992511793766097262152739850478048027258006500309041554005254203718373443552728796544668723211247683491659144759698020244904553555776538055070450914504726317067500242817356582709490701560581969173467829336028572735089466532704817746091046647549754375814410831123040606224590770033946351547656222929185715932037101267590227425654444759589961092144940100092049405902878976334264558976834157243250454149144063335417679963272080694052541579481882804398491245139570460885631486431053756395322698730851062990327824934001930484124989545334940394875396706627045832227592565530404454597277428303232539848246593099675229461370612904309052871592897057908741143095499395270895510327047018099997829595241178397373567867761205097250538030547847723924164398930694236498103230849075401295419963660578784572347584022224641743901585489402994319573463134882575747210088310291084339588627643310888385732665669191971095694355348080023931769817187694186756414416712639218978341140418552208747917456700335281221229975896469692741070698887470986002038244486901020193596764622820414911072499671310141438656985209076495809452767152150195871618311656337120492122660046381495418885777813459083989904830789516130695228239768204047863720576358563589201829742908887530358002379596152600609168916741863659304206761233910739274340126817870344969035766134923640742810435179243046380145791779610698032587936451957478755570997371918958182276139170781903176102673441666594424856517507157565999720748795135758810396456628271768689526662394873946708650385548394282950540555860707482744195756568363531037319409025177748349281362269057782373648854064650347979927706985885652551714244656600097730600876517599826880106403965239280487688534190572434900448094810053015504022429952147886701913375834679558008859619716455816034034639874485571568459418620481153745892293905206270520493632602146228199341658049494684906712871644558625380270326220336534553830200627716742336098912379600942831352168559984072318685955480885922909539128618738997575067954428180568344825867810445289414639686141513787858146355465987571000880632694562988953516719218409896998293761025685066982572005655714772379160956103753662008381044273675484196115214288514692097053366732087209160061320073632879606294096502020520114071236958509227418016443453111263033101444073910730095444714900267386713995999254086147689008148559289715262987544343932508561283681718428188378410624031598455096443291674216701230476407220261802173374359734914985907210150475619389933415500190048599767923120181043719570339559787056307296551485979776251463950806578374931014681909957769427488022748569187710191804896120855617267674339445944544544545715055957879544484271893181615592598201319959659987531259658404838108604854778638114311867089662016326601022942151317762561929620515345700279072602115420558637342992578129375903579799416476665610715337039013686224220329154865013094724581092177863221906547202049602968571840996225236690318659379673149150579769487152705105824242605665166632089322804778173279140826331926327556728140354675835705951036499134996999516010157650202612900817015887372205124171398486580671850653898973629134531879341182964550745631292435617826992456331977328649115979871901434013104809743654075890326511297585078992308143104440788098422546424654772803233642160787516871236969970003730112351039447200199050388276926174416403229500656051480752369420680821452880684654774074990270214870918889162177146633373197520879203125157075170782933804257280218648062143830497416762748248980007105153384955742840326729853292127692914973442133066708951209937408713657553279245812960562085350286012172316873351932529521869671065792310279439134359001317335758957975675468983895093721915611751943122646622438329193614377051072386856355677291814448943730963299895885631377634860048857782318037837433949943816401100670859897915345055126988625750172253683689961730545300796602145531284605031048245540213164887063354549116820867726974991653545554497490591726470889377992971528426265840352873143884900428715100145005371761972454112913020313262678939250304728061387786604205739565221928781716794408334638770028465860116923944441163880702881496573558338202500100550564242323056594052840015795575553488341326050067816231830096662268274039728906637150554856879939061590986979579135408963842875458401035745398392044625268122603118704334375124280404523661629528273260752340339589161885642931662117553241965583003550714687411687589950344217203540082811706927682874467399300112386854030928540014043950780797191574829072551532214538722642649528118342686242964534356657805296491500905622317749481514776343506893797041851835246744899916220320320839420829657251587468929283509859586148558681750287476293915093070425042104442491143737135236001050989184543454191122693388628866068851100099938716936277215904318377867940104743228691773216328475591040282510951845582510608684988045860504729050432774446536046965283644314947077029154425415184402360852978284876988365693186910145256414003847133528550913439542110947204948641589836765235887073442334454046725652473263169662906894253575922752845269625017860590137917841043824609310148427177620687683198354378967100972317308894050965303037950798612857511593544399002399073283793982371600800784872841904524385304991801125172909580913565975395120540890048308489097778620479653618449218907848246293552180174998962882676081632858113012778984189497903957454702051510458718229187319950652601810607487836456462547033768716617984250525771391764280488954213728891048028632879309262838993975380992824056044251061273446092829156452210722550043665322526116036406257247507656424160150734887421408195513491574284893955936533437339796861928470532421394933866805622852466775143629040922460343885653245307963128819071088719154153131606975151595348490645495802426153682522363947785384393491350941961492620333995487372431746012349801577308600636545247348295719659460150666711415257482462552541668776875313925824685986841738673562902612167943938802299850544953088643070149064445217289610730256831164572643142077387450290844488019281745769318321232740669304658557026207474417303580242654094361641465542908869665416589677827078664959375424308712214353498617438226490492508606081038491581954140203037020774596919032234742495108706149713955316196536633402483848092743958081022085408039292084424611936144682329939401836778729452302557746708827178902938200301532717672719291825018443701992740315597583991310552600202539029907520848593222125153275242953489262109427409320353545900210473902956210644743527224041854598132412171313561212188236562790364618998269955172030045879421734171418122755097316653465516342862032402661990011250976668990598107284985911447020248472366258593940086741580911264129831221077935115368404630014006881496721853429673207418817737582458829201196470275971305492814658070795487047603629281456480277957855622662146121554341194157529193653557000929196781339443562004363065766895918138951203254994969009258509697347393616384730700388061771228404261750534271653009960806547212340122311520925467993253756253132871804658832559470491264027298293587042738936145852317586576816012241542728737196473485586336840726824858540865063571316572653425356838523535598487665852301273719193723641143722776427923542362464729198157936975073881537025669235508858106991204612522993829878735007565190079302505316251698264380942089753710773616709085844495885912912060239691687828241869914501737791174865932389306538227779685726044687495569441439338869975317728071541670453333699850827294056502209302248186785980368450400799475656936367848831439946561370100006297680475550697460045930640191424423266823476289468580380227139882151535660832477474003765377565081619982941211719641372011052365677326650225129854097964431786881706810723679583759695744050415150915807028006080348839257014458126910327147346286885922017235678183495648438858215102941736220620497356036281461894185300569878193879009293768884831197076132521973079092457935908212547470934966178581300914053549509704805467048625295471221372298833962038865165937700095009893340473610912312076117088970163736414896362362267539870928663191445084803372931545411987627621044042716677614330706698291611966533169084064729149423927340716534636209359222456806518514633863990667967466270183458575994787553231775038000578424358319352877354695243134960714469925210261541337833847415622284409689838455749638479118703771980283430820475628116043120978484029079365927808885178793363274153556728835635669258008958496737762018449122717627394973529905294585509702927094667026141886655114523138097841718990376324856477845764550455108235380380790695604708902263034323755820993059293448920710936720692597082197049832075209914837680056575788098110491980808236971750807492421696098980650448319881535682157332707553993474094991911944671022196212968035387966680303076195584503124499286603671412707190668643626314697071200146291592608388375131276617469610143737488751714781343288558540940349006891773160640775530206013314287812823363531664004517448711787916742425305336573421805641293055197842495248629793337843349973291999170847846175540303291924420318192737467319023697931405407454357844292577001642066311812237560199336521442927637617733203687656607277456234014690878690720587249467858610415740367378313138251265144441214953574173908309713375488172632239613148699372944290637941512757844605518733773195965483557743403849874469740944425649711041818446658812276335031757179351565732435211455993636505646297103937681712364577011289126746983116172693441613828189533645986830477878408666520630437748849999947324553614512183130537670127581460608293263721888574105001306189092037153557532563545478249770178393520028660832567869405988980299792024665886907532088775200177805249105552841028195606232902957524850842821850115985419800075748998005419238095991224026217481727649975949972783942412215439397188918702977171975585948343187540886623244926385554818147054297038767190357231252708699979658689301445758519476141387903310287168491438816528393752720543391352116132670060717762696927472740205510008550164675278831319067137384142296796432187571714054060652130558277911663723583131938053736175204768654252851219533708397707123824257301348418410812075882953156466357193076657461397202631192830776427237270759943229264446718644700542050390371992470254313047172974723590847245418904944520634751874044475751917219336878357028355505405062495045804500396326675547546147547205013207750071095663349719247712526647827502542561569781893545949673297016769897879904845669334782301407448837268250328615310813555170148456628864499037466305583275430961338710316373217964400883261788979312639987673938923302353067998118355960382631306295733833823634220705444816640478749076239250583742851581056262690469020447114374079159370135892924310901624427434752523620311837631426411822217313339376646991594696889501124156830743280749894083746814531367676153214676057333981663914459060150989620021460729507093408574291345157822093818232997511487852132783857569113682204294927618314775559778772839045255844006968491901274151588631189383025097126167086616721114937078586216476198463915385192521176656925202654874699396349353406228209876271975439487590001656149123092495327243276664973865886488551010283336186057348468558755631852005319892719982841065094666411565739250147740793750391648114009031540022878094835477026479201659013018120424600061680127621360551786430117472849980154488383736769170049812266232750180670020074660559690600453907490128628674108189216432947004868987207990730532694325118674529392175216032320796331089787741596228027666663821620883143088510920653045743580493175628630144574066917061180956801480930863285433517405868037002257752051107340686453052216709931721982636748383946673346543678589997560686008058782617247260470488922306779181095554229464130226172424513654998537053973967964663894325446792219095745477269624985352524614765116292893625387555639158347254522864432244054002987815392301318562023040154242672988092130505950494531671787180274344868379372092797162163635691065272923907009573035526161669531626442160443961140000533318711222014901430527406535395284597621261653552913085128469564092063422832147463790322787874440906403207378969984259621203337841705118118721115140143646155517516488446041225369085409510074792262459135440209923955312547193479191409954284382923374106019779390293907631267459266111567341712338041796584050285412508537519198429649008207651828449180432473303568405686076104995544270524484482779158768761336108719748287865050908667281568187562671647491322717949576005033182005971806582878034006294280591198386997100368735523223224540542104343296598910559362553095273482407632329563147082098538900732162370510451808737473508625970524436968091819289276815497843682949966236580791537237215883537597625475660089474727670570364145417084309564192176098340615084035894771384862250455330138437228817523435878347362962148945109477950273989358307694557019388997839182429536018508101578160209138008544354451042928916360842636277609148448157581553007513214206348918357055091440635128355993612978788469689509351381286127397586302406351211797329267833392307271856367022531360718360538491363433524676317917018316872323020131377633441500941622276560734192664191545125557446913958840765026389924340464068025887222033028479007835730130114431973493301992938231758724422570364647268650358122956462334879529204691966062441997364915625535497977757609869067778243528068329606007213466845818859276987193227800687470733248724065513503311767806218983493021078080742004872149565820831200868015962793088671866865494964377056704324473998864505361050747029515200117907893480143598809321831065999426173922822723806010253708475937805260509629857844860718127823738100677606439865732108564070075397948749604306886887947401111569783256342731803735806898441189476576836026698973065755735038833354134745855809254382656823788965359669673685408989651757036811659814676934195062229479108819770638491086627180120485689266933499357943332199383568078521533164556713401227525643113181708145712932568422609750496031283514021440585109421546517015819115054841904367164347300470722623961565209610943531144001332620923915700585151867672027184398880981433346989002222259721438725160006052374799444219422976177797600887525249505835864926088378092465793978741844826097641146207717461666633905375883495186243780180273900300230554374597224654397918194953573170489802196785079392142331652476712821501896955159763609176624116766623565432388348727784350682673615632872186038262704983625993315934188064939181010904313596205735003304808944697999307516670302909693110318758654450395670262503666927880231259930439625464431400207028553904187829823839041496472230221441773373950886597109728280682832415371063326142173777843239778872126094278804508090230629416117629927028944870007242720685148714330837906695888636364802346267978897139835297054574588005254486687109172785188893055252132925350797217676369810031841858684434121201449816206648681065219558899161172247529281954726915296404344409118052303303521023242504983331495123250622345338458072239674339212677798299191830811426385402917671989833226113746069895100333589940952797961864487846673903916628265370426098357139492667517429260514937551526388410930054559495168872765588063921730566860618616649931867335692899332360875499279921766675449528861594369497074494042341705317451740360027002553487273710549120002547843703514881588176152641799712200220979914453683710627700800536591053585002749762066816626697123269190838191568681710031971843406768475703184772136118349550826219947091779456426637256958648373414098878285974938386703965210986005559369412299245556509114034075376856178490502867430940697410477036476248705978650640277903813905066212252945191475290805481490827924737564577003670280567391744086624151332106330579712215697992768261431840696673355565773033929616931420075001197351796117154744149189888811719899819144597264040606721939543063642378511084081962615583981860418120052027293678193156646785090768180328884549695397093565559589765357754246363187498037811842633761127069080850185907779650224834746454734364324540902883184085336248457639504919322829648769257021014052444601341036262027656088323657667308546125661723534307711622739574732508686241764933161404342313847311123760908098857503307795133576635193323181807458921084293412147031972463004819341124858755873236228478143912894777492384528476692680492511859132560644594221961841919457212623941607063656986621888966015297961688192813629063940203354567696469719389239698388440213569797345016376057686998310033851337483066666076637250881925767771290550949959607771113225633026789938899498157019577877260643352758447866166097956537091385957501139973914388471871050717873691555959138918037982264763914979536364378829030076576602729399843007850286654883428057823970686807087424425789562017130160723092320177690887462401702972294449706177647788082758939008024519059627625329774115217939316624265820845883616679905383189194393706333672539123791200135729898126955747722841287939166533796574615368810125338921939056157756241111184858099642297975261571869474320811848563778965031444524489588258016513222211447385549986222386475146474783583332137060129400113686009547530683286138436765663250542861646270058445700144640478396373707842503505836753169204095571491279211121979041690106851626250497245282175074316824110122433475611641149400434845265759522304938380464676366626650294089981229416712885147137318100011758043397778665926196041726892899897054515974470462046559514264632740174757727358034571134343727998939077717799828057967608984947965804164103528501954648531397659213664385367223653457559561569597485292596378584541881405531292420368071540573349331737620884542541355872814590258816459785139940360751172577510861741301633867146358266382390262544232739377808296770187883520151690749997505494453086644931754847754736378891231724406717669896085069316899771177510173271270165547832031913005557505996708623604902494552069757661282814728535794908716427469369328077069007690769054773539531581742834833630528374151186517077982275331733678901634931257352694028168615087162556439287837047193509844519352308189865554632108881193580520820129284363676265176241530088601745002715747729808798104430482800360478065964537089565945960976993830826931399238151270106158529529777858251811442989716864718147029774775017744140494329842240541169006367387785744794365879373737409297471080101672648695858369397760275834032771706158020082452535428248262747867304783100514753659669472973818479216548379525287730335265174984786327243678884182228884061116823986980847225667630052866732263719182868454504167560695188276357743106320713602616681311765338472365601589793884665546655553299425704236393222516883607978573637298038951698184634367320650124498201106411377217031348326254388239099510387864412289769126277022201828055257098206751219755593554035446359370998115351249222871822894531598503113115539124955987853819910708190813042071180760908832523585769141754867445725542289942723462667424209309656120294406566568403530998836219493555248944243259528509330555710243491950870531753328129294071645450531898838141860105629328868008524114329846741456386216559251480128572756667507093644889612769916682741754636797771156104748675846693967561879013747551568688382565907019535807208920602838993693057399242567945030105167862316241235319409662843765511972419675324627692971374570125400320702992004057182520235616938792325597832936807165062199884792006211277881138601606143840085006014609738232446239554669600463632462707789554739716923973549822429436256387633906563409300092410974245195414041430422953050291287853860466642276446942370534319653760357924838185026612784690868038830749039985491585958512500187516962632507233634608321316885840460406306930641097996784661159521601683753232773710645920674069152982919920341940411744496377780319000906037253442508586671997022133237209016487276305416437141941029562882362560318806222598883599012012959734546433426344305316409457383503084433950762182670502582965016306738148978692660413904285841948978427229428940121070548189962724723742760264291741633362397039870428752189149529611776580687437406742085008665025165898373293476882748012798330509891464749387979784010287035366006546964945949184803624265828123255336287333325618714032624616700546125978062758056363540271176974981105401688178460462360467137192183995082737831531310727978350682736466186132560268810871192795789716906670293644103314826545401179809336241369042865328377089292247380524604411670744020041986666391198392243595287817629713171385892601155556234059014473985346274010562430059007215001894754491861779654853635622833698225661155370726794051115463111059966443234802479378681118126815547960427823530059659494797554950654513330932155482384189659703767805650934727587374694242694760557946399720073457866408741531499598733316704205798001946089974129017969506187368661881661116274932043957124277026314523250085135679092418130042370614417681703543041540351824377740061020022991673754722511180112729635864608908931621747210595339088547875004296330364794192270202726333678831576753422211588364473793393795723080240726079080874332707448267192841264800454186218737405208087661198419897275846521691580039516803659287736036280189224385823472294797357080803663012130742120013837142997482016481796074058717814604585694885971938057634816311888350226168324793916788605326911015918053078305616871857109618949301573213358294967327625420586122259057849706683562170589025367302456360633609446348794803762552573069802805274518422933823460651993400610927639589496419866989169352993109810219121496724003520739701165523794074901719471844301983442832130497969377367572253285890279308226996302638901559929459754484089955137487271590661552003240660817057031179226895441463534429260479443972606063946455953191586162363816557130159186499597423251901841681931379392766950152089483820710670810268256015673317978714519824897785543954931226115435100290353069719362689419331553745869716357763703205988797732376995862564460250319858612523897082237479332923031070392318913094491555497333623381140519841368603954219051485997076996319819498716423561031597703170107335392075974558744043026338288746884751020764715867757161574640516848671446988570190544749469041334748528802919583893577036194034639372015108065250505041326932565814400653003694300789900820143307898856502189051494755427132973892444029657953560796018367630950480669091924240677862169026834217156794816344925747245316486073555409370549370567217142345229297246066027730198812521852997710017989244087989416349416316573849228453755480580933185190862930735170773980107361875334472912018458192334071175101303730913979700102872823260896194210429281708955719262012175676672688683653311845917892887628323466190069703028563039367187144609080135722496764373598041093434974232633216963404937903912693055981448808815438138574544011984986695855610317033476823348271869157707702388679087264323808331357182182671679563052580554771917922918803238275648398706966464838645748039798547004701835537237810099601548857341961327484325916164646831966753535145591896662199578134498327839745824785406306769388394233440903505941904733853448404356911018139695274038886495205476194748395089382566904802784479983555030013057034303816316301618535251753791970752377378361888409026262072614172844644639731486496580188382271502599580821571235906056317111404749432836648462181812368540469658602755735414259380688903374258525853230256872834109323854251582193633557016590258227732142605188460587493268257950651021122464118757629381797411029737111776609664419541757238134142855270512063795492793911850167720235628134274987793340233873161854637636092909016006305523452761383574455307435002152864528391431492260774996947090688084163881579763443189168906746392096913662268981255887722354968038399286083259576617817946327940177106935126960371703937335110295204396800235400066490543591339423163120670576035813342173725284907215482990672790107632924619531847639938244208984688664234328299382161595123315726564228939919480749025236113638319369402906479030496978732149076854515326590066494685448018656743408940549058269333548029561773756697291281216566305767666928070345975522430066865796664297964561952291427559952823983895309498303616003819417682951221115920097480808175240176509525749808681797666756265128393425318851603291496242306426120123585442778792878158343097391901588578941979966197371391596182478842764563274303906635828395192700963463130143821323786814956256734531257801625111094202980682259352388366701340798435903562874621669836107626266613347223246948524946393739899482427661541564136468850077921700181392422816082687006778625380120687241199651677888533490484653487257686833464352261191423867969208657441086481263017325006547866290156872064652321439746797681078176509904334419690313114734727554813301838196303720552699262220958241566601439931110768458955773130119714355843418601502170308767919163767919552523468178417279670595175759094435609586778092832190951489045377840034549917390578739886500425825636405068523668731179746122360761679985209471405530068933767315896078002805438182345353139434511094714450926681986644572926316708115010356598620621956187711940332023160784735629368127270000372551550612732560334607403734906418787387881707819689236023973962032858699196231218952698341137007825219577069677591131396755806439571622581528853470014911181296384900833481456379884470942688454029200988654438797093886983493690877151912271143946315560566527774300545211383646862539643933763524914825408887145535044061348884831997580189088657818792129865600121252798429116665783400926905394032984385480020507301877722336761228576848734108001188583418555670099336485410362311374184189165329095532764778858876152764585263489922565464707358923950978947167007736703535323591746485426732591402096056720516949194682465247755345265094476457719116539112044494791600998882695409213325075258959746826804896954890417025802979752884933318932034171693285134628218587957496405680555966678587928911736269360221733214460581005694532918188929185187099599553489067088718886496403360650961001420685308987614000800557986153754615471919691698306027570274598173214505891912097745895380886102598727171396670562238862490242243920348722054060391256130527199474153294723480185174279665070774858944655434953067614304553155965392276096354437274542369543286154163948857164883274871632728121811897213603037718905735085688242163043178856163822486833459882224978528023630992702222598874385087943615829316755728229238497106165317465375738822616117429348625198856520947952788737233917084952724844893019817710272120790319964399048113295080320287995588899349518805973487140143311626769031711187248242422861207494803027654028603144371542494634759336332309909287614595792792842463557302345421005175047397138242511229418397524395238653343363191092222116439333030455152205014609006516546862316230820737846549209741549020752464832184602287214192114428682367861074087979858841263003417639880585146400652919388704094058614404767371165156165101976689257582691349905888435837008295451739368877026449638217374428453662207389374927260313511488510059285285578208169200942808939727191193358699104124678015414400682117094441877382209472102274706801081094941432012308986164616085564062098804304820450899839708812138732068766991957645031754857266377842208560158564678832421189197157537279845319164899987939792785037344216289571803886225693895011046111370874440459543737703415212283952419133783125764714510207697628223367693564238938859337285230886558106152444870940816416241464892207710845274100351449050122488901497164577858124341647306719382511682132510455103862787757593583549962835951837527668165546335861730726170165656347331162928481833457404124569199314885112241207297135967440035266845980144466800084207820198143140884663936658716265479718246001475395445453992042217572383823216996789120776085785012593130085460477398012241525279489191511670284050652632317830381007063921639568937507731699178046652006287239753885912780382325174185166982522939226823348098395454389114064042478855769460486138810593922359725598140100423277073116636645101479412675138646662766273501629766445320153082535244349143287376340250073389852113626212877201130034415827339380531122433298483196834557229895124236965631766133896824258434059781065356530532426031975645912380376800741484622166023003926087942972799441615929052204638990182498600888271154462140787634792198637904389900108800115198644788768502602994431076776524903957316781899543017951833842964462416143351120146325738898717060168048470225975585663166009392942666553267112552761542080566028041454062390139369022109668038082907782201407627648095898397681223436514563829246173352697943137200755751922296584200771238697763540081349196124240606992318262231429154587715820253207939001320105216125211896089016637051509384290754194631025108980721723550264908229936469242753091868563868268972251997923641322564524101793557120390228510380676355478585719174442953325333270714505884170702175802993385270785602509183589268690909358170290721214390418613635788343215650177715526961420189266593465057106035313061110046269895118612116564677246688196198029860574189330475075666066500446336195761413728676533121129970924425928582171092123888969325019757499043166880266066647418861320104590136864166844668250675766974155141573366463507218903950556141113841601560211337886856233854637952049822723961512436327928739586517541090752998987978807713790456319090135746273420653244765277162046430014502194458719705139293896809545388342008681775775106146468774555273650331378958675331842698368487449720420668926036982721077765135596458643475195675384359241303141499975185837390079976003937381632681196664316480413897058700422162690191753939372491878528706102128331044708800698500966550084779876058836085922382363814126365507843778092343128526100686256705736538469534756779602460415537235146145082243933688313589515013308780502022169707371744861600045143357591960823724542499721498380487778528079962257894618506848359580333805054870308761649250469760028402278551460875983244708045915357866155468358895500369017272081852403841664583852386224854891564913683058588097134261661898513708536550732876696153289247441116217189920549113127607481449093671389647559887883017761818570085660080431079730007178565740956755316268654672911541433646771718890103709451434890055612932063243270318376581701308998778974403001007403096081286489970831687204367780736881905607387918919488252150297674024050465195471508135384563833969383177991735403902131462720993787497418990249647032528674677702013362424307744222841348353235011799525950662956523048210097918091389807917807030944889800302664547192690336846356626813783671134109265483740711477604951859247244972822309903324680150926409718479271720039876566691853425461663629491192006501235267960162143348055036500247695131530554655790542646852067077672508630837325483206593880052950105223224562890250482995034258493598456181521456254891907325817837832206709081859237697405535781049532177478576008518086476582092085321522661444997203089099732144599063061362127808828088912414409744151566278474572493031650481867429712891173437201152062004160069141161123558802904747343398125489792962543428463123006446276530699918354568704669368474544764541805926199138719092206885472560145129891126310470405402862905516209087876193204563437732651780924527154347104596914035328195998542448699432644080193968195027784564766032548199440612945708661461849870537501920468319471055195245060066681506887165063950592286803097071676699131802290073310981287696493662947245921243503563446610895951694521586456320780880182836747582916073807499840095153619997111778407979585617263449684789893195898228347255548576730753371124022942420725229808177357029214617823940333093736073491889410796025455612417769087442264605257454694809762653725691679683585198108723618274086740180100067456632917114561317489738104681480879909114700018153495797656679736521838828711077294734678504708368411121497911772606667942380659067116061642043560473413635068915311472355469434899037678991191782683856307151850215028513887382336088357191256730800845210983000394456917995993919086104488149814247623177050521006493957569415510746027917634399743236094446842935859384669398070573729077441233589233781738783599648212208931381059078487313250037312377511819065248096495394018144481509541205052578277673247593753797837533168537714107873118178104352179879025809228956446545142079732894355235388869847363949277352391542665065693223316277971906691892882130675186565305855302354411231677009986952646491211618495705596916029860449876227437911937726076432089479000167422139150668071226720453665881832596861382472568652700718650646919611465631037523970472769940241592765140176174234766334859370815265086756303549070265462110485475770580985720615498736927681817448187555838274000220484081865323408311352332301536050215774230415895892896422757998974870898923797556520788776623661891791320737816121972566572559282282800625000145313344628643916155593513648780952612371802372352096120693354372857268226630930452093247736105978152826614599882836229655914313593741884364316837296135899461841959452836613606071496986575865956322163307160969008769710900589654110819310170563894418751438753250087136377587179865121030757531454851290081268553340721507409759660364810757972507762332534395026961908821994893139082602273971304546820746895553578015965503987635529629894297146746379818160248522737912360306915847044104097835933928190346927702076409256314249849156975727057590112385985320452319363382287145305881678823416876434895275253581185967265124725931890753503445473419808672638897601427466388832931266442262738865062311649307906901795669874192764100837324985999960414808104166726027045848322735360247504291072022765207911003594568317472489259300013803483864491384887267858363826615159269759939300253112945798946878579678571745568398177023348830832481894729325086922546982498560251764430643836433025273736484122495550975980687358009972870085935775119551489652828590707206139917917894874713038956421346310391721239303687385995417296268954765585578142597269925779119605383473971217090952831636531419379637124353224087928478466244915082581660357428113308623451419880440922445332206987264805214805159903505378511067891579003362106215652911215205294082634087833991411593637889322426281707362068359602982983498317078999409563194193259410208048587081167216448165333163804359326635424100459935869362897853083817691222358400030261170512826946704092961181558162928088712669461969793784108372449631598825761247005102473319189414248029043296324883112204082772985667641561244519545353392721785299164809937936442833682624024878455629993239524512524134338702160243127502452847679142485027703355240124475773710304824390907511162836093433939955971647928410064838573002065900418968664316918437399731236191715778570423225867273585488430392499892085179430662787126900384923477964120536114740799799006539872369635563852513582599080040080501989015621015838819813249420615620814022525190245173712559980626932419725421179336040878734705427733815356985358672531591809267923756112448581761020649787918794690522785169901598879449192797573370510523773232291037849196575206336820046650182021135113606296592268412871869780632013953108224369378827028011904362613675844279994692655451256214890261850062587188721704871901203329629162928842074299143337767836019140210250929473644703438282696532233347831974863761896146869260034763413640297728695183834092089903313214893780679991225881447887531126909583370628286240263584986049144473940345611307383250697389990237834186096938409077604232948184762976065629285486962923416834280566815087280692126497935946700950152546210545431879209209915563103294594673721841581878651331212084659495053968394874608765527505854896530217150751725590625367767965561917248906884645255565668857074477790913252316259498679141753394419460781967261445258507968332959513999076422057128150258415402187001348318914996663282345964669546079352801601187149753589385060332647782435479970553026653078380237077553465963310480841552298654423897584852450653393451329756229933478075743047262112359138679644426639306521944201006467789188397553226821394337307912752889727346495688042413989968351949559791711451815941386696074765113464596627894059539664943384558777995157089905326796167039543532095056047432836067083487536792942641270773162074420650244268231422366679025916073230778919560692575144934847441684087248293884802006339219280167994657983369857653002797933891870523070688852982861452701651677817880968847180316904281325327556456775493167884996879052060647940630971563468555045943155270365528776950332445570198598414357359481025000820981357539186851973638435834463713163247268402145979138689444770000155817040999103483928314865229012315020987537823270620316630428750534040017241548641628965514957370713401648596752815213244087961109294329414401467281200243818140375721963638316569479869738991230900607238449324527685252217935136192300151048750257753420839823552876481235637060027995114304347013127675459785292905716455456431960114331822936357931894027919775166934637885247159243224391308829852057882569016788103843141122595230694870352126791620281479318899570260293804308944295032880938002445383741816320912663002673368120775410641150033437598862925415231079895578064729253093604616471450802499752537178078529346287029320275860076020625518971461258914458658282899509526658186919521008190655670754885359706323790698645893778760597142864479946067442151777972447375463372128518531767274702129468270310508172205505017419498488063053883347884801942793543605850453850425780840847371222870174645622142669130421262198719330377775592629128986958848359697460844170513355363893274501608650573079900283512336389589255325948107805860553281143942363016941789997119586463866793816884635519842427428311724508776870341754849928311494845610086943161946470101419705085796696898311690778694745748265359246617947677444630872114882278916560419959478713828063061294285167387084250000774594715197408276999057228997290805419117035140422734601549796935559755926729435327750258578462561772186929998631943366901815994799981781858265320398308724370808977385592946247844136198482840629965794000489305388828529384799503003995557054698930329188199420028428766923593151104574269423090550738626480742235266208573566835855852464164226328509541720743655859929376122401835155157828993684432403059173691051740665230092488527645645424380930563683857489178498423487623654780050561221402257974916232324655960974088517322330391004728653939551136052667392485908168155055256977995434240910653371918513733640339763971185592264121994776295326509187243854181793643119906706759384234361733927314567463966602045302088605295299662111514075348893849670513095652523318561182269605441884856194058536488152820686628170647898770437128378734439510116139919851486050931857843874698710306203328722721639728863630295852533744559375494778233301084987090862731103542253667177179146750594799752408851905268408742042772408065766952443297527545381205075370072106705518556121397489557248261589329202861045996659321221982536496998893520419676060311549107478960752098334862610439841247450324359533906227000289869319684217951022384254943283583289039814721393293458153629395354110417307825899360182672704093410202764466710141216393056502310176632670425663290217075730331562585460547613186338806021362966610711483966741176676079233587384808832360138615750045042369307412449811863136632092672052543044400116415345800377256049315369186676881379429358122459808089462798070728593490397727471235678855796053126508971050801777543517712636697237818566567022034387016243781175303708779247013249309759826956286659791476688185392747009086205449411810764648367028694460457949104850123661565986414685805185678796039696458485520334774859068280903614237367207472309325495865623742598015475622225469775295297420899336792458197607295908482199530434141705724649779721141032952914538391246609707399266880338892020423033833096952294188173336718567599959047424695367202437224276948617955313036087246567918470682182590110528483916608237586317133748558352784204781083908383889634091392683152763896577920683514837568088202896790300901091677551065692719144659846686493188683904219141073398759021941954789145840794337427127464259772237909886591943895674075400926841793492297075036367833494693926606225651895530487716776198230042621513504402140448230786858620450560709312743094505122955862817324387301352112177805267436837573976356482661977239309316060331795835533096453535976263276352880508940941286934432093080430036615171021438476279973295317877531083109037232853837404400196721569835725429482656786791247801435625569622951479189782738464714344998595886485000360204931988035975055900156690044532897278598210933843737017063469009407032019712569362910882112079005164974104242097517777865115481992544558285956148710592719188992116087166358758384257825825346205458271099750869796251957764613751864155883764854538711304237682066286258892056106025005044020369800712518072625010619797709654867786733388289968219487116460244149904289746827619142419142059852784864930824883363992968694907224725933593444387950140164445909735875223142968782128541461855206477020478013258868925582404223085849492700135937857195241766893002370670102357749703591549568573332350809172842533226856355246114558912388377793706594049372662635300886802283736076366700892737962460211563046658884406013473694224011633897849652878003167683236021937803342242082407902180748358521985840817596378482534942906599529562165306855826198540275146078593051391233470456593908127270843628269329299805831777286637754183914148569391632129246841204184329784576871628446031456040784302233056957586608521691834554944179126934267105408440225650003417552139759588360532021990717359396412880032041913117290505652549552512648561286200994017062664540832364147939047048740136445963368537144504061127600956207693222975566810136845291547032226061816698037961361582941589046830290082556502414207207769481520186990951297966292900783348220771447364393811656443050568701084288473354592875725059424899775077344437400928823704742754627825479055210717278004688641114670105646123661224150602317656740828211361473440291010062820529889169955260054649545067220316919250945194262218512414570400630812587347759481023106161786691936414277921013749247973020139780203176509793010440020416428685050964573154181816387633904570754669789813057157577194785959965845906608351356980132735521320789871390814145300571784237830711416266842550158826567758359601732535626610193851036233725336739438279490261041274481137400564548987935038842674028445386008951218373911828590678690230975480967632231027401273167678264121052352880932561443975597512832511345469629746660022821194807768526097523600390168612858290759743713075514379790581030473650912616794124689448794768946448923743315643729985685667607867295930512024067131886346347542205876347401976219424372490334290537567240197218680147918147799808628578676645694096376558430352924009591683723633002240167174711269905934752544839347948104260082407246478582106768678105469932645213958641581891119834642476145417690364502147433667729818777207295361790849904101182163995548947411047582651745083505914420457351243671684587441174378563685314611081614786892741700168224683012027854318284241390506264875561742737344062447595227041582108208310400535115758757342708834667249072858844821973478548784383403622016797576356859125666746778149160881231240720362622536188023685481916551842070114582554528126755488027266308850993015042591192288512592857703076600543844446805263587683288357177922614554217657052324783759355460063976317058431891590868757280872872614044222903754968702060200282423106979342520765772238919218232830462332990789269867304176173905873827690602931110919129488287839030704816336005898258305443123147399073753932884560001260705897418974242319698507986508833873756915474418621227217719014181869113351178286987088861014724213822085605032513731599348468225027476384766412433900644436340924767349295386316783014515604749717322258427911590436642081339321874452477534358137388167765058463975002607502201383676165280080735973278007881442856495192816098087515669761737250437846992736843931346139477068725013517308226699416922707594944239364595821357436409508460164526228848302153512995175030063638280222861047165840273423584563274890096361371498350016632076534101436944866958421408890095740800535591090850747218670426423312724332649631439238354678155613905376911325189519869258317333025677527648810809582379611906046177788042898944949838007751471355934939831191929188118926523373419378853443321114927214082644478230058904895729681209699852967495501945599544555534186946370314403089559334615890188167055800179945005751850504078718369840175771055504580087401664312328675961369564697391920648065972278022156980629790504434655741582740389986740660690807962043001144411045112380031360356728988065587737263648812712373901813463862721828570590642105303818692017149049345882349626577794792995630201725737687796733388376793937094584415837453866312314629758198580835306997001431074624683003670385964094078903651950061963047283311462639396938618818050431083920939854715130557856292901602156757524282742110871109799619270832274428268813670906177294635684762240568143056938325073203319964346736017512823638301811267351738629818541110381402632151741384158437366226222472735164516877780908416380244888514358414665023603811766298513282754654711601310146414292406805787331160787171390390100498201957280135927601916156935958134351144650421864033950714887509073475698607695587411718204063931252965640361817261754323869909692907686540457490187992733981627148748529617879422031483568382865906763372031695508137292769847860107667061843093047823451166688126976013461176437569090960644776770525858480928990539679743977252644151248431623525995160143479558194654332793709405360167125678096191496522547909792493152760090801705925630809619255606704637622714434504958234910539757056041187026900526697036805000695577364040276147445850113041552883936967560482385914754773470126215897110869171662726092898133854623416059417022381292169205253051852139711223554713928881382500430463760096365323350364872740467528688214094417734927453988337613288747230367452476150701328577390239818217356678904605712201822951343979760169654576847944782062135862855256478032184481685673863269739352311172982168112544327707835304047573755870807910262786853906461525798157267183799267315636324216985240730094364713292238019283516749766037012003638711111299671515181049990596249391569166987779653159986161226196274552761575888711646297614405581161208914343575298207514369554089673615987134512636470277262798196795850213953321409598699055059790870202394841143431752374200370148152944226067796935197348025859213318243229991714575936042720207760253617602286146292295071107955042960200697321927973928532804668106145455561316046753941809059839951678832917649548202004478367249870780842060117210812588443179941342905125593814841601852676627781421756178054006314764101691227457113632901480461720482531585245045681954457436546568553399238505727982383224830143095085385196489788455714597296233339594832182992791380288100907696755762500610712776659059978046531209231012805354600548225921632192353281732521681549090796798608249222399909819436171703309346933042124946851268699435913778862846548998527200109982728241370208512699119975966138009285074978246932485505109581661494681991357290298478794711754710183190281909917835741519521354544841676058248389411418358244106605295469152361593417237946093219466314336700097118557364035548931367792182830017843325920555559749170163227512218414424982742711651522784724860251938610534281235664437973073588882692488360834643518619105040645855145673162794577717378190046276262430850284397986280369166528859093390570136792684093116645626128809994630161960701173473882125407627405483253467716890879672062223680428398407402090504759244505462506049398519061669044404689885475300648480036692489957075845795392785608597808168550974519719900743606472161011221600965195259886137354618317022542198850759916239093892618888592521381694132324800223974038611560507811369711131026415324979234201302545034024176859640312320432771804771353366808676701055051518836279675786357090972329936505026936541869730966097796920711989658681109748229884292108258991519807557402140791772970062741956929726390108336847937501950997437959629414430326372026530447629772393158467589862557927946508499703415809679867666255280880472769702345336262168919524566396254213663303522282568055595163903247756981875720646991802646450164080453181378849612837669230103711116724684659720762829057935754399825873287257016317138683186867966462089773156977311545336912106154109674949726441157063914696304122410213218530679166787409402386520509990030225626321970737843870023421833422345242141265149300610774046224629068954380887398379700318105729787022564614442331689679097650159579550650501790644996083209183102297660382447267346202909802677122813795384448795556339823902721252127851743938686632696471524986330909616824446529242381298599605786040680914932860896709605213777363232194111474232469604716489027387818973100310372651614659174378167998469396431861540304636253037614777052470148861351972646995174449365971789556915523512869148936562035131534183358961000611296912340736642249632006319639168911764877720143575057349389790575192154961497845274789641865891195648693391128561473156560558783127213079791645874329116078950334872066884243209329558386269321894446448484559833146622687148905348806490436226910045923854209810156924143717833806624248090086077384217465867675032404645701358375785255559044474134835049082610989320772109955289447142955216161830756553951485607731419125123982058482097765996199607481623306395690387994953450723016810434749574890004512581817002419345537030571468995122208328501236653663076643598616591113034955093172526616839726982920293992876242078050314533764582267702129593884035663878113989277320416030867660080174259211364995807458855372542646602065982153923127865336130223213032576712732268061002827005896998924878356057619253389212586181313049699542660715790904990337902972454040799807168530650453871808040926898532235892993337880834483732458566821617969128655753770816364912331145596621674817597955767861092695676337907075717277354482506013031072174341715548465534064562260968111048881245700066319124782879723958006475148335989062027163585039129213006900498485735537454948641534319037785057455276433794869463450271178257893588408069111586623316471627107084010387604490377141981496138765532878392468517313905222901579725365703528513719536333144288056732273471350333374649427244690579171869234188023840516094664417072979109458171775652823743532633453637004027761045599874315766487778233346384758458467016356731106856877115854095962782603738906880009825152784082930635439482933882240995775616696246094191319516235733059665987012796467674421561798232994138448850797068368001484539910346102337650684223214141470137192584581081284623340300907984637886024900121284485296917619994800690118462375968539368460257988269646481609299292343045989136068131001816328159637650283579354101193821346759795872392860708237278884541398516475044581786447803679835213325446256430291414352919104704868091383781242659783793761847762394766517125007425550906721920437952383938163521052507753676573054375980673506527604820090109195487422730159536678710415201062657065573757540809546184463454878890885323099291123555286279138370882931236625835110462686288343296858384239662355554798777627708108604087909995582017249481899545213839463057249847517054341909230735451043651474497712748849522120643507592592540107377054784645222555912832771797813030948615108379237133483899716534808157742217426811164346269491744748616234230246136343951372832188217798701659150510632049820662962671516938869740975167428022726542570444429499007081083743783620188351403644120875409481782472402000420218726667989361935928381149234941223880874788099469187058607383802700768397308267995500968941340717010867740029309648626201132957890729779909718797631571510972519272720104170958482226212225133038836262088919992703332435632433524392692096915170867525680564663892509292487114217782244188261186858523356064493075761503148045840136721255594975848985965115142377013567731287647345359046993979665745787009210063042487671645559179207950071594928621612725426152773688424418690558816310508766300897509014041443622937271506016570897246973047839282247736635056955131092638671285613300915870062762813277218787842634249202234064498390249615089540516484069209072535436563266619289529174756084762414178437127605101123159834922947359386990417206623289053214718460566176118720886175107617765610116862918530695203844026845884122001828133476902492042979949619316354630172050696132924599952814660562617761529396528311677598001518430220376886672137483967559802880267692687136699700695146183494503547674284510800263809576978292325048432802047645517344798645348883467718592350459641411441687699313646141092077833560680296921187268682198706578421817059315673998612537375762865173514866968581134097808741917786104045448629493443465670102015377754363513084151829786446766042921562168208164265041439598148343269732135153484501661195830257682273391456799216956910027748387257521027025173641256726869826031638791307907042400867243625108146964522960325467473147878823754440323662439475800045250561659708877015810107855926103778596953078022501580336058988025893500912817230202237827435992923053997480203818599958878457102955104581491660617325872846680569182922017687459250959998328521242692442424772003863325292544395764633001816644343584891649039441276972954354674862199118356267146028667600211688798102960277828468289840363633604198353411794161067748777798231029120261206897466977647334826192766612600171945310126597931377802871282941791169142181951343298865175296761098365981764499326948884384046243804351258039880796058469652674119496667184826331826319694321007728895123456623441304590301386316008694687735394788857513961278189334197802552474476813469993742842975575494336594344856074836951965777092456720206983285192653719768794201127675685629101680830278819989635921614930650622963490334605730275453607321036908394386710461918658115289594646423533548269149218356383241440093054348234906382887653709036706256932548882205344431028533730640319026221071746928905400376637498911533404168774872996897090390550566375812691603500373387900536539149584954187568827854873172435611772115208734757826373767412375836225090150665183965242834458451772901733734332362096782976426110922491146460889395430410945352908251641833985836422162787087834377421908782679696900559164178500360742666889631223154250667897848961903870526960343420936314665259448567051450672430986538240386314788605964111475113494802271153917609194183991949070526704880362295012105736770676886722281940684652649898277435898515163233895801237927776095248452727580382475700478996676922909447672026345854833570161220022790994863568940912302919848800029776047116324906491552611106289011191105519144079322470382983212231280925439974772656685454573632984889400566555692937974516486390347860858034743399538741982534080013609179927187831512744128593177174757547347590325063175784128954562244284585636360694909186269274953538003369441341584506909926962765252374679835685317430498827007793943239962574204889618567428407084619826222920513882779143072574758680779332149373929542743527936184581737868467203901326892412794155544354410433255143599339317443969107064380662692536114780552037478449572126969346814229681638413835551338398610666945383764369486194241196112417059546462971676821509998286768430198197075590733762727085232531600057990325514313389314283861496623106474905821068231270395693255577129750177869399512868174725762370432686819457020124415238686570433529791476269333761890145981258128472097114183752520507502309279148582268576652076169391415255319378084796466023049169036062359891741528856783939613124641563948030602014195934049230523293563765299581318232520336361367309875325810059648418883526772390163196410470213337656560386305085861381398692958750919127029841109054666968748679359002714913535974552056382481527056682134575593273440124396195482260104519017909655935882422342214316513995197128150403810678500821869674781248424181518789955461043079593684769509586819167278018645210224795292940807125510928964691543787700380703532900257429314733948263086919490999374007200410369358751312923458214821425817153876389635510375864039614418972712578817773447236158445296547643720587332502302378426457289771483286788016367949523084523170021798254855299553957913308400026603110652765609008372824072570993458906746816892277253678946991623085003307755484070179384406619550449622342571128611867296164129475648882621600089774927812279043565352884722065407778790374569325327527210616566348089582449463218296087128592959793299078503189014712961839796777794896992601991993893423543685801055749636568911469244279976702567841950083566776115262934574497717933387115521543815030983786606138277519694474543707343614983706119335496133974477665230704358675120921526073543715512793889407669139237824887052078146621429759700934935507212033486668718620745879483983274491785052495464559339154746359496450841863421557529696147064998654935976592734381971783044824301242521038052055698396887614501237885992430658897428893197197056799012093251583263175349653191378069011742159964254712476187452257697280613991939374722190870970947326797767334045390276247362600234236745108601862041423425303699209372137629324022102344345129828044595247172106528924273108355634659108900111578504203647323953606973284123973364137194201206322367264755484390709435748781986532672477493304040499088153539651267414147445600931822215781206803608128275183900139581607661617440903804111072583329805919992934757198362280928993673748920988665541874920373148440147012844161947435637955125887839131281041790151005382452245084995777732280733851552849137055359758466652611922932609428419086636666673959986006894523413552290503187668078120992356662124844348951807546198386281555059075643618951050364568243381488028189573566723012717818650650551572580419710859212894255325118386173364125858149738183408775199728536904902611224513221274970858818956595949645224540882747977772283942835718794834132455425493028036117671941006076837534146535049636574748437383383701163810491327149712313541213906585170796801239194272629495921606157832310415125021901744543892234159913118558481933301445830492945493800290305843804933237188420745237801307827601765130117253186094717380736253994671053290470146345744598720998940699096048121525960262587789307736414609969188178724617034628669523526481661721448450507722840367348253432551753894848118359165840116172696363235673223809380661170277111182402573338724212703586325070911050795472413935738552841315277978613065855477733538116942268481516923755834717206832554699339181527746891399813732627101573623296862273796286792915231645026289658766885207293453598123932448686674005072246350433149158807399142249800993576890820691608114339541550311735206841783256556624737351978802516056846281833927114859929528834628591231139225953500175293304759743147767418941657569599922218565031865906305691694508086862450236287138552190458485062572459620733641534817383971507472225325282990545986651619238761336113789084337302485935977035012598404495375710641709955527828808316896670795778060406262170963252693746783537514809445940482694788200092278649883794917175205941329546684834868942980196549678531101316375552960926925487964386596076837133592158878065696534950215228163734420136428670624845164056969117153379592636647742249638626499368512128657640745274730246119918123797686318289143987193153375540174247510984325799034096192656844597350692920510835281282844403119850099803893065655789017674917890951111230521758474235216358524565754169799252273922320768205445611075322297938734353368195119813307449905306134140683308121427042422843081516853431785335728834295497661510286537271676428241582218045462636256152587023684725613809013029388725719251744901491164266874092899831744438222317933123932203097547988217368269122346537906002376132224421588049143310704763227640296172446635488946684995908216807027227091891272090342860858361966583265196489028382998627048910439354848984250254993107660746923337813550636442383339687618468116743427855665973936931548316348300273909533825034309324157460805796110211917980798078430096217286901472981124261131908130277943261310888169039471325421289411586333655657826530967143218152764505359568565507589545790162573469784269755806395782774544583737975922183464249984064772387657050392890819776591887235481620353538124381017682898512853582461476010764242732947827144404552063976094302918870434432818706873472518636012468216491014225490303433363234118025832510225396877493932456200766570686776014006462179214508845692494273879551121691117396474431167332443788212041970942251371304781254782944066309547136466787035963422190285757782529777321382371587501669542890006801268071277294841979368455155165527204576477572308863834003593147260401739284993341982231225760445368150302669790116893344200340558921015689104601673285978421336174110252798179741446143755297840186953420102544028722233117660285413638716252974652920121813334475262448837376507975713726298651542421161662827554271862521149936558851623987735260657309877912002759575711445979428784143691808637258354152037007433349074446585859876069513531784551122696077298987876196865801697804582164695034701333850225394467386660037937780389862249839742923019030354336999561075552683683352165054760641624767768548554252082670747117722777028456440409986456156304360764110765604030038547793565567155818560189377568188896907276786494052714835818207244089833502192213678529094882715942700239850895471903007400222665258653760026379297074288429883626076486303873919025568180812329167159948514893217399505767839011257996713320367035525075345178895890053713504511783109323104060198941131671815762014891579958021699478867383566399971742598667883625013614396824967230998947565442215551248322654296991383876352340169993560260536318610298803403958923442906913704093638428089914872130934966535158477200942593788665902967752363583632548576594465282133913410062109557551524604432241753200317414425111919375647084610477275722177600397478801858760216692839812795897387023400965325052150963817008795958229512187804765866789842176042712601139800782759962074705362900794618286535157279139210072231935318480397124664148272374740956938978748350643370837224811843645778301970513547013699648641740785583484212209644538521742031671338586032342057021640064253023031306184842280925997550860525251057750933049824739776875934965096006899188469077555272399986601996099766660912097668309316033748402212549524502170769774664670379200898615963710164779092940028954345980975638570946041725406714261117712517046048407502144293628839408361752523198407731258097380128734892633987255864650848656276616969343597104036017327849813419815972642625137263248881134665561062111220382408774372875349968891781602901496517183528710765784003283640957531719909721760408802706639646802386362748225379068127416361448084658301141527534756685415569230653880004775790078754352689029155818619933169729044151066192546942862154202854246944091152087806874402076465416821460302447540329458447725624940450697676332957542082947449345172916787314542350544895123457454868741860079149827310389346938247918074093629513149323895448394039080463004371089136267933816023402761324614157002920392163627816711538854813899779908839156055992519397153056637769917271951723405763703986523145540539428695693232712722160914122514325161482694453934681582257149791931756088084932035489611491957690258495919773495220892487906609297530746498416122398733062866897340058989271849689444954992183456881983142793469163831072195565802582031134060237732240167232139807722413581901478888267589117738204864198606067700734794132531558715010739329404979082942354127852877962681500612720434042734206897016638015474249978799314576661486017209956059481963622489974037654467428009514599505727760801248557776090795639352661685859513500260590782281267848776363682632594884873607972044209066435497788467043808369198244914197788298080287772569142272689766648157683592467642437964078586271140172284748871188068403235341175802789583419503712698613366964918290138026104888689996322453955618543750884503287083297764844614560092605563594347534018410379638942463796788034224206124296357959679237392308460200441341213378083032565661034563776779099284445874758598637451895208782269307329656964759079656672737429755173776011577789881548384623266729012854908516593124406359131583517375496984624226257157716298072267003836644761099235929607109112825635794725977849545408200122536413564622105553219830640253179844563243048930075547012063116213045514232178000553810837762649052357173267628237063996243018166746072731531193019017714096882025703666238634938388224278344908482767363408648943338885902412477192011635077158443619051479779726467738390316478178828663920432914618715948169219149805660871346539681920719002709666262417936691270627460705792286696485117091760565544759590078175358042573829239674776252980310486200456922057483384334896634427953423914093773970425982647590222890540407434598877813921992512154779361601004356371975618136450723256846304610930791319682834193129852718949624458693314168929888035238571102319697044637463096171448378086440782073244956582061127931650727587411053904598420557022845363455274149663414836572293846909862629603884877107191792360895552019439397784556883881242547876260697718321457389292230121587190263852139262535826735584965558323972435880858180589945532805844070528428354705362132710933271380113243940291281112850395065679763757883260145898340297130660963752268579519110517511228837663033445610265290420631691107543081349038512503208923498138150715756420784447513246195178055633821981123635844804080229418593514570837232579454548780093509559162652992480832988809843830002168113326302579788162419591651022651215287335299723300560427403345598208658467124113328696421808635110018775276858401544323716639602498731660513333839904079056946480337877344084946212075129218489362835479961165473809470994707705948634734609572729629952015420723719233075587670341454097525069615105150256258142035492738253488988800268533252689011442898133650302737342379118953303039321360198661097882543381566798436491481991340158906275134409420406355655291753806057274430493981441711485502531008198620326211103627335483249688294381403272879317987163088341925334592752577187679063671932669610048138922918567519208118541170344478885437331183544929705809257988791292488673069499172458377919521769290827251188265238660025158165595084979788538845393784280021339868935660880444569008847690228971801832423981183162658216418025693588062558939554607246229798736644628445533081135028193191391117289468951301995763390896303447658835665693336975123267746527573797500439228540010882754992081188350706009345607520387513154819355905531121178025464904549351847954601745576948250215965295633120935241456892442093989573859842238032750267872670000158348795635454901599218669749342808272216686713314939955933285118620862263727613837933087962624627243098986733653839328236320949899804394320640466321935607367058686324288532371199501487946832417295181677030815257047356709589603360774344937229913099592327048242063518164838740417899119366650359085123896881433244058256050394883178739148812808452249340095159862168111911505327372495117873019335081887674843081116616746486712869632485955902293606166192869870343614661300362102253566604808962515442731515398211799473290551268862571874392822566971590376613917892177194595338028300406938617643381011117652985210437995416566419216651566170028462215087675637620570232206726300388169148729338805414215224791126712010041676843842363361060167744718158044293448557425129019068754731689902302204873261813603081218748181533836703976347288900752137663422140402615615478080105724869409110614375991820267138509364806459417023962057137343981509181917512773356009341677014045654658005428346037852814623170317329241820429804894514760178984161315184078510259753514753136460082140073968713893720234688942328828487414017981066277376114786535049241405755571787359150804931439618053975117187529095596521780503170184442910160194295112408896796932196180367152482805207021019174480485381447735055076268677983124162269999758060662756974062829370789337267032096755265287196460406988558054711780717932502582829265499123915343841306030390645320485780142611674490971197654443498095240742586886142590059620875118826438358290064410956070913654826375332425901185012672546462649261952998849610874875712925677656452784713666282638219594125282657667664996711808138942811933605609413040592144600928616981389509443288004467023882900389594987314588282346133339718878916158103149736883742722462650584752135829093750799430970063208193469191507951750882322611432751182815224265312765646053428484222966193767617258490536250865893109186647219084429506598942947715694309693698564287565049748137798867005936712734386499407615533271784831509984440037754753776491847553808628390399224724353826479479213521603122227986524120899352799538909225342461594250359122425102656826354794904208626270135863440308613950976083919070546238286691630561459532095821414813447259222307583715443804849837962931563515342707061381339275913412667650860995867284661607470352033090140546527711623112582659240140316454315436891347421475397453935614132031515090923938740122736826078809667023531290554308209414485581843245284224428565590141000462553621966676141007584298305723408713881361957682477088138297454164120945421929695772325203471577164391811977480752239042619116127151496301412449565639790026690401273153732152853803419051720724902516220054549408068542793496719890852086299829243484501507307692282260126273455145503743613667365314903975983669247638612036512892857134971335538612268800040192025202780547423554222791713001275571618793426326614666452564439783319074811662106623781317650089236374200774303294427243251127518156069982789353104004715015367818434748667629068218164640340185055301942408051725024294897164712703946502752904876225864169245632993525272988873562638445248487350285318729689312185904238647941797914054976932988083515430051632785480078074728333155019055918689136667674466275331481392001152640361280716772097837331862441117772265944989976010485155267410814275717971964582679987196858520622372508663098829746282481287132120963358184436868449627911019264082033360226909615112769610970133100292702499990266014533208205717339275624335087376234804356526671407240877648774955099911091064415377002746520973408893388577316202294006298202956620911140551078311670208189959169183938375128913307945519211771601238499184619637224919665514346028418354733668108898779586828973065215105399101919273812415394994812656983151123756976345882174750307926471423516086160614614336490387995804576955596834315840827140420780384198889105364982287607699947840126995305954058962052783038326507135496051001795356457641317343365342023875225360257148337425064583133995921233256863151934139351671376553091508200053787130418630672321260553152277551817765875768885346177776900272822457122611279057261466946289055378947733873042164161658605119120456461440623551725234525873305655021396749908366192231199048108171921969988044338574839030662005529691388993031736565898158360865600768794250655541669894524946400010054887837554380059905518738818872188438659758854333707481359642339984084321646790203023935761132211249983221833382310822798817234496577459378605906053707836213829283617721184589274375060941744672907849943295156527932290980827424698824613167685625101310589952953958779683197266406892535521607320340975939941871660288167668047006438153618251564340942002573203955301915814306679454050720246012124383074438547513059359335881696849025683284231008815792147763183033231736252866105396505044304963294394954788101220018495417958233702291164460571557811179315905088056122390221161590211569052610844804139448869704495826248833506632655333279947431119200539104406585611458510930376727539271048474088595525037297357889976902223641652724593247039252122811921490184311374814542093365979863821996965304843855205239919940883327979518923371837791169109553117049677578719975350589630187312348612842644123745027412821139247876241727324252411748549251274255021260655292403582579879695003367148173947946393268575238793624615186884632830669607578726118667489995786927647994695660873767857862488587615654357767554499264930327736818424578723017945061302512665211396145920030731149524452948413343620903378355315932912399272902363383278340137170654291618285365807250879836485787574765475555287528146150986984574805041104361935701342052354518576469618903468162678746226360536368317508062701957049453878443029515800153472307050153636609860189400548702666186053182160328804626005963745091868770063991212418732402145158085017964353422023591464391792033814257592413068063245714092209296080159614610709140720942140128702798375168567829013411947932756025283063823079925207624241344147892627081670915521676318395272337353104772287298895218647751473190059717312524981822906128489512048165626922460285043297508847073645167864969557159128886855830886528512824316622097134109404330000320665750888599792149054521327661814939536002716811847502784692692735274153949326526409721536526062863805242347315684360548814239280564761387470021361390614428178097783731322478174895412484171690798241307433916806210898350530657940750535932908655610407512348666265388375599907260452241639095192890048122549011761416928670724915903450798810170431080038548478482079245277591750131912627267725554575591958259426228266929885027965095054203896947137703244069076391092582611382851781266053299503132058884533286530139521883712406220663882719600091497911517882814389608257333469338738978519603671659543384527089644104324549720064076066219593921762320706781425376546914211326474871516799006490395880551439939290973484374585899156675902806875990107404547412352501739256855361736436852713184671770485803781446300920224643359972639674338338684360706941296607052858484309548681863830758675064381574839557661069264354299555567762822557534059826976663530753184829102808378227942612558250068293243016378341650213322732161701761044613762241601425573461229206305531133064876309500774638524120560271533649068904152913042678806013789124461996604046029959754422020159309107474360413534153235649091914942782534430557885676400796949773930222107885834129796752500715709478805667997622078370325145254484888390262080288260112629779961380052018606475945703128975466208954530256067181830083452870150302439976670482529945872916462906545863033408110982963263113413404893654445002722517168752579444448262636136331529985180536445777312449302029889503513265862532449580600870681933725649349775166356102593025323139668283435063877465785288307414931841034840280080777224658763320227236846910080666518531161538450074031508850597953014591062531697440709570989566014782247256260969933460344775276890875056825157388205037413974934381203789003450610125189091396796744853237675191284189582563437809228548177030722804331181105811544626368279678657128127354906861487794112001593622148552029751276320505902681771542871343080798929752540090088866167277746129135883031282008682759909651130328833808485173373807982035473905798992540913204742733508365332206918019607260298741430536948875958320116053015254386581973348110595095071081884969451194361648568357260250837865527753463595051174613948124842418391348871901071340219524484339988658965191962408122232848883287946222134553061536144134989142189194949985400164586457628489592403982711647301196353582059716819909305272890938143288152470764267885915419102954593397790182885163010336081357780056718828673701333715841728964051612176821569130108308618758174201643076805590290800147054196230293914166635312046849738368850172598044664709387135601056285135925851707430082863751242374569118140030905485458094777095829927624885956557138715728836043879721370484520072640673479449679506632814137383747069104072684797854988260933574909626590674894777518079271840190273909325973407922064664769858644161810952363723873454325017582268713485627878523364823594362696575812672855593043702639638899401217518610877357341288951229276748515150608871630828635651172395447968172073362967712050957495056532931809196049224969439216587725108096906056600782074248990859851714683183654707478418102064379661092991859393116164417012666753873053159052222610192379556051180430001294286926600717853729649169339704816727687780349921757632553280700396428167497020970578060777395739139621654480438766858662905928819156028406793710882324874627874101782363577336466319332626639391744062737254915185380414742035731061263732167540378833695783998767938930517536823051906350069868109479409847994050370509376447382465029989852943942608851702323965991136428567545598506824838360755783695990539872583286123737151034778726701167811699561289035930055462082182663715783612263993327216655397529632662874010130449873140815871307904886712564742097424022737084898668117154075924280340973321699514648470040164634639092112004681770953442451724126920880544235321669118526974533823319021350120084322315020443110366531621023801887900473707492728106878387623816374007944487427980148204472090772540125064853493926143035130489774059166877699152150148715577652958716795777639531650651225540717003141193493315615421117992234142613052276462399808012624103546420191601336741570866217731817482718123061535667040496486224971992060414549335090399743775937886149730983681355936292417883292856310711892263833459424846222267212577991119779189152356942178556992500932843978672907344668160418469078392238791898299686528092360060111997193073669711301037113209255737675320774910779865037700519462914646252811722317094112155492432711087881354256765425264800506955444661711757395639693833771147027217643059082583643185041096867398860537054522894801636155167865882222698456392635355315309143502996188860352849951962527940211259335448018622734286589989972841960724329978581075696804919460550131783207117397881988370777386301958960208369636685920396145764426515111064416294797693705658972724599337846205607724630181701960380535507133285335922085246597771185763741213123111791519838383667039661655244952658002926269031925585843847324417952272040974088418454178182741650658327195145775310481206913050575994920452152088734692547820161201636724554134769408534248219176840978363100388574005233248072549019630554954768270864208588389004821070043203490089285863568298104213697635983518230921320350089982014916628662070019972713507699235408621676416649649545959685115033970676728332705104623915757043304364297514713813270921715487083145895484538858510795005062806638162770147428571423628796146129412796249100573551125359604772887837033027759043843165269523630959356565003850614412386667055442593034157270381205912812350564023206383760640772326271060407601746071712996916796539055427985654262762116693864060582664459178902475045683324062504922436716282231583878567974815815828562532688569375670477485666738326550039460947647401262464317953089531014376103985893293909446316993866482445653746687306289043903324552567676548640204088361711169660942667664749124283613519975345454755273386912055515236748306528663807065576803352739063539363417074048702946542189422294223903221158278876371369659717755893297174164646211854450237537088749560206384892014443344930936272449610204515787410466936701797418712264513436659487781069507881378443214753961467032869217641215667659976383755665944059091146598979119322223450061302215853860796448136001313079303045817539512028375544083951762282191262658600626303056069706487832320684572859322650389580145803224538859497521118971204334536696896141521404335360621525096304603825846360026407982254252697857218888234115874189566254327148106042492651886899928805084297193593734062120537371204763812080440591781989539141267134680704733364885117287485660295900380937582410175394919064720139912402150597740542207970027626804223150535747033220765376129957765681069052178545083335668876874399186366284747275912664110940153381355997755258099238995097632138220221104086904610272118040589454146294087677735828226456819687340266441805465621312946905152834834203146858644091529198856568580330884941647530233737805128617294830781365755570067091060199377356584494896643626899570295383248019614688840104160228899369448705736893945415874804647109386103068334020547936639188689201245394097380867744869540073153270629089021996622294040867526941739667873375036670519622222024033073308045872250143674650380972623780812987832180014600215934540952740690908933218232463832183266462826798056222250198282128298935017965598426521429032976428154048882923029710938783749869895296224243087470817802429792707001436194730732272938636180373276235839631926639652221823121778545938057524497810339709574866688014347915579293813236289037002608877264267952591074545552263092348216805797787155426521297950709896408944002456951072905436586655989196732408219352790512084505173302661857936152032512426717571754862718528109825353588846501183838290325299155508468740170650995739762593027468321641909415152189991982901396126796957308641424802821328868590734027857751326029230044325938714480266992130503079162658838658016789871786273374481938741386045034283206091229639930701524945973893985324007615278620745678233162406055269546096286141288522689288986382458912999972768586499146690120240282572535191267710251804016744958423258521313282040758778570087214664299296778572518889510035623997698515956585257433384622536407069220796613766124697244383499013883738030338374628702821790958774164650318969009804201455323795434849013453160172737813281913482763560237212746336509106167681757133051107085122658574393672988816149944115642571630362085451893478851861990873213366598965628040406549628159434164831459463320717885663104313372540980302770541100875659194698698616687190928109287852718309995652779042926716434801540761645135908547495572584423456113193002103868445761937093112908649711478611900741294943810197949442755015551530106122761196062432976315360690188799762392666271924815784641618737992292912401909382486250489274650440381799357086980406354135954324964788524645956546793329061827528406791399171225914337442427872277225355999128291296467507460207843797361302139783913323943092242839095326052041473478960435850630949834842361116452354479850314292341435577744678503741473047324449187214105954043570997130833103349594498327905698757568887100105233542325702541695945157619044904552883640382113722511615557207652716912099287636124186589624678489050200445180858405556998818774749121331696107119965803140558880708064723087014967560613368765872814174930725167207397909454038346661484132862342371469008345281035983658677384245356634441939375942395349959814534495703058103679699121589907024394695217615905927762539980782637938523452322605293875820987955835475838491931579530351414333809595428761912733569622443557289326321680261671774773654607337806899474714714773320323266002209778665694334371006991620805792511406363363287395515551385796717224474912725829290117291464549800110832688106294287955657228729187929350279529371918348570153532520245442233423555559179916020040904207807682336258081523554621355071073965888444667476874029914751049906893040122889137088075024345974057947205797422306451994469384252012894496071296260953846278641546167020385508883139774144463982696642731461842826770509441445339808793385734861818177639106713463077871560081706305065507614782960736592688628592873475647209319404651157486339803423483848739857062086215222516942703774978919490221153985330968032487335490404660550652491902646054256214170470015309824591840892620487863717863840746779939597947872946037704525581178211041096675942209937323689390913148316275438309223882095000260486978655695956834521495984012235365641168029957758134651470892356215184300145887446845276335844772771664809736878487535054054558200631519777714127534927715949804716774769166787648670421891454956608747769505690772220719805434226874661474024710475348182972815596025172128068902022367046194497104809179629882656887178521962913775403475315329907397760793181093348190436228725881154883271507529125646649234765516713360797553297706530916964437269229458035074920605294580363404685931182066109418284680258281401718549367199117577684662927492024379695531169559973292395409776553929247773845678396856615832734781846948849663443373657027811223234700862784374332702909189326458699581409210712706905166571641728349021716051198890644144299980277455247324165765861342018721362851725148249401607787714088776354708981030978676647635471914313145254571246848568635262752045154717807070251161843025936294839261151767195567777537010275485275525694860786223790296324416995683589091243797063925778462031182568472875625430227042461553766904758881649357495876152895674808931707772084323200272381561428506065344922974406769274916650961860880536761202772499449383559596759628016854932668322233214913268580848499076086925750618758169229552222565337896805140952756671709662596491817070311135849864357023757114363191858122988671175423434185170475570882375016392013628006388132209073148456191549161240823632983211842639818020628940099287622928457464627539536608159694379946038832469792625977343156824732835658135441985348242949718637423770455862935649520492423391598361781567833394192539658868082589916426045329984298098573239191837275549079944519119608045990371416707838366070221209825814807040818733942817759542241879038293906726808943772142038700281359444697509858276362686758663446512998139510112523141503554202369664716452240689335389990130570579435826913288479550202076270201101813257932104468987713615425323666862103676691435662226968847527493590525472487734333476277239540547741899116551537476631789505716971691975712314373362941267568366076320485818317570537107536177650138415909003475034857537078125262401399485075579146451048432753404322282627165038640385744211840992818140698256977725647507520408959678894911691415188927898663354943518410995299981576183329607397234210333574281205193922465445384374081259476444123998151330575033435179644049834186261031300506073534686147936716878841770175574774908825438553341223718440673437878759869452377787944537806381282245632973371984502591102518923949010176959627029305274238202220851188559692478274304425329371206177309274388176638421894884387738965256151727072424991614475033038145619499109429540661943370271124656407096148612201376000458862408006665874950044636602039312440250525122622396450765597356469482995969037902839869128820365635757908014554653833216771354071693972381226607132449733124491914791100758063979578718641204525088461240246607270801386696643607317775035625639910715713822156846361288064716797930627232129538838522316639258635346309199728735500217399335012174869321055750799474929790294059898676660921832345922561852925621650773976413592261592926105085825315326013725943857761835947740777627462346322393789460553199894397849628964595826714446369507490273330951889901902190340260388761352893870646810545294257453659856462339728499863925007056552048293458401561685463846294450147566883059132259513306927293087324917080092935354051696084163428628698807711275836367272781880143431797251868910649940076738136973468010236091221490654322981433092127531367502986446220125511675314280946803957539093232543524085390316725995498995918433156940037415386904478639805961040416344221662760094020408214813408023486563398573458989838427818674690936683876756429096736696428305562778044184170234886552403824922734184684852196299571096920556005287191067054452660756841781685329503643560990185915492829327927985657144919749319974344266378378016666120823468581580806443763912082195941734746884962737236634020580585638313773621034987318253516562091705617249838426352176720073733717531698930823449573675440150502155380062901575502026614328699625209447519815002246208500062155762080103443939600842635742947627462087493034516060127405600220105006094614769596620976276786781758484057585919346795532169183864195680686505393055149515904126104483880695291371116402092319956326253468343833203745520421400927305972801808135093415390225116848762240869412050553641967287037876007092057164121823454196190376081775779066217880019515596608756045506990877281452779689755003107416364075786407496665958681041150454221911010979707240346967321112764159419873798403545533389785508937545406800697768268076204627257920378033175296938490554045764324792578124810967549767721970038819500516580747396844186468146183677851897303203808061338376575407400150504259614325583580952253210555496858256077955627793870329559394118040843739178205368310058948434379009276816923462421964319108767643393662780888602211482048225656852915125998105077708402327183275751898975835377730025203801399543069992751290938643024848292652509564026801798938428326492873994027792790896198173249424654187673591829802178969442295902719470822120193577389697034293760364411043535577854283764559050794289127998285984686189377331631164189659769030306664854091613225266923153667726791316147896519848098863823783668554719930195657564451548653997706879986606428249766647333491211267522422958299973702383186252563620744473794728078558547326863930785030330950495721461905576247701686604890792959895596098287446890824993284125245377346613168257554174020426595936341174393381198506127827693026049793648842172467386894270970788739498420469018487753455491363608420397315764569042205526298655261741632513562253991172736867296110768610456500966904460598861362868720265982108514350181924696061275751097984042629410079748283746288207259639754754574409252279069247634042991816976404315227578742224307839643524012517056844106025810197372602026066985228552475571173914500774924027541121080898712629113909046285701474255300580231968740594393094567162231723212264702069470893747076820490503562033818008467981852703091236797334359147428386157668878842125007073966538237157456952181391715011922771091228845951437303996365477141959810659010630738865851753020330183804642010160320106520228847131524504055726721735991858802112555180450720198193504475302073196214678236762735746649740305954220482117983413838104689761481162042391950581912641351405419044712888793521330566916069627858082695799907035697252080549505963242700197382325578420779363365033381900249577945209206953926896547265852422181934548987634898051325333939489983787071843168390250617147306361316277035458134080136018684518669533127791362003148671519710711218292301302604349847294022180514096441811275906847190895906074320571898327025405700019377325588586272665224546641925512912782310616982559112407783682408268803948088084902695492379826600531429627660669538235957484585930061866865062133580444670956075117669917319382173024180382071693122335668355321341891719958283749278976600075086832292550690486298167409902255499098039578624183997580816390275350489973239886477998641705130394305111207570111277820029801262623943432567154567910240610699668115480164614500587172449998515755480812951775540504987689342223888114281376754747117839155838657254438909108289792124915300361307534461812597159953832303470711430948642536761149244472892515860132180171788290536386498720890514568077061378018480742009580993277962117568516880810695717730111603235917166062851495635259020437350404125943704522322181275963253732216666011472210060849091164205409025406520069122085881501452397646147067051084807082435491396118134801142172780063025012298915854656302041419867657082017659840452771802778732943622950697622326692182861495373938708553979171153547546905508487468547415427972862585547756815716932229913567805341442598843782279421906924505614453155558959357905809284124453506827301845496246068540471228640628804420471846399193295313899735496728893688174846139354707559206352685020673581490767174579071039871640704896871219591146312953663305095703237744529870410105557447415497278725543013777792977356444452361792676938660990691976355412713783264924742576130108925233515981209380707683918027064667510003133995163614554482226794842642922118522181264644816522827325399314457488482096710712666124358528623941386014476451440048347895367432131842304357084318110235332866909420670391171485060253857619803929226830471754938412879113048972179232326826023291874277139170748975189638790255459000912659796849996810820321534819647569729395599963966032745092076852057243459764181429258777571714529200217429442138402480563913573334063021171554237133511604156570646455123056483734751638404496030047525982851265237636419805274208119121110091711339515622381253001926570048380414411822104538007589721005292394678310244862819684254941375526748033198862389725105571146976151373525627172570076479107223760042575273386149393858156236078409556839267514336865016584029155589214945875477558259369500063860181892951562376722217474907412072504527619979930348170915616470701510687938375332346448389901172595743945868943747586105404121632123593458162947397958064907666974417376414591084876249093581657869746387278966665811712727042688318835757249835337752378352124008479850198653472291982317430541663122534023649847627359977062326064307974502804454353496382552211124999806579919466984549001203946447674797964669070089353963508963758848448296873279443462362180077181625054518678933693573328308226467376653963676634274228574859025080897133387202170550101727581138062171256100064296078624865557431836155694290237767052344687417803629819862898009272878977162994034268305102431307831434537785441497917998685931439649715489510963857376898297658615683302528785766853948600716168550169797837740804055201653189850139242699134576645301471815284088470414460787407878326747483880925970141891999282196909109642878690286353950690055486393051283361266651964890604055059264923251078667286656739116320459168720865683195024154481093540004574508907667590331916928056585078348057734972973912749580113658730631824817582431008259402669482079755865924928313331341901783463946360762957857474514838622392289224208912157753666433490248042320827414490418362372686840916979422211684386577848558413900752933701928665644466352423510268705994584126755191419650988123950498561745396432527919867465390543495028269450662918233536810078653580319049595145329877862446589828110280915741742784343752629886157553659665413480380077573806460233120511863042001339257578050183268203773249969251176760729714718420757846616496073256881196631598064530876236723850052779433017296150890000110649685863276653120102392512343637400095784330340905327985395041013351926268884935306011072078068469793869871438260197115968843653196853073831542817086480530182265476289452571165999793767582061790799483803560370523387275915083284154044466502516959832167283527813820015245061988182967743073378842449475583676744039949038689943153591485467737228394706264911981779413395649306383178494591661357365632671654396077491778383802037977655340229977701103746832103515608688157957222381786432216414437521062385763546026745299936821649581704362132121576444129324568222789166297923622245571667586951448455499326630964545757703978174656445872111779766750035024259336065271580227514056158329051504134810287741632528684890892272015560044813762952074423246558292642346396685985900143477118248416591554035348634337607529040728330400744118745274859225078995845877044212452981392258628036305577917691200264826243783764576993997040555893141840105426209805613058011355532908945753874409684460997326217293768873601711431416138597941553312448803733777030785532843935581103354186243739011146467203708810251973313960154365814846489521857696261214971088705037538077297454421364772544295532186526407100137253971633046108447750037513755673189481453337682247487571740570777669965469226840801333850572746346206210293840266870664799926537491203659898664135230750968352335682607286361324224129885320476466235930982222543598490824900757286080721492889932227370880075817142807275834630819085121349185058462376476947998918699773606962985997733130725877367704234975677907746149346719638057444672700331621598454732192213899722355785523511973202698730398928097157623474450494106737447052430855257164723690055173234295381053153100509902666686188420042270758195623857780104245735481154305585208799338210990994532990850714088599785754756396253475805419893795868260384986382586278979766085147966707409131780390471982833782912276297992788336826746738046946592724464524162264985833796324356555685766620140586094447563848241415000128084932500973148894847989037670968076252403002310243915280300816865560977347938143658215657970046565714776424845091923086389839920773577371758689819169833247604380763567386445234221933159704913858028236389841626104058328312161582771457551902416984035175014226740589915746411295542330256555005731469481557831917779478704087073506764802658170511635811512918517565063980596073795840844363652131288300431625124447332367140984988344284310418551840699465152783284020030534269196092602349196975288084636975208560848923440926076491354121410818423353703411737032156369611235039186469172940016878578428769830423835147978551308346586691369667831516807310784594340057795387799447216706706092388843335046804984917624757241687598455624020609593434266686351481865145766113195429499284407455013063166834730091269957637969624586265348191211899430134970060968618219122873956445985195886331678184485618231317219876791271288665195707618756194705697413794286604631505922890537005678644960415458046262761494864371335164976539287845663662293060638240893100201245166001449493576058866572446849789847813966086950130096425652457087767945035630882805348399470503063502869613154160164923705078433511922490514359511870489734558174263541563866523605349484768149368785462001937115619170279828290606577853741065241875592425498617809661880678764291234582608658947699283741367722000493291168331712039316588057567603849033832234464339845637113818540367060389412749990118291879813082228635167743383321399459379948442532037090548560902109724058539297013081645627456823654374714364514996825574185598437536498876796448213329526844114773870260490584622232238609660797374239146001647353866564640952323797333612342350632823624961541562565535112962518882932491688593831099033240031775447480670021140234263758198625639580134684189907965596226271206338532155350059062996579999955252905613505782351770074456942127455720133263059823466644452326279674820809242941344647363447098430241126385677678662018881722244423834177379454219666633760812427905212591483880485155482473464132573462194712430167038115510148464576915123289049044353841748293420647793948093112510838850847255980494482534826945578945983044818905718104796594259884181253865462749922642530207935464625793672878804220055251429615156689441433130155845218676350866189785731353786351991050614600854566330031005106240740617381883621437093095855158729650479365258724834894279247653772669736402337028057852763686282974720589992074167202579092835739002069158415611067248100342403074364389064455794899321869967879558135207459451253191218395766739960366334939712180145697121990211471885159501313230210994874882760688407565179464604763196888710462021712636520462471299138187758390219048790334126334086119187376984013143262529601979687000862936351013105203366789876801751535309445287148422099752639948441115651297173481968075044296348075107043604497675871493361889863499163244685166262052747048104235347455832516439635056877305615249969687022831242591066405056276965990259743981232554057439261263937575810060579129962855289046861135337659809501349814016428874722154509955496524405892543855782080950638398892424582828652802848948701824420400027692708322304215174878727505749529459415285701677231687366853931615487921360458540052483722112856880079870648312572290335878918316701921176058797412967727892627926066370651055813767788834663531452491789417864483542118908678390511410683691699324740243665742936568024690122714673619984943600104643748845594516301861066031755040933731600853432601622543048659479252225065650726143637028798848299875700154860488474781469911738229426205868359359638514029540675533516574805132854878483877930126553728014058728163601427593865932733299849584565904327290602158957860712318125643098079535270838917031318292123683664058086537426977255637258244378296910524371962232592352962051818697339390862249000727447607760560164814629712124128836989515493799069087475930561869910614547042040775003045914945359732154871528592844080762320694679775877180663833210282873904366997446118500108732642156247646692858961172141881822793389902963323334153569370884166005330611819595320494622765327739630809719618428989135488187911692307445725894619464362189427247646652180639348121934502677341808823617065710734297145131962686796394402757232817493284017523425723674300382631910723955257970395157532474317722091921236039803503499711341009422038644288468491587692387290836426849191996146864077960965916089054654872702050726533473708340568184917835274518530403044033357099149645199323987765720259819951021101979021750054124908967946043916358769704797230175871707230897056668428908980568791341530952347413465117436750468841527804437565019287879787902822872747762402356885781576022638707281768465731285068241074186885903230719634336620493347374237037954407451462284135385156815334970979068063649233076750244511553479854927364254240218646009110226807024103644193530933720046566312977852680343085815956502047764275192891239830083372066157332031143746627071920137125325574309949044096699883785719197019152987223976705236261053252947908798108686125773649312946426084854913767486343359341777943231766640997676085864980087340123481297850475899239242414220677247268038600146916277442368941942656483872462587043416494972581648253220124505573254786104263193379319092627843043222591837468317810627475073345461674458376657123809674218534224567941048757710112243645035860890310300872372060995812738292753880120618489111114444524703889436201054572810010082564501019194326441977392049716218412949545554169166600536267750599256044508653271812230909719488209044336009583993250929077981986489281671410314249175602451947706208977580708108577962909533334408988306709357517730612814838990024264613513032097307440617083728532482962334329480026852275997565530072144332623680066361288836544353952704826488946900870496468516221898107288859220148797957239124767052082990112756737632678083960927654583183385609360946767828472724153311313640329876308455192277377292268436774405370838106698763232345227510075727497753741721075687395330980281746913317110976580757478552222340342951862265425961280823206851131992016953074240332988966853858353232486364848167694314052751964206863948904770900789235491979004325896439550163378854487678603046599421182036976422782996585697507693074853265651022392304508871780043100421914306858907911060222459224425569795900338962168121159041665092521294465913455602849755014850637877459007710456860246166896358271857224798458509390092757962710048852736036332950126026361375890093152008466724947992016016338166737625686105930979319122193297816928546442270134550906457000547307303933129946060314826246348251195405810117309875233475092083928798286867734580685356394264789204555762266383918618384598979528156366864201876165972700992053071974832834886415538321729290647371023537913797016731178034525917696491932995396111756182758104380129275484931554150039632220678352241326567107113702481783612148127062897887472053498543804754290825495270847267231477227596687136977671025481099544228863435306095005174598454906935240671986369482439013559222651560384869589016512109945136563749527036193321599425442459285062564155855831191197411375398233790930691316622716842361140074803411888563578911875495493799251019599757898818356557929567450997986517766697815249388326816453310541806880865577679901889057092980643020933549682703920098937460403257368972424591876971934946125160167218356642832507645540287519022633805184439819109185767271301769304822393850643664005485308821922544949002599548605458394529996266845730181536400474468669638016740286321539675723935700276713116241543829599138865246306361665263653453146086779089782249620848703452483839648060431768743125514087945292553395374797502428763574141272329804806647284752835933042994393919150370692706526126961008330736415172416315351334787968466759476932303320061178134033469395276973459934612575170043588382434604598242463477557817645765939260168627881772487473735950398372503732038633053525710748129079124904757749080821532450908280653254909805585412084504973570364523383269692584869119007976165877917766131224847834758815217294515100797975080182886781994012056715540379346588362323717325072417714448645350889746641060787908802236985783199906838197370955918651032023665730078041486144813544641868079268324723889678407407910141159847510385749370468057188993161173639115201544951347550864094966601677480643398194320463609047474418637815674325274230792766770850139623564182457420202755112944377032256277758182503720244626431361389929914168146026461467129920241230005745913478653484920277629808566921488446029374512113838415833364663149215814731883187100928953715653955279857103690553401738909782246007397485668865999156134848370764687731450266968659900902101088298021929221357251128293305701235967600284200121409197529313711496117962999162549803786141862995046115645839385534125554361924515832843932421625246882860419348233031681488142891373560085729199588813676086206021907254058696571168364731742161653607930599693155834385194201587461187341033183365513377480969301521652183520473262433587776357527495702777280457773519525563025799398547586470017984697796348058199411858883888925943518884109876100721662090101631046721089697944280445826436820597807589980296422280095235902019034101834978419566461456867040677936932426106544620595172000667611772635621493005757253136984617535769108541938774151458113479583519383005593861585291385623320191540461436300187240370642638722827732824061785910401075772042611675837128332796338952776044414854859812488874298737067221745171738249125900095035871788800375989063994661043870837322473188991829518965256541259505252963979702023178034168368710166664304899774889341257175630129020402149648697527814917652061853537847120413050618374872816897690004974450163989825569505170886007039893312481650217232964868388518715290319841383846441757020642153222895704954553754435478314395397251737847926189297052914980928898060232649223893569861754342166643413792788613686766872598350277879978707449739732073343516377224938930334869672077476894294751509715234893743133264509905168940092105399329216739084582190226359792515701961415960728770267236094769767611277359444936940650091966746224319213888928615364600745094336230448261950050741845818107112238422046611802115959104131609274634733221125732756739214271245637440040417250537772256051323477699800330913395962278171496149435621036106909822920780585646538104445074994995823983896002750583787651658707907257168200642768527245187687502499411583853334877170712529798604969906592229568725100932275791374085283552685841139458068199974863491348585958172545978107855359870757880133279441156442806633294520094170643352186247471180381771812468528073172820951693065627940195216912360727944852798346247988618294516231424108175376035944366405345659839757010760751838392579443796835635202516548748640541094057586058147387683644354171701994733534213673593624111136834351280413384376976849050848431190597159593542060234531741113580638821732120944922050628085354181861837736740395604673848170981618860675343179538275364846152713116614840011988699324539935126848814726255957371193787290247336893188228096378294419202074043138920001062756249178909533784502329908692238071406208881416998932042143330578829328534153962427412299050569274192604903340927425696697725285530407530640932026908982256088329266988093767751431620532197455189066202165862031764421594203385753905718318353102762491171938060716715862499081667385665714000225202287773393768639982531153392770874653192726433398163851234116639965954930438467956797075390639087996682768818604242701132547306201591408379197340899443958107902185716460722561660050353408816674147983742012471665334241747266422748498796189895895188727133329277511194110687885813331293784421402137195785466903713138279736107981552281133286221107450377166947623230135206730624355273899902920211638222069821461762832289416221337575906181498782739036219705703787552937408186083466786975428345593814390078720865421124742411193710432458419451319549279833191676564802733449215444422666462534955736050036232024903921007702506909705419218506424199974947855653830655817613924716251179726586715396396970515434958790772629627837369413704827276542757554036993381633977453443431449126136044648637385291175910788210807292662682120336567983325657521844117334981589929097412149309536446116184546184678195434349338659973408248109917061450022735262545996175941845481670711939079409373353890543853690300375585382301598237451393605580887144047871545176985116874705040730954577525408022094851352645661824081653494888518874295093534577499990104039958348507324560005317954766760477652520402165545824575766152444688818027805523093351025193980176163386739132891710968900042489931571899324184671464110868728069660012221555742196767134713949841836666814572865362725786168317473921760304846048658842595620080675078841979002742323921262685518053447161131217311620974305210051368006069158129155572498337549176430890781696865436627871568012198221501477663337899879437196858489212905046484703014290153223488516781706864342121993121876196426137059092075135098524239781482392723133795513642130110768552510776325199942652579619056412760576061730674659348864412468102807738547258015526869601484178866995657411886003944128071505423894685848288536288957936407972842194810026957726219214138213638497087774190991173736476954272596849731393418662445190167106020496572729022684583869132877372889638441290151101632440166572672041609979104500368344488963213966910361688067016587353616043709320872506824634395697146054937189755326457763249677879569831468918317321979126834613596169920553824174659388598923314188299778243520902281517330370908178980492846797537525683411602081549070929525419605282903473346294353076848516094592915911565036839744688109980508297876130340486460594578556174634035984555324624399912842421924434252426403055447495349771159864091795912225309175712596660732508948491605699700000608187840313696736802392735210448570922597038478464365081045799314860222305584432843205111311803934328608661726921629915202278544872766395579936574374282302729999595375162309376143075020608344761580401522560579716104028855071659425642824566737055644401399300773935398681116094176537149096920414043108611894892667671473369864313772697104149310082612927468194738329584380533193496435946455466318778486286872235598677427033278123947891892283616165195597422303660407232728527673633407420882428589645055445406385836462843448343733016556768875840528640158628427572196945359760125971965364902022194955857298543795269635718514722053705543813788306404644479389203712828937871153924513527695676214746437605022080078200148703783670084143727801356037696047229182824572686973864077394378386280236568966401682651852114227110987183784995536854259677918163001049262730656672674448626240209623148888577630923580559188601104665197147709142790209069053210548692984736688227114744950601083989940807547675256962182777377443832031789536767396375005616744148044055049598691010623582137869224718821068317617392530137957709135417001878480172068198438697597079303978956325755612162968767875616732309168289435868773534063648120426805748594507293243163828143824632169457571711131299453306785914215714737349426381776434191337377078340518228002626612475831151527317315066187365832750645157605211197050123819076352572360922859149318742188856712579944283961219667127027388609159707516343325686434062666302560886944330388689733664600644621827030971325409524304314499451057249891742755101793359906451363980655954854975232512223395930583753419021084850776283261697012721733536701146742043519460318272251840080162387591858864565093901095460432206435721615124239489698712847250500654916941623340033795151681142332805934290380317798900536810511460785295838492060690251549669703395033286491916834757286243008332060705704573132023397971240022604837758085584936683873096123999896791797055485797396672443770467803451583646827905867701406674037712986825416445267385608456106800615020200232131793043386903853404147737977245340676057130018409831068971469440232801874396822607707372975041931391931414193243923593858037717908777233358471645543808456690216429580337696983974507214835290331739727491981571397221266051859423627046276034130431319248168972067958094231892797668606743699750755407337325976138744837417696515759541372882176542989240379582419629611807710250316197360306769807026106633886233635108948960608201024573410538689325631390853198926990715573713112742334260795749932133587389255105411398459884335374715099862477604411951205816240663350826635029782489665442316984088661613721414108273897243546729817038788765319633112804466866854753090168440420151550507267058487104976782407517759179232157317999430379714243794985747059743573779797819336522219918079810991950080426539960804200742863484956256032720386832823899069762985354411576498899695129174453940956947290455297265104856133103942313331188243331543351752997690852344303959813002223097412192689152785672409197590835420592319809012265669611154284458916655982470473612851845529534383354045013554836058971768114410553981079463200119116119436645698755568218638113603738606025886455998287064076731522432965017391278810714756217217466073186273367898131995123069624855180799097883368581231651587176395069966440589295985222908766459534734982346806460964012339874202921076231955846737730882763931583113509350988542507762190941911242766336309540877167006210139633346967174421589101124879177701445050616502537742879765089674888408221390955390578973222682295005090214546223250817180422757922993091049544025233454588359800628493288310833754088299832141614154823023208608086445129874742348629587309316165846597558652758710169820486341749545516566523794191703374182614442309786504153446608622573937351780167486033657749017295324642424875121194902719945827781153924237427313697849134681543698509314347135805909302016161447058094502320897574059327789750845490577583607345152592917496099908499924542520524140034627268988609054240829251721400420661768357669074974186279690372596457369195986798574550604292603916048659648532073773216963428873742042317256207066852737912652614451582507457292249499714277000546580121374578626945003801264826304120177720785093596275125536464882319676319133718343889863406462753032760042442647863997599750693549071583371775145721928852208049634949014862136257655837182928204766986474708649744853700836536241374614856479266100401988062647336939000283026138865396313387206682423002799013109668535393203476834906803310028666861466101255272104431764318254263411357500077194389537828080842183545903234652769000964858832857923881652663336210634537998609779614971650857251061590508009629741216477211983282558033691505458868913215837686310775176885966706054181958354850984604425385594110304312931018298748744933021105668947714238100707804776896817012984156885381327293763104559310392253725752554288916863225596725507214477305784618308194922298970469879921750594778616824844428206587762289707893812734332489815752986276994683596205091405528392401599975185843323240392530840552104047407494879400677473864052369549432048287791572202184544117704973479001393099055477298904163196040885886323158437494485400510684590657344033280975875584145804555453195284878010174040509528206403496165595641411649096078991077974273846465117819245407702277661286678631172299616615588897105334407232230597712862612138658888685810835578712276428382640819154464168072043954397707318106477909136272290078336648717025691215191404586568809260270970221639885822372883189416362059250151563918775102251151111513973895371170144973422175690224794552551353405573451561455476206508436063287639011522199796250957372389786810082550314228665447497909077453793324091641695086016040675857239592036285416672457247774778043631492055663738784098837383988809105631251901000601904397197001537320805094102412745725469107020977688490753589518782349386653243802649897581154073468535153501682772775526447258163832265597635638341111825245900770452270252097132131509975197698430104444814795856056373613885104248133729258588740757592850733997202607076141785388649547970471618101634492644639225906268213569935206739197263640882422070015368222162748927696053448760364521959610246363948629948503963832084511661198634259452706553290640147783609315889983237996473836727731534830617983361639010524501295662593005668644087610717771347479030167240357848183750646461055714549409972643119992608638002667389389275365734784439104608374687242034517995169836077074092554777309715863441830633922742849398421396005382590040035846482063736394622933714066567021307537501784594894636138891231257449407655714572263405155678772804576835643862798200831511305610402985616405847655542995684559570134502708232998703655368828029994158329701078898672192751315370441081478045310416384602849605162275957491823420468643651543845218989369201917548461317878492228383873035123990324928862710994405548567222844520392503837678870218599164125150009087629110624108497635003676076761490848665951296619856361932556971651708603757105114815761871032008777864827558545484580885995814541027854016280871892037227922386278430489229545516081317559828304747924011050130385243576613714375304212099896481686806205798753236048016969298472002576917061888294416043088859811353830830751495945580867211440494971653003170614361908115200406572241902480269219608033981643690199882325193389081920072220011071285453870861567348730759749890057377173901045423472434743142045415378290259049929909412732890322114781549928299454853448643444088245206675494670097657671412494076107033996386504471525441865753837633921927770896273142192607615642920608017387762620732181698188139962581096253630900772541302753391027765036404305775443962374548797508964032691056867840010892319797721422024102934327521197129329966606646658867296392800124673451911028436234171057955942789517737626318693619052053769502160706252098190318554922086032490528581492491749982651589924274032206649983712306582750712210594027631175666993453591794286053664489103519328941842028838336644380982611338333632112877711348842972573206562885955047062578343747732766922931832703724123664589469432788735693751392794711623890116401058627955799954903240954170037345519409979652754845759889495034760119647664598913114834341763555607350230089647886385050269604747711109035800824943795577123371349834384460746883781412238878123177955205197521526028044107544326115224481697442758240964970887211330814101821065080127215876889743150498026479999338982214931830064430836140088641823714391051144635692113634837992007126293324719577023241747119516506797031709288303330717464217064786729222348449426464036602165103024329065660613804182197170883721886323873993153153441801115264617664468830872618293517212426919899354541693107413545742536659132464936021417515461385622185450233049380119431344228505079369054650785215185434335097071412962547693506338232789360043775224485676956004547772759592617356151165298364361867111675759495542304213062985943902610904919287723931050664787390271711660819948318569605508691837601126197713474187342842075691199935200440887531551097690020472743751693030892113314407725892853017092242256741107789619600949788315011985655967308983079861225106348996434070477850655046189799974504506948585887724162965831664848049710791367632131311124101992936761433468192864234277162387478129382837352016566558966912689288694773979991673241400632197517368266883560354929715932646595453375323141069594149908404534660419416400085958572807945691530894822436899274149027437181134406335920470466543549913523130606909682840160063785566992333158737474430796512113253830599971899300119571689268607662686809038638293412575261081408347296930043938761684852624511226697103862740168642137414845552362531605062292469268273982344940513046825749518338380854977029040535555239396734690857598162302301561306544587243866578290627105894041191392157077318149884384081287452830969256970995231710253537692979081919327013004678569339195612188694035591536042575431581676484302134986450268097904332739043798934991690851062984805945233606686861292934943239761106739327013842477690350418699765602960744424685136455439952157947056319824570243728565664174779696773136620049007920176898271836834153015962539629791719301899733589945424523798579682343917566663693538877749111711384949471095804301197768062125019044311499158262666909441552043967442616305646135111473461896224354376106257334419384201926588289136353319375994207012270789403460427348591739860096022550854871744373273350969115989217601939594219367908853432069643550387992212249411497757000524516497191400526484007986138829758383050702898920523720077261261086835163267315473213565422120916657645914249531976140141945013458732601207070168260062363493909434010036455668243737741540866750122117518208844687834268573547594921277689707351919583326505606435047836503659817459399540862330680841401809597876271906183546676762490070315137926334926362078433660147215737777635124933819420593171573000904723746884360329369572043433033349629900915913732471700501523803278317600085440022008178248549074223077153804353729595830626230727838703665094685666567795752449797243421403919545375336602304546058942314135769404347481552683203388377252010358463780442772280453392062010394199860117893409387662956057095341712863805974198940274344791513484080354345848794049288992076069846391912577063575870708514499787807493264981239980366934060133248691886677937115946666616471638971739632399353037354345436346625411438241806552781541981352947468635669700182273893755114934553686793414317165373423017092128924964678091305885522890550864378822504253709922440926367710340520061516099224276877183286104879788838803495135813393907631180680377865455520721923412664043606253243522297966227000266994463724121145209877729731461197050783392468638420757475523690219331756480751097208089664776172141410003149510096078391040025482132018350463601786906714770278377444569306724914087166786750340226445719183069385919847264965539408725321324661914168417672217906037376371354854601906256360710770309725712653012049378455263848135902759232077859856213582217454787133492697855509151361416325352335960582129563093551033945448847849776004372272903672506777190872139306825691822578785392185599576276814008946965746742370183553989345188177785787419583292122186882669510969768450986809285708860719089793389922885826978493383204948772718624355577599434109583074240145455351473021296565991995840145870337654283911118838930797165853209692627260830230740503189872194558387947540882669426736712887938633046305508628152546757999836477225389362941608979345479543912412459641274919121037405516999754584381084298794559838840700329224946167093816619844349983750918929138495179883525879434996408883251322185417413592827718443076067202718737115765007115461889303061109137494504254508999321913613518036235126176617776178137224122406007821761135811582502715374800105223281777165174098041322532366638949510512411203549835481395561481969119393501378017539432725993382051463858412153226320302905314107008019101917230119947287395680242109536634608307432855588762918099503562960573503648001599642252561088466439642851214808307157523510253201525993119700415666160204792267589397256982927240276868446084440033174697853395528931101885909560097555293032641003308387313105227021905353880492688756786577999416190906868857729997139269751395550585897715484982411205806268902888783416832062428407788836653499856888469740425483956265956318715635241899822692206950643120510505580665771226054802150638391917813824638741373996762337086828726747540086987955390579486566443017981180745786596708615055470918363336658402603600334361298247848360689280720514373368851566810312095072665154626911859374128838582439321173778220127399006687520811375376497050335857456049814950434161681506755158389775718558942526250851502164908377827674875703681921835602816844582610184315527764069233617320446492186431421188738538603324022674958139366726996591835614542699883023821706750889134808479111553794853780702255549493566847919729320770132141384220806521278549661804698351021612519910860097091894135852485679478211739358978719974128349948505687347667427872131394994174235330381859704280469644627301656479682217711062717828793987362759669369829039708575459641376547566153580405567104156510855896936604519719747441886631899597476290043914117012554713805957983346010576631189918399384865633935995461075326064092343695845153820901057613735117523906431084072109734316225266714503878428029506265764268535381403391861110930954034078770802659047615876788389236058429008364390471496226144519417984021292665046941916396504866933686899238881836745974412833084225569609899010341021918712166328543791670085930593913888240046190037739301567483241722846608570958327333116899281429657875840575640310602439143291234714578441999096940817663155821243600325221500107568539403678393647390167941341771837589127928635658232369613738714529241108219693877409925947441666750875380782080949488162067607611882597970343124747393098208417221515692145504754122297029272716999441864597983996656894516763922617212122958730459947393480858135216309514617133720460176369774703925839756281790564537746042869874217120859110601938224518685724662605013376531005950300330846782723428107163765623388379422584865478689742259188611260939234180383998798060378579586032030670527985453619453742104659286419960116603249665268127334449009573584959512300997725999433479319213416966759232268531880121596693222966888903829266610276742064097028136877736576398893283352249489270367085424318246835896479614380864789384834800671521699990520201443296816538503154421262111668952230637417915702742901805881894735438187838053951594673074490865224064465107466282075618051599326160691958772127188054335805050240955615400102126059581032930740955314845034972939031045872622998333938549787503971399790868293528084664403387674161387970424888164750817058955023281137130930424104248850771784678991356651222139331789051807873369021542295533619362450760174979175543811608571222677287456212719485027150305452003135463404444006130664276061662741902462987384964904258577156450143441804656613224712745901871641659511618322645049426691366977147800510658915040648781216158856192513721726691739898953333743894999947466021875711945029861097420055048669981021996927382364547596610908059470587967049028810973031507996962290365193917109295459795384915500118815976541933541171464147438275845632451460380069749888767756480315591250904406089155652854107956909100175904217171995749198743210919938937512101712695521656302273138646209477266027093655080276989286276992000813305783672142556319098126121389326878537094177931984922607666057514609207713668077273296740731359520197693718563934928908229744736777758175831564591013277525580701875128869252029888605406531309942411111478679028224785010395571947556378055371567823899252728748967270522098691016904628530493301633614723810257576307080257734764057299649620556603387857672618197378258637040149406359289939352456598423631325106622215591479438331409419910972260556734696457457326095991696935142240803345161609440733157019672064318736746949658853732999579521300293521258331766099011456457407065192321651155250935540557970471735247325710909950165259009086990192032877760576660084210800876528305500363911705394422290440008264514022300279013906976740132625992152175095131477909523835490695839140251646439165264344676583331771401426521715126019611145894016548296682077974872786779109026214629422259728765483208364944053867185724151470031838840631117417845023465893461163331799468987263361409364652758640135167604103929263895880758616483231056179794127714110949964995989343628271034566909567764577763413807187997115616011241094731653960993538197408895996256259479507322556757916027606138329875256725786074686488381360829451019218050265524743239873850166618187319444487143808909278296222110233426769520628873134122099059786196667192448766356272142537784605360686831866555627558476054582251876534403820384952042966541147257897736714587279793990901934611052521192607795911094178904348253288637995296619941234280383615030953041901894199164178134115540965218436759189202171760931742661482616744773228650651788265098147296370831111367132091034459904276020998515513570130359466442760385019655859912004901253055864287620525873608073045804278891531590591607977943661467681945988551136412623923175932305520604343632702382411507559835844271156025151912303956884056537775994915958697403231639227695821810026948733667340703343551896731544371399003140762220688158522717156365783811156589146501317599537552469293084638832951564784949263666269178656815289622465716579427070085757719619020361697452531063013564061448852648456580897676185044074256545228840328267208062758567643175061119841800279767338628007217790910566747796229500853996341426323149342619740862394335765599965204042809810852969326790287919582228239287362241856113732492489489118747431549517207040724041888241693007829504840169533717932669998067890566577278090801801568815118348636208577229180879466803267447685260692583652073221461535173926744474411936004517317043993736789819453160048434609118825579349495501040499160062955557278030735613736677934397850144827297496988156911673263331897918780997360765975808466257767898391343750376807518996045936165706269987808457331585695105340038429114837676229745086121020593837143126564724480690784988733297423046932856011217929056056611865231664477133493698227665855689393501821293308784340405507636738195892542825267936114178500770221553417195923584538899731695322636906222476184621817816804932483882017914081588330708522016419400321558010982484274358312983383353411140661211409714029624247800195946722491071235035575550684640377153995782290915891910331123911798993532732981601275722701505251350357949593272354769239394221405068613885779240426977904465874443731444221367894742023508998429004248911868660113375245919411218744871234106999132427231147431693957154296856740551992920133875874541180155718603086858991589353875947929478593384680708445220866562902541097891165184531972271706660198624212488822996092747875235167477549069289451813639889840075633918800549780849305880211311859188190252118960268395516715747418415493561015637387775415267466349752935334910480383581986435379678748145202344784550875193395903805778518997532283020477668023768730805249176456233212858047523851736138096483024510328791802808947053535211899190510871825686821512626236519002710666359921022239221283853504863423566508489101182207712800961538127203945083275135700825727558025467588142727121296472828737601134067681066920092013998323945754867221888340002606549326679455590614552522640154374386854484815316648459079640953535069147195219009151384022188581019572663074019999434975009707245599607813819481963208347844377067104823290866660837732431236231203145334145376043012427293160721749059097389195494041494127062341556203524374154877996824350726459006611549918776695175422265043047757974578157646104185456011247962807257274355175925156086526800197578690829659541825527320709301509371686846885482944360366951768918462446256556227811969070459834244485021321149242326276648225185146017174173331180497560898196098737859707752775002297105375239115080271112762851036972723836903099962586122753252205543707397772368732364663213430592886380630836692391960117194036495099002284205710647397612857491388772966257288762137909255359304987901067641426977013480336967769478325949653808787522735562624095368971651861479537480509659609536647149668219300700859465515671372167139299886958025129218710445292169356319762414728780035582569889309305365623816237123311456974511486997421944279930835333301854306005894108254886366350061252934476322013071406760241267317754970879278087373348771354794094651680831171781237674319267034253048301344593203500347876240640291583140821898691169424004046783918228089367629964807923127266297438230471103748015796142790678294381546248810455738821606536305701922461741894649486982390196750080065160159595202665195949583389378268689566152680708703271928810447776026278022217161887960777194856803661476246399594953532035853046462626286923373458598332870499944933908941443762475439434115234462520638101542686584711197352309600114507486169005745699302488130047613821554617640850526163259837487685515866831627442408324399070489451503928588545686357357791484255338895872792210552624294002833222636358005720614792519605639024708580622364148666124580131011607475272518356469889396098912821267661516756207876287610303127204460034191010439793656441649397995808845877061154796079491766104489102318849165415153478743878951022060343824819111853744346680579124486666721105730255459704997470512389239178881434738162981241774384976380122919995983077105338649497888803302219555561147067567673655142855435327369648276364141306400392312210411004172795818450128369046552681404758042279977455229709257303375825274309350572500209230170649540558597316585035534483011890575216956481815118163848213508615004786853009913703433956123458304053673729075835875465710639259844478423302992220533467895300419446439868036982281006396297042785602296423163810620755888574866054686616186122425526153344485803215951307450458141663582864707891234931217917778830995173113335910721073064544033559560333607461486241426012754591367618634688571205151795036790885639058759599550310217114252154787957523561428085041600920069761059683569383195537313440663767427069927884547697958947741089743256187687284513774218635622558678440238583448438043013061819521397539000136272250927543765096702704336819137814095760579132601298574152590810800779416239537733282334911310505814589745174402251903697224956671835908047453918307861709228979488004310532564518291666359599664840864349425854994178344031658820278397282498019690289171324070721606613679955213814063303893430768082799552322827950402589761740371883070639904570848022674853571338536907921228624030270673898596225307840621746286536867086042390794352557998096154655255276811749570867803631775766149656417947210167105711171206884536394534069799200921515784581120691677730017425213616299494089401716147923050349216112757138710565188662602008478238905588203740804340355163261774219863886419633558053833888805733142257691845718725736920429257515198641592650188909734949091895714427013615062502767260569465268138018736324295080661388955054834556948143799401330360605333204920634916464848527455771556894324607907032014202170742187914202004561990391353294088206448723410015135275045710265973484279257159720428288275864249000876228042819402229511468196840875242163614891071069556051855606070266530608599557721371943315061438328235790150064644974529244056128061842455953762817337213902429251663559321143506150661670182292286461460223451504901302888343230838448878707591069452050080034691856390302804846325840176436936877038133743486203579675051146968034212021124839650494418783655908478390217125735357803496954876419088050232409987652701772804213127667074793881311206352745147678775273517590026101137527094883125934314395420944431321179588963297323233142237433133135785827733126425103676881295729092236769192724435297381728484124949086664876320453108758381881655643043932675375260512316857937243166222097337274716108458836587436801579323170617129892532276249369141958136149870716153815999433285156060924119148573729778795642713949498217507872986762058017370738749913282348627874820427738460504325465841983035548207745783097969730890633306116232499843676654837775494122332425084147666973005456669561808645711165195157296778555028859986737951746839600153950553427089120679502232110337759846783477371187496557788776960346588536387487976445356322179393569804946113484431639820495148376224835582207409501783062106269521051937051655112481216830404782485394188465721461432156734336828450971838775119149682377822007790438061762436472778714741723114313065747941058551876998675194441065828625942343761274901127856314538200228550707690025224981743412444091985059327708217327749395102746278875532966380120620445138076345226881164443341200745191351701576725185924737573905442949410811775956082951876644615703578559198502742746645235139394892997212384417979085060938554880333217756838803817004630555463082814893781649965524061403330362978755364749312688605432265677509860325071147802151395821947063189879546404646119565640867306876175729226079945186953902202028649478028547840548068172936637286134680557332799186042946322106227810564216567884176741738680445824131143476486865702998053397509773226429795325510605517478836511342358170338349360724177185837829943818570038475866355767590654383449952998597284680394999645069489912047101435482090528578281616044097600014268250632581855059751005534551799835716857715095699009193542724007329173883975356411196835180699912236908489335653559020248584912145276914863603489733889805330550217036691449374141435735469017926898497465354309146864752231688740276428047125839026082301654413459299977784021452069109808495285066243747334995703830489701220844869561602947996568722420579428534457416288264665802526125094903885020566669940618046352210331721988498594286299862925688813511966425489132512921969286353695205044135038119258853748960415017968521612340659511273164939620404736081860087949884209911311382037098271937674760740956085837145704670983725422391860923059326314022095196818640631808932645985212315038134535511804592961537281143309039694030539367972019271963509404167265291911357868233720485437551214748686346002476326135649328407450255016681029078283540364911711178947111468250288483270012913415983834883570334689815598251042861186759875910556336329245374277292661698216414964012256845587300346354205723241473666477654112518006758034832427678751920456928929163599109512575522771961630024418507292251335653261388215710953276701606482021451160487145629941473275306754688474128005075706718352913400608322662155031845555791214876562212013154226922272639373062483187264344752569823838490187380144547522197144698888280829254119050947885771931674711603676122648673891327415811345557370611900937630597790095935021938220780337757600971509928602497590675862728462735208900993986943789330598251770529924367557641442011019878386137430889048611684947774892653433377515597770530300919621632572395283382420899070866030859961265469919471280520549213306747789539087185756190681563999565514926992988822017920241006236675751233195422196041949128530719884410192655944777625133992665761140540423193583174537110787922486921849878273490485588843440695459353242824201676631975690471335243032922021768955158129610688366091433837120966980790719445047866057786006031360602124600263064119841156148179023443127330107799995530793488333457683346642628776568749646915517741492712552819249237220715034469739601901054291648208065556777240667662745486913357937014279283161510403347249018811450569229539897722339239367326654935886124471847051188023507338790183742220116367955106212707620388911668978586310962704520619102026152769965775990337683606280629952541909536648707834417492656189712361422105466205895566819604581137548803033659586184798224902025900777900338626516995015149144158385248256788241830073865148372246801368807375996958525932018660595879723433355993144050246814879651499268099247487813330558848579013839515330211773494337118484805865034824876829415248534793276082832092578772278201003037215088064376516780637144933688099693409140197031176170782283600697607365347076166714965876472245321094696937133840950594936264462426672346335188139453780227077283557352213939450535555290509793725425689894864929563434939910059268248414081563653177636169168051483877434540383386418351122911685414417227544227613297012898893951480209898214342106397180586899419887128757515402299133664528180163761112118891966961704000903170526351428739761650765808589365499371405731749879491608867027779923816255772642547757627012589518415819658606312485583068590149506639592173194323795841290762455949670034077218684465551819055004912381311193679466770055509637020679700440740477969752598240938281334401467607435827376661055986301777739792396385121600662147205082426212000502939956005550226034478956965397939357771458915442899014217127976298753673951683465541523852283477634384899984547614884934719246659464860825505418207049854651816061259429158857911659592512630245203780976553543134782023702012389144607771520519945417607092144679737477430347325615231506860135247922925149543893190230687638636564790674277986967548979905261154640690670615380399815057180930484424430550697903176031558112566116640823068234530559071138723392011575812735397220425212974974465381902046755904053561830528838027616785743199897490312997511629162683653185789260187653576232753398435699162941650933325292564331926715818929754688967677346184303207959402984534074175167556059525110487585639324321741116564116730448532259358381211299312535496433779838913215635618660969555245446091449551416327380226585063216574375799181546208223360951198272537391066780546258065201957193855222845961886909966697505021311780508633755227373369741897885992955605997887460329553806076714857100912490787334261175810275894092949990624033644131572046584453344748864516055970438341820547120810600164878006321880000277491183819655177381017998975355208589428135651637088400120722529922704258154279958466454650901523574149268247690749118099105677450418642746924016461320436545021522868074216432060794527461483759284660698542863328740845278737590527341923004683518411489138871709143824825589591071695496472185031943322324087309833605722138700206533528812310010273334038650945155630524470697342884145400981505254555610102657538677570075290365049770471429931797671678396554043660615393999019421927901313135922055446960050637126597536853135403607832381539805688086152562691724355546659171107122422218356603863054137346335525993412839872340597142387514899865071887413093842516093103677497649659883498155395218067364849315189204932724319640853307230718015865006889189913247802860235690936754467660852242652132785697638423588630005812198217710272962312997378973920730546819519054077721118456580954834198844681808196208755579111203650963578901561619895940601048339558994106576796118693763034460098847733591691788923952386815827606427109688086287936418534174381233415816187182087174825188693728994515367395749506976042612339011882123114716869599438486006128348202715809871120159188928446515085145253297253638682372878770226023657502023040179541494402487173169104666137864395082533705249575679133106452872305042739864292880227986837280541545307313064243656350176816608537802399498213773779481616986783465556015157615675971873687296712287076961314234562546926314394882120678355748593600505080743488176879457755284401468992596210690296576027351519031610846243734122602319200710202844363725113310220042727050353843838270583335671359582526529378801258170852746078966359397091182111549987092693286040925023783376662910771215545600031559875632353805547557630022535377554450616935696178540679513725595455584815677619286308957669970918951330943891634650653838647217722502102417028385206622765357580615668538685281930981348145795951239589465861386531311353696377383783155039600414507450839785968732896955789949270214288055950246955218650375711984861912661091309456578716942627336572882274384377290057607762372936363106684490792974244380786916562290892636706474119412691847867570994623076942834565212980321902810394784338657657554876722558194943622887916417136192471885947570950008495401499149223252095782195343697263781728057387231501456056093893438172792227521556808774185207225890978098493741298288987320993235756429854106374395527358277637372099796580843068298208048706509823416493897148230901152129587791431129915951172108517082563755392721117389489164451418592853120401343941634162322024556840935578597276726296513148738813978390933781018368536581634190176837700523463974056947026103456850625969784370616052600639866321537925936333891624794735221622180481035148549109444997754378505743220865988795777841198613239034450276526503359805810987775944414194644771610770029394208902749291784820635716863988916238660805559028631536897437648876781073365299177325807792271496932076259560944392709934116667929161417840325392980849412417147362420945432049258312254479815848262216563716222103797010726323100026984174487669558070084397240527364686973602731603838748725624805831635145068553050921433252126868818994311464356852878315855914628345406339979535787855854034423158746323563628900653213808749060829488705981607690600888550932077798486037794799921578644735193349771678158587863224062305225780928761105481947343802460875617532472886227438393213725451620630955125291430948941850906768685246585596821008325441162968338226821392806294964888797289011597359775577702632499292526669434032388471458792742859867489024632849142540424766183290957230771706237598342836246788822646270711629700389140190780641343584652044894733567651568786426117575341615897986956056540712291351232267773004901158962277075126998881271374560722249216514575072370219825041342562917011029578423921345544050605761784313415964117564749236602187746148720013473020770836090495718011821035251766126353550388451156484188115165857727449857115587752742508688365776479428778617263303235017725478015979417494321410161502476766833033733861053812171969320806060016193260090778271336557989742692566443016836549646202748455156885028896809717546861264898835905286343980220888263230515189175627652664850603836737973230798470307043548674289662226840771024925308215605834126231671742604392217331680744242526861323656956883935410353725772585715537628273169695740174723943559391007336117867018267609184232853409298182825978841842924253495653406230962212857013128701749407654426851418296119789939027588144782751569245104623867510115516383974564939674702740354874147393261562089363984281894499818328850428324332683419368517972464623883416580508830785380010832467690408631503439620013505173568796188227141396814062727216632874821313798370358339861855673446294503338391678024421798463142166973241494373686538966704822708151302089557074814530853541473003910626810099234400473237855130841713695569734188781900726976655152883230229907079163469040656459651826396679748056949488971208670385637674694486359679914335772794304438519438591993386983865634023431119450388155069986430804306624169676122231964502730873698891388541754405978943219137922654150811051875845742935003254280387960741420286440882613872321397143940846770564589099358236144808806202590125505880530536817118288076011376515759283258177629673917596065926472125134984916406546133392279761090209483527482080474653134633789038454512991301578268076945535898111925536173903692378583490182464986977475240221255744211019223142516463342877976917616857518019226208017426908251598508691554311796917894012475856943696211146659988338093941652424700032371489143359066605262707354313863223015554091695344694940442045558690002837347862765693825552717082958556963662305629605743754832857231839874609312617577593276649301235272073299122500791081300219893687283726656437748943319849020628912840307222468951316743581254844945612223252543219521679541297163105006832793983111892441297847642245931932848650020829585475474327680654493125876234374671075684622459668991903535723864450864308473977220486647206232502901285018589784340319128068272649631742055623653691218751799827064298108632469385369689794561762546687096708710823605791206129710588281050688799293681362965527955381659509031249428539368988002038083095731411951520028525563992087529930824195552304363772028249294839904530560183527765258510414701592044159585958254740204041886191009223773560085134097544601682157987480341126760540968918876194926201520345709664782828098458996036055832551921696919143022930370287721958693656038596714185575909495886011095026086874516663918019630805238317554440266783154653176295818647153148727321698284366920693243670944884672860561198683639240932639369193554306288336023431788477261158961905152389664175195107390168137827636863732871599738334662971984779717143316617199522159221131130844038535100002750234996105324466750193132280170540269635816622896317746380059599304374387138256073293168025134896429324559949757042006091256321422893027900414722756212378801480117960487005199670410961189632461429257484207100973908688783927680409365192372890023214715480253795342312052674465919702655023759526592558587390457895526803444080541005742196452914115142192531110699990576416487919467509192431029739942461001537921500456809868386594872486822653285906140982487899432564514432256132021120439668391164368450801069992505110677615527466295074769416763375859327448777569959858585946584226601047935259468716134587641079661789582022796490051368939829476394694287504334707280402560092001231966790331263300076427206035844553614835058196298645781473930042448725813940098569325632712817123545585124201986576578136169136857548726525287061340209218699977321736075722111284864168352803648281969210689944667683558702157535267300694135051372006046668177458543811841823743685162066754466864654279403458530860972046232769972337588476035654858661212597729171335365582301588826091806165445862380855233372602314670942972966310620868682117493820309623428955484130082802853303553006563234674990972383077252250383290940487659858972848799466458102686047348357646733498973706931717850291116315822938302084906466996991916415783823229241296321628925910926201679323092523504624656865023565627832196033268653956283566261532793615473108675851894617917335360058274446353724263840975691023805004414794758206672305994658085418255941720006831888157333309588689435192560810871855292914675586745784175165924560138394106096154291218325791853919039855489807822888713698130659086703986845797415276451002224882819640754326421879176145309083637834641243596947969387028688109385227734771522995951572524175745793755450032601774773226749868202616520736058679802492763111486840861682343448211629809717486049509386050184792000438882493562372257171883953606531478132461278708928291455544651473217964074687596954287848882181989687853692155753390739433212897799012907644563283953823161102282348351676960801349241213363278253892969396612145735256406760044980092264251857602752547661420957650693186676430281691809277351655931559503903942751410828705562743723039222837627889632310734518519649302751373499262765585309190676100012914725743320419703449004220155018988962779043138419288416324925933530449574714468541910131534639815500712036245070597495344766621743247450212717710433063126251489192716798370174046593322161904346832332949633316814684207589179994827352571003539758575224639534172432097170714513745377039110535498074005449644904468106537215417667444357665078976656370001811823397103059863272765197565549090339131977689694615267382742298611091523816334754084487836050258527698946580180780363484826625997588205116278316728840805891461185252403167221681877381425969332066497252292236226802755028956151557032892882977046231546947729847238941196061598264999176208298013321398634333584121445833266507204451234061469265896194590251770658487201109487922070939126964573833453910884605414200033007978061479504763979084234831348561618277835263033846340378580032441226885986581167484673604034174395651429261075618525938663581194733280284043216508886339614535280612240416761014766005221078660560603682818622537313140724699735690988990831192741540941412786539060124248429944057090388026651547929977523245643567315258185204567005541448590883320910265514034268265380052420181921182736257815917347051381430064352348237759822806030782785855078200956619482625194289486141307413273888622616169811328543786055220243448366754315032435822450450248772907662467907407341181204228555168572012973801314594823279297820453732676597549078223392085995452010817009714298225399162102146590078397972936506762901274796384618123553829788376492880649212299575442760966611590398635916722010714392655588605412952050631158314042635989230883400349832405183390242895391515512316687546481162825923412652298902183279537534697481946908423968521236850096835547856519916012618371102976049687721784020084343598817805754930616673117259594047213246489548786973003706442444479342330970709062795020227028319440583561748278813032696784935778472114667392835062246034974682767956435074588198799854274824982992388095242795860000288603646469703758553865122811300302070040477265678528978462729109937492811000778058887942171505790076898863308193635281711412513295459434198737046537425216085827789780323483101815319397283053290418822798744729899126729228372227549308638573964504338877842809690044620555215904350987033525606246722784038907608628497090593643977318967476914161347766081998212675588375336646008138484421411893487737245095240706527558672870599597099117241025214323906731390790782108602906510182215451774070207066508663722538930804051333677467718723712867087166564858520450550050925318416755843048445585242364669373473293569792239517784518238878967092635689259650494925583134139150264427822068264244769690547688812727122717173082526657240981677952040130757317358007225014601031177936846038000177798025763090448651768349412667631979004303096965940775102157440317376428574825557712637489877036986459997333509386599459196900594971679042569115654440839533152305426895707420175404140053971509244495012320056291615063092125741115363327356443204843981132508467558145155071808251468184903619600653273092321765076436601503307537418996287508313656945708565373125502351475570798623946535602327794993373991730809818607216792074788879437735911435910480426077527869927796492652528371405018213111649898617980973677182019087262604805782217696480091557727182296554280906129946650268323182344893805698498800834236081440858307592707809834492959159315521939218572360205590728612504395436030284963330504199356576283554970655813305503494245487439668700764555559934020770846628146653370845981458677350851684548303112000519786936928846126458114195820707933945159858149579768679705014066187951806400323890170998985590564656169201338835730640102026483111516337813794176228164093268157047954007473553632905107683556524954272315054126177707415929896430951320666808956637735703009526104910990932079311029460871056251425929847135905523741610168121726418822810335963098193579252600448257817148612491338571123540332785637136546939004379355385000019859385416975090812976765624005066376894058306911553880410587219044878831003016426160963482241009300829305502945050038163138353404409333701961046036878451390154655929085723120098344015910781780852248682060764723303880147594091067951176292881986646106698200569507623841712748360726894370962452074339190407445360693607672009857554210194586805606403542271212693579806237917768508033898559331280203801562185782028858484336078295552983829229241949803127149398948629249466176212550657340350484530047163922199786197615816099866476954046933462614541511754246409301816256818910060328283754049652266621546272779358844243951976271010936105911193471018583637760368253307318821012529725673230410600620207571452627705561002645515401489663244318441843981270351120366220197038681468751109075458558121698881631886179452313849127904858777037871382402145366663904661101361229952092696162856453968404772556248520382328383185510540332983773090879306282706473223693104815157548608118584963264453544813177668916824076746384097243494057921131400051608976387002429815802018720519981541516991673791260839019834494063262788049405619154537327589720554096377516814574385421010749758763673215972429463922084867139177924693721304906195986135092952907321596129766594474970214107181509293218643284154727368372909189030468781437122143708136079149034806485475400658642590796140520888280061095969569150778768828274375653655724851641243603552456245831718084858824099317724492592823124851887116838825421515339561065980795822276092995309948329444686785683898191209921993214721771881424481641250003295155638171927609098416074111714911452359109136100376078437818474650634736424606800483307845465548300816179801421947088326395715352858837526648485203501119705024011411708910066616203570050568473571344452260266656570427613940600789713768689584377222539145582311865167587614054887163588503734549133043921227960552037369884798374240332747224571768003539620865269319805896512765693540770567858165414087717818839183380773314211515065415737429932069155179312953811796673236527856040063993919937673206645563649664290538853742579721363659032946424909260993910581955838007402934900562604800645296195455267749322354853804411866807903137247694486769651230082185402903439225753541829060578750796648425344124859047093117859067842494678515987339038259143814949555743836596842123522386257982076081984551883455214192899765694973606932880998843137545450146261276686657815570728368807729578358075138491136851414554704081501999197161727021088722638876930404492966200372519495815102598030195038832734002678518439908331657740432293015628487737058091788290136665213605865856018670639734323337285162823799330054531584066513190405529660639191965985605956442856835521406555903508874084098052970637730144538914239484531814956454065818625070743657674812373226631084341752989775137044141952590341868664893314160423887867144912434384819035854338317023793736290848429588794220094136422920433619538751473521234722483504245396489567746512876099358542366425484598316254821402276533139166107728242158501623862540177593437221355117707279135041487489887212717709715509050578618066825392868488334390388687331578300299960423237093849086932935066490107068953846670261699994666343020946511708158692270632300792816901113659931559527333417881632799365005787714531605011007588970787367500595849622482416530709601975904454835796713788508218019903033526421152767561573550487288935997249075794724560712151245557723954847314641736747576972145351557523878265295729951668123949661639169668253356479101525367961794960853032250516926734680628343689699246183990753741701353148734342721170634520670655689483730757142239051413399410978432853230051619983138060469134579350417160429571541831254637229910252021522550278974834625377337248292309943881714520854877214729550042691526733980267074883097192254856255351542884805330159634024970406054226565390245703529517598155941910548373823338241572488169817678799635905914905211205170482105900627798696201484805823712786252886636393857753494455740455871795610347249710943728393681410390923712771474941294140073705599497166918733836019849692050202051161605217885078716398548956847409117029588518521977617702802835214101953656980998654438848771027389193309363804392396437921688699558159960582277948809271999716728688820526026750875636091360442550055392348940494390357784621427666802551903607229604392769562150015907189825493415809472027811704212672828181845828720531329813457432903453382964417188250798844467853671717878367717003487681045461136551951679336667479862233130266757431551461173409082133696900976327467283154595795217017195536001374412747018836542089747270372589321180632292530910203160099065082856112750700261486693156615724504706720701537395760466753927983918908245305726467792428226080474429285354014171621895375343878214639635387168002531291642362104609079529481139292302442361581425580606727290019281906355514646450384317862971912334910374577661911201048410719164733611651719081426274634154657645230565369705401006242934202870268102534135192565678423774328728901555927769032998056392498805733551574910830546421108709603562283157028444230001718910413183241067258497917623307736307655219125758488996536837557599114687480739732327127501573505722404339209164048582166707797430791148908565999012691176244838223662759549976546052981044977189232965179239772899522729830387226010183421473708488270816891897866322696584121728520045749441760949236047046550205946556895551045819600449098676460734443256613610055583998517110326370499782737086939580006022103344382803894724316766531007628353260308143761137826873285827323884358189524270658463581296188081747691678358366690799381176061237432247891363202115513298415971131101330640864467204074529510296512073978884083919763000025376126455735788666264855217895117482165708983980405376216820548687505693105856152650624942638507525151236541425304717340250040940921966530478010580822586758675598509365978890124512730920244237375449659840872722665665791051761810677432893890905162534385497394612170866447822415138052127358886112417644318614042509046289077422354517171286695484731651302230803285473852488442054901513018232615199978409991518451085668365942367276690184829091832057394095235505020729074350241340750401520829171988930843887012018490241425433268744421446210497862150404503695915299248742893736682572558143534984478004881561225321182391799059173781598212481704338847572366020554810394910263615752852496976632737625262134403256810270747387502927547865673310413544221322720091385295199264263121334452302969732981618611970661191570158209167092379319905150146674592935352632671158805709294571179749471154820920039126305818108987794913979990208175569126369571908380059429475849327521825547161390763033697612628790983829157325240846309258670219098556644386810676031693847260765141603352351007363274007399607973548210203004889468129330338844460775042515459793154757057612039283528440401165330369105907465343890034595489243153302626582219356341922359879202922305387640467418031181746932739580524024777101139421903882373040084117166350491427111051311174214000737399579124623791204822733107320263949322890588320525251754654370741906907708094474256682184752602566895211715228246823368057752862050202355179263830493731493537765847931363337477266688550981413563685747952224652043159478236869463031823120839321281654634037263955564744718235114472815221343627569205739844112570596669202481940449668634384071131703340914702927715553268249434244381951431592052690170166831027445407042935140401077537815579832900819333657168817412379736610189622133594015922288592317305405913249801632306748999206524364836480910046763994810859414524090605250844273958409837521159791585025238420221471837585437249811902997352357189575953309323156951616805377973441999438211226063300797186493236496649194689873769095859645251200166012902884043595459116636539259351207127236219393294130820876707322535256284958661154147719486043537607065700854485569273624379756744289304363494955509173821672697389637912203191758763507860793930828164314731912922042013209466022332072902179287318966496267004334399754746471127752208172256753363804377514579289340937332451209650051424469261639529253434174935212419912047033038519715910688463614935183018952012021925064877278461350692655807957100002477852392609392422177056922795551021460284116018486161371621325167358694716454524188284733057960662930400617211332707965358236143798394636993049109169962446224664909792613498561652213387236879536891150724686392352192704824159148120353380436901796587430650092564974519763750475724262021312116778473750513525846656239333291493846302417311797887336898397995233901107614051616917610388114784698439324430659436663382242525309364759433307835648411882579378178895340493989146264949773433399885459372352633336251747230116015225980336489953212189468039700520801747903657648060965366140006839259411378938741660639689447959296726603144073491792914665183670383794444156188125687558986926526676222363049134864621858226898322329164063532058973235168760624009499100196208582309805447958693238230541333847443785854956481369244415744234934025050827104734365579902948513186960694380006779649632194918227989752989834101394035817072164371246376906461423808202182201345250484991170295286467189719931407673553285789988147929659026722280468142289473273678073201058226838345622196259608158060438886182092928609770805903344373404509984642565726767286960425040761647506485533191937391797404551348875140042279955476133382773864377027487357304027728092686033215027030730410578651004498511263296390148144648833728470859053915421225705524276790730042198519669184153100888678387463210913317455145458522855766255391175937348159728790693815241743050446686093855277194507691170512131329029911969445385639401306110511290951256787067069204045592927521433758559932811248260894776397894600965347353941557216556069016100544745661476746142930295064125864590974740344112775280433348844776510744308823531359208253451930429474838912115036855973400109511195120586065801490970134957963712934012117802030788315774141172574787785046266843660505336124751214792144026677279035081402156838639139789234681816345858238012875733677899432093463320160030574940622956993760562994749399812216335433754852015247352668017778569678273667688832212842356058687604974504964901788992159178052682674569751473877837266508631859859233405636005140715665627541700247559969376663562665607841997779524656012874177309750107711721600174362254322852223152645211755154712000486170913475233661269811462287550210529746793812237018456247405010949139536359782019978390023706894198562439451755689394055703830729389754364759692483216102978436929853077829357226167403142990230537665073706098992465321433459256020562609785616028066589494273867890738924789602983520452807812389180919472693497060450565663058896051389352991193131683152471082845571175683310996503026674347593698801910714324375505940988549788140434924094746856905700635325854948795422475742987607845076306533545986877318026789752104766922711476415217638760861660887791652202365160426466797874897604708441126965046196478943070682047588837651971471780684264647638906497990428999581514100638046227311402576715607689515992829891280758088795746880845278564639136766431958244135475634400259981471382488314400177469441724598503879822366584815587413562122402102377239078474322203342749132219302226924082175671686186802588634503219772823949704373749354018182306376698995054794141929023872783921220553071178803234433768174422204962975563909347131983899678911014583136232365754297044381324657889836519404944196947276594302548478370415618829132218471377765823956801929726122991978539568388083380329328132902722655143080219191446997300806244490215421236428780747454876894880766049979638340583300455040442236739418573085591309947657467227022688566180303510706502505349428970378437130432675180148712868132126592411430248476033251269008472611741270904110484972634876139483978640314578651737441022478834847214588416996299610223081094772311337613078308448155545639587987818676979923276819987290875115058881391610054262799132252016679642789355430967310870509914879087075847266506089405391554381650962432536299537937255110352028334398406338829047822181611238244133920493897345966679279130790250239923364726548083878370304999523844950199113000744210467756310439761824032295774606082905982901582448546870863213113315438340428695880911715409685028428908842876423061035338979017409462295172478220802475188775301036804109014137980984720659427098007388798749122260101066694484598928026037631021837678672984514393891165046006884936805331983572654218792580369085526080791673882135845231583586007947879026454072435295231463958277738294807081791419400032897784975920784299260252908079096824232206673704841339418031351551018770225014392213839572057202678620428373572868621810271582129774245385953987814798009999497056467037294620214478691708703144302752022103932089857299034506908383649851947263599504763035439728232249624313553073775688141730489003703335822980785924235074361069248872664172171974899672398677770094195903773774260836573348153673425924409116544906573383630742552532312365743446191701154584319080682410079786251564026048594031545624366387421007435937437165605957867252504708787238644765220949589092653962057228565491898997835229750185628892716595053232784599141315029097088248922090344710327378750469639292620806347837446049328620317280568381920202386454223069180536068019228596035626986080748409243881379423317062926345601895382441699307072109792686580704111399229370839910812526024238370638637475366174565633835908024725317482058947183789309677274192245844268498556398560171953271346480859701681641014902085775134862772809216807576930125515086306975437793696923067307496976553223916822686528116527590520083691154846904423874774251442066330232419667990094418503162525474112723917804975953166550898981826544408747552956109495141033546998850311358254634892747734240133570492739722339087111311192624859713039618198344849191763527483805853160653825523979366267421998012242594415426871191723766999008006919108952889490406932301775605609104161709244564327056221135760906077227189650901812971213670893690903371520991963819208275481558430268780272861724495080790037557216858733466614016812907514137276017243769598836222467045305694247239516496389357433675886047383697667599365131598114096177150770607628659340025900668544943168471772386051302405530452047300811040057115884130310066993003105622443637276489279357536805155281251620421112955207498023458878462690868351611271536612822540534161057468354453274988229839852078585383771164911884241651055766449857815532662153657421339790961223214166159491931799903708719947727968370250426329259733994827820812229098535958537468976993784683460761735851405344801798450914188212873700865970173592872942652576164211081902254424814847473993450164219609224870625473354431268451960821898020274926935867118285605605621682053547107457441251470958913991029441920817607543467982472767875869719540329714196544140658091711754217229273058762444874184468760266159796498161437710247054624834239215329836204269137590476146633556688752545888877255997699422220000027220984732712258417569525146297397994282222695174978523557808509348132987284655487927703987811050721616918278593439779400096565827947652866127854665988648173992122177593339429340274835148151789897236688858408673928600270046115544569694311883177314147943038467933909130530738091167220389914273009305865492993187115580391776628036307379479096453751251774272748144718706158483957019253201814887008856121361888003046305853933751858312049788725515306435978012764194506724239138666417962518237672069405281768181954032960958572739114751040924110202354230513513125606600868947257575871307236721970781779819100513290543144732221715046691290828091876216281232600999018020417571699312405497613852489981046939711542287690974382287270458225988463565811416221095854854855327340003501497064147209190784784252105824649585657172369979670813057503033434509314650767608018303467710803909343788351606636035228779512821979242185097555461610959029249805498076723469824561064542615178759114057830181021866246730711838995788210744227998251108087755081745682578861189679888456498061148673552409185940857530676595263485602274346403485236459164136606905087563909384715091556121894952462886449634205793503472091130617998261433246153650796950242671469905234554284528321757919335812014372527657180473761003574077860504329545217670287723669750562090093936788358895419169860002370283766727041094270233893436493497747690848428622635492109656013451492876893224772711907181908881237438764066231928158964128915875388427101977273127164797730782340609437436250589227284983165181464351469081501857922298704327124715469286518228319948886228709481262812811929317054835600920842027194838200826395377883730057387522175093959329258422013751733081538430332768043562702344412137226584046234569764242447574642379546871315056927820745587139356639812434972695417662389009710025852898031031944498159543425734448616145565498682273238203167309517393265745359082296280050908686423029164229887240998278209806933275301341128092956310622577935358546765777395701679818701207802514058828238911570364483300442023527619019367898771452996158344710830017216862835583432632548082264107697916679686708070276793794630279679650798316417750981472641331676210110516462936351248703046229226482989524429257283517823637870360442542775918153097599748195320776413517635875467277817754769146485954661096874629037627457375786307339359332072862541177586419468552618504741046380688807122819646770817773174248322919298519134023212284141372933713182547438764047433791732203647844537506270781047794644105102515654032941223047549434462812846255657701026327264360105958792956604207329901900716835732162337421200617512069168684123252656912425088831344017614996189381715346524625843739302066321617278086850745595821020191059591988151110345392856326848188034754324203515287850908014933711188291685391533227004587714705708620989224524147632509108896298681179071255725176174797799142717459871668112322982486397380789510701452163919333925809344292327690761445878069345266493765810526188035746994047772914676483467121030317383982775779068222264931076773702107196067034684207803039634552777173713543818742977359039751161688016194009568979768561136737753788958571996523044638024144319627753181106520783287080896566489936236762289758957055055984297347249004788801570566330838066521605474803901311413813710149798908761446034862140367081285081404714772048115999852403443500804685323019275983215409704766686586825758764546566822801633886393326455835135465669114506960848678701288336986931368213398344248896021517872144357499796477367228223289630590639202111899985768807257053909379048486218106432387882309187634711162848088380906407821050601259805076466438720101501998221491176386261834338587152511805168224240388541983116315680919602209759936185460106661449498067429958646287442439304467294129273640272675269569446518135479738401107028037984102036019468561972357112351638106447983559738347978002122419111204028357395942605594408340733484503761332023865101880547982706933472810926739447945969156824581114398392164069650647736540451248622040746196195505234262202538172339755163292357689291486059512674728686374147236885117421218534594094668965269177414519151766091976321413966752224865374395931170810052010893827779008165592051082545700609372604893628101595805060390533452157588986790633905756606252426574253876640621770272576526244090975725369050579825761618399666141477272318850298691860685158175282568056520708327899095968280051918510309464096517689520703046804252314396908064009042186834059985616196043849539445090006047859183071198170253643827537738602124698751562243650174809652924704634695471190766828450834962901631892470073739778559244798259986278154080778257802160783962901341870317334476609693992903332120224138722195653190652817697239930811074524658531245251333768074346831164054266878410969220720865681312177829941603975932864979793406937432085607047147369607728504742340455447622493820170835168475380784019304942343214554649831490977654691444393006874495464803899111874130440257388580484426249484274874060214299644792057836446851045388532455475204462791714419455276476680513998452941070852860023704146247111512601837599212414157368352123322296780356394453969387199532748300664173001298131752633595008470338033253322434042351347801310929571473992617060605857960099794708257672769504918019902139752278065876522913630086364999877012413746690599568923322228934194669337114622495018431468384964683055378673413412752083535023532733731694337960236492743476420610359633778545037584858551660942498285732386635396577811045623972343876842407597569837014237207325602419446203280415302826778093157664231751794638773234892712519202729677651678697904679617701265302958015036635292021091793804876415684185256878083187791261549208460881066363850783949726471237363898620767390159975914090069313790212057312651328579057585726688751509957440764437736384110525532887164520348502217595109839599402773409876346310441157963294258763815891052559590206262357422848637759456084543452652939546717486363197629125829479688606529550462041376481945558719648990586677756455710354337561666403080932954494787688675597719712577626331402518212634455014563142174448224624853883432854338627081690177931759774774406869417393147855734596656090708269382304346789135707814272797481338193634010119605457523313220853434610507135403734668703165447521615220077812918004379780380666263867018042773263711581370050711692375256591513878947445211827195780949739822270295688601492739728769585250578988490928065815738844214443241673981740904440586080527289086843683729716963104743172694613448058189089752142142710640213352564919839403599122515581032999341991816074532146319429879123191656364398666287111520872128664201164123072817031169304842118011156598708562085968738784759926163652338478642701643360612611471339909999636669155497286994667846894358742568546313993758012997737748353599356824630610658043809565129189464807426785019338902891294642606115079782523840932688659619196224858133514642791596925346772102703454766722336734436374537240174288103373466098677855829603771130596746504495424706337430306634125838984943945389696471643629090935455084491490068716576119531112485014362840776211558800930043498019167632894563740680801311009839480599993538824413749272791650417126628104895676697497139422607866280849636321720159279487091130020512132802560170028861751944649026508829829723652526348564224617805015858559832907193124894002644076884470062811255101992619815943217569095759381008021913589904531030594884793591986890125471665957298380850949222060858479569116687420766034594470448886196969783075841177115174240548607207550381078810934226250582418199154899930456252913338613157970678453463677201753488694166172777356672047776178495795902212451164486023457510709654953506485913350717835583830258279302936587620169405556468163545390292056796755805740194059639853109144522603319125182342042486080020871537182458778118877707639555009098791436367034378940084013527751013540524305057060981150386905422622588495120991310812118944452265329234395898815871181425713824032324999697875460071679299217044251961576411710667720202845598357813636207982269896767955578705225919686480611284899039069087631455523510303368871507220050457705386501372071588663358099073263454268358668862849500281803879446120195940348878220800594609849812478317933490161536071047053139465966445343874518515010493152303783992324247783714455515258650987630203087752651258330206524099377673840218037583088579683170050528137159410407154035965745645354203032621906542353147877133488657254924301697984870701453904793853893864063754717087065972820100211576071799491993678810655993592983074859552639655383587227742625967573747438668455236510421646962054313825578554957670889447586327752990302165638599750196694646522865037282246864447946595936724395159607620848252166859121346646411955142240561833849668708865054770986931224203738265632050594881077652780704386571521165604853468882863054284974096143353670376566586757878332697549510864307291798251347990301590633135380827062138095305219736709605826977859093700926731433441810462597857862215175061182305962411509703650401991772349895186849148482919265060675271573046289590002033600725404097863297240848439932542822482170532374550461583890435834088609574074027346444210679694637497114272270846396781607837922371065440956494820470883098555291885177042647632281523502578616659423632473463822820053199433034661880518421060426338478631590346065053339587777534502561631687321575184059566319776452842507742503209684083408834591981760313830094761050718908605851799873025865438847445401556796098886269801762410869319513762297593007923476681528974071344880680128131848062200325364164796655484369286828873398045784593525059089687793708606792156000111701975289849337542094268698580310701598992257932480805455559462117679939473965188363599283343648022161190131758199018420544090392539697769394973949619737844917985890791356040205684580741483273243604880388501103933443082106322886184241133883431377027430131781618247368292871140813950294821736617862901886528857952359537800782356686442625846223306986291281160613156709536230078249780941746198956121087862617592270940360030729246751303775479124302649767989932061047869782160289363245786635093018266272587928599657122085394598856950859292485456600466298745523942206798589929976497733242777759300855019959555562245125974710731464840488004843754779558752809418953314619278846557030510414885272807548617704907571679570412988418938596479225948029077259259441863288659167707193930587181992665696100070664712031947698173443203782645352505069667705393210863834208765702221806248222545871563223631616625135953203865024376384349207078124952117981485165402677457861617854427147332316182550057463238168025847733660556146350316931314868741628791220560117107564961945936341026323270917667764267083208189302226467777503048272571179299111855240370093674063009573458188936060411645535016198205165369513124421342734846375325183927280316843585182704408327389509473138728863299526031227071849826933229408437778638335888944672501223523989838150615064092172926288594244869679535939224864301873498155892813050957067664017006773595716588848729083201925785896145034216293930292420109544328568595243837779938757267651472462912706851740138156794307067979137120835834498112217413590305124470578349779170196848053622977261556861210486941066882742433242467167494175903138350956209733483205987910181740094709037449271831716608905250176871731677406066113885416776643216386410511261423899355312335374718407020687396117927091860335553095344167115010308413057657569853914060495612971991182267967870723917412051885742341131541201003155290314122234570849031620741014259665319151067747795571847795284751505574636419372849930843920723439691303869463591051426834450078826194481313254908974364945441372619348892383834899316728628159606818959843794192236949535360230238659548732753057869706306124457836071203047598048188392308211331123032976060021757827488847319844478037363868082206038833770166663022902761854655340518589810661014039622732034278988230817870613454468734427841086063091130022699746871645600478655990839266401815284459770116414104122837742939405449019408282992898688079736010125101242913896966187925499404000722168394801328770189014191627330821509026227436019012143112368685731794171673834046740497577743163500775331155273865133523046773543577738839106834483925115172385135426897865356380856575553977760207938792572795516173053574086767702295587950746793460428587191420134864179624340276022274313822096880225070195870617766814678742975838290468939987671669006953879207747604103914543450209875898333207824779905333352205523163182591768892684715725143560274354620506487255498567252332459530999796719618678546582807892397802176952556196377567702234122863262964154650479438811200882343487610112939810246828401435376558610401089552832941450346994162043754796286014441046163324505181441533834379781557828302215163294000438423073419974447083864725542509026312748205986649829045634199888288963155427069061719447787494083005666173630650683209336827411462331085939895648956909933253856822874630812326462194002791618031678566709347642352439956949450730519387152172016231730389020318629114063209979223153309947583845196756996102193305733230387104848256825169369688061999696433934630437063864775032412881938549368932199523992116883113163743497806484558415376540569179607786799157998917243117075856746710720430033042639918944716285503099714333526828405414363560644268571587503374561822655197304405010972952450740843560718768696907581466521483985383559164883125981254841052007436689391062516287095273304329279990826317053008304909740600723885129979249326029379998863304388620302348489187802564045099946723356323053449176012692606055890251178780801413560949001092584086140235578296943585320178718436456988251650989776839369796867599190983191360332693252956143803452612676582763627497580107043381954460966618538896004737831331723583427547469144807196694404285480373495977502031938539165427438828532799364095722850410170365019625505027367010578225631995816305132223143648671936333662268476250759347405881973637751485038337949418418526867171211262758191036178032028240163602390285062125967333706922341059067712937953572832793813506211033925840561375720568838445301712912995019726623151747939043936681699547511071922182102355194716308219196282970511000806884526611818182766282222945124455182013202968968445867565912710704673958826028344571963697843773098897953169817899658264985912220571529402087840536856932574074833973344746109136744916224328176136226153240988388945583675653684143983792501976602505985867628218359481093354699685370796951107581618592403144595437931438090459383688876041762161345298722753686230572189328063981849577617514638939755777387586140744141271864352202777997230823138628047674258789225507465896493306213427077879742307607896359176135914924173665335690953021889447072462181333256732316270291111749841243679886699394999580234583331254124118656046449412070994972376650258490511886393151948336937262347616442553839434223125282963519405696287276156275464059378951878500272838582651811176332852744403827048129092499993057999134815587160778140437862663220942284668084495769526697097084725015001392413796149804557557891541081340525144681035870492631718696249587581284633401540844264958738592117871511197597546415653139716903100649192243847202588908527731247275711077497668826379370586520173550276350725843266743995075542444990947049225900801258003911702962441974656957844559022962374337693667471527592430221755545762281413095227002112702811847897679025638912105922742279615163677716275911526331836827317086488675187630541642751646904889046890243830245120039579058728027916640770469976476287334830612807130955644981613438920297015293678422390915758757386648415003861688147233501130782148277289720981788529745340432378094228394016522139835557937271260513617966611639991854835742705672685067639014699012606948805883406112237345004267925200192324055999285869890461609044645468884017932849475272252560812122924949618019891205751184904947642009823867261263078180670728124959037592100306786483031807145458323964043278328220025401132505480446124751287979742837674908086970034243153907679193656572973390036045518536623188540018605054562327458943972295715566030218605947596033501388479750345816961950152409641076260209032347017136508586002176138105571152526628443559739835632397398466993724052804856152845469654268685560965506019123208462115243148968367705869371088958167905350714732252379046622237698848296624021187962898873961242959346607626326617755789926614539742283794916160639827932864825759541669751612927262857544373303461457519333002645509987786723164567624135399108788517184743462948568874548957472033583620096893905285630891575283951587775337460262551445510209147515298944293326445425322702813180911913760779056345367426046753308649136375127117019799007065651924126555609833210541761051930518360730020615511340602347075821917288066166840356516432924684954502781827148351496940858601933841853152671434723665568982675020152632653684701653289228194478611928438288365857820656748328662921439588176417872487665798438842576234603196080141389497020518766519711241054743265580364597734326381326867910380974849158368723589126746755228826395483030141666669639766399002203807566531791755188683824416410385398794486476908286721248853981740514680844111534818726702816530197545327222505012974818947829570517739876280600204171135735767006414488527946153992128795737745803997400542660639638272044704622548487731504871186114393221083436439093081945912721299915848794294776101812960819084890271955339302060084445066689875517676013051091888252835591322448304692231338082847317974113940268293449661988325479082825606349390098743724403724620660836073934482496919980121091875343229693379865171071040800458595882636485620460336880365309630983184956347582780709582596597087961990077769712715244704877181158232401792760830360599748066811848860821733429922515393946465958718694026217840106494078101692799667327207357985648253010746189665981133027390828714467791184023774595826685062822052090407257132419964721767197392998544433775293875837637453825915233331833410677126986335387262534822351252782353279973524930607561016879825093381020382167894322432164729339739130299180333179283366472637574180494981929839613142187678120780318388906045969443336603320122413167472816001484296424827536263698370802528803375787658963969594370332765137174964117774079917423602002125567975920592554738745601698461034999735434091418018756554280730710581108729184121110223503582053821312682048967149968238816162663085933208885256828956119114190997533247490834693384190712690839204050977318049819694335644907254339364067017130701352325539625047949862739354875746015904134214955628337679795369740132413453583134923967766070452608505524354377232026878535696100847875978170204370121073000857124580640121159238550352533077260058174799998405099585411984018903950545461979465548172629817346535089439160768620373176198956641194420190637435047503098843037817179622652914634865338633361339111301941983591286211965176486066694458255819466336023936128855185482433667487860045761924656382055266907064214365987465960789505316554476351587824012298018607607152792000653146942436177426417572775165129752004644119649639734204585123972496355679343020933916656393795547024907684068813465533058388177313841988049881549594948738736112510783918435207725418770964816606931352232935584176017153661776093425783216553809487826138779394097338353425151158525653601518112909910525625861619916813424395886108208156477989447523954610147434635427858141747180071732716824509014727900799560711531721961575151557353132218001696897932042479876113415656519229120309915620082697751541174072226887108208236932881391828279142182954954536887355610229761608893507575870318940379855544393585259353221336894288701980003127989356080201579303863705017831288842587203851530909566628229478013005737684902345975958205600933133896605144224610770232288795426294029462271011106704694474645141613895636139633837424829655534694594467937915194921500563628672359198604323441521842473706458139911900819640841836816187333552606114511782024444845314959030563974978392381509029364074806340796012954953276689334586394459968227618337824885236011363332528073125261281567507267130499652386458227939812040271626343510107963034209738176275160046208839482251257368875163747200588542965097249658694023518774797677080199433933020951311086796802278195299283185931931565608658322304936140633919748800120127732702067825599447478842016518885281521965729555403659627408299476278585654058069585049493340910495880811841716074208877509187171751899863618515966954550655915630917150778180752488456374376689024042531011968162628682756831217387616018675904947412385823635040425587646185346504898044669157012500749734841293603656135029264617153227958381745887934130237672247357206604078582527309323875524171809652539247171922553507435699193576101039717224559252002687712825805006554540962205118827167039337437085416459257025578422143438189236449325631439903058784797109218439495625679292696637951233209919130910411583812364042707689674700360637908510762370156665721882138614785983280733906026927352622166794386121162683534977490288256965617338686805358149876563855352736133137636006128808006384903045006499841560476208707916868833885351300379820061806503740224908446921150962898624493560383672547451456083388596337728968012304438214046306157787632913736197745036501591378949508123850019825542832889937947868953679415351173571941747838366952335556683719656802119437949962912658504208206440823372235560481412901961117268582775522704527616158908605863292419529097066477709687172606522899393779509553443861353409647826286415485372465013401939376452359356159414060298185498170675063921197560291789951516763001937022685842014877617598864130224654363443249619500643355728804628454468489484310533763459686052848043419938689735032280299630469358524425719062046598110674415513360297691478937449920293428895898053216613608983209616918790695199529309070312703851769620248136133236848208776863469099708591029030606763565711252277491985293789732367804383339471303514092398081922598189464073945132797276626956059745562828975605663706655643737224741998469816694172469999365586992715260401312486536460531015877693234195552974776376735309406857875767213020792153944516716944462703127294950257878436561398014607094251436877967782904766219840737463451194134821900129420450651038378776551151472395263322018443392936462958589627975176089171090488564618175066809163311848769342524459580873792202611557958815207915877306149504709985802497009894101754680393007824815193655944438040282222502856774577305840554373483051734897251691854473072817916029232720694209147499604905678238211110943786251638759844088844300521753253232507150410056373934062934294903611498715065024414728387159244689127730799390692336993577124450738917242988600072732546724631573729380303231955034013675892605963242682455834369802105346913484553067013016593452476305910652066670897242487463664498275921468631353325022752209158001964671737027156123531612387572978844986242411720829229968758033239264286692321039689025213779926464690454759819011596012449477214561667639012492615062667134413239723819224090972830340856398575435915150676824299831402808897581870212239845494583839816964633081298535261747186960577965547369117254763646727625531539400554637039066306628915242459446963030918070775939998764844967752728342264510200865701098327842169863013096283325105944104248814268191150125826833714451263237109497347913839160969922736375141997849842746567563483843556070681807702600798794119028839490450640562553833623666512140878149248748345208577819872858339464913123623955006249286189045559312667366214987911468881078193592539592320254607120971682329116313810403064741361075057994696451098514060671486451953277085028539403487146656765117340476880203077682217488892841685076651681253641121185168339793458391707053957515399767769646008347529691480379336282205420176883510537577799780439351631013661224847737246599261990704008133690165900904380250129663079244626258075952525569470877009097080372042425503465758241337630640510358499200831587786087555470006662859421007342560987964381746515657243734943815341537611569823755462291433192167353511877617481124337957217104654233929138465048218045737027948978330903274528965237902820112403497913784104979009468462008045094067268200259279719768630475825777026589832579359249813044665508001701899869899184252659248235521250261439411767729077809959872833312940983120475862683481058024406813054364981931293219611189095352561845469421960544247315735464397348921492997508981888283665621203012068557892643267704609097199673947009017357061388838766286812702757742828488961449887116206076587360760829811204697335856129635343988669211381424475755822636190775374658764985658474826230598328244659556764786441885655208229245383880307390680441343339116742153186871470057330866185534763825229959593703195309389489775660937990171385842527528591100107768356298812139422824915529851981275120145616868939581404794655266527190432778986455651233197306506910145528921202718597357516551563268345879535768930417033409916043907111205004053249343681999291912102941520688447742027318922445183170783528648861621379088697238261587138968594463210231598336753363321124317236727962565347548778042496626407564146050432529523713859901894666959725661654403740573776715279896125501632880773378571923158862195602264005162648489967347330593003808129539106615062304770533090426324637709341645151229021011580969780901619446023608666189819313115892458908855314050170282272499852046925647617934853776839102130769166177165080750588907550354177470407916330293991633728322515931813397032239438707899462608311663484423377485028842872687964290827746957432252011937485034742350097903967668579937355183312691324325807077978732116705940345366848184200104319125528353319603346018310400758985748362172351696915712501197409492557348385492514830239845853114918888547055339310268577558626255184918982570616857261081222534433564294670295109068918904391703712710070829827806185035448811250810788027402370667479474908578403867332124089973317364435360638811538371037860587801448981405616846665336827573975857146450736354962726236883879193388466620068506119217223172299235431689255038422362754229825638918200258882869373382825625304001813284668401702848449991283132189471228700598721454843459985537330340917539292661526899664610688300530714811123695186526385572082991175795983137848258798584305406974944515108782929064190158742687902451071981247104126965974235673552430891914087050414416005702340460664892161926093650802536726754991203471116318128165353774952129051481965055219241220861008465074623777012705927472359103242936345497281640110101715627012865420368697427491564435670555206788798634067400762274818153826148306002331653240075980028379626567339882176817222198007453767220281459483736810884311811438656501681133999741167670784630048033785171457218209528446871668102262224358616530432466668840981173227090997925525978006490721684621867534626794956934023620820205515951466179039822762467760636689914041082157870325001281858024638524621899837041597024824078540364957470861609650522564148914158440109768055006845179210599788850959506736284639258827267989437062509313206149042092393612666999066457526268895447382534890005866543638377866448482777702243048604412935316812495390249570235896889688522684376616581338320329178674671683787408677739979707961388280178306429977221220802332548249925293212059620761888860316945222889641521207350312853286114472587667036162408743165837501035855151704416641918372705857653346114444268414423032247059933643321599160072777093911606082796902954562580964257409549198349599598789340481349524061965829816853569060941439024548472836652494992939052330651317444177809379105208579168537386201054462246241149110102920343899458669878989988663447984397460747372415328996649411354946964721361825423879204506649950648558451131396606931087822694957026852354359364933356659975889574258510542599933052457501391360163054347388477558822249938417316481574639581638139649563771511737866607223896218353893056506996988814159571014411961409802552905364666459043015792642320866600328507956232437250910521566178662920766949705516521633918350112642650899752015421480797515666265064039296908658996009742958727395388354623899796413141274580539150700202959498421639377131174065396863305189596123203995787344942916471852943807981553150965522108061017559135748695194350582941768678773852146061418839221871282091277844534791392373758881004782569728211716016111914244707049819630634607588200874356531103408014962623301803629954482967714347078071982273223892979216150663072776872038908280114091150267514138131966334362475506986446472812945183161297961889795931366031411484253968793269358362855457989393161824479220002844749926464058230704534797581125846829867264042148587450302820856328420560982783296320239923083507280827084719075313734759680038153984390853291215478534182375421626457426048911897980136060187682848511562657281056653518172719662461944072485917603562585018404779551090645748456900106549078561609673095653159273055704548768788524832676244692008362570830269703708013535095552553612735969564559188196027053604357154997301727770877052705812323447991791690672525245387046384983267355927631767335619459575288465726416462721133092754219747072080078000799096508113664649994706626785333865600012454924533882126137587157701001419766535392000915470987915730821121064041081985515148999278033203040827072205416840975808076968740119307387574585013730130218055622818163680757643760991201408881706472015773897688799303574481051134242280320105351397793764523588351840375959329912307347199465628516019834406795255903757189455567699531006285113998185131362620070285385129586804417251013848816369080911390265419898389332283458744922475238336073718190497064460058098408974413905694989826743495636775306157189528804394711117421346409631616242566166993725737471832806732905805110709067587128566917326990943112849134358818149033477691754309236703838326501563370944627076614504611155377578105612684302916185080182174572606681155236547152328872831463962128472715833260875110598909975853570900846455860085329384583304414117537987684068562340737793786823329095361591098073552927310299914311204413452928619196130070737513228638604769268107434934076727728968775581931802959839373388306903590178848233935393887772184447744960781719833421710313057374355718118124292699676387335572387157405933669654266941019618967546229730816456609927547000371266967831410945318972145070723819275184185989967753238497566039291869811704095482479084994363378848286367589425581329506393433757304410840302938125624589256138977291884556078826028098735385200743153207880038148994484638976410034134273198053614461439242104261458738770023540182744916573701496620750680780509749449858351490311315788660803929621468435995322023947602382236150397445958610115464203796498900542820386256230417773153512303708059274603090842631142251118281186972895672693771888894086083163724662797143575824925992209206936064525695542555052844586462891902410587717348871997640023928550605922112724913113285447549021036755097864527961120586601003816683329284739411515746029616902305395384242765515488118976225322230038830535054385880445635093821919287357782981632175792570094028921499937764802656568627814368830466200390011663632440033767161996871056957608691510328072534588011790917471962227669044644238300881393374006411039391646304850023752978394103779873957894926348406060290245062536174165296992100842866179567195319827975470552068739169541727044698666005144863472744138650178593083652551415762349912637593693199242707170209659749988926145472158794107713588504837363241295994155246081503095582648140057764335072554192213955033113603953970219039839150964023370142174463223645169507591655598016556179481150045111977697315463957808019472405790046171922602276478989000506272768068744624760377650487582900578497296458150597610950181968800611887078317137197861361456156752819341532118466982398756676995076627349308887648130770857646244534690436340853718595148041807508789098031199607563530844595746422919295035032544627563175554022481281757596534782041260664667073807902893097034285151107536887361135500960196786181365296761527525792860906652212321882514545599074375190741795477989121970293767571158271234396185039384756765956799654425264833503438950997171346661071384631654251564718875360852639283219466740167830463062603891970695406027757037251057238593181998196480570735020137539037856354250783322006833507044267196436019750263774157945604425579777066436299660005812650687898717298246078632722522361159981048641386869697226355194911253204239165050868741107209334636657352968470455547487012735531722297699340119422634493733266223199763990626986335240987411579515342991903928726774929721093314695120094949627265866082574575894368565362053014735660656770554561433766372713319702254957348247215880576571492531258811899036397323660062333750635851035279172113692244285301475364822068177003919875437070561609027706609629953739502624183797468764760994821207662777596159755261685205462838132124956165305137963774059415806081717057765900568643228626961362480552275939470920643520536038803975558533335502841351254089995455534708522382113246211218614084111514569125105251705244203479792550245479636616373213998021410535083100058336604457721812893005690346176756443373356195007759067124949187245914140770297277007267458471212314721584531262165539711896514469517065666088174659652903240153097859229144450848409134657147996297942823445338040559922333238743772521324899638175019142950393609205916687932966625224912249109073457005014465775946490742090582079988573973203334414797772303570477554303243270705423704887615125431101850802970803697595890191448470487234786802925650223293696045605576971513077678041168357164530412295806053615013278857505200123412359808320952671666610365518834076771583415799038946107682080695486321470649980854054487774081665261867883293118344571163157456248590657300283610981440788203704878159287215169961874380054511263082727825809519133056782602052441067604817345465935366998974144658431747428929590254431131554007785781400301371795439489201947371783898354196737709742079526995910014418262324995736249569169158737027067900549514848769991187069906734857397942127577880005432486731038480714705457191183160425254348353472447319153079323752192577044082925504604331862925297609332808140686720191805280003255205227519547228231142347279759873647565448602915811668193695173521101511219651687904577942184647554398012157839869808743960073452358626816634082312635634353173842541311290456856233183933054662957312773076652652694405522308120513707497007895713976492492327648892972316042764614254258801563518395502501660528595587727923401361130269481627925094925600979843017100674683604668089158732228385733223390963101450796724522653854333124776154370581538509968655475543481557509652652956904160998000515433703083975552316626364903120401407037717680373991581271802468069762177177112297501173633500582239746575979774825533996318912528965600346535190702548324470161706987792532210573847084044052612168604335372658921641865437085101718061407909414001466752813010060654690757366568573169894687574552547067573260476155060693862727308718080708972848137251905707949960510110129143607087308098736095521585867606417773791261569617632626471160797540989097367888533940118516897635276395313219893339708140107920498891192780211337308590840305134299330248218539949115055140744142290489940239629590869483458770957476603321535468145753877910633933687695347857868923058100869886595009751771464540331433883574458368157989658389011451224451258693943890672808152146109514284495787793912956186785696327170680401696671761622860423255337895027530104691960861842346613751400136834324891456732224061369345162675329409808719191884285109799648006166982246174845906571598077692432610119498460536316252361489617543932951742318160472159006647848011221297893423253261511334853905535464001712456390682044059087003568028030167587894295219867839428109479371095347351173508119618894273628776386687989157509389522999795987691083405393643855237534520037898586815350886135607655620025134671376715540560401395923488272085105721280099529681245784593367485768061005961541274875797812267218764261798231811323205709880626317549989619407004501043812156625230953171385699382916893187074786040892287041206977871777658674816536985270363284564084422722659063581669227710247737177335363478144740897045935754789332246576013795417084964470452543995421921464337852120871049732888325199988802269389641104343966256816069761130930361875545602321808701182924395904987634375777400301739774969484774442380340229966881609642483011997857958856385717830603381620142174172229426044990858040965066881017314799676824350344534906844268610025335684804991754320535420396882918566619941450801399450744121302004664366297679062995142869249922482032809791271224543101356614590332320431514494970352014654203369053068935959321957155640653890184693370611123583483520368388752224306150625531729907028360365040126685208686950139053460936379707473205380032882907172979703727159121455567063896208278933064682686389371501784592355397460239392477871083717517890061376884466740770464992391335298020373057485034724302456761880619784326483517627624049705131024290535133587807428202184131317475503979638764338944131340993007647129944789620217307447485578537273046592786519160018565528327272900932898391284865187001136968771249674205505024872743571442348365877988524723238819417518880580987818672088737571842711757456081621991420794933905740602235203114268444573132428008013688677543479083451699834130748805169310123196728866659863697536989676709062109419972512530329945893055432579655795426106231116020360352319848039741747821191746514737669692293883755385787945154210374454176006396078604324906758733772526659018232674472905046797030948432367971834402669190398918173301552985449922652456953574660099061049406470657189811213282576545285076958157521006362208458765196407300516204186173669520325938478010022040943695957232406338327981696930895323601401282903457405599810282984032504830892124272044705651527676618502983159584667950328488288475470516178315341338960160626034157758745739290131864309013699845972271673635569326914697451414574070804751433051627211790607094605426728719090309487390443796330938997879671982095702730928603794678385387624433684001892152732446550683283953825702706997667607937338018449699857504590840143875680147482009356661110907193523451177436726001676694584422761252556528682899274141511324638235191568780906994293627682398366650756679810864090791837635025355213608907125497097245104626067624087824348170175279413891681662609454705096976315261864456993056486563587820571724171626143142229682770066870100209573345842462028643023783362809940768913263440621363732252806014032568940585743033092866437633503667433030896249595594017505167551293217613935976244704895092698903056706707290476344760012067294933382533358404398304248353013737741838308147530219065522311605680797201809516436281676355594968791103196077965437964018353009220191813544988857844356338286425735218824305313515057315665903131053857416365913763231383295994752256411624244966514950671331885911716835583620853417650175685001578904081707874624865560797290632662414329582122873308825136662316425485179078577886617542601636320022293751574649544800571160658531571828115147138756560437825612398027599428528747291557808561031415486900679301629487531532746377992274856569334400981160526010737776890888260234724231404081135150816758115395709208789308620977801262889259838037750508871996861604843645116004327275447610527188916944690532135759539393937724322509144230175822680337499567188388746174396445888412893176591371725142513345507201797840053163953223755093864478736765761353510848559296141033938792884073282997587098692858734530403259536418848590588711258719769477503188477188998755319833588440337335479103504515357161838302138362481246834235600554858689751221635442115140488176370812798367461225086200726737287204755955300956237034414623352055942198888252007916547576947143555571562491882743699426612880917948562052849408300624674042969365164954369316585764048100707036965921416609239602252255359969049176675816181816322128204570778233664512557682497695430409317520584863728634287829091752969219885905590514973417928310112568383189919339229141539981121024772162306768992759706394942692301151876495498443594904206825473922720529926161683148554749993187446386784094907410639326179888483439069401135358635474866717802318106031525528043982333422099258924694300383714024159214697049701067885121860933073180138611590266948633679072462912502239075461649370468656402642731254294224791748225309814344135872133302018827305606376265600409680638614357421851638396170866198628210549942901297050624592414128029585106953283129852959181638859358130864456405578211061430772333292794968888736326799247768172020874727310379302420665179168997303807003693879126759948260995690172674761311033613429988340658019963230066963246864604721115398651660543736438907979979237174726420621163825843963988215863510195210909371535483795322247777736503911176113672038257349768531082282734252362728777820225538402125852434447944366424555742009493808057934625617342517335411165148226515872334099889046493087681832575762606747438047913009478890011780258619644772073387302960910812843215145798932151046589119474469043810921140702926012141173268245041392437597323483711597443643898231968704333522118866961458893031936937132173643202055203468397394192231303434573979811416991233109269179054266766180015586264773694094061089190060680186245609394726863608159824953092876936944030087752508949115173961511366758809929320723683374279931448101052908423122897721602527718575386112395073861924157463799915848866168533345495874080012736008797596407150564123358366414637179498067397939966920532471749318187492426162338162957097006372258031452588090252752292966404434961953011320350311738559550636462209525796220907030456093053998577254382525742622893729250469281002600555040639388700087394857158136402502078530702036598652505391569129957084654244309147462329287987377764100473175533168151707418734653772957885903014777456832922094710854638402203448390829094739557745780718494107833953838404241322372734602530146728338798613023450369810934040902951868247908308584731877451734231706239472982356231596407449726213492619151023724581059343181743801181663182728629819000775060960806692870352563603249132223829254609306481865414384904417371134493013669840378271672194659299112713231788754788013522811329187628335564521567765299494364387528262100328908737952275215621480549314174828820078707816719670495788039558123765366683187497521296509041460556365057840427279780948601878819249353634985860475393541018178967051182649290095496122436709978743101510858559790729472687427671981316388478050197881121717311733260268670713083919380050565002774340655042397306991106068013005253004363818225434836150190879734550002290899387087180762287113251279814104746789374567428807672902646194899144688650020033661711858100657132440593228759229107806821618613136271854045759366218833487126604319188245045273800307619551646697850128070168340412331344522580365278893391784337619266883877444152095111450100082334366535029721352232748272717882987096213061837184902526584116710606851426802016215958072508538400966225729840574680458602219982952267833141956160259419675843136839874427223944011683928881069738943194316049984387886806959573511094859235248850171423971903494330171561500240645604031951127085499367719040684793312050253024942800268435353449046050180147190840748031758358809777678398088137231038232324212988155998755507070889722548917001139187707370647313882484544146199697319022495614075101920022398782374731945638676616160736681445536231671560143227051118881899540082318881568461221389599414264590027144111592122910962811620089600718092767272600127599662889488191434672958900428977909536629442511501104583738139167081016635196425960746921729883948257563569713208741827358830686199093947512339742080236024344886592024054565682995755590463181057450961311689722877237223257703909500696929743774310451230967229691272619537617482277432737557490890913175850580309640526159282362389955392508672200403951558468532702049767924007567270840517605585159487221951902330074359398553231712257478088821180686993962152135560912669523373670551746101133982139589269182038992611487501507103349659519495300694877163371994323794729868578855112712294656600142751327827067696622450138035427339104936329486751722154107824922948618331457355982603235721676140236997261594671981344249570528802056848161549439146452028792228708807294510163391413573965846866478471919604937899991376767099465712272769534175613819843270769817389485495912400392819844466488083985101362944955692932725599585048929663247251951971465569891971059584831615599131714177883847539464379236962626088043892683700001034287209752227159036089283037894347088961640237212604737663185721776222468948176128086612981365808235427594979772547873847653852656841797473904447021894625137782616191022230420749739366109196660741483654009214710106004240292582346755235712873693689087322035654875173462981047573401018215874801771441877332643319327222503583528270360020533426880992575599793759383716356062031883530335952899492904976419536002121884913896736176049355810032898472229205475908062319574569342432563489134713186290363969480814026451240379534168783814086205930997888470958385352526871067071176084508793333534155394250871105603015727802455924062547414698758237505151465690632819988848520680121618078789061095209381638602320271122236330553677740135793377373752260373207107069574926985371691665430229727193859032496528893157160261161900041807535818887746639639885013121875539648797012146388020605712077639047293614686292443753307151991774331794862418175914386947076124775223776364529875159935245720351920911236032023247614399928039484313138225493025837251979839952983327321484370819482906949449056802582127383266890654366119053408820169584852813000824033315962346023715126759988731411396183319356709301062862462502144713726535156110724005628620594815690625846496664975727491201444770463636857571445275871583717089202134539070292346256618711151179868900021971260301477667164751128304545664891546056075590390998583826402996752235936071988299790972991199965525663461281262354079044903809623055220354383705973174434016854424446236212652067311752277889015426978390759053559064449700083144060267865716666463467553293526126094990294288398835689618406071771675218970770338790815720684106393280525449631537826925078723245668727416112913450599305084754107485727470515926791509911876144650053588414141426685468193002365112010363640739802999072653432748971964652020740109655754654804134560258445592906820958238460629783433994765088209896584477459923525001249532021002012376012322234129956533788010081599587491029708839202278231914652353540102308171186731316858473606823848895619849614326696301328751592918234568368647338200013867071747452284431377519066231956999812849343220333479270598569220830190789114699899053863575512499923426966708335546023987853500336285014082613784845007327080024999300260707679200218791568978904115522359543194355097301282093662055558725557630677648803194626962234188098327236409753599828104270362338223099100191454250808476573036628220667475842287750471520767831222474675414790104272119553560926970023223378621767323812140566636760465426135886807108539228114264049183348385115811037369629606572264164661037079870368145440468236653611769674931785767681311133446625944096887887824138124204787930335057948716956805646200259828264810831904064320594516723905804208983697809394896429182399251628672145020877272791355442317446764052138145938280115557663124789501911433525300591310268613656949079140242185493467154078699730284019959726411210152241665909100942166603351367796892639202967046047225749153512605694862465045127072469451665257151078998101212113640797007329871085006338162079450104417757936953260498753293768067612149599871270026412057195840526333591770720571235207308178728620895659278094136153686176545795328396449278403488374595048927301090350593805428723479214535673117068055700686179216462566312921472873931606905285415772271768698930728584322985977777612983459528025262698054787115219758103734855289729014414419489182614705416192038694996500832532775473504885387014190914237645361469534883575944539063355063296762747435781859996613767541979813879624302436244522027987272238488283400547921051315814652527222642424164708053217709676968641166920864672516798707265442136381663706467267748946814457611141586362863328838207826685858871185867185931258198148651210540461308319732368452645751162669232813044847647596920519455494233823076658708999295864075484559762771378188774212936791279589862036238140358759324723745920377124707585743931470152276716776289753592965705418869926867508720651572375604768135643201946639716692867035474023365804978400464548434634581065886650240025732271443181187666318817928186218827020515656787398992854802688788330458755031518891688714441662348314324154874487448594338511248467868089127860645386871118485354669230479426645329779690634039044214614201022514895586366777910306268704271301706111137465459227711228701283914078736589077908919476380725488404122607534947879216944285849825028731213565107569204633162455929944823193514309731281264503508218259348226553621007504055107084600446555109854026563585959046197583033427676945945745098646466502402049392371867657423483493369600565287109722488123601542364170286231661922996670901102912453682230961865065565490730466162898581032565629703070313825275694283176781389676886433877879704343094631121352666233234470828529311660317919988668466769190707416141709563254039580687770751306211905693986894235346810660288538612001201325676355307086824289773456626380525480160415044797490188545019808676971672282340663460400388232756515884917036268483144010971114259430260344015280414757808091707077322354765503998516818616891668658505363682339156756750853561108813632196943634241218695592917463767423616665095323378651272684047659234619619541442941298020797105374246515149334542519999465534486611419612722386658744381760401383255883903812183524378095334244839976807874816243423477406495427082009536571739096062131512949890234628060192719655220149120978623498129711461378168627762926913178176556282466194805975956214669666284414218420357335620621695493893754859600497507716269729317915989336851003823454398609164719339437900591437145313670679802558996118426139526259025902491152470414632502265630897526740599334014225062418025918236942276019359951579286315688429365970556348105902132295185588961146091933221998038666215861484101832823287469717169289298499677002758243593836034442695299022203993733781556066455542825151422922757953184557320118457137369922158584072357219018634409052072899966140125786072431172333228525813545869529259937472322118987621571944617864446916056018807364420354310844292333323171095096247468876494025893304701517300939797998410266308391506280553333595315755854665592266605800607761186415834605519528863638390650024072768282470431685510806238250395374886364352119101675036983975880931486615478561353823855874713321025532701803086349601170440922059757146112571238274438918862138620640868559178495744363659225472923887733450961544813087150113056484290541049840972314131977126115106052513565595568069366952080992214601199339287084950625442602153909477003231008975416625726481229042492789987774336550383792337458739043412217384066850565754648928112880588613141291043958694829249984847218240708625809737511574335155755073673981025147519825149851193879075338394762727665327511577509983459299525558037332929151371668821828479327354530790974574273428679316263277096033489745130659380561315585583436702781375027872819531842595286964844702822398322646412824061897219491579893713819526826220594067780115046143024015777266957656613577327789798960593428850299917144290461876887810900555827701358346549739189068062349168985316221532873214996128295429441838794778651702050780986164106066114121643961746380229384278302211641130113896672249548296840796672763142917077257094346745666230899327799791370795807227905163010913766567535562857107968081803168422609278562103328377174460262358026997043229919840972514990880210424529267885940955757492013689550551840573231336611450291091834426905354044143802478259465409749462626293066579488926202096383588965971673099369243168672489041004471500741997227116578500570708403824913437891813994608517516887845900412830473057679324584987311578826175380910553805882142610753049709663129315440601027500459442641758366482213002920930547293176752547056199618929122465340615743970511054853236111062060350309444388764828628687465898853719052823054937611484889955170395477853655477049356254260716996541167703325458708932269197895011365742045335636813848542657898914891389105610304621018495542485218406997645499295030686443602859232988229008974070669823150488263131654610072316649357943485389510480617133689034517572908787152869866489578932886031089275604804300718300788182472342514202663437228792407038939214695452245580937026024793979618829315190986181777222167285370511687457954842236391870642277978503300048646260415077641684938959822602253227155726971998708805364858829111189231025135026648127458506175336812356560227690980564662655769320256261939435082464421163999779752493064168861138253555154344538556411167651329401767863727544468270512844069066835060838388453368678023575241871448126974874280179474711741585415397977304016700929954977428168455547259969314515117186417461550101707535994903066022439222348559811217291441042436150083761887010770573754618651548953032028147271211438877151315492895937655225862736495070759464642360408797136109703766021784967496169357448482118555776955466254926574730408721423993043889569374705480946420708305459626273519932827109802902347659463830652972443493396447523609340048620346430883088464578527741530185892288565144408059831619157578998811551406999636058453509327718336465920885785667836963725943344520842536877495818528394078028371048328189192072850737903865634682245734174660596949944027652378008717603777591681368400484022955211999254295273461794946568189381951116240288169479827019034206178358290750264028068840405305553840765789541175201573482410563291117720650140283391527313005113809595318819001699828936443596821556643764099087687672184493859878428541480685612568088912099967619986309079621987712610350999745987507179555675388882807928635718529828733268497408404618217956368528007742126311585179244041453929368491406486912397472181046779729092082161732036179945578738473955861272863958064021104147331580094701938205162941143116522792312608011510041751773042237349257352268440369408197080896061250982006723833501735905327284321979842497888674627851575935829020625633308293212529219903692967432133568595787086160038216313995054852386813232149520643251862284679303238877010858102878527664189150320050975426998432362743029840964531631832837149688150096505536007131178589013802453129388414127820116236229735309933611928365966017021512859421570555766745206341966224512044782566600851553498465158925609709170297746472026603434368262056440124266851458588995171020803544141190175841137572167889119754704375950623169218572274589533680705655643490108019950442330402156670832478252807619288239802506641386747595891992549070165850687868964370645818287249703944521814079060150850498511190713326178756822654840059092056847352167709804574243217231903157751974865366900240926828604507419296061002580369620532787409572352933022722942862830457680629820546104054051828440388054161512965637005603333017396699988123067383032932351488157177704966004559592768279546355703191541683832752078244672037488271193263784646261886574321042845639473629845129611768124737704063133813364329499202852546644093070335203651237962011793457507558898958418649334879540276547439649510476992891391131221059548749933527351163700261538176589995115693253755610089459101135823126019132841272678582443362713823390148141980236037720539094594343970264311247082678719255406227445747303867312675775360640310736310349573527203663491521991895532409324810185527209865634901368814950457668559394477282775670310076121556196707354247365196456732442615335321949729275388094182770110212394461007592559688032572830014837265932660319430227664252896068441330333618837081336247602762726025557630085754799149033659265147457655184862839082841485613980064361868828677192518435728783188358351408607053577656023189705524536649357026450666409417674060983867860599328097567128759245407980129647520271915862411382378629806730731573373284474032710337997091108047877215170360431541434333407780773462931972299943061420490402223158815365490421913762726240784567254517779131388388095417248772308779203597012196216128640760271844790425919080238139993714327768185209561693428889316165839822068545082035327366548747329429426135502769354662868770905678289360631188959443580766700712420476642767513037281232756177016634672395850928572885373485444908023829074239320128675379966797406873470787587353373149948918879752989709039904806498751641744753234887703002598874753041699591769499096897771953341339775484776326493625604850081590362686130193619171031542739508856633639118296934311430326763464045520299264529387354798532686314664651015955423606523062555052358843117131356187436451724488722994321693491798395662099641814183127170270518983665117672120004203818191413606704491254824004429485820695770575356592319107530606846141034651011056477561401386395913911471323554524972701014255547825816614521948338444996129738498762862059025697040161777770565027676125021108376693281950600660117895000161793176424985963462835784420229700341485883319657180339584468844387444550099316203527046303154845619382935482089259038154160179242549495531230642361867816339086469943348174570562455383160510427017029802510603742762436548600568736721867618479427911259478108261861911047496194672820091714146725134258313329451602364455388834365041168775675601660440006658053163079500702690008726189322584285972642412482007752905305826543128552486794637312445006702175157933537700008598489578157382658280052810333937084434104189249142455661464112947321148435935308039038180498922959006630894711463125129621885367661132116735166790259286478528352691480146817821238779058328070009451554030401630858920357679091696223108002371225466544393385649114007148922840330812984666713784733857083753297978101273098428756327149853729888240852416364293515165396624583785153426619008270616531113104820177196637115186869116438987588538513879749248568447167616981158075353239279966511531742308903886403592949920035432781113228864337359698376440808355085221154944769600260622670779980743911098932922308242876367946399896037575317557218936973161056475600613312611368434835732780654832918135375954557072666818884602106649634905019786849409952505162480971620108775962937373790230167534473475050370366991441595982439165614516717551564067179154735733589086836551011995109637986671876801965274270916633760881173912030563976382865831537607166299649504399265929800934894661544738876081348365390919549832035789352038549714711787321968700284845626636161986411801842444957475666054228129627480193734433384906941961265742832222669091202320343006736511793134807535027226174944834720417612658895595259836177999473188464521147499480995888384378843623718534484476648064060081425794667919197790468096945364482417658027122175799129818907923168259070001483720581394442040469936413588358754883152263019510056275562446857357164731938259133553404683098114043438855528558143261061539078996096922158998910363562821025954142209921869851871727303000931554613197532478073408612607045075311171403566635135949958008190157035958183490993975041267578903614853972805608610545353691646662242035450403625395477042642955491744358562904475492005318053470255160939771013476888021328429462167326151342123397028878172903179398020749234961552562761754187271531603887472365186666377910012477202384344750708023418520198565348268292419306256421035232671702605947014014675468642070655281276245970184068795637393813505275533158698350760159207520948856583201468221194251333787587461758100121631480722411961910507083016863596264927339955497198972638507934186068598418892051942202746253541538332269511728937629742881336949629663861564435360760025135974841219030658176413640237109723982100995576606453127873992096643062051565912454458831581048973348651453459857919225139712580253302657451767796966035164823437638248876799222547697566815764565626078667327371563694784821539467613437754442053338433946888745996046921600875661042554238704258524583641980033102876598450962813388253061133586516210922655316412611335785880555295345776997022998386382575737588670162454154176341558002683506157657465563156430019803054049064199525618719758380789316316649993205828730253396169794044822007593704746478165541397959580929912729964197919170560903264928877750493418855321382097096216002578251157971802909221982206851237922459636598337025679399781592540367722204913141721534355101244034717710482608669785020923450023538289519896391007878586187251047506344541785431299072760178694278590532439409510888296617590938425698772902915626796260077575527824147809172347752123149668477234497290490850059439711587330140701552591359132797144214703659886606911918637251237351096192372650989142628127663065036332000167262029835552080253818137340139449996728930189725585577380890087585791573564816125287693025705758686444332376183658329425977038944347528458281662066552126579487322552817613124428116938944891528396641985648963532339435331239835951440227142495335579440629729846315245917645716009638153273394762630092957979922207869959804347789954468855033375461694771135137659350701234574152127374453537428577830473689390604288084528864468339107358768308395797335220448954855235580079143886047959920186933697317634018333898560094228654030418391818999400141036947798429932987180911808648223418652237891542010576959682576511895377003881779267903138264509858461799493116670915897083221418697956886090455797910266066884792340449190886023224284115091420949576931163104828527659083734198624923848887699237013023399833101139311446286286404658822674510954144748405575339270814750323090904294810189660315307444142450683159530005143790203336272852128424517371006693609531469037390087240592208500353191353647868509007441869529656800895988382981141827389566171841144778380255868546435925650992109463209378188623372195758121721397594592782604024191085478971835302886977363899475529274561414832171928702687941473760032975859790205699105180411897991523358277783256811088977752158880756021182421010238251870099966091760313608737378865976906399634772339604983355221381265885092496115330779591824255595584634069064873275152626096413694269064709767256428107319144996940203390069796436039385436131271358627042620154935265529964674194883588385947574783232306586255192858133335698046658111299033648211792691076456001028105260138417941423410033021685402520909959486092365411826552271313918566905421977967038343997467017791262339293282960568155260658908895351694519955143881535611589898646426131595764690227392224237182407238848035358359021238336549556489024016572755902071652572294333615542212489467471713820515081412406551875142737097837867911751522044829758609233714385061506065504028936760478421857824644000347130213997439411581622004086611717640369663508983044924456277997324876239213409028826991851962770833252845829816797768908814335464616000977687115557757587548573901473240235395256650348146108074282786356201381033862102470610613974344766105627074397024107265194023231199278922698710164301066392902618674507941111903327247802305950980536298656386456646509368906628711888618392118376645017217988303431500206443911257471414553509679871494963839483625145819716637822582626230699605203277943758002950122399305348226579665873692297614217710631832730571715390773672041427604728298290835637026656329728714995557752534891446094403691184298429407700450497791060910821696133892382298623984343173898671351862152135654130894545150648048192650150472079908395545460323147321697047197800396921215581598179305336177079529172426138649557530784036201346630544351983437230691578513318043173195881470741957133395518157288619119340353381592694302636042668961898533881968001588797648047908061734036410270470458575806362027168003806152844659727674681140611883474000485334342929012225573269945206049337050147565552007246135246576844021275367353472614630543840406523724371128232884460701453804704494380095847683404418103455698895026396813940253240110929299782296261217679355466864059377908281680836287224229199911678384787741811413640317319250762934098916920136212257929829223021778024835730780974043501724177803260667476165085596291907075982457828100687428479066267576743962409988080439552100348511663831427051326053714905801423309230612658253654880936378409653954504668199352637579402596053678979889318673634059234387949583631206202618709267496217440816785757779802156772158394656546246070634064292828878904031157542406530142366087469474977647754208471282875253998522456923429471907486107807915366012115568023071199988125557421573497169747247577835849160065819589285473717898998700493445358053944747376897164312624890005135962950064636967791449384325100579246647648575908883035073554099710045722647229766416091630681888259013836116742367711372145957287480271006902118930216112421339392404869250354664169116531552556513265061630470398838989278460883841406314608924680918260311621077464524361215081911099293617550804257036373338097538909614962299489280641260436835368477575866391539140369887772554000290606230664578753473977653090664074320774935797713852279766103191043204961978015838447810278898454199563462137300454572253368823797690188180799123114589919733809893235055404899144705352551057402578248586785653779352714511094112248339642600319076935972872012203913870789712990678182078061513644065220816596541737248739027350728029293557579844280181505599274315144719225177244684022374880053294108169896085868899433144769647182189996708564705850632084935128248028071615805053885331665864104691847030355720047020174865673988659373709923631548199635174164794238442487836056445038903946039416229184321138315165350438575772813069475181764603018236861434316143354072674984068511346408776895652863466042100154983870841440119897586500603864542182531084486683300323883443512229350157018878412007397065589470903375917790784863777222166662800662371657688279290159207539284926968192062656997774021266839145148835331731501244217028146874560655668649558779406647199848654876364796256669225509542271743571510852652402042770165321686495920351961719584034680701770859174029504908842144759382118187467749205152690043702426558072460252240151388079708462794461663821253670134251042597755963828714486554837651872746350846528236688188258974657876092794248546007543086077887471541492162933597175552189013721643248554772424788666263208140234803668446974390899053080719626771941672208835776126249340157193314126713255141050832023118570425650941841762036442868311983761174175410590932551313436191355587661690754361177341024471788227875262142193359266179785066083407302528674748849882233521092713215598497545269253828156297530406371774163003216165594093158594021851116673746260172292061392866578638085701622105571266462259903535072846142448500208392362368159712141660036764461533123867611059489475952369129941116481129694011840195054492545603241851722517034443955143914837618873953694793634463901087843403724934975029207122732621812205396532155967697149865424579129330194399472014036068948197758414373845945536078440589440000714256423602004120403608264101749873815046517847304653823224434874495471938040529621718244834648830813513092851864767769502456671025516844001464292704605482462173391409436076292365650483452057430468906961273700685168639187193600549119050094853554174629695851342364468058608824515843776569472844696683036846725493049730990133015436274181659802202865984364456616282239071323838734206963756564225311557857262179532404102053175209689810357429674138079070269319692949843880682108002864173981605772773404070136009474701810876475885033110831610749694032478907543773368004636378300332753312490195169440405377060917191901303589729827152569223502342682722147709828590761910906205165548772605807657882095306385536793236537128560091495397908898467737715727756424366312081717595477424140220545460887716173867348592375983585721621648719142655783329206874037744372478550589065445640132945931631175095008220247029921738416622778999300043553870503573489948949539778808045513011331651205575545676582455063483412774585172587982630986950931636991435913979685913573925467355787925493444731337127580533040266905043475844425787441906620691123595037027145065315929013498085397749740332147624592815407561599139619931054308694560150373474991084593990643759085922117404223017805712176219948031628092831813276357976183130547055385445293379337707351641903465556605297287442590264928997625007549098372378800396087367494533111839434763919826229863251850167309436149358442659803669482422114567916847581951906982064743906452350872128589407846393284146469283801779271449164448241848734411663171959282229712955198919064775247834130698845277627327817376651598026920892965756339140061179680246917161425437779388354848180823512845426172264293661566017219791650645624077667223864298783415033634531434549455325754423369973629968174203565364051724789228939390042807083882110812990005456204373685793847139806379547779409699653787253848469754940055154801056380706473671611440741123656555725725637104069013993799871945152532324384742048713409260580216889521519740221879409797672366649883798755877229781480310709742894070942023789252443531297557071522553033765400922369215824900491065375344234719503733985262464960214851649562338499689170716097786072411363555179759448601382080783630899896697863576555125981075298064722724697842032874895644188085649544224884942381297998338961104198939547614576040049660922525150215608731613103724461316806244515327346281259862828306189380237290215809411540481684542520513536596853104573771719523865257729021938510890954055318364066776457973762862336380871054989356537198322803072453333179016534967835156630800639959344004658135983610969208495774870412786974457332391485669356986999678365907621669284268280056645444685747292026166828107136734931876219494952902480923853943326634215504102224256579670826360271380901365720298948384509721326226735269912954168020507195437925007548357475622327186851322659062533672791134380063457562672943064701200177451860681981908781830526277444338991206374892069588096512762837385746971546997886971406566606551294609718838729584436767135467430443483650523377579039793824812123980294309039932213890837146273350623801342129315613880204257762705895205451383213026110663966535981906594304053759230171685843342255472542743598091716559346151784484717404910619459090499358022806561798108989836617871278649336754525174976474350485641338469741460928649939156936776397962685857590703248125177331176115990983504091343619871120448052791163684820700113056090825420633686081721040008350618900621092062755136236980406217050890044073749092942653700419061361997460835279798884120884054144184050482672193459193945157121521182655913403152018738941133921157039597321331984109723664347277623518652813163790199250152561232994532166949966850587363964015565324675985588736738888163661623025753519594331515987514904720608092296390934735404858679454573570095603894658601337918533871513775191843178170244922158127157629844363316901971737209162148304536828523092567893744860925298211351283917077334441419236336309100873103373754161230473886721823768074857736173232760662589357293980694967225379318101038910325226464554997911749133928078941078832640352930349996736792071394596287754129392637562763312205482005252130348288487491236464902322658433090117799505175059297630447023241217587176948691065662860015740054669804614445718499844292502755296187477345235139030994024031519942269483449061066541462316940997858593056843362386390050811351636293633330409322328429490825045248496965971926211226409385857696054734310885141407655238818992101888171431088884000822381852561974789676567734620804138472842569786702505096876318981771206749200078774626198831423079909277108946836199309798245169360365951977872414836797313650637931311625153648638612808927741887329079863432285847195890586085060622331288958318590122559987990138620218913119141841443227939098537067754599623830844030465509570305292449100286576389866944930390892523389657238288871717648313304129238239895173871209555447889688845324994446855351951526646335241523511264205436010679312987197412185305904664737494952232794706609702234714037019614464144884198392005762155076732668451586180364081598422709131551493111485721651467819697339606559848506573609809734854506524942493374365468509715552097150490247229869545361317198957696023608945225841589304199205927625040691565947289170123530537998325720582648106342137870302095276053002690460425174842863074556090576034807125575784558393710601448017964109363585127697340413066073720930036745144407791417180807286965066289024996549500100369971542085747719609200391771803974423825718934612346006577843291987394320921552303469515412188583754540274290543629986202750666057112886304477494343263869699161709017313525103485542144233993615288695534773056020562536568245297472213516278080330542081494641775687670597268877605050421783818234990806076733766408588257455077628264039655779391265150448880048283726524780407167753059113015323538922619420783197290535180189737958262679177368673327358215282537795287822463900765457432776435443712118777558083085519479900253553623719603253753822456686826380873596909863198114655903696618991585979097247627912368058599698967531294570415823405875879130244442488333558851440396570908406611785201750706666191514999724433511234504422100242463838104183260137478526377232498093935042305752200985105369465176359797244318041779122213208229003276862744326989533931300661711293757624040465527021917872307181433975584784020194829198035313777683091009468062724747631187382615355309752999910884695937584483633048337489353955775668080775251618829900875023419629255897451432462387318062136689322202187520323483312240786955988854748386569399419182946515385942082002709190983744168500726631652209097062399203603883372016952433256192410151094945172698297322345293280738732326107423395242509170607051857720786109632793559103937944914043461895821572935028406122145349006692954202066682509743772917367805793733863043629330164769611914048205180683067466511293827132496278325265328275505110342357735449686905549659025323452170981297545193664581388440749903159580572792153707372535723887238738603722370065072968183130777202143280197232841457887766639862276772847747141649466228043349347859179005754930346122602012556169742983436351340218040324522635053323713208782624352987183107157979914255889385634053838712463330770863930491891089408287767557027355601000896336099667073753357025827696618242955692295353680354048333446844361020880691325610410218579961328449184674199067756382614501153854512728406983312508616697895168665988329030937896421865498736718705894911730574329440446788817649811339332767196072232152033714822787744361626067626546978840698068363905184576310680312105661925871829890145535830784910068430447073370601050305325286037133483794637062634078956660257591337775423912921752780537855006938898583682446467313185248520181731122959264440549515727496236960349339748426491728039506333059999935867776343634230728131012174188347005711094376415611936180609393432889834490120884045082850713841208050160765668032408640160451467415767340749382787751387336973730034228539193429224111375804369905593462757601009656973356037137448647073131030548989863887872462189209242998687980332211750912664070019094560572489409546104573979824083404182133435223597351013389332945161769851816938606737630419462942442591336573928777325785741720240147273780621428921752063349395631069945758288654478581516249345140818496127144836306920275148056159650889624268554202036450533570246333917598394341154458885831325919461792915656682867221520755286523502594780116167169823090684432754446174342322476180326335706534014838297671931508584000469280715224237734842975979817383395838817531645456627270445009676268635863083663150474495056719539457296466338436858743343075972751643853973606872338482420365055132639070039574853440468948774275754266513459864225511805582895566565878050946135834579380947109845828653264137810933534779933224427171927686092940638339067676039735794908123212684212479058990479803187187256777148499632022038430192934006973832304584105726072662265748106879609013162690130575326811795515802568028306532002500748264439724621499055041389177838449349995657727737273767421939999646647042112743823457419255797175094565173774928121537151415708276387243969296104826740109358871973575439831876761609323514330692733778774287878566652367234480314761413736286655455550515442082794230914643672063201088815651588347552765735364606397525456152005415067444558826737402984378186984645647390220992198051478198981309439014513186566250566405863660926172267824118003018175773725207036501926142808533417880825266856273751897077321340712364072990600421765936953016451983535422845629087861141125350497170661531366870780155603328534332213386816210809897034923815270384553945110828383463090780605663746629747133565343166752301427574427804770233650739821560349975187193540061608925433142864713874959702488482603253737881019511956636140399567196848630985795044114631616201105403791202449622639378669571866573330517986280480340701105218512698328637464117132621877195323630428636403136737344181044791356166780747989271617867282778717496335547228938587670550370530701079809175454802738205803080158222188240921532527569865355535468637791231056235421352166414691159074915522683566235940253888829145612427403673126444260608923353840869070686293618650379260397247680597377708977009936911460085077250227839642739129526318665450493398533070526028244274693035363854805845057925934762509085218189688833395113355085604014180565377675343136341374043713230173307581961947553513267706347571956695520419203878997479212742636251305175573834787289270386362727857486508656422348888107759519500683866384049305877772709608527208348993194087977046173080961281613190916031911957096714439044043442760960116831805640110304076350166127628400528930668437023351684231108800491885826301445610866120439247201539970424188317001943800276152684957323802866137796878019349751618154627609854939340162990974624410401216378118256989138571097181108372068079255764822859631958424730875549486047877716646540456720058948055363868328867907543835925911936132566178539973593340358327866585573328559629436241859892935463801381535533530898797877554911226865385501391097708765162266088442204853682454190853832506799250035580838070961305355354456779860095156514221781416528497982998785251296599311838357646167494006547236840017813871602961379426430500976452344826100280458830251669736157818646226660664822702658529709409618338115692700370785530567801905008833354805447679874136042515702029045098117217536377676801145937110290168116038544472506463543826469582491109106246314860910887385593637789030440375795170571088148523170278770083708306103632121916155970737229244456339329108340351232083179858866402493545115732986429371626654757699526900869138124854896078220038238479641638394108245643550696188661037429764629806901159808406996524786768877696498286330648260806744903033538778034874665305555244787928625091662481387948595988460963789958554707557732851817998360836385980868110007797692718456296304152581748512757679217362794771102506275993630531222178401485166540947204472062523474457943308473136057862867496393007158637717653494386248457363557654344390175907154475043402884568798786592065311746342436685477158707789979369477817733046977591458115124419765554868373566252579363862896042194130185898164476160520478149237495058952516803949944877607935320257398500468382398271817025272003911229956781930008237432210998515532863908575484836414439194512255242339456430778971467086174001803652354111539300386601416656272782772671357799449698057685518741859427439881508905122111981062550755812370276582261035299950280675835230460589930765184865225646477489615350697053668801871462415362684855332283256718647763755108043797115430157398472133790183834473287070749877270220893585081446658671679292253417367397561388874584204434605593188010611048982469698511704629569414912604552758305641822894374709068118914239888780274327901232430908214257962411693967731238536724661692443726682200161873237981546057205840284387404977646975828995196579117951647045103951733397874291126962999383038575896505053548141640898017877101580123310776826640763531270984964935937409641262673242019963488565021491054836976657130767674510740571835695586288208158114477842067584641686047803284880674330149824053360715642890340231666744717151257269069876194929529401048706484637309790349433996395602806697902919602961407333079511258526520490016856764091110587737028508553146062929210359983003120904801421233794374098035138469006660948447520289820993100241869734377796017412015524375900800637994932354505245855080446138513136054736874752363949189544951842623343855532999483097207796469050670972858823894394547158211673268603508934095647069583167613577249338926947353662568198520585950427916902993333992186124735704103799848048365082060897334739139556671565214570647397915375154969780215031482298190742362592415096839997109413418440740275465309838129260607646365113013809973999647477608149905630196348560250206535906399656249377367190390928705725451864108604417769876239865891325207158618736560943334769636000391432337003036133977401805012057191161557367835977406124773673885988435222869612076145650759206341849795904062868427273815187763127218557406919251259039968134455872890646967498196801542317594161723600238322257913958963022441932241822387046816112004512346866000873965296022244490017647675081957122440962188715423181859648509217088529692393733420089932047702828686343700293929593544533520925142397906194847022019154157576510795828920249498384737731856197868100392621508199739705835436774566791581555121986308395522008561391653878717481595858263989201090486781954688850073970313997120632258006050667578323718927943662565735748205105652813820040542322168648944105185569701498177435408656515737699672196884135662232107651852761220624073208453844617259498067388330345211777928590002916764058389629295508063886989220092673555722608468782719624639857998089337808479496136912885960389126116500707309276829651414467946225639547260285797471407168095578601560308549826875474023538082603270238702488965725734289429145077001307205326092828318436718510578000484352709108958372378663544123957198435982239433208575482016751889022680805912257866710373442058474883943075248001091107084884028520173813739888828910982805334072868425488449634574832331204756484250675524130903682974337056689052037653354812182718141987381004661988936554871514187565169753118047891199206613619057845419668073563328920832739477826387119492111405194978023649614881841586028073118342743972175128452996784756385048685421078829431816837112155387539025496051551470860511486099536436323551845847137152236976459893969503315308548720433022215684869121431432181254132957297793471104433487101678661821947228098479964964425180404400977247097882895867915026668923830771744596696866467254959747691525946477692259174545699289632590624253722663895637687744114124202819530044448870449174412459315490003450646923518229802740094523686799823443658549078855878915713966683001499726623214921783675048056612009361366342440450412247321593421930308193345427163659696699855017422995242287321437601436923866357080763589901802336044690142660877246645842583238582531701886955988513026031721020859821053790282319819238580105434927126148825967059334349234234967977737529851139627749876682469127100040155369459604174512930178422428572872039018692565348369322508629971517792879170865893946119656931417573539347396349933074872139597598260142091935535743400646700039408228719188993250174421498358336871499856739144052007907081598248159598508005942301568503505989991918113778498992660976903021998457553683071773207224403877736548976215142133952913552947806117449354084786967555355067753118060361233688068979603709572809895439803485570589880874937903170891464233761106242332053890488001735233197420292280360474200058046406483513005387656328621870377932348297506730919237917654962006896402521676639781809739504804486270224930807535215429477770310848277189533705743920640648626692954478007881703045540378377830722983901411019309008917729626564037196830633836911995239113089369698618821280303242727598182400166274331904804520999814984515963771003302015358333007736080494316139738763383158796807910913921711214942016050575708319190621552609384844556876663495972850113816803559873257482565680476330391233279629483610747784692399007115603287207703014807528747428951597716674771457731217821312811858640793311083156432010555905354457652211815395577796935121141060318826043829605248426601546868331837360825864297874986966091381683483429477368485876028618755876703400776411184041065879297969325489179469444087097756994406595849707610363570338551001529150185028649401460955820778718599893899412686014814079390585232743790615461087873540284760274926014632171871969389145644761090411051070551059920393313830625171174210050296475191421322013289931700244560920451943279547346912854317422907483517763359018501194706654129008890161648896351902184998119580484054985392463693690150479791628846340609449272108366142661997873483273839927938775768738534458536588416456810691089818852722861195119730159362668639306130746257964268699317796638705121139878906389424865560486999741709290592965103734946329906278196355418704704846710922517678511463262848144040788652426109629730017268818754130204364403830550376767944705509135290444028585600407333925997393589161373511079815742803883070710007947293290585269667187328952011445926684826229353712732082408020989937437431531612452047202351449768387456331357513575219543370715816001092653607849235333921765427700113010477686352350165133140027897836249179480396455255046881178827334116123373267752715938707669352543493615378948969010925442634439653784851908636061623971522534182623446865790519605021560333788789158217226771540285804747110620087953783950693518598063327663707887172491188650120007803389838747143653644046734007882203570790790307192948568061438203858902304200563916324090877146670771836124749961505545110693528456147793197468614871134405883847027226698585673572435350203876960876896414301164872037354215354861523398059022905010374973752916794201129982399442374373482375899376656674079916637463573238593176109881097461104272611500719940527801986107644641622153293176138540534236067366807643271885144264614926005623576024704841978970234006861651947669245123067945990256089310325073262598059812646996527415853548447132609159966465829455067012529989945317200244594411325651023338759031603399672835472694822722941608326516518862075133405818524640143098779944164325608282258961644551326765548067927398191072744089055652248505036554515461595468051540594895713023009816003975956010303708522393625268846197180097722936786632868426047577123151478592630529895669684802308122223513458227267378897166211361094034970335888071803006735503631147126483060859231424658485128183897697810142791795262991907794139306675490774471605804371396973731032978705461378101196593306011013172563329441930590377652913169443371230059109065412589001650072544784942667103213563439097030645759884807531076221748046736885790543123652268712299252814306760688661655123059033092601364162993484139052140164523718584654983943573972702181756873691655021805847589820526586187234672906405571718281117592362135990423700726455960740640753160338816256181967920468423569893435769581921581645242338373379147311993664209610669738991444047088397440146192431919231034900340829520751093244110586956056072482509675699062245034293650105548706849710348989533422622020066210314872307801734808961077031470677832090496052823564935282209614815253189698865062896138819843119273612220072233547195528693775067999572719086158488934710700561682387907215865645915050573559521725155761463271423005356388313989898211286306345576937764475330404776233860602718237695010622731597240399425396126133983576394640688562809636151612084018720537008894512218807100369256624881851336431365539646900535064188033788586904688285402163863072975977216211060339363846220281616826040529268688957260339409565702098476542875919935251377937924625041897361802941709486033985904581800738418411974819413408929756685838231170115445367348563037518250300545294881325371591126577780328700449193685535487484595420070505512715600434929874700627829402481215401691096089078565994071741979700220572437925826590454172753268051768791597216292552550227038132268832507996726220977780143774529976016948569004167467175599795151866691494736606352064844578773220624539884533332833939703168844462408258841832239453511615381002760496715754537776883534230957776001657538837770456743117935827948995829841314922985411934041084468564747735171822007229081055370729971861799823781442013259288358542549722448706743210819858697368385588336626395382418380550432136045806336306478570392360762777186679974861607801914022836276950785241840417364476705384422627579392674381384688093757009810920472892383579937681136353149859218392832685465625098679725024168051353170672045530621141512305223381968472143059474967158525277368490143361957633142732264202355287940128163057350402232429675322107188960625494703771488772863265558725104439565111163997473066958337436474352024862803963345397473159654171879309546044572034932041186088992192037802447050011988053373673212580702015031403136953714434946301944602972806049718098575461430756577560602187762403912496647041021105193631928358855312971707172335532632832022000438772690049664735086065231968576096175210370182115115323231157295272018986691501816346852026213467579585497975027803944047035533384370429050217164390637815029349179723507159950087207284902778241463176036451051787793070257114750443304040977788263031632337482974335678075152305495383304815202616616247108724774940725434199297482733934425535125419751420245255695576648993040628186411585984702436264354285852340646449393018964018948612684115853074857899998415198399228607609804807278576544941681320473938431655224529619501884037718702804507761614065210639827489712190381641451411891549877791314300150727860658707471988813850457792729704268475468446436322771635667617499742326394676838981787453384693690463622762576815196934286512022290637759331601343714299275338379224656022862175902375766551937039016187849609046870382630615174184184853304626417879333061704951945224100215580764513371969888948615062411539583268511552750429979193030499388111208332743213436561834128735976788412583642600115312833783582615925996069194979180821299356532247338987586618810433479110333773288384791262472759366507124647556199296053018038692804343718069638721705346103508595593477931868538020995006617986048072243438493512831710080702482564943094323678923023589628634362883781090240259994927768296868396294633300837960056248370426068736591505951887755080963169879804803077416556778763697655698590118239343513524274024436511636151764581552130696852986628534281761874118875359684176146743304392494280288598778561401404656812752876742609256477694800763853819973771914640996214103532643211170190126815732770607028890103305548191110414251326577987100984095687323798581389636183764941673468572695077429976334160127530477170926620803465634085846808717305229287525385601183153107440605090979481545229990398140595896005284676702537490748422061256991094876708895909578004291959337910762111294626781657898715394085551143464540081850388990799292858831990513888088479189022179713715801261387653040287470498341225862422650376182427796140384885938207984027865972127224661422570267719604596024453497040442548087996149564699907075855538191042516642473039172778434098208005452260788712927957298845520992556650476664431969766933351697512004446624275585919242461498795190607523258606290515774647105044179434853410365482882353119397869848064234733206091324794217651879282920562872511528303258633238396296655252742436063597221581574894554205555483490916107650541662918354411685309560964414798276613789641805461356848678598392587939042642570669667272341858495723149324242316519452291264762600152635349906377763665277762155813413744122211693944432752604805851785124756509595816599847625364706385427903628692890089838906817588986563069262706596862837024369593495402110279056568292298121514393170047613891766284148382273726844423780315560176585686081060435145141746384893277421025028304651071585384040110762982363103344146811645345110011556619976533349595301199577175785736878955520491684307041546221271495749266725442851154635299651268736949948229914218501391477810741022991240415646465220346500209596047170453035697234094638808964617815244229968076294389190310716010504528464048263000229328833676964642691588296824015125072468792704287130903075651859152182389100844929110374750575494047079115371787120082755104597642238504255089513822707912744705527769702536798574355003260900913207422216976521568516746927619456789088636747902569983946832964550486707722518775871376875082433933367599157901299178787500665615535432970948803796173983069747709526323091848877351447447605097398305529549363875501032445980287707101755273259588795187361079031047327142879026393052911386439637942034430499084268489534328120125521014251281792276305398296786683684583920506859549365966509234763651729049983049085703649706069409467390897635098616149747972591760969448668507139867201460962507744766514661047120768213790695592917156450148080218991904334412747449641788301198693228933690796348979718957995694489834303716155257978846160380503101920466805254498776007475655929791097593335957719324998155152063184332671087768745670549616342089699202630419946038686404086812941297261071393458767893873011672172362269354839270194391608172292271989792033755370071615152020992737625889158506303653582841589220321967731516337925042625680012259457720984377295124175624998339489305219196101369161662101098868302770162470914676737517666377983113103110370904024283999863826316651321994769559874926035177710767938119667860792933346934643186640175114625181224972011924047612674675584860258178439564100270240185069272115738523061072524486122009589113614858681298446771337814773611047423872922328594751061349246639054224475350371928397924600621676496746276709783994349374629567322503112405337792207351185223051333439030657955266724430510054360791658695864945389040771270310399674418028815646734825270948288562796615758982129684715709686806075161144745508373150410209405513377475873099130846158641380145725939378165684339404201561311411488374244015887612956707358181384383632748586401275451106310200564855194807955169971412474027910033732498012659575168741416428791413330412872473047113016600982047892534737714099056500534643101511633231801845319597863529329917481195136756248080030193666929816461504998457491853261121749725685077418339635459649370087250280493316385698378740148165578710221128015505868257236775852339546558450282628122503912971297497884545995961541259362289217646020416610092063135506013253749427910346957804299420859443222959207895075846488273688473510551354520471682217794027676011895076805821835134427162163798811504720554690213197713300020351654746489511537468355912428426495958316996166514307116733897132837790996731849373073337612610887420669929869966150060251318080182398367478975862341832867253253984433978464088341818888953459333268255619036984453510535620906146465172066934077487156575052838284945300259430366493528812519432650428427645550267725061930467154467865185796841927673913781233140867719254893926309740666818243732176801080833991965437777637480133651095834656096555367917828659996834473746102767332770204949555276036718254862115736339222493077237320330712284040115684114459143053831051985140246834609472742742906101135610076903669440612462728207048848046597908677140857349961455797518074044245834555153894588708214736708510714959467174989713633022639894196071619026950507255216948321886476771031453078647713553732504433005492615957702694749667739879105247009016843858890068647341361252504568088422196454729672530883503667589397702374393828173121616024768846875290939661777093485336687702422863247368509348597859155267561517221109380961022828659711814802655967063813276141196355531698542466506435715911447230347855095937098721409941871008269045084195533101413691585642591794248044827031866997975378173718391095646427612630512855314230197073904083774738913975931276600641989899167191222653100852480951456448266608585246576833862083349920691717757908852678054265249076740376441277548593309017309896985814412359794943736568812064830361317995849657773687395800524315584702086947762116042162571341427499923293384023749214010261734765575335252692758220845293845940355592871752832842872710755946368014048327645928141525638426904347533692162879007679199079699525677981634601334068975024668804044384076725388049917071161266602390953476308904837254270991221298506157865767298868261102746797885774227562247574163016847128683002411857347313408361557469758692499954334677031927080360750662821745621950111344828465558084984204378310017104656745223868202916223088518924005325559324610427531324449188741183683855106833535755088876826539257261268513675050228725500018550373064393490451837116556998756069504338999232234700404191313715019443728691662879910844742295166051240448267937042078369992346497287420909602924169519022066460944990155809656954466457483178664405067217754077240351620931454898400135954596697942196863372704700070302193610863524980532335969316953914644203442888216138622387091848054078404368233849552070452612859423087939950488167860741697384625532163217245180252089822694917433071785591210948957216077312235499708791766038314074677735173802633248338612796086449688079244725983245657937199045968668448999971134646736046225312501529713478078882624660168925619852461659647563720688186386408169755718117898337561995177000245990612283411519011073979339886298751692112018835152233703150209853646445768153014658910568077155200589172089453790959064198227714033495904286952590389965072425250969626637905876055813953132916339934005616704656082735474384715489058417808094389566897210150938942390384628037113469357804622772948875437605411935421579815900460302745345646268646079643160173738319348739792408102450545930541238538318609935652649832658555329043085760151793293687112531942430170975156579530001141323710978834085840928204074773002815652715544937376156281143435996997846811666936544610393817933894933366783623105937163811974737596816870355999227544596186157448185010839603953714333056692815442005784006084088423755755326744647030297487067946525460018016289836507138472537981213914358933715845625735875370950646060194845007963338275620906850509494574720848539577377850984068280957005648681179482448111830235578592450827478429266685638184450452334967212641631771909935618489463569217240642016298420253538954048376474734081253583572836947157582937643032317933608436074277753809063843154151324172157539534992507898885163344042716583468663428001820047007119778419346050019584130506973451439318380475648305750710286743074890296423153329131246315183714242357895597531404152499135356266837423282176601106084317332656209058577755544627983306917659029081552090641835980857363200841195970911310794904280976655972076585518569007067646681911590531333933398494938913991141939570270320878252890373294584026496572877623686202337237199269386431909947426220806990290701580863609675053810399125327861422249359384477460359014938639325966946214795325930141281762104799173304903958954307245193299185992856953872381155830615084071021053270025612198739309235105537888977092249015146633048396232775777787585346555027319322502004847436563494374193121898448516184673783989311772065187844700002357549837661482678979005723541695281691683081236002368445173816445044159238212437289124138596230703358965411637623358723535916209968100533756692546892260898749700135892487318755740815065848049560842374424410185867629096645891534260961424600797684274587781756415644593747300833492934322430812233432134191195583752768899753327421541419154109233294860698052026608684937348318192202887387508727875886183852146379212127377940047732413511947526027863487146337853528047835995259262979962403880781584366592519509412172891803119479549855453817983532679301403521804803436070137164338455396951121180669727439829345042687994843798901752119917113560153655646402133827057969128370520093989122027388939360358695109315441107273104230465863685749265793328323963228627175924575969750757487531552140272343146360850589349862741556630242027848955051296569131107625640513263070495221824595655210961434883650041248362048543384098230799050456720769075063750275416328895910889743048368748269125564215655114118317469014153558150425691335922510496749866344980083424397422835890832153235349457731524063432445366162417952401335831850219298437360086477789749296537540828844199620220950737649781725807538470938726141676843606343160062917263573890570724843423893404537924877296239001936084551771094703995984981713352030720054718256138576432285189789276348164976466102127972052516009457344443097335346176361180517558517854693088530403456871657993361858501625397379785568038084573897295657224662138373455478427287944063524174911857136932823133222419741362485720556468296643333577830204403833099762871631858793388941167593376549543186659337978549597538807298728833763621632531260252028398688715387730857583643112984496299672745358570321055739560278958699113785210955640170766328734856238079662336152167229775462872827353000389987380492206681023242736196080267083283224326905234273549375690028890452207816893285944615524321117443808618522565293252613640118740601302539128961211021493477381549586287126408727554852086464073767242744981674246849102222463063470850681609836037343361814971222226061525513134147531268254018671402422714027180725131428358418880677081856502613379635449960022563956955147383275087798877709732392951758516319156358932687702401859242938558452481145155506922528670146199816142402349924093709609187158707808794730154054621547879906626098253062813378488008509571619252892740646297768028700892017124275122891314710277518722964994924202592671698241218301768362265245404583693854458494725211324349565310452251326266130546954963806483556938032875223047326126470008065682748965302855519315375201652664231487546048343852343745365550341021742091780323978047310128386351934978818695978335046750130060719936082301966125347217030293798711299461017989930613444688294010366600595765305265745932191416357820471125084235372173393511768612374697224826360806164074858854256846695578538312407628372252392581338471270823363633987427283661407823455715917320737136221741052820119660293822443240367959670614540445025868140155952840517995513095176476012456452165448499908099379235040283089147383230956191594602844499533014823564690788251399257690448489107446665650097933008090169525301311206395154369033778520023105036776640192317534286126269633643244608408262626613377439686516530984408994266348579301841101902892460545614970853839740091650568525052499461807605040704951585383924214680615710230171680201346074014624976770015342188883611978284548394151031201542465180816283879979597762632747988923681575330950435583882498529713562537737181388994570545547498762811377988043837115191909645101547988909380504664492505470814865214009426999481414150267373278877817926834020238179363983280364057468050517163826248515357755190280418192960920029200712817569907119495712926528797497445597784762643943905849913068212190125463612241136307994030348230064985445453621083429289850096489538529744940987503220850834543846100783886632198760788704709469708338614147839040393043826796402720987016066939558536877435642366627727071122536214145212459476346655118306302862009910460759764479261081680485946552469024055113014804019083585304595819917118538930718994486099325874463564153573035369858832574565357974718877963219146204272078609175419271568809717583390756146068622157206337926952518960428016666584344217392758577574695924118759859549453057799252965813336490200105965930879215717927119968442178836283171662551434274601075163270223614136628294691668001631371505190887638596471586393028694877529259598456993813987245271281389791207639580050187130131444407072669946887541471885807089394248243235849514333428456440360360816482662842905151144209878247099313266214393563327388246691803786910648367004223371103091955062252469685249619195633755019824728377707109221271527164620210619753734793379588674808794613273538848129121848177047744650748011911275758266579305529586893852309671593056560652621097370427111858523216346241102666130157952876309306915453987259098882628476035948240945322550393592582462400642702304834607193411162789867064906339252706118775254225066438250346164492089476420634186646905194072765008236848558761843350848641085954297859330360217280371036611307846101612405772326121860375398932477475786087928553611304358292159796487865741028288524892860247445295304559686790693792362624112279569606845719596357719463857415589804230934953794446923752183895004636871241212246645183785805534030586842461982460726830282273475457819307175963522138210970654046954330235959577666635014530927587679084263667330545733272434609300589400760977880558294422798308128157837825819283676382970172104653133518920078824339753565806436953123208349294362817409326859775103758860692595819799340693165314172753658295901412082474151303192104777701790437109648358615179097974477020107939725421715763353126642890710222461483737839864416508785816138841056984822452445279888331608901997764731486520318637448361783767339252454915037156565821260097003485401406119000739441549799529682168964965802879032595637682730750298658183697379909907274772745777201641107430585360751167015242092007354429727593975982566022927043730496430230790956358374871631447253493239119983701783490705935884571205330740000882286872377973362856117418772250391132931472399916319496982499820117870308967437371389054697788744617247723175331993067236843404264269924824367127151584496027438667168328652770855070563373640659124625570844982940049727067118344632581184865221010896885118603471365033715738635539453695492389415038557892874122110899775705150768322861989828288820313672240883790828226117422019573046375589735194610122978191993659060984570710402480256423633129284103863891402182024654533111618430301079249690384649887926644337911311629921884117885507432881672293633227632206826435541782443996247613877568876486805763874486418124843244601475443870005304425007482526739880599936288654105759986325274427246880379295821210320227070415264025486425653218502867285953596914653567695091224819875597129282041274013840884647882731191432165717738687108207645014532658999668167589027481378037097170776860695875067776292951005783415729703322211867372349934433699406434180653096470336264095991877699916557453138994775063908307775430614587614593220118380743229570306562882675344215481835610674500765732667617298206986249435455180492749612820157536593655525428613275605750530266255270126210319076834670040674598792497993447762106972730709728455170346982441015645037590214002770077098277153272833291223684413667601342753693708620910024158387607956052637401284542494031069349381265531430004957392140694249378078183646895729884914804574394547386391345055177896080766799227183091074271841810139863424337979068031996344199985186715004925728248644007500428642096846871383351399661765958727954233989292635457949545610132344018478867529165868006359773594482454624245405162030719998127728414675381661316723662005282024402361069268228062899225966379219633797256238079675249831039136172375589916460122771219295502762016506415965571365523178696038202188147417479229398135781541321468768464693546914939410407131287315440084896790175777898140807399558305663768805869251280198331872320648895508036283099199534388752563773073511386968982997573275532929727824619897186218932954280431331213991629009118964423942858301238073193879450682124531343286092468646519175380797007221445399523256343021588088470152258921523518559807409815700746844376894319510872084582896599413210164701710450369012556087920492075464189217112920426392894551423678724708070919230156540262171360853736282258518003389068302953431725488311564322043875588507785565337151236105921779829434419437134731744441817630933642482357007527079347886384776305514800899972203267216970973471616311596282529851476540468579407640708738556814910793206471110808492740008632812678695103913573003530490893993194685774367971615826969480356682513379267337306418013061305118127625408041278195660651873108041762088839982982398249553226139599984930422389973637019716411139506187162504456100789923173888344590152489783738308122144696805545677518171259949141778224467062785342743778059543549627458340794177426365013036306443409881802217899942616471330407946760384069470440732275713415648171152412752456455424479753056661133249504650518116106867553471220915458288539620177034464816901410054704433767536240557311294208240853589583792997504701603277359951861283928963225216508834444293329273853228980190734280603839212862104939139949598771281575145232360717809789504845182382783050693915638824262401666195119651340129331158861590719854911337982943340111904383340370815072082946280084955989216577622349123529243695690671028436131230486650247692093650900367409543635343529591234940838923898775943840145623023166979559878201543884720709420283322457439641778939437712601753627188267288242376289736559201232465840945020799814169213342118330944818924317732509025175284000043167623262787169223140295096841402100048656324223833473068815911520646883591032057209944121362300414652129345419369016142349060294017222775239267842795568194491897511976833900603165739188186717240781020158997229028951437439321576298379532904971913724471502074542767213412619412401136565951151076016695253589785775412676944638188936637499945337573138065230877550576832872706096399187984973053801730421548361681209194999063587916930271548894525132476934994248995140551190764658915722847188270062271344020297913685440847157720925468341616567121807765390378128962146354884944485052484472942424314059209898058138349517257427103206351001512262592668691177984125724843406140918134790113758408609293274434146323227929360932925170930679703737192093560453008443331772192574050882177278371142168389837271419523794129973675969607449959406046576354384691764916429699551519998998455421794810705087512849166258646037548707042751149441623284490732265010418067259526680706809971261633467590574238001438072685563256215597603622162742776114472725283170615374496395189414310014303019777592798859902910425208877786692137433633066736994502720231754670456293088857714411240043121817375935970196764377539655409056942267590771941947120452875144140558769854832383625865704720868808458325853011842292364130397660750797683160093425281780119295909084007493367444329753439237938071366198294876748066039430926959653830468895421961008994645550016166137530917772582073169522250322773105850845163662453400007807494642004068448154909857200584889219157158844272309858007752167507715256236151207578400575442443846872991911821055883390161199999524196893642437933899625458359079327287966877473953411351378018955102569811964714587964116284432754887972518630717973949433887216454427825216599889055524773153303308663549331297029474574305272692654772757518419592450150472934636267750191042431166541997971265033847256369368254342479937798469273468278234798091746804696925655236607206824070990226623443944754472559588454215783727744114994192605487310657775805908221704989521233495961198689835114779854477452595000332849010311161934157676758969944272413445089422930679705647220293057959701268202631146257478604797944692480250775042221347932349582607654593545793106500418035577752559232801160909507498912288201353177961301996281823363820668751447764532451559508424402007741919209431923351911124843143273374886710310048230170663961408920200163610300726322856328725049773016647052797632721464575146394958487731323139642009192659636148568047380836523452661691035708077635951273997743467003038038280353970683258115689805017549443040654029699842972350319539347172097577939196055448850858725037656169256460322618370439160120653888339075652761151475395907578028655093799160769259135631812541428822684603101385889095965691035717500220316984717338480627609727786653029626899310451803951076357527342782252610537411303873591708877262742378539453571566008097429066707058924637854874058562693383676338646571818435529711357182724371203444898631114221018704029238868120417082288024665117608117774325273993047552043589680678418737914488995273025809227962494532605567157978300417303276403112678463637953433014976570258502033132328247170713897125618735932935050505392015981572407317155205273783757925999310756297034343088679275695537571870980254668947766728786629209384853072913610297336998987925685983200977278075496757560656014806053777210140760095234842678619263889071811255792057327331369221539388362318624939239910223214945772142234641129607761661423497310769197857128622372872435776354665538350695623087629882193561251965769519696245653344955807914829970195627544011667348643837327118658810062393782658925058808968062469418618474150660689030716961194485007612807309442571747042089355851510885946259903208815699408558595502921600741220748029948990691609075030684774329532293705431265004693978471396060252756795398943483598238884086693911295637212262480358196539675961642506008414053250688550860928419667645580518229716384224151412424455461853065305505046889439398810571040106115028656755469113462274150635813864188568504136971082984670405951746253373013679127077912311225785473413191187799224358087647496888154111981315540024366664750342133562988887496396193532646091955843920152808479494650383196654756022630884203009156585328904269173964204568295054347292357122334204634253266539031793350175159477960165137344716756716664648894616520568482142217225676153546828418699132499411755992361651548424521525429146544720804544943344459957076777807055335038543547624382668717016460796549586121735234881081597959656637214861738532852766209341622318859664182205712070919733909745300144694245367550522452313491200573006069623836979607675829792777372222434742370117221557843475314507479780485880674287574605533657932143908464036369998359883221009072807249367381922861943114956647364133592490200806422691308057465177216905153565681485406838095368252166470725559502434728715492241608434660975002358490180576317239255415480193534873598952261024657192806613909386039705675648590339731946918344426764000708076882917471045543126672085296192822840482341275740734657955783686643996100746227945729292513522311450096996564546676247312956847144813563686973026834115162855015693236873670961306605634622970646135780310903442067851949621775340512546550528807895194873586866711662204189933446555878994553940740767823971304976649594007941626434007479492651444892512502462512055194300562194632313253696424648171565142586913128381122516538045559229441649838450496464685133197872570833883969173179707220639791752942721186940605038862596114454080378670190267889890276369484884390680780554356089245835051649902293001040320480757679044720308257759210271041316405014411347968184183524232476077995721484829857027634710858582845623823766474823470195759316227981833397186318252271157150412554387694320529432908756393697746855019614536719646490650443172712793025267225883129541693149366545882937795090183832447577003634092113372320022173545967961942352844350145663409760754807147006731810869946605197412465302603076859239700908095200161992726480834857325789399019186404965880427198169416427616536154054198498688112248504563090856160303648685269846158952805716299210448785776460386870268234954243551119123465203578907466907367686012684694997125803233339483555556366268257783282629081126718300827589562377930618903714126088376730897713588588436220167478667947583772198795982173546256682340230174059519015633943973583276409601182057428762586512254948162001929513811089666166080538703099992112250914967927298393653735286334000044268549888136419785326496066854246010078001291586850903507518179254970613019804244237571682330589776668372655870689570463941939604025011916994977821521740745192463274398093427321302997651979078021967145376865295701835048050346398796089728608819011452495297073759234042571034615227014431934575615881627206214608632716799200509758201528114373872099190268983117575299462355762772576647298725134708390517078071371700662051160198850378159640027926837512519114474834382316747841703195865271423934263880822233920270040962254944959601539348965839786448113344490097310404690072347512772031417653033813091932701231366785500363986006027516606962553083198781108299219279970773489527686668843405765090723072967171454463406099411682749685388334702569251797931784363987014858506057822817326225066904482937840659811802614406191846668273683269620719533345591233066761052345810205142108334123506560193011953405463371821565446733694283473796008949576395271164238466543865406916015232516187892035531894844883114897684131725723968092373184811199215876158345249214029915753178390198950323124673207597779164805870792988114891436161891137518022340030303782482642710745074355953163259266224131516206278684506715397860192043718210525624126286447123114674544070793818819495434952275971244496727355584215951221323285090725132171933879589960285803709393022300934997777540056414329056729761490062017211692054194270285448671810304739092461581778327515260789457447527920896680008545582968291385602212769287558396656152496599857931115077972727118119537351261618390351511954508798254952737104313056255321804860690759949395367264891236102080100426929042379929151905079858549478102706938927764415957882843537515563454318477073467976447398603136995050173166002823225835970657898859078204307454081636379513552461363058814990407355420708805331099880548856332199306894491428348271620187643083650127273543936361497057780993840441047291788234113812488159540140467292971907656493213246943245347565699860072388414938022208477219834468371770347967253157638387158082412682677503227517643243420353674214932129422254090388023598959942797271870933586295860069232488225761254787091587835618748331769230390621594185783093803450007983235614815856159066846325475657154937028720163199967491834287893980148952426931158026773624728429057018648561101546778692460475466709705815355679320909099530210283788854482431655827072738688912547285367839466929257452500610251180582645086217079194981602228663202349410292183103055684604311853251312624268338884722262208106895479562230491292657234496990074951150641616611361820578961923367748525529566500299757503393974254083568356519014841293785988868127113010478154109743237639580861195859767706684059733929172785922491391921180665780929865514347395215814258257909640084362960515628852395852939958443008609662982774002931014563494636565174227707212294990166274788793456711910649184473131983531660832034535899022206099527714111846502990488564106670179431243270834268974761027802368816755275232970885493760455826908423760149621077081226657200488971378168563160848869660874701502464579124960145407999036636480111136988754152281998225672928718824187566188362391254787877654913084693841564686184303031709889128814839427905156614174808810842988898860885298680575683298196123444613107882617006882882729996236164840307483472984406677573684343001527041821772777194437134248987076505771405178952498894920589925315588378022734115288731303802425420137737190445198245203434396827528856045444436921184734989160332035944902758609245905135447580467985276678475297529936133888874950964734644663821729579885017756170103379747484887861279427731489298194771948535777917836222509694390036707760483673486333029742973301870069501440650414492041518863299943749489394929606547998323730872831556449069876989888252997269730613630871831581472180693881921538221752339221810040888234415333837051429662779899210835920335263855016544093046013821014461670870613280697850231123341021951934525661290935485300945756790824579075677615296240310183317865996701846405513596551860574513080441343602469177124994841572839070772501114991582056727448387993916372340106280585867101523606857679720762040684100915232728703538358244855237760688904812040925250239523159992444942463691337762150386043187128297535639784683257253214410289436176238704695352215565069953950347298892815273291741080575124236257501947346721279550375614567158262884809998819460213547614961613265738257525712854124558951119192447867407229414884075798896099401811869596761528410950949711822003357650782697088999026889739456927648878624683171525651148631605838904825429389923042755568462938775019128430526572501447384246981016198990656120624185410036132217012978037151673851952266560746598830197380778252566720456339823617594490078684588676940768102919652020934282981372096819037736337976743951963129461997427585673588594513075129254812327550645240400689732946519990033915758297935338359387538752146077352111948766629198739348904289683043610512781673966497700482179075264564190918174618435826158958357653147609813395097748101299270771182942000786353252883118691980727453636263102592328789188199812005620880977191881886069275012763395876787814826476210425357349973569243071742298171878276579274415247141459391559933761548974406027149877664356483601813685318879276468197484924732388498521608921989515280375224510303964581119275468300210081692098209932260775787330158382699963651331456933756679007397755067628117666096475184740376118398586082382995630936145858311684814332429536031647341909213124878939106600840178530490718834544115298180962029974294207504324778055547746846507081624652556862542532423813273541448383745121013096586014762449525897747715852189722549930084993757420452678299577342533875241090589674322333639001990587522819119951907788638311546224664805984590308869354746379013717214681054144425044374915683618181411919322480858963091225199277002561496366597244351342475467350229301359254481586359634738847433688431619899886864692828876380162707253523609618233687427958688751029268340258809312959844884806867728893166067272216134388135809057152258260514560321468422753351965286188980688646149305014226200606858345571963634912200485369879093174885837345730085697710456919999287711584853135247650115541740207888902762758037193638203202995333543673912321373299396584140284583050650996048368890261836544340023490701557880254998801224008828535006770803276379283624177712350136451537599600141095188921784633427926001497511901138842803941814833786257368488384992555997316072187675214998013088304211005147805055567027131342286347283356897983480293014937575819375944418420912047086003915312081500635289900641512583744005185532561147230629403009642960394410934481055135508396977457368844628093796834820183938580468379957165532247472429460204577986518873889743781775626177968800726382672716253851422832104422615005236016990513804071450427222561353104598662868682243862991152634058699727848285565562805579410278169870623702685487206165662768229868557684183055651420436384954488767151834056124145721439048600406564666915935967407938909755072812107048729079609373886930581576565037249711070625863850911539711300145592132952852928750332716475518710976584993193340905044300673157447615881952408323813883156360477852265522712332676855474714161106183430418797316418582788412705489686293765958396640202191677589612342360281484528684108667429259110043490564609192792212623480259693470928103229050014824563788777684739245311252703609382882406116599814850123361506278303178783642300419531131340291938012762358297809869806477951700148893199919567443291883865320028820871198884738104999237970480038216113472884128816776904032055342028948954217750069418488539845039711276236272045938071277661352823953926048912251234215619213339261034915565332855728152692127378235426735713153645539974648952727086026129685720847684414524875279455548082039547732578412575595861465110811456865512348764624764556447424134351594195433255255704797516308785612182078630251678516614027216690390034103489256643866630134971496452331033390510198516486349870972453792215787987285658617034521262107950568863643531304217673637015147674495306117863847617833831273298370514972428177719617519079409610899514706592116670901513877723655026119547034077507135753092926469251260095562970184040866498818950950753141526075793588993196019700094983697002689239055576478028538760652152841754051362768145838737113425597679935249157828616777807668597540349537002399784681399855513161432585494086614735667938484015757997674210536065505860798069831187203512187196608579908922415379828690305550578313356167149590136114752927909520859265008318186511557261908876879176014247723761930697427993023173805662258024210990881769231797136373214711932300241704299368182435146967879834432136382678859625220657360852214693826078016690485340790357956737504842156673695473894725468806326373426602913582231404302571835484179558948621660670021810967527055742421078484617327948251344416989186942343748214020959524612785696265871173683110711227341103323905738749218096220962038748382988830257743897109206732079500987738768666296171371558664866647539341450446330919630849671726599414941940752639571949778903926326213227599706109551627943311524699064020098703564931480229926406613180034397652358407606839508045733544856602394514847786493035394598161244736310532477855640057933197550647883618285913329679271868456551114990304088969387756136866260291203841727538131532192864892077587027395528361201112652471220302251614477757060357171830184369664372108196617893739446809901450516147888351961299459743279298408247267393635933331800770619461161533141709472206347775665131611454605789895479353447004347379481498231834425230484258942280245006331790193842888209573441937779613536674100659598044285587760417192131024179414285534704818304343825845161218676860258000797119306784782551380271505781446093751118182725658868568110115424055464896204755989127408369071402012776486182071632227931745772735718055308550225854113899721707778629511612818332261182403655712226220901143970135221039418745115122727054767796909387235930812124420791794396377445577591724838516699091381746983521886323360855045710202357080950381182422864691803758300819284986897043368758276403742782300610017745570608256261765374470465305996020483854348464280648868660649871519202387852445020136867031988718145804996754742686044976229233445242268448786065333781913255860317081078282579106873819845566983811584509684032883646799820534791288919009167128377843949797636149191547549229450238368595348193043592870124872532023418807812900403873343678658763727818251865598618357078525308764765202829999350161124133127108173213446616874385649859097915035922335242256083687737253851445613889845962029539761265599960405517925071077180177721421511382657569787833895019514942756959755393731418279027324849724213315819591287654427735196812297111731018011243526597315039282665213052728180664333459805741527745331982958857218828649675325753526552067321033238120620714881124570129245713410865075545736111953180782783948145835474081165529561422837751091418961036268017629196056625500297071673636832414869277782938199937918010488289893313807425742987576524883144667429067103082491753139223938634885356843050364533208968270978500864911403308372843810834268997957507076370931266276690224988138015376644899913343514005742594076387597456804058598877801235703903924395463724724530935853556509092084572274275546538021807754533439075138444402245853681499710776123738555786835168133217169890660548282829538391530424019389801917606351111255607621821728407531785493326584737319143146864633391533053997688343686254416580047841060513400129614967298017566918445831174881303343670976098223128133136937240008102819434194408651562511877050080949689516995012605861040274597246271569883267983834486952708019100561448061388211051205892376291302016135684892985085329220942290066494975195856605679103181889250322486862930171890465011616733889313470538047822623636079641524719336881707688786348317811727407257456306739268237275723349204565732511021436273418563657980445746122755529178239862475405595642025903385067507949096263338194269234169641326324519202235988717281814295423052415040659342698645095266011605105413497846855142575425171388456897467795628473113808689500824067092827958406534599242454786546674470181902432166403410954684452180430813891313081408584016948024874289174365465206277500059631691732784715910156775384444287263121749011625538382269580408203207576563521856989477455443879804482020871540714511213451614000783156781009258339089132091973296121016703389731669845661466655523467314860493945511989686218185766701892380188716146173189405359221510707014236183974196098129346811935468817428928187471318429654151486984210206447095288225783036228470016353283759861796005605579828682665559716420884934262559053348236961347454935389586548706335079931265499222173180067883096060598477237423992429133419023485331643236561769492664665528912202535205866836025476251468300728573201140337140050514110449563406143158971212177077839184735881820553276328965139537295562096914589617779610322411124278667467652165424892090827662434380010491818207217217889142187840983424740509643765635590316913577406840525747048971131736632639372557430909517039400302635973805199138176771259173113886928438365594367993274111840494562028923111317765416786210040630719597155538874571532314358410910276837779645595500159400404750745738116250934364795705107638994030690071336967114023233220243572541989473545296549566589434251854973892473849824166509984259122151067266593641770678822138769723216043384075695341293885859909048362139183263307945858175472002199600033483166310738677867082971586154415318539835359331713558307792102201901890717127298755966042649871829361306567160999050010513618839328936528494278874929458755656371565021376185800110515956272677647333775736657486570139360076282995868811763500014081678284617855174083473367535400780909435553796872808689363361631308384259102602379410580182914619296875816570086972094068747621619440878938279923411438602456108464380852848187449009514298833549692824101448535999724955896151050076942346590637749726814961035323641300719768450069682347461648239723042694315785479949452337116303078730738493487002302684760539992294165525071480305674099875653332389023097155536076503087572144736399789797978101207539553357920876023104586558277899618190898897795212007446523119258375860537491196484570888805078453872542048289345488679520923885792693682199314678925664562329125187038174750462551890746659725475037530150649354388541383766001360983725271940397830891065458738429612651302553427405556266567818778106836958122204891748038184170537926990119967496910847988625027427375769854298037077639660143040643234228694579412520498315984251027944274928862908443224015654719423104101775613393962377465376913151677570833200120651010374792233105097187389739041085671126193995169016643945621889676851134689858570957558398631370582907863613467504470469691076409567448525449533090240423150864124730102952219282269160835485436944583093810002539657857005698989271755269426032800428906299908294013361321287188826069133584854994342931174326085898074588249448675979933513525309490011383811673839085789002319016474574522775841620574016490291809821673955976209614001768105584082286095292073356101963815707469473835390539593987532882849198584623107900595012463214129836786879740173324487331655050426733175742860121368114998637530111043352794594769248770973282974260593352539209853510894356563793942621785256691287265238455272574462987127645463188669255455714654729590711047175655137959742271837981973622767494147282322398895864666846898209200366061150966865728102546767396790857466653945731278119516752826349688021593980560205382045684254862081122183207832523981925419040186851955611814734555478777117145592979507722547231268050436134553171192889909981650012541854808337393291444980010278484126930724250668937049510002492583731616463204977190811388536632446952728351440281865044781465365187869519821276713986331100550948080672733415000570249065101454228572323315019155113539569602927849682011072835850148167543347061400922618879714581601229447071884044290238427972064080050829224353448018893845315892594931850544309046481210647131531724161048518295284333428434823351491084612864012646209189324325719279048699103809805320318501646158717680075694915611922026478917790029744443793749186436245248359423587744984028985459678837499695114895813357903993792338246529461144057270378122938127804384052715319553429207518046478680071406549194848093311936817014642194105654286169815823635779233159672823325308816284490097931598252806690742474656489489924557650773312826508804065824641707088104785255934259482936268168266738029295539738808985103844493463584556502596112454597309170163734690977694137547344199367893678320502190912536498035048949270242667213661900455394676928774212845607867232021627259302951320212006999698361867697330360960451713774050527723987461333566219724203492690101591694859367318736658147544114142262118087623611823210977556956237808661242972108151933524257337637945348599938886523936585670528385120988229508701962578366624978420172618694416286373667230293420912098899443846897675581488233036663055370320090745821845788610846539736961366285074595102797396457511986787190843339865121550608581528431496859190649933800307434628002152455011805680320526224707131520496792945106241348358941790612993128852390192624662229179429293289405408056365879178050309221563768113931812472693071577932016983358054160453056229910061111456160032964743738278137684958576059795692668190648354074721557593304493999876049498717012968212971627038578427305074970439306958899165245384185050467867567017610787591668836681452783868477467453184379830708849752163749392901308780579844821675350947984818599478503904085064612017209051414253008753460100584896003702765511264076704269497246120373867838284045905149253277026794305387775939507126041817102849858680583578695869220818615099221962146986516032586396817683507637088141702593184309555183283991273270962403313437935585668340168553835824712897391748925201022024737395122979809156886939551642285201548716324336697623139575016328313738958318214688298448733789597296592682268524524751935990991573713268959302618756283280731466145996689468799361389603034921114640833554083462870713993076724770390336811158583229690283433683941195280964398467161671802125281892894434220690171120478717188938707741886793806003874208401557820658999544589570650020324934339582681217305353842462789420016842164389156952934906756471703995281492967794676180701845922658098551383873807533826136204784636795221576901406360972717395054041128000568896086324620743168877450992674426607131350822998405742337155490856270010694916052006786109721318156296265618687054276279930021635918306302112877377754206647817755239309041839335497001034652796847894669038106859462968945917260669555778021182977913677736545582934007341943906233206493594379764875123042140560950171567791390448296610854550344125700539441476451070990454411839625381969730659048124550777059384450524266251004889418200435088821835956994263116953702669478555903536958785274377597576096181541729149887569474285732120411133958015766712205026585303274296400684690377240675831025211407143556459964574623294717024065217936873427015135595310782267272713616186690414077428564156808548723004446070802832206229860712536179669924356127153768480214139299356192739202954543992440882609785499488575001561137313118223916599370594879410545008452513990480339084683470059938127564294042887135141649923895705399769119456821591191572176641297998750544659794875274129398013196773594764321267052110697678808475041094271124010275133862885033778564995684209327750212358042078410697298964888113060802012095408902974496895229635205331572458297562225664289082111029033389858502282446135293908133157164689937670038862522680711984095905817438673325033058308200264201736412167625641129687978239402067633039042918058388335616265010547984500196479478034600100096335906047128524337184784770077436827450802719407938440257489834056749667317839405915574488558010074126734066521096949621320377924370209888674779597355704865106003939091347920519854735333030854467239090782979717720886543185290745931019422932635303216582732706048448947717674345418809224287645509769746960719083437193048164117288026929217917963972988269823700570927190491409058001612985052988702857969626028046897926279061592585754577626778816099941140231095444973690923857955524700770927041539359049037049804083639271511450873733972679135654709015766976636741413577073393786461364186599805220249736273123009665658438718249508405886207772148017290630745811130203169498733271661096850384445150297540198385679033579264440901206973379668560974224614840072948414966262203062025235798073228219888427496769037314277570591700438684745058085285911542990445627287540318687573883446258743440890646576987276696848054600439234386008131490999795421568628062453142775022188946723456871619115940087046010049271063794942635501730497493116828327787104423452944722117058179437781235984266403080060943844812248926583797679187661768949925265074387759376536568996127906739563941193099358115000054655872923045733651111151548173471826983929441443953149206848848245656087493579162936321108865903633601383323915732130916172222877008610033995573642950775050878192418279596465782381737821102332464983434194070141027062709323205600798639351360999327878290233778532591430480924278682531038496174094060937422483582885822712639879691391939536405869026983914823302355911983421079655170314198136425219972675389091377613242545459402724735748632072368934232385574171925353935686693938051783900152237477868838398292089385532438928697922683506333343701679362941734386660769628334363690199608945441117928876154231617592053221513518012485825492530431418636876967184609234084556398914574316734189156590767247285037157703669702186748243927186709713269090008031997717516211891375074973014517789262920198771113520539173927120121661568567545796534697565568787432143095406897333070404603613187645843113776750497137910752103347713431242952418712776310549646211157620201830915062086820970110477138044919097483946865737004262592114596951534153120707010978303576569270437908714133499758739592251139851979434264738401834375153593885879560715188095635337653567572237079529102225128850750462679549070773964478862883851103035415271541589334565565858561412098017303848274933507169126355816365836748931216861764696012714748412357104011052002912320860523685481072892290045161475611087289191727138742921994496206169804896737943570065834141186153635467828229428620026320955810139340727882543627471094688280568391224143214619203599033051468701176818572812590713258600983739327821308255972837765579737916893303215833904452467944920540556658644692375671876233093541054076147960811345511338729349402673608010500222161470319039369606846249177174201616943096061778341458984412723069821803628636361419652434719760306945944409356164330728188320740606925252312690361672685529998135800550630470083893779891499496499180948559186818105285085895467539032468711721841733221417879287220996515334157492331691245173526443262675051908950588456514221942803736734605263414736473608204894176601914299555102917237791620863173692368275994186593741942131249275843688944853777040232166963891665326071174882522919915432874762919915463658777051977786192486231809979264600965670370182580386611637191927888701945710713641449419521258752964396464544768214013528561403078429794776933796557875327586001604062649053388589995967547446600264591604080083592263049997353039003391036086669785762209639442549585242512638097320634640710103599171341551759553743088510710880927889887705658302993437774671355014746957386094783026715597345291485134125303069885770874950519145457786470890815818214812801977638748355466195968684669539835741694705597069325554055698015630942321248449344413513056821840912413183316221960196681109060049293688120830604905198786824123607677315556067208200192957660112278622186450718243442230669446752127577540167930350411442413799631268093136990210417061429304005419220923326484764202745022550599990575637698384527278122556302058519695201885608221636900454717988880514617961988904773822335218673027523611241334194510625572111719154561656334519079966131787450719938286501275334497729491958162305183486547808478230463316009557045822555796950493500404859450438475327385954756398830958362412062764987469223361167176648401249767068852500743906537855229494684146783218115824255740947209935997447210354506009871425751398821397762131002866200409915515598309689175923748921350753657254681185327034161972597707459464206158458190013774735469616100932486986939213503347061484590313959478398224648170973517771090209840866418916067917364173494406740851949236648238573175903254735262300899091993687061448904419262445226969663859676703021275152259453997302978981287250676323121173185490688355219346201620859862244669711602964281818603203552153120983856950015688356215717525125427447459444477122054174943831793684240706234000627303751217649941257934287553900377054658102966231860677439320832380937366746533293228651908165244386519566526928746936284375708559066060526999293119586816467353246519907839223879274216199030033247616569017541210141604993364016030815588040351117022540357842700658481170462257334766600287261090570502663535989422477293150953970707450086514570971569405389224339052078653757949437967230391666201933537156598829597084749987372060837280372176309508455344650274375730833878552490067847305466157550933685834792942413047308568908975727960836707405030167852847542783018337103486385430344684433350944213238294981306989203514123079105016465769541581496750597441351178015595703031309468979408968404972483711954562655011163847988689936095612520703330939313366517132975489647979631831006434152761685235207952300935481933641723206243092508610770844449630411874098995733547097778876306311834804249550847126975588799928923578182386560296719097097925451804486878464300418530082334500632780126642997191938706059089980816162102385297496482376559486086528272636711246556849933140580671634026206081066716343495638797893644897430157128409016173898072023888180349692413387570810909745618175710483317225235371411403708260846367841217763778233749597942425831911943294401901563048670387730633296786637446451462666574293743286743994979261153943974891907563135512964276710063919087285233495432713640701796423152047402699987700794386801606128342959461066756307983837831820290038533820082893140443309599831317141720240784850006538494901001725755193647355508998150081679176126869630390241726367838806708221128317224207772802888105875840940718304202798735988499294784030407796116111098926159731940908511353869530795426089529660465039508347795481761226012469336169021877074799733907928547920879389463715129682222680580981690587839724864846209443739712356984175873745159258860876604212326277410614196285539881080251833735661907961199616295184063036395124428666042477973147663099999796766708674327979996413463869508941302212662838078142172957624629653947505914124184997679958000881842086242287207964267825272684004105503262700632593822833672207242227655228196626236298490268809663785321308989428601432946043157241498709121196693503034362616518283293564877997235182465329972674344233198768879357972820626866219400576621220151551254127425929086766626065279372210990373795221845235421283098100071398285032212096436986373615307261526961625651135969855806344469717354235632357250253337268997107257154153404351699960161789817439255144579934167505445657898447883126868115855448900176932382009276188451061298248247278649652100463875966123893377904657483545603211016316919250079319363172830492328835549329394980129138218804717367057789834172425471601790664258833624516008753440787101678481330339974441104027770424940053946607601279867412802072243418346739826772327284308772780566310373778094027080028933960802851505742211452049647657249752669366171385442210864925541480817437257754902311950293510528439392306603001715988394930902540355997894884760795607465783667079389986700903156716504559917257924993812328411124674264084262212957769337009176055373031604052418770816831797948950541046200679436026628189383493900692570058906290905429712596887232850505781264461948372363570590214266294619830374138751932730245766301908075066416839941789376435065398607885795778682707635499020054385256764476065691690619450378512856728560856638208718258268028478427753590793911276244480978347440531831764668685540690447610343353771952086757259668297671982221817445289105870189128815858452908593074309380047705420217047496889779862786180794290769127650386310258277327124959660677528432701742070557132666883245757432774436441886448928688021990935087057531088028222223781169287069923145182972767312272030287888905455278092717354231426595557632778947964211607403341243398760277117273737981755396431150180424605224937340183844640959509831192513467232661692740230567056839439000505521973393381523079647521639752055466869293963737511242169454900173987790342299437051235818103198721456728984926343833542240071503941444697408605659786714883784649418002562928578693135556835149273743622667687130028519862563829719025417377511879424733992147860034905067775859517498376065463549931765608857304512729476661289006107534746274898528023729480836781799406194302138556999691172284567820566632137881898826861575911422434261616266342624691347425777875440872418586356126444964435678839191347392315331836766215533333223839699346640472025062084514344504800721266638422276046952924682516124545475779967770869979132509603628875212120488610223436649033924572251124552087886128657278562169131899610812573543577899321665156081371903309024006492528426310459268925670978235084524225642111267840228181546433573529994399925505417895953935165962301254261720240227888096556128867038626891416690783055628903432389439398542480332810546125298967196579923670771523011935624844185732835348117831737893633273133795397983501137050876825689731354975841817153275283526035638500158507893505637686596596248970490652603001749791005982754767601675595518595302813555077885980027232832229587101073558896344799318722104662060752095909723925626558070656269694558246366367975459013657319701352954005429003350315947165830030501418725658126116184554600059402134711492222112206889736124548099007049260430249683519602856726738721561176256088614428951689699859237039287350681680364492529000109524718812424024768662406597888848638458562489141961167807980946479014544790442350197038152695164671814048877083163429941407983945857303421798906341870421088913296482874060260526665751346304389533346735508531828770112629931216512381234084094851110278283178108620222027260016057843275893919909328687003390328377658202388456756136486948194889192212053926053333051214610678325524214623898312568482680220382813940496717890690224124339273208446645425591981904782557637832841337567103595355591751653846869871093157303302071289274360635658990610325500454110969182993668751886304890361944367324602442479743551998897550523385469228321912853897212571200600427031162378109318081365206873659397992725641997863658139787358081953160705810010033710733603318298619317241908533248865221053198505330792648457008096881188001814864375083305522087273737114208313891495549152119799011819796811725153247312417722067709108934338642522961153386686197951999451188613337890186550347305620836060959568010446919522087479917127020779875686392922532061609031995516188309314568553419310547789865949177528177648063442195029476224344998491655453297414758318635408766505625164174010178616994714412190324717889875313018836842430618465078981465395768207119291119197608299751012285452640512908311322901470989601830887761287408015959376996864519444705797103664470306754130057532355452450219705335471238956216243454077118375308188739881443498433183806789877061698860949112409002315060687906488238026192064935497817980212402690034709791730295181026251072523564920763282394526633982722023529160169242341055679804469453523733727440229269522473340495609976788025837079221945969717805434736114482185584581537110090175897021471715361321439841690275267327923328758863904651014607236450637759553544610445099628342637014869221955896355036884139163541325319802748530470394833631061260040042625374253448597916622623991191514729591538166860345708707927408294707458695594900301919738640033673228790187526979841342320715040863442252828030428058274918226420339754631049735817561752630828117497148930711650634302812243614194430844577900109381198421164333763503682609998454729503070506387401408667580614619180249767252126852504908654027721153184267946476807962592401763311521205047272486802499348957528606983377619842962433946558501075452399047072199639516039600063626963136165370558341557888573953321349039151315622835627154301696663634839388531457386221916993901083072374736392466277383546503037389807920778301142393680044725828979282923923726291871295355812902621957236208694839047943229119142893451660911509017228403216911035951429097582388144720526963866552811191075200824959326132152145913402103403441521790889515973404245237826574164265010194805132641737883919619736779304996006492162628601823906085171837220783792647621311452677000389400767009437544069284799537460439671943271091249262210961377464004358191566201272040516936268522156782038532687537012702598903484496175556406883682836045714892638314418791460880634029077163966232923162472449926924617330072661275559886238565229301733025568281938393066823579224995388770098657630817107735026668987257308099571595759033607418339006221191160150679067467597145858469016366227247217610661513964005548463277031704157739473189090732683167274744520444482363495229540047939275257917045737900346705282874201252990302204295286058526225292901943818082521658026856809292574566925243337011779971099684960307377073772449892049721751048281343082077343118858156639196004620258635722002384547458528241740848073961423494712367034350802075538368247284868259748242688811554483986105791423780859024835705143137446969725608204882483631196603831981444613175002375787173905733325823118754895997072480522976419288344682594032085554492812640618966013967828619473355418467644651805975039819455154394690264031916991073168875180987374647796153636231170108850186511600077620978300505681978224016747616638497540221096313388340429807340435185658848057312457701985071299771669771371364406518564822388542449555170131321755668953281352312533382644492594615407584800901511418757475125335836440394824658194862815519885971502226451814798155842185262596897286651895952562091694524991067621492797529967149554381250982606306995375594945557101573025547381860128697037140070185591809798874670110842113715328898936696314009160993014879353640882331435088285615969827454877641450845246192851959074563954240864268392078029768505851285753237628428457938817496824117857559646271403746226528054078349614696204273353677958240128577814866840236491068340248056383447382642805431662670243487574367946577533294482988064281848546601995024920272564490437048717504698337046576418773152224647372528711055146464142868266955658265801893061346535198420288465765161359865569549500459711348983180063136630073674309708693498994683700082623406594501802185883578517101969926549454144982104646193551132110663422299854652739842279735320596180191311231263214052108388222951129615401883100753250128458128469924800997334867699444979330502094077686762857089114996772184713679187140232807575895415848499762736118372318946991095634732774193839949788061071284313437020909316208483291646965154922282722813275197445690932592237472026701870283261122481938294901426596852136130375799561687427263365487823374354765267190465349837825476420920919820290393219746532139611069766292007322200946607239931757662207137363925993273599172120540678783840400158250052879022903418279171398727926614618267447958937589897769881614662363249453737832898017759354904048648343218219124290822816404493235940324258134728970425474235134593420799748124794090524629212055027289667566604727195532451933675422337327431267786855209217250872839757320163099535487061700764088945517952102958794263861161459144558908563951766338317120559085744973571808382514346189189656582592856866401622451644113017094235957233212310829162864011872886217386755838361917922988646112054615899014182957228347023613601826780146467137859735774272620532528051328166378939391095333164672948585686447454776027674391341680002308271782095783464049022964707684567298090947777320369655921868541870494164055665904356031540842272711276187572906504271216077042381977743191947356946740810884232947978283762755860754394487472948525601240346513693883642785441435056784725452295232309946893422994422461052030336340748559231790792369640772207796563487763884792694283460882789432744180604940957050328200926099326850429299482869585065760939919293684784657630590996396277254266491236184075199653820583407399562733315631074412877216472856804151133310183674696391227095516112239726803708575635826150577397999841652861536731705189227132921357459974971240977860694356746320948931760200706575712888905816813886520320795648756112542813999483020767335402336288352478817412671855594494656137704056679201631547446308794760127190159425947406400126219781621187620494143712201619364562539593901413167179813017386072339462702518619795513003266289224218268206423989007015411622510293447095973115346835042356883707731439141902851368537381856104109288158980183264743732679760011505567915746702766494487358899330203072554836975442860681848710812084546929239951640222220168484228182004340559102111293671560274576741558168417611492485912436795906391014853444393343253834706717482522833886391881077994777363542425475331325938181900007088597969140763331011200569859882097440736199803770037451668030429556669575603231967775817776442882487176246316512774386723573791253990462193329658847235524309719688799071366677360096176389025346314826778355460494968252929434841028215797384018031307236652148760204248037733577859938847403598191861075261110866650465096567343155755800033410682807200735248842606493284793785362814321407753500502211086045341931417247544022319273560066759959619097078186062966876611791094388097582639153378251373320676004179900052642344499844082341024893021211007819227137304052730399969712459284174040903596342640307357052739564228655418057297518602613599977774846825022494699097158058584075570201041462205357419870096334402923486822784873406170532815237222178229490081488157760710367609836660771925017961572736529757015838155129975556045455265021461766203527051248397143950839364551868195420620215950062120947280425467182143450270984261448348467492382081716824796066673834498661155673988821679539132076276509085363455393495831035824165735429835065025332455110243221166581460564339045860480200667946402821859126985288835081579647849493944044952563141428811582407585254431945244195692719414377547065662219234950396151111539646179134938226290553750130583107961222565075618754758837603396090555469554002797950748556925262787531760496611558888502586366720151238086870682858131685137368342115005585417601911324893360356626134152757899919507192256470190044756019426215401868583012067198576278975822383488240722051512081546251914564917205220968585653901580802229125255638513516731802450966496981023713607465664891335831902181435214516527113529547284015938911720222311106795955135462820327723439123399426222466030686697207136823860891008521500972691912914545123268638893234449434790489916835053141230123331931206450582278068193084052927402680516683392367351414000150063820244620759706261661947187995725731920809003684194708624284608374731087728104471252298250323266911470114551347325630576338535873701095650240222098034643494960708420004641773813093802719835920474668471007387003735199675023142538581943746556888724734848115455692198594223410133158629282242391382185226143941347296318222849786264792260416954319133726878102689349314265819048106664923915094070182825754259722460216691431269563116556305875171287429581235651235078089661341402483926962729455591259860506895440419627357220179085564686276821070441461053437077009509720460260297812549587714227698600873135200234591104591135798526622318226542597752572629784498444657908529026501609273729969188607819027301054450368029536892350224476038265428464151774454197432339296994877263446133522767865202601641506760881007852312674706693387764361548386894624350232930846907552055430352318431237262825914821029497447357101056674321612530871592857899402589373814267638903231356769704268101282011675166637705764807276324620263139416473162000678396816620286328423136478128959642179682573102069087362084499219702608038579537752958156502116667690221539286514697399387086107229298496248366510166557731489595465362852075393335970025306937383317530734623756699829776791962296664077695736510293243479903739453594647565266972627707168553054619164500386002772361112601213395507910321601474997791036361153388523151383831725231410079225409338947118779345549546394604791849909944254545162622328013272713180731670862221177888248323522084431945520212262783828476355057281144047705646625569329945546618096014113046598869328316328670562722562317225493605616241734394111574465870550181628021141685764780925428407989552625702176412405951190612250580062021748342030659080930169532985797824578634396592382518287544395013335447839971175676109720423476054654868715501439897692933902488977690666354150802214482770552452602623986097687378465694938040788413185386488635786915980564306878663499815716213603399327230984126031942225360387067340840362762277372710055689067194334585451539146679619295411087734557229698765973749252401880556932895624866833684027512121405698449687055592385405057488499311664865192617628115532334257092712127213074602575905202982672155130918862405378945972977504494320051762711940992767740659273911031114229746841593832966459778279757088454759570767241655332209456664229179601721504577231095189191778390894725182265612658967155868494911224941724677107609954287371925717950198411644143264611849528609241784712818546548853618878458385872008077864080937773753437425771867543929518095407744351701505210507847447753529886136345818771308026756794464787235424163686149783856024942208946426154885159329197353743702678680699111816602897595025868731581297980782977404077510073789523102437283546215019562489737518320336475130767954476981001560475261386392301262245216558036937869761479972561790574792480682481747048040865618922131360184054492358551785897576568640643241278210532165031405831370346230689489600559268262052943934344614789345986822863001525172902390776310814998099684675861549615209667006644624457758446991351556816190657709461116872843815395418436423742199807011804039134591350519306141035469988030103004112638625352677214570210087085371927446802273702451351116321573890776405589932445890217707260179775574845169096381363887687845655104119524199951430432597353140748368203754303024049430064751940437045920441949086813576977018458292898394451223743741880576965724594167045656622588308179897120316748747744291751760047057215364266428938221422004139459269517350681827278820552336839973257704138834418943640807351990393154812030190529386966674579604098943161336181131878968308186894627046824740013948373737487428669064875829145395200434347641511011739947764148237813941605456874592682835435354583173574439500887305185235708301680135002564570100188504679542205484164470621707570324167230521704800943729099248598409024975232074229241792183971843293366739264620423567427280258613332051249442579232465350291186651365183361670439294445785851583359499160230948604162962691807974402239284240848969261215376473794243349709997989852076364872878038513005045010319582333019924754047843880758928303101352389702781538892620705155766075569536477532896625995813566455242381559308157693346942397409663046014152353744054801178860259570174198378435251136066584971366556816816954889257414637430991295774505087609956527865848828451714613948283124039584892739032532404700257605108361421126447496953057585463800633428149857814094156900713496771386747573663593806165652148606618468062408918018869115333055564957749148021749072868679090935523579237233508058307740509973213243913317869910426552578334561884539575307808585828149909160934186934191756046572244302955007413373948795295753134945119856274159716168104997834268907870295035045627035728359790258427661277807974068380353602434869322677309428398469271726118968196834987138019551230112121470846335153892685912156509350407752076910310204622133078433213465729672623003048505408289777137175254830457292870171755464209608477504877358476350059169214248502015136622161876394553593851123422702359482501920993686782737460712311278663382623487850264480943002274142845114009224774274955139019613689511650506901041939756300192033540770245681921832732198320161378702553237765174972247781270690485814320162176435543478123201696056534895379600976547007730830540888753306084699074146653835733111330189940841801736592118547664619127459831443400143753111593055696887155815136729546041250437516853341563902547108620019335683031066311668733988069444744718176323491854679040898867606411680733543373970755965182738754595071917677701331219173319351437568630451100768932339043441301911923138128791620666332246441771486634631199704557708168065097515248624209248034879064838338551449617392254318652218033951280365127184978034972202753802657641977510771974557648870827003951299724066549717754547336727083099907590622978674465955502945200901092964511341118446434095347861725972765331234046404275978749384641929521388045381602305611252541171751164542558323376616665267077933132515205122079817769448052880339226021019324648252766014743468833485770038226014975105307607849054424423865147839486552928479610980857994279209823537295464032333178533380541248486931253708150378799118121258475817153420734616090527047442892348961987843457680850852662275909280161264193560342735911031517449556818226380911234415168827577559417787235005549904504291728309654271296441364076728969475969733978916729172982843717326373517065960564412748797564450183940623753447499193746335971320189898582555180808229128238664586821044381853921630705150072932158764801495867671116433774691725303965773964367512684962871147362977321308017006373679953760740690078746970890427194469888196861822224718001868056325844936429881451249064564162203682390984382170349436070458747421118591318159992585456897545571839888321180849274114226524729116971198988325123319154979846627102618466098729731012154170931720205600243940098337779529215327404982866863390728884970149660637861031469333395324104303645573225790556259791651507279924860379203974770781563611539281668265565291911443219094722768073307271729788664850497999002421024470923398091760905831219995901669322158799464564677187024867515493385030507053934978389595231748547373941556323268123755730127593075780192255814148798262678708909791968229127850637426680998142773231769179657869847148804539332389920468174426120551679670670348467374424140548162822898237272655213743872275147255688178577593817524215477247649035039421773139136032184255671064688472101225368911706333349274933438839521802493898175028862548858909606866008897838112291221577179338728429683730678628349611714030801844803253878400109720637787054795297784366798570444727529339005775705058585379024297687818499407116771108549471901597349987487719431059218493965715274101403534120898378997837743369790405405823351774910853644746975974862367756578993895358255234976724553326351508746168770218753840053686376349461947518503701628907170958822226063818887844240359456324438027531222268146959700036197001705983590422591786004753924287540127856189410417833496827235008686809834262154815757027465775303103717884902360622137403248057344106029535345527887699029306976675025958944298980736628176441727064598452793896922606623158109513944622974162541845020016384278228450954030981261681688188954695687417575175663496628955007611240671073540360367091236257323531537701004189424558245509703755536703416523764833665416209261865607654925395242769115498439863129474861162980710887598666132099331410414987533405873291410289864540558018364925463698358534770373680590081174020322836148458097567094048961019450642021692958768443779208848022355061093444322998943441466880845236938615662821125698601229128391717210233475770564736744029622615512989273558793890717726195519531369267295179404567870110008870555381230983119056064892398778285891628285655185867306586444258898286830354790213289137627781772906290314865083080252336092218530316561873881228025707712206746594572429570669280250450110481571798455706443084798514895796039332203633385808446294107245080312293391093186348493281465108625637765257576944460760143144262036264523865768469239636080366096291754625567404920882627174959352790229744489084549934262985477416220307042309560558618497096606432889781281109418241450353490363098136526247777769800477254187429321117002339053784990149664631649451476492657309636840033344548262112350241802035472630284470337318427254090527527261038949829110888460863494099184939596972801104798725166689069696560526555740844732362928619285241490552033647907797535693886973752177666269220378526460645687849877502683682664348241979004104939584300257515908757881219934823761143744220390740001643831329586656371610984534929745162217648823863401097464984485849009648498758241435615565274906421114570817474514938039581315585995345020200873121168663282119613801895206251001533309830061760144905163700059281843568040571076488800890325415643098531341375036788888873788599763774812618321234337932737300720600432990930332992978225497756874127784558834160058697619547236911146143312709213670246654925842637310776381424736244339715392097535795142484786791147981474308195345355750622497546256093116285672266822222463212603086223330816096394366870077239748633302435233037877550558864173320768008137861151856477205901424142494252437063104999338174022663819653678244888395159369828755214721174086752920477251899910550704926030058601031202168750288473970827383640885400919893252626877518649515411833636840986108632541495098170720687536672948859670085637241912466091199326526838156853421620051046687994424594381251662222990688893074714895254184934746295040144340786814592018016225265185255251296391765537035644312369064914767625710668663730569917750795717874383786249665083193864252923125569074270950621533296855148675215144736552303595784481892344225578338356622305702874445409355372497989313695424704033596926150110105308421906413834919797461408070739999019322877127883990123398837875564542168298001586285905232589891611092056875981548299254915791236176247141415913280878208463019106823514220758505023274946435087327363688103722874581640132597385902281566986354844711127972124625487603414878427548260811551393335688811145244205384946687029975549601161490065846335375840779312047823299697204460408006005159461326537845994324953348753937995236750115354771896023152826072336262852915200836557209844655382226978181268644475457532924671461644962192394585805009685494821536312634535423784351450895412407465081773923518262825498045482412498067761641203091120605053266115144305793850338782506255885521332471817210541460824130292072091728466281610574395391151024512844576483092364925276800824434781331479853543472295854250435877054316403943235411952610474634706232723883258657891506799905891950189206847285668577023826235295109977263691755756575066023187806216929050537985051519866889983436700265523183330483552189757847482634140516803228185989150766314492709208560322837441988518275805528298920681828580032589659090521132726158934866871162734178164132006715492508069977416567898483779723269935740624716431393299200132935776522263177674228284780689682171359362426304336337168618480299540384895666631413795377267593297122918101539884361211915750455941454621313391738597950025678667293566703189373176820687986290970808691939334817236516782356187816143715484154257783962511397692103201243636892550875899021232503604121533917061110152784277366422003244934783164727014243061406757384954391746055038585741355361932330397137218808312749373513022156341926789913802037552434285496326241570905948250066178035123233550704155694260725772425605806259890174632643476426078573040302940347027938042343507021066698128998726481669300885091149954921123316434518999527843328701500960725826879816329094090714673290225071566334052268486221640608313201856413687554264964003602400707190366603012083281062736380727358224203816809053666157978895434895055273070886733467977949665131584464445873718972918610011661341858627603504256132963743252793589200400643844524516536730612724148773486769653487597368179502319917972479914165792724877742973766032702897905431829916183189167257400946379156889567280746366727030842821926526732820050099617071207159673069007640566380772425676201411972880710090286166632868373220965484697265906710771617263325503841554715418621514249699258482949456714449815431498768051239921939653477153700224816329873970608914409184367457812366671650686972462896206853099661504022888029276889941621656114663443650254666599689350956006338137486299162454772903697648302894797937897472768349738711754654473470909024966447518963796138067923345686774949705386680190616217489076832976316191493596862550973985834659456573061433217394865846121125106992703403957967580561909702623124538959034195624981979157711651614798940943755021387240258467070156746511769189249558207953153286184321907843639634277919047517291408009549033449295004765050595730716701196517294780052054353749319880356712521263443733391738082895750093219924462494281866803138033219411479735108563096888646684713378615993226129087890447156002799032764106126090601810569053984918135202163833462510650767443318013999617022724972085421412778546269423188952182897374541535164331178576802826610206893076897778116763393783038198092711205753331606082111907470527392767730213691247349836214965570498849712152895933384935337355644429663921630072349540738061085963209763734846164621329969241670191541000393570789907361062459782633461013335417027865279448999383507295820752817761996055247929299881699470166213184932395678526478815321056324213671590379237673619924873216374073940012962830891701057707548347370665032718933411687491239173633802260909233559741673249509886761872333437829959007776271530677586580885269960112359164861116924096148220991468541662695169586373167840598216721626480172424893971312430567921313232881544768283156346669732711253148959961764640011101752309829665049280532465328118525183364007999326195156146147619564482422575548853978976832324798641873246406657019363649525942275444431950694068561429253981957792908612052975030499276593736888549529581531858211656243193136967853493697042748866023507409947370192252862894119414448891602846756542270172644236760272422482820104779997752724522626253423625249345762662392728632766728313272915400654006749828108578136418781308116215499490915234129284898067006878784820019349925452674058456262022697698256097669065871745358412671687980207566990247869488415153557189982951435645983536819493288629154023086156583467560212689233610272545645157156689035964266940838577614318927600168843944152808349904137944325341308991704485893796185391199216719532788366993231816255118483067981589961105194258811832612836289915661567743441681993215957688401193502236709075627937822464130778019917725550309133428024726914363876251783298970718781120682123486274202652252213596031295808633295314977458200872434947989705897155191977347069849353394395676094942163895537023019360556625815665685753287513233891431423836933697185420937006827907462320344388327717183351599103893515998736260110524559074452479270119797309440332187276490866577494028505856511203522734690878706066708746527524571614216773639794862366946658804676707463151924902255923261893843269365825533314482902996606050622961929206430450055557790765086550883299021092954509578145311921827985851114900833075728243339536065559855589059587626485062308565356619302308963010548570154678353604676243224694286627297820405696436575844622330340823353977528992701051515845180916162179024416186443750444478396008479594711191950323740513050402296114480463656235142066301335569365293898281356874461839780396716528043376418724423151841892318753873194852549340684803064593762370637907469393446286652049866251172787516010170322066356966694835851274052363581208805577788619105253553315220604270501328462002971455698063562306207148882090149021870606757446187191448589079624908248585807201618815002176139877696578541643794162986646173635724318864363232447686812771260183483928744767084016759100482198820104196753287480584191387873019277112415641018109792529504269937875351601658771192759960351276754131776848974758020773721126240563982971079709684236915883749154514736795849491332236114337102119042401988073069690336313041005595920122298139562684946773974852538209483272643873943421662393877298370633507368290752454083286264275777146811403797185557810626870274751421251368038444997868165071660872427984713885139551684408669013450162841123548404284341476251700110353267874720298643981905758319630703789856234347889053628994702858351363199900917435632641766193531905998710615623898006142079574028313605328923870391685895155348178054393270731386129932622277770196489899586490851484321564030657066345297723968143791335504171813761310958274698348310765570994194126001381889731401843091553197354914809885842547440020892539319101741245580223163967488203065544655207834902885550581250806345042624478248943006436912215823304900152349455040061713053728548508391435141012806540982365709323948119613752438252855648433600699977289246965138574111966118490476901851276043771918718682078835513858911545136148985859119330926892256393702968761924528562497094723082916734001159652467046844121932790657795447637318912618319686230111577545268564049361025621764110222428948527301595609890884506797962265698086325144128775748366352634169230362242630515519387725282763206292449892221094532452022383049159222145140028871650367802336383150278844521860637851498641692185017485607447693863190341590446468968242589723266599522910594996006700122610786712341175441342631564874953837821491462822102648166566023178868445562244424238402136245170511850222090070070647783810655393287678866882819508073687121981478030072593052578533242706552957365101138076066349387615746191412226726497294288520469597107597426175135781546234076240085734738890246773537024570376508984519358336968519829169458691509584265548080796656521838073296287803864022997642300450318432380973001667258987455427357967858994799259878686259852664560014056334260056988351248865164998914809107025409177629328622334422021170624451627635715902522446164138827943035507844769955330672067135411525087654634310095757582746263339659524264131540998339690206171568084896906756237780649694401938548559334703683786788243373518120373540056788452054937478017391060404044509200501930042123539385213410510766192041920694203599656933166279244335418138250640904278005284758737793485078452043365316445490636196693585018572835408979859429300883832744339010504547994626593232147904532002350362145453326423626734327680172837964725028157631417471427698079932301531220417566835067837605590671015679437314124316856234218027495783761840591450808071543543217079964443487989392255565772752647484213251872907232315892536421140265461054496241356611997248465024519055384571633566333084782674238286253783626327326046119323173858582331206850066560310290814700849273816388498298506251553788381937003619200467176993049544566496996231934029617126692448784868087741369289789989657972126007419583013939277995809650852633935322613210946540293921292693218466406358931205369059560804412496480866576837441218474905844041185170871355663865328435749721884366261712520401014942888229593662873334565530678693662356558713913820462857849248491422635149396259697887242115743510816713525723304999089331424709805063459890298768032938067779649688917026847897207168376357847321441434374461876969803615259750054879291043268360694817606827467360076696609069545572684238075834832770711398520606829209617685790423710946581687504439878892018178263115002819051097013407729234589149355491066039981541364869471478369951093658023694536752121354537382724028455361001026095692842049743756589100339947227128132808649924361865789288171563638700892976215100531244977252123282671973946798674084116879480823208475973859754178836017216956835371598359167671535227494160633018048491385362125469636736954710263199006057290975681721090236469704468289232165600551587213999153642305843626885460814468902809749187989664299041640383455461606198461329804281595056649016487844494644936518433710191931218877844325645954037621162150726905544898698821256183343280105083280312455785180364226933394494911105884358689880159744760129129761611168910088154496860839088495077087932328616054662515817926777507509260138596853026030350754096321715261529682548227605707766313953218212413832405084068067524055173568143856905528549735577153879543570891344571529304973083364225326069243636611974238803753071395489712609997551891062576276751318608666426285855108269862887078994954775940216970434674087728918402397151129291223670386569196771677315598799905458096671495962749801531540677192482128683194177217502494511879324567045928245364984732581536439472474636691319197163712383311008346573490508648034160563342374290110716039785304330626393888719774151750577929166414884711759759132177162677583087214764077286550706345995526993642038252809996969715819378956930034924747387397169453757649622568125027394160462126528780295652565006816641902667746574790007628850925003015457420702195952599675835741302568259277968471442810869424019972811108186056192201973872828264090359902320357588692761320221814903640205635863479231399505209700019070223630158739524234655586721653670082077721979940503966530281465667854389957361312686336684210169707433115563367587937513925478714252827900283975750416911784919937605400564296584516818572071588518986277209472451881889915197406824767135572044792077559928372750798726544278046393209196131249771956109131512348461422095949747993857803078151739312906889278550980674335992632101763006425394735469611965894588430413504171715080519479169398295092681211609062317623623643737805150927794315943921837657806049144350403967298818908586810802356499890654876344315976669761151214541974167300903622104312000698919558945440369842244719651015711356566931956652687430291074825192744555864373001866893142748741415111317268696519179392498496169446255081424908427973651610078425144495186174510669979866619265666765400551571032519315029438445482200519379355098644742929381983817353430198487089954592071270847233682371310200984651453490474249114478937906522271641674785429702514503107603541533810960721343048129099724060828297936840986310429829459336415251069244898525975989405305327311163622372505219667790119306300549092288075853630475347447434079772795094268318765511496113535342253462024485939483345862839034476306088532617876815903824820931925125946843518743785389646273724418255652232075041552397233369235142319237873979507973638455859897559046590743247125794089823344560089657417763874332590208702420704856270517887202604896644015321223413647197182321023122707173766256879384621034000781697584030873988384909109394164776046355266096047033694960470797481742410716733389347706965667302444785918169286861251920040303944816467504262399040081087649966861912837115335236259573171567767185225962140291835205424684581040804196236837358333587263534033462701642870318123694750474615541435699026898069350854537285832277449193667985811778291469902070874373100323543712277042484325617074376291059780226480911124047694185278625652480199766969020106852907814699494154614112311901296960775273636293226319235397848837647287968383361404784779922795882091911152963940826490225145548716184886913311128913198107577020373196353379056326624145521206843966214224204060605853035971827645719403870041748444909092206516181899601429285216274296565544305555305700527501228062707363535038521510016965483053833014542951812940092254847743546192770120026885041320646840265238691851858605146881410117806621140816805164059129232222939796573085026137263255439109057921921287178901539689013569556512569182513953941425138921304300203341641189184927629711154125724320331538121153664788642082919527079322099556161221739175658063078048890436390486940654878592391390601042922958351375928359519872526236654517529810806443222072920141213734490421467769798270864746705971179466275329972099934934801457703440237423009690572338821655645585057334198775674986522475950117123494065203737621135983405016496942160416766100414922189283118792103055450196414117568615720734370480634162752828839651101821747500369863911733409222327187730515113313956554330062576428866936634552594179433872843195430177881207659152155046232317602149540380626003586077788064805322147727466033617175793201678375532487360519920980742568668952308331462846047809456172433141985836364712615057238936672908326955568000419629130598773283511414453078234120799032935416050556305212182632938483693377568131758216622766524612425826305454817577300327789029767388887259881668505294418709548373241374325222170843470115100695944748440369464151193397181473252653688768574970768997077013079144053231630532825367164642885475248508611095966030270569387300604760336299079551229001311337644425902205195594593021854162896377893067470606644955455858688433868362319325429432968664182753495479708986696246384754886814625688994899203354190916921833625758300748305396716592892921563768256975520973794215298415453017007424146475166710123572334554025661402838239296515024391570149364329823151171330993119868478259964134790924413111732816448144010685623897130634253826180238416472483701912930160112084012040094301374969992080148365474823146969033364866183430787114994185775601043113664245043943098422371799619931155917475471538197506830820576012143403441075415599547591819284551145363604680514140238704055766901862311822266450865817805081952509615908547208645817452306238913922969073315271933840302521721272011228830040742745586601821878831226482044086221967775362441866374472450628065564175140432859595276820363140827546120966917723951471888359019341343777740978841677859305313044711253433676646197484892535545237236063797760470016967387209653523611035631820536450430426956307754700492202390255245917488991423195488443692351004542749751004235628514511892049867136168535258760173299835613073986838827914254982579482290104073304552876077071667981794500658010249550512990709735682910242692052900215080363849048698299023648827642163031028072419030657840117964342235085958523165724386899660390914073286889598613509027331534879462914736425894867912641177081799777123544844544203924259565247095491269594689612269239759563847470196300528274467442327162407360235004820223637686300358063149347275934021150072519547215647473122100260882844911374952140466616420500995251149354218279366908701029092619469119122821109915054391843276846912948575466845075371324142289869820663603013387531850159946360193222901613912091739191555472616744009311942136966818756426877161649796339070346265226365616004717230525543250413334682203856014011128298953296890414234582827773522801551164262771232551669413218024730478638470872274832136374019624978963471330847042041924078545233249122049771627469442340938477796579825860608368777886272050288700118643617774748353703613642114830578943627030442655558051456216282184102320000806997651378841750373276898265586908873089525036799037087021003313443606156195827918216655623791844216084244376602121138684382779461008531979175491680416910263788047580752790412130621571694220548675473128760256228273222399140627463683162004350653590759262804560029824913722306775470732330311295523030547064277605565167427011530766886670366407813539595709462142250732662311462071856772165422696234460418698561540343123926346499224796997908231653222806392565062328902441336180247409824897806111655003793516636376411876579028613901687214391763512602249683062867904672536943600346011882669711708738835881625138109088744422881147721888394604122236059313487229600884532898221588263842093969250443426091246215194970497224460711985885722118145469027932370995905110344423280807125511651844617853495046680016955997321974602499371600934493008091931193035309936435039066793938757495153918505839602072348793949622699218242746755363124739432155161926811857084301754495291011170351782324219299921380146695987325164636634777956310287555586833166669152622782580239835781203294881594748208740565982664671784255519854395422136844173651407252912383368300511836904333675760701517589456824743330610021868302436162129528390077370534884830010878255074101993568266988104989039017952120961451656418133763090362399037303602396907299900574681282273610147871671912361275297814801380526065300823073135978678471379472025201310911062632374383164679354742694969058748987165771162774884054016292071197167191976049399502923848647630002725500888972990274884697950954045560626781259469654651383357161363274359623100152017823013018861054898316094257194387806693855258421166819759511837666490300699868912682617892315177997482473094649618982482781527548125163487058564251878498257700986541834589296315328198520583986773164086059794093963982004016221856666464204828617521068779936121441531682089393012152455284752307567847777689030574323370975587243650288302956467178950578994508275358913045448195619529364799778683745550724555617468584154625608063125345709449843063363159085068833085853976043778729329668114592051149606556770569358867290968578509813453262427645944282249318427456535027962763565587146279724823803162076455366805958610687006156990760143754798812226143533955998873749129793737219963681135037306903001231154387880605771066094339003565365630520594956478993066171872023316406276726258201402484049006314410167818890894485394375936971085717978967624946723415408274680783112212622674103811932125451088113007999288828880237911792898161960341784242795648972737164610580077698918186846546033621010509870147355245776347474506303919661947341096349144586149373012303063211801206773700338316033337368407352034867784572318024386951347123342246316750577972555181524634223802511530269277703565769548619053497684324323339225896033200736792186755240988461232781427565790756789221292790143431584314257555442614871230366394878060880195000773186605152363796202080475735285471408341571099548764919361311038333939831992364752250381364897146509724185635319355924147408639523244909665866705773071466887656388357390049554493002187111142880586511560154937034652537199941912788509479895446670177028619843868867700265648113454094903570941450197218341721472792357197098184354457649669842010459872411618212269537918574490152496417625923142756800802164384960595800338531943391193075070320457337336763804366624719378079782698156375055195458873820750325344845592365978084480265509004461542560545358118367200960878046266847246336516519035547661300506275857788023687875257633055065817131611837983562452950043696381247249394787551817458671003074681232535231298151093241942907208536675273526854323373942538024253647442343791673197059108356321830676385140076761964466606971698773452843546611416268579012637275131178412938229201955340896372128160356039895581343023118990578936547855964839708660232603419045654695799875644742636171855881417109792840505968247648982848435554908093089944308563059701270163088545989390418757669198188355425879056922288663959276414503240419268361474587309542023342523731634747328137180134344897543990997922683290046212200304249105019918174153980492467643300985767553150834407246503508060366405076735291235863097957383987729765937134984179645505892522941956921547402946441194668934753205681245697732452316463243160909714258790330404476462452145205540047356467775286374014085337406611312495118008427413535352016446725035480206894008964562144317768203738539044667043419885553924458828200293505264328597819001759384773787074599471240378561910725266062984833768984323887929713551235019074298672153484311076654266583955041442067056111088989863246285718788466785460779502089136693961469260508311886438888716155682817585276363909053585373947626197876776534873788478082305372322715877344892711426215146348389249704296718465062666151681999313644525973303882936594779390446393811944372838922493773306502250827690009663462468717818726066889223143831366980883927641584180731289455663225793712732645850911908464519786226032752377398413877999463888097518403259569899572492656683395901391266146489780507561908542800873292225529110903067715625909044628205474630542827432793399385769904927055807105370273616913715263939190969106279510156094143775560261836067449198752899323946723187793090896028994711417390723708929010273307069099863300565490510988354871161787157315352338278619336414005835734295518277900616443484563023026014588990584010076245707938303490086146265832849417796351049472052642279675538069437939885666585347263541793303930793869259546217490656926114144750860560079171579170144545297924164912353622694970235036480144196926005034216985696197720502156217396725556486675476091815284318966052108192505601402896889191884536106043411933662495133677328716254857401258072984730391255260968021771470060500900579575911682500376571695452178280785977795561186890330327465686290226684109073509048607531562704267220830925102180140876232071583305888054977448989377933740218463918019303334205509928293534094278475840317725761589370048151783853663278074202292968581105972113459831940992874017466992039245586292154475210926389993984445466677779117282593464844839825895077462089565976669330767545115858530560337262454776400976097109888116972278666940165965786563558734046141876890067833205319062641306413696453917702510738590660555537118586230343887815279615449258328836676143018519323707901851130280933616797292455862345965638720618080378250565633955273757181660629828890500907679987873814021974120326177875180514435317541429780577008572080770167237049676239032294940593815071810593113126553218937267538400477090463365902788867888191647759830661584035212233526787791873880216345603096262191692913328717482870329916204467150400689208715253484355796558446192464948363281648004978704792855491837772287426448616996076539357954659177683376784017323339801240151084450607345969640554408891009437275479971775421098674211598160112812510587165295839821598131081618442241224100121343017493647913247176042409501566093328109832790507663251089773781988499355740182527780885774979599976821425828257725788095832472080031879253281831868306307001163231732930114523302688014711255101967359427711267261814714626122103183050721129217832028981061550348849307525750612233189520910148662055247597564369542579757101940030660622231845594731927536562478758521418608165349667101422917864382720448599326699071924568094459548805719191975115264277564134714882157439851434723207742842229207732684677980739569658508478244472980710800680803112831746527564740398435069214528168824942150089717105252500377641040618014119334078276352834386314235861562843382613300967135871551280395044981589110305421438490561308831680458694780171385284900802858548626915308743944446034438625622151120748095198051064622011563301400947647653228802440558769885302503168543163762267937652929502478805413004495750857490525352966376947637211412717828796610127622415930641946968313137631608083228452721647244568068021516406020673409726888813448336036603540773040073937913797089304882513592368590137921129590002593766309345102857263968516665642813892645286269686689961172130517827611654835263195726035414085694442336647013788874440444919351272500179219816573091922508452698447929776278911289396789811242579933919993657689094986612303961915742343052823905860917862141714043652393795991962701987296703841939221897445244013449590753431221135506236411955021985747694074116803198744001697913541049672754235005449322567134685473086775945311348103272321951825945988073268071668906385152339447777542033352619126575420501024790385046906524710930873118673985813125073958449312686266662006604357872511460654489945577897757298493681557965918478299371684404182426709019539431547561828244994294037361686588485936509784021037948507524017106214173696048609918271643778146650071524644215145770626551088082614291631077153587763875251530567141175866696251146142607225809906776875042789450103850860830687699000417214160275225146774404328282523113362022783093039662401023366406581289236082921997527793995609333064848234049304821058896310726391023703109400137930598180380872626673387435002042649878703888366338647907996191512903585073042650642405078428967722262908279073736340045701822076605710704832542176934885806156559323659100107246192669511373933189370045150493354318343833671896574156416300904791181399738882611841171234896960273414408057692569074380534140892646235297990718705760287833683891535713469209167023619356467694595818111406442404650115857316740750528459024518298501665559932802207968549712326876146954698043021743713300976511705228223490359637565911372069182242755819675759151798920456184348613348812032212672727383746966068785248835956613789176369539911587388573967411280092227135333083519758114652911711482012895414590465168307827087350809873931178910055326554812378973930853969520592038572792612601613626768825322923789114740101743373333761571235628837920149413901803839744339851393681391382143807706392972898559995231970299397629846383970721343786662937521998170558471957304876358384195895962307366982589445624797435207178206942441844653408018102108861715474523722828718206545052984595143456973844392694119162922975387535873201150056779552399177970397221282662953840399418762973158006552354178435023901440326963449645994831934784291739943575796905587636637724646949862007587553817058264572480371923177211673773853889499947263022750927801254106133551199259390171314491647555906194825120214767650964980284676498244366145041926771370826399460738444820565904899229585262823627947785081113955203670582926953742929188548758707232986227564744903052845830751138914138029620703044600744914923887048923151014207310112722021187884929135437945261370743476583962425565530486084410827786127016363377738752069848979890889007745525082296308791206128074032850899451044873896072857983295987254530259549595743150044333655648665806944814231051839154618224899371878091888596239646742172547710385935052373889567802946876943361075858169091964811096180160115061431202660084039097278746671889896152447142386951261973309553321697095136659899812524317855435148698650639642677618776543542781163144439074723533391490911118777127129923459883014974570805877655781221920071866249945211770526472562986861137621071341538016776330717344734436227858047698522825803261998319790399601579023516844004307397168660608478781276857921090087883085206664187423886016383756893062809643279406031298517366709566291715499041833379662425181021960508087318385343501593522071491252268574222641441480824228882145477530716791957046577988893030253881804508851383287387421944382200850723228674191452263424282976649491999193449071605302537916635614688774135247320834994614926826799347072398628964618015915787400501602512792659840777167383280824780436486518264787322451633734580656120418565201588217709612164281427343060676895547373563579592351803580340295162256205238498330214953450624006559576653361908614508252423375789438892494301393266577930006331297893156488392323280909599323156051386163005423302098726436818995046936494991968805774917111668878493700311805097000804310534125116723802086986312870442844761686150779344945388091738057882099875805616049707390307381440202873821622996533125735832524838189861596653078525817670338668835937278956454564147482147393607304043817819117316421001569443044885202524679686927299009747570142109499754572076623380669847390560518153020127198252457357905345094894672650233807837155204669296989110389246100942147640152092957989675635461796903049094663662665910375220552615244440783047304330112531129631061127356732046427480560955635310173438824103994271603044669215135063539182311948312542342888951887986081097446037747896598912812104639461845281177882424211591679492167140184473666702229446505903996596748903479763581892509504522972411622700429983090648102724271983383069537720228614953438878895081104325694205015197403593616670461069437710943828902216770422102791193564757170016674378534441620743789414711057780078294564304149626823639396305779451488189162969320097696993669402562689477083435418565571706581025488487613502944584568220624784937982643779283761068004697777515077614193904167352182527301459659105905558275401242788957386526238872193950889937010540299229220448736785953824233646888924569255418422313561287417729215665848336922791990456036309308469951045371072459582653410045041092528456773555563071121471301402619735288971985986462794377360167055971997013719443870355567878282220596994271550773151593374371091082438140628909139360862447005742985781692639499606909746196579074281782664688568476940840491205021189868223429703591307615117842500379310913478061037527379136667294682986756237485755850119485663223479431632013658309175338595062053178316970815041944722052164646797009485740611492788412919889896120963218369137324553676453282328745085330384316580904917229249977810323758923249704074520212881990189134260426262678213143606758307849513350135049279834258695598981812870069595464026029915077134924268797808830920558537986577842966030012715686908813746109263539755453255438912321605595325705650040064544184521999333864914648358194553509611290573353484645792304133276543141980841282343966572201130046699647964103987790595938158422919814518739115588845778248122128888103035382061949808305172375624384266521099595932072038079059704226015669050052561786161053047180051570630923692642497304492774313587589790942968282498775887706475827501181384148824796541822744357598740598793415503702321227818510454688866594244210041789478745912822997711825059980451226812436967239878805465843406521051851894611513587694450686706607938853532955797570857098297747384744824852385808315785482612544652765919734175519042615201364622844647209101894998917893283552657061794586207323427700311470429549051737966453508044651606886147832734001888773977592543087629354158601379583257256998165330180657482106396757169471347837370790452723704314002168629628461232377366601688258310569931277361098970255159597004996137648165514262679453565587349281191970791615272410399520343138906059235698281866389921582328321921778784437634846486744718974920799220585641325004261609752733606773184048570233638352371775961265850737176820944009014410618075594638466860602707398440474684111207617550384857663074380334945750421354325025912207097571559413436685592886471361022089119687855599825801278808739097666317290033373760690336479398842589524748656404532328613941066143782451965141539117872867388765236531631856890815903011845677707443596054342502376713284238415976885490814221585676025864590449181052073864813084354719300646239800277681590713691120059218651679036371143419479797707518634308070942476825750782730902951440942252860272945106213594682524670701287905213092196049309412188485296919298427042513608483501403086387244942079860110005059427023448581592110440013221841106058019456366626571769381377936731025535920271710916141839199935907353995031301987339267314239704185844853738023831184718273869368706393101021841494206966944246001023583480681328612657567341236830778500214988395138276935310734773614891051138569574550127441115268844965766706224034724779286252481061367617969124831386699857999499782575170757484248466417479465850407672058131887431467780919687670530573846570748397041353558131466852162733484344998379992047834527052960238274080593110326968992531916582037038615540822766065978810724812807636045457756408213815481267345122765190055719669998277790228180984893073767564265722708294047716428242588876000109958421793200160153114840361200735069962755789963689179860442829713841125762899316592617587886220229998434009466739322772780496697399952195047915402505466810378166731574194585203457759761633022170006389607014655262139917262891687252511276080083529558750888983923650443208588142110006547923140528599070161832399520300274199610078931465110935742177109018146991211620716168023088064766882733092934487162889176370787663370293533557278286975491078046984117215675427160374173338462232512444370298782408546016822110461811938096530170597888532208425175674488354166838308477577030742072160967660678622089525751121781671781982821378526415379941797464703994286847617659393933930708827854730052397673347953228946615954115429179928919180783870707601198187618551963315225086925716473226325575442369421893374041385216340925436008817739987155295053505994188761739314552901653177489463876215597338897276896964983956685622122332771986869170249591534931975922419572184694307323118833122687334660641036711782243318707144031857813848523405720288801815329490738057390387983775857170371592912757147162482078037152217651079228991035846423903533821971617426666107054648101278691531362483805527691514505824105424174837340748099328390140697699344405130487806722345004676150343418829620283284332636621030324881313389878640227200600535993958631883247324047042790191229674317641426596507038292014858032245903962677189458141322982957844625142190317327862285203017743032818903649752702975117737926031156398006117592953674962489261727028259653118280416162961754646140728174071399089048029026298876852982899943520477475177444269812295522101758039137915016760655102855288602126180747106401927727242998454403838074798921190934177097295191416450471739454426506871943758383587113620955754792672924098071630456995315661291063664066101859122544868824789916612685625281301863313946668025763545538682774995723109161301370777797408819267171845728164417704816949329930279546222494813829420320069834523563417770571850972931865469613020933497545011838309062736680631675262262105633473834762480176585884194746705437023420705896353851971664840901556989008405312802623908050016589052420283172767558990564686478173994870338455561876743731108400877821895020102776535697239768286137804596776467225675082305724521965972726986278486214946085229212263636808263960702506554338566944963091857403156243694958885074932491335311938718683548089467013174852000379266076740591141051690141314079510091079203695212133741528097618123038217013574499633646942385254242181573470363842324814191272105388706951161367064059294430532258992383521976855587696651255964794980883341640518322136968684361234303764244679744118481986926018376211271625503558172344658284881305179818750549503166791440727369371010909309083458229293963125622110105631988515028422117048888717635732015587267883686016050703043392129578979289575766319258850524403756642862569484147091876315857209927910613863264378391028193327032970970207395901896953276062955997524221485907898772791046711431876279136655909515850692416083478427464932442886802723937200870307847094086901400609029529022657256304698729313653055081603753607434342042465980950803388518699912081761623830111990518093880114231138832327901716296532573024384860861321414227311981847108985635002276139298823888031919739082808819388738385483000377024399275359220720347519984128365487468442948044279885390293259062616420218064388089421669782449504053953638758560205151372321702808938428982886249222609325548193985315675484952183068632103147462361726905455929284400669650770582301327788184665416464278656449818944456345950359975526318069475841465513908148543484026876074784875034110811217281260403801125922516986167824874825966505489314612820677602051407454947079086782326597540792504117488291691380494217335629273718217411026929291889456715174497091151236651536571615669237505772513314138014948275606792062236968087881041929528202400737664414377240219556843185381085131762649538106072321516060539745155694865559419612998580939619339366408730021602743959460911840457856839696372750211945348246406686728241082148786196443680991552039414135147138202800792870703390814558641441316699369600689829340283947218603883481929066911703698290285204089357222517954485353886422794080212173033151501426001168423559682586686650502432233796148348433989143795381569123663206491256479114640560981216070320854526760861588514058426988335970217952179011748398327424851958327358290870023468821010494816774841075727031765247142655220093057466432183045633539170747124123686492748782180863010492676396331832797232323376460544842172383358156566099321522112375718687075835369851975408712498767748518799196535196936837045410403155103359727737456823980852168938615293761352866905791236485870335878779866426188900775751595552284475698773370791481815727322220489694985146511432543122068717440295345658106250362993320840680114802024019215637988787469876296254089685136205409874545769957282278158460920975324130801855211883823848623509691369680750731394080605405755895377183337345616543931526146847812114892483371113436302649582386745409580690106938819156828237824029964159409253677321860482845931427502399855965666239606107547481426206619133628657255255473593605780487981156820059909058255637156610169883164246593236574597064620090631008323280987320574148739383503241227103406706610597501805121725336906341753358704651312366680236628372281981447502058404921626707122822356420046425766389679706154189486252262487973799520686459258093801362560415246631370479997679063903456126655544620262466358474546423559266546203088965921222614505282463456111875651025304748776877289250954520286132177050580601479212738173375640067175869219011455087233843520292683769232597502806852154847429130543552628172192379642671601719413361590126477856947928073628566889466634995230610280962913888331663842262338393665381988630766847740914525427154948081831359513042220441619116266947537800536498092872718567014009159190459560593003009754840670958246362303377801065894405505657500545874713576048470202306180981147771675668729049971765816457676107656063221045652246429791434423437828579602302107634730664322575620451586620711750106718911150873573653656040073023167705178156633531866402143492994334490797432808877824878974050396487489829059835848170962595259828650403688482466808666821041733522432036946675819636889274748723146511917134084083777087174038838483177586324475750109540987929742305696799360346129687391776372403734275831975151480622613955161534168032024199545893291566777572221844624437287132809607224153502729173473622039477350322038285165690850048757745134157739457469842821946800045587369415165900494322010347293885640922887192246670955456340318679687275891897500802712140809800833328745198303637065191463197691928750598848593353595214926994246763293884878785950911486153881411632330602431917458695325019010121583994783312325206303090981994844557424297611296613755318922328032613527074151186146790142725080547602046304618053515810610193817216213062807889282201914061619193540067163735959408623360773252740753293400566655322331571387053639646521961509560409320261065669915968669479765095131616072392786862455513663498137446001003438314455389073830188003421015060550912981723757215967403793672759726932746216586865939143221754652829917094416055143272013837344196655557494806881142030818978716381273653967670473524152670613542277390140196062412369168636248418703372551202422255062128927118146446052394112094315927349130689387630708656258184224109343756977381046410838813688017327748422379752545622331178613928273644421648497622513669387419210488497810416069659652599420833036751773027599503091829942692615419343608890065982472125041507746915052253108013647398025860986819568875283227395711044421082340246574801389490529941490038820856203325510827195805512414959635369465119142198951913656519979491850419110987660350948299429575972648860110970239751079026780972848837995705939540331414757419181765283974521610791245715808680860245583735056461689182032226571686552011225029064438820101655532858639763236671784607242736455188730609238507207436026189525673719411038861305503019834656351560005512255626324633297898759114383281381130198918144072484685173355026942687099580049031130984047446538555760318074924981791252492105163246074939189797112284394641689288210612904532108381658924202314105642418183874590515371761140912521336567799677158592536317465556091441465372779251275107366682221862562687844255313990405227416374452971111009456905732375714262220184549334518153876964049846617830741773273558765048179236373877632160057024763885038849428482168512262241716155411104564490491374706565044283991559465207661512595497484208339389462153948736759257064627357172554698108519037650164876226023162640911720266038671423612983047871441758211917644720342605500601459425476354210200571779002189801744361491244272593801759337099558891368454732508043276968824744300423680801114638075213211961414254908321936594886741252954486059629198206444345193717296395177359374951249779833835528726028603259347130623406425078539421736858342207080853203271070917644473669124919820810491026333342709010511301198650223575384167754262622973683829143811270043902532146108358277211977532746760480819989562333341340565405532861586525775848816443454403312148040724643772725148760080879331307212891985012393170426538682769915871303705327514304346334532275478003712837943620794937823421096407768123948591521500341961448042768722693754663383433253523473519964840048951350645194218960077553731062064071313560850157407091443724421603494823195339386021058442235065626159530409596610648421225241238138054870537895176849174519168197664396427904575894608814523367001770068666657792941879139385022827667130118031287823481670601606802433497790033538074824896557274660859728751459761228147611121916528671367599053859059196470792807586601267044663360837778364088069565762505649417977486425289731268731022332715631458156077984311588943330298534337913443929507879301509402101278105321197300947474907348910548083984483705329622491332017788096644151498595839938023010401974841286859033304029332150007322707987471973006196279432184549027254479835904230965951634511428448680123660383888294084549984168172529143263968771910309140804634370018826426566116071635117722308833004657422352934241818390412389152628351708533288171806381074349099091862643254847801887521676196994304561152889896953157816838787370202655172080879641929927367499617162790143946131016091430907153891682377206393282087954182448105090396957052262348528337662842090276956301636546921582205874402727394327186406625410941925335611385294630087680453388328339931847425801781302240106907559541178488541956460647737939732954684463399924225702106488885973277902491872687851775328646184031746140281943519569893618306805934977314073121645048353485773086000646806835170474258984530164797583256860229704489488025774849608919364937285599590580332767266873542787639683903984329474826705977450706545262863071849220703037746560097673965474861308011114641783012348243525937017924456986151157170393109059993011261959083396809320596435748195171659034916895293195845277683023482989912656399955706232571445773905168127951638428385543595368901555707214083537171010908362445304133942385202955202210381464571219692716258297096683184507556643044380156125116555448257458954800663596316147548181187599887711114528078600426473437864148314298597461159911261948372068722603551513536588451251959694636317368931513791345692983561696133874315570296523592100357823163037376334153686360004123302691075236580185868893330893602283041187887372007398591565904206223344453251985514798128406282924378122174588875806697954885650230817855766493278989978990297970215966235603841666432896805592053051635144574109282230565785905337356096812979824358405044472064429525260292249025970113903840745966388927443958635536275072365688715198193095184540494290716176140841026902697072882970001048424376296935097648856306902744586117342944458026432726767730891174877398984602329571536206759151542031682909014409586182525155921291154769912328130912882134677486870090940869886249077600699209579669227313965920158335636861887500188935797361090812314802144616417091131543074095479169968931944078506245499360689919816404061970490635736548110503543508442560737203489952363744555439079140095044405817832372533509532721736535136530192131530371234619605902827119598292300285801800010774901167470633779853139308550167655168481132730801934889789600663907669880764138505249591387586652378511299705769049975241976314992097425051994352154283006494856267968578425678435149520817251264875625710640687669136679550500761788146478974691850990030442853953709017120811694800854670181063377516837621949584190872644760887099653961311258775749671999404465859852965967880432214910403738860067661993680457940030710984200805482727110999226846855956680955330287219700829635510692979458093709633869994024840612106967409570863685622182400003745961592417518791851791611108818785998908355827085230599716912573303819145038111368960296632373501037697292680908813032367325687429286372734987800303617845105644274165778479853754011206915805631301514264603104470230114323687045639985317786427255458293372618333405685569237780476738848621322034468435351706750295054962604571865267113606679973201522240320963450709632491069840715467651247087373275034170894266325326995961458465888901979451532262300347898337823320465173924281832921597137234296924630856491038966590108983653807140881432809797817303330682524675509755920553193757119372345347309794179600626448496178117691974706067083760998762810798825364791621745242897064216366917965493991746586797324447282293390713302692120856431556333728803402670824731502242867452602992759099228262606686291701560035247217645858255932703511819839082374332924957349360321864476479454277817878601513456133036257734141204977042252181627561951188177748606823764502748770531451209144134608362426653085665200806333314111716881231949814225595227806995316241175271781833205240296165655581239843676753231713015644504072413552046333457007225386308716558131521235842467510916866382788771905879457924411930707919258616725455352642021655986609553018672682100351566794652124758251068218242928198268397638854015735810373229764850459318651867492099293674224380540562689681278088338870525289040477278369963081533726489583351803155930673335020643148576548142117130641219731006086544039913773825089563446405035010734730969575054557701694472954963943607340682087710564629607631909830672863431609326027279255613705017492702717293877888027204720539533890826351220043905374806999596039660657946373971771730421873165342624530432817409604549983144941930953435262348687564815341701093472290524482312706617241932414985808180597616381290418215865497324224329303468732086312053829856251357685511421585758200013475159859611391646254157736367335882447894528063298816955792571488991332360449576767797060401988825536371065339449967717505968010486952796179897525331574304654366931349229334629354018076764060472634199017405390448263113720719463869981072388395228266294793203894707782007083737760520738460469202407509017404409238579139021227800235783490667985827418593226258762906123199621390178169047302639460427055666855650231150413841804213157536012698670877037682114409402033588755013044590779395976954971658145560372130008760353513790766782786264935536264513494967555607284610969802679375213361571055021831027694114729329470905237205239544331271247568433067501801089839234293499455100306234093987398302011544266108719943962296945714457086241697451363726440819943391713297612517785091606574763899579284590718299922482339115625350419943315607329529649209733997066777040584478305327711799696956020341823054808340356739700134782502098729781562718582864096962311572050144054225163829502332712982965975181045357617810405818527540358161447714492430542964193661031594040334999474200307312838234148144873404662940614325764146949653170429493541588366971438483478790718571920870573355803570697219111835003404442815530515054775680787991849176681631400951833862040943944729236764345567512622137496706375936810982098467664827709942421407886033309825750797068332176971768819046293926345932724306918960106776901451863780999039711108936046719603374471859054311656765750407721930553924446449847036857258735536647513870179513902091287172758031993549486197539210946046995068647365977366738316105391224950836208307866155666345441166837926478105545586278197333545074850125589061709702446794468244346935549515761216585372639597201712288108171822236877067089654854886225927316019334821346635836296806507355018506917116310676112746659943829545606377859606926950741364033224429997548761653195167419800466381208436954502401484888526543834120308139576399465117510800646745966321253863518106186979716394107578557060400415678774297165121042451613074734074324357389717594889856602484369938709734938079675156423853237964811726932428374966811262322104328711323640897827752282156271629751875601277578311516602092410212621735809628517171747503304792416522105250510645460414521604766166068833263059221733831351434867980015328003178268526067389068770795323379429820183544759276140043204294614349593080724944642669024932981174914917174780389822007989153939581933392031230416890408775083685594421622196823680932417012059292947800521508358987346564675842589268302352791339616506792812287524516792527855912572107072133956952754929608112115633970849956399084787642832340935716974784535767671188814447650808487374418441506474865817625453747323869873986808812764264180608760306635923167901580847341810193782215148924650461801962505673438572381472936710566855767531801572317655742234801231921944035499810409222377417739378014520366016706920292971090876860378364811448623787436142934479511467503602101797553461956848532541477813409766888558504285063799906023465091552995296600574871140013800845657603431996306989610534759977426027705378708025541557643836701593159470837953469901907829800695922594814344400099591774263055367928411445001821792780085944920594565929068424125415460830098494604706080786069970986345656670578619617747391618676153985319713218647507113846463663310680112297475630433355631828683507734439180412287493729436084117432896245339615861510005531490819422054780829148993831244866073253009621619945635393514736472605378107765603988106449714791083014095676755129555902797497728143918960553482094405248018206866280225641354816541878274214707569065977085720381326924481694746177655583013316314675224081068335334615652096953480574059523375646642047978918476504613128022224325734743318167090898151002077315719100913781760482343951819946599680936441896240119968331046396854207860815087880049810573551526684538099483292572257527723651718534882671596534180016575721602290117681714871283627711381592451330531554359401694187513117767411612910569368075562929276117413304426980930988357071876889511620446882452765671553065622875327814455428538042317844083784197140461904646612153687228842063536454615819102381579905721272351950582540631842045945297922514690177681236574032342392538951990493658193301776411756096461579232012783100793636501170603288354139139295284343697254958689192868505846459395009013708017531087230288077725382209223613265571989879642775337961664105465803633796462454372245346474700614730744666909647788644447524407340348640554863928672532072593062897064597645584413955994666426460369559674847831871014983561613769596204327779514373696577422871421528273086749404743021097564106689439285350579057666190171023829101652981417306422328548410053923322582505903038205142927399382893464556237876767777311373410714534524216470077771973997712907343420465776359121706951218298846295632397303373089874184612009135449820959661230977388436381076417187160756418487154382401596192427489301849484382326106688397206932200759924777425870736634372782748213451192890420270592883359131899736001603556598883317260486522127334541757129223116523865113573143741493781188344965956774328046054299391885939611512933645763680935621083699641196960459435814046752373967997082254704047187120346047904112196939698137276031495100454403110178657713414465196208107790957312709789306394068309473299501252260443518650002384202831532870305738776575819346187359856839265416218652417259289870037844312701478709578560197652580075590698932796561247848219550031492756642023525712731467551543386048209040511317149926338734862864871982436446711293605700871756534818427519386794398965828195416305497050684223840676607491342549367453407653952555554517840473394392597500934414010889040825404521063085342460021820336174030041443847983743076607063557460882593621724361661057503838686569678766241307496621259791230964687013519556495919652414410795893287157143824906542982042710516617435103660963982986855440369528115594150003937189671859379970127993190467059780028579595073726893969927070568106100856951907022938703934440142049121561648804859548366085152865612406810688868637717398073016044758346415318469974725709202882751978479228757749449844629870650862208691915397786971876181033156114227690031120551375818924001895549661753582482698329026287398021292450026667208085494340078679632828258143297242715124045631727490155471009164846199955175102280338495761863286497953092314681788524891876364230167701813089755584435578399147911686820115064230815111931662278374549039193233623174218200090088643910915561232613559606262419481311453887180890550526441442519077536113159906858003871792877845958315811940183159923851653214953474939051926039964582252512312286063955401037908095807498583388143010987802144820359320813226474694819378849221990160533899477063781343296763599147017759043576508248930568430312270042829677465242701693551514062789481210467048633990881519416883608536644393870591399125787164158790775248400757138033401082617768796187989485791047987718095667870996155823585909527627996315512057670204256705230795922585702110653208595397871395111348281255109769738770867563401907250276398020443112439461967273710144257582496732103512680551826887542147607526831111019284685716766677024118297772066067531551575986048093839143132413275874554590392649259965664027994476031662635621621982293189453984226068823710705367080037356775403931543795690067888044741981807412700474274180107109513023504564064762787908526236170962885709347770276197367599564472045231147470033445174016713832389784599992859733954457896044831924138964213314847379357425375440973394077186107940491768454330441499383643180014306854205033837016542991725300234605087787180260205909298040390341896264440979720569235292390971126630765344143332075225826243400764553296821692130564169467581841092710692127107318636689244034945792702185505194117654208597102699343811198529654727133738638530551423912440272734314251330360662062537852282440903328956258984486413665584860605337429093601807353880929738384272105603617060136044817017232153788992113038577329210197196933422381513616694106777467741274263470465889859750884070814629716649435183190761958061114608520220886526540640630197249421590397312456388580021556877703882912283046479792510562662813709672446373733436740215943808634986200186410748413140698726174998903460837877541156587825625213428570551946029146851171511270553008295230379250799932352154722497164327551960585967929814515140985310270572921397970072650163932911547445512616116798109226946711352609577985930652898632041949923059422492557932613011078944273279988938953853694282972154838959343372925427255320161291740255461507940391335546214831258167017441419227143752933850554645524718326476629419056363578679623089417309833486394760456053008320017022239644688534634258244630649530205267724871063890367095821817700230565552295811175369430383453732588598173864170940108525142378008106217955343689734729345645175270808953286762806120695930745771905891289411007759372967480738592673400144200994475962897029096705912792184616868016156670185040258535992148319606087108675008543299756320706679892982753793994239760527134788403459324331390963351405639061605470321450860611926352294028231221240601873115910555299259459808231889046810006481760339107481826930092124643523448707111156104098403328565373289124967764553788733588860374347402757207533076198739785872132201907359197914031960418053454934547630941611763630228812670594932201481452513103169228842413777370056178708805936056390189071910634108841265676864412843795161014441888086282352020031340890499533523841940580867876861465477099437331714229522784420496337132419302065090427501135877149468065982526695899430490488870219965322940381388282841295827235678788714386685991611865128509889351011026655840429575670017268109463006720514117952749877422957555605078140935214353242230876107273273712940742188614572515088604875211843786211162344096070020415474603230344630207433140129657530412147444961663438314666991252890894855060833008354435866929388971759347058649195232070638793996269397802282286656462395015908813217964054854759839185481483045879668601612304398901976928720050457360863112150163091581011291871854724111111049033427305125657374094804134780957475085304341054635362112098207425726343817300976548366483766231194428731595150928254514554685939365388574279349008288739033248700956178798622106438232896233602110669737113534778479749357103434834544076563674735886568794887001816786572752753582838961513041803712922211947359611511609102819473797373826920281385651257291558902425440667829525491818834184996883573310585703594817692124766511586732795884182301334907120771916130705920666770184537988692949189592685595150483237446203386939891283177050299168245641194414291924223032478926663841823842467491620172328914210103089062652493766986297382587276068012412682663546940742851109073995830245977859874340855047517723881831656613016106434100196637021699758177016605067654086259199046149844774648202351340688586753919517946526407035873195950955917290083161384461496611749768059544960976282297083353545058974777144399754411657507169645155577402698086150721121329914892915151016730795333882270867003972479800813172645494320281011448519148304450695599877670475934529672803362303137523769965510893348887479951503552707499268687860824583127436412305187979603780340749927306839473106359377947861989224774929510118868581380227179545566363946796464023438491054633512544354068106989342649460146317776015161764757081392406630291091826796056997733114857252574551304084902522885275252768538008162341802110332397508292849013676908923352912704452048766044317694027988753089453277319019748720288808724785854401569254246375431293971871931573496390882023840148135461186506739172538957054664986230485408936473191174424328304166729596528727848024826923995294229098703135582268582108610139476596092558552277869764892110758724051368414496609737871259858776337703680090908873973937761575715439047205172775537199567238008000710490921221330908720760421099752806759313704622998049330047113041243118290582777264047782209352370958363561402517787863062450567238643327899783125043469434881862700256695516134750705024834662575777308047559809397304368304839788865984692988859029147338454325067852732643927359896142943208534702649460555165937721093014841720367997066904699223053936700412949241959936077667018509573421630058744251157894601978105927714289298824642091532478695752475042723851304215287666151063044668377621341527965048494291916872134565872117597585217083378172355573187362295487622225573339592982800502572131131414979283901977733675311628931886483016313441520260771121645250108465686708562193770687399426370623190328964499524707825920750823348228608624755895173539882526070591843657711415961963607842027984227367022784902664677693602050175655485114554022801153496827896521101438610194931370966547450456885046388676598127678564221454541648473641298485780655390629646644591351543929682515382949334303990891957909774367863414492553710235557389092774059222505483963744436566558231164423717090469670012004679960571840678269502249489840196865726473167646725400747183334772342018813262834429668286653460121189986590826017211593197064678642262137115965430812668161451855542338023664074688418618121337538918365413242535605926399468697669969249242759863818364050795324999288314011073042664685121810957233163260689690143616008850299670253645217428818596007376709124208873441449923847117120462602734380442271491721748470155056293944167176456412352446212977381760141270342288517057340602366439757519725564202278296376875325996154724312820006646603489914705675402558528170259296387318275086328607423826691668342137253011754414731476921859581288885567748464564980702799733711620671698232286304522078247131634162050161999529900542484375056805131721287776618111505861380957905423546093262980608040407218354624746063542652952117065802565476485798829446154246151430374673553283100467960776750246589108469915078921594845066055902881380978095770938964148464973231739148099195278548293173510798060985916977840618889632405148345162631561082638392517912484096056405598151893313063898936687804468202611796079437675519421360803068852452827481420596740719857759584820392036804668714785842303234086670853505075168131294808530638405139889863699477912785587613902010501175029581222423392639473421384570904345662781918044627204509442194894345570132888915937602138339720662122410090674974927172863469679934427092703306059191790103429809044517919312864466050107450130590006031772159791508124623119425750379916899474626454624784218794242449068591735955587078047731751267633589478689769273916090072082391683414738953358061034576483331071975457079795881951613965407971022760221927642238701994160085220289390925792556905514583469779515380324603466384242953121308849801450772929602496039719037918144185677842417232119385726615769302389705874795090048282209800552500610753965193483289688735204860795201612439196390885441170843805249333911525936860094671642015939282819553189223493440045168060161635369480327762225119974733974864583176921675622970411229428116891040905532668378524906337459538889399898354098498722507059594139805272030314937694130862681527710901290045013477160998386844913562126897467500977430626617671727907929404944246856514906854936801466711653180576301387500489743137668339784311798699590281172265161607214868852210400905532291108164063572135681052303369874710726570601628122726249620141231037974032439572673631582033109776414075249218303920217047933120659191900320305726789661561980226103613806923683036029119517051539473703807394038437762770956436275862268334025343020889077623038117438586658105840056187759527098493699492446616460035680920688093568115598750500709547380999353046858339592989317871572186401361213076366558453094452367367507886191153593832594446043981461707754945475716857137100297816796975692251781731451617599546373930724144528290461847272081020968056892797040995175259010910830786896607452026598335742212271161568209108576929083528464712862848751732901473022950838370702427726447073818575668411291437408660588725459883952031674965939517695667153208039053807701902635834530604411581823815386794529254000333250673387610846716010030436879797317576561109789245144496301071254011545701060891057805770495530117269617737619731657921013278360553787413678885470993253839458535457641516797539350014531942473440454237890269391784044470323496831175314911760334933405563162429168625445095518580816989170754731270786371832779140607652323933033248773712063890671542131222402996071009899930953635972866656998316597743454130240279818901618699603376559555317888804583858545262784185459401374787307595727860703642381820442097549554417140238016155402268435297976585651571698892108160762831809237797600404628483871888698206985282185259792805934035727420061656219774996671385433350097080704310096947811549326752621067527986223784935411734734897332606546569448592750850568194377405719297951436516743395101914617126638475109363651334020862875051865521357617685113516191228624900688745891451178124225591641730739069010291814509029808133029759303125920702337869600622630175230889027378217513634293197298830100239233408171204526644663652666287182066772587491197253681750062936755789007495077260563533356150407073500934374872479960551326769990833075555168081689098641242942903179422598573803437510469395753433317244829133662249375470269541030972383341710352358187156471245380130916554436131853836802321170968071975000659596028730682264232919135263784167523723977782834249868435087989587561904735223670881486452407772380766300102054746949554591534307745112606743246201353106555066298182670535601081496231233227617450392065582200695067106256137446663297578828528042751126104852729224369716250773127222061193549102344837730693984901418223493175855613937262724081139028092941009959517359493900150032581977675257483401195811530997267881244750537781425150677066359705271290680606720404377567985845250261395827244696785905899062938650655699691143708592617450258981369613548819047737436086747719243783612441606775680429646759142104622156633692234640758571152538765465160044719689701436268058800423910616129840067776775178888622671994419520985441265636499011795395411252497861269878455712554861701694215434484046857935770538846373028625943769085808640501341731324637017269661682519924694675850256566536258688134165202750858299681398405030755860935023757752327619667886824162945621471214947910043500501750635653022735251580169803142621401511332594730985774020779031096521341368168825674815803829560499621061653627444221933645424668818866021671915237156843493038438310927597502570100915763387187150723335596219631660747276793279383918428718318414305038633725501292829545201528495502166410210475804580221583554369928256549279306537253629991491110493842731605509360437977683400821718279625218971018994722305993843956993729241129308490432117622123630690658800707459941082213860576029208401644114290739509952446409749588545036689512746936873885537358813098079843198785753038574178789598137180014036667779542939639111792337855496414983500466895199753919164134405959319314549936912332510536411799483117661229454056815505680463848136296950920903971991161429869534187199089731126174488338578441774342686824047616966632939014684148090436365300578451927774843121107965613187203363524225069851344676654662809648529062163049698240601761166403542371935319734261047580773692273657893329822530526424241260751130273627692843871171967797833268414814608733702880222204310126261182622865448635398008282604598020066531836675051370241726120993425769402173954495152375554316794127480354748638208087596370539088052546529369360084734264090823451897077243032080275900964818702032682016624555476082327185469159913388092142111099751276621717073171980040203665079369683631387501915264096040056208427850598798994364410805339039973559609961442081880329079018050670843268410103429823458645126748462601353099377615974541976675078258493094060311556611066949972947996485510643761728561094406960568774094146220705384319736451443649550286875101590064994167689071236031081947675492758972144107931351303914279766619282073160137272026384293352983320691485778253565835768976355397206441445766709095815166270258360140368077144887098963930254974066574108469772841602726384590116905125320744387173504462177511245100934522110663465251382817398100221981731853382156580541653242529654201378288776885295739438212784859684636129580630121399444049904697227809069574562738121896687701684108598824237496841270134922920013658595652300939247639950427177954683922470603490151926235670725290168451242082787195357596053631555307580157688060354739256700632658071967922918195144846804298030390463640045036299585397902194315510440231838197971160353210793256748558994821170130559217342448475748549986589050958275857440686317525593971129458908560310994593606296486961411433703719560512934279274024356834797649103653642253556538634903360100447352350878431764784428601297608474714688337908277147687661388096137619450903833142525988426788540287908720325430951486084818105060518383091006689513704407545384317323571900546839095052123181523718570391615372757381584343763386171846020189957765200886643529205983709244650933490127311303850790411182902725498337119382739863028721822915335358824218639273079343684390505787315681888306464946873627879245989064233019733075232157290583757805333285839993031798463164871450400016858537254432989694257320734646872919997923988113052096821002306166510775680593021570474118532246818177781247375340670580976806999832701527114894648894901822557336264775894800652348329841929322644129912036467718331131547651949460625426868139113033991552227001520803614002309441964228969754013917208969101169783776560152448124708261850721254128912341270285978524087712698720680635517602989527835103012376658722049853438968053977581735472721914334594493860510124277705395294796477454703245333616842541472989478043036965900684010336019522387831441016194198498738310669491521287191620995289428324815768990348335488105650113613275076887912591185350702044665716412618852486297761507854082038741938426583883103298811492183065475939184063404076423498106298355493843228730357331971194426749395293870356057088067972806174085114635399273395753860309339322876071875980212455130714900910693086823965497202338910419273185674643896402660281242604731695787619762805139432873998110197389745421986388118365972756725072249108669878985550743930534244653956430119304770714849519152570953346272372132096465891857123525200669872790449417047743774862639735605863714560329528440220037125894187994750878923035153922480164067416724086827306924064217335106963507142577531779145828343410087842878803275609079610724348346083324616253296571031785900355491334095681412639739844986543817282396572762594166710895996827611581994252112244501475323636580639733050374305382446876916455260613345866760822465639444292247184379994977248098778067467639600805927786551263271859973972395747384732788016079457386294906684965904412393682532555591210932577067586438744236594080076704147517185450254584603176910969404004782877603323485072690477057052845052600247151352798547474890844425008143863888186621919429446600052111284800552926794318923005900524502082694489106972846329622863477758630444438313345163092342198343961137346992042298859538362265898350229224872653107926456106145168096319531650306035879638259660270982103624173095441244900612235355523977747073064501618915087462190611368226325104875495645146967543731743630022149087528957477643492433187468619869664790373376814143306347267029648224797958434877974676411909619170871682916094118457690273184686859489973493562119058332457142205058438447501323229041428574379161529786289285213654857103915758766968720269199310343294007911253001166812873618057587529122407642680873594954585023854254356051723725384156807129746306355387535005368364397147227800044101249208746301075242677962204460862483070127053166441113497031569005078495108718763731990995434754404318564614645641567352809839705346844737029348114155667483748582991056852673651223117759144676585620211499282016566302920252414891069550983520801315405954900351403311452442101686222358719469409952031360481726808360131841366761628623850298528181115999522708438021779345166002452759165152061234700043947159406242450237974597972734907034288215507251759597711314273121675303320038425721769607434622933298902134471973652847334123577952639847265328881407101466864577028358422304880150871172935700722880730990212913183727732093725269421449188716273346166331412735859503709515165215997125951925683739053150762707166256329495883859463201438620901026844082326864714041367000346911019943944213239267117379216147675489363218014591250885220355856695144253556152568684297198807599282233985694695204156030781255780091969996144124286158510248051318210050665215008728468355667097882566383559569828776600856388897901851119636422275932888875150705706178248041654146881379943671694368676081339056296572004535653849816965733933099166385231900602107403442357758329160401222071712622951028098040695285735699139904956379586535017537656556313400059802148944096679089100492079493503785748207641509891499420522912722972405109118133641721644203649328421446425228682518405035900343329954149904405823127457340384084008780450032754797167566708742464670148744743328568601998157241724382786775479730363453174635257337810143856439418789691856879547465920954197446923028154559409885357980779688324134245243884438455791297686079127580887940509009513220993734726703409087622508996930649941585432069105106838498616937311583850019799912079566143895574888950488539677922191438482383635243694880576126943943964492352623512923791922779896327076051388212893062521173323688902227767148215147256445267828600370073297796594493441410352651304455591938289967610388418652636043833698785004146450006997358633095752279891704583611141624319553083901961362574698780098484004503137558264005518009329149989815928214848464194885930018168991250734548602345489955333857874052251944624355335971995182371607023692431672845900641940882585931006489214885371663079235858255575246710194344912710364857086818599480726836113217187880462573165012843691016128693794708137500750383961342823894037631057104330788926294978105982315569720548703414595530241994108264575355854465883527764264180825680712288569902752888601603839802737781641625061700185442804901566488417339857358633618533037118431293465705759348668580577681764726731542400819845812767984194833662935666790982101606402534048026441562930579746531021818961961244061027513340964104430161055328841060304570818310673567232593126896227926655004001541821599012312242522572141850837354457079464200167683695818673584888675542490489991620520638889900095977949862676309851777083990612807939609706706772803991513311288740399561780209233185938944438796357210540238371467379456672479165269082215829331861576710528806394587434241571199348292324641588045130765362198736632643859167588894030083167588779022545748340129742777716941795821987873825716008279309633831311373612743032695344900150915472528927098659382100734062797809699540249754160753749024324642613917289828811916506762258890348870082435834173664825093989660112703406593820780685201963576823195754505036328639917147777193428888620448676396736796808463079758894997756330894097278766058943007634735195764608916045576926722022531311501987316160763505089621178574970564874002855771559864116735334499412681339635409400005084055456118062776120052898901780607746350568532161550354061001549630551582381509931786978338442132137832092674025555634508113153909298394644667022089106163041016440132458002752579889782282558447218473489785314949101887072462034648437933950561586143070773834461391942584521403008811578224820981387731726896582349222476894110215898021963170342262656644019901694933011402986222648233829589351475796414335804232690812003988196688977257416458820432857602876911844154950114491464726793636654850656756298781234528492222869172049283066469064507653982867784234764333941314338422591185626978720864119318175090588469818299431278413793856195648491862418238958751398920538056199875549545602243841997719572046877570392623312226261157142764313660635466667224068992829179521555746191867653662820602051913287194638114237520966852050327816402566843290081839987940522193687087395148128091537559009626815394154649893705068693663809444453578910577582110336348669896464492886110926063120896404210239924519063337527436642003695531511010254719623453311939004526315027795125898429095250896860274955084019708897270198842726650984671049119547214857997177515067498835917167226392833896685197055887971381740420855391315703970120329367479689022359643308739006206825155497185141572760852262308299591947885586098987591586645735635465547721585032153115717866896661347693605780512798838220227914444256858925006086176756067676324728720112538059203007018163626240017203320492269419057465604033702335369602611080285200190723266241184448159025108139194846776107097040476366600117884526939568840775076594710511766546161435814075089591435459397595834969215873215700881701366331153377619504181308739931731901210802397763140101042305060888244986321896587472798887526151344620562081890955459717040516443437411555529980424498514850416495696339598754348648293360909165848515400527513820526792049216939178274887109942090423825684127958335377388950416944319070823962441478725200001160689083002258864694511692659248565976473211421668861643867687754461318365373244273521542094016946530442758462536593696331258376935535451382615099483911736081192903695712415333426558006505606740733838407798272205690628651656311339914170213674114111637049018492169557955495337029843341902626063583706696996534065863739321861193025783655944574629941862379108112291205786911453210307954342084577096146740638083690155695215298690619780834057837304031454426717347434665659664526755622386941483843074486164170012937647016455537723727501728786739491366848784332138268978267322939429220987127987944811256972586862468230218256269157432416546020066391167692791024402586136884837013336281545064938527820085797336478482372052727230292314749190427791904319024760847689074207608383050457924932931989086026671713613722330509107527886983202936883019466478843419660113114204023897902252100633103864455507539409914651853083608747300107361961231423057301035297612386267653028940982812387307609324541371257638938927509157656064602203703754747026587285818512141318442099909092377872823181627420038858669871225115932788097113070367784495466910441916897282393263235929190309814753337510858112404421343574096449824999884764240029249217741036319667106150886314204711469945355754460559926346951786741510417142063845726756345035697859849938999539146696221083337793560062049502985038884215894064700080847605222325514191731496425017782121512199011879446810964924661123420646260562528985130709626280528471831699800451424299556502129075420225543474370536626236325466542043373578280753132786427061991069020819471392625995904856740819133646683745927948835611740232443249537662019599105505860563948754290563327654186768543093933283841687024980954398581873244885471984405185489047696241255196570317940767014281109998106311217179330425944044939145662691187010746601222966908738270879276231789230527000597829431586275949084242054652408916565960604967366137551362186328503566911779113751797199160218563416035832457836751971241898126107287825858177548667869174211054374638216806295536437590474121453628866176646393169481856473520480792007389585903809817286719152024544198084771804819032622018980594670634670919575518682525629275402579653441403882743804161344750516753659226948396692731140082174565854157388324017039260480400504623123972056817779736104449616850508064486186164402100951758322702532264656190806461888314455626718806380608550948107696130687360708524461930812668510099366650121072346060983622350732295369770171053106640392341330473983644704046274053639530214694377784219482916627800573742230408779203476730955636519668977873787010868937303906480831067516748546637426978956909521354920423215846936286388165346822625086365888366705118908673611876377507350744417731768474402488481695550943228119174260568700048606562030311207567796196449160293150232886995244740332223150630945679651945629767417845097698010016292206004069772900486807257967260564277550231536304689352445173922017466831067304578034541665835941534389557674091630299165675823362046317945848327786530354975348214283506094900989953352357730227597844726965694231334166526797280611658608827191251867395588902134853364705827784273267876578163865501959943778230747465576080185066923102057288899600007678958542276306233995304955302019472345362410636041505696737404979042848300913752821734379235584915009335902572859107535735197230967226402627666745894461690453349963434544891173384405727918758445847494317510400890074893640274341433113398383915769763048892256359187398237009570044029643482926928425790269490264195324373805979465686386612699629581249591901132225036641984839951914018369247026890024730996348424234573335024594170503856864943012605518938782743532847632433558837008681604951669603657158645857555983046417876219278809026697727362006836040254269751059211709412852632753365062399494479676725249872030962903959474476063879214677784244538424937911257874462712915621226352572905987641239193926337494795818733428091595195849148014543875147151971154554148884333860196416237175354133674256289027837733307222289038815565403106142639886060060388710169634323296815098256476481597602032379136166269361882734017325741395223607099564629722949480613674958593373821268645923573182718521510022005077664997046745886551166556182681520305431257999791064059915771246409373458532798904820371628353108368521407831700989124753167276590506121676523302034030242140622429582744982931470706508193906214130148370901350945130832076080914006141887895470082431861954564377229630182504264070713335118797989124138881486040353807716375063198006889141726812839881298454608592923759220299233149841865451456727841851890795249633415910259688850486997972190646692848028280841684740091412775278731813208712703735617738349966529570323002843667634290891462482356176583444271456898576387888077937397826431952538775123754253894547299598214818476661990929558270880300137429933415251758220703882905540200520103926515769529799279510580692909126844431333705235021523389522814673713592982198170254441501647442164339833557351969667261679667714838612116973169629665719357767525956231516741647917730328536916753594004692165769626478137335210558040143055518717635520919623930148810837150319329102347917729057047908711209764350978787982395387169327208995326651406513389102858978947329046116176248724986405989917372413787667157735239833318559074088922594808416717866987708631031628275462565268456900800317546071975490403611454986467209379532246481308273599816729102793630577326563869848681614189557540285378370263312783601312749276215938731767426241931773359120241535756235649513212448305164514777571443673861078301725686235305216187033036407281095628049709979465160877980100678862808875400224314770863931164138533996481312159148122785363972913708900289729485908655577521837857997058950135965193162562478854296204153211996050834078916604249651813765733248223150020343259241625549479350067136644095987956985137409719303183426088170309242503534425582970006571408972680202151528632490238224579909326149977746867459328020763392942418553659522617230689306144506640330323319461106667760343370784848794563802539696377780810492326945194954110836645543006936166136695144405378974830079508212035797427014180199293011403555265456148934268018890494102122847663903499841386442114651678755871200606302277178873045149067259362602898264280399888387952373382200780828976073296260170373024551368213220360917157414625828752521779282561390675317672877784609826096954005847453143685674907005546067364852162628176132758056873411688857757287418623449129593992394103609510337798947970266070161828090804933280208515887022001999584843223827952640690954102614560034404612253870893701431511367688504532500702434198679676683588372115582668445249656620345380575323382901111215241292130522163147537175503923972501900091742255369182118541764697478677733845979130416402798445691599381798704441999281147371213026685120889923235793283010348959546755490994604115337645200281348724812420395298915562318491169854709000786818501760702305595505171675857338879925396904192770483684830950632292220003297237832255308878869181051004308295542082310519471322030776023251489710683799603806010253623389275533153398501032391977330176898951337125948298343980372401587067931565057883274431688059135662495783572913106328866526016616606297866443635066255633389084127137808762744909075917169120514490072884726832961390316531354151279220943910653287235760149651156204024884608551698030119193406872458990407639789684633024699876448141442951763457232137495231091241026228985742211541117246287622872176156331593579023849206348625429712617270117411528319946063102820663102896736840865687415072647412448845823790865148806140790138368085131495200113916924254834938114301008751201558336600577670361454708911104636598207130821244195179954905575498750607015533372284858231511779613214515436164632917602750514135740381185061249196567561466466785755423530604878045081542099666216661246649945135077348692499864997175184453360812737073155985811927993788508286529846990723844335524956423608972290045901657723564245359231214011562561280058496682460647651269023760756965134789749766284387287512643615997143684003717242945108353250872213318483029197904209048568701852429930565446582901337866935078015697353292030180478402957823907176056832241972786343933645010032888669066624532019437161992486256870924784875024085164689990317047529065889448099036066962916329014643149077394500076332344482167364316424206307235251076500640620580174234066576261950407985805666531146901561546864873323394230204095069573568196256319326582902117511949411024028080603107816475546946800738136091044586203284668359139260250224680796087521519124295589022964775948172918702880982606186442896570161801155799792699507924564923212098506339319837118284151008876244621428572146927803421073699477030766763340392931555283194083528216918154811566405161380215164807291484867043123657320861199258442068354272486389902477933149028061254863715191140690817359715459601242514585763792941839360434557621078733979189519929796265811477859686159464147996136759011210868310831321078970879925925151582736090177738652095158023506728040717228191194165245119969527662737185972007343355496541457642196771174114901173078855169108650575833283772104237403821381036045825391566281902604348066322751202307455252288204084089975285631375404564141278043625434547717790994522560786725739681706049786175836684631827671323752130119016618947162775519824274033811377339074118054425631712542235557955251762263979390941817161224166463450784857615441997069137574733433166326279200029338061866423714416553833453375399705427608911136970147689756782320566716002852688989082358082151703855756472904012133138989606836631968557168855745649394826787717094337030266765635812732950367747454105502593627042598547491449670684550726390059476312746970195145468126401687345026837056146542528798509794018253300272389242667512353802834781337184657242696588753097833929792344755194916811139256857639488876449402847550077195875288521780913457806332822192914173000961233368847165805391427198818231589702426102794719884206691354309362964183915822101589519268232936430998131854063915692368259977406436622889791805829263195685103285536413466171542520607742900452184497078052755477710340055551119889803694570233238220723698677273112039835010356378143488230997682949228091097127380386319236340291077384902196671116018499887296079368302154570450708107083731157992382469949038883346145833764968549112144818225118750018967410426638396075991880918261152481943351607111037484304873365661413707065850071819128478366079050686874699887319034941766306232081683304825046298580281215774266573154726187934848401349985856713088390287930073090928018806770516116739322144194317554837953053843219479808206905429378604838254661839098086395588814046265693507216382008757472500128891974651191357227664721140971783478310054239712161353107982344257692310500347850988215727908046101217242839378795400622972041913649081217357491240467196753435178325344179082596833667032365790893009061525656289029592907809829833896508189780556630680730658921671042347322599662917445431797965457813798644082517818564519989342763778190756771998786126678113090295546381035196284203860317977855624154143113442195678625639173494622321336906696018641943348635165793598359655688138694937290655079055953900494849002211553741763978407250732313711927452180712528102726753511763137097011542118118217285088852217195536149752633596468592563576386101384619402802937907825860554488014712589968233866320005457228608964283092360048790309080861249133226118804426731430958899277066948973921366516210958885187253332456101603757181663847080649569494404672444703621063950051950356426664457531903565982564791955320532223935711353722000697048072515906681095996033683750905579071926533883161365111580823692381152144730652004626959716846430845140549142905491149174108612613453215149104170166083499756645046156526904578513371834127728547328579680356733926697602083648731211708431832126633176398147306016575690945989678497650227386254328413092847975736491049864816199546639029415257377444809159354076652725220296660461568262817170021381337486247123006110607613298541869819072790919096925878573207553631541865783484363651584956254763167436893147065446664933270816883233177049617675789380349832974503544156071053145449082512128555138923588242526246205343341615522282351400475160333601112423975805218178667829412237294847518951532743363084329691928935032706039934817623641817423051090877130083562743262994865848786875299433231667285821249340056496897998603046533666114165773929660011194690944811329481173645914109491256740590859438738775310290160045220139370618668881374399880478480685259870836167839257728873744860879568418972951226619300368185931902632941030395091177971780119354972509768222707455275681003887390614769536098218101209872725597729885113887877392915124213934668323860073730152130808074695447262591843662196843952224606253992893784345449523766497646437247742852620515346831939605369168788377120518317848543346089991460444053242768875805523902098901688666055053953014042146535745743780336898999135111248606511132114461734930199233296941902309593892303071656419075214307039743594935263284964524087253567343610109890669561812409125880048175341636082393801203430525053246405084460807256158022959147083267132010775153603812901850250809257385503727974715393748567180941007996545299071313607425744747470676259582627969339650797214091961019839747023188455298745021562478073388789131202852051430779142458730851891525555486115922190347103605854342673937792041662692862062882881621314706161395200273341193824813588062777636249433628602034441229329751775256671393140429741261185748491659724402269575990884811506379130916299322919846910353220716208317309499700897176951258353939663235527772222178492105647209003411812285514566584892433247316155197441030706067835010465372326086548161034002973489944228044681824573246134426741581560644264888310336745308587765027072825573637220764798599138392156187061378706601486730490302861317549527085461958090057888449567844145824968738195677965955908787348083174487312145910169471588167361060968598041147264598935644455751810845480651971561454431852063937803502058264421399136917986134528213767834404079594379699215493176220821059135882138061056632388636261902624369900442007381333264673691389745373948585086985829782383705136556762196855952596330617207641506267270371782172941304746934338869212534065819673170479785851747779430057787742415971189641313915528065464448236862957189805445118808192143601065449294713621431826007778416063656124437424902703451103819874407299181013162151446427722722313998426910037926522368901605172738144579528833280908327033431719278714543404618199924330145121383704265485426300313117415045973185807142145592793395132787945756465586816864929974582209353512854482175908044288504354765683982406956508565061023073089161326968954849361306133175813132219998701583397789830231897774608494582445333256983399591507877795361638423644994188742972063136411688553375044806844306719544540834267374196101688111404333429978972881068357844743338294853478809123244564973975294394023225130365678702548779851726786489993213375178567802153075149834737709191788941855339184930942585352382774257369253014781677159803223779731913320930069562948715258634587959530423454019060874551346094161417063978463982998812698251820721501359839297379859220466900352213484331531848865320327422874333019131195808669320523040702662960674366078218744609338670256338443329060901102088683841358347960270057122398615051449534212924749224731606907359401272097226012499459458043661602454497376787587717393193970867747632319107259334029374760423352780723167233729630814392788756635396325280529487191455480917817027653630976787438705805758349655634554263381044356156395213840927040297701695315297310364063626799501938236545468105851059460948217539697767107950907437020965574863546473958613667880924492685173513925609264584260377071391452771092131419101365277235614464491086562314528879939428580017270927217376473634000448658332582113161995583995036322851274829770542800983517901362157460566440230666133473046566516236300625978582378147845890753889341281238477022856058502010989758849607877812191019365067282515770504353900130929748097134409877035068895897140309971955811175969724391845151820639097659811286606179142806239617454307837443255867588366985929495996097153649822426513206918773236049805845128862257401985749759828634056537138427020980845109998451102932794482357390405099752251991352582745631942767973824752844486187473452113129879784550710098997163113708807403837758013686113560233014323861834165625141383633386192976605225302471936740266907712936728706676250516944790738638906496285849506016583914436373746360891572465586833755211472862768081880218866640177471938048155634743806983722437912656520848117777186166888739706337375247783541684009789820452776534446033312740698197469406950428090958548031960215883713119112086501487995619846795563153749317481523580234551478521265070638468873811064811825794733578806380315805681734949026624977844792058741636286775880049410682097171953524792753339621690218726074998126333742922316148425734446011225089150854873033011406150342594913499364595266832812399924719171353288633505765836795381492250902107703675739367562922341771327776034102228095068386237362296183183470061009742621795822685439281463778259391802568215669730903426249699736645807149975847986836097961339560189907538844408279604225321866240458717587493747180350381328240187044271726004717856352500057458353723359820035894420968828297504640049197535336140606483974532936334756954114291576429516282794855155330267480691469589655903867541503981688444829289273966833862332657197078715816673623225072432989370947185953119120128186138402998396129921745439077069132433401650078002401081830600106152882548614569319861571855966143228134625893761014551740454321846636966010336528594530399253587886155160770220001949462123221077837845320102482021403512914308996353998632043995777395950291757182460317400518222061771310498878272206512909484474463418712150448060599723492791740135611061943787072914571411922355185243871942993330223817427918329337962939292842335446343975384385805208105497120680148025075788995525082590457655328744183653581118051981455790665561432587339097657947429264506243690111080405762906426939527899542758800902371290841620978095905477773603546205019540246755930099316885280361988183601722951584643002396012976294509769383474677805073899153801565491003044569321726455194029463121213907951685608235750629336437022264944617589386075197806284223261899356244972208827143016159199392406743238232886863491321662711995767813959837381856426795762455316929243007212149139401352188039608655900600785940147633556596442094749575541608977628238797447096114473523400425557046800779781301145596899583938973392348339921183021307343631246536038316251216267858233129608993738359532225960165745315378990888509687533407152209991978126840962078126889223814254287488396070231411904431513846416373961149807874254433139050390536398231602132073254742148365677034209472623585046741392036572942288883998630448669878976081653216345934816926220718954781972167168954684179499937131800575740199608810688446848258820337167286407437213436482419110715516403445631052589129938659459462078156618077230893161078613740955584535386599151457923202652457499039968966380109803663460893951380480445071878891343007627910188327114071070540102168001001117820430137634985410993624152248712623959105751191882131624642888163659309502350183538237719821875928749920397684886075750668652243949820301020246494442238635477333855730526395517706292717288005156718428416038069752998093060840484703152680316105842684767336780265666802950845425183166028489461959071844947594901889168863700261719675424736263028271325236397072763636199272165017102186985557848101617554029302618298564402027655364122756128131509242152399564557691951445013474203915029840475212227528216299663117805124835034928486475153929552919856570321794760439675174767901157038921494970665879059399054678706038387030049982383984469908983406837327506237013880293109131249509246361944639533318627250094134800057334937537490192927363538189132653964877089757254487331102136638976460326075707869537776618687779637783904038366088400275125458092836796459300114341174594038683345881670923579626187355780176770931023373385572235553423405810817869612718204084112286165168473936087797854628780186912899980809245946703045159361824174911815785461461862486887683048633918878287815513259334200277084016549694074981873436439593428767959198508706222030881709665810819390078751563437299392137531257574785848346199794810127547704319182550667470737775694247648049776909558033636290668342158559093344806769770649105101425846903884533271225676021031363903948437265085109831273201877830145404048596948404993013017573289346245328262220326472986408272401610018725761999288062229707455897925381439397433273087338936730738757094933507092915485581873211875520543150138318232339284848622891757666750611704408780441992956417380521772003528202781087486117687237386442021450770052731326604890500655132638995342740807259193575741681500882975441302829574177826731544273974226548957945808860194334433746819416004030132071739892948991605475437229766356684749299337613541714576390739291880529760353333139015522250026274625244442798873895095197040055566337863315742630900399123512118558938078094993959203068308465996399117207506829677322225525041564618159452563359311000286725943252066930022225103885238720795149317850617203770717062401321610074531772908844563604935092892391859329200562878605618121772082935556996067243583675029771809221347168160140449265290998814097238676972230858245166500804106591643275738069036745402126885913298228986427127217120311303954626402919979663652580372775745379983587093776332611707648615550206857175887084321086299472754808080832865752267293120446062858300797777030921610222280581729724554147633980240812836855631591062980411567582290082846909693290813673760015394808197044866253680207396060307528313535172876481672973993459528812759655887685509658481656262244882156722090823575007633224568331651868034956861886078132647511640290502138532226227794242554458613850087534745991909645263760441962689218424147701316140017642045518810330695033019226928871659281504647682287075569027279032334542888485315964803832650915621113001218287545241270365498381270109121356736837352414452077813281997087655567222216630377920994926288212107422577899891197383296626445522225536063296105174218521965057393950671186329727963602900470396693214476034068678653979504410196610671928353521541221997608348359070821117564436446821767328494710016327202326025085590743426276860851370245275414952937978752739748060645616580827422665209334712227632593006422103297890833090650232443950342780487424359110434074956165827648176235179050130282125063292067734665313247227743785844410219170851711822056289890995368501874804543323930900506995744071999646782918251311512065393747984584847911461112469882433953782232324579189568951625498989480003335755544993557222536187174346455203540709174957357742297967862423652101930250093424306704590408591423651661334786795079174712432454979830766405738636769122667946874139933422821662467197458596626399794498705367483214407720960167838034333827818556685548916604188959510115132044477865004395668726953554078170651030581502188363809838150075339639484268125934364503468536126657722341467934677774444733582819372523312108303241460438953599262381882785282714425844667522845924372995387393761577507759832010457548159893950746694279803220611796024875521154728140467095397734328910340401454435142309434832524743925727766433533808029537277534912375013607278917921421554236865643006061585803550276220185223615498650047052130497975851044955259988449909918851191419525668341458317253062810476049071260093116441104721740980962391643137821343098217325822311952413087864053457524503342987931422229113445793836819250585762714145756474653021149577256562958993585687972455669540220603581337396324139646102910890829997347709842337478159721464511659396338665647405529669419892093635752794833134286614077256153603498991291245234196189537627264456049270303950398091558598846640511033116009211667308139889762328665640263370282063070612281440409541101884209268193166710164488155958291469228223006160456908342259771940231556844324509668362278898446775023523008753666922559326155060014842630242288561884643142029862676415086709765051943300340543834180959742783861672197165092377668544777774061067809250427772353295000965840953028601099043522542717984853470811103178725565584769324856473312204499022228256155429627311829470793298897986112367964709624074975096507640981109174075924258759073729749313147451878101737364420366374742011317141550241770509520528953985161084295971892905949236839072815448611319650290991923543607106395132761743781741059139114462408196118977119879572298991602190904300343170307771236628153792575276181073369341316619532027667018589805687900794744170177703178762810253535432713691744325381838318728607667293881793490011016836019762634362018769982395706452218480736365342078206632986826166475476705490474719656287691365671035378865613509315004223349360853199466256092432696628268103673677369052557879816538234432108435364295314447434006277629836359478034231549025545114110459600997548785779299659277196497518835602822010656938269691988024582838289063921846696143281068416485204549628884031860322295960776770131540301553470529778940677853250583705592233181653190921824847904666055512572973017325448250972811557464837964159257579072599322488903845713500735179426686347478638264543408861341384713146325942296131199333061395537715730758237738753375647632960357150492840784766529534968801850308180976409780657842980251720314144490690644030116460713391128156034382545021147979053426587483360654976888235425580603909517983238118375511549744680061882854406971063237859463059694864378748992976499626849579332575499756792892489743629075380298614303472720139690914482537136145758974356282619620674995226162061895518526708534684758298076090084017528545176196314278256742690617566656307399885453988429633599198022763290905334961383708856213293146954239659484361510236372905750411616400927388078537410294081061020937070948029093997187301770721432569271274585654032283087418471227276641355840789128554565858366290358992802693548326104220013924236751400491337871167043280543923588698184273573065788886168141137682765368411955667489021318322083711253321318742787748709940192731608196751943768908766325962099098997311197263771683670110649578916715036431842758383649894742139307589134478094159769246951097195193619955720787169119573770574708340916926318806858125620663895010419645099805401386810037471899746267311233656690699747437104599168219885943851326147904227526021955288400301339654692381292527806683709892241679586310307648416520455388711380181976807842573745117900743982206017538938011067730941451153894625376149177164718288967823419398171687751848419874612362213656635469440230785110111246703321350416046343971172590817126563953042076037736404701165739655628823585676851969403338249676661849574729295908210838662829273217363200831813513178439096123556908282421415204329145158433480611289456593873130127294894638556467844276975557740184318350773025092406497249488844979618758893800531942519778087771710104061650980887192433863764111494907657702854666201466884402262339519059414249297154259243253796030341196299764203726921551735460713044119547519923598570955968836104074427075374934779201747697933216417712236629220918575660061753703908707726440963659888378210849248171863835198846233451537260385586248103122399005698650603973724643507466838552294142350762563099743662820197043242395783500411850015043323742653287874611737268124353692009280161017866317868785190901344310629316793821046072366269477470117893548975282468621184525117687796978009454779301288418289745099992252086157953951645733186240384451640648359617767448400252948256024680950893521340553231235870341481556538367579776556603979773135174289379457113767580902653090610065826077092458142610400769141313226796813510243991873137660695218883150358553361765647865629044613558382163208474667367997099606094264085738582462743200231799603159925024890575299542469742538905398924610752875324153881962430480423328310964015300312178567662127376661531432050177467058808922060573577030455858978822306691699438048472919967590405209330452245202566797103189312820279585279623304980092022897669133359549474192375813051573770838283917723847371308632562776317022674288840238670863247849170613319771027918673188802131550764724087492468129039299112508518037967308689180688913857724119546545316880307683217447227775750428451126657766439247187442181665779580638652050914549347428994122824634243961930875590743260993160584733459309840937119323669207016034180840065990444604216685711687266619652083584620369287633012826307288887476754043856706372519920951060004613170208148429826170700391448844916726055252436535969555295008998276581353381491082124341726976074795805447499948435220045563731739369924694910037578696279834881114765362067243057019381989314129480416038796321961117700618439378924629159995006083688485198773275466083552478734129101273202825422780355195086528965410458512949250053186608700660748587924601601129811506582286128097526938206087853462740210402614161175322603277931801104042579557271556006758841384740871883897806293934090373491979067404847264182183451675611376483417356794108355084245951548393002379026882566715877899350593597634141213658055360294242221546169554119072582941920409298499473599788341909812680106392197398655790815227645183314088711439432125088770018562194517913041699154882750062277737148596346069810596401322906189578370207487897198784422953605075849873252066774150080939862496737455920046546518458642957989310429570840707054372288286621923468319161431891787667541930535655596335189635906476116472539444062754112582397778056585774626893930911928647803244149062438409896574524640931183542915696255122866370414325627195643289169988505637589976835358790584727293376804166719167595090572598241780225245703736584256762309744696913211656295110020431153986621246801957142769981198663447543269366836322692688124485498790783355943861078076860035551448967952945596721378904475590923074402860247236728002428469091493071757530759204531354453043796676764164010348566155838697221165430280650880405819380320132745484416507795496384317765867898277327892921702502427639954535394969161965964066203314190188741000229060404319833625376005340956787756692026940140695066459400855108877775585544675213119494310881415196811035196622563583293215088995957901151036453125718687005735553971618817877401994828035747421792019639776001252348573530938227873186233135235995139496108867768257511989194676639483000889940717503068195948441659922867014904750366552967763957721109828782745714313225816768079792595958189529215275238800089690967461343573594640351837936439471154863525356708585018140977855366507079217295405331736550734796135840660460057456912084143650357707535995484977503778168077434039958006677548145440386067198731114726093756930896525759932181449114136916399344004490534055652115607053038607451127393340655688320857858932421761119135167597652259507459673480326439435571153597601170598193931064185038934050176796222329299211209586966797306354761082844019644351832276697318001236135105002414333696180032178478911229412361709512041158648101004067576832843665309479733906890027798241266693207926929822137903215835581899959669252847786424179683044798077706595314412564737616975076011172298439969772017618793632393507910539906782280652521752819035301287560527421285510150774003931031057224958525251220771636539805408567661631896229620790506291683103471602966596097838325842588728710349899789040724882877167754606562605794374732980728511072077508457526673964536737328399063429685099229320691354445185154559878277021656524749137492159472985987797835544191153093965598667375863906293853020674315123382068764189910470420886897344644323543323667899650046734526265849133007737615535507648431315858320406165437342992056419868830119755079058653107524955735144141937871882632911680499536043289391195945787570083450023603720688603922142543915475041249878112127013186330655422649470216886864168850713702511167736213136702665208497288107807295036688886214985443756547071237022516324490233887299375457031260689544782040795539327116783943053776868662860411764936330739197058487172538534213838921051935929133106951913994924791268151264076257265254250420871767391670081812464448448248713491396898948033111560753694446964741504707291153288288993639258303789921146594417196951493827812446674243887981281941509994746241527746906396498624236119874822700838424522751113176819536846512982792495524142011522559955085718861942642467371852216424303541437623646917642688108642870885136903798323075813885067995287870136790696270697472040332985867145305211594247490535855433111136408241218278692982319958122649452433080077003247682414115166209647172512644175082242394721525904607117313634990100851877938075876314056745477926461334522052218308977949336679826542165637531064358703772309389161736859507276970514922772430567814738964575828595013312700896674346404082638715472287877771913871039844384001633292043606533208586076071390243793919458600290754184887252279832293920343044761652595849409193410684360238381777471048304572897776223810631852897407445361348982395587975062723062461288492139260360590092333127405032127152522124386973309673105137635233927612307592604683167533777479165081396558305266975129396416224023390880004372136838227998821330705914575637081383539237979849974837791034986655252615205195221255059177479589698254349648675319485284892996260724671591103107523339619640993404511430043833756954212465592385644926708938161608546016158182120208604407379997805610256897555886013140226542645117807214652709338831622140045859968303826874352478426509926772783953650677454961642143982096848515329679594275050109305710252130661141895499673519372282581162899813475829329013497125722198452249538676510940651170898930069180498213270023607570283993626862021224068877928733718506123981469682393777604112164140903125690191983832424525065269745627701863621367561300691283128116513619842991477999875435674933348478354990771509470798593173391389306320106025312223776455637663286119997039285803908878035615468716634521639694787695180858868288039082820450487653163592146353811295040942404740909264338420580177979328535208372585205540349345033088057461794908012978246834640147439797661229970665992455885224534533383891284196792982855173800900329335689815730488922508201259361554916184563204291559855707869051322000498705569299697202068530593332881986469679774315472082045893746277172280674338081210596257439776274842636939995504057590356772990350451622155213182793095488007743579906168422640237653794023430589859999498030317154871451105467400374015631144016710803078408407695066158094235864360690383336052568700816894719646311443204061368950811902136580892314199102333651813169368258568239948358011357849748978562511538049740735839065583290020768010789677300968739091690510171031478262332439868841190585356795199224520612385042090415833311159881487964454400060840391271262358286196192434124297964192798869991938495941860473695263299797912131544182349887598093006129403767897349872148912933855348248029143514954922849647802459142588696631697833642919249229294336296632430897193628820224802966234822464677811996534638130620554322624317429158246531218080436063077042190257597270301164098470755912079437715552204750113926871708368602477907590504316430878094643126977085354385186860152176800895959301916757775560268728979390988762226166395092151065754289366514773081113054443955590388808185302215684396160875268484185027828679682953603283536076004057210977263684476782035197221921631815676070309866180388956407855851636864667434039997117428456998551152023428315610337942679049182275693963786243504311272312434738001655772207006475980637021289473986537890516010175892750097846236769270824708363900867402858660168577822444907350389940677684401414977735039795573277899997183157008011703595881188763219795484251796820736353307049400916576089389664046039413729551837570649304085384646737106353999709483176696596480711656928713717523851306127810734064197192206786522088820095195091429088972196302064380513341266883654833041650106706661551765116117615144846034846070534861765257030964629206404364769657145155840646571733573815080839902518972929355653845093933653688868332517506112309205897119134030380000468080385594055213319190872239259995151556677415430730360277671184035871369635305790484626948867580337044372568801931040670725589574295593259034612105886729385002591801425958061911079456884365183795447230207057817838367238743981915703715517024574135316906573042154603192555526912274838342392021748655944986217924642068894908110296467833276182171539656447172494967879169947301352218978353611313561606077730092959400622069130494388909282553809600449069114036636227385929645199193162110010237920921928361687930590282728370971690674555800907580935898095319454793179235807731177049886647552546762227076980765337349790415942646038771777479889619776895172295999070537600925380202307560582326558114335588323649135504782132264508435885206548547184784342357987333202272246282335004012689720695744314265459927410887800501556744547711784357197005560920131687272393037564387618742911881784154244900491587199890000212595285183537478338838757618366083042103120664216348276756151867509091001340431956828938993779591699874885342745902701800123315762127105480199262499361696690350236768403200523730269047620223699116026760948949391865728378425955394726092760913586326356280722132374284095408074065224372723038631859568137307797169836330835812903144378054195854871301632050400504949528298410730923066264595732891975359797366668472091889939684430415126123558472246064129575267067481748662899867216692198264416935423355696851920050436986444186965946010082762104284005917269372735036587000227598055462205266430301266565493621149287285585864653381421844667387325355314207815243820972764457114980095698194370766146366203052768157184291512686595814380155173778938644914103790914883365574718909046497082760270281864437699790501680861277353535233617565692178784132932527485995243740784147446657201600422368779490766647389154265610797936975317496995850741076447679645015559205754150931968911249286473835247468398085108437251698518308092068485188015086290033714915157028595185934020554546129675578028977777440945885773445280883057338442521816069338752608064926208289620855320174782484976195163135328368904406709955424164395756935679103878716793107327007861986346611877137328358993363084882921063960729780612043784866005357219253234438410228284827859186946878517523242355718165071041784239674330277962324733365610851040640455482590660281999501689503985977789979807239232263217657912466720263133347068975102776057032486621058681725106071122391475978061794335327023027639742256651390035961803562942481011415355417887013512798041401123663846341529937191863320493661994955128141916748042107880690027610784035642209988952876537754511087030569031786569109531293321698500280117751870218113645466704163951868317576187369332539988796616202888378402016979373317123026448140932022948197439701639829591654553790486036774661474528339916185525451405525322846297639672534542830702792425342750505788962970134827015710538765881190551623161556488579896021285476154748433147331100243945547783194564226936918363190348955379597747453078189707099022587331370907865417339150108871691100736256906638198997091010392966609016598181557495890043537221432547109915426806363501074505516651567081329054874458116591254863668356509584596150303271521854099373525883736759309427148153453746137989489678341167771376538976068754197809148916527703696822684963357642421651525071676813244869601842782300625280464989568533280674693681830608714779907968062860001104771647360292084170037285625436225434982424579923466789116893399572054862951453092961160681363535058276272851934018607381689860962196948253630392436974525169102641903464423829549542110416875340642788219125825877723449411005424480087291106663023090340738850322877591975451463432700818370077003061375592893836347265633194216314058719244069411359264830603819483003819116559092992847290166420948303681466314178196492542608908999597274758862018686042902365078643748811260951842914332894829129884040252152779181856176676613734456255412366128238502270892245176894750756055879278677291285765175837418667815392768738059919182075789910031891884599285479562313041688671740936155947162085856227757350278637192955082189312801205853111490594158492189237856373399735934891032477020977970667277357189669503353194676120813194554774854602573518902028480214507511047911602672766348616891580368813596822849957992102155483428236192303646016131145852367102421271662032710563372392313998320787640181671315169980469575849199905100387899715705507254286603944631109382246690255894326111097908725092068302029454920054607295094216405526200219765648120444221855678993472844780975421768583316483778355740168087447367976285652170624441987468178266648251840098025700146195917380994661531588338106134051462860577139457676515071914810944513243587984228898639200414962470084653830188865342245570917710867708374953925517599554195263861469609087126081688611285385542167120337671089810761323378091931213910841712349953762633459524286472492811544315245300947773467195468845713494233970813576358480477767573489267241094064502250710725333553794163941962137189904826491940610470976940128543278298127498314940367771003342910385384547491140395889245538719763700333092354085708533235987373116868911823646154355386214789241978530490471534952604247599426756423014698211760617069784741489713046992005760153090862088398837318029451045036559933323890486899519171644341667384523849325249568927550859145156163054616058707746687213657297823939791452376660873368049034664378341246355529868206198756387392447760238785380162729798268790160762185075116651131487997885367471688383233295738439918161924142471330603534465941128010646254028143267223076782634318337113308580148558669655718912994483849992329892444373967128462364222386195135252695774816528880778244884320914501838743516039571098647708580329718692427500650167703963559831373287621370609662236662533772585490732845275145739712988801367563235110873970187328363739699392559427948082283799009386672656766184651233524219912021034868625599906632576104536213494904423394760231403118594805215636472939676976144575595931249906963288286313087261229188991269991344301926303186708884400932744195302585310653806949291753681699920775749466443127139584005126955236058875227325292904976802846046205929960657100407890558604533282677295138185284905815132219429884520218530344467952745314076599995467904423935295143460103349508638125360254817520118957955150113116816282946909385798471739018223980326166743379407939646685872826845449934829661086388379313895949298960378805336976557300687464897753741561226979485459669443736243010230958639936490976435592590813711659980497265415486034714888124984481878635795090227204539315000805899393107223280409846871705318415963583111822708437156836613802023416327148936776592485121854704719458993337091612809490079810256461266387877987773350699937964330836314594079361262698841265988837511133535187863744764691780884481268781069308250035253080910001832177650498459705946466363857355869462675803797066408710591640807187527912245588651810426172694745808411029577022937625930118264031052935199991213606271978239621248791556947608835101974038668485913266354948314527604654523972706327816663584342928044497012087878476365123560945277420201414576597819144949059371068395677638176852461353350373033281406029774522045224861488654940899429179256673870839519681063744531199932551414718185570494660731278069282443116073360204670801182750867742196703686875515217154564886173434840437829128870439674564953213182249251677441757110795520405408242744906944315376220480305246157464626387240195651005206664709315110914705402634350383309769898713131746539306771291622436309104701806372619739162654011034347017775419520662793325639352217800142378627210246040905438688813809081916731496750993856544180166603229578896062086701849224470231003951606638176528692106972460205282631194909960117773329237574018318120566185435409911708933288208382584983357759274976342180611902634255063560449619785996069761073932922753713790982890388496239016998688665879715087681045342455386201988142348806771495258351735769169086501612719404040751202335038955205218181644312673694951841384621339681457057894985384978533289018356061958364944668294325805045730114203406141215362211492694656268704542530623542638575318520317092235523883853677474773862804444453704183181875101620334127892644022993706970934013147373712981696490565707408673997078385528196662698386361760125643395566637875760870031432827574709169593350243948613821056627484992641778015007117482248699117506307344742073293037232765297943685525497079806003237070606055469482590576948678933650238768590623429128957854549892211553329538235514276590277301995086205722472465127449589899018001982030654055759037612092069149244208900682201073064090856799502727750472218325940337417706110596424204711840644272494971834672258745966157557533984872804076986512947563832636968594369940143208730033690029039518850845774031216671906560800390081519238792952159509292250904501695543370334142494112065472663537006394144267289037111476113013126308077245798884702171278049971363665450158790385885079757031371496919522624991438466206528561911233493441228924314057310341224817563365711608366402626370583125929088161769968007410442978140369327002280814564989952773702224101698155181621854562490077542152250010864321890316449959796113009674461509913852660878042559125299421716661047276616007735319121419683099653136569610289221356438091103454575396363458292221467997471129140569045504692401874278333157467576869422596826546834144495664530676468598392630208501334055377089546205260309301898742173564218685043637322691917590563898943239408114563777173581944116310286142980437503901178882725311641326817330797584818919026837801970385170112050242090023036486561331970970383069229705754696176666383417959282749223658351002364459686678812250595260159348029105182614100064133617744031082822185866659255503125131772359436013625641340186083872688279333309135527465034951616375541500409888992181115634379456127483506917694583720047443631585097597746410696968550847559240791586266510498476172482000272669347970881317131122162662871645466494412370579397121827404910293848778535118770296800064310984552726499991911966151754560855015929625776099768324126049830885445694935411516636446484612531238428386506058971253308883452549474656257979185270120965488762009012832821312782000789558469913700446737538441937056913052597151555451324251910545973655831221902738551443167418293011516821381039424870791185139653094572980008689179573408851063949259408086257732787594100893376731031765026503122712849645249562667329514856830021991215487862669675397936374935092434483094230769189813872152568680638177252866195873889145959025466072020609891019181884222481138635221448366381127602806107290767189464945745978427063687094670861735780836489921265879418133114956818992836548176152454289390030048121414123783237058853224735245102447402105297992486107255360270624743098427172413204667699762834459797507029090458291484667153840045976546360771034516039740008432317906604935730813445071088411178963445879985538731343811889589562043758309847367609691011901962242174170435698273965485117037832055114599795395269780604319257501348439500538818342819795107296988633305888000627441574595910693296338657382734601944379701161861625721635588812688116740491436284348710800993839341469082897636352705953663843074410554023333537490947295483321490739470654680771361121193447323668627605854278824071914557420151034202636444199360627317481954325550333875454884790193603010068129248683385618709174899634314977990558919689066115375702704003717829612238391211281554262152848489350575531243415898151511863985778537468688160976616894889833086900704639538261159091382719135221594830338138122402651351396602837789973164429065699526044840826970195767180707807676318548306655133967091726430312788086687252847980707529927546740353150373709238892005193055482293191242683456801277121362275314110822838463782588994125592401340418543305974713461763897692822154730250679540760565387622029320056587386882605282140376436632912681870118702854515094902613760725897417888226069184512434364665722158712667631607634447980567288555688340340912478480228637054127677843037469221635100335585335472862448980707824921516392748328721518828388120432687190524865909232199244430270401198720697324239114395325660826377775868213259702791100388868391305194661215964671877947738787083359610603072525540707077962214446457906980428838198559745919367379666164527863256103916144550071859827137316723844106550121714698327768267425991005103882157226932204664606113660092199656474188632029931346914809264106008286903524752632320539875606579481546903829592111159360865186534722766900316438535144855014886533993050892020952736157331299212164257134733936674022957870951150583375322770316745370876011115106938665194658134081183871778495836410281854113127108853036520892203840575718201957248858543563970914766582673952255909413436564105196033860519616727138984979233203633839684767632949838141644567741045116334808121516000590071350374103857823581541917324376672977323866074029843347632449473585010816393848120344606985937357867137523287541739248397260702431352330289262222843261448473575023819150239200489713019112577709681742834250935915940609001283444013434956066437813263546622186977192366477580593115068268259671608518108698314641782335505805635069727517749493583041109069472246203682363123334282334134553571284143713594844876269010919688041302099258418753178748380223398150948246919098279917464389378551829722016535867739976368037290426650305610903096331245125160950806762899187075326189407896749888584500850103077053061601463381290789666628851893410056724545796569050873391192948682917862786319843491479630354944071738909397117833021993105662843653211873558891942132200040096971330157515193185853963162396925929746872396599829117463033502777442554405813115654123181588681866602069398201535438675456924527166789703650990177115080574478285860650344943048171096742735108583418110577452907795875468820618537168625844496123329028236149896876972885700042799236467746762243701402288094121354963373922366954795382688171678125498508362071473949322699880104633092614265164359689570129139277912541336492879283279928924442552943167220265351052886775757934613613703995178494805713699200938376811726781408123529622950661219029646062505019381771288312996768227836236863827154567815868712544001178568564512143048208066663749095470004756969974064053868051410560977626052848596881948861805271494156373936040031867507784706709284531865890063966431347290744019176227172259806977562429046349317479302480402897336813964266166908301350622254442926291664293611946586885855404887858231945598160636168229068776439545697852776905482646293558220023623169128191907725255076842018787614123159914968220776546545569349539905635652306976047592644837268559394634890588760471063632731168595164273499162740444379765749021288661955226376703909426387241583821568976682820372242334933492224784255362145514276239600639565423709832616379286550657527784223807463123188651950626704191656235390563499532991090676341423742164771070586261398820012444782999094386093282606016571015811559615828577592649663982592266619380472239228773635242406614972480284129075722913343971491773380461707860357127299726284865448000233445855808251568565756842659634899786373498432945226347047575257906187518728992167263154759423288191496423979338968958940905899545429777132351909984140649115180387821955653639240258697138773125256848856182069554571418935062439661443557296724405545627477820066165525375454003534770156615013189640220157137189170878932819852284140004313934359934770194171233904568067801430016277832050253966143630832274097273210009375798459789528773363591913599306221018147994287368717610438970873728508363863380631275669347499185422577882178476174595757768758266295643728004675253723548819135284670904554596642951694497335150571728486489140843432019157654968402793109313736392464396694082258875652562453455989209195590658670319579405121462337453447810199528429442548791979122145006843878655567170634434686839099425263822265951227142617157699310514731125726874874863004323447969495843542703155971867210773376158711933049209073375944604563556175785820135589001506047430022511215392562637616939798875273889253381197336918170283695860502998989980003005227535591508030321301291371464157683011799910425743359767783051107281440253473731463025978390605816794824421247351857117572965605417293907932771384555586382257332957973073696991428572148559706357114048306000910284705224653253560446295804554736271147425362434297638907863779407596412088420771426952236270941465452606463874902461751376431521622261271973828333643442430844984863903952468013522415125523810672616848894662846482312521974608058725407068969965415312121950233130925367218726805274178460445474261034164022100602179182435126594474843947107042321545701092780013080632382399359940705498839392961896483023471362403321260252320848430635371782172245136042417228968876991104017639412053662009034667205005942884036722034421921179729341264460217561401815342289780832619739012635083617397278634901586654133047803381320032878001557823792255727496726832723655225184026149354043364410850025677363385297190897915277318541591593488148376959511618936918495013243140579182782265885829924424269780128501508000782775376255912276571725361610989313414499145376720704551250936843571951971622940216075439798031640842033163862980036391889242174244497769265320012076001061489340018219607245626327264068258693382265793099849799808940969339142539715268343304231789357120101794233148287779515520231338761109646096757771080226924442886040270781286591076002189991097952901969057095492339090445631609446475803024174953470536813291943740337895809693054468183182219706530879615696888981132505873724938429413071130127390993719975029460971875409344213911309223967441582555464805994411337704994016233596523761488855300075430693381061907729078998234139225839842022448124877293158230800703432188748152385100948239280826970354098840895983377758714915661522814770394910216405513253539610306406022337645467258296613614351840514696503494211752491803869624250979772195624788754559930128882323476704660480800848532129714327848006994437730859169358670369317438568914277814722664660993923348791694406913111857645948447487554811906718475090325696767334816339993405720685622035491267543686324714439938868550753846363912838105862369190113763425960515921936770884237634740189658245846036041364431179717698816350524781832880899932031714105883274505953785009324607566257664311728887588601930378451959780201351670979259898923955105806324499029392777807458431067747984698696564410126708378747723565372260771452535802298730042790086632160846697257540311607222989829700791570329447471371777132154093817424985335389185796634697198531596092070983104589183422373131510911147927054316996202930275989596770232677992131576883262672354635284511327055668398593246664702019741002127334634367305939374146456267720335496648520234551164140142286836154578129730647550701106424636455267798082236326073316163607300349953741617492124058919522626923853871190386701418820436430990720595003258037902091858223055223471974777598546414342218804830502335255844294359939903714641660965258100567863508388347181278763487927280391455609712156403322320170814466233047475017393479636041631339235150378564556730520153774558590853013998076356287335747169655159136725197106185530251465198729862178003437383281200355919174601312914209659880767208408903756122421431484725212203770149815188864402312652421457067310435383494182130300418698309934600803657191214610875974715984597635243005469988501565735630326769927245996086578046627455415434881022082167770225797250384328289657189523097341781419367319451064589346194444567256217817063886472248195174689767861436180164786681272858259930107808748319215282354943041649578978056298981273659593683755745371597099442731585016291652601833506788235208054471885779173464119861092240146223226950424222848812386800395447435586373211189311997702811399399767799193214146724818705768265547037648089894551044012017660191398889969126933686366487741349836873463098662260723754118343147874073347257276385502545316008460128766736468451635979211814739449326038279449242654351859337925692989169985531099563600174382729801034640156572211615950039195155509717211937611272814108931540080970229064866293340217225422949757511679899558632713698540008210928780125210320029004306794178258834256483497787028436563457012866880258431931311845718077806310489779576270502937059146574217675374756234994215249024946181262985589678085900880115154040213087363733909991502339887221377641883585499812617136000017775382355207260069316595965003802582406326188819685473026009270198910374006218364259321862989630057231781228039288671871950810550688493670294787918621365650491979904134053161133539554105197282643659058041980949356561736686869430615171680609918134465482010799868248417047345160215197300851644431702941260310174822536357498430439748344912701208644614181667473745193406986216631371156060366899715960135461948581924492660092168249183375077331379933358474719267073885061934584275133901608490794251201128691682388050354356238612610812391959138270885476377239457512497903430231056079030989250725419620794282173660592863573781058042559866097103018764657532154397480026266296039755982776892014038136743310212360202368141080593741972980996861279465912695276027828404487636062985750479105038776596952436312448165049442959791284532858440379012372135500080886608494794073697242586253742367281764735698136896926916456944630418281178566449653476651763581104712459556014337528380862890674573764804656015994904834277310807774300288403420687973555154582371095211451571383229940404315764565837700245242811535521070203903050769344289445901404959221758167143140422242248224759708077569246241381305509491239500782516311194469636213436205702735899700996847477931387633431857665275159668113790814769618248942401377113944340945268062344600152349483830527945628727814160362210145422996493854663228511917501129026666675125475811792994555777604121315678248625993020925659336940535206470123315840564588809486113955506753531279893312148147073950360857876389400980337854603711893174683750810672660580537771882618610252137214755983782915538635841750247037657014347702561335127697036690822730833034987712319968360037776026145271818454798941648316606221317493240901547627704453357356173647022075813586466645698674368817973405482779247306520297477616639834526566508386535069486575752001344044010707974966723840464075861202331054743484855087815936325866508272928093948018461306436342398395306646422556059700339561601908448131321029756891273736147233881638296731771041115900333889985714591889734998136540992888003451814818686759470627426047178060741562871290483157063972320331291450334125043186682614262826483897578217669224300962854185046997024285311603994241006864652413149550733845468883143401549090277975025882121817276087220135651655708304836784295213342162036423549143578648011437493629090797161159940469380786737890234465673794397720050127323751386961344256438820969389669025851960458947421708117544076777813848262524139954805478864486431577778780831760082455176012181744244125152628123692533243281610869220318220798495601182811226132442518604549778148298744919416468148360262864407007145245541032908234272716532681143135468580772193920072142866643656964469943363205441130864749001810027229493579677045219774368713989841057613056337443037122484511435960069198208401225861078268232770747835846629853695898478545602280861085503509022992701200442144205728444861325221602706103184529109137842867638463532917113749391220995649103269418545030975167467817249938891452290573683266966191898355595636812510646666979044727918880166781282213920146568519892804295959943803447396239387262967492969726441181705001748088037782201893216427938675750490058163161314969415921246973691633514097786895068448444350262880179936386782199432138194814340058301014041633667408467164506994709805556749248535763802701667032319621072129235229844465782574399038585547505614188628427853647917368542772104717303782934655383341459299854382907947827883118490389513136046180768673637423965538563369937988799402759155058684126329195854416732060077216037699870808331264679385162233676928420885164800136481267152660463930634933242270978608887925638387965060366248563159829483582617206835613414741714132109642776716163959141508473166565970940995296613600881600427251023974096334616244342314811043779159113728100163818589716292360320654202230919063213649807273238570607167081326307838714962485822552968969295450344655657396494767002427478655189289392849125587307024544189767179853722738130437542112061779460150773236952245488764867554573740763753847220969632457282208940361671941442706746211457249490390599171844529052534482339190831551690187473905876577537199353660711412777676904118047015303247549101293217347329638993379155837795882775616275286416351218322834221926679591090304405566906767955896310761317059249704906133358342938362387451720417502394381442829722577151241026657381696002905964920392793883843345463829907013901006660124128749649873952778618226065752342232467351065603347657660286319092601378489456010441874328162493878549732069859809184383893969843686780976336677766901408608349943458488770430441176865445270510611860700460940931283118253434024334146826530899025711892690927211071818477130105299905955806469141462562041842268192555381812579691695212358225283583772863286246999145121534955404836596501365982831243310881153900565794573578533146526947299519623449368076878910479692557103577580946400005621158461798872779798796947038694875827504740144027677041641865154190875604376913450553119437849100123536765222479986465306860159771395575742666468796827079686878473463437358913310298733959744367437305027360713448483145157759703688535621844150150866160276770393699447680738276512799768671694848688359982547105117680409895506607411706981384011506678573765182645038202245988785015006479489486864936381320539753466760355435465721645216557002153336004927620736160076218082073078306715989852470731829363237126357429891282977875517539348233743834100638259937719738984869489105379506330757837903100834909456214142570154675671874658598418847618028886841314761997533618816798413655843571928207561027426305700074257340403616760925035646852801144730894182661114601821518209105879625233426078150432785023340698737406525787558264664684769070560530788441321494372219642681781903924990219653916963862188927252784757664492492672845819071671908237414898578111239482657607562762288033178116954422758951679510384886283426776110942423762083285497321238328095089117216969223875112586673611740747256935001460376124189684574401762681466893108856374744809474672136363562857257808659651881608537712244057545556420993649535115028748124188482839786280133621002586920116309322369350056857937413717054008587180984864152136167138617738854261725309636327664518262100379604441851206920477411056524290842998801853692617419692602475881548796603895066086584154272352360809003432887747017265503136080885239580606276489191387461665876912593856890157941284719144424932873398361351621558195172646835345135512621049722773152931909838234131345085354900598954678549643212033419385376538603631154144067555889629877358372575649619884371024551404358635048389244332870982992838846421501225208831147877432639604052375188881953656045743946943026379421149507954044099902046414039517525520028332273719524711201514669362190724189827200820369422257360120219420397808561202994205772354653224475712767136630435515732177385216908705683570521931859548129135159090126838724387371388347399487992570772736845912857935937301964630711105940339420547779070963033484022776820716102056304100430981989273626165532798322268220620948021560485201150563212288374747052137080484072831830332893194216212488311697030024451614262250131202974843541300254459411174239849306058027165129690909976947907433978420965306951471080538511531625222060840708199706964619819076566151743507379575645668707767133601825413121760571834700055892952739249668382771879151202482876431791458545780417834654198758720448974742323973325476032365909220795218301168731156156748975741465953038383195707096727462174647009129941537948547589523010297042004478250131396638634682981738647678409399537781049553534825356240623394403118403016617328066728100656449110854938205830425066259085017958120227697343375499645706906009905453861719064443795947677214380990302306614108953794717865676931687736994266509733929853070229779161350040281254224858617052880468402522433315735123498553391807446529562020445947513895712122502781743829279940706719851236413352423118297870245676438681868254821433707540403055395159948840706329195048436067138353794651863618257162317900986313962977853676030682085325722875097806952161618173488923803459907700945865574682407551938912589070906386176567293218973708089582764930339904811634960534106395003108795089118387036688882013999953101089758886239420545128296733990711451578233981252248368536758031079533459944248174499362126033468596355728122556402745611977984632662119946116517750853226949835183495532963194329090694634806538616509029435452564124864227436955420068115247777898538294195196919824920667145179029070767089778687484375376886153676580054124844990789971867239187568625225752685511104317708573603697547928124367778793457549353280765457688810107902008789269154444355339321265389216028222900243718224759640427736558593814390038242551357660278113634107834934392568939474639201833316661673241810245239623544837420387881801689190272659947044763264252095643932866502497259872154915678426435676247601481683664493715906953832899734715631331636566158155964559730470785585632781796396395321445613197301196202652768559370265085628780536143081570525911698306829204366790272115581471170393380385294299613437996245161556840256598759219470163369250097494940946681902046979689492864466994732902008736089711094250550912600613786443819212938395435278055167542445893473050537162201663619546166126606818820174993478953027775093271195026634714491793519714756955974954303334000684279156832028936387812681628243689007555198277088729652313576496544264967378413703395519623491142062719806157004106615616924561872775819361857238349569849792039879620033165961887298593331068202684828366493539229530128588546655027003823480606291272733548528437551637733883865677725818762806078914402379157765014755204266025294498570112216514484418381169048676012579123870414330069162017378323262819580325706889253431056434153603376674120258150795308358157049975068949455124926017574544677152911933983522838413569591252734090632045530567101811223791039453369373608330236675947927822157466426992159583412045573357136824137861753241635358296025508740508761673562133334829242906560557191692100018101149716529383801500237433042785440493036829939750652003773372024644265925311163877220361603310068471030809840012952658590521308434539557780697969930766251410069377088910177196458334069754543838436485566152895887441272062777839842768715275255048389692384103379807733786774916169441104405131023143346964649617099720919228256235165922927712623494111464584346556154695143334239630999646566941876551091248210167297482130853690263870680158253658283349977254893367479696149687087599485825397906613170888797448246647921930699777800789510000412523405254273800272400110966826814164799202643930224539399678165685321013581572348103573053788773062273117802073447017742067253279840006669469817868039220654880777509991066350018661870131113803444084593609324381465716806854649321538242128207360454483846837287047961840616569297513905368266027456427052429775291166024463219722603814627455544751320300075382853607334038102811771578704315825426682434752491586561904507304519900168879019273528906996054313966763274725643136839204987671664351833767009191622992399766593376380684482251990409523451012398302109690337327294483732859571538700094493151232975087068636040305338542010245307745325575464717983837445821117230783630961076023152621331986830027383242418251185143871098375214668868515372546820319859373060055273438246749270456830062006989644582460580099744667410842769129523330235996468816309630577726547524550280850989947857812317914134377789720259178091586284042935918862996150091005578309979343797111965642333602384954089070819807700053442572711743429072060871616221541737853403372479602914113755826304622939539701373988874715554523255233995809434389119646738349037263733515132064841652294442179611046303938580397032923663693561992333394884169837348197629003471486762033831229871161048429121705294372031732670981330063739547550551756773948155578374352635160372043187643798154561891171035722088541491637492707839737306914964475827472103953247211227933768693880066379181070100631031247971341322927598538023538979096475024408448623522048240323551865124527749746392446286295736208456276745892938303872782391170558564504821056423550943779962283953258925814745190794796208194331586189897867894510003050493729030236241225433432584112266344329280350466042732573569704865563551890945125591349412857862087309998028485731466106753530669388968962491407215509856890987523837381567478677126595528065407818456115008727965003500871403638405027766532459914667605767474866576481221318908286923390283885007820997609327598746389332564182152686733859670649833643373091334350460317233251712892579949045936695222988449148733101921635880503196445818240749605616600616202906309968727904815124670946800718822106980079227752111728518198510106361154384258846356905754002513910679618777639194577835446495313313940505604199302022681828113453140580805952702088040980177619097743528398651319830989930913001205796992689035641391282692162342134943990502450002425250800098147757057158368167610024996580074552689751159019651568680938522051662763272260405041613264662078380013207491239975737965270866914403435140335681607820993866984938376277515214111877799887194462467698829442701220748042287835933296050304187038383393023381286690020323812765075181082009724648055998889002176603068353607744263760537439561788411530325136935443309785071441674619663885956078712935923191154439723519181915219938576223171084530917154812105166567406975998995732371335753806059121475892906720445353234357367165500065775214884077076301160164368773581889617244137322666847244565960086423417241433775346608702808262180303163128185281460339056652205845022339707134643964140332062612871868955121933640525059368949728390686773841965162827296716414758289521725463361684015659995834637979752648602155722292073552858328496539954591203655014603315365214545788964072123882516785771577270873511477763968504516164554690547426006619668571502361671497504202383679009676957861089173305410650881073815944465066866996594421570426142613054449514096526243999657349080346889457710129667502222322962247480446165372437749193418486454821050859209472102108986440656287722717341550871290179847486513438421806289337490603859746388240732770334553666469026316948944867745161783301260595024423404156770390610932187801705650448025347158510899934492857061257008730157441547815921835094645627937631768695668729069674717203402099576132955476948995463762789722182315450653917601203431400325711896803738511918636479310112224864717045687871006359387205483679510139182010323476225895713859939177345906873114616036942398528356414275975069747537599849632251705072818971304145971135006843558282765154896394792820985971968302248290359629671043018146364890160048636704998411619998143212285940126462795658074805550532381860745905558231086733451510847483232397779165541731920099076306541712615555287868569997957032630239980163249672322958138692662419983217202427271800951521685940969121765112507290499907030987916979948099992195791040349264808201455948500186252138016647372183098760753717509771623709236918480132546125754570202364225216216238681440717861613931226001444426427500283951200379518495102004516022212958323471759450357696876874155671201075583243342510011801814949589999190533137280074653301849139840116621312795367717627507507564749800297354125421959037759183803298986813917236100554909495907755138956685145206136661543512100811492781154812758804679614807600544666920271004102987779556222066883240785008797673636721597199174230181116256945561878870161420930714741506946292188052190516995884415001729937880142844303152679519868677826505465791433934857183721185482395787503774128831918467285471797889534962788581251162300290611445505386464264756368775320232201192844984722165563139544621240654519199903843548465841308480738069848270464836734935131307740276199327627376179778429655124081254346042313880227533746225880698951131439474145960312827431455126070906485904927510812250312247863252463551165842137607077318949830836864712612940977054378288080603003762127485201725715605848545183629935519872255303094424081863336740793837108069350880140459018566219780227235741159970892638486348631700555492728207310172215266920994220764855960300348278722050014857899930943055288272672672305642916176095568897718937792468609643102313605865016652534851727520272948780381866042007461053817832004221474411472289055472465873577392062113657770392445194532155085937810857211035789201415698439289182805034772382181266147841396252601517450715645881883081087658113103996809644183708002879527908533316300939811264842997246119031542349106079411138498841365867680220595241606185795084818402811385739380532789380124555665056155462453043166932754508363578438407982518719232101827428169013133031811704264839766038194561598725477926082635177005665420495164314740993610136297699310092579084026226253299290671565019327268041472016817924051591875798145223800554518225908075157493907725114738439452556927511835070526265569477646656709432327280457062676601601537874578479927093176149765587950325915328932647186971622691456253547735530300868408908087650501462467519247876868752697607073056160005367789451499145556439851810010873694478384856516283165104894683644608365406595137119598293375214882236707830209486730761503848195626523814766072252786387182686998931528637284048491652175241414802378626647919657140655760858387933235933145819640741546245345856056377057270946837300015021182313907779479867804745558594440545329957932666958934252437280525208884937361334653075035976540354188864465946680141095167336645210221247103182558850733563489091616634052762162553460263495070580550592486335066622360405658571966105071576093815238424903554655984942503996477668415419555254202287301357750824237740489548773629480901225583092678948788174702473120873402340302858622086487651724802195393863167365103970722860138060393069198023491030667513010985280935898281629683710248261699578874222189893912757894399514861046974913061734797007079923945778479611958665900984551205284229624649771352493010295342531226646674714939587604129214579042348453947251787295589015799936878959749953493749375494778409509714464278995238383000713352336644827858070332994735020570343612804534028238741174754527268388233410049544734776111529253162109645171083894257077383786593938463165961449745182836869640092158144250277134504002931922603076693777837255730178413118328643114106198445804552754460076772004098425303605340813636179376837918731587346257182828342141824461798624579933821568098594673252497087171958523263938705708680877740046565266490288371218985788287503527137427125368073814640019877308487225879751378353415048550306108241335846148080806573190017650577021309993022450827362686121204700432674485448223454825379730770796508634076420409636605063428966239361705578291529330344655178556931658935663296383792906609865822483091445001875602273421438229846060996860512792676065002110161532236608933464391928685617806060336037462558829175745586631646934945813815391395557536555837988681999174590177496150085274109793386698012297016865761900172715021128316881754089410249685866693186280666376008810189047367333463208333075989159519904439395701875399602844826514485320772384837873756979044774639319546320394583973989453520287281024906042496690834302744056073201043899815610099264776368870018457035577268154466974810435960076590980722782530996111436300686740271717726693178930227208337431435834893866766292159833267212660267590558059019699065157591489616093547924795703501844128481870122113138758059024544251621049644405369883946192493041360734864741057207559051724916394935468434931618575529056154472677416495949424657942190136623695243598172583957076000132227771254992119869169460895886749601953358949306604031102171445496812898665232290007698678918896023006399193636937538464986205451223770022529723117306402514294471256686725327231134060032128859887625005724690927081949087318747055596983984475701774116759070222439672867101960164635734800168806620885883072170638441333884573318493071297672343597417923336402935507532614275190332845208663534220043162900646880150557507983664720523562239806910262482630116466245004331871692453981852558727549782534549667613991969475334999489880933059565387816638343525282062495129819468519787568750050779257074465447101524089842600181847029557813502219059829108375670274781879301754834944358556955962278219084834168453149844755749840109659766360963335641094104330534559616547272755983569491411832287328888208711537529314341237131839739478074399760286223623067558905763578533116843405303860003398966379749315765796336287027837125925772342524505819510149017040667860343422608444608942558447081523742361859474114334287910306476597858355756051374705429451448954194013791188628832856251166360840363541326994637761952770401433917852282916106762968506127564845286076024274794329149149058533119280462238246219904704731786869681714730221568342569784813274625932070962787627118030941128388952947710736172015943779894296840049584789054772311077491646253669650363714688945311851737040466524818596246448498158070349241336310391970862677089923664071144269223494142311304673093553343828878925879116584984448117180615463848467155806121882325512139882905529257448615849665845911276938667703694682769147586183316022740536905493381087310797934920973618047240905871524905222210476421604871072503378066210454295724958422142346675284700791589547631379904289358824916362056342163419637676429164051354890953346559756173596646425346748995536679019795027387220647796670072540914231596559993688173507609517119551665144234354042178628149298541404894940787125472759926478995037230134993840254688984736463233834011347035759047952082294782739991109997692033612684112130708138591472461709990258874302216134991339431370354948578209554734178406747365970646061885675599852975401045432872760123990063803277900003652371315439413043485795531330145354775879690920669109667734974267377698350189154815345950761780609037386960315982592761927503746645128647449312606038102446529330519120992027913142992997920452974058691245346458355890645916902359009178605101729152698810583900810931870992175948696237385121404662306525908842345527101534246957401881746523471402577892900415803599547175585642347924139803403379217921419846528188807312815586140044810075693704331658975124602703663143274896247558301579139478672911592312853549569511528171210345855337921581123065644246722390641893735589937798055678451379047190063318403006325463257531056310630471933780097907515021271704392788965624894748342940682972467242835982277417386056773643499633903287749150958715379005845741639243318206829928029254334183191100018956544098446230678367110368176104411621868420089337839817630852893390945980899735592563244676194887069401524687147403501427863358185111049363851840042276870027312915302241773162030081581105593051533073778100576153743630314675826922219314892441388457805360680941581277751556854402400284029552496894139830500575960080215975129358866282787859262383338462204545115815499248085869674936162077096126494173448140931896499479674939833771021970441267902518955910669814690148292775274531070009848175702867827540688034959132227397668214404161951299269048470271084439821346316160525828130338493082537613266934972396751769518114124110228885918385028622367364637316407098307198083621849798030304555279052489880011064178777248663720034294997110192270045311759996330462841424256684705765097712740736842364738626955661670465312844103526050196635699797546433674059793286757094784498539638475766964620738227201587387063259649457586114247490794338574695089047838953822648617951331019337550692079883226553876151359314016199562975547472302491775924888934849164378791928431617528247155738330392642986726143521371727431376004263760388113626455618408849944190394609630694396579580454550479715099047141690703132052159864519732354298864270352884438602430727277470406007160653159476232790920139803456203345202829590454628840498775247966435802706133867883555988874963654116357938445036043777645259986111779550771537933796197065438801363751594997402018236192090101390034551732870096962354194600921834946669317259939787446654784518716297270318927243498726635274530271926301907047860042756050229313531124594697996401949350220486962324528524168184553410953524285331411175054983291721024885015874353888443592391544230751641105931860943057787144031736836023551629527593542749742591576041813758481434896698474813308819245838412228662845495516311905085817751736614727853706618647343245696152802355925500818190839885174575718134721046352523397849021811692063879688698737736563973054884566565067955363124836147024670760595433799986584785486493396778289932556947990825099801716690450009943441328137281124358468466822124813321745978511123944722979689564066640806952064317340654809952747311271737755464411734853406265600617327818982775430992244011933147372574101606115036992680287132284626364528593311764812744416407063343565381762101810625765588872465636638782132126902097091378994846039518499365997536963660224058624448235773941530677842259886291849940906763429048297840932427692348984768088075574922237148291417823899361824213318600394025603057471865049128613211641584675914196039491834622742355625152253157214903212929642300016602881393033814397812174588735234021319923735359756710585785638568477535700862542273609803248453649496033156420124682206349261389568390714468716013888375387541713061417899999597482316375211803736558123460961989830442869482286592493733344965562368019560331082881553134481642013689547244360948894847658147718303837949244309232866009430065191547403129425171199345686683595557505570801724917164146822575137293662241731400936888363866078725708970959519598029265389771270318553192638259886660363013816278140208299121372582333665484203144090829327763582535370252191973525804006889264058468974556144575050674593690379632595168360487814288500006639566854979399994181148769138294262307961828524361718371466843428115330362234518208302180867268050324400903203340518105653070727912143763689066992904717013604344501054611783081927609181113062143854042901088618614734580965550437612047279877886447359415570803710395922531557579282059940854990237002268121271752501600081319428586500158848993422122753874335100764420824532294380503237472356530595892575740370440519588281056944840581474446833811614295521863134048321757842010140584855007004068676928739023219418025338658148438005359840320982959716355258293750443736747351053781771890174008300057691004681817576801492770199969399724443139602829285752659899664465180707000871707017529241738480572628983043976555555551554784934676441450922149636400292618429698082805655341872425261630334669872524531266173628553080219318937039109842008566447295505396977352915155274956520402243390503629710521796921779589503027031026640324794641814021222091332623823684417250635415357994105929774519276400089920225346799762658857172335930309938695191799568265582460606412405470653827194460809800730446775250316053430713349495879622605895274615300030470917213105036492470312445851885822998821163341250465759907471481820340466076073425302928891519872999314148757921651000941152789946240774006890347257527590073856594681844678210397344695165268706644070906615122730060745801282665288019044020933210515420970884958148858338641958840182479962784930611104998539095657595818218773393336366622280078078788075856625534803724407299172749467268273139613178174927267147227742088537905322534314043855930351877758824518536413388026735271057981834143453610836959569701869330264927124141457049125428190570405957757510015946190224281645659074462354159320983424077674330389345954674755513121971154241757285127963800997665314691116461119568035036939864867767171210443848813794368331153711322528202409760696885020679685175768938287163820832648015030197402414831488536058265189753959797948693707292596351610262683781425963113290526331662482748545044597859154062855094214163977949861705991952125260907694243944188049563222980269111441108886814370165679363317049952144631379555859685197438625550516221159613018696975746618944997287177882404701693833079663419002162733599035763918425232810100864273768802229951682590636630988179748409543833953050733375868979856170509263170676753205606937425692727372723782543181747263624514922436474654364396326663413725778276124841323942215217150250561275279338016326630632970951940126490065882994462159889987704471842562718127526049515933076640374962139215258295887550851884533795087257038701809099194078939201761296554900141239710359272180302541603383104004849458029907002747398192286587398090617975372838595852975330798338443350935981224460283816137258458773908639972953379889914563284137112728335189268203303669768756985176854061101477209101253370090088568187882983977048234608864771576115250488556498697279831858650292677919372215837678386258918196050099059376695082400709580600463183259307784064584451885298742593625198578925479990031201480055284070510032883603503743380067863158632700974185057167214706871947048943436161321715292555333605987719470871296826876423561187832098300813308175439937822004940503513171034636446086230744490631556151254524572081192339547651704311097878197469069537032391224423021245984171358985309106641792831340408597932313224056884031120488871774748132070069496529296184851650737164043734667083143234613645421817071036923456556117423254595482830653447206299920166261428876853864857675547202172278820006722644430512455281040216794320469544006200068677651545805538863138602636361360191804595729259445970987768364811237869825329269212271058920604742849961631498993597016196560385510329043216065767724606995605199425506155410440547653572460114452929236608889546924747159792527091143129132968036398503278786869314723728867470592985785467413946913670558359141467121352035104780408957730645964467390759517622933098366367349643809291838278155300378090252776594200938205833923650173797274422726834070536852492040334281217999906462973073307977806008149548029388449961078588170586780943240595773502538716309808637464587175016920065171121989316620103583744314439025729355374379755888924594527692463921196669902749942824687744903035942496913490044032729770715545094457764487296914007485808705802516289427258338426508352086605424900250901809964323510736544818123988036902022956911707401552255004072630214451188167010200978832608602610064900494401688402532410455494556576259356820653120684009115550903920665791442552451365828583380630062060303245613751914535430788793727098606926863118647551970571663319000297593693413825048401243194338665069625526141299135517894498430719057302007907057614385320493876736212770141905609819111081756603871823136943878665544419868014769264325640400724653471553397328885433735069169434421115284540333671920614492178497159635756959581420622669200083302592772749844966790143694509716843685721777419447779616958856879613554658120571266274777614076686208367397890497713578832497690676435638379123134141961988792388819012275115595196577039733894109894495032121782325408002841870902635722124139193990417198652175515964507633909677270833111907425803612217719588978515718724237406021194170415865477943427623366999769101338681878048523769666387437689741511439839729301415950182946272699325159862532806285142047657258286666586965683081018276462449895401221472599225631617368320671903776593741058265075527972706087708046215776514688734728330142846807277822856595386270467329505899478517813936017748547712027649678559905318368860336428080646819080536937707933233375386032377435992147854408624912880996772582102474777508022641853010957197264696860109919234971143962518713289590091753711513322167431336424407967090135615206705358213806732042575075078771733513518031237765321934367830205499491103102725337693015395347517286160366608716609336158475038542709588796996670138910778702597767284613533449734821091200937232980184268631496449095198286926005538571341305963875569212121143133464556817827321190173283136057519960126143431994679901015312561120604224219952267147321745220238374936416422573532120290477430124330831966225252054909824885623276100387981087430827727482165512147885002042598943377295591049004262501945752665990210261103877644960852507900963326217059474501285875628295295554895211339048245578416550915911858338611197772785543091664910575787107142361255633505848136287993282341478855531760889600924682270393517110578546234357796749367047602472840719734893524248750688037744156387344474098961357024873803434948396466041168859596557757876560390960519314129411410898618135157490338273832531733888323421306864150349716294505549368385728587747504300271674314404867152454143551464245916887583659255879523711904239914044183807871987484988925470686853670004157975182260486816192225090660721147761191140269458509253614384973309907993087803387170170514804451727004957109467551055962853674666804559994208259569698701113103082804504670989032544360532667663175416069807267266246039996933108598979918100980172221268267560964735303267906743842658229896520654320260732878124786805267677008185154072369195234336568900908561655652622157468434055963262803121495302522165084444433313715530610127518921576272004996673562074680280571907238471094296948856996302293911656992273803397258886616727128786109084784975299362499785509983313158067133576920859947005600003188558896064756372376171209063037451418128897427858357129647397909814363804484028037970011940256849763958854366307019861619035084695104952821796649348145722990531572705879541713026974856012527022610331715620685111883089199126686118008310487014124500258153646031209676189232220907894230479255133232555379042735515912167668890521593847686220090205639558491771540755895413440413955413505581066284748457984994157412965271454389756466604264994619358917278023408173592950274849742579192066015035258970046967155410716695924907030528016385694062407458791710022274932879486777208612147333260659509105429895888656339208149204216751713795124562130201810115463282586300415367231988871133943708939421578517765651639898223264390137765242185475099528112288472808221648394811349260795462782473779661539959030157370915853036892076608283141890773342130007238942997229220430650115829012406398952835577520509221779942007662036274281506767016747823263558994447241818150913453539093722630051864397252789635055107176950781415705476138996077234344569512276202301969107799967059792997472671142789749182433732478864457488709252742601574587820174963779982805199846572128095006023260215445567192566498520008886018716113025825817101091686318266426467803194563772080081337989134879012970233586248156858384658848741404721369832467160486640178522698735973449617465256945055558554101028750595557623559727419500961430442691706011940463714104870984526780095100705579638245903062494893938997087774644098692643274780764864093482864450608405627295216256299787428153885054014258076925294232644047676580215722245037749739072595822956363688387052611097775274664865080460945316663679772751904541949658001600829995419137991119874885020964067723631430320016749363207069878446129266619954744866491955370040583647690564804799142666020281987968883941804031221094818470811953487162184245921300210877120869822400944167395991352372874258787229496040192946421659692527163944173158720650774645402889170186502726363348316371914837579226267035600692964562132974658428636261779789127004019244413910535818065595169137821940333345362792364362688375765552795309253993344228015860481260655831182590490625532557990952607336979087697347744746071993904253146762120750533036550081588254146030590479457759804870524767657145782752618274631035456387397327689508870012583050931415046286467360903569319229291101623876154118846454824324031952068890150839144455648090044388720112073748816815858674919337578719451239913277099399299459440781095333765345608995092234158869443877507980471535369131022408243756644640523477284781669671827934756210901062850410539011850762039897440850617739085566587555457181427442343689052524520132339966645673611402534510363690953319808376408196487851174069043619349877362338036114322802723781788230545048335319764315366636485356511165765548357376414016863912748348141573986623512648977848119355657485880273984105637323305278767985792717606838907249068970285048406821657999420513170068841933313201276900684590662851271263722345021245208018576219350188078270929022663004302990129452828121225819193970402651134346779809430727577762179758481812136421484407694995224995740830822124682649375678881949164678221060314143195937994073431156655244903325012379346019465682653986431604037981389512298727662536716421693112860236235945307101105818245648568371401733939134580025681843732679399264880945600931965831544668286288948719577409450107870097200363270259787690570145185367295100583184686187662148041364038415559080755303666921260688728991463827245491946748071485071437907026405439178798045088349059803786155698440576469430142149975760825002704389190855342265040362463952085048795743072291737331017443272481194808987902457813529884323306318285314060819604935941942178067402011642236905915451536387214830679609685237896225076327806482716660039112955666270578600162484976598387924909421851429272235733041893471462772418844436101685510605508010614286613700761952140069013625557054339302760519260642351996303706425838013926793579414230627223839503785538156697272581193797199017494294347938103692933397457658846198274351942225268947341392511293224575942754547978627026540434916890986613818373394390016018258742255668062744294944108548175930383287229233405668692380373075886628037479986737401386994012994016831557170156428654307279786766686411196242535631268501308520963989812641422552923433005752867569710129243651658858058575275527817801346495122579819416949526720118177321654322086992748778602369941830715692091584125063381141265687985382449566943908641079474901199137445065478505828189171275347431978806392360990843548779663713058527984394122698696216511991812594060582215071378272779664399295116564376498308927480012839226032129327565433788511585650986927194332848653221205817076820142000287035097242567218435567215314355370672784559487388795241629001099882286518716795344577471085910689410746392445578751191512971581636141210852965769186298566387618665349773481804163563214390957496873330180146598832991046472875418262034187521777323234073841517314886404132546474423403150218623131791861697909692623486157061339766984116888224266837084510035024647446171770366670700551742807878111095404627093472253609377315778876701610560250472915594788418441574170000197776056297823682581964366323077269642334296571035866202217683939915426860981456865370238247632022343265680889547808280845940649616663538990914205411096157432426061687816780328585764214788446857618618779246595539097396283425477032533437597327964217772168108231038675864473184503542673429039881245891631417052032044073150071914459570249129421619153146172098517725960403016669140650224631050382359896515331286206087600362927867741655017890895133310835786594945945973774751850633880617672336755890107904239425219090916794679524871701744856797114348155541873113598850588482808934800642262100231655266935776174626710844886103473498198578007578449927819963303285036061941540996048978222041886634985278791062544075376386431937370137269539927635557838833074959406099733889110515992740513182369608840909389001929336988979778535622954144630600603213997750425336670566706297912135551698721417938097098632336629950210539262480722965421489339919110166881211495055770140030066702297209316387821675566089516970201670551619857541301746836798035927813992982811545842456937578089799772520486498359374183715117262003173905326687790692968940969816928676217094651911547233301239170470165530070114610730070437934838834848486408916082159321996750582489321608548211904397529803802964115265554293294566973190797266408226873839873161147455418301775607619478107794080877021136830706711201771815173068870590536419643790041408356873949887789386189901410970611813883427385493815837315972086451902385539846845592254309874163869234467759042623595858921447659839930604261387213473640130344303005817749521947791003325763301353947156126787041764500389414745060074101491303232827008773742326040814583462757528826454870764387626158268633819883306683109387255826601527010437091779473453921248312052817588383206845449455857246429388914544817650527370975602041644813158542098372165061252764809300786964752176074758391508178368272867039232245700400636563413663577964047919710624234117148771558714379112803218831614771985779956918595372387156518163652561364023247573069169991197165956923705914381968668238904273629100242857832080257861889811240266095726123573520658183890304767294402257364465689973140556391318037284734271626406251189420458154377218634969767297753994744674911203278039322988149906534557534469735595142636997422587014670026601611105115901094204836817183800573710431395451995301153777060273651681150662115665431996580887597532245770495079697926649091937358816207018508737008063559409427250711810000814286339283126774009090604607358920088852910760530683108576662091742021124518778487917046597655683297695596887751074088344527062072627432160842973506611294780575066393773665743027491989107158590320971320409146234756967418618443697757426347243897231532816993811232080962768000529202970628091019577330118964661861747028304836392195578430638894564142720743061409804345658748877320068333429524944965757781952801377347209297245057030578421802422665442009051905660711267168707623316766937406712021621613950164478588007288148550016173367938233157342723905970974565214802830174649861071815347347216473336854340277811454560713579582964271794820676803928990449066210313675257107026543888044086425635131671522533414027999001448312037324503001165629424609717788318649312527099564281589106090596144558677807363325812152306974048892483674636801631923180332179783417220255430034051930526018308963689680703710444598656819201223909538383624916438519898289427089658451193757900696179767215709906123141698294377208755775742192765126221009064378496868874578293132667937512507471487477872852585965426202999118109422985859554955821790451719369450490082162466792779305879983328509637201199299275325089808175331132632461924789365966983889508652734044641295065783622314611547412196228552776669915396160602237668156617926957993539788561419801187365759774879821482241904814765194473294312650022659973314227342827873017946795883042732783674230340019152814830763989149201565031876000939132740559012849985810391038467634320632965461350967899565095032490061157250429695082940677568059595656961116329971617091106262172495536688689896360223100688750729279284555522855591774892135157149981138022709149728956909219660215711070217874039600549289087367932179705345538662771210024543759843397632945363391755466944711960203051176547323493541753933325587297386079102512295831095048705497348066332654774277455258855659059877114058228283985124690176247433375923766053194873061256429000551401647754733577746562265796285010157762301338414268233092012934820059218099661922193913329881230243677157334472490549720255273134883929429159274704608593541529288012440736192848340306867953496652193859313894279366547890369959018057173245620426174807084528894216532046394944995629497697834311530992908080840432784384544706747681188268224388885431684375191086164986367182268054176659879528384066409553416066200135244487437070053279086380846092269546982093056548445617323613074299546234602944731644483588755822559386582531484835316904559257268158361933438724665332009859661789040065895146072648677576890760105069161934613121808367772954046440108311973738242571787181446470552105392196231421912333922777651569713015324536123926087012595147990932249416662207847927056780131874436671255829927054416262427954463264157352341399471740720534175995484117744492584262051669905057804694100276396501577750945082241125668275250833372922157749061624177099879065714671004654694574963507264828471951846626301612070718717622809748009263331702896439025226675872813733683356527880891485790205230273154090224480054654523306969923818472890346496584759436940558399249961599551282936278563741245236605658929303921730777230054505899691042111457369975959197454537064092803527349675826978832500878190065841659460525584758097040882736816399014040615499482578944382522158340966952248833822931064639137666903694904507821704017001824675430085134224758806227203758440582025973747400830192870316150876939692846280243629084936836831325673206003294175166981485485828956483155633793954550339109958853950031225783508743816128615244294655447338758273275841669121757745685823867069841349317204719620874867042122079596520169112952435583494836065415990860240486105539202414258771385100647369610074338848737361949550735816028225201078565503543781069047215474755495863889949893196725071910332214595827943017041891203318687746357199023155059245931305597147323013165610562874300334033171048152121498948572115997080676060653396789127772170654705603029050808529636283267037568696657141061571536901714580402309533918866084567862936835113633900859381928609212501272649280935400520439091777814036259157626561980685997854693426342376299007080648863588662634078533004189518383324020616428783709580682394878056949020765992106087749352705877145346994470077853678654073602405571828547190908699810158039078745757230098892450912068493971863392865507188937257480415815403608714946512080867507547721174629918808103749211852902338747776349060461687000752154179662271421729243454851962003900747354352964877884686845625414628388583973621958404178763175216668725995492584390177054005298368178760657422172135944207896303106016364496219647054963083964686027318902242687331004795577508738380926595633572181081479639207255512327579701004125320397346244172544764988914078205131147301883986879549360675028959224699831184655102684543388039132881082749364425146427684465393150800436876398369478419744451108764422201633868130928272126690284391561610684675479283528527698401723097405375624214028395521414741887732098039539916550172402268389995719555006297632645135623498500857523760039177016980995721629110143917466910176822309130340907834546668766435241446164429791804556568018438374894817617891639539358936073056062505182363567240688652806325246952730837434007333578173780711956999908353171753116748217541902254807259368574661471700100152772500753279137684552002376932414578485503523047512257435877618848268482636031756775559132233901032549015771914582450848237920699189313382595139507322958996527433435616987112860592711417501237018475710402620268468124720376296964182155231320961454692211351534487258316603898393265350897973201736032455574001289250531112526002956626268160762644898177124046668097795302754074528880232461776342474379842496438393642590049951514716343407681466297679743681243833559969864447836251039657485895044080446033207857555502682295534727065230804123943264697106036968079272934201693829584439715868677317839567130372419513611279955904295009561728707616397968502390642103573990352942087439662974819853775855416559534501884436160360018016425047019350774062931430304163835798776519492827976728604087644780588027352014666252189840620173759885417266932067324485556481765803743903385721494605453332698245369164704855020067579606581058503826339326292476185550300897552501686109196368857173297099352153089860006125062263885417534061056681691453446772090542657051564256602080853073354736966303944725355117429215848166419852986467403421114718045141060983956810837270979734204150536586226807692263869873363066446262426397476881347305681865343130937388988407204337418467462491147792081475027054179154093181033260487874060591195165257844051790828479549547476020534519587845459860389999309093616265136216357654456355196238837938326519646569524901173683628052322490558158499315792323539542894344782339794731577904128586188860306270966514409382635323304899396268092566807363498497854674944610722742718461383203306115428252140827989538478126956917035376083417054217672335983614780534721166965971386984511249579433665445993364755102861478603271352122322836231454044541658976634775181136098157915149477631648800072171088021299379327157716479964840787819003419890012923527400614522474657089174676126968851684552825774026366526327838138840344126353539034253775205959084472738658868025653970804828163785269406995223606496315186104338623683098835063154530321940727219727888176375344400755793936368196220865105002142796159929303077524102841353557796816809936346450259016177915792048674842272129880976600389452623195496200708380688684934040587096435586461664631557344400191232154789600482914635241369100673441467909078206621407279044525134173868849170541956433995586184164746208962238831360246654938737323216895394609570244665294277567889578355762904210994741994195820759485276327981399283816241928071437314225149215826076720425187229808032063114607734847067252440387889554878566635419422883893775957786478326688423129362228863713435461326094928482297854903792090048600746158538876819418773437743224901094993815449111688429752181355142426741698656894343882054504451082416625534610414962808296091310062508867274210266905241088013236809114184151399305710086591431348429185905481749985538087750601318346421582396530650519544641203720789672251128015966980625987694012948543143879069343615663525392175522843560588481909322416296588495540640949952220807734343952514995779553980712686636921373715352166017808159631468300022534057187403456851880509307961501518377787999691939676462381596445521463415770353482829067205311376110651692060158855877084299075022553436936090203123178276983950211970620471541641272618702362260024036502301396993164041881645918796881155084968219021969791021128768567361394459912902164017212788015548713344300977613494134155097520668714623678920982137413880241160725994786363938719477497860462609425210890414289142496111590026266056233140373003919857825563097357728537509132843851189389646554605976778527292544109385188630918890241825370507920541950221361773486211358690679318726706453333499136752362773268429607170029780313800205395463904715241049729236971379010668742412665630126173002158709940077610605308412896473606185029899829748267496366742759640737598875888368392494318171878041519526865271029266189397585369237519791894124185608095733188818631347011104381932983120726939087171346105980319165808313991971967517592207266308032065438844847537013092299962086981247809127961837223188339473417821272030837083390843013367812626281354586478404015689960860550445602010676600975826062745806775016922339406217718977401165635644855603002526522780003443775294186519479977163896305016067928610824158298622550177081562527099921742985567649799501866912726202522232678313171133125060167471885222278786498178987051823718733879133553503521234200248431883140941019355941053301659510477516387132597743408811336110340341333028711280246074452152282742761257420048675065792119283123380489668305404666235132763638212036370439794008336406376309241994780120225771908467291511757849011017422226513588380476999036081579088571944715184934105653930233628024806050493452404235079717208717818177029614773355274568542923237430297162977082323532875070843243512344307206458272186821198416477872342663402713910833481002128333068135873430901399280467400152032781087317162861207858193845106025861129605301467132286690682468155952302891054721719793299189374375647219283099769193889885246119952713651301566556918225265968027446350920213487784459172821264336263836849800316907081404745814730640426241259774894745006989901084289880692005593384823424428258107815032963081222202452282668624046104774209236258084033687801264482165017739371505483608790810149990484039906587533578762060514325086092081404370675004545001704440516240201187512735298421099847634497504628054355840445125257109173993610625519875746226133021680688698483440972539560474045746041636776553145800404204010210939325081098780602580793661009947709541308018570296687201971160909760007519692241181908408777858689527663034679013597109570310939156784849173504495238998598261684910261916944552439455518497279394897744742255048866213450900494826987477145373477293447825826904462773619011640688816763710343379753285023539652762865212312557196481176490373533809355320921129820934400261468501399214426291080792552643671906949578883496371941944541696212516875853439659840241790587313662325840210075698289891419698526543497068321556621931061778545030950818645830578310051353753562984001217476167962906038380141156554632021263641412329872393152535702973705719291686715619771086305036125824834544133152380671426341094679920021636586148943831277569763332278887268412657106902741694171847680272712924433914981996621982420171337360235882059252169149651359745657730547871102360807494003942904378087686871428625627273054838097932499410062095353736071175904959518316603823143212033596935263152813121490347149043373652194796869300631903306308964321789415072996332514209844213185200355847272487743924760259330987735135823977547753414203819967084461729330310478432788004400248171428312145298669218710925796701375619472164362296743698347880986244872372308212916986704577205391679520979903272765457571720646092509422115210637944242988103664947822009448925891716868512006118409405679232756216954045992399574974810581112144757427777030202674660626814631041354035523753570913462580734955283706884930801022189910639606813893032695578329213295646364758880634252720729760942434963322345006435563498748484402454135657247665695820461406952849158660572049793906412205957246427715681847587169794561892361784978417054994279094768728389824906689055031201533786915940611075229048610482880088047498828021663972036669351510870115853396876628265221724497319471985607927688392409136528866217581149354325792907805726273013777732920319929395389065665390718866084779821828502792224111249125133069474781342715216577585008308621637519901871915894547806446042988119951703913384326850766393314040578865999193923513021318532667510828016904528151411420449713883667255236849747757078142136752852651352057983249940150559698201379229697533147789253537441728209311820681421058964844494467740251143546209718290016791809001678610269150434561089763305153546981753589247567123338955459151280965919493378067283570583857106859681689998422292169575365771313945384832174087411518226657505968515138234777742958856921111579403826502641149605714439105522928050303402827002843631609881699713856578230959356154863523462621998915806247599429209520545717257978757968026447197605153883917202463790210982871803549645202556575716122969808604788457868114605691004112633310522327844828829710626584009740332028006622183879205276079494714604843228225506468898888219745709261125392554644178781433824635153990979688449016575101259633713564324766276536192489772318263379220144384395693595024131787948222752250737904278805156352046725683126905131286468484536021339786546811349800808563476805401442285364408532564622775821655263322943576949663258429763565164985964708422960523291841310887674534517828295234747309429515029357297333761015138502162494509265777048319366562023134606641604893355816132786675509168204578293593001309233234067135708955199260931079911553789778598187641891597237508965872078031878476719117202102600210043090731789228147807838328683262791416979537206424098616382432106056328729345452633570426061655797296356913838940308438241254614448567351108959091224055323020889200806291946588868609240856760896693801907407399031189343796128153128241852064578839946024689649379903375315029399248375518761536998439795700462186361363704751238902339685081116925355447358965530433049257889356974728040815520680994734552294115407830201454223578111634715071335758742627058165209442175207477284359271677673856166639277985418770090864947849144181499964730655729694174589072673913757130755217432451039695460917131360696851626566477613929144929948732907110389387819876304502130595797803176301742942938751882332558900068092898250192495470493403410387159717968962013044720168271910898136257682184673733690206718131992942540832764015807485666689566802461064692735684244695620399251414878202723833127590388045582621545826026090568341187973645052122475702479046378553608259028649172351074048632322977994445051888759823055615928107231521140867439568137134587783860780909195489602067636046523174555328288926107153762923056237547164574210169515543049453182659762430292451191079227747091927128571256309731134243140100411407635730981083287500906851397304841524169532810824872852045248582601839767649906197432477270777219734507406156647312417911828708383173400459604219985096038873003789083083129918770355250157103222393687897254788530406816565920109125680458739953183392119410720695930240775035916444283566662028445149059299912842257833658468984209212579064351813921095079633870548499202921280337508217302269717061542361881490136804580001291264401578323586423168129553312523033808879694855014315946399342301570945886706299297647222088922455754417130978409104586318695778380153477366871599152932591688816870745155970393807360728878683306432397542990235079750983550141767693261580130793445608602239243277242364200001080858087059134139072548941503309894762305866734179422235284660953484261734966585140243768117352658088010682693203084648912114972471413850610423325586980620112085890893001715278342059854430462888447775254891134678439920636159407836107746769599947023037988921379592555314274596207448170414982437391395317109950047167871934889953997580096770420062624991120266033939893238374529928192584070078085832261944440662803062736933977324669535081802746251787250506105740867929240264152801849748030675870977401334887291450231330451211897736337632577504458848257408511792071203102407859733692330680596193700437602553156444613592608925288039227749166522747378188758789058924816606597129718315510761111014548623814746677808476382077627605387706676992209838013344276113230902898570928886729437686481354190942959376208433776344812875559609575954260331984302949021563638699304437346447261715643455138057552390479478423042982187424043473384818320376603319966757746184106531673558934066062514304898359734661067204019845519663412751133958094159277650415065571887925215671517334168640111338782616073196986147580295586052910317028887420619257928592298239563250324718621736997736525729916409245650507312687169147747082947783554706250990329956197789615470844140614941410208546099805698011508090774657720147985733611174728612310918868510082554883555298132652107761699891472451825045657222384751449304483668913089584196362430272114893452373171684502000677512185209311063920319059916286821109398173561475026128591397221794312056578790429585586300953976197347455419196631687273317573932397902186611147609398986740720818705655666147758526875067588990547974009055664287165683524568114774157086930828078630561386641829835677253512834307539331104050981022858967866916618117246493728329772975175448068242522318125149202572756890254301163128213100711276944798417669214075126647168916133790838300564730235488923293778849075715608143347033264511739797041990858341142451310103342453170841018230237934659469730638514794006612037405467979111377279848267331712013130805000300351613708450234628369757001977354303047216505077037670506054872019068875035469095970323167307272163195616845550820710505286071013580647253183519910719686681000010549358165699011503714437025799518458326839648934258914531893501502507070751423062539162561345368846712045297325459764226641405132881640561865342969221355584539134599665748727540469270896394061449207502312160559698572822472651663365271026725428416226172864526277739189830678513305326223624617184780012983886190476841406250605281000488980891746860616343119871729813104358413934856451801938319719582531395732428341903055325429915223647175942501424032111940468485112347907016099143073839193896169703393727066924027094236907401414850566266829343708425290540076498470095012687020211788597360001875302672153390812154650077537765414805127260062212785082529553477482967416882711558514009190708624229795604881840420742805813557328814350166268607611796108201623664034913687473030753874124528769897089782624655118771339344608715062820328727905203121040947580756370795261746147372007047817241814324355573072171638296048215406701582239467679529328982886155802166521626683827363488711613260807566084751968990771110790560059168039270097248137037448223318889921046018015180790624808079691435724286057778232151171038079311532637825385766487294810293958682137913558079781069835533546903209934967207483792782822814982055368034430165189692515576763299081704301635527680487351827966119819740738230904962228994246102820259840909194249749845148527274841182871253621310782766681070583129543639864911747607350344777399142968465678237892929241391090067493370688952303282803724367208092850699911896490398283858874421790408766421968404452397781708328649651973297203610027048050574249469218912571407438433233634034368127132643621363708058906699594213642920979149791014592264488870052494779910071962719663214247376662600401854708880019016229359990469065523358254498252274215375134122737473234904852309143242772134224761844966237449052331059891794620871141333989352079579936623062119795556908061690108112898160871918666851387991650826186111535869101973117303204556500334550836617077504519327018912143511241325388032169828131179700085052246854457932672100888844067791559536378373702543757689266832345326549951329418352702995679728026840801111369320163960964704550022499857000011625609009399580317524832423544497890855081450531373358914139644967961535155957037581740103149984297260026455236426510789388673626190524696460795233806048348374502168725656798762071301904485998121697044139902222985869585869088411357605941064741281560676326224095852873315855417936652716309001028119241661593513882713714202814962125778907256314096530996068343415802993465620435610878933925745613333161668765140960209468292798880252726815856380054491876193807151468105493914835742572136350234223862886198525910315468495040350685054620691143214329414969793023550551843938436013182758044601223053867623161126464523479965663486701868059160206582254330738028102193363043968688274160472279075124951726195395609841281402801133548746644283172759716807315090699562359189839791257639404957539156030866309164522324103184225174163601369884182179698165630045361202525312209112760809612218411018150357081674422946232993572996403630630913834232033948736171219796756605008448947422551536002550674021161734146641843181453236277245379187464681494638448875491047820885912708458172501918355440648144631147843093237415972346207871298550467225708951394055382253393659074881399278031238468558374825258282219191894179411121502729977744321789567688408011582329847597122982766620171807727978412640935248171803721490639915730423978765008248722612117730698607928981307851511754737129373113875164990370727924442614996116080354894646053604613445514309048418381132748106845125944170396489630292458970109293225731718643986272149668995691364837571287551237245192591877884692985222670367155108349719956472987707686055886399727070977369759695508991981187376411087854979924554102094829250361679001145273756927771407573342341944589050987563064625974076112169715880887816749174164477303381047057144280372565998180955766840137284753925044616011762692370779717150075381586162124461002623909376600913020551765878477837601114908491216425072856900062142189811230188626670750045462972482068626272910315321832121062372170648182082056562621927157127195887383427895460922088976667545029136499407016790426497006044678096499452616231458987506722639880613868722064247333843477538475031459498325016130772799991724848639237368642041187990295753661248205059356358690108189178870523703720917077641708163358252715422940874386533421740075176624729246002292429988023982829508043423491955992551345509572330485085531288805763058584143470220434576577173341940661424007149807744408439341781687228525197448976746408922114375680087706585319658009831645952241428293082234619502514291184074953173214549007303830224102574616432768874969303908130898534310774938553614319106447819381026041619268084714878275724536131928633284874528255066249155691037995824623858508478450085545818179420791178379086179878908180308433977228569540058902013556204607452721556076066672038532339530813650874923390248713870519580444340249025084756939349301068748328029423411020077671333782737928612654239392740381165788140404642511737070409247661327186864070318721018355123441664819357278311064800384711033990021791760055792347094451247232805538635126883573520103631145051007162464014755913695617382968095705722300923910937761644715803323217802084810325657333475654359904306109233924660248575960136833609621371730001971988413010922743079656173142367935436717257336976746194964688286646614371470665040540773356667217623033715146324379798852874554547752164144812430634287147020209344557401238936780392537909422729764952133974738076950677547707371755185206427255833646084135724429211893382801737339598982190891092874188409712858381740665191011563844557765875018859709286717315363881012552007286586346302658096804604888867196054904097514201487327114368110389976396601861482696234109837537530231370130411666196314898629138227502079615144963365449724471686413390907960412413637956786844160736071252959029471569379795748861780253627774949306989487507475411668879697145305303598194358092337671401641296236496858420000755090248982118296567596582543660603350804804430506945229900521289912976249784797073410236779999142278033045418436547141490591187014361060495232411099844376658914795088112519670624405166924612886915868688181308913209446027092428073325916848997169148099782131293442649747111134504973036090518325096365422066306753634998917493198245189289083841170569623983993653569958119266140245990370018198624382004966246993632201271623285470293780834722960796516487236606968100952673912654750047654329820237805299838690915226699362397933197239859000966819520299924706357800890658045938427812160026064628881293826999169585349506674689559738490647630697444043232042713698929433901937438269804079211818098374227817020278858696365885527498717482852656314638033652632874118519522178828880623205459465961387392985290835774036073250446689738047215600326589556706017720022578941226422336201736929068442819853541249011236729799052945226619615821015146471670508636440382180543267641142663616419328635835787521234764452985358583508105321262919500972462882071455391869399983893052598895755016017398792682579075537836641472095628669059594211561536377949090936412080235758231465728749120578315801720157845510296762247689118178890122594928385832641079883668158334726438185833345871425176661628400240782529142905062759831462508869438320901206611597501698786098893503472428531440423848849061230079275730122486240111676760072689827160175286105758367766040086497773162620716026608979891015438632395321792704113516674977239667256049210391138889756227708525896764101805150304808029305103939817219505349116637081097069337010071529141313297781994995870001612772454228351838309306852075672168002498614346238854636140861838862072822064244751476722092231909294815717369967922818213692278905829668743049049263631415636002032075716228675872814819591016626398245686254316401602066944699813256052884670060166997724291751915135335864372661083508584896669062123662736576774668700393879756479169343693597145219242885103593138813671338336757851374019662598494430381440544270640307479108077113378265373039462161758945049908023772534505895487152461756158196764235843162850988127189238172695697696147932411707930086268354799738435839267500003993620461030641619775569361877403818187498489384930316017059205534737011993597344227680306451148521020882609487611433557350397812614247271639607380147975241670824262032653881180665395659217268600452781820606588128682046178395094386456148670685646177632533935612744879460394929681455216186759475909441546165327659036833874996843303466060797928950875279707782060029020719101190506655249808338902641762346241977368356072807023613948542953271245542067832800483587020529375846390726878645895870680086598668709791721645296817538071012196691018675107456368120422513459864018995728141012374283252164629215927919679079411208376664360861972846349739144075321353696813862253211605560706683259172298472544456718735274038293899116868690896846794126055104537151090241586791109209322457637491964744051258022367383123942348587114401071914984778267685837018677368468015272631653717915935154288670038860158583054618281055594727167663388366157396762854000947189201144082547650420091641913467955355252892156262557948739777348349418468154733335109898465962775836055004568282292877232408267161035394926845995934723240038158971716607200757287760031338535103992113092801629883411972623837999040358861018591892136546940212853637631299751401017334476573229326020031117724730753212988375301151504545536770834112333672976853116794655203222510173583397804225063657867272602259931682790693153200388624535965714639576087119943450170831068933953317143991346582846927278736258010367428462603514413923503652856262360622418721992052723191282124095516072188167181517919942362952419607725761935896208254076016683674276064392163861050093272944207744081621245770746494514950766806590573452384530317655347998905774873988157957278329770586647341805915556606783594356179982937373582242151097003409832785416878085649118563546134904841733359465860997262302147301044174757738717647963449603290641466310992878194127340360246142067379418951976155186144626270699506853274065473022873720714411552853876485831017578570908973847864667585210236842685177008533014291901929566800790180129177169725224030351105545899563627112318100496028172753390996912616071231853370295313057205300788510919432613799718071137178301053889834347121803906723603935468419656671287139895794412652492495889984277840410259101996744515771039309547822795927674145172090972273369525798926911365025377374168117731314150721027177944440384027731591264152697497740478597506766069379985710054548372911074508713239557332576167149697151290867412444003108826588393198596660268928326448165027054632260777697563478453508411874512554039541235424346504057203080039083399624462968353441504213186118503998275710217082514459300747967886847040663296203568206218755783410671993192878498246999993230487994527069901092563589223105683051885290269967052147094907270860419776889107648874041471832767087109295911648515536465265152220159125170582379306502041935853546501542765186469218478445139752447475021433004074413009341721310050209116034529084734181654907359558600011328464654372314171841634650624242598679439019814408151130224292044242503437483219724249047056623117856710812184894783142685585415119279403426273826854625169017268155349568508901777246202580528084132649779541639673172209496471568635644636146735737462714008260924692765424468516733862317567083738135014121465635459720911940794777295723866864767429621438924019533298760172265038011670874035538317921920059789607546473257956622005851687135536227974649163419261553967607837367846792784167977875844579569119660501311999332363554291058871242322007348045022508273339831376240744030734279011275343712519978749713622412388912536007428229341915061498293347891436483255178470060501303532032652827128779987483250136194506582225148955667230845635892086386413279134955240550877351553868083825398946152201483487771356148515965407129035529869745400592833025469888863200496009671767429412341240340676881591010322016181968133856842954701093934864698546737469126619473156084680039092429729440980383401761546781770720736408530962551211661898498470531920485898754759664112359749360214130137453194098300314566906475367422390716488823049653025167727058968573256939717499917901569140272150716678009891946931513595909690780327071367881176294663763592464110129518462356994285070121497163612969372120859542887636062339203765981576709687405389824326513755812744405560899183401035939128884547451819833786606105740958552082314252912160826299351962154550691457201096318534203782090658726503476252693981040447695338941462296495996457119668493540633038120556680671974468646185096024721963969055707250864884293561760376211602777356820064665586252705907152412312407999733291443514859804090378193163734589795983491047648632458350361144952500488539257452651572192535089243977727796223824119085939292295805028857679476981631512416531202182525983257512743951670027414542661106458761002382048407086611256818678957293864830613571861640943692733996552977228131305283412291339694024385428751625175824785127946591289165775059069860599688849021840418710760703352679825706345309627909403923963858032391886461103940969922855720376589526024987691982458928832846789483106050471754706028397839884376034045643809584327397693486928582035669664314235840046083305447460050883658612747138463994717498684444540241691007092524503376056065894285127128670099234170947376519392323538987638536058283329680443086872383483173742967205143091785092634265131226200861375169197306155195728576842257428032705492110423932230332824175175348015647854678299366452420944441640609506170391991350257295355897665971196447869282845954805092804492809403469405426643888890171575292153333049915878656052086585936874021474749244631023138681178506395514383585627584562915454136037333543229398420630003730163659237473714882771879945883618319350446285059016814962387072620619175801317468588814817431759710743832136923005245809652907720329944712198628780294552344490692083537862934160320123684143824859130617272898726921054022093588678030520186859232339801872075613480681303555116242394354510062124410590457015739265311200397255735280890465971842416863575856017605190495567035034841519591652773280873519432827354893088945710072450568557766519260599154249477594733537578444006291077427260832248035622381283958283733966882622247850630159899657458703798930338616138158228959928750555998278486222840790152069895212123152947631239748207764894733551099514289045516266699459398404050901913199131887896524636404372286190498817042690707662419812180445862156721461622719054292383760432758207036915170416140153532463559915772794074397155811844948798700221514295145090924290781935539125425310342380667978033665111962138568755492979632176214069172582504881021483739370339637357719401256769717982680586234465378957525051579368606344350479035072512838650641095748147257529301176836057181687887241973180658682358875010757753758932158853102911720997743297942902950296603963970542450667858218977073861078784950609834805931203793735953607643674899829791584297964189295561038211767581709647665971190242308361757496352626563036820159437680005771793914956164296613344074991455868117906314997249412663519152666604847353397466516953593794393641299127885545594540346899843211403725559786922617404050184590119029923207825745325387169162127485713472358640032368388988673873487269243298896678848381019483637493821032505591138293573128100709182660546427958417972672165682094305903961348942316086558249818727811405814070843905539422964690935466268834084092834651243208923795719123178571991522570193280584059862113836160224010839824567029885775965980497374016187328370008077343590000209969248577442518428956585780148444889313512236457915265362138266269179396210395815347410639441157574537306283099976903111242400486319508142012929143190680586410201806756379291283515081796392799123195929560729261108732342252914399918534960539307331367750559687878971379626994182860078368462312479193141356535285555156499559994589035119261245951834752264185948562799179377716456189915034359696672406311387352632145464804336214616207288976910268260368365102793365538937214979059111941953640584834945839838836244176244740685875761459672463392515866330833936208080185486742064884104833457757987907012429416923269715056135131815662378218179016818136635431117949729288742274597578956456129345132013954459554831847579142367242844233897994103566392051943284525447750700130738111754982533427260824761210749389013083586433592830608522475830089666565881992966737039589914144342397812933508107320675618894405737704424873634385085234995283110669525059025735908201464856710301632803941108995426730214695760186125777034208004178451900156380528400641967361397446156663672782597845698587794263545594867151171669839052053307061780868178727783147601069601737397066475838445726270452020814603463558978120651752532367974990958169834176257992856644660041265997316332858390272827872484714976613515525556362338191678131618926251217787060844971441861109393328730195663520051360766218499744970172517521846323665456954605329004459410300885324769747495670951293930478263680857397803830974026724247526950313166157239007945580430785040732202335984413009868457498709438622324756891023064689410667587096862128740296923300171434335181896292278910676653413463731038847942396046093887823082726174132515054322448981267412292625376840019839366253496669904695976491265916154524346436907391965908174591728825922019605724386509790789191570935692589519381981542049129032878108865131831594842724366310309687277323215581824185844458256333705741765120714870473903081387216045237470792018854186386164578105205307260463979746232741254625390985126746930672836623175651049996278789390988374027847741974779801746434215916052805305287678921702761100263408168708686453919454701357499485547330971218362259755555769162401984256875869196079097992191749438098598082160935417576470831445660552736144398148501894021418002160096989845328044886059758739247982136495437150489143598064527512660090185491177076259231650178839649510150873141872464454279370255432955019460222918395478198101352872238517250662859210976446071178054110537058194325236439413345454981683569228780279836446852389683537336224082619390965492379047339898874781184631772212099965351270046057527369186755800369939773300668289974104160099193628328057648225213981113110119347635611405877622924094146364003365945571416290449796177305686564722476216490297809087801638873384579737999625524580578422160656150446193105397534200682770766874805508327872076053601382053531680393342644117430313299669747471238689191646064740221608754229456775873819524313306574901595552420550293576635116892490083821417998503328916864004793850410178926201960780042005148810779909214713707140978237277038609877109649282785332082300052080123011187588154543992644900473104169272202156361982193408361740776180048507868361605440232077369037349781086563796883323106368249000591929916318707922552870116672440068812413743583290110882047208737575053669348570841214812382709589964567599044450789784748559255008690929463519656400649293463033002918676815935885429107851504260058404571903410013332703765850224978009439959268070155985648634995240185048888112188156169416882276992059388299272935944914136306813362880635121390188204592706254314880014322263931851797942095293225236175014571973281319838411752059373919880042466547908702732432749559146978833834698770319041387685449407621005540639474070341269203421065530652250309587158111450360946321126795771348676522514327235873301333495462626027446525337182597479918208483738637448317943685772025108049476263985074876239850927131793210448927491509327529620865998372265407098409365747192810282180228462389022575367241146193982771023281404090475270776928846439914998005424424230551770809574498447197495291200305107795545723202701791401495758579360956013236385189778407568237883897021572732962981579975557518422481625604936839266062609154093185662400032133175469195432877608471721557893332107292216505404039613220566826440989923565363933511772642826016016307443794591308886967399465711304928870916206386924687690485537217458282404036007263778161577433775079986589672884465518162608771355596768161750218013480565240734356195432782664860266199888720528608015254674433575914433329050089676075295410944707458499451321373785433945701612613126441895718640565607329615691141032268289605383875205345296155057661802510784762473791230298444127513088628589419074715917845532683314376187085839766151284328190533730358773068343292375730498627786685594067611287186572877888311920856200770843972196896228040113738447785727140521376631943157278719564807449959977126374599781131183415862347096388081235506782094056847870550192992753136939980261832066379503253135549777502991311912158271478720014184686193327887131612608539842488913424060397586205861629380432567344295254153514666930554977110707795398531599004247882832074664011493934712845369068588353205392309272796781695345706523163699252147950729017844610565333197475858480855437103465834629105081892674875262823665601238513394311502128727517619120542641920138838726739007211166352542363418182049404752421519150161646335182917998990472464335079234231176834676590379307609234603759013049110834198847846858548114419923174595343562064605562355056703987151006350678490244976802095305609628043394723351511956008756226434427522928392039032642355451020393950090502890343852145250651846097628836526083579314389519383128557106910026368537440038420641277180258570116097015924510483747901425459810699119022006333723764935374471359510781104591011324131878819909777583850515258555477920675610581011569798901999437902978793365256895152731842549627529953429057498722459338487419606820790938685470337075142349328417037851061726117508071999941508303829740253869264121254423013684089972454364786760528651047684366518385933209954356060318526643076670335187739540679425346081980573428479901950987635716868533923931734133746438720205620479377445908409445967874486058399903843422628263079127302879430636831021841558704958202179066692893702061241479978344157450268649631436012277947570701594223749999443689330739863867360109245471143874528083132145130282778573212451040494983541164414335565500142287827361817683461302228815719820186035140794878752123460326627602334993699091134995628061270644610911254193753466084471603137223247846798802314817281316515390354920930863344446059798331114181406180143557670071143957438007329487749377560110480236549129084919615170693322643885995830345891502685906361923513092985436427350205027155939976765644994909611700757475762569998071965640905215457473302306481194660301850956535755894398129019145996830098222626326782859435482940825383288448847385859697777366670861387065423675877815157951225020628902409225434555409210719453966861082932418390585498546027204142892735215315097981767037560118868175863497910265944797819364197086325439305163760959583425776139081397215871965038678063219922569485038794550571371545726569743461678501223278610436163448085386199307863283177727493671700444737079792656844000113466897129089272739915252242890550427374327548030791040070004584097391360501174825495440631014042420147213421975919278250469454999407565900091214361995220354905462838028910359702457952608532467928710662273701752127013332816271210710705553175170717670753836872006243580874146929871010593739345845161357651815975243615906348850007598194364386302737713421255258219436017751643998558150859333050153617573683154348290455742489474836706836478208710169619355407314276781626170949067145354341310332751481140892150007506790720118641322232165733852926231169722945029843424918563310058669544056170983686113154126985709534564025827896664295351528631906941883539028344400245174331997545608746877173503569359372837300741474842915870703039561418636493526684954846334491302628990764097142059874393594075179977802234730560917541857478558898774843634053865882639109968280458999544483852218410306976424984766648277832863367654302610394073794275734906390101992935832547673689357220477784185012597857134963924481329329776909577071437934094161942313128306450614906653891087499081272360649417020120850855423269730184336474652807655070373788805680408816926649680858177186999132645319292954597211375523353021642293226828726999336304583376270030170854335125906304896801022481808779284641677292938301638312185947825138353531627775989933181277649740296415014102206025893951822109873919883862531587684223402437871542558953161919467265605646601948423453354995554559976942953924528856436802693740767939419319276567391659842073154496546327038592939190658992410145924380757070269770244600286498185677178643501682170853926952148327182190297181783237894558158753194268517028831699746931432275261676692107765705277459395971805875040265196913783473549455562510242449998843251205544312169083248761328171729931721225651649999743031548642515557527115219577845769438972379828801191675743481654584777706199637788981521530025399581512742470970254508347890094934497608613176530879393557155850688862250677889934263087939993526126405632385559174744211286620934882278283397967041833158239053187166485704971552890989794675161772817035340751026275949038210563572077963920172695881893234308426022379582878154163948495887346131649952917303574495767895278233560843173081788863631375168740050892295809305668079908407416181196984584294302671384022758098146182577168630585539062175824538323802446307992365043036009964204215476193488796380683620723371066088540502681960740904381827729432092719813123860257740248095529803966689715314701391495611081482318223128563471994867483859807837187993932095467018214390765151011082829653250349710085068238505943757751824951888650841876729433583792056699218220551164451971421873090072179976439660288892079804060809238995691613129270892155812980422229222777473161640951733491843106410336764650079306373544926658861903303200648419090601219843005794236395132114641865799798501424241726288675457321658688339144239285282550169991496806629984226360059159857828168842354085681811395994778611392382182978959801428828888920208472261748033447752916938502455789416321116596926683454333306736506917677645793198742432812414726678872122370646947161311415243130633189646353543059198864535471080414337320404150884662453649111262534077517957545088439441441719376746720045221285143563031325312312344908284053949644183976132386622360253645516934657517814821330794720633485847355421004657501391689778858231680202024516618249513276118335415538787399355677224608298972516731498123244561432180599981660989889996971757329181801248494432392543066474838455160135298314177570206115833540163883235162268678962419642086515277431035221254565417853133273807518126629642715780057464264920303639665816767108283862652711359409418821859452816394071310268309632553363432264040966135092880168049433615766112228001413387596119591600629733205449572440242418389899657741026766863609231579513633158682332902137621856777648695484175245309427942536716021086486443376378907373612695928126753366468672224645202367558960775902789457276370426007528341570756772144656434120665154930783202595265067102685624576726462249581793503353867962557986498377094287948540734499090810530682736714044173501748672222314090270013208145051095994396501314267520851052478911500312905453607868135137859015582132719117156021879942041034333165141270315561896402491878717725466287950865879981646691353906718780362849457315771104027416714699106989604716052149760382588304055842732898125576034334150620314795290940065313549105310295974523024110926465064432270009712617923311223546820564223757125407984225203343167447915010311965892770660120644112249733302058395845543376540374259247558673904057564131273633228274320618916834565889646608159784315416199844321023340899577621180410973355498207795409211487450297940466671609146009408522257407409598380845991439981087488398354163694273667277694922160473706994518887745321851753212819536828141399272969205968093928547973695012029650044535145419721239542752854112725420682254849001328662333178648103893376879205216047154283715020290745391862686478573542903254924331164090418490244351448880248601097237022728759991428134710181130890291096770863560679402036722906474318859794224881590482914941093790278801829099482522772702701667809948375766006174743629136186744095391200962956610738993566851156235562438804353118873008034746953179671931594272843662376587408383841681392984714764453128036879060023350538909785483646072223882967753745317560005923957017966117363442556196900477229841051953534802224860995768063179761313537962178225152240826141474089879752644014427035625281692262556095634670752994765364942706879284671171236606916918330713546065405189603668530648228763669320013843104544635278272297114343182602665973895592467386035058668526583358133611062772352481598548663535220119146020493316508383509838942224058029396254658689985186072357784502386590643108728210086410922574790899059960069720196951677079226454341156510376455989382739724616650461884949677904805307276039990020860305427904082855017834729362607481184524582226210778681061025629522664882102003086256775595702803273171496902017834943180597895412034689349694477003298572322833789221222094620950483982051722252293695727302019265026113420853371501518742635890770913144869847411477020671122742907425864683022540096933412056999716158982306726611595716827409134989382407321494307717872070701972917037065224310625264032967184974160524687372268040790403875844425458301221133596186326328210378829186412291307251268728444992123709991503933843086172134335441537267500512122299114694347169827272789460675284086999028918972329132896365639912167438422767968502473702731954587373152826198434859582832044119250282896021129679442134082633473672222810831470352177204480681401539335990777487561923278096639686731612187296547393451965807851515625095649788700221205539370650742861042753873716885304338758707155285811088443749386135440679178217415060202086117020076830702652727762484533109052253615901338666577332063895846548110860354530463695646959374489555407119512562261197005141682428017652420100437966489113107369699023480030726866649110690669655056590904231037316387372782271968102551251539023784907445501128707745200235101706020008596510625175365706857568580590674132210836897834458688545472191885445138257135126607051588302365000256665203773792633742005073097099302321163008717995119284479115981964892792099664420456950601881385518467045655450815203782038499293369138963521808290486266451730781951922718896663628798803801803103023198022944676220246595812470254314535519907429958924131142023471590913303303748441990606499845186147204816217457430219380678228617870279735609904611523283980652193089568092217771202332951716250654829137847380838074284884517671931737106926210143933316559748184892382765600297364382110657258501094349208339828198032607483236615289262147803131156594658704260270819776349926971865175527663585931603388378597637156371447549381628117700536791055885226043109631292711650322733765912757177425962787591792460989042719698371254635587226750628174171152251029303538608750824096856725465302094767250398960923738035643773503818058119014623606879028240572421704230093453880268533586253701411533786890941836674834272411821075664936726470607651525641503733630264178323660839812096238836637536976564965670441847961700731291973096038505011739321652027201867972400756175263935421604285772154187985783301648963626246253806549884271037219946922028235673668567795465090283524732042913190929871659289394288457083302579447843177540236395641974563304185284217157659920428512863465133180165497469911215587826250831973258631786737612894657847055120888335566961568950316563127473667626821626488904539410565066359568379766599830900612903246494886961779746019646023883411117255240030087286345558103278714698703527758068497701413203594965065079245748772939149653972083929946521757545025987481760108578421520846578015741517116868585095263683926534648052047863526343945808292513947833196369788893128030044755991875309476278506857435526664487605345419969927016036891414424047315367762758701884927180221356874447627359627152405188848661752503594578939018167522707016941229459360849482640177968131194840503779248687161453118563080601987907214961752275352075363891616482855716585198598070684141905897686693238285424892653633984248135957158308175545369824044957891276592377124257286765987497742346282524477594540677738306142916479781954081109962023437121417975272378373890015080885709005577513454363195741690062439062103479899378346641214140422443312237209324898415316926377040318438445855578698612042678147524276005113879242539168140189614994588995733241563506864317624263224359151987002313447829736128560790032832732089384952709497822972404836814489276241596500824749118838075665391743708684879987859909622846359205654960406357888676289362715003357517393079222621304326880848708853039396179303518734677894246964346179846516142027397733010694801933790572195550753117940634033119204633895465183136922744314098662624938784959473128636028016964067287272258221770164410503819140312146090045678330323820287708373794155274244461163253234150674636291486238274796512065189216873665576792208977181125253939179586694887322028709376574221869299263547071530383276205114539993103437050730172279096019591766291451438402507356410320347844913130990284811550384455632743082124415943026413235879059465507459181062127718649822750072931350639763834634504210208467971813891093408492062685398503484203114030928554888837467314104909184338065255110870301581268432624199936073566823721662782205320040719135141118326782168297412977010327266353388158826058171242601793101662905502206478919122230169691328097856789630952688561333581184132614434454045672724881124954379956548478183873107688021270950497882122754664439252066329409034249984164211420787169186016860416023133890283234001325438530221063415986742296573154126093229998941601439682896312964069839327010005679040490162593499846512722256444281136514866035308736598596058331535792329439439768169613784365979807767787498713165200758674532894178395363404717974971207860840025772075585589481940271340740252427405564364890604608975842929832655300386781107071947960405950765106636845522403195086470337746914415477845852837859852771578375403650645635285376574292446394311118145230327724788458592357582796618388601468004670349297488761046517581783325691929747991104455889666530583093223058642369193065682679822697818038282793691335894892115530402742461054679557405808286939089026932095863273246230602656311368326454219730018023319353634755916948407618871346290495133214437900719288195268298784347620464272855115693762903182832761475589991867793212301956712658197497215331580508504006235628435327831140592836510784042159450721874543964636209752526823131171596528281446557016637515886456458639804446092931561042647384108707822414494044857952275620032887785950774779381379087632437104090710746404490106872144039306167001490379083617350987389236353724410781340759035344173487424092964155230423380220628719737655964092951934264404446121500882413965337462101551005446413425344271435643873732510217890955015759121022807029808322286716002751003894987305234068617844185733854794101725059899246125083173418762367074597109113759807635225312084965458612242276300480668746427681453293472066854323088377454087164662575493830617547230795521839634531682400465746909087740186309662685318354118877447400268220748214558632977412076986704521808581287869206365218324803783160081625424528696759746783579583624554741168297040101317064488901573765285629151653599631370037089048420761293507265270501327575790502065622650480660112501440839724683753371248903166117839690063290719143007876290134680126890494846875443876658646076735447167491624175412202286248784798916832121569872800948469935375891119864322639534048038428868605231120216692347315521326423382491431935530995894706061627088402609860839247613466755815894451056399852893790438666084409821285182569754578669461230777327135220945592137239053530321034628595119286908815691228241375219473484870125673351695150519539127386066032888667348914321238909076255106841756517019501611504047560539758075912558758185048336998799735413860294097163311445341441610122435717664977437662149858177980950711945242699407277645351559629786642368518420091756795718849565345354942043285949791480356322326098125934451207408571580501417209070622877961257864390366823915984186339597084256354761150379692555582552831362189566678717675723496944711903274462027027571189810026219481822275986090258841636761115759780964529705691486157354807265346720062734667730284970134009757047988579964912308988174509179069893780642988982612975749572549145278168443368432213068405631968363151679234945876045319071765896632690860741303233353151837062578047501318869673158681512429723531615636856415764732389506162384900647279285622189101326184588525848018843369903996637013537175723118465369264492640693785772999815889265146074212566641220811077098017495302517307520198327566087394692291835258647241674190152640597430249843711096539400700165502726708089219588419572745196167077680234365539125125964037562878261227049663317057258247547387789138064919911281152337465204307281202914945051443552625240150620013967498685146374021092963235424475741587367220147692915188174522045202087468785658478602668069531495261901980988215693552015402005484449377549213372886207381877160097562109762691671543855281306335695651692831856384948713938916570589239417735364245642794832744028299872976649544290910660601808118945261730492218038824890515828290162401767189730218981286456167554903601929908699414710095111038161787722840059695591502304114991169928770993253293108990917945248813298634747073624789985130363074128627878514105666472921769093698299015271678743667104244153260544082191043090884992905794070616334550035213868881123003672821219504688868277940983843103102160398972427907964433188445761082592624700663783510443291831000806340636524626995481656125106926073339470795580065415920954587835811160655174608696997042675513719208193632455831799423313682950120935261750005572627691684416816052458894530977169306550225202884593894820434484959030767136025983085386522388166631832089764051118789272180531858767307626850963219536072479967439613018968913512814691450616617366558433515568812496131602064147913919705015174173731165201767156961074147661557730284202340436170644686810370222107049615986962157510217777174675079923081413668908620627507664316341655452900242113377429088491090587798891420405179725519988123405021213783394932240625555852876227632647571470381696913576857255477131480175802898404460189512121770672177768759077759583409271460113574196117580804192505583576884780692063212784151411651907980349129517720421009521044775212627663498033098152145035378703145326939139631449276861102466388754103991481827639285379468942159967887684212653798917387422806241261836562965883238538498088124785440396839989410235061526095855713760753153399096687934496849863691440435797271328733020396223803652960873479972544695614656162062995011861912698438597479763330307823744324537295840984073368555093383494237772039551117324138558836231394018774483753375210514984736201479558392051089706289428267154908711325944305911363688893743274987071100802875377589906590190281693232575969223792710977713737678544765032145008396920644375055892708815295384385467702413146177892029014605508908836646707582816011340583231051064191519741622552393710804780874620409709505294426707331150355922212521393123468180709884834829912902563649256691522716143428008377516395280587689345097091886827718619709288142978020023910453085693508475877544664550437821067649983578513878856839422272314852741302057226275708040068957143547876722657748953181217841636584834539208366322917811446558327503212476731476418997640717318218817740532497483669271710019568276224086282955734005992978606836605061825841364437911922378467872614868790419786020942411272544971071654614993869805681219934127886490033672806887885932172348024347428955800540463444129536322700093771046112900163926860907413349566667064045571235337610033162525941724919382138166644949009316841992916735754253983240457979459190737942643210022588811039474063411128137256412726502075173964986395688919271960905745494998736628680075621104658793847036886156524521320225218217600974532628090729273450830566174065189419694868933196074363606126945046389352555503159412930946515873953736167235622540001738879523593627987392244560107584049579666473108052381579551532731544546786741342162066001322279960913878036342018561732034971900127504651745955782500519477842665957839960672814474389403132240208140982736623883542895278964840380825612522303355541048392850878210201596781982434233576555643651224739515537745088915144006160530857642194019761710675058804948761653771203392140403907064334854584790137211409811789355842493176164137811744834569745879316772091604879474744884086958277843552961580765025801073113615496457218521466127593612027856140879661983542422414422524936713880950299332295387555753866818418509846152784587677023089745382238555688071503749997702330771017139032016025853724477543641564375636255846530874094719851474700992184614843331413961654052374993706799293697228263745317185632079417484608651742381943821822934577406239615251867087677937811753742101697713211241054330193593528627232406823319662635974879308340257971755662085055315323960886836428493069182861134090443309946494253212145633808035289821683501566932348207321656464678110318934649150049104883905414991123075450530119806038001387561780498895996005548531085008692572488591734343151511701292949007032076849025347955978240706631154672345221459594784265381189796348151493744881332732524920656987418885603615678004491045829596369461694969233711979899674927372365906939789193063367163701354362074739889905166930072876236684195889467396748785663561687957870560931922418047990938207306405228303966783290876263182621785841364783571896508885491599332424679876040562355841723036697529976038359609695510843782003401973604083170981204478118994581397761851750909910498366627210904371384274432780445807475594565581623084106071301587343935516266695759288190107412330025083466943959037201601394702369208964916611714231550929760939220581391314859709200239625124525569852084548223819716840439633152625662392754720625588651150331412111741137929885909621152519238575618738514025500983326577519506908431739120498983258390954607431290088597271148927996076188987317986783557518667023734432363873753151125690163934653463516470721109842587322872739813554234372867016556873551695070078474258835380789811728907639355326662245424926599665494456763288858782939352212244327485629925103706575966120098538318569653079870691104008847544337370224375287372599948331373357279777022577050277603049735069640688992064167103421320153977902942917539468722654527537285568090297609742357717132546168367756588248475267554967995315288657636327121368654079998301334030840612923120266947020986216655651215194277312676347569458904099237461793520077555647070330631053341461325813401899934178008218634573714947246555300457506853214014008717608520955090334234749833120408567448746602432042661057951833473768700892287841810126159802100710490119720427579323766990830585440843978245177090396844332233221071936923699742956848634490882692036451974966326441728358565358235376911255528506558338733168683711369980299417108534981262293610331670669602827483519095341816466517425532665802739429056732057492612332494706133406456896082847374662885131413435434174826125928047631789097428403916387418356763080679043483546789064627270112068388049755761325303048751367818516193675038625109207768649156524677772328815930277214622222999265359067929302490451253925808812228152014783595221003940832173541136522400040353869902042483733762553316263034738696784646183387407490313918431234905089274422683905109426703066100178092584613673003694462660974686883943333309917637864481471859400488196627546269301201591260232459526476096534904868685138144307542935437970766004932249768193491456085140005553183165848088214436008806917564969136622925623584730160435043965839803544391853510154196093908470341763560090088772060140752064858224405046662235128561167897725193366937450504110176424897883367346009068994872205011589472146023362850778004420363696572405473435579035765741248606411861899269771777077578304760445760681308104803872225902181091727420269807935016774203672005978540829762158679090923555045637664247123372653916405649550423497590690813149775428585941983152284410447323362750293366977878697802353490384550448456203714547517184342559314196132915357596930623934467363566649983496677315024599245653880687972026149323691312158888260837062506028157376356643633451574785874570396089522691961939944710829535808436068663427841736799932858011745183285634525257390154770347678777822071267251863695583791547481267586206517116450025001953563635233955124154542161085148439862128544588948052669342833686701513786884061093314447903133742512959430379239371617399631968273557455874440618448240202014432672478103987606706706871689985427587693648605245245169726558181055295677145339149778193558381185258211507498062358711287768699513956904277367904740934281849039652365729392092349690955854715683699313202471179614947973506843636522351388953037045527382248422630814739973008880954296814223604954474965798646389790919906634914021438797274503225489681567317295171718798810128651465176739486755805303839396307595293891782173761462297723102609291394019781518978386615184787985202980611235214871912439472878302754424230121204364960585118611874497595150114852404617336313225870113353509927345161538844969467601181237169496666424851164922932871021383260097881187019376085316916635553083856622723436295427766295885550421850399977184179598536807384878614290173364142335892675038445249702917488805874751365680439497168794273149857926572765385339782901388517284096108638767682882670851879681170585006240421744414730738540946178549809122144063939927688862835257316294727897735215424011779889993480179233251661717204661069366405555896980035907107963385127145166943680905425968236170454674240188839179950424337963658525793640831700349546570763896740319955211956064716083715839259889765787132808990177232100235289262974781252843365806460472096421624445842233655372933827192524829778043066787487344967612383924472716991276557481039624984209243656957100198577375346274776460102787169487151835632866938269755194897996539456554733361782092127734996922683155402712604798625699530615621527983238226634398759554479338152804349111816948484553758796646527967217209113428470999131759582942334166069714288623306044993763876201946746975612621653471275513242784692052498962486491863469404619887376742440541207328120612609924343508088084805632211736851852680892872745431757537143173109953921327712946185351932448903353896945944662313162611244700515798459006886911756909983565376006017281198410259290376728951831646275080218357824871373088110979283384967656185636677113287171101497303240637132538222040125589765092166865673048124300456831923748349791735290267242062930809223645946491909059663475559623896428015959321819304378293642896279233615492084336622129282489686957546776384523067550065901067856415369887163104038217807175722140221056282056166715267127300930720045063340865085831382224843635162362728371555035275596845917433226279991363043849469126920838986827836286512787707249372493262516388500331932564023463074642515507169994278535823902646106862652912500997270800732842200554542639914517052344984619247909066507548413581103854145676942162971536422119348374245732233791275027185921151760673262934912089842832422825784777632308678338337302593758039778621329654556355132776213232096709956002587769066824556903981857180760834621376308062777258929940598315077050396570110428981986106892472700509976837119808193695842095722724666789692610996310428478009733057358203979799313830217833421513242686237766729883123196295107605671171630455628062237866877237801585565265409866489661794016939600951934555448514132697218016498678866722379386970561600719530550409932138808265346384196164797761984287022567077212582296454875826801496977861125292145742770785054724502358032410170854284496662699733055344737214439903972892596241301334967922662259693245186722943625199619338452283937493191359060833062882448770008423982821873319797351281389173227564684114645661459177128244817353511695602188830887804656529390042816529027844558345843490216615915971790977495840519258847450582401394329783540701488830588092421163765976154856975160535680786943470315068962231778996901348103984169101557880008395417314086045407334392873226331450013533463124200619046588890017004340805024078989304976844889523420392642445666004003925386925349144704857778450076161274961321745984729361248541104892313899747697409410085841565427790843392744309319525908124437761614466281467629939807660899602360672128141217428816501200891865430713875828469190678372521685953789770076556267835385432504329646489240215407867050493839267901491928419050931979462285261285161916422015444639117453374908636037251967890178770162915111746931448878649965328666363089319938168405980969722856098077498287207093514616328129048749429007012828433400275808705259346598062778314738938672923963005260799718528416205795122263962234240512700469833137574838039124724493238448190187455986291991472358512884807662384780420078237725922361356006498537188845643623537059124986579457761739064611554435680984419312242026714958027402919029942977837157114567556505635818636281744547186806166515885589981718439154742692425548791285298000834738641432951242002090082118233361753289912286889775869697799642848225793087406371876743794287537144660372889855577576781989225302385745325274270373488471001799835971359499331387245710134896134722451299139927464029735495508181525051050770311532142821003425068784373664144440090002783267630085914643397371610111063705866327788695024262931616520751135713086360848464847066304680006914979026375663558967190976958880841396521699533202846607994634174073065434065675019125305098029296460930624636771610272208215836918515977452265152664033771111772021032102378284630883578466014347744235280870465126944913045385459231932701908563325492995968410404384665903438870670774491817213370723747311423353423599476708023874463359609153461712809632260811434405125573410512850296015699397209774441778155500611150620516637843510002747298378716311945066843807680805209966267496171017441940234004338446037632004433416923554863839092164548296488837912409367597952655863447684048413164917566033797225112103225220644233163115812520979928351659323859682054835544142042975687929094541710916632378949427317385039645497089673755873980074865986483400952694362444318608060693508397125541349320731832852306493766886196345603628107546325286319944427272844367760841444959266477625886816019569494344670775621101398523061211483212094281360956477561246671333440618383693208594533758441349944667593550711658729161916966679491347085015658371431251935156874039613555547316374478204059113353404212093019090622217807974736909948884187277434376854166441189911288861580197692727118778143647793565699961500728495334061147411610391849297634158989413021014914839817326915732871177436823435790346994288501679605079305001563223281338200688225877515170745269157502927325815786629805097691224567597519938644680882910656674736808216266142182527843340497185058315432299652239752755310783644648361312471086047765695153757692607009987829381734746844745642221750892593900978471117651290666438558821238170018889615657701206234106083232977535230452729784600092454513595144549911773776018821420000016507553463269032557235094819786004840673043660266793322157484049774888157531762562741242724525383661113749654218906248250802082425831764551076847136483778869807052113423443569074827637580320695916240672277374304415034802870865888162027344215210042220323417547039621051114916638539714582137299329649791557740971570586180949719294301912853750870079472045672031050672266603802081326035173953889332225003804118689868668799056420684212178521855468630276578469134736314201239011514670345524320513447424163711639047762903562768889583561256138324414673954718364780350986680921013807954031077384758036030860191490327746950541227457626966406523872961391036054089027182555986110928364591865263357082353831298872599545380067012695934154393786766500333779317649011192509091119835908706565850471504243671745266714424242118145001676213928620898276056901756645433041773826859658475778071675506443099563514820547814689162630792838432895362132660969514767909322739218511095073594770809196916220659358705381390307310239084985790355541691498688926884107734790928399296991916496338698331574248156108993733389002544634621154221623661887028408464902515990694306775466069251760920338231248864483851763700529781797243688520466074439617535270289732905275007836331742491152788324098808981717150411729088620575318511026815567489266904341267548095117009144196028800514478571860249358075196201390599248020575470180022291315920557565857435231839347848104388499191348665613679950108849760965340401125507338837006354801055797656897498906689483095911947068158946606268353690033435636414105502569393934319510204173924642260063530772625658638009181231261063617259407916428178368528197880715122922746691278444202238655476936262873022203225389227916462279453461964585062516613806269993564348254665584433072755514538769829929764668608807433012768819502725822152231094427204444639527772124488073019430136450388053115214025091173554168948268132237067387773760312176439673708565023925292158138750289105204527216216940076455171406343089369511267914635793202883781195199823527763468169844845296459987510443536249122938789549561099555379516264319068482005455392909166026533081705881118696110690008492052931491982932429986267001368640529413852239955579443606008799860725811885377651142501711510795288678298781741686768946431724316112665514324735006436588624062028065913099971832318502122185588005138078149342478562096761290007660614938470192999475635056389478737842671443293766387540970616400335705828614583995348324403325736781230999953889875874225689929024163580282995169908115517179662186578517004854272780668299017908664654885397622471178155820684586821590408394499056815707075297398911594842726752150832421600426794828426880773554191552937849197406895248858914264587684650835574940184318067478323263941156883721005831890800268812781218209780691579742801794341742313588970869974170606621668123223888752520146669409146223983124274811527812001813922459022505195973552884503959421807030323906876384449418811916122440356058570715609761581479855529510002085605233456212205258281959980564756181226745100416777113951002656438495285851400711306883234628457748878284488196069734617991736389426032133738197069066881516953170256818040409613285051566233034495116457143153578732493936662099831109843595127389698684102775407578562318379483394602448020549201709623762909522821200537282589563140559573400401089907369299178778501472719354857014720566541189406116350065626338042443610082583023165904944573997858439764707298609237468415012640468784794626331244635677581737021072188198002057219608381386558887538019389690743615148618435943724734241854416327429780382686866067114525466022885349377660582162650764973614827428823085289410926793343347956443183753456485817388653367786307931996581479339996011929220284434438234130247377492777298989828586724231231390633603992495912182799427702102334092846147660004980879417476443816413801316138011167424197212524947606854004205689915103275743652620599013476489319643275098130155276054258381504359521046863698831113093609614476967304379276038786190149620919080429582109175442152461609699547392464195637982860652796198399978428374522550025185383203187585986017764103758894813545245317180910914844603688412313986815965238706490106676521099334459095842326483171710809862797287992323131451351556430618535566832050649437751892991630212468174692369150279147814220894330208901567281010196478124605062927517630288881227545340701230904185336392003913960982221820549967157758935288861762506211147807146771131513392693455023802001626878273349545014956802140729313035047580111131971549239749319009932450919730511313095583818296544045000282435504899804881911186359364101503221823114423701418964781220367769342345698598262245701435348627233925264242561755051543270007426302550378690705440006326725401661622722057339979661420425625148511067196948233943904602109507146433860344800392132002984437779749836846667308759542630670435116466436342113460591974610135361448125632790799930100345891931938247121466734020467563676201806582463445341319076421523862716320567602551914639526042492004815836283234990774854738053559793000916850915107089671769548685993258489198828803463342034934557526128812902757784759477986854443246432172513002361459973860334297101402682739036413597084567961070100708906015823360984622618594387161003366398518719958315739718263425936083365408454247974928260636624817257372876652891549383012954412722110066949358463134317495496109049639488456145145826989529888502461382076345917336971078561251976446992305026767667399400549076259366220297830784722525445312134104258661066582739825493078495844523355128994979086467851379300120995138777855469206785362026769771320593369792786838615225012448260969668579704295914398684800672602022387107666832150911001085229539328825338226768285286285856406894108942490919650360084835407972299369958617262931220817009292248839077741102456253767229545558378238544644476155208295426362985508061455117191601703753151960037590968123033575133211624629405365840175999958450222096921547849075828288572911895989951831776603040194922964783311830573272710812528002236097541027798516880618015740372275005882939656176644008077174960182661436613119280834457917026326699987663716708915704338930069223426833164950404589587330312015691679257809439116477032649417060109034005367240529176561454820275046139922043816694142491681376373815164154670629249699057505150265813958436038822521751016337344002470142369197041817780717137102847270105245274648449405220687316545559440886308091962711672219523571355312194922277118674163721395198521185308302231470863852389699366378035630310702255735002143999835432930775661048469595592608348790684169869972975942476997975380788496503128877386158960559456501110818890854571382261674903278071479836393086737347546476229780654878778334215789440877132587505358746390125232225194177944423367868964267017721315096707797594455780969422621610178619325745630424579976048552619462100622180227516870729695825591667008852882535305550011729061711663370995506841550053807562172730683547661150036144893936645261561424647120794925017072918892197849907744565147938059788191959953861451430228467539023436104917605172633640004108812141126162407056527706431864084500488036282400514631683929250419372035129142872998418985081529081899166311522944049889933197779156222745880997321019978595539043242152341909188277873226102518608881690882367881870955833255264924841526211696036439121459335093218826602179167338750102858377757769940214928222840954537040257765860310121603526444374499663356304479782579985450992747745263459191574958211931661217915971493386807172771439251042090204255494398447462243991253750223819057358765047775619304351207851965440433955535142638111517895745857810653142297011787053160529526960268875785667459831102639677150516264942949648937452629386068561893318737853292042117701772323888307716674356756759367889103217359712708872562669884514742140091335874598316005548155702779939609906934091114966757032972715743155668317752222118909705466072121253886757951247451139349586041398527982852177579852818303200635948836777629170206776916681361735637012674249926939810773112780171308434091645908095645543974603565618963034674553270659272659663915623577386286042691583762746304556654196461984797983869347832994986535929883277664775184537278168161374023254399438511862753610265346577860784060967940024260162518564669722869408860372596258448613991756095239245081263098134069032006152116720095881926195866849608830477208900071352925892470702414107260025500461928755117890084471486152140086997190039470831560947025699264805730823482039016295432739408166899085995904232769553355527996908874172003407297291347669873551385200135159916749104960466857261194046403433502249967997231747437226341985475369151249929457622990674694829461523075141155532849221390189939885891128637497328239941184220049816296703956078535034984327585685909639656414330010228859786390444153600196977636452627151310666892790116478603703011895893830562899830359644966921873195451598035035307935372213460097720346331578676258342063401247187242028042195412632839262322190627160995937818472962925895860953567664395971592690968366582394276507103287589432749591340707977996806962502666075638761919007510593321107233335187776086662015561381070301551667154687039428127125946641379191621755312050214878036841395655893110554259242634051238297094115239931783489501937495979436146829869040850241814834841441121292394694444547636915095727418439155258746962235582097752852213896467975578855606445199709845744260758880802486784775826278513261392930781001996236546927822192197860485731855782736635753927696713981817274224282860913158111640967060874647199787769756508014793517719133278049419879739084701920025842585906644276699567453207456818069806680660721352392294917351052304327442516900228810282844845465567273474363115513233322261125633468032918126202284276356894503544146901258841766886777067414261472561284263529687627524113525631759780708501381161731608588430430971303444278579204717812299381500719636201425728622902926266100349282786616795495123560803885936240467621877330550684159184426946789143927925502478146085698907119413707118878079103880526620853327687789319754237889309445715250101394862761562446869094426321279077235674613236241460917705928332904058801896719855244709143573993898541615330474179225751651546548222336565203948465024528598551302412958180072552158684516031887468517097749575075138959900356426723053186788008797561990402516267691928216916525470485155294567037592241573763776977001883329508892573392015141850669272046914592666899104066720149333183339258099869933749242957602802394630691657135165367505907454787893862788360797146265907376376869736132025256748953849989372926703709878506736816093580052437272272358228405004635411223304296837020295783750764054651294216703268238084059315650942645329930631234069859567635976742550411688344379925343856631546995792346111158701465428278310021506217253864085713222775923654728506289256547464383428425340784661863225856639640025673623124853779757443603737094063989568948193742384618945198468067538246584564156604299384685571358603511087268801083781374475184442563967455787246140807782577558896899830672604914055983760484734279756160435880084522851609476436737576992623278865335609972692460777925586670691465421767861127537352620480672851863733703413646116012368677101615510915696589961586005680391588181686220244854943232499574809661800982808735828920930082265278060102372788400867398446226429053458389128286646918076854597504965331396216971475031501388642336040864646789454125152377586470330172626555038358956174360248707485487712248903891265059650066927484089217936957119447746911154980644270419816739597428091993118025444668758675268397000148486543829076365558006338773531248437381720243775243103169927920857533394250538011377020350169596010869289370093254899627292451305838761872146058180515208240483433124764095421899379189716771707604345835644665208287276385087885366648405483262648216428335555333427475797367063779960642755855290954272799264402962917577218602027821429121959601598941375033273028645008236628143875919550391581067554324207747069898396900307682593852321272648158947981771666550656305596760740595610914090873031823046996774822183621938009816083836831237878688753547929344233182490732853469322832432772943739713988003029858893016605720842322921894905622018034342200232071311821903393772507175904043761840723176733173687385717991409027140368710549122245072299171058888515102808546332934762299399904309065170920732033688524219445823306437064227963591175501936758031180215514517537736518959912290730966061887584763346839582264095807252086356040084616287039809402950170003103146636549912839688029570019682110736876408072191868830993590687222384129211615725524425093536485590580684056965319283984424850007596864844545759380033081326965064305710604592574367243895204442277931835032622906408306200540638648711058050427305245054782769391563534159452095092722344968759582138720026975065928351746843853766627226300634915937296255830044260888369673471467023311950394198424466747310039196723835529854721018715900100030158410738733786370917877610922049252132623068459663885325979213198533328619809931711693012061973837682092065469549286528914119834778542404490847578229333610113082239873207961864042626467180645992432589723172740635518077335804108828570482174704289974614513781871311326333004167374595466285009657995164189005817941293385842542055670244639278081074160130361753834918035865177817183192846394551368036959150702968827128051067781998410703504711362501342146460550640404827025539897519604688173778903683365041910138672175704903374730703475047751306428433257452709494553375420475113989222093900179125163957739214535195867957386397377968886714845950028471975791073209040325846289125791904651816617305211800590712905075575470225631532578026909256336522875031230036017590490368093926365677618502970472523346848880871389770736799999098858545169555012281310731203397963233965160163429857834563346316561636025531184635035566425205236782680113094125547639726868704516722211591397869860333144594112088220521561154153321515035143431433413008479631354711445377580244219048312803243552402698923284631891119461812919400409625114253836202662682086145277408674835385766800747574645142351122231862240173081865740181667250099156456014118671259037263491882540124472469252984880083859390529843064741363847307896174917827640181218416069738856899596388041611797016290880968777374233901892159752243961171828829064248444803055854163006360615246272178178908178510041206729128578568835735517414618312934155636472954641848028465787258948526832623340732835375369062016173130721733067270122711974967482017855105143861323099419635012442659645908936083026095320501923426972529775328964186350406417302292359733636534828322456620793923829601795696099882381204701417535015484247068850957899610896145880225022514234350998635422256339388936502173928172097295520077117734088666894341184095140373718178584474876095299773157664638714065472258732454759197200610948612821479625103049552293836182285603057740210577722310517649834752688816119148835368300978597524302909392710298405520107701346429916095530510971378169549488332107324412097789295144412161368334220818859387303501776585087202248447952855726003065121719183018353526246461536809233325810786302797159894043694834920116011080126703721704866872173167728042445678086215075615360715311421131464130579146346773995749040180442619157148709643799631439053154209616528119312907478441027635958496643306604478420376394977730953633630965258833218475824742592317426995763250414610509894782478501176231542290985584531421221006055459081464003629954808637995621911278368744403781763669862668662377213827723643131707935951775177192743336666187847830194762233521298715425288498199717981259226010911519060058800366951982566134870120626959640059504661582008769500939579248666003167486256569520296700817894564783473819727616956646377023216814628677911575697004302152652159145672875862223591560769643143732655990348184931093465005006248861565566133367855037742276125730401885459267531062851284067814773520984915770692680485657615586831242156813229050079433178559432172900231111037781470103838826460921399107514852273405308036036851630398978127862333929454305512707314892789867405678945146510807127706800433001426435445236993169562755989602985388219174745648073328361261367638687917439340244092337483183803950512045815888188309238246711836630769586939627483694254661941567436559050250857516468386223887920599389599529959383520780132469544933396514091808901438872942992167359893287320684527914242754223299062591927384359903384854001922507338206760028658103355888699402130560789978481167660125692316005896161336775125309283433457484512554894302040730289684592215768895150639419968375354670473794508986057003900986489460767283955826415378228914713774152354652654335543262311037498654136010434228514025756465196919496433914782351839521294339492664286800957789697221005368246743635514955481858038778235881438491861177004503659057078543362558678650609408638180887202695229650393691294861517411077943464364311843763651441513045908658238267556073119746621679342538996262593510132204856339634229468293579073758794358056325132055451793882077311610832189867517556773907550631545576087431212998544294667840336735135671213415030029111243154281624590257001375540431621049990975719582261106529405905935666059457267448823655176137780187235478863286663788989153679368656537193212755165956765850080559580888162411582463210276472672428263003268419871425592305769830916258757690578617552940867044114914630706889317266961552894604906651599938059015991963934083217282192255883238939943743244980208479884905303325073194121312217115578469005369606335716360524441047929063715965928756875499653644948918269400847534126203260292472464814513894867312118068754587935283471993876747558550061022031240557743959071938633078817341528855520203669362662424994352137559579593338213302998077022992172239807383827997146315667514294311596979972837199143027126356602880474219650611606487438404792312777881940608028893926427235618315991991674335533682190670571936683963556649450323567898762876462898943473480530000571451438701310781000611782791698760100865188777312355259236990249523006789891220756315638787757484369438282790363923767582453276256972536145593083686686063468885936731135019549144514585320092782196005990439245358133596176605217105439614089441449217501987675800504691639491376141775079809128812630846396392666412535552114481547147486705693839150326501437988893718306117484528138232181266272964228016552513759532228546696236927513690254621576119689573281384094165432375205108489427395680325477305108258383219925880383424478033637769545403866637298150172657156993222764926095316023882172459620206485215139662493412535302123528916451796975983023130448677460072635185484820439152946643569074861623222502288837998026795602271718938078153397709715878999158645634995488045447308573048714920942500293638601595805027620097951898158786742728828326119809915791475824408215892529994638052890480208427616591717651884631137026985296569910152707017259332663064335633382464538483668549900855914208814958025139775924686167378618895684907089845825992163311627544907539293545777497594340736283584123976063939653792991780542836338048138605941442547075418681142042522585547743763077939128604507321173396449962249243918061920804138986362487088847519689851391425903322263656357917114916558939759966320661430575531915134166478472659122000616006896685342576497540534067335284092699775226124147020314882885713044231131183225811114055328987659366459282626741118551619206529549069179451455100753507507623737540743748013409528032447884125778095195831857510099945524988447595179799430698469734647705455663522987952951514916195454601930849031915565398703570143634564644865520640440879543102826460691059198697497765045875335396231932668043189815332023580470018386436283391523858623166956632921726155618535800526372433577074223660099814040950819975022556682435560025459321847589898993031769440250383756514884132556072223549584433203559868737195266408414163938522949876713969500977258219680113648112928717371596333836984968780484629044064263622168226054997270651523599186150688038754853334495542001446837880121313905879432409603169900870741180676273054786902407532938506165157663949745566659213601338392460785763230557856713173763698344051623709254056164974226636727910131480466644743564958920652237710596103366504353556777073185559887910875735039496951133096005010350240381613129140018598418603656463459087663674309843183167875167949673197114300927351813880151281419961134090769900730680866893574270970763223611694062157272945912915536166806400841721923970238476738135074566517974493861282582908633913163061344324688928137980811718077823799130207298536654591895022330012368555878824251564516497811452106944267554018418905687172638916580002780651602647402449146232262613136807628986518143464714410646168519851436442050362037679174061579532120632456967482306789371171324698325219431125679082649945384397258353047287734307499523683655136370183628851710814891367957134617713688275008706093010351610317381165145286639378556765129910980690152767138986114632053760074978373606581048977079930432503163385578319179157836700003745350784605636166332914042165412607860847173566668692536952552355226648938163552007524533556085630080082972824545283233535494253428627102027893175712058215113303380061402827604439510869504749126143369309727708390583177659371427531801913068623147403167667958992015947733233850151965100999410168849667235071918616733213057811279645346011082996256601840424315297428877249357349954791340381473811544158778179184923234360571987674910588946036070268399542799318756830932109611082658705940019020211116613350877881131235980877132182705557857831288159446225614539396568233097183492953292035663803546678604684062555289922903173523192577495596158227287121817704497591661424370151267208552859335589124347587134296547146072231826106318925419350620711195908220635544861255520540322664919768730178209503775317991680324876604145711886410310746003987603540898366482507359990101370322944011496945918733978455975863841563988867270107658274307026448523480900993415897489192394804228768099978397874586468790645562448172566181739175785839253229467939963729604326749237182759941043600566197672187908216018886083565849711772141097576902452358358495894902889946032378032963022884335451911031929282854120066295488238537038509735046637186577964950688372029684461237420319676936074301239822859267678200526840162167559453440213714543542097516910162786444044674026272898535262866285526841541298391416331508945501452929329040984841579830052635893406170158962250041017564545689577989952416714788328107808233972840284623392271066112906297915475619009232428867845885370287068359364508086353382061632794518197809232808955413544310855028949841899556182725930150536896137215921604947888425909740621259357151008498354915363457873110704219893804686065577181830735602630870823568602420901384865083741889148153935356322517411574705274076488491920794269153490500539274890773273003707415423259588305504797152566226058038354854528679927889189830520566834024167307342351385321504505606083202329966768305909915544274112859347619952615839854460907121964252864876859822505156794581653049802588462496622844238427088221899098416641208968598975651048267229683628090119259290771649954566387157438832025003134488376072062676931060656010118085219910145310167251242768567329610449686329768271907454653815076935836190233503097217502798919723163373952664394095758118404993798191342904552987300339546193002698534295721561732955377281882775425864095700798423383250116004764131488112658745079793218126935116593797996736405314613193216261778958209890128289514490355709689838361978027662053864925063269065415542606402870032610313477436841813007680895121497533394723915242493926988906469931096188854210910720013537802508198546561741700903045613578657055677695935864696631082555159293109094031606807506208529554526748152700415172344574179407415963112302898295082248549833024239808335152193612416186837546081833672860793384252758025123668230108191143992573631785253258600750157191551348659227874555796801802912170312695961098157243735965373366651484509779467971538602296214478116839745672464127891049029768295214751722691483325709401819265701293178882515282635065660557904611689681472364682615851562731431310111440470574742049023797687818793253372762573754071010906063516018250156980571896052969112838147160588280309434308952931413225813565500295585712182875682653543233062339056263096541692952071208909846130843124018832432738790883906432283223146595213366465799748205188431535091527347549047046866152647207902256997684332729190246612717408778942859006795266584041413525739149829820214570736651093453630788436222481772867781125364478111029709792846817815027069314773443925133660561506834248903684839616484767629036371351430130205739684013818804884788193869965347795583621654799836339284154078219556310804377581820823173417087570678767684523754731143770886995659434160648145539688027035497826660445308820035991059692598619835841489922636512454982588356608076810180914221667251355812917533147006048219012306759158879458008538191321015417133741129564071710885082949740039567487571096379292942533965398100605868124332584283474493620796617258005073270386425173406908258923508989465604674575260753598696688923648167049590227222579943509742982796821237629960271034916574652602460317239561917144765660002100314007486174324016385116714006243565378777063137030044261613475908520834595596774740235817688171191108385238494308765204285022104654803984735684057465619220678311649403580371287061275690718895133537619691063250341368079127017413635484663788354053313405404047438799217346567959533342653936520213243922475450410432453254142314419911236145949693672063676974115543086948064130222449846737412771130008685053317155706685762836549014654631674942583566554767505613769484672935979041025949462887458536836511922237308193922275949128775944792461400989244743408082837105059699666687146191407615343609773861002984467565422452858452659840978887080692073047826400533553376141140370772933509057472961322200296835872931150036408906037131331611760560949610545437825128844031974580763552723301183627940708226776931523397920395268602143229745671965738818894150260308611975665856823957547614290499991509035781097862692038254539982660258006509621562968836674697954909971042687555159427612156299914058628044207157226683733313001517182585172889603100302858184382504418644980277158052931047334808105207060086673028979161425740592249624315765661415578507662672467880751143143711373664026471257117065186264405232737146150288807331922129078152075719970335140611414770312620208835009185373246762614586609195243680287130183857422331454191473420750320458188482201183456454607631870518593168753217531559597789655559224226084657583260086166020708300279778523267459013677309322254075362185491413241197159221887459504680783674615252414122502489373454159766785629559176496880244282217202225385022071237909846673655104948483990604018750842096033792738453751934496026235284285323937910193530247288724586082988054838322014054754790844221214235460656493968147702154147367800794421243641786180782933741659607706168602118732313767530962672914781367020854083867391374942688591316541744844484310455225048056700056891087906147284296697142819623209913922144346670777964044049219430886188226460580519884454331352003601827677955959660548000317587700478845136787975922506030618296657818466905822736157290515281678737157255442974739359970118680378859863386807704126576926859743681306972620160351312947695350893645091360711211503094170542583023038530021012142621722639587680040953713929969480512349978958913309790390755215396574695179333570620769365047798772170771892288975283871904776351061548651204900077789398548724720985910611831081856518285303964762324229740167800870180190759525319752914352434139405015643043595453432506616728002793934535962676087437645760950441376096249658626576018486522442846302990604858367785706461330553000298341943265966125164050458571721931120166488935537413844983688403884444294709245528707975123119317286102726052867104151608293476658981136870963641602892231871748813312899829499947535411682338962032903599062086821926573557676484828417870181750897905878116272520460818544076497973044429266512031297922591433120518559560837220461548732384408483040392804821386361580862261171682746343889086622997693323138753803435060041169772344460459696377084448667183586805072127248485763640105336266672985568091266532932747353907401327876388698605284450367503259243095281131497363679045584427266697646414569870238663434685456965542396121088180070982218178106404475815778877768098305915313839906066068222754638481565230049623244054123553926824387213642535025840157213984118610372805033388110780581460339956703569744150565132208300086534417631285917207647738486272010322165511460556689153081691772725972913593919447525285679500552758134204856318919797742596505129749237608118306432502160611785278014764119918469499617292973451182315394065135559904751172279807069348405506224443279406721897562051899639002107369137037819952203489400393584592683419965447191662071449413904748547630040819502391261689891265723211050912121556647836169055276254970779749046484888833220022224176735283123693244531165869614535889286414231224127007675267290029863215582698868141328899867774211116932539736846814081029423597579607029535087683970437474335037325751641038167097078265403180185026507121679412180611046630660354557534360975725387519122993106217381641631939664596725775780102463706418149265628409284264228440139337140175246593663042149277091018378871504854344509789848334086502896127845507957206949791860897667840893848994505808863512977000424985310398378931737978328042548524331666214575485354613227080649193067932756886485321693731188085416983047891609146821835072310036861295149413548940965099527789203878653204875229823512654853476381471274583351812098978880543910187159571996682862333732719001959945326443059712547050728294882219823954204883813470822547692130467907952585330782150523901733788596212159160233793416244537266758052808954900763355439067278160880308111585818334955038806495608397773108304064476807564494934942983126773130211630094978440194291274719923952795345841505425885222230866507220680769401239334720033433894396023974288829335859590963783896411710238280879578376517151233274498906468632497228021145716916255175432324159534720434079464635334899580956541846155780006882777306141299671038417376114768819657673335437916073562687160917912905628638179101092368757817454539429760065495913015311915833182386995661209695447999221997900431064895298626025024653682275215581917554369540296244157621687942307784450451887758723940406048682280751440210273362677657198073159364181801561708682871263250633258022428218992060530884726741594227621897850160108674754462298558099315410393924200558951887701137710288230382467096766006600051014567628602832434637974933553907858487854045768309131311551669225279474682552416309454496636393812463503851000203296307774635604749793087119654771822769541017266738357031808506647407540687000676199319893925774066647081696036351126757470703259422679020701355723178803664473352193083875710860784529303085835079559114370928002697351199559497976569692280903650880924267036305574230853065140735185444779405553714059843960951438801643174082095250822950507347617341502363273112745390722318451086770967203069902655854055775176000983611999107583779809568109141660532407612189561709595141242256357674443005482080944990517719176723330030935293245497673714291320874430712157880961527911492032794512750645665594813648648716368660889958538545225171272107043754843976811882433987686573815940483874251372765835657508865481867927582631682921832268747923082282490918104457849899648885025825775384846163153222161897204007780748544469261834853598629590075425752954101263901515169721361570228295244501634986685916106520485954041658314161741213396180467846758516774277079084333301512451226296084488570863942303567084507582392070608222234308251228528267379448285399453478339087290861755757215519545337463024398481533872242538638432941108079197947753634828052629028925231247772498256865476571830832969069615958285256955745782884127814137289722919905872370135667841799981972289120945099468061816607792684531988348052105467759335036597315746227893541267463482468921653564060039960309241968063914691349649573474398144983649621601568572986020451524595428522482950694169151787950912918002733345512094517700716126207906046825463966454974252274564960203589490902850396211944995983190432128876525579832200355597273353608310865427008999044244152869420810287071063974001662388548932916806829073699347115013797592469484389146527453835635075165680169652124494063287310298359896144616402234470800580139301195282903878618992377758066240130932546225356764260334549810994850636507704756137284140993759690187489655681714982758786301387415259198732086113900501285784996064664956968390134027705868478311899374777763460100470617528993787216197015706558810392455787078814834454870154191979919734365767168243402797039235977893314147977214705307918938002419139528922087445248367158745627590918406426602572184677496415386317574044800757570600656677601787278437537119862931407031124153378668993081225882610330605372753324727778464338718693813216867006046954938238986903631050594154385299192527402933406743269503090643906756418212234300762713173632680180706086170185844922379306474699455183163453149246877403301588516250221367316817723103903856180191857975849482209441589556763381290051341464956290187682791201282683713631761623662914338872344639260856765417337904931838422659982689423905881126071347054954842646665817480090030730217837691634311955725372311703940427540533089860223401353728662514771721254827025826353201097554136584645689288188287690677945634715405418566211624303199930971486568962938403038676270357125406857098024565157358000349826478111777628915893200925003027936824301849999507827795142811266780511236004630997376159444560319641321838156443925305642023375578076825705277966154653883976227809680769750753220007134678825988738121204642508362499112707610479056634119315035524874309403759835037459474767909656355306756600107200116220235498000342237975046270340734078370702685528664690071498580834023036011375265232357425563795754481280753872014372970676075086683108940488889497292537448238308772443934042745756722283033752615835253699105615608245656415442448143647742597765709202555015542722781414652415500683984390986267081310820069578744776223120568656400894467946602902931985605411952979853673167799061511984075743521919668115309542350785123224554257301965959158241275660970592884763298938418408121989884422786362012037231760540972934411834199847274946649024783521602615245126259999189249212316056163192743080028663538419680135956403386493104971205533890191019388396656787700828539729499808898636360776164229704687956034463772083334304135740552045428222384824069979538812418251484733422117176949411279063028831947522669201943421212038831800424002447876317499166280394461830005395298172890719318443006778318169753718760473438910777617426639748664156416774019003985872718627611669144940033899883893331310789203970716294199152548324987427103592807512176127029722747637572704520002015107636859013836054233655668878910303829689582207820320388071324397357755100070375164935196690899997675448122926770327444307548581368930030210445368747301275835169835282572273263909632504932676476092230446901960434563565930864769525911691229709996891359800952677541348278116651246175881472362613366264902606980528074979841815745058812163291941010059029792517479765349355112490579649739145615183261053996612718738252573874735656929145962176639286842559113742154186845542654117726800322151885114526025558014776499222382357691510161984990214228474134296982620274448502054383559039321030224475153316463978080424710820778403204586740348693506380133589959467021996344614552872645386299267974793357111437156533475075927200124036650853665658683156355049810665801860211079193967724366223512329511804991528038059702408820531615613999182195312027339369537612934139440649876256091309727012510101077819450580843977707462923548566544415133856855874791117853562393760452209179094306447518389085624038561573899544073679155559710938354257275208169866899583560837454128738523515130641995175492503514699582219258569717350315916171602142960488154688192937884016839907764011852139100956315396103318828707394401263275072701591405404494789032214038272911983242109323542929296899092732943179890666052126001354709411677208577543055933047578731302098650945887478287081975943430823663018315699495396651547567618147030603219968770678215597032927145146613220542639232532002228754494136962907493089054957846658999678747663109071127044871288959887502538887020964167357621671832215942920878964476130267683481420768085790517892851949830473221788967222114235655587792954055310360585144536650547298797235098033116972009130483394711243224565132394529111091915852180171997089259142119047684877724065491143806248266690119444229973014620121698467504935830754262542075853332120728145589755272737895836706167231188965797332463459318939471098044295865519264629460097708813579220044288362185444741785940247530193471969340826745657762947815785041323140823022388891379473612179770817653353340311970048566724821676089544213278546778632551662391267056122657385617988059508087261135063920962920225573676241698220908599679726625226005708608601422533412062112404354149967509227950848282516267214604629110064639832344868599642556361586518631736490120726005619421390298950280380599114056370850689933081599367745140408677906311980751576010169297956317331268243024595350933281381608733052883312150430938402133655970496742456048047657218073511212584939367302178311686227260997849973914291910647307160345533272311423597186399524194807131974063994280834479198370176677855073768835188043695853251048919981105087869905846224086183637544333123124481582328332199957790026154003767594672858414613053148222715234223332417640405976480849030142771159285315470178871355294591616826951220567382679257509725067256125852378192540930496074778005087745485040643928016528305523752040911189271073128580737502637287919518161356595318202933825010219407777659195282768444606879347597070809902174510910986577335426297736046679084413589573129700391947442692910131628621203212946533442082847483578054982810029377820432692936621424664104301649863169887410403635164965581655122315492089049564408921403495225469083800694287889545627100691442391654426217006262175085579721528620322918314425025710948224055302501547277137210388872775519502657230458641887627096458604435998042123952587753942056234249416710975600955356081778349585282547520341420553466896693517929830817667796645764456937012525383348212983814975689065962300571646815878645559523392367553945896874879370189790220574142999166138877054454236075418076430776578519208472652600354572920409415873084954784722364347851386983001496198628380063250716726724262924864288403385467062456548931641254097441292864766613322322085632136631484159105350491020984160830012051942677234660046614057861966179791420932146028429265903030727302814935686423558286480396563351020304713806263645322733013678865007686127153080867393100923922332016284853931940322283282616113084414250016371904265023107860063406039728816215517856713158681295858704644669669075653970349423215656804385578960039366895720341189566080836397464935819648684377096403018151153402431828990609039950629297680557778252221427821965752513718195783875666596550686014368391492765618371943635054564495051268882437385138534301544782499352394993930773300683205929575614481602441734603010761111872492628484947422071149499633224512539688629096041478547425606681055492554121840356686209556027003456591104948634920574990219254357525912104284947531649577193747663144691219894027063332172964887291543830566330276276889179843149634125464641001492831768305795222256025058347292465229433188405911598369233690782909435979837238775885261649084241347568891531918575490960140867093431749441052675620768011160481388168431817473919939633040439222638807240144959337342726570514359879192049680117423812181405497700585536162128814826725908418545208605458965330370723508162130875651390766153161229784501750403883075335958295313012434475026753361243625923257022062595779962420909902628122335039479211129986433867561568266885652407885927825512994528877043748206212928755201981906029346063220168449091070809845087168303975517187855890810322601660970262484949795254477373429236063119936419203238937156480932566661469917002783189335550485350230202373877576684708743733199384504463785281929663843295394719627777564256591937127909666491184764026668282274273959843574964220112719816328384225233095805029428831449233832948309201997767885857003949656538589169821031889109639694082019654434206211758995336456646819837253530624282891553969711817081575776630167325480163444805599194844093846202681160453574244462730283210931106887784386581560685340548659931081433908248819156640654002618212064240384385666560544363031995568458902936808507661062895456011662216559938857205689778525240802636321466200610747596940731781928677614691829709015463210874237911339603438201766516472739018754779933013923394606292599107376410428066615990790790506535145221443990652319586194287740277842330714183404069720860903403994365683618309011150044534169663859191509012937032560137794424059333870005922851239602864941707479656920653042284628419925545540250585830380771986468348313263256781220151578881707629473433396942342898113230567192878461927264320597912005633674724578941943321402812133447699589382499411515470945629715286168735658001832753502057020305665192924281676444462017161974220081307833510758890670525577845962767917536729582273277298035415030580881328096531706909788347611524408270176277207571692115911154140485791881152729150979928661999983185395477141301992718931133917371142909968627448068863803587111684592635339486519618353096679735220676478724259518572745583852336337988650790424325668446430948921233256344294776191246799728315731283113384350651282349174892863470229320489505288877908585464434331430284069770275939764485358584127106734354524301596816627073922857925567284417885713161118888064248565078528388398914998950914533136436705295267005205693750967376060800514599668908420570233722712879074089483087082714837092162714230753497322116097853919563939583835075374655696705367072541122867933669744053138807608476321286927785974703383001039723689974239369722959808518347015403517789689649031489934447306775088702587477022121432597270741186840853994339500880685174734624192187494576341240986053410517318979252027464172152378560968288535154653469595389545108130089757599661754105521501404151845910761355726556215243744584590844382593783662991690814917171070340983627812241547074134495223930196667204650800270161301006527501410730116110004348030584262740270046951154809803388429224635720661866048032658959274636254566019274491066400905102974029771817802084810277963781154377628511507065651384588068442577117902961157613144209689233228294419624201730657521724475690266778399263272378938935336630436519834045334778350824004227608277457662987330029445521101748044821916431161331898423195711917142609404565151556688584764388986382449849891127235931309304045822541559581820482554575630506883196097200695235265556362381456055977526732425308183423869458557409539054941337044375402538745850225716717152314532511128373864603656713482847683349674444501475649290683436477355963498754596160705672710772399933348272805287225731595534684050952346547897974758939299347387386713266606336390344223248514069229756189437345549951000720598531629177070160089907674407320291601658407034153183729300377290573901736061623515399694592931539909054888841483430792225243232302844851053460833748440133935364047588266588924360247323697783712059676143126433724304657298971124238266363234502523662828468477249293187476960924545550757191716213997736522644901698593289926902956088918870483805008613538089147805090523370969990667617298178086611896240307341848906559276392552601342785172215790743199171126551501728208472410223586377320873598604172757164649423567136572287031139037107025899396274288258821496582210048362482771157290364282058647688489742163315112607003772619167582879005337383246064809735976231473685923014792713777077973251388161981319478198527962000929347812620965007116222437914647667886603080548112352013046963180633706438861210902504826285068649620769622548585018956010824906903354007256984736509834538332314936885860379631720126805739032604489416353249082765259126474668841318762945878917931819384844631875059316469554313567841410374644469804623868109117871195344504728269404431514349458561921021604549435710393307148295922667086935898798182139003712359584371557674021373448210856268974094322468441261018657720178384757220930210542692824293524593976257242066212625748655242480595569934217843180775802204843497881044043679655822335792878430132220010146472842233339039310500246528580062856079362339769783843303778366519072514853694613733285551209419475824886707799897010431418040650627563647707410246272585193212890658391882813407995583967892783617676485073156653652961348820931154913387604862177101390024538315156711653547311055304579134988703808583778139606461491523589699838557785110598854987991624605949769943861623461330868673075512136652792356052890649054236585547142422099550464774178921515546122996930179427079357821980266736707766922801192414499553788012291721108671629586833025185028782773836501773170722175872261217991763995988510504351042942489621923118673528053847852294356230287596478487235025285139517356507205902375433517051395706303924203315343372447993509673247248051274997901785240701208934755369964474660903499992992723039947828343208649027141095059527115118764146003030069187124953800281605147114409747644439751390202847274695069034817338059756764393500277434797541097770604563647672020009228700574451471367908122042321938035669298367468859556434773031552404999379636562404707239110138581274788777268991821498378775445217081184047740887929550177384456350639740772585162324891212459022965494155584042640451243668492022713786651081697667808047227316063368553621314611504578754131143706862906683245103354053075946279175904749063878787491460886360032795723167435678032770706158378885339431004697071252158324049245219033885551781914480378656507942312204926977660335250783098524013451210375755814367663132099492286418532277320746305132176752136874815388157556756945574736833612762429415726489985806104994014389230995700972299526207783768209426275365112518206549848017508400413400360367807605641056934641019233056047799497619373363797487563145381407471952401676131557289286793874829355234196028520866077774076098821634506225936622020753154665875702871476961964049897572061249833873364409607826562198973349006061005140782728501519874340674565618177240971178397311014010583350891153873707718638715731565550709071954215281171083214520805363322333975467452131510525231434016658361229481481895016894778058849187845217833816244471879849025497133927902908670595613336865313762074188717023607881484253416829861580337002895395107982948199873114478450914645359863323395410632057469704189725936211077069428149398429916989170096893450429756669538378549620437450771636301610127331280419315851257263372985417953866919146046542834392950108892736043881471711460225499748606944318414824280068850702228350313189008247546104795651096452061852711776316245561672665344136133052151841895536096270243059751671359608012263468256525353051024203310049982820110232687277645997043979600567695854137004758829949490515796455390129110368932857579110248272996648656733367130201134180354817025239728545624802675407181445774600257916572419634374764162253197477476607955268877012042111967078274989464761869758629982655042838601418173184965150249577516673131787689888570232776302691012577766908448443358294506463377714059145599968744577341880179388938782961175621234695150941088475883824703887354329642556956536947257783981891030051243988262878550006051145232753964133129641020803560344583590491877868433805272602728850029917982631282480009367448659664027111519104579837329873495179674614958914917921890959120916627368791137279231031286853284255336782829258591303074760285642122437423195724851377052483650528473281808386600797424811682959986307887530505748149885486382491444864180376204262749665218884152502727164086863921359578309492028481268689175160233582596318945096418094475450295558283251947015598543305213236746016581735274839327549395269929766928649366752430926986573678117230655167717274926962464085968160603664394212575938711688817045061290601053592451180049552566504308939167938367357700130436684396076670921908366384267004127982506877258809451151982788131432935284216728941715566176739344712551715612099799373534380983474304166745358587346369132443947008072146589551192264395324918731063712861999453476463666412526081236778366023748691929182399772532245918118902740310847138361741804461398586675176711846332783089875493210653079956333085462880222624915566973274243754052383204107047849060588863369686868763298862046363837314454464123091669082949277036777056174788863486068837656555230452730478949036062697332771610250230011901957350377490939208051119644577195622397720044275777248482708778549635529417850689543842616772935982732258961791262641412473990609501512513021107018889384994144596040173738325487173702595417524031247870880624741857102307596801159528156550621191542038773973018962550309290677259920297368050579244924375822253063731845979739911830697282178108630864862446229928457520439471493779818416155554024011516217280295434126379794080670122883020567149748050374217782099511687298387001404557228549103814495110130559263129426007976853352444374695816751291119202675926379730967857843538252969785268862302342810932874638798541644151962649928453556214663135820617709914202269869956943942967449222454265600884042169865063023336895194147915564428283417336001091034222649866857470473523288408987432932796561394988699096818167426001667145785414339857556843826261447596608839531543944427857400748544173943435493408954585060742114585451442108796744458061889548276426463646934087873136582445335109709255596490259963998609671809813670703227774490778982589597894929460566236842282176994161920644256698063337715026971118114112703915179030845097297200544224279723303276973120052259003415830614797006893377374320141745609651400720040653933611365407015263100622361820971702036836586734016648651696215774144441102009782074274441133306464267683849020036159669664534519691976777020597302201152748424578740417852386179106663621936937177848912848190406239615631697244447519931690702039978949425356674534519044371948732273198697849943809531229127042099788636629668774845713947792624592368429083881891639975298834494969198262163175908221492030036029053114575931081711151437570418393996088031503770054095477729277127002692157485633147744649382033994487783950059374963073519032536208085988266986900450514516619774889385317539961650449263839106764344930782879522420549407634880721965841726196705598611528482809706013080700790954310326845878037118640593169144152824979941591363718848835967453868086145177935033761249298051970332581580415152059300144066023510067994540726521863082008144563037264219553876928482851812747009271769145802481756963036493517238216701575350011470531946520915729521731711366904257838449443210273723754610348761716217643984128352289526385291927825874053807511464495951714987778173472405197070335763785510857621196358619797740154966383572401576335046644435787641782548220071679780627345533847237809217618821491441189680039591629800173611856807385071818889458388169133472196161338554317368759707901819691921393979728171895448829153303566685784436300368902626376930460561550500339679734666674889079599523234606458518705399353712299763535354814465016730311167444215008010838084897436876242540213777582247453125215640249410756765702294699317004795120590093888066802983332195651687678461080493518872223306730091143138134779515687557053699920950922439108744235985553512336028888951918045744990971708287129719943830176790392525704423589242109051491234514844018400670397418734404549951689442148020383658036364605087940495926848673751459630594574529931234057199637681939783588944414238139266000375357466151638031807670311014537976507427587938761247058377133120773332214279597492047632479657473090373483094122019725843391996791723303966748919977145761986110199314989614057976538546726735432342689049630122836022794337554034314740463371209927408499301730116335278930736877601437873564392802420358185524892240386192055621951182242177800363762045773621243223224131058890019065120408366942491514207242085396285031775612403483090604709358878564863757114021964679756233792547587008550883534295719725229307066100951844336084184298714218927955677994629234462310155938696635809803905908725430282209992833108008918915410427852411566019942849960494172281371366188809457581584220033000980228040773431372522942345659112874444082825155369105381124761819459414559970656868676796079905478317344218700040577008457353328021330183147608410604006181040102856852491908835862804772682465820286998745374389527956719056967291116489582431893736176763734581085314581209002135258285730502252463808922310878595193070895641571066147866081984975377201530556500191826533388856773891823051825741182334576622851968584287317340296021759149974444249508483870744378011328668274676434596820952349474216109348502945291144423782950185257389774663634839756003266072304827092116586554755104718888570440953486667290633862989489626908928137744454443943618827280199647073487671216253861024062323226919820013196812980379166695665057662392915510188839067198910750444957921084546319421426448135897170283097254125554955553719054042288430986186369570913657663597167952387175814305077962689631152519751924269198741975818864267707977736524516749529643861481465438297975314266275801114824602178688028050046964067455600105714238246445277624281352042498587144473831293976754577743991328084625811245873152156530726742767845674285495061374286347181354686666907670184962778241956606962746381678074854420788887187465870578809287397655630403357482260853435894067679238489914842759307879772128497445760791469573544087573212887428392685650002259456209490161113737717160234421141389755952730459406050536767434736061160979596158581426655791686780575646380597597420146424992390736326014484758008559368109055394885436375653678166273263318188053409683673475268148222061047992544394182346360774829499159401589011816726942020457416830706045029399448768551281561073738795375717935511162411261192216054462033835376436868617814246329877216773189461217651223084854403317860470865309474979294726764645196511695763415930649620892490316488021875487177187203212112885129766438814514857904832211327784026490441761440119158886664847166984039288030021162263293623442723595817817790237393349151698550333721383561373167767597313263161292061292615143319174760169554785714671363137691210458083369499606233963562557405931538263505811632762781066223101425334894614432583603873726806052895877280135326860067928399056377153739927897472628778774064476773351127958919440671502773388236102029202815266453660288500967012528052340514733070343592035979464184084663375669817338547534020696574683691855308896187008804600608388501527336433383129916353697572689113629910279246396711440314943833499979221588246857931464055255611475655835458509271525807154025169910991598261943028136065479896976017603704616322270591503044018381371930235534561079987080409920518856481164952472859957788047476110573925943627677946521040560524139947371566372961445109952838912437069901105518346716781999489631515745580389138021392619243497869987394128563144093494328671374669434509191250027332168222298129541230487161884208552274667834420717049777762666685985897975732090464484696243555177493891729573773337688105787093526327397192732881416269285458922136715529205592869774364902786230911714165491437349333743852384135941607779513372812015154679369988014866716021381229050784181677651712123112799533210830642605188206221455727957077754133469092514890271246337428549464847360972705892161884056095971915477541979782387734821103939683737289924051255144752939493204516383716572875010949030359629855995584736613298005915995200775233056096478750505132050617274212088314037497561443988082282718787091077405923985259161839782971552287328790095205855443915392456427148051235103209939618092619304031235472755478589604567728963398888094438986764641162547608194840138161102858630082191541812315745829642106987104606655082010336264702696844688344677647643847568861312752262624429863998193837115250852632186391338476613109213308823116400496586529505033283047129418363672709612303632359599585281902760294249230505269103928890233841119314849076190243607502712619573361680112918883925927521290932174825618630811734165917854532515022489323977238719448012133778309899598946432715531988485637782212779821902778401334869384332729528442315718750417796266374734662081378975119611148837903403741093441546337736333086142646083281654823615199749442874498951160983584637398571567075220220741553674076180284732321044776258442863443418059552582811477331836363511586119455125725109373122537432771195706890388965480620171240251851843917898290276825236689170224995943329422750249344285639510743034539602567850623352603192061354904566749425926550316369505100028919328276078944435131758803470737803604115726487707408978800702117568035110527785772622118206947903613053654428729491426438200424367773808341991277990590972652595738215217473210094989404003882248094089061229018032857867543772664871316546683877638096459721353781559614771522907634470828527212870900709615678570306923482805259735303075867987030925819278702210789546933735579416918679263435025992604094375341739596778181280277390881591250500339354178668602547961935668091403481026617772425383255038440733801474175122013536723784914750820053536828877121890392034335106747623877354794123696760514490149150716267629040031335048238705718174898442847114788152876745807753724197194637301613918153958643016675428492184654446449090172839784473424062479275953913878778122525348677930764632431365746246171365291256216918413473996358641078373219020659203350026976198168396719418173986050982382415611149567430374730625266498403726452188585182961226989541451049698196172730901197801985467074868340379214780052782983666232852289835127640829514970439541290340293691007449373984878002190746772473443244152343307038580051299819029322909239958523117778521378020992524187525326468355452630711113916782535588642508490356493073915955560986276242376715071760193032975694735995194545332328827210260492764978423738496186821338965441926546162105089492262585546048199850822194535733561311770364351906282139140021569516335887396348840811563011465421291690390700984449173304205133559667182629261883635964880852088827558543817126233838246899895493138364987231798517711557145641313205091482787752366124850914263673261836207714637518994012145612432380310587754963750666592127440005738692462992270917239153296031778043493178174449665895509239056402356605058272811582352727859241494177949346277565236537150311313818893616192937448167315706532543595425123959308651601147279422298939623555971566213316826359099149783463285389309512240783827977284773010388265779639290955424151651522639977087638990368049220951008787751630424520597646327287462802753687548127455311447841383141878240888109460065351210521482231642484537322921448702165710160669387430661660977171182555549674914920568687485551401244205448617323049059155827655604445167602625076460259677498756328271683867023214022379828183182660820223371652077631730917321141093069038406224831434582880992494366534314497193120931040271099724956737897727492224317967771605729899905938939034351192014100052386873205080253603927934237436111371358361897531841822505435048203829511168104235267345830316891662278008263853134414128553930703467444473614604117750551732365503717673424011111136437934570631275411308256394996508267716695682307515452751731858773604776101721044558525858058614615737968395017970008290683759627375836367430174575715407697290292309083674577296001500779548372233667327933169102874618749668165852692056019242038229154528542967897508299397932356960037121733486385610716378459256064203168613302871876575292448371062156769203561593207198684936462125606464944755383829861094802722231282011563981810011862792840378913855502188563263043075128963654984344415921892524249450564740043977599086105697139329571562478444851081925365886692803312754455170472769138479952314138756177310805059018390909565602767337370551042534125919665414408664157771110418891201093595596302657939492898249897569226259341858559588493432581512292970389341398702128431456082848400260565936201573987933753970311332069155603653711768899920053036312417694282198259806691436747394226232298828565703978018943481473379147471328590319196430420731152590260844156428367147617490832100244093026143831853569972082377146204485223718904009776560780634712198649512827428729044543850945687731942166237671566779027984862013617172060115343404528769146209607355079919817182396908352882580357123286623346786462386624923868407135963389713790150291693633748575398130774685578829462594790585289292656721341959023883755613731304711741950893727119270280613438111490488590289305094967223808550199908123649761819077351193978898531812085487459247388782595996516550483028275602607223619606160113262969620104948802891573830873647826302914074144339013813788240423546260351081899689880608542166587808780702982755920387639476798990698861554395640123850896070174060211943037946760546555536657833961715691034994739665139512892548962447373559185860126421318537598203383772545413938573580438798529702138625741255699771820159639073932805241535686813684009949169406651093125894540098904895034819051818753453785744845402688283804612579638281739320096659057140667282643273184923373557620101212613705330680297706563074123028801974013635874673987469154598235547677927068604418488906161801110336133943829614934176521304658206304595515288669361424233782434469794473475204327364326256133446371579188286619927968581590904828069079175900496506064540750854706354650853453151519699416454727620011392578586257227254119072782707668328183230334492088217600691592785554062277812671831205004113044617864350231096283240363349938979118532240478415444013175831271322887391047179957724753953274048498466374995730798460243301604210089487157569080514701032983255279418569090369649258798727436237110058780986336822664831385378149736584811632089055926267394180320852485301195740422935221454079424331721872037668633815155277144811394379589299310776415824492783517088682572081533670703342118190462766482544659831091266410843006324494589517438468065733522877554901912025434960957324941191574218563299342221841550670643579486069526383265346137645789398529205489682771151502703896902988836892198736827853899954322293160081729625007675953529254539205513543366814024544009416210501777350941671553491745720470580591067263133602891879409530892254899164007041350405644782173582217158668625337003218963754170222366745857778465565427610293604949659719651473700632887654699444892037114127774930176324878232795084910457457011865676585165793274924222858919283750647809011753896112806803558733522266581975124787656260418487896034516604087154223814174740749398409152108544463753692696166192231777974209473077043651004388946149500250742187698703946721549707554089329230506716275084191944459091681721602730329007665303529501974261627568519592237673892831986941728634983247713727917632349884257187080598475083761107790853000319829797576694307119302810707417137517614117328714981529508870613693783835316041441006333586420191986617316656160918910834766984693456667172522259585026512329216285881685629360515458779436872785819008867164889951456490392043100202659376888709600353336844510846712587945161252970967811056005327165826071481895580441194544436810011216862256907069914678823156702890845204156913035034182160533635843982107332454470418404176443231849582635894134777483519981692702139132384853898917137794751929394005551302525669947147361859389270859478106808954268992217663180953015607345687770274741119013136913029304566678566853863820380834095186763346761069547744066285604739493100296074421830837330916992109717136435309926209256718702215525917225730975380851049742469599211217588103161193431757482756481925499414318403286481633314337558998773706761207036789446219842865287678052270775905649697118618650077252515962031509063073173931979525821151647768110543855655152201641420279438053202040624985621754868357441061534595335406236865174139880195346508172721755946186302133988607332861956823830185848239023162268700988316146460258781152352330697719025241408081783997872731534465944522218874142954793787765146324463734373329244158381526278329882432299106000006652044451891905926877343727828940332917796367262072593030068165586315557743908424264240098568866383601811570971517818331177672389536238346005686670923212483880311275644506883351905241487531622731397025589636442322885354311491948288151126523702849455467078587934617391240433549396887167779573786700015233305311406645496231154028143500299176897353180129101993426687849228500131934274572216215303863974777854143522540029130129100675678736029087377298463490086662431433699633777142698397765699463690169592085810620276505956037824065849904887280995800756901439993030636858894971734215411569571367717993587156781172799758378356125012695211409967535137481116258009227670419534062511427678878163727490079466214323714985292231237060852614634040970451110926241453745481792983668887337587870873861478069517278397269325955352068600536845345085689166702494736872236694494980170595407888724639360502380964309698337689386904006445334666298553509317952169743742138778588642802617466128445400069645134790252750280586503682517507528092786705018489472162877255262091700186307433686244674382256032457255959928992892384503763785247534329544169257855819466403718554700827740143358103134127691693949147878731274489075296125345535281404260364147352845999552116442871119724748334291930698842996831750017078593216418733936352150517143889041665332178516528786743785890579887787376020223599224896590073429574480513063342263328138311228156589159265935527033971072235135640252007984281658744054842611245408278896394843271876556391293980751957433624102926513278940748513722622119589401021893932345625875283631056745702357745794270746945681442481769519541187247846069664203897719727318787192217753828967759620459893832120177946068259416672393484468973680649861212293197471354064554618488290541208800155023786998660349907185524159119030340916300661456931673454467606193090912666085257460947951219234565059025977886698267621758046105392963133810392011096154108136695797870307974027964426023385235513686339960539930690366390652299098318704048055731548532417959898419181891630091639436310904851817561288148933586018407143749703252979251599354945127380648483481917756552428067689979866442600423338831348422022914298397785456276754275053254575415629647723658480721261863091671137880644881784384917181444578727759408099557916238017835197355078532009123085002191038412525908646785908628777230240064784881411591945087850345494935128315948395896828327771889542298877757715814670439370215777802200732049915319540854288157239589423706257140544999975093143201355478393065651132694523195512185548823319036721951830914616558686638447727796535993665651042652613174405105597360169239779339882668990252174137505211807949443288472998238987406669236915104205777989053031532039569954594565409138488853600151391745722205403400862312245101567549102965172444549200219483288156543261116443103882942427448145202449514773287333413689969515749600071108104877443055135057203485702611767219409574482848206319681196636346531495117256851435510945007486993908949501370906694188276923745046889134041620295026445483487430585919988200070892927761779882686398884909102510948891155911669916278864029912185600665689798682552623077997805975056339338012932905069157341110749415688898885662323933967742850336227688632011224242573167899384991379090652595438453434398870115110017512492396607051375650303722973355817293281331268113852759776500158776823020271150445900231789713865714281517263238584576800639579624222415023108535107840544914456581640878824226537068743400715791863048640161021380926344761039056181146281669529247452569581694079594639747179896504948944573660161324664000846315582424004105501420656820776354016324439126989590375456137697147913180168910536962973481852204320336180243851864057938286850275460839735564605400463888121790972995627746578034676828287057975950774663844423971627888530877886599006960710210422152069676106447593116519697081253962714427123262311073284242592795406970280098973844879198426338764974592461722625355326266392098728258922924342054903426766147790306711029427644190434450201093251051327956064002478268677814812990349130164949497083900138619108568120949626220165092665313423729412951413636434519634603506997525109172910359602416487871788050317416549025270714633496694565594527543438426189392499569794942896422003278729268854953420678274832409152458012710306124458294640413746923492992535467599847822417609375606554576078208085987638421511889315347284650349028999605638796892933003451333691692027311310979879554961115578932245209893706120462671067816105734444019963258485222456662329717690726863209265810032952384823452150647100597950365412404948895894429199979184120709570716172031518020559578061237652942445530880820994525807872806310304534395455989938267320323334245953849078552269974418856160443502410969974603930277656801304820380759048308221130178366804763692173349174410466583124077923899931233592804351605330083186645438551798510532829698319279364015955679203676314633190105697544588000955347955381753771266507371164374849687295605219749365831493815003157458647539548610095567049068536768465724994387802267152722586725965114719159817410048192847814361923418082360928503294369869745181198312023002509034056534683138203026903268056655895529707563093222685985118326513519666444116994361675024129783616174066119704137885753616113425732750044267700120607086717580628807516271642182954539791112648880289857414439565467171796796528982702024955117677655057839890281059666489603795709771266332937239938963869303936441495994877902743221422901901711757437460157272641544465645910945584194430910214956244913157022461744159119976324493114364256005776347099484242777668567898708389920037335206213189011671246216366103931246446416192431123046171406526690279154664012781554533441679055227851656600348932849134497754328435373576848828587401456655046866522313110854989948706523287168312709437168980038406867187964032468911580875960155637051828088549257080764051238364709970576340357015474792970021125529613319140013393073178560176915381654762265901681982242121738412534530341247788874562058741327357552771527884834135357797825509210310787355654999282035937297239421862936738140158945186189124075430197521570584622789122629492583324688315955355571343992623873436065768984270405737862978223807210499046157890072087646822880441477658296859547674213656478475347876427478364652360495475654360946486186019577248292560412256430075875801558961521592523489689715305031895762505804015669911798762689126236122508578336926954285495855883603336094512463028604925457974766939636789478645967653908131138393256097791686582597934776327159754460424867365090879303352487538045679628353109369004595658444525960813057920227726979159649499769092011400427583958193737403591794347085624067839902437223255011782777418338700051029848198148102460383285094196352526226328331560200212184804432434803844804757138282072620703585735068243901247476674894354340039399905350923321415593346756966404649704933303567712502275249908572082676417685374677832528972382183261857108509475819441707104590167523462967498821412712791276648830720816616903824129233809295635184476978370623382395841921978743133972853919925074338503792158367161691493804645207021146858463790797299192750146972954725968280733059415672536224694293334099793910289640724942043909263030254473825838240562076275140560330873650093238528775470075715764376587768993496486610240353996693425917519955725043933006300103696587348048786166037937041609348696388705879336849823368812432075343481588446007427762306167281675564472032134535585119616131413857553014266697816017956137410103966873995471154690363998715983898570271733405052748156737033207898244435273046868972065822720642527970422841004125768010566418008271157311764879129417391288895485207025960096535867905806103195767931817332587489464862843476437459342856434288060839322925316065566836536168351252707990735373643398025612517514797414657022795623113848753283954160556259066356733507967114160114134288409713047313298285630638007325341440364246114929230878506731673624959609639909105472293899693070135402942071853610243524865961640255598009244484062971286027732023199189594662423495011020550286104927213894910891708039409393776521548847147697888001578387306147667869464887453060260288663947245189800254759958708956876586933880342017295364759684451517816634525361550930555574640611763288929495419739326448921795341914483571443551261859228208239613024224381275658619556602965031538790459953896769986867482438186294889851371078130170082943778667958076548190414413643854269850098803107316587708881324241301889769344001442252481416362319267391049749820991419613898940422760016502737825954834452673036950473850148855406146249486427260885122558455133452398779178165527644558142073505711078736412102401557525996437443678026247227068590205745112608401286676529608459514112914513683457971356487402559024089543191677465615190763608217370056810353703776825356557304537237316391261392618571064511453442616795076170888211955946767254093671426728620290624437815173280239873569649476152993574005876872499523301448004328175973584735899006992921711817993751869852279574864283936062591985839549860771550041578008876595008958696866427150963888719855476418556003239411924093500231116001815979612417696140096590840097608584377558920119409361491668485690498885083624452496361942312827992738829149345401666845957887106533711589646713729676402633119418456223890961078979248231555414028479371235648970188142164719744242161561699649685489847973034938624060512504960810954893674724596322900937732402541205091688968147140050702848986148615145206689313449567745713962630502319618754599065804915153030118572918255717381370760745074556688985185431718282249576462856014152271300617122634636540159373327020287589115221683482309131808089484531160798035524769890347435167785269742208094291275818012733109702513216901364874567137570062911102426724342491609568710210717022225576590087358362797280611824645365743651337810965529435846082331239663319559250502455810737536727079852562142295336991470446848014274420242364591806313981910802862263592033461481946817706655187446819904438963932447155275166798466814385822446692236905870555724003682519638551932618365782236656540309769073895448552416661375012241016447130792200922562082914174685805257999628276174907203592696567620184589707726723821880562571138531045087597886587008224394565745615772243499350462099062289683766346273402827131196427458910418253868584438131257903047517173164478565840697377213010216295001907476025976908431703436956324322457339172590009001091417574970442776131828347053389037435067217708267302947841688957849297877575885933000198101388182530376865977150632714444383939736920597066588260789763776794352845550574010448194690511895399746495521742645791518100429015592041647322054377798203136533181737020370685632818490791341139009515300763167659190207625516759543388691800402211045880337618716382768978817158742425916491137747186435576395917821420414137841169395686723596596895247048281211602061576831517443120688175229465804704501111608783709938082909910329089302133228718198603328896434594233410467512573614863295195166522926764683446816034779558516761066664203941993228999535973960960179368107465998110830189357460126460905697572188587367591035476481201831225682128208614516195262919284959825101602616153893040338513120849615121128402423017034989452200584062414657370947159592617934939899477074943674703612530417807558019370833764078028112839162725157235917809473321433063785400862766890288907389285834553371446552496624252261562103605178749408665964646795981916690889240629857192322651626710424877586493641944508887454761421645928511428387595042767788058617200878022692446287019446446531447303004430908219921206634475389564371508302014838000430747677683452678225084814386660383865755134898353819293501696234408579645581728442716906048840028253286849960656448223282378401065247100995833438826926908231233166937245779900172329595727930454467776209205766401220002818531529451487607421843351366657666468508348861029923660122771567376641375561856251748635704203285095622369359843698696788711437047990307475136909829419928913111319968245522052091521849438577711303455967526749506144616672832127780420968315033750819653703550251912961619173144138019289526278215293103754179447620919350356024442729842697696683467062961679288216529398793585654534130427531209569008069407369209474781053922476557786977951385746678327631995304677759633944217148562205648831524130087713087460573156269769147206450341442413268959082464214506214492278954751937741678801154348408849894650247500273605042106129611348028161565991456223035629628917553371603066460815989706457470420050186627833316462469474674257330135254723996185677593718052033269526972734787672156047479615150243489172052624391995877487575788454130480720324531019169982835677425325287863079245417680981394438445708067675036430641480969631753428396344073606173772560312750398821747810454282283692552745523959067470860500897806454511231469474096249017146908080098536268181438974246913333789019128659326173613810347873183773114331451446396037125934149776733064889325620891167067012133428304702082867236333790594593694833190728126484136054545404772263885151839979572204038733839435710137705030978289775907027591681897572307442163574898866667630489537449287615072916584244376121126692441579565192273568914311776306130783072146525049116109160230922617044347164010448338737821587260167347046345714013676447604842892550702719538071424518205887530081362228070827806276947613673295677412329982739019327409247546083370004595242689689566622438013094549714431125229247069542846796780318292745606793188322019868086278245099883934932242369584225781206005785957869362633009547341000996363180149561770867721464121591603765488089578935245234555086217676683989272316669055059044170621742248240597395110921988909649624044087386952740373383345398775206999576744099791686865015402228617498514333608841680664386770209927738978018342845711886480303724645131491680384707549797197775872039392132314291798758589869670138567044125731852651807961370522935159964624245972052839117312856521223490199029529152462626298390484549240990216255282039975515518288141043922195828228725004380458421936583283884324505866276207036310078938790355136081842873122106220355479039593214147317137407939221918695359441640387694662310604257174961920728739342277787288364675365039324176405327804190163722943725001277973394017491155671304002804459320568360020011278208322042862398699124210236256484749207064045511811510645307791862537406893995186760582894968971535942574939748508037525312589980095574854290156705256030848466309025808498796497639567154857371378904152789800143947871253441115264968516492223002218694600799368810866584811071587372397210969135173379569028070643405249315387044316479059380039064948926058456964231316549382468574317167414408640842481359787659569727246818477623492770285699512504590633406038690372311452721121744279378380397500565440528568004595720976400349821147153422769401675637406633322899688286959630091619308789344978039435234791023635085684036071502497320007082239655891663598899368986736325868925493906791254642940938401261822670508043914693211808669410035058444608883625684401793346030768293146537691757055239468153791276717604535070079340280621041013302278293810436376919928075091911701953694198914017352854325019506326005403561327421789493035161180408559519674704726683696166175004859340966240475933340788893382021960213727369138847733534155161717674608999033275057145296188680044202439595182091782203109628431803877209958351477718165644316286810318543375517097802258597647848745151352613999593233750195670423388824797829387611312604853396348048667633396023969876528490706994084537648855701532501406583780489403416243135164479191225586398877057574194958149670413034471055504225051245871759464399304921901356495804818199255800514373797602601314246751683449107585588894929477410356741157082146132214737433796316152623717294484658513173186233087157501003457077220208800760114378825057464684679669902960656543196949562259952788576442439589556258460961269539844297728813197894832580621784154281255775191269392783355209109990940465372287192781000505561722580635711663709037635940644963105672152567240599040973860621037710875336722620165244223532734717890561373453848831543640587132830254759601163309002903510220120116672833514003881729668885391691850292334003513503845347843994870212261060507157200930273844997466640852838080486879583071844930898241271965631783624470466271386565535209006285163491384100699202954776673530851768459683715930111536560898900007140296510079119957427021939052491214734197697345146479315663535215386991866046107312039839102623834068558928896024856837337728428178535372404684348833220850304902565063545991447201415787483393648190252797043254769991149555225066396456180293524671398680470923886400892390275843280155093647631920495416355451715655045562950218788858667739025003544833427558951375827312773714324580396957640883324672757239423355583796186853763176441230282888366638439021881773712041287682996586856865322161111139172070870093507670907028650411213460525922133190800167917823174251883450465731336652318968585440509638515270677136858455761944013782229221795563124879161410403828411720536277453075007104024196501558190244758673946143098735564108064623114230998966248139347122823450663965893302944489881877908737265091421926048270071610261553574711083293098082576281070737104429334857902964502058115269311881112121713494970662815759018477068971253730040911475072169535884813643114992514748760002282757799925798755068584158519399460695325753140756153560105297249279510591968681690357164419051604449616533214881309595098512796548441126791792618500165436613942781140402147846950739172307490239501118603508752011918062254286592900073641002851286968398294757179480599648995480405177768696807342468751381139821582392001004208069366054956814282335042271582937243595575359936228302975116995124067824229145611454116767739845851507687938034429118005906522240857463393868857912809582815226406213137381443649169981082273641827423507406696761270322146158409796823970245343372036131281270000295682634656048945176092285422109451659379474269585663760439705846303224452490902947207226747673737770048525593479296649139886825565051051332718259003133667694724875406341860103069827008895627647558647975900395849199861460791090191599735505600608627573474681555499020188696165331878614631052960622846019723613609284474974635632743912568434294211299562633418643123326770159422007464322922698732776113091855948828504144924869888563329552526381197026130386499134914936566041538610679935996941194427284846759534764982560821240309390652868689831144926562154001841970890020413148896812459037195038346963303041696681158085616371767495625874554985441299919857830103524385718252648339544204838393393525672935362826751337667748722987065439145539493787055018595166276812046816692075521245195372048658232098888058425303605662239347530863950491478819858811501281094213389484043272369942415051853326935055491659778020531007718261168474833117946673916332622208718980853925931515032730998131830325421040947039827410642422292229888173582354686096151999856898611325063713118481167737861859681330318293422193843835371394752849620688471792619799734583359532623867857801632107545629420628522603946764881000815509596193757228875792406160655280673715049963721704163980509057952294050115668193417967736737891874611176216516237271591050109803726176634338030511840844267787067646724575401459490129164502501216801093004942144512545805434719973056344026572128837724507220231481457967169540638362230275433169319369953715810736917484087922147172992547763588190793956209599485111921751003658417892071541783921437506049773138545644519132780684225286351835100971471363262234337436583447526243687811937478862832019751474723423148226901099339546867712098749031795891722312554856248777957880269536598099422471614303084592829947615926364195290568688084399486023701889684730024915116915211389929181742573231182558175439558262081408237192733382507003782244033628075151401768623334079966868755414166369733894267861388880569227443341590178390548615352086923423380237819516934683161007476615022793778490082638722502182815725249049999199198252897423250644567024501262830632512682021783558867671076307968728659727793106210157768226610695200493277343846678222227535655418528667609799459382885993904167513048578669860578366687047447201999445986027136282104653266191000867383211386094415911673325921969414773364690298054487465946177047544375485477807755509476639334642057091691432413954294192796550237808586550577195548654938179374069801918989739041159646050725623122590538430672044898978957384465588530724832691700166343469993034950852202153985842230049670646264923699348376787141367660554276063941967503549755776931121117379151197657692378218120219177403747119180659231281480289672590517841686316153067264144827562553994891476820770189521975174094583514676320133882429796564169968137268688866897121095549736796825409155974510481377062421216766962906161624489440318614933281223382306765498681371731585483542324914077802718515232101227216969219931487012304434803616641491288628941342467250007742610190417612453923203342802342332414899769078407337037931341135564665877331472052543448949705080706812374460043353209292369850432256696280629368409902599433170910017522919390792387319190177203317777651300564910536563704756192204272979846616278419719510485132265844496069719499864676512085914250026106504077807445419736484966734377682480255174217940088083731624912383335135068542170224085104815620083683623223770562706834414044084887932676468906711492123041396551396209255423184686164253185425280242870525945531288762087686685256828090113153404036095553797312199298311537643043713746914491112661331523627154177273318169523015392286506132209421363800694948753680602577982739699250514265657769541536319559881198627262620385266351114898516942416608896982445862009112504404820281828571394829134614164776706695352603809667557403922101761312182250984373187677602694805948524771274282255716038784973345153388044970248796432734426372318100059901158343279315904276275609409424021878251790117615636414767799061516582185937488333739969008453465519672510323033465814170654465911456996597394903018134064042329770947272976301566593094717925429356585469069628229296404454750054759924566271317492950861459955600971154911087884164405015363052284885850112310188429708292793667801435966715389042831587488616493656765636723790989382109682740592105615998697551141361103198316313811272644526268669851597301623830801100514090902703667764798847697083792815909711930003128561940145395400467043320595414850329467601588115874639219171739215613758537397699955060245875043873634783697647484304494712048673654577042950480145718793781185947196087896731827790102092135841106374201561163627854950948757417016236676417794858608720646692219274469382194404928590715245428306372243763130979836541564957119960894945440020942652857718433819305043620552629068112704860608754591672156718268253530086761136612611571034518853388333280201521521228570578280695389905126471774112285318798744309118269638353458601405134242267143970190371668003914183258785699697772031562327971153778411262982508568834678489166524140864980926531391904617943339612497282914423592754412252976468290493489609176548862868054000002520655173183995517599088146617406796780321870875956609357075387785925668342045833318996671747941566366503018014116709583280158622812763125455573357876553388906253898401356545520439669726013350064822792240903171243522219352365771983270423713883807371372400774344350706152186285354160153540942666231871069624105454168257852724115386075971436071801038369661347871686239402920569029913705809877041979115218393349556183465450400545914412848338817613442986898543887866500102501484778346128183730845098936644382909019748617705257446568764874017239043543635712077662739950065379446059399127793974074393360758222137449832016547576144243187381488420318318897645016538660893464437028411044628638319997609464927961476539195254200107332456083253202434528583375540631764285696701038126298214780353542304770015455278007803659546637522220921685177447062045844518035936376237881336579450762031799549748221193159742864413044828717418243351294557106491542500187066448804134227349784217778714764959533010688155042493033912898806305241512407349230142886227251305900963692312550687443876313145573289181882144717862079083092654096829564451411185418420380698368428378950592294110864760383251153581210711344271365852377418743831324825733353452323928335931043894635736757839639532156434758738270932729712120314840552201707908547300484104210318273383901747764953102780974713226664085866093175035567960816562494273704363561021345098549311829943256132350275173229349452410847012916703508380562537426539814690442796021476447262852271316230428158098608469327333939295514122743757645593107569972470104281756317304796963481657877488534649688410782443553031624986802057462130435460355021259344729378119615784529267223261368294301495319999139958915057867127219331555453850813290603766097663639515094868830891536407896873176362441671500664630545516346558027046133616212403422670400650375885954194629978431472346782636164191742826822255775464808268671764706301412823695733478166664484027472520397050925914807980417639733855631026517123011042311431683007791918615346824565089068474882168715801360285030457367373228743828718918170776209877882717882008362132589859000745494259540587109292721974223157374810676878151230824758709435283915070390620568916840061501772780544533369510357595647746883371440056766466768197152450227090604284392246877284982653796652361677268254166494825854386513167432332547332435158048484567370272172388466376992353290421658609097286863887618194633687264344571357543748903888852446015749512754850816026514073296420800407493437447756001067766324085279658717197279119178804673958543088156430476937798811157093916362748985160745816365760507676984878155226973718633824026148727046380207132159899131151201320861606800903663464598865547917526449673190400611195317110464696668039865640710611180627219679196962843357367037835509760854906194612870838742455120905798666714790415420529176665422809117968166154211755464586600200343235125422338898584640426217621790215241877275608543513953393814986072111409351143495384469217252446561246763183116236120238891587654840928192233730370628644786270306630285969423017966698445389313258222395996592484179145150451711282942637556873322987646296743073327332710416376900798721333639732037653913550480305019871558970215041140290644425068733783172565063196469502626700401333560065552747710136791591005022782797184974918802423805791614787645940801199696866108778681065693954987105292666782301770592081814297597206189753795798536297792879941593566406362387764556830481227291061379984434665742151406116592052853989881423254681366442366480512581104705239533090680439657648557612874140397131181178365194425155100203625672369582802903393912987499907272139695806892942706313564340525019564411837269748256206143141327630170355966862446431052682611207577605910242379751510426597482591919851165129229194335388334765571041580549202350553542700100662297873701701589514076205397577253747072008911482406482727731611470796571579392006974354802272968086741168946015718271354711455608711780267067698796535169673267769383916567648035832066768862904402847692333398713959852024288075689453428335780435530585937466126555299869392399505561889429030265660262439031411343882254076670483281079839212184439881917737744466976575368638922631737790231439586456961230029801831187483046623763085420324983012132927801130266338800950730086577702098333201933468801338142387269080873313768162456443605859040450994386469657358177603764837134494029362153800410596899769863787643397373035121465036396036254862492389311614380771869499538088669861637555976103358883217463668872664886918140651606913725251421686755228970209386672645418836224929977859126581626162642362271295118033775845158811531568710352356616759152356526206549820139273422367198371009482908155790970173121497406931246093036615538389513527509924303350378141868466840846407550029456224262475839258331762889968598697793455590028684348826367000560413677226594618405520153604529021806171947468761887652969847544168370954681210872588815338609761968083552043380373224958797744429591297666086549052268944841639545450016855585951409651078294310422614166592078340420790254375126797033685329557078384427935154888448963248510591191934356479641227065169459712460805999003115446423269826538206565021415931591342373307550116607658626404100783988766030738123057328710915081198946434934916669464789960476288391802857073733919190057956439729927336414019861500459883609272700013938986982773394768712406199658689432301491938926138773126988626356560301538859294501472478457994758361298036734772870000370548594584430564128396578021995731003956340334807622049540077201016203063337775346450585427756145121092394718993010934550313893202326720814176093061149959472929752536974175731052570552033694420691489365233831419185576042086405025191305385228025281236896482890751243016460833596146781150946167531462420917127525087222150621901083519587393427346971604402655514678962382575636922206674811322446797195205084218934539174165796805014742726922838821149838793142528253855111686506124251193834696397628261248033352730894135670778589696487581047930309192705017729294477552217574175079742501330849589907757175278813306789925459895179807439026852167213240221100846212141759097873185977911883013524107278796768191818378558654971673155137043154826347035421765768777452711850605591436091929310697381931551805258756065383024460447460042669721489935807074826705521561108836231971835029799925952728908107599389527406507771141635948097237569754301083885456364968494009631682595425142025363947810290933024551197730968849562591463610479128918166387201248984846822734564768408898583888122830621503563097107278439377167265318130658693123527958642394774709204688043726470456965546404914328015032630065187985787215665032734559394501755747173691834518466175146568661430511410856955940071326231999640489031168827602523955292711026634400091139414644207952999284128373049040493570331895843442656394488428723792811740816226784580525204058887156799716158309869242804564931523529334789630693028788728457684431095106348091607930555772547782250988429695431418857627876707722092965294784102259477922945489150752483272149415180286896668326228609261123820634404246721524468698681821994390873367248806088288131260228738673075442967950653274270328183593058287735258009648509819394276689081352780697020096593450375277716912665662556863833841140251098544454096796170158475702954517625273866290730876999660387913413937207153620407981112043242358887893071335620153728157027466349569379414518349143362556021367055762571935440782695583089702971416572225122300246497171643588953323491768239160690743914465856688248380227963935439927873043116185211605584996615539447858769395541866185746600827185333132613131938955695805506270312653946595761946970016858998588702235257166686410546240475710124034055774711539889006754426883592838463773055208311592409672728396694787120942295055402457967922640236428934240834707327225203346199135997211116163293460002369939147095760325396451321487969720517050216597763271936960034488851985707648924889673949374247129006574464285129838827253586856021530211453434602288426429370363539884767996669286759660578985697950834977754437927281665353879940383330362969803433842856757050392571309652587122954273229513760732219972516741497815510186698542867108742370904060719924157867134374163095635723034794672687658435484618235722625013970871348920548550274249278425412745336014753503808834728314036512987987878109050047947394487481832038746449625577968093275351328679174159961092506986360648699669830321641985579637177285850069178333737315854629179785518058068802714707228731327639319025988048928359191755287747846874327346747708614106162112642236565064248317192351723975259820970031075700132635797836294783183404883419006506570574381389189543621214648650281233843655208484217243599342084935556134528114542287329354796573518324767555472323262687883189196378748592528725261559437408852168054957008491170446048389331417925501014985215936597438029100778643302022084003516538191561355762115354622247679510015149377350105845180526921046340586026571596491207470872178916999755848709478511702805961972442228325176604433058354483753168835912900204647756882218267655752948777553868090561545228574076050060325041156813485866389171621074810493095263017854573668743921040191875191038157978421641095478693356840384623371247804241907970978255606593564759528891986179191661495640335380095562862729518276552985233895588880331879824987663266657069403541449524578724401305182461958633215297439654202813882908632176821613731673355399450248100224670912619008352924077465241439626913386024645548542209534912199493808096871598576758043878515526952696944186764734049837166032420421181420280583433575312084150655221184134851432760530769481830726185786284611877166343714186179214670137883244195613163808772832555528118670184018978012530789224624352307262433157334043665445349399245401391151099581314269006195982218193280616480116577851376371643608829022735895963172326565504560970650748373438456188234393559419159410631606744560148972603867522921934664751635871663936707894699594563640116007333181049116381994021695967366828342744106732406147064888205598200702234837310001608623249296421064562151123231971532879197802137732165832724388574215554292719092529628744596081587522714942345437696291572323116710886572432435646202253949315292536909143181218087154237362750485180732316945005264384097386376971373697175034339689317790906090368701078622957387514837579387993672010572435122355039186584435554935975134151805642437963654709353219581277399577667757514219477148636281826089007395647148374473120675354019785876788495272770336297373771585954283427519364011049182513315784528741205260926095967359709714519290574149571937106943068141771978673095692888286969445801857639292561646502496466030003900343675170722797404251131059783109348801549577590049096088692523073703611056179546736580488125780884261752990882299307952958756269550104294229358261214755231124605514936242419349032773520000630962783327169658863331846873992144519895754370412527587149818101557062631066484852533038152953503057931984669345609523427101789640888300429540521307310571100867477132971526412887573754884238813055617834139309943961456743884842080888351281678764018560838926962261925508623958627948928936040179686661276381217135536213327138373057599303375868468908037122907846312754607487479706020627757375943091854486138393955564076736498664166652424152508717406178331124267224391514196684982495174526176757495212288701713525132390051086277860439022602499905535707880042800353619830242861975127680123738846524437834567175849647014614142099319360507403031040419094415730558111580205822977763440828427903636523867160419765420925709521096525078241288805427939695742165779459827086411094355334605567191076471915443936802390390082595007595110889186907350091883217575457037969703365520109275414815016994557730646302800847754969603223619176095331300806020103096648678791372330953830574137428758728171282374122890436600055440015127414038675571943630105817657356729039824223363863518167921358276209836170315854899897351869817975319421785503821079687935372999375161797226537999073431550424436227325465654825399864668838116207681051823694853541535052028762105112306777568971599579337579162142697298920992238466994113697071390182213877340395757502299018422095489002878168498669134668849922719557430282861580094348691722513028014733216516031725890032706200980544051146407426418032976699117461696673502592678769060573417480989878784156872682381346311366218122479814430525782911574642021485882398664747778731799583837152148444218446731770970154891714855158762916353711046979608215539271164882811134958988863069724617022721104510045923523575411653452332423476522525137598263809489682874119727837305414913182004777183375625276797686250069722222560423304449884218596592086713825843452688970775667561588703897022389955468365473584182323785512401342723690620877311690800948652889834342893728545481354783430763256021402358315413115391812651245998913372415969452242992958502995593755526136906056646042367430343297054832647066354517058942328964998415757148898342326254149948623903210320108665581484665795829761960203114947788430850786585081561405647095443029287230329041611161341118387626606867768158786964528901172259734838632791474817546121693862544390576280944813072889007758137333909078408693201080620454394781815435655739343292628130449495157292115392336390113156537524703430955815707863841178393568309470599456740373782006923984574660634290705852718809199826943968453998333131042053101396878577907262643908329881798995029647741285263495506662915604491965932034581978652439318934876502825934228608162816534343082727188505658277590258429948231017169452747213220385811118399105742628063336587692767776290463914536778520851829006130904491343187172486665322547349373834214594443419425802431323905184411377348752741661075563928360773814130129413356379703852875410151693489534480156223286244237787188516166160977429346261422368903048502660330251039748394517234667724848711369458247944756714356737408826952350635085052289222828803125344130489685372586205030111532126299894302400678261563170061770239345035323522486286963804370594132782148226481948507209929515964610498339782687335515970304752293725895044373022265192062761584199942043140550231583636152504660117026510682411653179272964853363803759003281084903765913846532374207478998791830261546290314500318380747127971770711263080363067290929350158274395250712984389533239989440668077125249330901922517800088090345746911032311372583915407201328145799292804014383416764810866248976156372038084106108669799848004722853192915924692004205760911488310836638718990846610243212127322432185748947295753199797992936093334276933343791384430205810361673947315541819957116786774246890006028045611065880476870585012205179644100004999791678037858163362161829812167600601942907090290933186642457205734381499943097293183531201244749734562951277230442696044699742903783096445594403528181318586212754084148970197887635883991720421923498489946142616846203474549900549816805671745924522890494411536327083848065366915941262705766168548909909331599532564976985823194500753337372491734345956697851664595900950422420775512663710445409911504020761412161019652492432133804590712360865215851488805594508066030256868088417852534108951386549278284282545687088714029770405828915535162882200260777503781240468183351572004588056172665121639007909799203150759001567887162108226183395977200304580835311587340477343992976716823522303656520203221510963742784113315101750427145537757337075540500879531989687112764639898926654507883562645276673273749271868601915916454189309568006964990385451774446001651068032679426659189973387890001765058457255554074729907810200913421214256022820536811026173626340992579544178960122843080173832328220313083441022615963547694683645355721244819694425691756228214739935557981197679158709914743624813406763732690350649698184733722396213704442785779048018621229699864791910753296713622481686449044707624061718237652271164710190544159415263691771357874970680761755730615601868061875733310198460527652088431947390779423053364028303503566601361516000407375412131271885454916409486341567540539705223073921754886766948398994747173009539083464219050425193948142885292818942227370785693327321541692313477468132472761254557828834597719538499075104009075575903651275192636004187686547502484880238351055174197584176953603117843940099573133856411895783835092321159181412731385153983771254265364712567762693041317704742755937491484450043877876888752975427617508863403346160688714986983012208883106871579517045410734702646212027591943668795009638045759706566603452623175793758936526756260868302431934447804820829147747301461862438972045439086980977470039376712519839029355445880422313164105719315890325066480271372984342408578978965904066681809552752584795164657266411736242598364689309536502982796080923629253679176418267471062083448464472574144544594089576679736836636916808993067191329766866764980215681754195335447293487396871261768598207150096356785387913386796233032856627784684910899138816878071423672325883062007410272675796756651299960528213861313663917630828103757638060579895179243716402135968815948371381255813747479536160596087005876148730724581705695848454367944529452330121960772772259508832311074439144946428043443560974010864097091173087517318472125086976456946458879483512436964777565878953016634514218181153157861312688105024739616348519417260102582274045452905991217543643402607404821420858444203906442613796095126974625051896515988801071626014146199743347263002150734902850676989069432963165297539410785774468897104686892860028407336662241888834837440088456924376477837359184968752539103168639851536238615139036117794133929451456552365727411479386741811254835618600171035553076243672371519865524344021715970328871145435172523287617814260853871777962205319107263882088737299786467227034857760841834918542367831467836011021227546601254796276944641914416939922801816963937495917274712912839436169116919145325688685604546432344103773459744128011341601680183703921642827179794228563600288508271216234164983356933097551822141016113430896825671689397501794106108079488804687402106514200745505918811592799138912702647147491386159491025897326862961560834835004732088702659236511357252916882393369831876712871206566128544068145131029229849432248737898217397353241789085909939511388845299840516049665310200863740616319487404621749642305693997683878469903183680590403260965337206025340819892874770822077148786282579907307024549668481888237229559325076292451229166078125150846412084536825564902323096196631341360776434714004217551422960945626159874977701911598685680079122342085740648245799774016696143820891707418008063871652105992707873808126623862820590225979482674979721835825313414849120212986369981736445557263340784558631255313133017157848499003365837896780522380732747336963668326478702272446389977306775232350274827617872503138526618175781260447844255919420386736732962281084737531657930670113305852450775976938046416601143677452661744568820909582087021567136916558709954250059465922711113831594789949382305358086268408257024366957417227686370428302519695380173510250873386984835979343030971565990376644458659323318023764189310440018755935342246999810553488824973768911643377580280387983668196959023067920150106645910261664726797154776258209527766732286276040644375746935973454537137943279220347232431061218019000275349100308623708015049135041777572710923078100940171486992541006347094298194847263707214480892872239383193593475685624285775565841170975239937708916361206214087569933287542819793997609596701726625394548006647279338078613169701231349719785482335192596592194654999279384759255245307124268350973366796451432275198555140093231912224582165910713786224063362380395184287692442394209098377204076884614776579930200032800505128986856917794982630863744009441338626403649396489479079652561624641171559652993221949341422670295047349634602036013008016998651832839148933595289012686598271949827200794162917896353107877340453755827632168050804255682062235861054660142947927180749094185234015381218769215202348615156051825774170522203983609491657701079442294391449966080911449931449876403023878766487107190731464582968692420781144426793966378310802630365946738628798020433548489175823282604689449023760690462833241368901791035828730216244490949721641082972628906702025361418380450816683528113536210033466090258038913226088796847131035478389919056475707570317347514211353950681044955058866611906667583991962660985047899825458345242536532041652995551045075021482303494953237877614736160483191874907773145449051612748763574491007725546728195463531230926617895283018146181955477113638879460035711433740276368139850336711287638282875129539185676846947653714087169384239841145864147154201700019277174049609363739794597969252031056165485549557048592827750162853920073705269868366918031072964745516387919420450707051750802345690003699873845487510563665232047278604656247929464116839983571567419342932447015360262576555847634918480918543599937142069728388755725661826514828595809161567873895273389487623952199713457018306689204529726364480511201670144593518923477958948137267451573944472061635411007257327709256300265151082748907923321151051218856419989521708206210625291933239463156875041798923143519747258179162101551419352890823582898394249244775943738022520533659059067691727651697083778638475683591386168864758972747914845374505223904392061684014734126013556734477782178615342951985857570818061724348178810077137810418951692993270929068022051823979655950366531123198355986637684707344200203344902632605342710477727622645032355005774460290435980813741776406094892786270571655946261970745447805132453557457408808814933814395235432154775966485936943065382498399269316989670639432119275556351080268468132807520487517801729815474662426219650138795534650107256162546395937174866437273355282885884581843909000863504132656755317744734678836992162671197932677754783959093816299349212630053188961027368322998261981268066018452355861987849499604036073381344159081048907295570914621266461966138101084031618225837811411789064811700194801564457314611823208319246987637445560844090485979967058432032232011483026886495008238654915307178222567342387151128018464080313627031585852327671873408243771605099357431690138425438615768132188366157051415717704831247628801533407357604483795019171417966565543259397630567609794775405911877224906776264018319429305971808376710185228481754381543720671481733342595657978602107842311060232956645089749703505562540441630043733779695839277087219902268103160477086714146285454454908883755988869536298944351105402149135846331235232737970315595495788651351166291888538429015129958072499751774692148653504699318059828829294598681598630822391907098576155063721582182473865734328417198675160590438936657322533274978105213452246615585816410684485517982206633659849294387555513824669586805821274696891324598024050628800266057048115762058599826880176142654963382913202299099025111572618353013773760454800505085054989573323280242253015038217332745536063327739732301460049876510762716529841467567739433156387846139972023529188787626624574312414507377670529523519140546685884567546278001320384542847732367536971018827325046700247230333176378719428052019261942158977864751377675745789417433494288866036589638786778218451555843422542369625469613318593306345174807422537400184715652940689621556673369247479673076540735023988430819192075485912992940308264623283239776698296886735551625460226096693353190810296160906515508786736869828727364527232814944474297952675117846496478753207381319530328676155772212871910660370274942238795978899177908747568663677877144822614116901427113046291013405971297495248043101961290993905540330437393089152278996671820920914705420810228940188835783237595633148754147812371788081889962453656436295445993553994662563315192879256475872221177374628800776587615666288241294098738719963773581501159757120101688583993043303093783925511220009117293835696192199528751009960824513358472781985925611962149897480713335047604150964302114943441473853453117509739677859315035812386445651856530574809272728194472767118439513995044754423483559004915626724545427390210216371202659032351064028040183299025516183699440415901960504558513412957030219291261978050031193374747227364747464539362624432641321682783848388115572677600642231010648068616668513625415833797491957710495885261192623746116516076139317116539586026594069820343914716867396258638956629597499292813443137980234556728532031898872669994863742637950969986607654639057402726962056944673439063435071810746811277928901365780490387518154578143455554450793036097967808063325307233760947711415081789892881364110312672873614499746010467773273067455173624368198357521843164668884262224377551650641958319278255193431750109931960724783301921910919116754913009735952668079174650727549729364041780938620356968780133395352740107769843748349727747934671959401699502640429729326351972901780064195122492153766250261428436980121912153976226252056667834833707226417424571312735381485592551210966153282517917283944382871709406420560429081573587645229625534847305436453047298279596910847290790854017617845142352134471211042836011374484225909405212538450500686240537522346205426665720070647367170769559692812005464655533557611200690884739954081358877524405242784980807105433776568332110266309433816616356324303910816739619728600247569285825985613439181264156272774365663039553711530469692570068979326653454080133248688675496293677640084632514835236953190243806480897844421488639518757223837686022750972184049164988180289514003808981637216370800294376283477378648389820168104295319263524062098921198319637398094731028587632682780251728421728742569462455271702268949571248452146894193304028673321737739507524310102836938979010646867632460774048693099198573540161972463968429361991722808201589793352273912649313362448498050592782143597185659056511487979324011776714350894201587459968130141133806464073048592655697265975822880678815748528469000718212230014973603445983768383253624919161541488562521196162410469554272381552720617006897909357724990605924856048326750177490772267268252548299833809806861254788547032912699788416756551389399924272943468269378432482622413207801206348767670888863302485644350232690073314229646626390209004663736725688293586981403154284450401668010030853476078962969573656711970643602214545134243440192485024303316369688189866930819464459517506984541604835569305046940683778207921175760725206993129459952241373190409352773464868585082952559154513600266228740535011032463381886518528363543586492546678248679724755902276958899992353286809961731548322718367176649578210381682895213537863448539358216341239278796981271103284732993607987739697763293466551270517727448403575632135398877829921233428089540745261420369412201849116263051476690027984799070671145384101901323726588999021405370206954446281312384494064231903819454880760729588637889979769126646446429072660431622740826396523960344610784744923887219910801753205019611250626169675202558728856392723297718070445066438301418781057246381779821134753585405746525580927030169939676268979548236219199123134410212480195173844798306147293939723752328779418953293585070060620046298194327338647296452931755770757643463163246509696142611466876909873194872233054200110381791179712797358512357724111810201453727556170754891355148187605623633853057644050360978072835062357995386952182613073870613064502749847887269254622591544290086847922359301463137762704207083356280913140602949255246054060410543241125082526353316283836173212652267495117015458886973105550947069675899203268491764744933367659626473347197008893468256412556999156173796728702746282972047447676081036742525924579311191111026504311703047857810459566983267922292472079271364810994273984177152349175458632622363771524658236535654052919551216848620673611026608454475823147603084164394492825620240648859905201870646547390090391169423611613214738353376927353748261225631737294288682378555943506402668660275028165694513708271372129067059703673122028671762371453774049187658154208588004919925326623471842415085618139855013383060300030516619454346564591754050048176100934938962994398072456523720017357231246754491265553425158323934711240482154713503413940593890814900798581340020386015340874383474021959023426412759497213233660012047908444731093285089979188200747058482803406018343610752503057554067902480179698230041078246024302114948865366209448438057434384342913887595713686579450874203911057381472293938138593129343649302857921830195883068519951419616206754095723796486321870548370201166004546748214826769561650021010481875772066861802487495471912986058942121704815907852891056540045304983577675315965445955933493002776579074728316967587321174482446722067093426675331158289551944251367893640353503856838274714691435536774091273666204556849272669369978036376323260748407708683539452655981220294889212679865353200631192811028005220626491520467383078792543757993152740586457416529076189484336072682590120075549458453151523397027009623905099870428866699461404149717543582118135785770193900965300304856492401610612003868287448422972570431128475157955713810452444420103420019862291460851845085777263724698119701268016622256403327580669159571346320589061418625033531083406389832478856682488474838928789846638867307033669099054715201206331403034070072717226667332148063019213143639837778417315265926773555053630215230443300871169555331980631237930592348616097846213312342495708382084849061487346717699714971256320155654271792066939927382479940842093323956169823331093199212888424620251696534859893642442217191813750155373580465293717406921786700747474634474845262756523394434443788677628938837513262807915145156892107078933251513415343178716769458112731082108747378765959168647068133138831715047954388591559945538764535140822234079285834107011497723391649889668772160258978854078059743721266508907156397076982490246207962864663514868769022122197568329717409758019657065289807574529341209170244435489722839654633092752447582816934533610792003475772236776923168199030328875457230097309530785864648236599955655441182396217180357489012727603967551905872166316666567102788932041140307170232802088266004876973629538231537879287091297667542031307272652805849451038702752912904752429491879416364802098686794296204936164013048255349182443341414817264190227362801373281007099412703554714825383317352580523225048255360871418874238940139298574527564758562293170685797889349377782737016560548002315291909960686250989524055341298136929776439362300363844956304124558993012372585434161251269203488403256191684709148092685968221792524661001468624278247561851633561422153370522656384705935118883712634701109644266555742373559704767416757086110899020049306311455587823080430977392684168333143369588584346185021390225700796364869551202887989493110373298146710872033861075714695845811320563817242165504940261647973250271989417888608814295570552403690872609612376186907658052658423781348037225575148701049950345934648373599980244671852785780374419482147865855748446842891174610627899253785518711186537422158121121283886542371617564240182092880780597877358162024932166228426443436979646900831708141095024640513564416214806925870246272505054420601252686684453105901013867811678641286414123560998829566074923622384873409772283159025529135092703507636067130594299703229471129793848030065220778837158509148584463372063904450253072642121296071025707427961987855106691990529691647670170111450652186687214324046379936811838668425256450978790284356605189360641814023072126813049193386298928294746254771409748554802986137132509587935788388200370809925527192228163297189103768919127849015584797966526119343498703593187444329981802230051048583989994710364988476813056156378706596296359482161183233079042039388774172302342401395571252860843962369750976307129201775165978599460620228659460064577292504933047999716574987298789720823407349638389985937539064407950705410658524365640246128491236645771588624474140503240709608155422671353005568512257047284611082813393780300651637022979251554412898356359195282699497708918747420242845803938022087818416376920998783461511287752686422699474651879098272616779114569737099496069787252889865888777791075167896858698123307211637582644786768948999619028937394781659670698354399503243905104434003383902395531569142690587916420067677203007794719433161914731397724999946425903145272069740957807000172364081205488475836403086391625516475572105309699722043229131179150792797289727245748456309095236282944923619356445269384914984858388727775254310277054368565702638490508999279769683139346189501301689601837844361338616410458746697267499589845182886061757670808396952087175819381057297273708853825577653546846892754697542836806510775052414529814476294727229009319922632444975674229723228551306294797991762353537123124275629889350276637240435010085431045921829436177020046515096174019794684158875873013264505983042829834043697108155133714975885779099548117775765862743537397234305531121848556821715172960124519496371965959814003929551052136290064789741904884329595088496354501506764423219766782373188066239349238668512918609966685432050885247664629088912740805655873359511808302709261087506608176699323747724110251601577259936996391372465921937644343911574741583748266594210097653741639389208503265358147301091688605372802515057615669673801230842593296171680439606923792169837766965626943098612369941930171410620807918337742648029071599737305643847989546435385067954793937344915249410147225268743143553639382452209847203864717590212625957842690004306616493630898774974597563064437510796881910467694498422305493116664046575822544104042151851893304497343311180000629427398505523858264533401038416939136498066304425158352931370830361941584119188196623925826694152489538528815173329341401808658113868765323921509612743328035587208755676470666533698075219096777917802413073362780269098876985935692774542951678645774867699246024626755688580707408328062828702362546676366893523696020805675465355886381712480198084761296415084530233972592163832466358961101565671790789950769564411570920072596425176389815388090013591246284330810804719038380357841724174607448397868033185830674141790280756050097624505032014211317978111571793597419155832684026994235115166115687279151570960112605635983808010871904292327876507964447911927043146808632448434771944345970722036497077277979145827578331083288726763704880706039004507729170811899444994030763910127083394479137961041763354830639730697488083499004099444751607046351529119528229324902681754179591392170668370656318841467046436645782379485521853465652293389283439189352942206156466985137106719643680004093131825497361330890788272000266052337868650822699282755190558732329733696747363740432537761718032160093342733327939995966180751850205513819933714371279086118850673989289112670089463618182970395737603862962406758373023349887420555153853903773668161225346441454592680487747656172894117676369888162827002251942283571306340839287797774504123418318001019939460195745578173681892006927649434482085437903111224468656271691924752052311452134683941575289442874787439308880552298189748869951237960545397903926374654868096652834361476752737514490233077304763202553667158800600164377312485361171484189013034723264414712653438839248109703275301998516211191456142184582490025151751299043142274317262358883544576798799467076656605844472603703591163618192469525841554560813306189434436273192759555083117061288871988273104700551300296988685421921605791794142551334626390079015455750287027315871061606698724782435070139768223082290810564752963517789016956681482308159179233149806229614837593872558631957236044628711356247539666709824687653020319939890630855804371921705597640833870303280886498649772143474051637230936769315891108963705567102283777900963634671408726449558406988692731935661076222885033267077385952670092528864577829531760063204501303405616653413377872987136187614187613149446131326543356030988128131131160955987199970939268946561462879075774024851226414291675248097215185082822720396806059699560821416493414162067009534415110261155445388517632162421980882954301243136735841550986861638619216487475745514662862386255153699351744477087242988500546273330573178618234941880017782780019399127495165194586948152624453211540288124032584490807421184696480102896766895574303851576663369234134865299965309844407914053983219436188244540192592255386473561019464683739711766352424247252607599481763037026252422923809622842258417563196483205869284997118888455788075956227850899446813238654158879190609533133041519530201036001942530730244036730653574834529214669658454649007789623194172185963241685666289882392966568836678500897784488074323840748019210746159267114597027666513451829300146702275849478039474328047358950341936912780693586057236820160688432972476873456108516288175363344514804003571108276097842195358272002540454250353204693698449045472666077594145799305465128065305172951959858997688139553880480405036735558911470108530749262959288274811282880944984511536213547163097543335375386469975648055408465259821705874574128043020999074572207546816257117864278008359999617137999961306379606928673890009048958678071306421768812360520745125521214729852676758569509865409113650538333749864912815530016379477614223078173584557047691586019798341819361979886754983708590333991133055449155615402105993128205035331238308247092928234880455217018752814227172812003919512299657402514777027720045767236683143901435500401475106789026838715584969132454890997106121791683654558744386389583240619884209846818688028481997803519022420630657984532064654451642948254867387316641047802418916603038153009477480100536198267399071602889394572153529454448493340821250142664960942960912591515308218513484219757604860041009693320446767321267000897596996923591664191608541170802839301250144372949439205963928339080246654753595452844604047664524186939640678347198977259102293561177283774933178019344043408586468128735272441831692965405556660058984858488617001141655304356668169432274940689421777433885106117715642867980229825267522413531909317713871424871923340336413472009527085416369516683740798426271255973184581992973042767569435999668005984119048659044127229632845644363855892746020543079659085832557914006118025359433673742297458050780768378730294160143888180083724091554999335136741946625916370673716104784119774970366270930987277384255305694075498162229335706521681168543441941807256848751116058667070310564902486938027173779451504139981222406135981723720864816193978591596911507812792994577182702442643761677016118044063469232082979917448396556236261140025405136523651094850601297622316811656945468973047794833266306658892788977113707802179642297178379132533930556871976749972547371196274763195606544714525735538441329892934323621813865122882468518049971538999038022229472349424349208267376592932414797347151360452395622926518875483602910580913252811208025851931935361316893388697672368854669459003419363956987128618389965856954662603039840576969727148474717588810323643577330698161354242018076024055041009000603222540672074063841023539039037215458385748955967648516077655997118395127139686149779126369977435589370532762525401083213200186763207999310240317728367371372109544241462252409790134074698838411090688837876066405674616369116405217574168201579284960847771253842155247681940089741625563885054651577115320758461660408743645739958847301570061670250192275968194360580997112667688773348758429695717019071606304470813147349912637634028046711273504960487335752472870002658686232304420756786260758734071303053561096222631872085514004371929643347516999394502224894105470847558616015626811789533838294224196958279299337123411824372020624641285828726575267479388691314422000273745534794832651537486320338160799965077073953517516533499207481136688740671483194137138406912127365455806049257717218490027160165805484785640990811872541140707582386158053211124623672391860026532268742353578388920891059907759395126349891071751119827375594498203995507688438314966321746851062883406337482099939284727621606034411073210736545270810769644370288601639696227092950857988513190771726317972055386525973545432584595976236452673543373881516293227378495736671331464544056142475504832328261816680111164318288272939331011328669324610835662011375686422956355782419670331033706522810934513339437701712461961984445681130427251151399916387025009943177670993793755879356653252445899025659536819731558158840181811432440558813218387333161833996122471401446708970218016966539529972031772724480576767829462617370044728886162642228327824864886544152724424532462611123395285364614089263883761300466231099035149831297008264139177067940038967138451561656751818307526301575672153136934090289507507521760005758555423567093043249327124628241136293198035563448522095512514373383383346004433939376684025480523541122430638887750532687711647119207883239972575125426425461405175936330067318112751407953431089174840846670715442250777866390242732767105009393921168317656291217411491315077677217005518127557276213748979395039581209158670118157759494597122423073781492582008089608475793543732419394487166986953873593667391119520269501616572316446940839093860427865691240055769579383594819891870473073067524365811184038710508039885402440894298269000941826726755230687660449588758726106344447256224116925149733078454741690108334179682249160479972384988962550953556569879421320160004538039995551362073952023296370005066873170757736332137904790686005392249724357716705921223316865710958169104540614472011948268023121655201912708515887269813972223022082515728558732634368500450752269858767342768882194678025953928823006732302096658678379825094940365039942342768879520362505832634912142803266820875593902011052581209478247001446760116311978731351286565875016972955231500151385181665859572556589069988225988632952051737580070558264041507596857314300679768413296454815996888004048609947006927051435393872433333703729057026871261843949243901197338875520752793720911897397803834495039092153083158207985539233068334191928276357561936860821132053367034805395723447464996222448397668918804183403201725313624643591876797904508309020434665221101624313249467026379979307563167883195769857110636049647425502370622133813286242146909512208763503043471060555510277547921061606496979293248471269894396048244841188287454027373545464397634823931589049632265580824110329043704043759628861424625217558436874550166706908968647259281186693837040765391234671948642642723408226953807184439351882662972097782095522908543364675516569143738284630401648665477512949248475401146581038978371442054745850477936971083328714876013137888755047726857595425109015630424624200448988259707118569430614293003981098536505304583022763899397818611695611581476955578237143378237511269465128044763048249253991086302717458806894556115877810918039703928073974163380305707578999858513181209508744988173153971154738663423341606904533368795148213554392896560556507663346624927921657296497266365669343717655725463901454275090414569002646500414288043226944731344624404570512634892428706839831139456282755980792179560245549070577877350416526835630968940876655919268142214869193369347584170939540957287755431182830096551320423088602284464792355665362862491879072531237768128816404451630097015239922596801074598991131500703007064979831939000452646698992718715240367182551543163147989183278011632186160859372100385186222426968893888518053559010004914692485687811789055921926589139333319955852805485425378643157338718864434636346312354999453510023158291908868755111031024099329421213598452461862433746089858999125712181754805162569081427189403886095135767019074194124909982845237685152278383658448556548288081446377024551573764011643565692942101601854271874848878860940335607364037741534187267008130049170891985181867952597150461358365448992244075771013457990506818548557075984707509404670682968412463660696987268080050581444458152350028151704778304792507707148655833413065392734942425279070898736993834216121920977611174633724208959842662766835932885176629059966354664489305285946428770805797331035727665214674943096488859122440048904577847072367110571929975557749115499118294265216163741556503397823492618817529885950131531202447205193564200215345558847051015968597980211782191288717653974182089922028302684966940238803957731221345333124563741974283778532843377347811844722922203734999471920964933025351201717910313935823916244270000388808956617412986714887067861591019447425302147198830292936352497138420845917424578662286712180425797755311715042317845098948465648890828476788612721532819170227054244657581642335014874100749953252346675084343846023120727544890315863902938380716147567544233604451936096664804519815535886357482790246994886971945152121610176003080120786587204231672046569864321904536236668131568330724052975623276926733468760903275068908223890461161045091195805416233887941694698989586634429990914816370453169008358476854676923632626044025833634774241296917419447007073872319852516087453484576092522237330915989500385376466519700699686643077778344974192386865771525210928366127487122022183590777534678401929148437221210006453603002010214998691488298455073081407609126557032063341596915359376040119927057495770722774962275083297889933922183877696997945234183470302649147176296392982783404109475980414809238487657835234064407326800754228276479223968491512035416613403550164227932431669235119919011656607704144934601775472479158937813527228271826614655854515766685621389483581974473803087647027383538506046119957277287274685705055418421748189345011947513974266143033500623678413095110302326445282411125218490532808744521969554469192610060793168016385873115516686754759482875724117658617931284166159769519611243222292731363799750916740842832671171984635879623634771510819092459353542341171544223712536442817664783778611464004139020416589148738888812165757064288812672937079323956260832976366914585072906268929855393550846126404475272485553641411991209509110609753371266938247889803964346026774935617319270451354417054130910085663963303899725019534849620045489833812375918242289354386958123874700339186464341736506671736113187666528472051956505621934489767234700286741083762104675461680640454789532789038787606544997281168459727750031192996364653111767717968200436491362761993964160038712912691612921986604888574157268341265632744531883118598167202124906417284167489061004567504972434210934017983428520714524903422174165888073418384325857136622254738958148945119864915439839256656065062224498958947201108954289533679558314789546328856081389898851297932222060856922797306955324929611423360076919322094649500602684441766522435275456523771954305961405990910297670960566294807482436481605167944571503365887945556894767801117481896928681556270929486434678916377833211470138191140544234346075789554798674612269369654546293563114561358647041703554388321596899516934132007099151834495938494930436664013475926410423335772531059146701279160479611686998676686127629601877545356899568247009970952065729982124713448440552312357825897069939541954600532667629539482720249034052010838452687440539279724948740977315604222853153983871772961119895745988250835974638777192377870480263919443688002819301646450764365778519596948071629604906877514436662508569794289571834766606251418787237765912068642635544290234071835725786786283865814876207041750487546925667501879973882994614843072679230803253368914655901179517689388723493515168531712303238767062655569552314502191609003203959176237117016090398349550497399065316908273001768841335486899154584936391219024570823785012794936200355743197188357931826540607773350653475237686791554490135476116582114047714946033101504150405687317554256293942292438366010670376085170998336519566284402268494981222209681401699133273143509199329334065415570333758878970022335299102421104047993462290622477366351940748857250198395159014225058792198170180675178480480338408226191782732872804697929728932982939335456352076428902344766922544148505764279052520067330955248347972135668465249777084430550829906955782990807737407045234545383585157311086875751667186941001376242478648779865291356240501677577282842685662754597021873594032468009862848844938264709559645055588239461033564965976214394843362066389449231801378381243228695181737889502425216687928882147731585075829876647085025075627175464076687180236152435530170298628249952980342059835670843693376326446384499119409899568824173562679144490462361940928360656883936527147411326344758621001034161894663921895967036206768827581598505320007308018805822945026743912105102853490391675083455446485842547739984622700150705541049375728462260647672904967744462390515363154156083684178801008302459766409754897596225375024623111844016892913196004007279489830332534767964497354951518616112792114633462906020695923874834290860723002731307519901513566074747298519901476248184491861351976864190408831552412336014436025487630624251022741219165321131214875737675048169393971803270346989797653101200134930784361406167859694876170082136136175343579122356934440779836241599796997485080082306023744672060256613574626885288134141073137913599532001692744813443037037728646142941567557185994687774618543984359304412942683259440458609023045289540131104650675410390370436343772041240223788393228984425429759755082029582119210700231238633982108645786211617637454761810551451781526858603677966101555778074636346831574307870480084995451962520096094472264174643934756653997982927553856618717164190024610544768327878229886039894061828082644489975022403762376456693883963689892947259535220746577471685089477424945086253430134080220893837416095525030073392780992912446533958625839408527032480630749963742920832508081541051958979429612581080785091306020437711084513474060313902645816207668315890070897999498227585744053982124277160670021710582893048789941556511283197309746131954879909706258464744792315329024152538592444084602251812233826263311155756456007661185137853979228385309763805228062967384466741321285677689807776393965830726938921994658904609475598423120715100904828403951033446438826966965330121976631825359417876306172797834736567091933150513208931587832598286290894307438241162658394900534813311910294260407475917204492434579311272379565606748307134488753933472008715389179017917642544509577781439046114012223634468946370923728062427789014455937354512144613958766132232041392035594374115668618366023395505291120344331582206694158565795838259149748386389254377804996954824773924143140205771974295248046552008522540805320743979263968130120699870065513459700657411234402229203133274492479432835799883269046342769358049518801269945821208718172174318963710882229649847269272046997749275629955456956839805140597911488309599897043009825189484664362778208064856606798707486495091236175468384266328389839039778078513558528803401205896088950356620929913414839012511675524084601593887938900559103560066298888525360768421949435086675274423054176708406804835551843676792677175370973525200078786395978391888190925358573936782627577557960465301775558973613739817059743278510552916756321477959784198620744289965944785014103376461353880777130421759441046687209396442258373282132657540694082216815154369304392802245664523029152354121269584203862223732543676890114350262060275387614136861571036272980261869905029861852190586161571536622519435123044061144119445042201147087383616030679385221454556554097009928531616734957443893154447327739146499539472406900520894009783781928969906143257481406356976658348172122479865486421611215378322426984717565164805356431754638275974982911342460823045203059357272880419579796443218687966583649411743648257370235848298972800426237518982847018064641128014694307168532883698833906448838245228655980272302702222272535838109540731125827608240037591861539532863261597837814717778808602706253248879233839643855827260018811079438282140214552764379139602024698359413209032490122430484387247040013153722762293895539988083835214739376134209783393036941635976643955970590695978598845642941310539569040647787327652040242150504048901795123835149305321039658410144467530764695740365286398610934913550675326041672631025015934961965375906706728957822007178431452135419487841437062569029963034493263101033621688418917786397779183893050205861982280459764711585246278617617092534404017410941064561833663929006170057554249221274891416439024273912259972717326278359868772290734128378663899353954455407755093514384584746484351239863016844232211115679844364472788889161558970775935427394050732006696641719939432573854088607440149196740875940235499656789424800868608207176192736480746719157109092051454697044455706117951538117827591725829170289529564273703450847854550994521858726803823869638120429914604969197780089173836730122094473222623228072876102362377816937411310451914256476738541040356979485174971861225406038813613906903113104167334982985463397145115639715746483948973911863499645593022729701796299353355399711188427497608635630109843222158323449242400540648688970428445775620446834156739472661630016501066764892764235465690241919236533082202369235919208145529311144759171525070299339447267782536814046787580668372969379673377248836601142256731551672776943468532281363921999689446350055524421242709979318629712031604636150697225370236225086944028297336694600775179190352467637846434385065231866414671030707716142479050034979232314941816070156909071352715003393361486577395223160313542537265581063669728650199694894634152277970280966843134092147539748943677320470733896282730938692673168357985679574170297146157636988432692522059202189919465337001832154583002507193249802113060599140314803747063673390086279417059340967943248685995439068156263181722183211638420293563613266200335797288812969838356286301327267472092852835936384725530728536944034210443857477139647524655179631997445680431395965402664609462977791145178720910010218069197396724815510767109183930888671083867226678108128455890154801991581996454728519016351202180210785631245511051893787473061070223381317172090818810767761080598909009245057750351504439696962016820520522371921422913070152466592647164191391706485245313988737443102007577071302339879714415795939549207098269506334677946542771901532738087970857365222779308984263559372164105072624790202416868635747000544987640911501385603683908421429708473775692563769736345999004793958599709577188325863242648567274190576745351713878848942930052906260119160058274788837696064445334985085369424487512369057164201329406189965079707769045830231619296703988550714304514098824199595229007515757016609226627721075273889861259186038392626940467321166768382762943907605913576608683510094848543059733896433968160977570229030592445163291974371492060579316932413303594266676694914595208951079382394759025995200962510582035113094740982565943317081056275637095902620259821377627138755227774740955024103503889779877045049600884512141847417230178263094436337238947652082760742408057231174831637347966532795542682322984910769948283063982506468305167072311441714510147880767777677572326421158763997043236559274853558237433413484039690747412125846125259831642401494175855655577936694725902617061841153740310496294872734226187510585143831302317586496861298095984700249276270538068012679042524509528008111521844191542022628668997351776488942244320146603026335207929714013942274958974528237666475975415573252212758122379767545166847226284570913496181553459851220898058324642307717292639103694323772569910445842858272643722479154615474740884453483751799193648793308012181026799838668776611607930482451249386101451972337670817870820242480081339297165732701344292481569916975747646208200323977586038147380795169918061575335880439386188051394163474597105045203346343131935293030610719745236869650408900449736437118563296084535784359047971783772626808166316886534074389621835299040823524111407481573318180986745032532476950240064997700532388698331217095625909412872214965277998427614148302279734806689428782893344474265780967981007235854678729969155414265381128822013441286122307704172490256815567431227702843641981651373594137906114565134016920215450743426145144654556704399450364164645642754117120780593300350797055848360588510578426813914071859296980515230185005909040253430154705235671289554073013329124918421191474222107290442919321722035745542075299998027147157805499197410046998068479312490888536767416920481464801883707967363750018137470547404170793537150892999914914256747803871645599179192406709362881029993900181586504164835003344427908637873009252539842874871115411395366821666058021095489553741479018255131315393493600372628032794963436364436609238075645706269821456402754984575366183474840759813070361708133990869169027821096762515317347228470398157572667754479489755234873018555623895987185307442028583267683987418627786780168414421064865107685306050375863429818737685964527197378998122577899006016627246503800881320962856654520039590588300231914522173177191170360024727579903371006269321997538391677691156660842108715040380299708918646615339130039370688066664491748728105434046388150350985671673756340335320863811171134933958480020456913326355005373111016942607766848876012455864566789774545663771421028420744228355418352159830047651732567702844651808653324670184497608558100863722992061232417777772122777493326908182772972196021737100955054906586647436195856581385617738648526141011516590504051023827892467749752114631172954045999401883859605554917200427954826127372569675178119899843579681124958021753227928293701552107912984888155689953711478696649497523057353221300842305217084736907065790363811134319787279832348683565450397349518611208098265241943220439213277124708159492931547637310283246296588182306416943010926692829634287913217244754578911711957080181291402584775357877753247209106197219600506947703807712765326599896864194786622106372240668980482957324989688363581241853782019566594012719619935268294353693853814621490047727893090111234939972090945718125442456113054558449653281655321456268045332400152364784687286082187385418982692561325189356898216690601317350859882020894917991976850462038286939365756904949771841113044122083179333858111480636314074223761960406514887870250391824368246993712254078996520160449300299822655309715831007764762586655580285462827576583823958160057032394294144023444850973911763523725312335723987650156721193270970681868501718201510106514010706316092181596180528226158709276492306726325021863861464135879003147530204138321080951224848243169940801977538694643504978560845268938488745938746769997237245523557304854507350895107225970553865059259487213684872765682306204576888332875513778142759527849466059683140586025850085748798751340954164962344665248824315068659874791798234471264179387395506838300320680126351701900943661614181056469614062246027068336878817061842022422280019794630790021270494542735139475605033175878907097160564126457222652773956171825801210374383694729857720060957995664354489114074923607019152374888518136534714158755604428251573979437252090925250170209293271163181256896792990504996682794196683708424507570413728795467613395115388064279208603464315255349899922413769596953894796684372105388050717099122642269132656916789263244693376905792972867275560772431749636763549965442235412468069763206746867951350163154029390185529231928461242554407489559379384553021001475083428388270391215901020372266024240613046701755027476252954226630423844042209297338375844964765587684548862558453007425246146645877457787604051702689387390233947888562065107888314853185780319432691364664987629253774252119043772707827663519972618856503730544690571585915594583196986487289630453707133571837291875057119955626480639176127453577897932827510479872407209428994564294183716235801862198068949574336647598825372568778256326975931900493639208215573030678175029287740286549825131130642433416090799562328008521743078701330011901229122625258151434861211841237751246415399994463640833192421953306471659724222858286194347048107532668315128714746158221900660201668106525060806285918981629947016948059536523008673188058207407199437207514757649610646765793338807697409882159124046304316459416410749004876781226669954504432090853211814842302469023859758844609920036841698486218040779483142408799268163410633442948306477476288900152356077573960303661429051651570987901932829372722402357185998742102915352546674767778033608853326126066770213445583591979006766921047427152598010100486578818096575338095588452982913882970505087431467590895271405576566650224858403734334165659987517231064051787585261168087040017238610423186159881128626196824118248074374591298757735204194898264290507686882881174598110917714007908590290770729261389813052158067278918794043494350514680280215877653243872945490602021806260864310127607262186058660919434427243797522846723656412160548853725063437999163021153817847397975672768752443271784934641870741315437343030218685783940831430435341473088634885861482926477244325398137659366134625016374025127527180409458136754308408434722038097721932637262389194411674625667591339388215582828024661079835905191656786964457737723662713910036854574766064584627280193800187322814519354809932557111432561479682955159901733053295342861923605563753935584651803776123789281815147522209853106505445829614697389032234953855199077419404449476848206514314740099116383860313814810881128707042668419867339194221241697402167854237623621265056905044486228768035937759132789003425321345944750544194629822102040262916193359519280310062112855662561134844331106854054496784653598555327878206285990064428960030510937457950901787823169431894124085106417281995811529968531202432522540047891967896461930104917170165805055935656472849098993463150961877961803592451148248743815304577067632514565497257778345555916905782484882268466181557874535982604534060708757358134839066307661162527133308198783400905869094507825289105459837751338823168299178306225355940569376214024961949928388974580430615826953731965117955370248982894582086587066723699302042512336115061410903109695480865963365005245693375027221255934238925876377474597219278636455038348397413200873952229104854625233477307700535007367588661877284990189049968885117318200201651672202566954252350268364432412009736411915648285316357247473204047108590911362644458847556742399493860602511611748770929256509036097410219933285431548890817382700782278885054774627602387244329881444561630552083302857387256642555726915986002603668327537594487102090829505735770578916538411872950375142724612308542654606858277280152191113601944131593256085778763479122642496373974566993409327357857283415350567129567178001874743935625238236204224479327366111783769006861154975897338291221862779050694695069677735734450506204098248398028554843644411677420070830653111042312281953118810395366491625376164845877027822220495071414225988848667002627541376853463610405434778477583725236375688732263393132540633067377956096332686406343550789785440512084432455075307686024594151306568407841273002454070374024485109059412788253869603533815308846087611594059821209690098385039193720212603812054804245454990312171811702019715114991956466922662623887535549995820240039082847787851881460052145312664696268844271059252843912617525546461936339081317621883810248028013308643576826669621611950044271327381215244804929723589357473166350597719035898647856367886960750701263222625826867875880151570404736702498554729987722065587957898386879748950512532129325220904221226579275596658694457840073104416945111220106531234757607501638719297572855563227125574944693186797489816253218330454571886366677320454131910079863846411239614713411087823376938453600066178771122842001083094538349107858257865507733107149999846773002521838221220060920600372822603361866456565807469660634641472877902772995419296593187035625186991991505719217084423899021723238331630927796831678367152067588968030063148193078285935626144422962504359401416540588856888490677338996091545720651814238714650902072555511476789369518758714148788965214948337179966648933274468698724213577626870661689215673791883845371179436708141337518414484496300545148393517502649823132022460216983075715963416721316323655634065218642879189067423992195900245129756936703442913710468089513247169823679038320787879421013735363839151520871502743985340637503478748419386590721968408934733329059469071964569840137733429113789098798275468373447489563393968543057129112463238583484449143096726408748956822548122910727753828283303981460255700676488961748420626070012025514859228239090813236005511704072849433503169445689910422801775691547111496984757824325988965012496818443947702038254173723258610404764788671401776879606789797978840898590151718048321951638537759570057267190593902395959939226572376152823517952879365373387274057668227258074831685102432019051848400688736452831075851446807230933288089968996656616499371373198022659778086255524120427970617286141599971901358550842446517146472642512044859538454066388334352403010259287271166051268039960318424353253468187728657049025005332397849816996081578175447488355074545190334944092504419779087322641312867675197497687987403245238496517122964319674317399019328602441114120264167946908662939509121928364113112540313365262738667878397673862493147315877985812043643224891137614194734037129244678681803847269280897319254174183170849863612812042144726764967129333676525826680404465714665494380945319469903085448649672612744421023098398892753844860761440663954224070629306272700331594331092317465413950012756503161060546224773161628542344513296497831102678103774731885894275825875639721877092179366859722445313316813374683203684696339947333703767522969057836930496377942235829928495777766519789417924454570651264652033923822198352015547788222505280385915738017095055974723849959797066699395008341088848366102153044721765172337689378706738230630916945851088992740035081301035944571333299617688991063969749740888350137527494287864355241545852839859800273705317210754480820152002615341673213800807137466281902140114585554597066743242053038165076269586764822629078433043214789271090431470819556121163552063871629228016891630962087423643187689902974099555798917050624190857253612836127696451027858324039795818132367903069026549253098146031538915538127027573971051643422830685712550390344374486808222512872151797536416019477652743120039123763921508166112877430203094562166112249892441408729946433410161000585701495173435830678532479704112856371694583260822618640913268519326015170544870393377398511762645257214468920616280182015105709937316965037489354468980456792674914340709517034995275349175349992626204825148651100416186026854323962959593780934278803384496174874259979960703650552135423991395105109971721843527880761182861969436522630887993666301338010096841312527928293143492489617987052015356236786800942611870052024071283609785042750268766602357148095351628839882547288283444802881926616955425347104612768468229850351675959477268792902855456825447416229248309939565185226256018863873641351269848965006539177691977389499226729577702385979539191483661000885171421653653324846681450509151517526272617986160048206157491832577252108465669256996487239145858246933365303218469694047603825331195796940995387553350851869153532731179864490006418292778092872943624750592534668743889415234782894930180774758506107797888080397351886120372677370778093779337400938153123830460918288833282388614642390031619322176471426801810366309466432021190491041926864370502483151669557721697257979423603768571503019659254569434062664050268995965058137142718840425761606849516248014989860547522900396942271623466916590271557166016567737308965139369224978327617138469126175126582582278927360864337573788447530489393973228808288411060035199044559774942404949781672622008215417763957206276563833695059115649302156024460244002153066670063558949547601490463033517915244932901868089747697878302987241836336804326406245201390645585081468529897468381660031220007983862623087948791749881893753838553453094521218921482581238949105534180263903232097182676199805911958856376339447537041023453909406521178918732425378253200818807473642961424564507765303904293700463453944453436579926091131744003693399796942430319918941579204811481337090230211697314989874596289503603352431738126027470676244741266064250008809705719025749240113253884712277158988325237999093136619745869103622405718407663850024169407730704055664359590012633790579142793585467810582288992627076229814715766265427456325699533061183183033671159633077551825616673471482306451889573805785986256135373919385554741045213543915329539551662731318490474097394899666769402633110962602613328120423878199970372439637243142412060996237096907515946459631798563032086417981069163854012587090340935800681747546833555670946281185420730906245609992093860042866054737622907233035255545623850628144181235118753734494678816154894256450387829544301517899316936344795805853648576815229368297833636038046075215747772586646015259213710426494241354424294347603968849558825831413183488705866028618853347896284004851595725679141363773384281334265484575631929587945749377445500402163335806131401687387931601234878669860593965260962701627805397904147995929992090922097504623817551068963417672735439392021293103910449381108229895207280061296593865202677126225715524917680200972050697553390092414795091114299692132867771053662339401709039863244393776542981920436288461150834608534803933324496076567048440442533835210966895241499973088759503114502934185912720239610318634314673128255928894388209768457277673457726332038745402148799121348415202402976069496146271397864940565239462346848083052778480369005427813981782751117291683419080913733524839492657913286178174323926470335787851544934412097720322706882233133359031321219634534879251276319705701593590060775560376630977794575233607997714688188292428989583550696048828307785246109076389795018072921331199209254451027549647109707078847907636702337276150732399793775062234845966352538346263101396700973270300302788424840368779021513983762178940498486729665377088638927217876326362834190133259906403229590895692985101005811117252105127418191549566978871813961847503331802474808807253086139342449231732515448839107718371059891330486690035211092628339283970375388550080484545090602745536395765085417899313758113344082499024930611674755005970011496935447361665696702942123852957225482216640963843755660900854000862584113573022441484335932951470244790514016974371657570533102669238212738316735817670124753392967502216799086009141509682924637965670062993756469586641466565351840537098307801693024609127305776119526053624194776892101854965860230763471699856238175802311380650866367663320591068480805851328103027864415396625146979900652767112807567088066020557821546902975278161443762748749178364915262505857599714465925713462956034534093282477660765150923296495498192805921201990103604080291714228057762679933592514882333006918546212531309943693189976740318763918310910688540157653935305047826754930890075953422615439851535540842781299421186772981632607401641236676051784328957038677370416600783582852434790973996986367694836485568935026758659505891939296784542125328431753308220062138355822482512963752971901283932775231567787094513039150640111485092602796456089297133148665994650832012480995863537217628150370429918935555424365241455797171561695588032208041957437147014020320203599184246438188436073304231893559241083389945408238017977943734047276188379333018659901515687626440152034861400191454495761040678576782459190501609466125322714679616264542819927918129446757452105180265262349229372873782430641661438337828954979749454497397582102560606296542629756412532806551721393332961678489165105832323313410641703632815448340868555250719329599589337846697309575893937161670857677434667266788932451128116490656939388360940981685808740305807178480957065949678505863643460780141294770306382083714609144190579939117948494357977526770958116057052877257324823853888689863240874606183071276132086506697280429499620499204118895727584184580860529623816010662243501341524594273894490988312179163555507892153747685092842037560828156596565923513475932200336642091240473257455642762559022977286912605609890986272168995120267193304193304084465026869099045013906154347152823283118256952894347807999456460051916062636337855967614211249202979377394497362448513258672871371459632725548334938080185940251291827769261417865767078320741227825477567231850311186076277688959671504402936903571976739100187273701308851146897255747302933556611902516749027132318685357325956630714237222628413383761176603553373338435226740111971294246988835310550933199878840436826230689052470053648358818168833046082377689060856545143624785539058725120703037514652416924863435874036682563891656387838684068433307122133875518268887094562694634624789794964748171912519684247429549775382123448030275770410444398081198501143198049745628942382595018894708530826829187200718955584049581413533001075631320793539979866815806662188755250360211178288346961500769139926466973581534164261835387251296862738550931850573899341400345678976222693474118313335903069732676500428729317705794433577627057294948519589642896881827206619382414594527071984729680850977649368427933437037457101021545111715776803939309110487463090404505598845797883700819936673823837953614688752491598355535648122300153963572275126619406605622312291725475094409999684712905146012315618923209435353950429666748705486092976095964686701536046465992889430428850584671174183409946088345391931161923808592248662448034937252292781182826040669447796004659261847219875633620187002036531217372553020992928224342411668191426694274032333325949625542105017114503569183766798235764128439360944144647464515924574526080908118398080978438914802211355854805131470940729860943800197275556631984078155716686627867763372764715139126411543194678484741844487441057925166062001012847894260057409921781750241925890801999369789222369584229347326106704837665625844664499402553354420355327261761334579692209047434949829526628241471815867540607211258668033607187013157431465125516739436640814241432957154535083725028650594118622035157206356966589894900560715679045043057929252445819160990306694448626201387982523966586009873559189730995984410355573633395498167858927053821815222943610683408074686708013058003819478908710762553049365780399081785667984918752910716938904358161334780977602554307081998003388234890040212678209374390839943283167622552696527416775667770303857815931602666032306834972026184819096922750590094888147296992525425301020969375627425060998084326436573988431673250641782550303038859901130176756605487670318541768994509314186054293240911281112861486895825640576899687959370753812151819104834541448351968663093070086893605374236381625719448958945779976610663471030543194587067930651398050534062263158707295115747486791091428854272350954132622799459486949312093160814340415982145595300881473412651547478007702846082977645682806076353550981806698274123766063790172161238061507661761758205147839796388245565105565015104827114858293372208667954537575021439928983638487974102792247587481471208086847669710939925770377372923705857981694714394357916260185671212075239875288250038146754600560763379413897282339253599303217867681427710632138194838446419313921030709139408993681098952333429135335789278672397867503045111697492651002499123892560540183405912050808809902008043793782953335150362522093114039119367502062120421938531807217592345028487121953604524911667921711417061335354022978745204704480961732912261424203792644253829726636862244256258183937902227585795804980055460106954469568570259467006525808537058545622723203664791072397693304223023235907367215037613234049133621945918981474999004558214438013810582190079234206209622699574192220797493798256456756906433118759941706004708084407184957173115323207859632319847307845473984523113596339378932231768928410961487558938011742836453521719133826480061885261072124945294478094947117652643857029587160961292019710029152051562922929578827560279469357958230599646254493018512847504471495923674766873683553242686576002076025101323613762241604939416986832572876720609070200032826180951981983244750313582732086975672442802645385471554683604677277122239148314490322280322996509268194576302991295700367335171689918437334194922884043502272698725247154787568106339030572120726675528989392358083902185235374918686744784518696677017437401748607009444085554192905032294495830541499120163336739776405077099349121037944311088964836156539826985996877316164190776731657619060512556787315495734627536307449405700774140231506259109410834010895360707201687486226898321751692535155905870269280067973927443651315495217685958977327164892743298923709860168075985933466936465036410247759770779892191112951191588198124879777472643988359009912266859997079643399357079302890221594671981635498319670159958327676745696260881086443429586084041731779349569222604180494441997337603661205801211705039104181449998711812041662142203771070483318465022953189193692769978424040899629670499776160989110283260821084692467535527433186647860932138542397401090086564383564343690082094045383467430989514873601559756080393196101215178387754010664432160755074340719353013449011563986981650184501330578583750877001981273413363347193741981518015607109288588999502030356483319862571450634900298876726115175063811448839898395493015261280247213969432426303602862989160707787399390119389710301716614437443280910300296466195829285914385950748212953093304351325063684679173796390960719150222286109949805212361073904294008728340511284462010049218311046532414775041525494032834034461444497767316147303797606812347715302872398708577209497897693397598722842808627733331781795806104165893266918295383606656893679596514315166458021847067717614750594565863242532907617505707948592507750905513626388938679196974050182163108289226309953566178942479821939715043539817151771087143128978133563786765514329722939026348102092412012493662662303361912102379450974590664948570981943105001138081832870885349866802914132284221743465543735599012968020176899211705189471923026524781103606904048124730974200847735563267946068908418154702993237788461130264861169772041343853549696250859635703991231412342669033778807452151997353238780317324002566932323503440729771148140216841151590655309584900654236236433623826248243951952648518198663379997208330170236025084588951531919685123118019237601212735324309616382945155761039067911104681153709399724664355430594430885335122921128797768953933390765449226351515193384102292383712050532225302216928636920809041449463648660739401748758028457365867321478359781303343606378958192988667211991062973907031654073102715520689328854818359319271892547636419827852317149749538903154695834830514340714462822796318215112770374009033639661185633546024320225493446953428954254902467718099910912279018062007907825323749502772081050793704845457413443425742697239581481748292278054227112901021398716739881563013450665001449125169372721633415431743382526110047967049674251270134769482144137335557119507135022214041680387353090090149881230367876521180817349736694727005791349043013356521811429081393495077940737761203480554536655154510901316533240546426190097242552966686050910550182340487047747817795356635410234689192387794948033149163103374197271580714699192105435614389538773695255842830520739161057975512664177202923108703608032389354990762660155729336484568381072744956602555778429953099575555003782117348012018116503041572513496204808605088407405992075389244161611743782258469635300610195542234057419816279912719628077557415394742279035054946685428628965116371615093766565381271708817792148732635799083302653912089139919620099672541590854690198968271900637962323718131308986757346310128873076821000920685248548856283901834774411973838199210603202110021159945197224265701726999809205293038654303941618951238601910910988584222006671599909340264066509055070462139166457370364537056450127581683844413529342219243615260579821498645327740910869379394233179703652876399276344459611081167069760777705135577674787167126631087565836477905689467688487425955271200628794220741481142400297695261186170417282554118799484789977816171798724004079673302739804366893861310362976256721245207846957542847277003373427146985462095326547217909732924991271275723601735685479553744718929090054640325221977345733623013618817101292450409381523942538133430486771519843820302760027919448087703112495863843256772105861664472893821291077987064025518142410644858944324907494699451184956439340232427575437490645606814279337677362949473315646912131026457180675591275037744762765903733300753603797158174179988922920365236108054940250776881754823801950360594823735350508525253026671828405247666462970007799625043342402597575789298216816493024072022800173412288639085468455865717324074380877073976668441827968731585942663602664664854685735808397733219100696755473699005340904316830095041463329088332175890480663119503342015447780432193163188215072808327767816809026097873336648286547404583309450058945294734290847830797240900078359474852062318960256630971400705930943141632258692733431638588124864423797919357906579825339954149228842137645141290658495773174726932646972563232038691697902908750812143186655139791272921559809645657439290645586459601050922674644750343108790148970862585850319829846793010768710171564338736001710472372743279479077319307369907605915771441166163055672134852159606976487479124926278196238192794947002331543836457254759169100234343812807461188281591648803081840339673082681256557676710576937717669420477209853742208173935624289509816159656939463286503268971045826942967250430921027445153027365083710133381227158948253046360836887430146966350808879376975247179751416803360694450243470901889859079107351976906798327889175772191672047853466293533503992345132226751356314396506243395788291388911906190011296808712936329970132146999658577526702088424107528530714051822838419453001001020971769138618218929243684372612231470580689281537859686921318418004140658362303080542852765044137999300889182732628434238971391382951060970727616994927596540917739324022870351370268775364064414751734615353728140742550593114632384960462522053367523333113364724888280054410479914919317144831043875407007147001879733106901507325054711409523025857392442130029314115562422006905184102757485288522959752309409745525087607701188527645344187180847378275676767229743617766326891655432616999861428822716558505253399001781950388340169405134082579471294954097452745007842523418082018631184450529346820726610487091058196830976602031888292679233858980948868724180717203542928133925990940938240544569832430721710448772910126876367378004283900537374085380534584154863787363194413882805112056158979404284677221673420239133090569386036844701540345662091174333283340618579841550970311485468630903535793845374959573904922695179447898598748531738207253248788754472305443021813671491344706118898904580861983158161758335878528790408247393215320006840394189134915978414051840517558626233698841745421061452947879738196703899124803581112097934948874053632008087922691522848570911286076993910400179235167372558522956266854839593743633956981965045570993831515784434124772346153881096650573993817938164010580161246031709678250988758917159802142769202313925789813852484644968920139649387813229655331821769373862718373777983258203573636438248278981295474106089748390119345122638469205601723220915937356329535471916124350929542313270069747208513836177436707152526953769947917125232391318309069159180130512620671833726153972949597394179805141463621831823897680990355011968376661337045629182021016848769843232603453246076318937842929627077904111434926507805523670720834997885573659027380877157066428688374829193206195525720132022529198903994748965119918440944997210448261038657304692686479455015886766804051606597868385863304567085774730538373160079148409007618308100772465597283014369395897572423866180079702715093939046085302173678663806270028348108413708255632074889553485218811903347281605789645484307323070297332297445422902923554952179236750064408872321708371169906122657123750845781791305149362553057358473512053810493741794986903107693346788691117062879866324018664563593467455680257231054034331912375898371859356536406226169726688532003351485596523689608430896537047834278551769603164128637926640018106225824331869049336036576811037274910575409268257800807690022513175540314365220569613480547053848870216706031100197804729648306507581852770997164131751111247316216232071644122212456630727640398670480493845457904279602022540476232715966505454258721391574556283536968586276511983384028313870186960570012504633643259639686851573177476070257557901284348532760621927651571274199865670295177601020569254566499714892533875183849034659165183170722853228655306414662918198362615939352341359874220319672906610932418704905200059555069201286530489842517158474035020489315030789655672787174128036930818551712874162843113493610442320961065056802859889473052456212324738809628211423961400888735405971111793224535809493039431605615986953825371658102869851943189988061518864257046743690944503899583850533204549094081951611250170592423544378576827862703478268680469341578731762426374128660798745908778726392905463917750157064267728801136969584785344584991772551488814456239961637971612516533309786981240448624349745134173216450904575403590838329407101395785761675175702307190131537576714207262218331563760211108945663039023723971937873817682617867979686211476289697571012363229125433355658275013811408021523729680078725369703758978134935831459947289828395897125191136164340840744769828245378173021444089105728525161175989997191539337440868345799043513970392242104140077968862040595140742509248046767419317689761476615230861580758761768512289487599494781032553706057544924406300479081506388271153107948103499871868160886445582071192316080891648806898546789849899021388477636566928361024222279290547497671831189731780799645599875590346113375764939354338277845310680344803206222703053342191125540728707185243345670489995235016336951613350463456636118141750497285727403299114520796728145304461203409588052306528838660843528673856202637356171048197928539470761278998737403398627639542979223083310415320342999454112824191077999192031638911676966752441547320131250492142885907576404627377551127271427393078594679858558229329448397450895383852958661938469037182926999472829339290821936837318810337593933835119815392615755220574382460561542856972634597846669904165175745826589122237487491455505080368638439303375333238493230565224959289217445744625790253481925968089574453388791157506401985231816075814508414550562371866579615189307101912677930225997199145388965817701688473228711336818759074890093340014318818870618072601005117829715030773339872599963680238404740422414640270927873866037608904223848935871050654422778641065502970493134145323141055122800556310187590640707811486121697960529965708775605251552856820702710047424458960772436022257371370654435139698486715796924837307917172985547609913149680303126115963287073854226633872820005384785273911580838753637643599953135725846176252723744176862794854710997070795337161499398771077017043121569525258247986023884014256948316689889112409932741741949791413867011110683017966889539082613612940062100867838455511028379935451907898276662679978413057127444659855253597156558269824095668551237880477015950163958581810501071966681552729507954709165672865943421259888561322922937693072586211036891010371827100652839571738253810501117717858873019772528067696352622634564565564028866908225688476306500988117845393255914150607661992240794700947909760045219541623228263464836452448421771354686383541087656198056437378126862184453571194569180164995596853915969988774516904559218245327808768337117074676895658878877458416407652440001924088436280156745777843272487587603226893101397319344274353376904424535038907009764879601490148365065674560918985682216920304864842523533395928497882024303090531068759067710321087256026130718613803996241565677784593241081893685160679515082709330257343248892549625246603264175706950736497002721482884516618533376747373729976871649271751290663716420119505626812320944600868690574118437809482022548686199751017391191173709293159430892612422864027052795917297033262745190934041798029268237299381804729011842355433711691679524474223485907297274707951199942059773320231933770143806074294561534069720591249544561246280717231786852016476147586576371881608379786080701952675670085156522243202150320897557014850483004379930243984550385420979373510157006541442993732232127106420399537026994253774961301596230187728011070388086322999207101394188134786864837127059241201582690697836980817734170281465768736960471542628106286859252372950107649109609227418876506233269553066181485328740977507637109122125774154450731435346628476796289346608001922804679155336563246047252965242507660043372562560061103244219874934566873624727064379291480941413811433722751743315920943087550729120797526424119242860289191188767740529149322669361770981102378867637076472203868443410448900992958184401936090489043188219103351891870704393617266278033745281052505169166902881328508209961368831787352887835041816224210640511764009353492765171035627327044201653118353056964008650010933230333821848561780089940902825253494542320993311609687566357146848218290264390580316628973581063816490921096597941200570224274938338127834966495263128621978570404355897930341363090347044170760588277004563026004477057424516300179255617648210507821639154159880055202058144712123088795277407304928234598347371683565902814710238553222570405263595888641428023786762719166638859088376488300097120376963874652376846581016693876030034543251619815200754702909067480426554447059283698609190229261338431599168012296237643765043358027265538361456041534927001813676848552919311989333559382238037835366630855154847530738319352639198515053460597051665098234691891541023678758114225251041131164129015608151413217044238730429102116862232398457545683515661706860935074351343384153384368072139730546152294490571097316253364881918982260907115185201724431546625097893169273321325684524095503108099525795611073170493475457236145770308446740065516541630639146581353896311648486485559012749397247057826336827680602325468037779646737342551455746815131480610459859068671992767786292968140018292034308588873369769685373666444621949646035752087102406282726273394404324110764158756451789252646271566898955411865034527313129787589879106698149771040535254432230341039756546290780407218473887824190300423197795598721714448689047735066299813064055457274206478832703652049972434179672604293189627810356812990568004534864057703392194230033292773662214035654275238305590810499284454731489266485753853550552620145462707486353073138873975078413352372733521660338760994504580133590276237445658272574375157284338783485728522324096431110837007836492396673957918086057217226906641520480381244994221990258114577826453208299554608840942504379642296847476531449901694480442351612317481770207771017004162036437200482037923390342743589321715381812282711497310956130912583684423355490720124573741047955000860347700822262261658729434375157180867382492261165273637175714766746702093141290449575978460108347977364021913335495779883441893942538256892201065525880692931184424501248732204149658401218084624625480558143228996759103566180373968299072041771791956991948117761061055285468226141975231224117412573851495440202075640624651175561378193441746336647000508455511402070011250152136938229141271402508002167928616019720175783760327879915595074164359468527018735682856073145773938847702372020793986039781827620167910332569066387991593788515801103457339646117994201274909166413070712980902327337852161830459640103678035012568774663555843574743164204246858418493771572355612196786458282191444395532165119455638516570666291414890946652838360510928101953312578042793472396237170369804651219904650531552970980692442392082826972293307143238618957222427703841647301379966085817032040163720599387699035442796022489030244775287135908999032867295393120252653864900753680558928090763045684775804239559291452222947656650342725655753458488820938750730517125576340369964069128348802474965551913132782889899913537007126068955383799350092598269705973059279873502917381205452986798226020312365111090045875721095519301669617359670674879604355390473087214370257495114039663083870708710535200530620428009949164908983900141301477239643255974003452111128716127191920992340537315747411599454959814674039624124584332264680925756873347608520918519908532466167193146627566587099535032492577750546838636780714816510379530097832958698887477298977544464189043872357730634090000094824558473865454011233402354080083320360213231995051627089438702551285766636885633122716856921436459611305490455842821184494770698211662779950551051762081538833495623190243036421495811625261911424230932760597666881212313245723448764314863055042585422702458410732047881671173330720170279757992513295863068581289117189150298921647190214830766928493743819856740360014190677632394768669966413292549235933227823045304030684525474071765277515511788918195570683330491126146493277182671729318130400581845974402531629792675451226181063090469629585778093394002550952265918168237829797203180792592246996503693998440329811016152198172365180592350607376623956679208949338123663911631406059859362406963348858280686189198114141136457128258255181700656783770523179706543915431775873818175911129632291594297493260395397349075023166411890699479623228113643675734183338116215947462433926562435405361531358689958791839437630283483053164049008382837947963685583901071944571914868223486332533248427498548974633740657985673467607668370531792516466115881470739994170138678748716794865339176979268994033803147100360940393116913571103380184885185742357085253957982399882007920191368658100755739767191258668243638321000790731524652094197588001949573432828383805653790495159261216115283571718710294945211467021286923420505222419861141920716321048661445452123588515691834692284533597462319350697897808482629932442511681308556399866741696420803288172160674689737194860843102884137753710513104775202774427091370409805068108346049115978992815584118990348006626990120647187470639794001930445689435755058775816001180438709531899673592370043775048034925371384740333922269139831970256358000756104482115827568050137329167259351986637137742730745899663697301004551717356404265374216430180400987447870071210993164013813857480730659057832917349058098247205361451472217633593361226321473203796622954402555216268360201894853556539413223518663470737317489640479027522192914865016817789314888536263945118334193771650312662361750421041652357577254633607866627354448683650433722461249203130390819491858757756374302911480865269700793292710925147385511364964766405686615398369454240102454512408365411858350374282466146941146749013454197905336831619116092266476757013104071153276028156659597037811849163431309976016884720636411616610176738688522101287086446288467172059480403065351573416771130137307623734053414892059451780685048579906763455961574402513637440097871945475434914423050092492737006162423272584468622699584183274791687524294120272170521599799734231125334802563023499069288024395397896694047694243660432979157813511887912446863852511324579649487836883669430274708873554219448481928554981715218313587858238850701450858524022510814115336530223156340102136498650066757374370827540149306882764988704959874543082674085246150455097808759096134760421084247006122563199749159162257108408336241005296646506346708683409648047292261583506165076022098455361266747521695140662163620564368855305875394854828514706431618723101601469191722629161039460084602299688018201454041922619172876357872567085786212915551137575647549863797454493450003241615172486715063702099542550154739182663522434811827926638317449768721315609067852988186277617003081738009746500410815909792222429249100089398224063532341757446785965440082349581419589600139122133654386190648691624102998769600075946674872240998964806964238172073079923179851930161903099230399223631816677012945070932861504352683331136790211765067818350629026021352752604101816239914615979888838833232647036116645962030333636392693434303106868072807814174148345628842569511423075582741927168959454183919085711435848422462829227908891557702026647344530822322507491254445857190657831764710360169951468931870462974202030136416091047832187374246033075520494974643365717298822502685984120414081399824643510279457145920068988648900497593005697320380169010580046411209569470335313958423374501877597807338978832001010601207611800732766422303383507431713769644014258354188349054456988253162643622557226087230993261621751262959444999218932326644615327778646399240461566562212697795946363991065843388832883439615855712951675211019871973675976492318347820113852532363126542975022324502081927781673465326143749486201597032583304168774720360844335113985839503338235797291949776445555319504392659319137540284677653566543542966367038064704238819716824568153334051834603552051724337280890123393741853808085331203357114801601339951856443225099225659973918327813136201205288083517028136896573648001640472898243242202257846247804634070788318136293010129268002671158550075848913326256826402538366220804280993478042294455840875940166981781286912307051551958706797137521058190502932077235192768028236801966850062390573331608634075161140333177984073324574317350359593662630229056800864923105533124184276091932327440899919587945079118655341515526883033700973272828308408337998260425235489542153080117331702061791340077516935468671180043887202853289129683695657337117888250300521796584199281272489980670131761118855981889699120614144259931227348599558844423823070788299199505179156060614390670721118958460943270207181675902460965604751138216880321173957127856161612481394319480070913145757068785452125930352505938052275190225820746668757275427838430089140219994888866903700559212451474683425163096893078698293817763275209666352968568164802123420248672323510961028013207693831943575031708941197692750320443641418961248895809832665452564325696954597574052399595414061560224754620287380059048880851956645861605292821180528133547778979975624836390856952991129598951989211061867194358537895225667576801522403566941177515989756316063879159482529637793255151158094240774993482704827498302367571292364676628204661051392885468905306976526645661504105193462423612694834869613648120780912140799041949708312549558501151414845272191578514884961985856936771455881998886274320303735376991123706300953278785577231347670859629026529074118019690256132133551343951052774364746417493011768601598517527298735131371561049715298160377034375741109270349117921632235284807854049075867924842853276046575108166865769035154892732778698183134180661681460611538275244057431315275207853091096648272885118589575845462585241608292103825527048943226030976778074600759942658511896994820102736737765943461803792242294259738604568666296768087729974256705259353539756906769090907434541158298258281798651444943651352460390416587696891560400355392349474662502151096766939771319386156778746422728683558474081492445904766986039977044247850215173693067941491497260159071581197890348484552509444370564858374568369800170251334439461594549280020610651431422945416369301077636646463820756436922094343023757954434044802679227589780190268038290118888575328984639577350097683336026920470334234013202692041591580305061065656201320223197910910818614716348144724421615104438039951834869808847475842760726956802541125716362951239422585422110951780003297053528215775982568496868816900731869383835084421253473345158459958926559806985839351198839812545150590137426048626589624679704452872022103639974793341715256718262227700665203034716956013808346147277407578169835458294019169124986013833407386961906694689147441982849141225392448259161085173151230454712957919382166545538021142002202609623485924756401651149363230005643858893939593253696593215953969117027139227203384048060811185614736305417656278579680587948401056554922383937402216194663477636138732489882924253617412168556548293520604955593371390395448020644351648603544777135861400717659043731610796301738229409754795798977572158687675434401722551232234334587833022973020891680091646650099970470628817819651658383688225634929392788262485071689006599156883474204844117676877448269091936997944429814778219324694286400259941567535169797132159616342235382794158284067628536498385199141630137986980021446362689810733176305152350915674350285769094241170925650756937743843482430188260336145803608275251484929004707212898408405266029851169596210776567032972099907092523490197129497844710999700563454626415461299934516543754110794802307164069911759665853973779804652707978263698899101241425921996776021351487135613484036311123892487426928873959669735893496678127764983513435276467481159361479646906279360732551671562004181651134204248381449896930384819554688592555796677779390150730266842777245215101232398242954658308107841705201172638119241117335690164549884564850010290592259774853887396656778625499138813216347162923438076439844591676092621580431886033020222125006154152957097943114324178435447097932962025725059162888962750372856954040545813726816609759242221617124370146888977902770153924905963642206833232497303977304156679919096570064373265170820799503372784788537095203688290417505283967164532759243892355150962134515042651760620349943406047911344410912517437883256818944599391549370305721359657192439931381001910059436963139924766314394966925462316750072611098993577050725988287173667938600574656250065792210256356416012514805583062639445787998938404431111020554756499198681660493288516416858031435356080283110271107309395485543436772995145777782541354881914319450620063652339493917045314541035955054558251716559966938510721373802580805601898854386092187800560195021847891233500615559411271869935802533255984504769226147659263069066338970362341171641292664470148565866064769978281777205162792315643385885922541807385988930566905014895482467622523868188483113602023402113902591068361526111247667395292022008673275286427384775859313428605648438249955264466904205372693461043906915930765863434079431571257293443675536745493250380996967187986830251161013310253973640817639122734102509539691121067459183739426403706982309661289815284775119964971303355422319080436221249848621915657459604120634996477000945652622816675063170437439065542337472184773708661569731361684038991998144915944918953234396869292692853952267836562573289830567556038101077688554828424304802755813798363823162216102888610535673196018763581739979056943795380544501304805925033028865018278011463439947421926171931813020503687378711833546206832011628374641017864116123297431910501703353689540965318197599306524950301157768505564476678865259995579793604588397065167283040784237290572285538840174461244688121180460348317918630284342697841996763925760199716673478539314186193452578656425670318809950343244607934358259801464407564693121994417342389131976539155769600505759665021267472380673242797550750975677372377976703480099261321808364511300201292498414835208964611503997857688380380549938842907689556096263655563612998365401244351986439313452457725689622627246118597350961472495508519829152530388226093145965875090924726367685668359733589599203328099916798931448575168532470595378293528484655576476797342051549741260542551885830164340898104842437629838316460642628957604391901944838232485984536262392995905831844259531673832889573204300359158696852689050807057521370558198667176430275673437420079332734803385185171529460094134659563112553014812164815811017363715718788656056925421404697712720357984543964857507426110120672717102921624311150433931209787936528600716791379776889093779534697327558713253955367130650565322873420928018601256500962438522856682123261382719535815336818760681419765507130803226272940593338420660707529040377158315033152553663404347495009145658410366523075593468345089251316900443360688487475983808196224669534595322435504872873102929840235205878121550370035159868710758147451925901324942799384422128619010566144011114109999451262946102399532450167423366218363771496717989754796571476557054162180719191989215544373194367926319037609273304041781316356580476171572050181895131886183972672689469275774144947346163806900929567190836895616835136220896907374605021116982403810876431213030868810564478373777550935385655158533301803482366286687667413176935931401534015619749152406940683779652418729852900339055182636939175646079443326790854360329098158691972809044004686162260415302242893991593627556920548206734175427202283811812290607852362572143627529950633607866724111978635953863880950086463899726953198522758577652804807843582982704376014326886221382686689816669761123540695558936852407926889512389323617215965948591845797075683694353788005856082712678512849832471532552004267373569737666052611596328721282358964224106704383189722527931483004486032702888067721809927782633038929225175212536822924359902454433397384669480798888054979582068451689885242240678933503260705833853510193171219722988376754978534636900936747575678867710848822593330633263934120774493427525248075844559639303340639697754115893771216825745064729714833647169463228018516995682373744716276982488910505874829376016934738719510576366851250050173981375586842765631491753843940095845680670165166285449971013645251444838529629636066421427120964985587384001192625516208645793700665707903813913277735020804112455906928303431315439182074613286897239593261312009045234124623906368309259995222139191769055714514786734801837431643069212927404225149275841218333953715878188628411491945141213418187248014669604562128695004353270999488040458237928000044259650754453408667990393217141003552507461841671363205227696272792319840090579263461866068545114957083615764657798078117966328611322624718540491920715035153142346223232982539050550324152428990195975957476369923658636546864262740592705863099521272702468059100004813931943768918911486286939265376459932272516914013403924736378100810772691925005527181692132162002106139123179770061338735435418033043852207806934788425522091104714393474743682935951844345600338276495212497428973141662838004639174314047339208980247304984421988013050568037386172058566883178198832792544133221967113226984906755433393026453891754268428694132084926844285491980692249244871232691344867053276720678465029471114790878344504673494491098650962490951799180665958678360102623548325877490082952216707525277203928158117398878196512041688009021044854730483412701959813352517847353174865876464749385432593692860920189542255046862078158241867386330246718220034346918258874128336108973941140507216110829711313982392225628094771961613360199347299104205114294972422343419763934935285758735003376951290195881628142958164283502888634540638246445095120549257539308969007332981421560178832460203728341824643803867991506639721130632025828266612777740793840346510740905623389439166940417848513682259214959167975910073014339864882571071339769798124193551098311596806396890668890610723784006394268965792612093930038433562183654426244843947079353032576618452852958948052355952117688641889782992467296189049257492098692628295616188359196443609475807404273418488182410088019789501500791690487846358334354795158302095856447833459496218228666223899320374147067740864186317616444666835310059019069156069355785902654503206405427123141099247073351154048201594810335615227132143083025897548706042255778469239242467886830111940272563820516959093548922322603342603359325942414917368046272703321845200700896723966910750536098171018818931310999795112350992254869987321440440732086960851000616248326986438732314302068644946157221551487179894746568099449491662861939005656428589507310723803308995488634824247899871878250504873794745025786022120471271101556249573932989555561792489990276899878027458390224214062593301374485327856682405474510477421135878853107678042677333392504678753750992217076077181203844589883403051852506200568902342536115576417815851572746472117067265511495922354952385042522424399632899682534609396306021576815465125868523094272205944110288983570570201294098598977585128347977445497126734793619659336633083101243363774097799518892700571534023473301878012135424089143603900730715454661728797787232746725712673578997675954685489016747539462220930795007599402642431928026469950500617023166816762742381501882552612142785639079975340055356751136877569541982433399310501249040281183585125058296778380254823376895078759392542062200709366140334294877539116813076083586081327582193068047339088988335479303332712576255460319094186415985637739334468509688766257572800857775017056460248171260815289341304739494976026163363213340399318906663561242062888599221859514484538377092176289065028841713565830411018260233220601957900387219727303611779474185423694134295665564976201526968015368968976716429022572411008398869742208720207856996678289706944169864055212955941721043234787219339864961281160959032850163551719159714486085250495963137461931602843595384446907708265487883049139491479436233642273704062862891586318570194828432612362885052356540942230934747970089832672827444883820872969492197600990914673300070224715828777304552849587887988388208390122759184252521013651711779147237312669524214271347628144178126959866283093778249672229670615573988575667751538027478474714172100981337417933445222545187596604945254073727973982229025716751199952432504365328499327332090291550432624205299551744243617254864031387238483547567855147653152489009772693669510897725584152842208448992761664203891989315529484262111562300746524092153322729163524725410443399669283497168927221795156065302739072388187181893306096193011539891542537374876025943374165383406855199147965375188572563432316196120732789298737270403325709425270091110980433210455176029155024404363056124119879233433960484398947924649437952825115701989150990003859798763494253398728969923390110506939778893357048687998242260713047285812881583241937476355457543625052584099572134742315598915250788195884889280947167183936335226057072833829970296367790048762925678312957290317096915413031163134458848002076786514369795919735126972717435615229707127711729960763520389244741227015000435598842244108181775140628125612289910297797811570091590039365785170470918345181738572663222380796470055006750139797798508273156552685297073605255032018630436006592087868679673431577660679677318094120793858718911021033008452565045932009479787597194767216873548656335946339395804659376632490645751433416005153105835271908966923413686290129674429493024104494541572884128010379392719104504676721884418361585697873618755452049091466283704205694444603272074572730547038779384866868819041390995852907504817831104979673507334106802766911426696315006336820089038207345392572007510925428641730896713355027513747363926169142678136267219635091392703783816762175710043174099495600642547377500663869191147095476022540369616059569252242160832985253821704394808782848209865550576046601034681706306816302871155762824696690910711690846836613862988026870030817586431664048799658198001259587584462939306330348603581018213400218476250441446322433314157400156450135694268212890840813286854369726698574900657382442947341277802072515679075444274598354185468440669528638586856660490693029318117206264839805415862960430829939318921828512384887095177845026796902471876917589057309887954409708117203556923485193793693389346036047573553456272500908172635081311599722594404526123896868633379458494592138386788701654600040798475172774243333042738711952827068283869524767394296971085732505014557491443548033080834262051845841822745029892524165619330224351076948026087905573191480360249741752365542342655641474881986964687096091425568944890887526447959197066147989365903699074496480993016268296492673133624546835672928028893128148807723180812242576116810423580662410773023593943821260486689083355115927287852940094300869773763863819759544177044904191648300340257862647761776967469586697557564303857220954294073665275765995411076363674686240719974651585881364010528041340634760947392461978390546746353139603526711935571853785154924151955482325469606690917498749767325130970325684763458533187652465118549041441274193191747176104360794788184281148932341137273435902425887234912422439962723020561046096257677623683294414275477142557480338610530984932418562897824989427461711393388299840547531746882812617091119035744760716378447696505161808742315233076302830370240725888148364869846038373183357453571873278277303791380033092076662044170507882633407422810947821548907773535780971186419931342029181775056392933321440493040278429683362030059357363817217473357118930445392707502935897085962087429971328580680973915865789138117461829664431301711050726914282136263072407585705735030502179661431365031593900153726088381955080814838220546643655088517586198739655592102465268590955574112730789753506869886147859976687578135172157797659284279999845015179509519208733739711268178316959601760305892294525179637597929096360384158765493308271904401342592999036095576004871752751986661433118805503086628870677016950533449854864136188555398591941366187577171248960629305606583440920576645848599437754352765248257899674881502731795736644308625867194676046500532040745008500509352669484102027664414284761577644198789154519604474778899991248426347860893912651612275709074418787305924934404764190840622565834638502241651031240597735837536562681223733064719705024283932464461735056964324418349902922960404268046101475110383916893544631032545602381559767633825020708200782658219674555124602939795396422535568524492513266286180340948883359066367856309876400180945758546821802792647863229711054403340977436829482084457757893581585794136845505013514420581154332910349237033575491969477733909245792808008744878483429395817494757320730717119246436838747570511152046326333532749492786621956759937346199352126556480118889847846555506439207810419412724850418608429465076164966943364043231175628230407034322927930633237907604571504369735511669776874062480283411952734516488840654141153394686592576760028023594594661332059996084611555879994822210621876951886958008491677138129927344523117692190535828940749901573614889223614716960875650820178704757213799834434225379023137518538711306082047840587457852093284195181903047561767091616350096966432591259999575013721286058237948246092939144011244641857881557677167452707450453075536956678194964960368684754367349366782995067257106712656619614332655749293438262162287653082226539004230045133326716213183100430228444346474024043196423327773085683126696780819436086077886369393630470951085050291695274634217140550683201323416470905933933869752640492454095171116470843495461584214520485429540285247169865259521812058785419215753314570444642774518317033372418208912302017468278956370001725440429656356046963254630717772649587670338799203148085335508975133882780689032767484448448147609640956114388083552919330039593650569762904071926046041532325496168146349951809237341024199882934321031098939946244584866368616731842208591087357262562031629076386677477814123797808143168770570486037741741386592559857934973800468042812219077566197097001496553266488930233791067898670057065061230876246345505844600229623603883402525882189248052331822326022259030967043660249236180928602344680611202820570061569791906295358160384389713550867952797921397743027158367227997845161986639203709661252959774317630773633924747330882104918160527990293226033919007721960080481773721516853604544482569074356183160348542683607901677064816880721329902150176365710440416812352296148981070604080931230926390904421735851256278387220718462838913801937755206857278064164983868085255496478671702974329279723773513123826639977879510001583914807168231071688580512773647761999858286378315618517592641015637406791210881169403545918604652124272366408172587880925600382211224915400468755291862254325419399476142853100546955401409256198102415863825591639463474735251225451303146041777365461159121058517952204303115830677734442761620448855384723905543304856166185657518379314400985041442235444000344230442983738567962248290449324152818509681008606271674756024876552235871822320383272349211135932113833685749955982326780951346071966274150963869307904062432878441503141414340616045076435453304564349431893582029400587342303149142253295719410887460680560304377040969598975504368306988518389406158284589627949927050842466891978232116376706596150481568224956122860584521611027408741230202033680460857868724585082422798435562469189788003732815173046349628506106773801188378935640602323407388578044568300055199887694378933671804786946353307670216121879301103411548005931127474635709599470752667112833218446432439553947109766176179960562563855575047657043823620079692114901491990715874246547754712957259910177503513705933033494084367068699920888674597229249529817839818998119555318135901489967676661440843677807315402827365491059267540451144923498000763864886443969352483002813332264557408859956161770683953332729028117275923042728043493445035409991979909205371564515124812823477867179418847971621392245232785338172167509498649981899472604308739589886326564527920366756026157018048336812327845195878019047096338776439620275018631814640395713826432284386416315261046850897615704819446462292069013048004775807688737983347194787350588842133649109283587061070458288433577730236355044817711926158614219440947606643085146205663301646409210983193045494075358794112297453705659291160657171101306908088018381599346597990776230359757647749395448666346479760655257112590477946009947387144741422450308923479378597087876988224909631642074252067452753981367671859450125276471126625653503508244321087619945291254752463249797226126002479663798868702035892710328379950822783920663580980464773892854275657350183745875040129874609364893331634983890513649389447300626216407022052408026218817435159434593418388723517643913381819370525664143731273247284262396188999709216463437724773010681224925895765185857671529220481068990193339126901793085632589977188445798664211902300627182504144983420027174444192487826751614765688438447726729119654532721699517325081565858073548012307771832113387666319704099377457901914985121170160971227433093995919936505583185546962847167297329527857377714171230004676953772248692131767160559646214800686274709982981582347730522406530321071558148485563661797270907186606630898985651048579330374382091984068422108140657855390344053544557637894786879674134770295409449548199826551281614094883208590530059256047377212484930154939115195589088998982070507414608222170150762910393829357631228846280172090085367972328387376370852356825275227113837303785301581894773651853737283290877609534942278522780569476365342218968101698368936082405904416777033715678059203123674523916548626434655450334671700709268163964678961134294652991841269098432889126506372357869398995830962658389811502973901138007227762511051226077940847967418753756814572449124408831812308997747358435356040689081676551212946218826009772476395431330531873946275295774844637661875215422846422446000512243935565926945264679447795123810674554138193012097862187111088261322323326440088594380259104020475334521653207406106101998527193928966129070162547173697987998622311514188146627011486224166243954115409660401777356892693226754993676365369954729931663879886302624141157923135326556988080045201119555282090940942880103602139645347095898404616838838936986291660013537175730654869701500887486460718661669165588243339967810304731343133639308270673931503430079610877169385150869659096883938385620701377700696610824834028796142221063737776410168948665930525821868454356149183442217664457175162115274229434020568059539116208385424375759007863551251958986807852032123080654096969860706145822719483189685439805965592414957293558768772751236689579997171218835019855154958306183029718675109601220427895525405407207161059935205028304141994584491310129864082178340347765042037231185775747769066251096343829551558393341444460796152991510526256874910874208207609457597058798304657829435491872324404658178692239608712598878581243110366944829931760594153744528733377623558206441191914352898804577350491409883266380381637520615119296642194121851598389057244419704679624203785121572620250532348189799469562953110963884184568541528609800366794477022196096573855035317579872311297829487229774629133857671362586548554397622168401848657955416895707310755149058863100781459649972997068302756576096429503009974715509199428626789950727687594277085209743428881976497731426393718855993863458381905079969043975216216691687742797854800398924806079349129139607063919805551417863368049842391641814298485728722864010539535785943913210638708502259801297647555261336434064393933859976401919092177231839820137660012936940623443963601352480693828223775087227525968838369136471174951625053338465631617809624807125251059264445265832700034146240398804199868666107518241145045755936274891727828054441753643047772300036970521575194844721859149455400852781740371454099245094049347324841273332859457067733543499375637991311984206444600237914795034678761812004641370510663331285828521295815735333499827961599594865371946511459849266810866609567159531126328531158828880654444036782094923433673490798592862629461746332162292416776517705680821381751889766058103364873471700064278395378168186230388517642341443910258002448939801583604502325061160272682867005787504029649602860584118068932438744381841756057230050126249541978007636961245612694945003975515689420778021866603252372105589240467043544412337068460086347233600258128818268676004957953102587607555963088693739387186385193712591361255920377774924623837057372105524836666556030913743884204505604567201366226150049044420337243948276397856020322974167736476146016694699834805567187460089532915614537400917537551638144995070771324113600478284560171379531097620656339582775772379716720286251752110366454685973026571856603789966273251130756851000593871888323366397613185748101958278068728469802116887072733904966557047521016485066942125499445539095041033567033884509035068632138576195096363210837937464158295838352093831635976188194588231510824040387970337035826060830703670112187882645044742108503156814313543806899043075637580486753677092587135389510700859313340491946694278610953376702898267612135113285377754751710419514529680536025248084257804709325042334052007007794901415866345493224075767802662279280927544726091873085372392260190519217704442811384949268238730796818441738611384934171931624315852286048013480119368975636365730517002278819139096426759431357778170588448114583809554125306844444913557643794280779827149930228341111081990190382476398602314854297806176849997306726695301571509218886014763951275712626066032473682216753709065237432883889349305470294806668090565452009576263343803708987317212745666740280280875486449084649205038470154622829246644418590083458828703607793346237486772439051999135243430638338224263748288730900173734909457770320215818984119127826245148910620377271057574863227330433899635220892336488438832472286686244054020173112461316152224638636149783615870057385433565434962734723981956044991947844141914716683097210964950603697046726429717495245376065256251835666270886245508079085196006679820000696307507663871648131029343107311629445312420042492411910151667609241978608909776639460195727169985437262370050669654237502916502658169904227015158365638650644463831728395078625606750995223754945583446765789433084215236045804125784050870112404545907086323504515517144789574945369422833339637236737035468536161457154158798800932887296402818102678620135809502296141926359248107157576919483249405113027873721595177838027975219687781633994444168454453836883249959953639259130242784752890414905117739999596842934850645035573618618925778556467626879301593679461888652153345473202874057205164229176552640512521682628179644560813906480185787008329427336034831523255094907257188392542839621961072502666368043639532941366736920962881367841523349622903273835741350984541130593249091041438742646902597118363647208880402414486990653679442745795071984833002754632632466627824390074266127755272825134336055497561338654906938436760375790118112610476285830546838587720366789624412707716564239598725090991963052761151530716199762727330971120472983719705171691561791924401794696120803473484683610062818733261715202552736436153475648997334089295403230357301285456267499761443824479251176857179035525183453270665168096881070086752068748002827619849916482468993524003861803577449062162940734584805089804307890896237798955563868924776657693188104698509800329597205327061940912207292950174209674388786466884197632558463922061876512771782608783575840858391173780578815099268278905066641698797620123388437460461273468418567294608901982634273265235856015074628037801028584306245457959309274605601985742247838529829813145321834933510493821195946302946064152247855016876815834123802996303836569028673869120031161995425697291831649329778233861244798376838545476319527757189790877579548545313028244773167596010838911709670373842349109394517872533893731600211391014478614709095169082365766674087156141026575714274425750592560713678174119639974323543346162181742482940924124536046042421925026561526252401846901856830007372995002666293948249480661917059546581628550760355638239367339153918377049355198574637088464760055219644506353468732823517243371431352153509151757690294262314017040942668760722696246849590683449864239930005550257884922030025897219153305661972915794837682495105918654768603665600262214712672746858261083568613914522731570895947818372824313085784888654830177692130596067121243540289622751302375395807355133798056585786766562412325026426503004127268788885655294173529596120789383826683706475072098178720199078748033608600641427117552580475885009332539076977608641972011630338137510475352295719347911227981739630135420424929890619824695062288607645372484117355608969772992366738082446852942737239931085086082074565169185406572976299572621502948275710735888781742460942744539246143127527945161043969032537837828676693219169899098371911173739160265519421671366395020076047305909068555728021047303381242878559268925109454456279377548637238390331865957641430330143446692626862719012391418431338457252937199615288671786910485464791501248535500136919469611341942384586455866138721415351068034829893075438142955421459982123151290995023545746256415510188874738746958887265180086917961732559400416940892287504668539473836326812362962313634776215646925289505758585955952912302553108913182111751288866523643710150122461436043367634837259165331107638652249817708681088113371374163547211061814098791297256690062575896812012607944849798128780321522941251336598823716988256731369239149891238752537475765044926343923903961625873762813849312914788071310533756693561762869306450480754141128078375952598036269363734258286484999467989801835738643293257879962154897164372550376010445364061994387239490066564453423570114388976384215116979823747722399426035269986925165018604747060284102608681477430819878098035011475689907044688327241716417232862646206526107044753195041025664692973888062984843013428170807890076368788402237557266805968389382990128117111301373826284604218606871785149069345600177996116905675295315821495585942260144798184016205998293319215816317625337984685070917763378467960027249935597031705917924688190421811213144536757490643764309614220350194060925406541913367253348549800058511735015967614597710181349125273771651001049633518370285399947343697303008743253156021688686521570502222133000959791449172810072156483887753345830675109771768128283614552777636138484012452724853417792760700745405537102542148580997695695524519662355667057231730965077275101395212700313161973861086523770106575543803256530442641679321334049322564004745114132689158735225270473121547117771953827139597513587780532077931346809702557452781208237420927433721342994896580213850843554032734934211453178301238897680288139057445297880910705656723035249866654829452670418588032413993745076418179728692596339182879748202632397563955430314350047400426704094245035695674274442902057108233296763329618361959244306914574667920269325766889332214092518081054577025363409891681529002324939894678674751190121248768934706557319727514970451576034494902153547897256972062474834910859682536945500997993923314589995242694803599832905636948479623607003938956888938467159133737733300647808762741250861835699935428937020313966335531999323200714249026077305449456134047384490161054314531293806346701121682266277899048840658785071829217695189757994879962522155558020950731908631361412218575780746044749018659458416847872338290849288014497223317968169346548150520621464924369531374150344208556999756404064454489068793652832867127416608168555121849579974413709844649414908692869147586464431135098692619643799459317288980345129425150238478087898642914395111522347538243568974739600218736532630303902443891952735422652945010806752309183513726310527694985579210666868983404745252793574949012908054091697877344601532670084692127829014320203502184530415481609275279533394653759291727930488974836252900458721270816254679139670752324192930009245505431423688009138692953965942903620323562396645418955153561355427722437317229566876364911191396429107202339704858999840982468595989725398708977390285214336550217761160159198282660375938875443894107938545254590793575232879883385006713356048575620893702068346744220918007462693122337599288345204037093584617373302310163993209034542398020258456729301302312696815057148135281316502089847305939402372612129368447232839629950665401251209401709069118822982841901706250499356895248817072410930420418433324640179205070567061041901501012310658479362748165598132013291861237213113684022637050284733142314766808346322624956642907313855565523309168082567695548866883559244387295284494993174873758300730551996313992428270240644495863225530627176808227405247366481272388703139404978058251331775698851098226695151143075821940826872789590186882488335195184465546615490806579792820280148945975770552337357535248618297805561620344123319800291901193750166130204261033013456611381923099248069332566374663073103757261829363308765423398786597851818153612198895238896205659147832244607906206300518164556852402820508417789188455456876552869849336572739687760655376763687381999137126703044820105292200424344353565205420748180674229035847533627702217336635487364262273377973081922917660864271554203574575068770175496474452499266876982571007866440621151153778740620703108787098142445909906840690107331827471528393687016008065233143072965125010948056242109042236250689648578578308639825790182074633401970481468043879950391239429272339961640883769375351685364604435527285539752562067828467370750556749032240699297135823792319449320701253947245479152629680550528618522550222198029781959874544214111103554350375211492337094702925248320202575429764201273318208225554576471442479788494924998891190285188053992119060906745841536046988729156368044812855842927296411395763919958668623089077723057074043709328496284395945529201801460906382442109357245724533364977175797356073425723712220564434010828265871649973185071391561032938965682534796310422737904522151475211937162299979542351758866227993496134489881702841904667647608162212123629986000799674473204636592188597472760063652119647909328571962813156306339306172052278995243333695376688997703070926784234446289219015112351466020326718502768941387266631115084454178980929375481946013306332132744686176584890085743336106435519910457409728873520238521062931196168886018746325673823371513790708467836004873193246871612249238741621691715196408630208689604713263573150898702476976053772770000876932244134334451863061362514115635099259808292961507944974287302819720307349164674893998180006423936798934744126560414242950016110762858072843750112915989293349682723162267162137215712349812909468659984043874505292306423736701644562909681560901837100648749548021448516294719440308356611968135168072447722212489876694885247710986718228746872196481438228519149951704099826592913068548707244280114906509795045234722401905907428110623200196189627105660648295076579445544453175915393422826046441889802647291850776118232350004979312347098780808621039299267780590198624724633871603990275439502288352127016547825996684593154496828561747389310984350254975940165934463133044774898674410167526041025048052818346422749919417176306159216579907930728865857383192931662641169586753841161421753216760742264088159441555884513813032842287078712859031440897268792026664554873036365643427648169130668231524168663506012394094079419157868291902410905452563909443134298953877805252507075933324124034878791003202093648458791739507724424278157866579989353522071960059960599657685054051614788394889124240176826678556131826726468085893861187307165451905888292881919202504682101913697565203540021762628812270030786142366415826623991638309963766804804150898198445573904807993469949391672878967355919556302124248552447802463786544719902003192148022905770184232517698338752366729836827833490096953792236577295471225283943271062275287247746167379636323371503905159978004999610566777193355433115415864194434423063549410064620300310590260280185800115198886651352142223014356974120988726868673886462128629912779213485776411168144960552755465437858071442307800334401834492737603041971794527122298705245081737020162828029836153333547672106250158985412075349576418891543311103098222630737235069770789239517620758964636788491466868692589019347219731022027652143179433824715714077135645348349506463245708262959602417814065360545460131556876554637259521097973871947324912374885551966179414270752952229538888473904089666621724601737178966230959618766175390362108259654597660431830932206724927418535083484374658932747301560368952550144140404258619244022847941987053129819286613276460490474325126233006977350451084562664219531773033319822935213383681501180785933653954547875006146608395464504210065907022094758102886396524735257923193782639934339757514427283973022051727860489864577007821437646754394873098749054782105303377166139791974638582532365101297803294952463376643540422755611920723518441474172252792026563891653608477898686297142683228199026599770518195476988777093984533213272410384836145038212197107978834942654322115177298979253361148460990709005709671445564046512228191193534382407810853438565703437319844743449090476187710878053109234171068230276182636997239318758200166454138600699037422993141343941633015508799524536954627333905324238924193831875325699076827100247779503435679331285027787709016143680238520964344975187624741356584975862222292602110621425355446952110848723395176173335858150859160826500992814121728634188183311224439483773367466266784545513820344922660727411514882851342256864700399370920646826699739293964503259166543590390727291491583106755085395849549167881730929732025991003718502339511158504401761421950841831517915599792042685731091483933383592244476508812976895056657481895405440743427807933615144607480944871225074108869765683190902084720233132251754964952800166831406010865085843263277971456514751852768083673585967738501019257004251417599171798626448089992624613385830240625930312663239869784152229213703632396069522814989523141917399592618385737528900593868856458267360131034942879391896914575515387962866936158352689936900282125127841577148451297617405269122993249478221000458181382602605690293806981512718572052185912579272190780848750178060737113370630219903949128717063880067371489768870694581297425012704685449998774595083984227438749488863114242802272639087925451621426711787116996901513737828264655791431032469691122060437222802669747778314704915152864686397869734935980278730845636400978803472464929330768009830064395970779010894160498524572477447260249868022468579111433771626037355560304644363434046263341618068314089562846749964010312082124178905994811324281518969781680836330670972894643610304340477159316976823848140978575830617171387008172819262887380642407276939482044964563698723389165723572743928577330006147459221535905999793684828340328888025979743722968954151051541295520255661552258128857003448069760660995456609453740276018884737244550033739004361268369964623873992395091595537368544571668245458079134751404535194943429728800238045578100135641957109559131262066056391082434971699396170128004237480887074853479457545234279981829216629221277009269978006900966497376566636868558838137179650430860339188268235395352459166226744426196114849372951517838765401511624870760556356447917248582348570563941546858292550698525387565099673846060986114224450369345119012321268788476449747306701442354958338440052841960162277927145461621021210917647779103825548501406650987975234826355980200053766252770796977270714462222110172649957864375459049601719293221976555887314822173550161402313102983083726690420280988964377896258826308152891740498673605750200361210183315968877862309435295086931125644684965805103881617959055143344250297319951182172905331125055886865440150799530258179210063093181274495595897035718627903861517849556243329220944725621484310157965199318094249933287118916877568208689994203498745650943154571020621821316917841612725212497454048060867001078536721108973318297841317548220717703071080909799649478811092015485695210599463271767632628707924869974270077417745010958427477743176092867683732489147024399296883004923369110403587638800971587794812409113574566535281619992264177310079801754978506863392064367924077847039829371367722804066699180538148459432680151264481609808483059235968180553568403932484829632206440173218271222108459739132425811260179337139246144581160321977742940226282460388741374523489851528220269536434434683701280841784174831064539168748374910168680670615046771417527977444572795527670247738988446679748416884134891241590388847383789251512152221089328116992958502250459535924273387051127496771832781445621423515154578535670088986348078006029791055237291907665160802064298532606048068091093089654734100654692772687903994397733094116737760176294499320580763003906722813241264833596942215602754588486610152572912210863032271628920883054739307918287336345461704878279948976408138077629687832374817622032870716904596445129002856422115910443444225024779647228022142139140448695112814224007644840747845348015547466468185264215649610432277911394348769020767311875419757491031154002507509527846279518030656607654457200605012055998458484246520877772607591494927282113136225608666630496970840053027217463800233355800300820158508440147571163721475549157952910619408125481649216503178271260073593966076932087240876801830195671551611095686710559877633431411846661376711476357671448297715996502444335081088310010743925191578168569226679327660943673128372099874501478590442436102849428103535459474399263185237821828719560246027727570121218002582299578545795930548876360109075394845153182566037498453111218449305380212647484111517009449785446930039530957584523553058354638828788991570396513156480419518207241506833175365626025444697034322011689675838800206499281819959722951178322848190869902501684744812568533563742723699819389339083333889182599109160708000672360079046997050068303315658445073496781900222154886491161345495512544564669170238432090434720321905549691733160543599206414078564400613565181857721570728712601272230712376388186612371802863734657200499846102637540469486206517731659312875728372178038874507336074108805887203838474098990697399474702256427844557052875410977208242437240044834981261197918646896160284424965947853342508102697307667588263813574469824358627094180572967966730562517005712779473119804920706806065852451084644631940381651648857702034492917780878673058081102375575571074275946727639631777671103162053905514457723462063711430627586022885691020476444954658592508175389666369936099868420261404944839648720208273468580433996644320353791139784601276107527199423112859019479181140913120274400259811015091356341687024461675841943567297859931025357216065034761200828365430289218721807788657384858500961873691032141055591101619270331008165907025800753941321061149738747264495813341976155842338351224121104674318878367696673609705127470532432236588840665198019961385371061167681579318045749519847623733395075173052254313973909118443496896216452847837188102129320483713692541451788776751988455260712904813645195508719617520589207104711842050856341754327503734790795279373978821113886801945125581650517505779839992398039527471224016856597006187712562290024583544069920013959054173975804000560994808381695624845099487190314469943075415479466295874417558423170298201594761922504247559966490613509926469130245900312930023922903557296345446294011878238453057846386812419869107857562990498443686220562075636444732976468971348168437030847469715926015471178828921765559442244881488030647141598554208588778386647040077113381745138831769409965091438785891462387045341654091204795745859814106829671424229118160606308393351709894379015243036242210190658711639879253262283166586366483811211125189636008039494072997943752331284137543817922710964558077355122215197640799444431157232623677352752764109711267405985986122027112514187253084049185013921711234425521406611993786070597678905023657789796461727775172445625699842731574563933982180289752681443963299332339539580336454905097276515718284157100620343810129854327746156335908719835112906697276168805733627053009702414668372696995454486450614550186860510866983490295831583644631949567074371202961625531387786893533127035873399452013041202832464385135954967177323406973864734273508128368966855365040071103122259808778562502862702679248618707397724749227895883487051557556451243907268294798454216300651107291337604111678165922869358851710527176948224227917235109218613663111731834535770560683326443620259348879056029124252964780172817773188808077503316117029423537201428930801428407573964241317912288996030263831662844558199294141383459376192596522210494687003634963128260340454423213887957933973280594498686330443073114928676728812099413037348661522699464109107026762159678365538036940283026779276791148154039645276122407145645012936964371065493695538034147786421722233191194777690874028548056525557906272360664157670132036172092278774608838926656291008958042826089977589297510996216349006351085093963312778232482778995148352062501298836773769851327183472576198599032880707366895102334448463078067213826524558209862371522633974849366928976174706456783999850227629141957771080850520004073884676663607564722413703125623443414977261794746584240629249788187128639219066697480226987015974874609826236406342004686717594644280322018496227035604365719480646960275482626362611392263373397672812881505400791085032827482471955472830924675200704107273124524813568643032497342348173546304763406196414468574255896971732479592870927015155487765642759722678499665189024574368856419405081253568264930763055134082419535376389344181564233298530566706698824615781454200393404353473233199173331922911765956225547302306228134778742061947318840833428341777171262851573132198594621866378284132305049051418717639307471819187864295671573677482540899849953716697138803771080121212278639200492771107748959583059007025614547917509864590551406448504178192718264267888277263046270237785992535654791841726948936251166900248853095258782334969632229244126721223794788252736808712568272771044519661114255633985004455658572202173942106931083272971269906778283963960475907555801944285876026771678340126621532158152091592544641585800899700949632652211161426048639641639269590921567845472293458266037250291697208244059772920414025698223062131662869018672877030021537086093291371386093310585980314427606134039760559523567179098363356391766912205101296657005861060966944419741372022731141589520993312374802515788351754213929874921231239408214754540627569625845247103185827395801784428578636000297638468242776624352885668820964733885418289125968511105225212438959238024384331866441765874136290943718603988295781844592690729854279449441849595152444141967532863092915143653532686521776162684482297318750454591371970344535072824929193012566814331613651088208641258699350039501440620936817133449272098031058578881349305480416878621697389105666057785497372113004548901508196110706276986442417319338704027967441535951081275016092302843293620238122689619125547054142672340892998761106450359511353600588668428490596277109140230030388037108834667082453784244927956803571081049879875750175445317181681529907797359380858561848092362606293014094664124084327270517823323519971078677786103229184117458313549507880240289860865133951481653415681315548882759460944159582191378121888054266341196726903260432718783289822347863207983135720739983825307443073508387333280326048538389754868567226469982037762263815193056832630991871311625271463558215925492277399449208784548944477036571036349185810456152888422805094374807075861466349284228188076741130847210960773000898691094269503010477627495176282999023919110540167819900475811432891312627281035142949955218861320868242027428210015630734885776045040618795249777356189079320477080602047359131551906167800333727619414684115591773399111973770806020210196744199343947495499595951842176107743197112470794716120557367289112170698377776527935033863829563491321372419566118562932624355084278662937046323256050108230263797041250511829257443458177349632571189476616451848905606732631996493504816594213940321174326457378803985615222203704660226938724713026535915112561976292572988810576650766562236426569099761465082307285797491870626282299318667534866401965860510352235916298785872290689063163655985614540594858000461318749315829373099983616964442789505532670909134883058437850349805890240812939813915712087592347330174920098432184137713879573983312356409820238321615207070374543476794748993716135985766154184623376009110133075738818264494941024010657864214148446559074886601798446327581953814842622524882672326894120178035420381267123929719496746746673346878651998713051353154210946601840909096457787420063976031602256757513424423159179084788419528089286998216587582032039867821848262861873679665584056182746436653217252113416847350649068025511219139697077172722264860091060440076881902040492660666771103304368377434457671029030412727005841418321175010476952217824201766923835345446518461973935449617300847002369431697697783523963774095447835463503742711808631915447283894832607294650188662975421138541578250210760685424269890120263289453997480804922584630086866833709965065253509892668182261410149590814587164459179728598400398681361950694784396616182419908020919411581421497443664249862979032051461301401658673102609748210782525279894164404389405430948769596470986851952785280879333574601330753528687162926565017647067327336616821203424904005392575794451658410077995811072732295596767207500104843664042688644146178083518711687329065167714407863123830725567942415359508006242786459831654984450454183943509829137828388503350553420424363234383331178360646847972863757474760515412123585284732540886976233419363027356061624483056877332689581713696352548882622794935137066155757365567927443777345242584524537252517186262552135332366353839260692067743263156504091197792717442437686346908985064013791698896062390152038064178485005013836401879088445177592144672732834260360941270114067199730768673854785391957862201313878398222700675304474203014208270658217403569799505611629343362932743685836715774834564588588314645655993359784312156816880968678278571495990884711181265548307215945305444391494680499688325379925408477460214941374239168823643648311166360218062761509823534316345311412898259793135555836353710283003194570461344250575889764730826450138449077369252712502207313933756458338642450306586559817675434968450695612224317624248365739369877867670875679728541147735616028888082139240155786852084378757118861017184785836192596772419215916450953354391892437727449228903384059260709272917521681520482869008031855645761007223962504499245570116449722622067185553621461526972083542320677477140549422342533558403095902390061464543030302043348533727699826698278701467704389073460373977443550867670144964555854638841767603546496106742359762816496771130290973650972576236898347004478572037315802844392016646401668587006585987053058746627314118720171978985212918035879371779098289378995781355600998263821267391518088066412519613583345183971485801387795996893355206193046786380722377983057053306716576130707929353866264760292187518871742953832063942058466585369798852221473471632006804616135402524184461419152338688704784626499531540586691647080030583794153266882198142389898080799710028783658239135080111870673832294875603659596035316189740094493865266394557961061685881903396282744469218209951389908595910308605440533947955680233991785592939621148083319095069380421535788820898166229076821122286275069443710446848276304312501865462019420854837939626795424207229024767382887339503532272252617208983063719067528141625808666757867447936269140764959905339358583165697258891937167684920159245555953383835543787505475007065991106493088140032849311965104008722575361113086941420203017521143075580337097334873401451196901761118939437851584998339477785679557932590607999738828718593193428827320682517124828442630216538052447435964731188193024644821200797611822080305074150565382996132246484494170806557541328195919955323036226297373967761739104729219718819160027654618288679792009749545415375514105689092143809821693614028493894559427812987595425693424389448986268982846493920937244390236177737023927071987051501773847404607415165540164447098720443440662022219363733808574113957711138989300899674682356053981472435341329160912037413751191478065497711287457932514887335416738090108159551239371052735756667863020383034194617059161882124812949257913114809604520638362937315628090757299652381737948825156626075403571466846078604498584665264733784648860525560113205630019912360692872017385028538687305307318856496844726588737896741779143728069742757609146437436630777574651394131418277234097884259828248407237626811654089880142740630306121872218003533233791982036753510757679730227955165014821442733703878576868955191030028026548930081285580992659604832934551392564575583257143875429064401505389958601627943805411345845141136856726889776433984081718727060645252548846953206155354817072090769864393563541932791111562802890955932904464843487129708753695224617292210147850872269876992524405381123270529820222615354311603541433907915024153294240287415447339886289134444223135441972921400620035066677134771081435623531077757876426081921482715997624070118380827523088662058084441296248484109396805330218388734029331392896122333626385648055282359514016124680308143279186928489922361308934574406597986647145237326839425097117453593558518248928203697119056310636325192926648135255608077177913964734727116553565605143291894266597833230394280446787915547263912371438847336028225676341753951266702125512374562201999858680393894878519342560613739472761786771249020927085449666916159947596311281084644278625839216406790554478460518610179897171165811417912816339602849272974021503206110667459769074550510190746793551079367925075018735559419870601359013425273917187186943811168843882390043501493754016837811562344873810908479128675352494163733745050880251522702672868013525175166724796161209229212300108768840928202578030534157949590737540749433526141092054663747645196535194529523521980593423599629866984828252321081042981500968738542141347393993222970301930981961236969304408381974147950675726841702747005203260441752793388537925887543434998646890008988703831758707872335744633915460551213583005300465955733270457581381955394354925663898767309050709280897184322232652148367541457268404604542050803670434114675879687827987859167685146753027915333149078820576300127155950305875963966537970575045997179963804162242973693685030533499868693576040308780459420642417029725829591775093467602890809746981583259984746572013220150779803162171967249721190013978082114894462225475162153758856110682756234417495365200304116879316298117481463765731848500466479113102922774199666419306881082370459502607885090763888248250894506737785794975047188349581505149361821725276002115957066527484649208641620974335585712716216159683281185218093483273173309624901513138302211399190952640897480248665326681605624034461619281331237055023569454471278661788962055329672174351414624393801246960811433627652605367989802993079294359754449986818450995567354481178328886514882484292117787239120158700377358243633157329555881018209288807386074503912519750880696663962389441770672788971924684215212927314805070430678901722989604816039258442713796936253100064630729487548452012699166855205080489480926637148166483757270891141441566736685401012578003839484735177542329035992403987977405243755468719826006096056829805119256626782150554404321863407125909681558366576076952551915526276921470137075479601296797356932874401955272195743818235351736916385337159923569345171445645195477898273694910728656488282733659119194844138116759073977084241456986190871298848369848031099699128435331377996806813039225166127341672272552991263032679626303440537747768296673158929107811374692723565756738864012843313428218706218160177329074612399043785823853561481085955576515744746337595049454286823218011236083210575520147902668110374199941843343677228542215768965095896602818249602833018163185041273632475525164238345640415121472338115137091948262133633142079164472195315588284639789843898300967432012901636560314097712914650718171007056386961651462760112795553410689627994739803337290820106243452557096716025464054909954785254462942352022282355719363464202631911337583404636822940726033136280715121552916716688124937803969453983294497678391343133886715373897343260867410813143420539260003636801224926738859581974226055037927670799440129328892340980715446210830093898288979047330063055983225385383738440590300850910355294464125191217619253916684168957866710889844822563251941328265544893342376709780764099834247948038943083077301097764058017428428777436888015933229923033061113356074771261630496509585024787214746570804898169416274745695090381646779173944254293910574486477282429810389203914964275857844993686904097002105708169902531521481989744218874643978241318104153519859458446553718595929664978688392738758143549938835034824023433775430238942013790647387206615719292670243104698524023441214541613023557720248128125303467671122353051816193072045005927646321826067687584656305814001941521098289219773645319612243874025933522138672882031297338291686436917091506239829400449869508279465383769075786559653054326723764438674618590362147372151933081900983562236315246438439642470351508825217616419938966713575158742830538633942251556869372397161789308253799603370177795093053364359945299270229276751464095198667405248254594386406288341133368398500762305592759654139247478781846629004238506604941737025752053024201224538417676456416304414446129206828099434315507273999955981667681654352180900693229692095085255255325604501642703664487475888618331202693922466249026602385965373690117407159460309935480023199230530334601524647200372727864343678951609517908961346290928739232358057526766110496879638687296770031517501078170206017994201308703989230373974066482571486607378781284971130115325350413743905577092701818793273874815755499264889933210012225131916842848211715076927498153554045721760659864128961560525891537405879327159873741223531501346980501523389110258629803759521828674592348415090501182188081002371668808874530557719798760507655269441363711227176941007943766986764804576169589088172965025289163579021336290655227784929277185102143302638395857672414720400353879232915041977039111925627668729357492645562809938768016771632077251954090882060187917018626812620788444876487696203962752646544924401667257394750623806742651683648338897500286739453451472482554754981489377394728999290812213432926649082029172428893766384708061765574506028856834067608231094450299759202114567017623081892360183896976303283653626223503305591111167110129789685080613685944726084563321302079022417967946009179901161375975177964713154249466277295637541241219370014610312807392582075639339369677383326110636798169944687573304233566014981777117682563880114415913800425423919153811274363184795170973259788280310646411606366020612908160339295080161232863989221619699468141761174304474386085228517681632948554829569440189515811099934954774508195425010491657846853254909410772263482328379954996441016075810806248270660408315088098225867851015691198686795951088749176708927972539827395133319519253118861265217280590741678324049094108199759318655447375247293815154783960409009835874285115119275445234672702166210426544355408543820966809988211309560508848167530101026053103692910047245765232120519198020682487770477778068108508596929324852557072340500882578968657304103101076506212721730777238837524885084586622166989968900651561323196722421988300451716660385652798183377363134782609017237557124680170997707311424749037452802206846709117456816121023631821330989032059975279356031131492496593463013769882143014473585977058994031363349044578683922487160607230350008621729441288157840466373666516128588872527241000166521832086213824985700453430982217609758151461675388426366221093403778839883168113678433395878400548025570136112348548609800629869757978761537032375221639339039267686672604298891435258265595588388228716746317877270981025408812158091868236214499730775948734356646165082923833382013393223398524593944116740115825398273887945661656546191156253279190387130441231479197350426752325251930100393466493562267549900183369308648750588591726150600369641508963245965988858674095531650995550223471434023110089569519001499849847460055338833390068223761725148701144481655280196880976429027635012181722189991873189093590487114830966179681509209202991913998849604463067355070955984646930120595254643048771656311884024223311885354724188400107204029780638721891361861132013963187073389188679818759243454686616159188242231564285222966664199260024827711259302462691604104614359740247522469084079634901243877504355655768810036641886830929127703186338028795994505094246535410383738785342958773972062590398452949070701712431603109868292850165944564165048035100953498142226375696038268313090912295380920410761228796757080423879989210144583288839104272088534397505592566865914609510019945469009358565491534773765650477617388103982570310271509983265237462188688800903612216633630113371148440220796428307698231092213304817330059169398786654101127958552629064480920381024715996604120371152065971338210093812890017214643948781253198936984288253275924237332867119229633881164112776958806389364597561183663228650500548982549648822440415390551245047177688513138167752058734162269894592549490048074483844366287305101027165556425293631722973852274917093744025769945247423466117530179221794796286758203496039359202491418187204829232041164626077851932938545891349114605274293104118920132368936313663150307066880867311773394774098220332498004601041690020829835298938982230135790014161427607191027104477513792575649444348121736465518007545880708264654496565551485725452225137263261457046060438829508470274171095163813634095147722428314779319175785246118429527853436870144065415682247756440135379107047257482834781871842310768986652773729331160173831350822073970721717392388083560743920864824701997896706703529152335441271291768210207933987808604614245390412339220020495143038242047297042570476465892295013924888384870953046097920433994064718756813137611029062122303368299535611524225856143278725989252657548309476870955093405583277753889497962601443668164418600094101368480334562324949499926710463340822532325203323979793196824821298884852641862775485668478296389851949700788377576817560634970187322302065163996928771442467178639215830719821025985025057956359734077204899582146493911315971950441259803616320607255912979122072422926886608569049279970915015998524843402289863411304197833659785356543015207736741516459256244698718708546803106814201604488929538852410365900045036977943123876552862544894524836216623409632263396759421166819087445862464096399858152668216868075670656179316083395516390608529918551284770927184043799706299077846023637561247917256657178594800477877714210723710538871750851468072713106063680291236821750862890782505168138295288331526519345266099038133934399342999321672404195164076398901954703157604608552928697167466839778322840110056867105322133800658406337320945553791165908631609192082084137686590573058518901971418079348381159732148530279519562446760314463607757071274155595883671315203862135073551314026688084641408017414753893994211371256802841267908032840101950068966539487643837081195656446022165476200270761652918049859997510968656731788159070720211318419710797512621536380228859034157948148582996673948623841004024779915944329775149329103440230207609660368986169488240192562107678528348539984013480028464135166375410667504597874548204425471660013687762889369268929419065145005601431083206945560653307953935625549348360182778010278289894719297882322796915142949905115428399538817382701736818433158666963294422874706359536541857450109862828712962525783016869188057964392645392353358463930290834223387586571356941219539902988647294620350307737673938245724219343731661138368710812002792062714567764157719717710003688831179300886979272931268179805365404476859584807714061731290655649430883179539345467751181330618772233222933348762043248098506166449217293793555376059179091122949691151188288346883012048556165549172516069107975842809673421062540558409752425400762022987047751442086584786871259303122002662083548412857411507788014079805660595683923648339099547683034686361099077609312032677518062486881193587375170848478485355217170798990676205087806269325147729016918417139787463019696575300001521148933526793572556801065684204450178629679505195515960873108645343001773780293565421057520804783162645714028107632153317185128623844783639456216541573801148719653176823690970113631841833135937420718904158532174526187937401143741179953230892224272351436460608880036068034783281201406963416077806446678515577216079039783714953942155295684838158916442644080044444659785411725954042926498021089927084458391071733201681064873070239611237612204145590048027207657143926037319643644595461279453381330306901148891880575233769109235394573935523838470302133351729037363138672362853393918878130913432681368117686498403931801070943316417479631127083313064456928778616894866391336319592770696844380191495144127078002272285146049483266952149993223450871191155965420177973499682243627497166747592194857323477168476036997322336181304639325486038030951289128292178735124438584493028185227544644429484100659578568900255624408835607103791582747756973244582835658121854922170618616811216185775502647013040334938337431996135702409700829628959167722331557976365208412958436407677680720123209936666301682837017058461365960337137726364767544536786875314818592080096481123050334869816994147528328729465474720155177923175382787667425552491800407995329303008343391509855813360106315095223842085179705641490044080858131811244103461674992644497974783337833953450496812954944251639459062759259622135236030213901741504246584656807537569862268852336516779762478966377759211840513763418966672485640225647938695094843935171226713584158672180882737395398964392725402597820585789149764612352449938678565644068693912819118202664471398605532599651977485026102994112258673077508090566246209595756555606399654128097215774674196896888879177568445114615974072716480866774906096322297404927955221887767798560452456056380716335464138153086143399176254669120639049549133105506674134050559458135567732928424288659325899606448039514523103337581387534344999728861703572474132089900440838297196190404260502688616357108289916678347124995638862482606772699155269651797953301625395087544212781869894747602201122190421069251401193351713617299865674930491150414506757955527006291320737663912180814006053564769034248727345029222265089257048497416521626133105571706680838847374938951524152783978252484866716611705486079543260172520276531890127631902689397205298567801377669886910650656806050333284874496409263905353381842526356201389160461614775246156942895393076017614654412241257945734840950988158169465246724647342906086208554918521721991396368646016150754200949934246578103701410957315669114587979081318418899692173983154532111101710795646857207168771492815321990878555433952769516175098896049567829174916504776994178746341088940151865659534710406906127920064174588554889812812244869682755848121777497803913872068397266664932887884956662824920050123567221053482197167593497255957301941188972662844437111761656025244840935855770812241598155045502574473620798772491031229985181131666062922923012458009029352472526440608159633299966068998770708618710103375359734131544868231031505454138256054419290124145644674307965041009634463825608477914427019301143637611238594640545401824599422778685312119170001401484105698355178562230597659331987467835825140448909478923877315743688633411251139067512663996240043695187459446649454743317868864524768721316632733373914483009277445374237370194011835075672625151256392122875425604341242310408577179528860190665102790305550126646901770335532975727760891447406862477330243448651891934247158263163149529992888284256772318782757533115842159496341640915195829090327446544755325867975883481422279691124235942035957592128260488746756266080443780129988266371746189862616136946073858142397090469627303822786273738997698624147719883662939641711443172489940384641129129213247938045109821457439403219736564162802903460666483801666165973561573755615970045769455569450359595819547560123331341767595436048855277461308507937503771935452163458050067213999850923819820567228056673665171475564441410717162095188905531401874447985547101351179966397703798583267333766257640479966167901962240120587541880260268163423014553592309932957362700356664239712588093335299354182380238856782388661762524080092050673990153514135074263305236479835931824658304471075693191294870979823603332253248752190391708984896898145456726293885301834734953487709723686961569688767306490567522981584974153746957958954132759511873020116525954227699733708005266483220938913004829696238348245723531091845366256911373217636093071078622314523731466597868597342599999046112294479958103026827396213366763824262821121771253675931167775550584186747858585541839456281528089407220895850507673158311732836186727284407308052929380044329863982962631481210283045865046146042991930050785721681910457828609828367339668716265830089394128076016817577092989486131337080607383736994016714139081514274602273861336846763982020176931977076967485128313192340006485256899706078549718785865011524974452433578631537184234990931380016210116879598673441061227180555235856701011371756352937036478260400708749551310034738465499174269652778176384031526473425961823669219326207673336313569259070835634073904296542576097867361127998072316625422773422856632094391935691244700237854308723740476408986389038529341395423306326952728456019938209776720680335978490432255018210949810027497562446034912462229247818523170750038314849423292734193728310716742503613781595906222742979479519055992804658632015637095781599754392564650656055692627939290274139219124423930331994295659297561606895008892716892956763018869810807583176253223311479796509291600364743321273567368403510626032002828562726515213516848167659383725028999925791012010580772507102385426073023211520995601298157393156924364611640378106913530771721531570369128900549806402907264722472169943601033898445511517848985442902375784574624740319161860541983143751261891906478697002855538911820973366386217612470303247017815322644137098265808394788306692217774161354195435631218746413201857403513231007868575569966883771054107742730411081358192368373682438520998470738495413743583738578650619144017085090616812842630360319140440235728263708246360294282611923828305947733319222611472344644458046546175245840093576172439728954915455835531648514987149192104420319421570526970443026461356668158564392992084071170373005302995720415465212591806188882030724411333236774421522372551270893280082513154162613185113219823675077897087806068390971482900228804048272274872367251490271691786329832368712789298744957990099462971815834904003827750270890555510858802986601856624836049683369224722876282898383479582922374520497272131619873654000045370592879778566276720415696280136249118663821172745494023193097005307734915805934790947351821798516762029332146051420662989711758566340426786118602500444570772848399989638599436476661685429522144878116918009137498626237913065314219014556163935227057788511428851640093114487592392776671652254778021962711964545171292819935110069690964510659427421375541778375083810570590181429241778666327265377480079074414456565576896435684213023265188837903183260508417398731706510507307956441688465733491100912297415002307615266807526195870227279167379628513885776553000919869592346851853275393543526526195307392196341246382303717299566038327068490209473390173661421874879821408685020519723890822176599954603704979048302634684087610470949633649370265017956649670965815279434183207474227363482189728628080002913620718563648746990966045418683405182961086007645125257166388125600470011907379030178791526044094770189907737530200857229587025142761543624037867991866183786947039699752191780829335833490105402447159285053077118808126933070208449720768885406764241764954947608044935319242965822816314553450932114048107690762179156723869972918979373350961602423911011332079298460551117267224292528161705100619372834983322388995274009118478047333892578396542024247494876374747763814952122485009966809856338741980400255760830705170249472221806477211757924565626956723248346915243646250804709177544570044026981066685375546372929806515070820439067785349512473585066127094801718057197150866165886101372104066268328037124363507480230698159676735262602850295721216354458382499409518678558783223612622944415793181431830539380953763571712568444230068413414655936791060407670304897668603815956178302421997451793972375498061097798000871527568160260071498426870708117299063296153004820117476235445368400960209855647084505583638932677479692793441451966189785404120601312353429714927594238004263182628754897116124442211337253738926474923827156792289097892470361547801706135034754118249366366519102503270560078746879283822983657288737840246505187391096271591649108402736990844815683626215139231868577850885637462491803458667383259811415687100424412896581973275888998871453382336425450576079765332782604646862254018131559954481172590729693586002818722418271287329610264379567570025022210695686592425953608146909872489326035238716317004027585945994441614591933988699221816349045009157142657659590544063386783878249021412282359539899677427893600733989409093959005687300435309168749864808235771815576232401782322713447036197810244475463148924829351816757155517765085431634036903460186260706282456278900131199323059136711182158196853620467083370934281292367041265710695007431635450579466319543909093132323295818654571217923137054551156974481870067871176099193168913932847389283409885670415156046561161937534540023859580726371044306059673468135870332782382781329735779198677994264227456461179407341486484001777964525782026285900244773922798393341927060806586236716607521390590846466799479208045339470121849203048273294219787999246869930563823058107561625322206167437157645341162097782350656166598542343557966224244653006860647324515499472186892998218380403266388952343184851755781137484375802925778126515067464726982923704230243422847137730867764635203180162402634857955383216663657861460598564292378255782492523969784054525900872488203853675165376416479703226980098118590415984938199454879402385401437819547117330984562268004952161549724518529590991482618972817166128816003191223476724590971419866920783208773526154029401030871104709450821993541827672628772661418634746247198678486386133552895036229958870384990029724517333827700316657786227328685958917779987830589003719319599758042098268246064488188137106721125465014937862647967125178278612077968381559533737966785563344918418359856202068398601967791448530930254594047025428065233224605633893029887162152858539910494987253275786421676371541092354457775000341784019852343967964732730103278910151378767970138652311431333517535052250191542093738649807251078902989418389548577519134073425976453936264982727355662357593138964908751795901781087199389801390457590693428744442957794802982896646937963775642085159798897764353172210858182820006594945677309483460884738108774577518881675848802386665429295621768393027435820309677956236519186926716254573957983425818295283341519938301556489873314816743202531584084969173802109431945780150818082293149885120428362589247570465746316883630468468877451437372030279818480590724063465071927566030058669867969267033647609463471473879302219365050148724438435025984949026858919491498794199521122635756972139794855795179548732594283773119429645072314820474351754591190950324585102949390323296816417984233910996234692945177599834988161472905025859898695045328553871433997539740451880692048509745786159395213633562123159028932891853870092113603370275837647848080409930641162051985560692451195773685228800027175648062951086538823486974226314611184746401209626934575707971842751415460252454149456361978192341028208576225832013689639165799905994492391265582652532390189702114825353960225865922219725887019350563008338125060524455479694811085147406726507417725670169900470490381154325814322787666844368351961391207804697986306435315144832042087771686252690469090801025755463050831277337336635868745159313957883347021360266857273378139014475890048825897465926576241849279970531006151941729966554354142189615487090942970833661566602607404860419298216553104572852284541409600175806004277088454035534965549564678801375649226713774018399923877620066817232046568525587992509807544568929548453241667036418818750124401895731880632359247025985294823123274846858898488654872507442927273417953595769189053858089256068925961682809257997110289863033391187510260641098679340056964536927079074606740033397829453469297614917658552390278639978346342421984443212179360015775946308773737013784463161891836170578793866429492602846981753933900192359814669711891339450156701305226043103415755894754695897717603482003739442221935585320167881477078675665673552646427589978256635139252019812708995737815064403678013988416209307819606041858289847688051225232087737313548421517869172100756583712803570997083979010855000106466184327760363444712898087792036498848838010236413823966495650752697878111877983836991435324455770581255568571961088514983315567934817514308011124831082271412373331530415638546882104440282433928776755818596131679922690230017904301431777910197099619113410356670231607707763167572461180995827531478305722193262347322659426115776283618739051603842682730211317624293060101324100762605959840381145565267182048226301017153178741550501008803758104979018417207459829191218917437710034893670499106435871464916498300741068867277572976681577077245356651802234301735012717467966775739250975176795394862690180413818104605391471595668783159875722855465510291220877965024593929510738016717428172156799935395233576979757173424082738796673108707821963661254178453695213483633052658358970192465574357922450533542245529522135498960513386953909580950567724888223658283866690108090484458711264804206079492403728510250372830507988313878909590843687895849458035302782592314136645970842907633378449831811504387332168304568812738995280235108222017004057783622161581279325112750053091610005774304621189833341113105611234171946504999085422392441307433740513717482048294348107776527930849553740302152609730553047346549797274985706013157725348331543775390650049841406449563737747131904520490895437475730153731447815107796933663241988464156176592399374093282473504139759364676845861667478149116927384206508592761858280174350705612670292664292401228844138824795997300122902719012433630877988719289651278723229538665148574127627701403710149039624920685101544708779958575788688069614371710127560176270625392498413988677285227259941889368150400556331354349788112076694381986509176506366606086441823608764631524303303056379234388593455625626547872084669616088684766155821076104367423474856859226717704859421299504080142719249279873596171870130198066144739067012603862988771677190380587044510028669339898053441274697370549023428168375081910868295510749758441356031852992474699904602611918635135251961790436734092046876150615792635674530772605170900658633149623820997071174706726606987989473431044285838362768909235296462211320969131408779436324596395157621361704932192322172761357569055675258303976662316655263843780853634376030864521986174931730753732958418657899276859591936267763535767700852332406980794844036989084801088198682162623867046576009761641370633949402544881089783216422747899115450798432370502464767382149145916345188378853341909668636652652790610050963119105559529673036191334266184577605966891100325390531037895791727992802152176714181369429595678146936945595266793491342320131243089821768281856379366776732664469166030428022225585300101897973026529391070639237345011360522560164371840352886779435365254594904369525322157798417864498434419372887410697763071139360488997610718627605215017636735243276999829513459510935248780735227529942508706918915043285665488938538461495346470685052421073779891379842107113890334831064893632198581386028092835000650230788175564593642046951915648552324444064075734040329525894769823886330473824367605788091345772765449424173441089231150686283546255620851682778319688119608182126150678853148990868396213429974714879249155889119997276041677867736188161420536516714453032929362090006951898930263259711757473653372804587502106675237684146247913842070166189560958731425672721088955254735581419946944269633855054536972209051001074040032133409262608061683454184479740630844268958759173168209525457070502965960005707766864532510061750079230893045833140966449441646550130271889625950730355543086424769786118522356471233782390428186401468784677641992637157135583394852555357119709240468459445567337884150888100761430190077340463398855532266204275580073746249303229947198830688892263836936724740868478486286972432502707005576889540234641069061465877996773798276946237796396334514053483855515426985099500905885816073565079746799032087695391834640413143082305130142728671831443305463294602551672006607192961301556645810676176679891815818753740546480678295791165603839841770345218076132157021532186595887548998887239050357940634864236928549261685558313237532881910654012389847064071292469769049289341997600572566522627047753163029107054243874626799787194563021328392113669062063468458549130349966694114566445240600317109242806712299187835867215276082803505451687623090813841099263818049287185392571981806565859724357581138411068129939758407947534133884748839239299811258676844710179049101383803570451886359443372350586136815983799300890011617560931342578642692814204821227959900961490643446411741069977901681584105003561030945761107382377379494742784629156492189051988905943311720673182506853692197595255793074042206266709591406448732511237258104523612865076689047206938651550394163255879727090851003849789507214844419892055467126468302889843144020988963661940816663098812634058961525592691153503817486943008420746364403708045069310271771937433974867130944324354397231629770011018521712613201233182346434723764121121922348592198588536151696203755078520297531013228682147946749955646573736232466926549893206435050896424353572257597219755612060456083165259610097635204519671040448180010700884494213358559836301010944418456917481306361772895631934670380860639682165118436978443956860053358767704188468022716536438994081251799451821727239651581045183983677318815146329368207532448059273636269510178721454759374499421907367759067043813611571140041662985514071320389504027796855524279733681317376061360851757471582147923719580403842771053950203718128634215571774838279431957646760920365692713880475333210442329115685902786036471984209871278099361195459125959276712089554164201246629157717910585079301165721651582387935483611460321015898776016715454886748438528786803748911338775492123796011189554036401688157973880390057602048108281763387886495479767887119034520328422857587713606374601124169487569097562759540686178072204057593771067226581161495332599982970966024912390693742006738299023598250301283078368514388422602068486065159417282228945823460089241988450725658137524672683649272266721342687979763130024566079867929525417981278541764016204134458388189321189999959655586824850092538778053225995381308419685431427101215637526756088841744903864112768882864794262100764893125530497667876749801169790326436136066098697629381426623817540792615394137539179215846133824105947929543417564458867993693889742950405860148803262514344418930767009423630915248108979132551381820608625504163839863195210004946033188873984222496089008040907979350702599975200469095013500856657613096978430487122283388392309799911441120668193689798892551479647382369094739132941170101142762259683027692195624657229307181980714593744834488264935328247723565641816757984789829023024538219167656932659683970210074118026987138776462519642496659604257590667359060074422998660452498226163400748332752555126613903337537930950226056802782766141842157437900471172389396239897779627805602070917200297837099395986347191365586030549046211944892862358870749901246481883908399026642055480350628309948534501887392257965842456783408082291803108975663377258851494657967630393205280530154154697629267769045062674379175408248947296131395704539119537019474289795491235943400406060946845790550587941717272507323495289627913480373159980853369667105663690175489870155751366213702006567744074754218019310311107712865031939062598684255344978218558694240316284170808147456873395681692870523901343760450547204944239281080358520745306942709440395144787257699372667588324179802269611382465326485990372531353627598789453676299087874442830441061182073979604288171666196726082288811306150561073984550356974813830972541763470113740596403097986618634680394142868648312948229940434293817473945504810987037758644345074323737036811725907591359471305683743778907929137732598435938016480949762108913776287843921204730473697730461014225761696320138325614924190027029149806792434695826417012375683194123517902107595252773290422767317956812778920396711531151220599010888849261819773783496427584480618815179318829666930137679098803541209991865237344642985443213229228820926489839893072396363053051349534831139067521919774001191223670154786176406979903329522342062391196818548669668187421346673724773612623357732788660986139307899061956792631768143094326238755664930230349116877806201431559517855648826499627406868429577009013600688296586131826790420242720885823006597767953047096407966401302468411814223982053446314267311748168691344214107371279138589124001975405014120343468703766960436254660990606306204205781213965121319856852216900806426736914235943947747070178544710107697944600468350864390949500387067258594157916399855249182267354016946703204384112001653102221115696311444448777290643622021488753568510608312028950990097228404514535750990054024127645408507399006325546404611219484572589621760492486915205788215457667603553548334226854416241143603428052852938069865315996854808269097164494360117944493881425959194119020655667647773398367734099905107563239954233971704354673738067932457239451951312423352554288782643074408280877849188668963941879298703538713050718344845609442775266428769956321531588787612904885343425409723035122924716765579670678058256237971608520401347582463487812930102904365838998165413845033294011507230323763484396400345908454666898109607652131684631427837664891879866791342614844567381122909042978456077238488596959827843631367928467077873797230277460530515601925235583399156437014755675644988775255993202446882707684825979415223837285514919219988279132092570379347719514558188525145147058168880461948872314703739216671033311626311625818304767354379396969252578712986197412615771171326019940799912428466650734078760188877428926099988356692103653618310763410545282895090632807583354828324289861548360949146736715515205424246469161024008814278457207649107255401159895077142135679270374172081641767884599542432372573640969987508924007988873387532861012036322321608772620344421692587038177620019607901000224424996971628068455811079337871000641021968544902732168031063465975754222255180224960757009842003840211345740970113465652412453814223560246982834780553010934105701701828577406558385161188389035015904087713735846250630305682666554046761864997686889279366473710839601615686217004585543887126351976442866558786379794460279537438206861402660540872750504422064649937247878548918857248597420412819872626198684470663948208399721476337253726599563528786707876257932663609394799148926710025049293574697879973653303300340692858317722546896738526730665689103893373266894227728771166495557693585603724157728837043457774238248835378269400112420613425567553195838118730822347430848585450277502098248996790531054469553725988580641505583685692616770346530382872397541947361919085568242828215270432818358076419458358463008358037765568301679329515080033319110953638309538541903662712167683236538801156258039437164416409974708087159261529550133500265513498908189884293991325119332047841333314630287931639320903791752235261833968931427633806103069509826877975399977730941853204067370770489021173864105036423342236783464605066224644402085332138072453448586264821390444850636020732481980791966615559311005557162003352086627787264331184768270342399711079298707743263991747056709329536244224650175879117903965815488498094280863973450165268711446648895912151346253408104385427493978303009913415491141001920535275931500377207728022442547926110351647537753200936082449715385997845005787159291875932692836466249252735180736500264515295196339352514321119837880355245645896124499361482563865601693396934945916042587531769854498931370564230027678702773803950933002345419784757319960971993081437161812073250658770852386333170428659564480928936390989719338419147139092983795517651344681127818447126417946208059211487379445522517477515144010850972666230857156643335840652176357924310713680571576019470372598013001745907232885270174727576478917200528605557616035051316243710583415559018369902453729018451385401887287521049703531605393614588008723629308186798231219108393799482502082086397892752990262966135546293238471227432337869739596946555837972516965376368922332255911436293217292920889227069391443519937702199436348455290830546990987877919418049170587018733579509537554633558445062198276573572086997154014404451729373537800342067865754982262384551398775093571434282224248025921832085315729133676811648528420099649951810172010376899814533641434192192371874285461964567169537366613612007883477453921251328047043736590165402305240749038770151754490090636038154586595782340371822559007353537767398239211190751943558301709603032564162207694260119439297139464043230817684963331200239638885751657300155767490862104551851443236693777093933684903888817410583679042703062884215724687965674240686566126937466277765332089768472926725650214694864448425244916429976707772090148073437963217051754000660780065003675919410120470332765106403749630720330531257143579164756879990998300956744228799095807633944736731946316183820682319474321684361198085635298131372159056896802561676977049845801322009168238755811232840903524304420666840009478532366096439745145073381241983678980551250358338835806869854475006307712386393664471045245266353592307234376955812831021167029922797180049006641561763118706007689823077354198427540989680713259009815159020957238349795756378977742871102275329367462313133456440455474341790091498914494393445319466887152108271817777934501380891796965487535735549026261405246431262058790420043649399593341113024685278465059178958760273449230327061612187860749275832676841389771466020947689721070741969903699987648055374405094830565618531034172847067367915733426728289468743550396859800932758865728432808982138391959662412941993771782386674196511816207570595052657159515383665636333468485938405277028684432783397214938814764319670305928736974949447091822860916736729295258381534636620709033382692419030053903470724055547839596503340191137819698258779820473630365029523874126818813405439139019232272142591504283656007025591734077484365473213444180740339949833114982689753497286159125320692196995725783429846418799180695763327413227527731066607128786066731819419529497893110337336893989408298604595461062449764837415490321853363283959292604677676058834619478296327578131445762145663353204510773370735115586762135675809563435719521430258377105858861527097912570907214464852597961810632263446289536401736223810879233132763883981344297980334952492539801052411078184677415961583855468334094947405936493363843036309527109574609027654835077219848955819784378879145041773318040460894665456758630560488692120696391868986358690201051199900422078763938814065396158666580682713689530039078561844365253992678998050467910849867126393394630851954858021713483015221233421730155170524324577906042750590755619081148348710682460924355869344140952768136831546287918693045367532978751073962938043901325852877939685669860533109054851560374450356041141842444211073764488514748343793409384208581580098741082443361344916973726769099192703358523791328063240380318081448194229039472407861074546959853501359614617741710662984042694475133257545167957300184409333810712226337780360378265077871800204196389498872651682753554451606062718875510764167955440550895736039093276089721575581207161206900579779801759056454132164888773026737169910441883497900759197532589293743702987101446503555546473651107635840331796382118185602441101978049299989592763411942138800985236423384098402344379669443658060865818004654935856879981398641688084450162416643296941736891907103594909579270527388604987779955636290248951672074628761460093927702224848761620555681697794356886909667090155174085230286244356734847845576943927285983448090836599732047736497049709806023776265415443182006420640959036659659342911380741550016300476881970075526067197166317268889359011733776845172979936427405833144915433231999658877966925004021172426912393888122402311765158638088958373254277968807216350570229400727541589541193913169003352543507235545887060574814264950939890381183851047203201448769651347833829708766397030351399713931208742445213218877548272763511360695797136475104640429230697081879900068613145698331240620421920643195264637273641173274725930024535743787374902961588221374767416917956099092380501695942286872921136346149326869808805956408347484361830234059223954587772804176045200890704627257204842849279663197900004870815601945630243335207213488143214033917443919734104802421157448015287480535336777706442168292301110403401205620619086032863238104184272840835009498589897353522725716273879270021246688102011641251098929777412835272566819621540851054195812833290280685290050340822657179660793881122044199045361424382756923002971396633979531626821584471388061743486711769290659691050577238056485188435010009168381340619278413721898000505410573227410129899004710194286152324865492360424508342651801415835410738417226529603566135202695020414612619106204254992370941473828702464820580580027156890507156514948318515324120467066350554953971989900920915217719651608049604375658776969106459084535366593512202044338444526162005370657220569312192226074890203634808644300819810647776959773730883839926858089863433763834649996849222151900540544905112293990089370167155705109794040099234006379039660393496768691694641984040995136416641639142386242089589367996007824967612968157549559894368540706693528032869457854682173641102674224206162625323436501571194248497551723670158573359590854290231150079121713241394620536933186277876260297160724934572754325905105284062905762525915446299255858002850440458903520466009707905735392217019468817378915697715122197539495507643183148917524459499714481400242978653382305703709972290543745937288211881174700308290763389305266778147621278350316370470815721603795964838605579605998746586270546310989714029444324792037923933854780442317377675337907296939270269715618801843043219654138713930915200427438203788879273297789282524426181658051150969579893831344569753047844773341954732442623746528228266276877620688624594476348759310770377956923007765645218679060739222338690223359343876889919715806178795325983998011246997188308675565829349290503766689640509646838177999161077903181050713733390915029867644126728189034446296035579416508726507201096569398555375764224192317215372920999683823452442570291313890111867039788101305448657132776807831387265718923042306156446633330620693286737553256642832326879569816190108830510584659995757929152156382607049947576418097478486984726327835245741700438856824534061716371478836992127282736667088312704207813435982098361752140046430378912879390824883776863915081373314809622718812208081484061432120902455517885473445940278787876924903956364154041387456401335152404850039650622402935682363006203646819436907336527252334710696568588491320768886048406611290130988664050060935695719137158502435286478650502437263922208368230182121114973461277173515548272340250350795953160141859328513673703734839077933453195392555272067707183636080152987518022552963332719797178516411673032546649310373625122311087631596188078678728126860796871042459737614520957632966622020237215597914847829374130617515509891577085467193831087806231680571682811838520055674844167527581607245774634097515472441909799116338538364126286532309437504730536837644951727780338158020055139838070413444714083276981690374260098341961997556824100594198368437007319992281562735010092442976607405438025226575007994383209181587388132577716233661399290520759959549725631205955378830546153690103065461995988926802171690867170641034238542902073816537399685840427216425536084644304245308409167647323870770498409070062509522710719862247214060298460892006181082038507825979525148506431115329611656931836915984852611684595770377860372671346417356021634206365294054319475273418191189017651461181555823405366535684159597398288587986795555152522141583440307147275908752140518018809128128192282488063927260287359099539804225795460580877043955479543726012133323466655756190728139600476399870154708436406078136710060009712862655292863717970505036044504359729733830439276422071782700707085478531548171246662882572542381240055886252693974293629756947966052735653133907433207318129393261493045427355106977799324008604895115808166676373777735337347646505979400293878221592790540038346198958417082916839370085259163565873233841298475459427077239947460378647517633087178040242819352511390582602338186786220894690322640256611754304730055848306600924587897633280806953467691744738874699752182016411952309047366506907474843413457359943062380633753151924345932746588410871558335005398625400723681096150514127148964819691406337243592090727300743281747661440403031110261936749923588810301890010340043884295624942129763059040400417141424905068240827500880836730465646551824420682175193420669147008351341062194098003589471451508097505070068590734696998059980041230871640332411296837703684846125410578947732142958124559160164869277461817470750840262622101883991897993621858959976746051474945942286446428778266728617072860031546229162941467302695365405160397340296903655161397752976717328673303873416948414404066063225353938673842848522624874527424682401044702129621133512790157496049465366453806410006814273417034006863831961395151660111757783694237320377044520253436516073916469584156342322020593649457086984186196341166401652654866433658291222132950738351084930267760063395270405580744679903495768532219635535108770254113475660678535934708897800874990969764284960416945657890479935233759518410926691902315143152928678607692379948546307349413126845753941024973574469853930481818889207722544417264700759986760020262434638349930558606074940677725765070735821211152259515081478185821414412443973727673747081633009907720359792629227298389466706543239492684776100278225653476574335384837329674168357854098320125917137410872240923665567667789453829267594452949417487693763199569529119134281147506696147549759951154327155408590510506356935878637607587949910192477838241751945456932911116603399920122870364252704497037025093786874176083980160812432419447181803530034266746081146949492896046368904109016755714620977020591352216093800365662516718495196840782615268238135368814238586193528710143059933866612502248398437833550751115789204641003018040204657690933328614218490310835993601109473741700794745224967064363849539919936427189169011439697012801444764653825616630424238584738367333514221836971013047521849100118502156634731949358178328687216994218428167394515690151799989762507553617888598995804700569774442737315211781839898132514594471735598079726186337472983981068751359819681523591561507552789785042813745537462791834295840110791587072336876730445935342628692975957459028460806354266668326003767122493503477048743813320971786871808294899493836666852053163383091330689758733294751555824231389462404591205866588586569357775065599420813328529739623838967699381689521499296238662998307599307287173386141622300829336217590965129497531944714519435424065217207612513107585744402368933841125228859176519859199464618245297920692393682940456330873063090558351629837093071489209809715509379058380931955246554667739162382801686373093948405405515445981586570034134335972101368591982094929216073068998282819375000004282158299688245768702020818967080775303798519240038427499196517826669842174132866835959405835468619437144901727645331062073386262992506491091628258562390507496662304057698289718212143762915780017227184136331315166817919344096794213633351614929879227806408116036352109797318479888378047686691479424704597674304031819948346722773339931550588144940076244580079001950245340019085925251218711110527870749031997394131977900281041261075263518554457734230777241415390349674970315798542741094713918275593778617577568051631710949783957786169126208408948994521260354239280073148638197251746056398696421101268277539467909879893444545627690859331482764814180450427127007045362545671504110462259816397942939172866063119821076331821715398275814747251468172240510900710302032360088025372504973666234214459205532580589940031761936996531546425755195411865030845344327539105358266424353325862894623309685005277788826846739916633579656895442436416074918947632515783758013823503837977789926006357500514409136322773417329321901735721478546360296108829966251603633599233402167286042183935149748136606461584958377342197381211615535991065974820102137191620880891819150070277862812318651594616870833329399531662895323018815347868401776133888714417699665457908935787186376844631913966315734055932879620189982056383442234059506684137163575220134250758262515824187155779822185030547756957320956563048624155664264863184720245780653636899885219118399856575505466083931015585110485497126612433523796095946932998649841431532568890331355680995513357716923074346940834613417626729363036229636661296475029614902013769907475350514739947042737197313634827432329848753614316479148993400032723877413018282879980743283359041757988627659515461769522067509617550336698445290781438850713625013667575350910190331523803307065607471686450481166543526154804811662903349415361337844281110337748113172140628709338425622616717863802284320823238674310886671471167393886422429198717806029723115517893275599506036958762043982024980091545366654914901677132875274712123598940552014036858629784916290607324536310049299912186626872393475860592040758145183087665097184568900885877667384196679721140793363251845858092454999566274145160323272382621609919704621761450973439885278343846597813492522965590098000006744886298786747049129202899492970375719719291142427019974856437382135859545260973053113279575174218855500066243783046694206706364702186159212807052787486887005851665714716441378713349113113790920886454729223915006490803843645739614029285655349317970925733739568840326411293779277326381330344641664998825171482902766381064638826596843560070712415676081683086874520662073716370322797600398708277444283485042245906885974400908160281515363449861966837053992819706690754692544914466333846348668746030691326701109342335881832739785279612051195295252971932415150705781266298563813692554274567845106837162417903658124254733205356555247157945383078145961742299143044101296661210646995538084480169962555099247777494604337444002923235225655295457800327428390428578199607200731605058525007740210932859640819947533869319285092411981583685578281837411845125221721113669904248835304529131322932931018176514930979397722653214255261552698595276331197492585936732528440405764009909395283921096421126313337608124787445729114363736076616366150547674866811725881974059514954470579567713702075753559720708138812511220579351318220893927424342846255935217627028581665346697001217300715362095203092370898493678770738361881345943431158962129357596835810911841147534328724459941234137070578637052176104707566940536651147251271831522383876733705826428420921714526529116961180135146233673016129074897682634909981607859448020998448577570407995980652826430162546165270619849835774788780305373475836228081424634616836890660426993699046413983859566572572129782653135640911424157344309193202548432556540353877658272430127298472888828762269592001002941328150557461446312103150905291645437260598132214440572760352503508841136816780476600298729665084549833783853453554926607678572496005643735590804056200141127878254016705177967212636802991352341663141614592916289823552465488601882883234675517781937643188832758993342011415938895988513730515265533219767996956615997179676465504562472484257607645295505281116166072635387342601136274377956034272836673220512288530191799098275868222714245987319598352225994677121058808476516677707741043547043261714467482355229843942522882388363007682438816183427577721993171882620454499164496371363850955929181105139385169216407993926494522505302565944735542454596676245636489787746200613803175840544797151542006237401352393034905477019988205740100870119019406044749409662720106448322329811252062604102589478421481599589447076373384604180323407207110724994479526452044333968289993397329983592255316636589101184229352460213632432571919522849040278975680831906023976318963157050787673005834705971739181411936948077210728488388261994681902901196303859913876414222276442464064144763660374750300875822621007346356485940721364737997148713056456803041616425977561511940661181492671102716464043341012908414524225882120524912226952460476105477715063055204187954218918084768016194491075447399146265684971019675398072192439496152710203397995165984846294317701971029588978209645529814827762652598441992992443882238765079542026927873453110066671451159066737051846697549580478157640988906497508667362659797802710846374069261416526691348459437689418196082171740067840288630722838049835212485164863336371051118564867689097590025721239637539592919200823034316823024040687584088958358355655750411222701892124357733327772705866213413668533551777383404012159951945142285842661339527014899083652811513430692352427880870844460160307297950230751863814887227189604191350368661165572466600462094721578865515416128825628275205127666364007156210556645573484427260794534844143185185042329140825516425631101189117714436188424854337622114523063761265347980746095158489703366155534543473778400461191944733378288780231350495264211676701668639053742210746197824223546690029578277991984813166852612962408438349349724368752967095373368219106650387074155708244516476471635726503441685165669424616288025866398374853892002524783872823732195542075683811710265277507857379719024006171813433172056830324509579806899973588888735818920313458603534855499116211466572088007010202915367948003492200203970551895920160298125120408091716517628632754704031704733321693908616545564564264414037946766368089083544509311169507174009091146284640398267073346210669639217768275173369592681168040012477239000314780530048538886228905214113540662493664989530192272069818427630131593258692909249898903591552831641784355972270018845047697330707413323169074299520901607831701163778413703320674165827268584638019023858646375841548710730183576203288296453014050714745561139010552018006391776629545138143687435072219637168914416916598263152063143230028433680694751221815097830670125609460954676904409364017564232039126491390413051481226883532568065941710206297487741858794767208723137093070607393203993044022957160558727129248577203238016804627088520419736254970594020458469104033674218374721258260214091821347302682979138630372204070391970629637233091557604383172015884172813616097753141267394873484103877997761198207028289302465838902614031680815012005177081213710997860280161833570423377662272439684016731749193514453677785960985128738983700290888529175131097536477767018606008359715255228464988212007540420946595044274751594698164051481849332577974322153562846870384496607832076333558126774153218567131203677037582216258545643297926080429936894156494788094047613324774982388353839200662827309705721418797061288129356657216275521401756751414905894279818483269551826437885987315230838790495643197895138842753244961756660400940511504432387450384491213463469534775784956674384123678163881580326346641303851177494453728496872178111351532879500115256071664687067256732750498215121529369713203313400000638595607639467452791208046306383746473231065615208287394103983016629701616964435604180741827002320659740952658919106041897825248062274350263918281539495122639355473407256165078274919809220655369967878809979705695762709148995973975352755379510143346047902770404659762064085152905714564790265292968109934358318833988120827458799357099411096705360019680562120197302285678711089159718420820015354848121093365248208768729193302441336610876355740105120337847619675601335117834853659010817414726994497044406652120543975124043755515649847839885224061311979749650196151721332754928158711764274040151225432369188109788673966954819279080109660620073342775653157932255190645956869078636452855119927995681819655054999828926190045521274459657561338501323577094780691547390167162750853458593390762407057374438735925703720998715302083348524432114353027088170927935318242864790604989462014940269312607622059141908757053251734215893631913434471059829426042336541821544072300323770328622170737661295010512397923185593951117220295128637260673591537695179208618388270409436730197241392196626272347341810578785752392852572573413755383382119377430373619954089582965362405225031172393284930341350858224254945921791995643992454152686587407324799927469001885961567609360616588600433977515545869464766466644879948869593476161712337791862877914939579207011243332553685915266921865175018061532568977788410578580260407188245114142604562748451635282641647183094714766303279360739028965462345120761324166577197462959523671197319576343078614984694608269650191867495272209951345138451030822809048508981470216324068179431073936259046926116361543349845215573008190984194680754823691956810859267268991922753369619207429411877015896770799123632595369353236955156238282384564907711224211611089476424790767788578481330342568484555506149483005202715783645617476441854859524399882300916458331048487424040769952215909399124202016824011982068180066995080287346700214929791226394807177998905922388574233343954924764543553154500376512243367536514215839051483541456020661569557906419416819254252130487883070185446996540806372696628416523774020939577079492506231975039050911737466313771939230211721406476138194734124130515088481588340321202254489493153873951603966215350718124259291850998081200806145249403190139099608650587867776942745853377250545919258583572581486346875127364954313502478049535474611169541741301434011288228171320260193816761586805800642841626474764676654485340222538629050589276270934278906652269760559248550242847338082241926297102553869619926062242687196534661729700990494642498310002178714809546196952391781892584062118143330781868746236407060856733154737869870677082226289731697242491066720663555031929514882437624966410958286321704355968514251068579141277737120393861381712686791684833952330855231068176039383076137773340711671765405728685878502060666306387294624278743897303381718045936988937202811080478724362499313935439776765946002411542061026956476884812449619596242016551538910075880016260790840249801372552880738806995381204843339424787715013989869367633779480725313501668305640635521441774519822802518689953037240118254870043935491835773455639916120027220606756020660242761198113387005895537308428066113929622278156472861172027589225506214352731059796524499829313804333641362280252746158399255267053135053387152526051268426804380348760873472426128514450145598740748000406861344137087685776461838818457892598081100731831270866631406656500571524204126898642584819481914831395566147008783407363318184877550215548261691053177444075596361888314257534526451596308445974067509680820120253105121049489424194790876056904307465678155549627735859277612375154638806069456076260242229069881975129462986441012208466421840889700595087133659986206131138643713162098213273452217728297193970836746361213754209998374343790850838867842937711881154792053886389746080299685706508843705896062137978115067873438080427891881677389933724480921025993494629303967793008045897278527938899171915708491717938323266119093188763601638897648309814049133565835800847518751779536906408994732208797390714796409546415910419909046947104613992261791532933259884456900053883479612881466152000307521432258701836519351278445393021646058391943377875321050603876584474512606039881231153251547684381594058475812432990255532939142527664215281056518884967875245138294337944789025428823761490812130607406025109762620598286449163626701155990005265195825930206131586366684564697645422900943775496521504489312623713847797922763504513976802059981257159780057548254785471011212052147707824366024247909724155378316505825361058296174626726437694323847198003759581374062896169373542421035547827065414516574350796979538191595399958378955198104605203559442890837521985673116533981561813423844480342035012936706671218188846770839690732015949373045271168720616908957738854154717227448007898355557056364893236924079054910940935521430090637736277842062035520542172692003444877498656361624628887658619081506828125231712321127925647607927249023889197707614791350019823950051886841704459265307922524215988306680197550434080215231908517118986851484465614245714234802238687513999877308921874301017479260926789351740933688886367942949543634174080660214210430760952055573664861298734320262090924547559083331748154984216807075104746399750541935973111464531433344331879032497704267279471038460477824692663459807222871045264780887458131411489007717003766778380496159982505250216351288697195432199769336333575267070340066378646183480634923869012606414796205163642154798494664880216297816246587141467458770368689748748363563325252924773914005208018448596977354568650505607871655148625310288654574293050695059309090446233903215130890967041454146760646597253474103602517592598483062776305398929652520968101349090490683047301347017800703916178629521229380446565883920253429609332233810331187715926069869136819252897624836824367203488460768846822446635923008546341464085435635209710339168833687369932562674518736220975297007250660190690592957011557229245185949601263406694401963460425963234685249626532856850695767757039822245587570918676502374390106995298638843838447628599203831009769230431390578539944114657579611611481191766426988753292779988718394109008471607052285566501456057477593172023005822234365414805215738109451366999950754842302557775778869954276764089748169297713715654323351592198801990193817441981461200803173495925300185639075880707323658286766815547720091271216716314419758999049251751406810286785585646044640045276801324538103419838708878348588182763509307213089504714074018159785558078440452995071477379533296829101439516172122059845722435966046849076128892553100551227241351718041473428412907603957688204154201568291456447788430581637743471452876489319551810904435796426549314995399327635790441710489556706257658941643572260226255449617412308684572312851920036216905874178369333123644457224669796840450060745447432973271629328911805682262679097035944502805245492875296956228682148558347382209770515662931708884107685089084831384698990942988893158380077845983036116403574413383032964416647212914656327299316370278777128918607237618532939562124082222121623401525766548643882861507465694715088427371208949110702174150801024254623387775868561383305307828525813079531659334727303396497548817443585646033103148499227690967568916737797230609486547124304021489539044260293383317436164532047039218855676019310132103976791160381479573020169680341161386564119256045897345009541036277313681696984582441037384590471972648235453361060195249451386802115233065356699615443487479845923050935699800936484931739301966967291567003047373485004057456626330349038655967376582853253050901821212585353551653244803268374409379391888722629678179889341136314377010024349508610248012523391670649987255397624740297285399664754384959438862519192762263078230311481830062547858887951269136678601789096089877949747779164194555773788012379817962783165848312085962338401023068888806932623540049580331589449002277461551441637989077232053999353716346192866175617015802697135156929335834666009158951171062774185263155382614565333201830687467627824460633715913571458081839536270630671842522993669062451822073697886611219743707739689884489916800387341694513044945522868722548736937599920279869864289535042440046095485065835085746541965387025381645788534398681980531743889020420955912626829772736903259589148963239449086819995458692450176820717954336575614747689871046950373803911753655912738918610320676671215827472279367205722750880655793557016808523713229668070162040651881838284811796598902484313088293815346857773456212706644187479122246573317204447275755684981331240258218281983012880569250407942977216115888421425301716466300847930020803647279351189880437013027801295292248134330079958572141692379494171598846647603386868070543669315024372963991000692507649209974210449809504079416479845672326042372900105855296238445813533474671335153341348383537405464235228519490997125948215113312183556933227123682864765172549348597278987121883106291696067917431183971981681942431611620057452970654313413168385720382795059054773927443393365871653059114237560645065870340818617957315141525876794822921403726175988764272851154448805286053248242459274356731303978581228954208494445060120041381996710635092939796408123486365810257783387617672419543542904600176399979612618255933164069708336391457720220468846891589552019913192517275957284492758726351014360272500379658196283078829816712670191127818677995218405420139564254404749141617200786228136703312476686890429764132769230200147459185386522753469398634285699640869938005258909808105819246405327808567988708468855354577303295592111255059439284516919473127986328267194016200306111841632291314562719038235752736095551110528918936253845562110926413190681109489476113719520483725392487220134163551741342672317811834023288523042294410472925980531956035385159969409091543643214752914417806443136371281867891380329719882086431525971159995784321542410005915229160382021636339614811877332503820963232263639778891114819145571514144818683350839405970317304390940164641476054519433158567089969977663622679495940659779598170259307140387208923129001644562102092348613513759808791826540961905899494071439270394895239397416891383761071679562615945209635566538174218368676284575371918757828683731674672251218805076230934527893340657902621622951340029226994084260394801194718991012156074089825235338116412725092405266821533324857146789830914510320772747586276364047291865368057179531994373772233504561196445962500278055103310972298078107140070444674985743418463424696258996190662106820022443424007060703674851733778805495205938402197226386314118663164547337508844330166714296328390985669896993156002582952827809339974503514683658727095087363791945667218285260710929906742481316154434818387142725143686425182208891706350964762391981590711958825722694653655463299555875559502672137235279039104866798421412034526994306947446960991972561037429676782835929318985445683389935138877712017203149222681291827679388900407965667049144564337527512721906199129860761012984101621056148284736703462032747543553234329549558391239541298177397769306550542791598823487318166462896489400048694913010441638497042264401642525889739625495894753440504715675137594827383328841829823881105673758742714948135235181707525988780526399904542369297971393545162739641430274037648217487835125208227682126520162636220659373442876188364809527036746138960141864091779513256662260686366163357526898296984871185205664253274149965928382552347787782656518947830731341051381747377289627228357789927643677831230756039257712337225044450942009689426621837352474137297792459026126983021286838881606716975590271852646763694584375256047911950931800625362161315940615868885567961718830920380831757709434246400803343188200789916281599918260116192814110071324672396811053891419627217845661717130283531609110805061012679914732093019559801163496414497620084702870653877138983291152537978676799377924226021528657545151476315587007594783491005889527129882477716644667947701147691031094912450132612598576785611310672036081920325389162460529837199866655686808893105384842429809083228404728233431154977248511588244715470301944894440835350355027015899314272852787266335781171107149058064194504019039554828526243344546495612851174180574805418418188040443534718706625016060225112705699702565598337375556986902775254672168560847621196570764765051291293847738176883403743662043479109857767978053750354002177214500048964897321499646309810581955746387045523014203671527850120453724157503183346217101461415757794432469148253463163042577885838284170321547995131117855201689025612389322442649589029077101015549728839274227281849217158838435083875336345771568703161271792431104998112874045669537413592091666792163873922789442531950552816656195047222184354009895610931775901337840884353763457737744235873114261369418895356658051547641274091308730762519491393873043060062445598454863408529693754630215887951951417556775789270421180528894315880207459852974819514036845335843539515308341272407551749206260301683456909843247721994418577572065832681846473881598141366859803850315602683216848005370045279738138625635062447185530793825360354980804371735077203127686213507313829755724086649059284196850152179283197741155891610177622003536663418652160619390882475010282982687455806788413033216467084839347011745092933215099153429696964379595123827743545418217902146793568161839894020069876068415548353497289616761619493876061100751815897405700966834543941890223917912094762072049019845109645205649575839316552164117647934477567201610218320531158180613006883341497241438428915487857303476110697735748510462395403023413783404113200934337678657813402391145451450643019205225085877955203999617658841707142609230325638880977402412398603517032650447674253152867727808392167544974420990780621596903441094689414451023943877479178822296808456090071892062638112600425433693658893247342903973422623263710247644221955311652629752601165504070935033467047736985979796503458550821499909613812203157043064386991181231547911870147596644244865491686271121836597815586551314220955802389904146412915884328787606151943057524937864882821445885640518034816501701060980213931500947584097950293772710099863822473702400721859663991309896675251566357011382234326542349773015602673052617059093745016810478560196967452025099498361859866946927556637070908553214411593436117526609928200565859268209137740491471374435336846236353648869907662709210222768534569892380266926022913761911091916223503654928378202298766826012188219870141993084221118298199156236446295252150175012182384954435567928589526006709987376331394986497350395364086286829702437227469850506046271046785850171970550703430188793031498646251399761611366808065766095714482988694967015891089016747227719146153807166372394950433287939501064093963071632083572517256270892619494456381401978934997036553745051674879343123448951195588127369063363883296068553254491895158888256386020068556296422430797266870995542397761121497546033234817458565463908167071479617778255108697078774007897869390107949925368683990324261634311932390031951376448476321155218860503560076094787998634641784997538690330999946521778398898412585353719483913907896965661112612738836963048629667573065196065244089176088328213323231111133881818036220064649651589352009684383613827744057497565051210404373002488716380272186046786324649891209140498887137591343750551151193873730105335824542975981377257500380369678612443828734404854958986374102187157569158364618241997216375420259424243523181599396543118850287724871089795032953631557296705998631413240698064101766666188080975372759095030971210962910272698274400245217670533275626700761089159228868477560468650435600863639670981670271700865384028987019455450684428817164203826185479770707287576514431141295445297032071388167169296329917736610610096524229734832338013747670813148631378404898335443484832014473108502290475569045851394160375934280159546493189053910426959225668443554459431684531929295950281886850897638124454867722585854894336407394495107759836588222165483564320091820783161359459899922909329250311010325380024280076452993957119849839200905651434017264043837303733633799486882490610422767564987868418358946542230737911849149780065346595073114430355557092064635071523189329428665646560855182547554276581225740362628094202389552121259894551515011095091644929840051589610239780560155394298147683867657119383672124805087333685166531254786632269326866817588538504688308520337171499219197166276128510923571043990549744739145555350384536486545160036242351377583494624106341809386442532584145600439326879046587427270033099936807874551408742865175389518300277606962986397515923600694601738162242483604464758869152056964786669821784687537966302555796880782931395158003557179684509698862786803301255840934654648816183033269663035570565594755010533264073093810132239516133495344758047428736074405259687856416159708394698460811869077497207847257005497891366056224065720644198496494595386259943786649856125201933645782266809599727287004087981726885204305027448235457653917482835846282818596434361454859705566499280703362535261741758262773676845238663197931951291788428133337446234679599248760467060375938368998030283640404955299799376730939727711709874019199270670310725879073103911543757080415830768753305285097726406375143312116626853231943828085763166993729945823515708849564840373442808502804629251479800928615752593509224063497111779581230639748123144508981370724235022771819977197936011432456318590902263765825867021985840683909692658906683844945818482763589894882254262847732506673014538255334128010298805251511108838925582956413070084546677984814555356415401672047456681600244906541752301247899120288696724069758257299986420908539059943353974304930340429041286333757336216768863902644490209646774841499846464270757781244656255758461177180982939688912676789674936183032901110233517081216915870954076543947127125568505478157657724085007679545384483837655391765908750073432658400889122319517289934936740503750877253459093901916287100814497815946474374950124147543943385748283050939738893102599706002431425527335517612491529612427480213830281765309633495288412779061747747300944103529399490359632696989155299673139389667479745771397658803382037996222061424862859939162543278058914643870047142712651651182882284574193128787985579687331843430872119209980169078434703707517451915090359284362898742816600789706875347519107767694661373744010892412034330454087824927427809364680492766926222133561748950084868171050552054953862482529440258500439276366232965766926786724982298367428851700848709055632914238790608599808414423156204149079924449415096457550277149609134921441528612339082064943620846310557848643778596467037438814505246016418827211001409177356800500142491430240887182302530561268048587900958831519718277729077193776108691550995229420887609745808413529644732154584457069397952219605683716123473995728523013048139769200256535115305282823415047873702137092479521840358053977045212521938893024196703376003575580629449522659397833164758145163212624112456531417461588130583671318667244751798004948254720236131095442917204456511522504686723353026682509851649867315300383461725359462122419838414777831760870366332993227041252901233694939989835554993609657345267575896720667674751522808126999086091447579843292288443255234562956565949998885815251889042097526041906576989835188967377780183860350889414044345314461137480385479991212230143650374361114251956002847785235970595666080071609742959238485249141300670501901079863862966965870856706895797626277071597672780078823904100608262707383539709963137182685072520018341829508015242819906069670607218034569660666393151869917435121616439033215265057763270286970084737342154612020369668187323759616341765856457665521997146222608293261325152709827424965091245440243307105257760904235430461798100028746498157448187703038929033609693398247103754732803272795090566923647340481898729755963464356057479950314377220826868590576202018459167802824947774674671784459345219679893386156702206895111949741244200870796209099512252429267650868067102673644003648206035885797668729210746161420287583108647006050136729863103657434772928453119232054361350496982417353704196435582501425917269260635244374126348888432263608146835902297275609778831829302491853580680585358274207756374325735886981588333454483419122716677880085228652912630288058702319887464282877680258532883827016526824019760962541680108734868090669923250692606887584816545914844560918309899757943128020982462321497490956187244003172609515947191895558131864315235301497981873012295863099932007630894717462928511954267237523206015783236470774809014841833110504477812321834852038742827495749547758360215988568230149646751624345427589079819902753086312344529507338615970343713074787731517116634785894561653049022336559983096973936157128404381578166357159969240316502542463882627620219381394426499101709931300033705099505394581943622090926707456475388526158442200207634568064992365993258943182455557390620228670040838406132291173076516927814233375166472632453822531521507949976497207986745821115608586904107100482771806221159467885813113826630388767727440204890666659982048440787357177770530682328832844708766441499214941244312193189646349315179494659130460186788525031921995319254043227644060615680235462830382299441823896625119074548053835581042696801887016071684861348789153847651578777901436272595790075786845127741172511489418779529971173004318912388447430664293125827012840171690272021698212813270672836580012047252609610887455972074311733293184903311658240064102070562445499019687260101619804107351937459884765391923854327257318191968530030659136509482594650644000934309867139842804624556504338948142687041328575835419334720791806438765015347767940774687925630236749375580521480868768777539758143580906312220845520490612227352760857145341453698836632967247223299504103993119901728803515249090271722509028875398735187913722072479613336002250143806545620381609943698782456959344623261128656363821855359107985574522268631739609768835664872783275480018475213333349492379014062066128804562466552380512883432689098320582864220198321495897993752623816876929039628059101623447255817389776797300923283152741109005937454647872525794214889354655012368378760652203875897050977263760360388444336820917410767579329067782368527760240630413624543896793813550766616488741481402804042642837471934653711843663435020825551105742622990804200240540922238664839965680544543748187293854146454524873425934748619836558249166906682240126888382939764125448808215491103646084953711623617637142761451022851471006823715656976837757410731381820641704974114320944004235723753384446849903496531381741924787520167397717036514272636879581377592982802900302520804737025278431336926423346640190264516588072422494219959996755326159693220261767812725728187538949631009102071973631523305107242563407359277458845990037508102004631462973821327456659425629975513916978376183764264576612785568343204571140059157761739920471686123547893733776444654086178239351415507316827881815399108112609815534047151707164264610281838225069667092465721656685932673384564862367126579857637389420119484453100774562500762487886410112236530871052460368874368872494030401110923450341726128235636736531890018274285366369984643596062279324383017086060958520935709733464207747994469806989662360359204855012635817727549657679191034107498799097775935373949744528040536112991424073377746738629566909444999962900993159617052428748910067157758495783972848402472913847232227366279043654827018834841332153360963005763635080781874198569598157784858543579044630411658412027720341029434431689248747879205125647722164506913578343091632491640912501094427095630634955741335438683998540417105346098415460758416433569490205911455296867677510785976191697925938185781300623799218691350778875102644754644877433037647053489604695394771508841566405723229115687647953008706111210683218176994371082912025038704840267853647307846111733967109002662945160954492682602470905483035644056830008537018262571221239329570486045185864134617610999357607954176257366606451089382268903465358092537679483712772659570124656516281390643399027770697152873933821465835174103451922506165114409213856079761323906731149457863533901102724788310562388425292124774383496925948628627015257744078177111993277287244339266485477604260605774091637853696671298238411860906494254609256976761220210899931771648635344631464265883113310429397486872787231107697143429285258540622342048509083946697923706407278053030340857972633904832974501988319186303515784088926506391816993720472723378465854243874666462163420057122350494001928174722755755565965258680826082808686717626907397650379385758938912771846611017846315500317737535799575967754155054274378348876973863022380402672957022610475199823096940344025000621034901388349706138187377810788595195108436027764740973912174101179994034158596286053586753240568080506002299896942867428756233460164212823717881527662386425843070599942016672166892349811060444961494016537506496122047189375624595414229619904460463791610745942141479683219724415722014600915037117550368250570158300533751948871733734821008927951360396601825803795324387676494792415657913402953102024269763155361284718076741351401641394441019465039701371161867715145747101158543725838743778563048276901272156343339314203545149794603754808771715327920265247852404290030405513879330864624216591259760535327061576402730401661732142992605606787603883779950628465305869486348887161395892200346207481369905042659566671393983816762976827352034487739924556768396242379645911973255647452594484140949882516299727270339384313896280333568388497324777336826401881574901968510294555555127042651971150114359917678970025368972083056848469418929864628490787424519112504661700870654251119509879584388260711862844677549818727951102880749135685199371841547263666976299156898330385726871507531628295241969235865087204301790567417438595478526841273232504234190555805040129505946651716301129639118505941367750283422232072459275122073030124188351924696245970643185609762313077059471236016572305176655427632284079170048624604843750736980271293977883874160220433906590752137264167909255313859579472811447131879316298220635762534034170967631560605475573650215863565434085230435673633164723430915390848394640908787047748257307524083622809639381002589026055880486233754989987905614591805668248785724799638597651083341447709172890082054347856568200786372394771049122458965522223475766462753861858819839854167489137264535416535277724420421766230653236547814279513524715220324762409125827768734808545308922275675369727882328082792456453193893757969914035164874776451337150707954518516290091711061332232127622213915003481344157569502379833218713132536188832152737885780589648398953988746411740396954421930117333214332913013101232311269484709034521668330686738387991722514647229559265418519704555156092744303484109516059388519790368934345948904419898485501665040234452637800730372312442754664381730391304106659305582732091366645952253276972336201224355107811849584003188282228690220395681786756441578091238539605032883924529900223771098563215701273670672513174928108457693803506248803730557161087174326680067485548730483639786948094232885391308663822267656705345543743982251462209714325452440520303940210974626319450595951580044117928581218031737730860947367922034933174352951011892733019097766191053975448404502357743041423195207072336180338611255691398356793594733892195004926892604550111547822256776731449155073994728839495803404414532364339389413996010762568417564559079195163597137893641157650630666560900880664791753687218195953230713633804171324023795865001667876629525362450250115857129381972604546257011526416698756621584561805146450450469823877369408770553912692638769187554734629394171981689377454282447830464200969470766778877342020358840310653266957689824245486134961794238383066517107847979166254230822812113781368631895952972731189457839809155754979567119083744772821799513084362009366522161138084634338581522243017492798052348157951622317205886790331816711160828225972829835220738671434855433282735411885014789116370870635412519898147803961667908649423120198695998437418368400991864288367371126149082084590190838374004855443298923512859187973460814180265832229852713356055175258162355992856476257960487758183310870254203374858916072512627623030961484977738144657044632107699931045761203639975985069831255814833279506355955648398444642904998607779902277290625010249282678695825663549664087948709053751119384114365008559505138924618789229496975538209881275051145703043296249100359742718728873303453515478938959136920062968956464524902577272329894117493833079498630960218038764620114106513365428590453027605755550952884210618697557754575814357385566367706022574598478592412019353437139540800579932922143121742563792121858565575609865421961994034005060016700272754314418609231112958525275441618937773808130316498670158054737748327758662131161990114490656886312620467628002533601598690754827550615663265849213287633418491847788210729780520259487700249835446261193131885840705499071434076894478011840631678943949628572181119490194098053850117959532036050127175075325003409420023556623058300696381492823277279472711085322601882576484799365160446763953382514246335140572062730318289049669140458274068155849870940717980577690543986961066902700613603794301251384434056094314613977844966004920201838741922283051911242749995599367284361418731348103032068115103635024434862308940361265342195080786896602080189520692325004555759610508400889225873325008259887934454453679270631031573709534472143635115702847154035931420717853697362121915236823926941561392480858220066999267536577688164515437290386158981431329889457704832283302698175243871204040274580063680471185875756082340113345540561680768433301589665853813832005769123481069160596289906229649601381360073039190574424103073431636284634025533644815250665755891405153698735083070844087866675122439638251258777447119671500167728616017544618148008996493681646232478301076147263122590347625094327632984487702196391088844928139652000092119683848121712647360058810929801761658777593284261856933300871756693517983477631834761201355177270984765266869963127244112075701843496275466555381062857447294261056736371842467495674581489674888953002840728958385617470780540220934582228269532417426946136205673838777446462088404549775146804590898289978552468898177897183307729770873216442633203565577910294424379330079707762118268808918370805482785904626565877028082573339559167124838297876006148172236244410810218106766862314027406115583751246824124614491190035345030247775945625429936671683360042213177065841691046513873528338449363262050245125404764199583421303104857380764738574268678071915012375665627085248966431567024744717377480444325508798442396696648945948816549390855367402195553937194644484238900874268208148017860734546408437125310451184268129798581026961991000634972522277570136334291814244014160438542804490797760356042707789666681655944317739733611171717003267921954165923087382870793637134966402692632803104861109781166814303233472213564564493509154093440180286590789049818194953849572882067942004052146626737408349909131873058895036244806796727394679046467800789706175154709823963539861052446684904176085173109349365231034422359043685029685628666906306522375485887753403954144855929815136243849122797866780336060421463857945093160488256541249931227404729070980527443266308305338456380474077110449477422030875253001426439976891807628666712793148244739751030605852156163150276398570331950270380361303145019971115717642340805458452763282937949925119040163887917967696490318579896622071733304767271553000755599606257524900062220633760066416384481174637992733304744484040388935428815735475121656144412572344489615663011666225025510823162064340236199160352307971135197830443475980383241798586444570585005450789438482913181321574173294269830201288523914767463557800957282106855348509651108134133017258964586552443957800144512838751214141754604635088671403695489160840356027195530937711090812856798280822977000270944566055919536486124792646600390382400672002547271268306191188694685953217936028457790764534285919488643665338284750846645622639371117440209412676176562903773723980888826478545166079457535483997676558843805168875284049544984297702471768618823232398114269489279463965726721011341467641594488183320999923314340693040682133448642415654318195278871145678062271164087584816031022080129658370268161555371250839484377030656266322665255958982984635389623452514300221652717962196443233071373518298942406072501173541911918225812724531968883328481047314480312005739443214250985763995529781323531068362107331649175872138686333917620284410999370004927598252347988475439634549206762549684590972747807790116379741813725638997017379100068319988626687667757793803488149661791327655689864305129586235048409143232471932937680912166796847454808959973835875069905168831311889996888730506639074555762818578044317298324484743002613162685022087647238010774591531899898283758934327959006873691401516139588934478144226112304569235938448670033375505331155926247307799904086637725962979505462224930870926999769947804541570959173545912340168684854519434230586288818971499508505151911370293512631782791377772611146625944319647427929200867087281254837632573618352365262498027092656253989270594057423899420821927824774954931849389080255195558455415360089692981360655870356856744239507826738977379794765753878567542767684576640896446642213845330484374066027849897867602241041554954397029272819313746332960305097756543474509117034626504568935310121834492996292571799037297515904995425231878722970704597695349822235686171455516802355384067550008623686251042372636996986912641381751727549947324336521898860131791713453504635938614345029376808811791514273671516975048600290208228703202536015476098513076716978036257662065594767034191513855120025476174953745101446629717790794949637659696215700547319505922225024158816927523889555374928619588886078424253125892796630822901061858967951376609642981102765554259774653856591448877861391472173986342612410825086425463481746356491177008332739895512628049877519749911176717893303996709819613767114114794136168617222131228476011005615945847029026978432138520072752986255985907126341201296311627531975920967482105696632134564029202840504656787933247295570124877070382727113924889032677609579239359019836228503725161365337919261185149336330264381274973202949932883662936726949563910331955778058134223223072925893644731389615043604977390866303939919007068874025056833825778624266203809277597192397664666925029957300233166174865219450071070385417208323133237964654064629852067234385401738287252883048730162489628652813250143672025271348853865248552145522130490708717395161644499615705221641259594350715551505687125236936595425179489858997542510361594095302927450438578739576480779478039184788618027483907329564036474393307332428615617591476270981542806580258385043791098735033750396268455882267828082514710044458402032216446827735902511130885867105824870456797150694457831548849463533316508043272686677507370907629001044923713262273961017647068742302539064139865086318427880385637387933593973517630492506789904786766189144885432271370325822809979908885683982890295012038221038198794878771079947117735869472273140922876727644524721605150100554717629852741777688632913815795023218483812386832275641309545746699698869719857000380000137903324825981339402846690443634578249200880103637877572842482752552280046679658642891144728774232623758354517783918628600043566479263419874003977801363234655392520598142941615973539191951240596957035879791181187603056477396682966765838488315302641642103458296735331392756971827252197937681987276808063497647992179800510635901280266642834710480251693575285507028976123283554130575412497174131031694652808911440753223825597322639683426249191808804369515322046112587943806656047257958865394332659420927379462798742707990788679449814380942663173373966858642611761153055024113574392891855478663928679745864115311972092213735998897325775802670937860512030903485253156388772701210079186385925339406945849174943400519464728638232607032099455232616599543219261474564780424775311335877132906615831440446682350897324016315985649100663248502937383386110811036499122064616175757693186601576425861347090327362679886512468350110085484647713296463745022743818933880745531772389491946173592325671278108755096108582543623104756462586174021229722844103911474778969247376387081083053711501804134492267501125796193926226757526454868866190445187612888244648625696681691123878190856831073267825183576016951383237707801607554676363051886514634980068992697739145343943883924304013966109995853590282848172121934319517610134891208687841698248195362689290851712241430211747680170799734362094736684846675250073472561202380493016703251688395362044277232009473316746582823435803150307367131291402093198573292374448113144293295291909438969482966639607228875482489436260948707989608999571926711837180176417227008288199990702001833427145599200433243082134880070549493593593778642129803078879916944371945067488847999290258626649067800759766658404129237184614028406385188392959531482624792069390310525636123072545286153106505980225436088168912236596102322163413749794154388898020219379278102280190604093994227292879003802450850196715438015057555515051346322918530657823663098846566328871422647838089441606578231339635065199590289751607532958462369645089876564864678144018916725917112876346289981169709585692929037830109619213573971133032063185768611053115268529548084678127162962978528619499410260408320075299982383285184691498095216217602799909915683458686427901438180272386689038545773159721268695705475803328639916220645896154939573359554796282468619373088265478329838287939022580133789938963377549267061328292386081123368689978364793591202854709199544266323537520700427678396269427135606409178092831506789038314270481170909300942829442851620754079440808322358340346116140766916819787328032685745550979290895325462336618616120786191747488469373598788722838303805302458723929359827926289859062330443521819408571288268081723375929042386795991816526805603057376787691182125958348502905732672983920774084507056682497117772524988104578474434223904270828370238511865629845785534797819834572968611443508487048908857311433680408554551622450592892206560647639651267395754469646550356786908244090443477691822668060116285461880143001177300571217977997038325916913362875796448086151464759712298470063881710909233093815444544421240905784202404143298883617281132909161815679348054283055263144692483315722361195720760326451948311808698102149232896225653436638219374353655763342033033743754760145133477011375908117891012293315900212088183294832428612036733541951827309520784548058363823702418066791174684669386648904130185092007657544521069651320302334904591809491313527232809626275118243674923313743572707526537949537812537846728532025719029079978459654390179356469019909822412606454642206960629570344121746167501092167269329076935912143027381053286863617879393723807960267533409358465099192735024965692659263104240574105445893373189730372350950813305638126248010329682517076782540022140271610025200353098143549300782213753257582986176927757608384593132945975857183622703911246131280798031079989992595518420206093846690143333689485470371267545301762255627442422620721566548378816786049998109511483555087563494049601204977520630043522244365439370903505949707344741745530750817864915394431867784625435086756687522473433753145119364889932711927674216600443744330043699104494743180846719245211533734844397314646731260702035923410416694045560295541893475257436779796105294008825441868344296395270314087895196371272267105012488787658236379505076591025975203595457280289153821368817354923691452457241448900995032072442959864450286816559647649086263030744452101116293287751233989731069069300195343765656509881869762187472583490726733887769322284729040471820578576559528165900042522493577459983063055285821134110581761633024457368219237928952906451819630544470680522262450100344504499693287164528274912626483495236910272800135598853959723594833668549104794435892813415968062436506269299024298250303630457238797407060414525123871400220791740001703173349133133989798427663083042657195291779426104345872381894136239911423677114975615305566061834902658923216739952597452063328136093485960602976457026056247183594846467770236358368375413890096938765521426344880097885880591478233974960154041353864697887538349476028118331291601494012674773794767046718629354113793324525140279413110472549165623052406882500896168504383546788443103390806612870569351308668783594919741014971295894569130279804857942548501919269932051458360425169692305955224667193494599904384132661089979115369276121185061724856583415430441589815663912973669865332429611030946115778354085890612649414523518595354879212447638242213320157021906363697833415091549005733857763812387941009133938549946759497345338099641088487641267155310842431777679011195519802736944395031970250295949560649228561652148186807325857265205768528925821313208707999541208307757882326787269245704620740921126961515232115840559688181031178599927521572371362088248232163751294420638122766654297747263861120244948380485303371317378111706110513030791142885395937870080948696105237644201241538991689784312545973397140180548764661439769199026767747382384028166332028869795249337504649175024304603193819192643423257909053964791283117115624048197679175020143710748664276701421835934003617220022760082467966377760889326369032229318807278841131874762482086049936455133386496511413522628496098208085657286826429116581190151768222944122101350271501386233576862651284261869975106130235749694312952145668361596066022690046222402156232040557707172234265529334801759114877715223644402104012356335030016388645788312559994850141435705923448867341214670939416383267383072017852511884154707496663758523640420019911501897813391170893660619052136210779298644411921109603211687762398495069304865091220491908243069026500562200231729818655707994132201857797102205208904289461386881522123001320175529250898960217306836005423907221646501082793131699021849299679802811930583222052516262222452968436903532643164434346723003024627002669827733862013504476530565141771370756232711697159939997371686724595617954820313482128575608190048866013574037051794572267712391208284422272669733681151142907605617000143785187434220017515973406859419316384745508813841246124483335989868277793297108488199214633545837175940301090027337294212013202076959238550274170403633485215393175432643605591613049724400788017668466909816906470363247716403297110029658658783368749895262110248249986914178352635040349838619286160626452903564771968921435865506401678452474841325125553812982342318742310954849675696906087809702244689300468849284978777560284168687666819203680783930816421807133672213618369641062088267319850259111243117899142127588549924491767730860822794290843160074620069010956995046626980148410057110708514336713815781584984416914949982933981905778010876281000388860484844959640986657098587607810747723480373949572074513362726921302817971164602680936508598371749440164176053179607798685568569609542684647792474545450901385974026164181112748220030310180275209628056720834667257020706544538272659654364516332660590537676900634675782859297113920564740170040656039960677397003170106563103672607754935842558000290580623678462323235391802337331210505933832181593164281880484243629402147918156009192646922850385680107167049538648889694956994065601796832873699820873550811083928225302693218034320827171267279408040711949488449814403235747379025721261865831689728666898612469455084445390900937224850527912722361275458355375467367220249049551706132437995613374702697214162743143952509366207518638847369020795620552378193152794935726070457849358508392964432541820567750037655263219253988992795922331094903203126659748908119360336735450314632516529278965157667153642326008803359074307063839025251543229830872955546785792392205967479696986949994612832914871776127895973602435391852713792042338695579506298322277154750569125111303342501459684061351307051390083536158070021726357222241551828295872901898815262285036833607439561348905794292552685693092458837213107038018901212821191344096055650042015379603555034466947036053207190087400242663230020358588458624758289612628143763873173429659453891383665110957215188982010384705371482636501941626846528834398619610732621270877435242302434910294570827399058355015651588307939843470559346328850981112751965828496553934103381201947101545031601970091259874479814746053233262261501237072486103025440938402542680214176228886842127496353283492484016261622409891757103433163941725410364811565372551094593195349035063266299671677854664152605470127196379868022367524466680997614695468463806749164603801459033375386638260901625771350281039098509390735711705393345678824078441742769139258039708229553446169776850309997849625826387001956183772935943376898134460560037637006218427033549027764399746078971396151111902408946882756023317982674412867251218982112119802633595445547496888169799591326044491843392257343615120180221307108866782259719134587976299132022034663955009754319548013409345733951564171400870200693868340745064860423529138615603383924347629555396892246600400368429636963303554617652991566592427572542946195187880225091930434670564270485224667116026585012208985059220798758274822627025279528795819620035441201582958860135979398973427290193164026868262946380580641287084082982864086623925740258949697975438830920221293710651601159350238382032901576157003888631445648461848034854353451100951599166958142874476681919010996913255811630206812592634836782523462513608446205582495715089934260806628396724220966281532704167229621052938930449989188666004734820885239915324507057907543112167407771679988094551790059738770836577224000153535585328757279039622678925263643836436590434863271561466040924700025922255287772831194164478900279574826869929854948603421858363850159131098958481808276047108739024068486707905395680106732970843438552528466398801259502674441771524825582522367031453953953538401663352132668749222760451914730187025736321857496557703050345069152198632923966115086550363723762292911562925345421707061978447160615706121222371648009211758352145480051827963822223585987654727147149412861869438214791257996939766149143937149322576750132849959392741787434777646729849985733122226636093927396871554768021979325495945873423029068885607401444551768684776573223517467166693167073197239188353124444131117074919998280274760111572307162590911291411433717060074429378043731582093558210672173453081850937278237376289377113283937998527640755493221880272000280611635868961576736382153104868250009779502593380260504429588284693939569166822758860217282599715669429647682882052841320629407360524314368054202661428973961648691123005624865567495190599003434406844759742543810122888016835684694985733559819683797966422230014309318319304251382128364369246594901711619141507559966960546886377615721584018882451421372664398353511184492613438757345989533035960624859769957452383377855853609863191678775647681003809752574731789776427702793166517469488433029325140940248627145828192638125148815670238443139559703470499414447174632637878891968990755770303219389619636210427343657714293515079056068504738388530819545701414409689619160131546610545458375534003747002499329374892704976873042059592184751087828123397754117452135814132888900382396981225297055932612629488611346720210426784130050205177287400299783280422110332895713314867158815408426094078126981123165365150676878523753362628209580398024498845293135471014963824331207112552847922935986716241549793824253927970948475463561546896374716831738885547532484484949628715026810414982693592308113764986930636795270577357136100612352056826536022623818888683136182349687427658166030931539276090521569731663624229485135707826985232552124432679118575114776970578228853833387405077665112961001851165205855454784066048660455027148286347752056023703462286061717068879811378410939755060364228562789328768218815104006530407117585742539961910824757405535699042884123445329841980418756619471961960231442258260184411411072486876279316884755177325510957413767744157335338097344996904832640641168645977567258550234435250970966932270040751696462182498363820052092587370215675166701809749283690999141760194347998259240304510924546978624004474407674735646072649385796506195547266729826190367593968184333987913698549176856996655548415047303085072529592924527102315213528322931723124220430063921059865704081314599772321798861004363932877973052178239848203365079755419715389142074463777218119012663119112396662608422203278741199588999019425682812448423270652159426530872441537870217622706660929948390968506742755176157913394371540848020330631001210621654585120072194637689629775531914652367816945838011771023776228802899761323613925487485060040508457472224756889802288838975663987331279829710342221908691576752182350210798648209565547573434054615226735081177848995385702915573757396597322312138714368135969206680728235166507601447166092708153481050961630358200883011069948752270481880990323422853617760069533304450080789455631297282342079419855734665926213856241399959332912994269904221652539138908258602478184691971490390527746085501391326191806207910373477873203957609918341394074382595624099956649917063975648019032085021620368936486178495467088960277080796367002292884672626955396837942891236928566018705647601752677989677365151519192176423067935871913230403829208175878464661762436943326289833649112526537168372898163287305770699631351227027734579759521553736125447123758697497118442306039569662121711900062117143979128596624178084093120136739484838825397182268114915325007199032562302697136355662720861713412833575173700204098732774939572650930753469782272516137199478063816670928411453096615505748805252390094573127272546199315639635239689935861069588746527646264693870926423736185445031789959896443361493043790302471774835912084800514542534788354067183930810413777349414981814426108081377052203492224972749249655155424388478222526823330461289862143941061057739342233699788031303167564310013828657250521324780738280529340025627158797362366575717101712697393781794202649251344422640270313067601145455392329035766619261835892981760891310200537072318164301501988864457120635713224023583050063981347265761435133542014172232056000581091156384283853922360645241826328798527297094820935605982388240531244286968750161781273772542345976183566435649241314857392882014843356998882479750350126412466503639550118287864992799314038193103191380954784895890111526489660097172586049948096744167607929309534738940951308383492420597009605276240421449276028877293816094389440019292447042386828408379706137166899576791495584432819316640076323263999018542113314711508296909850216716250184814307355307070699855346155268813305148337238923195585484403896808412032357936195551458049237807779647164066369311275903732924089793614955199289051440029191841603326517287344492591558515584985245192647032684737707821867325825148347550730720217529654637483547928384866695748316747586803530522326942739276789381810364750258820895502266336333415228778642755776758819109009529079897630031561741823510002574937121941962764424612176747945741847889863936174898922299524673743201870005131395505198058675049500651597400025669707451367658628774990209030438143308028817766817867099778273825967511098352225696645943491973923091744093661757661587727755611272520644539141580872286552481080437150994006389053163892745813138447591485288938148015217470050069522777560291603909382141187276215352451132702959451658555909188115887481003920286885958117944584556450078153532509341876363226624357999534033979210065124260438588296930540168082884262753967832949913067096336822074140391812862996463616902638758252708733464949406193977642256451129416550116922426900901545419930343653335084363769434217383434666216101547313705095295352250840766533692076471408305132610530152109487304263750708665688080440990293369716810240715072636214883064697623029967726954567005853973591873553342816580498517579763855082325082575292952346256209473059134882771795003058896029858386730544304676232784697000706204189604322280828277132021593428999803988388635338545339168841923749026026040583134930719941917134455574530849688595864003410744095668351698994764924710601124175338497795564333798973110270485381041189089609326357027075904846496252928478771831196678837935310325717255026203034788781148019144631027072552056103041576308741377891832266397174266109544114015100480530451647202459280790020016664034262998443787293043444051277631755375423846889038130765384853518616605015254518117664370226260246130135128947271797139315767700156079352850070756856487798695368604379584648508784156788684039070019221933977459149525444033747895024402158068705674757312440791891032421738110975626202347529376455746573783685319090400915765032529497953132244251626769448408936176134736833303852158350143000592372570302875551887606790325769113005195864812907938840699017823585752663444001152436497781287890063173030174526711452548927249203180785100620886440780310383090347065294807227885340719457583193944481456686943392049932276168145899117454430261807796720502356680634482396661106566123511504732372122669150638981614539129753358444338104902780956179925837128917317228799413531565502145182876248545788867276706006640268355534256454761424248201178824304440957200658858185259300094163247086538327827029093651744717939968836331736530215277969350861021501461793390882563214683886042479225989343982967262938773266510956877331236717338904119387031249306400043055190296000080564306803897547438422829933302542713400337987379688082854556969142555918674298722679556519717021000423458661174826344621037953930685690102618755751959243564360747624241328812813654856729650734244445919546248745305214065061961723184805659989986278306733784196946551662260450671449039150068762364741129338725722496844226353698409532800551634689103198698703254495059083919803058429144484879230727638876861244588693168002283524173729492417162603171903565232692102161907908513005613373598740993066027879059785300864075102839892624046851505482177276659968751697022009374844825583658797873848767965300282205137314301629802564158261574878606447020933686521201230245848898350056010016876013915585586484209115128999830640664290532564408427922182546716689995484601238872688481637971026347987984025495428539812153113810625944804717527576876873041976374425843535594600761099102407708583420670863062177513655003476330988334744597193728728328721639087594156748564075466174526374641605475782350725909757143307273944421368086358904766524663313250902573416980027617839195574919946265296371779449758928639427395936038761986197637155460197210215965838424282679648378551246988961809319213272394173601706158023388560561107950323224439756927382558332982192466675200448097814964831513746170007548457032670308318826066666474157462482365557941159671770877005269311924755098171945346735972122734850925750432304416355671562075148892933406857316303085004543092618291447496495557665278488505440553166750850132596509653929652668068828272108339813698978766060399120301791682774951924742252562217534951252604645458243229353455877164203004656443113987459464914364038864792529720075970078947539069506294943807229201883973144683373480650811776929175522080569618715893536164109271754539453247692651584904216327075350309910311127828437417549070726559583652708668912445189124667140074332418588609168051923490946575171836603614903712771523533891474554095454162240733261173338403406314629884685806678852105052420667141255660300012135717515392262201151270203796453870140764292391451267444935475340561875088859351581705947428823168408750208238270377086235663427847810269765276769341091313666254545488784409667816882664566737973981270558274663078643682543029029408062734293061120958771347664802695686847845171661979622341386785698407042699315927613636098486220663940400739971521997458898582585026182271492337604123675493372528085638164308945601740596508296511401836961485174920968128089077829034167338978247455086258434432572515300520496163821183739700265287653755172993093388433047208495196932756447301889103580906050819595489568686838861974969270169809461549108419559097746905822259304715860548274832311195904315130379044038316216765587442042384836895396063617250049518847351712810152483410071879753280232230720249539666188797288186314015980246643148009772186260359796141005345239911886169326146075106288045817690404605668413959072311666730277678383250638570901916748677532663489527740923930290897955528331816034524116223906413465907112350513887895151222163941081008618424432919507772880426912331758696807686716384475274964182649745471424134093660215860725504488116170845636609471777140918176885801647823961004369988566438839229009227191923517796039677381630740623764276615000049450135417085026627599313328041898986383736516973403383193941850790840631171198255354078709622801005819061850390801969925968775792717352698397609039520761168207119624777633388153760130336685809936359830671496201988170363234705881427494628505386871248588814450597438013201875074664383800192236674312832585551144099765698308007252626574604755978171856661846457603233401689438406947142458061628645936843188167804187844223984239602829902860730547831308528228900756540914684037932546887034625602294273884711382650407813240663625276850475884506387485678980874969823119191778867982022562891934233705859986030332535132147067932150214589881508762480794344205479509343455337200806645844901884446265259513875107172189538169107412684191234927656933672387304537458578153109092428657225641297663718549679931475304609864497103015195933670429118243098403060589572029154450128037102636863207522577518763255503681565857005906579826576782223267738198225391986965212168972578300972584748482208710728542785348291829373991975614665595518280815911340450030400089883754034120794206888355360500161860881585452156469832567630486545025440085061480716646153976556097090880254501831729840728853560378405010270108143066528456134785402205272221470062645235803488646043019400480508092274316999061241921347216180468817516554543727270869932049221772585243756455555343901814779354477572426618791693433067669368129646834515176438063759445425143534667920638503999273199708364731184284741818971298977502844789100338236626659930990852944676384036161274134407015287268891330906599685953644819472801994402782807823655245756770316402927353970510346404765560255088676597665258974834101456836816001503511153286938535703700135781090128636222245821455387053974495842631814996863060877712580238135457871935790117381553267429702474369097418296634413417992847267139612227282391352901412671983019043096644268524033815049227348187090803719693375284465597486980057259342913532466242733511088925550788598451657789578302594894142095884003706625621555838111132660673690157601327689396235828950065261956177039193293846864148417154841732729290499924788967849729551291741170462468281224192874447810494551598957678216222724059926053796199811630716368055608516005950198707545864938939404368832550313662330242727766745327445803051174763351886168239651672203926350403402815184910165927915245540289749061048676460401454674902909892631952072656525155737772410418183565847723632904955993359719473878977530011215632003203475437407281095055026636675167763015715599616615803659438586586636913673495585416403783946343174386408886425233637531610581797517656219865103114780943475839407111255604518314621913952334395622306825445068649036306193193812910677877671794367992494880073998784584601450143991997374554285914543484709106738946896320374272043737744539290335816874399355156361038657793708760332250341861420865221998561727373004196726142844783497915688959314195144604833681709134819920839904439020744232949635019373803975558475568956977851409116004968445310764173191196498613241547457220697624905765152230641726318133473959440880839941601423602438645650571082274618622836163821283768309196914737682308061513301179982515624355862744095184933537652904861559963500568330959554294226234824620249112348144412074857759003092632010197685115478694594331747270132745390943262396349455184796160075182879838835282777632449580128916660297008391740583448237946022046112648081906522073718031474110134400133166988836462889942045210750621004312671768005228877837761221815844443964470568512343776654536067303943841939420948651450332118285956110194322271154545478398289141421928464876323298768828071051163292363703779691118608000490721013994925900107032932023559458690887108529339977902116223663914043541271786257854427462631560454607218318280454176182463585257837054316951544890714151799853101358370770070514357956516227525946157738561874697079483530595186302266655947526557438502566079466301157463200053261354064232359585992243126516672521894483773739713275842631629942440847424319103000736037177286012656299548299061958251092616603048525688319460393034706169919845730503647061755380489890912753746758107185648494739891176731593767653726806048784100744725648040621409365328382251599571293313449284250459439132680778803767867874502247610242090131612178339059425410578265633168639991538556817239832699204128111634011049135777225878142583319779276188399044673439100045859743181881918517800080513841523731824373662366430874505564654588993300334113540769056157475289785100989270808206574721301991480078553317756514939700949009063996969439164058309697027462995427363226939016704646897838889378462892879528840063382889107778527029337434382961059097837562825988761296218827282707887578670784508370160648739642027455809445146208375353711345818907398057937564930926767748162146373771779474358852575348126048683271391804057165727133249052363297276284082028209412692646975362950855324843520782192704965618739722275704400038431178983044754093684329418216976190149528218321041617487867612602706059479540810321093341558251222694648482839946473925030138116093038290796217987575095751733333968699815942918648591210670977143615007454114575327076009257227841991058059007380022341089553309730652958971137349830398838911345803814766260609235779541685112476585517367424960246712938468322018794469294859988899038767934844900458838288267119508078421397695229143635058142427026298195052081861251110142888478845050245173691223876067373469791929066594386507089843232423830071505991602088981453569220877333321007516495991169516643713553845454872389740621356568214391342892923151330964034011636103829378524214360218281219825589401766194600614558156002556000936173993051818078927174153318584948283089610141885587199667985945051385675183121916941925216102667739457279666306811257162499435314965204437563633759171251240740235009118247678715968079443343499523220143586622015779372302704435860866415296816799392976753593932008611856697617338767328889259901512994528387373300887320084310650960692839051456845871810382107269585999045388370586064265784127792333884706459134699125325798214901938597372178161793110900924769886302943002748785397952794309923944265519353312645345357221190792053202383086081862454097046598890018529477347776523132718553693246428279147543092810646794231148781001065632893409931508087344032793286132452426000466486693721336364710915202271805376821250287219341331795403668038528256796995418053196594942832986327460756839419846311709452547080833698477568823944668898481652947792251193421015255285156706011540800810590820367562861813107093300334793862998560283037850777643663448970131743472150014435597830423600228568876309488600137351788485415959042591126797636326827125526235177133857724252192971721928418492807924838662439776995435921791989417202958166419461362660986114032784358862372437662773369112874623387614475525466585698833161897658783607250752032793930880254405190776346119810591674466279400939430481808396926738244904037933646336491968435742774891231969408507612819903454724055459625063216852484207220234090689159349533821558509652766503099468089196661713062921465581036567647168079312579653918523901535520744384948697754388778284799649788406978519886725962108308764327908301883316892218286963403543299197613495954901931314748780459558078651620574054806518372622433232761679889371003972079276218511817855611040446299234533397803111089653513162376129649789477432137560368035927287762789571974906206844677599379019348219209733708685330979722607843625333457281960848927070991926891757191369581176302672738064303557211222797284607796378593191623421155084955890050458720632320060611945251795378143324277805234274781484940590806417783281211212795892252826909919111843304537271344921898628213736151252098153367280602156195179247078691004515549617685128182947509447377189612066853502018458271664139987671967257051124093377964622591627309466445879412175337123067694471842666738514320528336506264141255042577044575057433097838212808138645659594113382766375743176948483185450542605411905729428419055211929655595567019924860731745616674271197101229544051971913147709484471444659328691708851187172752601584092403858032375625089945191334151959689964014743404593389167310224881606595035122746772522981879136130001727661370552058019863426998088942224920635527092802535434220319598974907898828995026664970599660960410946933204810259592954943028701862446400581926169133082585097239064143671966548361919509622661630085444617027248936700817762790984639616364070634774840804663736404746521499829134689947171418382064288992142894989804386308994385585628518083848404575741705029917092499898435605659886749798659598276505253427191269361060790617675768286751537988315237103995430461554748498939735548033350527064522462752745428881785975842193833848633821400057287411978402633945232564201947658964685327285521001563293291795354327294085318135001233927762126686517914088984878384228696443499614377004634564899308609716036103491600424038580666246362463850242125823928342571242772940368195715374138530987416832356999682313365866472642910219622626635089523754287380549890975624957927327831303997139275642489653509671658899945269249172630203733010836114491297399630730522633908101715438380356449850318073552506559445354277156691067404709567091202323187904195223464596176129031556483358546829300620285195795975714496322470816327504843677490659245687901457252269310388385062858760615825012590680478628060796786352076720338804373385979967474108388572716294496237303749855427364941809972801819369780297425084593042029392332379366571701246221935817653682855987696090324549377863410478929065979278157215396883983661500787355440315020125398212017165297328420800339626173285438028963051274255267806738716262626068839769691364995503593881607162241375380762491591914795221043833489722015548803114890594203288168788866103486982623327380279065931595030328340735434209304459446455503667221942694809256642205492152091639338747926149279060657585966624114516604041885953379830149895779057356545693970835283853705251122314598633570199666123567167725469300149993945143738554208144829041198553320363188049301016543719255427665107139767753470605791805797736204294087465144061201604645046492970210442983325287892806847345560218927173064272760679798959537793838641127417437313317876865631587851297853410103180675392415143370016104499042801343290434806290466049026098184809856194823614645581637457603657998004352781655533007349187178459294509658030090353681418560941434570271807987962593229066530007696682193826777928016000782924179859557377697844244025861015084690973257231470737212746259654363104686421489296231289048763714122315204571014010746597182792677284847262852460552364097225859429462446570917409881623303743893406561969321490313244920072764630386446338974713610747789486332013259010887230119613551759028213554541562345754390080055282454730374951176341048615731389290188416710806940495227101062848085379612592543019799723394108267516241209683970491655244404661756502089870944702242980042949078542657852486423275917566333100337505449052827497847318374184744698796330641513935693782144623173531363485909567909837198464916030266908029332833703009110700471294348144246826389684491761510479407022093051607913562904851151874932443563950292980655098460262701330135750931681366161143367052475726915631417733218557372182741841634769968486275956623464928206093595900417409437582400264817743060327717046462650817712183569565260773956048194787991152715877898891165441829916931747595809638598062649236674150434780020118362567974900437617505080541489320180562208165563504506037784964475724135330386472550653350722619735014461253709905221208987112142198693013408747726273264038725936047112512563073689243043577798586127243122043739725695175954513707641913040505261778686031324499701439975309529358040402917902686334401928891146798561849251218249055816447529779537118362442074187691824955985428177663529485291398103483336949687576969500241779833911219849602272041563082459698002482095301147448025481958375335866198418301767730808338795017491754760285635340526561654020496901462456714935698459184467135911534016818079749137740441910464442063404999632631041749714070281996906380134993494508038056560898871710207911498486896403652179204931391900749251740923676951728056327339584796476498176652035581978160641138017107518964517336307720502793133396179300484023960771841010914037840252072835957362610599931666958540794270213669045255307946396423397263014330899198561076667579822659845581553941806853385353612559546289122776545670605220852820408961837101053902632332926518941527873325956744137092293005071004963161639652862403981973216776936678906981214301100429592331456393309154071394070023409953948799632872104643761613562662114176957027435050215355139278111604658070874551917073299458162844235899609757434322776244060537306552838971332561557944424664519303536617185711844286506437249901451904733049853287147836904077510570034623360538362013063538472520269527636137401414137160756667406592244409499583290665151586883653313756053185488611571857608006107614937643068416899865709905332115008342022015053676407915166575647305282646860174537538593514023793253974130885115356032060221868774227751837771264420968276779925286350326113885339843437709653273977226850998759006807110657423964543132456993262464577214816624809989899770548288367135132166824433889328689734700114880005958636287650781274164981897129378672596481635851126539766466636879023143358538787812855615213441276052860099366015224356476503842400551966478852778190571030553439695154444803693156414099588553937485495268805548529164210105606423281684077983567090250234081874206128787032923000732240548360535070426382431657878284125255305710187164436192314809799795440708297441898065145345942324458955068030756596456051643448433860469190469372898584905395910406017095424292441593019324817960811555939220640003329782973820135408752419804696206373562819036041281035669679151631918385626410077076485920145777807632779649629007923433737574293659613984713936035186864476275327174772609196509939940363648130918306746580997248455122974695019927403889262482595205002637575478326889456473877421228839147436197828251573499729665619321106609899572976695881892814615618974536620908573920377992030198907473281083998335562561230968073695736173986694015261825619864074899735457747210022324348892352456706677675429537571210580336529129409199858521752783883607517867735858072893327841378216867174431580679116994207325220136973340221803672070896700284369256574276300694779384680518838181277733154990933436265074894116434266613924779512239753661756981160059138198885959218418446273359088663556890546051408376967268861553586464579715981109545879730664349302585385387990476397743431534509699431292258702562325539533324554416818387831541267070885544655640005078486972056475377630605078926195355895789882786955309215126641215280643720846921018788214065991838684568268189230066929802270601593029753639367862413965270721759527519173277622350366969550659061231388760654826856211003037460640851235075538078889831000721332153783210843246885395356651776546944920275419906089157413985056736605128152587857263841712725564135312583751607321300845995894730340863115528779281461778823303136589983796255470790190195121836568509798171463863227992881449257021351124545111398605784540444670068960839252154768172706439903260144995810240015257511835635267368077880313682902594284967948541551908559136396822151378821638195437107017570803141311829624039331758244479889865730999829922943863448979396048635008923084472418126778685158463264169223183569440031170307129669153572404879221046045135055606285162765069178022060472823954214506986063745429796492393598389716740898924877195195512129754592460195501127665729645665936344915840472509796936769823363352506828107865158292292059871241983255515698867236637873778187171166245513876351505982659100740741123085734777820460182083443871694209714520455512876619321597872525433294172767883595248401444618521477322614742200500255031774423702757135946221431002308241454219858110048224684798877606207225842361214323622748391494516313789447052831461511496079607721626338103639229687231211966484022515519301635195643483717380206854042835905735044710027241316111922841887799558047696991172435571333716571001380913000405602676602469498687646905112468817018313838970775431061400927318155908412068058813397373807636400404342788438229417058484434002079195130669291228946667035228918733084663286806778607344443919225042892183472381399032485871920523416159110935657474395858049027348077647409855199152231527313552354243475016579790762926844270164048338137519125906216605349288421503953395539338239278385422521417713330467653752691007291899945038855470148813400230726684062199222288405500692996335629542090912812199790620154819199492510880075677242785810477243334521371983744017045555752558586484216991121158221594990374162366534220771212649968970371381227809628606410372795517277396088043181268047367186602103537384418699848942124550555319744928634930437484294285861555679603366838923192579089335333264334827748072172575964462389940442417381426556338174330402319138879093046986035503964301017917958749389575701082189672938534480270703800715036586869918454576305312593338720720914193893761237717136166141000117234543567679522903113082717952448425305353539000577841736344364961587269090813822869572244638961444343474683634221317432093114781071869020722822221765807523079329076026470973000750032662742099234814506474563206499864450821101725715179287853028544736190723808216559583405492668998701393323983047879360484662913667149428402528935043071494841483211293703605420220342421712206225977346150139382468811033576614131023673849776489853215730429721503591588703216852331399866413448994047677402880858414844100655549948482814507107239820178546990118665294433516635729644136570131008363174760763114333729379665219340723488361565875041647904307419233613567374539070515192476070186540708891896706088704442947076673606074955701766806561508123470333870984373235663437653940766284047981525039242008679143136351267955367059524737901397440312419882753130331349782321472136027493281255755398238205260510161214909246816492510232610885933064415766160634748872501366631696435196437740376517533795797268669174331557467677075408819720043355604043870414538718918647971290456912028864389354016118103651912536674975401744104371174754515948536009256468213493185584431971495807580246326555264381614436813166261940720833746055248718342324277100628657144756339699143897861309982647570490921243088249823267337962431567069167589259398845767745399098458036944462363561086160776662503487308241956095414083235712578445057914051741190984634012989838734738298042933869136581193192575647388448144622384597304840489384441965004313563222396276369836616646896811830591453116091251897239891070708513533295728906971981027821408007956436982941896983319616122319973582917312459992940425096952152579016301966393273563875203394521726879962926417892675528588044368121319219297449288966057099766134106660958061326976842168905308493284005823031793525215155679899055616253832924004938487156399114775747242295705855231655571321106111665911471964893949970258851860886439200139853825731289118821445041306760019077808374065257022620030697343657279243874285106621242739698248540531371747187462955803140778026996989974735603835685195020394753035895879294097499136033789916084969446391824041361724666629919263634612595731236776756703562932461144376513281525804965844249730634823903522237409830283612278877356084184821488666704858257721509131758038085437886273714312299539539256113892062830289030609721142051239902967162133404845510124184799080581212081026038923922064289587860171049490351912633174378172435399115455640808267301563202844554858935220388332462424259912356963238926430748038984259894089730619403474700253384303425718082467663495233587960733740889575232242799692462403198250047565245390758012255334196522106323248256462979874972253120810849391041839791247189142225583973262340965672552888674009507379208555408324477543025862475769979644711496387575067422151340332464593361411174492084751399476835863301412753991792627234320337838385573564241994610761840573896981668540612385593812045337564984756240250761122797400245125286252020094235118038490072908862013737969709977832453601115026244771304495169828496415413633063028913364917579281237648654640333422315953558804081532090978225803164597533830330454326929249795280436157321250128186240773572400895008543741190797667480162213461993175875983936057664295720694187464435134167698835546079765859139219417129107810733069056119990254640233074126927280494782332287287720562753057475750995030457675487231642132254614483947220877549990243152752837581396835997956116734063556531361259578583497874446483552310251723004794417836257843501446543241636411290835477877368249893176438814021321205255377463307664077999351124619741989121348903695703820366060626143770478821301961322570135929857459390099987250442196199245018125351057043007580332103660345559676278637887411650631399577369811326463531214075040160127303588617118666002999836603614042798582743404361985002579643694354892912407717846752352575026420214159055624317203269500362184130743877864149270893176155976631824895327160124405410284671102654682299747872792111810231558494491933010765824276378133666122596975296886020239527617224372263364345096985828472520085895053538072545073558841850557851870439968213564156796895514226614157347882178476921280530197045871406949300252855341329097593650972162910729397591312076101373970398209236279995201247966409320994696791850182493304964545151419300447946291350510462468469132026831783256046751361587740131135462878802876637788228603362126427230746732989615627513078241828287434591252047128968132589651437007678639624705854245771271843815695812307088186920164861488913214358268189399261296619785837255742987231648984537718445853147649352657687872149466448703678258724191074611466211842571507754332358058575775143515655298272112298168596726486599315742959069218116208933829807123516488090869666291454715454527037070779461146704635010223518695270748508168578941586941261826149775454031237549601301332479963831509762009056666971435256914956689646492725255013678329036512079795804331075967695678298316767346421090539189247836011646559418507940442700491751775766854609500904400222093252368754760929993832953967165712816367017736913930944729000485490008539511501098310063934676164119528391223669941875159168281982591655242048702062446122786527462451187044861084197813417279460395191494818826926605360442605946945563683681151388763249259582208633283149179022109485116596994055279937981326863196963247511980418549333516267323341655003083710994458062749544074039503656502750758502750442651082974397409034093445555903678518209191865293291891711864863074903506160814329486414558821709833410190213991057702800301784497104118633437468606802978151033650074173826430624660302362807577841630433585686976885995298651077945639615621639843078734458186753506666924875266816166938766253457593206935886914256625995610672853396551860869447748630431095943498217717398381827131281881450281241851526290928620888504873063748478351076989299121457814487217552323618501182560767301935960453322540361356601619528616074853146409123905483198604807063528789523763718971470303618563761377836190687655781390736314491805317425548676366072245273150323532744358988695178427101081568346771455112341287265020779687574114234199879092908913024552854409723902019649660750408710050347770259770147105976187105576569461535329226976600570316421287121620638964774163963141102844286635194251256766937299405757741166607208427517744681614412891684861328818942492779071291367698564699913679610398141549202293613513928804486514792634788731819967689309541247602552409738385133484586638096772027911609874578012030010347401071827019101972738520052329457442215249896191375390746044277369653008432610686317222641152164466237182637782109785341581149572219467043052262880592901647642941541112800912379518281847129278790181910685697913204792067462083639715469092926150675030639123070838556305965148209132915693038629002510151099390157047730677102493535058634070902968544551151492002892608561928514050014085499274831336679982809171130846192085992670022267314909938930117445559305458086608831516945641840608643824075494770777923282548425838212224151047655512203495293536583915399337809585088021402433242396604855667350806008669042837698622561312075462110815948765394723848835564400166832775374343943559973329833627442110160919880250817845850208932858823289690779124380921075321930958962977830524739283974796499173191265083655649118231372658797718942958487943829831321426916755157173334554038389378540715160976807484284171259853297992205910281113791516405423818326397526855202007261627646741940913901013448442197002254305901449869292308936375187639642014014097613889705680147440114336315649045171646718324779287580419761503011329170495670004560499982253746598364906356580236418595686673502238843369435811952041483382703402166667039135520013538626753004590733598381785995926097463600678531044910363142911477809318940457169621279313884996234305357637402651465592143989178661065066860118353850004356117122727632652138563841312387143578434170466025974162311613606374548234997490235651034455412545980746651190482250342125506642678703348966238881126995183596322465401400205894995516655771591833039264673993797059712570852996482355407749174282512653481182680911757959393302034367410570639823085186504768518213901739546795655115422429137239748175228842357350069250762957421175440114409728337405049155104213441793120560559385256597658481199246331065982929621316514839093672653097925623077102852494432228867867007504333086962575685708138319220415239468982957699006106927954267430287814407004173184629922719945916477100978531589445411873531546201703853032936073294897537302351675336866622301971532006238505628819551048997813094759640005943610240717520154159867849540989698068756332224756266105206914501528744025429896974058049414758427706353337956685324395905812128592997087856941532449034307840656743268536597789818373695977764740716973145450151082828828662884883584245162515348724260371939155700937969829328816734513494452209344395126818727183826070657752576261683575077331910137983632182799150301822542932178778441795610467526211652461560266242646884346100907948655593182706826836001214954005812006057967168589220520156473859928378621173186331105081517118986694475772486827484427114410484663868985265563591042381215738566668896799330021143373109177084474731902800917420876808792141951725709705723810190119917820265644384545543100296134123862664964467335623851124712719610322736106773676073397297805621516526626523266113801819653622763033444270549630474432369388105268497243890955394185278437954763898889948787156444545788422091513298440111984908902287590616468724784692052040219157640358452758177574705532122034620039797374465971503908275194160353046737303993355637607950473120739101641740183967092789413334403616781386102470929187178043902803643970456426893120612752473297071634132663553269934731671717859648639081813954292642372736594416268066772774334926460540482821360605719946213410956090690790334199310902832485359347728865691147924269980466946033357159113839794519967948236185994868867599330879214550795147146103462745682692619362332576884355557235144972890119251721680368587171040022151998807786399425019736726989082679247380407175449459214028871806666131134263046478364865952751994286215588856201133648720848120569355757626759843294974400645126022429206035927441438443600045192163205763179043799668282527189672696264026231185121765404582861362643746614920572085269306655023906345776423351396700044242068168774991066644488488172134613103271767235524891205742917250334900135000710538646859076853541543193257420706895595772237893453650807537002209270640971723044134766695310290854828670638972904529218230208910973824571206160339867748784633893429329465175683998881893635661820321174577031838558506562126252213477208128944734139707515245309532509918488838976430111377289097964953411148613079386625727072597040754673861462859015390116681022542334518952870405707823611639810208982660351267357115141503636259538780171204566184935198678282857712316956350711583544862030826561730299532258013990043943167867233775990508215005885680103427438473088422809026137560898871757883785502605745022895187661999403254360851831982088878022994346815273797612415184444429692400060514651085806465040670898344071269601734603387698671853603135768643493004857443555315674442431505771649231097413840943599050631256774981058821571324473586429488366328017160611978757254365159099154086486626006321424594184113492032098129179733140288636494590374227360134330746824390016493677443874341000339533427701431621500292270609092702491261721842500355226429609992075316184657545651124777145772041863305948697562591787907810646672108177923229301659110582213142584123656040937131127898535238666660294205682854152055558081045774028770659387899419938616638822653652173778639834158417187369704042930418732590449502758000435342822184501733325672970948598814236605234946140003649679943521217815305785227597441058813439109930906125755450663760107438424587342216405324299724591656837437671379066473229546943844695003819288079477011513567922674257699599284902147275656372470619812183461495766270161239452381934374453415623167581235617835407722393716681880897482138327402143371982763760920845591145097213848788084686257137444659895967668298420435509429061473820014760514755111618164590587475515424052042526204208979480917171585343127305133041057067324414197222773913291781289687086811967090412077190297770710631620162975234026416758181758214071264214501267579299332192993538440697301728162465759045783170239575244526877463009205052658995805450978896142579558736773577979558524692371240453853695692271059675513777612556401986851434544328774222480720231640732037366910733581750567007963706285556010536515960135398110496015356907935051354820896250102125690743988425801790027548379083382145165133856602510608594567915466234097975079690867826174739994165608315279382541314012948988335967698235867860944207461412521723937987706951239718571045714843315834615749963736303714163534201681667377321043807955614132168355410305181333882251139738742802537322887268528519756991684724623541913955132165896136002154225407422896550457661531085805474289600316732229080174119979109045114347515017894420841582446730760780021717881770384136855535042873265672207817658813039419683955131536055506588377310099993050456270560508816479590502031933082721325290792628593546569003586306746693551406902334816738933514999168140190384032267566100191615828009733597909500211140036486391204149752021246196033492195997842755581922561376468468645074443922187294663352322172303964994447998425071049026231571664157774294566905322023465920194269894986054566591165013734443788425459955884674750254272320156524520308730197419639481962568009665441364579265989035157869919473027182125545601614760980677417157202781236768473229229785486442331540254657981821470461336914124244706521450372957234731747091965753620577726292184767026567312700798401345233592531667192244480747043368510636330671325142487686715040201379134582189015058222565218584286268472487667674616058760183035541515592944799050099266338723423322225881901199471275236909019626852657820327926483164495913510006299909090510926517017891370832122705186621251945498542301526609892552261224286384402035525173236150348647326694119065673408240458209338030428390637721128983705387004098330182925799192547963446120054178028567300003212294372443830896941705361159447503491212992854166113748050868882210315131878948023431854937453033655087874171946376768682036809849410250702099458743969612928879994832015848106302091466291041253586292164803594568176070057566260977494166487644968401923220439828409381822297788660955016847132873067446564000576858228104381526642957292971933173940698116891270276054713698698720204438907327107700106487166837702143626416612738269701737416534626649294408721060233898049898093424698888287671518836429379691308149799680063557792823927635504464959751765415038637645012952804773754753979459011864878982534249669587219544096980003686707373265967683185015603470353979056126850803848039798860196809452777451006154535667260888462093060730447499804235579070830040025725699105245434271498048508555435965426535536645215683887017001330429097541758463363314499767159133876826696199441911957423579300474778957920722701274343316292845245682579713388753680503866352336430785240212346840161042767545301467507292623885992546803101630669368564058258865096404188312537281171459427790816213945358465798404603150231835362129497112810071465969164340908061085539243897536047689793861890875608298524254608600899678308426117007636115673252121012003094529718691760242146515129556407665560011966930267598732555549832720558083403694779531749178794766156372114101651055234819775274123623166745389558902177471148088472951844189310063583621224133141363013707033316149195891100010684127518204002842405580030051333788678357922595214296599516257319280674720298316145198530559796714361210531911099878716178756300633479000150452785837670737667167533775157237769056456955637177373294760543275353970647365295498404620841661049916813051782804874627586468085104560740689700891172094978793664423974862003678246986531380014111545712004929549021776890577840572466795067238849449536335019720956576530293794876537020838786639428686317575244087211408755624571758020905751369124981164033993543392190489982812769886362018209348261384240715703404145283442768258399532629026129438767562995301452170487267428792972175131272424881641490570396673510842285991564870063781002487341718800810444186300296861721913086189072826126021874446183189212140816716305385383446510468534154240613891854783131355141040307866137350976971686103348679407882132685158199385764132957145345750964717084940006928672558068796691659293532965340810248020089018831564574260010322838079114865759865966016159654559868482842795789579888770962780471014081017785045683842324496934157848319456949338852068916856281063512577191916015492477299625542791756287152829200162127666789217985844753348507882871547176489252480429282862537265035772482654381482600637676058955950914643555426914501132361421171943211026877778152111599528625523107666465832555094322996032806447799685271099763036723055321051927451435237719618302724483521434197147644206990767109224437911891188169090034973558778113409637587383976944208101448327013312434023039285027263691854875705223805203044241304383840688282210146859193378243042529476256271421541284676690187162828873427987503687660409657237511970073552897841056619560423511375414730878840532302727779548881971842334279113708558407137181549045962682245350913148940318120148466834541117844669221501740516776976957644200867982423769311789155979160983537116009965649518357141386078355575815222107283975231729364233225565734688927990347299874880162093935873730689279973293273129512902254816216888944108734268445120875827455082543460036352121168219385117830435343277451812905720565604189049666945202578302844471079388411127670687359223729354968079774814735260828929310522587882057951691964424721217123124871707620089156827626610718019705406796880227271773588589015884413686797120557071923538696347867507509784971303796810502162115366572242621642370294665487700950647868325645401502412656772160698926878437947551556130039718857060693442031801494490696721769232479958824153775913468350627848711104006245379769459295474551020611328279517429613781352922749100407477969438503026128497445616694945107978291131847554992666636775245044832031018038261660900927865868990178725463565962201967467583129837825879586108393488332469772291634698697728716917210829731732706905838851559033890062629324587723611099873038044791400228419658990928290291663986471596245785888292376855478367722032742503956098779382608795144051293616317883931895278213179443182131186201455077929074553204862001755936988255975477804465039039925329467899889546561667947732817758255016678952592209168622463007440298547287508941977174977431873060946168596297254834027329848549362346323161645973364745180533020419105575273960384538772743173979284878675183622559448570860892593586748835244409147994808662970539914233892705610676589667843329653809872294304111164507069824288891056152676901016969738968166621782746731346420205926914689398486742846113660593671926077103113545704340021756599571340256055312687490803548281802365620037832096939555020233284140856507489836775587712408890063332603337989069466214872360114171579409558236604333011643116339765358297149055590018419684342682600163540037184036075143802593845180018054053739584129718211636110883010923784698401011590343759625205713186826215614602495047011257183312830571562404154566762937177713079251000292484797289911839671252974647934346367212436773980307983496406356354074713202200996806420272212040486298541778991260604689191334417508021250817948519486857793033219964796053374127597285283037307570086088391382081107667551338831892947957918830416025282181916294433012553659380664125913142223729824748320807949242190114267943524758477008296105461126373356084735687627538860015405695985940401990690329427374620492765192292045460961901499951721855449328343124055603421120342431047836637731393834922538055510397142847302613565177461407524266959867379821859216805685079222290608475223158598830085686224584962572339127140974828190981423252464276866160056189164153133931753796212914862005498470756889205291413482078479633597835042500457188832895603987207914372854200362672124702548505550431517582601832495250007253876133921264254946456971241278531060928240014426350685500636469512742994222598912103251864809966109413164047152957918092017782580902785556170391775425863888143440535673902324881396832779320954992299698900064218038167318564758245887172850894451688552967061604719318844855358819573573141033122348102263455289472911408897494006280380736366012058055149254206638404024552212120384012377187231643152329232866694511966606723735984243490366069270596311505810948019372110031177538443717641159988058039229820080466643231049313434753985832030807561417384924237832446913610286677197735769744513722392472535265000515499060388612878208642335739642252714164240008560190843428153360723823014140238006506562663941848813764737736570689371614840682978680207696502708659556320595468568185051194443711446152764355924986908226352559256752530648723317816399599333978329954684422052246488759173849783337058410138936864455354448703958678241367807215955343371950330032641068528223892467530866605331928991356069434741059428919352779417087726175025650261990653188897837015580748081171372045840598889527373891683412036699357410777838216814703239106325242402447002383656335932108224926731256710503007981999411149648830942768092705200761244433759912955925593788430443260387171450772448341885181180420314809666067616977299773820475906597767447845295829928672121630247008618059659535263701035282854530679074894028194142152230150796463725402442318280466422996994373131882468960445743648359414823140760381132878897256335948201083933490514868739428196479636143950748492014035446835781097534228985381851139051564906103278627936247701637398828743299987932493140087972787664610768497994513893076814377048173253933480047012016864258310333906166115141869000616467319028980500616111590406288431379663504756222839595346577463252561236303322436221298815744530078778364643361149567648256104655220680182111594163533108827435324244867170328675826971518967764803496454134324381493223973575190786846737722833969626787857200019973888036195705996345902923974536154279301006483413167036190701934861359281094764831773858901439380606249031998126636589736454144337595986147238043028482896442774737563495381338832483649091011267332128763247817200216993827172286017020083191848638090016563409689541288096293985585013428133582729701885038034988828267940864708066886305875474384964409266755884537618470776872674503500772529235449542336636883221531838064388725687481905789174205112989773744605686321906954151776048517550645297297814069091463331785204761893726837387848436849256318556467736911649880723589721281496202687329996320892787162805926740378732323016449067876507816344236573930048563001147809479233423987575962160864758477674034583390362825455225508780605149462211461240790668990995541514550924678983741954893441907698286927269059015187594214767684912987999907866614345541135361187772760717682045155918301068701376385786200138869154577670517065023988293978102299347820887094108620929517274172770201965801580522154532975236153166198256654631259059639478064604872344391735019050922520680235197508924901772227528716035082053607776009737328885554369313695941693109826739508256249571888726074426652941314517438349537314976351832324910218441095528099465508405388234688530244192449834310627817012737764416400046798991315835710037318721147438722360336895160466892517714160031192960047421268121590124205534662368579141685970977232467766105924453457650086279074357072115149140715320331983648177029150821382838896067371032598984457260036069661325486512276264059453863293951519710279661603110097496181217190627303563279817751379619707053382075461755012541091751837428405015203892410082253795570251539217518064970765983502712557575926474446530500515422446436571078761115407509217830750151149442123406671428319702301540042863752537813869726461885276720962100660359651297458367879956882851940464491958569711000478756697681009861285648685078207405826578225454254370673307974389378086250993731129692663015301028719706016438921794133826806478677362300706426547418208271092277863861245490553698125296210316569472581423912667051365022010681340923887186504194228107318594062243608901640232664198577752367656700139471097406358030254600093736354034151109381643076486511123493677203697834683631600189471826083974413745637111233959093893323977256049742605968368905678257320045339261613810850598847612882004427949666743350487622121105955913953723183210281780689577920811292383055516348637623882656979616073249408413629071497772773744926184632432245456967251341044597820273843510408571501094978519423191868260385233337649885879211569147759583299670339505853439194831759941207324705016258767651622869799279816411929029611731395779445153586203113258394971381496169544923188970110309811889371111291761907947878780858866426052589603230335691505696441975067366024255597922583718197569438129941095416880563736823773421276002800686652663574090554131666592665219795987620854724464110923662481013603048571043817712999799539772920644860242209940383207881967419761480398934991593422906438209164187076234672540839231881418935962163368160121652117783825493273337715525698933015365228946156996001158799233027268548928367485699592209136630014450792494125172286324593416363665457216866139291109997314190977664022612483857769979204671469374065480382746830575769629878747121505528455746033861846767030111301300669814183625151996068363329245639570618627691197730119011315757266207804333173393434738471724480250396413102431451461239206696292380635058661423840182488393109952799427096244958882107890345691968371811695454722443523726833524198674621727312407107502430236464314821987252846218904728480823607960637309602328038604733145481309932406901457674903497664918875078146707288083592091916782389807834229159287248741043862014893532602542260773452828272392276823599764714844719928000391781299147710238048639591018113447255680680837366097735330476412523213027420459740681639444916542056663710773735814153929203540708510298784416611510843876985443979539055645516086051721517793836305321510404387999991126789129592869953154876376844857160139136557434990385644801294153444743751218313659995851272053540896980360799886247747866289679706570545731190344324666040988173581261596378354072517520308934865799582525967232570633474952750065476447345424432597156735090209308375136190545177610145605585141896975380066390662979162197168991419429615359499519241318059511259099532909027311598058894305125154791493326963284568418292525849574058858156417939894091750583397365970863205301139656495836033330485171650109811564207799201744359180104761381325512486111284456373626840425809270817539810623447804208581602536690843621377406138609538767991670676635391013735779272464472566834667041776524785842134662131989128200708945925173201733046949960502322638789551346713466920144758023115217735499591918958251284029203101362922364880412101004831379116328756174163568890344455331549313561029478444378715539194280158036890568481829362767187811331750011111998777656068427363664502436888270969302387974007807444402483052243444671976951813240499501365896098785134831499600764940228405854690548251602708076532836807130783679223081646497738456643204421221886764293360268963277469548529354833746381098389938165941618643114041072276975345410532725619520687592181670203840224348509777018460258097515521583587514381659295719861370856886533191057645810377984412372078190945010495196179481482106172585515455113810427405681719162410647888261555717939558541686910471497047150130098933672565774421428226146153723849589438039873147307585372789011309701878732629227590423567684446385633100835206459343580114189781036694726199689719414857675886150164395453848037390892805283942731580297891936475888010828984035236265872209707951586541377978338954957253127323339473564163555032790215661375150266817367306282993002743608916322459172641112335760816788191239731515618636715597562567058061284485972130231475769490122766790006307853350074857823854478285931813051964739073417044349554692880610087931846364441604735653092334529008421347048857296402154950313135263631789284496391881560024034305191632598591120909836180994811249951424889217353956338488946086116228398640658003143540954232241350923620712025259981707087463877092270217558442332265418796822281007214884557272457400585776927224613435987752488351171970695963291993666403548019225264997308777343820212070997475069356924332493685765784341351833596482780985495763169694661051363986186940310900982349147100779983061699523172471260386852290248406372624896507115903312779534828334843389193405083009118936228372131364963201055060429346393571857198697325401440629281797718230874558241143863646390865856406385376102750524242423624116583301702871742188793629491147806061581838463280953378599734255622425747618694048126826984077172695473729395147566133620749099953649775648278777786065713810004891907733921826440747379837005837095268084200306737457913698584405490091823950130377151264559635047965167867921618069214660543852118469305189968070528770235884263373351778743841462559161007782748132920649999687368026562847208572865346507773272767719482240829170773456280041278817511689682667260654920190991236636399789148517495863424485431911547632890935654708208304563152987806966255340795677614386551837383185207610446494268234827217869129919650300945255794119383142062735035206919992695764613883433172322345039254391194096882743640529478662503736622575855883751183387838559186750660289040747014559413140406507460116729785498144738336162497851942384848616025083946223514298793897092967941085792012374702011938265160756807253926101194384041844295306521882949851913065974817783781784983682052960284624715255500803498438083937747957481693692061441428989477711763208452045300272834394257130594264436758138388582898310098893846797065313635476805589832913918947335110161463337982737882560437329482000597891392623008049013888479613517639117717514478295591449864692954229093588239622141627291669891298307716686537068149666863285170784868269265847068224306101538957945188891237503190992320607228929333281796064983188516627188476428053880894652100865680465067969097180864251452419684975262755916965873431439124918862654553482114209662928378874137009212653351372701684809459909874351185814645842016345559691480990476921803022072270208933844254380973275836179452824687988850426000271095296312372077894583501763402355046780445650388775150569942203087274885133309805824512926343734236815665803702901464896552920533099436663208104436469800768503353516908317029752129903688549819788836556684544872371628561831954770626145147044954516827952428865680227221840645994383142807697226286494850472930244136259242413562867825787861328658513455458603154776394139140338186153006847781585037871712572889776912103216984437201605136935433458942572645906432532112001985784375179170381778328620980341438103025550659513475857497946083010000449175565282412139898138165256876775309297220491063767122739082138216602286820733917194858726627398502713581448311797259929535400880122058775933953616335380455603764658219940647028943256674748713540986613427385803809878922665769140074382513501289847975614321138949733231649109705935924223879696947099213691492953516930256008605252599270011978320346740963922033266604658935029119334176461306224900742582237549870822516006067554661992654485083593668739376214504778291749648455509582306127328375758396706838389243940585904399064982792594170230459364871092392099358833386408627865183762407570530873358550075888949060295992662071597522911891117716346616076176103857707187361749601861097038948182509483044702765257744741273092300039595090757446870012734579314365362609966426538563204795592439869393597270240219953021086726030339832133323516193117167899073428489497043201274694022390903033670756125341910643732997950219844467806763340312865293956563302086390636945975969287618477051778512188951387485419309680264044425179344752161354843161941772697774229058959059113453741999889789541102227194401744537836223810261480299262691514907331047517910084958091370599460883101869287859351563624726018991532105009416173986240052403146516762370434289530679391899561643411255370994743501963332507700609179295065471354016240098154375096694917058001875013806141846035856344987992827036435626115589606454825082816326906427415954233578430570072171816776819197419572375888276691150259922651476245068937311853088690691910552279382817278272982118766446411591891271814428058430538974242733134149039421915385668022401373424513749318051288944759781995419677140474305713758128005687890673765582981223496833604728540064979518202432708737308677428333439502235681627425249322608448148223941164875803579402709619052030591830138190091935639958627201006899550951422542528330429275755817512461621803331031050589843282372939405470001832136635219164078558508501180941247124409990690085356538181640986409384098993781189153509489392745103241390142801662381268565900727959224508940180947114099421682301418707405990919193580664131584232029293066928331361810582712730740772408959568403757551737318091010486411104952126151457966358996896913031317770817278391444324659625363484144077205506200783458321542302945787550207697251604421350934546857856995626699696947282665436472442002702575702203026718245698781080561017420477538480405263632487820082927617143305988387858268694689529773350876873021503313219442284771195090140711669059691389840095678350234682251356640097022951287933732540620758839894078157360839242626475112578092508579746324689326503523927300133810487350351131100564010855432904425127992455868552448518547641898970033042151997097733980683719782950100432122977934003189890613597163931086095661887905088126648761528664789296409378764674469887128902677130846090694664596955364279937486599270768036468921706043031882627218841700184631740864474756388415983259820382475888929997844227271739816380193362466616919628806958564479725730320865620944463646411379946533018861081706240777541559855646622741205577109027403029153602480384478376165065124614783779256917543077153519882150161092180114829923514419889193608931107381736195682469390257419900774554096885641849070895032127091320143504269774323358809834807515543287747653283829300258883287061692657247456889132232472103159928802345288793790553363706557487501352429445741345295884266425988511558864987212403029393011350099318666599905523540204549455757271267177586727490915398315885491945614659014550677499629687451958068410955559858129199874020489059598493927919259360678156588469419255337552861989797513718190773520868723981935534306118822407071653010031817440438437388183869339586655559586991817080573522417813245218374419795175443670955103628849469688719739377369889123907711496795274096015330682371862682410662496276591913074020704461548040300813294359760944186059748108263549703120657540090368762683314255903578762589450758432502873470714424334614448709728017691120116001526199477334064189245978901464533759455558837597901984913768900075339037167640815439572488777956265827977797018351015214352630874806479455862688798946702709072143112013223015483230075169335025458974232651787194431753610282949076459041004685917918781860534278169145303218278356330776722074039389726638653766089942850534199941434969354096021916329327197522973533874635850984805889051542358733027860279833076478511377635758139421493908868550829817855741028922052979000580825672928153877652054290813629935515666897297830357352941943258984972682492907392944072382477005938434973307567485428954151456056211715165256384213671976161347827847911393557286561098337645470096660147639382731617941570267506217336708414181908602196765125462754826160626146890306651452931008368090364803077542873690138132591723562985336685278175379425426463778577466980567074892599314865450674149295266755368573132134376972875834175508906081042416083579873219094909259045020895679687337032616272089255041117225348307475751960097737093472855610830436569011533699103573084519778931009650008333864033571552078219137197374883755002928773106541930966454113552720213623136677298647201918033518621016840717964977233713840435907228301793711184246474505278785409685842607500434082961996555180296665586008788067207458995308920455202730952483307573263134455389668062214529001694470874768839585709647810559125302923882117286442261345566862564822731739941191161324157557751448492656150782825995921780260795915799543211538869946840462829555247565213250670842173624784185144164609066261825895324769737470600144155848249309622684396977217097411330318601644311632170981893541755716242404798230912303807908241600118444615609989137447236081855646397022194208991363006746884636172826125452127401687076313428604600691633034365759568304742827831830086279480452503940703916415499463329829738735574839163357805742949598680511947582826877587606510543931147469814825400255042884110492996491763795171821744579771086314970066913586269134161446047522998514752422451061809788540424552631496352740824630149445119362340992970856067184557947909435301912963566274976289801432552863875837003905893825010602716549726398016125511183662602544677032305784229373473305623895511983250019821640119527011550472324307233345571012102055683096133042624603284621366883019153415915224552859648541296649422843579604450900215410598192488005704519003685626523517680610477150700842267925291116503740571628801109533473387107131230694660962561461455564543346744037523880602363306083922706742471589326855654672633899571672052253960130267329983166033269127024733631067989454413256905787490634868605270025084394963128865179953111128726579281555876317563555612093946750200239052522647660070927961668037662170974278979693261833295016304684712698324563208367440489897769252280883977412010363197465939513392033988814316961689904210670849414727306425848626854302230993918356644389033881995981458701211949610191632064016722297297707183727960711134540531766098516671378863040111786025122934573745588667918456563627279169444361304449077709385455485541464018782588223251119287521206344606651569032361363345189658550803130746203494119107613317215822477187986488678535562640144843904275044033700421409451930778264315053467948446026276143053271681940903980718744152758638290330249241961958420815927145786637722987985183299795361450505950269750602535581265858449360410588301629187402340169042323068077829852218648705755009851185462939006770694931915290207343302307047005186907927199073115177827971662665448769475067015177647457988377586399011270024782197189765285103261564639665800547948400107937984897422536824045007813405424248626099541858161848369387867422639132036234092852469073461049281411277976184103473501204615035045598412236237166686137930458563393053313527292604175854467941763355813254974851524237172224547079727819996075180094842812162278974320733733458634845678674320668416533254775995331469425195859939492807405946731986775407441647930833675863589163062483973325448701650796572684093002623853250145872607734467771009321189686612228645941369645517202133177988531737840433586805797863636666507681171159917292834283024498727667032411110067542627503641664138975026719421261373346784786436507631177724279896415525922589325860316451246680263978890898821961613258660563067797761185445606997812368898082989916920383363367009222069229247507348648454015930975059809950040741744152669346229032109225180315114997266660013272118337984831622662380209829426994137070861252403821521545133202669704685709745015175671487190819435997254231170799533466689277690351676306203505170764528714687693708573714758079714827332657932299282794972488977438109227361016465242695318506932090437807725392113641132701299557151139015401074733036350938049943025838825132244424413387576418595078800813245577052264082423013157675742712573878876100296152525243342538636952239657687174211919967904468592873987861511719664107276848774195712662247436969572705992959156501373554244557943331349035534787938545752778373405718396766121036994496108503580998047701135314735588235692431747809270245857666918968600776490714754441301091736475253727612568118967693063725809354410116744949767637715012112800813772914355477153719087032779181720718314882432292040572339943965011258773001494304412045156156835010155309873806871320021082973991642194002034395135265150479338768497434605869500837981817805112877327027229247120311784371226928800002103916758008284158334551296068028233949096033252814141373913809694232312892798894938283197336307560749394253487685734309464166115336120022699379944354156497417493156952554691652419069658867064750416938247835702864372308956352571096745098713427329059277703774988352041671582393678652038508882096216939455201082608470995213947513685296444706471375832884212132296106440401110198982092149838211681059192358975177226061408350507109551326125946287558159208609554142101737212771510813282276805841030867130011294297391846508097354121883329359099777157450913364243997551245480127391274290785764150770730804104639203662602521796244094284997984079473679352961845444678494890908899420263429620800238698738762116964915126044132239182425432689623104569930997471276368615826209374129661468176177271164025124603707702573668003172253056203463168986737153223124120993683360389875942026778318995250119468305444877056682634337836997217363138223070587402736700437679597083528305800093184801100922518348679874390433393560359972775582368632709555803597755396089085852418556828660610753379767628462951071723093180661390492872924484542606245157087152365303982447964540410531218547543489441676553180981814323644063701300220745287564336584452685054223726281219370096283649669408609192861507430935947799656668817665684287981359932730497795824214629475634215754872758785089865337891634963346209471927390622128051897533646769183851847951842868729003600524584238476427392911522443222688940459703075287490487312595173173488721681344185161615174877553157629174636303699588743354031723337929695485674343494232596520401601989921504303961414068003247738670471794066480234276202214194032179507408878931433013747029891412022603851502368302727581414292076219842111416264394756073762554115554500226560787551094783163498048789388117040912200512295080253484583097929965622808652525035708388983352155749359116287147006827625433839353558290497507095004298524000195060065348366824603109956020815436758437138387156952323301561569903714504674147519902194042457199101174764577560570872929282123324546553176548331782963369163516974737699474671379568121921735920121923020460275463176720517356025263397779324543886691320161707983614685224614295816166658982568468270905701574247186462270150020003399299093304232696080752888223933834770250392232766048926642854214493545091458864812507208338891373664744287706194296121113044833138007527211155954314668094163022291882375751710374990119932039647532019322303402469251990949120454600895975305165076620597339429644948505517748972666654348329830970541786225994538500161831565028202315435001758342351800206273045178611540428710713947502145526720146821680982776119247138688391813028794746178050224501315162114067261864774836771788291938079638653569212631983320964274673197230944105579204675791460887731024332771952160934091373688226934415223280172274000987335576608372377971847253248511779926083691949108310748683307364095935733475887832689250173972016152965384372223255439839416659756439030992125023682615204251667730772924141791446301258651962790919656052185579432281116378763669345809348953090345654589807451103827483791340493003713881629625674269574911216801036383625707999318085011413411178687386455898482334766974390827079317107125183064204326437324600745185844055576248701386853868647350457942939685136436332210920537154747706913410453155543604729384337296414797970920334650553655297021059398992903511278764493794259222928888480113481358092968836473576284651549699272316075190663450784148900759973538500383144251729860969305108985108325496539666807323813992379734013709640604912237811347660137041343068293015745308654348938629757571170502995390695332001671828499860117243033442810846496476815287074606586522668617182701111566827620021908503095633134237152913397104687353326024389451215000814588789192320835724875536736749877367633068873178914280738052079859644879555858959340008542534057534612197330068297653920296813059728316972990658905220254402382409152437307247787341437646829018020397672160845175978576636301958942688153911296472384319560102199985902050010342858987198741736341520519622111682923338615198479861377449614854871218025710727392967253047572780404014247725328127976825919172884111445550143432121853540126379068847624234037969256195055325492743047758731615332331813762257717620138670039380591156472339302846689170128284514487010524651129852580604889692957589994267920364371368645537863301397954633236406155858166048669819068518542778182951446244217680605743476516395069252227850758935060348991726288694225779036396872463691388775525115911593027032169459796128870619392921726317546294822123761913713999689504186241744187117696948604088708850118328706548850123470428986284006726274617099579856433629673097923811654712310981299139654270387033037371093397317317865534044548372801028726796180006770337175542748380578885726437036538713842106336320331014164320495735243443047683307866116257134233920114697099383709424112209256477230820643297150830724782391727948441060069719895753600063161721476160049348322825515087858127065926226733948065152424516664123237803306116272288788857223770578742173012424154559367467212408337513943932786272596493175383192923742808730349363347165473075684838183387119548793974360043475223075952776268393683205036780574848429177672664509438201643349764322632729517331144654784612486188463625517297459690431581019320797059994056010870045679177676320882449552214616781256962958349975395315553441483839933392445480508867062117642642456390600105771179099002341338288987838691720591014250645479678130990649340606052241527295754269190474818988180580897902877668069700909385162084714007793375916165127748155327324936843822109641100764100140820659258559390877211190707439878379217329334609062149148255527661687827762233525317014307846597452940589165239601774824972677336480104735023034652863806208565322428162419733128200628958145774327263918523488875865468688682532828135656798226379682079016203495588374266133222516578004156218247819543871347408726502591681714209777217422295270526946343617375307199308902693432297807014677709115663387995971695988746448075212672278666692612459072634868316642093471364866026816316040035473500474848602931999256707549461899166405912471433520767118643271996704490742074423517559434837300381093822552098048826611579842912801679975499407012034873054684150299153854237338004565873101264690577680521744003575287577158119570607696962088986377441443751406928377721789267652651712082736504402655373903999827203186079660280562594406890394156814765438535165626071815986729446732480788814643520070937674307613885019112718195969466140445528789540113171164928878152401454148148971429948602440138448636992851461735993508977861737974485586325486948663459792337319608304067283435185214639869997783529207896503452619321927198951803451341975475845114264821091034987259698317077821489217149002701567271781968282514512901948340390075440027271476451622653912032939255242251509540570377075632361857347959972546418689253186289553687523282938675851128086975035025344987271255396581147456353063001100284951230271714420419163840619983843382553073314838374422972810528729412155402818707654214325570928727092797995330074434113514145433759872177081248940441859768271289560307429846215097390398067997899952598378881061928308770996085109443203715148936092744429858545737867323545232690793094286331556208426599616057532054431588998289518597398626110699104460259997602010969845616662616673992205619267766674477448614876727429942485367672502961443986508154092491868317852480123925389437472748366782855664106517706587898040847554876578958893799193370075958483207956286730020203632947453777892634308716532066358978280403249245622824160650199318643256181503311464735635312362167388983236406527866594310874046516585269151065923063005954157678272398812078384528724523583176001912696153541065351845404469384472011383056001035315368618706091779488549335829321822787403050197335725836368020528705135486995459372098520427174494992688448627046177246904503914836633344460228600510381572618094971070156348861587172346662043776801787028654850406164173882673464454238152904072386396814895892787569796772614544536056651651473378371891694263613552531676059208010216527359794255310687389537111679351469473645118371899959639340560063119025015187967857409060830165474361980891663078193463912470011437126299024445755921534605583302261231017051270051726083422311710272825360614795051802617121583750830611763093174706459240089762313767392741515972611517032063981960511277824265404022997506808020207413926624915684645340315794324326379099067429862940344159409849633663429964461357318332818497473090013469444856897469156888916337912382236331952673176203190872776724365566722849613716879528448960190345786346739089693752734543085137103858197858069974558917237309446203868982696760578901658867496254791009674665713468470953669984472084410871460722932476560415299935318678723265235169495429538539598617393326662532751845418599452688532469116570971332522253510828833131594375592895432032516729971298656542236045991516463626551132615719777037198011505742366433225565802251410344984623392450578327544740668199530615097690884637040148493641764592687021578038469549421228537360120562492330193923405208715654762779710992837012538409936289396324194435391454654288185373891552101750943470620025168778766054602154669664011678156293827748233672187497681264271735225858032694779558507520514961141727436399221936270557141052903421800663808521714102807699900366516844968848391891254819626993041590368082433660438950446926265502245120944347747324397506868677391393127918085322662691832336010626274355043657604629714987831612266445455384078611763879055022718290807241886580760700553216916620892276406150514539026685745565136094497499588679279671052957420063949600540186632613594721856507639439653208817712954097275806258669318718846379447134268648716174236923922498792338906010970264236496949193300907963681035236591608273293142166194884410137818950942684632178447270265786240128885810830101866305359230289264678608457582463861983047448511022060324397567576590424467968775274197121116931294208164005027209023857468565219642983633056764754024913206551659891321257909330037265913681885051728672716938251862050650911117134052355782109768522881263731210540114839811931427603019080942463531343935315617515404087540932713675394891880043497418875979795553445040657238318936866959750084513428238422217070812633657368362843414120428675641076336996183141264080576249062948746353504705151507241873083021679754225814521533427672664528184163983731476591047792178081488507118381983855460858813385570918142407493104098696363021677068339930282591219032345161569492527325703145260589670041304686261373618588257774031985791994609907827261517095719739586541535682003649229034666220039629862719778173072027551030277694352157139135771853141048557703337589085224028637401287413254491511739825007851327448650569023430621124580846552621282435780065466535889528736991793245541547323897255133864346560127543485979245322171130768716325345363121795070643476269985968027106861980174264346468655714552539208237769672255455553955634845945567884662915091403735421768614826832779134391356470349156042774121527604929289205921448658178175814779502891865090933850695175959236281634878890589949322646634626441383507394878616870279323828409273430025505490848477306888009352031349594363620054107123202851894128942636888812127177707549175820924709503500330767458401477453122626604734811008517212327926567291367668793314745815189704966935925584423138321461213707652398276454414858368167900225818267776886407362615791915072516765143553100039563010758695912688912628337124353457765044358449659682429810743219003344888648150942396851384630757239510356650116009404258076992929548839089878771065314516594998466681926841829301351230607072828217343877687089704208169926706978608284527471779058154752212012642454642081450446647984067965686659395841418560297695621512255411799361561561648848675935657339475528896218446693797807414734630278362535741097265348630541081681367029075285945824970991669812334661802599312041124471876360005268818062420262125211652442002055803610315301390565234030277456532803480917936378309207921305118334345361620980988569250764841414163957225451341707200798988222452316018182290075503825534562299386563821023867825527936488115919688650942205858806810972257227865956382205644530148371203959775474754292234845060159695576407876472054757419117865652281778210375057952018983892767091982927382774475891348593601890167779496303483979337821864602305605214194314668520852648397407644414144524609745352043990868182849441643616105129870280295655071959715263786889929638280646842160721891896347354755585501800066556091450332744987737771095606433888863431028183480806022928629248788500918064497424837291504832273508755878167518086274356637391727022027575133569687484307937766354873932391086025389760571388843460986623771626729757389561041271202761099277968356348219651201974162799741665620388786090135338394225667234403895981662809165857009306623384441063203315416036237944854337053072677330860101458124491397092947540318418183089016723458142323727825272096993855608928000039829894688807988548661628875743012819321395421793010024355151047391704488632242987626133727634743693890300743706167954605181751773486032150273139210617739606259509309704169719379525438224202617344033084762366897389785348329938468957740874673906212887632142175002687168776137281543929456574719214900636954564341928284196455498239655734402182277788083623593004166216355668728999016989061019788529560877868037908813697545537238559166294846456527736380966987630973304784252391724858353942605413303351977246713977521789973165552768017393717975517270409392039515212777188543589210240464007375534042601691026940337071325626184002056558108465649124180743098614347204789483293388141191489510994338741095596700737787431582545804345801318749265261792643484797331989833991578287403543528877225832863866070217838114021464637582720642946314300812706566896288726594639700155143373646833146645922778168160202433308533960821875193506868065697906443605016309227059223081955793151253998488884083001171178438250203183449608910527468081892752582994314662895398839085171486743756895556997048839668392248740469889349310746247300166731393192284700996829159151144599182201646703346999315170293187413694325754801095977897977694626360865869315113518131494434978777838369170980147515824616739284381150457889498956588740687067614453992181297111591236230053750475713173845220394802786326724590439299952691609651001852760085871602448120668083123625728439085197074762974182493105918542677279118256239233816471081358291893113728723038507363639510837322191185869053544054875063202032111206329376314766850152135938793991358320404230874883261911661802872989738453867236828159474859411256757498283335174437489032958378702851272674526269478302425218530671921103574040414727491849921791218894031187809336405722025378721609992211046817957777152523987514668432060390646881761486930060517911156495035046410601749132208221842334490668169472264153014854392997098232275994642180764214898715543941416806645208215608997805744038712949523165814980310763780459397821814112979564684976533238096730041385786491255866196025026278753156421243542209448483354093664721998326869882994204957931652378327015651578068123464923096060083456742313777074551517084577243299123776097262733405607891583658250243676290503854146523007454436126940832022357887672351059917539111292473398763500690123743973209836861523207482065631587729008164690099654173935304944322222389042864727347531753582465277053443104233690053166777219995280284049217231665836236560083173752305724395793026902418183627391742132892639873413793579547319921562063765216665791463201091580439222445040616307155506488395715373794784597756547244713151201100149040809048510523166925775618247865099462541183169030824282892386936811485729180465228150698172045129200069218953326718069370018785228909302523213942996519884220689541600538206070618478852950192610528804324308893984290089403278766737334658402638473259418550601427128187505952027013864106849882866267529167144271244183959793604873635017813847777778413845880027264995438954739843968701791728475385333537942718969663271446799749606985849242351639050286274486405885656078849674574956137654750309181665715397573760662154769033993015330633966699539045296880772186929140324432036658719764240831380448152207804205997270593531358566097604979515201074007432301682746887061571854045832705256064554130611822758349804952267620767721628717066870642114320755436401994501772129728686364783661857624938537439600800439164527140033774019394169629409725583090778259846514178403903201053390024535044564884879297596191974581988270656761775349623346327135362496110999355432362478786759705108127322051415998422051325282369077994958501439905543013035442210123299254565904404913219294450660595817119830221732347005088668289114265371046591912481802226057164085240789677711939203776480344452807223947988403130252480108221819085290806467178125431526490928690555072436669556276654719236431030824315345210747765482940626682142101180347617419317543842864754085560563913455552403206526178632357200608804947291045966285640208234245826682612161200107696620564387510157533029442119628678152097590755943842269415066178704422656971389911231595472362190598551740283366312658440108140053044108476132091698688404132181711178842094588324107320768183002303470641821645431200242348969801486416090264347002861207549947212293285111576558856619393689352870914174962751820341965815982066626412541817309062589909469757252401748198913936794440709599845682994973450877490780703646888779490093525527283905401061195547464854200354696475341016440011265113646723856082810280312511971909762008660762181965810669213614649916041756948464318376066001511462167285824323702257959571948961846394326264826916348921445289764988447245434919064321726280218388047025629770067385557136174653515533655048164838175643264844617523242973051790708324009822495116434849227209318890859724225155654936039245305540251183864198194851007265316728276488833980768058341895082548353683383196351945213507106867346274175392509127441394519431577019768751779560101658058259579319188241908876149401192314952654933289670244335541211501240805146507744472866569006023422757333728023791771540102376071698311454773552766062780640712787340126528817478016269678621141720558054614665745992349033340692369999971156771840717024279155545885026177165937484694990208268680239095440926276596034382963772178391139362263069422315320200199135951520985425375297437886945098757234139265859751607520278707430637779005251989104219596190640605630650426070613215811217766815685970867278062943492823187236052594446497070579588213025916718339970879457213410839092868329419487448248342820168897359494516112775426870067930706773929230281359778853627739682976554472834848288188006694690192188835765794555021610493836176784887702582916162849273508389329184356899856156956761508578920902584549771688363364076480869706404950365437170976881064816326802372561532715000299798383051869099067557798486358874475049229692395550702976420777674391479231315637222628759343034250406849913151969327686999902343207569154150743043029761668833530429988256456649459887146563350125667569962682069569229212080140473307394399010447841152791171374917503033397120704980913855954737298071896987380957762105353342714999918389799441616915093703810918150290260005403795370581375943449412651336691370689254317812747877658105402616781480703621954651093265702945926863223315132482433369663510010336468083183378389136989360067194040917115257617032685385020384857406014461786126405613254872258143611499686590366436424889019897954989253144598831708540619145286811241099912559197264251541525398990068487153901765029893706866631236657579124597520643488667607919519532500325085930016386034844758350792045110036730349036137901971204995267732139094548183708735911829934886987833257958495415717758032014413941677196214560438058269493032552122738275440284990840888800921087319321022543647795456356917801748526115400223441090228600610907587494194145384995252118821370438464445676416660459467458841361771784344085982644544695599617502647170710901728293430616983109775305624162865425990244310313975590647601630543903998062962830542630253352502736838814187310944195765246861566975927217791097237145515527268640232061084245277315666457149944765610541084291846865543177198543035774744714324860671051089174769063855599345456748266383252621908706051286165340563631885555742652820727653920057281037052048881930192002997518408694090601812920191157311740313940792834265498096238788957775880133662139439509410595543254046352880143617477980425490193658582556086883345250947011760055747699121053463598405004088558040212031881655909389674830767352042025228620950579596976686369377336795137288355806463265697235405319826386924644358148437235548022497606880404275565242883372695883287550134978979725218453163767156958640445083229224255305418572661029808458751457332409357111777260881107027085386816309292272246551950794493843585870587496310633742863986271113578004736063116043105970815519844922270299997468141631362271371588451694863793050321573463787654242770621109816233654220076167456685210737709106004312469149717340793329975366232140334797853379471533151601459258395538002774378118736487036365621540682311934727320932533622053615976516425034548162327918940153308087039786663087886627423985698396295031532237512445239987484281040864789084111453245057977425922539006714639305752080364617010214802064505264159832126696326571995707806546803189001483039153834751369792126600592767445628022465385597871878360830213897598638933644496087553347956910341624668980379203244554027545318961397232067333594698274790249746246293892970355111572158725406045099874649867863390597693959831148436318147389788798436942964625440681686394573201571488755271361499511689416909824160694696706078008690413213712688099006826231765315079810405965083689826467756438998356956978597856304347241701940327611278684144280811644311765206000418347533508791879991714428486935224082794874090031285022165106331617932297968589841504407051041008080656724437483646314187692195422080422269976279235135098075783553429047426865005026887307906872699112372580901103523636675446986702488619265342053970562660644565206921611884206649718706034582785103762395181113587170933927073378661907058494915802740487356315867132900266459695754349711646235548625778994717166667125197060735507597053208256419928498017669872392269120557193915427909358975652117430381788566166643508829595933432564519666826630408567584450008549528538721758235990892532539169187770543573412565330978174523679377384639046754970776602513159385084473904835903665247969199691615891265171332877400051814201905960759473796284334887355246333556535263309111554779428281543171722632092521749293443639694817131784107891515961540600460721817995665172721501082938410606267589494465029081294206630500930378449473935179950244434366259049083826027516341110807814782293659477165162651516091264518338255753246520778710602417743516755087477486694719807196746564357610572736859338798830696723725187089787684673528427341613639098023038980644343274751585189857191034205635462765562690854699485369423102942941738134903984496060479805495579668925191819081643328334127496804099072032225080830823458397994910112460371841958369506896419588419141615186672790316574819910936259136051524919716245299121744909847911126526141038598619699877629642368872722168744838605424285332192428899036620533661706482328692478133989984313441313554295863509319589773217586510908349994804014487102422806834080513250980680361400222595406767521073737169636981012160003599858586457664414057052869188178222474757641017480819322344412228146624768733890571088207350375611772220576140768066067641687492579910669655586845370325929846538289221997337919763162279429425297048513418571480718482418539890764771141873632316184860913813071994148692945144587216183763214802834453099385460220633766481965858491741729945166324543767188022414159289145753757430876273944675451178251510296214641887072877285925721695927174361267586351092998843835376429206307152790203836110023633324349884658385426729081315013797417817020240184982214288689461372410827439464148574748262932064566657417892269350697740796758717280637057706676734486805840797981832918410166292624900310654628678051120902395508537019870719990863210200011292755501839967850140831833135718736203388602107436335566874468510757824244580858189598517642636191610775095401580296512829232855693384789266233534796228288131159399958016536703158022751197892844680924517361854626698487845165184196542694325019644357912317805536512313947769331245650294851377614311857134766311116700952710207077347891645092502442976989231823148606778860571710259508320248161847628805272717898070232823224325999750599947022058645674036802881742299364915045370168904861199941347890785486890649663629256258967959772476209307860688783064941928723555559388439309795547995486359717186761297585619407111326644411226115022378865868694892516689490118719088717884147544395757598295626831607122813298485097828358432122829521409193117674518497903963300151462875074989039866777460741756691467354428282988271695880956882628987545217237212499139830706460929083404590481875011862371771878247561829435182695899633435892342828911653077379470992714214940348989128025111796252596144997891360062425312350091798381650311296958188167477496227367235962907234290551082044440959219176930355944891491362100610931221110735930651853535279765016165716134292903644541843274409967060776730930114738147027408701242107927106754685401391066809581454298332888641774830994857434401163800303343456601537501168234817816859293879398511095490114340676638300130197374747478065719643012226280413465497249628979397632663760683222641369393047340772446489487923676834686735317345772184000810257167301105480132315363545229912224612610743553236398864335715389958254026051789548810245154646842154432233689853730878668978068128562400303189272178818979302501316621477782792964365861722353829590328501905519270034897281812925943836778312590377239183053279225247559622162250600445152030709768741719490809420384733761405913422833481596862851900569349620851601749367297003002266681289349707314486734770909994535472335558280099419185981683845221445780441556078147244574581574799464279103113722520217640121947598921395355889610890836955554885240598018869047917108258121745612469649681078203422510269727818654702447313241704603848046343606056660149227654274456374671950166216925162666136230663729907501582023900334537769466957438866932025328008806585815254601004127264231995396002472483184328730869984311770200004235432876470164312883640705632190848279489973893483255321749871311628660486641434115452081340844508999236995408841106201109032795664991221911703386656994654147596719127671247352377945787555741164579408739586411488866958280493386872677564522262313058751176491115490971354625128763907257773020693998434628682432111558206793796993388969775712705863665052285991925822988444044617310241811260815370052324546131998041975040305131993946785958979977566597565598212093307585815882199566276226017070376614656988926051141632206977865063892783007593052545520332564762587299933192368054356859508641492357052765453871655276728376958111705745790188082517989224578583299073383009179082923088327028196738349578462399644054384873599242963512304816232112815039190989006516860977369085943076409477959122137857349285713235618158339451638467069048095255114884161918061472021558374770785657331852408645130476240344123436304220135898474141360223423910713769204220230613589233606793999082655397637336655283574371713356958466782471041646604593086756968743912146180694083714696096141725461111259877305769056813774833547498942484234159002347399614552842178405635467704349180371667654239438279749659979825599455283169153992070462599300240394407353167814597267126307689213674363151202193326308193319650267097372130054932341688465151241863346577382177682883488843929190268539523894219410516022601167865105870709800464547681943446884973924863658149804762411740044849970400006963429250895437865603946809790450926899282875640681462973402574400600839825983406304831149806128872670730775482379822453759587293140686489297812678849024197252424696801655152527724779909476514075675201708800301815438526498448596050832041518065751619739348040500269266107013902015403843340593818453143017265777531220623725715788791364470920713976946193136301131883527866334379236619285356094102580042016778705019555173330810850252326378788011782026081018822851352804218122646206505799444396537850527514374637435325305908070765945837231448637305913262404244246243768671423863696895010960361820538901458778642573411452033064984424584155185853781036570580301261865185924648336790799747006577541612877018575457641491532169782778194496642812746876721361719246306739328356442696474448775183463025941066448318881032097612049599218520042693950783896620440270510198179083352265952509658106929481412802484665572523267363550408381173150093041749081875523630358546049476795463661439650258670245411683773730240849231789957073197458173366080579671877949109717366558473945692044685479049859266808016420858037807200511547581600906005286742820749770837954312816233845123331494868898997679921448479579340873007274462753654969614065799217804568768712159140773195735549082247205828190520841390857381612117377350276140688395443180992285912783445324390434190065812936759684214733201195399943439619234040073388113234315985540824095969765701695649584781019590575148013851784794184648699166281879176945781610150551958440634475767549799368997216751402677497269383786363028866152515222264329482719009052605889412122303515319442010201986358636292030748048661645049814685349860169243177876940837008600548486643743938309500088546174454160439919592599684092906890418763944197762337583823896524617350787269437073049061221611846605194345710714559116947338464027290537833792643307524638827256086708949665940450562780160672992127181274248380138268125191861229579493874841499968027815215569080465544900866435221687484850222809431560542594200201760693187873272581956321356282692203567437534576890004164787926674773950134635117754050355072496075235076597871605527446023119420560279046435917428014796450287495704690641054215289994510569354904380959298370939414379976245397383861725632451070344052773370499089352398940988046501173470891981392050155462494816948791205192664218197581287037136616618634506707203433945398503896270876116085139352699261483167687059569249086626432815133110682217378017935546846485884121169715054687371659893041430835328284282818552814666377210933042406153101046309001995507856517386596169606301033769803694533206154672605640252466437948882910911104021344443961052125135702302892651919372750598426324006672554993777050651516293082165436388491892819190379716738427807172767343365654976111533841082331817791916924551693276780784454152735253838384145771511615863464215016338550035579090899385533157166545708203362555202549483201878212406024626578195910812782809821411693501543101092528887640477172729489581437601885207773063161281826197583633441427972054272429690074459407560414587650646596884485896688873125818952772188075186244641621824432171277909996569656261692295408761920136736813202904320482956241603922260942456812389012192887867796974879016710932613192206701026186845284213428172952100744576286764421733356873720980827214724076138237620718123593296393313588467182741239461588254214524306463337721549289015937456344123266667966025409514867107801979559105985837823511075449465510594948507842984542850466858274677921556615787551573856795221069632704847230249585543928927761889655427316561796303601570275521928691475587279795906383099445249131102164318057620732400898222812189172050937868115126039234199795489330333373362159000778765036938016631932291639297910477495812675981445422688453610445973123325931256932340969408376701497292210100945636833499676628390940415594069846675801177514320673740864164369431123506628093190123161140283432094161499146909725306637459473117066269614742558779507213890626428870678337536040073898593699074379966198624849011906028792456539656930452721038595048412505619643462975145533867603275036463565019547398387919846050635374698801415189992368259102027990472585759974724923948007676108926949955083770154542257694611986129600757324979463405142839276649199962071085605993623499847628338500095793902968713712110248719855274240563939925062344814183562338300062303316026897915045748782895657935816511507477433190905042108377372320575626504216379777054372907176182118570783675015606474778898978442111210010026390977850711290019774451196504044038825083004451856311539152628918300298395663321333914113118352718054908625884938933792720818484215488916472278201808942584881700867652482540327137128047892294882347273663212469615121500184300094690457506662251658460807801847427561201095349512023983654094845867371027060157644786009748685364447340110622533787818486043122927150778622028347156459623658909104216904092359344463513224411303982712219886959126154292393021844721837222825557129523385042843591475704249066291860716216194348936630925591926278337199152317066406047514523889563541518221164294513940981264648438022523019546435687681457618916362818208345957933699139070706515464967897765309184374723455465537830524649911928467553224689161845743451214385560419799199281694368623913728164113561316536735727784741416672027236716317089935803524268921523648366065757662805029121579461221826041402843616713111781548337353264274403825282359324123274346482211486406821019517533631101378234016692590335056988875835647296134867116397151176727280619533037269867327272196541408141890593080147179114244031434166954981676005853681268390653235867326970063050241845569990800792924940619874567861457310551927067010251877393370786392274909865413202341538465222737916267275481723763745125941225775118320466964720094478705930851231507027467426129694485224181396972399248224320461609251235535805302041337143638717276694562280866194744174359160673282761915917271203659337174199838401277852204178221602091921991300428154502587783223428929475230276165234419013777922269657222465815677559475279070701903654434521871110747178625474727866752882444304363870320605862513003348682227689653139414671287168292643912424264881345445966553060779855705444885642390218207999478210993815587309920394846833159151359822842410280098358894266447208150336961626214714788993715224544436056611172763601452175796374306626950773297081643593978645104780429095697462682565161516327345779330793701828792126459843527979426482364589405108499297489350187400782480677376847864160094549295618192437072160098529050601372079421290657525573692462634858058168148480148039192316759504765459730082900699231722497316490019324901358675905619022384819560329650582659672361125834048958748762705433189285979690991274545248447233416471591942149033682091915151262295904121398788295348634472770559736924467947467844053807304395470128357149709710548819790067648538247017567046701443300990880267321015940817362912520271853286093474545025111411467092013639589571765590827059278723768210429290481783188703896159021087731846868407934063312057456179293430760052242856378374643782865493398998011578039673565579119849509064005292590583904696496245037952020773874629019102815690677463462038842161093992014213120348884015910499742013257225447244199106669669613268873339748047602645815183923071919949138916580365102015479185604065169241999048647209590031486621256544263065802968631271003779199679973106599680760642246111877265317632492412941438643667034928742970353603846998799890260079888214820238896492821466514752723762598314262517934110795303974691275567081374758269991384005029340467438873623684419690959107962620845762848052740292743328952813983818327364718494170397450597782658230588518813413245037488650776614237045269934449946561758966843334976731471978532614138312817036044878351445792243467486248218618407493500863822142935476529739173910311042429598393933329789171024654915413508171017497114462869599133744456707106078471555108249614097431015453791030912501429438406260287014829143269699875255276471669596036208106412543787679592030134272450542739971311156326323564067571677702430067157958984063328738547694842258969601824450650031936131974171298851032940861971487723394310387528924659020087144377926242510763614216236641944060958859950199202062302164097857799064956215740763919152236478386882853285747974637130032319672733281824725538236533426623011135179924930563340363686592361024431833902043319606843198874577139204143070350176946364536406328237004805137765254048803854047658691945170657317395425073167394375495544476342620062171471943767735918209187431130020635924690250305368126062059662968563664490386791999159625862045944408998539272666931084523767163516138074795926897210022568622361711546390389404309810028559115949056582802119599383590286289248545780476212275444821009288258384465059573726003362138639135611006961880456922488652211887117184360591813934611262209718041466382778869520416593487869427856448936133670939890406613509044843253082697943004281457392427676139493589345988875007025055923524775869217704529588082215865759524765064943574702333951780645901542606919827192566764436488416070603760869613485387329316890625628014935908421664528426288717859879354494676326794608780602955452222095345952109836041797791622048554495470061617503753281579707070937123960660420652467500079883236323658492170396495536383051106970711567662212704128268005033443493658821970439653516630558798785628324141698716515716824670348671748713968315519681588462814560544149181582406614880712191049499759301470331078224065567592041847942486922912120093950526684284437441359012722216633075915902468387011835739689261938900251831583934696868697286515601763432461251924776153354084854864222777184289119939766962574085324057410753337961612649730984743756385623222640946830940691909028260522223348718944242996913171418541338119732760936154386225460557368927454222961205428778234359081920577885810163370614492264021213194374872879666569679671555655449592768339565335144479344462499503183212970189912929063695290461103696130965252603519346207014459314171293511166037168207688969336170492837322964419260470966275761668648017449039930853075934074510099282251199902498608320946692856241985518950593093081636608103135473134700442176527277378744718314409318385122097415915768025828655489621424601790032673234979578831522492983015520987091812742267710509032294213059809793495446027740184313306774680752865048628388000855395455269514349443080452624132421715833350049959143160200191040314131011903810251055234650889555727276381617372380970771401247683390666219813703499490364308661722084631670923598263003887495910623659756149844449980421992527489309979498082219871289366642811748058309242550797386895538391514967695849725122847835440379987913262702465057620476219912295000325453307976784652083358610129245713637252800979367169365193209364478084075688958044010989191067876516304863311285702810600109280476771026400322001311470357262441660567772455113553739635805991735459492783055124642184345452596863849191599980272044631500850192036860546071120062012996474367140645694597769468378918870681562654548510982014521934380992811530707880809978233254958167755355591116946115293081232526659696229534452447934275232604387780978646857336066436066494967889718127368349850348159223090174882685014405106586830463847215566411838672929308083376301143843968715826419761303926764293343450227160030992348850935825311106949897056099790294770313185897161670927556725870794773229874150868847620918140809248990225684964424375511047840598883849713688609843684854617720841785949904125268535244654931758917423516267284077185414104984657345154685677475554151686496716613201398529734435799844615908537986712009476203751513259921717132711210146264494253590178807520360407191376323774236807385163384296068029056893341305378595036640635055059051360817060917624724225167388221212792490300934301736936817392674669901365155165801305368594181249665101940700972363550953290697931205276357412414279095635743774647026573924296845561559194908851645261562891078176527703408893963755921220384780912036940908688445434441482312392474740881429002710277359175086325592013172845969426831577846949492265759694548164589775606430582696462594982255718253055117361558247893581036576852713086770195948561234100759233679780822182248318900541434670187281182629967206517162922987769930355405428946092653864725144064704719642779993095881874300585888352522370696900638587663735236669396326592678097098658796321686181870836149818464036969167214284119745140045410685688557433267108347539254947172303937544870732513868625219518636211878201992026831886911406303983470343048926175819976836073790261043057463639533875946216874316960276394693094497086169193369376691293512362854069422144706790981476221891463103080955639310142250466418528911337943463166223277307801394562105683462373477055480368127662961215267421667531274319129873576632387639064503426018817079777527565397302246076790402656194555393580990407177990018950222075529310908735846408166569803246902984267237143417078682565905536554738870740831431645315505862061346760646955409795857328969167324822196911195255809142609917784384198668781139863078674801497746063383434183472226708383322087223688067905330011212370296753856436322056504041299892632800342924610114927028426696473581752544686916671299859848145547782838404880757588703308373394390040425503605591555191809593448799367753160055935960525427312766389880805820046385128021649829121613125774074257071793044194039041848677090129708057494495075038380214408451031583784629710978701627753977575645996568905675586430405541193755291214796682077077800862546947769826648718517033014896224320041806884111081191977697560108358998136278429499475407962746534858755822330560004205447906607309039549309021746929323403854298968645758970696520591021202166029330622275363709897319159277684559396040005602652891874512160284826065587354013839934451460258735332707027919508576541741046458647261004870640305227106389500785368278005845606693952086083733145365459287739420367065447676543454813456419011474592799934697665665556504462545390986368480987738257558596550881114963804835368329086100523701260390526738655282181716177544037240439887651340288168633306680608991003752798450758482818896747402013384268751602199052981260895193407085202888569505519792940360694273594490582565277794306898591418049152458502478032086785263769598339720583092518625027127618007045445998268025713051388739437567222323435033330253071024038098185338144182894194485766888616265319420338542388269187067828735945735490094163812724899926060520591830549140476928244613100007354597603699351191722836044688794123525773407968592324970953312274228795953344283387888795648000295423951787835329125140513037497287384872346828838838529529691686444919424283512271599071720373437600922761923093474760723648101079376046985105499569367727836892838732137160467755007861544904269794449442617655186677384123810529077981663213798236921516441720926516657737518412204279157759073342401326883828017290410526692874539205526645163493416023625794933845453939868189878886706561503513857036101058794540509200341032171424631447472662642202777088901088247865643017118177462808005653937528981277824698808843998057119685022605521088108757920314380385238541771789267616479828433414495878681991291371845168710560667130196240015284386189655938324648393561722762863462031829068364875354164464317907670779111374889212321684227739760555555327759706261796058616228343008801082154150458597262315013400953056509521691608275169628624242381418310408094369422017234070654386763514493465351305053470237943431440058466105481526501067387700629965000487540318271635558455930074767420440072311900163992702298166996272898208275564714510463441531361403562664321248158139208992419576172567529682269843117665631137382451134119952934415180528195555466802907493448874770488621523763211229421980148339206259301194468804694993670191625146319350018540583376559899776685842613388086352468297121200072926922272734752227129323192516794925887529932950476030556327459822469210520036990250353436621044584984332007245914170238226078547282783550199951701058602012633680717780873319204565110062271747942654117159467373610404301897135879633843843987601063589437303377443042810246024931080725139507344350971828721455587706408673198655462527770704117388885514713868373131789029689702189812332451321733792536799274357949378262695759670373758603057595858714142510280243340290523129100502726752976316289042881269730678507791750223752145718772639719570337460556248338771346979581050183817213661339762618235066748874770771731352793362444120582322372898901469713127828024928372498918257614847029183604464513904021717032010045195233060906755409438904683760239004345313147669474684913564057543539089586111356125615462744753946179889655212168991438186477396570569033726033023213177684524671435948399815838572683913025544140622117455103237889634530878297338898049042468293895586181827674938493831108866652532699166086520415968853143334204863072495761060394799740354260705916906510280692098432378859799185240489564250209772458232273335504586786649580328433082526170903381941489045295720812944670851657842461896978149234963376280400479986840040529525234955888318327602031219765692140012497121709514480433026193130795374424396498954126053308144138025016813647479505828866972363874726496128458915427078938629500009429754806760491607112235152677566723664636593141979256753936799533957258258981761961199442063142134097799638293319259106575842532345229056208551075117714767183914457270995080515982410332357539692848083521601892256179725774582143476831386170646055912624818019543061888088198335983951335481878812582051733522437829096406876148538150368876501441105692790382313525195087831322851466425326413306882850499828918016973219215316191058838293505536749688194304717654702203814401416991226736205173249899728152503893375661743242862304723501204744755074739026119467997974043674358173423412705030190206096261155146444396213568237740736918420068946109232531070172006384637619419414257390874820048511624438833241443537331047132806367763034814028547981256298276735234425677863516788134864449793574763813797255631234080435395751392594280730274437517798556770662775986559986517632493151293832220020936785961257324609379467374661861956341903142142937101432465157278771502653461731555629975948033394834083759053342503850430621933778344072387444612581190307422739408660041560448537579822725349923494182157977981671527031547088442973872932649115936166112760689478876034781776585413144220264044768668225520896250256925865410661020158296198613129569684180473005925319489638886787521110531698332275247866870201063737702401751161444270751908750559726566088449569507150292617393473043575163001634010870801621127041764387921592548476048811189225645226082833808377571033267433101201603156171164300249222949494193027718381619568216792037629501162294155030742464903280928531309858722071728397360079017469516025523688734879330868680146966137034312858672702231965431429776938805198445918004167099558249387430008526359496961812211116136750346188187483681141485813438535395033731225933619693157521631217616179947922177208340835380736640095429698050042604533343632708743090258874338721910659908767224262391173873966050253769613042879742376830450248553347455902835739949581173353188736835229886407559676233512035843171287283285533401098820985521023366146254254108250269572170154992868536283281428564356573068443255046815240053858789223351579626408529097544159870298030991030388235786588586321453618895197058777682121396409991554974839807731159516106694784214853104919333510909875751601811550714428005667073060027210538973403157636830387462727475034824676719158023937649071075345852073057857783376050399409694578201636544339631241487681175266819072951027350883583040812788526806041675763387009951242510500032969857643501010611819787960283876650063985525157580782413757358257573825371071293131761616790060432771129808117444261089660742718539177640489716926262609565695536101705904311973023077296767422207685081314070402439694633614230054809438760430133442971451904493554682951643369135251294648402010795765409207746598800893167916878090176478320042101832369418988408809157410506400670541227174574040998787293526616203434042601879663446235659825315665750307862714149665433164693358529572221057379489344324564477443714377027785165568590699761182995495944892945136960648678238684831793365023321178233538440593493169086998648694558843432230879167736801276157599672308661078534751900383630215443347342933504967760057027272042664373833616162281700205436967547645530428357030459500857725556195091901631499866907285279715047184862326776518451189424216181198846701066919427142096197654209323124877827508057925474024019508570185439955759027021652345105156227563980839370101942134966390702548633060134298974742363135444331416791246054471653065478470102583342836438267721375294196221059884449365150859859035272592957720438438616042318806823509529957918922974902100153554301605225301008069584486209649650446878698623294842263818330519669474961421788762016911186508066731481900434329079105306961409711763519784538145520464015320540570425092744616749239565677208326054392487866277424171646720770767365673909781957887382423245345554253544160842820691330736240474124328731565817537671035022327173066236786177579566588256866912979485922788854826355871571671696065994620075511889490902585670248973136410946504297580011764322420202991184828229386060609949994388005040208221012678279230062458831264457076918539381009589986144997003705652591898095150688960517946602458362434579760203051004778891596488108258642793574161931847854087365739837204299253777487521323384851817521900111010745129452151438854971933408612702312685601684755007184057962599502776178371996250986761172885009408094206408728826457016415145936520047022700128915758404086306575216419924741947189399753693475736984694411021840601035822371090577570967376922214132559606306698354366127247956001303721685097970538296679545096948667806187668274924172696381290900141636314304660908198599808762650659560867825054199977836106519265379911315057072682296254085153697075332350079069784454396796802082090065279231283549420144155536726917820372692457575904410260195416173193212255749180109173930056727803138017017895571121906193898798425877576088140183002978521503906432027773379118714129652268594097917674705989616387058286275254025183051904745403825018758285823183079702628973107163776484962903511792765809150521555234984599989478358949800087706062057927014070316330823902684877878463074340971794736586755606590740907996326353945834498256489433089027283581894893291521805515160532555577249196481041601217894039921021241698766563201995727220585880337173254086764010527644684691053182959506784691133334648824158293066602831952200397487444075339779782182534314468505775266855545077065637698087999889319353703362960646418356246429489748988184553420223704637482898564476907647496498115341124185714569709981941209298589923813318292985925620852172307611726450102468765968721059015966572210616516224587523191120737113267157799797152977952819399595696681082361981287196676131706598141175170105259757001538827645588947151471515137353764286131224601775454248662409971735898284790081246019124964348298900197831161714240240761906905716597556449217805136058869748519544221867812094635142283826228357271727576148795875730153769736288807093602535676393271117809438541039929096730253591801468638353540961653454034489999674523726966403895880297742564435241643935420569303052547468707071530025712309408242447123276968436337836747962556165752561997130797820734283589353691561894303531802832110203731569434691714245828522464440312255797444628185415686442193031346953219981325107747805201950773138066690794688881506959051558538981447263440196817159166708927653295581505390137924977454257698334452080257018830093670426966746963464930553989520131147228103904995272309463806580914417191717612276248478178167273744662374280923944229615821506324389080611334900465863537980770112070353120956524602509722168930996083625277328170474387057425145663498732832053335469195850272383908386200533367542183232560016326903345566949944127693065977258537300904997958730241828423437162331551833080871033926147559764543466770917634838591316141788643597853217015418444114269572185083694856244560687311291252967087113441586192821961689250162225808473136951757038186554134708081227770207653346252602470272370383664424087776841406734793256212314470305447213992448167172533653784912358775386770628540206448971406630070014095298769961849907812044140286933507385230549287619849703622305009908237595504308585668245615162097857705286576072814096496759217420678191829579461898235435107991991647312401972527291795895616190352559471895885514073535052251503638839190419908270760579674663435039795990561350224628094661471420569757185277240413312235030891789169342965526638413276358535467004414301508147640206880363153746810843289236777990693293718343472094000806862178809641603342538391542943489362647544584704664242302170165994386870500422606472352378961960546487057418685517199663442916010600740188412428022262391824826992547668809115582133370180050120311033004899206747068283131060936866010502198143986486391334708888619180205413372118707207826225288126846843029585953613237086900978117022057245651864764959275022297961257817703026582641339820700288114186017603749779354568521229832634390823265501944622668415423555725164911725824725204611008964193327001007431641707323204559878359012778619648671088442418805587399175733432718429275458750065097740375113559064165540246482365328578653834612039539643442794314204685519365786598827838132414046478712601764040828196906176738688574185004949779911307897611388708287577234482084622969083388295309616502864202910081100522896083260720143772752440907951341979924328822701225926964160931631330082149118281686210895337586325731572225293457876418219106589876177248870816451403043479708944292929928376322231751678571436634982097672333040114627855415162662656168159298380044138195011249254189017183804072852777518153547774754814778497095924402330346739152550916147085946438370459723146084700493188513941055086189479904588266435591412397908772936780763619861273431612095955898547926911071104635634956123304730674223619446077977401434605630051845031611749175172411905417862639920569001678420196009994706115091460709679718585313932423830048163220865748633578671508123802330630702807496696659114497758718717736654859074948600742179362404565523163358640703572846020450938497319280259613277167398065251005066890863772291201898583636921741756507912726716279647594905201297527565086642747511102487659774844305612970436839753185376469394141984048379326536347234764342564607667528051379127893229200624184787150182287391716692302967654851469355469995401929954107976411799368438726342462685918641812485659951695141176974654450715804292882570031790224389440992973263178556023944887356652464913385841935375851870980410039283970558210987879621623909941738426871550814461917408558575761499714099869304593389707769517742718407927877595934445797021508239676402481497467937468078536479161197926083473258767278147385168450775876953197442243599333557407883065237851804956394085369720290131568092146490574621631034977993780173403173794712516750342837419943530296840328979467617263171227951332342061662238728633606578283747438340955420938870300066596984863154890243469930174674190878801426065182433957134923709532820016346078704639175188725063976002387681168906437201677268770623597679501046476787548122588298042397963663525465714545711419393051770563916821769546410407671196103087690987104437716069251648756192971964781099581034832936798170038097121166782940176240160645210309278425130062249263686260684113449790792581229398622643456379479680823403717316445694854144747561522992100684295908476197559842075085365508628069624581729449717960189482213551290466897921114330073994564572299355374182769172125653273646477574930451418525265456869565411811794566250290113313657390229459483725916847496449622982600123187016825221069091402094410742324601360797966345559269194590422975168263865585906245785607957969740935881031794483351872457454572931565076684396043053494440464347621476335477764713713081848106243247818017169937897839357221261560140698614861981539087130409917206114285994762409393847716934868852235961477292073863209339874309049874533346903090207133530452573098118654788709727494542084053394454720030037509893164435114660126728121927582588915549838607754442410048850380079730766264512003816755020840914394293800279082787381848843898127727580107437778657976769771815056062581463356932579558671732695352169166228298293681982529763918080524491076757175706417997653389494722682457189638760988613337597880484778187748959102470301963292738556516951644767163525444918115817596067937491242202334042035141230599694255068335505297210691871275328872265780553112679136363095541970476655836375271967090012307930580765894544726081261712953122457757414338446042602448155081272289696769160101416331431821368646142702727064048720230456062901236553851446307025518473279316655549854250526290507923084961594376001598566630041032811897001057779785343235231806815765419135915429203011280689803690904859112235014010990693471794559255217313345899831144212416796785794990394442907239684514062209467544163080546022051215882969461563826591616405334331535119340284889950286091647638762220453660564154821975189835723471642507524393645106013106374524568295899062947848638807069024847480538250086417344248660174494688944505227760897632283802477893724126643393811678583642053315237521848523824283464763759606880786995390936318262722664206716181758925114481544252241286712284583073126199855679833926699734047688009591931979558799432936650117796783337511056728891894550795100072332220462409520165353221010621717631637252314106701287680992865739581666303625128761021048473569901202076408692061570028486779832551125272653466244513664738487001565980536772662046689864980297747692692702528140477793306977263903863399351232135540919836217634525726868268466687491273827317415960657353956531554783511553196070868339801864161305927213805166780780608863085328238467409608567024612849162565702167165998931714349805613924444183733578751085492239425589848862174259521414499796724696428807766849863420257433232366675750006767382431125672603427606825699843362819685423349831871129150428735083827781419614036816537972978066949933099171829858701658846691251204315865905531526159632524134685090677280596460509318582119645186678882970866350648278342175320593786358252318317845259896718411467581987583563298283565185210075007781616129303983171592019455106331786164895331890922962626508785459306155947798846962716181005777147179679098503358533930800886246683141019085978287247444566180844433136575769931611180997081579962183669438401892528236961259735592083454681267684687911426021154519836155269741901999550026840657546284363746377665799868573140723367565475986772630914521621087505628854068484675608874738368848618024917349811348473534156521293468305717682683178065655749456351036949369077332933552209132346304358235826355611728747058873882425830139244386185502353248632455726949034305090840911238769301998982645444974295983630467908270875184016140292824019250377528508558767071498463915223072506046734918153865661542073037299259497261065342447523643681228512192822822537523565389269007854890106544787348587371481609289511888611163258081342042334537736560214962367477757266855215361408344875389072766755299524712102698875319152662815597509538520952235513501095642462417753821126915039737686447385329433291442383584723268379119035464336373905864206995697938904070628805660459570339676887668532091195211861054164952853787826405631467310971627591034184646040551842649130860651891498553604307828956431627695483790841729860494911675485486577562766616199673163536878040364658007986738371294701984342255656871730163782674634451151544945567314915607700507148360202994224056859605930237994816285042140092125120074482919247135551811126279728834822832769502922984146308604764696314921927787176574884023373770922483692598192692596464193983998993208145563515946397733756207724568405678849620453748565900963591422116705984562158066783800541941177563084517021834965099549395368275836544523072672635529523651696405458989286270932596964602701828638633793227469257978549645767086534543545738177160020226032194896711890407726063503715143969695232843927550323870898922101314986578660798187818590514515485154702886101911825920121191341953733383915036689066858873116737114288512466115160481273579448663226295619230439454243175664209497159854357390831325821625926752626845879467589406431668828099096277747934749559928305719463671741554431649372113881615217703468076164015038284020993489901482464306795192749675396826302487993157852526999705561036193359158493313654424948431215058822262500408418453775062631554211420330037461264336044528607818221632609748692833010690306820977841361048913134795759884740912524312347727326639563965370544043354686213220716612939253681682822317596643512982991755427502436531233138328581099443582101107625431446518414141578565147493699930393615355946298241075429398575014157480302340690173746100671785473940405332192741588584189837448535097805381757040939035971182601107857216385984689971679074175450786228237085047755776041572886451309069379956299310238170698309858982093651885606792787905832853643963425915000479121743140060468557911949796929071041035434563775001604949889705574686005887950045126309773144371811211168655588909854120204192659000009901938428644664581816657963532270315174309275279189333611103429639123928342138242181717844214540967921852006647405736355415828738292176691926651443689889207288097147425451596372454969914423144391051831596076718826749053932223628536055847945105338719752071450654549579367332388208126667840818445677574305737503101805106272957377224853342872657163659066973246395752137632090123756528193968744709425495372024373189338133794386817465240038249850188068723695941051177813850659075498683047335322948671201356755232295171399380166999073021104101215374836633049512848518661749647754671096415197712822677793858858882166008407731321865918616191150056182723854888293871345246198372946113780115337866611678976138605600025090477105611732713235364526369990388532471280171516203533859678397837265667120767050494205915648782393553673521492085336948410474879191953689665799264085495870236389111380605793829813333774793628909107679835463794881545148959668981283716649297033295427355294189089679236890578878711240088083110695953078453158862724676251656322966492943924141563771378719177402853783349911314362371383643583213560694672383545480638220441972970027767765263118965727657294445682309762670800419898639733516149237964344213792257526010802172947857429015631794614807564846578927701607216384026726413142414527779277313069330497781484346144359924910316395719673837419078761254377256907895979205255227280012750761194301634752053953935042718130108956092386100679427412742911423336685040138625232713881000964207822836174566286143679019428369316605934715481373059202953034672455969637886682291821469537507790199349319599005010418485111785395716879547863419509649505716418361616614938333870644632060468957719248011149295447742379013286912561655031791377316649887770133232453697594931473036076318355133043740994045913471955004301544048466131598059209799137371253824162848549927548120644258731744588738856636603136142249511658735873791682716644527825667945358064337512454614740081874159993753423184719083788913693667526514907654596893635622848207164899373095587308417837697626833525919023597110970307124372359078981258440701349728458683257401796499542039789520242140804110516132321610601425618683138448574464815865252505365642224831999061220132396792282111656127493123932042936329434036101185707636120885801815169028145592498962399109357831390776378119625328276045963687948598224587235641032977226825936025155074550113851786051973227675075877469958302021021180079181076564454753179330678138518235205958082382544132647146628654372151546580159536771609004820348779241708243939382928043671642398298782487885203874006271883961648769272944582303675050191948626210581523909191768000270523623252398917926049632352891767944697488706456419601316865110249799056190515671811224038202919623405010388261263554539954220240684518926318700935500220748412896711679812498714308899095975150528627263385452977899875177941552724014587454205374046094559879926911515700159831918716681133479061391870394447198767798327949736543335835307263453684118126722404186315335306939578098239356084038157973326378517269663832324778043662627134973498503190126554243397532673343283323623129189119315124116272060545802422558464638178577509318854583573555247832740979297975897465320799323502837594500697879412225445188442883710052328383726350498315618435043068755133088306430767748483185784122472003210213973400534718002004778395418732758659390361535702074572353568767473272316582776813211308102284598443679854771673127368254053315190237796790467942559933767843105219880778873159011477861168664909787756480366490471961935735580362552005034632923472464733418837664598966276804600571684530905467829045180664642637077365449511078046152008133003007394839727185081548040386692569402325520389660072085449131418128251046461418817612249868950275408241379740424156221956392478799364296075605189094534222568406566994093760562747217795611898288063393010661810964739694443273047183531927748216328969084285049232132671728546844129127321448292361726853304275546101223591784284538970484015261098670977481922809884395514374101184391692939479915947461212475913883696163519769177469924452094691279451095111181494633719578232217280342833187164726559508403312428122915882610590440184353767029997687576653917563308096098056839414712165329439323686946317677137797078534994283176582953738587517976332967233574492812215314980063246947926684045220464355514872308088009598386840464731646339294028290361288205327773994329280271347579494250415042085016732487767808441607499567269144088897651881299282636130221400620916162205873831876118477826790540378037621965148622500696968633326987193172558401020448476414969300410150703297907342127316991103476415604239747426565672804612117616366263300625937292855171964000073872349185458637276188087040706087499927611539254087813172162154241193142886348256240229292081226183529236578696890995592298017556249222392145718516522815653897242308822388473905096154893325299513926339996639522556564978518188426218158952629031031833155659008458771504115110123294524889635919374831281895843951496178067160493932712513311624556262675118811878661496125785170716194781478440542175130153262128890917238537489010612633644447586419039628862888268038492237201120775006358252757637854182019503245216358942262581790460735296593783241346657358025766621452396298145841276376390159986068152558747616090852798678608837047720109654371593931240742327672529788218852696571250587459631754770629220936823798584229606912066012181185087274128985030506319886342866816754223275849013089198243288676046359461955367072144740989783775735220010441741340543930780733062755665045660617686840115454829304512329545709937156294107235868243157679724467174117788153018902088104758025648578436327882684225350855779867587744485490448658149040604120267104538203587882040763026186186699041757317731522777868374853131875740579211968170360668108118022168011540234448004171143839891840688074224552424410708409775194276023327477169754524168364515820827135504716434623153999368609598401481932908773040852013152293561387778152504894779605311323199820669776032682367690814349735385251177963677774473402531979146496898228319767821420763264674528612570501306624133396549491189782057080666781813425436420998158499298768755739655984974410408019275002452487904867396299000070201831623477601384176736436764367627121764746579356153429156210564122922021807242503727774758405627874583963285673727947604737942424856279757582255999256048153179339900486681219007818690296548725334706998848215042752552328164830438706537446970622156556613782124173043943717984954727805370668131994444282697290075607460325796727097351073408465832511528811043380247944405571237187894224414254991152835271074763929356109272869442494701332430368211078459896185407459407632564557971939098156614423560529953422889679856604480841192920729844012720569393719357196104959813368100310165780035271174474890988010753785237532244469006234633428903232039752546193646575365450234105790739472860698485150885482202281557432794317388559828525154215797816513741378324594678009123170555151611406595304471014004549387914955516855639181232181807069101289562014337911612154699459532505171687248185727196293265361801148852825578269446717857674607495963157001827140779861613519972218466020098303200276613793894711264291844290661828186511716017271317286299414826226440688886182553421745802921866771216975377926598990643888787551940335712553856499594888302291195821031846149967800009546526919093177412508367745288794340560961458731803722032561881709204593620694425731030137489241569994351058385311705677479005424569276961124038461509680925814938406426510320780357308300701670046116364597420144121352012380276896241211823939828080024555645656159748656971502602217551132932160281172386746152822815665089183098338110830527554658664823851455100324161509010617443975013955906458311590349602456504651080944110357045637731850517513503601440459819541319612109095990714194578320094460665454869134733867040749008963622765254630228972555050105329106829611195906961279442235925384795213204791889324954503726602461007767106954868171824225583970504424895715566238602501949769490756208295875155709500175063883522868465996765540418749216806771807752864748646220832114933808664231122318704314848055249347979600154105475567622586615353046093397228292136347920969050202172867345737687231056990053761219955641740182095189516012781053248538731668293568788619184413523273341611390886010365006887832952643897337257423056254689793343654686448608434045907201880191815677645091777232363462420055621535896200883243755969737642875745320883999572801353967986754128226057902635234554583325825640045743342860043315866501410814448961945828422054259776178278813623157475238493007638433951621355532046200039258844013015017969249483161920977458768842157568037964372449815872155398957538774185826125321872817681189931208806765794948616559592965247930555475076765347869866926188415538947873358640683716019172052237505083908993776175647106723295529448961170987266853024604108989088908418278409683909059127180565278935458918029484749434382509006827835487034867338533873515580633890207056118716834962542256199605311796919461079892178433475318990693107777905797733453008611388587819048990888206939905977706336826067813713524300377286611794739407328690797509602994127476109563996704779277215016396893661191623777729281946946781982378531552911197806519068932117040247764334952956053933726221507348860516352595412301529498890532375778351339619727008128297319402399344854496759172388914163346178842727615781393351621067130870389229088669897511260186108052167839845694300483230361145932253102157042985465029640944136494019407136994199184607866100257148429822651378139039821627987821870920376901932358859834452030833566035000733648439204731747139540307199550524742233102154621319813292185107908233926559656936218761319310272031865931580246752265565445294701000325334324919362228641553088274072710486468460847834322537490568387707610480861840667539976956198886000222420447509374965571222670281132356039103166729587245469424728731855981427987631945707011207640179332721101545409347787873616516171187757063497900720868764753738744456523381679745638417705059913865797135338081513535590900975991107122591279526663529515238001078370720964050631097092018525337721148876059930161882681614911526973084624425563444026068321256733834664239108519446219112365102298065037162249787418440792832744526614473271234296715754725290797343404686897479464344121551557976237895248776991123079473783081386429821626080324247662142447418840269103417943085712399165137382791348086749320516596986308345563885754960604210860515363466876825280641623586874808932175642234571204420436812761390450148388976320637325520696373356433663282518116213686666853689912612221325336741333537156491962991413827233774385397547070581228815152364734080963015464100243284697773141247366883730904585054472590722374496070758451418756422982937200892055810383841551706168086048860957498987032994094978790300234743309656446020095633234458449367367880266525253216784138856549339111602865769379872338962389311578863227521934348375088000105557788055826743251285885918558134174297781219790430150362308327741008855074926997909863275382212250685534835031496920635129348634297363688199230428487751716833174653569336926419504624849274552290920469481643090790086451347783996497982243944923962300127460847742413695083822434335411513518875333320087372263048608229536329082283277799778371394557354781264922938774006259116830838476621247129454773840941724446825252050847290185469939184063743692576208911886726703928956412943385284420738331562417660888803909535740765980859352542637880184609028717898226787066748447551741514327296516465855817509786805785295467296818184890214165144922684072319134815161512099266018891345415706392335532963427873163157895849481411291684880976335628606562141273837515844570058761111221294190398017391675325026006790843314829350612946952653057299049456584420223605515611650747572801328364622043901618268712885596013824382177991817449457247881518345481392199832891065730796705946073363846077208308569774481537002322504705430209883271351858038504093377426282490571273134317889756310422491556385077130601022200046886798440526551204346878624532812725714280942503002066847037502614692640112780102469202725592842188332629966602221329962520019776833125788016028713887431324079588259415275834864853418840942553075483030030606669327692554961328821194433681047219260590864604941623534587326666890872900598530267866710491515867071296994432536659865824175174025919576948629852101953880924365084445714948354739010226421201483421797756864379678179435794467697631132204363683617700628465623295888432107783499449724101584928622338072600660340595497396941900323523102370841912804114400014361201854235473706983041288610665518285811026719860159462090169784770154760420480083652423262866109456004866016208634757549698911534695144817526829685169537175780353657942852475238544118121305614059712162695762331117139224979147752838007064645355108968417604797858343061793483489807591570218169567077946418354877932045141167552094595335417530667188996896240129606453164793307836933332526159638698594859043859283592000534676778321123489518276715531351705786560847385265398628920130723439584811865098449580599917515235557392854117466601620640665555694229356249653052902283908511478051336990016823694591250096679249729110407067418934982535396778509879809528932449757156148856278086007958326522737488222176618503327235908924060497004977283645191966640644559766577090543068690822184132284897771459408716403674925536928800305730574612765697234446505312972954025839181450967085647682413001619790304142188757823003649769443922703589575270851556378847665286708277593112829948119503083071692958819794942969202702974773360708185752180947989351833727243407952970102308291469110276295857429787851512181728500167723737575641838277386803317889456812115631260999220779374754808216161663409171945405282530501101420314462531111383102878430787411371512772400949887327557530460490474019351753177748840980976808359592307712568228759143021190927169862311191502097201542384965442157877002364300350124888824641050959158900433951626754448461529826089156471125929998173993154942534644184942248395002991318712266576630603829746721186248366955751155284822089107231609788562293893772220740589103105631132134782958142138609554120243143032005472953632239880866522367872172670698189270655819954438170437655690400339482555725693537325477827839410004136528863620172444660579294081610369147132800438513890869925274325878433458335719240859968089758401424001878788301511236094771332188343065070679765892780830618757719063336316994335313993993694887667311277804930408225181247476841670064687033918390760293071646778229852135644018241100635312917958042994788777710027670299486476681925156197743033372306795144055706770634343813649486676661369760449900442766507401358941874978575487248667886174448502767229508034714067207960647014089637401176397092913061995274962365367634356293967266365060561447395211692217290384516350382023772944457002631023782666670598701304215120050578416109573935512860607750334040810743492570273152475860661570543959761846915857874796467122892092598269095241779109444808937248417597745617742689132401717321576144528706774777192039162439919058338573437755639352511372235794215608560699425516205318181210352085411806229946441705394921306868618579287189282350940016420954541839015943444239408349766175902690822079467104108064751863917952561154613045506224841977314013231703366342378770637665734051322673035973300844924004073343481887575837480079594789518909981619895095342669677941857247480571213537144622984116379785545222855314940812651980314804062648589302939071575010311881025229424874878633953561863193183814414635420744996206574247287774136159039555967942398813820323799075372044247469986814802100937784656219844558392910666897196028865166987094917565604980522638543567623222501705773069592192314469313031396388792708360027167409162118606129199847524948257318626521256919264404948441234850379059834078891037478522435885326218598718120825407905789039960127362780597481382713847458069340945107832964296326025130900671148780442032418960656799853434108953647599084571894086795261123452859849094734864367656478113341755217601193975145507774188406772637928777977099468914159560859654171024518221799174519098096079028393282955718925807823308226742110469672307077429051807069304501208975412725336296030824957902854501090877833243151422181599051712372756667165567780185310016586095561939711729262934580099474461267783046046530993883910702752100352522899549237365580505789338224965017386728553678442185942700406321773301297836561776715027700782248979989843012732149742310926783104378331618951616943110080255424412705841885558628112350093031399655972742647360950431934777573134205322454033367750969212546020608472606517260223986271827700920295487210609706386994265450875754937434893142372987797711813650802952287774597348528085078753975981287912154360161678540623071399430993735716609728405421921066333005173546520026039375564865344865135650476131693852241655505713972088725382861214679221188994661241834015522560241939043820040752977727022217461729340100728462136091671686765485631253608391962846445987547248194867850542024239302115941854423023764194015652127532001981943159916388985671026859202773603123799249035605142251165029507913530547849755343038648089094147758958401728545399424402044729279472353612834820964820794896976878189902381263999512737824861278148758884894344296518912213631613178858848380424822639294548455140562268303773805626922480569292196751014267911598362633360415908992506230751636494942320630429171875435542432829987251358248284195649089407246270242019984935149831870105386456747943019923344488561878755837654741871982373182219114092566832018811844675155899857047192542898383544144518654359725128447082926426191230660870350639157104473595873449483552241793917445448989357427973238563938562270689250009791495781060995618396425698723870662067217659199710324491733265834711713627620844225498496995866507747318138719976604613730005526234838508024832934498530736168847668939614233730683613087423240294687943517958816768816603373428161002448904564764910882474967650363284283098282060351564512721827864333839282598665667090823718650519194368292609865119922993929094986711450271148702260577615788500462520364470588039448365507314458108844997510087759290852563408928200964961302802414336825667449441993690330343312077422938872527661919556732112214946572151499729749355640263937189129066618152315923349479868921075068812036925671580995084806698470643801732662334747005108639966657481072704750862147255293921265843647633034986848086099553348900984607845399641145522844518531147671129566513995166359611218838922367171007132390164116123270549786462002756331141674272290054266716248664481519038699214884313235025442538832378660159148012583328134951248611343453928350974209247064342194182311242730184161186297266568968068573404090249538027307639148444275556846188542061039582430655208859408717277513771069837588138187126276554368190605682197495290218452075384517529321405375119000880573283916490126888247455185740273720782571857297770894085950358577015526919609735977538216084945302665509249882556019529121146817931638116792292591745263699365543667154579541258598417872754716697613058022325254843239603733869188244775711431403369214707218103445468675801741425363024158272711885547809417181373286049457083652950023031506425324565708845861227594644084948832234657094371458224538870074307931205116745237001997097108717990806131049005789133934453688493014227215910471986761741777754532602416322908758688536609159841265225105666808583525139587687609194872920800632156509839763801370532603353611851340801586523727817837463088189268092059042270428296459817720225750694097973129917608444987055692217301950249918596675544342336891785610748352674612524706202564613870244389889113824236717106336861405257886376033058320856629820768770767946269463874455398353275201029111650891773256356910174355531153098825066801755661886762088244098056530323781144179711246593009801301791362220462098134959216406022528573953354803333942685861646141133037060055382234387633593970296190950670349857936046266257269014849664187100040887513828213625054892026657782703461325551838750264743647468703387483337778052653925206238327597036524785893348008032167634495344044505285488803025772746601574930041943915747773467754986290313436000640089673442802751103471098173165335369974444095914498801049162484153112324960640084419947045132304716028328973076557069722221300337250302996082401806054072443332856006546015410113373720347880398571713647394797999254451289087676807749184781183751910688384971489167030618111821637794779407193004365111821349808008112494622208007635660030620442437592207548440897942037087878810360376150229602185589593616394761353210563785362096453541462946790048950068533389464755415209337189713990246262553544491194115589229798184394045176942121260179423405993295116121445565779072462155638391423611946340621205146686010698250862099837154481820968443722866669885184750622932364337406378908791286628874344342278572190037939435504912141501422523827217465412835413452973427835220550547474983854823937732246735590919325436563758176957984201926703280826153417980578955841526673648147570687959268502541799589952702198292825755219644630138557312037117291062729779950752992452455254918895178506014126617689757493048293399781901778737376905378228914236060079723544459110129560820986059401733233699282200541733588536872422976683423673965358261272028118520846839477325774271449813334805310328339498104700609123747560668925392853488822557471911371511779702395720253006003833895265286089362995607151996540516418392857352532158593611312807668523398682209240298223043867070029710896287703719690024920326568688638582294618836223672621740088028103101023063488012716884290434973212117194677333362620256012666792354972450417907766385817081275672357935016222447142650099865390204518264856083056806785695766148770776398987940787221285738621139433321138185869556055341797265618639316980884006516230034184888294199721154942298864621877867875429289914856079309155653825686808295844549330972861155757378703829368880815072217922610814170248535838175136176343986319312507432082403654215260423966992433891830733364981990365755647514321777676298498015048973628004585917262453853924812147210658449606179422565263462287401277604510141217439418940322812534517307049910293682953843133467984692711807059466900624077913497945428208404886960749849153314765314301298197983364233011651447605297269701880224800684404113088631378924534568092345467495627607792560988214373515863413413052091782801126731337724931614785752638796314090750600703980116537388784982865345850048792294529310818569681799359592368974264706590671660545673608956996313517613347972050915161979429658824181792462590708671215514010169090226630492933504557025167364292520419450868339807435272678301752914447092221138572149435332788954862968673563170385912491650309158239181188552679304810506200385350513420904986959791211961525973294388616012341649194046386723087124383021497135464001050765677669973851735276174153803144824941511826870172532402953585333693575672786702813563784134516889314704344757871526535246454597780140414004413769374310167771859243674764049515990510487282169468448098116407027449470964184829738101789157778559457837251642311506070083306032242595209052721204380010648544310133455712768752067836295264837465577996572766767021961575670574107329746102407677756158006168872248054925233479024732592638771343696250646782216342730158471505164446715787910564498617956656161814517197009302498730471037757504231088044338145257808681281895133830930817990733175256322443132316002414036445127115168237727057425674368181127560024804853770448724281608081260390640913865798601708302162806290163562575446090089180416350386287262915260404697531731724562796013042885605082267565219806009813728397568954904652704072916136564332183249004923948696301476303286636356309098174610034434549298115979430884237860593575988611269905594332919152954145811314027762239652555666988255266276063611702221676265292415277507407859335724967453678932026355716501106539298956964021246790416718366503470278717177045658424593488778263353334525110737980438156794742570581854020300212629075140182947104417126223511479995586397743239356908790026711058052495369897348771333656419804550098699006024668761056221683370746749095188146018366120780330006980841022420475453990735266352778013943381337307275148358196967464226949081611732096580115313390058718967735855097863306757118643265926979359561178155648804707214431113283804402471361929875299601157271923633619151407116352725572153429470147281306548301448781045125160415048003255702771592160545113751433322661446646092866507529602103147715262208564544046890468684038285408484598018122550239208490637776481328254528678163228590928416673240696707517536359292031027982690521861255339672188940967236076430202268499866737633829259982955152486948165907680627609117531249769357539602224147992982927457997776422817202049615233065750163938332236402328554219880481708434143956598958615185670965542618817544579496421090084867133976782008916529439046049059921545421270851332419927724217461554820296217785074688889574873741538909628554514356688021765165220574679733781951545888127083091945360266272233541002264036828799589684983291104266354299025879666702591971100604853225175209688452691971040204071869953887664760973252056527412227356220102867866464171991699529100463268058518516517708845041570918625307824094253871555969746852927820268745933212509730883017544158031595896058322186383570294754081509378567606175163163035211745854670685152887081759000539169267560915667466582067843538487262989644351667677800241199585319155643169060185192899558632141549884619877522840007528094513179386675478939305900318415212569041628080427802688847349730245200512238131241462079360673762973276950271935461794831320088636214315711462104643651415834407142805537618324802862484562418153710211581978082903346494758178713993678086653606252123154620354189533284534506347015157169580492808170401519096637911787526953217676815523578517114567645531788343811477640928509809807439698602739183153316588155891609370307701804129505314709107466878952349447310197388494817521675767791344421165233277964691342043645674554571358179320744640769755049210729431934628580410697330611516166563367511630442916104735791981591980316034189510681212803108594562364754380119475742839791383383751713269707721348355158774015522792633719505216643220833813821606945685230323050604387537072815866639600134637893826592731481942801134457987672441978149198235324304035839053457142562167667806100855002492851315266559909381444089170240288644165999349924590703398887291903214271607243492519958065927117954681712460230232357482986580194106539792382069303462854457810480148795545213043308705158232044379334460775250281629648477567840686247445057621645609567571926438510661245890424397953438739375301898759712401520822019373181759309743769352706702357747017069869478882883151172394058411238629805097849293192870926255669489369316358228034539845614918898173298017796082699063610178031376042653143786344918187041371149808431095392038331296345322339669902955415501820805666861217105838577779123107272410570177116395180761895774143023864979195859770786239822210793556437572605735730488646686427733603719148404367571128655886582496201248659733288222656061871497466644813625764806940666041608249545380798827555609866346548246516607957087921407898490679122013815113299689675944734730740446652753692608226659440547613984004457231174155599665588917956983179528196182935133791200913166550084869603034241784064973809577138331243851014607554898734060981177184260904861359236296881729529267121831179915820697783652114606601275943272801973954806974640890359272557090933637683622117901845641859785270071772629306229115303390800693032220877822034624273825211207140383237008360819866146974228260677687325124928284675142984094712372618109998372465585249617003934200164252429175605156700581504253369081710816570753247105916778644483148393541220387594119357997263128198205825435242203310842065665825078892662070147332918459561171832608817395633555620555357178125128777710832896253578048690295335225205987454027943350067937207786783005659324495758905971086331803936221316572569322669547914891881716396965297601943484399029755111952121939253364211358741846312474725187766762969226179414395190023132226357858593459134832764952631931560917836443768720158261883387057901795251694059363523009423105983833195825806503886445330685292378627022817684082966657212019501139135766090220391853557618885941261380924073406921775443402930798106514513058623962483391887557816119632619520861378814099029589485880466695097451544810901688456702634484178416605866287322262959162344304893307153788281502769518058124267209588982712175897981436943599959699064865027337330460979954034534367700188418990490493872454356123930606730294506734337999233861758668018306552077868297224345542719252864655759559204644069663780110640558110262173291168283405821879315743922763310504121223598572443390490603726174097147793245089134557336864775320656317189272016101225957297209925286580497378744534643619687191404636647328088130150732373405817641383160543740986896127914578463489384770440185541555759731217270606354754334977676708065224266149246846513519695742493073507112700137941029838034874997854786615030146668022636756832458972281127543151806310034993502202918899172872088620007971130078415858891172497903886173490496858346843012219959083129067177244358118944317490645334561537213240609147156070850132588284445155443677358612138018410852863796921413269790861716960126882404961673774174005420847948511757429040685033525176658524293068622589533126567398644342948833965405736334554192961246369137362828254442802116049114168059261546805791103277628135144230850052040484394538248107563388404002650353805923709298997648592416500932235231408919548204271706515483422509423176396682536488624245422801039324852706710733801199239180463163743812554035423335046900412285313905009799096635367577009861903051278460882158485897256804254500897047571068627878402602490106124354276499794761460670183383404780913426716989906033873878212209550313742411210269626506180508493136989807064626986595582861661450033143386916847733070635395482076130854324975089221350404781367977095918840779519534579650989439175648780334398966545833456415719400607062519866439583861729893102373766328025773186084127685586765269048604349970471900281014263187788715794633384530031477998538900662019763684326541727141595759814241325076057730830618337380914814877539407002978197305376455392028451282657998206689669298130126818751837212693642808170071038221007796134831287178481150726281897246809961805287236310839859382619950295679725694105127557112186376737883993917071001803153929469891456378579591501295282428125286032596233765749480986380899556790829920360620875256180570434109526651853370249949859403544500806444716375362183788040334124304146180127588170185760941119295286523557495559972272442591310117930786083979902376733952347885928772864988351041747339317636400709023358586982535707398261389239823163861721847388977557432713252051919172313607682738409882479681601174994004264291233967349289438496069769110186505875750189312061840870406339492924985479484690728439340546432668639461618008396015650487497183827654004249674301787168580469823606730485402939754640474465854877026744561574113395105263954113296943895619350950119630325036238644892747583328257393298254990637329493281771031515289552518181995792269958035692450077658314446828519754570027591374335086846843818095203039780121075151721112615028296102355544595167119518609408736093648194628618139315398690562541884038335563337115805372836248854585226194810799588524575820343914821743940205759293482313526931268836726546655130849930497179449196100225937707712554488583742948275559741909402144132483996478367418131025069596699232694106850764423294917927274990172965132481586088506249975493225408596127191134552049401593993433693023637620566781781033110168457100139147500996051653510205697144197053425649567811302470683193386208005919622315329967852251285946350488643780422064178645076981892726970656619723284414251696759314652750250937944252535722716688862591902189840065295025559156161563133112617170903206965231753565066037769171927735960550993272119575331575212333905729810040297971260532479092787273340891193956749930353585948764773556838681138517829449170083277086138740883150186010409816478687337708246372114842503130279466557970249157391150346827726096276861999229172988944198079177857094082431082737394281033732955171281087020033022154942722626331819489792151989098037646736239659345530913389491858521584680317258044352772179859427871848927689289059295361746759786923125308915980154041430958337335832454317931971080056164662292519816633535735496090559482684381073429348452710527171538583083522049905454618622697529432831697368642779005949033673216681110528239502454614384018280609243287203981414615874661852275486115161168260798575236259359604986463560150397188574555257194467572614959480307435968539346842667003349526145988553285640540899613015344380136928924890468874621015935817388626528707020401581349685590086066127370229029263309597379028058433906952276771768914591551567934948218443808325971674707115489655255347474760706888557518587026722934764470749914973174109582512809056816835758805126901135434958647645504930105756265674647327792195665432324146009563748080433453452967372115788636063246310155672991857290634201019576161122644800444155382246594701246176784617982918232281193017217251765413186275376674107780758074562764399003008678498919999398847166767965331764761593169488860805830964797754909163978914549960690578588670385029324654855411720743780744788766917238148802356212084025401398275320064112549902844549912073727417935333649543306231679327036107363815516200964433841102068277161056828205040376584134928172815585394199190444340722499524587366975560625131348708902777272840698412380347645697603961325408266053989831607491853212220858747224098913992810622478671234746573890032362297767205523308792215361239016548110822448264907562296388281482053948888260323435133490589837969536042208388271754111958621629594584111467187743199074144326742159629605971523259420971698255343806528781117668338648275531389174246270014096930305780060248406735641679639314377213290099939091953986439916424397264986703007849881058462878357527926360936706234028861758924689507793555783177557224121443771048460556036646024188213495305391448447497744735332227534395063167065064449711603130028422968587099969270414213588159436049791937511577625262385281983114961909532423724049270047432067466596192661598403111557728686519020621706477156381533135818867978363514002947999566159940193009613025573978141515208971182366297729411933269801772892287516942199256779706498182263492674777670223656735011483399370008367868836224386405664655086943335200483647671356957599989920118167981309210863402214680216105139351781147384714633080509667606553309913822178077169357182865777049131053775990718431279755698711619347569675088248088863889196974824019669817844168378609690714592821432414769047804576794046946352701774750940489717602080057806446309533866558251078136858596658217580237988095712566928862034205719048357140491410847489134642287730110551289358161659358757966328551445194102070037299240530030696080327570812861256816422421717586704712416487822817469632936059825307666058503345780241020753470653280335968097417114756362855647859491493127627894648997905219719181843245888544853915348071726498434837591379910469821219128889234708416916646917247477372829102031648848903122288321126511208481403639793488646610647270833328187745548778652127230626204298341316010308427885259485543597410101766871600297661834087933519659861211802022521700844877130827857397922599962141459323109118686582400338800393998531562642024257884173045595270497560453490674335822806828476094345486355979521366170065419117576055473677487438196386204315937788845440329947117655704895419044776776505536857665418877690804217555061421424855798976844192800273554099628884034502975739200938178210656515204674746666844745023587688688337002229358863918554289934913947355039509973605519960320770394632338371187448386091512798352068838595335940365442267025630927007990841287022879535903877712378708654161872997415418985179443579315770255961873178411383972069757805953302554070918272899419979556142219547024294763056880419964144865977964447541311317905992519787550349266949214153765015560655649908931445220072702543464668633160615624874168064641115226008715558721139545108607332248259339785647558408596418121242826720113105164742612023044099407491348253912904162592037857189560140425795635684099875747705699265835252138760601579059189041269778942166193708140260356205093558611656321364065848793961478145585845977310229593477931195890510221438433516339360827903106839458123976304302407600910936976480925843501769834421457306349633488015840902172324092643553046726745324503003536637755449879286990490368007482515902506326342157890734321463884177450955326003083215057648308926261674684285122004149696606610210869187030295647659082796254785956761335725280099856729677363322028081259346372377224255027582235265602778505663195361448607922323071577858539819737742107772064198727761498894633055406990991075567907282342537208620301838849693834496374980467167547666862586339094714931309742139577576164346888165752514933153550584562846923712075361844140428251580721460228126775078838573144542582122850937870312575088726958203577550377233452228611382738231034436169394804635814186911506388446043325540449410813743881509419194514241556737736556240841573543583423892186136921528635675731913603646636228601254983265064264748823385024250525376197186948901813898265080811039637746330145235752232555914503421993819090314091177972742034074328799467045682265832814799671506972582599405157073854485338022766552234966177662520405737723310516315353457194021575168047303073057765915674228868518991462589298967993304447374041120476669530977981130300348349750185808364025146328769853387547076684559659747415466115147828765785938710419567990232389847946444110730512589370556087553847701560404461010185339053836622901816382229330950026825264546642915159485635653406067950088946735234593687456537234318543653673841144745686100698020194299407880540761860204969591479191006032235548018870384266261930738196110096078707923456588858993214436917192589524641883021236718862021785394358835244334352839716085004735429774621950079620142211347661720838868659661874121484179620494078556396706305577393986749854607131092562731541075429664647109678487665727172810458573338270023955863892348828169501456033758051526205258912582573022444358699309236973590233789448380807622330793106727880745467264993763271058716315076053773457800646636757535871910569494282373898995210115453178569838267950661289312990434669447023790590329875753317736800834847971043793154681898343163969325249715715893973682274639264281523678152199234994983270657614100023755821233786176251552427585125315549855684855829016234273932970691605858894109694004977672958648717454798082205310505955520847348985098603850817716077500543510749053741011350856166641945488756277814575476444221816532683050467739843218115666964129273411712328668911538384333608922236933041068162695373025726698957482608598706975136737615081860679178578755806084104160213009797461522360032685877008213724474149344793744675828925354517505382605641513202351827329143638342676012678466061113523041928278808806062814081292114602602592593690662782349075424052815120943511292306111439021815513230048700469226753350106390940711200539019309473864039604070275568712274463356410871631325264661681164068507486785450255724605470425169848268111513666013670831122123068833226750301656854496246390403649817442583727598437401913966190132385657116180767479890005329310932276319850256310395683648723939102790636078222443768566304723156135968990643961328568868747064249926703372424958015814359211029212496058368536264015487067692921168242935662169997516765091412369291809745746671233613757923210418806624383246345959134329782424397861024608240204901252154116065944017484306710211315138789334779636042460981286485509917930478326367642147652984186418248825184498560459379909015452384132227197172784145763382484213581415451495060794891885063000870630970477701190449615453906668631271553962537370326976453277464366111076319846450861792308077091565582602419539199300365470613832167423268781662700505426507957530303521425492076450712384154410627320872212289107161541811301461410122865554378803954418200657370546806884825195533581718063705469595202967566742633924145802096512608252320649570599672844932104086239772693913425207811019030877541884257643846080582605036236087166488886570212039302016942570333525100492289405241664566147797897833733707415243829760943620071959361841761194432033315037679466995748080421860012755557331448584407565899601200082853361454551911632945460303710772289688973835560661019827715086530164154616746084213120801637192373905860002430635907976703129124224178831951775173041360425025097606041384650584586441704628768905284746882676744398270565731629592281529482961717181205477148201715229755118723140391726457082370211352821719239297704870845634378241388287495822264829888161637598832772921511902733170156226931479403130934786343515576777327122710044055331175261981942081653792472690984420556409299841745168175265015277324788148428202794362355805890663301239694374058174403984922486230627553661038928485188104971623142402933799571740708740470265286109518709210275488713286404445650383756573930759500559340880163524061453391746738274112732948998075609585130842756360882845024693920050429242550874770993686425057355369933655042450463190277493025726802685315758019266259766694425173528966036170907396593828482881760679209003540107943271589249408525596513257520874445898380899010940467932268217318169649226084114237273883373309750640059663578787547592121463381234725137452392000648733935096074067305300654109274692087109820921943738162045230807845249042519545762319402316689066239695516942998246776966296080972473321277546173389509472483981147931014532108596688832550553700921344795822866836445047399594033543756325561249722087860994701062757294791440103962006431297243775658951637971662673732461776582603651619515381734989141868873388972695695245031353819418300339869081465834684244075318233078119687924076824495881440861335910835831484918988639457547045868305741092734787844017221369361427717530510888099374156620284689217731292372735310899073878463615881897701186863744338949760862150529262550613693591503598130123821648398355462604567504113638197308262500223567342340616450797637071010212195312004284111434925175093399053174480602519647055722122325265646530727868794806915930806334452780750592987280523837998391802720782936329672849981849347319585015028689607586457650967740775137706793999131820894362927319633136489655443650886926252851792948320545972156394564159402648066967287928977424840138624787186048429311695938045733217065006867448824259980715576422235991585344261049624092959961886045771439257140139099156346603263132294417741115854013788342470433148166395629774127027096899583593841368875203629585769362766227904291698859076188787305421578377329989941752953921089442372337439462821774343850353263444239780854254576459941321665300214446930823245220962173425903233062833205536578666194176716977114918483393364951266289429388971867334999592358562185499324071990050195521047450686938415124409499599416779145330105777759615262709103701313483573267366636830905851994906367397384534991899037209540065202230089696195553481119546423554058466230733599460759823334781432069146452068621794879009200204194020404263398480338482274068576355116073482588861258311907692163784429787263585670615243370265300597869395334631751300433465509268487481198156962605355384360650420398909430676085774514544804786123769292919022323473116114302980006803470365707723177178801057201994698653662203785188435432511833378211426827497520928709613875295452043731500243125234868631759292689001605645393087786770439218147940597644261482908101409349910456119891423795665239420058612165973568462972521573078275535602386092675977951074416544625691636484755886374435519959739135735064712253955628911818910978649956861374285558892861189692866770937263529687404077839315049564791053672496367619298136991564353268009503634382691185736091054254184829709493204841408532774725006589606449778572784989561581506682846167284039648047743918071357930883968283764000890886703961206151078072243447411827415511296375893645317375153148844650884633395265953988341240336465572737812826548409906615964329129782111913699319669823980894779399510347512107402232613790625969570330924757156858421747569719884922143450220014779216526921840189489809230043886456547801802785370860686090444734768655511078049810867489169765449498985051264364079234128064254875750359073110365575415675798252342068519087089212960890149662400397777200953102955585806705111237671646594919059459970085359669072766053696899269023527038335394576707322591418779721856271979845151726371336588406840558055192330417666638460475218236437401474521619133181967375092298867544625192525295535038382495410307261738207576560072654447405025077936516700429604908556702360066094550921483185509872012197117328981925753332763879063796714035144738091972090758362296516402464078233157037609465352859029785577351390302850420255634206690920235729100553824518098744603395800710018664245443151471079613563443981054290570832074010021587494515730563855248196588459634009223741258324489299362882930555298847451656395453177933883183557639207594455804152697952365530274973143542284802836991154040145210046066711582428088280008656305179628990095587495908174246398936989627153862033377231563143703499034789049874183999973592484811739911837275849066121848721750284989444888718181919950019747903226720584684045849146030074037363349249588829294060727549274506794774910582674721829420548955295593489067459528156910451776255783957681060136497219153497299890584201136048128110897513049843527777819545514704350529842106717217442738395963077236751298093719424363817069364501909242543503859280343864113506912817366465342437259606436268989418659709356231844220304972306931916390552877248403667183921551562356021319995609651866869946363569254390652708673455681628042576019509100916515583306653772903885569083129765790250467243297058704160369403431680853187174030384292463340483427856119635870373525463610527060420176213002744401856635560612450365349859005173533100348868892890899404673456954755732935173213970882007298636389252238899353064076261869543385857404547514736740876232227914457352414265694032262627079485857946849503067245379896788374582882311551462491896664690015546781784901681132979161713541710504541519918583731828561668803099021714104964657703803593217591443946763975109421417953276745227575361517843997411382642441577040690273138176219158091864519736141271962013522663570003682454494274806334043136610902906080504034206328115510042158867544702339346074572006086641926906636041356969183852540692660992983537747125261109559720674108581747232193636010146420749840505604762386550445596266679650262577538573667498218024468251556893744618038506341823971975942445009231149268940238303443035447412137431540920188132834164857339578413371934566934768732740123421850565227838187941687542061972061276464077151271024144197977186414453964062172441156042935520502368887345624845738154716916411936830074996499128561591500989838404654280475631039459098207919603284772933152384322221446643931798637963176267775868456046007101625304463830454267540701279612167339748896746307809356457014442857034496170839077526840874473557198006028319809146443258706843120241787196250529631042763777377909330256249442566856929461586948295209966252841245057231155626445182624677899367306266185289178450872982997075696667372201179360928481867175208959450355538638561582084792723227385609769068100713513492792112290399054508845559547671458560392717394486069785932350387330212511688022633964034268537581484715133065016027000229029999490635097985770687151024944562698035107931926297072307145188550255332058329803121757770689449477641078249469511846144488844012781679495320446427662247096967187842910542655077255475486285469893206827099761311709327168351732459400897491939347618907092857645848122048302444884500351783620495185319120082526488511208154374888272054333033799817286756425406538754927575155805253611220156552872304324704284838807295601255506454785746634606242391547719075507370288989433113247755634406774792739786671980418587354835631678505659158594381384627281720535524390188184436226923443214816692257062392210778919214024214716363043408012738800832527478293581305932700419761100400540982384738740500338972116418540880389459590160713662545180040983702667517393818124932232590441671024331026619860188491322281148219133673340793771878099681463873934977810801633477286130684504467594527684238059180173929092518765364781712491305206969583553109760579712522744995762576728354502284690622282348338100797000496114730123003656532308223226184294986164133024351843710637798616607562958980212059704567273372803335584375958683946598081839221170452846437226611207064930069025709324183911810479902697629029390123391271789262299570509255824273864933709402833479525018141890781814918545872007047754873156080081069516293007609755677612369098620349090669296343161050488297785673275451582723692821855022359212140347414069514946980661748869401830091382491633668989962676004778738989453378021524058952977094765541377639121732783052361243943877503041156135483704566038321169195912268481192373757640624020017250063819114862240442965007954670089212024633626334934431374224498176891675142692359873176930324434301389750220021948783238084197034861225992581496634938224770331031369307855850738406584938222342475386410318883608744089913365027408465928162449453751928427420866096162444107468442625445867543058689179594498198889200152298597368272392423090138604377573158546933795697097510917070349697087781148338378894039818802305307150022049196741047592466796876118375918976719532736311840018466492359166636956591084844803745128171975042830755163188125434966906544346316150165508899783231263143752447021058806269129245371695266955624691312578663951684901557572538163114971391779949847708235626450840064525399538402204094595586826647261204094766619050165557931233582163946563985360272679510407051283789758877311185694171112494594005881105748001183364048080322181736133202018105877273598258408440974096318332208067427241279848137246821278470596439651791506338873386716204237139052227255854820605995626613425470915088196503523144529333590204370243932281608859108368534417249838308046624386935717941261274937374595147650951998056343060951303288070665938252574563074492548697305389994623835088199059622753166130348971081196386203566810677917558944818923563211042254506074144254913379554977891052026128461293045657723251542583475589722885299518099077838342280563432206041581898776685423472303331599916693647156054459093204148393733271268773737177561340403451571722745074126704196147877569594448979201840090605530309137578787005617185321660925748498118903243716180101487223032779179564355548927817745342924800700813918612014911105763754133607056354698306135738520165157184114463701860232866340367615908341088172105728775871296477133533890609733868155580834277048937476022077073844765831077224109977825082719910893743499393772980354244396032805895150826201017169198517272706451897943887804691679342555332456119117389223668896858994467162185700801721637833090297228867828359421644500609907128334050077963646016962239411830379640454798851341282191943413438192185782279460318976721069512424485505424186505399267347686789999606897405954360633945099301330611660094177222471460154963922588159471168297608105428739965608326474555613777472091569942923090376835779484801498857921955329101327011508935473582150313660821243733840035153086443165521040496918510945382553608524574484774891474656906741786336320405247254524727404328657773876332270261706597757210952451270301535912187383294547108144712328470766017258992817836961338723580701307507868186830804176820316048124733003777564739973142549311747681366263831888163369420358305452661521532404564185889356863702549010820990271515783060270940240689752690566042963962604164216571032937372471855677508416806399342221019906791357014217617569392492668561913627184852489558200862301343430047917636283261458832420164580789962853897247150535082167071545627284751169085109967400627301009194726160934906625369833661121651889937385902750643657594105460797654637197742587807883894415143214049778839632799511106149879588493285727828231426854501836417569844508333564643857038896296189373552982471302223295838118994547856547322265761409311306720545316669186440073629329892969187965602963586259057493481325094897798073501409603367858202029060959047616573955262767839979563656827181573871305644602612377165936112783151764804332225391588870415888889645637129482785312819246397473776976339992446992863665452188286666175658533236699838188422341151725951143579751124019809848132317428403439585204556768500821383149958464629106772135161307064782217241731332655306980587561491769779637293562747286887440710852809848443744529585021426121117154211407655456930024336334072128337187447583744186136380923502182470548390691460903703307583548447341783689272781087787179205397143930276146704486537871606901934220903367996098388316028136984604068334760817947581161479839410141333821682844322819936731489038257749413641424838619060147323119851200232505037695814195259009834987689938036229765685275227609117836393447264233544057865615866108333381046287227802111427640035686730385964128466902575632948302485682804284744224618319360821885868505884418090276787876927956877706585325689110599864290580657607236012081756728857171010072872295218231342051935775683899821580339726813952126671491195246917507017403073051680462552943218511067950497209513308247452483242429273367435687710250889596245375430214797555714602945460283733336791939242979581393525291472455057190902251750077229183890558410023522103225432560761871988081261070786493879186530500537293056705999882825044063150523170648820152762572781195926705149085588739971723123036636261107265662791887739364334732577316565108497084526399834573387319412263188662377918063096187995099791703857255733611625925178888926094883717215823280879936095365604809812905047801319004695184578746371128446602162091413109347696230662582195067991045918631381634806442621976611916110774437707263325523988860518432071090107294143557258573531545444799625372906636396094858362541325466647004411059155513579820961413972376965360918559769725707425532567835177214961059030988937520397466742214390948072358382924509958390376910262047133336907091621439171467866927786161093619237879097377750431606199651856762614840531648226727869413526986479042340891116256971195520971544973644428340631854292378574918966764344464335664328824638274507947839417250224832012683299538167595049138994898385058403852254640454590193707305369267759755269797933457051695326883316158783944608940758333832488980219766326356451312961674788877495402586136700627578188526567740726293752429100651576945272887720266717706824870975613733070781080017331441410511476035408141075133312894209399963953829042752446161476724129639497876966439395346381959825153203654985190447598904059867321147452895220088214200526243968227430372792949455085594056811161843731155086436721459466331289843724268452686855020034524058462948267554399133401362415296440799220718428186415847320855824863425082167120000501451825001263070538273567998205697788191527841988138816301284469282249982675801503439127357051185322260111972629418621479975902581815798160303466895782320076196773393522251112096639416710419448776599502268702965933779625363274245148680307041473804049233494292750153207975617724272097775207151844784964711031972173721015003676035649214499569043158315993685722973449287216944161011041389248522905275441615579778807591969111770925125005888561251954997566929720048998250055829791330957873765722887740869604932137963930120141621736051621984897736761886658581185824565923934869311220472138981790783912720657743819728482720289888343805986877881998778137640188644846969308194192942557216929065721864219333130564042241464918183008046344511972227529505223851880678326356093828457255158699498169340182703562189974484427824919818600366120212477487719759421839925558853106358649760530925380574420372244243563408460412647056200537700946052657433759578200612462995333065119831164825123774840463096990440654157240899080544568187909487909852126353799684838757670930330531644984178127629146340189534352310991566386474375121182548668547464133182018462107623868284085315230144591569202749366672349906418051263136246898872352801518371306639914734146956974857398090808835288455252523230708540383866426310993249065876503573160782503895518890629604361614497047221854658335724843736472968758680647843018762179061196157610132617953412401548733207371771033074380481881571017416019028153970303552897602958160943509021833033269505054644418676240588611955385128638617000567325774738051381489198452723282950507692405335308770387704926011182486327153468197136852664859099521197521574142829779200231041598557669585037500898754715275323079671681517511140320405631780528291861025458880827926323278299410756330270698598303073763455539742527488117064712530531588161893708561544243500335723185600931492709994792332301431340495464022219743469841237497491040010972059228877943369988534759376783022254707675756859897152878408402617418022762365913243092943074632590978168113166807718120661754334625626520879410496117583758168441271460637072581910203617379409300717452118855450838460602298444952371416974366372904775418201906650556734209538325224582629482306387113206560151066074164801272393417245270100268904328466118900270734621742625281233592614371370635521177667241529064809321740943955954750234796638347541407268664999695818721000910767797481190876593535508257139130520124828037321276774359247693229826705478938543731711024673736711391041469737190558605273845484032419668349057278159763211117876137966523210528417900688690281636052827572210333846188306781786692688150537244267008105384684213638135160572893870765947341335536267144035998729908840228407672496545086676068312668052741230473592602821828637490340701197406813162208162775105373350638578939383380708205553150749019703635778103774298541648192357238382131687197080011068204817120713780892559355773084355764085676779332781671109301416197631844744225232480971959187814859303187079021603531579326336352645453240938056844901692195640131715343653073879435336447067572145819983796921865286776369796002436128567638052178292310483704793148488729015667208074813883287962969327215399965580283773590321918066533561345475946970409005577705066738305490956099232586271016872877194554671772810591370115108399579699770868432549218853176943910272781392256866120612304024521402159254297174321220711294296403214809718204584455353922561459571243890335817248839308067542302591324343198327582990519159709288546631276811142154625335732759431355765819930145127327855708744167267297447989160844153063217817209545422753132440631837945655464114041062623716738738675730325523360316078094120711246732793915188013829161159230681715860034535447739690641038467803737255220863753936232193753997211212020657303737238907792553072480934232454543869045661095582904670976306336066810854890425996735889330121326618916257130413817296490982221939155991998365441203166222100511500948296971653114943202383716349529726688602487282093885962292208010550068864628372426802493986889365455382830404596209072461025739579792190365735964672685065900797978585332248172601244481630011681905377012458594989184133758545032464905204130330631961329067677834553847394010816048909700103469616551849820853785118327190920466354098019629877565909579256015301262681539504523068657768678510653782246081406805973200824557553242500419639551261039879596366153226929019796329160475514121509864042001587662931768902432850070751490914686669922090220133942991438267825118193085077987634723809992101418319211809466406907189676852229735662648206181321192175316675750004540746856552475638177514328400909096666549253494949342283281593731190626007750132590696321634257771155843249170715163000478817059285417580802031069268963305112630387025901752984928031273050125589450389130761153856219828872919121796372763587004009733579481488790451298797034456702532878041737871369084317807971699914318290860549733795818986923260334674704780785430929570208308675863365225778661550776285699418838751413553556677309447430300296066581044817414196003021347821280777816603550963474508797139116503556359209292586778601105170269202726116611225078953197346924472455859557706702492071169072221785824478913896623121611021949414606685116255976916693363698399384014851821774493741992876188397755195810197553475380714798517779593722676554615053445123343073599920895470414203529118650046330901687054956025836209285427507840183113942575743152246561281724232469613554662364168675125956090166323193376551193105002014752070800970549648148086116926306396189863445323268722500270823968288164022734465713336845796190752179426486366869907395077278255826750839745996517495043152315730600454466759665041405516333909957065946359962519747014272666852976356299053656457125328459104019667990600177290438019305275540448017213461946343594091545741610719827165955826271267501439968760521960453024446311909028708582522070887746960100152989647208015139013185854603248579737741101281763074821403162603531564765199587137304399465293110116459998183146462506132983981546670289438828078224771345914337125086379799678160024763994063265234271147056009005955374608329714745453168740023876723044273242682808832334683306788543629686047217369639683027227544754962449011533321406866608491372379568383826679471989730194153310542578075119916149756538865511558649545398178028127260049777125159785677743102126414326230939779158678382182606197327276136080435067866281383697149335430721339621321860263559715977125742172029877116264654485085957561665893501504182500477554040855407403262499677850379560443466957591590992811476757890098944299881539565249628891462059605890319069444366394351379450298404133243098423875582295561488437143628033335508422308569629363584924472817381093270219926441719594741187132999460004908780629513447514498737811957511820002209017851320971815464046339266449654407395898622662538329216341576794464939084279615976397623319077641252435927556608645831307297707106822504987366043722366374009896705938563457001164524417743439774413002421737676069067566696455482191847170735662481414284621176351627020258034878833509584571671507474008002921606345809210307141061954180920060771955640787737004385766392655597767842307350311107617379752632546879549019407094988152966049370593730641971403454917675864420532943059814861543895264344992354444333308290989142475109669571610408165528885682549561110847485378492207951282531495019122751025927849143056214454249641884747553178748076964873391563542512687273926198815500978134882016514148801915143324294678973425190950305260278381382606597057856998372095248353844609113760621610332418622977809514274387382350247784008478468959041990904226782546925399961302942443035917598986113852843526441311854603054173631880128207564217539166579395608742416556167004322945359641736840397852761673726129448178475993295722112335098280810220570438057121014907203956740304294363787825115300235966500441752877154271336601095638424650562163819543680046689428176278334447093797148734083428470069759480647535616713262554456925260234837743069586719071128486500825973380806630487620486934327061771677018161439989952519857237658377093826111700666628641500635447463197465938871897348961943772594441592165696123023230670351642183319741506323483475839290831529941285243745500287403772392593780333436494006189954692677938643912480519434944765399268317196378206549135355505731888995776174485614670593018311723246738084836991654049177520029615538686454402948022764117527165454175452600553558574048155034087364065561886963787954909430819488531098976401325194370746464594414297988811643370148610153978347163137370802604611208324740784863498793998462427439134772917239231114305980384376489125930250756615862314128466399969797976796672878712654738371991296950529124956520949843953198905190519713926986449254371493452085042847087236324209088130977307189132861571695965597745041783362801114967449922281057534723715876068693825227499306821848667810714774952682311016830939438249902781306042150863628404239778089417815004934745860130120833095745498690443107497180257464873267009643413764039300342983821539813783834895152494984605384291390152406297213179275478263852935771952518244763036536756024765144486579227645062639567880003864351852152741307894931029162100373597592353806587813092090399118594815090952612913234156972496695025662152938911888553600094495354331652103804677793741335409888110828842996335884796296834990873477491990354185988625375185026241243842500365418103820179342392728621713319637289949549469457904630787590051718568248817591459133152030932661578560925838908024380388395562094244841459714481714806061297415842623605977823447466537026189692144323053757441638198430128552316294042445466051693067856263374511518431337106837517279828399232769341531917849719430785443682589461443092979520867914711623320186393795131908442708879904984449116432010297869816712120537799259518739138951931602829550747550739896369734076110804202540297638878891190819042813878581270118909366602926494249517410292003652608587508509023518771944430491964845121922547758546685216794693846552748373112364815716170663640716408244382444787367600509671597794100917678874674374329442784701823494136939706108548176619842357147415985742652218771201783935915353296711486624532291299154243633182566589679506633802417152884525369351568935539728696412257831958693264479704274066662431737001864168252605868217134653810106543169839700562611004099034729303250096585123822087409874931214553477749102373900142940162224018230042708413252232165118916940360004742855938511687299365046251930958036115627419358018353931963585170428282726128900910101653205197889765770287474826748824963829341878216651348249108448041207554563964749177408865472030406068770554514012018526061321402868148193112158797488866529161876025018663463764009613410891512291246736672472855239185893090239138985947827463601445334293228895040607259518027958700795869301599691660187038164303525818910865551899795399838654896883321957551656893667440562104433078876492805664371280398798948174286628899507324260166609683876779989640717553027156590907050518775453963013492857708470889167709619545150915895881459888492594200236679805742181814495634196738841675244545513757903390150386588001377205646580157207962970913086709314115374247053352993240067394633253125525094436384339058530824479729608447632818793877132911988137476762623546207674260056786901732823464501107514259242728964848891476963945268268474965014127812817292038057648747526887346495483910439910430510758558452407536598987929028994504165214135798476387330947388931774521652907726721983290768354835537510248837978315185290464663017149883085073337443585904698664057539491983832913282357808905236036867434452501893976236441976560113771838684346128638222506717389441444146120657785994764328649564948170169957309907390072564145439922993827387027709655513841433543358802188002067125809792762556728538022486878432337589450342286261111843125599435708711394784504960814818368856043289238146149105551711545328811465223447800045433964296505707209944446975086150821551842706077467147244400100887009012894785471887776448441078933118746152374199180803666025742557640498687527306494640835000250899467422908365528500322202162613937859908842067605493481794806389095051833654750079966666517271815840971443083411646663982448848627449271207231773462698431612569438095407644535263012034196571174049968953619515885475551983384545670819177861941351862062581247272733199761193119688508782042285097496282734763109704859383032891529692732882427362639180422631411806350766584093968150777887846868350812759056984872621029826609356181466708664235443737140386864540869118155814718423120040367877386469782622253081873436704611153280846898747866572259351198106440228625105480105257076305138458606740567000156227445403249765858148045857445501320482775792182788732207111220226124043646723871262169850225191829611940590392282038035475754772243767012284830860036329467780924996603707827475864590054944276394949145288747425198186743127728527266831120844861945822762317572336332785308768028333005971362565051901437143809074062037277083708182530053949456227185861967762516127948687117790854464102845077623493491979316741923826417914033819196670658742291571724724151899776415077561758019801769331987210850007961120391784751947335462323850820798539824157707471110328949751486329212011348683077272314361882404157009622665745875173434594642740816204590226574926896532548349541511275591200958264246258594067664165699146382399862097047136105781474829916779279238992877436897675226910982490558497992098862485022293497183543761403417258361120593972715850252713214010476372726890776845872435963594108931395674100090592427859111963283312158056753970733449588383451105812485490842928773519945639294875368809943648184954513628921659041552795824163491345034122261431836358986716501757563076660453236904786992671274358782341269275771590964341691596893210362638951707660576285305161613913494755371385054549870861957242459038967777040194966300887684127884448560792551329517957607917717335241192273732112994171806077709660219433536889258363505601732748649275563505391554828845217466114659374444589264004864161789791165352953184180007317190487212704041946415976913874231234944678070916337186693972709923032970956892399623474885007080244286436565075908039567414318598465169083354211824559020138106535948660471349617655115710362118906668352439115050355194585444411215219058144603207262941277191587006294280731714081721864929303952176230823087865192410026605604627607019377455728377254367375442719927678057299659945260484654005888930192351212142136477019945659994107952482674923746626534198343638895265773864962701921345836906209912280034862121275668652979227667025271343349843651029515466325757187139164723406236317771050936298632315419986971010836967866648489576911781479999103273393039410125744745151537382299150277299257245397650247446433268707272508623014230080465634653872423740634695595591672243901127497561628375571003474139063190081273390241449242517092051075268413622774460487767624391202514546748071218177891143334849623977017998779605670506193944027119397937417155643632689047446573941011921005264905534230758202368531467693327275621213491560995333714387595788552726733263100930859361822948604510676583985755878930396031709669364734464904596626308259964139763862603542223921757683169103094913371038195048795539650972257848991889082279325277560549502051861856568690239142935484914408795060069183698803686067164716376209355320719693393854213078903968365885242009494128259095888987228765787692491534001739068059961466427663132532606235284784579429337183112787254918337418114864897941213627400922038698646276082030110773573682827312834580215399319743958987712649476133538329411472844585491946897043590535129366122501005068300856055461856637855774044143115513123247999938113931811740076158456016151021978670953078801350898745913785974573740467448493775266321551157905545390798827584901570427299792555387507606286379526966204014347378410823365258401668204074950490656249563779142683287351176082719096596518224940700284070926560412888864929984379678988402777307297467511109551790994395269679195723409665581038991027692471356042505579516312102243696561474008939727462569697212709730149576269497378950408709307938064985676277954301564850102353437526863072388658924912843028561061578364723539007722525929655799497053010261264235102490934392373306310081230617920345317495154697416536150261166445518181894765016837382217631512212388180744999348638883341602428854868031843677207291015903953420548907376227671167264573271970515396005885411269362644511517056311972836917911116133759407056215114897031431238643358242247755524525601078277200897362826041777062529179177536306376547860715114143853490909982859996467145869101953293137572183399439610707519943922454177306728823178409002193548707565640628795319716129373830786623233281342433907246855050713136560445503649724848304271210568367070613962586924113782889199816283685014809858500455519407160326528554685687761008534844099559145945596289248213758585944416358744621110438521605896856989508121032031727134095693581661943573664055962254625196625967277933410463303351770015721452486060558454063190707997806161077063351141973005252585004089295741999280592961834739398390952359223332046467742828595233047493700914498960444890533596407891079213616446109688370934749582382784654581872818398638851641673812851178705473169869152343257225133352590356027231862005461857611308717827174645127979392741336049785279418417647950760221135883878901072475261207558788249279610194593062403051215265199378424770067612931057807905444643667305568323539271873485103996929578913827870404764386007823422122936962788409352189676406217042208048644169179857516642150252106881094822494663465406915104052555294730413163349182573061927635453954210781604871979909221839410149163539763361177157131224521304071508761808830688442373388611495028992844304615016899764766755564689677985278971063354559486382783722095233990244362996969712656696708081797426333648380057609607861352626875192612092185795157246792172494064173097122340231614086825630177406344074021557165534008247230614978687245766497400050482582159612638801904866028345462301232504222263162063826325141943146900586037538571669177908193926990966999290242522762807180471289960453949558075297126439890811621971249099011897079192501799536437155920118312231929634802490900514516602221537070331237161020789841007558986927000861424234722062078108305934839568974905296279198328864791274969292812715305722925251675460907953747584982333626223975485173351695927298867665605457371604478216895547879162298786336364797669234043555489175564780034263081978144039990755447020303743728282228523844066154189403123225542630334085366115246722097105091203470965339409066263957623526330612040593644311119505285437452340204928829202050097261349147171548400927733290290745827210724182254162604814959107522010846908564725649607838346466297004606177171284338699542050713921178320802638359631455928813519904903957626869153444548829615324599651420831054433092809725910083757524915064454105082429061730395578077876377920429565645841255802492572381187737006866419516028428351043723158746195132890605508476958656189189569729353741210254899944924866716829464487546202645927700839110695405004034635886612648818229990357693875368111920534773646808589356443374620865239133224472403515804698312575028127619003003854297308284226316790364928314752655320414488419579606119446707618662153767475692817743844100422293045170557637255098351431461454652235809342925092261446085638471041809099365827626344592475485234587424451992207637864141988148278259897909803484271749258542962926376392760392149742649914861506683800864830262210095611830427400752458455239098174555724214047908850739974413657766149628113971649114536871416590238409437418164998868445368689125968720656083921928573296050909386011949374061579618244077535569694356204646415422990992140292315969481693414651146395484081068146971938690061822476088288044371783171730210050091959238398833083226629617685984368905039600107683799133738522330924973813184839034835933133377163641386839572021930835184344300649212717244863018742106613561035346836488356602085433722743854173276151443051780824149930842863202343886076696635149581401319384468281594231178389871964286908288781656945404841700096335316373547405517157440506655525615869752710827593520047174347042060734838438591182898848700434135130039207972680513163504547646169175737458971075490532953498678223254544858056063520805008590411000419078149390538044540269372272205447596217103298996986620291831315663435579552619531471880111374871639063632957716627342314609489710274973282241659486792344421978880314530318619288422173980861662038072517116307332864556685298269891206034669341410456729486678332599090582879297701627853611030365022978548673801522756907585357024763338130890768202160189493204825146989365564436085679245459220149996468943148655689286573834721004138733325608832600900217061054010109223524773856425488353041235280299152408613373377286365948612791346036028094615179082851653532233302923182091789872023153545832514772339581623024758959914546888188413847243690471468641556938302765026915492712614542259841842962992465958174466632988797443120305723037907891025541536563627052852442420937112498956986908331683673414054394569529492110265967012399980198339744151733597444729386141584596957249357161062170245514725877294733152908659942979701354623204552422931766812816513627012310798688387922336930052465186302169158819579383547331071253945608624522760742143846613777240293053118110935190914283174317420494647853951864567879699007855832652447157977786277196018700496040079949166042434807839214858253646591820954523530239503721733145739903234472213548193068452436873289815848846067163368345958392746533566184863881245803328592469144198963214854615158540533978161965006891396814094467651737934813702290836732566998953836844805811938490115946928974038608769714583527744044521953637422128448720238137663315830422060366034086068562013938250373753177302762273448278586858816779817372529554423499204275949065723115689644338013998064854406943330899980690295587825270768124420416914409087857217543821475250385549687762212617107041544964216404023589467475052445151770327040971690040372560279796193114633368371599370547412752556972518907389325364111095896133302275037995776324198426163664856554722039559076179374492048386359454204648565698033355580271483722944588490023526740617755146040517433129556136066748827101345263547670409835339954127569972725852608867783569135794971203321586356195007909621708515115599824542549456771856574705489711748041036085358765205949863378246430513656049772364713164521570472509531088681921389962852970234539757026144270754945620811263176158191599986776691220688856695023917242139871849948681197539863453554573555804326180432071150694482010762964275062833095617752259247356970744718346874953831959455691913008592730235622555091847241817852341005288439815204515623152311267129742040535190849426294901856893306335482892113110747783459852580696017890435234239279512703986815411523231843404983279102373184907559314363917655552302628458813225326484819945562971567136861542212271580266749473013980224226521068854321467190156084917341611073313034242194599571488885330963546820273238006735452424017631947148364305421452804421219695010554797769840503083073488067570026638361054258515061824637930422661106700668542088359541894515840884835246628742065480078046134849350396425658849721248509017859465209944756767582732865728838361480085218462026202020417533147584494428270013855339922487343658583520127674232106761766029507542835636536941341219061076157228698399829291311764917153124705134598066695489242057322380983627156331240662448639170179646519294315577079231913048426007968887927842109198478653352905949006691475158570406536008811129980727955371228698120921412600857208633895316567998373751929803488361165141025597120677562239505301927788966436729105128343202534444858655892356599662309850294934226233036496699983694468867116259426305429546071038846598995795516098842758033307305765788921945652714785508793248166238945978850984185732787107307183473664897867266730820327241153449563623467904214261606569592279967766587722258900879161721525446643344969425661232021113718383853954063015187761832508822440898227865758824871165777281595269163820746485267173884147265538329725864692926852802346533862237781069896525275203826206347890839920319463001713141349232496940096716389706223036002263959587887195768317626100944695368020934927686820343738170984725782843135489193800591654530816779098486865348891521471541748180766003873969649304394191701362504958460014899135598507818792897978323513937245720491474350250518424438981437020227820812942590273186811635283381560378761155698254626719597948340742781448079079381067106991733911680799186639671493791716776214411875086894407385180213329830183586923972270208254610283686192456154617296772976482164131169516944644668524409120637026462610303890282156256714130420109867703912335310569156099476903332494827227552068544502771116835678309746259221042986685217732836582130286559707879014418151416996999896959274930401430600251329044801821565803400207357125785388411482988149267418438040176974122202549889690063961176330575762766908060762012481783640222944723928692172111498079057262901729447710494833999858548488231387292976552194607481662794845506512594923050459041395151393977440824084259629448800867880871229921985592584993076122627111899180776106097331314517922339001948428394757957676953244122064626713228781171583827117988248588742881179073452295346938284090480686918588839769896724116552252334972764442050089134216727545420292810605152027742081285631676585251924163537083044524265645666835608682667516342765479048568206550505656187664456547998623151813943414318036110332027503547225815577670283376955081769858540679187413773508058132960659195885307049270611058406993069536631581396970448048897372415353294054406039488297822687887131821009105100209368531997243064994717925402817895257610771759344880991369309176337201938061286722256372820474049494124407602262615209077909758608630412151214538885488326729123214492099943422651106080391276977875825107616085903327438057453824911278838229811471436535195993956928689111078264961610133122917810284710120481251065602157519747865197347876759067542788871404052257592227324474858091785009518583330589071091060672786816314545780387691848020616675663931586155413329645310565502500358334652180026303277101245022860284713733521531343742313395791372894689660580438428501761005104059812116712697172265370087583823184557992407726258886008400639357549167799741704891894443061832573802425992870550855503539968986155467674165879281521491637131286483793087856303689637493189837735243325358749113700529145073576491060261298327069148658014751037828581228201683378149429236211339893839475716035281493586637151260171720845411540913361978449389207553951339606165177222268006737385842994490888454203002118054048718405178805906422308352475226816004173536300010755625705131974628262486779881750924423469858954839380292079308232498829496357871725009446447306044392547621064738221529545014207089104062117149436477343918897016986517269346832094063549746620361539010470996658182435651542784098342105347544588798480254041477842580754650814763394972712989081904779378235578133453532254170266509664914209650642644543449085759788088160478575001902245092476168582049583992875949717282829415375379577563297631709552893038891719048719310450949701718527399637837750384150867012560556632963699484572521855144580649748723072700751861360938620873190061327471433444228213039378220848578161303831384517975280801444007218380115066491959355955386717802335081038383719392580891845389739296343209123747671906542598847263587563479001411958772948356569328612506337831276658096154315011111722619085610071511476849234904783294555474451606578474467570599970367287702274431164326553949037589504524132936119788671764285443229450036824646742515776672202755179564956408099181228435263789081579675374554629879318611123444390689641290618882910698481504431547575261612185093281090053314535517977656055586126695726689675113551406338593374405176804583179450796099010501198893243777731071081260276321399429011338323950318963260783043214869556407989324108978598348430659271420164508408281529409789529453584379011266471531102583073358322305512368551040495092848143425562214627342577904173318720396454398704782714236984132389041332187282122334792692478814600245532383862302977361796490571886484865873268537946169151002552229000600715455913246614914473455794906983271741250028143280091157732872650722067412630202683963764228417024441048749448905899669688639460634603220960128516011044554907186645314892660928381459822914387154528041689703025119771563644794297349342749054457991029178163694649232902193717727271811619818973317493335983188104630811634881044845008390219984278517207095265686772356076612543459639951837195749459919230774846677295339844205989772082361195091740796008520568272462153773786955092096076767623874534894319290668896319561088459790821178262834093381956285023512262787900160937534060375925645146173389208622772018833064213602218339529777084970853908034201525715823823282541465835305598063270184588672936264742474314396800563810268999611836854476514613475433402637426643241891180623530795124828989691494273167564247425324477821792604486702247162956663496066798450873093455523017829561651488285970273114135204599895234546242582207415643006764412844295388468538529704039293596491360952090607409268853755646679188800092561230093075933296633188581419372970315359891519576658631100814194557574710167237968151534360092121490678325769928284416552540278011584767646266851204336505890977764195940069979901062575527806488101314228796829709605066219642989848954559213285826223700137860823537144814052454362303217394435285314752419084610847378996575027277549099866763073605188698786638512537687025618486750803087001264263405348768378092145565056962016230162838341459877622769069343186931445438772784208982602530761666267164601728726663230272202536524152388015085512484116346769775396787783588713919406526919429390489742507279862274323768108303669614110996458096509545886944711720163716219742753140245684104188220243038643156564882090599363518783895411652257835246923010426022786535993968960071171691639766427318634073765714317950843645121618115561157852891545015926759771774271471287077846429406806021521634716515164606123460927056794406297605792796064339803177347917331913275555364753197124808840906363798767144565828090144700270291965681780931906757792419447756168109085771657653356033895077338495994583587225073348332532088049167059814239644252600047199073011178966980798819820756212190578724157313735259584697172706449943303644280490396984552257998480749234404822208810220286378592796540276167577169999681765447247442522191383448143426527801851945212064208699588224785085500393756961639077805362022660265248047401122796773576499812508134174155135942462104026965281869114948711287331853571666820600034572743362093972254059035244052011059021616962995100640494097677820465991865469518908916830540808213135183378215630704340272026867825375392273547517270968443146202533887593615420595095985647409397479941751587293592661393041632996492699600899301526850288072017213063712399500601943692023829481667173620211438719563289648607227252173815583708575194267179614314049031588750257581440761530641684657782004712567879741763566927881555809658673727242428998246909401350225563302889339144120809793552440817300993756901619810167164426623946442874924318763950467990756207978136817058524874316996180943942050103538813885792939977089007021302925204181223350988837797471512277589375635680744061525827951797795263719801205163714925040588816095386021632722042598049449720655536711185694892615602050196230395314926909938477745117779196612555010404478014545171297372152030128283925430675898970464186720527520166883981561714860347361239065162757588177772890593679203904689557429166902185535944942836502085453873943396352777904366158359717378599559427366278543420145423728395996662439538719356049646645157640523170318614812579802051939540473955387472960651523618261766956853894149871420049265855770190146894182829845712456706937507128904238125914303383522603147365695526407252526446195316326751574797818469782505948372312146281018498169282105021653229934389543616826586257432292469866671431516697706501177813544267593056703882574637790434086206111489910522359796532580251428907139561433582633931108127188967849416316500490920378519044157291214849717371328563166861901493620512426030792793780672286618341559818622939073766064095633643364800351046299682147905023874644114019818812249461050666301064667638673578636033955019767137707819601793262027131785717505974818012215586091954826476379124031715748665011014072009263126130491872257048897037570222889307288967394558027673493875675592981732643741252986052088669456709633556220058095726374817035036002952756780119858973955489333906222838140509983878868709763166512345712462746470508666513151762103377606076754641147827430971054871711260831224053676702861126337055413281889728026365412683985562279760167072096393610139217923528305905516782687941324746667968369018580523693640219570631395566044561768371680618771953312744991343794555325392543818723506039790191010254060341606865704181855631000033133216999248651051532929734619935624160486342292292756697548635395505631958947105160996061240227967748699532597158825342940875624298368102617750629823224610961769324532835388359975802470561621302685819214743019907892111024926823650069046030900476049073973990183039697695358753873352851866030802718910980938443427153544188851866402286059185257005881207323949845223119246962487478447930914055997285325850662994951464967541035091256207555200537255695782673259048924164612757927681385291885423113361397408802858197247367878514531071501313632744646598612928471977831289716718885019867810461474066659129678867874122625004296492232959433961447686184027412516376075114642370232957890438638114377157130984305046838785220855703645364791442129201805722411108092395027222664245664604845946479842561712704961238910977265605589330852205194488164579107533053589952314836429104776721212412444861875476809865229197783550469748679786110925111747688632792463240032431893370700194356560488877062846930164017637841733082359869452926914169140393032555538807039502791649163176142358671718113651348696033355973822775791327747114287022506641848878453056846941893190516700865365639791038679762630727264633288391899041814455297644735825371334863116988596506325859029961476559996972740215127977902632926268649064832741855300406596646043574986436226315690547334869734674230303355478655912150202093095154260467584259750991010416101766691633423917458150330986485934556091563339718754371643664063951295446283999592208654759090820561814978807121738392797775338780276027494568584700936098684472555172724614443177117614135930515675894099685935888228736206643819474440196879355302348677095098952165715124164216412494509165350638692634228152501346577706811284673304720823954077789720012998165186524195949276072932399862515277464861688111451952297140529950636225476838972787415640427983732956493382780097901819519360526349626949429462587700946196469440585830518417781427121509479642205631283461812747357881183941207439560454893989135003780612347155351123538411155146703943242123837932080308898053577362313875858925998231216791765025840979195522975151270258935335913284638081681497214070653217943701271575966534132150851575155042424904400700819797305641559343017097033117636248295085457276837088430110108251333640136127278988920288261059337262976924991147098184268919791975281093546138557113128304705909322427343109293620088603124588198074027622384175487970737942730000883993955026730837663559467166730746986727300583895285669377593057842530165068361858654835719986168918997396570527191950852964162465499740430155757287060903960100247180839821821776595001260072338229698116912642558515801992265803402609799202464245391909814975503909854134932348154738318947885825359112859568835379720413531704929431255422517614235308756200300606385667592396216378095037334687560582084273521299295723598700872929625134747503741167475335746394345298229698233798809977348776787473158972258018622822198492216359733574463070368722687948889424008843217162641670008386357278822967254659799812487828925518571398486546296926475787193600647738208327283030621906070255765376247129590737175679029051882469846039851566807373142265432002822068334218462653056725499138924331105851709067714509709845547898611434405896592457143766594010819887399166442256949712573792502773591825457974619675572001368934452451925993593226608849063476402829001853621065477746775091716209116450879676714562869710732762037341637353443500881317271282928752147022022992148999719114788360862765040236550426761919038925219400727359067262740861851491405338281426432624402660328654715099633150407777895667899934993625317233347076202177685877834077190705290758297046809006756512357395896243355614209400298778522205339673125610334802732298360781823775310160354522426604505567014119704853101797115938776543631273720917577409379386285761830315571122797935250758835843929620948116096620253576000095834451311154687002719245988072639610427641647663988818771035040099761007508772534946009287681092820536338322078052467410978642646276375809979844247529351500727993650136502728932650894685541384673951796596524993635516762121614681779226355856901449872040308436143326157284283012300897465077632733924625943444632029900257938108881534329656171876086645752634188467046506226618200468990109811037569976149827596274948686523491311433127265108481629190023327925624657911910659363036296905905225486029214373639079909922420018670677159377829958279734905200570690749220530326448162337436511376531852473137960228342145556438455944491763974159427995504803603332174419785262392122710032670424390425819673763360248819309394457238669338046264834971038456187383834686841259204835207814278322184935184528063313701161981210136618320502581401231138619099045285970294382992210486346243844881448460115929876504775188044359848625917557770814951208258066942433434319106682912265213551688380157749431888447153366581052893271929832824519546045136527403696131587275269475715626161523503607383398816731061580756274468110909724005322629233520765492651973582426420374600101285764379580909085142371828087478708651155771490577585145234816503831361703854739054100324431650224661521470414568035271008955408994168460089375768477804953854602916557169866818014560478679776721290678920797925656241432321669173889023331943404239093127473224815715304699354524920618934353323609751585202580296523319011482474689728075971706107525720494695588791529417261549587435673521033579783173742581284109889116201281758488432616279196108594338522235496712433777466689286117482078151811845024466587691796399185420314794580525743563245705860989200524097266628088822357744106040226862906318756113527988898872269968603076634692268518787393669726101890390388175498926104352669679342440783079939769770352432282411029585723975370340736267432913526620499905375325485152540961391055467220161113845685902098048389964419332798167621494401875656652610034327222344021060865419697170585514575587828986841400361501953604100137987177054126774310269751741432835051973600782510965517319344080195257896015447080664680488358769186727459685059389673754441164427605922486469618518204304947989774726220447202724170046817451658680501687952786450933981978740976158921418881502488885266643621023172691002856093443248896614983503533641302109111385093484263462616133357870119799450079357864665653253902016584986800529986469294108474742919818005332715403200300168527824170587998125016399313909638796866227539421652602748394844322394350824080422157132097510964347686516653657662495873048909398423153077630243237046201688697362071043296017102970822024899096908840203645423304158687188406082585110783119279865133954539368918446194751828506591985533486422944029564875847160660156297192351070811569571645208027590922761073621146822078468741372659266906032137317962495759306933689175043824237483921316180220516354669653322089640285532808987026637302783373674795704619964166191150955136865724136180638503100732065728739715201054619883854679966793423376883853643919275649773535347452784646258172701265241008136365414337538666551905582328474391017286826613406145746946171872290742946907609776554039936038830913068765478828513131387662606899408680016401867708676848139841533471604476734009397026224917864589947142804425184278029641458422125170033482789188789152958948356163210715018355221261008332195286047162125641411153195071943160555705433670325336294104254339939648810372387771280169170362317170085567607361526132756222566483943550217865697548377345074359807645181335795393639647408062864388219878120194378267911497759562062366735418578791848463744082424347307763293829276423691164874268426151585527258677810427129861894550617174676771098209100766804968901245489770166857137907599512467378370318993096797861178440616217819067740898588693961563794981349846385545984111735204863708285890222082671221678943252484969811630969745220686264330300831128575847479115776023635528628897228231168801323613320721270075711915780960687998381679375248935768893410406374121517646620678620358554966587534191609055680170179882677524777210908837130140100038060436345897925847307252892433012915627112642436343005557502567315543916945594472129620212312072090464056181742122677952491133319993336753732917927934986313308093818293228999394831154746530598984866690701878029740944957992872409410903688835498902782397976128395873777956073427741759075837002344441190931358433446509523031671845360797682920563835477947730000913664489848547120364243854330926780160329989660486702678669377828014390656431047009000024440716480194196298689671715120246220106082431918454673324422113104436973435429728135230993598333034069773885062077281265275428690457383703099896331227808452019855428677920586642724388150022116540239794048420138536597277724181297034718894194463742408947122885956686944603644468031621548605384995956914804923941565780953937274398724768537941253522588214017992856257957360314396601174733962271532701195830917510693617396393938730346096139523753713787219854179951526443841099452463548360422369047290109566859567350493951384450639745129632917269257861133089973503652144297567848220145530363727753103927611909652461660482460031872641539529050564643713256056078780536184761145684415342786705346400795543019045012057063122089015854875461344800753318776861661300792783727980622890738277009180471734642854087674452554109410241740456739784089807360641063188959261395767715923286935557590251760451727725984993243190939165189701180697099462116766780181736018063771027083071458475343450382181700067214773508165995130965289004563164938680684354241383121643499551741082503057709633438299726815361584102708736549590284405408500105434519757071344929330208327840617841733320543218104596871990964333340049486288390732231414830016273071089048053397631534779701452335355807208149850931751617969021167711655277597219405384008086703065953670934082743050235975700640599409710328964183313579024797048205062559663664255386470944890364475024982769163141280006183367221119150625617449203229021298329213293649490519933564320271179851968093757717773919174327643101561341668985668119808328391218702513074669712944426601567368490434853033137954666595328507936242793318943652982765340327078024231320407473943319976162895659911421349669720283696901000356188179065413775999199730424764443973403294746432183218047689153215739281182257489078305357035751162739588785702065452125619284561734270285617643168435776826963180280504144194070353631753914372239540970195698191004165530502443031302219670059157286534726560651075700507570165913484758771771879020180630482533876821546393773183019661413555704248495792144520686127288567971503053472876470016060916540932067459201079668765400886564084888910839563816715160415857007026184029722697358215769090698361172163946124718585554343055110728443852804897836067179080151572112096031562410767286124662000787272384372351192813640596692947434079252706477618228058899430417216283229996639951281389841824132351056680089532863576021093334580491815971461358073193044630899718392510906058247656129091933829755044422668960570124880307266549186456942812643934686776518153473102546458996369150815306597638199914377844091268554494692419886387503932930329942996219270236530018902581935770361326481504627499315358933024150486424577009509592437003297430402648121877111666716087123130365197794600883272091918238488101922807762897350351558623276350461425977479909516564634467912799481600827837762300022897831225743783627266156881399005586653373054689367733418586752772060519531103452433546358104755616666544633505098926559443792518021635998092630621502961805909448334601594563401889609218675232226123693249059979099791009578107588491401428122009249125831806787456067863655934586639919701064664083540454884228392076808126988706127948339624426851424286870798223297052355331795385519085500981300913540560618921587220503064318941288302020838727746015532558630236551736415720985151658300655310348427281691008027063778984448635793622351377614849177174525232097543019311079514825112208479682974169448368540674327210343404624677156173161465840468967220585975105606058096171786843867994581275630683959361605288063419710504094702604977832677444832603460191946894461679333467502465404059476308717634027120877943648683252300108287050067957919354386663705973176897881337861881569353045624010400166564003878031450934858988883688548396910205006112864486204826061114861482115669246927705893870099885934906112241951227894277496131972821211967173438477759278257613460956179329662272514242935204736086136833257431192965551772284921845861257335102506545207653799767506983708853513398124264675689103601796725570157086679352482523888683953018075723170980615448046958631259961952435829425223644912011040554905147732844431130890112108786929975040530023394109759143792662096459759582708104518356767587370335737976756189159813563794819769765892317674811488100846394695677829824292818669663874174447398470222597456595392152840653583030641820955411291480866647191739519183550225952891735457780871515472017026714689805661534942287752310098548816448273378798869129038058473504415797431498385992147412560503701147539694230777626700792735136789711310863672273828481403683958261589183667327483209597602757917585034891528185086839442683017521053902962775918750496064591090704211005451613137808585098428245934176196313041647671199000934599878809286864581996241343747903704916741183394257995716213993813413026027915235367292133325076607974476751979653513894542378138621767060911942005394893460802282896048403291183479305448085314060705983364259628222504432892584696768023883549911062581993289520034845655042987553948908005315619914201438300730181384175726117170509448428980339424447866946479309198987200836522224863567591073687644689704582451909623337191145302227179605958894619036965243496208928930982075409558135301424865895653112706501459878296947487760917961644697590369089623143012615548269495019555039765799307809017960666626794458494284036721623917795603062816936909157945152149532189305216765550344097050071326840301119790872917961885682739469068017937593485633480945974790491293428330696632048076852474998696830967676658615458998145847055920155499244653403740896384852787400571328882046162106774175381742703562248771838424282542553059453573086207099316137020617072078416118779212422848827288192019150295816629900540737101225729558956209860928898327980975649261353506662777770523992608523968597141092066097333759859967835074522070973139722600250208666976964237745573171826481255853128400087051518165247987263949777126291438915016265940156879919705586240632643941397850893793682741962678439773443227805786563739605218268092855654005557635263581708688128765303898507063565733454472551772659050671346732097673925265122858075202253809315675571082783731428581046156526067433326335867667011419702003732034816459689843081325317544158390917291590194081695755904993703304496582032462030707290405848272454010276691446554557285362655029081487208370356875846467073480305162005047027323625168906928621993512181889736809162970279098460928729554567823409703546751390927398676576658111845863072440201199756426558348421434261788378832043998197832271253267305396750610999314013566092240454697813578009184567721903954270191779330259587590972284874225572000254953689832478037624656764470426238116944024638624706641643126366526576655435872051613148248900274753365342274134317377927849541676548500991953838619413742987181254261425411277042153153592708831618567958406770265084582221449800096461433540340404697311492647279397483475133053100194972964453655281463528310921615026307522816713740693277673886507876249653737443376766588305193114488374632874366327299109855743593371066709795018971239002269000170140688635444757386293564616119798452818927929210395460012034627094508443197654566629259299192655229354615339484201160894278935635176798695954024546890268862339456937342139636524566410129814382667482351242003088065179378000013356109122030464275493767801083412457988396791676830394719025067093068956512881266155729532467587548610780310717287949890445339030461804674640735764152400403173466883195408743745344153918283877672676352780846970466244038641046724029223979122917803163371791884158046430371497343489557333032727393969442855040159385318403356305632233697199089672484465068053473692140733688001073843833170581412588925655564430379007660905933707335548325906646559110209929639918477622537553049525370329666554730827409422849532934907882413852452085801267549884577657895539145308969138233050230151557931721478578849425409946544775745135250983150652766174329753847843583288765111865260594632908953302841982166372996556200451110695856346419191102305206127864714686907140881885717533618569657497548090338490730952895320018944456536138289518316213890787897083426346635677669216886873559020787431221135952793905829260664562454482823255335837725805189076130625823506562169131625013387734816146586505829642435975233048610536704109069967759269599973888629446100491916873260429553160616613982457372336714408826153922377276075995884375545373491401677685963506702250561572573926754821919356539066088940082690425282592136432551244273621354215923874880929675069402019633333580925589278171784119598701124388821386184249909846535153361279531699635309871919468891490264549113113336292409791142685312431025076097452691363480412084577915204289776341203815502455771729933748320219765930957077080261141529057283953707566860227517342925610154858980420817047238265162696911622812557433887904862154090874079073975523281490007387774395677738787324109102678558022810941207624055230344974955045978049306441187825787499776602234467024370929901966039074926184965982519165135040050320650716028686545523189633327833847546811186075572866167418924448141432826970842064144554037462583792002231300095714143086783149025333223087713066909601290609521984908263121246062294894113955926737250517405501897766646670170722561956072673828575972450870264042184388054765910632531833812053318914261518723670758730721510067676456201295525869617167402411779034242786154008057726728660491361269175313627302948661179217001092502301369332988215662973444295965660085548251397809668310143496347540867251096778023050768940511187792805923230352211073293597671314793659488203067030700932391197576365283930574912300709577976454068347031096578195144408269651767714640750578903466260538887333224684034609084397711489697021467215135894583398805541906052041372944963682265031682781550437372039767773753464375026477373201500851234611931590808849814944327656690310672046794247465037984533035876566849719384094554005192268664428680024170770200778721578757126742816798457963789376445633068312524832397591154362756330779066641395532333594173956062792265871491956181982156615912671555820054884953642560307981287058726327643273486454225603196419908766570346611578248283721441130801829234519659328742097479949367819649386179542268269903054867902985721819727117086361905472401928955461376114146501066547803840958328570354109434797138054502355392129211463232609110004366847074014505492176578545003031779432662270029519862704159163884446910281934665689028581537363155933476881770046648883757636176129360867345395539419396135168328881040971137643806861386983791989966185120405241389084808624568953952033892169326407606435400409540103366167433709383989460888524796045284143239196825905500676936291795771940407918568242775148593654129402123690633500029560429395642018091665092782203943186792772784785871794027524316541090785912549994716315124396996122281788980680086569538818161856667700226657194292936261660304647238610986379491744292727525160908386173024362033962094855416298605967627707825710522442888536959956502822371164239660262413915802543805171341563590652910141608270977724195000164609339419954202127838454278424397526189643942489693506785653746523573864914028569319761584833016652497831177512350717365641689062398114991758965082777584083909766573910053433118248897727082101665773855723532949220994230041034690802234067740083352168634706905864194810233851594664797845292810375918736044644115321026102678803613467117745185113520150320831348783897577713050735748583911048141126542745960021607628314426778673263327227865629328642750351093871780040024717383449735708229111911498573953526604217680781519820989112108806011591900328719713909139624160753348760107973739314559218196666243589198666822358789094349660848382000660867137733102420856539375035896324651521303284126891392277167105092954092389526880695513416242752737339175930519574948019333393902055525517054176376760286594935646162286711385144069721301907689080041281066622031330911976314462985189856271528601743873966769274184379298575727406217858391037656645882157599417266878266868234933731772766713545663269702626469049346945689686817563488914648277646623976910906344575185704356085467182340201820719433158385912833809866492537227738493449426123762721059872029012531283644830419574104255373918980279781900976447614119342513248944028159472455248192069985250623880363561172146210507134738812913611793372199972638148076753671325135546542480168496979067254948279930572363376657964620526527072708249912828308511794493297614091301133247802950289597174199108427493704496293663013018807791245947313796915865663241224863365346891587887911869229535993430141585186812169185856125979729171121529175471709612158262832509172588232422666453493358787730790853590409186806077378815444575971808050309064649739766494169956166272459702483829380050326805087106295548506728219713904353261938752037015442587322660105970305071548130079711280282453810643105127534325979793373858350995156454046741732225817374497414236708406424382545746240699756911713204944930667819711724892649821868129807911784620956774801261438964147350524727199182055258393100875257427769771331513777613380520628363477063650539074470025115513631506516914340505052459001070152923602539658018566966549617482478261202479011554392470478418494622319551072927850213213130544532794603354016322985823106673219178844285263197152553865764858502954084574478485860301576315067154918768273498410129133396642644923247732357852828359585152808863460157283523082993506518790246220242090922098811169336998686167870591188661944061096998720819644587429197596395590564388984047654361077554851972194476889955072561927616755221750347090318629508810358710220772237108069106784341268403450730794014160722946453581636350208232102003118818922187697097812209642668242259870586362802623156658445412148633376847669450139903477195294525429658474684863014593925624423476246267092262361308033811571396641191340283822936724638482320246386015987675955262993574096705676618112162916561744929252782483045495370142223417952569005104008231960250853860444834903961967757546490002898834030086821168839372252344778014202369819651075675419324263507594515095258582543950749664283219004411552597394170279799405887475092642476281188310178023438067017293583814258282017653242197647774144577226376850177622725589981413883305258277356120861412965859183041517977469165116490575169477854416374167433897306730151873685058778191398523872551802887484275893479114191778271869627226354879374311673247950027163516836435303371355332768652238386236135658418104611603292038337283405469170738513997153655150624460708635488345618572321653209173978170224704864913656944092471821477414322240048100663134370749473993447911518005345898411760644623847987225230259026399551797084444181997400074455711883516358807205854984424660930893660146776791309898258806679331925512899279582650052902186863767850712546084081059921941008552230103938046993084188710626936008838427357111031409554379037443423070449723096509481328159661401105714167675890093066484499280662842849731209704823073009567988125866527930925759477761886232106055663696472498333101068787558467899530132907902987691361701617384921352405859436745950201931072348937526850274398623930416106152418998713806519243164174575725597006536208297980552702548648584216751945892352214192086999185558198844435604190564126643480834327732786512985298699710272152187330625539933720590697384587313118137365997357647805891392058971887009314469159448514486125414690046938936321709147057970122375614519562547368342363854908307331898093918564890186355083912509954303748777709370958246282657688080648099695682510961111529048100995879371227998965713618415564848264515591928371776434628688292339244226097507353084257067383171729863181546777724709304301660614676969491242863595948516930094399708557403848060311462650934788952787843894316249163356430047921089733318525723905779040935397296494399846491409568777553648096776343532718878688460081428068527441991103105946269512704346962204394086934466275652541121020069102371280853559146301875233263653108290999167714153001525578457145488089162717973004858956273970291791804313158457071088976565538180350372577556419766932570142396852484135420089150593994174052683551435656971058682844505419855936641849467469433108246491809356027807277141728332791758221626513634204329202409544782685505099910768397066244094440031666503282191039685823569685308902614598905428791164951938301642947954541878115781149823245068508672881208735774251156111351154827188269039746628144302567202523521505231576016185998199210047873807903539763200975058574728211317276855956469272172497375843933310930770662200922942960745503135204765180016713136432695763585379864683685283127520230972109722057269934336977642057051858988823361699816280888551079311158078280890897659572536601725246740989171407722108226109483949557311862880722274552426634279437046988622316049899033103343104270436027224389543084683475050459060540922927635264551321431244664275629447666212303907745004846761147742118851256849516095145415274188646192318206872801639050544083258168514457932175757158216455959530736075397970954739929302138670034712143377030624579214579572165620528511757096693826389756466066427904499612461154437835046567213399705057866077715041111860717171911565422499551163890109750725122829042012420346041247467301258104899359345584812532303966623567681994030474503526941154414413367478856604683264117162234290822971433112354121718288418147560855714580290692951928819329541587398076124905437580287505354558388214925022268486080077491915202806019211969473064811239523075246413875520541404651052137433819066115854477801290598787132147296921575165889736055998513864350004980819401272135733817717995003290127743480967086883682379184100349623073690527846944372337726531666058371906750046276261239400145349430827764022786540570885396737182840209597563123681178139926175963953062030485742462388184867337519082325071211997913803583484886981724391417217500161225863114730515651575571170815963314905955190250515240142595600237163508334434655298443944149447711994300469843416906688279740151015938747887716198915335484464413664720090114889102823244849845622312357738573988756414554294440891428256314277299154817138658413048477570050508572298686364457146367336719841222680483900620640699731077874602515161958351323690659992285423299835938018507035561989407303485928467225504308574202038135916254821540499359285015425541029200306717562622218363854133726283770186298641164869747071167008411358105173940091512210542866934222224613292577978374593280140408598062314555825637637810416588449633088543689772286662975728401573123642821444872126923538545132215873295152355594083228372596166974666691290800779644128151683206503466242779630588066808250521186045919453465048947630389416194325121338431196988372461559860483082915836122138530075874491639418637950598517906348901566235064938517301323529812627957840894415511575581117757423066574983591267044556281809486993441585651855826397243857828073933677631365921369517062427321006795473019808821888810196167505336996593802621611535669163751421956469443741420000255808683553614564527766118763477874424294288625359907647064831168822481484469961049941809327183133129643708839576842830254736544425956165559702887689917835298897665257309980923022388840484439207398916095807257986909976985123277507574851814870937543412203461065840467229992299501295725891255543358862580908006967108910869708182490151787274318411100568698285026802445042161301133903967087950043112685703668778296935534206105636210178929649905545110623232739743348048140728962312360401418258608364385310260882962788603629526698018004234616267372995708082103374941561468929672819421145201176634208033926671300661977577091289662636161539462703872309321776400343510255311587625557145767568952580804973205035880501753935121048812799177461551912620907964298801760573457613875459266244071237987895768795425317281326393825318605991003833755457437685694867058248149850042721388033326000183457177650694003785202280333485846434398838692823807604322752772452036661111682377165112603797450641285285435222939159084683052315323518406639411079866481833264235807376570823577387884993161637550101133951738183221645428018270198391438484366987472267353249279556957302552349789624463269713776371030604503725721001396617511024360243679640950032624501095514831804141856600884367035896025532604145245471310104904897554875561907563591268016132216718265555300054711518833720091768549271300319692373528613469531517452008496868973441956687015345100423907088476453905425013647170608773133785329777098603015633174719921348403783004434884084844520542891396382213480373944576876882571641274746576097916790217840490542946126451980865893527297467800777419940504327514162268538852311611402072279972764769013243038640859635455015070224571029981508207683005713777216220004382229192181428025093301604863492996923214243887972524261440704153533665121806071119090349178737297973849932583853673090111924540004761898538658996855636717782091036950913693574489965192998228234689790839103288068928762955705265334059280390979536715565780441238398907793124275370916396394972352730739093196862354907919871248488767571157156306903631668474281192091636684783370611191283999847057493223841793503510392774374735252230386230654231819449597169260895560296684081963516096032271872578337228415437820499217643397537737197388318533999589963411890611324470922557256757334663651069969597313878387550428897398415197813725109004014246689733299953435212140534145779716529637608374314821048264538066950934622168954091817456076164620486890942764128419881168761524513857272003075864346390484199308098958840717308776688257831288857787402035199008178351453067565548326899177768407453373396292635929571722415939908577496518857134175430764965351846701586461748019808241100951275502357211021743712773688752830603768389892802008659805695315589482376188708594450403043930236224470057182250549679275805484259883357009014288190158415436979418244870972505341226185663674913459383258910333553005726157719304860456389045484844128172308772093240474357650182311455221810571744355086852397820181484111601982048978690133138890690625621648825848333643413258787344007215330155391413048757403312570728975434217694791141962327619479808661082504177154297814035568313674092490371266497588205089625034874306468325410656253109656672875617635659445566114180876724102803895749161243150238698884122854600849109045043077140073483382637426410468648086300559315425599869153590215732553192219363592670703993188797179460749935594940236622100799650547741348788649358895061704619467400595204084537729776489660474456338811615784445899235365241195609654275438660526191998903657128697846379915147544030640915586223043046859766605454749414941072474504322782707543217543595299499465673783477564000099088269512428090578259071417671335295360314818465117822450060538254505092968490871737622863459918845992735696801643286055229835696726175537725423263213159995975158262599345409094249123482474187577170645994328320015757375169691068751718138132612297826252644357874907390567868435378428293772174126249661136718361833680069415383191499978721528612258789473812927694262648663782479089651196907023464762261495944383789206804203657406279491927235390005523268410337303763658220591934177801312724988722454250344920025150675968444340441632410659094060918991641862038767937325688146015842395607774138748829874723618178841621811811920829792842891670035869470738372630948341411227501020428970923590527294118608199356032763783066091148154146158294398030287797773523993632174467436597185077277053699932152578552983850094864966845215700562644362135067015870322691978945321220055705227696899118912904339742402461567288609232203686501966602002160074308839618892578150528579430612624194264961642746614691761489289811578356244713534670698616354077787777182096947322943936329380792151793194162953030623180394339186707904952176774473923244346624351408721310795409739672981663885076352268324374041166389903490461931633929805920857768899504336841881637635912927821362317550381895981351304774350451357481662760326499175783710723158472290414635850991839824697860601930995161264808177058243882278841339068857082065176389407512842468018805710743550539041723290753770525523590245127331995249262093924615432333857279223241183616193447390943387993784908712215407583713831731702633540667581999445159862762268524629076246559639079917573888682562902903584934004001337333351768633690183720479760326399347906407913605420529246018638706158816931011467327719560122161663348531424977569551515311530589252037372139440392413531128085843457171531358571473967047490822976238897066391173538314643708754028952030711959515042471539245116812104805195159009455365223903064855487951782001616795760504167065796425767728194442243831298603449254684149185203638329297165201613753144542698269755878523381269836155798469248352692129169297686758839689923644958937942242924998049677984466289333094868741406018317368699489590858842862924949575352808959477980692457123363074754429286602697119305874017475910026657359466033623132937204926369862590448846990036145287237820667010098840327826881556372857711226445173839092689681018708852096483282246068603303238376472685542387708134903419712457341959827685039160605738824349300953862469529967659110442208945583837601963567244557507523551432813502228979762725138730819592473421452249493724495825647960808549951845466473431375726605167430206294369760867154785947782295865300485064689844026794685252863726988876324224884470902465036960280117076670628341943393439185846274777519623134514812925912431715658900603957561694009022949107372705979683436072399270361392159384478942837562976274090506397266593293205765793478751623968454875620750923881341285462144333306668811412488560419096348594767188139638307879674156304058315556175474427010611552243205167373016758937539482464808952354447307469928856717411882476284099011788047244898210626487765170589617828381864870775016577164749882616987775810190458470698435059640938002427284820647243745085580005250261405869459343750242885752739568385426571645617955101091944276435371180639550566918309798045565369502322943983496431171290498223095317069733154110435162431155786567029032135273273667441917916018891176304688449534535255594995134292244647223072646418763153741036480907615451190752921624350117946487876857849685785385044717581624378302613703890252721674317557570813037713844444894255104144363160303228136808200202512370256127135571345661744730690615989167328562406027445575854312083799345628206942981610199466040792346849210154368460332254431001135770358919686238084060796232609394284316920202453491240821828156670210852847426130432776175514354119909899448975617424406011978163378742657625728557985941516376327165567118077214534910374038650644488976398902254078687438950031310895935230711726218748490149659763952535012315104352124447708442122147279427210823793326340277818655731756821242152732075872065291482162625135168339630547415556388004971577362208050580785545507785134729446596344951811366595218390490677990332752123388893594385914995951020502912075854263426806889443370747601857360188332231050191209746710749341909357657835089885941430399288007689192971497009678028645271015069811417836196100156419208006661429278369625071005086922082159089749405127122604737033233303626992724488730442060651341750027371762735056626894035344390441160394389557201650266736582522744246271060484686215251137675552088917777320278711148989586102045940062566561915636702319850773569512247144329087254936244537797036693278609924114211631111098878798067704086929302607777358162244730313472350612510591261971138503939594921071453954098835618727185594304110301968324657068828360282480454865729586872182637997858035361382480064703976837773524812618088241609253754959249372772065478508028950018447077422543518724253431583171925197899744419816469296817609617197382139065959221798312266914978249195961330070932284252672961328912754524664612658927009810206061066835294299924676615230862326151349819058731752158000238398360056205731374120070853477024603670012462145716477235296872439989440470079202328648965666928796838123277649788999449903455819871508005556722949078589878357138639771422313233352788718919736997429683552874798597891269032189492522160785718376805019193752456247960183905987087411097928799274264158401294607291607676556308275240243596168197545476299556395312953026617806763935736337946363062391300410653424061895833883379654447136189498967598337267616023103356762052675166193722608411466694763252445583181573947468908758299896534539412035838566227441271231490206553155945193479996645754688943308177544156262246898957481447176178033560237620505873327471223337132695111676666850799695714196084471540541542996957431824053429780602392213802288193284802333618018306131552836193650791704663372898563420484596857898410526482454865363161298520587938228140359360912431075247807314015497161443265659404446150496416731225565030637012146363214222372811153357253015986420676526428407602711700081894744962293400763958259824958010086446347645701273726850922530001619356609734382558280329672033170842959132279824189159566102607367194067300355958068358573471034185594243639670893278707724086771383479816807813174466442481448157985813104770938977944151165573922198077148633239073696861532277794282990845557269469643075187104779741971560392096946285697768063069469945771967507094449661447628129630588200862344093860713814863422944417689902790587739182100579491852781587451614893014824449259810355213073240627078599152739120381484533027772779034117580744032261388304612844467502532633691242268818562450964101212221831616625040884986243384884444419858035293137213823277805633689052877856262491172805130287035560664855610961953781094935678529752068813621959400910006740593124821835953620214477121858847460698505074063423055482758440403327515623987878729393777006810783036331526255453953424708642700972254558756493787972203355109158110459418944195514830823472772004512310198578011728712566090687828700536143334993357774875069192552969396203951344355378539154560294199115359287749886461331626072029376327243775916665584316469000298019683570525587607867653718586606998317758896580850960357299269517371729312840992604841123307329431752232282200654632910183238411612522161044800330673834063983349667153691917984111632588790975410020807786942652814827541492042408272809983884402810742449405962983307791693979532720087133709541179187194826130252433612829618936461206153136895482507018632648160977374438938638147141858976409611822048853726825081692715248777908650004654797234041384194692792500124545496384425951728973990231741291479076890024640194755261963656573798091083582881481270385513514941663593058483545480344036627474193126798909380159559471794004685391465711965769845317913864805512754960179398404044082873115831648466373850839845588151845849753986011640636175045168626074849834849921566309167697543493167223333173318287514685566118522016692361942748596233455728301583847068829525226942713572268337664061463731582863750588320826435535024411138489322452978022110096304995444193997613694972722941865654877586298094050258671580644020480642530554196490720950210333344751321546614743256871219071997766701235223934854346847818055399845673134311157753091299603609150755756095398199480201927318257599854954729772734603029147680046139400567034633541553074424883127281905166101061231948946691345876444476917313781987697286881233171720147893128384588539971003707923008428984579292475395277918763504880624392502917631427136770247203373525633246189696494079587244641062953584420896630175294802683818309829420833192335867528627293693266702616434347922587372389831991479056190347346925716675225772994908441093524933937853188282964874540191331319876901420958221066959394997598279463839946729042247198711270865413047779567048960977596616504956184631091231659175506205859739682383849489026060289908605003746456594948579008018009851065603269690894083274741260270122650282846161727259106764792157874372764786260265493387725885034989664665363252045681833431931579302907459285342997422108653165161959805205433871332106771349587520425525785698942274797055718493269167576599308393013190658181920475828375255571421034901346996238597548669457670049824803825799627204983519967274900466244938543775268501410634430909096768148322017118354242505071564160679547311805790592243561263380842424540358638544887081071429130303959315790676149032151554983650213465679939004144723391043952036623729696238486676911206945232819383469920799664874404967717188468916669778407416180773303374260373997467840875127642558968747161452391861822315169728331170308442489497780096117829668572112759184042457331751369567967938725119132356348518153463081939945320322545971424380880065844367767690874997776321790985312530666071483064942999369723797740098161192954671954826060437339375135574630495957797992982131985397254623605066940778459305195401809550200829822227749730575379932909836362019621934780330804100666030416608358486714976913225185858549604541552028993448743652697798989492659931155307861678166554033083223780142756777007462367441048508249040043896806642025763957530334163081891035103523658084563423703301233617067758927282581879077612562736986649625042913401169149342350462409753969474449485830193982103846136116837917681590453672995200939055990112192467084302574352378234597327067823445851173849700664716108138806681979269636348077039724377973258669162486893331326948472860963775894858774555517195698205532184210784116163237150552468091224576467037817583680951831717463631327722713303283765540907527180244633917517275645631547979133874390619347888212040749385576653865780651185287242682913230239863232923964387785617437321378769000956308404779488879764974181372922801521152115485665962250958252460932774584899464320159358063766751758697125341508158853989240697670970485792311491977570337756671723430317298513571945998767763144829741446161035214578774520561338016123838337886240010456677608165011816839983827699948694018747170607951105100212573314189181735614729546481289051128716868288517407416297835910229691145755556531067315307454433585138237126255845488896795915386558394580772847913569129092104445567935706689202888493122449544870726643823458320618850635117904453952363249529159541206640887205777602390745190723027172473819633716078670709607822610274380555259980280496987891780183948943000690227682842704909704318260293265168472542062767678372179723665723628660914561947462801951167424287279750160157217784790873776407242046142815486837375146296997113184663906932161388263574465739416631151463124132700128238984105675967835274466080074175080935493650864575568800209279250367428135761512131602536450687126432835441962578729832098830246546665383802534059803999692728392523321722333476592721450122745759104022232978179156399428702171920959441958287704339916154596919296520524446952075421172264004435747223848475156737472905015748138220673755251766633150569704124316457977949997279727736988847496858316678568347845218620178334381467925157966506859297781726531162478197005974469979357768250787803842192566633605596051187246124770058827227118994554024743237416107510933400269744516407052615165715422819146018022165036172558590892169506472449779084595032751894814433830618077619946678071202248164644526843871187967016856441088697073782303409911813908530412023925667957388038805055685597614184283867017599817376790653952962640061867473516791153586534824558472963871416785409966221316819007470817139867093712831301284135125088916934982683130985060924146832158781320081679327849849877785388218044330757667295870973586759099267582603750558931408359537559254109686453707611645613180110503362849332334184828651551091740456136234713159787082854823733884551878738955359029651353138599988986551189342239428953936411403380918199179466988265950326780957241690856790535036009882697096686169145976103103787328640175520695472671575651083725127429457948145031087651295079185998637928741997527007939676674020465918212713746796696093335734571852719570906979169303844200633697258540316424018840554706208448060622414796744232182185626278175000461650353936696543934437082210884638273319456519236423700376116692553592658774170545628519700556098219482357027203244464277240476993700445970942237636261201887556568073144352015973348710785040595973612023814579645690038132187487196538325198373007801243583252345182363491408639820291972318053200038223023010556014656768414802564404072616417060552151352892643651365974684286248729026638914265317986043592173928714405112751817895592692701580399273874149653588881828126949993898761180076402029726908857777726176236541365670630566365703865069164066449188707458714126175980111265578775314039023351714602360983491663113524147043243018287043881614232081884839890819168058935710913485124563742195104105259672106213362954959032786374095033054413961413760604049637934534575770648927860945210131002562525163373429410360607359347456552809654133886732868432780079909333362482251831995693746570987430994323092219815272115043419628682387181430123286442289227034609557572995058005827912909807782969345009033738915965211048824104957823493293912018256179178631569058589775051299413313088609855079429918527142616006574768089222443579078133982614283423137412719754771335362258981722592329584607852423409946546250102595701003017472937995120641165413553859484298948324260139002334745254735397618488713734805549980053644813276523676133696984378192297005558728496169680529514395986196831762622175327817778329675729181024168950791340079421140057124246957968385605097529369177633530791553748072281228424036643308670851262958699258575868990024786910609654176698700194740411116638608055385750329633140388115843593075908184814826862715569502691447816318006380229726975005103906094497621205717207960907285201682333407936187530609804256660369652409071886453285977562980222195487922029312414030398463624167230148316374764471694523922952012612230760855015124996469014459662644574793828249561289354663123774398019154072129120027313294327101370127393252240876919499711602848846649225777787260636627159111577174988533835972913623234135875731664202762716117205224611002114956767877465926312242806724972943874494908835847101453073143056522438534884292395647910822515567440787743521684792385521867176075684820862778634971661988829821272205057271814607536281922398671130408516964572345060777963036577865612510906855095086705621007737858612139123711340295779583019339203450695696477418746476842189268436098930983537593633308447091052006608164243027641644028663154960983235618262332497633658529946023843896408066848104936932865189850352151816495865094744002617691369803363412561724548586550202666594484857973235142324071071938379067286790349543773273664293732815102202467171843129489191025477352291798397432878513644032804453728378554852303927135986822302392456772786456336653593820617490374945247085218501330110714890919441185638348135527348831651037624680616110544862625121233970251212578399516750903846814859666311064034131206252629571148823099033392248948412638108857148195567588410525273436498142516576150357187998586753484884506965196661447541776937132496864758782041694484463527781270237317842696036189817638493321971504971782102887556641057316844100958150958080226811409618700651373181996264643640466494523745064792889269603711773567933523252452031472991431492372376360840794616830453358425785075785888657002966117934929864770941981313118695795411185731568896566578615969353665873698697608248909434824656382560810047427715767835377505581258032602424263417280061048974737425630885279243832957452866006644216440275110636397263514500451576791089558322159191917388385013457576758350895691138807275442706995935333992026766007679319934437648383014892939694592151247885149451348116371621581845494309988265332254335612980254721692664026256115233965238427667826627998505600049486283123059539793021044284055091994122505462419352323071254131639399972613992926178613248206796602933345210703565773316012125542938262162530454266245033979753885825058955660071116755415776894314514242023032058417962934144578483750556300942572968030998714989603891279563121622691304429712344941470483115842392574362738758791026048599583295271044295224678382786978163164306768351166176917104341987528058383019198670440914450683650419579018291233518291257918452749361308967368781026518299443710554203064011413971397782698316750426301643851740826027736003653482421401759793546488397153236941204157439143961265391489269097819231340775071004514062557659415501882151333575575082918136466643086376826507178324143686534220314565365416066543438477211337174408245474515850207479667600673811401863195984804652638072886543326858308749128685741220507208272880800897785505271038992205639895591433558157943950577392661121447686914890154199009325165632895898387979442634383834417177785474731295104286200310563753587403708722723765026413665996249339752967047978702385296993287209521564481904888279336895398817244688003555671448407588226043212890966928953970187100468115722279704297806741276264613672061414445657068803757372570318971274777718850764004958025619769833454548416291340328519817141142330204333458328692361584672123060690688514115466852563626479975438546073521857135056896315420187694596980784746093043416373222718638211214688330667954355261288571801456030201707658473340516607709281244946328725729312589962532206717899743269549679208257216375924012810030985493035648557040618352785216704660575652816624510372379764840339330120078599150944717138524394670242933328998073447599723025714737226316952015261446858689407425297578756095423148210572869314723224075956950649665030559828117051156221400496864457214829311217779645117718223150704994051332931999488254709932759795405385427514059960741626244851562194611627965056282098621273953578142598404591965857641705175743229465631872032282941880284675893926097254252910034002608299489214581101206722374496798515555856686062137602447033772241632978681785054578604490864011721644096275140458908891456273924652086968945757525502499103837371898748128694066506327637834400018424693787996771257588099328314042352623612788770708724178533286863705660807586790324894094094042710519369732845153490345082560590506673089353202449239623820852293185885809527557316412503438322318476847883410345472024960686246333751085846966850348368614989282747228763185365765043703767749839501536172543452553928516664626054917908964288888827251854657675465037259197861507746125919998897507168905185189961327284709918522834475677995974189567975864746616217531564891201874078910158627974030943027811803940790825658547807148344236334423015303018664153263237795747103652249373592054863218575995481869507304759090281735800741500750984097620920601905407938523470425030445173209049235242614899491837754625264603960139801611939035737909055482087626970492324756164301236999869484465052417609363408983821421241082452508084096896893302596697421179923962074767614091421062327018371890620872401691046925695045556181743652830916454005391180258760938981014890172762515651046121186682868531726596406465734717463493407875802733830069969973915353497763959551450678516518256981749573621455255338411122826557202270837325940781208481499280546772316952939882642384348913172077646499198328300319107134775194654867127375972584420515357747533585356211336656329812375046357255358243666422013824340211998999582448075567269097172140664737135881833559892376286811526559645023830347139320731342311104999606709973348838773656267119584426384968402582503329626895719110215873721589996014418042055636313263842168144861707711402455749595666281290049910138960620705261304862339599692569986852848750172600149368018787293591796355819742303230916590927853985685163242616516914620322838393281408476996212717559030252544102871107029641017261015241653843481282038923014915502396520972691452976862822354792659451792551470515145574965168698411515487056759428625192221640593295482357000154193006306481971546860589710681612567644782762286179089750215665955694981316581398364442925748876239152299633958612629966870168664766190585878644317620535342341404417561180795125255939865423986123935350643940210733563999599469527590676124594180344383979619113421951295849846311398516415276290375399092998609053811497318321615684032488282600165228909405705875769011956941884476862162351781933114377432278096973932124348966623087380598570514367449942574790508670158969566388324229523016180660647043035152280742301392880325027842797855447584624036608239639566669698446912543909780823210616587459438163134445983392226847910592276845887794536008586526657161641163989171678584752676843374698204393190753517419875698048849973502667630679116101996649619261216934849273009010555971877391543644888189579228693084993916651935772342443933972631581091785387015478353488599551266258527039021730244213200463438273689794103051771453327953046514321077633482240712442646259681030944648028097015784707738763099307212399838608894082109504013796520687927235521319305205331512729334746711187371262478282694367259825975826821035520266394902597285777951364635416727375881197064414167533626600401065880581967530512842357591749282479485943337658379201065944757352129243106270279585023641716399783732121293328047817240815174875101160767118914214881650126193942200628147221384830669508342404588037730221098252662844313293953524829030142494647840190279857400220848132633437607320821665203107639267673954469927760849338483668919774353423941479738678951086113004654818305190093731528732580274940779083108881556821023209099447867195915897568457548884766796159946317000306307570262081053026978838358544735344425078856626087251321115006018627848154559679144899633222671407170536223451218057913909394724593749040054266059428281208087075930086462919509623953110209548096537524152144839709121166299041061218509034945293048254812558928961370391619664427480755507025464102742028660179390521562352867692555091468481785024429534203213093862224971698123320110586383189570509157392508459291497074765452489982881569521792220466736207719656506365814266127235575661318113179502178692039413961815989573626389960272520595218516513551906536750108988382035232475547590479417335778346001605629937918434423248441523423733863570084018817550224684012741655067709006402314585903134016940038525773962807008867561788536170207916962646776655911318429967124788621862207429562255624709940298308691337370228381856963487516442298512015629424415182439896680132596809287785414145783404384587972422094044340622343549543565640819580854430733277458961963063879168917837131699587035306298975317158732420413466872470100524840926688148505940631711364052272076728408293757887338098586974345554224643344545029612493954519224319555792532809479803908359204649491565868449095522335154978138667883997464046738952973981386312788278471689009693205400390897485970731997555120561145073838590029244711867809609784719937142282888610330972492569554253013868060712866514348173251492179309078456090180901466485523109248606347398410228034715736869274869020270421746510875068865263214919329113041498934021632823343720557667095146120014843836044671836111798633387733605797274660853937811019744715960977991730409468346126440449809084572238617237441258642890687572662271325428056040374148099468966296651679693670062514207044147727855487072466801767313328434198265683672416671029268760857778448703033843131402524519153848879052476975894135667435401766574991052941898970924314178073030201478154154998246887093714057980521888274465113053444135778542709708249447518265747563258616860990928920903293266940542038200249425252028759427746328922723610770593321803893562298443534455150065667827253837507120483685458552706106750509505339105644690519689209169503026419275697899513355990477687945950080042248834049398713110114714892462245551096896950861598263889782246359874324012500246992681359116701772956749483377431359739530166702299754720016594276821128428512499311637333268764417411207418726061065588586781423681527376547536792185232121191355249228637312915695606213943993393303992743878027038015609194898165513699948768935606547487282439968706038272818386689561453910352838990310646733282205000256629778990905203784761648306782841788852146526336391774622934000207254823780704823295311214897169338963958112017928558130787766569168945789367579122270384042411870248818769647101455273611885582417630074605387651053255827838140918847626347738935934197517103774821000908019331837821959143979320311880389913194655733044741720377332221703329823360324447159007149197266174934063705841624364791681916858858282433589910198691579003276420290492289178981231963288859545349843449700211330269033952135619176813314837807087730119513238290909241908502312249027329660910950649357803270535956369912167422891872221332619695186628014658844965435627548118130659028457715877097407931146154617030349686187580357762952555140479219363934547262753108835149082510215314838753635815158680672754251598614270917396917644947855361890532461101620072770761843830984451835482244486541048296582888637995677383782505760830125434256767962033762879062154691706794722007440875690551632447159904787732175376431120612857781064701932838561438460791131317565927119160199838049614705692183251549149293018587831398443667539144583190792676782784077011978082097672068604305313512354274165237771885416900196573435605692042892330383305700229167350695711586569986073877789662171016475751447275278385690857050619363981304356922307043242983578615207675322893158019633093131827320432855936816287166022230160973956568600987810662674514727563002116729398482490414614737824018121951127251806881694604401994490998579000673688093005058535322320586050414071904010953961877281051734188244297159444358468421907169213712090052470143471476799923469786370722917460336583685936908352872312321438349464635110791091413276675075397478817421877019829549006616860034028703961405549071448143590144080214930857701588987334210364787846422993598262461468984497150253880852083682815321902363498156700967758697778634422017718287828085480005002017940327758993832549897179054081575273128178207707203010245248355599617429564009008847444813611774347927416160646542056204896394426700902844591579941357582856990852010655017687176136675622365776162671020266254245383964985913914418189705416824272935146438543590986609193746999375226775444976550671302658886547303220475089994079407745735125418326910473008138303135046131125822431228665847360510510288090437162507345950934482124456025421956604810158378599877589735092376086331864553262875890843585863805819748464640863064664062562409450503183114490830905756323039667682346501671446308083480389684205617534356005438615598596191639466240370941647304965097792164758012748197923168005159523804349977001643904984149360343213951242333402257624658395756912619574562210601034050105293450984960244816908647295022887632889391632853023926181996566804454566510587567144877250296455273322782497717502041609795673253283216008403716405965489495144498549934045019938558945887065131073417129716662783141071148952323015750023335610418740981775903320698967392090903620178529777583107329203260637755015528988296664481665585027078837411817599625553400333523194014299395307572090261014225497696160254238755733500726085673723492418103623000821649686241502126031634758549228942897209843305823816574451602823186968462104938817329645791539456492794660963829068382696926434964368988648319767109663505509202608577250706150905167589849494732532393353946711675437615119018425659860325101639194674770071367341404993962776521726006419586785976298701302638921438731474614379962026736113644996658757330944746573948297272832979562325581004659407645618709413806241168225453732016649466516866775346561839748453266422819803896817463412258826379921165597932346867706886011336025943465218140121031537578032620746936057131021393094566431338819916916065636140113443383022980908328035387679999374169463950789136471734027993006720732611138811229386830396099275298390952700374736066733798124194810738635332047559343048063486651850908641005602697748904228902188926346071968348423729171390506874833741723207446532295116765747625768505387249047772244614640667669609029077770127752384620919062612546681290930122844913818783786467258325190621731473360112007403460908739935282261788248448869481043967471838456138526311393903327875476828911429010278807186115683803062862220217705227072973649412505921225371044384326344487084650562228620493587030666964256423478337869415635695947617944247049161128156503111807423068012721179520425964457789680959848071315165574915394747737020156969503126139866940553445907666098327468244694731656962535176048401575529899776966844967342836714624151540017623910194751783777661594835485899148006276023013494937575657051793794257075510989653763849328031619982567736089961313902075202547738515068227038606553441225735589553916193514864124012549348664842177874360286518410604923325701234469192479853673356087214554657776637986278674870132328865936398616652104988098818621819382559072879516547768278949377822453545156483594132918435858369222858275912449790984166035338217097253382069926954086433035785405305897057835426310590107642314710107332128708516472170429314956555196003485647508370627221084433334749068281366473052677002720069021019413059566835941096697782867563777099192875307500833403435689887011648603148344790941085482666963632313573437103529175243335480406525915316665483855647850954487580852954413471417975473011400445574346718127681422018468963812404079732527898100724960221116218419522761663986321115531872840871970735132494644971954950324522471666183914336012645001743894751090653359024327087485338834093873065938179027910183518858376427950154499341623900942003923204902178354796310847887258462932147177693264106864108725970013545736014448499055589321706627762025502928957803928273634059939906495783390881436413352904438961317745747236940665869652694303678576568173002081897304054155743762920890347874936779484645913295573622892846384457622116890110987151658623878421207108337859671428804350747079377782320443366226959916342617544719978223770959843664104358989641811888554016049694089451202955611438013441916543298839108763468868971413286221952151219064136625745959333496672808685222947827341939740017206314770332294732519584256371321315753340070527651306357286559763853554008752020796702996491388963987610299192985685242134915472158414872098741074347968834472704981701927240538839814335674689099698152444068567367963335070328295815990965636105521655141844818110403544997888480717509809424817783990025397646213154006390228044154458206466932085431457982744565684805192781999372345374829489821131318603661847355778691115214866740342137580100227913816438612578369120676315751062639499953903909713387441840477893584857750009329348703553993299120818388460664386371513880879126680167459676014119113329318459261573067732520052679983971250219580283517533214989121773160336234638583401823686000547252244926755174837419910290553113804917360259389120848877432999568625775442801108375237848916759420041075439344420609388363816078057447431580539467867447158170198725715114794287976371972681493570769520632474185881683122123779038886576782532511794364805699754785572523851532976681999050076050351747489780393798496412584937256099269393271073815505948449020844181198275230635538956461577295073996936688249810869720726566371889790280149602555534406776761493707755704607906053664877272488101664964596383196941454884123245825174540424488752468762459956358314258235485593583210059025358954993652191174285712046992861794128830345993094388492193132784684046486840190818360692691060189569098774405623913924012143424077208414983099399109874100467209758474438331378906744805932748265916781097028694331320480906254911527803935754492480548101438735902590040345975768399905141278036609787774528096942595827059531225831939109685921246757413561178701904531611597752665802679152813069876197651970315558009293552726362682865551707420858036166492662997471119188051686050011477635569276637009610636223672007360698280913611837062951879239290977735541392119541698078578711756625828184839539163696604629290683459495966674487854341016520040753074348906198603612330960945540535639346090803552398442558210925636387183252287803868688031571431584733442348396752063710246714766597989181093945546296916659966291042045716438437154075815806075565476403097607234161633748241967558716326036180660034201612338149499165785626091177849173099224991913253578340563760368138522204792246995968916926092842870243081244337058048173629505706614823212407500513506203525140917180094119150346014795417898523189154877887475747789842785329151235463497284024264119588860092406885875558312911731132167839605351416389522799188630832824265386083274848928327436731530049157574127129120971165125048382981884851435536900170701772390704233829905938908999375564662236198396916230164686985798740739917924511713131219883974705542594007699523065140456256383017578856845853674199600281601860163600726592078753671603569690102928147345361709118343576051685488823702645128643480677636945223165521482987217902994841557330724873629929190446845588937915438474376864360993791442340016448778335012500919395109350602841463200364547766600307444495879634754779669524369536800179521318897495010935113587608112959363293158824230909251644361402565068296979613578595199296748933430957783357735021592484691854054278162683539385634657801286219432933637400921384425024234813472447071283975870382379382389220527054032099567163604145931418818295926348424013720336991544806259035027979360098590110396033567801908577818246952526990934252649841395087530846837884852310519731852720016840548240243448534237678023688291968107304386965182909312352566368380862223502510591384604542593368791861411462347662282497305672997076203315741239520157979454067334705598315612479023159426171245067418826679866432334313322074303977930603993928345876585418278974388437098808519770562285868593709369314696560762412416265860427151529721135514817291569931334203827823051303929344840189035176185377069185273210966795857025655165638449888187996056284716635923469780635255237731197377659308362669267456476852472364923704698053339140792326248821659694552235755213582476765911688312650838302491854609733230768661708535367422106937011423198307622156842512633020050568899213755206858123565538511480577140902075942613348794279168369921787674189914144313936884067782927097018981853217022669214792603816952032260407043328220449383241905831908257228871095682187834597106374453326557290074029650997042802054949816257408172149523739687956888493778933622934235737785363185589875677353839836590452891646275300031045759573968479676360377319504999266199753955083851283627842451094110350744442124924030339787190990604172416796973152950277234628275863009642901483420273057771656431499726435267078226515273666346358774265805353229115114489081425458578648783178271448241320595058715919881384111465517295936564611461178878812102185670353483107011853963353232356454130256558742347550113919713369785756053790145920096969931467854918761903590372093284246884575894373390304887783425325408557326070808404793731783201030526064025635699096736138394238024957393966342677300682362085560326444336034957412956091751350983813869828419134491832439364799805156668128413905233753395060142309704411300493534412155675189609145408322670117524212388143574191423570071596841976463934462015691426674707853473803688720692288304259618676752473549969572262942387132118886895865317542868418831872951359159440218009347642982858563534032624912171534488882232898358164040204371333498532172631266203757248962200977554964152880684238990657855932973459772362235300084035587889877442936670348686222768503567802896823145001387907027232694907457864135305131751720947821038389585965689145107555850332951912786150219891188627806123420419772101605361768053792630750274399682641191853705966417875981327574162452586939224376886416016674020015708441829958841005984959857896688896737252227054676822063083278419264370117400514013599178949848770992199260528735500074883793877007173722605953004778885654745279785074755835400892368003442904358873704014693917679845136872706806958540199527503447343555381039471531660682613880368280247452970811677566374102547112122081391555828765293057326917868533768978404079736332128677744654509752310155838323641247403394891279689598542144062099936132410491241332951711805171649647430795782255857301739687974803311692403075813828936978318830451789371586417858325844872681293886334529378087880244422110803858774492942657897771511580673354757865195684918906470293887165983099076588817180528418939422208515264715567080793014610429302639675183614322468373944153284052505177003098860287233639324761307763046479997472979894305017123331332455812432733762375038069734370314654704315600127134382815714658533985772056726539374114355780615711613541389463823615001659654872023168780894403363961796337478632470892072966346380568731209069967533924137912891839633585897180203797238697788144898753412621127551401714175641433882441116585115597744198155600610120944950464366439838613932288200874589380385590544617339649781126243720340243373686871657015359609201307541004766700858279966474863960047238252870714943375720630323998435181451425848651396334953403319547610736451567546913688701853751307764562072227711574903086150787373770041045791509611510447525695132464459213820222970921829212176245224589516426020013012599288045353136947368027504730839521722857211033830563830183676559749211520157196111406540543461558590045825002096704343266966151421015758565063019215718990978671918699944847005841308849565537883797472158959298089077009774867970883680578364258766736949624418855862797620185946848018682346324744473538043010645657091866565680604750617879471844428548091129992584627537341185755786749890049434994866308941833570907273927615736640730999502455460050996922427029096181192465443719560054622959156850852775795744419150701928671562776110685654443488105359057044542432609904376944755323220546982720752164812126489948093187945296300754475585054467164689246657648108325550005481852711466202540654228863501881258139996491282909247325037329291727559757920506697672009164233925710630192669831442153971706589883426144810883442608645412706890210229597193714073363547944159521500519983323643763643185003224287635609434491261537807076098875744935078039938952394529041937953664557973840188982363953222647540809003782596462108323754123816315078837618756866239276949316115139425895186976143949654001638114613821002310369698581142076213118667849211184250688317878143606010476601739249025856798508182379275488633929798239120454325632020946898653546495907841860934169850417128461228444072931574535078187366294780848280253044504414268534466443064716745720134467712260822442948980720846681442994763618593872637820245162398360949655063556431335155094920488171033338512151952935388337288996026735934558645255913130295081165123771725215485329854030610155636873057185627840366943202162576790119733097749003857667587394535790783835602187895090726062744543413345529643148337598010153563334390221201472812235973812264821479170845524394497547563418897310750694294361650211998480912456827669192273535181882436653497390191785653486567247931485615661435524451960686407465702274803064429258505585393396767047093665184190541863160180478282482651696632765355085603775108762650929754668628061006443182831787908353284722623889318440083949298225900657642023472745474551688201163271211889931228633676736906922370127260434552870051791302706790110452355060726849270257536084071952108430828529909796928368900132453316133624345371223277334864575169049327044309368590636242484692033098895284536300362108801866465032166438325551022925143963471671065794828925214434928827943743298713433757210947649425290730681268441248686312763361413338653937584629582970666527832782474603946547789597393159435717038735366020102442090208531862590310546777736134678238946995034283344268311150894556592634923620427440643375881231971941829209387927808467402264585597865853241909802583496234803199893419784627643820967294748617243702810166902413195966519982164627111131028562439038861594876251033649845454472188709095501791315904704637178755934084829159166359086043233266877363137881683222395297004700500567568470654827191261949227066152315191470422288620176661615209408545791810762106640474311760601940867817105259304353158529896112697720952291542735039851715343889915077866117379454286301721095352378143301899435529597073981410740777491177600691413787803506937726352014784878930885166066049473208155479348290843852641265628694598791134297751003971764320220746411654367355993748101058665479282579970202985956584074657719991060648590643330862319114041312777852133545271078243651640378655172380308403653840342917718029427332337883075029577423849959353404674170751662300743357536134238427732800923579711878580149631135543192169625881253877630784947445016952569305788783429506386252736582364711471664452238611419732182513983750989744475126266426415237417414002536117744137841245799412858701244175797494652602161626643393052701711573951414238686861058395719618706078471663165661930424435665065457506716286769698084584283079023351201128226417325776977069972507507026436513099704298761902607324102196914769262294500201821881710860831084696155125454073749911302556053692501112407275296292655549732197044736801912481271226051223530286129130834440320751637355361019860089826991986452763267669418300878693038653646618266402800665891195085790804874284220494414764439238390875066195100176775165894990582424589556471156961796396895890257063853003755004371962093467132892774523791311542066602032052790684966722277254654815782410163175301677904777507055182045529918132159616409316354190241334288116260300556957110436380087978977176928166279777626101563162434669999827875240578990726503910126839280994280364987618660653553440617614175345305129319655759169164671623211132558912857763203234066090626492155208015174898897625386234831009212848458371439174281161474455977070476189483224515727985696867671032763560427279283369168816292475323416862912748068407004115565427746925108430321179178159313893127952289117648038872354805997143579710057370757198552518009960376431881575491824853171586287778036888899995820729272387618466235887653018027234235594840837393596358729518647185037867593241328771232951017551244916934539351500378530460286954620490980235644577277052980543928603087911637464900446947458195533308611371723164011879936526310587832548512223655210920816627458417033585885753743165944490179778861457508891744466744260683651445464226207313724211952033921890432848224458528707350558575233405491851922400716065149973869453957195168261645422857391946828621791383910768537844175126416040969385735697250953722495156524260916154821801138106351429605262781834278689544461132783791936261474190130302747859755818127859519209110328318148712550242368659375414386304410258052852949475028109069989680891448963804620225467236740948124396124915569260094209250131035315154632361867687747009264607793410471265165690456152496960419695916302786961911821840002815909551557303356811184165874380001589204594586794114117307838977681255630793789492003118033178199206731254195524120264867912734979638850589130059990067344854925287347212258317197951334058124385204281956559269366240272045151491249779662656230611610324560514077042992417814438941222094936437603160850287353571573905923448800093532347542697621278950966145112518614118858170731011405487388960945101315885875828496016720994101827489588897264944304760778026859040840855078030183234146849848181763308215453553544227612840007020693730354073198169378078713648556909791536858473018418834897801066066232263490876525501893780718357738980442414915730882121764533424291722311378290608739164340004933926837140690502691366634902878299754795393696515083110910090357966301671467261797250107385528036103618479861902937859486240683853667191634573005733208201603074205017804599180897681887684640028597970468786897253718126127731179212554816067908012342361773377947209920101467560295423176048634045316823213927730032052447048809326493995116799794488596430624309346814299507403293102458777944846832350703238791471317179141472941681195354184395908905037857637437463411777254805362187422349415786848369090290890319166103270041575971303152648472935716556818674744619147665949069336137936426805949119006403045629491699009945421907223361052178765504642660361869317632799026480628806864937836848055001894816154614479071356359918407957959446119462705617772532505276153027667780752690314457610367610067710176661922290559166859659515044148749211166485786599102307771033453304698111102214278538961159122437860455608749553768915002309303419122502272068390997756119385420763915147295093667109328980682805371995898214084355141316672849491826634596724948299725878817481392318065231993268496955593327558318365233971281318330183490989116032151004783372177996345645275554943743946635250928612556280232384409275841285705159203465584327771042401943931361872093243752183600354526873690436483271518922458684239432078612062055794460673706536604471219702641071830619455379698181045179949574847864789728996167692492594660457329682400034271685533493570337358429757515535179863475647414873785749198658998568369277090796459379536209250934190911092943788602295810706667143194562308603718347548501045667437114024706771755404976300002612310629637517652767053099283920402103571017252496491467655975129313281456203959933452672903044074030702811537778124412975820208823556289853929371625411154018084673094957151261504360245584432185010125393488978149884968639455892087486727077608880038003139151550291147768489424984026676617133772544652387806909918548373899352573740640068537339303719268775770602216046639042374546695190756985317389633489843915251479652467993014111063426667992232215825019869924067775880640684396492492898678509740653622217560812356079631192861191380201138236179279977235088938121856553493200693053691783355887425970722678776183396976196014123303949694302932883819088951613115011575173276897802683868081357463945791566779137341985288203242543484563564576514744247870329558161905482055414929356278379342569576104044557165198312910472721223079715165852491072634105586407354747515999328604173073853772624177149712215211029118330679879165974049519576469134417747336101488563900749289700740402846590435957980309992531287692747199160595993949201414567475398466480282067534426124258707648830565965239757101867793345857800750858821114523740109414515333520078606943396489226521094665335726134474030266416237608932582779964380231601639967606019512599505779420996326007522589466728545014634720475666657217171115705805757652164935062861075304926288432880214818769862091191542507220619863944297277699716581436517342622509773116123728875945005821356059117748666604134189752061197308633357033378625982778793576065641123987565289700696627784395921439294981027061537685273772769416202588130385258788113704540279302392312470582085533305686167688609175167935196633155071369684792808427088478073546054291183564935540737156509352932780201392957385967301274570476406943747500384619894171567428246070339357274074800943581622004802870412140707281427875226316354412835378584928467473399997750205006241463899835552063787846469945811065681630372556565874709963730150036489821502985973702800562381634029311225456669344506070220642698268295553733834893936516194315008279675847126820760649896572727421203224665934847532434493519653216963890189531706011606565042250937220211663240797453318263814829149208576380192698256018232171372936214969659926059857763053465783273218871080456995928070293927515268774341760934505733422112141011107319641869488032575272537733231889078309961815822054525214671853414634964912845530248125396015607352766294658245412184571371434161148734885891147755975017089691156996230124285329842870460859585777282796536186436399136161069551594952992284269764897049880900718414736630671758084995905108327862940088088985132896464985445342598467439518177228789640209359734832611881124375861011006154945677621394008202910191025974532742138035231019447995796552191725344042991505202353939424320992097750739696163114403643782522402504572564935564431683844151959484249037038026507598650777046843511447897065706152355325036060000853919229902241807824110420751925767782905138602937620822875374380925270314971286744537262619531296111095013903179894940587827696620373379474418410081089970446746159642915486874122548566880350945326413026089695483673199347783866853032692169336095795370255951547752965255342105057401673868384521588228797339089499698269694498898818814635320344406643698817913504519578935318359729256017651329616308050559834845614505973105392208491636485287231085543030428626012597749273216153916979725086659794523095864820784176615898225778736496518253636115430804577121604215978699995032097555065863518169529638571647603462028440078178900161165431798720166973164909893960768592546143514182164164748930373999437918412168369963452511295702123677674345481756381168656987203220391299120403141857275771864296885955354083848493222468448408738977654407707397510886367937224344458984006059890643643555146748464988381484676909996824673600563237012149281130365929571495365155759465399879776174890022483089774774300047007061221779504936665034644626801159004256548896676300700404343777420613464735728962138728481197339423987485924393317183975478786911926353430912714550401104439213325239938542035303708516581183897333461200124316714838081917970141162778413229964426327345163815846808677209989460583920359601001597389791145235735798186366035977816126615331601289733347058693569483189821611388356017201392781414769250463664838646567103071242299969270388506969701170917902417564716074609395756229640617459548614944572682627020177831942319859912257929081458546909250097216977461296143202565306703020641949349384854011308834673864272821725524270873756835989447305074718778754326220802602654137828214915902770253358208040489916939435505979723189068109613588603070150450234257217570743705344930625896656374707364098674593403510812915854983063398663747562596475550798000652316322900724920904320391072452283379856290042731225767923509872121783855858771739816419630519348787804234221959883609227581768025617797315566940922512829674984839348186217042536003667487826926361572337738204169358861320976624924855145965660407987269261613602109173741946692104913937963216703431338362988433495568780699038592119419658280838588172921276645659039820385945761953518011362371759579739459710977832601153371479462477030415515981695479913391330003491669166394013418249682959121935628324391254095762965036676232138371707159220121348204944606910034742056312546581665973655440249154034809861318519493602160660410710743663509231916825020877118396295447081694643008403785600138987795441228457671866550884559548149451897731408716111277823182253881469307608787801204456791257354201657384899718773437118625866453298358697539041011552248794948006735226641223027555503633774382350431228310815088170043708147575752883815192366003528939265835901237003176309401421934745735675499945030166457997008890153521386944389217238185794280174043721107955015624954593150231039910242636824433613904569069248385869413544534997929615907293152151856887913837273890522479467073578300427342757735913310319671004717224015395319665566121639549606150278798872233699117285801330341276784701989404280322548638845086169331825217539586728957915750016443795859665557293656388155670958256684853127863448455601158272144429611791622599815236461722552370470882085539678461574699274583118167853711107981441803408959401211293883107660472046432032787996039408582035376123905150195027806681779202035668614536301935056384131750905421983306555151461113238437158597908957436997490497562914926353278443307775773047909361706224409749028959845084759693974012490707137389620847354761585098974886018161841731652628538797239500199552571768432793246270797172683794999550979602981030259675318030499245715923334938912573246967080779310652509055021241300317644935141084782970318009494864058148014073486769956153315405355260275665398414662276333786912979542086869948047018112307910876175515715156991939757563458850789703274649855460496739010372408709465240191493638957516998665830231351462079141907298878642491701540687682823953626743794158789410947235466399979102064642864294090474391504395962240626559072015692192396265230288256102788639778552407847199828951852069852906927110751732128365543090802347138345639381882328112612356290586963647276206549635948632074162706818646752223476587482369074436282561794421223422058744548702098108914787418672068150718778673343380200059943636202341409014606312838067907516663752970545440697837128229363618716062957467072144260340914583912812094804946038473285288050527725697029926676051222753589943594331549753037240444856883539094053228731518480646931668897030071906162427252139605839941997674971258373856092560618303443091328729900659965328206264579827561590821036992772894474359952536311167824850061236082298331299326849846091638794276341814832098418647405461451274355009479187390670364440916133075131016009217028132925282542359898859896016905688405741353083019482504673285368878455573265023172040731195279101521708241326512994004445126829448095558783906369561453086391335127103313626666716044386517266588319227039301475328899708748785169135885888830065961118802475151104481012744467082428874142846968665665274761847900063249773974149695165023395108481130945828560934444098627424530826558818256499777118095870712761405208850278579785610716112029007856025695210007828348943249848931544306277812401901056551267444534750585703636441566669107780929053214564414147678008283955376136005565959532853313356977110434553356865099798604656081550206949986114474612163986069653350981919010666703317517667030524226176503744431689556702511581913835171131338005221143003689954656496985144075803635680006106781628918509900826022532581288736718620183834673444256321484320605415759586936391658874311631253440824709169070436216167152844226718421044216715095062646672252021130210500531689665050672953581699858363449914670041759839106451643221116764803684214762929764869809171703549560154179254345393905923574902667292416579797008424991751138903795451494171465653511995928988545829044633323186592745122983627467916253801896082197901774741870391120966725516493013254789494459846735475323386666354954830421784259309486193940956809955927881720517296659968304373766958219886159273175827732199621112537448621432571744193571672127265246597987090871192920353940883134763500019711710080282889815075385484813986532387056146574072273366806060424912053142236947549711502506131757869269374887752191151035268468221027825453780654982519173571940230653708035291411410549901878935941692688922233072206834911496408426412807605222269128650609959861516167041548577919780105475209404873739915763695437047875451461466583949969070118665517705065155694049481073522951489518689951609886821270826906384238783553380995988712043543515584330301024380857528816686798065564322113130613766701490653264259679415114561406411327400283884255910196602768097798736234177915569067048876119078243873015022966015887067414074577084233726981889867991569905426123058573185995184833811373097912761879783165670595956834873443639033552506620500470956728653316892304603922769625542018781905015793698866926843852348794847977186283226258199759717256671342104738549317983677144661564538219458177868050364145517585715670059915386542465351695616523263755057403372388213156413118163006637109482749751996758887242747089383099603416943334501472881535929686788039197986860617920946622612479075213433427470714231413885936791641436280861993835686953986945258651251129870207296423159071198444503209855281633200003825020263195789064282775168973972136550679765311016248034539524663295974621940646189781578630431077604549093258775143348988731638564413290059002032675257668539328018900846452218001791399034412159919110375724649904589391292167367476415341342244553535797916303413658331912294263753861001421883752697128927349623441073603645896538375972397982550897077295836112975957570185883511655630959536294536255151554316922943037274418017973117054420270439028947362538598995508652977358536451347039633614561029014125209241353331782568387563278825842261233290008584337994205679752366657124258815146330972895167534252268323799316256915881448771424070142319837659594828479339243942704008132232171845781127076177826831739204601016338845389456767475378514177614277154542838651325455575339338922633013545651586698605650223798039955257967872286300802918265237822275829126256751008393955518404119130390091635264898501814234522792312606345302725401526961441216875263461307351907873281012925483514834138767796149763191320248410139484734103816176799442890411064162750269249712313213625286579646398673638834162573363817563770060948296883472122512732930712615353283931454103611006730279205631293915720532222619555455522391782170339814253078298821538598319022404640430146787054508451897525398801327061976927542751409443075816113033012040232930748418800825846658499884847934717238292758653236630418471971098467320758013738152967555595649055845718384875033223396984090823866927003258092974594322277370952220329577296438169636263763455071765021283784572338161169245189471144488983141381386194184332799555953683930088055778029591906722632738881101491805388179109147467258365678215867803905663353045695891994261761296103818405888302736556690941300838039716845894015660291429171986057915519759013187942463528424529117841119502262920715151717665718845930897096526390722257484860616228241088976151670117691289152114495733131166301481967976588869392549945173015978961184234911686823273298230799730073512660867966465859861005771033455003291498535537305758275951634767713832478747428643426474491056609814185689738024485284000392889300137148239330425471528259165336015848980090962170349597433703881070450626419420541603695811813785427602321205969605588730090732939021045963848646767598833863588852030732193886764906940071947362899086753073750620707718039178625912403872815383139240872639367540101195510460912996392091424543663179526198461258152159880854388564528327172006006918294702797423144652486480097259333186727106592666505092720115701307954209061325235911718007275556989279836496749882063785191483841058798483355677714016507161066848868475727160844800719129851331730221507742163190243657982553326009222327346494152030004303490197982834376778729147020969863585911101517086397502959772607853138959094484636403620924905556380930823465693290759518241496443615487120665203405402127026771176118115430112093865687198533192666766654273754529759221935153517493101132468104097990835986980610073628305033455538649160571953215766173278602030189396819692987478863477601125187763791698885027224212396374082212793097356195244879533385321871434588425088909262555525655212675237933950655069960247083288384594298910036059465804431814695907391499818179203986314539046172354571976437993730039335804085501264445381034223808278693398630018780171212420878794091512971050023767139051287051876494407581617648057334337144857215189183988276346591054770398444397511676774482764811572598620119848396343698132325003959319463951405173419098198067305540188821770853552593963573153293499407929761672412515815954048813573096923473177986911794433207605394621931238856398917335417531561661139139487553910480154413444933750950152206946343323015940894824410260621502492217882322787125960887667194366651966907732050799292604996682466691916881076464069350699078342050096247928333342354357440763580050244943144209695039728751651352190366616901770754527421102305204139850960040863007478778942303953420673172850632893237561867726318675978958182560414285836391179835774406425678921280504764387115311869175609113423091554756785372806276360467799685256597292600681875021642706181982159530309097561410973286021631625338729466055480837845180535578594529032937315664989086935741340345569874873541065467815573851251709973017917043186610204795953636012412023148473685038438076331111270833874565055720915374474773307673516488283384461466377128090948109992794168748952021209847544539302834829182673056353473361738870487464003101751495246456066553577683154083490706409059227433522747160185286772138004744617901936121350063379527134382109895697809255867611568901270585493359688184628690472941273524230443857171066211807340804955463387481367516424596406250317408842992240556775529151064063354701315424552446342266746637825076371587436904758120103217933836807632818526405701293272344675003925809569133649151133434523048600531799129131401780609156364437779045327774819990072792453696711351084696069820345562288496328962354293925638427223590838791323040486907279736361130061085599041380797886888331408235763996486242833203202853632157577470483084662738123880536633607696764991381710106564756392472787510787878200757418747247253638929367017948574337538656792670571415630507114673507351383803793403689633024450133838586648996319672439234606424701449480148866096230760893262825065675205666333207974685458807964591052131803652361098361398014518420127146331165979248218623284986508789207340511522008074947115043113426742060927258976959775906426351613039382084426719629942252605335429377973723223474293701072105466856213497776015259643568022639344276620499532694697635734090950089984318229520917770389167938893242081813826941886016882898265459865866569909827690340849828808635567264344342338037203926502948727224269486742664992524519909056721309748471602804739313600019096697293202294158682855987512628934735369458442376128964085471910557355143226819876150422626090761651621446463551908060728562181053683278058465291812521196146225199873052204278516982333208677431560477097229385194100616709233861632633714030498271552760305558048696587989320911047727224528308378313674756323477261552820188970254555788130515744231617434613556236901388000813892834704008914728423577016983337831219391421394113639424246535057471870996966800472554443998594556406857188243112048348569038816557112477248573494605669572529787964778994461265487103276089524824693606601376523062755630328385296405264480428101754423393163276310193020914030426896034486781893806861045322215409759444991969535046838416063857516128030150176620707904701764011895285852401358906417964265472373315741259502831260071623175220563942760504638176923882940651435570194065029081877785459358273035129757031446825980785759645528182375945469278623611092129236595086748999649933542810435043982731824779668217811074359504566586678479013789417954815091611236337916586513232669388812768698095978122749398122555105158186980567291350258534157626099502034362891537094640403131311310734889289288795436094932775227613961227608146605707007092597004513437459532612698058482070075701049485696109581056287343717199265733456606762861888795498423155769087449296773306439856696239015807887944867386583095233932083745957974499145710817463838798468160487902236356738892754186920740207555439213115632522766078841126182368947579459478395173618163149222544869965301486389218915321527470675534815385124310994951795394845549265287298577516803145468672471938667962238987381629690507359941835140361226607198570055690154704532901168675258391876424183571145663295728832093897550560992079423406116491244478503633000141702819520963920434997300626766025566142026019935833966399813369306106274518725456196500144113643970974259042013444120831404288870672727587175802596356496071373753323816726527156680126869395088926919907831022987231102720083349835983886820904718846898537430724029834567083819346898591747601685424309321836691641553810134867516487933383585247672296778332107365496636753020977505946016632010017403344169546668676615496070537608601969566169404018631197933643188528719889121454362410464749483916397977439615174298489442499812416178397512080949348612651071603441863246702081283388313473400743469107066013052652290032614827505053733875837197978420653674272601038244143583117524125848510910915899274425985196505157119807219055207050224370009221033216796920723545740743246021531637471736135153206589154545579477569610552318941027406534860129929637201975761348872004784733674265369592137149855513967441026701853538522738975302904989415967946103055858210789830918284880496856622538387889076469293609012476951451341351627401206835152828182058874583404657779713543005720395021258548031757384689408447040947454891858878906084762303122438497020095607588260824876550326768561329530517028644533636673564865762995320081741101732655729792370242958487711536360257187303336534091135029650846591974871415523916929880940427972312587229145544868776349047377866588355750287403827168258883827693752928099759455946471278789527496217354118466968566913700248492227532757412777977343944263644784649038006888441206017185169720823407238324763374910544862856334087859777274210720423508419212171368930681832171605222077108541089499003784112304426747501478223071212541732084846032128202995711945659631904431973922241779141376633019482813224254127728957216771444523730255902870367382253994122345020659695397496943989888101339618183774446738844158351990972341171519810350156392037234813462511586954757357790818872899347883448376027161899926028019546904558229855351934367251634309387885379927262713468298760435824445233217474688700503101568639530748808640191808560571587727269140024007794263580217795304981013178276063207340334636688407399486953441628438658472322498571016719805860513878103004771927436332698949458166617349420736655854280814214785998196582463913994090167835283612700812123562491211874188255575839251213928478276225489313057739817083454081099362770794769458138217408839009237828649852588600295270582423862580169498978118615064747347490916304293918031076275304029388074395474452091252453406094386380249065145362996374571846130516108494888050158335983439498900359300769788322941792031520624934337974648211771219523352998824830939257169884096319330297864495894413640513903288086039130751850372730015843428612389929649657588265957256867373818245610650666141471760485523094777667726835866653472599698717625202453735700959657568810633526667095417993344555579788056874798176093886221953071751595189639001913342845602834978620230710797791839787379678013648222352483878453770188809527608708228490458999136287284752038367380888569972304370308264803397775575904988543103664290172210320150367700854173351048912536587062623007089985046092435095188993851393898689902121489178926512893349583098091541606035395828301622137620583180718092406442820474893037580481573649558619584902488348949930928509987985873791804330668489314642424573827595592351807428362688836551906727306603077139324389717597926484682117224102980141842164817539813495806833963622826567661141042242141523325533447663488669111465960473013222258778780268476086309008318529099172450910486561065176552439777122897129523607098346417242155109768117941133175071577676674272341836777713342225926320044226212103427132842878971453125758440866105240097273394095106826393821711389983769327519658072579790443753294971456982186416721454923037309697848325622586294331101570454653076185506718963272608196105670601658934230539570207260303479163824492089489362884381685695487272582870889655263612551697900382904474303603861097356474574761136546911799943051954207731546390595645176587006214350758859308881278145571106762265739019387892283267103053388533061362022446097718677159105012223423471737950140453094245111202372885088626457695782404300420524911474707168186071928330217134513517899371558351804312766355021771607455749361706785243306256180422581628791378006315155121431503467718753445951937165694902461460430993211536600171635140200815971125289327544785836275812966665905692227854180496451567937846494540404346712225524042189769394681954048483272712830455165861587695009971639999925242945575661245801097229589523437788340988599840250369963265934184996854482206984177583995454163711890548024249374855042780711644399027016841861074459636868227127836865759053249917856178549537384537091019565681795173843711482663093504222165653847995553762986209180847911338353754132551754593238491302434891162530024883411503269574389394000096883163747096248973552016917913672677532841589410061356426642777462196114206987941767482090440773999718090819178740818022467967972078135318209091663324023170408579907053885086228061297388751584712447087461305102241609460803365010574071332116811220711105302142024222409639053194692098010680444085990031323829799248085638823420491534791090189943258293923784498851157795290490078024803521493162195191607508228220924937837964899806741595951872367115801766371380779099724928863370154707737862902510753395632826451646633905763958359775116153260684234055682725215423044812828480002443015102415286896889806553018847163488069914375959039359844766321978441338163788298909732019485781097010122035232443782401338220825890883490429379591118933676979786502568519385557404865889396337600756933367919330746127395386095042246011388618877949055007636000956071322760547427079893378591113863997530342091609923414358078609942391098334385761978846963032268349173084067707840299450359347721214851697106292182161026275734769527292232139727304304686387858743808374802800510009161641052750501603437334299862952811925834484087434557632204221223612074453250043140220244888676926832514459021678888227185347083416809682857825030323969511819269073610761734203488692721769682919834837709298914839748976244223650894675102614817493560597347633297279702197789220175141373375430048847440119683651931660743660758908559164056290116376048655574186018549285750979602566099628356061608102397427224339228598132024500903334983962463793688191235147435608095344784044389117318819196105693216833940348517630830575532728248526202657262615865115726453249620228931213452575250628791103739985619810518950624836998988433440815110612708922263725461098501488217914250634462150362769232351298770098358755457376565893417003783442876165292123453140809814497829546408764591969660976334665985169954034252034305038167270757140359846318086850604681661645120948195538417819186697651896134081384806387745481908411743569091140915234027640152521062376585059014680215619920957464542754191956315155542654229526426541716192625857617535173294482830330845301250173988369518656073259017252460923809161965161606712435800927262682932003693007824221755172320128626522046681579863071244163655727190072490230512599450431093668342024052100524520978370481032639777969432173587672856965976128686852427064055505559170861517542478107141610050204663784062891434004901504475801177771304678183606603640647444289098870039563692836978953791994465857807918897661689718001749492332687826453457643420170779176932653143754423900319825950143428265867601410284392242980116040362211416425981887844847101856993962257499859301496898771882662370835056752497000281932787802139000958318379855281341382665493574623498801600464018305977641625127833452743904402112440884525993605931972148504756512628140741751353353672010887730210869900175525821025921327141393114273643792878135961831507745575894779115861464452918107551767731965599573778196647205110683110592405074668541295780268603766395590700827093013355124790169345844335413942772631090088972319161005144214395896932895846125480900141746229106346551921374150540675661977166863721201743182547919539705670545502682035295560421520390886963500561862391441457249780250889675797348086835985821854187485802376251673001749128672477817702319963887818131020233589757346898711569435073130577025153171831064274051927193001460251754936742845394371887586619811967205828292446042203846181260443825018910485315339577610813408049591365389303411157492732729171024392771765453030668467669826108429921740933381903828118327742121493348996114347170750892555479266981664526680921734409227998054876300094061695392291286123527309433779689864687281736156968706349693231880764355241265927828713165059505598639934836787910482312513209765080554958766591144848596477276192443218834326546703775373180282940283462722176705640974880377586774468548164390142747910451663342001650616225663978756438159558686436495050300823539594659897355621080537398405013154335101661438712196600382018961533941590336822690324151356252039642691628646431656186198531617750646941269533224489390882440876916888127311443532925865847327797977019470587148604556634604345355970656454088782894330535130271226437351635526142516996517360186000941020456915653232887771257624522422643904374211268032526609943225345865118613071474284718878082626840141367084437538020326315519122137266707493377358130032605559057553594995141114753215228147486261354212518131476818466184707278897763875379670418674531956680611108606505487271136126428146193871630666663882869250221477485310571435758932323990999682522235949754670173612626068662511174438763334863892521401852598388311901590829990508505006940461785940411832637680266488173656729424544430241942850764420519665628814075865780459612546037617776682226231828273765345672887158127359808947160234578617892898710508059245824118494105790332691932791569526410768308268183714862102943008782449114019334581313430443532485498864409930809289990995516321898660867983991561851044936322944590766554129846968043656943132925909086453996992203501410716108938114672829364803023651415413493275427613135053949199745856427969342600660888046095644515993595169486667741359936707073295353830932040026346979240630694171193279979281466922595746794719455275961463119571025084930764556294483071601736004332780718034292904947526473374563874652966399299089154298159772481002129216731040090010091673576518553699432690374247183734579077747778719593693404582699119413658594312869855035078710488194056361736501652521648274610645143484001926715903170818413371090629659916780236402990971030142789388626943545502089370043777075720139565940172899657420190562299288991808850030333774933068738110123088413229442594031756055395488377875104085882511758847240280909263449134117438004786251345961511495639726365741396278136566886245699260769083405165389285199554878476589623428933275863052403241162100590411223449502986971045832105558495462727247060217378913136297863739799723334464616366482453014381738774082690366943535174657578954793374835387300878459361927516209200302872071635671108361263816937294296691246396155552847816698763219478351202006825344822545441806234565179088801030702417762999211229491423664326944514750756480916691111379908513922631137942509190519182305602586956608142300227786311265456517766563913491559082272583703934037532579864872767685424565295940868333494499395836266414570962129275455629934549449026482766596763976184462216037418272616964933082766670542063025241150609410793538598757721540214356656747029004695427990824695830087868857293405161710372990452608799738088694161685496435424595346104513824549035675020964092717476744592309424179448773767853807740938968663812691891416205511149933374371703021071621635979693007750046438581669021584892210764419248343687712545006227374480707290438087207130714107565551739238036478663374011447253942461824874749605873308593985738843618933131003524010755637121497791470265240710979977527220034395425940141068507936224804428795456442166346620158573312121646169213468903377408775213678501350502705676110786943699896699263892024918317042389816587275768292801323432899937598119580197954144590115209981590156306226389869236021005024356926557237058569279864951607272748332867072542431729296753913404747807950803416334401571377332928744765774743805788592604316054102194890388141046376833630631461192713860400270168432656251682094866614192034148643898152057223048038224548255845395081331726125529265277369372866788230509532295653586452826570399770418832887696183545101371510051659851058676640827725594900097635433349368333479803176544006273755023638191097412999843638965415700312693922232846804719360444812307179414208212218246787009289438405444563488995925457266258901010211037121159895528479197412623770938080413557556204084892712510544077851206353797877085470255837359405141334491089609276701390385985314453293218587220875743347852722953902979416700848903902498166719395112107926545568549037281964178718094933237447199363705163050598776966895533737460291453096501538227020357904716363120591019941397758951241762364104966522764267675262770616334516736692439233179346728889325262005624091886855992363837072123040518478133653465602070428335436644259030497128607177640499072095859235663377144968800742870729763749930256898164062860374605714412306395552134557241036612135468942426983139778018178631783475099494786260503097553373444456961013903381521250207471055695077907714811103195412770202395584351733731559951499177680639750965296567297485962232015893599352347942458161867793289144636175499867852235235180209786974799362032424954034949675156036721711847430364050175439095396032855164465264136167295242117894245889231304449948930545329643391254992010698841356695096069159584074928544080819788338729863021243946452701924597079062944350008981940563295749318866210488707568848473090568967446543962071242468474359997905005279057072863169386517656903896303320232099605268463131138388907382586035560542583054820077134569720356320009427945629453576709583679396905104524368345359023210036731726270357164204283498820608573798486519488600939811115039872276694440121333568687671834789377101196161922010020885356487312704671095271806944823235040678734066370760282745804997174715920125337542098608673710444826517294891239972029861951067852499976242063018811978662153452204569868470148622144028926643999875604482216701544517073164454475264159524410631477455706549440270647665711261073894103350194031755279280537120682396725929672876010455637861858102204791463199668107769605838233624766249877854618324608267421391474039931956990571410032541569048505067417265505145119381959897197132547547842483573859159790428260018748126636052431691742186647152169127373648678780042501033226453963438999297471251103069485068061571281112594619039376931020093425879416375391982045347756940749988504301769689676436262013733378542645838979417655703063371894994520547243087233494877192514059492267382461407103831066088148581166479197207387028421224284573459036919094036892188540372420155492472251976369881183061644714158394400268058338682848382963248951836117652783710248491942887523847496100542924049196228332223522445288469993924702655586374821389726912926912350361202884242495018385858499525880139638957127080069380825430910525938946865423855867086920486674336862538769663754367250487985824731995102513049578915842470861711488144352717212327593434819789629171551230335679677099233103694596491936268015587187814157992026276342022206186356848183223575759043959795200713609478084147539124502131567018107243022520823865566054920899043958224529867940296979150702480445531048481140245587866458044043506933288331190889417446188507619851464865235760468332897308654790439796223943684413633703100331986364785760348507959037756019416418948305140672447968211250285992303974680995580694784019872831227015724712155819662839623959563177695079161086124486532623754723616975817969737593518544216298345841234443136138942578328114382755361104325497384541681112307602075646507253587052292885138479986207958808492881304439534047867598450343480065220945263701884345296706530590715125080037440917440834356319383398161623080018973925096294918109811246335913190232063422738699237519346028104995549927936082827311413287634071148775525910357941493242398289948062149344829767491442297261252469939272563893383596907594085800326055189383480988474389559330289139328087595772540884432403817794747761190888273708485525649513736380834599690019390362212081524633529741483200358835116845653015804998019187203497949939572888777218711991468758677004689449055265768457613105781653106342495976587860813626204397693538570964683523639611090811026341301377843581919491871889314728138576477989049186323034982028981761912307290658398818716439619588425300543951125559748602733399492163358296059790263727946288819643612887908071034539103740589259306993681758788393118094041079173704355640177065397892446640977193441138214070269202247183823829442289421414260206537322786754307487602029999860125623249166932615430694447924712860787505094354705545386114677738085495592672041906659832551741031396860554945586806115520003781752849641083845380137851205722644551173588710494826182728133988884409373835491969133463711167201728854835017770340625805211491115515591758480470237529399300008750054859970524533518305284599019770091508595815948371570695773185840432285607137126187396644235743817044224083238952270998764687833602727852478051770122743173918049215450946711267450219551762643788830373399188486638238353842133219287748235328903174019154250738280527483821490941271450061359739813553330724000566860953412667653085246288574187604172571703270912231727418999600542036275740990152026105463482017475965689790888246946476969394699338682381665491502702161915635654195577121681676204524187997510646352561658622373516456228056181345224147367895670803400577303389939343738968926965156391171493955869060670694511325881057648096617083643026982321161874798607406499046277763497796733175904224860238218439110864914751969256169941757573892661405696187275546887235557242101159417804668903361302304159885357458610968957767227463206480703676366115847429521424794270568376520955236597333266413772955646168945168915528659195563161126806533284135622922151364071930189282382081578390104137921576097183289366166075433327862990690361001135144371618643120105371587426117759567313230505351423278821655524962401111992387772261728963726680843395355224044822448561270887595304844482246430582760080561951210410326090079023960171511224429555928546880225366362273019028387105270903111290078478060546424390525344736799846361686633077421899195773127753531622835422371991103079253472404979376782338624614289460102142385989046107280091550791352061837763024387224585665898485923461201805844961335631248616209430561759578952583539034831296270365410655231033164456911705143292926079172352552258174320475580190442670151882406946635584019492877903517826188807842095392526672055624655536088976250848131863967220317171139749689475415872056785168738873560196122649137101418643852987680571134118041184199010496930228772322693618107141325585958086360726756427735489218374171127352622862618617824758596322076864699181903154968240746816652977833403547445249574865989561007791293611788658846098205221975449508678182257599084738538076680907721015391317942655888046893071468453701200975077875275255546799535898853602193450453851738743288549594608620872998476097495172356175367632240936426243979943741061107218637867619223206734220547996804130731212397769113948752243154902577971034136540067456931882125504260631198831601113438128347054329617958911161974085029440833178779920338986115753571477464690163382875402469414787491047292172755799957433278441671232243853998874914581734501863165970913852803939645875652036823958935965275773937264566765163108564004751685096122757268476028669895824579562824310444364257874387728327565436081332060196440846279937886278244268441048707194809472639255162031669773959404762191729628787260665439577053560718515513168481533353561624385520539852979449720102665818181075180983555753602338788400460075609913458948804476476576949943430989436508859621638376597547262448020774058918359460803849612343644732887096570824315204014848563221083100941405046859606106321351474046851479104510025061970242254311156674984099442625607848867776991897771426544385456510880275531831964629516522404286850416830067285293762066381584066897822387972083166753269909884720898480379824266558675950586023952958037241453702830562424865952722861920480785674225341098368212697088946743445928893031261206777852339632201445034005513879422093786750241821003283294071846380362213498682872427490112179080260777439061754632097491445810047881536522838623520577236386736673123739446287456003623649809104748041849313954501467107333745190611012875250365866195850325396214973576551488303311676691781028480381912963109025320248119990107471688660091124439618782360868038745440091338455575827855999913143836128531520140509792197050005260550532644475606940393069508629278829422410745535917915583914481517897468824906487689820328990899186809113328741645080127761106168152834507950188558418903253307695784624916089918298815253791349383513554673358951157500928298610405950325116544434824916532094430970849348453242748315302656357467418332866257880104198981156744944761329774398424495940823427162628311985955146546184729110695708110072450775116492065292696719372300268930200269440420268179167156596156420132040562016563332354625210987612410655347706128819085616199993612928647709557883885963881644055165749431390427826792956308674718826646287800784591461190436532939978108042223964171834267305976747067339714489100347745165110814634058554604444123275150889133147049590700636802464583550537606711453049189153179047654780631649995336513585935465963159113535080052491180798655577220671260526458466159585353934990601827619366899656406606692737384755973355721937157764981458757122882430195080463208973265080812048109187783698285868789792013829139933346646598324520753489658588524270599728988328629114469798308742752412113141115091987766285656029481015525361888046128354383721461103245627244348957448508614392406433139456255939479804741942626749100633379090024878225482090034005770898355011500824501931742319442239936158195167438522794450311887650281831510776740541567017116852064979883042557821318004241313348023444090160148473759739743681392100408555679403459439170684200558562944859764133900607950261059011114075480855355486516746231445697536221857643681065919608544749312537356758684015411197602996882386676811581559321475839827218625195839647383372722339451771346910346260036108091877072477954273466245551255207598332598507985038821165619428634184668611341570153754991212023155002465211592048758127702087929878963420666178770893089449186511005901754014921777105828030041345834979058250595418808613218583019234768279255296122570949105997300971506821925204418843045834772838764419494363794574595554674333631408494031003063828190937382406227452335026610256580223993760628523118581912068279379151403416905397674657082603637229153330677370702729248108181381995824537000040732327028558847384097593425747223596978629000799702302007192032444628024642747112611259131398075095092952507596954877128067942000164211681415539274683268592903715043650712455872504210075268363571469048905717543564263262248451858786742362188233433413266525623174841799207963408358521844195840720126075785969494156341650948304131936468245766812432573407556826105933521320596578576239638432161704027792426118371611053902934319271104754927515391867527741677095113246079901012793982302022700328811336958893911235973258071078923628081605480906272158096131314119330915591981663500135916389751728761085238121742498781491609271684459037809907087088939605920218001238277084151208982079972001286237866193249464537013939572262852986075936352658508425613320662796958990854389455039480103842012550418873284203058847533572064982434119217268498707618852347710134931297879569063720055226287173450689864051007347536605422712703741111956637852821814588161429002605145714893671919792625451162675836337200069203308356400895350718174875192978793306133972589292955706546689764961368879276951864618836638704680702331905626393455984207047670957594083409125702282359441941912681927716732626192902391533725136789602875192839979920479292248555377391369782705818150857324274100974304769760821946771938751491506020210515817362736162023640282545817324706777688183139851240518261451795432152787176997872263393089811235057926452201842830603484405644404524195545794220769911873848347616167032863899770978896932751092792791682053698051415640711430929256058400501729044630083905564045764312289173420346647558486472295973930168484693510662418885834801082797645529442584669284529061550886045177704149298664767080389135224456160296361231857474044543942070648197620903617102232210355971980188223225843153233529454984918315409928496961498986175692582297005473030724394776493242261013518337288485666429063124660213156815344278317248431747630515160031773139258809904374390228327119333788421107299063659702711028307848529337895480480667553536240430935858942453176609492691115391362046500314111904830749716570381889773188869785497010866003527697254141619037501383581995897882489603015532983882351872641949189457121311077250872181345562745366841957886430617756562782368081488322702385001175329795486917115687602038322541967368655806437390074799566846199081725550272285172590233904074907457441736382196817502240911805499964830112537550443616972823950230511144496479374182959393354349442821935996971368371604896101113488361824320868066655747747254219637209940635690567641645674033730667330844907550750893900420034428050524484626704951079655455795987744091579460990249382841673325242077100055869300086977561415234005755967341631595174810598414518940998043256224583956142201347507031010451659582896808032708962068264073117903589960354162340177718706035460092355551320862614085227765704528011851411133221729699706614814313384825301190636527042442148742894540070408663761220490522334624156746390974898219621012657076342072389838546741994595741362780227146981467859983226072724703814225401135761995806661867515967877300162483388491220070509958745413859527458857893330366267653940264795801933630284776670478772115660172425691590960164946467967196747702739926505984825845740512499039800457513715074400517611372260129897200672885791479003153758002328196845395747263329912381305733822889476359854679576392054496662692619815967195470932363003480766209015345085407060534058740120175917269442599549399288888955181247132809486859273205136682075702723188888529521352510980563441517420109997876498994953806467434826589986738162501413419852153708505135022316603759957493078662544091026502649326949070521145550059129925290886945560284110164455866365091677475046562724852721781830386885413054331165914277317862452706819716346641925423221159694013091124841956166060434005799632013915783397984643326428901043149639451207059577653477616918979538625794941917131808376640112543262481449332015318283360534768507798183274515591743240778358294535634182664629404059833037295975619068197668810381238938192388871919245799191752080169814247685694016232021090192948866024861971388643262318535596538376691991611965519473920712415661323898324042720404374104221384970129483913774093649887830044445360985682778911739276420549970448453051661967459342121222699951691220018326255852869845639287772345345575523309098007158990059879881109910367778969991305880125245402982832842328145085146926379316390635176851979396493105065961466962084306437641511235752140730920022125477232026160610133285589571607455739635954388123087499353095912315013470169571841515624528343910485796250271553036797138620866969437488375584379780409085511511408235964984461922543379497917805432500083673862861141205739895172851110679089821818129231332869034731661794305122385918845106633638199389639638677794545102152599466988934156480889357801029556429590629802099261628844563893481119600500762986917080198348659652846036577253714635656910096623245452857221892295616963779897465865411394060183187423641834952085904894183557745215085434245659381669539787808021894123808107860988305369336360192495057619425058899891611583345658095645168857950382247077196766881377701237355554246868647460938270358043358426798146739854209428306652230304580585311130369626001892893969555479765004014941104160579597216080456049751288966867225444210481925193021973587293344304675278472369465811263900482352261658003235648396779232726662735984451059706715408752423333162899109363092211337615095737882138334536294055930296957780695272670260394085578432833379426649605264294330036185191748245447857216383916620188060217592466534075010922929502401971718638628632019500522934881510117192270618077731179225506128158791008570964482561943613289387345425447945119591085470433265730655011107874212325572224166605248753086353579574465235780609405678787287651026371327264313952213363494961057721138155022816702662999628932339013228923972695554483791202804642071753236977942807814171459968753540956238114248015070807245880215246496656267104444641644364264689566861153826143400246109464531817782574838253780230388435451010036459215775070290541096644945788202719077803179288800761455985493096097297358384703452555894397856905339663912383724998756742173637351906937448429046734973665016881143347594809581076159719133521001889147435834265811345805380246115467287987150903934589920830184280854807337497387789954728890093228632067600518531928751639033758775889259733581221710374726445582370664220581829086455973415495454478099712933463643520645827915283551388882667482650454570211805064520472564482348357039430456831859843796252700055777402999500522251132913460176843963155811974399976475752990718994569623552214176050790257376754672215749829469034056265847069101810429861509188524087464681057041567172088852333423882363189222199272135859003918835461489791057142241902950027232905269729221541177749944103744855766626900577569689918456372211000056705273019831106950222970356484479300614005013941066399532760025828158518214758671221150551300672664000486041189885819282677562984913145989617339313188250253313245495594382856479144977925512134942542144662977236598755353972160883155903359585743294008938637208052391880862282237601212804196525680934242609141614802342390515451828749324018246208302378987277390654508218620390627371523407001257401447965268396863176218258874212804090173987949902407475213357874224359195471277877776024718123835992684380389115060582416677078663464999298899055107267558973856915313968572077987146537020429173529044991860905813259811755774743863243362474821655091512111058961785264999241912468231253232285432917752818436554737934881900272903541389630025464231487216282405304545684594205504472297198931012140782247071595616519016852452341053768597661829621708530477786876632752733970586845304611300141676922911310782391829876351776094387071232131480569922562268567511207081026064479480102086733942929437243541995305053919352608451486426780012044256613967083735100722248478958559643985922928470461284664945214840848266228937433732230958618330950132576459187050730000850976072409810081310825577503391362807033793387675394843604816700434822180965537566843008225149096874080241334734639587220371639835240230168139539810219292529245483499326091185084226926091221414498091037764769663073231406435437691778114006909071134295444303181048293121369869070993424974492244411508297957502460174848910383574588692507550749429878336197067447316695166126057496636279113013212125702013098866554799551742313616828174060607853606787813119719402154058912041820035649022351432099643813847671933474197815347338984929704497130235277281292125611677108474357030297491637815188214665565722879306957734511501303201922891044301127011765375146617742559987469175005236664149924360242666532622478807321057491442557614225968532825001877953073209789208799336403111476837475518191562444794639491804798917239047089076317496566763287695532126593914749980790024285707443543031164325167439383660243869967824754009399432408307305848625008873612866872618918078565810986482914548146719665151945715063561606154032735274305296560102539132216848185388964574848729305211814134657650638301669663856596154665356997696392571417987986916016844655575402916631350249585534011743312500251134990515632761090099059837443023433247844286775072926654162322983187419207808130830764748561957865018189341063112399963812460992113918415916846659552489429640950026767749897954528671995446881582450992198037095292353449833684810581563172520241964287819353799523910062869866871102725565782107435060809592987010053938689034290061355430748299369306720242984277425646205732051345801671060001497546971828508891444743031751445270947021048671148044643057039440740401427243652149663969319956860240636922457174020439351332860254147391968777823959198186984382692776936926419412986184578498233225719336050242817821878219389118003768384617522756875075559923203940188030361940837574814514718425872782445454445807729460228923430321263017151193405098749194394916978813689789325345334924295075454111429737190108359311919868371729393480795010209233648560308543949041870335165416786002650912026558730667185222934074985577414471569521431129602890098608999170550298660737781092905767956951025227322885642484097394490103470294771698713044572105591186505107246859130706325494192462099435767631046511411401939573527804726940876642416582534507146146184911889254227594763819630876725129210106470066327660736197593280417924181491140648968293134767441769818977635264057328417942210357387805359980340131994942685218105979738728415317119588933291874694359111725668789990909162805854919044135431791265376661428988525246370906703441461426089196267010711279952433594451667245111317005756839571936414763760776436376620388260574686711658967663032089589411134932947292473901381112769699590854733720712633381807525534642964521235602544533582408597391623634818508010486419354179471702087687015824918168587985374252599709059689633904793253482712800005423924571722382757056778222019033371269851402813574316795054197047426588323991442426915440722625448124126818352020559837066980310540207770815169946456473393361648982172607439159701202216765645087308881859708854769257916801832138808800869454984390991982062060832055303149012519707790327319179368179933744959345229546473264840701084914233675815298240920423900093660982118276196703180772154362159187459447294054851340278964620549310721163753530737639100324620816061216751860373343060530888401866390535022939975802426160655940981224122917982755580615589591198472775206695265533406051353403471888148960441546381207054128576936885292583084187013263978992625755058099488226152698329349354219533004072989239153450449415787285526624718935796941159177419973825656873345511296972885884577692791639168308877322864567755098751979262803384999762138086161466206323144074400733899164448531368759611407226949978143327088041087798520397490689690887350299359138397054394706511562762641036356080377549162753784811781080186931894053158204770797199205223623453658812132765142640461130992595806957609310623093751064033220513100118133856410081673928959387955986036707665100226165003733940706513805484045223390378253993670894051424322301742413481640286354721407782803645451326303113431900168004039620580120488075897527106630128754579291765517328232262439157396972632484729753384708617659737227097838326091838372753404315904130324574913232514013738468650463182488418089778742749497175548823288367898196421736876963618442964673588371995236048500099515539853221903147847359836101472331529440970208082394171097193412339710536675552614516699119535449733642881689372471900971817494438770777341903165386157484177762829629758940986025172445296575509209294606464445333655515935094735530489810800092554779993986202819110081660703833928523347646117242112533699799811012469679794811060859694204485619011807014694973688944790259600655338676095401629050553909387588417816218314526869198097784418049793930953007722033758151173217977389748530488605532941204185766005133612481275109647216161756238990453908981649531724815699876641387443470140104090445465457067441299183819160320467152499836205656849265233317411293375122080824463935485611469719311428027204885085983273256629131673177777171625956676431015182679432913642172341064495660242558194238815906087704219083208913459859502801814644488458071503343033170887515802094864225116422409503864367721751617495025050884058098933350410912839543320749697658943289392626398548441024333089248434664225096693571426320356475714623230441023880704156973207314961959929936079008869832935709915900746803467901028197055490582562865248371659212019966275577894724020791674679251875377972093952474886792266122125763319057837631390640535146419414686517049159327551357511329725040584866030406399036606492115528390117984577442089988784120505381571322911375819899627867554926766964220917728302700690227851592965275613961050929374150252354689466266956556523834083514188009502422916842203767898893514531689941349993986852294346881878972077630645672109864986525298511452047601343878417774516726255513418893218539133508820688649558125712739621958048449109324384637199691056992804962574065381862223996951177776001591974155462633463195430894409571125073831809126329547977522791537141425973923817153062961946553015009400537562838559354700495837690219415458197043099892794137357357912596595679705504040311822154479404648411098872489494672564152462524048899911651063697942581056538527590498436355477085566946715767767298289248889466294359561091943293707119518354935262642162473100431810381683127413063434974097000486959620200022024856880857278934386440655021302923429816546736651305088828190277546536162812265352708419912163970337690626384026403503265642565288975675919185421950305967367965195235179401835047723642897105569601869626477008229410754453300484077438385078633081725779420821301879848598918802065529463259777542149610421833912094348597504225822335567673668317019403039452487812326446152957429780228105933562109578987497926722911492050907960717037087938025351768187402975738941862474504389525411913093820434775947169597935745002624653986390856149897336515405522030391027353421321249423605815566515477119895680401450535116621707052748753604871271332943499809454546442253531703328632961461677110384502695494809420769637365338891357892795837130458571242148085711170960854978349736116697663410775525653879193871510576524796995606566165568956661927762281221061797517226459692899420903138168099519361328460966045119116530199088703053263638918181304171996044827852101881231811284486600778675566178981921376701108326460698612318046221505052958918412824400804647503063178104551251381208709951953733255404128447534572057228394826924698671122537727919151386446039535571958968714605485455936589964487515435820235213854411261444547709950199339220292836642940917233781558206080354070439136038223077803796498805165280853218604347769573060857995888367680777676458955623192124756760590494882092453368359625809041955979164211392003992866339523486729664467060659265811985088132798176656357523000892951056421342632719673506261676475321557260382810124815364292629214747418593886606064909126288446487319012890124650983394652760394940440625571578743341828506371080175627949118509422198399715047977149407523752418197322639503757676476777858684698893827728377770847072791983090715619005594128023437189631076897145025661066347614016150982253037304460719159991910155167060121931637121728499486564526274904652553593090564825438386590289549851336601114106096203382142207049400702079341930935612655976766360480190006693120311658568064704792450004985303616099936963487358015465551502619068185943888402067976496042105916615099402747935305750845282044302133181775207006437919461113465371728822801946567481524418684408841596761181364136476008537577900639790992419046366429428144456055729731450946429947596697202423012638004337139541832552797421949465212614416802641973027534309274514063032522413188292296998104232746628024167981711215072525330611037752596581915765701075844828128693391370325803665718924525770491173385718147375928430292072309026613013180027354779766002358659147683152067665775088159973206103180967695040500895167570134779462440578477610006598635073907199085906903174422626288407163539268804669233098917028301848797304275930742642036160362708966890621509587833484257724356346309706948835831558724764803315651877899114759434074718707001186983538897938774542006689871338153845654045366379504434232356104823882299054152303626703951603005959470808264305947833459458311091111626918568913123079555745310428474700767546019536034158794370712520633799411939449634777560431942990255792255548227541351927968165343320751885951544085746108090677907788172590522178791118148579769799576137910810799735583359501662713991392921275762839362671404608398412599954729558301105746241618605718953144705007365418707620915538596119818179197363904394099017366181710798858363376919487390481326246174698352307310911821739138044794269965706752951014234560803223869232242037496920034142429740416676451782124106900656808015654787710732412279673338208401419058233602969135149060586416113574025172451368005320489215347377318060447435443121737335449575615597926335501899767593066307218404693610635768932818037170312980960154206728201783968759566866930386358968881166893197574105107501479081008090021174792314934538978341530391121522828866687521380262819099299380408170213425168043276444641188509995759273904793475795178984933354348391156426858292035882700139070511436784001812854909637238129571897693664314863646816901742434147455330817691372918007250757689783221223311306756602544144493793970993163738095955084016808654706558126512604868390955570129620187448961368990122014797462337647426925899509568830091362932357290218571893932192041898255931292989508050662054277879404640809239577103676169970773902808064725520175631385328100259878305184788245627493712680417928926235314928365391888929624427099578872080754439235901896542286667845920952077948658309435775241155205516981585668680601747974588098528985975635504844409729775735922533561270047962302282630439633777247720256818301917114754621252826513560902920675051874952443814335484628161021891148382608407447788163424944967914710106962587922304559520244923685250146801304807113074405239658853022727979647440615917820249624890831686086813496078769825591575044814051279617014833116404876739471277323234757295875705210571343803345026862128189959811721764511962635189041388288875892103268028308917676987304805621916239107940825540633153885596910058208552089704905396782082091401810897368411850198900109788271089601529551792474379676014901029331650846841237262527624789695132437298169918466537778679027881162837013439778310156130308030652890948680709193841375133949927382886048581329067737052457512481201143779516293487733927256554148220870447064329492510950825058612320943996025324601928270751742064480550375790727282529684929589897235128639574070900062456889960576460707228918914618768830668020942119532690257979837577963625122678523875516657855207800372011206040455137452071663809474237742976810660427575025688618381225540112653873589126066264415498896956311674585015446403702440453417139699132497962769083502376159641786845302408693105192742825543759037851151455140991419314882384932861029593790045232552792950655654532078330670452625812534969922174025996887102389046424934130141378921201546818099070074836776064679310028466186751925658315818515270638499875039857938926997052036104088610036681528395280010139371416383160670856766478841658994277636049217346498303447058452577564469357718498785290647040988979592647881944139661747390425765905938669595814213959979961102750424568119633462762104470200537642258611085862913461679858172966292314683157597175983753943841605278892446523858648747452605309123037688098399843621610164861003337743438508934144253827672415362393496735599628048386846412476635224490503871982539647615881465750250857246407080813810213861823227891360349893588704153253239117903350009604243350004747122207661662436746533349054137250472697335201314173540185492031693039595117054832586789155826735289328923802266759606525749783381671148152156669092440706526032636281983033666708331221721646106145551393984586280786870506287316779650870546152121230954183961080083822083223134163740220950386609181015593134528521653585891896542207664048747663276605839217051925001361312347570274664732060354669877891185772185707743567890573022786254644193885362464068918752436454218656390260326153185914656697911448402456675855282830862362552513520273321010297604617462671464590887107262053696900769367071928601528608608446901094435029326498750716322330028263188094000195883275261724837018427872058300221440823445312057474105159531736953895640415542578474323958781931891342464580379715718467898140098822715584000600695452223190023287570984894731321859478605051392378100563393759902371438671343622485275031797640243069435432885867609033755669770767866486315535301938030434723527321374549845080785266016340875709571891448438908520375201252644175503951626211407554670439453738704089244991763805831435114800656043111138481986492232257978715114122541146017901863627564504966979881536742646794998294962302730034389624467507595277555686416825486406208993091732191769378024137824284255203283509998869044532191656473127138464527405161264510754225063796785482007246256655921332213646350403327520658348684378872202611134105515057883891192859682709966917781520578924551085383156605722798653127622335948149472773830324871798430746019437872536469264751106873068271317487654577004198881257263832849813939592216165869295909840240184302128269256313497825435011878456365088655792805958691203976109318475902727273761788516784321283681972262583964063530305390012587589858462786482484642168122571713220164763020879133598638228161259032346879679716882289417906992719321693477348979578383487758938565421498125504289963967528277369191962200775934299417854541304954025054938365664257376359925043539806489211192316355073851810975743793896005225736524630040575635807298831059595465839715570759498197387720769307415787813291482983487979281504926639986998312435840138622045928925107954358089667902562945454294879330410910218495694333838761101507655766847116104190022182285947055400334141213372589645175978982003079382567568969457951672744744240288989567306234275008340590482645758466718672658420686844745721325756080205644884477922471223370222107931051100205384246809979363308100091217501241952251479620034208143135047732865999506960893441991523788992069771951265080445670757360355685115116130648023458513460036215331673065789357487312741328012340641812152287552756167002850361881955680410804406158538418030965322583678665946907694411421717178905510339289820446069480133864329172907433491108918358403532266017629891133506778278519637382718522369106409451753343144886748535201034427629675770729011954849215155680852913228387079642708380250948061293300815647763537511443649336642078668545604488023542008184113004958262487736642017375205235001519781326225194613542467232596629580607517198862432154221343862995521845558050679801309437974571324218995923174535845671578020255727691566316310130518192508043583785665829779309112114760712060489209092109301660878175660064269961409911566390951115771003653462229305080790674163532306852225812247805491424056440840280807950570565591090910104774724310821562568187669782273818045225871105700165563752786062317610982124263765872263544301155887191212380206807905313449787533365417742874801170107454251609193029305862031172475451225889857781698344830291518162526703386633846425549956452635355934211400299006168770451784967024598354068105317546131558001473126847309252344014307609037210588624407133123428067973093761190537989313912137750072631065236025820942148937392358146559538913193760521500903253413558921957080815250780714437439661195210598931685990672253849077451178603042350355424756094332643225318839986421762404994161571422176172690706389800454268558098388242977602375375101037671678039468246260397543157856677098222873627919613860925970987673964143725750187885546088425070374886428782010501890055989504505886355083354704995089603755704578450930264043053545145907861424081064642573877062717268399552492956677758418977660094998288728328640659348018896223407107519500916985434669054902552171484409734617182565796276927556267565365253731829988374530122728841758773931921965557745999629593682040632580331478417978049174151195550202590760993635319289485485600158057338105189882180901398698741516522235905561184018406853707988784678125536109548230938312786804498490546078471154618904503904967759870628006223884591157489282214607754725495571020142451410249948204001171386227499149771122065602148542231085160676697381856704733163379485827714730042252233381485870744927315884340005423849616927887566615357046173993440631295683311589245388899059980913294098355043355311099737612311493987909550592962330537460374758552770023134208435605910293521085188205849347180737891712693307623656552012615259102530801399801069380030504611811189715435794769280739317382712711137849275795524130887474332546263970331413563436310309810837217052529752592266827756301610470998124259559905940684281091889889208212251299798215007638377523486821886805594367139991508402291292295559195979779605222191954785434467224823399116398931700723401867194125375012972208040851818305615833897935525474904072592939270171498197642752742376809591227349599708792652663087429087161504153556852686593550375603419554897208625727234154944734623511871243999029765431570555324519924777463885278138813309921666681069234610067416352995396064638321562701511819652643235905482180905741244756204446747996933785492722900624194457303900917414896534085557854435417256108287980331675865060376154998455685928946651175889122972540241396261303106861737538299984475188696434773494274432919360589273231121606338780563247693014060847452562925613237985025174670931928424814761168732392522166952020736121801957916187882003285535089399493472507445711706213414804760973106715837150799428784215025847188356783793429373952056435527075016407013105230320710435883143319914097670661950614758504476330125303407325669904608883827439009963560085724772896488065102954339889173182165709891960605930371604718388012326421400866467182715712080808445069633264442467386430688262586458556015826830687219394995098656289780008918805537240109264583281931183321946524832329525490398085176734855400983601715589923885436870576256873488599585381925420005514514590327123405875961755154407371180678636515975204379628834368672366633064118554900595946362313693486327485030641284141503069433490848195549618261217958063444308373640840829054455406290406031844703306841642832881058581513264669390555987465662438310643033161486758103904243848986865446157432166081280184829693632645615060998323200435508588124135224137171004778860784024781938268730895957488289124050078820909404298293354609157155391411406023076808917296553404927574629057294576012077004631035873052526960785404806903196489663435228734680271142685855482021080045130290469473820527263269790031109172007128575314322960046542843022891373572998544059506321138191952297132116049609428534669318413911909782808434760322997268972633414627601635291305611091190375087452302950482428526799002388164870048292084448834679214263509756613896768114074638093903011868488534121104543126355802885566859824585091359562554387192961567709067440372180445453927501852577225345569915233460723535503283565667532635037017874877543709158029763270875708361259584774626767411297764496535610188920983870977352050758821959012916315236984275160877583817335796000771459164284246522227628547789708139469552276162845105065693188666423381256982965624839652445839297833830223099578346583095605353547209547774420844598617707890490015108829608732560194843869982570277284510451361413297265947828363970005819206922256023140036795152105961620940838769252071632149134029687537838466776236380051969330444856728076640322125750352492621474947185574890270666466245555217260292742325447936720842269544029959735523879854553291808878553219385370669956412641433641649342562427640360745217647972361370651089047517395783698039820453870941505144283697591277974290339796754629267105855056408662141374918095391074891101188163425010006965801878840948341173648687341301096734784777136643347625936091186761791420469419567266522318484558090713213963170845685259895358085478303150025192565929771957530208591911110560133980088139954630475439932764193705778873790043645893169609084044916447380127832359271515981207787034593869666263924423463338547164523352890448825233963134030448742556135563009650705824810416009085383903557255462486266397132508997838531936722809590081374451609310443992464035467145434030466627550029831234972398890809196933337719078288176746396964826496802159195741993828667991253140151462472291002398505304327310583564618475614404803887571174903363989915695909559671477046643591802151401670305773041008610617337637950216926263132948584649147835296904808188092570001710038492986072162080326242393353740599524522549416163199528883338132733808312181773474968040878798414663622621452072659427770571831038699642401373144044934833038482907719250381748947426630296554449614656992283054415636480795529840460354057627598044617549770309970876107776381336785631960295816204313935468908962445368780146094461134947680867452999485839884636628642501435062802475429636616738567337117784312671497790573528324931343070881542870839463233191122013261835730266361576092026121826343522895890123725057851837519035368523447639181704553404222900227023076347531163166043441935915160033303207161726789176904958628219851968271100664633783266684895842805933637156004744500870635863307247033630647820435521384435185547302514614314021286897414647626444053408708217501368475315207391876827082698925740779566455824645989124491386426722699806607581127140190134929411752582368132217761540897476473405578404776906796219699515206911128983068404802513246945028507992589057926334613463811802248170574510205549952365905945992057933034829394595741999320998070221722512765351084531088397795132828050049450867477203379615133469767644656600297067562022261912742999075110683580081798655483175881529215216626172338176636324269304411597458921848616142066182523586036605485654825370111339172384221370740300446139086201920554241362839993697799667269788766029921760127656637282183787410328929177682292093694725119425244353023581039574983652235505824091957808873434069448067435228795244517833676303857879856621581010302138158831057728117427338316976357419152606129302237501840376037429010871341161046491039336180860484667238135395735695322530701401983009766154156715881180889049351784686475217355806166534592434192623896015587212222316778563833227043640829795565782820215553228494268650045879029850215980648288247786524332239888124054597719226440060367246166670854934203854031789909320288946196527737183660347320314423581137517811500865314567178954064492152769873837857462056442470327247716649839090390261053100396070636523813700594479078158198890358158995529981374439025029653899061947655462922508980547035483621323218439866165345382366919940475435572225874547592577193680258290677725274258028976915496076780859158716346525425163440053097564392799006443718530059749587595459954177259656633209697033959285975299147385518609379017973479673866251094480490309133782824827810732369168961411286191922232328953562257004096990577097884850243931226600844121724298707652182614571813514153691856876107722995768400855719534023145997367967713558572674468935689370149645004469907617080297923911819229202807410754081303125277017979203606104262563483632162982746868358470547963779624106180549860730082376266961919054677211780947030607581551235375193731976122608533817146138324697683021975152958731479218317461160331797897657610705657303416682254181923611781323344958134032753335069858575409489785919801387187208199257468908767603601923036336649879634684716015676816954424483181505493840268381855416746334930952009111795933869315263237280344228111052879894270525588457189581679176836917282205696775063516921046839825271909435955204089418962354737503512683484018913183800636561630608946481110346474796265254846700951981848255850975828125500257521066978501949328051425859552890046809430992139080308630487785145616996670909455606987028312241787410796230846319296084756175257421567408800081428127765885783278726740017345061003288731247374560941737131185014077299645065390916010500061104915599736711590373176701044348974820026047464860726060825168767471032692609991737975823372793573320771901586300572407353382771873246591498863277868247795896556281748411469935147524344872042346995899077345355331739488141786614824369371617203524474138384284910406725560174676087633785193072216602539512583460618892252781811857124369857254140719759184550993354361173763080969180342433493094018924628041740325632328340982510584801770269976330922083936508610776622020997609058923766455818255262552651359012784787322976401720405928497222896098935901169060888617226307844576732491920087015881807580359019022847293293063912901186046447286554316291402817925450798003428745390806763780647564678217305993964179495466966677996066453154636329889820967799156300431505197926604566307094305480241241111923705397879611898115621487474407359340690051707560869502459605360002617304469649320691679895817625430489411280353302054719089330401414345899041218996223910060337743417574133703204236240098028308993020633830944114630305181956692716316521811815146369414544708100355911561406898679635064658027742080404553740984234274419909056633520073208955915198348716316096978981641051670017139449154862422018942321823802349997373464210632120218423072325492712492275023138110998681591033064466941763659144780581117709986372896575097247608931816127450817558052207734271243604135981618546529240889315305155147454052831692252765799973727514368350065179603459036469759895981625299976691707917366795619340258029552621872427758185085874001379734955312287874827647166658699061994299824604301355649031572353275706686848087802272917656118927158426941741801162556248016865716341002600404630536779852803407101784258995106402897492852603405143760344817486548627724733819143102565564854852059506678128185630986845016378740347897343928631434638485669849290430876556462385065435957296423014729410930681524846782321528795521034550665120422859463683722074185088246798538165804568877133004165718403997585698259511014875114040092945654409092117505832303182489651677661479615613526157237281865814819871886060668456106698368142501508151339541822991687399666394343199316953089511412995242830255783779676720840748349465773593153790187280093881051750690914843638751359840214288992617287151065765773566801805401692669054856875834645166106025165846195615057352035979220548471864718883942475557675540719718114695403469926196283124816314019306164617941191225914658506615519540761292788633498218650459653101853218150608853413347470494350592999829379462339326836723038475136120390462477076702566345329289999651836778349666446507364939135866741235019335335523021008753296452192449419824580841975596045300278520900272912382542303705862193106976114505108919973402318466430552330029315498567995458335669520137809933929838675945673471795591008417808757923978250924212046076644977624078003949114148910191088136503074542194857702895402072662703614817288273830056049815509126622962115786888734923328040674356217424039014307552624809150551283954455893034391006880874947303912812819949902284049818189581243686990492851703199775128974775142930959331424762498433337767583417087764571950049056947308274417304386083065147193817830187920293481364826812265787556792233642529793649534123025041646903409657059129553088636378596235379648967143206106731781624764537636837294989709503417261343300258684432783285184060650808752481391619470583758058376720540566346948241417852114938452820229436162012853127375630555153542966808591325036514308020993427372670274740738493824040115601840965935342817350410809075311710153766636263486611608696951620969988499994927431892911097984342195443021780957749858173772302596833141171544009777279777232017833658604541354892092668734467246565191942007873352389975372688044459319294631987894695896862860448420800943383018452925976423875938279904737822420514653848169850774990277046927117626444800941994990206213026707435246031789267533371682272484052100243092855372300507886482366776968926259799069609556420580161137625707375241626432683133242762654163520384513227539061756401675772016037466594164656800317259419710536986899135323364598403358265944111058237325394236896827511587840274115343622229506134463091641266743425054302888941230395714512110911210218221587510180563162068296436412933679854655690277215293449791219429178037811396919716155867637508537230746616997394737536454963003710488554539316610370562016458042762455552019239225322429011494116333743297754276955514163681540954284643223720812863582288929421474099997438132441048806909122263950232133571970582084632969532171444535931501951748923747169000447797022044864054702697426618844965257435493310229515233836044484261792141560856889469001925946647173559854052039702711068650299262325924764233050147719935783498977498493031907255992261309504853412062120071455408118224468239976384160550349630439060902201360671189777979545057777180254453103308456761695735137815829279100525395583176916185673072363984543310048002879984444952087044670340381869967053799474188545113060575690247823563460985746671844477288888366881370420038680938450383395405950228514614928210771133892437072390817019122498745859058260043933128774819774855898363400204078225482370882016187613632350261061196995426717461886664944288480339492754247986172921592161869925455233253394223796386369127444488932697257419094716488271745471211752162745112200476131242083868333837807811815451945483241083696189919429216872667519776685641164219476194571133910765708791899159895924161668380013979828648978074553016172569032510934814189266882027990304228101079590930280208192790326326938065497416187667732093920125502762002250467341768599564220273360915533894341689448759059528113404708062389524512791446987523062634577532072847159857577757869081956834617687853361592660239472472591391123607641283994087438182955767905741617895937717093680581358897771791089293656452034394913376049095249916922792954190249405848008915593837395748845582272461366834944424181487454085904233722785582219695572862687643394021165419992948482155535545789587923251134923299713669561041572678892408161025105650938914473469167504739693872399423962478209246027510697513079155999515254790316002018638855378052772257429952293494002696745639321869857875177083925033253005821097088818465458243170150781172768445866897949575452113654735452300644877330449489590793550450185282766403201281300157140404187566670688325745100518651841779481136616740115663689609080923000619241548858805417279486384230475388050790223550863561386449055801816355672353992342996263686942130381022217212262708263634209676994405724756085811520354358801411240406437132523565265650798743285257926403363646279206580557670214865783685297418555242190792359029047563520495579645204789115597779898172528529194521346171575483110192633891212113121720068641494620614969229590795386425934008334032437308000612251667400864716934972866946256174981398129018341924803408887442954319245602797165835898092523132351709049820792190807221065935656541741902746639078138202563221457334883757147197254133057498920571768115788355078494297792257768401761257449736135030604930912004594854962250182915590038219671118237221015129804132145795621023706322599626322905683008629159219761499530134573998059720857067634041126753238499315021151063210704723077865779297316772011735607480940610714345407985958902588193594927852131744317992089685799552137207180520519734857519907707416977850270643505682596307699784344917362613501467418275256969989299689446401155245704464717631290473501837103287683350750207924501051406421832069828111838980191249788477695567592824505821658889592986981112016942598959543263779995148204196793280043119229489705141164236633183610808039612156689234491265560925684009665069834238186979866451814484976246140709773236650711765907704251593024161198945313435039441179595901296448295234803006296406739128859836844268607637399301615712192860257882235611111123081427958006832729652454329676259063312993080484403933456633734620928379116064639258870996500915571931593565594050982017702601982660173052428499530286280151144131841530556574808195785610593688517544936822307399935836201928930872178565673106704292632707202461734287190135731363796924080887099426952205399469130218685841793705352294295030967508162797142371062311600408065268943188850672951892287924888168205471773551681011733419548492204805079508079697520792511041243794895318952977448755087598686994144603759241560907396850830282213531540384540150811529285005673837614512021514884333197211537229562148495868228693857516559744903687034986715145222052707506705912426583640501702621643248035212787036419557851258022578010571784490536517649538914061730679851299328596674689251919538429083285715152122040597031375619206513413011746750137613319458154983656091257253519720731814595290523545325362961751068190735503746223463168657814728582042079025982210294625279802434990998991084532182911603808493863503055566652791782309406916111118482620803302331010491751293552805798843873701809773639275385749681681631606438833421934747882025157822110005152346503872158620357052835069036306880890422861591915572604060564487657373510857154087661551453890899687869971604512463196182976592480541489127165645588202712700741627190892267227062364403609129621908074487742236859296738730397432925612624072034934343887384358805948584369069850742334284669733307525746352358828272366342636268617291656581071582822742952051784167068562984246873588981961711872079891673722775110513807005464946730565370427169858007789759702069120794519343842298130451560325225449269714576519694347776154076499789476962317516717818131154691463815319996207396439317781561365849036113163186834952540376614359581154161894833982306520045835448302638266878425165070924617170359797766953571685782116381655529219699327515917429844529837145537316255832131707987259902636397499159843382091880169396131425149544661147131898615312581099689472752983000030865283791592738870565383328013757520879948329352152010144184720673064631297867692087297219768573586947782947326590750395711921779629996131705035958224367095170625686538549555077138054851726921762675883434135594764309849217208014085008390969659896443073070155021636083745329316408347899831431776900179405596660316479937053083078475256033235698040999070844543270198714253521553518737191816196318737201067643025700304676590697719480101934236996801314189528184717425549193106111716955057093070380928781253908771897676392341747274767289467288500323854112100102151383635866364582754809272697575659476471447344949500789748843807815295383038586194171202515836745582539078503313418486890215304397937039308877521933553926687737046213122012322131334628210090474659455869888348826324261289513707090549709553683436650890746907049236959723209149994656798347740465969546440113042224631624762278158601825273407195931613972099641613140862690789884065253482577184613981002934273237677623308787572470815669461871468486045206784137109550688937698847929369645742948179015527241631135427492014274944866825679787307855252455003624281364181000049563573024649514280541168609696055530223603823102049521500961724671836245857449911713376343954566120266151745572191994955066507190235075152069892659233986744483451878004122803788109310879310845797352374309978583606689780075952905235827459744282423338231827512994873126386264656401941001325810866066318943127931096798962642526963956123998514855513710711404359400996440574077253242682882361349989427640283497212168857231191482225027957712407251540710504264626812351744768012294529910584570159635021463129327808074143677221524138116936868885528990428342006924456319331733981978474478173352569713295794185762999711368168706888163994187074613851293926132784579846909156482971129311026417273152136014276074986055977451301031491282335312616245714449017278069147225112211825829838627568172588359222975131793478643948093661565618410024399703916684723619882767726223551835521044919764836339018342640658490795213250148301610485293294196160046258166573523706359672973554836571849747224235600441787040819554469369854683725058051126999240097279511978932169953520924405560516715896275725550500515351214962065172532722147660404516048158530539193021028583017845371251923568956109798815074544928472895203103746997744564085678542251775439432182706068137349081648824312669694366626619437724775745199267968201499600578358211475305851816697732244203089321517796943351270003879632548557275711262189198885962568620525242784785625384280917597449155308218232865298775347956971163183332949652498763895028871432415219571031235664435753386609700433457146459007300957741878750045889806754681071910718563242672661245280970668892461573187366088587712646691300379444157697213908730357149159893670050381549945354683274541782153334401596774990468996027189938744908265169340130384853880124859784779182506840065597761856366638239705208729001713680239574061202944632007957164132770872165945231283354694078675306361614339595280427494253320388371387164797048638489037918070505622983764955982433700398713748917228799076480131884912757794962218930497413965552920208346612416779457062049627228070204680651579505583079746284452528726736736749995906347448687964695765256159055495777346596041971660518192928678815621690599683542762311501391614015591961998620316230218617573180511064098712932208232065441276691617254214110267680094448788803139424128440534935820419690727210350724012224614241604536176897134238134138692518878460447546840704484140297664306694775541623172326891001460795888529094840274510751870331607818114761456917150581617968758986742862561212194161714233598822303268723949084216335002939241511328448668349055594752011741703196564723182861196673575146266647362043771434457504245492015396260266080592130216893611451532972925251166922918598079739994469397202169529661394862045644261295084527906710879070521985359211193563864540764446053726213779350528167796457354000424453529367097860626677317293451825794899631550482027917290439871389010053785059445121392021694575701333315235160918144513232220575385069131488187592784395151445080125837027162598991263811757532630005950161227628409883772442352028784052213504169696342301449289512648053000048698162491847633752063970931613768265414971937008549987540916663622033864164251170909193640759047315358132334816590322622457038394343814622936841048754945880574717747471826884776543811456456234520730425088900933370856536325208990101566853744089477004262823018991479675953332744392096567352067943016472064163847991404762882932618110535025745409822748609150835411622366975108114220804845589403468781128639861303069685633255372813937550429136373029812518668882077367681217845620421680313604465010389762483161659417313339859882952682203861889299609030129601450861551016446971730792010007934461744971424397535889537679088759887743401509785483781804925045920655430799965134857018618436591090331594440063268778940482349097218242631657162291739357077086866557699180957876830089477203567599350663304707825740985263486114242102451191163278513293002638583817207415408105101651477044816948533610704224246732738544211853301023658800669634081020930957239235592626087535990245806793127581705814330206436535256682879981136016777756217955742446348789805693132583829465273302284533585172472545377771888515042127298049090671116892394335577728932000047908167444495105876647434655641499183809495369078520690188339611626799182364934417087441625910174724049423418354173935152662604700407188301452953539437872627100869439982034574938675140103217666505436990613200935729165693050210681836133146062554673114826667176265591091608215740078119639413777288265112360763921698039828227184958742983626530934595887605539847294065688579337203241478823806929660891114328772139310524531114129550395362914853861715068393129442799213300551860338743578403334009301246104078361153764869291680281021905985561276574979362799947751147437345186441524210413468710134548733304432092326751315298585227036937039023929858976380294868700794247307383375797473720101408825565976435221891104808255270187347526564424907273435823602253086351587131768578552938828599668589253912843806797717177041325048851864725965819538816486662965958452558631189610872849451830927797009963004453858978184781366483939426116266521047176114049766239710110457291833887517212658706670440994897298583846895696123539708119977496408155716739444068888698018695291088211597526641844580220989592831242036112994282387669760568531359604091245287167956946185262484924705012454877538167618154161517041076140566642369789741739662979257447658762733181197367880503926808123801615233201508431648798796567930250016851728458320545034129419836929303344650527976456823917609908417112244107585084669548063434470139069233044650291501761813703403007633636574988993175351256176841875667336760135819793368742248169802474268183728007106237961204825731401563778356310935818970138212677562333503767064927481169123792988784278898460231060482112274124110807125647937045144692356057671872897976786800088850526188261061349267743864567298192608553123617822177243357872073151747297318943380967754861280478373456584144773470248871183667953066676724539914528703710092779749262714879825833913557656503607113681669419034919629754703600363281686629988057997720747842597792539156907599202460921929509809672438205984847845540744713701897017310186131715297471101268301602582932259242353810899608069461227543393573514958405025990288006236416603163724212329645631005336807086140259500227038848792509485443199250784725729072190007491108319843271218534775357261408261798269844842000709028291816421515251927250285163974629992916025730243648851821949659960649342178138321649565976806638451738677260296582681453533197225101509760749126522715851488249427994143515614847712706101783668719112646785557706864041678254533893573324556676349383148078503365153747795875266971837512082791633734072699735374341698241829426107623321443709314698171669040563319667529932116997447684314854550189814663312240350021208465400903805697408952054404706227663867983593727348214314679347918020410376073111260694826998220739028233740618323838894590189773061309326473594089003701275716593024218441350371621667789572527832994797709772462474623738013215506058299917586239843970783019406967368528234460444923295966975276693895027971638646972824155713947627513236775146140633155611869994883615765961549723899071105447672570342132844956133676648772992856664036182098262297939097762163103700971390440712096661171642908794221440107894625340898855097283471664239715396997889667257693422087150892237937596171316909380305076183973601586894053379552584245391856158995413279261644824738831721087036634021879587814750858842739652734272630937787070201969090213528895858709137416857733228692950181355835624272761765926542759311408869985381011041847218528532163258315213803234375950829675916692495344779492265098300189525019703810889925400524390281661704106653945062973314965343989429974192167966189784477160403081758652174388322568022765807291840400900588329769266434652246101736982659522101319303918538309302117561557303313179198597878784197990725270683610904119773305384964578960951164104814161687783223840912607344335484851230042142227989772565785747582139316320163885558114374086590697460060936928949126528240837084416266266640864342131146014597288554756039056927827600850390605664000441268912347078218747500286393649093396651314403828216734250824488357079977225516238207839289381521792832345178367351944000558071728304577889660690778644831116533128324045812764152494038565811852040466399759050151923486317064275050438019889828408004126082635264413216648254404230263982491877201914299278473027130410145623557278027161426552837304197460629531037613525300188637232057782063549952400062779584177083972086483305597180325280023702062223751864576606653481174036965801286662213935395674011754438343104743935730513050444071513000963418609094945217915897129391177232629839273034044294385150375729222254888108367876374858436710100279852756278870507801258167241436014544641299233071362197075968446809101415876613396307383916977369372747057717830614613417600459963753283444767690721622240419750429136021773961916535029000490128741300870214932890422669594218137504678786735577590950801505937440505041749776885970889964817009552435916833507563143628882625920909323542102499240017790058298521010340948083128959906386221155227334889095874037315917678403387140416950005141958154825730824770356470601725376380732720596683801003844261924121615303562992274011121633391796148380090691024486506304134134866174700814543469865123556349607343778771949258413809309785879193225166717377248379198238363504479906666014405480761924828274987171837270473913289675124132664664277209388917441936750640499997135922098813335573119345006753252978437797164446827311180872244893695784489734544058506888025598160905611725435858142926254223017401548963239482706900059994043158200199579567022847767524093030928672912655963523803618150327812751081599912269477782943183822106316636196858701810694228353646605646088513027387475487705919424973062202495438041243044948231718236333358469543442179213322425121974305610701679639526713790722201379747323400942366382240293734312353443183244758366050136944083421836758051045376450848933117876248601222934274770824071202619819426077100364550340556189561102171845349499195338671921480968173367662699599280107851196329020810694222490623899340016537609854308118963847753318159337999913954365151064486039147333530529954862937095014229340873300845564170243133588305444396116143919830270149109351883131943967094757607501312849168831852423528301836386478351214056407400546991174899709611122627656831645910962948383188011442481925685419029190299276331491010678419386039986508320025198135866704849313513389238521603432880927305277590590085737619461640224086602339232599400509909991475155990216536807557871881086532608143810046508254139508169060754540640621608916881596719682746423900718171189180567905191410070321597922950413395758358547269302838570235329034040493240805150892880100987285227692648875101666212802502602289565366215533582367002140008971368343831172566887650546542542189558489669802092642961212844976060540119090109251171399684280472720708195763807048276537791771662392976394332274295108241409883414104112501832796874417411569516104907302122770077170723448883918181917710316939991011527354727031689195469790625149141836300748328832098689165896006379630178548147978144728781682527306924519903046219263382121240678207770362589983853862991102374213053278590741417302131351132058916612848586989573357133140260039841676142057979761230875595861333415261309581013402580913541076487739385242466048363874196611753733851414412809154236486597407908707745782639502918915370401028816043714197092141024817321042263682720310670823518086703009475422544820840583111738978522353680896323108238602993464394034437889249756940023208769789285119444941701233029704121141978826578474772485286205483427371874312494169882302925700835990460379809952612648843008803640494029897539034468128462558632202125521785055857404485136109144259571448571477769859365138557318815788541641756053765913567254201142792914377718073736015334728679957699454685815955210058271656817588508762389993799901081916545176259508968402645871186139745015120011045267207572500097088622109442582938433061812136724151633987020069174552918504312063403060831342011543751097842942130980947201556105007028765672746345483612465685692499321639005280790189281662315233596539621465809916424171431631229613676231972994795993667228464651238676009537640608074242637912275622496783683404039628734593596493135131150318031616671344702364444287390159372040175248183622789521459592237902109352057237920232016485534529092788909439919862421105673260956906555944327651379708557788693958352822568957572844611662017470463993799305368239999612627636738512527066387538030754916324085991394465537950463183669229315621763701031863752046390974005196285301175383185218369801644434065492942243894853163110664999549103514351235090605819444138203953180280396493013203405568715063912288594402383039045316678440439332619736597637863473184604234673725096731779822017462960153952760466957052486812221065221614651457673252960082808501951740928447719206418963663313047508858856370714256105449055555026092299664673384893310107903650358518526569916732994454097800477979235640472609670618764349384602717883315188064778979114112720929358771312694745056400872747561073126822092022521779600015404220260018969073484920795218452805786116991400228331930449479330988525817641854696918954769944911694574810968497741268596032006279556191848274974625927555184811873817839348386140197596874426125773490516031819806854513481784556542899744541090317595770084793622842628037223208514397391142394293281074684513987055599240427941150646074032893198784800147209445522720494212437967947962414956231572941075335372940598438023888722411291746352260871575130710705197010537285442001239106793319779614830505090985969725935658186777349615423367752791077157828981373219017727539935698903406141453086690779926439558493794977189927014725038135850362691490312723634440634770453835161177811227493016397747772562708444736770306841382574535925673514319066610499143096384460081006956231723913041387375244873064477938139073447197021928287468123123166227079089499348474936612104086405134919733454052758386321698994904308728746149627298050651360774698073700724554419751777285486462498388052346505354748182510200962331439220691434760304004111112932879180048074122979482755587452783666589152069603966761807231564550130134596405428427529801853140280303331721724694729995206849607898000428670419271236791896179049036489458553953762188932776475217543598763602434590571613726929782787081531660173736622809412191269542806705254425649056653617613349483036657372638823899526366211331555067877401089838399334640285036298265907314361331408872560989521613582795403016565838717858656120960323595050852909239255002291226612956311739227236372879466922019932367679259853047845898864759776211363275269291340305912308418129745870187703410679155177998795573739835387063643018677465384119261295788989600426719969336484681762894382069683012527207804533903144508199050643652744881782954632826676204810349596272420727792682341711861657546807381936123710388225986151400474844330251405139033369192608658111771066518586114627400262810625356981345914185377576540405940553808320449068161046077605409574976001902176753945180340398362565857078859420185787635625604644461407548638471650820390407248134810588155163574510017654969716132674583208062951068579886862646738100813761780575675301962944699524047789937994699289355805600644070301605555837929667572541741184644631220289310524869602787918232625790335675849005333795254048179441728525837465633095511283218585098467774201958616888601970155834204361611113525759297408038768702222288592949217160131067124260599967180702987174682323703121799017031571627096271951652775102325994336124936820852146772475332001187120048467173857920451018897504534696906440597302872396813811802132444756141951011398761285917178474257695482140404142905171921903475156655538385711084879729481330061142273736151654571193629411029957542154742687897578464736951693408490096403973848704068110030373943888446449175882817725480624449226335578189558743371950614554007353912057657321452361742608765951246219979979150720882698331175685405373931617068897854933889737639760247039271287793707024116272909336211765903112460236164067622642470077421030075667703920576035198496547239428742358036243542037288506080887193584185156125303346068637557749531118766332285591921386124987811624871804194561639338553315089246619862860798901645341012175089596905271052353296779656671751917693539972800286402667046851756697803811957350862775845609305833541251391203827289099111102692317023854199974082338202611764430178450156514794605456302620118343692724967956692302416092589456931989906908090049071444145902329356726279020254758237518895986803125769626921863305207432117345588692441698987425614289189881913281660449738401494795373080874543647421105957313631761034210613883278089853488184769652549534742436090413714337299836531765992849081907292625679132032947184267576636492048712941287680195916613280639074653035693601061678561429826255495695325474033746088083508468845261905966196981314750263500209246782301854592154570830507378340650185144548185796763679134880287111082247074799158736848889793396903942478542262465791348651938624367597864011967540231533865835976082536231302437080958349114461657893130905013063176102801436802716922582020598741121699723060804378218484205324379570361467135189718626862270931908913227325748021059602880822743108729045233197677097237535015341655556555455785612644793797220617043870140628936734198027886599557421678340684271944747589069950989421190848447812259787179995116129656676485408564325838958910311011490551646973586420655845365345339747449082912070367281385970536580267773155823140843002929860001730215129270337244449575876317929601012297625073434809219311581099773075829530780168582624166843545059742817041627395338053663059561763523963734158019337410107822205878156831465710417829687690571774850314626348105219259732291035353635009464384187105158119212781160431531086644984078534489097914987164333477426806783683344789143081298327248120392023337546689332585886239471583661527267863488139309611026106046231727635272632618111183818500283015201862613017227127284011026183897069939472239409062675644505553989924719887836685078298199993182991949947402036390130161381340653348276075545046630819558089736747192442657529944216279046557264897187927891129981769726039849590740883171062985135373793921644885623373198514589577065834260734839556474853497006635894336209934000341920456801953690008674620419586351628076193863865078494243328184733532510027014179349439868265319433956018917777887163741483871799526844701446570325932007381819053247459249577395413995186249770159220903953387307680035629234058784211081974947864584730303282069226111224452747707600551714331484908600758521064178269593279949028092728458680906133412109039724373821337996682194869543933089422303956138437307404923426732682916205553032602574116978596585231703520482306803752342805052205698051745910488344289564687524450453856003521290071405552147425906957380707115255625823836575545831337967537067491759997320575034847672471574667016399674833516275986775276807994856983819331684128943091562692002221988383562663898920962988573998085202775648446638077662331660365747269329703725979611809630820358415456156399909906018357620661231374397801085199538686078901250820369711175218244602062974871744985934809087834781355384306375925582470972051715135835657404873389802592502312371354767023846633112321424043349866513970836452933966213630832152831913150339138760918966999025114008523301031125695319653623113083326706650106048679327751044603370589872878977837914278089682406424790274666641492965387275455642805275630434607184909207045751883856737403618485084122858784014671610209255248643809211746656239019463594002448986181191370477639040220333047291159305300777177225223054301365624502168263454890494496931499503399439817578517602450770203064072095835581645389565849234338534246364478758375357839360570885109414661074787283330841816971942294269628225441106630496428387854301229374251185454081024260883472209668709785379799014538328501283876565553361382448729374760958308192242975554914278895809298234621072630002388331765424686413013355788426755115361234883573833328239192603512566192438172498444037833356255817848847401873896290549181964317180382202147730100210024491639437131350005275425270058110655502751723904967305814564326470391555917268095323985240779849844106429550095742090645998477662860508944009298390582119155731410248869124309521731858473363130130374091476060202608994223853113063329085145632544935928541791429753661482442824033598614406770798845916351861340212415122621158527105013459629906918138415689772419738171970821049494668130007603648255294666060447360038454985187379690044860851744178598241693531687313729475079755925897518425638391335365655651606388498503774654006803743705898792711009774498922432285360429396091095148560806160931381276209879843847831307897994572776853493226850503053621052504787656260499949589636257715833300594789297127015146292551671066877210308181774617603247372658845481336954257102743075751277786958005919934733819241141384751561235952052982026420667948067955841364425178677518126934461305989395889224043262384678766977236678865161807381824088775060794634187544216163620700951203470338103117077639094853923507019366408641659538995041871489053356634869201128955217749671695578960124094911037854307424060043908796824947834157678396932777947198592656959179449597300793720594006666118177313024084650975322683074967130847315777940743813200032447715103125406980098947541087273382096654425498534124345693238984096030428378016812612075659866472287483537676749063558844184951604052741667190468682686345201778404506112268316356077178973849567453381264324561733650361823377288563317522142806444410393306259593415237334944801840079293645171160714926950073698191405341627686478649345131890442395142163187513545378815598149647433957585461330185638808245163871905254069068952048779712336241579517979156122145122430196565937536074903838649479235552993579050494657337094481082754910902949853900211890523185001123690822952379889770674621827596944599767594979415283440902148173541386653118660336222786624172197172179653700188639948556998524418973437811754702258160976348971326871634273225674766779620445290241847985081531511285043662262237819614967154581725974020982178952403363843118370756688759624845250052386735991940614342083306216580715549001473001889167477874983972154071305834975807432249462916121594564999779561043805749406739843886651897600352175589363996787163005747969370636943247256138892066194938515573975211085097066081017579477107039919213376112354863844728620912431239244609365412102236066069042946379385715560530299681196078964020295743781361571215679759603141768857132622423443553699297381177538076914622181440728119602320034079617193856962690228950667448368917911895836527214676613545785480746226739411557666098789372067693358281588936885111052484031000305867908753781538670225208575517683810864800687189953346110172143295041137990849139819758729818570401442541546423395522590440709656466284454736827245101326979203008723799015244079978061278118621803452385217343508331777733048303525765241091601459831926564532766073574905979320489460196672087666106499099128689546823145198395513707655906601748212990192816513428438909035077597218850838011843132870848758285576255754379938108090626030524002786508918175544959715770698590363756037939573079250749195987494444878028327606655374319741182182870712936318093584168033974373893488958105539049783972926872490274244656505732274036747676525309679111271734107295936117135152882980113030927760887364017955575613399961312660784327417122067121226361084319678290953089200258455343238378564517308974074241221486641903121178842955390338533638533909772587079612830269415098744957628276596217773413546711094029639613010869739137199416653270654249988893482308511089359215490244403245899528762659345724673908819280570499183664643238569477953025471177954162758490919150288351513861337312242798599935659195618711788615671796655023300223373109581013697366961920264013608107066874719208925653915402777691492767579695012494333589658100056626474310208344234791941295537754328515973396082980384487644019539747510356787619938136077430377552210803430900005585777262643076812917381473539569219721191919656363746446244940503816323808734479936417994971123383546568036953972721491649186242744219829141060717185827912007218948216717148127610613924377111305734234150095465565028631816004730267494677740491812313796977230888742268449215713750880318173867208704142409151127256551528722067366693017699205040069926842496269826307266537236036223507176568374730704416180630355793846735802162906089317424651366437594767778330988308357998605350002797424240281959653699488093407610015092717469914945757390679422377140380071379826408221532776295907266747705270539887429479810834078864365905261693353777158274961399167234146593094701000820933288971244883311652323139256046010304108173812855381833777603273689648564179550885391708484053254993204328184634754239729628622204835953755954434715281651618594376955807730646580923542954175372907373867162694971831366249956323803553182731595960362841028765551656846932929686036290448848189940429220252960352780580675797587876469929200608769991042404468806421100987499620868512287439523781323670178176717215591912058933115781619482148882940788813703044115833007844368023396236561501526598230659460693286392062699920442646857841872383392400309163203812019982134384531032361695032242836118427841487825574139785483959190336925859106160821431192107603683997213808395439562353723428692060510616398503934186560008888014754773927434564935059169393917415574158356625099404039163990760186681506118482976563080170301724712452339342457385198996201766689869898366157671217523933329260965045679728065646584336625140360120359159653772368811802034046726187521705500481957496420162775264028146202126253894734880890438324303817116094467107644899217027942423731529267650784538076975434564056109054187557857997433622680082581114924687188467404103473287003910101000217558277451131624370771349069531348405365077616935020850367681118048557741695233257598362277939317330236639006449863401436603841133001113850427139630208696805311060445587947240902792850299110053684229289711919994592781912520818027452183642206873922392619489500341026819287089733015883893476747666316555777217814646266494461205612862375284711995839971739663301232968118943375881710375831345796228093387059934270340682138017714329475006913112296842213430118378782352251515864917532455107716089616768755623345474557373699845906781982185517540894100200509081308063610386436213950663278410560971045370842212301964827428576834153038452864936713376717262920872907828977322622353252665305361595414596995072711388581205902185411145113786777438090814428660858634246261261485380311998599833913037986710297913349367135451020495949316249213114716280791011870142149321580703598937126840444989203752168203325868361873266627684371358626547281608570006419597986935392884949935462021856823985185136337617306723018532596329010290528044309430717950955137122410883633203497604259351499756418025576056330818694565182420722185529285232316680505925728526580699297846827999250253529661252778679198886297836152299542116727371622979091122354816630419707112831242102106099047905261091486114064833742113719015281000656489106682466186491348177679276436212968118446050309823284158107365682713052231756844410232087839331550506601623076059698878334092620551634773827208356447227476301138455060722383162451816898184342193062042330976203271239462424410485889665709850751755681489956045346353332596689294093391619806335918351322026878830387863365411542632543183517409041482103818704412940796923893606945932130035754688446319838559207794021704614847643068769177012438955113476777908303432781589434278315393183228910929682675879497213567054531093008112751578407108536199563176735180697112971874258016511828711589550793508449608894591396299463767270337468241042859824256055798012233995531043811879827281975897726060137894833013156240317561673795952075177976566389133202071695260728094295097383764618870285613495064308641008367549023079017073915293546247169743604662577973857906368630252961392273906354997012096817939623867389629059959878519424069055062620415781508111736578710411352030174014672068360568466887825073501885581823194804272952394509616941700875279689608558049120532179067603775814478985300012514340822310031934792308638480728992033061767469257994305908929781301399866973894161289493614632408583601402435612357406656632016198375873533426641266668221951370806296026208373088865462302628339727340189367100623044097015888564136253997564118039330314723716814904840564090366396543269598953981633524071468779001473279016841042926437976213217099246175670700074797863824809833582524599385930593989270968810781128256867478155066303947107555164933791001121211659720267199350008174745879360759808008186040137854764502783975265722670382440288075530237042999071478690965325367972446739671294236408233758776162443831856739994777457506754044192513524334380347834424234275851383267250093345962239589242650820711452865298314661787816768276407321022706269458123009018736644406028166643134044881303393817809353399330635548730749597879123258628430083753274083130081593558948704974650143470623379860403369212235196812384197431954934938541396246699112868784186967180536684595757395368346543587306428547892150826794668773828781230137050378989142408475596812724450133834571054644837231431219799132643551316349171522261503275718332373667299939793220758048654081901031574963857116593387848971291607213491240857457904936344687721102381013132760351927842821034016762196869458186468716415184427307761633642296850589431932326415986724591342875400316219276020721417043136885577258374567732866337816507926857222083462088465798892776249608587995722648678229963083217646558118649197482404496418167506849611004228244486730502645542959366949630973578277613281527245224720867822598281718896518880997543836089926382432396510782587238405939806230740489927142703758198075850073728615583937582226131898433856691088011013721049797937633665061341000234627771400647426756498664267587184149726780270574353261083443782421287147486257136835626954555102524548268227093375330665016504911865278810504711127508538875602257250948018667324336108824397337754830708114853678492913565305114836394743922545355541848071669472180638970511196211531739199419350663474406458280240607137930631587436447165057102506780031962914151012398826185827456273932553849555405994798342704417431019775916182821850396643540463692672931861031754000291735714807899621349313191848969013286539753263395056923297517902285451480164417304511947062265329728995456613003423825873432962869307187811688435290592522638479883169670183227870577778819101831681121648227451600035657567623859437522985621418930421080862150347906931038383030353971888911911055470158282238866691055875768121030987176551591572705989685573118009754171699386664644992627821676368374912615576832497094264540593398271676613026703979656825390330009783092308149402669633726572918407935920713324475411297109035986552939977275834747131950722343479212868347813988977300411463695689540236256947330709659592179340861665256105419498106684382542189755283008160756639110634505374827735936294334318304960391275764598641378717174241929913770351598481759928658014265229156203191611112131133556352249939732803707027606179399077391730142341084202843485153442247830464891877467339364372636081834474727651036860018118923308176189730042436365422524463985252847664436702389021834002080758486261381444025235045494509475397702944287460011307530028429765226178978049458375624003923371287001208507758680788847315020521457481122776174470575520325217608154244170541046552186052276570825799084963415070458379161484625617717152605688821221520297965565707705336147314988734317474368083394769440742424770542432219561215730600432658318586544723271418968352384049402169617893526004366348097398748067555172744980854138112740903882114268678710458909641008377560583779849106806806734783395390430341740017038947753289294678896491767428652242981688993384644180052679853543508359916051143274181805360654443947756757249422047969329580217255207496804242545515433041441942941600448279525702495813282084782006701511681796747851687202234016079494737608296079377345427781752695972254483082300736006428530865169513220283895496996301952979530479331251753542718883380711929565859916452183170848710185294851476713851270834384550560331677849183766959098181404674483352738775580703423378910244371839152320264214238356155626096823990556227977811546186404802451530703767959920823002544101713473026987690657527150529123244242824644283959715270713276737955150281155794090756601351347347002552538427353536571533585889789204106998194452127690902775889073128515750623560604754520663677315380374232510770312929181956810457057083167129361282807611266401983338646422661155773174568030087187530090337971546324964780760200344946012557453649592458800304656987014093573754089528781984279567561048921670046340257554843395264948762957563748286792421656886345446652447425494326020820171839020646530319932411914035382959418162026242844272237158716471400989215090784112873780586657304237134702609406777114802489147890056406845218976029140278393305831085100719024568434117273597480131689617780575822974168373052724243783549024148719838373721563284480480252766898315729120919713813550260671899085470394780878540827058118844475541718987221262614794364586386200714178462102149948859923462831527929619200354040752548793160855560619541209401952742406506103999745374476127918358772857238860806782531097758573088747144378971263509840159351635214512871697657200081812866353191834231351477896539238278696434740552789772621981610680656081499611871195141294350035099767379929450251621440025829048673458153112011006064157520434840856160134710760383450987026589642173201304497540349767727930361820678979502837684246079685207994084574072470987401407297975726684594306574976271581826237899099493661671315540938581227833460413454560285105440110513986201578574534671478713602225050729016428449149245252742464933641638822967210361755802575711713970573611825090421345967504913719950159033654960849036261790520951370741432294347753543887575396243489970252342359362944412156667337499469959417823052631280573535059795219572584274815377102961290983449881924311944210304608463799334894970734566923398208418729885947190257331056765301221603655075066037948491437378128626163346237193785997742447644836499981661662099532779519215175745024717057377440325727682285111656406349507408894332260571811753449267094368728254255091381635911048449734218768812931964946844509090452334248631846256007371924121097249904223476914787424127408755297484375799710021933669042839688950587554162436221496943356514861951436251316575679099456483342429032221932785914108054375528440758399073134976327614515274234464961861881474077101092071038584459580459032622282567484231995691639650781559803587308481290047469812441617608562460824115461842402681315282202047112617269161731530229103427477226234261900372788604852135950431589300231535205103462537280230476690966548014831724823679525761963285554737021693758386889239280222294371761830994231938761085453520402901994846970724894081939313538240169044942826876962486606692993237773805106968902191101607781313669895895484284875035666359717612878167703912289034684938985467572869940554849157918181900449904183904447892380487676982486028546938784106392098870618797874108534791756490943622835303851554566285587030136793668300764916153753351374557740250260892763315169468685876689438688080277760089629515868755924360121318356272313204693645372499873335507224106828863907263105078831683360263357485337975791147269846146251712495905616361758180079362608854075349631276779969154869277722181653553555347069393002824332511903404317327800420287829128611921747827330447277990740723450871716631423158354505833157815230505786119986860778962967019010960041965831882047704775298093931442035818035693446472823648395324870657870689400708589065896052388350503766810765885513242696628351566637626401300328743661171561284032185915908037042526845067062801531706518500913130367884252800511375801980451997214562515748354176540376187891278394382583689122085881080332022700702647651422917041584980812835426409095828852788830614732674099031338268162758374003904158845075686087295851249055939332016567444970009958696887126946104619135465887774141726288335144396186145771321247484162227341517210014476219096539658804415785914533081888756170058439555145983841079126168392166626632129143365684692014640112985895834977016003022537532111041976658010299584233064350347513954008333632864452948551487829751662107319333831110445966961585414265989032036488948195411454138399074941953314758303208345239892354078439067802656941145130660242430602519196078401738391973106478394383696217504313747999305130816071995548091195359795132539619723387569935504394544150500632166870133851045610696615694981812452330256799605010284076102420299109617636746726327532986330007674529306041386762329928630731526829585754383185971759674425467366347307604877621215396173953948330252685412591799254675844050104615170603090563129503742827455044905925197620998019641880124738995435480060318254810522487039055858000602630076465034212895667780329311165926641720789396275503311843767450741766131321973699528777891905878354394297932291284483817371426821123868200480429746552355114927499055761919064288295255433749747933863174197423167047271185868485966836752267467808497575676580616442525357146330665666269142005970294948584133614998618887199823208062919562794606525984667244735309083687802821525904713082425729301610828879055681825390100143321548446012824962891370137047790287582957011708623998295889164074390257235517378584879643161204852287071264402795123311023675637034199251564309708295001813963413602149500996416894519419953855066074574293464358935494526868264566697268059413830951255568669851652166439448704209469114481075618070426392818983647168790914027295344288822726478486460116020860972451676331057287657683696136640981516759724051325534763659484623183733572583792144620840718153158485934566563970165566179536164602566186654204150179823900017864574265186134251748509185374323262270036386872213455220429550824245967338111112270855151491635252150231925738294651293865549283638556338488338151259513424658570589227439919418146743906389873761190164628258129295274554212897423620681032158347236401713777956112039768507503764995413756764864362195844915940679580554403648979291980256807381724713317205141394437216566210069676474929091167645949627488517991362620294478584439808167746514385089737674798217058422198101765186624845895807003779038192202275810113436044306137378133237225418083062338349970855696944659976601994115211498358666541359492182392611850131660113651574822661944568722808904607442054828835585965438752316860686060288317141164139924488332553237749490893139762762110399656232920159707698846070112875763618308383782327006207614252377670084120118998014794120984582974735488373787255316571567917771459250629303778541534770004456440596412678228667342872823551005754356959977540546242373183947773548875549003353409423721788954364555817035559414024473156260218085850445922622842355094591011513209289678089320301088378254310343022332777873704631082839147517454923295511028712910321302426518002416906889273710180666571414978304653447510071071916954628614854397573374586014622544011305900953449596550327847772656642543402446634953937028310013923410729640525167327950676305275691843600094898686607718102116817674308116366119929103921748728720824484432047355042134139522268224204091009422162020880825566775321148096437356623930513659963994227328087153820559469326538958424771382451216847375512027181302906632167843311341588491462650831519531471402715934722275197362522892242585285973777960941749141955515044621806174681590762950421836823543598361593064959089747374008516518206151263573052221040202224164140804977699073486093278416876672987897948725807971305542567596282524385949927180012497924844329236909735183336040365682504097201816258040321056406010005738783603359347517539187887144863492384612522188795880993151211166757042642164501914949148495479977919341268501837168165066008765041650741660307686609020159667410369940557890550013491490525374072433513838760543208460441175016822079085029784848329715050138023605641370141060150658747829055398164644949958022175381612204360956942903491386363877027910936096043236028620527038909272462724122056117728898212606992479651869289941554823589029772160503456133017851759693274372714442607368007656812060937232259392949963998832318793380595196557793433489796177813564357658083788819171013711779150237380798728350840554484904030554283819393474348209172127883632866891637886944649541559499729359480953688601167774231029194981299436759080767935852155554909540854407162702581771702418880366990043838643319531691659867566638743153095234354154916840464353767641415649089990462053743895336349780034020415114454864344298774072861383925114340558661683318663436171912724135671959774277405134844963529489279389476978788702789636377069235011812824577458645923744423897604755600413467732228293925064221903656288225370408713516830164967427272434212733155522619695853967288326121335263546680805440401234092173535754645860555384444768734372447900300603850057191209197250820727590941649395420332294620534527417235690723064897797388720043930441795804104538194024318830467070158768297613908033114542785263816247084157018298228968622411222127675423603139128907571186557034523978479137649570957025376781104706836645956754486851209122122274144918213482049117090526392947291903803361877443994753706056727456125007236100220689566380465176347288545740564667385470362826625617217533202099898196771965491814629027343671204007355658560422663766545810090517635506533077361565459399389464289277964357783164123390931019151906820570264135525170927700387833775041309290696393195345592765304699255384102516100055341909282265498225189408978837895115311417186225996739723862040290008088435370758455814537332783426927328403315366502708764829424951358137086184836703115699845535436840350574699242713958360336978166589196311168211426606005044957809967026143585200802206546918862011098797130779015622168647516037754798349422542464124563304826860399986591562597431004549830316216571095285735839177709543751686272291172201075617411208214627489875723320921837137774707873280518197590248634404288013043055484820199431824160835483688796592548635479811070275709564336936779505818450722193847852853951609301849881151950720784561790415960911902890043990458172842454276187607369471393140726527587172512582515327301830555194095451958881952597222975002726872124410192923377197633753024341370480527736770162207432785845747698533435593147023307531521876443047622910795768974747819337937178222095472958379272956953902205311023756568278021054273448101789203425214298263895149598612766802437204465366818100319587162200700971373455355351359018013057586424883249958511969898432258555409424464965011368551408137286143859453324824251267716275983826652087383524271416871068687913935810788112351192835470137371866988417112227721287989215726450437494785674110194007347636691579156225405093437397258369276572489288482607917733867858246335971669824895522684765029273880387513733293208030393600539350601143095144988794900912522597294387510803033014223892287951172577089344509195257369829680610764003577170099561191253927485199210295186956911342864019738163057223459387360272133591069752962318624523976020349695825553615668959298393154720285352976506427158752479886327188485659993902788501982466305858759679890335630109108442178916644811571629227993554029789026094008500050931479228811023677365659905630001175110403932381780514147064884318333836421777030575697241258134192640661207241516161219502993879733750717588904619896525408780664464530335437690673884794409011079705400757562560195608172540337572983765642612428584502803357752496149717520610779571716652476725743118566452190826850919577711591156916917807007341344912486155602390418627281595969966496152790647189332974916210647146803615086405380334279872459810671273892263768801073849466036314947211527330607416092730311287645574023152608548365682437001109799946010718759348524722116892844239336182132023222145024385943676058098441843301425302493347411406742328670396227966088637591195815733862660381620181689816135785933975422202545090962260836442014433625223058427323368400249570087271692291596659687041440084029329465686560777081013082148286867160648313846315192445121590185641117283663511449552155874800721261112459110861334969808596439933678798012363297074328676403361764482407513196349270045113228274172072201020135602766097229002023978163996675074835438911830419224136382662055610133468417314815108202523229149030308213671906931053813068839599654189123937860485907091007605025116178734379823502787009308971101510249005319096747225104772060411242692185350384949981618073527551393136863568185172661614031927108460533804303214803747738742222140016824669964083959522822872099892417926650809301618260251628030703113924460093849312610649051205467092083649918025094492729088612011621333822269107896886479670427460387030065649338314106111699102372957063862114389523121006454940462273456565069765038247449932335399295326534439209463119706078504080450505798925503774882907370108543167584873210916549065948061644384920268775719108059734153822057881161586211971755676947733341889924880209966477775348956448013079052721660133438822730421197697388082851103515484287886816531928368922716486626535198517660541546734862602734572722254051879414266249846644629141793289096612522481786089582438197865730397162415918786616350377163871759369356209787112826363639264857458991013937139215428195685926777914838855733867053232284008314522101977589013942832488828017697078465794833608808246118383170277512677815650692963579426696134208124526601740998190979146014331179329082360999924803004105926331275374686886861106076749273552041588563024084364849019416835832193495872809904757286506132886928572190877469403718756280646199340011200874620450470448975723942281921951786244306697242178498320181059959819579410644152598955448299963605137015220482008554360106488950162519508604208193291713188182366361193633200107828315192502457085367331786529088186687097978727581651272539537926956293812282692552477406782119745364163536184079288989566774675766062352081632169257183115052300005240241787981033698983336435677910186454906731782339185820192570657251751887315009352330945845477915388028558724007291574876699000665585246602749303988336287211272408509438244609078373009271249445362268944696343224596797122036066841288409850651413305596454121338560634420364241668738188753897607880930846636167899255804017759076988175928691474443716011113658623301681076341329705377432528142257869337543103662391543227918382993697589319074443129064008173239436014816926810790493481508384501721535578737560976195170828957191918119536593210253075173944595132334038995820558777688758548708265519763124534820689594508900223625212570791021673521176306303309877382155514364420442666860381534570689502340134674250321392114995219016721526181066778570597397057215333780688865984411447119151668448580463688221631586557065019237420770334408317704466617936450259196822995770058392614852196323708490409446732406587534798667812811426132626926429629638620736688759493388034787946916219403334853642639967224900452851209765452425433596881925325676793344606919509179675521790164603967524086379286865304230246725330950030888483199280781403830646321606635308532131120178658884982633624524469443493264350088784550979766587991924353138849686755972468337137392862361719406366599324293167872172678065856026887818584677073748232648905864694596626313504239857459401391874397523667779746336270624489253645232154516859685725784916220567542555293474101523151465090757136829398493505826550932065165508853498823388488058733745850374957738306921040229768642749014647539535245748186790158529068021957018100086835566943065315404070765168387495914325970887253185110030582328029581038369263171499538147366021473509760851549542562570640735663287699547859221936933060203414648841804011368378548785294317181281254214198469942415864620481412863585550850173045310878238965295533983555855355642597340296044262788655348387976502014153973041710222129507932484405652932508324259597833983908133903592946544886785903938589150405493348993466554771215923917959369202737315233671707482719548457065472886675238799669101457437737331693498721438777376044040789831214534423388986605638194330361401801907207812009925807506026242941675973061141130608504013868223933393200597867782476954422599669671085010713134792292118751355255847809660342314653906261311349331141305559085252637302022430773169385750000182772474223735132310805770332217422733662767690053218722682694243352484904661665121120934133900163074528254502460897574782321118318858706526148910353042671624479999276281922474008741298150741249473050969900530793462826091472268653002486697590151882218527155621273232992962095136170118920262742289538058992506012684636826594155988942347926531945777343606384801861270732785137646137410574542575432766845634741730053859564329637260441439418865944281458261887124731560178160839371992712472455812092613719171766045970412746604853609862087931217417436974823471919404586370509939993790951066028164640419895748743699451347806104621330635841134638123071808076777428916624556262142541670872653491870450076576594793452296414065079031298180302303499021163389579370546858605467986531947630838244116952359682106472742207918096747849072787914375658005869084054452602177860322378611565317767257729021016794704822784164103542613510935010779918267461315471959090512571214539849711412895064651758342040813606486607651569234337438828135901320667460337699161261156457334908691200723455310259293741968081884842232609088851029614644309919843701122608890167892617272174558606185570767200194656148986230776921344426599826250787280213727854987087701802254794489474818454721029392441078411946326090548417688463954057453158826354283284975397101375544804343827141957539791691936604998764445895465025063963646375065006420475337648767289976989409660956960558094379285892555495792975764827433647847516117909124486117402474827053176777058720432262931948411190834672020707921392155829315532166376238392170055562885957685386559424953226162159709724747038459948816064712224198008323779000355650284264822546068939414890339648885875383452095825578742122838396344173727491139522820922450112115965006924902243047880896295199461385012826631899339804148503927886480657406018734167902499065929622889785230197064861110851840905838562253169892022551162425921496199858844972754059626037944512107614436079781022005212675842422521966623483264987831948439267284441686024116078807439310918099039859460173696108580998435346136990412942592067064382679495820389429259471194318221006663496968318124855589722436361209803991726302791826795688214577494910567676385622366744782800818443487283998376011419530348788283975411123426242818492604247498211215600991682040916982546066507475006198765578734265761571949416671072024154808935420984166575889901420185103338729694045954517061898403723007797837391379565983790528059083785704781151723297503488375717187962598266327526573501653394289130117230172417514324148326125437125095764535983770655080281942972916947819516783401016562755235442877219893337541314121265020382967990456154278685220432609671944121518521936535814598443261287523989750392462526350739959128671953293186765834003985371543379047196437507184885252771396015784562609723407031461007043689598828843806921834666834112255686225883563128869638470198545364045576824171563639011757801530706478345720835042878062979416476529363395016783697307165856723471357414930401993754346096169698422581211352033577114078391026634342214829388178609499111464686408468571509153894706762320459883560340896585374682214015329963506039276798102937854170435543332531825434779781204375077292155977052939379418921016310127634930455725444283228656316716031035384829658479468848045383286801170380203902774202853188712126891418099165193081067382686910750913751952561827830275079950553710573737612173020984418173456369345345654271995521061211608468349258624179718859851674525864526654766281754210907998438652517845863693940238704935400563241069818718747378946093943874647004947791189409316741847763257404224629056784982317499169014149330841318016463180142023309130566481646177186038757700715889042775278094956538523336379812413854419836388689502405082115702814023391739587169706025575396053186284982381415041987450030943365845421686062523274469636093549432798711704172242375800337271770090739596696251453600910722349062414173258394281205158455504047015474462534780574946361301492537113922502159619703386321236124278712946898083812471473375198062254899635839148095620919191607812328939671885402149528594658849900867107285096100733660649453832830557983891287036564372821206157756821769010697482783986409769324444278482557996367959072625059839852190653584922038084799471402552435430993381130850858571475753932871609824147102687821461143875395792587725419409301998847669450330586158573287460025625534052426601129008427178234321918239943590423699226254457894885913662740083994582606986901695099554434883363514380056827702348676696015359196855159569236395111983063960107583548840658629755590055786862004561900159070451005445343596834518669396098229190178634236739372525971513976155431015607240240329072390575540840792386420257215162785991320855134757481913293713430785859630299841817189442094060137449333337137141803053869228431896178515544088914157477976098573700742359880636957442791723440182071540363973958183763915563494724860274861466106487566857022850613305251430664089412573349018244391139640731964885686791550336465218905005680519880659572632897906980335317625524926792822904284904680303394222265850779836766623098928460809440956110947826766458487087107194221537628624620720576189827489198022831879283120099643520010310170940399555448167675733672130054445241571354929383802953860831638459963704198746389109654936070268344908500489498418568337208169759538265163202036511346949584874556604421291300639584503654798259851503672935780844330172486958635527581481951562698285021990926580957019644381085730894935541576580009371992975720097590511621519352273939434404360561373264523718437388222697843316811788686483234511707060350283653713861272048238251466124336013484193494787346714319436781232484899587245492703649015771122919655737155024409492476620623382823353216126827609069389649597705462070044781939481552773540344298252876504715047298270295710568832313271875123293851522226938237560690395662134397029738355853320177573826507060269152993667407267782354176323537977784267501130933663384498833788050374039271956059282286701182097947785817814571616150278844495920123764759852693099675026513410384832549193029166687279591305558856601411138519039012197551949135914352728326750753379614022544588655821585295550273303759709036936811920448462637006673349962034986149426255906052345382410035472759471926786649644488345033891267298615808345270331155539832116013676733559564049932948177201649195793749183860714173767983889715303476420070349484770453823974134399699395490926495544739284488112845445663504917269287661754020243461214657271152582654006295626741546711957928976073525494308503147379240468363537394621280466679369082840815851135760190620534279908385412737871075194607872143711120243070446883888453944514200848281819089839658493748041416195677404659425663344058053259714224197871161798911136024635039956659987623635174799384213335977383267960564404342300089542361540420755888986144488744317783695509013864616860977835163765977475381502678214596524876406123562072839453043813002202017269716744222541885038545633017856400539112946762712076061352051142369087267789214159413408131252156083591870483207500726298215667657090934994332236758173535906266351748773146606909797740778537759267229246383049953323136228692075717718163502304297748318006038424431698468701709598609143893965252957258382481946746284552406182306167780945394915833845748275761295708942587070699512991007128644539549888204568250964262239337258134414089180825514530226471101677637167833745514480145145901850852090867616785862180824224699699649516977680208680726393709748211918095131199484841200827114838018578536813070083469253488000250283025004228804080402447644605045762456060736485758438635481083752850113907669216402371557536762023948872897688740266372457544755378778179964805425598843571660121392670850833599306660558930872222132613942571970766542569664827457582988824633915971736334610976723835192490319086650525149141623850227572886139894691772974017793236176264357786967005796162537266853315165048574641067785611374036597727819619998634196119179109056567096591890301639095417422921536209391805546372505913365818875205253126071834030238312941633345869189978085022728620590272105975286967988410329233386697525206856763116796837125218044765326926494239820183210047078906259633998410700740252573608864504167009159447863929333797480452086627291501377398770660513343057279051197579668618971148321018627301322828273662761003367674421425507096140032509730080404109168306781014113217930103780219577598550178238077824058665143592909097532100887147478388774985576340390673975669464269724325107236686970515353810992070912234567916099001388328964632566315878967680069739867402553966428312874037923592311756995074964531370218276271228101914041732951708585226895490117184889762218534265244387311225976972113248163620640242555931749778722564313400672242222758452163865887605761012602643839512388468844971186985204524261932213061311227602850934915060440189732555999842232218419358413007787149937113738738231222948292357908331895522286882510490856029781513003630454825798998368134784690733757595393806928133105382488155919766802317158316202233191028239925892216646612262487460343312765706237693793603133537540105386960386904301733078758340570343956355561043543778174384704461943946343384567205396100687520171613490432572643491365185981057544968431942693511747736198729483605893356082458287475552594777949972444133415744743191677380267378225894819020168102435720434202932208978664337989041616953204353764024909420534227506531904143917025671415949616299995685854835846448441878729422420565130706837185670530031622368974379364192579193039192600412480553949058275842274080125184300490636697764803489725396489562438872182341307609135251194808414134492534024527083322511114175393315694094460301254932407004882380019297039110840444338671101630115355874505219090405174033644529270386490313248260852935807686746529006040075315307379967390984622328922630425741111598360586957162484803320019997870474325828685471671341862323418957973933696113330105082717847558812660587015947733206476772137344216705347093533911901496280627531521224820515777797840488081305831956674352179961347312125999185818951124943769995242034930703874269245224934449884229397985970938733291644820651762462845212844489214824360072225021274852850952744024770198560726438341340190351510800620605832716768521010973628246989651425321516304786955060214937234677199513622350220181951053796645995384088898971872594236740147125170132730491322865723272702328099488623571593774159764084093633931741071131608662759530705253869481870987921817668734997494344938453496403659764849018082346533347589690357691260080791253390653010471872608915658331047444986985848648114656976053603305032807071242203983592441519637881185737918844246296826234890510392283464237809776483388965180495338409807949317963060535871408715307386275582855548166341394051394340050465992018535835481738826867206182450763668722221881742024675295279782866155685373848412084820761396527578856907944143757248535423540780628344575426197885342685862397085330710794829522626379572518223808825890838778670329752035571066681935688658593977363410058554894463532177105759472779314058181298833464695161300417920598652654101099321825662768631729138525839159609441893799145037542447715232530423483587388710155606346216267653836735010536352127611553543265271221863063172210464104607786033850161482089510820434424791921664130145114334915844415846352372155297330059347903141628495744055163601253818485417734946856256733956528792163996444805789168482298353935323568876251285724484696590867767955514060019062137618025188333262965651377474482009407897953205632648736659606705056383027774621348906423749547529594155898017670932867339050238419048150045595854003093145865018246057234875109853534687158342890390471256458106614517118100849447412119691989516071375026763624344440001796433646395430373310423710169021939778611873224105353469453945035002258490059539143461127580484388389192818676488738054853361458365584009376325197826106788548644246388691945813675359931952268394637123048817041725151463673045001434597365190360331227367609455091613368770527638640033667446194335841087760906390416830778165434295897956684864462672180951198910285192837114735505316766410405006487764122726082439273690119255878660090278667676954073203999432749285294910482430305366124410684262416602532035771490404504584780634245763460013153964235965753871717910693220603003575869819104514699968417532608050256910830669505251208144299429932134966493379836111249863699962380105396675802857667416816818349017236345304356892360590486668676405252365896052481139663137507098498500073487420483592036490023435965143346923246851329987463250724740362067088213576560008338801140660688652930054386504867423380290240486159836061349904670623074452013062974058461712733189648805669163993288285523960012908131919823828611922728092487872532835349908458315879880407613508383794136944572530337872119205950752049400499381825001797231078541924187394766954908793653483834856920338615016058442073701241128673723230943797945382495598698189357176497734849247896366599197182068818929047792682366862580071902040771762567163324683098886069116531621449185365336103685178673320135078317043968328618498281896612266010042086847398417176143900864239449271332619379965505450082502011929707467323098107494661586675757793483157268269726854850415322780612994747616528216890843888169310966564997197641789273037864150062574765937517255780328679269691559543018920861308896159549565940572284590251288560786695828959192256224771429606067142022773710760170131716059763621325823553919294198457717857711196140708027412625176940486551357479593835942456692499400240154975668372634866417424840237342921040188476856098113731091604296143201692081086124767599592549595846876070447077613717646635595333410807487995401599793009647579949099287886157310058243308944841526278762448723741558559292937638165229100733938974394821034218865483609558208929995312343343796125815432868629534933874566796768822066666610356907658892780967816522939185563438872281401977618055326978698624283503805218805593107027849376059566988981743990093852359131563162975250714447761145053254461312546104617449990329145039864677824446226101401969791935420757351002457069678489020268042087365199456210845656075039278389995006587535506425589788178083389895057037842900936781541067418328738613812729540889649544195635750431656379075833817313483450681560785479163677541140029079975150676167860477591030487296040904535935265428059757274780246881293507038891259743784806685173784685261778609297743648951548456911743058011027723342901711016648902471995045803433179029458400972774221758837902814177234960956617946667636588127203621714605916659637192869120252712998924375756690993077934509635573130957699314243527728272642121517543775402751429802610491631853219437031310251090115394151015104727074411876032896454963037113221093135676923100117327771643022482341186347756578503673010782235491929943256841025645270453162142179687026654910523183520453798091775923832878073583510668736130876678595246870588645729985553036840246769486059153949161170328155654106332853207209818742412546324554458648691207282907854301258121434774387869005300225481457384272349218949604242002724805798498032545080216469719351700224917956405166793968948756370640268360528257612109128297846269549666248235107610461546102131601931755276904566654601037139098501085332669710088203225624920977095144075578565503375551402513792108789324831105904575473632187362718075902591829001409777024624731820911801056190267403726551641167031787686528275111421450070530841535592737661265304380000944812037846172293471780018575530475024172525298935092848988800821593097395796309919372821946091903730885421241304220881458530546163382271191694106509863437317591534650939544568706107011648456858209561751055859317741083723739514695251564087336891390081771860806260821673118520809492993708553147824702286420949989432589815895677179900593425495484798774565529657120936240320594236678135916515500737247546640296877294263174548700249600532256218623391150470550995212462753046810746136993583707496450629441018489742414581937010966323562960108651909569167292813528248669688233574444554542713030403933056974485514040026350564098211126945168386834105832975498036541687530280498033200867939522958560850379954019659533827336469204291360187185215978271791507736022989255422147013334913290678017275890280538858566310539730374338146368034840153580676257350394803991844342248426288787416693868566374395774496105758760507490030036818077279776125513484818316393798043090373568598513616571031484691651945359217971631666873755752915952117265198575098643574027799942680065016865729044221254357818230115205564481826357434944242413144068287254143679462314321083107484513233682878776126287317719051214854798811310994345340004478870527797921467778556975581459297791184848105783799244035176646409327630514117563243050762696561584021786334112672604293962206560859174347391401409217723686278855582516376719826974767069055752855748468611626035058330678906900417417595246146313452906232723082373935957087062203617883962353985575236270404368169678750429807680882991894825010550890331530047164574743990865745511836224258127708386983571047047117005105060415826670813496274604105812292312575395628194162801190498811013265978850034761491326604380867023265122612379563529313500431712528071622908455953000370639819638845586284731837575088112335218659137877664968955542796118434267811732013381379845774736917786080308258440797689448519622696778604971285422978410191027885637703455641638130457240690656649042909170464170533909588095788179839196423224729349601065856640019184459274754720088894270553433666419193868990852205913546236272291703187294227909471044594735143870530534421946760092103828411213474678808160761568721380881104717146522260733338489716610994954728146435886235985799116077534757281191076050948738953193325807586734160048791666863756138275889986059048515885947562521379962661127301112583372963529144154425086714962535541597017236080944075538065779792208288888551370640193146893707342391352686812062591889027539487703568035660137478659031822032927760929725206464409011259770594053755826217496755121058665776144058623160971854532429568490586329477571424044622597262467960281119251654833595932536505185379521896486046899567106692530713457084332058544546428660589494594270093854569701227269504545514031627438113943369513769759841461957733725919242298283623529583687850687493667676682551217197905695733500603713987460560304645729306008978938008853042344954864212574287950594553444427248178039847435556381056038534089225876769111282073876525309936379983925772236602049062232583619228100045902656588720919494986301957802961749175137948705723398568572808441291870982654220757268819115116524259477011211178611002203569313610744569848871809137064369816082895907398936078983465119823185082505486386595316387127998051542679257885263704086653010309580984228104238680919979961655409242764370672645453840242051471576637843193066930304501274481962043276896594062560081017412489100519256799221093028237663546514134147034196364275604356739728093527147279957861454270668577607738696279664990562721298986519560834617999709170658310866581078448647938380055474122739351184313701573572169866421369924486020659963544724013256167453380522668679495784337046498452018499543295124014246480034556145007047455787262839905003371997629434944063463264362899234605412158442465851134795690127522629510889189667253870856445791210626065169183926503942732517294637378920986905500566797120560200483187842182366064388956342130045575621601903702320613251440186353055770854412687915862750314526895732668018516699716950052586915507121453893748628317150279048429137970339183341652483579322259477174273134170063105671892950483988549516958427970241650292371935337801642764752514275966064950179613816027425325170127518896374317596250825091723262773269526269327883461205400021543602626228854363493092307130481945716478330990508117928321131277344565542333671707533857161883703930673545407784396635693256369204230678255743786601352760985991413239809443274956516515470783955755235471095820149425180000022416496034653605007471675739482526991913511653681374798282604160578504759088640780079890313126820586213866182878968515964757420026636171532457752881308248796702513088882900517683309731612723866025833833198969444689291109788432017645498630780803164243332808458242911194775462113360672032802847234850086361453122238640978042835053503570250916291634305248802180465709983993881451822202788224720844008523926096615854015883907936611036173935407162487067810275664079839350748382152283440835254132602796695758386260076934270539092539481206150354763553287489445874917716100434203573788134965419570760234121616861163999150315111875781449552396176985403603432737213603110930840622196060101353164288570113720050580474230043185810281107553897820835040327736814970188430790490924216019388523616511998560769087388713106906969982856565388433606900887997461589181491013077203606558616706804454107814257151555944620619626704699141473850466374057972666218340127180990045124498026289566731855233673999948658184381851209076810920301067023395958497725290008025105995731898997192366990224285510260218024295717829953702532382273559827182365793444104600072502789825936524025749559651232902719278856391240716514690149641391042472124862794170668403893270281527978922207624061793633491697940225772535181404892438409867372645328695865275075751917755611325144162162269814039759357659468812939757028954878115700395250084988466084131381625396549654025877344429797871045109997433357936569896666016399734485914057154972843641009237551097563790524365794308276782020435320707347944094170046071460852637375003176508037255847285437704115708337913464215872255434087415838162411904025374789524806824321377621107254437552228832858950172783514567781537675591925134524081658342401252889917003394848871867123209856543133673149926789586526927980553704794163911068163390439540597682239442365622741645745297602644916572966623131942356619364291445763328328667003323459885282682183640837434787969652425454306104626955540570509962211206488652147308158634906559059763542557108219466024005721372588759077535426016231674101675319972181459723711707348345823841942365037827897853747142560135242900465180636144307278052434490307502238594309534969649288687868158661389150768490652696917041223352203494251468019069026882255513396817485462022624224217242636400596450273555076315483994878861727543577481696039786076768074127824702499409172356539015822345570015863869262828619807774532201544821767418881356783669967793212759724984625123657466203310018672809344860059519930550497117310270296373463914494026672337172917769325498160349639163114657880916918783154148024430414954742366360075042534391248947148860025844263229916007714116267727572543753193481791300253412098341218210487368475663677882653207976316889432707014996595937692899256545406270477907161478514989231729024060338144062233353929377719162411320086655571618900312979467187680775395287454598088031812788296847010642399497234956030368519569587917007948518055978841289670727802716677048252369294728448831606098012976092012443831516412249792739129782157363255317986125650732693021713891103157386894162194361942774820399956097035736817532019955571518779956211541802526647370950668465257675637093931248543790283443581582557786416971712148210574660351899748014243407301074668779503919025411304536767104937932303142515645972392747398869262477685013955120485210633472203392073227855700350122731117617223253195691604696094607769176592357460452504537737166201683627873689855017473643027760972912704513521469242662560880187696956124971177914626901977259657079852764165790899588011718166052589875024512883572607030683576087733288663335346957042225071842874531618737466892999086395754039871132254739976772702270649428478193477086746123136944976363081130549210078126168227183441480389443133277963770786572105068710840646733606031370606092020839572338646561227224150049311717018917396967563954104016233960744403993497775071476706527197075602342657682726313419798332325275092022687521287778273211660431690006322783881587838043384920315716156927803002972915383845992635773088289428664709530472671725844174437922525076452292883915659837186318523846384985257013728538017038718272009663146055852390146708651003906832649586593778609493299296817180163891590753315628218219447203155206058922644098148901047073286731240387638372005282567929178871495613843652520766290458163007714071674252588149964842460480136800084580160184336286218842527354461303856077981718517877756551609082165762769170639400434402617470032902627431911782970502919314898046133889214192321955890144470056928423061167584434505000305135195729920589025249339284713809818359834430632835409386525338950697520530328693769203716693788735149976781370792480193333066542035279835124519817895001926841957393618299482061895427307689055270687225367848862837045076569721304150301716699073807489892287366722254212465833870732288534756822285125111011005347897149269731639408122379665688122566406073809400637477565743581083288919777844346981130361984383282788751981289049556861400031594985584288147046124385720125074527377274962550441980684994075195123779254788380019062455233751046100038954760581318157294279689148986489860374043596432060832156553408015759974443945963535850511520894024806957980915798687032844335053174279738954315882153588445412621283132368563717188321485241873999017630507364051169668002434101394387980201212665632971270523254543475891683294228000899145508810167728122091867199499319851563709653783353528349295402650912699453995538439781454673768124913469043736670681993241239276030904636521355331825412104762078161267622141111654482242355162013487833536564857332720448167552407017835435383217561423368773584688003160820065474920755109314602671691168556328441327052717432680699808644439189330275379106336148191544780435742931260616789321553495316252208087563332566164265737572374523283567981943020128857888921876427145621868978280349924118783697573368844331158436216536840299890086006099853199550267273442151120969159524545283842577268514324821272184762726402673693396982657674364632981348465964747395660080323768685365004003362270228058809889993277359449893590834215713292158975699430907410055066396617223272211020915008402386915640568958848377757321888771384632828070166885869516424833469102157272014411561364611487270872056937228670763284316769692743615716340030826858001449174525389909913324031568745471689075934216000577167535435507797737425543774792531793018577943284086623329358080028021777237668715801245710860427357969348127478199105515308049963081681507545057160888072089048692805037836360516408187724632784484458994435028941117324996851403220365606775433465543347506489169544719699714731890055653498423381150885125890896555531802411161724850721231642709413967389017476431694734346509515798996264196905315056553130651324396937941247976369749163541045947820960648680278209532975036817209056272338229886747039279060079133118352622963117156438007617557634743934749674392095196069514990734390200306966472767119808255368079717977038749695867106907913125067479457836064304405294067621272353885292955515001855951666393561701865101296127235601093425259507748524279580026018685200014091933654324050341801604748756239004090123245088432152674132397415590010140968735849854892516197975330388737338366751388129888701329659273539584424503656271591773955996820105742244075239526779389556119512690472860364577531495038592530231322131034010834287458137537210861067182965771819832798577238712666227609087300218557332180510827001940128966594427077054447406050350752595881652318031573864210907942130315668502661984167967397687853711150740731131800329438204250180540553381561442966879863175145995016798174798054208818924658093661893854988001647224938497126365541260588773757586114946219675070627581896437524058546706937029389151269101726341882676915454200467977186452876603462896847547611172038924827702642954445024712918946484631484232677544890405990243772576994506876152828804652321934602009660015914018540710830023643478189160170074780285458096028969067612978845978220997439866591938761131809410688620254056848910831720320129533875773618520410082679559559814257384493717121715414566049555242354979245687208612220988502464725402788984853394789809056613446593812726679784790991177753077673609250918357987318321045717986510824668629008361652717334935958994763743975969576589498481068364854476515228766342948547956397889153870768985527601322091488859860619838910446613609746678043514649343060794445672740548478389404004515144241460259020067005024956994110413153308033831432016303699491353051362873161247274571783950447174118675886348860283913272922607753637059835799262248646601119850671834326128061107780379266942358405594104265685330001604073968223710071898357641933984296967544043128677036348834422938431931262498390064939074265740078903829507906590822427753363439565618219703379067028627736591208287311556991990836292393241526455779762454568988541842734887147806386766686589040919692351119548347593199736960924717380082318692323035481164092499376603010499964438373232281850969965649946120528706188750061521153492746758028227392506086717089381870494920144505048308239474435527136133659394553919181214007434369962264469935549266044697125958087194205281973421602309123281398799235196297171754943211025859085900825892444414830465221047262251895926465428918951505650572435697796431341310637518320848642308172814259918990190243087665294179114055871922021789224283419323417904298328278246978314264576037460470494774457113104538848841753536889804862232333462665743289337986541077616494053396207283510425397864935067830429395577260119578587518874814893217244967335404338464573576912060130734456770073220933950719777310623775145888920830877576876393944655726696911595035904604965097617709800701278053247294964849124697383570567074131661344906848252390611366375424439920668410958602685364739227604427970999287536984092826699637776941524248541738501735996173102426929405175953075480950067195955637323931555882249373577987658894590220570873453578631943016637765558735322180326538056875510774108217301310497286926362755578381003406062139284313970537558037745815489835376848493579205110194288438390140607450584468846364582159453133300690562360527238337452578723920259733971796347401566870070474181477582159243670023130594440246928495208932016049932773936071959793622938422178482873739831170243513180074321384054206973983286257067663785230482777503999875992543944537500293877686324164384140631094995086768062018067734517039547511223340219622405805250601655142493301667158398896561210645365838313657185566172630358063760169048849377808811499271921883382387382132651538439993234559555999987181819826402258035029569517880101487541085508825980559428458675190885006249921902822716566094424050581929174778874811375932497829417701986587257515792246027413547580737577783305783178474109718372266753709830272339257761634523972428678655553013516392728757286216618400489908280192267245960297424301240843761697834727191929406562020835345569252114038535885291943205947104621564090764946435999973043617142080358020078039666188456465065591655843243377586125145990333317057950867925458210702981549988604815073447418082937200681961445884924972126050828850347672103405381821473710970825620883208982252107672095560699180514373800320004495221086630579278331599230578593257507329914262626208598995950433572994737194767075650555986109975121711114212380136844334174385292938857142559664287829199199541327194310200227643269822143743992528264524074838126458483214247366063499445135725091911403340023222074677170167519451000598973124286004880175206010922505969209620073254210685030461711551765232458170627403114336778115149764402282716156353677961180030824908643131988878607303383616170046738535071974724937012001514826860356274679892654865885128743756050780267367380690060100104625570899292523727982546505431140801393466518302631112313993409787631794360765108453014661285666697448745082592985912729097141077285210209902746473676419448555223396022111012332278875227641173706192303074685301989003052446585270952270132168421065373230105580794613149905094225129081554983432334301741281422408144765697480112263530415009069528082136513209346086868371845598120991314422537729207396350675351154186387916990509283766739205024364889078817592634750546047591741402166424581840994971746819619087803284995458332072978654969011151381549218849681518329400873188038281962277787003590778682846216008708488983372279708801050751014343072274063516234555380719102070653602678488520154895366642613629611585707482015991837256201751392596508599396052713461928956634213327738491514453219735257583839139309355065591546404788748018490543337531597390506986643067615886624436298309311045094673052161427581169436385905354431934213517964337201848357521526829711139222300968755853291248232397718069352862598939785196272977999389246289455307083975016370040299568275352662315576810533095919081293383423634571328861462464250149482225602490390077613856319820327724208437826087478653482241804917006715576040913391070985088998814771227912006079678840612438187079956645438357465667014703297974218614012873673965538226148401958783832463820586540395839775785383173810425993229830128349534621964886317419591071413421110980353740446191273855683502637127186672077320042404034448804540775283241113086171374080035150341221276387150995389471471492029088858598289651347192101524986973941012774952757030130625369035600185924820906097265669306435034404335988748559055681641557736418827673336126290324215958612338180594809274631620273768233795376804630387764943649341181372356330664271106237382055828420722488703316805788190499626940954461529696326330611175933645947698316008794074693992774512659808743843988599969819322992457965025836824132630123066273849239184479329778054230213702038669087745685348575871456879880258214081909689982525297709997969225897555422130442673349393370684912277102213827244760269765502667887136950537653410160294113585164896948842145129502796771011786788595185393288254276405555839381231909326754050102630391166022745610264336583417490037737148408303521821802140563140671481100000038845771563570166442613541593859127813213308509831413403873122991387489941718428412369174014988384555744637850256272437698667333247436017248893187510850477632486517893758541928537094233110685160559020200493608128289825817604018804589823002001334722153984638091743332625654759644357348950094634808168988164372563009321086026158864481750332561451804007423339140424508148514112693783079976400633318954731865968184478488033546133202282503099029741442412806624285749152822800441556198183184548855316525564677806516503201696945968663646484488913268967696124797810957115328011368943178774225295630451958604891993396408405024988107402028782787011746975305644331204868056650228893888247323158101710128077221705022288816963570405673039360949449846780143834325002637829772081348758807817259017678994732413510232406783964517491731459481527463543329772152983665975301051794856928359805822907338213267824009774252098090247271323280168938425995277901686853047280911123338651659727666986849567105103014321100411492239374173851795066798070882320459346190769260381921090448273476160143604119809647418387215534849923880968823322241197007763040085846566750538519990542588437274177857821704266808217976380088260772432715561843450386987394801108141548191549320767007394595996865062056636697829383850695306566418846287309997581904328580913727246176147968885058342930365401991259049615289900686307038598819412903692903162057615953562719085463853693023287095906485670083685643981729975259681220648790709629988795277348301657726024619300794000797381161986659320905453235602529461486552689929361963612907092891575129559096306420030352298445462142131927105889283342581333365527703404964993141879649103245301535713874872818780392655133344505815014463893001867307853517323725999416562221099242373722703222179374897989431444604901179858118672785192001111952521030677925573508372386666720008974327916797891426560413706570262225555467145480611629652003037354891963718145689315811932837494881210843542511136550860796666399412387945049519918023605720594817925578712484665967033682150495537705889319354665539191069048372314428859342622862646293407052611062184572624877304336699800218450057240867928617048227714443004170948187459819812706534344547265889746656925925292283317568316166567492235920019139677860445943914063310279190303153388945344890004692399799738526265378164136587030240587224972015852209199416172221400791901459798807960113268952525260068013697413903949434854682274299379779763997931944483990220336457969342820785386330365286836614193771808767941967244925328752743808705099983702132655280397273471750728865081190674096677280772412975514935535764501975001353072368386591686812244275344060203706776466427917909748269058525142497793112599216149188492018720562551943596947481140955321040570912447885931116333206726467029957719512468128473222264168693741483666483693719836622398626943734880461193021658958995428804225247118832437755935351462617318857094827112439640979558879640805802489636124275850858565581454598538191820816621616677455131450499263623483168571099330497774910726179038757709082519579759460288636599277989652763622619526955045896018750649901387405468929808928961589810924284225972650817108261151770857637438936465148561694877990879058958270590149969811015168671617165692191714885057675582566446338277822963767727220637400470498994163971281763066794130104318146340042617917218057898662555276165355883613646836137520252936909881052867679055094900619659573890563517627347692226256041723494689648351102691349979292834075241901504638977788346631947255488714437578524438142753865110738317431604778083865559018744728605134045882978643625241407235871244334447511887904707263617983713773900822978866153232781911579986778040601783116085541150474651585498539736253688831212235186882089780410711151314811857794012963471396801275743200111915599566055826674254467487108016743084919629195530748041439296446040868438974001875351736669140789881027334081847517511896940557342507628952396486384067717481978863475258469336370658127514303849312893113631062991545822575074718902089011648545004616949377102536000217205080109997638337920496388772345825703702933713464631206898886104160891242106575037825235620245763571650164241481756764453265325781979155548858046002497312989567120723730959727942639222536496236351682381687859971590509119127406968939268702722146440349826918992640775853283588047578328847162745302221884641369949682905766143935808198074412295113783450606297030283911426816976307182340346508637068275912930796125661103151274785926372617754327543169314151635858042043080726272193686912400185085531883113261842688420268382278032841872730563276354807351333292139215532309773571597069475963417800815597410019107274529834080514480741896592865089014825311098985786230696593034290829991804107708149249729708392027249906101490049620509276117128579148376907760015841946555821162138439112043254620906531328240811418840124202394337465622964499273719261132796858960856548264435674373936016329911045889103842368361587438436294987243741464399459259095779488827505709221322861067813869556501319689758231902666167667526229294501517874248703596217368002020899583749552657504228527645448637723964769563802782774120739127161189110961773321092084580956153920182084723800940321933985038869982013110410522168935924219655824759475305793531382272088710972707864262377124192190932616100794147557103716409434904353489902341330962345108458217785600639715415068887802311855767358437061468769007657290060972799075627375710540076960149788288085561029952873617790422741286116004277714812372595374742703497758645876780745795709558547391778194040316969193489087328409822161004952791053321317531938052408169932545102093716511649121562574338042505240670385422535938171804120327368127177724388204884910119475758279709706412521171240028272555688045403235261708231581593164983591970432427736278387179390820026236278894528819745534615513404351259902452383374866514610270273463553320419873829430618814015383381432451894702433654254605264594869806745919583347743899274509439512243850923771289423189400158674424833128603774125418673240064263293069875627790478815719294929175363342698971073486885994575186023431202716974324532586200998235359330234742406635290638708617007167367951663739393548512342447654433176313271229787111451425132530784675252315613197930124557817187513138504519055950812034332886554888900705004754011619876242657074455271504226501157062809514498135132279318875761245119719258393897526545770110906833690361505242821494599285495262558946652551942069195266432268138991547566907786964882011846683613085717364742619428247992841856914106508512576061405138767018584004608028088567991125577197923717385995582915710792929264924172357442511695213030853809772671261068847454820626119007251901702404418959412676286337016710529439968432112578173786167634535431176589745566230253842835761247146959668343846733361002775543647639280719796630888358531322957713940676573255677205562605251441312012315397384254992269490369837729983045303255087076213322110722125160457851343259081503611591028900008020755617294916769362095849545865233507591349939093660326789779088281728919763426925626638308485498831223754661256440786949350230303896915778527209720125726414279247312659002797271023785760573268384424340850957418061867769151930780789207367383467585711696019689137720635078532689071507936185093924730320743952033892351633723770451392101504041307327802644389115980580921514102225681232373675616362079721572812013108143734512740219021367578982665544113499737029096264438979022531923619803262768671765279834599104378713026881726046667527806399903842971946058712715167512899436605460347878469840208856664246649693497035954343397625717413346004176726146381411982589820992311562992978413551995518067074722614826890770723751026311692408824892580536429026180324966801573669089606757828034410761781172238088785270361596328097232971756047727846769764870003482410903347845123875902667991612838117696735535924602951760403430383918937056556694909022140965719348187585229851971121519905481469874582773969603716260971226302777327382608885710469416176676646104852030874064608040203712099259607036373087489977491822391542720499512956027441169219264509337184261215853236252133285225068780256520556880943505655293869756552960204573235351271682277109610209464573970662790818876262454783211994520388010724925456088417530543430010925221684356819694203875137437800468117891477375158004127348689356390661352793286880509255965464412957600691267198510494628371759912950290442606425808596198014283455237584979328224486144975362314528347829009263323005258185737426983750601678027521613114103757087858488740435906127998140316355314080274647606564943362908231669856101541722271082223722512343466688498499054409232418735584567107719019425227088416908636465493392655584715882040001667543690912792769000072632816138472011598766397133287435611603417272283638225651950768810039672590719715705440789043851602599221975071426341567297868779022021362304121379583088164707429932864416750478372592735388011564783619236976408617722350303048775129327298828966921562112492181001845407978058529216919354909806532018552371314016263710217552747172597725171363545505793911262815306696824614983412930854957242529146799976295620923440024980632145677893153572592039923461096768754927666568943680727248909942467703025158910013555812348699054029675545575593108238026134823490511725383249446112079533361025656372834122537077703390543354969942309079754435557979585083467748776056680313292503702812920303572728503219677487039718411262763968568300860698805631754668208145751481533236412562498405471932719450980469164172422131587720364663518054699149353601873219713990815840664080086078492307502089798641783806728282712469091136902729575013661117691537123125026568315942566981449944931617922295852287260943516626354929333801908829407545444932205711142215785267421452777687175995857829469382744086294372565417059158771319277378001324114553921134245236735039434154906773841714931231364571073497094538857163556006800448655916068660387270149265904434864937088954231664137754385000383203350640548890948060706116741203493246469104925660498355064032541477284281602262615351979478020905265969371522163632634619683301377133460681636468440785296916001006632606820636322424024039518605981560274494146915940445503851154960541238427801232405992011811293526670052637846143214782926338109127202624975169446313793740528893541005844552734899266131717438532768097444063117063475638734277234501509951239595281782204891507871354558499437705888238730172499737247765656300641024480270730885799579492674269496518396592977274521110607474947036196650122693602548240092793854715843219488067620425848697158397349725839047082593617307006339961938961609208111686190428749209205776689354845378193319293639610459479821567651405540562893813689693753526159771755155302330953083003095718959284868040901048982150696356034181077188024854413355095387512938553842345240794622768012343753498159650826385010161887003739607977333976552292515176268166078407037874229568832536939302158850281919616421428440322703525541315454085588348834096540715731411539544345850047139881329714555097183133742982637364116016280349996656149646619875880568639414648610949270578869871481009795309959648212457229727945546081664101132413791646441016502777485286613182278298522568337965964113727810726473895909705263639719090017660092902709798548611490334353196805943997722860982354005840409915679223954460512490882933463018083513577845663654240249188510239054821610232792576822788473435977779365681650985968727243501708056574854776842086947918093498273404087940415655234625854171159328151562969516458461633043218903813665551356479126179101192935076125915411078114495461101605002099518817357403249866404661631202756983972014506722766033808399897765896659828662090876627588838366453897318715789502761641462265395961330004084548481689119494421254510376020587161224110550664327261535427443184257244503893323509987558233968292092979117722804886430567413730877227017228145072194471162882912505724943925721540361536846614857247592075263516966981432509623769079582401283612538425616045028608335325064874591322678859150605081507217452126379446948825982863242897903403440038220273276767861723963186725546455922852080590878990485788141841057548194850677160470541048171851264404158354526674441031975575163228477328950350607450999323450274455013446329349431020675201567433881598116799014261578572575074160172932534283388677423876387573292143909972046292153033746459095964223496636153099524935724129515510876814345166204729989687125169962086073828091068343901896394625248101086497388679637454851001220424245674009229753823100979178229080445755364741459657889700427274428560064929648367011146966508325618222404237462535191510606397006586946132591640772450001377344907503571162284612300729295174861358371969513564814661716257222124776736398355479373363841357366244222854327238006546890154224245035463414007407774823768915921317179365012801902181547461357528087630979061831148210198442467885334425263582828297148917599644044682608544108816731550992709233968127687028615708954128947302797792247590555732803224166017520643500505334404151200229008820622238697248094610145604156830164819444672340760359753758432100298127765649060234676626357716495908415342587815148563311057380805094661917949874441330539412759791970434231002926089679633025161069982709404101106904814983847427957138675445189428399106601279438906028106075275047189052922023279508767923197694373984094134917611313323651057771901519626748257261047663878767433896383822213562190187185861638079636371721631482785273868609534740164387966125547114630282184580840911710374233876189321021662560101100195135550337175364789495703460517153337216261293962914668986846793728487844810568171110134756403736759013995010710660108050736858622194859171128556024042630634968260140322959337214843699160688795729938461597399774595338474199633924876519523389997648378092626158571812567614033941078594242270742778881598308725456303332682682132356778426127028133320694490971062652504683124191576830183495022382138823313699504397591782792852745387995518236187740000349932430370321727174431966018983457561835904424637821161930740878753746768307814232217375837717217700331781483362329659414230814418867946509510263203756937089038508307220060991311331126858101047527589962714023658761317323924554995977416967661980971799613952142587551036567752110563154439591912810397972035438219021641458986877205358603638588629705891194953391407202004928727108811322415033930113051902301988916515626664237644988911952193879172493921189366519958673860524291279385429532587182052645460427852125947347939317395837322094719083942025888665012810579415607962258421156125063681545619493283428644512188062564407029852594550975264131194472988922578593461389484518322725767272310133897942315286048686491836254882332069666339385117952915476409782645773068220595788973064761142638197515408174212200020904144217060446199103534899932391108861069812378505076040969229204317119734024025308228406385275510202468321314136038047767414586752293314765951887318865748233694821864563139043873554417600278786073701834791346787299129537113533563530535483958210616101565697826198931124844138372972104899615175836464788932632303114078885847693783720041017112941645270501755428678665197761415199502487366834146018492870590945784281094211084053111287117212321407536907613145721834211829317351655058839800070731382071785755228089231185721567954416250192344494812252153547350191829162166713012424144974843270927648668600980495243943315514523738841456616186119918956067381400516343211338568333147447610629805907742327429242708452968317019812436444791817514738879928522428556393289621650759826664596681881240211743955318745415175452999411285953527898023137744501004373905057309160032059804521467881059692373715255515390211078570022242182306938060922528647374514646730326569177803849657985524222074710124658322408237666358129957877605900271268380899809267609377654851979258153233770489492396229045388299144445934071964656995862498021828054095563005350428545210768196481891844907564241038920012519035527649421250867128563062640202255557897733209553976144608537426298480723131528290503543481695819304612992680752281987761690134938318569437999402863091327028879709167470524204548302527724923207593748438162591929678585802484567559373353919134121365432179141874584096689469903349143102210658066288008427463264603736216277243112517998249079131046691694819401986010592814809364406269249190197932835625832758043480744507718208675721819445478708064857208351667813044021211818049415075465332387710854688826779921360605246681900918095279404029073809163831270031534019047943537347281315023612636894785532657139997444971258352568646382339325258991095819320705799502581374066965957532801841721086255424319274944436729497001072181332415595558661611106798009465542277896584275584493157358596147588408858823243286804910452100859455990860316644774989750486318683353965800291485032782984257349355646500834969085721314071969253493633443755537063173849135886132656545514788865199213161664548566814088102728458994242050634360813827734048374007483785009631579888826667771126160044626523312634727389306790467291698413491375941148583565501050415222631423861610649501196603111755382809991155431537591588500722124717650294542438007583889992852197957481973791252881456948027050760696290024784675027309382278708969550976587680856686350986351293100570756805813517329715856829037404373834393872627793626386704156093112793958742068307313054126354019385579639908604234334553350594746380364590636918450875642254010368218345316075061086419132165204373825529481010007706375988298407610762476394417608326786472774240032776847511388000125172743056366245229732651643974314219328931972488009271027298688746800357661061166461945530833939214415215015089907107140149927482063196451995057717217876242937979678626180595148370633750337699759229301140797219692688448505116439626008570060535995034294500315013791982451370995072503696223351765960698367626031598599680355087621175258477641921939579082554777955071903702984618234717830411218502290728029299171052402192886345100280784969233147148310103469518958486744620525985703914640434319066498009150045647052743739392224623185848070668596167324315564238958309477769644451236450055356803051410106625401857703036530310636691926891334545541140042357593288040896258709045348002753921976852163833075525128323979315525986506290910488800685576173081462931720123499280482756472280321026178424432786049474277118118554746702470398895056472340314944240254777824961903959122125035109182535265710312061232909815551311104899151897942011074268631785700782785047147188711813875994437851921232433922885549781696010012711446473180652923090446749911398824137716497485147884230061631912491534749870447902543055712773859168284863587450049464275406802991115028318339259776238975036637143866120105614721279851617973667002039593631873271278007791205824466713860477564777197971697522069023219911890302802260834269618472192833231179431446671528902012384475785495395082444029531282925099494882120188313776971975326850665240077027989852059765502884331131390860818261948172782920478617249616819163252116517028072769749478486629287695964173749417198215672385841761124190399794411035472534492288361184596515896283215088811833613714934381543696721902760054877774219206365261229535801474544395965837784955010054720282857249501816960187202141094667522127325705501372506717194220261435896977236557423099269590186504575976815750102709790082238355088758007410614882051508573220461664065920227553940851653884154633631768137842265578757849187454676149218303850757738932220502954029890796852478826825379367676905995152808709354011385594300363374944166722666449892076638172067780767700073257478369770063790845093896322842586927092596634716348096732963303707877390545911646423243449834342380601868872605476473263429189611400197874679665338463854941282506007184511581244707698705631022107318206063554854629343184709022216159668442531349088303808289713117657358805777931242562300770003432191679955267097765337676188597571906095166339888836215636777049267005219894230465774501659619186247930212531583351396993899400690331847625992731626679432939747028206704473472163073564543552550899921592174237769523245003884081974776813690326993800574445142630507323755658907209457478003876438966753526854488546649489430664225440280983637959188455239187268732661142297854857784238729940124642421075258136282741124675042520277055645921524210019838391571621640617213343073941157654918434264787379181519363915572392011107444851268630191394835209892703294251484664337019027128920839857325080908293751479660580403676525688062348739599147026232154924816193440144828460400830783198560029869842777400163161414427413523298574283955663557306636925490560291489946384724707555850949149123207141682374799835303168955625222573967039427910053739848409833049726358050963257449239558491716705793242168707514960476266857549484250053204791961811333341130407170821883438638732534196259178604697235662320368912157764324193722182776392487397064757138670197190400222709993273376302357578662587349345112082977613070906634395163824297119201778854857408597671189809204831556158304435819680182583826679207513250090470136096022483364389618381352393090067217079361170927356400438585566059627885457729987549641737900620966507923872995965454393851107654769662743497566863503668975091993403628469282427515232588140303227762043461905420739004941453832386196029737718683105588448869803633526930589765564345513364941238673412894194185243027400589392659084575721381642788429045029715049405159860609846648174129681979308986060582120781445739941851606726267817484374123324445762037336175321534186950944502493904739944894078807338656270894086565672575994373924287551601937591275222731513848266723664821471247709731982265849335101862272218350243258281745695558516536634166689745192204083143806563559166134501047774065778280300351095449345181252208623896631223055419405102556339587676992867213600595428558072295251449454500655041333008307027602721809976919001024345313105771780974962764104567877297573329619588899492905157096051871050901002944755098459945443552809565064621522791956510555589820468148320535927833837411129078603211097305161104423324639986318394675230604975136226461234291938991057468138738885318954765105425278692170669228353556892792869040246543633573706273474331418294905978411385278428250512158339492643563266532579136502034148950691719226554794166607650034281958508819248979726874763078490256440254625097783807101176793763779620256376332286356357574188851674287507618969374027066186783143333460865446125241945030981001083170718424319828673236536741047569278086760051082370808601237489891481326796961113762722513067361022489753941373178471339950604329979420910796576834603248850955191230968004871267559245614525439790902956198907308554013026178957003315131111865846427947051784992046860902424794914316347323112320207149355591049446866127018501004187756004637755659788776174492653201097795965303520070444320069499092394430077215625963084834941166870758322483321528218721789470071020316994221899742997876322033161566958647282872162690634229356917729529787611502150483320925924753779153187896872859110596726716756971055796851393685566270707515632399307969310603002128842306974668702466250418040309345164630281514010438657935154446967571633911305728716913280167230213821870663791528892166327698884594513804358823736771430384496292154260313472342993110617251763886963205037511289312164555822131626308642555515929884774930411044987545516088280368001190648084027153791983381239485677678825227852507735626150135844271304978646258576903550049164212625404484900941887946841052140353399079051316325372658585860364657271629269488732554896364363650899187003286775252639366898784557696542890502679274071582030674882086601844019282580194774275152020316372251922961830516838257506277454379970266511525218318164322569270453134102478467671694053757724314648271388224283426435728362019225300368789889236414963238168804960395777788334805004138889904379000814382996800312517680025686643816677621155966601895747965653349911719303018267616387362635287890105478521615590804558423775934548242404925736939470352209664929695430322593539521029779191686840901651910299953331955644116029221440359425741662973911491261240031993289917179757676934599015435261806663258034821607056482320523994381735045297298599669425366691534171953380459820215893131702831592640394797076676265744129071973594193510608574371088946868735215147759825514968236956564724334508187800829920443896550064307765483442105097927934784700774807474473786990227238440460028401304087292479798526570627510358922832274247893511853651894408217957587032425468023243108335808958516301338445425196416120563083406892641833787764037899668752431186138841420954828642123430215421542231786949436653121977453441143819185105338920242201801961110700038215766876841707607844734261394603843294985902317705523438028223438127521206200298198177109877462880936441222759797136782275434138495820947279703166360317463545714868265058579520651392933780443852864198353118559981462484007322057877603364655025658480392197874012102962647935121425998013855255272177990730983839560616836508406087963013171626112277672830746659438791927491539898724426919550566044948215459087559076871324430884622051643973057918002195542920541543778859090288517727156588954390651819208641880896224435322622524594915218875800519024354789992641592042146847556694719451368021674211158797404100154515064415367593105378389153013638731682069508030226544649325079128927222675396720970543880484324893547578252256525757755696798174304584047597807535778306404996359485513223820608992911477134100536636565289350554295298072679979504998827178350290458401439501262787409604363153847448865491543273449433526905832498934724874530685485812602784196329204603670305891518830261762050232732562506175789935978878336488758594316570630623878509498358309229357434651253560063297488537735411176312073147921757036706171894821818733890083644430404667693762216384669984271457080696678778051490568844818693998027026860787860580488878021372344276242287913397191270573956362226890924408181245344867241794278502800653258480565603951957935956736102126392381446300167796739338224403720244836303948764933590417448132047623122944530664124735943745323376004846621811426604009332033313410240634958715736772220095480688192624707908939018474746923212508754562919170359457810762336982756601928125591248746294355227758934621870984681639673857629661524156215388865075312470500138254516344234950300680471336435817433652113083161700655352912325312692019931537031473888823038270926418399206458421276504327736487471068169683782815167626570320468333654085066849391901597668523123880859523549406756067118623903893744311531158430521052146535317807863683150496274808053545105108270584317857892429981249549858822150449878875427764821145547563012642663082088452388045233654129101988728385728000673397102347314346827806766910530624866759470229512878301278723722020776561498169811245986366796656654667402252099290956074884187986046519998871832874567027496821560849934972883394523331774105535704523949907690670042295923843048760315934031584125561552128650576656737697400505293685528941140580322314029987488718203893057865252050837999233701996197850118918400667402472763194299994335792928263974962746818235940891246439579739541204803195767735462887126407804579887841781433062319223385527378091176395543085080228302304963476841129789737704508987845353434586690165636286760886010308840133306498105144686243196488544709536355290502114848880038680736618247015993226973046487845673425462577328422010343475626864090602845569367405818479810199695579573770787420108894528997832544410920819357099946964709142041557332225155205534843584167626246271771049263826147018262147003613518661176815076084018301591566921122882044834190669800207023313036760011177577329711856222065613296278402011942660854759804041893531078111874816639160340248449084639256147162318457362413148870983227019773646626050349220834635372024013691809980362431062138284972712604164907064994504420413968309908946200154637119330229569969432047096013024102955067622132369158319956894798617423363113285448810756988138870098788161643824704601083372016844157830313388290090431740957031817458877342591719621933098834804672744220938881269844871432323083131720941367327974654668778085337188381766600319690678370798097170725292126522472757065209354817360170120121882783458794397388045274397519668017408559713914094170894471610792329074269853068164768653151030092019423700540281314282366829543156373948022726450888353866561151718359297277155099205736229811427096308318599335637945512204223087998083215432587642052407164369525103038748048525767861573917757841479299788967572894518810415739675670903872281495689024706080067789093448135199632141346342110070884499850665847936709333295075010841840243116726766767819935172364642038018516543220309424295379484752296350114878030757678577130837114250342566321382098368823868427844588401171590757759681974224944766982999426577151362691219509480110409169757114343107448029603058935744947904785693445591409737581019152553952850169506927341115701833927319616796051608461218134243742792764056859448037029467537448231698144461720538509414158009415777497416493171176355284560791751630358686072413809007698563367112735700117882817138596439499797619464527970028124339719037479190199843382495768556923468261778781873869320008886824987494135640735483261732271728843390598493921839191162657995101958483688570465082620062017733636659360580417168388753378882305884794848767247988691142029342332429976398979878394529401826430287599389992851934752016474266841737530102835589180309383952901803939543875599135442290346802635219152107975223674492733565653987098645022695129791887863862262488194321394629936062907021525856429788906007857708101096060349869755912273487316080013786581395435078866412863913861189702353733789001281924972121765821648510718395192349246073470748353470656600516473205504655297491551495551446008974239591654415501127601159283436554637578033146240806991997620614187840310502568837737928631607032432451784864837239615483934594220869959361803326588685142994448642890640689815890598254733049824979756936183626273802889849248479766576692259009946715896758119154746543652029675176743213228939431178446561762044797654814734893228020497305747961909497942669166632532073328001271392023978060383584414685360672659349838812702956739919406841195888063865537816067827017300083294054010377242108930539938432212018043337101494292919058129464290797282012877923444508062646473099489173652119181791343764895814672740483684917396923186867773136443611483395228518469286489260171553759671322168025406412624994307339592474246463505062254170803497047932426601119261809687288276450028590221491135394236789232778884424588441457034816906394395458651572308057313842927471083338610582815229867791009120289806202970187761017905117374320603275177309068775188012285775242388160120163911620604871490656098563741159395162306945542546765457453038622115581804605042139654502064802744645465731362237339135120307989382810653081634947461396773691234468653438739588139857458756006364879456445140636240825909056346517888111888630678202785613736554861026058752944775761442658622254901576657048397338373940723159313921389940920320970104383534183924954942721276649153157494274843569307709298150895581665473458968572880613288536354420213268409128606022610990879481010503898789286581200044173204362007971996063642878728634052775290772396708953243278721511314804925350440706625525305236667929790877873170424799212698241772958598669147863315258357568051935198364381013358312205366424281796872969391431616903797271771239493629414264618537324150536093181201931892645418822993560318174553864494263076777711570901580507005799626429683212462246218737457371919559590008487251536895328757267592788544226080356317272709845698664805759790404551190171914165551489087954968994193661657855202478468596741354608645089373686160814997220415474952710748288567412532459786014741574783674799884643851850222395892746930126265269759376935326871583597252077887483738651421260207615055168803280181663065820975344804435273146418472750461066054057646192377584721154703145523840757388490732990521925743165960351616814693069521041609802131981151829604998666756972728232055581854308655198302907104164922466785304045565395355161464132644871593419898540182973701130608090192839276948597272027839424350482390975006135481040527499969376698406022050944766239824628022886762144817562444490679917894653100340282515658797252336678271392679201611318155400539339535094475222358905790943153754570484762128578113227676369254594151291159057260808248302131917014708662716471900066186356249162912031639670155088847093301488895719945230695465671033471689388436131336483627706479045500984205650259922917623158295524787514165682152547969009057208619667404667778089736237885816764267161952857693222600929345388104406066014222785314995635960635569483809187129542939799592915815237094973615563573810006146351287866905837686713212093406024286980592772624950297361020575027633011479890749213611583718402164531506571301622228782204249775764197623339960075843061289631655460342698131707242396091581483146260595712463161582475277764608346984954545679325851668785431045439381794407170546441178057111095023003127788616453606992565402320427362006740122141137244100073950034919920135645270435808740042863506473270714477374380458875921389504195464691394878665895445434803552699968270610357330877392746399350540218276984771675974352382708382996235948979623131784553073722262661782405476025195588306531307789896480475220230463955962750312676560996815090322108272913555843611969942626458133319005718819079496963638920484925275207859695963504054903570954487945040110374909083673188568743438554697949157315762015397180386929294506273348096475033391752984648492695263135587361043996415087425644252344439766645855980816862349191101477499698005791256027256899452782227499428957396101652512519628021774204624077150788764887448275440910765343809554887724018020077669277892637126792213320907066212461169092063193304021490846538719138895138266256206449683424099480742332123259894390029977144361877934117431554743295548999109288045541753557060379819557448625318257472519430250289191794676395398471816246914321212500401155635751811406536789569322594825724518856154127810000655520797852075389478324878549048976295960996887784860023615721020671557336232322691132591085340320092286042291286601477837749324648941413513819216430960221208293101329045560798830126348579403704816994242608377943756905105004666826351116121485981524965640024724362983300815476471559120652958441161046756354206861794010246314478313188963098948924450733450980489350146502425832872141912658312371688148295034632797559740026298347865607241951640137446547629007523046843538416437188685230483278569008000368201601146698321486043931319080944827925979086088098304054193174059232244092189964172462593362754271113845425390599070731906595313432370907741185238040636102141962129435947814057812377483173616758763608705857907180784092118028751279221149443600040153627696773398174223394860261950145988068536540558672704650600985211401435046108272547899830486152410322022418409576463848882669960267742369705462122037939243975846040525157332182755099933292619703939100069605273722405749414566400177466359603961553990652318531889391218338353852619106893792702626536862070038490926534084021280237344611852586894412855147232656305499558335885630138190730291367305455059877352867999613865373471106208556393633440713402479752642043551928033092473323590221274637913840991742534750395682069974448331127047171777981482134561674432354204140204176611300739317765996836281704266900963135244454418143081438123164026451017305752595798396655991501821344660469922715691097862852465005249254188460954913441549321935726440683158036770400470051777691911176474029349626793184178194507796728676632670350035508934580301574755449920030355304851229860724165362843742089943582429774274092632745393854060939761391715859865803930607985046828123658751726714092819745495219770807138918379764329470341989925237594037211562305872496379145235935285965573214301086518986838856198418478696897085126139733217393452753579921870943405273547117589517805646711830590680772160116740095393543433214969002833210998775151441301850840237416512516906636568678898127315391071416346067199994900417486974436073030748811473172256787252998548198912421529739924478694794128370061333192286288078392123013610170116920415753158123530621414666745123809709492000524340943620056412351036682563656184875432350709968563367522938999460626579047527828915234683605320702583479377194746239494321736385085378233230785189718170071040717525846900048658072296225015318502464184170320863471688207127800209057131189325023739005128404010486018686606427370919047400256307415822953447590682616606827310010553399718016515107659233422039987470222844630036291891621287071226009478762697668764387708366639655509826085618596700763969914986129075105003857353255703246805496287090501263253593062017161492499423009797586016531003848488651842814418556348499750431052854914390704691635358312150933835117565761624224801076939944796596370060784668581043049102826387316290890453637609635335942470830007856305649461728429016214481081931731606039894148895609346989377288625192750997513763298268348575358852091319112333528092967502572970562809834246216152557694634827063280714040715494059606214278037688840500362679308020080379920805050377462350467220393236391583692515080069779243676185460932950685095073405945933294281893148627475599679299057492563444149917640465104624152117922168208722308693376993066617815241895760796358441841089535112239544133139550271248544601444447528815137551987299344014565303630344879517045015097333988052128759383136826165600254994435606794884664034196371277264992406103640274918807910449691577468219088019767759302987396559371535344532245764159701147893148556773790031939655473824644534898559653921140727160955550647493116214098718374545537351339784553668801905647202108302797962676526678957551454809474837308556598202433125417062373836714037511346054997011902339569589332698070172898201983608004574106331931626997616189112078242456564322840027169068862477569621310807072147224087806949232110243013524142073084472792698064115817233602559287376307864142985493516667432448739780402283666597572523348941705490242533294794541596159682081897119104221463333042058386192169244210934739084271746550201194828299142299627634657234453971956529512383812226193223987083196143792888109815923308125341000767083545822532732263569777639807716508759666026858672020550465265483837273908752875094900578736264681627885407973435715710862538847148855244192356259956823039871542483806860204814997220920696971854748454396358575950790154730919028587623398361451667985005506526716729747459772737105267241355243697071476460054626712545753072871843007637125991843268747154403886199415393449060466054419237322280268860116441727479468641358086695232587826546472581487406904442898974917923125776042021504487019246745830480403935406666666282238103796988109165386619593762909993414407621783383041588520028408414482616670904502485843018220573580717220361066596588999850906911304810464645937876147766839491895431313342266305332945820603215241910258220990339342548926127487948843273424483204846721474235875355043831963931171377503784254710206441237537035124060546777630213401631459998067684820462324123425721715235722055206072829575442337179553230832975448105228744635853750429202121600029837437799491301336783521782865761778151789445333922839253276071556956876049490911284955877043383980228109385487110994673200735816377429052080832756234134650566258461404647187518996141070367215500510151329309550778084562419056992597465735038683189357930300555831485855487666631071306748043931485957146438351434768840135768115318256633177521633255672326660088621515144422312129983875044280874376815350142742605183589433163088545269689074164244940313260746919524314057119539445546690802624066374528611337700335557831373724381564263941583478603981133872026323439836585328576673592181908760061149412545446186942931929536553981819398455565155474135739112348323288810070357541810078307878581659623845654932038637544665560082018238447886892839625209233894204250795377858723016034360376372891800613871818670956238596900901803547303413037092349482596710498514611848701676533255231195268259003224242788613687421890817674325925199299780740787733320064674664563543191463155406708502268641095466792507827840711174942702749582625469907125997475782297092142700468194099060127491851994211203943514874918586067973925687719709255575182564734207478099330584601518234237683041099974110003306565579495925008675111273656515497841149691393369712876840592490800019158129523185451280289702285132630137624013757951680478104265740158149396323700903289680194841230957102646926167228766860678318769702014322753660335988144228310251581815013913385706629102901844433879958228109200664938857076429861901161849835581856960146922057437052509146164348571737641812263914933068861496770224843664437669554904268367475452695073118778060913640975472503716043137428554451051394072558590190114852538568846317300725133469316735232263089512009163080914612194318864416243642582375911927805596083998313280340921696939616697585694718524337939193801543057890619630630877549455806065684421446698937772266356577709339534197062477873958036638016211550199884237869374860511167469286067490255842485713447160831214171860119956750707574022958032764339496831932290448658156681309612697369096880816881379907269842157371449435113390975331799134550417822038774112167995333119407939955210158893268760309520772474646438656273371610389200569122387140033568945955759846868570735403185434380878089232562456927346489485998420931361239867722956482370428935686173226718573817675682618066947182883097670078929942666447173730688806176687289966867414493925460822823994069090511625717668617590781534679114206670475645356333561728456028341600170730294354394005589257079839999289737925273967345177559920927618594869158981233888501679662992621876950438690133213758681037157671467791286372087378407329916285970310801333285503132948256422293944233624402227078214284229025547840243643676187124297690467258774731640425725500278407982549671102890967220455052563608627106544200641911624648645863428936515099020827818798716220654166876224818570293813493379313756134848979612554698976386695766713972949930550421583695129011396961045815672596474853040760950632539641664771315924706406371899395388090389838108405563160666438649649521696478209275057053540628527642306216499728324838019166696447767653990730501098880938953043603237886950862535221361184393309626112135842320139897604466101057062859158452076992932501777964583396277901163865615323941841252524504156062042482721643436004014809740750007375100393902415576277291598022528417437453823337820138421893250185919910112320593406338887590755612883028723515034590807904260650370182540193429693789104585440354604057120442680594071669918872551085210824119554024774127691840743338338792106873893609152819527341389536944646551811601149301132923160886548912050019432374076804442900536989495758543867699601980504415353006327978766642236585118290800720962821409539758943380183304653536032667922048074531995108759759180671388038705780407808787827294829559944345556261448551773004356839864872542326552034360108383098424792229306397656019676286595583902479854408538369804317290368341457723328589161832214199630837454991829215985065807711285224059926922537152882687127999466230995115850550075734068354220831107463567855842549272646246705710938755924390828637298342303936364906697956848935651033965068890560347030043382033671121544658939342111514826258733902051060442725796445969877676928329327300895905278844541998395368461343429801838140389959137693339875462923518371267062711988437231101026779542149683153369516328730855219690732601591059769260010402253264328817987291034541669973752659334574001435332342767740139988654301571993885877016470215584453109200279641730334111218520165572862782123209372794468358375123377624744535453408751050479866383042888949516855780499506859270171048702067826951370376339403385352393314935814252207404536584215556507800470572220310265995182309240327477338794197648274101292151427288307164853002770420356588157694189647888069297382231830611946342994341194239855366239133196149928946195957215086565426848710653968141850395363660298039110795011803106915304640274955908981733471257671994793111569434237769763680822425460785283945977580849526735892132929920283746742377794986220298985595818888705183701130149711467799596070978737945194013926530279946346493356847436468732730639007322065861635667306404561178837557204214120176269058314585553204587708376562248485474427971082317751110431145077756878540636222980805029838128420807410621141992855058749625965850732800924597892463030535046534909598751255602823868059983295810822009662013228929152092221759814339878529245134228330034274844320370459855707568381512664755035833947912518315346431483297307334352539799225984037188886843441672507900382290609061130740249800893751412571863718217340601773230123276693909604241419742223420885926714452029455778580929194280899171237309262733728774929422545149686160910144106219543358627098227170091266644263041031399490331159902879608951378995899237461655711743879912399710862611792549606608901778800811112784269115558458164446675454259720398160084463353727795457519973901829485784481933372061407136022393515498337330421390313370148061781594779885536276636707136537813946266518475059803122978238857555635156214412165846776959618663944007867203288466870068664332607897944328078596434788698534028625166656631763414350161008802489975542167828532800715091289134237854078478553307700662482047886955355844075050307590413229765949796048936000424582978254309178367850197427898155414942400756888981687973993910456483358748339911281009430461533715987375116406129100518215285329258929408512354610165943367116112155287872630600639592695508297559155095416481056847356049363577040794217081469821328181683227734418604869710281730969279688523926444391023716877050322964196466282049252497131465696595523235906497182407068203036505031812084232548733919774798172137385868245553484077968058728971047155805884177077044409598459397082875572625245970496648682691488096700524545704738029607342116627347602002232382740412392564177677861052178376238613335778960457291258585151306683665466451649898514935337959238448159245017562720474691656814688488954482144899816053742179511010283264550864007794570494529325527769717311921735922250388004545934836422758196473314171810394783737078506595762644927993520665080140844516454636849384187600959986172288261539585147143177054637661406317836368410649142890697262881118285073911820866737367361891741175750642248702705911708502783844177204721606858859144657396881016887512906585565211929679085303261767293041501797258045908864465193387081982953606237809514416522248692680447064842625881805923037020665373920608186256638422017649225674779753512324952185422933193539117565116248505752100200782629705717477684594434118293104457791174825870526256117383768937665436884226598795780389683078282501507562048644732133385549417717107475957291218707952788090986216577238957799056503728273517319941156814273582233941720434184671784105175583398975496980178211896732042433051308484505105463777772054319315304935401185069379055582428630025377278578277821639412900541499627879973924881166880728425534807024598879739355269138805002646485193979003117663555426951581927691814969639457842564587339838036159992907685383048565155714669613871659036472407102218630586791703914537133708129321307791523410146613627817833028546804194812006102599834330128055388430683018712839264239738738051742503602020014413907108337392841889036136833503312085989088521857759821317906939162208173226000535289017845398280622488026241155934764900884496507034033703591683073171815400788681407792542956169431718090503262056596342078864911516003762076212426232608985169131308927100128738348141093607029329080521397486771122312126709304602192736637352157085628539403804586154432452398924574474960509210454528664684182970237149198323818153665982188850701222964232815409935862336423798880152911761114590992082419369469068277837965970677469685822151806228249796465501795304028492241902297009630258196684493096948203616890911236455285602787909247174740187640311515303468667183486973903248064387676202321313401440149116529571699833556734701682568585953905693873489516281544897672802068945956031567541619577590837884994166842831010345517566246155160577266433984439135600451779802121301234704603095168988683284394779229534323564926632384981655293552476517587332583309060777629634277121512201204172379787385138482434264722158628071133126302659129559011376928243827433213620803043681228881739811743403282041888656204174323654803607394715015101769372047200816357912150823627178839186407027763408248316867644949742282423610914174567855939096705204609594684520064777968844273203205952250309109785801583556908450717678835646035145282137391238931461461552706827044211075595237378194753723935886253632058197839509737273389172375551200298312269643999995276560118081448343029681799273757893237220893925032442429575632815721968437761087887847470966485402686136830925569099251448795103784183379480581312369968459029411588417984489770795091535665005612354206412410072676336349477462216663791472557547913402356389479559334352047375730432888289354122194258098386765898102712639228481325556647538207736990807256322902562027530388457434518181708323152885185983472869902165866178819482427256460120408727668261814239217833387649978243364066654085682157345885845094588517173690789756616829274986309953308952193705359371245833218627919942810466464229097309203139538009516889982631086479733374003097339369484545452407853988424236589415342420814881043188794293840838546014173164556676891539106040997457573852520391490368268908532082014735902982379137497380155237343742476116336566032676341584304386549231141387696887449646874416505119857751923704884977770670011524704732334639501460838740786298937275340963807368130552222013027571005206552228501970855606509544160339339961573426188519855563022718442650155885501375894261841574770422951592606581288429646081941308780047484086361006222713027146652159104352098047517050245203437951068459456695543723922117954968651738398814902903375004564705323414445160690702984807123013352102698686893749998445610042675269545248081316835297542285742383685450861652876221066417323088650465339602236197370868021406966291880239697683129914150402500796322257053126469533971202010367771962904756108144215653664281571197838768167600514412314732143428363705602399287881261731463249765634954084778522437923449097815789638191543561938248650136997578576848405565856548544011894417023066681479817600588290869393546502877765386699099172642889293554345710712694979946131877612286047680224994265159055775708628039592769775093079043104774202222236040527865038283748001575662016341018922112993152031432500015802266779844084548712675506058738970128644011684291871301807876324055676228160006533832444841544592408672341573902645481989706197253247633711451450509755976904903702576169102291281981710396571868927991716803473567428225750995741722110683284514219328415631806275935744631937314052879498360263869029224158282232999378972704860156198186588153188875896875349753016024279618619497990063666896499084345195961378549405799369112965156568734536461587509603666001009432332463930471417860968836056893734381344006274353530459698587268398218014999173852932635199819943135162554584890974050330989752575041910836263617495316453110766380327359841539242321085187474484069725045572982725719250660780163181362108126004910299210695834253018373399047446461380032448160836350314956430969184012492993914252453943331141580100210971323961418283339149226722336966700801944454929597444808530711930009565205040743607726057666149271946346771400028212004289131218553185084445997647740491857534319668246594615530347964478737500197374172665360616591274691541009701828251384019390204004254815998162944451427403994880773330230791635912045673449255039425899863834757689292020162314233755443718689301055744713951821472561258275477662803310517581248457123575504582132960555405959358390653286932808934253882475425832649986873352482699792896471218904593351518095608520711769867305622475162958331448014351052896508351017434157965611137936573959236313647191930075767987961937154336695865917475913213973243209058731102746798927004881713044199335381712012851285578821015126405701076093253833467880300547626192754682892337776235091159171109047368220615313821125701198492462922568426592418394962738370741519329716436147699062833239669261495917791185510429661453422760760935438086634264342157082088592852207117802410688869146260900018109810161130753499979211595059256367922339223174055425921983290026717509956672208223022829121695634776489068499111780439352053728703602327907656094733574950074581852741561611121397144707514127937880299224419801808691783575742974644856845435683939873210415050173248220935619486728539941879885003025712873102760669363645072469669389689187146495033618152504179038255524918000710890944773738480462285931146872020082551090127789265691676027980858826457658104514882822202233707467110406836159583564586966176561975508989006934167738168360678699910201611946632822533463283033807413456004458294851474076608409010729759458207826973880669928647323163247012331789340966401275066550490271060491900061670910525816607837202836790459712738714302077985141448567882278581436841120745589540443651072880824297098118820095229388737519767259580354901662317695555926970382994946423232586851075131310913387736669508560846533377021613036117252902297210546080234570365363294654540303318541748460579296971812668602772681512553583829772090434548243464018080890477184452726046741251145647641096853370143663993781117928599884772954759240381667835569868952745428041343682454463349088294003658825432747008955501227106412231777726408204200135579410339657221152242428880034434753341810665059601407078875725095272168008127419988275792995649924936130212350406389802148503038582730653495520675778119265074278774096777053283224442957744608137118915839219489879598276537237215544251216392861474027551752203031470872601035703322646640682588020425773784901959426420646569115460388807574323190155640175851569622997081925269216381413835773869757625117212824651239163463450149722373226096998897005830548529477574499842338269458074913188539167913867595101708533804228906091644123101950240340162878412720758873637254506599770307081423127969824354508289955098771062554732665641006527518575739917747517455779497635374177916970203558641331021732353840575686805911627670236618072010681943776648894356647792349416453503499784614402749314124370930020652073285637932680374343830665421525599517481439385439428571730397703039705150941368336668668854509201632996990141574231815931655764706583403140810737875034962431419565719027682529188876830169614287089187150851781765633550781884566223390825707120566782726308672057061695403469948431310340818089697475220545056263456975153130980002424003216867630533859471864630092120830219693792375233660656031075242915184303735729270445465101667689295135085810173034843459041383162342254482666066525026149354827327634755965471129899992919374494152320941450633225500468958212803350173773150986824648463341772526052556773218159014528397653167014038334871499053022998426758507358977900380649853029131827297140594664998830033252039002415877486917228369784394431968199200367595227654454410311434117711799248023277587476046461337513485501861979880200371760802062830235585934411797789400333371442319208462276460191910545595543162720693806323715364335245075190225179854084999005194761020400342589157714079123014704175390325988033947309778984956432958936910938567890072808535144991749043999377171566198061434584285370411012428955095857843832053626925653177825618629610509241319316468703658556377443135085813515884347515069705081952649957211198186255842769766497068280367367192235615331574719320512874140468039132345292804765669147801289098097839481250492116060040150444176782989468920467086007202526068012342866044428507348564396382949159265048289760934071756069054748927524447033309197118813561192630098173910699781904752203195909980820452360933347110808762345723308620636085791712086129312881225301123139296828950519211560288143187067122722477031115398546199436558515445505108705616312955447462496393101420655773799509020281359308634240156443254530528798185715427204378867793831491733328113193775849822888089765590404416316097975433449405483295170017678348454725662086221188506971364989684753402835079772597001084018356339469727960789375109599736014411410742196170357220880648465232168175373698410933764466703673690239402639736311591333386926674529026509690722173860982638783256255085940566582917848727314395652688881597963037853022377043389157196521543055158292675728283384061071074936695944360284507157479532659398450394300424652782308716285125196838360248554625630329010260419956521102925538886543614461273282690037966307036177675961738973415134346179217138634504363666865296308093468521672760479692975272290881249550970463282854112514862886407914220995313009271827479048917480650883601539086525441336392405406747033228321652875275403088877175954210226771033476893175677888074096416489405385062882707393781234267936666008724695342426468247183488784396660303747503822320618027535070794487422937214612530482244820588161542694027819159452911874446970850184374075868459693949261453228768689611721400561921377380792073518574293888476270560997164030069251508108583445299132944697774812033790900039491909601574308627504439743777080815276906366622476593113601871154673827192943234817906372597966602575565171037749252787352051068529409087207354930717084925387830043301215000028717529560636078703681539193870801228892979867645314349003224147569955911209660658368094964281458744575261825042076924858234738289224829603416163474951907152735223244369523666124856132910172368389424094788315262486883537992511052640611652249323315110886620091032789412953279855978591091140564109787546969291255518261756026872382053050869037006642056249945972538041943040925224554202711217486001736134981503989495609178653890049657842482995858099532304856853986520288228303507280811068460900250736774612879750453943191610740910179550170014263098911849819126811533753706379390274493915974021345323313179979204249945049612939964378805334495532168919206945649809774729990149966028764540832099540872872094455704707572969480843904594032564517911804491402590704565049804483694394077313790744726300499246929289843634892374399288492068766892064558559417678694282176280896209080046374448289287483009525391123386838083928567558286784693778823105361784597141342484348830313176829476152944141492101808307601176092804632440789548289748464975258638186611930872392107637697762884849191582862922552879501160257785258840095013824863775416626635548977241554177218581549858236309724139019385543767289748351433982069108524358472415877000157451182631313690909704061077349988005410099943887931863045943651524987409577802529128892026601811950095557866591978380631964639236556773335997061335973340391275744493716536859710020172175138229275188917014834717851660925593290709015977106969347479110916093098160220633657785868346118841505502521739731627193269546360926463148710957415317130953960485965027913974762199828544803750852284706760648912527882096824538257105475823552182910569198264009486013805167288289294907550939999582326251091527316047005532447862971290491857921527731349620607159417371378994786358340907677250509875612764306717028585147079722503069562048275950101765743835827418313811860122265427837255510635605660706275007370304686925016911359148399943295696158699152981893299387326554203293842718540343025303694971969528427922405499732416172763938968439926813613507292290227370364166481069032549795316580238265766062511035373987314727213801865442970984619262485162984340469982946976336006213212885876437238029969740180828425413416438923493047532558985159023472352709056463964673486345066975155551900892425333195899066778183319049691704654421917014529039118224871960245337870828057359087537614008110994610182308966480308165197990080196025332576768013175050795886145713510025881084157540065677053487123517410437809773687663920743305925939468577818025124633839442880966073776996014235493416408210500920255716561186904672098649278170075847311070487804979421096810986004628580500695411322411276800234000451012347773254925528943563304963055411568123298931081216285071915421297415735469284446925098033796140863588120091100645159858456256515273047144787220787900388232388564694173561905446681088733821878327503370439057391761397725699946478998479048605426936650638632724658214028274726764125940637325242838973977159492091554813371160062319998739231137264425182395829614919895094327965892538578188293278166174148440216420892898022712851997353710121677445423046689791057539168105629632560693407136359535534388885148309476618260114356818383301099389461114523874219188682135918330085735385995062459084803221400194613786564508357572128631087648535332493897581235841864366899464593746258246866952969272467389013438070848084661205862426606335624748099286795914188301870012805276764053477794931418630398252491825969456467023702286623787918536099164668737173652869289967562136192387913024651902261424531951073939980167978873149597540085691205968341072932873914556294886847984661293369692648128779893203854133987041520783500218409802423665247505473424207379984256964950256502582627021037585706257542288017900648618536063584734634132060838944657153765923828119112133074469462579026892540325721401419327388743269209618811027254141635840559372546855828892597073031990293285190459795596824895297075842289841144332108980948916096963720606998658062399835970138833058017943874921306649356281457170620249486569190923934926251469855641538850315743208213427930186531372997467115907002356314396858697334503284244096855611568094643401986769039455852204681115675469146087521379311833203460664074421257242506968191134650645803741153063965349237541074890074101204562864665667790231772349947093643836173420128574288825978843906105149367496734186553680960532576317271207129277065608355592274400151999613051094445251826817413704957857662579361548763518158120486065904721337036277601465646526075255337395552999184873156806806316268292136378227453348071084313383744632386834354520968841140008749753612065853241602237632901401808743570070436676586085947406400801175086652189546535737565385879563881122869534212311416326359332740274245274111015277150898496987040499412086210863816553337812987058625295905310459493980924099139489839557943712093776388264373343902696834460216216133891319319461056260052437839255685000272987168933806866797783489555624081973674419539219278376313158637425454374917827998270968512994315427633606892261849692213638813812838083818956192123569626330442492122373227195589774281774103710486709982514854221873503927936877132199451485698361066640614334487913733146156627085536689076485031870809010207736148531741619389590448426868544996047511460525218850690895141324332681261300358746786649600755705580687466788677756070583077412127230917923186283970046255937916142008136339622688217964638429857191436654173515335833855466652973771138849153515071587720891101694570571121785571817080181629808808554878690161522578996834864227160237152319331534674537270497473172960050410465613031934542196772586343607753453935993218786765452629869059047432267648366085295021912457875206036045089370731388335045381858902000656516614566824953823325987890719583239139617871230220372058694939768063203676696482644254229735818455899131894662088185432249911728684934325523226606173205186075337044654261842690146846977683975055964129216476722128387709853548515605645297126364731211706265409999871555598578898185505403453850441577133249532533349974806215205110223574161620834773847738401435912501327802842809101819905127756913328680909492250035911214925777569965237090645923960010600378036632562698413873819804785357275821507663677916530543800273611755460817610950884445254837583055045198723543935398005115997257525435883501527734487476814641691803567411230348885079090423377550412306294450113660875286647403388286082336911390010697180534381275769387176061739660950321650907471504349817959793772681100815857445489984110506347393540194463370386187949651409226081920557964346305332993418405750876150549666525568378225524908548180505374599912168369601841827907149106524041702004648819236410546702822639087946235775525398646239548856326357218593843908643914207219193820958194384581619162473491419032627486629884107050039451271204715586123205204866965562124205254539691937045087860987955565501762398905364394203384470422421924084811055536218394919509789664421259063544699944598623849404986314465193121441260472367771764621889164194580263465698586292017717457661802540999605010157748042697944608618392721460140234737484878119764649678667393216637235496216112854186203165619578245124091514908994277267671290280256376387749048414775296108089988899492683072897250638368157534683402031384150592436759748254867207718076451894096168812275357546549990015846568882892212157094935487403167053859475965850433310054505222584691190447530118464163806101643790570492975040303546853569730967435175586575478385100065110757594278977978417968314428214138369035600673718614766086430929498754337112258467971053352009936241231940841673252774319825000266030044784129884358166287327691847453550475190137659123410312406057248199580683804591308874720456536804447369380306351053025216828764076412536180569993810582421478895298103301850213951197911282868150075240050892152224781859170101860033886622322639906745786291665965456562565506866406298544652165235035482554943501350195937757472815977095196027817835903009879175727827419682063023660502885906564564217753287054421428072146938530600585838353939637664567576154057510549454913477443434360193435570530784289414303280950433891164886487927858409092571385981216868927948437709005307638150029656746720011076232095794323534532404707003530769884458211268890543451735106241344869812840964240792070694910886434349120763609330050092522571043748582533459199540138625396386144006549482870618514100563809868535408110989757523374075093285823686724568435826442383341646563317412638068385887743432855262665932358893175817963011564445210469149542022663635671202444261557177603578035782154796047457991781198916995954109291047112419865523518376186507882588454496971225245105794558815688951858975234189319827313075597203260714438784576309734247285958956433530042618646598884777185359514982238370959785458168898200097723618797037494997629119369770093395303617222150978848379167606824493227940368008165754337813018769378336380419038165064480638290015147360443353313733923699763768575109635851818739651765965117054404104363468409343641966066612342493698661344334897260805427134793080237633075668195525179146994111111232334558717162850363634861804173424053225555803099890122960144306426638115351134111246798590736547067915369911690295936967110677712821035986994545717870033138161741797163880527070374657899981461191252123121648097139876760925125876278436527002812535719106544345471293632617683351195976860463359735693229306354312159440074625432284042621520175668701233702810513762073264156217286103468186258451257696961078788861901410220122298269648008025260836900094254287467061802695473518422604242541514768454854960983964442862815026998634557863195886426687968098346303052135201156392830257912462542172436661159728697214844808846831609208088620201614420978386583969547840764319939694856650890498539693041332431541677635180941919885941923659555207152374251123678906817284900952622303017472713466494332562398869999765732170496253205467691977138935692358226731685722576313573435134215555957142612633792127641803812102568665217639693608217654672957255885183289910478722709641658806191793362612842039787259653142490020191862345610647517815030033831176233635788267708003158549480375119947911434665169352572438774544301985301636828465220842489565313183777731456306479886928540779967460658197897740495666132286443789128601145437855394498278395121451057837314811729575019034065828575872105518675094901530733583831362624524211864774641226462423068709623880039404025333402715054354580682430380771780428754860623089306214294560797941555847848863087403198015524182655652396789313281337431812788449943710426627717975461738027215088999407296447003206606180372381493144755369255007233678000603221200345919413007625038600805543320217703480559621904938200176599806789447717052770736664241527946457695849630798832376846955374830085926356327666109460725828669882984804135027214624449071650571786893580473162205626197307073021327144231924933033361981612791548067005343595401588678730840535779994526422750453895295169924289039001351473152576864673726744424626642341416754989136153210406778443961481902912978162689864268557679278675963920280778213624108096070964529040635752400432749539946246669984334858509342330572891462285846392070617429182517974866877109342718457427994764752660252651278459321090196603343110030195696864566638335341503964452559859345205850735082092082516490151002857093851723397198157595914151418371638031239385171723055807906576642250657417276757438621574008542105638750622065564558592364975721095487514092900628381540604527115934300432976778759235604898864768291692487417618741030970771257369672684513401503423440847856304328113310413921046067405134155665764989367648026900617440540640515374975221307394608414849300096752171224580475464379500741093661573167928317217922614694499832962619044487093228286162344709294293694325519940294203373183560618354117161885540913206835626984507783486444691650477793664765593239220678540866883630172022898814065881737075811715249939634260802798480372451475273127065851333047711382753233488193612969881073243905409767630922551072318908552896423997897372805244415265472050825666423060839052473164442683137861789050392983215151768705079908494161584055178504817719611210812569801652032123400384994226069908053039752274100270601012308012376340675454958145410291743043689055115689462209298696698249061224184452754900555426646887913479910604372956205348712730446761540935259062120862560328571973294550890919839122315354174226180443592482537614262324711566289825197607403426691267456157377087058415908078845074942308137440097833694689964441698735545068157963702782196684256402358088943752376139039449130984734412487183812881805071545762945689850056792089402903139695838680730797277694233356746050200707801668899289134702742173861170856752468203427211920213617094432539028582718976887742236398871837032092325090388486616278024831082045052893185068351840126940801081122736521597836767108213666101156940203396911117534601357063819832857956737979374626947601032512708934494687381409542402134231338576232359180555202010494699644673979506286306698195114934117012695705999020235689648537230297052493840613365444632315354692839085414143670063037331306623356453081035609324384143295952343046551887048928695531768993493159709749091682836714705527065908709629020905062767779384807619478387366588344471719315221779911157475366871350834290181944616996623636058743656980370171741050932245489073282388171327602735170150929401060429951654016765257559899638940212026302958272140513271445232286035624303520336430764594763327471645330593155656481959247611527363524708609338791153243672528028413968741253432815022886919333799891005472594840817867028345134573082250809610594089406102548148338100142181590197949002141301974947598704798371528947337894878784433792752968274773836028156833669841519965603560505441361997810239971934459397343413889221913043282440119416017570200986640177945938859455358020897212969786417116949306761515770706385475955187033667098211118204119464597325244081534727351308575215997018616528234763627531335363208009552225760988738076362557581717217530932874178840840601064286936040675878597511665316318321492422001335296935071648053374621142400925763719102706364238081818912925586069752161644716427086169796484939394690322881554548645961249264303792344316144610906105853998842060097790536849338920846341156826223212487599129482535559679266575675901266675786110360497912928270390257193541000194061993549333180795767663093220343796339644161138047062148098010492209958506877205828132664633242330214837865963758820034918643057260694392721823372018590765774015712160636750007215838386859066566877359243558173174166571491077140592002854687769824264516424420000515473640796991809832828655624720682180549520302783835368653323098984043591678299016269071237040166873510959441220200654889975636819156693130889525404555573759780438647970422743814125782679068920420974774479027426016794482274931283408636505849085397144630965605131749879872601477823957095627118306726759012433495465859013374026557572333418356386855902996268639078666447554932609464748731606579501013752911625711723661637823490777736664171699541131088643358100101045324236425599245941154622284930544562481585708587582411154863037935084000010563825686531618966372951400741978538587655688876338705434085292142124666730335627156398753040078016801230951902664267471305683561554557572068404999099044604487483669583778708594198041870019869970110726978834558180632462835546810300563417380993940640391989225488145602277842437070289566867947333560666805208129850951671808506710449967735684243046379036172327000529947313860754311481047662099904198233531709657432171994025902505997457400279949299176575306182651348308556008521355038215885203593587472032368564962452832987399084057328002148301995665907727822929053588716409946559348439208904338186413097350922674665010705975503443242701753845421517912242214671486151406135952943325960270798782543571765942913085668575954940782511415639009493351444509413649289747595182958825541966368461964625499525215110055642288623978552983093094094191297315163602626291369627751523407847869142637422376025503413426341249832804512280129157113055345604108019252840563725046407381975758010759739992591994172415045046546772242725874594615489506420596041061295830191980146966769277231347297860412509151570549868038458229643329177590452945551131178977508306977553397429561195001341876564538949790063952135995319302878140110508645350269556501128477087215078026813681624754879788788059441869128966086247176112289152928235204342555619075524745706092996806633557402973104254686860327253375229819258812657611997571991309803540615861806003870656447995632580144171845418305050976814684306372762114170605190998764483432718294062298213518149818030513623329065272242937804173094646084855412950625620321116512860665304784859994697020168318710225475088024799846491247528463835679874324200462012944019613636140229300805466296637807847135422005287889042025461865259219680241286413472384888245826004648089143829480202387961124127608157868142456172489424177555939960482800245802571785144065291990822155983946162320402161917179126418905482264579975481768954303985998227690886893538068474343135498036571952172116024746288764591483270752308150938245511379366737069742514992107328318340241115490342827075462577170536899966073707529686332679856770685631501608789801984039258138397202775668829357927418833265971971214949129082961718818267208314219930245234828374809072649379937781427490527822788545057677739273204800840106250893893973542512038040010785148416350255444768829689530036794513024252891443742247370571365896274842945910123572146671689405906631271927486241945146627760750977811732479658173045119656753430926268953980611387877871846759909740581599054841742626629961714813638777575697440635942466484371252637243487575001299064069794545503015602740491721436550479077916049724407117277306719970554103816077335304497369423852897218464825064703220189375205790375605122990066925104202259254333760067219897535708593162330199446144154958370101139225185615165681174873362408759093178424462352854566559834230290535953190489566293386720362025653802948272004347171590797533215288035290723309024851755853270202848462272771794692347337499831547153010958923157035459206270610723739871833042468364124965686224621728467525617563032834699208857602653234208252467410375989515132616560908943633933636641518939761006390016677298180619668132356020348912758599204780191943628399395689051064224154977143787973140835040045457212703084035098752173347231146011598294024383364528147954030387522940478678007417190973409372170588847110285328902071774751482705969198981350159004000886848644079887205837094193222164929920432936881922651938562531597129800279859138194995738866231985826647408212958580057860069435366595966925227068986016721348873519186875449528176470848826199949355901324273995818579721955273467799979926449278628222194128775413177324941193057146683859212061228690183780541918230272465383122555518274187940644005296024049963224651965022986640657453304329809658847406513796239655205043630486499653115154994422567913521225205987685856117601384885488685907695724250161704890490109005766089283197651073697782730982822249690764349988888104200807397168942999816954128122033038633349251941944119661642680342399089742773755202606509089734350081159710481579447923493810019877878557636981258152433698117632555879803375171606102082420940692474075451550003149642456095503636474651770574596565711766552562606620385536113397504593525514428725712144529192900135170201082013129684777781485653255420306673393428271343698423608260286439928117561963935571816316459421107014221737779966434595215670213638185873221033965592555150482880147116772465323757645004576123216732189969382043144769047908426655925132778058277086125399619739894717625740707771207530311519270144982884789081677566862731008596254312032089166779594586288102297806118723135756704496133003219057487484271386450681639500367231993751421704650534252531633829268596435435359426922158210345089325184367417698937420423211419802293865643851505544699949787984509839880504601345218878365347100700550743428224521614781712589049805439238597396889736587703112615151230757733947307145433643919837286856295827805947190307354339396431362855489495500193971087046768752363455432208203876592502571818944928685259716072071891306071978349147478164091169799848821562048416774461989892941484556172992727472468750789174469213640800235783683481631177404241993618900482370864112180116776278312361646851907604163324986864689149885782181759409136257386871640233276956815089394646756502171409687758317719167252943984438276064712733057340799288627207179699001928288839747032932625677669536931413071716654032937627503453562561675514182793073646637969332599633186688303963543786698390752089304006954869768470697989605967795125466442752462270780972019654593827986083427819775644207461908559920167926788395165153473585932467627642941258155760087168934891734047885686544587470902574602576990497486075641730127832476849308598588963851252767580364433169569875967537773757070865032066024694458007286008447319609545399499742090834372213872320914275533736891926946742257437458312090522972534405414520626821919520404502717282748967931133934206617589874326123368350586150942907918979621160111248035558998712960507893294288749251665294749702799548980716267489954443452718933539117357722495426736673081457468794445288379798517373815912535267965723331954113884913260573652300619745037793134122935128842356170614228425148538209191755234103808762522941948650983270379267665878839305891049293434770961344337567320682011037325202472850205756386789369142848635556136171512714452632261405777168838550672436954589872480141950525223658583077299980526637148456048069189116554288216307860594776328049776930892320242392936675989476479170863282032206212355066160710503160408116183819736655565499706033516849175560945006936054753674059335404996700755021899626768865170060411147493859595775971598684624654138802898096511440099775856323139422976080535251348229571805057178560094648959479392558350942387820142549695037134325759588787049971267024999211040593940288499570054583309391279783113753516144082755456607131509851112565781212809046187577151507000263508141180759570922269622888009094212466876990664699273227993747535021900953489868925788710579735085286448735085599542129307362313996439342395748149975588960443091130253034353831452029249659299610309486832244788558085495265893599478735081641624412497141047538376837560926308537312672239859573776518377969248693264962687246670334480062401170837143759701931984048206088488503186740874687236253723731075442495771740823311272119887826575860934347964253267517823923272215571969979317687401417517440575134953256543950091996999314045180585590257427337237861730009708515580648112550812503639170228391611962553062386035287198605794890059929723093279902207875291103799080774163169636039058034832595390558185387171442928742067552278547629462350885845312985815361245675264020157168106277576498869564086933537557881552536704219797828939556786885411369705768529033332544553103904805297198349534839540318901855527559672464480518932950499604933389819599878936415194036210630099713334629614674131670888458754501521107052164911426817698934278570320200599819948594769616274809409506736997840925386617207481038852232483572269122961898079621927734422613376363674065077600333652926441882071800895162118949888416156000938472657501115985538497319300169968586121463812719249993967423672343343849122819106995715198452295123473443812824125523899868444995021306259104228395719557701806260270667761299624040693874074881255269259347880263857201189221719188862203379662380198253254689267637779375400119364703081014776096520810056972133662190889853781099437250874592410674604416351385262101811534224073066130688066822362085648525732973622010067284630922079177840973191367643193192360083822182658395719942673441789514606374846138841466759948257378077992390436269036114297582690557314155641516700820086967598806613398354991366429910764174077510034349675712114638654244826096275794544011606964630726041919725636033802223429933711202204249090179081238665878005917932382044638112319507572118289895788182598462196628572402232983359215004990393366473576276102316979470926682427045623651798709108484370451004236441084901453953839629431639090993856348876308586161401004936154555349040224237344555419733907258512004280101611954944800868366760122155040557334667177666324898870708343751175592007444595790790665201668825454755186518990872358225697386573007790790207895735926707904826141620294168638139337318495243953201475640986906491651666182014463383334286869772241692979991177762118528794034424543109671597316892264390131666937210214685208765063376013083957901674416565551378473244304734082276185425282872577592061239046358217313604885045902588899116025910550917104451398078900353822273161557510296116519686998275468042754039430058203015522802042352150187775932713943140673731754052199701672510199855635848265712735434613918581952397509103384418317058967490304563258894355365680740038180605418412404703661111492948003836319498198684180489144756915135516991353777205361705819776098480512828968860987391197649749232466214926097998414359142502991715236682409989538164366659589406360629391781811944004551677979229610699052343617664670545790668528073811143024327029945371489485243427982419725216647188846509823069599423908536891245476356849020989798495598146080041934107159407859186951561210547815265209581904012764287925167346702144890602096168760591626154692091267917628254014640492959585966665655398023291575812183131244434373383205350855983827928353306046250036771615357094174615425554407292704329979404514859430811979500312029924570438615178612510428280370851908239615132945652223589082583332855113016260951013645139794036877594054478207956257254951773778004222736598874639606849468046793066135417126414526931063288653956198702098879064183922818798333339761515277158947140426828596420688262224929702373313301846808400523970974480290792585045742225249624959580814934860201420616977744333562534618258233626364946686611885722595477335329813531840466751562932009873546690042290190943600900588242238040779509375662397276359031697703993458318226492306359564866090335724728216851456205694279240404125390446523435911860864394633651578598948957004072931570384348706424012617360402824347917024677270350183403045519709558399956474212951023563164953734014819619876500740201014539956495134148742003443850684567301246493358131541902183661094545099578431051243604511202744917715501465863310782376110386197799721745878691607756404917936641313909805811107212499813991630320689343399015402969252111672858873464773325170278249423713878277128399418655939640133864762968886581761896595773457784246135476079665571477827149312685846667002424680216006730740949773557880131007964680019183689165613355140723468247191967076262891505374539578379923607796622018462047500476868172434358015055631858698762857258474753362238487645276179463578337857151272428632046191678093778155478463026071463419660308354941713101943744895408513150001545684945771384203811734072883956316688890042690638744694594203205502424596970100390276491192604067665449240609797353425416341042845788545708313553054504895059436919023939263339570274761115607982821248960266252671536581801212633717851847509444151127676344065088633782307600815980405421018730845494650794196587521322333785156414857334098129582918463932474906896122254110872775035615070437491034800951753243931365478665026312966994761070626320951513989244550477767953922842384466644862760047120322324762685251502340454688481168083448852756707143516088271976762652670939688170894374160120768128986093649281789992466915882714658071105663183843084224974911499229060193947340432248676721166427684150081909834579381840360502366809571039520421158592223347235189691326132831590309260315022062579174021492285350544768616782382817515249268711175103477711260257975276690386378796496181510724334409080403370465136396370613312962403247296596909633366576340666536069148055204590033421013814236452317411711264337517898671272439532023270222730677205071871836679373947775479829530171804148227717907605078187599684322378446196515323154870951932764060342541743384647473423519454812878475242202369999075100045761219036530728670152214593111764410171253542385270925033858713241939864803068016696165908752840546039031972885578956596919407649263205602720471799406821342705066778607873845978696653271270436218337916807440907633009667253287071308887293951918344040487497133790878951130606277730133777697818298230229694438285648887766959410580824456391866869132857732901388322091478883018680453509559889295860460220513767809051041054648309536024471272159887677358050155984858215454638543960311452868421807622574747253790842328934288566080838314293768568668503157705663922962718624994120315463088851275358871462053500983045304228247329325141858331548913984315868381100256497856513380767580038321230370352052520628161061271215998928823403214537131428555315674792583515960780580566562692374998728530169315005319856018783704731265486173520610733152541795188631828973432825163462303968454601538735550529661024666606923513932012146342224951022576546385799027299716151208408667528875787044039280260618077756570059355419140431210230680032891206038299960083651690129523727240707297132826167132921432258266511287935162928929564005448745782444772175254245499662521294876667878432423655317632039848500128917094732144793254547253777734162803427123510485714738695167423736653028585811568061730872820442142561097174885349648864423336837060593415965141734335066141069779366407275015127496036727289852952030267642239727270711816767823796717612901594992214174721314185644483442098026784340608261810388071159468757328177438194799811141656444559137824679274969627780272128426701959930767439439770194230093485577295401435877367556418742649193678463710792061158585039993191462571845798014526802317394486584932462349567312751361596400841020385750921357506745171733557722607943320666036076726288456756233692319666058516769908578579085395763636724073893062835947420270341852107478736644928499838084811445098717351064450991220452988888294910559709159159550602784194510922244858381719308933585349857971090607206508264188546134096494397100759800573316917017840776310248411172886439788504139080300341393990183122346143209931038598587662035568241756861892993133301964244144755473047171970849734766261591850234604472085018472240827269072407680101315905180287111030780117913384061912723732281566050941732933071618799462375130921179083734763461724565436365615801028132105333919991049182485840434032480923899403417940640779702886953638402476680385887216749991672848799004681922152176114244061292091362805139498658012902378008082965753202052693835070363523125123483028977648116770540773245124709552838254548866049147989137003314424511216140257867956787720914369026857791699922437658008150354567286026465079899391746181765481501850351856060513207488995772787740799513840995429689499423634004915569405376685871337923252810961500620224218931193113827449170348302840676589240412208979501801738464504729599113500094906468997088333309638491007203338391177901846429037702743069016421952511650931395943767919491418942486402279743742824659582857961537921575590908776597542272216469539095660164039032763152123672148673737798446062677801031223115281047297622818204362590299568847800601435341874083832548065894966203509652397818506062557504418552545900801770438557686981016188813245645861591634491116743461170225980743494156539812783842218937562291587145386142894200910961307059750496345698318053488370125925535085140865593164164593115678615276464656680556268385868830082084636382227009294151470184812869494123898928120524486572881238644405013253032737607138369931400510204709168858482252370158205079524421102906093216199011308726201454226993104216367089521434510702666569716249304455291728424078036955182337243830049359270056481894768301091824212091069876926359601827661113031422292438165936694245123624632223899269401582182624697813670095193688339371551670730595343296390313261247551223923050216809224166367978472902705494609008181135908285946281674070774768992775658074335010157165601011753727938691977385973920768091430165305448167215090329145253530329923626576101169339596600479124286533079240479991410859691534820172616458798761637403556173180077486882017300342107508300382677906197580010097052199591849083449606889055400518710682936438448531252800058147556046232667998424197168907326726804024334869304003201241361170885897605939155491709797683554514154723887070350904874794189251995567400460273831900927118800326362712321465439532761392381054745146528541483914607128286373220344222225116717765965298444441046316694908601544992738604683193049645549629532009264107700399984406052825251062314712325676578500268932779565346042318404499121884594508747115321311103078907263369809752719013743922081771668402147716626677135098726845786197235794169012051349337111871399835699633295438373273366629597108608498461111761651985741590608069227969969850161652097920762934366073106851454439218561404878632306282192073870457093914668229465517688797170543670433819928487508999754584155254310472508673983274618629634007332497465584743713664653350085606439340795641770105360646257824929541334401709611030469051820961477481404540093437624139251444726891416727687322744284896271660752795359418849983722902692893252988025902622065822503767208829503959898470737763165121286792199450742018812103388329486654899464150291859148240240727000190952851014490313346368416056668739114121649410205250415750186777279294043568386024435226018562177933385067833188959947509301465892126032936955115505491868012880427068403038645549296375618588099752666151788583665167272443630670874874676789723297348229159684865723759083516776525903808266017683685742968113293622384148365446616213704223513524501559969685431499918862561128287855085217633003817544948583030035492831680736965159052209176297774710050216751340747416734681387472388012482646653474142733169394390876083543294160175327909250921172058512186151025276214483489997026678717052450419656096852991821828668260447244931471280489786379592893148294694252221931630802101267039468746979710036566823496837745073898323137161435922822043933248233749710934217427222080017942395473356919174630520574323255333232153765887342307707901024255283052212012960511943601672318785753643055208008042486396709016651948420600513047487317182985634117932235774803684545475198215090944171150677104210680251482764189819708022732479784377009782938114133234811418495122974466477238575836141689745730798253617246346467904977435841800912979131746962406899270537568560919872679974014933688254972314428032205650932866742566194637147453063532407411580832051241733374640669735928794541752831996152343719145642690792269531740692884121759009640442843166260603997782640841198776648791846941937777339426966214613823303413139210759016674705738789154903106315117312123015797008662992534346217197227911304084403047165360229845681690182755597504412262388879260415410166950018903259738231818651241954004860983602955485243860326000725792606072177770307326550261791329109082879791099540503269577192384077078425542074259740211260615928291579568899862990941556464358054720154718177381831091265057392863653997099589756646899253623382372904474905671513902016733940222146857045552548010923229826676036855755545415073568766419608025806375007557105762652872770161312420045867449934499176377776958911266203927712957808222921028060909593229431312873072328645022511404871667455270570754001728454816787476158991628847222872366092300217368118246256276558716352574053443121270804518334933332299902436367661276207511779940283425631608089501975801613833756735012200731094295774626124491848352345980333904073859536632046691607171751406433449142646274659226631110289500452718437043410396844741175612252887708316634377871137758002277634214637743376809913382300012479254587954583404252866730062152559962878354232517210496986176863877855473053377168147363205099863442721220714524657914400085680121164940863962213936298850840871499809902225246621991201597586170890607443010050458590718220744927369240894981933340615906127585202942952272768094438601505366816526292271270395072993630330392277394598180834114370251470300144095896544261520118457753165406119281251038838387280422662590360867900972703169424876293292642093332760462266100553177122052991386590269040474611699881603987326914494163543698005744217157509966232275018876166340472368825264665916874053954852716973138742977666410066777035198340542566157653147720688272839652667522529300227959712718887489446571213243299074163477868714478175218715142204634461151246226793129835121998059455717290737044617033745169657272560923809582676669737333866816484824388097974549476072342202869699103849092027908784969397093857487707038359970120240786722900350318776460460422492680616321441984404555484215510378093970017247901486563148408231569585029131629601721629873465655450271961244436635435481820316859490984178624122541612480356986598766644889317726565197825949138593996139930330358443482819138572462265637240491074048001101730837741605815905378142024976065010645045262845571506767839643711668653199878697337362347262019554584933302094561445953681535927620920251350314119251155587290523060383180621585088207617487693183856286088745202220099515848976694977080189015729407849633555636309794096709149628767363823036639306267844187638070288576788146299311119553242072964502933994062620484441313429989751408597159166392716240204335670021457264073663678542236371850792067370142055657018122951077119468166459169023519272376602306173070171536460251630662286455050367413576251885865176365990195264852966178197290678996807798671157326187643973488034753501272205408329334136851051370154852481465435185111582323888153961115493627508243787142827371129942360935536269163765917526481384652811382027452980530204647809903987652180595141216302063548737343330666786764740807236174773424172163573390559341262569906128448172846806408724897735046437333746032180309279271883874618018445024734651410386387834112660510414286136493914197095487734110135085843744205617737042522410788419138806268903639112610289256502301639529366572476454089135273607868480800302544549696995177153898629791065737849098931980669036144234199693668073248486089192028746688934580395231852627694466955740059443177869863806518290847981734472333865753693179629742852667897161999192558146049326014663972943300682380207203079947680235952285181524281147990606872038368215426419277392803974214981798925906239479461487551765946006941876244497901893136023607173080354286217163223059984143767478743290136749313516925218066094656049943498811202838938414673534245516912501523191882386269537919168095270836830270256506578136913282730345045866169799135624947491543440505215953232023831245874017698232689672680039876084501204983206865454773207777236925713754273078075083980319066178670735686507598557772195196030200864014645955875125408880853104368567117903938380632814769058374131494532815205505841459329263766942089741757208858502971717335266673088809832743638532392940061715770785406359228748394100971775347455310715781516907235043587016161338119611797992781903215083669209238349566580411547389690872877244492624391951929287849614516182361766604325503629942703184995596731981992026036633827166036898402300680589957350521382553107653254628573522127017253260353527358243675009819246693327205091982569638693530975040535332092802806139821405717780848874000918781036527559750459408711959975488975387273828768829632805568169546740928645535961250851694471933882556068447104071891140694595124660610319736133460461002589310798971978245940519635380911789754672040012049649286568863661546455641677650660547957377975007994057152877374663330154700054578261188175249437670135426587047696135888749425486757566166151795183135252755181414351487387222616517620255390015166288856000452719529273216308097542621732594371737559538904029131858312517638054941302358580456157199982911061003279400146952810014570823554023468632131155089639956004470997034747158539847488363414463052692143974461888887015901868608128677828325410271862295962155759658152264238748859403866089991825439303581926655059849209262703581957245461902715229091925704088530010983635539420965318153575091851205782639741908889126501071697077598593749501045556180769635120744165151148880492206394339320583419344773032918577402996815288552142072844144763074686895341133743625296113343640951322719400162898673326110807826050909325605102275922632696865935978935442118395331905930313934581585679843662254806865028557848142516061648769240940168256995440547996452296043239892955792812339115014961799221162527899438846452652684472510784187340370151722720636859007489577686150673326137075219059942659405980029824576756469873116582264375991696126424237128149112394566342367766052195883006334576206160598720580802015865520397300763588704973097517369751991612842126087852862174252842657869028544786318580289286668640545676647239147637233789039908513722260346921080271543759343648339785418961860637990103208812597320019540532146916193153301713454319096547978090295210697962997380800195629628800804846434290203776735118432057313151236159681330502693983821631373523563753621014823068337559426053880885864691826753434946105336653251707904188318681993829668277444454664017553499589077955185032949804776261688392609860467258579874434460774808062816292229387907136427599333678464440664726665977882787950086898136470537373774312463954964918707599044739842476336084301153864275116156378096432331137056275061192621913922562862516681029558836656860140432514133937659010278919796697084680359325211359192553684626930556243219471620810646886967222586188472733308276760489364609058119705405120069420830260028531938203424432348234246672409762242219607529015290584224748205114316104612663955614844897564727549674564720083863014192281215764837477834554512371180052613964349566249090831604468724847234957552415472851224321928161294308459639707797197240838432640955065616568532454875312123617999342228806056030997888641844803585244398140315310889039672818450737953666846246737127716692950935190661163396121805409157707044376792249654672518895581481689156591616473506577138358209684359922525755571648057210733126366624922223481449378098358753596691017455319964577959000080195460807294810203459396953046966150815011840355281646364612200068473420452561080918619655661795974956380370232383966266099360803592442212570016077187036018568009858087136464399842121657851051691105300533826143666987114630125733578805456593716490966172322583068848654261759875739827533129092753990998399421818054035442279108280507432054195927748301212584409800804311262062973612585378699489555250017537375314621489416407325662028606139111089295080896104777042655004835925996711070015581349948900010120563066618573722797977351500175658941418368764008390183932382355284819576295700325754513397815156887794743134873611373544075031311796601849513965152519641847688256796535563070085028190045225437404327441194459076605785522767605362959259347352765935985254225341327635892215330196018326163342939206160683440732134763494070076526176567946866220759735299204652398201730206963121102246097506814974470363007953177217347421548714166235807989186695539366663350068507715481893721602333675409889183254883114789117670613463731938941524806246882371832915536114872712051637391049252736153973445923901542713868227307036555606789079543692316195736289024219513556406534552978034363900042125817879446353359470770265410553199925803844228963368470747817867586885855049793528861621371486378354917038781825906255139439303251571296720653615364353486000120684795286747018949086063314616624282064560905773490328024929965015273710677273226954277372545845285798064025852036049498929223856128073959325478127172932448103740687130662069333542788226035686941596705183450381408789342867282570974706656354049928548130753898709533837283370290995682784023318892080145338866449207699200830013632010579481959598664834844990703524377688195057482391004908107045812305825908279075768031714892275039804936241073869342305965494712467521982379602343352408114551276325843850789503422932176452115208237738455512321600239755181993084108071751238015435980244811760568301839535183586903462943007775265127695358220109072010422991712745056226949412743041872943992509861046978033219375965159065985954566358411982667734451813853375032159681570369022853718501944756635977130793406469424699796318830901628193920769024197393386302482605380227561446178793861779352977074693504808174766431303153357924811549113351151741536118163536063483976200453609367568073739016579055820458261479524676306824365509412543903275125854784488204736533565536871464216491496634915188692182262429209328773952975690683561306820435398155019096589947473766286850890748727804706422868892731574607670970063626519989181593027909307927363826694317037785483269981679257956051417474971173323809582915934118796093549035458377509654257314550911853335704149815189210098198571824247406426369510780264937536626078868761674218829593612551516745249994992804660506809655776385342279497770756292475174077342542714663928574470221259999931650282301636489044479845536193415670890119737814660795137256721654137065087828811563365222175008614835597396138310281530493259853964982070178935425785324190845350861427559615211131242651780168703446559179706378502442572154456503427523881454418965687293281346824605070852942105437077344907802995265109414939634988065956479718909179028005810476826643630801922577562396928399620790716066745830092337748380626413258833286540990895496731379614682929420134173228522145034926818556138160535419241428903576475035557605158142202316117392974069086094782167758947731506587987549479028255915574908994973611426739271388551932913524217167150389375854147275028268117666022338991329892706710874800541599968995195313862044324389361042833539115549128889816772533854874720479284463430435479040001494421144887502968890790602671814851907019009880940787423893620419693587031759560821673894984716346074830960873435517970416896474334427511059869998789928596414667592544102405915919564266311768405017139304367416475589022644867004890723842913297848210668314578027140387400922072575530832762700569836894103826261564881102889877415747037995171033149472686140011658156503208344358894601361482703013677315781785023229343488613043939320818481317119637721887236374265971364010514182308904006045136138572599261642585283900968640907161035434243413961840936062869883413630956165541048090251231765922751486909779730607893070357805589456034205855176006198505085519421005516316558972479565354517046633082120535408732442502660991354128239634466363559550105211308620846985162594690588450980256202009466088753851987050461474213652817262423744968604757415251447346728474671833632097105454524331152380838706260197433504659328320241227068880650303874507550183623625412172227729979837990949120288344623150851675533761087584851510998463063528729861866238745933823374564980500567039753253765603022859553459647014490480056048849521076710560611263432676469719401146561586725034330924971619254937878636147654055924930537551927286196284117103099635675867234570729336220183244370987433299344107343266449444502424459072228483218036142531008608940330674715612499597696642656579201912803371051922885456490240587473183871829859875145386856399580613415735950896337433359485710829384991976597697233661611708418140700338134138480336580937897429448246351396032478351988466834437292813973851317181508213159103493660705260903673828361521052212389509275413738506566193357872818442613892191474274611496837817352555322416093328202991221057406067999194238105394896653032072701463198822231405785872448235466323959976858526516432718198038098534151473855348248579044438694470205415240777529698214138557290051693324744992299069470192980961570246179498582847875614482151402335871148832816943140587004656570707087451652313097335584708161807007071862652049550078384808637297693733778600940002036408700476834310509743664665484985649336005893549879103380662231129061352573718316855177205854444800965148400516435336862349865910903443535180398086863201550610612582120488320235974471855481366551778014643300105694766380472217445015608181110043609108325662768332315911095761876970995638310998534479640488358624651815617150630088943946829340733521239566103333984690744949715876942043190066782012920064544195178576710382456724252130122679281506500976888109664162340765881282570615468290334016790217487821166366857227042673481600965834695683948299005563034582422243454718401847467956323399163134566774642612297202866109038159615149311051138549151355622217420385116402997428178276474869392218191875260823739460006790486684969658766327738537073483102631364362590092625452041435012299325864963584130536175303042910860972597538391826834092691774545053765253156276151057180379255134083150831764760997679119351109322853625227969239498493924938246775523962514715511092281623523914494937544204912168938159580239878279063041649190742083851283948188909524744458013878976991506010435680575615422436738788437638128935788123741266446218951140201021739122175069353183946176705726933532945365547079906818423525443437381957447336155257868827154880122592547791955070966052444390167059677939589515543713254161811640774811611716454174575217766047872966891943906165276275388062562623035293030547485429963027248550940663269361996139896984492893050911522297082229958541781133307228308745253295084345734880461800534421054119127865717549897276149819571195734539035921432219972712051860363943966913272216590816143728660057252946097107505910562097295027000161896489585394268367742729064677553023337742675829481318488425566027635497753774132635798171360798117253272289544951236665073306056215101187408506057408618735751858780280467751075470225037617247207634873554686745412856402909955515163290541607790281433029272685056893221141715673788941057607702786563467979181979714056198513045490094294865380934824087326011407275452741548976919287147799658127058100906259721906054358857536388544313032700120383523068096883772257089512364901127652037519954483780309195234703023935478323193421242990595078829304791306987164652543436762930753849936616954903246726933127173636604686992904288884904401219873510593461892482193047597276746102640282276976895656535196296803220204596482603166043909400945198582334169082095390772928932037717905937880641252237664385233479708064018507889103348854729572933428879017627022728256411978602675554252784653599131799978442193799632320364648401950193914860905972474982392327707305835825169760651208353531418172070062114184858892683057864929123034582263434104832278887664541891187128702628194895197059096575385793323867016343869701821804284671454799389844237740084317212474681402512648078943380274972052338734362331077289405080176854843221638033629182616358463273636796558970278854997219484122137870302058630583682265289974955195810949580234444436943842889242855415043639924210989853565577810003712349523584650921622742538271400323968655531752012368944812484342488566702220377084834281203922863062008297828706680496078444587580400807039391173672407247270761742429614797957122467494916405288697995134886174085159530636640098429892110934930520475454246371152933495155539210793211229439799270726222588607370733628702342284634376977034398750027703223860729208402764730722565274526373823645223337952260755944260906746367369344453712130001493161108993981993323791435373347520441308053578190170772083709894721184397924912444572457128699386676369397752515054910061635238631084422764149667211891993318290622723345906895060743501800792325822381789642545724353405721946363675500194962053459446056487158042975829307913965791582343598699507166173798762792134768586398701512062372468360849463163353724909396447491328427130150939048843304671427883092640073879787754566853727066020912528401674113240660984655052384793492821868789220198875047292303240209246213392746832507821201519837424231355582367813518928757038870222435472568659742243368403381391838886737927986575811491348820019536617149380594674491503445013768124976696470278546442889806890818681212632028065561181285013390912193984386993148631529371899420886225254795329905064169304234354078696721579786961454168208932677504522427983824053052197055922514819511827710239775692675018156852481479637157924545244629603343468117062223721070272050136167593952822547270544336951189138311392176327727553555538581277883049757535608785715642423350044867942009973777689641134859170324731987490321806435209155316825095379143422268262883829572028425344917688775811510252764828370082685141735482149333331422051057485484238623349574210827392355058491825534821716692959213745257526459413664478546291800459222759281870083061797781946196769266315276052960591269090485586484462958896606162667525018032548825688919542322607602620605832337714652167878808242126002492526790121150036847554671537603645055955031656843120247098838192042223199294821496045444297413066265311384710629825732304394164735089290080868819540167318465214348504190086666741983707842312620673986651460357448576049256727944781478772208024355315790316385674406211133815585999398646139299448945072310417217983884698621748523296821635665210895213920601355335928093909798951282297198572362855453502818833664240188578728322543068094528342534634542476285150685595403332122948790919151694062675567365316411964535233237292802687536858473244805681730304104822284072398370320763939078493209134709126519127262264282863962892768385649477061784062108581286646389742544446746961964200730426996386138325551491519416464204210566367985171033169282354320663535416006555698521461794944433006207432397514174112459776616595832801551628547869158736978926649528271450328935509274810907158873394947062378737472696774293674829242511455574984455909187956974834549725007312054727847784499077495292105436848493098867836365471247582012122524696102617064691478347321881191803557458850855985778753225867795130924973081119870371192251844325826867152465634917789232819062155814720808440837660225263759418077071377186346238053984589268449462685425912161240798762151894665755202434341162593693731991398759443946428913702651172405055845927259644075086968323956510468694141782938949880976726383022965537783386458793982127172089322805094153670031830984222959234318055820944795851402226006496573342878331505615660040245191528997952614247446233349481751715594184348856731574010509066918317582938422912000385215544083546768399163153963492442908199038800796591228594324246112947768075929131151239909656910974289269788537060201814070292294353979151921362613367594530280240865827986033893798709394435634292666233385206421652980317715369922279225995834802856489194918660125021124297033170252047194306408303242981984445444446675092777300350527777088617345053650081907328567353325845211461093335433103107265433105802250230291665274995624392481021603328202816421585714191993962651892030235118240912098346612406018872112695888978542820651688201197172566476109115839437335803171571978314928398336808788586540695559666573023856961518667285297083202057008140026099258492940868851650333940518008314144687773144283866088184656884576714845153730158259069925106263268891245784113557564067653386802280385767652359677313341702148753104223154571517109463330191710103734895424159888783036792561584200767840292031537497464210250771655022490892771738429805910988275012138154573371055005105416017052470883142099833148897618255570765859776186410337950687363830486441964555700242650455432373688194712628548386283826676900306776790057229471207051767109662932555429953281799921913088155061800117587722184605859300510860972345622584918837764138039885043038410471684271724506531073566256761103870967237549422596578628731026068791074880552165635381401808676091957182023296265826509138883591277654874144648572093754494974908702126087287704447689901593561017520148002120401016609107399096625856308861152872337787924753548563502046337334851105044339061930110991239293847642314793507653947862292029372859192168522048274976964674128458314682856104531861623019878085402791152947697558675379206917385706538164430120214345886219893697803444208900500770539272717781690276422541047876982863090450439578392439095317399783151636214936336213228485037641046373244767146995857977793061342044903547768732301094199359905880009803532562575922399991645005256648246658458339003922261790292042180447505311923021148317163510122489835757269643613652620007265269635399019614349924248256914500726480911773766105509181900034360862454083570001315091879671910968604147635979679192408726324753046292790676266543335532186560783717589226525054233792301482561428343187931668101537599368297245993672312236473824929350514711741305740304014484198580389303436871616189705067716191673451576558242653257878977570122517748937576778231276251242608608642928937464651208082177576876012591062690013739737629571800509377810619398464191166518644225252115946962202320684787426326196943913242950715879736994723730025522541397421158384820790152961371046061635597539601014165513405017606980267636843049343755671348888235704814062061548151132244985978154289544112636773079112050463790672434687884182977797755022428706806006549520320472211555071672539377856961721030473133953968951638857934126226371633519321797348854262811703249711056632217636092614290851444697577514589011557554317735254432456916612059112666770957564994664380225366277493372564297692002170785879220575949646525694074552351152566639668612012008835327608068276010698984375247973697598721803223521837624684697801951857196243828207599453081098298080159848722642933580888019650094826703528273225043763458135176345314648269499339492291318032071454362060277158310280234647227676787926293904390057759870015349104819973121061675760357512405054376409088778655387873853475461253594139306466709859579793691213617166123896551464496092649376541013501051337028698123925760153007527745419690260357438890022195972119177082764655409279531486550894476362124864022550121325948805396792468951968191607287369704514786878468540042538808309543235826044283829090009422296720776285729199004446640347798543507013110449110992615588537968442055417924171906532345656868349573053197533138515427516910046107632787133355260357514094787159725396402538222955634076178495526664576689587186512010785952661530686961696157945422561065210378644975989678260842500466642514200439092784820066553726140249506990127169909679568114979325371110254896059094421593855418845569774721824338732205319588887353904624597805334624126656095824965083363660435059858543336022605935490651984348128867470389737396103993997150921897715352470345237499749559447760407992959290175880705383608565660314419527968108112411549212162405198562878565887494137885031039934686559909908392541931509711351980666711898714302560729497407874627882716646724980395497173059391775130503077828497472374783908369961222540406094547888995602566362156042177239131465130319015460129777874961852140559435225225826241500788372956451222680848655382594571946124582236304528221591491984652499262105735243428705929753825927777610948328402416571498053339117280580229295259880067081618979150119712555043072514978659076383296721840290793522792443916641992523433507953899275684728266884149360377165088679618196994340590873191238777911380671823000520451129408686439807129596216525123457988364966920241806084183893830017764337132213606537623986564103395393964772309101842256711254467293473408327941530601749839285030849214989418850874040899566971330559574121908301193729627377041754305110820921222459012224878664036405637939291515200809140790824005064735234622064135766195526772985131340137217203785877769686900367910077942484338844246630985338261186495049798376122727136632767305675599673203034334207017213956432738617894661645171370656654483145230097882162793464268062011663107385932692322809331948034130070986884378015768223490658440637804478005197823948464460971503286978999600169673452777019733549398891644647140250466263403485934925353617310592854730194417076906717455187693385534399821429361953985195519590937130039882364140601120158438011402823452643801795141888502785249338064507339321372571121586216082429883339343447246983012994094854758621087288385001807924084149718731381801792520873480685779926679473727401703645040088829343339793980536849428398675909391018702796222413755138601312619222357895107888251504230012144654056736850713479700766858869537635252543441084700497499499325645483393227941628310414013795283969187117062350998561241095061045123030953749895481717469988757217969716189012556592376812113127640042242173599284947311464323728102408026536417136329798793348952149550540103894178266461838634861517377192413153552295477485348796619501745465406039927044012777376230918552274366575085029640603682205077080236606388242425940616460665411454290466680283804198747580600909865399414227997244268422637755154954382888144036031518681715647953909180470987501823606972991306449873789540551361832168434154395998303428428413410521920281613016321531817406922898575167784539207264216138531456971818554738260931982839697292882822296504792920978210481068905945652696469842321575728428202319285423786079747619195974620405856877714890538832086924184138145314655450847441310736798204808148839315067657224836134153147573371552184107808988536489407948584458719857856815102492739347161776957422020034946578058236850553085518268085804141969027673642512911374697508900778581947351851731047834359288172230032853188439829846390310317252968878302709169293995455179046689525042950277531608463345979655867582815702944902411070575728198252973303191420944253315666406512160164676784087547442037298591588765397953288059073062471838137294824702726293892205712129307070715414975261463082079406593549955055123413151934779389590383345180828487292746402153797231293967940606272037985893643596030502717838324870465231130865529932120473558277017314242213296210178524216746737909512599316290591549174863931407044734907690061969766125771227973096087241791163957550792106201500908714181889147406934819506465348640101048875572285612624520841926684559985570126086397730859169322373402078552437331422405357639231503013825675951281255138269748348350710734892166878598696348831208916896316156903185885592527975412637094986119385124854623988969909586679024909364567441644478650721619393798710884603384732170551658598054636394002075766013048744541868294422211265465748997732714429768120143325615667558100510378464896205759824156654648534211282697569348299061310393926579398224940556843861795723464393637978407517565315221292443575292993554766298575442502234301953403898655215980800419512047346813834175662187540513809319265979618892355761131613220455103047905942089367114990570997472347919196805702078296785090954844047207724944194481241152606294006997520279911410135560648920110364123003664931275379207962608083630663756924422713503882149915034333207836596081834422651722566286118726552258183591271434370619414285619945600500956341967759361591129455741281480966640248490633112430690916725014837599447008411231951230688088733161295976302897250539552308072477729736985475585497153167647140903817672261701780739027259787810962820368818396372543778674872382928935119163647993180197624889218611266625678067853330349274177700262694177172281472432692022283616213689982019485618402869073947891121101855970332357768439858458191950009934166994271130202678484008266141611262126641201397556794429168714172778104002214939457005596120812899789341768490696809256143408477027277105926176135799591655165177088185053893468040663042472973218014305554173736900518564249413611267755832144234352662057929314134967804335055641848402770582901079051552553781857463271949434405131649382044804593723329837147552148315721334668201558471911867812662112486627907983412694952668600872855379946844465988345133124693557421328017598487045225222088855908759875516059019994716455259131636245129008325247914144061632754156792298531319218310150685606143985421731335383121519981040936975900189199700208662603223961309887925277345216710108415060151493103952372520855009289351200556514775225703783334871317788602564152189989941465963719444555051864271444463376475870582938605193667560358435584187060865022805307699307139876221982312556825856738384759196726947437949886456724241295029519161223940435428066168936604100528804936601328339199214579059456310625648316230164430798729065995705153516802938344093702988991650543206313419254700961359072305605445677918188690433567231764521342747876952197641998844063060632592443910158211378110182390209472251824814961934933406172630336507195462946236530498278730095802479986962660442902247680009568758630343837020586237159768473666058470874404706739825989281149864089362015367174789775502580525756381171023143646315386831999122580394295797773747474640950300092709835449339261615157986313843973195549125458784527529512996717804651578556342821226288610921733549315498696360894388254238753438899049937981361930344926474144426369566681812087930875020417564741958331440329696711619181137903174262310527783392688326850426346900876293044462332305806801601158621078768688010246763950969599942685294061355172105488231591698102880166745087391049293520407805907763189621687669888748621528796374991195442232476400386188619756529039884988135234814867099458429587013415898337808117419880888614640506322013762714735281922558300720916060497057563741826997799996926157433671370699118614211660850950047613907502033324220598522778766669302369003450353186044853735930894877711589737244630783229631642129727643667969787048163770685651358261063848637662411915593122044924316128838225922762272287332395500741552127695503160226765462522417604670793711373096384305470510598415015365414147716386973524225212031906813307881367663063623371076439102108210993178909418092629778347197991439337562196316636912713283758794749077598502548451821495546822714288043250931801729321432901613941660670179194184671969780745714040924291665532129269876541966541454047893705641459761197700634717854810087849948117000810913428408719312666563824794164815393910351727262732878364914233489444572020906305622280845285373338889999969170776385812795845247404643592172735675955802293327498021480303285057806307725117002827684418472734736707403010079233884648649872759766525245451162231593452283681969498333874813561053532806916956594993623529318457964348043361799558921252027676717103877387200568019813586021723594749921568481005123905422446716119169674527402267304239447483026977269711688746742847395074955419528519538400676150179672817929667833295464966657349102595848698588406959406222946183021692661490126532052506365906114730651981638635052532777203378646103756279074369684199031607131395397112613357618442591979300767561645894869692584590125625642450091791634173874904208521368415546592553048824577138605496076212071467387054156850647551683976540081706365736445650013083782811814544616466212832167497463641603578879030488713714559183414451668385266507404249021418306119474083174747970511701124309316926872113982503279452982547889332917592858576446545936465928994248100292200963505586911410093627098574096104951385601260381764636371686105878217343094129331835903940684529159785442457998490170335602699052837879744949960043335819759953475177437037481010368574580718229360517616570332115868868722436516683799566619484236513262052278978631703347075511535588442284250518185512917899169121630033847568480563570508942326446203928784036768121658824664081892312664775106758836589581730266614377795042662887722254434415702616447294708259526098676891134267687551532958585701487607143459690377768288209351589226773126551308279795259349017024915554990658165030210521999291618036258630118061644999939041292577791909317005290366916015074475555567824139938782692886813263542840661600291335263293219516323804820977906402392838924844743629327315540362138376465188125845391901444613743663060226550890754295478374472785412153278619238031485809258407032204502251931319297267186016536410865263154322272500681296348767501102539263215856917662865466976613769570041316072598784760088422775864411504876333531982160127517238144986339416276250997325616205139579887104440741705950399932946361609892025895011495161169001382790187043222446492553738866328876919946591825184140268160854105761855827358301505163024782454310906267006439015739691875830720544163090064502487592339304885995909241700270947325310214540174610897226092299046598017110978178812409712498514613260224862601170382007421692145036297439192201492720885114027083555664836161478020061053673493195176104101439176614082146907066178946214328157063505218130448064179041608255474475478336034985159685674759810277049056910262507045207886747237350798278043322337448071000886868002745151018174216380288099191670836416300279614385191288139043090976885064688150654225790556380108988248393952664154214113757699273163836561612026940427022997784575385747045879708179813724530636821509415891462039396027274672200912927989156362575312203264521967572718304964603159884808380344746426328043360381270508695368672220101209597886895445665559113847915278736617014074775085752404365802377251106313209860303671635146457971952089280611907460490553622614876433034318841879859941974090445169155683499110412119299636547515122810571548734727387230415105636335299763378589661138959110121868031121757048826928879996221883491153492668369584924828704906938524333569098087227361166607290916549124437636880668539591017411606467956627387968460391501338278210754429399434981604569604583896456211912777133262520854550878875846799361645292726199728995374160645267181766738511326259909590332186453092305557102313766019280524561733103810157120651314940374916851993080329467005723501769800391840799548556069570855319722898910045228731262490055548139560207385509679935711640288832666037162546491588901976984027794327643103218983132220911146736713970260003762299493051468882021982977608247230692994687302102755212334402573095095805307285311060188261605305533162588439241044184786980259455926287664565438730065679374947643613318648757607592018602669483082259434830436118522909116736345102139864396851238948221100952413922566856470557148705709438003933732715839029308516789020555259971289591985655760234079987982494171971990856859785953528145563465025815877563629267773485227821257707564543480691290120577510529383159628074845148901500207499768694079920778387996780159731125179436050279139526615261702955110630108039135085094606393640267630069444729027178640070844202770088029286983767217184637264067972617462651608103625654218420628660343023111029390813864777449061822415604126243892836548852944288652246824391272542399739539135118958876050582371080853347279109555245811071584886042713942519015669278843991723515341057272255547352174736698896429411269513093877139211823465399041771710088734090647811987626844624053101682901833764837519179952258890874553246734067162263937973098992709708335562018539592049589081255863877681748148480622728145166216623000127039081610354839731517321288036520873667361355273149238099228463522104480086109857091928975583379220424205231329329585524441481023779075797564382421741061919259629762756569783119316622635505026412772768031117092382401859630428812710381332927239526875596315911606595622628809870430228245693024778215063374900958736434616135927228254822680422207415899595364258520814725159680893089922761993113486844576738873230455485117389862500314852161474344289256647094103993388878545319604307636147107326406735798001316835182218927142157280548374843127854909306987743355133488441327573383025425991790453371218282632932454202938240196559052958351625086886798855500017720719894464108347517731748860902255046929875290459684267845402069114454257601328309419672911714209368330893895671470856396638090051682196658113185363696652625329363181316826402310267347277959872156604825977819154104183627817479867594471613683764239580728852944776077980502464559388207586337225622966459238120585850061518760065970137125497213000893428485601159127892139894625327024532798110348476169960635408283589110874167605305609654939136396245484186524165647202682673688651078217891161194668440930980670326490304993696116421660210273855524590589280000886909967386305956912805114577506149729636062354062974291989867886250423022359976921647153294141362245773056675346505344192761937282747095349483313375305858917847331882361711270359341275557156937397715217067657925637981461261636273489154956966148475551398393611319539266911943842411398722946483109240334933935852869823015355595820520838975337191982439643284095845123699005365259289936023560873368984362124499304727387979670153682607728113370721838809168581015231935617556165762233242948709834005332786323885904082439764189549751626666895868402781076887937271561584416871299451400582419502577433387428689743553326396114564511207561852986973585247578700767015046358112805427783495135627188809726896146571902667791509958066025431685528188595437897762648738118895595967058113446262760507844445562884299021223513342673208683180610020004770934646585429307466253586840105510023644864506219694235201503635691725675510313641147300143537749946766479307239968753892625520884492986357453070034953881742957246982830730113100668403922119117473181143446373610911480501031830687435356008018421292155093090909633272200390039137698544653791545737222254400146466660309066088153512785315496408095667507297820328944750700558737977087668643290729659285285557057031538262999481555819794225241857988300620069980310756110551109169094702857871485181284932237772337985247451447792764800657411557209125322094777815383349506398026955211102107264314873083311699441986945990768990428704920814930811163223724387851153568048172560973057147451401417184039995499141227088212780525263893085449267453916605607485425185220827571391512331698896192791982013660507650234794817560965903624329990391047871005639101794530365867428639685929642837134867734843001293984958829555496810651036817814734570287378373180353242904327380823172181390022667571249256109766822605566977235926232292763106969722199880018797990684164454682265125926878130902226158727132954752717521347436760439704881234690294282883467252123073018451400971173398116769553640343228713768523690877060498290462635675778513029531240397864417836906212473314082238820922601488996841742600842466784116904198558011124176040823770250428897493378973878085157511567347014759467495242794294325068056625272164296961963219066599449503398206497618378246389179382299301865304748642798432529083940455725780960533271447322758102237420726128385006893852036385619698391030418679177133469054472273030420237394582406200690955048646865989457586190773376205225240225461087527553657134512054602192039921475096673264725687305715020261547345317312519206300487818207646368571776039468629323172794398580628870750599958517187316013956448228123204268934121445834714307070398425669577569585819332662983119598465085817069539650966957049772217866382717619849126689602038715644163675970432392137251900699081070695269906795293533550645048707284373456267724136724738747759482793933980709359463611845651519989331139736012853500552248475381323071727905661358065663652304766747245979522205798938626465023789909113132808358772466106411612064186771554953126379907382162336494587401327735489314082535501280062718040424890418432939892758565863997017786651164573062950408579590021931902069247935586565655272144001643297640512655003816000985693062968709628230831133247661276974235625832154879141238245438876921500405476048779331220361312557367200933901904009604822605328489471632393861711329463190136514099522742619471014975586354939108853243863566117187950551995507703770973499716937515545829027105311730887030253876031427902696655604924775505772062232124511836291906830889713117735805755159943970198097231553039580673613668968626108558287013324287549067244368367999692019216462612525631591985743764210634243618214868727425646225254839087309037786026087989816120485492605535872391059857967442263912850895872163383343977895945019206203540352748033856713570643365737322036157135905959119773851773995084901404740033154563698912641225753080613997625230326688580492021868317722019105826211607432711779968187798156087703100533602270945855735233164592802541189018282500495726037484750157030419155211806416528838112023248836987790933413270156223164442805493034412741296277372865938091301845729220439552356778587830034492454296734350935410766296457090078310942654252790719051910301241690980959616324538627390845915428694312459581536413671960374787932097253274713191149424846934111153278538416907984550788911672844725711870691400568122609293065133559605790157810243872097266895480723710456593575020919447451106880672335002479940451779225241955834541608517132599554626433822173394353029190149567858331685085287375128354470362864864376161043499919875069749409995615126564030789073427535196038763520225852794687669237580538736296681253229800736079602739598169350635067541726989712264704610349349271839730482530471463000175452637701152879578855262146243475781434992408541794942385580979083449314272194731113160969113800492390651913405193548208799216721752113118419567835309288828639370242365940509647838888046955043369718889009454944093171787597559794360417944604028292148637468443584335619340095171674143244201766454738834308247818613815336402084168307699410025455068280737063408944994088933290805445794517732332581949753643207255965778751380453328835652647930585678345524784240318977819080673679479539079785228333690449752272254609072543481970936913695578718262939850622247245612123545287784745590676685930617088404866446869430505116275567111624756001202178833797397538086234950278796482879841825078503673446416120221254075696045822339306365432672481907367029372425122935623022702435944969043724025047883380857216443511145026861389919567501833903978535985936022916068244748291200282499513265998229176806534008692812958653810561075456965908818755835158896945719480196159242284442575299584132671525282308747251470832995117625780829481535798596162050910331543877890988105647936856427515776923713204111990885853828263155134757565644907986922528426626424848249817241920384428317381844296477732250319566178849164352094739166438533755518594526666977371975764533135701958418188920127506638266896644988481309625563837738913985651653465322905652164170382134976936291293641413918749264381461731450583168545268742022897866773340972749716690347389023084612453879269524275605944735551039324082071622355468640588922697923208087892670674660622271469882207556288120380978654978457158973663143424522838286261327077183594678120605519949107841751651000835723964206802736272571964074197921683421351594802119347156595257086893022941247236341917833577352432562935410611220197110745808588976548678816346810065551388442470123686413334312268457823197216211820914718538646265775013208364387172340271837330392854715971274629322593697114457224805614791146594044654551873675857344828246505926369074810370804215948833903803267324876052495702534664865177726348422509007330261033998463761048305308901516200479254377361705929401531606082837787823690419957407880911238393662335727266856261713472953024219902974882912780913774007484995451477512881364353462596172293216408501684674814167193059354584064612008939766568662344549892254538051150665303337194831490768458077940530104691632217093887181464203607238337231107136730007846080605205214142043596756918080428856790626589009081118335839453840502090480139737632168003435926012583040807645545638187328240608451990671446191100136264289526321656479461423097693147883409311402269986870133444298920244667565535381320121630981308199035776686857702662687450122699678391121406267431838788874563252843643282267179522956102014420065649830986196371068730144503901882501455287461528949308074558568323144291652318162247382468247921449897965575153450098076760605313215844602788325396780729351376875116823645398607447108362334791201295380352066466484938391514636027795036961891058100286791064601729056340706157573580489790648962761877194115702637476343213675521866207005169793221947835731567535987397220969048812505578114106448801094040597227893734464494859991447162994454082076373735091245125236876102959760631477918474436755370197246191066596453371834478979498210485903498473038671467333390771642269250382165912886392440349786391488717562658784568232647722322448780370210036030838676043199106753106311465827508234528205000499591840809284137466101925302751095274795378911932253677219031201393253319573329998139441915829139511260168112166005400933494434072770424762434604886493576006316980429947429735557084562426988767828305635366598146166017183301172720492561819084465390949552916471765284513956757496187333989696125679275371122127008553200901167911678707883889840747995658264095856653741337729519115676265085674301666188113869704509715166983761940705714276826713244790925920914155543639762735012867771926763356850033011052713835674382418946722463473297333966116157416828963353006393995198496251597445996359945510075996688073155226827235073712896465645479710090172080599839401190629063009928999975014769277861891089781236109127754840990721851365410953867980360576812904926422132404555033324649678270426841761227426405244368141099990341555099707938560219804168808100189576849279988244165448884192519257586019246540248922041643874922612452765968518041397650481033479096368608618885263441392867365571965625630025948795344511090141637396640200148895898200495141219161139513324835604440066119562737823015956820483278291519977747797444023183928662807613801172749088060399002863930387967513319644033990144691349126116896640396955193664754585318825946030640207058204948674624387239136019522436780025252417032115019567325783096266485918692458162720599621627474916669999636618736319690543181916866334139049044200702623000830133481976233879554145566447102550503997491237960214463691859302806637040029858190557099109902345735732965338709112794934454529848676403358787691983308888931716124888670561183424882120426964890177876863102549151230658031145513154041034850206736664651953545062405590202454522397618070412968502818198987226331233842439923561687728999416873721641941263086765078511289040936733245902964837942012232956648904283039585470029270954780903888091020941575565216401683247307919521470630020087023349669669736088624860508766534373218185094174982716130507182463955464198122385959362404435002276961103278586213578216929334947084458898711375836385444113392353736577543124659971362297594677978190727055429129772219141589634413650025851509044511220192658732458544732571223699464346590984650480700365124818547370037662462945314195254597231097096459090898310002823889827028333866107150030345185977547465259500305571428151974507398344387416262113769264148804483487365846886637396171431004661814204298367635727854798962432417528440527145037637574161670730527670630716264194757613169370492338249529947500533063332868281137295101998174376645279770549861504284316964163928163094824590652829721570712333528983831930205477181096850847336501724938164973971651517336137362204388366219536218594703803889422081931679321533207309024831822176293196532538817608327561313064994848392233414712125091223243351294993342509179140401863779174724612626831614896411894318703105379519570678880020222654222008969469647074606667460690901939327577714040081646950861810915047492122942615610029241756170047488730960562025645696322400170126425704342186301897658653081946693812759974980681597344197389652698568751823046797958835983846554773172164202665916816192080243760832839865297227132360501553252166147570977730992251526643757964912384882320386309237983128856127760685124418255157555662924505228150469445480497170798045698838326154308949370177249606182656189434769687039233616627294586670542952418903586539640684924307202281906608652125876368161622657197233773818617539043928846346915228055325178085742058504782331180967411662031415790281303837089806835269492610359395681735317330165327555219708838909232644434361286099559948078467761497302203001716043610249875225716983914907854867430214573208373164775295006589233364861824090080450574401860495589076272069485976027814260328650338049138980015933245153095296972170207022738301035213298390131241005155591444456575662305732998689132899664470964872693319313862057318191445951533328474245592492941836436487174241610502828196991626558625050593784051558253252162143890563180876867213605673884867844922450279269301079565644286130115715025700840315156628359974421985056946420922385459404651923934306671771310422816714778668327739043312963469140813785964661876594144986839017746956793727186876351354416093528871476383043608104110910582097050591007003807824771615603301770892609230868838234746290368151798683512587491205661407441606480472430833239628373954852968360086812639431567511938390603239291650155759724437955369634661983875073364907838065654348415747061655929048672371351710709263107220349238719841872265862556503668099896093286957398109402171892975700102884739882417811910859742869177096962226489455865709033380668136769645147857278246289274576593064681759248600703498652525554700847690198826367242513377925876178309620986468842710318600527710863151240265853063762364291543550920115114131992301994726507583270572344396139210483938465050733943073598145539154742386560339146268857487765172235826587639531506547271349187937550461668944988346586307647129449997991411920519329868484589627704541759146450774024453386266556882794341441552519541383062383766954424294427137856940448097843966244851037950904029325434462822812572883102169576398167346939391601264535685607662509258892502001471821721512793811684609574296867569251169669653461161569946216244623704222017387737902611139124948402809235190281889199566048129644062663693841042214863536680510110415578990604114034503829724744680096137962952705955539979671342788220994906779849644013379052342393736982486208284661268325334579802380608184251146140576622378495066305207156406824258918514052440112577590435548214328037270424129873890245566422844573014003857397970228384233419528092285636778399108043420275491540367831153348168880980344454006741878280721815520345481314264620863941863202473230646284308410981264192083926776479812056932718907885125903189373123517196023797040310216585862520515266538095180496225069617028372451743444566458537732959583342428093911596603176155908671712504878571577825271854588478984152851487628599332763001625713908945867514575060671265710929099219779499306645377031534237408677275056667561516187084244387329913553909754910397534698175185958920026208898477496986109040103443240192223789551706747210349591963451583121325848954495813461231756644082593845705256486272861026674446533876383542999825883378709995246057943170948923375286998750682939140250026555099111458450915120760905085557923789968502377621310585813435893481673860964975521444651942067799810853560036803958779994409015015317843754055709903538531668364637523212645281054925314413757192945595089954844967083845546922023862561043240918179429411197389107867235750387320279204978639436018078069478113850831416909018579462208108006917837195486215583967689673003807332720540384526630448064898145896828653395088489177848968943981757903393065000964454568807717196968034663521219467415907731711576387192282603009250681381144269811414825114233315765619605382491437000921329529596663835198191095997292728129193409997526040465394305576800567341382906265157196172337222897703905770958211364283531898330594031834308085656010299432262291420952502925435235243365512238351372085131452037107603597733261560572841412901451261853177627086489169542694688187383557393446929221132320829127356190905952959387444457335498911345495487401810989893925725611595283742828755373734489774492883246163305602239993276510231516943764813866028635301099953381749388194040114201486939732648437834581723927337237095419320189197691979377753338701277277842134958648962013023448477038923615316230305398881581313297500603118058296236589676412380420178703674060784669949299074841104954074263914164518827146660296394745126449483543398473896952513484253320536865178205334120146427015432945691183419336009026562241919172233638577532114734519530522962264048625716186802715237264462585775223836612948394980539398841973224798604324554269943955619856932944739927127336742456022656381083317202726489029134719916124391924939665599565334893810723098362182705880426819354799394932849950073896024966992986327632070030198878571876375755812196546344470605172749024293045253635508548959976301946926288919099078986166367495614182143637934034333887075147617452466956978075958454082256700700513506797764850705499813733753043747871833393333568565424110452035370329585299278128792297448601646823428497363597654384487154051465242331049514090164208074667425152451452018508048775945713777133700650737503930107254486635222325843207151747185616783944302118982310635538830452584408001899405967520787603520008885523414786700575663887336725446361474547533539687842524106962000384889849379751843787731713142631968978474305096084360827378824248687407372983377070343814019411084776856704998426727577705579080062686058227038640911427857740184233997076338525733671623402934707056203986084946952727430973783096277138174504711352234626284530683038751258585551342724643857874062849272347192012769130317173747791201005019749744154430492351892843124100057861350038825951214612689883392654083982948995863505209818467120228420258215993517270780402321193311841426455561128328380735486710549518442670631745205883042149154244789521857034144944256498375020499174266482048014930413893338340839810531248025962300734621425155216161452232595273833031015132738201709535010357818875459445381884740369616827379083031484629547467462243327787210849201885037018021783950096881871052401729247726575133182957523739256555924915448645963822785161577370054587280358495010923990349746100790352167244181790465726742517421173040605443636411227755637242090727465501035623218966067004147024683740234622298733201527248536603808274753620678329440368936240692725726268293196396469801140341263112600956577747759232409606418732569180978762131336174841088617679676014608198612505960585530712180875112749596061253913146602044178045849699817529059984287165941876808373207026581367495394538533089794601015432611308314744710306352976955013346927673816331681288796504954050412981006688756084553389161881864282404493350843687987186303803917522603119506397283395830317485592033423415389358354744805473194082132016705356414036818081125326889127770174419047193537455316502371026737641525221090759978958984766300123874065316295227209692861319308493593772482905137265675491949396838887542592258517315018727101958768284923164813751362899128658975141180859295547832214681261907842460207730956040215074201324835372833539067885164718529275581387702046878353363352105404145837553617660163237742337727283570925387510744888314799339830122523377203510546775186479050947058951594995551034487815695979277297697771587914701392008295173815931146457265685338880286754151539416750969410130325714750070883775315373073283022845047362836216037916799606638993815236223500266050484393713466370562963873284792994916165163269470878107788646243279828294131245950912598352167198258813110086338273479282939907846709907040775045692592179873680231905791637418908229673879677321227317377801398144063581473622802891491676652933999103998833325303970038903956518687887108492752909351235269198354355954045008916596914646948337722475952230044149955878528870414029536263336300269085603762207619466758686459725302083540579577660719140282801939193443940443544217435366258977672625572629889121845032617013224727712905409958629344421703297294300810277981909561197760849059498122671505685324898984840113237836552234281232592797234284248996078068876177932099374612882815226465785409378883714873762023072323748362473778588238921065929879613521327420477000947853699999465629181709558593844581616211932325075671700510926050317258528899559748332774299949335948814150461188835455307298741403836065613672300114621511892201890980449805054562642199279384042324329909402522721967010987705524633187176990241873653387498426783559510288032226107362161574635050648983108808247930984118417655427885399034037246748791898243395485808901757079111579873875900231144971513633274173687599633876933834513847503525714954900268826265539911472027629656168661489662401819593389071257173746856929330940492940940850864377459150898132440893779745566566861397355281666964365365326830452957615987088960492169574312220669452176606398317349987960687269781646345955199513888825904168854004238260909674483645521979328967311372060109221234653956507231858367071328399494906766419185139079341142564899646370992584534777792095635844966748339166196610907716814469057508019309532924923500630058959039920922757993632404644990322249529836040993830512980409222707797115503156819091171154750187334290414622523614454412661032666770551436600271652719362146546327271604675294660601367511320695569898521390818733622513515972597090532626833742028307801480326730840538778612978404543438062410680440618263112593171305032391063789160287433116093715470956094683793087144246204358564687671221710311941960204334719614019388557736055867647697528933389524548759720331024637116353405585450155408237503981707031611204104527433137063007664874155050252997998267085193794097207586546018158680878182485263254267866009550248053934849414817388798135590270152556590901196058593086950344943417981671771620953014783348231348569429945419571280243846634684049455024663544319547038496261550385795872415845107241905516934379613671689802102783142056807765306835475010714791159849346267826390772441411529104259034032235631388884798789546045951564671618189563344562986103199729452118900097167854149476117458561550326464131995645655359576527307346762485400643378372506786811756068334617994157292813061353404870219636641640290621510215074047732647338380244001600298848664006317048069962786093011477681253512087587846445932842040064291083457714558776133412325103259822398444384873975943175778847071219826885337023049383454884575031990791847606594932367163874746124109720043281395069981594900794894527231241800971957860566174241641360974686119827383698799774981408081471525097457640649418053904971021238461897293661674289554244858175747643872180043112833502598871348943785021855701441444268404146837425687768300718861723054810818455424025076466947745995505428340993639497318424684286110179806889880758929373810450409216225380525117409318824562985356277333445678945641276482160715313929935408039452409540328623366841664592086388079485827009663127626569153844933114423324163003597249099513533264963291972517077892113282058356742347740479436268840486973728463942106500975144418156195259407490581552051446439583721032321225304257949597531697972776903109578793465491375963824311281149466937015510788207593837027259381553124106390059130466257957504270444926896253498208948976484354066229144222608443315602882513260367894797282283608833882289062752369778221251954371378012662005118433986304220168569248435208260827919475596627444334480298099849576562035020493411790179218909065486702229335534164603925316295970143956966635525199947513592850497611954776887596193301680191633771446704515380985194160407359570194677574547274239547462007998639620692511222737540396395748553649655682054002596947904698219406152670874533564207973897279772102522943523228157397206014293804334769757280964408954555850326279379122162611109989303436802623321020084037939357159685572206250629888605722629017328016444819866908357596969892584910537772131255871298765594743883095271325883587182058526496993312717667509310899647387988969415440223250218621498430621671576006405334174413838513853529500467635905677135924507914557573346338477724171203281379754317910302927895789190794483653160528104581751093908260114832610763371169764829430945601449157212210032621043460557825442905963384872199540380489254557880977484080247972549417724198450083893181276714929267318131784787128638296068908129648612507136120523397541908303740618476080801710911440200439997609020682705235765461985595449837559636622354066387360142207693904601892775899697213462036893626818946500064418383902482718543772240536783817512395738564302958108878514860784834472064340446026773131316265764902332920405999588577386200378221990395180355115320898632702824039221234255788381262545446634445575505331416495720725331620159944251119230785304691776674835858867179626006582436122168026084204276981852192193001128617150068432808799766095552380587040050591168030821508257500529466187952273892209708770424549916865306965620170588110924678898060075592406728919467847494900061373596983344592351485748995727139971110728005772419045485352855321247978817183358844630350424988011866237189945696290798921935721917696034083099835404077123092639851973173884457600909897943815115625592414495072382126931762259250339397113374357327349966560742387321574982161011213041478235024701762636065096416463557313232187862970968307856656338289457344803293580707393665085784391402693603368474624494832748348096987725842947050703373991424214760915057320177717981206554365744819885917754293479169267082056820849402904351913257114077528289082480963288895846408839541504661682850989493092667434161825712086890730689637878668398168032223113379349389459822883175637593211937137467367932236113314644034424378497937226776076964341523018514842596191978251451717023952231185729250408363918390773942156752594181229575699881367442817864414962907913966562052689101382845671277848235917667866135573111146795681326819992665904934251922660265244090146509807290391434624503657056983635027837513647372923363950118399259472620089202978866939832870439835634149265677402962150958461944555651522701016256172140857719860842220227287067757570004007752588651596073416916905944684205001583528273916841620791177226922937539096821635217269172819577433900530151358792936285942679703200521076502489859258198942723958568610432069488569447233117900444666726327232492228633990398266063218597417963806250142112608840695205137874225575822605581892567548995274347052339466354791432621065158332404960037550949650626849106758636944779117656013586733909142727950925748940172594461609795789019623224437226322819320158894047301338631457535830484007774930214373482706935595936647766659197435279859117403207740546864010276023210923434225241145759612537070705623376441180401236431235693006980194473858758196368062565823833172363177349602552944503987127859003889038072828971162411654160847089817448022823936010091063450882882344843184550376425617466474140056193537946757777405005605495729858285688256747685013464748820127148146089254006433145400800905302716346891391604729175201739029152710025629358677191022153745074025457213775936723549020270591593624701779301139541479588896824182278269663078750314157168147105562834531177840761409429355993712620639785791419227738985915666456563208290449558978783444097618564386370122426782093527992183528406710481553132011522972446163519328874578832225879330649300087222337576907821629598362432260143868523176666877809263428824014536779874222455824325526430816120868412843452535164247314120635456208661245106967912038455107943751061623454732421024574790172856532738790804807415885461591796896514678337024895251753909493032185835906158233063509287858052396620519241184758233551545108126165078815399393819198014745358292352159146342685098634818374763534423096831273142017833138778894454631240877997313060138884469486771422465221598804242748690797131576957944990703617222936495848455303597434743454054117024387962905384639020802037202484644524798317791393739630314916984774927900983646074676540368687135245033541084770614232227332322819759876288087559081887927177562399063622017895235306834501903348509002102573073529518951573841099427064696497384808210453659548256895725810592820408302591303611569376585757439136192058062524466128198457708574115419930101846140225920064214517276034420024339919942066970767341571014055416695289470558513512250190088538493646570152214315933635043462051826776887096720127844884681303038254944095427015930417113656081430436575634086152045946799008190904598741086239198972961867168370668619268475808771651525591221690747766307371640164346875189697043035835724872874597529316383542305255753393958215132437882194517400133358345732277042544961069570239425146456376113313697169323162735266276257287345916301489541924060790015668048548145321534514692851388349046102346093222639859058591689291408875562380311720070940506492792854694634166746156798965879928283638119135298296401065513727222011923417707416143529630889909906055165478848522709291756347493499041481410347293978590454503350824489789419054153871906556762008741871840410791997384106702902288594652813733534982899879031634772413656378070270360395681798129215341687606467729964529827085446934454223427104521226146570920832990425015703530301958892392201351147031818581186381411307828901874951333573097018444098621781127554468024975127858714148088078462211182528775672466793298750722979915462120991228692604467778983746307142021032088399390061598107824805433794726324770610056270082905929277727591335641472214492255320272608486279096583480536446799009824633149605436470140071985967615890525228073137785559645486662009966204964568843244045270310352334044646354012819053867907455066633305132777749706818629557498364911930160035132711384797246881389375348084838520416105026221445116877658882665749240334984769831839068587692451483099312922758599154543253623461910237246897180987271704474710574633251054697659305367534089351429363380900479136391431268553740861015855871374862839926714068469777117242616990783812513041058145650076344016329917697549495194730773034655215082950985920206490999726891535570629762998842714830129319649141615438943745442700649510853863760897020318630584624891918672058388644919174094276056490792606474655227171407510748750870157926187441981187895857404591221478317674889018945123224505067006265223153574474472244283314311145662603291898879595633408809940371069900367847697548532819367479187457569351172718654213324628626220997790883092325564864162970039926131739973483282673719137447589134799974212351852414718712506663514017625724643265325564463383165439850881211362865661359404440442370958052944193385017299764607871414105106487198887928007597913710045535835859380922397642368069312829223321132189490315536876868909230002699360375617976520359560815947209942164380840857335082280497131397528362899157555493189096644176100634065799745811446061245902880205329618023100817040998235979944140653429686998749036540763574308215700694956341404488062694855260712690371729235076264440462407934555950257604327113720193303727805639762148459727677080029361406059216820087418425912572687379371346606977557757792182926772232076985185113274090212164891636965475626857739371893365985312357343992706346524021542963696384571324695161163765432338766593575635847445045105177388506350561180138812617350964413810466003049046288673722375710020279447486360712569969979294112585568200525576072130232956037793649528956554488408303679958691746751017444013006233790979052202220617198403171014232955432674777493504448753783598379846404646953682349394466899887137336263754316143040560876606767737283169390891890028758060251875792395736930478295492944176159844606976005859469461105834821036438384914977850866543715344048525055312946733393606525809348607181806014807160166873383298144428272230164917470256859688859119548593140937494598529011340189644167970980904827881254780411403899629281935153551474423553413537151855440358184952832224719945008053934918910717086598127541790242350475609600081601455964481444508796534883985378123976421422203622661721330499565358040856340565568329626047481700119082724890051143691382136846531039107190896897949289084468278013464256929645636740906394990891963227459293440350744709633397873857343282797248037529050297746843429875751068158010031821709180818877933281489392307171728763434455452164636158178701533299413109162672206621450158199992840210812732941492186475447570066191207942071475636777417734072632735208073173478400087047283740163315353263164963688824226839306600470300470003320516726190129517677736560472528721856409209076828922388727906604408053381924997351164763969159799879573551244349977735142536904806856052356155989459533256354550626947587358217759286797480204846574414227700023973904139478546480057381106019509874558149083507775996562352768337760424769213997877776756078109627011560078939032085077874428090641828372910537393670679442213615649743492529464348871993951372735531176287773405201928654843295183141587145353462218269863499281679587111826579549259262599979726574236880624100973552853595605211321002116698984578782646533860267121842976360293931228686569663322910987408054608873319727116549183079169941252453106461533100246893480185069327872756452509389385007919691465323891260199238719960161254014164499163816614301202287705270669955155813330557577361920523370870956321714664518639306835588128693077493109360260948747782055314528374130845213443990986821916174170200756856830975902734968713581025684402104470908488567598799698805220670332488358002442165290578418598327158975899119184817748754181599247798305641084398752002907667318222818437490698620127906214190904938790149122448632907605362157632438230721411073465149744441198625993210298546138530760631122520003892540493421054861765013621233055045621123718822819932373337963416512770685715945793962415718666820495293668561710446531909346458520069985003794810147643392387801393203299414582022211597283295455987978364087256736064780440725051406772684145259246474543807976291535632809588300533281872319367563314905080695250218202584950541847976118806105400318610765225902080359283152855991978546734141045232264499432512112938105681848088121757640798658950140422936191238706092020375773689163811732721959174881058185227662335086145766365793946248484207244489989410021912659327928850873794149561449102459089407399258987311367468410642836925415602363784940183321320835607297126782611062015903867591307020849824346939808107011093972806318494892404875115690252448078400578977168860933765152001776563995131980727364956090538346616031829931871169762642689166982320026924376559016187513619225514526072572171980439035918031317900240309814163164610681488371599189053016909108536082654875846136926033043443872787581394775958903006316514451324379425694366949012443801893385970654921593676067476126332821145695681323278784745991036156298006632214474470205526435024090096277311965721175358406097386649863870337935172536013123152544254651099056625663096999398370524955835727573621843877071807259395502531774287791148711473952845372621979815991948239632902243509990044741421715490937504974748277406321403510110902895110744019271239845588669227181507058824557452834380061890388302364965798422538615834236537345700689391473644993629304041468961915872079561480796008807132845704359686275696366356516186693904339684195892813205339587570813686653094385722234873077256565100395310145206974126127075498633136533602215966164084481255428691318948363813313065848465058680138548930437834175027171197218200132060128294410260432355798982533528578808090961013361043240001639022038769439739018200194696230511239419956729031801085131084297499617487782398682964186638887744186910616359831297175131537548898654163634654142018122665159318405313775057888549406091700114153408818924616469540470362676678124175933598233107623849612726943798745501257979271979697085661908920323504244106135512619845836679809599236293543622444388947246201492489291655300242611250973899962023257894267157378254268627015215229431507179963569761349428196573291242286415651557872969755829232566307584096730993586683712324186661231838499338090973230534078306275412739432786074782035410676556658395848765298714809263507839924074220840262233646254328552742480617178530665051425173891038995497270010961332535615988729606724877877634073183517448997032670427550932982637645536779220130654748412283044953522762383356026846124887988893047975069716147692042897139356693477436209747120562828766712452736843797784685405978097976631451381320087926311703207608782675892073929449409786613002959186504979971336895074394194737270637870143844030457603713560803193292535575993169024992305897350790226187531761941195365632371746190980506863088104744873239181580890854654361637004196260583789421021261858766356968894331053651058338877423261825011452427110854388892249309216379749932389051529298383328427555911039334444468050266696699631412255762647588536320220945304361183916154663177894826931903421749016304246732488685184611217652023106821265692353291927753915051048303705249727238598189274453138937103183875682238034641848999246673560475376346522174544744780049368390328278578955703748884843118751390418457342291937816887870251053829194292525185459501887371913916853100563107961573211026679352715012226389057790625040458796413227845137025024086236297857141421340998740169782607351183152758704209979875727782329309092010172714419642086941579270972265447177531875836255476489903163370872696819679309499446797872877246153545990586193563310209825364459431891542242514590864160778093318020171762680337554532515933654815297668579472501137325624475214662012400372352220726167558846307523322331856934355921570148696069814147843913927100808766322742666361934188500121506071330857640688375606999696953738496130770006118627039463012525078439974590303886931110914830802569442524297339558527166333412914938427564599399540499335596968241480682978811297313370265999444988443728034929414906492101955332544745873651266917834562891678236746852090666731231069970571141775548857522093723155505202322259499502171191309364689258783370493145368110353820108450430229844948021493285533136417921695755693902734734763289089685462476383252636816580353973547989727622081974835842943291497461720789757078772922736298691568879811543840462207675000026509649986000524354852010536943601003504004255490294538293479281765321047741812685778108291121800655587754260560821251062027088101512148314353347995612694151164078750786327107423899608924856394467860209486217351891575685133139862016849604301189814998705757976506738323539113519924289438036625918652612176983034364833153989616211525233720684194467212890187373417173023895216144953769856772012680417131998626129687518803654106709588112561952462735382725277732030157234694511651648060432390594922781679350126750775618864177478229608298267561281796447966880890211083106045394510802713872382663863360826495316906429638925744889076701756682628364398687504773864371301236720793406588656835614640871055240270718914819478302242588752573666020235421974101781986862140337201409986355069952057778036000379558260858726999727653779447849837778443928200769182730467949487111361630767586715366808422236613158617835376777666920893530747547253022315559308273550956392043125034878900306041868507041269000708411992176352268013316100348938846464039888403536693281529699917594693187817634221553407831937058833574844201087006210183896974048039249041703397625911512833205174790045376792981172783371669270913372132748240690246921049468850866840410807802026932794886878683720020604679765052312964975373657831164640519051985258413803318207519796918816459863815951303882317423151792858428344508122413829280816499398418165905196579578082386785436793006567238073466445477573067036779533248421657620682897314545159706639886033247528431171041517288441713404381479118576491967211617298710250035417921579976480885822100640931438186190550741552765316200512041442866162077666020783023492301997277143705977943205786367881441346942857953087967528961203003166198710300314586042019192349773122919058614447116041342129215891496302133981437635787762496891091522651565034826288346978654371944246553654264961032771335095928571065984803177889182267486055518478607186905514905495073797059919057618787378790663823033071823752716809296050249567036200596961249455144115359532199119467504122233215934726711906467552173773596668042834565346171832154237502141644003685295404173185006814087913717140880948378248357113398222747712024579903928485933377174484586880645035347977815403367770584163582962795429365013204183546764131797127665302982625719968244658318672064581291201558027245966960268579466537072872707613807980217152986431578496325590396214402009949817213356867384425874006253016157646825277522327922664264389617661490305392487319947678349337168117556014364494296967355329315481147949499417092649974442784289004099881266190570312476300447622522977542286517884838878150177703309152377313025614768584431678689273623757899354901485752821396244656993554075060172325610454626324395256670699794588298869718319067058425496036832235580866526989549727175116219045139911225583939798854452879084036539688816272214002757531161831421975342433277935147288029057134274364685569051876496269164473756015002384492196250899151943351719453578821571284192781226502260065629348533486990527256938593328769498912632522688447769455225922136117908230370225650160934871311606213124948639297068400976351340097123227336722996803036895500805567267594542691187145751126620057414938079761672899411610580370306196856755798838125396353857214360509235154381965058796707824966285462475365668109237655217220139121488079312911809229371035538668831187301662094773735666308373209128437525380099953992599576690087597062388270469006296965415991198932504369445459360578630141898130112601181316634975680583186458921746649021547517977287546337250293849261718591282786064000906430283970356108829778315219623181884790641882291923872968285349654029471927204764714043222708077040426264172507869564396073328487106830345774305022878436920718980497388531130675949274589849555468803018386780327265910996617507252742619508063525988592469702801770603964607426094971530774723649495759811309094678532249081302988147636701980768725933525703194273816868121181565382515253677999547008801868282998200979847373024397944591227607688328630531933265400460637244510581974227631528283656910681845444854291863837654309186644094331740689259112793822611538923342593099060226608701120774217970340651728360441605198717429595263925276851064387220773689741387516990811942530886887494115234641611682515352968750101203704711530530140547347218869062177071169206765540208938686082251343241945966468121147680871534809715195459279636739082361400399554712050575262227124255530510669340154604217955379832094517092440374739735669588917060085192343234628028445292495094056864995077506018203122593665385153661783760217889913706710101018104461397543825260913104873280121035470821025399870457629667310979212915859920524788627251581061211350645268360091744305417314021767528672458285247212102266389106376807864837168118187161455578761231191068676667476067323793240564519108680922387062474643763401754819772916733916452755358624839490164614199087480109941951849601889261569252293582407895879952893113359413237795092794078042110291299856776900956732030154097382734697779420814208639455619462987795165666791299944957781562635082680268251587101798388261910651569002668225258644188281507677651562262016026147557612189196474456468255542610674002731176070781921368040558001983707641469244511051418028140137320875576490252208481880294913282932755707212916605245818184797566640534335973020168394746213173624363541218537148995253415169922233857676272776688625093918335385002429977658277115993395461931561532817236615719134693524886679781795458787403453736233506003371645471390318463706368822586883994549360866117515101588903789210081908079299910791727125723014916289840139300512179338721826496560718757879399438073187085709609413872856647158162725590833512675515831517269897176031663116928163223314922932601482922648271446187674599466482652169732439963198158269721790676553175661636921420895528963273648055782024556879998539383245781796147194431404999399365200861270924621092197590662830226642711190576136918326375515275592997525639280560853303104274132872977172034908618430267955161643577555476804870958892104325027840709826242317671832560683209510143127041591747526721631859909484312134517825087451619693628507072349569717018292208383530139800564555190729748788933021167512414562399579227673350867930536223943402402271875064505352974353021868471868598271108821815736699878381411850199811292005543992613500156749763838500947895585351955554409131273857067967623079966440089081637691680328880745656974002239507372116968434831079487671743487990162854213167072413744718190664782376116309915608732291358843190281054215313295664734132248422662107716395181297175234311321291885484031689669559051444345297329951066952676447249281420841026843174034197778317991563767615537210031052660311903778700213337679488595720745149625063485336060470426840804206996494374969435148734163877532669848367382509222811850148241776008435159547844661316688609239299682670907880209376423168924296658767748641344673247079425290717779240337456049243836441344975484472330157411577524182373486251799937699800899569820069571900612234706307319475702862648832662486480312427199100071799973452461380824261714761044621635167530570724405895403067224330180779695030567959968986151384492251015893596898686570736524605602687696101088791251905353394236196353447941074213149562167242735228137322478208256356292397552258551750116810419558634449403885217918760711715411334533062927127517773362796610547726083842855651548148349632199644961899347515933725168628573767604918582292536383802133059081527461951046803491285247951877361677831592037398373399931935196812104847126596861769093232114172707839282536453487476516928492661010657118811533772816420708714946839094116473073848416721220284195409363142906263665228481547191487826810899398017598650261278386321207624325129431340659532762575729982188723626887908437448813651002495392304395272133270124381646885331406752544560569876874315593887750631775364592674233081797271640510755790377206058188924071988054892319446898496586519776041978371416210948170802251309886150017957392126208237885342083296545385925275701535800312398996694980306494499150695681533190877041271857203959831518132281657668223271028756489663093106855937191447938010242771013422774750009766540281818976014271089320405493518573987071275644061006531424663024460380397460879338156640863653509484690525328336946221394898016621708323361318289647190064171167965850007426017405738687863849709581999264901612580983122185356630932023146154740468262973020434642484415056854845223330714782126537812147132418533692665048856831709747092508345501102515338597581242845510146966703097519511997893032897097610136322821278559367942350921628112949458253462541259388779794327381473615667533739158531858532523517430451166048454011104032756600376070140223308514903823204823765069452550338498784241533168177630419874897035948384629140605149695630512242038839166905045686030394352163083446216536803620948040305218366777398950119157188315790221707576959449999346853708511724552716880334453851147019403266574055376301144878838911778529383926742295623870829857088647654358669193265974397733166729000157827509143943970682230372528159098832400259027462088769100174599181126957243156987411336466136078961972877952374690482943500542769746603873527809241955565918379496547818972221702195216832219429608101831907086864060349709249515240189411248761587371664279737464192737170721200907415024067750676733400941510877511629242952221582131597122279162067727609058821900160326673770839772396063534999233519632372865488921987489728786054811077553115444615132031021304865568554772442094349290406380393188457620548715687363570407904712382104894123004345380411438626648258947389946620567585594234801211921491274180586889610920421175547913053988395232538723020199137410787104516205276870379792215811392711684477646269533211404488373600430180413175204951088422800298394676207762410340312067173083831916578098857168335008691748322183401856151304051829312674202830330820874331515054835759185662015461798721960284150345506557372085755123251507229685552016061440833777286599242931144353207079769822394503396746851565504932037583188297700128453799848412461411631165575169918997394479677618707115205661614074382218196016030364401505052173940514061827141558375581647206132348969432773589713198260578818124352619003890681286126975220434465498095255763364863761405792247344368724984199596454814547026521562201518789097773810745542614486540026358093332276693265285355585046252824847827349045934802454220683426602200923587800514991558588298228109420499009862306989287662767760076322325243378183835212828066405028413881705432115120426878783023330381169125847725439823279002695073993507773417058493282907253837861868597204837575450772719860982088848628805954560945690207106656456710596362428848594010468678000103613432047779629500081946609389393370142352098205453808179502879396889212198469905182753011883638603655024877961374599682414858801348034611790434288446213216140702090500077850050264632053426365499457090131878886717271722359782260731792946659880957960123534529147223341420392110983206103984782079528158548661069542059579928058769934616731351716937917076290173249436889935093847071503897848420221861885165982338923527638607268741055128155021224211780042425414130029092120682114818345248791294140398467827117871807320523560859805414850200237685968629064410825555743801546224536281345083551606940495212172254573194722339031718224695746900061019694403573622788556466446875513469476260689944994525358182746198528388378244150633114645507579238150018614681672900801012338908596163729412680673493436613391770765111851915321016955426200046041636899080637826818957235013348489289906037874337106745838248634442170600318257535466731785498403523771510568061852314243525875843093019672812901082969313372929330464792882585519348248568051952889099198734244336222782319108679619226173517047963612180432443426856538556724844441221907278882429349529971464008998112621421147124621445848852830026340459749556146301076606016128945554201561515098442631394042370300672288372024920374178155837575775140491877527180058331281856576251612481492363745535497077211567277648684075316920577321863513920511460972088841693911479129467193355165072308315568714068055012377085256247781343985780035083628464906237449812334304280422903129584642021351264808584563314569496894865581275955514460293663407217998412729123735079544904740496748932024400309782969658537129540222644539877084222775345779711152870816974447839396280544701960402827121331109465180169850441363588520172334786270297430187575639688740110199230969549583233980350440757465013385321307908382661867451191575260528578314369098013539818694944772680049426656342967675156443864817477657768857615684926836753771282859236065296584675545964889462670043481943892941598731880838891961046940524537196300273895912799600887118286424946647962601214138237479883348685048216287955141264907450943588302963923308058842851606286724194438688245729903700547613821626639470588212238557331456237629261926630553290541842216824010412459366757897756794652548849610158368845291338026308455770906731963198634257945585992583552994904164575903388202018513476951786606817358377249220867965754913175525651052982764908788990049262622969200874576908000873147892308468288785447769295048662245218850115690713182667734320021196011248896303917640828401841356660385382780713102726216419244594013247412136663559510806028853228085475270005261016299004066195238030475119769941988890092586025520721880267285855995271282249854706159263030059758758981087344246684156368816695853883872579787587581702081061628234048729872098398906936510530633826971218784670834408135960445042600628294988905626164199098550090098586434319992306073505482799589615371370550382929163745969748763335713777728435737973684538604333326462432990015006863901898025269035508978756759906373826348773423132916076897364789476198959288860805986932668662299744291141446467682426138739368854882089561723090631498663885587655790706750334099513513037263028714493058745907233355703790125864451988211527932837916200272529941048268220755512225611565568779752059441886952009776292085006669241959183233532729226734355666195560042478187201465479443195924994096111749513045414583066212063946698373587004552354933580783388469639433658044988433909802791732467289504588950667198172985903518499987978004481217222048752328852128146107037104480021187559209936051340813514437780953401343115314729204416485752533437102697960801654777861688243090660302126081134432047394047396122415403678955548226842859237232486490889662882732829719617465958448653407516365775451068935185144297495493655133520032037073717822027857883985621374836136868560053141676747497860103155360101170710210769904112809212865297527656827984836879235714412665155525628271001079853848042636538894211212708705189372481067136406696866826261990364834251073460464373228950353639832907986436025680462199092379064963255121810904462030987639567163201107616946591680799275065514962652620573175790168176855190660780799831539101015150101867324276812081092971321184759471242185479001690307201053650367452873639140962534483182685734991598113947446551350090411141349905497138076862883210102896168288659454795704356418535737404356212417495477499244419071089220701758229271438946063906256354513202946138901803241238284435401247281793994189074405890314578107023393274824627413042780973439652835054588636795682008667624547683916412523195665135161122328944626842744227388965404070669112336008416318351689126676246756145845054455723912299493087582812905763253817285439802450286203516538052094305641182330199305168092820447933241332457647385444458904137376982580591326281042717556586630694562361656916150362988126854500380787287117149594744847041233498431468804394503541830522534293488885770200357379345376040829352992063700683529493221220220356299438823354880631244023712182368402351745743318904370043469760941655120645964711909480417038696703192946046370659658838198786171362522055677030028702898707679744397046348911382933268194314598895004604074414916707922107512925669945369162930285607663516658105176737753104141933541084461991694681881701031865974778637636964908535084002882828593751033325460771887120782537977984572790996603208318635851948913118720866226539248530943092407901256296494484730107939199739316695771758959951027944064840477179446241103635741382393010064867648133780073614221446558543999308239959987773610165168436678457111574217937423886653904646494048125864952775249986759979830269293981236557647086160043765374916749885034675059570624548203223794932423811796825789566081837912266926314109728894756246291022422057767361740149547932210384292668464771726557566493953031871502315844344963989269361699221664544364136946972129990748095913245768782732712127031303522263420140612403127768005037952816771741582399160824880158775117597071817358477976565059825527379542849015321166338044101623912429233851091103098263367861506089151617025326512992403581597839684369462964276673241197536986511848975215840660740585922189593819289176265132299076313147016934451672335925413649098152542792073937486268558830816788597607243348996178387762157993073266853969272445533850472391313556772673276701746540977068877811326828450654675671481366728002789222139406755805363641586306224825614932879953104105514264578176275033929604158453699209536392214431260815943588268883122781425364408723870103177140475749934855439308339710224638839654636736512983794769683503498242772827349613593808448359558032842566803165884360843038154911387425126900297750620448750715101293730416330153679539642301172659604264605076833527093185281969197467985015358399915222526578362032322617153212119762870625243395882531981080162592769319168781565787786852546779304095746153218108711857700370921278155778632864894025592061148690707060174600984416718830586464008996951906092861282365782598297034632975021494058840641011720610009710053293656258464925126145785567064349297377138446704872587999149372493115798860903691698157862961513056596665020467215044178001788619541226650647500890324900596392109995252615201832603733748903687996738934422971078540701994556209648667701612693713591871108278384767775516111480197319196482168107217104355686563847822759589204990198041268467523010602749261320091535948436391783832718698493831998264182023272811608003968445590051804609900640888014360775496543847321784283855419846405440324823334197736671978061758532825871167528493775211374048017645691251471474918135598005193895180934074916356866300260119968662311493473071932233369330725930892673662806593163169073655993043514271090702900314141452295552960981813488429391111655356902253440286244114526492886776547966684081712729285787739181240793352941694469551419817786798119361651762057740506648022654353588610640603111527583901895488737470957001443934453364303383131490046866345482665856803887369788872895930839453799433111727092079963122904202704662734467032824725927403548587520111872301351699992890859296582553831195760848050710607039003751229646368086272963541776409910598919589765911938497093956142483188150981002840894461434186215505877996451660552139632359783927369174954069956593884522023752022427780081384496956752579339137024796057565625939404502290430941085549164612886063420042888227583670044288949087427033316282464408119195223970941976161954698254434553987203830658817858697612492997155496879540670252917745624705706122540731498331900747725010052205174620264832264886176130515670591794583083827253157721915364766191552276345212530235650040549251322679553243220162791359702172857628228221607672261290554783099404198625673862676534055026511261167394124619791750627092070097480360261410246578991285491579098059424089799871205387033486655095532910943010976719058347220121001583952900366239342181947963286886844081113699208325165847997876758440340562810939629536937091113577494371473334648959834561739571828724265485298721289052249725471480832244578385621903909119755461794953030133298894201912932523897837163681485674162031066379817586114417603305969284626358752075026361613511392463498076004504387786435744620892640597015378176172958972945228831724183415694069903076947003203488566188788180719146332794631332985901989072305221177150144479454401772341690316513875646316123398175510402511463281176643075797003620261900205903555946499723323960683991870528304421538795560970302551963715774207021949066506628510762065062095054987733753609574142408738929397682112408133647752680250445878384404840627528816112190379116502743250370143091009060378535021672222156596828981021638682499683917276650315305532681991774419734988311639709711060129560585583374391387330956482100488094571113536181124846456699239177318732120486771332813066533145911416841750835103137237169156280839961387532611553610332722107003134837218830333124117508395674601038121301032045300044912918121581607722620741271392369853249884991355813440479612861053013823951346254102914946176020403385358792369937737531839590492216047304160997345357225781015115664978245977974863596765540982301849004193425102237729877689559762762738617443840623547941394659512460260719764836408006190451578632724558408411533970500671227238709090329780287869832897881275173686300029731889851724413018822135394917361699081593221126347263352177536932881099544759062648997056153990872295073397709185215898853246432242463283778836876566412816330670067156586699910936054003282466750885827507634308542599830752796021085917575873470838597913985817998744425462507838671047811269975983856116499340524790917214012000292040846989010973890757488493339844192014525438013187957896906933906239360822869598566952219290067932842923396035384761714618824629482923494897760352783974196972881589564140289667340885301488328653619516080777263906983863248285869956708447966354861614729590221316243340078928107061248270044121537124999088245102203427503187202322084337178250385175850220498314350687949904111447813792539364933259032449668363590386465996536337365520825239717596141356292633377358734657854762364273745580974924533963820037509823744455313851928861597832668815974983433069180601384815021627574520897498772982353929893339828565224221185495362868895968137999185742952376536068760625422706035271910105924101919057592343136784974676430726024921045425377580824621996622120060576236387626704089232343905461399051607536337053061218723003912957535322835310288893343589090152499775066494200122347276392658098400924340222791701760344526895997072383530723225131620454379485420591070891000078869707277711224411796933231017020315959657074671773279489822522731670994070073049034595152444066690860791647417321592095344390598905853671315061837254150893973853680697656393407558065378792616491101472310980552811058919480195880710904113970146025441358241304277231730172558700065720212292757994640913548768278460160387268114733649846934757314880404975806118254902251646727140002504592398274096603285016316363873291200814198653400061407393153828364743293433897055988347106801527194711942776000534802798062530137337605810025653997763713939355899159524422090175258377665677086487056530624011043088565397452344518517461540192385360798347250102216963786457990589520460171616875700905715506516560015193482763873239111225149373032417965020435303535936665345321989316261915500530765846555393829228433283693831413956409952578906664533103181392028371346184240321193068267065998261115156438039556669104611908917494952541094125000139290386835221100555891813482231203831355669998043926819269687891259712690682262062804694971927780205052664239459749320930093168003444109725564799925367425129816757641241999644626094911472521939237888526406967993109233614887541381593455793263752877588197714810822418641275604460842301264046764472911994511980887246844411478982175857229452396953786449874289490088413419162349027026255121552918711873697000234255121270309908274721859736716425543349259149484844081148168675468373568491371448263925884330093256680589101675348121728381219282725487555380356781553823254378199036940002431424760873546142171232124978460840174186351185142396227682492369185872720338438565044877249182907462787174944408057881095262561789294377833280097880188409626619570242159040624031402731887101232128749081253628436529737898174337719654817204519280279152117420926332564323760506244423466086015844136379265696124228286577715842730234519430310566303344754587964154596843991486672339592668902326385304939328155925864109621608602015233955222041558014212771278078966720444109585702537371483853573968623522792147996901809545755966129711691418407176791943377139444749307327275181235329061036543945582177037933996328612814914050850277350208700194852758563671679783960774567756069762611262967222150523645618937313312315735742822115862674456678543637621917472456472785753033204767613236426359410456575392411395129063841710750531416236969097548249911003360465921240576606066684733130191895242668058043647960900175426948719761500526819602854981558764834406985783268060216839036146523016085537755063058613139767467788801360505621462025211845384158522235198997551018603755543103230847259783200116321014188363534148922836159432001856920708776245468238555192868711822712845384872230929068756527902687681950018136639087501244332449245965563404013919060939706243617815343341282336336375501355448615397630766261837990527566833742458959222159848781572687973787755748135332532672214133001076004387364891527309493571201328317718205364451719265506207599553270124954259136249820655502421968285302977107178999435606798244504527799168757551298970451007500589152991981242669596987986038843388287478750893566973364265857074016076062093996822200299648475648745288810907536528863293995043213899614992112648712053052597801606186548431031943241760495884224408808472228851401513546509402377747199063014761989306671861499460214011159665664226088223342505360566594706584207916135727972084552921351354102240164480830205206540544945874532603978229580553035340225758303082772858082950033846245123430736065832901466886281424960451170996179972808811730009896164646537534252112265074412617069944787275952427955288651937637972985973189429775207954624290425647444254356664597597906481167243470034447250576430449786093023709636503308134865869355001749387442475736757046404116198081607536261387457786932284867193156310998883532212909367434141600001162610266889405669892485988873025471937631014189269368629943481096942246051877348368990021505934204707282220885620148212650950992509425445662721145236377294337840633513870196205601441459151147744560689158245688875804527481679505782907759559992528650034192826237792937101541291645957942763633582500416744859951903759187022264321718670988041141562527092160847886461998930669596530176284847464624804357152963224573855905813586419180870676169488939596434588819317485797917067398595657239305650750698566838610305242612750313699439456579100783904706366720479208119652740595516833706420119405519038847728468281137741619272654068527237631116232378295789644736222289739461494060597102712950501369353705983285569542507228159382738412192740708427684843400351118210600476209850392342310005574576182110561630426692825138351487046954581532850846421077257962862707890464614593631957917579732096925842360388643625644137320683355675189945381767617619077955666603996708802164794115754758372067647554989047632915892047430608846849958621126577444449616011460819959557824780982779787532897901129043451082522048328318445454444042940307037009222427936075228517499802927362098632603011380607366446503123337968410601844145752899315601128448953391263376443821729951874705793681549489627954901340796321717141331049120002582176580346078132982092806183389796960578552779101799289909189094007960867009699970693399189974788024376729439308792757884961638977007921859071405353438638486210054650785518360954252525966275765174886303380883254131362945470074431464172482507108204382584179006921651909737558687451296966497877527190530358150193489692939201437374227822891454927694973867513025542202219748049087427055220583201193791724653893225482353457611660760024199094268713340626166535699425882767787326101383091819610332058973846759031753151937780788178750013743427930894973443100988834349395615064906791658519836054187282339561072670952945443547356232771155555503348291543556282816800997105174234188829693000001887912983140482382999636438100681674040690541973465688439187464234079382823515705831943759780504810477635400878765705506917117422905271037561688015179054762800639852670443414334385758499431456452920879826973835304111187764681086147161805861250781424343748764512848029262170192288144630468143812406362729219254311522811704006741010675252126366846748994886892670554631588814456917988089910725534950598390764904949265828748242503824242051791043252479937947724565878747515835086823193106475329655931479132733704660882686213508239481497436119346496998208284107694694046150550529590977081472174780974736759365242785074266755346653375533263670571006066367070412121076331472390964754910997361027511407104862665852124378205240929567843675156589428182610171603626334766882309674528295481843411766751872373505367127306118654723821518298664176109556610744907210947021150738860266997733120630174456072536505482724214526955450095834717364817529577673521854328458852140865706113676156409562214270461150195173889899005015856513101457409560689755637486923686568975816115021750400909714505144404298391413007902633850396804159161442329273146210530292576487359144233495932863846911316561591018256667263233389518966108803496409995226800299821440413939814024846104017906280740066668865561454379963161449548765455276593550873983729947141832536645330710582046609122641105805427583560099781574374538274264260733487458032786413082029698698037765060250385604384673367387056423220335281710494550315911110115176253056220943350091911695963342666091974849463488215221058487984062233645759596667792146432888717228893350149692689458046283190702496821354056269719038473180920661333325553071640403283847210394001276123217825083071027164650083699976813228984249233327498920683405970707471484513283568783924531211822914321526925418818563600665996607991230719107777909796523287349431865734542276952095478436984795120714521457133598900668450605645502159548929769649510735689118874243947563204516263593452650886950195752837655310965684456740660203627534208459266886908491182465975424248785693735124435227460897049176536524795571278860252935909883448315734067954248013716238825947658656553109698307460322003255965713047144669315776148518224087990909193655445364748302590987500264170839268032303992669546357911045493505430257231990752119781779629523957496330408252409174985321824544070427618676339481625776994598366609427189345861393664172293569217413511693852303107733452068831422772787103455746512187276587696517344741722099316570596610340842471936078360269119393940500778383792233137812173945196874018440622555125547852428491327716565869706605987782856093355412694742679456258935405146759836362301363273967484547456580919383999292283742062171446792759617694516246702219869946598458775014019708232469331287851725986099427432755033750339110732521615390782126128930090537199723859663449406373773420790887735244443249847217587337745737756255348079871658755930595561952085006661190643960938410970523089374770497906133839812126296745911427079234579456109489648771285541766253663026373689230606513712420330293369561124929829279884619874909917375108597094070110273445900798564227957501568709341537672003184353024077348301271522179940671743305870962701118846428276855757089760011720770264899330253754333923941049131072228528885976521846788056562667997786370902151513974074735658157672913579814783568273686298420078168128045798735175167458153883159109454003901785181062639101691740846589373279594030522016351121227588284462216178564790645839593908409547021448290014497079139185935545942045258925168888952304711239427288199092287956821835734959602484499487703545386674620175407635393217602771842734430860903828318834225061454629187632479123653716013416793380202615377240396147536028670846345589400563831813782003173027069726150484171066804250472345889947702681756317191198775484788632530476575096439295566551096624864111778570222409826532124876481703451268870708848077370784548428111832193486164164404173577378166106902817321589060769526736248233035363258175505384180158331178409142895571762610475231837495546374234808875576606003884321712385048555616631234917952220443367415025174308104383204295302518385591080755926285078379238351055771886850448947082569357700750915457961032940683168365114377879264191876406054418478717075073206911010993109836983064822318847885619571396064190978290265708629927027307345770192549269524613935286619941113110894276578680609557690018206205941318156167616991929361206559392236669827779697627538479880268205814294001275336642649901265474625039443964315119865232161588650427338949067437509150903685458120679895077293580923726683399506147550124093454986178296798581926450530291189046893922484323233396320253307740032586150917993084862267300488622110083376772832218500332926076480375322574744480960850046819331453129614822181176406926083594574887961226343236448451615491124321524545225811855804484484713967586876623689519529478187871627118500929171589409214022259713044293373752534910817157981359782322275096171240405324808838722578588716904601079298090588664354839794053120150470839006839370470559497477342645511488537785081729769978655585348550847305261932566515776067553839569971712035481720895426060917703404806582856914764822001958467996416106468622059163415280818656874882859246142326984397364098134812790423261147058638984324940585373431071999873327659988324568208169644424889837318752058741359058239767560076446151565909338423912191117347501220969229952262579441589719584249750569879808717243123375471954170772230153531703530034959223763455869092345595431740159290923995218224358030775696115527248007301871572126537384332945958095834802589979295860351633241431398612021585216915505160582596995620783998306662978659018894796542891558058895960227549162575199717203099051350312387629255022077786029725467909721873955476302362634024971136490989048344103510114240073717111467203767360207335304026901832802661518712977368284151181137006110063526162403966873904765885458246818705062975940552276323845393979113651922491995145450963052348478359220437930735896727273153311259509465424892917399291636531917227998821139503085268128877801732834559586969935298360551662689901693530160693316176997013322294406273524552127642567385844174980506978395572168883547855182194552441965271762436870036582433022731348637292419589395765699139247914247997331828870410542082145873117764696361137997898499319379323929471428732606938163655716876063487101427683344714201362543057047288079538278595347907001388015017943029776321620778013200899125074606026989494744466728800335563079052733469787306152747350463326177140155677012119720867068599400435705056425120737962712342762904240211974148688136912378340850497874399829266905718722571239698703526372925486269866111378844439215084808712614557489370862179251818517797404534979545062042372036481856682798470241484378556490865936187593262047775169472199741161788567144088521007013411454144549761255151596001094413755831274419931276746958148297427488133227476996989374554013569546878406039939647055171168199344269359355124702662233576629555456677604515769126025860705897050030685444401556594360158428239632231040122043478795738846343084524239711013553533494657897616614133966069230685799066356204097596475308909720328153387292039482652083296626519082315670722670486839990130849664003373159637771840523666202236171238721316720852852741976320270550236294419274622366365857192211553150100563093908638440529126983068202845400675951591777455326597804409398084595064085433162188333813583364348992224771250273790616367572266286608168739570596038134960834254981554685912943823014536073883219436462511878629050022473135604731133938410259864066778769277878143879416872086611761014658681216946128981074842925688334295866308724893460267186010600365975589215988707971510929036128338344881365585554669674877879843077825053334152208418009330780622966830068348488741307358140679894660087412208530309898869411517213162278663956463943155555798187915716853586032606069193889381306691590074605846768093798281113240756197444245536355896100239552134323460111113788380979391278386469450214702169822348907308196344450595695509430126155271301418553033083366209053648690959330180892503689545994292694299709095092886376436392676352138145488859578174415336993636186659500689909434960143892670920372812758804429792365711184461192453433115294121778111591067850066763191182289505340411732351155641236260456483992522114333708483697548362729674892204025633615943701914160123821725753818073217266739615456205882492936483662138556927114473048488194912617974170206952938341976842917784586591998873421457851967176375849777815854491027011396240075979305820546960199118172014507143921245436731418647375852780220739506056741176671917961058494487300999494639273889945788332726320140821398778966908565500450228269394822675821169214153137077725390917208429272649111172731356936831561353710478297060931852917308162394622024454525452199168170591240610766120918798147046202080052391910987584429491527638612342683261919592103826325961476085734306565356171175842653801450224086931634265566838895035034170836451943189753219620598848605554517883056807548675157034840657118056742136454422386673892001536186793876677813847067095550303823743689391518213405408635898136458291106503780226464768943978187079458825711156818786423636624090121704470726569684549864820513851165413050688261700112097602621718266499144984187847734093706558251714961596627632553861209970563231303442134436299082844526056648739940100859470244979979531869254092835728494315268283932381343472105070547336718610687159153666973844846517216332636092270557838678721909303149383818070055640744617776678062841769783090673245777326481663876903850856647961461129640715963061997219992836706217155328388505666429603517450493420260632804967824859729452751713089298178890055518028777012817267331236484414363071093262887470435937886859146723044506215725547055344633967441063135983316722452859268483999462885677426354294525292814745131235228044673021638137075419278911025546904402301169902307131492366136595073938837714726503269648253199591583409946307134191680259075374271703886859639962653935302567144420687692975911146283712155337683067581948692141694232296202061351547438786155520191374749009743200671468440993062226643868927392648653811458429045013391742664880087743854536888339822340640913880922142980881191720019702177858907371084779656776309935394526812907677854587534387314473767222360547140556944124737329500050365537936324655865040132560783772358795174012611973581943746062029215425504851023744702655877827119599438976526070788897632116777129123257848238996538150772542160255306934543894139052350895243528889818613376490490867796516206217258268618566718273184900467952507865138367148247576444572801854974327354807859665900499925908174501834344981282836040079910620188606518032377646000712677553436608163795726710984925817361493203381219563808599870908740567881034242857409893100799307606084496128107971711123611154849897764997469743782851191934469821835819507211952961881895644911568291298969201632934231409785603559390437186373623952463394519900260758339447535829475422082120321123003337692341860952588759967440422293213905356927132996187971246960021251624631194512500751064502841690865066246808364744282643956655076843957188058017533333088703461115841311640834206684005204466951406614016576977515334470990700718159575478402847648878391467730218870658100654792092724111458146329834258103642833083993814113338142762243500395346505002922531635134158371048745609974926595368888543495114413420621145590538906068747475810525840989063285184762226942238989987751867089709296936533600576995140039885958467925351761582858728310795486605885713081378283380883832203540988550889577678880632608647928020057791063613049915381426440039979712868111095047144855416197985945082833376999391113379206323515346565611796837906142436435430356634283871099739669330670833402845883306748407539857435333791998629973680248640996152604784034825249790268768079822108845398784272146197195325699028850133495523525716341527456323045583423572659732084718559508978978287551711254960020787402708590455308959997690775530129796711453198023404337996776032192982287697965278553618806632373412083310516969608467598488652221011343416551235411626650185265188983436955234293865009374513290037736827224855217594159920451529688892352453881485608531933181429536803969434954795534877495108959913653798071653063559996226151394991766314577342269779867347336505717071561882999784719052298362919802548536144149422624227127242539252035106170843169261749581473344962672306067071822245444327106914962554534528746038325305061522864759661110081848806006118961113577082847242445016192335504760650323278769549406688085083364397898454970288923671621772110546136747266817896093874015855151441087020210502245501604603787249064158724982536823833657869818752222438194952264819157160992810129631321705519410705731872653010021769901084470636012564323933866637093440725711726962454662965372962948591847131682439744848410547869747091517149263011228652871986072847815619141160627817492093982498408003180505566053313872066180282754303067971190286952835528800226678713857404242842243912580858988183317880074132548869078898308331419849410988633010067958380143346791360447702668256801906674457966572311475323305982705226331822251078470521774443299646961456848186509638466754204112511951709087712905466000678486784546340482078148071782020771014277121483548210163964994214188665995812237806088134224520375501114868459435916007897846496199251599043951613611401909466383110665801412490527210603819406918219350463753163134385522969088359133884817676675247689359037106679269697448746735042591866551956626022960574031043892737918825201126219045188700076233993496850919838504918772268792834699210559470192466378011902462477385730117725199038305404282400827697838646292602502941277183316980915610436850712838819263066631207963668143105458449143741459347809336358979360854094578859393585768946977766031547823492505901258287711023494442803657818208532529971021006483355951031775128203141919588881884829932767753025850175641257253328532666881621951896285168482248076502507325643027327538040825568165087603093417376237587164353422852426970998738927193080007256486777898410003913505240245325700484183092855492588883443750256490705681412609817614629083061319774071686012451094054862878735106078907801266752600866730894420913113301828619779049989815836340656457884505821881009888019246985414755795362714422186178792163022421732848238156015161788012266154347119836688779510572884977552435456098699854672764167148940188973454211118838725952406108059039386847320645452574944957472442137777007480502853810735172608335811924857320111904988729813996744119151917465554129243624301665825977222172573100716181134208969809561386474469302591623923039180039081063885522674155278540059977184175706051185254933089174233226919010267985801689574330482826862794725383431547905580714235291620568689566497997676787763716691101554745058107995886953383624263606781465731875652767011060165949361651868581059632745881763832286401186993092348780837445523225451475158278827759624402606745146885253066831983360550659384155714141322600301513899952921073245995979284205833687955721270378038842807127436277315060085633655561627995382397593568625069528759667830666802995395886868771539563946820563977044480185721491378343363476696987238309522291281665054467870024839342149726858897361892163120828913862966229143752077590490611888016869524739742510050485004908543589540911546701150013484479027747498219833944801411997097034596578786529720801302728758773716853920448120698671735250527541024566400065953590083393500185556468949541748860936954741808969543384293295469893675156150274067583628667606088233158223999968139396057205113935217595887079450550358046284529496980148391230804002036761379206227254442649212019912154191616553405703367645718291756713747906230885667274044129491951760152448272662191040682427393622372948408636853691493529188721330761415768478297530357471798540370696816666748965125732302673196263777827903379425671316474132422916181865438512698727943711442856232765915798673887193800700937381357498374659729549018972813387291422008132023324263419646844300753259659160007601183537788996475716196321977394324415202272303739947095585387014445544542745798319307174347724097494906829014716173189051291588964508437910782866324097992524313827401429490540337585604347755647566482363905209499867306988710959005952240299636092958552858745512661547149249310508483730975048430947037562272418292257903873144147635530598861958802297683537667111459786253491607729686445717129026413879993711155495882316538081355288908410768337514916657722905080262922059859380224185374088213317998181450218182923840899967436704744536963640523986775269857478347729549547471250712692813740588829890127278771697197189645886663956837562716343204116944078073201717481275802379727634598504220369353237579938577157282725706886821398284867080510755798924368998504346534009113914104040223913426242429600702168511900873983330136345256329085199759290936184636219159789963166254474920458014670359105891537854660007339093357516684365815365511417973480772179885530735010735778514482319524298419956320386660189804916603007882173791221496609991324534008250834552409805205659881106816565120950334859012358659194386577505326198982391253491345921513243879630505787561743640197586234652614448160437293092331322745845285873592264580336235108983993456432375986196104489440946403676018141650461517778838008246059383066226566879438173460141126319798714425149389720895985191732681781255804361993511962149512144509154139451878891259497052799536771009124866284274471679893037621937503566344432656994629625348121667179666454167042356075667908402681699808664185424516903663088817645231458042069404115236419287029262921996595751840980082130577828306206950987914669385957883102306551137307370946343820381574658821743769560483551291877424567409264326634604183115338579326998612466545230324919034235576682555849286089363478066330486014520173039253993903218800208525435864520605054443752585823410730989605112452267052619285541913258143676789203142770086696882185719807360071603738766576858829147582862939144242032581981061153302883415520625481883882299793731607607143908184486326054493794214566452193114595317297548897673217671947043078394021298087636956147730214994195970080387573889097855931836485308174796867727089831210144235328880186099973556634429289655338000474959253982747704160554563792822888629792923419485034178424830109534009984707996028297451722892907809456292000623599184768163849685905452897862626733922362216007257132293176335298620001316082077111491175675139114260994018157780166706808318419383365498427305745795974082530420153510553965450844246736011415221286201189849351523201975570556557562084085701098235778480924886902009715236826011664911931556792889585524767489326303938263699339571027567341964276385593523823499432063713164512668483912724093922857383416509627033216015830087207681367355539966992893555582647446037844023982556043287049132268367889852665655405154547118306859277565141656858917127711832972845782360433977127810317864407634427465767291210839021472710823354440948764737880621817771498505123460111101682120044186835452238888981419216960010446978027865785437534742134682555732262790190622208692856877028566119970195132271106282927912825748811973859495934533183781316635548763474859929447934091669127044929868274767534492633323457580462308852409784303438786432843382497498484444258534052331835981360707824184936070961544753960258993727992322786613190627275737693333568035607914881520862867833930796475543630566609571371810168042823931670087981211387690681111589069075171728630510206920071625349513160406017430872536589605079515543822756182101086218567773234521273257391870207616082197038200634752217517276765610767666822428578097871267141926894732323697576294831041529204369688616423791828926798674051538886104127294634973646820506770142448631128513326111483240406163559417210348575173317956996640847545201976255189359822992470998839582938434843530953457157237688721864788336494084572144229647394752025808345504764205224940567940376046505971656276257053413722439798342506946454443672513248936177380384485167536537796742925363472657859367893331272885720630293754673913798294533242364348362191047876844496050821349464512283964949280599831908992059464764634967283829740510382272773099596637744869685360722172043276780409337750454795878163932693971751530605543412640570988364145827169061358302285476925202408130342324404206813665170951825332766289783643290863674321447840556287523395653021631349543886871254577464938073105994428185544923886189997403221967578310418121324799862408800831379396519422735758762490923623444469060063200399585358989499478586381257212212138722403115886294834377124326322659750564319107496636642321443714968459434981768887900233923882463072858702797274976798963869001875081251860190140638772089182306646991715167114896540576062553705645892628490842175316875657205102576844933953460270264347971403458008025607823253254185884822246909668043711241486715240473644955375542380980534030921752784567685430071166377687136865794342176955010795822901122258056842772564479844460826069995701161167656224765993293330639098106651295056946256226698864297607303463241869467359891282522042614370497272692727386524628922517193352570753223808356066947024431938010270847122920383132766383988866362697221653573015075854720000689838512174241981091052221729153782713053829097892484543298089521901808236380629981915293457930427134693669794857196933551592342842316126783277756794222729946324313020809518573737523984566280149185020206723871516569725086079127366659712582818459736026445239110909700359543889091917802377289179340267189502254372622201770746805660427208976817492624591548365024103773355176198868344485808384128057439360601918771864013788711348343399513903443098604268285292637276386519716531143676651769294612349283892996938818467577942486659108223967375435703780407796462253513300616540613654424179545678322656914911937349586660701656865077275349580198595316253995312675585419925419189127577598342444645479333223476970144218940221069876685104259331459283804042815615005380821383820453566046104237216056308296628913115195224886911176214015645975360209325964831295283605543720336979193718595591319292916961620511077480531158522161512916033096359617453926845582973123241612448061310575906104963559443675226583739721526032946127790457812094275226766976034950079137140778753849655575734069262913771933860573828186983855797126105452844929722728520819649180374424093945487681895538366428534585133067280125763361570012054467797214414766496198316884590265080066799463509331891550653293859183244585216483845474877169679035057736508671105064395199063573349089275176852181889880377901015403334940308130699812742498248576749547812125012838109315060027302067477101242868286788389790213943190193854611684518777383550999862660849384893676139351409965436339778316199291407078937319730071387658648627550061618802127805037809707495014735905709102654478976197293855841933925448862553606468933970215101064344978915040589025694874776857477824548078233377460048163694936497461548859692611400995694329803602250032601952553088439071754086767987022336696407838683322235071257700582316881672610780414175311095560228776189496125953416638523089326134428206731280023343874534490410918834693423565336609325907829446625269606778689460949381265078144594449972909145080051765172016696372460913162529786495006634693351419520870733430330490979924204693125724114444740704593113873969254484925728173933539948839251153562964819706210395559380894533229093191054535603144071908572959564013985714356599105886528766043808781639373192597638502568747044207197896128094834170273311858949955216244341705677461495346496103798593703151124728748140838153095464360323058777529168085966644097771854526650012842143393406326688798710948236400599057700813736951798441043563875658891280127330251721285280560452499995721602043160483961853129874041578448706545601889595142177967184325217361111961913168917194780796396675388177274275046618669088882667332578621832743965258033903822947163364486985409397137627233446759160533932070846113572814678287425118458065296775557914540210592808142783469275600054801996983284003573817211338574941655093932594196515594230766523373569451171596397857697143240584850599874553090549081516812296204234598529569255172731889600018264131118703605929832905535420670731792466300936419709283256445192540412455306648161873307812425446480753044228048460072688225404514193377427673026980757139171374455186915288774707946606833845913474141999444482173671931491910317969201234661734123071117792842792075427824940802436968600958986016943052930022762349384276322837337733790035999060713237785174516745887916287903041247686628465435368419365398949834396902087546162761865423751391364237685291562825285887484687330802672458607018337023807530791955871858435917626336897643081238183590577920199799641504662152721609164552279377761293279002416729092686785393556467859877981841318486315786052688426462406058724485977642771020339811068408658490828672015222043297054792520587680524926758377722339073408558749011796721429378988699179650181962669602809088332657195153668286055604612660560097240728618157103380952080991737692578045837394662977909517532182302465137482243443286094244080974952486567961275199121366509650654222898449415524580893556257847981649924027608369111006354886189729339376218529586879210072970065042192594990295708584787333312239206694830215119461962810358916818273740747296072428201038661424952293552455716805769507355766435792302484823714332864616461833365336337379722469487045913903921509025922936618593683991348334009305907138879552586464932370491154583400562857139845210852440418436183140789088894118458846737795906431169837334889874839983085549362875221725051013216554961145307558658254383810006184240740396368524732118722468899915014784282478639874212467982227690361126802131035469861484599042577639054586111896731279633219311676704298454498406165754242083633931837699923518538322432413968452264519135068297657393064172777031616898858598387341155103610428608676074132005430998303190869405613918858333033170509539037073945983545461780002666497123661489307573790206352294372238774731105575719729052175137795297971286041432539578990226173928903423409249322820439666059991730976721194299577386955622188604960408031086127483234220980086818131693798684958891457534822717065220239278207453464016496699613429550027746360405785997519734487585807801454964573887077361501250735142156393045115336780680995136497042391825290615224524810423914260973741901524259177726201210348346811245817952988281831658683676115828901669012078373430750504118576119399749512838281790810748471221072630223271587997292730565521559814086950687142377764265358712553215039868792627465188024851469174330722168144929734648814793900443003223914681440152028728521542601010096411520438986212871866658251971683484805701329041414011743783242896462973971656252621532083281295683464445064213733608052167599682347604496581946063825389447868715428916744738452044847370596551098651160336960995502779252261756396875926335099105529834321210307823486726685393397665837836563759043269369370350419286197919706516238757751508092529953476743208581882495171183585257171068096464745748423306708849717115615275520620446191050126074519922570764420823784673918936894249505995739809161107822300668855406090576689812887055567920159136998036902807356089941698303240622524186277577300162688490372278520337682822685485596154042227911981743272079449646788820839505039859471359285472861741888207023154103071405864857747004973819766791632016734250218057934718963264477186226453736652149883583274678285928033495301222987445977255026848996297151463966828088503696888394448924921955876272747113136815422768692401134156697048008117675622588986156985326124714958797188669765738341395969307332764607146297038608884220444252729747171409685320827735139756819229958407901646608439311558028866431907674462633746361588307895951135317645706795783572808535512619063213155742510011599156724202998397195268904602617348799665769851771059839669986933291306860454651119191597800297929712895644070593543098659459393098530040999969769216064328412045840100961205326702416133041493003032864493873652098095335356437421198810015429000319942204235701987516595646004044594902229499077742261826791603463739709970053139374963632674208467948743276579802889387467747646897485457645617750352684546177961870120460525727216489302840864527515784631205962039800787975619245042880272170653177739999038978989033200160086400181196626735393044820096600907750961499470729015636083531599218730231605280198510529470606357240144393789511361282136107220471135593010187642814943863262725403078817677703315514283681105125484952445602310377223715488271097585783694363736430334534425036589613419150265784004344461584920040871439485786896258997806613125514043870060345746182702444080801562775183402878601957721420605209659515769158066190918324321923269354764917476124848272570463900939518197240729726061923242564477557178915587469900689524162829735156240167822708148212005320223057917441120326293204194807230437265389866916926418635965221515735759796018927166252535405482790734600227863156883384531623120076603105316216953884915729939119671143158350932458212605427034616220561326110776861722280163912197884300722618021931907435725199653064328576930972317382063840401050205654872122556722651870691493266801952835474729314321532351214781445968657040162378662790803212757583209232253891586623104701229556500080569981962676613372296619369732658291622675789864350584709909635489931152284254104503321120359943919077811134966574886883355538746003612780192726895281507516997725681837211524498321858101777432626697931154853946597510219502645723273063942292685251499011310689425061547231855443740193532816478436345132800576086616184001791055176964806587891086435279894651687035048442279032282653074242728425332999081967753430710394566540393313390102933133343912210812806843357006678943507472939628655670475447343367474583279587619151620656079486476416926462644764984766821242208492054928105713200845876900650807294777720441510855360133479158397537058387835258901534657562081432562624613216024284766367662038793043419901448406407725944428303768101434082766539523929396573273678777530749996442603795994319929209308055882044229410037025034138513242205001253267429694738409155516304601060877920397242111922757784936738184028967916796276999656774645581955089526690610131143735941148858546002625731306801657684312199739294749341395011196106713687285088085306242291098249821226867310121179630273868654281066372628135079394143350476362424514414147722351772574556045183128861270178311061543565945183887959710508389610692323171948542869793314512352580992394570886188280107295089691739243153495994881360889095365641993968685646059327248200381672733943961060935420937278755094990470545197115102608423821554478218485111390168053587748068942750513981110273537330492558989194642978274246850908875169521030382105262416420916054403252573997375607465248183252041305674090703024951810964747578153910901582387031612105996823923593367467257984913006416806134993575766184330775993751794549701467070423626912034277259321172618636762801787479583719896040668696991198358618847987094247704687295866924232112146436490061570266263876285996453023453546248561974034992425809374328205978944769139157104102908231838780756328838697727918515098093828644530541931466877159494443088041936898892972715693684178620401521314825951861695300371417564236929464636127444692095403438379748264348459340959197424018943582324898503457670342978645508810522964329443668174146414089515520410259314443197057348208491551418193119615707351147475717983026697282171710297382479127635052620384189179730719237207548687804855569512457437638893748942227836117852392526145748155357115073757573558849498119262225534801131667421493434483130005393604194530653425692892802407474794500354044989753139638236641384814146396771659296228638058157526654813411933244902458092653124868486313083284878314096371019804130006988583263878003902987148784200840971366049564950079616508259577189471709307809977691437313675017953999336536002371436958558591317727072910578876747771948365579911620420976287966749973469872332218083453568978135477828087949459447758561406300189611955051451192197214570371964119328296993885253530556538485227987475688613552313362358626337950062943636869606434921827654012979053384624424770741264840382782399228275808308059134241656995244012249720286080111538164730616393725581291239853667756790518088042864608950433528940154609605344018765703190567325832803243858614831164898284715912831991459739902720424341751384832255940490514066832622036419975561310184629273603864280008394209382955105342170041445019643405693275434010298938379511505560951184623482879063445878718265180583801633466723148104200887252392648022472531986802020212217939593827642280108600061435158622239301151196025221650052589774950266891045720512634839801355674795479267885113462101398624770588483660920966328275113895159894135781387720687117574484270136433912894386807198802729166292857422226476684232879956678802807840647439543920850274795320228373191509295920242567536965130791219714091923833098614874581328391790861826702573653582387503160282529879907102545395574225262685993482116217710038365459954405240162395305938960287959843551299492301817385207790467699907990579563462766641307889556072237259219732424143604370425637418794052343308066862253709566589176619655660842094164185212278768646724473659409140876870032392858064742704266444435449821689018473115061566311789142184028976555745863580881395544580717986283857090774948504599621880331957359475698060081595765774247610783900977510019295648951112724333943336313350665848116796425615817424134830288352844918508231281447191493473566258687198304059285903271526217152320790103445299404476163691720134187806712250990611463844005848164997021912981143394226698320214026513131838746347975265204144875033002725564060282148315945061361779406950012411555855405146023344953463824565437069805873247970502549668065973547057679564112499335911931874079310916806289236929355355845692556689377683223647629359079216295150103466160053938597984028358373006536841599259631530344995155072340806274415426943373765149773727972025028909355779272736324811403122518885642796648207632864358697041769568865539549488270962779520490350417001432582012149900823643585006005013143677568387429704024051277994221865412482430665202765659859185290946577562374498669232271791489471071875377593933687051188705077630795450781588934917829449343385891601669552557181943777515192602737206991674965473219945117509554548284593807500991656106747641237083025339941657999359202670856745513260293694878327549032432269783229172147269974403377503595982534286838288765869403491905383789838909019966886204619702588666189634128402474372003485225886061526632439942768580366810172489971489115260074720183437328901917900192168629374710950733379797625450174426574044022293831255720581232547626787640133723015618088555590145707259834239944078188474825411164752619200288899048542394348960604069935461808437652767852782158068581798026578221517396711418773661380922146609010058912091842335351373964875290690525997575017777727853282609264589757739716428891694545432857731993686410017093706660509109040955220146340341030496183755899009491417600150491029496074357907126322557187120962002744912189325949042581177389226084791300809462977533175135376101123457630592745350971939595600522629158601008690881451289326007668050944431895216485551968260010763737468590351423220876912849138402214121592305678110816303727284388496051958061828003050407146952000287977230104825096065959369428747608009637063098812953547719885860164861253996976513393429733280645130733009951951855160130659714183934094902108962064085173660424171091733383255865791109415351371874636287487016267053238906437631094454435334310582587161484807190731702232228507462197277429715514449919168174618424932170410171091545026623777914835474611782512836602806539614011496174274793685120648147077319189163352001119633081480860436476125677372563432428616365117662890917541978141599400591088044011252178152354331127159125198152260858070933410661562971658299635339939591169289931930361056418995465558422360385837482996354272225566030154649199263902704979922412146386165898166719606465823197008098247225459716230733619717181883080800541751404124222204960620858099759220648240607285232179112691698467344008237828887396468219716932274026768575879522422307139461232385494796050254034519389284573537368036201851765900851706384347405202508499292777654970579399194776943904940091442679765995571937164893551341923373223205758376815895802564132989805209587084942773527547038169308493266760251263993746399348979964540100146620961616048977398402601824236856607968442127637350651601041139700581060889956368962126706571578986839112296257806104905359043212842421415823630069627049842726085545477692807255074784244087225472072321933964606723837782949182076395316993197011287522158303037214566623667061112459389623070696644307307702615227190609652853707561343355230645605301041294241275083127547436368517600112000749351496842665017052256529749193340070285968968242482685396838195726253017086808371785955804900448913777857322692624755888223075886012869908725085476930892979914356279748206121722591509610779765553264393782527347963161817792268743462091173108278732468424052319543709997821137551159209778793768323889579732642346157971184515778540600141162116639407198904872916310019730095512746661722783672522381403483791075211420222297555983423347897184789444991075945777694026118092929589137021900343517183013473593365537448842388453162057191423128364980900643793138174158663459926045207401882232019357816966075571843203168400587673078748209655049321975502443330610194634157039666208279309850980897143544911379707859042068359698835217525763977320918139982978351731837315751412770416324701392281764172594519633856463476142572694439821699177352985736250093880266405311913248369508683919739577464922055324529009905083607526140222223785952156978686471444028517942982769437486492244754068559910037661762954515571195462135691913997720777725196609798237903972234252214467471230969830597673371507142185392846533396268400401753388554749365405771763391229483013589974065622822860112287213148725457677328060582328151497235974890915744101439110606099401051105356501292760908675094105296683029654707760923112856668085464661681549551563836379656364412529533593124358934222975284616892461692812899134029039799182144155926564989063624735420131754921432265877051810362283875813781039601513276226234317479407394979907445564161264536862340337703908076592398152526827412901452518090788742803338013560011266485417854920338383147913656055957379516708027922250543880795731734983799747670012502278345591817691628489560749316058856511393177715370043331195920396504900770378085084561770549782116943314879675090431259783627584605423852452659144177221843595857275610816180276693329744156911615801771893546961042286039667224260969940261071277746399788185101404639647185796631955639267879672023418254871369384922470553907967038185386349427296489022655243687629168800485438055060588537584330014728583139929754796673346708521974832734667985845828787193096447739279294407658429459249157710891839007018357278257798257202501266479514616479269636027208495025534452768085494574565237697164670006766134855453951215491688026640201661842779021750957701898884953594866122945341800450690809186480891569091754589214031639180752179650655019868495459090717305042377375244785847492991241691187845522259708028399111862201060577759414920093575269880577890452386901193528117422793783852222082420151394983038768337525487883505537936711984038077136790053253642978509747182860888239709934540782600347816394948145954574930655909966498002459242489178298466360820852414600300648021511843998959797417813760740560421035936014144290717234650144029073050251043162618884520321950551240270783449552072015729779585146653263127547484964355565902126147659685920995781459832480062861285102407081440128212982507069730535661350265510268370633134719529955879028609131112367125052297187977390855572065780310693504102126549759551968172598180605426248062760840715548536838042236308919712314753886277167499620838789786842801631008515917055908793805983605053534370861950838933310579292371222363634193509343040898773969844142399928451526251774159592347814087082092164269865857973962248988243779201210227471671958799016626205857129389775080714844926899599035462188284051492634415163798032259384948353366530463501522230497839020762550047166147707218531321495133641012747813147996786528602866810639213059198507463590396990221472975489721112619245091847947744723448411737309363261457259366181500621152104758219614655521186905891503499520508475023348840090997825090308101404724703609614000281617732739356028561370050360719959082510091464035886238815208096866583100607576937019101798174901516704110102562011905827629849056018088719323396913689487750267176993622948304302750827782368118770224987339989350044960092523646740003426369074980583825384402559561226643138500068160325040203044006734761040039850496848200446707582290303386329124194659524310745090023717903889527767700445185240347906483320219627871605223990674736241200958542027794872462647810584704108720658737222177243720792118789150616404156158122504096812478869696159863988883273303971332243836723531219261869779177686331616721448668296039399062304604067011108900711754706308498199379228244141676693941617000723130489108269099164895228988097318098240977322756491425803817394618115833156551130378239908770081383786857130893975883532472367916330664505389732648060984943922517904318107623191660925417965583713853153563700482058991720011914956474655550083203776434607361230512612383053601111849342580080451296707829724798201621545619561359298334991055587154975799149207411320733134581071853193304451554597518076187662478837264344558319465142788100224816516544795881393687999632841538850873802987193411680639626333948868461029629643987790770556002332472591506236809210568196213272766537565757885386248397743972590425184183529091049263101905667286390727115759223679349277953401869482845084572470182215031597998463364998580076337707191967652518649923192039164065428538743007825275854414373696095774957743634326469728294862137284637450714262496815492046085068695772702074913943729331293436947325875831136343299813004237380612045541675354199034861233236623418927542621993518127790290002817034591732370564692622064855625590031161189607435358729816683551243625451832865968332758493821944489109482859525314922709613968243553211555040088864055270435238804163517784606296996622693441872311305307189617463555230404977721949899630764689426743600669825788388668507338088490065636917186395394819700979276290499249325825840987340045591370580323214570100042386061158618072208836424833845773391493687584384211309363595734782226642942570851142362536133271409826645775117823053996186234972868572662795189141720712812429376354443157790655267392395209941823134572360512781839720210995164230287813132887200844337761358880322425644949003699008014406521060570535983013017711260821084647050215472715950613927487584181364381727582318234465564614235310602846750474666688650416660706851238926580906509444112404477349754539639116587612878695644362491519048202239989969038032964933749814376102566511216333499510535926228673257077750846454529564018203978665167503763944196207088725660430488902982256516766918311596314278902111963202931939463073887484337217610601273750262939142310248331600439484915368628224778711415750109839165636208985340369362916083133960746430197643424250068176781940370745949668907178211529833651710134501142103644648636809178482559492066649510645219634083699045423183095054389667363198174756907007065263903138574316758976327724025535033233048892039412895416864036366460109687925873280503701407550898340791678782615056830022589698887216968925041123012463292624177273292924075480853989351823359692372445168917432836950130466848306159302110823725258138442164834842178334636313267029122310101484839828810140740264180904032323042732902607013485176106907908603486236803955345995239037636701369142984186888934670745667451871390835468636516626775213859154262415433095190464159701979763946041876081819458530247489464664135946045261109135396218268178664266645268806983046933851273406548369407640932047237463959288532826441472653004015800432788125620413790874720947371832550661036832810540841067885471192743352093208502583631956429819373996055885625589312184535007666267571281064523438494512747256712949896864249319350650154415559851279311761606458375451985834205095582323679677356215568368749517773439815543140249115339235362967333740361098333072458049886506656183997814388529224333311520007043251861169737255122315523484540626581017467054529249340724416277551623793992444746226736378833129586743622405064266841547532280336852653786479790928118871063727972855846029510844184182923691219170310243911114775563029325994178803567734028938554541090103317057024801789685515421621332463544125698858594973503569314266877441043837793996770608874358606072276924350573983085017232399935367261735852067306290151095778375932039908622160715337987412338521412337120676722198671120700402493478914566480197306202452316305497211642501416941924688248584060046955497303081336822149827417265759511946514262140332181844456243076648147973343928717925530969524202575501088899146114726691969310686241318356414201663038298521332684471884140287844881165746033942234009400869242478968580657977421134281439896896889239379776299247893633808596649526007652382610584197660819621804817787528636964158289174503000281003020029296389763788148454323290899895117193473348315177415169190117257393143618713296189809535056350658587175764876356581004589848029550831764548303926202769671184841185438417718968603606642172514711511567159205353849113017479105103509606033994440771833347099782254720051808146621337977399294473381990340588832415510150842408507278375284746166757334800546834621791289490801198501034008391964330502749353851612905349261662133895771804610620965216149389462686685996658709355188592154151650205685830916659412210505144738574186514045445014318606588349879880545968847308616316368429655573216586754394747164683393735175614791747473621185529273107309878761235359402927306414787866372959190386040654018066208476731276040745729853487972380160528216740925314311206693404149449257169286005185902198539456725256267851889117394996172952918566778806643084755486761159174132733832222252096421259848912460304580402541592189770433590403374320622655437620405535654061210701637178521861219072135418434646163877355445465230120892457013528927849752853818159301401364153850147923039992007110993937914914953885609228476309818310353127193171998096048522725883799356764285021083283985036878761288587221551771079478262909727189590568000423583419828436403402730825819597305152768092940860518155092676021208707558704787824388978340261275466394437427615274877868065161304728569660296908642955665804987101531961032736395262133450817743013644050187508602777461902022709600544915572788433911777416667316257125809601053620821408526376574831852974929928945384552556763602406741404609415217410054969326917998992731500312041606478637918098696802446981262922498874863792564476034475145965119437409118328217903319048756855819831953670050625213320921066107027419258555526147295520068865230306880993270711317517612880708450876050151700053948915703636259816218597378579856071787351940448038836841734319389871462110589672827214567144069765957933925003934230218968736819106528123303086634495459958505585285685342333408892861065758942808708711350923341648250462489908146956668186203614617903608029403889895590128643055643704069878118888746749433382994214157381185930685501172546182528345343681807747641630958966783129053943446589800526117963777298495225716203061142560497749684527938763331859422453858891996281742354238598616805297988459179782670069238729553089221804658073102929441924308343625715286374316346944500915417794518134518876099033706917479990839811784296115316304188155511516874094588381666566940646527274583701564819989693916034823757633894501000210119347506235720135191751032849291184439697267954171928577718995612245252685459058278087057394948572116419200110688712886094319202347402617203408239124369055710304055406943731348755744189830424477931483424712206823509462712353152301047118714901617284108303656015536889307869418641328816896237539082129212296203334813338286049023646581479173484972481028847153275859184744011685144410512778131002179454144400400843446116927883171224711158904940797365101312303022543932633458632281624329990382614086993093983027807853755097649833584535897555628884490256077589116855848905954330542617898607128592621181169474656663615462314086742634608318865721782905003139647196823756720351161440832759250639678635436463998190216414642391979036620972912690959531667071415280496544865429669976653308139030220036771504094196861830669138481192955299837767210075387747630876730892616839615298079480650588698181257192189734690506800235799154927454932357872283626302669833351888098681590323258438385886026213549349343508889779742169526198651166524665161945355477279193620501911184203777055574536039033524538646147774318406133499346607975518641580959953533161883126417523850052819719014573907233967072340432590273275385393185100976016468396791217195396700937912599741940036748471108641550963771800982137552139877843160352151486807516306652784400072120021748146523236039250286686700966134959003995845458519569576010015281825824485274818119835799246245808207976822475986158120082413377600543799444800055288507277337351035677832120126559988278965952792475092478957138714631058894453932884405175383022791220924577523718395422269194866037030147997633208615411698214371227796959322605870227258067123634183022989050687362268363440196603617753062466500549366706799305285037653459268158298060364946545077959877061639254101877669631592626407507596105236491410080490271365530280378081704567024210541146756576847318720058365122051254908319026356137232845640913577218799051521613125694698202887223887034550029002592777506316987819224971390797792802360419468964213555196541367271748976381942251454531737909242666526715182521629750640534498053471067170063365879942166277281684809798767451659695798518320317353280439194745198412001742358296653332866227364742186911741888033445272520884005490513733353339472917656776761754648166654335204587237246082840999063485803894666367015542333183214717043776643802196582775194089147898024112793719742730884449580747618332825927722048975304756208350963109974656317324426826924159310729444394661069460571758077512950936023596468741758288361247147350662625938103551912801429324850029814128376671074949347394882776540168333310481929163379088703843907387363129809009439040662610369797963143259461086001457622364728276290258582278378335291076898689533398709214878772712724580689211931657972544628299573015803741582594412475429084163996239696459673066205533339836335723693053272486124945033057203795493564371594249140089093898871204752672135017814392767975354119088280065389283057520962914089277218491732317832906806669843426701499388290938548639583877379767510603562349862437628415505371186326638397277233764246876667036885288634409167351900827093287257664362904606637482510650457789790294356089693999027362243314576437738082549049303759179885691228494741046055983095508913466938427861617782027435184789344588959904614545449369670141782050524512133003435333340740856963040446429631359658620000429450269271305035608892730330052754715266468590036278686604206360608851111820813112711934718579477292626270324466927538160660071223814310335535050005725841711881529049849488457393971093398711547343741265946579499394355826863022956204918453905489341829380912962926582371707013534971402265029096462412747116857515008752109962585430678888986316787399731336104144542747013195307264512486271008624214440362394907550548506808019913058880161499107372004747968682065998675111572718625969600188846304522304211860014431363509995464900466077109057694151753252840585980986956587941257170432606535277998090774449854348393160804310707410031605892010808311987538568294671845862438622403742895523602393676009235035721933802692661534772730621285365642806509860773278653477713323322297131717340062418467654027762252942890872408775800679971225894571336895752041057504930445406773098428924286605072784560623486148578724120283144344839513468246700574710585678448592648712619327276160209720819566552017437612212097617862812243924445155002137940560587646281972439540701077521675458677850912146483500547186561672186413712336683849308480107841164202619992199801923828934688222795687003177164242207719368280716213406900652138808404144628188521793858195676251029397114481215611264107395837617694966907045804676842666913177864753775521514010845688987416704151585107852370338325560495780335176065547804182504144889112375660834810118718845000523326732493853434832200244869363268935404254515860470204699461015719065149072688383782555034563632382060953927389351759945071921918664976344091781666128512926567863923739498268120718435564543765535058167521879672997680000290941503713340326200773448804061268294350455883172512043090516060635328824063372890371962960694932271681352832423570984836218837990328684097881951710232852635461788781575910077404144827944185508175689115332868390497131259770095732227701424449352274137920716704024704314596202408958064920540073011046925132802854976190040151233258830023823284056156041402695101139650086766222896332074715147033963480699295635000410386029458412665319205206511258065896564678757404675081811377328543287475943795043974755918824081846111548875858010720041403370382660285222290395482915680122582081762633906868372867441914306664136252329758673036806352232526774299589451295743414570143310418613901721459770530538168523942059862795558673148153284008441310308137885139484769683868613583241818984310012321656227728638748903020752511506707606670155730116167508245157784041234720465904929367740244620872777257786384562001344973064282928837588456065292387466927910758569856022885328733933453118388362993962630190935192364429293644103838684174035602543360255588294741337204360864591111563514597657079579297917805478982886296601296109453792735976028316905432735651907449091122387504609783647875635151146280610631744328871304927755217079225548492545489195166870268365609777089192680478162521274257343974270365405718057404680016284367076151683690567525944727970084177609115185756426651274598491271366414835723824579476861025654247708660981947269682856532186428545337018534364289489114422680512348708603064005758550585591432923637076502249611247858963935781350627902040413333105527188000957860673936023159105298612356212573780260149762492874941733399173323539477307064819619575331570221479264227013863101648466357987451704486911907171514458643534757213257249847439438763846036823058444196458236723351943813876313566057626413807333069851780727102035772569216312594483798334900924007553103207444743454265727613102506363956431286192006040320819547301111811879200283662743235567822352934366646737808184170968771086072462049323176888930511318089699825839337440709697046433643958258269390672839606390024542075122824738885142098981103173814316022372975225178983013162630813980259097512976949141113730744709127855741600565972391583970936600377797093389257825759281828099657021749091290917425266097639866429744450425325758473115197606831155426196432065195195699096750170713680059097014182705606829212487114531175018963330436251579614104891122748651609247980107012464422100866039339892378870053667326582175069916430631875263644717017853242498921213033405669227151635900713263318162987239702596473502276888915836047234710060136008841841486007504509323587734543515552683195053596358739676240473877600459338426837158804376260935556871560068355150534745049006214385397613290508853727758613257708552083348430954936447487984027226776406744667701488706011188999007758597888008605513480396754372962915936398176934825627509004887788238666262987301844422855028982183043641656742592449377578066056044760117553300497795656241097884754045192629220685455140678708214006064673341501777961352811005795950435887521871511651269578253620647814547187386385101462307403326530026879014590648661963507905916186891807304892562278490657953629917384130403440235001440206908127429836846696664412262330795428634831445489016490836398520383794034388752748607209641926943803724238654329289980715882916013878243536026986217817241221693045326931261889827407872509312433632114971775586888590042869097108523859293694365934561548263295722263809506731232877573384509251585992818695521442817273889036511277865216702532741783528485721511710717983091938698529350679779986151701496118992629221265822803666893920991322471445268123435691081864805026179596158705369816110605663947068002978330543373012304590920080905196861227020966724398849100319593224585726350258984678107988399738203993632032965671933017559435865832664116060400347298316247143883323010752567046639791532075417377204717332469206914445536396471702257596090903113336401513198737145924699935946722606829859364410794022723611784920967058760461741499546671509430228803937567158346155354729851418921414794204992172442391304389902613214918910628026573596779645653075226931566439820763971860583827753683740793023211088860686718715399355374272905738729929721345108404766880495993138628849533315878873115210162338267296335417768471977336917194155179481916465806994428304465865575051732254833360727371757467971298316644887506370410466284899570519160024881858010919455123438346951862256447996371090033267487328925761091105001255048458376706790276506219325605285974532035521430300127695902776409939801813496530933001601411495019375312550063756757979695999505516237315623624594234711382488470817286702570440432936767083436282068570327232566850662511907641151303472964078562280577494353124526789506368944786603982863652881485730737790674225147527627052915832911596409759500274399080588884108986417821552640319244423108402700812447573516438928603675458110426091213764067200468883673074657849103695747928545283804760552615645849248120045410634121692978599108102202182412516087877417049697353949677700642482987790857009932180964754804884893191269772450063326519007198337741223169100214797179353053471377190129896929766798823793680751273492072120981028863488485977573417283213625456753382995472373427728584779219861894118305032994301091723096919507752394375737137044513866186374374092233576531620729753510745264714962341771514939321162201544502675640309350441971812131708684795233131623605863303716772856990653686413108692906560864965240366599115695832930524138537058169042009812914598446002460406192482593436744230715820411607195917916256571305882522633075025823236924903646439358800410215776819374795102582977553540126443039495400207594389782457407696974717388012808129376063263943777620564340763052966744861017294230847239979505085953976352715904280177158534879443368269827056152723760327146230545693003755522827993800155658372260941438604730204670129809546743445485803822393183081784584694138437442839641316922936689679332761668524845500639370998848067713787431030384310287603470228315436398227280143539443008998453413146432584112249797288964833406528113443325771715587503445194422624509800661401873315988200188853414620038946194543055581074433808072528804609646827680903439482294185622085877805284586538312485086998808122536017565874426058942200989056485312249579947001983160156376126393816336002094342192797561415617075125940986642633657660673027537830182038840591768324084556175399863706358232062317732648800687444686727761434927592400892552904671577668756795555018636611606131455957736155669272349529234289138978411569473297678466469593134062016300426790594711656838858532578321225628548532712592222727346123746890184619956761756843882810415004992494504633806929727852345225749045532645341652684983558079790500671861109786243478847225036029304196863873692513902373676059522231344877152853502263385623076306794344113353695162767683872669976601320819322494561313324574847946132811739742640199299186980916791516887120879887823024500897540433165964067139976926384455752415814123420655547383297895370627422178920160364835221295871304838554916368512118414175339840446953573283305844923786937407007388645724944442388287354906692313311883965840281936193199878957068128790516223656408313097543916059188089197504741971342299478035113005863731859130669825473959325068011658866586053699987153502164746733647958138905756101316957253338375392314144632542351460011773896681003161152653763067480925701737408845583198315120388187302541199825288491794763995617601206872809554845299051346626786195123753204834300279745804598581620111700864391277062817036727744048973183024935571303800087217315904817250116413021824293166496727761646816760950860983974208152775127511864138286328466261658532280659918150141619943329885589557506427637375411865798412303928158832866641356150154204928745948469764963831260880935618738113958099639635544617513679558232583224655903196315400634671692548999601866497488801580712599102550450171821758126216393638387006431789926291005777578824607711874192641964912937607713179262968973406324128878606713192682142645707832632396592639530748030405758916369011936500862514761343902253293853747392910254823036268993204932261555148613669701778781379309727389006114580769865513975383909878794465331696508833002725825642915596364662562390374602225622178252936109675926448521441326353358090400754431944713970509824993074807919640631317633325171855228314439580475310115736056568154426380166263254390238592940921444052356882141689872149010160616811950425620545373667580332106434525032664439820191308890424508954512849895314795226178635511424253723768903372085538036979527979951130979966957957342505762151133128598806825007224616343688726193901232777640969525704620225579991284286670385434627346764722209528579113912316302404157921832030917247835373440718626952442834594152891348924599713368220771443458362337160858562503673194958058423923084844648156229992690335483386816623122691730233120233737727599832625630611839231654313574498349975338995697941962241828317560673131214904487170058578202447003122821466279067682524003180557533192877615904010798194672706555000357655404435286707913398881232084736848867467488093984721971784973675621641288573682445287086688148497612461583113370182034038749248585624573026130114029611736653208068581750688135219809828780304133204889277075511723198481830187939756744567778715493888931428261451482479008617157233955059473749511357702245116849373990173014823985400226465684354847099455748649632019644478911540723967822249980606727442134323979698751387628801102701379448455219073741035930255375360907304128763519732379571286432452355015319983085686285086305174785564613927386303247364508687246050316202647463557941439734347139647177001033518180957906769723715914682035153035194544997652490487217998545728788700648363629017759105537751291897240837070887619340124296908663197097923165580032164143684611675183271319129063814486607900072019462483040244279119682129124355338421994252035086376665044036152930914483019856505206431017655473190404596707014019936820624213716755263024855783486165518174724375482130077174641394320348435470679410733327367467160243617905014124089851451876881921405250584502135347468364911182017116034276860411487243044123814917606487678052314975515823049572023691967412957039697441137639859530099521587282033787464158431470976488286084161288817004445223108257252067865756609155251505824759695649472372804943648412341752792863446348106949781258067485063036999718458606677262852018895513605709746898140680174781621434185778525085031657500922690355534230119233930395768224163361835821354549806574669621351043663787357014326314411401909571847491917080413663987752836369030439607732348090850803378758038391301437619665122250207399589901995271560816843750497153743594292048876881263807183430593132256708463525649330173404899668984810942731308657978296139831603501613152524634859091531165548846067637989723844664612416791496979640262509312541412692671423897879727206130246947179347728054681205572914037014847425313685547739244004542382165987863043868778858433948209901820492512993757701980593336633766296261294229637939376544809769931845454549417203671229525481760593239718645460720678252844387331200192833357909366887196007028997167438333197679917012685018946994080681798049893620662417876145157923576395148944882349430330256365433024285820811137811527014115838803682105057535222413552126972739370807646220609833980224675885375293685122896860144860557899904933579454999674034281063908713521463702121850272501761902290141495361898700702164917175000752420830137289300620836689624547670764392009214835630993476607649762643289267181740232785377228443519206178094417786794062003516067438363285974558801289260217460996347572838525594539510296775431648168718151366022393888695338860799783791634482229689045082065806417263663891850462436937555497712197276924474126717252239297015299271511807678872070889506972613261085563425997708069940536428562576315219939822920444236505737343825180609657214905419067948618126437955894843177853060199981624228787482386375658647582935205976232500322206339211719538545362310817311393368438203287813193733416396729741416516698600543029142592001907800716150805391287030788573062039335561610296050161970323009302207673705796975770635942402772799504352611258971562315615000442239810049494729326902888652031716983304429962952001295279088384504726991386057596998520243416843216322728717033147793514864214032802194252270440527165878174666954684884657023592028021752861253184514596864099181867627953686507933206840178481635663680585016126099294143703362895899362585174187252232639221971792407583691354660844447735061187568730210179415834537706176476145422721733385561335253216924425136478862394577454140255503534062621833210128090305287921882711399035612771449220080698753959302128700549518746351151401841295677345885659798295019288661677267435609133099664693879186163711568894809685392767808418313919473536481341924086731397119398771136513030361117383132744366039037674548954441850403249735478227404761279981895192333052469746913490405779499587322684725567429452315952688047017331969731987517346643416094022637919816060787373154356773172681060592194878596308637135621807515274050196880554603970755991879760176213800570287292444179682371332487541882619643997153070139700546510162536670643767537432195194886456535164283844065537395080873743930421413646265562527463877890643461642520734730082697616192556525016324912098522315151550677921683492600217708016282393389217124576173271961310266077836502717837430480005823527459981160590203364125547792682472395897807639724567362844897013083933503607636397461947405688976842856118219097834983645046927416354240072029387608055985234008674556393164439168504296388964194941582831812492886109865622911315520170601538881520416704571259634658134371268847915843363800462795321511992379604128588537279736139381105969671810682555875040481066034246495543105423274240390245973460250167679040131297298232696611056790438749053156560388875007165176687065719859002543757291425982100370960552412369258376750876473043526218155152704911061838982200373981878239132246338602873191270271725333538641728653965187927404607867736343665895356166574357421311018690254329933245517413253520090242044127955110508171745898305278071111082732013538822404158387312206601558715604760829456121515426090591809253869481975140014916704995820939711425567037766111301232756688138466543350046393949353368566101998055274193555683988228961737452086169331391931308016785925530021028379029716198109107799326379012432353817203257703534181948622748609547284302726060810535007773228395899749769291462267281169522767061340614084448984497568635022602769839432341715830293160955505833038317330419099642595084156860132907548761102562159179313685257616064860213644209634153559422066497652574642102937137712746422830539886444724934246604510778525550071282382077593901389846831036156469837076820266249629968406969859526594732734425801437582368016466002445084075913943868506625478283407714580947648951876938507254128049343828021852478879893196535941490643290655949327157031890086370703120334948253869572431449721012454043353990952832115739604915736900906978940938880401414063952406429675412756291540827393525526761505525144411956616459445351111230537797338505421344952205779906694976836204067487097284566322377615237643091441086525338953848844144576208021091471950869510437048716722898690020218071234805480690313687513316398600275396428216078046893346918574323347190044672390814939397942891503668254851220814256087925410685811754456272537402351687998781313067296731235467594639468404148552596998978726653537757014125509731573748060013275691485265253345228767256595848571840277872943321324782639292688447659773315556856180288462978667824807635359828760011811389620505063172785567083013074745432887611750269447398539961409576028995959224730293236435753548236336237779579738850904344891191896904503579895872705174572149740389601485999941005642591606282942862005259478079483268714239684940713324833441580668803006020348315955847557543275283646116543542544299590339255934607975622919271774504663745141386834665732960942326147881033293536072852615605781746328849628382926701089018878195912273423394216056550897506377952409580761243270788089011405823065466689900389275996788649574304691456707723321376215792209702656449646820829925341847968420565214493464044981014124176635225749582399766481548783610339295140303113242077698065355868567193275326490398595060493704975356135099762535229285069240333821207234824367902038147091160510609658095602764897141065598562628808461584232424384878276475374182168722712995778692942059944944696076429329619058235833874675442941645556928062345685331773830675504079669891281071208112792529303597458236299973793825190621715500419625418979512097824111081436167866888657537290942143383515759838760338419503241086454229150668753968031863086426354627019905799111507758605964226521550575152829695556593325680189641290313412888259982704460190305966211885117539630382398333870067451091882945435376514694444821970158656788963097125893986704773264500318550772108871391965649231212775164602046544646940574502979548767922766815217006240683450087349724697441358609531982145476314431330458037720236007448858301952299329334233852514001444772612013528868745332072309924769527044754708347981322027948402218658148868152452607292665688874515331000135856646112612019552619305011486829275499808887736688456992363042357952233744903453086295419469810581305963181486045238006677615995861968704625742929146718831399292683898135523568191267304331319475077434840428412939853037109271522879812508791751971853091759520772714095047779994453716257680108237814470657588959845804738197156116919760684265389821624580232443670640360403164457280307717646094749157191730624735052922575112772413672723780201334892423898674639181264525730579201712508914053097511840444102052647140716628196889053675835190265834810028865939915082442998731232566895597679686149136027612137873239926920788126128307436620921915278463768246643277663510862434139572788188245915224289594948816629952744003160696959427392265396563123102120222527464261204340004720977691551139044401821178732188116443310135770071445709283604603395067755666707148166081549810624183051891111653889234603443904777953413348305776113963697907703531611035634225508172847447426862328383013096669159544873097569622070530041870046328020464610601386608037121574505315160613492842913908886049699746634771186412961656783395005230548593863457837632639097482075957953127052183859532979546564249353829524885063148057691590942961887818710998063312567584297965436303250122116366433992588167204238533867481132634687404133943705513874381872560166779279198890393052807103760941904973361465840153154097110254414856135651932436815402178418392834031156642713267359571222397582599150857515069536789325911035769319389104233638823509915282194697758315046517298512061531186068391671220462157237150059294277093443082352587284385259780060421558674835648384457052128404543490949260179400734708140017924621628223173804226907381383741728514425101981355695771523950660490761995388807903556796106837014273196652149617305035122348297492636712171401830187035049322478104362695175062697925069475388254326075790273086859818004483348796332659817421706579998356465178725312067424639597592256100227992704018535804900188710931565074338946285674814572469591713917148159980389282376826460788156775389758336416363782267904524976154988846100478598166748873061025263540861667275705672912913491016786418828178419861587029220164444078566505371398851755685384884251897261092732166369224495992372084086311005695260140020673048821627319892633854944039447399814046036255331618417105527072692823897327984950644777426630901794368676959209515167449482026370002382594364644953009925382202647073160237236298813574477938352748358582452976841122729631519179066097572994356077140235670416380874458126206097326321384920259071715883949832815403064773169348782774272902293381303021000155781652281197202577848191931503914724658188462248538188500244731360151943126937144139359345040492538002059285022707474914412070655292289101793143092560224651930663903030300151565866595379686145099890228869276374690761830800013168815292574383750974550229329221720913662377531785029722743791252376663240472613452373287119670227447203847827248630293268003915009942134668099691819667584366530548659289791095996038633625661466158985465342670274687406779960965329950314749711079655700984619620766988872599062714568555969163919311845304849580336460142194243190223233173680800232347298753209710970709290364538401875316427884300976660242011054322181893630252483469301215592725843210043244844700057400785997786436585329258019864582054377561113947611293459800935025266311550457870490953695443396753354119059596684260709410073311618740047843940503992560273016874107052778602877051193745027837796674727668259177433221825378835497705487107416751616180122899091558842592379865493780721253808860980071871159728735699291014486018078115744277896622017305216499248038219551420280678770472481005431158716165189508417868821123736675460902088213276079536982350821959030676412728033603652351102411552104700369040673211097742392065059788359758160404841380684988183788105726335404591097049633147793376813010596297426171728487386373765971516326600675582927241116635084649332355842411312862446799691511008847824504965992399388464017417362209148952499943859378157867586115360864107328022214118914436834961073131936129479761922098856199028220009022977969416477174956440226803715789840822183772267130668451312258011530171134516440179755709094340333535199083737169249205115597710660176846610885218497656747544204660131555155128914718391964556913093511374841134570892716052397514873423797545272983035834913646785433189595244457296770950950565744226509954790094000086003370586713770760852610077439949537741319950289865869655158050133881257781140146769560228539021665622871136718490410432103423182675349877434809398558262378756859655254303977111537163124180062778185381382159358243700996374909413193455300766411103126629182437867176806219333162154068124987576291438058381536615327280717493844327797583898096611793243380694983698429244170923871487651108781522893593727245636922294376815422865078754621494069906516732493175361966800016783753741168718499220740690318667928738068818987672634398941735152848439386349975044641562933149138699209698093429499559704904266039571916459016577190912284075838618842977767352347891208298595484268349688859728743884703844679711800227895605331663603044746813100385518236093878588083262273018191935680388768871638075767344500753888179175051717981800592823232024490000875404149113416948753995171776150804419779971624057410826367277259050474965921257603212123978163339686989659654483078759637877204702409061608319096136606815343607797942759761787960006463714819730206277784514830466834344525288615653022551183619786116417870141472978777978475591878436174297646835727548350889498729077298928602497204743429138815038969997521517236734444496975321382862087234230206900748980177024841711145578584075884571772718874804230214690351589850659831444581204588683112623901396715202102032743769732207242743859914814863978085198173359919745609170067432604597458913692518438102214989654340604786364093450170815321429000033355819619258868401525841905360561941906031012992908499842688999832775805417213837672930118162934580390166165866617565092591587659733379367417239962830493505490226563214992093406582179999179768010928422498730787786336549337986314484023432300682946863738499816167792170348497751355982933724582347942149854164957204889397700002632330747261164514214930904196939333928468735869564210104230401643887237205048269308213948314542342819619119990978088622932433101721088068502758767030307466350320874090286704489684810140239074534793527876853807892360117421032126063917852172357495320308083779459578889607358788812391989118420767632222187462659111551615274092481051658829992155413262075932995240104694277565175826237570568834553764798832326225268909863900649692311349106456664577124793691201420325963921343417876728959059968004482756190569789505794714304156333658620975781505650182723063669518967070165250832244836919275077711684287782791771270740831442491558114480169266358330579066773410498435667870312654887603971842781373973603151123984073181115076845717464522617936352352087058344787753704654716010758270026264525742294147938291098129023850425697345650425760517697651433078638439855846316410666771604425119426895649230039827022454312092666576483566826101663376837361455648021987066832386244689563082405675662673917631631529472253279994727950568023777109782622752382468883590224861627586062066819978897618504865036132266560935726099303554889747234788704774558270036221135148361865257178544415110416727108635317788821608826118453839829161628219226895855894334555136659588039382304994963550187311062577446952017922035586776612739469534525595174697930274554161269373655745781790715666616330553096178605628272577650099742227087801201032512833755996453264890734796436319960176339551400335698897166107931694696348151504262324648859834915886535996126123521948320772436552328904533263267615943849426263737302558771861511953650941629746037980222836035066655147752731019157094883515147307023060294193222374575838339482100539669255888564773956181839278753634132439093193287956521422702552443713663565366386607759782206756571475676628567619866314681826625622905819767041376500642490055374400636696982008279329234922082832185212794894121760784361894106754776083113020126957751360670801410715700997662264746296910180125718988730670829207637401955652562026052619185504812540766756967376675496906180907278154635424220256649473139681628791226258583659197419961590329651638766415497674757599934604896696402392710708766180759168779839101394110610350607446343500497557523656767635947240723399473888733574959458041669311316145491244668028354947673979144047825451247988718804437989626224614472133628204740009098508395492748592610257304475796871778085873459186496453076579669219635485964541346521694430041386621174811506956781184266065293758859064444975349310731062644906931226678858704104131164561784166401477560183066169457115922519447067067079619108961211109837474418473139158721349393143604402684199416248625522600117777315752231769142043484447630729691483001938496839820223048297532858032919407566316142931468317186187959076153449393843086996755921705986132669458764371571722035863141936515840252498939523711995881430892343177385646947309801244942206974713089982859516723004762438487877098550132997505655299881568669535176204811017840757378039947029425132309020287269081681371442453855507700727137272978395467648542683596399999436823200364255993811780677904135304533295893680025125867058615030818152475992980537817037113901076336265982144031244031520200463849316485366375002641274753503326402392567450862136254992022866171002365345687140329013825339113459950716843733297211111503471157361495039951316688336931377678696142829638574907825134956931008187554503939304798403884140377452637102020497008306775534663732658848435759114150034301235651457430986274613689223094063646208726357131737749409554208064611270554159940791180182175833805529389284275220334389899386908309869248469993020984924137558839759582760252422334319155086250225947697548639587382050058495969744046903107368639909529776373733343898170780372233420218518871541654121117077213767628818803427199334432749484670420342697559608312787809122192681116805601651763383483234878047062313154425247735752983943012336468965610864471509080822116636813923654938034251186667034681845914139168490525490944516823128398165024269091237543672536814298610326998934717322280329038829877612947409213675172772903571109560948686159625302984849339536202747511104114310479518652812860557009680921056232359210288854729850743118591819212998800254833433428057607875188901477092043668359038627201839719642729382329563582622883893369211020886924188156795781094903630518945696577039444408472065836455322289831606710749178451892580083676092923237198216693672296438142702647311120110704573967748920763663607538352359499394154124240094900792477752187273989749829282656358849484380118052004594982161056642994372632166774826320115387641648716654156887406284166269888702185962926519882795370901682195587510750912154950636894646280635540309873790425524319728039093235489244336056655132141395970458568404451250379032969489928881579798794689403806012024901194726425835842144508661470149691153984985906235710218596486960510496378612662972684202999288273194790755689008634552022152639319283824944710692759659497561770520374488939191158642975564446204483494312463750710182574108050679840326377008621983513539781317555390283414783855477541322205535950323523772303682297102078915908198467519469875934296462978205158979508304836732396760999938725358082305305900728947081359552686221809256451873160910259972396125926606016839953137798114746261056365523646498232514111412280713293991392221111333626254225260979486130921754574267578987890302231569950425869766604638614308229398097271016796262374444522682716865161241985965284841958398692824331138051057359353524255988074831735108143201323782203513133501275066040917239278850765358859075023708534928457704601323630659169093375316696302078432257799529286009875361953321209824323333278856422501525392977113858882995912913313702964686511486902288453351038835899574666101197676311469065449576590387357548366370373673788650269427349878945103030688085464374681077560165903273242547427306235980997957073509857222224567608000570288597777178565836224428839240555793297062267342164942705642809314307380908970102838842177892676780344811075682740059142266485125505764229843860728223444865823930531506257323872195598914126805399816263817842529344678277016580482903530555277344779988356782180647226043644300390220406927880367775354973841591154854167004267150337178904103849439424683193567669273952607925327104315238395962248530868659443379523305942526418785247800863720719074834391910878783411318372283736040766929373370157334614834553586058767819986295233715762022861359986467770404766992005773625867279963311613548716511842428277059913933913334823425251015386304323020061673594372501009519610799161554702379347303347728074786232475208430938842110785518359460848075984809057922121925823903205460394071415612045328785067377516562500183799003953873615237514285007919946457822018408636555323668407969898646053206021995668283540721726957767396023849346656020771560991328744047363014307937484573391168794932490345956422232342778802117144889249405100985603810048421318703333568746863089137900118608565131700283671402970645359984613518296025224056946591230157127884560363833825185673169380516795824499632770934198774069000821003067174909742472853003502588350899880683933091210026183208835930369810189503554309292660481666874653887461952271231440164644200076524719389528954260574566935673713090275414776692256132525801774407664824809491154749729282386003851160932730296079051611452113341756858923487166143600737313023855134492095957568709857336040158824803872054017211796547043127548265000260307517644534525042563838895758092620819034450707770994587210727495373084483945730050863852776381089457250355728857343179678028866751221189556729047553857935286970429459719934439496642719394814787855937986446719397513112019487215337163980729553441437356647224699885648131383934499634813733171857268423203631289185319185619849981358399885129815163353080134843416950183776755579958076900933446730594093255655877120337631562611376738398991993335415554764685399022198242623785145873243494756042202613000111797644207187560344835063027841294527752104198101553589431431396447651671894177960449012450548456135502103662270072796119370667905771207908626442871351454082004344458395556890122262713664911916593279698854068295425930599500996391071837724768915617418678466608271471804574521687218527446696570255478721865714603159648600898525902860311520965058325630321412139565288159014048591942098839094753679394765789073278451932468560476659667163875978354088020836047925067823729747979284854462457406787459836971185086792002541725414752201767195309448718118312020554305601821773728272109446428894830837538270643458942857125097882673904606121513746738787236453374350731800263699070786289356516756585620063371656349120141782078748139330204262729104793295720042004314955156445148895639342983051492646529150275238539763103085404527268360314102021540261681325508098669340045532828570569179913503248719573338522329889551987641257545594204117770336409152052493823055524725233229112234681508512104997777697542889701023850254141757190670788023481332063543732772826064459019340105166905798322236521099150363165456104538049466403480055900851523683531210885362276390412728176540631226040702212110265194983652602018921724668483926588152597321184186234572749753988822108169112491742539426565845453464275123552910766550304538832542403806468344298268495833690805907006977163715205352022528450350463161543639695510564327062328554795253290246340567913800744535745939457687862124177010975021451839181722565882628997307961579267103681225034776035645705380120859864522600770280360114316793576261402400021853849190343201372271093407990986256468604199170625510064277728980706393379553510939678474947596850443262824283288860457307446650890907151163885030263131515425035404381151938807164013105982501240221899569636701870285864120484695453220079973633020136938175543472881830097323931145179247627712020505745228109346019023672658125890648716475471216765848246529268712944804791654860866290308497006662516394578755997829318233939903232418126931370456709632001144641062610347676741147472239641073384340598560603768392840848073992450847193972268099848188245442229388519279477966738293660248252720860661993178522199935419124267550116749742380845232778258959237790473521833657057459263927173518415707958114438658780019262400300714323075558144775779646905981242405112662124390531010250094314375237308901815429366460443340574192868171901481216991843502327337320620551448849858675275395597254859472345958045950250939057328766032576887343492760396835527005246819111901273783081274796937560706527575512414003774018055181446047308843340076922188695435730074395894764594067143038877212999061734688417922287491123961396849468410661862208048697388114517407191132949059326131996861414123505366614386909215164673698236240625265161809106554162833117712971506818162852397786431472159357423622653967093278471192189663834691488069989056746292672608358517276706857527195404373876200408826281081546380616522785268839769767283793868921491271008731479161819603275405459222767976240411101345202445649051720197788308105745390021711806362515831593617929288254603021790189097634117724806310257845432883512053816858565549391849302880432606785384758564648313638763391707768617317601461053577067613463472748707401670549147786462393642017689942616311484175983213096442553899646212059588890934881042131365616791326803810666036403133226846128194765649812103245791017660801714935316619237489530663880393182956314343006023356655859920007866026475037147456176470280078294424164959012275656183319823739761875493438482962626363439107956785238882807982953548588882580792263038863550168127543392925846810667951108223947435693106882587127047404189507649237540993119705692667009563396901621744759123870732094009551590317423664614467418988924596572084090644246786531601142571056896150826540664849300875982368531142028913413063567254933145917485153749941520581012485975804495048743774193150913964249630354159245669883406895965837979300174687379018619397871297743896303057805746749854395987735412677990943471291256773718819776043319917807437207567178435225295497134757513999020358502744400192870736286174054988586374987123336384377563543444620040460215046540350671712653250629923075378468477481669773118091708870699483944542469800265030151352896582168058783295693407037556281860147256076305105769157319160120586599840310915980119782767338153149968317667832282096019900524868358941849010444684729869369908488167665913135681895412256191441228430661138198348117328695239360660749003640363466074805716338808659110401190829139894928924776482563491043235584320097105776281389749794845620638869890845388293351852224632033282319975046363384946440483745120977525869531527913926187023443741033217731295326809725306012702738940832685901569301820060150400797094318610361515234916791309304683990020205753424246463180537795083109702211411190060073770253400766317169436728037991956084004886828461535655304275943448889697796621691103738790350382660554088853874564104581956793914208437916916051254750234863593534025306748684249013402601888284545289744157895865795827567912167488358388481126924253526812191031274975136789193094483045399669080795140836818597011456508168675963789992442568699218422652196146147109270552393466087310739477011981673068004722286520288407635541630876649947327544947128866768784491354759888525775257586529770742935275842512562175870583925570431361710126756125712426421497369720310014206450924574247350075458314994369586189363034140723232916091593491289884012505938731375680033277440701936730876895983196155144679488405693107077685765215851140171898993852893647413257992032401517524452353003875066168652918310724266876402736589415525363657005053436291761678768197348321605879384185400727834027514462722952997586497462558655497382703526854443401476662559445911294177115836696687341090225665195271679442938134850606095826435575537846011951526961879877170588574299816295540921126952311845881410575093643144979524822545210166035440457506147502053844620997866207162021330545425913225931537590945441013787389483781270158339267992929158285722278860391740786102002355622597801856033206648269686444036317918104713332515408012817666466652202553673578730452778006515061796928446769857991917080204752533307330049274289780309018183760718385063550007497774000674386456392823609110322911717904552401473348997697644724673821376821217101061916358967322141336823614894414362111809355843920280664641822631850330780384959276004214833254964440113964012528302266507296784981735545922507498215071208907175714240359917140083806461790789911300245793103450580924845809690956316406226908896026263169253562818762961657232181285762909004562599647157918812842427090665945106871859339808405016367234388702570301592129974538331576108688132263126842366819877657960822838645877683019062560386843342890105127178860692299849060109225497406947466131046645342524460672351953809519050752809920414495527003077584130813173664029154365868537955610544022023329670575560537381844735315930377451424143763350952606367314327540516142391273200254263707565420501438054308358796647113244126952714562875819871635177295062981811825094057810477860472268269574660650744151561681136870400404265668577609040898108172433436753201156452166917673142341044244998653108809607247226644796009969974167048811275407232679311619024632297167322841497173245162902945146402497758448464229032016329745865127493589420482709069087928017228267415806734132866801163717865669101013113191930981123278741738007729824672198662783154336120652562220312191668864484610873047892980019387563056004649251781452066474532363779699346020722336703785555215059124965631306033414794966810246405499343166767056057367579235312539337177698822148107415018239204751985384399615889740913583421077586870836903432307423007574997017922118247186691980284430913478793406097264447418004566417204188856137948634163962694853744574793028049177901128731515746436858487453343001506291240953694034646646979196637265120823172817910485157049599691002924633305954918232365096486032629562261753278197550776999517794335769979687855395167803132273778787370660612159082548158845366707842426936611004364090394255627630509175916070219743631169526054309210750052408956780651562730496084974113185154952395560558198811023005980790147122929122813566964253526438798381424282208248570976907747596045289241145591413565436125423449477203739734012191017339558645079526508072375029697548985722658461126708781638975706351500270747325700519836553151771783340827640395303007635195656106463640173141243543501228109566571693378381263122087966294283984459489402616386725854153710223913975855045116125665026912344503598540160784337380647880790809713138959996514367679885176204139905087530492767536348219414143807179252484100823961741278613864747298715620893503843876284291836980668931953173678921499767034709351085010240864273997381988716673903906664906798456729145303534762621432740945043246302082856187057137296602710480536892922480191666693503853565595043683012350933571499404398714916784557064435716091395158835008393918546802266890375471421566733470747504868067206389167871584492249181867404278922970937974797432379066296212162469747060903605289279544827168489881462835083931838250828077407321971719784213960025557250659788070656116962842529962773900041304906628369297557626207624401644078898704019150746386940891508641086830556195940094346598547768134910732025870802502593961196621584552264295806258106308184803320021830653772294218579527387943755461502656961415530643284563184272527711843339348406454183716468148424859260506280739569958978381231045055691423626904001102592655787200131125640762898238489016118164575841531707849624091037662576574701060613997179996373664061387193383621627619698646062740845141130890687537117104961024494560940266477233379324841340200861139965058771407022004993197241680578190892611720870305465099867104333612473019150027684685390535501322595214957499783184752040397110313308944398468764716839616147844383340213055946279830789642189334900912024401960703240784278239702882281918051987546734790401155065248863800540704529777200247451578946915043849212886799689383300505584921609397967059308172279173966627501050885140522386939436032018094882048885314536756951709513710080092220313021509395694695921391648924561683226166259118416483770431237274247269012536763195542146682546595300677877300210253738493998991358665868981196352934034895329712263534286063171411804799734173760407006870538851464091002947677066606977955420823456953474904402910798024925482553901623809033604907506367819056320415249006552583580707290044604568490065413649111335712337888189367286145148900946077705425730196300579358080476241039204702300638572257472512176727831064609713880477094742952927653562028905660852487380211749399743873354586763650369894349313968909264336089882458633902471493642160768764853745351879784770834448756079005506551424038319568268458843160132600656967938671521132687872389265988407087584752603972871343651574789984837786496372078591243530755436504363991737146404689447439529993713808934478756621725531933562403939444098619869132869108742868017365301315407412290968199418895292058532252729428661470309776556031405067546638453627880174886493172324689861417415298802466004268966274196640199233655876356660831756668758791043764991545674766950123333601966008764492669357236116772859326507562223014747720994657220824511579821532410310527267014426142836276175181936333327352736373868301162866906083542161163223809314592670788475737099471123826540696160312295551800632635237141627124866026909355348664745700047716009203713522969195317810269387482511318755698155936320058268612455873631040428498926728229876237681025575581058968259611692434978711284292427203984183188865364580661406931440621268413366553059614095357827642455413390315026686618962455133129952635424691772463374905443078044420819211734000158325292725332241882168946247306291483574095601618389606745840364203598240071987171707748096791159644834137875051341972098150817952076203990752387121658321178402827335426022714832378984449147358841259776559729867300140402270263035767107895959309563787858499224048866501983344703585982565067696307398833884376842587273612322182324586603245442416579624506423209492989127167998907856800105270214572793676694044791187339255689651101786276193426065454204297530074634367799679159271497060853441013781997789961972691832022870204423440357338519426193451833554179832977671314162949247323776165237416309779333081800121747027477509720187939966830085382693383041507403109706265507895942169655899679277129883907397405568493162097181978223928823929706217555848205106628956014272095147528949400424351685961213910349175972250709337729893987641149814590302626631395143456072110466654632407217712669114718124769405688644444670540316388562803127832270155344292549145590783222673790913757260324673485326617634741305589985800394773496303201465832567648853906767778013668356657344002471832707226510721454646231136248416964864569206755171653187342724028057837116334161104763048762344030006973503824067105274590039338199591095933335148930342698197276166274353359610967561647518700067764841207746295714458738682695032200274462636403328406369748658250035476410823871366700376134212123135035938669864857596688711255940474483458156642325962757711257979369180499598055738800071046101525862848208376477552812224694287824204251350097528328207303978585301764438617464134934282559285163074541529319411941007657153571513920479238955932337621100550909463715470360628534717098666288337371136183097716392412120829406089108199537448088671264430128981264278922272203729033275868805662964533640881518088236365870645661350900919051723319355794445559474977556386291695300481089075177538177093538844331670355075688855646642984988723828889593289945904570801983629594514666330010977046178563960767230572192576893818335538099284957181773686023183176407030718261404259224725982095143834957324723186753250921577458249639243932475454821232778916702535020011708269911175430191834520724595733416571180453576985095280666335126001976306439459668383957911752684727544232475418343353343658732560428468889388513420617435848927202940547394218844223932234164689220491568579714690118261679705477046285226252948940252595613438319553676469943478658022717936654661508124926859010938274887986548070496032729379075205533448557073179422882644557367567870899596367676795087048280578908973114146179419495267882356050241209175925384625790134399693129131008014082612231063579474669661658363641042263269448065867727088483707698142292461541244217564513269296395284295127378621505241547518971099831771732456061914326554485011410168147318152399459198990610346625811992015649609251034262722071683208429705791066418575093295143131795031597022017044951772816953924076732706872010560916678654376295556504776448482737294078967959180566125732163281795219070475357170203319596745408802824231117724323976052736569116007919110134645409890402483267169953797671254294703564486166016781102234053682684034840637053894840929137474794539475788849298628322234767026978934597001970317856255663507786749565654891859104451297490180540131623560108013088488553205600853811544736291221002851836770253997962137680739025116338434046853819057927385749613240998043920952035023212757092532415175868489183287821447998820170963295156728491761461037372886466667535338127988038266299256972272753280361275917535212618447123381687176948355934949905293633157663843684250456779500338638649767854084652697307730505659077592548153185165453110407799086245512692797138950578952485529270166691906937160133324006756949220139297820608565516948921295399157924191454515640838540819180371235155336221822235496622920161737310303470192494499553317325247250200188387093046142078082587095169482284323645680609565375836668030773038872355683302068899798046420246813861392263814639429892861909641417060827618678535094576389098597006836624332665185646059886547496333384969804214612781371010527579851275778845497876230157239920706881403619996146360025745415253366872338080509809422673174245224891796479992364125694805929424845251408223259002757308504187525853494640375437829332132763477779567376847727224032603827547448193611987325722076422105696615783288775890763038212880302476041983311617902802598018790393234702201609197410033667910204872637482681148582781685934902910074515387385779974449362996592373986886246893904121010049560987146540878260653485218653203870214469388825844230109337153675908172450893516082647889977023833508165346903837338336687853320193508111573774641301359141314260919214750657086627631209350088337107698694458203183215451895292376654523541857674095619284796151307997653738548653449053054070934383995448017167960225226955883270352612314087279976498986448606008498606991106414348937486141529943239499899959077919443729913757852063108846372502434995648300745368530253412208797165654691662599235204326349096535579623480461573766113133548296560498240312039513224594959741571910231435645047579698300035973488098581502718209584205148444660154128859615805431649144342541965556989685413202416369079571702764339611759660321848283791575271274135650251447449764648087115779365910950935448964683217130203248219806926168412647095911497807241840245032129904889884852856184298923190276303745782541456444016245032497028465929834741798744704830080878922056460935234184124725130151032650666424421637070372993990165214940617680028203141401249602895582501166549122988353017959573758712864700499661243810692234530630633972546607599671172168721973894601364751528081500998376281740321376210555879113599437945942784551243726194164320291366795666686787674378030344908933927296814287503795865404353409985144608456514736523141966969208944072705776465500935440998377389130869049068681193398752229060293748922653894826083673601413877219927904452903316085557987222884921745750071767234694364511075993211835451066297343374542540875969483267811364045713345010729045991840882921954013113070616972394150499496846312902780460022293207480399773034587536806973770894422163805882613402457621438807384548233574572001190294427714267706509182544041174300493582434705144205470621299547460523181284070124179486183475083340871835336126280091761958300824980888544504347883009461740616635138515885085373090597375187313551749620294840681064274122993215922301562147987025710218848696521768191478553992805840214029731470903265079550854641016111764299103473465385887290262377413114790181964100727396339176710234890539289818035195005201327823328502499862044882286576188310369128705761050255916070505838378946025439699709775057607970911827234175416654357399659564606730612824598633288251283706636667714748513536713909673978920373791284842529657640823847091637428116383911475035404225047547837943044580720407691774190039141524328107828924020725179529873444169525880947810330255020743310256110384925026530243450586597469122228343350879075456413060996373998235426979819390854435899546674717402817781744495802707751773906288286446156273940360357840033336840712319103664148548409027846806987589061436036449463139005733251707835312074947899555836338488046838503657836655325290699163824537862437346275136840876221289778617342973793834667139031312067259420983228604041727462090480025781450551339082509385576191093262231670913734195211371939842807751183383150686827601931174097972210641505206490773697861609508225066682106787345154811189503439243603027876314167620897242912166288258666841516151436194162640957054672244796313669668670293013298491944681630762860441289881435450983936379240947966678553959141291272305464059540713699009488594053409307354526242336269474729260679110798266179450685176116435927089692257046411002493980751059244139011597621138697654079947908782711445226587646975051795511440183931122222086473988996760026673884064285530890404314914576739588654492001073047292903223101763473357500082834874366721408694033758490478056422894305276563071118729982710530345178355176356400871594973285974794398057125762845732691585761286387896686681609174546280602017779624538052531097914300384676155965810955290237234776396420891462810501542812491167685059919654080476286021496466602420678221656581251500279455767165815518919944647102629166995120759583787541015579654776167882547861688259531538204927250676549526438899911915646147972428966063469621685141072959216208893031744613066377999193298379264728897875946436496965360849578167022057592593134206150999460622616783105818555105367809240738595845019571631637308374125737942386762631147954862989234079428578484234794043363053877773767059152062444610537226693443558214734170853265745640738172899646163415113436537050390586205119254701250683188463211773964202617972771374987024511677982183835161722398909875578264672320741171206935544690651385088316233111972619797386014822485702502832572673482198371896610711958160799601667730166418054847367344147603638404466226814529278238975250922848584558329025806311243233052044109676499787557553955931453923021204679741654719089609254975331414726556971178530430178793725342194486689915512109530891860236625119927303902366042610594028208137263386694498713596510590955128089608297617330634541891733895332834016999512154281626841950269366873921085882044474492348709660006864501768782394542684817176395645113029353056181052344931155601025106454404149192839427749338352367083842457116953897161607289052728209195874776823359002563569789980359240974605798291642663359906048141173457307618444920981727346081971738011140632094697783599656982721133104401379650919136432692868825191832933231801822558667730544757880047789988599816745462891687552523176409641469468758274415796897882963950985549676112190024720589663622038031955549965282790232666651870389206138587259273150873711371249715231355486022117576902043997303529744763416795659113340006758364022878950063568972799463822117965394328032684601870794362291551223301843499965082771367464688397556741283117395577283645530276748628142148497194093433148982440283960087266997839229803310774341647087334114198182660548422386947672450891979028577792256907605882158778151127136011210394149259534352157544630577083387594682856510824173585544033959845694705202389049325581243489122178909896893301521894679174654082534982928687683628908493520138520878423161712164220481584128453854421463118095119015679267662654973290795636935375138781792643062597358281869984150427238547459030510366049108286705724184489289858602901866676538540784122946547530381415081646943630589755792268019664816370710958718919076727203969872047235571502037937610957035395927495438088573839802546529247842719451798149010513358520041388236529886058480568999181771095076173974924958643345506449030033256757316938334800258073974801515203185069681657717405936818859688211974331933675498150005567541285713011779043814680123893725608557871185428348891624377029000880619384963563989134652120784023844852963558551639239354088578426105757849599864878620901568691172998054231180409902179949074204242728634530093434040253847162490618164478762879998878089288784109895659211121443883328896903489384902442248269308878801845986574529786187482431866172027436787857188245087795159391017694336237898894190252033291855363700680968467692428318881184906425574379793275098247923242699683396477913881810579275132362344936607602940586417251858800690232600723822334987330356958000081095882578592105723536087366101826645963753774992630390029913719765087915262280772469310154476080452277056093359609626258156614033286481149432070585450023847771926307116945065833194560146867266736274784563287089452557940112423374569309655668774159346816328115450659464520913898939303116189688820386699778840121956791065870537259606464692122499871341573666298356246525087607918094984834110606576201761903688237954326063729759232235211545380804767204639109445308655024040614243323016774414134886842472310095939835607392161484211446536584971458142261824855837137360431404802579130181132878347892896819250512435263716219575982171188481388295638241701413996666796160037056610587775650245076272307053034322956342195640757990968156397366145745650207337041446004025375136904006775463803625015923017452571366681790885630940996659330583177406563711052214543813708838178367556378238616670258550781212138219543085284680361251044408099933855719980478195200180606167845748574100638227011069062908788245252278604241727145382038142448115552090564384535295417570655855770758690204904942599342418177680567569616782761497725159003543777673192142715211087415372755849858650098806415565317992727600388373948566652321241285929790894161893290409965004148609758916902340162935079281348706627233106158748008821560772933798611656624171066627910891742904029242652368444784891837918963176963237213439605706578818440455436581538826927027668987160197278521995000540542885775016918776719034863260195612493474291941074547666117378605084945218979807996143626199396406486860930745729117117388309333096292945127533706773804162538340641869430883257058010228159869702570701468795510853965000946326818249322305786806827980813033684853246524220557928232284499960514134274614418666235953147036380641393776214654707197979555186043326983853793025985466633894112189247238025669083029545674392583749824279644005476578359259379635629346110037239371040983589120306112686949236965215744602992440441874039926497489039763249182942019086485576544429772043419036036155970569359669971831835037940057188524596979819379869515764345688831980838074066333656064773690757227502449517028020421373166959292789237755195066472237261983003502197425064605146909525240112551179167470856198078960626998213444930761609688668341022743569000326698078447265718556756239197352702527390824110349901430179771283076846322534444891392696910568398155788955585547648221174974484052289585114969544495356243590429246386139702639075103088088406711103835994480365883082792403906809735457033059367879051619740334597194251370476870449505812452870630176480696574705808385222819500037301709322415545118522778187898308755112676720191404355496930599890124042069560907732359220503146338978646803995421414258887139833615330155062891966152415150669376105733136213774049934233504745189046062624123607836322379592157455005540063366625428297185796638336379390544090002242036500834133585381797485931726430214417796958387778208324279554402052229442616804246874277927888314135857314516699568263104269005528139505623839832470963549526379951151044806394426477238477126567202382039874597226693668522509314513531020630797667683544856478688860194226884955981909691445922753605419948552427294969462157098034535543197640737575513483515929348092560725823926875433189155129700968316814391194816954778501775733439063127895505800767831384703459517111856494121227243505891964242496255665505381851166174484978598320151634400389088485672291839885227778069042980308462393692599749776518884396533083923373425784512613583309519659917206831598109064282988780366339442263627095243672060455109733115903281203333973910151115621098973057245954142829457829051089780921624739620208814192260704490693322365486632041947613125505900734933470847712227711512406479214550924341648458712071691282143797171214613485508425512176896151397740394971672832752502120260903856746378480050196959596063495229400267845638691718231723180104141919659685607329151569414708657931003232777366637013112350862304640589083744018571857751718391683503114936202765105736091548846418128517836893563952550776968157829675177932228110807599672479777890618491588774805705263431935039402367091041029184754352171691388791391757344198118012596784251229610336933282730408415414211672840571223784020794087495199281135330830064762618223940030378790729104237096483510385020623132356834934859764564053759192005354533081134047285522232050667385849900248613072532109476060906855682076231905773146893522919340103838124240806727210446953210985453562143868049667707969682141108779373460343895663923466799518798387685715147689618380903451222735695279645499863779638694694529576364233552090102638949517544871481416081980459235060148231449110456136135422306780637741754848797516048224763670635401355960674132178898229049614800326335327617882903653972144434255808820650062648789284973071612135096333472244119361010015686690789925424423914426831872434232058621488244229295094152684590621947214246216658910809234465124194203017057710911302284804460150205837428598622315974839570016979070270488617271567542761769244690489775982255292197831952819131343487300839810438521481072864027975946856577639313944884624189644402835903995346907668862832381240626405148090423285545210778307223519628346340920954258319840758479874999580306301634362113391606177805933797051830106379967798608696550193533454937134067340207577087667304722359611766142013513359046833129811531930407022774703631505015631403533590116425548161207419769826943279464578615316344357674877537938670357573046242114367422760834115555388663265029038992753589960282582083488544578429650574871387444580140129183102211446120438276509371065719350017462725733349792853258923697349152359832430520676104275040365837177883855773558395014177136078289633104443770800910841878141939671398023591840059518084188481355638909267293678027900107919245324057396461079610939765722208042046245592068101153390963616184459856614676873107209895430167620642657129632254319017671945989920521813043904295090257986966432754594181201954098333033392584357818434378143674338985209819832845305720609652670508014520003477821764722966575094704992463269391531208697383659526811765290129792434853181031055518808657928963580236168120271319353549045717803818544023283081911133169252686294440224206667379771880810952472292353899131159642412067858426241577335370915881739018331736166254286105235929262301907702813828714658638751299130461952327994790829449713141630709318052986727962660544720374506060527139293205901645644594348707121113669155859637112844465103457405791735474612149620226328095228757674071334222906497359000736367661434851392885922052816190420992561867435406937343297354628560119878256672180129076539057592245632071497175296368491710854695357857570063459849882474292231868500530367836038175804253791899554669629174541431961095653774296790043987226921502315493771146728979205667282475627665876487726624356466714489036197585714291321431630136714006343960844746908805232064339767881061426750905731452327270878641896584587307815645401211128492772244161450541140075438875713508165277793575959756486098946043386328922066750723724574596365590713267510645032196429120572700363103687523413529595397507517760358908979835299248934770281916618822934950920174293938812451052410160899848220514565925115498778142668244154388079228154141337266012865214296740617589369580145384431973927619772226007148811068075019872324644856973910820399307333145614263493641483031106694844292236896185971444215274756202589831549954764296984548193781786201911415007329846121417228170051674238230493045737530322024642115932960951394218368360117537523248740729338481582825019522658323978656533785117908767594249515432174819554065844716342010903111924479879570277426131509726520068690727254271816829482502374190500322893564729516734101614263441640178475631214276884727854401307638195078660201121025186292465794802942532741569595543536597442176739846588130682416972345888174632028213050063098574774844256598595862969283885751239308098746954455553944769235596654453697219392919839307380867599294951158713140316941536149258523189208630197787215870820978920175394448471978981437080021297647263549453811993928739188758809370670687240116303960544750059453320493915943473677463228210191468175363202824609311627074431973234339128720477281970784345241580088674071898746739681277521021670363493035522642304083948410560651769022557374840224597293465984568406277085689083811083579175775782542805037733029914005020277346475794217291690898864449997197279816428474208155174280995924288053592314784887081140685395561680240168726657838675954057825300242481311617093771122458602265804911098643774622440453461566805965803791242791089133856176263328902768981527878651709955591391028009682014035118977881074628911785087609604883635755200967677386591419855130884978032932108291372176171166384695715725426159023322602647987732467266080733574831086130400101335685450436155680327510195114930307861378233369349345028678966735688002556870544411212096230049313865905661220086949044536350830488344318613687279831673027141573773168957933510564500490425037111941580527561510674012682700539549184096871561805616319460302781715590826516890935800058418810757659477958801522975490396569970601698989642178528022433952407468291427241665024875000378403164458793019708693165348168398002627598468890914265155948689667267031299801537047507667184090901288053209035820461337211650665688899092453918558828100167451823696694580532954061870510816442068125338287897052456742235806886541030958712076314444637393150430712137286468478926521346838699910751777860447159946004903993716677906757207665783278459771380687219688733659570693493595934301560423946675847197059095768661845983621579264700075650318000788418332154556716808156474039730294448292792211627788098244819453272243772732209367185591064939186649255279212347299795125887305766576486532656631269671537525586027281735647852588575017676277760533527430195009215420786964566333554960312595853545147144985566301169206068937118294231069156485427426300425021921805171225899342229959056894387282249768650228676129483231796282043589886887396693005698921254217646554779953042623619874212755013542429345159342461457681712793396962390454775876610527365790078166853459716155168824807047814518538704865462560086361725845039234228493312390414282047174416969753195872921267944284330875524282643259915671774932574132714941082135317065002096470329343468691078700265212894262533560800500931834435143655769420248915022895430220475978543078212065595658900005275037468177876781614953767042143257476109171035455002947910167781783157913969184294238574785759073437916189584199477026550846400101055932191552709255960989726586361839286725033606248931382181237867083310086544268620666428260320567955664474190953325170623657035501712572237825905948538861032742938000022223584932734094330192383317277249909458038319634682360414647186311865265043753520328524770825983957373869306554930068542575578971409756338862194322174378512147415140891549549397833632702411579830703565961068757049530987919072008960354548374694032779973939773009379922869556462127296231085335673124395722901027241758813116832462753929659626091488122051008853968260422113521392813388530612154244085591478543117112868700748455101928939449636973277803262971108766945103543517153354113636495095347491114161892166418650223017314879075758830676271951035750218187610184750074895909408007682082099600448914918640943297571895811453293640517727326263972900455636835491480307528340679572704770634988888687445116656380290721964309644908169260194361111790314922560501738972601042808704694088727405199824692293987778813243248459182987107270819465460011901970879854797019302500312814831813439909835253808362276936832999747475092708643231749303468363025068516069841860249466131192706017267223557628167692415572899746168119002902149049596847439463593143321912291426511686426572235984303091054012843639132988750346004820485180953391245719571866400414705181535305055459127625194199944576036878201044059850674885923599972613510256638230383975892326753645384890408440869674077444285247062771478560334670007382783157968255138720883610364002148564941804023243662283827618299133188898331899634126738020467742527198535557296457855722940865849127431119564092980289023686832627331080943444038682128217241428699903687207007230138696551094028709756792361191823330714726281706928404636395261105090710444541524647377299618299412551863855523577099647340489050512685451741891519637061684252383854563696464876589469857466311054117943652264847029734502612660513728412957351006139704691401109229353220249738672236212041630765362066322553704253744001544945798361166984471594074703329329026368135754662506268152143551849740767991420010687726989896567469859395216324386948151753585871543127663727861359766913653180133605879298777056420347213637559740804965585377619900267033838338756759142971044020171087433422230517503302748345411432973581420352266103311500082680584083420634234944454935712046683796303151036133866603494865748148164953321250420338504243702202599998965623308123593662621077512459578904826668666778293994147233849601834454178823147119222530891035190235763964301627890632999214308424172335709743582295940663785250623642100358123025923881155910010562751797826109686298795725435722355507320649688485742210244998220329454438789826834005016192727898806103574359530351455004541180081666630156449830280791510339444316279580459735584275585785701296328331560285229927935343683494814470516963042643279256133888757450776493805447430369026038645093263516490418258790895375293868251698614651279277556953244200726627866967893054080367016246559836754218916672822716348105373039690219645663761083311760691947949763834284995741304344060186902031699234055404381906333312142641983583118644236069069879742979788933143990961647270215899898766741076065844399140664928161441877055977214938563212985528379559607246168326574688769565379301536191845625846888694100042236170559166239327111412224120741306964336976871057987836033514354302388109571913798263930152859610136039335830125419897867674392599502334411130899945686736237741744190818698832047241570202951438740600571417103593565386819563670158902069121595879925736394320532629293248821302264656966612125213799079642918053141278493693095628457852938163999284417593249545792301872661930848105432372683071497664785000880466920517741361725015680078411790745162458618546322179910135474076232793576692180705456242035742364162175350948126927961568175191311342960318983124594709524769242503459333787756328102725961069143538807673643061013903617367658426324848617294584137029926094661449917174910059549682538059614740217607790852035812861315374386607565109998889582562986658833271191188451620851240878037583205556158310711143156902936457693936320774847169029522391866124600544332989856762193884946668077656993482985775212574320083580055865158923044705149355954509689240858171205378293647533544503534554770004591509482967480070525856838348332454538701464285393039418346107102527615310926766018982288377708629781308183367522163186058577826607734223848965816897586334239747843822060279000763152344365276985841316927901611321108297281256091105757874261717053531581049561264158278893627417892263411278748680762119773155333002240530525488879029410406199109827606856739042725592165696944635665337776767898665257632356368902276920662328043868203345843368353806178062663235249897029406149507883692637279080514620716085532653578824752021385362665611305103558382310226877616838352883335649223924687983557132427700260000993024216105180638650937955047440560546654522968144761888681030661131876765761874135141405417954377485030565160583503823699098739723909382847674428892767093200384977866960244603357628033053792345778829156839646342906625318987391552782129952372294214733024500029087487724922421421102035161031044480944458036226711397986105158875105886488902680690334997451945279408273270513676052588747148843363636447630676032414273188180687547015908113055322233665876800350778725649341720582515981567829529421024009610255726765793644579840935664032044704954652577508087042061914124829819323631397068746521581072722654692424261270991458853528432615758304968470772084656576300978632421984716494934068283897536207151075396139185681597156807737076839041702040468237240726457227946178407790535581764825572341123683328037781912856228320198854490502757471970549235668571708918335349739740637496793815184487667225271337736026339940160475445235413355703671005790975943868662818027586220130162529890387218623577821514402941874501792992752705490320439024725711431838361356621952783534752721259970667553171389337932953512606232079081494853940317650653586598020727595227694912243186104810247924476020023991926579211332263886866933273927826038822751560545754421213238858272807252214962461100760734421021651830760636241150668942669438388864699930521848942341829668999344636410705509486112157618860867227416430440123211926565604163995306169992689692535901124536937226882214331768313254511097339072358958777864933298638731447563691109830773202118128305967230873707830786748550228049851480084798459094707727291175658723398595905909187576352056998307481985253636490806265909651418876064147375498305962546407702341728037831102189428546096751112652798341936799520084487273284370723171657091219525664912891479946892933551377529743276409059491202324319711871749977005477216392389726318805273566438403919598423696167789173931223378577733898434355402721844113509557323377178518264431018787638867800681441057573611621006346089606205898521934297828601789119732824327693980909589006615305272613043512412220891952711961907713698095316021838258636018425816567354450664757871337517207386851304283486221745353794525981942092159094071454125528495826943232438601739536572436206405281678534011989846242302459308473527221336273936708628362017755124276267855159307462976402341656645404137715436388399025664177748504936262846679259754074430653032319881907767176670703413669605206414602994062618119214926517604062042078824413357232639794046878158050662918732576943519776218858197121974878487101387958809082093153420771222408990348267924267786838780276622998829863781303598883656848430198737726236901336820168823971811804551084962186834199841530928498464857581660490734251828955861785728041871205241635443696264109764647451134986755002090630697995852402705258524360197340940743610030741104201409869102649964010074165015071211613383707231269704937949948400673787466812026203561939027484118645836192161471124294239012409414957150064964570417601025905285831739200458946416595038393953333519496474631184412678806910944212121920530994576319067329301705272411230687484940850877522380843494018000186482503269958898716999778740506909247500746567893983985576260463584383838056000516352773412302231486659661600618505177455502357597291237811855520578130161697452916618379733043998806810080345190681082747987528493564504569126487815732607185294504046122277857217449306690570526107617095646477587947994313946328789655347471956482379079026316060302586032010881939788736476040825217794317399612898886725423244273208174749398164639894407190572731949707073018556339434471087736419251370152559014297758351832446834701497480876808625543419658569228445966057310653379659316131787833196028447592782986830151079743091350619289975123469588575249618691066635620672063256509711254602902346958328288746322020831224743226535825466922794483527393786884904017715104662637809690605426182115610374897904324725397631908977397747874455991751182230093065954518926705296961523832540330932086049665538993354387762851048942256889698782165695829199778170952547856934950357219308083369679089665972609901744297761524844641990097596867823144874872281388763615276319751888507436653140777137875936009349182844130234886594733628644495094053462007523067931417110832978747366501066417460815140037265459193076903543683241469017301046603386617420974157963475603759897326731295672775127106464262077649776784613258937196457522652959528202055568662211423181731910659153105380938839015008655275372016524940422187337088453504730211413647893547751283216248012540355463998974839819790687733485962689258282061420702453734479079571809308635918960909218082984957998796684948557642031891791313391896530714401792482047929592085266339904607498984518301078827824539110672536171727291403664766982642791238176369589038816261676676894294394326864956573383041531159128336947017075961029632246868838154945728527287219321670013856176420592819329545676021228860577852190455932835844276412541251719902416421639117963273230838686517959776192528108582130817473059775651965549929165941942560429029152773032726196735777238267283263846271141879745915464753471932455592183940308188354147846526156689554906316113514342689919916552631859104853776084428785092622456983572842870215780060980129752609040159827742613351527169813709178286441317061702476481689535552161610409603106174603783507010038663734861172939033544951656181959386502000466081243641608036594078000066804548756108440791411391126897384700663540438423977014005609586874712024501737063145733237227887097700571236139893894546120598373022889012896437015672188728590179310584503853485380248036832798757195218471664368418090127481594544897141409299886288906943871789107902132888931879891068723597774679971799451589547223075369220839033381940418367175586387956448313579349175641805470365470799443318051645584750640871647376076907784383015147507916680122681540280793201647833856680299183034184068577308823039868850408998599038112945473661587147228148700529882561635253675943018312056220915869591342164731894992470773236796693473329368637278777266671463847372812969742665106795211008785050740321517158059247243860351206909571972736633618876847625533936972041823136829074589980769414412732825536459938195305851817146118074099461027066475388693950367875871303002434332497012878524285517862924038733002419621181773026167675009227525622505595935951230029421375889565187884583285338292911861428593216333077439556985698888142042224678189474557033016105073262104182485356697122873031114706334110878822904295487132527503372974930900278945496967411563834033323020680274434737672135112036172467479106124871690861587596802169865714189468617678715320731196811455688305181132304899752342761248719588907314170321693543277844256835095113160316342257205721184161654063208865260552486377780700497931979155174528780919876560449890580130192985180900573208159720338267546215794430469953381825027691485054789722971108928170296072341210579535110509821872535288152897497273105112110556969783738201585559862941042012633202397112044230843620215775119162769440364684765145486045395870003555389746859671913603158909595742662529724449477795161180463345276856280265663281593293156870235091470052371117550125016551676070739699947329024140897339468121927459461939225092074782215167344915791097522930307838036942662926120667743935526868206711191608246342041013098764720638021496539368275400708913035599592640204362495509003522622623873818217264060681835586038595820257603718152323376423313610838356516029451211536897186375527577667264889388463868675912313100311666525267040760139878536903193416871680099672859700637904846389390175412779862132110000431312554155040193262720232490923546976960119885589656517473102803486487064637794574098210730399457906664733567383497643136424448057682901611914207255497133422904803770394947408328848848003079029605108924171199143738693809984673346416826844771906600793705101369426783610709309546578674781435411402082990597407358474839242661356938639056829302957937939965817235317352203862932164352300926631564279100150211351471674281650587330144769355402781866001468612829712764328410965304060076970979175160474823042275078324510600007121098310972407872023230862443164686828481640105823684482055365156938192735815694841412113324950268025141924195168683530976585589618933835716631757038148549445678317630002139203314201812181719361890189435762733953365362812233475390875370339255721468329448485421684851103605569005983316402772990158798244063364799844361735103842287015921014290780613191300165000614524509089917801997633244456071489616096446336298628276782673649705145179204045214115128693392741886537390825805842925056036372123619731040697387887630802049777431729816640353742876656874449103703222993283595317492579767904564179940276856007944897167212519295013702819112977049005328100275240797196051542723164544465322053113335283163266805792867794164702273975620893854522173010807056370065392551626537445456975384633575198167891920792194952417746505690369303302503550559742372374451269624567368603367374876019496217716458601694070043041527060422711495939555140429623959008318245150691081980484037440989134802200253974736701928019718238418299895786030377336891358477144909342548376830260181656877618069431209156842222017379025163693757753550151084124520668345528058620061033447941512345261537380522596038516873406855406100658479794930793890166029688961008390198914354131300272849790437082786501256008431777067805995998567232086391980875673057671544306086544475456151565039990945399520339002342020786569304177324914170865851395051387849970527631569471891578083719442028168679394070599844620661517783493002568898274632333062366004172232527138468808994936798356795316708127653903050297805354093766375123497913094335525489954383176134593266717855142514121926525874428054391456139093345521386690892600108830253343487605562519981102471825575251763236408757187861772580409746580054382993881506612497737270374303929319213726168061066570664992687775297681748603195544959169393275388080118005121065584214336612403434781693283724386235484543280460448533241552897783537388960859851937426098491304816309793256105693822770625132170720881842662000038110611940581375357777019013569061956846396410275236649709895254088867009080009162246612395718382199313988368780013531219903243581196251349290742974548910682377976185448848063036135269109055290820880122239475756072095722876020451166407256878207826032135043500797776993215777875849175888728955733900550094058840177858771348548289900250857378795917189703720404164422125477297890434979528425884827567328948947121503417954012765401095501330991374006531389484458823671103564175135235500680135254137702074513107129711151548585160663679716173494944504512288484002971377239672744934377078348761424916100389783238243961521260182399838604538708065077559716104031985961937532578109418403190900597873435596486458411203655173398484397054182970481567048628810561862615688811939803915124717447354008265651104406558368456331974174326937424714821856354777183255024135947177143745775020930156058832240083298980164441629835183835950854863023961653506237957816859434901025590229930398349946230787942137364062765607481609696595101195817253076933973350661709713459749888879843444064578673992452339807938665940852197893065586962768668624959953318253262035295396984111444597959550909514284051777824837874372807357880001558575408174456157577086601262439630486989344763649188668104942748504900637653614223270424800565464594580944383642813842399136039497624921045129955510767965323239275355124109056393338766035170713208475823101117722642101377877959627119632199171322118638811083154589623203478788568359190125390006703138191719661158763755194047396277913258720516070233085741304620638197784810715381378832523039394955590634624220416765626609046112433559847124281393006896117335699576690775489334861991937734758233211562334550222588668533675755130482024554804476904508443817606996561078949085072105703048669745077598439633709596154620050388238028584473950953986969279895357306191985586427515404545004114499095241659294689298765836522987322722767710351475527552416030710230698336132935045385635993438218938843125425399137693618767291421540648092468011329599164520100094213716547736679663981134022026299973868588309806945097384903188166085503492814397149772328774996241358360744511848907730557791234172568234703411634260073036533574465221512538325819367377240021818600527959868201462758276830019461261090973873022154277729353251551914745404297770897036103217220449910875837573286401531628755941275905242855667777780753764409713898878615984360466091901518468392519568264512733965472957580940190042794875836536065483066119850049448282811557446116900777025384226034400008510091538161629519752307448932384289447385597166856278553930383016863120133221729531678127077528578183445070503372669725305302537058094706377452972730956997697977736762547442128102036411051343197789943845234449393557422117634313915129689034421112807277984595730678136496623269006407739953772032068085437247320872416023520628221672655518987394426289958523254395852202370628268221214984125082381046084548053805502136591633185573726521404616995432826425318638457907765374738528225423421921334772346257729615760838650155734818644727154801071145364348567108218526978977478475996126236705313039101454561087320781570499741778661191827184225937554283622278321878687819310579298478471424266447730690710817935398149399032851934733324093197732195982089487483625468045810239489051326242459411501190232909148085859661812186993959054033391985201040720724686679104113601215434992774230351933027032835003039290726434878630800347924951708376712585432551998381971801330451538136619778278445844699545730003457473629220640184134771586415465217878950270164991092971512167943083236189344396863762478553967162463151136157620950999209180961110443846516255043538578005068438050959290336166908718958284755231607863113838653520377804626438725195093716543795175323886302619195586433397051819680513655874076369721777545895420732257317081302546589977446985149544326735379177219672212231450701821788261990737052510819678030326127294133595907812962357718210188154558617735856938630079340131479339281362605574931530394264967202548690344868740875864512945113664333831741194841136750508348063531234324433707165260371103155714162739782138953745681185633135907422748627091116001373956723197943556806558988811686263181723383272445008208097836476844105280370516172278764432511294702939308325987160258025500094074708127659084490023008211456098889761524941354191061072191584367573645375198093634861144522496001725988114710359045614585898935067657034224807092773381780566998472181760734636771175366794266374569619786663796205866236516456658853293414908478702287402284855835948829658185025866579222682546468988106198018559630496876072686391726926801272666093378615276989421450960173651155116049133630036464902961252515838754151432713555168787378841391146511196952420432258166413807435561961882586855479891100866576729673345058040102742739038308736463338468491519919621586101117548114618726734926415321678467865543833053217493538645147594328116683324507638317419452351941875464050152332668560181517797476042243839391819903237597855021205844853799740113451117674550407377660273108584761015439508054386188640711970121511419736654665668081903231220339743657485478020312529596521403777987943270501878403610138296422224640088134973476446843140227300578353995115335229632905790320637627759762389912078694721104798778330186382162023187715808093626710517840632504789001006103663775081704526483481190738535348648319579435542850703552530834074585550231240374425619928449721952190305487717602872985335581441537212043303110067874624312096369132917461089007374721219799545541156665688457921195843749787547009358127356459829824559691382286523555695923761910940134499838164793804571286587722541541163819926860921145644386510742126935640516875597152538259694420455017295905645030081508312337682470744338492014363214866449779607653725120253490329444995201392565149312075580599625722976902076794484379732834004398415100652221268821492605840467231111212641451852830502143196436435994837754549672688309638990666262331104727112557561443499019272738916106844805245197351461704873545447721243667122928877372118702473860774409449545388963242905249262889694346265424743009403827837817008584167525868979078860739699604964634648685751184411727037705087022958958666911911858764825280339052679140704767128931888276268415102058102104255092682336435474164882436036681994683714135713164513787065532932182419206037882202879583692664292180170520051898058272210355540874965724707157934367033212498861633167659178905758917057316745869355245614141315220574781382409667945048924515145158738990668041718898884831451103944800347289056142432367286212938508637882150575930178938947026345022382665832548046068671422138779348791893048778365504176937741082023312193566551712102166191449042333361029390567355150073435127355985222077236120141204775022391804141637699241536901443357128891990798344354134561405750192241959088500967825893235605730121640349270978130278524668529479786475410918296099117828484962144055763093993150888121211802040934558708055588203134521112036879758408368580316496402983832918779013246440408590481300154391208981719880290422692836248743573255025594485480350122618581610807046973699009413446180449165744614517616552654822975310270405970692831495077015376093455683699545892116978640393192645590152792821003752862210343918425916676545711046806037200026393437072648575453904274816467022124691962434539543115812515911019427928724710164571551325134265656608228261147249286530521332610033781907219285862472655974555560587389274434411039905969045399034115483166876705968398871172530068362292350932648568667107858294545722251729513558537358220588398515519365736429283843760842571232748199179234165381413184016339544313795807449859099149139298385426897801472469317554883759236759603860729343763834702713978656780293642623048365687897964526889519969819001597611617621656334497293028259357637847006157311196013553141289170694946607837749225453934890350986228777069533755865607492409723509423064783834076419609079183618067751445708944075598936842070489807614905635486326434905637016172586412080965263585152612489894369754909538524847062100175464759637774760735985577731033210078392690218681567248447192763449773473374629727924612530689828876142118483970574935449080618580380339639076565191632110194429667293952901300922177744667965941157781270661179263779276606373386153935535732023104681735410540117769336068314480144515138557829512941037699691976338037767788462889680504326316494298711650255877141852593420171200038145199641288154742940878552719476293125103071811033758138545296517194513013744727603596178496989823825411584028377974915981503310253436395649026054162625738019396366518092530208006418571678207955441463860023359673060683444817914033952865044456169709133868278077491944601736113067118003967701576879454274180461016485072831343107703035624203162643274400894343727270345067681660087839686109505744431801837078437390385314819991103123472029466427826210426465994411525690601697909836017923916339007823109405912026419028128633288642906911806262842982626711829966842158931617587713729109824615095253038370337991395635010799297876194487584668814611160216783470452497510984005560138962740598082302722643483482335094322296611472302595445240747959980456009411315951054192579369126950367637565204431554230948483209664256668156033621305886672438717564321170062088221386950594803275441912165224216317758013324771270526721962818693238983706656383267398750349323703608246636012819703378307233278304751468301770303929764792335858458415655530000922587071593591570059123937360865784598115429590107118860884157016113727961179450515855716474639572695389720675974539718825729468990788518032343847399133311731211563658942411059594119993043953283132721251541728718604343310126191322670087306797903621704980498150729840428844502199005342141722040874727288830077162799718252611565514238332334584280724721973765654784947771091518523752914187067976614491303641790503512264141890823959715142306902100200039459957161401380667063106671244886810640594248387273395056406033370300248383841578052854869041248924408349806434483084446291134074915054333342435188867304036217355455681004217674786997565266088029980934685807800079432833274089750468833226173914307376921766983748954282464438916419555151543417031836078789350066884738983675644862424603486870752951309238621847414336060772073194065990547574848442517162479753486143643968846204650656499607099776742241149551765368532217594690426608827113052214266946507575747161595875304705688364932844040530825377394519433934944685904553005389853273830067892262448301417995338163975411603955483766634119476476578359052752626802413794818355624588828620516731703292961408778635697845038920575154757028078746499769797924387243820764236629527762605641384936703363973265593181050131579128249996671063367208067841582811356752306275289122226715163018163365187382643575465602895524939176142092743591402294650519091570693061915949379670613277678030935056306445966494275202091625078233513946724928270395682835749977442632922434482625398100622976068897862211774880258621601964428065218421352952948349478227603021520816676481283042057532983579597835797499778541929141620394582276547905651754036205626326412163183518255924693456814443479391699000075621095480874489666986983405851851020784215408195207829169900504152346130915805299151051086277629181384939875704351316415011313975585549623323986691772231015642946886087573213083862284335527350245134362345545604741909121482840954906409927296633182449659611335234336761379509772509720392605638159564280250581380994600109875161854020733184845063135919630396843086073465775014584937682681813525073857334151846764772233336321019449593571169336047697077987230624259743423376756359910322930524072016696457817051305902293621831979158556635011950475536062291768377227069116959856540441137445172191495459616174645946360081860078070134000178679223501246616941026340220153762361325672908085488840263293973392776897365403742481760172557579766735515144308643189247114976477927601783499360665038073827867626810177069714173639041680365906329785288812401557183343818810707518419210150831591787589943391022578316878660259143064993887201127621832503677038048682402420901085644178794340364514065806363636604601109596679622294012919194340494913312767346637111664592423868031468015390655713014630103074449090764139207361158978197053772578522041835169118446553224964968663267518319696507876219173824882189424342554185219816341623741261975998994473721990989882570178147124391899039605625842081998395353581391245825282444072919170918018219637047815867401384840631816974280197691775237301809426895858743164665033717558123781001403647173515969110832969125003538502667132679996368688355514800040352671137753611066581656650369711537835596069206331686663098492328369822182286454323960542546453349589628625743087095816449997054087723157468745862571585184015605296468413397506537207517148353348938288640518401813180408933293484974700616241963215170695667540861387268894436626924593074728244459550335361474946799711294184982689703877481771877168906798003116244609286306141696352528103049478977934661376743134663158745067224863095749199921749855506684143402191979369584251928297701327229021782841926686107911539971541988784233712892930184527963032216913092094179809170158884458774979350487089033418639362783956646077561685012368238906031467593278402283326116201870561870544150891491042044923005388179241113526620179202706563325380471384622596070082651061009895908028251271054087395481041530787725635536643459511791092751534553760443229459117640196278857635546933247190299831362753483929340486985105708606158371560503699979311592121793497343851239532272351586089469124680315569590205136066997036932620717897669173253968588420430979711223207916724000292122452117481641234616868958022581740159799449879934764194969410807182812755796287753199535156375560319037964860440520854089111640229308650121306428672064323391456395097496137987265449799673544315952118146924823586493880030738057875595766619362081479490940480828837036288865411672970725085169660762814233673358210717380792236664282600479118809623639822077882800157288654838655523251585694094560224874096278462094776279851517873539034691079209622193832142694685016679010044443562254077523678658595609794401934441229962526529480750127210516078812627193593132952150075452800009296640017502142298197700862992095697740474646596723531144463669735528481302435990226117977512768439858053683869543122375295171033977084117926561392362187926292936793509702927343849297742435540845180797445984409195844111616008234174449395830744067755144765968253392389248144025072872132927492884322262479585186979016538616306997089271827007300010092960883423232805239411212462425627416822794598301284118760730717573318064567145829398589387891883587003431782055128119804882541682619541907876645376821903520483144576409940455937863015275997829210173446690024505943883389102012107617594988484281416198023806804329310282832558766509904243424228389973343019567059254192481887109314853716837411849553803151865930037442597090352216368743821067986174226537115944670125225506162402521807170805796280676549201311322400774477545901367240469743391660003899198863390660610567596972962445584018456211679179132676047367540607667399524284199722672855930643173031869118596665617847443491423922811571772181185670225597638658159441685264159791478305669241195233164524316003727255059465951347350000804049473866180994295850965249669067299563797043068563769774561661099366430707012569352649390455653330323909169331306514817234395506544174355404568809760809879694277478154071062309277601285949260595651808933210942874619512448498810536437821117516350220046943533216369597905059470768152044625408325612921480254899920044935935915827641710402698115699498798227602094174096642611587020743322845727921693516099314653636213062220714385990670542025083880435485749314084454585877832397307714670628539723520806889299583465092291563154963053746825941862521525150031956119649237711131464854341070373216108482604456038714056404408286038734392343533106056477096825262326642157206634631981417039994421621826117124636790346050923386586346450451815081801773437740939993591478085520391684960599915158201829194293839881337913468663629492684929651173096186370245559292103156475049704850523905436949789301172527784520615492651747443354555656439984043532213705691478651080745669717375429494317970035425643996775526455331859842294732917439952256213057453176456599385677461415173248510952438114497537241938376945872079832168912399694086799356136423128750987745987822365850303317258974045419540815039910050270533476521688515583179761767569934127298879332212994141128041154901994066881226286979445414865604300790783019236461866189761168393457535105310439326701235923263588626547714536042683782930420432980895060062991758367225906663815358253660218080726880284026311953701698944361475966580009799801973574347218930453272794725745928876053835242980611345349556454771317440825582506392466615977080497245611868122239871170923038876771198041971032105017288064671636760077942547727337083454063881642369857948276296926892737184204812862352431750619787857833710040269884126385081554341718429225306429127409074487992459989014762727208603364662803154978513776250927465316085684195802808619017811629128716743865937589931892999197421408296388896583928303933305511991775081560460593729752770660084601756709653397144173976022959804212648211297863523522396371483882333618034868779487977152709270145939308257576390369019887191715063832459417150859710190525857827837933975572982779465616203390457674904902342170668632623501604923345820354949876722709748366199334897748089289097807983592680571614712559119480560681824308453212268402765431597451661846786098261913364875286336450119221442099358151117287063683549630947803929821705103612248587628582595483265698568815777512354396985810889765818725381749465933251200800015734339816746478358502341095528223051235494265165994753477425634368563849049930633996891649396856233535065205178372434388846942935642690888363297732223514839247822658487012948285625293641964592397290110324252037440751918064308187507351002872585353647307672008529758366328275360343808023871166633062524291254614390838722603578673196995105477940062881597133941757103485844555192603088939421285859566904370279644634601682636680348626293645389139157195022201427540637567856602028365104642458394151770099543068541266341228338950332338464929661881298839278830962973907449919827662426473170432704047091704745691201916013319416279595197996707285846410307821824152648375182456508867305466794737240452303728713494482155645203165245196594095082017009554703207002649419007841998779335792472067977917309890184002854452677965213972070182443137554980914133295167065820146519744127780300022222553131916115623383109762974267898203732968869815398479959169017807987529632143371210419701999256579873646463835005989252339230792785889616718296015122263145583127998844599383348820506993075522551155483332554796380222175868219462187348811727237189795094295873296296837626447079113670183833429597878421785081182188476916064556834953716617406658244186302006617804820441361543436030382323490562921707276094601799384275525681045434836531745109250140415885254836325015042396383510090479084723934886983491648198358114701109330686440744353833322593594499491936102361155885771432860291024254147688567776565822055217631218857206233931045176260918840710567628497592950930552400443845240162363096894577088535440498437246476922790652989414575435674681381552580712701572206088852725552751985057576423019073917846787657506698221319592772424479006581931598660194846635798355098056438957060278604165172167469272021845529641455223054775931674377140272757042629459701722749989485519111551625659017422608430485042751910736765746116489518597956898283622818344666158477545144430318250553806156933091940216213127945026882028048444767803787664137045306753416665542406339669854641063485948084331247855923305976098872026848489436955571983872904089365860703934224491577707146182725943254436265969740182439225250823295788728535336069972957083162972014456858997405949545309254156103796915487949298305019685275381830934618205358664203271113189867391987389386938845543536881274538135902824842106384629812489116791526970071515909526779729530410517535446151545136853332230713628621951304119541472959799938006080387628417728900765108489880692997948318575610211384827043263649417951322928891912908098786877251897940594610631911058470508047431864701442573854721731605237106039472781500080138427962200943249953613559870556389237339248988223015573124967758899439259069149386206379895141858864042857672701051098234468618037018558176665224978229056403872822148760363919860168950454464111309824341001643252672842039318314235316792272848163505784313619079190049650853894824395720355623039395387337689880961235260981029348160664674873263125183685730688151157995366022430096567032956521950581295219496383520282333010472856419649693589954894635965079625465661817026293179216569892182464027175965310157032662922044105864930594381280269022076178382854184403821663497630532167163017876940420862258594387784684800335731859162540069992441321064494170085241336680564271757631037634713382620946750857461678498149230598605589420943620494663346333536708337587356095411663163829739446859157171726769142509736876286248215873695060457734099143324372341735949919165759503532209955246311744900802621230855990553126356081104022964798040849494847332147471575282371126591766172365707643365237190312897275406785813531571626959585830557144295923402593758075972644888416094864485566491782690823824249333985917660785227324473198079620539736462397342625449555631303525419885740155469831054152170431884873089095583553434974468259983046340762291900372095625514259740246874972760621278744389850980834670832724199719339622883124817026733416018363616869010805221617841487110260635106815124565634456599643434660934706223347797347298888120682935141327234926735803149076448447561184689315743841404889195474169058637479516218771121613723986559871115473237506940265264450524872740781891733810972017155961635754390703893935670267850374198845301766968521422831947679337934602607997456725400225187380848120731765677650904081912618560625474371281887828505225638547041245757216811396007678564228263577141874619899754092759578881237731900243852945395051829090179547973644848185110982712685757983129105717719679802031046462388679894338092542211620374833449397179308966091143262273559085981474164779298632425043225567635014005788300996099281727135633594151566949891215989529704828525171777820574902365200110623607552002053672133290441610413429726333340764028470994413808271442693141185437627482888413950657646716458396843486770170431555330290833296434718988244617880823546948966479877563795041594419164318555273316986722299568220891772121770881465959300491132397073679945696033549318786781953895128074265183145954104953603278466487590802019692228978862523349260560826304761142525350806062591524328732113975344817003394022950449086983368195338486501052054850198872259565388317583832307435617587748145907996418379757688747390253019576297579571366332102344254150201733597349736940345746928718055842996688507685385204959815464662207569940939343400842253250894147523953870791943026387439934498889182539859017889192755657138415336065805194503897186084032490731572676251263730780765465820166971423214312129617808026807990156963446611243609817456688991164754662033900568659969229916608265142134852928522187799720010703155426504080437390139432131204516332280789487859908362784685603684657862764261461252005917924426800263003628728532398801030463635895458206354919444711309881670845173315625631508748098357192745382097679868226276626860978642309874714175466222756949536023365495248041070320735169817782463037160702312717789485801258924429914057098807281382294236191403823306164915601772816708715714217811030199680735517319043886870929848885102731280198738005311470233263570969938422936270997130948686636063330980622063183884380104299529388536307683302995088761357097534009951892527405390888608608547443300250297107378110600423271240532164943769993474170715995152945699699834177208146962870967280608584878075825086315070836781271075506542168286234263662207102719710960839489156361505074195910698158970464848828434964987258334459988386664526587011544731426172832124175544590476536365885448682300169803094080200813023534629549023906000541273263290867985152100219236301925893362503346080282238038015396544840469499843178177549471340882081560017562707344458464938238132892450967883200520436909454530206429339011921115631723567306442519036964052675686689317817728865099366149289874563566158346871155713856482975685429053202308597798145769049206965099746956829001830069506798719009380000572359492333513778718433020618187987527559811326951712809507742614776861225319594513685595530168237933052027193248740660344354551510220356111173915645994151489057591129285454432390329679979098580295171713116696518813040073518997467939587620993945476671044786889660869466905777569212441951003471795756575471838805254560865035796645543657052296664232191869059481824990016126046609466614556726887606687068643900658801172407667653436024162748587221460202200621203987126882379419493920999304509988830069485764885616465741424270582191058972030064286244178295208187263997750914627806588755645057968521714343925798043581823614370082653687921881333775635663955883145685606883285466103197320747804540336825590336161784775376763975360118173040608674843756316469653587679015405078654711428862852723892018962998923980368329625796239472259033463132972472303107082737224926669680041960320654623615210312150642308755624488708048561450184354308415689290982788654710660240375699075577548125805309098483498950507674707894346858427478180622832160573502060293572141435519744550370783594184393001864578817962822811863538976260777705268888200180293749399543243432381673977346272042714096376654322627204872480257491613313844928324199166044334820219605296340525688858488702848566594066725396775944922811966370404572176900528729047634945526443249908284238563845796170054460605655689353426080200933142686896446876891262625704636704881183092180205835008062976492436358444990808977242626530541732136936295303431857668745946970856618431933604424416876882263977532197697070870648352737930688827855891102350573935614924388595730152003570911443064843852847643393532122198024686921790132848957665153847754471197271321064233098596435527561836434607419676213883114392573814589563668640563253520585525170536770352757916563649331909486117196025998299829114313331946215013697579406159264601060939143319863520748050843114244595997966508838019947362534803478938259935550904892963502070468680711326800317804225175421286347381231575726843526332867584954586739618446830457384999552659205571240016362816704125041526105964471496225925025950727059298160226029140064654475536772621181433565694871877614758780028491700973684023527639991776084929634093942256061567875901475773504032189995864679176474842748248795921040202108523669011621977665053772296572740138657227074233121397374882188140741628301630429521729558519192569338514202057730158500882029386503358763385157376117445991912320482641848796291457520296606100095139694958440007085756985706538659188302971414350641319178701448679458820766777353143548723610816040015112146758731552166577762083425668960524403666038846799623289578807471545225614657998422397226301150549932706848909452642931045294553295575545425420228956104238927713730973828886125422898276425119437666529051035037919501320493389409624852849148045007358726973402775000803248908362105896155239040661672869717925905744824199948461731550336572771584259156264058248822869464126017458577162854524929755169510018130321149221407075869926573850183567911980400703257957588550080075569914211647638586969477324451867573320458042961080131370610824355105299038125067295462836407817032131662112032491020516241760015259994503731635875865130994950433079734872664236513957356879532359679738904993759576068196441887758695004753494955353583539544038188913626768818150737966504291085917439348039809113570411787187698757605743777063348992153263807829511108262316359789930694871404864546531334220581570534863729492259825746228332169582522218046362054140733543419580067839286761743234610416013802176408483487114867671737916639669917738666360832609306706068507894241951315578338922378624357976018503988784106624644383938112137886644777537524039060984207029132018648975044606270577955816966748044192687582517034478368665311560372028617931959480045973983714868748870231015160185161942435667445904551577904358227528565487442425123347383391751159391609134875224349169730673971074523234530935040434353162633552340077292636043018329386237596901192863674435946184230008024563649557045962498502736788307816872936443476752987108521320249304713274792989076569768418721156670671084664966716545403083507664679024177043171168825886779202695653354974161713599133248445360118047846115163161128506334107252676025572043275651929327961677192221935612521046801653146171634754611802547242184078618666420141719053988308158371396888468186512324789587675125107247959696437076847227831131909102794977793731007926094712148411351745416365853663068158142509314229808702117026319490940709594146365892000032384440813075497778174901430080936439169908808417444696093522979290841178670183465560663725471548323273986839951242856895821767025430582263029381418104501051870627809455154794387447262406269971417274372479270205871633945883203158474084653168516264454925305425592540818827654081999246701767118526252089516952950509439253779119016058877399182718408742490594745278453711138665186934122729954885111917928545808862594242945597587665811866354572542231297310393684929564437604616470401032175849196533115645061212460917869757478358896090271564086853768283759575303875341456080048848235737810775227948118659627881178776113987138052044921798104373201072005998046847304533259692283840084063284951376222680623775007032328824930776781099927716382785941918486420451939038305188451364676625468688189408407764058548528757488908986822038452608589444184014598532189070563110616731069346047380752162915313105817034076590354429296024683922435115787653891955642635152811931018739382701507940667260209773274614061626635461686218875935009024919869874606903022989340908396585356043416637151764438574709379426219410627763016003091544355635267079892135198726268952977462548995224439071202789587948487146615856500266315222026243070152020170976598067415057928585915963607544810767867867886679388170872850499477323798938084516618809990388069741790284063411538741187109474242983104205373794578805826896425004239207844521637490468716331760560348145984484105098242313649685678211609367222152434945946259736043768667641653278868518425273439429181572046070420639962795120289787890717634972187590399481403613056636990933359668113356952667040007039814535383068396285458048804065555770581544187298919417911566231523483501165188410866258382883164916614981520677861666042785970287870055026516578214558430744740023217598488837611180013835683653145940625527556223722808305253699293699487679561523878252530991038838982359839568199453781221509669920240560959681578146190454224653143762547569912385476739472637091837371094017731762961759106239236671413384764006880643967841142214468471030711729411109700546689936428497218543290240507138425217335598479646303450334032445264345192218433088662255244000352960574599557299258289549580797892164090983698038577330387516501696919770074218907041577758552740509937376766837841621820123071565440564673816849422115497779687082604660270761988075583273887061978528190756626312964491163864856467793339770489170096538483493980723977990796503469529198684248008290466674507192867234770341524707038896202219938539853115397103708497699996208569978593154318861579476028119331431032165557663333243299623572725898453949623843092682880726927840498663207444824616114587425984991124715653435211825496687262331082182265703388847739695078850819851539760752683327960681825766238653223842074992895742475026183629546774210184535444186517411991031375608253778921776101287065200920628286530740897430602502997476511826111553057484599613894661242817484470676744983912261489436197858289359805257670747595372332458461319682966807731271755896522453928734432642643578458332073332814426089249726180430416101983033026381829002826179015077198893221754061249389285187883700318665215216676866653923179926299559615876362145247859726958549450300227114440141549625653475426580608315415572342570914572586552281550501640670399206594952344564375685596434899842534707427972232264072153590813516758885352791757466069421268345362779779729011835034543427515901225815278833957234641621913265755073802838253790840525574887153335006409023217285698126690644066592439027103584719701482917855045289060871838280898387603637263210786359085246718535422739958317629010523205173952707884732945590603304892984757664324005322597611794013881023037815588263200336733675191467017751643392713318987579905919845270009493628518971515043035315267205296821883663616614490159919907793480610590320899766580281783918539459004483081684137217390911485823645881329737434846189870681818933529845391898946509011983545046583551899761501861639759502235759128597703092515705580957818902156533291772723106334738808480027704986499711365196607913604826528453698637207514939496602034378613123610176498505177713815590759925589742225005185152440151214768723689906698159924158840674140336775894165406438665335289882508291718117515149428427046748832188395771646594447322957007455077245821392030880037385861215087561624357728327773556460061016516660368229179033133537009555185382309413941251146616444908547794198426400745880890469118786813057946150890169108916083394432674365839602023305830534478111614702139568149156431704217686005862616972453247483565274898711490748324877012693099794678630323530253950981644300070389514134385892049877968736140650822755889996319860822705569995066536278817616024403224516661575783495911477592462258615315167761304477181799888565885249457757148221883580142731106291570517124797339148972500985215223405676750817853041702428937813179172579567733251709877010988387486040363164141035100886178613732412380012199595750678626401080458732733728672055579324318806082261110720177882485469885897835067856099915460403649389557533524233536388327733648303878792375382176683805353108225913398560447951056831720101096776009501140643728819962092347407904565654079802509205781312917411044166852042113266008904136497148277477464645761896509142308285056818491046225450335119516030654705844091103425057047236145527920722943255019173957481688975570206246695704897080712395243437910714278328339105320677232885045943005206479788333024644857104111742967951113656662967887276585548247369407997202599654679128094301906187499985299581553088420867057309126288390487948762037370950401419656402260043688031372585544391312990377315651301657823278361627562536858146750075744641727829469596736010224479918194756975544611257681479449222684392465334624451885990981286692313999802406645095061078521927755851809495298258206705038985714239626575934530724246033498410796345792120749972928782232830172444212880965335556977116212570228255497650066209212866489886939751963023111677400009129690821012034704837720223169015952428521763596366682424410731818500909726743028602826124826410166914575872354975836828675641115991601042225384286107878757480514415273164106181388957839020419750856797356624779048363201555726657732522860996301435918427138289493861719794348211190684680340333601762623700116243268203217145548752884106614390657535167044650281819684754634644300423726838082486511038266738914138218392908052006804282355072016955782589612583562364366386047361176445933944296310684782522610020285890498297501388922692707994174225905333807530009207095824578074877680579404746845449456099979874198689942755527538106283797438401170309415522427557016173239610697441032437923960764605880508383000740743555790659080090549162647041362873565628881807243006449215188324613436155170874102099605216691626309218015656339847961694143687442200818591818502504413698497316908741106836143709463867941172459093849545454695449084055172116365940473002833239292123770313246820635803684522450705019220317903655039913595568631294016865776298708254762076817943222942070012523785700853343049236819999920707275678571546526934122457285697098059124546515901484944106416797535069440972046317424540874880573884375206839194443030158423899265147733260424155176711407371130212980097523002734176524388750900736591621575406293354824404472617167391315340779707162441111610166539531027552333836398831438345927534943410628787724630583838687174401258531911577863121686319078208666211700517857146963622306824512841740358982421340437817805457339031195853658269466005316124691279724759828836898307881397100470664014128512295326794068877330452335601145049047317413887581584009941327836308022365289061759527540122019316716109250571247506619566373763534946893892480526468404602789502446203361813049458943288758303008867991710683156352326989676955109797944681688193953149633854272909907185084530492151268265833748379711344466764669810871186195027092683225469229409845130774257206079528285500110661879977123449842658672197190548339588183725743552128874442981759538146317109540615927084328938110370428788112760376158258265055338871177708786528372378938795208883072711006068172110382226638107234915244299051373129650481220539586033121492121826744401068052119174409119273168349730534345229027956666106444793477575676508094995343093315443355068284024967921085988617090691681131264355824362320035823757241784182523249668002577649240227613493685819030218528821299648367552158030983970995285575486747705925557176843186507179297633130758516877848125329078787053128938920898358263930383606555779459120540201840310534185805226112591216569286377444319321128767464440902442527984617342228791312975042882684716913963907033144088950207484884335714905725062341290379755559553107628469359319159083321886180839649698438827333098953718903591934564877721926211392753995659115041437899822906595360347224771459291210083333229502142256167678742919565708193190631002545201274764368645113765958301008489572297364966396844381706339914514296188157948719530491992343541910580790803204488066300086171738478643491109522325300159551427180476847866910672303517736636208085409741076008280503864500304709670949137180794473781334741274490858541072932198059809071104014056762244947000827166840718801142128777860936190469328523439851663626583826233200272451137098057636871456462501659692064305681213033816961410331756809143402288649519488040709920532454847841118390944000229233375414396379870048446971731918554504818330229962366958877783615838574209202887231039929402107980010948847510747369906723614681013073586106378347841150512949720383279944032247511263956417602438833099244779610631135793405072819848061622683518875765194336424169451798305921626722831768922052432129265023587244361480884444680414983441285367071162458057693260175008045422320893855984396378959310752953407295102871346286308878115156723305226749412677545819026371162610917673603864611173779116430542978766518748014755995279308479949596883277764518837140830201583196596507448019481832317855101759562566779574674715388186292384610494388358488078048330651700131232736925494786083558597266126513195978412223827066974981472032956074152917248866062035871886884740423080598292430518489536203926745028718623775352264371430897864679699635728552978217298208434858241473435698879289747570777132302380815063910013790570325617898316376891456936511069167723177338227369284453130988612519807188691070597965252317027933133353068523136731785059678215790421348137440677141368825328052360281540575183414461585389847913427155125704077435205986403170326547362188393070622309623845131018529503436537089499447533475015801497378153297127054600545727564759766363439622566879669335368196025946726686326817247801897885369653032373950921804519792915044495605598412504018087871045267502118851963955428851467690219621120459769625897913108270726216940070635250904848218745577345571138642788083434473106538034909441450388705932326855652558684565496219015256176968635637946586893579919004533363834942016219698324842361380608074736984117864753614609478641468954390542485751521226521550336701099546955049753324940805601057022560092337409744549663599034252204152117733875593107597554041438062733460424704974260002372480772269553409709779491468986475234214203347896799909673784973365380419181465545511682991965789204517970176376075403630896308471206558260920179511961662849280317503609681712996082740905072896010828992041652923133289187930024622742352260478447197079085496455607260009147322796425209964460159172014933008491660100991113932016899390745286933762193949672646776973493011289755607833625760669078819344353545543106118047321514916000369331911340096209736024242181690604366026892307260766931102967866002480402468972054753407000556822622690504399040344785036635171184682838052382689260672165374902701976178788992020605242410725179962562406871614100972804814558681645036414643087228960363167750324419844926612029848033664907555402954550553765878878854178316186288753695301135182999778580286725129412622764874264900536507032707946835937960102896529198122648692474392580646225385146747769409980701301315708412193616273342918765050665940505619449573153989774634203701843384667780556335951002616605083606017378915334983754008226535378853814431649312097824435746205544740582981912394997299795909144821200489422213978082085887523678754806155784080950818380974951283733826811609110684702922303523049479036984488446685901346376368340327879703397266222193760615900545537157533752324454263308206732985735370133882974588173726984036381961343344756418443436613039761339734414785827704494889196488174959831988631767299129715209579513844551414626052510855940810562328232017317379463355944077619505896926283629481414647675085170494086282402398571746263283249913249688222560344870116971004209543020818064664138090212474794585525619844764999185269797753058720987949690532033527340886895774330180347865680166126499896505452168798533215357607637818474001491598545118351352078817637104566794787503553008564677963514647924528378074996511016297620540856137040517706017991305400372368596341442735943175152008598021697574986007246939388518052595701756427679361740650331736025286593657061405160955441788901171649749857966475261655632621461174660062885559746007090845194492224769451275779215312974722474078072655492816814629485595742101786219234322357502962582687326717708563194596801855658859586051688283960080122245315864198027858427536696915437808095978728898152660547227475249324078856900209556608374402888117040969651171414990181799308622372167482245112855430593313832215555878812794823313785230632542576296644836766845962733501133365213819562051820170485189689192037790770275012403454484913055839297988282743976103121678062017821101200167645425161331341675989532518162077607624245236701820673035213484023361848423316619567819607976395404347033480975820076575889133432684882009158629379725008013241787704961519047696191533385120829595357943051660653214514284697563158259334110829393184660408902208145909681965888385272431549911162458882129085954107579579146181485421939328132310480411246612196338191970096137389933715060509757388442246433890693352548739113328254493669591438079738564551897487635411251939166710431453169082054642641719321699635175196889823906698175080953602370963600473615019316313528516607574972995554245157089921597752279206384200350555985790308110588672044960701359854842900538836919642198677851559934217215912423522118360604055761623755514002042395668015568910824452791035931745685897750764596766537153288255368632744097467098504398246324022650582009788023745350173599545907478265524204170462143120137143448918117884190846567033306890556552874806036534809082389468393651870775801730183249169466551128337953940408414656267597054086510502155801120917490114556807037249550811641041288883243521535758455968007985907012959161951226999213192114660545873976643313790874484896970332635849970195178615279011375118226224530617621426715889809701628862522003957942003597090320158758301037859260160978176379619647805368185515371714930896146444099372984609137280444621808597053412441481250323644900019616254658002290748601398203386925309151682691773474584801485436720283530302478312283300873825801902402969981473746190630914776132538340703498247191480929841822138963791482374889718073321591366965386624043015604113067063643341620034719597296496384271186011479360860268037738184386587619807468011007198068573937204322887778530074577673101663689359371052119687619388249259734275656021295742600690198698096480712021248522888824875672647778066106445616675252162153623123174838132110832754357661389097388652972354222016850754368078706916138284748925479541436731904832811327591115616958625010092922086819602052971877365084584469681362469683022689234240265189531477722616291359929956339817462116718234464560163874742939262144899784207387395291225721838071478839905905743754926154488045124255560203818446607748238350245608174961780876778395731425920000054319582866739528827472263694042922648157122462056473453943321887530501589682610694812085782633036442378973886503270505267281665427522626112206904667255505469419912326355857880899274794692159119225036725794835198833455560294986443890263369877790593346600749673268079070805530430017694491202232454139399146080545617180411628626425008004943619641415181132983396645464525360831730392843722919678895341897314057628146551474121639909510901505739321077769062789594949109872825823034100422747927702037041691463835116546819320839665392181843458591081165817467046205182517032404196084799797107890908191819281827390733275692322441311152755083355206498508351172875011971982778777677829906615878570648806946327775621836239553956869644415337870739086351855413382876289326208898708435955359425524258870950258218037340878697450623955066730524181719204258478996547723201948466971787496303997198691148205714058607370456856167647398112281806186304830874509649164593191093474632720486754114763156619495187589911308641369656829062920253399759827989235506419127904076658837444092372119244963133070163393168177211375194263893100285841116634009467859619192260370247519869418512841800310194142997593632333578111073936282582375140705695818007628840847179958964453982830341041735970111122481355670558699243539671639444061155913963464032054098620283607848659086442119271566164078337593670343829536837967694249997155885847646587415753716118183734059955783148574847400998447210809107837385502550918996334316488825516023726867298897814433340390163067946630801448730120290385503540943273309011897339718110219591332507778146180649095567845688474805769356014511483521604776443736785497939099470019852147803026083645125409525006386312462964562367730594472635052389799578090145205368032845028507497600863742904637835673313910179819926934342740925744011448702913426438729160236434529155458421117658743919711745474105713792444517301671258914656094713685279458622088730897990314092882128909625555666357063213914253800899026382977912220108101892918806850261325477220998916564643021087112176632161491206663848296122309231630950743573547445590935762478471851220760638665739849416808199065616054819672712538690892233527471641453083594690701067182406611385863328446433479564941437520187216869208474253401790767677195792127053295974088131676236911001910781076910296286932494592901629922724264773537492275378924143810309397033145855009014521175341666194026678418076978925223992851272753967655139402038881121312158615901608388858675215486379365089030135831336735798600515633669198417435473546026053463086127654725702225597726423180967331404334939209472160926819186148184538501209725288937281549851858861628812970877484515877200665795679900134943284669012613007177811663442973057220452614150545643169175630493548604307961064314682757656550405301305260047587999431878416411110543419444055554216696989779469659909236503016624214735293394403340162219000093316583525090701015404499409643457627427036373108974772276905875783053663094112924940763496976871701059363011542077592228277557805219550691743699047140975740187771885434123006163011368574281984151087926407128808105412352676217984604901886875877912738589490515840272316278847235142655156626733792486271670734327006610282632868758868391703216668514263029878759074345035600052779328713327449065349736940876385593479958564330780951932810341404326154874231424003114732540369451740903737571507998521163958415997425970157886234322048689077608685297526370320266915196481384803023290874652580630437330639637900663431262694821017647582702859761566793444890535107421865337915015080434498573024473318452275461358643073670753705310721030366015397098814691682732265270654021171565369162604560041226159617523672926289027740103087177342014478394128259602392096218433386166116797017115475516627378470854120850982326220420322361079032521742795745665058437340525762168424169423887988019172029426241651430937841417325827871456394199086339495238454711115380410755887392686472853339020801154645809037735551133525469887937897425859959313236818779498855729683942387933254648427029491980193233620908686201067823595822870869881568347195535916113863011424637807578020144051811723240127356627369531758362978349180616911815221280294719596023393598124501403876658713134615532460379681535762051690382800990422613019125892301654754546136534648886098841412023834398504631621751324086959250278698738370742427615352846431891108990808179638289884302432284108724369554962945093193641560517188821176407115524500529103272368712801363438234085363885792725342672422392865687661225317598688258145408247634147725665140178952231885955812750164344485552256997971609524709418467698939479350362652605805856540632161879579516293068479666096951857393022694797315663397875021525471581222955264015853081429057126656159322914042835146010551068742438874830371516596604744528918951938455273541412897136396560586011160378256810483645639424412872882900750646246406963535754396976380252641726524191718614812411411832446462399100376460867693374647893717489015053675053387858772443585084521241756908671480883544586074816215091171928068423919841655522065288537865557302535645032041781974047699855076808068593013979592787077391008690679740147224308635979408652102681673683887176566164135598545547432162910347384311193638987563552725913878564167926279756078907853345442818752657146417626618577926859381349323417058891962619311566680707774775269569478111566821773326589335920187906973363163934381768890040636087068325986713217123194172776812107782451634332438873530016990014657670733871359170588485845669090217131055942707682627103202417389023955063171497124130217103539233333806186335695788209189184758094350967108866152723643743234252387095496541393927997863288773265826723513984645412435996520774239219252285964960996255761039709193417411764850731609179797849982551757260538921045642109431684598323565524953367373318607674052428468569593952000439809902186769013676122660585645283571176369702800310793672395801523015627607143001379337156238240158033747017515539116338507559898387147582288377500440425786324479149082170426982168164759070210807607244681059550049606850737860944292168632287084168736887551922385257324326571144091530726783626777978980292985609603000306304215716875279744053837546984292777638127610119123041180186294081176941973010866571843357674444399206307683111419502091271699977988039752025180516078498966026537370884965337253574044693543560088323969683350572672806967006332707613559336373197413013905938214606198527926412645989364893078105625669641209570646591255581992721549672389521098651341813843373207570621343713465161057348688006213033778789829987346491375458014262468972935295047526629242703828369887436317956742155232039952756688922008279495612773390142463517468329843693960754618641089952150880907085811172016611442641546059157380409070747035460327131643002492642947369254946487183764538881423153862912299672249059187268647297164686269483212634170003088260422683463292167071258060970513024249907559617185492069086946433314765179321517953654672719689679998486730391124479446714188683024484932380942246133330846312677739645535131038880852968296785780487661343007226627604889359537727959877468412845084271066844304890367480185090745796625149662941049008092939901469518145620258845728711576478472633721078704837477165363556096478878804288810244076805383990784053120828435589479541091434940826429420159967372142911437733859412627994030574109283167728657461414876554967169661383524273788819480395301282476410247171757105393559134933996706628621169325368842151760979117674297787237234574708422607589034160676564862314687185252811880091662105015520289277137772654231292169360568080976535658182357212908120822138427740726891607122406343030960531782058678194583578125752446112156054887685285579166144862747455791767861362520011422217600268047237686961337940958131501374633589647447379728086088743958730965076210373421023502308455711470579580806757780123422804227223215851016400607528123333044584413958176589523496166491524714198603605979176710264122134547620673177313975805597452086339614491207333527371567857407045205525637656707600837302116561190479668352051152508694845046997531427154808019556023582850874336842105100330442775030001187877369983798264925339693246039381951769452872309353558884079680864666114740888667889690981635523672826995377752070074820491523164103480467745053512930349636864018545729231421206442218558173386238398211291876334456351407597550150158303956515117388793844031804146526566327797718230375132221716065880955978560504225203962841581072002924271396511804907505452530938671509505001602075308279844800462002782538387789222730406921630159900991968166346694085955969389206224069505732527109852112128056048151778158828658361951559178931188113817275537020429064526775801173222121346057522991936176254448135073287477916534849936302811513354829765115806153042400143189782401093168691400903252926167996087221415398524863974305070825052559289217621031132058932760477501181344118923251835460278533566085710073689042015552091910366107282952092813260236018127232846744145366745939174160863254798573461869059133495652104758298421339641269233998447996570207649834173522914073681528038385606229622893846865751296883116977536356190121613034405518601842912097596145834558583615474814089816868973291066047922578917658243610424879355659496028072061857057498206648725826333598882676575640908426294864610166118398025501684633711868998836046228517459345102397735017611361103399695099142554453423905246115096312777788784375521089138989416171893396973119854151034024387847095687765394827217942189387992851696142923012493951791268976326722793817475366608309145988145029735277004782225269247164105171481480472681005635418157285133952205296238722405598085922805884650647665345940792536448372626860070836971141329605485738106929658338673646532391141509413550083526113385202526653256903931011853682022972794356574023889389471086844970181454922885831134655788312868605550127674532336267114763493340683082383145568085478222135459052269818454782023953656009333351493557895703809016376867161831941875993572052436280822958113962916427694743122566715674851218618371940528386575164823684845076835404750764627381312894322638258960920231831595958740563638982033418204654773528077667671731194039387018407924978465456854580727967418594533865423678268691221512799644378241760048355868797747359413755500757832954325576182665634516918277862676047918173570142850996947779743151264404330521545071694614614682235257904694905271342499839034493760914396511552863202356935278694619293480440825492817370030445108484145664140544542970190577914442421810655771333383086826257194689120390396714740814001006679711111261725389169603468422954205312211030373418786644007420109545301334401935817403297746489419890045578888124521256951474147771057309163200765390718610913496427973588815689728625773984244503264980042658798540673338729843135303813609656915099334943141806673372425723598555608417136187041643094512804158806593772552748943680208257580761253185413496929565104600466731315667146148255804085392260953356912416429920196758001008209311658487377381208902375140150316742333860332808303956198530201201522538285804670703070498903265594911908730238041497111121075350280640615888490164917562261104545723418474521184146846791832896232505572772209476701463302745182438727810964271364288150930239165092260943737005411945051345112336647941199562581138726476645596978984465968275490750710117374913189759768729417835268637555914506804663461855401685029925413159979957357231081262683991670227315351230916422131495109404792136298255669977881155169265079898246536253574335523995675442481232867746603211546663534481324605270661640940602830201650236886237799933449973289491461711803897794691875480249880318328832359183942878806217048750203028490548867104491467412995511448883029115483737955611111651520088107303396775640597760506058662574345567437573554982763334923131192944582255045966915480872089500885199551289615295593404152440532626813886777304067966112353048776909270642823973548515554972495198693248824245263090876208794017399637143709799247503217334667314820179274145287696583329027933137832874946934587539411190543143708478001131884667892804952979498269367750109468728661245868551612951319763350902313689725028174345948604013347240461106940429591556163855163845017045450194211575947754976250799734054648764848402170708414429735960724895527282180015581904928311016473854974234395208755258152109001059075937022977206815314771614132043968691464026049125041637219248016661040928286432801446739319939194603052532698687431013982093460248570532695456224678718896086164302139068924697455007381089211559066852441997177699405072216896055688972833555224883589631701544767150751444475189035036133128122930635465440232811052436871789624399134389478510842559288097235807566634537639279673891067734764304012682842824412371476869415245229746371080509923021146706628560272434001495551997300184595905718575517501727574232679022413929316607452252454103120526129726710554123526994442315723299034018151695529110777715145453485146078224920578912584457248545876295557353291150857499651102355154626934027977626299194527536528739767665174090264949376629937328782895614748081464754757414473372895249745394116473076773044056863709758543000845389058554607374774963227226768277552519558357526126699338792065067191785626116975964267683067801701286468287172480643905508055157051907173761720313972779179963614338650601316371642077125487434162405198464113764723755318964801159278546829174812938305571661013457006692500330790524058771226639961405457889374640435179066890514311412789527627081524435854143402105019085822947949126615480720331182487008025511879027182545277776620883007380869784502290770960036585712134633909145999449044835212887008417444962332726242431605106508047908717147523675352005994159629233901558860031470178142970449133366334629465100570410845412784203839081217380782609486166563689065981965364360185970278618502322912022030385629535811971764096811561478820913465786620018980986059519732391387162830891104966903478935065092128199300959309674316407368742854045593634052404552773657314380038964147157117268669130990969980740675481528401843483663364178602788784877784519929214357675197973020726804630811337642894639139697671439874640022131165170387953565323172150526913493611712595747601439629241130997652774471122952575977776687429330768903522785833971666636174269065130606668939453275956175285686422191167023166820851184978842948616797082595993733635822017126459330933226494700399472541714540394360028605184387469010877357374982291080569687306561341563536865971403060320836618063238042610183848094256550347278007799135256546862785401355339975261166738578250390164140283713425204806127890809883538704209872312451555585058804117534549378658141061557982127760017690949944812700527738072537372531459646857377200174821391320616310322454885368508580850542818445068697793722785228232612936043622458375841918327839355295513211379084212441363894842848195016265267173784921145485654715991247507363484348361297008919390555463655505912552551353665685357678408612939194486420628224645387037847129462941832523795009186432200631059771058374164023227520311835219069365175918229367700572714025970258438653645398756806847177883451248979770017836988688869581143785010225569580745582601425926912451297776754081288127929380669876274113389059521426926916240610225550573739340499250174655860000642703210445011773409927761065120928507739181125751850306089078210609561633974447528254568132073908103368580843089092792574785561741197439831941818614678530556378107277941393878394319510509353338017780590303295736450251337797158496490209234311480604561913647668672393166718701943019121910812140635443084627345663297538485027351301839637509137816980741114176465252395734518197878505883528476195425450918573131823931444124477628420299127823592541055404216615425134635361206590202526659388360834382501945020785356979106700173107179626568104274266139327034300509881610009463893478146556239874876988003727447238968194042076166022893364311537936159794217245907711002402666164715193848972208099129144128060235067129219527063320271674587130574755067128307187737325509142783843591841565083733744837879385456468850152942328405793249269415353932876416376950702423707301817079247468167048720980959006819398845676658248188090952833651855969812894388131975886467669102730926246506066733087826759437513034954896673345096032509528516746951086153171246538340045812237930887093644925744772065523185016100941384890357156077839448791568390265035186176214860585793518168598985691864596056257903349713953910994431866769639797215595240846704738215610217893908775087029568940595811136232569772249670908998608976589254872064475082898200570515120300515032840523124962218157868087147944354269790851790726362481217595068556617769992658655572738569064215538156940907993225880375084293797247337199258405865517593928163807819871018351656866652797072320582805018039433916762634994650308345286660935587617407073833838254372054916079498931592801978188774274342685121475370501995955572849212636030340095881366867713362354583662176389886957670581403894260446979711933922636193762857025981179621842486361622758470792497204906345152669456682695588142744629714982637103345101486093370336942756097772248211881264530325813932287844819095382972156755135726506195049087147120983982690912608693437549657388535405741719648084732058670755409589104854898305172901153950434020074297410497047294965194019405086935221649901647018935191112910398630989189699807824989987654914297021080997204398926616624274065474405349741067717410206455951407637283546680017401113876192217503168403576459864888480472694329836836895718820125957235241755657519985277677560759268194399568949934915356215181821085272102861384591275600660225302647288688372162959155402371457840591668421897760799594702716002296460209370190226695419047143223394296960855111131936266238029706388916732389012215921162215407606908208110158996894953679334463076607913264284953584150599932644858164120727363050631284190004547111210138654209494175356584034596130509406384424961860397835908651859476575628138098458818102318517742446261664423654813329378918911007073567803166510778260886962783108758350971722458148448670068789732442336065651958806710313551652617696192646901260742249852693125075800293089044783586196469561335277273978907355181994614039118446289317081725921235977965072775621063988657450639018583781144276863768252773234019387669888969731191821348364371692219042136767476976954618626931203554794534661297140101075034171185507226828097825329474117412897340618022621136364006722158794605146738108672382044068387216551343349268462177487044008027668596088200828116240136111804526550587913236359489317519546765578275182277056954097928612509266359254387259594181858735801669497707524575281920497377323285518672460824747832358523754190186616824973264573716030359906874941278621449006260870211128083750737124954199747293969379301272785807517181642611358657637434502715216918408636180270351184325730998436951747342469297254312537100925155389921156748162111348014498652416781834530150117127210979609326443325780011856682736876588733913134662213902197768238279202280101863639414962176172545717443085650927193528887349904182431967700171949527587788051913500945975865544790536849527393805523715303641907757596906017824789387716592615277944451432136977279479570638846122709299654248408781620685996352087320731530863980308834551414526536487851502339359079645631091355930012113990299509523667114260301183152401022324404211856255204919324932332009083136897687183900845631022751483732063100154332649078091693857337969328894213705202787835262122322008672749837925741516147165374354427598278537326273546209570189905710332774575097803700289257854418634159010491539021289388019202587992088386396246331480128881847615702477820543452785384871459539942375651750270523947843475456672257498788355124845735542276398699440338547095024307269637395505863071667520761333632297249218067933460526084642879202775264326991870108383547096487957054115812900245132680298770613032249359071247598851434377325767335239063224119045582705002753222663185995028029147641920976223494448930713811599578351188565472174809310854491989057098272543289848462377827439757184039133163099993193124368632801409522374531896587957048572315487219983688142315713347977713483051840033544347180100098879391100390501207470606654359089614836248981361602710129634632735514371179053145892687388972481233285114467137975019910983300502784510934823290663598221438602225891551309121121865724972480863342146758681029685485792395791306097570962362924012541708217794165140549503344565070688831303299503812737140367478218254421525104628842467393756111878815263028964693997321695846060904856890693543420935722648845268913597957033314674629565482757978354979654577523841875090571580017932145104583549656013044069691388905278352583014120921433018895373709887351623870503260474586373078841720947455322397996958244613615757676005754138854100693107108289518900546114383563774279466205510642004415735791565331399987360788344040014081694488187536123880376008337621792423565704193221424539620150991312999696549061371612385806957864571011931066867403183924333699429918139960578374822914668928791967692874040802143779042198383314722131389281912589519889201121010695861838527256316310251138096926983445532641578188714709239219211619947056694047754189676479014169721737115760749961143988041812143000817329914004158542085600644887101139255583388900336055140789994716532911421498752748289472590506123568726353340664025689877823772654707210210183253612490594884414053246910713920430267744532329940932649810116485500048405692378303189208985498313585953183817504053022679877277125851361252609442686737968015430337713663374133992851790400249733667485735399925676346577154880655021753720185242090193215748378646819250281392255503938366318197865749980376301774204393309529148042173621653018375368554331516240315347177139834756776695432936102910437670303764654102723985371180620534640165651316963944217580246497277921794985452221136441053576857624424112930432753533153401640271958811952048537196680831975966668011845852964771430183226530910076550660460637995158572131939408683670466966862315467142736157826431360414593366709679619752859548704939885585239131649296151634247507619361812856812336440762510920358731963018446259199076596234040590558592545534653887655699314153348371575203779775759087279744104480793028533507056856513505760227683933981672863307274117928096803686234872197853953893521327606453610032913830748626536663272003278435881959278371824192690673337244110653763511010963801367039029446834082870782603937139899632079711153701975415485922478663249040751932895078696032907299304897534012998990862584506694962058331502451196482618739134918543186864301850077148702544384420815311108544788555219891901621253523175767336776504478615645599261803084517995573665796196243279394883798206779722802929863763685805871314954906320788113230886848824623071624912869023380143986110426701042035134414433770005493082290329546227214215242841029422503573624698011333812979459717376506587471382882012742075082863916976544139400691625314100020793444650449625777463872375555866161371980561424551546923674450818687963615701615901784206234512083942388519477143163604618701720849015336395934508849371120662709592670252908366361923947429225615816245149112189087535204484365341090694815770883561953562586060173004252446266223047779163563271360565049635847412619194976765636571869544583033283186608413655556329885602691466074393668280507576061187076678800634219077257170162493521176006187406579504566803245101605546638276334067943469289604673685787642993507727232207413033161961469001428399819834835208109712096042105571799210593978114482939823903206916411959534929676813189302132135380952928008157869067864684046012521696343017881974572702216437889217884879807712430190279386567288059077646286267474155651911645165565916445239769098572892330576419716880770424936406861453678968322514403960118955994646797553876626547509001511268278943468253491984264615752408819936356371732055896590209336813220588322568177395570477154807475838473924346719356880754874209588052904099162138346561352697392388858482517734679072075533393809057177337020140027928477934759554178265932476194047960042076258995650782269336544523096822150443787792792047086533471657295959304825187375389155447276634169302411846752878725497862799885436837055091256213147583807490668499663641602357103213834934636035413480035003775728487055470625385294222088847250985567558845989098649110847490171484102962668460046763853839045257967058624321884777850676119494682645883649374492514589293637237712384884408889885085657119370027105081444741798840722268820941728017804252565394222707514683312511417834486999276514264095173195700853099497910107761029203759973618589383360578235841642529539315505283348440458486233379569417471209174168197710381011554288959390191077301172599529546829008380096517118326355081894113080824964972815318514749108592189820793533202967062690873831632904137448385153591542362268995139737352286032901693845462722423651088775645544535924742685836002426283567489225506833273723951227249363413940719792026426350757031646015278853467698346392333242142725918723006723570312523664660847940558885930824436970638923412829906922340036155759953015634156553301841104063730084457132756256060084618616441463166027332611032415682806522322763992227664070722248380481953811025654114874639032652650739950258945507031198328578442694835102871864788279100603417857181985027074984222496513109825748688272923698616370410545039419520758828763189344826942056719966890599087982724038945324707372147581805700093512668975131137499061123747784522205021009863450335567038196380449177354354114045664861306602645235134940840237658594791320691859737667706268604065850078702132418614001200049900159588974830742163397362710961501729493249066944600974735582797285325128488759216039714382791168116514946820531501207477649622513555871987209775311516306234620471311521202734211378741600233429556289184120252125547730845063263011533649826300970105643355609958571912023015946144562320879887027183166172298026042648731416134854538544808144541991003783793233951377911041365393694710246893387235031299854935770519852022964012255078091404118810889424842202165497983069903346834891918565752307027208111363240780340344712928449213797258489002400774061566652949703250239607894318763783751846187285515471039711841277502490625011393448101514749971235761875258540211735400811217784259547520410295663986829294792716853700759084825471046457577778143593582057580058482151980327482465336216529613894976897886054672984912977188197709914880806093028977383316325097888363337052103303930539700831062883694147496614374903036348562678560237116902811690150572193074717095702130380059453485623004580927324124829267413206687451111908292550340092314215937020291394444212144988662643943331021581685478593805600406014682455871066148936898496426702923972293427523522008230533993741405542862718941175027412254400756514792708589817418784878846799722572788094891907550044093788514993821117823827441771420994593339190743425089095462911915584749358912810848686567331989218323769430997577355332210955498123383201216845268422714326576525604281138594022533185739667181150245596425469963742320632519657946666558091047954533611723659642429210280308060944908981074349842172552351425041959811943469609613099690913344116336668522194492744483123610997452909448863737052613828925019986266242316243396552266109941438866830569291446863366573276769081023357703845677331706625940531469489948011709645216600740707386819877684546640717274311449046221244770233963529928380399614557603525640006088195215487217047723084072749952162271548489808637066980444571385942412838348531670880760958115658705247696997319394082682246404806250255715789746419111156332557212146300289335853581779043961526771820957420907191333506004606964663425690486789357014718245995130566621184440407944449589070347823873415192837897916810947057981020308774256417165355217833232576248031140295326642181459635357236786515877390312000716982051407942619476396282531095806049534784800821199955378857566126806022243396067819927716867358301165648394808163780703259263040571998310545379200365516524767677699539945924833742642720325288936251752536762206778189178276155850150674034436129782097376641633128584305005217825104813620475389033308843793029746224466529428854458716041243750763295273575382841989448584282793742626400750394633307602534183957962603375079569855844918593827061925362317718414546009583261083626061450846033113758405631089096884359668828302522003177615478739631973440903801815596850005285545829633773096794229541328534537005145195494802148580057250968321562938640695375989682688159083770400660247232161353700055867926077291507011334329983377754408236122388019877942489208988297952449172918008478761463175438344634655443381105332183759171614142332010330275964740195246545694529432421419378187131267395538206737497367676164656225380673932783057713894917376846561569533285910702688680927149047699693242841561654408657663193608655759519641942891170505639734842550447110205909121592384869336630791665712141869220933282771388583893945102733467854806411766086879977379320574994008819213107136045198776375435107053946709569899414261196714880127675007496745376673734212777341980041276313048989359776416827699099880331658376287294223258240378171354107551644887150183345757092321949033643629622768400555628380200154926019980277384175440138432940173048536415149796274328047432511762502447691685877043724424036311279360115571921643980239645439954444282248832859813893212131931545231364104979318321024901911738241772442394780308083870802111462063130912105330589212704952351515601272395919309919407842851434033583614246510241105130247223343535665835307370646840068856075945761581178637122751727539259138024657864816002260987298788765885329464206867371645040357537197164592078618681569792985932956158710477554604958846729408022659819796274899456642792299767533714735324167874713087491822852472232532461695346533683120800888764060567125095477110641640613206502295018219014268002480229754770021649044120383457061201064515207714731903615642455537274391051603280718781341587243899021613044262094181361524931964985670514570494902741256701424437807354619986766185282576661186558690834710875015771410440533299931322783883485885295121315219345431711396891201565920760879001850387423791783399286924752424561482144371480400241179648184638525549282574154394004328637530385164303567681690904064902188528221709822987826023780664788897815447301125154992393141258097796461946972489872049959281868182558824273271435375816788416226068149138259928797712111835176762290900054052648126467446149772539039953013598100017925448861138972221986349141986021299678423108945537740858266865625700348479205829680404002400281015115116693244053661213418564871901322372668985332239315415625843126666229146388987983040950822600971538065545094116253974815597742745353338746756104358460516060214555294560237528135661193144844192390315015169045856282872116594764803323817552464537037694107462243230665423631511366972898447612183934315438605642072253667235748386279855629216281673229494053508097672618756146850340682586806101912482788048772847428861380324864458542403230857870771577145215952498636365072076099879554664839194181387292138179398880179612555353227109126797082127340355074507302535062222522399583022275125537623844072342728835135686569331355540200603111306553000289004668378869467136278700524699545888355616928842967604887555296543015895769511284748439652891626582033545671296026875073116307374938219983647942314759547805492066637737247531807362098606285392651486517743085255900636243582940733087539768398838125991464031856241171763490438873400712289858904729159987992246777776298715620500530092340067695448931545632772330708135019623770641911605216268053635985797533920578259354612931913328768817558076105735907083853756006320350677508945652351852493832023743846938303301151739408535812770578722686202779286014028964152515511592471448608699377306721171741899100825190583693322597050588810990732128537068380320861293351019710074275966321354821325567267649830070198466306039308911856434726168898127214579174592285507966892603444116602244139210980545236431778746670872216666817861278630268186710708415454257110477900554064230493225153166673269203665142516347317216887890728213653320391902693670612973522058466111746565874785510757081655565507351635373614337319943562691235881115687014985836377870210791997452571075380019930915381260630457980267214084712839383340344444729748373064013956414496282126415539823038862554819302130362198085332574386424444189743747091417257850194569870864577637090317549677329775665501828886901456648655828076870275263388521592692528434402021724631863305931818547034057104573400928520869193596568406657376893549718718320275588950812487230437521264109628017530799368639265732385423019813684263473543532243077157858997102544737637063953408359124818063594251054336255435147621363824608177827915107060930172990867558914257209557116666571965783072940377635214522905193559677066763982599172283272909128115451601498847156758897955241025558006749132983977471314490828608671327687013423966322013550447737738633644131312062340666505057842475028033422537687672996812056558413942175597493336474895067758738678263511076799819688203409621654420291564752628388567540270391446525936424110557936595192093042537202375298113783437712540515737173911809104729882025659809060611868771926850912777379296273972099332606538244287942647263127291086171798365335161549030542320118350081275167917409343183912104721218069127241336822850804385421444018850046264912174398372919056075665891225216690614004992949291650605974218710013005575097058440910367207648381839298638045736281257347616654752128474201405985040610143887218844875520823530932557479058497136572861285174614644215978960104299794152878700540314945069132472427173654736803376739162482356631709476945230256063210116062253521057613939092995106537096013666017387477354681621773566284676331342717556901380461128045282671663564915475762592335044908248512500216965216363458052468329881054390395338221307582913256521550754923021162905009505769130394744736024870884708271282716331084268761801369559177557493400592836487792144737509930292799798217327297845948493797505949081532995966100827604912696954141398177331065630712562772536338888490180349692897115469393316805801751038173887043869363923394076427957721266199090432026320579302726908455889345124256798391497241451729129557375614859725175710445830049101426096261077071323382391941434744188404637615986993941136112183430619632552248104439779203306010124433807838761020096116251915787227554926457321744820362723193691398495900792399456292290216829691055748793703411306695581284153954579543345858500222902703584615118334998180585854910260259451650685858778636223762361087405429193566710634585703072571370055486924816007767798756336665197260523680563385553965137726653648733905628343535946819520370931396201548668502328060085673301011561874047304875047397265306518538273717332451496550943441734779903249623529765441414618839180074160785943604425778301333074887904007095949962049209989113271033490913768296932287237870234934370610845553124368349591574651090434459326465418566477060506775009665520195615596585037475659318283529837264083000189794533157819753222804086655283051276918111344251150791949015408894595280161280976303186112057277621484644537994533426629456833203721559151346472211586189542578160578776921312409360240544012361585745217240122271479197189422444675734506957004492591065751912352605524386900417528327607083632991516369492346849066789307543651855269627082005345727461505675980400730042277750887193451119813663304276348154432654384781422215911588531312880978040596082015699877611154925298151921600976530257996625553706608183939430554091005218613445975247227234414161916416485010212743921594474012685450970840948998683353102639026546732875443994754778450561680480519176277290486850020739686948462259854638650771642859269750584065212592270914632283460201961899106527022899244779814699673186193554289456388833341894430942187987145222277537285427035475210334710029261247207921690110989005468043913572383816990699686296277489146783549110292717826549551321725719371869557635545746144286876841049615621949741721642243459123641343119682437110714317436775640106276076255281735482330636888709720468345711062119305296618208217907303265413146224281924702428041518366100764763408045194199413682687969400749889103465277399861022389494211761819382907620798363988535600407337623632443606606875547994533862426975967299776539075938661728265837674162525453541212749645645279309149071620418346977853309009038865110490913854611865685609387231567149532110806958789970546333241746673385083983692878764924678278582377990917191494052141424572301411035360803393655677539981515093759735217976115862873225922075422516985169568309133936022325322958116477729373902075512682025862642123682160818079225781008545203894987701134989570833569231098616682491551039874142934637247853150402386619702087915825586587997817177101693981640642767071144780192835433718146930359226587400166708958914030911350307578728432461161977294434432982204872431356507156176240242770647880794582991217368068635832617622978757092285373898274361676137386397914505752876308957131289284707298603423361967979402553591868246207161286739850406684386841944002740239310558447780296230758017589066025336394287158691216755263647843527858571157587138778135800176636793544711429915083761727468683156154499834490161745630769619567895811208141484744732908079495870734338139795927387329963500766462198121196680827943265705292762946589556948108943447961671479551866838491347507734148043405623919157387040315570489123420683043555822294427431165570495719389613970235107398536836161122821832661460536965464593471120170239813314503076900874999226376982232948963669533769781812733018039384913504595771752382064135642158661963928542993884570561685908165266994111250923560628695628288056294690014245346011522115767108778704156962419682226423139586942658052433753583229957297263238203110427009473047594784731139091322966795071420619205407632630054396131212140653586801790398531702599646303563904826419075948326867184055151495832446539866060694427409668617838559269739965415140477906754186267816905656384818537926686029003498939237071444820905199818326395484128229324116266734805868804407921518611321548395136590099244134391591743003298186983750700239805092887279410452325598099106123032092752732144498305194885606324511653674108684088611366031388718587086800697986667331969581232610765924339530843075644571514619384713706172301898740280239966304216122622353866793777157157579420980370435064875473412080563949020550574095415335685813491614599215617967460414286442921969817981183483866093432411233090896189265460274463450007611289041444531068730210043850748452782258981074017940454105604784128330274248532550540758271345508691021602585337226266460997421798655381815555971533272772925802033030197886204720237646841122993162017841946353688663858811370564195562680523450329140011138773818300643906698417032513696920490147649371932223198670009596768261446674124096360369471434906228842057148761826706875509310606270884220161800688786765835385046067196881878599432850406744266061914565225686511191796612689287056033254530161977733770149336416617155039341538135813895578037017576576373495653617900300356355392006461015768816459364787186332191589002241323638050229276798595536559494652816774429607366624588852319621841470371393138809136783925805971461702584844435170013248597805258915007731344757178555628205960482889156244658346653797640590503501821603694051572579018577607867483528378483872402089983884746005772955437732394492187604450207235436795281566202844067602983497040863917478570351599817647260201351572759439263272735966992262139169115836412435539227024392135503833643442071838817378861611659143396442321687535187473029739126504466751857897818506268533511845351640361203570474051071991405543578689537580567743231750208810979190386180414774859596744747751747831494168925115129619583353980693444894943647440550492824116319880852529685185628870161470164202461439586407464903614583012490686069017657672758903159183672846496802549035214443349136943789830627422949195260140417687579063672723632808908278613687128011105299422025164669007120472280621009360483086041999380594458944828013422000024174206824106234220854449827075662770723382193898466671895938091312899640019150237274199952084262961076035420713829551032234227684114068753412050315119338424339505214995729813707800834658252912521350559013520298575818962224229618243028423029041220751390555016635106261423140767327347517943749485027243343817899071306797085104571145178916684090850503273145392052801617569683074317336945211097828932965311420751494555820463475508910497367747342842902672238324136533332522897542211221061744932533962548551375056324558361716002964217268380407755829326569500851279917385867011157166029442817861380200251132206644646661431188292974752971925541913345919306554185380731523087239358572509941340229613664112820922254929795860122064996312340526609906290820105052108278058634194796404375680239330984103018741561127834047236838305922727104412581337723604351298362122876797673484204161139702859336295120538799719663778532245243198038665057842356084111601508388981166672481692389779785724696726091608308097047021901145061392066528601247230813707740704553852333763870722963123264057684467774982984534228512166819402726322960666621677880721125032620144325346775061771483320706529441894110780911104850569601370667779051151127272667359484443024185398789538479732117705716892300812369653463943996270195702703141015203703142982671926811740388784639032937176104064355927883579650446746372139119440276341744703435669082187699877687454000324152245630447273332443408670730734800389133625076409181579448048264143517972055553894620263119037342372772625464505835342068415608378502914263060336835927929609169191582329044729578394896427746170365250186016447041249650582331341372829000010892196585527971206751667789266978485602132569996162616960609000358719722891760576115823464242956802021828327183128555418344101329950673659928027708312006437136089538959974055787025939607661231693841936772703128711262315311192340587491337450038339582483386684302906194850399088589551541559332312540340880637156473633251561797044874724498336736885120143441597548316241672868263564078169816497143010256229931617779682669087273936190191003784372192686694282591583106185420234642601180288301088626906966904745475997487283824219394474149510413710481266439654340713867935934189772044144054487572332905270573437298435720311425188832977753978347336743174893913920159658570154526554351518127402915040845677602083362502300572178874322935997370920898083726302451041884813938373851697806274987803061166788265275803636758644922947261274821091668969418209023348084153804047146493631307064539296731035724202572165778042436498983671151861343057523766523013528524953235027064726409179306003304402957423321421640470363470410988075223607594894441286952018565126952093981784030366256768138169760464900745589577231176937231260737541025608840166552758990245126653084393703835910014867309045557277862936663656665858573900065220416073338296140397989232382417045068729884956334952095664540652231113358219934048842691259648554864203942127587025460200687663359333203802307643437228705571422341768925754676144421460682625993781035357109823724076756843369244265751581074583805173438706737592483557241240515627160900544901613649355464899656955269394148640593110588448731230385254843605776348206918080403979776543565364937471203093939446490760233263245295659499124652035017583607653296052286281948445110828202064995801391552428768295253760468756353090415394379042651743292005939772977095901171814039121681840422556158573648920996432850777362024803025683904512305534275399644282287710842993718074561286389738916120993264250445526664951810320186421341484058820898940414698017240804048025456141294602499796407096318678883414034755354906115437398882770545155851423723652768415966579559889604958488318728242056043137163510529856881243549165275740074472368973745696344294825457874860876583928750653161974304455361284689317526356236795768021909932385193240126039690263192086259916306964007561679998961770792478102401330423261768978023961064320387815762597260023847399759277066959432070503898596689049927523573401783502026416164598094839263323465691656350871086079773960830367265983349974348128013419648039562830111900515788247302907326426405745029258148463189951949193352226118906431607698786720057096486026921422610172194907060835289069130650924403010216775114558542791848101365640838546800450377044452621711505668499899388922571621564995917290039457807298107660077342283588932280567702118205798474487505142677899649009442949047739638867486809139115716989057598634097643342467958820171931764706775243800879631674798285079635905949634005965251508683943118743771386468219898855088581603228778770551633868205596871596694051432420942989996499903357958636088293585036429854794936349249101962238876620543437508949959193229069575627644855063224413189615691557042871746011540370954034052412773798889454379706426680895204719723954979479336929105623552227718957841063306111205824700399618413197592870624632139538880029879657272077293342164786827708970437379405372853048777176202603464083368599521102342856237585765349200713975325426773682812367943119254696084946990710571002557998084463043794202499978927992985798561073085519878396364121023179289476780120412169462543477339091720875539669088976825719470417795455007992171572604913217020549057026651258866250527461107932267466240830813275309183860159938025460767366253234256961911816272479610116562169534578465250873233603183511076516170036739550344072860337254239724161088273614213286593138507981589713207071931929819423408670071654947382245325976245157600119765315114014647058364160324640712920184239155550776196353381939026959445262250369701439407919170514856427986102871052850657223607386481916684472384022122190747576728421100825063587415089351039513474903950779111469825834941879468176252429889355593945145475982984309801235513122250951309654948230363238692485138425754895382949965771830976725578683779818815009814915539876961297768450064457484407520534777689000907963604467644778052387822486597544052989300301268517824414901339575849294068959777828887203725311884459658192984861062185811456624789657664849210090961340832629204485217773775161924195192135610901810800483071095443983988733158266539756176249900442227708930726755883222598619458606699435125626060525109726314850102385790683849288749802835005530750434930956451900784366250433195666659509961775282107538418648781667477219666383165467410691254923239510306953627389853322283714070696528067103638801161261158419745034590311568482591740073496559098584989093756582622160351008098181569847699449119091695618987137064551255647015325782245138417016111210258518509482971937736596117215920642637750927407318655565123844135201004278639650241978108230322151077699568852666468737716838952165407401203250300907780274626839006672718335371796297136266171212198382358029136600876955149666658351521749207281466798513982114932648556040923741750106303843871581735373910234317715756636179926543247670821097687856606694397243966350562412744758313628836573625485013900237847484753561829427030134361461244350944620120949976948502080127713988698303763839836086118789072074614115934741526114334936414018575225107762160540911650430699906401328883796660221238609895910727943519103765947667615431370464784059005022368788932508298278728227606160284582030677454121390466407940866633326003602303473106149198953676985211093864256287909374438741860965935277042611532064624001845942669856027455839334829379218675495108994400791031388617086350226270725435851133647614655746041739625942852153739745265328248024917480326215940989283981151149277226917953525088948783422609294120915279777024561226277488894444889287121718623337997709364050095978017046708988425570027365751765935689816011183105445526422498110531373456587213142369550486162347600374553556471428469823730789780563000607855837194232810228927654615729074792502448592951343339519220506212016746238617212829393433348690677313226546599120031582837668640759415937781163051832731841827872790994243079855278952708892688660679846107194522483805354821892127547389470525497644920829565654379470155627003210751173786604586686276704537919576904881083074433641462665901480134531813503664292501455730214968742135514643531031928503825791808443515861439414610351202693234408318174173758043518919346485097162449954074483739789080252901629221341787653098487351983579588208151568034256026507643362297329285576477795705120598938797490830767161378096905380503220940330773616720310519198386129390420639550771369043269140239794281133373561598633370089860533043957522043196363932395317347849720039140889630230561278207321847784334902711410468443292421234962112335763315856387884023242231369265486255878234369622819168633777710367570954041735320690969110228995790225884195824376785399960016117080314169355102608488589844008193286166383177904746579642191452705995718148297726676026609640939446492581062206947833526054015140315816072282388051974174401257177359298102683570498084394352621987917932432142205579924556174911168020914491711220390755367122918659734374562305354731538468549004317241259152503006466903030449855676015057822613378573630977028377201079613419421005638720402786751605711821886355157995383327228855238661969867089967806917223903352330281495333701541037974897260034131153002949891247526281592445835385758084548593921354913697073331140458224158838674808586306755478606295960652681805677616213606835955489388282797714773871952848978105647751335860027635813837574942210042718985425858142597184453278079351637170220877851114219168026307614572708606217563835610594427340025003607141340575474274776951437697212868783144872471733773905905572003527750367303652795485539126842039887185003684453763513349982026635910386816840466349936851673859126520353091137667547276939289347812826353429108980638457385971994881003148507933574804980820758029794942597902060075216931336528612779609114651749797890356799897282850562937160969595903091095370778335658899687391195073892722290119511879680567852309798347505101665834023797058930892146518128791747152394305459321572534547534370136195046174137581688288148626114239970611436190713833394580598034015656381913074999649680061886329877070532668305329570097674776121106987190090998061891370829355136951243223190287846738266093976487775493548108860473050536577232914632228869236086003839048849444283321592076071480747452026825445659458126800340278202478370532094935221874568790445350314440867396331737202039895378064335702029908651822511155788026714551210898628343942094963069129183295438804569178666415421549288537409404871064398951661214393799305379869511754235447927007944530411768777664529746251434670973686901503422196506639560894276106403067824878488431881177461249966360293980427378870175953738270665718062988080424145973918118854196121843180024883028334269282629294677438210147227911776917996215100924446537731003095618095494307369695792435570960500746695876247312454303964842178499194549939162799152194770619819696748872193871826208006888529749583462288615187878814132356872980287510573645953788118096499069951967480642296008424282002835546630230456862280566534716072220038132475304774949974965528276375809230110432220781311885163013133461888296599885515689917567937257682792566080408190308817995857847625246479656236168295356557144304034932115526224869449338620090485940848764403749098748102232638262807132370172459815907221334453067370837598472951002813168741527331654764350201749462104970184338836720850133729950712760337327805222427687403343675199043891173103255912594233910775525830772678027805959046043523718586259210798900792680644811725691461831556441527458384900059553859377836939117979740572832125065777248188454271282249512713279625311823173017518464343620435780137911176157058462708438458525731586577823062873876062934284795291923917062465105632625955889020849181094397446342292444057534505979565418100135731112219548948782294829110230595614815506199920777511999313951860004105872581605467586211988049186880002986138359455818031251457623623518622842179080215144980737068943111593057530033692562169495037249556948535138972275411829235297075384135466915626720532327646492854691605137930962465126687790551592299717517926510710580454261515840551536757816708550280689146754749013708557643318465160365038961318753603527925592513767985413641767625913116076059301379618033193167749992403834388571203313131895827809105705271866430158046964854231242793030322717673958814080386515434203245083916783112080720450266208472069027751831994153871511300754046871472417419877239876326500677690459632451595408570445505765415559328383542769920263362649725315897818821513821670913810782685716730594951428886444190300228267347949591662163856658710352283133818798677862748359694918270814066119530147853308022816188158343335279168577399049035784645729933083581713996556178870975357107271940849905443180669563450021814286083331430883030581515084537535902413216324126375331955226342908555606106756627490265107276697338087387128424504876213408802163730511047758189634219695892161084676763259886956238878921324837843045002038769325758372424316937520890565818225741698988645126261647983762034847121215631446283482764645502927235053510669159304150738823011387347131597798157150650619882190820090802973828058390474855423705130109252572322214399649458048406781328619704391740220861047948815777952435240133466603278328929976509170498614765318152090290587144682562639961192347559859427761408763741442096299837502618273500657698330614098364538728797364266709797389898477083504552787114399571859284605963808144602518926951889752794830827021617149773930896027925316667086389340207125334665541053736409290781526167217240783589934186114660039624445557556801870193585973108735961184012025286108938589470977897807707786716237895519148781705270420301037343562642369937193683594179339815993543065685172466963825671362125447463706847735906613444317208700643150242538127469233697228649064500338081297643344213551230756855923354695102033042953519802548307486888039052492207253736166929706593001075562669236780422595066366800704434055990630959382576200077447720902366058021050115297874799280356471960326323580590769854368077164780036576204293348936596982173457747516025238469425538490160126899258414770147256533824878892053799149499194528884523033948890536620784905214639870036804346579694795140780849780820768694042548704940166165327918249905137996135470226811539023399575136506371984584777139672179732565973778113672539010137000430784651341319181469100167409723058579493461641814552236125685480959857497886704590378041198117673328129034022635740314374281048995175319661250826750082004686256377737603411025667399198459921148826541731843089830890149341730997136343751548739163269221921466400711281525714769663786204566015925898306181211073173244474082076036287719273220354769433422693720533290833889185625016790569122254431197292343076527434286082129951236235245366131589652487101442214573610810058775487743927968605142041297868214324945057664820439255648541145377816122974081106506461963922762266872164843660539716774633137813291563225957422478232309958577894153819650618299810327852993487178366292090252697149916211234262550359960676365836098686334447596102037694653482869650616873746089338483753871756419448753878579031709443993735125124652605140977996709953000199928844807287069433855732413337851257514208223356857107886396720116898810212435021188598974779605080674419136232856485870696175715746992028735043190563157786150283847333818889301607784172563097768651808235981468503922337518754457170647587793709200546556468004028943236972427399094960244746941470732829064520208419346604214685337464844848690646766986886379519569720384512507884098839014433099103993578437488534721362807096649668798443351610624808177697236484308701346366101904951794982782095495005644248951073917590112387445184234027903923748401726983750779563914985492999513162014643556364638564706342845106889643355035415442225513530779233080380365423093028806840678473430319923671193692081691082812744540859021852978421365807446244443249969699269456730593551186864388520664222542259265706003143562056357937244649047429597498215710117159367190787673318595323976340509384906177574092901184206563402907485149554484216485231322159151134010928010038040641553794011443276874628771790326125634375514820522921901340413315551146635022950667586100049687705888996036535887115144535762652751184881812372717487821947399473115312010257177548800474127509085408684817905259105319717429704517365058503178354161933672259574119018685455460785829377159054506795048066963644303216378545441913752089253593876677191559919940901669426567029472656240784321588623079668785425598092163742303294691558656595821030967311360018841079037541524694367482093143940828705034741475716584505827073399865068147878273087830077387255346336288095481682714429760688069499299091511017415056779168881269942258077592163315760589851555137330943406092746515160163290938590430540235765582891253669726330191603248066873189249712088609187986252696782811451423762833801512628313500041605238089288646746578975440316524080498456188909932240324880216120450408384816469852445884147400957362020779504510094004182247044677534596221733218436015039967263347098335281836755982769957456419250551266261733341254105040190426134522468184740167232551916527575815769483232514810484520891265780101302026098874378640391437967972466958505621942782035079730256622955257547688691601715089359837433383292770085859711944652539510084711395207371103625700005497365306597439500726308530686660375843292091132952346293368211693137392496146338667535356552676440867450633372493751285036028068530677168327671260124503786282689630921354893754541108463984496198323930990129905697769668993728887208999334940549381975373252224277002918870323596274629877684628779513272941674778995034885019115692491746047543193809629273986211052782224894520125424086730219085774353909304274997303960292649847135893237372125909446678659390713609631480732056199447446821793122213981636013011731841383737536096221803593943976325297082155879874886201824457563365353980329838926732848501365008278572517876977458454702400390427018459889173462766590604457611809788665044355355894469774146202479627222166056763437674655253570501832496218226057154273907874466823879461170395739118111210520392602238093874926003524998940677308971576360914944191448104592603415574122525449534987602816087332211789145026934080842883272194924714494541044738295762603802374782456168275292254265077656092633108173028358015824675219961524577681577243537944383329785532342069180054802222884297932994379880751211607130124201125675498692963749435904126086796584132317127179327013822825173615142979460004429112831911354191449084217338503076523713416477774168326648414637276139582363367967859520335876227386109477885405003992026820110698462906033537157483568565915824417412952527368139856039689196372189179283850281195559150086395407531440031540592203675237477438354436780289047098236270729292376590661761960689773512567173733553029376371373669257714138351342029952420376535716178614212950041075187832945582431050742697356356368630131051315560713515977552403467222805704175996261283564024543077003492381925871355817147684362016482793570588600570043678678140201714811874684197483284947338433837780809789414669193090638192768451260449084816256732864802584364395189206276890146723050998368353166496800839194050991937694898400172028701856638005368009190721321860322018946076772173017980418679286537641112670684707191923789929351513149565328714185964302793633233899522798254816216228386267136567140904221559867787658498363585059300285197244363538573003987276587613885875502108005682236295002583663921518909638671735091121551745973620876008312504097470120654828874758765058667516390151546960339796639689732782673884649227430748117221171035556502627523018791888982174813252979279633415660938979339997963211957776483776645484497193397506884295025046692935558563993410433288609015098621443950057897411554034834861608775823303277369977097936625022523330052915020502655807379987578325853000828894411585735820518228552962303735318701067336667211938978377247700911592397335988816354734244828354334372035122027894633121120585243645561638881617737867397242836763782815655043363014303724230983646604702802105202108442393754073264862753942676037649653902753818191048950456600507942756799124072818343736889694827089019325234260632353455947397701589512686854238060326140950427177123900841625479045430122115559114876365147978631858316000612712164817415055871720119822065204323397941759627813617226989161653388771901265711391618746468295529215724679027560004162112807999897725536095545479742755183881797715799941671343865964853029065741399018883469295998275870246856906413985138195668072786439849453930607057763820968281329243673705602573047689978086193760982260201316687127216503934793778114184308520977419012308387314910824572000177118634914920459492412389903686970573874420048420207029327273651952272062939572993229182843582833237185541749052468999469796703155879095907540395897765734186694758753487552003499190074488860700454185148438054070440104526753792689143742444164101836535577978270637961984342026613375858058733348218019477974143016601985693339317944238017223043646019468984698864816551473635446377124928810633008290956044655243538207739209211803727753765436602036191219271059486029072122175603182176964177882277402455652553716200981850216773334846362756213937382085351640891249543265608768093416182215733101391522844768922436214873691016437877216488402552413035177687272370725482132243846553742413742072167422147139177491725330783260968768455915897964625025285173804799334083400277468144026050834977860407907916071999550274799906628479268439458254783486034077920812209258291812827541074250366492442800964890882556190497451096249113422535761638540042736643476185423513164726069897603496988889398987811053466530512025564729784341295707440842838217607502818639345737398383887072197993314258317090974002848747944874576771900987712890990194302461647492260976577993874401876338804150447845392528455997838252799218233321755807551746780028207893599929172486153560894551313905178853238613480237475847079176629503515669467050774531556025530293405360940985346841060396748270697149682532408515621762192349341797910343840118461331679255237791999159756364956107903133923520221054895806773877753514697774850607747130292242823767446291032801644839070842242346442551163503883311414175938069578484163659203682564526825831730598964765717744443368277203012972531973980203184968284538123645893590587708887005136748269746988802424992005672077713114479466260128665481118052441623205118900835051026997492764170157763770485604847065574310595827758220423676143818474970502148047869364191805243897594447509328473617401241880486172527377242466200093913178135379118737749961319539880387256488154792854157228274688555284146991980387621964030654026758251362446667451027198494183827077628667941892589489044667333699858090804589030136980048407478207975765547991376143874270387739706854663908649461923868535535300521109151432171933942099461956353442703400467870248127156006897177660821836585108010150936912107804914282056895877608569652682874507731554819968100075575892417364159665989328965086114234850596167488730625424066941763881157276157168574375973639852132501061091525697629323105939988732911707560389766161345550899854329541565940943164665683090391495808725427178991241820806373639536355686135256977171919225421227828853484604042911662452450696694671043408062265361921376825987677069763599322712176965447053346143550095009053638676429558011062925538595595396028822719526280443261895746996920224479756637515627001411469257112825148302086739399488285604043432650719345171207952749024823659333175009561086539510676430236730642800678122318897548374830351343270379835944653490492842338067090077148540715890055047688240799962568851617950703364411760762963912980813560601972643989035669523583191989824240683233478638400088681789900256532217739031617138762145740561346618628317354390244065364425647699160205945907841362917337292015105222090723373463836136582616494709660168202099651061322988945296893406517340096707949188619866884918234325160499169279707177375023307476718962816151721251357280132747258874095010910754074137357205648231914703849456270283926036328839168400930991494530540277951733015586448027135124038392534647618569179623037913256720219730468981349911860310419925561897657527733858345487971932893856259847551879463826848705464506236869439745981978644081680090185473412413134401134217261423900870584482400637638623114649732291479125905079830376215978142612293724513514102938551356642081366624386974316245568898304263738084193484137268476314746241375300401865842225372093660588304240331762409727794249114307364223763070424430093801024594779141412741145964682257995891789567333278905636462725325376865575746604815991699896670620248883167874675870678692227396033581558017228175491354096811796593425350572656160296227178344437815409689391704517882500341099679218616159888115016505540454524207278879959501817253560939907529705244512187129581667588359669236420654736579076926210573380585890791735403613436757123659252925652386832513079126898957790346302737496028020558235158565997666577677950211313154214922890794926702646641665801257849474528264964593318530394679002702469592515789339186536353400983241919573821490710601727829890426614654760185938542334640602244376171152375915081649197179130674777149782319755478997050219712643734155049868262869205606245122527624166796866932568190837403458502749861735058681282675485753464484071831774232439106123098109185063099416408869655544377588619450882741519978785157642907323630385343810952365019581514604178780248086511322374235174660912039462093737684384331335499813930833988098187385753659596263664527969103313472760695462158398953052707743475283154028617611334981850001522187084538904387702911339539124705989208809879265728022772558972571014997129008490053864832965889554902573015037134273580636136829940323550824321758102339110422603183391342745956632746089518495521803955250796295655359982459750826908769556402661999933478225983785034898919866505971244713078030886544856578901268559450060022818460448104909363864578524122021798148803122346096380514891163791761232025903927921741515304256547131164327501709028903501063469940191116219098554633516947772033473078056061464598941428268642358930858577464876660173846432990575885958641533113256073525874163012481929427462606854563668770346307494045810021693016602080236937189224888670646765750831422153958019420005404345351764167780560552351250200850982209427214579243696936164803559329720777317800651894406065120490392321024062006295444828084641035883949427779002318023844321561669562410694791727556715228073464036083983214902719548401324951096295669318475310907056365141904012614323285750560886501199567869333560478471246181166039128857174729053521672133070859198334121710180764988821024718388307573519091202234717177417770413831705801374925364494329620115634524785963305256957448537662372541809283261384840702631353587737869816067549386037273261804390707641682345730888909237330640960573733814213375311510762429229546409794954385830988673922678733086023110675038889970846937962012827657701391944475157091437231818817429359917174512236595393030352997317573123387306926517069459897475020926970507970894339464539072095740491736201800647704543500726907497954082125732931298648782731822145293559086655964953679536645297099839505044984111670859127371515914582828239338693378099531339554898045428477827161113240116957529464251678237614159585691997203918426086141315928810916171662559531013997988335726210903121154698544835568662843698345710526210243436294505952209997578067255492191142156698412710139125220313220809891516276186967469983735080594429475524850481212524518005065889794609326572017598987269198274546318433428881371306244692753189630657021476702127851246616606057124283526975237175186550678116433264400422942588681558857010664020920449942909690862684082876795838314717172807467101414198641387281374981062276175686946719980433468084565759955402252224192852728208617805719041134920007945574355337480217744110350643454492721553104272732947361552285656857925371478921099874735573563338968126549356355404865582086858412849519082290411556248438638698379067137704892756852272472900177018872570694746138206213603378647696350694035490659207000703478130136382718563757030251417870275365802806874421304302810700678439888929748134496689097161747055232165149768166022521081784558169073843635944200209517066663688733920014161151590749552469944186789479165719264637745103955336166981482195820327973965129360824340744875995164176727379530200270572505141172478056047223020887974521735778376632159808698068948400859285894178838743987863522374268594558518793874256336264317232306382059042413885385478813837092358740669280378732235735229760716939102929845232383846576239588240163488413346325185391859332726521772041802031896160050925623093628445624079103475113901970532304133724750548473846484049971088866361540799758219181890812381544003984754547260559534535958106328974845518980134442029059660792714530855098547577909543548918257632052614143051867924126105484581572032819930268874459636697847937027969610281139390262012204623994659562649068028910448522923936932968495257534825044120536116504594752478454584620732426608167637064320273320225412221158247091315560600473114024189956642845493668134331211329331286786995879667508353222880448539084945096307015830872933619937818923277198432324362975941090474565922230923804759657612920696877223096721974355590059504125203745623589670903241890676326217870822993648944301260209829066333712796254948925425111031405934468033946282117892162530462316160939704719932104158671527421545765875474413562602045731249036549846398851992428471543504406284192539036497930110075145893779739805904882795536680360232573999599042169733609539223142197204307777148174176577998887896700634463466704992879278526432471855848125761281087327202246451525119622693736144079073918258213298243771203437782207931861815519813279127596143973215851516872466044563699993756146513473175348963355009745418648096565652512645585018070667728585186527303783295943353736609677846289603589851993943768344438083734032797615191855788811200343585361742103506773672263791911792406497850553590429242797860035069215917657566936459168170527677653699175032508747422979404499966609984563521024064907288183538773752618678570976731181635476846565694467581850426362572170994072589330758294804788956354504928799838206363678742016145449541647866606969345494459611565899962886038869356463653249683488181059745473040197922902350761019500672991631960259286718823378185165304318061829530521192225918345926135049311473323504004760011660481916872106009879335656535467938616272094933253073783057369024700741455840035673183605995978627851229909298157608908170368893135185853227954270740263865708279404669814578466091970776457377237721923053889508218641468862167229922316953426329839722345084306865004027671005536663316476486737311211035911984389967818631193537174324058267453206695823141842026249066961949125118869179612871974094428349665591988364179346600285769798397268560444253775646669011779147214250698702236760212555615025940463402356495057446833848154845043794479477058309510399036711272953743699580137186858953659551392882640452795487416674800769856633327650113526498003633360261486628669877297722813815977527242016514154416244707338764253239992121578054193209014938710172016854002330417438627574464632059141144441202037415832457181567500845637119150482069854332174553305000836734852940298864743311658902394397021439316824331077482957092497076200862760714767898913211371106317814210851649358587878832905575782896106107171126324062422795309650481212877002183909545569425174449926488873000788149410398868613037528346063787560085324298575858157140453479054255549631507930508575849178339021227845057843547586187697714130777691113218687682478261140002046005005433490721132846734703006380929481490995280116214264812837530983022386754560656867366603445826456993990495393140307147889305379128530660144626052154252841948286649520393444567002304121100450973712501218770336861809148890955758612284264785743896405455402659969421048672063912047638675557818508415133423359575954779579039947144062034361601324731192050193836722174633128397397650866822160735561666048140345314940610566251787200112436691287642102535133785012885608216870715341522894897662221824606399239461917110946883289073013779723616961061712475095636863618949677956439409223409729357343455605801153711232702631282721024641290059863266878812027136731571815788858233911821652053378949341997418142174922621634944629226642348844609889491698955626217862596050672602763584825122696037847049065975716617314673402024002774098691599479658237988815550748177435582504684094968196797585740933676543736831563915738034397653540068784542553731918842961248512924197750771909914750836561886425679973983664317538096454850562837828442098423994794038848743297610358691290503442268639377349930653968082282715387237899934733686154982739455426759709849676254048188117933570473598156314728739846001958884906760718783632403483824547573097242837021063405892637016916627881241381291872398475496744619331427582235384188974961696839059310071416816571696778426735853542037733708724522646608986472142396725070440626096584709601201460342822377235689134431953268811126941246284192041253323151125301188918805418433684716613728126541833230388100077199155677469152305417629787845867829053962003701442066198216898860673293924280785845181300169563449549735284685181776720426931320873148993039363392640205791122233022157580439538038697468184637117687772798528393755110104470855803904096537975810231941431754790211964067270992727189827225191971813175324132841684513766936973013836660318975794130244357675871678582819946349056374138957602516554321155097303795775476593984583411499558626732018330214323791744583049029020316233498725546105521990823596788439931447811203402948407978793974121336645810764951787101774518825143003147329786717865424734917237051719333458008753792860957444387968453483989767959345357171761684894999920127143239394545542546269343366669533591396389411214158335271759256655897565207808537890780954775364791186291876031224541599180216198654552008991815595124706905130255051085122560612164047963257412270336740872681125661613010086852505497417306663641210221065516636103128350660645600499532012392781039233215787910867309146565909072131214936853500085248953759883133290409202455245163430374556619982802948834965509748486108295334165208081294585243394022411209489815224652387450698012458550364243107574411530213132389221696875108610877195911062609951577054561872631242985524270219052714595478478392277053838183612272465579860732257300206927849959367925628355704993017932739463777737928109539203177481149321802133214246151711638328229695707890638653842901609091463801939754505572388225463642836736204681889000039741467568685631644145337429524959030664717623514931002743406226650758349244996023219924130166825100605298931855049529981284696033460196648820834478272508296989118373484224238148171358509090567830985571135287761091742853689377160293894439595247324042685294678998882929739947992220670003709739007524384552051861982378494775628731909841024277905908662539646103874523254059775581869546092503087046653852143686844795758771101617406382899243957503599149962720244611007903096746425675421956843110546014813472643740075854136880894101842637691427283401362940103185728207981843202156562954876897291968501777429569688508065294590503635486789677914857301442176684588024763547172486137418112531005646889510511003003744060585527478303152184573372641917791363009261697069845220558442977195998156386395685662727378096641784602796584812856378100639143262685479541412579356417572473083738848005319521671309239481524892515407231795324817538654262445064970995175536284943929258317468164983217079013306635396945224553633081462364892795487674151333101308563142805401349401904195921955041181345790517230049680627172057653071822823730985298203351093828614311897586959933956192841387449380352649907530360742281815535867992365182359028441628262509226242971476562419608647101069864397327866348000556824633650832701663351328001036630343413797700680229701574916063508904417933255506621949589067545310750726259146261845171559071257683380331844854399306350372301797241841032080012788010491636971016280036765993883311864086691553381165163606332133378013681401130569323512276489183515325592402135337628626674466142054102947395280502063712767410419528078859936032150728364878668033996477996858897556437216293521067358988159175791150209391692245356134707292831884203319190559854628803257432814424990323466126574446335156497756787951839072849689947003800927396374199231243055038471997196082657032020764702902628151057421063152462604420105800322008193434322256654721234527944541384925985767218451913347261685637608234906959335426053568428483878043442371110373590913044331613296169454853988810462064804319379042588076276807582198116457435316271790122518730935946748673703744425212292573985465711101642734718845397948452741884267385083345547765039278186798748855372470500152516618469285816689937395957556622486605489714677340290504418798015875177845240364129880066520512242736587885155860510442197405878554650324002336242539785454741835586004868868278196758906793459801651083842899069645014472224551892207404003525300510013662627704261030410572975082044116589617520490034968123279412599891728271762812785911585705265600877746128308870964807009507748765831843878226729565395230608455764458281105234705759476772350208344229623351998417329214196100011634360490249284328385222508988908231188034888666289306887977790560412023885907532445505404405730686062487336419012395860184311320545989517132454353313792952729409100101824136294404180982195040578732735404182618745038305010356657189446578161010551079494413300406999651257154989761859003048231116039483853582452263534883533101487613480637380560152085357525993865610837775521181473902749146538627248581666309812112413430466355774607310142713582340550747205860489859728772875742353183243953679783886136128649926814115945338432884730688991831377774058072114179083588997281426040797291010498023836289335255043012699409750155370446019145478260659509412419143494651505926693659818754284155369926789082859834853227676471135262913668622537646948826607758593671681930842010708802829061976417373089515702033626162688334673403353745487382434091079072043363393514188583673141392749421620933034432608443583838089458903658650020581287302200881295232073657125234428679629410276842144503822943379319936370109151881640046680403526641316225413946414939795002105795194434566583438134547983912008033939834199482539097374083550947357163442900564491455705572558307917631352098081693047471479725675734097003345138774112528817200637833078429598257358152176037789177889285473172318588773502745996854411712816155907439933277383114498254912975277942784927990666636888155880463018368536499473036375540256632533004826820928579363909496355558537027111001134222065375028216732975256142906822595591714804069737734394399940750462829763278262722807437113652744298891260837523666427064505526030061790810180075105970624489649064076417621182514888296940789616555275862065698040508964154181063825983689689371920835684275000953187941266837107596149242122964135036217237567978740667107877802786869425513633870609052794531736894927157114096627496038797593685679136194830791730130183445330127664361696650789536368775823743556319394753507351486576782442699910491552274730330008812211490633426839888299810003870925262255486608280400746010479043527660520915058559538590313053182416906932135504445195297110065688450742913607397499872751303947266136775320456584530795850560169365883438149089893739503067238209714492898571219628967259997870399175095372094588885915034211848096110688060198661888541748122338658451388243197579049815480818465372281530479467167185499449279549283078813441328857765119399663577226380841935407601711095647759758450297970170431637851810249342928499143382616073681079301420220513724466687780655572624887908650117677502211193667600108585266284175584788258032260743194297394233512230029682464255441843528139116513350318873507130527404409324611969832938165480669772838892842472168810324973540164152459002788139552040893687248153442351011725135891408085982524169337151555792683733003707396574858142854414928516001061232834681880723246299073799938860066092645000120824248446127253587087630155903386497656404560323544928199191049968900599193751135171235684588817408917223739867494370725586033765780911344188141973534229917722505899330412759125324065398791095036220650604255996380921971750754431371179928515520634894033057768743525392800677406613350374286565226614562300528467970832383326905266785635583667061890317659827684222351258101984478602281028975877976723670387722207220595304982966758483185305708730961135759820700550140566427749850828773246250676932165838969097073730576888419524914093188819625728617024180550827783388270946591464088178399439762999292599840318324456402507795148164852201938240087290540188934091966436401019243123231299473159793208667233912739935213667856123988120095972865482342374325202131221166570828486562809206267747945022471102601589893067445383520923866166191725897602563451271136601492040176030448578415551507487986041872737821507831810532825445212831805454225672540912950182948551885812649994403224248660898723450525637544948499532939748000734728732212590726748634354231088943570016529017107621168426665550804986188701116650709935096015462049050257582533949683510856688470816518132000411224364739615465471615954816482104282810379445973851984604627313710830642196382873646483204420837807841774093842082753154123146287155114090295238705802843760829030510687518322310869484702716079213786263234848665591161533787557975836655991670536659192162352882602720497340102421669249799342701138059186171425109774421694799013745267612208625183395695150828493985559426448539320635634228943944897406988373540268264999814022710968753069758892983082485974340440149259746043463652577171255276951099023233804964439645188706610390318161775458020715650582230477063482591387110720212389159498821468051523672286446617113059421516907216773009693633581870916956425401180881406355539012832524027333283400338715364273524532229785110911761113345811735421420809617800769656219544490170977571361838894660307702144216338338682142903001761448413334717896292819610490231849234694476530245665406456558069134881438497810302344949234220075738248220363008621189718248289714334775933747645104970710125031955434557066033982514662965262095725252198927151777916773794678627565742410461488072340703283577990108890353898767910318273559217579603892228371426341860067343547778031127787785939312655816079620875666539188526202003184640080483107763604267616029383039050472762882675343713923180499958126708232896496968616673295622661118530338320581871299777932048027270153015975682050147270111708009170839817691303936585087693304387487129370359403786872181537166668033041195570392439323651235628102216144572023979465269025476669216464278335210745528075019897032266912703687712786412117018460758907786809437103317148373770949554063910192630493380701099336977713363210430591723917294187783248652353492150831789327081656005469518371257274906688377954639587370754353956943847007414903749333883537351868870833830945394532603022568573137415828317663610296503352211972706727707991802775509885546745624474422650382093105603578640078991863022903023684127718280463516704276303362581985930523203645481542747342885140636642325374005026972377662228173312363398300050050072028799853144446424243772271983233299715700576598687956795478785706199163741953053751449673673580212344845449890519955598557039735017339195234604057078147750588876637757847661636094913465982640521203164112061819775162125289668346211259192405386670758231686441966545094224338120164085276005883781016169890733664691265901059131331201951307794336293711002774310520966505179482644764281032383862153733250808834597836917863288144991733322917337443229621805059768642194368234316511149742045357217450546291868269885063335677907373130130081433211117207715561647116932110955580120579059062362123930759576096890611697706933399027138747215092778181136323623069950479054268821637594386777263577594486117460318124629862439469234415802990142105273081719466710485260290348754428780610824750347937091862515012759332117915249155425461591740638926843983946245092452321239236052654626906563904014891557148081248637411428419862447210505705389599543481796554721548160209678203647351756710286499828712336457797452807680981496063314259516485210098249704978163884984465587617046044987600784964703099792922373022733698071596188456216167421017583909788431890026216151246095804963880218754436939097624904628887766140609973538959403037323881453229767688854410132832247232269492332479847501422100152717754205865686445101372318503301699615290533248212227380558232364621458657457814142173849211993806335936589974985361585155182406840796991821443649129362816527492808084080451712683382109328447255016658460798380692426343358031590762153900110131106581876371555744627369946697788633047982780697107850692941777251231921260380803110354651915961741175001670629993427193638352236101899006117529496218407585507648476727880758757676609444901108083764508714619248197868083004458971431020771582184848723275945578067489882367629297701318771741237290143902998142320142344695734838200358677650970851658370381106886924054234080524721130687334886765395562889571389705312806193681997252438343241510026097232140911879455168897749418699381960964994628730532695868755244606887603838076200399005359611800192302295249070790454197105034136991400863328245479591080841464562853163265878775669136832376226863697053551970565629168888422579479450676714074462277403730017926096237966006625417034630311722089085714853054483336511413678318311887064061806068614568110840625123954982028558624712163337130399551651699784126672101644639007978967679682525293431562269878126096415728672973149988674458645421380501723911946870407737613031024885145358971898722478897900332030152588430763225941745854442816155685496964226129541900303905278492243429790009922066359512223055868784024847809915354712007757753558824122311929155275522614145594193770619049477565489419136202070889441123159218803373363558866321581614005813701949390030142602237766592061698949750950194070364315268548564160473925333819515970945694626310791778536803213468988534275180144411190716327434976736415938440607449191927621552416059215750305795054730506740095343718828227601338619704337409916593376984661264429139351616540402961006958472295701386378310753290357251687880529624105295635677086334832253497704090038654196428170511983857476723539804494271314298231449737712172325269068318030873921559781526780241666140746901454993159722544107578018691740875332447974434393058864452863872556803892419130006895555870475272103482852934224775497310929157129843353179137640972764141432975537170818841615108564832977338755239158478634607491452612606870524252231361452524325302909377013436344154866062316894818926530472125805502273660135607132806618574594876203310228155810449713144476290053340399100879352170771445021161145592016561863227706007610515690832793648779150462405429829612441773738207583090702406186971147789074669272104193143475494645498715604400929973287323745537138963202544203713651897718691732703414749542533664855163487275562720433472577305458875693533661227936297933318646219859131199030685376219677668693342098215435506824436195163941060591266619696769496352925536149143320110267043358494055735866752203577352623726102547062431772947793767889559295890948100552943615512609424124633732806858242335474617508708139748435857509147286997937367958132872978883849749072713461030550903597958231129854694854322067070300804593422476009951573959080341825323641481054779599553058382495297961210224229048222667688282164810117183591016092599016423903257080602637394749155426573678688972158878420008367062572015487601750834443208776835592643627055899313685579831002986840700931256377916567433872569062259991802447957833597925819403541625014164320955123495574635072468573857678112079414478977210770756246060670795701976668981371962272036935851786024424450073437316731158477792710678042458425576804600957210225054912073398379874367927910395026084142764697799932057029883571330021663028230374612992734859368082436207251454334673691828352047046723462986350492081189139785765329144974558603618176407240890399030592373932712207950735853154723261867555336877993232418510899389831749625585197791272097125656333982261010855780494763187121908164239235347382439692195100639496475458850004746446536919971654454780029839353522726423374492557638579620390049686915437067623635741138392491904421747091921126784620848134793573081308615560178095469803834465999193193907179227994158636275195252045289866600247136410539524004143254956251747082720650627824036998633641213567355334738890296767929286823773123969065580861919978119790030584044203209940586387772914393099889157416463227259437978407515346749363647984785857793326458459666743889955565311668816805797391558062996945276582200403309824245868472395643927971179446305505297172121896516744609246146585366137979552015522074813495603553046432466968033518189472048335960694418425642350710148122176059152726308822239777656803142139164046201338914343973755734889852938110154750106318730010066333805190590200136067648293461255600083013187424657762166631760609782001322744209319793473583262967035479595574940007700049826825254631164901830935598375923039073603973263590749446065051024472430981090035159961567057233718471320874670642964879777347551556202840628587327758275923349839449449865061943837814263061224449860945896623112336968466479237305553572052574455710762220339411029363573564014002211214589691456134556520160900979802029898195184298959581867356270029324810088985794951546606394894474821292072901841161862663715540991561872420174408940719377781716561137178967774343224934214950614243661902664374583359818383571395595677914832252638545914528967822957376690330514583817652766134891069096254946386144454161307499769250834394035994026981313164682326644383167010688378637718396478037421907591510460944478593098704434612631761842950380344006787865582678210876902645704564892551802553043214540814136197396854109892346790703455852708395357158521827697655926775318040635379114525190314369983665156870717952371717926308911240850544964989438218466553699280594656771016237988068933548906584876523216917494606890985159518139395318672788780852535628513658247913309588509418831021575440231414033514559471352919107017808467695267171513063344535829851791281400438835203695803575527413614982932256871224660461880279493922662549815001385215973045364954668348659224485746085577762757282112610597298627305856383167120262774454650456265817638311181401571493431961236283092860371779847941853718451451038661273606322138619257507567266265363259236298667029182497464280388316627758482522116831828645209979968151716141499918425964618985229793300965428487696543555733858764324286506356395647429380646060277840396250162733996521436657864090321767184140237828060504988309405507437304810231742637403538782060189541877200381861977775203188223343830034844868617474721521752108571881243887021285122544278075993116231036353865404338529186271537820154941618996899515984849582136746843536965864942580048914133433716067326016897009397656683185221849787140357387154063918669318110559581701838070615883933365728413423188593584086088640432714811556486198592711088892477741785858138554201545887333987499649652941451238490600601023100636186155986660191401025437209816194189091020265952666430964384444445708147105001729346591167193156604721453182693869486846156881095461018878901121912263678964846372097772683982050793518730038280767877669551935513047221404213126051512540319729791561578498964166087971793785495203284327500835944203049672663182962490030754968681467462062906903458730466919857114385251539082743677289538551659506136590689114513315663694938802108190318575071794488146571055272699676584781749287440858381460664003864599863916996947854233157851242842926129581969252338428955624087134286496547343369361838393643384979250120081976676029781112778286469359468600892068175597894694519230192452494091117511819061769614196131939538493699350759241779424948207376265699945411828260744950231871053218006938072637522468675322703806784433923627930251275719665143867200638564522800383224009189393150786712816449973204186292910607655224907768408894048708185928926239237497137713710060781633778830808062644504032862424515019194160396880322069173753724372829815956937420518474242512515490314610219643663042759282888196984356109651703828648955421031012239642762811148658236389360194272366845346552022014531194760338234177198367761229697608265200021083805826215869954200263524418860477678926866971397569915381599375435548382018073310231404297652688561325564982009975460782259281071988896046900765840638946739604374968020024367372781439839864635446143460271998869494469041437725813523343371671430944443104283977934761945719999186422487115678064533383111362847133672441168610598009027299652771664701478095104643158145633235558975926320927904077362462076101822262394102586506667527068394783977916328291706357425046722964024831471842583569721954656162379407403939335507945570617911707605423093861466397419621059329713390593088550069146349952105246392903905233060886159987933821447889727940133252246613602016806695175880243900824226978598447865144795240363038925480534727743952241331956177510927095725963961610520172746857000652547492277114664833412199894997922824063074247335021411885151031153662051616921660104340185117517662280851805374543604806259255659065549799625696508730003016855724260870565576800085076612271851668375008404688902383753521626764593304960309202105997892685303040585397634219487046726191924759465513970211995134578559170983540843605477517170241266302163634702069982564928660665550745354436584091673297934008236546283406577394585650991460219822803858540846129877673061816288222597327885795525250259325556955110825915541307155511736693015674253095365344127348852118670899884169818440798567912967215531812377819215066790983389152110608249444524076308036554746093618493555587760910080701919412484646395554246850955198456153194154754620910848927450744125839518566647080104720725609383104150064716536034496133910160469579053916727244494946633875184724192840791330498449212569350893100836307587796872076965141494772340400525123779170085272114327425362815692980669155473814330734967629862219171356629290289386996037926098685451943643661606680050358079102921838789636790876196483799044523459170939636218969095756843330313927192629871860300659283671946240482852704297774414938300586479243300086032264619771336468992643237710048701036068600022584391146995676842707313719702474055617578905977212300966607671473036538387915116448485598963574560908538720058576190572853627857125058034005024415834052482314460204351562290182428806466110965600384552724912769977868678931260081759500567648058182603064846571418940290472860495440956234833923183594627638051104700644416690011360850236221568103442971048982380599728498609477286392015208492306627708587482205767269687215570885700589667856244096431277817441019511500664170373205431620840247143266672891278219532485656144934103710565549660098587188756424951339116240269458610890198788409121610493948631572678574021477458090672460795545160184846086387793875773619572906929798224475187195118792160397663616063842745048925004669241272963552830775092143252446411107657940410953972404646759935764430422287634275480208014426560217541082574128667029157550782978419961263222126284468426102388461538688631368192014616839596349854244414907142172666511545244638348947549545974597572845838780216601361640203591659175614823663661699019266782119423394895330092430285426893145143611291724417630656164497110775915852511595902159239160310476212842548115872144923344970583316465710245659541633812795754303974738488276623600850706090557488559089978928903154292396378746160374250000273796179718243581089226441527607474293271338861816125376465136753878637722260061131094781711112567446222516310565392581155259451983346632571946637885489715336513008764805474493428346988840657952721766632920310275594767257243647845468603982578874345597873881969067640320101332367263767661419462028793125675720269182758134504647943726286777237544383359467898235559601512956278721660596521337090041365204780123967271859103051547786786951804815648910808906845727778463801216078840976971693847265391135607265395845850067305214912231268554637707132508169337805727387225015829164148452539494635084547162653976380417837009534570065090265023048650699135569889466749662308278688314208388105724120197629869970850064579934096263106923146835122900522084004198376582054506361185783380377032541437725031663101460415598969982294498534882357267749846905859561483793676601532107958166536934055777484939340668198206800275643121373988841095324057661540914050546580525271727382125104957002564953651079615012808036767518046598122373116131919271630933157562716472894679678858466316067849901369472656157228902951043636999585266271424803212473709701191387290273071764058989512080858581586757374830272309910132425599251362440586408000147168869469306987082850088993949519052761150191981800404948033099820046524696101489703854853982908290748589001252923556867904909014964078905654925538974234827020769129713696440470687678063491910451766688630738835109515191688303686963658384803694215783668291560430793578433809869398652451684459632738469499971263629062172478658608410708478517083707482343210133983054195459650182085927857059038186116578226768169578273797219192226700565368107274948917833646146934446660066889463693158725071564254963951166181064327610535025315753132710641425203887451028552520389092943030471007166306175896539795259230658729189213118306749246162565571439152532709837222858508673500570501239693804436571891415228394677109193063160094167262014111004493644186651945845732753362942103469823911363677679102447904843025080735058841854155444216068476376023169424856782669706389820359898369532856434467501047977602127006595115274703575241598095779286425554494337136011114740605274909940083331150336096911775336736942233263776126989639285150825105856583331116795139120521906721497676867006430145530324883282772366169380455914264130164953059344145791840985209417400180720831680268127531942227245043224713268582305145148362426572252599117420387889820300435431292487406758846157013219293118974982357879188123243030709528064946715058084810999642428327028142781194214148602316472648679484038449250132609824157443854259287300359649398213285836188536364833091059913040531830575118463327620436459789534509895221576202738342948920173683775196671171191253485280149666150303013951551771358541317632897449806766716946827710672973311017004497705537962489499101490028851044511857182835976940600442799685302604818560116406271237179635877065302145454278870540018924432505934299022335856079672404061285612217617097227861893717204813445433108789569631266524652201000576814104042033738721481015000877766392959800025761140750777940109362536064630881079792831656402825524804180236257456959716812436486610080565836659558881709344567917503413108057025250195384048024203287514633380425136468421501338492489145103151732920334224649575042515238089239252893452877124972739733266488555400335426972754072917707168767398707218244829670625882601937690244723833351013799216472907976073445356037258067390538340855796966324937889151519409413672737562170216125266836978137192178911703304069248237672989541054060132829390552198029470275367502683120247886955528932574034451551588494008252618330272235795122240634762656993306697535763273315208755382917071955001257820520472579401582340055010972843428885248103420080278682561511355335563854405124640831399941283636739482367281498195755953169571417066372778460671154437664449335529761621555734134979785801801338801076597375333409974440914026798798541783944639446017940267758447050067657073728234069707883387156098894898448804479129747964783635570175402392440581026532424167552311856613241986362382190754511681288776887233353898319036475342745185660256791489754668071548134758948021640907272118959908636702211806794469804119123211758997802233564324743090443579695573231302785490894771537606332415605845340272920572709883767668284464360478195130031718091102775849190956079506842499499079348613547928871025209376152606955751151826800158094041880380950594471911002742184076224827708595019802143065654035245523526798949522354250707295090616264364488801974712397829225720694980408653334136878047796346858150123877274110739418199332030360280135777917835863054774252522198720924155501041353061403572222065227097899138016171407108123250811035369061691338672255940714541645400406993016563707265034058890516900459369039188159002938526472297376947181263522339154477709025091898169648395272690063101979503534535615332314209639016250568606208836461483791546374866867020998882659331667187889862343869276580814577348604907946538877586621693390613561742487558233488418179558774301899942402807271696607169908001065508655538133692442505960983152701196069261863694544056206673546764079458347039201241787707136471217421576696499329557674989888326036435811042842479537057420086680736458295633088564779197370242524867618823241896767993601099651899389822092995392457644942503220143988089772534332969503038228074965234884758638149934668542826458515430458435360107264216620579596289735767263487907957858517051170968715819162860707492453668996577316263934826519363332911996297619407425534440660003604686054381329733462116566363336621907996259109580062923885836946634810551374278336325986094870335511373834785104962699744736158948297374850351625697505976407306759836841941898784379458063351709467526483739970703685852465331719105992793115057109591296777757566710092823259981924734491246929757067915690254651640923378914085476239164380539650098291989371802939708435502637835507547925336761793813525672655494091568818797361032638876520711864873441498054670363295459117519034398509928888949064895235971018456235711061533717739876554437560325336939258044214926932347818175802060409700052151464070274658975322787387657850485399557320028446202389074308410476999215498427161205694357879482535029356993426287801163981621100996450497170302271270134661378421264050309277617597728528387825246711680025278426587428364741521558982729277045898439825442288298427926743234944771376966572762741077742521224144715213990265569614728873740602530223716135433494358423573831801000256993748208969863959970384571308755495586645456742190099736086032551832456230288432322383730429937232814139693396592033038673442100856364241595555796012276372126942110775127640538123804398128107333772677617247224031576449917678289028494981997515059966952576515613713483735788925565131736935638994575564909095957660250880875903038579989619064273314541819058603726457730017281986831805831157615174772179446327802814468493835066659149112901079399614292296368971289259888892804977222282478537482706984906242682173663601082953855093916488132114295426529214097146355339195168578256589666636776996744442651026721436049425358852337587576138778794940754533443495118210702016206229432639976113318353778665473120328368320821760987739420734303117320477751029736184844574936312453463792960110143628804714091546651397444899320035993166508042205524530255318614852959574761535817533862376843673318477348507515933360319403976478653006290049664835853788611803324007582768789345188351426645679775769392528082000823016018232709951410345263433482298971378527581974123874788344036583986288612718029663276771692463664081469407314177725935623416939265636456920817326497441666552346380745064805839897998533563929798267422091206049270087366840371031066304978900765137934329205455320521384343520928778098650520922144913125622326970430911976477502943439989177375895643458443969079534797208378586204960693151919390672202398373861051424328167412147005444245792124835886488614076557813367247565787565351418688373659682413424735358006062094922089960717540747779032281330500985835420076524900265524288175029893633348865424759487388056174121107034815642764533129629757284513369256601682079421677645032921857817513040325873980477956801150910122112191546661664609255815891374756334556358958743198406084899279347842077675132086707656924772509890407568423161361470842781703599369383451620765575406266035597856948938086088108418111999019389093198446598471630141060633610397581254055249854648904961204935762151370570709588882671272914693506900105553057530152710527621029689340294153078880680374112584860260403452430549928770848217270542084613794754666675454654762970564359188418724482812854907157969090909002193576168917264691394273809300263325427284081461155876649203349421475581309304730214828497543631329032342102962574433265385285108503085399397825087459275237374679509703085450303998654657764266152412700601204337386431667685614615119322913035032250375094610795442534012416030868238481455849122523362261770439945780673440054216344205972583064029917180707597961663900550465145652455285550122367300678368179018026592052805798693006881009969183459095925168219025416870824427377897128388972811175433730481299163779618825091608898064469078504132612993436044295579592519077420165270299378674141732890157092136921392374441891452284798377687184210382884744070756218469976879543340966664507707876754362925679769737025891239390139056915592526116678651719866177409212468365833154727672910157701880210175357421841097018609140801762358554273589971045134638635966449453422970552279255835781161116549703149652598518612230807305130402681238637086519743382462368405353716619690323992548518036486645753686401858933846588091781659861893053374794372058882097144715724085936464583600250002856097560461280140160059264881486613132470611672021025861345414094171992327434336758838907652583839337978670095239363917978940274286193522284583562406199825008412697767426350917083562181155307944124587737465289888965636044153655559560369412475740029733298010314647862708710094793746360218444828826899213193396222219450427121437805074135196778893532786789131345388216232385185835098926235305920457263521694163594313942895131703106810306804487182048237167791494387297035465371240862422024100084844177027695555343522768051793327829996189992652604776782121783088977959057652118532196753290588703808809497211267745150264239185316683290708334499691827596462402307739057182883984111704649234851544393284540164125669944423112565936128156305947742923925071792352456913655720122524696380297056775263046509863271247265183605827122032540973447940097761646258883509493000133639907792684073916995018805770626978504154754077957205094146276856820648300201832763547287476371985805634029952070020868190833203239492074316416664452100339478626287718747254093596916270589856888050622139228513839152918504902430764852601242750755076192339216924028692455810093481725123960060396089850536710791969939486885488397138963034544972519717714917218929212744015187740935439747013142966764708154260079805089883549023474177693517080662055410424919905477340395308986419345759780328343232917474608158234440932095001821439825191977270328837796121778065166871130560997960467617120748036648403816239575858975802132471373092635615180382835948686567252811357168799390862843102141206107262945656713386418525365835923789853311036984498250777270581604471906862110264280127415815303364153385151858274651015188563962499206505162477302388768537552476374402855535275888099744770270135126948169457889983843945884665478855610503882692777684441088806950725574544187438482474893715389595646915199226317830443419699511977816795565967746455279782451785669991408830733037072468972525136503845999840026597986416887196659279453833270510766848987720339385599469156584914943528097868226160107654501828391890192566211546666743378307470923305306266956293683797320746160326040345033319448638349888309270064466355604511753391354828917837302789510759604903758320938688287419112479104242881064221987620990936827681835866044569138447149011811792979344882657973332617402576369214259281740176932840132836514632071633388576742196678475051077717371251769808619909135361005215322886649918677442580674853004947656269444410113551984025675723545581067605229316530792155710120906960764986684226652419898504929420727460737396459265611991971649230422559059791084261752430581838022924676584049552577720601723223319394440125328352167986438390765776373646402515187074415198360701477544630126158161045289537399636583637148051341094899507839466610419521380191465416316626202375616309509142855944237978670379776499040508640232170263556237667140059584966440886563436029704552143711713042361604377097325650698078629877203572318079205886589599335561633512209181708285575947082747082785669663518919474388481367719603527731073841684989970066211725088066077159770070235256282722307702868584562820344185780803432282312085420955496335119373276624430448582403035898031050168196120811836591918254685069149729473021286609348999289083733615633507825817064563812960875994634993180827863210120168020400931489951021917177986413083169905301223088649274549170982906844923641891933236300896375975685371020635888306315591709616220541005534305288960047009781054191300727930902354674188078308242675139497593375077920782952734511943938441863103720620530379765281275006483241056464560034498063161214755564859780917211564561150936598620744835872215071352304534053528523378894690179328401490547450961117155615432884172721750329244691963046193927795535783861702143792976780767105702994754968948827514329166633083214412785094922376679368498722854904856816997830804385317697972363030315291907975639763822705118397166909180805428401661839748992526776090205853458469690838837803593398411697718046874970015321842055129016190344815545576569994339656934199337915600334048249140160939998456717839899787865730835488370388890887736345235603506225984662702435800907250712799154499416558045513255283128971965613113733099163729876233331864119773270987881051292354783627768760740365786904094147171906573380724546819085819328546955390664742522323139512257319274704607947887212498092048053882243449709461660345319871732144970649710776397217648570125225739367294324962743255098002338103521333767986040166294261526620447244365698885337735380514044848448326649239625629761322405485590703000504240680445437028191104079258438295744341378441232042778201614470826993812841723568518756157142430078698328652490664970738372451843097180917660652499257647887118496897065454187356148868872440439667632292497205074634400882947881112389598602656048156069217320643832111523369914961475738620652168369212721936702956233549668625831587295517477588595267308764144748329661658337611987948293047761663624226565859043886206518374896200326570576836434012893556601590910952053493866874058541926021948635226918359731935330339436219434514173243861678984938680662338872479668661446167077141668413472125438539319993405428918944050737694189527533107323122988801357697657099448108645508683566874195116698287180211924051615211845321704299527857374190595499908558825443856841436145344745752528579220077971511971840973710421142278442950712176678806803417781608187731055644965522869100760195590362087322722529903400848605970230708481567962830384432130508669072593826671171630862216755719650954229355054754423178017853455481504426780245497936082810567216264951749839532581980509260339764812026630302267725761230410441253722529287504498361228958321285567486895404416901820500960712855356830956436219695792415440401680452781431815074618484691794305256016043362642742507905859308398724988118467568481513169555087523564808383678779743486943650859704603779065708229143694359560468103902751393586385985068027077504881873369547814137196711653663297341276371270631520939172694127830857753818317590077453760064804423194481748260547152313943335209287371084520498007531258680242178661009818958710130188522307130503320205841397352861598674071027791926465028993740772418713412034215553893938242835094884412971668924226081457535543854421771519856577399245933137068884121565246235814689825437411500961961376071648402362341828291965041634628299724163980631033462567457011655623189323091789076758832140377033466901556864074729870575480434589398169406935151309725569588549519949058672374995988341716468600580999915512134055876178575099141393154189156349390179676038069058576329396550111600510783321721210811126636866211040421975101931814592928211242801582005332263187327502653920161931226438871750160029629195453462739478391815737329225252203530604998515395774763400955580662709387301964876049354513331349498955115221666819273265809087019353761390007944762904566660093259739490230385070598522051921307884930622395141328824628545481140543248236013002565862364653526649068261695276906092483580047439101233315584687316325557345397516553736502479303957969970453631463994144144490126419153332925663413827666897485742084059813217039068821758064900253145837166456679244819993804213862102038003635237132763817932043388557605538335151003538799816856968927882126445080040483005568600397990309382357299445267712299152421162343226281716389621004945482223434849275579244215954231583831006174546197565943819167194280028077633780359136331178567831168441228813930574714217736895123015235052133012156889873915066609192326814109590020892376544794480121065820992567262311965833155699208012789978527874414417919823889407939310148825247218575342153555374187490778461528892299016299487813335514890538612995134365233133551091359145318226664807573182734791995500856346336388271257197721425514840680411323461414430712182052429115513732881763227092752121528065254365139053951535719306960403871352061245128389111491217526849441890237244303031442379044407687496816639842041021385282061857192114388469485201410576155761904335758109355751706835464754384495648980831163194792767011379427990896305033970995963617481481119447194058445621624212874799099404091132320926576085865482202837063925107800007665130781467669230637911630159084528214552688510284478174717407435312886075144091213505856036716519714171072310974823881623462738315549521201290641284566873075778159928675055579540801359265113334215302862468577562914642268529108824681420531527983258196790800068120189159403567781896887619913559777090932524524125285836601899804216974258475464044510676601088250717779988034121937428706350969071088822813227729953582496804055967461151746434167422938626566411164611596413501208395314248794961503214614150765600859533906505700556831425908828870150384857120900435226227367538500962643455667396554388088867101992206071329423811232346259279297524682269670482047977741176783479378346204943179467948712639793528917865397409265048786285982631837488620916170470224341665501456977609209533417423942201056990333735405818253849914084579045506398942536579664942614231689593601416792887633766878065691758332765467959044282182628382490348082288264440129931413505681796001362645771343959541458126633014649861711553836610271117293125086068044022329241267045188358104668347034137750619223109183385933593990258677731383451087307541562277811897127549535597301263300168103705771201723664646328374399435007492507167200344078550691137131378353936872720932585041285634812210095110880323004948381096734578100097876906538478884757190978097386265827420194030113728594547753211971085923266406328890107034000551070982358942655227217838142680232912144982630074942997902237250003700514745423040464544867707836074973078681798512601390780406380268837991813273430047313024046667961979398877776731414508018966796642824925911207952526905284939196573125835059008045115719054300405959586279413178587975234012494181511198445225570701228733341733636682180129149792285905112223377405652461630422133646945039044770969600332254564673111951907237190860801553621021503415020246635378938776015627674870728979273991765136197064861929738230624041414939170015068402794221310504625092859260495215798336329414932446396094787888802157722849064302160028734761911519672810118740906855687776854097646899334225520062898401015406329284502363169998643388193717122276368633478869098972347673575884589528558179395662125972098408244008707199718758915618650525353863106534609005873715897593288813424635596397344044776121937656218843965464980155915249840478914394421159326353306496866010656090216834897202099153427318603119385695923111564434405287337317182285768268771275724081010728935756123230922371148062984652527663191951503185043760160237690750322759586881857231579562342154030173898799441218971621432184635714051462367938903108228311625226285283474215771710038300549513098295469130183636423903805219339372610466518426857674351989644819086076995534214086623047607460902428506322326621138713764978527752199111144496316557057491142249680965173058495045759447070272986812072093112753872774347969416619460496008670965957800918179856200106622834626450616444559505443207557566188786185113194819885153491383196974194747520439882928510134317615180046422175720215684891853120604857332817380997494892781334415103232510366380132387877150080740324857855269748786540372738359653855425845982432427850032865535658342316639714642325206937399556753879732650542192420205904455830790888945286785902952629828423882154542720859178769666517398012852224730970677886688791936286147240098428713826269485160986290070949538265197870858107148764083449297050563314957036778810704133820848975029040211376159695005289362255768221867053158303078988124219938004235163691444777855903740082012662354729810791212163747647380924306517435512487360313685791338380136490882395212352896062273274297396304686233330636011755916360794966673918463861044736946406843566287851768107954008395464808225888874666967183746104366685341809197348680915350123584717136311270361701305412951087085674194134755809606019865662673050032307788738526402513666178502602461527305812517177385188656105992998702896046079767788636306519457364470326491440470066767181701778897389997942871298250228060153492522027738394608670788732164366359046362261277892327024832581593224772393017366893832090939137720842621026337678085984121013829276301913212198415451935127525107129423360939424784077727009573771417695545965062211944267043989937407582386117560619290894823432980815153920922911893762218035314964645129866662025885655881683534043741485553663478625573496316324943768824730982056761765307199340125494030949786626896234607089422657612654892487996207491989437027205323795038763516798347511174454791640018999526011505667972564754543191185621563826837996971639642714310853158862818476165217011128725932395540119894083242713478814639680214533425403469706686750910028038203901828844094751849738169335972744110198906807129923577249037341913809189278100658479848067732778974984494414406362961975262515193655412958491387496060062848931326962553053040118271302270621431065507143716108310800456411548674592258212459123249995571666419418427559283312177922207633475339544971953607707973513333039539188818049908826863981310752678781733857121455643204980567130783881109014922419314966461919764422462292634046728040966219971440162568045709887536176285250295639765240542789542327639274232680375268021969365280482467092459053338063446908242411384662813850394940327253086424154843719592227265858815805865511474156973325288183581792115256366936237782751313501669399441204498355851624951296660546860710567202143590927519545437814964954705916780849576547962707377894654285130708525163249518759301313650581973910846546401051749887883234666786640589583321645987011122429636923784252787034760548113084035070224959622062152616384842489701293355755458265751544196431607027565334218814813910412516179601289463416207553828152828691602784890178569397618091934972414802403179759585306506023088170047731365339904769139086330948931692028811250070260100772393141597102467163443500804367577987572309032443427951996798751883883112629333997761992470047648404996563623302366522554196595300443628125744535427053069375374336746137666133036552516381487367064468554179949384241069356004011305242220361072660670393237320503598468292587741252160152758613878980214227615738641077985024286097766131452258345438983136662481522392122135039935907064039519074089918218962467425905820136567181452143149607184535185084998738576112646502431718717689429633752524416276966974114945541911353157838358696565593957341125591863349177972528587094945872456677624559168874600114364000514530800864869845259676807391875415556690962431841517629729820338320787629790070468696428746007286051833293604010954621823516544992080579223592861193953539629768820879742268921100297428947490849123802965148666911130190323111919600884962947520371442395911543812780973518918395540025866685460990664764321757528974379068574277300627359899522139027217350252465936761132239948684978529103113633437494897642139705100943609334457149835961898731096908119142970269331539361009540645583436335257555676385985185597873024578546967838381000370618274520005965487755542547545461298188074820376599085242759596037586619994515302622882359606812730645769929570384249449503950782076281887589047586529333832857153222010540696941454044184906581648928916916375027996141290353722538780720373355341303153134094737768759699760150505881259009198875115364260396473381631180347165513295945311308417640387712744572106011869482408722312651785964199909803706811156063129384916197521180329738805067665797671588337050421868413542069587105193029855597312899772612098781253839476683372048082673004475460016637171091019225367518843355321366098445091282337097368322468726104172535100097387870747034169398307229277460794007752886302428038372684056963747707496948557429794577690400330590002561693360659393857551175951521992667383601530909080020670853046440901759512397127265853480272235345339989487950507427308484151945325277910941046501782020788504937095679679564869458120797363679111001149448905890342070598507020459021378834472578679009918862115097827686949318393971156518683387978342883817187548892761317203874981798016573122920259706031966000607693952392932908595149677248431295535494058178400999066411322771187729581891576709589715746322755608526043707626173502625479405100168514776241495227915358610716699265307760977170715386540119331952927496318091681586675214539606858694176354775211550853373718845234812287574351330369235307584383497778052956667961205783588862277864955123516951750054270470924071987517863952097708806852816407204669162117135424270658590235618470637276074788242450541027604492349473139794224842128185671329779655585001979510851997933634337562263211914793707182919894266205092250112342732784847062067476194531750992441073869029678318192286368823231266016476710849479818653174436078475969684556201716072615590643014644270920473986729128013847569496960236377294775500137994106791042990278460295289088903914070817860579470393662567407240853220082375343607768255034467488091053667032284102455327177757309747320004629791368268521729618673256882739119847766766009832751466653640017943793892169782243479563122332142001880757917990197370509041693769844403394603587492535599691871793168225559084843864788882464254759477615647360632191335715001388203762359584782514228614895105998551778653034647471513481541522336705669839270210325827108215275197442766202046617197789028023105350753406792615447165266290053898357269725396986401591521886974283681553108154889598848424158785294553637536683252920584039981394611481860691550858523223276522311402901110340277632891144572203622871863291855801919499710732012855183832889356914450974664072560882206848357673239628598178896494483006412897174507675330153412444655730324369582025168731470091206565822745448792637065513424583285118932144324553735870874551721819303523039516896807481188480180532068936115807621315680624541464265396783938880271086822789532425368458463685062924979687368517313897852206635465093071342779161726672886169165903920205713540265878347917588411770656368831152379467701801389848821329344309174413936556585162585211043996724704960935798920997641177491264794667609763839293606927138013898899699338782843492995228751148647002536786671032268149700805099131694090926900975665645321488192591147066294980264291317267919097709404864776102914301190649598670202465812133109051830274610044976290074611981153922415053219485063304287166628952921651676399759288246103026993621147569928766554867204220755181043902505168424471095943365931930249311242253772229130743715150680985013162901900214851409645115385932073348954065371493986602678815030301302524579246312621693878306363601251709729257920077569022038033553253862080970553428850115088428492292891894722708476140254938131410267703439969953836113428896294638890081395691953588598445460687131090921818749762326220803992841318474638731569562176332654823007394102534659265647712261306689996738576246954334989087042032349986464114436885211238395483893936194914972389484901734837048500389892870344115109047057158356477889680645120588916552770429487466224558807539918471683856043740926712982910896823310256480751398808072997808003698285738721336597547496158642680424823512571299220185434360346732677832608808648232996901189091593954780116985539441830391239996479157977340983507627782823305083755299341367957245030820715622176215981309688056892318529205599965022103783944119946827852973411784670527798106783616313562581901295313948728174254101792185209080752627844687435081600887235218789554162752868327716921855171229658543541341214458340004335937969243313553002531016885836079938497673044096082244041225850879744133685038880286145066267368395674069935823175698485597487060592163138133296771222824229585080374527931970094206425564588953867246194820668355220409833739872518774792001960268845869622816087063662756321474160035202661424612275781539185499392004848367344408400127320960274703218346919714259729825801786512073834228882728659003087848519574068683014749502499179620962070838991513835109968125575128365150023411190257878122058105921120596993542870744355180551889132015471362381393252394021541407130870550063943290733672016673824952270748838950322729308092164523343921142163282264943141247206183868071709286655755384431623761949564724533932498533510433570582082726792345323449472679938118425820029503253721504920936188373724038356194576652264511406186224546886541401526162652187519913384005547068277519710937790065518133751049118114113918351871793691567797557633057803989122101328547674170543736036563895908519812376369426028407886818446241444052642129446054586961334020780233207553220279160042708023855919555114423614310369197204344711571958376088708377589407411660664579433084957901627982630809028965141882438042619328503885271440880171147867061996898147634049450629478282161556269795705476731385715175648343087937957975742043400807872576351942299419326745946184403659994515969602404739539541113671629487990760723378837872144521561545530306740744578800111510331822946706018198185442205134619572703393410637212331829615800707221573512034945169506557198894576439955993721868038799516551037496870390620016193660149286233407267674778593984468513286438449561896576953651168296214653986856411916630098567141179907171624551640159937910994057183619994357160711362095012731688176190893850180409654734242964213893425742612617315963969556341232904044924732624198503055285249052670922745212877308744892851400426489955418851431298904071902692620716618156220935482265513918800049794814193746861432357608855686945886892823990867124111447775501182077046176602490319470337606767324023985944629728217965567065154578724630157567174939029439007016366272497174442228522625769515774981549568323335366850997305983796543191731171658701384484213394615061675484789677634553039177027788677440117130561399446483879244530578996548874524471240033422699880268591634123819662382606452202000953656662560324760818971619904720329267032551604482918432402299755099820611327212100691246909142313147149556429392811877962212786199587076329005231885447562982957188804917162601867479862125873005336770831319998928180317290057659001414385578957027874525856359955560929788182204166812296160800561149754075929785557334035115542621827891860661616295196533081858773717446423254012903949064042541466425629911174742659993875375452793579862230334537401868797164290324017846817772648578210207490723530970435866058970930774969406215013919316522918020326799735471773208445777672388670483598585236261470530272454503730556373142650125366173767587156460872464827999412969990119339971935104999487509741021565906675078474610923174591052503163722818040571285908108859217429443625628934915737050223030974495457002478494343022659687331924403004068802425910155224655830449202237078983089392872917405705560891709307435426670428099051647429479627522677036740442719275646521802322023055644331810826103391586500945468081248732999319402692794488220090875333344428809877840125871580663145859716355770991947626854530440710603343490760412649677876674373340052358317973914814953310150134719206707172430745902725729285776556087642927631447982086809625714634443693948911863001848212619767060806085739243535587958799598328501568547550631826082171160172307248012322517484447514703912673656558364111562162106782585198970650444656635890294993136655943145019946330284074254318130099545479756588803454635459211204520619446401516440109447616972393084979398992197569710638563484897984715909165701935975691886701284264129437355662634072796405891302359355927358379672990945688902728329923478263462795498240920846573958127927485274623761689083612372629266486779411637118451550041728686491676361285693311411479273843166724748226377247222756184264298120794454439412161495263878229934442365900801506217697326217545358089822442524670952465683740159936173286867781253478529299802191484107917677357308429503485113780563558287677160160630669997291720936598054597692668095937166136919963896893910199130968191964778588588009731422678857065745503731569717527238468211862945274882655369626890649905928164325218034860594060202496836692288305544697204301901805299283554350788503947992438056219247214536087798142224467220073810283481492553839271258708155237707519782558177582073142398176784201564411206850538772879827032817329256041597245378722107234051574676360629263112542055520518122076115361777573494293194981578934780047244610887542324888409582189901972854919515403108852531505273242405830295291947186583193838849939561718702583537537264728160819920689497153522588750379875471682030309432531357854677086697751999473739086465302797869119167283878177924375464091353478334628739945863748470542972081012342762454923989192358592027038059959185964936575493620308015225480877898041610886681301921575580296621971504104163521171002063208242109144850618963543900768486668995460704517378541719067561542171189660240431840686970690206284245554261968946375924228794347687910441346968115607005630155480397368670251517333520292599068377178147635225857904439534416739573386007651806964702357727931815471303784173140214498973766471785538570335787847342944566668931339311846206977522526258197709538717669176528487801213938182538872870091675115591042478934366798021987118881700892964562681065240379445854896873432663473290924741666365109630659331282346463335390735208521882048793313279515316201321053464830925820852049487142986031316808283674752046879898143912321953443353995720223687002024011196924471058297515263479612197187540324289290284072799652707166114016457016466869014406621711042249519647252095944459164286474520959607293965241125212902262865961978720986868617659997658355053678181609733931931709436207025204411721743482228367856677490017595817545357634462147389069225669235866401968700003212282568093080143202729563501362265414194637967534114584100960156629031616319234944344601198149424551841105442234209468237717686740752379791588850560288597876360079375209132415877800544789526611543410961511123186612874769074335427779683044163793463397896740264494136212481420372349638873801231518206707930655732033633039666363377766226889796902245963354477686537864933982240707199726991793796571308973358263832795110298829313604978916759746765453943837140093521365459554794665258657719650508451795951938179039171162568744636567998196211794703896260008841358889620676907606421209315155106787475276473120227593330004198462947246971606956538310099661356022646350995545591685470482072799949327946400527554210341919244507706938642594297435774318851847382578691649490537064155267200787597494255835979694683916848206937690917965475897494249075322100778017959619088277734309346803483834592714806875896384227163954739922268875903876141323110623952600317627884600552792079219401230410930061064681263546129722830432474206679040117703793130744448537253386736173147602878278751102860747141286612056593201746864078348590805357129021061568452573752391456691729528919771075539697908113696036171184345889023159720075723492684077627088220564434751715759813546326885514286265408261421502563670554658871690265535683460029195584437572171663672524304332761136346960769167912787537917701614791400985495120427890298775696918587759167476111403562710813689989510431670344681377768766349480283366144042929464923198961502055740145292338349774246834248924327155143597845181669697619171040141250083793202559410600250141069132873923950213048190257288772677271906588284022784451886299773658053097134906743437836424009605013428242068129793231906967446170364686305499301829392554263231532958976170961019287578458368414589653934451506541150323261492364508615685276070494360751257412597782748914010898988138909172813033573072914300711588161738923053780305463309127232885441470729274226591710907492314930320238380880872164693119491912937020280386061689278753040585431395196581109585837831299379031455752177053297270437576502074177755131390631795455695658250687082391591427807449469694311337541640873813022918980921144493909359922345968974935879658205279979218591282429993891706709835626261991487610155321810389777389533646014339577286361317904900815002742553127341261934397261510492040257087451374680116574479044027066838979705350694632232975309650875220727938632153490755157749592998647236085438986955354098981797420325891996356867339598609821459603877671716632410751443516739713261401056992094849710404564353442392719815058142327051684769596668300616849195864179945566673972528668379602409091976993738153433573915599413670500451375544366289077820197933030254754546516253986675245494355728958915214092907864480318369540440259666870530005294710679107250023704827324819426634387346032380635874602364097328436664643557188729436729038150811582390963720917752658567363663656684983926920056640206752574431521900669846143169266731946491958831966152100027345147108911812091629643310783911469418388983883967475666769970066705343037806260967166520245333285478039675185905816178123755449786458155954722567942446965382538805724622702098534285885857416360810311194843082270575455195044049899210825518438026883144169711495369163850755310214994741211800572420140041276029910840851816910204140951164057154028897086254498405166020614786550441889437743248084769825460209685478579629053796405550802984688692990015410663765280479458347109704321118600386569537069759098444872166886618859664937248655077510489747689345257663592643483623818997878004991013913416250053491032965936201522293613003916740014211665889519017037997906880472613467907109840128335741455105570110608873023856425268846691691948749543201862544470420638157894919336171251375353021839911650046383528795138097684882703463843289693705056241200037961735282948088417854474695571992231873125775185669166636271844729634638670100233367145916760000131475456480801165900974177713634196113847274437736839760924588324342692225969028381050484271987775438275758893069246972017480449587658257672901278332065347303075323299458678378483771608967109006522315685380389089595613773687694873825823381211028431156692726586213722210441924207442628059345224908986154841827909680693359884018054584306017147163635064748262486713800801087394965123700461937162084825558429617379832249752905287272991121765146648767336539947057330007789106010932719381473305673405385246612688821593239857314056178586063793288372846926568069529020728029450514712766766069926885442460030760417863241149243836339472780409842137107385638722355462267733746185318919565482007752182206123691220539863839182466786465194705374035808539907428611828188083269110756168936204868542181549352678526174852048609266294957106091810889518592210467480364701955616559616112868935547473925667186380567227616700206473864608648147110703776481331830873831870663754302082039115798476643366474433270679834050257825445678302997465256574018195365035341083448364445525398539768227265895155142764224589712534884794608246866369590420475178980978951764623094199455952201276999924487704010242265330840561312479257406039529103310516429957542955703911315267323621208484902312340745225473898908460454874070625436313183214270976314134967931581512914109889013806507665473186254444011583951362069715501629194892448657654472833350458946417781303134599792845092592041488164951525363663087549160711554123595431824309064690611155558226051878735743571295480282748321080796872281509901277324522839288778138451998321964218374040185398484296072048796572069789613145685855744256869393835784037672777155321020032176072572120978965770677686768980680476723692339609272146348156353584644341176583360558082171291395330674995705735405374461277757812253640168325836194677622678369805574612631611510837517315038923231877659107384433244161129752429989165046011188383366947284619039061001989315233279412724818316894063785267739195874534902637990494214873664102836928527524094034162985261040681403218587199463881377730338801825645658447082181299604307023542640619380127818593925297195895465082814712373603880123275241739839346215308804435048503479623163447521099965760819329450658224695788313558787514856976825793610028048010525458659422879316595793354261133957424059270557524263339469085133292547613258741416637499412990211720342165005752303089829407409272921141985177453938565494405354183308941262387504233983829332008262416061144558480984418450378663152598293157672041215626178631973562797260507512771584284491003685235684651785432414574921889051519077364319728592101543889968058950684884081334870920098611226054271825155898073558956772383241959549301877420036570334551303720284656431871498012351286829852933220728210648152782132833492129155675869742574431843752973419365152107707159716678294609093777041040022485528164434801409414655204339222609805071870038686257542078865445259420641499783538680334103196055716778042457645831278609457784747157785409895001192598349968348505378186802836698968392479765223421917617081994260504635373446513793621381595632635108885655773504143444025772817369080169288459075789473873579791279702082380343430578231312020071870086762612427268024835979523562362934895893562947822397338348773108029065811386970118100814655298991802889442183528159603317165770719507365488378409081268852208459903213764194631363251185381077069540735694653900457813733695208764921295383070447935845202229641588013160076515835279223302717502858734301550080969595143547079903595111654955181389145435161359504404746921546975104384604270371412110286289640550380546830536075950888062747907162026655516862513822064835316610451743279811082374367049814418488137906213874176481914221989093294476914506036801713951797732214329760322942754741889798186309639553891616706628331502971515336282790956713649680668841045964286600375695314504185710890830289821978188022628508987611411863443212654832167301451762250847212554428718780871709402927908251097648041280181445196584380160587701449796735270281594205275249463453005427608092180167026626314871351256885786593439063223601851061271960517013132376327536076782937162017124786809945264611678954178684433686388053927246016203265235249531335258823911791981824810072638804616465859526155669446738510892452260186303354549027211944955549970605731346589868158533564659166591391549651003820318058133318853274107138585860366648473866208967070287392638301580328478102703949348235390786834192845609005672352438214200281113162523033539833350718681379301380412924166987882659049982227134066816968037398817445911001569037784981657331988332300290605890571984526889615169155943638101504904470438333814118704945886682663311272796718391817452200589897364620826873600115362890689711257288091690454085689131253816813753508658452909226920166543321764253592627755759103462246052871888755569764938861234864998367782162924865365985773041284314783930570949256950668947500247333965551914802663743701304658445275097632974078612107216347598538304799886649837144944183112502435814430934516578924241681469349203253997582575992178653974788122926512060404143074449246200824694979021396738544142606688222599237485212872796123029318659631845652798832734448223479564484912755187965946840202956847683373298541537666742593917858798094503096615670389733956200556633741989211955989029183835494856355348273292377191484633372762090176519110481272110439104955512059207371111313039326880779359392805550988161450318506188705847489130825561434005948870888168816213999125959580619223749015744807903607440876852821140231328479583123518309364684070140588099861057492411030552664060255720914943475985756709860607061158637052060824068853068405522087597072396403894332788990663255799640596078917507617443019037398421927402989434700033064059946724848064246833558271205663167078928516683413989454247312723331346940117902979945749227547168610430774828488075140818824866888480605176912607283767847041785883729077227423259553599945373017422019671730266950716057061893874586766594920425752222966747843594590309053502983438357235006467650546817802786370496895732084296843847755714295850978493040510279041718671843121041942728011365969349491013146274610482642166804455305587073814260464270846033146504726640047682663333848406842147960563249581090425552602606017949741275486505380571214301047396068495193998839829158591514575468482569403255099774413097678720332258558323038580857556902969134421956730581621994273995920743895738879277844808887993173230606806134474306702908916281113742372896199037353366488030661442101523033148436954111710587736997820603272742665946993685437122369485394876562636028629547136749580397796142482425643333644741140611860297583741817628725541440888261830092603067479157702989678500455512059954327095170883349657142833375488647996685019106321030328754204801799098345430724688528040935670489385571779854678193045862067945523961033912693009210759004334985460521663982972938626641088107662205065610032384786905791184185727603649148800252534586494375350761218991494658514259158291935407327625438637322993367560593930503226543745243321292930921952043811539971641348582073521052201249414242836766375710453604970588634329055413932307946566663928024509950081764025925680612833159368830876002444870949538557455516250562731480180372737344017908401476926698834555476588386414001225227317485753820268413745516716753153946127398654454770023162260258054291887389554064961306273968509442690157044296065050530951179666936781369189972013489922256188822280525508874935461686693080007554903722993219617551121931800798847920335486834011920528629816291135165405446491957722583496831724059585493093509173598640288444151994283989208744257298821604131917009529421034978690958141567338097101138058214282888324705314584804663116631445746086135577801207079498441899457603138738789193176581039882479216980092012074324028233365667056955089057497033220370560979214609984282587330932704006897998633577215989095591631671034913741155021159911762097221877345372050530732699787684132966560014941573875317146152367762312804748814171080928716067564645736526198086697102574977431005137735839070511464713773431078112751012039918630089124789694890126248423194607201599497192677967851576046906618234208333945655860633185355739129831181735019375036653318760324968239552004126118408674728887597586808098263211482009098415996606057414938687421749851228381362370554780723004493863150137069080796911919207078410622262501883489801392410397448370691140242327213774234143815982024617136629128245723573529817206535004334610692674133163072072866771791810018929157125012102861757887505030249322733726819794726528108377746544705883030841543491652373350018646650608047653850014983752369832321132659424360121747329351406055108980676559221871658043825977682627989832021007868280431090448071710654053399509618814544459090034812121435736545984276930761574346052226701722717359825845555237938008878962912078723374278676136649407145075700583057295749155695706511547856117125993900425160611579006960933968175852607267134310900451486407182054914022532730366427829160654455395061558514695526559794303035368082187608290069826693008500819025666744184858208077859809611196725976859886729101561706719339330282836766597517796281947098359317588006857531636511890799914987177666949394370032554725536348973876040111422351259209536956092467333511306094874771161465407887273378834533932263105464336460697116024825958986477577077752113311630699508923724124903800710672274064492321319370296172277707161317225192765368568206554648975863023293331861458698510896216641984103045456576850241486353459787897066053659131498578886949312449808623459679487126959834641132670343215424336239882282317896764703899463730764961809082914332987421134184070065749829916815521566964160033941976485131181978229068376147452118426788447320786042662072072814064070956323840760547928797518546276746438130225137302094990648475965883757728169752812387840935596955939440539160022386719287233466710084184380588474778247035792603832579234187542038583547209467536468977214802099136159287285742859343750880329393847424841212189089660279495385726273022973675702306163818962418724771570351736019034516166486106078205198756832183191678142827304838320277050448454826037748141351924221201187030920688654139218076701660238489632128221934287584288191932336250773742467478186071319119355852305518663951981392816828006867087380221785910073121101161274756906852102949181476682211609483055258169511720255948814489706836673507461960380290962067840370075787392709730526357964509661136415392151283897546735462869841119976565745739170498403307494517209374729609142755840711854479537478776755199821010250077553026963474193800475729778707340753089104934821333017110669301356532185345275334064614212333713484747751059506435997321801877823483843156258233906457149887392479231370044531609791216727749527552008623023105875569512611550437677500660180162943363517486456667302202101809580868609886895341420842824486683658009512806009584668444885305110489042622971782511486924905876336118998218648592174193968629252196871327582317421617475500953174481959767903324242259552104070199245635611314412892487801964262168714731579756370127741457285829557160295764950582498096096042136890381481074849886089444907671912750567970906797642102535647209520581697762698192877523530235385275880500012932779922284890784555507401031496169092817171106977474720284735185685607285654642414974058482076929385763761951397445449904474778418814759611223428211296009068542813606186892344572800794764061377474393217254728612032138151787297246084369065792725600474031924040493136534016828616929704384425822056131385144451347216966982863087495627683372500503356385578064388905044038760020869317807452066984099303102960056103486649531885618765784336119386167205958908319125451496024768166537230615456243726863383825538069753194003508043485316027769662732993937032719977320568211025283413864297933866414829621865361883476639641509683974413503244675007564585880430652022294271399387225629391554957152009658659464647138280627410405454077574323570599029173866905412084095854056534808227604854025466867000932217661137602376981462111597734258795144392312406964411180215543979557671160116407975520372962677132168878069603493491108296626003455637593085758771322064696047062791161011313426874857692884391013344002195406109168299836828591799945092968721449384724388321557919468560261838450269073747567492358123024090937728817848019219242157165757296299443103117399653353698421739290074488892361704234094953302021392276946210124565641036133071026704925910173566971291900161570223946459105204004353359583898382448502958693353472367488962113671528836030507247419769062366164696864976186688020200229494691145930093809287853436490822689440915821467642329680326044304598500144150792386593619503803575512023690144062948377128998577097178064202569147570856498721440325161173955142301682376486755585005405773762917237609635204420467161687382312055301008023447196381833818541720707034665037919673231522148527567114691844585881442413047487694283931587786778564780523978957507243934912342430596959869916585066303536386357044773337267335875352618836380591039670058747775941413217366621027590727589331404861022451928367633750705834535042376013511001597733700147601025289200255762461263138051530332245183205285205202725108514033007336779435780255217459479768429154502257538415108329254162688286360410992936732908371781359137025588301927620125405052994454540222629963012844257051746761856308587177021871722473187520755077093506997011752551754668094319366833760008733258931732324995555534168315969387035945283151919680991813306891193559274452040456468286569197718424700904839844389201415962305753273625394663506046787957303128321403339305138863121596278542071899469249147835933392566861864707908644196320849802948838107682050257287867862865758797541870353438482724044519572122988646422608247696845347795985256091394754311200482588063422714350311730527578190445110490039196345418210676914398870178599773248950929146952551652676068607861948360742682326596475570446335594226920152739929093473130694698992969209967390025632841079837411542416388530304431734746798892442879088279778172889326279895094547010325546177083793221532150851040718754342848377553362005961496722188786929781976927844785923579694978105627123546459364368771008324543117506331206662328206012896490553389395722213088739143019701510928888983014416743486603701938106416346114354610936464439144319611920207075744127513756086270312410226351219403761671857286618883121772619379538229763119312924166668192549606421366796730526626166459080053928547265946763458095850983163406730808745009314544296841127001100766723531495284652775736612654796674198433341192279718262085438615666389638601239023518677206312539377546391661800040393388111827758398207691140858064616057790450648834987081858606016120024420273051457335928706320210899938280608858382248327704093964621267373125447665542222990924821954246627390259147969365363262681538350365479049621094007133038344773903620280930818110717573341700603722976828523735417603158915196252787105223786756104331458015577055211283825967598438010378909348726062948182889048299085953060952219494050993275435717454806141213888137294773572886010227482527535074906781470098501128151926444400929201510966619904899040386643844570719813903445475467449790640338492550610001234448538569705628996789396961753656942323055144579656909154316339269867837435651655787855144491666554456223396594038699808918701127610512311344270060065656392221416529863669492096325429941112711306758891957805606598362505819180220198767925481188701390998497142023858712021719701675573008621836206569149102692049638641442406137556367024221150991705621781099047750803824752775693561882914670668931630785064137401040597236148350928957348530638600888841175598863294950227095211613964886115761923448621173287725987045183552566954258824153936903900657066672377102666839513159151375081450782700163668074445650272015399661116309589330151491769639693295335248046581586962489394421572910094119493822133503281508281214747476504312506126223167209919519480126061984201614703130561843728621926011677195046291830439338642324699735402287346891398237455749571460888229242808406077572420380132951919388090668266650399780561128848047607978158035815278644494913839525319705774306346811764936528088556574533368869414366368054537638261631000839577990878270406924513724614371960454240145899395758844370040163684546074934225142708623122014338182001309210311695286483708772594668106353670540903260505395640077285331729438573757511903900183252111315266492300649981614468913194982182640077875788935856852329714503105470880611319373449199978794625350681655987538498819734351811838483096339598171972721245935107901661298133188339550497735004994533804414397672100632480956478277917400696002537582243345724458027798647416356825705312642930848884219582332994550189038242079774040624271296124385653595546824272681772828173306839761994630988570305717049341658856966355767707552316292922128109440240791688791089327974182612335859379965003003674556706956792464067020537496990598740225781898404635554983092114142411167770705061546444384709317185115980296366287558741313432918309696879640586834208401461840893693634348724955138830602565561150495370916333101957388615428761848136688044094877179817680381995025119035085453276479303094078968820438780356921344977924600115582494280878332216615071039212315841973493084695836066532757822618069144883766731026928812895514643957049846906079512883024529845775957763510487806074539574735217400718795738342110891904529766921770802685240328749124786721939429030969260303923449972564684248542593198555079607262478432173110054921733258599024220893611328859631593832904664234555587566355944967344506824949156157685999510702511835273755114226473264392308997386778604934293928495950940758192903784947204887740196206165568061638900618238206535142215199847424312563605592875122361699023791889718731336276957034496612254151621455409714949524041203619136880282192624385289530403428329166568477802636405706110319093270036684842042518617886956210401506569026492868377082804685430097536137883507798716003386368238815881378952044507327404485386199922072054371761036935724706184335568199755711025842995414025174634808126119054855518238009755606610120845662593483203262274388788047597719602679699324295402202902291441292235812848522475230345462814560922276347844916565485308956831766679557395480584088802817070852202260777346204465162388367730238829450459362026687496056951495878092885769831809541700890755410445487676041990940272455849014425034033837604936226233791970112470054261005779325382047689129694111650577067725346381174479627045460366616575696092291794692308098782530141669812449659438878931185270065487831661126724605094648049305906064676691990184372438069458563983906798222267502501842766428394876550058487263822771169832348133386059109258299257530869066148829255182105070816642667325986161202445253048014039099461592293468225683555021857326596176933209125258242139725454720055363282940279783130876315673887079505880921384826939061181373556562137045891978117216827856634631370996373649385088535449270132256161995259697184609637827122784780172891504015768134142288357708403363360019171500721305177245210575096779405691121452829271035789882802625822735182687342113060777338890840053956894808940581322795081544201960789998478072853986411939369768820485971045424889608013343298943786243163470661201099964844261528769319282160337655535865748744150142835727829278071303812178552775541809502731360291204945231463744805652373831018259123995937209014680981694916088308123684650835248771060556916368011414829716082710303845843642404465323350785245850282182985915366383336379327328854143536200674054010262346343201988178511847203226482792251843860873836624489150456595043418485457056304114959106626939802165898637856033907771230069969443605407312889943989134531411431622814714399568482227982872830443233590642703489313890561699701863723741760106197130089843602845581075989488755763965543234883161298048267994941177620096720070975005068779848125557865653236942272359725733924709885497246668256307565993418657152860110751290866679025530171867190033492321303068850612601305265044274693223833637904960322510360504366481666483947053772925576047276999906539752142625413018754070592299615156731222101021119337820494725117991571861950196591687067904991987837621884233584806801771956146313973195479560822846035064559241393677610731127524925868881245691385612085913534293411270773906022247147600298551776308470090846587426701649040482581789548308313846256103787741324034696361719299330601994753795346586370482413900847217370386043991111610332377827895755997006185932383719789017202601458796576026793271737610030686476353142960296557428761223553191781194061254858503245709904091759459460328343809063027157093697821259276185353132774882433171630922194494075187913552245068325897626308230203592576548639621275486705830389142722628233406449561106757038428276694582971880780317179970942248626570910294780227585523922845001558155490912907550920289335764655120564832291505789651090139969223309268351956035693257241210174008517656658458992250252861456459255584406835328181605018321034478510169490842593077761941204030535524173082726743384128814678528720433321105827440020220165634062789369383725034430699894996152952673082177647552359542265385530283356086983215794582055088148089881197247492449412689452962357520055848450597725100085879476939140526654373592542352993144520399881307443105989369641423090393007513534435280472117910325140797348805477886363485275307167070907660806931370963306196026290315735725359024313816162171414157632230625324585885784005534298165912547407600273162887127163866194075041955130468086818108355238266591553904709461923309961674814879009546788943198413915137932983592079324786874165785046263535054528114204946030758313292620828423835293137052456510734749811469666919577718907578863379882622280597475659361389827631426808616651471685682899262394654430033923893659204006053056650717614231571159358369698258991682762591864311031844953852321120304703563203389964327015984662515267905397424569442785822329845253014816778892982846290255150308487216133699829022350145427904407334978188228019230684104879084658910632988990701464621046631792335588381553918477457590224452992232497421564221851476195947825852385263837756884306437919983969654036338347843721973023772042637092831898478015520414383067868724805763591158534798023812381087795555436589712875217964273897113638234058563462402762337849607137577221914774944388911884334937559655231851970977412599981844583216374560837839396302174625002202792387866550070126971137954395015513350151017637112769238345125647590610057749027285299689403908532919274918673315692603981081050860205045133036623888032899647584697935156418564938480079068140058612503253416008462693629162371303602380224872043544663562135882514954715349580614016849439373771214836035732845347021620922982607222954272804244887742332536938663743780602141158375182186804236504001183135283466590269506370424915406012861815193913187596210696584962312483056460455389171797488709259026108289809275598964819046025439695816499742153435186861696441061276019127649065820556435128141470153053386723882107762217359066245583768738887693721665955329052887874920136951969709708633719718406674952228117645993273481931956197043849764731010562477563392072028228586527924332789446036123470326506476442289816630660197521003933599746132328245919018488903771023032191548978907590028045977642205231503848071702480438967792935181611835484497895303444354601456820540303716475713523256076980340078913694297361513362494813524591331870827390330693021277096169965699406507440496208825515674616536491229113469280339570027574955282122179548396886324835785074493202624819345177223470524347676320058164376229573840920932663054817953747466837087829558401043764091358009242073030217989409249592317312772293546268134623653656967817651699735179012831953940244668995622457689138154037671568234762934015915475893354261113133751063636886243278833667697756640130234833411213700761895267495828954172443574970403377926249978198998243254874540663165519623075656671302790717983085971734142633309029461620293826549870313410982910303828043823458777329990715776809328787883364507290319175050124270063859769502779173984739508336238025546036949978172311218303938582222101202940581607105252176635971422239674349276984016086681925041698351989652726893511191346858802248541190319830289439770099428104063674420871640385757640278212991484542430898166871470401715135056621831644779479737029643261929644721654757850967566691611304619391357855961339357153270592082504752717884632313247879637420395657780860463936891154743543176827334807117116030448760615277393186251244966470640514847741870125403231748959022621362492260674477283411722311073527725875990832076727550609397471338543531670199585284409683017160044813691539312858417299744259360198285677328921464158912948893640262693605778759066762223733613900221544253333222547198630879518943477804838468500850356687077715305427805592398650199230442905546531641999112919873555782676437810449633335259403548963694140078300492999818902872674370594097810218778578051667957768233499150714635964710699605056320025742911138240443700060680345739259990875207948565247424600868419303795575936048679884623618772090359535295597737978900291546432024435950110825000988673169569699683276871903046465754507138862590126614918868101232868562437989495756868370311037808152294430859480818669048122140365044864335677662156392847461236115292449654471996187472664178035557227066038030985145942661241631057499633213394760598709434097354630305651270245709551180195946640388770131924723258584567897040892425399170980330652253604185849110643594003909359582829037063437657099581506206015992077027869750507676140306198118746793769136200644684340900041638441202115374642090622187199382985523700396903629218839982115241440161378321706502256347388635178459276886701637777620890434114149906918564993413896292712401401017670150238052643038663155835012440590354341939445490422013629236817966928447414218350280661889859429058355938453292487622617977074992684365857322105063298852755054034226048563192771470953442895749790482351166354246379269647394597360694797407708025662985724571289755818846668815785992458972447040895515949501005409311910049394846326825270596600530346050901313912759514290634607208963241511026563131099081206164180477498552057200014418347138274539890580983541971854807959192467831281468197018777948076922493066944648024196924151976312581331088195137907683974542161198195149057120290974662644674627815944456249947975632519479801459095218510631803461813798593282831839364122377663372676089634285947523121161729865883607041714628352959406504187548884184816992027163164028412758421185161072782337730404184305880653307396833572444631256372971495128933488407799717926990823721883879645606132068881917970032954282202361942622637247367366645502846009006844914078859057101966788691493593371930927955553046404706141252576482151263055852047093750384548695255065116162422765221895310903582428083930638723054109886180416640189253539699399607504081856895118264849045439999496711559359407873879420319028006628455411818419156890385473587964532388584353235316220867668599042399557744315299672286619789011779554788082137557160395404954982352816640382073640348457137878328880483042549246742277162942816029823502712883066458556636156619934873692786157147226540385029414403237242684257332959243814478113932139538594136639529625515205728952283115017983195253815649751095585157696829263876664216525374567907753614853604578770005344259429494050501627127894841177740594848327578659405111872901944619741372240771919000468387949052421786250272680812838668235165343563197455844740971397939643113849554823542382134502257830304085124617105095637982484514389424227252194827248268189525357012099077715671821221406440184595262399536863083840481851339790477511039341328002038617014857501281344774099096772661903931769701620029745764854301686086577543502808379860699709804327283739611688538779085456013059020445688843237963612190561631918972655940540128556010096709318421299903229412394987390837498008202144724088049506799421406980704287792670217465824157269445758343066604882392641207946573522670595078043151164630663269121214344753655281516355406892518807370733229838529249521191062210383757801494493485366860897898077060364151157257661035008806794371143079611580013933658158533905550354266580534266605525114641784800337716299115208361832002678482073854076679548034228629633466065957464623330634748310745280337336374058898531938090052515297396797675435232434034320774323309795047764706158358989211244909062975995654800514483775326407882294436870877234392753228149379594698316835687185381955828984742877383746169141961289148239646829973494032894017554663402019273213856119190897431313379935528962105965647039070038235276264661982766653196924443753970318581980762519380287502556769330541746428435537974890982866699789984858294346470527718059744722084264890817056317268517158562526402387554769718393388401000159450276135437844815998246806685874513010341595101688405517618217646110693276428259854033615985220723470769992514314531297263882704494529461726748803546742909795379821575841804579529444895801348011262211643750521712057298830268254180194020285409145513122284323806186289536889577907535359589408084898055922313334933486613445863784162551843145164689276397291656072224152119960441652559028832395391265485274398226204818192627595739002488559779119454731394525460050087978617653556047200258276264928200237753627245838974198693716863153925609890926806296495093483139056830895038200542545424812502837550617837553514317170629391427560984151352989133949509758523154535163434808400708366072544275930418473876244366261000553925395040151998670471794075453111984824661082071300094987615930540649584724161386470846819968145265854090937081567610453438566561738546591967961081268760960035491981637177527056813943461579338862148158068864340686462966929036518933443702108700842129438626560296052591497279670728217063983485617732423688679396192131821691613334513843944915636668567660933923106118284158041088268768838193957068855861461955372155215929358158036843325188343908421161206863765462447697793848580673772162983686596754348160148571292116533135322304259994243200252474044888524178085336504387513069508586795516713799692940892326974652706884257198674164167001594871804025743171132245346222290661011442510873228958557090866852799360808200193092048203828135698115097333504273144096117796418133467847273182898471757436890429008061561148642173054938027187237379508456839136371118082315711879321780049952168019642155376440642006746378672943013860341386602596669742812147315991176868042991873779103005216625179721757696138661976148367002365243579204776312240947359109322379297820324496724583660048632083990398423120909007787465585641431250543881208902694854743446584646671154538595408777665006192358195870664899803818144636447647284067059131641121136051391139436391646450635047110195158386434356165703052796076243814463310240044437040679326498902561514005083999571273831271823529924986061158889270732045902005257494324489925166073844116328901310033009340787401380226004377010107909894211139985576830252893574627248351928146627619363786779560290244191940628731725787956919374166882108579312321855720878033204788028643947411285694267676314237151117031469941270079241313023730532975727973663103149575584270226056440485644301216968259402998943671222788379122499078472439500790912219310786516506721164463955224449820351225606485168204402033406692357198573629802401012451615315163108645665316714556413491143441987733181660728835091004416003826915266623994719594035255527279049964127169212063253924962000192964492628573316685771447265368800537793390137581624024004384412186170656903877659417318097755008102917502250986530743048048491107997344510984567939871155687444802516294885581149139747824840712115253005514574172215024469758940725405533998328581228211173849474971013281570070514002482116707736150157141059906825093147830365262391209206575769050807317791280739928972946091792011508479198028114618911517364648109737851801475492119902949984607570610935374587872036016763382160858447269785637089403331092905716246152215255865382960051675842572287886966371613496523551805618829882798997432847631239500855962640844552016738869077983176076326405302285813675901328192796277499712086989889686065624236419075638480441538134246000062232214113641605655363987615397700322959437212427151233116999517291615462684236832511659745438762652366213735833211930742999461729563112237881553362120133149280627405528645910551682576744275688820553020692963810626161113480692889080219466999245871352075016075395754848723174201707890634995642267979604662632144488517767623364848848089390048970512981564442142848235990210718334004698775697689030253169023608058470200718124735606358262924838006657531788508977633007123777530611750568547003808486108649738009920598143446919593327087597241695076844246916146244711261549001974474878327059249805076599938429172571847841735020380489387714609774510153609598028499056178384051307274378062854003368911327586414816361980230340991031846531456765739131939797330603958651362027201391271744031168408356250460399002025009386195906862202039003144607426634757692449261950855237447026299157688007175179163943121116904457329446199747931461440572282972360194586290844962150657521785246558788017760736069834740288141317307821665727768505909193381586601896935928062644515311515522298892453956666757325971547786853548803655840804023869586402475101830185357507991694244860276998358381196582263981015826312033103536005029873929516419173446314629447517180231234645585951224808647219467703227701397440093292803119278992621397403222259508751949812422494667635904241554838210713031463079381332497318167675795751219108053675374097641637179569780544057647077515353737412075709135548063896576117514447107385958245856592931402806354391800636709636998052083910248309343565724227545029057434459076191339201399250425943473084539243988402500416452693683058791246853388628994597193160730019562729823469015629669367695857402187753216819900070154708770934866255940595728757445969585680286721227389455063313217802283060228363615285647329190015768730209735767663263398942245136605805446187187297426792022431471467732790689484962810231167677890963640328956251875239909880439038786886355374653090855699969519586679474506835698972575917991204244031703467095225600348891386923085848772491561051679589157201586732333569065608716083492627912534895362301726484001998772871740195933183195785996984537382375953371774457216758214883017285835253200656925024203930628405086234815662268699549213692093635983805392620728379379162106479411428735282776692209407531676327929502378107570051730071686672427592266186498886485504510777140941600288129158830935516563043344996002522322352702427077118380710531520617083545680894714998270373052805104549163587871536187280231171094270993886520417533554726979888079812920660979134025583958516447767054960341724408840883786205213071284104864514429023008443079076011784768134034028026790683175817289717119917584667330726073826041515465531032897591629808017981568139433908315133149012517181237499266481274447396211991473635545215478047194424519495545411252870029253283154181858465249593621674242811612403853285837282226147034403640085763361256975881920261018285652010399040954864605863267585682740967355989672003037805470181114191705996406352480086214798979625775625890534301150721806050267650919895163890421464812610884252296695100170425894650452409360939604613283254557164965903214994793724569000903724315576935995099118489163404727777915461574016564114800728284015560334343260044201018337797538043151109772142475469122491423727512746245402553928992784329788432130296006072632029424882863849364601859519547320783474275534569351629236332915340351582719210863777467501600321635812529512238264329523642655977411671254928369622896673957826560271836632820624347011576358482337216668723948281749772533285374242918498483329733113359525787801162331719751259245189962311200980427744598877188746554953300357777112169024051130655782548914713012181953391638380961649120470328683949121912300940158461340964402738843881339515905995201778018713372837248825680872224523831789408714739505262953651583256183611441134242197811666136047225474337685580572186570171907432633174601625986617975374453781335746049485564362462590779080745952102893348037143499142708907898047195778938659464669541780119277845879296734272676416038613334043393273962903690717855908502316789256442117774734629120987214055100903286254520119522129010493701819251607193298005551275098674598724980022496904569813241211565955622642025018572145106712095865545741255406148607092415078016734918686587728641208513684436132712421797152572548743810985230820992709067834444454053908846984087145125715261992228339271922455795072021671586087848017123407259653865829692410624018354663431830148669891588163298406188325321699972615414490479655781407581132455707592965302213699994501565812979309814595963770013962666654248553211371385541179775549459757741348641608444330689263137263520784715125076913184633532378582287320320146461367028044015651483529210947317988224048009039715985540400376905974247980925735145274728410714463995393082864306967177822746512449152823210308599346848283420758698325634282373252778683241550696051312942479176518346643844809251280047017256071536116306896674482108105783856055883720162419244237392341938583829350088624515742831822369337762037777979195352740017002965309503842808999140636727190568581428370491217836767679797492001026671465913953276823082265518944717684396575110382145879279501780777768172967559798975303725665108532311021896581736185326097233432507335387264834119887648291800340058860436955568295738317720381567505891246915048660112061938845411599673498840971789006808186083681009871826021995341384235500359560187784163260777586973243082841550439009983038493106169917300528208998744756590869178943187774788604283848397322158569784325208402060275400306904147116008071180999413822394804489148200505201238141186363972509572145502338265267573551283986696907458489529736410593887674353506785063428697952918265318476161783657080624550109558229082297966799290797706636337058062250513049191606767710455140200796196448260146732159202995015140042022717478987451593612370345370918456089123938956868414196780884321335598381590448112710184331206206979787688957533074160462797056809124289547939112674498360438927730637693392118558772375890630686645749848592084529698075827048649959038274227073250928573891347279542519519641389928620556478494834902566215728712969218816802696962058615318790927436650774703614988143936842498321766520798955304572683450798887686714516509594104004215695398529936201049850790200960627670061972594105013888408745608347894171499927696311829872368799926145314976635188567316130080091479764990441589257231755944027008675938986843450145958306571838376175028034293220963564994250835085385494505673017132492937330046556189865197432032984681619888164364951024368388498496978979536689809819820061186923302324975295004443259815359797445003714317140670695886320723249443702535756212382754781341665783643315562429513298013049130605974471750114479906787648022003695312527470181387488010660467263456598901484254079364680873003266455859249789454116769740290278510466212018030238747507097543907818383071813082745923113017500572305465848903201249567497741770265780062398945669031684264900117389564447492004195245890886506717148620842082749125798840051326180598500079022263061755813035440735342529059305969537113317641976018470833342080255902705646816686802202713954735696076800499692262230866369551114324265699646954048062815451378512256542890662130284435845439305180384908160108259837454432255566358842471672736494519143378466806771679897979793129924498275491761505743055680708054056913997580487481368174356803995631206233844026524025604803083117498986196273861653796209370482734937958175411595299167049870636277621527566082409974084446946446766043285549349366034952797941923536510772370567788326584803443022117369380937177870307213363766610764836418075081391091241058629991042647498733352106672639704744545006986033443064770346228260968453522432706654434756413852552735718138575317471749777142878223850453126983899909852513842804705207270319046515468878285665575272730053284063278897796422233209424800089511796377163114918082182603936747713222689884359196856524555639942701341154309947119580190562356574816267005827782615892757345819760910887620401952515255690969441924531038723433412917210059807249166303041221541018628935023777833941731665811003290303394414254177115874283922850429522320475760967539710192344199163641565752621099467826829559874678474589346991973385115524339846304115476432411060321711343253912232559331705950791938880743972154483087860972635202403583125510790549301410596059843085413410512080230924105047802251776297346306705970297735437658629118345838873231178713899107657300149115733773377373754426181500549359958821438197799664669573702304378118264756661190710646587204317708924132237013119207539304945366367618873037188786721039946557172505863713670702929773497462791171486223214507553648159174105671250735639249186055939695366949179510229556890881476963433816863355096959935601665943577161066494331423349800152700886388868224598297485045567213412621412101167978111997588702194468150939598127118244763095298063176206322826246789115782944813836137383473583219774387132405791799780201308526588475229666462088132211715341320238090542243706309786303221327510376068189449836767583509755607607119138336733132373912335589509779632506108652310784272781664475928978604733170401282978066858049943526209357430818003463119713465055525571338758253905949763356267039790993547267278731380954956579535842543298739782183588777289533752770410334879760342773332553527106407867244172479490545039990493789696800239171157022231119962526597068682077907904727006918889546751903274505277838176337935134009213078739007668097956359293819444760156014193473048238521600979961005018841664203856447989269992978417510647827001320726968724886420749336334480072295356714697950939215443020761218178461189670407985200610884998587939009916204732425445011934631342272695741016509015318236982379622176172514915731922909435707449431312123490689831057416899213467293702940421979351865928221627617066963314918223009014761205034234624702336423983059829555336261742880682062020690472768879822372541971303558387672400859418629762384429616405919412663702297849005701056658491561575557411084632774407461410182852488228771061032424987311983340753046993975622504313924518321321799367473804606692581955238177461904840395637051370502787495548590192623219143774502496509164381923172388348873392088155346018078700550860442632242720123728106620267594607343862242855394412784539205775866218382604032411432408276637782199362199980124094434457041571580498527472853739052075802459036801760412940497576973224965682471793644747016018335415439861844164868189988338369884428243485017703331891142549426181618986688415041983441403582307754714379863824796715911638536374150392845247441598953685365212415018969550408369077181697306878368972697227579711999254377473402404455876909461089126567709414685477035932485402334201006215454605014518658004384439185163867780950905737099896094730286158142851625383836756357984958294109885141029703543711089926838447830601673923343356300301494032824824414178906832770559008573114989282120805789045569779937432818948681787450631155733380986613007442419116855110110920483530489678004624115914810281683011916128126923855758681958720896119782854276548485651651718665223977611209923590999938667310177362783006688790704504784498302478628232969882232386864325112033428229586131885886377905714608620257448563331967595672027447364350538848987246310205950778133067571366641313038805937230504010030848016556147742021100036909100602627865464476869483412745861965912611093420435430190786101017222692481559317828886879190659914167270541694605936641889814811245461400386834821052154664680258229842948982977966562351465008565390483055276939694702787053411965225353644499322524418469948214749403920275100785143704278346790580503992881565894156861575054096592564407578641472050428855723313865569846349234920415723007429240366886538908593910528967782372096387548229335495405024051010872272308906041101470791316023169158262160905338114787995921304572023079314816381687008989967276828811995218240083057020795692799348824954903985816741446964362825629391121509976164389139804312547431453829904187629579386985047112880925810340724402596273888983105741518718503355485384625520740814500872865775680802884595390679733146295173903851658728582778564723384280919063248598680012105491017018800885383697549979210200280318076987873530074727763161793228693747801300090011577895715524995884305605072460754088951020148077583908397396017904062326154056895773358714428664990118257315231539862735178550151103108252846221765886642022511513445600073279796671320606028187598381466484876944931237778931478679665154792011150451196767237224055239753358978763556239553760951444185900669045440485828660881210374924945731713514881177352258375034347947237650235093296163776362403692840030782208737847436666754975717747503494281151582646888743621027017988256081190655328987144457209912495832159149728327625349611453134392942185649135777317045982613089831984137918639109578668380014566574547298159001462603000092495799994716835872631535647919319501499183990061409702167574537930483146143426333236314699422976587966398711656672096962741766996858383165843087274146747096304443093486781273401815378860704616129777219939680729311902154734246232433680424636668135031802506885166838220205741277510737445591875831372240534516912267141384818135273768479646576399129690361456724358279843474831584281482442547929165256479599887817159733781565054817254689420268995942160410781389330666413750085670487301858747745185859636892860820033556700100596286105676711364401851981519235249285106998246786087887412276692351218813453238272284162753008867913948858469794119254472210060636676057833963179154968263743076217783284919305393533275151033472047817028848655213912941852528493888343156671950239450704138265754748317379683565758088037437848108728554769522516928259150858697237582864122877933864224198208786000081849381358317684010729514909998207474742775997091005782884452755656743752519611012519012163706359556267893966232332470535824466243500176066927453567139630047361898927402167033301613609104831083361415344876040371198543958282224385703588341821812713418256278268377998444452244437575377563097225412489374473967352772117134381387302705426233616550784764526285554780117177588978444549695141128823606186638950327692952318287671727370728124992561924661907427739236626959069091114281663748361912041845263897224074713063236538509751531268759045822510547544291079880156771006901445402299279238534195402229186825523421700144550667580745942249548272707782415389429463561945200012408915029742612041527973150927873623639644767464296677807223657203734263441668211911725986026135284156833452762471342672007225524337554354729639870082129897159284135819912037899877832788811532680611987098454628876742473110812790758460597449666223713773656824923683649768212331374836353868772725566667325834964736569478320786621694496106408987818190281499811375055846338747056201950554540864368191427760113944822548274913431518244988949532651044040203391111840754045878775373851534923750993018898694875942690446881129961551698472408208074697516252543728494291532644493310484326712300382005029784714222251733530274383547190669268876419913764708737012390018231901523287324287028314430318539457382752021673521264828832722560199653801054076058786571545765267286126947505309296254878561600411044917921393421202342231700160724342081650344134846466951241841137807071121269560714813372802434550773019205982857030464430498962586924782145961367733624577702966411959672968915301889540461865665126008491276002111466221453798917070690920327501404683435829574658128924317215302911255047965264257314175020869750401359160721905767838625498879440727670337786737074048772755884592483181381303208622456303298229703572224663390567072013108851272674164803686568729047520379024994726678822782398734790626374542226168903671379929052666088097287890041488225893771458811942914536425094479551403536234527874988422779552728183609285806849339181024027098151520468480901675597813344018067008548042861457739016364233323629887609975397549077032579724609406455199948734810714166870325612489125329243897334934555295581803403568193860285143254154430669064613871651081505213294796608583026561912508257512858982976049847781340377592682009515214758375994328998431244846392634366971157636808076229383316062856631001288016820572490781536311923618772956155245231869620544983501283162817740092518783085583609286829982303901801525160650468013325620293340164412632103924637399170850091311698573526687486375324690188015199688047336370638557931960644869483371721212903893899531137395645437524944627660519228160361787639938606575449409422398454072741595948927611206899367466044480744507978276491813357928782185854537067582597590504047569842973038782354953400657740436592832745553438739475395895917009093821526651486717332871538352617925993155138586121360331785561011053852384324206142731483928261914272725790403141805809008193666727428343849285587048643104249634900475566986352560947995847931020408882831337355066562202442351345028524596586481289007648228589020593413828028122799415096214585638582382194009378670055813330559545995017465053137609981489788537566925047211802900376277355261346266967774861247128966853414947056293412329392396715784082244424465642777211288563003917366394370818848459014824016263693650624193922145908168297797847313336071097558531133919984349826587112008043786481316698763830542716224902234382445126788911463600523369930256756267480562963375725939233869394388165799933640140914516404239198446986901879268473849254517202384589663342481860789322827678320710866413272716740164921653531487901387741385575740737078760229826052000972967308063640270233177458026428763558516121446724314321486117172693945495498312829482659865913124402408487919997821545974981857092562303635487245290279663207114794975116015197601984884869624573319296338584722087611072380535532958462484184868184119820272605443354882536959605839772668690469841086350381658680306751326498249940506623861519558189341215967893819685564286770017009626105036356194433143606653333855291939405498139386622762335268507085835947186926219264314456942099884214372370263329531287068651425793463918286176832789198919737036413376420800480764602968933770163313829932571023995780544981505324237953469097199563867555089829804767982516752705618415731727124486033448378524266723692583038828605033146777413972280139752314257203505476447025292884890442241943085070192401277092922797614657658258600515084974616607557254685977547779061852890387102205346102214574588980895146480026145951780100688554814585540759004716535382102920336509259625737138562163524091059066063318758032677269527281635162368447897184003356752290545338668265247581980396351288797235155528227382952847422265611188105069443770319773121150902742770150277538123424255488021236540928541678647966386506332427775139340163510995104153359491811611927014887215560765521707201945736862539518352681723359228887520746853662503603504370051500831859503433653333044664072681486940956683679287463602134695169493727980013383409084326850205504748120584320309567259207585873404624900810548319368364795463798243914624301867706763833110215362271510050552395459843652813582089366154920845273552387172316436672305437150256926663307928249289500005770628994096768996909319019617394450194556602098690874814311115876080479288046019509377211607678605078964199544996867128781775879293226924987483300109941849801543754482990961005211320254071478058991063596755168344388770507650764427679371429359185537342566475610514417896179724564529193208976269562734208643605552684173322655519420460853654948659451503638467936313442440335255287975598900141742763241324717588080958515620096780433970356258138562856629511523700175980552928650702965271846259784688633861060659418826909187064864856006830324590604700276751098280726678495353212978964920064621986093141271860868500265001649670508425359312635022598630948797923566585954330670862089933622487772239679776581263898367615792921657655740565157709053824965484082214254366859054190675303334738688882860584764368454111097577797314227037291895666328951018383443793103223981252514258838510624258998129728163152969224240934065325522760030110018968513810038281875887786231015801409208851026146826438562279160117123600551593387307636067505171340211642740145441083125625930240948760475359320770395807184308206296588790727977513580080539861033630607117981039995473692159499527015043090569687087730724563378495217220581496197286252357818369877684949197562012136786329329011001583833406362564771800217815423216076763215919050776100548129284765973596562157808344931202061306233970868358454623636339632560554653663267506480255447955859532401791662693232734058606977179126190641997151777890316744632296307531351446473206956570136984387472473931881594079141429111098831470183811873420537154996451724835537597328530119889372916458260416258173360003351045244078895277231168004640002440456998040866771550285251770769435876287127091537829347854115506522242566286949357352894908202059429450911169261802707561693129621571538335902484134488691820443301552950203743374982830662802369002892911663591985326731811147994842183193480053007580620818202835973125737861931369393983245968063950996423834612194536721590062110990131852340500922162762245279084530010003708798479229801689312305749050256183864358599284450298865391547808697371523516498135095656233020481004216365513765010500088576185037958176416822557772939943325549035676634224058365527874554808049305082629736562333825944830136227048589904299431884805728435875187887179991679889498743265820911140865807430074306427691182223107030661699769855531224621805816487306362703904781968807828989063067180907824529055338792364834595179914475504978964531862260556612768972054145278751755344589056208719702952568888344778719298017984291063437476125276167698992158290369594797647686066505660881984635843562318505562307374579879237438767183037756330685200269092372839181320666759016266571916750821478542440396475307081046199340988129005597081244120391639531685125194448531249291115850968509177834916230517660712652511960193860420661035686814730871897675044102648277393408909786613362444979332609353103070273219888972436560997551204465931066601423832161491681511014694378426214203600980142999903067467133758561937839388040762066556494229106419056107713220285859377270433550976142471525803035317108462768877013197846958153416433294877094571821672676976870288619861117245587063328714293803702058254891614105454870684509235931585840317905054374580159249424251934360840949620014546055992392527481494605262908425638376952173602000355446097033328080323447414486274564337224423756448361656806014782420537586588270701434030672799126702099740450346062788338583105835761036220155076296699880682621537107384047232516732500383680910291799799116996227236233809752424815029238721691713548752825741718790377571112860590455304085104134035232550799067535606335966128639437572871542615385509199448393921096186949656991406921791348696920709453594732203429940859652306219159167871925335974147646299917829946113984004761089786880750121928341464468523069917961957654663501522052398118585652764564260386438918539098184674708353875324548551712381747400365083105205698298478826131386074979383385810404395818991860130762268883613321823041141526138695204371328162037480012583350351660646421221004737671274586255883704534681255205895275302693024547259688256994235333533045227428565103086529571541368185526223513753263935153449891316090229934314986800681889514679551929436224400696549410964951321618230757873569891513335390464308589642509148889263095715508247414195237316400708309892925276819716358186645432309330876549575801168184435201301477588283737162551264926940757752423420248587651370963256958209846087955871752911888607026916826173093966415609237473626722488063637426841163731504484955303304747921006574939438981864154656507457552729496236395042900702842921780930738164592662491394964006295138245546276163841614367119095229337322443712003728458204759763317440445699318133727989638935501703029335488070356545432324711924945006306778570151452208725836929775173606154760048624728824532630274148369184173239936474109435261514574860189626544035524057539256642122659282789470466465012245295062075795392198795347434693215085170383094942958173739225630273505510084928854735021240721537035952924610489655696347076618558751004351604246124771922658368842364992916038893528710708791603993549573202901598842873451801203796903173053138929416385139100902006391993755729127962715073357118088085662830752581808703463900629109910315848352816556199404261185399302844182581893845268165941971602837838820572993800414716643425381768943685623452135272698426807744257163383038313886329223819877769990785165440448442382271677654019614012522270637413015715805828052397209005710655201111068667730720720602170509850443573928585799023781844798789484846136702064313203812518681077547035774175404151383334062381649242689005162091232054834080763031384355795668828837452089394234027478455723628572752670993743581941606798041857021482017181507234956756841384353896590532292011212879065031703456206034533668888693774685238288944971100667223777728618889701735275020022266098686281956440085132389018443253298267679462373554854001694538182211278240182248821531484585490580584868681417275358837953866430731877614356956033293308516477108428782961372751673342474654031857025402188290993867746136442834669017772072314815131903923954621752935229384807283186142117459525873012173965513656983451711748700750849411321490999106855891187378530628475777680497002776069519880736793619983836754657830297061644052068835496284475986406244779024863755144976631556953895958156341435319137272251117994438770425654885627501507359909846099932847743475615512908604340353315752472961346465560187179345863235772108092195355532422432973125190522379817658380545070234330370271650227590388390578003546949164796363741931883940555871893613260898489495560186355856140620094333047510737454675791576358633558725309188355395920716882735962837967994074006724945168295672958804387526306389285665818140841164387558203098300704570184150287326958889645318140325728450562781532248405681362811442376226923389097318457011999795869122836562160980360595172344965347421403586899508104653427878319622461087609427107085206448859021147568968695520525492154274304046874250605029820432677559416705910374287834232692054713305794264416171733978559643999550220858751426302395233943698548340767843433040695752731421883039741704826026170654758922185911263402643831299976975332363502335608668277537252275439971197000194123878640457014490102614027059111837281904399632178770038043240771122158953358017228294405235555578111975646142899140936231409534571999897549947717717546850319771296896458495117469901986965671973491239697787078430227609606317803680789566181102240129228701441093174086598766577079714120274132027559852547928934512332655006350383663640086168057867570445826499899966645865167760274124679177850044220074745001090751096454989370522643055254095870483863724523604592587094560235258769048502065355543341194727055066043650180144063065564056852135797575549783979066203613258578994412666668355314412394755966354627278880591230304314680067954640489248217085162513631021155362917694923043846843562768934686048953900268989675903822401614238884423163351832194799764851816084094890399266598329570365870032742343978636071972071211057588216758998815189282246686739055925421667729531757730754830151586810059929655591165375525643943179756514688236815770024046839591333010015247848336445053773570049329524304992227681294516841685110653691403227885609269862177459162633958636904488168776204061572440846130608498817419460460076472960664458209059729615742867435044190133379249207361004220864652261632373372359792574337195786460352793738703015480150261355850293340084929281613595017672255046267099369324041193077051277639644805583823381095740337981128409897932702520388776348956657649846216799274242959586901545908068396554233117574021397672266435373697647321469814583427041487115482683326780481638219393984375168506380772306625022615328473112882760251250047786930274599307305209855835257523320015998436419577285747810005759242277777216400230552404591022434631381321564805942799182965898438322086355436019394835727110345580804967097801004721914949216961322837073014480155343483314923837427279355793965517924336076875867819661893606966804131978395884231229918764036283989777542389373602050303036951212198983181346781934993536407718893001505061277809662000127313564706654947080350775752825390167050285307159398832421880301395729324397892400019773857095195475137568325469612577759376314743264899598978197781657646914635845919950143817546327797807264281156047790409148315035296995088511112664989978777675992945825691034656309123825243025629955181944897263447212813050366513231882420784602876287650443589230430701953294901625615575041969719885550987485077728583693909384515426734783675569895508871245794007180940213694949980355102211855855699598834610137320721943601655503965824145282053435094775361708266967502937522013816883943016170237530572431316732787232869656521412491436476635664582313602439546059069405424208753428106119859340874208447989149559424047593383424224723432406149654886416214451791862855929026654946075604104095301404662825629191777148971952621890655375764204619435127120358522282921174569324317094027791720171392352241197338446062536486559543947716262096853788712075326991190370524613326740785532569360235777468558121583850708484033392279988153457871202194050339284814621284073385372273356887792296444724239108418110288973729146101201551336745184600841846802835857411762196416456205084954541657132135636608531846510306948598563550396314890762337793844455851471556566890549861203869080781827657871195439377796373177053675749149667517865226132804463323592750874764876936026647143788372397264373217297519477110400586503212474803361462754741942192641406128562738322864681756150107917808916780774734519675022557054144731908871060540393698036638773598561454212863144188991137583170116906439795688211437093366005987859052839283721014545659534821160681202686436658975845682050872915420714837635812995338086914755153259341937608950744332753907256070866788201451788701596724660249336205571122601605785916742695685077364640276179948718445115521154710833042833296139328036688739958544969742695735075322470639294394553222433419673957561554560208957406798217704791621640320302276907305012647601844534527102232051122656952130322630867725974815534081059712158543651095591122601100437339550048502810923271612866920729067269176780588636495664057201497073053098993311261122633968314951342208102657302797317985856945280139650630215361197824539935316112184544574334894674211698541041338006002316293749441181739017548874890666489547598189000557940581032160760857070048488069583067622185656592128742206168375937641668896650239818654473354289003962357622568443278982380612252389887192551217827480556855355089256111667004469176482846013374249943049838645740209915379478799069443029326466719787213782686355610882541896691490598812953685943860789357158881801991944165060727816707256234405266998840908958579912555431137570092634029727503324480558061253901902814774605283903911127089769224608846378817276231272281833428651493195714548195325509273238583244449775706282077846995994980927414802321385498121425025327622592319567192380716406519272782609946724231547843187667790098857421503112922089520458357970514538405374352484417672555500440347168271062966122048141708078461456919144295171737979778205618467596988246486537987093970707772493499593110192450631407304076780446761302552541563607672726248029876561307280735889188205853920643363711051434266616145537448628098837194526859874450998075817851375372579094225326666034233526936512638120824607409139834992495853299668078032546000390887809460529618344261461782188839944840423940448240089631617569185056336601209737523367454856883241987564065095700619403598341430269680042834359456081588766285975392301011900326823270368035318982235107655038782198484173663331207697343832408174779528478788689773108121189719109061523664694130467916399581417654881154429245919226949948385588166712926304055282267033870586001617923979075162955632370649933442022780747001178994605918927379009113826180190607207057397571112101776553432256820371352771327221817766970750075133800835712098836996168315219314170705144852733180599758975220113366608903552896052565378478679919547378264057911571893293382902292047656689134526717441629903826014867631295475440098670780753149437871413876866768674671482618200876378761311367822791929827330094380658228920772487131365746944468075520090254801509864589274958904886499855927699852636735179025496663092126351579364156706015266651795672680445359178115760637684675819752666005123261196332510218933237171510203007891674078102574379939346653019274385344677898704588425673555569885414063474157147906305195684356213307799258285587203479080700463018546624953484015420101900634338928314404910159727418280846295697510074524679650402667485705722665766542399663392155772824167342648036298404215157729038753335041907605691666578780414899104601711936999172818195180265659782924223722606185523779028855752124263920305103726966555210126639868974705094298231773809160366227444680872348261937190051315568084002036272266112131541127491030272128298269870188559049852093475953857999434018336512168917663534419384770147164859570529119782881538066933676452884084135774863431261637181789464928827487437525762608006091244157791737618826893484498282955750845297391273389415306169673313695820864901934512378978573836501317089229064145046137261277329311533805667853273662356814544296721082036991301336549819780681655543834927820978123228731701425853762186986921890505810314805751729298496317594749879511562180416051956006716938553700836703796703803725250097123488201261637602356084173543808169984583283326460971221894471631361153019085018314921652980632302311080024864378612046201580854348501213763003274644642296627479390655532907010072820242174757099322277044581021392603585264877710565175621390252081145435058484072200048673887412351139376822824978593675615979796727815012637093304138244303706097435981888288211446786767471973521809733637845091940646909186876831808063142254278562530243322335292725075486854434362266104009116355115514587056021668895465621729738302949627087602569458376508038228876524997049147145783917472646334254403387395000288356931092699711149180222491070078507136003916285384632930371291252289709568787660228516899348020748624383561437166364899375006555869224286504211142014408050357959716231870691357163858549867680789646619102307772460574050947360534817043533322083336900986151444815965954378513218163363178154128490560612723254062734274232908786126322511190334499244116976804586262280296191522894716549536900169432262616212573917996651306779423090005081052485954240190688059325586824206423384372128513503289612911382833183904953095777282763068712124782196773992681890323675403381696488138205924295344746309823389758063260333556548160777804819154113302950796129719215173705545548168288467235770774080699472767891499191539884714503211229001905642747722084812609436803264916529999752427061001808341068086179364886098994340925069438997456219033730161217661723837595880102497660502647203052448317826294323586216038213964590877985482571786475376087411608309948971340482007246580466250499686306653484992985622431276598941379275058822872964407253426001122332669134734385659041815859087079090427515980195420345170168855160335534801353004651907265762465462898722929136296437302063779975260835198448962307624057398852929052517423885488148328989110476573914940413163100635996177244242946900278528938939537353587004284798147947995641850550587093303153765994398534103778406150230868946597819868285579777493460899418474784804426335912974414898171088526203194979425480800767843618950511487700993955674218125454192859588208238695484104872784818198192999562225815947038585925217317000733411320359546140276136731624504152084810750255731818305961959141129444455792594743249719256201037855341759407344229317882395240774866763182840125507347290727203946202876647839380523616749308131886676191074092801313912790998579274830090363811499802983940493902981949545345232802590289876432903287473902927317026645858289251211619071985344462667142776278297912334756042736700317624504395950768337954042678340657150546180517934758047897545199396292428740330149471924173530902444071827543126295121831943399318042288563632685069215630223569730175058094110326913122604082785819544675379146092559976495011029962554366548501552086189175322057564390624743833856671334628278099349103768544997465318775695093701511262197997672466174809316955159035645674154469363118708525688245773463368347366231845771495864305412417543985599160218216383139211086367245209902135516427817445030592195242621287449501724541719954864176463139814790896080827034620381472688822344940098748815430595588846648288662454703220015015982805252081352409463458119106821666294418581523857348236459337674698628790475541485773059444387593061772158526549142642549893112653317408546843257015502866421143847927160060428040334465801367649644438566690034467826609748960501711224367316820876765296784228927151714490883287089773734698847210509640470988643703950736107088398272025748632889978195109582613626277889569877703457229093189619253116896521826551473593775836641585504883225378686986670399597368196955908704047959999563777795204816933945836423381478990500095575423294543122601574694785435917078909334066434602078346923482044945714089604245977584554766260809747400592305204987582173508188743694494187138956438337933211078404547728318830523029731069692704138507186438329624548915454682148161796538784090012703768450400190709230369868275481396634889535387325509462663897281066339132734407227069668759503052931528115136281778727301684189001677095077644205615036461847974336107510118923696621151342141234825163260572305936235749913869968787004812220667997280815206855837726390026027041442189152316388535614324532712018196243811738855632273820792387878594826286760162769773849152371971925357256711329863801271224027833321925207169822336266027979553888464835002823960515900294599248489492047475612054458155774679629002064999718708213071468710624727158542029998526816005685664300350152405978745718925235408692064144827032656864048424280123155519684258724693052349810629072710924479020285616928366343884882063053064920365622656765785555164812844695838891323434405504076674105619887771544148870272481997149442229539696981205850488246393900454186367147222936138370835378857612295306749135805277017725787865985052963766083006529104622321140849056812850815843188636133462667399550713523697017160291783576818469433939934975775928340534221463351508871822711427370445190464361781153430633182186920444235102202117514864791103685312581997319891605129263646064831584947771159978294508866044672492475478956663537926841041088477926373430148009164164350382616906020015396749195005269453705264093899385016420305227417859399669736913951816689412508798522886340455740204869046388864575247941830539750437296821701950832314158062524331113032626077789420152491346788540576778470913929178324804311998924245845361111322139809228475009352521874951811372074248609023879399175821754318740887096410042161028241122840339059358469691775648271275993121043156470780733088534180842413497696711531570121933061133021925470905973116640205848609238661453461835729518546849763084165272991972385885300408499668954641091123589102702267440690417504539318985831853197653658836273370792769273863004531581231150055920681220401845667196083145589961997427285752868375465067884512341411306336885509715021443190526760919652485611202499339614968533360476892905893377757979029992227182835424729310252238473333636680144317307015955154096709520853399315768653540458442788483081811492286779260136523568964946489351455103088516089379970293659850001778683518467604926329780816309880543158817299251843881051626043568536954205583743985850492528320140506939931426904785767847774151574831300953737797992729836830195305731048440143637177581840428647910353378827563271788811954039515466814426609674746369303620865590643414358474218638375475784671739062869198163267284317519363134827152200940908472931829405421858148040524669567779037999735883167460700597389573496099608678467714894471593336410525841769655893345732954201342861114574918875062566283173866668210273556415701921172284450978048736299846780264155802362951023665469659581027503424168776295031965735556924268764553982018208453011938316122223418573218548946766365075923705289511020397831984928065118802712304903354819049561781822427666892881326212282446730537991741056175499874939092034165390204759868894995896873768419872764930609622657849923460275162224581376613888414012306918998559761146903628056127117182683848443435793227196686264743905448296566905410352690591091826562660889581782077047807843314452069692511741246441991476925837489944761782295645260228951289470276536555857104801274131679455510925399547386248276681176200905556198210398994449185515683633298053476388056133016878935264486118156477339057718223444406389629935722239473717650741814590692547534878596099364878095675290497193106564347418934302697886448464218084909624254873214986321934337723048651379761820483000706855079886661552660885307454362784941041913950821648760425085218738135239348897271830040099966536528807681883529729763317512680856621661055374736297922178868503631920348527035346756444662404195503374714403126960399199544097712197303401523354559324926382317554916452636745075333290078801249557626589101827509434879645915368658658342108572587395131889714875838975234608739555152817072326280818925205068226473419528720773569997072065235077726518276085778233544418606333491434444939811134084948808323448100789640470142475262484880352627736438866906820600330506013366933370307700969779781907709949736698486019828216740352001367319598949904345524735014381364456562326521718932636576742222330073218496946862656671654162278331050510228636759984551915518221916819255871280736671885881349075630266310549896177608478953384108765890261817622298173729853537900485315471161796512884783702560636140188412040021507239257386579997138033318018838684686227473263562167459056624502331958570504742242705142849845960095540869248816030452063540462700140265576707272708572541980876727452588770425450748762663090310502296672072134799591396319762333798798027547669276983659261510550597721680659624998186159274334996488400467375541666989438162659866709067514673929602295731065459449962343954626497616792390212708615444986102540951313267265251059261191788094414860698837420760303239151715125826782040230556027583049138761967373406226836059799237010899646270921976481638745136831044577666104891514960312813686932343437134380493519565460483087292920342329001999935445120545033583217514745878098192452026594786509892505459411673642688669910652974034568380066027423204713549983116194326654446582676372490358152039446342243272871212572376219286941575062221505435477546800068467272392961753801190755691296338009937688820973755685788439170206929979099665914436886293442351845546811583990881553165839687084818458961221067561799571719120858621841666171784709627894005791874783089135421938005869087784794434208418276873837202808181602649401531396500622760618877569978704052802959060485887619126647332588237141957476477442194616222004658110334409514269175582095254659391731399948941331279051547419154920659766431549301021617718925179407651359316298206947873841005230423810175907286826806525811996259481108356742060402239099258367061650646725519030365294623696952664998839230522824752454372219748371091828987358473528719421210987393029845171714486412333868509502842517038702472529023324652640193215617692327135909495895478545832177390151610135213337943286091978840609467432244331234306058389048150840743676423460246963469560043836552579254072730174403948934355962327926494938862093523836892858710389694685201417511339634574542654316382384481082460426573148356856203774497343383219973158130831706933351268029893514375025753829869384016793256175672890430671326136692415687414835993306379413284661635687605110936531315482514654053639595518252022126780171625127031105551221685277361863481397090219308971538807199771068242939598501145337387502159309496813330077216866833388879745171736389267021276325483696066639827646036377397284879026141337215368973239454220668171456250751515938557078274622135943981025279755403741630851719917816095126388443989044777732704249728296178118176232110727815018104348156801666459459224920040019520997965923411235896466127935646941470207092157225985077459399643681055890498418283540545590751128114391380483055137857138161064632474414879242100868473504392740174664120683526989232678437948225138784150909206515211139041704714243298694246484387562175244260103509348608761972167931579076801620004242537210866550479588285939811205714882205856567622349261151789607447994639976112563478596466060913075257810368901701294109944377327750196132580279547585411533931882936005285547194559050695847610347792253008888102328660646636963580621258419350607689080032743400620123406643984044972122489653332944559953404467301684943375300675984421649085500378677698692798965014518827224688754664765489402433768341074912241379311052769753172289849120306282934857876148267131006132948932241748828270747062520769021835341561747515286630647080938696767328576210477782810997210917070872824854974258043130070321501236344222158608017556804074618977181456858368549694214683243381390132062149302763638325761893229432145139209459292696217910147030988204973025328684839455485010837795538558661437635975140396080477492618637979524768852571103928267005857414602807139069061380496180995957306143215094892868017098998249728236481880185178031450252563478199908267038055357389548304000976195466821372689398972593445679548424548819007999996725965638332051057826480905688320432857003849386591514345258273168087253489999413104043705809357912382001315725138032906803480989167089983497640802495406872344274018808108091539785249921186177062043977466204244423993051309156652592673751566402323966896354632549509001761345875279104079621200996980358234753700128290761233602942849157993905636195219222859682297550174698698385002359979001605615528330283501996021675170894827503160055217385910982448232468428174971451514855143497593853191371739911275012294317821937953169894922276175993120910877187645412042836685375031113111059765097353311506966649089120991189479046028811932897353450048912466761156530528481166786140834881741734264552232130535545565272464504858590026218817946698724619179336447627930995127477100993491379043887440567940746395251199279801125057856829064541459740376841672843842431584267225669471185693836086882559770583261968017336053913394086962471050613113542956955990896519256750243529545663848682112199146532059800383697044622168200231439891594236447792280000024526466305076669695880126819925408623202685164154321307016465530500194044916977561666178099179150268823789983093551762720856502424404465701634405840978242091351663552040592797030917162150068481771954885197728135403622107189003624802598841240526401180448494042615639861692190785892391082883781903390373351351101619832767808511977096328128643102134029940303954855785582863807128665474790440797015367405592099616530383771210265971966500991556926942544755734552168253465239815830128873802523504420780159654427989530868819909399379314542253829732918423186521468302480182787302274136868607844234179449911589020399107932217644640976524056033282411804889340943643972884513198102617911324904144966052879057884441418183839018914916106480946312120046792853429356972831811477769317237949809311299228371704073399387131183199000150295880154318270892409295729853836399433763628552681995113364790449150029713682447835783565218571848059076034385360154779242260935168406773959772461843689460536227638668358978623614892360117515944660903210060947676663810628548676324123919695863686074193507765950166201887324897553919896814264684557433955986737003694522650857913721603967111500228118625689568498294746491835797292547825048870871759710151786598169807714885928641708523218595807977045963043348147312136263546868753625355927722309211842701192916002372850191926793010310361892424055028679148107959314918627833078966280009577961055944305861516353937328776381359898138307087120716378506618413586468047840014096894684396044461331544179929026566879741319505729873461179341229779135445780604797340186398126071510856109188708444290848378556439934923944461617943101727744253864888435702215980522109926640215697954633460717659826561728241383186085021250441975693468268625729316007830774767921600033745720056593462262505803978707661916185910893158116817858684120421722581308925707471090521991328261457385021415967864138534283567162747764827382713572426146052853631281731005526775985241418838429142325759619392831902633907608672071621584708246973973536539884125529935970832772527514220338369631220564159352096020005884264870478161862598443668976706697930978450735649762350144929280061727382431214927684514065031971105926642016217333847670344613581119189833886028212248179463464257092892704457086101921427511742677900112791689332819484874464672709266009136422446533305662512065681912877004838483562014208766628294078099484254883978162963218670445489992499746522753616255516151149981167725637727098313055865107363811928433270393324066003230809284306359506161651393001591158039223029088170692968294738436129383589061443287780259141454249796271268962560264307386295458808871013945071018706214141063974768226262127576478794038677535338354186096212365962679478679382545612964074307603399537079432161795112237117194261815915335682477230536929249225322141939402967171804392344546697844019912318179550636670080705759104216272058609071236604272127601735345066316267163528860261818955454146913576844886913012729662557131693954969156316454975019721344266006654582395565569521392943029731782991789975432476780554345648577442959232020397154029846622423110342365999624958704181412739335250739244518418200371641761684366552087437407360952484901494058513375491886034713417402537763700618746164705960396814010247121856762305341206468443444356699614774075836723747194779006156723474172303478292830444688947230079313312592618357363568173829305858125961246653593993090881278065705472956812170588910833497969550191462307127253344252214930802312592261437363645937500079901421657837061435080541857255470612571885369984411387584748782037014339660851063655568525741658064074668087413733756398420542838375507758665277326037721062537744394699921669549352160144638263146232310643410466532940427079912862835281805149801680664703163122780265731149626227502848056635095686011011966235187719023309526947756823769752701446442436867262363924845046510986746528214332934691673790459115727907154626992096317545665751819568648986699795976172794733428128274382206905064149158723655013519549578260884953176354386776071780702624465478512543467452084307587914688234197889704433051951453816002675888128347026378371898181235548661619934295210362979289503886945409006544738632481420995931423754763857729790758283022443286581061561822895991976056176819318840116855078525764701249622548601583057990711526642596388446088563177167604916800048824525823783224691274198000906475117791272961117435247184165386787072428183963651108439050739113544887553765561561051079761715164285284572846162140332486575130542010647197832177710607005476892131173753066435137250153211919475554234158445348003682685827213682362747369197460061219248298926439762794400129557802643853618909420067550369702744881129172442677876044634860129634026155706779470664870516900240509122751328919235212384621435441400789673870739163908333126793932823976332836202606559886188170093095127314979781145317760291793373019266937547149521049942802754669115443957085170502204692845072091007398709250385675843477565555055216726037522798832468486531040403081295422031492421359011515962565416154604855015454929069906560874336653192883906495517933685348395710644798634791934558302843626878549835834091089614339367095646269817865882453674233033160592347643663116818470565075112872847692893137787900227013528559485642601741934348310251704905538756652673700830753462002651166771585759802019382089674802835561014900615769538606672566407321098610713495866634872277178897669818179763880133497131598679367059324214807421835706211264148526079634012709231931805067229324347959650601542532008300310672135734711414091599246167238904313898632710638044952013637546625968893118597595730345010066370565346455823964678175543535583640984277031590529378939113162763020021325436877212395687015213053897856934796595228985210827122434148229744210858612314856685917014490769892531834860025220181149897226252306549845964124612807874309408183873321764282016836766403689345394243876416728804879666749150622819802993599760304748560886365480555477976548226055837343594841756240163709186566778482377868129110666761076594895942490241997766748187077961360059186596776968671923578266748315437811052057819891796864173871286466621973060009038363544248813937831541130593435964853224132901348527256579673052652289812591551522408616713850241240322226971196402240026278732351222931109338727759311901431622852680438756438564248545864202892839431906615560040998231827596317274869981940729694403543369988818358005513644358156598391662451583829747009892096774109464702659086534234323344733446749385026355864755583363437705898093350596908900010704824087514824217231049895889361702172374283002409572976837783803929853661208400012907253531909615841662974272266130824257080357047213408065051033014765897623465950903393920138066162284503945243086218245218559550967579827528261907122340752971723258359323755523001447230968768880666052883890647610898176100962099242854735554671826205741333825866354951479073471583800957136318791994797977975389947791404877886716186860849000396367012936027917527482597484736603033812874621738105467964796454003035015356603269159143569874595226220903248536374390419098183961217599445724262513851908061707306672323317290815843351518126601942099383633057620985114346326368315047814833197269044772222049908680946188521520376616723872232753235833851619601047795845870123010628952991469834112822913802842424235394678161116969735569437460149213742357225734105171564222756585074134493442384045122048824262586009290661044034288499825227535845702498235437856763854930277119791897567105978352429532845625108555372760046012541503663396428929027882389922004951615358499039505327857160105317357804499775712973166794533076639670924573419417212434291242931907927492252251164242717480774998970272296578918395985234379016305423896626026997421973153593361928295773030261227380996258185641110492469743280795279226135454915598909585398509036366814657057090401497707395347864076897215663969233159130666603998457710631824923592616598004135681257131974218219634849117970164147251607560869595589131188527454551070117440534817012516567044240471294554679903926830611764345303669177398707859453363154582834518291809045880293365125294706498283266561056109380720948160988438859244915024734406698150900855153946822077206927869876970854539198310809261509360122988343791660937773815524020951418147144543247469544714999486991272638140194812326736626662791334756248965158058860239586831799973058154439135753416736303743466945403919046047885514886281129781320306983796524065457772918353330036351811114212755834724373104101234102335960468130274778439638419146742842517027621565258441746259877393719540432525092298679668246794110510497127979454099439611221307369635156624299913327336138823479112817611021163686272130384348971295820761108134032607841752451905012472468773219491515626366018608613609759338452154281187642274248883709696762629269705243578623183738914758265633661831138207939351996051370104708021624127140352876025233099179158688659822473166274174821845766675463145811844506624960708076555705971982536725688178246474457699406843207686750204317778660188109808823455865938099822808055138756796713734775657327253520192097773635388317458332322989181568689230879255438910852506116786276426394487085540258432109525013722592590964556656613264268501363210723894299640509898504859330000856910599203463353547981688727793149398462554699368962684371165696557125426385514599185145094426417936928172878711265047673466143586803073153792480678462966798233528539406094235912113242158003313075364313305614250972346973042120044835294002246477361006641229651328769289954211465311076141901330583392450221695465236984513941253482136579278205335756012808870386418265628578174730503566036056119868367382458872997414067363188519686814607616934606767028089000343563771549506522662900098161023923045589660066873770639864096840666323227857809901123307173565041778123562853765777193427738414593775447065789773923999550018774159371314761801267347445354317605686078908658537766396813090424343032945075657903452570075556388682652315116301105121344530555090868713087070992553055597851607176615188051136941580532075405499088616534621154279917575445532415715384498409870137518301290989893779548286105583229150374864040361673824180276336240410088886926055303192003552787082331241390491318852029481345161962605821090944803964389371068270608017225509212169468522014290377812046831368353702016818147219597513189697699023310203349425948309260334485743993554063146849741852163766234657247330840867054471779498975060027615076790197996616794706659336318953030744660381963417537603513559294912712162899928478376914044576451619174509103208176831811765699817940177428413011440519288596298151288339072767583977770943418420873760860394371377262499979684104187671067096945081750535382567517834346349004387838902160821115117918156922999279442991685812700986524014555663612934330986358219660840934988089604127306653707318792893368466442588158459697046485416436747541626168350829299093923046638237373758545033327771114204938774856150474941384686547001802997875286855220388990762557529585190278117416256394471721951943644643589558183705795537167598629771906555758530936811603006075007187134159873926385928925993382391229804216888943139801605733289717223244745100179226168782825785455108519614998303285859641248182108397729756297546237359676277188999773333245751434779589411731302548742672773465524640424183418027824576948200299398457817907963662828312697174746863948734380553119275351310404394302222545032741621569752539148043341778813795368808651064642137973593110122842774558576141969724333956362798407998000263645777193055072641371159513596570409329091779726051678340570779327912960786273297694139895946176482457875729403378372670013638438106507553144049836300315958142980348157102687279029894550108441351424568752877894211721372870980649904276184137563470926839770523598681095008413088956250911334132804444316301416358805412412694437237163978243580115808961801779090978231629511403065840827419723774113204010967811650515496526421206856226639360504156147015876764638318659036393934169741181464352705084627524081480377691257305341166853277629631024036992881800446576078103096308255582761815429354837969862638878614136735997832470777820210114958396668038368417198379075847607596234313867321882925420505613182883401003458094639282976160121922965302532910076951042142777053259791219086524691265541597993875214530827064390308722736635945551314669318018940530836142692741516203444391264175659020175786263408134517013798651066046892976862663654636631192672005465467657461152447982353193449481171199126077172297905505976952815521424124460987405935093890187265204495299026865647590250933669040379055303515103697265889817581890568079090960356428931680047957106799537414533202381464878189021179871530025173353663186240227051944114449225094021359275639135748490060915284930592529202280640721213494076032576183217255568164107556495981704080308934660969600856024860378379066602975018150843830595235966170915764763272960694403050941893240060050010811263167890396434474151214485187809785416890406523313895542941808769862624654752986715135439931851380440642722758356364844846592947345329093329615580972132905054929367814860960083017366615005701814939240951029056244629307454109988240154701016779849048461735294077573403473381440680301837579713505841661296098982437927401862439814759550059119548400860613743822242120590818720891544697691151839666247962771723967600656923411426720273876848885838471307212665386540147538623301817838222093882477832977154131856215185860738762094297670578044596781738476132079895885406123780605612257161952403054816587187912283820351682971979963502970415692252774895584602743695458581138413541677413448454172413117366186646849337473898583435186090988436945469275897679570370200995929872531370479813076103233971551520393520098053537701332373361769428342408157472281595240403115354258959383674378461185589771692263075697453968897519828880408721266404903518968961209305690216011706661672598327226775590987098826862165957909865548528854501526941151779438881594514952587019928092305908593908386282611504609329747122696316547550839411439513684565516805630325767511112954433317624469997461075623671715012539627205605628323534221792555016844403170062902360219644981676760252119022738054650178262480756232057412509204207928572545349874320162921372026227433415408438476756129357709168362401617141843626046507422676335375627096430981554919600738544204301994167206376517545792497099242777815085382331292120157277076206884286160566362216826548212692883810735167166548575680302300935868597062722732999622864981651898132925659674840779247656689827396349279825751450880257420133654841339759976011243180610406922254348385946936498754534815961870885942925471134387266888181493095359964115874699978524993441455338350222004977133669217068599700451154227745574905447623133052516213751024251648175743532294398190582535859016797836606402985804864197868806488273983103681715449758117917494571336352386627782666283562110136662259282477821888465524221315839571342513770897973727620481217566326914445737824220795618341995624407979107435234947761446468749775278760688352457697147059332274227133796472871330647671116060191974244972678765722614897794819786962103058972947823616048387082325678121297509929630379711993875445200277909056834101217602305872771813288653256027510931783752740972071614977837071753182607642425363742756206153480362703264294820634261382517869851381156915332545891152057783264960365180285867002354850628935428865436529462440160339029078358097056958045457366165167370446169781347516470874156183286436851788996275172696916751398513326550171503259016638605250983859790921009659003725684515236986280951367566347385202094048384156342120761805990752581333813449861273938213104332841376258865774848655941361387976639949668324959173441231418798291470593509763873760036876644442992518173766752058878622813514394603537473614632171390955645069802726476554127269777439470661417175544835316620285551259426198806617632091691094620458904564172422527576100923559069380715739915785965222127164191999628072464004456137604212601097827488987622714300880197998345905508950984430104713456184522719897725625732144268433965010705269930196393788511589176357635004232534569127340364722309671108977164666263123051700352924713261950292268478188892897899231099997975529275453782252680388632982102746568361235026948492719642820661640778210320910006055094780755032843745228622854816572953257838770318774754526532958541848213564378782365002918059324758756445689915359547386975829841882262905177192047315681318463995051629311938362439694061801175416976148464474453597798463756795686961672865261716598710658224530044157138946423771410827244960678619190772509704494340944200900047728355483696670679611897466953942808623522126497052696103892732808062706474419228213623971764444920083487812902708220412680327864140119831632578722083493876717230138975645880355574817026213558597972137987469903907813158901759183762992573205096150143599497624762018292877942696064802147520401469653245381858461002540725442726545764074374083191421324282120821978843130630366637719321324252273269211664670263939264661338226657123790577949362159798315941564910622089425947298438496358139578848992351224151003660850899670907256997135323179454611887184418531620867777781384503327070580537741477009387007966929963951436285139716444955672959351853874704772102449790620717205912994417031617221323592866644359221702117093244617523368830103829659261774313577915658067899752093943903053409112586197514781957939644995792838074474612896106633323792800884064266945059301143281103486137570437043761165840943951730993287390070242527257994415276635366401605241627333150477521511810530381855526771429619835866057493842675366459858373924148191853222132617280867540724441580375925584126488353078568468037182386277895776477345733475408882052420068434344637907387631728642872956890271020718301829478441966611238452172260358536375679181409698468058488738956985113959897571750971919127047294326379285489672306478414969293339627988428238713595740508723680370439948522270046697926282911474817243269529256849692490109386361725829714090078800800478965285044354635548010188532713920440423638273141280257121594045006241162356831900709044564021908683950595660084244139101456923467507470101903875836698146709269630001851876597825965240638462472834031586525691623035843007215931491872416444226263158136078137909840536534143908034089841821317508216971669350717480885600914473641113493520269484298725904527159995400963842839570967796451768696145819705176466741810037166646283197687084828219600649612276563941121469572921189075026933522436155335316558263085462588573181505149691475821987497208307377034965420320412576870597674426701701803053691007138293512649961908637552357162019820828890583831422483040669920772879384993902777795057710798008894770165188731260333718866586901939849134356535222757615733049965731812295718768140446201176796660015824166192181580130937566051569035823544667380451412276364868223603392470845333312367834235419321847662968599903127988615839995342655063892189508195415117589603646368598992434431720641782450654049221432960547420206164562047012091063908942020568590938674129470581401198326705117929156557105941356255567739387783295844253607593113546597798555629455700488482961148638628827703903534682543643283569419235322170267010154578946547752032752134801222743998752236748449826975653260956772834790172022027019647412064978021381840599697821864736663969328890387934823149288610126485796714079959631118636939014630497901852770867400610830036092491425403003590162562440037367851266845391018669133031881693373157407893554454156354224464712165289326297236687394369850292343830799206728072998122856769716392745879027833978365439464509608330565413684191955893688682092858874961762476663968017306327731461341403760500615670610149968503866392986357885134570928116434356084315334348147358767769613129264022836860666303655206711547922941439207724991877696185428549025872259262532796334933035421795290147845414883367847149666621580996468882153940939364265200051658737551789040588981078594546069368838300868368139189213229573476636228658955277529031387819148163920132073247931623950451761981629673675270839644888706638020034038248237720902873788106296252784944563274514502645775781849694154363203229101133466531950845880543861043195967126791854727538763234852489531651444432850461663583164773935193470640969008854015669965294518883104148894447791553465996578975697155832550507684689539054167946520184726568283373346587319542896674768540503135792699044165254910385910983701273554410448768495358500985654462466650918685753201901864054923520977593374965816793106719969635792225558446876429507198054214806390411182088790689242297382462490521151525341298952299160025170718710907192538525376134619026520647141814179548036037019674345463927977765762224253394833059386041759203583351862545716674913361435689620972998352415863232033118572586780211979364698507874441042464661220434809599288569271438871330271119289367599342026519699389592327594523788114994075329328865470665642535811557557981290345158674419738840091308014869233841446233797968803828088512801777457738129647193467767692465036710986766691959360113702439229547581911345252543141998163536092729564949370069780699213098289697743519468064425341044974773195423278362161531736493942851979661324873497829446481776002326393054407489005643901577558145713623895133014190851372552491573390410524227103943643526514725608251945681586275649182279990710886486061995158445341476553112097659306535982604351473998099672210260619556693194167291538761435583545075818649986603131789360755602904972490244947604931619824596092257963945838550175472378053864452336639881663804503727495495485478393936166384568291302775064578177760721697190279949820675981573652725100320695836280382636314608864649600681975156739044760780157205668988928340878459919545300561154853066282694218063862158506170175564438789633180013952017716546401420579045368115552513972784785264556717740523191882203006941286647748814414380483206524870112424052780247240735493478703520721462888378594419821379273732138007631785406912296519862501913118192737948235036684447333047118038920709965434355283688367752551978178372599636214397019623379166521378361171400143301599932547219849400949515399730578469325651444003632127348590101446096298077540920735654466951781506682457755363107055896819074297330798433652225441721481737551276017664822350943482226875888948422573409898875142976236985760754450799347542597809019185435409900776587299603831497761090026185086547642513696290547710841508176450934944416391630518087832958537791670289961831241492654400836216947838264308923426830191988315983104620897429501342570500816708022107941214871141282812808650312815824853756046676186998378411803686066365716455587558371370725222744157919596358058033531139320207754537373449446761484304108538288572285026394828362201749486990613822924317760469276436115378360896815184601155102052799318074810452157454087405227440156989518835197679718940847510285098116137183674481815023984332753446848633840001689578723925081412371316563839814956828938899138693109450377274972435138975741150384580898528768655574640071366326911405821197226376436227142128626779166265673963997356077124937260276340784812454697155176320881093581657599010318969283472068178423998743368538955219301672161398298893787134541959671748178315294961960881649352030997971993169930422983414586085636628706595025777406615744736291515158740495491844777416415668450628100370279552291590881596394231526666728507099462164098051226679068530910236288046674365687389032903753970859348298631549370178404968941062376328157245205506745553194456982280605145034105929543958536148596085904971768926225293887358487234838494958715754273902257661245244186465216252570463932952592704264006744887004472914416029561353141408268678717893290381010677886448391365018513902727851292364869539119707474184001041228516637434588370249462928787182375131105603803892394134055856752380458782963539041119233330348203437878457641814690435333271101001064964152663224337817995685431601249879025943350370047263325502772664741833458554705666165177682890441953566519071815481995853694847304224239806792895063232033087033295575181791451885959117099849317512849850380455131853215563926235171536249264336439417487581495159621778414117764814289994693266384407070706696120979121361155026275257742177960659115979445103240568499828378631037585565655848276937343116766297768048470225834798043677976315363347732942257427360020989523670811411456548888909224981812258685886756703925208759598406828779697939310149194641336414143078567293130767581134643434666297728853868271185126516071818139356803103532813449576173455162095557926295170997327656976522193032409783702421959152659414531512049215127543455867990255074286121120304356078096195671377220212847767137566798675335163663407888382492799093449977868860272879541059036025910829029929643007154900201054921680724845339464109731450348596416018074045302814067595848832272743490672353420217401362751348837090193410899613886580084121250486970298519507360810910327660906029683708739958890695974985767163510993738942644850036038916999753860563422227810856424827163930564084429625461435166814167752600268736159158471673043778625521317059364152306229851119113601777267622172963973965620376245425482937865952586421909586581291677074016208464783698645970476065403774470234356295536237799327818751608139577673581668398693187081178632428189693263819767203283641251654604376772348095399988424681313959502297989302078324283411274237679967967841925164297875330784731087154581782724626853742271570752012371356990323856193696844265058175949971901197815039596459927173349744845687739005964148807861070589169156600957628874292007595143884162263655101491859460056121364764693057286362509683159275425593148853209625791985072130120540852672509348582619573068453884550602374342616738929182866461882723954119604210339480674061139220144707017846459493473195651804420554657218217311722102965815026592758424773833280288190146026099123535471141646960730723025073991073865201080127410553032406084047787310553924303484949454470823219012135297254574458070050149048021351921799205791265797925558234033072154359506495998232199089058151710277220503619507672743636728420365357578528988435989121811588704186555463818941937238281191777629443773891026099691511161205268215786293737999544720564741550845396518537543635494722163671750917074858851573465364577510546150395319293643699014027043509586112129376969878743096761310160439797860751696488977454287949258949828709517534601620406510250017426938592957062085131949261508489874110882685513124654126458797404974582099600001431552698543778693501821634337921535266770846101960600626431216401364723394369082771592787388771522147402666238059183323333022868341399475229794669892054755060106577571625411288809952490461135044552975429840938610078886370229604849439299783409056608757676968898451025864486780439035963173452658697160014815232988576714147232439307746300345676693350591558761823345525874590452510734885779355507618784380527061372283303307020514664526137775234049816040674496115472201297772950320798338633362194557485662711717038587968465147321201811234062443577962594682860852162415063487929929330821908158597684344869864659582162332585636346595203976108481818871713602258682693809652677330644129545348539823056627210682536883428060940121906022305544407852310370010663982071017784101566336002229259081062489972539316122926888510165476516057302772933686883269781843188798925407509816206286689847415707937929039939481395052614483635774774598585607783041114073312301678345599221549133614665553602855087406032357951490110797839276378191388453306412371201892536029798051321167506837807702888119894992432262705429275072376565986836678000342650834748432357560962821581705589940694678143602353343101018084243414986543457891214687161636364318545353874334624721768364831274390074550978910426402558363505059107481495245671330490156605926129279584842164752913082686096256041674070592929758302886779640592298652763579270498658183957967470653870083307674089977219571408790706706695428286046742230959300713950748441557143388953460939597121367064270834574284877513259565141841768869524491240568173639820805658588739976988697018846570755327025587602204112087893999758891571143083600564068402096770370618964064217412330747584505034405302704282206507095287396812469611239257588368644003915217726363751346189137119705798645841279194449933046659276707543615955857912361593046213774203003837207409035490277088577788110041700205060468547435460484454470387932464738350070130671710103196627062492244775217165377242730858566273377669621471712782067024753634900370955180221426419599214468512803022389976296935556588954444541543007655157937345702304631497904351714140739466150524931265321257504867949397488254826886766064046720399979066441225026496415042349286412062843396552913298796793456534745131106224057283252089417036706172670894043731958962588197142869241204907459563252843824765109515301561144690273736047922041049924571149368012668286834963542082603206195467270027298426026684105097802906554457029456337682900220731608957120645404603257320487156291608002761138062751737432372023737416942396680183704581468157787115199878955755361297338929288856659428523464840316185427240037944593429407210558027216329614751328730442170579257867546333610902947510068868068422463600701232838521834841033085591598123589679945492353402056716203665113316365478111653777613702981015840118747452757034164769585215217380907301245244541837792235023851131727440252757832405432171785819047243727917846803926924744008051815989473161030959528444907318162777644329545506903114747625455134787685154135627562688636762256408647274032170955886965603202431719115857534668043766788119620962237316162099608392536266010711893979720505952584304985168686447914492372352242193860173684837412816014683073312044134094429249393189456343724683232196831694534828847540675081417361306052610541886574677767334657809874384956351811881195811553055342255487025389641416639736394711410413220016116243305199618400341067416099163371089047860234901273474403689093546708098447861911447310748204039492848450758798664439308909355475683325554866927787025817586143072033059016376552380528428032222248044698887710508758250032777266920713914435765530499203550483729574491267755454766524067209966964559261200181596612307659417510335255305238761201416165420422926615641601393644239704962525491136575843045850455417826292431257476800896841622527420352361989896079481821075947787094470348172962723636677264889332211029920775741611653429912285011800168561628705742331309531933603012842746234221725231322511181256202930576303993396584632793536956582563994769211551830111392440682364982841847704525718739087867092000698059614591849804570890096902281210719652653220280502110522907189846621289893176070094488443311837783490071320324254571356221170211758432318343320849583227871946277735375301061342181293646817168470958080086288742466646287679918386182330755835739191240091619389965910285560897124903773342759195581807128601725336212729535094388503732131685114691362829805056359176805913069511953822136434360853473665442033879328701219241275386637990761570709036671998027474955276012265883497982701055497412856514908086069120071170115789897147188200858740644654782777801119367070320718704876817769291527947839083653306998177856820860880634991900425226543483216704084099258917087753641310799107295936562377873669924620910676012675467436707142500174167373172165562370926555877928558340474998090970007553328389450251006139494195657462952950398074902516317715352891114489996357179116387683094741079934953810496342801007288887113087918274271110529343370289936253301991063080619835548666815786158206398875822249964956434459303704787772342042287394575974547172438181415952153472502668072150001174618693840731085340641325441040917284396614916117611435896043045208627818326618247364736832612884615769334456262474279174543810535763224636492148829266196689139316694500206265637273192805520178177093203666251707061850030567199739906716038461270568781252243536396097488238463126802131497743185008357464253352606964983904237544095133912560267808242019328651917122186874629272955172907584456781062665502823364111086910905899611432462318853366774112237053839204881060046284766057890145831179904697190415193255720413209999944110482639200933537486751133513517387122353188452700428663906247349146296123441944378582115188294504804339913072438585565239577556523033983019680712734770946914449590869371339964447435166513047048200273076067020965147228176622926790072677962006201702407025414927118989590263279114036582053579176489025154433929423343249476180178030504324619924455531998608048933941606982055021794210378114333731556460606634566807831474188397046857576000015672768843734102779506074739786501492602263105741577305763082287490645652597944365081918973054653225213661271590211686157429007422872096022210992468294885645602229631304297275649835659689856230805051619391588314775368467204369616766366207400060325114787270071591266954599100487256752277794648608458612496890823466523410619662789593687999294577072320670312303004810447562526732774188910188855895663898396441880034502888671233613427854956057852933957698437695600863239641664991607007509117740083668139753114763160033430158848110578376182024570171141174474015298141813453880217330010229981576736181379046061689721101677073902281517367325991261435373757059052476008677559518226159417392467015593278329317120442707477028417655563984238972299866823811898515331406644838370872059998000480329543072019230372507376394009866486286783605849285846887052394949691157871953956687482284884394526341948854826687242938881995838388749229265650312523680271977404212640995033611432626399508210931824761141641209738106822332628560456594799842435128464084593499457225060316344581844358330713133145000275073929836409337611169321585724268999555072660648188726271050267291343234533069471972173656157080119282191246828536840816318785737874369433775565958988924557996737607596987685703623371806074463191782369305524355772484176692732491956794154894214299050294301621963857673496779594858255239615247451533000238038045874894598912345319496419491364331132633509528770154334301857246071844955924522048931411748585752354745342604251443239689333532455755044140531586805177340347237929510700827738473498591846007896385854184392883853073050601599325386819364515630755067582167502153747864942358919228052021649651180813998985048360986056830642717797401892480604689066757545463505062685641843784491148560193194587574259912856909847878946520722486594111778551081341839515148977741737115407107922715601397770765886739231344939617456426005920981381697818873424861549017502742335392947597620221880219489423333482823413081461608360742698970243364015615791846162068977426004098048092858261624028568048080339487782529656981542999318784714019001792775893569830197434439563815584922924192391736725427455141972149519929316689924200954705133071903798765213440692680910624501643027095790285284259637011672737816443071695739626343423226896859031597385214776858510921403933354495171888955088022424366564821372140198792931007375295257239686311725810847194019222859550666785096140316887362762524697620194752136048881591834247325608275917846441122190287609508942599389786545727362361474802619290838926958638553846796235919847501000372162690162208889114498835076130613932581966867564417602146955565610469033752197407453958588701233011593519565979393882479132777204338089724230613647850044069277976383478943249362074396383850387744345410512388668647721374529617551663779072370624854834498254518079150571579801045232219786292847857781016068027237355383401247854574837846987334827847899125783740424738707675502705271041491898293763366961740493868286231118507612921627087828011039357192087968041459420798275599988788768175690731713933764931080525597858495100285549322649282542890823088797584028251609179518351386817098348227790978290957503973067107976411606650142824984424371851734299433405042256506378551398133531337885548718544917051458767986382192968655831659347125074366978669228670593580607925068666623377576499305947941429073114815706122275677837913825075690533158246175723466495838831401380200201416168244517151507252755475374212815299840942761767401936734187373288132823473668662800311406125799988594014890449643570065397604939781684062958930408613583664018565629029359641536611077263643891560618664699480109139504802567547160852605372409552732384923689328748328034374902489593860264727427654609419377165891625070206813436928673446827777361962810454462198455645786777310666799771658297332013634018376199219770189486488304015710065702547086843664949735119486455310070094932339984808268486210985025157574469151761273326215518152420637906635284244047526892819614830023140681107494346155285490832062031958153910729043029637625721532347653183152680588048773941081143651181137127723403283267972092544554821162998933339272107222091063276453786592362917417864840404049105528728791356199096961077731128288300559685325717338353228122891505956100396981465654586428344373360823165656042053252894058060282499001954420655210823094140044135796523346833861608154226775854361085669147497308701529953001671753045807086878334725999300278001841070971673143756369014742896472143339732221100824634373239846777549576240055692333627107856314461905987177001201151646927572633822770560092544614288607351024932925208185669006549591247779079586703697195614671909729212706046683119339959964744263215965288974841354062034892659415898902799039686626748303971276167601317651333920003643132822934995374350273239973843125841632238801634840135153691231083644744301386184310197819109634776926068398871770325929805217290770250931033727130668492175487663714431462680191570876177075229055023302934527863115559559744633909649838880769515397311870665146387700403708314541685102793671331291653888174134815459652359104097339635518414468813925466269012615876193431920064286441235113034977637026853947196792833411495722845113408279377370434118031342627262661038407885121297784181035051164772995849750326115056771934054654164337324052717184268301521456700903111223203791523278072275391314403669865875147218004223299031022069793393276512093901707470930914611517574070825127073466795040579924335898645476144459748351630103545497214245624542866015967872749998929443392301798870574311234322509371287825112969087429061912332907709979569587699564520504173132738410836321346506154837979910047468950350368651701852344739537211070543247972847442544420283422720365637302712327374298226121628533164278746776136573087770908182706882559346527377950423304617607265610123859911217173380187581647645753293918101088664453574978948905017461457483694562051674287132050631264592439699564005087238105197001128531553667057914336134237328129239381117523658991993692540348382217828134141454168036461051079969190284359530357912680256429865914059415978592012351100724838413415189421845592709452811101088434442242441381571735608605921872198840022907058601806886056098060310054079730468760410273309098517921894300224558626532152058515152815261409893380759076805684703643416547909784121799906321330484392505179010815431022348127639837637237217116365923392967499051440077237705668262267149011026244034958804153641921818289549482229450079763968492073534440725972111261478200164764448814990332486711089898194554005518832304957062608512268770392728150767228247035190109043247717769187875457282105663461779956954659237581973461079495469327041510959521803221824028673461703091864191840160294185776851996675134691046763281630283432905401531972340005022140766556985564116866846445723064254077287789103256024448820114884956974864987661682172522285748698253575374674924971630642496935324040576529357968892492735095920866937466638466241140796780250306193540369478635986859668681106105630635518366449915280601863623644282872958143647984691090703770952368846985998782262398894895871468672190433515804277802081505468297530727765227726086180640709761394396298356716554447513382228826281586905265302456380206777375091475414361430983363885240261828295129666494387375613309568981699855742508898433604615252878879828796669757361652160164754548558867190819549408020463902170387678576381416145309796648999406753010622426845961510510932296915931726881951749555706895275257671263370028559856038356132663601443892835967363520394899789948999692151859501384579778044920884824127607072245366907778898966317257003483394527876964996071756446600415159651991462614571479116628405456275811860441888576745185966577364086864934658609369628808953069601514303310343529419243388927789526392763087104951128561247945059734596924868376515110938670193305682658438131897646681278847742813941139195698839811263529128809548786296580888654697094788393025203321932215894636815253436908871875768799371539281946286237525574323942494734322040510373030686711133186899108036944834031335737605957143858486155309708436458910906760864975561211943105751156786348095803042274048947972474402905791157982741665774728594096812147542752600918566955866393101664825042318953582619735174130341624503239736628600801149938240800505779688391527879498380165944014720236446122653880563478404652302415148277096438891252479288106555208488820414447621874152058819564957977643110487237724463913548194355718488935087974578900297176484714708643743126903508393181913103001546303379320538543913364982189539875836103564363468087098906410984774074602136177931251626879215462273029372708431169280635896523942931130747772004424667895190483233015427858722670248883454770439506640814298207392103325127219700023080147570454619680255152131290696015637876022408175354139771949503018117719434094040816801124263706778868630306294117537062117764262572485526018994352288765917495951473686657942940023710993057940874544079185567613348448102570899546036379975569380284794903786016963071323920222024347745642395492329609407112457280109624002060250661256599266193696184487571161017867930111785335154619761229461851992783487674177983512240584280468259886877517172881362711083375397681722327068693825084266758202594969849650377053239885645603449936390928865981897149130364743566885794757810958921146215887944829559601336881549028555979719384877976798804040534944112683275067685422706125954677127275822009169258734964379024306622366376450437053921452904884139331149880068947795397610629878946787300357229284971469068485061062407233568780873831392817245933235950171455723898139702118587089632827477305884123647487157041004231650381724098492031083153550249471268567603761846161007992514704572459080991057067905472580088047685097435487823281764031922024514987321443938779005364448909426684798781376669379012836702811916760953761480131597431282684163275995769910717587201869776467637705270917120556412403763896486834228760584153497724086147795363508978861275307307848207618569025024035361048619872156237355071894736538437763084814309061100917483511843464842701773916790915788189834134274584470994043596991072164011835452031578179217854116430342718859429073556388528540755973621836927621526071976033294945188153436137557964791009786956376900108146616489449245975965496841130989972064557037431899492078424111960639073312360422300645096312823178359305197615937008642517923757126349073407707522713880967612943157395804675331741443912033758021937123398759263983825475119759102382129013723052606337008824513194937534066038711730733217112414303817346668474925852628076198730938911271243587487149162101815172797776996820185963942071721788874574132908742228642528824002271154769803045759846267085610611090015386604600727512233204271709172257225470512399475642736100846234704340270239419292966595636099117841189440367083345555503063921242451381318358521369742023563746567295076843769132542737449059513639101655141976720774957387526373970171754645494920998372242978506811528833680330261765979440581788703778350480645392938697769735939930082934801210708181939687624831525418219497341898500866830227230417209373118500266973646682036513748638553532786180655425503578558674407336544961073811511342675541565330142499252383398581416581776128173856935052311540763470633481646743847067150474164890422172028725962695035747650405122369649705806969534833252723252266511410081636615629186729640398398778786583150494454402263081573378166092021845063893385984753144625583783258935415527874212790704193167666324573087395357916867875273346253917614317438640185355906173642155145869485454000415110773088598390531531044567334286219288457991093068986631922617683067246194778882993285727947226513062449455092777965977069187919945728294325272844656644265757008524321270893911075215696108255382779806539146989532614946057406142207576952783473239414887732925382047674889476496830213223188015740188756632725403354599186984039289060494938284585872041967938212199327753791650009464003923125362353228657809983297680646200278558936933796563824854747802062220928660248463372542222154934262857709165078351293172091692820539800606989485259231292758190608006302063145301737808825922976909919666881473227467721982654457510557353365546986830439788286393623490512998706886465612080748033825585936211462082764113643471990462988878450213380143500172304314358948808147761921142656320991600012377355423999262352654063872442597506648976394666731223673498551024648510461588632038868479460026425338599665354205354491664577232045985513073084383445853058538228977316862573945638420648122067722372975846675064271859555276285520319594300946367969660143500874543055725298039362157746002721608143693024986064178892953852241879579761349966405539327022218696048713868154107659892376654894130797845829126107708606430576159378532467012514595509292157151665306045090628032985132455551415892190756046565779745342176414563615902863886877235462583973398868379839891246918281454720182341383762230046284150892823115720956833649215563096334754461942737054528481453387381466932711766037730957556050691358626227924114097746528034249492422952873297510703127736465646435679509312386085143693855786697163957313175129389402966513284655610306520928668519015066725396069256281355056859947241542196681390872395135056260548508419169476859974011526101392958103159008784843407892708864757207117708582872406164503947371222405367183434633297856777886558007218802368275044632811182937194145876581955634543808265416139704506853998119416649224789181801997140948830973171529162589131281325079161321437304771573758006167481452627320714361433628223271958076574555106936963938470835659407119110654811287482853781418767035213743222086584267184028409933965745348929598254248928937748054521071213738784534732240150988161576891318268048823748694715223677474651435328831821279233621920462830504374416568453797579104021153543562816541536206651166837057294817872022978319677619767439391037743819419147059872492424417010423676794837985508777557956479844495763585415341942291095941375600828070046046649089637353389414389956262979360593864916504589898869702801409512847624422406964932853566238061846556562309136451867358058663120344930708253010109059704477348976926544583034317185217953285965893918738529980396269956511398132658847549584497721046903263517875990954066176507912385515035573394856406660979920746024010885390294954475958920412614100673086129275429347498416290989780796223181182330568762875421962194600581370076144679084887101509272557817999838501763819369725853597257829832783288989204326281988948271317723731139360585474748669001586043996967516964112584346282987122030650470336296118934395910805582177760139835902458735864899511701535222893751968422620205428023886606023940713152667528834158949053819519224341836065241643981199978253052086563183259502792850784822357789886103893927954295094616576925751982791261337012974489829969407246713191790247673732082856616552638062438375699625949154281251254063327639801342716863932491513164932915597673445123759886521025055954936752809600875498075537439294686248333360938810654122826664916460939521082983456460018819711641544729123377127129947966122623177595318549631864052507190418624799967229721148988968134905691908850788626604915934593007333277117991500920050587530027113062667195101848099708423866501256525684825933748257421152720341160984287654243032815248232352420499958496356145139734510977884416009880064708066777809430618860674588360534986850260015183510331610339763385226911223132295053290970608094328892498526377971348872587484192175901174170591407018786424229183560338601479734780593090431408249364309247172262815779323004504425690730744141584182330911664758252857064295836286442106430471845652506548623956165832923349765764401677685812562406204355935375055472951771137766075562572133921719528460213141813101770302999108197883056477229289174654146127488881189671603692052181889645622494260290177665541699451676770946855468275449183779849754339891456273351582990072864472895383986633966951769474741330303242237488791364870697090704348914964926361356202488417065449627490169266201277576141403128500607914388377624696929770754658873964185824456693464197089560218923277132352156491548949932343401404631297507396300341349323654359157832823650958066398845329022507953616092376941580968235012329775098471978833267568986800870763061946076050138368441536999464102952862236782844458917322456391049377707564276648848044727151900695014430569197807304374672538866136599458566472539255790952612017368300764669369455179080689538454985929522718664375184111499581567148143579242867932396073930123171726353995105979777701095659933260049464353749531139047736727020378225038064992327003926558280018422845199350432167678897602391000934690201080411228247730218931501861757965116927478880812466009696979241672020556687287109309812509000693626485859587695383796114076380502370103191957937830081521308036158741250939100727952609311501030285273562835837349097841454507534778456378755959599359933401034275128339401517198129418468917019281011834473281551755454576120906055332999471361756677800455068366477578896863568020618847573755271771881919394525649304043786677876633723175365607267489788687427651699733406760521225800808195803944615515918010138226275508244191025150397206343035077843307774426597804321950934529396805771015912027054274751083878747857250888352325053668547228552681853962468147413506884132511609537797892936977373204117696052234145227955013708407621644870321550331557423271454617026183628182171576965877594153740693583231137705704972278722972503992574149596955595526303755525046000895974457914070980099987931631090982876663614846841755427832082873582901832478533706436036428439977065786305609267817047929244215657840450825395305143822366721753440934313683830600067303626474138148716682258126363532037951573904706555121249545131447992100492002963634374660469313550094167523384857058952075902427120104041815185215726671329061177157083366099993412838744070674912490340838567873179442364923012306763313383745650217437982944018867455292008792813409011993724682767990558373573317370467835303587379101920490748758631858576813790906882807369737628005857379251314957618092622747968959339959681305365684673371737891449131034995837511428714106103554751453171282494810700149536366571715196472524093148849055277201581640630831071415545955648447210482249719172331675109200334027058452860600936440425634904261277485852862879197987205686665392126160934422701231266635236945832173859781963528599319079157327538981882219878208041085561467835683810110372900786679004046828243887875553857620137166570788002928089780634235883529105975303145079274733964130096092511348383976043866545336631029343563876359812038141431243015288527588953720987563213878637339445275932526876863172053263335046623552073730756934086959886768554119474546966625724821723308250024259658967127052976700340794586472757600505887076811599906941837971883393736849915955327652557950884190780382378769828908637572053194601844673757384318545988054240627580716598553611721279900912705387364600270938644794132575453414426694816215601694095724188280002857150617183846889537770252669103106359837324783281308548360539182660744861609930073814235445562747893555596334839497693989460392229607979974867149873673281239004363814865291123796801012693599025727638288675432206762696398413416040671997946623097131235715120037963292751170747061521698637638422229804576542783906489171903218894043643587306234892231336583199522186919800957393873070201133104893188726095959013048562567654830542764839959062335417386086559369188150780710629437525217034342381190087987662374219122329736968413247725812009477505629819609791231208859072318917117710507123882539382210067587741620901669982867510070372782653677450191673278189801376554101875089542002544610948400403628511279161127999700775458364154903696285474026812159749371836891953610687560470667099862792085800662656377390555858032760678255458556721634668904341598864394168773964193363666809025801028605453950167697441749740823767677497239852817270727549154378897674605662202122742258347794209355248100827718583713897222251278517942756159080978026743117117681945828380425628832264840772230635966091636959384313502718766315059032780185250960061850030445756706829104082467284531818170369814406218292061194799581032387959819759260917862537666110887955419353436444249430762639331547366508859001335110211803962683717948122357987526327274013716808774845396673754644452783447624389409868257736940504344440530079857407314613491939525852040919033037740278371322990029314834674586329645724648052511598722799709463604827016873553909988734131111436277603065246349414936890160423581046973625613815321309173192124781588927946510676066116532209863193926439032056109356477551529210871944339760309289153356587687493869512021713151995204288490513930711682987193360895276424567083540432392955055425542807269439642984102117287737922196278068684039316450471293695902689675974344751998397217024084244680440123492694290694942311507782351189868901789776806828034350077517999977396614581434663109308175663933132162410287395836172711881914877671848656749617456483386445078788258891900803032184855266428452719192738379781951871663836380513179922394934694473033016360825503274277951130668626711633869630811432600599577290193090788183244742072736460126959713225526448483722143437243889535446205774482927905227005697751870535162048166511075839900904881304228371603457601412396380532395126081045911130926483269649136667035064472302341869178706910097005044041557716530185342514018654477874461593208236321034261239776302779832247314633566922210862677667165922951068755000420942731694200047635771811011056676599187837513090362101448135919294826028150586948836143691687525539212199755396396800693951014727639416758329299585331459053031817377240732794246982660640601675680492061719844334865213487692557491872079871271652075867467245707712272371299734312186204789101142046628220313947837657588271033156557656832007431159132392195438261870578162403332067458485255900279641389246666993473083092546415894679207200915132027024955444213896679879721055991063410812498120632672020592925888163976111204210640880220404195340226535031716214895366693477775924403523104497148768493623853000684468763253282139541667092658802334944416508221893402560961997094520535258388990891200486564932531478455569237594848075156998436408569515924680602149828385657998718774479632338043236590047361955557816098825171310403226238331963423161507202711211130883576641539725894879809251319656990927354190299051009618699865883191226868181582768645648875938669909489138426789070373274642784824859250640409515513883572479684284338290525443872655686534156308324600000009726504694410074058840672279010975984636206296685585183271420876429118671978965094057387173726956823588345774648341032714091719126766468288154199615492474733916859712861866039727583803675256000797025363117230478725112896296958437311564916342447789486700933692477915224985251106118065560454520221637766749658518605411311698763560477183648971975584618384771301143014932418592229001270236234874812366977537762856377857355801332553301917411257459562103228956405323808434932556482808912270270926842539047728904942626790372720573706857432668590827444860764035524751586512136883391176285113548076519071966249817101083361655578911051421613439599484647053740564105260831125956985949054087196486921508018222363265685747040817757369940356977505473800751263770008867237065365073768068641952217175066431578926952375927504507195084191754969337291792217251504920617921724072466931390176168035541147659818189793852674855464578418576848860338754417160765728447497277062796821941562837934183591081324578201862980632270168251921526170902129027844193195551544885293210687012931840200415673524209580635242321103837252266748691545515317616447150204438195340160279188685445943627229022352517698436398547554374530252444068975244827518741201101365939962964600388427292706062257860300022838783262425724902471350003841033931357719519421148803915496794872167234835033449068922596509877837133119321780660971569216942172255998742352347720432064014266031757607348127301051767732233373915606338452445386592926579785104567682048961291972783216486934898979044565095962263068738503588445920829914137321147371901465988182646858900072581497893905192203109765500644686915880091994337059599136956747604230266944097133386493471652072104631265145105921150028662798900591233676059574239096510255119623149510405411432578857427564782415558772382103008036397319074970707231151203192153159963647164373895096054116667318600520069020243529928759932297504180424599162352758672393822360091988265177844610961570208561811852645663018234567433496829230411682811314357243942734575393885891253968335762164032880519039572830180529930633514914082405752956106002134055988034503276617939336255343527143622665303319232663192118804144062517218404989560601773168222834364242971192024889412771457868069489193086968112851825865436786073755844974089068901941809651238417783607521665351149945211076695318390421329319971204546115658966309493602696922613067814187173770531111648528478493682168318244868967893842846557584967972330255715302906385141968600801705918381475948952055978650124242324081984753581073541836264989692955635114500538689676666473352430358703707342946998394356270954697276383114257484549987294067360366180267192662185048614202816594211442981152651249898643857067330449976824385213243007842274180182070051884777624976128026676496731495690861839805432767254934391704885698072432778271107517729475617926610088219732627409458004998946960942955942971289457011369739375457752324467747309907135179112965171294981870523186665291528234206628771228624247553432056146172970213591903982189836306823406932599862562464379485931243625228782567952202501422513434944579661910389965915170360993966892963635351727982982062496232525502735727647335094099540498220999527235516133231060505689023487245958095357073863636253760138819863428865345863400845940836926377845272155917617212876184937748749544660583419371449949461446137212208987601709163426021452215587566805671242231239319903095628979500250095583269414347764781400227335840961471832158000610235173812052161819952936273933128433598860569975943869111723625660021612418370721632916911584325493757259273775892109837663474610159788547572035735517494364664938524756744388959772456949636806581879012500824639852477610678898421792963100930030034297552995249809997107900185119278024533401159001384555499525934986303114039231158682173879782521676680551789873377068802721347124623050437533647236493581805740955089861129610764133225853270375194393092112598177329976449975727723538052498302602431457517279687816285447361662600651278405962023336662670118538998458537917373298762565372619428485694047200308985755645151017430878804766902811234760392537968310139441273207147603503382741388072588544376499089078435066215145187866494782541589213992216466309873567124317854490824954812114456218762163749513451462978886583878466522672624966723382675117444694972474961881570466917021550692815272559993454960675881552043478473191314427313020277910869519382831953770442873771582912100924715313174228978037656636626266506532590585510330552556044017242478169155666811195924169733777579241532764678947351879747320543242343538986056222338701672539525170428403898409312680965144968541135711938199762251531397264007317105758315912699533165575305488707238373085253836155922319473850372901526684321935304645536143261689468663795372857928692855533503029213547903138884430362094976115964206982549774963195076412875889685002311310762727904423805211725662010601839568314649545130518109049643824385204038914192698188276007076030799520927647297304405650448139957367048078568510484432537949736932386550657826271576513047324489693131453503804132969989686154649113797402206199650199831695683267385322620644498826626100787051275447971817293713673731629491824883063775157639046049853088967261814682208747019462506268107956066473683777718225978630338819809474067322136460994834047216543101085257887160376048474588670130379746958949696749188625044850243083984649158013159617970711821025649472577166305240345026007911788209400737250052750030501426765608557846069346031928370021254059950325607652118477713731919642514275125164070679307875750197483865508201729571611275110957397895564086626316504528570456239969950251495038387188864158480252836534351350642258889311707692008962968754700528791470450875934923175517639203374196458667019209213651297701971469693868352419346750561993676076505056676109686300099294112995656088693876872903348386198065580142335231472399867028587026577508673337652714700783865177306912811135050993244997813506357385002682497007474074533812912892344223990531786470644486806686043726647100594568414825242201790550951357015016810807688457563701318514058973008141296410481141199343596135126292590073943851704653240331988099573035915333962237921307261175442042112032101175436473071985349772755406424905815668614872766532153516476954724738524917845018098603999227043783600445226082853071616996929958142657363017558746894116541504366212826756231011182466704130723576038004436274751587599622848998233184118089690603068636898480389641389650275728968218971333686483414473315920571730282480818828297920239820581668353640106050966787022001868337426828783242267709791329631563431546483569922160118187539355719585638714679805463003078192160055984716415119977084218517064598356102329053701905429894084107118930260413422624086993418719328105848367762561778948961013150983088641602802624105890698446148351976078393053069654746309361555361586876776110099133143090151562350835177399962609277211322420671371670684761556686842665211478530253560984116336784022900701721728900467131259775872132955418917687360130707236579772514775216614511539282271993208917214105607393370626873978829855047540289080762125139191470363712380691838041942870611866593778957552237265402842301925730286815937853857725165593840995422428163302253107022417440786020814504865882503912255627561984394332553490979420524780765654254139617580138265050849039908949433586110090343467535693880271800119437124670050726987725212096255535222020653847268862154514006768547843778183752944965862695993767380650429765518519154577139242405540273227621826171558706700918232547528944145624931082711803262876869593206666314002246148213054618874471259176548438066738148316358632556531891641387287092955934257343762624941233543130511534010386243502377488298961788116771880114828640680256131254980610846847915520026787537571838118763213557460879122190480923155935922041052102121832047062737456974699376367698998623496094313642974038689527261700817820427915863285675822404691748154021485305504440695696314111822065869969183389739882741033691513395003894431543729004570053677366519060547837390906691124313045452706269586295784876537018401253162566489029567662922769576711435575957144139814881116976163508630557296633315315845695630759304997969061531943804418519157121225741483189882567953273358834927577697177642634354816411486141058995465337851795848941676237303455732041098084440620820193557632100926202875644363891332020994850648413550676752020535248121127313919037641316676183169730932611222806096597543204027010416969283294780567450553733980724298876192445328440810281411988796862128788965418474047370176078684291322553813676567817176150742466865406347242832862239725987391557441055701981482036723748841825516772693633287330061160882537241796362198652510279169087074878470428756613948373890734424466992987227378550251768575265292802681153537928989569630105910276898803746122678637333290187731096023860172948563861808118546016287949149796095635549610951523065221769880377679077411680144487930171834696993920721367296557039020392259167292712437754522706127226978914833583093971924737604536532315890116073261564153273524407808584685294303164486703550487941684001771552283249563244626451842180267949822099045526197762361444589568630157801655489315253649065995348195850776822037139296584136348365717798870986567433320422999653338144241394006854981424249319654896206933953468802674725046219261772001956392316484183604413478736715189589950210206716794291124061601935986011764342569773314243601938758285380337869268084597921495463060715026917018715962225157645277961262666754863570074704475293982925133623145870712425896000092143768664030936783736405679903658303267326538548946904078202649665880934697635294733913030370554473075857044664156143973024471273998974803158656440601453584971551929342885154585916651566376654100915413239798201425160369662765828937055359146355519607094787959390858714367354250341785177744437667154223572036878536467750902901111656483904002583801226296317884853863920076105435067390393656774982892986259976714866745413261412904359257219218477888045936705920194961675310857202046278151249389730962885405407822476906834860555369318501358038339410366891782108956690075242756896650249745874181738968821665383494904496810308930989960704670028868633259898197844629002680554674412919332678301681443965494034915579060924433799252751870333514473540349352688413900440470142564089510565216823657146498319402699594772680763324109336871173351044981983394979084704844979131707115509777043171486405086785707017659764133076268493574937726512306222560972636441270731255229512123625745221227396906559297046584567726091914769991255065673710547107017516549141041217603851732845438480877867371105475584147970694778416988834998860500834239743229091883326506902000582805596297721149025867827739039618971477866483010485514610562360806729790197560763189445910095757951185961965007823966503020187201262997644061795368275287589557389036800551831967858789916101186251007038939735100954518497650124778434677718776983120023564368257515549512240924140522364075401449204089117183649954670166900648018067321840024801175465841394846782839231466978649935384120821248977774267807189070748290686601230365180437386386546124469314436932894471957513788427758004467873431196601773331817949192309950294280002300420268088198165243515034786526569311418912898143471664063497354583476831771830470666969431164450567327762427859054211070194448991904791907019510737622011475199924470536807877705861919986394334106834709727232958523825317456230874635509692246662420506621978926148963371989138639408792988210410296562062593302310262448992137439878307255772604130865241915528557986126494653062973829779400221161420733671285136833772738557751469094522998138525512246372402944042554559215944068006623712491964950830122851347484729636325410520001619641710146126737593990538166930491747125021927126719010306098940118291220909811215383209507587228370931469066443228675997413377377569527417672044099899145421657350047860245591427828180958385917344298136960613209425777696023042411452299819554026371277985717476182703957617349109033453641512407265488243798343333249598851156396556281680476869382677098388299212865886931791305655512632921478584370862094544756418256705306843837730027583975000942466008081611364739783825624133694475114018117614742253193199759824715163352065743339083416781661451705246891333851446281153518681985624910684650731096631824829188078268276141054830322724017438587109080011049147626151569649060664450572049100691401945973277112253491171229953997056024456308311029434731981720455662156379076663269832846111719036148251050730841249695634768534528066653965596766418727180556019096806207531553433292370472461457645217492969131215794641992089984328425878452562830341834140887418225783872406929393477792683834317185289460193205114378072493004294241162026753003255760617996793299972933556650175606302651853222691065227982272945674530764639682042756364483196765720046485143264626751196463372010353876231383593411259679052637986325927904671703276485831201666447816490502687675620864153241145604170427565112261760908099788064776874542469193624295641274277028254572239904857509655128425840042900541333385049460163355569017715046756294900137547586091346421517790127680599546687860502665815377775014311774614538935395605835771503899703875896705758945380225726642262834996809686175484391665619134179759861717248145328458018186674074673733090022179718117439072770375756468578523399921633646389380890489499641024572282056200409134006120457557811116721456633283397522299956941284013026519456951868603554600996610145434002799525406289845338577249206269586264787649154848779756861411746336023367730176363250863292725680256673775699628862607879873888059326145048968822239169759148183026598197702607682995208003536350258659776511256090867475491211664420683044449035778761879654171731789492165368349653379281077152261339609598292782026000690348128625805664684273189020071828697990032693907277011635846466498982983116200447559643684423870491808357380093377568419344355593339367227208196033328074448824068680899686472720469023123722119896655217131540227839182135571710851146431076401449300342065922316281361072749538938324357227542156201898257742301454431994198346849960222119560528597839707996891201012875712387846348525640173903849562876573240391035223242830169243153624726121108572657321317468443296547698799566479623779322459858010991333668238048981942588791828249669921351263873572478589876506457170131951495568252754921678530092947035497585578108873777597258322270880553162882787547117399925736904800603532187612603675792504874221981015913306863531357877075002214854008618792318132588123608417993646568469804484025643215904114440147040080435898157009278844238369244118356053494588688193300408522142352611713364198634976982838358463353930979727234133511687460990119834960437411655369091151161935056052675203157425197368720594096369521005307276795045268047673676579737193291776128027486812529299272238216080294239987940259201727428548997938598694297007324002624221029435031238640440847014400588174625995533988257853448431129721164515519276343528984029795684947377295999643709618781740556134588898042231144230055011438688487661036341217609343962571275507981041284548328692576811045980855034192526865981478189877839226414844564914466704602455424149715259496044388000391766801864725112938366859482360122160089329790962539125507941594564560604533535836833326516226379427138221494109160726121939788214816542478808076462999227728495275074585675875742547093525404688283547065778262047822664449657658078390349029092911606158132501375787462096101166209960790444010201522332375132473858311872677247752559538067559521024207960564327273464888322395716093003953007962887443516762184787414035351886418118746313213114590798953380145708608751926753598508755477755582627709449140395359562636301013746701721404613359055046142675703618351915091349368190443719362016043631355590221223612196994287837413851272265265747137429766499395828620450996357047347612834600166858057475813722980057219176832087167446974274980601058304305981893485341168722905155330491320028708418304179051784029120905834123674429281731545209288400463047883815416009289614551545455057737598930165947476971321865776290736212385143547458850343906199760165794512576471946226670260470201625697801670991831913315570841806217877608968313636707693534488157907973224179609760377659574164649679186026881724898812722098571547927116134554196680075888578701422192216616459778616128952732932029860501367822820560218561782295088201810229695372226812548664482361326783997480328395050830615443544267026657100443841809217147125193158199248499830150077060171002618113957365649819129070355667963798236028809106083500425708957448785235131763945998102634359821193492722557004138431684006468107706506472705247110248203140532752758563967183491088153206662585416119123111558840638905585124974357305840502400651781636353274408557012614525829543122930834911793224423166999988850297829247410291585528691778268262018868034960521421454989357510452117867535274790023878788146980703561521165044553989479422921215403137996798913100918517506109175891641643824003682611783637115539638494154861483758965820985141456855961692285894567578570656070164485968436549100157017263672086682034389946060640042683115578277157821781228011021705789662374150926344871556070934361503140647526075576376165842438355088048412026166026539907089764548376446558260357267833860530548851993944022777759649504230661660523741946737808917164496618195515148695567665885883894693820614149727066555368560679864635282255622062196131393133594905218818970804959851215163648742205945266398948830400406329353582913591221269097969860311507041561325437868270688611930421525051996802822082171142447709546774560105644498336884890669088830088635251252226792836811447030768783894057395485965592500666223495541311590419643603828510725063719023297160266180170483968916201115134423229352708155806804164566062567575377678607123545984312224284372797310020534545681771456170326532025061600532700068752564300580031297574475249134036781959312621888421387520103850370611584377944184480118402561204096090172016237092649366561201659121973442991615717962827127896343407888452338631882051905487580621200068540013883117089975070180735874319874286811320798143879462311333296243607433988883557637141513224282785950115154164412708160762922510458117552290630430063958323393432859799760074746453990206239378577401343867359926551907448481653306472588353997585274007465055139520881937274595121256446190537863356149185020893479916202825780127791085011794291268341000046246661013604603083964767642109070939414310069128363906150183923421793283214712018748648002890995904211977235402982185108470375327124201162847152419650797473297607439711126179460770502696276092676145339658566082225593632532024877524638913120272694912894347665850143174700272691635507176647896842936907225394084717734324391865233856217028288169850306095960503024995037382047676176178733877814126639358601054963699489525766693551053636833711595712768997829897955347926322967456554102783792260257930973217322894814250393802841109499452704557058545340738985390236626371819830482694248899281765046239113060564752531660189862075859833671826091820989829457852600123671219067794635646760338667629651099167541228343905602643718677117862271977660930199658543584863637788583723609659835550170009955619096722363977339393390970545943586107357075162222234735393464308098213207638009673636789211139088300066477931763370493003216100178230564882012501400743425861025075685907837965475628237101859440204168472737352383435463964416082992421296457585316543385813827843270275439683428576490275126426609332560802267253091530206932575502068350440412382200261242259390088267359320755947019931318052346096517209757857366841724852790084694641275888945140356926376858863709858594485588453212966767454357865377480503150050240351922170831067115162519636588110769755349905919735142450008940395237697637557054061435030413545819902763474629738456748036155888830999875246796040189267625042045027319890985684138435078972565948485054193475778405469777118219748884552731331057144059228907380718150849036901895806569675115521261624789871531700562876254021309051172412749018659244642249613090121657597835971926829308084900398462014837273605653974596092257515293971329238553267201819405265234262495531309312704401863495280943939938358948898526087220267617408642503285099359145061066267566412579529484077700951785646784792028714173055358340228611454764145586102234635813063179927739250436228642818868934418182550244393431050941673604119946008434350451407891358939126000214882272006579320215323850092680772041462012604485395978156794641354091650266475912216771891117290550825365389366843732765723930095673485427913054573383408593216215746892967299632264444757676267248970816694773259291059033318395772089490900901111888845996381645657535561343226576310682009171827758044219839223738077758499971934379123233833186859800019900905557903048654175693024220570415366715764634049824660364658805007101610569007141560208311343216965215764606307964008567158522991502347437607888086284272854954524429973928223681309531513320424668185931172059734256199851087679153699724841153561466969781830682760551931125373833201946038594894450820833557646673236181172051376703597768570612912401717016757165516834595961863854714171429159615343797653043797791945379331874902467537741182288767740720869744110821833514055229387899041588041435772508181228260207942418129203391850118725034932104530285605753234254625321139376426158105056273714340004672596964095636941967775697582682358372465767832783551984499058462473267598163125484827207952023421608886999235807753600965911247374626551864632868819457906167431531714373293116669207345738202585472737429497762331270790458418058398935695103671165163551917817305393802792561807458716515821215121960225245103783919910822299439633450899130835514455996647290315257104123234405244335302818734632948893816011250856822276638702022567179960427603548836405044455590336559909754655820344144710703675006560509132421081751942770983202220433307317347340901919056660054213876839902328473839556546265332836548184799405145821718251748229498979626725142114576253232138729492151739800393478362610337303585737198216198205568489121039166246281462589020378803879823021542008750806799517007327622638472334312067768171175141740553217962656248714958586134801587176666873351004789576653225757126117227631218194401343939762600500053759629780455713880829170986160064076223351997860641973742121083599859531987376500296059142797001959813653838595799495341238689648603321911103717594342032132669319419774058748114709550808168675885082424737305027503740445098515093133574429178129177874658587693006098347898958915328122503431990684483820727101107670300642908557450707329616957395959723488907327243432982517827817979345515367117911895613474108050632434901003200627197027364961648838759125238342783780921551460273880186522710775347369310862270513403190834177813435022932802546984391619541593923858856665777076698388784599912787353451492056626249192636108377506247703450877432622160375475156716182060963408810657621326990814685333639880981942093151613522782386149605934971300155829616220270687211437658138057080477710002102027849682266378306159141201716985129692224061878778122589632319258762182914101804646269243200591405304163525150726322405601530951200075898901839699745159119292852988239045843029030455475271386101531602848145219113763711755383259732963162893732417583284505312119311349583835750974513480983130675289808840229598185346223825020991451887739568315682388550428877080197115505866334588020574305578991193461668493956605254775506809230786316255170681374399182407268337701805892331337817937865412656358236440081291168750640178246665657739167101939832682606571606818366802884576475025690773569038826352754410712982156367152174323140403781378433124194600969533968960637441447717755844383060033225395126501005292832492727645783318889833341149071647853619560627482886689071206417666354108454731472403163116000143951894300022352134426518805250317940243980962078112286583906101959611410137745859353478874445607890516796648240749983900414417844032163184350055008868661827297144653948357908743298736231963436298026520620281875900268656611391522694197461317997840973121398600757685848571927760263566208729190371462853919022182944048970457788017950800820987778812044963326342870414239248229513155907502280104071751573041302305656553316710712231291410303605437935879441242595399591294712829924733414359366808663770662752003223203062415149519933817629963151062978854589011027554574998259390988860450805202493307971358439576187695902731833233164729988487501557189938943994522591281842214053581175956274045120716513895595546964306272557403838739314220359177035910315446037352775436803548267051613824955698957562691652775552176570322516026591897360964291763020284623338863664600511988780409551578728443854260826822390442142572922871629742366165706789891070872159325428670670972724917761535577440821252900286329008802429181038770180623245348026985455805614690929990864333132562927978777746393673998603466720455888539357534963245802608592274939964336700166266022343134229289789298428377817131182521454759798224391467949519286160643828487077835572121388578649341399761265878028670950751311479170424575132660696692469215534322335106095737244763426950727385329105775587291391433209462216295999314098345360524731148727830186543954634768298866258975459482926118907256248562073992704136828395756541966212708164973894375985908522944680000618243334647058260243147640014888646967829699584484891061724318492890754421513943540898313656198542930403842578849985230190825331605226872240851093185565344406137648862453351663583703647488480773249621265911603515887729361955989444041197023809093339056673500042079152418626957903003748805666418339680651654002697889962934514980429051190419654780394275703661635246115624624140071187783957204363685142236987589193857785152201512184108128510197407291472635770240999025009714519627779416557610698151986265087802587424576373595442552399717957465615213359349207427446404039969431264823672505982173117751037041983310781500227211349427425638720905475777371044133897534196114336374807525519312987323700793968287585527896609540905007325848524293570616871229263175377252580642030878542824209740195522536642122371007719898757894977601353798096712748741951037438980148869535197682020022181340678374342481862037450210287680726968719833806661912000751565419527475061022080898391532398880803368205796961261589523121567125409428197590351546034663907540349398583063981665388574841281283756109744054060323389907573601467039619838700360088347621915024158879484778103550874603989796274554256166093604828044182857860580269178380101772097832104923363148707072001432036081076163185299183018084667669811350182405834170081504619211442253763023444204969189844263152129790149866052145103267292858335553235992858234644175299442021650176662308566711671091591410484723381672683909635297826248149676228853199922245778049269211909427104262101719145743489112312358042389418937809485310168133834875147199377474736716334124392428153633798504636200243162481700506513352850860024029697692469077950477068703025551460768347898172525614953321438087649089639485236854611926650522759803438404739453607806740450317851651857997416714291863985446805668962610067800561021386039782122911796612574923457865237351968020825621638742985842153999399410419493441374480663634344859369066268695488776887174896548666950586016276260997454809647498757774174902288324079871200173087115179256790635737149445951386923618969997722142758623920593909564734673942240090746804690924536466157218742110508697882656295368913150363829981634510905880788973456135185752636982240596326164322581497758608344608374935411023926437360442277164543143736342564742183209865979037616695253307949174476332513420133649583785893059649994787812665184215381412810113534557141296654877948092938133313675953603734807036723571246798425710313545821582507939440140503716274050152464205687491979698555775759283696391783710657143331404260537479722387919961632175234786179649884509970444048041235928553835974080789607237276701468234521104017287238462069804119603542427077576838534811952950060546415504837204850345063529140049016261296725681742116298144287006315070942684337372658361141173318356728306247139033004625964448482487606605847688679166470822022942841647643530187533241582883780694812991902329139169583075999413517102420372570464658260987704758496188389635034904598002382100902435822922458921059337303874764886367321314684019196144677418451475303040253548976935336993708805685624271938904994032404732353775561941912291754342590435059349261052089734236062207916515351617747200717266238897876652792433679920735874317150690048086038423814768760596958721478908234709704859688010859149667979377275251731500857558782140688693796966191687128867504653506970055487522125562503585121479548374900751833283045702801366087349314484381382332376733432332130376967225359329382528907262128126601557485979710769006865953224771055843962330807529563843444006728759684273598862932286953835605938877841634314511652887808507435371300142692053672546899849102529120709014572882583437341478835349047376382224332813666400420374573151929872517595018182383026499662553902900419931802355539905466244846299319094274490722860613659184346426923065377842551973209478551819647624161263583543409111432258227278823402099745459319813773545128043025538579716001494087973722307775535595504121114154422776019558386424916372061831015356510041167449631029580809387645801091477174386561015709507576024696618247612326078702901031356648057032669929580235125401486908601395817742673628264519815405102851313698933925929950732442187307618177347720752284229436565266397369891803970288188328933273963429347323581320665091301543928476134419980996764323589036991238636226930824546284930701913912762890159863530695754728332602799852197868888578080264431861816959466344253985418607020194913535232335864592660297191555569580801955031716191137509049607504082780709870343112384483982081605709510746641146829223017607244748002638014061981568496354839289300456349007760501423665707505853633617693358859362333198366678772930608022646330026449909594433348800076077091173070974161915871229793181242084320034691815679009209756062866218480217513705393648043705157467844964985923979112148299754081351458792988747550575512819294917466922509992619701036977738499520690333484718949012183542943057856695114097752132402003818118292793604530630636827090466503013785503576234354192311687096693540947080277089948581768299100594540358730452768997585831493247134587286652148777419497238468877878108268139503894994374431759357067325524249772666350293951116804792489339358348856509338851359408745184666468240712288239050412352587950335095592811625470744099101465183897310278233934433709784968256814865774587604393273470379405625810433501589985569053191037937670734459904695000030802730135317009833200359219420345963283016864899901357390531557812129181761941715021643503963090703775439844940774015000090676545125289391842441420491244176908933608584991965139290205377193541773774206775290996143617007976762189829620420375727239457160918436491306755279849368533488138253229213013961368181143901395378122283990749496589240863100381303220219208585965743927954228057058746006091964571779343485769825370332219984117189078071341988053007968697573385855709219017068599863644580709436108217307451779912066465286037755046405533479325662521785602656720536973513386528049017304349540784626555688776474811922461692693530464344974569427854575118347640657109662488035171078388520838015822874536459318252017377354120449847060716365051403505584287845746177475457169331625594864082509102698091659043270735420578601634881941603020525751374678419192681139913772779380528636649504074858047479724261108181386480051984032229737047647245393177818428417328775052549991981094378839852499860378522978820681333424590001923221422424476916833552147752950361768512511683875241517450852246206421182352996058922287693513176889760077734489390821001297396121121267921574093991127925286629136229519975662922600999031589974265235185307152404970476280495114711227583380623113670106821233717596916155736937598078864876119570927431022913576414373684458568634674298524708746029823214751214658830970145326986842737283639740039763172934976473088166975949529942663200413144106285326828402861662991868648388891470831042475892330870671422966486277897030150454025548900613520247864903928497697622951345299226599165912540095412013052387540744329330791439497831083144383922191825518162588501788997660248252749870858986279220598619335548533500337491483732403033763171229149095059587177590586861754339553989929391000301080407450497022658705878529848296551522695166610448601225670164370092907133194533969980265209899371924841167627866100308478477493947257370001902134607007217721611020254725498548345054974606391110467196127558083525092226774369521365866493111454480804490029427132930709155911768311232392695171433395475724157590551876294746457529709942769616753633315640992115307746372191818698462032452863072521852041671301625279396622962372523388354877688154254736168215095883969872320927129909508574157920828879989892046838514912420976893640521622296499535560422443608552971348619345782499418372342610775964324984402374767693152390014185914753836113836768423087343729391715714035351793321281157088162055443171765034430278652371428758734579604704612734452683909187244857531452684085957637651104090217723320272764383547137425082848457107923867352360630920859283270294733983827295929340171860409564448583203794852377859426152487167303858198781880795920870359172749066806788924843303446171613954575916453524213503061881852110421222932102170298934947916758718601074141943817710376403144747293392918678033308068959259666773969908589172117151352233963910214634404735132034160197702080443455610987607086779924593533318881301315703331012230765526098908733436863457925024687778966065995755436059393949459711581124367246501054427882098764018524356746749913891262421482538029807517948008480651717810254342947595599575332262027084699413896586124115911544805184468380039184766648542714660853975416608501712980838451379515380645640446967161954299199312091999543153057676704325379233587989308216155608316870190295051962757734545682039889960807609300335722601938263042251178490398950222896909649430583005750445867644301063779817118053769291837671623995154659144507224848041594837790433941108713975492399010068623979969609335039257532794209007415527373521850569983349870418420278015243224828668184951908931727448402819712162482371740821498733563732428487764451917219333304174549523687832504496799984676775491525998854448100651796921354876384430153908415507460403747241610492913740796433058963167006925211364080899898223255833025782899574574967087305602362391110298962529019125701391320584170335363954626878659157593881577285965554525543285977330360129228419941697678262040893312536091405889403032937275645066106509890302790008989184137151714394237096494433603890878446143099006292882148284059356565852655014599145400566701870055911090357784642658530872071670785068921280322723129460615970991981956628392822019286889201433797486630251841328534530548899397779273945749599004390624775123810093683316967150733080844307211985988816439377050526263930666314651402262119857371411601866764335553357397360627683710720868414734621738981074992358640859149313122038216808331332503587224514991928683788592075327492267611805945595510605545782329572262478350967325789754285514868404319096211417907850262269862066934833276373959989809438868115095179638534032050573359110391830829337372402238941850600266487368724645468738637435907774380155455029905322157521335734509519469312155306329923817800461449682550505831070389902938612944485142479241852605678270354846356866603057496155380749836948005548399035192323939154418801430498542010588892739431068263980667214455814791796189154264124283038119201569900809390688830847908004631695653007489860601511831879441083041914795745056740786893165699996285717527996615079799356043589606028078312915289406532331215593274001443131213820538092232228157836455858458522909487603301975519925324359757838711621626458276718044815020869574177381022442535947650385449817378543269888948866211760748710805702124063320265049104889541854029051161029286680247424258336247892520314154839238101210531896844561664407418436322336793032193719158810109361023592278546296391829199429783514796182029973097362672728703474605265761268736026227301268958807061233956349156972743396554125013176643244704459155673839810579879327274367239452015846201542265094744953501574202007044664700063135673973945339226271600288733993566249472574051000792773626389382425180722323036692754064076982025374419291795936415609801394056306965053203926226086705281029936915406769382103379340898267735887724931420659510334326315397533603527189557335028790935337958478834052376066701243758202878404852430050637247942310599191545734452268561304775921288689861572689340871393555500486087913375867976257652878432085860289354757454155429149284857576341379003236857938250997526183216460040751962390697946084672388643836867666863546566300859100722502667849974740400113697728325331807609076909260475112266267614991838178940264408170805149214145039463168930370410359891987067279739702004668640966159292022037597552695693405574448099110075742711447982689698165211009197264312642617542658350332085142139014455801751905397466147438279699865128813656394898530162711410424364764453414305726016277719982947081214274382665351532199816767814271329537021664343141815692642104704618680708690364737972990516729535491638854519098670178981171762344163062831872007233727848388139236817310452133371466954880243312734287124763847036000480741531454041703065473320377187750001709766001507831672575442111851931503145993822215212413662467330016046556393295202677676335502724581926910789853986954263114410808213899931871566917732813726611724696500866561246087214232629690708500943771425485213110446805570560658217260044127211996806973641205005147697099332886670922140430471098012899414195198641613986037366246392401975740371918158714494524587426233574225918970316332862485794157138599116720248193310441423743758465974274118574738786688521121189655217237170691202284670141790272453439741858579189314797173816579641152507610814111676879551420545493002818038178460000892866859867246666027320837776875888411045542151821181292634738966556285024232938377165747582370922379650744706250073457142562474130032927693351555305754298349973568738484704573731153203532288754502430282210282473029558631334955428041047810188340021425244846617748164615431757747836011691296761827546260877100699619946260197362226101044732013069018302436700556517139016879635671416952391659161656288506324950241789446142445753612701797884059434378622405071534907198841749159031701949518614914295501760936646525009465409863196424980115320379796187938937157328687958924040606496202708517813005083579405011416307222720610320379693684431296537737878817717181767464062304458185539593817504388357533399194327884323644096638562697951219118079415817464871580352828380081660970305357119711983096263067708713520728371469240262168634782882552338839452524527766737311035976404100751154080732637023179645408079552896693479904599247232550644092269148845285182389514812744804390280456063408625533228310708506855598847625278459784754084540638309092078984653925025868056776778048488995827808975702860522398201377931064447020948851366122784477810072114144496579815943608467244001966647040273460731599648003490987979542486036031590377670504065243353418868336293847976710077972875131214954045260736301844957659512525401494013339601639504055293899448349107339660735044035480161441880642994190005529265533421547002222242242721571122264738323045217749431082970444483232919968453836636878512758042636067115994266597475349689247561774413608116938987767704843808575284266785150958941050081215630455824947856808416952267384797422864535253268845297007529583391582476493306141214969246946780608860122830995108414153374114983220192597824596915744850361999505208894870028085616438771098574188495972766118244537809641800617405600041315242473373043272087289513478087253214172383090013283991018743441843680776260187201099280580612353045184006863043726046491579928904945766620161333307517588191607987106460127704444101195360344761632494769330643501064076016367231574507648517193380092919116887487294662058257963146418453042244103340835637009897564380011698718117800644952252772551038057163401046574383433205043231489796769433326438824811667102277161432320909224887368463282533278903462970202333700515044372865723318479361330832501814543778884994756106653571605724928163204128911330103428883009006205190056837954948868072279156463767737414667689647033992312902400428742689478309724200671170195262664716243473836236748086037396493735710283088357675998330968449572171739137440271452420867825359089623217969102564050291155094295639262932671909959050513756650701061717310915469739068648283659390732442931473305150116144322216423288189954388415589981469737136794239254309746844005689371367696079439591302882898038935713873624457362184926353465582148147125321246186204054910638611889875613255387713105117354326303677420314657780408571105619944980457700660467713323524245088743243721662219121805945912965724448378193786567180591989028680147755610960736613203110825320111474504651462230465701290894171562017689580860052042997056207504090427378478117847747360574467827601989480605114405033426112641500718009325982946989768513871788136173605801845513309985784627285544995683313090548949941245720965589981841806853756981144274570180176099575817764706190735620033788356920045483214462887434735910416907526458179132908203835133774061757480453208861830359109713069160126573126383598728482130014945544931712547996344512268328268129135767304623923287039049984831070907956312178300320009235474387941501572622662093403895250438888312888004799169812640187053047030044321485752604917802535479505997736568676838336627096099617519399088491992054115393019059277511101404234964581225697396708344113779234224029415704893227701265932150054692478882161019713206536277954157284564495332901151667220151312556382228622221450391248290873576252719204519106567397609959746095951516109697201560596319933374976602163518817755649482906924144659216865886186213815321642308242006967141752230977393155652718048944739096284983267633875737396625852117950120779044013434901353425675108689047251917674096953168225322526806971313345338202130302433695235900069580266321583830692889133735248707349426569804520471053794765497197889327040904292894449589028962825972235706951892293567701044298436632443544143327392583323210079525424692914582580384582480984043884785146778255564460199287853715840536129631343179447094727736251332407751891666024624040319730024658198198156440338785929445014267878203164144082574651243330014365310643639737749283831682119152618574232419596838267620387804059496375083064259578701317640805279508452585381880816395403989799993616270617979837545228228608960935483368830188108675697153109268689078870675467315074227507840150256358393254055205292930152296887953760827162574900286994953713787814252267933410181919324298634852257185970170325011096445204816317884455889371036528957841566331152206174529036368207112367175299440932036691357424285092659129971469958418376892852865065991293592558464594003777470322526780784479216111687036760543389588618403933074826511594357639340022510006109676618572800154858787377694645087595718792654829565123368305269660195444565911856593745657810358261881628169193014808199021179914783158084285793145529095698126538434794925587326034858165666827936512095054703314412444230975244036196532274842621392075237860457922784248782721532702281569795950566714393020726574332282833999127177874699785703589303707202233708206844006288382908672249813565717706756762027758587689691917755306232874273280257827299867429684742558369401418632667361814379857676406289856199732953943573389841115886889988434086855433659974925766652248002658984132578389895564425859812735102772910783445592345427868255936103933105051449280538816694054355462841325201189721566238082243462563510022197812336351104202793222388866110630616213620606130797599679140540369191205438561946045231663803347370678852944538349559919829252471530820723650664589700026557051345179522678756044220893684333160780164954245096090735571316881379059846179626630220790127412707464830072662862528837533954143903905219357504900861390014105727313927015418414077779593760839048743272491691802370083609709569990861980486638476187568445597256009642196478390634567732429934571111335554891230027438404549522366642614110230180858725296263319203460648621046084650113398674030218753517792572321030840885417735563761349249742373240006654997887989406616383201352023777573343744790120456149945111138795428985720180219020942321250516585774256084666366837290786638499717211606049323825048309877788063487195373873782566505148824426442046874353534341577141486170318155612404123074746967715328192407057026088580419122864386338344781999237058551905315399455323081441099933178697773861881924568156444692654569815255991141950294509256923324618787455848703740114183903498755626960983703735744583188762912691600284734130647335707656681885004102060990978929851270948496311605957701343913323397959887415934902661388743319904715188459047520500518878938642775129753239686335955395615813346103459336763228289758087440629499123440806438524164668708916460393743830314228591974536246372700890359894532030537730664583782903694072937105142187580441206009326375031219510117393867652683469724541018056752149474891263236787481234194224793933972249678745725400652925643820770989764401496966282391191455153617622318946428804347557035240296680335588528236219015964074091661020791910414475989788019953153867458005397796071768950679103190339962214359905910975474557697101418331414021967228653883553607629698743407454717328779483107721549183135399197118169180827882629413776392513221897803256721161070050956674874768626937821692942171232135867079562529277242980347382942539569346504263602317343725921461322041111364628628639425374582381542515146133339109875698035902719052656714501592828640379598644976563251898935460694649333832362281769303415497256814733338083728706462724267749700819851115095454524805802621740154452620028598744034255097789047837721361031928117340950063767124629941763302304895375753816561238786268818098608941134659616413641063489424057243254685972320907777675512612836051489098889408848004292347459024685208285351246528610262091289032500273671738877603774409349543001029523636462442132289558651656588732813074538794683243301740035175238096314072344138261269651380001297817954735973926429688538169081617042835107004060214141996647036445841209505316381199834546030712823426470707634670929430668521728671544522740111450411384020140676123930933213954704036731407199189647932490975950283424841977421894514705463140825677869387819313211310744376395560005469631193800666406452737041471258298706481573401645274309212172621616871732315188289822824088860253606098379464248802431519537551595127581260039216942648991704742517882582284204240002110326745588029687017303174466293813760618814576401728286630968028380748256780517894800852488394879945383324058363087624821667325958562507533308332451667729193039923952098105462240711584519427152430142866416859965933818037325309037038049469310261329474056007560215163366761757394335950268974890425151551167186373147107439287098083036168739285562431998686237752056981545054356403855418583602933468725350924309807752296941022575834904227604772901415311516813684454782307519749013913571801281188638253383863217791702130130399271413438031428236387416546015781241200889258641258576460822939901550987129660144517728736325377600912582965333331511168792537692440957998085617069975543354037224528682507792080293546640409853246398116253644062583203995813911446404255264576636395563965237924552091623934227185091961163442568531930283172970358611795575288250624144833399913255524024218627052547850206055163468670108754198175233315089147790405082230622615291156246388688157605765196230785758717113909733860106383729446597929442576617107291045587299437658031254162230236801596126094448784672646334286478460028343209046662991850890795226019762159861351800916865940598999691195515577788598702911780728125329763404484601113807884977144095561542956168685299491289053462581882559117036885373041543149425865057056101950220946828737111868347513325753655440459526814128501837419413763441171311143505451382867380939780570036560847103138633659428012038878848545405740056427679639441498860066608101754057868709108452342288072651519202463486853495685705340493058883276331719278159108002498872064432339215489502189553536905619341856081106894641215340371835112030497984175614280028547640641536616766370128628968914235689270193301638000012271173322194658519430037912392400579090693322213351830993221282214363461239137596662529754129706104093140045385050516125674036703333295689628622427355034214321954592498656527470425627258902099184424223034241755450004781793771609960228200865759805919149694484934537133170272308836843090004600582918250156470649462495345786402423246009832482152060693487683742322991343004041091584425268297643518860118873991912330909530400284467401674452142074504574727003259775729634855926661450711765235318691222088875221980923920233247124721982921428646858855833456231780914493577904748727738431995372587354539450966341916437357416826260119315560521000568299754937865275689316852997978753732690092190592667443215763289817152100310015443513185911218995236504778693657158619445006049159405933858700124953229747599349607029860207630909394290174454463571109662710732596755760853983211026675902778263143431620797252324324241439677314832186084204689684897253925415530486782313998945421081047236613448933457548518648131884165509133156657421019189264431901439352783323293419496172891942813831481000202743112801964448778579444831081133119731530964347160696876576675877739804436481248148356502847275422425829992475816861710218559301509846429780381783446554618948087805343515488694079363548851705960393429543288729307737692725491490263550039043977000136355105585278762229739223099183924570587192953109708353995867094958968602835330506630444252642195178831465724936599673559392495011134669373131280167620691153159991405339060382789950775377706547363704074458912014237303270105233267671142453918818557352624354749153113115181071420484981945280854948780574351420038433902989011340489149552431036340655450713901679307218637937344675060987640930294871635685382094397898559360983947014814506979429837918316434032108949900033764228144370046474194436628225127743020296867506552804961793340657215839098665067529779523951733300292913290188792202853123525732914288420854648117288966279416645416576275330115779977250896480805918163844696362908351149849741841963182602139894603133655327681332988821165457720918944495309128457251615634625115510704243005612488900967884198923994151277423370510937603239080827613860679356260755448732249552827545344080471063082987126215812494332390339687153946064170251942476941844693282393728499860596209820972607275842185192140286273599578548035791050716804136886938238409690139283701705075324545317653466895039549732022858480905720505894858822083335355534033570014113585079935901709683704347487468165540272535698649976318845719578642438742450025060232246768835764170168214915718203709988790111586666442600058573037464230779337973097413625165601030213409269757087584506224950455066625857174657402655076593212656819777349880731861572434158965471940103973703259728302869957148255517942635555913601833848135499732977443073155988010937411655277353928176848203372820713367808721894398137929490202397325538913231246192155059631885994276011931584115927505379542299238715132346428837935897366100896023374345850264973511102858629412832750072179617927992182405175960385190242223668825197006076212732215807000392394407452179322086547628370403435862638013072202051181904975347801303632811471086494024727946838981298180733349998628922574126905498019193664900830323395404162939598631486994362806673269741601200517096601181089533648081284499162440211266729937886232143278178093213737485325492185887410764759017913003031664272561244854372954033718346003538361603064901839451105582130437703738662959071873144189616612161922886346165716763972560093650228529556082837533210315301271444334687167038741063145741552966630064432562049105965577002384328671406577929721984028378793772440369289822055933998296973832797621714486970388165608345389218302896888951996171947083905537188262844992515635332041631249357765022269280289413149699415979280239460029585576220419845933261225568787858284934848664709160371699765336083090517485093856065084110370959252009991768637764638905857088827855397890114517941055740915682722958487803540359476611185474461080704816828436017872792269094155796348279626527812350102936114783523289169706576734557792334710724964619693230363515290188098560131542717546760298280703072827670264400281561208067083519843894834293852145502305948734653075293911748892028902453667379298704023192116459341445545544940978618891790904634695811719393686851499057584762559232569306702087273310609563788184586260923813632185399273443991801235325495213654074570576622928210799736338168139478135867594126247652734808036292047512556325965040774350133433738554455749071510527289429655366736503183268719129988783077725239437161470692892672198931463051431448448733846459073538601427408763694059636893499755148268021975475306460599812641418265985633720955958142571555439172332990712593537687974530203456655741864419626248016750519197734419281617699361181970219892583116608359239574492863407621656501398905666395423250111066831959253307740270528161335085759125105597602620107589190971740514625932874115428884723884744568197617984112631280286377251575629075626450552370040687639154931363904556306581179077546357274253094854655393206594189406702424220985462976078865155146240457746373520048194813591500261036114705497546860109808034280420723333749205962085432005933094090853685071576322169936872728373455787738555957913808389050111712674435616436091878011881979888431332594087481118387166021866729448861465186072642718807925467455913165588172665171875996135409790709759008129386900856613025266679675796744007927172200858406178106329657429078758371902716775270156607874378106420407144395931744173784263250291479388482043356077810467307464352571249052684827258669022571379911638782503684268490551919098193347738357995993493646872174088612328342119471570912108740098613974793977859427395878929915412121712576128942209959842969852891261698257258759283965192751738481880403545503951546954457257551206972266375618141507085478211677286252580807514469304222305232867445217197611981776190017561146285057729575883309047319092666959086339505286838290772508779416670830001624264458581997360252019121923893290971261476752024241551521955929329380744703968573698618766332879236409023887253908409062426977707013416022260811751925503793870316850378001030663584742937631210482569808135222068968973486796029370008752298462959686571086514270529530755958674546804202299698455526897036790088831061966587527029028111711239373567469639923463320301657076335041222451450129372068834219699050220244712207750120226731481786876551382033073093703733279765535057548994493215881961141598634154793547512536215877811407259010252211064163446908002481484817966884938148537351664216338005950937429657149108440245981299015240639000708277292339163662260684524780755222674683169747861843620899500671619452019134118538254099321425781972076162990983111968722849066718565221719072567429031314525703992087760176137078682361051204020374719369242989911968508982963051518890130664074587997264955451244361312376206292376738575058418521455840322783515484275920574510585640683411055381919968257021945901136623926136969537366738709438895930692269028502634199845153167618558913774279129538184742192163576589619700297934143194452436981002947141990774001246240268895371905581613955518112589274419557507300407680547138490403009377585560333685113442159454421332928623800825806328284878233403116261863267510793703547110878202646331956580542233969588515320027686966551292201381884376098483188859755460352431928057756595451436831714609755029414172615820937693684484388063761809536358359368449779036571195058773760918555210795317581198263635324843497798136050435470584981606605650823651812237460436174920039976563342240272144967323278742501908607861209606174181577988695294464828475814345158161524275725444622976572450934746949495178885629295350025641656484777206796144578330274009482031493832345329587605517366597477565529939048524829488469386409225344152871636478888477246120032386141535450807850389371817016131739981271823813282622545434676488275115172542950830482438441553265770513674923841972162730763257803347432711868137432585978133300500254667204387688210303892301180784385804766037910931268784757560545345291492610926264137636815156246853988629505970035326854012779366060988977852946137747504853611743537041561795577385289451319953449411984613939724078276477631059711002592642259479983016367075601684740164670796055109606937193573521148960078759081441122868464802058231796016888360264099904181289055719040759473957343802821245659763154177525037322691592208235250493640744781792193036176088308264255126231482971215132181035717852338868318017469121374069221651308917525199482095609870852130173815038051830387846790221580469593646442115209189866684360654426331119785637152330963745115741419933142342017373770135058297045597929719865299569773483616868696263391382236905558558219694418287493146326147626924353911460169267674907945455565037673109917681979227523944261810908414948078421032938426932124653387250470672567350561938949969642709282068270450455797139971282441960640669669349254150398233171345530175967680712348274268524882297014836266257184212253992008440635833854598858468883514838198335696949705733216705295162328053713648991939292606956710546506451856014772271983041284920761486128648986374017567812509733098560006084459702538306384226938882589737073785667931898045896387019282372960574332321271493033479661006502306075598974822860924947237737167318803514550550381581401454079668161924381005467640958903723960306056694427329314933798538119782959503368815030840970301583489804200555089924228312490631293160334293526914959345285503257205230658110033543647903079831792400693450821068466666312053332701706733499865068784837351955535345998487588960689273576387258232881195225295085176993211314352315982734034111980098949234685008688475397290122902820987069792750279227520761194915800299964740235760359882074667362283025382407332592109973688062085347803962187073397059297826233820239653484426014784284054055642215903683301058798100745890235409770471408558815207109557891643873185410488328594048473896757540421772048607762339768876751807446686652799282234466824051875168453223606319853161339413342167923712708081145678769977043254041506635077519260040986867391920411887014684266006512735571176396661404779737381832676089100860900918191547863034946413929690164429678456561216838891645244549216551545822577155302070121816174942124120174933823068887846447054162145082550970281728468147982343375270109892858825322531217410103282682472420404207254709803859656718027809548590974206785725612684468736102054055543505102057078709464177058877811246812289521991608373450017583489509715888517775748256149527920307153100615206976561232556039320265873335125946096003164639584437213222165612239970131879129473126289627664275247089899419453411957364186477604015875216035758008164552539067521163157455938948686475479338440316490784609981419344001545929868824159303588401430433038801641908264773771313116204968165189557008318440626499898084723870650497583469411180673864734507459810140472426927458829768770507468116482404890554798439199024356046945463608109327115145221954147636322758784289839630094914673565293566538637303245832335337653209138089717121603963943551151584349826278343805778418476402531953628362350456473310829816369326852089173289909562344826350013806857424716043987404925483677341435404349908433160032227898718999976975283747817956852693887584549518073527805518029247693672566680226544259277128591561302646297111638624704389325603129085443473119222554019098981967090210147011281657074954020875140578765076714374833301812223757330120961295663651277610059677177826420787062683613127077720465867530835165135701481710238369565908785766314644478985331877319559045297591418659932641621980948149157851333743995832198400928873007861195182778003515418192013863769376378747282297011573962861830550271707294300924799155573208274142964684667699769571179611902139641341772980209818079175311935440305587320476774367487374690418632575350616263007944824326678193962148495608082267103770510290967065444335924255123156638236584627165277914946702415189392496284601182627605529544448867400755349970708001625106466548144943967868509753831297138536697210321107781739349934848931833720747226390117107011513124980682720306947946637695504819102333725281264940443789965470449330662366910495279043728217409497151483441727955284700315780622761718365133726100394076684116060908649025871678003901279393136816604501566802478617861341643069465053115933392361717369238778521601884226435976479569497415918357672433880255586812604092610862469932126890667800870881508524282347279812350086065001316709669136142999900785227334462168710590549625683626243486966959117416263812628978882229620558641751854223231958654368673744355637454437027226757953902089053919623537999601124440424538044196623868815554534465653433284118782564864664519817150456934817564392587582129854328755039739793551239449651204220294512360794253747468403736321911586238661613253480414805716057923710803744964957027529334723951782788915825497523055197945694760789286421309990922144542780713341240277555815597328329900733496744059409603006998197604695878707718773086176207571985569266656973518970832031183419645714364192876826709306614456374331900440628502444095575173505417471903391674545002936012273796831379527148219924636762691735276254444070446460215570159962783609149977636957362507600561208299370251232898166889791696717533858679814505806399883751918477470890215883045214078035794244013362400315081840654311541296463173168247219128686879754479638455473731243160072810269347609473880479832465617060152906308911527925698185066969333620007454117114342002705756075961851489823859254201582659916133889003213163790308803893425081838749365381443139482240435527299160071065827660735208806730419407124429829340715617879254932552936645765030430992410281809413886118057849850603198115093605603716887382563349428106676266158042219189069343004067950186535635015826234545472466444644029885516824935951526925933218453553488792914067378382672283043391667523618812603411214139076124536317096689540763639145090008461913018501485373185550886104743230150229619309630451213864684231440126280178578260180385942086199640928315231344229674707284183243899554924130966332467751618865738348561784840801680069250433950276675489787768308290090430580617622974097407582379619363322270580859284193419255096096578113045440764374508610781593291246722289955921757435806399422994953102490316509706736257209263096740649741269424907262795733745889196924764565912218461478085553651945481457090683689378179544672969472623453059253797029743286478448300282619043798152292806130540792151632966379736246116107748744387164918866279828648164546167680627185324803428040559270272471348647809041477431016877726387296572935494122860746940150239194671866364449087849845135900678996614999243328660400094709131543515967394551705976922401267929035647805565483780960585974433762559475148757077126272746779706016327092853361090821738585243699873372224695478400599807752510312939168712685201154674868378130411064512778591494151714329334034039982720141896275379518584710485585772053225429979160474228574771999636484202590457110812862663832425634908729942981850248175353675228360581724840910559343376918420075223711010080313555047035105091325145385732111596361805856415524001156460755572148172343467243131868699937986681062390419746911729405027451166156865495683168086825649716306352834807934402850792194510897644694384595237183972005862193071906735225629348751640145834498923201580193786995497587046730932853159319228143915087765569351231855786485620139691075235843943771914313913705827306816671639871332759047583024216704574548943290298254697654573706228938029153757457753413404138157111034051664446320709304736482490077520447936758305419543013405018222119401547050354799695165607225231854607020822428541490672281769018190764488711408925589316205420295042570831357106251598323067393268564358527011342019539223312712852325033184122144863172993126825783857672102456682313868188714067856157365816683839963705775056394174657502491492662662282159733067112615780896636902574368220242679116767506055892060052753401805354845907377604423135671752192545723085730494865593212788698689968713942733297312563254213478795569492998570123274879177112635219600691144400495356186036863868361892951619870527749482036293997023672645616057959395490057414035448325641485306279435338051834784647920517688801581552176204297261659617323987487353095978140435842372334658813335235204781364807426019340349567486870533940326310472287850463897776608238740249015896613485107242171415648620403773875870732030029845081897386906946481478290667490699503204028745364519386148124095720915834212568434904248850723430229030528189396403337901819835089827440509750049295025939769104134129468878240372121300589771209415911047509814756352709513961522356872730624844875589551937298953059492663427925026918274251712328145748862164236646364396674236121086494472090859778669663258559115778414885921893626398974470576274518656844120304556281602365002543039977686814211115397806451835133826055596381096019177909115237175289746476806095760786180004606293189191020652346374598385527895448060129907479698403005902050207550655272671588142624871019418791520142298355009961096692832663597586803046558732976751734415091085214969273535279708049326846560391877141916923052620538744479938504948677593803653742147446249912665350388650412063526088184774714771553341413091114095879182952720004533839558808487094676647908276672958408675507156429170421553424063251014869562589364350982045208497265896398093680878084255001645557838477655019830991088856213112199303457837965970939152999730754287049343928441391194743220923301181688417067851412745686192583696103177188713241490198308247725322511182635944486938044990323328224809100626166474596327892679116961259812380265151738140415721388381119910402896873260901326221348523179236466859225639386227097738878815343992461672689709474195839074102271420355691755084796137771385380311618015190937067187564179098697832005217134376818367914441923973172533328579010290770733631774616796536580864721018254307545419379306824266186139027545536450938694706076623662034882639162979422003087959753716901335774784576711416376031314411414149773126888895829965530139886759781786849168082324615852836573557664688862124773522446236304270816796560928188087978479504772514807146690548714217354892068243513949043465029923295127395390290833443319657045043855009921838854882885004872721031872869964396395007064553929385920515402109086383442406782468230505157808053343416216834062247642549727802457926075126495152205421602169064699018864369221771933103438623528418481299291168022569533158276851279303781995873484821246094213977112792870405084712558717179563761878947087045454159644293046083906925947415327449418429598032932504985368473146344400456141935838985518943241850372250980319123505269951141149800806235716349273392092378903090121290982076079483712080825416871240760342928319346444541793743692792885409220945145140572559772680229595297008573133549285270206039407917901929464818054607522989204543963536069443659026827879368677236594430530802570115107368597859508770068208227194002963097744257218555473080747026736277678772124699950482299960635858590306408598195241743384491082506678177959999695513626442892321175714449905690848207293994146063340155742409427061580440005263949947092390414809457420200128128253872606770263504650211566798211152548802774424318443293319152577409321941664192813464640692921759097099096613196269139734231365622095399106371705842705376992097234618217251498371140298061389194535182062402579645510125860183264608914591800303198914735092500933967203559974888814351872544230805692750675310645384128219197243937765726804457567590207037362888382974661079081893957687248033307944729952905853369618328842021668048431009244800147207562740708534895658178298775898121330973141262861257443547086367777465932723812647054703579023187423799861761757217790390687937433294554770803836680214866877766009972254932821718870210216261950749035902957492731480206213806034383623364291796178918578366756021885582441588440229428860797425645571840356891994693280841056191793485646032668515873813790425330787760610419949349959898901656350896498155555160207066691712665896183991414178789166405359075490290755857491563483664820639407493817423766196310845749176997321441887693797702160640188867090994861575456339343242242937808709945983921255194954047566435167984873551206386392221814473376716710187853922514266863096611181797167066650395218662313701327655693378358893333410027207465963848749762869009104059111113276275104097624244673436670139493173138468758636960691700061470855918834105581934498552394207323037582373116928033829482041053101671230765644913558586950149280584995096857310981557964137406020859322764684237123966215414971126071798932740577144311733223243882911885550895216948808107276927002363188305738082547400516231769330495620622055313072709485370544296841307651456195728022442883221828791904313930899013722823090496592245888462980979276363818290817438644780526522130234161080687699964449129886859133275896247337748698275127210914875169617692751545749437954357604552718175119328044666123606399345653260354783440295748989041159710459070445920001065150731731118268397761229211738369793723784668695219509376883542045239888172217758693569853051805758016923234970124349918598686877537365186974870085595429910836956752665016946987182689932295531904127860263395803959006963158107301966923031332162753213197629749718814137472932813966314369362384251818399327708289660695280960483957018173430835183836229919509198040457022358303453068811579379265543386778348726048032497770125409062574250789248235373670582183445845686766742859908672337339113270828893510529789765557026703596403383119220331677989658761557215304762594539533439197286751720710790217549387374308444797407511181572107889557857746594280225792802490634080741193725257392441853940793594402255801572220304032823995376227035354746124652365059381080722945246282809457677928945562672740672161862495166902265174591172687413563572750288249263417606337105701210603870241835506684183474631944704193958114022593430575612282588005197966089437758133358321390962982062971474548488297395562041262911850511064295144812521706863959002737419193572469953521121011673206767655626245858852034088412053947706812061928481521769684312783527879018931840544856069404640205308786615339497722996001819414921220929556145315520835883355912289049838294766705824452131607639375843579122102717238102131963849533112412446464876084514681419789720995748510219679132249725585070392887049861526883910426122688956683634111559161918927871937726044163856876882866783473924511405991425949193782432958371582439885044366335054449100827069685020907608691698702010849516546137549986197671528767567645766699400950576471410470451062905348445038447639417692496164376486393283953206620434159591568549263103782240462275681140993717787355252851749334245814196217541388852065448555580996002351207062810789827795564310328284333234904254103839046631131473187708823848794475679956252796408966386261024232908221485166347507847500930301711134132003214401510352339625178414254855012377983091436080144077698757361245617898436926230596872246998977236734374094834395627558807887025389621725842818100831536228346417730197448791212981111405087306861952505478989953787278151656848158016777326404658212224155788895946198973725418641026678441310751275266288291604280511229418000356665238046919554888293196210401767159267529006666444500336404085068175288674703019501523279456717750690394029114406945783409348934448699498664094409876909611071475190900219589807675205099323717901912254096038045735504487610053712140993077489541636896618138328518953964996785924659190713258570285983903379002297260840397014985485693089901394309120381720125771387044785737027077226755178107242402509486733180620913776080087543170962923576318331430818241046834724800616430274927854706980324113793244031435240407200945078879024075876455875080904351743180419868521853666579597619888329453911000702264062646285568328389604206158527128362043607054810440108561807525145941137119145865007660052216444754954053904778588357417645071344114379464107057237292265658098755066985784301067798607074837115828819752542193426317613954949753256331299287598831521378028571920751208485324991502737528333215351810741263112566420846553411256004150382818445242990053222420343814664981423329119630109708079454668558135603071288605562766119865219714879279837254930961866653768824960042910015372038172861542887319314385934162604506180897298185942511159255705753851876253312270579503352899559973991847984774112031641103838022726016689014392300849932950683650914528888811067663650862514353803380962081770304077550553196155983835911782061268622465152381749065637147424218610737715125413569554787626676528746270733214187760636591904618565111917356424993848702923702755364555830234909665834715990842286000056806631640531336873951774633518870843942666982300368046308809695416308262109792465544908458559920759160815618114327018746428705178983116184272990796513923965468787192680008451628172575507116800366744602932382423170276164764097812869655348528047677931977633041224027752423718509610841801535531509020663052956772121471538541312403096434090004693103687020663686444151048146476943386483561699705956431720552857454223658152623108519273002718043753116498138590295563959274065523053394823765187571125961962799659048623511501947504598344852291451929490568346769627615495415467421237629631726967471542600131395926323715508548498645739637772471756747734784763218338147817363353448783054744573189475257228263683354046278382654668660884262321844440286169842936974946152459388294583472959703813147720256423861412618850722615883732181679347064591487901144403613027399409131440207605988394905200927349563409394492499313720079835482943725631584295804669361538269767319381779104457345006266031581278069362031744870291873164062807410151033804984443727759954360691371460838434506016835683218014527901984483852804205694472148258626246743007168277036245960675537585005956430642996675966825884768629714906411137763058506359708589719570110755365771394766504612618128519885917677292763116144269234543501621466625358624792969016556758174024804736247138984868194139206619764695041436534376639890117944930282035687075711821844228874426637579085911609411848833446157827260355340617042965949321267935435029942839462121671968652339155121947118419169851943500369990761981511357855120066707804851844230352739069109533588210634828165043173694692062784858131281863072423062939626747431126484479573567971041675218324109969408356379709779331782111709803554005512273428898835249415307993001913845469313955051041923286011984456751897646298900583136764450385622375240918888069528806790414930273187798736736899167563624550396721954451789215704538822097419558985234208819601010951484454349096356727284781377248288779921705408304213615779912269490102731897870166936875651090427461671181374793449593530034601227029469470438249241923457110554304413262934284941305415444074839788046399187394507541568908547948622349301866997041793659676973091854631659929380242522216517384087149539917324175985902200148679803148439544177860733695112701669956036219403526604665810863665572570996270708966270840232937136337503625782601485968843036828320623626139874997711857619473936066906481987172590300831498967204525031851668548466426081386236631565422372297877590063579430673518251123151702362645519991775967926896184880090286160237782249741105238138291208734835508593001103481341106732417844920999549708582755102614520752010745345577480515838033189068718972818084609541944471349501110667204982740969988548997112032607262262020175820119151933208780493881949238783073514874830460409496518771572860446250026465199918591962102098346571695689962281181861231600630928567107233698502953615184710493958282699111567069543456276881275334400693374837671812163291519098250471246915534108208230440503588970462202871274206677826314205878221395417238566950839396522494254161034855783741887799900118241547168751525535888514155638613375868641199544222570849467495937380607116949183035648291642181454117698460212031671684015737659884647439229103575512555073800195523851706856603799017142531060769195537219464938106963236076853381057203429551627788377846244510866653290200541175779977134165403564661437305967921856562070796167568945476575994021454975339434035673332307759726154401476900497568002159991320219847230189852990712507762325710512458235653143819595268476738652459702782248213851624298944872309047979505554821478329427715828737035764436499649045877671456242066505281573971862795530124119910838379450134786932104037693985854755268182428650111266645224687239765889201006272796063279300084121647008278038607732154485659909019815679287992767223259286330247632537769988312105785461408080810655852618979393270498238781441322721627005615536989794014361338114926719713203090050205810714813154392651144845507127333150144488268404306660226684464231247821271656475169176990669128133769225103025017614261542769667435044592446078069393021882301712209303281749864084426841479854443889465295058645803371207441484706327559968805113190230948061194732293476382275515546352184104459906655015762761282919187141985285846914593712206058259142350439028583942583796920159405448836257200127909173001393386562025442804481767830835504284137472197201893816383221698122185542666961446836965633449427873987989045381896527808221419514466894350965796197615537996204428609921026407216199204864710326656958046630135202370749497868546021000379241363817035361420986898159916024706536636808358473071758118586501326248692998246547406501521324029340499550979268686539141874178683342783005603800610652693361370621752536875297882077024631426254933758726065278207378769488491105375384739548829770685846667556524147678075124306013117825109910609906801344553478881655454511952494683824542810590352551391700356918725685931123241002897188276178194936187076422130093401884599255836292076792673435742589319012353547921340270742938578765275320907984882994122033654177428899676919727244489677594877936720033622686667514603365848560313271713816355517754279815748726016376977171760211295571916490768754807790194960020527352153822934075282585734796958236104107004503727827565990723908202025415321228756784475752793660473456496736740743935824134271789509646261608720736965920429249480344254070094042558002001969526586182844041559378646175972617475191652276439283925593031626943988365324952849958558561589035146829443418989892753085465272152909986638348128217432231712954244537931766434241256572333638934558768825867788852860890134869372574045348546975052798193978732992190133129426130524682076879850675874124268151444351249017879970807580277719156227126346037349055488211765020718598312918149684718882380544912732219406532696334523943512741658996578760698681721536263797671266978063881248230401836585238009730638176660544815767441913713738477583106025587890503362409470543171337140713931329421918523592349531361278568753885424160795052182041991556232613346747712996540978433470787582000161179181992549132414276922492441735238811845828997709826043113586303191253475886812051637332147609368573894304810553108258559133999093990906298585141181751738940139891780767412379024053281921678333719948192246382039574904340788144601083551320179803256742031172959870258954612440567437525187533400966476658848783385612582033506781266028711181007293084678678526277927997996764524786297731827055047457562077475199007782253527865408665181647597545227663907928713971069693828025658847021323459155359751071006085646869518313225116597963349627623277853448932580180344383801083190453306992090562827739850399692565447932982495722154480838040606971602827930286938528279661164933299714700451336722138909952919366866282906480586106332231268459950310926347322582071063206333111622144429069154334247152049435906495114146643778143107501647963330797453039028213160524035464670703760397979018608466252570236061281832985304350070722587339268502761707460010040382615903771445103406560133320260982248558801457874842789782836574559185189456533224396501851581710833267471354531289209681420828216311683467147545841074648546722066641602570973273916175981670693719932487014064001157447073868468836606538120641694955735315055085832605207888099039636327690914880327641439585796727191388704138579317115275554998214104960570988832557095942159494853298013874958654575243513336795889155210095881629406528822624801837977883956193920657009117435145377821385437936010084113264959291968151613175842947207363713199206710548492019082431015402188641361217038727855669440957163065386246729043191428216545403507588016703641069416153605586617926067926141794339805240434454160835439500633931988267045129690734149835709176291515152200293745709875262468031694347555423563226639701523671600730585714596203016623450353102661809551405929266213176993865066004185161351524367766631489545505937478416256043209561362854087728421015877839420495591538167735643057799792297042457337363529555549725468148664051967469650639207849191359615084523893631490655074849869254543970554149742610504770371070578830792527835505664119825580985293374464213287625449947790521328257929589861272072696923307254028045024577533183976902288336285063934274655014508121188217033991401298004950539742665809517630705418826557898725408570318035219725580144645815170847949346942089208745966801903794011635413966038134683690403858787872886920435505033716329469942264299631626731872378642972846364811851530780301430082766132057244189169611770645846811798708220472696228686961011796140685801633638910477643132735009140656513395114245585762303543737998831660444286820055058827619621544635551443176245216539880019323590674586078160361970962342603038834531366067842100836766030500804774250836376427433624507658575128622379096360794065040700920489616511527129472282452287366217218486807808628340076401402763255220220533454423878375670358596072002249140509490873445114912371435510694545670162313119334427333440218880620898271382199767043202837343006883599555463389354391835817971705609846176830234486544689831718344806084515517529372040354319197153230025876867857099938724118195647355444889664971012085284553053693723290662921435574140133364161478403089103431088069378083114728155452397582891154818733762394385898001259925857348425677255082803689265831349775302327615523523789971818425902392560408595440883564953366713435443713937858713645579055701059534550422239967147885487618805902367671675504844592855342673559323101573545862777537164474783130351044623794942038779236662628746319658639666249429476079716965514871695361147512387163924583470664769703289606053541733287944472741005412354515234017015559395329204677748085920545012173781363201595081135453626924032965658902141950879451530559031957504519992657694863189137992554934202629320358578452385256695322730528169720740006369428313756236606315562208141176464020892758137265912790627975886626167588472837407690920263226377404877384678753195601480412293403546719156327139959033866872691100513106166801256501691136072631518731032778756001796896520492695491930024083643905501193113924189854676017625964883299466273899295217034616167314737742667306063755813628300328375336323874075573557356082219130587896758130153909533801149257571863774178326705339769470038126413630777424276141978093126317316059335299720965871177350517419161318975974339607967369778269851639310075161673231744408746179752214311271850297158045892693686997503134232040953768048631431020682663298664747406528292377944302713375080319420057222160993306500159433815671129721520789141216666128407935359781922582753669333409554517951562528103849151431064911568115239307995146035496973867918628721948565259965209857446612652078750983565294239427817085049180392258133786909944792508508735904390510638227977659239144056189185932659289327478062505613181000249411891286214368257462109056754047516870213669509355498068658689071471603666132321777603350576944679671521967641536821044501141945095550589854785778573493672349572655870903702985207629334328982030596585786463987748122739989717147405735322697483635732991374493723021428689569240752890967896694885729522843627414575595381713646778273252260452671565183935851856450536573193175213307781692014228152650244575502977073280973794839875124459236704661818941826960272307036310565199016385660758131132754817812206980201058616388076168662123882227107765415460193988262700612161549652045603871032700943789476854278373167283044908570550160114246219119395970166855729066319661340445602248302896469557815693835564746040151747023409360545100708127117805849487091865813002749113667048104611565257514238536686885419954015064545601762350572037284876963040883614712412827257826930451331628163197445559833989903227941647492318335053573201960082632379440781371908173951549494611296484967104500910877883994411737364527401385538521064515092117680193617225168631804415049185608329188323462687486384132791826389630039011303651877918829566409749187209833447508576650111615155956680411818421134830608252928499384958380039205421909959060398698051008842168589049210904913649345103065379656931423360185504897390349402356405407019195860924840258354790408718659470604759059953578930731678333090847888727707992781100542440356468922064493809229323365512178239013218619467506256467198316154826394664111458608585551622047973689941666727448243605655345676640118503499447130561115399587040049435632614502932344636136294490141665946824559172687406148073223965520465536063277901217891796977867140799528394838348790171746060829803194332447386252349228042371456036161877248580063582196229723771239957914800045137543076248480544800574683448561002684988797673378133299598525804249759974100929427791015860242775628295799283903047377528269213609117278041614466915043669241516426911110114223372246653924825237859088877420576298373885485515967830970732242784261122200678192289858420727409570821346777119063587547116990956684714540962877467143116997676706428194418202239696707028716714588953666234347788374570328061475780837326733844665679617474796826219217519335442202588611325017488367221031584631210532001906936642001494003246720023138742523091419051798854068723793995104300162199132740736457774505314391945245387419816177581402410441969190606501864268128050404747375510560672656927034624276822846762621599203009104025202508345771845481240869576892640785210775915901800151019506615814658356507234100762253596731788110321066099314623988621224055138827275140353641449127269275353566178161534460491518672805309062656033964719200543395799429894909673789616235218868787018052225038754489163152770098733172759920603457823587138859029117089368109381435124043100946926285980516798041633860699077070268826297261098061321477214978234106004618088181984197750770807161239587266755501015733564443382943399722497014546961832137957077951469423928662555977239470862951501482830994595231248941564612290228365409387724194961514726277510805411183055876172031822685919115585153206158231684610101535337743536254254968297399553282484151366026039323281312252804938421123531762775990228045981486487981052200082801473189956141445231965464488599103657402099508744221046929310493382564727231998623268062108012117897339231083839103443418861645010005047435664908427884681317313645387921123831630506875080933230326062847235807178625648810466512461511746068908808004078132576772142477844098495328524665597942624018993278410108161780797705751476784371533770456943829679096053177124779872326569369051612009843952210850898149858972733565488101807439236277917889149001886195078244527205579598578150765921634344494054367736522089508109243985842459465722679275516006439533117081819249577965353654506015388676238214922625686512892911936933441712721025774539740493821509507347163822869219619531870241054993559917346036354461452745286012153592023467156107445429318164267607867178620342883661521243540497409428918806922614547644637497640927090899728676032599850830235113880920083955382520122446831386645665973369529358037241761227212268956152128113490014138140119096472651602342616188668435425250005658358775560281345144563355975573969698105837198225179169809345318519968613392635261542280804766347806469400985566018778210314413019925869288790407528793080609857759540915432748270975156381012727652884598668373764356776954111140808015542621079543716802926695773426226064659381421415505407945734202867788236117629770199569965002061992405627714465783493975602118072072738310651423011563536476988512706730799159042248634679987321139671595087727679080151522439178988277971594930843944796983788545611862952635711387956511566355434508173169308786913067636698950028408797871255907941575002854677986165806074903413587877614898881033555288727023133839673529280353094207938315194818398522413715966048559639615879176168031047574981925501455396842851052336430189370968574438540132863186059022282174400695593260998495153982522117686881898346301174605437935599975582836555995614880277442501908740026747546928204952412815951529193109533180124366043864280269130218770040174098646882814234712549579544064553300296490511198846632044756347767828487216915995267204557310543471178779489499911317507723913945770750179056510381739875077267830586875648565075253589985892842066618667619532916447745857639278154894822530756790766487409145035409596824485379070113521710427906528278292985499069863336569367662382104502206442611676744179085411578402085174943700903075193032593631769352019825194447953290827358099954908376093812053065601485843284219077993570006118237680949431353494088690184589767374619336831400092979047143449181393661959551170190007427336000391689743701501054712180642016723299609574000144315260067903482714677091759298711557576276164725670034176065464399233437679250121797675861582598260020845992755195814344300278718083884901270396858238951412804114391278851530759392373945684319860835174155369309561123749034456890213542271317725480683054046412364268263579000597663529785196809764814897613863411351273747770740753919233830171901717483834127179926786169742139099279973878916922271340864609727140859617740410975883720357939044535122458842171368490973006534970430408018288367416352786925005891232457440746245174867547219258969017713551860553030864338547403209461114900371876233513219570718078191840427890328109767143578624667984827553571399842312142702465532102201331092825163466795154108355391682098397171946208258000752309520506104246922887984423380469570284815226980305707629309574729819518777314263660868879082321978601063043708044016696646040845516600713373575536279015190042652349436404914598702661446906979623718101775459033039709718959594127373329452296630778086499651034842939462879122438190629981898801842737067978269555208976719425453881617667859478638758797351225526075509641834925676018817219676499847009632057528517256839590294659285071847930377790500253544824306220455542196618632436117261029294612006637166338988006569382394864434915955234180024038153106428574977336629787888778216121106228031706977907336373262148693389045472340004204054921924782908207288394111361932929877448036171544675006863733508756798387610058513183375028312069721561020243107098744935530465626736200828035276629111315601820896793641897252179079934752253415025624459911094067813756950561833766123320649611308031447035317936902756648026381826965313593900462233080918593484709423140741623830784593995242578659893926866824783919271775761618134156212552928746820765832963412967950786556600988079746898441726455237733246799035157856306301705143302162699548905367622267050656478074056497578188130847073579506320394382939382357806652226004914793389318729450574119214028030439183695804280882380012466424894901404639880139298721843449177604707195170183244747229874386626442932951473544657832425538298832428400490779311753538560879331119430646566692321450272176366594274534050150915475048161175199403422730034289538752140948661125149816551306064420312026156449769426815860524577195959039055127653326794487826502161711891320284299174064161274324387480457535344416110212584366383300205747022999532796243964724040549594986487320784439545333254409525807673182914788053830778394349730663509953091538919557093903176065018067230462238042292383908511687682397989826546357461462078125860448476521481867257775304336551568658264472849235878538070500715597232190622422806185490307871437389541415743257724608473935602860986127167230205820823726484731895107853849174455205970531011423754813850254037910057131217279155478933856904331932332143964143404212265000692882519888305098131694077555263660129173306519863049684486850919558920538298848975950336895139330980251509805491780638927369853116119427988341976758042011322505262739332404096876714098525197526135094922480314639972908003726409773283113343195696615582376880556415251711235056649157104824129601622821868943740524269597211844235825103101936594548712181395275263683000138127266310480734966222210293796939719781104027354315785770593512674241276235314013932629129567654093726308780332739052935196050920340673066026612519594695528998427128275620651020321132067356910262985009964575292636800342488423121115168411520917638227428901369530685646825881300821014463566128584257657763781690727967167891283285866812779154704135926707944762601598033337530282853799623239360757373146281239776958725429910190696914024025472176576735701119456004915679027685978464692470367310078055912408944809546294372237664676434084494853999771630495509482340240919525558591090093742872643269711306938786191700623123114796986747934458782921720174068585766121257075641645635071079345196807008405607354488433276509962277484377405286239016856013140171407560430324618696071904030544748666702920328831841314726847471148320499929317874111667400494393752469863159771304638806405744010769385893972907485151505101933802971663880785306900563379302285306086477888993228963686417664427499806329233991478653536739475417635637109490961038238343674528871988215778438745770945241193328735336837884086469525692049769305115735139211065946335567149994336619406272453379499348054769455162527075494728700104867104434806827203868423049158435345988467789309656651124009391421251550189956690638814524897126506342943426930740873909091453662453923868745391469519512649671809017264296349253054189917697863454224025946983002208566705588444562293156580058312546719194562769726679668536755260215608879394890521366443846925144568159079339176616204902985991705244934015687272576486470881867467554276836511984548602898529391879483680677143825132227372331642352972712342078627276086267355651051887914151617767364259331648999415085226734011907353336577070245190744087068534585332806698250317657687065860162307784787058358865124538513338999678668447906336115101183874137385282996281397151971580730790102612302312693329636639431146763992444632877629190724791275347204124363668080039718272093816259703450211934211527411322252577199790220084007945130883019315923248532773083404347046098678905500537412759405802176436179087967910780595232207363787750053614931397986234422330680025661739801815222843158334606808820326364577452130828120621126891782796347308396736181081203091607963212200342487762274821730587622432252544642092196427603643966929851504901755787714268391272266135356728394687542509006595070783190389968886025199941439671989642666383786043158465437884151950838284188553126401228339376773088911382351886930385833848306419404972292107597393226255504418201036463062060257924964002738334330098386925870991678901231747284372066644151616405386909697208134011060334483225916605884291292073017675429037033979312880254145212482517565791319778730374772312969000871364868582600443813306386700542903151299318627913137829887406930885206426713239892150887175987413767618713601218355084605325690783972632837048239480912889634531695118737505480943273959657389119612401543805970604206822973930896537648070060903025851519235749093191549489842611017049086775165040022576642151420130872727862336726168102209017520845007140149232775267674716045033981545261557092930181591770997161421159399477129217899499322217066841891685122559479612884918304056546307475220655891915341317306548532255139498477056773221199416816702751129688192011306021849532877937801029066182966913733685531166202534262573387666412324601078592027001850879500780111049063145808332303007828734883307182936043092103516616383320386704207462545233619386382820636384666049977512719260086790304541403983872142438169904805062967405133728297417279938310582252061541785683902912492290751362396275790852973845938503070697351668947846911426281470000796572003342428775830753295917034539756128189235349323540840129419661407706234237686306611396667351964977675815153722269694998277810396667775913129011501554478770011650976945270791823452551338282996857546099722910283353891816159502098117220572423858645897960793707234637921940732096206104934223386079484404238055938285644074005674061719292510170562975359137806582777744431962786229118608062946018421347975355024086378100272062038750372179332178204734694715470833861142410369902421544793765764050276719449711181145704588077467554493863344079596293561540410033174612595979526954432662171645743215509687824166763172882698781036701288145697413467825403597106655121910933348090768332984340031583508411059327152968339538326417525101072674773238381650073294939826259960369251891523420336592564694947778334905353713342038514420259887043016812869833732740121140216209107958094099382421899580625024915083666594571797294627311910729158670762428327104463955495383478814277346941349658491029704006145845200293574322268717019453083365160890795364005528314076790810282802826757794227681143016372052376160866006236384117923936465946565434302482520690092363756143805313256291823086148456869554472873298183708571556456327790793293834707351476516317132212850130885800923872113482259509227218197645950604431592635615509591915568497961482237824575373925467025753622762940465573336579630505892673624973568466093558660780400853197841639732934205134573203146170532512828207762182717872808160155779335199933176603613726636370576387767968058027000885862752810388863195494598870009552631115164658190855495645600335551163734037218189129942327073744523870135703121791067881437007961542108537381269200058444555843239002048849143031001675526690869029179735202157658978170027085086465223142541334314251550469283362068021287666281884766278302148558314023553136140781101135873435691861224813667107542660609994954869392250133833040914623918540735830458618848838239434325429644726543977206290709939752542109121910761857853949147398911283441209715902780870353116498227542636946330245359402798477873257533988010835158587936299162225478641439431335308601042855027457299618869396772801460558040597990108516165626344564388069897694795402414553354452758941150179396001274513110093967668918459989220667505782595083323613931149303597074222534097621835230216436289654777727533713350006112325777590664719586443985355863746868918983135481560740556798121331264164688492543013100893205880276221870475921388161457659101601836930520342404103265924634285861827683968822959360564762143521717189688761179958744574368680176122908538318590620949690784728309957357075427948701236194489254158620838772391564035253897510930228364742662039190745114499850400960564659197020195078955775709629639253156543960442183643066996638212232727329488426060720230642882752945276645519084760026908262948258528731345187267123431376760532817966711652070899776396782282662417974843443145421611347095683310291466315545153706558785999940080012540905075861485957579004152892615908876714700268941196296339296491986990701866862954114269104233637204221143933588223410889385414545928902189657406730886216094553638755402743554823208420498102995705915756809506876234005440021734978938933189992785939376403073029468493996656829491742638253221110532997400876140071090861634177827617508059788262552252290419901216683628087828430446911709337833871858797185396266058171128944168223634368559354310045460360220984901048584958407971364902853217537075093425259498972018243166413589960781806452442198463514047532216706911696215150594067850544181553522793794696473130688861347227801380501276850438993814534554922167200022043946743519168421454719311266634838959547453218970880581389322081493261804146720752911363856098570956047431096945943121611622143261568375843494830616490367973599163883158424649760844722687927092617007519141208951763496678214940907211845405498050501690186056554306517100224824294678024906782780168912808076682951386917530961644910258363822907949638620361343675595348934766154130993522634182231262801849552064901644454992094778508936003769392382307640313131329779379519582542546049009459464832565446837156579834609016415353820036885497314770234475499422561823975444951983777382457190754100943400009804656068902922372194285407522465364894256070386321240578084374865499231506802109087379710769370994545007462589820926936276331535718041725942108255188605181488836648042037683078797494430933508370124088052672528926252818900688180170013696590106865987954434073574012359913419438141457560015388752653275944585005787229322662987989004608508124241449660067978437843504965494911860866111907232210201165792550540708588119592009932578068144846650029525868220710186205314020298772265091703058138646879758339351528460921354882661260156860279923962923732922831433682178124745406853352909542602581193887560668171416264682289184663992285205416935496421341674128543897129410423892480974083410832182184363977024372486966083874751261760550196931044559248064255693119328715968333662909191460090404950252041921676139093596970673448568960631899913606995912083795834189377869399646282644444323786563807154128471288597507236585090240558364718335711287416190164443335248475385606637117702214102272393717144032487321489611237869346550775086234747587562260428413049123181802819910494794507847316543896028520692619558875593905226714652973438826944496131154026709496779580057650588287046820386174810764223479105910836437104002177980863791839840050221247870159012699092631502010848021631564604313825987697674930996265451579513467401959269545318573417869974535366001618396901224564405162959406535126407660645491095449505699330997112131906965506455506494174191412246655535347916110106945856522841309624798606533486228826225109830804004203417382662844499430503739674017123407323308100784041889505093340768338962702184157648327212995574483539033443628212938047031570837991712045266506042910195821467577017517282435742109257730428791349455063018653414936222107775157743203308573396015300842675189928745805031873899398835021145820817093600617600243246015699479307752059217517527008554201080484864941486791332965980450729496975863074996739701776725955280090156894121780930287891393449650630054675207223992566273399512648813670494167938474225206001246325284523178712848752877356928515410818605009112535156790283339459036833631718193103466095021481982333601654293904155380247378243021451168185992835237714204867193221859473074733456865698259148206481587885653514156506899640026308645746917309836016226166295453112532630041519530048213463911546966856587326743633289987647524417132507882009272627430518100409690944967422569351989911215658438246381640076069329453784353483401124547569805728668011679968443369569331760288377923738981173455404996687424360607989968472665493551371850683342201158275925547427863655113342747815209505527274144235567702087142505118571750845405026643787296169361587598840256306146596448912797056401432112098174486498463898116946818125513223404979657413853028432214172883848499425037766197479494660298639610146646119786598455192778235816052803332392439751882833654679929014488771305437952075099875951024767986134371265650806280855450245404136756729756089640576973893096546641882781992052214235424365666025553287808023392717395242812206354706548828140591182903936507449282753753154774548292009803988296224635255114262056975313704845075836721920075091875953196441723957345901027972029267084704078467034934178208610213783884867870831687367099683495736243627525989589583632369113513276941049122577198174137799527617815833484209354832401796556011065538422841578087085040596810904071758123748952349139650802906064387171183537906987098880410765401712485782038520336033530610368744812122459849803324520865882899616893223262074969308943805693737313611520757052233916272652624636900986829464074526902629622967174646589286123850404451406651151310225332410434675917071435681755677064691297418662151623662842761040106375352370007979420714617577964447490564469912264925199022806501925693178291314777330169341541305327447672842631691530782925101379773046419258346925918829813256365348060087050473414765022673116812816031034795320153546942668807702210025256892208830038619877570615187687816953248502406812055299007997629292060123931814981853633867210860859534062825110653908369668327353148213130475731894737536878343473837694396023995193656648964602466172034054062738981446999310351329486731790603831683354412685171890203000356242777669405515534759071378488139173821978009027740446146624493181796111281187801552872836080113596232883475588495117557360367951330037104760959332871638281602119716002991588842366853342073172886974991354296460777224638716742832298419214662386195674850918474169462475478179345988859088640172018883875530225373294559472470739545608125608448209048135097907664686247465119345593960591917832475549433925151372928270345853622709916411601540754240758647148550294428438155637942614147131245666871406366783082390040861654591760668875215979299452254327872237202679706348150370297630609990452002287706889108721714254027324846975130304101417151898661543675935316753867632920491760935899915463643630521845055004324237224451319031263161145312430076233492826848882756398781491589302741350272554325204963784210712678296416495666909793332780894367668549449588541917369730320249864952980000923065386487990333904403026044730912002546490063861470923108531730670476708938495406468463863425471909664366300913453934761072545099216639033109612544877650517485883065855134881685441719080450517740032064123065190988618990095544418597929313663125233695099382052797165916253675695888011626398457525556403211723200355335296314700573031016139974364900247859419338362336148183607211892423243217887230667932363233870622974084995558802401413451551830925428318364152815957215157590689828676083951115627135881229341210037301277386195273458022150052037255279732996817413257902069533689196862296929923843978324434949007086000233860232127136722350267772787100903125438525434450621620396094955794322881050248747071393311257962910802048953096855803764528394369611895402900742510622974829065887833537082388717930906545928955985031595813257989659651077464789655826196170874272043995142349849645761261529219564942957423578855885512691554663036290962211375395188211789569000576758125884723378708796819479435602939869037383998159824753008010124018871226286872147261227811742042733584520285212769295537869951394907840894480655725081611740480507087877609748264029977568408096716628620476246436168310814078254726913245679068746199873791749945583418668269288252786499392364053615910470002486480296682160023879443043070477767842427708948341124781390912942731856052274712821993846964865863586985414426607815364846112346384388355007956964235565522681711910776202057969083043749492226043434865677615171066688452967767553867651280480287474773792419864246819307882960211001302712784440421894248657131022601476796051700623296478086347944167277461984278845857680777100249105380517682491242018039114613422445734402815675148630622507463942452890857925612348883980808854062717571186938736712541098345884435794455239027739906920315258363059991119511937657452279515912716124404881073674285178223274363174960264408124091499873313567670410154263372274165184592141408610218696145036496299850925568595434932627852468218100714814469521389291156173136676568180074615810757795449261841544084767205390495392970633833552419377275267826185785547961155813483312452751973353070390402398846206856693439232135943327104647900657294212648380468065988347104418350150069865334263670856073740927713098493925244474004324708191373384666706511788312491819536154155308049915016678437217467113246098958201050401074841802213425014182532489792955248625357989497676631782977308188488420021338669426659919011642689303939953695392600553969140177393278871681834990254950850562896964675073991408930510239038140824545380670516275543466290761403079317127397594597470522272971367484616059752693930779522121662908410567066663380744516508266275032834480405721697880682995033142428222003994454938839179703699990888561553209141285206977282721802791778787323793165502218861249285298973746752681264531869102298081939894994855848706643009020350531715430075464290899234654219153759834729035339978887722637120384163201989182138826045116297345601070780008416672499265644115835926172268623611939032871259042478652679998239655975239674372889206966480923559684798666687494861102001663343506448717863150634917383496728726326190346946417792699706230521924992059484197274884570408800919715169289277933021259715306888220658240293434949915502873238418491188236383717472099351058352800115920182140728601282369949168202951042851612807760616579481294142489068358872937479720562136541437730505116228321634993875774126872247367592950476114697676000076924345775245798034938123256009124264569803289169385362517764945747676796359905563906598598555558553587505442965782532129688235688547542888109789898297297028251912932759971926025218962911076213269310491142532968147115114368260658378458315845270904091097641435554090302642828476575059711622267699755341512066645734061959146902562560051626205149464341865720607461443891525166917591549053514738110207959601460481051007001178378624919873529712978563218329407099471509812007665174720206011135769672374629484556576695927442038222828959243109858345489768482575706979073724012936737465925866721107252449828968532504703866706664639448912396438204938488710750240095747296823210949536238291284759985490878657467010652995841650859613514346743361522978825456168327866257648864401965413215189750522760887304198947634287855977120644715987221370322877431358823709219664255173234107654923356307536148567390164643643583330910013818933030294973811088962734759378393412322745112507321656031116808859895307283518143552317918392787696081866273632248185411765287237366267903275386872344090761438122853628657364696487307904661297153634467866303710427100601711936939469854510142959424917670918753795044518055050892119044436509219555795285291431676936107627084052643060888331269136434799235944601890220236406180967394836674250955736626347013946893675986136189132886600435722396651774339435211350038991385280652035255586850134581736257739724255661247745239468754123292864261993964380177550787614831470651653272786660490382382974136630936181571874079908408340133739296955830774164369288578626058969917767534778839537435626538613306400426598067586042656378415263495936968855360857372557502608438074816830016051932101204073110179992890961142622899561157295977531145610205629145321695777520008544425758819431847878693024788576058423003992999697197473847335062347504642723181424217500793926823765854540649226962021110892636096359385043224221135529553555295774503780701537088390354536699313043297471739121473928066781495002032675412333340151457995755503559105945916585779149204157887234910725243836479361910820074013084910085530852089834871099568680072790791515670346583047262833975632790107752397479445516820362600422658742845442922657972762225253535335380176463260025710703084890408467918913942119918769814355986979668907617221751618965767344136559360147246866168267436589741389878955860144395606945256211064813285456905940363692523664004678133918645650391436978475454183996974068917716152625436471981691368170341705655523663179593450079998966228013253850580859822217624676136100484492364211433388010008167776203897350468284508006870109218360970891411792229891480899266519781702780787236431968700011740357825021318395257435499872541631235657327631440851227754379574535946878541458417658004677332476796399452160744812101469383927514518520318628365873488142474126944473772791192631028445821159796256575283526604270195158780118420114802025554498037692260541349497603083805446274505835456718960103234266907839981658807059216696778515207802165272522197407216223270745853414034747915798776811301184124410544820283592547186029541809483811200615637121027279744761053329280768570344123452067382516474650722341367307494804732561003207600971818452453867656601943182945670030533940378205670216221345571468666107663121863065895884042688880095454588569777492694195526915571133857299447070756747750947773816463254881461409117309868288804940790123927013407788866962541877014503634468115367374656764024098739731766652788768918028977902593053216985184819394032049892479687736839881354666902187604479194700722854268673651848785986459650215206574543677304454582029444698813369741491996731027266460372203007067430083171608027039610651347736856256601208842633054116513000258343729797706991781292687677233697002752126926185517953312540368835680207012691265319208742763891427009297110162836884980150241554709572663917176047677786891176289365550434138226700934988770018726545775185311737392335750491726589113556635090242928434736137165398736522129532499030614042629339822207169833589864227831081529477647778243730571437562945200676629548719042203422318595537846121074815204885474246844918757823185187405622839238017803233709729679171810977251355699697246039733876218971168326455669961878835452893542748988177820963804790351096921971838675356578722241652627947533591298728655331639093251154726768039667648199276187454906759790205364262213365274491682374165191617842188426715721884773407949564117671602265905425221661026142861436142763878855716157974062170599976372429597450035161733960730139334482298681087060951142822872404072532666607004512703501333651711688241616290647537106806351145809870133412522444866715558616476864147014244660621945084652377856844047231044993988620602473730875143300992379767164556158368099141464899219598265060983459576132912814830288254544545156836446795964529098756189054984534419465040985221753975852066093698166920211522030710275593151323018332173556836547699914998331480121218884268760912271794172662769423844939444933085529385767114328693699544546946857125999830089659664591377383537886713590273366031530615015732957633486973709325667914496357099491672987679451477734894582861744462618563692769107202773715438326526115713751343692880286314420577519039264334162965711098780819204638481628535391551748808844997188828356573211005318594429365084022308030120524947909602335138482564048355338637162801182094392804834343923474362169588046950570444885986791010550026959388827470545257064679390724055775085214207250389552982112659860979367808738965595064533506995727011840023276269678649981594016887641547106511158771672755657504477311386932436575904272668795895908105268612604636083642856027542457175877145308086493010284313504942557362765290302507167977422579053966095666968078119007675633113427869530801842702051642808589233787921176222056057985529628570953149633947345908731973387561319694929121556807762764727366823204452618678437152756451207579361987190989811911767341732556967522935881843418814711697955519757160125941006251991132653933445694498789936331118905806196035361995643893178081183650230003948576356195481794098306807746309504601182499475219422217372882366667636050738575733646981363514293376049418930469039362389586089969158094061283697564621184029054890432258557984300754370033456164453442367838194649534005407689902841380165281422893888723232648262914209444520978516911847745306392261359893671796015125111498556802311913457303840923065428202211818503569569090099457976098476868701662362473011742149085130642662203045816084404326919657724695148539217535469705820700288072256135447893205482671295831468006096286031340811296297651681792399127065248708482800894984429644246064945837067891186617260434328142578629016701832293036294600927810570267097959217562153863362732135151752005620754194751322026234071797302838327097490358837866761373288925234906849761640860328626215185881398275357172996450507835258195025347216066399573374432160859848059596130344974297344344867573562399152674326885810001658742805653080493047473797805609541265748671948528054351568471514400298091837591110358247579334613767803332307611279720657334922502956370080715108681563752327740754615125295639757219765789748397511777653134543774308907574247307921058693863633420434496147680377743450624618837540817350873404915800862744488597852421670795820572818515516642446681914390625451128118504772044322432984533335311610216061081752924442312109653000547009269348676438953960569351539338575807785776764332950457551476358527396881808892792855492064960979350311833937106920652775567884296723942281143260368429493194727227357700856521508292271423294704489626586446325927834970500443766224753738982835352582087514128861773267991186350717998341716489862890420273786099770986908189115046099499640701922366298842410831269914129714623679442658409244028728332024311934959272565828842530544058659909166060698709730010138993306471512658804011462621845325165791610474330472785338069425122184908311288124005149431310045830265136304491290304452629197051357859996029680039541410805700660611721546362893367088659982244162717774820403509205031313927352577386901597462657906299764347188730565504539503395343671399866044981028743800074782053508575639222858879032524331169030110014878924536466671309747022197055890586720516661815475210012156451945025492797539300532163205182314101052354921828859630918776990036320294223567839295046047127720315890495500964624280488003174667428271811537273391988357735289665805648447612505330897442243609713898719637171663166328571705554817584002053142691049631788980399300104760708799606228397374837994734129705552743598492416797994475506669546571918684952805139481719413909061885849485768798794659795389819976544394605688333209738052430372850748442614770534409586219622693509442420231964287131871367171996266072020648183426198973119077553615813305996273096345430865840280060845525315993148711239980336963671268269341629429252891294845951294768370929891873592245557700671581544520641833638570310768455911266583154004516626305825589757060268113008372705172898453464497738967319582804867960098640074734308225568820155096019337215139114494245732353276639041727476497794822176989138276195284080019560274714898851735114142894148697049522950531491456030804244384615581666817701500555603297722467019816397233028867062766513749404388095698070889962848670814366071116597325966443399460249181427124130667353256628553032307063176384376210920189649109746364197151501400077614240886970029539142283863037126984212286700747299418254995751022006305089146708908431073286961582186437730301877946636529970630766821970396064273206848931012392583012617597217903161156243779232502893110886805008704832918399977994261608426393556905602572620043874516246764676522021041830092465853784705117303297574130676049111823303006006311579890025212821403495794555382968549857306022505891782072677637292185989676900648481240295349940078137750691391303747947403647355183398790574914580123343070188461170417695572424694118533926207829588792758020774452662429251446244139606550031279877656802202623486453328194461057951121621885657727311830031860056963237723369200285672942678258954850698064293495517571033073799967352408250668254682115340590984289149918460952152298389900206374663265159468611628121932370161039912249417306197402021570249631082475337171303952728775183062445447647594143241930334437590060935835110457942877353951935479955998780108107069669473004652839333845116897776474601852846451829203698367095603681055494206882423484199158380487390597803207340366361302668125787379235591671319865212887146832520407929236554386089004902425361932442658154375797849737970366063955636636241409910693631785112556441855051367410784592890789829497768558617954187897629661837946339484028462030830844090512780572626559940625409877579809167107150983004804037567591494181919863457246414948588834161646056341349867034645081357779731577455624246293118432570880648049879341079235605028758186275057637716538013421283447521264337245184149774661735313581211505688322252090701775579141993715933139800695560734122009919924518160501131724874308159267889804951659146874956069145526636722169040591550773444543152811008910771596591964643519868677488354295424328739026194044767819810798933451127651502591938579502693640986600780964263713700145698167757618064730025388514976572166901552023296422319699834432098510903876249113577214238396417124023139410957575671073683116885724546243847121937004250882775044842748889626054783607534902893677948504370013140495125555223188853975417765275967857475490907401731086639747675209289150683416079961887771250099698923182170844391778415904221956036507848545788595321997226872768482197675513461545895511597720149054185956714885798544646666122545748816212447250198912643808419629838333722772668796072069877425055814719004316369244444114831551255193278431547578272553828714666872729845440731333498339165269059311050681547624704631520001628226616689778796570074338077564148627942552391419124062849588857769348804900420701793469066289733808931122900764280134913113645048945218860596848510108564123859354315123911004347217779351215867186726557429057976368316733866546913515962351099275101158074081204600173631804752472486204056642839988383240151454913473049314116235168486450580342947427921995944771776851502055543371192201977660279309229645757635761152046112986590222962732061873154653319069676973780392769707378991291292259700070901542171695595595145219713629248977326376735412432927040299351147127772338600858312357217826200659112395514455295580656860438731469068814391942667870909533160384751563642797134914621716797173311983546382768552789334867145239766560758794353456450413957504664159102013875074308960572917178926086308867182046875349131579699877745997369292252690343118939511335668850356150431116249936981525274646273221656963866030943088434221572836192852042608137488880908117178599756617205298819058721241731698179466412897682454408512324333061566679805494305408530202213807904425137576176316281487384058821257677848729445902321236800764625932035785003152880179325354431948002359602895746559596348606386091638729433988246522415727597001562551184223417403931416070543124896117498881353420766217501669128380152339934023685401913313296274126631482431349058992499260385792809213083825712555822851044500686654119943715723724838494618618678115283985983370691493165043523042277304204350169206203159856486322631424249501626177994234504675184319642049007434254162263591975409657398886600776481971956861665642495795872335829558329740771474556035981874850637006848476760476923634179802610179369732085432678378513688484060732514486849683247815360009136179174322344809639071720754495263726678341080586866706505828323966825438772777467381341256196557393959190388682405946569313392369806908019360690962154261243659169485862986111114676062616828527973738029093788076341812557835971447881860850021004193088325391056445523731404100915988895395278208956774453372833208964645946547218715948041646716703829545762738015029769145568751880826335137886659742010942862160279146477604916664909332044933980582570867149184671539413632986840603288826332095975130007562138886936839286078992067434336513704473718509412060809105428879887250826042435789895182129169591875548992703474853068837101654045548501674577662240991517114238220894023537389636143846307382707540939131461900585044981410232142243598017253357846708064530277869085458464946802859460471840468829077861905608844613553820947865786677258518242875439758776639042257569180578268618025685380569501156422677445277125696079206834250015385672034476178872159374003765440373097488749054268587191968383638359495343373867663659958486742761559059686449956544130083220442272395666524361111393827393362104933604906304830734876242227772884935211689988652105579281969878156544940356037752338628446186645033724304844584906946785600663921761725905944826793576483567048019095376844474414334442483442128486527975382650723389041463493567842500780239613331649292768352015272419120812270146360421906584815219317951702405148672655090422587337776640340848958083036143508217971610689418524041473359731941635214870964731512997764049118647601994525701308611123632286363886588560790225027637192833413177443948911209700547379818988810368706340479405549724366988813886868717407114606942695685212661803473275649244078021701392168195952032306009316242163649786364678526067022940650128162682159871792539438175520966392695373365533398687652538077573903785190597712921074416900532214898588323611673465563632104777714912108057826887178335052653939931420964083067977137453185250392853954071082942190049360290063300286377631079807499933417139333351037713303854337035836645396937631484174072323669815421637828333575729396480480704175610963537342077052330404684328772018424156048137241273894058219609627848183357922151221734139374888364762947072268999734145478602261659541488513287357444746899333606324388698777972920565454189055203799429404526043221752990834362425540343460061547281798312377230692100486094571901913419645381229378765688825473801285650111215559531136866431121505686452781120212498789076219093027650982155528522324879784310100133216702534578319252959757935571707737960224307969123973766300366289036212810183335874218409425634090058574587332291484626866322181522495655320044778438426781650266255543000332245363325234091966604006567093660181675833533664872493429125784132241267967333415177594066337787273214888256469872141435994660005497009523110600009726496657570266816882956972873719845090638332212924925990587595976273331211692318280996527972981582787738680872629669400251708571281043377421440918557603380442401958534234459795971226918479070594001380441337767380720796881750018346793957382689339235775443937056422392512039115060698556591070495786306819205772984627986222549203621865982971346774474051426124573824546383598853107361648861949164508959735357435338011964233045015101119401169676086109531333037120755854980484753958098095841646949644311897734361607573711432200030109817741194318567411500135798631597755284055909512628298818964955596978581828585419733436008870517890914218256910654590572609219758403631027553221526270069412594926114692816718146445321318193745876189285299228374272083453596897603760195713649524391440461558462233924216063709021917560906567618833746528908624149423479495390826322265456353061875766792671665201123708832550918310683662897159656335858367290149093804873777894002937943505071514287350520137768485435337948839250483253556497696000633479111142909825062746085192918509927786622758024912809900741199898903035481168957624028790927419493869143359647385545566446470129689632645265649094053008710289991166170937385366364476959767118200779428538101104576578380641392142760545621428489590262968676611060939255418057166200471648497034228641660682454006500535602019393574997557831329977069803168529453322605181087683597796419443088054573476207240804561870103477230772100924479306364353490907187240947377519504586496121585948316988887294623340033143070436373682060148916656676197610135057270143321294887070015720134562492319637384777556820552715693314547416312166283148164096711873712476668883435625694279725152330129447680660743103828206852729963084153796107518064825166341018437492794160153208410529039596380480125846920562358201445175020208584295462759460967401896696023515360730343931839743701933285587804225497948467489015128551479437985022188099992977098946348478010319280020746259823963514180404054100046315265137078376731880480230493975761106364099812508782591275965756205960873755808471725505975721323126747522072618234304069267465937098769741926882832940461717297511908537637717418180860820764467420658612019459135428855078546206402188581979537863030966058322107419423283519873700939710052004036613810487805849732449138235877714884398105903443335865230596101197807199951093515184577046216479736699042438063665860960997085794976650183965482216128354184203842177839757376322594028738974358518247432291091785363174733240143612740145440898922661594215131447307647766949278123258872087092963830909681227575243812256166505845915818144492438686481696119696506966127869561344759063669971288144769232289643604861473062262119775338486101025108738734018606282265051868754799840089272253154287649603303805236585237915254944918910981871705642541666306587343202969214744267205831796862326358358654324264504232470395686360271990895967931054267451480267036126340740929743090789811075233713330654255744710213926932291503623863396783432979775097684726964181791028660580848089721105879652764432654117984058360265028290903648617915270769061860627705296290287519835710202465632930864362675128205569108782232788887072115909859744391523068239150953860029552720339642030091618863925300913123399723865615978098421428107754727550771293505454086160914647138307844715088187260158645786171940411224848217280100208432220094335602898484190491421605040785979565607771119242083166267905866371910548657996958240371750435835699584823426587553050380646635600817474428550580139848955210416409655919939269731028379593542716452042804216037260862393155106591333852970437019913349655880657781912437694011553589778020580291063898806792265232416995277667739688493631491670146677317405271649589380898424668099755398734803238078276906531501444753850452209780576950904641643769613523355770840603421660525430122067307382199667141832943581841913697543501832413490821944582784138040852031261480419516695318621763627552043487250174543698481004998247441654697290738321515989127857673450406714461963443402403207038505595824068367294881227994232436550694026215590266833795971431071687452166634868915259350906608081624004147567890481432330159017599888211850542422196097391359956209883680159745577630828968831253369605662275306697123134111031473781573461584790646835896481315591523269245904017953270622132786014671685579048457471307586958516668023608359959129474897600807869769203945680318294361861689302293217160154447579645697825642062637445544551995202726450177152152463038956905648333529985302611276263177039561624687977905399066366026568938392695253138170403337172810697100892809587307459860384697696539911271117466487061768798428136274686067878011051529977104095988593637305323999133784769028860675061587882050833348268359354336457855187607886005165962777304250868261385208164889339427040861464801164327467460866754329020578309775649189744441850961993111073714113999495685796426457588692265081402624619052929354955729655226752325225101353876606063620646832191328189065626789297230543684015103014433378092120642795320206804007668946604582798304946359812960887299038112221143188818740749128362635243994188512164924844486797514314417370555715741226772475674415767841419273625790086775067287657917012634223127656832823197018495472000141895381432400184026275118449755624322000249733672479397935594748575762102227359458033761436500687192698374483498936368950683930087625131645067368592646986043572084292198249032872441963681689451123971707880577298551580861639834225562389555076222372596312631314589155535855752213348187505796600913169271091529374981880675141655261510562452776991053421941334053976330677150202635470933922956312495814549752029480007161995365165054578107334216195810117681157821067298774163232091344674715501703681496611569186392011238683820593346696080265054866806201377000928623839907305832469387389727706217218362433360343318060524211618493112843652773262002118933620464186439957020104505302530170306278000394098440223638321161393204774886893377274559238028258234797110149061024776913150305961385166194205246628599102510010629674914320894431374753824707363205583853911323293039900797654451333014609834075685513223242103296175122427767891108019354128930740256030955502569633280002707229847865217138264910639952616230518703503660705111231358650032688388501047168583735456277880937491603207809257839682580405349461743218446920395611921213867836073694753947199242482071204464960488557996994495370145390694877281453712597507646266256385706102169767243208247998817951859443076780293576623472196379965979085688052593823283839462112135355307732125203590074194153226102299213572020133710612521598882016698952564287753783185617975806943016481146837572412590591551083701757301363585770127179971924283078887081262455613663662955490907191174141397001961844487620564466826632221544913370529614431621678882719839620356772700715228915176050529716797013300285312859384744779027977780024371457759437613073298466126692964075100484953875695140112942300130744472378776682845423410899126944926400996874867128865040891985996316788051774799523849931540146110703563174692434418078112187600463367511429159636536680580033154439541874179172010097806017863150305881650673923882475998532502090893224370258101296626941535518643264112177486214616462697927983514012142044339424990990117165596235067245767224308777422772542128367855509438580821931052826262177366298416625166644771350212365986532067367213582958290189236780202595945261160313792030788908549027656620928298258487461907591999106780467241777657125631445476184050962297797035247969225456553575850916927324723893284754257270805531217061610195799458346723094820441157828474399075538319366861740945981749962762971091171333824439054399161573452513048391440446696294804660830356635067896382141115924281492083592159406914411983772329943404643113720346937217233046556067354799021998569128896266394423201239441891537707413800796930313455318366937504056902104726817728836005402612441311833503228168852840604432158320847992291083069879034900756821285918050110977609961073565511419264720167727148161042819062553190773448765522078491028123549184860306755665425479248538873759331407828061243873177723799828465835496805388962441125154778644058699061040119460622092736392224849531416361184299693045356191191750817873222439417672435786999780131851380131131709009146425294171243993380551269374819356287732681865439596232625591468045322597062135593319899685411201620375814177292087216458039187645096750160089107760860469561616245585491609335364373614967114802406785262176758537475484062629969502369039107663029454977418779151743197730341097687901666514595222650023641121304258557282620279669435175698654306503190392930016082836136511530357586392564980602290873947896725462449446576863736427214952101033889767180042968803879181412945229848887169536789546183480253795749281647857433318005029094608959287786916222351683666072535499762296351365444583936389159616079747142793398722683151224598982128339316985306627277196629620817484738403096392143482944717371780656447612614081276809299046688172398592433974894783406047802624378804927723583053653197531201810153675579329627543980698352339330398084975569614075975908831293220435704031296384623422771589365526824765098016288221894467771072955095475333603395053904276054459670196126033150796983096112020875472801348920077670463807891423690638997563642533969556226870512738691393538430196983028645374662904337397583924094868298193661957963241159880030006950322074886921359342446342834428184813764941635464978692697192547946999022794526804974884273225223196806112369680088879114860800265339290149436995044331822457652673721191193551086173113833374642157748508875386474859097971961609030675538291946139524229534385579616834905632500943343215547070029643189483669033182446196453911211111076652348746182917339643030955418628799299408069921798426540184690964611327918714495820202055407928130060403531069024272295911405949063019852609198280778865744730998020860083640723660182834272613116829447064121357728799339088064359766271186427999750178727946233541946904781280485160135641417485788639891388396871823565671245064015623755342969010601051101727433772455472662009911556449107855801036608588665183231433093834345762631007781223139231709289385164974012804538709013655979893675179594744216987037368125838383787417841098092371183912289307202746646072560127771598962681866267168825096359472504297031749960843041043173925857685450723869257134364180837368437224987639806072283346728541778289924360922913742561190166433698006896456734115688347701175260874068807565230499228057239888585268226862301758357744756133691221496026324944100121621152731311064411914605946778919852009402216306748942173609029123244780576346780163628210083211968655390147749099368629276516268503403635609037092103531962485850101657373367880745407093169093990312432794197899937251302046975844910074695504422571971574547812287610713920206765222681752754688633907090112064705183026058220321978072117292986224908120042305547945209435459740993322388092821508754176214129611822751593411669058714832707096520076590447250940427544554838719230263687751064419381154896997123072023983613481249724042757098572757044709352885990640041229591879033873491563991506137332136282885201481510003671163082919543023884912176122482077866296424356496717822505740613012032331075060236425062922296434335343921628745562229731923461491160405976246763558215706971630031203886065720021185834471033605666023763609213538947312107278560591432386730252847350703965778360610857085961741521237207995791938459905863508504141865746673826855662711541780596899015098041558276594296341519108141734352154741944144232141093406694914855822035677765270507799900802241950546588620056906764311093409806655868173381357367806047140644658455467199793723915535561516884856770105925095000559442416129298962779082417827700787577557304673732809498348923122419838724415011529867495886211711440355009499494672533686268558644071339972862146434724978056337080554328485838579083726440926850435390372643972199366523006739690477027084527873112790037045335751765420257033636069225294943587879106839321844675968233845196877057574761713488144512864137066153643231571156498417598400401056704135098164957624585175857371058744224134899176481782915445628392010116142119544834451474302645788565893731635655482256731606816038295968012087219325396702526600200856810008270563752567807832497201279835749793057353678176023031656631887587860881057246027593810321393156989022193268266959325890338569740642896405342381589285498541323609686584328123039739508460300258388714052800730657088977017590499572433495878589011566157789985435105950387741542391899597529361251638764029604705793610290969241925611061800996645028676176672123483020999588833798752686856658104155882674602815723172952134774388335403891316744256263857300214648567918435163145671028469224945124166314831937408657052742047831292310547844233730109078900862491304253511396077664360705968572799452973270275556859961928877260778244363500202960101989412343725382326028435988130570156098127502573481833711602930725566993542219249557765003618285778128767999067897757026283606385450953724421111361565782319792892506959237321337910972509108089450472005413230327227540172247270095883187687533957322637547069444105314789365968692922964888414796245100124092557530548050172818679864762800429232263353872221100321614573243054361624972878532762262565216519146046365001191476825268542359428249056635240842432962022789461537860377680153731804147892598870000144454965242731147895370714701673285628723804813216732807009272028707358805248371511506229506807490478087414544979300524790818777736258574906400259175808952148493068629150679434688257023156402767828567586760926391822883139878981859435358125832933093947911900692850828515811697659172045362778740917220252154530418683822684544692028100768234798763250230335757016245166687972701528371992413064033495784641110633992522196785782955841708954548549355533962148790461921881692924230694103181047313924277275943570791025159935875491962069111668619308741808658361751397644537615355587760579952947224902518920277597122551568261121994863138182894135130461751391831080804808623164427007065381313751261327651955220472456720351962198119291750929272684909936506114469350831081533285552275702615659256742798190695719409821577341141668971960132060290594153605973768282605327662013914078582118985892995846518349149857097604433707970829404124579745105657039634762170470130130178948480722781562313993913496773330301117876845255402109357392055305081624625940018348431977032864398488067118518448180449792732229406571285234151518933053827306164268079316632157955526578643268308484459281667263250517870342406733835948753648108523073112446917206403339310656967363296433035480242887800970807311926810631072393048992798300769937878840046098199042301835244191169283952334566458926306949609548368710646665270747243402292107884753787623103822207620111752140323274142960864496180130188371363812624143068410042533585582574913061335494058837005504102238690914675748777962227335900753597638759613334275821442003482062805926431980007442440565433531566007551127558510042951997210404097005072963436555802253331680112230855411076053335731583166200336607077060687127085843993944575168958048131831052913423114785598397105834249566478466495870748301673414251755822225225237803959668280222169910486079218498399767951231077397838565320535738759497565367496791670629727749166477831328883264570044425863520781754471096995118027928016505376540080721061040924523445240267641616405226763460236169079074151397444671158739314913488930174101409542142905526427648943545112370390256823817507550898137606366560212800864641419991432943155698564990664157624460081183360749298740045623015486871563006891019678602520567787851276759619458975871477480134122378401716733342985334240299220336116409818278098576316304111050182713851778792325862994565897983772267068271860784437667775523530510310994206596419856252361081998920186082029691647134668369378547709642362616553593922584010786052229963365403946329123975929951369145012972437139384755011706003883384649370886677146056842557374401249696945677230165181463579157980254918131664046475359180001641450577866519203049380222564087630378246967102403995441410024561165720979098239052235529569454524987789153094600145402711638296584247566240477248915905109160388170135355048867739296994831133026794088758219332210523001406033497248601665262078664209255640293807047149528059933156034268760698381954137230560302408376681558418124514639882944377579291850223776473044696319370278405835410260867285836292581132414691500913716070702649281345030277092156893905999690558962430268840464134390908314422089975959080819043827032640671379171558725858552021741476842537025007033412390793636809399808200835640366420046386017078487279726345494379068589505884654854584621574645124142041359544028767045026206149241536174159710926040387049402371908169880197646968539669729972055791042393598164726070592016566703054419774561502311387037482742865993234466710109477459995668046086890313348822428403700744394701958624749025807652768999663874886734317323952151677152016039518951226535972185155308189472125452576684145956842378166806403362178823470640603140105252542775983531344046748871185407576428979818248654820569613087427789886912292453460524181517615563357148742145146478896263426524949603190778444879618692850961451711992849067497770893319705078521373168376216579772199185362086407635404462448812777082088532134689444239364631038701071001254967452845314596010199457852761756972345127717554446288583998635873070265657935964194054453388086625371200843794234879122899616300699713850950866652679877764987211822253107765617731278084792819054842531166571481972492570748392337798813157387138232774893682096075109018525544739709249667716690710330814656423112900337648995950556313131746321262337298790725125813698233726555086429303532546832567165057600290339321544200692506956420969162992630733986257622165935200226741255905325456952241513561178822174688672021133067615865922748444310811003607259163758194022531407782522779547292195314362980617187488199320049438348868773001539622736592464427813842358858711098946099104068398330550283687285934784665670552822700169635428664208411849704036897777548356079659463052586567459892936842745498095331542718145702215550209217954265233920891744990515139358631102884057235242579784424100932354499828569327405303495015117262052102071779337446320830558028490071486298734171108271740252153614488830953178161683723833026159089824508509361350686242867741810506363185686862414859697692662581402218146356427014960800460541964170229872263177630600995668746868661861921434214177121909442878570384798647858717181421027353674864631877225993573529556056795929063241840482634755034497202011042365209270703972509156629499758450795422506079123843549818745382217362927274355995474624046168424934101126294891626457601359996777937594544070443089814707994721938214579664937725044582601587168527344138855722504305872520663369742939493601227495423196071219766051484124295956303461564060794440170622205121012992852806524372649177973414195213621864399353810917795924710382907718109193253521905767864673035195238225494555121329672139238550656674562191412576752281714279522795744368308135423722129354785693729554510397075692641871314595279569406401609820863822067463152095920293746824656407882737629402160889728367411283507497238208460909622405881468824991860495153080583874422385924115342479402360759559273189618580834692881106720890233336373466070618021105316498835456125140848876853137562117185381506085094321994393575390593091554995570942456110483813342273069435378109295272254701272957712143965785616918097199222240376858145059935003732027462883564230970548153104400869364676737235620382276628192540383647576760330405106351944908152033701331021107187506197108516859950580739056709269662357135951423147435337352925581666340770917625074326336021110913455882335523844714935624857832527384766060324832102821811284568820868411951805723234783787481820298072172633802710123811478586767534814825319969226098688881904398080331576339050846647590038860106812255900218814512652057518783833154910194062826741032143031899950172383750608786050545171401955337497644032611771164595000673425072818211119298016391569718821479471448555044553047577652213309991807926287881701954213972082014896076074646898856691998514479786959736509863354602032085231954174360514858710050023431168982774375711630401881163644759679104004973562400236042898195206078479046172106676686864917829234093099723938303322527745543194974506968550284999080897407680890243613292311324226616974084630334105010520885393170460180625756756602496934070777403120264215341380339186246171609761636527716670755405180787285624215109846641729016112469513928247325272551394954705043381025635603094619047021677524098289234339040465368315832382930267193760619870223754420580045373880591098348687393486357613601703419455086104158582289245018212270574588251869080403957631896900878317769241111733359911993853895180982345611144362233494820876698890678115726726810858121956843017438320580985605363474758119734534566256993352484579460699456823470567814428029679861056602619627050435566061082570691586317997834668436648298354704941426935213725731076564113468734871782506693306892100932246758978868876533572518520693007523569223549425633373158626583076449605434750805107269427641069083440489970000851284144803076096361049967784357819540244145000731476795314732411518068833200579755258328268763733739263968967602606500249140894326419179768356352571840444536669789925640830423558061432170346152995610177023052355257258764039862397700507021228440189508359055532018339927393218915787851414260944698366321045182616777194819232402337618443402830031436616486499146517426026616545258816974754650169385608479338299285489790471011512851872246723779989384766269853435683541898807009197042857406731930501108711222559855209275111049410312742463553549590363094286538804376961045459148657106731566693020838552727382026346812995120586042035970534267442927116707819735632827881655667128816479310883070747608077765484740548601837918508056676355423787039544223435169695856459329367907794909832992063000141542570325652715269653233173622359179381443600593632135435675696854985184270170892994253411491697131198935896708856617999465742977146403965068915073684639069742505414960706749310726116464467609954314854648429882062425327419190136648562212265391034684077269059727647307434836388117778132710683392944518417490706909703057097161063802812665667746173362779510003445071820762944292104441668144555720485664874842740617322248287773150831163341241558515057446252631434910378409359780957656212053578721998397006882751041339052707310318729354846829801835444472427506899945767455490192719501323410310628679167917899829767672097179945226578670707237177726586638126694424675225914022620276339132037309970707992281046880833300934155888348773473918593984842673514936990935820268072911864968376668418931363724745086874491522084460351382340389076709907410207191739204155047261062445932071853299078690344059333270857031079047807146645068674382508914530875843580547423221184951136141411820742148684954261104628282568862742193236005374315771198986399387067252677437057504738490935803943009377402280490290701266894969218775583649268811668293086366765981689540450661858588215611284424970353895630145851231138836037023601293755153647200939503638498488680112484899899324659997397711985074850151476119518445476547554525593498729900697137605172188437721682136154903967868194727471564142408260875231786268725490265204932422998346737777364544538095921323127245093453715870553832002587944254821786575592832701889121150088028595105231080220233583426129568593732702382543164809128689058549008796029266016569499387293180895090613480244590050335575479485828312032860836636022034603563241036077052201674220936931873361507450421326728743476204580761922079169238106766514925502459090616005742073308030769603061453278473084710863524286070732989389969989625347936478058792727616177427304577056138930812374182142419041344233570887500830209981264332106546079473202397253586826576583433429078346042007159332955791495262724762214703079510749638524234144064246501487957135771368610891406549534263431523093595483560240423122635045151061103112296124523158710410430564301282000498027793167089381979685848721035620850653532721604127962482668629766110202673715842973184071565834256230009229560928315973382568536263423683783889654643969642785776192620710205766936810722371464905301815504761050879341736293716796109572387387466151867109453126995980241332308148454034809681391130190328248774045787694049378547049955085117087886724201853375144229337355725420922486658264304973781734010008001330364351837246375314833544879277913577698251135363183960118634778634094492585000543575028150937841372001666162105657863931946326855986186479041321814954984830061350500107922084261337393697432241040437770082055534485942280103641978214019337035361611930194966238082852483255952972328345007915461090597309735180849675427810741293293287723231522550279791234662987828849682301329172968111011022581547631929759230134919490517909684982866907424942597512216217401427203587598287778226903312621565817092882095061738470158497263142524811689149652558854392721890206371412415753132040310940062050990623254324010152451852937158150747030583098522366100067371747439884929445332471486262449643509468330893741483567062303848712908792170738018929960781248325273310849570644786824877354708399517834005669471957796047103672383173777570458858968441132180233699834301585719449625193567689567704006538143889247078523449712472639893789373518479413613615679574580757680255080194880017489030876038786530388446876933269777412433826619439178407779803457209588744456807353531699929232645034186226575723183702975067538632111657431625976500709222981897271143822558781873060060755839328376103009770310411182338673845307949875007962033264068079421512063844374838127387731991623416715790590139993224321388346063430743012475107785477906915806099692113800706472812648572636856870798914548212441325149352526638022875862178376150221527155165511197970825891883242288633201122640872504101532696709437670698980726604611177340772450845936903143217398985144754530220092420771951463038060773353777028049006493923422384462350495724074059880174679383131606352144932936860600691206402925869353208825073598853056006123268992236015729721351405400585067924559747529053016092333469924261430433930959724310417710653574618527326932758186005460256017947660633332209695887001318299407660103550040281447005915506036242297618508127007036895872318240337305229142314283700454893298508517450637855646784720237543516379438801304734721763880887836667676097662399465956217779996505418789966722591321430092011319062071082743405764061794930855513614121681956031959143072838984623881830644960247178077874345427916950195593481375496355736989185029158705516990322437307619614300124097728000630335080234053546643745308096601061169489959883718203187751529551150678584262417091641058624301689705693847166343138718143941792097539012991738523408957202854671547186029280386032624740041458967128083765849495737961119340333577292490020631111374846938297337828464468525582606100565737331385610424776450252968937103592833536936121744574850818054096143814853343202931417008436053858834892546684925727924578410605923524150415387833698744749942256310046027463319944405166482174661525329414446472513313208182278918988938733162452255064128767336672176916529112280670744432780206774919099623620990900392822246441737111097943332409320917081625316629969930884193774580119302128851223529179889665163737617408971304758786024063060716251963093377158369544135312076032470949437759544386229320985586717170797641534551946287547453132351129895278916801838711433781710875507928435581555346644210871813805744747239728692939566456220023141712977964588168153061912326747270843931652486354340202602390777838780978887369316388209147875223425592637385929734862202497047860687565979281722460392813620889040257441473364058799572474474350752186153153448603617476604495426623283680699488960955630075429929771461294074238995271524144392714723973483258306300977570120474625046029078091441459127238711859242886731314364389769266861449946742777574553358799336567298608292280917103109957166508696590582712678728592923205697808709753276442429471210513467511953487830337971482804763154345090966175142033588251793737116968957206179345158847201988052166423242679976116206620431338938200046852217374450364648722523880015629735817221718267680665324231332972158937563768479319525063228537506367213221084076100152655301181220897856518856940488432845931625687683855501339579376198033192353565134953570110438695881547555482692882093279425623984337206988509692798658256302899260884743623202202748812204445607078006740542297006892981168059494348155994316303158228319903448341191688868582009272328998452377667759910229563140790026653440411800580232004180110293142193739654850814731216901962145423733402791546361317408859810451342028361287568008238341924256981387551504219194910409939096616753349994106412155192397040441027255510304198710957153955758052193981470780822664438374607917604307581983618850323163322295633447518262386326727337171809625447855170168405679382447422638087590510611540238208120302102985523908103953889285001021403110274597937986478078431086541803390502506177317788674152847731187442982364497193895394770052904781640554706742356662082721588225059499260646745734947940205045027438453388637229665484460697919711031834554938029678538273498543102928857874346552697249641975165491473771666497615013882522268020843567976954347393097219285842896134522400604324196521917222291795158399490751681641889702021624731211993054080617717349328170580273009567997324276042618204015974737884998471336387232336753052224905283712550641771197249822193463653544224617224317715060804670431910957945997097590578044988998477938291738965061411773310887160384969285809842466772442905480581566826152596868390475981372860952895189127908300737299453804198862386676145834882888451885422421580514208709278113446834935158966390631809035884226102829746434323892543653900627613855617024608543378666401627854224155403723085621453847710759033814722151603616312605661570104120350310013335149269532564723208179849400840470678695836491385699334808155541636118969586450630412256738100416174571030651286597301643677929802063721431167745172384095691333448686355948368102858749058127149125898889716157934863240226771619923904045514357328344681058616980408152464036688179539570768985870523193249835507597843789202726813554700859293257135180942102562629909159182897437615571100893729838216754171046479585475887887195431592653883488256762524761554881526652846832222713585465533811936389957825994619793630089338677107225558619173666829780254800548274102628582468741451107150042051152276848418781069251673362220106300006780636672540102624501767272197003426659325241539771894685235418734140158636209871308450686202247707184988640336040580120829706598552664147544461292024714566943007277672276320485331383264375934119305122249204527491627020163555526535645275609960175781524910985430258623957682475811497088008717678639214478140999955759886054637556341487391733720482869188559809751789711637653626807613703645829360386680471730978308974903678251634334549271312950822783106145048737181985144056198312129555476781524707012417264249328880922042425972429213649978205040460685280454743453880523852312830905444771360671265940011447942206168822137591183886895559074366001007347130555658649628808158781472321881783091273565245659423282769388844025724164824517381952234763684473734247692719712907569708795700476764438484740781295260702214036393028178072828721438350469948081753249148716575817523954664690925924688475013105055055412132483768810761214600109773660859186571537726684197633868991665995053226048740838610899656131197347149708713131909256678264646346456781742956863945401929029864277415530951941423842039123637054095467652679406770177613277344449116648706336223532763672055121503369114630518773088784188679309262269718219410507812206808441052934851476438251781989749742566463208440449573087453104258968026869203079944833723796356347618465578935234401022793855050236225533171161493978648458577917258799306325080897786834755304290182716346400972241697785517558692257482885651223025552264137910620526862443758631192365228706073986813983845917561529930452410509090955203607457897082541374286353858063766428926862768266961933360805506177681146837848678284416150528094323845970792329578408645877678475614735934147111837443909953688297509697224731438646718144462893590063427231732768782068787872365521060771198371898794642653610773717017042806284787905640560427561739982688450832983589156619535388714755431543390131423894060503654037703832644678487079954860239872618379970597445152104703347099780978837712129013095965580159444735279139681707077931296686695444886027425107217060445210405852920922032255415065024349905978871870096517752030197892581401403506379813047235971473136700996785565394529421756054813872684925633155101559537397193697893613031503350870075248111344459271593078499377495052986477103984995976336573742464525740890909756873912348293519186463062214939040244339776234976162220661938802890993405048350737856851904235054928989886951751427764200369980907102361186512055095204540854223552521890792472062855329293866077778399937042973928176332568714513012681468066797757073052749425115004832493111880309291672460791059288631145353176894399595715361856068711436076234147928771388090639384048183707264602175240169749070068560681066508603168803865383168209870230297154957754114180089790807187474377545015970323961018483658681352562743609639462121257303977290116376681143222068964163615980386173082628388461108687410164768189612748909530139447970967067967438730262422335586334886819774433558449332298164829600691101319650226402548620803187356970878618038658663705409804516855523924213201167008654657681489833915958526656996833863157462753696791670277735614455285407549630165308041403065447363637794135913579139456973342360224282131021585687159832760099387882457579109247512990602399411804387400762709064402963590214511872752194592095367380507736477577466829407027079890790951909391597591080113567126671818150737337105129521632394124179179248611853260113671120760765751548541745439309662199517527945685780732784417771889375552740723521907316620848752142477180833400266971333645440740377396507952424482301296407906417721153239982747487904536924457786414554668563970946063189153570698431124285606575988970527296972528013457058211361897438841424907591123687012718272055284721068745625062825444456663331134569339068136584949106516248163044995170523081507291024386446551804139245529030704362534035974824242480008229041138173053329100883605077466941067471003641213422878766253609039084550813963877118610363454008674022347289118832104105870889174936457012056958577420775582598795720321506219656547149985555190359018497746915792369326171853427654092280637914665632067168468323911005629758495654735068193324343311262004226899929335978927719644548844653489961944269210769843643700612496074123326304021657836698667186045521785844021842210208516690574374068640923946381273897480343317847570648440514738092847414903472091732147044436144162751249559282345978337969030035503695020195958706714020358108019270779287252329670641796730906396398728569584821196129542153862273945253397111206410599095138893893482082295876682848712676818316086244593124137657717074053116331879423860850917522431357518353364284281088645523294299838618689400528223379399723523178948237240723653363915425711117113963369229271995647879334175988375229872585889002147214513672254027081570507530949572465715825707125059681655637215546417407334764191154860022043470306875076556397952424338515138182510283073809435352662009122832195156633556633409629993694713678914178020901806416630721208883079813055928621224047377453090326974883482735773650795194837128004903336809435222636654868943464820009925180904751477356409948137958183616897360918799439395198232289449690406389600384892027929844991996283618842940691114763449384901916449046891115675812235514161656700834592446705396139202212226467301387228310473230561280996444671343402284535697307451155723952724745430520933698323591006630873009800787681915433005344423999818417662996347459067685134646514335433577971670188558260289778963533686560483152008034266248987985767484441122389550076137548498345429269167737085280917019072194954034738921911930295265675223913845032506862682149051905965878913239043171019873314870043267873895279089927436786592589850721332682075481699268448834703391302432690382957562381369840144837213037098427955872891789443667242984918816259005920868168151042033498017273703893770735693926445290234714233514630223546933334729027883227079130355361711656862036299864798937702973591773527675355579892758637475519523733041922757535813880674108065660430129191556745207081682799172456105316514686069141633413436369348915712759656326526157318661352647031846598033559908288843797064794932158549534239136979219413033456183257392593126561131924542039679041696507530603781331279164195327005812962699605070348736384255157074495613440708349516291487176484680535072742496657195214907065874057245595201080123582793209825037569681583065246064176462855580359072871179882978195620129034216922926114742003063950451506807154023546146907969334152834755013956353403490282027560915222243501293587463274180075088657009520308663222377130084321754769289040319825833663821329386119421145752248816738588298601161073828499187435252916962542603042241211759346427090208628102957073104024723618779498102358951635740934241797358803048224473975213220014805267081743461823211742361776483368468392525559193444760009747051735273886723099442397690021631673000207051205153999522848240396178006393140094350985603085829766134442543429270534716562266586613448834325937515724675765815807944341761635313991087217551792734673540038493406106083340904994685932836697668090898722209632109505889440374937721100941628422078951380801612870046043788715482457150827995307978763319363985209057109249994938289910737606438804183496137989175315546143674466183660667898775231941304840036252894586380346327775660045071666114964503726882888892974513312193527295056713478228557347882894481280917551802392811667923302214340719310191732575499269542293941267696092547663481172642902226309717391629871694174450455032547148509122327493587446707089500378143749594976633001934416627121634655448660553215580015441105226260653492619911799915976248089952124560113463196023031561374909104188259404609826590485069861051590185853035410601320120962109607352038403984929188590095397349583871186756219622094762288700459212157161508035607047369923812769634713067127744501175780230884118538653373302650166477257091980529480926030999483676695525896799430996560152854903749926279900738520927687316693495384964403178297740829272076848492047303940463530591016271409569735545171625602695905388895928472318308744420766407930608107833803160138996079428470596659484654976952375968547150361840117372829199495985775542880724725232000987829828406078385420098251745745311853739516559014192720199607915990932040879112358947801898426087157816738500542452335030440048951195140396500183306981363820366440049262398009508038597640275991623263874049163425824092513424692059653342613879295243558848658113493075660257381177229459299934949553878744135918280474622274634294807062031512040637352936363924743694615043544929665214748035471491183784487599912211273546449903676711326187018947321611380393777127353498065578098719675696693957026856250338179636815251034549849976908937429476558635912741853379071714004378626677969792609240286828139720541435944807608171899474601720524795956524183004938614559467093020744637722404664926052594366407620249426826348523689489524410803280353606770614710499229562875091748002710894850571753376241693438032072772514083915038305430032802957296660296848230858396063855067687079926252818372821604145730009280780356363657757899003418082550827549423116713742740054816427697700505256187607015926092148614591146490811935170216166825255341949896606537109276030001870402618631910574727547896866202773411389923174435956645622076037290560266655971066071393970646749540537514922765525628474446102253753893013730740019597969194631205607466447005345455087870648547186175939517348066460043723753870705991339552585005751784809734883066159109226610748537860548871978619242294856725472646244385843307649009414838768476272496106040147324927662644270739012726867607341445735447132680494830555815786751503185962194848166771701264236529512139711178191346929669959202823423701762349104147739429265567451656146087120670868721079550425013232648506152382062712106106454685903154547419334445595870714054908897669610505999543864311557623847598514226368779254545654596384521756419346314348259604433094286342069867201044745652196674610557858842607823113977273684095669651569678240985851340137782310529785290412896122175420732403878963472122747842321498004503602278891791446160901450883546104997594011515096147439018801497030002734608265807398925548778363416338684749746850631205024415877046787382259228654863214183283360294092701128019123766028264934345108910326057044905734238578768408543720596333065126271459969727184894889341497955731746007272197508991345027526040080266023426253478290361516275339733612377391958393453143370000381500798218353132611648361617871634102930659097406381117717273864631418830818535144795004713106845154523843973693617815860400619687099761485862297968320996098610761207652897340893998827886294946346884589085641486156397723281823430322273011578773054866517184171760065917530898146672234927951490632104035236805119695439161005288453629359783027714004408177742263755858906944219504455331468739777357115859355622969640344752693544068319026605097190028618662366745290175607674726967592014369803719552014138092484832754114256385660078688542187133376856157361569512565140153248827877581550900767064928536367951297211077094187743277420458154146394400149785751445625644286872440435959449461892396360844599303986506615893691402438409542545231820959799121321336674879041176111217603932983053076543227836734335766875853068987892999303200679771758295546831667417624335957390885927408428282717715564113068005907977913173924760723188047635256881541898792045097865035946420718684910573209929630227078275738099526235940392186354947650617898683162368443599532643580944744996582015970083942381438144004986879323155329161792938840268169327411093380043039747267685255251204585092029557739950476971617390134105719959867418862062909237032791388751686567642647534141271947875179342398508278332312164898640639390069564490865629178484348772267990869324301168451640918458752144435346575980994736997053231230344925431028842925277362289936518454194088097446877763863301692966159102846682037312746643678667489903188022798407320177932385573212426813014353988095496647884733241486193395007908027214039244019013039035734640150220560217578348606036285790229131741959013516516913168119785075035807195635179169498433669418376963965974528891592153239460772253769872313185214186737119344358054640194381969479665167920577937406117545799735301802850339512679689856905830095437108773708625214393597515206097035083561375774055392176979887092136962890672024317344753184306752146093987807056200177622083509791893730219003499746150537344796410637234133677279164345782749446988744611441439575841555594834804923076988464185191654100977176818275052771327321408534734386797843014085314887407703776967732896933508493736243304580981981312724585917771064951282549407597686365731323949383094056791477962827084387534359475461002351859853170365475345936709600087002546094572688776312825430772151127336554514430599764581232171791388781506289128368962778666298123062386190409563644392699969747836319539265073844785952061858884244946531791660114790798245222381337847847432157588123056964644802915900322242425262716052963545631519030659608995162062557822725214730898055701823787856670695135086056151154411794328371103454305552960606458247754196853004185544915001778769524614515442476039855677653215160754385435484273423092768460841358817709119372105381032644392999864686818548676136863392937938433893400326097659219539736179632294480746489687937684365102529734780522894503128756862849792343497655846812791335606532154494271074225297856744299064600476435521680412901033062093489007185082235790226831554128275269572216666335084858730579703182074664844950269743363383508244044969576322412862961996506931148590449422725426294162135812474477046788129010410758885523539413551103737007948783475883086263597906356029323347395637792088145421988052570022137074342102006230077411763154903533840402693244167677080466384196676702759706311061950357195836803623395172904232178663539767340990938491320006644651302843177149459459058983463488269831513310236724554977110570024807278403277301753800356577315883228523166141439176036582297038072858287106483527836214472895692232791399188682365350357097809210725360391953806582668621240082960891718529699775897057239092015737320087082918915526571219578636954821328606035527372167683581253687320998469407408264094704268040398023253083267605683066378303051508086676589322703722165022638561668548753443225780085583428930637232924324049542428257573771350594362443403643408808707108946882835395521364108880107434108032261528251714903776780278426741761250628234957301878763009337283307522162192757256093933283979493257977197760529212290494022775333917101901652372926392131409603384514242704250846958748046090564772127440151822078650822673038461582174611637954057682045859773577669278107412997328201576133833336976965847665893424935925770621681109443378398741693065204229049015122127127101925452239028633225161834904392722211455971861999745367869144301488583346488676677473408912356104804662762743377919089246736160772191558021467209774000777911049795675695791312111544576430676469450932301733106813679665553081304957968932355664944684047710217815017622634718085345004072491474985090008697036775611950024661312924219622470671431156274907112980937724989651233935999698310139533404141814722072821484741469434076770455644695880178241532426347423117831614560761627156916327703446043068053920986347047168527372165593667204408333700253735958734590162296391789303128595104467108431372981601671837039887241322739648664831395035850339227742697400501939051260233422990012916694563417974282971466096265007788876399603942066956080513023538375093856398553524355394388162800195147891960199485304483920620029313078375725616385917499410779919476172375178295873075526838643472617730765696989762525389477462799186517255730381092325314687860348779462404957108560861265681628811123452411474589107618231889868749615656621438479035978325403984046976611054828724438851033038661955723646992611098407080672318336593732225971900495388272416784284597733268855060381645210911335080362124543165620481411973885470328997509654822603428425030092336952663658558252098752831903239572862807381349374010054147017421773830654431353734702852770323900580560818638986675224167660433152673109790429332558448390519212586619495112389810375356667231758432188656822098809245642715172489057039057608531217425061752938873399632789881265730893163905506387801880163725073898340798365713283681303066054224690627476693783125784093960299589121876577589955787545308888319027209767175113506381265687901454972537049699804883034433922882832048072442167604084785565804109078437187089982872411289277815680676465628369669851041197092554017695408511736217268564640797710065445857583988210672911228928553471819878409942989200746808228386911578789484658490279901338419982689266538117454235038889144340524711422698242476199820237742598920067400444064954065940525769337439049111026191816964232228007295007678156750126488380583246957091987433106387145600849002351198515867447888822572439374832199994912703601200600622866858852975250272716645525622611945831950378200484183241034642491339900710499353838542495806124359254247534080590702325454883201320295261566061009134199933497766750926914563620196566325953191822527903442648613499440922765084829763810184098066393187414995330167971595357701469994163273473596028350175968225775896309105153353363548254699842793584326004347807717000941854360303105382908207118149272222054468844447724765237036925931603802034132392684312873045513245106476838860978687127886292782389560266121183731353187885403635399713776959091657916661021468207715961866861165189218518211515486304297147377122196244089248308787776862905352507369580930834034984169245199306800033046951667282147695983671414257573055722019485611867705758963438994716188674042808726739408619192665828265476112414903557743867353088691099267829900802481886202446154207957796208396265900159971540488896018356288098753849043814644814888217061428765663560820473158208788652351064445415077604036153364103392529626482914900139263948211109483178802559660266361730437119365878328052861051596899329454701285152557864095421932702607645241200241479398099592881228992109992560102439499180608415709344080345177420188016604794701636116695987717318080313775725250094623736611044665356881216404783422935136720901203232559812760973493472536007003990450844369038469817312480874325497130055825348296371989263069062616530957712172002710146726940251377467452431349225417109378589412522525634352127586786370906206286080964193910495345384082689013661461933461689840420078405333228865200780076093209304604858504257400344372149949320903190481340005526994350404609461158437742695907746758095940589031786652864925607129946330555808045048707939420401336208233773986504255337357626013331321687285992406315679584721179904364500289243112549134181827284153676331002555215681504944445781509062844238561478129611037628740227783871224898611198904252608523468259383166410479919913477238368958684248298448895733494649822328293517176596450107871025391250158672024584135813068328362154339104954629691075228758213450767186041550522048706474092193197319225923307663341931038108196290718361081250218489954719716343801268992490876487823329532965937940720833089832110120054196074051214628566585981751787675281711193519302033033514666217664475430238811096492794715541013119693790437149941055580265913170468835236750471792467851037186835092828202621326023769744899568614810967819100188790121639980962096278455245501929349135252040518793880582344805368366058259665811576246537914473850540536396156612539330310104510776296488420894025203290017080691688969144677591115378084227500862241413666317065224424424237805892923533879817702308442714017574896295548993784030361792600628809724281330080766968245064649107805606582884613478588277201936949337088401077947563480461875932072845101384028922895462677902965055715131349996404587369728599335291301121600730553902826767578222839347496401429292157451150650370432155041837423012480511143168608921362103379185450988983418124150747681966853976624155961160362272309104647159758487565942863507371703679937042116028739703576082935775691086656775157543051255357593312322181244723188739767915908634756625417743356776292838886034453761128969418091432557984986138079487314452225621748513496727817466183283910772076334417328282734104151542361950072914507593362328834979091474104431517840794473219847328654235560596793051042535288327839884006125542062019414523332013634185367877136736811144679199959543195315181275989805983424840836724349731993123678516219642575786944353607617781034243606554755306209774695666082235576213604087221962457940439761999606800719609621675210357497513060976077454086213719648855012198220291092638293979960533357817484117067540345331010690628825131081590339229728107716421279644971615096908920852644803947062025890982725791976146969113983632946655867719158188613486970912675681905030558405313647214761822003946891788591924751439036953359206637605376118139585553397103639273382581687776184743954381190517832321883771026500059713575296291528693263545475469590601699408267293446465118875394889817209564141672775178683793264085201778834429095196100128864610914915649678103597462222429010510905378231428213088526206236855968751677594066014097542023161820679721069362192237682829649512209142459650025959251678362407687076785688980362278517460382337841583042357429154222446658195540356210998667230159516331912062905227831254162476709767423136815913026573405812450422696691273004137641514283850532558145430752376316965716618881333564029698652412813451257302686794572728951016367578735709135577401702590336975573300794675481399021613578509362894475587213250642570197283688585427747229914201067160802786325681003407197378359784869410480009250923939675165069870455692003605547632666583738055180820743981131087760372679214151895467681999693980539355983897051906324005328036514659156927046855826405417141494078047594228247473494474973445060829209156459057122865462320048363303810747985783080326710617579018913557854820311893826312488737071292070943621258475213458122711595837631633029367611735048039923479682242696992484444953257359781692662382223016164537466835264329044001778814699375979519467643659926587276433139437006713167057774926224159532633455805183225968773601563172389836183660214210986637301441800597962590530846109439279605672265854041492286387973152393289678101863562598168939954165210974776845421700099258205154386696362881418222826085664678456780705815705463235170145205481175627250733828815909375812846630722521333534289576445892786990970504319269014221289542583357987970593671592665975126588523969896055701290211812954824973110846710275092153269081369041994634045980049318241405398450054692881680590865128893181544713871714766543512375766809853821052573026088817439399476422051383621543770693287127711134663131850562171984523731499405178332317211966665200561024098972952646678691817440305597240071416308516183939948401759505243795027081367843310406052004056908926354103454881806197229840648625791081596019529163579996109664379059819416620774703778861027067190406360315500300593912323439804647495601310979412393406908646387612070491455795483279748227634449334092331994882142096482877991965399778081722118778179009719957886372456620624726929085233835679630577331733906597501231937850279989048246084127305429687446052463947137842597023995141688920175777130734122204575029233698130592791208205429896558986170182866513937775441489761275955094912262599271360862534662065101976938765426121039763398093828795453876293586243600946149108472485214765968671956296543571001835471637843941995949227727357030511648219268285249687985383205007718693637846887030920338361380550921143264225001332777052497451819382410643621200581618845060599900649047711242169695316145620980232708647214555174154884211564087982266367067081613045371920809064855192554640031874824306431819514872692937255862776457249690021245924446134312276087046966853652353357913839167227231596507691201132937864447311499921526825487668283960338819652170241829128989251640786502138475731928768332614857253564538364080359673086924921682929331413836852081991587940215493874805757650275069932612464570163581712221080054508890691168943888766873383558128418889779513951671183451025582056317698583743364981798111007702231084840517411788956154754813702447074348767970841809775102018969699453269783607460712836237028594297836957259667923477587098832953144570991613758967535372454841123704988100409958427964633385246636940966863521775129264705477050526360881636836272326843278055648173994171367777551484008452188147421485110249398787691748844959259893243233896723797944886236128105960101860549795526212399384019330101230383045606591660117694592099472569399372075176905640611831862480764783241936334358129494228567918928682698603784412367044923061390025732089087583283593266991571012696421390444846728238340503682427237111055446217473961641353546114231167912492548835400327524969326979726198263471270193075987381474028777870726593610306327626355293898175116176885858310169500281980532983030770457181183151318106725232034645799158972094188208352353097326936093908835119895283760652669384147716811626597782012180558122935193954634883517010337241329325400264135008691875755190487966502015008051815310150985721492330823385485182642129419034367816311083922999468286100763046728598008700046711000972618531454193378373615013099398855494969602090706172092851885479961476181887041746992838459385510976474887285235201077369115372593837743831153426031501283970347745299142102174801094624061265049923797242942156482905550528325528686765368776900899938805127944752349557834734728507468271558184369808199406891989252660447273668807177126654338068618039758456071176555411404970052318623328741813275850743270058800727073085321316211506684748207842073432726581718129050902794001227627953562431438219291165521679038967691727725042751899340220165133367481460487162801819890953307125086841782009870109566211433932228263530953830137704817794476632945844156445476761600494672069529709866213691782558460719646917771714200242241875816159555206643995767172358715693033652037159321492275642103435614675909870397847437477920995822397170355551440933127304146821469684733178049301670073757538869654655484785514893074003679046516779023956051110898121447097922241793624278119350736575102648873748125325971200496403207883303597070217339314240818013521891748146893870027636628753316881369826687294920500719873065415133317563725598753777691100192324530789388996506003996722307727776150041413262968331654384334168480407683903800498356487571869143869910377979288359029827502866897304066558741854502617241127826450119657812246321452492086499097310534137174819330392612918111336709120917212345555890789959235268758582179772935667855111322821956243267265485793879654196498800152470591606021053149377300811203516584532799487464811555835659528112578531953325024284871029536137128393734811830709748447401148336294066043624084680203477774647598741333760846586783859686753502663440779303684883963557632373630391913313399641298608757078399161049272373733913149343318007460094621322047627614872139146453930497678842551289396645497196997315031310719888967858804935026336675167237669185823517853828972858346327439613952458489249492758713193869033408612417857475276761723080568184687226479961440439710035856676503907584209584895636936954018952802214722174913392883065670372465865843555437288123893735323232075438984781494522894091981982761239304691156485731497500973311042854078353970439327425819278494408797598897978228939112910214945888016529235166113766958991423876889173388247076595555080293906001421380010816290873458515811907849530738908028214881536244553026084016472893369189318626336945376700305949664100315061036199629654766062477149393993231258488815032326769661417992894313730278993018307725229009469517113406720584921046403850760693329481997733035664832436130439627211440518191503439632008099330141498762436991854833875292902857439922752851273224078978907674852550102246451813573790524686740206524648823101523909704647595179254886739249769223923107007911174499227790727189794150323795596924090309574142569890499760215788022751989580485209918150714579601391665591355978444768351533695744523772288417654602230097488950680632389284197062923542604622768360996012776789158720181781504185769481329221422855185315759203531117996104273149557978342469700739448378107372214518868467738314336535753157725646550703650520177027578927380217756420394988942806067965307652773390322167780564498369802943005905834044433612529015450852013347246149638943963721466797199036584146288387391981352455523611850114362589510691590134999139761044905224964677001641864192457604726550373936574645495517934772237500642777785119756051882096764889156784075566025151338314545011335539514346004911877964816202893458734871387651834810703032327617424118796201012739456055874608215565326634169617857544992871506554477103338120519631655841220009433062229992155038825933793878700638616760694808841899213524293818724923066114461758809936175641061979055661487557782876413518785530825728792002767448983226588355562860312887569682817612288386704617699720266111355757190384094908591375664427448216310082765502810990783429400855845447944236390500728354198943508968063838206554459270279422433503545170314868591745913699268323212067975385225131934463409978983341869744846931340622297650201328970556847671103058018249588736155955030230276028286145114636428400668463459333597532031544643477991582572803749727533928678807786562681779541001081165942960908646721677660800468167691090451094031064295661375249464705145602711368153210235888609092482829928235676377986398208087000126569969484028457613587394732546889725737707379890212587565575711598543502253186414606840411583257905536385503712566648747579084641133501512417898322719477952845455619752395789071415725043968301318517740740882791829995558011352891464229464892390050867825105112465629594377415629126657850276945880581225841132189606306163965545775330999811983544748323552675897589386412051975966450244074516253273428097652181796969490064925093185639494308951681064744785785444784893114612802457689602162126325603652466998335206026120124878061330400440665336404838248441793339498425571254198858983037304657477467071825266884213631059594127060227755804245832272775087227236533248774735666850002133579375050303135933056245672833302995314717418742769821246895912865237149951993757920529575770934601352784860982546963622652866049821566822894899392908706437244248541468232415761898420981072282436210480663196870668236695255930248907838816879731983284378655328647652569797128431868315462304078792274851975845613538163428241210949790781794429203130843632864028286277771175489311319055305395446767853256610577458632596593183553931625199507168352525474491473886410179513613502924377455797997120816213305552201438649831900951762492548306659679400481309656436833947870040865228536215053515785255650272332569871423691748460324492649062822198312591072058420241703869707109137826653430452215297789465961902812064524201650049063706564634879278819830024887067099489038176898538483388833431085249356212755027588012972308391766646110344350831025253686513180543158011113020187806270448761038399244135867179763340354986196818273986051800781117819060890466849314571706948007245859871481512805291235847466573145168394806480661068093235774024060280402845620286754926327732989527618928263805031896910290935974426018307777621496474561532047286835532951083920732597695878277616547361724837637053656135882528667384648770833627709109494527371547596251903635420930415988385206898916472894368923617235700971350547984616003962164549076629927940209882611920683915160410005878032132885865907774688750114800399024964869156866620139663186306826428284781744168249732441010143650787423350469650963161716923341890248908517061722601353958626212455472949490339366444441400499979203583472657641126309585144961177539962011252068737257807610691912804816720954604956667085550220164380434092174707594408943687945979323550799754259484504991870248303067787402055761526807191327215460864468133870287717158334671618199574270861083931791526590112900811047380168283952726847572935985590798673362349401800799964981326539051497712341853214186897518207092172615871618454986631209191458878657441847931745253698813924551654811199874660003823495465317072264615946340781366558058694906755436633119661367918342845924090514124459351035866868089996565060384850063414579799881439627481809970799032565391444532038746294016581738405621434551778726989306862863913576726286847293657213894172347694536655540127211839483815237503473093086879596541324318936880245222584049068301912637247176735705677345060024248958553472652040556612940828808247040550411671663932817291116116697459605986937952897919597045407733679601584651018546790172464195611107827634342501924200601568081620104731169426771661137984029875776988312335021544253680305187653108432815360136660663490570913494779144907265987471942989902632363064304920220648935050880422649475526179005528222504634062591586547564600957575112367190545579434510141101722148859685902292974589034909030795063190868752334106428328321968211613120991147047399717409834971221482883429709194666433144633141160214457919571424048246157654194317291036151467092019623691618911655524251649293369828454404779014172643515116860643601236562524922627436670942377115560451195304662658421419834178956401657655866167245697992259653050273809092598771045518787695506250592508033955584839215238106366381861743184368031290838814207983333349334550501339570345422517898749905713243984551756211206967514137750719795081644886716844423611786785333651188511123866160261899536036100722187169089448460898275883152296039980317395695237022705338883821064064384136040735678718176362514472809104779952633112017260043394364695335411907063516624792485940600560487346048420163431615914571758174787041865617613963450773860884089914391199927717233939754672165808328006209782891730899565810777253483473010752652259663158559234498159666710060573682901731902900452993951068196933309063012812484427802204742940685603252700061542855245695372788254121749507597736874568252085701865847424058781850278418654302808465612704631099597983761377684672246288286743251780810109598126293329572150028195828285115156818216721740608603478937606204566601486945910952827567984254337802277099983503282329798613794231465397684433386594001661528055964576158602071228641731486568280888090462088102600247956730508603600001658986821607605302772676642642919790390306864824069046486213099880064127336537404127155929178373921908625248678571892220798650686014522847245011699731792228152621337404568403436288786710934517513725681503250857124524265585387713420998334039496619923937417224227720228047350680579921359021653601423970014567345314714135383051193088259498450667714725681661902663796980193573308202208652902966774838547671446336362386580254915307123615936209314946183477453071618809915020485566726776661659950633269971916310794336755757525526843786972438421109527114491647709353858615877366612427912065475701047170956818789525888579349414997508465833190552855423579873020420090009768549076436841496113085919702725759099888039744495355388217175707755076966000139837183969443887637843815990462447777619004826609549543013325413754978061393233184021891843005629610946962254365762574942878476921286020688299400790409303760131171875163964973085929423756557133408080280952601221059041079940083245109977050708074391604843430512335366957866493132651852365426874446415176310317546497010485105422361498904721176393746230893436258455435945862816709686424359055137225792056439882103652694897169283407003465481763979407544953628403954919365772459582665832419655781480674407138404793854435628179448834111807779897036443613247618366695823827816336708122944764762656061306612024362920017334617083224688289864339841705109615322440771939558062735738192468176112846505007867177830852294142986856504500517459202342656803960370478321363222799915929891125713642312530017941294015398844783780582623686612211821531280507897516581969438094493900038827082469318494720110908547391348302847757766215596122446922238106731967075236300362147140772081083298150887733658132614679433506683095058268296887291671870594680618082960048933006114235070287173693878712413025116017700340504154307333840933316651934410456624602865062641334044434699587672137264629006206839178669615709786560209805766416085983912899585104606973095123903508922682267901420054954227337912114933608116626389918674314142585507406231108503224711189128934065605347232148240437352508099455392475707271079617246255348635652731607405440404231477890388672021452003294976770138719278480250850135818600372952401651845105161841803332200835765129643906622214080438089301505642467881464312162490562273400625580189253687019123534140883612605747602862851744019496880991487562446115322697026723834159601534589712208874931062099778284500213186188980224058851698011600037134910309318604237197359135567164265911605314614499226458832902638746283144499546672617955550175025490337958595834427541872194989881798818865792923526902331037356991061020537484690742462961794226096073813136969412239366519433770599542037511545494900975031007650243521683356326034699877784779172796231760157784808925618463262779044031439322998202855990369509216304214639616101647882949963652699119410076762435866221540768502729236705696584820585409548893861804083294549329885301204241694550732394351012930740429523094447615491970714236202750205439498140971671196418330277231021850737315249815242372626037261480227960550822179254815508319325862146503292482868696261671822076127826187349764713806064221005489255369705996863166556362394945419877882026033993930799630614082750003523496121414228053613979070943548795468766178662730565396656248451643709339344307050664936587861328434788138160432528105467627597735394708863718094415169056062167533394415334911342422700294531512466226581338091580605053765175089703132411085126953291135431440942269055961645869820383366495987294560641430681105842791506356046959139220477152812991073218229736062332749382709066291913691814089420371403267019637931623131600210442047457773028348952541964990735004685768872568201832563840869470955306816647749534655638717063372418513686532161092468321205220849297511412490380479009726211708151949398882320823978272605059020387356650839087289370059797254112681806977095462607001051319782466945463639182307015039828193601726175545738046003679735996326199648980741276583977189271365855039447654581878796404528844029543885236865092298886458627565850615120562227982047202832662762159319216809230920822247180491945177834269957297545111439254439797683010615952848619920497861698333768113124643838741684876222826617981199326615347303492472688856532143962376324508167867141603150446573903088859799642843775575965813851610509468860375086586269223845535110708749675221506048871595810571230824859114506050024529619210783487254935137788397681157770598996384938612147371734448228275819120780255602340122945213814978930466627362897404137405311199124100138667184530164163217425890674366030008315653133439158876504140485878723672208712459132347425307687318197381963025754736042277660893817046119919433927007775301973142721277152317002713618835851944867359817306806592201913936823860182248630509307905565281965352115978376440955248206691738570583679277164507027586665164247610694332822300857023883498335025963435498585781424500593135597333716974272720272903049161163556821299778000444168893549449632219401165716987639719919122572735331324234557724879202180207299544781753462406926586616565929115063059785763144464488962834840935678784941667670867677042122966775157087171694499279643924145549181664878648363606012340823143430800889697597966649057197638725288811694631867835150963173195461308070788754472814935413474231890918746316254157228272360318691481639304497876247975261965328480401685513333432054728267643237204995511370833090696523893497320618589947770931655744979262861377544558793453515387483864484834259052830615610572035334790425008041739155459348485622638608023326767402933491653407471980636274971816731621647973415328806383769126344700425865960785173952399468874321831385039954559967417693787916472678379688076242194783347517973605844846483078630578326266853709756722565924273444067985963588689173206253593575003158645118806344936248746282675820496049926521727096976067169916053893502700603828440779008156204485281032962213992402192018310292475382945440832782866912817634853441221176736621771261106781674224803662133683555296492576022236300560651569877377311156058811359432005501942696499927060342131131936694740919321572545667853837076059659916421390860419258958317555912743530088909104149696810230975680129990727169527056092721936809644458287271960966510112814476216342916821164691346144895564573940467843331981216553774540072020886463355125651283232282175444221983204925574904564899291688972418255877280363844912592179155384521144800895378781054401909857183277436586211714295454836399808571422367091628503055018622944446322747530416724392915228580782311475914097797031254807144208841854535253030585132859977857120617109419245627662309854296355396911144364700411557987190198097409649525272946555041109650259213393394211012744814348860808738331713679607168838254138875911292456081036580381301899487642258733824517303533459035202033794180299009365349992375492754323384737256292864063682148694036733512473411461462284543385828353047178028674870656702360988695855785772037145805790447148833565687817776447314777973091975283722312923049495785028413834832732411663712413965458633936353693033406909421618436056226235227946145427043096036450422779192065825020118244535477131264079358701492391977756701632555132832978836170792288017340013140912008061860574907658161780129068214548984953176950327507327862924753740363447305368695484142805845812759158909220169767743045504010697911613160631757846686032579799372838979688216648386220089868589688924673913325188188529249446175887037181271323114865379781429007857730683575525565477449790626396816907813854259746527662259721392403253548559695973625184799502593752139602984914499145373852748277898842385473196665272758074187626724049933920355773618325089738866375745121084790159970032986283655400970023514263932615121797198432478729969741242097118415933237419373747626528455548842881998638688639132794338262346789624919510909467234948125451401150430873208596014987738069419497757810326128351908527802997499245008820552938121293553843747533130002272580478071221434232147768530959870337866078391790721747841628606926236770972865883828861213591286520103718389185486282273360233073589834493404454363003759956272366154291982917753046385367688692851262116220681967106768083452156299364029014626067364787602464555824639313606131000218256485332787171207879660870480184020250032085335191599251326176615574850399178274701742243170477205716120284850659718069150640501357913511486572296010377984255879122268013011231594903355061711563047199264532517101706797519680459772132543016295555358772320383949932466370912920331453763106290043884054212251443199103925920504402728039807126874148550127449730789005884898098283295080149620946330868438001650396534093827870150826126717824502946675858312895878974912332648149152442594209080658895505569330765078216917251856792081462530939691651014965982152337010523314985842091318194096489541367106920537457744954839556883755450465188156163089970874849730953863124009894594922625087637139584069234442228717207240692050402004353158165621416014183311738166275508392106219365905421611410398288553312499011791326021835670222867127965136036783922939771799006701942211111701339330343963610033943814833716291743796995159186581146064542563813464125621121001099398683005241862138517607166516762684052711348633311313568501872558825003907660073224232603880202103504686953266106406207992976615468779816949791603608013131765677179824998628921924787285221664577235167432649386707258868790933687413712015455418500588055487884429676938343724220444135385884736826467737569334516602659210130979264311514102049126822077057757764904887114279835134685571968559358321718237585660914637141621843512814067149278335426551802115590497886911929394153901425911172533277417691548270323299871698444284190525557377714248923284508245061051825632744728974040006688677313442332372043721050441805593389757283004750224759911005053072680706422884837296475590590551108506169023976101539893871669925174508347763491776291512596630328580364508721722964489235117457848182854103607902908137060578584050078464682850091204482233138141949730165490022310092410393202331091459236377439775386731715721222359558156186011639626909213715525399936228992247422687912389034145241007971922896833007673390673288535022555749278604055713868662503971921554122611093706161171745311536359183674512017166205658144693025402484930407645899061600373263619840348937096343010618223416354725069762818622460055207849640270780736807581362858985660611028049042192828535983538964733307495007612777565036648922571991484150093295406634461135146681418888261970445276301620909301180748063814269165509556086740918296466871360947805205850212670769462740407211792603143857672862927934475727851525793232901107367615812022917564777430858025041470702771302642486042173160186521202973174875147458704762178470822906586513393200543423154953745172157435569139861840470113289397717171021379766539923520220702466788029147607980212681870216059055910115911581443758803580739552812684931281696175092420975467623832952698341399995133339643428351101222757020624594788207591205723881440671046494193436529094545216814250911053501066947843347173343872698843931469660309243219775494773377742388059380284594743252317196986345355482060434438062013481882343384032214991952351631797742522879160179144527817487182706428270973276945745004584281094155397907694648549315128001304273278120419480192926498432139711741815838378832637615790069542520462302108028501589225866516275107921241594416525841874200153673671783273804598060365490075128652614297045557491928854121394595021974252962474021335644704148436127834127316289618981197178099268299641504073518795597645412530483838429271425831048978867922611053847140835113460093096534878344992974561798445190368871162940124934355501470006267928024149318398525005007659007686937574630166853894695395954650163013941058242554752264173045422884464925500023958778108039110135633029536202563483545350760984620920402437599726738902349728158093511355411172849016285504709341540825884077668978703363289147519106581558751063322215654545729587656581202197643517277192016152836023623535861429117920848598011252686624031249927264897774179809701027965216592778074266448607112323631549983406687344413426195789275446669228306787805736908783957975342297224401394061483471537833473831322326048090524138871017168046519718358715742278095158081628143677210643448993911653806449389619710776950885129245417233493125691121678471633940608397615294719355949454820583821127506106372287400288258192284123684351295836860848576987463774297388366180065663806871591077616890967333701376731867579232918745509024121350431043925814203445275339882055899002145352135183311071243461458737767390956372628955559330340206584918227504411286570701690967396885610574928427897717092569289353313825495225140412257235252667986110494885291259928457986656433837578650985134253179430676265438454651967776620134282458237269442966740160714698916688464502686924925522577750850976559416150534394277066351904207477277933293565950302623900024714660808256162723347487816735519662349407793849923722035905875406102264195836334781981254349187139503236175624974238506037667101851893516978103323297362466699056012767212381624805784804689142706646013351885942705707308242316607200453699769374842198324429925344892169460189157453718863293839876228912238759917540324380666780881114127661010663915782242212816737532786372010664003715683990505669923830436971412354268361358494019328287989813590080678892503527429988689693903418711198613447576688972306574119797861084582861577558586909540242920355165011151010296475163536416939009818273452394780775670723679167701684853397406141959934445974855684738433148787079947771940574016806097393104802120558940159345112192616951411470316983326102884336725627823767155435082746561252271751298884547486955057813414321393529926115315972649694569150702239608560963624704931195730142691068079567713289847483904685121631935001195921225550586456899034364079434007736206440793862963481748230290112155608301785535453330815593278198567565979966923220978526900957500064756690090747099749237930816038176112830277827725180260949242178542713885722818415597787223343786745369601689563981609434996338896418707500129306284392697004295494817910342662805060401187084439848406970508920450103245302741378550739147605238245565725890042755592153430378611871206781874536540534059099958040137590633553230306503040912680062045041218390364566959568609447567673824153204640752312115589848769457615068597966943713506026534092386343798299066914567479910415555858561744175751116854264034194549027884479495415100757715610593341538294792611465545604587171640693912560153495947555752084392004071996458906541288229634825381550165703767230927927036387725627878371370734858445268184175747067590584469460453735308979969053108755240541686959673174355224057485042670953749629467677668757595788535008456439028621239137234466714834466324039045436354311557650062353870991367223135764712792255025222683922047617184418695341698119007913220965908017558205180040980385541448347714891102414048479325606549819695456070626332713402811775594806835507046322168991616275852181133141516325808324697559970334053016842320255058408206088968773686786172367288749872344288969504305035561630025190238957885832331983346550634712713254898367761957094213792632102878976770403734150575391705162848596290176872924395056858060342446680008985581629209256341999145466928346528061332931632171131662445011351238819093137481578093629301089471595421861786247669474132123959065655508652825711960297695269530304486829741422373741218352645025391466448812195579500328735282559294669581610428034445216188140666157354447125053894433334641332977008610615729485639655256523724803296519708911647902572358561570516071962290188442047263196729719680468172112610641436705700518347178195064618318126493517755492470360993982968481233823939805358355952716639644119963955295878257943031019968143597880728948325142373966699416899939358986980900473598766140870090375276922768753278879942526888097869702335332093246864955447089277691235068921409891444498692675612724765335635408027616727448584403617449828560978346541888830926318470204054694348485232339265547053194758592716878988337225858860239643267815010390006930811437679320553542509110254457184460679534306271145784373326219360644822178828128013207625221538879506375249363488793306101145259629321155756809711061444470295510888732076619559257371006860164512831100129117543595814669371693880480462049705810900390868372059692158145270646335605815369446638352491409541864697775687497380226843778797355956053555711783489741760270649498645922930767259236414359810742683717043929946272917193958968798594651830244954081800076564817924362865351509712650211731080824660822752609183716171275219784302339447057718385589439069263963277097501567755918466872114362675224384753734091086022060714356086738856521742679678015617626844845613470551629209231270276857259685994196221626660274066853970693627549530921404887850796464701349144738622785393866458522086085502950257612090063017438682558770893458928938557159818240796501372458544791082807488030458996194993812773417493470345075003039494026593578476701533418052529822283327437665841499216504123486806141885303670791075375027578838568632552492335254259356106465303803402254972807965626919359122705371874680830712771299799003635265804107455300367466614739199085676741149259313141809572920708584046320211929347670622563750349340284961380008898884288093365779115820305643653836983244044290559186978591241306025997254482248544567938848685682610641088056777258044594230254433851152465465893879557862123559463892523509757642856301722204206502034399488008046772958718997044319612193691265250792875359880894580257300261776590678360401279688470147838402720186763384744938882510404446099238178024091312250351871945678799785370144777899465444578358678047339290872751078148812807301157018684207754780388495279824718042875302264212662633579459483444313646530081966288374079247528800996432147842782697995496788923799026170268284978879086281733898438899860998190887991598786244162071586983792913640581258158797999861360525052589287355629477197847323416706699357192917860529174107012162472163558850687754113669320745286080531982752662051734303744337120122897665591291403605075014253915609872693054053405419393335473918831163710243780887260640464395296201523598485735538111139688153237133704212834396735118378979230661001275549109306125459414457156562289794606899419650525613806269396996683120570464834436372644838023579771470423649648360765256942451622712267722870094050627366665104214976747088401709188372349421853070204922375198524624227519838436889456734602579144196825170076337435357373986178915275429819463975056722837334694008895560302292138543560223000860123420384735808049441202977564460040280882007301399962061850174663366429339251664479681757358055855207921249273392182052387793364263312817426951371898066972902962662891900715050202863685109580399188018748476701900319510506802591366963653188878662167632608920951147936933823966558122672804138129170346268914884805416762763501266895443956166199479837827685360623208022731301037719268258405779738546640862318446058574425948903388462832811079264618997096721371934056810618608454499135889990985805534252649679781332727263720747952576649352891848804021783154032666373839065957060407114536510504888588986063112403071608197767125255518467999486688881543406871362276633091918511405652043523763765460649070824755595920908137201552411306855041890950206401798661191980405612443377428889126655945483739718158485707658532268692557030430905708841223989634982980484331482549658470400993070874159060518801477615848871465273873774524840872441868615580393305456467267255491398234246294689849265354467414975037986225417998684498182633316966564611327367172573046112072975919027291040582104004171757327919929078948139789992461118400407583784648345673455843099287220365184898641652970267325648470964982288767158934860190208682718634129603757876139380182080957311056812019989785190603107861211014926238113981397497715021520560229778848339327592253433067405050157665779559549259078507809245724718039441917259208694730381340835072785020787726163218974804496195097758898740727755423220241193733988751152664500312855736380073919157404231260004173570653369348192839338681996124074258926386410927002837512742102614548901665962501732591515702853399136753208909799315144961563160309736137953109866843540835017982876469787310936324892914565756975037477627486756469014577749584690249160500631909294241282975223333741519300689939620097993826883309451864543592883508799781945056380322593995235434344669385747864971848108780623075039722329872960376846165737839431935900420401318751742824034331518549191849397151931852462849591915618382699466096126896235699255654439747870678282427881137667723865883317284014463217962470939812401633405264493013124558390196735613294393477634050408393225153962307732620558604042340334034842805889574731184456329296393007051712203830839008633272609723208699762590254312342594262796113185579847550891356340505781653683126092039181548718962956711610488881411166315991013820492232734146161141986641074983780254384030209566976041189770926503026496950083002643203223615136560180426287345090164638211986411965761051643265463736695000175258716139112554932235628160904850540470569853420133138898264755164221030884366793202057029058140269222040273724186614880664764158632156363017777740931996627883577884737746316279806608439789344064027530281105232063757361999490391831711843682192000658945062190296853122928703090634196248239480649642369179910327214013980993016272652622189073400150038110508690032650630849137254076436993069810289921101135160010383152401973701630656215765073200486504170128823502383448364124142443684841369028653805380877424703232725274152894167875974375818210091325946035792213116825683694772259207368973499823816834526715819372667186546407109472432786541736952375321141144117842270678460426934530498927697446655681597303141926770007078016279213686564441313204862543216117107021694578967077586821257842753167585704317173353225750893200715520364077173704916202231169096969961718358792547185370178782433587212269509824301957738906298865957387269995046613892288990591179202655776581734186802653318534402030765992530369424298681245235864098785907907936362067940610914650361347694720555675838364138156117434358321618810216946561556195647130689136164195355787661817774814163858810216106456759824058445926909160922489828771997884967741921665135904343833485044767524843213181007807778717407840607215830461604333478399453906242339391923725215753663306370535448534727672951128306743153383528913741142227824953646819920168577709127652668870666212428432414329715360614938664457869752862973454243076319722858066756876442069873538560263736038711675993621335434682755791229378723909573598316821477056089452045155112369907532614287033556541383694933560362914910297977734418611110551132067649471572449248642487824196840307076364932908931833593158851106220568354059810248963707210506525561984886950093703826705562914856980973083339986472738340085243650016631195287100868450703387942488336522197420149806325532191306032774485512027764436419847712420742748535897723646482170253101324379266826948300836079468117335894509961747776207189946911988648186908382484803457634000826621046041449177057196575262777339388175086699355570606897035583181047579415745118766745138379017241173405474681954318641548200589693556779784828776976754385521634927153470280392145827086652888867807379462317517021380292014223474209674584971818651760019484429033043143550625554900325178989482242043680565527363450820585111208214093737678554006956339040896987630648429890961667426573974162393088295774599538292070619638460015371888946674667315039240634440253504507200638838196178985495524766033090548010323822538682027380693372571256072568073390786922744425402077651943506447822218194899131656686045100186430248580676022992704163905873968231195716376056081252147203786190592683941523566173012583415426883258579090087583993516016816542664340806265431931751970856656507656419444955017512879430467026474901388801965066794467745724057754341994826656163234342769096586098963440603409026200674995924120001646029443255339268810240828136195933681792329288706219248704373359337242299276980776597042861881308597110257245294356725453801071389312067494191846384939369543695568373078329784367278491375010849913637833289483565127437529926630710953908502703680822485199439057946540526495073106745079726409847540734734152715411876208486828969805955443159198642117205422973867822470977485205775066845057713643040414790343639548580119237544371207867486062388635907169229071736668599991499992105282116969856251418476090927513325064235836062907896189523090427852267200225194308646123326754544737754333105775809134855836400233146569871470195374636760815966927385788752508571028654489832816079752055392588893448198230076050174117347903563926365921866969336517023939060490636996201289283110506063017267936772946169988084286848393390335034133007839660394329411759040451115364217497576178746478195199676047112800339847703783742219913936683928208650019136407517919771789446508532795616646023325769500668149253615264850415138206504664342957528903698168243008211610857896051546424257612190745422062229721407150822727350902703188638832213956047521060399671351214635913066611435085488371523579022022809851449547147356663491442008445325178316062626538535829131895152819078142267825762918710377648653058717952988878118898143822441910600107126016364138202577833226650939797518175745963850134997886596362863974098218753266463395603698399598421886463847201890182648892614060194396889584122895512470255829688667866213999980732991149322750176416212963978046289096402747334775369087410869325722842777144454154621311719658759014481615595979747401409109461464595245671333212482471219866096077848524675567991874673573971055889814267196849001659181836224486324957704685789426455514777843713307509687374978579838562649103878558143907082881581215474741921128159751395078031107582502032880190277412978814422410959792051725649101793009465498088627956333527539685441796894340787701613489710989644134782718770004865417083364256033136777143807740046078762590851560722097994300684608607025967521427399363129856911468162816524366922128096786058966973371071681312690284754332534989899594493731857067689443702459355831495750053457921790739507321243136440603916259097246029297313152969931620800860404108572136237647935387979537263514093739274335242823328993213506555220323032533523810154245370675036569188997855499843267043315990557504006388619272452854840578920796212389008185611608561957271738906086206728892656381442651319768713307959334729118005140315148588452593962207381645957313317852643633314632007728045408731377507815898113628836604818380708286016383613214328266144227501066228156644168498328523119825761957785435211708523561047381752053522446935329052271260949077054597610996495844621996398681705888518989445959364774707854074381977932151181949434108741460492658087874338103874848452436832018686805063514301306084242880950901434321625894061470648477180221291594149568816433422905718873872006620745539866026504887344275949959265515220416741385191671315748905156851752535473567080831568130091909929733565362354504773581572673485950702456011245181670330066015400151881137008778774741305338355718623090216781116817672947505008672308659673648062935474949536444287097134622449236283923690947789249624026341721271170520617988283614037280658423152566856438705842333957262662371861752394682017120830994758771446943366817553910378257862190179785717878738782172002953817806570088446396245061506004031524125440108054498331280663768525022882838942521858261235251688790857166440388635387822022168507543272907942306111006045331226479898949622153319121671610276942154065972467054562949982268780521329599008928911566768943187880064581292390492324614603630496444556590568916501793343879962697213162880026759698723297291824641710933886624706213311268764028983975332280075852831360070604700765768619509622839674182151329378942264506881425325811506008905327736623640596739567641463736182956376697333647694421553998878456726365431059982148594066340299891374600250767231365642869807652875243963841701679264344651962314190749078275796455508609612436841971213384131770423144144225327176402203036125616003382663236315584431918391641981932761813447759233410852435924459608179959008888731675764466359180973962602284261693875877739156455306512996528616528576096938046204154632026061160261145495620927831028586502414824105384833421779402910804292805341511198321332071172009326915466764800305429495974236943487458809114659437621759071106693232942185727693287763432737468148808626431912010916700598434313883477091455715227928372420349458791587377576318854642947249095229125977177879347603831571992256646787579724370048477668887217279643807072989232370621066744115748081183751338540090529413447220623399878142367882335434401045300904933543845887326475686891021581467507864029108261417544862322538196477741826321570223754670048401295601883872504494850448483598910922962306408166470156758933541550866934821076577571938773995592564343216887774292893100774292470867682534522579267372200073416103473519310690963336262498501069677198528537039139436308618347274210162467020833128843715574421593223563572102358675888617142407398382806789702441489002160732705722975239081831602812772525885861124988103861183852267961913772896489173242943884750830027462673322417318151152649275497993085081307766060475549973482601741067345298674105229994725611825639853711234964727544659893347947952114996330108241884942139858126788274414348296717495003863056656123540862280205468961480186179600425986833538875668088844781186724818120358051498177223462831503068078610087653656378879138953055486125936010462203476593807152115139330555238100610983850735981130006749594777272671253421995361867750818170200564444367514673563375028506008743877911919610726728515672643941535357458728491773849676394710831736375378256370297308947432275679621891075311787415534671044353224868871026668729450542347563175398451039773895135847690157317164931259019361665866830491176006084851230499694187903354827896109669807048900323059380613969082103976533433089765286266246242983995085793058822068800163857003666498644762632216785161822309336792786308868442649179104922774186792723680937865371870191079835555680910225346051148537055057574328740328279363743905994646720464794677836096053228268304680352415189213408090785864593052950800496744891839535720360628082993753598574952352183185957168449757508699767562212955885170867491383014215978301520560249284115117004087012915658958894522764427033877594354622250286220587196196304886297035006829738635055046747777356917918296704815700553733296729216102117402621845270868735676349344548787067311680638735074371294390081054461552522411134094310162408260395999461441266411840797986965619947080933504785111043032765443388454293191004355614427541295543569136739287659544298684814708272743692424299404281315380870616379752240430369162822843457880739690547333072410417557174273914796586358888578515085267744145713135868324517199418346760063755665628193749987472839306093095511903090535934988448690650789665644852584048639654056884404850811613073551419132304436337985259926737198632477442934181490699481018154565042347406592382456799535418823004756723524395081106999851346770013490129811969207174245208186240719775671737875567807426728659072120328263147690072839186503074385989247511549973719197244918805898192860668084179719153485298830482255031469944182609368304332230588657976133289575130012720725817051352497319748933957891639791254325845721487936371667360352257300701900939143475888128601361398442339636821774390484421985533076117200812939377397320627568123399788925609178729648313653876487937660192762390239990939677144296812582328294498086288297750942091691195382206551267261932225430538344853191564576226303777535214763455370036754806939534748043324182123327641385470303335761164450925619030379615090882757518397156874802153416644306752414754349154146445544621446671782970264590632157650317474301214524403658252138363033024669688158979531815964740216381522870391575129863804011472352788578727945746303041092095631306556541673836852968096727454276588826598610447280213190358629926308047290828952927018109018744153049240739209618234870073534772646198680998488877191373392710181039019383633737159323898043344799566381553632709787843492458238891505551231337686649478320464759875069715203456992885343804641781890188508669737281578322844996056828511456445315054423825151077476141244991915440095458420152486553875984949370581417907127477945009527672086515442178156254978616543661693177954031788276510359488665634644874109078622003607869188016065418421154734377590095657282992962642018683009758160566776347127809016654227333183078402476952838544829641762514728485479262958810930269840323782457197988230213951830212721466898188002194586352824436201079849420807259123359415783875232616478066697606887929604721950514175715287833490097480578712957451947807854861785497519156139188660938069279576622156198647817075175585346401498128973105503930508846348768560397316234517132851375896075526935956869577633986701209039208180202075276062343396125837488767544328262285486184254367676597232005937913919761173522278547394461272524567879167266294149785227914048357689646093559490580639289080543660377261450485629170372069010350069354907780612579580134075655332265342987323191702937055326497606986263453414678928184847334360585808935987015392964898843017599384431845030854012080819894917809589265095997292275672360095925341760541240484660729686053311080626356617655175654650524653077175128048629963960457955853683079202724811634424778198022827936068606201693848729769528636729122918718344273695330815734600437949524419993144615557093881398124459944318939705316734145505963140280089737174498809309283363235652945993260537169716829381045597419698104678128952584152483697932253286117347192202493978198452061475673380557554514082197350797534934251412260493225930508276634430553497924998914826970383125276621802463021996384097798350263495304434153743174555709248844680307100230953932443622240696853126650030138578878890691554847461215540226888797109122697577795246836006414343102188052938996587814172626482840186168585443824803422495327109185910049416307343362684042980815109649884188140795537297802619618291739146542761943335307022306429719813584750674080135565712220777839500041981638499080995360080972928724818650275557702922042983529398280810699333301493693684219607293736146002328606100591101049729271593863983259403690183193015893291198779980135041664185389879324119634686386947215139222401574752966618132618677131709482657097217905308728127105146599771941703578006879551629178407251796065726581126015963897270024434592340786079542666548649018736774726702140325310012559710961333258429795727672677537317041273215754155624345515732404409287390165732164353636383648147910663310725506009254581019049042195447967936807570189913426278635701117416102475931364904138538981737201202134040073752001108545523753150609734720869193820635765697652699981613235728431973390634898066528703028372192076534597228582484275540938147675865943521721240051568128650827837092007517359050532917231955500505943036381420841164567549658824694589287476446528127463894105413815558409599707012130578817527188505597423114700590558796293540965181126357427689793270653984930894790526597705381824998768897430849023429212328109234214454747079633259519511751466267555608083925381030164213797624026626495589326047086665735228181847565074351853640292260565929763476579680735109961581968529800832677947636860186625394199761819684561426565187658598243828344623884727084759009576405838184713227754073897107985875830141103616425295760676641294726683248611691516959827089289093936852036300879601017192850610099906271821007964158338622635973545662356659931694745400818367908648889011368769880513529695711285193080618151148590640153902414099133156579474281082556251169733606777794596413749282232364348840037743640132200591634861803171068361846643274193240332911516604160217604420207661591253654518758401367712634246984423716458018574144991065473939780486120430428024896428339191280041960994073724376082771266855374200257655560357290343704579047808486074639963171348139412555740295509681894056991919613549409651425599202928218220930327421646814211340193368972055249101013398569887700251912109103213487652887727600576876974094415107766492968362641169620622627384202367122982979631588343754664867114458579042928171210527475389420824858892494580389267818216825960862823209090071084230136643893238286576765771948295697482696260406707028759118853397961281777780334980807403604643074299922944151916890377084154766509227652839159596007054898775938133055300548917575181392331007964902602982515394762707306037000262315266324070529302495925011618729185570061911538489863833859897170754878138131644156675358156760161255971954292323693231443968191293248231566888473492714636758325036550153896364571541620135864425149536769486521127742257141038673315028738855311090997899199915573026078447190901687725024829500905050101178281710545068579605057151715615053789612001440330148753162046737201110023429182666838005291889944941250568511680662386422968067457170447943351148183731558370651057499740647409367444434831124732333716542020196007921077299025555157522655480616871447588226311067888588669528447486076085261653348064148445417664742827852497079936281613694524822810040248100801205337336090799423303744188229401506768968523201791706091263260779075538999972498613259255836267101639790758458511589574174534943070446001612459025584387164115288174521970412589518963270404744369808386978541783172287396649099523784405300965224324687581809923476574061086700544688498516808202135749758839821153067814059361789027063550193777414727015918809893665020151085132721504092227609800548597433166451628430682998501034157582121708929771470035381303547339619121651984567981279806333264530819908496006847308152419674876524781511871005014057688772041083811443476536391030436666834042287061451814020920841138615950256773720939727745298065045509518427363676490095333862505940336509828218736921600776395075182039742402570654877805584303799667593938835440426942372354619612680812126111375079447197910736101681079228772115465058501276643744884698632275085588716671739722568469901277607365658668012073559800136056918402291883405046960995932383806257822652909758369485424113820579544211951564178510004864019147363394310898516794688977380389867910463356433862714523855717099133294564841433965611404870741392250883827817322343866113518836099986639938479790842390862822591461771037389403053881855504573525517793099997999156628079166375460993055965547552016765794919153616966875478765202918050170926110623247372726011493440556781410895700905426692433959576438632506970919498283989699279186039106885421242252563236188902043607731828119372667372027219094208326366131736128675858452277559389796504803581833741722520358649713244306370544736941851570924978004799077937271109746749851224540517338284736396972792060220523446898153749614365359412649616379774419032160966408590752516817180720655361409944613140693263358380045289260083472646092935518358551497720173410454138975892162286990155413956098659281097751831379322249244131108989971485499076435954829009606640670787717943377003106679222019408100239842001429031068709232082617837468340835401982367789566884883588411032119840015175105603165235435377693620738761887694236063583078633051139147902243195604131378074717622755216646680873577157983467106369462231954675395925455460234486182932809231901157714243964219080760628441653367356675888790705145887485826189553623367387818032051260277132540917803074192441679604998491084193824513069796083853030403112956160280878952475836901282406584761008258712443584832183438914866609325195582147282300014292091627178744927556749986474005669207495799498880905658204378509142917805725809370785808959948822369051243323461468179758915142028534062884572803268909547275788961161449018118910640437636162331635218874578618338887672627434769287993776003409534434574378934615041115740392876596888438278899927925824770610573609522428936582162334862188837229740529377383195230544633167437379276431383363527137437643672387922100905704582791120493509843866975678779769831232590651340467697949719419791865831110630175742893253648935632845441402007900971132443100503153744449821294873685308007889077965920355226567984503094510396803842118433371600768716356247469265661906102371863891849733931330766569251851298786496062558330054367394112459270588273295174503634105927960975812457090525373088209637024095793862778485957512375617367339322480434069585178115753502553355790941924074510799576514210004887413327894303786919733303847726633535703735619673269521090472616168856023252518300137857970292999145057172855324854326956056354527246944496025460112076856960553506550383101574024110294719186086053062787673287965160763033793411741886513743420505877355322218751429270049418204839821664686931267217890909827680956127663164058349502356579650724304875079600276437774851736538445117359093383116994759138333930612495580443836810208792816877919816202976980436739453322472639859781282027371805871084785644126571897968235261291992764053589831421299238431062753831517264056429694689175361940897018512599790852698847726891784477912509721141474086500316441526061054906184361922877472520339264512923981232683374698436960722083053247667813271265684451283257562273027652363259000386931912399377402218365716411360849994346440579575772309310002287853119202412196589503159372009685433895122504950849148763751062022582985964771450937858238764455701029716560689519456637984691007369938382437317096772234355984086750602593395017146329617025842434950979955809177674079454183882477640426203056834475297963176272235824089289664069297206579895673331633002172262867043685910940954409177986762125707239848814336923413384889276200210370563390179586296856472051274814211915220510719850777988952951372280262515898710870923637642720953036332867898255937793955338989146024934596994639726893283463576937812981769299203218205275571472009758125723506894559220619674097973946648626970698706672117922761306785055228087580585281272584672721523182684450787922616880100693307591680210058334904205029058626314631869631830686149659787924672243474775610205157012202093914505724273089558576804487640319289190615143640811897476188139662781593871988061141841909989598873016139687064649501752214106457097486817050382228151418319028256966676804449018452847274046938357552128911257575036461114535419642810979027101669618951906986487986772744119482795365154045737033120014294465517785315769163871638873549050445899074506951932912899088573739031345855992223155411461448060274414847571439387142423365736573809532376910151687469893455853267782350256330322889648084850234754659645270812138249206776709825730968800684380137033794303400061980810987007872946893563119504116756980468434854901390439430047805369015233526681697221581084283593380708335926373180664678818224299524293918813941204947863607211997358905961692733340638550862008177952911670997763020775531618937396885849918139677731755371450799918321782979316717204040139015517551694135749753910219840837370102468854843458846472622508033128445275327275315075109567273457681734906947579895517538748617130231684843991013516177596232607023816013449520305340657455763289639673404210999595746223145396477776781120018092974985934818853516700438208229454405971897792803727365000814818229016462286492643232684571306885651311674187210381055885573788474645931959143293909916378863217446384991308778929631981516768937768465679030136177183802509134862201499597230459707592535909738344182511950947868259675944337581057312423396397630147526085053192811063994398546626928075878675046468712840420113733049989313334174887293814909339705779347085934973925520461369184394697439847742995208336298960020698140393064087979015234610438500559289094581213428907283995586314129525203338198649048975499090609076107693794422972216109277510550126233688694345386859885971114817488120371981772693842235269159542824771333482751581961674224104740015467601108586066394784373158721035483453200663181366315703681514257570703621710958840808899232023353130807802190279967764990822653751163111075810188965732610553603183829045538775763145493362196957249704372906754920107412424684866554827708745074092779142199502457065647711258501469710365932557690442450046450390808254060239259658511833600098844959480725811173432475301316398970959697830914443194837946590206714821877194475297829305426042008529245026490241296014452851283552038472913094733939742958669636976045813003179030735405867713378192278612107926695171439552267046341111624684900781822782404027781720092452114564809268085881556100620649990558904389307387107277421404622482657396001328805849200676698078518689438857040317107844954129795803487251613742533830113122246699781771267154836797220721569849852914666535174664640114656734126438693704585290703877945383894642296796916078991752992459969192845365525212866515179476480554540512510205562263583618506582684580935594328647055709881930075370874962804863024345488895229651698690166270248175902574673523397649529292652385219110544685017044329160194700489915955301760980310208636481872713592792579956613965296151796379795554921716472052495136305883790402332181608280814307078127439580449818866342166171769956871914017862841448263217939806560102230947139654554048427118855628038758599549641576770785141960407496660515906909247056485874131511304337422936075104807581821583041836600675179953618320786526614459327274138157098852521069203011394996057241108701031699295043146438777409616792263095120754120012522971250844443990890097034046571176699527564141914285280252220343590911895912103306966494865650518593954064934394778650246562600829126230066663958029576989390719039697123076828190412749090424028331659166351301409342167785999070096060694088758316962301666108899595711061652284168952272625865949772739383386721682837437033614023431662911967640403828358641318390362242041776209269147927709459180611520105889549132561696932876267846705937290174335006962831971358698128453150246777291269889108315551077680689935214696371342888884346503190351389257372334091649170777449949828897989328158932335732809343717607193096973843605049197216949548636118800573884717185981227346565893408872434013920937411457028920116284033727067684977065815274473181548742138102131273998522336532179930183710742096026641308956531169439807428217038268103195613918594475998056815877255212182030533593976270583592352515593264907831630891396376835307377646999032991488595722847802148058400524054146209777154113936744656852628794928549742713697262924591503769650756514782911557375157727328421503364832597757120303237189994860885034938412504777117364639772400301845736373473837258540457892645368257087505331477358901181138747898436952672284281911939576253545586763444597085758773615700438128565081842621754665661654042619249839031584635117286305449235538013300982945744690950709709601932698680560677930271284394907093295316059147552202694887973882451092286030440970888456818860209757095983709375911676396973554588625762001468223946378903061410863997008796364777213581552802230479943500052698765174876698153733781912300618258538203695129099999694715575007722383918231492188159867562437523752097442885610532526221705131412092434324422994886012858766504403588323738372699569938085416451790808178694575487255601806635104208875172371704754966006028003016985105367379852733284471149461186295144187043771867781483817567152597490028673828171828481284342892900458125268318353563265683522587340269061073684057043251851052727139344831684756817310916568730937006022712024449002887676546442531217321487352793051356039103139101157873791770655645614715527378279868618757860182789402731454726989634071939609801122593941355540507462102278435949150223813359784380737510805931643409323627769357444580059493166362989585073085843748685903558379073154048836366010819435336328316740259500713753851831617209710724046389184005811366492626702581348453187485101639021457925448279630065549849850599077378386175835735320666154478976895275811465157108677134108144952668935267146094405899529508927097815528396729348630824299363895206219058221822522280720547694014307947669600059345847179861218855457642823405995564840678677150363201773960215058712162369645736085410113437690673803201287723768973477122192169671717814415151866640569521774073320615972726344860156297496648596977760803038573621280953856513512258401391816760527902643802160112786661164466254730522895026414885813825621942518473970956655890041158919887610310906086028179691727935935867518139455109904477268112380246053213814535210346832421598898911824710532678439447728135635648744980366190097164535884048472445473654309930257383071965304653767757219457100268276488648896143958554669757528370862202911549639399031137663772046049959558057961606517593924056686520242440286763565088288951022381025710542681423858294694451840189765228468804862635681646846731981584968027001698350189642445501660607072899231790179579412413079718707208004472695714564116073691889419871664187383475363222784464924761819904088753327629239563470795745519338836205079961474679909014138576511452391324243990840038773466645839790831533561710240812819813441723551054095291151186782869865751970368549544166821415684371292942648630498776572465805989781791722028809411486669254591230019963058583399335959396994174715358038769029168019057605122493760590889032822980971196862052099715163045632119752835214579193854219496605840349951094542119826912484190286547760169209266629208360830771897737344395835252511535731106148346269343927021405037841260414516117957407726062518968160065734659868553069992987919492846400385175916818309310451415814652285246741112393822396794761545111334608026205455080807148656421755333193586075816519741727009562241936667607583824177303787960993746855057188389886953400887551670202773536797007220246332150338387844302422067698305413957207321340805912051683252359500592655609004071004182473861762820376806008374619799411903001279167501706970685136846856606698119824815898995582659824326867672980447439715620758657130166834116070287066665393380872801657363765743450294525728883964839704217562784553970330216591189151932247420200893696537169369906032769871486773363450982324689497849303697945801703085872526297390968194285982101345920797574477724418655045451320714548006085339559351100542762784025270089119132581064837402617432708138844745308190406902354330896313812887510518840708812280321315685137225743226958113346943099290110614512235374414819576455245811623674908769082935388577051405369221610257577104000280703199774028936675971246401569744990160187049495825035576920417839748294236562684922037056088646247657456829786973156653445774086155531670047260638133313390479690997393817188003851469766118322613961805554484607850724770073615663834011651691020887716195564071843201530506219157888343128008902388103742054218534926016027098566782224088920488374393223033600293793518730266138068920201870963493556992488355237767528213282371861850640122377752173971704918333560083979703478321007276952974519947322651026944878348124177993490570997631194673914851419414208513579130395994188565691651337510904516070928155725942119770429945076635694232799801546870920307742083660756223018578996343117887067557245665203083768656259654976895500270977543708700517704998243927312905462925698324180704936240364481337181752229150195208458380518901553534390112306316550272591417970199028689734253314300805252483892686583651998665802675618604325988754079235324152857392369317764582655953436323999749489042179986992947383246477543187881728317378708530319424382545321396705172283329665491128472975837559692467329485132770110754467809633471963110925218970625025812332446378328501710167201769138345163633503543557682016688594468390195925574002121399445101096211622241720431060840330294781610978211001623460444472460068926678686989505587861908902707999883610354562800363677863539398503511824376645537147918155127985609573841173847123398738774335866445327550798524223804338971133176670536806277276902696034633358254218724338182601561431032857632780904182373459717375160580925101767160065079095335635272922114064550021049236094063692410669103147035691158666018924152577174493483172370160643600023934981467798592807942752613781634731331599507457551156789553225128032694809801302998465488986928565166209504077720015463076749421915686808237083190605318531898906039093287211962068591158745822778997307239342793676424995931228761688763806853149984334250092221656028093497582952057768514566681975196929094952068273527827040838103375172452289039610423246679335358477075895913931706118043880433961840433491872994903843267680259939521773941384210433663326209071497588992022820347741324993445161054890273750199617768785424403451233364635197177089551965337220695501395576153227314497023240545550750928955319962161874301691540009204849439979597315720260314350351692637248310151845063447469286467295997901787996940740378642923078651732699725548689921371064528568771455614263078847093376882639302974080519682286530557795327139413489300294340712264713673462080130119286569327879549272977447147918858522169729403623035130931521432655218610738240365584435457568688117668192449179750121394527473369528840287234035439593794002213062552031241270699642487337154394094100257273292561646693141706305260130821481589368597360534920880534347976865013246254566778845852320844244699822087712476374012206679585346372334225068486249297955157868115471865815681467550097598453654714817870205008046450668888907486434629701858259860571836937922308773544150389320129486962115355608733838214609040762611606589076776191542419368919775759915767984501799185083902032274632824988296439227825022157531421950195608079659511222323594711370258557594043503353394394964048783757337420916639290798217464232792196417798289858814098369757787123213716428401473951891777007548820917811849054645387212377511802839256770095250615981044477631293182495083299307139208428508136392997757546016399439548368974628596976966351213991605634516998830412427800578241437014923724895880631768352938009236865034837798276312300453619540307090339017395679005935591664454532679531958072776485119721000700071112386627148241631331713973076282359791519076082170218289898100726097287545511734394854800406251136234764587716976566641403632710035157807666579899771567540416831288032135811005474260484937468735924614772892427728205347051951649452627680539162092339112234660306362997983630334101883120849376966855083378928817904779730968311837823546128699400261838259546236074102700697589240940405249188612436665579240580148324483393404193817850389467683812919063658051374508635258994340220445082897602637849193876550753174022604310592997910723639864097308847933194730081412972777900644526057607125085633715000976345418628257991111473217142273491088300212342925756095931593703323866111955008794731876077641502899112888888291656115159501801297913705983289025100816133288393723521441815447274674547394480175741821650638005334244111675644138501375750523745085641488093198961451586646506065188919542963874518868176982162961771866421670447960483182116110811633320591756183429376508292425863464565198259289495275831954024497242809217504853076337646341142529539729271021026584653706959415404265671842793594820452533544770333573364532788841154948903387616875609488479279891987663030881744647213081715723567076489981726766015719927726339472228713962364430091521395806717372648446872608628783808874721338676565351001712090796178740577777865155588964589558554809676910927307432641236026177627266458419527130300861827158252304901451170120120547919247191300907041860360704312744186185573697584151029949474063368027804195379252187529747659866087118384954073203160406628758973091925803472652011840102176674519894657409933873302740001676485283686620626015072008366758111090365317780881909484127243308522787791908751041490062941985545500736686047358499872167872898824259919732442472661956895992222581989462038909030781179662140848439303610855450837031798650182618429652035138518581597075718536212809680599874889241079109258888868821803303222921249913042883454562257862154456945212389900210190026155430426101905942464047742068109265449670330355078121097280501628829469882267307500980107323708606198703036513539533472839527716899744845560316837921833302115507981592869370802585091577697326233852933148956326566518448858633906706587832879736937051808027304057932803951129563461553849186237504291747937783548799296689098828534942128981236795732597351827723534667982321686211028685189658915200073759325476566156696015549800380578261958849212712270954655466009285834719113519657866731918354975231385420713983085535206865612278314170696069722045768676018100364690758427210609548973434917506249267346582181453722356826251412506604747820972992271001257232829135792075893601462747751848867661998772145936617380460309443524278497437602434322547390515353104479528685991462521740627476422622651569699375829923694976255676588168850311436321724764939528734013695642763788368194425120627017827448597766115188728219527745963261848978281879138751883298367211677792233228204547385510157418015284194002957187857283632945845113838999182120627022110828034744264039945235484012570167351808793670424339790110575537406412339544055482697053785410250643529677763286058156645856444686241796544733506086887740286450678616254938529064499571623761249151542955153468571965988538179191757414785549005715144480354498297460421797568446760788914528764088638217863322312446793512646524363504631957191646644353599034799946211664522667006284273903252609714436485200098187698992635592074193241505329822512248969382542219179486715894286268140154727821752894997126277312556434160787646945197328302958220343909128394923385945627915726907659524152753616446918518482620419281329492677118079214017818291429645962178507893442578710044899106921120529179795059364533762583643831473110569642373721502978412388400702828149675951747369577594171115557000803077857446332956329260536361215151761278364466195232847453769468283513577356043763525381080584739092322191507068671303316381417693414667249560347402596904527776455421143768241288443228707485214886463945323622382019449638850944179184631248326481623151962015142017368714813093334717363254784555657081675373553441587331221384923953389450709411666686258835077023828747601556056334034842380320595044405892923629176743251472847042912284087237306013353508352251467135083908941673245835478903684021320305947629953655534738317162205707280909437373432720564439145014848320768846748943844478383748714347448025724120439204320451400559558992228791828199402153799625073826086405416148969138504631795468942422869089144395900750064508547220472484859601658825785811347004204283811182740650869711492186041541676667509755669472928025813890997428983770212149963344952012116435482016881733508754973508849385622606292384838491625447379229251219747229061059562838725472207760111037619896949043605206043833000325604376518965400154403293040106929682203279213466195457698025375469991121626615242820607869631801349474025869650375132644385639492250935933721776711593156932728959993630704832466522678750543499362823991315260400363569148162596161239356465670819604079831223193052866127760507682441872760808916405953034696655592602220919234539582547494754580483783134921141553013691604492585593274189902460666271490417343264221668153566978589639129955373273907655842165663139192861915556086584986995282314522628270031647548949502180816161287232079905072108426052134714340072404848425041608046280294704788249092169977876356930076446114845920409783288208965047424880281299984547782325254014087468758626200412170754725550076429112246064044896491436592509548393506033198930097412985700506252896020009394953360415156761476402884089093759721559302170634244235000085589365065690936451984676617289585506419624413635218782486305855544407779513423703130807304196207533727692309376193777255912260290172012574106144698161593638416762853897394383779592460213357772092392886633454228333815198432781440252542664155124961390562821478344259163792725067332410564297356941102876671173439683370375538470768653922381966021208565733556452706403735459373193334632024006326400948650576917957881840656562783817816510176504970726440474062707643775127988585603396190845192422301948510528336720029175568945139657230217950672534637403036805875350154390158008089357814850892162674790980486062175560353371259351771945757544058397277487473843317149161859303567347734090272865674404928368886727117606096254401619861034184181896973633216577611251212146706480334266533918532123017175869904260952899983769317567131046686061146395085682288859816147877920335876405140382001509373120366507099563750410121656259911517317775523042512206276346361116850491631765509098745456865410879167104927085255495123108863535936219964970856356198197204008280388454061006110341987824493130430488005082115379355328403562207553519862439941402430250123059999535807280529617431914877008000543059833185688971840339441732537043531830809404010852124145215978001424586812420978868587622594350618057650606563445828058338321976459968606220836778197241516369078893443447110739439132160432064033882543374139906012187571623190293987429372143631794918668932304366872986998692215541036011649554378023854572892210092529867092497463010655590539705732507191582865247480037350499717094499638112625439231852035469098203499900400341134328906283918534788808590143998610368569284287324507258965227203816333136189669220176693415662569469804545262606068761109744600973075731229721126400717051123308716859779341168148589282120818922450970032452060266749501737191686093075698981945380471154309516133930380809825299086918518066084304753088295723655136090250976644697585355924810163234301129468037404644650136585163740787016288048495604880078646573783021081108186234182770257760831129661675076211572578410698810596858942842032342380544142062821471786029976315434717450624638552681362935778251285377788732588856103376099091796312544971559070735171802668350575815063922269543858757757980763282717102271813832060547449461014823951236586063627586814921179067501879565389435104335177849910617362216709865029653359469748593926188644625332930473604012960652033374756039929218319763903173011739707893153920114070906241400614040123852225820410836451693651371961447359377347703485208614199892126840592766152291132637210366510410180265778951747477130715843867325105594486703546361816513468173179763306523142188811597810387452739201676457417016510202726732532257963051118722586611476840434944730723376320078398671594628717907274592364192328577143068066015591535372178975531128579332754310401670533376836261883579455301895261967177402312459944172086913449708295310245819067298024312312625695639883661487395374388728048351047406720212234291979023427037561057791351388648608210987736062527293493517391170969310145219964159750704110306741538736406593585710528151454106200279273118117292305621556215270369000097988060311862825755043450009360658850410228603531337078889322575759600847242055698578108552224817035938424377374761025817688455483520077821813381561566877148238615513383905880159118336191768315742736526863898018637334014348853013041685340492949560029868055279699066577405562239543844474813972475322837299153880771272336812668122187498853695793950274141182244610724724334907865690296359629985915837103205570617372850189548732721308981263789663038443407288263941884625873449301377686989843887682329778985773931736618775168513738554688025571648609676151639872130878260944124087525012436119538734105429101786621964248453620765437928449116586894064631847764613359838645510314181693774446099356446219774230621601458570179045764396777717659985328933099763766763373914392424978224027071648186334789205546649217395193312778641718409165198233541866785341720354823129814743511527738915012869694736920394133957559539036674834306317362981165949347616426594244774695153423433340647660623143327994355514758183763886202841675571244655219242920904661169367818097933545582080234210692671414842735752910241163339737007738791580984360366147528758778654326227102700073255949688712887307290931574627713776532919803552652025940854383168778722571228762321566640910318455501874506263398992896506701812991537457676867745217918014083841548356757416064699135919268442506529746037360706355606451153019894134081034416482962959341670905551291444238335084656522372847098644651089087720953400626369045891298607603524271575340319573037048471948770806263255716631140840799165594672639605651931281129817203295598174761282893608143675658836413235576341810720500296775862333018339143694391332386371728216745623803279592433169633866731960795611150332193491605938915634126569983148013754409974448757101459351469305392606706097571009362353093440229811455287527651512855186678888370177981940741862975613634282335427729109651904719072948728765330997586700585277139808116861819208699200708282456318446668008948873431947710455723839656995890784515468164007978711761438503828989102304468192251976993973156763547885943708448343145587781896056013140241054909084650843393958054952702258608715705317250222256715916149572804778759608145091373864144641766950145123563491785478848287948065089119836891273409504446205401340228554042886593594603405920199400378462067897998036426507219825236612591724802111172533130201127511219422446380493372564256077122048035146599545829748646807387837743393563656321470660422220381075374957663790944497504405416215740669096171078676989733323086969331875180821231880965893662707001942741540034307129673801849263018618020024444733190546709435055621835466548671474507785821605120291425138576040297328129555887905937614208030079617472647073771228618052435705094395237553839040872788118724411774382987292390505772911680576715020772808717114611422304780516711837641023907152483623245267623906424516897050990759664486376592003204564077239199961038544337156597491782680468950525225308617031699528061836050091649013102317447490415755702372210454218790784975300943558620210020932471079452503177110596503695762749332968926789906180037632629960447011995935276752242346700039736702429813470342349800564792179069960928892178921998596384995391816264951003844994424402004674131830586423043821143167839479779677699634920249999126295053596708302284157492353547726689796306923740370175191742519071167530173803808842973702850961978152392903692355019933980167651365685843394936547850670881764855122528580424394193064143625295374943237871125528971299124282921039446675992360422925559832555141169833902412533037579350868525797270984196988581522943857569698862248321559124687678415375149417297104284165770985129494657742196687576002332579628540024203804616888458560682773697197154072283906396885797489830082029081851253758775468109451807605000345877460722475694090947711632251823043787947776494615931334420525557878513051336011953333436814235199425678375013688434074425141086542694868619572565130742230383662306525228571076938110782225952176007822033975552390527444280400598606734599015869467164635575366397519029946199866454239711393118851142839396646167693186006927516940010783419446116844535626394244735042411744158086369920086773344754530376206879154104708599951730065563680601623734478972523112781822003512299689818083332404700377123205304032532232667167039411439686108945296532575255785620303124433844701191796302225343300212971815509766892358550484298275879478283300572018217848449306337171018640932583346829333457551337428356682038520280112848017155365826219591291932631680784693855111441663607943433736884000776555890937937559163554841932594020166220055944423430216745234367139071015533362545567623803239554523027677402793374889108092485858078534371421512664346395043659727014849238581860625853780337126494479964457615908184506429514738711820492052067738675121821307863228836673168361147847770359019062316888708486820385451035341218270582645137881231099363211789749703939952997060995849801736188566476102355031795472977638017779968541633661802022936037983244842608553870685821928986161955240835187020139051000502988819333517634597088054539527197258145757909876859320036502124558878975856738657395944663455312401472488576359148468432004199142547711331289331814714783323142712445880978215927440643361026764097459370514462473145518092638639536225923334969125406093716900767414901623789967401971213776671873218356187265248376798184079864597895031675647299622162819298044730169768678651425364509063586037087405561567734223542464051728382307932416067056417729532689422171231840354462892159683185763050943721995016829855012105428297189840635481884449240321194246407446162965950097986480098557188816979686720041433858233195597488423623795420226139628309201139340486424443816853269981240546938246931644963177590993669123013557428496150293865714606538824547746549500503944157416465268353287268960819917355273132201604235055658453664564684046922038466633054546297019001811650046518657979193352610982100546210531526162048141665929672843730940992893372119735815071855794769190122438181657822715816341698857364920468107189556780054287308198372264957292709453801999032290516936432926677633115473902281646321202024614526427597444380727634769446251576576789145362260928627290590588307242350908096355716429764930433633817796692055194052345484926049474658374445933366997583330674003693522218893617918796676759227632969869687788491642914440304182996117161619076531062916361484466961905879141862525474678715437965939981729182853796940108684203196466394351284465602398571656022325546411660783134431470444993903920240548896107370965994421561179125649798340041705794327142677704437710037631882370474440661668782741125430027128613981491418000975973417975611336310014722588365710511967499671887826513853378558173820968954545836778615533454963689081849918479318192230314831288745939517293923391043669306011521487078843508358452133072526439535476008219228673809101387452292238958117549336538382428519003278950283744439538578934765550242503217827794505308451247224770962219727503583367634218368325095447829129413780736978176783321990262514671700776353868875105977056778958748120632251568076405568548925582211900755190988694676680753284129110790267316943456666597638510416602160649417901466456901149144491352511141886861255369110349132707011167123915302103584728399887864603048908482020504946586575693416180005920364560361224649227215497941730831580630467235020279016871004882147738316849918215340437359290756959958708798411325571416309824240302963112839202037718829838913100998006507255732888333795503463809476840606057422501627484685051608062199850551240634923935095103007117412848507942376515547778741382956053811078305234932616871224056136392674667819763426586081076549608090926879903241361428707276234420742634926495924512556566071233755929133411157464744787280253985852234795261887002573315160343199268268725464352671124970395117942257357542831405138081013370233405824465661551716468854680260795967416840298088995166730845094590893083100797340052742098539929568808577828158920558817505825610985239241803147605400019688928745287713538117337379162025906409826221558514067087171892401768385497974116625579985212451682795899517583222266867351611743001675382900640052478789689284351717936597327387237706174178740769131082883652902401055927775277231545008126908436083346083816881780237395655851303390000061649938138903621381935499430289235807094999552079979476473687832941569242256615669234233997691536109309199144651663100541147533973987098919722889748804125375673732187090894764750824530177665912446190348951881481103191156035237422238956262037759717662467773539054187527927805675451282013273183879448410983998330731371630133086993329022573450854439190673909726336227502523085402974159610247119991132157549939225438820641315817666457088764748395330275148382670007961521229312393527401848130727571647029773225683559670359349151414105535914073005898592207063994493791653066204449732097674534392498075463515702588243146440123989056000192988434499463452984925494830633833728835879777260998177895051943262787285513688624021415960543343728094146896085869324136121881363238598350829827981605295723713926489226269997912369787102012590617409461703855850407866091339804849472375253926245106859813160199597333741512711141785518313271874890392244869581215831117198562726242557219497350267076066935662434346773740023810689559863620885044973233612254767488018771777574852129762032477695990242243012957501840249350665501166234351663314191635387738485405084851751593768740309249951119966522908756446890990277431332234160806019935052379245605514282116803028863835943492701421739361147322833313513718136471516131321854065022666456656122953194874045469548899018446624726955594467796831386389552919062342195938436719318879604831867754552700103623259945686431921078775184595509930556861586883120939901879939194147882307050704072313625423520564419892327729370418109156206897315814510333143852997975773274641433144459746315251614805349110190497531907704724935691830004739777345445332402263160711725702106923087332642305640545141530851410354601815614367514250313724705209700428898909830872624879559679293141830462608214534338757320821737748859383802545954051347717785124944052188138878564274635397090588970239727842607091907736936491644725153424922395315606965831028654094418013264987127832809271687420243171072949366438878949504394500546991719826538909167719585618986824991012767881710083733709947297328756062728413110791027816476050069424989831269138660145202113283345079988522451062071270530491744665495302181318179921441251763868135775885130420507306403578393782372564904183550340375129057817388580493307298926026936920180828356007441123105802682028567484259918821263232903054985212268878389098505489713039825852763978291069143366162963485949852898602914664321900131494509859792994577386876415722202683198754507315234495438905889183206734958944800830149175158086166611886064630841765904747171220555949274772804674524539211633199963673615571382651424338518238063508225380159293496551063385718456212356995704087909854679802113391596072021606045080050021707468732352930815341877568225630367431233951174270311666461026164492330322651027077904018923562613996272092025319517512755887141155139861797042623772041454353431931120307603618499334563302434294046405702872972998720694537659911034860310570133242690373217732748458421241496411058329102213333968023939793008503906385164977949867299371815917053663318684735563985920758385983238550645352090176048400351827894937356483363197596273802676236952331111200635264006963189174618405952328265567600414199695243383788147280559650588648718153613835523046853557336964912311107611762583564609813068771019731550585728499353937224953622777453497277043627639074358982997506163080483658964197668180283133982095869614258966342956431241052512085994134993831926522013975205264326248370503161913615378562868735808927048750204316869688004596814062907303203788845512846827851233259091598797223095915926209489640434963408528574208833003906301192136910203108266003116635833741521175192693913041902613369300224353145309420438877452331858024437980687802494216824540319518759989827783850034373961891868713744991969144789285776805714961752110469417949654878615743961999005788147354356122242508428892213209766911971329460863080525463772513961950447816979844165084479814962821168982837078545246350512541193756393939151478879337595868247972055945859250124651598016213692160039862223835339971299805743183787211646398683293698557123161989071565143383460724674226212009750369402011643686361548937822352292697339880617480536375745685017757267413701248085167481992714284972828733534485603379569616571543497175559476398186100978656896036862949106528889505882975274496781381070137936297113269047683022346906364020739666095232478330362039487752642200966173069214430890446692572875264843468903381331864472099958219082684653161279131981765584718153013309691626480345285824429229592488315037992627785358331894005893552379695777750983379052364794704386947604766734684537346350192206000787983590591288646674833670866602873698954280155028436338271404041129490671264912057381231904300472232000668741990367764151580105650894569163707125052087064703217498803137650577164212276373262917864706182994195451269786232154007142525923514249692014341282262839798242683317718331256063513294045775792276171547833683817460610518016591201271311243835643038593832287979712815994537951998173590212600461929349215621929242961088435640119578582710744866244070510953917742663099126986850499330331784071222017867538524660875058008103987186587686265469783755907009600157714403436400754178563349283846069676204430506259183419032771285481979609579631846600210492402592212514258131130817533267113213575777058244221924863477225044815305512826553192567694747669300218509325357614009681396798629848587366558174794051077643788624020693621878226619405815661193648304248206044454728852436507503401294381209863539966935465253153921048075473703838722899981069489550110331458287193297403526875246692421494650299346458878725388465147050092405487534092628712274769727346830788251830847794603354944708879618593675804905976583195915942718437309717123983820724520903687814412193872131558579185557634020075559442802211567186960699351647897083018260945082117031557743790605994746684584534090801353367866829727415985537195162838475039830255692091397521317233497277954222778086929097732406732840289343504589625338632397899674802891158967727795799970083290403275447543333972439424891445271746968535476915640392818892830804737164951448899804454203488655034712035378705861896436016875490265293606220857513009911261012708485441329398547096213707982804988066393930783537456395863287232387737974044779630021892835399639634710347369971729340679174975460505978695947813285558446088902523943040320233131347925005881041919794654010043780728922716228437035611740312422747442865120207642345520547481364472337989725669675207869042720379719478364858192456729735014491760133862765375116395552254564838022421830209782817773670127844237693373338827073247575843086846914782654229092328510130406127539932107800077059085802736789216666683534974813487062897151658407237894781577515632148120897708356334856963322373830757169543793742339523813005050896041703982603223365680244337510135401449120414568375203611725914573078600430747618004362718483123162418430024389092512541656038491291118015091549938039170845885263823334248230976952460704065585477755502926776975778221935936412667802779380222641752946495457919962012663549463336512808534637026162640174065998846042836317572047203550402929213144268993341828301638735674587425803228173717533431750239603718364130778988558852788017113747306350210878465016355933118126740318840321099985715209918146996168927302537495635086799863062213005726481249615586382249645451893514541299870453977799460090844005610078963803465402035451698596461928730163005956624288074738881174855367274611678539744082602813444310002055465997422048404328466835538310054640345488480336045169407524612375081657721261195163354251697702159811747463128037408986196343219784639683310761805935422924461684585991375549624530145837111335172292676784745013871506623379843365691525615032498921694396623525752562022326777792845405090559746400740035014970052309105306080005942833434672866894582763660073012549256011427714813807944811865897478346934249429636920101038387640588882264855004106808086126407778897180121520239514268780520877195224373888877176513434299107959330153525446636929123842087549924935149435752593061510643733945464383678872204527526555903392562158299793723919945106073459694929060849131727934924090727601714354978245182920630149657595569455210592325547965622270857824581922556511932495429183453821304146724117158895529470024098660101155470281221977391242889333896247922740818783339555668133405160315132551647409083918318130612410534921530347344695988395639819170002198148127738809293185606934964857748859161997211856978049602205601917519665198255215337685131649763940878596157382681046901238573802097869956354367403376985301432488181416694036764772035663892838840161362758547206403927893562419361314948511243605725034288232217883286967456654627576730866581546548591182194055520536553845502136617413861778797825178625745100852195360824137037485305227751620341359241612285976537661590510918721385586513059987543184999719236868658659774350632230820477760649136687671341333344791626173689057640779854757190509301421470573464403535203094682752107647892983045465931666543073525720032843701457003288357707760079980690118392301932920786446457993803553052655079262768008654003370086229905823184006613898621670855806012178254295029238852940948845277848605735046775325789636004423284739308067674401924176880653599046642534739260948680241908416226533030567506834405494491806914358756523548100248683481917107266600282119960770994140824976472329895638735365003494777727367748745163474081489849980585411470922668698892599267232577615483214357699867260114451580117692738846543125305549012662706093095312596481455960076237136188638119301346395229382964369676874684932393403430339226439666006423938992102497964133342363822857985791117169366338751167345091020402940460661463982484647090170882032040687980775525160232633759445006725233199418866867276949706258534763712226790757520332943508741967094387292064707663632816411533736000567177370049906815590739218854426088311164678111756450522533460430014898637315663812543054673718055505199450997846560852975596082517023679180310811772974954763566048214784413588980634621595743292462510275825976277483112981269165140874647524102321237610230047914965935917860324730438237353079887356707585483684137013200348306336437569137659771717683169400463569829343740869292617239236932431411918739162966332396410706598970797709014911472642290939295995028667582916991219046059913078167005345344375244973994966504139677572216235517239719071384999641585119473128097555737885370812461516970484258906269741278460260830958359025317860366518049425028932192613874903773284844698665200643096244524287747360661895401403878622048684608205521881386738922815018730596250870092761791674212245676054674188797336150051524018161347732445336604376825656278619247696591076329952864163244407495257410977636969543123264366514448331912315847832580211783077301232263486528412834694013308324757103532511808596513101270760104468197072112458300740981850998020323650060259822379290524253498492500900970074418404142985955175493425884376065148577512084818874471083137913500873024641532598178279157880839952774460795388506291024665930819260391778363343355129838954983937457061175828016938444886481502487542132652946290473370590647147093684056170376844247725992699689126789577395365815410493793285783395306060479042573016904707740016084020574338945862465966425328619232041398789476438243041102739937910036950425689143641167222722479029555371752695834927881455493249967027690594706899102493171705487020198759166113899736959228212593303957084447940568518414250764328467933203861780135286594985277455852556379931483774410986338001056619533837447852307306892670706032277724606549933982238764070867319550236863645209706753388967244960888399652083878796924786754357444952646172476874130965219584338691338533131802913416153277890301130530824830233165667504714077778651787788640372536323175493255016774134285670507289003965462233991994895685216451659646929793582192023820911578870680912059948159952167568541948040443207816817047497900645326315078257996703637565951112345925681446465374253250904518384358273516536303930848291853782823910975744798432057791289604742933742587409487200286409339549773009904889909696019562975428903686651318021402697767507193140268010474381642230794844861600672894717760248728994086172985512676272444910323763933463236374919129224853709600168179562580259538191341192921582546130363968452396967369169159831478016074745802727543864919208099873585643877151998750045560722659216703343139772196976683354070117430171644540658585097466417644818774271767911375088794623111287137408206561075713947914808412918421279097995307674095590328703787598710199928165866174297071134896070998835181481972141175414030124591648384696936578476640821119076664924416407593882079375832139423511496123990568944303169156080183290287388444752135518816181239725418307488999826503291589557353263885387329766796580811525635910950046974163012794424650746589166231662504663767033272872956289188958772503951132778335147703013443625627508198706797411640652854544475207809886078267032721803455455215051626358790949511202296825842938552486572773523694417762505960559157638769079437903049166193766159624032613664322736379943935645361490268267385793944809526195459189566346241687817333470298731508042554341770360030266762671298155827537576518674677187027063956148518074248427491298718559806463180731117230961454862485531751700753617272230808417776741307785367408401329124337730113612590867467058579394443376595720073810595705550945212067827084400396489105747737676480703968141220081531365494786367184670751785391367313861614387429631318472336863780606833681036191292692362666369206966390083385721096928342087126146966676306335243373954993117443119187759013058323098896845232005493066493140169292205859274803858331173488978377808918156844094149328235064833902783214407646196432410957030499299827476404395906265315542489310277671352727452612988334126647086626069848389532767095949285914138075884749742457301207605136233947611195127204008813234646326359734118807238821260011414428485463645555908912727774289514574568582111300706642308102598999843163790063112712971959636246253315389546442386969780870868291560779250227056846045670448423127792661443418355017623244032271852590732876759539137488795524493287337078623064242933224169475063155610161582137256265032665246076306532018572905736768468101973305363411295912996015954930733359863286280455279335631500513416979455824385458789536826107965191288101408083918162487382356673961921121553904590444862527511985997827377190218301543310404279664960946073230608349340777963997748282422823059880730218421033090913795747316304352080797739467211301860951500817079059940001487332870251505956492988010840373767412800914980178451088058514561008676877312719978888781231282552226775415149495557255838072315027972633929092325832229135095416542063119996419554452177510318988461697995336133433302393730432919334659488761251844805972601902531828685238441914604344519123919527790819601690419518776616868330895686533824201950353619629338549380956340656940972823112985401572122764887238488454274726310868759032310364505547275571754276247544490253595952395123397583350320110752722465013422028719291734136144363617321344005874452755102190997078888491711163544290301559673330801859775390346069069388561323539435917147629655732815625286224864553840820503696692333373139125940875970681092283353671369205420344439160781666638352259305571257508968147990808259753419150173617480096865718113541620983209321273034352217561239684062493481476646607812172949994600914979454026353134571894327919831834709334797515509166410977574853842771494283174114884235035457247763962885255369878895811108196497005918526159232932645114452330021670511869178210031584848178242976221129065269781711384020269158700531746580985427020458675950225775874890900803003466675357403331264036541638771966998115480981809244236481218418051815665070372134309828531673572263483520509235525703086133302985223207339399482361898826117211865670156705646466786213358130216728319071221325388013287162406492674451742961150188117354858215067482563255421725038580998184035980951236431315459102457834161599874983909307355753319147302943907348872753016756621422934834240713293745623804018207776122947895598847752012360672974044994881432072281580207960087571568821009928860078924439580071199232963330351977017360307560055688535491526596392511707453380694596944715528603448932944819494131726929187406710258492970586019853721270954544356725922313436236263333082829075778813954710667134982395703142553778874424778863788084119701337830388867478402165155732069329201015175212533530959063706479824452008628270901648213550861864076454192438497050987686142205133231506996556026146694711549692521747653798395609906440448426355675266981406025330200839134608722276336060048354018614899675654527729970436224211563766904885942555333932179554895877262565889550192322351663779607613707570786772690482340214020414321231537696416281540582218455150086666470836897127454917867365158432329452157506050401986623656258208883848943180706994267029218462050752832726127446247343971441157890655795023766136939602027513491051542563920800925859733807793607818565873575728881375171613626588135117143014867594522103577923126051739288449224065853818750602759656696638504253971203664931918781858761271928475045639055057408190745041894428679593711725760816629627541188210464467939607782525727574662062059122025034892878284442135464677142434557362622782150210481163087805410126690917268149678857288420487275544414945929939902923527571167597057453741550067009467017761009629237434164349173286940580126125698699134868129038122041691696190928755114635027105142439556185232289280272344608613792662301837183100585809167824934041126247492823853220254439330095163286391013968568302453048287902263589708128286764201190782521681022161823406728696640883935602037838710597685825754421731362013604626638462349151082951951066408803191846667515875222971568269865460486006410798133661910491840317514119316819111533250786531535011875075418396543680161706768102259532867291398293328750118609142345792556950231369118431065141646173542375830385132377742585137545202795621777488189469610711709951344623057101690362225967867436562464233957732577594108470217759320808009091491773779534922171476923981351692293543013010550540387703827186466620403439856068666112159201612887663847318630747861358719997066524305834111924335162176044741955956720508558490712117082134984563605218626161395337636604021132150275023570089632669862625322517096110082051271839336468249329343326083524315026593616303282151048440893437457655467859707771546537143921036215032813750168104011628791468101734706888913332842911386012506856748495249748825918177106888428322361469503380772221931777994349317589464690906957604392692419230520288617396729374656691814111405344395162890241941031037987913072649887063387576495761493801827782494444750719626767968394611632840202746401743424876113856083315633241433515525918477861612874626247459462502236696638252813305685045426473241580405653372549138308025001564378307176787308405708373866455673838042064140226980913567632508047976337594947478720592592253126475377384304997813829371805861075029982231678462111921964067850572885151158743020943336660688259009797648924616968996461715601290224332188180152581991101865437845215891412012722521810141606730863837492946519802779117198129317985619928449938168043677192170555944942755132789390574724420400136918555567094646739925172411684974166282403480584777832887808382564570762703873141975119204564377156918113847080506914670272715507859609535372372921806366022775222377686280493626522158821121976411289818380885535827077727610326959357915425301711760955523653314913661068336635805041050056414420300222488375603159115627646988839314723911136000878744147217361909789581685598329258022911000083209820746719500261639582034448270334047826505909580375834895504260296218395783858641194347879361285235670322427736313086733381513673438733206497546401148511947154707945016281827608297174245800160801363659037829849748724702538481868706438804300419151469874668168805878619240911170669310924856469907495122037460357448818428339867716629021293275406444516433982051047401812430898401302280619696907500573926639846530667311296909721132846735897810137703746888283799096031362972079891857567000748042288199338898411709705093437580052720419353396585282666009987774385416612779217900264971432917099990545459401987190695855597822392039441824558149306703265592608230524249861495059629895347174717839603861287120839210493718200507475141640651156947081687123626205690259213285257939020236109978569644704147922432861253962967397168592286290272049635342293451134941634675269666155109723328872048566986116680705711446447264684895256480970626259243590853567739967806374066685354889277275149894219081023470059385441513163080615539854369126833990594568753855990802888378062835418156488906320254720273134252171446776379374458993209703930509215915841013088780803028094262473096997209074029009157239042636486778935093167899413250534657833875503316381969687050193236757747194057435535352154913735951371852539478841129037804072669709773757932901172597268036975050127263775857025059365474558955467073881699484636584922968876226835463152717484469172028820201656190659743112604391698578635974688915356231727319956874747383312042702712662083721031956876855778837923771660245753805892064516896818091165558089236918522291865013605909367371865337230198576786375083228433816102132314620372876086340487293763079178275815589506774800516432856531569304065427853277059913400620963450761454863335258242455190873833226365761487030564362311354313072492809274371358045827416168612172867833702364033494186580730233456620427977350778820743760922444772111672001709196408230017485453946627560226251280745030193654599376987922745209576194254142413173977642804237733222820747370486927892135178644918808064290136264427334946779415551686740917766288110128680937421186432817097632966975135615668384382191004866920118965087855482373698984903114772282361990394250346850367130237304667151392732758170938378309747859263240967410375683885626933468752386928597042139238157908136110893153438279703940339289778805726144951822363089596017492012332117973755618190146867112182221623467037210579825947529713963456395871504585175965266283047850655824123577522925098527545631279840623957529398219383385574494549455034247389297015632896004905382489612202039965405645145339335174183633657822072183750894320742819033190015255035285063830324756041618033518254469218698897603924486563445200370512463750388557095320169920073261368911992106243889645156031282897865133935071125973131175058720436516839676469287830384666117069025950334818000726963520103008993129330331113742017176617267081659310033853300354828009529680206571527313147445339862507117562757696061891137689110942912560163779518713021932600374668693182580551083521453617134532643161806473890658504896864126897579488557011208128766335492551877127773040105891441187353719642148503023133818731234904376984553839660758456870371680292819456908392518281359811768029102207088219713379400748498316700942084431629544544691223587134170639690514195641476017139587296505480364503483778984223345147101609488210518424776108191046482701161120157837791252949483234745710957368783804584054433010839668441568402851286756296160177627117263591064582100455721170496314038035765719816033762294757922785235464719323433583823255249257071402271144101802197807183875870871835250628078691605501953408560071397910063193373955378699251799067121556081975160983371662485246380586023761954095113403913143341612385352439045845105377411901949799802447442611005130030278166937949371641048113763545827018864737283505219351759624553376455919605699949211688880491136649890078325014300760619857431673048364649871449332336790248968042519551245913177062618817306553426323372266975524088161980338831547118857229713593145017164823053995284323276899275765259955879127035722064532928942169334817858454337596327806827898421009532528220624949950004878088214348375171220728582111464081337514377545543329518744216620452857301677449652864558255833327686366032013670096992733867965721258486482772218992578827453738002292082011645856070907472087078649516715518063608997839652550591606208993181629991274840649139531384548838167204005635881682043554680854648116203844078219931399003411337302555110208230757348928583945069103918642519050050359863003677574172882031503145430285129445982956715011797452980684756551972784383341668814738432687572669966525303640560947718037836815805621592809424564038371804754284019054528041973130576538446184526401827901817256663238416140344316823263540332531551656858652763775735046471507468597044258754966205706376627724483885159299612074868028928124883486061881315344103511022104207515147354876545129281300787861290396148321678004065023208241481965074090342602404718019265081356799386980835380942764117663844942284741189189445889513171338860495751154271384279683777072402592259429653008906249324139343194643797647929725582809708110547622310261471994123726845977521974991506596923300704870495766290698960291947418741885220375138445993364859292594626935779625713275481968158902131508987214173976753479862948890575319751799035557478771850564498486323565368776640674850598536130735894251929657911567058991167426731489903407308871860389333393281968013436139992666588298766165021627182378495013185262874486543949918306212756749388702002473821030792246400462580199970614415758650759835600538848612590813427910653120354710019261718217463333468712091463108947865938777037036926911517388005723076873356764369484920404279483812117758153794153602295233968153806462693635624364260922478736212729764881063553682202630032463914654683414463553449722219550732702414491020278440403378253890183964936831922414825064247896176831421234694666658739479464386350123536080513559011057075175635269057589862917597535876527986181493533650719559411838683795964790782840614000940268735958455599967664967334837941573596449016998866229257369776795574557369662297607555736039442049465590622172365529485292939530715071845907427774736557783387686477974344447035530524661459443565070101949305627383659176921731121246911839754729456991759625703152265698546047009829824714698215109111676026668927937489701160187590991407983942251472791886951597917017268375207163006622217808535203558006159338949367681413492565322487394806614077031375214667550162263737372592962168371035217951287297897412931279689815356506140847341870735669404507012467335373349046920833185750582819945027691766762185700520409234145839565439051501937698886907111730171130546322557448786222270762924238794954985870219920743551143885960450263454091301211641482671983231934346818770162921761007524920307537789895477937979566518703204727860182425817546260981805226848254464297501048057686742271811263376544914220787378573917316801453164462062321297073075772855642126467868219361581060265922441613017920921055556693689015387327941633136080969303436991172261175252835619120662618275288783503746848810187669363306032958552870937350382505095531663478505064398978019691292822545024581840399411494713145854041709067557486722836050099247486878011811978645732654085324430217049299002851889335643494344670717956823115229160614101678238133448171746920566381797397535945382809034588918034510301085633203809821453753887207862773865290722760505841094502658100955329105425848203841483112115419886093831415221666542147415416361417488150068696329527972952339606008271939756167881101227846508136620839104973322253474105314456385438087732268875855404572607491586478416094683933110799915884667425743493409186806674250077376748723089339382609171270297626319748785399750764597034440967189683809108545745909436519264209937940156443852483967419602603547806779492052687365097691638664472929079146712468993091519605319782150089632077839099656715346755945440712571240169384897270512108932177960312728283051620812182829052710349659576730411760505763466298432866027044377683461167217776922456334433704074084147194078287212773954030209901370544240356555730574740818821209398945490382471476764823080404033278691681885799678280756630042089917166002823655430986364887611707245090331536156747003647377533959624436147515997592484638727669911687504340845093157481812036339254319622066447615765033409966402756780926349584137089692282882847674380409966387591137731114772934567441901359335862319255391253736473985061736865954949544055958611860327912434243063664491208888208546032152784022814271306258888862906109894969199790347531701908983858833519394141546861436559696534871451836114269957262046216102765734992087501486641215313116954288219301338751148450034427792461989633823540106069152437018153677568947483772906857161602948010911224184987544772365730139935700935669615843712456212842286548258057215532346913339751222210506501299483006597701290421766548023568846030610899671284252020631434258042778446439354288337019810887012422286816066198332215185005945104134521933737449599482897992247663268673339567454720602365164862690311056098974996965959881182977432470660602590215346841997597830250393424295041946125770163818255074129165219965640673361605442040433827529060812304959304315555784221893403607682578476241870460868602302151852345137965290200737634157310802546517286796611436732625234464168839103990042617397789314058388206010129906177314272022686497957365427120730500356220658793279865144739837533585699014521854315345309570171161249166040274637870221397806594807284347222486358088074066279956780769921792468278663077957336996715763789009213074659138702807730028953645383406923337369217011663590163526968745435966271091219095694638143672978874230341774588018556654801770123334126190865782438354046111179633235562895592008079111106946757152587133530177711045053519997417069875894219962703561571691119768874076813876223788429115767891282676172719011865578708743718721716027750855039843415408002069314404406317180852040043953619656469685404321061639871972892541726603920219944991827134084611782778624984084106259080984372901261629558938364210980738038721436320934963910811502893658072613678854609769740983229980609309928954789817098456160267113282484673200235875038548621012682579202437712038737963239169736843923588499713030229314548416464958066373736429632692556747620432841371683410651054361421742090222828963538190409852316888518016421166204947864924762344032850575751590243302827657136862119974928110237313712098449986851654796502317105492017033352630264239520356159628718820670895775728746180969250248982184360789370795145990490140182540994472340211648218986951475753976784922461059421162065731448380970866115402858641015099888949109610320452815140219495126118214656016802195072804629759034556415587671240024819328037168648788876501819103446582983359784832856781108967037801601431990998508036096225594414917381746720870280247285619933884488514212488945146393266173472930852613669886172278298187906059048668439386528089160449409687684683031478207356909808014308369532693922542042667121271333068868551171260886829147075545309712080205136101745988837968423039388070993477847757794460354252938101557232257825579429403722015047967907632345682860347331353778320782888584017859838313909220290236769104920220835548129133324399354573713807293987539276867268218961049940099295675253582115923366457308171451184865440418029381278418772376515673229523036514901897062426026305109528290331926849587278669092760893955196295603165018110445399584411224864479339493402063764214204187435903842542357466080349727212020014348563104216311162611596905754052458216784760492509498437121539996753128067767097746481630469169249859351897212454444904351798638919726812285788480934040284211782453907713242934575874288381370769831610007559131590618442096105113683076978362595534202723691993655861870315390302445213456442529820727364176359846751142041903836871654338163252687750856736122361371680081949682837973393219649702960292384405376761895631324412843854565140276753906462564404887507255043147854366352686656832389426010304596809240640096531057210537576811477003725107750824463430034272085994616346543184441449189479469611943219604869039456030554942074975703424916853476715168510325198570671805332540057996258524403482822355748125976509789614799186533714424617171971015162252116042797146395596019607969793964884133238478185573739656525267875103123839259705839216512624945980833321882926039631590872720100678904970276965559567244194057019278961559607838737315527498415400326523802557238743358113333815173005682540157033531694355940603683022840455813368206427453791702530498833732029249080598767727291103919391735821274400304614354307090489357775062790130891681484813803220325701931582218874347046396014421131758448078157207903755617604353983398460350470272939609060322377649774034590077844882856248048706404419196419230345312957826184186056088889499601600341739326138520212156011703976312488377169688335387024263427608597579381307709964215636801268904926106473610905029780727605473513962206952747946249588233972501321223390825751068574154851332724633903859864783155807296945982030123184535712121035743438771975634071323287894438790359084701852032638749788501095496332836918186661621007869028083329877597419428713733698012264757460184862531455618933206004798801000105036021415581394734501291812428073587390248122994508755201247078908532083587364886171507618970918546586261258920319551255285103090990590215121113832930608965768981736073444032961198151152198929201533319863754203087533782187951599753439660454201012063341315977342331429035197335195057210043716132086286227927331682397159302745124079211352119635860237430231071786622330736954812669148114361566064420555631645252728230254484012677652794636916988178166535306508547023320997450343962905739521988358832963851336514291978319887871270436104312677454261936497704931715481610094036200302077488422555873862533013631554663977016690568737345827882146809028341793628097427663235592570857246906815655344306287084093156991269970766051926098285390443374693428191881751913108070739887779757485977638200773001844743006737105746801683810612696221657243885791483004407189867227433181947877456372614214804190731860083117851790966779760152367708553537618267433343890767617061331295079631573967207335176724736192878766500465273528122080112890687691634406897145230580420004366290560721905895632052572029375188182934971380586698288300423660366003037136527124543696066474430609047939652047474928186297843923563841099705123709930957499455365101585229212747317253973309696780125506583403849182833413501713790671584139440978563998782747831622064336779257211899136565328410978502365130298748319035125689973803903140264578960089437657891655005190082255723309325931189315770021261643284555726003556879168658418366722401283549043718631570566630015699002770942015247922409363768037214676532228655124487513585749997168859356426714251386291901118499613360027659112723242118818305266431742004049642386826959523649319218546404385605800658172478113254426797395303510939746476618889511211825907730823418830332778522032505324246321556037082159181426149247576464277749741532102990285124708533755098996543705886395091208917581573343370694468546520453692310270994261235656821366771699706636225941969461066473706678726774502695710090257078163486493630295443211841222627258076807864915248266785298396145996884887705519343253588956567097647064771327796833543875935967693518459231659321328090312693163084602233300790201921991194738374324410579418015721988248130092536523232662467602976526984594159785790842065317477639906675328551886006602864318544046994632166290419040676631227672830947302409446489716534640514785402410781127772285705406153942983853254004193734301888823788054822859634093109935536769966964176164783504344620372010251042892721973476559443844619830974578647585348259652629416097586426482007601637196399492598715217490275315399058023115569195808638081659568305638674371221054906374658472579432485321006771714397120098953440119995129742396765407485918695843697984169441738341823063723217891262531602748194153605429808038710769409553357096646180149459130456810306651877931614139574340054079808757996101873611636656689662279868752951404612046839147778725410684649985923583689780267539972499293748946089908101240528332547628291509242892771038285511611149536158574878312402645616295643359516109262329310967441524919211398165476891406723596255565877604578571570552219904966034225869672879328140454037685414921645287729494498090311178737857898147150200068622728639258402112190055760628413155216022735114999452880387858229110378669958086251528395370501414675924864475842181439608850912867349194936533375023761029232681193514708262890516703468719145440241764764887111084864718258041201252231773903797440655315069801698323928619693289432804478668425977323927407488102666891571404577078882882365101676367761222001851363667012403032556323215763885642748634570449230826100289951411107595216193700744592747914687302588512861063635005751887428650365262490862173702187522305497956867949902789052040115654338595684790992211062425557516051365273984092201821154604573970039296974519197273024885481421556317102828845776554102888670310832052313526523579999141998042314741620769895764200248457155572254570542464634194569433972024088924011989618716012173912594260633082934136326952087463890243047438939467561806370813914931447200176988397815208261388894670160933311256290037596290712189248938929398302242097909429376856649249192282830570845707508289194112363646086240912807289663964617060432288467334864362840126053702233255473998100852603831457286504165299197285112187890573424801853727654617864729228674930660261669444348120255876327362293014817339379938687216639350059176951256829148516081931122381972434255470084340617538750789237436220812512848962951409425432835601208245948317410136097946649449821474137999852199500560767041292521833829901752361648201045693994127143475480440164231340104171233247861355424538972206392347835465973460202920014693965600151182764395412672114942521419467216466050937778714232666887638811685499455639682745828300846896533699170630235809943966791153385521064708546871156516497832767969830108377442472392340240674968153580521340478628667907177349426819082817481111191889541009312901741684491412024282736585406078061219394531981032300244018675043447691196285198827437898304419506143099684672211584864866947786277721247291395167290286065892847900534738124290303855259714433466267379721946134893048206948414180391351815867162649413199797963003145317937045046300018635686614752195774961944424424217458091129335326250436641653442228122207518985287536021723790182807487702926074679182447630107335728322445413733624247826328372173976961272648110678498633766623604835677181237549379866251158915848418318916387406807449508095920057952251805849319304599653534553196996312168335973830042560672601901156431498547419124485569098208135654651056697746091439511715306517581223299258707068089853985843152662497994789848839626046017206838754605790001827357360281916656499205873669802337808573747551326760696032833780221799664121797450680901823361967375705323849383878091587262892180843979507325684999555716095661296907726479033015444715338170473468122779265638984856573604659430780950245200175862914116025572512731001991117558690608111264316329460488857786427817425858333416882537615202797646607748143673044241387976295191673397194390405245091307954416597926889564568752486234749296585298781949361614529712246480865102761250927661274526476560000311380833833445183578834089464143727557125701446446169076110785670422217073572121513105720312147343215654420377612959906096763477750669601936377665664619665711508071282364292084840424476188772801289744777887153865842335202203653491699760569395705995620461990453907443690485666337441281845988062252073748785196568858764982350710677258282432855591554678458340750687653563105219515543511711539615613690171984808442659136322911963140555985362250744268535414757495916358341485400883138263082407781275730359438344818438086317022453375848132709982322316223706315960836844493760883193604953326898794526158170748100577092361007985798555323890332904547575762040779876191243551632164167538728417525273789708160811476365815282363601534271510050332919584143763538872418994110064467251309835869529711049018322985037632483213654556150286115361055670139691599056577003283276838132843094319148972499443954592704686254232364100105867534851752638582939893627664096233726818006611615715957523378427444622883552807601517715713424482905789406248447269935392030750704180403089779244683831279322576889955511991270217354607995916132435208245813339189430281489728574556023414378934079973766329344207879679241094746787853493214036816722183022906399415928689009328485298765818356297150494825779148107611004613917426713873031793116156102862897810018683465913049846397505594548893260230654204407952402481575769975253100115165086708418905195372618095563900859798502817877579416808997505802275668312815342431657859065341279278937150271010891104040272253747937048402485563386554225438146387424722843638218738981653610055020649680777456182735014417570003903189512487719353828087041905448070121512600797221603195996083233961372239382324204595614212317697429802557516831507218561186389679192447203006194532757876109395393612353709777734647885461931424762415768014782331704705112221176943632029219370501658252567550474034637211292094953082148869004349016360248526374995608478097184046559995072846336032858893116521147281350298087365274532236502066874664364871870889279603621683479873366567675661180873028966141376347634962546928701237292859238408938315402330657522676986662630952064500974986532095212644754892057748506995714409358707466819613541134455730446762135074142232283902351427856427071676146326481341896955465425722601506791986836695273392472488745514868598181793393309127008038924951867146143717220433438499974350044837880419403617078141172220867000884812240018226111790461120695926921803453620772835008104282998274296507198542751853558010198456980070535369233060804110606002683409277713814995221572432632357817645298634906107536515241048692452249205401312122266433196340177404434087260332951115034591720980652967618630632820029525820986139545639927279340072520588285933762364354520653411093114824285693444931967125659213896233070749754459830428596170583345908775675890091319222821090813759203247666751737204030981636536608135030319325690895916454886101834089386630249064419028722135607888558482562660577746102663596393258253518945032276843285106594243882356340568845870336049207734233586476465026736752346160517569289004405611200088089644429178019780046184361301693177413825523057414204055966980804912200824845296498490856653565256836724534516877891593678235432862852220789972245122882217399723686009647283586473234284953887231163989860634623948312636502599046985859293286179441665646048932778450519855265951292168724946022362095746987104483401044322787303121619182733717745563920673788836590464598725664848173580641890544275944401179787041577545773611675178792582029953002443434250972316361648855195016264497168556093110372593331587064178671294326054942874504723439403726768807474010030019485650113894613189894580056971141345751308682046109722587477242768469831874192808551455496195053965811385244585980405703374263907625038734846392967257212640170756814197379988463690214916155535519605772059899141616563401555116996408649387038755019830490143280654702104159174540201079710213845880286198181672071771810429372289737542071408717942599730202476538155435210444066426568769485501059970743619050300835309745016105256020998325152575191450167243154653696717768062469209799075982346992188739266069028440150639648902376934778600887054368026232449763734965624495164151883383689323932008142136178322845448268772619845206379432001271144934654976434251157830851674404081150487582910799594250558079390373691114019011147440765433014319459951559050591124587113893822851971607646632584850230846660592956906544047460540961069539533291068105195259709088375849191468802941364763896907164199094724382698051932637639456228473385437662770308015838567859804473162031156300551696023975822758774866848738446447389155618957119265114290959431637812638191441186955097041576906144416439534142826478075994547811819107280967356062531322356434603561190327808403106982056258331826544477024247812867338350362963915389543569613230666982499765413538773379623668387573596424230613446430701668797279678981349779633486295812006927572410246560826010168006869652370908972962382885409718469871032653091197413424236506095062464515021519927869248610674978929779739865178302072660636093958350633484728408361047809480133661603760931622429118143537989189145850820823493772576503347867641079265478838348643593737624152471260761002303800049115308809731463546076321873627339323693040590388554604553855892820236750212362278963111687274450673366111235755347508407175676005675251142316152457583271419586428568951111927881167867703532977358626162923796298243701761236003505155338371476667873455154444027824102425945021188603734346070290819462461362317696664911868112729126968293963046089358107813170253306917846608521568254447617555103591699664644065872533525024213363157347347709172862061644323822587865759009507004343183081487600104196305476216742239861324468794184369355789120694829891125661290329696295187157522539397739813395663062698428354479218990925719492991711234065048943773953891955201084253745324300144235939044089135257095699835522088103424022187144770626449798186703775606494328172444100401568107789345167952039230288273552092835734207510525827991185359347746562899810210290651597439903785932359773471919029257199732825384281295154725398070370165473846428023875385497577065828480806995843055505399668654546898846761405430686171526189021765720944804025182095467389929845091592021097595926843182322865380369103366738418758567474779689730852541580507805799497602956077268320293638728600712414875063733876278612341750754588725674778612659812965167339315961311662943683822420194398000500318545034382591588225100725429969706885299208283140606290420850757672534260199067803289712322929153729688828496924499815513835232184587078120776395695527129282806885710006280626357155325900623788281588639314938060586987103737652455766802624811038594686459983504333503272088414774812970825467962678130485329575972521032352825174852206044247030381584065261764672423707094305132086743209956372749659151649760151304433665752988933874219194278154658520307814928865912570981613376673280381085029594255040441818387572056784862713663958667333866059396772415376418394752761198949884009423492438839791239707452514514301828791025736188991420618180152607298223757308561579227185747719761078192241753029901734180302162547873604455910285459205177832938260816021745102974898222795412996379633493633456792725098073722802203958068924248919364932220182120325509615975243734802142419807883576403909398140665637879099142461881391119000589217658848128963376736842020790625335623031654340800500011501997107777135783447386365502015219194799603900890956829639952061958492089743284356098248277957616340981723954007844191481623565494856548792205715455104554848789287911118295836212167727330971060536910864352122858840623945850711565206725181969842342911879673756066927138046065586379316448386319148649463654078803548096800995613767284310935664690163460168458976539935180624692164450276522564717417154719254513493430563421118987782124095452813652211535912478384889625200124106068120369283527374300293797708845764840162224613019750538000263247592495977302882576391487139818497402264499524955183225143190210526086561229340768992418256175737668214066343454523380485150733511036748794440233200255419401136328736869994332481051385275715519755050930602432219259904453422375891956816973906934699936199636093411215846302878848105308981249057675528756030757056135360756852183708485306247646972359042656000787644820192620460398145943020764235337421623404902285595568217289620213657154447421251190254770658143943823848127021538770359004524976798889789164324665199842580628727730849097346762665347651446937276379705138882927236869916785830046580521430070844056442264410473477043121059729094972906906098306020053951962995215148135487419326124620840140622629819663861016357399711740294719611744666393546115422987491989168609582625592385433532078992389206510725551837138983535082450957611439783818683601970239203865472765982047117281019967588826799223527403770325585115102190400957451873689289932505998905698220523154402587305756537438515912651225366882914674149291629129324029532874451851542291382109716491354773778864014923841484588120246492788112749139431314041739996195940041403122415510120146540960551065377758185508637811885736299482712941467062770662347080636214617648584271274138044740571922586840122997452402892882530769789193816033073849425357361812047062238116015656700280441518497502693764992438792052008623373948328070474089398847805592345765436059218853878609746843647968268906564192835288360920495945656807768401105443855563133862821756490013393986591350822818341143873484461243661580378386164137855038113703235367906858619683828802790954333860846314076562825786236189624545992883205554997291271340096466878980454038217163917764225099808562035488272042574315624667745497605593789947983105376592834982148903343729443257096319032482486897755154105306856813050957748782743190653902542857786826450282241551577963600292957440449264085091244971526912994330811965947798324412732098453236236602550303807598069248309622599902295119389689296427769747857471249498656720164121490946763232349954815595379709099389288577625127080322108531572865259430932625903527586310344934570038490537271367425674187638160391162114576524506819437636781960233118200449830190891581647416722595927846785729824088461483995398943156418886599328456423571675007758747401455807902493013724975277083017114875010170286930771138276593631536868614587692406085988318782860142099584737049962953403197194861316112113462452029675519906722310515847343813730490221362585329539808774844233039367423839585545611924507572329944591463438513109101227369202342126965707774099746693204290220331867203074168706311385708577873849438311719687427863376410730507193752608254814332184477852097770186226221314829127184878581595213727706063019609386646431916603240770516707690730959051617460583239503895919645739511258608917130585291799529957508726770627807004623272654753317916580124838264500432325596904415381772938891742644333173191425115103165279047630841894658649945972267467140479171960784628817924766318580632218532572980217362330536281132748001054011738726052855736310246376489648359067295883883261169032060864818323395231358842857227876381685741243821359247432386382715189493529904215645002802878589453259413515371688004870471685339186720858439009437730359892110404500301392578774743477032849265691744128368478159525609298330832896220803875643271542228358078184610007920453556804792499540733884187173688399566920649993769979381327283028097698494623124669410550673490555405740363990951292995028023607961996965262527214374694175072266140648906055595064221105544877004234702793542122984589215712026513076916253076713697753364845220920974973695408374889205766116889971621897743671186913171518740721961377830912304169293237130830926759140095872035426810559662398690168831878781783535078053891828885960171145022590365458822361747655688357570494428896843860817586121156960465008405830957909803581755680453064945650657763413938144024679869004617022467140953446593232215772709128181234475063943435130237165343203466899497440124735277098866732423474995476257125526936001181956708043351905330709262973883231421557116426374544202588085916636452475101529963129066829585273163044312728429083758778374669201349559740061443035058040813625448119989940426871162337021233498816606786424883040246295793331994438744668967341337347924399014928347011418293339250781870399395619672352816165956970241619431546475340419137299848433940080001180504179038826889149053156589832599906495563551359764784475815124138755378650870365782496950399506514541501460939584507163047954525071273192544127280859459039871127050938608324676840612580960854014756226788585978897102631860523282302409000363600129587664279040778946091454877780230424541793919934659080137014543680113792669617047843082772441904381443661494411539868546113693909527576110713939181796554272759172856093117019296842463437810029866848554318081224405217708853520685646524199253055504437088011426489775579458940052234622135661164058689644613348026180911007373226387444122947743307163749447047031498157372020349402482154995904672710897520547030851911412881081363291775586501164821663970841957163315922458043418127444720970250175835613566908200707901768366211650816484060641781033952342285169516405500624814874102153905610194048780169494548985529588307893543931777995817438728235366268467667349557869040176695289926975764820128593888951305952562559858367041505710795764107388434110032085712738780361930305928343697058188397358605410620464194515823282882190190010301772908900504012768888417795960239002543997859468230336048748822366429125683113428028356006453123239431351390028314751888140353586592402160037627963691845871761109938279344433325041104120085751716901551753550829471465954467646424051606661536257261292538696229371215351260743710201279395661108909063070960063845044432036451662007958477108588914674710569862500288203483558129780319794416988244257184341213796246785237332717418711016433879356834727832811838174315721445618703140945512952486743049015387241646331224732902232395832709514626482063378885524112424871260122275633095208173560227063113064503223609479752261022910362417258063930530168412048449999713103166577464018467747174890403658180973343859725949370497216961413045462626267852154388739945652734253882588789198448542726126401120737708554504761216530826766754884937090782604852818125102237763148592060544381822445833565193842788682510431927142458782693395456788509760258985361739704019513940944305901454624974784182092117512287665116951621714878959127471951980558997063991491810874115163888295175365099854027428478719626702578308444053776225756978314739777799284564855796152922157004714729446744685319991290834812912416944347964454903192442539079587258795830842205957880594111394995871947643082849428756366043270451328039640235942866000167158773156953616473787273814308636547325854514903478892200308930306712166595001830517871199320004113577964303016869580861658099410363931046880700508162879756330040391496538323144641883996713280216399225706915792266635584378127367000171848305543432357069402748489148993438819536375864444824889385185387125288176816646134835258397775162320778529355728729282940875357065260094812418493350732441986824596924775010308143105977711234225308469510318951651871389688900037624357478553160509865635917551241824553482481927301626510583399171056132080964308126855602905927284345490267424746337354648976036727385857000434280710608577879505967605839328748074868556971045255568203244898234520058410812201947536831600895377663913476198628641061133498061631793077237354764908811243258798036372311508891058567369967045522728280517559282999103188461861015057435609521977878759120187699736515707801378861632319390574885794985925280801315035725395568456027094787585952893282390162102727832452952229304032369144280566294339203758847616289008574648662847088336295998755006499805407324062002478456101016892848471798664789072395583757773752327442002179519597036634427473113773516887574903668058832770328816664692336987860694195260315522510278044186854294134648061121923103784445014331484149464485442482841474985184563578132748496409445274220993813290293873653442325721489027171726346825938724349560108574231004616053549350976626472422484682808250195738243558312955843648218355696071606125998691676111149569787929704544340767654539278106664325804946289459702005953980921985134279856342021555336068210999437811081356193860198011416851012666282267404438409218599096341506373185413629404084758570111612927572741574702726727693575212838074436656099442649702107318204799881429740741849463467850392007248701065011948192947367535170105695660874323585623572134989562057783021215288905358491674450414166556837509155988649409681712969360703357244283430769323207685901678997585736913169132480437562840039066458439463938569436665417243435244708799202162362871184764562294031238654007783541697893408910942310091311175705305966384647074714735711467103814523680124584537007038149631045347818007542792903686573804473508683094750399889000365848665805441417267001488342248827886784473936156945708029724996301035520543591070059244212045518373918720976049509629913301498735493987928488226955332459814862057282118764641072860044326007204057793960501838387080247642773899248075460085394444147314550760213582222133374764592974353216894280727121606841153153150337605249090905273072205264493756739053732203860394907065843880766420275043604759308625372868854271629004189884182293633003301501718111761556133833398619073180358771197395081647090771291956086842286144452871618187685802411058983467733405563729477551376349718356399798171747735190476389245721359483119270649286179649734131348040960624550957598962604257976122111160294100181368109013513370983267141027429974222997979568375563900976024408481070893399122387041137356334493308227880835000889889824405834988600498885434873172694980567127484482163024456424745997079285100083476654315040691064807814684273274892114691169738483694783292421916713088745684815648508980532473986094179576940089425704692245227990964300478626881946316376741905918354069189659281338596924159185973014795314889340963997664507530168173419232704722694516552656843261181135934345874880632667061656935916236326734135201102351285737723817442460540507286186617181291054208498592974073556627542282977657585174219650433902071706472785910142492952638086956939714648394619651829195680544512162788775270788749733007365740566225131671808711783528966519467559874219129406734075781135059691410348306316483399750724003241163663792055755918403677120930222175015031472063533157774328730651008830603401386652131762349072082541966080839382857876748470363210884627331799957176483694587993584711331470591729503894848899985718262892646496002402964800896495654673549323508132356016688009190116685767690073749611151819563694736180753728280880563163716451887487757557654452350233304741881749402959508266225782463049596431690471936133982498066274868937034584655101622683335657483670168612594676106061489266016756250942722300678494966075766752630470793610499546908016463716578303201114871447627175379748593168570317353874190640393557340842724724905316147108235901801488858848517315919575176418356380813872574093956690837674441493847894487376686485884870785225053754999343140551890006862587329988607955463590145543713959039996742765018513356474319643246466616405173959261418649484151083302763047989161491107731580083828284484792525201525531852418301196204988281750465147166816677863395012020930540625477168547241767288285261887398559530239903143165706026580307907306124080245114732842769482881089437411079603083210367193623931597891063209291999187350111521429500213110977248957794018133955902900981573335427780716931608414695937336473346095139177947512412907652341830825373982162446210291009344942497921667326518006512470802051845916533902784614972572234196865622387748994826220294499981163792808856721294406427130227579326507748125535427011351881434134026669005163444131401933894929106943214304417029451650922046786799083719855321029036946456266083761708890962242245863369674789055530929983411300030679526709100708050392787091282603692124778476042387485936446232099204274070846217643440380689311261776191580883533627626699844825640861714900940746299919124385720709890748433244976695683213244481991795272474516717880929116578219548478167486562127691356604359901183956831613821032729936380570305741748948577695590211104007722984336396354719820487341753701009799229922989903140431756239858609849302031594818680151747504193094857601280671538858886943482600505178176519431259393864252981975977550214431089061222059187370365333980290142851381813808700627615572951414871578857314739031720693184852014218862679237160248891473645803792028727656860706988083793444219729258934301663931500660868662134686903318941357562628873995928315529031632344474462136541160527087171789463049368288656795920338801772052532182097675375948690994330167955945856511005165995878118969466363654303144694549017885342822754539496663971828593887126594334340340073264592842563414396143116461031911110113790840527508200789941680932385363676230618895057484974291210289466301573346195795319919813894559893706297788754225456912224116297721059562716458222750511471861408237287031906217862521859217557525717636437479170165347575584933582928931929304284841803189295127507250067734419966145796850287092100338018259119131877952903945758735051976672989074462063962234169381054506275622983125417361603682600966233131909329724556219875798506598790296572708698566709258508805299104934709704899573451713250831769879716943541013059242989545237680161424805943066223750636478688643816689497929316475302514615718992482258495037253014525526019099686162020454234646240308423352817951123170182988853335273834100418811098128012500636988069045225949048868008711709718156716831849246999289202500642534435124020205874868207417588620555676947886944193000119593511457490982577667318507839488700439414698175393779761367549570714656054281040959779398350529284751139765030316618914255297585965018790296700191507640760508379761134534447699650451356167679662980522291741511803602697275513080493499244557062376108712741284567816495771235139482991780459873519188675042106986457161381928035356190485319900268137771433219910803587853842790552757779597844097823550001692825623737109448288947650057240155594824903691944702848626214570325139502981490704918772231067322562922331999124800530951037949554132243608314952964605678829308821188314053187273982431026267913297595091258933792551854145078387819398144349723043994307393458561265191859351313250973365868661862874875111351750029855483622762789135162185977923399369348720890315102758593902157265708739046800180973811648746750162457298951790460291074284642966085745348782596947584553893097650680135233395434396945187212788606676628376852347396553924178304818972143767439479002238304220099587240600802465620561175684037092835649760079452866732410494494838493004453618346226883074988937598608348232304546860563241513584351030170972933207953997267620852026018760339143991780988288000473605351603261499649620990150400068652381746519916326133460220484544607125006351018236667842325968834026430784185667014742671917894468405817059675203095774072735169032540499646130384406655363746872116632848526936602887442112642296446163733854276229678961077095847695370995971206276346058556223966644082408310374609936873432494410565319027204044081543491646618697002972126586237872281957646126394434238922723307855850216842022501381112569295382124998020568931243538596447242735924351331068015907343510721625620065948582062660365979238145273194133002839099188721591161120239748508312375636419984395684430419042906152352173390149082075210710162360393415233756178528918852666190326600273338969466706885089579460219995538096762135237671499276097569869024984185878967190041749681780315648030009272754911452436559532984739312538610592593621498012214696164223448835402008139030201232753186900505710190228642054115307714739713446369704926014547456146411631870364520404976591827609120129117805535258940514839061184853846888798169362629361239134985841969297209027424003932013554253562937823593725424628813144398314575098255046575508316832769512174111285493861475604663415950609776860053422590432489747674528538385673402557141125186443317737698192524655186007147814215299666206709841247658875806272267389721129834231100076528598264256013226399410671283255502048701182028442119045225072898418198602198372816241909281870331295614640403875747595597208918450739949728141491225872800659803210424178477434225513275588917966753826189982028063849494343135673672333608337157866225546559388764575840981113976041219243280776177755209486843929934697018286699008586096960794085739732998350088208113728409953883158496006543065473126896125836261381880409565529148892489780373299648714391014128906295344509006028239200372373932413402602026319288179984434994524965985905003547648218497255766999373354649846793669443240710694189721098993915309748203970755796697822758250016481390886733462206364515676959409363836528774667658616084158402867210606610280365172000498129567160262458441343980839558148150885698019792415956036352051482555620257253266126928932359039414431429828727037013729052703579022811764143430366472847829245139492075415678606643493885047938667868018385976557062222706945202331787838143949182479041606134656938670885301058937489849800088823232549528091439412828588629018215683270543262485408201322643193159242782331475518259980858514962295896089809118795490388331314322110306525009217563725485232238357417311360218229117559594629929412652661450780009382959728603633869839332803098719397646234415703634089976634861223965784625667559883584548561850936835847680814019014864529353104967409969601717607837505884301934744524901439205884466193411123552984552470802885870452824193312305900396698072652725175529323594400955730233805161015736883213428954930847761468882163534615460884141638640621319476759843478192500119844526928283088887722023231211283356917923446062655748115243924467920074838641063401315304682250972044311699470830717064481201909859507327182304364610515151272542435254527511565713317707723680137420103260641733528919324747619526475765815823950897457434415978350501893141766069281888446876691681770971603704895912563220908712597253143622124981421051537857617837225018572849365471895241395115409287747628635866295676081727863832529195554480058233245270602211846927122517671090255102279976453873462802558757790192001025951659534330756203733386188560731003177212158560416814666053694414443760091194554401320734414571205186160707464245852685442508149006205358570069782604931739733931000120303603306166995703449073444856161715827727564132507173979240480469113533307273982547933927488303788559942940999482433719753090918638901708327792497498952903599875753155233816768333124909298877393835534667271616606090201432368568905784621394987565213944470747440879962508413125266434848666476458416537919384663163949533569508594354626406108151788118838037711562736121346970388078876520075550898027445690539773994674461666690141487476620118376301209516227125213954233023362071889467092474572998157529891843797957054165775829579428302278366835417815464424154655031202296073919435117968688123127260490821841350086430736057017177156329802423858011343900636877661757553210903245292382597562339305006605143935727631583612817691777368039747005512432174971763972680724237199269644826353834751002165136308941563907186995042950752032615868810451173428715248361118263337438897122468446016662202244545895904762246776270902625603242186589127125834190944469250501260690415224466393679183085692730776897806874152632645396441825300542616498937953479352943952142056867954443522011976191276212659002627138487581062771323197198792057358656327618495582165112029956192018843771355838312360432708954213393059469684218786741801129506044206814283418817153061486240744724747287686982550005919927587339404756673033402382771348087222612589972700999504138468614505569855154686121806659638089559666298803755664113265164566152396492937584644945780727615169216425997430092532836709774563445454494559121579994728938166075927000505200779300800014532648567767729014900746469927445842693753519492378381349623599932612102048625940826490903513332301591956509180790553809996838738556770552227725464290513271886955066673332234050055573117740420568105474246114955097744807474531270818143649377423316380015588029312702685613052546005451012867108025814634776062564611317779321207587190141784830762157819213168683892723078289215119735458740873217239581691829811419353601974746781867996605016533605637027317752004373921890330773602152413541607544435399032936347868420245211697456162704964467657929867688773208971728647473366806246355424025051050548180299064329106197374240615174153539429179084164709986441712807105732158818625059557552712038520302163457265431271644564192190594830205182159703055988175506376808692548368762526654882644616675516576619854401949328781302256267345593739723666936362290197245842990847054207836944008460229343854659153131132132968456819219677390107217737283350442525411093290180777214445994298129320264493985570815149979162309692200600703664277024246939806336641164992254708856727664794944558244106427417975542231913784638129439199670183808718749178811580197828944339445825175960879709999982637391311295713537296253916560111137620815710814442588644732885961572841410799423462543750010398824469199483616669178738331704363759573434815902648320906980275598017587449796583010333429989720635518310564264899663740865861508927623299962073890193439549861068707635464979069462199916150607119572181271332536308813904707830962659294519939410953850352864111383789401229704904434748059607021619971192868419406361140787336055573104583974394990035402905557212612891385650451336078390939847699669895431577951012160119052085542852645970641752207512918995856831387806653003536049419976653844666739193993093378488097371362882357936402373615002013975118375581875550348496447143129230129837535676969129892916896821591047535331742064935577474418003621771762040008685135231409492447936837386945065407179248741173113339890509587185977504634121426098937354261893116398991388517242895034260895510121925272488988658212077878923652126754059492395161701785250268333545930742559940340113825452971225819757398592472832681336642231751282020887916988028115924323257913809685151808436497377044548034898419965207459189484394037377937877684117936576130577179740578990380095228043451795934273682374093024463170504453941003482022611040656164692394356212211526917603461522857084509150442140819421765011602735210059335251555639004373375801979742610270370065684408104091929656910211659542878763000633621466650380906650448113904057925873706647090923614813474482532042275895784954543313633853802709976770529762297562457318406630093519379623833727146931923795084207557257787512397028321807045283905582421056372265169628460372617025076667759176848552374105881542266064841394786073617144979136565522181186953439757033383456185956368602902346160354466946654545316924967533257086201080774525215991005161907977751068797080073018714485628182030712258636614182458499859338024356928018612770073148016269598181022812949613484949076272870157541940354604832416847469729648047173189163368223638250654743418793875243763944130664697318165404527220678447539929786872600731669540658257739737084069908336879459247095754678381001784997519084015277342764063486119114355011474367631255572214190385066315592526033899784858987990897056109133060198281373118330134279802436163470083879798082844736031322671393807660115380206553249593509711243012963511202580631254573544263045524943781273267551968545362025296372712320557787214910261006782761835091885627511235819218184663909246198232352674001707237883334584692380373829899426046313183830528831128235268912368277435650662183481415705048271217822719602843407285696479495732098332968124011901499532096706895894778262699157398019981494407737905558571959265000997728495994156813592154191907746402634421760126456781008480793576111113240468434288437631131743297910219791294652047000596277924360857339291692282136141526080529713033478806281152320220719559136975197841462545662150820119407885475298590628257403923147125903318627610144548355831146562024616870599675248987045990761898414505753657814651677206382829369704873491950252176493932530176623377331668529201467227734283290391191562183500287097202227905170727423024202764540419224236206345358410292169259184025596317702722827035562676198750753900485229572547309068702586791196796523671217911848607983374986686380189505913140109642355550565043509946909824325653045748356250375953241392772581002514238527975443879772807950172281320240883808985278695614191014184764855471642377722433264899962987583897307410106690940364478764736528487286095645141290481382323852046145405580650938049807141222104958133022891597169572965402328006369462957330137341048063844205428896934771510437870089555029128930834902792365582250203959295039517533994968011534029009669849946678630849493735736694332531032826450008649613367077301014135076136155537128703904415965723273811822965806112331498556970710356875288692333127897269087764605995753978270043464942354330333026637290025841062096987860999318005944464028416568421499367695803077628922811548289961109030728638127718219093472207027133232487934391414965303520116013198277960024714567389274757090746604640345254614469076985075808905749846171757341284936114377274279182462220361674095821139419099576028424601831432876972935678620244204456902792426878930543299084598215351307050844769751261156177823264087721108392573650201832674661225343828623113314652789294350586042739122596141784967621922581627989670987353981455328926773287734368333338955199720360749667425931283482131455368961881947502644613414457223964275282743032836478594188093689862695214108483908528493221585735107764154380851494785214075696296210098906836409835933865351814163574383999826104300376743235204256316010867307472507785607836395477619235680987841337038224013037997782231129651126353194020171724328719967897904570374822431072753398763589756305026077069910253727490776923400963045222361315627984017458665845484711175800121187294906064129807703803898569997444119622306984473145073199736317362142380747416067563334362966822454233049297348055760676257794195916807015433478253042902916449060532066338528242796300051751845824325396552795217480454086772699725992067056567645965034091014503249315364966300071089149100562054470412980931304553351284274662099613275506019093850326430748270641422326352616602237338908286862026917082542136589231368590074739429916332460066394186957986733854974062575155478180174166543237006963847535559600208331017025282018948924981998730024199529203441831855504462190389631830752455911937078602166364425591441055345568424134859341590381184193872807276517231699382417661142437418266095253539867089292135855020137368168210113104521695386104638328843517474946371503928847574623454456500727761738000597239036158865095394260102850745904918706767722661848407025526131822885326859202413293445749537159471974917621869095150579675612355183729952948628359402869689038875766844833911026850926618357137856908980248865425117500316525563814444615973089785451714223250800630037278332360714914167736945137098834791427559481546798791700427366066340751601145107243216360680072143268234527384250098257727719469400514025338257226768630180839193464354505529291197318813859761365005699020132536508561148679333498738606505180286187320508871413000490654465105674420454926646447726752175697091110384294727059188684440614729014029419911292215992932584932542340463819772341786455214970726722887851852657505702388860649628344543647353115737109474050731655613645823824096454411628528782399342358058059844799489733050806903886277287061641608486821943929334897332675022082278978031422227622522038675366133364842036183250866170802658416274357029815416536559454929506242759256924861322105794752152908671588094966039241065142949300622113696862395703724685161104992672399227581966600340459984739518046192772459386323714814234468147932074623620417717666451675696030215344925308356177559909267195218774965921947073252544275007526410902040467118849112998326748546724297350145231058259595979017695096236136849205073049430192076566913147022760593986547614120553338201276938045290160550743389654858557034309125581935143542758850869147670483500728039155454317581723569152219579940127153149282141373267327493728021418191662786740641166373271926502024252509385246727160647504348195012662355309237233543409638926563365199598324236251991744615316062147756812524612121632293260390433635674149214356347975352073286366043654994821567587695854449482876631275188742148290673264556067300080375491317364442467466920271225814246792103712072170148673116002008275640225921578213797746194608238192293674658252612169503016199180038607707572922099320592886920648204841062439565575981855713533052683884455536160545336025244027333596788667626319150576432133149553024844223590541588975352381742718657373686789382058078079138016431534500936362373362420261983389729306052343534654670980300356365965336295298284718257459608299586236184832894616328285915275083194279632005508203386953382122174156784422714592766421972245502315619572579142693756475190786369470244489243981949984365304711296805802254563640973469870822481589953069294183024831478296634764514288632876534986387395227807216768316702803532297532267733733604221731762306880566126368496108113425734445489387169951397405289323847005874764647250400789380118065957228578256910866609874145672866949468477942863559703776499048287354935099337185904193911383528352698339881476963370840003172776661590376876321734730423400136691741999939354953540825294539047475916308309448014121609060350413376706962892985737723009926286476910372680710549626272889043931452987068141519828933727075723663371302212464157042507190694199543913798494324224924947372107213499541089755236672809577950447333909478057650168025908804628412215686345566399476832907076309322538007061427228006113538091621668778927632870948741011301071264920015589145059627360503532491338233935589060661341532745611637066739858315413872453013693659037936684799538717777542552144985928811146065327745748578883048964189971493359086072134894386760852857601709076443843383664548286574338474105992809236454996108877916998855226236365110936750079277582753581317685852445641439844349158947218067894469853222266474404698622353118376558318302689933228753369043612952138249493142330608577244810416360029431003520965620911957574936798420502115703352602771460653443431584504542367173470586320346664150254182911488844585720793421716239890380152425503510639941784875270337364474350922842053493438131392342521255386945956825802003533980868985318169423589380596732251247264468730860160349531202579172391361255221407975160371490376605709794691631403161536526370361953396160904470105886876803595583377190064124564338705127457578435457590248092497423106201990137923235087776917950755501358902580831136005181058479114133410324496950066025589481783518529400024623354330733672218233277260683663616652129909950744124099933214120533264951670733603545091733030373597951899866166920646703676249702736968388839371461277411273917870290448565471192969407092971996292816613317683409543322128224552204806279110958308144089678145799900701275429318377800491260694507140118278536805687635878098939399529952774039341107318635216184626445589308906931688336354444124684410103441631914255415088484376365306482163742905575487805057024389989975644378097279109099378651386351364885201800507448198886157976886927332261029019381715514266137274358739972946613078380165013482994344207447052338213912542926684667541182203266304381785513266541376109039049741945817988939136691582977528003396039119508641817930953496564417421502705275384375708778234811457611982136599913870853560754918683836618201786957436592411148619106407006852289347231560127793812068296012862389149020322044049730398371927447526899040770354563912127816243003810993429863243690186532148385538163387663244196338592734655268172504528263383528378662356752625980273150961195692180224356682483602677276771709276879804942007762441013589603375154807711295221385110045896248580158535094746269106801866542783755926518366886351848623224843081286193197321511769110382648902780593436995822070659406932428191899963731276943599686117521606002464688377962145149915107020311917764571741927834581089493378879659139708469188477170034518128140872905596595557463132408855412430491836093346634774515301285649014765357598891899795558005168389877978139342518760913916098298251270472789428214777495433345617620957569836128448088272023155973456281573601984132451601155918157715051252944816001551203264599991232941390527288779234003380843814500983723563145987784141019437124152943927854575611766631225067949806451822845930402502639462791104322566188218385504884074965818301554339721652686916812976215771725618533548998934314203362407289746592551462563426712958592468402687295668908295819025114997366689614007540020432839947432506990842385650711008100040770300919421737919710825691469236639940958452930472119958605004040653750072188212600767149574653593523764166771561615007162367234440543080174332851445258886808760936678921451983123947081968083986147929889912572808650931878729752620523355949798683551528657240455312472572139921629678246663190832277223998067612571457925568315626542596072509729146532997933662897540925182861206648961023086199394001657352827522674774057760754343969101441859627444189658313204990482667001918632049616773119403468702960410136892054697461460056305592964882004152631538472882555995342218895079743210821660368964346774042786959672761523587633706661349175751060233340414390361699161738285313987012006582530471574280593817982190750648015006135574760832391576047431386299034181801186803985351281676522037793501135649600108118349266569259590202267301125753008868956002435202332712167176224123099144961964688187799036759249455448471255430439049054872265506768792030655210031148113974111218109137440648817078996692532080603597985750756667006171829532886066545990154758046161502482863981895343776663458752418950796393291679870415935932068136906146397791795423779998087585704976963744852123445302407025746082760476870458055858907279843032930197009998083009201570502003377722105851727128512191901090901887495479948174195988976928678901728004867794631846592826178813633365354009082591620422886649602937868624098733352315132502729204566313903285453837274719931208409420257383018430878735927534148640127481691423583491495801181526212780540840793991922424561745595272348757517256018788821259094855262517184043660480754047067132600306531856365927902842602359749502027992687891916160757037329890477663577107927826806076227495844640855229633462392480546780118746375755065579549500062109833892088735652230247446619729251425891863365296958731373850546859597580116547489418699592956346486837950614731478891766450824804327995913413307524560888944836573474596092548462650402151332077231554139016876561492988105716859768461542488857871251008493296955381497404513941607799432015275086060064337971285159294406584765696638778102457168477422390023257324342651585188701760907437521346993151437962697164913066585569293244656594015702239138926602266504660553665918266672727252924569479404827521306308995846157952584517771191903853822749208073356902838563759052063371059888948570757255768355627695262402449649338951357580269772356601939978541346608733223216573886420315304231684776483900179444087975390226181689694068017010487241583429952201994567063175359111869667264489583612372456970983514337970783415822544391849410050995902335634541916918863594279508781071332600502141696284893205241996615666649784732702319862474884304390146218019524403954128461266721383772694336642328673072777179331443325980003888251004972487053616742839433403935385452048524714651987338022864536954722509221943015710264015672587175424508869071557650492802240449881002029678175974765998000135017550099489949577170159860012612741913182315541411192988476514357642617533258716776602620837365460863254756637015741250456131880124065363723226942208273522053485916954179210946937096929784405209189251955754330043780618951824868752473738979849518293557748601849015538725572175529447977536054398319877702167091907207703402237016735034006524475833253982943476001804338829446788240704970330339411309083352986036050427307196412672528765074789785389320575903079887984460104354043608291829017456813026682311072429507478430627607708158368482643720463356464354865950741883814250949587159518013418033731592122347235411082806715379401818669041835838104013164200237502913416368890160980985902740264355994218131361314731002747002408050188369469678162420912137113555613799253380292010391109574705844271402261012039691531774441325198789469279378000351402507488677635936429797782687867297885916408780418356606262091855550241476446199284911799239377515161436540589469507278084304303540103733363397857700800820365456547274784442879847183297481687635882371839781815695694237356592792583476559504831805853376910514800282827251235111189638929876557726637224388544384797342870640588896386833543601370319198361689694186147533632081824014389900556204381941893408557967626055178683479392673431239795761373870885089199385678452945101945460899239545400252385435049221597326258551317444000455352183678246261721317087134193052915804819108514975684150505450726298973748253161151686533363088919866982772115739089108435414823351358960737569316630605498158926124985295149984094171707424937128938113040001808760622593367158204737803989092095109948907940100068952240608615926635316680336867106306663377586486521561854508237726077376644382404878373190294902976435213084146356909699909935479022340629938261553942876232895685663205193076366132643766815277984825963404498338007834869492045203903961620808018076762430215830006188335153832688581463533197217594492194393714906211495516123064234265291328089977432473311659571554583566791603962909175855358603995794450343393316185269921677502178100584233989011942774073802048399911192004554602661193718506511490085674308561717003676604657770957473167117769075991139176455468458341681982954728627087802944125137652324371542672492863305619281220670270163160104881597183870308329782806246214043231017218080006896412921772054071686763191521688315711245852244154296337831817652614483392533679596845251093257051778607569637966932613316574207734068296086501445365588451451730694625135682653960985682289135396583399475332607468523856626871518187521513401822216310532291434784080783268258973704706802383511931691465564846294621378005520107113560706797156937874121586021720886396578803039320436156723313588207646420369636871022928175995179086794961007296467819715207552124156754941802970443659044265237879179944371666256528713479234713029577927347744104407364312898357054276168251674098401008915397489410365999757832439757784573455136584503928135996592013777660540311820678678720801737882939104886369819820938449722144509927463419023059705827852265750381236764351773149415485179414975522385840472560626900326525937316074467234085171608454422790315412018435893516513428227361448210144517037561806376440816774191573040608294669242804051763515945425871415123943511650712865341950530611638740837994649720198022413170628222126300497714130152570818962333656810743299431310255399593972515725254664329292698584545294709490528877466480174827182464981621392424172866879137756630284887245673142796581080747726985779831684965421010780859380163091443905539646395510347739883202363466786308717148677894116498299645907553917072415260852081742949345561672964256273958767092176307056452212430736934526038439771236107424442363125048013405891484549352276133312526196793780725403883521969346306496430003399392182961788715693322034680959691891954153265461878254911290285392460857517962021435884760720650233846478353648644652633115814175859157574476027539388058416344329034623032542115402191417947422173407017081055191345250258575591771517142331328188307387404416109468862668505935048422797486498505958208273308670653072759758376793740623360571209650071979018050929315205142609475986469883425655991181689581205171828957417540784283701510835794847716376415331555424616396190460959600250732752132603916997423131507232358816190388479330276975294422971822775049495005174788776518180727513246709388603559889164526337882259603518052256281221427741194119879815141675537080813666360973072109604811211739874115262861523445101914046313936814602259034095512442187503159875474293969946597213646279195450007612501396285215446780233025681882383034140665764633793482088135000258738097489586551918709580166952944000818704092069616488742979395749038947242375619800053353095273534173048635607070364020831303250567689904970491747294834686761028792317084906206523540475303191163234467755667781721843575392296521755737565220419878832892083865911628015819590223013348328319957879636571857173124825287941914217950509443229963886734475500241875133500225787613425378116306810163125752533840822396683293228136891100811681958524230044393641811765670756276807706186047081800324355772697430313721158221472782338095943631124968837123089012220375105537469826134234704431192348927988397978627119617435071746384424409276486498016421589995179254405397549102044675742918337486018407254002397025707105544404177741743304978561761525564774911615911071620305850352880599236274407082821492126093980132795485901508049457890184199175673088767010218191938870352159035115004956942388260706764063388999561434417863703368823501670176986015005421994952100016934189520597602974008264204246732629396704472948729559390511488313938267525043968730252442501253838912817264693323479076555845688587791309669410499155026483884310605510872006039933201662400615119147321553570152512431784680637144203974475246846010284741245983679698851524420193351612407042815870599473004414800983828203185807628234711626979894689261194969351258795449332144795627372192769103474489682954621085710466815099562770133355554605608313068178079119175211320719758670113953639187716092494330388882879863497167543932961201801551743878708237697737141853956821499637128885500706859353951752714630647200800297862313741771142137785104330600884693968901305005346922356862060702799181099988830114405368002612157051496027612025749430351922710185697090048866600235902725929615527340995910569329382439202352352374906327344540034429861755600641375050801239123841552968229195125284025341205176524252244399717184265102424855473544087319182376678374565129302102002194609008698194232720587394560862053234047716412244068090401884834185913590747348639205011159191567147790097247445367719049237149427255359358449482550467085927731617449224220687407933855523718235042734896616030885773016316499922257341674559504808398184591481968290680832394654104387561821649125681643403268056291063896428077226498219833993910634471823658998057601609367526292401711005297640886131022578315161320425454981275284265567513068090417070788887857371687393112133956714859385057533529347786129742969788688717204594337389385654564962511472041086159565965956796501756486879833831948087831297348566740804411714557091095702787762957393479621424369599264668933198184053132424418811485189172314059934262352595251226197484281632831870368832244595635819644212033002730413430343246104285306152019413985441427100951341603958854477073179841920496428266212287194949021021031868383756016263032856860080131348521095852980846683133584520186856362882368454884751160154224254386188579602854332330682221950761133994290868378906846176261185254569908426725109785223299343176595686116141462626269024040674451633474597194150271136784957614238032601268790155942486064509274365863510140656578353850871555307384751468715479739427475914201294884720858561952626735386468724038879684628034595523066495229119957539338969217333413497820954048891839886653767694703329583693142617426684991017675537433679868735154302289827344245038635897291028684366066407292636150629733866505100546864402291752767117676945391462430965743431220828466621755924895406761307006380826438763775038551248415352936775538827959261000246055313814965315025415739058118895275526429372005986645195405497284592598618831009848519336466062593835607632715347248573512877305010120161398465562919086132671320370705525684688345686321187178823507077765366554279422916637116210582251378109679572385737343099743538761242303473305404970871658418949062139535485573083335787484226727704913361992153369002360505289380463465410475819542651054221298352035835200054734331421010893704015870432180947486712944411977956947036186478664569846599323313522693693808653756963455006634405897580792661303329015856432626017582936750319891060906018193258339220785026855372938212459397959656684589220242470570702560439835909899950412004664088490721011952725934201329895235232869559895001049499503981795243450776498455183257685648059755535797443591275267892287621126612513795950360047327017904896276692253723012655484270246271532984839954975784391655976723511724365785173538681855461392378290173699405188324715645835290886248084406781542743966422114001136484293515220821855256385770943524794323369448078769229757765655396586213675302315110662922801152004725814352961652666452189572660149015184868433741599296538325849906191043196941858784198356716846020736640555856011324833548805974269415254564303855030995145033645263246820192568590824625082886175482367730520954541683175047070648187696441748254545187863106261838580302264061872646159352214879925865973490791295177529199792907022138047628831670073893737906084799626338664016766996129636569178425160435413811610589120148015979985940223387344783863481891911820245769434963500978303473188837812162785415778737233875578682420598206129838062605640745251541665773468416048833779426776928844524053681975163307578025827483501491298504131705320066407124326621466832669784631697832882542478232744495141485006555867814623240195353369114849303174827446312829927738382556621108409937945646119338085704318319821495697067941922393703750265776051662374095074409667068434163719759962258068940335503278186807025848197150825983133123572794756347210882932465210191831509671433713875594295749472828497519580824787616940955902937479456744976777355544372135948184268442832535332265510531542011650560577421838182486944967984720706392984540789534263230506519238560012488701308756404978541164992356931855106130643735078413716861629132271216592981511560097585114926116562052726552461866485092509651856766047431571702452514541317564434003833858157921380949334215031954235103657147486845813579791107582103354423144795109723162644899118156192157301021947703013923837990109893780092333344577022151511538490379502452286693980304720212240196942293504565579480159420880489537192109672819854706058830071134424195409300041562306070957084868950179255324002278595890539016862260879348978078081317002705026858563726052541950365776882078699941435389662701985720241379745157643065367143565193392104868364327414017803568687167622022699198116399500690863827907299138194801181374921995240070798050312411779389769821783202368258105306693900310143893048756975774738107046540939906092619677215032270581610708989492465831260840500579889196263355648310893899972362367186632551906831118782083992568340647141028412818873276902124714390245491786766023167175586378053964996247235035729103847701097435991671238130378656697545311597266231611400187719976934397363593510540706889733254390765536344660501099685740510949289381373648357159006639261557281305232992119820838364080812333903292389024764932642391824922776458554854629491967312577362907675754734553787206135916059252150600707537510396472749489624832040936444776510854329902646529084725690158945442186309971270472805054735329885913327046410873717414501079661527130300851468213747763096894068540510870256658873693782520022468002582467350337968461813517884865310340994896549404151792699933453471235629635381195991469880097920847947755241770479139156697892658149926486095209522338264366414026936147565867293838093275982248180711305711693111070815139703437400482294911213410557485525112122205952414340226464630610773194192971180994101612783047801801769389741413074707200848082293290519381183775960599748959706547690037106495009707573280709795405114631985931377048371782494583181918606689951912487868885252803145893963832708156842556920198928116996559225676853371717502465500746385098441933064375650675489839571195067712386898863752224700278927846461135903164930991623874750503617420771019717604686956973405884555434751076038199620734373856763164049929941638092885803499655924480713267034501635477003188170469896182935741859843730795293455861894029607132766291866122705831717890234067331506402004277977654557072263393219996699834486713084515916374586588603329991304335936896248876536552981196772078288224297520435151046428430507770418762661274569422139359309455995090903396928205529844224182592774883506287139735257880341754431388771878304277854030517827127748726129595876317086870158241643176267815127014759787138882115494150494677923916101185649909738184991474096511115967073135027174449415881629104334545312113921546674080799035342505070384204185779071775843390767289156409429770427133943839258256322018297398155459212885364462455554588629323654310588726157772439086885834294853199719267789411916258010672823499700371570822787698783398013460334066938317696555942601587494911007336353413351504253658612791797812160052677205087459455016545324236652564500620041417841142014484567729687033079005250793954799820001643739265742009014114475675784891538847865782665025847322287430182541805754339746313562055266412209126530288124147207166754204091545571025495249389152721133876529212689547578580920014365000747041367481047991940408358597181365542463575079295313661525528470852223825768832478315254587260308512005519224338244231348598661171264557975141768862606913763718236712947603802959400608505914130047346074951478366916561827858378908057284674446514181522390018956891882840674167141913677235756868266751686857728792399726620239729101348675394724561404109423125763291576560191341387729488681284173499098945444960572409566219322143307967255294367283879410259883822533902131481790639991202099894714663025723894423298040732264689709507935680989206481437803418596199975475509136117028326903730828824549618669298217783679259637404855227290449939838196275031985270774863765207988661628472271148409827243646813492880486189395163466504477454705968355372391769500518673922564689418892322715642181903808481695702724223527800481144499998352024785953279003347040558686046476626050669234194889820959806681410603753002502596703276833939785288931936264092198219992262178657074803289122985550086819595780231745843933330051669518167043235851095480351758317671263047145589623026299738552747286283262144399569816953667616779383960622539267437865480439307100304541115685938044657722469176192397758449969976699468123629583689783279330703386437820024582623468535039950626590680679311297799770467091531319289028579960136579174847340660855221244369132243822971202985154457618846776486344155228143703549313567809361623429672463405092603768008142841748935287822563288555363878002713798070114869015182813533651766904793247648623815229549379324070430269759448870318986927715873970434708823046106541515798110750183618562990901757628868147310502389893932475398159252802188837601259506767395287578765814872928800469554733794243182505601205699552861506946033583790407349830216735261781955762952654466325834962054295688668492791401118732981408999005180420804589061329766089712731492300672975315031005572956531580672998334205317303282265134942001784701333691973760431683732917715435667840389991783931037173585576598904402412663202877139974693777289852185728091453012891807182838354617836323215794232194891999584468660302173368500864048977141880332992069668014148659223006064931771165181107104272064377813860727671096119131566944621165531494301594946498256010069400205537928952364705105315773126412862042048656641356991667813005731156543464910416388403839599965875223345725156207391984569384246536348777011792613018602659934948688396765906255079257428312092184644132667881595145961671368827639920009966936511370485293564597090918030393103360252771890685123544955662616204425895574688711050475427214288205834614207143346772089300616778281311981885285319179207755646833612358670505361776345870442950601818673527310474517841938576050409505579106179172855187784302353733316289833148851700166261728721165371530231279819682038407882143258987459293860460468785637450977113765549259325978038915473492711596878938804975971482011211681379847287471423895340559983375803469823099727291022490340664227578073716343889058665985903285454970752444089631030753975379530629076833381468227226241186615144390463292237100777503587823869076843334927110948762605438239155212588223496155564121727772182129917785789079729328544831116931569305288587351043662911192131121572759672139332566903062363982799651492966091069554421611040750431901841258844794950489084397438106147542583976450267219685798555943926321165349548759093548515293873127228526933645697087688646081236732316009734186449899426833781813775296675375362924218338192991636638187467563336733396599040118384682642228487174520808885603404194416727094286100549108337392403158406043777922106478710726208836390249621699472005574721252264627735353597131784020576118696939205080205286073192167589513749558479948821040163511691904975744831964810315747479597049326704974374174323223237507029354329191063742593417237202892369438589560597519225005639130068617355739872338513484177628659692482206859838878319145164840387673642673415084997216925168677605818351497861076173067659622380364974283660237981827343461075993350224624116932718454163614023344755031950325043613703226372110626779732152128888366754175806561340547943429758966918420707037809526105235498875431292534887947321051377445289497997719153404090966633000757327368943234845135292767146971906287609782164255028160164000154208474400457918134185297508355490675029306469009579113022301039602164714549063138492315701066396008587695693606586665260172310662078910275230033942421183541278209910730020104997663286467876672096382245308736416848813276115094968250667844945837475922241621119068874512871206926097908010711665479833188037848252417484494922406472631795396543730812035523116201625662593291077604491510518144102958464408172001199718336484043509821037833284044064118246795041964876208049124749965721491473316704951321439809723629667955928350348457023003849579705575427487708109206041724137645252542081991372582285562971144963696238064024690546921361870288232032881643558080303567120945570851260604585588195148938150206005933618159585032337620553791466696972055350488480131226110355075397957898441057203778118502650086599620950097311665785912472325263925162624081167550415954005466600813044757557075742658951717822642647349747409492088493055620750731339329407907481451900108061875304682233150838885258265264086401219021648184801581815785880980235049078902012887296981381393377558163737835640203676517810339684921379931228267214828972095280589073450209387215326678080070780214378086392973677180379774555553721916174203482180103015200706821038125313480710813572901909169594262124684368239625672482317707957036171764494194691670790325487131278544497833925066397069922235595651902368054810559882984888098188832498269577972506890676616432211649517361792236930660680859304326501337699137673991105079575988464761746915269064813058008735795890338458375414458947410832024273783253006271582778999427584032335249928958163409752421533864438393828948339275224693338052103487555224015877476306198433494693472586609470272992475581581610262902578359524916169788048756515513479860598545655098188127635909723396347585768602707147108342456979820735560214635998562470581614172930645506203876254776381851747156438391648610757810274682948777913794957421781625188888313093386182355930774193624420448928069140336418704876871435027332430456280075410341402695847710068264862798235285957112920078312637443557610963718430011075324833185016512054757222913061028522203167222221768571127813268063820009464460014689772282480690449318159168064398708300239019757983790996860760278279376216314853197428394748752126432454162040793209562146271190239063561137485667160060909085314124344345029533519979411898734825974036346872308733131618320334816937071569520281602654197961939004767094498579855032429259195329430178764537211181625427087723044649741577063516007388448770798601787203728929806339280782087171839282423700337174910358163357934329828124692129860816667349909685853173717177519416147416802953782821261646211051583004865694643235174697916853162521838019027834569811000645814189064246068630787184844721272440485023881498240272148517728117639219800144993845725806365434219364041058433413605252134011384182384920457852558278316327702432543158554803284180847979793040921697026154319889319703259455093503981641633578248615080742849826869992882772495165448567795989004353851152554720203451155915258281090923395360362480271944235185677716218948418953081836886553024750489016277506468504011358237665184924829915065937552622523963009984416815769469690858502035873833007021332394686494549366165959182887200324581079611185293886181906065276225069532601655803979429982808472380328092056676912291877822582819810122341199873152937858062807136631505641874600250854060764197201723508040310037495882181127121610133090393405652656585652461202557942677955526606908987945015724099815603733032538911123634891335572689356849191704758603162129057822505847017399974369063086043267190538605898365172344268196104087272196074909489276966035509386463451342164102408667259947968225438971326225805052585145714552801954201343921490096629530393400579502507751068495866904988136424091005779813811493175548146137246698536312793756008619352392181293485268812404875389963856563483306893958806951555988852882135178802076744477950872407749224594281327259186435810434442720004419441826301339481116528264055721648454925308519965193593062958717451895431299259251955640470083646682910525778476354893680496682950708385339829328769367991507103183360853230144031474797639888775946764630873784332678921933413135353854312231563134712460806742793889262714720106414325226971791976677235374969613604275098822234755522939412525107412381210014905931129030739158785748762908620529763578527050580366045384060506962827170857450408882159293557186519991545652977247486128690739041279921591732521731391909980436838067175061335606117993035813620984809080605334724127825970910837378700692989774154251615262314494755609777064600073896848741981657917792776123208859520747034572931728704573611069276756002920774896460134220811673926019020244315884266674636623561591978446466377184676488044448315021589804969694396104036009897949053664916321486482823230938284273783436217386818176859688007059296215636779117498267783364932988952699582913834771427545235840217805860397756110343836108874854694833704767053757464044303765769804030452503419820114698725187798202573305004521404874726732121840066870430372923809016837578806743891586978627271706765818650871587529605611799016652211723536187760929708146778867192916142371310692317662389123274455376899121698899397055452476708795223632355552281773575623035897049769252643256954620463648047026963101229539783682363175349349649189226506654825127430965155564342279728518871376849748380429202963414751492979917944571358309511795727749496172716558719177607671012263913541065970764788274429568116865295920670262128241868598545858628287891358385194301925725903377269553084106785010642099255915931447661522364519873630199148145694501568326561861863952396348596250626727445036227534899645383635302532090450923563793356890680834351864357748599612402709521404705499122069373908226508847396679436244797542895861913314235635291775294034699326569553224410099261502077540570192696079098745310305481892267741749548614035250481411795908443245715068072075271861931738777145644034162185623551512201424960702553498276498208784769375361274637955782558971992401789069033005823773652942249154372688182126453467681818293404616571855187493270004193280582163964670137462079450300207846383840824011526079125958275678297276602272192410537824486251414332150197053701939032836227434715291998386609497262931794482983032520448306870070579236485698413613081823586805086002331514489202897163179110413851264028864720872116312949909997011506333377223902015378426592518209642926468734744218174734310494328777308651994205653899530041107685062516517214865528660043199795345978459390503341365883567045262792503451996902371337946997446544627663249185474346527697350237611197997929710311528828948298894604505953760595093052354099025325988307950000348826232552124195077701307873043724249442160059807586104336328754663478658167478138465451110312737232818240021702988648164797469980410975297208573363211761015378969095069803021827999363406253624257592224087966169772275513360485460087036720813862716908655616883691784470170374914568844118680263002723702692460390684091114578609607451591005790423550407465500854945566253797695524326370982057542410425238931471193424164800580395544468156230789668126094372236965532736568980684480887790181750829810638578945645417938022857488156076615969106804080470855444255951030396030133135517523292070325355297479424977433190511992205541393494594910840200034367036952337245324485074608610092034464705469278783317159363977338113185703245761968315765476468601197123184790250511422565018014884622911191169126219705123381264214039948337019493036064344288598506952624380454012901704136444820703642383518053472754760911453533017830670650952391514254068603659061921886573373643684436644309648241206035812263397666482021516340614908846973650952763826671749329897545665847136260298350258503897562177731027938475428730098161753646596447099364534034865250995356265283050751085139506735594025309598036872796432222062880045569488976069468989868126804831924895389281725554972860853941699591590116845350250953819503870283866268936772117308996739740757059555561810022845565350563463342278711876187000140227554139926777544368026634019052580901486772471538719359820698378523881508677149557348080459710736813540903332266525617017726358011721239766968860291880388057554403350952559744330312981582614631544120247166045687000175535767673099625031771354114751391457918222748058178081831221842468600057789399319673648798328316532771377950831969515496818810012723346568422234928809694960207558922277911594639469077753471633707972874152891387017111045712135520151787691659048609041662572718928103831228751729832320920115144092938415900586182531234728334853579453494643970922886118662408402320705970561218692066700543526380407255748147693884970864879437175396845976956405958614567592217121651826252340276516454818330775558758553817680085183670248184017330856133597561589071761990430090739012719507112562759046837490295832395598140673113767323023184246448730086923794042859055666548212506158733309100366077480882010428904905658494727606860090313839505334160537932186938901013456479312233145753020869612065895728433051333595401098357472044342671621570488887639321983385707226312199950577157988649888013097748827190208421415543889260602895391772585342115800164786993697161152834952241608038804284191053258852662169984367741531860628192121239725128898678366504559987581377387285534042713450527498911822551480815971071634937807008226967149097742338138538668882664275639923591384181408531709335745894044070081380991954303974257219826610906343193581728800293827502952243209422109300581634968839090871792954292932772450056416311110244331566704867789831622875196637333544711510791741808463768010889754292039549446482182068910288450778199756225315468066287811172109716491017736157878868983366719708801017111578625721346781769206461241873744301987112203486417888317311909034865754858460012703617678990788440753945629692056682367528519239015617653840049386361100605689465639155693914431695618481673481600755220545271478905118797390815928318923286845417487167882644422809948854836919722049343099303909535731989939774323091247771538300195951035182062731687284970263264094304556025224548295239886917151108758744875409307835621121144670012336198679190761164150961167941029257496011938576435957131752814943995753968609762851345578101789349068582910679385367594246491283840612494187769186554933299843214198869546893687644540389990078551825068582905417316480600470407310941417957791885163643072057315085977098021274034226650172538611158870228998747602771809812233935142365927937131286692561651532215067558333867282797717605850065921481767425203286436621768753965537536367481265161316226438682670716383125596365250082380738479128974370651285564239519506966707766358546291097903569021790191964521371958361928351428522556815991504449654834740685201304494137595484346563147517589761966790105215962375086873566792333477015899491234352530621317508068026811624275442621917353832183354030825881442858165717106601238827637348053834973684483100203320405132422962073192223627114664272575662705535241502352938312335129562938992353583448635977525635320750650014455315858120893850715360129997229446720123321793965257791767135915764904182527271977514065205370777174074903794813729144964911472937008031540909514811938275739825598725334137054526474800217142412266212061382866955373179129288530990411050526751109547573237891212873590306597102526559152245968567774221592573045353278879010560968286277003638028247809426579081345360135217811165922489304936550701337429924262068454995602726933184452233029132141422024287846942411329715265431112793217657424126182447867799925278268792667336806038230956933337715777880151357530200003404896655485257294538645430120344857395588496505686937729239534608489627440707028615944538401507873892347804594834682622415804299074197506380752641309635381129180452362904235484003430777249375334147799342358115997892298067185288391421817196930151038688639216886872823790263085954298905946019273416716592602104470308459704285635153754383574062028175466458958336209032947942884346109840291916521703982919123573803498996185083765592958035336590412827168761110852902226347448365740965094268397906980823617119556738139649533116232590699858127744677625894020903878189688923862012554335244009443116213437931888234647910397567769949293119000042329746118159731136631828693887823502257673518106386817479990678153036220665090256143055525938522058766839741889514436620952453274002369504798051745671638065482818528520368554873836886611946602567140785593639173011099481163563822567020065995100075304393851951872205979555579961518839223439916080279201599245895499350314488594910784244506378663799093419110487084527932841283339553704726459657605831113118718213149093345096987325719840334063600667827769949221940722264032450053451977149036231063138913334099570691826653763089467412926273587456380814446216741177208333740272747518539330647177202631704572148132267403503837473407960645356808988670543553907335099817004043688446535947599837638153930245025949740297779154078844252977123565351819882357029842659379396879327521763179361884798637814068898186560646736943334855112894789975567650437787397195740673922492672337680392729895112165938628106144127283891171880724075740641755300104476103667030924759472797155430897325548445567247003275801949179306390471453523012594594502820735462610843784309719129861840149275469608445396820929818578734189985725152630897462382827006626216465336740705330241120695681782505785332004482082391201542268997430354381093576745457833479850924261014745408568860378753763958230056587790034684868853049692414695952715588200928356392464306157997230270196651859578561515648542366379099608450065797419733123677324969104755816795578661727206978624063237021763493239823154006263186333133932694276550529657967407352169689310967377650638267031631658981380747223717976414907897653800439528709794379213284766185291307016009164215199823679302173557601343363469452248145471805487652066635498753256822236657680533943824370603943885848476705028126454513012553894712035430476156105739801491661957162086422817229457725808879570744421269397048382866657438982763682690209071101978315858964962753475175969159497657333211633760154054299132077762975352233335437380808306494054089520074296328431471653342080910113845005730452689044153749702008682655098376883071302379481270938241329106569311597117350181071984363904493888532119831028820271395502522699202508298398681164443506591227280593944171380432240732154100390912270219052809458826108292789906516370586943418036138460214676990726118109176590469407463871827529372546422776860262990186688471435071737796640800609548910466662702223163671710345046803782572907256669829504749386487273249320066440910872327290157296828043076788610446756061956231154576213392726923769010700128227253238855547558264373426892254315731268094788965307821623080477106471112152392047619291912447814098924089019332132170427406491247638072221040632948752455438296258126720023927588331935128651230152937397602995316207721352664503558984702263176044972886900374694918396976161009917511015972387319462556453742282455565490125549932886426381844314681607403632930388853183021550868505016479293087751207415276261754535722786138680588243330509301922476197058783154409503354391903145554577692354862404772684506704424216666984382914068508215081688541799034014215904015677778802391637112130764574363433801054496306641490224840687335662358166049745425132104035888021891053387039856261789410471901215275035711084775221164830147410622538533965762387491925073722561195129573431726005321878985043179517892665824308642579568488930797451907361228545575794770375118865756363507634879688351712868832523570863923905625082873820651417317126505493553581220699820933869317961892540172732924286383555578862834317030141181745043862981319136513425900252477062761201170426316631761463521081372750714305174577610574137900079963786892069248243838004568904167618560340059816377865678785715476538721602487369522565125461641796788702002228961301128366019397694664605718658022091731753689159151367387127467753243590962280054909991260784186573698288923554145953694941578944880510485059883514339668915581532872343368545373385014544144095706336352850900598566738859437856529922824106432474510516252257817929958680688964892445922802019329649134211791044360851588685309862234876260155288198308044881015639837320882525791941483338682798743988254979368168724594643618129571503109055956100827213294237371030614760300630162741084258724954781745722267495802007993493164868427460344622389185268794603220439888297326943144999116474162490708679271405288858026864896545266384833955824663400217901306149139018311729104159419570015279800952240194919654925106279431569833373546009628784414528554587958336263978524044653194202349990895613968381910031700964615583456951203086386743328384465980625430774068632138185524927702192379939450117835792554732314078410642112391108869874991623186004668977671055409834065168817743870688692213889464191769444448545521965209600503040164162634230646389538215430927785639681593080240285893271224766898267932816675086196752593127199706446136409018265812522116027352206351229923738272609556616768987647550435381981838909763915975409797923616251258576178155926128517016363621520173751717668180834043839525117414328549468811264999268630713074451089561947215307293783448590234723534000268883436695592760400573630581459445404664764266908769050212064955698270325421276447153304210581240079561961602942604068831996967480042582120618653639264843903654489739822241778732066605800650540395509839023842859660986428415222959940302805117296527809206905706733442707193847483219794621961220434528827043284980191540548203787814164366788326281925092151394549953695342096200294647531300728028604883893614159974706388789217794585674836325320021186964738998567084867734971300756106196201038829387591477023854951665719073792925739308880271184267462060373245696560572982636528549757735261798183687854997251246874721044248013415156643572840886220735957302816917106367699693850173904732958536551977116819025001516300503403869157460744729116867449849651254792376934695301043657749005008949315477469018030024076124552349326373156216479498310571977596313950287468111644439022946144694102397476659669567361281468816454629793971263484269913552951855781232509622597744897646696123339287334001356129819091504612112048366562845310909609404701444704058055230826131221599114461183087608187609415776559822410225326798614760459036486391599043581418317631223878096909777380170750087362549263234490866847716387589450426334776030793071781936193293565086444944256080894874110260007197472362611279686093439843777693817653945820966467425153620004338358086952638547010437299684577040925869373356680729380000840253588105768132471314274428269213936508999976356366051419939894793732491156867456871896654068185758155760939239030881889956029358146170155507938280680195460139415074462968190094996351858153740678044352166418887502334601668149297948476604990885962404797222202654054669450344251959151245451342611134020156224719939994374135838199331633384537461530667455536004307891035437469558922062664245884296973876395525469797882212271484359030616656920210065157486271608240246486716848587507273845310111304331826245930006742021961175593580619076413935426530526058631747622635482438988214861196160527044766090690400268385184685730726929493403487794607225241695376291217326624879200947474378493091442338788014800650786013362872470295834654301606420794176671416257246996645198593380955720638252820828861494939698558162231610415856733970796466804873686076894235568524079833339367864715227409696597941293644397032656248993935005762998785611739235746056375860867643418319318134107256625879112395891729954336217501992455570010929466483216023350398544166630867612028216679997646237150703801546404923883469855520821249399126774850511992326582170438912140261682689831014767741540675465544264893614347952348558491798864733969323993361586177465028438350033389403146478573495659611301801338688308318242166763495118637495503553629508022543120244256152346263341101637341102079190717148674932102341607706431802001276055866406548461509889763356115252963424500279519561375052883431756945047098113731290516753989038782610968295953960743995047533548499252887537837287429206550060536078554078705299666916650260449606791542093879983604883103251024653981228686196069469594937604661371424790570325393633160517558150148332379764230943312664639432741175358643506991736380571643681814371065876955806910365304697097008324685593551602132672847531399150673092289484162460009592638118759518839705045147671258845603807084738698429252384438302882348031302541059470618139349209518378420788339790942703863738250602357979544985108212531991824818252198740897459090367907692686426233265235008579678447990927973912225387270953837623949798111255497443315012773306447203846056971116025081028163804761652287385411945005589429436142144661349573296702222505685776551498226591379096755638107669099326406269738693244540902130451271101588812476789990341008207358470459282445649474456322834675592949337166298010307356786796247871340123484873566044118462875005282534932149537522419058948989755470639637678466613554129715361489397974030689539564461893179817002489427806564093360463320040308169219471375852904580418150381393733172325586632673807015119006896646883713309724987417953456522682277909083261673485431786746247025070994168499201715073452036464456227680167192953534749230577815013370981006539885800225736757550168195781773199509342556069591927619990037489308160111117821281718457915142058014764591785718040266534222653627966371949773697183725339321212152692116342494657423078132195618282326354494102532236691225443375636889016227695733941875990671009812437824644909163253803297936166202084426268128530606071663061801412992228145654859187659842920675464281654943706674188289298933053893640879393083378211552557766977147691986071685872622067839062026275007235555870322109016587314068850203090902673709182775761495713614900829953209189262978098684271419314254616491369921960322669351369177439147915212102211486252834864914790359756702172006008331220680591788788996553983934906547639646097509294600999444539917087435557462690586069362894345528873691629473745574305461116667269539633956554125998642345969071075941683700728268723823108433505778900586962415091761883789294989298356879166293389238290249780874668047996953856586482771561304356396951469105049384967124098726255678698670817004681942973511668300750201884482341293251509420578703634537236055132636065080851902679880434666231895148829903960295399238389331448497029665870872393137994624045515757180770428494226167596288861531128315617434237768356661705305327945665064751662361099774776158953528791627364009124045295031296829780678562543838468238794649402878382744797443449852190980938541004360805793531401755526149361275319066380013733024851290991831083781071044070202036034852675995782856298532283577826944287561714958033502786514319499038487565858108938721668511068480511789229689642598853048441751622679947361946829282511017536307781749834166651533773360062593233973937013948016235484292717092753225242724301988695724664909835893514430332995281672343756314039540606899179551909643153036081588603850112349171832194660622405904049887274941972668419829961765244177728377673518411907863957362053894042526683987227604456234776478336363668299467869564447911537615189465396075718051945968646778530635424640539130578579131386461515963411819151107611930777364738091495646464055362399573623505438868933660523449198346515617320044488973054857881616086330081231740840710419467058137948095253420276564617453348638625093109356951376461671191176405765849729111390650114691513851172298108789299897923781861194038741346557046260277800686214512276233995179204758898555773453073348069178195674758386935660301126129950850558996245939974378025589317040749186564471484175117081244242853363981007864471163479828319589111864985981648112536207504958917697155530012499577150590417307406504444499700058586012474655569694095090192582094430160541733539894047148029662317020290689039840789568555523680177374729534390249790815701049161412599928967634490013570615134450122963964915385253808832574970028135706585487098178968888688947094666104009996520185637077238169003695235339977504957887640480773789884023652929266455803721022818255000970263895034649638450370035944360200023310290715982922068324752385646961358915896451243798137016200673674736140013021997110088319437461465180842694694899099841347618870932180221124720634992382334181057924548802986406180639677867366671730229062955805241026429143995372185725752794011336761501567301061908985040015181082597934912190033733670990155210796872220353787438345280143740942748180091318048687349119892989203365347900000752139359435147695240969330454915504077271379072053976848344118490364695469027769207959242378884649081301377452410604796068452220307459143331850617801779579639580526696698349857335810027396591339856711329851814867488343965634079202570853805479556054994475405713640822480486663774110102457966963651423046727139350117722552567852745496673855425838986845388185037649936629857203401171399076965323907176647127502450565060494201499533375904659973774752701448186067235020861885148788560373298322896210516743107053234494240935860788151151117471022379103579937793843512932559123073080759202291200509314627394220019955294576503862903116619803274936110158606504147721894696940947725749467960075786590213926991032949586871496207780402088813460870696259078128442810723020882070779199912113580387918854254210938962845000240127995179140323215423595998407190201259729460783503193091211399636336775574076587157505001195688347864671085241285763299853385958034010564241998217384999481150803756203168119898774024772389409435091774552997055169966169610612170745868781495771926724262349147031028674089882600599734845054969961027410751977520078138577620089567127351148645508818621081451156300410911137130588938134654173644245389349459155650094616509587152063881974743296911850111346826345225450354964259859418440579625088525188388572243236634589764501675733091779823646090390414118844782275682703061506256306412662162556620391613004259220553022484915571042947062808527172652067674856235989885293694721634076016889653456308350184625001041453716283555392027989566249495309148291605581651369525956661935252513730374244863704855386805879455873050814953066474060700906757770703652432249006624384138518816753176202125587446866723587806884016625918104049947989212238299525330463700110542265697263848052550797662534474279673328103224332159366027655926515946784663040171208372827879896688232679176198136940694949395024793643843482177265205441218911725960633099875060491293429521465225039897709864573513650277730502597244568383086034119025082345535884740604738343058973801466409289723548172992829428025696796884221048200010876104889878929412735889562123669769275673712678784689677557825579040910785578582319811888949706332037523379551631991065895622237148763693746892071830912847908009082990876143779434893364507723917214264747835862781042562518621977109158718716410468977688722370878972917930735005518661359876537287074465057900499525854540343320498100066209331231962211133417187177058484766148762339255785771467003415687680663642274992641207606320879284074616107000148962326889288748812782507361759223321078131327005769189082141389831090674457306454680385215619453619534464928057806812164773534679710917132539127406943880280164684695166827281895931002620017069805217641985508534491161654988846117394013899646219934803381346710559653513077901036792035474796398980259071225793737542962797148209759598999101271179990190774154698093117341048382826559057622889393634814671823112962830170951508528285681850485558165601227385945796491227615853499700112772378179190370054670524664298088133562243611978727412682749303369272484182717819143377476588079586357183195884100588535834056239304347945930061248389391642727190141154094879972268274569056225647882527019678012809385447932238948374687719896884910498240805435285056986221154238858077584525267271081835780039037859141548426284919735781126404769877644990919441534826880719166819700990169701283094701347731294972900001358359537268357993121777665721029580470359729385437100512240602492830641066348598093770794210007115669597073042133541609611136273564436249822991229736894165722479566632880820386648236978488373159971905932721167891972504685864790880995043180624590684565336485814391204492453152467299054712745363041307823220274822352985842615471845131993247139302550943717602019178465951139820430664050243408437249850663311518492728746396311789343155741615501578802194027306402879981197762766568840308845235866480547638389630606001247448446873323704770068211504086215845739337069615741085064848742444834709164962055842529801062680565770055945615412351494316829759675448657188243868148580187531382375787898273867399676507492203155480826956369550362701150459098488467639658669597182840374359384335432267463337180960743587671992480382686591976720203316876652670422829206631751370586831966640793072769756915948287909006470270334704084821685238751571564017842791992006722139502559340168289241436017931835748004540096208268754557563711747007791471636533151341374624184914194396731832628176647695743324219145200678913435773322684151306536486897461356637772616548648757189352538708133036722941231695371133684185973868882390561885717730552742402073731424187278204809872349187220340648670761603454533584667745634338151518310849477561151034454961564969718412474402038047998509033879636409711035609305801547758250152404950385550985157278614015919804180634237033740663541305609368845964624953684543603580451692516229875297043479370840184072291662822750137379648674386141166651213603748564175504668616884212480992449211282398827843198911130246811888559773082536166598267265144670237622122100977346539915988317698452591572888853117476341835475593367623348562793751030380129606204350624807071758847906645354344642334631321193719206981205880869453185157518166143502075533273208264206233355855613234912979530454983454907739408469748121554995409296155250011380289811612553775457675587940756454657369150682881321971407362760981405874932878927360323358132139073529271663854707748172232033997316121650725410671349820883732400182846936788144845184460983584990916011864881331109624871123594589027321311219992834359879643707105296811442584336404853415933406303617519067681558905322633687473255320326593342335829926614457021791530206174258915245908464683546663521710532103167065892996163826306116446071343488316799512714890781460699022649333066569374834573430296565951107360686678237873513331125260016866997875081838272985487417592905471945953344306523363925053626565428656267616945670409143371429007922490642967510630453386687092396535321628219354892717639322473547411463219393554398644398682380072297886274166463002292355405314038598203644910673578601738155244272281471592234040074197146519558012609851222066300077740490630895748025228876225854504317623124597181344252103253402044818608036049580975633040701003257211030685012031398684671693977060481193644868645049012922505470141365470319010695837148075047256963110178973019509582616351055503905900486187956035598658973855278289759583800352767721724835997694784262413528983187782182700605882362805879149185206349348582801243828795181470872309033626302000699667215417088334404520053725416094450272447700133983953674047511501195738328622967142011661983441949864938878023582566390910635608793417010344970975564621471034761998484873659687464742793161260040877436359228053362522551225500123179002280562648029850115351618786822196454316348295345545707877992781442405122390912467484915117869469422861795900172038453611112904958911127496588253272114805669245591900805804450513355848868713956254239772992319955368341908357919540065687500486996214024888902010473916391740852315457906118555171280153468847375752732697196361894950863939103821223966535613928124364615887098600321944641202408777310002091047265076822983120610941104820235949063121115994777123192176007087132929961135919755412291445304668263997701857925069007713639978152573007968980351947370045907509611347289709307181162574102667707591090770668972446769738563987758299608539903628402454716410974342575721561666284106668740156136568541016873691828500579154259266237744419936533331841599413247842837708797288645390956048533513738996233281546142253467246484023833158320974818001064332335497200379446120208943610061925789579920849739140833760271926141628686855738791296064942815823095219472076988821536371496645386277435365455182728042330440699565182610347890197099156344295989720564915228750437270587788216063503396595221816419212737487567783721526956134440539568889873008958708982064653325987325202774120132105841542291993248448734163302639194476423037101715944284322957747373731459892625887553869636409407486209879812573500249939433020164709113206357528225187110149537404978039654712613845543280867281574995658355334674475238989219300334816831551111018328733724763803566618612280287769519417778478372092193628860458377245395917676286379762010889461454476491642009944826546701050379991507258868962424422622143036337325152738151924673348055005045777286358120751987818143589456697256806900573797552105543197573863377144274040163616404506143138333136581256199681473006807046812951591598055795752932113026398901475813236792913597214803650023692461631424174205575894466640665006933474963222482269508801288303151361989820950977154758739203221048077824835921955562468806225327305109787628504287243840530553921542637984955342756784048559232622055510586254750643297246493491426846712377790996158601600034527804760904422113110806876420252143067483329417232631379697596396953970132609172463740163887478962251735403744023392025215203021361194693695440122928673163395616915299131136339114605511870242914688051688003440585966240398107281146058248802328036599533961568065549593976690241743484844543618172185736847093986408714503103427845835924121301939202957577755960074780414196720183315371980379181475432113175084127058586960213840713635787172704404885955756275672388786050081609191090042665172878489881190753726749268950524065446507766045886511553555492712203127785136037395082557031424785014613884599418036369989268908189269756330613266137412960658196154028231955127836642362716408384522129625087580234285154880209357108763184531177769741541966053035447240896174583521585264584516430596826904585691797423544546298193804759845478509186533458512143441282745236287834801887044558887820588824410017598480071226576278875491455153904075244752326679998875932284098162243858327914163321895426447475377855109836924997457051242311543624466321324834157878350977981369194603184653466395638970658112581262540664816014750268400844689545034773871562862223151782283077257262362029302114117324375408890572088140765218604211376197730775060495169747261129396646060786018507130099278930782919780285033192249600243642795460836445805837417827605567548561629569890259896998508964985570804987967743350610612475862514752383056633378819347783540780956687336773969573586072350889622807758935558780409132086955178667930904135496634548785374102455358799841050195624346244006661738747877295477566855213006131519989668886303929480615785914915645837425124066843713290842446018641368321233296911670780436889659832030438744274169264167717492498805285598554696124616047004954827743329103778554509398958255095827984893545977159439446743165371783605124970031570885797776008380237748302320578741174545164444860547003723308268272153698375692200426593656582560279363462523611823373881419150715754204548680353854918476302596464923343990537168553686772373726711888647269485356419772758966233006410765260765406080641648569362199574012036985761420913326669785891492890256391160300914434203044167410756419789717173050817102236316092555192913787078489335944031349160743086642142280894693930091880669730314906959779821037561228430305207664176181914913665521664951470732967280331103728037387736303714909899092348570334499747716723239260019686284312065758998044459970697816514219848626785322075828241582109680173489891599820151693561376881774358392799517670648577476273511158482756464616811186209956572672935724317854546616710672955144126251332533553782152654682352863578781405573098253255732165570692146006611636541098315953826038725452371080226823578000342403192705954894517200378865713739716978091779625735993168991849323428803839220444878122070549643775920312935273329493210704245442169288696847728138248694474193784778719888307564056499853842276741999069843138177159209463243889640697515834400006478741713137146644667355438066214588588414596172001856495267038451007224305781659343995912652208495258748041509416983982815349565758166815772749775207260466189515622399218446329178587576190878437636838044512230326493264196173662313887221797274449628977123653112997490342391924939103943486511601382941635607714296779917413119452707666189426047736814686753363116536538528341479525133880257685300818844612322090527816767305637171117078558231337652053385343842126695995437826831284881926863881927044514043120838027490908597545730907910928387396638010648073538121628667099239519870699785872094670790031571507932951531180265995047758825992546758477448884805798628904735813694317172007022443819218048635150686959269941818123110662965308093456304596290651996850837578327329555457654030096408364587123020519236949522853965985834269029495514357945050176263493499713509438494794126203871637352119886629731963491392538781685915112874186729197253423931854180316591244188983894373751944863295539311856218043201577214455022738242684060009065435612916672627292794720002008758024578970033773501825523409103645236853077000693818651308892412521443687327708569788161336548939967789605054801472438692299837264956824962360279441153075768022734109110539305977341990645781811781108830203967737704000302696508329849799352694569683199812920861209093869788411074787903472023737432746457766832479271186599043153943359184094612433242823618598827110092414130342659107947404389517303133245137595535981430735778642388074559625801758437386965897453962531879561113604243978593031061728272135943160181720393926079022221534082448401511815816480945457618298830725900469429808834766082230437211802763920601225309383985234205486412969393290708896186590491113936434183252210127706626398258570270217802331464348812205467600407352451256919343844588663351841267394323853718061155176285820507741196888514456106822429162883696660506391011116893273064139315842004259112356030745592843066567726745691341006587216352364088458991722762261319228498222143486844125983163619770046618747930445378528701854170637668725765696598221394275309817575820764288322301746237150552950883017296419705924180988206571067969351582779887478462634147257578049179035273236096876962877760298688949470684513601640739049110779844961909670280484112726861495653303778304937328984807476447671808343628636503734394950237922867106003532690378486301932641708606743346203581335532894117697557647712723882757192405067637230788573800321307564937985218092408204864015201465933094018253210343044865379202042794841313279661792105592401475823537408377962252363405216839687395579003777629322049539681380374016813452543807577129417737190269225815239979066868633189774216727173235530650795474328729571366110431820840599901305227170204923537421540364770847691678849201393450089520043129389440577958473872671598803116362798714925894464547064438520424608360811928050988299325567958314049034334743290117317065504462417310019837425213733567113861165590718447202861372652233726626137344948395848883408684318220163998144914809594241775129898771658282347057698440965800840215849339425668370249464937109744419843128983775790458712651988937138505090674737763031450296868276285933395934617717833316361616677538985936079235880041246113334256575599328086935326688225334643151621943782568050303302174664724607729406646663879882404810709084921849743535755084435886200870957849914057309448267177469280648817861607848590711127379283727999914075640942232625691864758332074935080330912870334130315551555378846358026561156298743540581146137543843189270636126385882334617477138357991272896594798129675475445927310503248211756302504269919862661607647598265370484605358163321022673952819663249791697769721699437240518984351456950253617337452447637855606368754322750969748358485708593973926787478600896573673134078342997908235730725690654648354951535126647513909574354758208656056745079063864331893678588619684264259093822659971411858926822293271804561490635316996362098450397876876455328586752887154816486892760008296348978640178099582106377261360149861935314980991503644670883543600365664291248379316595390039821940449581986573146618017883958557237464751638559316430724010928020539432008917153312105483265031991043010535628192241974528395770902690330126761959572599046904912060936803967792395588273783143359679354836408845249075757000382584298438613249109349278588671405412587601285895222459533048625971913380170737440354474867324147428779931942544168473262270478125233735770969121809868164409098532680909816032427715219124068393602270325341766668349248695055299679679649607880284123414689275918049744375405365316909702498573194500104543569939480551345641401648837577441078781742250114898632728276944930089075932905340975608396683830965265517883208146286038007539992646682133184598380501977590854662295507078670311224176049984242140886746088718970581994460132589922322447781481114810794834718863251169160263224175526061876640830980869401070152918822333064457306730916632244404313621605531776414056227879653216560085091912122728745683135497224943436997936322597162068575394901011122173367233256262486892931263319889607931959276424157965972252712767857617859808122922094501078326045017801860131528913781737036106450779174250546462634776716877402346899837230463919067584840878018305808767211539651903577274290668565792351918450205157906892907030155796453365324829257231951330711083423037386447090227402567529997924630083754951305017498442029430304640646685472849055248446403263741405997228482985789567309411412922549328778512274147279468298836997704146517995333798564103728228528285360122388585403258219815588842724139592092605588190998201452209644377502123797856394624303692231356028637219915994690818660427688853150195571399364161584384018036981471111931415263304182001282305379628950187126532513731815900825192961616777900788605302050823008111879353921715939511099345021079493439473340407823429403648462674794005565123445363777453760641591545292964644448350984126995260396016761717923942437274526680515687922988962830445729560223757930933298309957745982488187742755131761055875434152284564953664692231460364037303381875327404832624436500353833885865089412500685012397194547813197755280228937274270266676090005574529583093382966262449058163757103834125411829738964779200679351682518525806078579692373965033726328732658846554984241713062701620198453656032577196143389045348068155712913333969505574698977592538613095068666412361041940670483696135245564623334193186759608220818894614437698972305099459930312191251724038063456689735730850700728257742572754275219862045863662959989991262949686876431474492948176899093048052495401910498780150706132579115391576325554333077936716166589580142589732434960576163593405560071020387485497372562437826425993415175060843281590472633165681141975533277884154635855019582305251138222050062909123443445130200120702577503805098728022170113631630129320333822699024210051217950810587249903065056162484353347818428888301516911422710950526861231059669774711029344793480645497828561644671294708433393600545579693073209548450071210804904385754665107932357371533769279410995222137722963478171350684486497324407382831339957796139506630984689030850728015293118467431885883684241615926586487511386323076522596672500156708699753162154316525221142762287471178117638458998323230269650254398484123587240310271677836236669284179987198980475307682441226756536735821204190713943659640670334782645590452440431135024298420052695207876663309055836963929415192961625861395534344832450747741913094008582610572296553858880589491174116385937580992240371044515241433687610804986264924805884602474412099712410424217503590996850610867558064543534601564976487962054630842868486597454350064522021787299718931797187758130781193637300729137468716897373532878294440763844691873575452769892401333498024223234001668607796643280723881058280828349218155637242403630378509186889210960826201334044314747317936757297815700822361174863377271364690076921232266937367275776203956119809012855896816310988695432241681513226162473225199781374137049332147198203067341819976578166914976655613938933138887770109526144543763437354780946882141094741361247765106792289223572197641612009313267639598497100815795631981877677727645699010837905482106077728246084095510745570063577044283882403325131809449631065306031816423920845045442367669589355661965397978395757109221187699362566020252745132874035011671034760330954168496249756235255526516718540038317405554736384183613817372043573217533661538875600747767755474924032846486828459754255386370647743840438349618110774157083928567696092945600270584899536482960505279673088806139737030325664511569978817515280598787121319817655236019637395326259874698944932332935193448201200307630496213899049578967458218647772571462656722183753728754068840783745417264486864451625802463275852089591176928915478200414813820820326587522501558955528182537402696397356901736037346169558436477575287186880246954800031099997199619281995155282361262781033158346217743930418605009088219502213434164902572236288493090921508339053275158939459364615690139650370634374078623766075935329230244117029895060569629693176047131090208354594956626357233038283506545355832149735939823784746735918467020932718474864031159444291442459832559134856003500280402358766844445409478036453434877389362579644148530086887280187011531388402063328726993443065023761434792101753008971829671294294445480714711323696803883687580929920368162806120045791642001525766753149328334786028956654797454809428600899645243725724984577806219154346388289856148142876547986145080654708264140325211815022895136196213528143322866062065747108561719559006822464122732585702333561287541635004255497599131421285414162719240573549252835247293385879073701748279429509151180800498669612285399309048457770446796276825059000186548833740013564262145084914230166915272001436506536432743059839086292052846403103022174907524082469100898284866860824898286598783246998464186890479276329120313437234384442248649593602845224302816012267102200044425282782015204843865621600770519431571435852371272116623142280074010841546437209770921802726025914179316418106807797971728663465437008487299694713660408195613520339647968443346879219712533826490748322692075327143151587124654929361569449820289284401858883392595052368687925506308379492821535698733157140800561730092619146130339154413870296541225532287413334534154330127648980925490555770884126099723386134504733744806124066283509745237108803206777254244289270059983668468128663972055804174518423547504445124664249444871712135268417746058920199174273516563622630055886678836728246902246602266405865495250356346530384220337451498322422746793615809122938008549026475709720761885937634501528106148615323252285605300519679529634806209068529615471684648135971121864900142891510316325504682927268380908063502489126130840126309069111352602409739823242444631769881720765313069943793893156854300303227732708471884430250540493829214441910816758547656500244666230975549379254527998077400705905144646028074468360168163300154687862852554585853478909369614568164168165990906590367838817593886083329491809215827501576638394393350150723187187295356915258049116150461301634617059255397513648397665665571413341527179368906699906864180479521493424888624616484913792363572199005660807674652154859073600770795362543987827363899491299523798981968956222604417557536142356638078214155207948203681471044145711821929356722697254349716799484290575469276154277612198986415539841880386846692079032700899712876822373675111379264681122086820233147178183796185425617239655704342856086576981220962133886126915828468031599947706563842714088653493342676571556042044699926341232188932921518139280784407862439675976683211737803959170249888560945594021311916986819662968097823227910494846966410435289205938110091143580616771351534561325895813129780387007040333847646388095026931710069123777734900431516465891702072232802105855196388657994974865815639688534887455667310509528652955178366368227168828855367510502212522803071311549662084006918254747174521787008196713854548843981675230139289693373130878325195714593568755401177642586068416948725823709510435365058936369172781018315445760628082161679496842207721047540953830861461473933958821550016644014305937572434449173897928347497897929456243689982465516525637267135463455365601510752163330328585878359211144552476860708929458101308118301337728309775556785579033057153763645878012916090523532513181772680474731302144948590796658864219274681426410984731851112523166721977991893680949055515519844445900643004558423703277884579122479675182998604384150279255934212348926896804341800900481940900190552217119586722937015569935874366089617309411953251046342670161059652719210461862675128333416617309871042994087448385839553630519259857383825767281106410716123377504529397580977594205305695296688470045531140100775937102224801928829956845185998614045608767005008804637688594711865896771681766892866235701235099010833988198887515641864090066171040947682277930255459232416236638031776719979053783138467735007519743052250649245890174064279808253368085366534516314390642289020272482001391466436888838638897412224819219725699036751056472927013822264140517458138598932167069107727494525253393704445472331949873126237173801181967079591113040750990193267242036862016341763342689183323358792551816252633439387054412995165935883299383682391579519790002419997765275543773161555177845413600162541742193449504727772070082966404537989620866624085509971491366073251628104623055590693871249441466903451004689978149015373216561981895742106264886567062610028336426782054691825081310068679179400928833147578003263255428017754347670969443823134346993356756918776263098000507812979597431831936264292861578760172642300974836060213739817731746812040927957238781549731090611827127268682520555693009526896650440888450925268075997457787937394062015156624789172773979862124615454684939554445961960410810393417059583280997088286076068791096768074517161322658093413829331338912155734628059108661361290144505208042665897039986230228046825682754563312027998757102918290751378342520834028847735105886211122283924636403088896000605638384528884750659002066054164883438955925072726164581292499407495043781251252460101190475034351900840574137631886073773872396839314665339882483722770053086064240209581634957663646016932460120216779306341359011423089928785999944400068783828518474885717285905027957518134092847747971810786706966580808165628712740446525462305595987394327063293320970444723836589199588372576440365174307029869178121200392432276709416507811960104492306415422793824319211875214386989557251589863209496853955142161569626397861231754740671357874562327115545305271457372529103935132182442008287248175643738078296634976476689851185223729083209535539173584115009676742538384691420169516732823305315185177376665584115118541610820001885355842256572826177532319164057642759441293391162624236315532708147209498634754589000864045813184141463675799950160051324324882765708725491534511031874583652274182709926683405225206713949114785892496985723021119444496704197691928899828831703110850461606169834208818881289641590346532717434997968692655108036623833898960428650482988987723301964194228000126103437618067627379174059009929213951302271227863234322326412885253890393715560840443104576024976077025026411031030885940744669811882041233309623494824297626083217725533943371201598003812977980641667205329277157697561111698947725817031347881867740502466760090001206758722367958572688937803054060009620688531170445610996011081949817180019598163764937000926950869234775905350008898612724240441196010273005473563837634060956333577512585674246719220964528802164980341443221273739585254488872462639492776976561568900945810114750781939251931689939876885306176599580267755452960182687118235655137870442059372195673388062931393201822609421553089816495806126404273349729930336192514263680324999019698806192942990939025715345736208481378796708110917095187068549412054367802064972437190092084551133834180523918513410637154425523311182321876517591811036226456824181151026488189986452467281941481331235219546681947046015619584235147033998055063913792299208111113921347529810425911096045261650204382718449599589262013460779284824249287033781736900254482727808492176660054103318250699520337250179854021131685984506917288639197941451354107862893247155623622772081208596801740755216148304282228838713584231746347099868462250731034888462231141687837576875470694804151799616113513171152564947269026702385618803268869298029940356522660667381418482458507738271583211658781299104228859012548539638166737098326686024743252462382521601236513891057112029399474729603566647362268016340114184641714338652359871868522840217638296357532929055413594253851494071552117662895414572053449457577125173175779363778201576861443553363732237050502285673392394896357753005634844730153288632537255370309756141191318613906338812341752320923929954175975939456588432772768995849617496828164540839520693321405269165307855482854654907162812280226465455879068516824089666861264272896388112502654144510399124585662866288475439358667338666697712668734259902615014382587395096753818759945184914757239006455371822706916468446703926153328989680943220328709167370309963129162598598811325991228298526583538195867043178209138617211798788382004375987866778509616521038202451689208932399530740601304101768983226534045859970449245459987814623340563674846039294155284230344555761471517659629882005816933726867605732249539138998561396761671633247107382852689661100177574812582099588816132358244105768509507811470317447860386649049585326142273776284802045508271069685622408999543788949327951786237419656533043152707227171668671091947618469988169101160369029549549335524252773322899512024951088261486277533189205090345521035131946805790590634592855736177754055026266084396959454628202030027467326211572003895557450358083115039734853696996295902856299352795408816066026284035236114440992870599189698371216413940748823906343263696894444746698148740854782203642716616571343808532731580134778688832865903531645203012359882744715588908907124466372110555542048803365177446932293933779244038494562739198079165674791439850229612433785809903366715352452242913919118868004152366479783807632058135501058153264725305486856358955856977757592487803009013543263879230042295584477096290932052603509901987674039707066620816784565931150330469332436805472519576227010882064439631576823066285366274071018679428564732937758510765400793030308818224314260187142606744166397480054542353299070860569348104504619575324708195795612595768242958007175500273578206708953046065765538248104442557340423315803476253332076356665061762924656073039062740272812140405072090502772518226442675551834442335140991063948946316375987508215004188406339913851756926561065416442751755555179326231484028052222445387123530332485898853591914720502927266588643624009730649306222681190634912556988919635817002219348606130921474783114975714413949056862410913106459499400838839018595506001863940397453342710762391836978664304335651397529961995327833142199289260037226812476988878685599030240905076099806786384322526502772059523761989981208190823967446541948289788047594693234751540837787909078991650487150017402748633352628562417503915784005405139387025967545780500560189555812638404070029262524562697257721532675759528480231862400221570403633033124682512549479841050315865081093984654398970311183630014437473739519537278052797271219333805246951196691581352112055862583996503247773491252331746159128906576318486622353735291409349533300146373853600111999645381175689766938482589273337130767880697523264519798749153264871088107334939156431228252817883844880104646726136665334868774838800727138962282345070714651668347425010789387476648281591801960824852263629441213671273585470905582821186127841676672703841311029486525242841431440881774414539306401123295624631381459015604871136613520594711838075403030781776837146976894640098629704745201051718912326509099170472069589928390197710665054181095628746761897904500297563466403475773079197676197635990031279502880512398347742428078916109361474542322782988539653801637504255761418400845625137382674046775241898641897627119939448717296265192775067982811957210976030490591201988296124147217923432372056788275595003172424734930303981007258920603803831909894737813207490142041809336605151742570534960255525118093668116205766234674628998508548383771946855518507504414162964476066344686739358961263885929837382169558720450096910723229972210670993251783132785197829576433837122156567839881041804344936277076511457246046193897294791210729545681367066077692531804061160667893490694272645273722762324720155449824686816502003296667251254498121236015396150293323723393743758931547616427100959733206454071673398567305906986322746509629322664413126842565044314541611327282492013841342058171519055650704032938758673389123860318381425978926315223193048421403237669178966569051338650322665061221539652828919809877338797956862165035629985272328792631139906085085302298666257072667007874414172735757592537571593734291268106507083019208548277756332340180830913439523981976627175627452028660769368154763261795298507596770510286087604708768203397235168217529317789555562862522163356999571131817145362915000407011891280161946331470237093190393994962769283640439955620463021333060017438838531003005220647223676767030480499975313682031890340815763497954645660697016486143361189777395253837856359543397204022242714061366568555005732163796606372426472988411923998611191935730963541851000292391982515815697195781101263170920870857792090213815579909588329972529886048231779801955061621462535886118460235567033755502499401524982731008796504821240933704677334121821303343286842379486365004100638315651883991140398652520268765887190208023865308736357246999504977611826474451733890193832478477099910583536351050134845094292946916091767177710426930762693447070151256644153400749799066439009414214367426122431074381881691011330097534869079202021678751036004821398550891379932285241483524165175156634066147299751352036989215114508042439695820909788777085368573138192846446823052406995286982848502721597028239792922773931058268126716717047696409142777457832173281573040598069891272089156386978365630764499187519792650473004281638693585044666910687580277365153789098058319946683743060134803039548017761109418152444376504002457561467799349115982827132081820685744415003179163211116808519103426535167216877126456520630370519601863574119042628314580952195598492659645347592779023625269018421906993598285809166556142788454040272170640796982984503286033562735185139369156719812410759693967772291007737016328371977477804701920228702227985262353052433799450458235159593738091075090549522332588245484207242264706336484154304543151501278569990291093696766118439265050519500662212841186366969791385584000889215727320295161399624112381383479835157886661430788149699120114742454522672332942201430347481159556970666246256408589513651062115113566842635325896657555517425498642569386616504150174005152661565245069399792472596964652033458957626267441210786740166827635341084083840343601669043609614966077337589524031507919131142224636562513311718145103118634043458206201213838425120597099361683079396340273998401139210239957198616507793506699842850192848886000730434633890993368935879611957950477619138920813016601833147789113651582647933888416900153856072361862611626867275955941295646456547326270995755014312691189554723204618923940713731599781312675680787604750641449341867972289401773280350917310856387991524553773526489377934509533421337004750202794235731661029976550485503670392345528987428509255209303862425966375356424911463884382939882076062862701838161505532511030841213512847506952649691975526313748295655902006981975544892101107047028513735647163861526386603544577060028212366749291873668977856531035823547854954704429604167835311859651704058059575426674067570598208728758632914124373007432195677222121130533152329384544463952214166805683797648762727072425317459212561132240114437331131485649199319630022070651313594828952322851802941982639103253458935499540569290683425601550490392180826766018410222901716997122259706014461582596438497477987873044577836322539206149210817836930502815488350730467254373768247577126101920360060941418580424454425426053622813499149260968763285981324970696581218496460840475750898511476859416257193531236730163378772508727019962089222024293113810371666734245603504487356282361849251739115549202000344174172683354768588017563591837385333902117149919705217340620341178905668418850359496074461951862552274620935030109752113776164818088044188194674748550816513140042996306961713267300322593328790779644300588926367637908075219734767010693693380079509820654465982807341373143413578504300220661601824986568420713558222404179184991569888500421460943907413044359517955359419684656973714649826579700053432254787389828369204318368721189494255834971265076663608213039366747433303183570631313617105892913001380221887149696224536967641548705577633523232442739864943907260997935419646531321643561856350780699218255254506223047321436020965925084163383320831019543126503475645031581272069732058969999169367853964659155741872720780640697669379623461971989431491261165395891269254841941442117240930391670058730485581913846342166706582174721962015647818777650508937668448027376731522863233200710879639676950400498275412022255221666628464267200585044877668387515597207555907476211953735368617838372107631699300662807679995554682211697877945514958166485046430052998590659145867897043742760134830440030141707623119356267251788424788537452010673653151275479766927534616241811234152614812371991568320867178838935818676278408247068246788257900144238468755737815301007888248684612886904197025047492535097877807194357559756749086745384284592645401620844346114123465362978487838411790860908087035744097083325699327601157590610969645712890929283923917336836977592716171211435028693805575635491923182637233802964312508525796276165020744035180348474662612364717390570315312580556020646666524352270117482462866652096451549508978534884427886820637934181234440138247424015879150057339662585861001901242834393998279358721285411367989458044851983611998965875557323999180915207576942335903422040955404640876842646597904754877079487840877115351878235340775273359361336949183322079014718735559618150084475428261024263498285806403728979335573167530235293491641805108645749470435741072033852494291623304815073656690435397793837281906109980824767208803542898872064127708251674624705427192204976010783097338824481531749929586960511674089381965763520801067113297545700750252206398664868268664447477924436237018716404373969993806434938472354570828235620434895858074669976252892770945761732715762970275209728483263685022584630762172094413857009259582417005650595024467408616869120506074880978089632173572220488823923824046237666346818420408869208197245259445220601928773706884000404934797175476220007309864402769086379927876979719039304929924841618542110089608725058943281048140583413922120704761016242901204472490457036435626055087048523661765742419878207966612284742656205783851504894870308867080584228421951157921438087362569622905923586529664533436438260186240812732414230417303904753438141044542718699927611207799559257087668860950612966979557817892326643538725301141137274002113042447849253300540967676467613905890482533392807862949372674123412478672461595682391717763148460844381641067516941003620914275789391599263535005725966939181247260776300629490244223740987671654541515812102097354141680328999274095014303258453748204697997927940710800128559707504945225967808569155352749596940718552516689141181625101997674407201612492368743489902438413003729194070014943427645771754792342668297608436637730344524497692448645253235854666671742984484739972879527708967550510931428751800115414456467276226622394493961907000166977062404373665025149293782135740769054833971958297650004397116990805629315716486854905780276302530728279669077435183283921257614461751030686841101782100115775711288182754437942874971806404087216684423676602572108775023632591647976718040908372618503360074196093174559017344749764881607082816684186710114012010918308453563089109142756168780364546545072991090249094997552640746862635652215784263807924547319818228913483159167420634138375824236630329582347815789327629686894358080714843159381980660768112791717549941650969655956046422856567690588670486181421778483152837963581086549696160030545257448135828443924687727699416111872825627556673249907001262013204789941332461756959677099128518029047667641437075674857515089208797472434285998045373898611946046963258460184476595216396648104821224988860277527356925330572179727581225083607567523052716206960815070251180024593231067277168686529850789739874305898277784118746009646290608112610623969495382183434324268079240276687738454077530744982643626437361841213398896885210431895700271458946737095919888489880645687783870067809515919325263096357118857306257952971306532194989946341872156602437664099472723090054098877679798668052551919795042899182022906829285473991271345905089198383746822056462316926185876075393711819538618980806838499388901184398050696115533807866266801997703546509915711821148665385256751275405916869672057399776868834314868740739779576055207966204080369752986569484023203615088095467465507162065423321428371373257551936051312697072118961995064446021192168730250595182589233169206690930103953649529367525503186230675919010023324286893943114204395171773620151328625623860750875022650240522506175273394969537737249294962570931984722780917826828305789086287593878112337157545365355039805744410606595804917828616899701721710960475252928363711759441768194993945397992144852888648331314386807750554065625515188679944689377033007248470122292626332510702572851812056204339243666854379496817310778439952440320273713434751205378786035323540391408421261236579904742476519627559486312593816026166608657258849870517628875515499176776464656011166455002229786012354289432864108567466770002617836100969528170095381160472845217253516841392585699614299684768125892414204154385693579065862902903454431353037367918914578911818418537182287358334712631206850034578297977859828672255850055918870766245384871202848179676673787882444191175921533098652169581778044683496196303529383994780990588154680183128771475090715099296759642964222367614266529302475971445512774543579474139135255001834901306926341767657266129315753892756210924034297362003926911376928888540265989906975467734776556473085504207855407354745706399583234940755287615230180693112691180946845858572796934710351285170549513649622725520217059946959545393341371007777556428234090178888465333189170748799701102647153677223133749902926491300485000892321915302119317866958364936370786836809381204521445163709153844189503725201481939384649051649527493675405852130777398517517830119651379193832025925420616705901957733125268466601214709697591776614795778257543418971485802907626114181426447479419124043197558810558779257453823439146650612805788419361133095767088040904661974462885201322382724924009957388681630325215325262649391680410319568063868163579972759711861026467832510428220424509466972107348551756800871162476254482868786443483321708391456136357342193291328050561328598618364206720290767329710657461075327071799670932873969395878199226545812461632689248907518306077294653353713409524100563259741213914396331326753706351054588609129325523618784870153442100819138704745898331781484918585114412988179843338075303825031218335081966650108928019177131565619292483200980749873658390520785573960113806355258004716313798018376164367877969149577238019112778866232907774788738562663861788561958295415659918032836251457274367860326822733064607497609261255854947292062051137788147964217930043121692272539416107358618225687648963196883897224574851808360693144007829710260030440773036585915951516424482679595705275502285028224072668940586748625801925778669360697145628856628495997364847447601756680691489333740141667208384558613868838991235836023111982101360466319316060905186860323023630062711615978028352520904482980270606086940801764442146162511440275919377768850498841145271243161611989935436784897114839097062608334517296279367609237964661549456833990708834611329208642058203854452711063776111907777478438305226407185215139926953025247397899175964896847024739563897892703241393761193855777956338053128645563449933125583146389273992642224889566190949624056026233817786649289814126667574092126526060501508879760149207059271549300785010269220660474327823330474173172406677472119880895805685508087935545514181273844722266970893739934018335213843146017144922308228805672635863882427598736366167586860934659018213652462430207068396310665471793363435165546582770129148551941633349075577422629138945018805324655797748915872168481198629669953562586890491455226912338442458720890847125779119334563116373275397074862061250810586734343736756321853098072100784059541060422409512906651267079916088784328632419210501748664045072721937513470277347759433899880409136205478723723487269378083837903003695746959647844019098795568748326642177197120139414318455148254239207600069675400953490273441254728614410110494227112485744641330297624418499580973053839155077424861944389538014311023955469284826740196053109793696382272108829155427658703919309177955292153175340274151657913485950588369492231728318407336169989634163334030366520458185259278450354165995967810319082618522995604659286207129796271517602327339550237294437931770961130302102088711263181525720714695439079342276456902654366842465443767804017043559112967003649983906943616018535027984902044501906747784804639018617552056298092812192307509749897090847826940458543026425631509317622668439769593094108900730880631687502540601480662205796860453973163374796220360491059538824036142830291449484063560941554876165840457680150268747048499693389436222078527453665097824884791018515240474369012737852526962393640617380490893615623118432344370519257413336759032489949912548974473380499000363210075165520861373312492118993115329193529009836116800113177486851246010576967979567667301510231230348845240429559919425972118353317099707402140765980307542372134913122515525691651863718324162204827674850597172560530657609500998442798236073616446490890519128023825040640993969861488262288672378831858648985140815902300921011123010956107182182121468862996732442924287825048858698938251053705856960648507158756074349949693727309211825763803228094580726705785924187990560828211411164230508555748202136766438626905228105193778421711696479194323613313629341168943136103620424798178303401569410907917557849520290899383294847088351011166387456843161679880532683064158520551166615304192283942307858216947612781439546307780365314971543403562514225028815926804364857062702880036807151280582545735314739040788901600681242433232787182376299140130345405099027474916373536316367956993507485211557181175358567735904848870614788393530094372445628535609940264055206334445793693264401267785792249477436451225195560362390385912499125075708674056754993977685722020185796434607505975342625783839941957991903457003853448735364634571814121794746950910823869403781421483450740258321266301151286102681027895718255936889074695331619530473954554923755563267499118202302678858230097938088641959336635086883879474460836226399552294785102817216236324067853491580007118746237635797964241995367921224597512137083556189176887506232746467483205538025138739658609041929090516355897778354686285311881314150570418334444440313767451220012232634724468894713038237476825854436121926432253841311846425837571781786533310233634935208761689095455844375793339115990799794121607861298186895117719811007783433457257850931956640429136226883460773937787881647206531199856135764629577481624534246447271988106725984093937010013856675965520961407688656841932342552897994881052732691070462484134068832822356742098555528462892153800366265384265000379886750607506828865809378534350337213280785416561344767462446007232093801722947009672425951177301855162930955033313593034376133684640429381667906910995526837680205379072652989379716495786740757263184198459107034719098611110448898880687402472370822474838620174158110629476870935504260741348536729147110790962656135990850293573875655304862867257192184459227365622904364125425629541993317318866695853867885883203143253199994459434761694195409165569227453388250796628200992960580074518188649937394559537226435531004453095324659283850553179931670871946815149904466877836301397682135176132479402772761956382604940664002541852325537493350975665875022245496124841808255480759726529692606001666226726522598731116228122826846319205406096643382024560771858834305874549271723369078092265225393101378946319601211729216448435347984966769097323832397924265332483120761244211496700568088966194409466147259960047699851927393237363581565891222801022308578069359228180463066332539547360588919289647069561085646285135245368676592377613734336473799409683698274110898252897392833090064491317724890677282019839032580625516699986613299364849354864365983982489656595048614481606815845316246511327529610608669879186826496318175733248772862507627230124864521874113934380797277978777658558478790853548733673602262031059734164433135427066715269722443843172338413808693152472070211620972578435436338608825883997252716443195966311354444658602595167286361975253716610780862204509600829449697019849116186876931350095995997351479266243497647710084684753090045082673357311213053681917948145834504034219056605024454615814651583298413143310441502040682390020554578205305964447412424452590011338317149978264618619528438926124027361811111283704197571898647879764279664537560241424403275181853785731430836008227406705322676696718621150993414275177077126999150689200543669016306572539421932039703787668452834400675892040572986381082540785864764472345836684716963415957256318622754784230812339672258414591069474345014470822309989776758561000524606961000684705688883852583501594221581755082110844578526293615578266343847173432732946443544472616372981180947932345842725809683478478462852312488344847261970956999141785734565507449374146386717028016568146979030977254802463796148933792240275602230662898635247039614506152984583486035452333521176336167758358476897332009862650847518731662333584675016610129944903867321807329229429092006307375528622319144925038546365088915680761824517922530490238305588210220219369149750218413015750486385151647888886932756115717265012011478203791332958342034184815547948116754950583602467985347127869280712982522103161365989697362319400728532807714778105736364276799149912374864429614163737665012164031505488770090655019423854918459445300486997989567101060966507079687003612666621171296993806233890165308456130382662562233411998268554808288632328132313581484758689234493793305879164319575863887862523101545782915729328359645770381237530982966206908625249044136711145250173242703741772056313366591176843958841824124883977632628625861486528548089241465869459230834163276647375426364677412807659749466408345410816160947922651611018891769715785155158667953370538141772273747896031732610536012915066859458666425013155076268811462893718381423987311026061316444316694474474954049822453736451369401536249999825086903821288626437583703960236605154611439423960004182142798349502108315011488995466131902554440932337201595037751228153229187715908089407577177050577883268039750703793326733670445227772703370686862197056110848745284724092354096476886551748529854671203425678426775414646026882319215942052987448937426286383765865902094183241317742570699889930995298401056434467906832719650855699639246070225253209859573885265986704765772551299281506296554061667218059491459735008231138555810583290346292251878058538749914445492047868970412581833950825398682174389833571602713425897725313203422736162424171805924068428124903123776175090814273862082404389092889527024246090878082670544192210034462727634622178649510022969129895989941870992161521783034235124522772004292306039961707798414787169311301298065573248592871294857087987918511910746321648782959355807569167973968349246880433699358400606578100668033957342767689146660374416388988756907986785191995651039096917443263963236733914128138839148094735141097206034862058122442073698578226143124606480200697598411349066072916304008494785842619145059213005183425719158645936975863538338268620808227825467230847417810657828550553221172180111210179209905173984138013102084888544710896938066394888941615170786654109077798007850078465312066136879713828155949552487720544634947453240598642233883785114929276604138223002472843118739347793771547816086209946999738497173681616125833503145208531834920599280530268759507802298279719899764961574577527604958610979145925492221206525058744577692693778037339616648575945517969339594806824768383688579143432367144936730378550827549465853236326586248265904834666128640462204844268484861602983296658903881834159926470074639668267451383229168179331372661063721741304311691950804231512260382578294518619461619541426638097489812932763792229649137737198941387042315862549995024507659293286202552017612153317744661717670655813423900223768312330673092544877311809000973139854821533468617093236090339653415764253822388889166627785221274557054571763496803667745448502353969231705155012857961402996739577043383798196539245032174132078647675519497861264102379192435349705169450774095132902386471374914674128167480132550643445212050636707530711557357673207695662566584819788585214682862903697268025456525701281361077695082443095542865708379069514271873082357097249062566035805611594730183733794543696373729055679030254442299493389598207020039090736257496381930484139647376295264388421545813508763215045302314670790906308493878311095377714588983201822780878285432665344114579009384844595534997451627696994499025069092204324203232220368510084041015959473683158679181180852729561263505953044537618935115160523344579361017249907615045268826698476029592157669552694070266942639047660258576153989374854484348397727895754646179602458600105737080903540065172311641994276367382231878087071906328828121452597793475848634181098758821425427962634866350094556231367776657896961332040319714497816100803641055758356882245460373555291148445385040382321483113245602654665930123866523317452758096130998237718266995338270152268599696601987198283608908748680034384436879620988492406400077046071678519401982880228342596489781546079658873057688678759586675591931130959518857314017079261520761427381015724641414226619387003182154284299675905573232877309890294271987546731186532937667399764069151525371265108492378522118895131872100253407034833128529193067143023056921720650635089756129424668305930749910767618605996439743876243573351919144175552938647081401879130542434002265889759655019894845539979249305892776638298814609489931176998035019918176817069675714169451057018927834732133677605251922780834780931692891921770119986480227513165465760111904744554440173577801072972017242780842259456343607164873963307720702593753051225159091309120726742816002808566439624136792127871457881853802953134237759886131056537153655918735654322421869408189889582763444250378083636888741931339474386405027426711166129063573160930775555422065948898870283779961367783112935195359335789541566044352725100418875891653684147916568276803386181271161522767208210867474836767756733896307011661046112676477468008637137215695247077024828754163853808713355886933820681764602267469105336317046087788206109483622617515094857263469061450688473565231470417554714409642044060001612569912995869497890401664694515873586983219319947361835280665223806495980622248554273856968156236652707912265652302884858974198427623842033151874808840486772378395549048073523654292304140979081132926442840699700951557302676795672125018045006291825277498135981195108833921833670787494689929416016929950142805562887024469931687696747658823756917301246181544946683404467048737327656197065384969247902344740700681488313852008913412309978835709896178015729059681991414541906047727142667942918873776100297713161172569197573610422341456458706462611717242299834400865186267350677497944680839895049983020605415074433147478350895316103976719772151862799713664770668651638323120409893142586042315193105595529690607337070711714466790769813743163417296829187186631214543270903984463615974153325345918769249020252041676217421270109025409449320527687209536559154838621055434830281335802213812395505360837825563810296651069891262771995384464310582776202923142163452957212537978628972148771429377164140802190486784093439155982685446727289314182031112297699609173514693231913012156592083708932737916876521685633860947528866651632772987845032135477918043512789470331716729958894926176861834503211820259174182579243320781571582575071722957017528532526465910069057447910159001062263820761473760998672558211072531053802310601001070340726689721469777026277793572816898608825444060403232747104048660539854919413383186685720291829652182128352939278065096992718493150562445015345917617211588882042123806008910734497029700149805808876718605061270174419286787404808354677295155637913357952267764864605471010246566412185950504699406582938466659160910094270139278172380680412215897068548405259472601070468644810744628597602912362808879569249313151573514505524191096783921007448312060522305888307170831796825752032746521925017183398846524418486079692886451744857141570211910145919942872614303394319483155371349359270140988344294366664013083014419587769734977576477829448559202571854198187079156055221988313875878323552840370493290738318014587559224643717004078321966128631256545087269975486863124314208107389476636163602670322569964686732273855306611250972036615885936940944698911695205650585507133044274122280150274903781890309220664272338014831648514473214778418977370893188733095538313971480405152152525597958009487209668531330521259665378765314856264543022174130085932514291766020912243961767458559480191577509973141659649315691517017877193323207358277924577537476972897788280441411533128975173376849982908554337035868662028202027824910063198704951087083026582692663111253401776523255051626109575015392236210583066182714265561906355292198623784756495424786925665289298835915768013095842879789106616182708290154812319220428623946080244566322869600288307330419659215655122205315993118322640155270188040824150667256731879252445841291481351787734085132567504895201754166705177547032417861148400838900375427382326367269618187548477620079686093476736521747124067031055818192390158799826425096172160788497380091176822353864092854756933323057448605821865308066380885026324771832024775009780028688030218339675923674280985194838466074847180963642465113921557204560550299610087769122265753033865605419935382290404356180107130545442654364275337069475476678496484105628131993994764138785514199598366697388773229310720378004561083137329406594018770422930305409646725517017719957666075196031630583705479633792670374125858171643570369184553070499708003215707209643653072515398655145448988328943881951172236930625757472099309892419672469476752011135436999534789469734424430385764630376027644201359280266556127950824354648822367611354236355454786842613715687089649812325656382796439111778731930476024355061754366455520312909576426859592070052054681367981902497923878977865736321081126101636634779664899437728422497182863740184297406351106409550758595297340235712730661079940144671534920370211393201112874759839574141346184155154847236124563082918792452178150719798203807049952030160797354389834144666057924931784048531489398324284946201186686051235226320569947399551942812259911602408020944933272392725523325680122221460791743567179161887976923884273188897432856153794427906433189713329586249299894724824552729413386922889931453737531092294768490280754763301478055013568099117400383306691222260305883396340169688184092921488034428860222410282064016504358606598960902359788079984302609262858914006414646215552380044287892406121403829101046778633229103241199383520370338824096913927987556828323288388469251412989810066064326618750532186273391651139349986035205328400174935723747643751020627795514747146229823494543387839484859564112752290453824107989187926888906122546584041743912382389257421142577883805917138406520407415677003077274738093215459925148860118224369748907630324694473637231319771131380821760507432231573607404437875395776320539592964145582761078145577888761107643197394560487403927126914309327885553887727975865374820040530286895679626881204077002133912545587561956675239544803777457623984379982474356985397724367690804932875534368107399645598771643602528991964538729263300850076381875760731639970454217453640203063537778818831576291859265669345713272426163749384956494491822324750579519185311068820597374489911208497510954839551946524175470190589185884061815328655688823017757983491748418964439322670013505931458560089485181287222899763643208226497245515086040424671210476093030460625649730346423349934719924433230409614313774663764507583495339471114530116741344152596078177537546536506441375567694787332152469674465983250416264936713834910176151577165301729321649102419340621633808128660288591598330720092724905003212514740772751402609178493379899118290632363166435192093126754867519855399358712540249717603518832930922259734568713933974308690892440370873268582057200195872856558577685825919255651279145643611181780509165767955180733056685017550390479408439427135550645808919147934611619585063509728504814244252687205197329570375730565223576505059784402484271807401589462056867799927450008565568580579890793326870045715481428954883170686335882551489153361947221048634593773067181417157453895612451591181564854538148040880683841075386481933577420821976388960834776720079790886667637748571892696064936658379952402043247118331553263891037520908031731143994324745304744860102312683662015216541613585203651956211710810264879541438227957143350925392459471851071828147671618740088616346198462892485991696590481778795452698554115887417657240815109618722703081906738129912415236105463172723512812211611082053994909051986962479656303837703740630907237653726666708065365182252115540504734758058412133752964805943940832850621809856219435369163459625359269376396660976799856623916545525855728830215973084045217047615705073110171257915334614368563214972151636161673528652675261663509763031002328505996298405084091173778879490777459087645658099113047020863142101962816205139430636489409325378033611647708554116475899901270038761230602288397940961449673314947234683126040343377870976740711047892991452410903205859231417608560534802575070901107507043963691869296555260804396168414416392017564006057372784761864766693350623442560624552142763482613220085055609503323285291782407361831558522036830245731760067811247873487817819185664280200828386136257590198239578669974490557446221072988590133288451488764207094902573356986244520368350261582546044370124424915418038286730080517441426124535106281357079797342275819938064776722220595256390304695014592955614832949278767594141524253495390849683254895600875155637411289114433739334239534323514764670419148041899249097464006280903472565825369346746490187516784239597962283242418614650530556434729594675642169101068065819578189834781733006519879380932098382446121658271842216409532487469388378586360514971666919222602960593676291587817749910039140751934812523873133277219013935033559525753700838650150304150272661672869154558895560220310643287208661215051082853624375350765678425804421248098528386735817279188896535172449003942064259573971007600108588087676711659596731291250907813185237736012189915919566175332198047434045974467774299767108898949239339685958610949657433771083467695567230275934753251075482028522059238659164770781692657338429270974723977104531310831686565969354140920268485661956833758275042863411876274644608795297575819511634804221731005979881827471147102600635403199631921885710030847995563779754057311821730974746830330684789677004041374602801720723582660276036712294249877239162290765306369856623482716206453443283121401261450123963161972801843268035656321702350175186637608266233514497079676292560305068100806266699427896321165758175893055743504614081534942538747961163937088287145084789407688597446600330687117233783630538109978381452951864135672422119626616883892966540859035427318284703916948797494248783768907977006447412583253618056232011956944669021758118342731493749476211214624085592943606009554444127069976620934502714787501093712970782406655301874955870571846583468697027738832418030391857210616354895273446287637772679033965219711098332450897820411257339729192947500655939652809945829656563806013906375227965044103498973342140595550927609862561724053882389997581757324696281894510501644316629370151763636250562658164908640019393030594660484778648743329821269094756642661925523539214012801106086027355526794543901726106265260421779885082429441295256932905717274173017840781728363423534563153817232019907921038409191044833317406282514442687227216379314459032589251804048265892151616875081824505556002363732437539049561401617863107596851945588172245290375043528567437486307760441181916008245191255945315435027825310517404620817093640378660184694958649523308917247313971225712549649170780886115024505772251688914073395259574508045757573567689667306551813805461119830152732227465712676299302619035947589688090881379059595626849786643975102409348199763804933279207301409338138659978311806963547624096076489062857959037560114468406159383127994357110523992477238900084887028844067614543529036468863764186487219590417893481408377049746818268801025804584322190373620031517732761331890328587277441581908666071594050509829974889665917420021917505431016676797126997524452638804048148422024992319118809155794061467134056154844367745134716710736114276482647969693408434232467597583960693896899351088189458589342561727529181024687484619407311399464775476779720045807083856209935039009767165506267279252217061553358607144538181007838756425244191977214183698976719547628541647745323548906414684589537212229416724488533016756937192931330116963593297487871680679034287435988696511355535198253020561356036371540808727458896188294657773546683515761760134913169778685504014794640682876111381210801435876487885900063084379163345836887069701621194282985678003507237794028278937789852210562408897541377808055589383872160913668872927852981319533112480788373895452570536846804389712860182383745832391187782532419493445135733558483978093707517063479906797327251427283027247785634755005080013677761028720347326131713725973336621230657611613278899095790936922901773003835939770854820438479967842344396851378963724422321378960080607606663086863282754057310352159580033386505463582342220579378995951768936826233062115022114766472948207119463147877588108885435192772098875603539764015961807248283998617021271050034532342627775422039314177845981430936505731301005161420523673920364842509304272320618812661382253453386810328601233090915329430515838232544213119914110858465801592561832161953964508956801449290065506056219248307503149908227165924520348519561832949367925256507031355065288432832250320255496215854349819260905855890642420639787282359883159563293767339931235236151118032147244851678550005700512941272249176231892717521430785759243735710562854155484645887680321268276427334409629203324371430631384838364282379531964002882835276002339170245452776804605721010742295406853911630011227189205807035230272542825077516879529394927489809558632392231530205377319411558165099094159639410839227933812032128033580270158762849192332542136350137252120954422020860720939995302318401486870744823068979556401770282952287758805417684082005247514486847525792036233653079462837666908215147421070911799682476077009091558318047490051373248065262291044294841423648296132630360026099385818158214658138233403907805212807077596250848401797817197911306093512578223376239783677180444577858323000053798511439019439862889649753899536532757212322922073259620373327856098641488924158626183968532488882065274878478339290697674305615636203446146725967649974003066546384323772779341221631969489293825234466754997209283593832445429897057525795201478029646931609563444806274495192805301037385612576600239491888185066859481716103748555244317712021258815654575055554328736911202121517404347372165181284664567912296411822863988508158688116008202002805643953267400054030827686950354849070942464332220223621404298856808729642305923662259463961758681521780216043221453992268764127128220004710197282216783880437640233075191490918118845236069678210488523895877601057082752842968557821038325541436358855446433612381864723439887946655426286243683579554740518088500498168722191266961809159629444832246905191933522817077323642524839358243223067589835103385060866157431693764609985593015638650845913372927172725634825620019801657366304805046995796307864466394223463983542527788230384146308247633763099160787456700828262665293122828424341293305832159328227872813292464978619550521577877652856478497621191589498413476144908826678533148832052275382313011146997253360034280100397806584791985955660297603659090610277702349351086393947433313240843907318921079256790585651750689726209077464128420461789971754006122824629711258182596978230612215471551224132791451827112317220161944031293618182172064694231949729561033651580395771581090254698568721385080312312702137993710970344040126576106060706089811004117628459550598691248173640001576131880265848720492574996764269562456977816494591166814247088976175134744747901231978441399300243660418759281375596768443116553510995474132743899116468929840876579110040955718132979687159805311437023015540702527358642948134607771845340450630911813397904347672448280147137967161197709513761448548958017477079230934289927262660707467552398284065406246539804314404797758815257841266252786688352796584841453622746873293438521450756343631388624872115898742352980940644162339964703641308386710936161105836935643635479720157365144528055606422446433246250892386486955359184460159795300982312755674068451616181181697742594737775692510363464989870941639529599026910317468867916629686964302556334614642745207144104835348446191257126095157379922569512993399572670773073594873303991469436963102032625751319862655522772924377431788777967733922216833274299883586288514401249499933042498175976289305458278689184740170436898888244699699897335203611580472232075942200040885675652759750788117842049100894886386197669718473472538376307580174711015481400791834658956847049109989531690258721470204652216508333026629051135994024529147574530594359753088464904668447369016202468030127496416004955960185875809972584473293352493972595670872833512557112032345500308242108170711936436986025164867334239572224663179253502259942485357241743014269579376300739429021337395924829961523889034822400383625917474812681147790614914389436044991633486646150690507402443876312033320831446547609650735598298174258684481243201193992047145671859333703110541006491903382480070322672361068780346577915803248963667144034688179060502015526408216376954978611729252116906573519761305298701081762668927622015066938434972720007145074132979932763056100687505193112627101860868304746323721386198671293458443407036217023076848494450280085456100457413801976119752097174619484695142667859937501669654416447505056052209830803221281352332220237729135005050550684012773318756017701841231512967980995557232555298408421562276820321560167980392958573183933765998324055343532548671505423174870756401477813775334100828745558212454411162929260614646704542491717402456846339080715943211232267007341791891645811291168156059845872456758204389593631749886681508829602954721162826815305935136106190890053553137380158338674524827223348843312273845791183576955457109585246868386020985244365355784761508679823805628616539659211739828654948311827778095903506839357807756565319407675936849078873579824794344189685770614149546938240130589612724997293733628213018792212696528838315985326874770391008825841367215047604261314961225897016913085380762157977241997857580156331352638999194899170372375820881126547073875938095494061614193842701256445226143552596391703383036497173158305307048551522169862932802380212644705286436546378609801848402936911746452360678990131600696845078708131861022564871310231762551763759366631359879327577230894749192468539938775891652164508175707017968796016673067506777303413172201568714053727976674933625458498907104609698186135378437114635726206702688370757860218213695395650058464171410802620625203354724420632305715353576196530935445383274762675611516617597145115618763224851505713858635292299789980847498072178850988218265825485010135934528837264787130415742537864719550546717083298201716763960233733358582761826229860789284524092513401862000935776260449700713181727530052763204804851013012336737440533462793252058586753544665430986350266648277286650013165630347950164756073984741511614064192085487780300497118125399262349806351451089324909380502809674087136882266358936622836361369608245447135054973093052771726547266562443437394384087181663072689189027940040563868851822416778085140527543951849402545242807559162089257581781098033224894033515273950791170070800877809387771099720518136719130619839512393149541352931434862228653775846439255195525421333385904952138373873488241529215157433142991391817020710904101136008681933612522260741860018057229621872493951807326948018784916413624085145950350952305107941855092378796454142800327519807653678884565132704312502357105918173205052775911132470902114958984908451172582356490672308814265684796651418441607540319100742896639111833848980992958971900634905204733930542268660760239933426031281907064401995916980491414678142241476859574390419134862669183791354630871816610448409844693626518429665448522895830346690190643767197600417081857766871290567865137995584814339986278363187798291888908403192386655503226870732329771029155382157460405988230933389542220279849185840274299082277737392331466298096223674615146780108530590142724914601073281327731639073676655838510366534166672601248329413473922661202119002769363957081211688183330734364324645262079769944074385856499809157091695925682260228752260947196973946552185285602589627586534299589287370937005233489345205270815120554817265669696676005165861062880269723903363298504697875122049155681836676705158053386295021377183143560488686058439604513879230194000266630404869087879468772317355308412723245340748721711405949004664509997980715873965823313203956082628020040896213032707755185566899502285997319981240946911002512562422159046389190545840461507122282604064747490693167717679667189691335525999563422097619032113452534374198333635162285380646093216983137848690496143374365372266753371122412460741733298422310329087763716610406062643311784065390401395165841904099312785595040358375946461057531418258086414847490026424898551493660259166290662345047871894887074816694176155829749092259656062370479341017669692925019842522815307980242351086626142911567556173414973470372766894473467017587229662382739113754511348380340244562688579343939118462306441869122172275001347651740959093652943259004957226648706645385189730717409519469999160558860752007391030661100546081017515034228655745184216002044622687069075706791729134130339133713462695015297613698435522618194681135498774037479860295995783033436150222667226651539532629882139179822197801043804115312141366421277726110743976965143119145343357207017226514000407808126870391816873740362140444970611620650541412122671008150205100905839685617419640727508236023741007655141425795351546776955569818790410669789580892487858457710391487653198319007370949699294449697771958361708958232209095241767553847700964480251920633550820463743286986408887456742528636577650596009546342874112219486277452070402642168369366445118082722050111119583670388184524715875314235186192048165192432283500728495236982193240780256657753535403558748554117353950120427653717846261402780577627055480115081720040308385428089179309852751632542514473031693511981853577624901791791830633866235741228927972741739103019980863757114582455008009777712494939445314326394411163990630000648126822828968471772714720119397964818116958665993582145847288757130378679504250786163772309841937830480589094611479343791449639955048005541740062719219091388267770159961986659553761839779400726593557500707492089768413796700586698366582285711512259652263486816665333066186253855310130566462537943207590555810657959287584815577433508679788449923933957303766644903137104744091892038974074610365779283067145307594079336688747365575943171313233203644770667395110698165373186031875861630984251879306919175774375614305785279802959775269209345877994106448656054082773566834761147703747469824149837966409544977606356595933905158079370321020938305176344551692815684329257072364564670999495937650222132090650643163474841109609662800902032667407258840861520498056770506610995675391873401443287991431644926791983151865737896409662215569182846961546955988176693248112116283149105382435184186137830717579664577225222639607156678888750239521638960546024143998509047905259272881748073990863665151811853621304928494387128490158840494293577250828642269564124122863329334730295994152247038852805936014728436776606546846000657449145932806038753146684364771881526149309761386780434354495182934279506871556228830444068358811465598257956255090449739843398802983808960575301237376878321366870187008198381152449925676662213130909356371404130151054299930914675033652102068544576843717457802831083071003795392204014168708894808809414497107309436689983333252512717385283206016222303478863919234487700712784510825401069021137695712402783841108295418269749777997743924992555678182532786263978666238306191903467802831687661574213058120874391065190035865182160175918819516062461796900240534272922608893905165437502233217938246564761571384380091744052723133587439623789572770154224659026451006685862311512866347904513758974266420444637217865518414773098318710111493649506604733824203408093844314501058290140547925050426002838668078900139417580531664814674114897948036407746705768302341790671316207563999691827855257476503440470880179463878533099007633939006468816862822748183170895093484942724004896537384699877486918578633232128105875699196143918915747998953633799583936941399212335918075176965259869137774976248851879755788212768535156963526280379402986913121700163470263863926576438791918690833756540015824482239769419723580887041453115866434844043265003062693911105784272482624500609473029929386315915919118698832410982653634388343375372305350310464421272445135228231503302508605882477736448031313495865663085988725437197439029391269541909038631581963185819096304407089614181744425816810408921996363977766954134240120940748044802501749569609662784466660538606728739229455400961597267402928860930111674458098067643439665095637964481454139937749335652212003749773446201178070220896203415131117860911512711811573587957514012087663005447677159838747233443438379730014989337860511918954731430392369229749400502041669624974787591304529121316085476903955117600387506591290095425843432352093561214737041699014252393913107921749214862404579667390368600579476154487805832740834190569012072199875136337873399643533209765210069347162971227030383093205493290670868160006994944742519705784946511142722546786000502492237964362274215354006734690959690106574384202469726272772839375666457014634819112334751098007014991024666455920031621875060786041731571640765886188629933675226963953469389529525871847557477528193051515943127907761166457357311784617922184877016241907059527841732291706983073187616247072160967731333743109473083530205059842577881523487633802702275530417941238182489271651147318851206135703408575646298748336497571261983528575497516406601585819171293643947497505455054678312414923693382846323697378737477679113302270677753685734004047646986362217023868561235538831882493394543275816037268859853070744457478860621340721938072902445472743584280863712384644581346145097366783661700238179206102228373165588932264793546344000810438984024501241360230229164624979813637201424898063481752619979578995403553653957632619317375920363077686663461252567628185639377767496822190515051328765742028991109230362708966798412567396514880870324480032835560688665808046144287814322932284483546749590368509697635753882232574389466754376616249473035829989789798609908212340613537189715203512397963664217444537220521547246669763681495777434494934025673899708994213670821167951960703872373279655737541286541894315657991444964117348763074258664460013802201504893432885998420723589976689179491762569971711123140734523982466874998872759349119929447334072726314753448797062146287694893786713287311835188373095035662177793137550521073698769197883594551905642140957338797351809769019824176039452927460179816958444068541987157604729406763303240556609266258004009797612188337010474793630736826659885486200914650069706868016174802988246374896844982049510358781481326007558772084664547146515260269086502937279958818586291583002667805045404085333228910175375009764097969427283078557046806278209860616826096953740276475552810917034137604579343806270459323310639039315818728085491945577484832242927854931943515449172849593157371638256423061658276363134890909204150254017649506647902335523502025169478815762416699623904449477654730345217514216941851408832288791380323811809651034781328870827887587137486888901850606188655554349464316544557522127359787105909378533488490746608889772907967612911304695141116855873871904023612980631318071844754817575937718325762242616568849365520253591113824306691784639755366476226540142345662935462875036004299455238018728147271111056926739909431352649544794444698259630973078622629589042065468255302970917197640708691730390458694880389000572833283281206243626553414370727466201665857255625995616202594781876744128946613537672456145039553233075174063191522737533522293714500106050597322831677798139297270506693491266417842806322582074455855542998057663142935480886710359231038122047655684616298220138342927708945894284840045350204224498455938882253831044593644787156495510713507184217385482806240903645940177020136088357174750009894231120227437093264592860357179741947823815844138757470152175721789984920161211595615495811193260800996461394988935215038112888095345929275744600133645698991407304039281732390842086508572797381425866416353245410832100064759254409647310359676834252613452716460162726923259336209720772939722995592042079210135234979933350037266928460124454199944588173002968271611778528260551988582737765193559407644796227646126811326605346761332892469115766636922479342891500060302336872907891703018683237568515367837328545788563809210250637603506025414427734926261357766435298453964681140219314255476508809237642504764289242367091486682761092952009991998585570391994051832814806226332310868165492398976956217699643423262185414672297278863951163675163734534917140698449070483535911793262992117622150689513203779519795236203690534787638733940446466680405353345535834774658619842309770508907038901668425445925683442724959817774797470318475885035594060758754120803507614414930220495042898387090266845976417086202211847119782797277564623019179890205063944252381138389453123564075512673190112680590541016595511991422377913021059591479544517874470429656172764221971681871491463831092394165444657357133837849528084119214091178152815551229829971227006210389173145235291566583131174442231773920528058259452654674711900291651336454686986242366556502490744193825351806235659949212740773535230692487283231981459114134525164701533348759883853044310381249483931185824758364597461735563224238720314327963603324037592381436936323823655091414910184977905386504300909395759409174839316083791249641070924970912580157683898350039979502496155086087420576553255323513256515503577207081660099037213369644857015399126897370451006379989056146340643495146273685125668459146867095452623050437240342865400406054949295786425921305256359272816489133850196570125809327845225061873165311425767904314020360093071166148980142583097935904736680912325487276250365560192605283656055722754921081464283086083826454504277184353371514647082644502863750729577785083643028610007140334478780164663454133751624256859451880995964101268877142145727563386735148767617507561643383609927365432181669654914818068171240326263362236949204285668603268494630742687634415939025538870879887474555589165280305595485243936138415280062206683147759484110923048847927728528418099255386734759494444234008946885503186663669307127233712984427652232333291512675190624942548844919204837801962828954704140656368783984652336608987463584505658609208251236344040756363021117317472285976869084239662073897865240744969963503738526094222197177190183185171467223703684598738121307113768968243677759468328483175442139159720746742250619458485239466452499014844646611023917825526223572049945557806746484129576000960776162957644454419914785881909200934829113125455317420548456152070118837208840224972571296535488276915477701843816156462734394518913836400740599030156253707404947663312068866870180726174929832536893870576875082637696717691349485245819548174038213332271757658196958019849302132462325394691311670576895544930589148699443272723204621235693416862131197016183104544525512376081917948499923972460892900542867730583528479320535470160115805337373069898547601787641723611905765007928243437192661774970936175207633058886592174301875554989256163395364982133478524861741842720616901928848013243146745481894340167815582692975689211395661009502008383868001059489764270003247933303997229220504450083405200397810481976277700800741621732842885825980131720226792962935721891519878490156684087581852721408183775166477580102931240664264703104894875620833373077378621980383050367801875296962583820146635856428531208273328609143226065374236633986989474299010097797779367449132313601691493546636382425797367419002552745673212902392207908508954861389665764117903365085323242577008485440804699883509587960545747769281541758197647877379124718432506681848171775905718762633563138357666365880633488570899861321504133313942969233654228063052623526371268893462742436085115692062500117853212869127751950125993500852909100113122548975385648538730953109673880872061762177758101478400550131245437860018601550625325794415710574333408110651841687113547150690036217729432362662719272145522789258527268203845661332564568999151714635201555101840118048327175368488505531071618656210336019661282773994015291246090309225965165056999306097176493143995608036917855111567397461665277780718017474719472820461007970491366332217848038832604178854292484308857947141686874586856617803953229822665823959721212170237525754098857131774345544792389772271726570212268046264926113490301174546899534993951190112128736001740264333907407885923366870401243500398274713144996915188906701748900443670521361859579916896480211635646541129981915996078087160127055179340546523720069390015020495420797069387174339271610827800746289407630019982506105813875799442011068996418368213829054802876899608042836726831322495773735622656535649230740537898479014806130577085367554998100223278318300715873705486612160632787150768656544358090454432963185845885244213890716179847910450946025009173391938138870540951250277022559694512271464328291814492521773222653517471388762704762103613687928247718472518690904344831595913519959278478512010561932391548861180665306028206122488426408751641683420529196261594649621366294113654412769971928664259263122235424083076789757460188375386214805706870067111592324493051461634524997822003970563299516268790134262193520135350199465231523516347713824719593065579289324203587581789711745898830228185359729741046031550567872322343922748990915699150158863887050026017894178621984451271227462666456071990971919893559398239493959155727518197686423177227978358496590895656655259201272843073264194755683223893323769542508425074332302011089469569042727924837471602686193860200235338708155099139094564273586559466341381552368409186771894064985259910305705302882125513355238764334127265784110573610062513581007013528623868318669809999255030438911338485940174461251530768424125465982052940735208685475215342530224507347055693487506802399081633547623912257743711593791758175185488350274072217507651288613979368908465519993095452780884558729019573339316298764524942260356333317456925996714787268532997696152615775815097777110384278208234319994444071596735399002947461850083582363481358407167800936097810522862771960307843027111097324478063506140857754502337436808946821802529869527431591172091323107706171680555293426961221378928760376330773094289555211167852970221805564702510176056432584683107692874722955015933947010859183310525948545827118943492143277053448904360308966145289499461398646336246786668934208558769189123216509035133828604762839458811298984277129519056416555486480553025868063441113346184454493165133590346536996801073659578317338528295193285908879481842158198621993622698209088901162596145113733794717592761166575348892031388212981040965201433152798335024498614046864804824218070259058592834971229050102082140908393382128302301801848561291650979573762032783776595329946847616868534503625175892043099388340146772583310083019809247249596679618527311526769571143643506973641165237576786237341780159932431542797891353505596044941005394850477903300237072271014020384376299416018995138489184116634321562653818621637855899566033639576476393680385847132081507966318710141403413619628002486792660278362720387203613004084152831299815043978069006859707336794113034435876932829705554972860118931216171765736663927094646146242342577365678864475579760887945415395771569810805179177696181819232703402721446468697253696878693387984438515877816656315922066325708461405524199977244573097854310972541363724520155122183229317634540610161701387601994606649382583452492686586532819723928525963997183738200537328877961201336221569003986127034416203018164676035153945737180781768425462974657458282528441630351795180539818709944834937246995032411097570816476542883923818947853933238694770152385788840087436643643396663912798054399875348310909371956717652755310709606065127889223798400957301685016112876384481913178700444781903331650503014643448267157684964163458244727064438710028149885349245764204352691455677274910252995096631537658941031404483344857934768371492585911630601653147293615021970743446743276461718755997999797860411025383738022781723549599368107151844425470180390432804738521494611020664730110045494448988975315203391985312909417124967558097919358127249014779030415627105493120150978846132152823317105823123472777805266050760096815529058688941642434448028995527483962590129101129337017886752511142616387634954536153892727319436945382738346857495341163845320033718084465281583283672624643719462849923295773824815246955117937330862564869459817850905718397163948722545212922821304492890935211214996832987271125110648432453192125815065459824662391957937885924503858313876815350341492827728056851477368809327604340237733255800764046116740800006720129571011160237439686297806417154243395799969700326607925490647151105874265624450969189956097629904779363544298803927235926932484386076755749660053134632439262077960406680197777646805083486956878508724798832667409690396691138198831943664044635938282824526917460085793561770821780810138305500451483940150030119003145434662955626142342399497472329354220129264856274103995004289792646632640803260771075088204952874514020144668444711389739155995153491550896481721366119638595572269699625572021925496783073380183256347426879498799232739806104852548010824623698910191969145002422729414127568163849689022368869830081583185689316888951124374695301226836264862599895196245731572716723074682535063795759392913238029431688779553976354762948498991467533811695990679439982780180281606717227264853504980787997173317450743411270348613518806572594558885834242653821279806161346176902116165212454187167788789711238520021714858043334735735706112342770257041261492908896486524507385907782970258056142825464065145743871724464578780787236346284704453841486398573818066986326639988343611338282465821337218670639913549000833045693749294357544195766798897450607682920165900585337088359303585131319802610018533816386226101994699871828610105373198714266122342223170915978322065577873711431657645907660349201914357848311422302453306056497122382859431617656283386150274604840683634717402304448667046653807132849384545649730457377621017126144017641665865066944350174605751517198427812926400013317346263407401662708614693241242539278517585713401705335410092557640314437154815980627388242729353589663496628918653483993135310412182613514233267579391940157897929552667378833602269243085063145695758909765780213000991448632883965282049786517827314138386245592898583190459922603569058567231929524983145043662426252491033231241762936530311369199042375975388067976131893561653523351427016904137991381212817023807005544162473060803388382422249638511241093637379968508498542432900295862881109951058822390517498203936140903404612923647441207325710482928793506558374831038613659974771200765279713068337956337793649412622864034463944205359122862943653673664305392184686393728311366383495596516589161384617565570952626496611229903415846789522363247722578304903908548185903227784424633892124667140014164146994374256694865885254196344207496586957455977364557375253711076760868711396831955222068426338044177374083364459068428899450655376501271994718294973565505887118789767243339973165191878374737899304532580435570915068183554219978779079537610043180139243488547117693072861333775688005435509801804117723017287462730586372585953271537558287462766861360166369144121592363988082416090381471480279216350579311000041721018649422425566807434897627439452339037564615850406728058373469305759492200535234467237538091365490760666118368008241698370697518191084005474134305562300106442519805712222192196703078334388147962910394159737979246564703176504253157539219319110793726657219881250798327266392951900731919591650484041891138086958247567552545479533929845072232553162039630150861673556229561505106152853239746922461830134780020813270217261523516647314403843007609497279535197268881103477478347015028143959038280818032952294154534272446360226990859173194682326464919973869497865379056630528104978090639555374365306898711443455703599995984606312199422070330045503954315095119205004214038067073978395280049829038136318302091706117296950671830048964740917610992240580091575028596983569275888370729604288835290804919126115740749765242033190575187098625570602228841788187448078209120693097791646188335277422469732483196485468674640549144764688429492039858087611121284379538979938423617835441234867410020893004234928799360687157898474464549675555908534862600879767385034442036802101679139434821837629848322042585703484672080134068529338909667818598436656396749674568201260944519602540316523303735931770909135138136651963742853862031700534411588242932858826118248473458292116838719625918870081869138309128968033764426737530436621568858069925236247710996641773048581561021769782003156155704644973404625230079818079771736275882196551576459699529548957499065084805269570034854671943599267977078781168179685270831397493876873415597795334747244906085294931723962050201832266050828680107682093702529155698089742233255145241661995955441235672223178471501766911414794672668237370042408479995819833037441588963236884966375664825249931976493933411987517812195627803580452740735596492702778233885766976727981149397395501238293993565743781639936684794519223161037070071815244346189644680697957794727272547748153028197829478822024135770381461099548408102871829220875418286617575646362879161413561771981155338826039306193270389190277663811941347829421174727896263640002053079983967615025888957431962608436418449982955902669016623662473408431239253335897907679930367856609617317228575695785853303027139533385501493831124757932259722327963970541179742134373422672672506650481059372478174555828029961874580029612697223559222976005701439044534653068752299451489259826529749607459259965260592540351386752020446001654961266073583162147052977032759688924064221969990833624374759280870171617852459168157564515604812859632590379336411550979751195235807537587651021773776375966842128650939530276445289159677304171178182304208831979420151050087632115080305199563171422152020615417381574084354849659223178474026545491201002388935210825161699389377669229729762908988738028091985062417391031713577377368777220006378397612183869997611724098337254746132614615620743271903806823525178447687907556583160218209394719769295869038179121315690137326397797350490355674874285648033689085577451107684948823936158784176976843859030838678262496247736178400231537640265965500044781355130784792021081173017104400422615453722614060971120209442862947843222032003108300451267759355464430942476983605311196478057355754528262991000609679726443542808554064111436752621723884284525537956120132827526845668959409032047967101903644260291677965906830947078276901715815326690567466258914649726965628877554975990966004139774274620061536854569167935224735395621056961079085892380301890859807568413220160368333793875531063022589306422982973803427756968238057040124357691587703339346234351287653049243385322116144288691173112002963017571045885366258021871272842469693600216996324107328050497793548913358525541023937390262353798364682619001699250314664269223885038704210243118478594640706664347686913514421562658036490700501149808325775774420743474465167110734740472921087768154120255488687124159448300556927328105083450797018759733270239462303080831222242920278023421127585358407274161235082392771659809580215576057927523164521553909823825239305596903174054502702720816591226219442199457144352403381278965673787922214795134849972038019640894204702295408111281110324882356924477656680438474135191775647674945726433044535820817242200067269289094827505524056901346362661329895605716974009763777175522894687306521274603075378074033160037329991341023309726221784029201227509115677146668890248809605093167455412782469183969100200820308430382769619102518248571527185156238771520936313371859440195274947152518355113718287292901596124910802524036377250131397311961708796737354053911128723979933088394611110933695966031213619848278762907606586270662469067472891630144556319965919897966773578797679448880868739101457221489294604523361484368615852430567929459289308245567032329463025187165440565491981699790537957526809133366323377071207700555647003063496873572397864473349655693182481647701512732735288119112214791525190393153424156845396625386713409376410885454116892470258307449075318187907825898676777457573732236260412627497721263822493067777505188674237243830763673131022007957160880552638221005945577784330118349440620605618480973615866926259521862260900682668929543380631565234392948589049264638238749345162496951470153743526005682627561965429573766621675901396372406031286094427091577414379366883237049332975318715051612549831180358943658643742445214715378220347371837110054477825995421115080913912276027139529238441592763914141855983779221676106525575576333796038337942241946211322309822076480454313183643563488525767174925928352714062091168609821625152893987216116237930203234318695163516076894266440177977432542563454820822401784878479519637512816113908049531606156403965687220903268508217090649337003656171415178992211153908027213628125950515925675955050966433443760416152204412427512618218978628029101839364164693286252190735181413549556324974917789027113842768729102783523947007087016648468317011436542737694521754219930813630279451768980839234721044129433494176051581065453838298800654266775288058464242122950060714044032169768839333778979629842520282981235546671460715960369760295357276828596624284144322534165945938176418407724412536950202286834310613456716199850568734036851299819442085065617939169278396294930207780280183988735323836691966456483774879171634648629031923671201209918982595715766251278750474235513635431291388184326303990916996099060848054620340149229718255527348632328517232072895369623093307179846799197855582911045599214086692394217221882086942100417002401501280537985066686114662017359724657056536644868903254609852402363419584306661387670295288753680773857992972636175545908155732174825195967996871898317725909646345244098226788092764866662088721832983725599367732918515038997243614740565733481867555159446844438424261361177380348471195263982127073906949762092200205642103709787179809131359733956689088873445374651897353509378944016629543218095830802153881284677863109621966100040552537046527566911595835870209921010839499253695879640018902909460517674410974964972214572172252456580113191191495775817583167963591041294014129005473048881110253621280577653762076089277673717507795780039656794912310355211877673417793496464386854440515886472799255719314739176118367045186406708323204540790068361365628825198274253938343259921361474026340373823883417366954773999770369268740481318614967463059390410868499472149801863354878750134312206303437747106596743864860233662863443268183905149333677544706424083265586790057484937446192657416832947066265921766335269462694145556314872765198735781427787242280205333838251619405073657828955916654374979811226528773377008622906645791918022237302036323379319744779057469387390758994540477245865021549651641699650330263970432095307632409025401664950522980378771111522029815752838928305194254806233166409980323293473429465019789584902287397739483701401903001626838774442841720987883412117028521981915890924893052312421602034830047034314948952079332099852838920763650516258279102345154777729542217365834655762388417930764977324697625101772502300435976153918609285158627624399590513586230287859299432461596560224425991291802437692586989280172142116025871653449901344123757052104891788458140334761796965391430779216595790285192439808148817772015573955102213200749302808631829648259128487260623630735059846012621488751842201108452387071186021053501614404287061358601370003197963977642734387643383958820340186004910585090807749267464274530837142657546485522956599750747098439655174141003379631041907949145186088114417800496102365018399854792980421242526982514665465794364872965963021644344926090372644255572645698904245390126191316525581683544500581654716578425920725399043931554260926605796701126648574369385570801445960313801228888566557599521554183078437905654324596194182751329160052385611263274026493098678719989321816378507952843078165109697951637064592961661135416880341744913873136346464176181782226613237753996294888801210327486092749027631089002372796959438471618210163204260643873804068833181218876582058046140168378446840966954406262522550839154039279297924599485966547188796754072040824145864905176778729721577961887785227374632035319856112430729081727232712624365095050731937519721840077098594281189378827558532522194171086302871946604105249756651057314727566341394520219042759605830604282294174165400926008330396989732332662353148405650092772641743671569710394846148921335205249911819598624190043454342161063131165952517411070131265738813390388127860914354078952927322818072930469533201519968252867193660369408053673780978834958396228744523836866013599758276450251939161570596713971604584674978864112424763911269902341195757589788525540252946753658211039064808801397218067661746421656399734766703394237863272062534819249235127882293147750978177799886134768506439031990228596064873195026062844466496680126108770025699714093433381928478993155529693976834618696162583463053285093880792534629681100845109221047934230509058588795534934426963036407548711255729423399940304184074031648579889627365077672579379346469088957029892818503788888025322397524610134061403956895056657871702504960356839292168005210573610548212303212055537017346012368386700218376425520992728312400392016172094847925513444198241537038832817886638088639456275397961243873596503162467568495006869869401367389815624253358989004170473670440863173254552725290750935524232423107405997475926441605184782769115315126232658977502678100121897165175782070103754688736375284268138852497410142042672599594479057768264759655374392081812671158767528298065824254898874375750650866542684549059407244328304908783160005774180397847794246459860320348575662742579714704243447006974030223723309795270304161516479655163821934482586246366651973291658412480192114214879294700096337688725180597979956571927459709403080888833279720847582085960839320986100668582561093475467827269966901988963536956434740468594499901691372002638952383557861261326960646590793496996000594164658240439719952894521051716321931657193478102784912680135945279370071356769673798114502187560304426225241527923497263545341727907100469111344469657252250904022768429288976944277487451596958946952906284764469106324541886602886352675961444541463523460456685973744197696404261004093120098087823433744215872016340453121878349189918507681935404812661147865033215761069264116591351491416319256233369161981848781118614328264779102100103202873298940484620111949859708373111159359318289821285453207427814115478752275556611754870909168174565089405760710023640477192526475353377856783062983754322077826121878278331806421619839399823402963744674897905944372620521383173975595757840836244893181890146348172197023042468571427488014251098951915175695193476494320942827429715608086258329459852945836565726288788127395532562196642794180913452638616465169752624520138934248690836139723181390720767679937718998183669236788213839128894592019777394861097238151369320497143243284328280369968983534979045381438751801171967784627992526445363384669177084218904137834735938606755762811596380571454293985341287346901143057867516010656436816970162563524889465512567742003775186296421927847631561141934225167131188289339537898648675610778346622534939607459790783000570820843184198406858557391702191359526227926633366663019280526091427754200135805452253812251828911664347513230957921809074544130692241305185743119439341718591463431071611973221162805236376096573980342121790807577345642177140095291702509346326937947163565695961057380623849327529919193221523968052236463094582095569604739546415094781213513422969620053059696853902216645375071318438932190298372247483632891857257946704293985202708332502966475693534755790935018584772375256312604257232629551519603730803813964980579358314687759847442324572089358909278304924847250886813919574077742177464977794812951538289307581483557068248078754633760389090529644556035685491216874458692327811520443159940035614436610374796337707633177978643694184089559383008600174404962594885253286792468862869843164462281059984342673927664280245862321880343937765405409674746675429089633100462133798112924829434169008685731255604743020217890017351569102529445225952458480016922848220827804764618149313387490447607621740694323614330461087029950932954556043892241979859053859517860116569575765745823554728752329800921267768339515902879198869744617953991054947185436829053691525997975540175357744257058362577691064583081070957007500212571892419163663683254096546513860738993389668001985342878201315726041249156235641177358376032852847640423451028028278241346360321187358078381058478771848290377525908450409497759610963232819835018650970028887663780234189931817455268561419390484374411511596989152400780394047548599255634650427511960575941867459319115642000344154313299696235659269235861041372154205392193980101830750230010604100973183637619831839117580551848885143897557465599583324623388008634526281734531422589451007715842338646360416335968240680894830723569765081305023761311381299374302039052198743736988500779737908237277905872493409056812906628889595515702214889687228045268215888067009310090864496805680486547501835327236858668960177222769370900883773061272087314560542649642304095971650890917807165053312075432289781899710852445375273542025670407460255759601829780407417617215279536736246467341942747886271347261556436400063083895883906838182572227417666355185089428428934604654182189863115429580881257831317719203467892085844930042113381803669095400598525615386466512465585458911432754208871035233952151276384457717892031940968609468753510252943290145492647224384920986621378824170047242226470048353405522732497175608192090620511987541241277299821788459275778389250247335015187338318743740738067856491379519302727432927017245249087836330276431036123562144635970254785460470440281036866242318614054846499984326304107885742124499590455100803063350527839976799669003032049833698369333693845438371291622256977432980911454265483512625404095362503980861826926992994378225853392865762959882202704552044427761753418005790718009760727553086303427319057937904611913493536867334402709897437440514703931089946848076110575419866435484633727545638839198021519714509593653096451407991478086572625080545132148443360444460602430028856302782061547848528320667842265865816849465025364976551778926419194203365201813733090913372471557885276663732538993075145547373624756717280090646213449297012512915643511348718479888624531226529018775420905363476420452616825398346918251600031228484594973576343436087129144970529836742866871952289468349279924217461050562947249518695093553203719497112880733244803240589621899579881659823835485206871955830997500215639661155369427612218192298914211662317280289440026999311882881451535952726688983025867162942680606311666211340052524846296960335926878195705495635601704317674775735090907634070926875166560426023992693750343306663947307544960753587237650237533464895650880671176944497400477929768104238888968667447786839675331033160397008686672917822352575521290442499250846379200373354724263389677445899452591844976084683606532564944019918690912749781864074307619685137182640671996068348031405052815038802959212035640002135336633166294372811538767699946011613684532936461896261163279556030938806280975059823725980943319094075554500542572615560337927395660929478419929090018183670873678734336291064863502765883468270817603260801483175604590751132416145047953758125158597632319874713768346862718374900808309193295174895930306091303297737204030397378372146121673301557434987071746568339553591696724685309280955961779144150367865494599351145161139739662848549007097831049630722843575294290272759573777609158991955592483327954490489809311253355419722295799744151964054713578114193928308169484295617497342032934726335486389347327087875055064364605156912860701630914076465828035055669785643481932993649610552733769133863726170891389996787377178385693209909988554327529198084833189158196577068054946114919628594497241758565793384335561814838628579721236655022874833182118661545413590775434285352107236782852829784717872186485063695567807877666982250961055257607374446637386681952342375576735923068345202331197665079384470218182373609618157996027919888515239193484862589939843032802560627683886573016161901556102612876793708813591677962301209472344808102170697092512316394075931747502081930227696557794671467539579841068014538462105240580474868057235141112139366921441605061104717221068622631551109152454154185554721291874080900312765995136972105574390442110513928848377570289086345024617153702341592308309292059505901283596730193313690738343853713326010228552658000366887456922710527150133587344258047932985095212909785944768997356276190955130470259223565387176272434747288678146136968118963809151931151152089641085105528922230828008214185549797315820942743307006048414453683367649799666409644718010019493813203257677564534292519815664856944001469164259951356517406894503062278466257735039490532347613990944033640283433274809905750692417765480179533984250441063154199980288056672215523129934480994831851847304307305393609885010390816334480200514929355863193798417761967139784002938685181472090056196463143645821824304685199217274141764690840421172265596973072665167732856061505210156652942889650215395155140679457577874001682607293369971161497079097917793726552962962162563595707175163333830390083558310828735647816317811631859255824609470252442328526680472369623769496727814654941823964115176470076502221966837488838994115954404150321688306127936082279586887440813560745324796011921108490317452777985496425582597702983407707474000033101696115788781610663750745695458395572546308078688661566638862817588783249824307036960868630403356476795984381210112564875561279395334087871789761055853756942665596808344634499150571826196448041886456602431993871266330087228347092213319052611856783324159528798202648028306094165169478971833278712666846280094630035278243410985331852308465244643225568943443579653830303316446718317535620763441518157450326035506670702823913438633585051260558326142352826969843551842534214065108530877657515524842472185797004795309015415277360832474037794536694785940809156583061477365005125881805163885867028708053680487725089543222400749343484476355742860919575060219865285849906828299828974501253581102551072864125897579625501549275609554586143424431826317361054612960191677388687132521816163844927603099051430584523788987358201141913977018144646994916736207569352631058206765231307996757763449094193327967080105948207894636471722929052893737152730745215251191690103386382348940343723999773550495897837532416604164052225015906478872142980076369301076078918116736836753198446167504904830400875648526227075803694865499726129284348687733191541414916490858418087916311783859386352490920779271575873234465207120846681613634479072509464602958996656388770494293325072107507112034908972875916293153556190038096830683410512339946390967248500179444043780213540070128383035606579814458001895756576851682992488918429828194200668095882165620140252364923093282513050075734205174692162927255773810738091973917499253998744492429274485348544301506764419086283017187050742937933580156092921581466608886993119131133712450530790866282844190312589500974625864321370940060768491576865114122028834212187378821976582703842694744769249023140509704360813780733965344261163699490738028304793419411340931190300068950856354719487556425975620490199287907497642376024017634688071407703781143770496272005652949979266498082687604570193872210571549036000041690066062956610619176521630755535566941588143022992843183419457624710379834361060913229459349590367808498070745599068627559895084204460296503994710655258708722318549844030034482308262871918904227548703021067436177972215665570688379708583631169562770432489192750021998309023909146728424193925235022898518565313913171961721892547897359703999659651585472382813693120968481303742108101221329032592573963160341767937192562931382634837311482040176579693599856079815597982156907600904984164022643871661265754005177937021490620659003230841554524673805114443732154080017760941873153853765953663917026609060266094818148167486909712506333600489728315670635304453517874959764031164104098734529907610341169554596189780072297221021570095921737988483601373611384021488274279883751577255362141965904779372193209721380205520887316470030505913129594121560600050879842172410307710777840960147284464567176794787167486505544979006358098343215618506946509574844968886309190177839874740231932471001838756205049266990245721703665076939912971187029065187765657712278839682784906732884358571572386448430617853444460253088106890358254688210314486452414086191120664032327078332758119736243094053498606317832496743312992803694896141655815085569715560237469926188373822767190671759572661268008692889589083878751613721463564966587914284949534926162138191853498324262515315571856878889339068132809178136858152827243223976935827120966660470403865804448117018085737903936395033877023848068372526559734664545505195603563800438392063482279062002522384557525491724178909123862595034548502109004837037866922375872039581389407027321930130775707372273112037872472186941022558309115442112963795418485516695952579863052270608966946735559246464337852917503232845630302957570484469030645116823926430759002454025052133925317552126997651404411724401374821984297089240214378760327559171644269446785754446491499427451305307164661780876447695384709681076431497874683853256131809568884821860174880874368389382473922073079942763413805686154520041291222403783531003501623639030466911207520295456594680494227692920352153868787070781275433419765864159116785781769803313763330015258819386364467502384216629017144172288865395704070651208963306027681350695831520070184844386420262924394432340591202055793257131177633133474140138691912557826326357738159262793604017366112724093907350587522151505354105556038743252694884840330799519304501169660544697205492784416526064633159446581000312957674369210809338302553224116783119683731362246367213805431876953330994797763934304154476713948485015526636876404406708446418766704356260859435326746559605758952948782774573210539262462311607099152394077293071158931931558455054487076793257331590062190702465221153423681596349852984026192647330597030207735304007671281247385786216213535768825347444403083677881901545953360247227645286362704086618284569009062204714670047604574134208685105705193765609571552953512400486256565913543838691609927403404145249962504163639160794212725315969195960270587866627526765440876204929534185122515504042479843786847448404344643791407560893823072932596186541694482210411780142463443213940758531559567578515716234731651950811973416771388053340726945431476236806392205857588781645190497338604483921530587589860320411927439554416471141608788462067504923764961828732899999833382130593054243831641860062315249195880138169209498774150945011691469064090984767332979815789818896405993502964726458749693313418641902627322888240319970112774628332483308790641274960204061906957807450927011436129332114288088773868107865214549134493690209433047868455193232144350844527613185853529480112707863732048215099451850377396393404108710769915533120456566540655775072404272238345569205481562235338764634325735617330881273847337374592446763019022937461278792407719842814093724938054353221836047271827882193206652554091553544362276347273507711043544195108016406347983312396099023770795458765865396652686612414191437255720922042980988528731999475471030646052624767619549977897558279660692546030249550015636796940240564086039173137407760796594898556181603298688209052697858255733984659930028652019836169433422178362437586981553214647364598149418299218964817468457818192776203957760055318057734257678069497837081865532459746456124057406210913580827308194936469061756339887755363939174317591831364037374445205156260951148632147180597251651561899095263046132747467722710140313874873815465437202452000605994780079046591396537060967806256057010285648586301497008155447047694725558757235596118690305739083681267742334453448727041210943607439381747620048288310038545308175159908071716167000626436888028267556089527690233965745334149464369924747833798470377301330116906636984768977487798430145581419572426979513703299499238026048162869947272204138771077449002009640628444415967114295856187265786978565105290570297840767765899763300911197990669114787737061912616088404257860538635686382785342544257974519438797001510924294081316867685625839354791516859162442136513724100279459069515783578154940116854427364704075827264967965928883686263029732366913244748226002723754496519234748014251949033706467783129414609364782496320291733554381264297524484187934200841240390028455821077805758471038296826152718014610972263773600687721694588351384663495844542479000024366227637567171307493595807550300950070411485557365225498812000309228106585966870666490144407686097588293749458550122152022739224588963016058075998958819036340342475721347911741032916309107253147491406301494311053409877821797226281928407395062951798643348253960977989653448602249220151466015218129271087780415276625714634024394637215434397717684362548818570242192039701861363007502736211389785887348819378543166807548196636410479176446598181408234084463959069497099132706296775667695110763217345175522770894870718099429761702044545392639626991628169076258172825528838495776886023423758437483201355718937411281891832946396067920086574142769781449369597167460451386946233731494701261153218267101765125333075923754450589476111724688825764563066225994092200454652476768924573932439294170952568119155115443591499195064208488755153467533606758941617748723519033815400956456126593247762184516898857503229327164129738644449910432797980022627285266939841171038262806504382829389822696268556393168369458858518047110232511199605106822517185240512936539384148833679442419523277047317559695540625653745894694296960053363363489032764427513929721594801363002593187269151346375869262146350116686721850115346285528685085619067265134502286634105561791219373892943349195080265568340467247598768343681884454338254563551056107967150295950891308699250799390631287291537775722180501772036304134640384358924998427486591094077745636815689301091737879837582514676912058390760373600599212303969460020808775661115107803345761633064945929521963754539904834975654662705462262259074050010089898677488204482392058343827849832189652162188775274920023260644672093861314569222131626940312357187550918683875477939804699035324336400505154476165472961117985405490252042203832102611752317861089158346521600246787248501717916868668076459843709512415317328726807038458434032637250835592026687420555668346664348946951123453405153352537135646478222776139786080150502814173315657612411494643108958506326331553641683822054614970184651626227873437500314867852403146942423042950085439164162084138585247931327347161625271883820515377571350110726752477345933869883471111842233895824358339498910663869176355917659011609262437006431211919473119541254729556230127594698489806681792782842940546612819153176750339971254626948182591722547000712971723725023657809621980315647807234573619593134220716806534968113764930762572662221957788574315836203238764595432814768014833761217561425930785828637316449176074854135621193898330053605089224338727115237904670478742092483018526351557528663582727765331888224479077350483298747385747979730316275023570664812725030490193605811427145773071797250383987986230230295850445572395273543894300123923087764152566130196617185593484515578321935966281868053746591727409074576938943737441999153128689011638420738497779853052589977462024770021497909444881840589834420324579620472963053860054741370469283970490242806090802382117806672040443689739604363245549893969270363286279528547526153334908677875714052899545470779932537446926210110867007370827613436717992707327441756067893339697111277302360817736572390634802811858856680273715113872656543126362388250088426130274335903218821611922689525107977407505063869674090717455407237839815060155417848691441098736565442939837948425038705992325387046835921980469693878212751924441649667948034150723046812958747329484375338649514207397726217243348547166520768669548067556650323676566258562384843621284649490359104450598744116653904230774217913040552280436694417002213370111404346886366491904515238916701551875919473124271052804193215044381378546532546199738574529213818247484267772794002076980793754757984925843603885896272219880877004036735073378569658263965187711579838842867337123249163800230346624976454100060139989806958236448923976648403175380332251097572783099705308110837238491910244635843303663841221166611380974567924604199993869900687720879989208490211732280177840273436564616287366859128601928256559830928323242427339894784712719896458093387467586823140527005702707600617005673856161555734824340778789060405105474728014846444403900317738623423977261737807662612594294640934731553717993447682624065604121534778793443066414579810135025204839109973128585069696200722336885206678011736228711282374448220173982030024627314962857109158720014480492414431123637138904204325064934994546918730349492649447672755525224913228625046215280816192746058631603487302376460464535416795964244798601650317345173957459909084806521445220875428098693344561518153692689778892824559139904223000312165025942773669208401361555999731015732505116759715157569000616653105624189232603476959587568590247264006238883192345854091804992426949873914142721258992692241763738484450821909595935242897646319764717476730721055707885242698597980558795443223640892843084572558499941167285461521528977496870928460899310345863059626738580725981616901507275375284636393642765747774062930263484623256412263572666191520502275006044485361932139723868649086071909080782114318586184636252859001352060217057343118810802259570370975194762318290676372999583316774435684055424172199831904750219183010580541760991594467092202580908487857916991118997018188978014202212659062548457864793828305228069778285326480553241222528799875331224851275160512202266013315969225360920755123062921683738777261324579015442410163955223292105156876420419457838512867602409656405557563520585010945416731719578939420706007052562695464087914066901945375255607402851705374343072501111987342124696432633999165744619086196086954201170885102457499772425202008328162858168601909367420728900610273754329145663693632475099545096657827896595178879118432917741903960142216382137500620630779219910669716679277087737639998490922175095907712192630310396515069900063241594176887861972088485430520251350047103384022015372353278039455563291520421937226857443168968052719397201879606478156421564828847554979324350863894989391605768122911683977318240964751556203277392082709699213942085999913191559581327182573125373694124728557849369029559928443618016357002282634357271176796829535013025352016900779339669643963593268093739805710051413550428916712063189256336372355522249928664042761208129625101537191365492679096345234602256457342441914394347525976830410679766962307456789840275535123220760505281544683073598933903509323436553891548598472452674471850323129240009083980725184383477362562037632888452531415767196970621363818573895007604741328452461405106731734589698180341280687982566391849611868367610737786853106225102167494881545554179947411359696530913263697633522797916849700632626902876254320785081329939681153564125378698248503707181609577131534250731245570193654612614109511047158658575527843294051004079325476267430081182427135493490067168734082522404563983395396101815369876250288036559497971782470831731699718734424504067721235386715114704469958072378077097512522476191416221688012524082115240466903096560445370666267004602368067592886560907391396429957293391100515861389375446832417900443762300051014250378950058177140904092967690040855359936539169405563737858454621869308753187778025439291547712156449812803612158558170642372052793120580219484059810765602742331684133628937108468619108225159707317225025006669823074436440699391557433814051769332446159013298850570286958446205392606436680819186101346209674076146624573767086966263693229134153521195850711518497137815524286880135271092786650292786155821209091659261568299672323231249296233393773364927877202938109306753473844598420169659474008866868868374265955817950518388226513443640133410942485647891985629135667054178512456132645554551238992317857415458504345010268972810288005543033933885670440741634672032948039947025055263150322292552640881541827320626093130565800249232502833958216158405543261441584368142633116713633391671314978679303551173560885611792760675633996069820625365767681535840287279525768989440057700426319814321085211740073651818304698250798398571727161152833899787747426384397100137392682202041861504233163168294173776144285885360188043202995027818891306557815272815016517847660897276824252488195977483343476465015492950579196206609380397632395892785761193051293138746255319984203987007912734525472907349077168100693139013198214659406330789521354362968525099538985702835370551206170933432512719494866969560354102730412874825608324803948867081651871525109936408050188987854810515481112809012466714841159070402907368886938818912783398517408169757493600979292123428512712931697934902025590882306583700759398562199203728087313352888654313104082570043242372348138971162404244137655733481052677086021110784469599083476522714639023038930626654848973544628936564795499639774016916877313168456687315256726736213053220282453688849506962104269571599622742227683655190365470296108798058152408130753169138151343711556868783813048878287250271202031655081063414456239969647233788996091198756507706962913839688904128771751604521747309110154443901446993223095188037912029363761821231847870413110201020672937945877028818018873900583761024986586993132497952779716695541241534038707316095289279182353028495130072840262365363951561295218230930715680655291336573971389548814909381650918044881040789222434470180364815793042496445683650812958729020639131506257218279396035000256564177652356160130100638072594553770052975651165028745859160429310005194218399644484723222886743926972210645176262659063604940408940408610680854968482971446002115390351421953667186895444259341959181999343427803081441473095039303606118180291046746179351443290461122884717784863788891922361681388351401360804388088316976309333841547842764346270211981970931011268908803704134991219502723795408170874973294277415271656213885507533188832537509237666681511933528911960900618522746503152643525168778694256113448829791277929119627222049494728700979397007411886750644018573970615363294873436625424124036767171898404224890409593730139187602421313502082679852891274973550299514922875998117872215605371833056269899654392554008645647254890346381166761755238557573032672085222075298553442620064408829032052685009324439583494208431301856366616305062346692771984318982319854787321005234930604709537153438504928033413438429638789379611708356137956518478628734402326651077881254336083577078715616173790441694925535884824773949168258775042600238541554749593226635596908878168637100433853596224231365856536698382860740854713943015526720145727467932027287236697691641777377444423253703673251819371884048550300256164822543155956567590357526915344592571922744540290560144565334138094248601599504282069897856947821434883760225806904872594466592606278993122257956137295447766284549469650308505208983824462626514309474785619248860106323883929232959595680869821039858226465958500032666807737851173089382120110950959092266445954260907228908916843189872641261325141236262436959075689632795103082327837046198051985765819598714454986071792871958101305175914135925302416696150980466019186358476356173913777710699832807203664470524473016651273677195340461967886831964586291771527944429267097812192507550728108241077589686938032087732261437082286492915216200695596453354517945572094825739471841960900013886283481910394512398997280023446995183682904845858068761478387319058268551416375649822507670996676604894328411775933223911307875202145377386854603912910417855396113883084732765932289085105735977422990246202053564659177808084818488614484582655278974748120984734424307191531755116083205357216531146216059354479230163263763393897704951348187400610734020008157840406860497515639145346135986456729079120916620689473411601246217629854256007199558819400531251999367226532694023267749022202901802906187511040467573378052747172878124035458803450683189751711473721102418501437855106276797856502141490181969691258440459440154347509369077950052829030884878926481479488987309642602242860414669805157096971397327231719736724201653374365900185143562931125229183305540383512151409842765121633224985377963309374176759719260143027731274304867104000085439134887423983583902009497104131635701829226296105461054490078105521876597843161647632477790911933414654403009164643809351785656842476344099696742750995114279589462330487689361184040649018581632610111387681724075115099144112815019481083317748114950126299597549127157269043319048708420761447613887371481892185933174968729541180869610165083506636199522197495666138355098978340709168372871557078926706768163490770949963721760178818052653019647940727167826911849668716334585984435640363028199769168904292381080156015740695827400031259038577245159137267213795880154734746474102919406266675984058685043106085326709447331380461824325371092641961226662133606385793090207730547645980551208402364479475247853450910417447625555672579029240249519812022014485902913560797526689249532957568774146560325735324378087864152915084066473648336777070561547517980965065539105185258186449850175599549984254522526691063097766924618936390936685689476106553444869187353469529281872632550675673307616608197962203722267322920752593918484835901080160567559588643597246515365090972817804139456563340198202376225376386442775296924918600946234892629701144484850234569487615775252490616918284115176181917288304376768230585503594464865319303439129962014148513456831821780609754195267565903777550074495144845993067469558622275211138027328663866123603539202824820020395806532579068924864382287946226695271462956182079003044728458844700677399173990530238975936756423445065752915285735553386122497078649755771221846652000130063092058647996698608032798140513860215741903079497743956759560888500657571973918326274618364866882924149757874073228745131922322819423795423928885453666462235327895475211736175038887199185884406939663657816005380547320332566812108239393304020758619742565535463960027496273259276630693336196193633589244977913452294273739525881167701618935706658412232478496194933204357698889803791014518033364424367562885657786121974051419359149596716237479183720231151470147232838674764880465191050099693679297004453893087824226835059366092804197400628863139361661919664751008866073516224946075104801202103897800714235531035710926933579411967367487133998322721085967837598432470569924004505661658555737017712741481666152230108612617767630828771863134160064408784334918129790879387722853237838872093122725663732403678430629485884651946700147397443646229772217206591180251484027352381089599375875386619414697398890505193871887083602285459359278232084888490558898411407672029474883814401263644693725459218380629463983846843957518405392226799045748695250898345539830272696148050530096197269368920644431711266409224965821754686353779262045313094092583226516275257160073722282299686440782269987415119951533409173472149827378789725426930421115251939596623090118834624843181477884523262403734682997552741554541163027697885480326857772633499709478628465897006786018599170270404071962058211187138400129377305685814244765222786230711703580306560125232165927675390976495747469461392166174521062877907659644089347222083050269875401047926475108542715842221182210214550854807282979621660378542070608369871711073790809906297607574979825254287869600016632062532604395750404781845656792798905584031126014128754087889792342336488756825034311729664534735862044649774610354559319998901454828977218942997317539382258111147307378557971370968487867806143205596222393253167070583486302834105085748557165205382238107468783519966768600450902565997563955340860191302945749456644162991363796902771066005956277868683348433031428926265164545084535110274433688227114861414791196435152413355450120313131165447817581223533342846167629040405920741884671603069531784060957786696729487036051341292035250767863404363121442141941868423005345833459046379374031554270214288822348476461062713381489639742567911816614366309935574562913430858611912950251512255050321112993014894762957326769462890498436530416942253390210411990480939079013483572083571150902302508577597417259003895144896516609051344099040620166031853396707417770930660599771053761610016875803084327958134352268199622760994391342675901488257223461522555678751170923116803360634759657909222472701286978108070718404167595845321035686355390774024299506538123078284316359973226012666875946557265504442012798633796676596593609297559863021729060390534941625777884826951541631564028620635794531138825996321707102699068731955015858025821734691589579198334493507868945564330641453513113600804943524634553543489767128247289208470790919126290488091325490481198026599501307134302409975909564425251188869659300803551293806930917817428117030998389041217644462005342589920140125013303289892779059994294398127383122195873960981454562378195292433985998741300442301073044575762158643926384473199651496348022395821466485131992721062544060402791792608203180713716309710473994020300571091698984820764322350529165481542497441064708870290159791666571512933914512544289019297924622958803740182877060284836947788487173998120063844523408997091704208317157447273719201467275694452442135564423106076628063809657656598532100433876818246244172385842094538456122805075142622542160180635700746774470707907307828673343578527665295221606519627372245327212238147280579697416791539308329757071697282544477179862894227280370042252596540380056896200895961644469041275092197778483529325145731200300344882279046771652594739002152007140072371680189823763302621706781599069449325896195204454890131951978942266256487103587291441792602872706061987955295191534919921564314882198698617145625964826858842977940265877994767340150712810072963871540107566969462869470009246718594161621263164510098281839956618969430730258069397562260922542730574436362669013054968067699818686648454817507401368182440490068360811589450304748466482112821001222871645457809354368642485723667017778846784254444080997834101845938573249841869506198931646333352749726349005253076385709123468277987977600792122361440632959337797170613115793585235101328092452825133680094562645683641268773851857018543212912259863171951099709144605475763270842953646590045052435883698019639734682530193595929706085045123445000189238362619261305507708674986273673124350660940937715102252617761287780882920915529993076294272570106865351098439741314624931087840289994969805348385349966461418966564982246512626805942500165582983592677753652657205527204204320480056357366092627921532805186079135848481062579854482777029309451924340964128166880349546922650149130908658063211449317272596986771971360390639821302584318652950470423451730890810426422300562139641602968244689674854957529606702481075257086569646821525011104748217335261406788468408709448005760151693729613462811068582644922529932118176923349949848338463241395131390113497673537332345445186361680924604663950684440223492115543749756153326809508224446273951622987050177731290113350117842739642199663298278330018522762279450976940782949947633905721936620796537032249240536310120311752496585668207798341113550525937032605018477702546763354671471482612098957723294061041512269842566438068689062186552581567176090476186316323048402535491569514076864472515661057759836648046743011616475283115065941803886893234307248918583392822189615470111749813865765854422994691644886523180569279713606957261815459663067138406405385533721439464869936492701674286337260526938518884900682327218731487676929461148109225776960189771344170186195984746645395342944354052817054125754515922251040899150373578149187817417205144773391043676593337997996334711340950285092305211014330378160817035224778992546854812990882494424284244354483982144800358873969156267179077383154382721575353858835747425723951314705174264314794181203819294401957467848816707771028123675627514198207658325694426138653199780864070724967676158491164242493528973858382457518140621291073880970623467083833514064406887507034289287781980945253982070452062952241930233774142017410542484726340984933048419227373005165886191835569205704809367329715070313356737772561163776311197844863670448401422698545441140121905370497703326211430496990773648812964322440198078415346617202640836749519409903406587435523386999502713286904764500761993687418865228621975776004576009169701780402977195741893675252612658257272655998749485900005870556771516250817175276975288407430084481231000490139668731717672119163567626271024268966513048517399995578920691223788897893081096903680632973847955406806752332723963161817010360492045458066466783565698664082278912847805593574419046009275730216553389854677513398403450464635529652121064512280046605895349772721897894893645571182933560169784312297346658337334380448444249338576120542963163151620873137636938996285794700623450228986663656038605039980287828950708396407222271638591642162199024787152358888196761945765726346658619470544173479701473271706475402302661950674385603944307610086401607453732623230700187744176535703230586747154298158257411794302112449240765489668226249863389189872777980044669783660143671460273182088390389094497707136968640284228718862635482832093509396813938876496248684206388875912199533587007908508613104249504557125713035938329751322738715360254972834876496281126347296505318961056038488133096481370097334802761310468477748323692246117696541422768097368879079732584036121311855348252362270727889670458776162880328149553085220797107500462030461349215143403436360586509905606311025009611973930254153115243984262516962182107205028659368079891789781088782762823134601602603496059394270132001897472484404616642940671737036168132121828035534333388946278963362011197924242897621092788501016585891621176681052825946422678376045722423491856987678040480219439214532746031562022149188660295199827980528907845959610429737316357575650933192287306634381916848062808394282241720942966918734087908530860486418656863797944543180674068740210798445825173026336950915138282661005082021827520471920478924373709803488560971395701020743020841478697405326907119690456645533973082000149543837253820618326466331092313168554068927386627224887645492738774850963435907862243610181805428806942227766216564926827603664507237225380750690902014415489304407276640968640331276186593745278589332494455999631566777729630347112275675990940193950261927116158145730061575338081573245948661769459268357524778475239641334174238801682836720398865771463523713246367134095627080062830139302561693669749535206207126075742985126915549450023675059834454527722057718864125694323554577325860848633358400245312931913466005112616456085309969436029065669993521001429639435198587215240617576954360362474082086741639712437130725975972916413372337797467795342843164873992742564820094396863870224578142360229735479945898137998837439545921240031337721899993010074338522101361836838693161170791259147231835664050160133159159091942971704970214888863214464813909779106770558016528966778512170808229028424474569990523150346088369787305207106657472704709768838941850955377213174674807143116162720922347404006481027584228328322764646135320622159690761216565361178837111126675282133019421011024371906743229108997407924198928494180807172461005684972589287488514644749030199529150780952840431672038359291258192273361937000053822744507070405655326657091613005644656248185031397635835766660268820836388165131483317514590033898872317773755899633728523870879029739024491970044867969425062526863476797474454090477585995924537375537324689089203935817447257024579231297939016161911550762011109904580373816364269439104142839293595524120169652892931419433930313289390603102594747587450198251774667030804993974326722051967476012299809482621841889133452331865984720929822955443566631808976460508029393925314279530715660560037289159586998868026336340005817575853956175981592792514478133770683562323082906417194232569345286794238886602000240398357199051621381645302606040388885409260044533307042527208123751437415513731366147707810334362755376749411049005643609702116942461981508322423895917230196041274351306540497285873130981681535597069373283592427905202895245986317177826521019823681430423248587381223650245941998912717565719717567563611320110074936518779840588877444691510298609481083600640200044946271365023290631308437290350021347700400782976719274639738535305036189141932313610737605065768341726616033084361016121604230730506486296956310932099094013776177775382451312103075596834445878490243435994478129975851742075070050189560510950340580358658817378448505127306876628596852533185194582223019199136550051391922768268565164176611387396716371290785177072976369033280555828746864233618474182882134913251444189896132925819735918810137745393827626081059406171402513123236940653352064641810620042231908892477442874833937804089946059904268762526355451875732851328221315424538560399234467866566619454939313030658498156974636065111854252005178514950129328414887966666701308440386579231346474221654391789096559101975393427653329392928499823289709548917947097204163044598792338380617192453839198154909456218317774012090232857932763913213787406840757791035737624794956559679040308665367524728573352390854341006574131990404200607298465598854875188043886031852581377651908687431420156233865268198562982871024461969436140624654022431220262077887757671018970598106762275177121952516566858191236857729082963356692412368303532707343708748270070012012660361124844432260089100182174017943709631482165941405951965470957709189348681162267901518509635662229124884482357316051274871107506755031958544734467793538247034370390820273566941059695319731301831892674690026932314254403658882880231999264618027720807573642751697949088657919479320339627253989132881714915515089622136817016235891115976628457541028882570049573966740095987826026381693823752457815664701291332902602170964527249976487351699973805931735444737171558447170990437496382320109676614047342607090921845912806951567030862946467363648004923644462856287769883800163418748482957512844609804389059605911707139289358798592973664956939018010511890671509229717198082443982476380720833005492353664264452291231785902456903721319668099591571447851623626065516743713639957767604453444038300480881886836017424985697388093435140367449100679144714081364641296942414857585198910503909866830018019887321304271606875769484276060829089726582546042975241138253765821822769289486024283830969562348661683637726758466378165736638266043870061241809842582712855314582511916314938137693587251142916014185540286005216374272801502135384407806155030137566267975518498206587362739004481192085935377102286295405527969010006849578829478759387150969365743671922880922496057450696370026220318848502257688774787687119859804981854807376574697928096108713778413835593840786143518017596270140511149781226080007041600703645389312488766796420618090852605872731679559962144689773365358245623194070879330622530393457721755471370761295909066715760396629236684891841895005143472249657567832955003701862762288838520669295989555346127685965054332699859767549375796245160440185440719294923466560479443372434096432993801760690168531810259934780310095173293778970281934108324004581680006838785293936336972457518025073653110237089073393333974475553395704634988265980395026019334036230604212719148585503041022154542905657359832535177622107287330389619441238598300226803785889611178744032158229297543208509829334930521942309120283879369344260192911952831202532683255999974018704034648259538557756014245890153231917764425855295734102631014805986920716121059314473355446221034677241737047814373569782739366555508206350310282867911738299035112429861223111192504408609012430604637440154976930784668827584028455936983224766125965127119233018585862107018531382486832642322663789178833033810633517878865703086281328830569665889477303583334762510080337832260384426848672464964664363843925838314776286967911887528634957248066775277652153632550576858142111411736031183171042733645903497286693158856972341561636039697583004689190002584223075459848343543136481333886856504234964599025582502293404489586041727353263181448385740567473804554114451993822971072611535341553525248425914967860577565275260948970645684850074604965922015835908690494000180458294913276952971360219524631890524907593254706427779894006220566278648029129537952228846851409611027512940349736686601248174765007450691242528544484091953424018529634548756355084074026115118417305569932904750727787441990845061762594686635176513633205634353387276821562510433689286567651182717602395639656029924384967263273450562325183664384755805927336090403094857182053816226434932121052060529195311795805157359492187922189246854151395027699768626862331941197246320129673516295035375768320342179865930927769331390825327965750278714245584737753933657352456048834468174067721208107179691303361552115466817717762324350998980529336080516926497203843363002348701731722367254992394465338518498584921526179235176387019233798448655325938264697853514531656016279540967462860729339427918595420756599616435825884991723626735336406934485135908123629170338735405616307767948221857553343133013717884884523152376601522756344513907886494436490607093660239535271245033453774315608417699371771415570357094385670694621544538258218214878660179571719184767338329772009591075686236122473886470940694546123337868617688821207564688648473536829847102022358978332090165320360295261029642211700694968296978090195793074232031917134043011607413361541187878462167712319794483458295815845795219493573387558765038975751428935660989090525348628276884446961271755661680383621769208947257933633553957530211796557024478698853867293106782305158782045455829565295706709387123728718151755190229641408787286463883276020143320194800918449950058568774289952283550135805571906074390710186670392938476466417269621591784707221999215819211743863955660085354392548955512338200935596333415775180569606003425097703958904587851004893018080385691278731988014360020287655269118892236874693587460112089288992244784766119095105895874326029674170529476473489194453475061502851992460213201052406728350845845192728491521297649135283738312802155287161160785428833898429462857164470811828387962887757738056724290280202016841915496841055189624162978001172358878506678911905040739619504338586343755111392011886491458460072939578429902890521217439736282790127526550419800842993303296989133906798207819433812612297133176924797910174576044307324715006303755859112692372319694428531775295219241667665697857864862802549608747632460604140195281704686117034324647175893340958105057625484295820911028908979555729802410326128583967553158264668030182736245173892468388673134874397479969346440541586157086589903594084407392376313647789142891056544015739323658874658549802856955993946465767273884181740922892293237025100642794338782816163945067431991710153833374828821806911695365991300488888566133219955245684255612647768219850946497754989646300454386245829296922866724510868049900774957542615326360445746983909050333162110082790104343041858622520193737920162636091183049872853806191782096884333646380430971622784843364482548174280552410341558701496786468865976185926325422582879071749217465006955270117032110420767493731649507265921832072677041294803085086934461168294204071971417705954137105299666028015419987013458423407031251260665008733667689787804593799921981313840541453334595603115675131275958900927139628987171676565086446978421354186561550549568882527012878248375326017308275208872227530070873491534934014670508343290944346398629401280990795887883405494560924389551777480873428724556614597635075180217513382636788975436370297172290093241203037477052951241334726148014045120393262844954897717154812155319173613344483380742987358443584337336619067416363985689016496043375773739646198159117159329423368351587092756829721040217388466512900041173076451449629982624736568055018729235562094473756774924139328774883101027577050804607137681573367206970994000762456202052701800054099288740364222999004628547688427324180883507490971112216861938246225019588157326123136500027958835583201915559383659911756675827752866776696877530369750233976524669559408342181704203065439244812279957891416063292105516682835455590511248043883063962046676825835133211876747623046158773961686725533517714433740787472893180193836332230398572334258779901959720703004821573712285147260125659660641549707900727837826609293309722335216867598481678254518964362521278221042330605260634655535806760340838723508150716657990978724102553639082451992119995463416885212179997974935018395861219648667185851235419851087217600011306547704093430023570289174945608583965303014750718899468926550636550100328894018631097690596847463377797222042187966220021103986088324943446940120365326470713330226392345828256026461069810211349199883832210801565188291614909367128267625629328488289668106116623132072160745811482602934890840847474775461177343778189126036330070664768720027311699552017621021774552053562334451300475919706215466385234310336314783752568939817711823217906413065428139523094222691633294389313995456667091596865044496738000258352581352512825337042242533265214268746778825609256127061665569942537920540573697790031486647971794060983988446178630415845211325098386645862599593194920378079944813074520932181851267533751144990769212451959649510533874495841940829774410270866454596961149051450146823731869849762827017856868813186108000569474420882337009605256743998383533322655624882021858974610471805021601103154638472577406746205849457992247000967988886342894610758789184612810369510560645441888248063558585046863130418560878585358438608964417622779803032815696137494453327328914621950413297118433071475533057728039965509939150683450434299984856948400044608917438795582375019298570441619406737608796869002080470292491430860107166754780952689774911968869357135876684947448865765962541145168037349002439718411499139828898485264931650187002162823803669270527398795167920679429877658627866839956261590781675155784925978758712586052979715378235774956234640726688112131629896432806822174565361744800806861712220587354921508746797740567675822646425647949513029240471228554628965846481322186351005753514031241409388190678107312731954593530907296215551851521414957367091908882037959191106209924687211024091667853928049247322228962610490287079612952948628050817846746647328107773066945289688672029095274434474770865451194188763618932417177264150030194637325463959481415753087353272008890560269311280031509656873105994902142542968322051111022458465249057142642054920452380942847979957551098126818504884359336541167221269414019737465951563753841040107462333576332636096035279136305475321597309582786040055222108108774726514352059258508643697437121457862059392797540445928153936726257264226632514213893864707302688145337757688677108621727349565871638820802384284919558250064873402111980526500985170498549655301931380263535653757528450041980395522307553780278721623613168494356410933955877014644782181192705545992308361323583090069728793627528502442829719619157567186218204649198217880802273670430219797103845426330236855461131643966834971164897949371457398722914606087697090759707973155338296161212064679444064589125251314754894218536458058510567152620668841767033218508390919297688222913341474985149030371270442814813532559019389704615175712763490926198600132858320794592461316601033198292900792677944272513914262780712506729354175540906113520215319420513699772506421617237019980486462770820471038001720633743552441594515991863104462739231514978842906286796442950737960211117910737765145238523972793311088486156159282160745293944786874136564889943195336803815791250808539619921365796920658029437622757690330036438449424728102494250212698926621163553856299675307810190824693635103177963780835908125907934960263870773330226825143351570242423039887004940464340175062770091137920794613444590056466705051027297942316442021091637710766444657095555689563972421058230289900737604444809479889467522693251484849696591708387847927168512497507563505807951066535852903014654754741514219478880258856878230027746510075361787792196236857168388035095133017503941545056494460928000019892481110502623231260491607866769283135571680134122330617057460454778925875587328659992607334100819781591261158313908410219588980756407468655029055173492330735479067284253466823987018430686876318428392836687201513589773606689772733310835946489566055519462070203673707416007155222159773899402963871018069803368059592317516721087983208001079393977173855543780207091857554973257747700366165620960799048815202587516564713772900893925364210643290613183832281162487479523380612708825021555412591693577620114882612754174659843968659367929509435196251131650916891280475367019897989146507493939657654977077928936541983212408200702865285817194036821719579436247769099175216120290928443044364476185265124222432185520733453192806839932910406271572749932561660133564202756550124949219097526149039143513256820999630007532851315233705104437618127504446719564236067938247922873422110033712352932204571030669309802727709531655352503774115853453602339204814798758410232466593862409400723004031305627064918850416341952927376803259503419860189955368430356900379045731345129792103750012092864879869471333457901406353740699379106935593821108301709493979636614231440188406012689810914196044640940319539267798123324010032522715375963237947499558045180747579984521489041844545754382210906754806763546983371239832880329073549189929190847588516391394895019685264954228633808502209255606326125021799222661780330755451443792880114483300355560892577481712417898570975507680940600683784785686310679435777365654411418221972679076494630960822159347201927133014067005432650542661401312111253524571055396650126040779935609547142935455520574802379738947320722269605732438692303498846975435955493420664365225443507386072678880708867968192819351728760589410864242194121285429739476718506610981896848102642674242458983582116048851233150760154144609695771390643842224277777956613124474634319278115109755182189894499049553256083886126511059983814075583028858371726626928695238397192269242586647118802774259649008812663392129256640363058351850388123297218631142501933367869695522424642863842605828423255182297586009474407662764323597356925845338561731719974535096568982461462868282580934157804286374674809344798260998539918549844781334577122286434365123866300083728475845244505583951419142375540491432223871208821192875196256855795318440830253623682520845349940621672480963759806289765887627431606604844019639018980021989997679836975039679939871323184401041848943475860489365133231994065945894234722190492348700893496878432276488968103147794081105019989075470104831346374794007250142631438792113405001185067782976851278956188169479148055721156937730400751263514878971497154175760085873122455050539407368368669543442779997226650748159210926800356756047326167270920795957718861087691651445807376635979590068796453379300240369809808001927719636867633101911316862686742423863105725334569621231056319109507842144899181040965736349968543019809074757716271700377410530849310046670421285227746276981221397476100739073145991423741125499333299816691472539915629311691493139347143016004364117542220442534183783746031819513614055076442326926652927083540832166515172172938704747007371434068698135655280187777468603823054134081229242435046597396967815289081525283435533332150913986704989904316722781762126610234509959722872771347679351534708906293600234785316095292703629677009883840494292466644320489909612877844636253204179885970785465379785663230226661721679552241962935874500245858782772697060440016508448830035634626270932968199716039632577462154909107354480044517473950748224344386151272638834096299281868639357431879030353960520239471639206991585410550540669815745167358517700876397927836044370683407190668973445974833899232802496102478791182833394606196413583494066866128226683697673032522087450621447528927644701080507386556468229659023577708530176358514349575949291806870832094676765505239301938590675865533624050237922293882020373721175889463055107606714048810580336235664014052402923510840015553834597937949395733658506708871065297694510189414617642143016541795846172066498752137424162052283350115655413763988191749880005071941250641416182161460707430658063153480467934310141379486160571547345158700383709358762267646738802868730464771530244416711250423006188843619158953073271704481801300712625195726476027086018410883663279624329345742490338486427734647660800932298775517912388846505203646697172771449304677259211696079321987099191582185896294943483458817323903521155593770344734808616276953362412694348944293307885542547266757046270564556953891275827919878476890464958909922639900885607557853940269912405958933570816205764938460074981935992085650718038873337754748808533770659678824907012449005536688752392254845581736656340401988526126798047795622951378569073280817283182943850193332558347820453050932119617843349020678723577554592534230616965686029430500739288797827887143960620350024560615628205950254164162263668163756794998884958609667754186298082402192442891663511481694899118665050100555887983846294556758909434647366669277801888755080508221954324114528216706082304679573961405509115285478481289617727991466406816628893597584318975636856329978657954074123843698136579066014403335393163338153426047907305952548876402860942371659443654383883125439069600585743021903483367826747745426866848883379485806581796448882466369759435201444145720634258103655934553423777349837467069693657785022450836858501541300270868483110798816709610853353231717823576992068258611442927036203137130026886893269301499087030618844978518161915889200232783505671834660620072333227650569595122304030300161479066768177203762573466868966526059868385450109049668869930516577315173536824931252762540916946902692057037158701287187466786372561418799075427343672292476003887010438625193702705625511171946391228646633872027929667055206717019562468138940560639817395045849804141228305639055396683061304553911102856224481601703991846776730649054526697575860881595772665336446459737365613733015057629734818483426681392446855434769107413605873408016025903552291473126854456260871129103198186874730016141470693681767386183082607903776130558443249134329577020239774757872975792440283473170071719310102532167178575491861863690718452117766608631156366274229280363243933709658323039799897192026010315664170320383949293890192908966210769866776241525627676651987158211044364965694518872625980321421269020071852802230127963961058192118098645949930394827969998379674279889167813439140888654128291039687225271551202470468695375994877651783507284137592342403849024191842860786520492506515231543512680862402822653716919556089629503214196810003686046526334717191796555071999092792007617501827324985704189084038784018807943661458411985547715333590649667648727050747193747326383226566430396890396268082207922186496430838209135995476541406358734579530508797515611686811911422386858984449975864382412727339410041415681875886226721792439351095891729203956989897767511965817681162127333288469986607465880310162302188741541577575992204430662448845381170165201598742284646499067938530202727767240709395121860244912211931508755406336460768666323453642443036914955067024293245975726660501437800535014421037881179118879506520699778099051864865527054110925670724580725870304025753868975108041137323292873231637021466803799882914100463926668463658483213481268268911490078359047123506401056413045236606450662292629902328045442857836489066418688339634608437022816818272200990039724083404878475675819934954193057428481501991259686458560792993914817125387190498509541904497919330989152558649458846755166289004178669462979779031602140419651224742226605686093684886885611189078097389478342835306153125847874741366735470129813949359433079229237204168339178773820059401146066627955628533730937692534519197094780925770528870931318471694530077374315637701594223702014486058777473390327181038872954616646953909789109162366324539789230057633472584926270565249667508981023798659035512279929501210273303138271573607145206496229590498571828618378256488210198276344153981215939313786360084275529773088978685394109816279724975148979125002964708968446432987081240664692119456195379136455621099873560704756983499098513282190073871968982879868772050384907935760419706496375262906414377995699866043525697267745819400530529749883510993364208577380453088224636161592999314179965381025513266096649883633086941804179456407691661443724162907861672998160649258542209145803160954122245664068775036276999869811856293001165141924308705096581287981301517474366613113841549513165321020412698540799957523748038231026928784955735269798925646061360398494246351601636588721450476429611756331581597911846868846331370228104973663974121925174481796379909072770545751078084597877492587152790606371617604611579080434187740101255377576177219057371259933622015567219815320492124384631642340967576931383636242041525105263463134865170243002818999156022900673126757939553547676963625999740956105690452244476863913345845624170640759498020561783295915682979583834388915069005075870086858306244649038358085292978682965209773369048479302555622760099490603208079623108144386715239382788440232941802403983933181383945255666016857181308246290968280302441942415460790209598454536646553601646224903263058636662632485019333576498224629495633526903169632527441651847462624552115154269878174163989146816627952768457122915207185412852831956475885259839954892368402621282651657181635430300112317429609453790669215996024451687916818376581024830740939923270948151742313441651524119806670000348551342804193771015166222090827237561921286244883326843392529933650170546367876549831979337406647024232286225722512995192915801099018853642577433915669288663599751117890275339259441203415833647859745517379884828926736448824262892569623054153118825938414997257698863332749207999064493218932223770330584899825382544272753750048471128466071747831720172457162448593954241327596554206683195668300560612285848369670154452225637737666074115413985357760727232692957358597016923277758186785491089050949436117322986145625238969474926540684842248350745823627089961900511265979876187645335249062649592985493228550291139051997044832974639582683722924160844204343964740878711651381255824217895800106197288514107791459358001671835929678655473683609376663904356672743397939263446082117437624710081113405304164981617002497646105878235070475336391302035864929226225655203784558736857861750731561585669729371529797361324207528065780660075156417113422241841929493012407530350218509446399067227944138280752945600187936461882072629101969269734955244044370173951788294296147315382018092043232598406160460866822786085879585204894509962177491448779463906729797606992254503771676821942930108683750718622589081151535706300825541521171194316987906501425145630322585374541881731302446012005645566454515673907238673294138285378389122904683238534384125394143999833088260378684344401592250729670272307390479085889362916387812868399662473793975803081221891887097857405628657869151714788865037824743471032994298493962493099398287962167532392079070386894065538572748387507648281774071581123502904629340727873963769604705650822711356316656497310068932680965883945724238706822035294101406320144424628614556133232988087418838388386495934075581847157817085511554533361646519713550928906748220061390542554050167419873787487214342037759345899331296755025489125627533557800873635409253750532081688219411068024439109669354725197476158712219150615611110360671986832601218013846337618682785322212739622073479952138612942971018590297557679369014028834030084686242260134455813918226823073440970391210811217370880552807737200701205712837300650521485351466575062384417382725081359161862161981251602782149794371409566482706178546526098460076851442174028348499406256069443902031304448143702846953283892663538910454982838535294796677072327665576780785068069848722809883002068647414499932769076327785223350611610129942733876476627610576124070231327036514132306237500183254123594296059942134438288162674750634379394696015941086957235530205398114648946226605472520143027621251353186376326296314673829783677701766202017471943158940833802894552289625797714712061628033303551330647392517280280729652831437673602030950539773284282444559050592658244835379597383443777732404653524207355897811355711213069879398452055687734666824711601750547693445598452554882446971545949617868069033071211379117966078447772844246636414543503167070599580471223675915612165665425128834937408027014186652183278263748228188347871453417556511415931268130968845622590610669318721848793649734630714599047887407612423889877026775469427504012274271786289824942947706466023335430641047105399904898189031908067671437570011766264242584811269853834686916269931648169617920848754425684437776187534202597152297591902691885006772261739602423825633903997665676612623549554474890369775401248067161329833479138011763604960289949152868162625006308698576979731117139061879620842640174480653283431043512760305180014120301415949193954753172059820212828737741214691239300406461220254028706459688151153286600391348343122174238540429244420665197620221629692213401694079587728076088981538019809350534066858988838702133604108881957143998493143975249233787926674441939951642911879973042357530152331684139636713000506198893658656685363829477625042141993829434386271654132905873335490314911088835338647354841344894830451993627986524827004092413771197954461869761820220139313250240217749623775420049937618203862639522273903888348795900778400315979182008945913669183301816943660030732372006751741331572600505282757485268658366626664556672390721682012002917534529956078381418846074723810098863545242872087779138749812330781613701976415317795457721938162949793932505865107327065494015380289820480537734483964205865306041229278598034002244461743988560027061217822761223946313347392028571498704337879068825358941917059699458702366691757074805581373308592912328782662008629897147560274504717647376810606533991991108738736635480191109560222035451404210405651090771637130060061650161306171567000582965080666737479650522179390514349088047446343951140911018757583835905076881098856734471820172058808049551647129429259572109051237345931108247183962712478100206839153100636147715131598885538504457188005831295624602701532167928037297166380151293916716648241037825565179484643137217689354498502551338868080225870861125310863722753738857772867579908738148662629735981406329648805123834642884163906743206723439493520163073544967498249280982495886481304080354866136608332528619993888421762085547991005775378915382563768064207735229499623846470523457795853802232450191679512837617716076941449642908400832885727788868088710628717860913260358431951061895704603486154371176792493227115219870780810009579853747087504832436886782771629224276479795495561633488669835332898810841741088565326798116246083363448404903269411418821452854050711035276824569258888995640032059768919688443041419508530882572437154780155193581182851436932066029276669473100875203593776009439758790757621187354675598851573902163982151083735593721723591421065356209672282789322265794269514473727085709578008296634272831205180649107784946021642458661137452144343643398661652731476203004026173667287949641508141590043555315015004755182255217489542945789164058320334900741879541479247111010473914640802672784738564141150850153399127695773541957157602884077053776316731438641721275940251642627585881719925026788001735929004150943142040738405987618242023891269786181631449287547808209215413758488564445223539950710694660654228168317079249930534144721051834428970529747041973190658262637370507500695074790904347101338763261149869395794630397786258508769364122417708919983044922913352199949184912807714111850079041460763841343760713695735477417334614307008700860721871917203688780888169397451978722415299167982938794059067150573302206218849108570444914502458607358248732193829696813845751032695467128806482254184251402198271640249882150698616163774108700282153077107744308358613298210200957607067148166254045635064309202630646052264390839667873740822552098756818473888310755733453859169335651239655657209725696551228913323252181578206170368875826012039654148116480582819773824167521197658053992916605697274177770083501826405789994230035770021282477952113066828900017795979296662215814769071525373519917619294856655120616494859951002646928253706402693271523190604781852168404112583080398238258874398145345746064840195676286269422535021675541971480837453128974587790928688873629692875787595838218906046203209225888176271502537236187445032167799550256879079860616462760664263070994107852432920483532653193857818228231306941162014934318282156247777281122148250052110214199726791341680608006014103615246791161515544125949183618349387661738029164748810377918571399356272105718248173790237629485865683991705600717430488267076024249115408629323275668909983428083887825099407860542172486879543427984310196984725430948596189113172804543561534127707024858104981001999989802686086520395425952878939415270681672219856285329664521340755214909350613701896595214961413585238606690295185673851520857650453769216497698372489843677023708729273225618683744216181664929721866257765507770787953630490971043548846778341558211882096245564758839737389578033294863331426150614180523441395315580141472454413937466313944296301364147444154889966143217142661438306678030237759182603276016168087230998370626856646987742035589681406625001975252730638490438357357469095604616794358231211677322952301150011532151080504885863671760727040838327038649521665763376515965097804780889327607619262292698748825833841724341331033528609937753854198311317946100978876455128500560936454877916225258872030255566767077438655158942880280251019005317881071442056632009966096953452468129591532888278033058428712856522514420643779928564136353520706514602930328447331138297373972364769693209564975529452574301379669510539142847641135535693779994385485351145650584746876257673226631717854234978544344945411831796407681746909608978436896335915335154196108232986550041452770680295821559817183867452033297875388812904176859926636056265275480417870337456234168333001991004378653581430389899348707201896667696521328443789403778512774947509326267762992901693343877307205382220478985923453967812213515285691728780358499971106918976461272451254343887981132046792559937521494920482943496289835335035490589086777743330188675908753823267661574139566527636021177734897274239403395485637049045115842482866955577304954947089833952494057478279978036356205472408475744170920834506645289769160030093779538800003628205664851046815993348468770438829473787525535979592531016334436315034691426729509186365681541991617395554130794794670323446148946486049369660010508022805337028737016221677877523147243016300465293881981433005912443438405542164540377873233211695286292717712845979753668797621580623786683752004569165479481014685677182958812513146824061315545598611418526438530339968151521349311316578901362942463007095962232498036288357954273256003710085105365023725637529289701590333186085602817879162532761807895400981259646245581803835643953645566807443636708745597342102021304677821568527906243510802866529031932696202835056607609768689877999053289986461082766870674938631634397777642172235373278059454657374038554617368311319494743354516578184758989355457908846209225173984419950942695307110201748290955541026277297866679608070406993060808017019842671478814150002995006633915651157130758668311066603236591305271974742260438475085892963858026188801043597647741619020644892043780174547658043156565461248112756802592382213632151473604560142241757242553320008791036384746368330998434285322944374987612500616365964609918092113630308584353079857666012800240633764398636885399844941955851408443401001384119515887373845784943347706804238738925286450622115442055015117536809817116419983540896087603681854687875816052114937820043393639171469534946455871315673926760829557853650732487345526021576626080939328691193244608958131553665596993956524725705515410676041472946539741613125084475569133626983464038035621003696342305489633600680268272672541460150508890857922603256987517697388157109983318002590104271677888699490222715502423245516144057748704452349553581612099756259586239215152276963330289260690108020911999185625599987830038830345947625886598872085599201090161493868521438062274618220711959480891983955906808118538715604156831569951238260975713705066004952975716948559309820465376970797368442217891739875955007986010270319295078012981203343859071049991017048157497953190516958824522962503699523342936379129776281497586097771602680786374883511320601033355445311268472174921248003061449117625703429558919616121539907541772495718556849505696274753024710359561562521442618942425435790793574272487117935228029568789121249466086794971359779525444116047667703112300364775294204201975531294769485392714717817875186908354655303736067086100327061709306173677646690473084483117163115250241047730688266438824879019796178321949191178871793064866854696113198105122027194725482256355586981665907008561990590524148259447206337510243538462236892646040333045848110491159413703192646614651736325531438151432790417166075026682519634471878899797910384466461977039861965601074457099702514351095258872844286094741463280269097280271747854613317847161874515433224999450587062969186805571679033117213449379539728626090713010115154142137546048306908545972949472620092065177088396467150443069713898243051515731657253261755669646247066807262640029954140271404750749263248710277436421668223038070262577561638399164314395495628109745831151092847524823244794450039155243182238390543471092850692749013200798347117594234831869831893400063339926307494663442037691882813300792675796242986168575376421672562836485632815977264143057858442630764901063241756446379392128583050113184893659814634255040158024643161112354987910006637838870766052012070221903549944079891462064397642997660703939813333766744455164388163325737755059444070697467240553629273542555217867817759279839699917878376441438882210511381795055862343585096705090435690023539252868006010552023513517972405424761899458781411517801830477326951499010238756160695483893262457986556720994749240308954735110128944317402080378080187633698508977031890061629865955202221957599314182503499989723459864218423889362984969855414832383586531303319613539816527724507156482124297129986153726898055727947177906888778555002589476119206399836653731397142815228091512630588639756612504586139876253449840386557634379980600553741263062565743230205011350921154844969024452856329080106592154594659427719410265894212429571707618102439031298619119314833979890828517558456311015436060134144759750765832000310182621146087300066037012908496422695991473729020082547959148633941049149840452953859162262572467396456329427939885829590104509952801525474809385309779236214110158333583682741253650775873211242687294544559502742741976319388314226027264948563839259200156672550222516263511742851811893785126369306593234283161832283098257893867219583093644497809646286968873770748452060297036480466677227614980330968039794937616098501199922609818657964046543692362540346107031358665551064860317401290311859732587682915099033885048599737790418065076381442776363509389781331719807951542785584430234040583963636189609491965639888625659236413023646860873211821447893106283493273621881212543752922236743960433632519576856460072702757779438127405377037976576310930659505300507413053109471838133122320499509157375175888096277952920178925932507772696288446625053990205938335047944513252003930812293860267891975836105013842939949974065863869529671583342487215799980697636632195059169236489541494468299185392998093005784752590187667285454271873239019012723354364873810691140557238672984362647187998866212298802100673148616836532118453536432660726843969112398464184664265279872148332235759079218976825302714173602522869572169679421870027935924968723527981776558677787536317637545764807667844920210636885426415584209594522565172098549711174321534917730858900827970088941239655455588600817865293340191254192255794375955227139007238341505876352176928097858440431320808305614833409586057592890773999136002865399473824781940151974953388469113636672916875225327831493742741655697376058506590598424117321759676476632210767449330883542133939150271613844593007241691327916151572293498103637363528991065930659130350257651637178928420065030920138904587858157237896567451826521828465952341582122956942315637282719901366262398563579691063640633455382842892228783358216132412258382718160732077947422694592408553731932433753006295354343776136088948254178429595457882263224394590985179082167039471172497996689558674158892529136824547078851321834548475862432349064066428896696099574416311382929326032316288488364449590611300696641537531328549208421051441906794705087773077361571414414597404564128869024048883437540751744759021279102175424291706687289436556667258143454907497287503382594016530411361183720466302048598820813912347553835438277945881173702080872517291501293835020561505196537386925182288637303465925991980722307858867533395317759413909874935397271850585279669066503922248718454758545427720882792493791225872103312765636667350040347989029461435244298733889604573066658436104891039905265891462609251885399423140843448992501067683056097173728023807057323186901958356452004887142570763466841202691748863485813136373128349036907677654670816396231194393788905065967928994500561599976112148493467977678440266396386560502023594288763218640182592582882945531463156728444023066000911822479674381637128988495674469406888563138987247482852917432227173970237084923381052869446206939929779707120459966575779813627836409738198684433141213590030074275968204442969800735520245627732657333406314352869066727780278607936531313036771330672316901280925707109038056013601257621399890693932041760227286909070939497355249424363020825315052718269299947133555176841315094592634416355837218929968919951171920559906605788366993531174738290327985579613972892027221728994344520558029174050285592296776638119298219976664145815302812949462749694273017291360841828033802052559953179748636431083081644967282766831751619407561080341328574143138776114966358861402601158582878391984024248371672121876052958914993352165734065715806493285421166473028456863227165381705260923533241861037370712692392506950564620622377438035828819111860972780707134554847614919217231975754077719284940863743672592005042244446982815154352176142166802484678254363558187784782829411670444071002674547308357972298352522452940079264040998005149290062800344329008903126320146785314502164273171336454581725253408206979160556194860192255492652288658909028945059511583581561829315524195672348085403406623194515562403229310831424612730235087295413122601515120411074787814726557420317196507959285230210797135825828976714817089186857817167492893587879663352711107250279416058624734989363747588951799940804385913868951004173744030103683567565442689785496424508030236226049204292861181784367951279237756039413574572398451952549533646073469348171536719637657926364533483807422658142135940941544123202849884384458778938787286457175974446917166900436180872663233412811752193993428541497302011074628041470428483515931416101448795145324900607149569694103585000911685852677061657766097983648966311121535698374408104588818019318558795806444868046378739615901561256612275262289101172197776952711374965682172235808365363273982110163598866640592134810615392398367260136925499756973501920997823218230508146083911886499639413668494749187929175584928606978784004972346187416599823598683515755888241849789822902291767149992309913762647079515188623365025598030016023854040377600396017644874535182768293719957734489650347916663413478512084531511199117068133927086933995998822587262271478724483871609529439638576530248167598177283485634540204877283322935235740342465349830601161338825068075232874887153637506646995743030132692185878993831838740195116019749855728084920026871292131294397438677832060795076803930844388500280411655762451316736199311686296939587382771448693136823604863646751730017407636353621678593279448598793537352755970556499751622925539985219056015773854307984911201299547016150436210438715260864407647503893760063849336818088236766851075014109759143427645970381443351763584544977781252439462231974756539873638647662963696781285662930826450463040173598661259801233333593133138438671293481441598360717884098221467296296644468176186199714924961460142450016712567359157511369054585561491402936806299841271025371966578775673371125346543585119610318619330689717940268623784175296237463359606386812124857245663149065002146633915362606584135363485300097576241586341464396025814964441296872164747026950328656992231901461355979822446568737615730299642827814203606168566608385702229718829139132154043497419315087550082794188226177966603759653772255129158752514993938086003171422712338590269871154535413846860879746104058677783033024309187320435666235507867919336145119540838068794363977068347770968336013006453985700681879535959859468303282793595948407559956132048935922695597227395410304037138354586498751311030526653269359529433087104339688541949314135213563725920429810336725780047183447142102801091155524981664824997542606958226503002240744660337622860808826552112650407181306173878773411324776674218405004195424384038462653054077208228344150356430588247230883658324512430110807931043309833743518168522394483164156753213728833718487502166817525432373108062532545731823682426996961255186279513819991576704315013455914576124510943408979397455891526428967286874351576552129798644765730323396925166716946771576801748565959485343226583752637562754094429828688325855420199910037020965671445948250072196460869247829494788736909726267812848486193080028385123418177279901329300078914966726762039277281707276339076913211967409139549397153791710479463161142427425849684896168987386350012913306092605256802928261019086126153671957688149584836315915314543414587758882302328671171219952499069011694750609246036515390520256046637215652291587052495973693124694176037505053162107265202809435345577607002664249202091467655279406909529676735659793866918152725412003105815939999765087771720176592682443719968862768985076906268796261255567395468967614659221396741278208651071125573642428872722739704038997497708439935427315737415042036790106023041348304052758748991105924238774607495935440886116661052831335596428745664755146296799443476294999330908648977272891420291208361709655199665669032033771383120908556215117010255332098870518129473739616046237399120597875734668582531050782146885840960433821167650553351777593169564203600978187639274709502982292400001959514025188085509284713152327577058821534403835820344762398263883843370488772895153842659550794334985828870153664052607268483545472367063168177476229500758829085318389716653321522373790065986879626209072464342072671794979571880585113673095824148830494260885857706786355588287312309344228722575734429151426989064198721896338120421239766267754499040199059517999054346799620389687374073474731371878564050123937926120900667306301717869506448422765565571616696019237527685849128548253875491302636953673457246969302717009434967277205196664061365225237704422267227778504527223616553896574839272935006489954371374959849130234735531312287978136189831441445798709213070307281486977129088537116629920367627117929867457239038908174219178124000999763425069153321550359616850594647013252890446966163585765813537771087489397921688516154046420995891433184294172617030492218323904355244945235193406151931213159113319894268228264634267451030379266285704358618005417514046423872199630244453553717284939552287646206018680153292488237992435980279194330263222141674984574435052157810571338597092947133862584768337393508758710149140375693545488423120327920597385150360002980828397430940011230963203602763382310995997372355286969652998588266231709171317144831912787348694667820295084697728120867024576695902816889447422237899992252527504469224638552080646823897620436744431285955623933160286690428563647823756478118959606583972596578031309358629030734607193844131035625926315363057616621584937891553173730581910076055753584119002438964970861400181063753717887505607120179063867154750224660439049000792354278231614960784927247015076325215333339603646835788530015792759769133131086761958961032346291899047425587373837422186353600367911267551217553949131412431476607788896204075661808089605376101163842164318710670386149939052530955127360986793038465026515984735997484031699507241025773262539119366683152301738210934031969537691328140443854001009101408501460122537274959053753759961906185599867689981547294291145906424649194260250906559880106966763364201949669116978704691276574162589786814286407078156358670875887754123778935858843657780989970094031935968155567485068884806871055443365897310242769312613897588189714157570669520411239232852552165153390911613560324966278987169490578313925222894708280101999581777107895670430910177326133172707584916166499143142860802769150101826000600540500367497255853612222311219308749162885467533882239469452015008202899733518078214204653537325060564486192426279288956887613027466049203899625775145492201659468863739393239846905939906330145706752645191803995675366341310284321393691755125206576191270888959769686548004246885802901067710851521358903422224539728973687020480159594571780883537618318975564526025363637081798569197932471839470054070189936720291577725882016899726935849680737852025898966034079845722982436077160658681290786741587057702674128112071458951201930509028360224639608697014486812314488204475085724745728744822647346179356285364325121816218705126402211017691537674081995184623220274932339364812889471931814750236813111599007894967157732012668069675956698258332100679847774664447107687867681750844834353498883738798506498946335395566933516392790544368470326038837473631547032312829203502336128474345199111807460287235600890854599467348478413074128773555283769524053074686211444456205285689715903194488860441548120289724095941229929265651760748355289788797301728144169094931851772213290209968511307177155074993997641512280291049738877042123588237815908828005206149918695398007268383427124315968411257359525919052712567848390026614651628751017048186829310625204301069693670249039584423032774822234068818680528117429010718504153946123291718907047234426368934447679131830150371961900797984819975265829630244404187737693029522715329121196944569373837376183053956551669309008741909241725607452972447808395702854349246458448488176814048318990468182342397011912648632584873191524185413312924089019764824849591845287831619050123429220176064756977607201613518183749134414270580669050237812972074080007555751871027215188179607496881665232964358478490288458172901468265869754133114518809431517667740636564593191545777515809544751456698553310335827611800540982933224729617668533231567552982006655201148141122097937900743877210745518939085429324539652649735517181641413516509493348045339841183038277790666278918479991434347824885855101906848513483342213989894449653432688451211755401758004290945514745138730958833434012473557526146064445646253021501057994850693953665574463883493210425954518877426903924000715783820999049106997371288966259687538902999894589496182002691543270156044678749977823195175192498496100991595076757621984044867566452620135402361952183121861647448206177742276742659937768126954853132816590849251597042774519980058449240210581648696640389758508360920083695747231034882693629842136029998662455576028344182623336808452532783045588548163829239438229651573543851034338325364173688248737502276342640402447199391338407976849713489335129092220243966852232276071346922313190968229640641567720646714505157955420294412434540482948384328563203764830431092435626374217130708023944835139762260050992259961300659621592702686081662601349207584826526657344035185593546309435134365992126537429487344979138566643312678061978311881845153962957965978699282566042838576597608181448308870727034390626684199255800406614266781468543694749887265408760219080430613776978868029111870882982793874452517786092151177651511047154326343023229810471534573342180790263960225050949907784463392102633009530874949683086879732468350273009562504301989840785994438463421220355216597323882320698535882810871149095007293114236415742377238268913379582290725600958005420299220419205217664893874633969073531152945761282800033872362321514058084439232336815775119578184148967134538628309265003535011290615316214792225681689254573194421427766666302182368974372241213006128730993636614384085118227731861856116129399655096728425997723765834890146392506322507766536133743680827586286745057800746236996307963870582302895884582966747627383334435742208399726123704754519946059527978125749118757536528392810559365735234304828022453724494253658259858893773385075317041207243707737015769702908752652991069146109546806496319518293596457469630036525804557446614280777518503239386620838734103419363795140424460753126243974420335262914553254074290160845814188514938180310798118537411614717973244993720905620710311092934210727604567397368976444685689220488755591026805228628195594668619245451859508362337290408995888830287074514942107868549455108474934158335787234770337695611051342336630251583501292962676999973650079315949311819367472788322378163793457899959619405220173687554964599101298192895101297891381942626923728583655419511708824610791218882414726273047287713692910318119603737229686630904049902413965855491327915869506167857799845641657234410160496396476638528701117408176394321133755906910678570811098763443559495718645417396965994175105524057370892503057347759232695767521199701273091480003671621679656180494250240642189404577151182886485120960201016261165533212631033157633771062813504997501068845323205517543986394612726874470754929070837269331272431077014693749046332502592935694743440303342058499279343583612251826227699967429714567187559781453021969861731806708093294184385793736838973452747372768150055626089916455437651100585410825044696876119310241567465146004718044287042938435401512530370103024048496384523034252771102681939816717377367770551094754643084207721753562388229090728789167228119854585071258052561148596884091690617027591292647414851862041480223403918396345358179354991435302860050150334834409762442785692923506695047077430889557903296780336358741931487680262006463190313531572095314918359527477033481796552777475610491021200284704067495859021690662528162012855566631265828931850774167819299093185353325273623801845364402864987883944535072602097513419929011569670308046759995099360796357852372664066114858690079842775223530095821994545820408295546976801920585681256785189046163943787770433723744609678521409597700372097916137560769114106260605125118043627416151099321955885883019220375537145790211089200373663074200205384039084191228812284362782047740103202702452390794311520716226782519067752703648500725563605019773830151034141685061266282903103956663103239985323916076259539379409587637530000701637782518616818367205997184252243541684334233047794422540675987482384836207365791063738880297433410475917394777110008327187927728651118754224091777757390509862323156841476011317257933496112216033834057663863107123769396046779523114146519651659599825683881655832516093641187011093602429999048705731758077930110687814588328336205805397441360262104629411868561549010708361713836045719344254084441724549429085109028518457453816717135826017273598821846549801979558846694593687963243393015345900929217895802282176931595533705141347627972058431281583317601424964210643331984563030017367295134709162908759074546178465378012423883855130818557737026380762897584338463691663363437202620223380139765572891447937387916384945979570247822349416664181237425162344384799380234555800137585711309787474750581157093741709838254572842277650120872828334024963848051179489769693150565486361694129250807970473495489784134135682581923742739380030855334601726774539105035826437913944423194537059259516044812355217372412265852272934449978459366603047094908500250637558367666120190074407153851015518938987889672131948476017006193569989031018320777799970539119053239036601836087194041244043309740403867545133468358940684449411819507527647215736227368237240064929092369853722349161079051109366849942031657087790046468676820404990571132204916231616606187412232208752299024250334554932759571586700955617635470434468840431233143769068151474172425450438233951176752108371289892510933004232175512630490648751317155625701796590968927237532454224173762518169844792463769997390721303720839725246187648456170686406324008929626246143704662071425008350530899847742084447961554847131855608689091303487383454666730058286843594211407886733905871615762634045842759506074664712933104022886865441554476457503215858912517730886586297698048762362332676476382124221783469185233938267258667874119208109228521127834393071569622698018641446842046214318229378599971537009067275006298250898559235258978078417626296650518566599517109477434151406947032844001570778848403370875421797077844192608156191450462435157174758934044823731073817343369997110777984006992126476398748847739890996444126550044703919273202372288542362113547764985254434667012663188343401233376975064920641483580501960982588109742752545760716558301571500919270494413605350943805816029000354292759442856104094246951573384906814040994286225500742936051667481704798392176838975194303013423529897965494955332540446223975785301187657215822782331289286496802889722101328821328273322537521141492833235835519078772182733460057651688704954032497903349928462052105536737575426793419547848022642506885080139149845055091106203746414741651873422170827139652201420416416541187531715565827480254887095300204572171383839578234346469745607124191871137731993309609512597486522787059304370363141781438217197204825594021726224874737229315494161550518856089346734521000254143756295382912589714024679162279629589781162954030646881480674058951232147954453621566092062546013592703136496429747347150751080727849000253563471541080105687603227117976443342040317812456669182970818715323906504529377731837406970621407201569421047925976236333993543185437054333751606263749473865003934559987411340905757109345234099181227122149751140984477041306491179748617556051806833568604325889151825669027836621087811817223555728444468875054671566183636506968922541762608152432375677344476901180056696288070407938643747462039861863089297992398553809184385101520204775374215124808722776365538384942458246555393090587741122160377404994315047835317534790891716819505361727943152892989776221491340189488904188403345129895921459652830142490691396012563608204728487091351755373179388437820546948672415053182695724226352263894974032379410374081000623742846907973038437645724311118225077120791046145371779371864582327789474259297679916017794425994903265756773608237692814127044196751454563096087839467501416578211091018970564277401382380282331305472655840307716218619620001618052601222156909360586262451771747381818669793435595904604666787488927595216200976242635467942473540359062011309170489479513640696905382109157012593019049260797372147448563188813773691576046382306763794065820841181975311057121390111414799945384231415494058327681020496488265194638907736381721084035284864600690094364496550080715501283537045445013759633294258129096255914069976737709313804794830103109263589055468028073024064020933442804420364754500778698574990802085278907490854696291340360097836722870607961888062771214414774724151488592666109666073155716161019994365339869429396077362135399950646756364413240703497237349116204496041777881522490990636858396179823931259568522392669872362657146702502525311167936605477911563713936202668547317619146873377887177725383182807254129845606910492539186304858567896603741212771267579494766440391078816665482337106961334820537270098189879203419891287367491358270211843205996476387062560374988768936998142327688628468932042650058732018679007292894271204597891716752060093825784040344498725857617293293391968157649773158186624716227004139798385235243187837302880275762259791060954806633949839925518904378833215159322000960361789597447296554236372085662891259287261261957533745815242896743681631082985576541453568885960060213786404800300077028506332993445310300117972401034832955660997178230492811162359033254756082388216113783972199649122331699308678621320061689986221607975275487704173932602818199044131301266285004508629786697773767741703831474891550339614464815060994537420174379027196625188236837920936651975988935093744274606744684854496058841551266721457770604924882154854166398808095163463743255685763621205028870933136206302950780481204568506911665996998475667957237473134274824892708615360597489318567880269330033466477274235541397740359646221233842336083625643354378135048638908063967925603227766719116910668351379464865041131758574930394037556100318355807395453006698496614735086731383207714585214337501092334588972880319675624931565776703367974135930955957878163383211923189468217447640115724164414025394423454028070952261092139044663719002246116473666569282610554277495630023190249881503051366378457000152568921983010769141553888336524283034554087293231264806218820337915949936041310401316705108876430903126855084010890388752766141275746803998565499247630519093078053649191956323597062616069694637953030170776505773945515399380647880416511708229204100731821231395835737486395637483661268349858051453807035135135728593496376658338173278076580119401857146154845743992089776132463530969053780729554641474120435885451234569112775504807023949481669411907112666683987297538924903742326392527585326390736420014938040891579468682687146437393804212834689776112190661172003105371406985631711017255483358938298927564482294490017166090173232843644685577105544477747073629887068636356517255261521448024040508018319938823745208628076454415829445431063021493515199956445614115634565192066204512423958368725326065965456050995816588554015700057413264499064169639968646843927366631514467272911862956874502018619180090400722392836369479075217040447207617537395101425246758798875039768648738281324925656480134622745761512095337302459489369438278106149980780965472514304365815395775470759200043875344235717689766811442875193209452201946892813399727279924050971352026115733365728978604880285265855452148962544575057590642315921712744483144170406828096529228979095581498245525241855182938447371028250888688607609423364236517167331957692877351041175482162069270421106515583443273451844790762424863742549291171048182982246292981120817541827404620435446040492277955864629742485718549454612868422493279148532469787046894936586464017542877862149804600929622166415046145650793710230747195059924734836405272273554214251408738632800934336485495978917147293776918523660586574313117500438320282867947870120604453317727556625152442132730755330765176734333424840939467390988930079032700757158438755223357987701142560655781152867820636236152542213148990252633790796900933742214179011925802622268102874634945678404005384846433102944740220766841728636161903115236241345739731792207946063818596628295094302751548237371187449487965328082516032653357868979334299897365014878017417703658656519770866076729063497569301089639712226158937631975534208003743142918425513350355677131494146069879061287180815472352002970788452258797678725120071772420868605952573676097648855224669789657936869071501948908124723902167222504789873490182153431864909413845336187375389036097494000084380956983340708208055864931014751979781644660785107253560813031894265603813569745021811654321940035063979603766205585594866169940223498930790319083850742516222453950293151267736336319457023339767102323676762938012267463912183661981269654239919404039685663765484590486909726901692804900607052946615357721538702246815750845451348926311457509215665053398094047801757333067070306186739989559326793581721187932281514041034778507490816964087655518588861495802749994756562786798352528174141247997869163196378099269750989010423948092048436887627627228197362272746519285243522848487283704252828796811836198336472431985761208537081760933481340250174836738171334969691185517648133526579209687829296127806797214764827440217579518501572395443167856979106185816977286632308543073267038582216845331926175894080679058971357858035034430463244162337855164375995854153431355480569556033990532963330012699466998780835964758360080465522995369781682089668565140561501721993756289780296455884971601972557889228674151090423804602941712902481490409851028264904791971368396121552729719942407087845355491297598898813871000040544381712594557489993290294907292320517633294124143050850206864554133409244287002130777295640205139251461407966107705672218705349698932335639769460779006733822781590702622610523344139322228268234742186616513690710194715543087053816628396574365696966761055436237652358587906453051722166204128047748848962072124272212754978858935520995920121575645950160016378981910052663320266185185694748807842102392986538797566470659095349872454572104926790547230646356622211175450480148934204723115370927409913959316587337009347800056063531999918236710411998060591578099259920319788062375878381133460864908555857709498397921853240838794645161944909045537341882079958330691607513309502458113641044153968951019277168063493211981699748512764299597510952142123891938175544880144522345669536820620969839584326002466452376309756135504971579410829644881056551753260740989777654511356225373947136973408007762532125746188602964039563866546540497806964071884704853800846871949403714342608585118070922458751292937838566061024468160095020484334181861785113226201373771287040970440391840967795929961404236604089193090215118069334443608071464238773890996629016517563170809449986674428607279474875010368908862759374309692826991362357703315816642534306968235056863741507427644088248947431527568139189115723308242374295507816067246677804900860313408411028560404074854540782718993576165846536372060418116331412362528506318817761465373218473899011746417704972676944149093537481923786544674177927752388746599653105061274042770734060297916021770326458130472580535191417808761287622510261577035772299972790829583963914810827702167216043455595834517055442578805846055804442506592496665386780325025920844943991520911118827062866053529631097347127613978002162592827948254411352106107769908376221870034289059936784808607530932130233012937447510876413523296445823766199473313466647256548095850717641000397165391232062456243677750829197718823326221892526253229085593737676108024815816747766952319109062512445751632777403343597784655124664481849814430051636820100989552894061744769408474890736747559872510611224952739948461327774857091110093457013039462322373281667500016022427909840420073787198647361608481212641905216027572139080871369415936416552907920769640479279532524140165967291973415593069119804472360191129695791703672790161388284881142154834378701352193206041080470009084823597464823891057071383290141951258804780978740639609740499358152359867127583370805613840141280802489310457659167469663216840010993521917182083683737978913775322742768898685875919692945056902810149287918648141400983209869101731069279223584630621067532713665680217653676773735410432480716379071313737698522999813651580828161673149283943238186897455794048435482765289867867097056997471403162805701727032593727035241461719101977680640644446863312335227570626344250331829300751666339178855482960314651025210090542457085209799209717237273816584254933676970926743039552774675756280650645598402037138064434533237381086518634764766488071036205497970294331024119085583717721113025314317510865128010998022961343977155979335742108510145212745780392827859809819059276120833139196805061354846727631250377839495460648207496049328224727000391970459310752539280334758343536397282534604226771004330381489503833424554361376013293036132200996692699147935885302622542785158530726578561011917494040835742625450665568762696295900119564109160824318251924710311420581902412854246954753044487592637942438760583463993815392644677112757542737949747301833698820391008707441605431336457152256393306876500984050188013927900147265638212255676048084230151782653082645793535254799883521354408547397917397370245668435745652986961977399993876947741222403156659074984793477300916354741947925099271301050737450357126000901156733962053356166505491932742699517244872806357316737143435593588564379228061337594755847532749857386442368841322079184577977988483953405360399242554585984904162169500484837591760328719098940135054860092339329547471798750053791960431329142558932668915221766524747665722804617514893635380044408375528864471735691365637072712503374651075211570818913027233155351700101542773409217729315498746313367838277609765540243335823201234195324176388219058863509220849219741669072238526150730900710462329594895791444836228846304892351972929929386736332933587796039764585971352854837118526515531899581795905854774345477222171727139097111942296504585170580902887109549928758058794700095969211048570792054983444043581012013513971108168724223768335199091689391944628170764342873026099203133636086273978426623039262160309540137997655977172203176012265019381472228403835198907105508551789879717975918690455883266605314667116324144643213760877218097687255769402281471188433393265985987312942608598349599047761373782248303906300388500986878767546153424797816355414619309459331914992294696122826427902327454655064034838257634623735323752985543670749035738486208978899493002843757027130469160318402282634214502263790057457126106430973358312863479727882548953649537848423188664235145846016949921475579480017535157769743066808470748434556210927962285884410888046798460121862415047091849909800155416010835825782653451560085594109244989185928762553385252889467893506913916625540656824160787962970512109972929482285102691514367559964024908944110717727125858851482187979689623964223303491346537054021982944425938050746970658732749170605194749153712336951708817563046017123836617862222838200690641110638901565854593813232535479217801739124036127743179107095908439357404365010966589632680067212561147949546492932871197664121460917237488131070618523848953034769816687642803147923246112324299243359052533871768937028378976299294360687875888950769700011673341241317039341776725232628040668869990247448138431358739320476697317511801172177458778152374816472533257319447916341788207166284679739687899940300063813013255083486902521404917227743261005577531047532956623389306713497093442778897342082240604707560798377919005355582992669440840206913967773934075474331890713012965137737373476781041866201247973551446823655262150205804464157229428663156830946255017394629487443036004483017824439789596951571661461720298985818178576888105441847164473019049651976991098322245847494473628083435756862103369075940921688380697063600500518016213055420641951441845915699556508021836015274143165589813371560172267144416781220627486922087125011012215429603103152298467837954258773342819211886349527713036145091772616183710815603345704042217840249508635991897834796135418527127400411430785715758903120190839387977637392874518036226216510084210944890596735430628488629070224554753088045551315941225322753556272873991613115078062482977408461277559744407593114118801452537466067661225792013666531608091963901865614490164238882186271978305833348711908981430086796955194937165890701869535173299725426785753613640240444185183372729287821170148845269207296808458828803539690005635429708872484569308171856256281098333894974814547956655551438718049057766061911159034817950903530965842427905262808107996854223662785714212923238522106497707995656028522512773486225012504266788403910167856943139837080186456196014254340801459875374023271164054066748223928841458234350265604536729847435747521417623617142491742420062145832762999462401659975365931915296766087216311984234159961543686103337010407493822356263957333557774757369219240405229135279023175012398735637346758746496247745321643324935291226533313036236259008234386568399678056955601701213509786092733315115089810698923810662811808099808963379808912355206486740797886766423251440942130632055928815744819547605600386923417045157964449389230766887062002374659624940818757152147453695559728738755232086627825953607762432184133130360004015146339514834465882599650107445437236870088698561852258467409506409279540322868635224421086917693085204100935173793065218718114768355254921446165347199199329083589392518122960240464671998459517999848145939557463237006344150803902053556266093825673888418570669024434644633178752947147384845938759426229113829726853220544317487389793099654988367841389878959593683100683273537620919670232602787669395631354015549043045048064643871528146129119540764217083464603008051373355385065991698701496995196783193600709504693818348410536486184294520677848152168091861843389410098216025369470881399788899962731610896162780108894356008283753196996301619149801412298886628767574887351946497801155321761850893122908499905751579859745980573364391659427398397024281745017095428935860356352932192603288167113310817877915439191644021901057485925362468070688108685405756240107344502866504118308099678086007062113086011366248956477359677032535031293928450072962465198253601846590211456871031149880332207312353802115165264108111375909550555741729003915687059984382584811811622543669000670289202159101135702774654735332955954352912914777541418271934552796377044003912000392475601473985904304666869521987428181223218011840386909323191382605136159613370548626887668065564793022496518406672676763017279566543778193214974511558456223453355716756671453418324534685060814957113015742487589065618954469915483479726894867836886972894763338178424640120777487018217383982314929018391875026679024830813310923851361214550330711123112674396596659329336106669533426225961682634910875429997974522810791186690152023689447178136784193381843564624964669877793542524940519534200888539497686503131196974652269534893134219380091428983943471009790572381177877279077052409069634651152074915118284269916932180863708255001353017563665759066627072381546861637061518568514331991190611205589027043528175053684548934162266832079466889048147901660360219178532436806765884495319862267805425703254069931372434502952438712790967976907404544686156896345977153237089693049726547955396545106817886326760141187014183927982111322806764000591629495482574583773433303327297631587568033225756114656436393200211592170437680266522930150819524874051459892175542005554936202224491982084705070547525484771518381977055125016869395948463763650804309431108448075319387662420590802813249245853923503304790074381571081884794014573338798463604891962437416049222109756138802897396716634530395034086273298598706201999685220301470507661341564017597916019015080257966558627396731858311435633002433614024556797682784434597544413291138308519669713697568072446191704516655955491920260613203000377051052253754733282763265322643848836283082477419267646026331214271782414624921469378646020305691095582389146043684752271000789642084500285522747511350173214250776020737981258246895616808970489641330756455621922939118307756806146894323839893719266600377704047596038600829892246585947213960580195004684186000613879453923945550128202719849505354474185131906800489498609082485404629352671821395270386243308393233929123389584312449356185663247336616042525561163030402187184917863096387871473034426820828544582888145119165168967606685780634308399280736082044947598592098957556396146135453723663307288936352594028586515952523246426046025259321458517362124189559262907228180137738120287452260461227363294357636607563907767701122612115366450509575342330365180817531700995859066798308704658917955442126625247624516653423785323610177750802959130762057643156938996385924324160884878797592998115890375596012804868878409926442043990625810829292026590180708919538429564979687582312994911123663985083953135155490516799807500563480734587569413263450955898591420585679237749273417939443103796848277896589038426947355798560465463385612282545206870320102503871257792403892297877293190104063797131287799833383520339152296194734674536180984725141683320410986167530909495973198608757450753989194292999874023764896193449082849242303045903740394302789340873554776880332615323245147533982590181159541166601941477061372327799633864114932362715559747746766964216777320087095991695316349960856454195491830493284048686378512581102924762902142297700858099823131600505817836401563148192689498850722410704190530581245157785296270769080501736740450144634974546855809253191396870308950930441818542267317480019347278629566587303518070984005595292946974134757403060645571869998241196721892338792784208686356684519945413701682650913851372542150778653240821384119334496469327251259608009371321566328113158654240925971566728611456424166553545734377929150650203042441549849850688585499217760265377924808192928550445898673212407635487216045267175458663838945874222076401104592381826404327693370317505058688671051403990693588383860220108526553697016949726151038217504879030380831858702182753801233844342936173599807967343717118579506104381539288306128113949463933983210474672746154071279308134225219153788178140194060929951202400758456925360959909631174748818530052588490599250131653295009486096621536526456463536297811864071774035376286896169732767192500641665833163863477527060830572868255579263449277558956327398059563377982800592164401793798436525539130394930856411273459999972754826313699113879616997895905525517949026551841259941603443210086872741854307296723996659056061826533414414306662195647721933604457889960832608816369507804816981701790387350663362167614433999962339562549413806285417970640139412192464099950480535892301036583886666853396024168014111637282923069388299318044649687058897309917679846681496043432769177607126894609597391685460671411991013652447214008796671630777912391229203481710448174084018977435265248682434667435989421278653744991929651896482886268949526262983344388047916767374957662177083724560315066402698308508201397357716869948995294470391992714903727971142792287202733214389206615228245611657607061430608387556585104777559249932994397525138639106402328620024154752098835533951642463715868771701750888260897314255628656419058414496560992765956738233305069147063951727514890709355253324130369241175871170290258541570269441257376003956515098429111445471711768798131301031012156782513421535726009603551579031296796850113931687296895452481233309935670577565366578063582932741173677534996169331355171340583125838091136921298754326561155091895108216301131088065013785563696339033522089099094880094593198437638695786800083826847230007586799479273804647619454403882712491537195097946158308105970410192310928236498429756868773563432971048293051175069419547144413583974538356011588475958986498952771523371115529424406541234390212433483530853385856578254494864117122130414674224210712889459128907900758921035171703988700375503957772723395672537234812699966927227841411970554956403812175753729313360035336730066724273747847975058711640534484176598020477295156694875753662798751359148946743495429790819947556925672677312653556157641950660251087235314603439929142412889169776432019664893140641554503733097672439560509558647958624452276171304802341255932304375594848871109935802886398855220923907550054353666728573363941859034099491419339251931709120340904117548787677341099613270750016600651618067550232446275206579643021525084949704407477669638422391336332704577654224172377749402205411727260733911849008591259641657037533143750707399672848339989597369603829717871296716893176286665389929047764689893670199518572259896970824731881971610041495200026753398269693776153791968244506581649905444796367348955844068339947442302967518197166182813856908297038030591914748952318815017280367442115239295476558838337179127681448969084365758347903564151902655432138510920703399761935767502631588955102531030269638080266977140047595378387362671732927157304621738424143250696389984963510924993747648019066449325977110153664676444486946411835010068651011741023521733913947685982206633450811424285801622522154944593069711651238188969224903150303670069400971634872464732938593268352560909515519984114256581311164680138019274118272995900293526549639495968299853944769111230211838237683445410574466611751664298545281200318757316293286706300285744916209792396330266171554292696531015266239057931812990150485000040986337090697441706542417915175044341381422417233554386124757306041136828788572779540949833900896061872855865651814459857434041726061141453486985179346313070949881556454988752755309634808242323652856982280167409541000723505295062317836798554844983620107880374970275493813338525115067013893283457688093111193904029847499523522878675645136897527801114824268259417053454280068927980722462834465831275634951388796618737763258149740956216606452000930142062456518939718254390069069276027576811321997567996622577939815503399174627384081542527404135568771984661338781201326869526024845475260284269078371944760635143550085639541920147813906362082337657956583418194785529972268281039168784009905076961681309825206601305512781472147309035533191049176771143622080455186494597380807581159226339783824382883339431041826061461909909661694644824548794985826058487008345946485594809970858213878140001699193279002225453366662647879274489247886426933318376531662338412075552034698782721525609889006487696385612829273894689348290470719059799204111171438455937569043298956952562058830974860871395902313078905270095701492886095876021129175181510066104081359544646087111636409741426678491319829451146601051723404716367340384873879806615904074925912963307640392155595783915988118009453559109125673334926845591180472466930382247344337286631745624605664465285102045244314939177901070614059413786160604218890475008429626667503691374223533204301229044143474889372061318580606492072661169828820289072634273619302999627545676113674535201009997687855545626190499126727132011712332964652331750779902633564861419928574163527535430284237330657426074183516889390849440157098454591948954471598011854965229169629215166578321002896523948271879502232149233730772422598254062613249296866163914699108799185762369044212194971664951760255312368789525248589581478916073486548162455125943305352206759539344320019382516585527365962477883190116428179940789471121225772354985304825178532847871427649795524919410998787691992932182607511409650916287072780034105160654064059242567053733503124554492870247909832003090410825508543152146895497786108107543427176359084801223384372850738431807422895897254079225025693657368491208228707270800118056061032097562750151239872613483995936436147713268586394495772072957124744805180643848720031171903146331788461864506091822992235290478948579158302710265718606899301123620622000813667310091492938587117137243427988572426141942658519111340117382060074869785682541799652781014979614519549766359054177255292096776341502601557399417686604932923418992036843579939939292405344546481437109642604389816276516981853460305394763988204917796103400390076312821225077478378270953006927066699347677948138824567266905458667867924815167034398556037074016431287321696770746231726346462020157988549573153570243005645768257617719969468372594590509456280324863428279205585403339761843715382692426136461082511206995172448922990741652643274557980259985792186786605762596057790517713407994616020835381309848017563263993390857520479877497172281893440135162745947179861430361574242170572851804929581469919895022883763552806449203319054095212649623244897033219232944121339509911256941612031861871725330322609734166049308121870312881274405252604354297631877714492044758182584000039522995237103190078571352726093836954829710168265381889153581895492157426322161125224477906141489993669984348474520102401958308684918915882653985056007225317932577715324137751101360207683104301878775907406473523673976517883255428766728059442622037423727476585593581749917510504284739223221200989861424687100661045427019508866113300059107955646854709752681579081131187850067185384769302194748762617723977251289530750634363801140195897121241286108560934823687762944534650730633402785482553932566086385002569091966161420019773959959576735150258582084453611900630953265973355057335986129584830039029438230228960764699858324451858121599545579373292492042270782359957387842322700600995777246481552560297939275793311282028644574320565723725484652979424287597300076851922853545175773615904066309855088668173744922372955654346347638051033002891254651293013397270564658009028294140292087903417078015986340752797470974143793321839583427228587215013887108095020847802596330476936522988630001711221312853603558806442947679744330096653167805918410367443931910108851112542051558130144667032093895132851103212300040355205908882947739749997446978718442720308955565044520423979471679267515784933180464450099371309459868664253177463406088982693285270561398779320541945744560579316056303808915599678966925225172013672581770870266282056552514978987013425314127851371678442738838989512404486951490263838068950870246342415971510496418494346700853270861320523783716836252397529969861853548168853844793144286362850331331680766030948265191020992804132560552662205994592305716976714493339342661920730063947707423121848750461900113308368172237551042614995408478472245334787112470792631371951642253499067554912062720404441422130212633368054408872840818209061534037331631020280713354889013703971702988918755685888717387308392774960389832701828244090866989486126723058345759477082677439940405079292270080987960915144191023856801872827120803805962269564421908273134346131466543588285047076932548211717168201831659264723440498172970801410469074606955485926562191890835807166109629134356935828322770387528299489322205438318879924127380415508991176527093709434772253968915146394074487638214859790614808897963540744873737663527588784246797249498507880246505879437540686509482412332176099358759694821902191357521435250701998296469383480987180193963946246393933359020031469873381568583348175243481668949202740783297854089188542840248873128598025192401851575735351072026677462187969380512837582323631501510484727486343728625505661006036057170247633406910374277651255889443758427250296376821504229758117738705213850704210524475179579593685727233839510307597926100595908450398625233950947107489731509273973767117943853306597837934608548175388183739519086010532202799905886634069686256415394074077564543129964875787027991655406759293872490402642697616991298952089287655805853241774172433108484256454944190675447439064893462353052593542858280657482986039098974399368126094628311114404224849421318845803026063252236694183685400139713628005061504910838695659628675177395533579102611593208252072897359474197585566736162282285447361102073507743238682155404934342450377150034897679760040648512782362710030430348327871739932800927679572376813358191076284541352917149110765021047179558007047120767927715697686903584314973609270163312024181160775096976539276416073442494121643921018655186320033357245548896615548843168410008049055819218640809539768813264469574440451610526318239120408973411536440486378653679510290624464971665353767118144353277806210663109012067461689916816042973949067099535748940946272800835298985822653108465061354062442049190777586758994463161322438969546069172667265020053624405062110244270474584114731474284892395491496736890929473315740528858721169204621131476835550734196417049055436270023284586693390384502687798593569114494251174408740372679253500534456614836482068115037014574353073018203008240590674758933855013892235454592147955233846448296760210820773349186312843285099978550554829569126510052628437988475775445402342832683756352458898412915271850919871336823844673810418748169713328796901189102965869654695101035212656497134299350862609729217986115722255492410539759469526603467831330129511771992089786909921722738970637129113769130532267115907348907405384386544945334284796843624647394574180427382061860117834061747493927314832642756044260123959136327181869083067147175527243950507759294078385152147389413054984894938212065923201777628730493184148532324043711897903054708551712200274629142752575097236233269256514163684257871029193040363134072236317215172834846411659933208851613633107249372550016077883423720177750270692804258961866869435192182451509167110058189805263419815399852179085681791974677328817226804522419228067921532493320754479689827205881524115861270810722098941154624723865839398131096751958252946279480925445165530362635297270193183197439546611757257655912667723403846944226634969642821757755933338131329165954972575299023681611710675154509289648801471887916966666973619807120068829480929273478979547256969848455558457733382488420338799352130690249443194284291770645691943087766081644985008743029878464506005785387042346041102775912583434609756186330476515832382492717332700366047138798045408752340958904785592691106820071046055189266710181492821127467461267040583807143873107520569454728660861531403255295982206203513498228100522607944418804073602936519084818201058815836326386482361984878607852440672008074851269939237695797056125021157222912914021888237501246825318649901982854623580066305716902513971141129402373912529748967453677541630723678222933366605256302684488366428787323930553629444763057339965340444928866698287930128779083590642013475960100810623315383223737915003995057266040949736839341295769971280919983507106746675760720848308120437847438402491666545798901995452651137481911504453409118896647587851026366723676122459086779503066894048952214881643689810701739509357509784404524076018895892538341001361635756595349327727532975817269510713315241153939699551313300591869105704407770129330108915688053251809366501876714023673434664881089882103816850464608560717146383476238309478248858866118627151705868093753541018926977353728835641186240243801445545368209938641492201618603267716303553729073837899172362835085795743525474928339073756396477523852133071409219222247166325896370661441915232070851133926344621447257907076101033670893519978628249129522434504876789183854200791084346860907011414123029758201732883739016277277656499678977028471608832378638921834617984605966923823868663832565869398110143778696950565054200323226026632092449327146113580579868440232081091017819573383640995235973361507061811667570987029094085415385726722468861182908601847764401946143281522131747910584680087490814355405981516358217964314594377964116389999915058397602149440363486783269070545158417549371476790182679144321669045452863796969481017404097639694004212158172371276263317976661503854072639635820667471328933498358597492109935176997056043040957623575478537910574714820546291973197754058300354248316372311764914111340408764526026198343281257763149402622972683777451178332764257118342422782799780521705883169321317100801684690294165891127103190350226971908393528493472520913492250831172025783173085204605276714914065807315127612255616764399041671557045916411234834150545809266816143732025437120256676993303010752775401501834920465028203285025682151325225264280128778359663098178465847063179726764968021993200530806125971089268882141375107805095301655893203133223632105537263443859089120264511370263801156751965763662303795953097720446858018263309336183027648302972180019849530669914036326039466205280124888241951807566615450149338865619049782401741961703538712806285375184292049909802358674035912128397599329479849128831251171411933859227601058311538363075208985240510863985429213915599102841878561374032078132259389978420967263680822622648379073983339957097187732568672659620600324391415169143242782339714799648732872592630280612619660703709585588202497522635202494844177242062345475890259992951301421370440354521182870670092302509042174691523122455715780263828973650355269862437121910803823484487695899609003445069005406156315584818507846258926001886686004724628719055068978730455844896191293511682518654984055809724861164575550806563068479865149048796968969855499678461357397268194926326061332049061722061649464933621708918524094444059089406213482323750031788197530812207335689702826629322772335254894081617810361791221929187670439220051494133990947173957831047816005309577314992950211926523747842307757053528527144383885362361150079720090309841757226852880742897484985921359505143356497124404438968321968033331300010594958083427486163579233009504799455406103159383178722020231467681970182200016462076080190035137030975137914832867790599938021276280806100234893414624316942157867739178880755187704287578629873998825114310526348997257639898302185114802442239190577046913147320815484585948115684289893589639244591911875611067886439638973724355337558593604042000794023165336519830398276663921842017514251185241161521565723826414630827797531349652933647890824971201611434600189123859835026792358484537893508053966254868255660431979591638534152595792870645981280772310847375786343402187317441267488177777997844619151252073738941928490562199908228035059795183253768379618075962422202478927759472203823193486105143711596048431546695299751857299915564161986999472545528709430006255052622811640751543334251329804665018928003288016415179532616091041464928660767268865316297077878291061844816007978587270564595714610236826606740103822872562263122868504242916883921928706768932808964208747971691014675959810975072188954142854702874546853950567123456805801469522811674828212826264189778294082060621369035446967315284495814494785815533938296325954116362361652045034785037867661549797777527340218484917295906438112529536987827007437678549188544050442570503252675562232611089556456901228935062083096985220317347247888977402297003848516326451501619847764511457508321238266087850511263186030218660263201662533881653982231788477980533132020870011729672464422447220601486493219706984378553463923339310043329891973721718007891152234745625408091656747777305782695046692695200917022412461468392163695824834432382825324605934724150363203962862473905272842560247509319831598650423494666720939786157068559621727972558620564519302698769850736196105410706893890026155612511385854742480502212091728771827668246516239823053004705752312732568005273425568402665251195077709862693931373278008198835028071672632867380160856558592891204916808754628782743132901530231375319991573821036186474923847256708416414559542397107984211657286769915775136477533736549448907042898793196873500796212211150455370910500829645591589858940307430265980476454560910918996027831689239481652958222983436080466828682959950278148088734803047842657133974788651520119415462436340738421991573668974383540106358140792366949349122131143911845336415901802750507692357845597358987431991961828886657870204743636498468738315290815326326237028709595119454614133566749604948855594432183005281264196879572455058953405153216538346828193698900933094796049380815674321650700461055918411305529100370906772315666157128017932878832548166077685489774924736481572748706491723013543399047686307477682160701760154999081805949812992984307952489334847030046891472866721131345490617659319089826800486874054812950993407964283950298023905681825643775903937983100820025820222026249040200688630075643119011301253901100895820471678005612989159429157284776096776612017308159796072555115493532268932840882446698357792154216624679497684439537107513528273629139922857412750011956127558851273713222335939401592745007476927888786650444996584467993661297517943668453755998501490584198877709833034684374828621274364090439060462978531485373128062709614000548900765428581602749247260791330683119500729017786760370996790505255573124874375103533467612409254490349220084053747341540039900077064139903552238747926911465323141661389708440378754403891384957036312862867766747133854433600630220967822794018790445408303093806277375851393118420585753312095144700563202731926032638996942608609730356889291693626700737392888455457641334909727550510880145156084855614827904897535394089445436110986894878115914754333833257274575840626612243363227987945218764518312907322302626950127548094349836965730304910547105902968580296722447662621252324537305125897897381031420956120719383224716269530902429047124697708715957436049182113164562072372795743990558704861242024586849992689757564580571626885170564276345590894123630901946980966406541975653104911560934868608280223152635897406936137100520186651581354919061319305172044702111442742345636213817165795509454666626521629312594544817113850679002011077750948012292942116257039095910624717135636622198077588458489544768658868510325981314917105541366577509307531141230784944389363179640210566536471725464556303750882899949397562007556696629321396838953723057784363166736713787064791015290643397607526941516808918371055575030576166525149989896643910831691091135785356190332094031628677743633467976205445396617311988453416217330514213054893803307830629091797488482644573093361068704691473509053540401855926553978980342581574431284094745219926822547980446417306115972502019065718961854048098767505959593414432040808355979805602511303425491603910187221228422462925235105502153764727291856962012182451308287090241126894697504322428017779502780353344479980376506848051435144335303580763425009223111359482027640810163886012410119392835762586493599683489913209137808402773031928335292443881644857553271150609631217855598916783326355345287017303657761112277594056996333606940810229099148137525822420649795951386673666698494835197622023967466734433798844562431140484799888384634356528223685661006793287704192132297904550155922356537739066213293693879533431525600176158765251775333337501575549469172418298911816147359997812571534173049138471604703928859472839673113121583601379258460331359831637402027633483054166957857131754354016904229346311024216262017374258564712291026303421466974703930046833389442010417345421098036318201560327536844041272662746011184386477297177555800629955884699919081503782024915895977717600678419562057226341872639957667950500956440293588260944234628167546302476858929373221709707011922404165419367608865643064378362618271163684333637152737703304876208833601083529617908521922394874610899621609363235015809562710603198117048996713136706813498212012387443380901872070478567397364527236040218445311265911763344616579364146943328211640888560999359933716667652533956215750533829424251641536335133158233750280351601482686687879454876863807769250066682180247035453250690583017515635736099521175199374218129681991548859958471532899453762901761203071289051766857790520580741304509899517822824715430764646107164028275692566556144249274051986913201120636155875484763871686442379112404252375101250834197526491374224544689932577790100061795590229786339102744970559399540971126071157288560006154047631887989637838792097537236728572354017545679544591417102492296330702088569298552080767481520065411789179682358699131425198138625507102707558746912500170938358559118242004111760415306245879915438973463078844082380449881095407189617553281271510528883739843203571404133334888689717842020152445509124522379418655875400542635881360449671905384334414133305357202003330018938880076864691727520772570896489657582250225121014070518553857007791442531305726866654490210124276265546278025038399376030037829048011786526203866590822150236431854420976972199262014649042686453634991363398966009508757508022385384660732649245860544840089361171154227078268467820553001776393721068130171675750774088333642371506783430550776709900412916712914511036149457067413192393608994122917283406853753168487117684507159291977062503311851470368095863084185654189562916172580578714411144233661505203792754623673395570449126892667731468876112354357515914040210385764881168323389486067408689370320230311078592854172224517478027821940435153202460107749966796612874576035558635049287099617674889445360646146607962681695296008131097521515709316371201006285602648798476036488541790251810242252931393265569647037068366164165926314987483762983580439707355977045954082165411943034719118847231219539497600500397740023694636463369221908109246069570333274053751986831630956485605851262883863440239129670867180883266227699159322978884635008549948694727443565868326339749159134843656704365820237379985635027250567622301357697479853535354341254673482300818819584046925048611971706191083295327139186179887568127414012721864521424002840943111618479104418757141299638969629308614666469621167843938998408666980282815796545190731446428735666709558315870127874126425471417886156218601349249990441443653195733423561467752423077078186952640174962299018905405030579154182436162874328133676681643724008219716995492427354485517014327843759027748206751946101763949424833682975023011926219915547719882318298326225300167411371555107291898956176639464637028350808140608938631309562156646604972420556902754465848842498902369798241021565192388639305059919333520873501063583369798396917387087320806639278696699825392080957943332287687045642055906463989197753568317289306388753646732267593804787519420158740699773813866477624876748612702414709261552356680860747200048077271826945391683442271207840855151510411636436459059857452550210643507715418772551760226089323730624626357873022474467952121440311058390855054329352556425288128493230736033254459195858487316555602608311052744995303625325687943911862815503068524715226006120530033834811543398225710737640025174159477985585752933611421406003866254235685951132388200519288586329474831501369921126353827198555197023638181167897946664176198808442312820290447959203843280093090140307324385252718722744481016988656740957811068431000423521086580889032704164963244922451019058038562060813206691316240211119568356122393036213200080692459716834841578861801143851052870664992993187496389301170747377700367156128315724865043392307693329073573754619439679345664405300947477405311261667396141458029642296048390232745573934302877261163013458202309643527433245588295809597929343832471624258048954831382474011014437689566768108798864586518386609217387998853429291900837467435119555823693441286192409733321391636638971987229380549936681024688413091141495164228060474382314428008275117550462130055757602228731860251332108137951140457244485207680633023694707523079050597215505179946867343558671120044767700076435697479568363237810504416423874166302260756763697240888237107614727694129198135996265839320851257133437313624513679241109042477494917964896444231524596028638027698980725628777007549199897841085019754826622388043012437882105663828249190733986004542196336378504182765167595692950720100283476544356858655573562034668386679071560291421709747119726985094485562383958971636492896592076992667024739688358727504715260992505601401338240256712737899034362492692695162503289634499684429911262428556886809628961584409259183827256600918975659087488907212544151171994509904775410164464855707599175587745033772939716912932659120356766534224112228882711518916140920510227876468110590782762850527014395914323022966895344742185231585441695852304602407717649046039567373988496327498677449911327971273267252576825155892608438736324215069003262522292711306112286253312561832333168585263176756616685282227447588584247995643358504793631797055465645703762582110341593257989333857001682672377098060371200497481522306751792403007998592151209524959440429467816296094386652433203025062977333766574034614841073837328508735749643966916015448731352645400523504440654671661997985853640985494305931061781556949835800768161308977010769850384510918408412885590804292442214863017687176210540696583153144870586059592195212326296938053270577953494515657908663123859343027748674164992251135544449678920034704686632704108171665104269886047967767473682595493859928952874821959900143056055015499896672709072635415720416802927741251101791537055427512767005316622462732665748028853942635206502004353581873579478963465548981799671462155572690745570421564275377850054249973479587028095872836605198081905059087563403368223306866423161167585399111597519011084010921982500034201621513289102106044780961756859767042019284008243339952877097805808645610338543023734490558671489967050242739230690627126925799821870702173471427343569777169764051547402154066213462576450632501123841112292144776859227119750827264261674716057975450851182639983441808487167829732795449480714165340153958709391016601371308549699100598244258429379746213199850100255998297647865788995079446402202071683478687443079413209386399317280437971453194375907665522408264402705574035953286770607597221199703105184763493449827187538713825515877506533260822519416339663859179289575341432428818606036181191815448286840160302331760581236137507094388837415999066632439743941414641925579656037802055869581203758133914818916448124988741052237043474638406699739453641550122271095937136559722251988676554115887548706314085657766637836243151304868044718063915728045538319471113350390176232291168266397893041716011644079090586969376763305626325713366555755689483171788873287762964964867095851027181884961461033569215787127304759961472136320962739564681885515335963237547536764125889801375817019598994951451066562274711226477759076723776485004030261281619712847670149017012049065959980410481776822935913996126433407281441313968287014199071956083110742989462457012601119179491202894300239691839104946299545255459487164358868818031257482712343739369042735180556250729162046971398259256902270442623955174229152792367876441966682362035991957132594562008549999244543896572123851478234616883500166811108727381877767347931863884038736804607715949151461120372359484512560646396719906075744999278208188799354395043005031300331431545976769567513055661259519867489810990432158736700699668857674296935905848195462665029783056547869228307588324408441007628967360730870794780781274552236195252324547982909094597847911821723364759317220359930744441746927135666831518133310774076193054017856507793242613984728539180960945583136241839457136267580188312744501106219904714821793649445504862275251839732027918507309325981329757764362288160003122373984987413515186695720866205700220497942168577608901072949654257110434953781362826594346293797067263696879049282450391352451547599006541428640612433632130972383167899506622801521484952580751235706276036846728305219565186876780949798964039370697379240352963074865795183790690428494131717191454743033384318629342244727391876454014286866669819192126761751327764135753435419624272680646519905885694835289572999741452338783707000760166952521802860709037529620709733017657702453568419037382070266224300405749316225152983906620754134362114383771276727241196528206299788661211382168487535949752916067636206208302306236383427367989628429220693899629612133089396879111016433466700411940417683524925755583626323225457018030916665335696376165910359391375808479136711433751768706767871577399034888509026514595959756886271856376253653504045225280604555650595332683281851001321696012253387708851080556183865023207045429936584877204416118594226168061633821035940266756094502474049954779489828986646166166061455505202311489532732978407295637210078954522184904690590046605751036249064018284210588752983284067465245456600685836084079813172266286670777702635329183792120397966644942648471416605261143994807318825244059602708474851049516165620821207811118407075030565201252618786087408106237216718618183772682485258267707311037744635282136035968074269449641963507746758813396154326227467257023484161298619451652738890702859190132624722221791956669467575335578095678369191890124606204055565506624107326964065208697715039312193766895868246046443257878304836773642554503677784521984943720637081604354914240029621339622645646429157004013239407163657325374129925970120012854264590406903988562367720237148197056907521661095889568618465039007781321776586348597342047770996383152601883082392593290528488910417881256853249069692454397851943141070881664556211160492705324393129538283612818410942308678560753340518137846108655168760256825547203612751891916806318719331941177298244530629556121959641980612508672016864388029232570163076389119601277320031166895342973250143556981403047814350772667984502067559767518113323830034552920086147709207337090835874592877850511869209407721190187313543784426353190463542946756226375314889600458086987878341765897501125600660071880442038624132332363892779832251698641737748380523435298574700869654404348846563257797625200679473711006764420655857193375682263798998668680988956347850321496716123838518441964029730623919275278915694950319907581417489960814848818050711310614841516077593196338993438277576794639261157467101859363738871591790653808394280222652633997772640358310846664849823094492403688688650161624778049521146168552563673537479633227097815280830600053118175751911009311725380301382835160575376409329816089181438773940438216510230460360552435510412470833421033639052686136926138471087931077230712506436744363810859874435210886788539237754744192719166683172929393690406842901869297388489131181986028474010315535195944214473785726745502656417062209185258952449906534427345173891575751487613985594047315635617832406527764645658841897225570051325360472409397358022701841670945065992202077919948813781189827064387003070489267947497040560350320563133312569682500473862891561706112665898818295172694165511438613020877952860437854397925180354627238376417060261473590851696465007681890094281155365163359309419616429856590198912557792010070984909812161490689448276482147725577117847532769723472045755316856877072901391506818197765229853115018873530997013252806368105494242888300609354519627235006359206208084046165724415370104441379375096817534572988073865562329942803151485743619215958220860980414071695528582777407445163376339206248834124494030643501656796205273306625612251037417119591040288008472889149103708025412456942272540495502173571066638180685155446784952042516042565766915568322714215468865235195242249362684208026328644696287326068413512748333573552204161530815118358864573441499480996677359356918752210849969791449249446544758300231607819900947661809783740220879417110691509719238829985427039386383653342051584003058761799754949940147216174363210000120424304786002479901884678964754008271119648489361209845261476395819445205593848304838888227735957208350430663762119736197425637863707913573676355045524307125195490259729810968521713513323614385625128906652458721493255268964496900854097098921733315680873141466244928144984281687581419982368755609497026450946154348801143010241039537819119451661854417889895900376553035028021469196310475383041676800656383946132952559732786645862848035657783702691472901612077743882753238716543962814387888874270611542388662799852771910210383837402864158021663457306964514813802417978478636663989540766086546303642519200015534070166014345680331139254127401775324104093044487064339777310900771315322747686144656798143362212859039291651634317422903261024267576095558528691069848766313421638003895568079484228377861771229764397615049164938265084642343149291916460662925865295828059794316727859434431728515598128392838255557666946352151785922407875265503546168948063933580902208102353473536601944078449750055630962289121582967246787223603824472396406853066171484677865015860125201057637991089992136360189177953324532159764238176399453577685485202095102787996880931629949575955516741906941109430832540711672084938988335057728444381159042861749659032280751630419320569369203347628928820113274986528407792232611711571055230951136369432982265308279557157772903979676883487450641380057112106720303537160355064029141905176395421941615589047731233340524869536643640769720051498733610073590231399931734493972915138438155290396316528422680147204477731285649810472051742683745301060466771019873550669563949019266812926010410851074055997708080703923431021235324019659941406744918743802445113264657933503724030100125946277793400774115826621051735502471222489861363550816163637445553351208720154158663333384830059432082803839636175914597231825148139931274769165802029519861516599984447220374398526833497969322214963499200761552378734002766540517529094079920145652927724334232179798934065587185941552080394944240268739335077397266414697535562811839868320364004940647799306569300761107773904067402849271590573706027729797661993856269650098811390395755103022282642696864342339324171707282961278102409633846222423980958838005969829160016638785885214157494739439653084853082060348687411951528808194167178448676140918206481879615940177285978779593899539722752351363316955744013813176295848166318571025973313163972659369205323807737660892056999393597349006457993847484666926794993565462538004163489299090827745412207605732077343337449710477621502935595070656043057721179176926088137696565896004614260195520413836386956721886863016504864348773019618872815375637340094933667947386491712707334462321498950390954205452353926988032767087546761634181755180751608011828944916106123027467639705155032586020575263886143572020001929878502157869555055716176057434204720320386700372841028805732689702199783397608798172945107409334845146244295813916694690174552171964545462160133403959200761906076263107096426896029735174559615161389129748576381299831514798282573617135751654714064837518224585788949999044529724117501181414343519595583248720301020843791760717433547872927120099392709872795641297222148248715916149050315019653477755997502481021851079233431819863719636314673742419473951335305034070739564368970274665224286532566165946111887541147470835344952255461388682722854281693013088877951702581575839837357645431108062834638400292792780612092231212101385222479512075277489544815557277041898241264461326822956746261209191583281945776417052586876362927508427509022431225200507707363615634594791901090185604460181810290166973230562592661905855135482507422313545620371008288020513029310174823224544066268807424627542156186933878258249390159610751673505352236965105441595439687527732764547906839975179526868032662502723020862435127804055800648004292952011385784620442800815180225434070021949114281688388442872848457285341032756850969635285340559577362959311816495359707190559085848429993590744828115736792117839258265789148931094285399152658111570681837190226135974886594995420397614832625272529256125262917915450368162283450453354191913411205719292183138906230826827893717298277244198267210504918043584837414104986055766039071871763735641017607733474194072875921915217721453591684145809714332096898001869222292578342766243045556770692250895571635394016576775176551733363702620870353841994327566586078584904693298880958943330525474046659890251099415656074975524120352777357498714312672437005531555716274575224663925714346106165848775730107813148960024196736044184644165590955759584871929277286787103839647826369497632815242922076487525133598994468343432594521590794118198759814574469560014587288954321310275613064976742734539710734932226332555750917744256792724926363454941373829194020884034786468514230480673015438689351892131421554352587205685669889507659253920590588472527168431724836142863512113277650557712103272002278272678866668451992837038738632745163043818049982746062977255386873386613352384625769528902980458072819126883796261943223808956978162406840856898169017338836832877696930457634103204516022543118280194001671694394958311526134190543936563950476864303265201838125291740360963372339071193968125121627134840677444420313635369745800224526593856482010773744047408201770027711691536419259935862986668873723749267525382632468170756584644295166820243982017524669766109102413221077502545297561322905340843686425435771196052405504760758719353449817068115309277035024171512939332899379136817743048743648861540269476173856269903778665938087374137139276116363477959421662665974484742391257280650002984387348821574279131342886856183240885710227735246260790216428580265719973984341528080439128127843106966010819361426750314601385157584663545477638761116253325662039131200269223649414520522739459714606754232349599573135799977270388090310979370105240164878560829769456696574855122835001580704371698644533412956583027016060373027161417796410800727811790335165326223078250034501010743039526371991628316985969001428904539351835349069341448424159515694559890591439620467931205369397127123812657219356871419480887286459422012241963471500227415691390946733314332132708891339467914089902367749304464886348784910080491095646858722658074067908010234434657473015808931819919890220618690361849270520783803335850326793298429592306280601733832406914907270761583786514552929086919826110144528367942017425524288506176327278123325970769830847644468581930197243856326157540465782924522247115113154739064097421551461635678607208214348761988579270584667363297589067130052826072223885442620742161000288572593188401754889605519299089851985117571194274918070984884023545347892115434470023252304892208026959112041377430986867460491199622637465740895948848957528322055287919209547188826316121818051757086345103451540171595441357501648742356470067775124515337247992994013622731345348494470721375173252382371563493229010468136091074353754706876384175697014227766316038598613769602118162035857108000257403512051458720897984098152691250907546405625825906797102541878148099792502235183411792224434902536240806318924524846302754989685825587371513781222884971890509886013913467470477134836214175516869466532555153641139438618299579163867746329168109110254020190156099409502893953243639130026776988075075429684501939316209725661601587547223536543846711737942062695797451547284192565979774583393338194282626031639842283298479700354783650340724485290084364676998314673305234799946235610360653294678767983125111541016701742044751030475809463846528467632403304646541571909356974778476330045864777394284213858441536761648271478953719702429751437619855412475893387183192059111319514098560361443632156575184462229223474517214867960094142796050783691863129163746333225521531335285867226741869721945939472091375053580818287203175807602634190923315922837061798659608597720457556780688522889776988317207304724524662711917987540980128894338553388257209393846650952197431476593066276322414673529232607168316187626430806542766359120881087322449869299726508170964389966697075433171198489907404053178721638081127020110737570631184348728172843952982505546978343378409476139823527158100629662501863897433284209101517775040222911173801390786538770658454062942173350588909518194877407296195800599052211987557724856837118414712028340641363032903947503533312218891161180456365903689265703642419118485573342064058350329742983258710040728266467294214193477885491890076758583100810570469803475369641079912119725620433767723530526942441754630495240654779006623582297789860112044142579381644961408011502743857859196227569736498162273361764676108186868319381338326006573797034087747098298269973895182142025628168757895583745481614960191960538164607784679511719193700571103944897474582914220258240092136710229382149614806392659223200624468678020521955019466613629424988195053411519619148125995735786662589261626616721113175284672131248911821092339301630809818305959992447357778216436973761539308485391548417736295435598295378880294255070925434020304566305094677598617388236115394218754076862335189119955079762876053783168520389489524585059109817492809056206464987956034114434307946209067645235524648942390473225319909007963680002572027134522068732035847948905448785222910219657243638308240975547792099059606432968281692601288742746962416763340583029501277409478064382441456688207029223737242020819152855722172972350784931965880085926955007525198520535382720112728164270416856137914545874074057561630798116537090795270424599024119881969818421370503965634860949133007574507317695978267590755203780870496492129722624439713654706801996479576149550155795685313478355815036383011431078537440333622213995493149850956967162796299080020996831290227214993062755325130141961866828296169939853946846509339991929193753625525970134229607040078867655334515776901691888602601871242822520503639460904865134960940227067268638160174055790511777890787288182293294531008272335185060769609884959654478926373766463844851800663953440498403656812010886363369021118805870662850786535185418992923228462885840394484860043589278925568910232867502852825287840543811186428830431340895369596113841091694222468635084472385845218060973008514340287676117886071151932820031265836381970101426120731189786412993517150885577519155640087807842832881329601050285903390926079965365192503161598675947088883154844510848687727514347911747638585114348116566356235996110006102045731365727963538770921440004656370548229528943758085828885397702661835364815045719968593899697661420643084787059077566116837733305375813754241702203392731233644978673940625034305322095264737366145039134163518190686045908555524666269741935553098035309539765603983614131637759144857676437459509185075352498603414232771872359822324650134764626927250823925299391334182286578608084514461809540546850620173005084355468964941980938835415319464978875726098542534080871166767187670731282768975222212946223665106636815388196153842613696168768023496668244636909844565710901479386301543849687118980008299652890877278755428770704414884387563552671084862658399716406580902320989582807654588854395760990777087899677296675317753351181920706655937771988273593790712207190163971334248783055116930318471470601082515823773186417852826386207115786378337967745760381575298967112930126367559475539492461390788016740914272530476099431453958019816908099699610797804523365373089454772597484524173764870665976744638825370584374402088270146414812086691644738579213445865873855475580327758349800406425633097462392625588090289557151653694479947656316455719523567248639372790457114610279475537361544371429808760634932833356459092946320373507945126344916576078190975720566835487805373565678522158563712485878066787407056559240847705963148756886720584334254193368887402521953331173838828796198819766107401778774726185181412641047160376941813566167521489806222815740900126316573192471057796441195739224556777405346403707985345851328781703606769764397638141678889127826529886639092586890263670501618884369925351186215577720185063402310624539378816350527225623714436821124550325010422064546104696563090830909083368989826115961154218685404326144427658061040897146649059619680952135008754052117219841984719323535261407687306487156225706966277175053360533620226472803684384850314009532952772927233667279302943788436444776144002008329799137213495247467358041974544906022928314530454293193895841779521482802133717704132003747570338319593823658690178601614726066282337760633115753924732562308390801551376766272268866296491495351795991901253518776157449522735419421389960392600262358675135010253053905536903737230442361005386582338249746896672791684359597434773593922614765942956202491598166532683983669852248259748317864449692385601597340692216880018345532441975952288082558022127556078863617360882980715311043615520281301911968341727241124789400471347344984293561675434725849484650020420800073519167720567239364523318902328818377722734142481442538049142109952170196613144858837443430473930650206159558382850694924626025893257468177399883223574720122453377175492235514380213301797016680678603392478719187365320631458078636082630922700059240490211131029750551988250568249622337332654482889448386082600694236087162515139624684799088091186152486886203265543428754549100194165304885985690162096553653209130183777578673030403320209506523567752664050793922313638980120397796734308759743278424211220839315499028585911958997041658288197255419646422041171502097574607345354519716218999998352767965546884840046636573284471783702581863611311757292835231571418172476388326236563291041297504251672648269380614294630421323393624029915573097376376136698670089841936832452684730804443934511112137982807021290930072059083496120475820034352558274124473310270120309476963976500108671225795041619985479473507854851073740058416320233043272603753162716384701009294178163341916069050300548310361935126192690513804912334794871797305836076761591243810914302051484418960488477338710976190691783071026012562004569005695172996209362558642388066701574121383345933205086911211844695457107296196282117399200547473295296951849088919636535618339608614525434202482445207071577976820654403729112840864414300067336908642008455964142527160262570281105264542682570569439556637469846167139173345078406920546320558896470759208993266755667127026605114429645371775373814353742722400866912651274885887196066000442173932792190997503376807031389547504300649557498649906481041027172326642143358306869125444723099169193015786665217897232587403845822941219175356899811113918554780106162204702618037373428605524181962124616149119961832324384018646233149313573965143057378126565020502850544261807211503415535608436128593818648925222829549654239948215071838960158842313209659156331369859652095095813527109742651372037349323443636644215968463899342541149266169558559939018916936290392273978469419852558704315226044592130168318819747155300291497175519986693179479085114324777149498077784871875868575950776988253634685185493141425152051846720196422409855825910301800250082398787068981281448227353509750842583536182354557527975461836689007191361434984085308582760107647862413351509988314789323289746906213718667371680240326522400368808024622632946341749898071641124354064907474787663748074632853887350460030298442980784076042430409374988965507131425809712298412689105774860883604329990595271564701530329902356846289294905658038221256495902993231019231819703770311424761378684931146144093259449343941523435076680719203906854226220876183064924784132105256163625171615561131742524276384017599409707330802613586397249826453801891710082617875020291220607810059684811788686277855689144779511987030382063414116550724669640707695272016272432724561493592352828586962078633488627544156619871528765804308482510886715585067473192672911738946378116194346597999087787599388619589746528246420530569847477671589420247282823588989898501624944956549669753270439594109596108319191472712310421470810946805049890346816914476533762379817991339173791022686851718109865146167687036251830063111589607484798471941371892748632386724489127738940311195322734994107680197645554694277460037633042585335912374464528418377003530894460002682502073643442994746409337129581068809205213698522964098405273029083839468524717590471212343779706989240309715157559947461041459619078156114508522553431223844918758025752753308334917713740571203596582999230264750559032226087379801454494201465741256966565133830751090806839570580142280715033545865933851703869711235473366637184941862520595925874790748298078436839121428952642690476875264904481097581023337148072302409939429254675005474678401885598126316654139053284005210330675026744249311349828291636894453393152195625600629126143109676376448329901238982084219630110579434249335219195692273316010633042826575590227487511268039414818395444142839303196732327441427030853570906611521999211138186476875044571015768014196473385558836758018915178580540055569043625970903485674094723229652278447954494929248454821848670546054735230368659844644613076455071273935127646497085705623858676263840044190330302990028144891975575017088631849591328261330998998997517758666899846527451486024634175089903712983528340778534258792785450304882480645668042013680411931288705403817961994906498587751888176947202689179458016132449331289423055169221255432938800590528741878436611436570509742567134351359087008812405414360953553173038531834385412615866820458380762756192490300266122442068593069054383796762691581476818785010305305940090708711803348422160253446092355230302490471499726589342441312348275418209231200024090471407625095833316883856316944778846541570078042568096255470800117674607305387107401269495552739451086975501082131223172760622061215765969597265010364593350570369505877465854488587136732355416950736238796543024059620874553793444464788862451733601365073910441563373183016532270945353425311527190982159745090682683327204106086462897423595952818986274604896781193793432018005390948592760521902828436596388795553148071788223444330284195869223455229622740513090248490456687866227791795307653560082669232596146079524651874093471160317901760281777476198009852977922409437624792659662860685095852661362417405934466561864384821915335844455889217533724373662769803003884725554055854385922383455305406614812878709032293298381805975180656120243180976614248020399688168486774713778466465034349286155051091418226824031967858574381856602512868011911004795640454717116985775409393697022929049588089053703213722130069106696357132934938149367460962473667554207367055591268254945694148311156229661235631977228890169975150503476429565010420572895504370021239199897836097253404062877376173175442216221184600163273286333971150443440989771994225840963212560837784606192567459640484250359579366872704437903840048357981904864494609581644161366708291983956793119290872109131703250296496836587967895106947782625827046999710612954872859579024704284751294680109217772400688012479879733188544100157817506918691878296920641823202542360149763790583656189138047260427166000086763461884325852172039410511060827272878997362471644758842544336764922897349968919386643141375191348249078925282568296274260891824161412802134960440858372938888219795125300742852735763969341604920547234286538149343839483320224778041965362619438770611463874996356456816274713619879335135729773974925080392886778451360402276005767978204355409795238595080217837173633877492542575652035931247042493251603520736211748134858831691617649543627131178149067117340584479850375747635188692220418731932809990484472126637888360075916943040823648329994138803790770445671766695343845871567332232627749985081637474707229001514432130472609758398106720129696966510023816779873777306934057520572492419345163860875985200635925894020819601609714464237814531988724808103532032902576241902184116253651041177510802388729528630766984947662346470493853301984493023041104324369166863103374301502502608589127423111719961021020864787054443188973524883177495540061783658518527199442316456930951743278503308698510432501121974703909145713063661894092612073326263448162529067726168577841002434555375893557336119903592638759231313065398152672481912149569734616066436806722109126347388921008461274902604471483539406805049042394647566277124370586479227483774312328460994613106064707268462917969038938343091590057995826853720658089322637980191685143894550387639548618817352479511723206211100261679334212534972596358108613746222179163377477497444627125330191649219889928459085322183181891924121581955309433948078843664207327338461358065518116007200588065212737344098020441737277311025199160971437408242949808727710514678070026035636955914012344976431893048119446449145708121372114885022899924698640603193799777652442822530599440418896564049463354712755885011796933992083320057732513254716103888864632840069568283613320750903268639374307749647793973380748284072188702281800816419288775747074226032185621206924422085730525150303754882622945216535012261231845607759592506442261338941643455187304561491492052755500800738513209146811319381946313524514561249154740783013180132540580607561531680137358929863412415479034654252858457856754923895652578606557614005846502395034143797605637022417681065040707313135107843316660820581765104737252586806828658306404215832047272028406679506660505780076438642974075355530808207023143472285268948647037011709850875579127755076012357319790717163739515344934832163859389205390969223105777373670837075747505973289417344820222598774626262061023708135402353897321832167099894536131631282165918548858263419441447111270924026539278739823369390337839838620557417615597709997396492424083181095055036700585551402830452233992020373549405586348573595299142775182965687988783911344292756783989632087019840494372662713153413450952438797979889558047813725137693560713670022055870237090422998155883176341414514733488754424086729745123044707967652856597413430122371250176037769697749528339209476996841072333779164232987589993359338612094420937112360878388943964066420212272774807573556909881103813639676706464600866973166293025012066627270891267038128669355211244201977027269210707094598801561900958735737130282373279632214107988297566374864213503055631896781061119635433830408792750609609504790097199195161529161004735449442420365025002748069873279154780115277948460424278184217604226161311545717744180302981882108619790539315346617120793179026775650013671862486924455067840062609545206230135859263584069868045355206378788971173355845229675292958471407697334280122899043360982516785855493319356097970798281765120875523874345587934979236899701468429877578199615427343300617520390732721226027596918683317255135210036586690343294439784177875631899849360859386534351329937816927608030741791486137470763884222885579098058342967611642932288887553932579335160705271975323807856314854433702435702480456047568924734258143268060635068073603628809197936845850525951945932932371167613317911312294770013978929473352771300835890497619762105357110634961473977288553267864902651624339767186270248651689086798086096134133304418546075020424911881266097797870828107991277868756741933185617620355319686156443790465130761115171928222449492562603183374640532118497238151104115083781152428498775857384429351893080526208128024385826992717961378364411277536637476024791495023039294541165412358199911971575765434310064772574861539591255662932683350251942229618492027698346457963394120664410588429110328278764242784793922641024468894781918404446572875719213141989373786920435204438795711618517105720517818674340809475911321731242041112762162539103776532593565896949626723188109369515803002074063860008538762714813442300550102261696634011911614338846224401351379037176062953797311347601473830769370001261223161712880280852422170577883415610052399065719139071096669776924754642247749204069997708062926301372060896136942174215222915031620767902205650944813464478999897783728234044643102607345975686069592534261283491710696842339395213647173778996855712330867287742473435380109422252535253726396416467933205257378810870720884228919253862066978311952892891364378017581823312302131149978903423584600240719611967760078342003804203769480529970281784313321804371418212325870281207783384046096373571232293562585555081309603868005149465097399065509384284129800492074045349835015176113533793586588608008831682689828495018856132296179274385005855468463141229218121786679656701312540672675222225884735820032743316667527165095160054455693950179854907237690243539343720150699412642297517309413482771369067320689880818608069877593444821837251291756861758228838508723922205261585055790333145523242686083189489194591603951549086185980774917155452455713327767193855887821609110712542130782313246965255152035120241261134984181798032123330409489085220744317731569347466413249980949349985136816324175347259218918910798970160599662885537119623385398898250630841448008558189297139648610995861824963092128734499796607522693653336110314657775893720452854510198481344062837346119854967996775298885600926894978977524463961088230637028071150695686760958360020450031343730131280486491905273843521908673480891843720878790829599818578997065410796805124199119768237575613271664336777992499793365466485559067433420813807648651941495858607122280425870359019023239972116991384685397195649880025570711979585039474724310018679761699793908295069441560978521923574318202035356848993534846498236215809654303716743616350592689702023163288901879072296997559975575536381984469307041653124082425214630795790234059102023661585951121249221554667556291149542698865618393290260819437386611948440407358923907691846550226008681122186599216546255339659834402828054308299551542141230614735557030190544776516439615562983358615668464651505536867043350945352892318787645478630279934008259560718871337749916520307196817204670615556493220650293271678349176539864136346726906529691500237699681559893704935802554657236239657779767858481625932237757343258966871648411941794501286178525503632484868395780311521496347295637122882252442302421327135021687346876057501465613376946635030901008286167442831716527872399756029427222239173896328112435847913640861064921363052921465143211400435334361705151096654162565347145338467572090525346511122495145557073557647528499745140215471049687803487597589954008378282918620486296349476336086670983269902306086398218091442758742605183494162096107633664688273608026157149494824690785748072295178806539584736489773225118760655173947131631608208288126716392701296449783235639309750102826066180231168907048619500732250972326253203583393880702337504594873860968991065959420849787225456241478551945678284763183693851894639331551751309627499051024846721313822767296131082173798324997314305237030766122875155640792564481214960597532563176164049586516029245579060489358254617579191873896667267767629657556664338493053635871967324266146922676399922390884431758098035115449519120113661066978741570537578882459942554554564864955049544073850247578644215599251872729431301307279489112137201599779078684195547880168182700014740772076935938262071793286763880346302649354986842081817041956602239400270998142639051435930988742393759872412086182139661337036804211304753586073385828377546334910719202811508491477915618879758872179753249060931838182079410433939168198909374444892484586363938421853491311359272063615593825309098838664195533069009982733275980295894800783040811094169982794998087511451185477761386992903553153180440460291930827305257427677571640554728621313663891016578890245622772757640261582214896110933098667958403129989366003889764522333389039881975180890586392504268195859710738030110677165433937528134485577129228477981090914900212360914938912106052388518260479204132879684639157745900194135698704014799945844554336026346056007813506807954765701251319163818914611284918438034542270208813596172227286963559742718851487930240076788815452972871142450007919972978664884365900484078929349113463044799595491468284358479582333894785489652499500503803439370274056762221669704468145616482506201026805633380655794351454075812486069967616648003080682301282647609195048661591885183453543732563113097735182649020508825916394483750511214713820779355804102373710001857227228125298728307302938484332693096508343136461747719121084318533088882270877654775890665189456026406622253957903869121344654968148267733752534296283816003088905022271445177574067991486808411145599987412965160452581010874847105315917776921155861808693781575507757526144602748597489423198378822530843849926933634834660280471048212474973251599342049466526390313124406354501659055704713994587536446985126441501653035583219161751670119723030281432482536158718042242763625486641745435461604466253162622103632926918634734537755615363545373567250776440225251904032950302586639402599562471389450051997883538809720026891097730297276621788235790439747557222554141994016953887068099451693598545928630491681214077093294091081803645547865335702018407102631337872601010635520460986647142329539296652444682780252247312243986960118238756474491668127048943468646767401764847516283577413064204609261816031232360486024753549592988594485685487425442852501070965821848079064240548659812022562125402434153200200512890056735658457614268361559546955139584098187917293828634194217374381696070787876486172961339971709232184863062076148998294964214895280472748907604048866335974256358615718138960391844777469636610183382665041530033740087027826751021740154500338244873981473393008898955057152216677534378244531448812829630059707819275874202391301632868699362941341602946988678803537339399577930179025824644916719113372524847644990621922530760222608314197081633849744356102377084119327393113541064283181603126457939091138045062050584888868468709265406268528574792177007188430338818318971522595317023987025477299877388864001769370350780613116235251429443382066480046428811316461707091772892903308095473578805792328712775393205603361254026759275886330269555478906098474739643866711274505050928278888840223361146517683216593800721441424682783494246629215527149779728758006818684824285105096808443411009442393568400860510670637680797321640259553111577978352281173477774648100146131745056574484669528188361305260135675474004440006141133381030400434446255042077763180631735705675883966447112700800651698248188971466707223368529935102634555926389943068582527588529407586946555530567466959682432767878218165652271395247768049397573096537631160713900043937490837546242145820051569754865208605088941084034435803382416264624413592935157246668239404666823159402111435293147679036830885025503667848958439913376130193767853419486706974475981759991697382259735477828096825499267731205613245709421884684171347826920385541186362321173186499090374624253403561121964648522161841056189161647894293727607182491772613539776470217674013039437136607815656118171365081719125997890089688215506768562182703893616188244574355681493685117832461058934963431907619784861904919650099052559248549109295732147043195938788461206786887153219043956636806060156552916857919041081688796354751545610608166985469058249213434115503569991349539267314513393011086614891754850165628082237253896599238906028137324367371904727063178930322276238410014207669965626833006817889906697421265942155808276424853197709237740264714651389423887775724444785513175685714886448493547183103175844717984068902613595108122023465339142176736957179678745565670357003247228900374671282040801456908466371048703392478656083167254121798580435107172396916655980064295114290553808741927422000268419127004218129011726972162565665060883358137593031566218549187462360406992333423630647029105447650649569002686589626990869966745148192019982150168033353263893687257906991295881292399802671105171046159960523974882717798490293064919319388579904066207150814486777827892567375104867424231396719978867646202221248413190709975900328235676407427417482392548605294616731771711559211934606306382745954423462352875521544288371788216519798772008552961743607351605394511098037726374759026602476695440734444537640031489186437115671558621142548240452599374611253483616005897880256535170483024956529676183369203655208598759118645655222976982638443073130719876423458617065673602890614599887091996427189846123755393538892695580110677366736230172459046378411231084728370582235333675723544493734235500541849448199689504337823017251533766865910855782283655483281252124009000763142527993718962409966292404354996263548334296274513809139271724646231092465142971323484578848836190849703749690114518603174657402127509001606440721002663083376062637021569306394488346243239508679391398362511615196311377585908811816753682886183592463947525963003628078132235691966374086042110384712500466872796437488108156713507427933726493042380532867694186792795264013120680634632171775808708069220236090658683284597848572659359196615946411165030242005782133680826650208780256933893140165790940544691636780624448139460991049604679221260452903301598343846771645734923757602011808410918570922474158424779610247724462845403383611021535369165757684084689429549432802406935063671455167089864435658895026689153643239200704302661152659745281508600572838904608167342365925722716638431916813193057453085262548207114985821490305066024093946792643470049648631311359399844205203920783382755323083638065078858193498166136049187689987083557935914957485456620261866093558252288028063750409691132003795920256373327959783727884255461592744559512138635842587871251166201672270408713699784149929612426999899786459578118106733134969450732592215602813342491432841981559566936373427012199875513635629689934873140180277973703422279241075148754485139958551925276934285922601871721958792079612255061114150668114690803953847366732801834167506698787246818922409585511672653992684054524569217420155719898098795224341666707131637739137216937124407479560327216103707841812833947781368246028047599301463251339692919429769924772493963289490040733722180259334432023711203207184631318319101811328565072568644685255222101400665030484872278476749303244657307229666192849277984640194993407796211227886782712680961685333797446855660016876433577665746062266356458851324666936597300242752098162078659664120807477706387421726205131364243060964109530054889263998458792766718437248463877112051764248130305009272148241289469345468261112229499271803408057979224603436551364157445187548488283493651159909207729424386584998784630967850154809735970627985618258688203088433373575415802864526199687704981247173088142098437659617120481521767073681897288678946218932924060025135854634298934266837942657008680881351852432692737808320604970721097151516621920265753108076443050071126425338460315073537423033609526318980485657656405299102893872436531963133198139831859801726671145984589413635786684610375615449342097217213100477932635837948743083480129028017132188725369022385689918005033682924348468601783113023563249230657729747119280122533772797915968737527493246258435737162436344299453630486114789010916226004592601154064755291450697760544506929674861105839213112228232828795034738020712031154779436257044976790687572834528079547095149114331492099884698143889121250373326252720226231740613647970969278883858431386175146940415467393719219312254769085464800696370789391807313056105059284929082257146311593059732437442593623738632512368073659515027191795909350372910284982399047259266820112498316253240150709636064022729982027667649960096231495394237927627683421625952193233463680413416988731503563391750280888416849942451512482271289953854045491910411426569818695874197581139506209949172385276607183601632662381578841912240464616690565797834515654499926363815016781546462090558846465962880330949259094240973227522851293367147567771603119995096336929689537146268312469341219752401803244054549451296833073037342772949453174710336445946156126936503305271018866597321460857941003733089503685832188477925880639884493171331279812355974403131926986215824566926912976969952561269249789172899668062969172509689665205527438746301297057143424394625505178988771606074789031671413440138108184550651510664572101460319358023562349046863746916889105278150988173950697431964019697532266496661704138819994032653036041290625469038404912857318964773107681255266428660318061476482216149261196846966284641904030394214718327624861674484760934631650079497516692675760070335588844447444182039768041529048679360969228503185589701120596393332442618426577390006393718192895433477202978190814330080400102030576687394271631053330118400738542623138966073913811247636215302912552324101203516297248147548655570585975365936062686284200349320198602196685755435824495407176859547442834726801286463351641244526323155007239970320728276357238662873862721511005032645111967582078113652281579909255072356953160750422197339992467195712460658839235142864409634237180060521782812376841109868984389927095913139254200002911222654919128446366445691059452041356349477513178544780106182910012296755571262545539515148945750742499261071584099858734617584749496660240464717857074819387960127577711031755885885714557581137575616770672709167780367473088990053561988735207776216507543821382858964993523208174511599244466965383857477260368989698571442162617727902239010712977088840783777780906024994242969896033689169600956707788738873262798600977484721258499949577206645576022877844557107328702517551476813458878446210771443294848287725035921304969292048415759100496878444002054733936902655402210156984381015424659838546926917302484860356441375041941881894391093758780666209870323647194420007130884258918048150778066996417193812133613486099518557100095465220355766280811558855177213526537183401116637018797228222880436915056566207878908622819355929222751359992511691240320861582722716087511996233827452164816562803989326198377074167101167970242059830754860347237614297857421903290127566876084745850081624095306947026682273459283309507162372181023225388565387239166851291352048628085479343017590363708019870329101544138209891072758925001020404621273800047348932015921181353457538240345039770611734657979525916226345044853574111095297847438287774033859137451964112126403399209468561496005332151064640841381624115663657972584140946410175511661731013670292269479854603623623312486017730896781407064542865648431730167523186025836513125217104200565518371412325406760668759273873885433896664785436703244305839724441481899518389273721928702229769413910098794796301045519915046883911503306319586950042117854108793411122559184068942945480306483392496300096623211034642138625159719032730719397469688858555891573144458121845533250594345889246680149058448620228804159762879361113324189305748312335807289399940868399853069364424557239327168643618712618036461524001980807359228970405289667229744519352142862530000600738196293082279356665094004156858679890349273136837006190041793387212195313112579654451901897926803868029138331613509477023329426225732981280750417303025030396021892688193110709341234854204298205619149324719208863654258534512336229929026553795771698662375694795544220775670981893555767925898847604743423324028014133268956397561051015364788714741850575432237907783128902012543466140867683545275596216972671904128250755813474413641004747685310506520160292443947261433836081036921273335278911541806949299537252710134192283462973163431305084283481447754913556131072103251262981949733644177051912616032262047539362235506197225292148967918793750841423615181270871554774338336826160416968789997227039128203958017705834574035356097769768197859082361040688706362975585703794212110340860753849966503475723286667496166653506147098842656985088835212529287769003019424571782886387080819802133391923980309972897548477510880249134097315997171083029337050100779096519450212826561676770264501233872144388214538669307790410553174309747094348089271980873568707276627148721072188043891976098531463475373124580850010725594628206360457600947539679152376658344008513392784808423329229971947962597125542882798245994666420786744581618604036301230301505505784525574561220451113457747558839797633855793581141596084882838769665057065297063508575163795875252294495795473747290813271256298746744872373137355486098005272330750885783941684746522159692412961888379598232501251670345620642087491921923768950272388781314658107480770266802200577927531021615538129088028956877655607587252628668849841444362428267786181081263239713677674265287876432150012872256925060541975512542287756261519375963342425364805862034360209068645923955284302956777678518455337928308548285745482741919328028988053770190837635672121246206908649534601271501218282025260809858078245594849587560806474055235744067507697219946823370487748703872003863367443089390732603023450318168131965142787291023026655704134661682333882410925598669086118872486095513023603330644055834780090278600507170627116353213431090109281045714592476396516511472603897998362073310706367934517328737410114577482548639983554601823840336469534740962587220275984426768862993578728186901039827075673994899065529621061793664708288000639060130835513623177898435657346868058221113826654015127867096834344347692936362708819354519381429781477965734379143852118873183839364433167655834866490917607810241957047614829333318060450827572193830677321157995981263972382318779679402431128584986875120902840894074234775522187922066920624718302326316641528292774070161295881520074844131926836668943246285081687290968005623339638005929716962976614563841047851463015342459489672195678102205213492315696104223898913740744576660504478405292858437510698632758266829469600426732553787164556921844082965819999034346188041790376202051170201068550841309336512188672068237744907313367838783624701756683906229288738649117446084720938153317176910208828038160841476013263381187405402577374549162683776288337792460367676215218904866749530005322802489907690046387786311037008327654213271980805555338870625188228136028102799535419075028181067633159603618973137309679189582311979551729626473641887983566259452830764369020708818474684333109161211343865061203598731789221620853962909624246415219874083716499191346783608971080199424371619943798399942426120339056625317484631727699334805063392990867217860787433560027119317636845579945615110994980053929856059088459376063375985690712093826034648717542941341153182186900790989435642048008799642265378697232818836601898918952001747564597436579484992692490176606197476807067926335476312048989262582427215735417203165346570425921673989764927544341721372300656850679812077145593595571038970377622078198634378470565782765978666588831337857946760754669577058724733062273216437251441553586604026360845546711523291720355907715495945217115055481466561578221033087545814561706015941682990667587501965932688135172152062238285082100132546450942433384158315792692331328605993880791010455963399270545601672413881107424059062165894747902204484150835130873755434598979487851788217555521800390627324241848990308010087664403865002247686402293252898046500287219730912225036660783179060205182196958552240721732675680476317964017597528074330690412372053319010626216901714405298296136914772762458817091012749605732417607412180089554288030927025422241293507013852506631164820423607731149382036065017687416691128942528251491587516794582880427157211053089236012400442126552832447062654996503588340503531647753804051534840638252396817900747529288759190600000712600965530835346873722828093024720536661888354846937773382652748075679780675475850481362853126699819359035937719820404716957133183526305578226308755373720853041176247422100492138655687974698647019227695264069157533745838625851936958785109502300010449019332658324446892302718749547991653934580602043999259552011890596108838255341866144935244830178213900553096272959399726033205773430317344945690194913145561009022132894347782097763475262166140411132421180798635746891500118665776872784018414778091454191065218508442884941498502518961027563690472176960996198233235423361650101457164201233850702198085810929912389317252478929913252132450541597219058745119573414817798042543230810634807437404669941450162201649066985046209726390299014091640544843731719941099713416153816640041588881782517944730697026633906618155895114154350974415746968487498881470972976545149737571438242102752817709250712445350945486421132674705873747876223376644510849596567311244326444965073746976072593623617790202425138095139233418282552782630438682679113647176434321585156902635217583485193077651186655210942065120057699423674380048245810203907030974618023529249137448659325297565770594117181284636698332856601550857961521354499020017471465259130667771927735910187167633104952097782753028610656179260917562566921920860083423636529277568939039279891430689660753671536079252010372123402622141232756876816847640587701874264218749000058382308055563604014433633894118393064927816286570248310776376246442174939562187659224808924999876689878125019790833702529707938380049073001244485678135406413563114698157969374878799466589810504307903995292944461322782309831922618226370803906579213670429166033200102319051012779216999738476126692859385035585724838266972884832274164017300467477648253911069578478411600824304829933293789322088767333742644189477949783212373242119556217017451946048789675463001587176488797520560687853287890386366265773219126704946564978624130709883278658295282674585268967427142720466608970067941885738369666925492318854271393561914767964320594026011753795843292366509017917889743659193279489437388077538659437906760250891524549653468861227342042582796074261255109346428135164026998792232450362248789014985950372279276074392435152712451764382141841417860209223443966925898911301013787217682434475072244429960790592784436547690445935965291464251703538646050570275825157487860499409528707511099824240114484160849410158096838341702086228451140691507420051389473770942143036507167508391473851851801752127812589470919073431072160700377289618659693909885618595606212255673340312559613406392095125744860035739450904332893436371253449262141728463266616269514892477274187660789182160955828870086718723012396436563902933004782419440945616474538279958456218539552171161864177132146540415869386001953791956883067911358219991212825043312280337742404342779425363198950808985163703080089444754559863687590785715312886463663951747115864573044041830912576325613276959609710277074920383811618313037099707233093144101853249691990268569475083062173944834924732614281495670198878922537560940551004423548497644355088778452137201104070267299023953329269793123133922433196734923803359256543078457985845380628644060082630837424195025688923122351999535835156847682085455001135879287339716616617576026305508437690066153482466832541347547632635282133412487632484677790709606676851449671168264207197329196739675394798387852180046052042183881816570237834850308197440474245286271669256379265611952593942681125694612646792274556760463794232408045089876088729942357767391536222024792465815671891363236177776650915441714784969882285949371470072853665752838681954142825754366116829453331033347524887169238974490344275801602679240810783871898184462163793542844943335441157130580165051784504409625375831135624391545133516898854316248182290496418996507770545864101751005260953695953602131868139765334271967070488136312159843775642173933552984675216888038281323787391461173791971344350225667321088807309805375855110953925695944131835802881459430863801665681752336784881046470820195908929586758477496931671470369193834413437000306971024758881841298652289480762113039120229897494046632914623291349381785935322054994727769180465181746922766090676697581077185340644034159881448761301382967112075808145126333870005955174468409167652207999099333168219574665020693386241786264494943913922371433032879232929758032432403266189413424809783197677565576483998417682541553547479853488613381650361954781802455662066971213387723268937072889031654213368617633788281142690787843194066895373267227432242120149904225409397426320968125770669514097601414233405550671240298756112792977694118908143050773618539162814597989235106488639408021404717025043294712772366939401313090247286607572901313442573033266681933094896319154978940525920919316377293234396574624894734466146337952070396871610305088030880914222322092949860494266588831805374006305962327194669139311004604621343035267896816590407007937923219859920498242901476469101375776495479935237504924649331247339441243705481198141973327928233896831214526320419147690238142556982882515081475085643155955524107159712166159443896656587641792612248818017184168252366043775197748157550685946637835965532692930644194440647693563374703580539138935222528639964027264274916504254124143237113794408209573592160190352325221664689658724494594273348035092065933048564635788291744201647783645345818035063906648487618876072427271777915504424718896861266318006305565822084694944957171887440960832460590763593722263166878787181976559199115470293875959829858371639364417533978205436271065471569567852054558347920165750595300171632438782167336608667849165379630057136857550376308368809341563515454099831341066964021812229677563977190535017942482093380059604660829257237366029982158547825248868470086735256498032143757938267259626344470213593162650345171323966044107270879021730147348357505799785411372495810134073007998233884506276544501339573254305979667747120108073332237090053860741479827939685878509931037281407981501010645537780881047740012041232186045440933090652578252322091028047312733639621554862532109741009542974535387537981023966360036555020145036575740850262601831075961792286661013517794243645378229756392482539060631128337225907629593901261179905829014511884507447301701751927278530918868315430191765219711934626624654957071186944964935752195511540420294166816852771655608797239914995730229928279171507427124251297198707832873880731057360976715693388429070152272213750565618153680015737335345079620872494810112813608045707938773767815291875185644908387502698064076454334536048449952548136731916722383037407914022068679030995512159059641728816304490415083758867629215505075819139963820735399861588271228820931007271510455190773310618165231617994596980977314331001236031318542842567964521172481344035603353741232826473442033242433004067569406090252699376653909902191432798172391308446761627452115824850431513237611746346869559378328828639013225366375649817130214263675134713095413306723533834443647867446768650957703733442481341993543743854417008219383992638241842239188878889634334114329125685993851688013495318035401299735924218225900933081877624786906939958908073726799709004510267943413588036692036461910408308254393204339311153237896985068083920820848447626691894582658258630914615041476136979882623803771740111844798190971208955524659572754452708405498665861046072361752550904059828111777444543591532628528798664733585390553951173124157427347420285121322076691236300521239189280497477609252188221371752620663144308958079363739234787541605185944159675061664412425656209564819155704335644678823855046033806894565826899653465598602087582635294278561534305630602607201832260892552714360878912907441954774227813323326346856778689695166570008740383144502309028262191972693309893630890987415760698320156034129807556508428049858236736263396213601489357283780517496590168914645085766114083857093237351288614359264459619348948852822934990748550726443997398328824809938734008630098537791564719136704731330968563828507709510428592381149136184573203250828893742410061042580230289989833179809813465761430486934741083804159350664012699332745220523153743317040997516659921451415471314185687356978512868954484403247588435573417315985891728422321883477705607974322535155391150187547789222212774374442669071934620545591029449521279488828253563137629717102127600028589697716422754104129226741140047548365974375479525441903051716544859855017239620328141251413940218817711752501664271145439289923070704633048778242286839274287700163680871280883626915295829871095219380825941699410871730651608808628542026527228438982427933770984405816118233881989990241753549917812118103455619302005012217510391876744092084012293699979028145233020046732755093632233075113710669835902670247930071234593177966616118070192147019288686859828828622071468274226199785372102833778026581616181468710054642556439765473911422290779340707529620363728090505395310094986748513780214426784010053091229063362509960403468901245620088391820781567734459681896135194710885410783123650433738339536134620344152651175518151088640837151624443970014280907959019364224875362981234260032408972754962139670346998801413143421256400995818412923520984793726474712236758902201940244530361554151640197690711558334791544622903520854220631067579631563270044950742539120404610737995042724428179546858477078936438529433526252677625524338129420915010887312792778638887462257665919346214078908453269258560194810985516715308084964309645297212193412577800577313937541131782052148976603342251367770266304553168121777425006135963256099029391379807766193389708069792454729994587596785063575632368540474242078242662889546801848434494029140482879147865079848908141587657398188633612705163165202044743524647506484988848810352832322825927309378328319067608829590164826465547069321309152699278642920219391562872784090605671997985907461269794639910603197927343667208771369472080564088616917723161129353367189395271530203508932179586219806078216452315824858751160744608183321016953154745512482987241411561088357099563517040753998502925344008731605505889766037089234305706591067173558798523976817096251870136544361687882911856400222652476316876748726269301229133672852418785549282106062358723158207830548808902741192131904614422096991020844362936088775628687916285488871896254946476228745669375939920738403743046250221069617332071022073073529206367431406533843017367978867620459832429844903738919399492019136375700899456846562735689154221942625660467217878167239463926847470603437747527819648806393494446118534594724529393977328677339029903376516022521238166896775293190976890666537003063031964209516961514970782200105246519131199728579469650742927206442772604815684656389352101229908536922192234594096994280623487207572177877576650466518047899824635064680362523911635075571015483159961935903434230809507115221433442015048267470508276903030882766522814080104499919327785550271716124267315052476497702548720567902250821197352722558644467299835867284286265771227039133002516306394749306154249332959026531987597335909459084404141216748974510341479849108259379764603343408697497738538346311865609989375832689560314181070526493930012644728874439347128198418078854940113911701573107815226728248562087948683287513563734471909846131892019347942668718615505285043596860307175330913790558199110329961285875859617208875899978045548008707379499469396502070775953660460707958371106339356401836845061875483974946093295129458822995105016266999997471273705112687879680930964525372302538751513427007040112507335698494788264880949677870428280820862593685005857828154499357322330774096807464025434361035910358915316934909966769072853138799174749507484588182740392716165857054629087081875938239260995204392852934536559393808002238013618627344078487700317985784873744046794880979516337631524178171730396809314653574828007915040699283657218291482084111800719632420640721158670460274503727040367470331780886125701832575522242819131494489100312804299173635225754943006180988270772715866644852695746933717646740489869004812985353431487678192465751813467727656029374560210779043619745291813485206684623673941117053812890869426075819574101609622430253386941802412923756086582874315814011872480092432247458846642117128265625786398600014174654362770482900368701547676672114727282874888015442706424390686064029119071535600242493076698405475293765892938370649369997046820989295499273816633381638170764471596185412159928389527967901120464289637201913179849034312279447035645605558444493626793743463500963094099213770599765828613518479726860307552663565774099408135174264204501021472601215144177997221399211322855750376388787730704530588091576996979624939527196652540011590195013939901881924281994649191140818284938730950776828190635822766072291414403171007349296013757558192020374126239483197678748715581230486617407511525450975984045506760015824616205915664966380066105463281443698059677323870419920473575545378924991491279633447433913009322929819644026631072927308720975012571247536548933449982280170028817858433224043510812917443292782625786861114421102908462574553850680329026729938269701088513602697653717795029759443381738043044358609554584417834296054887803174415960082416703472519232176864831335681045604921278414887859621001667268190038614396005636792913022301820523184062094187732357290989446329609081558500138339796173168421588796210231285127028208636727101389918765942976453984597830819857027720426440619736602843948729189942387282087447259887046045614229448182955412782826598122326189886907673895694313134146404066171000464530530806683396378766451978661930635322185115571587010503141695301545906992790369133314352236388254272301069932061047391421905934174498414143925866594091463970446323675026929222180274060633545086592543033784903748941273097021910377326687680023296715282745818390641650558727446627192158690344551634090026437302804373527773378680442102648441104339656014296914670694700984263367555059385883784142440456842869290966596056703434613374889938171975836771900705755710038931752548963211630249613363025459389828534740666304366198867867700239861427170064548404781903878904513291216565166127212334206165602766387315239870680019957713704465083467415748868060344566866159357429212603898165960561534878213608414736451809006924368216886880859818483464072192209177405624512766040919863226749868657939911478212696816003418112155054422189298693589706333522292141665641162407751366900214031851287737563647802890997363054861088657368286112642016159569761915626455122676925473446286730716623494238340333310748538412947179568774632928839960995416052404707581036416223673081881640396564485476686985643508324655727171080127982581813891807111503693709628838860175308570343598469009535888051997049255109164505318514643177832518883203576449405281289921928899486861691324225336949721957731342228174564974065032442215619321175610913103370317187566585335092038660784597531788570026686043494698589016211747127627592306016593347298454658823095375311466511713299340020353462038859433727509296015231048161255145604005892035459858976101799070386081076735769182598604406240244063759518016580567558631909106815959670455957486494360844930462447561221473914088734290069456716381176119353844660334271512140479843443404875793361428247567366347996115502833021936935107575050263704608039061319934831593695089771604153203384023574138531771095314455086943897297516231198811483761683323687256646485545060019954597466178806287579684675260164121988809698328722195918839327810123063495723291867361112218535116380493993178171765802355142661642061494350828855103903576949332230802704648291916528082208971741417471466552060126476624116903335758595135477252212761025581325741814967741223574452324844544632607571059436027726725936914749071636488940015792382828781437893528177959803780525181440497814521310032775763284523159170213191916264037708203293799482358241459915995247590778256890068237339121181790682253315254468001793725986030754010930931670607071268149754986779552928037134554838439641517314717427314063753201132742460957308799136459397221099067144919059825614704754889965958357891194405756515063958615894826890109359357938004227942210302392905609404172681849225218877376486046086649786194492722374026968260683321840519770998566667269465006841955818209301009023001502114793391160654737045164142597947793027863677433331012873598434992416629330418544345289412938143676964542188287270976984845875671613661593330469510498851217182613662642027979769651887527216028249331399411548021395738427291098383633206263311680551839989426556147123999838046761113834293653208271562667959877044101506281588793527100883064598621365535145484691299524825869995318802002188036881143937621847700608024290914990419237847456739573495615473064242780750581896860525545490584727849911891533641690259468752547108623776931912820793489879487013297295302969047217382429504192940876696543405978762612303847005440491512620880593587115453013302730659325636688533555162144138814715786809664326194483305712650296933993956926576133895673171429224141638195802136089775456407508003636804801183617192095893836712864239924761335364534896953714955777916125208630496305039260350644251559662584634194402472568460929294530387353401898100589397334651144404324521972753144499427151898453352521256009846203226746032983379388886377605766357568846936535898854728948886671042557841834627437852908535328965228849253254501564660558926562052546487116384700405217123354312151983275625944339901285586677824792804223104834181982532430634022252457738540651805734110776822022875901715090642116963160653418129808358201637100830066476061427621471713361513557941019157233600013804650189107253292145558694367051810702959949585035027046742323435057603013767733907644530658879517288869581550612598713500054417652857828498018968907493154310568675588430384889236978610925896949859071478845538232342912577030671374645353640482709345319215057770779386323725377876482533327881715827661564783688688682196703855226869881509152341721990155702600761742199528900019801036038516668852854801204795975418330838959922423573392040583747548884743268350752786703588313880911610452030896986277963291778234502444244098791850075325568848181903355032251930303415041726783736345129685173210917408043117254650393903598911079942188340130346878381026171147365525101321597137351514415932431747305640969216457647457261663867110850275707504500578086791976454275489237060741468657971141572147755550858305389624136500735077429738062436588813314633405265966990238866697117440681153968169761382516754896166435393920647790834107209661889925112039416680620716219760745568105541625271003946934770082949418881003816600009107858342480095797415296046512559925609068949568885053817440127292077156321023783394823661131644813407201081653101312941850798292968611275465130425028095722873731522348827405015391942499579969659016837076059629122425521722091236577798674846317429430949404469978046211086380920393962674405738897433639075350852050434120613911996199195289393207077610209600446466169008653930903178989514593358282373880883735618367718299216517730678809058178394813795244072542958851313251253224941931919388148156052490173239031313675225332904078538787402786649151436380131889926426625702718763170090281681080910458094365460463635829611165239545815881700376237583353188290616693509820033222407786660970118555194818384208695633097170259178177192990137266551333320061617381894195670949265128278779113581219196750061598379673227506424065871959316455829833576929820661120890973541498576056293067317724375845099152349899355678476598216158146256125688064912565620684594297256728723860349460128436920147971865766670925326230850954891900449356439918286801750651390339494046367808529647539013821711522127089968422397753968149106594818264777151042585740119729992649976904426413093388653704245269228806853621344001478091345809477519850629035547329640856162928557268595972113605802450024618006473220546154781773881626914750474660880185579319409948833318054830289382598851162676670790368647727150360588381513546617995813863859188098551424968283343152137892262830488721123561931827607268334014897141216437304306759083537780311263093800993199939391849400785572783504568771110013702781348798357224141988033619266641824383602852490116721101403547615271916349876287823006519178012243381578895977118592872356240782132767595470790732498812171551071732520531810944788640985300375214700402912656846978853683549399284086428311711383834629734781042572321447240542784132612649276461115956475324856410193821958410560064613973220175501613588428936733360031108333738376445962245851653066436041199506127515311634817560792889125940096764018264798309729185806450220963606694304689181643106059920665843288700304428763725631604374427191883822690744364864461385382401261646032570745717199369067000182289376892873710138328722163135759533583682940268720998147810619704583547308608197697981195984627481896642764782453120159358459715707868411809391295469993178371652490166203767500032529098799109896791794003545007414777004684858852341338508295897615861908139335494068827221236610658547383756384030937777755129277216284223793904779984466451579741216672555606241957973044927042388450622636448985964845857360758504099779377419693202128774672173613370686599203321335489428369602496856296552408921376594689677896755138743445340776717721820603122145178831215958284696944858329251584677082017519683112250786701334690283114149955388439873413799374666992075918729718145585736803549447437135553071019761561218993259755465486567509406060812434711414886485504196542285148364411262950849515590971749296680766036665795738599626670209651699530532609366539014497834732624686960694609389306725621871272203228936371447878134712446987073159478374048164519554648461808268793975115723914189888254516997253914615943259080558764830923463094140322977823774380557812032076872988284019730835285290960434223750808217338238840106154939786197265362888168204479478450535385656461932015463993531813540930876660960904175268260360637865847592289009155561984395831551220901701100239551187476842850214116128604078431078321066384995662287449332105092469350117708036561597842497158856681804669734207931157364279293629187733080291701659297589953228819817945910523321591036517755320716139234627216342815235737021522555962849019101908367471795406209219206781580791289750805002391432462536323762115163032527361452478018526528784253350047323681915707728068028302422941896007096504528371421012931603249109116455428628614531830929100038462218808230919883039897668640071526799414659658932228774970993800807984394098236354374694632575071623327885870965829855976340992278821518977453760598564987439226471243694296152686463551857118767401979732844574568570724806981520832234224204102890505980524525889954915275540605062457323318476755217719199132601517946648464826024703361593052444571928478802316629937012727181581848340391678243157840587409355693316891144048151975495842723092121642805092624541470863249851123075578117510091201175589044381468754728771674941261349930213796484532958288133819539319126170802836181897891167524625333186848397842103723815913623454381480992671792090282500029826897734831824806271519922299361527080164763936923805268699438777467457029850097710858685089421855853597045062347547316503179291286748249355205124981121259735618732990617837968917775335451477426900533367036088947266338283322598939190033434880131053976992142097758797674639485756703160626848867719732468348409581806340428950442328786091224436724372802561253063422001966453642984727703916243150512944434012875585382291126872316150358748938921386641108555977980678822240396193779705018805737667240814951572185550599440958492635462015035829741798774543339341723600060397588315974433886737319280606389582785613648467780482064989727915691883594090322346208637529185972224425529777985814160006316265634302290349702557017018486066301674862283500721292974736972890705875335400801899151668121609584792884765178197109141417134820859582904005655130818329680791684281806690933143662472828812030576470482497276306680581298057782124363870946488948076253222170808976097160006983613101654413310432804304211010419569059851066592026818334333382214927583729511218757870470878076360269560022543057279477956016750137525125001913473535975990324079984893999818262326554854446304237125540636999147958624654858008394461151145914528164595538275837370743818318655320551459907525190894188800036591017594176796714894891794622158101240261876031596459313560616886801121627937892361346760011130548182895088687195681629405402334754062053297884765359336177159009193057401520141499120864787225495779410323660308295761164405096518164515387382847094734262523769154922686430556251407979454078038767930299499496443256372676048023466718832239137022290717609390260518671277004678598444485731523909722387801325014317197957663838526283567707630088472905286676441717155411959500764085511724958214491615888537623515049943244388805269740115114342875511161678752508713739444266884068441936156260286191079849521989535252764067494517119055255903429909273133694948493389967127828100237435425249092798660421988395198568115361060123995979162598124163412762405541673778425399636119276376670536538711761847280707036329785877645037175739989956177532972183855000921185159018573456091500000740101753259610183767613618399035737012773855688734124293239145780586616659253014164803799155202592999044082878765477287855947136055242527828719285372055106896354300575270658645793581910630399833176277252705061768894063349178812213825912113318844969701878140447361503959481155714961981666745699057806390666813065471751293292141540413423785322133758053010024777891631823642629347177326289575765588157260216186681947005077358762357196691075964099305029666411648523302201357064996595621227445363457090989588190551385663275851169264288239569354269127663779291807175379620317175151868144738597097097318933023963863651502823985705353525407317802081544715912553708583130495330589858459356602777552823116291112216428463991881289325558087489680846239547163736737618521603509980745104369258425883368221106316676583534032672777318747265383201993241469988442006555315505912332110127471703333781141072727344833295382740891785312262650334314222742482193057904303144934186059093307586951533533764699333446408991767870764687486135640302673102547329254836648121047841353034755474067744462878936428366954397047613059195622100133188273640280501703267003481557937786489111032876807452819788586950591673177697056168184152495341040866792799685301610302800300593874240768167655696491153920985777377101302014091143486074614462452942774483277182013269913129283224056242965780718860034960343395354813884151260985960735803458954448672118113690069399548442365302442916905892601772822833140532177088103339293128960499757946200431751804897784379651152638387920636324571748021175001539109845594356336172496989021931559147181116801925017785464162304705118625681729428204677633644729794888275525704808159005119267263617110138303324003002697396896352966831562939764649608036628072038524485566202645159162731789289511471007796654733459587561706471974900542517409722760593535848443735168086910137860913575270589672671889136869192922667294691920896958428399695041630388361624495380216707626872930856484856701228925554707327209040842075727339573123114480097097494674362445644354502495060736962568161694299605480685121526691306789294482283513631354145370309198640350829056742230538658021710979526233578136346612199984041412418120058138322973931822076912951682651460248483534291713420072810968751556616960048353024989618695840033719047456171376029878353854420157015736151621947112258786998346709946935883416165698488401238067857343167609701503287986425365444556836075818838094125729120567874834401094037005698241767993154549425022378727748999361571280912362263962996366219185922088707822372956688941207836107316057699267892823557344559573030699003679803802598791702735876541363153287841063784177248384743409459079526470651868332119595352852422221309828822109208387864583924542085472576270303233539816646191690864514252979857976562576643647940383878542602646095353524691411981545352162831219962503906140133412691089415547798194132446574894400637201880428054932086674813523505453960105732479170543848734603396234281862615639336842271596343851336252307263956826673453757042851835829264987945540530921713888251039185316839237094216471236210127796108702941968828180077377230089392733724314824806890137897293063363813322332252113531551692238204943250885620752823326699654920724352144607430929219432452196582454558787677377999930012030497172787719691945496224543891096144257453503791697189424936676543333290556619451858406642076828750087996587053264633123875649983878255894096602612029484433377015509018894058472562449855479091690110011988208709967158533559377841818512182591393425180189578062762206743165609024991089101094548739417276910549789537699763037293156987734258300177767961813307570090184668262548873112965173591012212493146309390328142175699911559528682543230645368883330761881527064073696104156669097302739550648600101271544992123698605453856310642234063284204968580324300510060397321625106004342151638181073596301619117262018956570544548337229502113425272848907386545563547218892922072127923866269454164813989127406492621546300731129813113934862586560848899297403276287646771612349929073957228714530200275829010934115894953189478772511438115689416590275550118363884406510115765612090616879407796434000212480966881796835654355271249272632117188318517482580626382555741849187640591511384808979831392838714560999932740998442707407542342747128148836855973945662342585073399092421774466562291812245215815442164716854190448073487680880411199020197611151525622063213197794781975033202680889689799389699963529027413199285036015088003363843683528675477264664291587151719621173923752661658362246160025057405871907866516542080339369322459554625863197369518626743129670105468277480574043099893770262401433126418292976651824390874560009913327657382628473050022536176846839896824860543490067232809071980457539953591695113755841701618728887783638890315024437068763233601404553553867106366759004347054423432422417277811183763267416819785812828413775654450695406867120242642891388932178664030532561724327607447195455833575826587677840632479909663722543019700807008146303192384916282762136618738406414853458764709308524709500918593146402363734309551736192108756896503930807552791910220523256044453084399177589787400407260444996428236140882241791390974838086297129455276340086063688257319193074837295971644292019368019892286365338662604604336365071505957057108508489036705933526059131656064794944949506140887421012831756980577188525274662471338064659724492905661209218099501494161225149121304399545047859319620798137737975617979218442075963027019939400501086582073531859606375122087927040047433253046353462217221377791048146780899737643257595788837175772036772150946484222848331464361640210343151665644918038393166045602805424467663993181311579947831684791184556975493689340881739392058722325065658811838357517811075964998593385223821419113013744265422832743716759674719506617505604550061311099638595407908004037179406952353116661519717802469167335056341159761442101677064725653693353002163979921676106690739904487642844117715364486360058319244110453153017499359951560943499356565271838304848480129934695754071871300306284021847508486540540677158845493201900179091783917517545793076702524740022068114206240993220206588946520912883034326132747598093633761215884034923122196891250480212567217070165988802967017282731569703609028416736344812449554197003682841083400911004904266776842675092485564576235373836341518720450722325162755656036575419347011044557625743746810917051422260856465353291490696774069279101226835038182749889678671646770452682919941565799767098951986493559876632767944285777278702578093945502688205982330271427886481834156620358679670361438078812556297543776150604177394304701210252080996455165224305075307256084204487777287946393197471410143921628150126519872347726766065203252719522800723746160716521203934932426317077604169905398823029153052387529474143680993372039239776910026707494162200532828023911409564116956572038086408770725278810848975455530070669609530074541454050416937662109743082335755416299982941051917201935377239251121599890356051920615771656002877028967360688394311672950825532557455337580104757847851633658395086231203474402877592599828343246078443413355772595627730532225371512543720536332556259761761683778897895327561896104525495137472259619657593769261041357938625281275350015402158582074371470875174215926837133830674322123000777859247959340977087125247944341202363448965622506373891731176225922925864591039755147359745046837140160523731221495757112008692428012310298074805492346529650225204474005596057726043725415069600472996820880636649387223360556998780018832615938642717722652623357189590761725830564705003714250485147230291749696885587137709165943822364151701176852075312232890432558165400829915891990864282080226900252651045406819840325737774746877402384751163317308865994800349301068632259251591320658631511179210412505049955266420515466151373895241455921977241338598137492682698483721385278692104037445595874169171963094031489171937203415645844914459439373400652132336325522858291408246208479194602879761308954328034259761377944854861357136001996266645118073404606964265655287592458207041462115464826118694958795664358912135369488863412328800858017095439215200796273185641379523139844521909736114976626579011678686409736610046483838513241539896832397152805625328953717771445567799635498489326844680136382210457463261838006876441925271021748061732973158919592589751239021980571947921902213797944053788872282312951384006655533957591625217175019995659623883633152066311655412657650815854199418889207903766088294231066127771395413584556571145625471135055670743884623381671679230644598853748108308828260719381542200748735050144185776550414687957384851098407798627608892705806921020202445057530661219872111072830332407793019521283839369040129981509390849791059105902910368159531721835242121547850163506448144959843413508932012894132591482616150008210938310823445004459308703448898846778408401245668249756542196905792686785149763527749851983466007197757445938427000879426187237479580994692943008154181487303905294029061663796154590819478180925475991187529799776373877856172300808858649938788646151551424773377427905739136082557278000316286422447663145971261721766084071046584916975014042255520938013632727084548222939120213965158899756438709215080142639693585502148861477931720622066473224511668096874868710047765958280040520451114161475465317953149383977298710991921621319227583942683502655591368537143954666428388959429169278633851168802037311936797887696163564543435352740700763530836763572963840185167798452085981012211848202406263637494178206521798513900715514599191015439801558108890035146649395938904189312514616245963479242820073784066648009580171117130659567376247855233683003308190552643541439186564484787107768978069843821922311733859781205642555709416062034252333543031691681167544360597199261902290050157482059724748656619395293510444855027070754572014963452685108317766341795658481120327742476277046239681100289625213647017133862793098824626207166874958516064740521767219476181272023056826109590337244428551549461572741978287323939360779279951439484177007358449867887524769223191799355707584698594721278632713671940754887997607245244092389390136923011685133162630518861162989463734515259541115990204216820532941196190153445469135290137439438057179351205986217464080373821266311780197944778027927970934236273086407171383737446610199132529646658037226386572116583416609986943150659561860501909006832464584036496761684778810500183415546367185532606316338057098899081435302459699171563952375074845016399139844672786546453956964963445061403368374353442136493831091028873653253990999920379692858169566179191008549843839929489362846361030357297105910642054863589965079967495897249105395376738036420480189053353383748283658816807849459132812582276164847797993525652570598259349381941219371853277397684171570163409844427151287192665860234643363416962004949678600990732160162999503545866330908697679296690623764063886328733196064914408048536034560482392905933328452654009987145627862272571863070497533995060110738734355986030276064975957337723916139914646330283694148586659766290639666025476949068131905665819039150022687557229734362499307611509234069347687191934056769274165126994754416708184735661329256380619250791370932076745363700165202461325828973212874942780890831765488800953445004032526478815437198104227317584097699006029568612249758966711343559457595218495744227254272007715681102142121314261949347307033137986042385384982904254539874369263121998363192982429494951841527369581528185986972513188234302385608952113644275638314647910193382570763536965055321954767009726639037903962725916858374339432979972369602667320763103041276483164079528322180532311784331266412489903261659203720069240184321507684077489243389509870031385179650094479568604947774804038319371163574845768362904768322135629983474806257927268060410535544559028672943933477888031266575236467379045588149530092282852270170668769622153815342735571819962201014939868422381078232524961946442233348715371935017972325007828853834414447638487343782705446163771379812305853674750847428505700270465241451969390053421361619673601374890922098110002491933532929343326081014894192052853662184085421319778566816002722720961152477190475451127583004699403887555419314305101926626683023198746880597980000509787066063389927624837484669686814070228632706302760487800904919772732306019117408180689219731971924740097146365904610425778376118387304703057235259135170884834312912176694990833434842017742772804978142912145820027678860016412475062160000380854517359168075709456938067170313450681090632932677685024943022751050895048272589795947440524480037551684116753433610717817888264276753381118501855444576187432608169151813391249261046349265639029737469321737382213618423432976268882884603947741527637962964825915214262597150130662807035482073340016260870995466431504479205176955133077288053928681386544283051381816665418141038095415811317167157449946520516586207291250025926092984907770450620143023091732532336005416769870074066268525745990019655439548076581853195968491577813340590124492564238747866085554034446083880152024681688720803695056276160772861427624079989620886725633065004457750455002916267072284160895254636767960966402276622391362768521294892712919701940392731210540491756621630940712055732689278588431879191791277233413710135126154371905892930912007041407542841572185636995596907742437210766115633665630811498097543596190107743418442500110162630996496092436896128124359508480036354564535283414774952027503824325537744487850886439273906498452482348772494074951022741478498186431135185487813028956931658943933141679803197848002088082069461245063738560504364303629268491155548437195344672626627043836884576870132729552816341335458713614832811418030818305348502455682091555484390805813972466852040075312643700080759028047113464348203835787079333376886768331146786239188220460110082860243624341236268748924311436699017983761255686075362354203815504218080368725664567649287095408512346808366857575058056855332526324217511453856948020457016387204947440428387907561878055529990589616474321587920570742467561368399161256753768147572742197680047555778410493126048834651605700769578010518186609767302260994534415343179489293675432081529181177886631880389531754968003896149528088033898116995043101967124366905834512418654635511290665002315011224762751056995028022139904988496516642370574771198997724841575881433147599855759998169837779045306855104163877391492069293318213121796959212200923372930084542437857115477851522291287749443572744312073065344702338477364701206904134368419261029952302538860119805347483162325726378545289193615368595082014631169147818115481239374512177511740576789413825357860543741469931251341006779353695443443421506115440025479189354107828637994755190394810489506878515221766246471808529672336881841501954621563109494290858952809797660042637414875085133251281912570741471614126077352834231513038142630472152219079019923726638842303656429078985104564813556378966191703924322994581849968884814115483854945071276634175460463012007252727095630888568309430039670846374308336732514032110685313596484623882766585819676488966436324577959054078619992108263281126630259412290652786199466667907806093120987633843055552409498374567004066160306027692997848981457812401791734019278468981595040210844020676486735185343399507644271694951172382591631781618334273873791482297372827015665662570497673180314174467063162237210753492247546221887413653420710213903973515995140145990272249450419316177786797794337639133268415724635398922831472002483010007385829867370829779102972504835344456915250023816620564541249524037996762993995447488445619801118578779379282859677882042442846297101398607277418433121112327561818212731927267574949152914690905560906337766465085249156464710944762646998514891252000592977704286679650293452658956316826429614349804200021640557359596701538086615010760201151399725111063236541330091789742113174788945945840645404125389857984051288574025199675549748174003352824157940325672982876162334138176573711505412810723913366239303304996272361703849503279258161458389446460500389544124376154730318268579053243353562013355388606824796742806153964048692889884117272292474394665615480156401135658819766510075299708477350962128663283514384683818797269146146631961794394252108843797703034919337229716334348872471581750124812811513073958435693662703665297659614743002020080161916594508654417663417311156440036602049519655190003261260449916236305249037860454972725087476797704251448357492032527358223607676683085781773058312934423445117428825377350978902137336922604774395433189321747195984429194508423195533658770352698518910279542683856435176327971553975606003586624372001816996317852708091066947464835431132299970437214084669410515217906331480550040896104574193576706469840049353336235740279820217014320170556659467107222345225698365783736441034502352413469558548568889965717556567970781357154869707414994371512971490942030762541152287065053018563110201538942650823333177929811496197300110087730413176494940598624826384153409958294598628441089251751060288796458358530475365951430588628785164268599062838378119480462831684508576154310192002144220134601037281502130179051816651271666351140074184851373448434994982906732277117597332914806958399572086069401589163094534280415762585343238693751659318909211479958835427681680963787905362988060223201717381443923380023311503964453674599738979158631135467460549072373871041360144186316296826332365416020390953242226912658586605589480642564843912824379109532724980021035900595441949811859926253104324108700101689813779376206875227262690860132649053502083219891361446740646088092417422598266098836770623850941711698497557317506854100188808269748842369997745604623375288042944181290876067481691914118617033694081341010380328457511203677522150447822165550311103950852255634091039551064387049827334202219065983854423416648777292537790457882493034392733670042665474185719124718357488853788957328793092044674419837987748691998208907848157447634318063764772131470505483310238560761238605005043552622047100912847978909612947813167725393263393864232476154582433072970291758962364374604828245153221774599371095834226547233211923100015541796435845406216644027936958525387071140857774812518809629512973732237525602208036401430836100656753529684353827270088965275424047445404390859857318362755796565837141636748489600342154447779212328366110133827578521931495181085201861873838073307489988244087889837880757414997300863147199388127991173212904174908803785517778044350724915894281693681592102459758580940183528698061208211551076390368885583398591888468559741030977174816798239294406570930547068310245125428009985169888043118416437895691801823573038449155104468078331446507798333254456443754102032274887021077770285127330787621654149863182398228076610920836809721154890275815379039205600747506456242064174244552113670920058792855127659130591552709179366343728248198339833399853261003334767387528810691680100560283759094519939234085049069753052782308388416588798155138878598750584824816526970696475489115990162372005285946790169519998368223086579709722908741668883557307824472526554051174231710642085304226220084778141539284680721069041971472561356247577846966702372000162110455914547744631334687210325597343792654628590298499644560737043518644726073472290699400125647293623500458266586346017760768198847233575603728747646854651591894364486559865742560053968806449782276765429968923509877140497528345857879580488691776862419377377984043228772084897884884533636177967627071606477519616564627792686967322694535702865278382698689363104154863235327592193913581644855971376828571675821359835446071521732011773066089825939319775904133099978702219660669970087698305229962855165147529719038265552350713313388935016494603839333985035779934768226451615321992543217583744493011280607737866721033151281059217382246330790776406617354290520367874156443617078564124188897229595152778711010976855061465606340856801696973493414481127731945927351480005600749543492745612573830569935517943011551259489766840938623339707154969584954378729999309040557457298517206731245794862120003365099208499526858468413697967229909678647090016078227924521906999188972359126646577848864855008654489538427171455382808288098907184822292579673674464489634661627133531168653759919590128079870284111221883360060572735512367833860453786963355013863194669205689224247257026376172653148568004994983476754359525773387515370318477086226559991675577240364262359805081313669311446376620151868304703020334755563011182109511038444069822216486870922546683158528379366716773264617034391366063148993485976124301345550549577647883928522661931047641300888456690399321985666179249562121124510777921735595920920186723598126509396419308746567155837593312344539640703767211691473658480717543522665217701994037920109789055545322783184153091738932155820866567328250629409713131228023493213003801061059225469239833461493691921678152708046731651200516921746488759925656309299789061291351938240795500422805039495926488017649513577805633115240245926958245887990979339207097279425837541862932518853559446619428973965719085447892686419636169630627635718066697507613055988722757097383542897075317448971377957317245411755038086261125632236996083724354179565228568230174583285273871441443810719503219403456732389673929085377448437604495572311338929538615241510587314678144731570215972555612340058197014544313633047371428004755389474686964054534421574781398759248245479321152519865122939180703064672937303876649338686687300981973336983279987341018639379621676671309645227886426208351796030549434085415507523531989523511404366462312626781121518848246547790028105876767991822339007972893301411124546928173827151309988553963396848077972831107586893176396421554113546162226092919143347666665833081559543090303364703836196720754610173972918580318120880461440200975604841129167230010986721089783260273358929209234092838678625952019133574536182376766407768493266682281125720995471251942014184628899005523494616621080846051033528096717011685507927448949827879628722232130645443532505411223050930942113483830544771694178034729138906481918733755015237922541299944330548563805457218573024315317955405072218518965475668035775515967099105163304217243031044783745983060851843801143617812977632595907121922037600702239651902455328214343399379068979782518954486412834837222508411105629143411484279507612022312351952202073166558252174679511597279661173217735716625200918408315708724958294886196921851947466821251036357108772137370426610509869291909272861497902438606771066728092252591181214809761835924093952166238124654023946503840951232493905287024628979383851376962753993939126700247652901024263608223127315465047825440423513966197854239534748070041369242707505526642694560913252421739818269141936631047639783077096040092391115665300249040992491462411044363588349034529059889013346737476993195459440430162151860312950033424015003726341460981121050743099126284523793558542949173635834114527646529487835261018339875890722520279858235417555676888556535979295306074950635239146709301771627503761679531083733471271951762604531892329549052920724972666568956169147785937593436205762014726185924282808396659031267277345474405312492937051752585731983858921928643651619188542787899472263761843701169843444953140809648711539254800369933750255049636155756500866546224390217104819440863176763880408643890402080979020388628524034145346653613535295289325042416539948899471526038943267488325670476846240908524582451780964074854402095724176141408889837315066419806571606059595042164073713381894983839408638079096963540192172865542666039128335536357399530533444267577951417579685462940605001094160869125684289420884438796512854331922184592693390072210385184738009470101937687246351402030671779285434730532245650252242223327749535491632379692839868737429741682753602009812548348574164771670473372256194307680433192619387363655364349550156509404304308665491853115937828413823792418046280671475889174222674425495468173902294058452482466537843846615600804404659968114082212842984300148755086587724006561776647935245763462359357709399573421883685773002755278792722051417981486800172864028367066994443382889969715426090981536581617359563829466307309112111393757976176793157183918164210306315343096549053649406935625524576608360530624757373174965367512716699693432221280355356915104834822956016860001211474996011483903856385983036175801917262205536190940394276797372633119170622624727830441053884893264916400033425364545971140649659593650904664490860552284021633324154013129991551996225383912353906646738085814958181617480364742727223982099915688107944490038895404297152220055690223241487751600212261666301205684880002686439293118033794139159742052906176071757000480805177182599384168028194286221196051033733426774832792485387235110219687986615520127893173838637409958843212011807342365721709317382311813512386823840589396414475386638145147001950622199656856131725874377205245503853182068899095447629881131798326963698025919397644381758157786901195083166771511914843470049269534887913248313160768128915332156563226351058355184660313826721332736613986401865741859694795285744796495680602827425025046094231731399411655761601589134700844043614466251492225080448418813882329312627151805755043151357473067657894181886847747216964378244943005141203387925424915769207219170942693910292141690713241524094353845555301293468587880004137333728536066946482760553064857383774318678484937616802193960860956610989225242724092745301914164760679685982169562856043568535564498095340006731973731159318045700739863758850668319273065440787136884686036748113793101882003760029739634726391165973711745021201031593782283804116924594968856646246888379463109028270452320689377435141552929902285192377344811469868978464159501066171370771702804131429247326922289351689854900208260054696505109935527161720107499479497335969764333677806840550536482894363656000448806470787979244004397211345824106376204796965982454140227508696236746942077476111975940633467423891484523341582693313429954014255697295614437395958544265583559952622433814678527969837273039267392197498509447791944681682148154910462914369903545204646240232327340360943352741915338438227153628669114848125229605300403751500516516602721896412227303070107243835843190184696589853627141197283621591391180304778408955695451710962515504199182789733084734848227909126463796325376659741632599358903763089735288243632498291598498136993372744038213552415614421800291067158000363705960665293186471970158251269939704972847170008978011288169223731131368672481362041602143269191812625980686135817868311843509269817825427492708579584073576756292125058984112509551468754951484458112632554110412669516521420390122485726027096766337902190607381442215635645309153043668144174967660542122974239699847283358879115962103652842981386987322960568587494156311146339073077481505035331431552942668172784661730188673691879558292145880228855825779167106933041080704946254267200546938854746726288957148028407820163695573187500900489001298269633824068298939906848137945870295030451459097637173357604744988193903917678625572323780569832605774821684417684531544267290887612222716805894857492983106504953480466484000221354378192898846730364045999242442006553054231837603086433980364966990372280412285175823497348666057339554303833928984884969539171368016878149330157468520231791868235413303962350994758953550593051186511912377867451249573544851676649159787344220346116315264319637724574255086981116377411894852784029404813998354108515296359245958965968689242548688616872180668356497281384710999661412913703135813674683512479129548461534945679210554123862762626567301608436865701732520745722776969968789200964628311110175791244721091055910380807186056490290769305548852825997098209994970448887720715071036515490701117278816699432387273614972327262914158819187919129521505984516647263322065566053699669269197484629578303228075354019942873819658086626383594648011452146538794398534512650216356916458545236662854878113137322226029336132195247967715069694644482308237404643976034804425673999573362995108603250010205089944808097972982911338091912089975472882941512988973827796764450817124270762292322814758410993644631675202740576392771051045628341965143498416460084463002466809411894472935939310539362250161474442413426923089115577294062554073737910295381454214424301932059811687444858224747907432444733689501076060284307340144947997183800332810729412387500562689440637814979251523973217022608506445858822846696773740864335494023009103306212236890332293476521418921628955470378722539085614171256301053175870521127699652399063794448220417722792078433202928150222878438501988799420994279977931085290883635454930439317634949813837066394966494941344089225578193285620080065782619496117863018296284882031102249206871107640572926679933692180212011739633811885173295714040548427211687637050555661537091608512730240664074417795712370279683498740812644777212331375901251793860743042938066211222663673018836806154594864129455391095387120419956017099936359912463231013739197445004152455688591374752210049343383088117987051972970337135344369273942090956323464531158892148993878128811277831435921780664183747088108883466492232030466978924383093188894457384393121023843363878373439284909461488653723005417449816877582991191870905829435561381304376010686407633669951457361510966480700758029867456066195805583384087478734455520365136786804234604612269010103245436845873411952181984841583042414857799703577592946420114134142252121009151063012243721328013106988396070843822886583324245377606844387834488052980358214706116712585052938156353741138220158268462465381609279539625829812981552602071747526858457494526464259815220979308326770000892706741053076036092664519857979045153152393023263654457456157249916155360635070872259801383708775545153325561029014982785841523726456616928637608177654277865132101463020659644581813324518536102340558523270667239487163261565301517928707177666034559581690788028361982822479593294207209382316433504275229292204934827804324593574209855200358636130182160218970522819476615368296260893232419704353810612550390467679535628903082360972491004930887933600222447217880847694339958596728673416061925967915624266936994682098890462348366570692399341069353795944199040657190739183943992002830645273218929136350440611750738381220919093877321282199263285716783734625941111114133407761539061279756823310102243734407308058641454827951746607621631685747929006174602682546044742182557174520145743557351449620612651279530113006414424096858781202013209755930349975769770517104781378586802383584952467605723035887649212941480129972941050717145402044854281152960089841293940996843678875291587971223342729853046056748070456338346700550358960997824261221288748667178092311942421484076524904745561350362045514081294734140298556120799762474690465516955303481412245032621784543155911984614184107867694077372615027386278981546765109851500923168447126096152564097660346590700328173436850112656159175319285868509719378477942673699743614240690148482585150174005679389462249469707438653891319331274054925267365284250253033726103785133450172169963452692313421350160784015759143658190560768841680400511718835828222674736732434153204845571399338166108354045029906512698173494415459957621982782114275602376700139624244895808208645761842585312597646536636427296938754606944774296046850812129361103354274774339806407477591510172766002148884535085938707474188297204730194894081721452866820641825616295473480795123319251602220085883680981241634870176687325045608486592142547445523878096053811512857155657575084750575329657243192097731185687963688355564757492608529594002694805048369985755688981937543401436785609339410421050973245202813597192530837928025802845027322814082152164624974276276759812418544415376318953384019520776739277908398767764609796230377015905285716883160087069088935963136668303937521592482653018993921712095074175303131109823838634878111520035255887605223087255506103633939348788160794542336192514281746986757058519684606680918845244035379704380144895387137261336730152031721394385344666981172760150822646522760732624554499976428000010291175235952687437476415964927885881723059697581778753442636127777587250806616878440779906969694147694133452222532360931217096256294112736601406917603735068605634130834060630469895536579539710616795805713361740934209054806928115262517810519077310292278898905901382417967918616575264293244921053508426260479919498222920690907248383435786991351289195251305838584108785524710113948591097496979744877221116854132655706614031828799036317369915069325602137938264579464030750478609856129524580785268376571816917744822783156812676937129115055918985942970165305026424186448077646161925133902783420487949332404011830462508663406527141395154340183319828499103589438479863292940542871445384110271282134314766264210035124966545979639879975433542193124681696889963347647854273482038776315909045179489800020494578636338054646362289405235832451613205181777501947507437128299078212656690062212308905150301513010830481802571489752018230246145837448622426049537764268786516620085096631349913044821852543751386086797474488261223040850405619376800107398749932772582640926084595481133184083543429988748638475957453538291515531721368604123909613765693220477411792101344999213230366030102682269824915954621528792608740835387879305631956922615308053029881805751671746892265845992892469908191464178839165683404571665789654884079944618872965975438599112081855242653043221858236158672270229339856033154084568358981683684625998015357446248118402925469307769607174143938417076770930444678459104634088085721167809142815662734390393417487247167109933491059652517672987296905534664254282382409395956804649896247981242190787885806591370571058851439085607205123345889105410355913913314389023772100699840753881092137689496037066225202590680778299505392407146135525059503666491558446038801443375951941122972605167821441614926584073492486088276564593115843482021595055394767760764167454834804339264407723364169164703774630606714988250001028107825698649720547371615918541497622317692920598845677046582721842570548602677091548525747297640807446619546340402753689975135791574015229592972059896281085838783227363822755538403912543479716034930022845920293358298033455522958599295853513607904028951444901956515956490008217731643595205874208318797177121777614698575385320480197428116463822276928462646488749396039917812662203741870812519370384716817823002636739119293281901516326439506953438743786854683660938281687246220178467108601765289893922077515120048959279450941624226535956100763368922767082279630739139341703768899931403363281234036020779811584207990616768005154390709977921541030315248771643640865879009322348593371123735423262910686119999471467115626588620842810414475288634750003657291990729964238768377533157137513370745546292880683847584761511389885588535388127500356597684908112572840494159663399648943403538189831072682407473894105251809250165645382819676849075932890307829987183616082847052449358364725363745695083227835031429903791192890555149072831731900140188194380052916589258255660816583012316258287760966255116535584109546290849247088051785181086906489174894013505031156299393068213600025719728673248526440720241996536166606688508084249465172219480652646154667164226724901872262252574503901936017880031166813982102863670630328701084882348552663235049513918482456760610831826516416557308476405618456018522075443026220373846691230419143892643959248391385751957541183345057214901371817471941422430695426421631141054997764670969614638624140347045848607054764961092173514337013623551409629864217912364939752423100692813925734783207196985121548041153725737776803877614320182027672979503583370623685345341195177322368693226622019646809390598682493794769814398632275984600580128007066570580688089941553418987903359610518667576461092720619071944080261523298339097853277246098283822009964146241579748686074728702299529975539852542829292598019448879824714401340794857527194092972837725040966118340394086505133164182941872320945427514264748349896392968242998054232721926296557168218987183667610887877340615988062455935229872923332190310114705687891509108622483559257584370762811777754569964954312467656360089665459207214697747984883371136516539401667332000087063020663137557877706874403534231473890031653515801687911910738465250329389593328041067675745998621305315586193326651876488465076376724866854284072052750562503619562820555814139200803441203003218709695126603022566414978848841767672454299602967140197135405956727313599033909230693375724313104855541700247661965415098215423941817630383818128256917979482094975233565207953752762551243913394283644953098131272533023748983093063544607378219126850516716777793703525839621613876724465642919960648924456647132907172510670160465505085353994558255742362564225758552198866036872328960766231477621989176388429157587794870745393501203353647214267182245959626016287991846606599358047657428616049144629880104410328578310410144739728678588390494382819979632234686151552881331994008158195925215037442653549583012507360138734998614148694140020225555284758249258050226434159142828855169022622726277739702787815617356624584687448811210181910116090550044702405209936902920629235494930561002638492171322897978800610901592082942606678788194253081225996542506267667117696379953139513566221037631565941512164415337550726081377188771059992219181452966235023482395841280803295706124719110552150667198646763190773198779897064476214515965102223732649843053325631891157294948527864445078258106309728299702849503367459884724803388405371422268499915157786977733981820385535291240552156824789158424986802716039707847335605717663087440497565309199416640483119899820000294532131087480426674086384941580351815559951055843463067773669765487939094509146576393227899893378272420065773923019529597367421976388425513383456158732126695444889807193153593911171737804028125695343885547848440289522587902160089884981676506951253157500446337361224564251464535528912645565601618908705320414013090057128398344234046932200883475753558462366202856285373818666771619743894206879322289194608639803970224630046377714887103695815467943055600299142416521020221088406183800027244398022094200472938399008012139155007704977362324992045679383849930160321098410568221383747432625189462078266700831579576852845725315364693470322655224441097444303520821111556264713074380135461047118158953495225894838808870928069026648196766303165649648047356430643594086112574447164977432223750461364401612346975582617221501512643147803378981341670728628410144034742219264827835601739176001072277709433819923065813398987248238217793912947302200993801942128925580247710314859014920296603887531512363185494384359981706246496264177149524827708883196303096040096783652733835293352196066618641741752792280226324849886074977917912422781442685319017023837895661652546466919331446004545431011955299115233898595083872176353500785905790520988456223577134986212160061802872361091230551726578531332434034868173003828087104717427566775498123584916881151545622547985146121059363753605445827751859985457668673970530784784731502477119801142615102957733686087111409330513677136116916073072890700091786571474406334521608586669076961260559005758638180118980804658990448099075981623137283642092376584905829690022757366905039528753889963632397470616720727651438117420225858209613912884746492490215824844027497101011732367343828203110112558598831614561184060551800487797925479670323486699324519494898653763164358512985608242020482467826865672398303308877211786700386562440161918049092067965889397674381369155103040346117668874247368201479306041962355877100312233074081077169043560803307905003330759843355532453227806216234398086967648328943109774628526258151430849877419958060042193841337322571333114229875737421889338110700826965575270431925284669839862246118258383229852055044435089681932320268625427394487910417773042343617078489190849210440942565958515256766937096672992400881070113109999176524562247007940837576001534422537417675929402041691323078757059214240277269816747891895891577367560994587370535274348052651502943487828083362041571813879768029025630436571981065649202530101908578645528814632052969806922706588233499465161108964395658652017664898686164419165312536273800109098595145917712822475776262296062401801558858195315602688039025178811983035652843583904227019198386160585887146052900801000055570036072840369989754129556128211545737920834892677518510786640971163591219416468121581788918880571718083766626146353769336076214326856561693603343180177411404362419317938580987362961817424258573629864371149335511823118351429095550763596255887288696167550910312194241460487788706637629552762369154560413565474678171785737531306916183085967079210987162994499968006948500423252674789821058504269379626376894869644143898112591841789023537066679245513697411029434539126556594002930098266147402717634503740816726804126071108520654350566038350451703711662838615170101358247365527526090306757878713526086290882157374238649287463468416806678565395554189489976414374753860055909144708435318627662104531836556627502027612722280893276998477972047883576618031751238866393329882683951878020137360397463614306471593536220939849002599216080106375689506391810235697067886719748378179967075207250029743618631022951382087172352031831690011566534088428949187927092557355239155546193975606333444320342481460143223935153498822998890733931682703318219810143373484873526127701850305511915629705913720909529459741618983332072747635200373197423347153954707964729801548271788851134421184762353093731423972987761114769160004380394605356100882439734845485848639531427896801599046535353628266132088100951925154674171877625345113239144360971204819750175538775215703438167541559226168896250617921031014148713090929967457105540261314743471408117443947069198589495057204720184524502856925386175414246528494938761141800503154402733383476290470273784068211402583426326770075920234560337146672179336706748548515054808935726326217651549232916799427405304410789749764172195447218078832734771464046845954128838827375451690838603513477035702328571249608008175012781561887251505844392041535679525023440658085460129034202620321139774878075367607058168174804266786883307772482900720839100951035201928878450431344305889366215426043424802965645887849790069885771067803089356140082493675032240567541046692298122869486397213435652250154499083958570074906467657184045123992888530402550404321596452318564263419081905285860855189655391865178952646879246374656851760214501222115273629886824933494391317783494133621775604802467223090933028566474493340177047732208851836643571235444293082317229696388038902591924113914322475611106901919382168945019088687430958815012259871440884684309493576058059280980190089867030587296299084386186072278999540126469732529101237343262365370029598847170626494034929040157574983210719162209519955214892616986877508529334608879490108506443037435447996177870249444447409942223687821690911313721608459061106269868634258619573056834582227390811055136933540694716311178675500920303843304988453897966257922291468806988300913164127853963061922047918383039087054581036460251861295147958621336422170538055697556763839934563916951986936816289398014700506690996975542481260703367607737861653160520715777998659974141953063531732946251444406293535867243882201655977071795604750727034632682343831547568560687251216581893842955071501525043546596520504524515168372844922357985326340412431096993183438790709336120630270299896555455443816123412118168674990289293200206111419482112749626016989263505683424109723491886726414551956659573677530373727827308594145295361837183057579272507670021338820998884436231862152974974984289752811703380035463751165737052707200843738245984984693450997159431891685372461679683848764832159520131032180309191053324823962795340934045680227888153187514523962063030668183332568718214086344000260385000011724132320636402979630558509978781335128009478420999102374007004475727273698945653898253684682360824067218675043563632848985767397300654825865380744226005569502258292367269688003749478254994841200943485812977191325898196595228692072839566241779125260290246441123257035480846156202990271182116004589574160639770595241236287719819493383603958224092945384473288146285682079259653206864455827270948381551232359403545633223269145256863139159542074405374455363394978775242304577554323820565715573491628067309314391988270268901643121046728433187297772396598102230185778975104702835016160410408975757350653999643784746217573225007798952791355745388500471474106528695535629336552140405097081813826505585184247027969720525593958878220646330641223339705677036968522611960769724290640998726279357584257291660185431657975930839967273570444180284372491415859632397296013093287929217551950763021910526697093976326308349090216752501905046564060555350336365712798123635736263271828588639993015889029805926682305343579247398932846025041325767220348257715015343083544220010174027328946758425902926247908386882419798131815197984393563270825096293216664977453732257748463252310223319869518418975067227823770093685845526896180141425730952428519021053540504883040614163447217701026149350857228363605104422278335297879502402047877101336712765490320013586691481670547297264953972747295181418240650122676957242124946333805445999476016921691016318035861647865520316727006837815273356790673984020205702329973882546161481206855964610345699523317947046262759014280816520674875189036263495377650741011840470143592319057570931206477128241066620922466109156845409197137734812877465629501962681914819096550938573481633861448129434918284077227476049018778223058713476259476739261217409015214553758637108474685606941627118745124853604335127803668690412591498551519266585354567501532444520530916172189845081821812353598599337163250583626204880772316790999073773586579073113835287629907302734522965040027497900170496231272743238573899566042465241313098917560088053834334402288288976546106827448124138483597646115656206921323279991295312744595486962762313209830054661347872709308502648406467322574022907076495245143644824401242067702876653356576010299775446161684480987426460732170321834829190291054812221680328448535392780236416271989572576241123146623096414466696361902417873169757118592848334612452908768095979749860384811396244016168614728657249069173909414870343127106328288374980668426444530567345288674601634911074897675009846531440362997652084457502645633235594880761802157594615482905847815774123127301656287453783114167112089304441502957032920242403488551452934383164194124671317326357319002170800128633551275318300977189925554813619435164847711478438070704384366165883012741964802466994027371117436324095379282218261452016401584017448049978891841599347743395263475252587586313412821612460612786283954771748103982747293720351155614820689850338424054480249833601726392450429054503091097484339858399931486144709946489246473978147727557764929708065717543810352906312617385074476031353283985479343850409752196768124739973567020973263325060850253220937358771969520504906946281776861794086636145338252964362574868381294679533434197806951617726317093727647844537352255234560177312394264778833022993961207285871599774181528433650023467266850800770471983908327736310292117148164134220573328092002066944152653026183291765354828801866450855445416523258009064242557540872104758814293596117851573895032458457015270064809301709407889208984583869731018826100793500561832040932569163178482631179017126843376256207541240103610686281194928077550653984346873143839338171268105536745937853774987315646045398569406488713890985307213713502631781955799304237029340925698572369525543091280703105808971456423758398998245622345773740291398278324724222593833415003375839030225759306760714916611886663790864359145459123400533411212566178639015121890825534910563800888808134453471818060552804958600045596514375477263875993628411646185843837183582750890568867473119741964003071316104687372101955788895439500132798347389966362924606815673922038864087641540993707409491118980280450045622435650813254017261272167959481019125274321902647907830699149257857107211144569748105908820867398348759130575203291891668809824303961642683649657616853472629078629703928028508942813124533478091502125084058716764660118061758299107893568311375764233926420822890171402975110943101008285551786274308215796866357382218223362196241350639228670124815366899591949263918741921814186456933386466635309758297814979260698246112604812123159717262845547132656828587866779075485084498492367253804037490901215897788257716714547796863774795482188377900380707488407026737978456344101779789193340966924103207288680888485421663642623820504365438684105915836332592176765891183015508289846256399170348146700312011887485154002439833224585043263310663737107711189062905965238087569080939151139125647780919198549208466324860977966561264042384055576131009257863759099014199714515319321397153173324270990272772097975673743436621393816434156799915691648131301862200185688357748585398770790417482661557719034834393142499122890848128895842057337711728321067794741066260415746130428413321877059921682245312380266544782145847123517506230568911221478911704172090077748443714215331347844622919619321915678684681512486003542311783990982741870071809184974027465504495841928799764368806815083591955000923970064668286072522174535183566982261056184852616482450971744162520073520289375596843432949166148607029083450180467066912252632320562693435543905684461940390073024089341182459019613634456688318653860170178417790277500370297910692783206519465099383358904922660944050967568786537209555671276785727283930775476961265534093889796544768148590648594898546550650321765551951383650874440693580117904680427030814968077908920839909528678588358094957709803097337976951628220211682784780460915621343020723072598925500949045635884651719336287737177021070668645070896225359366672236052205207168550205483905283396148056542474663833344470960958824315482581544435515900943283906846799837270241877712299993466191291390440021925473472435421162127517101507579436527031211042024352599100009131895428157850306198278937553746436312324195142177140161606906735322054502874622837267003316564382005490286940772151111283800487874168674624114311669608186720145510075195665597699259056186070460699302081570224130856368847998186920858727686560967554504444932567603067810566561585780294156654621409144333137835920040775772869205226137415865437089173825127152312673280366661415156610585665500783780411183359140064283931053257010894715999812607997654488532618060337010277606478708815870862506139234216512154905464689386665171263709434052159517687440155556522412887311749540225665777631081687907490233721702427820392336965102699686977454374204453528156056775835562426404958794613103570598530037154585625143919576349731185180638450706796363154400244915387811792449307509435323441670055813641986234373074670867119990606248305705826246423121833113939815943809618182894471907814858471447584664477029522290044802053141154745030614109289307278279435207002679845978086668097989278520049374078050050952447901039831000848841245701480385442462293710216922239133347939552913893106899306646757839599611837517420181783764997334753994337668063503254830385817063574856273049056982564957641579219946173110799566104881536584383400984969419231881514099585232580392177696685195740891094190999117796459822426690061945196504322796555952054873309996743999319441324314460932406633702874584517081964482210092634436593867368007910486049225411113183240775475184357512598034636734401735210178521581768310887030134053195448947112821718371501325285357855671348877827819909635382142909318386436953444569291534604631259986507176435772654600046302718703668477260386103596002869921022013564377298723368801201743316378179582249834125966666552690425987398172604625762134631406341906216334632574206469396822008749579382837369823409071045483297654207288227063668804030385671964839998018095359481825579934532860884809525845642251158416380769172825721876563823415454104753008926704847515925103545613171482748949908164904046243075565350358094568701379279873093457506398744316940032460822415782219310189126230734979872435261486935344571945358930703561129785388088570988660867710601476240979649094368572615613670212064427515187312058388945713735079170068316891861606350399982581398438355587451502653748895965179066788150132661325165461917524192779573759498891823898944339736417731093143493442871756567954388127978467679269622456582085261342628471400986550960539762717894641452398625627853466890880286722777604207235153737388273133506369508845277860796048038245334058922630515416899804163657990485512014685046098703761995172534969409051774185713858179421729423151061240243124061651353965801755565551217303634212004335650602277403925535960638084226457733230507244649120963344992115805349003024315495628246150936677452465802119192533816999175941078771102318720439366492556778744157145373546362105348940563866928489344743898469791335568357691087039629792476659185848910665839724476915744480152271066263266664308833413644155240043164707621425425047205858640408539663135091505573840362556849731858536531849797913399361982248042483526572698291434168384973807917879988454583292678500861679984258919869126737253637089816080915055440610898093265606714468216349079062502650220505084574439334393139202093663083388460976008660612479042323959277433481290273107536464578360796158309676706184511971651823144294522421554382833278168989086826016780299274043876425328593575064946007548651777131526028954533039818628242089349038302649620123878921603485975979421437828023413054904289983026289319954448700461212513300516113879966632638866880975530151900398547519914595221062480735931138966684134316549506185272684739348628485969833097652540303262857576075237099623212891240863922981976136528204910883446840146407369477202567759169696440575005307351071320379462605530258161462175986678174044524858087767239415715957101634949683042409180057918456652366562589564850738957699192233053780153528058913575292286085972192808825793660108971023413674317653606691737140163164790279332853724783036641898890446010025714821806260327064329910348742265345361257616547539343853848326277318170170521860998001417623998529465836833249162970787775403221759915543617195913873663900329600293585546109188465083270313447925726295913959149181432381841155076076908944916870471214541182496819980927686289560690785929292276155618144450977020648810152121126119891572951544708612156898011185842116835860830997493204524782280664241215024059662657948210255427977232264585977771156321983546357529141994373969084605130937476037834767029956129461492412483142470746537651903319063172031819154209845666371685964331473264797880943046003443733744714070822836357517826828308798313476206955534841872017013280469458868129445420247137095888285391197318596046858806117699390683860919144062890874534553019289066174540520528269557746307622578809814574074547541222057190425220174093751747341349513540751538310650047237019021395284446883194183661914648685253364745850075328427500868584010875827204691974027889386762339038716152268796657870430254598969085414210886300527525816811287196678329361332269220699959089548859634940782482551966669908549720612578866501525833251471575825288113013893913541838590262075143226501853318735465265134232525171643838649673619878469204147308412359990709218898442481017538242079907031014536283065779512632359868147807528559623088641166030943430978021884951759047777623588347785481840116767564772460145191728302308328535487399529315249788440592965870221717960287028322702119101678357563531430453822138166369701331920916151330570963091258387646098832733601016820970859130777883684406158964046315518835830388371381685790837172151509479176317741069121324830321323676955114369052467459492143444676900280194163787008902136429672297270097019005897307773061562268581274740914061702688069545717148954955360528401037310110673132641555458795780044059132468622580391914285422657492979509079576993883268927700204235562307696892875054120346861275213451833709964765779856938519245981606669975498307863774066999432722670097331127159877432095941284641743656230672774417446752462845068159775538907253083084988747024207063338925284473265448420846538042900122939735655385563072846930630979701651213587864928568690272724641949857183277057511178604440789313139297935755506278427804350207026107134385531232480064838445106211506421216243631066574831339436079552335508648041039296365944429100943330974139251726394018488928610454348916518219948589283996475485945292093822818008791787521019341849528105366295982011526709433795152709722213890227411554722715310992820572007589578382937269811304434663717142510584053130423479468672901453275132025701087337621691781551593069649561866622447326658189905061600305242746601990779599032565966071072510477373267646235921583560010567644120878472744756443283110403538756768577198859425613121007248217712962857548748933543615866654445261931820719539572920491740592202992186081671306937602777919080070768726590692831640083205872601408489393149229658586668983323946171323333194630320224681835192149710244275533757924694088026322318752678989034089738458557479919580737879558761662165836810735807615367734210896007063171104922899675705625403131850213384005809238623358194162592662385243422539834862518056160893325411024364520581738243986915650575701848280816808158750024862728216301277559040911158574161883351264471485139386756910064266729261098160806392396027822302927963111932037700052205910253702508243035176126474921274855870511146583677885285097749698146685811282623414916355948038168633819296518610552680457214249226878544879625476627237677783348675034516790637792871698788411346075099232509884933881749291188143285422067257472409699319102728713616444596347980345474615760577784345084611053411321879668857799321875485824260172397534891943906214073733218801912182320874368399921602525081095457695154884720576960067458533612241194365444821966941435495831553242257533714736345466925870091718793936287188055102850990555080767785420995901121672450706909633791858368766838272004808834562088651350328226840100479393886110105027559709411015525396572539741898898519738867607922419041125276522045996982067800403752053201889783967897819353551284212287411128762642519503029545217629396095164327859360647804425183981771455017185946548518892890670895755602009429969545831697555965081633799812398363020882071750266968456197203626578720732877003909101423766581360845470201878377206968431512237783239414111544079055817205930902572480573203648468663131327291102545834047490136498475577135833372132415765635309765234443893740550688415326961866739883686177857986444150028082577188870058815456242656857979396371805263864336782606219316801477459869232336717898482474768989072432944438996299558454226924627566411524785507734946713200786547112380861800467541365992057807156250999968221854679355298646234391363098732336937517203526360279988585977911479593701526818088123373738226925007389319244252443145327944795777135290238769048736416774181909718673492406833866938566809965125913383089313505749061827801303071141982228350899996230860304223661212178914216887597848646502914650468313633145967227523354292946834353721638123054008752676372115481756639679769986460652248050820795870350988377587700622312722685454530078972942884603050728815799684148472180116628587768969253250569187770251652783025623834738570795701953891570286164824314126869597912979049131601979698124771083560109237102217518312474583772208666571105428353340964642228734926443008449317407143208975218182032271734215978635400711655625908869094843845695745643948738471915025928391776188651826750781439711116146100202839531570827900464247772198983690770103810696547222067919971254298928706645733124697084516300835024821626574503507366895261230250611032487286767938205247711494071280240563182561656702865363792496825594158048474829575935449898346733282003926374997424894780276157081924610694108037158537974688295834591992313691691916173487133730572461153975784125465109385067365374788156227405093294914301450765067223043242437403438854950673501873782640885037632672739428630331384184848414418797693516385355558289704038019413270246921919053525932065304770078662025585474030848214990091874068548854005715637418404530284225580565625299102818629024837943363583678681889981041087717504469816266952424252646621948332713821789821425490349035667599000258251111992580614440299232317839244585945767593851357631064188144387160964022327046650731455206255266874775790199455673546903675019576145622723492896759486624047839116444410978320986631809206587903222969375516621096838601936349937121320005881954582055353751504781762028522956529220387369132317012688704328535491239727447254554678784112728662592797454456038277787317721364735870342887309750289922547946473783307325084864553538973354975824786285918168012219922686359280978901347517624478443940511247997996233515306798165891497975933758040034108552016150968779824639343616848894213204113933572071052308380264724777971073435141608590148756961927408194400606445419126608832151393611269569424583505388654107326082100533785720666099990746873332463677760554477115771498980202728075577384083239676562478815535154785363028113949369696111157430172722563317883289951346555616976631625133875820541305324136640082274278196402959111261072732530753609823542732258143935082429908832858892779223498953207266186456420182524147248516014208316827721457361290729840597191877602350117226342240752653337755280797455461211490178394120409925051169052783504847845845819328454910110373544712655686987189527366320898327545836508949161837951568110258405452077564341280305818317356268347021293143696074880050580656516533018548159792822993036643416040745145239060567825696390412044970684508732124408831554140560702119473684483415282238006849981363036617726662023464343080749617468033161645398913821639538242945416298381572305203301603499674129491943625307170054263122840606818440704066221544452587663121724839464387677292169171731861715646480551173346583625657637842562166024399695963603334304857487058119467422212141202364028679573254915347289935422712412814148174508230769486714700870753165455071798268286398413451152791702601538167247596305568438538753899326659604239818285111057170025200723056996904516863121704149577093142308783413954225594409281483777909474294065760784218352805304116737967334065879519177831767743384404279433855251137323269114559392946598180678781560365613788499500637708278409674633403435425253680538572693571445415683500859807798700536383462904791037530952919922829521958411338580565844924016059800224032200426104599101063503779488821011728056206614871539679575490348963055138017085240770649225487349678357969738771827225681350548194840510400302782442405355687262447962241025814956068184385109251742693065629440048033478704894431754983961442718679290432200050095414863470687123360638004774440728779532142878658785490468163261059188382934630264918418880186493243632847795854054037757542488905454081096712256843157618510084868339386726656475118667134466981474964344581627434750852286910130030179505791002030006205535571293063130753918329891249960858833284841043992417126790258147029776972655452207086953858088830560704392623817177478427960212693830138536814766875317979472501132781739112317434501888179948991413553524231570966289516952623808488816796305552317074491856927197751966280531987104424590630254587511115099156594393234123543724653020797548934597808329822304625646831972805247414901038544885011992973063934861517107107027367057140064068919555044583807128262541809603121185061377670112081466546232293580236324171360865551193437569724511653991789759921531920815691483755367574219229922073363536052357272108143618123338884046599699351974617691137204688039223024704355599110428227380677997315946310922651439803311454156512404282373976097295892482159223305952051437132964786279353646246941944118721492149317051971808768710526561954811921328727659109706546756213070912098848334257114555472739325193813029125917464847768602079517255801953781284974694808624884936082174979540409595344279065666392610009287182591345380229124737035773591024582191008043781420206629180157813727787746027815219416203408690919012367184923671495801933488721790278168424041859151528476777864869174321693494151800042815450663164135945265473103240764752969171206427474078954091672176501055062829598394867096922050090758337190872165309776592384665819883465298765517024461086077769315943015300160033654792136077719500642570472450553338772878491014402511999514735615875917600573422482232880243960525992244032691847468110948544476380458011634017035143833595231780581681143267617635465592997124556137234096789611303934922137696637018842286351078942374688278762502322401734245569630252076326628403892545651582412325680394944768061211067828561151658167465919894813155669589406629700505102849219748060029926145939699404150032741500251001523761432269773629520897088059757524998118938738540714519426502496715198791323731902575399383520558870193991291482113309242228983906144555352548141745019988632160571360209243860745631618830158632649968572819007288801037138208138482510064824565595515458712760788618333402755952941813928299649222475450385288472497273753054879602498945005951401364755860045825697147700164896196847467915256070482811738777762880989855720592242203271464166828075419364123069392147168629366924292027744660566887650599301862285434435955114268389253294483356373897262221133252638227140098593699140612484771419966207549148109188125969618262907575729624334857635321584374258734057746142193049367583935327132154398875428957482340798111803974200533684523052108766270410817606269588894503564049639234154271519738966738661899861349464897693897150900597800035384227268200491727351583362266109742928463807320453295473738049921923937151134271295047886593277589291201349679424859474379046948003102724717549331620399718585995971826396705862281653756187020164077647282643029803513801592736892901023083824312873060756938477684362344257584021322583081388118167911616108488628200816810034633639063577392938719689348841952658618632049400450703563308482064358990552678007818625902418591689823165941619065293148789483102036955954529485536244845464882962106532676598745537653514203353989968247288480309555679808223938395046739857641090368849365179624344714197161294593980466811436500518806975073669539614442103435540000864856255258522357092870228227823881224248459739009492921551383668990796160270448043179265704727560946096478211976610252352978090851501467788256186229678577634355353322239997513882001922940116402514450520421362039706830122248142466005962667479083353886612415169848741731421682137522395523110249668912399688328335193678766626589467665476917581192834330787575005149232495326644603108169879466742317788357518670462890036403866166542666743160436267819144511911990339946793480576183224819128746023084477792564772542333717283573976458809838714842297084624084784042054748071181906412644995726278034069050281162236127978892161473878147132788342183569202149028687409355498102960461699006800576878136766130920580826843696053489357037871020739524698052687414147603928182920440029778516574490609268897684520739084969839450732667438410475972489137879497590794314148817641509541829061678333722863822811583453656100226075008174011819569077765053509762752318629945266479572162603488633067717064337511702349140983683898229550085162515237917457433384330202101279539459009640785291178107123228659499004836927831788820846895984323710997464553858604683653931413953723490095343124712804002342083043924992747737703051737567365044406781566927850566618514432828710982572216669832609843734094455227566994585606083350426759296865385047574014141556814323096804142729093033732295137429608576371489227561446272318795144366811338807959377809478420853172262984146943027054291179674257257871725578181417392405040464813444600345712374425372541865836308641791972799445156234354071859593890105913327280662762617013557133111839790994959075910003295213550318292735011213594673315575952994453131703014458418015473209500130497357539212630850289908651012119537820766782663317891042513225750664211016572258892876521390670390523255890671298925249114754513280906403313814255278790631473388872320637563402816608350457610399946998019010749925190783766192140792099334576181364451753107943631100013716008795315018092216194471212072554895297188542438871439987626490841991010134866527083104141368792770211844695298128552854080104185799523836998749916403617592752651135850359245722055516176709407483434850310308937198835531234630817730965898555546647242543309948592842036773633622344056227108072484317321048353865133949909209101260178162131665338170243716756632808214082847736309760924369509616047448763305404077801995993329342926731238815578682256172851584959730547707141799311855829013350636362749139780414853347135082902931545354552301234035605633008053885634775681668082042419332790909561607325946441143339642712735178308789197022667803472078559062564863639146875544026334688562533226238417561399951677665878963353129640627887628917996802101549762336663676953338804340168530698010529236420303602209322967028204271378033745088741858247955960441316551518986468917356372109111125091279870233343686102267457851883428290489307041597298666671539427538079579712397279982464809832922677338945528069889570542126473932488517411109852470445185826211207581771145002749312876798154362643844831088468491590212451035592311432707896223639533989445449430299107520954747390197461330222328558718882845866698600117176544817321519001406087008854629756038965252086665302605532783697678624466171070574853312239897905786131385385713934421707897754964130956733712349128548329177027337971821953047868963290162123429668471506003412135029589858458737613487169313854659324552299717893451017902191109296358273080401723424940646011403202879874716811884140659583185313980328206255242168205346599635173126039364550412671732924355828121196186334260969811513631029794786289872657788967225560132516243744888139099017534301457977880197822823144640606102125790762217449899321124333101751945779114206296657314122481432140001262528903323695749078370392695753147892500544767235126420728297693328074335449481202294589137768896445238121178738315074317715661316813909242416193731092039709420325629791000802605239163792442159360217870644970170785437255434528061937243208280159793151622874314536514122147724385397251730824676603335633206903266021896555851776083182584744103075989999690169467174610431801684285755163755146388891879662820149078042239465355368886112999625712295252200257393820419321405531456762043334091557305165337923463614184692161946820338002162346540867481565875245616393695356213968912414485989239718068166632528584112109595063991908981395212838912918458329740717320343242696092965371064905398748641216588063872351951083460479428609826190547777982383155789794588954181974147005422939757017710712167484763552010816795357959106886127222540924093863042618887774758423052564891888107338690676700781231433067387151623396386196661092611255747288869976092643183287657585005875486878999451479973063281825702086348106756608820829923994757946502412571725326421375380582336748303365583069382876904691814547642781165090704599316866549917675817943900438775779295153996889901691656126257108610148148874541168813413911389643193893150044334858657080917884852254405570287220023014011206302893314064954697497185418218925261214954843515430231017973893191460784361093191714783717350546683392654698379857220141009322563935427279951391934001462539077948047352650001293438918145664963377562610438711564708505826109085535217071115624064674067796121050053069350147956450094069318891816473790247503887021558066331735241196268920311038255196954776776450853574810346828787254687239578663961017135164151699498150058502831328500176016268793035921378010906213424174291760395924656187430103197018986790256474422633379849916723080690566656420259727951354502137746126820707281986292245921442691103456008953346732242713787254685152405772686505807742138771979743507720014284431784060712098107640935995875575036687957609710585284209825735112065210751791313614175923175517620913205902893895393418312256463092879293659934143955799563466478278906077437555360492870187412850642926286634166902794924491802998830214422209195909640747501783500204613649476884734153030903288672618374220843288925299709018968008188658873111526206767476257673506237043104153124655885052271420314288573157735614868486808986135795211091525988747669419358464432827458497070310976013153252007313396202638140786687461797309461251630196668272687939896385705618142625858152975765250831631498262353013730152355095333055030115221552697111854493221598129597333347210702471413446296721960886540297473320138872682554377366442897525330470053605352752044542688907509732862420803966666526401910842162307402511308497721688908037410113536563207520022060099129069372785280188015509191908715179418034749293940673913871522201919552816055435789295999115192735829454827361517972279148640406162616737124204842675287730945966448015757732595226095494936965685342917526389097337876271118727673909364476514656338752084689212402817940584781420721538691774639782048154597915756046632327925341999395128016236577910471618779687546047287275315789905399494544678407912088449838675870782113251548674550639279386464643953332640716399486170391003275084993493200187816694088068544427608386874740125510854180815629779713212900666738813525412020230849861590611812395736825332772330347058260434270584501352563200691199616761082918425501019609886035256563579536562823121601471702961945532989078086310670081856424768876065076556089352808901185179871259030303079199954542493810484264064830729218162079750144324871449541443756149721222994567997603774003592953162692831358758897918606446256892459907093119352342336466150982306290643544994622964176929656384604110493487637963793240928533651029901768729635336994573127063175810980022775147742678771465175181387131549086324260656205408787516649802275334008651142375510082326526468091987989616356109592308730126750611045134561174933026265793251254397362956952999467517735869151103600303980697757368181725540887437770592267182695265035248467402300504710487636548011129863890550803741621502037996531112688815763963488307764818218283843253297237829681933326147542931853840133796045409815276037794521743999734739279090082092541348436220551653257377098489168593698816193755665326664280543498713610872241384547797886627446172626867608123565696072201112754532117891769919432632187908991176951037455183154419848510406954872095816717806813321483601871738391188304381815858373402615682090683288977237423416534560588828898857225765903832023102842968462828858122029600890590663975322019244304889674386488693296696039510328612760430745600375444639707409054179534484599294684517213152155314240639977893731510346646895128095857818101972566580067618793052913958082912261826557015608813706022046257181392174164409542707526168539549981636375554360159868004668212857369816091180110470040493050428415672384902039930821482996208049056627512744010754146742302077904421179109828613867794203914834417511495040720455508615353601890846206546319739669576789922855506028727836216881505029801066069552478647917447578285585684703092878881580390072153513556308412566560898640195056130391219581962814296513588435350354638898974170379005912605218113444292159811802800302654188462474456985271161621914904659247997664976840744781538670338885305176278613353909464685291011200364199637409643335083874305230454876141470624906875134461781020952783485244053553016497962000971510533071026744089939613161520745180734113583260367384016732560698917114527958609720815085170232835932055179633702939977692488988500184232918483288927147701504330305118574854161361234461895085836786930168491502149955376373671020308708315404523941358114195071986688077374667599816400344983177935237873016429505620926155313386178806973999537330571032167702236842502840393867488201359668629938078043725318693675752454710689206032138169981290412777350918245107574539660865235241127627038895059395620412830035339681917043636185820117552120605585091635514198235718562007336753933974557062235877565123258245407636184389521201605824692101111059225198498368192675201482766623779529983924124659754813021308198160952203430559228461704335166166818664210758297967143099128208991004567990104363608356941148143175852114000209035172599238822821080463455515301096631708680494431118910691352780958918934482358965117045700728337133960011752140121702160848796706892635738488064113654948283901708716634304134227939866200596991323598592124717722069945287222249339046573346066021167847597596637838117274822739468656617680680647585100252257519169757710192720510040948455862129842833543899904556990525360044130887867343734932480728606404528855720321489514978983517003649594709302545569162636526654702147464948413653913411672261792894458415886616121706047503130296648037610836467873233218084674120372787642635859328226235173828199899775841480005954749045017776698089168564106398109065084052680813250289157538290104322389195255748025187287761366243795156387597817302043201856072632610403292779118847911444210431302025288909318066628102279808102936991976213029980541650147434812782225414737424862719971488417605019532803065523281012089337051153072388993665900085808950661055957653294533142999697636210064922126855090281678130062968716856411816795167397636895886514795024780546448735027769962629449829562711624420630476492112664075325046163231128219837691946537836549550606251772922449110254233417166201087965624654116172642144909132843737747779420236854748313684712062261854918992347646256129239802883581552920803189541044487158637328181124099919640443841996653612008640661368456345808797317481782624368202778671981893453913027835584457879113670990995501637652426556972941287407775977613714970260760670745707703852077833612923623807096097363796518452632083999860579093674155330943896653151904918034411964174881762530854346347930442520483435587433958173887318325781866016833746472628479040355035702755758867199138077050992502200321302516216685017687612392336953162799200926328922938375042035400757174465751432379415379862511270151734288494358887934510149180831163023030459070185578202261189834476959062517985684748443316276969726020848517423465637511035977128710431994968174661027273811270902437508387399248649396800905654910022168772480539140803988808897793060836540932394609287876645394775186610383316398997660624052939354754611297136640899112266074829477017973230631546221494480178239760284517512109898601492814040336495796241548702736459548654741128286491648661020180426101502516664011903966327905112107827210395819670853516286300955995591655218811812298524466229992157085177861355272623389536152921461466799569307622224722636948356606199160853294589439909301310932178090197318616848301292607036926283862787134541459807332161323758242914345438066872872718515660408221436501746555940431847331256443340951525887524529970291986483253337279372180631418461684941739162700806142380183728506992757228360180018104338579816419509804794189005070645169741216426482250967697132160712483395963742677122174455247780542242500476018472785018205110731418630611037620667973019667650634230441146475168248041089872335147456387005134640607408197154883867874814349207467179383530803185068142884258732585277601470273982042970867494059905403058132133003623202527345977651829157396809243246378927309689225934947739128522139810602224464289179868107760701413008779625569216517506338065379087827144652240332763541808112901836550312419023662712076120923775077848520448146133986450534177337214168100863997758990532035187082467903007329867628226410046702580466707670724400598467615191089718655453941319169870291157299543274615773441126557561742336736722277552198416983980809625787487761150170386630236475248207553366389622166114045078484811926632177897951277659042069964587584688248569561788998664967133515640084763058824717682222657618255234191803830643558346837246712744290267369718645709576014076180767959836323576424153938435498262242810446884404868558047653518358649456976955303010163955742085607821836523133959366740961137283332163470990746389243620361714994521914828723005187103347686159820780726967350522020435188241533113754465763599081818054394947678154697366093511602137292592848204575115339721405360765282801214969062573132082241380450624297013385936380935159896739938966098406250867455833893383531264691602334165834587200902544469747373302413824298410576560016626003586751491942866623740927757520504937305414304205516624354913298092583566822417928849981563375494780278388478663008018680870432355782470253446396904330478936721324147472673385280468362528695801574144514595392155494715515433370856247124750315638709845097382969048127246391351286388498442055156670504105213438864681306738852397215408119842563526596440558037347430811384703222807133971355805231867605619139502240430064841409674831935422652777521654292227514341557419382432977321962784032566200057138659994146960380055413080335245647683008577801190068132888700289379943519632459774138717905756144663845757229395943871666358969546627894555176560882139540297078213340733362660893066374384959903678269833459237642603738975495792409893541673022934870760567233129434113984521638008176125866560186989524689707743581100592314082266852672934754721127927957903172757192665813736012580286912256506302974424309424740311800632781918212254461868758988610905068293655677842603415202543218291986139569351483458534881200287809594749190045583808309719226921828695338682661633012350740369421873150612561282541553705373319495895229765888412357341443061056767922545213599839789606194649651252233520826332495420190691454335922549538676208465211533796905566727753730172253430219631417836556733197152489233466549041517893703327892993097773093050398827596153677204323960457921556291803523286905942263743994854573466341944934952274026425333167956751633099744303453623667781185360445551105309705429193236265620253057896577033946601595926460885227567961726079928339156250692260384550382926047023777531817180593457655658731863078906396971735307037501698531403640604055171516413048675184549592919106554834894591273938457920891712817599223905643079998213202235364634018516798629413762211406958465722447692341062894836970442963986747789239434273345912805336084868913202398056000017546928057085766944293139635993987035255374829724971328382489675199758303902634107357461125694268561583983596570207814827279675790661312485463009824915276527437075941838289828102102028700486791627797887678182139930297381399920839658913890329011992341889966193131548177981091180160316313125464397739150291539915618923035881364426669005359876739272896828329196058166652633324927742923382315459379864283670568109289898118148733165027966230801207002822683503176629328893999281316500597748351567522293844430261960120260844865766786898561981956877582376678636613884718823685376021407073710449700228689460792003293769822488405347040866492861779110360872256287836370160830988091078385828858094748777162012698283190649045804692460557114840494107902261757388154792329306082314672996386961899106515528319356703029328330382145326883724115751256117173989749777884112741165726352057286080366001184163666756030512458415054108161628034145077198906063255451165542682908645302772534914202735933370162159135207399245356649203244137313822003033919834660242318084544029442797730769200518865940595161590814981467522835792318567884023513488732145938339911529937384952500020773609570578673210876234536765352718543382110172123468355614295864841493927158707789356436096741175421900330751366502170618644172636977411792396977663006693618986170730381212370221840803746657096445960746149916670705656357571849623295502424644686423509123539295064637146405675700562416214122555761685066940228740797274692229818731678239367006240731503716405339905142578517833973371502697686007893652572534833357601973897899572789469091867913434557522743273282933096143261373382068814420849684851243254574105073819776477840365850124959880746718926000999242663256842702967734109164914349780031566336303865855513397151708848755476166512123287746828209654200182042699722338477871399866254440720393562454080255828390923662157309960260339457103892287423819613010989087020956008677977546624562164610690083687908024709150921017045081279435249984017359572139835850942079904513738541616541749020783362117960692314514506157707631389849108069990081494344096668950563574787973458954566248963828760161381778343110542456244891723319902954038875392329227912765877516966911078554631716056475727069882196853298320137965979001535105285062542036398559317655813349839121608942343851577238256404944763849504033963318866501421758942654147087443350411625014781981903186803157715078181550723170587688853465149956211774145451369504663092581913652264335310400809162616880186130162286866513398217005225003593516807858387763538901373923089357267622715924399356724304462895484160871476587126610909372251945496474837390970486689589850978820750524699657543747667015834465566100827283241867808512307267452590983859336046080467015375168891930838672776146800805463636513695831802102989784557235635269150883238475699280332948788809591258417457919188000507839376581637873085019366711568824069245629094477941708367795923216208086453666708122700369480263620438681840372277966557788590412086960047654853575466530860738442992976486600561405349629298176335030754918967811660430732927396358970779710472340219470783259378322942742926298176342599509276027165020004654358491799956792330734332606850823014861747878849103155044020633674041695577372181299878310654435757145193945365144257465464028969299349845431474417658945232306620600521746926307635413013195596035409221052146174449090254313551867785258162902282675717851486990276233161715274753973566988103972662384041790968095459018291884166732256571269208484851508059522580808694584530562551323848247783847003181010706211226877748475068748120891155437842028659516571951069506225208161391454256338037838058708627933876522378978961720158744952400416568073244311651870222014303957083102675801010555356303397846904124186395916823582316608384843884777708541395807186208791626433429464457769853940998016087441752393625344530560134108282780102738649294329282650178041572047068299942736399775023383007982699555695852020011109947148415231421601166147927692272072536965144697103224361585585688464950898935333257389407457694686957128447095944543536042379280575893155173319128482863010867281390816341632894781654898180243047704335962841361490704959597194885166404272327273962541504981899056271239881432886592454954943114483874990136584738544157498057515054061658244873309704180476720951050525935906303759623967945673634716398490671931468157263154555137779800208536442057711370576275854324342078167618133226275847210867942646752285885967122536465714221171668143797382850748153597304508510134250048940316143978564975145568138868526464230188799885532953648707743753451953555442747312698557212274297323505615663151854561591131733269181968734916178008099925133598976384801599635516375734299148183022136921492737223872595721801606004066972436876194201375848370523917246285432111404892881803954623442670820039567308117152028004061628362526705568363327141034891967142777685870348778727024107871735226208489041950086672406506263542917169402757313917387041207016718602263562183639055220346136614125139123049413175084331000621763679060983609976596807919171634186057755803343371089016975446212171420912364764210090622074469312882904138920081602018266344271915999340481428828804338580069968946803305911835437148924324466349497484665450980575418014874212073718072458713959653773656298433185328263824229878414274090915469201868359012667821311287137505128625999228827057891882705909872331467999220986129668896562677571723179052018881459627029050915135993590680189149443846124108264708043574371292675406726103346885923894055158179465422744468577988347838245566231953100132239392775619949208165654873746287476988294733597633850646384559924482108655193351218846141688375628183710007254140947762018885016027926758935454279406525058385935290447927369720109200717609092261575850981608783205001805010659737419865547739700217901903727469481648399917874088904990608420164517089833171011410542274197729690458021631706047464276499890137799734912554253599698952297940245425184345400396022788774838071508850237793218649447334148253924643165853764762266409359679167139313406917127077614962218168101727429236560196282770359036748677784194001443952781427984790614427034981326385975732717651102593964917855111976247019040043636571342546409047623810569464892411770383485113511741075833155894138482474240966791378515758548992323479150797930370589155537280321411802870134628205343144623376648361743575455386331701764333027129445457948069118756249745679006966313148492593068291399653391561927186507946156309997054644672414411812527670389408348698489126955950658624170391241870079754439667619847860659373472207335793529295820124117700812064218296686125704583877934250267043741676403459296567581119015903008083046955446767146743236377041963375864059535744039515761662276676702309650769253668007658896932556323859170837810224906460869797079969416467522128493088592763620997382723498741479569830531416653928971533724781322770903538969095893688125350574022434228254605827889649165753844436253343394252234533424989958241752107671193376765776988971267782514900910267237138349287156821128115191608971418927436017611275449705102099790550466363674840890144182045388467683270665947215773121302108019200364546702740197997516992338061458263740930148132773959260443291223409298030341113067339139704228348730653117123660559495008547148699084589740348470422399211407946173564123912610483321101377390706165576603282922383873579151821115822687999620711646578020877783338976882807679046060419729372661029484144992151972163533924376087199892573726706303352727030324324137545724062709153059055514510965726265988111533322174133509599293947000041536129534335548906000482513244449094236256482549264540510715677746450859758296071137836006953186052191008274489681371828812561100102651185785072270763255338101938104022743719430569457912887571162260018068693075919926371629015365214241897459209356794936636575988616423052967416538630036281938038371156221801998239587348213190900003872261135278411123540795128900667500327693997542685994322439753380682091286704627875618873481477363160903743217424922947816615506089430107045940549114917512102662846376039400401451400500625974752005678436329390201891540400224023724106044823138763618682149263697603957994259473136504447528350366678245586995973043581542132647181795008997890697409288512083879127149134017118600006169750464246788086911877242451573782269742884140749433615822388673583832306774973848718744020614682348638349505903168766564907183148733617541376996311394147721389066391150389940914698880508629897493633305361935333170823291196539445532053993860811914090999478950615667350586429173768891327657871563274986487882270135656665155382723841805543033515907690323178564541785025316147142164018144814737238955658229425955898825163277329991019748736510454747575879041167377100275661700040609109305881906979866514239238573610338049126411549661736930092632514531209268207127998136283810151127813656980016968588357096893939570007611114933264706335639011705057526878518179470710232654029562538734941999831263189037733650929622898092230941244617553718138422113535913529391704672022237915607852829983279288373604577670530324797693097354422830440054488821417783617567062537487558430758946703145583924426376771539905170435837754729642694040588257046762799297778146754624258730390129617787419195745222397275867234544502962269710726868591021684499890923882135138196266126164653907045391990330833056814688553746027167142409741653719712526713670142861078732697957520275385407218312401628762837506926576305967785105497439361914669119555548972638757815885040426661992707238334296956171383355901635301204602318396694832506172685070459756007646379630805942318255905901890365030356326902368728780103791055230398284289565250043812506165986540345233598961846935416406738362603274891194584530858969849976228149253771284644687101794358835993353809945565359560325552964539900004641364236337198909947106356037645473375488432081751436626176034973599287560089721191220574142739918265396336280355693211890309004340076882114483760551877165781505338481622325820165974854945325895689323288853002298253493858757483315796901677201148038481694045163711848150134821721203101558555117114191959003871604375230785065673233599789086378586938810184690705924305582253440059816707993354672605285648777676337070232690518288382453474457128678953611466896596321464833979086820116735780279371947149116308181865150980369651308196421796719130703930546774692260421781617478316679577964803622380916865392403484407096954343907851074831237287952623086799829936258599164980160167553551283045046858538012512710450372118403958158484909374266225386265265090128742302359295953719663970106099928238102652552390794545880188662861748364598587270287091589578396447015403495665776752912912697110426779823772437740373659473045228214728149810620363757121237625788339462893695139246262649297941370486160003726788349184706066067312759033033899473076601407032728734267918279608366956005830399778371254042383604802301841858955846032447323760111036742569779786394340776881466017540270720298527919646238103616353673365372722254105553492744431146890239472437089520860783968263566367345433641697492326324252760355289024641435094160756742291659405697399754148924484494466590911854221054690094890803785513292341794165602876402340720300481227263379605021360496448278880420879657575108327518568285649125401171914486243592232797867366549101453007580257512992288906758153035749353139968553950092093355150063378870139645199876099680745238013399196438522323945066165606550410117971995371472962712838917336047274177971535423982691475132582307476988690366381693340871147668540510346592974323388650652845379774670710742653926266053891850009872758532256122138771454015225176878832296454251713895882729757173695827941688369663444434029302171796451536542313698284259556116747773864394441021982902013684940979576804560279056995476399991687509224023356826006005479297270388767816129985828348394013844787967613710286807314614716119993616575958455061600516395252113183045419435434107008707073052706374352233936046209707059948222881374580857248367003411084320816785989033620280974299786975746434999661687442322331848161510548706247360237359321094117875259783666799743190628750335997098836868520563794833982014852649880511695015215333046273745901258990124535429899631095828379559785987876911420507168054437722256877696684427329526746638288151013308278666195862592944884865477412260926943110081748314794017375420682447118063744799395587765477308172412596044442934626665253460594025514595852851336114010602421321418901635977879450464089973708030243605568911879815624127142400367102113626743715205661617341916676642786716068446552758208139041383771338111904497927596675065731052030567887681251761315893349085902804560784992816819492689335667359471555228799191155714875178041634091779299474221008462086603384259043424495361812271858950937379895079451445359177958857619638437127362013406313120831822412760583921309476203368847374681545138595739063745765660625159712602399852766529172119390079699010238460411510444225463670967878845747588264919807503835953694380714000972337374348420058704918517431345951203816855413686595448457932368891033047923017816607179752574423760076708226059379500535605512983825391666947768103583200918555282350520526015491237304853166291498225674183178223085529026007658498166915482919163382960086736794751154503096676604614197287305591318602689434049295737159485949410006376945237736988786724608555352154707504960769366573552627085521256249318038351263422932375604777481248189769028704274314344048749838126294752474519965686111161398322126998625986409396455829311641213571701823804770491592868256293154620542991295679372164386158134554015256161591242291088045995021405807278145574379988772411722453704519781499184588662298179768961310661391428541862037684316634702107325154427188050412236780816734194809438174293288233091551061718304304751622266149627278175965613377452144544406028681007337433515514463049270656589861970167881450217320219482028530272257068699494821380006964521974217837477348394290330119857525504455942063617038373400818626305789960169923679078604202255253989792524842151496763832326620265789521493854055308178546234268449100771441379156892603512093395214853094235850249124286803777456703305892026295859261979655050743992764736089229696629983614065480385913514167062201016580907017695102508551249092415462212545974752962503322250205393558024253301619687595554453920389290031989125003170860018228455426939883417989813138992126451533034292200912188850202127109095288153938576742317778884396269708825451924318581680549023304794219829232894046381478267911521352235648596464325443508357160014329350354394384925028890479304795522652496450180827396342839142786777272448180798381677288180623070952648815559070232518533545315296114390597754367296114418237909833055175399152261881851471578713638016959401765952109818507186743489729601693845676468826369641928928508440829376092190438360787156775733386055767014211025755177063340748164162597581108933902229267048521198733663642202919662554592821249483818387699072387432182277394596507140574598482360190555752273321306998175075247535637796662728600534987143767664098173359446074884594219245973686133858385094967608003565300374619399842752964284531577581808204226853081161523680125674027323460807356816374442350386477664396460892465593459982039240582366224524578861260343057519118040822865837780493855831374907063758223358397835966296589919535842552194870287438147765124439200744823431408113076061822227373848983702639798823403559433246678079120941537299914327177671513454282577226492385949573841571392191704822256817660367575036433844247418142127330263387794936212052589783788300313436080343507102480818552893327606783174038385565557364164654655915148366282973020034340558547909893476770110134696844392080402942874408287237846687808526393752643018725149102237723812840399782254649168426704517319993103906986066386855172340272469094962631281689334802790279871827693444251762568984316138216922921627982737327183011152741887912429580109209716909672400561234980321692525178433736635846121670086492156908994121033970696765922379429483464135027365332449920948139738735670812915827158508565839777123152599730068467005429150778073476452476176684596346803070287948740189697543344954530437119532418207687091333564608494327525275346560687886494512120580229049771781382013963481164189082087726300539107778403621546154866763426168267369628739393007856939289094361175401064555206915780251168182240568569453824459410838232459040307485010944182692267497547165217067939484097653050891187927181510517123203591385911804851606213391334278966626780311327270898592905908854681028745224191377421322119745496704680129538478987804956661800226774765665186106544103916324559208146366825461456199900571031392010592563007758261925952428774164302871210011167177625142741537961798903972553635604209090709555561313932719147055607249901916716669075785650694056189243611442373193383629014366885915850545004339558438002248588446870957605488873083999670356405854297194303628136573179968235138172298034208315181717034251761041399959521498331718958690617886068726500547622472906437434732854141944571799695731336590365837233451967475724286603888540673873529292769705132389961936117641546623287170208682669797063743571211365504461436217358795875363043045998678886150426866131285359400594334314592279970278385382442456481901610591114533787757025125590730590607143491893838888666540975149822550697413877065192159817044055810066479683769843252179091005529706656637721887914446204742915508794358889757651925017557402563295835239547043455807695221990552913201488717172879033479940320428089408734616194084806244624249699944781592396167826713295843936012425302474303544483231844093910593541292037461379478498078903049158311514609645618976555066296240274115459386084902766507245786094661981337723876623345888292822365145761985616721534576897838576718777408117875513318453341591619746385015954161118454978211109279994057423657864198410609367406977729000047654720070854094048952207098944841936403665131295046039832203254736226294362401901770732264700878876957835078499066643806206657851362837790970912702822824263895581451684254941896544157752336916561795487420836672405661555371478542444366388632907648502190669440368058955065053517321107275104253072109100945147755605604482855487645593096017994853875707507585069283238843571403276996147158825351475796434299794743216682662934500425822090618134632686538137597422790592702132098855829464363062488514597718708349368321057692922400542647052311424081952842654788236551402406207139597740924578818829241578937065021659049341146004255226797132232533389102634861935010265777700190730368835789182676087361355025823904119315253503234171632503336514983996370840950393242493511740399953818626494549311798728347205175390454619461687937412761829588231764102876896004959024170691346987342503833888825772281496802238604296767308280237656214536519215450558340727002601253227945837066341761579110555606878781072025060593394215490726561815073618409955152095857447759830794013925637292577762029798019412675167657405134412289546403695988339461211754424142475749059908087679324183733665516612168377634317050379939254079185190564552735766311373201937160369989419669639130734663152934342280503576680531298801494649504126589459475458979504264974742587546958073593344805150805348729121889290806969371068783148525689733877861159917368878389692824059166561396234662961213252727515147368786264936101461381390377527405635903534028407256826223778271781110704035240016211981543946169232434248113278900408933231754486072759391771506245266436094653321450503758671621594442456779045005653283031792535229999182088506149465464860441253484581445402111734087206370327379166619666746003428313128969127650495430681523845319377318573051371371759680273660292724966611809653000057776490802353314657519714898099393370241208768308008504904265865275075482219786285990254570339193446271699310817397654244809212582880858223048470468267130926081814782502005139983022011550944796283609353764563120088662119406292364285153496245884991593457378733954820276185087614084061160766525958541844875371235443581063547767077140763184524201183159428372709061162489049812544896639245553142807979139199756778862775674264501096453904482721279840834166584348362122452998244322917781006952618316007539954093857164852793301633217314770992579552288028242618600823577088884032247875379389448862462464295545546302008184576151439198430071126616445276483567202305846700092684100014182653723468055233346875881192678047675310220929422165512479815777565407288953183379742047883495651773770549767369859786580336668817215299537741399209091389968680537590100796321308818637499467882332990615524783067894112794994416067062875719732983754408897640975081051452881413160504072735093712273649306547637168821288627129869475801458509354931208597887651710451149721264875957667740193384322455160773596553113470626467844181000339637182595679030482431555031289267764449030976233771665765791933218591713021094582228252455127434690499994953390430292839484239507622327216576706115048643176448333179846633011701043208405091371536753670104700553546545162599432308727245730880116739334128206582468010675724368825755032413641518482337058364546581605692246708504348041033972113391102846496855497168634118274716449885258353739609045265534858194230724081267020680075140197904222942179271990065282729024985773839009725951094416012557261696103783877081408847882357177742856132759882922888934152642115326423526696684184028627864262008610637466085847944568749461667195595802672124880644974974689494434442569942706628643030728593494018279945732719674968087860985659591889532649400734726694167981414776407617308871418383705247180814965101981279533452508429653437310317830258080890460158790714081049032147795693357446551722890394517643865476583709967726876271170016608713707510545066781783251074848301054530676282921104340288608302143945188322559327681669062791582255636731286341418377364806694651387912816025794174436827216423154473391614146942068608982224340649760147738703088467922232791786222214988015773496801851817084215577143198008838733278635188740988024080786192560632958026954397401110441951847178251352920909978936641709709331262107209481085249782253563803827747070630059120202298994532522490553818814669429940310225316872945188179227811250865705094150232061499652975901392166547557198274579476479357873783945026763745622937735525704020072852998805853418058157730113130377117096722568581274671662846381886754134105071879830637761074106505825199594427748309370146007194739836996143784830087881314021149782457275857691059800839174593865613208402183999337386543768068795753328636559120486612836703583871675420107258423560392630418351353658071278352430912656473650289951286531988471930612809401694928823470835226499962331068795277840368064776065081805357804350794726915249140048304097526703454254871367631471838691927904285976444416977104385172929569210105110911475355518118830258322874586496529076151487662408822712782171195405121882518711180066431475118637715444340917441069954659328066352560413470766613763008935855697749789035579588037480170032248861764991390277074052677058456387325061409275816851523207379891472624254587497990656048291683052405141061687775426609426482856703413195236284428246549913724130837527395161017943831558969764376405856680129895266863550819984776045437770052382379609746511329192146357911482577311474855496966977588701612703510140929850393494195314417567921912544410085425596161648950486522790637621353491147272821279518397605997317995069006842858268121096910421154785262738039761252314704856395270037968305869299601698360293580078206506163748238360021389009495984227922930018235760394481694021286673293547051843999344543871545036396141914217303732524859148271869946442239440352867278219890626607153718369094655733839010322476205803662436285479068814650722741830909079571991476156539645801829061708796081489415121112681047711443137413862621506479172209173784128875753813361994279787336160668557643496283506265293189957555759083675507391316323267423015993116886173444176454195607520722423475605537899903178166918768819064399146266051365592084045665971484353843776578238070698226783828259074425343991696782274570849820176156156801997059008973662930432865818473121993570451340540206273434673168962267862421600713531669527729945098441543389649422623856262272963358116809410742591487142093803005931653329353869355789482484727320266660813249121031931409498563331313168595696145656380087662246092653667840871418329682137114149753106100241288511946767240648385600870430700667361488089044793673172627823354455177744526815883696963381645792509665246135560234147809443215200642873365520991842323358408317027569587126192750677610454135928363371319772239016213707635340558762658727124735197909794161203242602964431620032408322652337829334732692164239723408406442464131551739410039702884675956660196937734248671261502612780433939257177836240311822074460392762100806231922926609870866266081985626071679633717940479765175721868539669642232282884697858347645014144196450555328921315310752407713233130649637815085013551518134897769319388226657647639169926602536461475144881330157361730758203568212937473391100158155149271797882824097210636699851770508498501106067661213540397128952938700176023381135996273314692950256195960631263175036070033328858319398452263250459356986472015299995690200868513280616226057047831367044738938085016247913274150914975769088443466162767465186311827697794225909376994852773382548510659092105854986163184421134427103101258036500975723151755572997133992245170849989849895024811264773342828679638380842723267250109727830063244747004135491728326028163619554207628109088537974736071485470025954161012398283672989531201513964557718662815460858414317106263189156832297146178556627539520902106467916429820702934896269134186068639704917252868227861847764593042316130662206382552597791378279225079483817439671658886230528854840848246581222246934400765692954399148513210595013277561228150848478536551104320872533645827914085328399871086577270028310279309721576200794055442282317325853009599945350657596980811982821168554426666029875572977775955234846658185471867109948195970427421837082004418605246835240948894486885575517286809582383240215566633962391722269292994712085063603147426857337474338938320407299986168525400483019248146667275357236952801987127183620342048790689615169298116242655040042376566447113610782288683147165835560284906408890420143464747824971692006756151048280180243946314748265850744774231275167573539786386161696331001319115087906275515882958016061699469540604779974485792093841829209621430322355550464978845897938426021093508673688924870656416359846988551901429051836729547700869484215634285220082012358213236805020365488062474357424626363588269194469317103544284835881182362007934055804825254202852897325604822612747882709659339786039325423731165447768925561193172058088922479557293514124033053008617192205261121349582250316193281088292394924986139716545974638347835599705719030553046713264461068249513948564216944906586556407848634543992539567678204059958638901700828982589178744024457613017667998723247557749874308999424183159490964963647284052290298065922288157835030305724477533001822366724083092956449958068417496914125841793372708133308192567763766474846584738314267829889902078625625096009090732694637279408043840111014268624895446287905165348605145135549634660833892644632365887588489297165538352220713191050455333086945309126077083753163374232798859274185284629908945540964905223519326808376130143682695464421589858522492254443846851466880185314183899118663585745641147180320375010955776359976973090268454176436596726936443541180717323628628516525426016204926674352378518725722404965044160317743432333192753569271811795619407558999116918175843226939228629174831905058223293116140919592260319959932582033033698738203809204164137942162318304191596257216420952463622189898956373132554430126957487169710672489064875167935688070404750353083271864918655960066261607427667402460070338968280762219755524407816916231709644169825601554434098073529703984307659511411803268003544380876533969643264438133675665045957431444127363782705799484667140056584850877017528930505956368708386149380885491179017041193391205779494070349425159986672570347307028707368693606741845582575933579788695213905662530770347956144235255332950012510118065666943886404952552713846065896729596208984301414237657502958288158674898022785552408730551945655361163700955787066860008300170637770044492852140544897127925235098892855761144464131805675206181980493272975495049936305659718714085126796699193860139371765569611858448147871600006796732536403605410665332101743028535773927337994786114762008415416298730060742991402328448748990920734863693090499085116266111454398640349343165603483274301205912607760688455245573227079959776639202401207325381976411099202145349746554967908663959475910073189019694302938900155931478293749416979067728683945857835240030344943312662234389132459771081928938377188080152469131711950453889507065053509988246640890617703890931693110066662027224034827280459226641164911193352548279290965541482937240734030568640493357574359013342206920657422008492772700923255669002917168843129715094296926174108631167528859353771855810949710793614667973302180825467830422796720052907186208660579216806741050068608956757907953683556158883340673934425814230785169966667695194770796620442436845937351127071081057674861077546081856004711915847495450510321494096418229341496984137003099352645387489708757917601126354398177372862969871383318827024454939706709343734378544646482388020698827843038175746463312113574189264766653463139955935943760612585012548137922298993192476540913134983211910817442486333241406449184446322797458855371388356668875570052164760258212631634512054456261860261770641275858271391866770637613524811722302977888316555456999048074920716100273341076540460257174300923337944365082862622327555108528540373977866274087029428471627710145421693168056331980150191372364568668859471334702362690996879532878719420315290985175606543540010236019587050682060437088954548526953328657507839388497122138784425188179994665379323104855510512643926400635332918964662799864320422945495490585130148123416313415720522418575211807339465827949089039278266431194673828264797181203113350427408525721676854502396054863514733550723825154584788343146776579681852811941004538274641951179227965790960178687007270129736552830448646541639952116811698631449781302671297731778345302855492665843946640882511145627747453017573723234337108131779168163627894455363390300654166305200424813687938163814153189349714190159920980016951028264548294696349394342008777931435825532945551217091051397636161734061791829461012863259794345509201804616005259494524120048790765191281877350348030428702917432550069449127906308350816062100614312800639543972980557326889874812198717720086432198452475525011059264395256678936386268748271236331086910584090843763933303913640747772290787479903391846034100180115174852646998273135371518767344672926283619323990944253086968284403435950785773303721254702998385916451165822390644528824672786076125909574106108100840774494150183774315244612886953281043913918687165401811489068224398986982349989460807757089144696333918052979371974621910918792680149182356745403081507532563199712726376196803462982185291525968802270352873486185659555857420929321587995997208679469254223944465238074008771670283393526971015208779799497588948847488588409248677707881210964285482320316866839943602844142655780475164227486700658920503074265854356737150521984288294469511338586258067543689237300572541362416391158576918117249885384414577015465791036477933948105118486403210766348068058954264913216536947711004585839929434269508478327107475143080249562613842342841422846731346950308840159329423600068558506050368690814009645210461489138783375642361453046803852886903950848596485782288912461977224424365815315097678762829048849269709119039372965190872721207064140511025480013101091179287708576458417351721134584706543981007283866990838444963324944214598588534244959991275956771476696297860791253524904367558379508861203110049896034228674696965327743523982970300073540276732161498863568050007298796089743241093611689883304285852086955577091924154081365114409498657252219921624450638508012734589643069147437313818770135443740796957269903731749016769599813241518018232120602995946233085814682992019067988830681219498007236143785796720843907380438175147672253909625956936702048040814344625059376725878550232146542246167287102800461556867884736007620594856201680068804995048271435743641091350019128532106831385611486595108651730742913016215123628231471853730184358891303446279463242331042386484317291392772974226178593392172663265343829267502112382795471142579111845846622643087564685222384384137910822205550254420578636740324786406777913710486442585991113251168797846192079871605048894070437193599493098030710841387543057073551940120896202913135023838053085665856855593590356969645849734438412110743615095997338841781901596389820743739217549543779179186762586111560708752205922461040646984244663146804986160350128082030321175252700847505801326941229888187871443238887448431973569906969983779670417942893948725000836559496973930718272654383361649701402054357869728968107642832990804434533640102315394665863615053244668396642696380676944698749736949150116378276836239747508281705662881733674771681327229341672854682859027040094244753885433570219734477263455627097260154768801405762130732773778443351172090786222491966381677727065213177284173021148922936607685130155954610232129445373545626125829302839067788133710481223298280613670240370547934471061432649900974938283775776273874901535904083214704545276767578048051228537337485126159838415405856631933947013653023917960422434179028217633890580893365482463154481817868358582742954673332108473791362780290627583221756582693542314048173893325722455170624407106872884353005253919685128912232081920054481733506509347527201499146779311676350201794515767084538929466065992577130677032523317779494331782128246080657550246728759580321554205542844984662421067189177476377116478443205713983320151434771608956948827389936637734730765023594447172884173017848376739550258105430012259915407031682756739695011554365645419629958301854031888443551738915291778784799223345684195461204799978545012915192604583662735049843991910082713973844221467765265927732728025482477941880072831965164101607590092528934334644716486161154171832981703256250661046127742106796067754240791179678856111435023630544892220218751556178452562469707389655953716783444534550975346125321431357561468856785764623864191521953030188363471622483831855314995646536092981871210743967885651227185142539316473023802457763040163581328773374236069499662536492217985219867809416185329880869094970924392652353547041291164975386255832619087056816362085317937385959132038713377094882561861410010855120104178069908634926306601425538007217177218179349847607149297773437662142597383559673616572996660731550970733608799753639643099542608325808755886918366560290871890279444351632839158135161770999897845470339712146027447452259616005739300259773704158196206144919198661779310051892458848496580326276596658469226143138674932267446601438425015077010738216449726404500755263300482828509305693375696319499818243293981973811412159656715339315023314661454777932413105429864568801855114301031404749444769277777914092598865726145356768294613555495694430665396470006267291942020752459802240394529129404592630592119885182845834398842745781776940420785278190460698243912221439840393248862397752026427480296009124200789166012278617082989361738006283257810073098487832427501986481319597720206158167349854836842014395336289211635388145510111448949004604432192325248679116772597047882827919954709885714181377795326056073938202270313454354380232349389502849278615320746208618074406907202436987622015968050059243304569892685373100624504234580757091416518616281163831703484082493775963222707053929337900779514839985038270842665033863083756941318090045852313594150242768770453030300876545002048477169892899084017585914117358223074696307432761222160204778372313796357497528925406750587177893821005390960413592422345234993734509293724566662032364326568807668946219545172330870361640119587455627092125185050104240608578269704951341204754277731935585816016630448986491000770978992487148581020634322719001133218954690627236874082555207370220132941395959402844267297543186024695244948869446110261918674808613999749215358980085881065192947207612799420698794059503960316770961534600346673082424872132582958870325282033877075775688424403201932772899495962384179521880267665954601235895515637365636268037918075988021309321697905712248647238877496943535863447347642113039744414615458832705143306034210780491689204483956816052635167782391627530186083107826120647719125407291112601811449602825609485060514873536996044352145905385374995668079564498867229831039428268559631872884770037002125342614966136993650043884751610428789785508719582091379109382180471884549592499951476945565640608519672771794423791683188053691916955716872727620847590875280783850618066218384724480851440766037380819422640878767856436716548764769379788230710259064966482999084499207076268310981550752127601238500011236689891252449829213765160623899603110158580769201069511114883713439355242388881944871014107848372896015133439070424636490519846337543900390313355491768821202687131078314102093631437207381570138995710677582622111099991423704817191790549342528734249975681972628103630534366327707097839598631232303914358291924735978848979992520823732156056625962972210810868322038595277901673431123673861997868427889407623008786182077041843465420759668303352998087847689243700516432026515913162109552825158458566050135045138713938070818960041895263913430619117584497270637257935458004032217907191241170502606316479513725627927703683727996683189605221258567505443367527399647871556323343113698269546771943909580642093072029261791046653684544524961746060220710999662269590489108661959146735757836333247224583545826600244032467811494670870986143572366121906423263756572126304701040414102341605781206448258160345271122378666099466497301916945669017691540924728267641752972747148285416032789953480259363995709476361724702059883015035515253817083408499184836391429874472655142682304182241441262359249412185205773212224779627586853096884748525814260658920308132691672177313371209979921163812219064216913154467086899956202419076704179722707550222721037839254586741134147131726865487946973411992960451051984130016850550234544952754622579342711534764291290933529735703540061194542902749104385193904382196186857672697450511702111169025530048592781193840033476324042361935781314612958422182871199223932544307033630295244712243918084998394711446098236336189418491538327820738249694794257970465203235691265432643252894039063733961843495736234720670261499136925345450580030120033940033090467850378785168474598606325299291477075865254466208395952809686494598036239578751637900574341017041233890399474699842009254883205202459474878550830145705897606026581880510968731485129435084150320369729047516344152780027237385266353750850506625095808717001199371327821494152996129369318056970889578673984510980853570060030386836366858632303075962612437496636738995244578023026029919914827257942586821813266040546163564321099629249076608106010628662848727406265582328230278273487401994701341005232841545668544540270638405764745830310275409906782389585914591112060017312695982858986946481681456082540758229677662624561400634056728858596925126806946532234805182451824300281709064992393551862032125708043010499001575686762495812192626105956152658014857768841218671597312979484171412849408188168163249579579933540673129155359594504180867796108458336146978178078553246748261559471648876448906244933540298045332953117517160068763209262008099538036425751345240728315188368382000159857740081904327193661745038191124401532625485399468796782115254562282263907275125601135268827319897711704332041662885219602838968711343093782637211083087444359109945237217757487024332762128519761726656632994258295771291432686476103084174877049497868858859633853850520698513514124197307854187505968542962732423907613630738493463605510326325011303381467032327075089455093771741563816323077309626670150785543043420583171510569532286183557665647507660319661834930502221909727663970788978521080235116722253449796245216733915739122898591662079414736429797132226991564501869191662926098479159551132339207385957707402552026395769584726966031777686332669205926589367576091045471728989312889084196334230776431546771959437545541384986388613556409121788976025474585344735151672621466743422340159280159814860345902145348173868445489227249362720918395489705720339533306883551826398719245402303761123169134051758556549659540948665340709320902465460241908565456784895483747612419253765360760336256714191572043350769040527992875301238363713559472953647941841844004919654798062962597089687403083102735166905241981622328475083162933005513406374303551787026705330375622373081199196879409463026416522164483458573688664472610855266231163500854380882898316284310584150479428297251989052650414167556664723991871789059260532961330755495866205459049226261972903332796193373596342175815593494777593908828856595282845644787290194058473644388511278088627284329003855986622360176882563003321494616825096933288550415843376652546304357271617753350488282895468330353823423395697060105435558893769484769359810989211038108527857654302389397968478011082900677861884158107192864047244951691159046464141373315837156713198433965122474954525036009103865006281128571028229867689884359508952544828291095160152043222435971215080456894369649530965357927695413081655495077002995626134043877953963765321672343897226418296918587375750616229526661608315542603207720517325296073849416142963530690331514763806965124715036883031536079116651300307906179157072142770476959966761831971321794907919977182909555555139606765371320220037187416269125090670117938208449799499256001497837924877598778431673870741493928793173158312136437987221691322893508150140565265847120372463461924467336846327305899236392739259215895520953041369644801812881257590552525106695884099374855692926606129683185492504045424544995167083078435147500534981991299098472352595280418481949926466305414553894046512042938509462163877722918034981248587946729190048034176956667307537969756949906999475486222261561282651284007219632344263537946097042102590873013950638150760180308836042129791929149158939879337781907808395360422193979337638977654421487044847396993632226826703735885789627148205567623667184305117842621769924802699704063736626787428616577872400365967364226062372018127159113218980943065560772944607727616804466304959750881251659506036500733825299969028006892541064962193220594156671735156342946990202896286762802668067659752096401951708856572710748883576765757671669210720376312842923403493227272530827982014522668638725879606118302025512396170754097722351999281477547069782139702493631291027621756870086396020071713498757970746673225880761666053253369048597363546323448947491164530146997290646528232680285201382331409683237048397289712431055904675666855192545846739454367552417638673440284096919532845139299022685980429331279234301536141455929353014462346946237076984214253074901498515476631492924615119665547864135114554338401499513901049539304460175089248925897960520247144230554208319024698283794072863350407813582658979411033582291149809181974430039337277104086446539863371082255402832462569930204085102728581620983903090924450615254863767292464757202866876257562291299072330896589100559489616588662615825216230588823388383313609811819540058207712764111281530372851708314601281403137471461854084154771918431126725369930237798364772419590060981155321944983654399567614222068338897885816882867811120786091137548616808330813326745150397293223014599361810833286570593788014261816130357506973858167722589367267192174716746391793268076388595002059652989088439901926619148873595236806947851540603133308062197364440572390467653863647324844704869344361746761758417085637716375445130736682971393062002724228432411014002323908645857816573168426100959155734761429985485220589771892342966827134348639771391456169231054296511294101323425146902855513998737871084905508140135976876079775011491819582355536277380587704403255173311300457344476962060721156464961901237275121173783039361475153906160592996244372651478704201731317844009940512645394050727559013674743655402400558867101783950805644645069966558376544118427741535967840773026406497144615579364982237574197109747290918155854271268633475854992636331795573308012303428099975063239486569959949560781537913367005074207363610816005977852595630444901448182045009065483414964020201308246300610129115106047612144130024815353683814695735091139968059763941990703116316464322468130772389909667750452213101087128188106884939282568096034318417022683233335471555728759457112876821147192516175086486528762705072361155067665082383013738323932446101424698413923436516597667718726231418524775845650595088925421138610781625473074150824989931599053990191231803491778859232876454332534727675516638567494869113643902512250575676405184817874404272818162812461432834136195024024615149047394823543631335537282471105659141382352653471334837692278358465383954077421812819983299234731952042121912238225190918210630014102226834452055780472795896327044935435012969956692801555587891749797340920357058179029199317000621878826609620406744334697036441227074961716662538029696381921121248083545146535528856357087765555564175008266323466095806477795497856026267129011359233605429621240604435692178714371761059934272709107473718254845068918154771998802638068752480253093508971870541602878988893591195180107501833363302996760572110582987557143631805409784677763740726699707119862387437399884456008401700756956063297306021949284763555572710358661222993370657554520179375074461849186783539968573809119228211545134016627375185335113930749147617507183107396562682971033899725485858960063451443548549057155159728936153250721887081793358326284990819352934530931607282272463965515146278333069508657820753262040160646146594658702339965428153024823151259950371466311938003304771589118202799179585243507690468456922213020657977195028755986053273874684644310732819874799599940709797995250030923846151578724040885171873553070752615793223950251908429386539908952580671931672310345093800532172669630987973946722223583731845460620729485713669865965354741518080453011164383164885839515200557080858956799864231661095886907299259336332640457749834262583160847180904307804629936180636428029567563224659830420154889512657875491130528296960437051281495326164653715540558149150497725201376312242456693322969876218744499701033918790093937369917952250427621320140053241190986556113128242904973918542074109123730412105767398573301078601411625637249915457708806175680562618887169414653397655433139972258291611859842074631255473302174714943780390388023582116421198143362884239464328886012171818453500494877323237859072059594700840328269435562294554267886657710278214076425038791390528719306448809169840096355369090570051508164523687586479862095155965624755929005557078759954536138055422313991793247489209117083583398250368135337027965103025907740857904444349725250199305203468077305387098260476870468202898598850838199880914977808964138968904770281115825154537299596089235538350541524174770594890842567608913553524225089012290488815759372867731610050141818694785655776730104671110352502233938977637381841913393886846237425918119774103525426175498045742260629154631400959308332225267238613454620456086734476802775337758141525561783157071256281172399670478037361703298086276296133574338409886959188655018864316105885729132986101865406666609808294252104062613690224848470090463099269251496864461480137248819917639011609103139767943607617342181800073790376604856935760600663550819602108235935286251619572248088411249886008986758994032403005970477093821456862809818397161846513428129498582816962783183043184612221750347241264005400054751444619505594823749732592400214450278869260252524526283212304450230690510006350720604108170685057932176683672692912732456407110589916804664407780117485624651799882485736832256409421105476369136073713692258738504716546258150919453100700184274083688456135953874169475995410752421600489965809473165320238056933690440591944061107140897009920919010428968229498611487979878867192041966013082978395718253619832984132291481599924644045446440888586459125811428943486507309582848698057207380817706057792243125134902534953702825273229754175305795759731194930312632625989544277043229786830503984866802653175939050176287845128734595205323278066368237386296223217783415455358902140680940924085209111373257554398890150641153712439733955650107233391972773296270777186065208307881033299488831319869739902506219881102599139161347755477408727891026853020955026276142109583894443077627360197278774299527893165686372616714065262448168235681899320827639851437816337327836123178089086777193862330882063973546243505931532311879151667169146246558146564222059496663278325009311583259853877185122116173726515647244844620130919786755223423832831265420785307206352586646467364422603699075625640782835742035862932467737918150971237250138117546696449024749762838550451392405463215378163233908966501951575532851396769445108217288904893562626486979869945791768726276359931867926174669404255237860970233816483789810458281082863030825969049648344284861994238437883005539700654272612746418227004998364449161547331432097824539716375998759449628768202448879653407676106804081835396238932268102631591329041878113378154724495445295008548512124830187206319555847608043448169958998050299647684496873048292130455043960039287327365960237628939335805692289055563560275459328917938608814654093241695941730010337474715515582420138551296164267654637592829644188906839035436203473431584463153937595428140790937341235479547128014882190114472909546162862407324014904244420803350034892489288938445574814995653496795715258944039899526918899336374812006450637524938412043062438723197729456573066407167696296624007338302147839576466795253938343415412780702628025629580872426571085647541445061249051139897323376125279241089692435986297084665081519471880643161565897979618732281222318665732676855307095681494766135985415847789771359669894806614021914431011792405561471380618543597949242883919012966831389980505835769808255560266433876013810178576567510331577127241436501065719614911312819066081223087258812119709421008667192348620702957320486644038595094482147060083866304138218044891117439293284420964271385701816743655463875025743012027710641869004302297365354831716623672429038926184319732007659125800607966035388134248211268583539288973809128570936719435573957133339383563467714014545580555358207255219189745271147289095632863931008654819384118140544460108754975535787148540521876125216897128288084722598559654569323607071680372297288287378966005661039244526929781879271215416948854882307736860264436750139883234284295950542097191059973916579027722403206968542614405946493700429552471565504282921509449291083667560901064168145112591847061584529726762646218884883443137336827476710609942448673164888343309098403882637799112007931619149724960597555662994431696984484981677028557831565931365681920791572083788506738250211461502750988622615848915588156501081224997803689246636512519967321331812794883264235232825146119643291897983953932247625180208075712354763164645737355436613225476350778864940361199941670587416553606199524868979014814056441195937715765657878787371782977330444924543929738148831580970147373512625080083277803680279380152771410483841568903222486798723790492256643187282580770645905701019716541480464854721507561744934902322791612733671609650288534685560739825485109854518600949138551701634706360993262076810313249820447848280596671690187333944850372501023767970774987448379837415949330638600316358259329052048900329970888974425048224334723764749207890510478202505445745102585197524734990708949941465673736144269055727177004711372090441420427130957211311011313303953350617707313495137279101502516023557148038463652999858630669874677640703900715484121522168544843111940554661089511739953277206841979178300459480354686483692862876357830113663937047339867830177836986054905515761146031722418889469068511355497824033674336512960232100943224205935133531173518319869257687551201469821341274606385995066483674144790761271965501996416838147608526160912576554119304026962601100973658458236504000769439366443337799249628468232397247876034764761772362221460776236538793455773069613689183722672972261795158052673583642929839158365726709521251715755263839313231990754977937986358849276059503212891522875767753816092565120793308015831596226201255468661233812964188597279312810291846392357081396710359307363880946420940704571985051412451472916354401763912917946203409884167557788449192286931562107501222656257278729365885428214497709887867932155991005031606008735523439555761159967625088868534653279366689848534087730970727304834395797615299680371722100959632522958853646313126657082289684926823952859788447101479113044465499893098067812281884756896961806776506855913159037628165609917765201144163536918471538798308092371841621206732764352359466148293269957709732997443442264787852732315153443248571523185079733820847297353520492961748764622932692419801902790697713105153842436504376036877636019724521858686228082740654886798228769864901540310072036726993626717051258595803260868533467804443137757966176364412815086880962017092626771393837499672476773554794972420221315570543401658580172447962300627349937057845161588941170284763370967383437365030919694662311456405516370542545148007729280437300249382971139546326277807849676908442993707052897557840486818702558900986391071548073204951873971535254748434017612140959370553869264504935656197178139300306139465451011331863573980173736808610738399751834324003881108507988107863147656508726683347519127698522737572605545774295451103497989959271189186569327760198057491956964750047082181436009142175185290101717105953590744965802491255021783103020645312518174965039815811936982650073955458179170533326597589719423866566985466629591758801884538993618364235131038075690506976865176980490687432381028872549803114640038121997701200632157369092690551551404974995049439543386858215352559651318063853331265966517121265506565779609673009401790223164268672946063051473460566193880087461272876993709649044079080630652750424144131197300678158916596962893841579947959767445867161019927774834505267409724421917784749338210870802432091769232777650097011912446863738773933537590231551861483513475594782508420096457145191969749121120446311495216992797289078360671368300255929344518066634961530734882110180930858649837154222801274561725612395191737943890037164820145765269807249106299874899947486401562112163585733969272235814922719361550516051830333514949733164059299992181805952298402675723173365557009315931576361670269881588468870584913688153702249679328344123143958997562231056935689172198672781111885733884019077283356226954707226984027070964427957781030799416943966222454706131678970561753316603170944995594806930506507875611822505936842691618568165681853453867182991568296970146950066209451205018747898539719898934009829966744988834723521281863124463846931159218798429043240156332172854725888586942681362041866542645305589434366526681310667160549114087485682846710666343651278904846484600267284748680480862998375339696696844187148940373319923287049775521428241127496910524827197692681458838082936963521426866721578641622316205189419973557267073563618883638685347285571114094948277382913717211000785735007488741380487254316787210867575045528043864686942194224284603949250356216346546410629366920690390487190506507803131935016607231922542151534333695846253139864356337757595781636409357257221836228409159691823526082298825497683366991079903421770572254394414700853937536490335291570054218080829598037260596271737954383289955938559784723290874764382247043530134965359907914264857494922820838805716055105991367025922561968192859316937625085044541352022062630214203037506131272260409369114498480270271711878793988765962891414736456564430767568790265895080592838196230804033161831851455345751968916473513281301682899429951566057738603115113070298059450025024218153782118917865189397900917223611680150725272900813856858747565556006498586059268036218381386570825860924186974052347637098423864214554154054616683663388070486430831224193203139235135688130473666596094702418341559656457634555970251550590234445125617470911292207462676779574813270704060968851982802527697545502418729592627564662733605456236957211361738563003683813610224579848842001118472546542318037952933391019394319404498758217536819989134096399909986579727730527405057375190922902496735335299517057301224971042780060266402163421182613039325943609019278140765648685180070800675185631529125592608759552784710260313798792968479076598679814957077350209778339627698123047662894080284509757428693270146770088950444314051089940166793136661880599813844645370881473715860355346901849471395226687412632126035276865798462939455207101426984961705050329625221060288627209314010189552286203016591374278318977977955401769853682492093854842523398270291853641659238311296062384697242439143811420470225233278249811307053615537467900095781710553333491245200971417856795600297858323094589613021084400164322136384289478857058731481205764807385176513659884426939865900632760492478654705515844537212641299532634589526000376937756059907670621915466302047096117717139093146853895083775180473757711157475666085164338487876471018585354704966173471678667701823797379851480137151358692789292617863725825196695760964411027325126462016199973442753628110512185629734829756298128641225223649064169375854632911779797335424195180966288531314346799035884097831749443185013926670864445016889019999589133882732784279675358277870197143209802458102665757750437080743862438746093113732642977501894089320418460714783120330094431885395345272930133976599232140977817664817076121489959549774725245749576546621404589062797459339057565827121927981116475146756228442799341427312150231691571205085211914456309044437486148957680745158033434704788322682953950153511665227428201000675755683790340766427360629580001868068611441849961603158150012860623008871557354210448302105955259454499859600960720040390555279746390315355549658216476076318736510652745871662361931645783597875571916315795331634273579881058490786707753946079869972206565018079103395544677568073727419032324079348877475618676419037337168009082932428563394228104008279485169684800259421546516797154949374572311870971908558542396201048203042031793249298598543042722093528822793584632953683288112690890943990383947110470488275489068734445160199269280220870498074686795617647607547886838308829731672964533090000102458724312788722734647832086411848942033977246815194412745112528543411318527456251075368275733322471078530921282786966538895285221935090637659282968958911346115700186849887529779514936381268424674485853924681883896613508238303168120434333383499264303393479680751822978124557864614257039559272848738945478940634307465632691906961646805338737695352675451290098136120079442188827316590479238552251353751112118144710735801334817611095395054735765911705165603411283917847253925946452262592879903332047473981222351686512739935916926176080782603948496258664390303361602247932775945018860277265670039728245031248828094101063343195835634513110769341260900218995715541605762832044079808097417896805091559943740618103093008848974140908031759220071016086284844596258864418989093832488219721653408566074165155543421016397521719673226600030614788329003167221304638597624624509883035298555549920992556889191622858641345036988735709057010914451906287667785497548484634409637039405558507101387413558247898745607535571667141810961367729412198006021279475963486282135027844650036394041468543445656360983096741669270788530868605597771840012222505458704702179777741082977875642080123376225718316594177093638452620710930563307131523931616104675669108681631404027764459651394014089148868131927498656008283801299477915339451100368255115558588833916637702482477093435478033946587812617058401802828325362092624375691712726987309543193816989627465030511620440667116377848975251769545241887107372685697692514978068795046948304266859751993143582320247631459143357484208387375842361116633622233038571160122868883729373292763023194599911604780129883851228513120186677770424308707513783396669994991471691830413129370864830736038872769284149713742619847532207069266954923125270307902499666516794769887804213257369871529251986057303278161227894613756923861757566722326184427532978690088402630847352427734004910320236325077456570200160994174724989048714137501911356427092004920911959838562702637009985917658827529344354673808681871712893204460680601023855552307752068304324587560761125963032785727744784191507964534787632169854246725667464335822723427223085547170947606291754120053151671100988228819993133126474001829784992767580417585919741102773193865611993376923178610085879540277365704814936137488796745003683431522509480999933264366527117907332170459445980984264823346621409657647990413233685232868632792563421369656576678283290176494059992319542982606211924228855433838813507607538701473393048770378631007622821441393941579925688433550903142614153514508516826524204899706471665042092997004137007038912370664496692117988829447563052636221398461196438860668003485605024755335429520549837482459215290873394038395081402607740112639597674199047636653895354355827265732384551902890602107480140122257438358031350865467954596609149959416980488887108536281407069869083555617413693242864887554506506964900776433295149598453916268322733668773563623014987725388573007261434406490482502091532901370861252497524067231443281508131311529076727498312574074166773172193670651866056226602293520457382936608092854511026494961600076719193338974392582938459919904473274845252056305248602057925612334958403737740505548486545030691102588123201955839895892674790470145160796661952438831163848366372654072069541531389458514780511659430261081766245408001578432081855643032567512697403739656141648962750157698372000587679084647997135800512912127816719900045990180738982696932076783964872400862934417885237467793868700268877667846962751302344278197976997792633364400441402212465192301472570774767721769581851761082792709333277390271038758221876234315789246970539330755444162276565608975162863608944093517760592496122472959283333749499065330608944937930187965729733371165950862498334362963677303535462169245810973440566986282070791770197884370030802394210633754265975311528376371440696401890384016653501138061718506900534410406742036427748005902489501160796919920002978792366406124250899613528269970171404495849834803927142758014218078511624841403193645332904557323973851687946810375762011029607472222428495311743868189903582212739708717607587150157652265349297140959902764825085788612207621056526101317457988926803905181349397919515690286044930553192916418410852424399682513035492030871106460040122883270042849221421544877117434493902868875132900943609032634208075701398465241344369831411733957682327056732087194930177384520945259191335376302837871123784491131833738970688307674357977341629174684184980985599290950619065918171770656768994549165687989161647349750053624362410990142650463329176154002523257012673592425962372266269397932809138365979846906738160920510661375685756462811086454414293168180980728057005620375002678962906969760459438080800101943606033115517677711567869089226570507822125433936996109580961939248534051345540729300838671741343585596419496566581510277540277447109159961424701908047959475355574312145900863493757122872062320702638936638137497390421164096115793470435215466282225307744711260505145388436164761016402768310756291212675013108293533878342679977925059718011412408641666174665929739124942076641433473757160057025029608235306083524948359072803925813235008334066198834430522651442401931927158908863392539162445756839419456730863108130379781959799036532744391793956843008427908221431019027785205700006817013914174089649580686139590659817423834623492579116041614567704516957412615902341739620264851078312114766383749228201511634002122079925915975848836337067421755785949746107084528209081800588734662328950507301617174013282415468334133910516094172218477934340031695861310231441823920766786074952000563789524755193588537259319333750856111565503783493682698286145713136162999946435113595147172549302460867155006575777000254456469268951987765076027572043745116898376896740843689158688432284626399098361398370815893677311433380346784949048397328113854080224322722292875246090353947904982840501410914806934540213992017700331840773044644164529031540895361383627457233123469950665003917924176375047762759254344005176760298165027592219763329090087793612681305194750438235685627141704514965701297431581478970835724226189855067509869119365721499213045942712831732686878108342179827644723786547986100235549892033000085326166755308281636941562904123805586958147962682652384092487592587548242775944908806808617914958230751610193806676128729185747610925991013434874859328478361448122613659776511250937469612417655302412023930991414892587237666829200417536925245107255990635006035730673784589193121825701748986153614282665355822604477576193409095275915646121773651145587468971935575621415122352964322182608940075467801229510608021005803299304276348481371177582415970505823425982231738373599150205093142243125033164345487760485355851269279638179922313327904249606458471581094908538529527453761316650344470405657664268109494708217906512383041435776432173998569006981837421290532024498110411188404711429606596765276768525411892449401260587993414988191996455716341886316136928489827492959351680926879919995880851680149887898217583129229890958210349597481790610201087194097158379858946458410897961679812993255044778200805267888282940218556876504090429861210128321465358416923762643177377324731735888852132283304656751063238877611102872371713524057422052245151790784559961415529074777844421984957151756269933388142302302984375251093496248665179456214062914991940955943010652356329992826698631899991903378713510941433552241839773645597648522239628128395666132469190890352752931640698370831844800288992892241638609123827379506158441241818997913463742685174733332542204942204785964060529975222229587758756995709870210953623030047534389959953234127784604464506342908613973861167059351846304240196342408980546670326343984980486059309137665072938083605359180901263325172585455379549147956158807095084504381916435857613878994360898385794497356746436410737663343413778156717086299538152265403863529790950646975749094347554273540943513310163284719968457492198967495295895850698986032203613861990677713528125769707731092170345237312826376867705332249347127016768602549623660458704510920210402422821551617076483322183590424606836300130040161630141562000995332146975925875318077430548859272067421707769809558779961798825065167363461111957560333077870518270895702585045052782525615008377978940734079230761920280262341486563746739887068860858085837004414763713005335417643861961336320947446435377787276551585497536977779372559247106499406923579922466363627769785742574673736074667111608672602558282603536445990775475956606612457924250543054790658906866431145779312700943318098755997711991782290213477738096973089085664601101578438530718981116889023912803372818528544405991530057627362060953666417683460544615418252806092369236104040666300261216706721356092914734858470599079074089387578530799720453206420400148073093259415325364955867427221498481761303497819448560924852969412159821582880407401655135903770903230130750505437548873129276853019223336203777135159037419790876428840974257965815375366881368162985107391464395447817289253409181947642237591953234245394828038181299881490563437967703637743934364219084991478509210034791631311263133134894816226547831580872775481065963540465256418302019834356004726772296890320974374037373731101165501927504921781627442220573615682270038305817515173054438766509855740887486751088782510387565803360741317158092652189474010902512098536670271891089751665336820294113287607204569052199171514826414809618687830343074812424489215861681459162809341487339156397552669433844960351002283510823123760387646907003500355905389385128374572057750422636812653276118596884937752781055486510781458690622959318720801892568515238559914708305080043596073242060555643364860759915194321964064342882726271183419981283541043130998211265056761686541118932884481405657349345134146999797499883283805107096268572952594538037619268800454573597175407016027581273068129550644464243681820438422057550873107171671201381622475147084438951510659064204466707579163865393398021188399238322481467152528957428345020076598831748794932407411557065277655439998827965248167880921418125987353057841934599738871934837195239899335008091553882347494498087457919947750085941561031451322865013949125775686742848930469213581052229751867355019240344343831691032310827120731841302138748031996833797628588602294916640749033671710161203461716082882576453037910740707025776662509313486387996890695312965895069278320108878567974480435549500479588765919845171068669749988383383239191475128088448403457779180694889903409197090167588612162853895029675907159503062770760961045587489863533127072029036882212070561286860394176089138439703270618080239189606492473979031644685963353106992373954791179284535863415674070447667518644317500458003850649545613609778201573504271714109846664221100318826756412303060397236022711194055644085062915882812317145769595317532029253887824737231169417712778545267015209365486709377823453904214710915031600633584232331441142495885249133063701832939477444881430916616835033770315110765425331086530298235278638218548510740193866117325278676042616359751540992289392950799382395048460901566019646549462189646898292219898724970854427841762558502887471762759730154072013640426119884527299153262695428196821744294450262248659192474077845466232398654780620896937051887035723170472135998051225234711436725179005057641808556748404061222842531258859572436889314225875773778809715473351954931182352760512397064760417523035525852390282317181208114839613208004800831529011184620373960309041221059828102359533761631034073102757065229293990966847010614807458408320395483859810256379692472270680412661556540919683807067363362073853779907150637906997794879844598673560889822688521687233087608067456579551893593739621930479045071291830927302024454807902635917706303676975027261141968011856237820129877293848825864781058609577245735699601084395904582517244368312591810855136134765974146330159499073730324835518203392808682215317684987255137325552712307654676202396141209020689359978022850761788413048274719304602027073288673020833443960198757708413620077304198127500252662075026500200408505150974411237272633583480344706592198249508833710480719520826698552216531131618467763127343867321496361830199198385560706727766641103225779014749524764367201861683453251968160009125672882913202898854081927464947194921022765389077209019631914771034160682667524528685310850079662691926457681787177257432414564528463872887280346665963995904453371073520798757282922216388763531134187793590736221895915397188643102529461101211324243217215075880360359577658315668401062944650952428659695746702225047611381181234714384076737736920708029510219015071273826076483028013186579409385418265101452960574018908940191079787071738144414416604368532578599021910889997744282072721759394893145756466777850068731493399349478420457066315967208600219856925208342442558464502904591696785451544459990274187836679822440723356501021525498516916102172543169790674072568904583509974613275185904818014049088821358534665934380549876848300534201795792790390580573233257261411149641685483596337507476445230798724243498564839489362059570909979445784374744422786730565082834887161798613082002076163451571333772689170677420542430524282115745010022432063174693585132173631162964225570543150266631554323620412343632400926447635563106628303848840047702729033451561171529229493393452352088337087644521592190820575975884873402860957298749189654269724011099796023967217265372557743837475566008660242477977219222948331967195057605433417381868530971195459418138973401429499254928248278759144499282492958511919537847773329589534752492448944566899533232646275253726260926610755531509167362518641201634630692396818314776612445381414923580414472536943083073113162564965018963189519442668917280555057216283912491390535851300737736463237962186224022250305248392269892008134799138173600622241666445050539516086726112949232339398314231484103955560747161703358360784883846846317694213943484364497274397598313707349260439612778708023407870776403647014722228125278684816187879973007549290562285470775868960214448552838883710720083274376510490926761389232647174042325941886583883473289098528870712328102095620928040888532849806381294249092058331059233949426451557605250308309830613874524356044601473962192269481038825191794175698450840349648183737482789997867503015753981185870275807733963104385682312508801931171464501086117443077045116006226655903442818458900563430980355197636741525967066409047099256587818014073908179597344900471306758383086745194030749038331353266612704417835113815069890026965397916538072204949257434314834264329686726529935615483264022428792407275299197815493687141008230316584462007288963411087814694808693571295938411434068693689498736748979552495284694796764374473519221907503527868948346425195111542899115492975152403717649741715200879226378196816343689521053696913323138477284088030866476786545290286141454537668368106898619652370205491345865010586705986090019959591803274433075024059095615494602431885374549362861306056098215005737059937789469907978394951347651537212782303112635011793544877811352346644445786271866501946517448991254666688376939079837551133577352837875056395735960884981456757376879344061453180897540078742190044182013492861982291959380380040671811702743864964459610817629551618095675740390024878050292951962517124183925589626557107595121804850229507862683856528193647107906390913459170599980761371351680123967787169078672879957016895801414355503951031144275116612906744664647188593188851318623435839084866785625482411940597777816048442963748707527740091800866757829697832944168594990057275737694168930676546266742996746485038600558769010132587454712943775256965060639335277182800851692160983602695288439189189473345750660392612249151423684004049007941341236446157771852593982930022926706594112114925124313624347574622577415442686884337662365480250838680360238863862603488467918999626497557447632678742108047256688287843144427171202087585022783690671432842492490977876496929634004212603122610855339538952760088420920123622964837316751139443651106152071496439767979750122829523893944057309505013137645973298052845286388084157498451699127958630887960074790628544835032713264384488241549840665948944698440302782269244057638269322590138377267659757746114777297477858240088413483779373123232021616097748148410783734061445570132317109445151603293446279169109909231024516799340377458236405900030824978454898091865429624887891750712243116010110802149372159423711796292059569142762216328727672645203275840167407821452929180973837889871286043553353426472950093576383659310908193808288824873272773573314222625781437079348084405850436863534956955676955816982720408346743681219628178221930273059644989109573981968575336885386671903819292983584954860468828860870425294845955376795426528213488698606315864702954317253877670259941404449408521583162525571258070865087367275165795170403110022903875537288890437568591968963317464558679435476605822454567714565364224069515128345689103288475585513222085751763847739015358900697139543769612704152879205717236604300845302911872765790309111940841942394712128631844728886242921018510454157523946393984311639408983041790120894456008328590163980594935221600991447789749741238568635663841336250055259717140078172168251794322606526206661096347194748777400373007356403312771444391477533390508690899719771885987330359338669927416008638775205590992516887101141773744968871962671606494904576008615509066268435804905528910960185852345118070987659448127527398754348566696444036240800942939083025945669736898723194606793289501153230428048200595745232070801639234597393278005158447734088834705827246808997224872392545646646215649178125351226433989037921865909843218987901282679018308823846853652043072872982814794805380901701973363500843701936773730893767736772252000406151435356388003459980036883575310454584409190548104188212926309999868678195021720296592259893403123865640646759203470716466770015127089168072304536448321493263791226070862911881360062662223258224234016995267737856164816694242333880111983943009716117761832253043893039982196422404125438186316637980055940836408113890258983201347084195436677322126742298189309797778863541248640662498563958433526285388679177321550153185448363803246994382524439192690463660085473060301051983925369204466516987356335395829657579534974339788912436163649026244109864345023196391724865061524067122111215855809375870644223435682492205459337934567284751514192107343790380500818833373436268683625017122700513137022760306804889840068602187765902287191637490823231449052926562072719217742903425646376225047936880474806868098470658061450104934982098345043621838300238369529945883010755469788437462156832847143813347185732298232324794404265733207977045209080062681329290162930153736295627129472242206485528326646280048531810180103957916544922012976708373800493439689436874093583572039882178233731625981596780958146599178895090438336422265637548089443532860181279262305542718069897627023070089289174589226462953295417828573083402187068616266834424359807417448448699725806394966039755649253449379719619158719461739449608589575215355325634738954991673215955718460917403721496812708927155436599690853161705394977953430112956465190754308757791577200278746640538766158068125621498523902932648537029820737173514635886018327377080529294422298818842637516817470930799666486880331278321549323736053218584246366960670460926944597752877013480132125234938297930418406768415507622645048434400352765602425506789333618137498195185473588868156944246124290038102019437082970666823602310227191486706578978566105911616187212708750697981563254533732733050722360737897784495897112957948521708407105462991637437660068878853738483096300341243374811837198944146645222302880178677828700177653608111925047768353387326605058345503650918103624573463575441805890508140693694539502888231206820482515646252348936886847728315883793439008731755503102987699022284164685596927790484670839408277140457612138254151160778483433888593665711394470698703377312599346161457712329850560266778308702439652269376150173401402558115971475548237277333921992214675130191133268053452992179481078915431933970915193671558140291796077783484985078208931118490786002258899152626334182399660531635759610378751984974689966950500622213238417818406701613493775165011792750851970963195192316341431167261911533062593077887929398610483707056985965419937867754634993366488850489594299887041752015995036305688091311366526656595628713537350933006213527795062386970946413644670233533803490529196037784789143606406256177216733402397051961948527607743246146482687715661862810727545901745571677102728988961815457911811807492331734617960022484950005510777880356839759407376901201112202328753594946557650045778664134938584503065776103657160022157683405437374219165423468143071222984288005655587001963437674838520610635816063946248396664776338116959097754745460975871982225782532000966689462598017594211858471638208499663609653113016500055671653035035027840665971762732619949628641616053220142350683050590704396648218075599759659478613161715647926565476274696040102749589622431960331408978006706184138066915734749236276272685098211717847522538346525245192414251325529558281474193802694772638371435743284168956119734122427217143742070075459299599531489525659481900650815872869354406685275571330317573953601824433036524549342751242066441703754847476211269468862350764069410030751166538549348834910521301620138767089608649288051511585753119485788097714576923245752796156795414635186172667802885255753511020667446404320225038885515393342842025168051440913405124482464031142752176396879276742965663476579375309851013322772281914468084958497352372786478523655798220806658984696213089678756404218228949049869196173834002898896724004801589128163107078266775403793206088256672749579144017968175782835512602769443716426479083631012276175196964353150360565132727001228730705098286359270332083886856576149309399875303522010912953828155293268772356238615827916682606863341671485123892397611148053002322967080906584207133001730328346723188816502972098983918407359250475933960520299003133538529148452352802335766410558656148511058565992316368105896579205321677516243813925836540929963223338605401471145524415091716304484419841604994571575207687329648882704166813184519942944843748164805446158696647522994381902050666274775990199084399175529600259295440857819594293418813860763412887629667717578790546209448801833936206609340920423125390531377366241872894363571608121287117058997600090437897273887712806313921941110069586072342136872005340728769556113909220673719822195113085042667434584950221958096290371723565884117631598019413929417588993629126978017882518501280352132722887891385121590999755736501870259599407243936064251366324279130700521601161267839005378919309569717155065437421608929819083221086609972108241095576294932661705333522472114674640639579290291327974015856348074247544593873667438541180594301462701862889415767759751104499108391547275166093759630675053735826717041373452170881629899098565586915701119410939671745303384339185600546675560409233443702685694885703664767254397947938690955440367304632566902481507495188329999015496891381913308238423867365390072657698934076511584419698248680232159840767327432752577700910177622896798378185779424119834496994800924078788911208665024921212648357264349950178153605827059505052902585184349768123564124832618407711218220754912618408855625838002955351808131121298376114917585636509299145058015793917306279272292966168377022102112535600783164078960613853058597953400332543253832052535669561821564718374122213244964027530691862926154116265222959487259557761404351580801442183916547798669018267018175275623674350624548843944382400620807701397242069068280353810811408293895889302899354757663386894077070588037273258266991626779258461088940693327173375829925726486180928285158479879289055546824896526803493071667007341074079115316435405188562411465896043610468467838786012055392709213859497381585907860156538306398017735353873848130755039446394190347918096961694458938531781989779297609450304817215109586525668650019791782094519907882852739728634727692961333113215687016332408201094121211077193352054870652168469705483711208667200583456746504812424466724970667852123419649081723325570914797685160045154561418383850301902506207249012966038304947270465473105073361242730076062026324619766665731148373816835623206675387418179029884040738433034243921617513168366317476098313541386260911587777478672564507383594552178066133703883603504157609850257313985288131165289545373887897103701574756122059613175710625027320903311191333645694792319505177760355497363077317214261241402043642749496312608021800840970545766255816005094541333774030845626154718229878543886059459395249898891250833658774735668161335340431832642413216769120031741148900613839928166905980579118620834631186304127319381843531688417602727214939496188973630362203622769754479096485031558273972178948718493967143817445954336426772061780259114722427645162556115677208893417392900875202157169437927637600516627950117751358986767541706503258270820144758249156153568001387682473203642065701499114851367282811459244388991820049463207731337961514608928285868093691059859900285086864156430756828275384374742196151842029944332989542720478547556093111495154316097662929347408630822643891057411977010351846712539540355553603885554488082151939526192247666100379902200211066702792585478733354150781154911561124748278337666028586093604576706197277120246425347723447433213343540028689615453449332566551716617889388359237266730962466171330838171944703163655836648751381695159190908717897466424562109980268445683332236014312021143763045079330034613942523740825908195815389974387107980220813865230424995249488908410444992910720566120013746816051661254480099406482374751330524885739611955815582004572715455670667489478504067026101292550776420504751231299526658852957755012625979995146760013666239450227525820615385449805559369973950695667301159899703306030781013693760960950724230740488073461294402705438759366954411509117884196710728697502051648737179337750386654330173354283152421872222812275726450875044483002654480845011289917246277239238732211287540744962318803861599082075803544567897741364481727935228549319094152459751025168228303258664462148396519399191888187876114599162924030015398676857571211815559854108197954880951332194719891248346176352790044705967921042923231737530987342981379823755986260658304778523513336353379870594559847454792359798701423133182094519879279804482084648513183019936206599629977575921773522979596044831900321290377720556368385249112864706123125797873290005234815374900919706559262620696093213137868695349205421416135962009990080357233987354165151513760967960993917251290673033643670324938211240784604586052861915184354908154981398688834620864150446341562278028599942360350750777981491458200135539601962430771629875194273876740739562169874707332704869740082834725480836966971648342773049393277443167561885397851904124287113560981210189819259527055188389885919336515119448749104680488855857355521477790026868207337950211354867305917199713350936597695078124399957035063940733210335277430982409910070164356690202757413560031810820637579045246015194251335626802966513012656783048858144752713082313357645670177777715823218994573263938933392406513176307316683016113161030568141358302487443410982409836439719238624205077676671855343981995476630136686263456679834693158973899198897004566581936101798357358614420878795293212006225174074025272517187260249683224924173826764784191532853368281022477930065344096851758284636526898195261338233646112455093151806434526789926127374098145156374370022281156581461008263395512705783612060027267643765557069284762027711472527893615518839917471051696099550810201129235683428105125500710598854866277902757086966739945725938172911454173822477597934616889911108159120435253439965354430848022557066787820985041030758129374107847909409887341837398441937827045436960055777883226831564411285277274045895490650177461461206295526398608426492837188246561516953790883106775523864763706226057911291426741218076393936258068991486226553333456963629343171837939208627834518353867286210886979567848353941915585968714730815145538433309537264234187270519695643741052208298086255166619465925712646544781244788889707088024275598848808093365143058172196212411461752160110798969338778768779860280424731452332141164627882023503274128607174438711768005163067390435170260077885126353274429945520799395886210255094463972426008986349129088464475598412141482276299343554225864060950062616173621948957969271925128329293837507442509250923231033998023502069837121441350388796107149074905143502824620773421213459330878295464143595063387901823528033962229693775042321073105039058328828857980832671106591464186502858795848002253176010262071764257478931586446858091477842347088663124329798731665550254322750986178498974027382048647415745917103696147120668601999265500368353767460257749783609063726735243451128617026251914360936750044257215777255874676129726899319989504458392929990476957957124752175171933857187753776432977963386797449894482684816760961577022032773090765770475274999939019438313468688388946698105229264286269237304543187083037607938456712293378520660377094904893947994960206501626915456457380777529540417927630916119549487099999436432509614366752814435616692685643403145239442558391959316291037675946864196814736099295171076730895244476718442100842523910758244851034291211731210697743888501402765997703697997254175076325560727346741352836673067472717314201245945050355429723926652803982471605805324419645487559825844174662126027829566904935662453489788039981856316001923716373998831841099946864157414143647751519708081284414072524476574241463868001217585154255405385707435048250593492474016387087094671338080740622716159535685393127558743811926621119949597616669032480262335923975020422155373673638446196881395126124360185897941052637920668154496988314535541649185265136012421116743665971912306986854579187037267750243565453297914233638982684560044097910988606473810373652099862989047788827207885653268580542756731755386939250891039347227013693778161645637505950157625482525089191195560564779792380626093913368090596666620756280771000630775542546379715227631627126375317318011410553509479189807059185195244829802944056871100210083744022746963302367694964155747758882043980035058645194844724022561483227819849820797559648450381686573017851767636457965270229828070976754709503854847720760582040624195636442378762052665076974096105968265224272748256456669753998991998299672628392638471748750062338708246944976185910839113206179305495955463258583485598628819460832736657619564217425439330503184428113286503544931622532524500126320030615559294072859736826934781137264010786180353420048517557247698487962282099322271846684595648769199200467379884431775602605188165727141885146827578607849607859578767141126055822051329667203769032097886238218783907585470817392729612007805271655838458508280116013346331632974901467989535362786964778035855122917031201947775563159783570251681451598350394017859002365576164109107450055474817202423583239292627838208417259154535471602198044533601072503401867913182360820235158450768041309962987002985470844403048406180893878621481473817416209731150620558367175979803048774730426956816773262444801104885594813813254757195584694861208485797755388697802987287773921837215223666123233447343746636215059652190976476321133433418969222886470509312779465838027284363178601041262664694046636669598623181880339191218359587121399921500103563907566037976952839030168396630274179907714439162995571842851414051488480487269595640324071158489877264670634421809911919879588190766784564453738250892418128284418953866859489007767337616501843501944373062546453640205595671582311326602620181874568876069504493955772466884546972533650012447611781933400842181126552450189135356452178465621279349125928880817164809071273063261341924162804879045962816160925668974911082084993099352949752639788495660711574396084359179401101202402732349460179132016079680421699754126315456745775496187053450237979836741764764609277042221782689989802592162572319878597629498378604552418805362326944721656083858638888880903027971589577543868091340957918088532202574963862383536735495985553532527725970826512409900538206449648599881090528969506404643466039172772799307252078902525185015060759171566910415322713001732724671406063044962334844710644982715927569858383448770471429030798744325298740208411649369545532920196012028427448132520797960683988431361260090734083409700928800068218895107812266332359841063608060584569714708576551358037755418044974435086895009094223633341424647376655222143738099917395543232521964221375076511578335847112367398707983699009285630117316342284739027689554292203922745247143845812499701050711660239741672401855391267146913854617425277810292743365339744326025389024562849472567166542219583485467895372544308207327274515450647866848079565517281157493310395627481400250729725685320792927393958651060140731479612802196738504761539227514513852089581108709964967723929205519970900223791382982247750531205680294880367537331275255884178921477502924523724375872694395315218339011520969596285110505300011027732758189907354255207594883585699671608249519819366145446131932072857699836841509482087966320579983377984213101150673203819759892995047830979651834028519871956870109134089364970421276630832451723950203080847447210797046941252452769898571378776068703595923366541833571925973027635846191429180679710891056779836472485116010644835198141475854851082632837678413652240611829237369771968403764646464382750613363649492752870768270829304427083686146819609917925473020153205899892976364920169301933324400570374551450978629124381777977926158367222626814090179173634870648760430062789559294295538472114902147547264263637541359872047636319790368903525648112771324737833497614859797659914422044478289107564163355703963058262144290024020321010101240165243361493642013765166614442464950805358650010374309330987997349030080938214180232837343155629371496629820568107985411718326284312937610701620174619093694183504948352793558821234753456077979017154770004032939873034944251636751348939903961744588202851391056289558593378424536841390756566665630804021311193116262479863983862294047149951193827809660294108321483576939918192839242892894305158950577462113165448151338335590309909226665571724679361301088868938935433456487747069059441748660672594582833957836320677586180851131534783679425298071514084593739209618541282285075362903565774010965825127125232834931903041620070584604163721171031383416247009892107373447853260297802636550570489251815459905949106601626179499670443693743818361123158810625178871391434859730838459074133796685583720860706855536076083939825739082192610723143731223942852125536294841424550429192448730868019948563381244221486157274430283941107529102936697623033645516484693868604681316715435300701609925586648188743236476666749861364902160672963510248523631859320810324301333242164386952211586267529813401771883351065000161254161034488212474246710079078422233237093369690080445636790204695061301148250495132454617387720423317020733327235698198869347095154526019448593475134123356563069751466574353833658751583802589863574721007298703714097484134379436972771540627599803332365588983370240438410760292927722604763606511474181857083323754122212653551216851710179057673518933991719421726610264477816839335681184843175132727708907292599019278171022166572166349400126109322887835100461286952351003544055716220776620709971581805222902709450335698729647777225867541376884727018548765351891691258828778936090472846918661928846833828448416781120409456083474653887761008042883277628849788689376419783133821852991434530369908913321568411953820427416321321380715539705964072688191026351030012125911693385314345665366421098889912996127045998502144076510921266921389753527658331256053424397706964778988901056510773540871216835622517380105678561152101309797278757004593560787253227691408543491078145583654913336832178110383550272148457036956866127605815024377408917192490091901714820553907968628506715470199275014345987719751172353378718755051486540347120924762034364145442114808206285535657872352703199513181690062301276081238721138792047570196416647648280848014946761288954651544458092686652344324282145007024742308709461387147726974663666762712675754089093778750623042159121373612614952581538249237558468209015213278182899669523339932292094463908666451861079789533392875282510858481600576844802166140437929341808391017104499130742442178920272307278647784114432102002984213067941972133292541177603988395393942692442994223361662594687468920767618995247767127530552509082434963295356968584414737739801752759152368712751273388865180782383086637646476562469214798315082514412789194711560262283791413228879991922754941574796518499159270890504395463925954040059973636612227450238680098998829702731511763878364644659147326932625094876176903709856383316621423746907765472334556500319728293091914979797751459481754658350649071539395833770141156332640814981402118714517687465409989997547665589060204649641645892597922897551536096628817343560714122030390736565715688469009626574878750228157211354997736123187027122284319234030262247573045837640381924332812603687179336716270879228700291986650469841336515518441315205826577348306295142956809230950931674884566738607456100867767682680643286282530417361167610124027818291072687010153342857422875222736065983708761092706266494183034911679213767835860726196873445947758384703559746831690648166329938930738744018417125985160649450927367251247846138927382789993394697697105627593433833376032390381047391127364514145392839532031238593235455617680960654821938042750240667344023612549675160653464094203719718138397600905788336080091652514700091099622139247474410626493892868543798108500631901484516759083349016146496235175145264789364122122505969992371230665747952417981968160244002462439099190210734987576785281732240008738854200518731698403407931025585366992104722170699946375236023017500991414330273198409457770725048369476423543571904802706968642750464791341770830265197285614638901471638253174117880776794451395839881456062477585973488311333686588461353702113396356398436978039567391200922520279443235438845999605232667398060109630466236374634277327388267277452748119564640049107270618959149743337667682268779431614475199305168938295134922576391894397900833351713811844240800961673574495881537711983045916598630846603466634238924454689233143491182945297317402111476633501036076825389876990156149546062806352813325528521188827851785361037295851545185082692240157139615319776969478945373255728762321260517577943683439434694346223383310138333113140106812820742650714342934448398906202004398522308849047450500312184961070023345421068932285672136996628523263246833550950273974424349375930729396836759371443175707590952309515399243333445566880709020497132250129852680433591490442838437008651391700691834328687295934033626068405887156272666676300104498337846852805089850957288457988934588272814104051592744725560999213792062557685294583501469343051290424499461005593805314857859060056169899876611081939341506584620507240044346880344616164573746117887123047932686278318043965949755566140388318443855534618994859415398635689189418178062692359902180127824429894859476384888797875875421661257477850211515799886067376869063813432238412471392186676924756546504631408835398122729928439005242291823689516088071136547690550445655646970028535717505859770179271537759092943266697300066394706451498312426163454974699105337458444307886234068048166402217422629116099954092166850207027334414492425761965969181445362846863561426044510319594429620412769817954545332021159260665941286026004742338650013943451723346178351265425785187771114410442281054440184024606962354011720011981719941744245480508121063776964797542823511573868710663010057238806020805044684242236574525119610360684516517503633143130255314732885997080445729592746683131589735355112260952369288849291645812843972112030481552856622269118201774617576296730727627834524422970844026579464618504090157986695541431380596204648924521979412690733070138059469978930292021267115787838331527581946865373345027888429999076374726714000822590441151016101043341744952685391723224709721296078686084250874687533829365201995961758113584089233890146411547274662283702945715510221338392293203935522761347951614037286203215080122199222826382458548267072316974628862309821988774172452319866995272291653024698365173154090632319072724219418808686582270238764426937652379457353315884704142200694068327637605111527834575422563647539970605821928047210991820164864969628925416017468236749033895941843520961206277612192706284136284828233730214227928658799929772142046807570967045124362370239223623154967045905598993568672560410992622285486103557305257617906514048197856727665430046660011014118793161991142758432174694934665192499316441700267180424431088935115145578221772222243327305767725332576494054587652322955301413675996962934688052566801159222092878595478835650754120562464162150583221543942035309971716450663107984402118411283029696652368191426780272760279838353232281208987530541886094165599044067365563981609470110669795413847016805608714576446993378352765899608758767480043186918784532892414501726390213869213641583487399280283868922496280618823958056235549450574310824545287917633074437256471677267176658644111901017722483971367917241876844902413660534515189858412293152784057638512887512769229970820491010003469056609984857883279873974565481399299266235389567071045128180772803173791399159952959402694705233150203142658791677444631807403772507714487488253018963301245102235169096601560414624126630374103141185847628662539049361659309266986251518087065352089385226126766477605231093529783121697109707203705429382004338509378619623021780571046625242444200966039920653089224130055348148229243103425810313871042088774618336296117862681312149570919547241609169970458956798717482790794386535385889606714612856213672248212094307057003664965487228272093432738447972175432290829342132720813344128173231213965043125932074297901517704505024568008635349083147929865980034116457904884531069114697696194150337830252241276751226583429438882941110154972180755671984953951243238501102284327316453879592362693773398104301745177552678623598168709827295130475697561030893299084924587836133692492180535413505861863943764935843358382355241603451292666852231722363954094992679468056268926521495730154582463980313239807096550287051530007339893323602302131325417894390557423113274017721769635692091886567061948302439981256953584654586753177448772311353340435793495533964775354572418918756536354403884323957521063788131047391713807113141307543171995562858935110820762233389439277238783339420315490649662863584887720235527525977503937236343537191399396646395138368817592867902981585410832061304135535003250431468766563802024328601598930433039416432565434239384801539866752479031200389413878839033562530464805130619576720393817037287879050168765716370164394533870814630349218374134457791027780832611520118489543911456040551584939015102288766624207004251094947672143650708084569276120837144958229545208375007870136493276679493542870776429297783151093139830346942831657609478301226499212173658796054229393716852579634701569940248161249519916181408381162886550911929372518258109985203680962551735560226537883412852987800044461352069352297334942149911854681381002643905293889687687540564127165337058121634309039558459131943761628014327935399925274210940161727688585944280610755742578533141365237808602386317152592342598672793053210813802735215670307309671305412993853964883552541421138243630911287858359842690945977930451515254191476449257546231172931669950906742078965641157066464868357197958299254444749658664737161933751705757737529053894659208243358735768376294179837601550358422770018481816090947718355293330502444522856353394999558031503064538486854171806700844067341368395477591013110418389012081081812748172083798770992922702310290547327179716387903674699707815621001024762997866790653077377455564237795414294961256012370775779109262484140119787124249098661209988966680117972637260157121698301486334090075019612157622872872563340674509549237706217284958449537411448925567208382790690879485212175185029754264911004561601186475908407897205553212940336592754781678416779529162273813262293070590782031248792243969340445393998078889489268662149647256058685170909242988425122180028865475733090315447359441497673194451778240645483102158847516234563554844414404752848784209102745728435546464254353318980023978340181513340492052477122883290854784542292175787851358827047667998144304657247446187095673397108773990368388762928051031841872356881033701574377978514276320977091197592128838964605643896272244798234297856168438928667421697044019279910854887551095074908624860665794194333915636798624563838025718677665976851660696037094110486454301318281519973737605319456605667573057432804936476276637320672289651908018124452020349539806771982216203292755944568168835685240885261486908344421606013586886225344949843981798318002499847112020238150204982640616025045302602156683895782673261511927561509106113994877009453352763862260446324078630104581937090333633784076343263535551486947496994520898967265571843529527456687032748890608625973035774358104951581942493896023347813467712924490995916859864230952391918253067497138613622911809196677481480207793480138908743497035350163038498564688231378149383065954469914412139162457235696107469114352313984420877762946784682083695678210935377371077346348308282567250937917766485613204623563062964936699495017228193902939377774037526484265115261437653269333912258473857226956401371229682112260079421244539518540878216389369673588417390918562746561685358029177319104990836316437054246947795194583680431042662587365883380390042368845340762692934240762688371295258008012863055374928747492636475159807672794263902004635876800793144262881032326676012007240459760590738100199361003097740851023407400184032629961914943774937275087589980688443994149191635684906106460702389934802792554306583275351664895569748955702938722411149156483661123959326403523299185056622463552824142608823000635473390075252272543995611599669655654226137954872476911755477545655919180053371906958209264931142070285712874799561869087166559303160915136629842816266933835862733603667766403000007468118577966458856534956839896827363524183222410052290346661093409552635998935100825753611583813453816186580603575082959489178749287710634623433454062563492588664514638922057456954060062954075493168724675417407042563159532946226425369274210347925508430085118403289822211549224304458947509682496517723688367697039753547919828559200539783894883533522099907397286000577891015009793762696624600111897259743239901226351990739563649018514174654117894858823140497824266837249993448501565293469889211386548784512215661362479619372114781163653363270447753229186145154877241292483817613777517530250569831634839064102071210114141374880645489970452923805479360262674679830733686206573694708172340293597080824057184051860678865192467571913143463756263775746439019859298912955861746274767966696377187934116427799905754919333930921880291432907755333435244431182807346165955308788652312375610345747839117935840461537469730657163607949941634833022177623985962710036109387801821271015282854522359243613200571406497568391527961898656167679879213362896697056448855700629774628538446290046436537051557707310467170138035249198255794463367899338091026770021683159456292500070921628788523839632417132832564825248871866744596131540516089267310076379313720140335146417141663737990019189042980915822807909402186762784434490836853153084745448791020962182142728814676441747132186476631507760247663848804416375175637127528505213165270163326480212827767072690942770526421555204790119248483363139340057310870774772602716228485358361737259207579159068282556576993048756756460966146623001629073975774056436878188034582673904835262089540785391914060582618826106872006840246025433267464848016446043327281556713299654063209314337737351235347922507026177907196318106514709503302919942995785854334382919289900974249803200453076687662203804704524715427114322569180275052713999474977599935907226961671130826795896611210235045466506137770520290428669442309146152493195362094310901955922079024990757604927567568984980413448494394589229339779189393861685135709967406881539156029190844865358895086417896943409719581505173031732705034640729925528341666214222642149775010391616161599784188063482982516774884040932690480943785834099748704978743134731918786590260410951296519843344085939373558996436799559360282265326316338756893022262411534219872490385189822849533187969833056356842698399833582080948039711851892824891012065787761561668263171418534381065355859319618688868802572892792826007373235853142918959627884675116406439964059613661662246120209558103596725352549335617204080636712258072501365394962126256096773626531852740594530620267026165212592691579722736665460723430202384192833290186497580688418630823496467791477703099809848007626917641709463243655977349026983693580863485275020223718977342104841288146191147607487378149980141652645293124538573568828019092857065293827247000714390498850975063745594733056670461492770242447293845949218047454331285385555607104635316948203568054624752588293786631254550736179194958684051425865275968429870497978876796248756562888747327117465248518890332328083404715012105908612827639514035565494020952569734635346645383060888101185692884708865916194274537479321100807798569864714265407154992046084890068602777989277508017486860199744066415094223761364173775590424957352431959423958552669032398867726052172772053523158793134760423382928311400513627654672484751892864365599382105850658418422655096801428140644372456334225603689549368700455569742584275153677738990876906260903005047174570678876666894035522435948798647912503663020085692771687979331712438234690296647241421362772701107874969605006619579236814480299378075681025448177461313417777886344592208319873026098273487490678447458737777548542007230011546532675663569551685648494571468901329956370142546774734848328454059171251230140083030006878760895857193954105098562842584527654366034134333303164101394877413831811569029143202392824922028293957461419960817671130191783912802873698170589823231419518921042363819617668422950617621615573199418766628127620977209842516787784980171284401016339691597448714778550265095581246429235815054529745127015074473623522667389550720229335454004352968775801221840572342518628023971325581993106365320979003560340045485638821882505945271370822339318202198947356118895352344714529887228131016771677634093248966646558458770365544055176964238691308799540946626950938824792288881720285923316792589755138153653960378409425429411802840307579360614109016398302533795977765658823148710583282079295601587291726120954325288193050021051881134072603908861852710080038024647928414001469187793076054607119898594518254851718048442587851635864818778619303531302271365626088686685461457503455076668795498132450706523500661801884731999639638911157766447983756461364772236609556657723017477659092414295306641762815000201551834603903203989991047752556915066950229358895417236866468357624132633819090019232608561063431246041975722989648432232352782390013497185656553666064857990997110662675677737965001322189182834766750322625424471458882955661184552567951813039407284585767874688187767570611773314673752424078982857557057460502743455632621786523430584651635100755468247962103311094106680206916225298791999510645130646653486291835946793295915667465679092973331023568391204215426144546121702249281242374716100770476371703703929367181568384454644681015408487909930557214820701526615152907829624074071858324320146392831778633908082963314370282138992668063811853317757451017663737168624122864033081544959611598013615655964629436685053731669577054022074284309499769651597712770373096683465516214376020590948603369172769896041445750947834164807297922328512704406484679195622708720510978024641632900027913752925992279164643995611510910989811510058484881191231740834697941911721117164641865079456020556932582042469073651123476156841011433011882202703835692330259781360182238100674145064990433650956197091940098941480081004579991668859546924374500061320502536048506056205771118277234738515869720782483345976161966714964352320631826840093624362090918818108700583852834804158589106957806039583593250898375723215250307379172317807766029116367740374578588650302026967579084127741159089907256244879688137009242353020591482191365012186746420044639575639392358158260687805915474192231093567930544341785226108742465880093862965154923632038057373104992477106508703687021679697575510131359766433754432207594366510588812183342864707234648396752445357087094471114867656857583346697124521355542661742326720958364940673115193962377973624545122560433204775965392851076609926707389908373985522904416129565092707643905687398188506529848189567160577556617047871519002078869069101476392298034768124373372152184662004386861699552632494249217677448439043394202004827311940609568983249001014277089903133805651640280481548132604923691080413454199381595201006449705279500902254090477267505306231636116975259714182962273888389034020106310331101300542122419798947745284310201920937430698069068288490104679575040764119264119867466204251225445705950542728329557127068138840429243851020197839859752149832543722798013866867410941226544842428961228317388495055519072174825372193250599656634971646509549534007073727851086864206003812696462760060604355257779023657770959558244235862564160140458050786243710341819014347152460031667062613148062144850755144573596117216329089944243690236205309160437368262234078088445506169925860996455714875809085869717963728497080423922847620706738670583332465111153629148765843690280457264656611685475533973894860021417035297908381231025112290066968914909443551280248400478351942672804642521941266537858180645744770565983824408984373000666284471608822583590625743818880656873284877873319208376855625509374216689454053731963573072393084073431118028299956689801769690371320485600849406124366430898036682518749937367167674885455266071697223306722415970272693335324742729834428257611104730566948192704649806969932395070400586908900527756278445386677934927363011386121905729904404282737508397584510156901573529822632446739457723179691776864693655613137537210770780951505171154865988200039884793392348951272692793730094701746920787883399097050875588543663287373588441532092866479561655597887380175641847744200721859564498173910758358329537807225521067682036347459370817000651252434699279381165577674791853195809838954672883220778027190098512745684804433661409287888927187860205635903414337590313104821164026209043258287867303280539462300467331530885665673393065584392899682639909490672848300524532593692774202521898818735689970529057240778253412371295678555734344171291594805425725898328768450672430972151106096297268701574701872105265341874232609864162332135099499985586790486754970796030494512406888462885515240077820620420433863033509058833161232416710844873886649763313607549818653797710372093244150624583384729871758285610827801023882242870578022939279321913571203161455145015146248383701086380137390157259375272596291043651582600046180636800549707793574646199813828670226411447758890378258569629882071512524066017030446635559627560570468761612456832702728130154787432579253067459038312124404332287671988912237616622215298290786086293791885663174344934330431160622427542345685243470570111032679843501064967855614328477618817975266542062318089275112075433085366635124882193608153753181481173022491012305214136668418502240909833839133116628712463792706349799810291035130963401235506915273168382043553451462032224564037100482844142594269920061408246202323844841300288453452205441725795509735422751928039659245788518197353616629104454997811051185930763875417236243735588081105254131465914164285298013899951154059623043460803522458504475593260204542619167475655679045644780363758565534518860967453029992622221588739758086543354524192157773629832609647979691612171517265676956313286918068923922764216592653908992532327266389290443644640263444975634402642319010060917504482735189420882574991292835828467027712312407812829129507396908480100129023114093450962528145403920851392610763943330263084305866349474686669321099065623219527014831908064583492181762838726176815741513617925400849787501192931184373528574602236058591275088550912553375743724303649898130501119411987057281678836689570429398313623528750607918978384968908440457653531570531277011922427720804766544071038818381404155620403591978318407159248724319007666082863613888300545447869986461243299765717588911744035526582327940559822616618948317376779248505840401191055807312112384919957625882352634161695648449433285889105424127522803939320924496225346886516764749669445855098646121236437441250270092145371312145724081602310326411454588008690955421554947993315949184679749254538713219526279047767121709725725463515280469819199885599254258415552222883944131083940225515624245279733015952732311107211031259194764987527578416216106083835262666239846954859079969061590060381090319016187555882353521782071368553356868168680766524570542852059563860267551206731655824011722262686277488420314686073133446660392516201380846420610734308740902238046390777316709404334056144171870624961963611335452204078676137620947912510371177924236224034575066171596659392383715132278621800984118415704163471339218805569660014330946968923784385873713218605440410371417694550356247584482635875033853018470093993623028970532565791299973552292812741986393713591771550449129009111368817215264695092252792072425460311954165602152378836776941583388934750448798440595608853287909825705740569815686501292930843912920939823811689018226116251100066995958166114991749670870257497487602531991799479934112409374275692332145010549761488312486564016458356441934440696888767888339953243646695568392280870282993360128004515172399465542431205003404631869332482764393871288493612201211829594840735205436256359132185717700066954055268523009468227720080200198446751973230209026729254864805002165984521713403267513549236342278221343579599965634866861808008362944307602021562501575971940830296566951762491293736847357312298480453562420047452440669267905154912623449418387686238668381758974510909747289494441932268865711572556279767123479220130625261124988888113843833998344009300947881622259205754928547097760468962833778131229328341085050804141037000887936718956853588019697310713156927229399275846560361681724651748968321283851836005382411439101465550021210682569085701711494001864208067188537853506901317346505096370708526172453840715055177244936961473887142942065121865220384783470055717825437428342912206657313870590791677572015824968478914735423595947724331987098767836766701326991782214983737861322452201633854519850782780132484220614885932781156760091241265553981602179852888051012001601208443202458351639125813012347715804418522021467723151980711992291659318854851160477963535090606070433248728546875411507128574049460868716975348158137995000162348491304146880978680329411865473740147223520383990190381644924368262999157669051625846825389603093933832204354200852757414989667970873698299814746281853225731044009255530138616268779994830532247331152428956626522128763764344816533494298512214369780751742025454457267226777746982892395249339426571430899502668305562852643566051443058845835486852818701927893669619787692430845949113357287726217536710900825318288330529067217858301376394148928176427612169443350135777631042732217698336867347854338898312177187777088611128470793707675024728172887089387550444654701057359991158653838141196075766587529033361875892472678063489909026853214567471777668492600515393313168794487390443110843226416513519525018946102863770917123821293793071620513363107887311960989714204302002915168927139494197233273529492783472981167529038995180698417725796289530875160623299607342222179349901490490996824574640273518586851894965965993999158344058073107234380985350651493821098830330447514092304074915021373533632313651727025477595450885107082832196874494969089763297395988772253352062998035828056792099789345767039811587928060433017499329105562346515222651896473864238170287824442408060176882699879608378065856857873235341597590620210354828316329293061644536460407099346372760055612419600181983178991783926167554712738156515892379536257708884960958923537904723856601127765222869503519964456470951818354291487349637052502611355399873706048136507103841919961328820789542245794591814327788683917037663680572134569019530027608160266885464327421899925122791022508572697444552260286728327860021632616921404036958988044023592925313714553743696379418732066832068534568593159477278624639888982907690587387355324960650460339864643410267680589861725877456185220971282797411109840670158778182065528620068955471061509056349458675635738927112914855590185342786819668609909915383354732445692488341588711739592968365042654028903146429227061195742659738337694183888813973383952124701485332038890540796656939836913136992865963151854790532768275898956437016859508401750465072406514581136113350678069061029791336430672667412467495375267243754579442441870316796991005560857337944636258095144848870645728967932224862922225676150573512743077033799862243182795023386312793269303129066360059218561600411606606003904960924155031238131289203768205106645632736199921100184602828112362024550278671025690107238037250120942393686893924935725524815552783528807298211817647341704947953685867974541071819534420104338550886469098714623951282438159837497381929311731136904903873353678290610175826489578964189460952424559089111240874421325973235532485284989935244987373934460881126685782854222925685824146260400922219840927783064556566209377370079758789093408165707299875319593559545124170710674688283739939186725288385820194812954760715567581466892336255823261900743559770987724322695805466551747813142329813181134989960421116290909437997605924171012167469162439449605211050728406884914750031416914749091959793955264155845218513568392912744748451246743045249232069439754096482141613706928179599394758011992279331774311501760608913598355099657054789573579650706712094688184172314716527879764727717442148923032613546621380473186379438488012902152637670027502483323257281532575109548439153469631572066024909525794372056996495385465058587914634659521146824059233085159198774607763302745263486303479890553371603939379165303999828987199834934306077928324547163314558449719105013872395893452858500179514374343438127923395219967560627040379444127348741827010040500769871363158016731449015536704034777306761424495830761837736765206721046942500692686019471038533288412014022551547598667854277334600251191686161306032198480450766325582706953365783369540624559044832738213605761133119497244926515196157698197594837503470640652651642225164779415021080195940605407749217666564916171443346068563284351217399722812074222586687637321601149203059231310629586303930207266827586208918565001918104778707829209026373493700786538799263885303848593228710923655783388725182686528875235961618632310708440013833843006431115063492251867976976654178705947341368889253557869329646239752994563178853539087556236521043234258532708281884351603055140879729811426324795022989206382720413174912520301827425391244774101434385938368178318588899657918606036917720649132916489649515284316889313959053620691630322883486482454988482017762072539740010819707874886134662380052592315235625574475075500871964130498179917229688265960988646003678906947535373926827249803736242415914052574793611726697289607776921168565943215482575766333135903078748707122715351358947162638043260117071693859483907074087633225281274848876258426232060297250377478691626054896868686266442891001768294949470779151266401261327670437746867095375645750469401237928606537044537454868557739313991005762159509729246542541362592746960676973487181791523356853478131449475869580924958970372940193702541848269770025248287685745541342456526577125895759493563398371625735101943400111574122177183988473519818083868401021219645337581190619820610707431407370707685007289662320542019582418535201956617776145585972423322528512748014455732625355453903068991750947405910219343108859529841973489379397140375261700274551798815189311751913279869306937289666061504953001536307384087874232305819463769952424454649897952293637900136066302493098517538544556825842531868508635525803951327920489931119968185751852332198668275426507958453983235434495465711944650425313336377935458881236759073680657303458691131281122341070854539440337779014454885164180162859518628007567334398552513990355796684572507484569479661184412912926082221672332909116857883441883652610948499981762518923166578114657728317816810261628464486691186675695061433029639852352204796454857695751291292210280736540809032096169390184994907879793160601560110927462458285190396588044446607109099907246981135159791332826613314277118788375432255091780425476316359819663617225534163905155120092471554798853861555342755897112330838250053248347801702783136165966949626711478338718291825167574524090492737819164186234476656870419773969034070624209249105193962296734458085226550977995645406328807740469734993104643404729601856576246764972153697811846311055195077849347318894725490220921501754357474806517094434038991966152086130223622906290116635068334074512567061593855099809234224043755096011017274535363491367811677625571055831058826395121610150478866838082436221082509081586459406284097025854157477370341187963641884343554294359834387674451464478729112639291637957979210735985119771105049357978426904588776101010376592503236291577479203058883600253313655359309849896848620844575695997141828388737476891269760936598466424722380457774030020617651453154733100530590308958569559729513852736846496224725260120209555648279418325569702127671188151490784446250559387014365634068907623420041882039496877993020891586341489254826873311317465185419880332743481301433963047957526680960544906186463484540748544949280429967122601357219597214907786349163218804571979239078631681106515731461288192387346737894504276764476721120336585071722527286905466647641654642213145949876523429005939854855447583058096517078734727519972657264069062010868996164347091861479134774296071979414715140327219462612913075391998467051606707535471592715471630007560993279865504471350449186374713653544923755942824593948647734811230319337171227360603897817438200130072521518588737443696201565007541211809511789402750485493676095196014810154130950254959693143677156211501533061338879956274545795992962736244940048371068063726434568622370679148313727084854788903515429281785766438450438358873934213493944534531336753414956875445799754241216860056217368844074242590386680252211161181666911729144652750712858151948223744512626254311533138118038291976831279284845081301782498571070695929894919254718256126718497656279751433095983675295741509622307593990189919187363439870142824822464032636612253526864221289486470742550202455468188155307514799627276101784241477956217741814316518906971620705457138745590081971198451022751414446218246820457441203549176492525559990831730522284459318690852609751978163543730615349688907438301272698626356466382113760506237901694847923414343211783786565305877825300350075661425105348774667326942573995007843459069865174032242459236367727938601543169209152204201452622720104073922298348475088675718914178220507154776026076439183436941515806695967683301749045186322317487357178649333062825914746736762389379582634643359764306213471365959750137510374115130778157631132469641149669625296781617453945087828024641169737925427421707613339895216358828604577075672980658628210304859503946476543546586538606636748178850273284325590242177554205476793535713007724384608728028231660923920694825622011232171474107570248832027689490039869572199711865720210646884008230966809072289038113907254280387717336043213655698717842887361393541369440682212677109098525451240603096676134663988095105502998528494133848871487810720473296667632568903067647795009165126529505518926916881229975319855427437643143962784274777722271986677239755098106754067971654600395221104387068592939609945034749457589391692229309139898317210731575886331409578827783986145865819971563347446735273966713150265635617988668822728490006266767886118013575366766837352317350407477809466806293017897432022421348469980328605797093891962420662538606976185832767955861916853764484992211455597052885229690472484326435394475289020107486671892984659057064321739549753491050495096796318768272784644572689184713052038541619641733254862370571541989537722861227770133571482539727447926017184547662357448790532869818570237522251970677258534244448523044021162236609568605082704563065043084550289429630527973615575829237443868435331655815152513484056588891164359014001170746790956033775750115227248347119670475499173087272509486918831807929751471846131112750429489913038285475686153442907439474479059335483630380437894690643381903623307792925387369804083564082199874109656119676318821793487277282962326082054891821392012105203387879321490556436387141029031998384956094046635730124732677845578921338741404248098542837011798470871749414845586323994863301191252891259948891420197156814046489096942059496149136128893706769206512131546317128684310739485427449807587209143023506225540742937594075628223902207493089867702027813142175894195766899308492508886073061631636885683922632352462734284134226478396720060349995045884695146245215218558404899057937407920197499577499674462196930571551273349860272560481189863339830008998931479629712756432971865930010186375000926687951345644004575911254148733813126034180754384244426338958016726177605572535485460943447166346323537179065354861378621219595410692294798181702344620951842540251409290732976718578994663947452633456799912451531757566654751243656777889800373523927071694595030739740224353323943560374117302545631417479570692955397306689946606491322838242584195635673540355649923183828196657362549296657386396621619187561661653393642784058787596754347094319115622695307031356705178127694587098292611762103467622427888217903813213529447708866370287133639832719832637729137064209772688127324228337084515595325488356003358261239902615183687238184266173058146057743887078356153940682992077711015788389286451613992945529617640379907717530204392035709610040046720406869325064300780645309491483039425688490434418181222132298354503578395242455851976179510773705184538769666306672870603645392909678280129361708483805281149177603255812551483728996458790873813215632099043481346326488353437941556540955420667951505982091504753397238122416410838410109230584594057382938390692339740482814988726503561970611477116607542119597554455529626774785271963091012604662022333071702613447825860846461015484922543115644138144792548771542479770515976012341380833646698053286413062775289748996653623186230588060792271847857155647476846920132194789179773974658887363838485464221305824682985141975265071778283264059626291000543763802623767493759397691510184049670142383233055616804201789057565598391384175091184391847415376293384672895882760270009808262241078153511094954977909640505090683620182089930996314616275358581361763226414430333243211362904245136090463440389811330955098281392632181479144877859614036590436888584487566279859067649053075759690186482226407159814101136952098058642455662970248940535123213419068132983922397767026857099065946409592914055838794349805873849597148045962628504938342654755410239325505228842469135377821595398369627106108081774928157401717302399613439922892985185197936059005286863615113967652397138139321083405736887074395299233556989105426323845143985062653545637424875936094056429610589390017723977787671615693925150068302784595008933535924601315936763966632497316959751355433633048887363074752951999830565826151726433276064757644167882812670798867587338526879362225464525932655894785023600382018471642718416792170719751705972018893436201295776355167536821847266699611465772231029155508938758918985874158692016242044396941696377278451554710500571372533787711016415714676511250731896076812957834252124449500124836868612241832683543447549153250285656311505480069520546750360449206244081445315040909046039375277147891051399628127601447862771566400583807620138184646580949457863700989362122249798862862996390311403221295974567174223428719990913705439438019554725661819166557015454953195553668427990959206831653854780826471370949165843537809738190752692906952669797450806836091296941583312741008037617001350950975198334637936641250289079439733877247527748959475645099581079742108880684136385611923417804361455819932443368559677895551096865368978317730409163813595709311458392535786408155475801037327754762460726615686076594459813186609740983033603074177932004243878942934448772495638565678892733038122218607840030137625234537861134700368501395792958175882074033699546093829929410415519505637238261181861806995571120651510497002347862032619295722449693882601554708282975639570923939122164679578690157574598718321122684761584807015138505365485630324325460489190940941304598693815628604573700149929610357316438565434700098983453268655009245348781094322511427330066324837556744908524118725438596441976369130063379545955260837009139822921922844651757026201703676688105884488416119911148225255387138819863504271218231869738200426460890501061790969699400814339608809105017503913382074106666904023717739959599040030107698257263487032501752831963770318563331494794751417897434597574685136901834762130497708305473096395267210726484041399803843068937774838647193229399970938841579748472111780658999715129063211146522158997348766993052489117840744928479261902349974527189223192938827461709595306781665465446518128570417595782388930755150300457119169235701523562852295310634396608951546113898095162884704268907478876252586794847234796772278986888429580899952901014957943502581958749233754586073442554026228218383767142259372469798584805412519247347971305971880571317253828649086309308494823359491297514563662112007250318914327324303292899851091786733154303310233020850573138735196067444588843408931957930475591865558718563190851643668082546064254523578891520573629111603462650532686032018724399286917489661828826563803651083722902655985398372379359398676204582212538400314591882053111858204382967722300577490645089868840887943223211236820157712307028133815452457129483696125373687652284384983404935477704697802057397913565837446089893612771908438140996129517111402062784204324130276157143742697092137927749075991496361706654027638773850076858924015487626050949397998757379783325893224496772754078083687723193914421237142468043097132479490048912358785922419869036070549083255281984606571181809427011919953269849838294828847797255536511267551004998812299517946681347316790693451127753396487262300068698998703035967369660646737986604221354490644132315716021436524092387066260044053414816713330187731185017674130742906883701284762359882788736956562507014942101161792562342702713408723781255231498556665460350803941279202055630551603004500783677099308879089422337872689243655510812508065847807770754652499795462493948454749397411116488307279627252290273053822074180643059250810190947066610127703567418198826215405286180502568143868914785787179461879348820227284593351409983451164399348145728242933782583896703467755469516463120209109717299164089651470557659925801428619514001760634000548674761493400365225718350510490030019623343160334199426158810339821452794694666873867433091678868983098743259731667806075677807503281761430349091514965274812881237120408488786228419011450895686745381092302433373522922148789331660059063940439297641302544579908048569435888182228142960058454841587088080253635696842752648154145480919375012788728077927432675176228118941273227291659034743194251040726436749770225881321265575352638556399686268738241511382018462692076134153108130792953106998388694813313812273618365102202398666234761456511113531311630980893407902156625402691447676222958511531790368823773154453503459131961627685702952127792313495004680751901545719745248659077465339692038340267087015565579609183273047200618914125345363594411457324547764027305740082309258581220005748652555350537388645865126087265673445162944532149131262224355458520531072610690714882212795128778943838243256936512477639533162791604061714647805950572203713285435882365004942564328760438886341588875449955547809540640975564261293915357903007166324679972399097407947174929951835905210846984907183067531681558485724410658952206692072538505117069987269957915822157414649080753185156890230106084020349760204103402779117773776418215810636272574692745641659877893496739633400845159484346888340559314114938966886504355940277239698099222659035254578709965832817342834710793576425229458746759460686737163319206820972165484115288719215242901304470033670277149874058948740651360935794950274752437200501984179028123499814169744370706808858079145135047801326208942259755492473203399242522216737704759504453865604474851465251742193011094196306938814262278511850009779614791901961465406811036095115417547145314389934630445256025100450323099391242616810616546604685430872337105611823529718594704350872567084771240592437845617608581980553331454948018440107731654873505527126968427419574651310982509921577582178950326985640598016101607471230018356984848531291379922218669284797024134976617042737934581695968500088482869077235747676887560207373922455208430344444497511177651441116229368909105695447600718022484543009209452311888005963134311738124958575219696368045406894555703395113216703888241833774611828492773461952423082082035302628688408913020450704325330244946472288717672866667325092243789986319494735983840959629854739262247369531638139242641959352707189307032187579328096937143687929475161937303960208693599204815761002265229547498923599804216140912945993943302597351954701788958406698667359610360618075453055188432613607814296101587558228015044087840450933520155224334074654250694476322030713715751403458987866131930472700776370203689570770816883972093274521363919468187306531557298768228719923766555839607389389039013470545838824674421803554212387877514886487038516478470829066860249133737414865689644655643100809391794410769770411219351700030629878938749830446407501104443717753766931392844074390498585137752753177409132827207060200242830380974615106921015290508523094213211038552642701203555706480701974190104717290899176020634843799133164652854347408870563644736356420438751522275959741271802849403570980666706122070300797507912376397512794335856825168293049157272247334694149155312472756047928900326862367981438851283666044237967717416952298516334742100762164154946104734364057559742526617260180010904019664737681050501458105452165941680352219614736774064374168420311457720851770087658168398650765693626641869523412328935218174509309627899656399433935618018580007448307360253447042915247880678609961612229239840646917315280770504361496445564596184049317179591099019043293966015205720368682490602998373296731151938824387440336427235952637292316073359369043090229324990209019738385156367359765188419465041528987942278695197714513651805980728422010921167635373024325447849519574659957331176807280067560289485408907436618109453832385430976099782727681539478000680507728379045467526048660746295652025611562329386388367809078529610399486817181489817691742384150246029577208197284518239294822981284038592196433197673933128310065438491596151142942991021876484758479530009185209567435602691869798455030382508207449920345933839824330666468957154279363667254575608753531846007180060156809150030120723260766570931441527942121617866245545923233611233847055653720460240743676691279889974603760505479957769574769301952935820620196759800091027078159442744112087943578313341202225867907548051811637695565253643941083487506400177204214088827725753349614249743516063868333593132835818264040841450074355374894742879144151324047376565253885059611571731033725506900241159024783887631206611650892880286852211348014306727964174368905354293589004949409426692454565691867650767179469097982070968599274568911033822468049180182844684833904408471520778310216257083525024692841831324529931818079089812810426221352957366843583418967075227813630290580385147483276285128949065527030366635647319116431801240313105223570257017980938751086413078406983886051833687745791301119394898999462837403360461191044363838115018284917520430771936594494550071737077318059932620824851214486006246417386897821633188596772421151595355274344831316251884014431781186841304037168027748658413652604632574164711053463233111749973218912739071531606118333330257025236042885504959293822869138756888381531066709523099237054290275835502681048235125534414402016046948413322749977888032760057428316594738058386751253666298504238405436643612151957823800288278412701668687595383731967728944241057863080570521261617220299683245075868696159204628450318523764197243829480167955467961928654554899043746674778353425337694062336758167913906484460805077315323377287939464679254744983506415874196491162493459151250835787724149161273021197667560566171485348802680040259250822785721518838704921811232738558569270355938222259802902262519318802098054282309761785647341145069806909748934403735145500401382144960593537027238921257680861499466942749531649214562507178364001091331791869306061318600818140319997366307560148316766019072254840740448194767333023665356540368695868804273518217197184357144130843217077579375333923121623367127298880608177708688561676010447291218025561824773508284524029622490519044492316836223571122600824945520389037893107836292584079923109626168866669307576383886763589265952725591900176694801043808264337912000146626980069479498191395590558025306560173808942495940528899796023767090028909415010471748662628639879324230813310523254309816633734933807769570073028879075550693698554695399387516465767309349383513617875455477436957931765038807303277282757985180471142152408232655167351279177236467954703590004821569280260724812826647511374893622420671071721822444624291123192142888462106803865119896644147425308174158984378073698276248677664365091692935327695350634707488220510209416491664285936080925936646087325779239053539693830017621353310529627241318776850182094278798124245123013819772888680884040579065228912714941463029070665558531053349006490834926992139802411679759320250605242106294045664164603831024616681702212809265980542031022334956104009213414952317825752896345324792245585276005443722853749039671991296408630289233643844305155543112178196170706619619054634169246623836379689278902508640201906020585651548291044283872630859190740271596087471372202108654602514980753316941847184496444988629452185149225214952012796370485514835233131584789345830297075965250341648344091206819877332262400976491311181077489419005590591463706127817542779786305836808696780375235043816543575082167720969453002543212755186531149292045732516230825667665745702946007134518395228329341958569765180800809880226413748345763220659304848679242103223877550298416854151775925928051077386439917298853631611535571382196872202733506943938309925102839990151138712147063749341462585698864396154377844014892572511662071689541762057157819738157830699411727934919284651642583993943352109880702003840225519235383844332043694656440076457562519857145828714862821739905193236230641297694708366862611069164613941160238948079560179316390111967203340456632431703470767690377322709228693626333284858161454181135550784481883451568637402286400617263486132066491841578826348540193308752872809440131066611901595623410121472751179275274443141284723975165918773331116002026208304095062397131151321945779396336085975263075557768403396328805518926856709664321096486470690548423886231717937437258368875571516926821204953011169004621119526844057280207052893911584337194505076104150240002027191914405484796535541092612854844548124181933997519514623157326577031563814966143524745971178642036155130294401069806538291342201699523859659163290006698492485820176300698477641553110008049547940059104263773780742674519467487825878653389751517641677228379553114436300281074961207066954829801924181638560272677172648221274952077314085337121119319723532500359326634664179686618634403739681379297156095868342338298671014936358027026209291521527743225580802911641897678790663406487656946296384071549641039193298105885263838763152224373434282356001894231910586130132250213718007257011917896359174240512760941772803404131275138780277120383079082732959874295995651927630882513620691634870978778043814765652541564733158681928944504567036897852222654973857013113085489395794630901186785769117574984998514557263208737142132160018152432873569837035966185643315352756728038094930782253269709415248864972786981419562819093094106553798009922999040676692087731631346841590713339187836524022857442789290501782133507895884415370232472031004499495813463288225594527097559252034351554062259613104692938341936665248176310339082253704808125932635480003449862041836119987346657683093804501230311160631765616365057173614033458706491485078902490797363138425676055690427807445887009894889224983580910567044674405951234100800889781648541371340003072453365318964766781014680219265248771992719044407821163671438049871776975551212878721939976159131498066475064150542103249457049408154578874991203816328893955278621751523951580723627216131923285108418484259659047539519004028418365347965979143758941992793449539004134114789015161334024768142365961586849651120601544374705808125913155708377875893237211585553013226211827166434379288908532207548658433580156416595823040472605455297183966098129029941303650064564048275129958693383158414000257776273987058111181563295915034520637269310446676036870732736502582781284814363150280178863579660275344999781067130332488364008269057375314395852450410663477632997502883825007548483780824084512899940120747087293563873414256035921551983762134858814333631035994710510275448246113858720844211364159913706987804765277826603465978815015369285078214222037685063616931368560298595802773517268858503957585940925643999542908108867942064542415976046913379876730217077319971940187401919226307775585668206779949810609849935962931935904720184229350903097025976518675763546225502762960681185450332132488383267728476782493162982674436368822928541006293158370389510681057736846831480270275671317576231521093292597096545262360566943186880297433014203977724322891438077261376580070715013257582285700079115592965891201665463558493395810846336391646427413883239164161863048013644680174965681966964327865901598264796686557054870642207977623858025652173317476564492807567775078178524648946205266500660023967554929901539976338667497425339039268851542585643516836142426214455582009286722110177364282557622915047204361429371704060521265402218741132967077893946662974511932489297234246835520021245472793439999048493308389990421495856909866807725404237830644976062559968151497984264620551405279863413046963705903453494004612050489610641562469699662911094641987475118298068051617227549211640615899175332095188622109218664897797358551807294589519356896163146151372634761197081122257230556128558301448757383061783989356962299203244152615988371937862252114790994397648640929691522966644007111462023446299522988991946354400176471611169991836221571296099366179305202166217378086344399378357948240863803902718876274028889157067892956749679247428632601553160571355361847359485916674284024635492843348976697726262452316180371309932317450824533083456280279661225264729336014593254144042505170360852299014842657247465936700090009267665011691434004664316953738559292013877968270024130010761574885718932621348663836430110006045903082655016864203124968053905135576394742687115385007200037564820863173821341743202911150397196757790287476084094339548278774343878578374668491217474742545010418755088955841703368619459540701430103097059638313594359908402358141509140403758050367968371389667946767237043126380782918437038431741996759939702347365560733458402679637028448480082835530272514435573645904125135738166214201920112992878973585120006908855308339492784146936693633599991280332656589642297500281690366349935400854405833136569822961723125768191527875254772204821032417497952725439276322984176104246983075154556193969839160867328175372542074198195594211087650210199786124407195296368027898498275333557438472191498100192232877480176956791378631692887036831224188706227315496347137036372751370815213584173430279557729118134675433904438104256525561829778184419851088773785085305112836465935684349468774235994661938186633754905047425937683752461382623561588915185446979262048747022376423195043091286391763177701917931920167840341083527954610272631160350725583715083859603385859529901705165063395955289964671359501477702722034242293954759346296807953883996660084713151515421562686755536623782111915438341853312882711134631943513195344297997810012805150117257029740291758213047856436702775897592752178390133249384148455691760460600613660532269315287099184414902204182500087054883793782120212843874207576093098634228663812104124565581958395217495319898942913252349755766459578122822440229875662503303523701948376965589181531257271815953727298506841295746613532127845148221709052728696710767697717048927854809291804703381979111119533682126078940850528837284855313969105429297850189717879002698360109317861733199855477235917121105747494872257797490806262503774466532895691409696882912762134474430260135274241404674215251996686740364502790649457002565321283132183935252029205483747181243156798062235463044641340431728864167984399272167166272151963265409747293365833732128257788220782477994638066893211770779699974476717378181499921973149778139529769052512023633193143368864460467151830457917111039674193649243330176653777042955543726761234608059085376509447961740598742376071822381563563773615985435343574060785687440176892485656760465813452500872679217137529762207968634393580537183601852604991861789760155607041704713997032621786338794067377153260769545725158947310762832234674885544997128475375853693652341529600861232642475501801626755926493935499733788064479239889087087954424984171841428783477159620586604068972763830880473831162040556199977267117651053751842010005038356778221874113395869917126788140115098859041245141954993873557168343056449491181825441408457730724218106665004706373078155793503915196466914043361545834872640076204371838277872028126836463966383513963227910806527808598131346377343189169239712786210859480187318118380603370497274219661149687679126146504508137092011984447871655572259265402050124057899803858586633796548835397116154549065744047101627646539898942019872584649950930905069349578731686953641778695647993706761870198241631916187868308533928733664833003741094081663776567035336095019939055458685045559793828721894289518720971813363044724264147966428738341043445490158125658310900659195989652924453409840200913803659884604108341305590233971217255749602643449625810157215376723103410926654871839897220150249733160446872832710044356646613080290041777841490625458263628945305244373127349061546572386230015405939678490740050515742314710557458552492611469388212816758017280401489966736287901224356929562053927362797057127110947501810344118932514290992401458283703636783851409642664102093757934016394553736453964891831953384852904167815438771956710731516117811012136755367279802413983772990070719601844153996583300907905910421044876477382492906640300369325469337221775611466073306720438285970882865530818292537803246536566776298930543487268095886408124707096723747182957420268440236106404934921791012519753454068429391758079572914846156997643562940849309144020210168398527307299738249615830495140558787225950968292972576191675787827531400454328037713744170869663646882298737556133151851774059066637507744733101797696492207018882129650318260890504255188643701611645324181954983763098407402301203413232356163620085047989391878304244820024278384181170216775803237338741348308963070110248953222387578034271912671909453508284775626910528253991552649276373762145156479112607586819125686953118125509482935180166504019853486149511450227996492504541395672244755933790902365736149858839450371929522305993040003905764134103538211534367086808356125601495075684452943092172882513982557000009136434041009730142652830428479549117384159940048186226429210946701036457799308600419339230542680633378155429790085837366248111881746226272950072124356688858708343590193632095305155463383170241177156672759198130791548558247738703648391888585313749356079952481324925559867324811819760875144253948824943901142360000915187903935121582859579987178956451826083803143590692003600896822393533141890957499761845389495824063550389588796219791776776990912143089322167466530399180904419140105219979596078019534252752363905627083218884995994934304376163218594256824013890308210632237806795763168851178083441330160549230726055903045161467347063869732944268278023748856123249648149108278517941049818956158897483590210892819289406077672598969566761677789121291346403506109291739546232877905787423958154382605384487927570317968616956839262675415697691949013950125479842206409662701569062967583467101352418212832283796199796302984271106076977463412008087512387910379224376913546425831474651022322513778156199920815632759595600818075888649933015192725751663263175362188737107886602034075030943198114980857682967022692407580129436305588542918360271632304718050475276755780686125156170110217130739376260065672772875955865058361147724765211926514237605225566374650649039852598774944321655056146667129274966150369308455271193564611003504223714337649259721425607962909673057630451417487486700936611902952616137279229709256197512095908599787053472423573219104710217305818826120732010698102939827068251163671658822106262436764699809193634864675244895396769927121334817161300418745654927641340154278130559059984742425582271623783696346384994027869228981229355638232931001712774097985717090057217446078929800762755649408040541423136733087143537380528668094183213687886884870101230802767419392497903279370050974389182449153198288731314034811462927103302649016626258244039127888683455162232725812192194959687227510692463394127508344996069049880595932805132804384454240412998957526634783896878869053997871564656498125731812116696244807395819086798132951032333216365879568096857785063142659877261467273219097905323706739224380415555504685833227482732637285280034568637408627415128906089938679608726083736110515774548696379586622220657246897747056850959618969502379542464551175985649881260924935300924738899159302368460718496691335907763526374260650115430081012735576955150706931009824367372958548836408311395358873534200783336053088830261493988685432652658370132936409546240701579171640302123374487696166691827816514652247724973915878106162789836218612100240985923309011768575236993439750189255057271779109403122873091882433149489838493888676510549563401581917978511576545139519880592368033400456752731515507610075086148998157676944541466612258751639137930214238731118288948324746968752639438579062694170436838024693838336406900914192622698864450474863092886985187738402689107244194944319380177115760711387796184533514904308129469743016490101878695394033100822300616525325611459132497740637764973023523925487416111005862470694738820879265071035919472347004792053714397545138835082465732688100333711452304341801706601840674435470389891777982811788121925216236775347001211511216412437660694109954009713944465924516533278916970801221437360611173276744906221116497971902003630779071912683847239846644832577920944275206258052958441257193838788133301117853033445967378484415100459784497579921191033887346445263004556600460175931061665156448109088173055283383906256619359994755099598573097224220971764620555961156802489251305240237989179545655640096636684875924887085072729292906954080130881064582085360317672227649756662740538574842993132312006914688374906767496954670236182704463388330491703606399350334126505645015060274364227200942663310307113143853429987968203531575407536327392578634880084125873072655580857707746581285295995886150369291243248268037522631644131805444506727538828532314562805644681795333235381240584759783541867747542918143304302338229615268911176222442181989209827457388507640520730083338254456831493051252362159097852989595316405798805028523311548028932989142976923931917912740864030527858202673691648451379150113094000316931814623751187615533626315302600799357023434283995016343407677736240122715189947916848888418616879509144994733661318211859301816899888811721217538689296867214382103923059596206996776889172020823105008028086439838183251076397889993112240013165780367726116804807468826897308505186615130946203086375368759205889881762268359215484251596101510372239404208903123432248189087744302024006024646894282172979738362092655656505975096855472451741777818536374212215481258194040571104461907498456498069422103142306031079478904952295578419976871869548538863384182506593816895897190892857088793717293443771669339376068200308913134821671926881627079914237177150857473019469631745520137956643074763748647176204225403014832931348893722832214774706462436099081172641879084270942352102157019509640291634050449784244053939991246635404626239869216958355256847306833236333511001045327621016122658764957986210222732700257161479682851909108936156253807719632370325973541173378733694209212169906467053183847911335408849815002345365226939265240651633727458919471574891608135164046084610614494428670036279188521576765871572986928252707634222726230897348684891628185002157116499413493224458785397538812421405758782645163217179163576069170286852696794506955330491453033262345075371058104143418376560311909676670596724825796464375533129540491371667238728616878252797532166877848375982414901752495767548627042728628153052678178405186589305020052288678904952575392383859702276711444968007244892673822364470344715137571792172887896311938517858969462835303918001122242244903807799651332916749770517129970764290689456246546123772108869606622551118424017029285354319021310129271142337842892408011916845227483833461877125698953979536765671248244556295100976145797476714960024525878813684381092965660581038088079927755139843239694768082843152677433906449721633932858217158417922316104858187749230341902238223993223071594624724898531367095292528840234003833635637287321322327151416082615772538290126017284931211789997312413311880922030754670710144166509828728999438180002609204819223397999256315885364619740066526397550605171884121962485188845641725884289943503548197707544742697498618022745005756623661636950635279425246673639145444385524926437106640895550916956986368034801593421480895665694827788901429621264375664187940608324150774578695027900920392459172692774487304556286695626414754624599825292891693258079378636116537769051120442000848426814176770444083688533156023696517478435835429673207263055069765994845198478368331576498511870122953663837434075799717224964793051288003209372005999313510706084570199738839436384260956732431085960037653824459500638969528856014468185935922573317600235263738934119168061588011722724719010264346679040597571547301066432951533953256332652614824589984411879797013939477443391453874103029653811977060264366797807504070756584805806808638440896573940289200074830705867393042447326827071437046791547111725165350597417565713083567489717839370321095845403496543880492734243313172517695084342618806099709638875347078981651776421142731590244192188044059434581128026887552713403676658582058972667821258363736639315228194653011376952195328740529608026185622026276148431615599943405204454132384892123520095226196509651562054202368832037463835525783719818917029738933340592377577279904798500341127768513399642102567703526220638269196920488200635912046463438021494801735782979031413827732506010502122101029676840061243181323948892248155294432718233956104291952710129852218073661746746731736288580569341158088630394451266607379415042676080335596654765245416225675727048596734357984985663663647430430240808410245475575086898971003886425443116009224228335036715900540772592675063297749674279335832241952571659364685725689038960142057649530583822506436705526589623389289321900553748478854540555928862712185517666485082268787981504441785453806207453138663466715085358926604667420257504393600640079299474193257144197003265196834033982398802557518537777992489412045123562051652814947990605520525263193560233908714921484093869640844952081311548935330706244661973598176257482801414183958627384947156483100016651115776564386894727395657921848880274489947986450717387765663613954140550266196023203660087112226420226280121229234961713084362156159520078474540125572533709041933385856299713908205532801063100425324236218104138893573366817663770591610748415063132725183586823895463371726234767987648575951999225567673145338745868192574498275416506915443991191168063681144854682169188626834541219094719297769815267674647619519379818194096744350142524631290455371492904048657174641842676938496394169792325035367639931249856067467143664695547121471673702928807361020110492140392222621499148280044415235266833305569644331367046578729941174631870327587403118937189747216326761413770675170546899472676504413681668396073941904163889416551899533733362919877423074529320381730508196520791416995089423385231411547100184157038648921482258440159243181312821244777751396898197415208413222982416389342004534126121140750858549948894194664868141595627487935163935458273921107643163558580893959936939381683969590465909204003365535198278024806633596518983190661831661114071611040805533023696415563117870627987120940302963425841089379745294583060684110187598031578857294624823972326013633053776834254286870952409719361381804349775622392281397034170765981774739365812873069201385177460522038186967694415611705772503935812923591275256635107353556452553050354861924254714080601176781011948628579710996162889993355936263058345064076069652014720296831204768495948132446424450125557744090917494387052898904847458463957134249500815435825739748981180088766185549598256377027518208897001597789572814953898130706309995584594104861818872902528650507554656802590151453129317507028247834542669914959946510348347834831619844040671314005859814398208907218351837937810156184585447820140667384743341691327180297758776452405488352706838820482059818650896307555342616195429135790187010075370596196993985934577724927994165212212518455320553184120467240729110513361374708750273833696251514756888252583126340654352399612487235377192058718775880972881999566730294717115739410425646470300525919699192809598727389058951850684318867705895930321852848693553703130355917537491284297776914919094956806545258138648250357949791760720737368237931397810461519762393947160007693490748746940814415932595736561869917673538190605807678446365293444396566005263265784343123118523506088638920830449718836488415691822929394770717832968499571784895712990644108219940215334913004693408929875075894834797340095672558204706728727799348425377306825933571592379795113190957357889028823982401302001843430615791010844467454961567470570240098062815965989632303513701611293621794143659072660962271928535709083455746486606190109524539450256158452958028760761720424885033471647725209606715821924979237834342897652759643945917811606472070089930976678492671476947937563485977292008467485799525316584054965476353972523812624943876022286221895536608321521945281392618435244171369251678633261488102836418689286233394529907353927730920947922458043313607525602159485538397675663995390564433492390559907822272323435535541392623071709575503921409145120449837282774043004570816947322052176247304652265724299401384432966385556547545666719413451078009008618371087231892776969462413858567233278338606439166780756092419468489702261423846442542530539393952334040800459439102654904657176593844485878046869182168440004204559465757189437751633481149733925095228549409071656576747385656881745357336224714189927873706510917069304107474512233566270585158257555745271270192801628833423787739288661655312516824394234178973495726713383943484095092992437887549978958160001186202773086535366854418802313581812965960924614683755416389248771391311644381930848281037671638397673374849515179074651687568441026101547645439919625023965457054805252032768208074143438526585198576057544517154167105169078503644188615131282459984590658345842738391827846729643712174892466016765196242695713818248973767777398957363188245999904885103280705821391477620298015394221190097188326577174137807969734527443668152414156405394315007524647486313860609611090809343196788821589987883109259709908722852304083847465062336234040374601357367556806808740883387242359691901612970023437198344966945086095010348172513272826762655485568468468228426300817069221969102919690601065832006333801800718037301671065719643445882131682699002638599372870214558271236761830358777972030838211545413918284119581374369136832771762785675850353099946558225246031801767166244336131181045676289891850261812806506665549624986329201918866002735659544937254438069543894652022436676919907468013606513812183751965777074822088413147465997658386173016387032458883434757731441326813656620728515052038541441392358356057790121756072199039336569003882825512413722588143032194116630982170453598638175546697633883011389951837868652341514562597086163417107739830486326899527600172751311420400612512211112339058330852329347538876530116221314984324384012809252868470353389472101966337016332447467187672618370812796772801634962930232180423485837813453927703641247023674743014607439752432893987986570503265108146792088218601360664017081796488691229017820633309965918409307956976762032518438142759163617647230139984211352226151208933612350446024633348695890417658827681503467649477662717620338003513224167231187428226925394969605535198653888379281287624893771129556313939579396730445926585005837323900999452185874669524354273190119266203786763006464007132793436578605722932430456041948465001385336941805105945707884946158440794400219946314688794577992677003261141478985634578904637625618452198783420732358378654977651778114950947568281067913879620634749831648378663810330714687812760710121339185887739204261491086706641683186073103529694025286635160846930207360796719573145517244249056403165104564038919541904284260177463105401689206998320349038321180664682798218087979860224991522493119443265054645913697596280328099668942367780954690047131977510823605557157391284621142978084182007293166055942120052715749347283080178414055946775067126569054119713418004943196554741871641255647170644444888696366781715745483147068227283334926098521460289101694710078090697509357166130806413219541060424355994589406948458676393900660613215300312037651202046980078954825515641301140205646961615152944695606537015643378660671087522996196680434491464148288490839042374308070723118125383745971577018741343652175230618567691109704567421311801437859714185488169826330244075808868781253354884791122856620143486945408230913002136740462180805042839598888876892774942468607008787114830880085082219611550933498649030416470207798390906404492298169392748695686261851695501750076126724728362154018290463308473127230566326179417059588536053315675735062549388084646165745838781399852540686060320404271074346257800396023424992959275332990159959164012298481194840891981204906656499564898976142507966273460699440868865081445466263760081261700847268802203581394009148927371213713100161585593683610601789900154244154367797653323493390839385750126412552744854153271334799334607796682318748179140469537134986941333080442521844016669831607904023187522497503135434447536403378901225969668684374660124729876980899834936497406421439982237209167468039085980329948219412648725652193115414629177834968201402392997596556411682131740597649033526303546023169142875557564116688280688783923329143879280742668495122873235878153105008745126314229301082951769527913645085186774595829179696669468820804232876101192202444746177708020062885212995458667218003162054456545329634229410880409224519060271080180129979280152976407102554131661660020222737874083643991295953170880477468023473277690724346856118226711166975541524685443160688248290740099443702261271866290733124021045135061652333862178786047016604577801100124438530086014312126942294930778623974746197871672939559760693998673967187457941807935929174519778113983704257649410760460494874742183879977261990209254952632248302683857089873930090921236614646343711068157837423029006663967637704741037835918491874329746278940723140080712662410388373193305697972287681486006985188403317908775467634289354553770816304370470494570668104065571938180566522453689085504140731473970345411506269757589773538867581029221364815381242700118275206637552832163909528884723536243792261032467221984827585859886510732402657125871142324157360046577581641438641445661329361574222328043112898351893176964323322569505858192634827024871405897446577931475495887405227680391044577456627366924539224244469582739849177173813947923694055276839390009476125829596671641513264262982237067355016554185799788768270408776398940938045853022441547414832779815686167237026118409325883366298623803489248460828501593832740204951731814914784499905342626823829917624405770849542935123521862621925812628814787666444081112018458394977846522653681756254573299157680784764417793164906345018653597727017288899888569888907323757286904344624364918421080943528547576577154675116846197524425698429342236110574204780776639612429770197797702268555811863300966003835787412518601516379348318794360913676079371173496459040131516657334040182029886745656727061541114295593247233581024872792218752194397791404943580778045420955799612600841730464172318950626564890075807749956373842842865291597855461606886135537735003431966718965356382510611717571041045281011524566404849140731463358649621665178768303440383847893900328612087954664315324763610918700933431399212580793068791180152087168467789110055762276198849776959058415164883283549749449855896522289234580981892865758265827395889071094021622383951117179600013118780519903054403134322200224003408549385648279725522621148142945763844978715816014944622333818454676673064221445774177766624308456589499821241710857099431241033025028346184353957667100323716167769059868275899525450697981036808396305688948307229562949338022774486685082243195181764807109644052084579084708600656872786395659576603636314804185730155727756470048673553784811684937954339221642155720381876250024626600348925096154100073550699807416208768101753229171510321552594742320558210293550988448160190113834258228691175978953735283022901026433247816718660233215362028990333565135503995117832585253878010063706279806188225071827958418277221221780444878232258665078758491912208747112931298816792479345540681604047459801275860118495437583221149389980705824557589072008585851605696165609433666752023327451787553352814504499782605676547777777788607248502005752957042956958141112648610238968933113037377936574134549778042051690683504228185674903973572788999839255868445663065379173309168585930111720715612285717574641563898684108469046444903687902820896148772472216366405454844187127986711720734937729435413019016923001184506675340080901395004044410247626443438453109264068041828325937952802277043869716206678125633008809453959119910724609846700299439282478220177486242417711453746253072238025457830629661919660542858263232457256660480251218777795694702572179802668524366957022453991895408537806043901944005696293916850553345969868335385355623373420015825089740561441522830142174176742428190115604627773396791425831810027523487520334848780374331928425363812774154418365242384084457891993212081458162654843119030745878598226982055362562601381125760666175519414685771675067938113027325005151649287377605250752439738145220427499828279737808954864722915191868432702807750571203575074959631109986034545232712286104197914289438629785072451204410169008244987536001621289512245487702114091942223119986144360507356107395616070048063037627620239023198997498752248538382359414526123689208989944093597237213690827166142876291378655003311582418052852332065464900277173745590919095565358951212480738090507122294244260891948376464453607273833799638169245892993591100558634280718401462942928046657544381175889307574661742535555281888216333765485908894519821330521765908770349280560194632301197481815943142481524165165103535641914049229502009409812430804068313180897153086815104183226009972373693182451977938683427672242963398783278004538416572462373073705015961061113192047870331007992186071916558627570464500747644592011674643877346799468449372829524359624331818054725192526511641876261907464725463958264542640625191241819109369223618436634162610688601214268337558556333812733992879228128402128406585535922672634026880008080832333036053034735063560522922333501213581194425591534708539788449553022146902455452248034478962503809556759640325949109093054128416914051874977065013718122665674735867033060041890869413632936468426873608678537531511956932551177229531989445243380757757101225062941023461289346112943422777959293548892968052583414573046584144179004626258980324545333096672919093220529754071607865139415805838529901407689833873502417905736852237696635365768756636605191957915811467376935962151936592764801830444441206940475030086067574278591534691126097857068072767918245231588789750653079794854144123673926901586972251079380578863087449687699154492031068984237926245467948267802053273402116102709587700947358595552543359532464062503399809101681353746669181795335348074764184693460912432438264351916610767539602359812258993637053489703967096013675526157182388009430034251100755381577356968107891963564931579671791180445419887177609065003489209376838681750208437736958046636672934853810182872398265623194790931125860688874832228298892465038464207648025804751786850423332760698760241106677473151291579879519344856799206711744692821169440656091989960928524373650344024795086146322994796895802382168246140009699966164171163422503101538414431564390586239122911088270565758150380905922300911930135355508992524457758259514758234809582654745279623166557996042348719862420868865708928496806531806586835356187930298853767467982530762431870479876510902589610652390590364608135057465414863483633876911677549823596571856522075855811189096981328547507898950599122620106936127475494700298602844156285837117547351994155367499113726028155130451533758114146159385415058493151280039287149519856007721217731807406247852729086358504435506169799443528732134484099274500282206208277735426240686864159322591597613098888602329786442235888251714997488543702470153510630220110260131709136816320514516060887760236810394645537825043380188594750456479861836286416466720818247286132039540793119773197129649931068237732351695631161496013132059450400434537631955659669217816248939224979694784213147198141524127250309481830238801088259483959944603724030839807346244660676600149677971535175837039145243246833570972685141449770567812950764095128395955574681268580978216746615046013187661910907257487946648566309459158049294726477688162359075058327615123509020207167037874215638859878251813891634808941380308234771083688023379046075174048356353865329166388026764437715689339547210318225255195807834044977288219534426043283088248572822947835373073964347291606125443486473210206778774439641308734551724775352523075412724548688957004968543831013622962851197957017727062949222286987975414664171367378985030224481304857749732513571089343882323651891498276376482682641671920440369413605091047501542530708304652842050226738642304555115207736296267463386842617212743592977280252796277967023291093079118848625148985207489752013499947407222354166323794376223126430986101668069045926572763966558619315637805657653622010280641978674560305378496100346369703193543796487959149560796494965191108408858698492811096070260549702401814795600265620469183549359345513820234277666595520082439939880907742552608805294431048555240126665293080886578622048994059875171528628336622761739246415819252786438909691854638289529479444273662021063723595559778637056867701649602477610884970803903728562873043588340109573043636221392910717227942585253283336464474492007320191205396479806207260023935707861308904374863815286177630604151198099921496416308971129314063942049680605084036793424349280442854630259180628379647243841786718844313733077474824549955793154707798097590678618815626430370693136252539904568663513675909456001030020520176953955480045965327932506309604712852320506125377806956957592447765102788574210858392885025174073710762396740147632795605887802517625819605168083555740353192543807257203409017204183845075341521730760456890444246271165083496254564582123992767469479228253033369865546547473978259460527655085764299962521923154862074934101246887003086035499750609353284905430375145846544892592318732566045618146711471128111867045032893147417376400701122334778575522224227886343634031169253502387590895088454392057473894190984056442265515818453137357146410601485058968036811046535989086146973693585959306291150298316856967876767864948682455594385653578191189847882111217990305415010118961453372446396996541031634714509454982060585609396852658207441511950547799630161959183613537387237113683881022122179402274991590243394991617489885341475203215724105361883995808089683237560234672662651286747204591061962924359638644963739478903116930046752095223975389786533686908093923351799003370514724938992695557149813157119253754786751828273824015464836834021369195841542635686654144451639722959756037796745513100741916482448245296291130894580481780356126964273274485430113794596429165650549744506891841764249881501925781179806228346289190295677254809854948316500407899837578316412145683239619216935050845610613770978935442489560386580496147362789697447976499556519556558556720119591508884776959743220656614812785404122493990028328782964178030069183521573157614310312476135771530484161529169379709076019637279034181519623829074607678121116160510707539711364177650316849405954493806359054488786841618726629580961126503110602943933400617842166506069780807651659258203752263477869746454699667390911022033304749343643922466119524434280791753841396723059817232572672137910179440293269572055531684846052588141896915758063150230198798609720398918628824975923912218791908902438906474135870815028062946768302976519092112063599369044276954191689417097202717080863142167037660105479421095380596107098762846606385681587408792029946076854227414514207522223067421870091501651737206625415426234875783809472828573471912518835400503232993717209089552352771828640454742879833152618981918436277842669100732840618854195259629409792637293335451356461714737285776048766590154777037712769376917860120230838547133836216746854562651981481461655570974998843106698673939840820179276531324918601714685375670735033651423933220486049784843653842260407222655119067396085948839656706800704062932640493785528750045361668612806189216356054832821088207754868673051902710046058276703123455414420396311949689265733456218345027783987631864999001091267605164545335311890290429535800034005571588063071142319768033423861614680115593902436111345626765447504305482638155791108987632859265578159358839009104179081719476049659404159748060475115480540774088793554461900006656842998424320082559141703046238631940130496079876696426817441912091947539075985707975425397742218418674881952240983745385358389265142695144472332025308537094597314470852464627428030009597096518379659375747623845198247939484358400153817930205921669272537078404018260182684555637710440631950511542425946481558966177606517209526102769402292041295986393437109916658162176734716087933864316135028863034060920467660837885973173924425721147986647056385642617540990806408767798082295276505632838566694025474071933372811188834577485922140635602032509253171987428025559208070737173603493382806531730877774756313427859313606981043240937288876926975993108077021008799548799987693750634630245538560764829128297062906242257736977992547901051835898309696829241779548197527973291565593429171318329280343496863293560188822366890938772445704206669965139542236329905558614593491531941477788225978511833838656661187037100035389094739709718610641946275393023024739687089613898971234412797007570286810015879492974134070313144674721142462343807624011769722354250581349488530439307231520884575095445544712061959928890111590024692732618412189455422587002439919353678582958888475198268989040747537584434749590246001136800611853316165090890210993013561723722734006784871596879003148394402382085204030856391306315154939364319454569375530515318342276590971510224295080603001845726967424429357183821529176890747542063947697109950186930238405465224735922598974866004459749521497897065159564077018499482258022622824766466171345970037896673247094228959814986295094083197549750653586395589551065019295926082196079271767049884335834350107183239186564145797726965060907688887662048819992730146375902257266667379292293076105758180089225909075265455839300172163098677688665166022139622355389980987498646907623571731583113371706554925753308659751495582543317163814976523296704084501413612896224581899919723623954685000119110886700671789319382595329361893045765762417578205441279725276416091818371834578886704935731470077372005927880941434195382455663840391424785332616468857934381181240511442621573031379438509000234950835851546531204521383225425997764335002664057289905963464882455109255851726220248095698846056166116709337675198429834813980765460893834163116323784928775756248242452743359427880633806676223643123307026832499132734092666458580298882574995333242301931032126353022831655767774167346360157384683438687876139631860210394398907541570528241145457083367040021420330166285834010905333310655892965188243308756150477462168131487624921706108649578260517713164195578489178528802611097562916510817815903187991586878939166799383914546797859055312657780544053967318888839520611033517356226349900698117076106090959946532887933023967656543114429975623018663466543482211313210097972652640624441677613622673345977415939510639364920106920508847887945174014560703195251429735818681751705021390364694871862825019596304370375213450728583324948405434584867915393788184642842118149666399726316570035769088612448942655163553853332962214850221639901613111199831363198264376805740855176175611317215569320202030753490444715343277810233606986162891502604763326153536355383372553133125753562564446530047759856700334167790603661533955980729796804840826406056237225099145583328515264213565238133238077434370192961699673208704849168610271303200848884950685695064014116260159921149202511162622272813782084850524293513100258723831651921569037144190164382469287159299406711088532819042891937005751856398746399817649480470064476529017166262069329153647208208900131285513955863099587569524244307843273062158665990444211149740578620584855600317194020778218474808966307127222576318483309920115717437673660734843132743743819699618995475150293616992289821196314178436758379859928778639598564405589829668713858360141983770084305836364078448208996477190278825643029166629015517091549778282298611796911510087299342292746205793217586163733380207705216349327329767007920655739384438922789611554336905627444580503882739577285385375357190535036410794103661947243765685529153715003255495244612758344824885294427454527773883533081598557928707169917548695224573820693565839421919520501984272913887369485071797953903492041571349272803691976901675645977442534958070211760836578125482332765983706879634264975406147575950669759168500070472251907875788253061742967423107383671260581524823781695505641168613466538969300789329958724959993957227077047294488455864191326957335170372228541400601923824149014075070900388296567343316339874697583614767115603153941734797441688083938658301866867977952230184291508641440880594493710906123297813622785096498957141622173656621216967766290298878772047479267784290232307498607115623559091842877808814811527839157627887102069186507717641734182697970593698644139845716369610158006373820047917486487057825114066209449401335210919077923736191366262417287195924944992571554770140611449835929044337322353747507796424508647348823683121023609504207822854321324948238302655232589613013967203975169433385889031769959941517602930400789060360481656994535920028167226829447035626341121804099657571496854431546206069201471893908827307642954593322166651434610815120622675189039465258883082235420568625561372261396843581977876630838922274064861115011193102533617875145651732346235058432427750333385427777739363792029190513234008594090939418186725168779569841563342285351637775100840230207296372478674721300567745668873498541497141862953465606925046467365537566786141991170573253825719259408065673031309867539000541254424156691828492757671659424210068549089049665334150249816794948220402807089827200886220755970890130291736185200891365706501617026069268293314452895373109301223781676206246225894265750912348215522832181619075380369039819186450642254189449021094388071984994186539461341461602063932884559873009317169239981275386726028673989152447533766783577699395372768666407118583125250422392052056864338426081652101527522619854263171185746166986607254529558947830870052190647091749814691487613488214387204812786652774481387000953274124361454761114330486626027900547703975041906379792730072798525014080143985660754354162548781177711413326953688799216629874646819047476640864291679670397846035880739641534063018606122738489094651787941345625857165672674679972132110683047800429518954646481706464294675814684995225135095099791839800791224600060771054368701251105824793190076689635581867441624587531026103541297359801843384100135195423925791014735272924556038922013281712491523600645907605090088293968722998760949088629913053907258759847109396585430557562617399630527097977977308640601036110049021552974716687691488223005894057433800386140010027047968181152535753206095365327034582779283762533622896311715933852039000522959546395235630733997620177544465142169778918808120849192445943862994147451380792524020259384949644741104476538170737388714019383546603800199758308889926820374731269940320886437261921489215809323766527381454502728790110846607698789637940721061391391959838839489131536011400804776549444887480718038765997946417330252604366506874015264725109674187341803875575140714616182699811108174101732017513636165305909434616369182436377161867071529468835533044503715767612669780281567134915297119980430091603908906568216252721295209563792375404243895029815407903226215432952551070643736482389800359447861945780304526268638659679478142751064706858862476679769126155757439835743868860577281208123627516482889759451107560905279727683372213433266441375471199024227696390930032293049069341998322454882535515143073834919895039338069697817417663769418939446060016837967101429141059765651908734445266465136559147447208180846276838299180546814822587451876910119682700794580251199210841896463401604657432096119302180525162964416599143492863169663901614767436953795791458293992329466079763933973207204031625378656323526585376893800785763152572034129312602436239346621274501245632516116836895218908228126934195893602479641020573872493065058316120509164601379718824088469281797005535142590252062392649038281056147498607178016666549162725559349147104264024460862377526971028246819917419457047800570060168901971452057520333409378697183750364132898700078413591715141832352223042898585742862322767182503638120152995709631008301647436298903052406675063240836429666525774148781825868910771604839747817044676009197625057054059762810467532627828023997417566535293370595540878551391234655328778003967859890705621208209752947456541333387099275641486644500529343777751655304278199052644958478418838031674920329660204327104051549950028657874036703785583569606727103937796226579941026225117096369727200488575020085920989945274024498455916416942506350910171254435913249354590008835322517811301413305428353168369511832585557886694835728125251068766295849403703323696607864443867526748639282640372810705744893704033248416540954320064418023839768008590630168393130746115094882401093197352944781424765686563748854490058242048574039558444980150486157889045931817758218762735064747336595630626480092008702110154109655868141679623365841174383498897302729703180330040431642981539585309508131899743299543628668521490257441137629119094623075758302374580114255547947936488035376677604987105310612286695353067489694808504212987654087792869115831549366230162632428771264885426915491880785341715656185230278491187237500526749175801223559699364559594150505031180046382297463790961279068064615462543556586783512038406715896827790798339198912664373021009252492863231719192630577794609954186803337877015120367214142759718683466883803069459195979730594663084596083075067636514209641841937586594026406221756479152015057348076728461177242438264522480417778629835547636424903122900566595809481648301588904919306306795485204064326093471443848108480796187048085093465093239807682180444239828790598947178165147554843011660733906574918166200689418169308962246620979051281053909914963726324161438137107187160000657904061272728556272923896621553525198147480807300321027914225325661477580781137667599746500694599877373255693009041336168990738974559193421511822237194105079597674422203108456833279600558548005223496434752612096638786355040239459530027087222857110947436861642737566760805436075971964075009946337179324024796178563634631530334414000611580522408677801838713015470388729215860381852457858530623994372938555117941260954911889365286788509537934619679602706800637508887552122558896063833231475775867058666555429454975595183810398000688777900827231134296389601409430159215904865902645627598062172222025059035392621458141424440294518785902500356217064414999110140618963012095286694853935814884348067304256141115548476075142955312804345842529300063170889018532823569676256587876912062816816917824113210214564947595628008994019470189088556784361030697415420595086696370836325788243139185141771295956001922002359702372774888285222489720312630519516174978216514797861466686846876476513267921728029020269913847515289452946269915225066364823731690319848526249102710422913052627123183687887231395244338491663773091860131933034234399752489917321355602329982736767228035077623014207871484535240136950666354183990437481434642231153857787988588408324989116343020062496527969477152048013592524400047215250054104079579429297642978502110933288694018141062487867845074830629475323151460586441334631641069173176031248150099764388260855210653789475084010716835465411877148923163071078464714937163952978622469728977887496259748142536134863507524635749596529958084819100848334704431220389999101527457855171816096146433264569689983166863843603627407608530901231102658687312993924816529059060119732599561792769526515998295096688939375891991826300644760816934421951804808572003732765188307939141708444829445898470259380394056598072728359314170956372425781976664005788480172914046693986872697288494600198999297581660121206927103511822385136899551148018682629006215156733623989056120114853854249307971137466650072409466376121842865891917012089250665424773761808016418277963768575706754981393689910618269876338970780145564055961886290168304257229854236224386370494655581341050877468879047683053532577247672042511546240992271331087574739083715449971265441500009715809141800730524087820765973276432197451202385551472372919113079664328171377620062433951101511151627187174038415231619253965869385746378065895503565981944588165240978517937426968953571180715827840392821564013040683578118191155478734692599481212179147942821315857575377723985043228249736106580038318661916293448544892892191677483282710839303890935629946167309149695957952774899474960507643911422132740938386048309921804510498190971885389796282389002957260599698328871753562009493040037015789581634917096996087885304937827365015526193410266273393620520048206950474369334923096638750987406510034889575018749272470757755570123019039885574760975495941507837623827503850666294006431628119846509639566050840194993224242074442685669913178176007467857874489955247663038099513798483269741700260411337062834180009874827887748263530263211145143584870860301321906669726882745524212607663649747661506859711249868839636904786207524469627445779534410983935940732666583715445756813491798412623055511146490278588146577218059387723310414154009199937648344946900301557090871633734211991643427915458456442286461206722048286096925448332799575129487897571814142443896051604436790017227242847308455772053204776810948855345337535971917920996960095237519317833279855130032455243518065136641184163140981111090800930948336086531209382335989290962316344818489187257605258843225811890487369371344755269195238229220240715133853890333277702611818708709859231292946372924267212434538801309559837009882199493727785525781279243062831209465942470213659935401336251176147334328709491091559091561823986162196688055867169965217883655929158368434191666701243170176055579904000771100697180724815318183632246413190817642867056112895872725616411365033114004269862633713763892717598860635510264211091061383600296833176692099701379309287054835812723535401678645698036853447060452331010639354010294865224198523684252200141355292788861291041801982376125839451756549257851424569968430098694581061387399686277000885946771238448095201157256902731360585820603594129702355049769567220197146114765558813495228716011300176897842803227476258926090911038083739712036464132897560053243047776795804297680350989194119805587216857974718446371444502368487280806129684977894421618803432925873518739600385210630807984298218766941069534002882466849801349545997377155231048177953850101116273978123518639075206183568354259602044612461923943453512964774069474175403774877331239907077887715639547963213641170721975381244022548831846993855236764410238555202482080438524152976964709987527014402723634149614087521606108071957196774029874803948063779888716891382841872286224195661875180543987767089775359724176796788585941487980500133251200140379876882235902418818655796919784460616614802295504505699349319064024400670492222162542282487382110941802530813315412749249538112956168966724470724340067805085768302774691882728672390427912475150669883079738681558854896641230274357724214912239069985757981857489734098990961710265910781462435759031471642924548323337306199099632536640881569006009048668669671253752427748374670706137086909230114979840741022996625358703905357900454240206192938742802721784337851362028798351989017291317501396915070815272601782082842210635154744248223649186176009937139684663596040150054914443303533179127888742658794130917151969311827998527483861524421451647588362596028856916499094295104599500327211553544472975311581206470443902174443995289029749488289113703104142071109233137450418513833509092289821924482931596172196330711427462873857459123107790799781028445128471817491852269507519961579532281207614332897916269026680654751654803940475430609963341614568516847655321984531446503592710738692371709612582072662997613575409999494409149104452420847734957287351148463188115019382627507808665935790239275675076943634506768779442403843699962008632567278432104971579858611771745500141197754799853128535772656158570424961398551260676402472039792672432788543538950697016083260159138741563704902279452537855818303446192699613167346047733502454355875372689418596330947648158469520184684305808083593006631684955685471399723198948318848421039115556777759544265309544112210059437619757922514981726259993081480503515879668711494971970809702086067667075397799579109130862675729659228840626505888470797714161161807211035363060765009329021858888930412918322286290737566446516574829089100364829959255571744144973878144260740912353043970828668879541994418478380547967889021850404063270101329177632603517596762863562998365188411148796334122672064233218707806227697418628124026500498960598781232671156315045425124018346683923615432429175934732377806280006226524132129812260184476440420325897163823923827165379399490510173907288959147087798536919027493461448083562845701406304958011833434866039444102741635634148158371008723924576223954551688733286833444850313940376734261972126570202521525357107881438817456444287559853124075713506337738217268287382626162003870829563300582144936476678063363886680119255985026971351670183793840072258757703678333535917358782980890128242226982751464284929914034096971448801980192216589616514670486235444204630121947191263119055572059579278273133112892469154598221290035886759117196846934127844866420228913773220030628872832221216479619018073299766204949839739802732205006457157510503169741213457185065501215430091648784648115248897402981092579971101701102580010640817938986538977642771636311141384592417822115859837676027855256007104438684654140802991506734625261779647218210156523953875233593886217814759950006063558744025196647950568176773710288005301663128351941923463578464241027916655013710033373338387904838516402337915627252672897041030965672921451947730034432929746482760460739582713571544683292782645241503402424981813446987496482060376136059574977836409976609182817743919609270340489997463346676639600501438857897101779607094436905237442745937332339244174735390927599337275503093107457555193597960617023471978691346710203442787090729494709666523025915554846015011541081672029937113533982956154820180917009940369409383483078596500366713223975642734942754608470462260709644692238770023902523599707122665589325417249325441866250518823739911984114542327023933201149561215737783006610699738800421432600198938418262036015579933078473903332502388344870778067919932910252146041473212016185215752997023603452146600618349218844741350926612315219548338018926686317320200390646996620024543557843243242219587327802617316150373947628823254126255762142390440539240610419190258129769508668539132413182357175863591357431312700797226725929102333689951127297843384342816613477301286243744652803320535667482721854114194746627352821053080761279574637677374139252570372086243387385722983419873113294274777231429034515030451118162276647667267888419485249167555697552887518673413957771480611397739830991986827508879295563227315122366985176916821293272668783887163618807973415574790996111621172543724172176523667149253212358391054110304431955501100329550984088207989009525563873151654575930566673837893792932382165931462919037944470693793651460932620747078568040886856157155385374192860865748866874284396930159232635790396052112695982210477830256621623955403885625518076181669321318767674647351930938318365797921463998568835902054861790312837198378554888615390071872948120971217004802024318068410034163135816658200463583610566708556669886116553441388319876654321267917618910628737009273664136792920695333917265971828305846446937817503680735736952170823693692276640818919927278820220565212714160738552103962853202912434870529115191098946015761876441483764473638552116159539608051628178500294983826506397467767156018796533427229338411039173879641057089815857480450733739287790273330528945129309852700336327172552183353618362481135008536647163439281540783330814672267031811627341924927280551215983013762699147897803075020187393743117040379700885703185110226470057187294203963305799037090429161986613776034121849975574042688619194843858465670198362999677935068528732585736432270182996053918789278540462943393330108326807765636234025170050096632588312012914558124358702528531018921153460400384451001394297525160365457872952884391310308963125403360351223366270799733881494083742890745878747540633360104237433734172164461254769439531621160204020676845980495074029843864353033631152082270968162333336584733132199246797136444334634733960741213593140843923559701577618785667823012010335605610042853989084694853064161084410761910289089564425441514490335149813177556441383097620080487342269326481073321545798971709740686018826131801088706561532734799702502851828735907606066485623578784218300121495981190384372198515699880263174503296357449542213327673620588913005373073947434041757404184099810347929553808711984171771333810776920379343365719810663154320191942878660475277223484740709006661958363511501555137606072903376959715867435581912899739996135023265791752720511202813704960820253075769683017922541943378388317422703828870174261410926625277953576534497138829706668086308300698586724057794407003366424664208404126143122383668299809388003609958648824648306010600609974597730985049009930507496133669398757664028347586435673814839592927486751947004814375631280319171276549207178033040198516596324331253276137212418165998363338435468745169097508607752349020987098890395561504662276806408505366680297271980332114456949478137697941825560271699051147059349017747187259961580338330696952711394797521409228471407570564273871976368110199161057881809829212498300779048230969419400242529242615675765289907807863484055296915323993363116509325249047660712013811310730243268083747268768755004225390928709396721172382776199984756858622310715718803825966133917731963265787883312207981116129489511165027022427833809581161227017771663813099302367396629893414429043273550726939214931584607770915527165338939907148246797470495498523439823247508864654680008444465130772574944180769584469102967120452778671557341080339882801846437190128144917256693619950071360457092099772890238255898326244936777895555059026123480711821087523317895327250403906181531266267763403934042743287571856740779691055394424166262761472412276864205014690649148267613740667439466726998671344713162338225343975381318459764087902895685578906281451515264969646395596794037885030164601643892713599084910531085342505979192739618142035380843664950848043250944720366519605422425323194325667946809335493776018795173098151012644489219417091131766485356948016793200995973088971259079231088992602592388563644985437857511286206852687567341846991107971290465700257231755722857419282868637334755258054540271931681727364028398581836923092079547356032093108932063971252275289581916768064539959378751507858416692277426597270839381825643956636983973131801504976682051652723614612849842403887131083549097487771074432168355809091530381836608460090762137180186331832500560243218842803530164800854673022182378725989902570607309849135705705906310387856368797483124128368301405612929631091676575073332833497964468965400822502198250542115191498661292112543398429538348429510468128930233806657730927430327839999081631636153531723673660913735887106063460110142537150242150811007325032054795178476754748701014712151260581871155788720338593207576385371838332822348792433434412647245247725215043826207536326097081103522381579331991827436514799998459415493893034209847150943397741995678996626646211723685415377597804148180930036817069544849598595105156661968546481238966622049521574441767064422764014243900197010899557116071211853615807507676610349528724568015729877696064757852209835654255573216505695835447697014858803355048755642096019255760644054812896189849408137108346381091698381947381431029655965911777654601627500233222576532554736603152517797473876564929817669658267610619399169411447364121439589509545226917510485642976972363681018136594501735920985282819782341848320191383762402725840594360080639218107027219128797105026527554925449739813861485749759865658283644760201866238645878723319271333238204131250887056609182148239078198213347219019684441360294143676026557392852486976604332588929855410179254387769915674232886582583581925159069651782464560703324358473281453894180600544364832873946851417362122437093199376857172437149629754645586671196380679623636150373764324175574207019594714880162911072473639146291088272138669086847111081369215644479579705083071065927710460971353632301142303737758808687415220451894716556807100925780129083490559322050359379627849384280688784314600926573019594280985597481586025389362411702747503208861725379991769760925828020030290962091550254597865940437404346663553605834748504002843267559845389726487781904759562594518054247989136299907582570922104868715319222203239005357088133852718140427864748971484230876833022005932632099620593058948620280659663349309331011828880195406493301975383355986076674074985118841685818763830425342707065239524303195508956074164763360046215100949258699292433585232596272779284931788093313963366896817094706008909905842917648226704318537717977329032685568985809982154973952326903069863989624568943973022730974037036792450645167484870924176928224750366787320355189858790525748731173657891133561768943283704408734254911398371574494964360063448915942259159963137603147438038440545020982047473783537458701343486771007858371278065411131878232184287396506201596031119701766359260930287502590984119317757311463056171632040537010164003947263283091054045106531728741580844730692183017198260172882775420931129542566544011470975499726098446489610460860190334637690264878987029138822937867284892164674165563856290296676071606045872236684806334652851828358092173670045281580544580960065000071595361106669284619622531893258847609269176265022295284582422961552394544686516669012538393417598070094472476028323203528861491835741549499150845652300210383131493601513633003121435277062720930596676938139220153729031172353943221479222804717662459181241154864458730606240755506915550737676837633845275271443719699533533491133604436973794493618612150450936492859340365748013335862703073599958714205638014382367798957154697789279145604836091040415292450590887843341724102126445391924040850616550572812686052185856195263838484904281453063944825748688993627878581267219163578481702487585532050554270078969657264375383858579812311395218615729106467111629564210273126057928171524656686174598859873679904160316078430757715915554211208459116383840699596870895142275823814912127522072836269841180662788518346320300600514084851970391064466975681554067548498109586679517549152670244892835361765349211349338906056264023827453445059863132368196189818242618282154043308749153600854655228117319751543396681209273306864225534877110426939990166590604300064509076512515530237586377107629046239347617029678965265976731002276778146547229011911095908618694216463592008579520432017921772158987620115668765019851851698309601199935767681187666172478803525876640440193419690711501624252317709995847465223764298586588787482390507657014145403484798581019324119448399088732694942018664434282381067851435218915712266501190215003568578173334127127946104501262235925282610408597585341724317175000124739888037568650063170134543193753861050635804940062819612507742016346886894197428014186075370268091796819610765252764387653940666643848506357077870147481370907883187700304515589792595565748677885608020961799846780787864040732892803373960280254789982698839232024783770379443929021496886587593352148962300821944502200269735016658540924082555411395925539570054664305924298130980526859463667657813182554084671245245896307466658086508124290790558262437727601805447270790225935693615753169569307019117003073559053229453307449814786638459663944418204089541151843123933230448288765347494294437798261376444441177053631041553457013398934377378682325482062266173731047330196561550140031290304987158057373581012755173979749718911332826187687891042705060151529172054608635363299617185643712681110890844703598858436151730728895768449720132972354644181819253654490711247510900227351792113002848152930183381918381305606752730992602016865361995532592950877301854836233998661714736572141373079348186183135535940861764537507237025727784350192641231727527101622459457066754022840570732311509458611065520347598791813273303956201918898975487673975433386287018092873831644332014928577465048687930754535699644001927047479710011906210425718829891890298095601678348107720683043832945936508706358026266535633308437462363357404323117914591261762971521793614426483581486122577196536552651518032740731695284997972246148151926036641843284358510214603029863006320087146950931841861711377726508971600371334404064172070300394074771114832407548467586281622064620262595467540971562427897471417363954769297344734833888579367566014903064696300903686632596018282971886717406792177508046922576678948631869147101515368582231047828434153298284496425060749819407300787726935765684384953345590157678419099656874879129943864047426980017532204206833188887956410129926921307614921555892288252272626173770211987667944101907995537392384258129868250646525279683337135019301252447587169745953371166809933182431763927580292537487005362621852483843880499496521597353924859976799133368898749748353303510193006580678002493989565941837208618708406861035178772903625572068315232061843948004588072299410193652883082531442553612250918444189898052264383094668120505493868245405959463263765338709105692694632927959277208542942673105439445927762282032686669158116733949205337631867991404240356890129017498457453556758824550062893784258452771617997311354401141716394415782493654523931479685036499109400486968670486458206881491727073025896248407207533278730607917853165211088294836814748374330600899270243913632279563563057798246845301871666281762105388472413177696282266159583648690598148025013883691358447021927209216744876872407291891332457745762873886801923967613097771372276789116954685675465311359542834690566315982646293356365315112602809762185728159231881105741560097578536984020483647039540193794157354025079137620831529549803677728119937749545268595937616131646075501390369950944658976832394619954695205104912603276117086061043893812230220080156683122263357123972220616009823084435174046763164109451211350236542387740518226399667451170697816670172524854804337835652490707263961110415092648524187535891182715945661312051430452972292548296828540592923946576147539220522266142491658318619005010131360472403482276069791983227897920142111108418132056414482110626241512401123399604658584890975724506903467193270246300787759435087183759001028562066896368406040820905338684822649094519712583918165088124479895100445799291627079489187259380004950645142777861888040805884235583410890070875808279723319260260315587895726455999889159087840583978201990087833403553343375084182988174202004893726793705155206326762587455493119113291012441587581195218098249997872371543356853409118894283221554599204586563795805815123301268279404183366173385010331227899408467414019405603146239178801822467391475505840316281214550251004748722418350638518135631572362488765047241775129095750556737284310946085865700368908540136772584195299186365581720515127959346638840869100831217847573883666118659279865530084261962576320798808435379526014556424390318023195650338080273659663115267124701861732906242971542495728762530336240841482480541448856889696531509411841471022306619278549726562348212893654874650233502248013729067057067989908528090999382132344039244534792486508985822135640964555302317148819143679379747058178414344970824316851038195556061855441223019434321407996449124030287951853088732928020705938311953630618714464598176940088545076771690717963004738122672591703173679017056523927010866697937084608228116282408482389576334392850532073979315890298080862375373017081548107761118844547142819426550317261277748260974998372536523688011989831449905460966294854789286353167562636618531847113841153726113293675076350472500160639573153545718104292345902560355869378989951733616390486823144737066487268441729646866431365763392168252611526152117314759682919328753553539980464485090502755026740011960751422006267797976192085071785837949582703416084619184349280968329339329430342180889412750870552461769121198071084681238322925310978920152576954735451307783974985374753800475588551238251357119045495053412531094603675817524299518213991095958145345343894002669108545203078606478472230609264665485101828349986431894072073119761856529864044904264630454625947580669950174293006396859109841871841299499170199148033404059650980472302066057131792347196617912641004269447488410529083588195073287278313712091092744601046946382677309247022530428737217147349341250301950764409771209897675138734295515658993483836281142940806471114789630963008384319419579101972726336363560069309229633587574955396903833586758175993674598889847804542968666825891111684008092780799124912718137087973053984098762213677517443887356341320293000176191464746269185219964485338402001767978587779395462078141396830006293953018187945767476327753261274990036129390135958254736896627174212042313642778203929184251978366533134417850742037622900439520169623714208366518462536536466011755298113584284493380758482414944206169533031266557268719086192835584207366313526788162169487553490486008610987092088101228258681109769761084073580190706444587945190251344289160382883670265588603749401497208395239739397264258058393137902573170985777598678967203910432403561955522939454544181059461180264360952892493751138532271450816866236715986939042318056628415516013322742909000547556987940038345926923663512579488284875957989341858281845278254880657298693593710384743856193713678321250102936434915366174783735713485769710155834922809086860889984394439063440847249167476728857384073262145415968998822605394267970277128888870355791586687672817739883250457886226241442917423314965113838577883631020464360693423198686041203834093657832019477300530635917142928849055028535861903646989250744196345619138235150092232266469474425412807794178726352389886831667442314949947224051856109904157222375044335433556278980221622597404619136631717047011635393033059544588376689868973897424852803432136473261474066475161847278929516725427761243622565410042261745078762001829873397169283625849734893924181377022672713899958103003437031796710392016744262804598020545701732066862426059474602123092141459479845127191194421831242818217528367929019876916229064733702438745360279095637298199292192085890897614044726567643368593973999359052697614443039400615992928401320600175048473182376477546399743626492237003958882138571376804157373885180412318633782807570928273630252246664463044840916553452019973740514027864556527970921488098227169129966165440603744039352390589712405815257412825397056909980535157382817108045582272348538190762719157883515603886341477177124341128078676669429826385554980032052630376364096978859264754035701776507605269671662912560903137236880326964484354002437402304093045634649489684553553296343263498464349076536481773868283058054929814024475710948962638627055058684865457083129946934475777147800688557458072759084587531319487024141620422460554096476085149502685244584629366011606131775226297168892046693726553818022002646016963594084550623805238682805327049389413678069836692842688312561905489212627344866093086547294967015448207819350798618417648366521213784717184843567590124971878414018553325427869973550873532634017818096443107558602828683927373293910641923813485673042045113698537787826591411297138045215651702222093273483393471182481360031723720541219621481663057807925779301513233112858056434936489381421272789994454956755412478396476598108399734052487937794043373682960940564796639373587771159476910894719969553726245787113069804230703753063784553644735090616553298010865825033261993134268195376434432972680561404243180168870661502712897829859390208596353153216616565491132442360314638319538484542408992657255287004634057987792355093174250019400267766920630318552220211118068583035899317990406511045521724961952104426350094725478163317114974897279648059428705465834834710125249436495690104509311578435727164103348000596879108320653678295861928379391295110470116455022710937797920258943359884091030149474842410441525823688191877977349288185173285268513149110506379265243195201186581677070832211103898070627487051767547866314054914930111918789985106113107705787183042316450917584994068134103588998788327784119787573278111691319581177611874317861993617677465203600858066097775042066867597110989804864442473343895185858523653613176205876471750877173389819169640639102701982321303901222606389123444891698386273151138603186455272922983602891395513688110868187747903360793158346304676928909048701033932148354319117848106406148022265453765641039268982949464733537025694618499549581276726357900013743151160024300390688223114402150391842082726069228192903296728489174883070639729303465403870619970164088459154326830224317478787486685773374801660210224820270966497412327124668449920411941235218572233157037912895885485558468447021245003297166411641552447184903597271142722402413409586518370644707857678806560298378723449155200334702355618934409560079552670977812389491073051643766957444202139567801745291708150406039077437707775280477467085398875991923119917645186959088463412264757746653809665201229503490006866717642269328393642857053392178782070305703467148460220217154600797398679065858612726302463990707315102944867995394669726244936416717140562024230548325083212030632077811874591509061427695691936579728701752196109354180265403307488022098266626674050155327889255384994818088869400798546629307661314692573306373443213774099932941117658582636770288318506588049096153859190092074815599768877728980961364867796012061647786345789442015049760658232592563865904197866656338333299083307949247223938708796894718868981044582472830792944492765733846130881925426087127071003752087702763116237126476925113525614853256232397093627058339094245143842003726581118933728959536792774074914817242645879951279717157396958154758826343521892843810590064715541571813395242962702247386718033417789335805120435463137901446277092811571896516347442604340963775230014902439759819401751189530905071372339508409647583384135586933679981123574968653108251497925525080923799488775096554382336550842533248737646880756151905732195963112313043540175643247906179793448947218783542787841315726977990110119601868585598344395071811442120091569506618488048072079875015666252554687554161632035935985270984071759950681244673784674948066908926670251029687353502688905258103478008089010136344361216488751309067865074853504930361346586703213321113256144112015119972790179919367306565126533526724594942739066875033349331627023350684312533400335300055811150047815576068657019038910138551303368379927476334776624825002281302372744503485353984468566025049904607846088426486443248464499113141265419111664474492719108907594105391013832145037494392211068984002523271571355454319019170555548832884252249657212385807278757116019997683674510948533055599028211399329096222908588088578534700513718126957617540381426969810702981817861648281209352807668705472747990782007360625808178940448267262625704713778160346725004063273187693178982717284194641560966958236897688791837756097925218233895076252672284955321147635171566924208675999768138299012328313644728742442937479935229013542726116723356742083426264271462621270630158008869339854797256963104157350660824890529551065542686965586824653542605775061935985395467022004281106804675140547820596271495036540024874575265067351294899523665034268607738622204089465312635873459990136554007465103230600134218641294523160521505560189943432869932721740296818586202859543619808374311028456179284606677415498959024699430357045534660591489550193957117659976353271101025272850884339494898035424490363538560786058370268414813733904802137149038137616681179749814724730287109790203219042270490531063259606594619803014564157267136188360921506867721956213030940590147635519714616214794136301580218687066133670958914714500210233519353684782626901694850263161948751090694263483181041929590228720268423142891759474913728053908334110353262286508332466253958915663315396353411050901725000619275982606010829354604131408744307442683650205050262420837162883612864413440251395444923158391406698563667525422364216127658606026344920113898444128488114013735097662670645476852908014468279075431414060229491455402969273693269420284867762821041319317464353137763065548070495289140481596983190603308650963910470862449116637131323510558840588580606121346434898864662883895132266378773670278707606167024026759478244527961122194074599556982857464821234584534875994325871508929485014081818899795896207796328858422263230763637940748357921636025714026901358751222326842027174560041246288605196547205461221504095542497844939547767255002746717523703695523304410511502297173191160077806813923769793769588613150457680779923273019796967632126489813267696570790736046604651441823327687928553037717281299020889648566764550027006048088348298407787800580092409202275854540962658918145709563216742914243885048631101974049841573051407377675487384541648990696077763898285172171678321384639188699190937033698405278913717930299183814167815267110583661948661668995793729737210539189034988918127085321804189857538528250569438415912258551440230771173768908478938005632124321918776195510809543679691242746703205930536833738913251471059045311015244782940997608449652296923066715850739948950650905381915979372789868789997525872582304565847797484169209747932549734789692463320253441533867587793496370521763458034393760081969842064098430421054514454407801296276983512145568235305320522248728738840952028047211988933947510309192111301444975370897502334197939282157310325049024843281592452911089562597509910243347563163694063193421914241452059745703728226932544355577453150418740304261253383164555866028051777007315721263141797285579226191164242052292620507485333149586387963192090147029536013119438979129676894795143766177382152604330552199471605184904878475219165020259437646423494918043531765167545063760602767399092365619208696099130358854933004159355674384446754938560359916467581855944388908223857648130836998362162915134387550112549037255051042261963828827905230509226730620358230813526305510441701882583368115387596020466255798510617763847628957384630315561773856653254946919720698222455660200905923421379759737842710106845296079246656377328642561944486932266965628573589744462358280620440603744110439058606206246430558651296804346445404131771054360573039281574693591306425254355571109117661348588448561207860179524492154712147065531799777959940302918387590346646516040968942813188526719538951085611670150909416096897088479738939239388810045360863470342748680480766804394688473475655446513092582363882466819978521233536123547112027099249531476316112634848831825936623275329325909564263633956269918590396447485879751617680031495077066984268139659579503785241204621738527814541298157116753622195752351351705245418991866633117472447705198325692769071638672866110915816960916513597738216449262224435323505738248546005286806059875709225169041673605828363743085679393407638681813048393355366519799108780047641922425906828817385180948585359283005571020739975434995102979758520679337984547533849086376184135245503446144918950755757569931964200454452392665744336392945770588930731541618847663899592745585783344157325444084210169216989040719366892052025528176499464322996262415988220269862032451806423481725996199748073385799575951537221733949049279418514540483696230872071321906843725117867411184168206872923291117821877343427739418758777251899341250537448624813805149222360392226585803819751802366859025382103079046791816008750999345377999166301066070692060095431520674451962508741487523305810313739088278432185268954841040549534724684936445867220457125619309355829465862917477785348134953692381221701600557981521270918375095162591922559169676688009932698814006210964568630035306994749316627225071126410774733799503469762065811175889696817477321507509143060653514664376763504291914839116329649227537815808507840647296794465336567926648778468490049572604169646666313147138961905620341736180315337132147548025510075863159914824967003435554334426967080578848087881931079372544957688822285902075444003130480567321260134795110305662203068688735626001980514956352273897049441253121424033589307059126707031793037906762245697428324276073388909279287061156256663362978629882866498783048726317946765786421982900186604391551890839642179265511654574092169866185584049785628308361223014195696572376701581916814352760521525579092401290656569949082648552009344082242864076294836918028305236078441833536743388614730363964705062456598448224200434081780210695329443618694232095032976646440698313564341095039775184943666199751118777080416093137953246918797699503938229157954070430974908753772580841166732291904716963723787467338383672369713148842665793938383955130896580446359746508464277038462428517940333008441914572442145866373618103778253833413534509727737147323543147210417140519576719226983578992784984175787720933013775148596250307619441502190091948176882769099387580124296093754074483438808131346503475398324739636826577381119450515716936293424943545140182691810653129397039649469753587253132807703045694529735620750910347364723886334888332477796797213355389485356028071705811711733063896645104334684307706871205385984712639429104948483171054948587197494512966547240326682659182197199924002486458156152822119541445811655221678410656455011868482694917642288062255352035627307649566756193832342100138372429102180911047553555864646718153070235117480591653321851065240633328736006429013389007194097794876787399926762177280313886147960307689493401925708342563448599729705148192181024776877450678429053739078946384836161544142720365353168513857635407460842094285185433810275759236283387927261950623840197584314155307344679090756002554099962557284054525269917732585935964436744651524439007950357917126166098315843539069038453712454364550539463343253016823105094111610324153321916071413477245369398241683688822763505920503723125227643914864215963542036104507284306669508935693513931615872256931924126455133325721190009217248632764179525494478248301848677925939500039928047724571185275546944152400127857391750122252110777268257017412012044389588252756911034406206778415991738157975340612012010864338554956015541478898958274342967688807662043677657078605774588282084638426988831362590287943230176064509317953779631628728027680792940183472698620452862243696206927175389587191482271491955319604915818130558357428290299628281245001989986680873696292321991677082832635674044185517245880943603278238225038754864528955003292235156217896335298563972476102368567701088238510041870792307934458645456235426429730379324476760071694278157016326878934583711023895403286894422731168821434318343197889636637759131604406927279151475808136195998939476378925627007823276612789569755449517926236622386668801348302775336450758012341762126469203826147600142938021448510793484847378875401097995339036391533279696953006024635044029124135474665344209072573944391147353497602960919384437575786182470295444172130836727122550881097897017164759058506897814267447841735525650044743246504997854909632731079893005518164895249341958827372295375990228790792083562398429037389208689042505997911485591347191839344719115401092423033556972400611048322870474794485655182653113685657961868888070216787560383221388209920055876601577786585503328882844461472178797597295842654823924889959545143623771925428955370639525405610211011663692926010697255180036736393086651921327393378545135552236624066385081203719861185138386069426025683944189256713299669463364006511681662792305923901445776984063996263605484020121677120055253496673530476173133840856454865149572667336801593598889567726414065889073020909467652745135775553665818573830451660644688572789708285852933651808604801782244981834012528755491974640985914328004936766946767728783975122274865311716512286794392707299473815486198299933445295958954273643600083038621339622093135529960627936730968456363448501597586086618815904333361833423228466063224501970048018652001796664583384604388000040366186631708228564205095367559254143619135625400062115916943291519729860926865253012926449758912229471211028402081207433514682361535928401099747538148073214776477303924832800650728870396813639915537471243545120636411325488572433883461683517746261877273590360577733204431874644684803746754106735064068214492212594425010090591272414737662737914022593720324133860504961607452722276530618402661524064548783475333834795657873841087843809265516531110841405086252029002627963277318317241894343768115345060948578125710701556363351313976907387146346306358399941990936961914304933338101696836051701855238967404795086232115273319018028954321969102373742694998190811308795010325747998137298500679084607694350851402157748156682835720189220690390658281190593858450538622655910617442190884697501636516672306490822364939435616107640947292047305781208885765153759442963865010733828787603065217414842943752163985417133195397451654080947029849604959598430809920732197679014333263433179891479287274236360545382035040418526762347434275968207672887224961738474678810691627869227548239125097035712892416291392803208618503133094673133100305280436252255274419326340944848469043876352849400025854872055898798769984428148920609612407075682300673114454736287246819337706837982211189085071443721220838705459884488736834208262062763579024123023495495782316734019872232985305206410755745892962162747765650689044386033938751768995981027108818745574885332379498299423338354497223273166902069025985240742306745443355936922630107655053056610632461241120022954071411139407806905574001970371357345381154653522831812505719876323411780779503205965000268633512250551835740972380750153753903347057983043919833972052462302402756395210898825707982920057330164298831959699584621525030466567749550135370722882558264808935472597306996763440281003231524328019116605840615894194474461005120793759033092532787109245934320783723518832792062713734190157882288353872696495020301339275928207888728668571005492259380245225323742411578123891268100352456964345902150650952803853566235051530853302280638574854493344090705824128107932302565172914816365657943505197421123746626252733363582097187006928846297740622361337040430868904369557015982493974516128577156099724800154181194505413476086428328273323180146486272770221445738748403373960701541438584691333096743280937739004872933000178398843754447112161436089163231213078156512124095336539638822404917086355679739336996997766114746995782349039699462917142596192853658666904651324426648545346258064563814552495214752610933466993239604753375759760799392832397664740422146111255522929036796627426057660929067265190354038181495509814431765343301514213055093031938291855209797896006672807937883136629928185964271049268616127357803328615891506924672760793234397441551256945941023119329595294227069917268696727456308708581236442475219632369098724111352458725658454724621696933339680868085040318287605780659934354671932165791261985178224448282020536451260402674819441155056963794159345072266934039818435478217927611672127512388585134355365210970287511747635743650702930965877249532777655278491879261177381439849631457454586812478684329497691286115615517789448213608107994169822321183094949386548623168047686329616574177236596025677711253669911120770942054727477021850234891459154914427059063429279041403419452301545670456374503808854668386678286337266729983041811878928668469240701861115106677354266147340238872174003200580057725384216193564741619007068139634993969044011329100711922120027030305101003415538817219195659924712584731497613805138209607427204629394103266946231323227273227695532437065824634786639112992747924735494393756582112574846599679450284419497348976440684274023391985106326790503648469596251315774382484807076367285065301815486484953174831551414843432157628847249606064989013644682158906662140982882060741554599559723008482623513152364111526326518780126873762230326626439377765315157783330041076010198109725289953463182496145736039405053909680247510722155803669158300578084430182262353428955687831229716457506593586199918812354731438676919757332595077140134376248099687091287778621566174440812707056874782407684179009094626363464733313720375888287479017075681555055240869100771568664079645823866586301958230979729148676288328479512877409408342827657614536889361685353881569655921940480799889188528063626762730802826681788320541850061633172553518639801455187099280386934613625420672227276877144911377946456877605456528110650970781552385259018694918804228286709528008118842171821488548084460793776207926042726270838788400884333914201420926686004389934047520336087461528877834165091424665847750453741335899544065473681893348087838079508837977728675312237886882991352397695825811734171827800935222503496723057345792049020821141411516687582498430995456784322214000686097678652958783126915980147755087981893583094003449300729443738447100195148255182937285388617009144005332739280253828291602098146698712278220355431308224177507306631616401479033012700544936862292608041425424297609841436312569532606067179131025635823659851135767638113495676530876735470842530873542456184334341140266058164831493874669460906963149432044391826883311664653668523214157674292582528770432766911734533134113368953894866449244670013911862129334183752666275001169013724192666837971938237832522763200143877616934834462717441865116677203540485212572006139776940182643650605176270166074360193984492301377195050879101552694392298620347805564615238084618124459083585293956949824713122018145246347310717898900071974157254949345033166293509644523223940740816674714447356848731726943618966628299732300468764433257965571601821448381960281288556216248733628459516264360723264367200564528942635648641756061872604978368885590127674672555910165951445154682868931975863934067881328378143277049286735556132905195530953341640101203998399044754987870504081787828869733143440566657297476493537161289566415496143788373988664557255708623436246437182585888523649596929828913149500829735247690654359065850728608701691084395863488296461174573010466284546720968775353974212138949802846766403896951269580855907440595978054966551132726121654989895015626135111364549315070227268078721623691056326116287076075536649806873522278271413926649348626111087019139442376646279282738414013560559911949079071681411948465923237081689353600250677576485126838318495123765106787862870367724868134510461379990583509535147132055969088739179987148429494227103173947502791201357259495979889534162614558496054005916683914008821149479167973251678043740998360644622568544981895263044020532382643140362682251651203535994962183742461089524075092924931695825039533598300511578537283592341107746236115680110529250093044741587400637701756845561590876259899164436566534367403145684963396937606388759655877311211384434164939080352407299032213631203892015336615362096212603443527021427270803060092561690180980958236209639637495649663199135618786072469308942785580201195061734826810268930787683328868858609929235730435066720324682110228437365820596304468832463964281363629810795418212772651453864414350001243194694011909661135579977063020513387558927777113195057740009436064574148688513599669032671118192982512643216910265803597144879709163333582926543721755794701860012245675267147377334975009676877826076902845132932784747001702792022816871602113537911187778030458960816322577204480675611841209364852535794915555529149250269924471405186210812889431474766419113693814006524832402320339971746599758628888688644711713239599268948862518471832807577694537430856995745498324511746690214277737010906364744231185438360725501298699120967289809709119647590629367179961342334107479094827272599972183922593907004182859504795031964812009113695346851591933938121388046749791379980127826978259474420633253954477526274872412967227948814387441417397492267876775869316430567289933625355783601160551950768619928418558900876975832949845346719501357280984048718217638844338471551519715922663020458843055291774550112396027121506142648977084246684910731057941842084589044965838143511966894273451265420183004984843232697987537135738783867170879189226741857156503028454465883739238254486369798146871829889630883895702182852846089745227789644671191704754111845805681086323695969670319471641439023041238072414687122454864969146097749788250086742329000275230859194540996694153350275113259917663639753313573847112792862229352296441417792614686507217550016660088494587856142023075581657064683414106688495648070478250796216000190038803771796418484818628953893107907625153316292469281888169784267800712468840567444013834867580389336797947605688129580777358276896235019071610893687398990560523855445459314280382782063344271717705682064246431466085644634561963809802923571747019160168069701091096783576451909483053737685707852411420242954472501717868671281637612629895383201127094347979109918009230353907155329362515188890828001528836869068048792544370450422907651625387681320460667696872006404622088268492041159433604265884044522591973240554694122728066112307444881862334545528315990062340278932526859834907638280085368743102053914892528409620512748312688096277008519282441766142643084286412944526715962272640690384954527894645617979340270838908142751846030332609719282165885314748633245455115422346548624537075029548408498836633454496121034190150896438230717344823349686059817821363393347366104933038131375896607071747966698743972075600852972468888548463984019229795245936886665597051327817493534178953863633258327416171986959848099976998329007497896128954146726356000277580870500251409026957424690082536831730682909687080154508729004458679197545003299767059587830572533451291549437197451870900511536757437261699836221165986453610991895817495996179855819157960003049366758366716507362764930347113793030706474117938811709142514754276052919488116260976532563045984092479632407519962392373584301819899560384526816487097970071197172819343108473447106030383921861732293598445172822552277213002472019401937745470584885553501724443668785315827186340657448787627639432301932099844797835626319592311040171032417639977531599739720433897779281124443422923808499506313053916878765332146615112991537386334880637786341117419957788365437476182588417356236856243016241204745256011741223350390076542076144620895646971338135700745326833305674879928838643248098790772177324047301979177321438428512976305276114989143868621705400061845333313622585137384236203817703699035011189133328739226329467496542083793887691414813159747734403947085621748974967860205641356828836293173736356675276123545148426094916315954667054119196536933447037150554511087437182219466716131295077813120352431538818477269673837372031637907585465867837490995613236152673126906682650886829618668960113841701019129876589570833878339001940969872522009438984631680304814473625447980329308182141936536259787569027023664120978564828452826070561594887293176429908514766535996954034096800726576631361975599272248297091274125571308316374477135497279854244512595344508258332650267412173043794658703241513058621645534739671278842568766591378427016078091525849804647590362281603556228227539886262673036562802201284066233132147670012944332599931885206216953068812643216120140477182726404758569852038999861143789753521722144878482124304326068436081552496357109517849698830529533641595392387567891771532873503912460207972378779083497285770368622111489660862451090786358631945301745007402446588469522053804575848327456442085876978985618459762482175405388650289112911432489398827234066228144981119367338818328457755431068923487010825599848258826589787567399924104496539355308078237921656819777036151983529167860634294322517296535080369873304748374326629623474315857157892548420262536567446784415069146109963671201628356605500173141068636795337792568742248660920839355160830467152088081339101073389806588840333741247907065224962217920185487817347282938324434589669976491661047358666036382192700360280135646495084019239106080074278554180608107515410997645304428052299616027116451725539785335184257998593779317334442020412592181303313146122211975908018753200288909610451690906643442367443901938051479927718874294812451007135364459981532971686995515165206049896899180176229210782801630097084903607745740873155148584853989617770012479782577551404367328299192654423474147066433967399876356565312074002138277500555106179328027971730261436114075980957512957231471209798323865414291960523830635350850681274677339787030282312529068834575415947128433428789828189959452239847546677744291447962943799410561262089431085950487054651427677532959605849243072697998496516079577206543574368024420273456380892819121129688698971081759900270952956741307840373559481524957655719745534601473150321046019943264296020824577725606781080746622106189259075849483238465812893780376775915003674967882456751802257646955580049302614940491649009171975708941113258562849952411735228326109337424164574358464026574228541295734349913025035300663294785574419962413848284643200113775949162856615894025100126715111520069512222501829711248019264048583715025335838884108637781720567950876575143347387139844247667953567922951199592272768166232836646627407654834981956590515979708595204425125881924513231722053421685746223978166842141486699112698063430762489033083743865256733772167847923052647416410259437599242481140409025361731690579123311461834186721631940582424923178405981664803432362603540138647576737253560001376999998573192978073581593893219209383778301645754834493388599299979281042680484511042846845731056871257080769594161244335689002160497913578997575961933068289938385313083521611124564510037332974891337385573932708811283360129655227295463997649450324915217076505908058592758635777982817437388424234119622068258983417228619716166666253543075123999462730896846452317774116446366567396371808273631237723602211481210178829741739953355014788461727431018687938858643253339153156416634148598997853936367415177485045041301981910405644092295773009074973811633488020333332319709155079662570379918471092293430024558730790395524572748350232114297953746748811709779901680682983456481661289100575077551329098033694354851993398902438288956063456994772061367055397689006244409548671124488470934067627165433289854327234160898479380146690840400987888389118691379531810711517438784964042875036519091443644129696895860325198682165471229457408958583266041471871333620043150421643532681428561937123166221884082958116824187019945836989015899238262719367943784789296223671718454120241213818283627870351980044791352849031751794109134412934045538677333669481040617009954662681496927113283271712679723466250462814427909231206605316713998069240154898517544260430965575000911188873845632407213449937813131919902228045201462668820564412842664386689709805727052654700251618270366653511207671011616489858157287960990433655153546456228357534581177092010984071466471679806619166612612201713834304771835824910157898554510757410638033538517693603546800837568672419595374809208512690063654672134895321336337321659278934063932384012265696503312505789236409005758683997120263499791377450434548260773052865048624259227415304725334257700386816574150709961076034169710644127601965626677739719727774368846832060205817746313121282283051394947527218464323889985609571027179862664653450745780058985928544132363480250921372311191560465126586459080852309770637847551009594868649292935202218822119559971361675172400704079477759149558717822877314850007503726294428467576731822014089608149832365980011779396047192448738782959513215824812500055845236712039083165234752095288399334572718895131749426819854867310442062298049951017346561117481483210946627797508018386471148757864095880692027130069440675816796589289358221122066473304581155210967614473482042875427195510458821840681436066617951298631552271968308751989641014177527056718153746245413108499957520949879744194235694541868773085603613001671432336845951687572739098592928239399879422012247430271156923799974478809501089242095779836955032473220518232294845093450310829746623121466249345786159127056219717509898011393750800507867516111892430942154329000814703432123535272075630928884778422264330961293621402582045748936000927976369260446058913097069977573650376655478390024441483831486194094809389304755088684210784960680941655501134640337634131408112554388948348115595765677200099344097112435173981711178642067214949763397934573169326183037345788382413565093229977754493725887856349459167626498794463493441845253075003368404252378547233150688479828420899188431282132588767017889425376586883669136253349619047540507756791895887081099032567279559771861216529770806464104046857501091212742959035614294429211501929127972147673867566547531060411390250520105517206052666853399147300846762469167286068685394840823049747675832193125912468196195897264474608062365891261254017893233692505873314202986165500459355900536001862414564678602666895899218517337192040825023023226170389518764544211464868440587038087696026040744791893875809287203446125996337886381367003499821269374052800753156541069712963282719821888142142021901785552990136287787063782935179001831050087589631428121645664828157763858538279213189154753701711594219502567809962319509017113289648803253655329518945819303586776365675209371934971414622049213219072949488673618551042991522013490105775165865636990338715756913423961565878560299179692513130973607638753799787838097257572756639697362074963942593400724564108115374462918604692636815382106382000697149641311479906842563040397838417381619338053851341393055011296410998161793007767594166409478119959698708972634311567071119422488173984398663534362523411857984475291756177542292475945091682066956194097765257273253169103162405136932025406962114714996316399943178045050600853979669936974992490646560964511866436374710022531597114263618545721168035800341335437443564884856892820174922402542678951682169585034995766382879253888559251416602458354866845123722568533311612429129052933744042208102169746806405784685735022856826396238416609741801589093876174030739754015415420343840053885258890882007861220842368933922123785435827191235581417700273620923779815195820602232444425917545021879839563205467287426401491126484966913113768021338038005999586542449654668203177593588784495393583205015411364406027044894011928495307084387019581969907301540869435455325812156582580342240298727039945305944300694977136300546062855480805127373188408096365845734052709798792176318033473520408995616381992226701686870297152432220490407079572419492140498629429536228557137302670925269092414001055825014525543532794270634036401227835337909140466128958634121056136198377890088984902899745031647554159480674826402952068720970220104482641899264760028279106023687784621187250940859306546625713519515407214644978137702892615288574897844724377298892145865526025988927811447246773718286322444839960693702279032279202151272421184658476518665010828891416632486649291697072335841712895981303087163474122484482099588901223745448226881621410751702357552114056971675786927611339061676634453550030012141947548774806135758840768568543350316117270088654885226583275256702794060810046579238479401921036423706222012671557105830109177166892748506870933712379615764472428335979927340973344635319201731653151795573516429053374176961812841763938919264368636967170405970517481556465117159385116997737251644150008642526858860332488680367762131441557758806777887153090271135469963477676436637952670202896982423923162995057832179935316686604833262185800731791584992416279719916590845926193346434900102660515250737452002962019882357035678832041929825694218385475382135499187577550194106410612364624602244365147489061276127125976361360792261405656954640061769306516111004306439240013987032898295702450596040581705555190030250254593898048334792760555540244302976825965874920539660982187767809729045964539186473102965789104045672967272382361146574672669272890897932655622167552330498272136395135256420883172395267775015770728535890005612216266864960043307333500856632601476174104598868905002042423835291085436609133949919652168010003314621576263093903798654505000770382669994080194553442929128310042501028404418391154142756230171577667539725181258128132524034150418655206733524827114810774010822935200432703423781432175411614550495332525883360486688117714064214314498873643651949879258813021561451385213131722775729498315528122840168642972669753229409818659037570924616646881401259661511856702899217422014846314639062801651296525127895187438063620485792567143245990947170646201613286576832162417408857731917209181789055505362153855157174940488633484054897883072994207490260459580507612946599511205955853878171062360988590787502978572201288913258802212515740140822387039306023109256369914621193800924990851925955517638775252130003817804305976273947699912744124339089799651288090079559242506288519310395821426722713458982214946163489963143335723002081951051983770156376035208956443530377848697634591716358307474699578032584539579185931522958317850480302626264441811233332569655993121277388448951815296909534133455715657898068255239792044001576987845394588330463605955634054346142060161400392562005864932342682698037707317355348461916701312139012276413903143187270876947666593163816837332776747609739740632363180375833109259327882287949080962982387004741124746947780652405951333531399213368702092059275979141860662043728275200199642336987609448024326301019269357084740793800814398812005810138967176935522405790146190320399698755814170319837739598981633606245257888587040602099340934615671119218208378013920540810856861878678645564436954310333612853599660669729032787971013374976436076990037849515704749192211572277742511027738227322815754339885932742940958315785160825973948065745204467038579169179418265478203682581248804330633741777081561051424048006780228135429319439530733419008186705516778563406512154643246579144714790893240644090364718410240489946096732266299447984321569755042859647894732194874784527941934221583683153712310127802527307343077466300183697432072733126639982660750371216539362983732058674746790225458949784906171017275494256892131149065876938212484455448734299891474475383805702926343840797981328867104035068444951331237932126494700184348014623429517504512026392406769966748208135246101531742805140701429017742854484213249579548236629386943601310068453764842291205939557591497750142557767437302533968592673838978744907397057710031568502172978935681528458366992887394201868972059745142040593965463028738411230272953513270206949687834193338040726209501818636188841158901562215507924768491797732743084501168328509633279155854986327592037157976860599925277932354044280480022416992394987299332095965595785744589907654101009926648028595414471747502898479009209860036396343257634719742128185212633884119689001169425111888428538210776988559992104708294389303319944972220257987414497120302100067650493400469779986998665796332350388604658750846192123742853867517728759701121294063150730977838641092155140583473141683413220299707913173140186806880689939577367975858361977277319237888322774865823388881462718969712348591441061582595566047455469446375529045943574190852209708973676642642624019674456007036689218242932054813919815904917167416842427433248028409550914658217437144153089184270778409837458100820523530103307149343396586914421059965281503594111986460687494317537241444904575762423923770856975855556863297556602504110983986416458707355181450758292005860256567014121539448128403602990054794633276068570646776952131412528195653769191827865918481963908056231876895836947613346059823244727248996849163452565065317739084313641796657012182758537508387399177321188011555303883394047765062120358408839515363398847477352336995967233082979639381744641943226470119374758481743823412354359635594846798542339571560382850144409353989033628973477890997588043365455317912375293235814227214404748679154489814235289759690263717591715923022182764558155518387378149953756611443265834566537318884013119003875497497954437806295502503117957160323591366941089957558542707585920009798795511845257948721056380850272712120706482838490160645400273363683526563447604000411696039855591774590190476048508221058829642714280066610949962783437477061785216404673312929345329119205197056075079533746402183670763615362907992207192711324085924734601474567655235076530138660183577718180733694564690085907533294487065252757018483726458253218734642225057045417994061512890479274279432694058078978035795208792971691903311908273719312987146907173350319371637987183453819093805192518193430932217704543424590306824611698640134898567579996379912750425650594879514162838712709182514671426803860705017891729904049163911067153666467862118706568301290467804654347527035612048382755321136130699180905708781543663918735237532610447577560555388170772392618082726868366413284960832193084352335565737642397060558199684856494030749499568270391871428191246802912452846873305362046665566771678308275382673187823382908352451709248696983380241205703279520969562919075124286712556500714141548844585026965699927688016739975191240891281886092131424741167240397681582052761127375038068036985678721548915055490225082063662821863733039231386809686575508015220400915766471563890446742141628489244331503927538974550450992562257714358293790249701818467614658655420244827091865226019415722885843362275799286262957775577644028035211389104773843075487719838311937733335983627385292084604716011227198185385674780662207480856350103922452772311302166101631799933921695794200740474330160635612416928265275986455048265419253515977090591970987951083679238451835020198261247466979511842375871355898955350433975987856066783195876920460726864079386554791922404638582574654836476926172151250204995117100665760156544825278520434887424450193653568540046284914429820650697546235996437666833753745191434781543408987851019200081619552490098793039263756480697550753821349897939958762722886918515502917355262729420129599764849051723606014803507695556521056040985419071572094447729126421195804049256059146471046879951743380855300505147277837948569242367087122141165937228061780681535037317565174867177476004172392260189895852153908206552397688467455620882143940852598847257116122453235644873630823339469674726834382010435741257204254155228400039846500734922645891179150907300408855186412906136978987374389797960688158173099208852516481468907856064483169206045801601974053138013474862628032923751115682726906110465018740807744598113500713106699138913454312639886029843453390835327291166793043205067584989537166504960406865905436365449460284712833248994147415865865784969255330612879719141338552824541010841743586221255068342486176035176895242050998360684885533461096288318380387208942514425833227610265732010605875573435402600260872291720365063441871858827068828519910053601172535787245138676720262754878735338128915282924747940552155303992092193554925241433367271564877298955406651312913514675479916563566865866396923890971758800773334969118976295242435881555829595600850284613770040904888467339059597629676174468043733758036640325892914151013965577947736715496393570813561128784020519086734742053968032266775220566000989869135928251084374255989685846877477250398841711256033124317662631987257209740748531620965422473964103270901965447830520067372095059585242856053115491821997375631680441724356048100415788770024976237041933663355172876885627347634067083585169876937439120818928531409749700007054930472032633404474669722057876082549491237072388468858291115782514265492721290005692577581011148499756570456375628181795854873086102048358512075075204917550034245112003406421133021977054106712947609475744929424013800269778333516189532460505974040318984439430269143669370131627822655975479427833394784832530824305829179502207622008120808207992618825128462351293919686466446649348011597646298992728454323703090142097325948871166751588115954683831086189716723081423380919672555096416160343432258872675702148619434753921405559431381319373717993759882511999990898621318638805648195844630572853568928243735434154239107975146004424071534051299047198514358775033398921510749590155339579133194977023183862882551054861902458960421494651593294781842970371700910240988629187971574244779975262172654409819617271129788152371636934520588795103668819467102978220712119637320756532539343947894878298920769266332065337397106522950914483863635834325202713151730159028212170676532671046293235529513927870589637567602428187351294221742227512939631501142823102165632960379695370594132567223444750499594648891945881169990665907919415838389521628072644545065996077291421385723846662316435716800464819406551251521730127704054354438309609663237974317687123659079703833612773538404273316905045394240474136627091746118473600319068298318650267356977373884102751453506070386561231538766399084861936697437750811026373601402622825794467428284174463114197833535105544906707211423632937332009219075349224270547664894395438549054346160004250405615720828813446608604680188786244867877232031590070714623895120211277316131454858827591368743572504893107460064109893150022062995837223554222847035733528035898809355486858636236197975438874671728738945090618286654532146025271802772745825635110530898940708118752873427692742341437997407231405541913958707263457758484433860501643858561268290110730843417156232031639029759870400394290333712567136813823362698111946332981023336979066744138088684162838121337195911315916483857797786404779799322179953889978616917105528366363344162341686589065107368939001665224508764144708777578163975817327319380746443702919253348265820559845916547873503574393290858344027613902840646022064505263870454717678258918480016842375840429631514220300095102893964140295723658989015533633573802257684745769100952222596706358534077874189487291319183054857021733603175331076750527228029796781739115399808505830732634837034570363203269210590568469282399567746814105547881655227039595081652487832772415325664690872982534630669920296058507031478451081112071262169394550384419317447921321741941920455643256429520296746339920341552013161276720238756863164348558648696163692684149029487453037933332776922179670648834592734725642593084798265366623008791183758574065916059739651799984022749996563635527809987374280504957706923491132700690242102036153247778754688804725958197774964569047236806563912822952634752857193842041780320260043846346021030640429025660523173247285906161804243287513570383551947822673430218822255203963086433539016784874928643656389918977015624659923597286236277628113942580002047774512986841315310591945586904408526060697260397547016420497010828000644672435696379770488461441374766875204244978880647771573388490561506930035929420694276926869239237586917538267738631625825513799774465850681089221455947330808754492952571275859022256219635469398576587777747455903651827100307969374406214978758513950215365164218351235638528622217913384170494746095210655967499270598816151599333013444351302137746379833270276627165409636246245872367498014827033204900993689162680768989703953523203111048444003865015932450050085568795758688712628777131323021694487076360296815939447000159663329958398981348708463783777777907764771151931228429629155385797820968205005145138411901834585584178497177291080929712170594741322235516025187568394329228334465152142047761432312830905837831637519566329621524291185586061602545566409689569179609110598583783128602763334896152700420609576056394018901743644485745196678587210669351219890777514135679762797078946075683035401169457726904974547222942669828079933934908544015221598116726061281895650252179877332927742201286586279505456086560099898968600050855741725578738844124546004809216712303613104647042961122964169567791178536898215749939160132689256136598393361342379891191446749893915353987902898637289842264515957394594163632294666578842073714891950573630971654249096648887494091998323284316818418492303388122201171339566387140453215402187892833594120611814627007023634121526698031611911906027004376173175059174568061381603079641991850928595981835012731030586886948880874668118992945505275522034911965325598731188641914063643876985144230769801079931291409658074517644951878488061779056717690494365815839171138007904456576596997779073161236354560418432276279617584569440913204815486753987714415738419996484705767379511347154982594385642349793048728945816702079845168786643753812130704961180457241455469284067348630152675650199745346308889037253145208747464610023294491994157907730180051886218701941706669441611690724507342179713425664882109835708711331402999054062992020430975538734842181262348746922796202880978799566595171969572587569961286432582746460678955022265927654263909351014471256462430153678436647222544432441248772885538271670766488022439736025082895537429271843550128328506524634689735248422361105764672291387940380406064376708825648318990979511044227118361195094426970712310276392982962517134343238206820092251591248607920502139779265743500116989701563916171430569174197968811476965297132749885157147877647752575272522636168897171279780673590159935046748552491309012588497421558453198255365971545830747703770707927425447987755322617087696082551024912698126979047641416156833808587453977304560573169923912875658508477673126405445264319732149911442226959884195947357552403910481479677674139762579351353169372235124343061922311281168409759415154296470652437037159549328196128372952585911340833694294250400025394700712084036926394155074969865399435838450655502066959786675007577596187038886671903364992164254003629487519166234799460347235865486786690344861513974622220242849708469429829125053658452934604269253390133644263632674788361859292374565555405683714449650620223570220499506305397415171816756176505169170726172376356017248322262965092267675763933688474105680573328334207413282292866067574776842192694879818146537234730456835496299097185220292866540283508604954786846355481203501902827502821819627912042733718784819735727028830458164291104094550225602071418632441791584854759589442627577093131517269749688995630925229757829392885277967284798664422656072864903678122252378294169905268482951163180089140898233281997593888658768133848771624854045937381008439022588892298214956605702664399033796207985117105937087783544504379712678710962818915767739635566042459286890593257169942875144906840035041261594706618864597865334757247196828618382767840140683872258296181626741334410343927495014948403468178375332757770821966696318960621596060735847033613450797452635627461578801866603382097536086006164931313469016904582624301763285428906026917512943709196391449974672212694347250184130143605628090702576143249754348884950449935504411844978835190590543288510604888311846716056145089208889247142200356445722518291625950121143052519273272675541301635109501745011466185885356800501518330819431865733951660375458315031587550766294072678676788364212485367271245324881175438352219923874795541650517343638370148800806753502646715868534579626814789805288776400122674107661035666283271373786391298451577546899158950662485676537072739776990045623160839057846549562231025700127000752358173031406784680092741272015855032307658466458437778322394471671503157101816141884397929392023958177071011376998951646999411343192514902261363761856968666926297192181628486715849591045878158964583576656507464606047540715904778693032342838773080621741452263894913854616033383250328154178879956171304193624076422773014423015359598624307006418894126672922284722126741154809421152648180023619431374045546534067735342069917819634195190402389928207716333793939585290688949534660206554159925576078994023723261953456621049391104867803117817781075071419202744392385838690225543533219040458350245489532193344832088382652792120748304712454901631780659637434792259772473419400174730585198644823036539691719110393613521739903223917335413781295103198291371694906050374286170586544710463538088423104437546034854043846696723215023340663347060064248419895728865423287867877495783046561230230484765211606652945719996916238448934221438012566407693694034144695999854922461944576112677860845689562388191295468493220154349175008828978191312772696027153578724405793334940431306307083782116993132694681880133528427237465716795180198919204844710659862814694682389294167966211010757052592904528673716762072376255422988123052425439717504240987939098033269254859360660225975789091571434720580231559442858102355574973458590410682219172511685647139893658481960404170881235076936568645035104636254174284251931933109043849661912670341735708934906119344609130131476160954087325953282957605510589880951909207927199341820227901928479492593880470440647371746423583171864754721886108810865977441568510895761764655683367926443175528444050006407926724450081914114288357126541029559246560376932151634983392275839018145503867416978222596457784253200768979516315875986874570638487855802189589440526356590507303739521266952237948364273404272771021258041532836216371031617176812537453251352385677675215324025839437083773817858700969557557206502345874883551126623143945238391218535390078317918227690332640715442088222893978311485629063088672894523524225453721778545336128118762342936436530068534305112584519602038385689220050149031709953158335524645331165455963672961826652401322625486445572476687832103358241446585180103720374843590042492849312382392511215683593836208436810895896012832933363812053194053108573506170130166322447952282134317942998439954818677070958860861102543209334410228074798318247238124819104046751926046221468722045157756550944285122076769682181976312098905382108897874474533898542401068398121807429272029697526184673793880292877312558830802660023849550395387926959308798565432610226034696792046600663673581618774628533551339017688113198499382079750263511586857399454682289521448491455432063439365214934606855331948750637758886541761371468699224501767412613262235926927588834814056011104959597353174935102878822926567964597777503202632650043008614552739870658417111641272707828754302816033546919240716207648307221996735171200591446139763738556923868046471215305429858397114917669774268535282327150871889024460306990619830598439218451553163034676606576267849347723997097063744899729439953632280424022123164522766578078702730707293704891534817539080901514011504459861438160542718264366169413395675705219835943865086161960938226215484348279381032230932054687905564564888765512346892339718856870440201542500605857419326943977620410744306041767344166914240166352714036919023863954584933298214986261631450089340163615633526797492207391584415505860989525391492697529961727860530105396767988763524863025371378550767031380207099606799007298992301657580882588827803751805761234352445469737415644546971114925345136363531312592989069035426042998584047084532554873265023483501343786937024701822049318712705327047627006772064229461421942207239890950467454213748597474790248993348739907513652027888251572409668539123953772186097887494784032274126127601694839474040507505454119925830334101880116947939715793885061491160142446931557696461071061557567646003354870917116567720449670968231643588429965052014976979114277241201406790137720251995873650315305055354763516734761238953359993735183971392292187943324401105587727949125407515255576835045451759075233428427653675058993564584356120152951038598550577997768183859415081202499440743817521789754206342698289638093695772262674261151741005952120823546428695381294740141966948035924638118005794730278428378667177058133873657344130674598175559017631309599999332581033291795532109359576691434733601073765907592535317855400962026331375524446292308031357812888131279990608336160297831031177485189352446507101953277919278676123268223244448296064156073469347732803833595110590111719735429601114297636356784086452053231388963140407676834278766780602496709462559777620827652518852980777785477507805545611840816992515260358601050541288233613887787926370982117033301982817704326360255240714708906633813846709873333591070935955446861451428828705436164528474599971853833164330573783854757875651189552016799787374693695962655488774117130499873799569885531521916497516051160321546373141891737418589371526556501221717584456424428023137615263172738059149292899819694312333876476961617007523041872795426193390031356004139132103971250120728706021104155945917087039700683538963973057255190568949374755294418210525348492842320995486347168766148700282303248420520068189642053322795544277894809586383709426180770268723696392515919056079565805660316526380276776534832542405212467939046091325308388650356110162887374699076120523749980684192334232410353834747322415322634200323629743220364191970753462094875527478001774696309429948005189372223561445981338125044836605582429460211298806278501602537581317560734534007489871875431146660292424818346092971721929790450258939817549111024382176127074894209422441276250387515863840813098086218072632650671898764912407789943134581466879957255783133950277717564465628003182568847778121934560135901569607539783083788143626252619234825262484391496332549232978027548863239283542569044692388532462900046915441907993970936155374273642559130387034421059412376888885544030822057022834404400274206570779960261651610800421340579278274548041146181568052125025399577008249409164557202688557155410274060725380778336464805587854483282005344644118033631376207449362463129931787876464218314268983028711549309170100208727943072337479867743973324060113335727239773341131200067562187599869698446458696485846486853300323325600874515786716534267537515313477939259843131211014616933115416540953696990526112013409026336759474441086904566125412760326066693858552804741718723438968882305682428848420961944396810815517942751857692985728863781902269538396994489011059382848535167857030619163732695063856371144315836821296654606388847231161354546506214547930438422666240624714555413538778902302822749958103829469059145277204605751170221060993008475057380466402430417210538257820172827003530953785412051051206315538886481435518600424836671575990479325212965169294179431384605200291404916728535733012512211324677337923463862891661268592737411112877768471271077038764746026046821551852937998207903920593235783150998392085985587140411097664049061020971637526921063552966474654393854812429911317086086931021621863321626360722888793387550389699563944754153738998113622595838771963802923210908272463951752391769672712635080137091216443678923365711647423423379343012658968338627457054211732155369198089252422898163871807407931008944630742024428837768817547846286888440100518650180055983638159443438681095142092168828708777038130164893371216810015113641433144775330330514201556150699339665946519243842244271251463544911948871531410238165409853855835216808726467760872707800742570082854224911703989980237211526376161671952126642399781128639095293605928409164138051912724020663686757315932859764323708126206536633198551870599356761368322904996503623314028020745024922039443685661918515181819078332865117944676735524065885368522896627998526670305921648447214707099639469635588006624479139911659799079647989092449739181715520148492957046371396995553781714141042688562146028654053100843457152403861590869628779631281246697732608100685496975845215467698563917051946230864267165262226601654621018754270695242732820267570999633281544043546439755920526988718779052969685925558720082153474661221585314525890796056409013885700166867067651762097846588227689928362858643064459121129494679093867390440001273408032294232538431343922207793057812089618976953845558831841320670957482669994092246001470081694651963677660330355131183919952872248102108881792867515446869723117545165222687032204080972693019060469961655287869874056748284644736671128410075076349411132114431356436883105574814067990051901084797314078915253236154996912693992815952887938878521939842276095391124425056206631658325771617347793710462151843486979817650191802779188457515325595449843284859191858565880339347111122393141654381181284487082514995764473193031748065396056499867598343584052921490188464918239589387417518769581915865715351999926048606472241241961217432921262854343732880780179174805234873426854231372238882433118692120555380340937196081053561441111155116987652641229535888473995028043360944862683847937733917170875626879078601887199239427609172511282138475493625012202775277913603448781399181328079864579314696818152532182614748937287660925700238055001051322138288045291612198923017374471122381226596368082155707939584561402814284605790545618065388199012806862554813623666956229150836659356129981470242685172106761265574833334732584046490433860214304852167665940997795620860401197927310288385870852745204777967939841774700807195763848941684939200490602437905376267834256745446843903603885742681277654147207575078717914687383699707365490132890398916424435435180992402247432285127655365042865106390089043432670340877706168588872951118127675657489517462456569816190208483257208914898865192004001642932546112657113024643812964988192642806532935482294991363348070123312678200736525673065389817714037957358088291195012516896066383513878927637545648136135617598220584831825847414125923720526143633887852795563418049673917806407902238267353033800868465803750719071142624507591714222103978108474808007910495985449949308297578668602350544555559509720603618516847841073287623152141670090890390527288743015732244102768211478949034006670060509955751383805145008469392521733289779750277063107251564868827691967976528874836646787876509809190422988924420606233799842397119415489764066400724257437035856596426761331063983450317485898528171222889065539177575680797370784423562160293541091651251266439465645093014239769821363439389576099050467265686594258680988254139181894807096440789010228362918416696566011695257476489605827490848759707783686982563697913865046291410741842093305730049840105928106277913397967959763931639256963384430773836877507864772476949528445997477507599594162367912496036020116298387526735037545101440953581001388779712855363767451294374540385727735916451459574947307708537149933083847340394089004860249792932830702122862948891650103063880352703221147770268034281318553910143307162982257378067836973530943051229313634187237989074744634804306443622594793285689679655327692773175694715512097089810035639532436431861790578238479788422949712308336515386749973562294428504449888108549334132162814244014114100619388199297791792296731185471461360462206820999800277608495924176896610631580484293514033816596201467403082757378884648782334271163277622586888517882197090229346422135064013156002071811790444565818014120262302675424210103595853881472344181247421972755181537151968602576549579032955444190541565972568155955662864105580114678575562083642213121783343135075972031988184932842248765034333144939492810028128681442654016732711916797967507793357199765711951141003459277711703521984691605524160107922568554274823117010722907158327242775260936481086210121547694152104592274676538711714300303750927534037554932627164576865546886685497807811711581112197336604678079318311131312161358093896255078550469567787976119342164836635709197492410301157466517861584166521514714368058170955472482342877655054467392195705622572367310763108264914116912332713332264127245565740590177819291642983726173062295851958956910852258309081518871450254591321773851938637701845693721517460761204308706852217458567722811737402602901044153261922805161723142568258374145918681001707737536448590896485075747336510840222498304442234519390481618654378620123640002833978751709497539460891160586181593474347863193376523644645066716333374143920149377590078961807882020690209170734787077476622014254534264397011694267682567161952705835454295232889400199428945301045102951002435586996191398281120581748743654145269819579510933573120916052794222324521895359050647254983611161473907268892672705802964411280231667217338010176185850681743049646153812276931429553132434778809816546119023125690283703944521327766612034731698610661568117476281497821671192099974269781418664955686263580249146286906109871618857862802451960967551009249182814924077095038676021513506374555212794858869184082440682068312106377750307448563557986391749274496342770885105136541500205123819223309943872551231441896768921401616343786655009597405701872388418800262857076163266316971010529946517187465353473225198125198860785635782083796143491464701885918436215944443776764706881464904184176917605994915343730680116326706201738979923391121784921757812845696602547148475759514166872644854737712779915644271264577279894203449823815527524631425614085789900523608591939393609952910862157156645862200596535884568380113810575649324724571697760953489333936254051087187188938446678199825519524517228832971152462864380384930784898991595104856989121693553455714495779304930662402826739036685991161001758410249666346874281445686411240849520747907043418822009362515804767307243471226135736023451465014453140600846275026011882870554555278967922149175014923056634066512901755088527398941605841914281181024475531349563390440165653231336061051074905032545951356773655820738621527932773596949306461562579972139694380300231562934223346708375282622602765576896844144568183197663479387758615673324965780652852599833212841571039855638301538934323880272100478218535482316183837865792843159170751497047724758872301976266269256442947808941713090298669683511086594433288378532758388495835046596374915576939787781612866682173031969778338175780826014901256055954150446641374445710437616761616227926750935103871125962230875080315980413511412527698194728325090590200675737149512248155233497933704736423009608357080604585863553606370412792312663203725151665507043099152562389335672242460150599449280766917014781471664707322238122413062894657169626378402180108230308878731930083602283531009294267623207543782315578368263691414661775721267274358682255965700433099658612594749831081243909833465281286586441940779324604571817159674865752047959836182100509454363693410332190449000993564780866058640831064134227536339743542533462423430703894741007496320317565740924131829858083016206783105368025586257234608767074421920503831254303444795897481420489169655565805476680671551533381593726046365270462086415172626317507488686593758481918513764292773602180974019762845282397925396836525055341326182259446652244358772692470414238243740404555560411296120129308576625754802815598871684371512041051372070332444682890117647351001579288371669449251891755870252481966979877450994440835932223480220308333654366668258515497675962970737381994615231590347983787123833436956228520558679229884714819412577009325664793036805560905052249798879303924065383507525322469271436327793215965107822292569783721076906306199494079532574917862713144227536932308987163241265135717783458360971105193146166342162609614827461423269747147901915481863643176743238059235339481825583634438406915749146852619246802116980246586880259943391461761307622794711740687746594370302930750482110148161711384173524665054960651482715266009302654222800087536882308263519274293083426784394182138444809955182299993677596806903706420252802897609596362437506195120257537638082817161413149420672829715202992330658730170000918667990180978585583098026457583864161282329665615256064857559797340169546275065064388706406979926731816521071545982633764224546327840295842735892855869059276118924870730280321135937730862812674779366518678262504571466532937916810881164711418590135304098174339760371169477811297109272194068580805680110018346300532571892308364884209238113565812053874933013681436963289069167281306790860271807557068354721882604088047924098426929763593124187520581156593773162873988320222383898688737700889297555931631254702215294707644793995948204577922699357991392589193577205654590008520002234528529773142173617353660991528353925308872685344900605502689782838819498565174653279834072512867729770313018017645463962499446027282067220689904976772019534768469419963515564728294656104068499024551021332854444047451392998684163047745109062075647193891784898476909412622450699648581287733379350802505743401211165991361437855997088012354181150896152772159253867297169394465052968884932106172907554877029138578012603095270662075865975527793632851680782181751289478261107782139938046692707257931282542818030016807277757345630141297888442227287774220222908055404515994911165592672401956933434750446997387408875941621081326175729382030824150118413841304103674199828469610118832441118251766279363745378121862608792917593722931556921008835638332382986204934134327847388849971307466870307945160859505985878939050450171789028653448314591890094586432197098782822321103975285240294136321908794425817796983998047840156423437215769992686939820787189301684524222265415895939391803852926456014949093412083490859343105080996942551406741637243444250180553275779539669547216783944852392615656096269569030254448923147002346486143374350069578882995161860388041690207373540885614964568169901387641125923999127065219300114297427338087319334629408435070580667204973256539456286381151781139899087231682749405052031665993737363750303101830013811091074086236215369354797872409787622971965947521361492436700415120892060575096465885642633255242753299786820765102462431929140846156964476079853495466025407642346131805207066866895391142584497004778626999290579909292753606643950324265318628737786819709236045162071487485313502267768823121379352194087638236193281673490530224128999356656948033631194415419653297256311121446556987359257053161048474132181074914393467637135729897386817000064285575284980776926686271463827085441127895572200053430327707435373834900336842238675810502963689562908456121505644159390001038672993824242452739498855849054915178617284656709904926138252132652059737208028557143384446791192583497371268681934431267171244755891518185224840461135203419614241525185869664502329295873864798016756283710105843108140271726417552052447753154177276216558418843546028217731251256655100879290715557598389517837314242371374498907414175614300889662867051897117856819990391577957344812590307129404934121730519577839490218480343781535157905422771842013158862715045273128019754637334556795647224211479539349734394540998057186589644915491477752293352215611015296425594342178861628325756749929611902181113172680237624107662618597168512781365063734744938792291023067480836972641794492233613228626269982448547689957214383122678121419141428239863555807497377334030599213717964452741300928904207050497333497243995658222826412006723460128294160095693096753665465747111210907632754174998972834430581236646889642849222850919152136983986907994075207313501786265384077076132966488448191930247678695433985220591677877502460615350883933516167977822342051328566849731133700683466815906293534599493912506593049571069246322522153595635989786739628950623275328861357458580038052339041470414777174661126877478928487839017688352748337225010525535087652962601660203579344401454111422411908510583274491652130230783482495235469402189166912360820147301462362510911250720449441974853246826364390051547317163443952427124275576145209670299820140365337463755841236375786019832677640566356067725690987729434490353544488247076904152133567109162874140560042558661517828791241690801567497869601628686548336558188699797855086056120341335289267584248271645492465517549109808204763700124954492354046477124264192217960535720281485218782580875722769751153252836078763679226170030448702070790377920603771120512944365692624524567937173676138625269482713756263278563633205829776783676565324815756095818845615018621364862801435295073648958328032467288067330098478540672199403140840069867522280635269428559684856771269927220500294396195008701031648836303670265553546756373056058203480356106401126312924857052408497705240019608958300468911714736968139626560403841017593850473613259016689679859029077621287223850103886397403144625709362429072584455929708962909545334864337116151563898530318366211713629559116441193949535987444079288918902008070166561790659818733046193397800218021193870395060518700348850841298772078054097045371844428914391466806266786501048237530251719855166127195455656879339271393386655745920884204152868584927727256780624539991905601079222724096886962059996389008099895649415971727314804600753259724431193955995431067920401171256575196262454956978720631260664224287104270789682982257356280629601480192878983118906740356227295775655854805164796359005669286589822206823711031311520812159714498488156339130815741761363278323575188158785493124623827178646624852453418961215240779969418162431188629742394723201377502778414490893235365562175309138595459321011279011447844105229255215388087830754306744255207112757235025781702821446638993356412655634790463888296589464774938485332722748814832782477070022178833176068707659863998096393344414210588657175038898151325088135754660851732702448085867365945382280975747644313446777309826039678110375491749256826983316963349738867470473569128825457594408343571711478117307419649333767942235986709997346598738750205557308989299312346216635849661653092924881267006580551853010558071744573857913155144882086809639880656271155681350590103874489695890533040866766738541854866974272988227174023345458866944788673418183715204535929624377818812040607857875264420459313547202622527057450408928534260763697311617144046430439470124506820298237900172115972282615315803409156027999368469436445511501746313623450802593960974468761060835843037604474818936832410052340485225644476676776476511257872353818154084499633855107398413853136219322039324886548332084498478797956365527571036173745443677957540307668131534423209805980288475858858218925980521805794637581009284394732426073393755539716376037559554079560259490582772906702424833673083112342508619188402427103134977881787884623645338259606497360973305237260279589638289958459384265630601362998629858219738780980052022308420891780916460361612456504114324154465889945769672161818037465758032475449799443595837335767890757113070885387623987190044606279404497834421379497607864527138442615594580541053131412018059357394715065679916834894146102254726415608859826145688828047711951363202537663853170005612566185823165848153178626331152017544315574770529781934192018883430393095256910176069500271016057846730249811374042452348598839803081511851150822253468539159268623205750234333515467673608025544925869451805967838496419326117928712770043076629109185058364251661248060657769121156983127089381617685714832372094081147944735376983907351795683766284569768421867671442706980889669612341537621285846477063539993584290918502673443779413727013719629016849315896987080524835101670745100436773098832890484943742812549413256589971313972874556594363039144523500035337938595783771290838213434329068957105533995683933751252753825003749603835057039366935736091229690715333141715507138136871979975372566983760492891091442666152073916767482722490888621442944488672212366673194782129573002776209134303332609487507855304789986759032322184801097206784558977683457191426282592311058464790070542971433655570696707168662514241787022364621601371852298013702597076870639521136635094646312862619037057035094937203048808095069970001344119046845738098173825651487624229007670965072186917883758089984383012369932307802977091420353951716413423802661114280318880144715261584688143229362058605869675281653940120060001350973293624714824912687930333923712110361331549042561841416275181147671474696147663455782506663649331488182965184601122095757826728472675420353286911699881920002792793048231463433213462177233857581080533124746827398900412225395117757901988346906658946455170438694683819986335393216200893793587170095203146439216246298302966443075018175631629549224315212993958798368434979406319817190746679661716009810756112928234966096437796614052158616841553540724125210321198732219135605059155396501680103398867829710391954018316498275246737793040291323662425012581415230715338456226531142547833897178158704976758311793988798570900132885294037908309854563350433653389843200816992528225825061365838976525517073796349949317568020293174647960514569494936418294044207287510185637865402970798967999171495762258450202525622998024087676145399044504835462387307226803732988736047936466064115460024141008631243650221586358049928450336612438062629558877835128693089457782482983258824852040400978802963548832654626243475385110332432976456487660774940358031186701275968432130221211926836202594302866091593794453673959711946052164045142714295464636776608425332562391750394255914140345212165103661614285619686643592894733854926023712383504979989789316406645969419251663217166285360923891491193149050246861145999167042274044654029314193754008869092300325316510089925531842978782055916972383897273812532128560956003851253159963017252249800232086632155360401702084706752234623644113021002714366272544793036544849373559047623892534773823479191333366963845789445544701936087376777869951279614399030475087338080207752995670869780898105511905592589678849080075736362710360993952561409331382918870021890486715442567966455243807727172444931219707047991456548502761340026774389038280919811082213363323940201808452520463034392211850724170598985633693316848905198223559144182312270404649046794820573675332419409241944247730318272581919946464962364125370290921953389402618171922762606551499384232425451018997531998365298299034040387872951023221145868633922449606480771972680135744012030632251783979439745130282192736191097487226913864342475729074819862899147647293203004802415976961504556666470287951421481452906081668703336113929923881009626990339321217068806348406233151252948112113195587901693732803430791434082668156358660166131913520160051319652819217509530151634881634212549729579659491150144800762795086544282803572099848079412378387365270125735271554213735129214794198164408942882915180943841363706401694000517800030421633324377623019189524234375215991357412156046095945215176639570647328892822715761769249681010204507904798904389167164265251666725948038131160983698026506121739759305798184700847517011662233612108823017283025891655212349810911549909051654148736133265870468193545095240115874305382540880118359157862391865055581752504552128144713123520998127619314602958650956723357489155166819754451831698684699135549232009955814104662646398760931072358403051540895713067155079516691417562484031887392588088579203080927444161415872314191521908370454272685927782434691159972906363347092261151722285606380721438402293913400013172224558557255967722585815905885853866169491224499061242829547800699613353601822051951541713786913959874733521398442697010526816440311263713273417673994444556894769276809449164895368102808337319483279298729729991530584546623170309622324435117453011059249819723601995220135174767062364693653765889076226861031988843449935096018922425278322387539420346918527527820876532584844417921008130837469033300028414592181231588193328642004066687977644825692653137143975970099852253746990722250140847929604242932553639281706655168858128389145037440314340477581217294845959556895948980879796869576634886427181198152831193295123804008912568260942927124806692628068118933004211781746932907368210535403467481188289615151211762458205114425626973185086821966870690395478280903812138445671254602529513262549479654239439145283056791997069543042622313889865656193766962706983192824355356636001516184807794773541662695599196648845931332825436181935439212750183059331441672609177081261469330363364673604496048459385125307876849128227493025115197787478318823356632625894737285616827102592606845923800687518682733234427072026859551801590066997046307437912101954655329810092056304039199385727321866768872749462744303635230575268538630162071946829593750230829230202470884971408520556059916590256862465017428990291354985667358536344151055959839871245196423681645471727938507725608790169577239923410543885676691642613724324365148325383451195455637180478688106894653067468938436447235607815825468637130601358195406632243096496056532170373737061294036446335559964353922868717158053733666631503294247979321050797739636361203836096697907426018395702209228091139080469356192572398244595306212918092504813682328596958226598809693413614761465081511078173096258861161251678127598148811682652289978517570460820059428670291587505838193191786047956418446744558915128320378401270933508891347107249063232570170842714204805852400408007268748207950986412370435154942047246223734854808530562551907302256179350920275613376101375215143848479421302655386224866440395086574263990936305108915018256807173746988054718951115619648720956423341976611860084715784631696630282936472062804771761812810242106678694462468671629474954260680438579171404528776386920454127761915038094780830354651646191829233215679063040172386674835049747251645783929274068044493820031347024863822176988476909776023216934009876576098345626869460419249382281087581976103512090527462627442298705109950524361748963944355753309280746160343016217196543038152951367571354301098692652455708382911147619744124790245372219214364611632109513517893261511503540786029630065235901974380287959734884766218125460094240054986889032484092287869898272374135136769476948673678686259664817910304728355828986130429744417828995345816014761723160958941766138630644900023607702337634227237009678062077529004066252087073181640076788535232098550563541398547883966510488105982061917158239379508021310457417778198761765686719340404828722464122715610268735136814627995657469251597368389705826190686184680862786106531587283461967344454366213103511115001264843456274845764605631864656518800872629257283244025137226670514633494680407838404375507226626836291710516027001490145382863577921661335067595165508646410619111969576366957255479220576929805856873928946843913145194363609440988574974174451262467976891049039387531020273354855604667834950476071969426544091235918196903369361941405420202062421690680303034070858211532425750746577012355052772140885912092690180932940479951999482943851730583964219612076517887823585910410953610501557929164082542250472892817700279733021480169826459582949973650044635560408705313728663410499069118474748111666686931898240942766337605699888413452299475873411649829563272525494606651921979688901974829545213305808052086055715337150334113524936668909327388695270375882136716596586079624354459715932541707922092713431685627936380485978317736231471968308349060688044372470904511688468614329645142934685978831621808055370529436419568396270431941212889204272437920586145379429953526534351312497636060753554898962616912922943150150646188508090115722836662429333332754430923267449306265909061969787873165942923118935838895678854871679003687757688979334634003570062412072779599242663031029858895699795477277511624391260044658336480833292556287786397977598401241719698529681935979116381204903740157552558633268690140740182166399343849269387304270481250045072757699632118667234453729126636269725274872259379203761921835956050588237281388429856418125336856970850721050427609036080129685863596141148584294662687436358616706349930887931922270617710941529094515947611064783154137632686456294624877230076383937743693923334658379665806667045824561675721442331658244153948603764612484935392266128335850355748659298185724662047021145521609853367009544045415693390927049256108266209511075023187533920931951247373901346062090736888115010408465576188955526000665751427243430319501369867784700462150365699444708575342394981192979640543706470525382377589386716390588481484263168338658106831104117972186381896631138786200587435812970158527959805202264638595522920133688723959599708104500163837926883873735735196750355572481354905382172651418672824498981527193511581621812237949441732118958332787585350001968963706860647991877250366518530747109816526998605526529406968309251197442048310390473254174293440913332927442552118681569675608898054760742550276014561624745329321901280456467288188983886482854862813096168258399504582411613463029647605094488400821078459821461810735759018502409125318681804828480867783102759065225080613636529124551566886621548028303567260525739703612955101856344818831748253373892828857571995332174050796720893894895871316907776096508384420280232421057200965606626673438028941236948748956940461944004115435040353506283464031797114572212318981896100890284530841968636744542267932695903844252284226100025243283671779317075498774626404139146450260394900818066378234467566330399290846987624706307971809201853724495347911187688039456955349491550172847838882368171466387012661824902886642136482999784937897012369195824486335056471200175130177364830006461912724907349531621430842119777609883550371275258864635137248622779517091402916699985353699420256450077966786875305323771358473074274791335939473399589307231134318419992153134150265157290302113366543046300168521185657707979404481071442735701120406125814947487993478907988458207438778270418965507840142659939941961798638259212245841186727186333793821307325414114402220846707832835037485957240458124741954157377526775553576059174639363143891976028505428643230022562929561919236861392154307661831628635771621470037740900372022820467719884807886601937610539865653442565478600757656733106251931859389242951726633800025596729476853444298419298918923542240933544963480425066335328919733951716872198884656631041964587427939602601158701517664066813369231120864018276118187000514148636466366893209780775974974403983609864196182213547929612840212456958911769562864698345148805212163184468612549617007092315780037881202457224513876459605131334385709629484728087323360262887786954971755583452052307913245294857612262752470021563362076752466479194471902162664903742638776332941813389045779269732359360996783741715559821054566944531637679926583980018477079579534190812938992651649543682758826495829147813662685112712194300462559768051408295370926143828138138612782022155940228796442247860303186926929126543484594845687215631281323155845045740692613474833457508885410229175354269058590778225490750262219489826336563880732156814893668408878423960652042255332813205034566927047421347910836091810389661081091227640514255614233828067549889873600356894868943710273356644310112374967609806917522084860511433781970889023518030160177413035597384292238245089753226609399156628474387351614998315083337231279257807916701222070992720085355520894369210641205454423308115486217578436381477970329050529778584441235080359159876783652692063462797617461352417184297722557050838116816933162496242495507308657095138507946106269427906046759125708863328381832116248473440104195402788779760774192615642133500469541999358805073117723578977595579651223985235803650781149785424395369678970302407455263977115627668761553698806853802370085344470296551406213935468683111115636525736472176494557956838365256606106426939869671154912006816923437274571625439753684581668467539893310248390726353912765188293431912804958783423707110587413251142528735637372169056648204761303779455732121923962161329871508496233564735531793663288159606051779117234988655517993491212206430260242216934404691050038401052097613066804124027405522065366247025573158392609020303370682340437244241459575499861844018838960839550767017730913049015696828519127384540008347083689686107521799836057744178754696067769628916524769812961487778452497396142285972257479500153679836144180892404293894154117629820014878596154615931944137607203522482298355867488231627278927397351336954395777408922230827311040689856201914533421625563614165206512834798619862155748476983731676441084357838254355359759906827362629523055440795263600471161833683973185260215486558280937973991707124079811975234785334508318547452110407102422621479318467270771992918197176073115773993031729148081756998827635464054023117651841442850373087742742695853294362623071205205615976198692024123333949748274794434469153247841785708545654948680812450792021419496505544415815346094098015422248151213009455000751257498701509910387480834905971635322100483971600703302971036556503860896958149200929954992006343352328903753213933480245930643723884425994564249633675923625158653869576437280856706415254860814209412324767271805251754679888304075802967652854555358367129383614977699326808588552585353879615366424334816011020527860464618411373525036215534367799590458678322856371164663305420829357480164609363038202188790485100718704679624226643242890420173213464882929349866277322710227522838509266826851795310708204445287260355525960073646650406063594877001967472335311288486708185746443505287035537011117702100075938305465919747419160411387955007404472287750509674670249684733755592022955000696160950510534887262098890963004829843946294334339632579388925283496614989700934203448505024505574241103357336873412473203902492514793212973735215281514078560372639379444431688566758934489019868479528508871769992565984745970435164499079672664491554844254447994401604913933326716713422860303487826831377927177813989309818646313707960639973088688211331846794283922080309765586891029901447035885900170726491233529897062163248819942398789817217710950220858558521728423367818548640083091531428075026570551935384734810626160172412892294668207896945304756213461824409376323699639459870734997133355087854269806281292784354821571237298109163475576599767404159730032331244845590346859121618469486071900654237448402546428546769365388796760395319181939591319735186465975664694680227561468568753890353080346214124802534965223641102010561388927095480276787695851113963669753496249513833755970563835905086232680014088679109051998263845333462987998873932335470134863200639653688503525218810428256594784971486311928820890126027828181233601984096675116531057648672542470094010746363813610054942025627925865705399104578115861112360418559144287315301663929425781918228835526037829619153145871684429496034103811092735187152919567062118753890156460556322526616461522231348584468910145349319358336722584244636774259230171715136764007788247384311453380657600420199380746629649419348208235258177486151223874405371864954014247603211204261731759734160018045385941592759898870644055871820228451023334032116018525014043074028526401579834996461234541440972009298345196763497161239902398356099040466408257127296025720038873493376626491978378937690380345850902827694666205142007178122727101613292530826084269634084915619880232514461904938240138760590595733128716014397635129914400752441480270095571803214158012235519928542584737453320712609447537822741135726094574800410545109666969865360759101902967017926259407821460686459782760398289894053069790810175001570203619762689729528593626435283437329200121151849167067706404227162850115807774309044345444369741378596900498843867273267013704494031143138211559706112037211385235605197180490935377346661820836028567469285400907455816798355926052139835379863776540234262143548828023144276042839340080451041829060092031165365887852037654798880746683937566093650206330475586660205162584040113815389844977003733964814532965687904440984283471170135694199994215167819064901152145620591963956459889833345981004425700378057039588846785544106823809502233222958081335049311100172216249040205466535222455924003118861723308822658778688208570982849424307910401707959666782891020343283593548145448118801409396708854696669831089469434723954666570489256505579860487704147981319072675485196814094103130335734770639114265975713939316650610495800088548138454630670896159446152465211951052817541549253247879479963387462848552028050445101688770772048927568008048513975581806687586302179054325536423541297881211452721888328459939367482352052592915647921574957923568822730528085577522489063759573698713027053970717567449146833936290394793104033889301003108692414498123856549300504677231528324637350084060867121509777205684088088697925533464220329498327770005774256264544144369438612453397521394513670652825921368945674306332740492034131388915758165184189407109792736287746928603477834441046728501172100517720507566982642963651623049098089465306943877064703065422767358242799089571944386762496960404951396458874848186823028593341822198079215796414352574151777951243452087150888989892400445256584130714840452905961822226779491510386404225255530885843065443012261468008295067574526596601175173211506157911983529116255612424708654795244316989965905568056586513079426685185090511866079411417945711469033558136167558276283329274104932602907356873128346004742185428108051324488434844082677254700188728463816699338656106985042829167467009379534608180927966662000760082836361196323885601261995924156052027981475892321656726911865156855013558764655208175679735998717626041411704880519003074593223079569746564799747813126358956392600325669197078004655568301519049217012240685312509197104386370789993892767152332716886365549392106653464440671301390843181161507828320629527462499158327874065553326214099397957857696598901209404511620688428393147529225486847713375496997515286805048324837344769531741290089855534366039760034958643966048060403903647784276461912934454888644722909773448075506909976555739085226965203828680029607550807363572736611383773454794254941025611497304085761395656917541825085123331300950205384801418550368984227818134476931632786511549148403095907194442950895832724322000896955633628832571072703266080447566706671932626289295475469113116000225720654037146477601861269901352036481662672626585189429607084475953755141636491957486195814430727580897399226597804667737778948490441819909949840341374018326443564454630367130719087857172374797490409921452109240497940593381518197008262883522193054065385550073520616061370808132250525970093982109301934223447040857246420648586887478452972023509533077234195411317843066729677987975543838027137547257247987287657214752850021059829577457807219759084702057731115575832361446193717544079884113251733524872438365789214865516693829186793510255298837308347910564767346307311768565806828004064448276843820125892230450454891204675978781912190965291104723903923905078045619282585019194707179200088367493244546929806141412337817738801497055979365693778620544003484141834259239916922354577088539801496019901093308344677290715354752140974325128210673770076079132908173132122039406573991168179207576689816489741702277032732897685549411862670475005903188837156527247805344577132876700120480074583406112788734493086707037738010281053405419571305630070915224944403960744448245805935835931647628329009501121850232766458719649335366031213925411604186746466665578700751853358260295438928506678277054692812342545869519552316313601536098477012093398796844360484198934872377934929991278113550520655084629306558536730027603532487729402465548597105198786923003945715416459411324075241699639621128065730754400307428648896591320297373774411638941810339087580596555793162803625602374955819947566442379852737520448818585263922642510008054799895479660579302672362750306461381594263469472858779441883139348965665347876656240770894106179136580346058006034651657565960734026324062262341624233885907545312627325410024120175598840652906286916346160824792596137253619703621968479634158814708510748861563847527825701668736525099581915755106887111403177499929264824462400280987776538311469917847720699767839968608691016710835644603816934342857022298709728450419394098849044455404934050150731698984815750569831169135895400064729004990784357364640181573985599965750090064885216747758669354925324664520383469556029940657643396117186529278707824705402661271464215833922512472782315445474133139939832240889439496257925087382900020366757041555267569265173940024329620371440822866866320279837305090255360209383839445646305192904872803073041575217947392643427334923980041980568684049192338515651478991616716175954756699588696132102287497081631237827570942207608385872613577120005908846957470490148163561715457874857251800258505610679106102775270655669192971123440401868065078523218885968630555758163678530646108431618636924049837569163087961909600527632223649205159308646381355095972704255145164306673787318333141980501846703010942080335245240821741814502075944988493606520022084540665027825601233796441641593402889548916843635110199966772651272445975157347816020021218604272851540519153364599768610029056551937318691477833996000417175283058664552995203440206516787961997961211186688604230107673788910463408685849788623324640001066063956646242254333398881565223973977174853464807615680238049131929093117045650088462362916716312175330645865309325176611456610729033692708769861422331636733117420177680937217497105984213735622206426475402557949640626112130005881720495275924604928345195125074740824971481162204126451351849525339611745609936349043813158448498138117602928970855880325507745157968770486160529065414117422768684814474828791567807002103538723267482145805685159700151685275096853578037785208315939184284199076394617114735148740338431901048468762857876198900790417966911816829602960267167112310766916027365312171153212294710706024980596201033956256442954355253579803965135817095278232529002884280804849661569902811708177667639000436531916530487847871452498290218164570085396085052956351716820466394909437481899248291906767221783249062334513621640402740271802212272545678534011902668774756005843157901047242275476667488417494865989975198783540390413030819188142677012118732932735468784602135164219680264936966338091477718174320224568963312539240826579285242268971317799693192345326721546206879224674031817881088322844672067151556609338092618957061184146284251806977295704892761135878028681622274089378920542710568578690618725337697496410343219127576281821792165590209897859790420293741495531378287846744429603026274457778473791657373941750637992920746842223907338636414479855783232702300381789475248546848049630663135272443904017084147266359722620889761998178196037244865011294254097898712878796558324790578798665103844745562160538315260999120277333702775321529515339573401297834388429448976485171311244550463725592667495981575198601439604447579209874269458961901482589720445567941198410036494478438540595379111427250551598958886033893538845629432245584184931476348052976696607183771038271851744651990664254100317151118399437594693415011684504718973813888480461929217483209622920004010864045272557213011608373595937292377676588704472827197808289045569846288442066191890849672277180589288959596933361545896416611174997582588887841252418496217647682630277989030665289110258464008890736496157696770577362418442055450688374925811700587747411674155428739569808061126877394404725793762385343374879554656703381515675260272663018408628099890553645744662490190450431094556999836919007936180617194485457648422476734180081431339964413654247540932352959991382591146405584068487814013454767698793455655328559059841681080797646895933319273903621340175389553023721171381801777279039685518285656506451776443126537002457547747843617024792009340020316142210608065555133653439457047970647419258389528743025795484092741642859953083609468768842557588203591943351215577044186830653438019070550681662886708639491937782003206625463128792458540047070311959604734707889844023522086842183016186283384344903739136051202265834381335334978851898782231224894596580144575833292843347799086518431562384507099821069213382849306739100875247671647237389900081058064165494625780302952835509711991594412490410765545059063396743493384332520948474397309355910486867715646047291665696050758545527175464768379287827478703499467812842045889716365073602851758843388607751831730846022209335803266604857399060725182257225101686112452632108539967577123532683159507811943839600117594988473504913783353034019723130104009743402006372386117697171062229961948145400025088755675079340365903583299426984640729067904800991397464272577164920082503328361346107493724901638766992764028588466836830198676710502137897310323924717787142171668045972239083798532685004789282472979608780909281982979846968763278360876073857642647731033053619978538537625792860332041916144893091883804211446524631660634667633432896993404518245033540273227232537321914613264607713699814049702346760374248167696862151573580824033027862069251013287389392570786080958417451682395726386437057299760132419719065252450697887640504053341257414971136690625019038856520970934789624799211082404730414232445832027914456251164185591510049625154089502291070459464813717064571255446144930596741163676699111480398614552551985389567913003180732625318423154613349278510629263049249560834941673378448686585831484443469029927772360279011144155017778777671471914609265157179710583950415890803921401947375762695503383891788879521393256451265558355266257311439925271682952921620670968963312614316357734153569871919085409190931627383354117533403937633624299317172723494040430308385915290747099062405389880198914863778300811987276277410489108342952950962145058667751208377175370505223487856460012992891695804690927510166495242474573725374723868026435630139505682432356917872031652664102441193852637650710681878320813013075954780028495345878723065920349852091639677137611845250101460945905805554042108374790047678644539771309809970239156311766165711015131413391442960546393065643823937352651755664320136080547681074284826748903559985340988110933273130157464729890366323272179747289741782314163514751326894277715500928417780770006119085288543542540458686144245636471589653131935161789587683657151715279257898863873678081643837075230882837502724302538637448378269593372080474316526552815414254411598246429177077270554327733805229836248313850655724983689535879857294047723680394655575204170679435892847343122244489213861049339346091908188053092799493813592077136389489435591844299381435921362264993946514768242945326397906128812857573777640014993163251357241161878869264746804838365662086686583594468522643359950716751598815245257357961472270136164623388782244379682029334857894177177326816952465430480192854678218915765541462489550262652735821991640101006610187677100985665928684231381739601388837375000543374325639246507319842173840896313077413475943788846478648786849733852969282793673373924361145663316794503271490573901360123044985206735934881737932643527545392173700318587427893791032843089968944372056770550282524011398889250344171392630408074153468025684631974659402344854947867416964062530247167982538256478990636116763678269127798825850363840333735214607528307978417546421988796319155078998229840391757974771659654344671075908361047883014695830744394708406438166293900477430509052592209299486649160396678428939144929909747253691141592001189882911170521938576390508000161387885911152238451600037797202169493757474792790846752788876271906631633560724805734251195326483635393528402451199964583956765341764662570706455868559087887434885862527242016684634695437054658605458236146427220119088391656614292070788461228692171123213431073761988770268627144537524798088593720331805660457982075563834635080853112967946187132831904806124739826678033126378778011569321575173413510190988107105280185423397729328759360677430260702390383075291356482799338122612432603452081709916240677140927165715440968280729551487728486470795058931369165673581029168335198839566463021880361064205563309039610304323397879872998243525539690571739326219377839801433086870098463443279305213398759092149321916147216008116794596284259300218131849433338264071338305550366324803390475939396622178652063239725373045600541325441895112138839337857339067571634561374089697923547986432862362590921309358180707098891811045687430200613872149975144401915861950311275228372133504772329085856071658432897662452539839573390056736410405024653506509589620471091440918613478087822435362366658811938705775445530038541552533305993491338457101588995917988871277454300554230277071105710830667977055110281752596962732167363842858233087533342586838039475459614905090908866386043593195754951949753735890245195259613620091959690345807399575171105157132299782979985248951604633088368548857058366319880820662255865888437596752512738435971628566071619253721328071239704073352763623759917145128579730306864898071106413256787528044405908648548598237425939231578809122195803652634479512262286935739433395493625242034981744138924445598300702182642733540090889525312628208491420297315161147545222136356815431111781508948086431598766615594239287175270470511423257363057075143755541735779329497666598615323004363063833812557990991645315293514375119051683819501568702027407756410976080897316009329769714854609383566041382291068670664504572821131850587574490202178834058727388988020442131443409103604206854158632211589494353750498134262467064958124163953618845723939079475325478123616797912589251124159858392772585859740868197406343950400908189023522859672402819847277723846469326077184059157592141876503687875376816407298710746370110929448473974782034012600076076868396801270712579783621937381858234103856854767106944093224897135660010366526660590108293315172012750961856064521429762847975657628101105815047295131534369846272295699740439511185125784557319788770833210978912646435894447362263879990351693919863710978567438395047555299632708305592143457802909455028826762140663320540665257498176613517671458749755579600143718533852254266083377173105601099770130321903656827423777190452677350284719229828841132241216950320996304572974805965955077940108464113406301584504592966529457724347949184980021964872371206964122795792155774845548222259971004552168870393889599094219288328746495759931386083074414587829783722700383245161778380560983303840631482487705865383498856705325950270162218952423540409324222514730931363207331982518990439564443845024528461116882277351094281651047183244968708734410485054946322848855394184843130642913048125083430313039104476069867775136083042279299195797585399840910796020149469651595781192809575013271398213978730654588465477158909203851680538785475831703561788026900771996587643416100462326431539853295034075647155631434057675705599773376214924209117147768365225537901191122469150844491297109355049818355477209228403119557027929189540299159405656704340704280292945463108906912035322877295951988818023007758045583884609842158007596283872845175444371191190705672197446520220710985284700022879151454545927091701433804069107312372036364972978336813818977208214610967615124184647130942004572087926649783111656553275807293959288520981557492409399450199669625116399770428659556899267397126267368375400778039439756299082331357878456864611476976639810253409605573079715773924417582721843777832083845604160341546679757688101158655033997828108612292388095841967694494633890709237597222753932454800367681994607614321774161052354534061075810879305013303444551671264742405167934192705451087550432786756105426841936499362593522153444354558263831334562531262077856444080108884200502197705495440555897746626396163947390219122129635986921351790305782445813224994336390894496166778217227046629279217683523931382838213061613532331579908117725500790143214295114535859935265660602853216587944853852359308286312989672373397600831274751554545842715829256189175332639601603284349490925740312983889173226201980945057386230810221782219570288632219067821441824386341532846455331861435122034370860282266324037768997660026077765498050408497331768410285879314788449045653106705186630581377045637239144402325379702355907370188848250541751497584925329440759834464081948300621988339484602329723403847496066635477177545622744151104824501790294586394297584944880453678774496561137055055186234549335921733405305176087495645482357130439455844359856217188909517548261539817795343369456763821446404635172735075018185745309691698617672083332149226767208754708228491211485508891337105558953481497077774097467467745685584534065085261065769122734084865705954278486532100414162382915292580672453477517946834078383251738906923782490057158658009933833291672404433604403503753664707370899829541128625401978783197201099512013797154543223145691168803612967840797980091690666882127726350316769544293907129751667149506281098218927468222402336303130417611631941643780192149525430776438836162888970319240844166284126454792477988930006543835285301900164155137296743754389837882414746680857636181921701626618457864057784873991208292828573648980963212657275492543856647848708851918025459409639469765957851107305560321178248734937413485819561074561915884469040295100071734783071987558121895793182398823350572784642031729194539181327261977491523606474206061531820041720756565378223508804660646534608753250000908702673547187853038283568465757263511311695387546429114176120842854904394601111507042295818471050567458193675218555337838726036577396521975199031886040449517179041293820903292886782855638408861718379051530441354507429280970907268081452609472219726420875617333831183334125659031390669703854638532683808055468731696811164232681362523455886994282390783544649266112370854882237009178316900075452027032561698644135502545759424712490552526010838204217190960537382773678800481157686769243232543492461484940113796219425773183299095897563778129643496899368535712895736504188057760339836788033407009741329278998863201125029751646264889134809958532714555006279198622769757427166382886440578757479874104885656111594473270428806738098573087975994734058126266615559667636342671476421355294662729145735986482757508359678106647759505748263440892714985053310466082910547234734301729406750094863534634743662261996414791648304421929906170172973226286234401093826330555048633227907059545733214836621454861763351391394397439318342550236311903667901643653160754560534934956945412264182756371947621056675519541050724323545661749747349036284134711266307133641098220287828805254481763400134155751200087468111933249357211012458189123926887712849489874358541466376996726341345917526797499940814299324164145265302268660688418589575033103984721743564280845551501376175744386424270073505548278395678061297057475307302183048819663342125687599577862506435102169574661955722231886654356170803321262734536183058230237176352674765811981361860773548634573215778151879717048992458541096497951333181479293983244435883380887408027853913166545921158499964375737441480620926721358876845611424569175077299431225981846875332603441294101322173950320698437689014178058687537614168591922160441872208996843436550556137048299610117113067541282260221011005688053047195602537040324298760825678570265733744767890259091815265098813682325917212522021334790489051790877083227814808469607156641076112839539697428256246481389858218834949280704981277797276280539135465591234073890184457673436005219774141732845055318525324221686230366567036814259205967115487107589689318244504305499506964080109417256275534228633221927138380700052922729728503573258523299354817548890314298638222630436103113128147005550405704877173465368923504290594097552393612641204578712233861184159238124803188140234473520113174371678088064131415848373283090097097570573974721203518146376389209180080316588518871754532591352278267443688827575903892315876367068545841649838135968038603355806907898604856415565115219600608400293694118142332122683781279594264175333467842791202858678115791176529354649319534810842705857347479653770685333632920670289625806829321934715220232244052880221465164444389489305049257358335965840633086927122064991403315325796797907102064560956273448132652630643528846452708812349437973051063254740740579186278295748260184530385778751567251935143466579432166208158618875936150478105572118643415645843026295878617887351898602386751126928207585944568810694073450924774049179061422254260139275350686183848268523944123712000944049377633872274104965739426906130494496445888054020471627183916481066134645129522192898045265283928332873363537164127138446917290948192000672494669413040589441204333939630027253464275564757896476599734114812293907581034533904147574976793448806011027338643331355587078999740112999483635583290322041756798232424521367055303168568818844954729506154203095085012696385139290612454122219408665839575921949028522282194359648349637956756846109355602305922524427893666172592971108776151370363478320611645012384498432369373985856268592421170711920419153754864068440400139716252403187070557363851681844404656057159571014380898670090464503311372779449424358606163590980846780674586045085588090026224475666463088419039393236906277575777360628771544971313162631718825381921255246195737463668974747920076930704107132033623847839785034319688118505990103269625948277788430187473252157630315486754296944791369204630891840321460543207107433899555739228119672961106830249512525534130408324529922512385980122755192526267358441276263473441641135412500999382912257662819100146701808773221521873328491409920110434883546955986383996128477532800658204315897580260518074796101300466082084214665415515610858018971895640394610488485924725817087273060961076717655421345497456835097225044205654125226394489420904812913436424670566673865497814794134845593975445159049754412263413091591648198717852616732488985984336004820420375195740504903155425348021320305991188192595876596090059616229913749347686062344303592473566514451803737177611229952685067767771775603583856520775958165347027574362392406390844998702176468494865812785989355764374642995146477600054165830304055290938473435659693810858251759215438999864996919468745741519940877136615020189189023563226311646540707476976231829828621166240865343819398153323320149222118350817018797686256094023733057551610419062135494163377837521519789616427041193666744668194607471676582827828794080361792233035073471198515877691990557091486614634126609290352650359028654875997307056497931093115595642814989120000809665486417249289118634591060879028037118081920206202940259691331718877571074552851132303093959221997238426612846533304893631526077290078775007331739028169538241394886651111122730245042471265360885340003851422791629971479175367268983422248938500482870161255828583894765047035992141191778053765571520555888848306768468549604805079346462025849787143262069046941328652571809952410174603677385158676912840083034894810918921162108002477194174181337684095006789779732093348953716760682392310276492918021292232496763334540212540923832256840395921724994250659133825632278202911990547761682429716750642567562908298692006052201499057001289122536860502159009869142426215940742783341414283403157019997641407328119612670577569243608992378978545351022404811288810975973054121789875884676591374990876415225193339485827319341715170801073874019696082335932570244871874227928639441233826600273050493496752594453626637570467068671120886583258976626183706579432864996793342324687993684644641006039329020786847793231784756527823420355959021890810910427264801229744083185742679428391672933197080355578784968012373513612219444909218356782038370045141195606208701459566192353576930929938975890094721062377726470787232341866388956442890532350964350177576736991523972983978778368603590252744056659427772131451636012951284252643923343027474316955329609177559373842641726456593443274203202902764894151533815583653993053680706597451062162555644014482980604695470767748647363110889820280129712974281592073410461383093663937555304107210058010809525598410867747083037534845869516586962554736797146995796368391405035509105272309695183206947183460987083091456202691422495510393908189878937526403522837341231951079195493024234911675180901529473982276269901106384422818776200249437233223168685707468226127261264760980095194603583654745346388117095134847399669902196174141669833307692815197796900845658949396041970211359215258114376526324516643008039943335311290669374640647018887598781733448333497365559471611621035727704722674636436373539052260260390883866596211831345769454954396725611298597293852650374761512027298729953376965871367635377772916054216319350686947356083791241556247644879929813116200044720520220560837290846127900202736598723676283963456216310801946484393811860059672726513713234138307954258578649730964630739202164961846809283099626227463199319086453098500444017028266965148074487653986835040155151359211113706818855145473746430919229731823800874873708537277917542624974237208507809556193385228024859629652156588483202781025828912921186115458679100009932436082076715255728172455610040835504957865419574549696108883556577791626669046423629470279930687113064703568160090422892367027999067680159067262792675230768586142174288152475493211220074360789385036874236946021832165647512845826422526810475648624884631219953755977540886840146347979184579439788473113429364697900499456208168942408165252362769196151613783667835664242928073576908235563301226306961354344653413170930866795171552168697514556507518780176886802907000741051482621864841646341758621225191429887131754107644329785498251845498057368780829344695885691304847897793031734347105005269499428892595329947037420756603730586066069202728956253005672590031092250149871248434579669436353237249334769439775492501286668286353409364554761989897723903501292572451544020073043135426512264613054162885966198530594123518028355190060591548475635385563489819928664777370628981290753154407288343561874342249723400528305308579217542552122781063282881889268752473896904313267776221936421291356648121991489064114815233954261627568714647403926032983141293064372299791149565255123188705572727087853687012905916584457998475090274686702286086118333482480346148259146531876610966737534022042580392097518201115657017220899675581787581680126268326959663397136779481238731085883389153716813535152122442834863945476085949227766571933920750269191452379104545292084372088574583574552185745774263022768782072137670011022104592528125410405137137934577604245653339387111529379745138343352936594325069466212366995856966220816374278753628187043171340956947419572815868984557015549060533800285373070753417527446372314749765330678796612080118926620392537913574021628867671473320718716061159747931390745758926059788102404821859601482801756851771062009179810569532939537162460104022398053611845577706231390243328297929078829081521825365173030368757203565548991045281135225157464002312738072013607574459415064682605374542540195339487692144497000476392685839675651495952357778908419600135996690996978537828472394392801545437490153450248358296170860043427250565498287202946016073664846129115538319823202603184863991748177004762279552552071984624927855322533134090987346861344410535452199006130629545188935501057067939456907136704693842200893610824496222482845119595525769594092578672535641464212294642423788936414723772628013086695685332718952990258015285887078766104862055045558939346287784172800192382718993430227341752541999722643027422090714532551920482089158076538263555724677515882611215591199481385660161957508491155099602056709060412640623736694947275022932901241980394232198708860424188096795270986406536762586980115879175427797745595393393831137900310761130616659456979580881062078450736772094011526402268692548477592685881487413937496402793921259576589429803906563291823735781968285459020972483015327131225823908398056172055496703347307302923421350071899778197493990212204638277445689348696785428021690959562787745166854071586650573471566970192028077188239938308727106494593455176545727263680765298658036688622944546919825487112126781760398675712721386052503319175179344091913213363815528006780159571663270361681974330421692248191525892805390812799615445112789250590443689359216160991405605751059800987807530603103143045589272417562935545063580758268633104488062829999341771171162591420964994707998955174075008035839786313268929964705690955758830496318825279376354665490478630482963683272310026432246188858169323079287131796967372722616499066217627883111420407884290909533067243128008861170332285425021030020557959567052837466112617301679838709071482004611209048955499702013065259146788492294111754225013592926295910595718935443800968076450102196515781820867500468892583873443251122875339485533052892931253645972792578134390327278108026841850042298073155113346921049588609308205916835019721753690279031176806043876477548072191019992377148570304900843827146308981531422334241033756877482454121233001184201689406436099271690461044058026404441302888347099388461780872862736913187273169444089652802035587622341528925311460319858195578875520775816046923196215268804209979950108077277750487381308570121118730098686233228646552348568115908120801501358118973145743919202407016722684244374793365165246095447356438988817653504073857953059372833392691713819338715366298898095704577021865411880177676871881781288748862159900202274974485396188260561105476049182097712247928756468739879823932121015796135290789644938984892099504046111468183737077458475781152063656542738868332114856519194345056575632589106100368678127014298304655569343189087953379785454153502719196061435427579479525774703660102580526046701682768270829010742406711917043734911281057720145355854489137028097972471234630317325761720080110075481011790586141791564306159308168535509072848197546406747330269459106825479783400076399748605719611242725360799527070862785333277389561928438877172256728384579435840018954910102423802924079210050289133521478995051279182476547154550852144161680932385148240216542968051695426825709393583450448064013330548871904003984155929626284938133170228054635298227584847374338031119940859249217756420197096144626943726407940239538428884520346821001372902494525808984022033209501798626228239423570227677617089738458839396039255078634454825159853606898170290074871608133723772938663766367861009333462406419578791628647900291471657135682068887040523383531349106828413088113828507763245352476124438416689853885101346981127275250038737048016899758767726913470738051154478503719503117847758636753737922906651772259659987500110102227705967658686480715567445038155918516406993122063237140774589865482346940171974386372702357291134861970200640086098187408244486034723833992882569515920324989704990370393797919057764765272770269361656560900587441742784534550636260149626289566505832417412622250864802367691092492163651764017933715724117238090601217295408199207595488099940879460957741024643427401886243222091262791654497205325100558150750455761779069198572654062802560796277262624240397579577091888539116981875949519332000829255151426879246941685088788011408325709948745472261704812100543402368315492784597482283268840725725245770195654780594662966669964497018437475507638859940674715606508415645487946147840581075550970826599780072477863106699740953308007095360497958089303047408156860925838857205322801473284373968004997489249582370739848252767617405604195526391634695068457901413544235741350876005016681706926580343252606780876439396462922347847903660650971571633746878903399825245756320098029988500691146483997465359010320234513088351868523259392156399023861884559158472256599030599751921560825821493065429177689843554154600106144146911262449739522129251761731477367068802446514610423327912803000814215795957242046958106030410803102339449773092642090719499900761865621655149424036100090005190632998041012853478342374673287811670026398922260844116766196854798841393688203847549957557816413040612597007878103561196260800547388528209393009432972408016058206490071145531414668189991502100213529605440972791704466743933590157343234267824360715138292212729597168764470266250968799690010985575115740775156460931156184949537500601188043352286428269703187156356832158935655822468655590089556319310481206183715101088624993209257798589624473225028172393382720113883393831967373918283378874533414666676026555054144618264210786558604559238572067691981166102954237712527888721554566439957635852435622011684005295497893985629217345215347476595238067713712108135311920782844831762655228745879168011053573207280189751996318643831218239016120529532249996219672590994271890226422637113264542147014944434544385886252617378830776377809610010215417982108480636453287761787539982708110332935409882250487584222447960659706392794785639279917214499631929666007634605658988470364738378385190924901354845556485603585765657847614853355061791418373557034205378624085988484078584941580974653546405512616193653003504994622753379935009922358474717838738227348736894793557623764735935107216151064294462380952967460607766376784803291741391421230303266890336023600597322677649752808243805386483592628742869361168430875289736863190515072632331594458671283319823852043682933032023507976138391019059069138422572946447733650610327709557073916416211561424844905938155637057765111096751156838585021596511146012750926753370795888954840120567161158162867691224314809379833382986489882338287193971245074038316066450454151789609281032914435679477919159897891698806463931867043921606729951686232504045476031172446644863939235017211418148935500997346541633444770307524800227555824707959074352710615279495376171326694291797734970499980383455598320904397259708620777025967258726396964810446201921757641926204212477989013326948066860668414045924793207245890368430396784315186247870119340877573118673736918658174483656313034252868394315999655485902768161454880632797964387768707671700997496334471769937858297645814598010409615108372837505899426064607010377745144516715428658767736765581812063267222362326823621662999203969742247687926662712652144581876612361490447633497354463000190361047252063035180389454070879947191448679872532974396486810476573759184208562367267219473199022617544891463863527675541719330195488330362583729855047639188199158749605569201504595007889096341593361591724225071534904592439006573618369309245023823753723747820625615248578319450645085484548679802933867732993525295986887182883868576344594099850479645134080866892532000103717383183761047008582222231805404446520108773800713883837093779376715243651212679562780838272708330748770051655215861685299621349626908876638293342195546185348793006931925379141964824347713551871526836384178319207661236712979677020781182820940165042325544067786299282862806753202099195615689942495602983681881766217464401609866260264689514739603263645426159351330785431020987710768242551723937959249759877501355269231715759045583630713403811295923872933386394123585483199865035896963349140117365182290993906405641286988174274783961172353676232359438007487219734837999110309440070809624372704762880623095893799493080127338103525502287336579565274927818755740802215471754775839903707034362087011146829258659016077016176580303633792309886878384884749014552668077150354671412875960351227322011012952770441144754837032070590284960096124759481334097510967544012662405143379943168226133099555574358054141351099877536062135268192405693639750259471055541010367905593368511270829729274042040261760556751323436403514046781803955628410086710199000147641936279586739790821134980997820329893027551014771854551635395855284113379223061487150221246070723746199749445827398790887282295819448144335783584404089847081968166285582451427202117056450857585771298143934476106436168828229067866811863312509414440421431434588969270156264492030302223128305997878938953431948432392621626550281140859458183070233982214175445209492213205608032011568040642486491048981819711566639908857738392120036054436035090711533310527706371182467603599695664373707040763469534930680725998314796838760063033376557234374269538807846736955427663390964813254846541945118664265356503409517140301367426418478408396789477452137464702905359885519010035807043945083012755382083471145619288320322006118704217838708558630806163216567545435525165216352895693191524878422888850518480218839375427978714127168416254310647335683614678712593306390413731642652255454934617884589427553780416888538108196120879217584227576011873754077502983658003857582614508304941420032389173738095033098926983839423516968361094911407431948599500754205464195138328010479477139852787946292201576058027987295515446154036786979980214292427898191530703986567489332277878239820140888531860145525750770106586818203606576074810668443084713256141291019710261096370514599658118590750231451268444096983225939286488438711039313916426485951181577946730795901954799687694655644977397580106392950427518932811075916401094818507357031729846530258711843518815964736669600344048927749519285712120257806828881651447120157272350677275427551166132258424010246985529260737801429158283549543642828172600022525904598385362170064167288065030307208433506421404710373251465558916534295721579351709861390392604841393719397730549593396815783895410072192525961705205499608574173360794136891534266659301357664951316001197680762321170104141048152579639553182188518904732714517288908055864431756932241644429360272748827681389236839558101135711467802655907345178554300562381860587686645458174457620575486162245560552245953246249630470854958268014148047234800471337845554309869782278027715058176310331440044299315948640527359144313939511797807611741754292356781960312706674213864655020885821445057667320342150418442776398501162956977755946200100681861580951356763138902751622094310220887468006771278396992470963920288975399565559109832143880705395284858518585418219397851448220457536242646634530750980107278152661304876787365053940242422894380749456867667010145461855508614442086490228356046855459404796384459490932711147151998653866226957934087973967589436985881469385022576632680415592402971209626944735051481799535499617930754506054376644326873220879944288766595164361287619309123498701208619708345428082227781209073308496969969493862050232582494157790606915934804206218001650120065068899234697301991933751022343782394660518354348806668946942023942031453956315764136167537173207766667633542492219135792172421527950732549135982712300357476674018415519132066165081089324216143455336576049351838539229009888128520447309561426956066060578621587657471486290133480438016049345071475084243885688428971565659626756220690554162583144253219953440348732001234113064058036538063160281784333015673816409894711986773917335732316826843103309355541306589171458615128187203368785394626472875958351049479715660756886812422476259190609136769917584643670743643179421282907702043268832078321233855044315013372417301103863897197407817442607632948009669685724860448975590893821042839911104355111664328849029737248688495417919479763032344605864902091010932096082862672166645653518432192058368983373757278734430137952367813714385907695661439688091109849658198443803793141510898024380251996751420809780653724109925252876948599750368680338378972727786831326784462043618800104337567573605278660328618200006566443067154128318240225728511957430192512945421827716111362789399617081774028112958329740390618724705044624206132725801199683182996643745239939697145564306380664248019758630031574885691671907608217642134153269668328573604468311027757204757312349215095717742362812002349131751685175166629868470657789426765737614683059326841426929217425311606062074344819072774681268522321249492158698184892072058271808834871404495681222183783965162429547899426483439648832993539707911906372686905161924753764221028698883602985717082962506257296588532678436302212651596231947245437108231771529496460531864155782799725686094211931826253118454510675214639390189887459848262295879239286440324627847603600421785186992164298349927404876227100218291741188070426089329398285451824812884155161557125945557556849421811500282455152366395876528356330433283142916891886390807982833458385627935874590745134553386704215833255328776408739893326787604432252827224631319925812018107613206157349828468002925173918623853650227925557409188809412967215765155597584750635956149578049438626459122376146974141205445064952592782258397504624908604258324656748460101447509965303727885826235349354586343814304463733216065056336315809342353141447833004180594102830009499592717971078132186311051454720342029992674461867188545556393540284392480436288377602665741868181138245257142692344441392783234987285389068146602013327673533287025720378590199644417149475819136007390244096505982986034194438710879618664542140613382392365038996096364571890468849665334789595249249648655954497983195315903629116701319578738433279479117624142092886200746295633058234725862394186717518350413864609083205984946592335376900671832189443811845995446013244699793047071985902296957404148017842815932184293922288644500989997886137084615081350237935124361831324245083091948904781123223046693545507836749917986015787104110664358447595548478406062943849096050392807908661582725367859561496821204233123280453732909909753663143801902327766053718496636658818618673892047607445745333350110769036353074371241965687519265176890117505756975349947458392003808951588876316890995688117878807023787527693645438551529111891797917858290210874712048568372704167739958649808173371991228879384982162610258090825627024904601458419214194901420600027590026112675831764577907236436415740460529863193532713317858207006867586420725627415038160354481508273398644447420345691743048661684154407351164565645988166712858505488623461909695431412691797776033199784541293174382558032062014706617155647457819893300889507940663425623968334310842259576683816382899404014043503236813642405589568446309922984762105104399567886580751390954248415179206736196182398421865529331736347567668728033622420488923708828312089883821242994786792212909058079125235251111089052931474484850695940340047340746138056005172853259413758957922871892223405995605896812566548737594586642241568791847118028769984005148476774438131533318843426647062140212154292141430261691953196213328974217692130552280516163652692446475299573355988308466282226426870787929788763185884859404305321458428712053680832272601035777631738871656537408355959580869302960904529702682837004712133219053681481502827166348390320083589191621998358283970091425502625315774898557706070317332143196341982159210029467149357355650525326270708311975710798073989931902723889196826364997900903945198813094710525556157090427880893933333773955700194828747681480360842723225375242507982113135076415889343982844405876533666914520223547324037091646496009446304343639575066269446407689872905369462574307717521389688408781822515125462529540197803544660302908147505837088032167153676231843944974412124366136924256101154205575224047424128967935749989903040058105308901111476730807895032935765949756000761040246755739548061473399542373530142901379263950901735844379788671370212270505175142791936106727793943197114481297305228812133309095699885335903089566946946124491758738223012161754381793620510441630297989022675471073928639166000882131580393942439603914719126107586754724719036605624096264057424111715493386093152451905259094246449362927575780933764073845995432226021110097074622315540952414152130563759119802227117624090485650360179386264105541384016601309597640307428093660444580216064870209629472314876924956786512956094240082330923685786870244497291400725572020422157553977153075128675285979997420578792676478308392086008312675425215846610146951702037618117257776514999304126672609553764075770133422894727702131495599242861088008148633234453560392463520427138530602704372167644360421411563879541118747721308224206069054984224959637896599027173443298362198579274516827011202629440577877749542681804732861982638079720169507904627544961622301256841941307575363484740583485334765148701936897132774727873319373031665759256212338382522545952074809898550770360914373396309634376921307602533879411617933062059778795678773184193536655136581189462045051214143816858560419205692061476657269149011202843449141353156914830870910692414998596892443793047472761389435660340021319001841598545309219099635307063247291516426133159088238278716346976437199686008787413548051532116600309127931659502623982957302966707161418584461703280408132872366498151746699422815317157293350327092765822356207754243644754181688367911736081095377575296620145118135804387439437427734921417786678107652746894852745038849029026571520152568769951800505902593504353331130141160948278718020163032148010728259040972808178679834453417449779246367157580477610738405560494429462673211375457942863986364288196486480028629132789693417678508379095816275961342108837984246364443246654337751195645446726972041660208941877767651431089448816464826210326573095650566532455370184141283350707011738205213864262657712300994687862312046340051154142047605441477683006791531902622951597539344697348098207630768427185361558092725501591493808069039427310892530794849491239627809428329167435637297128690604749480041877576845136899722397979787170891601138872741754360289458419356796389388873431779173141889357852699633210320620035688220165317598969986647517093142364352158823452044211501763829559768559855397903706676142068453837960441603974248153842167835608313218911813071626504924904155332367378006597599626200934329085034527818348199890611361352144708083516839101926271510377075554780351423717189927810282391496494542391824240564104442047301846355740215665237673658106984713659347354855710219018608040585546201279226626418272419897602007069307894211952581878725711762215026586280905465503663393323095805215426375780836446693186891084317443485777236714906142094990354849887944828701649877722589885721587990663154163060411686499286938367231036130047335487114516960313521853920761917286537965091501086941153117911019866539989875566341476803861112648677331049313802838160299732802724992067619208546778291274316699593751070237849870127755337174933139992928753170402817134950540799171838019572893545995335211600147292838324656205169278112681889749827330675049263391126654347360932875179647533229375143009682315465668091758085007521177899958720722003368270302439697159153190156547041480449397008415637245084123873415887548080584171053644462165968927282058301580656192472019223895567467191946037597782702362656850490623434242188859547296287825830628602527618907379921564703010639646848187475613283509733440423708843555811266851243480518061984623813490221493834561555743658397390784286458686578413696519783575916309675469199059930123588593966527082155981862616930658946609813383087768890463556510735207905546814689179635616085175178450004100011729118339258541960309669867126378267948744322634882218653944719422683270049456110210812535286709950507636067136269888057336452138538464231947744471344347706589916457919129966296905022932752589883898055806169995379774003356112368713685302419702615869671200160680969286541084546500875630215305183486749743642835658201863049464493782581175744223307867887214516798095452371715003811185509035958032972296280197226102986873351272976225350634915177842551583943467125106377484655855052423179581370207612901326493513755759547530364006673608867170436414619085474330661891980949677937907450660774173506891130685854893225966204038865830108440639962148486750482421609538119366636027041994257596048107194163195011338355587560951377429921128139477713094594549586003803257356966186728228537704478336304757274193839031311666050839767047593960070205246526036891374744920609758742775417328508183968046656969979322250717035706142458444554196844124814916783032462478979051867743853887449098477304000784660402332726729850145822669401434173630094776379567463773995452123814077192242149814711671481761302618984394838341084499935302208146546538948220235877424893154488724311275007114164493263252510281398404554187017391652288542382081887491623835736360900880426610405657187063295329140795202502014370055048218256923943775779267301871379244530934073883350675761168399334274498904814591903936812799590344276073451412469629861905828740629997866478656085603051759797530818954610728762133470983404491516299206876508036422852761695730855094549472466820617994290730295820006017956904756689296369034400993376303328163451652957549425501406409154326493024911349785879168223402065468310551276633326462824270175706325841586730232739386787531297112917055754117881590489464705583675771044831820385487822336752396956162535332198420852194143895233475753030687902616263730938428728015913769822710323108194310594084609634032916410488214613021204674817329010460715016387784399098993913157708087358158407206689025793860254987390745043813035570029600952331362169413337217022561412025365298524005272235722181540704789364758136935901264706815930537651856878096398879369220594457212619523654944478618249928406844711588940100291463910830257005060867300029275604065084558925322076702077355359846801274748643005703991245812187649168927572867959906917445201329319247043094130240798835397570888837023341774158500522978124357008318368281181387862222711977811334431576384319253873464500911906034172810214862680943183580332098614125911016770770902711414259757663995364408949379418278402828513364748367375092345021642056434577752426790908012248048703212419738168670240850513323703333593976048471651670553922976022449091453748301316299663518043645587770234442876924430184322288658212783909400523930050527698352430797130294919396748643447413509140014901827193703109879909857274803507270575393624078763003371478599301439870376180902054560122729814814555210974286301310932347045661804343168897316880585439853844858273198045194775072273027120227423498912835805501319948191763894155699762854545432195264336154065980148227752933670503154805622928636500349191823061796974654577621088445312338905193642918047246088548418297652589240496110503849826524353715418501885139424361438923564629681359698890871240702287686946645812311931783389821439067710453067764681400582694722093889900010464415748036249669443853539987839595236357469197328456136060639675799335690378896763942112869003309591968372859120342153627732840775823870457548360961655236991212783376861629709551409891728642806330160472500861466478807579259143411803215052996852888724128230915942931449347684574272429881756793370991272822540459050553146940850840277110568941840259092190771485282429046264482157351386919647554519738426045123436950697215173585154387333267428879525501397250518731061366765837839214267550862154310198776996254998372819532892530088037136241446466269736146475751996307121013854401507038038998074291519565522100312305563168506254684728369929190403908867390860547435937292988909530587968095342274560374800565561172615573999347804957554789206922971179315393990571052172192719595483480397457835670665388535202557895083146431464732292408638806886394744453157773419829472378013125327802296640948893154942820995588022037104766661453307709621912301591489195213634567446480085980766502711725346996135514882191131019486451714687625199084771104217690445134241597959856819770136374800792601047014751468605134659004888058517326024785231657012491072504301931683938454393743878542101359456029409040341415422804918104410397264014585668336071435827375719327140326067321722792012994029611058382212576828591505145686749115211108804265894904907917783176301634433649284970087635263892249878692098926648089024436629332962936404500736673437218714245669311250060183037732511110919124427023118077559363890478536685610194409630798996154082561225002233185255207768703084304351775754117491880487857185728790757686954091977886184609147110150444404200021913802281386936541066594209261705122216082069396878202808275586377921062422461920887590316932626342238628057457522194754768279959552685253304354789274572044155333712716029518520950109981222714482059771426288190198343382175246432538185131704743519127659479451329809553750995869033875325827308473976401799895383646281988517611626966603659519163359554892171828199021624643989644627932586924091399712189443672294291366783168853807662405821932683281501585018667122228365324773385991108264274200696123881943490548373404371242247111211807385556778012057631715768326331423808578808268068258158621107658474682520248709056876685185528033495082301171177851168383219905809964022632989035399991422406271679629693217392110416646393749465260415739113197096233019268225939680108996842409693865466070396096286821467444936472537092710885140464364114958463593729352257497470838665355560281116192251919708480525673555879492721000220715803598037298433335831829130157097498407773272253807885815814813694450615051871738789241702285862546330550166055497130965832613349890755533395778368136942534356526570198508646411361960588857562346764351845332507258905605912283940249713663386479405430102434672421214675736273002444761010569327287511767185655976039226245453127358754111074013983566522729877363193283682664982017683796887746257259621295859077798799142027468795855656573835278667478167350984056579641355435367264454595706843366140164615961979921664035848045799500168480912547312468985999257514774422040368937604720062046166052032686279707507834718421825091059189954566767967033083014005512566091047931425947137868588820897714219893769957477559902777875114649482561153703809607011020333498837315236834044040117737849512719048661932809860790401841173016800697126450543677883575440885855851577527130836548238518776063739908701258670349821839319044651054876684083197438177215568420198899159694239490291360314495793469141804934166665452758283273794641290682433979594675280091272204840785096159963634799437571828323438625837840087683364317519376242412266514803325993923776967363077096855569780448369794716594720335847162804388420053610512212213697770933060918691347834002675607400087841540727974709598650755574792467242828232958398307932660676750211694377868344328524881481591855320215222143136071069888338055962638007525623341167925257625083315892097608113048024025611451382142084870405322123703940991357107618144210168021016295830388231217710612028654867662302636053083580597727100248318011615285525264001848763588452031601548495296736416189890470819499619737601872190772917345951122770585576481896828921138473003157836151399734684338568310661148700821426607293943012290691168866823005892537459481872987681508350738245662442975833629777819702496714543050020398736279724062299280916270628609796803135303306159459462953058768850694156863068291742727710337445465225377112853146727233609402668608649963725372736319299973600951735888792163566418192596637626657678295171217470348572818725022403096053642337365181811504270365535877472359933292444760338524092661652226548048106982361823021054186969130799572827751963494655165470821506524056837337458987477338637942573457269379338914391758208696349232369752105315142366588811401346275704889582048257863373435688057681260495217643839222926178904374953171963328671260309047924742543713160944621364035804612027655553206402917078211991712620927189339014568934857298728498978577774002017181105532273455452052266718090589286504379875517940837375617964200619029279353936074830106460096034404233701241786960030145011690199227354428439893254113339758414175962728253042386517989312211157790871502713018063973651217373614465908375371881699621199751703366459251316520941891992941003117366431937039172010422951379059049401394876491540581016431830277529316622416159341166429457071941510349444228420511942554521984612618366092285938103872912265980051708718849066743228289649023677064564015726612662474772314545272501095008434463186329085676403301468241250076343399719073920549054207901761693985297512096552797225270536313960308000386867614186103938943142905594126790630642876967714304296295506411284038381185845393109285700384086879508391154885112077598693054921024258597317645576720899252018531385302916730447657984549644358046806952759908238600907795199578419722799205508616049248843987589933993772439678897536804312636348972267011241695498102792468662623478171692080323280661075208509709764460567979028955613181323450796720493932221919018947235647191278076394339414060758728262552925049734080725253811021056064360037127819878647592349795334982212614911376739363530547998195765533079278101308390394145800257842198524194859586595184528148023794785881947449056957014336411942503156603549997991809816071164522489209309012798243018461584409406601127239793271436935208489927199923387426322052789280731881622922196011161207765899551076451349584004510657793607907866835688949804485120881754649085025253334381896544816590526811085640321032283022074648634521408072109888522601168729205782922467132123696932883926780269701536726302651100835832548028296359304343617249504546526689739413984244299369166969012161156687738196842361238941148014660298913675702843320389898597231295152546137859818554577169313921297044706735931150571476536620389925480853922344589844328568739672378500755593376600087750002601473333600061191191523221692742200577107223347642009895321718480034095782906360342342677433637910551945787818372963150887804527987840291158998061836538085147283728455002826316758452933127680970778915655712548782898116310602954472513643291944983502958956940583510835627787577706007377635369303132466674868166981217719149118771483080879670699692260656431299013749958919898466371172536690005108691926320777578793352597411210190808859491344783397670125573407541713324931179188559084388419627110351191905926832826076573168789241706393343038956870767228567923161088577016915537615558440038481644955164096016624566889731091889359409851582886144526530269840233891698161419057284317563303721873363946891692292991216124675259483689437533983775781557656134663859596183297811915840390547773718103072238869865494800181491618211901608302170326839316620626894223499383799301796257524919861153082468413969908396291422207148546433570370384294862549552510697617794526266469414039721396071279740313768306954984626538074621727314180619245441070715714850365457244999597055492304105871219841412668226258694270549869350727697827485271977174740371280385509946862787650159794095728230443533040268570049743239311036655604014580520067199469953810284928514266963548749483220349111914578780716521358060163008979192516057176523246905001053402583434717714827067177084955490727543575663190278502613862403652268598944889675946547169811731658420793707476999907033703203759381881064154070257295742982356255051160736210067148774762786087409299198965290550248114985063611714048215195675776079016024012291062949141663199824754816987178762375331316216043059488672362265315598192750606154085532993241386561592441063223150501536277781620166886713316399805161537901273993281015635080057593406089429851355931896851728778558650079395136337138776841875457890869482733759031762519259026438467741209612392450516879278812057194563147417495545652808976618841375044208399033198419536714205348937996649901620678646033858755607212435680669890524855464631315841045256730312474465251597964952732531225142667121380082473815555025372583717145049807248186698561183935155029364084178842625108856765644158589778406799818031114202135439736521386158952397614677541219461881142986220492314593681148076130567646247917524435759943504620226317494546752839565126442870441551716119880588959840329191420864641707132475062325305219511534521100794315909012205542955919789430667778490427921262164729577819552288517467342062419169907847941675780912241863212000216836741610387734825847324482574154925280273849408409409106222914284539833078540618624744964055594421557867579417422846990872787973404646883505948834988104990000378535033871993048962850282544820365427837749989021056901138865803469183558344300993600665948791354222556473597416004722820498201114320542187012828284497653465670207700256572115691445552576970535066511158564198699281807394841650290730178878607744674340413551629535136330017769294143478471569291227801816742844489195458548099887344906873619200966103663794248544271838908831998309725694405606235176163269922326503855749686031070810364746559066987586411336519845566578468399798616371175003448806659021886865771333810255101421609368950291129070894067344110969676645115967245709079759969937605521316369645993913376375468539184014808304505045377964735039703285851942451809139579042502517727554845537126556176255026218743672794550467819503366351739195018550601040623965274374183737003714079272265448389480880111709547465606637532752577438114915878317113843388290223856844659288527457191374010488009988006799230256485253947464526891572977286905692714185812065305226186654485389197553933759249103323574601129385949293987606863730497048478235223122807175363000802061146776363760973918084546610943398867897582304684476610058152387690718170858111137635973852841301987664111886670707152709089927940695007064971434793314287526953654945614982717420248083924998238326479569439732733112218233962296664697839439521229855487187145891094793892989133769212376951405009430980628590020702433896542174959555048578474856671702191633323058199878323619036748475216363276601316305137468664647158459610220879414233385200179945289079055241545348943750048540900940746860869171406946050715909557346684007954351021719345333852680480453069393066685253267190745201870600638737655317153610579294798996401858219469286956884174466505050138917837813596569831807696848236255567664153300505411354077413125997801064215225072324961249212560105443633632859583857754234656994846742006799085163540092858062065866875392563778261623367716584706848102433573359398602761628036410216569224484744528380448375698672680032111206103278112506434399915975400364192029953883101772312670878329993793961519255516491482896036818757807178250349107712394430827630505446550206802304708292102321855424519628722643370941149406483223498111036210112441365835745281352060223135525495945656356960852391798163619402411203419908710886285225823818007720809277385759294751922475972670740742843989129818894018453237798936322782351880828294434789509507839584996667223429342447564786928028793539337315254103358077186098037361174528134443752266604662742935355412706624807403473608469614922375562692012495464138073773536902676307493270495681293351270055710098043608472070706358012821524625427405138757115416731687815360405148407006560294210360321236113309982482912786567926152584514460507617318269181711260960939462920109533703603510827918828650867080682638841785870440812798164820846790833080715670169607665950820538131462539424982722433624503988543665107379546434815533289544520350669679891935219274352366695196221963431362175453974395441912268958876436645105307768316563970009627251229556375802124770580916648611818615861661639960992153813160630363032646205389112361212591691768549032716287315610158222559644929274468011540026437302448985374882837393110021378020493055920469632973972081338060516389340964852994915007912593254299648458476342783390461267255285501549451547234717064319456228474804327387832350515995265560547897049960716742943430635451246537010789515028317882214837937564689024426399070747509135898440766200829794118274886269144451708960037749057221446904256379072541521853923921097034685909003865977979524109539406604386048965495953021237420256744143107049961496165787529056210375679395522725373553973658192184474143067584976699159495768517080984871250637433345499501557722614325127893862375247921517213683893278431243825315331372019765243673770655021815165048732004842955727583515225184271857104370692539104934513753995376061267804907499339666034658435287884051144370673577690714713149134230263993730625404278995172071480299050529564433199579813566843445001628586995758058341904360329743905885155995354113676103817311556954039832676921761469377315843977295446582204933973656599855339407610460529989723217973095117892213231911201489168678115398931431424381529390824629271122878752792616598784206269505372175726094751131956560565152434316415257647660765605912502957809534407720864042710075219414622817182510825905616322273476775949845579376068933649436298906024198322982159510668828904856490109866859321436206047512756163700900507690797622787713206777856215783838156139114550117681864925747105447277013384325241420455903612384180807798966643780880737277183861903958710970640372470265022309003843658611429750702034058193872392375216201278463970702611687552313142123459782232009031215710866102114257568610917810799568705496682675597104485171982784902176817441883332731118003556663789755881086843216340739060993409056640065834318859585976260062976141515511920323723000827007381713602457827286711565607994477028266016741154863697881026307810578241752490527020043005796325708522714540649247226721251183708843903670096168344859176293602615937224819922078056906282713851474703333767929757777692187921239937404416586052836024584837180403608686356326504205369447807751834654549060166490754570032797446454293903992040714129941664016747434941035357690921968160563781194078530908181363013586551722004940067690811429320399762676642085089501019565642669707700312963778992526329242988503792615998593520830932793217463624185912168911200783399146154726137405870800655520115994459552316243033723366285543469146957215589954198085311386036824634827823268125335374105276065033414368966987812085444596699297024210070458214114379683724999202089912520237752613736444855781815726508637943479619535358120345182948476595912691498235696973281777941963189712882490142081229931670638677895373685305893697436959039804754398594031607544494307965017306294536785619711056166374372572033789637302384623644553579031574421532010021226848113446697517214023483785738599100344862114118898243848944807911701597585564874371129247961548795365327784274087741980567582969169802942162507115573905493200482211888130440362534611290848491388009768424157458833189541932995310647525743254645910013221086854482134604012450366008876441002831357468874386109117794633946640975298177329297060715504724483650123961704603226168314679775090284209506533620142940787250796391827579818791095608402168964243197188470602171641326372540926569931225192506650467923081439561642119891816338029718218858974621852865089269835536274601590979041390042618783827719761470319818163392816777287647511431577165391005916549854480870314818909090731355351368213196648451595771654614970357726360165783569818571793303566380613442318933909956544762122900267807495672597704700334479585048297568833457430638731827036199476120542160619750192660331551749696891003600985476992055971393825328844047648719920722261641336128639743831445359984903318752003619067903018012331404437580836443141352407392315927521974725281011952921930955196106156762814456736644487769186772259731748798676083854512176416193845655709522012769183725236340164746540318508377668755459930657720620507158117478052263209783293804510821763831292175810728897310521247616531652142263081477500015424028214713740634837298502264059343829421647161915550345812289457067595131654754673460544133162069588863939662825219001329432439987121058576568175903624811782904438918855292263260107079177095599153695049409694986432100767410848196617818765719798702583014768812199343061518427392269726341483854144461028613974007621499657266011112099961849506554196932264711859136911696587671687457430209273290529481109260735523334860560159847193910188212811904375951425657515817980804098923250466006263520235867229601102271493859646291331933886369947800792143021986411708648440253234822479311371767153204922877070989299294640113464521141405248831306719594397098475470565578034433993477827953518129689561307370267672049100163412838296758774484514372398409939975921647599885539528517876945943234308775867584515936757802977768847821962134660493862960776060607918038896803961673454321290602327097964706041970459023338649053569650246419540854993586623095170987725574643653367034096541240603261280940141313959485230739842245518089534515243257743185128780064687280740278289767483239083809745493698687217103240303242298607815245432412318119594546221482563125112553715192874253665468383501088943694142973725235087736354751332103473385891346053994883132266844996900061236775638538164931008176387319001730297649122571940253000284599400768752214019800558479764591750680469271670194168566283769667618873771808940498763080557819083015016602708480031584069067710527009973817645120965008931810994369732524650163418141605313145067435325410307207726411885938554434196556277288903395661601021876256900148638339949903874310353097194874326305690910333181403956494092061579175191011681450478665169063763103686791904603509943943448696029325366392231335130944466432503389489619860516714451737204374909087498180008368357805911629758620427222476213004429594055039906764086844266718753221933025814254946074785238690883179980014109622063039269950390740884700019707567605371647900027457935924144095988323301308119315678397166563714902999382585742933628362587838597085713634344722342654464384636998426263012807226765418955653917422376502681745690782513462015686616658379618037305960112448679971975234083822999175925490799341905187048444151988785370897354414519819576650279629485860261931311099716985927885141442736563553863598726729959559038994432872155473805886985028303096786112262677918852888210386728514119168835689482557639117817676955319708436146287560050195200558392634999584642223834675805886567802887713257994799898872578988964706563822344024759686284790277307338187914982990161896672442889549787235174808176057055548391038316331015502404342789366069003260257039080830894517411147770120007783021524971380111747399415310270968000617013934342462339115257854788078692964468161702627400490530863348999450251011407478946525536553998638849422885784707403819003626894397881697478493092738185136594138535499405017584436572087248520426733325521792512293827175793939917331128284749258097216760943324435946093612968913455340813830134251125030430936871375055915147513138618742802942186140401969703906339734435608767126361712127611965606488453455098155584997033065917235109558043927600008746389361427914684615287215000595932744291776616321684165852716172075340704481040292644730418094026926919028198238602570075072838511216021681296896465521105412830118512880511659700244385989239252517722059075817931171111602970253204768754029849787188818316290956039963594534497191734749048662177572966110816735902378983776040019797376299481875883462385476042405931808713702146102923016364408761557191474427052464079156361060514939623286286362420819081982609554288104864802821957608789864170810275276497621576936704989648757977282017934867447684446112630548018949865088208650642506183747773510820154991798429521103746347878112716841877117952121008506469202162695657678666902345310096210919835155886722875870804832801907897371718750052359531640532231236676708372630367304295553430996907687184354507055289694393446801782615704937878071852613796189604335376646554847255187810576558880896109306657229553588804090373909793505682383847547779707178814686789653232070546856173447474767164920519137371987597174917359254144702009048485853180015270659909604115443205766080301518375749548572121796583253154179914648671287621910909131324474474609585024057532800469034143731858155693164057468863636454285307214546845784112292947680832061370762838206107725910411663335450476081978772451472651420052195448859704700478486788844440439578786317003490699680953020862073646312046251196053935117878759949060731949283602205027338433991275888849774856322188468953616815971089486244044765224900017091691353754918171176691645135249416852357136824150659890830210334151738278391247540631888714858952827185495292922729208669683819221467117096937626334412769243851551001170120584844038961827271321698511653091165217864592569480296827789868903504432818127419375579738413842476169253538530007058955530682764816600018393451107577513407334640266811501724528462673228985275260820520875353059845463968431820464450657558892419804405985116759027232119237370524541683967798696282266005988260128012698802476180588380844664166803859612361553846593446061184420193602011842548950444473763963907075753077121269646440271042208735237416146337022024430885632396919295750560561751275508785969215052853976904353398647901848239590480147330083375657301400428869735699137255755666983330344047551737904682721121544250343977048584406123093109387790700026884156064642877468282565682601856105825310447923336182009593348835935933012886845667904547943796816737257608580675781908836413982182804406547631377648663965921498930267892493883862109587401483663548834176742149805940934590552084753153435664580244006396303095502255719622224155551471159593633028656624669432080278545543337669006573062740988421103289667890632088006300697884283082877059562493457935555604534199729984115047940672216691938378875912421954748079657504499380623303860419688935797405320609314208667274030396922469406501073436962227005823784099874619155709453435832993628362777017686143568427824191911481704306868789725112129279687346593091301275395768567567398891044979343128037637791392612190199318587779750951811243615422351136647591670364944115922801679459149525900662414536151490439694257930510571677001745059563641839131999729803672954330402343542667803337861952429877157220283858794023282192991105644087533218981534509977538671011206350513079367022573690037894700887051256041082313113600412080311852389269073033139608869437643286834937350080758817523394122636527584908126281962714094724801718746060992740901339436897847067519751085102473064589738879670265957611022733576080470696061802494776071213631531994850699825243449833420475307441679422428857333768806829305676843431536040421156712375505134378634455345236238739572403594881615703122494742139386011500248659527440531693953135615907799277717145557522534692618083314219571855666473413983783698764377656277551966404373442246335862102566978744008490585332842774696173434142182741293711097943684463365612611836498110360312984931320647829602893508068452492369518185561509697266122231580084742448961338035632440734084806671182951152450350281184136233827502357788098864166676674371328927688628989660538548235314541526633857387124126014459530989240741756263460828211205142934775089190618448862508810155154739238156272145674897004555264748766451164652629892148751008035269795213805907744306672003802887137688492253976903532492979201628335898302254136655733855078146317965997827932616458422540913460743882839036743749111630352413181167617101595296826585787449278668383586122102560646999907382763209256700568313773221977847306685053222770871108998367058184472183389287272867725225976723403692667544591560246428769616669883340568491903492486812708990467829711210998098283277891414866610356814830669266469565926054245950484193825036902729191177332583484161029546642817170025233452153775229823423051698505650084154934252598428190826683386579236686893342977466878228988049955863926434858364027020693655624503754402975448828708920815005945954384294446831513267066300878121883204461299768130884152093655345911278445672847391739389399204147778797501515226512298355735887954623800308211104782987577080055531728403425349754844558711668856919661557934943603956789368588747422271305286732021424946105685386108469963399222129930219233361834292713100898102143546630631619052537038113822257231408098922848654063290736486997301328711857569094085111895027320895971372850893444705742225264560596802175133293880819665788520915259497135029895120652368961394161531575381053442295828044577022476986410253428091122724457992578451563174333518673657084267490186498197924991878331458873774266114523495681253407859649120705446223172946112373361002419168260021036294476556563362386970544746976631626456378988538256223576445934266691849319882706916161374774205589205251485320345296592347313916794057245078361794216343023949358601178480954979702094578425331807972987507868975995463620891608432004364271025187388915550132300946166348192596576358113159495787250087165032952819699831459406038653527482063044798690228260201908586138019281369882561032539569163192949150734602455089433558043497928695645312409150177204868027104323038436774721143266887702869505198430442074064569871296989868058694030752686804521471288587018387446007901051397995823657852734876845804354955556363688069837270348342135372884761481704380753235846336636419623303638290128077345662382717261319146853017049172158908681542601774522525255891885737288789547319212994481959237570212018215485681652523563178377220657883604398667756825454685199905524215016931218359492662347239804850330505867551003218613417400562712574220290542456218730547993984653086187066433603880925676110362080671433836610287836524468332294173980561213415925060163871256460479121919417397514550385552166508119466731432259271953594196288516093305782831993033402774219823092199897934345878431026976669259394253286111803486224000105766516074940225115219357908553897870576205008250148552273154956515597250139690544220256497864149213173215757674884569252975001081877867028708992112036142367080568425291409970244807452596593216626548026067587740724653525006477995573542672275995351426197243532521033316126175942473591840928841868147194472571799660995583594352178824804640794047815343429492147781419962357045041723996416689877968200778788974696760855497985317212543180443101299061715645217709068104062956302162707393667945521250285748682912574023670173798952655169535240045843008733358992491125829185915162797848729345085313271875064618306730164761277626736047710837388087680366859035339555527917823314137888572038643920059313155803809599776981167442541992180593293641441459390094563378310023704063493787409975120911101157791952309398638548408566783483119767282690999568499578953449100305130394540416440671166149137868376557023969329371577150289746358246156122786963848785892213267178078215045875488946052048007800098985558701278204031051911251850534299992637295735762483125873565232423759173023236022548544622505933533667460615371263165289849635250707309301701869560159679324869999341942759972086696755589361495143900176040451140441514199224125374762944597777860871863067518521123147623108264192065917077303657484116962725669816555689327387554603992848323684808445690795692165405800481934030119823916252975570378893584345418480745588189540537658427711365655158770249450115066478547499067675278786258595453240635235276552567585053600696323935807744469574296537306709364231204736274045466120965019911777999745934056815787378541149032163409411102968108662867645906177148843831278233816352645118569771521775341452716520145230389297655450061119258280853813497861502144759281937170279398833398150417906703940865209904641990265508347069543742204132236911161285495670331360160005463192850500580680616870471944181484754347352480802761384246127184611475096681253440142202268426473576537674440662804494501194974858177510367160924525270253458708147751044941628004733669904313519921951064580765472759862168270274441932317999018048190074354658342472431883730966538879682991185181772952836556145148677079522834681228032359587348605537735243856352891154210730770719452389895751940433938533293573474395373713435687231191199631606509371587830618072248142145470886116091789822033758854206419748926653026091470742928105494749838834395998609327552183839377607277390422383406000617668458616934846330206663294485887041992452001926186175902914943699962800008475149497762000965870056774131705151549918490679136069703057445940050099911105203095657691982099389408580620128146213383350207260548832925819864068428594016058249808090079386272012408161390307686923169977727013865635048553226517821358852262735390177861064557094175963842815314373377616329464971468876927721961679682133945729213519426726963452075566343688366456060727540998149489411399674587187870914638803113908691990516458292517488897582791470530791850296116505604610813276016665895812542754427706949320534976012183089146077492401454561514612635420413086626779183656763453141431223668931934187375761837495841294547110911896591551506062622893651565923536603714430616702271983931523055820121880205566970921845801239043512029273867872932625670733105983258871127821344544861937070333640370890403180998627989033894667924375710726175241968642613484811937514576358903871156151813595233645663218488338082335167547796457320580483241713265984381892889471379975928132876341438189053751170785586712780692195407686372552315270759241318370528400017833460469613756160468084478283589832993490804576753553554600834433223891882749379077714932085199297186327137216223358992648861873289304035380659315314996119955306851384350725718149462785749242770016723403475388208955694763698940730694612183051318402153915707265858259537162293373051646848711669693558752832643485380487860179401938549081503646621068346080453674985685433548404450405349138458634390944103411551195767204327221184682381735937761050530141264112098339157042411420056355465152530833470514223267281644042164000692047512721063225042208334319498553288151322590274865257191467209323614327544394103144405719636558142402780278793350283095886080556826203846448036384102264983136958508030965132170782039373659685942053341997369721496404376999023655126880870270714227283680008926709861411072828897129041792050489152959519192645662413088471461511616624477783569244860070159468037294576879457077401751450601698890578516418458304876718401477381354524976054120138061021308968685353077314749189264206816177370841749863057603765302411905113858106819190698081526727881039028050218694270706756967249805967151481037641119826230128429624286427284298425811895918693521090776762644491740747072072040629677786438036016557949652170273547083296126478657629391517063339393780518262009924667630244694861242468660137651011429717914797650309228984853269184036365372833018437080272648199105450360470510713686433854682085463403753899585005395949350510890873032233033260587440496627902209273000860157224341887773299841962867279012081362769291568983810257964855165831872448133441523237016442526607600123915260096653929710629575078913691960119967852005201422558854525546641548583902416947445013685783972677381658936282886437064236805953653807003783478551375324299075552362962035893683307170770643013655341148554243703570493654289712203392640484383477990820662544752665738487529092922367514409895008700120995909200719861261645826980812114029759885980463434038350658089285297087754881019122791553081486769917649560434997869295930604914677854515665567964142838495798226322055864306890016707017710142273327027992678873625441247345614429375957761619436225505653773818047377877889081806992087114340989607979695021009759675702499523738458422268333464371253430012366115039068355921893484492390750452938659148584717887833716315130977281774054955517564961244151641504843654925191236454370814971355039280998377274436888181307868187070507222414461253163647310815126360942547509019347270199305657100599630953041988355336985934697724536702494050778660262353789508717458000659377580015317343632982704437411147201683905790800216019212782563359564928543246351179593948587455549082230861803573246241948361569063105170755779083930136195555749497936314355836641036399625604283627946964157300204661822396143494083638001156873062190888872528198697917481027343602156220672317663793155463248855573223244433501118871126057035453228344669318786402734065795517273804252568095724179716410523319227768905930633328803437025930189687064543911697204029417930377197908114648591721678399323644548489115748046118487746123112573241010153060121185465419651036354131597554151482376633763564938282402691270933704689267278473292927559796554758729621787733100827863031606187716998276301196093632283839873417830774200016228322663809286276587296222569297331454492805822454286708222669267213470789817041748644747404617530651226739814557118414640103167883347530339961211804877549265997117991599733581693575279381721280633940917435876872848296269659752247780667659995247914615408543230064158969510836037435805033169318939519389202183741607437698715283347237340211075415894634684154537655904821776856111436932320161235837252579834013532999070191707355970019941226044094579091376273328419153244125363565882191736805735396997636140968691623398750431789953733692081655918778121038878688944715532363087618694724398591470457797454085757325658770424023209767103996049126786264098883126090840188961855074315787728412675860453302487810041283461932701012749962035820527214729345617438935251290238523602574833148925544626796570100244703616825206592217642526114953738938682860304950339535763931340304438513669528296181420288002588140600639663479695679737307349278205593940776721695242304571052683814122505921690556327674837619329605218867784901768804332316248946434996130472795591862750247877037775792713843594468539703439197990452160024412794953036741455237248223626933829672603240011430452615445327531676654335177262767054850715110232988859127758967034892266610477242760258235978384381648930559934621666819982355142395308811230248229564312940436405532323229131051321929704061266432828256497341395238728561063613196089266784685947799073435875718085481885376435934132765176011358723576649937771435426157736874572481662798360878533438401851934001526160145104449702111686091049257072847204511206237743989596927109952726840228538888788952752454077700446985889511776824826919582117679677693703515131849890405528549276577492091446671190170321646603877504350838171081917596017480219044912744857419495864812094790942593970947014125763115642489545271345151538698382695412009040869554951894016500361669406895601636129023201553258160612640691046781315421578773318076649932506451531677850343398099374237939285324757171893022281635080085710661924010340306107968859209931315194067917999163166118101107184673609512337037138432517231978892113505595068363227148114867110065007185354972138729122770478636289688330595182467051062384572098891257630505781545187119861606798384503373556325879505628293928829692067654531067144974254417253960180014633347717162515904206889243197531027710342584284022085553146502035448418749768379650501145001008643405075160786675519963017042058921469969478934418311795603749544275464326599830920068604427340510752165298620736604245664758726605612279394957482189713082450534083157031790371759739615660471188397972222870619713062438733944112700422329858017723471644529375210526385668187820342482602527898127738590750577680625690997271506930179457827116954702300028135922187025058658780290784234878355373840579263184046611749599560354456396343652009295814125548551063337766541311436321132203204280980440384426546962026110526378847493033950988483125966110006886372670975105080151730015180918236886961428304434294464085672927546431522003848658150584387801641340286355852952309757577316181202365058769855047229955739532762842433570439120573763831675374667880921690764078010672922631262053085986712255685129808340125560283419906884980846701739797537851038104380637268479157767560091467453919912702559379298190128434515751909876367116962011794198342595542765288195938899909018646563917456580042246463362754490852546739706132206654686959807723413763649016451806857765556423375793393113106623000953248640778833635110854717431435970601964891632508827251996041702896559753417716009905926161399603301216752006952944003352650631848805352558267241195773730287364611532799882765625287351402905889148553569056541968748893369664266134614905537002202590056980985090389541256902547972554229215732283802632226524430375727188250167182103849314750772397408844663412185241454076365980176706283724002749348484317130651813633695614668798579819627471251284957289758511391489399180135450162606972538426147608418136068155713146352291236304419874255042702536723339440234489865233694562212575435369817808957903399458615507897490763152324218764676196413902765278016229160583728021845285907466389240796059598422547935004148629207381327418823286317370566960190025134172824603718566382179045321815352088700368760001076910300516284875520154516980688292234889519670878465550027754702279986900586087979088817975623119474477734296502233277095578917731976696112651754114379317526716843638138385935722496069636200577553412409821331802447144085054749954247852704472308024575873184167271878137407979341880603544779565580532843606678410532498969099467623990566728284975145162396356292516773191327860635257959541450513259586585060399752438328364358303677203514926241662330361130036712686281128842904130438998901161631326502075235000775124637067758728541737369638633952241892620818907815127046861431587392096259194692748747524577313964022565099625667706922913131617220833016090309665600436214461164660891155141931372823100668237126705087497806247694885091933093679062853250842457901777841943654708913618677707110936673870220380984763711124455972529809173974138373686198683115752344560701942455362293339897712431399826128329316217469580492060460483453716033414045556838790309999978348903401438692909200037169255502930653563869178828619161355401816905589935203592085052253357008241156377447986952445493741067790922180480183469524869838072925204105086959598802033686747039827762728768399620916590667695220236528570698415347913708655237692254285580855658658224287958851517248862647607002126828110698057490990134927017502451383214285814319168743155305526046365846056814742929907606901870614342669603252995167171124379444202474764229592742718082214845535285845884834206584054919745106558021201417964743904494813171822342610929652556895117415293560012005890278747939627294284936773851171019203451082217020218803685091651511798829408330169632139858169773873020957865675865676423684750508111787783000277667889879305069943978706243195981150639197197969203059144470713593376601505457754122562675783443110344102617833888012760934667728145109962804888471985029766164140108613911232942432984325413417048527601678344219455977451227892408192930052775256579882891161651869031402689923154625853719860789008679130265649265187186775159449334653742811510949981661932326979808407298300359542970174940666187096158943758258059790907116903369954325126506227687271240266934174999331714673156068168981858854482932498965007266776207955842829612056818798495469113960639275310058653983108547468033448776780457258686191732560505852422548021518576239928765630297141452735797018407664434966164090296728408947184510690322781426925978079328652539663486059764473089681412684798736662984784992168313415761871603209939262573783949635104993598113481380938920449119782622299439201568595005403615796077884259719219747953829560256980434793518760820460125891448492987589477977488672703486766219276635642391250834415545210862090420929538372780127026532870998118261810735515895989631037488105406318977200057216158665313544334798176022889456357833909011244262321191520721296595083564307715060627069258885903704494626183827637171719723686129218757810616067972115129970273166608533096973330879715165455770831676178759557204403233693736841106638744196469472208327290881714860872367516297512991423747979462828109609928413088253403974188027407173798819059090563134983652675697963017395901614350193669631340945206909640694903242910194496798303516307254864844780750754825343516309020033333729954829593956754526270510074535887697160017942953278012241330008362664839448938311688353697721772465370671612786343320975696013441739455996688759686950738946004837585327564808399204667031481331938941736981564478624627744618506191711821721476963067134683890057047159558740288243363209124129829353255657741471684447304608805968361849954068577942863612012315412064786861712111988890238567644306793802613807207000049250055161384153902519177835220894938824587916646366722297939273367886016292218994239223637506160902445655974762591529610367344788633606375421638122982583721651616008665992260509096897360758849750667048981558463204950946702734663289957290597798939389976136134482789598709097896331434606828991401025293238019652393325129828723738584801734639207297396556783294416693869291939180645608979259274692918550181335556305429518608130826515995198871486378668403653279533737012171840447421537672989582112624140167144770068741029518882364645718293475235126100405820307167238786785945127538065403306591433604924528323213105863781157650727910903445024513461857705176350732506552200136670383013874465568369801287978194779331904884593529274706988608970071205921855006631966023610656713697966380983311273419949320900436171724784880280543859738136139079559297603435074900785066338755417072868570609946718835837523884378666975385198503011735597186483920761908444935187140382027508516107718437571165915813952972102931139335718404073296112292748867813488008934200459354703160805938193538000999718053138634942128238225310976232255263799913564307721136867071643226393610451837329222920332679044031213634036193303348523760884622391886285235805388648290375998807578627215905800950091563403884609311962777775359654684293179128078090958687478410419530289586200717138598132194930720958332428361959360105258553432190278709468768000985140534794642961890730935946575875351465962270262015078428185461953099456953206081319491363177541064935587109684930286101750112086756554797294938044372559659229002747204205563095276620708015094476677382891867762748510255441877857832088659961852764616324871853080127476924961156760884787282509375413338660928223578129848997450659924567108868553738435809762371789141935486723738629348040840568502554507040829609855703752679277664681263661134968701400705649039434329063127678629275804485832924123142144150630951942754222477203011312116659547601682272770115962110128389238895528518215796031087967112964981222191580758871417420991261579841279740808024031767240440607884719095555011150663609029269249197057534726331868313625784597583692918237160918013856498799494304828722818158701609687188890590870555222971004462717679689939229041440975544520040001398167616185176636848899796354780513516891489408837143020227325255027997434328752401107939938600690443647237869338420809151025414173826583972015398480332219240597309721721932076313617112410371946575842999102511672852374181528845105493009535639657055336424000906388565758404663470809248139531419148766547791816174810230031362320086803283541944628543606321492594611786182453359096207813855159226942326359125512967566997834417476878320969775565755438019894316431396295156696427893506352970744799748723129748457466491703017438735181368175631673809867572636946794743623710247640319596173828268928818883155327058900467058113121236489878167935973068604390861046127269050943939670226758146521012052193263626819317124908191053267847762890741581205687894230299941831685738430672356296677161575723752194486449001651343086328293703730216980260086520631677075566423188720397797930469167856418621977471368763037556603231750328287694260227225301234229963599485984070055823414617466609976652524537850514650615336534239761860628872533237113743126294072549347467923964965695858237317416870533374042736165187215248620990679277457325791546979387548461837115280529251048985125785471552608175834917018313249897024804238750770700780447817353356621418365619238071676140988229428668634885376557892010691918185886892270242550685138655192477123642200581911057676948535025785317638657344988298949216380709937902595469287902825876916142371026337836056985564560887868592514846228509691111759953683015865525768184268695037992668252455406426716142356999276996213049234420908356944554375796315988113522175192265950417028266764177640319995450037752084080531541053511636307614636059341513829654610209782963314095921375391353085226873217928411464134281763587337049886834046596715752191068023458934054571611092555218941287457447162507151186306623000960798510108152258963061344864369678350984301082299507587270150544633524067302056968733421573971445518231203390717748749834514936617989695626502197076381064179453854554934838424537924710538544185282991595064597874731498362674467791773103168216785327504058948988385915854312985962407296731972325826451565129169012377687690689404382666377707906855323182532686013853430649720327963348999694500510497434863341551738614776871396548345376143554262542810121982712729032529312823262245668665282440646254418060402833885789753636522983043301949565567949103947753537475128601379302391108427898749337133502913852941245392463440186132070623129111422894080923418364400238285520967254572561246175405731133928842837833886125231829312221364634828659825195270223951499124939593157903615780969696681000961724603735283728168546687323625780851354434324592702583929319559572965814929926816012507816528532600863283520546117585015602319228682102274339211249551708278818308639051228646448301724564700949025570184806648377416024049222213601287555980984015457311408826559904413402841675354895287749398740433898579594111550389165999635246059125015249238440519355680347543385689673120306932566094200576577554112046530058454839278658337669757848451522742024082734514354839888204682895679345484698988997238256763733202463706792159193389727175057289906749470911115546021056038283726714300528981710026763506011802428769861408903178851607271984508219851880154956232064212555112314918201250340548332889534198291112634978995537839307142677029021787270547873988545754196723388490717514709129857716378675223679516859180940636760410052089307685991156075462647823240472746525298464828447515141932059070616095102076981461723663019278211425438979604137017312057362554161324004571088070159989532864041226393592905256495576149954801460518799485507844812039889825543798917694000746925163716910274360450333890996072938387056216994723863036150893948856565928516631149165099582422045829373756947167814717155558855882471101543039230300647851782417947340735359829912994928587680243191467919844943333752982784307029185010668743882278259413914072686282150167775758176726282422540865931644153629199284999740157458473499013086755435797459482649758024348062222322060199026070035362149083736504014552420423241183744330561227853726138536863422400821701726697363849398197625762413282199802743341944513064024273163146439515350483399997822724162674896065294113429358485356098560598047606879588357814707050217654692393067748431984179477503264993505088954384952904494893262562646594660128882336520412105848466443640512388764000972350935718619720454989705630244277609271445734764900488969778962241331596277914994600253381865858892579410521239246661010985629778099680089078778588101455140318140379252243902387799124743964698850577554356467795956091430548364465228355625249544288521457330900563121359482613142845302813134331013694932284261183686282889027832247773026431438542177604502609774246447946547399865559797372151481124616302453740950097820865633835686061118243328656480527808758738042422774518783264146608984019883647908096770008849666640029986098769393856065200642258432579188417595286977487995043159756855502376922596570835630546568221353810942214346780623784023928428433176207194605783472090176321403112487814920060749106633319970489205147557285231105974605106928121799053927538480825809066085458665206543471645273405167850228378493043666828910698631599097923415168576830069849872188404240199058221689508869646411964537937805661934737011528900470300945289842583481197780004023902823152861755212707173503096684910297251178128216309051702896699985325499927119937568380181070323386578815846572812431386285757502010200608871712318129432576483308141631155790225992961723637964761629283946810164034350097033087228110998785642447546072381004595385248142502323566379321789893347915980203113621489713754412152978774800564842619482169695189273297547695153782514899276566374320175826449530399536817527416769034402658619011118960389673814794191953940617386057866386209668224598580023277444380306584688471383296202386788956666540790060012666991950789371417302243054941537774898754064542250196655352494824877785511900913082456010695566820733316428027680470194677950880166650059597305776884457361065570950566236739903028742135426496274720113721766693266700672028508055820274597913935639403037835804773405137577006633764828478675293749661290409428827534503509954491656244662984480302058085390121764427004613073235274349634471796215980757951803440765738036632569915321029557992986276642982263436222031189439758711232831980104690995916329354119685524319092270751038894010750923779932532204746047422581116649241774389056006426356051360113921125199444375293346683881389443510133297415398420499719782426079246231602545351295009390475995574884442331506446689081897296698315450650779214748368544707354014466249545489062822112862983928848103896103954868084579572257769668751271421808191642666653024416131612257104051046633975790532114070516520539623378477667557826434060556885363717629117457203957493207107539755428881255145382267902067222532370687787033223727121264652916684584801541339559425472090451885828135526912733274635803166583187025171722288903532514616872054623946090718028873685901751633288283331257861013226907055013564937719898752910240849531543889164595002930268262282975023722918784902959453736516043700684856711050771474330070341762317353693054152266645186755515585973748841834826953073899419771437530504621324473603805642705022467586009703031395815889405677093985993576824043978932725765085497917620427784476764431804188807026316074857109325014764130687180306253690968306705195468008508813705286538582609918339778969743595353421048181700971109181286518140504988803955554991002816500274888534735076293341831085696847836007213579135876770429624330871399546552700684282317114591970328416580387432001384363819284187138590795600619434617722451302932403184779282976233833478036646748179302589540296559826608588438495461312270270084954628991507108386709137671051573479030225843991105025564786450714484633843818365505963433837020895906468044451179169972329790624710911203794153949700633121274356906507340912505637951799538817318918776860109651945076582847230814750805605835685872865367823050072042179606208357108249162156330856408100952150789018196122986792954481869371224609382543760380357859216628591481311948556952410682307375740797586645945326537847602249079641234915889722168959869694314189914325525466652949897642267448550375906020588593090296773623598921159344912864661807242377403798865596256477980516096935030984334993442954872784838645314736451441266324500313817446862891185807848349133704334536361590700645964841982292745595892863854960790484133341319716740493662430202036004946786949038812885745894504680442122778723597032645337539047797059624316027999968463443227685847764077758794387002872482101498576652488214105674212065188236478933138470225500084527310800824144513232937988115068915599270938200590424179947618902160478776921798545451503007365025458600020162621621084462624502294661280638161428974732590896764967043242049007348942676140608372045220411659839078447882643541771612746412176380692142266584911969499415064525591526364774430999176419033742659016501392630198229238694369646611825357479463320653057975377473051977298652671825326539788986867272732655301969014661866880888018164116873164210725221453210738872051931254094413440331200334438709014189900453013765879719865334488960755687397048733254837697350017465290106111689013753248039672926517232997451351642258450934999263310823437323495701068446720722659958240436837942333747999110921806820536673056902608909484227577451517134892221230498759139078803450225316571038396035371824628627922041848090830894299738903761371031169867826614798986776602136558386376522468177402063693369914759191086892469231631559256702187175289443090497156298123427922359932003077431186703006323535283470484359354980579844277181539121696593878273188621039143817664736401004556296427041186657240347559894366362695745606014293700693339484811980183672709805605762604505489912674393849021678245940259855561214536185375742426674340025989304435203070045155544004927556144647296092349704782664395159984029471062608310738795147289507763092111157119008641438432372794112561035175398460677878098328882358232880784713467032865742414056275624847245336181883329545284301382739477081850321217257011459309791887123939428416579315255795443622112366567004889307234238886747475965717444049249459516463346951798155926132315512994211499131277468519952044619026777898835050663221317929002676732115408299136647652749738705518757685911753152096112468274315679327829804611043946107248063902421421256132059662545205274781216371482637539237778927666360579523371238592902120296153428162455743396695306791861704753348704648771046034571202192742941777748811256130086087085504829142800642607717306588499724445085426107598375373449689552949058494782830140241770121575823997194035539148887967772323942040112667154638254273871794180235413528367085606911825834226599904028175488197131632160296753627849455473682670969013965037245011752587696680234294538654044958816131809264714930633063259388686954954476893825658702000089685415829331790139513775113421131216515380389157131811204312262164363144178158894812115263015916134952995975524304598934311462089582588517829157976449152516350876309153272502765252936012980611355715292834271394934880069689202849083410886251793460601710409096423774392321006722487234339559014259605354126543757741109510708279272497336835950093259126106819336644206144491586062711541692764533921875556477775929153892648686363518113706549845266329296340186617100755810019846777677261062966909126196607027675877706455873787979217347886828793270102007462643349329535334950618462489877194440101013604813734091290899494928287783778527894400466866375806442074255078800599735951953335203899264300273656046627703933090947683641993722698506541135131367848914712796573081891224928241876217751689924936429626721920386172014416628137994565945832356036800568082665981387480431805597781421236962941456202026170182825336872799605716003711646705278743603277459536070097196932785440370709823261254318319285311940480820811173904954843526722485201189272452513799589085364005391224017194067920883386169641014147213493092121834422590790432509448280333941366701219321752383095489710596017198453963491600410764194679054852986729351943501599831812678812153307025131713330625523773226708315249850972128564569071319383613536432546371157155200958711100800257474113383915106413427932177397475503177843564842041686956217224983171056528285647280802210446511883362845062386342148154546726116115620153810413682305958984994998613042491126725006460354153862140744890568092326183236841098117355174242063118355780394201433962093146902619139367315014284460034956873940328678548503116303535357505101915897079981604331291444593824355074876198276745853939064544482478000447660215278312146576360170971129800698395316598870168951845128668563500138947205357980652679545300133575250705859370518039739426476154360814213877906184726163968059070534926472034477833853166054657958951231501140855889395411684910824695303243513582539608126732656720484181214812267995536157443578030046779198753561011058958103972842868657173215085272343194992145549598946927250032739124274144952931308472954701060589452864068174431230073209992884003943183180421746814729887968783865008741530136619378483579299786776493877173340129797228440492552197040159859390208350012455697969025004939548112976873775202775817219934467511227464442629719464576301524227069815316738224477610827678979772712957893315134615017533030403261949781307491500441065196003447716032219880840375688866563279721532158886984787310871115825878595368023762737767113769363343456106592228516954606296605444078922148782488112282440674570269503888856951763996059111169439014030339233467696286900012636867396937193660642590919721219274594688470280167759569293811948534219858187931537074035006258637765913937551876837145099071002257402100962426120625479492162692022248152406148543567494307299511420469986582024425689006552789899291526830883812829908624359870437564698455957081539627490204173175606330776700637463855941658960611736587011972380562882950941803364503249209573179058522506642152747816951115847513589460956337923127250962663651695749669900373121320471311421220558622316750468812400685742141468275324043187866702639073092529735190289791426988487910521165311013168426695222796286810070441244414442775142896992987796844126780455811476826913937518007420537382788796035493058053413736847994075525023405789150497099390580347297416043911788080167050374552831354453327964302165533162913742763291548013951293741395961573786873255303701094952213862902697231968145692104216316034793692381159325018478798606563479571815424444313615039409129388652002078482946415630979781580052553301351774769683834668298972937597151914568845347865693968649535138919346955000362842808955353927243823247909852408645282266196019421162833967055203851387021817852253261756120583905314362408548860867487393916249963493957460940453145489283821428285623609897870551602278750708879812575425233137704565389918849180718998879476161729619439819935728491188721686117537896682671732216680120569142499101153201258044531575205103867206408351922074380144481206314185364130162968710304509796295055435623908273616870001433556207652406837262638416235563812539070614352070673257097765839159314811817726962260505679521545906050515670455816787782558213226656790560858334504667070679198920056485711334919568283348259631651060486783976787810319228189903491823782801565523149562000265319015991803266483238986575799447664893845851275855513525453992556415503335273214089790361953408555225051122868425661839764853245017610492723120430570040309093638238347144491232217227588476388576465712693362075015301704006368216457948794830207310659286575068375449479058800232708952892896953176071782813409111223199935581885401920645112607264443027887281127285829914530754815874567182318510298246657295649604196652648078186574161087357543608804101909733739982014214421741566605593549401939291871290287999930699262811757772513306896692543656273334022630382574644219329505168482465299242085670631160278059591909236538703384316292366659622521722689066996755405716843388729436473348705788566555117347060233225482039037983541604648293857394651951939008760905847752908533643732860870760058457169498767953805238576022919720232046104742513789948283227726215746557540112101994279183660837836730938830250460382246343247315984210747696757719518461283719895560858636647992745888362961292015405332741150538834756035979021147515901790621428597174022811573130633730704373380385589370469769263419860925130803782527864788842964429605834880574594646588998253871668484649440803905751191177597390929884586940597205641967772260228729955412800219809893644066000987502508453200356154381052619732004289298742977303966863127027377226674721583573778327752523645068986035639384235482613406823455362422306109425259435963763722602083042606171078976822665279618034233011907125162690025687593193976313610533057631489150174421995953442413957256754892038510750760190933565413989395855787802366846977576321489270546817301780050506992224381860377474365429708545181657807943765165187420571305258275989789590922764277436629072221404002818879788540747125374700624097608867676761810052798598887113085790919877158190734118236589371295437627842428984164648245497129037729324918768375213471686469003530865910694988096170191424515950238436527198848956886726384190813949352900826243616042376838708565905712411587263207595609369547010522062049024743638209103758237450955337935402870490147712143038924721642612304739243777506241320997750134303174035112561456790571347506389224090283601811039515169224820714969631547557616306988039515718550534590261844588423138555971402229409209523017290163599305031911985667630421783846914455070893153296274127370846368745300631859357106284700810063483488832461617784673429534067271182890708554484910010186371997018167541804293510424397027699945582892543723771786372580748943005960202634737274052438298074297289862045998725934418804059647786639887428399086141258859320808191045092757117471735053152726322970554623920199322941527811170189790000174007664457156501217271945596844989959943488583624810566549697392376263411210598034890600931904819387799562000437920578591797749801256276378953384617368146819761408024067143235835842961362986481220759426610734415326249214898187656159879687273156612676366551195900251564003840415830435067464833362722243256807637004254959302534594164924873169188322814298695267581330616775727759056463501984766909068451215208373048087991942900637752560371818586397797774598377627143233636903319861536077994151529816852682063767415849696689966533781513262397123174960860835729675119837761523692197803705341810692658322182904590061570493080531419547126529246209456250611705766036839879573095705235555599480139368992111741997963283697049652147054067446495738909448174882446010435591803256003497907398774931088607750292801563862475653037647812382278733958637999824283227139337281223875162507191048689714108986646582207754466816310287855860215614963458100132662132612232933046793712301439029002600115317091124940334185981635217562250474588927483159809702736047351950660995483034958935632520333888140180810075241439365968955342566596734834182290092972959580481475705175996630467573357760522236514369725228657257031920512529157855914209225743556923697358740075463982078900507692351120245304461826943568029530014083326642744486670586731563355356310932666542211116583998602198448662839347603679506216983987175569280228674452572584154170479355308090632842228597738989921744579089850902331036811220849703282619695416339602338358999520964183326979609287849022890995386129174823871520738753301628220905054362803470590969917426393092347168179259644283403534382329863379538008504418100440328289935760502653311743167284698738764994036107217339673912886894488698862354263184958757009986202935806007353394387424352036670586654906089019186923098102045788025635854782390879612583848465379298476395412406389981943664035546195921468975620258315937530756795005188564194905668829219217674555460640306718266298957902027169681609856671334755451269795632367070337164609704902533542596510857019365819139496957630100102643518599517638707887329508010493541433184794879840345494707683659583322467935861750008647936010732081695837326872905010055561064320195003371882463984468880124777585071031093691504311472030414569453669649979098040415887804079112549813944815456531564990952888854183484060261062114182324103680060122582859530046794308083104010576098137916617243102810089918963052276710644542213169120206563475515216557456373334059182324535026329080189079364628774798330109869286700281404443776532067133381921293840770334121040275078047561973494989045514821588031708952648619974703669758912333356593138537740338820318921430259243896042512589184243544630856070246375180903708866897753095425821463775093055110052440051960772295130381466441219242717690937996923172856666657931233986575188360098000498299015881921838639853092470689681663341043486137823882128812260318561575246561948524309155149570284461642250578934512621208801413069724761000769150594650653284503812080826069769632659833798966576505157772684072027181277304925058203847120569608728038395429354210346483810221321178583440943565850284048606643425130363206087074406814421933419025569009116914203450943480733000669736171408476515498092528665753051415313953042647286359744920575953368625251717762703161229078438283249128863338446067091247133526969131389170545632413911567454592173894151143972434901613993743290903595378219028296804187781242905683852508382113254913682341305971763286281722831176403841344695299001116078509207298204485944099803319556339152965781723412730023490571333651573887481123491862880598078490104873957773947383418830591851406667904058944059974164589127757695372687662868707331208671316286261658320876529463948339661989457740878594238406354601868204926231284402404205940934499752785743404079873104443821349892055926374971326380324183613544160887533769202210625872053366309656544301196501749041676912649465084485664316559416241913496338479845330352134726335599889671315336534519912285658941712837339353596380809748470799267534240862161100697468719379519483722527312441990631697192044216464009070169429497035664638368791481009847280656352458331511294868027123409523864015570823748062843972983303933448842435917409892119354671277231583704517131959849646282114416043859115483966369695212335096225214226479778250210443082228614606964875501828183401890027288081318784280692704445461897892778622784456029786640806370279809099877620720623242363707661380451415188585944884252072086061220856835141866470331833744480181526776066627483490787581308900129047272776946729722865198393385061079653617682678689133186213311684608040230975787587686523304378673840451156303386526073877769877274780849377707227064225017478802440125535694100894196008762203748952562722921755130571636654695210453114134637062454399554806290149003963347738395078825399138947718260006782357575584743373077362904437617497145824916889667781106430843967488122988868558950749417542355450199874286912852235138736720859663959135658405442527834546249574526185856355265085241686268385696675632658886363341937002551149425537121887524860530760892590517212115415261697244279948767877645603281859296945977251077055639686446338249434949105051295553658656504538658748841054250229425804273724739314376957670089875475386386084245064462520020727737356565053750798300671199764471120640986584838883340005802920393630316430711992547479770901948056351897967688572439244476975038203286864214614830605546081340681551545536073166362246567839722322225785999684779250054638915823702287126457130222977380337440998390097390499255169309977878051510447972346026380821249800884142439917688112188285777471543790333375202512310095704606000320662142860850120717989672318506746951512101647077111037256330412753007688113521181344509196903910004170859505372095962608850557579007096748725513047032888593926443231233580387472644423310800610586687858622099359694077484120457972873688482402913126288452803956519064029944163128711111914208589805648342385305986897084586716425993157690561551945989224136027919299522135702630412654830343751909652359711386301686878553974726259916849393973217549029078576798833723326219534672489131071919428484662257987453297589232398757198418743971290180407265414858170406264956789654989442988972163437779157680590057097519995786940783295202192736473463778167432134751940517318321687996191386811637042147383770492665266411943487532664060059647639934804160108105836154324453413896212549829061661014637700433326046398024345768595226654141323082414933728799465853226826826606030644645180074175296949259566184000588846316558278907132814638855707314563704665877943373732781279813289957282928871877218263591377521774570212048508224741508147502071013392627961276478247069143465584154616589643890241440668989572778290955211723798038145857077405444498455521929882644940891875825566419560878296288320011076785065295690190425086928854193041689875362699620569228568436891808027648235717093815337750097518728060851544462637649224876223254994515888043470918519860907178206681503669162456094472392694814886227341907167803666196620054849862347970493849110164148466531743706256455087898130498785836159429391790743713517845541416742051018964431717093759584129010965019977051624794472362183383379790701578507220818767024991610458966432078811435176949945454677637989274880235046537196603097157168245512573785516317979544897554695345341441144259424548606463550858391095767866557448592511547149091138256265428971980101789171465530959548089880971976046173527842845993206087851020710335756443529037642476992706528586642413361575222202395127201339341794379733330082321745550277602420240846161783494146790464248606616484219259132999601376623259538033660185618982261122711022427417348496218594109170716996078913095963750791239828891912340373807921293978626674430689531884741065512647606862258788351000312750331394032555865012513801182501433918659877846804816695694908371493819457082850570670730163481541874207342583289053298353515223634174468086391475095716406607256408933582609405908117655030669083549298008262841475736347323555763926608309314274395770753281174943527233943494310770297611431335482271448747918412969973050403967871876800357248072922517009102916052611012058049906869364555055584846287242729894498448362391228944242983865670616386243453974188276197268998629446132931927495247155875207121747524462208369114954949012180252022621750981641042358089977489461628068142142192406673154805032595507702123928020394984223946749348325303237774424526490555726934474078919355797235861801531735859576186970034170694398256630198683004374535487025233242467126944960372304179454096890713124514041479345945086408935763892165148801044689730106037401899341197413346363716029191688256603254454616662555883244886956240681155551536973775121974104868395359187263066571063041079979854854012773013772394545669176514411450639482162764433398135874956511241398919041850722377399822143534700840530833631267404439919471797814610685925270366817196708786676244575301551605011342312441840153338606020656928892834376456276899048260622292366982311207192467192831547606126429448128033056476100976747068439516221141907993810448364279318165778974786361717950296049079130637395111228037313368883445490773388872978016582017282247576828684735694962683118646231433992967044075619772698827341842486759672036692472419846417738100897280325598866100432481406488714566304086832260423355244830705444528819046903349850308079311739512150126925520357646442851877907565125303569108139170236104750800304706648226026895649648522746969078801522077398101169355924509377525891844297304343120733303133824869018451390893789208789275325813479745125843979025020279634814387230628248234347650641207671301208372293739740106744523540043848324050065379728306433029631929419522627736369840147390025027252190530005633863239756312330217609536810176565838610246354334416532347049270376642296846160704480304847615918518334058681944098516370900226428076528001985598941280171674975011360630297066077002028253093280813106426636579957338862304464835974088072890172164761658079733158158259156898124433773395687948638995438645679942578840625314363254540162867211358756259608913512593298787291536071346362615107093526042767816347422615310963881650126672907917216210454542043672124665978736900803160418078966115623528039371331568739007665776552974977976061741247523460069691991114058665814875275591299635193252724092719502938245158978796552727254076337489927082243013085620642502337698453472131674899564537654642068335015216009162858822609638213920574761149099886869313013228363620700297298324626033742679729913718440228331391340254589026725986048592031570068575332224835739727379759779439540025670269538187565772054762042446196364849169092636737017132658502634493893521296093036709646344934157425700621708026236764237205858922121794001620048029905643302694642751362650744622250618754886704682626667279894142552879884441203657963350411660764135243282089941776938223504655177656215915488647743634398810494066250270866414609005722978738880465148627001223116579488890053751091185922881243655983627610727014182478415120782999229801467915353577288002791830460159351953909387940511803851493008113455934668782853671634205991126809372357128107199089740759130791928523481607845657843756252756672297007124494726575410677782265231008281479117810765623469278589564981079946612625252334605242746652166627961207639611368414922024825274299208694030773555094393389656098008171942792288187038117314115655138524930714469353167087660564031171058401444435826467545381650805302382290834268290876225874669266869223530995424168013733092945950878075726092793044181184913148965204146837923080036815315210351559019305944963899679631672207633768353599986727722872160797296351517545736519191101075885142300459311492947228065133932246546186959231984054395301799246388400992889720679435033489245783907407021578737485002738762355378649150639160114540144381976078906128445422171096696345167078320754334287616249689167612310218307461955210384709532360297074088495102978830366714800706134625140797510694604659497230867841924464849568052628146059997105377011578608674343625611530478838653043832292412106425157329041664140317298199076695497359243107362520336311483823978142665457620253199631048723367364475612853452776151188319527962870433729716498263753485853798182221616950883526994402710422967151369561098048612920401563703036200853676648934008895396966443699193083105474245608424714965320538737970419419125474503948682620227250079200332576741494404777467102417776215084779098093804945077202183892512265245224379956597100150629149818996863735890739373209294278478305481672342363298472491939836679097467439454879252719334131975770014266844906656816392235680305958706495425407167523692691592263652216520813009094236469189851809603668036443418358504463456221020284941832644462979571849558128012520644136798738414379512353511314777385214771611279659049979723331986918937714364923870515514126019281742321266810035149927729199874329323343602566638323538203844335556132885144496172386722043427519921512645259772775118775287943758506077563337627901917265902619672575780653812399592058026867194823093391219812307233075420675419981114728665881424031945329404801508599563192706945439496681738414089263053731329150356359757697300049827879364776595107626020054321046859748231149903347515532912839268311422875918489403930368084512617799040686230719078338430574323673524576900826512812634758205372839631958657232551991702770122052385050755369807955821205628111850399025553215286420056312516260435551233021637499951475353604030355494040611028550418984778885129277745254250354193178805700666929479521537074042132684654087789665935435515380859535411171376203429491973106161197551833889732745623786212456099222177193086095718146636082943476430982364460431179107405893318116704871688317500665766253776125884240040301829706961398637340909964597061132961973009204987273737643165242966776421686645697752465725795970950869194689661941041735676987099821541929598108664090748721295783740640866819011679175133759891715726050614973651516340367191605959171635754238029947166922909593797585700564969699123739142729804666277832017015184592660435273804642406596082928867960073175177047940306841851681251060307133572507957155778345664252468479368357884182467686690295832734139608319075763975957681946324192945810088743897714362099951799430160527075906800998489932577097511688084586873388524421028666239557548005266124082459157867176415661078657049150065630648400531468217700198180433056231767352018215683326079723964795676346332458911459508227473216103435847800285017049325284022509594347817434098360236594143863018678510389784177542480766547156760712430339181398873859621489724091160361525281829361007140776826724868645692476880809001576172115369118634181142715068001488805011373749613222828286104954926764846888891234749060147553641256069592890935989533664781282616736340808365287894244565581760700575421865468433964582827103502236678050530266399388652450753671497748201220739259550550450797988123885542686468055366921265871776734065867356356751326941410877329679848944883809837318953575957645856282171057227123606637794585142546181459310556941846010247167690846364299379054474177876099319778807044142558335844174714509205842538312900217585005571289707277745834474641073747064386507949840586858123974354687704323266823879814070812449059063361094135459975418137896825487694304491438890193945410065827232780180945380299169275127403429634276677287515941459884644950577824493715641301585384885077448869899615408831585517535005145088289027181875946469392785463496043886329908803349800189678229580084667035043539885222785050265145345600046921043712891559395712766163532297335318601455816885852750149341829855827590376014119768902685219781215812671753008468005369489341391286131006585557879520580969407670193220654406055413242683464237790453125736057531640837012233791196251025836036141442137715663710487468542018449517684357003368672258968699685454962159621462257844544103083347136335735614225758877142631273598516507837430394972460303389516596011175842258713914553052921850316884977959412075027136600153684449223909188096696432994231392865399700760617815936211459957793103511426300064054770480829023667201560660041061006537937567167834963904522307980331965800082855311855689927131189424751503783657355312608491033777996833275529323848885021729916905222771212666676134933817325071079460684264461764432592920863130317952949227454502133983731797037820844279443288107022376961305102938228954516221072485179369068243576750863246060278292490820135236956710040968887602955613882647550209414542997973070992206154743511382283854084095849359453897968723856181240682659056573947077719740304902393293709396666026523910219168020350885586095497463004897837361303953144890286558561061210863396432537895766880394862944351032203787085086351573277645394995009077271986918226261253855668403879495184793335987853018497060066068898342952799827505329841997385317950839547057078841846138661712318357971100819774658369822840407345207776309590736898235615682794552275401074204821781842458656392206265256868395309835675639491118942216817764658618465370772139084330462043517548409302744424367362369339158023808632776001995539969005096481025399098417937785963486582418395413430490736288145534658204706014074002070708475410800315653818267502835003815498366735287341091051576143685204982936813054660287400425577340966330218023251669685038353970248045889552322339992198014789392247625592396325764180806051508052585158727436331445633728123189920040792699121379713768032283892582803799706236243017315919035752317454432173219594392048732469521170858036692687631283693366142799837362229155765844669328533870986023452804134168499843513661060332275099076117026049712437568207432316818011641166730300526486426113121711012801430485591763584493103516302854511323327301341816914323718464592957578841455680362846485711979471339425371766116457522950765224978226085498459074133163563686052262227042400154224619310108638251951263930941005092698713667955037477824418496894556050332090000499100099436599286850625476283428354216796729357100115296707765932237811425509097169302288135318428199353037412475674281652097445363267860975780581911137651123381354390614969328765021689509620084945182216661915474801775846065933245141179174252851608135393173821479760102776349871073336232450150427693111192973495829898905566156766899176003047251715955582852275557655880446213812029186159219778486210523809847476999421846450370151951151603655994377970913741001999490025178064312197325085302101154530761101939195511419689075921138912552760370396695758665177192648189199340350147247674321496196625325064320681017515820880562343214898374785993029541744331418683179066675403842208092957042688096667511704719253053665538759687742689550346225894512489779752856206784054315762248263720509941934097076519634527505045189252309139170172200077739806942847393440589377697204397169437533861219912078614047502298632257523540635244880528510181790776623954973398389836147347742306024426958630273876579276063900484931579832890712157509321058032394072582292109607652617443329267107121249890025225499944403129552198524532117819779766980888722014441222859660798522777330784504153725624392741065384540433712601488891135916076867831365248217081229571386226655626737632588377075242783777794831490861279433050822408409101810740727498004858808425122548571880651180661355962641277125456681852916441106161640760355260354225271375667247967213155993417871650337136616178420834653005909348344811012152996230649776456987327593237488079271763075978388832068694135190896805455698898106124285877619532512499115242991185539947168833914248310236419585365781240043550286137199398771668509322075252164575936266715336226211575979892421598457215292254927912519334120164995471395843738375038144410609110351459238079832986426847947720219626673234524070462599991065059203640721414946892999037002692138342770858944262529933925863518079543177560551626359640937106339476650169785052401217492054914753343284760521669541065731034483206164314614286861376640006849838569520273094025890089817255815223759082110388155678721228195224164964472370821325320138317803253650138797966577345883441624145429708646573035108736688240711249665521105601115239111943327023231131266268472492437358349750565970576034729546977490842431549494679433348899370027488592917256614054625398094167311373702029677308649795305539429110774925241514934785775084151556378472779619004570694425793729658775778041655580538288236659874005865412363498176358885365721412133310563704087591016465934666140636239753522752331925789223108461231168343777846023103481790402240391930175865211472077815770193885799379608154420332515808927623442195318653434914584123435036451682672475960471394588452721267107343030133147607728459438796781226594225457886631032730886653688692317340468010685167825564269018399959718573673946467567939826341639692477530004864317074751825924532461706389701151081607367480363609967084489257311984650937292671547786806883524735587873028907138532017682576307753735193039097355939356248475517157479851327716079120590744558226917636195599772335772701471557204099835403140980123690098552351523383435051767527955784836173881391914030118785576718991033970292708084912532231595148466494819792238044988392909317473013738070355821485696303679605081455822188166064366965787812580764336406439121965716779688482511077640300958915775187983497392265263838346925744326600319121149442590029511578426113563843686324326326870164212770987038243647020155297094206525040359914198959473927645048592564403010263737953308034925349807337028095955096361591494238885115293913908644908479267320561476049016746754636651149141106836940678669781571512841081632410453900017155594386657100382092122235440801816946635623433393309548131521568598213686578710143303489023453180432466642605299251273198023681637419104611956115138465307226308776813271818369862584318539816355012738779369749015444816079806360549212565309874229999581927641838173944064675852729074691508378881633815902134101346123751104135173374932148493309162090010744718308713366819389670079970949756313191270728875973028398340666082286778285385430830644232284414394964808018964046634504564834738631163186071851416451493245168167121703821917254771079499523118987111613269882457126767390197074970034783679286793991099759605130828912046123410000768000429522719835012166062567207337176371558946935474053579293556832973398776515906527265277446912248782707603895431966918816636339984990173502783955628592407617489823853589221440528189650711505991778770138443393231243960804471237672092238541055387692926905240679220390366451877851740015150946652989122958823300398578410771936073800489553056303479061914606773356857037196309545870964806100252834840264300796997348770016832940627807146642793953446743906535227230342208527628625234357447554244546640366661879659848106613800943006576558432122253091307893019869079448674799930391648238792638315247426964208234850574091041398781846170417480121205958517057127164112255066112399343425974561817978514850409442600343288082901369759076126547814760520513810477456110836257559619799329241049115040633092972985556283170079031905869910695452747091464829098925086681231867352965680691833745484552976734682231194700010367324121293752702101047530011286987623670538537741333327599913246772462028327947815920878361189820976270532056997316432358964416218319907326613030038059171736365863540082853672462957590060695056254726708796351867533657466883514117825556045045193574983423222579558004666275322972102579053361833897387596290368664416867233107711582017286439609697875367538132537951540303207396417687522756760068321962842701020706179232700340644844787388241043759124172504736136455845108365236982144044942590838133297359015609892325333939157667842353827652239081485671266379423037223933458245661233946015764393339725858659490564779754219083332525845428193965894868799569273707030009848843551931389192502097612889519648708712922165822689633174752750080290620834399522779050053470819533053923079578941960299009485760760796659060254017539449675723943949481116580361827070141916204565048837361460833890841787229334841484644827058103753071693962410214537265621246588270955498870200474231518524782797297778005223566500379248331441059299319776830344274547529135180692625022670875846074141014808341346945314763655140696833752840868575114997416968600617610185908468820135531480283549648715431286473100828419975642192519278017643930868724368543170987209069591637817787072993475501806741120148818076515731110481019121461669555081523835573078433961767551109608536491424077651903858210313781837784452497254688429068428121502343715752868036630913091928602287340253551009446183448762542793198305228371549226015695899114414908795318422699982686734079859182510846207874392011712847512119709168287020575142289641701041552788606598580539960686984242676592430317778463607277585385608842338134260214686093704980001320784067602998482674548993720525640718507353437112645868082730151642571481749563213354491018889824389966970067410528629217621192088943824669316252653629486037156374689071919293918293597425395132305318313728898303038521429087553316216999704598331802710961838758922568663775691404606753133726130192530472836406689818269406471273167559197438201357025148221659895751286802688555571870084130012602706295896268414643679944769248952009909202312286614642430217724820346972053071157168704468536310192769092683085061167804820904400424901976490713975667528486575248755610992148266035690875177255875729304851923711344586828693649735839970643019703726380753017224721499056083510620569703741153042620040924534185907695439819505543209187741789326432098823509951553030121562521076282554206215016972820775255340876575792578994570251687565460125960382474248664754672974699141386767876342573057134802582630489163502024665295665862733971315522814524375201824138507312803487131677630016100656206174758718450945655390025421386690391233082501668872359687342247930651032029239463693570149458862333460657486813647095693540980504700193678225029530593320448249502940050808604737444937218473979550357283885706290926998308182682484662429516316209504975788243358793369119921828665086502668646293797035317137138486579330997648146880270434979625890344592321415278328515538417800626031935284455026919734604573730424110323746195966299708559226120646435056943024845730624357571765624768037878957777325511248983359442093627254791559018579756050569346224598856060304676103776696000680461802362857337037633840738201026839595328866399219899618135550185457403209850056522447949635884847694026026618896656418756449207026837693088751063413590389234431898407698959996428687283333174517217978085019644235343551552767211834255204021081761473387332005278805444193976242013345037110214339870051071302011563322603306610607650569464148759592355798362742243260111731542324897526075634734183562697405879390490149349311287450571722661156080181903531987533592294136933678308901025743509918288374860460956808686411688444898328465902154103612578219348735722332021654050526583376834746315309197454074894483469754509504793623630301285355057301892310556672674665585178512501516996214098872935611250609999831204816160991726635066098502123543577371377534892769228766988717839142072498558091378487230181261396549400468182557385320496899057397068407897738056716404555074540617208007872385709045111505109068421083205386679475536167928124399455871807272348728876800252528333798821276894291136068985667532878234875440860928674668321140960047980568167885159342552726249633518376602309687491693903382197069397832943769638981987354802528310464394170404775545104344973810344200215381665942760953154956121050275800713992569585152716952678864600507998501021955995100974249071199957319830069860570488384955930717719709944108894311632281402125946600548278123343059576215000002028963193527849626565705499419464848399347503858131012757613752200531265798483256062629559914437210089129455941170249301279792821996031032226542455767026880203560746707837694135177211063536662331918231344920419849837638551491120956170226011776992570694865822566618641139867076805256858255281528984362071669946471155125008822184670860078214817794864796476476315285459309651609619851376850101613089475789856923477034344447548234072305668074088118426819724257248151777144818554606620747441944943780804692510209693184638904746933716926288294729807678874423778020151779045001826965431155347125959766066702391299679290499667321699632688895585765154566725342858746400395750949429945989049514145555905161954935573839910670351138609566269923248813744233385100616465013299650750851740777481851615535299980430733229693388572573533145020171690914625426174138920783394380228622181953671306344939946742513638985411194988248515912632792104428569266700083545617714815075402833560488356526977695009493896331744547850330605045064975873009129676060379384398440973371772979507794016207574181534216739593742572263500796139727540650965139703557831706664403888789345744773944556407081305242013044624862325055468019953495366867818557824919815097298384219707269548538579141478922517245721594565249285555985741479119811863697202613307381674369957783449440710641175004602603343225549908928785453784587629201609096929522537625047005553439871086983967521702971530843784848329197433449775713528646460169589875860753901641351915856293425884587671464947986653291260674510286389547807141384294934481170808547476861737943349114758069466120300177243791929212789760290217832702885551935365524817411796980720922059636551185492506761125472893922779686136669459950259002279479352531496028634003193378405356482620471278888527296626192016993094178628464239026613176702759808738791851960134039619776169906171095577428530531372611453863839022139334385118606829691129499979492960227193841493828718233524832874296790759087815508912699761766659375596077927848388380257769262522810929677145007023331180860365256438844710586327947673208073901458676101647404582226834006371474347476321320437468732470627944771748947036406863784625874414814855177089761697718095804907283744047652484064310682113451596951260478563914218453432360229555949943350122770737799432796134294763732998446334202320439995367501489477843342556518425861544865580130268110936798175810518350367234939450381042743681029506514313398875594919767361695013023878542832374273993158822964212655177321351343393757121275938732990982478370200740279169075022496496127787858075770927209288324988440352567078373797364511651845786488998081037269951935410172741382066713411982028657963449781735447888797034219515222194300074233121155282853153521698508644158436375910022764669107291719037457921180921191698099386906434927349468272482327592840623618814163315070899697504380623495907512291604341292518234941595789671510308229527985710798992758217766074933367737771233546966915806751875857662608546637221597618032217403418832462293587586876538198821341959922703807442038555779709136256560487385562381839863156945908748578802494678349143826634065329911055310765068482756507073936530188899714029806004714766669532845590951175700451682886774599084812026131344276236391754447825419526706920280490807761015988952422149637442227851146847419765560960795839546945863780334002995164310055525742672643403695665869507601507738714025032159096922814513774917693090500614092649042461162587771359791559927458196288385153448844291658359962243731618210699401791774432323353840761991382686377014535340992736125170814472256239035870273455140776554111153288393252351753617765298163335435134995893462993004506047698301315822730191081383043774586636542292330284852732659878635349798673223463555406364905078827174769445668028012895297085078955839677428855290133142403610817729575534384828278380886884660146515950087839930561766347375297055556736761179679395562560562196506272453989337902735889948952607984926897184056422481912311846892791652283537527322075784206975040742907497830388150943804771024609524202498189203400463609009949618950351337530549536849146735855791310682733129729695182662078809749644582002620323209011531330013624387384582535042605915749523374186593248084567468823357808746483693373402387636377674371907349543667213924502088416439847018597406424391163786815227785016211505205958989652702688012309392539631015442894396803955728369064361374525322348892424113334152784893993873753376676487249395434196486266890640625638978850259267516052143162136127957775688250997573319963696308473052162206115305890751567556342269230046517622523187611198219332437215275516818180912774995266052871755665164089904079364953024293541617748357900038860613423613987039309883002376384279945491684948606195364217070809266780017580676266502243518713603476522107453973014766556132084463468483870035811524708755029723571467623231701472328318441818346604747162778833125641020078597269181793371124309886758536511863802039785952217586148559661590550483147415068796359286410819459266608496489905202132753147005904851624239843640499307222586615708671345261252039689712979773133215711970300938519011453549624403607389434426278189225487071576417481180091479939677523901726791309846358848140770274222314494579392256919165349587044394073385185199980331827289273499476964642158617558596147578868982816792421739196814532521879340896254340081401928187895261542961974360869200914782086752655927374300995049713858183396862494056861037858355197697142520921789776546896575656324978385749861558199466757752311851496618009225105776603993331760855753637445890005516044417067660953650241648925367870892353250651976276552599121799982218698173859551120752539950281666003513664162726956718433724819026141224614415910476760708639847228429480420369157823782259579397099768602783465089646313556841681958992381462351905893207233375584448883866487896476805153722509447500339723493488463301277471132362022591944351973328333690113257704655590839650002692539893549879825557950124472454823377159904480541551605509763157079994999638958751639086671902586892968714567103885487187133610839236566618315691446403912148620685903358194761995135851746879155235276682685591295030048022688917722638992126137334381688344004605231106013268989510600010554561101063248075012587934773050091228617327267786559061663573362337643586194636339276458587743253303712559127988032993983414992523466527705950253753752223235322089289015345289593313700961197364087137195206304153946772936730130657597319603296359137772151713615434777075223661999604124881377676987751581142396801030989591367259094435599849536464580130749422812982256628549728011470460869184468567888677351521311311145740476577674160354968103285925667827101648403354397655089580847948835417340287677721685021638895573020834936019931020335343548529526926037371836650645475863631052538665900113813836372010571780277413986362868472374514514371136260131850451865408729125067843596088037764704486075760113781291100728624670584876387162997821125421367112630660412102011875384832798115067550604608631587111536739457682477636458528877160190467446229856948977539696104503403065747678222000447529699562219816389664917819550112198294103974086331137317398080630194029722945085015252287493655722416523178308725985282145675256652205784988566322170779896224392682085137873844443500942029387249706644129591435074294828308411113035772723504729394602892748262810866737238777796417317427353623050382317157941038763431373384898291413302332631954334852747380094842328687166069443563980421210877316735623476870478711333262756176860903278323737182884409638674288495454502429334158842463928164867169667751144111735481553895400995674209398042952780307583560848102721776194847701181238948719572430073258261689884747390673857045418990543865433076103512305293383013794657398415024288327756492213262577385243926898221164950662567481812283851784678579998868959004670570596389166989602149508039802543795274069685733635414711113369880602528864580105168053868875656239427843342303497242327616776593058095651461021104240766403418041907739665469189286191022812843844024687748648305057925142524555575546734120274745042531083397764572186686276380322892690315596049918893750776647642796782837354310802476928827651141328023215112043298014187289832039237754799214774725744628437724184033045686528220097220318890703151036729548373020403727676392898098169743421634320574650776509290107725526572340173561239706291805412781062932360614521252412448519500372134907719857202056441725753690817782589483734169117902247437211006670082221638747971250310378788379729958936019192407776817849796737770248644845551449463640388066805000828947993390032766033029399915489776536145602523918701670804318483673955313606453619577881430437773710442329345147635169761101030312852246408374578999775072259063714718419348790477398048190099853390917741738202190146365437321101224450809006163618636884139555330635388138416763911989931104499397672737250555246490520219792069139474962715834539994366297546929092394997630529144045709968084948338331276751718718731224413165594200550383909369510278853517187983747780695510861995890562792142796420624612605751333921436264243605305403529687351706348816791799111481652744543959768130441319853959399408153326628453217184766172106985844250041678310959701892517054293850047763415649104277488034177014684613662530702115672492794041503200446309148890808681129449747392961171969319812076727956053647949368072152678038996447312952572785709381095893127112340197968688748294972509550168179602522726167231017812383091544292466632390396644134169361533824325901961214229683169463947781836674923284610406770383813805139654340269089225580224006297069508831358215008037017449555790009646442781690640673823497422177146540730765452159976172591091415238476202811702782371145977056926257965240881678900986224811763659181579258813874927609507702420058671634271444972278440420521761385565377817099375131207754661898264555915696968622471736349819939954629657397509351456799858855079294331333256566276653942609701371555039746910420994123656550828359777942997793904202228551306489842485698754115784715519580035101353686175848399075765102718228122635889591088020904588536710915880366434288319212982007140422593037732072829201777928809291052150958945764356394441391454518053754516591317688194973656180758987675682963210042345752815648294079568673189364997297444212960089070838357083263050143157406290474661344388065852174844586430413917240878419973601226473039748411197267071043648389391720890279735349747926714860566373467777847892931399886251606951729540611477530720730055452330058706211857909882739532437821812729158044913297005627962764840782770850417190085766802523879873740624178983481825516893112362240820204417264199513459033948187889329463155630692013810992459444402004556432335278666639797842065817399444137230023962036693359640726275528639408409284067153921258035650340759211482618223161496206368286406981624302055836572108499068218769479841220682866351820252461408051543434786204739783611271034954035693041004884412572526870726293287893890212286402593706615582516860711050030446187133846927432335456669166904521204635261297327023803279354868385627343197742732014565347074099984005957471171616637449768230861528767452700688589054344052413715909287667452733541230294696616579332360408329102292415231965480641165811438287044130008814893666749135162106342014944814260196094266831269849218110542985254338773182611823218929257052318822150720967241505575713299874114615164393003994158819195813235160410865893822680082011796894818072754590153423118277488795899821570946310382090837137571991363904711673198969880161567486504736051699275667398385274398381659644285837495869688297917373638561701177197886710967018824093596020395376865492286252222763480704616506706457746921490263292346138204480115116602366240301651657339463534274755496891954902617820075809159905392533874939998298380652820598625326240140128592381610707877977034553551736932589862654488470819434970130243697460320776839688802557624548141106964451870592767872671331084589018382081832729316902159989526660486517141444829236482036031905893841345464311887580805887732641117399196659492519356161712650496398383901345923017578982699953347825687495972731362035657058805209751336066881334393446821169580979598742691221804429615800463010824229797487942655585312679286126832569353366249133324580391161280270292596795928095134905573894415770046058387359745882786617758961218471250840067001914974847605289486861384848140829906127947628349704429568569783574601177159317168865215281026104573310473481622282254690764162550380147485631037013021774015464440105601062771632663661886799069465638275365763641555343012005680753209998623040286194790455564652320440967467995059612655867802494064599537840900975307031395679604799079943930626425962573339059772942891373204894131409729666979871606234011038282286456589720303125888949826469064686609484349195514793582401151684214251366569257849566262752153631945965587511981061992112839238739325135014629491051022257217941453733139079439594089335278735238609120384007418559820340976123616323170935438116704972814705993133491203566047980407712695652431461697189871273440058725797635488237816500586665615077873001330855795483358267704524018913175199751355821606012226413716417032127103982613897886239380928671265824437393210171195517748980710620689316005213880308004808631874440429043777963933064412487498344492028568217473160582782839662032183177652075869730949950993160149621207489978050508045098294541086080739236149135710909722233108097254394274001240851906556435400390478388975409714221631069442138786972192811677556585461026349229537752826256179962198313301529426632900944605660484008912410129998452029775338993020896319199032372737381753965247871376514705644451247248903695806211237467437030772926605159014152856117550555794415218129107439269563262738427207207757862642226962615003131518996506967646825543241229527232677623976563895878103358376744249468163608827978886419032484668772209911193766116996014646754922573705789066325392420678951320462881590868220997321626519231290242915121420038910746495086340924808100234269505857996828412961311897602027611584265729735681103844372719421934848175534118422436504380182534547775090139193593724546338190970312329146854765329366571051168270491983699999339098022830111314872369673313533065353528091029260622227631103691365936000645188673706529972845795836624815183167125648405966622740761265188585813408837854774566306484845901392436890499595025734904883125786021677141959950098067526977141286502317432102011202456508377533844607411881289036740160934231702021431834442245737782897372557970442102825567021571413842335814745018089714139842091012459618648387107994949520127331028691775919954011960352029717102366939288199719884548270445606059998414766231662331059934695018444590266143848271369275064861197100334994199859526217210068322563417080709739655421378553020869010296835430381240034254055338097872720850099639121612834260507239748386257365534374748220660984499540169926765680166317600988460921116356149239044623019253248776922636418122401720533396632678614161709665155705559754661276085507800926595400196825328455599071591203078657733151518545971121233664880761978039352161029787974071279356740146761175446664697955689167612402421892004806181315164817991527567447572586930218198563122939030796734996733833496188877135772890134591953189532792891414893835398439398032994426016264471342851914662752328664679149323911653349201482075246284613812451461894447167703025256730165210501211359098849319954056365618800915234249851993765033034609494744852615263170047945354617783722974149609385190634771804560644878894851380114872204948580424460877720288385830630645150645179228672930514209011003470495479007477573060315458232575989361193453975487522365622002712702917602023955829280243766223898521659555185987402001664870178328412557583518704610006203221958842374326482312740702282562481735533993561933590443199961260728576894403270998167691187488616716809654642788358387304988306651346550713405927839219676112306440146987780394456591487923829257750237728281049935971762638943395934704131855018895797913054455335228402793810687220468898765529878634914252741664843448158163155550367537665318921825255159032419741335398762864109503323949923595765166356173576060462766145237959233007662753894303307266247034555889958569695989018929013475369450596953756082367235910910904690842926866178391430089079891897054886757392619527631511502006742289694100744851056304111031044242788712083836585969875211877780904260795467585859016779761484796178109935338306216551072250246100343147530696005375572676905477265843635103394547650458386618206172268936739245892050169808622508247380494850338730785201881326271391750834739994753948798240052148951991096824511394071189550304234606704358828631722527524097276400201775631802211940653253045277373099251812929532238217337082929910956632680894777847212274784808144157644253048475186755203511360726964848642061814582093417080578977422296854362626467082676305155648527164320738471243473435189464625268597908694215493323255209238717650939295603040006219412128534017655607398270391162340959742814393976204608803257884271487426952481828617615056327193513933709580359804635788653486232994114898294710002724410043448016902400340775514644752229261008780872117945701308724338547164329450741995110276817174686136485048934061236610122098300254084952175262824207525930513623203349945977156686658544184924007051941885236101310090729655576224965448794544604411701632114130261469405549420707223120310250221760705526067313069477641457786725491196579995007600193430315252395847326679148022491896487174050740423016150867089518234085455001020134205148465169332971633966762769441202484014480654131945983430731208514283076914922405823854032399135509598296708996629976759773605327583257967077037900416669736220718093969080863751507884420165122231158383053016721766735334385648672012640442888240959784421763540408219272252674243382214699875881972995630896074311731814978972763840780661372971176734372311773348787362036230711515205209851417009280673010045155740761305324526489900651434201011774124772000047677476312833178671920353468584288552132990886814564997224858661211130194175371661401053761662654723068785786728204978117538633764672243795173206745807214599841294588654703700709083426176610806658876028698354614928219212800242831311440792102336953561993981601764185951022803894859639433105445628241229610041142759268497381137860646702769187649696354673080024952594893234675837348592076611480672231002272684580780472701942680020071929759898479153171839237859461166781861433115629956803011250812698759142738983799989392474481316414364670601213774369531769261120594208179108865796256776856803239691496989476297580886879107001422881278129211917126073383677958651886932566406036737028246726087198943035895933961126549616732809127480217007549725222569244467351100738759929786810468324898069119982841726619532187351687448619265285548974151971091936102068046018218688688689628679315590018946375659239893676915003145572038617522263508300767626052289152401696945049554680408554136618810624463036906783573287153383629270709519828474514598589701237007714879594528235555169513574178678369939088386726994096227879310777522443928926124464303714670783766170412255561190057484427519227676963408813380125923891134560270706998210205242546232732919136101341208174908418107191347455284054925374862819769178468480376407725536299430420971805999691523104472100166810219134525147893263357461347924149671888107555861597542093367763275621031512956233711441623309347313396101978900572140397919635056782408809819284827468452888614513643796422311575650017841095915099689898985202874512432972220062552613323534675348642839337315514300225061817318637616790901700125147764964137789016968440256459024798868829966611889457221688306831230419841397392829177816268219935984486667445327205207816497453239561977537848863387879035301642522567876583458359829113246981868557725759361162200143784304929626396382511913075790241910145020423688512935242912111849252403213689438442128455659156329081496779645923983888209693511318676537232605396091682651597159488661583384733658590579261209920135668253609633139008484562243592547246914015832503525398154455080149878495329497896794299204395796794856960290032005686447020006093499577873470290165318771814033723084936637363824803695957179742458319000659208876976105666957841724002497890120854017389686398931138871556545701341089669437504041392767684204354330888477186753733142023554547137145717624598484000142169243975641336694597972521896892535040430413326080574333191727173360211634735669210549585554647320014453240652377733552767172106655950834610592050585952647081940354388679998665558220722987991049465503997494237594537835224628811329044746214724307680834824390040031502433413695497151248798673894315662066864023931514332822463701977675254372961673963240904630961409257189104188282219660773042957374191100073554352342072734618221850243376385256364620216262060031165346750281069878943751635993779751627694292889373393493139831246672103270887583800341638785674908870974913577910174779492191391153884722655745026462637140058572305174735284588813131522363355126368884024275651490537731976109803315363384118081738825015897908605046301119129851176893956965953797816220139686538133246589208928134342999233199304641691225803993736959906285783083864461731592911559683255341080058861458469366170867585991248277903087663137642809431832768046234837930276820416235364516710860374049650219062588234634132489143014487759359033442155272152183437414910067369097898889958245986650634376088991848336524767150012099718388834528911541355285960765309527850168131917605517661806687460355857219515541189233922575474979385690516154313717906375889768425207601956252495655072250429679555010991537144827097128049025039645738904174991479311027147894974799560305090454290163672428533938098260230066865921256706110543546524903853982632874581806736833375083434678500146848726128251921485676135904509918505869928000608527561308765967592518693891029608379136830004195563044392160431865637468219131047452654503835994284479120556872631725412504206188179465613429565512652447123956180207361960093807659901044942378834717147993614725214697566169804907475995442578106214864118542663439531615672290602292549434658581740320512516373122352461786548785873834174641615324482144094379829405050627812878612882372625776162638822583457764505779832420164095639784396104933098566349484237424387067740090812287687252719920822380015718943357962611793390692008111097360188965580855817546168942486853461050012466228605509724879734850817488079101655252119093102305334059761697207820416032351406818096284487231776465119951865365737237142007223802880097707316686568677415069042705688771857154939226587389602861612901225682462668157304025974121545235641234851518856289009590944940261945806961766991266912155519861319996373168263336781186980225767856495778271454578727399299600260947283654970729566403502167169425257889275489973116325844496236018157015101113727096322936300605814484954925372735004515019917253652774027044891208153644195405719717767423562641591200824208444740061823531809568013213947115230858966023164240424100774265334371257307967573459410024152678517296638715306382342775634086914664928051791065610937625695790446632323529741022802178001308678682692422617020888463820588012242802959001716796383276393157416410117051332232594716169146896949844394458835412315156487682805638265066916979098501269335990620945060482111286252807624884652455374482101622801951503206440109738243105647817794306153662570038613962507161099635487983466203464004603862826041562001567869680609563260115705318276093711465333253233838837569850871124907236289790497963994798211886925949250367850806959582964901340749261368522657575746794216127162265842389793027709331618108798628409985218536927721886494599209756314674497325311651614471108490086155648720488925754826798298297160176508879465768422783453124733096807366289946715344691721758389733847095931964477071597084442921911955880178051902298532668244014824938890315138958920805605039677630385318806464186735639082908209192212631875525900041122553887539274042355415776296173142417036121281905155184706429775205683515490589859704112735616915004342726612230447574687603397701832128843077015058489159200593600941023317005209782768909966464798080989880817369756315332849521832048733531093440817220267259339829119782208516871771406651593295409205358216353554326145357844533723863413337135275260670318377319796647543926908880645337152259940640121561599371083909677363479440835033210534104582164068728575858832648867490105382050092750706140133096312385890355568055021119413653010215984011633350245867278295227073689933354412196448229578407506260598229220618938200117196418134668189766095802667281720670227770524706752893933062355607424435553266051318459733335968782006448694409682204830348228508118724681960674477013998908551824505997847649101055275567276921581492744802613030933406242811976225188624394366778112754930079199169644700920992357365046814283677948496564956873659473128439084490583288095084689419995383240691538298813077046213258245575639327659517460944194017511513466159817068126080729890392030383448884749178220332277262062671662465558766201891055469798795188800299382646722727189445615645305445595012474053071391230476700301271611377106098354086621592214620099447853462940852086176220049544879458538010618032400033267551819501963916221641965535991333570110171631960480070893349123739303776688461571024215157814009324669859661450421394361232230064636537313940637680748323050112202682899862362473004085856799976236890965890500335315382055253887341880815452737670034112897545327885185496309304509226183237175831995726683646066925407839357861163481060740621115613941172925180215218081304533354564415268332012554635590259796444932020735640965407134696576947149341761873510232675570534696298775902236798662511693055827494024008895497182643748300134666076975313156880987299724210567166932749082586905537379933410730905539559252779412704298023650267393075695706163203019460694629171095827390579346812031102088245759866997070339468230341682656869959589734471694413865511188712182488116118215180273811834330746742350805408953730901359115665274168506302026799006246989840811702567286309535515507073226717381641564754699462508358430758622860423546800925260614802380310765873807084168342132192455134227540574213167035215320575347372035438397648989007812371903168896846979746652416125881697232126615785481199681829984723570115852848897266514803430251283744237592534909652582954364605994257609436296759085287156636563269373284642153238129127241727487669954115155485045297922217933575277062044342479496088313137891443687538283274223811533979148487066498448274760312581864882494222465315727672482765199799955168108986942761070912935792851147076861150919451896904347312984875011092263553487001680039973068605088993767088086959274767220469843045646649241594277659418164896848140731077971759579961030399236011674660154996949415269162634341141718032629783221019113977916430829757895792614092604519816846392527147183690932582153658688423849226823713842089903048613888192803474126522169728506237124987599502300912926782307667864135164622105482773275679340705602503655486640777331738100044756871548228294400923026414032673933292321637031115978629972177896601257904120373444816307089149708450031851560750714467850111434041940245475999848194861588940060271664882740413678403082398908023084558717838000156766993957041886406190351160724203264664420529221313184927893720527449954304056796337378638191362619263754072796086538409494693603739197919259646376764585104971299087962614633693763787782654894284816241858880432724462290617438341510002401181152192891688286155200236877158111557335862508135737390052638802069668679609498979742396666642142431887974298570322253010909542210324077124745825133485314387232960537996546007788904383443581146837853277516479197847848398727481678218237371035577774845728340721569619259642943084082970125940255033134452650746902758643165962015774563603069949486031892503900018950952147050782959688538509932026908165423865262781434861003333580495821967131001556925080122024525782854943074243131412201033961758903544375982089107374914129294053632295008410283042058224365568140601944532708294446656988137608765288844244184867054511777230611125959151585304414024394624681115352935593834434506818240530575923995745482475762120016086053521383707192804806006719454884211874412603099558221472433373957516544831515630110738386444608240217057978312214563342162893779945871258393594915511221860378590153491145717267989017197652624834066996646668459762578981407530835870793822510217715526119312769662128946402839065814355579451395361793030851433294072201341268558339086435452889908827687852186581380257266053994154667194591593950401127934162526449320424009265682703650342329565492813702808795136523609028546867207260294399491070123338305625185706223114383098919703342657905440486075450163565897457973719915142533109848185325227146259623554017333333563131826959115660161120087703018488455757103963132681637313268944619893267469264229184492953937879711404575914351813122393207299134755076674247359926842854799288949445345042414437338846745195277912198294784772452830522080529850404457252099926965289824664688304447529831443069214197051178604752485978282071364850098789270478936700820570493931645921083935929036101938366492412780529314294321359425251775755287671553440212603811391132148825055563812678259789603220725617935258832602550587782376560477558323568400348189397825534457842149590130339389960374330750633950201132376582509583586155874595675593408402053979403021907658578692125320426685286045036911012354885747856563778343083031882630953923502961158100440205206812645862055021810200555948785852860198434984336960774857015764236622876722887634048575323767988033812043443817914957298015123914670305004230460410779225215896119946947221149604668923893900239800425095204941618857528591130368010917916034269918163528048957691339798124903649577573275875534684680447331382495519730399772060712977466532615072039384477151062223308757275220266053346340496493452197486041260843212980449226307044892502569928972640449445331588735811213623855700665156307008883298244537601477155606093773878414482336002247955128181063092169373003265735534463960544393946743045566745953682843748935543464971437273363632727982173302707814257184025789651552990629207283404879597754930955679696648891795941837175104836088187381327824495907638074224052141916180241555153853865257249154189773617633169262863892078590605376385340371732165169282274439133004599256050770842274324568312539082830643736116577193219599778805945129801742033159122705179931858846710959252616359156989135299497229037155397955716736368544962935522487999712907886300869600461860654545373773446407481875351956560320273863648909299993394947141258907969829421031636298073383723327556717570050503294223981682842202473997801005161013070031488245398279414961736912810331003415035767610194134504621839624567458090351087804563651585487460694412369240898582100147739096096277734171324741051531788778719615443279297283174004090926801496436386186782219308874577386569791736341425982986099764889171497580969970663479600635119701674296886919281259636026082582416619518566454154991644392491381169342279086934098724186715399783308306130688963855288061276059928083081453881312100992046000146547135254836897784122159482017286931449379293418523602052194580428758870336447850911412776069031513451076840123032646115575125943466852382110967670954107647961758740923774016650161998035956603799250289528738722148570426732306799135722876541675748973933195686024503358160316974331245920476327504729989472890857758364127284961151806596195498485169547829472309212324033919141730079635229496679993927464791136312535504924164654085155355626519885297233179773403842562018970707918639261598073481099658626503025211656498904003884087031018012290436407439882478673065648018973001615670916368001099284472221079148577521434840877407739253038879448173466567319666128732184857923062707393398610838130429234318846785939100082327771709506361948398905712399838928710713001411601107575925179994498833615121082421596757714640961427685713168062281317583679113094792851843551199120644563334765344648401724095258040722594274551001102615411233439280228570640431307144949799857936856606042301510671302377010684176513845481077582680804132638606190713572120875081940894802114675653179172993257004210664977356927113309680684674071525877647441379947906729825398091752111488369780864220516125070030331808725237641899425125741426483655788899714684217523970991745626955496279996213549196651365479243323469760860389856751684394170181262391382232120389418125079743783569277648336429362374669624767464431545510814075171452556572333295077174107237130810140585601981676181305145175465195476167599416560915125849990830922867764979222526324968610354149936959807622154927580754797337911787850729410574750371325577017454491232184634908362078559105729387864009311341489198720485473452347231760707537224461791531905144551367920895837597973621019493765400277211200466432882682183061129972997986806713318941889476310499766743329119623215220096837509914064985421147400479000561605938068351578689969902675549543081500233041678893089061581584888899476088323035354627636644242927336569887937221999199245913401876967482478264987627017297088523510276841784959861648510052130992001865304714414665758633970186015366113817850769725958082933766491108364617279603375916358835813377848104056632115556758869681339688214562414293028279120550419331534499177312790029676791999737170798636227404341166764963993993718236297885294440633155095588394836527742476267808741060920085238324635857067966793777040008461797476938950259167588616087786489283921330197851854812978707767388823993848764499476072787279683059892128007341538353632297207446346877791498878276563870148693904466716102414784081094221717641156438428742530702723716649414980680205361176510940745714730515057263391666950763389941331934539030947097291107571764600246178173621154948379491868226250909061925784495153178780618240986481275387558725497449094418602021984788255824195444967282658594567973498659610004130194067724406011331809241172814568338103240416492182406538019116052447282543788094521216178370769344571444081608111634727197909440370289000517728549288914035702047955817743910194308628520107268378210495004849702534127242501289828564279028133149564991454519720282198116933465399867134575393784549390456910578874358882372196382126254542418845680790469735815867882876377277632137106250606406614592212850740324822639854874994514439717345528139291966402338131614775016344581682148977490786860866306291595427943235209095455655956154864287444655678185230211624369771017198222064391046855565417171756423397886769672514713334196341244896432422177387073486033143188674045099682967441048298966308479872360906239761328264145171747513861122056620443581807451836227239784701204848319997856486250738513696006488822886558513742462703340011747887703066962635530135064785952753073965014103967482493744066008450662441945785448161838541607625054883632548080923328374543410442615091755306696092643554221704451063205276528270552231711501501455708877191508423242357231521460275113102653518350194365896188911057608669481416437029916096574925205850999989123410076267977836529668840366764765299122577555736081170603227081092157930290028812610996266646722753151427990224140922304372686714303328330884168329504684984845296478882527616500834508929446693631197474654501792031062084545951228626706778154246269237940272790663828317074575661393788661183669405004461910403412248649269103013455348456284621999129782195486368786573830442764058649968283176831133765896999966766777934012377192823413803337560080107016824707897005162468690006349189291744393053646686743183477990399158161603031797674284449349332812997385663537785437631348191693191363951268879436914651020736968964661188271092129280271394896766252660181581832268997432618185761799864828400153467132371706933608918491491224131903451761640645962107346103631859129546057510940827844980232703042913092156329103928820540736799009523265695003035601843442064749820759430392960257421945963675705498921431235202520136497987291035787276574858598025667098998289731608758770584415936382027485170371462563632962280368498690299408020214225167121304715601292866854855959719966812641895646081317937690043525890410193368057214001039671047364321643162220809734928461448098672062087863916954681613271146998102749223282011678644965059338810217839240457554851166998558815911967592952507647272659485502550219097503563817126912092622094111988634803410887253404664359530413590996880652709679524625827867477518918850380521288691702950044934027606384938260513828697099670580207165949561740853938044366596878014050671871217075051365588275307754491992012787076786073680131333907976281220686903280534253846200689201928222907506075973570273599772071483639185282161280081741460117706923917197298922581743769843526183292111810178217107284342428879425253818147526653245971770158882617741841149599683926619553523969667210054480631963524831156426072929014988275168868722438778909058858275613079863901787396673610535589075793494836695140264283976445914169275021640196839083347560533718739634908399952006468338880016748521199729411328958752348674364759508823528377163301379472266857633019188372185678218085307872519959554313431467434678451534850237348250688919903069621123658279444063880371163575850116874456677870894482197076840558236941704342428357333505918736314147013267722869102699319111689234451976449545522951780503151553967041669305023788348569367460128877458594631413440589271676051921825702148851945033567008283575137821314699251600799079804840578750034009858191683065639912986558585650291305617305829257042672408778870254956016754682897772499902468472554077842845912767211716725134106165383165179936517590738581519803134985814160890703748449995257628982572216232587808016956427263589239815809529871919679669558126105939392175890113451861942943376268833973634287563845215441261954633290804927541162578392884881556379052967079570126212584437510925072740023534045437671170489927325251092616833074742029258543743243602433701350254954100767636638581761916161195275713209192339830567041737527071876118867354868113002263358582568397130221399855552873551711320470631509535947922421257241727109761659709807953678803186595657787462455384312517132120504781623479028917808048120183510749105796662082514412447250773065183979921432228679235401331335858055913606222673830121784049596143990732550454955140690949068200187626150476642599634153945052533146017644483122955394066811103626020459672970902318066250089962875087572806361501178296586206179741498234260011695019030012034059717585930440762994164926376318978035704249742159471308206955101118328476815978290174322300440609381791914023947531427216399409972389831161479631447913246996671410417813755570523141466378945518460352417248085152625898756078609882558705259771278939672029583287296437914429177371882923277367890893569819982284954898096576127618904873014461725693821857685351545038549085692932961931724885967494480706905688463668093904598722747580864728407179801976840608146803902876006582285603095179620836812046425421994769266029502516718514213116273278807901105634522296082921139306294238038612631620015879858118668875912212482323075088737147067889218166228484850730479824728623698098186628671995155326179159392531268176956921532274119111499719629264235590334045187559783937529734290264808164017192028659657358755483248165366845970917497499426424035742783300130546165860892512140957936176651623600888595227486492190252094683965155362415039818349600107250020087436986331751707544436624487749949438405808647055507687336793503072057578608318648346035865124364093046734746349712974314498255056356830129100810285259392369536204558402575449941989561997836964304902606695728557266203698326735362071055805006370420888876698791491198292590972947852057975577493889964974804805488311729638002403128025686875327458823785255413521539044435877094708862701771220203820520715932638804698030858046080485896616959945508062190750931047107751591773039225096284307955409263214670824596886221808088617668983035778435789025131811736469923728744572347210835962091379893892085319616746039226174437546035489947525073309359397520914304119155632912165181631740140447185085415708123043604488295178347756304923735671658506046988153152655749226707616523856777745368857271823609997133643849070016162890717185145763882866268951509883024151212378563259149679075198394133321489544747783897611094805693249969483890154781362231647968279232784285329480224755644923486890627075466412699814852751764146074872857642812403175647141254210186442040807226942602546240688079550422832510273452776720181154333060096690803890582969116666183238449325910397836886594773651137942152501622899583106717521832934772067279878081063924016713617599788812377042923184592204594824640402977916323618650064129348801761794230848736052556539723026924731841281258046750666436490226294594699649387269383429759169048622453116163576169831200243984205557353975431011649386635257874797576402344239804623306743246252906858563313399411428327912800423357742191774187691005225523771187733408818439607440053465420611808532156917152181065867978761652900140870515998795227069860197258211561283346360498399185576037796243398252196471899921118322916483709723514100326051563349387456707877822131611015362349937604031664981532949964861592040659534976296879618612252417184187947076812913706594175862125909397124899847283751484028037669486887364839837288823769185004566343096395794520195049679949410789866522147529160245538379825420542715306648965519683809757168590273693470777955660814792305081688223872892330586509592527777364929259230501092014409301012174050804198429344390029156761807978179261884158477331982849662527782084364001746093438999534184026090505473199574420180680418747604456685812387042417350293232863522515933468937638885683492579236597651723067036201395149901733445778497845659010318062159473742985543707219315308257816223323163058268383694157426718266110782465367544831556865533477634689192924727758771476951754899679952257429104323766819163991789408724070147469599236248045628458745044662792508552320229056365639510618202017709392598477649888560866954944464270321426414103479392843284703416316492504410592808642290472473404844758369821422847127583107074545912212602196525397894389899329477621719893377591088970470223380222006238095146240393213974023220257231482221004888782069757269169978057115365626367528466452130786270281235737110561975390958827632614771173709548926051368183278636160171922223809532556552667454347102186415012891503584637338152003595191943437405101085020021074867155396957832578252961898856174882882446728465374097399431134630045982249431229862950053057298491900931144101924463806727543921397031862062904201031110016018267906342405541492628570744835628253862307500478022021496956040763061535660320410313250610164994499515803887683965541910483083618077897287892936922877199857588347660775522612088932739367706324662373325018845856556890925288554097611736514898193766400452501277861091803012275510945055001888452331831762940712458032862778357619146868637709635312979544546478447739303379462808717191403484952660854603826789164862941636925803982852605621531398524316644253401747875102708979327914797332237426078674808961493266702947330833291093636430928745781887819936464020373515111049747430116016940088626097583747956937762161429177937981154007772269643802165590398579643263119947200828988759472572452516777131470720425488092481425474235040303789445480956717371148072072827712580825789573469170200602555833068660865229591269651858317428972151467890985506939300397375415585278762199676994047613337538628553691399315955368749429846393510700037211022580546844087857746631415462026903878238837729571347887430763666360188662718015028641860053783202294162184130780995190116329144302709960139373279412987980914763426351889528960510197027393835417290505271754095935469051762191382934387808339241744146281674866503850953081801167480794800038022188107255589996026928753829033687386766402259484469407802796850030556206007689492119927223334503956244392033343482626424448532404352087027366666969768558875968116579903906224375785176792403128395893983905956390804949990484439273990941758112194714816056496445739127867240128576849692824778181846900009335883467901715056700201307318282827425690759704700196198534206728390541026219984485512698284593487071098466414195662063502541409997855032731832637258387661429239187181950233089406034429792495123303444142984850334399990910878396133408763235431207113572577562237085064872456652072696872943395396762155915592304464736435877350567652291227340956756143172940732496708936546376702022580502030301686816427732709543929539443443090582306993070554757824659192119990526097909117413881800356020159308527878246002875023304857782497743903565663160773881730105666721523373556940529559326145755427715021350090635126332729438476555006590506261409481470457248404174332850573567036890379886346829627955924542277946008629575012237086565437710194791405804364488221477055688417930548755956457537848193240643897327026556467670344086281362552912687026183069170313677651511520405339109170575001479411662128895738656999323833544932887465668513552659150873981122584994799123944363821702498470843377376195638095725016063973583156566942472792814940878127376978458675162042352922763893196493712961053594137851556470045708431795603678480223847724512786038288995851209771919525636416908897400543969229805763272731109653623015338517980552229646997579837507610980840279761881506809615933820974912037907080526512667222832424385833636250552770298345886558040015811016660878921140763366486426179378405042234752908588626430510558424093845560471971125243092921783919326994652434119151016571890735295145543483208854866664874768491955769784570845671279308932162643891553416039192889987382134946319711826587761063437028521469143158842230553328088448441983383882181503146211978564990136399142602482133260895250868988157383224200795753711528753755112484249218481432852427276708142468943436754928979547386793755514339957122725984213001243578164443429329368062785514543893461922305338439946832888900212134585258676988894410212583506124941525782373236772065366178108789228319561597553345694106644561304770152017549901932997112145157294921252879811854040388659993702467079666654455588557278544705463738684587143951580910415735029194469447204538630702597224869855082209960865909042929810316096415478331293840841900759771469529445409661635509082150226404184931276263796112010505732683554795395050858381725092821788674276470682625959560217500744787468120416049071064384508214827592105989837923672253079144210745949689789030269889272542574172529750229200580927563462405590666464880399145183586521993766356686341424103140601371579288696298311041584053592838392671170875198134581078428157201736261940462688851328667971149313382057170796683293638504790337416433947274197537230058517425893321741010484444573338766387853401121361494079467302874007822889094957378305350776914770640953976536034224699098763595475010736125983461073477999471832613777148694642816636879870186336971106793077499458431088026402660374752399898595205302697434376805346830108248649568758434279463566029122794043242792678396779918746524222984680737139042985526447989865004430476264445590610261910568958620925151770728416616402032937617274717149404604257609805636304746461960117695374275567897517331603995125995117285213207568628066125939510027747308627695029407503813073736659790003564650893372088296173706483831045533586731245725006449624277075282412140422553365760799549400363161116547052460220257021400435489604793780534613754125712660059721461026411303825470525563777667414856378537628056097476821569029408707373113161284055518103369479317766089187460222534393792130567717852575425711327182450262681118232972449234982630350703951320312827455855130123608125840658529640750650132252671667382829872095800349655445712518599658220197214255596270200283768967271301077451239885283798078034504064470332006736840459048307089164376812929474388862228042434348457086672652336067744406699915912208189059029527839141605376508658265287130650835509141134215891295617289300818347430489264342026975318345833710569566434752432743467008607000254043218469515575001340659670666922794105390508713814127271535951433094606701319317944948153581775889166528203782501260015274632659158113102386393203313609460542515283241453223019117084853443830936750711646142752232963622842827878895606273747755410478201238294593562543338836333684096484563237739956264873016526435675902759081533917521334664751912987884530487430518226567755046015380942359632959881563017939987199843955620773977208517516682254715035387921852971471359200205279218670209884133314977229084622969323482793541866869288109910888736992549289306218626818855551221084933497932276597764171501681829008950041491265897083230394069171605372427267608432018864571240232160355169612625172281980609172061280535608450042338550183038798985802121236770813427980586966070202921164394673839724195373102029280498734648435680323294672356794244597963732126807068009687155727903958654617837381924536694014196678440837567745062128309895297098738307605245652794060944353442478630963065386754365796123143667472710635509286382489756455202743743516985147783967714570314511129618806652006158874300829656015117814883064615210254055787286405460352274203906883753039640389927755267943627035870836252098178058769808341941275967795907585700746002925250847357486376449087571207251147941913674677375529017960743567121588975969305202986227704831627125779037502882388348756911938270687172510133027565349085322066943390284287203451098024827532393562320354954046975610185135197057246691956152365045283409534279235867096350151434147298047017987352348447374738586165714719522723409570156771021543749434331066879282361606681496896584426227553103336663235681955949212711276118464647043963319213489532069048928443211651001838688553589196285233066346854483111340309926995614776521546723462512427234660720474706090635095568140289503417543043582120089754811512762891659927706872516219224131536795689722240492854957367806515866759312266405221369034379262904043403157519483769712327448828524246851886888310310705681466373412675381443433679959965629164129688177403821436672937170652733505204376164032007266707650212654465065517947488759280642043511101758691129503544341932769031589195986044498324315104469150076427142098848203174949635509267974764407634801744395352222542953700773371625649460353261438610885208896234292424541930113464079558437538533355700624096226014365331708567025912956848379128545492658126804054334651457234194894536834416081591994372010712582711203944351352163797338144482856283724039387947962191018954734563802193968883508987425736407618725451068447737973782793952701982875682995970736709198769301082719008801844436228260796430823616578370901948327506399053680390655595837311174190402649160699133585107907723702876465114197554905950658990388741991956199563787665188724875933249020606115514837074815633331830147892354945505871386862134553711783559554391103432435491985130103280095681693311793934438477502691092567784855410960729941646381657570341382264390233940777187427414689369039886691093199076058978533639264181863328495955735287598416959379848061534669074095011891484900722488229694579492714471446318719467548420245446766475368034934566614941663114287767437815027308741539428684550154013076083970386883786647898082476830619439344992886774981091151135602398486510150202492176000632396723332331037573084174103529289258057952510716398636916064598729382969274391296207669108518786551744354179509043771309391278717999281161164248730960175067859794788071395299597323383128037333521478239873989902388648818861219054877294832781794172204133054306157074286367780059955433334552893597060111655426089975959213544775685530400426281767977411025860428596809953096650074689717592218644401878558162416351844304768407528847014260893272337610495306082864218049332309850918174374959165227343238240682136824442422323113930261100106953985197681284474775451458171724791001229289243895268752056236369146124607843130817910220213290062352466136187928730235549350363014486555226846150311665340637445235541052434214910996457700943925499672736590943626821353668264142927548725695698695439839359247717963224107475965035764855627254878318632435728576856753374108339148415562181545435639987888139039625717368507414514118341205146697297635651576355754924878723960000651787626718908110208211715311604024345429315249641951432151105583586225650094566892432436049600157271911714222608511403356131744434201013421467321490767943214687883861268829948957671504050463879969753734318261013662173939387765898910671306827635972515979937849677585377220822432712424352147049680222811299136029335481470353076748260605473425685234587120924297937515820780571521097457751690001013542613557730394147368375575929891899282603931157970085433915388879958368916438943162997340644940995575053886470348422178444612856677924122622416011636036732479277709200357524161619852801634492884194566878858960803731162932843792639251913976752283799560999321471726806183869700184359486395875075029068575206006501223823480292056541553661444734464227019988358404707641058913443947261266298790486076534660625045228916312309262181459526122539980748188537850500853414593589852003931320520683238870623160742683952049435383765198391096798040683280063871935515363263940405894936788498359334764460634896835244451523875241722569550413539445068303091901543510578410352944310659844316565716328440791859875792278133180576348847964509369030386366881566843245350844531248360384211198506776697495969511971313874393187534490749570280700925883185539874863020817538212484058552816033186944109455943663717562891192353022259357458272735011630116661579671666030307726259021437989450429501129205769957882115265877849216420998422776314584689675254663076159470551223511224010140695370618743013285429922292277781823749274883829387970509928349618144707695473715543852726021234875773249089073755713246167825901581160451744017808816452703197070675002000489071845658696460412284948403443626814107209191432944462461527145350612530734534260039067378225353724608641560273060877547627441975334360086902013959123286602655674496181068413245616303828967552242002656089529509478818669102948646890972301615089796784234242506911298976520616492497286434750486504594955768195041927774506245075388430192683409590365119767090779223689679441579796600891906149092668810052377854641227876042479198167231093451566089737434599255430245684097836518429721202681612729723031682369802474062863338986670957143000967963113793312483782862911824033580927755896140693418386861250328754056897911314446315214980006723757353670095866899167782741528474783238060108450616616525958031911511479589570881488529360727808698363564792822114298765622031672412018667159996794419558391369243618564934033487419944762907296392813473723946092598559363926309911968610139027094804018390342506979981266676159115353474069636442880303385938681618554788318832747196515750420546111385562625461960624112606659961287093955972190522227580326288457391637368036774425018679839289048269303705906198909895898777584945581945907475044335867607574854172771878012748148481608108514393175260943846731311310601565630802315062431263639028345464403262311044286811037104240334904238702058755729362598942426645838917547623644808748931901603484126736961848632679065306697860285184595487826375727498971535702662118669140623882151711751123188809032144878659586530847532848510188452050378694594321100107809963224905301369170012479763569874999529154621814995787207086192861649595169046403591302913283985046060346922190109405802015258468273840192219063015864250801078144495547525530756598649517406876621149855419410780139888942272386708945602798992649375875814214921317982145528988114088316207818345055852344553851818682296396138614440146377692842171752534459123984122734447113788077033317890138338172815042519520056188453574246615277134882389082581041378920819427601314384625591675072763507790671954370358866357815549178922447008267020912660827289366699051128036036552495963902492117874458103523089076665355328892499797381852597723344747956338354074250319113589735725842604337861926876512292357954034819047476977085311692996918304477651633947671936362899364318825945313067715983644149182540551772715789925839846137476735091878985745477263853823894532648919524920897273490677599295611956082024324838531712435639356905043578591345895504612684116811347767216500453009269489610213947657640262839523622478398139282648821997677305400751614883863772840088441468533512030276054532323761886937491130109378810651507261221814262847456072157910835488415413699104324150212549494538227767782820951952139000182502521359581880005648756081027823152867269195827192109457220404303375898352708703232796779462051178854824431275616832310734844859670421336892717599360119940596038630258246736494089855822717274899283768848764669016550190149879145557674711161679290258775525660650229702981728496097385813655013531452922916217300047838496540651792629885960695259391240222586567211077520692626117122711930112229199184946477888889600687025599868782147013238291944142837022479052077930762134976713152014289409649385770464950917358985529886224774666829094538673480999823419276047695582019085471797711471134700596392774405843376930367684903760506797312540542720273053358244477360208014026727136046544072090210533826657321009464143445425751744197355696888275563847629536739812658021802888176324671302589943990339669857671378781241487612060166259625767872233022810625483433632917372598025879651091732540993920951518615046123068912762838401364420314465771471056805720314464395689910960400636363824568861139388341933969590690234217834031217683840473064711826554832365409808644128517366601277774438571699199642435661563375476218496303509233478904985425577976518874718763529423945267417676102985075240540716041307359604875770505689175340621125956357914053032647589658742557889135827807544485425115685555396251706464565354934341463055645322217806371597072427269080682083070996127692701811638820849292135513821880676055590513547399335814466822336514225432160178841822691606996018981179555797138891799562561135847901251264972023268307372570914367554021452428699831086835450098455508350903563326689155426160534174454486141548106740944621168661399237311228031846446647458032745760757366870999759162079443489952397518353277468415147695110538342491640160157066666525863745052276967557593778968727557113460322828060590678794489445639209158790900981759861889974225788043937169753878724665411362458939091989200644871150043357745752916673992660696976287460516736715721422722048955234413942576265882778931323200135607003189211289592400709899257543329219212081397856362078932668933588179348426869336611057325852710991941833041427731073997130125185833082282923673054265493053741424407571988001092415842432320273506865544102934128437158707771730966044600590537587076644750799529627419638221274855647299248885107337837076880489391111963692885415392332955170923237142108322406456622255510084850780664225798781413134644706017382105583030316080986358326467958289322142814911082759152300795321980940464958141559099802921639519966614591043241373071057760581336982152774667569920912590649582753809130180864452852324537744563848185906567459525606615164908819217491627620974493594430919851863894714338821043909746063047783864304728677274660601697791423979685171659722848919306546377759346232938079905630515666038555160252391711166757952970041781212645073482519708840999016135220840076461657934591908060448286649753387673918189551403330134826418770231234571616096502950006383773869482648477257757486588597245866825876221255112045080300938116727512352517087645183371621509221823245700596999531757846187593639494045796577207752442515753796068923780965558710345973094846993968712530343756115490442851682002359952062473997858198248429875718309962806197682639323159537338761421553874664337090048599150654885135105448025197966674159062875268169612082345092942555158452128023898518053893247998694017280843309115348612186502592691492031207113901232688871960790652584897531002521727876807190141914483920601730133428946527809088719287493138751980255614533213298620101076462199432156432894734762990383161194829278997966037065426861693003170785429708849249468169892206625007280408416450899645666111115543829698183665938184296567558976039847427772086394310102531593525865966763956042944522470193711046776550419683363452478452176957910601341595842881462660903084430617918349656415072456550482963938598543764902976942416939231035598376867071232974538130561137790992177781359844658568953075123166142213527872719254368522017244998396712175686182676813519135005451134535883250445902798894950469125740907592857930537994811965904706234991342793853889649594803150324451121659403167554055143840845912960107248575107387456457748145178046052400668447445458467801003949301163533059565192384712480520183512553521081109575976849487676218550459316588408302720302979673136036167582213098251932041788079767774566304835258112890636915206187283929541269590708274776311180928056323551533046676565260479614902980217808230229237916384610787564652031309222111297466520736756591676490799761989487575882720951432254202499889730998992151507272929785366508540676073211553848169190609299166349495344621393291333427579536428949963683656665252219719807556067422586954456368302041471579038258979160751591518123684105091043765376207983354154115466855603689048347189994552519983175428278698017367835502438888077442098553048969507805645643268948283811858030617028507879158331746617748942819427177668710811733303241754273075921517648562900530560399089061221260728521148952785211811329049468144474896108987424131011420031032608189394018140401822702887328558768709445496717380823566459142042531646486578569762039386798187646864902145387167627236628842969557334469811441079599079310069069904588600050589442234332922280069999499369132778501433343536266776456836845958469846187524555666897207139668790605862923447711984190939087224045991749373602181398846816650657525545648292455110530366906663766488607140161251576908297643866676920489759311160573177488630487991337198556026835117602229848744207225842410519464687506069788906078789749514032918680212364095264223426690423292877267562885893553864518359324081700265713729743896740402376678836605005015215629804008398889622874087669865908160995062367092194256767686755611182589499661957307269966493483429779687755194762647588912246424229785880506877108873459817440018831755160702277604880740268106503735089242678033169907328381113743474050576563062807169198158250700075113545455072109089877569497176670767012991995297330927182196581254319737820745847745901535089527547268235414578848605611301863657602423748729340109415878308568982612971782021762841913093466168510378060854719793349699082268492836383950095318790510307620544487177044079421768748866320134468973451484901526328474438173622160143817451276157722017068361458368513287800491820292377921350843853200789959621439952945617513442810657227361409129315249589137317203356292112678217558401763367423241846279698085686605446973041781273307566783352465740853609465559897725945719184941596678636465463791949388871973540441582702345845171749454404673036610913007748297656293319685959982273052630487913013096192234940768670958919241409365907131538769799881269835464782321132595327140524443080188163218079091849218750369003021348201332306759738605318492848876859501988559934319034583213447590843003479830359379524301618865413091327392399302347237252845044005621542461476953162606128166486940861285292181639527105500332120722799724604235951790464824165793421221493301604190092760925689170624950986372424069880308688583484732816960987011830240261380939008121328378099875910534585683253921708896101679137897848599392886205245663954657792492739807669456794613749234609046030436807349183659537540318232715623392630143113104030364996869744335456174539745233342399682952940204608133975079166864768799768749610980982692569039241875073342087141465043665779381447057883238871304855896859534858919845769848545337062708809179885697405032436756651826870703932379183546403099042107396520999694583181672053342744081109737312932687927191585969497538323067268762751289923219350190069283238693525694499328993086556911174731658531784732987091803155934917128601233646865206268436437263171219042604561251460571011363203151417527832044521390346826009537523363906543549446501434644782626937077459568999952055791604051443145079493460330675720457130250131308720822192645755016149724330302556975400774381774064119629981288641639860332837368399898305169380921248124266520806850462843991312209740168160838888486810744325175520728189517403685964802002212976528356945964773431340630215577152722833248422823867392199156436839755148943553298419069038885712485838711720793590063756908261720062801482181909395778144959785996289568525468716533687648170940760469095704693340941984146008937396046152042872572194697637246580012796133181531877387731341870189934982307988886940318125009940353376632870654321936919246349149334088337901154764159560071299042543807027046834473251238939412795216102272681371391707486832613105472487432624817051994712673606327279996275473188010373640621012903744569906066381128808695777560864110471361280098423497178143617862424589260309698004963045437502251635472675533202566682791751027293536706052663441541204680602267618089282634449251425581197777598220315742701646964042575760482650746919855242344647908284444371262490494001008194590262217203814900324310440844999417327034280791131756813408466512748669440331681545749762314397552523029661212565101466455433595190505871420924893223227253443505741932515413387038123372091048871444989655206525670177707148479091535810579953921237064049957300466229623844557528270764143800528840803836842846583815384752546187443314148713512123452712694307337237256031965789385914385162426186784015377309517411605514452557617718381843909321874442136528502168775039485932176580945351242942863697646767986203583454316424472318620613690624768050500825753122083362024725948657375476588180153835803604783918479510323127937774021339040209358512763158445695427443463755803390199115169879668678953993250694713002994552461283887874390893907411381629653117039744303194589773329462982094748922210466325519639606606740695492315035312525080802432362110301682566909902774952696429270568197093442024612427205214688333587015388243970729559624475734750533151646289843759160478124791338885757974026102519780324242304072227717191530229191920562166482467048607238391960037857532501631611859878302321546915523285341612236837975822715608172702414608052312795007267665534143176393161753671632243618409525416341036344052712246870903770525650734277725879829411523914140304317511942089328648169386785361621234052243264488443135580348718263992866525513809388076068412591865793859114867166415725752787389230342289685646178775864213421176103696029905235829466694536860118908019646192349346543058268116486497282821043607521793418025191806951193051351578025734117662152222692082377334358229053948190180335365490660295628101503364505922986707596820659240842768797898288989389421523828974503869511841456098442504607124726115321191794350393344436037928726880037890807199046735480698851181625095877639553961300571482228457054810448245089134844559439788973814361504517972900424254879432326550554645535208792335605553847888802317128331045508449716223952461230586494549882719029099154953331702769090771559029621643635628564245490263195580719450935588799633939326303612472425541016453165662821517241889522615335353975016515493181212255170025453913146737626891463575981479128654740425909112061111654466086961441663268534438061221284348599263154156170516244892578500060081318748187357746938657146418457328587234299224052394044653984838738339279944840832973406051356192376293184858504875022145184443569657110143140638848676498638336704239798259196405146422984848305943714228353613309563113437537995996020510417957885784551708960740056447097341165391763140885637879572487432032920262335440560099652789229583026716481540659984259500374927326196853950972883962849782372381650180428809934674763362782236190784932895682581609818901448550953938681252550596683768043731962028307979763984326345165256102978664988405041544336630758335905658459900883025568995808701638565988638784171453011696069339329672999926748133519964079599953252757191455425294760655528877439551054985680627550820035895299628775238661520781931585171821889199383484525216300268515980278261964701693745763231550689584022998840020021396450914613184379338349618453141896805667952322318283714380100840400769234489984437092146872613083778801137287835023448525758788728815394237511249822024246796652835916738897241146925461785544210779532753886348462882420310834221289257336172037203953843070453132354928896416381625436178518928563627086542662522446540541763606904319427160290794518986074030178805651541269048777752607479314379824584615557150863750673252249201256541491614939446646666294991905691159134668055114043075435681859749076726960836918715872950102255217926104947906011424693844562971694539859410047097489191641275894234342231064182719035454973769767032278645608770995958424085886411895996155662076180219439915160909846064290692269330240002316184801087652005721586493589141819441723547497318145086597474193461366316613932286022416287233524392797685083354878447134633609990935045122568194844433226593411740123727470972692416524199278656171399801458850192990973030080369602331632656103172406799375859232733200480617397148851871356474363717912808706081677487919130598428841203776474457731916920514336145128495979479724541283637460144517781156868848315354727608732747833401876091663891829907286572109532189163733648050196206150958632967370284092762198430909068208444477620172447397918526062833012753636953200988820229125481660971889396855203989424574735951234676916398479922517296536805260055561756219968021350332227243061256199143422867042317484737686693031756765432170722889816074198243898784050675501568611008768827090946655956527429369122738815406547773907960498035288325591884443684026985690556794034154213909639619844262562246632364719635291044548042632718653494837652014939705169291323736754135879265577379566954018924436440613783775876374441763119653635520929903634501957092321414833681017091676839846658461715023725218476380330635053538503273691722832086951223411619376602668503325967167687565738400492911081064989250953301964416082309491923988007415020512165091877413498046383707637555096846102770206724402463894778867171646968281132472709877255098372449982634259390280243556690488542995094433690394592992324714061187805026337166779297066926722447855287348145814407976233455491994261343475855500920015579727633595343039133316582665784442547103609530639346881110100849182242562837604780650403399348403277190954130616908701795416084396535611091153939892726303829407075923660222912938498747392338090263448969938091879626115764970741393863286698070250245645451587122626326740895881852596096816647847239553379417670766080256172996746734153129745560010511382161492800561118653550935272451834516538242404126180920213726603185457838471631841193620352037116704757552374004065304383510440660566377511907901527472841243529177906776227864947656695329375940062032423157721620038439670670248286316254665100799715024559832353083387030140542799355621519477529199896679126911163596927263978788437557083907038738907950887226379480393664056480181190453883240954829345287069528197692866082112740946578313305087654837864725042148642189804176066282762318018862668620156195339481215297026148098062942667277493340693382423828480376579220834742167879475500516887622429375703987461151091463086422949406185492806527650531982969227585635147888390020994414647714294750037770256386717753502984930968809617965244221109720615891849158784126197211518794187388708846164086164255486409554431790771461308817558129985242498517242633591272933791532847234599892373054616936235429559406157316780319862251156487417294715255552540865773626065344953018968762419385191704057941070644533386215205419294538955636977171825914910981747649146589385396922215610334664569315722366471910727765309575676107111211841181825199563808493492051066316279524548572383337399077211748602619660837543592964335958934684706721171117488786820631450184489941622522245588293526087144082585231980120472866916185629657839208203267424921304130165754945772894822270431356223439320795279570005894574582524339901597279532753586349783440190865898779429638793767036899659308164057394877601898294488469828496269284231126545074456525176053290166650721842715867006408988619449572245778269903522701224574888080394030052848557682082693572123561772352863690650829782033117745377686796584754818298640720993660315658192600655191213682390684960925244590590922037345009513134296737395904877566912260076227619511853969752420505506205872812799667260357202909589861576192106924282863673834070473863025366801505173414925245144150468375320047876953517962264982894148305816804757248298137474954919055498925234370049515563302550227327500352419483200981237588141039312198827684942913574947087511865875590782200266379384469423083533320034883485326252967675393271407740951026316890695710259654281453223650175219709749056259992163985599704689881952391171956713279460387637584972579221919954621986393711621169785348601254808668985667501672563286169900699293745039832017937589268586875389239831311209948439886097012429814343051911336840454240766047612337477805141497646358090068264035861898045887816898421925019119313205695314613285965231835073954834801903459759291443210024957215881441096965507933491347535823617807804043719441444707726463234175501051375894155225578296427001112130740440859737902831438470958703153257829956999675990047868505858540471120873595780907937062456610463475745208327929958828237052174086572488553131677166620362315400988954260040441000785925780934307945615283686439929299053157122073101165431539137226842666721636103186789858514589446820122986270619481545557518876352235823120166855927337956755618062618797549273973843863316273713412098011340550324712833012174532871870189956185386992521582252871231890671779162219455858416811692194623883428711403100436882468824994656809996190887991049026698013918996182790074998312967952831401211987237432664210217299545238459388870752346722924336249480222089515133873949380567951350300950954252230250865780108244117560340173127423269843290307414682180905511490340175923965690144726209901990303419310497487620181645398871992468754377764705681943490719890084387412881753602128763154187717395692221871963543067393863361375343753401943265305531731457091371221272407997164224616619877652705516523956346642453999831196542643481202111920866731368264120705782878289685795033989410744051002092566983332185430213871962599311060960277149507742159287635608436887956601013324011976079307452494473151263799719552958715913858614594332498959506510559225702679193308234297971885300990229081791202010098204875780582326663602729878778709475409102355540590873096865673594083133748814895572257145776966302420337839770872445791094793697511744584161645083914557735178275625918169500683642491083264558708327667505209181509908121400870139535349174693885993521597819558617815754713819753069236186001526701174605049065409207419007371213865421027612139292235210149695394476959715295246708805525823636096838287555869808978511801500009391415201489880698477529983815638451584707236362876766014250147519230152952723013192034418869879223220478603460765856102996909652988581547301089830609896412540459728031420416487824235189400536611251147382652817907410112242933225797091266606785283123036944670447108660592905147357473888277279245746164937132355933236523848072299058734885794928420043024166092842563405431702057785901100274921695773254838777450638832271768430117353951792882181994516658615216742222828284185523351178325861420098487951676533253958076533818112200950757121768509091453949905060083011025920215068872676099978902863053281009764354815205406469598195394087168568369752676316312927424737309774573776174824135763043522940759663611992731710829982852341802740460331504001618158910208349461070389404888221558032917474696335880854082423975817597367561232043691816905800615452392668421738177529252172281586580569511951842637138200128631598015243106395435985652952247168624518029235103769276792614425435914614601380020278094150333620184413611648125688187377099088081096701678045666382095019208931044275850087447944567524689734751533386988638729990650886320029509239639491696801684257075138112515010192394492014814148368810838186461777315911613323837480888236959246238985675106162106507750593207782216253602703890662035529438803480587976578867044416802807981109201650063823308232167882126649904917102819436699561523536615338596165590117323016875413113813060446258849679672977818134455891508750132689751645902241991329344404299940056341733240688748307717395663335970704394298658198560919962211137537625005438968958417228281833951852648353003916906930934134083449036388231690507644767549839077143403624077681968029280323037294297205174067097577681961206047236011960768657784297360881945601073021048045483126979178142242162719307261526281532588668296692532748987421162964842269763424481536613829670531774065641109444893291107249270305200550892456417862262382627010361687748935238773244165807699343942826526708281722363902524367284487854611499073380441416674411403475612020330554940291640328728280045408474686983824627302565387703527235233764869486956436007991710277580697407508526408462820362802120091192452588149591427039172361091570407219467255629032425922508557954438442404440383010807860271294643256382010690094476890701850549661978998311717574854501995314584759914523500196272753360758248769318966746937456530293584138999727397943434095817579744236892151696805177954098355357091653642198900553177895165734776098348762791466008856713813196107306502485157239292176329523732624135256446206549223070643234807891602314311270803646790085228408116707652190095654334440538377967507098623829561601860977593276400613808009025055597158084309810380107427328132113001556890487466265654093565013012440801000502674733572664425133395552869379717622757121968532677590983338765948117594194304531710881446571364223650555855461410640964394164082615967086998999697590609758136124887102689263630475677162606105537163521082598972009745626106715082953461502170264958184476290506797689162584013256139272584414116677790975809085326716493790319794732376093878022550844830926941741796596663949006115967643814586208489784790266458910548967356709573563690978303264012633201961907898359254779127445177427480204853381481176937271004974274174176891999980600212866788663029808127809079926801364071070211825565692117653458079457281534059672797618869574184911577635696933989208502877324395713312010702661902112921680519330084801113430299785051804687932358328233617736707043786006096705233336381804528881042990639476151477152207706722689856360915085039878006014253459523115439683020954612197429323779815735294560184279081813957165967431033648942530539359516141721059188584329712022282887913808121708379016769537353687139575954420780564390376366903160989456541915477028654243567989196434708960019583937694019558787819116851851737131230345366023033781092196675641142198720398448485296013233626182493021351641108480448356632878205788716629823944152786586947400114774874323479310366336401796435038500388704150882104382341635461206803205562681562494772609852723037985086069680022653373729924866116699876828223603264101960870412726099044587272264306351410041884960721192967193269238836152179098168905887646716519948356145123733840630420992155681603708897950797734710585817829532445384599260717220931045607261553500337802321594968542921147330784464478585836227525315660205514277966317612952786690494602372715910505742672940872158306306467826730090768154924877631203064206870972591028381692082038725583757888806067627816015289814589528037542637623435178027404832581160623846508014727442607275233953042067384907854603850401479627695583655397611137267851450133323765180984725929013533308489046913541289758722623851238805987469310789320816271225900648061897413628547967844380620499801983727479122726238854275739053734786067922060712542283168130830911036196964698210195959292873636316871506686521213113675446598433560865860067795731640856987325349339888869050452989414108642402940435414943171718627621742552427574478701137706656415062150745691869843180667488955927964430286522757395100457898128540457655235061819360743647439303462326119259765623979586437537145303633240610928511691403329883870975090001929519129032930178939311744269309223309889013384899706621783356143005678875297557816794859288848428242478501878459193980171769373536431918771750230597277509678956557719359108057125194549985521722944040398015636410733661377390292434803792692880025213774225169179558917026728474170102250047191055787636075552537103256048377364168105869164707848527498573443659390217127116707055186722767941067426708653915208324801422379790386249267233565121862858650188026174850930636144350365195011564727610271215227697954005147693967846186875159213494657260717193624999560138184363882996442005330864234534218660030698950685723051562691848895125361882810332982461795858663824584630917732371870021279648380966970115864672451301353708676040547991843189099730988195698293116778353250007334542244266856814517869117771274581595890304102490426331211592468418576306711772991980179305535426777294377977448673639171800451992248393626762988135219576037715103222173208780151395707180371116358523702823538635455504309521610573636711927427231783713304124044741704429172267029860955606083917954439123547311215018730216785514119620564548630111760802251494015082873370730014699018104463772374981873691236640533180335000525830137179276220628759955748429357543559707566737605331077002928010469695953238197891141025395496367614674194475949605058784140884728580276604159899858360221858529924613183462826444899615649475730636934357649739535406611143737940629044235047251467110593921429743148410279345209335648058930872658955496365778114313925609749975218836666273451510496713693457779406763036212323869450022247611457343955026571763601334590078429915844347366661344059715684711469265227534181366646796614864609235218574538033524715875098442099535870428971920986458787562101553199150594241476769555043944954556956059709057382449890272119033674340407184451470979702644901838358204454761181211466368026691184956753021647755095954708455950858285524290043549842925206360999500644786800691503940425848946526062407806710966665350221276874993670940002361864470086333545409454214676387871078861289395552781698256134692769760681716956093876804007883098947889752202649641053660042904188558606513363171302524493969987857289157726174752486397885232874274827406525795416245570478051457617046455456272337608706196377821998166151500794782506146583847006617725208065924731993541441222649299804476371523908983313434731269760162125653140117607109667552152777626328703403110128507618753606069181677020272413083047358795234655483445206759655048546533557403937400229109708609054990981890221495818729448453752295003567957470393745065854506305808651867595266567225572356531720013336485280857550401935956589360852457505498625381250713552102591883835053687216085010050622424724714046101970646365090385038205853074823456120322456599356102744682515012797232297150941249507824743971821773658989698365026901566694259842420150218585591237855810196025065443687770882296225594238086748217976517931434616206344928116924861093998589525195588091599217876371255974233213779378492430170368528596240431553305024320073395581507786061086252452698271163262312177929835609217628481531851873429831047722603979676625065898654773700880281111767952428168652818705935064815700432984393414725999398521497182252681716889044581809526545744181590927128826036867567289161797323209102697544636373503340095423629404886708618481460879218060823682417980182286044932650831948501648144644604811920583316115851302571817100184769450348922483051616714284834916013948127033793065696840522366128667121939134404354689998120345067129270540884507203951066054729363563802482551535662233475839919283240493698958970756133543033260897698873726145603493585542964511247980182312834640243802816154546641746253832877417689476588962032470225897686257253484566904174380918158260176052743314768293061546718531452807339609600186494855202326045867310932834830215301527557740640613841297104440591235131622662728813305286018264168015853657675016834443310429504566960747475400725659872917650220535907688921687920902589259047699725415893568498201991854927687518480079113688142384453016392115225876794911870359901907209338343803713449214738232572227195958530585407565508002746207380640154001974377483884955634008765796037134789310221501015108693151919519600309804103299126850518165523538363074937383533035326863220578433038084394624703904776558859143111900536321390720308205711898745505919204573314678663070413593865662695741884246210137004833500308354937074363281982496986228732203936034451528401676274208322984847456020518284946477206395843169390522253761975503673776487550006991036508583175562830450667557517487145827284593238145348880116086127384572228896947602167480519172046045604027487423414086500234164703829801274139783804223578609195246513490607722376069333544337530525280937792479676982121985004809161901824781130778312512773917441465978302615625468112292970988665724740529060121562668778696799531058618800795112736674227837542191112843914366031101276066255780802503972022897427669907120626442453268228599360800443172217562390007537762709211768341892807005974116899292881202025464932886057488621694318846195881967125249903751413624428589851691518185255421476739420036607770002693119571592171091332627737727464753639029289794059829691091601771425813430269248021783057503380123755471071089966323652137111947271111168746364734736912016609311272666640429085249015678692086633021645879217735287132801865520173267521424735736798263767075358969820907568476995106947831367265536994077505568438449932860437892508582320155776745795089573201009862058673821116418609603947522928604265246816096941888654381550106092343823425961142067381154911920697913308219383892386354792937449792770718560202910517508709866665312360394364095113113389660889967708121547788066501938117843631312023232515625164515374251674458271205708935875316270505440991183757631712450719593453775064851360480650021413144217957120777968392038579259670965251128820489285456466069012848549350020419995148698278757598654161262134746066680908068685879481335191504725237973829965764323974903983141102308132943117649364957485114796561309893520981170978674514667178314282213996582013728862370471773041939778828966668983576067329172159349255550274315198904003588105121883668912503492213378465929700576836600513663832891322189384091424461339522535528580211566478241153723031799391070515138397158443823232656310697706490259194918630294957344181745245838391211595882285472144639043528100879772315748543325988772728982875298128295560673893054419458284926402819529925809568701316693433548064717676036018064718397053982237321153301954523451334510985998947422486123237272693705154666641370855468154818735412727309804084127358882168232796597150016133008983618615981188273990682282257868117822489081108787342435990361433226950304913841285225628947631628616429507894635114076638099024141467693622580618299109683012534193895341252692975190345005393882459739751096739336160557394150074165470860721186788046982566045065620865254145347402252529526869533222588459805683226190108505354946399209283488477759523683898433905567133034692713841685719354031209749402294793618670105378148769689001361023058198834745983477594797597114324375316127668586547522374014903022543569981379921472134861020806112704348252296798377398175530087174610193659125157799948594259535254460295617837843113315299301844242200195943079901188286822274317688131018459706432291889022757323005259691555340303404389152809004748474230239290851380393050790632412699329556217574262421323786769505969617151592219036533838194365041527927669336992426538653306327604169860149567429986591531210806662748382448930406223449362315132751633594447386454982771532510905624559972515708869642150390254422571076571931092211061043979858880873602035684374892082644711847022060462246210246229525082767150180473343048903791247335582577428119236823279759887073939222294371917468019340961063973444146130033316408312776353646727988913978477360403003063606519202855357261897676220262014795777985572767003495717161229256771145847430002909228973612795885316482422999593163908034261700451001687128666988682452923370583626068628258910424500301247374666948899196906843805386327854280837191317189672340079784887551999483654420138708397174612659742679812657730438721751189963212559734302333902986564476235408385071690448431973118795602681915302397391853748114187563040426790794619552140727809245177732568668789982574906418329852993151924506730567579817515294571207297730664674920603153797765814041062731974289183683906459573740096808370096054035560145792225604197980075692647974988986420194368712623030101108726332253400492374115878990493597483656443905302355865239331026424998258086381900209318179882390990747824405362946908895385680520574681668537003131313326081042866043614128945508497236919904733559077830678556240190817696277900607153856373622572297262400555811786819914074246473075009553824514500954881776077439081008642931366309363487393472334600799057485058426717221635049657664434481616572546529562107574080275605802520751771502237007443348789710515623717594109557245183703684439228483383820683227088274016483794047345389987000736467457423435064016206099510541041600513672885500505042321312555800373140437872163197287483947959132123274737322859724192954761804586806128155989313937271341554357364844599412096926230090155681341928981606000745988547140793223655545853636545055214009727195074211351211277469371499463834569293616973227549983123441365400616822984054394644800246311698147068913225263812933505079256815776489553051178205882548956379172067167640416078494377030850041565381575001500549116796495883967690872467891578030514903398285980025878162870706715344022447734516824797471468213123022850033159163823993447204680768523892867515147531466681802109223489025980631027669328081086276670497059585760850401136542284618967809987070349195937225209983559535613386277493363388603938130359121023547339961084352928980784820217468789777165984003729701790038035881030931933605072392812482392646600925078837218337661639502979148405796286947419613722862022897282521794193479896835932685444673375989359379210308418672482390161702343106382146009986202668948374713680611854608585880774635376418682408956682127513478703934791769723476383831164288358716275042133013832041989414913072493573573356547699804809649224894351868179465764665237568061791438694959555218266385976376704615105938439680164448928227273816213176884754920981445168289088807335066429918031630854706910450233914188113265968240515637239121118706840707636802235662472484566559468136645733614871359326481454159557655949264831083349049015198579513632810716292516445492959417348988431387957230410479523929550710732416524516144241235556422659274130161162235613365276747712419870076493021914365005635888776515928550098276573889071846610821992511164141258050923766973809198781920567343850385057467477517611138337070218943036341963180972798809609156950196189037198916236665105826260120395744209515940814724021599895607052188148609277179011189113297758195784155709010522345327194084261031946076306266869519346904026706233668328972563157981710633957871661147852789248060221374028108294180968999241343778959151809963890072117447508983869848029723047135419754422359419246797817326068087756650509821986426717496275967591139637691880620114241090524030346566529115243404867611689329599306548386292624794126037924404050537345080118492287206110000421309800861166763678673079758507991007172473823376454673237859830962995243695258162129791612911752046660475185729207073532500400914075195051771156258703935260427500823146336513535052990968757724607307477102330061545598816319380394593973591527508186330576098975471266652650143178900133500287725866453410986143787061459013886425694720313270716580339660168366239513724649833026309650672382293526386048927203849504717666798545429287595944082639058209939298355485184983621775516389038352861162680056675720587697771564434421137580068491995488583724835113576681191354205479555064232147325109909078475589322561828597633759473150421390410841349807213925491584853420376883134748457927483522410386647287882337735189912397197469578166074594330489757886936038873650104322075548243083648766926486777360497192518464594454810804551830198098140416951976320290115821995731504900691432502399307216918517134718588903653262544253856468766132282178833982459271446487457823325941002852780331349463952023079962797879915962960333683318536165022198977767284272590837070011661223903080255957264334028422929775712007336741951437120796813861882013676452907733045309271906136532425240614798472936460585934808659579119417213856174584382879088158949258009428784212248063758582448915370318691776013004981725280555767994683103417811919262220526071377593575432423421163330805732579867607469689549327308323971937866865825355718754639285149472313341459400658639287412144311096495544532208439408428734566105161826463286517102145704576344386642579414856018403785531726430583024123316210208510870206098753961003651936557963088725525115302109770308815381266641287713280834102619619307785384691977951486389820825799277097897425863436926641933980956193932795685116603895454689150195065910650817627212873134131449008271449189673637636431525991866304477377778668693400795635410564524121181960198320806014824099258551790358258625800117256775334628380335158165189340224362616726877911188636081464039104738360620608838560281082937547576896411909715608505654666361050839935302941467828642916033438962226173358305508803443012926029662376655115527381813207383936535833329137158188851823007523705540837717613711051380790828859934189605049908734502958926465617158448622574025262751526085595140964945203808180130287424279770294231001415723064410688127828735539836809608379422863738616501147236545795095223170752574309814075903139274447488006643884694543763003365667658217392719576314570089827310021290148732709375998351407397233110170268149068641305391334869104085663579038484714833632063977498287937278686639800028863600536024548536242080736931622681191947482072553951974609309707645374969838793459179157176153257722536854585022277833454567004152226203894182977855252922261457452494869290150856940402816436756274996820960512484826846323320409684683070135410392284622251154251771485929320155680023566919450670208885586848734480608382853215746390191261824194013689008764163403797562214192030618547682510633295672886472887223689554108715440533150730130104156876690908275507074338637905456971684919746570260566432459044740044876166210049613238826067728499467252588435400570188097647602963277824359236490687099974220620472066283645975307489273366810722614968597798827543145039885723839484886345520755790789579621872546826225853229647210695812864617200065770449480770651606270716176230204345379099691623423050904524846911924331272531924071551099816264033641774994455928533732576349570250632665845565884824168654868212208549151275891823818521713859458404983872872866819950313925829570971826601407501787928047331011542654504007933816698765203691857436654535248904589997602594848380302368088233214984888407681135816766689929471730486644911377729429249343376638904681070429047710672542849487424612643007386841763282072096379965658718131504947753072198389323543585846109806162384358328822284223578486781973874496011303339519840787378068965498440222893249819144993276802180621784599224158505160888708960676725343161968468469953960482283923661821112369285340437686832563665880757426319771958318727431241726991349503103989656618770888903801019882883177471975847430631384675720750702792010378284162612945438921184658197472195445642984175951403170949835082819946888243972445458333683292607432894445827982615633302462759831135561022735206702909275118201542126727015268335094676526125033167126158127584503316766820735299410886839878978505209247543962667944031972022681353484093969201524634377454533910066282200712098830028620272644772714726216064288757298295773521185246868238605749974325263497717540169680919009113387255826816502969607006299396544619179332556189694816176146804943694042616292319250231084143104627906918540881285043048762583127950891465638414257136866952376335157038993789682048438488347942141259674610262011502096485537073039964391780018369859847791503991958380085435443791836619818805688941944733147317986854100759475026132504245735779888366993691619441227669818612400825718662590676416396791031564327247046537933907490609497381797651825283513363436359430580501477997586532400264482002920046503855308044158198337797771650460125634367890579876853688759187969055782855026919017332433946307546258624228300305998386020280040466803675351021508014874616678725967475028693046675592714015583879850887526249678667179427414949641606872265835212817283231092389354401296683555443063606838386601656741528234896344938401070175972570456851462493245484779900637591452535309494054166532237025675590738382483594906031789593689985192522538179542477081529665874241161827555074829188841771868794898399135815076786417281926419559688684470731971786133365523022005552269012313476886373686191357375762547802719277813500228244107554420006115909900042523760644460278686970182178212833123408121340743939585661403279389659967261713525614388694850646327044364027210773678873045094903353635865756373832680332079365960658714082404300063867603832019584213542286333738732785588989680315849575016089005715311266881191465087200624595041444232402780945373553311131293606692122932053735843114389871688804059007933952381640527459614933676944262581841578725288154032193475172537833631802655540673354383026147324726881357791820516885317277785279019129694304769667541462178626103179191095274937925724733549100506162016685849111532707462297007121973048714398331752403567357386568002102151265946916214471291534283612342649320957506371479335716231898721123175883673974224782505218007290334689893461046068594012570235805818595292909100363986415556934072938026867232919235704319203933368264480373955582673888383799807563655229204407401778424242978356360212759430834340104430015941697922714985554772596171100593493212096481108439347353193850812375545620089423444782176319032281638108625421856863012776027797722382034509963894879484370899584493344995652302116985366144048818221835152746479977975588729000113631418206999246709425546645076022006106468803417076715220856619458604217237497373901299524057436447046697561463796171371380181552640411913415644305017507919790011055368851565338768813989198716702705492663955017391183601651992861412854872302820158841015560173464142847011884372056573386932054085797225469439287384627166137978828048079663122664782017471967822312356453300898858329733445859503265747740110781426907836916121919749409784772450930663542116342662819538258579043658947647203373345000165465024749147673165334955474838333985603029625166582951271369375199351166019164217062154861314781263541239561372068548853980647410279463840406604830169901029800974952624388397007960640526150019553077392739384767013161592584208813559818024835333923982230333847772311854771343615678534285504948401046090793374691813008586824814987930247427580490436137722899841124489994609140329250523494687806933192434385966996326316430220977836436229086449145277468474840999728073835521789817885665717076763229615244096353364966945898786470537690837332709320440092624698622656301136812968978661293103951184120714615493692264981715863628555046136552463276363021412985414860479180166343437469117402284004255153391773784153301897327479648655057548398787007115020319178493545252320637753542949689936565951277460955011095468911638762929499749584562968461257693387146337427427806711888130629478572779986519079780418471271813951764020361188149212590237036764746836152059195370122696846571687907131787469474859965905513882727478021605866768516643585280530708195864779751938234523662740465192365320971780065052935348696807391759832039528017018504354622086687787817507863985560826091036551985778814520548176934936593516350451299722514678317047243093431721870220648075517072393828875885442935280034956028553999097450036075895390912154061692854472278770047748948997685562481129144662095673361553605317726064930177138499206831539405339073326573941875150483048609665730865820235338515150040639657160221032375400421109879289103862952066207132023148380802183583739964983434956238856727924112988114218195877032838373264411224469081904046260675007747050165520569744101669558250214247950582224984126284505063803433764089220899062106262795509394905384199553083577856207377085117744750223868802212702409207360844173312966567171908442677168858589447203188090105663130541191371662480579349630725217914290563634819585649608422850166250603715040015102370415554872771223007378241731192787394793909532154457541270022062792020858911681452599942636695267715771278288240237268504436654279616757113399069819748493775893093992514869494140852787892036974680336529337271416895508732148282773560240512284653622193012151262932578133403885718180806926998710899274750795408242930190325265893363731913879334732755484647508060401441496861457722561813572999807761442829092896529827856883402999221514035658856320317941731974201107075408294204454684842926898239627981775657753423311510513322239311311502125588117664765536092334088442907309943256585932033399816952790525810870058189308036479191140746619507263278119380693332928277876698167209483592232162824877166248490390265878819021441044964586448063639244392314438099502768461639656714814264947608969228602968474585346751595594211708499473791613491785374992074141326747159636857630937541660047872152293431897860194072748883236258600917075638408114736850626389824596393984957825463531202184659076446812169053122215317553373351385789247334886435338118024512764206597551465078785608764680575690386400485224601603421728780222016775972214503949834216710770659546031571574442071633821549574086619692053167980468373811723624708549084418261353115450675487208571463198548478354336661953068688259138010835608741548389674715710995814442159410720696445572818089445512578038603114968479085967892681343021945218393102180744357768910625710643059485800376670993950728392032689464754863157666407738561389749707982063029522574785818947036435893557431148720338001505430663551455599860594132400840534330484191110242375013493182388733472562296923932119401682382939287277178160700749219605366394282152738643383505586212713182919932652930012175999038096081228780658702833467338858362105441452490099567228511718021804572704487579389404789269233608390294699357421070950663880502743144026178746442571857013724127495628790600836432560957726948584447131731428025634626330103710262910142472060649635823033843208894859137276409578371838933019931247393848018599491666972105988300280343753478446151582121904745258284996963563122726095297210109867747025311826989297859960085309686723886288500383846759650425606136164729962393382166001424792028922890784347260249369324009233062908795959113659972493735583679828884759401725111153859454996925845430848183562727131457786315157957531073000301672791429211128863341797299940970007988570893535850671646913877408160094382994231070208200679805910658006300877160395508861092053567450247841901098446670127255738830475076015368085467944446232102663348980270653775151660563708703783489545495808906074597215887780796693182140770396521476070407617947610626661327696485664829670739927159422797832047702113074997394473880651072313036277675339237845810809488766829821299412349318139706652158796566289893991389916651596851823763983270387769961805363599323855977764111119770656891458727639263087132386670714443700305832462877660988237975132304981578483978150768952654649343262273931558854408378297366647796831377831766682143934116469967371662990050925393696926832425301132509671781115492959185363985279941290553718121489156802152892781893172950171087672932408260191997936525695343443192130408268092166137719767196477342203485523903264702824175967838807602078487582360706990502835275672268907690400197677400267802029586301411313493893484977521832015140327562546217724458652781519543084117918779204116530378968437305341963567061492802465287896822443827250279982141787695679525387892354930091616402152949566274417666502342229559363297307420250496978392263160808642685395315225391609871942168617425133957063781697490068931938554429332421636927814916379802687468562420747219078068140194260168093384303075197557043793296075648523744004949240442325825450949057054434593926295177859388349494772953043033005991579322308333424527167856370020565116207603485809034362911472865429788710426828954808229805610720160898879406353585608946814418372431530830790285933100500750516401071019176174846683768012295544382654836613704037747130858597706264880922120729232973561372619660041214821034143151085991791239957539275712849320603127122150152413710026422554650049681143645651837542131527368169933066436621704083090895343248530814342333496763368499819557989913118957077461166010828812414795348684628858388394423163794641200634892795686286536760241634042976520699107808924874618605521474656740011030838507459971248784608425901606743168150030128652384815667485437793144132237780388461715502726961739948645471199031567008589110854724925734741465771408227716418851270241225085557907116291839504916171485510913903714889002844528228764619031239390466412058970547987479097231087195326863903513456621711481645047293336402252202477942110757148229677942770011531942782780387241798133125750242065280036366763319921884101392307295388975591725782450158668942517443969581810956898430520680980196161874407132177252156248111175726438189096721420695958555256961019057519996681584865394860856779605361842236571196901614095373949855734636859246779517586447255777378367457773782687614626845213422784816983830784251672309317252907565908243684240613380749967242601455843072161282328522751448308599499075352596027826966094605415697890649157480366002603399484253146583480933015048139084966616005165194729745776433727430463079718459095104900852035222523146259666752249792128250024915620073769297486985415496570080501321919685488765697659276733352221673239687058643856547776057956469369993696474068974800224082840147743748335404761535929715342008034951129609187691386024216712948992542297697986275939842947564816548093370268681060222312819334135206028478378452277374871732240344497851832667108903651267554677370406686329409598160350236442611855444614995944996389028593051417689479468512556355477752558220086058497464158680132926106100600764227765531597019886662138063298101015777726981681122043159754735738467357317969052209784207965424685610409659631225164873007845352050532935659094029807526232191705062438652583152658583693178212530201434331110450700905560328574262045173200545012024024552161299447761807949830792273639633710830425177781637765086670889989023139366453374141883064599568877818318306789794165786102842123217906724584699419716769391936493965183625113554954229781157498491848639237196453585217857751315717857096429581621577119739499236039878797202448805473846254746808362510404320440062298906494981928339285481449780175119514054253206165244539321126212097829165331409170987130486636449588096983811591546906000738290160597442692409700188959299243783701385372509637840406084704863189338184878790305862628174568438453801566373808493004002140882120198717558468339070764650643523315600768920581144922307225234465933722349153296660647782736284995581891766776765838962167014086205742486904187448013665980790459201115784467997143219841070073881343081025722582991910441011037077534604562804215608928480552668225806459549618736283876494688173898693227368968398604562772707365106191276888040280275450618640103412815931083311849180893705542059048606017675731096754964788588341189459969996297916196606237971401591439094070256193489358172429288250439153166144697711754964497439049243681415070199804619605376674631944685793319188077278765394382404978228944533044131465590135219336869035760122801592031046643345856068894600629969239073905285448096088882948461893014941681060912612656399084665179862567174667192726929306293493059503873342384959280235662107759097933338501109860323724308269242680624485838675367585893634841719259215461853519976796019705265803363317565996232788971574666035957062283182343026200344029435179312312949828947664574240603493144762780758072610075819501046681784807849200668711669301356442651294347886991789339272489855825461749118316732778138991529225148089676649472352251394662634596254510714505811603118049507611018592297257338895533901363610701185153386163111190720067561915547390185776966382296675478526765987794739334082504431335598271025215707906419672083018107734662635450427588784931135357529785452555669144469325279162619274424291352782707506551462934885026765554967439519102409890006169142794123586376202166308909830576457620036738299426149390253998543325466708690912740764255703275513219138882839513052489493942619932478001832419195357244578862250018974666572589425716373611663258497490013136759689715197011308358119449827616075169958837468955281328527907584888890069005227494112598245032588264499109440634907731590854759795137019060427711222647566916334014312756174773163347499930518321444675659296604125790873222105115052631469921517985264298352412869725077537138295152891332147718209698526398740890939622526810870343710223320321612025849084124002707772954412872131633556069545725644591415126845757182416489612050732568891824527621432669387170082877444201862312596171914669228439273743915969169943185358297059793316281815583800600152157808738343369296222478853728953387999833360077732829455645947594668486667734679311647328161669096086306718347088971419680266026256459264129162937203372784161997608110767165510002945221212243372352487204148183357099397632908044936815274394427232271391023134055032510233682814527685691019611025284651526575991561554044045681136762267757448402825219777566422046498623747319350102473885829600642920381421953440280252554515511122482368465908573425783089537942091376849540444850019420453712611896236897194661824435569615428034154736640303260000724313764497256156666065619705764780562194710651879442935631961657139634081073895383654161865901831018593236280450324413202053972387154080960706062151491598841546206406284524972059237603199991793571784381412035509104906225367849027346347188355089023252609003554744152735725092461111158635748614912296142962926820756008743203657360697033849805430613391954740087149068843980921911890891951785154316535509332815617697950488574952279962033918451716778534120025169701073163805037546945056152206693318563448461937450841775988532095209402759630206117912985363336053976408558956966266734233986165506027804821691302394652078546188065934705005589896628551741632463237308762507520488971264055027452065461212480627099170916267247082203142412144241634081458379673512579336136894592921656242980108396904444355345568162036491941142208521034773966206291853461836872205488081547543436307696664917567195664033888095934460665635610775904559234856930792228236508726747417534571211060645734064335682204675970521246874061908313621071362146356361079521305789950537958348751239739990409665712097080384073798776303108807125006155750892170184312013449235312755988138720689637817648370556241994195569692446728782565395475505506537114894390937413718993025560792140057135580371289498904907566959635261030661450254030194651470588874868973392932630794608789544655147274738237227977584423808214656043415221244563869598964021843328251472291963018501075384990875968877768864832624815873008917321092998184152209455939778378060779019458547639788080430673800890652689586182579425578971498246305770094905398518876907438416079459445283490435755628493837563937709410265529680264147956829638773425188220231132839459639810477221913706920031234144223656533870575630998678174155933041452406606685952162676973755043106251946917591523776540855873097050578021655268382302237645054859111132142639828032257216702965120849881797513427155579622490495742372995001429968979771345191047992669502647136312912042003626170679556384109831362467942701190956060119867032137621180622074068325372006876805920200179473353657763472369073196790000656763337261817272301853876377378617132165345297661706813667262985931105694484886705070443929433063283384534488252910938529020140261740295057191792612593156432742900565771121514121641669981670326142211554613226104835971277547684417841124535063208694093046341474831139895527177495735009363339546051500580191810805831785627089731466529395647814273406428762756506058254919505924330186539270939240034328163613462038179876265640598863366045852369860981590626995069494424894548230241358259730860152835464370812011830326541435022701452887309651696151674084488342141540315562181053348693409042824834809410170909501186516074124305882321491197551276531657132565436854812897504066241694298941993824168270058644906899721052769265406065474152026377330908829868988897481580855547931724667678160528437736946333500285519281368449632229865629318656800402172671779271458177510056532552500232991785092845573856048306789084136356385994358476539414511792639278553093357398237878672876631201301130263975294426885127059379838999476413069625263625481800912524810277407764832810066324884157504233502556653184573299758898746495024000226995352545413883452746230060204251967125042875926350633054867829945671755067302677744019016371366378025809765291251214270942404520636347850042096784672622553626832519339783957137887071223923004195376644907355772692835043471591480780658435769240807876209082146004304796489605771567285542893460193008529473280793647091341329705545934952759631754818868391547600132017722284974583906304689364695241977149409069660766744113457583766077245838648304183495660505506871007846332626815709245366438596932054240719721308466038492223387534033887881078791443731896651539456014585882120272072648272783176761635810218607126454510904474484342000217841509097526663157452539155432251866973891015289378080444572128609429423477865627247875673303233399658939220964041214965039739955844339734433564004295364231524638799311540824088084756707169387988188213517971877304931362435002045811154991654093647556040957336241741265041309418903463155574472386622946639933825982020839630110244145479679106663448597529142254139681996285944625852335911154367141547780281626517026041793191032366878060657910568300933803199345171369027612972398073204937586783131014865517249549280316121496167757035129397436145335587877147925046789564370815866200051292777627681271994995186768664023612301920726816673796247192277919200242816962771431290824007736514445576940477023110952734500715236960916121816982473859194771426503382197555237545272839273132544270527519971295585677963610025110744417925528718511281314297619740574514126715081710245646527893390933173384915812733332375626581743685564524284021211852376154006730028323135535290386350315232231307521996232790403576518919555191749101010897314752497621532992168182686718032242977907360351784994130706359004002014283363855371725619384025076384644469511500851911380636692245906796171396722720336420612348701321633474973094447889507724944428672213849755926243198109905619166076780467455782586360095653823977678641425933999692023612808255207851276181448155807489957733222587442767513808990283196849905246067698605548952530427756566483461422492926037588879686898964128891423783661652728383691244012628876011287174839227090539810871846000845744667728806493859523071261504616755921859461691127985469841241972418003404450687501385879352526725055130872609790967929994283812483214353600528158846461246726500562298661281044750813626385036900311901540058986490149564620328486440013380535125869224778480328772481377169891353160689075007527384414279439350617396215676318636765222211334959165380563525911208005808363744659359041402758014214974567454204879621606852684616828602458218181480806104010720925384523095147089160140883077040100643949630831270519443634011513362953768504237154700471281090724587910216349385357721636478354118044058067726916024073365740488813677152265175017524885695485227678173297478344125071799455187423319733642142332431008904690243756097251453787428339680904992718243412103283606368126093958434218279250692115480273323436681926416975222773079781748738820505064613744771958453629799545401652013322222053242798307012633956880501345666040696055278548716132587332590884425971317062946589772475887143152513563995150488472443589030763697740933011233611475296340880333881002605828952440760289380807384015402106211534507348786271756581482913360376949154192196197742633843062157055378941621060545091090975018766470095668543127198080378939728883508857237083428088634995819152506950201023326870484244230342842396202546279591806595878478958614643514338945874071715355041506716153726536636714384203216087128045344008426291903674166175366863613211498388843473782091810549055117186160899893089605128992594317846820867707265598672393833231962714592043236606435512320429430109645488279284625423009441785507213111589824557774271032808690247114995881644717262142962932463279355903826847159155374439719421755880810978819345753680931034654614381590254015743721566905462602854106094522698087039601765573699515668128962220852053677354497662245884445923148268456520844347348844580540760032550315613682562322652004389258343073715300774141525272253749956947206860135295217104079829168663465359048647796024292662875806017843948539974910155967012058160433390809468467807540330557279036820456125244733512935296121082196104933205185379683356364852936546637505480256409442873362241932701976325077955375942274557563243419706833691573117507154363937234268310434742815951385753213783245532068614063197617029818791025813676687482670808872727072155046411887137362636905839311298766562783001673734362939459113636500873409322837604001346621873216345213055333654644072404645149733317950307929489227004674499998793692790171633773533935544683595355299440654123081006850630343714601618437953107618869812542173569326379689085921222549428966226203209853441347219124261432211603977470272563697391326850018618118141949369791623596771561399327663076541129904424101465543304154437201191585034547250357045810221179005731377466825601598838165762527794124950188501593462010238171912808101846594420921387732338702056554288019348229064552627600846081238460980866480688933424394770159566785831378885219300809860208709318977013344380060671519320287427823447822925361140216195741301168146195518047347469237478480230463474747080510452166675459145345605312630690973274569755534185933361373853610166286147442701772772575788076927856227354952067219655670430844844566854886872563130481390720143625494411333140478342934944322611592237009648859282518240757279575200594537544154503555753897682406508935708487689809047010921198669897211821617841230144460814635016499902036970084298608446553313230114047521220454913095605411228092661076247814671548535054200520423506346953586307392869761194275648432590944790062688228910538335933099677202319195883168332073582764029048732900678567886440627274076611118468569249761950527954014065979998892060118503049368861959989456387069713285642560193930540727620522185858286772447099711439122706494641018735077543298914697826846941089236099933215696611851920420463369861139768990271980801902159733578057570769005032100239213602305141643139625512258827411573684695551810306588165664228379965646556726411760802932912106487287691861411901897606580256770052062973736678454133550978169450088938024234197009934361320947203171042626164861158038737443224953026997987575176938999500044395788827286312574821889061332019904117873933243701510604941714626997463564715984363958932023122297311739949195784713254702718546490400188211559963097723678055465564129634775371319752734569848900179119111179689724948708497631851391301936743452933233115898445775264480349050569611061790557762731064855294905564245697123093174116335311328065041732790427081745505420139390226021360206483882720918556223240933653934086465099927115977123925141334177835729250713024286929258172775969850443207802753744171023704130622670077946448008225127368127325668012111387440647267895740155409024361753045912454652227782201082609413744483760801308801080245940308848024518633031778005316888699834968792351296205415858947785597774605346795895512216253566551778850558309862350144225755807411509114451049594677547266648644558845156052519037880188310713175915865541243825064710056438616875974659552780025113824963791128649498129646651787657037734609624816340293776180103823235588842056540742177014154122849600013199355203322251713205181954608161948897050587724925376524123314430518407963858399313466789479032002010620051765871619430075984812232373086760860801323452613419365982702758765598692924488004712688278250390841648711037522771642973379162513927922220553852267343077169082308231895225978887905499696838541372648347867873869794188129518506151264585194446232746601633682167699830962274745147679175965062303869805112478600806123286847267281758746879737846302617238799778048255370903854924800061265639968781329563510134235816064355392867274836781988983186529636087035873060408834312254797818531422472051396643218644048852847161884060542643311774675177184431713727971719258883812361036929701266103188663503572997998224654251366435282430088377570715369666843219926898784713314024636013441117220381739350386456111893005627863430589316759021443915090228801006355611551307652729859707592671013102000747891700642372206694566822448196531330304426754499229741516135458204076411708174468791785606008856811201078372181515142525688064821443655996941575082312933811727545644881973309662513902774207826642828634520769881862664327898580498356346998303923330374081532029286869366461091950251502974745251952027093451704456701871676353224902583039476883666346590403306427737621392116430712989971247449281525776642040500467130143401269651724087213980536221313291192956460035192770242775290090389002476025751735445643246603201121858405618955569447739970519263889776847919946214691141789522369604785270823980351080638007909618760777169292059432026630300467242568790765648169893219251198835017270917507059346172796060325712704434806841769028400399724231696754329989087749625330269430284237328952582642051862423746707885545614699655061685516425317066659474587249176666717807986937901373384601353594679845511235581362928278094124868897712671758025759985846321468371376423579945245584626424679490106922599935382017967743440921079074158434482655788801818425659771106292871789884622470820792328449843111501126431697095930177153184099748759226176942135202770725698807213878229878015085871892030241054974303693672255674672041073478240479905532704884572464227908772227007462225734596293161592859461960702423216981146630084988333807504989769618036260921914378145815778417121578346023513128373928307767838205792536013036522186125853575545321423366924578048007794574631417310630900223531966805426547885760029625951282059200465817543953720945505950057099593784562461807918482868014235608275676819651604800184682475616046189997052820880519278731145800856545906922692160937913406872064233607884751698345697802519123326665586894218004201685207987221133146435104180818124158417382425873911925984775557470707422135226900071872389451235236434530836733878015333717532564525029167206118840250755713310821805026670461740637142101224291139470344866951002266467703274190373838699574454986666034366345907482792960800229677160577748482439484380648369364369030438201283472163267314255284932139567799629693528756973598322176362470791825368891670648420219575684387703533650739198354139280386187755126467010315239869845341546592117103157682368072134434984194439061242867633049237447372627612985538130961489086690226344519026882429113724133640753098629272885144880237628345324263587702246358578502966673036597158443840281754435442982768390734460276051626058949334610153253113533705996276821381203433995499374664846173279554356535532044313184884233073853310823079252931677761238596649374388711463482700156702859456062613150279333793344279551905336467466802256993873264998678811915015375145714800444737102658495146777014844776765904060993705042904321816529826013299093031663274324757570529485064152664415924017459145283755237805232841250648791377446947705576356353009898615917200572104427170947192262151309671463188393062524213271279830084324516285952614835753797552094081018965578602637810427341830259284814266382299542585204873040936254595255031205544599670195297672926884746989837282812571954887850786693484705187950881034005029984723018962684587629399803130186254354014662032949100503244931376926785153952656957898599733499178988456823993793354826472230864177126049118102578307307948066539179596259387853457500965968757440822393059863319418897147894238352324978259049070849626513691304424577960059871105632138089843156910584059616216975576831005170551119403066538551015455472842401628713665414360257729534099553525352536875479123499019816079838018135471860169565612556409451206875091348215167190465706658346605879306844816738566558283581725706812182810768483446924465386736828889274884010450029699199550975447943207082089757337196904544008456655289974259617362928237150886157674575769068541929844196107079746943227455755747764880845506623687546793811949474942712650995950636437718648801368659956742791484619108857755287954374591691089882290692494033378687934310691427158281433893670600873406151185756541781802580186098916741584573274696968779904602304016979677784440704268467872092011743989129784505925061288380565423217388918871815697290125592976578239874141528793129971313190572931210439752944661661593626477804781587565336528364060542366153914187000398225096606308670739024772590909076895077605862249688539084129343071401780544282359381738965523950708370281686177354457054837095557474984818079446974011643273728374699154238163214073308075361306175051793108984241326666771410094325276149600810650028595295175306562866907432587458582744690711455639569922960417142811064277026809932401552363647984335791395761587616170705654569561164296445128878707430806132107948191733954115854220078312098808150095853002915686955149650691092820343031242744602448815919458803256159253242763679374809452828644464910949296252280659648336840250180147515734281945794965790811739893247455403703244207147816112389951487725573338145064616505357958160003994195036727080841777608770782383812929107296784198761194692679593905783130736412800943406058498762237325396485588557038948037686412878438180819273037347816912259517650553439701720645461004124300323027045685160449299833116482716145098801652721722041364184426284262925529699497239234569484112574467004395270532957077642550241383804765124118049724515174709522941952612475311370151612872369707980019597198639424697832855457848572901518725175079370390584818741926394308222944109775285097591247002530986820376702119693771048893410418418313599920708325437633872329388458208788100006702106184151563396139664505380604274324292894992123227622555348099159241688287497809851886185958168776097926926352141672096209281935565845207722323597034885984927013498319861621071102690118926871530281402932676608579996013431855657920679426991473156665044283289844976851546719269767880050433194724684947966697879536171474160242554881120606928000183479099053931902440345846487341208742995399961641565377344510900591714703861717870423850920316148778928634686130658521093325015262491778636274076023874870792002930877903416769008088148420872730508605336833252732143160723797411189513887993192497859824885068988747726419794626571588839249160943732310581265335437018647416867632714976589984335290400753690748581436099728244583880448787514697107278552168861110179077849921979940124026160777218584776647657754729140419682463224693530523361634705546685588166524468084738959075847880168300735738092163342487432819865272201289405403012591184023600160577719577116011854243937126180907798037898057985161353482917736864058813742931316511805102091185511471512145762137880156086495064713802787723614828095250455236566443306854017082375783669988943627921974740573919366000533612723437047429492096642840672749776809971915813066493362361376323693613878138242634595759594619693329554381681107284673820270775734656411361492354920217231240881699185329839417467852143722693981068302982703464998756455825703656506976265494851891214106805413489847833329462178574793562978846416824840345603559662103046176635343601633213382696363478209932478470463114577168059902095113934553905820156757908481209749944716311493079097380057267781399734636704890325753414537610167616033745132756334096426346867487012572104338154273322443320234359812940783112154822633393241066252062731278919131331185812268255496535610818603514796967015156650146544449211062469166800414371370281475210544820465715194370955236375672668336423632084187345442771141370932837919307512409588122365557758485409697915779653899090159106760959327273137036943895872178709068029728511164843298191574022394856799417122027786848561774190790275335322625634693238132864988295345020666954766646119107840262699647452734694146046154308827362152636597826385089196068492150897064070971216267496228756029998610256556086081566655122178101131878374575382231664395812153654556589576423531382961907706817933694266242057573747139459346723705187889750970362016052638420079028060249702653993742651771181036381740079515871693068899404173436530102446632242511166661691573721950157514072522394837039728792973122313130537778191020987632307771712793152209122114783453537628696645861681606804646980092772667648164729213176242292740231410378572112672463748977872452117578465821275315785559229644851790995213177172209236409804672525680127097624786409152994447081460466191531714074366431933178439391258798231056884820724742783158799277811579878596027009080295929713295380474993536339527956355157260624486633036571716614826023050520148120380919360615786706470217572405682734805346837927226004592104771146323464383258991979155642242855047635300119747955592985188439416579577901581175299912786460232075731108367931679727581306706849179598304449189380625051769847058283101257725322154401226805166576337885517593953462266354470055833966415046446418585688110503709622713545500199539880731039544779024871193604078597344161417448934405197850508163549997008379669110244237870374172518014599641901384794105816052031568237674699963521018252629927002509346062763182922252314013982688485482746804605688100685353740315021310094103745389330498112005824366136122555671276582348732960905655363179053822266496409401344902650796626964116024043764983219532176621644391874337115611094735860702748025344727079161433027705471374144173452592863997683284529296804568811835661590013082813550706676981000448864987843181125024624432348813378772977959362120286983643899773448723320535512292235728268249948666999212126433043245546812787893682624957878436678281229711349854859664920926747952233785964866863522146713043557850465945057392836890432996187248492987089162197523339953277012416056431980064232203096526131635677722947386118014255360935919686816872780802977236655770759945309310980202908353974637532172709740344240899862982739763503628677663904088015093644787098048996243450403152862230261123309935076069462779752258526521448281887775095521834776733425924750251034632956326884822778673015024425199131589048747623236989002604214525746834885582155320854062138522365188105921931975536195937743333185693772733118088082885144199193835870476704109511838759094050989039140337784275336986421977975665283261216641910089872217982064930776448266845295139600093918136530282591314295950789526391993088345317896840453452926508269706632858338803045528800573343980698730509853855550241492933278523956624411562729034175845577779707641172769630544972289983353285708896049770397856863804918233190817963531684252977289612251968629488609489987313664008780584132892458127423354825055036582676230035565573722073778575402653204766511282451510830810759967155746733004971279066429440294980743027463675302355595958523796011520909546025028306537921502653596358606462133613367563064459826737552744821429989902987109559448140878114770174288516326624891565282279203104926294920410689697799546032379450687214657139696886295043392564531800764607889981994324522688625313230626038479669674774487579401382927101424301870385768512682034372217942830028512976673068464712786304237538356160229807128607656643584925412976604463785876679554792243923614305799873200341735825284741678786967092868458277194434259826094567744204747358652876330436377032073361078408481076727053354786442572056229625976110048304443175619164294700610857118684306043848552806814522071314251389557353016955966064242620074679116009357697100192566660234310647878394223402040001572214963941241027506088950398964483339512170256313235679334155018063748521575493627072450182397122013232306076542385527056330285900637071521977296682168817703775885985689027033104127308313928093436966981736040253910905707664194539240533657333535104710063445066927858723342535056279569520263411970927295666021819996092626334261425637650062544891553933177167483884378342611451340261926809960852442263249924057602559057955415667970807104440179284636337602758140890666890432853483950543422291559512738080623332583794205653540634355692500310633698164386160560014729375444710153048150877247568768884551565887531306676756880280306405345201428999271699642408345423834782876013830956187238440719924659321367874957953387530506990141476407513363207296442962527563096039395877596120736372667011801815254786318892512383613809284904664835050351069975903969187805514540930472302974016596355288417926303421492936842737896975291902827278016050346597938927540249782769497704969883264343843129777983329892284202559404603120603227755027129684452092975491114661608283409637610915046771289299447623050863102156402572760934597935624509538172993036317560202632371243435918427354351712391185673821560809161286643622601948824537930344578915328429193101037346964752485793399209807447807618140903261559150779060797163389184810091368643571985471947690448058126168883233217636018772488667296817295296730508273065339919040789053571395534659354225867289996938897690416329031572590673130043500952296025651444575304013807206539014502328971210197737486967545564445396805550175285322537815680743395689057166041689059495996861822968016362516147860343187485564369220791402825122343587874329188024761961560465410406113589652407414652737178862118785334721447497505608622173940220267346264608550347493975710538490497116733261053101486135700068458780346703938269026725081954936154878736342561759785629919291860344856659292692949255678637837008999865356563103067757668678340100514538794807259538245988584174312783128552082062785679196273501590406924631833085223408818074039129300541623026048970959308818980521543307175906708441142238604287212845609104577843926517583087639261653773138025168194482942379356536503811299741814591026607181593533697004889160970365581023638361218990534977642792524283928961584230108416215579158204645697861224335175137568029411641426327376721204731480726924886320566747067292802470553726206735214445491352361356645376810433371682872155932319262412450254941133972189106479078203038563333483941262302740835389176686677782819302960121371079631303464012976287060546341531640666865059987881844151746666642434604722740720951676188742780567923797660243126794803230928757499982499024702586325232042824861849444042979166081209807715598681905248936122334519762181107617291799822804257855212410224288252339963465578864756397813444582510009267387052678620745052417397228679573792524738991796771565747975154706972803167325415543024048753121705905231155400013030793259868874192551838162136944802386181390745821236767227216787975060839176558931585605374020344498851048931302017817444323464134148980630698984925916567790094615131904651687102979066012272112033066837469698614554633336837485822002794802682323788347652167879677908161535949783891930196483827855744456024476586131371994140978587328454708472647825040705932500419363486903218855332894724507924505698143323115631982897997785262528437372312213274142427176831523106529291500209033190282449162392957750674805232220371000285728274743517994602237421524926303163680300340107294992282109869385537238782955650970974130716508062323365161101601510521902372222573675476051246597958339395645140282641091357582089240231559657170842052248491971249060702543919906723301736458057815286526706520879588134009224293758695222759854794217256716093454352128051114871544092727725622583283231972768191903382734532748391569490704347181281007023211235959100237415284759115648102710306338268849886050671679719762603589719354360493229528573536450408515800068844670355040552421716608211365557850628074896056102655206478947870749141339589293256421294539093472871638825275183341603866961055044140671461714834324000280043005191567221882758703225111426392058258538963150684087992178819096397444561555873845230372406454059640413586453461118120913278615310381609152745275426944146051331120862105712153535061670848237449265428464475887074444108759726264038101155695712158833576982554500083622101516852410941065347299841840346889896598843430395724207159898245112830946096723022064566267789751476558272185405678029747884751610718291790436370332052637936953900821612795004860976331306816642218867584120416790846092057635245173240255471815401364374505595260054195830399146350706788026540770944392825386282731803426499835607306072955649252993892241203741726084655165677877915658475202375291323565497445610606881943131761483640098902292421581880710600163256780230709141987807512904952011674168488641752933608782808946712079828597259576116992987883263261379919912257504894015468041565477144866309502418063110387082053360183172736213914750248330583214515018045650714802995258759277366823378468203022067158284750121975196130983256314841370051624356501644408948302961072069128343376274171679126315626848205280113129768543400847483577105913568025583870964090913166690253891522749431281875026802513336859913749222580275650783230280698936538426829758983227461717874862673416703180013237727902280243193264592356850793288821284878990899966313419673183447183305676835229959843665983191857296406891863604441707791988501029193954615385549988437155381688689251282285686230533189936834342168203486316028203952511856680148420840274912094142447487044208436660155474490288826181772788775829393223659404053624749978775928562250250951763479844488506635152048513183159180033532808427714544671588178156662222213816569966538523145408456287945078543313890900974881901376344771961821260721055596954568075793587742562692770707110408534066942778637535175337655739724556462744228662701934774429725338982235000157992067248761579163862187299785428305740666564410525230800145771051745246448001685284480591257829022696133968926027600622971659202214254617596034678071231940793590870673537158275957905415428764582408477332182317129793261439677555364123356620508489039523578968764356741530371419615259577977209789667418481583803897997824041022676423861566287963071394216231949610175496773054772484884363236644160483532003050973362679818191934903593222996424309495756999487148326437727568590739654514086801323347101882507445761288512316991119007939216946760025604374741808779356929687601762018264327005582832185952707449467366692624114894878152565764057382646442107301230261795909072203828526879265627331150682618753992705877532926826118849344237784609894603417936282690099691454499277189344476407062076176478547365528348084104709566353277592936801433964185398933063782456888342449887399200950036194471810540845929173293190294713655643433968580742720803769374029121603655107911395856790738484424400392794913481717432816412697513719485044699238441142425685823126927145289162225727421030453353307216625914779969634668498676600837153570829301348678283326682887255946823891522677507650767774147361551972158891867561204739039607350773057967474688473518339898840832054047555842192019483641605059937352712000323190103188132059799080425476828742003295074853353014913945606892267158843966392413005321495714563140266800819870579084748997193545383897783661661637027861410581137094120939375475806823375575348216296795094951546176366626089352418594074358188624139306793771221981994247976987044524245762645778650698361515751858748662507265244549447843011459977425261907233728712616563965094000067872635702450202169706270765655986119018903154576042195606024074187296644184457542508374231171662790582199613754516108668983230456936841348131505234301986981141557898563117590154819875728753842843818854855022220792760603074114361881993700585987184873550075611865310701203608121056268632534652455484834516619184129263755403257025419018290931728434955653620640435861027864227679356951071674518700818952943643277210018958976910750752414577039305764483631220623606630541108377727444194092180060820904432431369585297662243554057220261625027997811412940568207756972092814866562251140326562573141857200249799232563937920107635122272817277694780596510536183029588276538221573291403943713416184650439001052529072492602225558911717496848292179200747888740146203956354054772612829248855566263388330705073855964212182845354483308305742930595700442812192336717345422143689276075104933734365980652977637458484712327176244119627611072970197894803477968671847020362343563054439727508506352866487345419096210323466700810011839427531886805978228089086788064487336872805149869048058283770248016674216819739106289959038487625177462448388849552414961224312756234901095632443896860903807414926381513397978864172393072894724269753400403346860093489508063934379526723826314625999813380663023951948969452172887253495457341709514779203412968158900596454321524082284522891490881840318725912685145467401391578152311839597299914256372632052676656755528778498324923359839369449281740369805493430362241096961416729556146423615710680536051438864226177748812175303289832083658686468565203107558847834147494868593330193258061645383547079392444904985454636083403742258475864419576261161145115584051121187712165010063431869453509348288073733330746789045624344950455844004403219714201780920034657870606358505472719954096057436533963814500276017583221189755095851987642951768323866753792116797185606558271592792345009332724179732854028789015108364146657248663415319344571340434397699930031064936657387273199603649610849186654951053313032639167359574174746660784430913378912379130365332428283160754385090089625524541580257827208039996157503794985944188199306050852485950601461978624120867835440852927117508987273747681371937677413241167311792589562725577039038404235166350658135710798434953262720597987571119889521832891624530278208085804751689821821667566548363048994229860877407892259505843460862169215983640628268626979158705622183770405903617180620567744624813334083295908709451559735244706237526340076840264747070060804085958782443087699418491212601638597173928549213708979807891410104901673983375648793189250941265308464545007197517018159877423406932195700862715245232507100239391742369721268665496877192363761860993521977383830683424721925759142843297489505126124277129925012925431983633770733901279604179607552411175170172338466542715035526059533355091230592963617823800231303937915607086907554610397433419534156803573940462835448078455532431428586593060534409819282982683982747678591566441110162202688327739447457297715607316383091228592234466802136841545342323840401200793927630318058670700158817464626364185845245741889033192742412904487134062940277724692750230510853455942141016495222760418193805175346679552890694846418167107536446672668511975394189425010017150849845434452596638697818065130523549407919385727696785003255693143366978989193992050111124814120433076917503799826526492555930791964733946151694312389103804365711383060655388695421901039706919961993562725478444720966919580690038915763425321778274181080309304488388998582970420428470095446530561645917567863257531877829503178340216824022100628501144362755727120759676596736722528317240368638561533894779891514001745810180736592278697070537096206508274712286464148494829620356998740369850883382460123166208118773599954435663417946439048724219497027619364427251249792796832773022970435203218170689749713755553719841805838752814005033337492138832777729463353768084190065594315165364381371233387165791821639220316998251448510228281303810774586592651879852820083453172102192603241506527488972191327044658413681501640654546679231813927470379106893720326005787965221701600106745451206367178931999324075509214433906232815645459756631237616101598904954697224799313131108352163275064585050981858622063540129429372277001109765993817531578230078312080707143874482523448348994464317558749136329850336835912831141670184651554461065685127993766042194790722646944131622254655805687355108072325778770119570811595670309775464313437817473968738509534596344756072114663773649114173866887495799762234530129886511827254015432362414374167910689668772891064984560449387470254668091696707959524120691058316161540351015230737034104422485576757937152714092563057905548173730631422444640133739292960816764834789511673762791975740642172492893992418462207346103332878147108616791692654025932691543672092462839676689506601286214375643089321888763965438056212221536134409858127850813827105504905659348305197345791070978646661641839941798597313596443703058262465928713383926240656254195684898405680753962902203281474075984876939071243091596447398037070593392891524751606135657257376781541235030044007243129942450026569839996051683407477735332591705056063661687602482847412562111360408109027966997995508883804475455798472096730011017480791785896807090150273607121143319812656536938962332547966789606330094109413333757572335239432051017107841768565240625873521853402037058566912917983349522396255515834444477087352152314792895928286722266332221820765943924140162882928633039523228113542294441535974908638286233933163521988451373686529995917632892524053294693005986548478680576798145229043762307233818619039956427364295488833891675900306839001876785318309913920218126358703090685670793965914082914677977186967711065396195989361740984539650292527149046823793439494084193076782354034752078770847391975461224180488570926297364329873661599290920284673312867153247103002172034946739080715817947851380175128557065576415078732433506969757331776075552523731477191513541410073652369294476165606067080187893987214897144151043568094861431003251381583878926437824145913065267144151754182459413775476198895229744114670264567350528071589642433186413762789137592041456598488388386704692539070093649091238759543260896928207187380420955696984518537288184291621927484150577170938376873226213572824937796066110654144519400006276872213928128566939510173928354902978118587900394465766894506592233829796716905157469261354742986132422379929526993387244768468296216053993787554253340216166548392308583586526164040082810617664198328555212407282162519347256230319638758276487563088802934818499566230104558819580066489053351666904471968603550133428852567382369716700252412418791424550739005978321185447801420976811689036764120763503811544152760276046032259123817133958005571231535687516515187220629731569932774387475936259156108591994112907890510623000706595590950641199918908479080924213878662964554133379845547938132625903696897577002169070454881289148581101481219602484928696996286183707120897237829607896241481547094637276299843815395993252271120234169179884280862863461324338785654455219897250935916068122154604213114072541543561819919133879485557424729865452841045585379229056807480724850652496051806817706932888746740292000632847748551895741407582169591521369463440371058772268880216238547704133331450459727947120677181353978977898672159331919875102822677088735253329962785653287506861521224282948467111501594603052484100055816913959254118474667053266511457345510530868681864557524833686321146867826479444399286673881010797951391418671663360082327321819256993886644321029889799518032539128507843569913597100322931235213954050354628493195088995019944068748594062745659561377152133290696494076342842479568505120834661005081081805199285235698688788866448994398811466940827621958653659080920850542936479090740372081106837445133305360092189805827496115290020635397668660421802980285872944917751975998616386087955653604264971864928194061664578801654948440059041442712096575092372234284526061039086226947935911276093356933369444269886725975294718330072792946005856943098958625344980996507312984153339481414657148955331625985506231329701368026833801978337967715299975333141692549420376706434502370349935136825383412790203099391758176536898677606667455506152047562861019803279717582180626798384005168136687161379583717580971788466245654169708548179158497125366281855439629968980593480329175454448269423353801408126474633446353157462534341793449700298081170674909405006600224627566263146028566208689646743194287740375464580596261875431934178782922893462931628137865092216520501109225173155243077006404384722699866337422214344773208212581596431358672704042841026081412716542219688814670357420330254223247893163704410537396376122963601139245244291098841736999427146379476452044293178365830565657147467922328397141662008894227852861697576382076905047193991603395862864248622268493145474921596681110220721119957577760947301883046847601560025013880818332237525449239192948916082780914969930154788474967087498595989837254199089143529651951495879151598136837820778326389530059744454635415036754316120490319616175605542509235441687439411164881593435780721561713497225781400565445297328883531354403465671660865653329998624531358136085117665325576267859005151714201877491566276371713693798897276590791319837243591408501928202457768995131157906765529093403243940073602331002792130407749613232694915131433315949703432786378827248411478194535851669144235229281627760919319481116307752379201763007760645399678774175581231107596263612533910443401828845831094175632106938256781453583011789830194261984059224710678092066332155964314942925485332727308707413166143768071071012168060094444805113796465457828033097345879607553220640015611013133632285002316174299437061655488637047663137173447129454633658087810934505216344777583703973910995219316724484383986836622541160509461880161842246595839024182394506438862680106291737165675962585100237344481039933444658408372155948898538063277220018710640374200151230589254646375678999525920029481656695317511914975600869734429799438325366336935855679970446050508326661424279832790861057307682381759617718666701263684983207177519030638427180045887024449317161418630579775309714513931414249969118831010390392615909563750240311473310908509116395365949197853683404662616080655476366011647016533339475308287501054397884494070937379350542427902034326333962870435473925175137581576085239029347517949322122289477836141194361987882496249232901576630838784618149630775894976899138219600450256765831449910411052184717625301805886572962798177349668752824557644438436540758476625406824611888920826481493853830264313423237505285927343048243667194531541566406949348983512314074905200565769836634810234681838223011834638357694750683146052921463089421605422420053459473060222199176878293049508515366669429367887535134075461329131759544402944567762202103509534193351742564759461881947833954022129011236873856785904315290002713913061709521748112457722792792282035008392244208086306637912799031982405192329123828250305554608025380903904484493352769111198722099340859910883087749048361934629540822953433485164166750641481289036733562586937625069424898681421501570147109718801483248002290465608383517417308413466123628778241287687767581998324980473824618199075098390658382770893297081072224241988334227487051837131070012381756509725064277352029449068731660480059879561777089242938790779549146469044896158170598895870386678401366987088234069966038312244273264231112601041376936912909167501779678807271980820441008920709862740145141336967029286970766585266530439973739748222836281000318244775270324402649403493504240478512615065849885530355192925102620462355283578893265179369536249903118146427338249984961333562310249575712730457797507088130328339911257992113264857103891782579044057520874458558359979872389435574226300198027761615814812253903250574317889635003298665170274202343534087450188868448772390463810769310281956433767328284721189561971421265427270912887835454049831132203067031758293002649354000883993787291664887195792138145696528636772443268029423546622530504542727504588605881341636600488762438750176679362670791694936390479113647557446360537271757973477062585260900083549992569839080214969659851049129231899210184809076724757190828945951173285252169095419386645225349055824513666880296655432678072670103306219367509033103217621028438538147645071301723724013934920529604308688621207706789094997715053902415951246302733465400789957319147477373241199072478419739566731266743214080009179351748519222463949551457715839399006025389373051188081446255517927193810671359928221465304495492918925292730594184500290594520677787856655642509598085154145667492764850900003903875023010567324692338054611368154357111567495100223802424624108022321248814289736752813313557890752821798742802298267436525048691437456202114885764547124550542965583192588398293742258582867673827306254329486713703197401731861693939861713485809894379545187872208948058608533441744192165983077625859227778155118330433392562414720924938674507319467709404281506667216352261364352414438345942549856130128353413900170970897160210937595231620601382217816005646397089534966645679458458266627235517494327666238361381518863367976396601296535817138944402286817338324743107054483100481714046122773209145317100476580300016113026629426235691833506519268645245517148267928117987829566218251568057288280602587363301877074141605209226755353779131421496392277093387827726178179631204241651122021850345343427768486015433747623668165896452541734633396709371467021991986737752768524610193849024584407074468824869831307658535213090006601381768842483586096514171938817191638299427452156292575866701601463366922797765325740750164250317265013246389515649277991998710858331447580743920977278542481975364946904578053079109336313808771805537494426563812326480525888527048761248278653687847713514778705543308718121571323155936488619737502630646472411527144777308844619772715058848934615792135221695586135802099987593373971037646227396407947518516842651197600199184957805176173881374946358941798206512215413470549574001408523731527548879978890807640864802140516638686633205728544999808539751810724482987510509196817813134780613769938287633382883869168975605618405260992036145545272105421113652483005234496582706099717040235193265526230797510735488183317063201399521800960271269324485744934668254604815370331523547478540754785989346471764023858936192388413958374811997784057468358371386025089242882847638002605906512364751680304064574926543171679174514922126382923367059264720030025339459206170179141163090765036926893801874464744056228700128579479703053627112308909676360462315319148744838671850501008599612037940345599932246569973964236250321495293662420834199572768750081364853290730684799284174791365301982388717827314716720436577751341786062507529234070302095773697587452005984473116136464487748698388599815637920133856900315973055745316295414402240906826922350859625240944359044170984087150241759311173314424116938071129979852656636063394292773509759456596590776365761470316023103468474665127024502863828575835217734572085157407516483172556350384595305555309745780892986936091464020273787552152379308082257288960520905612353440120548734870389618675553289207496711008855622410949599844954232793909413957629866791555481986717009634994421070839440311078425377424282493417282978828096564456969542928166832045581059350094669867511363520897571944912023866325288537477865089673614993598215209094471267942020682421510425153344880431731778614012492233396646250835800213484694000814174752756495088652862199380153700351685129397963634199469804007303774889271160613712499877732729791687101274801404985756331057982283783588178581460800408936522794932557030794216719279052285150936366393499035413413447972219087946281035613687149836605221081960243433387676624188367718582925042542700390708390386331466331706116185899344267903737786596723963308424156088865315934496747838983073537185098858967911880190292732064729574527036066406825292598587241325451220982191950258862418331556291266507216639833454862264832005700253019109695570554077275468827219932638578927049658357924833510219584618244753569130722162186140656795020458037398242693924659732045116224447995825630264113422825439718727259133667494865981861106729302871512318805520430194034600845856503839590826290064848981990461765795769791488580501013320184070578012622156181717452675952172889638819461446332883271075403834082472271651518495953478281544200801231819090565740412354926555722286801816285490568976233472760406316473256505027232264682651349234172878685939990739258594712377717424768927618508449892140393038708440654309296740753671219315987244470144823949356130279160151613910135039881857558607934207024209124887879355553079890462451200698091517044979846887989018738553722318055072516584341376416442596213272215376314591024857780362245628635543827704892465473293141871800711045811402986914596223444833614539701521447312862183248511575813509319242585141800706458154605791796426513490356674533311190270359526515454484458308942381564118953604134605559551105201592508102383369633475015476057411686210553257171594948211320160224576938088696581295925681082890495436037485788801383713938563817523796339777659076047959985207780112787815047457042346164479201734482135956348359425627563002896248465987473774195239384647133251786347439989185951753968032518035406304306421096853846422687892790421920811811134687234395515062877117610543720613611672254397046170453067939275503124741583550062133373385005953680011880399977054707366562908226145115005518980607522864501576424342631315708467544008469302328996926944303106865952024194573227801107897453095410094060853302463204656997670024787390078636746565432321787398110073743572978402264745396032183750980381414208400125434695854484669173788952170343677954551897018667180683210750744820298163763910110701625340941487573682011673955799765059546568644678832089639906778972192569469782992994611559609670136380183630013625517420457966366195335930779362334220141505068778157316026582609041394123032671944528501476367784426047638406379698333821302776467909312082472180702077581838043004564656959746386117838644204297774817907266590699781160757959534120744209606799195482774900455206272542417911104875501471921475577751664784884189409144863110573254534078391563580094231631410280134423808344308387938989529892032263012317812839320561169558011123118185678033031276738207881610741056520268555454215001534602338488301176153100886438154723709612533480945155441521201461950181310671679848539889910814729583227821609886213776412904538462192339183286618974836555805496075634811668506289605486886667023963702617532663035911692997437825424234519153699897642629112718647437480996885831304142733717286500246362302847123586160237115838750857418631672582797056678610766290362625263929285466578520370216754982017467245374712438552167968847699605619497622832439226483001393771788599780364631672934078808012539225398764477134635408852189289503855440699756255596205081403377153887922549607771098750873449158768776661044876020613241360006437190015753599510435558055574718082696649491879653394692578031095676103928170536755516874334905920620475239464618954242230895355527636955312042333917814663519406714172010014420548848662224013291787901505545707893837249359650373023308640929590625329063719649199710764291130122365054235024309153075359438759159585462697941653487197976534109566617400546665656337036326241679025221704506121138927216032119558123132524169241095668816139217828875753209256203840063619969023643159247689519014035806799254854352717149148432218832730317326283982199379217364653979935888227641321163060452765977500720718593026310700322403232081694682745849788821355875225030049034825509850161571156765953040826604655615901909906138797060885939610550019590013227261110224719145929534858931052995799310931009772778424379017435829718905093341028928588462385750241733976328210101767838016081270215506413441489427705244907446045910300224184778357967410149742325757454860470057902558155459358561942095393614071084101902311717299153987024792958053696417933052996955798367731564495333022534053221088446482066753635600924601570208533002635415519184702580300981857936926708920626057620988445833864877122552227242357236236604322113303124471557837063638286629628003447808727295675612480475181942425748189220892568686726662303979600712369349454147555678842149470069509082847470715444760500168818233466538255835916038558507819683433367385739751593682485822267636412973212756171665351540587346394315512532659825755563534309967924881368360521041816067805266548763430912844649302626287153215154836140596531062859209389633780935586517541290555959747313359356232036871655214444978948624273551952357379283998137032827077367734936179253389696099682891350879081297314651869085914307993431548669550349173926193202069392622960225255664642916887735548623856814200313355672552678317210894329325918794663529929209701440991356141615515163489969024258335314244276460225233109124328188445272297961555751371673929994544561180582913092094970893129675196106932911381890215470727538825724414390947393164175367428450165464348180164269793026122653109905705475694129451327433618166337940547711950431347691493604661590085982617113497108787712080868420929445048200437013934567011830265728621722942393422713969245021625741967609075037919078782615484484473650147412145486306428937829268771821877283863211975939807201156463968085768533163589646726590305842177102043270517387903038300986155166582384716505358681992914983634249928601109722826189949007281457606965968174645228059289955824710715993260846508106137154310814084166496572381302486884456705208829607474899198500093006763116162464599775513404434137037454373238224930826649082101875021614014258614544393724694845891347274455230592657839168739949951188797452156522657486786893541938828991929394961571171689976617279402235712820072872387415402166636857318728766633848530171983470053735108092425761250440709486976429123393170866880305938843077845774035629798469504550276133008979940208117085057668041356217623488653577220271080543012224416250367982723874743672760924833267977441758693096627420160996879075707986741208711756337028497480033774441509432644447884808648587586649580348216595631136847260295889710569413362663560540152430189807434915527707200056919984479479351644356963949092043338635185145234694311624314417712502024772090994728282404236960917951920550188125415800017713564986662186486250956082064551316309815424697392010412512612137306531631317435395742588430967362884034855923109077488282025708210122537998619731115367541966185317672525116690651029576107564774400740217760649172238463493725228399805331933847500219370458519471755761473649719326737175532608818168471277471480277293892916757659860857780189055171826597219783387093032373372737899567469434987690190430085244261733552722786770958079113743170679491475061973149231176639627676712463807549735453300021157394858453103034775739123714280773479472916377259152821860368832318895567434240177459390179788377744379776950299818549676404392082822666661728957125449600415670882358245776447707340432590147488320959392885388525365815090708879713809698583750625131753192997983914429007849381029218572829235051046877392715652577196934980890763232693908114312259686365796300660636127816538647017922869410903145296480854037611393753645084899968947517385205952032311184166545669433959810953224043507366571074814507290318673706780370553583216864130779249008728640679306084366975091814225076869152216018314650009246438632938155531609025827840892056714982608270853530752443641743400549653944565246581171108058458527177393081485553329497403361814164266424420206436951281010389517535457572636839969933917535250636892353957385000509010020947632170075957682202245304204389891547587762435256919735414175604242225389074781727971589509231487281386079721148023165978569869081208066836957008143830224644136873138105602824995897937637511564258965736329545796986650561767652127898060257941933142881967076060231470160862507358712473628924234897183812080995254759034690716836593289793133812617553850578776111290938482967934747502560354939244805237554806020652477932226023745286071577934214757818895056173673774145205048560098992896726343367636196742283955925861704288420106247629701789231987247375507431497106666246317132844804143927428240083224905605597417725651919930312379234639018828560261152066824312582767262782716827404268067626248929928038835637748043643598943430830009745512537643024318170556216369299003835647695567654001602193424223708797921378646147053350222979023167371734816132550150447577999629033754371459199024366258732952202083167309297355887678640838136503184629195113481669061457108784434103641121254927712954939118947271078909376783685084166387105041709721174693887690275608632504406896977711576648797537811003369766259812425762100191882371840089366839175811596498352707970273591291421607076149553643009196160949064929359686800679374603512963794584752432409009885858941527358481985078355775604734825100234307224367075404687963072479214096299770639725648461596907940040111493011174589246869166884674293343404849987038362125611367315197825376644436168088153889539458989679640446084374238461595756532362346113151658036512489943512571266302712528264809877101029079829171114011111943753019905439741793262235451798709778884551184791271455842057745200315990970448020654272593999329156376237870121946967984228225124835893448262873035402443561687733795798195121776047696349924382893695065962541387302265161737118442868628207392367260828039672916932633642694772310874178733216365012046637435508839973103391397544482077662960224834298750545324805833593237408367705493436725068556710041671984732346788829009318855172171274612703600377254742859214169153698381770878622817354028919453986555845199353792050177899389001206618093603292749232909284608108217687866523102720629962604183392415413834969400717303714631870576539556102234909251710714274196349025241329859338138333691153782121125969658306942227511377719969594054342905966132248049012150243858939010068027485950262235366956461778671211658039642529482100773886346533863147097267957607374755188425994322718351214440949973612423950782001337907022376268504999412392551250651176429976421601180520844702706124280322363003324191300858146472796071693570279012128170990432834931514920518333536718940220242212700041255522748987430858759074539133342686996553293708353308942267415846002171295875152722076689035142091923634107319614301757308573312011920600643542006477029540830103284424550432084258650438650849056708834832363175909820981878968383444560656791099176856577314230128925035093611228574940662223486515077211154551138579847056193124801374534311994456214461795209082662547987991921450087809796546928050379300991224377032488546727802549684998086476068006381064443504481751974779290813067096718599932233439081806227758968025927512208448296662134276855013792756293484652232437460621116279510292626318536938827414000156862504188892532918569326170690771595631825784105697342376046748468722262220543478290316892714516856036681254987980372249098546532284775792212139379179106684110782121050632982549626926138772168849391983263034665298254096372500146157124269799784508805514046615466422599132107796173142369783596215029391799081608640073994244994584348539652766600918296042527604867374963195662205882195136744708856788359815220175323851467996018326151734953084405673409979311828563312340939945114016513599226288148875194273886494781468239701919840021825073326205277575704238351344512207441225565918707599057694945208777918100274007169979906337553769338627452368886000080099728070881444895917880535470817159779707901363368564080655753352557522908234451309528036712602241321646120690968518688295239969663361029898452410687292733813985133039377321735350403129827626587270615172321759791908090854868830490121406175408978872024144081404265444550701131843812098799043817161319048196527298462194092690074426304588911826717137919991869849214473275056372879291142149340061405904570572506861473500905596851332705780087375827615269433374292546998443362355723605441537772351981158975320586848855527912489980684243699550884719670053364872907515923199465478197119864397608949119875291160843831378100075732552069493037050361557865697490864926705632667488011062234341462294342844633523076406980101936465870015720937769699234210348430308530504149177904442415731165741338408631761573387014687886256175916799163026059725953159296561173354999604615338435108754967000830798486668436347758075685098880454386216536719164388169154643510871272448460009657398086859754407689670341167614027655892003935586669864116167547723979567255949045095223354255733879459627504036485818668868923637556894041175472936439461779714889575953403533573175811684913673995073887478865931941700036722735423035348744673083735294630610108880111869660814278176189546141806249550743358663228251604262131026705177318398731437056458146495993903976722097755716052720971410836100405794460689368878616775756665474206509001149490218210819018963559254929232785875038044511680994692854649001715748795011910954226745581241415695751587560484295668721452248551611999675669840766559443765846871535450443807996351281841737331332781699423838264969181362190507574448464078849538910966593994064832039168861977630437484216343440731048381808366151270446533813600094217053882664565009378962421351022062926585982888360670789002245544176857694274807965964322607064693398546868147879387692534089895830786860590925404138085531781990030725537461243984232816865074991418881891574533577862971323227949859911162611274350498593434942042798467771542218683691370190072024531380009282720678697446458473090224285736776687601674949550749619373660135946054243748748944905427362206897804684677062947281593038449844403824185703821448597280897168974533099045256616753783587682848287094014837292746159238041672840376706240522566771300676927521489021871749787236313972757842021697019611243086244315343956545076528420993672106272659482276753680403995772515649075190769358628692873212301227115249411853581879590969579580145914556960145863143237186748130741857934181534809304029363903349382872573286024569378291157287213378608090417800317641523592828257227997630918501847610892246080868735118035060411834139600178088441293480346495316450652124368341922416317476705668401324577535214692635250322495260481316111459763011230317394316267583551758713405680598241548032602051996144808411068206278800216711571900602953963920574725562812967491851333856588895405699013666915309509148416426092526413323604377186965848942305780799172539557340544612046115882362928930087240821446898729583008492791359438761306002524728195389787829084644723807497246354827637695090261521905897435271826279953591820690325277167927248606992692423872407714945592611291801552108194120233463793074757618753889617446086992283528417474664467898343582990379617514324708698831220245243374466797066082610467490217387418874583500902943054234142321591588801608342647838490512470363342164901584854441301330712357368676249008331980108213325393039406757870984652563164541495195283810348420610439150942773825145078659942334504833700125922357304426580078911548311849230054762937782089596882748604415847633384488305219148085179076978476937441749326243964073059063954274609112956096085831830896802489105457641181454983000672484785808210211682639703127368094889563204548696957564258091681852776016668557742932873241868092338611380961422203666285544105073495726559323667466714549734629664397719507975247643135563222723631013515495304687788783624425105941578601933066375205127410336322123315277623084870703457466070169120617657941537174493857680753044728015034233135291921432935977460571315850662573422504728310347597622866166102700827120678664684203164912025725797965136397143227665115779953649023998775991531178573588520585531747519277396293733654098955595283106811869500457506023235441057241518209916413807733008014459157689074985446446151256445245784838557307816037686447146402157689741365896647278925800084414520372241043588364362828449085743295333481942919200664442610901617988016635189190390382701077443376369104002836194593170493480974529133461799733239088705543783481600388626649793441166958123197440248769552546763292908665020303850315680099856350548858655382404301850443326349065308396112572549578980271695156671335463402385171729878181442840572734246550013799865002760913153088788221544217801910632778596232136248151166723148178055537965214797815675795152296974879688264893595280833230202095453057238697070891142727873700294085883325698261995174264477304972970951282215634404975236619586203054638378613083386125925104556008402008591756651568159620924674684611480600942518206340498818612586019091181353505413744966570109361536415121933567780889246686688456166734836978033305822735394155578039958341711302698987620420162033305120243822322398963808687215706594538124652873411831934118745533612971400300484443512295025407024622385579704587748130997327731115426207282955897500516626463450176185040402158644403466427583108981445107365727383214905658243007696143348679951127770707614551094859995094601308392533075444809095676743398777296775767505873575469525728501408874317920332989954004002030965861717912719979862020601320558740346549864777253051112143309595230294503446545843543069812618987237265716037812604468353899802629139773389614068325023724528780130763865351213886525687232514000754177436537118297529343250891321925642681000568114739327447889880338112188298108984986453702949663580090944649429230926829413450305407563823580222066486687052901772287651589513952843137572960582461667570842344365631332250973111264062408962647456240479210116248894179963731803055360366024189976660557543886875953271553324262436589182273481342491733766291600519096337084024028429042827372361955902416570070257104082519040293160039113782720679296759252581112833724876872888769315473359979173410311861102862909505687342194001436868741646958258358812270864384747586487692383857220474080544057263318743424439645340406247361063746444010523688585930583782807280986853487781694053327759085102174742631340763964435330088995515565446812938681938871174488046343605425979969285255797672256061326309147379941630499299926406918201360592215700323255186021512840705697823940467413998377424018550752916603301623938165371425621544329541859257482299130532232601185434086148217930822322915804494584592454533143295301658330030662241970673446495711618082069942297733805937154048335185335439526338120023537846261979663547591153217185485611564382141671152070470467504950551029589932347949028614922004510604263317264907791740417974247389798721886670482826756732734732448757245848218328959872361356702676887644581807191771577920633328556838659229646580986785905099177487166928593887273119436134559264308969019357486616285148260409737908603210014040900518945569486821368415022220126664502229723473754425750933399779842681875746062308619522421061287376277681414667456554078008500397721501324906459207688583056730645980386492485673293709475309178108777618727235065028708928292821275800381324965905965843138142387422857415836923662490057445675407149692794501320105257519501658709551367763355542196442358596108970812758776646758370663830058835637022223841417874562520334751288919447863364074368466511142136037936115010052420887345338190844224855813515127471010373856975744975190855608901354409376525673396733326109146962723188499768624293130690727236167949683067466858929717217656148782998062236688215027989449681624543703834484845609826024814331681099238755515643274183444754505798481856528564779178057139435990213605974462149385670079239271933472292914029110357611528645695026732330205720661104794690418632713475372948182178158741791775617315093504572029945291819034876257661956256649010157325810956857702538298767692530184591921085055071658779452901399410427419402896039772844202734833648297454632175731891408189922776169256062994086168079556954738197769551468727626389301208378748185268996071792826145278632328856367178622428861997875748005257497269727005328677321866169320408231638632547589552343340740132584204700002454559898523597211059781152456416099371767468785690113162916514950579936903403747301734931215771020753494189256849355729473554064162649021954386211149744234450785580968922701565202612966208732248441639829097902506075085827805730831365556540253974895866754705198675576522657545402572396985883991801653503482362598379460357309452862477183499000674156409945692578862718442035419595769943853953512012985454813994492919795100977542269774781333988616698009602349636691165214761652412454571107191182069843528027711457140833497151373012543430132220553518120572547850584171752285765253005020108699907552549560266876027571039853659984288967244330812267368931647602341862299382926257640427341611110051219843357736490006196769829107945720293994463786625979532617484571108365063019544069292786576878898052441603404266000610220462358736318491479114660867481742398955561198471728988253442927036696066253943550128354703071591469055011559329875262661409506823437042983119851721242895469480862619616537637322446913564009473388113338204606182145571544072558406824549847540214774376116138955235783767475613257523827664926604953436347440581765315794814748012251356385461115325031563914621616781959490711169046297203963803721761056803579390821983336981682514189041211489128899692804733896505193591491298497263725479957233827774292029496122212287464908236902890546443476471086462660754092914959040760791643582846248637368327770972384774464419904540078296276492303103958170784135033354575516110649923810361333249528032942359081613148776311525205174693562109219890342135309473221606088363587011972985988272125033318123281101991096086920856413250041311901273808746786008495365123698241172158287412206176461939416401663789699235578408787320150515812883257151554629463911886982384559493950825771649782441204289005854698365684806649401950666822612788063562211005168205004477068647889442112106784265207406192489093294569593679262350177675913409702671300715676221180825610459023909065217218617376703815189242826690816523750593227181962751566170714053587157700554292266264723341518464831929638568705609608791849424803413623648737465360080479261173908415799809497775088976056808306941538209416111070929653684063186409561699490468160728986784565764282560347991225559297568292920903354123520905646037457163840327953602065102766060768018673656284293499626391264670587593560193761929965057365202675646530731211514498980615323570278890652586586515443232346896793510205536451620817924418903936501306293435541065691822615244372743230556910376438345264350097775990849381701220621327438474146470395602806509525406328074989944189076796547209302714470167940811004556271612228714939689493810142868038725628592954914928077237809465948336602624650028130190435243580329030898957016479612639874108844639091287826427994966390872590623002289282580395157725959600919162283068712548325678265948200664721696168928819528412621510620674832459963358652494532593169715548341292164330883113828952181364511297436308509839858305543324040052728202234190190651742312124279143120424473569590181017637589095737097793538840849014890239736544635164607689121332345696007518146210893360138052577163087776958374339259299879324755742743598374213845815080405124208903051622022000081039546744509914617252773441078502065366170508466518433190342010343980370039621435143278246977575356238408849959524765639764709200352348851504736293665006534659840397827916923480218303115400825417477462189194548936827636656168046356715723075921715960582595549698948776011514957665126548981143018463446600128268379908644620176360673884732829558891142221446379552071687836610927018791981882406448766282899250005777337563195419055479527808156891754699314770906735005436019876291260149347372710165198865705252696988870569676895526770289058770384686190648892515568153514632617669025812706050950155593219485307462803890065027797104101554917268780485966715592598798726291634412714267559267125487035305821979096574033614768106143514967630162750723545980927439565583922680866379430844351262999297470641645407300344543939068285256802416038114430692084715122787608429253699504580819223158097473418175295590895469676700620950086120346185863774384584168630479859211811351936604433823525954705532752982327164685449814126119874648779642482699736082716876063075803688367469998700438087068796170510155656958164718285433106198451195284838592821888313853428473027980189622969849442049261244078327117188544953469858313268555719862369417037206400786821142315238141023361956587427272636052608567435810639072756347801234344197177483255768017039337509322433419125213560773647490101757972638961187226681930595629480402578083803064913030667633471853465844838855247633054239823572912165507342481379578735908422301283255460069221172484678109298988015005799053486145427371866401510330392874737330011497236049988685496173298229439515196061249022818562643221080088282970552944754013256773966304883639657917904217602798293476202330119630154316998391196306778706455883004328228917082824157020803938027862726138251113604588455946056492298594144057445402838782240437869566890680267236769590125770873602221978015454925469709437066928536613725151574477187631710779629534645106314408438230377619989333257464224591097746854431639472318104106005133128542312436645311199512284926441372242549398030355117732640701020800346325350192779926338926866134874409021170167535408508957379037707295286488424765834118828035420438991737276429739473375134498007102337756314546956603643093242556690594930607594501959450433456858432201927118417989654764706564650392026417148941785533174075223523150542301391932450896384972662681477475372722152638324861016647860721301576371732793658134030285912805533188618056829504981665283243317692461779785771466119237375077275783001273767425851506887623105398490119028120258423388320858687218227269504418671020815541827750847518595388138973020264767114303894333607613808955102948564017421833464084058449205120434789813938842336179581648785083641518146154285026672419008027147885831676603008919862973973980716610382369059854532461186508309970867949439457728319777016445364370896424753246289819743698792148122818567374083539931441344238815600556299243428128687363551071551088947503038869641026699378436575146421171814930684598010703838238543766802587546748101015538532247327064697458606597389504558676836681090621973421453209015018124374856643150840298392905484884308184209362845564449154352415398334557951620037997198331700956475145741010675691868247513631939894646485012720427098964269260113355854092402732818775920295299198841087956684230078134180519578292792018462950691791303668026334063214729042924919942088532344164732538730602686187039180263020827748458019747281437371915086221505089231956644643723399512868776649685911625248157373170509492142903076563829382529349011000113283199022510026729816662652227016490063169454255776738566154369049476072427330792038480492543908948324033665622159274256886614940039232187820615466959716810826117833717974638362740038192080063765063149637906491816939153757848502374140992609642429076760230882078045637795368846516801099529131381494148000507688264186696670243996735142119851898727504032661526846508222997988467990097217583886041439020712746107644257102498752685815804803980279266378787854335462333284273773583776820760646410270473911333122376521565921086083786273875100237646851369182008925072157958726619007087538623670430699886247797548357025863194506609170908678590227328631774864139693876748191045608308658713819323238091126484036315943708779878671855071179042683584442663669848304940328410965777548928450319055108491170967507832450332717801499847227420295864523809454368023952592555331265243663911290661149158070017033273787868445319739649644754004442020631740257226290276245833510683535195619440498139553613641155244288638247844708704291513352729562577545746811709696412812877623928929872683828349173164138453897135120707509802275954890733539755240301099331144307072847322215492422420396263601429821776644723597088506413531338516415307774318842365288340947888035967289803667272380582254397857593640176320927478255071438873944001013100625077552689519106580636845124810197987405713757492755891737080146146534792211771838735569282366451612450141322869713483927878532841564189506584794570058504909188273591966564463884899986137912465209706087766946697243058197297003324281161493142429725982964284789709988203877301049273398823836834356140409482557552394185047241631472024832446823297703497040326969170714149702097954972826101421369844301810146618651971810792670272830290722059910313968857372755617358619684517811368913880593797539158937869568601529367569370166241849617121444951860016356376859387990738361625199713707294038948032786157449922416558759409917090141166881443285224651309312134591106158952243028826321555373385168856799148073535218379641413786876380788069866133722209454129923102605590638939707135129063348638334879498202493840849301971526908658438756001507137835466429492742569801086175357647123012349058995638446862796136446738518345978553443403008322535903737514458693736842552773680874951199391370765361760133307440256004621602475011248608444701290080520309788594105194534928285576739496698197398031487207184043638607204601280863290233099189879635249496405747421323407914149748203831270740842160557629887349505005405194778681474034655025228121982486867060083576887343276447424925320489474536152234603804096286102978034107699684072413235249412080178746454002102660683528015348009815599476693975598937611311054917835144359471227163832530844373306683325832551298298708748433746148928528561839710024132680760656583421579353376478591208762790929947034013395622719368292487825937802054978055241517442637381905176140760948042014096669122181136785222033515442757741093852358422579067022131004963319196783698449624789085431970072582743565830548245156126298489305925285271464778838496985944663584748583062510564440567632800578445176312405816295646959849055288341857126544281235805601034804003656084876830121967268358268870985887853095157737163106910317605379710061686001933820608534521560926682060637761004294962243780176561395992733420343600870258593565117162099968680463145890398585527878445734445139405826439912572303411609756448277734658520565299228122773928647685749346972418688607333842983339317266605623978392045263348475148811265255561702616063681338479263793502768373155907321564180601594798423813958205127574121049180482272209842936982809504696154380700229421692954854028789523901455696786388648870328486375542837335295208013129379190678487037788264090816776019613633686454228277597975689847613270961215784603706657660334708773039053770328658059674278773456246716831324088419253385982790685304708544708750585039985547223800675632296363127590420189358015442610135022531393620718670326513836693469546698047564284667775837690034749278175250661898877362160457235010727017664960020885524847490504346590645031386430054949457757468116571708112641942524947000484276220855068825191605092582386621746490127788768420163510518634521932871409296554182158535962342077002091118749641596851720950154760698181234965594806430492266500372703907651492356002036994555727425678284902154285184274497329672355226480834344127985695238273574319581560285440992289669450261126584225294300710880126710105232226759296791313965702172286384437644641376329139405081190330349404367944844627595040392466029293183989806872721447922257493725945923751655067567387923391967459775190770405550803480084683423073557639017128942812240856375145688817474665090355173175478077319767895673776700914423807804881804937709042398607427087560263671647267635943307289144831932279788126713390236775895997934307621333005138606643796974393703242856462062817015468649014112599067748996678712856114641472470686252293016726503033685492703395046914043182993926922676179649367139719905082601772355087812654994560960656947503416123241476215683925647227006373559799312844451379048241031329246657074725689892148803415797381360501774675069390091108875986315997882922442035498149156441586935242588592949336227089263826724594964593209497085077296190808799542234888460098912270406330085642518914303540762549569923059119790817200052671455275732173306169549864748807897511645897990857005215714648004699839547136519718640886148836771858130388655126034306792832171736301044400465573518190945052181074989596924437451955805070354686313239731410328285251033331683214465691099266950330676355061932437906978109422589356102124677955753336080638259147285760039377344835700360083500976914737341093151011064452703927748858708113344232674146918793947174985229998444845516239921507361052097034158904290539323706061511236776575405598253230119137440885338259033035884797222729900402006713898185880666012851974031709733199996888382945000767335596766611943343477168398140332281996963536439750314436531506284506130477674807943946105440128759596965844228012471664881297243295809391883134394411739429004628055643260673565281231141243086250978871425323445171274058374231899627252177176511970136139745697701841032080740923829261325489368639051210528662499106436502167793052694930088629533359057450942880791368411143398269035129707487209699210029073790031365122937394677830335500814650657959257916651989288793618218741234847468648765922611762722871438723859819364798088476749433422214762792781205895349532389710988954262346316112133550546905102456272442042011433136104540632523652948551492941839058823552221179263590303088557119699269471414816194420095314585960605659799570984518527163884560149741097989157026485725915478460170136063012104848459589444416187641345880316604659071945311410162072945005025414692056104910115153140163924724805037499678443565046640516266039327440430231283429857032233089137831548658426740162587315995728509161715444483492900757844565828603198771366955512136269455098270272002771964829168486100167449369544924310978053216129967733445542850099422740325575259773771729869255102470132864582749832413726053612774144811919178097605328631834010465731338199900769522053053513154473635303438633299624827289121606627269712954910223842597449187105657435294415332120696334103840399067390147877400472375742122856062271945709838486986408501478325641657262869180333236529613927574959155195152838208687522337733957288643798139699863299270008374823026555885421017095370773492556921960162616527505164443029328583241219650115562933673631513640992335059382028939217820043491814906565640293921185923450607715989366688536026587040980191542471129367412218446002688531949092872954003524166931715910033932320458856447869324407255839002555787256517466109890010107905007425994258521722782357680974108274781489576524315082584405450367707868120033218550581466909820052824938082455019031093950102631661126608304761633142885862679431137665775243412417952396621234315313056216015516904125461627129370321850091580509383555943842653898108468803997353525046605345474972095164484136918870579929371355253559878997375290416284548859346013792252222001657908261795163818822050218189725199948635396611945334298371086165311794553846178353958692620184052058614788638043002172757091091649639878607754133236429973581132691483531321111697945268634721339728745795935418184353884371613268607219365247345898273697006710962789306311961267764156630406987760569408554337825455714707802807250722177136640008213640375886101887110259411480436429638604434351941737449216951398888841191562108955757556091709249834470094847178814864636086914818267300538391816615164832560075618992579520096162414723537159360881271504204306988974868121148040897098971159650606930769866339476046973718074856182729284239617100152867174273055366297084434237473044427354825375258134388952717548540934281226155902351025941628534919325003025866025788460860544870382328338196933527887661746509464857785332835113797897352067507258502975925810120497227918999148211549392612495180381779224648021712334473617585293051575123878216384123864892381727335284914339122967980800103593528551348292661850552936805261402708270419055651429182178441533271688788838967494065683088611347790765544206611645739451429266990419888127310124172473245962118729337803658176843198976706184002029457437829606708439006066581740015483600839347051606017396143066187743504687929205328265523506897432883868064478412857527956275066464376524206780269368314266724757205621190117170481952242206035430414714301897055260272619630806017288854398147279582984014390502551102160547254082515462604201956570645550350366574647913658923940731726570674840043095234740192450222190826476098900873392459622638820165391141467229449784258240840142585585229796532340967851332381954378506486597335582666763053860149577165811662584490235447393548391415121953299558977012163750700071438302804118375779438502212387748283239499158917931620088509033220927741277821800359473597431551845273334452505420509226204267335097024808208160910210865151948456308061712668225529773684779877509721680012951471405883459315243362905589243542652128360312711916351915371954415126488801966225926814271447691321036860748195043882426960811202093946487524814803165989446055931799794124602026243082960200037455011404905490624612277910791374097088289383471976322956244187848171019075313178902204366124139448040638400880715224977527795899781668343265931096737577379840577612515368799210301517119221169971990313735791607494908399829567256187226812911213824535977158884942425182278602406225670367932832850262427493653930559608524425034549311106152741881157352991279406129336998269317316292534961724864898314675125844669219409548220319749457980978116454543029160827535865711321977296237783354468027924976188505804634539901799242681824951835520144610582298656413377208876571632860791477195100450695201048250534499504751165853107299667492730892072556555169950535374634983695963069080565352387989807321419133520839547922644335754606339584187477063748806799254025279634797180196050108492426649458656577733480938456744739563476190546708754639918814243183200794662213909512779977979780293844082989482658919799070552510101830193072002582775218334590976088630512482087282431396080988675116393149078174555735964087081728071238763610188453169268450432125036129395152133934250850528620962083241254566445485568167262121045682402889685036152803791286264731011854273105975397957925790013638743970024713455553232767443074825977025593622385552851798253770358566525705801521957111331903015970733721708033429224962389855767523011207085658449659076416871260600071136881971368299011329740634914259501596872996761706293170837817908088424312635205307445216242888904335315088324161210310179650329501596274942143904302989966396996446677649723874694381228608333266317339225022490049938560840077927288795923849890022925584098426308964466646183706213176348338218561268569072022537489077400482745778129199320500590177425011908021291776387464782283938061095715878606239178587954966401050996079129861674036911318851852584526736392041134310309258084435532644681204466355124169722151897680545001076054956470300156918798149612599484759316747900317869907832931158531873399870243807790614666699484735918767287106544141955483668242782032859046830367226370297790042538130874848011427016888191925000663707114223842209033392328419068448465487275204519347544490283676302630780757591093467952723205200311644992898193649451710335671855521894662101710487212341473887784456428816538164092863685344565884747444872308242151882534988895391436084230600331127375562298368398194571081507554483162308568865011684353588451491009610096085438209886835133282968382550269234312222669784702631173540167220391611289568796677825114645156442068092097559350453745112928196284220789036213585812518536393516533704636588140851798250214070240764822121002098008984828273365115408701576260804468263840781439866813971190806621751518445399457608880240741618059192372608852281391210179984492326502792224324984276001020585033416344936364542059012250893727454061769534584595782730183231871651551503616641917919349279823776619707403512669666875250372491065143134944169774594211612079842788916941237446277079918119555503987604466952837927629012451973910142975616438820908242972408346052731971593535831622803830793313465573005759890715967963787761209661058639215574290925229634014028915383135099038920314526330810977098203068176294201106137195816977270764111279705794144643722521183189703619196903095065713569481597101840903291692696666341404595973513192331907542668021097562385289159954335562037794473532029159898695055605901136443725729931111975417344301231107110775282032499331375868122269944834618789540671576628062378208276724346004219663762645579631114511522110366658547348444177547493842522013106607158136884894634747124225636539351928571882291828810695315298047388559034957810562599903940438305157105925742036986583166414504481487799472175503202666192391999825383149052379558962299889897034675689456591053835554013492656882392514083097666913325381158245118242725504600603533700862420834699421970641786094833090766256560252570460242371084809752083008594155414476248226929639467894482096079224449073014380297611146721636403798922723852996642767961933742977337579719961622150902438798529727453871285726044332625643051346373480459015431557912694830070030826722121467193377365521199896488104762339418079818732749868256929500563746427300996856536180545093574153734120046259636017875862932504493749847163973726927845051377971239916932284884886938622164324975798125478295425459296338374696922499820485924310456010348251477847017070143486463813885107624543022707579923284885420820397965333478711835022381314230174544016600866861468742432941823536466815024414568405524425952645998174963017182658435286431607460361678642780999588657095024077587705261351787029177136153258226598327415434863915960131179672898455977142536797198812606808220559463987210428377448699453802987375390315263106989855834323522843213245527016587061906199646962685885874603726964395971768990405866660211394106166938692412720259963122062824297578147044781904949407809248939726181134825463588164697594199979122559425717187906645170339384127385172515869943009163525565387204056076886626118422226806193695676085232539772513383245760679350651210126722636276337545987273575573340694732268772124926049308511291787296109249471937993902417426916289345038261686129951600767293233689744006435504244618249193340314542638487454877967139131352411886591440164999357770016691683241973342022751243055044285770734729244492054340653116289290163825314579297792470595675653779897183475575059495788679937335213942470275448953759746513385619452324478775000389156361072139624110530557024907430458541052194900190697847775252622479727486474792971064169630165990696105638115633497726981635001867995945298596655773404666661463505471387237458522781959312788021323510211969390721391141576996751463351108049196346782939512188089256922600367648105584335054948346883505531475929206421915423898794282484793557623622073639837044328888868161960552620842973310828287871994583277216902469363453573955083500680814379081843611513793603688818966213033724097916717951401342526865376368838489744669366781057489804784676498514370598129806272920806021221568136370284384723441782453942975643307214072496870100417322204577735944817580111373300231582863673801301823532894431102888333742822295823785782859654011019839764949542652449321173695709804780945430442289557272439492783393525887425698530007273737457065374134501753040517255435021711339699061979937241956219218731395913920800657791666471217014061800356668359768187148613480744050468596196316146626350046701162795507361712121975195255923799416239678011803006525081885449544554000499825595734464132346432325341366129776746647547662454995060807808915980664863620250678822093649967029395658357288087208218077351912672819642158474727541884412136693357186532907563586988137945040603442710762696726469213422356212407200177845517256595975094856276749353247959199260116218639060867028144502200598869694521499782465341784770726497321532252751520322257376422052419074632334573997869672665395916341246882432041651813130151036725040503499243760354660596734197289773520942853194440808341561476289634499878084305945746113118447963702203538991377485037483613313490536167693599299020850599882773942987518816774776306423757180709796121384518029794086277052054639109929363570683470875164149770116608641556447715183011985574462556750494381199983696708777054883148331782003395514079246972034421535911681572511886119211726072611053163976859708129131620223592167228918535733038878185435834955138270586214654224795473637423274627158540458849048391484819182840670178619972227951464623452097846475257005350350998247142999741224907770318064897368439531847561823348474642271349950573106377016395998139878158357095919081103461531584700282476697539932400758565231476709039932919269189854716797896417634387176668887031993484222396029404098298303051164544300742426768868632259968265825102221005409762087922963406410770049036548169585664770056393109735407443950543366911162190019716319666839258106724602645430440619431496448773573527220613900922263617291982806091291018052823357881856679268648317165231442675232661186718702766451421846673317136526689116655832585820274061344934313219325871857289596713946914440376140262148562383285481120805094143640635716932636492607756970909522965879570681684855029519616198828384920876588010846492510640243842104318554469709670754873165048783477879114717076018512947936672864085913530010797455835648990995087149689724410900440339363822498677213902904387914244444534445737410301023811859212941781730878804443466755508581584245993232606900251770910528946954724378236554751161078686067961018777166135277185153611367981070836980701269575574276156002506660797813590732044332787528858953802889983465218296312748573029022004569590452425180258994472069231254065282119401370521279830665314979520969247896404161702617118063206942586672366881204135942751782784821384763260355345700211759621461541516104885619760191696788651584817592414288413909366297489886646529438082035399637870592916917992867675946720134456260515989090629519549101132024981433696047074140433783864228768734563509609369302093830983539461196231274345220247132928542198339975366063150241134171384896527827555538413899948448045431894411104018267188654585365317442715100127712373279109950038604926593216464266284051891280686224705697606343454030259891390327578562272128090094346821425089541244815776653154584496619640764946952120040748086813700497702411209790088823716903213700534072364300989860692120452809640797303295917281300897254994596995446218447564524157775301035320328187854992484201167106387521662561306794543082448822815990191643337707709968680016789134341568401755491090164291134989727265706959181235327402577037624214886155773982770769746084892836281825286739784839262852952733348906253422681006172876362644605925801408756812365755361765584230813059426292824512384267290932947535638081827149069013455821059638146983007232667821172428834046879005018991950910110447774293601716540149813760302448391991426366974658229160871070791801854783981454883536318758085878244962580525786108641510787120047705479212146638875741472276286387805604487441366282398718842522456039909761876762192032593212122595017890509713719994374766277774857479595887362409663719107334433584262567803732844833410415586556810536222291373636114498741413997035330780546714059043981636291275879577128263624561204339258576795848967696940696161659465627859978198765353404908864088416912574428262848327869477862031630887211879460472183854803839643510933243426062655277864051287817283885259831061702565156802312122041488612305684679931651509599488381623521092104483232753041748883852672480469356541996472183557945957940766326572633129522735504331385011690614837232895353487112949321094817728415802288841452911605602237571098010425271699517150669641867425439953192881816461467608191591763405726093745147813382469894141400533073098726750011705830977375746145432568185815787142236798782246538203698261554496386893167549037807875686050088847612747473865989918531863345164707059899278912026115445192087687526600408296751381103576452233618348074714673402726233610982929804159170961389917964387847006737962609163209985940204103594448325266444846738101728056364137185238191992780279409852046512376790754452645331498090533516846295827348602242048180288864393834344127295632411029692134392226412042411345172206141462603384338459091635069796536208409013537284892136237910535131695469771573305905462998967778621509590027992648147491407634703522484112788049901851828081741746094866715093881312600150523276690586193385696066165842341844926715004945927751089972720225587596690546153474593602570265199460825911516913198859643067113792329674523228650334431701077047755156261856063295062289707727725264907678394202054852097920933481187915719019304803737572884437156139081638604212551461517411369073253121595597792045495090105369763580190236797752752615373262887626616187222878253298223524637038539677979275607043729505900614684982722593687429060635324699050019268835002183949459154593340102148455400740240650868111115553234887318727873358825594198312113904827197011159408839625290483157926594505442461714426118469309464851018135411195021584262604495671861265309332320031600684852981218582846753446019115412496728246235112257974087568458546810328933145915073933505644135665721832257839807988139450535923956578651478781029843302550362603557555202274352822012582194558301585490476635892913240897244529904957688494627778417031178893888534982206708742889643958996367254991858169247040063534823891181245538232242115462080395821499681750126641280869649286190335126013117676954062452486597661263733803855754377655595666489404091586638512502612798092309801423493465295600263446426110005971581791977206487691089001840909650546428607728911339701421387248741488106869261328645746235021823588941594626604176281759818733168451574226822536884261323524374182350403403387380892086370580854142777857882858917774291218821649177578650821396240471113984651758641261361412416877448538508804063932613936850250704646633737395236486802970477556817446839461792156273885863856770631018605959344068727215638753675381683622457474128866149056515426034977458435651370963772561371448015227054053330831453985805312873377212295193096516242933788149949733874851956748889114307175263171272268283154215616070192656916921281003302320949979542892772834092911642400804326172301143339370676921015223159120323384614589211926456589440414492546649489165279132270045693563750800109510683083941538876271735130418921351384760718306910411300908162850498002354055021921791994015288609439075732065560824878850812185625557546588697242798782576424952475080874643963121529213145241577311676392804483989511648951913828720643843563913397976231675674376227860717787391174032493205353226449967257691117711104354305568889526604518916792126462399319839521298961256153660760716332721775741375893057048953600073921754887833462906496712650376722770646238003868721374478241086387568233576259518325651617845871759616347353246227118907561141091246006075673628957749145430233985041934622433193016460636254665498002095382434933093560987751693845395901985854648661574771713460289255076769286146134560401662781885209739448177601534969863960840438513423091521630190797079052750173658105757786352242106670465079232499436801021973180449850373050983951062019650225564108697289041476436719418907427267524006297375679901778861329210619207402500592807242820387607649422549401739411118802141912618556599080479730524640737236145902126413522129855023155815353195828415611460069606570528862304749324538940973312860797765167154430127918069147272847157319545823149765840332025312246383287208790154067842418690995929873790852938882497580330375822629110809452891107245290360215908376761569385866733031857704145998068116754709122034263599984519424856299549482446046441950990933491743575740008414555221916835739533116210599403473744181102612735460981423801771907469324492976334674718650960067220715596882859189682355832261526192128276537402516493140506178455387547020991570615132117162032125503005440102737364296989884340407405157050170870339828168384547160863146916717929805370599751873004600704910837278619016254369245424220566805955246306120694115176543130548360616329599156093199886392027496429423606910353660712032902621786529009838479727108549756661534199286482145471860089794178766798161525846745031806844219312321443995203708902726153611609654003648372022510829839353963432747427019574292070917151919869403628624388963524408824403135215134285087051372960370713386345730322027416497537711440872113732199891416491890768828306719111910358830890710882752646863368501724361705089027367939604142102464602291655440775418822662695971162105624170673265000427531077636855106865734186419384043915918194153876134564228394429950148520653968190383179376215179073903915088315335073812346327380680935952541459050111903931942898778690995751527929203679549993698606354055791246677229074904287642278737969243284395381634055163353362699018156814589869977813486221897893275823115545756872398449374798669537724882790676383668091342733770006466056897452612300794354656708985961354809127306982338769750174706898001491609357567683566267624330864768193411027638115230510918296442235538578727928578394938743812395839300336477603505062121575942940229257011023697794032996835401502120372721854543525310116490426421991110817812869931691343038112548096492029189474746003602276149703412436938221345269477847277218195871628271110946204900202581748584911234944832294354678584272771216905693038228708638720925868348690532097118005959116284617254586131819679051458333733488395862840267423652285293035520155184002206295147273231626271505134048972388971494304123252441091295976685381339785518125380702151543058939135181639445891684836229864752816410559819092401462350504438911472679816638240837528555026547387745928580155800671124580721732266858543247735223768563448930726906411175553019143666917622491716038718110262321820611137956256969906162216457646265768458938220959364472408079029405538202710425780869113735826109704307440980286812433043898576919741563112270002431547419159165888025395139643940483400787885349037971611241836249779841049994324664143605185454956201156643258147870631444125839813828490825725509755949796579686521074926793118796191376595476652670627635922669581831445754924392073849394334862772353432682122051611535027655009570339351603953043707839736927624638529449228210975428427144924882719181490400809832294122577210068875192464469831915670498360096221061358088838740524926268983772416278530074678955882879128221817368049321337128737094306514302440700440481870366815471184768454530916619194108272932518836381483843191591678173476992807262379251504182147686295322247937298622248503336836125690849445507446313150452340481214011456935537188156375269090938642452645644580243758467754440797183656032838746665153803418059203766032790582703453354296325786615065774888522203440550778148140567470546381272387007429551426847785102422241490493290466869717897270427575527984035933486242873230288768216921360294106072503690653325368227902172680333638279389274072599604945611333879645337739306041488148870387581983798376981190988841580373555617219294384697613878296764526733441254109926178806256609990689603876813567081266100816036781773447912774011622249600252235039234234468012288967313356997265957732152367748484593205743825996809578661803669227813809134082731610694837216011778079045465505856356363774728025422117039394614157115909702778328057300844971392585996907525346798799057627844381244922528850886411510520784893226036358961573371413549542094978536339783365491325019334016495808424717164184919252382913550257015491767592481815643201876387408825496722730712320225667646748834854757201958884830473152952293784427050633716746650631796046479862999598473596913858859166503980743800464555921736641804983417223208251307655804266445793975030433168815001796653096181346177173827460743193239791163244159718702765075772962617422438326371348508120066947037516361150751705292710476990401502811229545663291703610570261810476352919636791829448176183092991977606810215811915990180986681327660551369594312328421512708729326706847768896558084646140168313144138282080122846116931676922775578105499390918175483038576743293095686457957268414239715680748113187131200800429186984399452164441967082864917088451940537379865746312683614349695850107529713496651423047791375619219473298718732728750806992113508860352788501909887284846861678511900616830016745930044590699022244227831510787613518725290273454262133105747551123135321456788577204076404516193286988309466364544835380439569479240065586816741365412962475683392865406607708324861836873031878548772800733125888523828998081666656226724680769944547938871042414962945047770329690843837642731009409277431785761625747390118846896724608878467563171473045103976864329221622701079991780132308133157454532289590955725722189259235982729168950614630455984455697798279942324316374579871965345374488188853642653644433395950914916232409957016776159677708663651070487706436979099035549664090456283267079586960761724215619342900190550532665790147861981899556292307553920622445813396052117361107939825242118449354592005351129422720582348554713712441582881315000109122305643372760370594561040025713522011792065545281472174876160828532820993389736787882836981984877064717724800280301861575619716795984097087264264504133656073382072301392236005357165528518995478885783990476461301228201076463606695409007082783090897131083972623116374450487600067219815543893723592322974869315134792649208657667161233740890381773344400203942175983916040070994674221684735951379266411434974646271870022830366556035209672967656721876793294796251310798878665846211918485749785612681797876847210220506218618421312450477953264874661421154254810082583067082171050137653834828916554729640719986043010022265121784664831164171317916531645210305915905858551179072374185351112245350510097723255953744811379054467649117645610091467653120885835403743716259843437960037277965920239614164354412846485009642384804401646619683569531658829596113839585108419951363228689910289846033022356966594762097889752264002448204310430803101701393497379568481148469470340403751932514460291651276639198221148404204086814539537126999612868132512229248352980286457777628168394904774270961260832526247637271867009822997388630037945108563739741840302174721372732573794246513752329983743907654670381072250778394010758938016645169654754223878409868359116884039802779694762237390813760729850021862464432814654580306982067431295351920712488400606687044211082876825124189872957827504316410177736332645958672124120949613738449300767112874311574845770836987842634626093712492459512959314070239688291891624972189437685985255644836884823871295899856120920664649915767183450363603604334185386415774861342790399451711948767170419476701538090502167307668555557114445230671850512607920271500791332925850786548427387890343728424851297382890674751201956400313458677513559581520857333862961897137359240693998662566805018527251351221732012940506076862102347229687489904667656178819972403833232692313837710690079627748397333688416236872976654424312211419718008815798799052730115427228684269141646881144666426573750614477405135185246978100738658766892033334178531566929976773331169920546183275212880163500372215309707244651621036073128842215400738822333274158868768984263500657262277513341344647823638935183632043432143362280484501594490805983574332229723359097061242664822008893800526174297467644162270594090116539382944896304987881120987115851775677829117209568517026891159381939974535034721979319804528590985150167901247308723873550582823686501463999386483764401621691652268422502590857341918652956797384350633932704482176602505664776719908505824290458318044424235990509246286559350088821863395048899021133737025271548119184543754538814549794623684418760433035084086633918399533915492777071502697035664211007813840299639182373266009490274179319211259329889990259668477679903097321796096531912748028216687887675405182226601190510177998698658632948447053047986958817404802699502463562096464288368037795579931861719097312493559724960463519074580529445822635997735017972717660231531919526936889916534543958827072562392600561554049641340103745358451518910751652927550872677461799393098265960819416651031071621294646626874099440669615667900760092342928504991127833753057997691224116711621120235486752440631785060778544709895318976939984894778095309858862623774182366656054167049074169161979226645315673390025092778405148825414743293310698031323653395214523740314645446501060690689347798297819089927585022392662121644012314287871168414794530701813188988450739557669261683771953296511416877036345143179806895323350788859936173118702564818375825802578043608658399954412420774658606695384709656721300094616560130223187071144754771982638275751581272198162682219767761056920232733601872780889481418213240537603845240413483301592276996536537703855721871182232558593586157667697592737214650930810596158569613444053083266629141268966886280177780290191366457695992328779289715174560445904397099960369426869170377267435276863907796667083148282009641404565860947795095636000019089377723618684446834914931825709019657400894199331144681181608092333700294741161797809776902505311507517783819821373271603219289742146072653061346245581692777790639723947444973754893741632627473500470934826621316379614773000844943262789692588621754873495479979303642419550979772035408096927330374500336783797492193184179570548613370440849848982169222769218082916671152053608931222222108365282481565024799980262226138936263357035589479589129706113902633114765715131479075653694710211467209590843086167770275225484651296243494288722813012096878538948885387927307275015405320948526384868083191501867188715946620428016201663754381821734860339317274271209366330004190186151574179803973110901399400354611628339527521211049902241524391067774530692186083316907619752642230722969783476254243991024056104048686190711388284285295816531535400032727443295254444470904359014272231773767415717650849488139944637796352385195733732487791883597918584519822686501767642326902271572764027812230521818178853146185754170561711132288356242047435411084283692204753223264572918298873211999584791351857332776978818830159174264523734587315374061694390690669403500144852497888025814586609680949817937049657705048602543915536789803735443495898891441289554621138675964212255333463301539630171733114381002954378729040706503153166211872703356175091319008181091417345928974685286636813141568964177136934406297358976421239939216351359609344429569673587306024495721930202719803020424618698184131602129821987327284234831831534251984711749199368805010414403460975176086762547503457303192585955708464677579072135364492387139163831909268058612530659555735528083004869489685322852179166262594207292967001988793422029468275216895082828937061479859826443675321890125385852983533694527608755349523604262533058603459251908871319213951070506714936527959998282441344218087096200683959136002343940818254359271616981954048696284709297727407844576797112984407323532660628056529834120923499867493867196918540031496004681841898931479287667681667312108752007623492693757954206097641469278835077451268797217088309896360228765360317872867392492514375764212996402377590932203511569287198241434031536867522398058646937589780962725236518914293165657995181222637404721310654661120540608773209294155191266656161407247854977534020473580976876566726259688341203229432474701966105569907826415721396987156066167941902686510010659343081383277617396765615634664133422241026483893988230935013108280218700038331465994728885518575877276975574733250477893923855119172929607030790685456199244192977860361168477665443110676257165122982564589720812652699918800571957306511841124384018976795032750057123700138767856208074077227111228632724676547031955933465584765531678096927979409353760871872261964687470907575057797173623627362599538705279347773088849601753951843613815915571536593990942282047719118575085596604312902503438725284979324736353810444530561841011527951404693045470935265011086450018536459267624516465159141693920989407736987702570336072579683533135616838835747018584893555568226592604332320603094225662918137852411355335934505152291742544123833240239013535892416124524351204805239954513519699295207035413456301485317752254621367549276962102208994988422413839291075666081382491316404329180569828468224547979970821235694669983996783625693629515382061280326266316549034416189956056552867849878205491292987807824223468065444636989959585938562156415098951439734830399769017147572506508766032080582021505737019421081854481361180499216196078556733943662511646037264102070241932503038046437331980989536818899402992310727449135178474942527195697450830296558459724603163703460565859645128803923983069593250869751328778471820641508840205206800001685427765525028887883775601853604008031815996415322673505422690672415301178363897581085015417254448485516175329045258957859766389452218571935450686823502467514007324625622156729376863809926316009779370209198121514268688953493832169447449032227313086826592937863458218510295795396629354454814943211385713927823183113423107107432275224502910473219059891719331594177855329089279219197959774230193693988524472850065548932587748153986463550111814197148972352150268284427682221040649237749333076366316770751682037704960460441680335543047290945374598367729524094197979658606284913969631525794449602665299012371882666419608885895546755200620243823246675509565595437119180146910099917032191655272111142594299389150620134854957675753274203431430658642608563158981365386023728289049091614070227222897279832642534293493595296605970187391688676222371611261759833728989696726389959159621216121133192539878126599689445261655513897361768609554291508284492675773608016715513245268298969323744733412093200088481735612321523095346754029006619932378576449202361512659348777662555279820520178765372273901528575655077280526818211729457445488736189301789417846283144856063050765274195476304129919536297386655129952113808512495295391198240223939951088113278117553617292687038476272934189057512576941153417105525905071575719566985761783007859742422069067951751707155861712855993049256390687894003672386197578429631533333055326453950710586973685253719158360636753628425581712715678750672485347482248597375772920265306251761407856447068198516806134131520453425649279827524887735457925735146851345563232833330082246635859186212276146510717342944794849312372376593686360491239636795049097063272772470268586670240036476283840928385278231380878847302943638999089436480657365544506061648362133684032972872740719002728080433006665458817375198549523057147642947834873608522782200060391896630526159772793834622848952603194217516963906779549330301751501629346728081358727129220910592156917071248697646839023220377897914660066736303566153097862117746391880751021641375878732231078230076398658772500584216050387834154057321586491601590511276816556678604979030569848002660102833590479081919509323469279989094197830399746847891878034434172743724107649689663416916583794800650677143236701185796632202380325721990362870906893372858341441656945540245114177615678602373528674129039632414073169245740260093307713235985065553292127963947776256285157219066609038491098027924099842361128028925767203277567528706155241167511111915319041710611926177680645392094595948778990908288279150785187902072161942672546711578062554796022563664024592393621379820060585313802805318492081419426675627726139068345901731925651476983477107393849323148226897822333832859368928083591364712972766817782860751267142146599067962888950451485181937479400177589009356665819530824871198585353030370961304676643756130910238668958162127564726166178289852008077976032661000875621972704595797359842268699572270187714880903949797500372203060349713042177579554473170861730826799854669440580868307703950547300623791335098245774718585339121080461824156007530003204544107169216144420131924198945732818113542323265148431685767763349799846633862711310357056435370830143061525277849064099577995887571086633837393296323292495555452792916725020902059898318115668503623599542920860209162939181703367724194559089872262604727037469449545475831790837782706888256001095682264494626879603650507869412816030834594789201757695838359819761599284333755016299210667614965736461954958185768951322561122267463021196637297055891826098774340657724966471218631980146423804652954415053490634104157191649706971282294476350886473227565599458944161529261215541428129483633495484430345834878836224086798505844645259390172283894678445708117280962486972057848398404644064997005745005478462587194335958852509152204753230240436939719531884019600605017241012600015132658573070968145366107735059299347012439921693649358619315876791113775839319515674283185045045349256527830700536128628682290810905406268508218148243429668599400207954945103427860820359665741136180460960662469505150084245002959933151817231583097368181179968788692956428018494430139925213054285434068688991001489287088791846834457803283473341444106845044649262809848566733421901006744623639701507967784601714915391945139256587193645350109418280023152769917167352560451695955340427058132507780516086425722487903241119653718267725669266140631461686287043405069654309461479123979040977934978693399665218444420007250050300227787628415604253170562857390849999550345054260586685948695737804885606595309131531595596267383189428229973747360377567286364351091037428148510205663704922332445284458799514295940785579255659126569821122797712893155458257239661357368040685329127029359339707780263165581284876698966847322115972801428450119835790801502707038816151277770153428011933183109655596723228696905803383338843328984110554642343114301376019029473441244767536809928882138529483278049944240884307698525159102748166825980292671953256741688908435340650204101786817362914052256541992193131335505218987524737666462867892063358633627461555071002016756279389963971145050920020623480301530016647658510323500526462852144687411524061825574696759013230620500443801190886005130669352465862112414983224738338308227604344243012575618023810085258759918517989093532038556492083605170614376180860828088767280570722709367400237214582436319731756449445683731442456882964518068161715178247424450210251595311559512078485339931931122996196905861856767688560125274756428043314561775597282302938632442459621038451614348429538957115055551569184085599450944208263992402530678686636125373668704389478173687148783738496153831712319517859360521233197119871128720152967056159002111479431212579591530890208132706733771969367285664895903630325045525244815027387860777046021030749834328258980251568457267903994429869588792983115892241563846172334246048693177816466230904600156130229476795581967737304661148884343020011778112755574475282335636167849049748160341682332553055935057428399836772398446093385821066565965768083449480555839321565981721950941305573504111120954069424505760458441258968503232923904212378333964139303086244428585763654995119736933116481581031628438677601210140198804285740343975347417192883663426112529849140874992110535588569259361070810008034079295497566983932667618666771263574499243915405758734320182416058600871162520283278995909688477240924656465918702375359588805394981027129966285838287003507469312599723282010063887980699379379650146308306534456163428189164351083759686172122195408655095643506118549010381388236061462536144099655991594355753606656268414983611392141495260642884197048650612720566254648495227929564529746669440084249512335761878250763901516043488582181000779131770322261671759182971893605136772822966511625111524725513430850278260873026423472807849595248484789317328204884224425109121274318223974365834431932625116013722573632744739503700614655479606655149388824033147733457074987321599195900668780423887818273780189765774085721347710026466783617103370162928997747610707583790604533095296144070153194813318525292069119147252550616670020010381872171916759203347551513875606343889898741091227917226708121781760370803668655425623922485781364200859013768334875546186110255301744938210916198341243514725911957649492408262268012796683848419271620410872783966282903554672033112050093856452014446669324541829671877405906333982028933450133277972395264359676004667631797098504180512967516797176030665532959698697602652529881128342560059509060161952678474721972489326385257872108594417945940990697876906261071111639671254327880466417904844594657240180419343509645035362379566413450703216092623923729598340241939806539650163080235415650709360123409454442972322316245597102000559168440863823889227207336186074246642303053430450162460854006570751298327498029246526663816057767812160385055668886627072078079943031237626852862313180203354590608368256829635221836892423773651126278055528394830452190445070898956510337891488864308628546004975129990507960162937656504188879643676538454797605567058254201362504163883724707041452017088371228845170141261636989284203719747705240722259882744438719311804049246709700770918880355204366968017616638745021740829602096456265629809192729936974997006417236248897902617041858314191805641983260279059324170534220833051499872462785329311542614828689767020420198973486945295522670568616380981755777684274833694644562759024500182176968547200406156267460082465197165329542995650841251867404233126313332273091300646376048472157520384465056610876561119020578081380478884487765413535232809780347691155136805459735680954521973062005956248709011212857650170255843415319595700878155116272312277063657360579627427208535574211706039681338936807068954938680030052766904592456530484218193306793241797457517278468531352129838022669211680607935229982362597669934807726134457104463818740513170431514534029515970081921078216500347519880901071092685777626982007832512237603522230080824912307729335436679196997343408241435742636985690378574168080904626467858268029270549962423509719405696752302056471384830217799379254230288379627546465381001059793638492231149128296757826047667680224044016286146788151455264036630922443452574357468887000300423131230131559623657949467514568409287287154567508887273382112335338680030074109396540776877141308180700397655447825288008428154254969247687880289975123718297388978852883600383581557812121860685898226657987665909351162494594408699156651431519868179940798633171323085167479021254286454277008698980755621032133838951102481720518107245828666847201357576945909464190079072465659468682702907814034228932484801588485029424042228961989414363741134033485255693877805770855218799370925640504746847720686290751298811777269258466843427083059103341300496795880432261291503506748093357617200077758099520587455467266134742505831074245200011292978676887063153580992086617978770154379293315824324765984021143306199398810155348402979622412266399738353786122945260118980195746274735859580731678354611484061613170305585403823453874950422500291336951753765941392581787351230977367501640624359968529413260433680943093617960773362477498322821085422080948436287463906677728846011495132237530712896984040577537739819862937518384869010559583024714468440215118373509798361999754372079334388458446937707070862050514169595929935333358272549111847434401132838340583692616675576198537720992535287076125887059446256756156177123632981866316335973372628755528770723794068018553373769292435507531070523294000999816692394750643381985666828483176421301168024118686120546751113738866179552703447621907664176100244532894019083482484700267773986641633442357561188153789435971209635682630916754997397341087367107123336822261652843092906099614224874972303780624694663391225234130449381349071147700669255396446397502112177290889176428740233988090801471470514439952749422877899751791370971097571343851466682535993366508285819939626820772913479817727371351870943739048529945550635692594868199009681154510185670578728954147555154506528896468936446218552320639011012806710822009537836435107878693725568723986954390121719604378597748239143025861949451838933349911088138816829388006305987329007725277622619534079798573300682123934310721576768766860939503446444517845892819257485190854523823738773649098973682177561972469918121775567153408132909956375505639127007577730474742949166637368644999130398562176519286300598770763124971698450786124872849327095081977414379795235537195100608736049998652085416726063129111333830300906658168956302483486595124901512061816799929961492529170773381015938741995085301882674302365666820668965728322125867820014335588520072038808084887776130271254090700450123571075317281235861423943807858672385482692892973857884316328480589141191129737471275470334205123470506311494102523931062084797455994136699331156059508304922149671221849299232054435480491210902503426989720783493465540041340610087767299246883433455705254872321593245563965256561552484275860942525693951684517532227270674890042625147658516137802407556364704960084818874845385419959940766702129751491704516107895253261889477618808426259488672148293210961988968430039024019827125447848007137123408178835975665184586465889743316649581114727508773570330190545583926871984981237127274529571849362446544952521474004398091558874219143250763528538417011528351866027835009836592244038734652510850331749104333202725481267574187748550019517953967953580029637252769497704776009834107755802338099894881407805490449792579407656301014616614790139592869767705939938965609087528138012861655936700214011763467993359238784923712776193757045791065963261101859979513060960472249334617243588024779088178798271068502766706385847970640962034442898821924543501273828693489144489681988049383648140031194732860444987958325982642544280168693576515263331122860794330122333217730195675910825204753725046816717340634828614924441116300796930954026803123236261836591968146856375840944795664114781894734231282066763975719678591263994074723098699134203903070469325280892387218410772424731792903866059629974167167800184506772235821244933618804671752145072227000974141323547613670388829893113306689026903291687394153888605053175919468294510987222988433944448741524293871718176213280929363204049441377701898070464182194448128794182245728920918479559732166485570907456209470612366614395114666831830398704038232281991067828812882957425588701041642339954220224860648652404178019097898923499284837190685273010010158744349163358132648782727123588483305034377048537669390055478643417549455027356028083058649932516922671934324189760420181748279434588133033927730885066718372221883492298105940381243100967204219795348374377749729869920597223100911839831176179323978229571032459627092847770221540514463640908104770881668644238704441729739438872803277637058533885320566118753915742958833025650601093679076511770315455348342280895555775879344080581399136940823857625019221057985421291804161571321452213687311274093359329914700193260401627431446770082306514197541114801014447651571984220844749577662477388671833989054752722816804931992519726658028299140135356818247327138057129570652653219357202680369442678551690959989218368266993277783289601488367446210415099354043974878757465472178813052551730640431259675425170729722942732859854282713581724478795631089573793922083892395163567764224727815447716274351208706384741310810849209596391865813682478115704052891802599234280323411248593330798460635277161119023611031806765786443388914103313696014539426714531123798168504069256274235293692701712577575686498981266512535914344977231749171833218197459027833132623755860219538538126425321452494749991214345578788046275319875692953103880480433889507934781083331345137468696582373578309555911907394803634551188269338328492336577804018335112096381050278476394142804926023036463249111473302231851430852896755601133555111634370576242224146950430152484180027689152082600224844931341732697819893567493730926164498343734630704167521063221157612082738395614641433341925895821286813708358281397540849083413987632702490103894346424737765968931070014728031687517115274423811546059865174095745213115203218586336899066246520241725722571774601397327829103017034638396977985720742076069281194296795977265307596392265096524937958292159105334840682757980241897816573107916111690265296825462824548512095524552949611372973090749327463161358404887418093014658552560870970216860057407005361069206993949534725920044238968014370002402073975388412238432810886619688205698140617767410944714533353709930456590293367775607471068090922850450818302300541007692190790990310891946897107956287571575280548824392537636936514077387227874556332901293988545369807931448205093898018274757067160991008987117622839227939127749576413457449753668918044991365023252151259575887699222247902741000963385347790117953851377311531054618744353605786331035338091868704961622442013552603937681280963477017400169621708169802440718903977124610549577250684930020165461329292584220613988486684899850534174093120826071844042051037374593169080194088535825122514526533919951722745457091641133533295722421047933106745179951345448656093516020520203957122009632431031021028392502992671496951877211130968966576567217085366745517350571124172600071604582213836366703828170728625793750777122832032421493762432402618843142769771425486138006816210443781302584889466482770031085492763380569304644133694433877334737203462351204131561996379309249602537972130859882413707624627963551941514013773752376676887551637844552518432090920958072768000622290260317054448798686249946586631539510872118039992013993758175613278184627971491350732434036426012341564555966883511830552514637016944178322065966016175518800802859429906226801236916605034471482360015879467239567224682743172001256775206109751189758790266738057868954581656871720824865625156166335514093595003167251155445508917050107689600046515821459013591726470801203460743634015272354013441640293753533020307084902386879941920155581213536822732521496378623695285616131758820262021922594975809091228196156606045714867653810880727279654481019478902152593673868153128916252252127366155592676143982427551607059910048422765212029859557572445535939695137663521274049028498535488562324126555822578911799623274443930320865269671432836783183072118729767261513035412776773361651341259780375340786462329432473824451766606692825767550580837777612918215645278163764015113530020836075397310674389154859841468854434631875038239514421827651656048267401629250764306650753285257324621654115351590088119660569239243553141913452907085323984123791693999720405925956761532340254530465727525701561834218998539573391365826427770879363437563500165358320634661435166765687205484969696818123992838673880944072715231468714464086524097793230839224222996396547044412677550078804861821550343472056987518736537311714911546642679410046127606440402155197596210563724391931174346083521581341745359053849939925940575289418456535787460304229540193046419134389876538155795522039443311768058920259320338078275142435651305368658216155629230054472706019982070843066429960357454764961493394683088277642581617783763889714401410496972551879397008663833079637349469998305868133031659046268608141141646270404099272203731090987137752489032835453667729904527866235949752664296572013861922904636260424392929388046808035400767289831980064875543455686181254361552093502490211200654207816531633768395303900807018451635533483850744030690815693777465732470185778436761947082861359291453468513256342918790168190338816352678671807209096540012651035495515906711804530898391975338086488694928734370700664544602455190277454510060668079030632446172479637613755132544465683919262710908748228824625499476926657205679883494768236700476898973473986160673467984200220724883350196369725825058201524298675850805328060466186750669576006326169476666605739064965428157185091967069734470591127746961600313229442255722638204303699552884788281448108725143567297618287195819495406246502943433684489642052804929037558033912796843834004806175634292680307299530941790572643152479228905899541491794351840622985180250205108131957056974397949413472527094454959223700053255043635112696178953936222869372991629835815157397089400382918691587057480198023669032558684653731095816713292698675606048703797072214023963893098991931406239281771344529729874143567243106071169751293538294776783417634335579066742264191859364636079080307419098163370533717622939804158725008330285074479885239237818959277211211744402304644584730851413216696721280784364432600235520315503796344853434819735525696047918464779750312344999366876033269776417606170028013946486190988926963070074514795738603509533984949575427694731166096923906238760194989843791911996174757783817285074178861431415059732330772806146687114689198211039744578078908415705134788644198334999728510243417658342860085311530734969834410097011362533737871751922961927985677418885119186791823419555296332354998850844369628267966700280917403851804482594378770753392298888577022304773858370637855832905622723974084388902536161798409902241943171800005491492279118910494420047042948712011477014234670409282000310440007107399392488355690204737419286834791850634046616412519046618894056529215257502922737703798534328542149569170178778067803164467508444705723907331588153360184930451531001975219835111368438229492857672748098961922052226959519542137207436330602967463464761916641375032239175690151181313365471458431840057231755658012293862303403104879475173948824908594484436279464725837692349621286815580850162690119506304175628239515085454379475082978254870734073740184361647857253124768092937462273375688604995995520079491332342709579209642876261776524721598028889822220290710989217441547023900273843669260850186029938634551330485469283887055619409636303578362818935616448981814291200480230498623957961997758563259618138178542824505586369208589731105937721525597250881118166361603348467739903505404013308918525133483372834488987196291712146222891514737649766018917433051253393102654991520478626101520916054745538908000738456285834680908614824537673774654829779568465332248339468822247185767349182945735373744567295518827887232045179505782985671645851254112644678623079561808454598543855493327019917032182104225415455875537430033526615551409348078536210400193092260424339444847325266023408014992319572484948112256529974855887485356757890272016305694637043635195489587092031752115383476741915559532253282634968634741983336769343893749046196002360390921084350895635750889124849928718830831926706533113963285814259497600608855334973693506781918614854389964812035273314011463092643672057001415310021186196180178787875836744739826719706605870622395253918633182175085584956241554567724982595855397774311304520589745966645859626792962642897725149682706424651471801557783295874034356341059535701200330975633515954866503693939605477824500740505634955341063456536367211131430529687987115974870624119174147367812465720922848269270167675619390910305092485825186892953404573851709012025078859061669823550691847523436937321115562452424903061340864356995840420198286672723360197938628464917774680697368264256584776099530901912967151572289826248337723905438025874300539353260650859848985799866174691193374526805666907832803131490004689312543163521526488940332497510591432234266561762361895058314299735500690487163165782310886196604384685720208805402730484347510109430473365380074479541609838086762279457006582740104457380052062676524795162680648437395560440943989223592310276719012308921366646076632290908347711872971252202923731857156380500840675350283701685039769848162371095914354490496170090402052828063121009917074642439177272630448089815625449696585712170918070060598857087905504291687335166309280134275068363955324535937469627276245622262606036900408054926110694844074121228343988451536864415209518964069538149184480015737231403897183381300500808062462168520203001247904146215503732075491365380838575915455842555183620440148102258494955147078200879505654454766451654933922402674555418151856753592308956113284439051214725678836377130157424831914923687232532926772099567278546215589454476049106159158418646818929499235523910763294206213690729068346745304119932855018865651077268906010095626131343684270683691944827373385150723022667652349000333396579419282203826134056218717502964597587089077656409174723345453815047356295748723581814621851655321914835328300972435817586674536344597366506988334267189997503506441935952213869064193811969515985400849091795079491444784170584420720307668641044090571609241803765374997918609329722777674418075645306600225518423563727741473098286235695101039829977190604600423135954357173341124018540745029083678970028374563332658936838712081829320324369971496422951249328783816249047397842885123566745338901031195856898365376647569582411631728553825534324133705429201110032549854602108350635193304140494976996577377936702085299415362463630971974946468528773223753921020938931299005999322271636880188883143951571626876998432514480881701300875416252983031216147512250741322455888424699404566650619826712421014962501125159364367283699660910276356717871531250139177169646196211092591702637791130524698366161626323602104176211148067393160606205689325472796977283188956374311406236889605697425867195981260923588442067314795761588884978217674593649642199893916994533366943043653073200327053235370096074615353875667306237413582973963129043653242946129188983474462032779466566837842295490807403532327148064424959551843631538027118890869398655103337743369497687597873407959763284018458820567106829717771552501269126397010405386537069236431398426843527035637222092610941088929483426195082345040840587356177520587724381208313569201528924047345728702203436319040930396163334658968917366671118739676392030480992822327239237158723177404300853054713089833556866514846401369828171705320499293660201830318164247523039313606051353794375014142319027233020561168773575495665107497364327500889765799029545395351175578228457002759579210728373723060041820916417111827287006373748040289775689799019382349435561220804610003114528259959216320982810493819461824498018330854226236296877731081349798669189789465674516761007377918836299565596848728897887746165998667968617334978481338202089101188573862372608838138409746390567149075381334649822602105919631026831006985194992756405428167556355887675241050623154332087117348702614507492752672646599763713971949176804804255530287522773250843703419125361287329133837095436130345705140161630422243138982457544183216326086739933065349020599487502862898766904213558357597198907429480564014617808338144330976050412905449350168676130402518079174324989721545905791295333747778779936299450773560524491492503894918441190666732681238214140942022652564205717142342688002604283731267913406347863310563649123354792101897421336330146585570063226757033342313437037897705784837439233899884045108637218671562750160924752286891477950561218731219395306057756738354713503873041344870483892246404939056346391667703051809948015472874058415188230221804684364363831814164333546200517765274238431139280391921364966990481474493999966687840106586064005794295953758846185926857419016667872338236813182583139296986901082168838796061501671533100661575692227139636060456494378551482479077929480663704222590372447125079904536578655483653583810766500477123582939981601470367240886952725206399872099755451547111701697696065415763723295877404688754617456936857708638531262151897951502435700785786387005196245961699476641023007416041813044874097474669371034590886329134066722548847270834485506036329090130343793699278263352964670433968161172454253230115683148316648803754729955044076310498485679876517349284512288937261323860436684328235108741561633162026088831692108560170897622470027293102921921129307601187349751535214840572682822296253085703059420422460283475878016567842018397178738605655122444344779295174793119550990053029589851313328582148042449458002612329337488461206522114596577088718700873324658420662759114392285777654947436747172698246704528574367455184143502244406080533688800379923897137762854011581651697440689770034978154878374426263400144974565201459497284845643381567922742559088223778103509174203628948761958293089814200338286905604012140467961784887136890452945524826052886593652491775523086069001229742041056703958511053813778097078172477435629087979215400612938561325406442645480357959270690861162839915171203548107540187406133046457229124771564870110569422475246141796234351268998402342170624859849926913646568491285755594614349099573725984092635903364165977922940811621445005900799804864331029378148932539725606076285361284939435382628080768884895872679355770441438088898660267302548476968139758492479176762860454712293240707342319415561995378144350170403093710482316856718032803683553312822691587727429621099988704349930870427637333005762519917290564646084690494159130654099057882325135250890618943727623247122435307196722741638761192561738597897438148550971533090490971813127327604331625294887703969508886339584909494572768186605637208203488874373429332119248107008487911750367400007236897406902029835326817898102983477880181831341788014883447349283845447095722069498908480868200289678101780524490181770445034887106969229833378255628531562804408797131568517782641065416668627991513138734397974185532660116640471889543185968353310050746006164052860237916708821138162435263257215337976924555590555707272020630649994462164973990631773209324572047234824875944552305340176738429187637645176459142693292837584945367370253891725598607875170306720168710997385163288942228489831784448677904946634582856212882582751789483144237782673142432271219629541802355363985445146980480807540904129026190439087587232981196699111524008722645215792469827907297160488956031477453301836242920195183696551448951724416483936148746749255259354007714709797050379810477510331379278628828276383118992831809379594087978330501605701784769876766333785521693909121780921349625734525317263994303568287941600600974198353442709232822495945943196585612345382156397678138196923034623362235454433335015882693509141866914564654334243227288197230738164598186636114054778782817712814071062308909200572773848012668353012353386608460295896464374271551820735653111232513718245128101129906304975404414511771433288080898447235632663875869084386225267615273275965465945332714627586522493581037224499478491255885305223687452803009825247136133609373006679200677514598758908568674847454306120838789988275107437865739964261892968536559891159965767170860605812577697258137361437072388494993090812906962231316099049193519616756202655505948492359381415879940259791931558990646542986276583366358029403914200489535727206051291886239036081595584951167297644315588854568501250546772992213701862937715713417604350575035223558080767177687003377665571450925201916593831261274974216618679368032743745461861869243444751982328892547675762375258890838611978983797619635368253308288023587470613914825105837074689384386550193681201358898025129555595860681257105293950403264803628685274128689182100652522601105963055082574173441343794408251618804413290042118136834619335109075717626105048220009750097617662971762176801920807981881456421346457665000775128992288244452824752288850006843081091751157877770524303012849609675120777192723066992805109174665860971017411961230516404741701448814385379243162515796925938779201995749970435447034097626694917588415956285732640028315548136018148403358983311895267824431436174135806077146689324647740775366076314409695470613883649908188719856536844425510307629912225790394706592514404042528025462128991788797605118195520290007668767330846860720027203388959939063925307852625161277519453170902190582648060128712034954525053962733965337138164457297483623595712998529546712323346629559507089494917890080903162685713449824659557127617106719185802990623383902052022106480707642778133126062675363963850949822565651902902877790493263203977709581978877057615951177638615240173356249525346367242554419865511336773309521765501640737495950080449171867168225891249080995777701447909273761124467118328776423430996838785898966799587954117511559793275029885041096180780225132221499221609529434515836143993482739722604391064925989234860259017140763567428766541625359832847196483551770977059272010591568522219277443437834690076293122026536867097896999942177352002784998206455391092956372490877781347931737208312576450577884172185101475701489296036556052385796001308548004614704553627581647685994030417664663154879330982927936256542433177072584240084425084478554396678866528943005723608674138884909278183526078802466432418369515713053216263132512175320752095718964022605300891424560854352575471179098815719363822944787376835560904471972649866897538158042679568618395993608077913343704541801260308858406200539539344447541095001573916497176811385534310945363032182618091564990286597045892001206852885423202906962870341743157293036414432612615159701503644841784032968245245189098439405443321186345258847811743916823711820301394551259477065690137163914628692485665666929941101187648716937716199721295563534477263616439011692538752768790426780989932497552403204087673493614500361362630237018330347003758471074176750105948738611735109761750133053359141613104371661172478615383618875332756682237828444196790959575509903261999240683126111379135498407100710636449666022276766709778784100658582581322489533319886258251170340870652790770748158691176781188795048468123231798643867807141200535403690641436133910920501296964448715105646147181867375590992848081802848893893283817459555339365436002399903565759019120840523519077607588481743933556943386598311116305059735062608171675786218710804525431892078022689230351149176789675496642848125356583324098150937772654293184586582616315664964397984067176308018737866519218957320524176545383645268731276507204200226411330313708268817126730284575115600813334577403726796851041017053506652399656756753863230608171861482564446973404992022204690496574205500484724403076297818842719040912620311112827389167464894775951868373869788503830427441708254479419032024097939816339455311999064329465734744769983597651344005435164609693078285593866833499037885626035583048114915310584138109443368900522422321091629720742918789278806280471418350806660845839378036838960458169204843068524964814952646164159761748905921649998289804552353802550219962069538396582244060850437413154482300082386857843113066066197067293400517307988917054424457108449143313899145463994453581687824317072702120366202530697260303265174052172199671797695270937881101486262806352112529249823565013786806291219464777733134479693530131758158914908852626132419392101465669656068751453602459538478675414002434937916298869915024769554359274456238882793860727121400605413607632808012144910969729289274501563624775737155051422328629460901170897215322206600396903987161383948473584888700871817383984615514305516956280521070124584935667768368980443657230453471245223557117618783648742949716215499008262642329782143601242835015932749521280218379807599533896832851081045312316928664205985909978275631242370148739362669109244511093916598248640702619332595479914799100436736943313946835123890631610839634629769454168708839729349530952969380488622935967868686796685403362119836406524289042717010382664412863675188852241058600525026320901623758248468167584035283819585942208925414047431982599411704192046391746378517386520869305956731567086706573928475818940424620615634160655432710886686914958078489778060748034805534657235133491680966311488444335476664242891142581367332478337443180900589261868871705899034038978068638080987980451290924173690888169744162811476739991371514589788903853193749584984260420828990731377361984514744334665237085258575399500823565608514561007233769964159913382742817842411879903361572256582222232264210682728573692313128501168569204019616131639493634842745779005813711241547461581520420322504945800736272800801455870222388668113745239691575632822582700811454753716396959493982503520508322420026021478133228559005927864525712117086020273545106932661724126212481106796448927335115874612017590446375873779313568611103988064253895825746144043602932673588512441411875408673940985282343239533351359639387240173449592791328957501952458176905672861708473768867180795703617983649965061731548328991614184094749535000698646521984900927339734031081774702418465154878671040432589380313138122217452677481696688356284457806719842580139609680743196446330039183700966974376298217796724998563669504503880423595145054745243647944053996140430000455192021957045063118012355439388468745718162172963553356451762820557190242345917277368463049287606197590246369436105417033206754282515096205172073929471004217984878775362425565300757148586902187055842949212951904890050151606862605242832742772036410220022873616062475386197238324663458708314194677456767726952525931945344126251558621032974326599683140276470481230676458910842800988710862167405463734487825482477101640790532528796812972327525942437832182775283804371997846882051766599241243116144473906575285817746571198250729581688416807365388140502613604970265917187239838740251912329003525304442095382978153067487532922458467691759915367182071913951202961604559099326034060597462439715369911691242911370390886407233405998972203692739707543385110506723251015458864348670360703624686445832455059667190408892360724218410416258378278066280961753721312797664857832079804670194021483595305029006953880453408740858074066586692450383875134333987918755900229819761219296752369268271149029968457207470192970488729780879114246775785493408997362755737617672389726931877105859776119947190136174344914833395593839504754886697789178969290906506218423349056932634631897683242670107654419712248212400531204171493339642028641346483225297401095266646786348784612911346590210409264887282721403748002830967425089314958557679516180645137803738788239193343423745044011181999208744897139337492906542119859929431392175680657357490804671920944736618358255306627701400373640658455631252943739534702121401643845487962145239130173113279031293898747455368969561522937617096369915098678235954343998897346419192150806591428374174300430897149797941187989674494095404047743132716838008609360817394104237101813192261986972591124647479472065209092238096790126810848091437201117486779089260056926796265047127655074464893894204611898731612983737519671493880029896279413021799692123761515586915041603625763775180987264292466149092782727954504940953108532802849520627738814243901445661723478705263794210642817890986707785523870692539158864643747806072395707100390632887682233603878619105541714491672730642160044868053893926020230285684116823136523759872535461265249865889756780787269604300533205536266377534266328391276862270020046800645443928420334692562093202989453263384228259516061105644054868026657872206702575394055410276113896007907929874931946198392141305914624502552427040088184041789229676408100736307805752373830225711170931053535802879916394612182789392965304000372527232345290769479894739513833725484737373188607023257310898611358864591671801752594460706193515251379959353149497629660980652916465845758322868597591558663759079970876426221401445141212917424744094135450059655012627151213160816366042030349051899955333478994245542928537247121565747369340083702043770373482831763348052274041314829302174175819733289776878977967172313681835230411075218324555644209675561090923675567803767622398585227702529087063674421988277052710307081180917196234781623833186355360228205043712921509102141563401953031180911202329858722831588249018601854208162762667990378154464898560309780226462449492865132431901779568471756399269377272714995662918637378510130082036735476486408195873482740339446548260275379622676305777256356373856414476763226419448691945875782565957856616340971911325998412561170514609194161576353059664487466135131774507325366781280862889146319359964681995359067915311092805869986820054698827163270274032383731855604852399189409346890489563766261142615981257662469481943716736947443244356071461951948510483750205669202746063570174712894062787585741216203942759846347802107013421506037538926453658329928057458675778038765994048134535263560870086896069838272562434473738805418085302409031709592637789589316536590010505695977812988516515973509206138726652770506702993290343906049853585851320054155655946557007385537864861745984753051932906362832133919645158720010394780227386489275145660779018845796218000072775604602211780515556553924605218328314280452483576307414225141892240643455889401675553519001841960822205790496169337043588985877802495086071036832164961343069909942790280308726644288579009709600933398459942905144237707641158517932624791407465677084056255753142125298924808723746272096684532929490131942531689950997008446538144673267707536476510091138208765384425539571404556505627411868397590429672871139444205526667168859918341939950863707412090978521063254332907806540459980587015949056107678576869431243844827721840070501032475588553609152720398250122095785893665185516343615411257314430768397560488463948547570016895920892978051998493096668942415724798974660823091235027681249498031626120407458830194626250014460474736251948634608299306363497509085879057546243616228528049110877003224526054297838012441537535868813734410071309749853791574382140159818650404059201609856071489928618208047919156393310765618894026367693246167172528528594013296832931409974997968516586600589480620739517709050039969335131788776037121903559286530866356864844815819076585723513846409358538202776139889081779118407445855590701442922483138164077944582166845517539780294673968432040596375254659896654129256151860169741429752666291326542500828104154132405107386073141346500378406308011564556289176771758563639597150386345219701950010475586983532688647025711568267945003742513683694375205003160104512620504970847141802094811507593513590173905179716567817775319051643775524099393709788589144606087462716501984577379153309839839866161330107289683116753596034535804006844346659675080413801201267070025032180250227589805553169170456505975813146680752370113798917591696206269620810809706660434204485636438071131902472791019934530227516871279902643482743804226856269114843133549225757081431476262075287579493039406396641244983952308682604367724782301863576655342001067064785442017611065207490059708959610319764696071192237425959479391990926819638036516541309535811064669693767749408538556372976434796665822848002168756116665458960424936685022849823643687755464446835178314398510018569932730692717753560822987764894028215117517269094650285571026323026645672786385469509733707080315833807391469624862360292566743926673762850670542652667840072221711272613368021708645895458875182904586609010190090940670770079260406924709945203575468634497227907950446654977798890779507816559884552398391689646831039707710802211456285933080591427962060115108220231146530459662450514873071331918322711391859139979653698467418488528753729829623344983659654099382411636561002591668915102676678443918250717078590386169212504933724917864913454716282945773413580877039919117094947997194421220719943632805372342141024692504012522139636492905085066535473452539806379914107114553050661081423499275457694529668483504584317938500310346999770775740405349014256852581846537932079580636230420487844853347620264881726755157640585071501760963219014041181855188583040530628687284093325975420994438621896427031097644077490527705067671832736394984651085910341585207278053161973287020244486815997848004410235021005803246530650443032163445716396426196419869412461157560204566851960944817761678229137407379398891744550858402899459988389232385001524495628954370421536084360401864239458918755144864724417522581093483840849181928034225509935371925376991988872193945690939014189817388514460848611401968948737263869935384589430849051615410764125182640043928778504910416863046126782507963186740085699867910428216192731564468796299433963139671323225005734725491935455524113774894280448814659684149905272747026697783421751769402620434883835868091108705096154621953993097593928604302785962272294821815638228170928729559301247744220103506278972752090299379023979141341636603358153096970409011074539784054158666027567994639343187869638208438414656269184565059613767136210639494682549545220879417984401764354158880159147149057197565044280905860092325261199180560463943345753775042742013870261452358545772747723263049877601456829889175500009806228587329156415565188831125632615739105613431258823508543336782506873306715960715467894011287766563015521495440802649801893841526705298589935147019760341808443759346696633610739469483799263286778697877186032032990244636321620657487696026923121481047099576596001336586094527384470547943078866646494539192411898668789649200018270593915113093051276693052779518005187185784220503457172438805732402521000660790737592784424880655988359173991634311591411228846514497079617976722451502454452578898753213646368490666195476372839456660806637942198489286748060491582625259885033651795623677050069386572151798536098573730763839767655537791676117431002158448612780372811598113066227100497963752493345502326946895449697274586941450430950875259838987177369089845754461568568428321693977264263764822579816809033674051382068163057649996612374318664985040158735069032261068091496900350523501131915791440527644621416096258119031690935952879489109228553512504276477677741273119094512812662516441313869193501082251647991355790141841942204981728100901158155047987469602461698088324367869453292086032879944816475647619899600743302959953553220052728565840735386494615684569589795379640465199407385698732344494647183921028623237104339287838443333695224664976124060574067711154667016790380521909267764412356745848443597746890909896063658005922619550545422986330208437512646770903879707809207696561649653618074374786184328738019321018332991999047927246482966262363874030110037796661620970685644402119215387186851080338568950221580524935167163200030967532761383616897780589995429885844435722837559893301649453529191584876250171216030424887124553832763213463934972304800066202924027920594287260692967396446311377925869385985583069038541026965059728908271021179766374357981314095865580971496886247150987618612993854050059260522306979173223671117899340184624988529010569141808137654288742754180279018555052739825896950823722396207710645412365802092166114404502549620052228298678810432817849602386559165127372401193467120521845173919268044510719011868380084170614974715381306409636272341020790447786902468130707048638359965468230269653524425916763362180396154295066351990265915181814846056554568198997830278697973580133092731107223232912918828793767979294520368581428683694597126974559368290892772661845427213966957350805410589531691220078276342349507789256238576603148939894415084456087658068393265975748001942813742451176346065382181179223594037575176039337382026499297138216763794556609666406993037269984579215467444954328797761823591970367889536601575485129641460985385637902319903501891400640669692531839324432830374266136486425720968376875789700619640851404273839695469023785704671445700392547571974875817308778480154412245169768435461451008780129114564203632226754428675981797600458722144236404265055999323430857676244292870528056309729944123502249107351321836638690977107362773788711027969871367263688865577920794002514595039399518441936038239348265200172696016906112905403629511870881129263735746218884025357231042329201211302169660298253613015581337247689791135777491732620510181541036091492360467626348589611426641019032547867494316014673094912475551115647910731405235692917080538838153658134645597477333170229528317226086153052350667283238853294893559841213259096959935691850999356843989731068253069802054521754325780968797260631272139188787026932802097266316931773824764220026806903677818092235491621323091368198056868825120814814476944971316652368329054272768543991150914375619831457944378267637582023919867168278891415016403528787175856034956814895903749716449366064627622331552564591337085506439314426672962482591227909643450514737277038711508537619701512114818365062096892515523821523783752717511037799961040191075535488478643410770683999087680750347392040194108582532708206533172505900437985976420257166643541573055232647578003858716250480670899058425596692592911112694844240791767195909633363326734656585199614000125748257757209967008137221531990054036612393391931503544616364188339292222487393617945702735060397347328717734123348312555841987671001150287212485706261884254980147021312492358132832369541552807821661072760005905113369561775812894385342556592024612286100478792428919200071082461954368593773674770021593405329706476180677849802423643533679966930020494350310106140293753633767213783397277645320562025119077925125337898568138095224387831361798292263518690648748675980673535090390802189218451549673925554482956571116797198376326764178947023258898423462139896032373415183691762116784402447113493581379160520428661744983155401370896324526455125734823032205819732467844654609885052723990101107414253536919657306303916299045434617442026159819938434250262383191615106527746063348872521617314013823104284478783439328255934132354474020345157632306458736865411136672054972422469101026477826827817488002641464925172127011433739867788463466546569384938892169757003319848042468762602857639572200953017214625379290798557884405923701042044188447410996555083080787828121237871341016845804805716397533723554309119016891888668966659909842223373073658723056698383854304092161604501860774689381748349866398365474625126077621200079067177297544047759097778072823332035222269728410397482188176718275383008575036158990354313947899531066664436696029703626639539923397825969381663940932793693846080739811691486799482596371386044198847111986158568049110745253573114079247874577794384261715141296941831204939115442710871134319167425231043412360311217698211316081728377668879560790288400137658682225555924417219969581204399801169214595438421341927102272034356803103432272485298501335015709722397619058598767193688113707586631975179121827685478716252946162946491236405538008461387708143945286887243825665980708089220008962640808510295746193276190236058839354617598896019694813086570360651645751293619634291328558576735576237679298985490403396952098073647842473651671797470498447296572026141411097024372965222846413324429676404448830802580288134409937164908928929927391193623648046123961146359630753179119670987566771609099547400676442206379465493133418819916045049818526026289879518720540576650994232094912462467736546730210731794846734178160121779303924625632754343414631885926055927191756850346809120153354032233970110064386582525393649063967673787959021702459079412153904090499429815835706222779005036387739960679440431522368101546329188343654249417269803963792390645512913838584323350137396607246007766557279397896601641648414160902188957131733529930690992307942527249580691930512032979398108596503688965730489592576523874365448111635008851119656553164737511873225322087400008123900179485071747218947971278052814926238453562202155253150365338594451438349599603033315172987340705886165285205435744576411220219815895024911958960915273988982521713223329563374452176599186000670038384880372099841255971295008275860054221523282641979752612621088627399773012482754600749154471838710340221998698108665527651709382973211222649689026343776813434159427355189079071600104439442882664641559816424028849575444354306169267988298950610896949361144016829403338037372518183704786707710350350523015541483369462489566618076834814444218106826453718102221305311652145602110512802435338123481252989659800391992630545307230867845084687725256542964458285550907456042372796557179203198182577737535413811096827813182525089237550371440000981414570793048937201994290476499453517471849530799394999262070203540232484253760972221236677957614324063415358595218630242733301730536215729302376828216096442378963700975062392496785211852362036121412067188723972033700332641287949485651105264002120662212640230687114322034728662529564760035430451505342568970180360737217846698964483743008170002871457560153767076332806994844567150064805699531639145197822057998354193189814346468116865167785960608048322958271416701331487465954831465729400663638384327007879852203924716273308488179980872961507824386603459080448390204064350203459705197546853791867119456893889774602313820211445319351834556412214015916026045601676659234765254028590138277457313464255240287471280682747407041480872056978460130957228199172924140173038018167581978129670682490392558064530262438824552439591175946616703964833520752726886671488824584443906370496718957089047675811410463142250457123199137817121889036038065860380332908523688780271088964520668299346355448692056265498758662761592254511392052059499826785823758874224595280727369523401894184197943878625012694828540545490907199389661030612039042222153776919756143736528293023912822033906781359160937321929126376766989865199897087688876059785616457657652128448413520633476957813346514344763480325972376917179022536570134738265641171670649832232902188117557587365227232938607854531399589837741068975142508139893700934551190141728925958454242172435340140081383352225531159859063620123323234664706231411591869133891985404206935876230777424033684891316635971062596626253146174620762323363679550718763291169412384175062844905000413694482259363924559290264641929834999508269502790722081715948895684894049446858779666362500821165416053070544310487607469794896433123447934195176617957272108590690677780812310058081606440973624557432843433225007370571495200578867760933186829054045665684459614275630942243575950828868471253185620303701538915245542802341318056108929400494851253758128787265211184971066414453983047171166768351133525371770381215958435448432989857584916068445220767121485185306320446420354802637598920928527796745882374767272805792617325056415029652445276163389832504105710984319130656437279251734792344201018595185578015358960474444361763394505443901382317754458435946674404822949289537494920997325020693362034970446550676089184864289048922288779848195315758876287908262270962399630999044708521897227910456020812621062467125423662347238036477488360893659062684113104061633325359695917217866937389451885483263808281500888474517928582192490769201372797963931270576388778926428850749850948835137528287553879697808378202024801693433290840840642901288703655390470855034571870174275767164928494971659681274633467442783370272090558444164656620876031226514494987382883904571210046798946021356915331730857863939300267944143198342052776644574469375706947456798782379234973401645071912131887795775566330445510596749266218776255759425749476706895606680319399674160581111256340540172615061177853429292654060873401023631309444764503216125153816293244023315997668696676423603099099714392224754988136138482787578401067375833463077106811035345353340092474723317084114255872449242457748508238215166862017720356568612866506485939111996388578097000007196534275814609563576891811819297623439410087340736582830210861571503378753752780577455075830691077539594216601545952477258710427835404118811245057213039170935442915877889251623652729606490451700507892736369549936711485193942896175918870034670837840826223592955690915267759835669314844498292554403496662137548812214904443435926861781899242488997498592542470860745007183812135490025919153190314434416564502093575181581829663612357405490509571787628737725105067152505670682759277465066182090991478130652895630769478613766510843984840963716615804309293469418808900975326202340812689665546121865626857419368731164658917183773061063539732363721048890550795338738768733611709501988215686648078103039829320159471624391068097952283631387406798035232291633397930916523764002599520944250222769328137182960894097026832914359538029852217992716494575747881554499883700649793132045190552492689561751168768598588512716998450183274217144112157578895551370976420827565733812102116480168573704588265487409628119665546724695577339192188736862910739361184944999292849580330332895938890380854454693512449406495884757877512384073571874893111790362268772527928920670280401172103842994886432188990112836718413568180229012768812889262418424263870514536187379011892814849598170881862057471849483559245132814825459398141684295005461622137447000492834964674492292207851623176067628960462706478946059660216623876103575435548986159176989363216298243324488344840468116317531265809586517883716503797316814146926848883950024136939017429981247267003154429129650526187683419640100400615324535505464514354827758663784479060430397003712502144070158701858504099175064910744837434067222547945168707520562965540932768343305993082914751568253112901826380627808996552439966522258849468930532530099435406725649206549068292951330276560167676517306691505887038760747621745267280562513416685575131543799863718777335849247507802433491589318221537349812425576369908105403505625638931569908736623457179087476010724672563027002196508650387618215503752426662994461977929490499346591829515354402860836048278562615468982800971327013157083323503033971765343814580283553817411490027025244793543054577070315262781729278789944608333747300186787853797693684705841871404191603516838352109567461241744656948536753852614906565651285317068743697381597673006094007997037609790471900543425801516736568897176390797841460305341690040455240884063422106560506672985410371049721597479508431298001823932577403550643047466790997358563480863099305004081241743747855073306628919999326491221744820862363065203051904616949069632612902209611938933703153494790908894932394097532914758073649901286472601570237007736432314937105100914150877900039638509849797299257020414381747597734835511819094893418676998311979091117616769183198135784624653538020831483584477686551809961496494050280320378320113950800932706510879337485478142504606212561095064424389664876994948843471615176062335649132833002813878085195546541781255459904493321198356011942557575973058580092282356784955514717562973538212752469755923742900090903476949399130186274119455489457417432910764460657819256465841364607732641971050881903533982926296658594894673373435867381201577877172420677377531724665879890563648817064869771192033826396796449754414245569936111765986610849182470476852689085623074122013763708342849045835792460380466853488279258582328232964399589088119615598376677482043200693365168356725271377206897800674772139729223525762560299499947470950917547106384134656463398841685760292784116219863494678032747468558065605295898314192105254826285664153538532464608602253565594179268205927854324427304903578704809138962986979848379302866512763410179973958018077600921322383288625592821639403150448641333799189176616597847963979107737287602317837876533199416175402614622984001325572828721537128481144976577811011921419422518123515632798547279775825177003453127889976959208738615228323929283621405668219144390590294886623859589260894015398486993641714826234388204796002858918930231812165677297609606605582672186652629268485497654559589939964903875667208795483751369491836813594945017204216833516390013552200603670056129514972648803452804856322485764395748682434351735227313032759022412932982343431528591130486871917334753130905693470813527419807304100696223721461140015918604102714439481594460269654836780053619501154098809402619977857878387409319627939008439739364010148591860837563432779006941277635176876016526809959186358112143882867153139282051689971801956330178296541908832572537019884570177361190861935002195346747429669188810083607544047544000786081903632978516917752080696262677975757004879458207678213091926163657068631176509972581324398996591278023198924733229313755026723545108957081161156896817551338379459568706836367873401939524805248476889027072156731819064925884050826745398166361297899300372959600651627009279306197109212034372955679849727770616149032228204325234840512837137350747409929617822079805749573873260111365212331292677640151859432615596902114758225249147216663489788963776919470000830374459610226872964580313714946695122165768633907324727508019327995750532749395926351063907081260617600355603963729199667680461737484154079454826910277302451857166557296342365030408925832314508433761720412207838852521398412971025236200191637780028084363661014604361436089148522628421487661071985296537309044369483178225588359899944723336593574804951162759775208473982702799569599972096346700378498642004603859237848412668612463434039550109071062950911217064215340113280514708002755648055367971395546891325180625996488346204779914039575291948510124035161606546865660398938150714110716490547187958302636710337455421562831091071168127699811578777910502181143007776393233111544116179300425791623492011458488517355297018759460815573956876159899206951332856026078414117734081243813862320635435241480057819079695771050460952814513552001780537142084024578412921084304272248955245190689216183879531160059596786898605403196503106973313628417530464489195030708770493083759817124617976271321813191924288815959562701123975016669574502245159104686780637207092314891048185373146475512666273501005646483674311507162516730250934576980068416475273563608562328412129501051105516762586058263563621402101164353740259430796426125064583158626412142349173199659758553555878209287142728390618225402336239628955573362682179399993237604858248988590976193176917287917685665439035354432681750096299579992186070252066332934505341551501805317409002156726403536803104351060211472160144390944451318930751074127248197371753525898999651086847950054245976906692567298655121236639855675458259732144747926984726422803545680575040138068107735436324282957911823353492929117802329107075448989290457287242126337568353618787674618229763202605355891671371865915659868908148887533963622229992401983052535170896579587343934384845092370807809005526496623693765742557737652315293257819797166569732193526557283949444604323904797648968193973233687704873428974461367624929184916112442039369563335015323281555796824978516018360212503720772137626998290587818704239806653644276771005114494847306769325760837993738461875816867460592642798606569761216366866400104578484334903883478689262628240983977486897532561768073280186991530001853550926318325419748960200939932431797358784228375428739529310383988366651750723919724876717194474308671962219104787259662088929251939743934375608186922584717862517540854404437728407298284184561657725425462005578609284769949114743079235885365697462753532939924472979200046145748548592743880412590027201007619996294474664338833798947955573884838057169584258424057542192704245269139482482384467435695825686648061484752704700248885163237863676933214775923157735426137601465327047258562435406226523267819202938274552150551307773850368137334137578335813631632780802885760138221767863925630444012710941301112572714234801485460197850704950411145139304340878408881045461796874787080759414069977954647494922960715521568920555809009691449480968635390035947379651073823300225281438690642070606891290822764100931197881569344693443239955541485845467102022886671555472765130804545521687417048150083879935058251766158189994986519262718440029042837320922309605360352438690038797972792775109203849226825958455396083889055449198734949531789419368651116801215540530529347754960255544576446752906425989073877461289804993357174273100828152368010742412197208464564759196953026324768888166310327776735082230161211043762515546258915743922078423806224415214904747446346807817514525629090934119701869261638523041001693811248832579075469604737444684103625390970243851480327526262604048140015841294428917312336200596628052664421697131487874282089992108027774925651013703539333262200729704058211213471039119944112973935372965644472438400370608508507150166094240258944152358854773513391987220623504684345577902816392410166665217903128540474820782399152463890291545998018985552815197681325630500981512832224131083560542084237752747261430538231163100763466805602360200131142591481881751352525842728680979342001254139351355058683233108297329572713573514621498766827106745255116089156098985961219140502393919197238439954469747515295340133637107484077267126775858039221882761705199549359234420280778828816457306724848756128258580285355193229241194682148266907300168084353422692807690656183950171175041592492739176655842587617291470693005613071837586279229746032831859721943620211925844530340535537529305923519481895278484219497374928169487235892266967645652115201413773321609155136218439650891618417091058179605300055079440264919097828905397476163282822002053263114230138351811726783071723719989320587215177315384166343135261894438135279340475145620584082037112621465563507875310766017367748491577433407449868805402705972269245147653178445851072899217456510930952951039586302088552087436122587081840007800881067500215334312343082108683350264298053117926669810895560592275947290071133747846252560860076771275363760651203490983313156594231844528452963001273312570252643805827937589552629586778976727275260894309885449600202958840118156587089604271093977469185980769456240962454999004548252315494200895257350336732062961381502353741082376572941537039389858126476029635718976733557567733833829618317421710997219498786244230761598061235979937628252491574474349325936901277440099609486102330581061371837096940002414465007858629503815065785433068668475254811634539055499208295844725630688223342606114894204987185635403483252341416154264186977590781148193830820206820911271264254717499301548204806271072649866800675600399331045602937495839202348661761994751561585799805203090309078719651464640170955980938125736132310805661931569185712940546794179090762834803149354735196548191727232428512826649254739855739525610218209122565293446597246824846527619110048190384098614230975870213534371175906415126764002086283830299351259655016367307272796442357020392441224821498420565647970189681214612722491797922525728082901544809596566113200408066255876451041320190666608035171994250127482323946513391308126207661813231379173272232502883995166649463675751239337928764640854466995534379108098982224499800938845640825584981917638191878465220086571679204901041907027126700159581757822472943060348274628100585653270538061126266128522039144012729852555676524124031983593419223546179646030765575435389303330026565808302584738289694102277246416684097815942102657982591463646624836188342367926098437600846511738482747406581651844504801690005306858534383811551322274885478421945244040653264560290045660599722079076346614146664352175406481266810049111108481046299656226135165347710256196101970339651662378097125798604008519614835009962346040491952353316280320179631933271431899403604625448608490605138711211887798215388932500928179411894470090788343804911706769300166994438157443545921313228901550321776394188663728600977761265214921961895065030848837270458643613780634600458615157237619778875853098554539704430280692852961021252443512216868989839758266481271725621336087637330853605011624666960731324347665307570393462936125546205475022531329091097697020226362096191155413707637992135620044188605809716263595354716978482327592123690760888077980349514090092231181909056599850634302657114293617498621474175010497054718342230059856321156816123969118857884794330389456272979999897482732499807383896460803583661637198913212721466694514588441743150989483247814439959751204548767042613260211232289768866467920457264393214962411100678596007752796962475324373435827761424557172462011193906305714323811869791504468216618581561634977797439694427935190535865821220199058594074343189196534002561403371812914489734046453701480774109061389170628584847743146505689067942664830469414401735639981984634168039656996102932326983537830309368395447461161148945844645412658935873903596465050581533162066197142809296896356367538759762611619286313576570467587031774289137604691437108135801314156522294060009153908756909774258346957611125998385445277051568280432632514320869942956530271925304095283997503416360545863366326941410223943025071397859103511757047937991554069050344977251784750368790483161982741928409887196266446792553378887408711146579105637022462625598046441538373423830705670713677514917513642395608724430318018430444053489114630631094985472749058247854811929878090365036970244881973894896393589504399752712694793045526993171006844307535150744088206308401558374433571875679830522225648871974516340567196049472584047525437358636913810395134964191274998610714719018446858457902056457330074387509572472112602662192146867173754044023397164626529661029133442384765305268408986465674368219047517601164035042496511578886781481903876867416982676274451802329436360888223914450562430619707482805636684178890446839757059376814322818307915368415977770103810956724446401939851891943062129839157671191145837708034827731538670535558543886526709953369478965301469456893438537086914031205843034629722755775158977110420552134901289608155776036221564096198663038458297052344315076912750385494915983895358018329312087560204473611184425651818027091160547840425865605617573365967369780780798320863639159024946987636740278418969598950228929228838211122397799744142564710362675847898515055209297843981390191246555208443670312977397283274327497728596082597108388749414699065151526814133725365569789739621354863672235103023864198338477456584165972860380050414666491134610401040885210396434601697556988725255835585074313855309600394762083865495478879192732440090106315252337254209899081208055167921786720679407246960452648551799901899382414230371096805106380367732020852220489031060348029409951190271889621330210165718488982264787440784570014182379979008613482858133653441991381303938672893380430896617566548845184978387024989683460822782784584145604789454434070394814458522800153719529728884996441936812270449878458857373826032266273041100987924500600336074765889858163136092523709667693367052057588193818382931757496144090405366786326616087835873051270297631509246916704912880099677976406171563323249917647873956412150309825995233110966935454395453695166180586796328520885297678611935054512089455625020103085261700731281655551065613532572027313941938494669245716884084268084190938964234520435269952685065304644007294231085329411200946532529487694465586502414976647962550153296198310265011442247683071719053131683503517245625756697925849911759259853067237456305180891040042566556595694952192252030610170321564000783292320995339009668660998680842332222617208508214244864033490033584514764649527626184491681713596364172644980981171282037568190623329891695766223679776569872091552883540040759645653265278580150063924728395968029185233152656231465361333567518274172704584122849481685287453423005713107332881607212193464667227136730836901181620637842262603068602112279174587784766845841841512760031932420092743713382565201597620868042911156228111870262781056461661123083154486162842268077938555183188186031453070692357858417457247307694385232186656094328669072898382470626130474138561621183011050348075875475647338375137568999538177844841442513967662231785980354132357348856770412037759833923609071456174614809702336900049287311915000772394894081718127015743996177702257377287090318068923876667220978742342777230476758177995415768213673884845649615860134190682762535318657594755652129777195451602779452505929744749959910366066931815926672518247462384828126633037455087752262681697159931564883181280392480660376857567111226323093485897077173362985952075201524804542167060945086045442430271783855551104296868748142839241556779098734358128586977084876459451098531654186666421161521520861366302858182806744534480607660727101356710689950338255098856423615651718493356487524158568039841433987581925392260752310693594497818983202217529358214686604106763560444458078711956607168303373804756604930996202976500098007946354339825805815203270473656440983811208412794561251524022067916119135480414066426064861136443927361317558673472174975009780680196795371354628302332482079586602242759265883038229757680449303808182574647071131326266628591278284389986351720619546158272573357022245583828881745568181861620145669833561344158481693541852026718115549053797747699843344296399637650219650970936736665116175568097773444625539080789000420515046375179355272333677356295684613202070172943300290882906111391366997097090259676101057820642149468453560312314864692656034516937413487772731287023782510979732902450488811981952823415772348720335300149876494071787993492214171592868941854303314659828259057918031205522760958760792649602769749379106339317820009406750151240158345477356966775191049730976150512637230588583769286979157292064388797093631118064308500002252611809727394850478349953544691840162928555455559521028702715935930001128654319367304074655203611705630323271123848742777887466001133883814304224854426178434854298818811470208637928785375310979577307444519468351901283093453005111287546747138869100383760618740626726014839384528761277822335849928482825212887509115320913083510491631456268645358419282377107814841598840267811590178629081203403688578336794605757861940456154304081715395697461577751350322003430447791382442416707310353437411498543262580830488016888553134944809451889172402789184869007735191568118749362049396091028006011088943781636627627379975086786034732219552367702405340402536201651261638481295533125709028672879429816431632074927903052049663102561272636109595432180638965092663959274182466297706102938508142616120853170898485692727956657026648900345189938976964924152500455022961400737169352737359003181326449421722614495849128170580835180167968619752736275654669206793848826477599722989288432453681391041952842561562219694767325494322931148651159185818798248352439751807228891642530481511887045814509884990040273118330604742706354242408692642421995205073632459010277012083081640724937083715390547876637790541960254778406192712659846099511161293985968042457874542203477197490365931766245195232681895375943525019100759509265828621407805587367443154399143428542230230180397803729402815916285285340461318179027487617168502076763442181620304880461847224198349568944454177214987944643045182117881480050825488326296719463599996656988981037074364263546225511307851964381779487062274650209874529168638758859433183606941267235541749415007702269663277949745579514990170468790000909327078356276343920651934220686653730326461089308284202546508950190080480325053375327862972028159786862275405256290599316120521339697948674964123238478328369708595813680809820543015396626365228774385182999238104278708717905188336123348403766405355735746672546660552148264224397485336503591731498438644217144722557281161592535750030790827850121000760455799694674382069134031089078283979573092393040889749448359665403081318308918141438923006584150891213198095444725209724042940169630743126987442822740629744657169043012017077728545903643596812758066460510210483717197572000819722521314299757461497638665222465366601346018131537466018826831954698403888171584525639777185509848530624528747025356747376787904682998706236030725553487051308799821498102421835837515402554840840802535054427953427854570920676980366512636070514740637966493358462197953309232278099731323540518724274148962813036286229579184853555518422165528553745068500662364828934762180073844328143693894403813294166906560634784590745746971956020726249745375997640407726220220263709599896095076892425071178332224843188042604968364784741672209953418692475438766387631967578940333519765850404663558480486284734302493851874146390124604559631566613876952798914577331447754627556523708700840795190625475224972075138235914583287722952341474746244316860061814818017394248497541208512471243105658588196680549258133098923450353409895494245333641211109966076531361956255853690013272634008785048855465137701363905624819329892569163789477375286984960114424425825640478988940325329518411053349459996662137281866505682872409516589367597093318047175416330932219793136312507278249752882705340926861804212172072448999205379934189099524600071161541168052699664396507018474296291624142467798404355189673116520104043821445371334062062464602252682564495069079037957718078774426562529931926287822670395991888604124091768195369227475230404443925033497600775635964053011364972701532044254987841714205600328089316403143972639828460799546832775498780447585335364767915955653646670703143394996825555556317324666778615027988119884541987486380640715350400586887654598359015483909590197291191188123955994500584927794845669351688521210864078292360344012817339503664206951480260848863792274407188756904087287432255936529244103493499663341810918463338384152046568746845490883864790128009746930521564182601204549393476802781494632957139753582456767240817852586606607926413401217446464608642339045152628566589216142173496534860946931490693478574175502053900427281775773355150784110273692215568694596161148808669654338401114591686520051289648361642623749681749176214829649327587511516204668055056182019249167051413382240039153159287532505724876199824815907439317006278427079537606261886048213638636787096826423518855024313063605717613883471045013437139954946803640683786823770532090551596691867996525188951935703260940103101383627720977988079823607532976785441890906039364120748459515616509299731091503642996978095249413213828177289614880164036308420970280115076172807372807033274961379491296131836904090599154061638036172480869336175556790218691133559031090700763761787938578289036776458713810179864927595467909137464229653852864038496281616299141768932000229507444090175506239581643324438523639398583011938656084462795525961656573186057637796050300074269751178614963041795972344939747377358228113352627406686815650565108577665699032144998539257396702908426121131730693209898236666381913205677046803031616197314181347974841720908949911711012250455731303795188032553962987580704536000566617139576649389989962235651376527994161031298750289667093496697521260409881169337996726773922680440319892491391940093251567147637352899220898563814124190047374992471162473654288534368345746904183290660568803670669534456016651131022395456254872770444964911540801568270926185861493616828725516798556477276041595709972063395697187004669339422367083505588219710817739039584965309826630126955280140368825390675018521021718359817462027825643014866195202657285884164019457916732070004840811185611764389778325802740974845798209511279721729403302738693634903746751389220129827097354583942305815280653182309650348791331594408123186636328274742672617274477301295525071844941525605854995950193532457226136955378722410555946179587103849061610888583774618192128571820655682977167311597642160559111780642997220197476279125965756277059387754052460448723075767685299224487627433641490129429093871612071531644226456011261490049970217226899008844989400889506027162514303143138740027728509556850365611198378222820597603269847205047965729835478962220279540208967741480180239577125474854656372127241194800087002517768330144087662883897133416642246893596546927977873175166466546316914874496140442713283005543583055012948165610322150519695020295687691528820304546736807996730914025981367871761048283174625303542691500813097427174883848783580976700264724424089418687803986577251626365010301849138402566251467227343014991390072584670404203442821385492066310316805939834879941191928302831223363320624798160131851745784686223265357908943075146838303529964779050549146595473395728609801646880377830735746192366995194118343995765120917856685102592394613310639258720355921813119113651560325391187570857899449725280759999426399905049683567762040974931159866557934038942615973444134687739937684733919520969410956081798025629622463469111377036370727460582037979868057343595467381534986428332867974775298920194179687342535197435043940584109350358474421115578533829625467494236080571847852671299461450267213195883251281658650761083922090335987755431272729572056389516533341701761675091509023982627317998377477589361303011830627004219169801148955720784240674391941597221293073442519808762566314841291699431270001793391623455458701024438184518674814282282037472277794576134096153898400699845949008446313996597397563243958245248998463563834911917960823370408229450718600125943501733604256209459991819447390472143611331807794578376361420297150556384161082202422163558531203213390263842622057617154405903897365681408268265850447069402823933400272934556567210150907222242659191192763911643334117905382062082763484362875688596249409250006926092612388733820849936486593568648049961996775442675859910873235573421946290478222545570825411369940266776000460353175477580979087047795956009868604710686767002841384468973454843510367926025663431819586062726234236391302587099709511306770464402526142130081257407525363259901458494225131052232105395772597895068736968095447632440923534289924998380350738444214710582513846465762770986752046089690219162317713395077016227998150159054625978442187722042569818332150735488663328571152833832617095513428168885312870388769527821977273546777268043455032770713806021456653728654245692843503532596097654404721792992425715347616879205289596970848140465794104872932301010774450543810916758989174792575842281785597989898815745222465292864395392558666453142890614218075361423637744290925208766312444375481823846328303750587511298125938445621741771766847420281080470262102616608320856058501424755368140506342220765181816701747879354114538840997610019781132465984556231340208818677004022791842733757184789114960923267219461158546410182052415564811049825910113568354096685458250814930100974978586138668569590354831838655416069690758848672765204261733315512009293172379085831551604109176470292075352819702637103608600467114710841732619564356388000540392418932655309531176054819120688577490768444836692096902992933538207938738577763916407399828353485379107575909257363523878564401875006463126836700220311058522970438965975780634013152420024136700002548782054230073608737176098243105244812254700357579157371075912198279995387311118727205493662766242437831783103362494548783555444844137494683586296558285717035148428258050595765993187839721878236853205933782869749424346496377488088285665745008615555130269163687459087543087776790542009602509421368730687390847784587817017050930079411024857398200103547250964740060790155839010933993426442777643355107115320463130277631217119164775679915387172245086262548436918414535208165879670338106788289514751475611268941903983143146936717062163284874525448419397456441384373802495801294280585353469594681997707225173408983334167264244138805845193353771981700491549698931408259842385948437841513262523769455964409923924413480575338878984422331566156025270553961154841110929541113449202103345594355724103760549094504936664492283465705099420204184871370061930449981990345137255978816705322811000606149852785923122437405586967282390383307248844559702788918068446228138744176848569603815719883177425743779608212054085283774813449526481492265496949324431036209768758512814761794009065627807702142014051063435776475939382232769823747101456896049534845301428634158915179275558102983151689451270149873203554502726936746814055536703934366709826912903502822190052112309717100556152530737885726262755555831055428842227566063272488525303444753883869141983792043743444229923756212219042003237344213803079417726378676260145889715385683969226758319994984872061916671511395748799134090646384987725623650006581356669900663888747268175696527678992748590675245543315080299256937980463949753066548557934575508911184908950018445309346312967030638367971462277966406079843785242175415981297176215402503986643996441137221945578154764686845018977723747334718635715335523591012397787586853371990143836922869817074668811684322161316686224437448963901060953662220071501976191871677268973436133073810895721045835960764547348463844255048908084842264224302156378504555040968063112886529083313916025111971254531594807754956555973366379500480579342787996634400569745502578342238503020646118066106572900665623446920248586058937989240982461795622837682424545707966303366461326800150163271066368254329351046178661130481565718765992930842627980754158238348453674295684890155517670170634870404447839096737896425570590234649437037982235317125602876382247492581943552612085105574738713517284554431359223342955641520926111920660550030133882848381876833632472970836162757397457912435601197234736053024091405163266091791927577750256327791533728961685623901079389078521039210698651769654162549912714257223480883269322250211128363017436045196575489974889881171644981189943321363118415234682362472104245794144217896497241574133829790951875352193343382606926303168182546860149027444043833219303239231056694310430642646509535533879544419400123587820940221423394506262590179894493908310837317327210435559420635607858423390418992866867601718673459554283479886050685578435194494451868576183739376334536277366404328452282617217368781787306317567718324675977988607129181922785967062946319215014054847917055754762770125319138755348210147608222975912927091391271152512576128816417819280894926418025744561610973958469036643945847968975876766425239882555113043830228689867132335674414569009345574922039963652507600317599739482321927218996104965734724066107041158209230889712532105535201632098210651232199166654572808436623763666258295211945700793208598624877647243981115126435047606507450602484967708221198679805264082424120509826726205666026541769687499111477324596268544562258581050689540858056651202746188095393093041768824754632502834831311468744299908781722022760821642606348072201501204018071492434005662815472263773054196294740913632966702957998346556000858771533395831083430730010714332236571803551235383730735638553335483749881486187767492670900826762595109897407288249475486436581830675663765725469317438327563139349979203462519357794917986757035633547678447696895976519877048397372401078291492879558539161840435912585120333681722491374411239551314209468249598575043229265461482861545987843197859573512451293287577714766848046391008580615768189090282167372144926119257011409714324436101201203921318613773484103699473047902444539577431814438745019440043314761396513414215523428147524237248717961463771639130123933701213041562046206939773121702360998574143389698436616961699515002162713255711281493163507938484275113796267422642474617361386512186952995769767094178613222577346596686105396251857104297715628852793010566932561405448939669122944582164675792428681462890729425651812492928440000809252036408928762643748113094374432747269233520899579386554222358417124548113458782999832970198950859242495588645291979740973185209754768400313377456066062888296372654435750845161100163479611437040830645516991152402251345533031579265651676814039330070515090151141170019549557325199364147620511479863832702524733506775113337483695299497894784209491785918715201459011248439867124531146760650311953709640574343036456782469880190541526343329563290870198515262589856402945677723624110622321291971947238625865278343323039485072292650777747565916234888888262909318405656538654731296508482048965725027338050649724015255275789728880351514240127693312436968722558821367456243799233497786851810907591890206677702702674339602962264880678171500627441881477058942007225084107502249963943467389298768241191427890666237912892585273359783324824965336336150513810699298277632356035013547895798018485835468985970568447349472412853750187364753816313992234792571785755100206622713220736673838431912903379458604044634732990346119947927993576125287930720773357858748624182028305291659555805807941894385098681814410992331630639739036899470693150077099679023835965888322586978070546818523169687126677191674507399275720067061003397193962272277325964557558406651017576423679059851568004283262750861707569277264081891558502727333004248738883252687293327022721713724175146727577481369015072723152897864955522346176796681251065526440238778639382536794695626243741341034104668746742979153689359977256144799980026720929260339865605853153427912088482460420622680573975632343005504359176714877682479731910343316123954146506812038203224725303061259072034838674909129844645414196681226816241928071757800780842358074483976806913751390339622205808261708783490915134055786248290873974481099547491904097150555771230094349255975676946808146737141078224919123787290121748555537850722951586129676479021816344639207904380440046164132911117083027995847417285217741845265995262470266977598088936506191741341203234999557192573094480920134687675919856921629565786514460802095396724573190382962838627269452416721211685830384676106645149886514798784419262504125204342791076440707072036655808928306854023834533604997769573295943917686244704089909684703517148339981649159740197556446385392911176503570093902610801696572240837009684845421891325037438882597221074249534339701716381402236305396366920642971157673516173805942718757014500249481458767164487180991666022659580774616543802852994161322907157621975349461672150265997857895681695714214370003420584094667810802993152768419128161375171229272167908521659033747089545917325198715833630450132373505659291328917717522833259997033473709857264111009017674476009067499420065669588463437127084427536248747697574928125110524658657715011642482553853535179406500041638591757920152036404978410604429019689349619515313007066247510299299509887869169887550050758543247492153595776771583570643070791709787568807982662577766558521659590525027029815079214606361103846521447002638803313086897465339601223193236852191813232132450358647357654335019128441921621182382508271548260856291983446077955163908069072007015491229023320528249529516633706481595989576490491589653565115994149160100076224536838020448097828614563768849559063209878032274326394991574115058969834203514620554597963936134144294164690137492808920857325258853764844776600798555864873556138433872988067052313415887509331744199955791084570664769488902489372780831466450849383921607963314439537711754544377989532144368680560435738704380062398978271953320082853096697913317966346115097462259319893729628741853039435034450072274351185748892974693373347218304568586043084780950749066652708488578639529485613258615502655807368210523494763536501377630171068572073055655998966953809232534643600566043441882292729767906271820056684275279220455312464024164516570723420769473376724719781857437929589195303221935596677806097194988725442111720697725267091723575342536460779327080072764058617126856570907715251886401605081407388410069121454686151465449311830497259482139910129331249058695702356075219434656327315844763159100084099932480523867792334297442529392062596720786097319896431922929579203193442950476119790046374921784618052893395489511762145512907149815609613825265335973263470037160470694397289465183392033169684530470407148961771420588941001454930284287918611502252484884101051676862518605230238793450516253558563991025944724530375441181040740105371558919725789999694936490043869167039542697523838216852158130598266527653762551011913920519264049314487312703245699174825641606635141256858692055157955687366996296264536155723258566344469685256896825821853022081423363973890349839192347848632287420585262485553600414093364929446913600630284845422859929058732665931789423684529248345572812313009089544080217730609637000975967247096790769184956068912285070839856252510338988849236427564249865578078727961266508651752406524694464302976239426554526611167952883566902844334740946702159492082391782211756768353777909844673195166445884367538740717662903925607058663175436714271203060768750273902959166580605487561991687360275644403337270573296880399149969405511997887247100160544267744658017332294602963759856548509926244827457551115033893290159473578099401598645988502224790155126859566212975058447149538382807429220985172257730512666744324135669744670857764385272869828526311378604697790799794757686664585230157953901002906732346894608699908963850425530123215816047172836621101786180081444655079281272364995991145589278480373903720599683428031089855503577541251358931530566961179270466864269000045690276340570350515055880200057342950175537060039704407341278556860144346639195306126996503747098902704855103500581577292987030795658683070629218709655466465774436627876638767564537754262667785635857231311776372264950871681237401605842398952573016284926142369382561233271207093351045862030756583583787605962478434988726532486722458545314700297221272606791404574257322795103405222538740625944754757772569267200849937102907679121024822477010893806143355430532603952642471833717627312873644950655422085826379645849703792943673716984634970565545518891935874428870097789366129171490153164314730358894665641248222315905437194753752469403698004281889983206115744403140794912759541862062622415695744570375630712487535758627567164870057645835865595839582282733854752085445459410920417309925809455913981601213693269758190588135085867599755220103003881697576325160708887966759463557500669488058945095366222557574278356992282675149155140601694957200347195294936960711124769062952217473167182314392688915771276316467491053445377384845088351482054972446017040362937055115719258626501544822661207871239362708593541085968382479910713826209579150535889100874943277938853310117358104974200835289875776239406975026165787453173267252623991846040396989215444708412456236403075636573969356373209314402920772242319905975285378782181651052440007852438869435569275242542642915685538160029223171071209741304710923345198805505960372322505618134407332136605615562840895337765217062866942519182355182644310243366655124723653137980114616136441022096406797448155673561367277178815041268734266837801290167422210630820075170791947125840737373910771706787051922489342055559420202753987349230223262700905011984562541193433803288967882629351915483656602789281486909324855229865956997855006356040207560208897334939962093298591413521923479995288664790849221335208060210277094948917001453887178624641219887639407020626888910788408885655428598050755808081472067055523995064978985090158992996907058243549434724645523592950064370818925638243394705630047984307706353058369949033689058061286339313867138299478504799470218021700535902113110733654364328220111874921505043254250891635586169218431081939654073902986019735837310314891910222226834520895322384774384566158052619348141852848069455108994225067896120783503659959243512022089719692864104869081126394948501546114846810424405601964799511183688710793460033267766000783695228075647316408267987111483340726012937241996179497566421041331370445377194033410154183666851494457516573331734758054935805627451911460196122465472304944365526747618654935554246603002558880515807249803098960004016153839984649360095830065819877839925845925387195829025994996591018507734619025479058427813477671417906589696130434517825502765349495097108558983057718420741153747814544342660329523502959390665241632714131438591761368522593202668380479114000730556541875503412128984280388410246560527605274226082613185942687652820941729465361172814146179027682832853571972312246486841817760164573333124841117361208080058073846202806787212039319997064724152421856492309212959526809594936945358747140617810243701316810810487068739604987671297111308679080912475909410529729492964680981332296861570072666759887411895087099283839109534363061445485979580031452498859645224528001360828107010756151678930247493870197342098608885397984750073313613666473540240367355524154262175151792188195491225811232676368471600375692752207099588495368259496288363685150565559617045979465347324491282304779202392716521681061700840369323198706978189627238823155970327317646604700709358969499208695821097652008940139233560484910480504967482784264704056449924251307089418548043709083220803147432636722952544248013131939351656546466825475160272757460754859716938614453829636621172766094588359185807331029110911435373409964809964875438719278163171175850687026500097002116867494086754041797818996720458388680771288033956946819128832420217951190759786423045311574227299620896729846236487280993549375876245052343179032357328466014315558539520207737839310772740586975545367144806796280581676778106691444270973675309490086762645673732896635106172984642146607979587894889015631227032925072153313646121958534588221985178768493048690505124841315694950569164532644638319825243242195122776755103103312250060936604356653572035845773655695934275643424254576986881263663773217588486885565629075315981569269641118123657995456821226367161911436589075841526980202075380258046138651218806032342886002225913472647112590956883759785762549373322882274439369651038638246146311772957393834606307562349953350342876055693710561741627224305464023861861915307480523413955227895591399324056530457532484069111313512172655196055414551790636991556977182068450323789640785716576142043442319185512695467277915766444399295246024486318863001686160523817095476529858521301891708761479348361093308394069724142460404996187633660478188810152169021191241882839954507133361181536445160912305823714874329739874276218339354694008523012741175169925726837867888859121757026996885545352304906509038929493959521190398314827791628706534704738588052844815622894050844176960405784878972714340761362192111428668294682236710052464934629471583815008801676613549443776797510149185307946226759121131793558434538161822806956219961044401649398745874764735757812527415002621242458641891011745277746015240869951273205602776727345942790377827609621176218898021507352663944511120851106412943394422123717034165453704666324460279246601420128444013624324614160034903379713592815628298343794143166038322690070771395173275079331950505624282808107551176499519005961384602787377181067285278141086612509808514092614582267623115051221759905877062942728246817012169752127688416618429226520189009989768449825309686306618065561517589037350389030428202626318021100466013897008285018528964519230940784312400296055463390637123824133305173976286680412447963696310988328779925757307876351285547936967381504577510212053192751322536406547243364986531032880082306476404941790194015619324714734216586445608112496434651952273538098065908729816718755295087272567935844262636276736904561531733085324549742137824405106956740787811601830747231276026105516273215887363469672276745425813131377654964600263097599558110199508861061822636512830981561906663636360191468507193032780552063334235356729037841579040735590988288553084744894362767446531754257072999967379929966094381572918182620967728928559181754753514140383183571482141602026584244465488792022277289295434646006120307001445787256638654979517957059776622626096199595408860436556192716924694775779154071256707946332802225230135570419623117582801641661122428259654484568202789710811262830186913732895813774301734017489911619545716112650067291318834330573792205889909644100226775624327162257591236279883497871036419101441220853917594935059800911983977074120449918240897000156784104020601750196611975002448877152483037038961383025226963258584897518199373146990362652155534244277666214790315150261181375401026152469670191322325845747213192040184112234932281750212399052733319001948239350692438267353004634790303360738152772095058423405022809728599583822417001688451801210510222019453616474421780407490231443548276775349687175989247697105625566629465417058568755635643968072037363862077339636044848001650573326810389189001821842820630706884634248474850119489831990502443333960556391105869868205992952865161548960605911653168101778804548449173369729333872397986503124934858667067628160968893535288409198256668349615770577300890641409474436290773721375355750496237391942774921837222076132869722061977602706050075103987746586249564878732679306409837432702669292441005958486516516948746792646627742406710284633668553416021786152883702651446384303673672951576601059890063636095675768103847067719936199369152633602571426100194861155225173812196819113904651831503330718717398594739972157273038890321181432496179670349843747861215459777402880806644021941506911238227135302948368577278039423272141777238134042838936483263029015338240253216298036979624030218560251554051358320828064332899442514332383738687663457185663139449289784383329997834484043814140546002331946840965885036502127953625553774792868670526612135515537788236521597596924738586074801264893414838821922186793842044892769177748658689429410729558855901495264290152913414556234684520823680903427397043327613389792011292507073081995317959722454956595249598624555026385562913077729152391507692766871469094965507435818986683212203080672473962143532462559951951692925648296148598245563586699094990541441190185036924552639086145195657213733979657944351052170976818352156877373260227791972789458682609444792022239188107907771828520841882323992782155726450772354498424134087284927324843250944317708219676907249618894369539571720339915409566114849149556838912515888000201176299609232891359679658515990380678306318920643207533590902629357954706729714843762497103825592860329280690734465466995645835422453791489746550615135009632928313888536943638941992896110812105992787258932539688965571897804694670980543545057265630164447179391487917339160466067659558698568318487916237503835562478430682604251153275065361912572836017795159758023118195247434072892108344117388185364983930837020622731772322401967803537002811920966816306759879473979528379692998893918882596758657865180295141458506309986394338460621672771973390106629431021413624621212676814726096477411976463816165797060862596472155724063492810721646297825775497865115134426953587997983659428889683369152256250027918800537412414107685155659996447639678680543368081516820542430763271764349024364918288289772883220349975231147206243850465875050432733318970773506502061148493702155697251089883836387259674138057190508707597059109632386135783651738384356115596756518638645672973249581558263852616357210503956645467441352217756998892569731281390365207274120378586058870553769172805799451212255945515890530022228689572494615047738452139102356809627384820799635077881532984948070413618115266522059805953272231186620238614962544753377802268836977169706722521676795066718135209448375430024875867811542322585435013238093071016715451153670899822142248519094043670776261227562264490311569106495945834049076724284112970043198230959706886702815766309917892929847867329060756097806936951748900216645181734925699093102181504053059218494988781169223500417055007855365496407926408590918221737587272824193292492771951274432659445398426303209510736493229761790097128211498224378505925389505221883503591314886028987949007199117714181121333177949329065857047860197790585251014624533666924790593568030141556775559671657832456411836086560210545513208394754616887001376503117077973112376241416521353305831524735893924930996103341944668176088441186198401478568923720577704180023978419041273379515716681943766594385456780491874501608419289755598253055505124573970608706113426291481960712041547699087949532116530673427866100677972137377134170879892221591199077189940166758981867342098731609836967749363356015383604099280724121579535846722320219284755552810638788171658591566090827350188175396853779206492053137680304086819050461181872431195841267139556461386336824025344802708349231524938197630421719272809164185072336887312676690144654011736261486166926752456184833506365824932462334286225190746372024713897190006634204367892673660961980048458604473294610632982046775577607704855917616984400962724372085625743676765726348741411585022879868571047713090165125827458726241016530243766497762818994041392160057106250996790134962219897956491169166118899557755173175954246623744104666074117547662358135776057202289629787110998985655741172319441364532773555862669597250259703033919385265992033526741538428895999853607148056517974746223482646311079819569625726922219418135803401897202202152786596710206497826562306008434491691753106286985401425086038473656106765001193796668863431561681300896573429852724025107030750274673293389348370068464643539359663693179042896708544896817585550108314900244999221675040929895561072585509217171500043908200390429847360220283004831902666380357458123567707364698873571712803497714096553147772529917252497088833564835034078698990973357228370218472264371481872873139460300434405578046800657437986724392809994695236828511736518572834637133972293886765284509173234977101660605233361283576469674436933525371164176142375979368710827802865786398351164779224302419274349674978166304992727157041153281385778705588023434147862534761360164760795948740655628524727785726904694271440112468336063197182333347300769359159668493965706520537869095376403213123507324701959460056825100390217414078557002376964229695757336852934936738115283902465592987376146708238844063888325483172764675295541243050073556610694791705336637721569296140133331633016520412566892892878394700228630054220166119457272635624535844255192611742975213643336665932108583126947224152966379672613882185757435734224312193197026032845769559605398019134017153044927991795830525625820562520532406413225738115304134067311029006584429654746192728334093794978527198239752095553593756733809742102637719200840683379352615748621351060440297169426011341055966951891003224007190782567672606772487117265073410291587442861165087612256587337108575994451326681206647530747914206947621804514372277256701167535262526185892343782559560090981892670565099116830961466316402115588822494420752999812369909008683145633431346089206409983498375524427999440741431851386143592111338317490257711597158785971255365895508041702377439663137063932132691743622117124289852180936532497193755869551559985127829957019634947670966744528677741711638354935804652001687840189849342324572830763405687270703108962460591477993126553365088871449801020505950865267871747759688116498803132199131331980388085955048633510611650649934002205241945509547893575021963606496937668826418597042727354073083867944496675757517152409602105401394395513831963502812309469915390305540274344408822494612527103624785499486076310040836244112926388438014795754894926243021829818727904193575114198375287177945078571232186759230953158739895517634235153242567114705066481236900318163744713914383200272654487062558955145862198255392751500135381210288574514006764789378425948845988523087677049488220443785359870877938561981426818745385323046738244075766011702343142960922736973719425342419106417170812625304717341479441732006089125991731302094414358210519975010406271009138400057525935748071957757418701817498737813366820099783481947746585688635090556320579897612238534645506835790668446112480450205445348640481783271630987219769825835363616843709209057701880961466540256577470119235960474486553526523824254467471620778333274589730090688758949244862971779905419753011172959589080434028644749683415587368922819762231775021939366541272099817737726556243687741871083751304560063866143084182722526677249181631471275817456500383251239777930873995337534967598263347949070155868958056770036276937632720685595998695003887892374647284606079042702170831471877717791531876016050451336901142552974450749799833337581366603358919318235527557693295022028197370988810268388873855902775329810164043692514098918630982569900681482701906491796809464199313096680329503546690041728473283317987866852994465015954033833952898205294964200844407839389263155304660970169475962027634184704951853016392313302980605485487473303205887079383399089960201081384359970413958496486702148968309753418692838903613516932439511259026928679036964195135017228238362933905144845781804870887889789227707264734449164280856009739181592710352295933900014691434075939378132916076409551796244688273415162400641392768441452520420021555803883717458827545812770297828797000578200798466150575456597631913457246844695994607671614227836593118854061912001847288322293708884980691383950951555320185124652181191776428899695494106677719057325125412658538667803648932598950803542819980068542259439765758738430655145780606022123438695955590708341335908206662938049215090668760630253504690931146699263240506940433764320401463789224637053126020054441395229716242232078883592274359565820028605400589821058209722182685623331417067888759170808326111936664611047589809030903834364613717511848289503314053717321829491468159621763755429603703097264802719819954309464889747628975867292798185068626215977998957839781945721937490980357759002183260468516820479186384185410817100263724661019869075879151866109994041037234302194910385471383808140028702198620549197525815420567042945345887317943784543434191594735737547264033426263928885386632187792067569950576281340505433760503515832586650045939328303789652701660055577396543357650830718364704657168262146553162614006046843562190107383072400504671595415122915486915796831167879951568295089016563331755490189105305411102140247630045574467051485158011179222106565793461375322431486354634678545673717294464957896123522437076719018706143574961623529714206448869190496746018498187145434288404504339874741618323095694766187705950109348443564108172463458950621378386481462719653318824293126082141059563716429081096665573219963698952064646210506055620034649034650591592833735948590465177751215082626637232597615302306067772381392112786019129780680970128804236469620324701161712187996854005148282286645542146837103595965046456385637326916625616559604744967289728978370292782382935834125122027901281822491941780820466172409964758486998698836316960794720925139464466877705743297381046718978669705862715686685232192597843812961649159559745678279665485489545363815729319399472823334932157526536611909547399260073518326777765008463228983985743489524550543644042781188783498334966214320952053545765091752229389816261219117987832157210375743134264784213541920483995788078474150581616220115458541829392891238793857066007428166311418071614647628942069354205751884460196996418187172140609274454420334969077352345285427662847707131755589378937476861873903420217751930119679605535841063264954185275015968348825219987037683056864075263431489677120609999979719987470486453662333701964662053244174905048135875406685220343711755847280773221588721239962750281868123813615589573032611386605496697625858526594036506578293612578426916920351895024359914064533179577924307361452800534516967656961868437262471083261733310895182062424928100540676237652320753380050090304246815485562018329739699591878494164929693577606885498035374167754540095423663213472180894782348116288742172851886431440340514041226069969611550696819284467690604480832165558810816171184425222939725353147728347357339703898706883221124644319698325484677963925286765990212026619736220803584636036104500696481504376018223894528584633501953276274783199768164131668363479047181374016524300216253474788240960528912665580107870392045815089739819262221407968196509389900939729011856788143791779259361659012788553508633732531110701774140737155980603230208477952251810431264792334568041410121076527871858654639991001534823431204023930226528905859649014302633791140339923650742682454357612667368511013564234199024794007274675984450659342972858629997896197644400525055755126224428999023268667761219071698254374783819489249864597309387307124478489986393617641455548661039192228213761739256087352332087739511372853812927656706805135439688721686897473626506127032170277861838680398957659636252580718901025873410540922630135482843916257973140632626838157693953241415401671568861109214457830437579574372917714417444684491810849335985370145157811658663069880319279826047659591614254773836326673967779762643261090638535435976376025897801156846310647865687577833595995767794480978181842361341837957233272578498917777642021681090780029836438802525288653345092978326583595267812836352794716836230003391192180224687517697502588996209496952246188690364973754779184832260146354896034314109367982547773959201899518311466227281570763138214706413182174152441055522152676827764820435065615359402532213463247620648367529538396438806618831985334080932486962279780194261115127687238909890469294216748868161257974046491419402758626245677113221862392068268196934145516957371539555958275352713532700148605982506308613993376440639698255211597035360596918407342391931659068883559788449767081442211091958710030880394892648885527676445462121101955533635638599641310722712043418468148504280962065641689314455498070984006044165591188573836371514211009488648141961856537738485778153010589169726010721445635084651453013086098358678827422232069644051516047156055746161224854733660439406662478289581459805675509154302994573249895954365391423495619999437515269470727519232748886048906789168672310208487522657751325715951424287598057297869178046312537070881565462412801155769782446667037619233845149068935321207818931557926107568863818909211020299740867571763389279539686514355801890376317555477389789605770576106465392318946315737513321301269918984675503916148790524224663790449692641594439178083864752288832025774477694621720929027732648584584693304421496789495272255361278554877592888187919303279190527473361513124591739376030393087540519922285090450493134559698970731124587560346438354112752922197810801895689866445283219028185080217353890926604336704670520180715741852650550159624363292331852554657553129972990650385191914819096740234915533580040475226857494903924890924275189926701591370179500532577234953629268712909722262657226989039041155321821608271504813451806927409444212176777983488102937754193062750871882822941927350876513002534145963531903253819375264121081735668641625743839111472896380205250450167237956960060339043697517091235451505781881945545675801875870493227378743918467648423428962155419282793354814114122681194985395637878260962673055548218763841036493498701204131889892218278228741218970217005411163091442131498742522915534716296620093831206471737864786854301857777146839381918714597405623231041393715350908507415846464244960785665469749114208646300882255646479332401377596382084021689372478810638710898092343292057567877918660010034147458365173247964996098506052914529718772163965136435009796623869952125880100226433821186882047958342750655724925323227884415358191258529533543157188692816140084769662647082568668311212182091355174649226693735069323194096503976570991610819248805538961959377651019706677258478147635027788557658894792433700758602866910794524549458880573473838747347599613509210466213022148242211257986727758925353913024945322331543871960774189945535743726656397727363488515663978077750151600735434812858987603609541501099326956849149415763103040609585245289373305056463094332306660612934183596565094045352854190984096725657015839017408488704531198861213628820646274298963225688139371418865436797429784722772232254318773138660131256564485730808127495213278364501420427663742738359669367276325728853374131355651891658498502320719605710115820502991094361041788025609430606270099735731506297667894892660655554556148743199389769894768244430734904803928625139995318488378906137104606860652261666104303684907657489352965866383083599457155785104642008481011862564557538596303722475235589153520379319381038483904411390181683121423850552578901772049364662445766826900975927814832340393644150032416147928837221385795802743865951267776920235306569363126674059080435875084685819091709472216397935558225528701889623369593485291344541515872998564855473559399469652369723562988262928230757172423626783977295327268463272466416937790461650355016336835278225471859747075569979362583812495977806034354368335310652429963562817765207648253882473212097160618967495111058727067411637208326983628813003616966970458581974037972805326564458961227718965017069119221496185771009471319122723886886053599614884202558354178265890710381834636753221056103290158366080701330474906845714117126145696665489458576125904910878375759122837746398100654293027711727026013672182127522106665630025883762125557796317001275989004899307329190476867786976902142101108524190242918369813010312200343266073283616830965699314576665990866076021573661722711432512899960331993003237909379282695295438098242556081712753967810074575061593874895600777744383856387283471458965066824658644327933672827667697935494793136432444021436454129548757849797373128609684433783926300704233812563475926781718794244990995945025569097131981300058771447884253109105496492342863611173262410520938979582167975881935898591694186971948030207925161926551440769566683335178477068144739995864148860298743125160591252998514328208351745796599597969800889523842505087962394166831129477747941414454288647610018553380523068676669433511869482893460379673882806430980322248523343230932622199742372688419860675150763042778260346533700138694006052039649072341717504830767185411449872133636687142572374058338035711578497069723323381375754708730647145385586954089422686325142995561282658424423967876512941074123352746686142764256340871911889368320092148303467682046377157643251953187112794112718302032925536315185244013808946271243161892398277551458918883560686192320383108557601476566941167869096178997951588308860830535921728932373228747994733814344705075862357628703725490646095412843965249631761187103936841716778606879896755823259051354801661761266469989135471283078808211714056279567189794218931418620766716181783524029995680456174850945668397666826672617452509769878452875290019840328272485795999760502730769497175568531915579861244342358407922521512362780649213864991317856628285714918178941087111371924296364740541506703333309299460950540313761637736943080077721898734650092641179468756455501376134298926656952822422513576534510624493296906443679091425401440040960799213845397044256723650414181860557742052291824921622004375897687725675373510737641514569289845106503069717491677968946610698533945545100785937055835223684930618335928150659422703562093584457473711585613684564202921955871001318803887243890284167971939125864736405534779199614427768724798273266501925141914154149137289078374568050658057709265114038066810281775917773016029481107943933191661326934485448316680605611448507683206770906509467309590675971797068344764060803726446795883693888101846083629428368457671569011607070575909887884674030305707705559786264835774549032816259933534035756799372485823797304049537055170041938977034605830193248700159002382213746555098656240392184835454066720000637896562979718880785317021340356929295717542753848253215224306292334938288791493325223134206794525041532482513212775986731319181512339870382108105408039897684162922254392573883591701805698678007056679900804533181923069417806558976497338939097481168810910984371039494605186310432361640115154072199556015470151909924895335982293072458493523072917783699970010919179066770515836779816951138659341710569716854175765238099303845457813617603244071474228651742990813573098161791862484992813209634473340103708428602464453634890851616252648476887108990644064808075173905205832469640030296430639664706736869014010455696344312056114697757775108334093307860091115355633782043912886629534658723273660207524364239195661372278404471636859945986651083388893754974415689158016403280245070461124522123972998192811782405710068542848187255955289094356490349622930177869896098065458466445432768909957888269699631304232290852434397430722242779043390558534452289213379567796064946160197347616957821613979511095443560187498210447252927123137389536652004668481571965389577135310390638688413691547134827195444932687076796221314592019216364836951962133005660354078466346081424997339013053616808097261851257773914009203428496677389104333722147172586940642547950872852976166478158956621522793630204177246921727567106062399690115604961664172867747486065459236926378207020280134598106254537082157144209828226474443205331358862720414427331680986914695209931521586503063650427493335064997529375426745909840593836180414294655607176660931323475370542340031388692158376337507407087134141412237856239539752385497001548403967764407174799770014958006301955998824696454975939608276034648728024327827204911475573369630986451156834033647376052068303151236346434813825239878866289008249551551068786577735060980037324627222532117332481668500012097659993712906215081701593895390682158548450206993764176763470852129028161995596949392625552783733704280111525025507172404224644172740702197684813141877045869033613058511954027414213909355805873678784791290058905827446334562364338602268826909267589109420313167633091991334250696719985082092041763461391592927126977892911186871621818101747608823248969066697956164708306213239479684636911227444014561693896499571383962968251524966445916779320518209059296678591103071013366542635155223260605248322319081495880602375732980751471703219513580465894546622710531873083711584185940357067154219461003651003016606269191649980605939324220253574909760925777580807399989048124484095900072492948671982535525551958691620213046910355279215448500595973504504568264359899480041153191515787685794432745893351455503260579312399857638416956610609987251652703217721849187565849949572178061207340122472579942321178621766076574488836031604515856461398327495804889517295304578035668572945320589379273850406518189608314906523346768114646282599150222232609561868057146927863689417024772255225930547618871411416588711110911214646605289918737597644624326429455867817387126857329300780194201129030150523057957016518687245067058631639177845083322213598705386369699631794818917568066113533554461970696702825167056155314663263163902873087624677744203982684709647013003511066921297751649032572929531503293326509624608689751188583616674351362268940804922803501149508238668271914231618856166134838758180863640409363464798904956393888716093045215201021956508634977767016993492912656476083780550206434513419797658159835860664610551612059033342314480779424320350794988742955945530090196558832029461801948882724545688195321849104486169208497797465850749543306852145654974719687804010050016906599124178422807216833946543169643375909597953746971631238306570513480435460130991087815732200995212196321035408497500231604755857860505423204110800098975331078472145658509385213777488621024340448945404164670046886205270744081612634332688422315641198381622196037063745069165924747097538945384812285112523498867055615644782374942539642242134810505106877791780738907675811682828524166497955391188190698141426176509322898449179810382769050102390276833990167102763397135365951435285231216753038389259145176147219103149026425840087837542380418384990092780694995996370313396930874089915489367089039406867732567734603508032148052083104025521965916912132692072053423328021207284820383829608366865728825129123610013985160198105976300326628830785280299379154033063675990569950105107295304940481449686786344183083125227716374219262495511130511023816647124357920965452335722420169342554908003543733542201358774988271833260548438679409863273375885195820298269639587622784015179066415123962316959023986790385734030526736065786506000412989802687142317192382151799254826759264509709955830066357663933474315714906800529448119152687354567612664598446490669426832122941229782072135603517593022007770841548840073847937157242124191645934865014658550643101805591731162666722727984781336570992538771068780750331208569810250615643598361361142601080860259669862588484910268804872712120168154504639229634062871093528820470465218182149571090632011055832599864827577655971572226545738002840564540589256452868058539638274261926812904886067710193282475055944584014770991356327599567703573903746658154391224799557650204199025935612950504556811882652049551698671066355688122415384511674937010837299856764669057108267876334929827721579730036206779219432715753172597924318144585699276130573461095104532466542953616653812883038741483125664985597312401804162199307364028000058824201100747024200688640240803314321626147870948477984574153255200281494335813470417474330534536265671129744242462946377198769403135021173314047424914839895181415413063853884397638410285286886689969860605150252629171956131855695494363403741621844554155087343126566297157329347781524103222550805332853657868172227347123076417057440970352556344315635551837232265574010073656861374049134447751529116932163273234988853491280682985820784389021073038706397848134325805060347787828634625562942203561675615133621068461441159574252684705854401687124109307517870035300832991280395327853033656502459329274930743110510676419460307510673160190316850077329753679568028273195174208741608360349622582500543649793223873316118707260867517891508554003839344773762142659732583632001152926735776145348344913617460041184723765253167467719297860522715684545250752308872579312787230821706880888684919052453929160199406565530362503166988122530039647005218865916901779813433954568194204213555850789781848353921953879466634340749693222550022099148178634910143335910431718271543164211628591427442131465642337822476052317735612045731521092585689002568887116751968635226055689641040646154963409962741004427677697818044536428392233951771356246109293868731877102998264757023618156825895131460167352352635617222053201126851672051617176582019365039703548705445875312575949349597164214598436785360938021460410146075757229762606720224967494966151438025979760139640379801424993515424136965810118831063811012828639201254417404673558614773336496344438334820056916282338665679981130410063244350891952490517701377321991557560979055969964343672877231170180062613187041123910471957698073245741437349408167191166810455489208658022932760709526239214142500759655054708873909291445331940024512873930598428878248835823226128040409660899049778106326221189138423081336238851136198933322518521342229369787982047230023139114209222546407508073258268492453366293568316241442687944090801572414890533584553092905109595605987808800256871889742174031861109348981719059822178968805591097377146888575621804134437191450148376113104634137391029919603377034222440410665590272622670541188941544515800618377635493999854623935126945991155232885335947791878068562728238868263505206472683702759009833743378295048809027547254983294428362465581706389177414394642803893820236109112776016017443965768046498425972357385019057781831447786394998151916443526992758022249981413908051448979614954722415792662840900070152990716413203749691626811498902014119681443087273294380322260556505678928285007231777921013945900012363507175619187080520813577587652178735193709116762365639283915359548767152825752866963537397822165076019350283872602155401078175599714575675474684042312372429063079940394938112562509862292211691148704367144944027096110536528366113688143306016613307091248528536230691560643666638580769183273798340714089103612079171599744901362587132702549431601588035238363003137427139116377848518393137369993892239592212943914953979205739409982976822168986278680411348712374755755516119374800079536805093706239313171600887220325038189927833584785207132666907625930963778376108205206949433149887394386994803339149414859302044480104101418900584812842746461596101966301814000402452671707935197463690939029762097507587253619049589172582432605038707617491768468299621973797023945259646938702733136931405104647600516845003381317675563675875981092035685682153260178185024058171846042797605940323858858742089676006828327811602813774720771187228623907479577318126008593587404202668072540844784256468693472578740760704404394947075499366340936844102571471156502533197443824448185983038509491876191782669091247311344263699882443966146645037397958306932282190433685716326770211522166185218072707599559269378971282639632458814049066632741241956411171409515491500948696474860994650348314494766706495789345428757426945713587078540838292197605365341549764941489667498617425738360793536840848359973761857008414135106859423866038681746219473074451317234212308909066049456180666876378526467114776807275824848557418452153098763411872701069984490386068124668234031134839332400569844385125180131611787374431136482134216101654121276067028799777633148130126964997507676409914375124012388901251421315130201584185293326509090982583911669422633862141936957917015004398590677131556936258778132422259515258843183422601102075732834525253749539690620068526748972213859369827237391575578183444537173856547123817731629370808589478247322325199257727241506232104486699793335812441316376997482298704399186029219030307324163774741027908298459537673531321594853080060121684074398535528044967620505893769033899120256555605318231189227783379688301844693882752906844181199785985713655554971015107895538590456596520898790419305009493799422536224566169206544818865279520757097925077382849360658143322153653991240183862161950074932750148516788092875518308116356672978517075799591858674766180979206496511897846214955757863306162916908532640499264899633894025267144481355054941986160138849705414061352041202005547608285878609599086981977492119469524224480431561263507275540518298306387285046715642799585398615967031399684735987151131294499654127188840161826754303538919659379414955770483572147827888324441333660944445085365202113844830275465804243808960855849502711270810088014167955260079655181636666059387075670188826070637052991694466319876971864613550972480787419697130470787206527221351405578726943849592578046392924824207496352935421949781602174645509171170610546626158633538093422655930732862449376140873525374838924392113249323649745621577725323946467479348778100362738161655617965579473956905962729508778181464074280930409855856971740458748784317315854266428804899878219451292608313586273070640513780194912165057736860160118946334180898032458518930280724788538830633571406894566578962216716528290895052157403160034831737029653122210193564805361599685292826355984624719994828367898409923821588493859681936254087337916407698382465288985271372025487135255701351764807587923414832518530879486255218395037438189809250016003742382576150304806896606306417804020958976681576755978376354361563157953944681341131346198252984860021722956938098030835762892274838351193521015117087243570995489393152000899003175105245983910273401307765250980609929530512504326646497539512126506597309284502759494444613997575242101760371656457550442177744148727494242201029209890086275662737500808830446749714912938332734743926799903463493392019463933664207085004462926164127365343134951757286743698109628652628265447809733561067675638351012097832979423196038457483036230709779900272251004794077751404062327044900631848221593627794616080192082328620307546542703693002544427462780781105238586288762290681042693055725866152439681580250695604443636419351494006459701351982778455196009861503082263333488529524597482620457778912811309096326387815452243889893858114812746226380995017695378100353636186875971106213392081869882335034235032495909848756041954011903189838536291318341180492800750367889971154737120291114873844501686963693573719953241378680976149138303007026552836816126554373635616939731335997914600749315796282859962954804853934902711213774408301910125313065238846931668713104774111256040888331970465452541063913233091167404554273714746785456814308618051064096842758085902459998792539801488344890989424934385113337857187325176736437348981216454858813593548563250194856519255229782841504893033767473408217617602381577034585750404478745233284623580107168107462251160917826691973208329616971078765572643727956446190108990365499146642813129555156098806427614177120760092852427200998619280372948198076698560750440516955768535771303810337610826461577014268401611599770874692460874715986872090786364782797458544892902003720234373639843100947450949353232599606688595378049626212196891231633924192859210006887522487920051714549058361159252788680450247699623397673430898459497925578739175054021011407378110674618002736381349961669762409849019397821200853987757100236559896435981659313158452643828155591170664387317951454516566164612098176547354311623647894549659003098398691511599976937872698318521796718237237493601596624889063985180292872496740243899593099430690485585157079684006488796526581446123524455868843306610481119962651743204718835285352232715394656674821166669124216109469069626758339842002627756314143357292330013833337732501020427079349656095744219265863797129606680459362040666914643140604618693270950701785201792096780288798564926334371108650096955633212558697302889243071545409071262637156642145604876003726720838107595023484799331754825735180646187493762921617008913593478022264911082814941902986290265460688538033124221179889069608460150004613692423204083701942668183260515937295525964472835324895955541896018730950798985522408716313112732184117762397976054346196186672548330310576795025661127968241222378949154773130686612585515312235704479512277986745873257578974511672369313247499455542078797751254377750249950608696755975543609234752276631978503792910756634622677105865188504923285427672871530236982344184414019774338494187571130962928091190520764238324332852286214706336127040945684061661115722387802205654864579059238734055853760463935810725726355969471782171015256239367581500282253269766077346457788031217507215037732501784468709628907060951777703634359488414050487890756480792031782764876699814984370590376759751409402598401497031247788148824962386806492719860850453825988881163505900843819809751020704855264470069598822247164179444862582717738508547250668338133008549301854277258378994357441673798376362667956045211484076855129199351015024535090730878768852909809371567406836559364639491072092786048015446948824340241733512325893453936907076846501657272257133871001873441998476215001676230485741726537372566827243309718132132308682583319426377697251511634991346860943975287674982590113796005890950837079459359155815964323569606511365774843466760171912926158911161336372522824289333986294787690502552746393953144620745665538377582255475671016397089363907844867347440470974920057204875294895589391967385567262491282429785420328917837867741265001240880426643969562489366570140836827363409888724172849159165664352661433597240188216827343953280342563479418691570720128906099860672544552678569957771264013882670001916407268727241178595116984620179044024476199694913531652745729836469603618055086127536197753858337317344175323738767830029175322412233841009509296143819077681035153154155628487050405965619999623291380919008764997365176411839068655335239888201261711882852784987371979472812124787761660145544893861546029884618546997339864371748602265333743795669188689976304105531719748645646009347224161612406549054758266418218085842944511713644578854670501911631397490914679789988201652020798334615955553909445511184636063979488770725108581129709820711395361434486373121723488028023440920978298953429878836654499152245804090738430826920405495300327365836838559434153155366772241754982115263785969635278334399801072753428667997980801846573835807850693201876618036834525083015858923840310851196549226935250649466766365717579177534316321110639346432311222630392499231996232031435098973861034877046145478126565680844729465375975063015784739689558493364256811087233326559894731827987276304519938706586694246069211436813099940521626965773429951119665735853710058523399414907508345680970658199920793541887426480458094325613115982935160946420084362740890173839942139757601084258180466531973261882736647067492815309143902319014479022858732880807980694488777739740308383907187430826468609410966972306336409416552992121861016639306059928329038558166860098834249482104320580325131635843324748209925402036114666952211454453432129744689197156153929246664001781750042298497050865864895091475254233864411068745915869687145226185287279885346308621476140324613122139819917196256160364279825490364950612560555531584997199847404266415820344994930705184780796515410869822163220101209150452764374157648006348156397246005056332067638094080137686045370685011639133502854143068345583582498662014977807973869568286107023450720348492777441682586535271509485641295266408288806267949927216345997568896918093607247457765654712637879676953600411555750635519925343272862401566186583221282807814286945780081098487818283600563040199394697406973017214644929284474544179188643353396880192927876759530337113901403183384004821913488402688070079996316989502791110971240829500673485360681049527738855092777009295885027879337140854082460579513585054972472396085127792194544045884784240169173185948651183456180753592953169509293273769731338429800516844298891262545941806904625315508487315088718482277256868408600993401569894306442731448228487675023359274046742466659975929012458606517858174992784793031747683209988006334569632087771631859686708543561236561077021146845554995272493654911534848841640580799114584168119005745649955566115613109416823471643101837495065183054300579606171392517789188429593111524669577329365764501573785165931954904887139946372400046605495212539683169834756223779532368661040493004977032732470363944602436089668739863681345087922608716161867469952800502226876325620364955729356010606833204491212095691898507231213503942467314566422775092713194067143214115113663084604548489145487201640932706774764246200679270522621388769714776105171762032584773330832084789126784449084169239934588846116558838850081449450354183353745170907077331733056718200300310491416497267258859895074238747174759010703240292411638842464420546391660047084697649728033764082947940296348361941269116847535544552793161862306485448927296436440013923065279751192422805096626025697085369898277552146616683346631579283512567243671672121791652534383740072135901887182068251664482002520457723115172953166325713646970077828695828884291112290678193640204641009006774404941373063333075572736865207529552280577682493007802197349080446810354746568969135209285383539151482703804128410565445174515985578161188790311959759464152864478949168824222770956820084875971563056804150123867840860719280186946325916778893149942324991299325313732102856581789921998629779224586359890119163007666960098055759109178374454585963245223676572455874536408329601867083789089302624312270182168201600742933293060430181207435377484580870595775234891363244153565861394154355889602049803614842837782581652633938996484846219898173535825749463536816082565759058694783879755469594387060203361482251672069454790651084682626380891142153997032010873997455533997110359126764185585311197213756659740357085624930412351223370095631046088822743114579341180131480968959854868409118228748600664509617447798893139673707876282616994764030530175233531095011141579828027041024845082927846940169577032985612194661291575342897617422654807658700306151428583536837587832020041870781262273193609756398335702927897476398391263271194569085615660743806969314713108012516684193607300020281995338927475250791675752240695206997487038733302641470712771085730859103807493618907797522241279600823123186800495171680994332343958166799627903439064612420219558185081005737926593919895383036846288875846140979316100875029185991453296471068220354503686797969777283816231424466115746478972425623316448982760644191553014927552743785353489799419126667087718550108508865381358399330469121821752664622082728688853047662904824081748876613638305841411999518258607661579571175291961081781805833261411739374956419062751925299671017716661722984762776243098839730540910234871448351913626067509562010919596583727935208190721558297046978390374550981743938877046001048822806362190743783065503719176700835825560189138307077142258388159607614736790561164213415913608032375127733187443855256352803516089017043283785760110950977479149864147909636706820792610605891788392796633170858749169530572140072838225022043064955311272493612177329485447796683526113612833575356490049110547663027724566415304861926859045813427291741471769466807278619802904725107043914617161074583696376539733214055360893437067155296803292765139150211918319026003987398389842796047071493918894892242569196934040982089596082892148242161151054354591213310764231652554638006229765938205641153737295846226802833809175842577076240036548339989782935801225426402521223414365011580683231044803407763037333475127255800166507352768139222552465051740364782322911735181570942671605617764672934476702499122816227109939759506580475945516276554581173255488105827758084312099220444488419117163995548601520462891836895218646134161724974200406923674372666918459433925984798270716769680623628303018391376799297004170190095990576087883812885753810465460346354431024895930031852772681966150365900019917177097183152423266146889900244000676445183737756187067856550089989620214882783464516175965231404382979793041211078872029824106795823095552489817826840244678869705652779305217979266327060755006482567727577114900784229078186335812715845443214936760361545846694903474914321083863248752665681104539910498512039461460325014899420415913625924306766869682982235460047967788494089039440946159426294633232077298441165045228076021839921235937569991036095497993638753244587085277124461431305601164507188955813513088328057531958497166528704188043395985204403235281199835160992814257089201594214437027291012017717960023262640144514293721857652913313252021292220241091699363500118163916813807309763959858728526412186044149755909068449182723223069282889440222615308909681350179593394691876771017038509411840174336788578533514087194657801013781598771074061977914559066205824227773434161035303545126772601130313803160078526591192203960470565574987145248305691775897724013867885769791076825772413460359129599197817654918347277766631636257693753250271998043871473558228961632358761627177823499077601020426209079268274598144572021369446115399233795344422815190620887021033935500964761478037217052771442944834500101763024655149645294373704713855506973670125346234681949909990586242755839304648866394452352808144406543375016323360659795872294225226633720072397558253822139194834564072973291515615843749388534754072387256946098842397447403387870665442157110242718478663105688571695748879532144503349252289462504905290627427109261238798326601743106986737358098542098724103450026430443142443229975866550823958083077962087527474663775489950988497980190251847787734144163549835054716256035977765091158861913945842177408774089821937855414042031531879300727420050898978054940529080846336928326192292537380564628414797479339774541457671003043731093630350747031856451103499315582580947285399700095412916720621518857419325127481675194054317538545086616337605405613276522480844537401305893647668407960543721381747657722536484233691643772482029469910379919714429847202504983221710803764653324707787544760735204472677975414889139003420998657067207898725102554691809228809945989786825772791016618606045392085227010408521215310029038357886708074678655085928773116481443776881903816219858206062172240097701486100414734248155520632032635128303294388519051711263050936938792623546654225745558894248678470124128498269576232961426885838670403197816083613913508571081501885436911208622305066806941533181535992558098449367974308060968798922639535003909776395179403375191093698896839542467027501993124317011974620291018250835099063782569872841123685181295649456144272263320784262076294704298778492058994845255327277121077391192546143670236868102797937184811404239370710066192996185592207681783276078498698670726463523399920864389239250509305087664573819287296637334680496645934733498070880648520691072294385112177105976734568933536170961683367222716888976896546775400011554058193576329501725514603355293674612336050844916717436846394849197498519549664551381439699813816696854929021434778429376328559265062837695609639375151479762472218904360268412817096274835436800856894101071282852704713688167121698130285508121461222026124780456415560571620744239793397364699782743515159006591144980292923599389219729439295863560964582439917794401556343353713838220009079892249049065283031225519719029128791568758482364781149667131739670717525892539170079090758554155241458309082451897539264345684488874330101366954613005756124748615581543822198327941302491515774881875348472846544142692046591271952378771208565100983160019362226950403341194979980138286610984383919473404043074115843695016635496402249139786236055811223381354180310032630070766937981573470058843300746592096567417270836160783268561796936747939516314237492088893588906317769022490983002261321414065491311614949551114360900963185460393762960436586484953411510184735491745941364773786231472822969597590634195880300631034187577663171134245531805003660602317895879341508965656003446374852766305108788497413261842025435515220653549125723570149033981831460640802110926650851721810083223046984618478280589588726975482376209322394562710531112546276267384955956383318143830020348004411807649254301935024438598704435858887857060177855154793343199880324579847714496332840389255083227322588459224917999673649930491050039242593286709749643298065791981087241357664299897353402078239592035904313798681359506749076081086876783214665982999412491714794409094980667120840176575354638884275385215236244969837261622320574299603104636709416832439718673501257561170731320496916838707087578284874344197412006846878661084309682890402899234019860891116197239406308658745892194450446138335579512880040713489335748853048627068269144112759531071063178192168988809254076044397010160290302966894004869907216079294858227849291342703759082091049743883428684523821288962380536931918397391780182792950217948348923385011388645233205353038692703702372195793337839951505524444883233061527714305731982622889324573783822477364554929660487286757656586510880221944939596896358260413594317763302936801130893862032191928757104543960325598301583760609500211687325886591280660270111966400688855510799099883617883504114451128474518341010022783322295630822838129727263916201482823335421485345041535543858513727348464671583128029172420014351041053514076376410329741205685111346329550864823697168957814230549937986211041038873000372058660327907767288233568504285161116922587393496943760148579172949500163790578107662244997674104725486072031844072176432651257699833515852102945851750202630970397868011351272853082764513410252412860138341630127591903722141713395627360347430394148799918124112539489614091254785816371971522139706217758066930154848711879859291118304900040308134890232300295528958092901714237142052304651953476124472164540458286961237985404212969474308447858469932612629898432538528607543403664630193923956160682595271165215181770981838758390109788486745695052683253106077918288598433252897930758967231241100859062201443684356491835854091008269115104827979240353132771960988619608613048070730725585433934884473808776974583425194118492974115534392707212433622506906040911997378233870826063764962684850398536902221996808745569995307613612503981905064044777831714863362685845609531476534057995178432685351121913710547947382050717464345010665057565566952163378813908585558642135206310359774935304100848295840209699562451855129673011569889860266048929133444234861609519465058148588112648476874896526076906365879043302217423350824740229343404281678774416568232329685560260301381773057682834970917010171614299118195203870000254042984882625657205057360931367580155425485444978191469086154658526046992052866849190288188473447781161851749203682325683321609023079015705242827124728940740652296534083821713752902644354097070758702373108910318440213298012226935773864897632321552707423030895596448630535199415739586573477869879853158893391901409413810809616951516385185338877286009342196307233320512844133836762504615404336896590947699423131353653061888840397329298223443287999099529993881084355014365535098936386027375884168522127847071470663265662598758027303476056574526628769857310184861615890606096726689359561680920344912399921060681420357544866580741945526711290022225457409330121134798996024925492410970265779920769382477996365360830164274240966219759151225572419642086585003301800266302930548834624744902363612905662202070890694132972955165006283303848365681651467135139682453984074809990101569007424076809945148111553349137012457817889553671716304488273281539816246420109038307196577121625219110622598255722847421580635776225418320330663180538004124404054461900320109761757561558814753402345439508483358739548455228158931703642435701769106376853854412862583295877601959585653417195734606224081402580272211481498216861040091404299593521175987064143956730682317253598051624192934933144378925221613474841028919524757423797894539961056056158034433570751550176099889486832551189032929087603668764446982915279638118667902541682227199053275769920002360851594929379917193520408205127868097223279594207875570205121995146174210433436893112778449052289750769860042239941353132467326972266110152721448228616088258232632043696348552901342176658452609815855384492737836070044184802139377156221376496451372749550788681126527856229999151443200416290661563722987053553446325698453020100003459052063992026120284056710465582552873776076871615324996252216983818837994410380213939134962462856654852063102276779684015210991887192776028579272135143745233757337089548638866971893630261547950838242587733620305437172500115344408095035107156019561210528257633675978358818275398333497725943627151042760184572532496090758748706710313733624900444027664996004920758941701173073269828450952642051860290811365548248904956645992266362330737288704599987335007974526286314719534660299168828496507553215165528242343897353656603785500949087258566561337436372359226643398731783981368327079651371998247690854015666573045521110917023604880325192149271841540387037598516646518592853216191927455337504008257505515236660267590128643383118612538710916829503170812835424169127075611772744516667261884356840666664542369008439662833677828339217888968696869696152964129257355744563322642657968951094964146892601058496705977492771469831649597128196617496149135033634769266018562489118942703715171919247989949905808563395776709744252912690251961338400393041583932583180220161965444419009748755667621781400021771651609876547388437245367221733995996086269242544098896991917342666509058553044201970646668283785366285835889771597323283482948346062992428991773737349546821428563217544126238897200449156035355242223473195575370689625369312327150979272258481767051691359162680999302382627288035830042262059858116911124544053346658168148397248794904557076157795099103351175856684533830693046136572601168914271748809157131974435172039226182487531640015377724675664002480358209863094524101018093687826729515167377308654063032218259234186660164786352088805474711079212379752047261588596431057132680294964914313895103749599251146866200437881983086104331849423409988799672712985394105916664840137974075552730144006592530608176887710113641855623157870411415310199521762146080314885394464684406707788088695234836200735626137083694840404797394091810401102278937554756644302047842976681244157345431980709710975111859417591112018428468272052171408492928642820646637889069462417486773046305759851734871738249938636303421731814208875636337493346757643298621190227241472363348608478850574879182333518212382443156835316303838529812749082296245586158593585456320003363569362198979271526845566615797007754066514558958733415199335203723336644316296199632608753240813980793230849485835986108864690937961526724559149351584462024839390209242070302216641802718750750158431633201282567322871096653286752114944729613904626188371836332407796286330097677045903961707871616579105166905002756671762870329563373981545412868611092914964403687326987966652299000958418647547785386579612068192494644787791213295034837421661800760255032155641033394769778412513656992519608576740709997773989873397186639384289937767329085871390127881061147877165687962039730257981813015171603535340549264907631349980274595942110075089350301589384550579556021735027767965490951173051319423151329143267961547924506989732591148856334732275505537861099635091070664706807845945618584892019391068130175433301980151002679694234726557080211001638931128396587034149226586318347838704219325769443487070494478215059096511039439842681060681026280188113019748131104916750630388162318910697570614777149830997155584374647373348149595318261394185223187158336681621036544411637773172125503557309189608955850929666097683639255479475479293246022205050498133504138361508502017781389409106026329808056030279746575979841419833591490452607461898884787233194066534125712430111081906995221170298256906104999876205206898562150064582888991744530535371990258797251272644236937142785877954187522192623129969918432033178151812766805717896778387086671296522319027687449640896656013883934209853770046774930262692650935864421282358349104619680545952566521003009222704939280473052204395745842979542422690561187221443049143453450449617623798190807018460511198224833690903341971613766675226042540415447845799146488770897852696254570467939442735074767681929109463403047196299895300339296808472425729191088088778900691169614268255022611590730110986107577911201115306485760489408764284493287607012996406085871629780398929922897994084689812478136886008427469065543783896839965835482571488260428871698508716825768302547249283828186412704358397822077895517068716911931991304600162381198590598797513109426765264569008123341924668770326018273631978796763670801372759961116719818356737242485660260893181636960007092057106624741306870649405145185089731120158359277810954575923791096646473511386103045546118817260654590055491513551505943981796176162083198748398392334619914829740847452614106266932222585333710366508371014674945974406643925306035134598270858409374509196310150243875611668257047917495475676932325202231442262238527013516695990533430363774943704928566953851611354379715412288797613222735452917545408658308181580711158048956028091997527094834830078666988094827987192433225584104404767554506345967176484101832707420825116987432950485981502572837848132081585385123909632121475724724206753846339643778715378568311934281198237621143739484037483611620903664459269110965289791553898889228165636498885529206738418532816602859277737881105938433968186092554424455320712479319750677507466067227818603196917384336667381535922685778595497731288606434319068820981930682087252708799644339053458653880582820040476609651775673035914887337676234468615993513668580143283674798825509655817561894156158850140257829320360244306737013586544598800629815386160284995315517743521249619484102006941458905495539047157596528642015186966653585387560804924703346266088623968676794709763987878166354639415489094928315274745149575117630924526352986597967648240816945315150156570152686204229933806053063862333877155139689466239981720543834865076632378920258688308621739676611161805914219950278728356507570640295987187814745922667421695647411399043929244590845126146551844356256464542068674835571008327760032932881647196043166453740016156724932902671105387929157898893738172762889152050822355645907041550260467531124506845512946857912578989168869940148259680682735393452713729116865132135710537483858649932634094398053545847624594312783190455963330889595150580126409290202466569684483969631453764126235724920991667191299156579243332572276143192008523344245315851511477909869052947651262845219766648093315399054186626540292604392054165280553080024365507621121365762271174684981274001399253600537314139528001427368382419068483812577542809734475597248050892322837487436657466487251172109422752308962433887134450858472098757490681877616671949296735389608588225670467349632583161695345447403378259569563745703219500593125692342223761892557261464912951039561957210032021642904581098282532370437584896216242280053254521784347918963716335316033667010948058214457560386169053714883375443005788174675106234482373040527579813403839587257443485660600705571834201453645862017813528839734272414455797270747326511316193452676746397233390210313520546413719778479752982243449038635420757600300825229791551284706485819434256032063207057711060515350747634076555376149544761025906056081115380574584701930593115550777447562868721153858210349959701351931847000319254966170197359027711350265012173705402397210812477896087172068629667376777410597482467793171214721787669031247418787882185916269925722927019376693742298771290465623860827931180297307740431392853693856908749676140664965200749227699006635704342854128668979941366004747766417454385358251903005871229525355548155445662851742786984382393320357854024103111916250600502917819832545478526055267980078779340026728353349726075317510059855191503836071306936208394301023815723646888381970254149984871110548213602839954259604263212758700601230181412715518186763282044946882503547703308096817495389208926429254231640698207162705195723433229911867292248064620548233313790392569713339535485006067697428522557106002568496231645972544899651929802146736770577039708848197291400879803598895398558637428840392334021399774942024733283054232604453735177679778142034706529557404284079297295223377569723412656168840891239054176349056329926827759239522104505525730859621437261885690015342835563963746666224079309931390005928073181378073936819780061395763318861028203369913609238796313568178280148113476306012574838088634449321258417001409046247549779036405853796947602031229633588267045993239430104525606948894763602301152341921981405768406527991433653212838591013094889899837926998603213203423279073726224025794408109704893069643327447115047836395385460698827071131942912037138844153393823304479122524351554114714193669140627514310018883836646015350897244035671718840044203068313742852405428296183133189138974427090886749984866523898931763518498450181531202373413585719581703488523695406879007608403921451652257195374578246356821825730991514781505985999942951467471227040490975037041684181199210944316474216738467998269390780733988573732023675368187936213981331782883715297952056351086826373404473090449255559320577371218614161634354553157746383195520841246400587159643217103643710908207116444783703959522565758328520489982401382155981199537648726123026316659117652675016536175068964431950617119690336522127659431856286384801178220225123593597328499560441202244493638655478550295315046032058540740446716612002585604792721191693633900514639496928329107253020427609619139577208603047146476716540197302952877147410585655305179008237833833668648683269866380179736999061313149447892504236043900573344739287840714734702389114537586869765361438730327344055192705636212660468664669273230932887135087972370988479649098592471786723619754233870620958476443758835724631481448526480635771575000956706708960528693557347428610644119732237219944994010516454487730938196087037432290318441075882114768862015787459447799286399858254212231325039793989299916075976870081674215361207767955507820459697689119873988305337953676523306571956603186681597866601315846830963515236033787939542754519045230478600162018750854921347707190267785375126126757600322009411314252775690998801496919985715495863339177744020000079765653479425887086299258969156850148386167843233215252379778973848543948667697353968063441441879742384556790667186921180853106443498975857865829959086494044259704131260348857330860853131062575299979303111446780182862883255971677679793707208438790822405238224606892299370107063122731451969177781610002544098662540030514145925145630721938602232832026721802964697914907483162045973793951360918216330848493975512183708477931855690672360193078426234416170790251638487350250283755333422699779167557183164656193884371317238838136294269466546367206915647504409348930593557474368009053699035015509216113004578743592568853571916810954467738968615363591089021319355129173234598426022120542806791059082483292355068669768496833680468844306688914830470345244910380322185909350409847358390941566803628557187960426859929644950942958507367416493760366782629839554296533175418420296553976190341833782001245712859941940012122440821003933597350162036066850317183274051989038547402390342600697592539428339193087914516245200035407592854007838740618748726399337819387873563063009955937945118632277787787322287955452297943154533962086948264442002003531015750718596938353232963203484256560573101852390247212909629468170045434017854327618757606685126832872609714916769487342995144349522383029150973765455941097603563278454036504117178150272476286834821582321420849196337180580352571779432069552997622830179904438457458113393408255722407956977102754718334139470212947853582279336779553428702828396393712980601166244853785565526338935148549237627333523117629647419301050768173923579015759243131190632788985730820420602602869461442876091747137939249981472748459363591211096313420126083538281656684642447139589752209058755825674134753199841552663740168952759593176988689817115211079507824042114211500008891678592681770080424001559617414612778622549195088382418171339507444271976808591016576658731660503453391692865696785224314340438413527204973193886221064935641712191257534036949940415674705345194766228108952467565129639059588134257844991943943383937913014249450197652007917247673564451384052597956498627068623020686735455755120619418319718299408487413252196486601150006854887762424547079345325568574852652219312616311446443724042810496400133168841338115375916751365181181587835149550485619559583894384843253933980064165216328699004344085080015188770523683956676331619236886807361761046826278295257298846298109044404309740589485627728793101703189814795430109340685051095870129497432586587598426452063266877941745567351604711248305603107542340714985038771252933611945827245085824187724227668972907092271875075742212628384457391022231593428918946906348194974469730422624025486106770829079120080922057931576394256333318838014186205941614348015407213255379498023815924979741343150767854771184994274825687629395568858387993446597789021222090947056499359495467397426207147323573360996918465158302478870062804829392230686945464475287139769755694465512855229138723632702048287542551898040982844519177317253310576115001492349568332223026722004525751689186666046834255221526297773760157023779811039767338254545226423986398695440632618131070556513573158908212958416412539647057526786093133658658148612513541320325595670061128866709617054320729007028156510466403088234494634610422814689663157413060551342017404304981295522001647912591902722274693338543234584017454863376891164033325362321074171128258131044647625230538820553400907874590756750427299551928316076989280377330036213414843737448739720388655951700633581870889513186845246959615593592260802899677242193524914770026269673503138513379483942483777933496373908517687566752963674177155106359343358840852463388812423019418847350378125252459788939439414391537601395947815592268867932772522817775870610318245242212047556078754686915535492922987281248968824988145314959907907289627436555811172811988630357509201143693581309021424411122053545416852737716392224847938943987695236439251089451378458376458531601734673879446832839215776807098690594260324950845674934883959742869047000217849799795038113308443142475773883792368631784600154149480915701238662285961826712176431475801129709327863290888960046813276306209127875320674020219050841682848109955581546298243966782346218662844961472711512062886343254577852793472557398243057372775345978726399669371928115795443107423808440286340883625234364439318971737033464475098513039459899861578600491123852303850565986654283689588183219038554760456778834811092400302687142251811366203428663796037084986404685538057339341768412837265336006883764500187991908320504343600797045593818349367862293083795508441312000008347298515369514770688594281068548096534657950078987150046930377271012270834854963270286153909394135614544222243589654460233410376714881225634926275727564205448085830582878841148665166992201395448145067755123476583760794126772783818119877307543658546601910350797117089077797002181779049788326271333975565920631686194264128263086564200623018982444871118117001341022571103557788525529450752870328445930707912560028579348377515438474074675561174985712021081830980468471883053725162260396837894668143747743854059721692171537867609429557912388153755553635415607452753789078040592814136475290756750767554194291660004248925744189724941312596550170752904278170492555273866938164656216711628101005413960958507521142256882069460252905849791262797126354082288428377304240145942865650410209034707156948250184554977066705660606174623677821744500220787074573125822032676161602912308846662183007261502769555053598104612450728048803019295852473576589577622660078916081030132431291925360766029171812195838953022707065021916750061011654576955888124735709215516271893090285489665035731314371067676596818046415208511731632468233693508396672591798416815460417703418001675279478257158957454475940290883075806971303531373920470029933592131817155432866132848246942130083975598188378333034562383954537562509235281144280591735662755448035600219271843446090575024971765107205035505137490993845160805788967860684413093321265512751246486678466611792246243096175820018744369983403965805447531086238445490589635569094644694002154028178163739116769217939263712395191838677650123492938571138731622769645326478237855789899516901524052454690981197959821647905085828844554193995591299345087891400914738364431869957555392585959799837961733270363626653899688842560443940836824039248622178439712021701934157055440236674888910167028109810459258221290148711354107464497483107014139154315191284516600397226974312536890584521783925197626190224672163845192066788687558939792172687315847554324849155294720644199425468378925421016006406834357316062625836753959152019845999519185448992917436396849323409728821657384528291162875209611770297436388982906884668199998193172482125946422472166082789441380956259597754035094445849967230647697883381017158009028429181247809349111933798487401661989779868221820856851414221133693026014137164262044738513107118516388943441764117611509372378543525524402133387928764807569442502296233985546727101612684536111901209019607872910286396056636106042288376124189152175565950284101788640614810465654885468589503702327955288211928640018968902840437429619216341664411747705904798246974721162820455515366593113358606791979868721361044598437591713317246163806106472398516559595094774530406596653082600040832559930506012364710354621442502241570425462387522802813982422406055888918416913530427145361926195403256932877800694151305730257669506497803312805978394962346925012990610732692355442518782485261952158016382121235434969763032650092135415116592721933518185375600601024222043060419587082172414289275411852495609406424754024863917071754149063529984089954870231770319611995563588182074425264224917912744821688406300865542580851950472059772164384174653321984086478608621353482432686810852230150561738551331161361592038649474009986739720727791879057555481475630011783556902121031514467700874606478167385759652728835716130150573166029236710976505113436630194228214667277731034045185370677789757301777643963420008092625524484595058590280063481366180697387032134666377235165984591186948647687408712846738630815723061122747812130482944290229264461417840007431884838636519057596607105069810906112169969921173103844549561326075133653426291762117163269613171133953509262559486940708187713183993067629304219310396560558274117790060515051230276442491827404944751409844194938297579893843125329887856885162963183672145829794909950985384512706830863909916724327534922698248933564174667462285595878682693080580604526801876599308125383078617277407350984455204045485516314460978794749013747805962340354523725349426802344718794831584476843446464620503171832567010901727253018098579829165291548499033928998448991363042936554783677003927521459664636440326820593606469973230941058176985262016732665949435023367480535472765862978702883373743297925340370075951798359255489587117396702855892676978134334657404186190107875859492201363374796845657231081616127014123985265331397330963283032923497069672401806311874218677713110316873682263078106287540835906359472206409321023961883978780397067234645441866743979926314030041805465357693918032751439521183712786431386196104855673768026900525511908517071609748691563656018664901737367979250870242766720429834374028491819499257659472780358671729794539666876071056243377439880273144042757095090557401256660822603510108745288507639764751210530551742598892190525958770574371016738277614598828203339112348563188258947864446641239678005881583279027161886859932618424561646601759905024832587347883390856359616251167907048849899101999646152733596822572257832756272553707592752801455276148408842451210798040055377401854742418282990089461851709434928897286837693296551102372060506395179194448129952360092712113390644411582848947418766495844738288221158954641346367516457002081153128463874598924623077157563101081604548674393327906385674978248099573619427880713285906172774944901800057472215458006008172182279215248572753614039668380564934229904121703041895450926657240225837302456355147850936544894381860142818956699656099354655771802111933370189764497477103700157441586386834933369055913873273022489973469365668660663439772025854132899586743918770190394360475678630691703742947473917211830353434386158203791427615807604999980575728335153060521542434099633955840718396560015687664055564632955150572946506253724042064735541579525645697084791704243372074258835986563607769178111875706844756711063115097151979683392928241827549268980464021308725404413373779956756297388847324101959104850368467563995705029648553529886224213840965439043902160534963511849891875890145479077673488399943870880821729020806423758944770136284674703843741386713045318988746725486667309991087250436706373126626362193413528110542205192713127505982248170581513992950741822227825995241210550004812676159694562686191882626733278730903667496289752075345589473645267273009050707398954995608239288336927019766371442353516988774847198295177203645816985725124765202742314845429174935995339726179240929032233922551705047027441630639060590163389096591759847474336956825162274570866012015529292562652179026227625543384044694815353314867982409704804919780250928198739935485730037976882669434956345684345384382116730156744623297218307536596320833147984903418357522993398204583239703475362685274779202158690372165888180565448367677816021547694211924469758623829848160765376112080653125829212302015974439246815533045163246405910650905552854709438406472647134743243299389876745053326882079862670905346833820927080183004815348220211762010238987642007675250532002813584661997146732967886044492445119404600561558456031197314253880845394560418388837246840986428058628755957307337094970929719958303460219410687379404876847046915032838734040280521162543023104071425780802311857364945492331723846379028166394595043799032740078892802372970497533859471653724221775798243262357726864622038772636433773934771565366966586736917264134723558465866794790501998112627467412862590512966318476227172688955888852401217740728582876279560516527319539673599493849153915241747614183593720214973586139991753170283619737261941605623301021911859941244958835646240529973575795251194231969941283708861145926407182468186990626022509649532997377492602811725300035732870091173779057420761260203656638311657926299432868212483014227333663475974824981406851658774747215755822053268029444260450937371115727601251156320066314246694868568242893850181543762060410178968439999641424923261299062231775086910718458424158715508460546979540410032611774977038375621672583702226865714805219679419405801401868220767007149616583436840456265841895675270580895753235970818650735255708260867881559183255375459547026521971677208496189413744761911764978011676352854796952985611640340531419493398770480597491504040045199034654320793602402149921299911385606388010489010403669048569791816369273787394516769357736363090421313180897544738583568487449435412703796813164386339499545919694362464218112411417125479410128283230621031485066179986373987959715420358392605057338079386237828320061039506255015066835150832082032882217049170873763838144578309656697290901714832083187521673828817649172392136681880292047995915916003449164394921112914205969892342882349910275500821943337459947652824637288979692125553237092279108690136173663264748317053267179070214908359635491197472942521363124947380189080994757191131045318257508723063432243578122483497562265133185087071574317689018958876633259505749650198323085561418002067753130460432031054878675946397807352618698711224009564773434346703840935499959665198785042971999630312365974119556202461399489249781679423463297092553710502155272396118676114888829904052052883493105061834805285269862228792424651199762171172944231485927236386196755929622570246388711195834090378117548594307123082757786990883568517585067442916394102416625137650342712080261267343431006961487182860389851216214333880947137807952970086933175717480635549605449098605969485775919511371270648789749525342248090278395448279979025465024675768732690088661648822005050923322677218724035196064006873408628969580933163735801278539464656605359265867936923831832854089807713417359889168060408422495267922399788903057089719661587958088591583518157197636201315717114033873212711836036338723315079415336998623268335746922984290786920272769517218193005215273687625888582996848231981781129431225464234920071828176037674272282208961511211757695293942172058769757300268369084811410684904081741766376856831583323582124570811185502558099956860987131992281450095092085558254072795369053609513025905567199617817907959884322259822980716966844213947872910964982940095352315233116425482514312016009331489213968854028141654755782947138633877230084362253389731097567253731945925846783187235611478023762603771721763054233256600809371076972093566580593840607926242242527242683563819437725267982677677748753602285615473546372251792498405377626854093603650991396034455082564540560995864378500065208893930870231678467110259918792734044773993443731062704759419047825633236342969953700932088606020555449485033174752188250222674674092341892123998422782998405310250505747285996577461321410785782040993617120617096011850132511884794123956448419089006754095848777953123213212340647550696680301505787126689584955634351986304466424272017570755016974992235261268810937722276427972690288264319897699172645901892250862288033219870462439911797995639805968076028299215194052105815244757850830040721375793918395404024074105152058994930162235034183899540195954853856155143844827574795064679299952500617726849960267252884973607661950709890927637194737799791692323069136661417612954187100531267684888487452061103573158978162089067930846787698261045207931723225353975735311096516018809375438256169654649924194172442223924020759664485322057313008878740134383448302996580398934100579445260344676850043681750642311331175396107401048360669745900526660506686846788476178886057988133856426012768899261230997688232446928526191495312220929296872880426456596667171753785849898299053212932228657532413285440914088599464059699159447041235520869448099056576032557059314663509832823927080488956610138747790496227603818401103095035772650633002848317507053551720417543010490447515077326910311239099620796265904952796367873779351421819201168478091359541605906489607264644586870846550318008304184492490804432909939950355222755197948380196306845774334659719562384492251419613835916738321186818263253740528175722807941792045593899882003513689724244273694735773599473140089396381343103264054858932524065823093615885772882032899214749180572447764555843789511290885492995377026560120221271126132518468621095117702239329078013525868853424985320293989271832158346355263241197283270115606035486674333734687290607827904879795618623986320859719669318075079307069411984197935006039792846754257843122643025726389395218769174587567491866603586907272707044028089194258884938292795474208185775021083352371372207635355765068455959082904231462566625541814901768913509119652806546332523798832591957247948173707831829995542989408168429926185693580270090423900117991353624105241308196692711511162383965737026704625985296073717101879677408865259437305305586586638618152217639072782745877850843978052597396049278525701705794178201833027860404327023516377428076163571178436235960308644979007604842765582609762773546946695167495147912385404749969727013087455443586284636602408926071727459213117746075212897533262711252145561998813268231276014054223360481911835756747356840076424961016075065918811292982323536004158454016198539726768163331806530392722366451680199015293802732401773344540953442641112352346123071753426601756847518438959205355894969076364754058721853660382021093599156006530122492837986196920891007237658908226618753003810022038592985863626677331496723139259826910639237374201892116412209663935879039655397345283500486880003837326838503904151843501344071900301035430674637453892004381356584254480675907865148717608096223691993981660716938176147851771095180521655595005627583138866361814851657564021577734913555218909886976419726002226578194324384783879701625510232693891897216691672626100134659640262371259876381660213012744664238769351581259538381803864291308499397550705607971447948145266404797935547961594874259321312216707397727064461170826691245425939385693843663055015110897565965062203617399299709574789807847721043817011375545805444548164638515675749483405405094324430460834149830102571247015866689877338651414879531252728666859971499130153700772783065506379654363840066888817495373218245436679600225671967868348442220646229424798483731898148175233521951065280777455301216085258499269060126280317593610096839639170329447186492438729543296582001165718765352414290525798644594283163799750213547011729715550135858960006951578335763095960210940714625233664234337767525805124910992926423688244535008304020735082064841769493138013700852882856507753804236803322089200267635087668278073734546837284213794743664183095180637984733696405209652946818244154330481233222828271105610335793660671894063415474033352823554250668468869138701416684985417987637136841979779227333458960039593838341194686626590200637914048849162066203774640500848872199222546012182705482714434218930783665778690911400865032878897379241164053347694768402866062706093679421459395943105479699097591631285609257102977216034255115172420235102166781284587350485409186087382609440936351240300239073893042248921854380739638520097368048417341713625569688239836586327646296366625140742344714982354972590170989406580471584070892061360201323272263072159048960278157390404755043754728954187101028685547498911206631686639841194663526685360463028518787038677023356287328483039106777001857325526562983617037406040396297505689104378947383250083116598823863724695620249432432984892005775706583837520766783357856132085659564493628861045978433092741669043423685296456943765983145762879230626055212988374839234883950503662930288028863214488454803307086891960081273736146290548653222082375036900768149312534670219559672931337727109050105709533667399696627426900484385626712338705048423329340689654232294076221865448959383681857461696766701610806201505771033477544596626439889950112695880836336182102058380478054482622828171372041551406693038821215304493706913492687476597088712605233561215734869037407970313582514064246330014716415748651544782316920306782857557040994028810261597876712987100379714940881002390629869054892209522994345065912137209167918459744917608241847243607793092354403092164383941062375643885607978298140761792781528871674338047019260336769887566652826044979775900006741826861909180473429273715628869494150154314228837049387041740600710402407061518190291152322460927105679827390409107808183289106102112494677440082929981680056120048710823403584718596797873401644118612982302085958855194847061312191808394476044269466838496342908360984816838610995278952850361840300866543317596341976170748448143987769526853548018883575074620284785186426106981671066961036361985569903129322475378322163667684765487748537918489786872314116270119591228400302923439001641682380430834887209139622389870104755373993978251406922475717456979505246645105290287880367189596247563244247561148570096598578359923488040368089490323554030530831844023413469734394782895756406431087093769581317617471920004455329926306800507568184384488638053991951775818644534167614446999201844571461884081357919878589317155860387479968711356418153308581478291978781829875515660946517957837806725564955895646068887800522500289320502323522024536123729311820233883531637021583858494220768148310829404688561884515168865810033952692388942190857466828735451251452239568268156073621050824578133826121291344474201400485774665893465905921369783213686495572668973925421428564173473303679862072230666560372549641389157130655636602589737079549851243655428638681498652725290152527614894279576948844500658866176778295563078183731309659863618446946536720247974608483315232913177186938250008035906585584734007056443644982582097076228824997675101070260782646500610058184843616471359312497413809482396966847028759729517924563420581361786810973232361552705544029965266660322794253519781947779814535425883791659950561219599726604666857119442649562814395099278844280616370300731398587772068486143229370460740303698595313883173711898452317934386778206812510531976010601547763065482711552295387078309804116569455647502739283143034590692707970501335911106303304144597486616938790677240857535478259883732233105763895153566225276659538714827033451892192998700515219848900727588873599575801786888292419896032551027031366780556374238534706795565674458821733497630494929405250107983558652317176128843136469861093601775930464002270331522095008474128252407681114665537081509401566578723786785174527203173376071358577294905986250698244786483835991522676132598428735113509993134664702958715825939666953581231736727199730513300807960027659365444222329774788578505354699040445187499935014613695948460954996822820079240375892015529547949293308919465279154354977083809739257415608595926459176821885025159697573344700225935756151182501031797844452620659022756088923206095929651964291239533375050141082731055177976202291355154171349197657924420118215641026584574497780303284503172894683272949530953060352700240069987247618814325716837148701412658472516763963829900012651520202492015504852350592307710365319131973204496012461048124045113294464512591446875769412134436663006475851116940488726754095786079225821794115743674499995351665585190503159757632085774597300641619202243563048317434106210030213560150060515115680563567659082844795066712634434500125015554463984943016660876193950125072748408935015371060060791955610061115504585291386574161341148478601742275597874735785667603320807899337839727952646446588170448212645501086642193556141734190350206143129641711367279361393599517967390506939165704713857549238306275721947803680304788649377481523673836614460849063343115199442973135114418715056574589609328128285102103806255151575083350798530206290501026376227388328455216246362055675857393928549515003844313063674723687150604724277917444596803619573755456656232123019819805127462055457111499257994119496524338538738252900032839613356110365044049375089213715551683580826137441413864395781710430848716539360107495888612402643035879713855932669780169367806365076966411495650235760343617647900912835316661373885521353218292559111217738260915117112452408397278862641097436999932068980931437279399243732472664614218209822900914668894825765967337348143009705632630387570095614008146650165323769865098648228212451438483454642830402607634337622998571968429808038880595671515236088735526986740546678899119608302613118407487521825539770299484803308333117991638993708383737782265871298760221586172668155968014904281662491103171521213400400736419968778817027671950125522612578544520188441828644961640654343961437774888786519095880658966755725265818669751492145781644564979389567075419850495746187311550783703681617079893561019985964815917041892655380407854654817732644374543429992889795891669812094868344644131142452321158972111160185797207192341084427948876330982816647475978990424870682395965191627133691617226717269760665157505664923333604294354535319279562502962441858949141182711293088926683953168365162857766811492601043303383182173034329043047906206347983186127346164290856179066295702692978199844517888636585791869144318306471182267331424824729816628116570690028369390426680742916241221242089571818147781255658705653008254155381558273126909494488191521217066077889477989513854472403822843829703885728597447875277881572755387166243040955882081755470039502423535571625467373865196546435999930166307027121690249910848142704630722285610907134658656886472043507418940374483262003446525319494995501305351595438408290959745868360482821710996750076705740525200553012946870917752889071780000534902260175996114695080671802364092752647950246689759205935951883615901712256077726122665349018621431008584703248784743237145686903047381666728366880246094987633722584191638043695494742155265792087256182895070149434631201306614689881232135242452764509316193526414474831645123881878283590375381636409751313277825411271846306072383099884309346020334787354846355443289646819437210872705443114648960416655575038489043095466786910903329681863295245634387012967092475574574166387136523212318412892355036265319637854619898338421875977627316574270635726194288969820685394963092074165594155528999663627216441078046374396151985852047425244033708170028417812396693554734969264522702414660057824182899104901404963836715364091575018208705685906271281277584013763030398214458900294915529814057035589634941620390880246369005739614112639363221355708342587209769876043259569389598846286631205423173608674914150840762750737982793228479127327020695698480709775145301999270118246871984544852836358870932448447205913086730246015474623463997019633291581169662549911220083775106228425924553477182108474802409092085236800034950767503243544981288604776707564307841510283883757579117712675278195817925795323526142728461171316882029270850200789159596879756623793015709087236862061634286366558861399384530682615289169453604260684684728295497406619607696732680772560868842322564530141292532414156987485127146471817835697686754846991436293894162354932290905420153427474216277489101491733751260577219216417770122425538685483880332105286401825140228065789560548722692718290259905551140968348779564776741916602246015249978745618256774780031645771959684235600463428739499758922607110684058062349758900935391341194550770730202279454752148651862596225934011053964515065379580046310343049105431733572814528569251582544063830596354992218806247473928037676950373853159486273336219724275094957871345182362190019077157879731173334756382805566435035108574010790252409760076640127129447729607055879174006279532666584541984957118898233340562419267997098212673759272101282268729618193726628108393540448610967473416171629055449659952674108680983260628333325696064382011586706963605326982598816406083875780741556886521064942736379288919791467360607479609407327679976908274581425902544662028530739725084137954462488227211050208282348778820896513994731250763058400483848947655887623973653399057353096556829987594481870342060870677449420199141329841793787382363429825653532587687228452417330918608187114550939289861236912203731975756080523689121513907362729371461489053557524763235921311491692085155517942010070357008314111814846188899359626261239844319291450154651134073639139136794805277443233644376314043155184261512166998717090271714411956036270369948786412314278559150907708075816237298813520209303817483104297947642263781196291305244886596064817286079393717909067990069374193231449905781713874337001199487237371910546039576613539869036755434979898201966486568483346558026440932322651076543177426769762876301677681243419178932736796182407495536431931261675305007622820858502301817199153037250413721079398561975755173329616299655011146840766083835427721451844020125642792089521536493604802507793568227586968871710196655978639621947937616397034818755692465413978287374310292144841581229556927424966216481405783369968364042063499735280294844968764410382112450243749266702279132827218772634551970064504518227789917743851127568303675552014072049295866335713298150421068429038804260454256472681518272054752407146999855035187869757282363908373627072851430888753225574204547666149947320987647502107225528528642285097542387877242360414556495186241852198948351800366318391887885540884274335709437857009001585940830435868001039475727297866133445408514753366042079595477817422565315963751345973183825766893373430712012639024675105174058958280407256303727472765094168978697613147743215733199257133345678817725464610912914602463101623540419929460659781215252842648695765596970293273100493639961553480407797187833743880394055963701559245438550787171026522113007064437569096105468487173098731376133083274475873423169514028277130600806611862443702824874080098101280704307609557651271547150339336542427830471662624254821483916230542766437182580257011617368016247046776176446393396118340676992063549102595247605989495316606089691793272531207342681324113070319270255956249585122937802978848430147023822650512276446460260397438739166296747629642769329837139631694430770408069244025320419748121673544678091643246116203571613519464352740943264143675467243853429696833867472158938506884870778691180693456727840884986826385072956311367183405502120990794241548057175310131279630869809761693623699337897592286637493544734672313565125660604937665853031520015578702670575848777834988015682756293938747136267033381097106830287169737677773945485001174786980486720742495104830713927210598603401691888913156798365257529444124538706152317808329373505312700154766713765053056779897703345462350118826595542375558993713410579312941692558331882724972962205707972933690819122077666594482415341745028166317396500231637242132872742757793763753892032321393453095161213604849514553607225730535073585970997112665107944139324942385414368422914512277399648785939739547353981997736744173113815572182641074572980516907487160428387252489880096897832866772177119027965939039842571619379654593772037639561980570440881105804535296036490789188363398766898781589499966578977183907577568736538805589236524314496948051611320007958712476703164019925478516177827083828838691528554227236474999774516467433668180223437871706372862040937077648800713542870485201031270253137698024294740939004930615072352054107782354433919753333191860392245955400516883717462350673832305420354405827503835038022190793026389846306532757239020652175720168712695572798711211392003857007667581753205501177693928645087345697951720290844851162237362199901652946546960290406077800441445562427032828969161301059571661917307192260195057407828715381996094518998785821378608938353228090564874719547741140212274333508680029863546446310622961558192249017483990857190576415371966808341733607065417071755101243211644575414652294406335742422477944975858810918246574163978083806511139984271626285020619659472019014994457291008607902532977665421048868297410299863417620129614230955315769286933236995687408394008499551245748977522538566741677858114489255268974256399526437345676639038069560758089871088092556670390966586105311590393458485549691897304617377571256522920589285727602639595199648324576672777531452142884571342539349553572937329531824897399937479417294106021154237575337426732936256772387285901985945295512248317110489673566555244547723475534892248767047717637886174110241589257492267596763615764599094849750502589369351089217045487818869526729450922443238129299396693287098470838669143472938275185622850291517262842036873996087092980152991418966370564961427286435611262856088542331996920542973369432326455178594892051738011568695241526976749901819847321121852096462517712242134704755560165786933970995012097610455857840536845695073272725052415794420598343256682043605088932345909033812665903172216242085396254270270046456898468032087255805124846001521921439942675623928129700255648561427993815407923856980012164187433661733685967785597379821515368702667520687622541613655205634467781575474268783804367944588037306007178713603575903854390979830193188295726251207951265204408691918033487322006230199896945431083172244240700014106286134645773762424724813111335433271915340636958151426583665574320707162760702045843294829602175253444361126963922201003011537032188655945339976278440671210106151443968860680256228322271039712800671032867630458386371116317062725475755007920939932440800642911047811085554211652582728801340503689004611933755917143510506063342381951237135209598018218778793240616508159334115435521311309592193956639921789000115442694992335533770093301511495341333088173664085690322739549073132508734246617352299562206572815017770499445964208332180791546471129705046846500461818891343331944112676055168011446462112548845157907731942514762372565759707639399313442634160827395006510304017389883582479165583016786909649628389428377814552312100524104493806825234955918345809178170067074861988368717998401068021447515917031477729016548625001776985957946322135768902706579217487942273496733467237745690804045162489030553625563066965447796251016116220398446839530543411813745381641096915105672898040135428080723501315992847620884430855396272935749167881616697203405323112943820652676685376148080293570869108318941348675159207575062094682749433895730259896937229213608317434238738080131593722984677200658959762325937025740832532757265217892336463237160523227471558053291973482149534310318863844081315530512063839405536064486210634393008133540609813504650712246948935410320792674149785050322082407360042594396035681990658254989964212942662519858674454204674092079597063810523589018825910578743960284351169085166682721396518102913988652498468653122714585471802505814224194907586561075718898677326192682371316493715441232283323618203942102324592969178184222103694317834700707910507020880769110920339662511210042692815323179058692652170529332898888983548541247800765661451117569293966057746338800426083212619423887039731822056461951258177153948961022512372413839235668413630980614474906585556463791214279431570452961242796398533665674032957446889355877289086913666142839101503494377052669317232226716971987234913304106748916874587473714406213464981786577547617871788574782303903511467429454181043152799840578780780189353672784629983438235133594498228001377477422810366410214531871545969839078730715312839576586036600000501600011266077017201293704207737999528425994410472313199759198049730389711574693159233646324367448140195482612229719516894154278686560177643239377260578684412066334688607846846246928512001081196027382182709688522138704909363298942889251604271123889240384025030010484382485926431653225476284284554069791859682533022780298985194810383137988218925755951931800227824453168025450543415927808305778616620786753304645107821337584927163477557813182800336594983678235487593139876803896341801367968734222127773128041044579006390766831919352038301933478623892442187252129671107347828032194918598908256937008514683297591057001894734745278991964340589103800139634589464261333335059505805106291870858584508797438704912297067532956602481349420929077897459874446056094551825908863157960984885182460918819855501837480139247996056769017757390817917258686347661279123145884326900509911756641022051436994856181869774667136330802096372823065766470729612033003399218012896269282858315883516447968336983113698411786535667676501361632420412242792408749347303186404705693334953587660407579619617334994234702714738934865209321343551768428487106169481344724492328467366892348799935387909163967616223564451120571383476179273215759887006597015269993467483810870429993152515402481097360060341017803185024191225804888394079764496335046143853295605407591964245814668953346869416014981186091092413862944463470463933763205178790466012111928974007538057689765670675514402703694572077468608630692390666929403074178635199394836586774384628450704477743719710014947014403542364097785526745845597785014713481465263558798344625906458210808453192389943201448472955433254664386842259276194515606062118598490132857623781502951001328411955748003142614830054864663020818699250944099176650117983611996263022704703240134482334101162225395919670650590819152846894834488991761886408407521227605640092764099761191396056600812549984646645599014327828659416310911166467092680511524545291620832682275074915336740692671464010436699847593314170685946959558306882367963508352711029539800608721786190812351229296954027670985064083601234356328911328818485107843468939630513940947994568015727573669559426081529410026585563372709966122785373417114669940345294240617685841277111667854658942116719172212966966387956773619410365082709225765496827626992696645914270608170521358200798737491209074799900583880251125726159650716302695205003107972749243122563375338525416375667064137520743047751599535999401943166416458605799724288716028573497365359622935254828785697521776934039880950805390552773712877103592361426762997295312878910823047814632545623730382648874983257240663645214940125219787187403290431289572930107834292780082260264014780654357788384320136124932038845816958757334804272228295587864785583654621884862232673542840844038837108630940393496426016580697021946028473017087269403510555665438685479149774620064310933087919152118722875077568782823228999243654427020022577337752917908687620149178435913797737971503718557808303150796919785821058455726886109745449404103264199029165946073798387439837399487349239219128500463944172595394454891929619577625757516194428769854373415043993034713095147471970218539735786076548312972133864333724596610193472061066189313538442987958644672384493260982134460773815000312334349428623322649149184829226486895913993157736804583232888053755590787049229569121550303573668393228191995816668494399475000244432465449678109412041706376730040342036924882399242793016962663820963971931529862050306821186459376062858586086488831550757216558209536670365121226976433260156463050889035495753035614101744758578044871108415057474591966314878024703215183793637827712309554056616488339058547191701577267137913450621737447106144738722868987123806868973422208442503949856140159713435784566103707754460840668454478495119534689904512919527503882287407764709548103425955540755095647803819421159027122515680117122709889099706775729159888747035781016092033647830399915613469327110110622954638956441732062287513473745103011396778759888179079004543945432270397244628301432942478436210988411318333756409270955075551720836667960109585683664099515800521859010767464291359196859072888295829166562650942714778355642942796254067096490754911501193761535607428612718292414893112844521143012134642203776002914020047137416660486783703011085978430924150593563387201596776367452195140289935526962534672811869622889881819963581123394226228293084342933377414505358860091235425952524978006410570434986927817580380731540001833789548829960304331986470562593533242434613417045373510155058830804125870209193950640891467250599188366609086391932870096976713976214929504379820888887956852900548191470384348155571338533206282610534792812368231367562316941128691514280506847493984331925182835988675364814625922828972916850141765360312334112415878594709867148060462948670567511226220189349736304366333905753705228754541335072850071133537590644165501908112444134325672696032081560387910547558377198343285030821474286685105191198095940928162901728825627806276162099978721729418976959451854542151060819437746103388451981086531865801104125053610951129261305465380069883914314245405016935661621376333512394237719330746712822561495866574744945543198924369891901672385548327202997591677602994145947634760749624555186181885682105599518742136254071240150472226453058027264932264204629701522468406206992512741753510704931216963399291615945471001428286506100230754354990413603387797150666825022556029671217090111570653500714753768166395864332470959912777933347300777943065123423843625993191497882106930794531309688950542332122894710605984468610366428603236275613629510595300472162638968812039761571281474488967267854042386544107001288401029028106869936585905817406423431235828071098072855494465172958834173387292612260001221974837602311239372270930915235997602806533920207173156165437991507881921442691500958736567761042146531278783945225524122024446203080542811397509692106538657777864571179159199968472285708566978855734125503743820668936038718744830525606159538049841533635065108842689206086048371361288205578527087268871892493945766591756167941382352204760286033342160202914256331627419759833890136734804394207860634996026322258923998279514526276453936826391430154095149143100957414906987163844265112856909248408639346700617734070127523000089580196617241455152571500485729809206737465882373682082734502246502376219466059361887872675650337353511274782017785486795349293286929998722442750351646330626047668180647701130498989603530316647818202125930641188772123432290212017773600684506779545931967748909299760888085348143241507824197263678483455817984905106698877880477685361062467270653031389524699066835976673047086361621506507892028823753938841135000810864993535542897914484505600055787267971911726016133724279147149054141012249434540196396054788763711047613985310462983816977591296115682706356682845430447516553648922906402316010030808133793411494203965513470797716798837390903560407726320843343718450697577623943674351709466457473365991048262011051706059865005473791101028902851652717472620030826919242242196712714528230010339223999403766163672456380483964662918952080484711977381847091256955912278724157121994461175424714105491669979826852628856285468027800024609385131562323890122117979462111945081848661733908567056874540054623728133178930941758992698247213137175027855514218155805387786521969102947809226913168769062426374169045775552257379306822539433476546071421971293158016633701244995640094975820277671609548637805206030104417036043704281406798525466568719800553403904259829152270347699824804069308273745494000699958687340668375827043532519902237657712126926464227189289993466306993295819767391849784393021335636338950725411752139048108990549504871356104497120820484491402907725525321646131035108734757336420015516521971356817108172542373786104108416973178956153274299142122887406952252657173452563169877422749822529653382613998027032493505578750980442403955744400542150620270176001305695605321504237993508261523426204897144820698351974017755244791905982447689752314855244071348631277695156729247652762420525244982080532879671314322671132372981678003956241417590678089951456001949318502880179584719287858205444889525111142627456325373354415032187978138728967882929604474223766636500766438290956459088161305611658083469082827823088348309065695077854666119777684294924264486326245118296840314496838163524549936005595923703633540070356121599751112564537431858496165887868272778586383499800633744183432404729993743697324838348958782855023711602997416165725447750473440238405845772668486841586101713065038945159495038422371759872929784682127418468320262961793573194495962116167118495109459282839704788222881284720056024713436554014631252708682316186371829181800443422691099220631296115946223730888277958213861425559863077884989724509158507019577616831613069212651055880106884842194576193662966446602068720198342374638233793866182304029603925929658568456625626185917780918767084156257364766572854953021258040855197106075334642281666635357776739669429140764382734821253633835303197178861063639062388341467902746396310260904230792882833820604691689836423666035922476217418095222348249589950162625015493201850250394494849565474947901219634780560711947444674894041104831206056732486255739789472382499902860884071844620336605499025260034146984623235998016415743490972552918116164907205815004391621626246511724135476901480509396645421049679765142568022268515227399692587691180880851434678258934585873349408696890686151926584129986640329445475174252000775142608526671283728126203724273583665962487967752846099362194445526983966505224491708858579196975903006945840609643578701142666812871927321741057014699480698746472787813967371272328282809836613727602102230499703908108299716471104061826356528092333418687626848535048620869628428418302106893618439370437358325979519169764613242064239796948265600769310659342628181348119010482292130273882514278888247385303590692199815947003594909798651450811617765434949954086423594740696708745600029465391063950658401383891186155094894734750961754718873791622541192375700380670595995025615270719878435628798073382271733035876297172912764522684308141318444119327622833286184348480436623619355994648250369543869556116174407149148840200186882972481918573223503611253131663963717178225328750010058663055704056230080095283054836998579251552611417396270797427153837394490148503017361731876505524356394959629773670828787512645293696027217127037892159078758951043936918055106149432923281721489752955534428183251100286669893637105831249906458780585800340729697964669689858403699925999089953845435103224635818778213366693157341879102005993383079247798611891154253746595347141836555939267207433604712123231016665625978262826403559838792376093448658621440401868683223135843223688382697124626595136245558873875694925025297574550370880462008396313344685659914534928047661841566658431420399513059852997695129846769830796658192569264037932100836512576741764215264342389482167632587688006595692945918438218025200758458609534106313474444035482594984670720213323311521773486739556053797225110171046729576143681806163660049393173014275453832337638846697148700432840207675786264108437446666219818361118773293010453912091273431763419063710447561712209337930673871965708164481409848847138231319483520640178242311489658118410061425181639868450325871431685374839396738478689329105610041400611585325884140656583204636613753106381019288246036984164091416242629732941590722010775162673884221666009785364309556618622713095955871489488052930900193131575195125784042252986919543063729566871795112287528119365113144940883454674626268331947563145281021116819716860785613198105313241688146018914175572924490971685731263625600303346056520463651105226410469000106402875979891766781076313820793647304401409418945738385208653221737100326933181539534446775973495984215553288587767496952589729546262867350086993709650989679645305773935350564519539988238969155162291130548488512926367261413855565866767816710159817164850253031061254666666343915377468460338263887418706275988504984607395289853319007613732658751293860504675572606169388158919788497121053485347145545952174574370343874780190815412570508893297696104878712206229606084821546938821086753038017001938681376260741175958869538527315967295476437796920189381029637109518025873109427331404312147992893128698776942637642923047472330953366351783258508987271646368660549849889358426473395118675818817366368487010756346852460516041217263767555941777371507174289815558728531978813232321199340527269336818566963638790406776324863723133418295699805606003111190572012036860163466381829195287120900118155331746694329742423300863142193436948934197503763167358963614941597378962957690761050858914283319717478937694814975069777510352600926871543794364114839556648562741061498896133372349520644339692171622166997508267171880606653969361544469225335499607018379617859054880814990492768527628396150578987432373992212070605528347343196162829256681263051144547836333205562370156570724923266458201949027368964955617231838913008911585808975921880519498005169197468104606792868132897353924219336843488394981920566353081139169509903277155277490288998437763998086205185222470482012680462195040177850368109345662684866575456860738892276971880455071676237293508702599217879055526864614683084839439886487240775240055389255024331560733291619167336918334797131693573014044034281661655227215003856597200717063225258559445608179038136329531440847269387569992866424939103901754960097539403474702012166208908641481468436181551598086874896554186834133919198107217816671137737064168160266204414350764524991061728620668745414393793063520111001474300057331603297630401095435294762400318916799519944695721280162397433337330561018775731620269072975481098731545601400672923200425778581565931315653875944185354016713214488215290398004620094510043673271107322134345754092549167448536556536602031103530063246909940887843330452874805342912523489393706923218320905201314490359228243213172682718616623484826079452941071834712473909712101388057563956196932343400263403054427318601322474748249579055400245202433832779277370318934320324256948566369637404555519924536895808363813549119124000580326123173212557665911045629525781008784381480569791718540408263251701736782025217364264867180175662708806176427583714426190963611766203061498612961862055252924819695905886695555037571973753086707064651266205914731278285958033179455268517754453659807766390954442096835412916642255270283382631618158534139022677032181319352612443673955519452822271588085471093387495344823289903095001220510588065077885471971956535943579863195896046419192867080975398659294116247693875947867840855790153849134801467167357349201670623329568657671908954941372478861078242665600806759136363569834561391183787191053868651095739529459062907709387746022895347807024096932207871851877133735531714675622257653506046245529637208106072745669374719760923324585079938845913494558906909343900381544900627523396164324745929290666662671563285291609149756960604030447506038369707596367294518824247278856592337376588354574270221992950672020236665660359791969242071171730320492025709250397447188007714612118705167453852061515151517951973889096343895884368806289621704918645038438067120060056832343797963022837238603834933291550436512296274611228416738613228765609007180417580150208857750579239545118452625506699452824153724723593491405122338629667989001274687428804385557914025906199114239038039624566667019896672003168761167713263273844761746860151223009104918262654026500161312724991740098989234177704871284357991401711808278724417169547831265703021685468747466515916950852163609308142715392510137069285289813830216592423764098070767493248575510063763758543707022875639540489326308164408275878623839958352451211526406839426405137719825889425344520587831553084586602041865565789922461493682951517677912028652170289552019912085558757554437038694307262252222327951242395926060858660680634157549558569480724888714967368235778091620715958262443360894501408046148533994563699837988237543404774368793195911421458167108017951425764676762396080030575709435788257965050822381657190970080033110611223015889310607262703083042987062774240121309611354035417476726265978882256020020964929344467570288634268601953181158120348117443253634521535115023649594641829414439029158159869521023719083600100456970239645799370647944296250035979747931180364765570015214613861422486962238784304177856418761873527987555875309952681133496504559463037439460055707240099765289688441855227296205661913237829554557605614158075766438449889623069105935437378226020989203478350621882318927554111429638890549055111800231073228146969563139531022725397017024969390554404836895336281800737739296013337404034290721766245577753497188500400961507316967337939898823943468302205486301404558826929152716548832201159071769281384103812486153680291319053208533997471423685942500040571861185160259423138383272243810338361631814943160306626470764070394336868820015133064174015069213601013884398098735898753939263766010517165621313292769754642439098125999658688741550424354784372008722961776963149055637431216224016341234754112037050459603197630594223712233269887605718334365978416511579727520303716166168020450741807431750451667293932443845385443066920121090620697476162785109396351042091743225154980496360723497714587394782356804691154592589703699197126131812889202605977060742919457580865032384160345029342967562677689231038772064698900443228300324688675639253471139394018438612132512861235698477897106853081693861637471633938652754703180907223667753843995202563482623880888734171967531160574761812635494346809475988985258655898901142371797455230825154682812234521260100192623028120902085319285178415110996045943108467878419884558689556435685907618149195396631936967712261789915653739245415687629018290053582887694958030177305344442915521245369594646115605172143485385648984309399905989723599194615713472947834595287822936553711236428084214546094085493237179314911263365259857292612130623447272864663846582302057887825525420981865584797183570438918287724051692036743286164072472862111935993122496240686130904601108148494562183409100407989808093745773551380091903915695490487580582501565064883461085393081342909169985839434804754079522324725968818158547342789985287426567001734949537769308393724883754821077683492346967609423438572619351632086931677958827947710384107356700890480693966774827735243533762965814190851710185534551544390449929468244929793923418739072534937906822917171372529660695048264230207037557314556714179260877943678880677285731723618352932812577359583697718700798931944757215066605260269067982505972158172574695508035466740735501350320805528515443982183334189875323634488362500562177377408270421472092490622290620998112784047515640037193941792804741378007920043197649435339595364541669477390324902742616453268405236404722957659470595762293046355116581133683360712642929749920245712809410227008742851181981873983199861611865061947720666411128313967082517837955979129605945515766025355968600791029730342120720810372809429313022707307678090520629073637550293315607118365197065310775881455674548846106979895946781315167163191731748857350207102931088585822821892573836920438313100732610793428874173288628392777753443272637816211599975497315352402381144530073194824231561867781646578019675573509414101340954003740091236049073960236121903188783254451188265387636076295897627094845954005499538946439714204235858984263682851739157579216459659692451373100272007015800069845409858818952708276394603724586828850194158399061579590875775570126882166931797097923591929765823905567308015487884645938682724700853672038482348236098165395563853532910702269923471337232268513904613439809365819901293839683866724081315544608647027532928640520219938059163376881300770191450717847367453560309210853580732342228506911517525620316807313405310061337683457563753074650527147340415426218607954067466072368218118770604513390364348256516593942564323596691680111653057682204803179965516786511298361576522930278590914732966968283616889131812640609689639764761596533126438875013201758191832072177297816516409378471032266487354198330746112964156222216332798703079117643232573157311171173476626376697100840335182512009580141103907263983965661758911905189332122793153554499883764421577033078109543340102235770894903289959299353462460447274777622739633439987861263719060678994922087282295390179851102773999887283193665093586951446738214683935446579651427158375634026346075049902556931061599230894138430527549861548135651116286573404644680044717809008349888767494844465105032564179511705442650015297274841452093954760458047754324305987647230527597844945165549176190576346386926345357220291462890340151399196411655985664320771415103696171423721659419977555953655418501190580645148969426582128502736527908946321941184879289613700521743199403429817012166245285430210033992409272355758750857186398518936917863901710487989967754108367033654161457309222625604446187739720951938312591050975931029096897331306072571519076372481756050747672322416821561356949217763200456528257554627386193422513614883953166101974766664679005211458819009056207240513452496266900133071908797588939784488399558237946489454410621628020116501430258937933285901322692478219411806782921088790409882358268707262655437338880144085435640622469679141226085056696534135362774150078764262258880148030181765122313725912539262748735680173907371602423911918411714151084698239742870255176142467410633248495139878618402336227048816438495373629395030246160533705313909616955517669389199522639158507856619031739864750297302443356024792531775937584208821489235063425243963245930888981938545475140540342894700466024928951895099778343314520353886896928162338818281358373352247615998592736585203570096796484993259413986438194627970938925070352981755412077981236752583910615659018050421445539077677861471943083330716030316049422660721235240572695570889275145819709187339930068217331621202924908049613980189815345174888843814024313729288488197062483367961339985565589436549474709958434181363825269621257216083605321322775402027773021535780213119711577853147846867190632567563401182175255316747229379539677993690902266754104751299404918101805874407719446007458131185002795773867432495781739695588815118362658816202296179111431090549814080459181891531226804987367487229909811189644426968534196176630673199993828585866334309120925413494738352464453407490608161871198167493974041725047010506789410299684234912982978447446597695663427609896137752378954378453724345209117216217884817008482509784390054101127891020818580311148964766026608302800746113427505044368124051922408571083984997149165747146396688306775004834699127432961366050672546046898377571749915478583638297083845306507304111340684057863120430862482466827160175167871178759645078613003036023519995024950400573587517480088428450118401563755706627170562363667077046865093722826030231290175024819241090869657728322974867329588359619175333605357723489892890019929082506472152974165767820315720241443258475687583402491695806666190574161443098886866976321032449095400540807917700611687807899643518554297880312258141777942339583435869971569338818279483287299365338638274655738268104045081909336406975265026036277321467757043091405866346764941590625108419155570425493111320882202843752666489816178518299065061863208511652844704998545646563164187535626947844380840552685257159243871058577355163901004663351290921628879442142981209309595216188491227911507519601262357311476912535146240015405800462373479771215319005055475097738943147245070012364514889581759157369384148175607434256146340217788509829842063883745823863158818924677977655381806490033408443910990837994102283021758057986401243282316442331878771615847341561738484425228632038650773947332181926818027359758639655605943880519298853759012614545536066904049330071234141504972589069417453666000935876801173251761872705725699810175358747582408251843674134240401712819268816370704781932472078481870000710091333429033243338769652113604485859418893016761961576090331396585943819581827513895854134054115820137027837589483391635788607238672953777112683658574859000313301457799978380350109228742280448969765712528175266592867020727837691120923949732900209308065150268572239335034580532024850076609316762059478534282687539493215851146822345344463278174937254970415065703500748151766000851574095468677912408375448816589594442924132814447237871319272759427381778610826730602169832902592825838585524308585689995329186521910896106475896369388760742723067099564164801520769375027221485094999527686156193944897464334431097100331324153191306308646346111425503975168290887338338908764783843226192049144828246774955297366420148849038828930844818820692509925210997134020196314027766305079740373364980302918324516327362258758633924827428291452802025340200979747042238030756172830464047779801807346492882064424980018653081852671989408892927902756089019708602242292595760512135356143822831233808631130918184589369086662811843483268474923425497704833678459597100429273060842869053993354082964594447197438613298795241881067841374985274190407476424375561127974345885055725338645547719214048184861140635259190526786663718686265879615889651392939198060925576304786943512383116455904216546572011180323137444995103035405053684421491582940384328868752931758300440372940995484132065624142284113112469998002508333631267431248152602774649418175502796569257074129983718852793161168218570937519676769142560157199159312818734823937330235836329915336837595174524322023596823998775039322654551181476411685182994786940713360780231290693960760825498007733826820759813747675632548843886291622586655577291780118350181927826122983467840387145124153046848756000164006246594430659900452366354076769409770394606499697708349477850412728237519241128828506072076033190041519519317787451496961528370398962588917354551276106949567876659989589970005647694420404205741810800950050113892014222695904658979541596559140024587656124021359603535120140817751865300754210765069382777718925791536762223639542574960669888355510990002476867939464447375758976867188560948160912754499963091223578472606933694268243773303996125450367194790645551690544116471563826448189830338333643167903793690577380488404238487028929379301894909038601419072884924035667240456973721885797774050762112696007047017169927085653631269452020698447393915218287731431625787747799724805114689042937223704214865811621847807539673732140013031246642354958493635085884067678786884927251707112983600304288015818393709733461459000538727807032728042418496629714734768630010062071073853900695138220853590195927865676154963380408331207387254922334570604640270778045605773221969477681523272810778404243347977580210144145931714581079108112308968700586358880813723215574452492987332228715939640068247630253752241537496400126896202409867657310655520256442611506785899508818917247620275512361872191342165175431369859995382382869569052146022943029179087008309092527347418211961618008147433681993519600857502388307477879141007462745525816563853089778846143299107114076000319400380351623750061784428138840112446715026983442905571687173423180444280914911998513304576516977116177342284724889704159206634435072272766828282366411338293274449384990732503746688376160451638370440883259639585805975885535231579308682912071810627707435718908140522778733646270107013589267559580534095092835178289183581601412743277365002051270652213698333523534064338621495450831362126028475490222763142705767739402425439223750866167974109946432027502084610822453288020857766058450519676241003157267760650768944240991402887900338754274608637702027947030496299771355241878001064007751356766652829678814049984361023145261395146800949512563973859221150667904333830526208165167301244563448559610145939857948141789412590161685691709460795854062218156745245431101877880855047590375151257456494926983209862785796404441582965501346416757917194725757858251740599575258800087842415913964365001498027871290120968017810689063344483562252336507338296038916405668960027542949415850631215051491361130966761298328468689661437877579449635087492620216879073096024807827892609906953868219221734059921442867408310150312775649988721531554188390546190426293019528320606054799729841244390022978880165702841702739962565554661021468579126746493436097615838171157861924030733444744945793691736617902390104428298701203531811327921042421724572945628306520366978403823945915708817614510339354757256862881940753746258955239401133709304917862046540591576739814531495989705546199580999048403968647494882380496421420196700551002190576733984794294080810789075450098040918879729401578396750072838126918698702138791047156643456106378528740447257789499341954180404156884689520474554789854824850771468672470240627780579977381318646861004205542049343529034498455110020172546975489574230305116318761296045408821953975877603288055194870317464634824380320524863741331615534730436606612223717477978089617190533637607389406984030887637424091405960490797421892966884541166574773564953934301368951884976883408492528673847286612414247080139198229689229917946408779935954259931705985079467746026922397516953993462675915307740802548048378391712339206144002283199082763710645559138718893932118244743542975561793477051353514909509605890362763825030943737556814230877569349448233054412640087184206791396639985329867943020136109809218676301827464825815332202301984442423028129793246522227194499719077884359054314692230992946523697289140728632724091639138349639580159830491991864208927037608094140562646043443625114876013010274429732338626896793873563248780712197364295863646189821655625877107728007682260763636144823994864058180556603122494808061695178064851116319699184712154967587041596709109785968843499468204329564606768738871746782112858360404189993602782818192896418470342997246070073172515639912865509262619676834864267155392189636439797722401443639961731301442959403088917694135306552197989988534400618307216820313221427430470154355398852111243255639791739541581417947073035716673700215387700963346829324832468001252607689013518040554640007309562151084951680969000465149403290931501330291080418995084853889463433845847912773853406417546039763067874651922027184785392550472079501229007101004804121611663839194903340520380860243424745653284862378627699271593483525442763418956281664551584984794559051727840402298578422459987600595941043138408927131860103598513417673599814635930342320314178895523627498944813060270849837213732634985968188502251488983764569152846311963795153980292775976660513180016307576883895922732629465915875736651896448557168719646291710576148906714014263461110730207555451488111189002208245527854525073899021968914409001016754863114575933415036822577791047666204461403831992265168260227799677091902652375108255538089066752826114978057169739774849445694828404457482504298032484243650711922727330156457540824695326573782090407525058187398937127136421649186713618577185473072416567332241697782584784153027796157022001378205666627174418287231852293455011148768203077653388794124444916453896637769978986985884912241582314969055070202055641378669685221386028646075222837919162832591565939291107139356703645093541596098227442444570997435745483974060984818690011768166170537984810167559374653467574892765922595042211455801190294261431883214274902234343590501202409733076486367813354150550237972322870673006559938539246322654883481544534410809829521820956593505652271341993737335666323511255560206214299607345779987289643499870861931811866012229727553158508820737319156361010216287879998306077362385658796919280392917448868931054265082358726586200110392953734214842577228752519489982798826351919415246476188767268709896712217010178276684000785286972129347235856217497431900744564027861655817583097897844115203088740305872896426820694777080342272778490276040506113564608910428060218142833247620125083248271172546774881780026797052567639822671994600050062522195418648205163623435181992238501851133870532763166516603339234185013220904904923410326016514722623624554585239840313865943252544706203772702027915841162490998288264158363038446702816396519123091347472445252347689477430458966888202406420843740439083721333882483959690144259680710802356917432993120461497829535410292195149291888416238610617577174787979941559280792528711999147618427653257638288721447809742524150192200730398894481162462307118704255273651404602626058993658509064903979253775450157057487518571160395608650471172519462240921691782249513252074031670638352988449229312934735986621176782162937143631412509642000641662295194570796482105407682854057152306416401338383054284630217838958281489676635342022603268885775715440803317874615765369932504325647512258195532240520591397756708559948930174077396006507456982879152927698416968440199534523834663325321410619402613950956791517488581533339042035738945300900363196133776497463648393822783020884197842455743855797975445682426601998905943949109464533304452102164628069145222140508743846989447961224637501858809734497523608410603435848561277655057269514385293069459665218219116133824616886521708047671749074033834017474193359546722709779939527702795995899461425910781920543413312898349823585427215774648444511760402122777937091350946684529987513400043146476298691553212452185219368864697271488127480174426751171609930151690106620897689445984106893734998066550358018457890913428212232013751637578534569149768030040995556836262286894789479010277496005375656176417166784817018578038520793269915242147075193494659488117346255048402420081427609791771416824829153400143362838861772001173200480271896783490271927323585849134313635676585825522292459927305968545237131372981990615707502945743690842127672488402769201424755961582376685145977514260629178528752226019931867366019165830695200293009136762323135854182087966188467585317034600802908304808195011522444351044923300021924525406267713966173877980382360196131397035491623578483976447637267722599691014335154968977451846959404029861629701314272471459958326780050968090042696383971750855816952684240696171661746403172316043932393093536277176005240443779677556263791355375000666166829199707662685878212769932157322902276085286034237138160301083569502173473592161162174866283965019324307292956236377681184429581809391956124396138493833727724921616268344615756128433653316855308399292047604301867126244362120581874296008986567642467659409543903572999463396804217794412228896734068447494768185443706256499700302040861234365159615639304688970980883603045467731693569826569964080136259844240685764555805236518140404077456632152526299659073601360229860589425821631505055032739891465385847759328561074144539106568569160575620972528998231223108287984523025044337496070530061813614548442120309433745389237294004859075571695553643575338131153805966140695066138234991826644597252080528792087021527545508496313847712219187910339947658565578410999586082444909146903764368364323311221606787549526777023867225485103063969937183428198629899499081311318037681049832681963604341980895907001741393531767736187894435346677082731590545712954910568386673230507133832596993491034366072102444394721174901149547810970620749903767090665233531341497595801583145524464419770868366446628467086435149173901163381660656196760658484536294785014363180578375949296338728897515371247738997750312518599906679869529991762688386677400189156796876602129027558062785530168027388243111114353541870123610365278860984731796898633434772168603935640068200579189081515219873548019930510815609821088668905222571004934869150165565725748245819929059053920921385770406877432256508105715029035284815597986100965276552227120787390607639764839755455716677252776611782118403947825820621033541057916051469030726213189729017661132871332859458479504722843887238394911712605275269582151905084863667275592394729863656609333301712812744192309068257155134851738148900537970239668330011685076127054904193735633236702165089599051413021699221079475719881071028780631897685112869201407009226108214877822935313786918784644054014578067446557816822513557193571828621419426055313778726911898694986264535105820101458749850310384819675655610496473531513809553604681670568585636962344459538365980861133872338038243332614254939195854805196168365825646228489285441726543493353822386109200326382653003809075210633269902488351096861968153987297200700667935261843649960841923533374779543414262104435114713291487985970121430250946473467733569727788941502509611837644734110184192593178327612068664728242338192210672563799187985940745261316651548511219994383050935033048455364800667837796962191940148959884503008568950675548476420939634807584858065929743730399854439481171494390832776825897584189607444498298333411580556884946165561236491038341608668380907553711994873833539780191804757638037637208953738229154848542654719888729972558294264849206542132630716781169306113283360062605474332087685442883623455987243870504044816156077728926056438533528043675072709498758855432548236663751891951220514220410465795766532477235235150007287780664173349877524907945510703182160652352400377229392294239632512055377237679521999424573052086324435311052282784852296547994524034457810909861766297516587029065511278205274977807514595311735634791276992866735488631481111973455259762656114724020809983883739983341969191548941783562120478199101399466680992595904985415904902331554908332407589971369807070825155361431614244149928583822705073409280459471164506051194129129570732309098297875204912243022687951812681592737805199756498723596592710307707948987100592617381412101977715485268041402740790496737749060660134850657921823322756281050141338303337940971573481752846790877137077347087140887550234575324553974227401578154847345362061034443473762117011908717221717787368909291964449399557806147227770631260243209285192921133422845532192718874131535215934029196963383711250482377474759083283430442675596947880345335283021453462406965492364219739543663806058277732472174425022671241495376039061070147390827131597458712842422999029383907172785173432089825948518455045897872195222762819139664687598574305781087872393343992466433577341582849754745399099280313695782101148091701476423282153943451464556481091610912434224844662625604991986885394282118905788963521983216463912305652835616106710915640537943973349492653703994622436093158575777277003571178188182732533545789432280575711468458593371447362045103788019447044424132662750131064672689442756331329313030602795865519314393673765046774499526364542531668086535431641013883124362523459532012725809080644273450798411967152561130220240711798513740362536690561190968360277424948852540492701497345037013566307438295735937184379442386669829382768191773334596886551269824669800525751408529982354046521505343909145320702671237899302273832655574269524347358889180159309213912229728835115201295880590536707670634668612591327841403148354608434425947129560902166797623901374223063697295952316732417522947742228894548007723801291468761815467678067260011750997640265418116656006235532793088348802854826462217933058102404469484185066454303799432025197621153008101311018781929969995645652064147267386873929654629091480450141776988346539713549962444322988883329409632640627888109122744816360351003107504246066155686072033163976237899003204466484965353688085716611916193362766083613575050045217443413554961651333210776070211341355324876842168155940552918498780851083542143235888798325589284822669032717793995624893639767202247987731178362293504290243418065287336150242068636589362199566407851839631691248821908192357208698395177907130109155281152384455451584905188990702325669765036160931249473344164214640398105146162702386576776746311927328248070051733636587587484265345770197113056457914510589761010234750840788713929387421391329897395041153323853654075651421094606992761780760167310599420258948459373153147137237855408151042949627258722197453457642197072941219256844734537867706381148044909634801705904909950505458194895236761471903319389879172719223476909412806192591574296636264049907808853574606254697506110820688002338773721403795116597843429475830043227157696412531570405024544525719903129098925910583863385978683162000266668648702580622429574224993236643632790237297145721587485444501255965697815851706533027200683677909067882364935272667077903704171664453437272886946013848234335323849943999363460101069994497737851697511431093708022641523873064075187296775671705360437540371365654123027494540418395817867163849799771801903161322748725834760259195046895468095144451211011817791631737166161340131165448685968139425769127579241972775382868429544344104903939965332300661816832596381798744992576341489243732722753104888082207045887419962374639337122319717001225787024979322058498010202624383072849677553489616074896802977400312000958037125782500361429039712281265103360047994759281732904083001090392724487736100698910705657820967732469323375623141317374053790671088104930398776367938070365359561268818544534293687575998580622537087708940061861213087132895033160560075514629430799363724517289398252292566614832927424250787257418432665317101924411567012737850943200711038090960112090321044895526033565876401724186389741444745142194605596033140610200650736622527452096334382564813224874045152099093092767740230462056544399848668310506111663802244311925897945586875222106189124737595784700522795202615425415598501551990186874239615695286226709264755402958208832050150144835288877501866986322643601505550483982198068514601926261887982142973021069570609059049963137935317990468589029531469022263025323490548532320258307341244359920127522823947788100480800350165129235910631630734412147187174640220134361432567064153632766998435029196356871604268940346544205714030341664155250304800625146495145281325420905503370854709637887227037573858786121464115093013863916701546478140762615059465369365127575515950769882136808817755346595294408583945209072908109523058664881208256700217933771302357180005992140246101034024036277836051606798367648329184787627205603073714432405181845476077485182750646323345214418785552207615470807245334863724118017671868932122689386209228409421602244950687741320037625774360036768209349781029421064094505365741172976404050136631060408496645371766575877352185621314409815841744289478695093292774695811740996287670139525160199666437099015067674890662935756872507259897279973646773845005560877183145130850573487218874227141678105696559615907081901038828330219721845363851812904829991223448644939373339664586818829197279762504509853478102277407299949347052572873193355415741611715430187026529787090313009190084027142391925102124449538330064004306393194092844107634485795503333418852765354376624296262773273821824906647610684754116899557050706243730300245129095787746585335932622036861566390968284409919101943268231774333017739513391125434999364560259291998754534923096439893567548138099624017262426910655542944356244034769644564514781463194522526229191795792980581508745988877403828424891041315753608422753608677599263495500424391451587014101440614744776819252290434530542866421220272554778264176385796163460190151275808234450776090350685034168349146696322798437105625579978955888944535636884264680928753612350545468569956439866976317736406315517903611901243218237866788257706535148210350604552320605480055098375448790558010935535870423223523279605692492221058577891948671177843428436165638387276649772447291569575563289105178917105823477446196017499055631071243268494949024180670265761355866946621898745735514952223362798374551449738180356318366907686939668711680287359300820527119615193204095341838346218381680875943431687733105628537307244196873087561047326087638603168475550950824335577820824656729575205445940983881627654326161121640527910426392967223496010295051253194004925937320242405144333098517995281758715870519554668906560212559436860329143179260649307815567978243362429379885832212411577023383424772201436222850386707052308133297334366120259396302629638542866503795743018673787011404874294153293678761401561474795967369330439679020604256665127347571223226351560113644338095581624593966970902173316103532519257932584406785544882384887398842084282059136795528554793222519058117118643320199073456808003806147622347250078478583637185490257900421694187250551943401784831052435754934009650203800810561165623538145202424134277116138884840266941612520733843388605478550181000319425927317494536103847827807860291070216311029462784284868470566267568557152865862882527178288587281981799087744132847074791795641186655039892187841585099812990523374158423649342732684415003407849929016713809520507963708847823455033767588217760725822612853965680075887290811605343913220034744783867884515225949020882835135235771678456718507197059573442572119357792127278836562104930952037220741469180053670428672706297354423392469415144602242902349352664017840368078632048603889282349565273947682755406093753758290717633023849338965585974743635103773368539422772515524137986407258614000057335051572240822714709446332645035238493277150160980285715408814208674496410725415876561619669112897187491881114658720727836422458660091641525391089534204996594131500251342109717462409473569507001972873458900576346270751745240026240895925326014238062697306606107485955996005658867634014893412084532016830768115533039447658211414396739109882805514594359165201089625339881560823645500784285413613137815990752600794537132482670631889984631754310773964161165401407591561682785780052311774765008659072117310702986377423049128451811324652731992506102649117875253999215471445190213256877292566205843856900478616199230030273870332314083027746364356008503348238572565459683567907704618873433879131335051264645734508295030477987403566198749075602381616770474410691544918890154767208019958005467656195247839720749633765042266942772767058028172421546781800980246190355631949667715553462927507638442244886177556897849344129063187158988711210797255628409136255390995564001379181963544627271095378704046240056427055458613896921341270109538816950210134214233484848178046930040774572915528841405819175274266265340803901382993901200866780283224417781499133634917960953237791114306693163248287114010282470097061491543158790747211309027694280739269406383158409478291899477043515673285065575210125665473901011325549697784485924457322266591587197896939766081386121743697345985332297928374752010584750920389486855728824961245648520309033454761176490078599493829064095351543574587816007321717031978144182552285622576141713340521502185837479114643269522086410797182329561776194731125212405169291603330819610571505627691051933596458286253828951120667529912844559614296816497722552871024441186796954516074171539890123045660848829480242337679920705087574742552517973497683204061282721514428453504176437680397577778343652429111171550502980901554735915803725871483992938739398837131713928889904539756980879915530268199246952773469782484723723391388672571436610487993878095809449016541996727689523666116038841418329089559296296629978944868917210802053682770473480325429489172342639687546332637811009347775184821142763473515331347584880929836911511371404840707101769611120610649996287324267794610277599602436596017513263836830062660542278253499653933946436266993522364370015170139510624089840560527156190527554403051701828586964201752527246843784660048173118843993162824920054652292716519586292065749638533053073813813032702267207407357511818935411517133658975986032811042962760407844390702338907067648837761566419694473804255497238526021713152889615431148165258873277922841561843626230607813120124154210626573635032193197001628469173378246207115945305601327424780059935854490532075905321926384821926795560584070204138435092050357139286229837748432450951437658581285410231529513026926262475966321150616319844265895417871661358786423885555316119390788989532927547756456413763860722960459934968058797498574689172559636955859022508701608579573583800850362868312958500738563915264453598125845708069178111353327172564649789415867702334037506617092600820450784215100912056361513496395962089560966406199675152493129531875991851991049894855652664671104190315893703133410452463609685638708140994701422192467537080269166164036527268625487346535544464309332117222618681631462330942006844844032967611597326565508058308577195490288379943276199639781905009604825011011937786793143223861808877145277935763104711515736361573178564307783202016291379538050418039989213414823919304299400113316994728160548822389117479326674628493216187507852556425392679683850684089381947454089880511894324077477675301767976986268032243259682300469599563843374672214452986236209564688147005666667401079294708606173982246719231267068707857417097612071693828261631003792682916053050673567984191338710940680604433874552598212499309444672210693298659884983825694430149658429855071886540132834338715582377690190289782633739158184731829833775314194369061417983921906142481887749739120856244123700652284376354598430382240731079603792057662640849289000964608907367821904569197631650342410531916421030027090447566090562641640534026446912255684181452983265940696809489680261511526615173532473125217843746634882204332047104140053262317150245233524351612629399757463314678991868691942147934593084696875118980313782522064423901482086974696849063843934935435410284405924706246413235526981476684610751822614091116138084023691199547456919949967319806524157559723147861563841465636686358118415234692217720961630234031243788816012111981027569722863210384878514391575242274406162391215510190077309742814931280926818687546606944011164215869941212860074775053975895444420359632187319689117326515776330913285259284711123194912810498526410198837353103139514448642830704172314881140851999028314256762723225639402730645227737251519465034778185862781534888678365105109294550392159570437594477135044868452573638075239053508895985276360829590236248159259833126202088572982725181398486927241376845830966957663628038011534336068613013218920016441060042226418825161152885455985385617082554337314040831014369963546466422684810867141160285012749279620081305641859615262688835098918010909438472770885874446311891919252132355451103009588209087069754691042060035921371643559721346589611679554854464073035185677403482544231218228623828280593184156427592575993646163479571034524728032567082506356470814059578944387857648794465157808652884665764278852585285718528764841822066068470196764644343449092697398599641708608369356223050162054981373261193267170362238750672791019651016617607202638807340837752528243229238159405045196112758438202258124971781652925600762026798684055047832432775791930276726539710051648343915674952880763536610600247121876429505254548984263622765297805669082231134268266112006464129017514640650648807590582937122828715881524981941955390984464872192324762726226320519745994448320812366330217382303754331054491037629858725366975340780975633030002147539082352962887757341640651341081366116203787777683868649039944833422402302262517367372385664260927836556102972061184228393772877181014973880757567025954373713370493895207242987649083907493494055152448516261667489074596729115612996515183409165534084840621748888788009117102638959386972062161289679492436625753848595418291574272700368317579001803521473656169844213762440667115281469640754374756259794236707439309432098911765196506928448065173466216015305566537669793641898378963539635844162354162117936419659230788076545355733599289274455213464537785533443309767539683553982659501297085130886677949923396788260836377483072505324970589296854015019458210174729316854093657443723552126974922493143749889788127177728432071472146828754039940678884630541298440374565834490841848102669129852074486724215369553017528777360128039002577544861677452225339858833263317036356070202952454111073930823040052349260056213217057752329140382687846429318244642922876810860681895731831922040731899419215956687902487554289332108302198764864369403568342432211604946113402438119903666976960116279067978343330886798248700881942914816902026473128616919845369471651846453724833583380240507129215099738746917107057545730136242703241792792642663321523773732195769674038339184722770072226638340825314871799418678811013762956249606558448661213648472354570042668968401039725950397237038431165928107777069253995982972957908208360106102620302934171676762912287236483368820208555369579633249702529398721008909876388661094367867882382986231188789223394547262248112253972034788091735610547571256751851494056643429636137875282820750220161057453690588428348245716911455754361246863031988939708389218110145036917495112647209600011754714067360499160752258001239968329394103923500463594240848574719028509991619718891206692779753649381706876962275650717181735111891182804919299153457023251397879957296819247710400455000908068663701265265217861664436013359301946292016480846734417100184844830922870518392960562917698694551562238494863226179251970622765632304061581077678955665558477135042931169833922789057668773460251049254541254764851811391995673082417097585887598672331571266240987761759222559838197468308475992713978281491704125511754659495641750988174928141474362446380632041478624280772248222133604751927384270665310891287589994472230924332822134198899201777016228120566322662427918179084849228312484245741565857686982590562895016258620964052686971990802695683975591887956321060968027378354247560061973801058705817757834639149890901087066122551534528743008884810171119743330431189285367263063056905964203395856731642023770332525742141791127844485829506763262895636971360773659712209254305449168124092204026109499576956389712188994869686043978377595233980324302558425928934399768567838653451006713409248133052457808075297714830988864675355534034656490725189731912940818640356764564193376356553641102698909893168729195316012818091054114955859426489067318869919088890312158940944277173775483301412247625020509071222390732347496649358203060960927642610354539087705401444712714302774752603633998077159956118179843150501175520383075025528389314896304145224037107773770637039500973025554179014293427844095709323503230160174782845777440630853276903667273816283640321248272389795915550637916810603255891239228341250243438130372376583992021863019637570534081806368929160018906098013784290207864605576512067002344809708742829006720490295874859708189114309975044775114562557663215879486006738441935787862481274959181186402624655648639977809391777737300979068451677687061695775823339900781754128080397693378538621186860843389665279039175354761687508886681247875355836813877233417890306299448456369658509285774668378714555702734917580577701915461412681491311883890197766353748235774192003017055143727663001998249366003332617244281452594898500070667658858047260947353686515263365709328715855868499746766862349280301287147688388088389860141458823704574520151453058436384229494668743098426145377524555624120255305017906647223378281162675277919446306689125512672479632743914716656247238406756643358484132499901853217410921182213064266761186055400040232981904417950854984798574659828684847372089225208678963613313344702954304255656941489418677856447299170958120643124302975234459387726728313879223524629130158262213101755598291487750950187760687519710001320025956036077155146332633014817891249595750614917593349924533758931110426504088470959729257917735822480822878236410803996501611859951838984287855315043218990021736798740192283192389218959228603348052795627992674585782536739530828383955221843861169022643761393478128484158701932451410313167754607251724959322149695390874409276252576875861122998295724097063319417677098542629105824288777773719701804705022957543066004199810844209585876617537519800680004239674422314037907477177745188907707657838714907842095044404591855084680972811415432046986321292678215198389742687477081633364416722705560506995005797404638235032043013276855326549431891316631250185852820865115364414253943988350368252407026938035557527617990573336936795410541021265470341434173036871286419582244254185259668933977269346195360345574244015725323545252428058571732333159510827326966467311545251220436617103073546864885680871121054184434476873043522535853734966503044805378555025513630565810056038931933615773935557763825427765615519757755084704683392990715147340849773958443610217862430372898970012268259066031073589565764991496219585360444691242449159899292875277328017081742760246114718045653955216720850430916293373858163387530610814920930043200868412064440555885328318169398164459080971129852706885642668752800303394918627890070000666312308867446535186860584105404965742821254070828838575975273552148529543768125689153193984493928921769821419871836238274048503187624656450295308880007425638098442649451992744322799846248194572233572034150585177494112158909283583660255197273455620476255741086666604099797907514959700298836664745120798816334037493401536879293838302459394260133595790282906698066897509742957215578817245543120963941784586089417693725093502232909883003259792035103970251783143366121553756306589957272777104812302981486714018014938463410587447163018609229783546208770932706972632324388825477681141879984486148230680143698640706356893022472188093917178788451220646413712164927537501321030801137492680824426748888527228107398031766948613857678092199485553773939326092238963668200586597199481123714953915254236178483091713087115994907957966985116275216466512803903277477309951981145136079385405165001257074351745942410230064490416626942929304892136543738808978695486404957092312953267743930421285188606503288414095411950569830591782882601484296356429046029670209158155305068431458689288896248905075722945325655257858887480429992965734950464168688211158813602556702897818551899208327101953227554734814081972891392735346873267259111899032467537682824465221368706214554861933157380868891566528011766317340294731002028300891442434347597400720861698350812057814311215542907052096526360418071233995737175055046114532720436314634375961866398848915079648107776771562726679690329267037260622144639544362935878307772961480591690692848405342690915731083951079017695367166722180287854709653521608432284325299086943465396346448690325177501382653138819192401458070358283080264474948915866975547424189942422686512443820059071529766063709084570790692001130707293800462429473560390412361418858720801778120090621219088654987637960296590488266835295856049196679262440874601675386806973767906305266046439860047563104564461551487005404239440537015240525909636140285630216111742737149127383041268007822699264666384350595025691437709815251987061018671982689956671808363846476916316649591999205509474805814066861970372071277918629380374402919757209643080960551912803115050590440073363406456547983894550644431109176661892678952355315813663720548573326484635155410048660467166581909580375475344338679397520332378256438929651554253485154334395306317808963545594348281121175442311807374849940857911561802224712253293163240710970018542561513235875877819144218330183856791417682283563649254994192375425518398723370345780331650502629215107766624689403444170506896064324750436424563853769397822113796232417176778079828719292126668871570121801576271386419185071518491917304723954028565180968407927021206476144124808739881875051327061808200697364177942686689185152323124946243809679375959572760864992989844805151614530258702889157272680145022117449811925656243669645199057397197750456525525028089493762986302471331815263819198836130792588398288497538952354348612287787521925527865294395353544977582639798546787942664143197061483458315011981361724428483483433536823875264993404178202128265550207404346980427717343947593833278320696071396064970926788678806647678647555282671068762713394020382737731926184861950457855610716274798568786829042912195858452554260582999564511765859537279946321922379825848980078868324311154343792766625208646782741165998897714405078458783252762284992257436660442775807143802250191389831361324157369697060922127334057948454717755950428185860459147365757560950460714433273132775417675439064840468793923506570187203979111426809009648171982334391216946770209408978991898354782688522133169101169542381900647210835935466490198263601878893996218496922647691616237608969875049729761385885842642909072694421864951528204504743232038405052513090243089608282479191574673280634759980795426935667490343368153063536708992274913136364139050853331907883023923729624906824101736760174500922250736357988029851518822257376676293360887658460097676578793713414769311265254838544452389086563692968493549921297697129436097754088441880704970348753322025945724034573214808129406960404240554383727231555380838895425667841037864019654756094524306732704839514307314665648083399516091677275433550324895402658444109902949498513705857058831340549223288424380136499350887374613542102178173069405667706427063656056055626752681505348238681634945451528575488542079347517373624968726423710535162532963842181498054164831155853705501219834368192900102252291091866393518466189131455470485174409597650726753010273290545307668246782361156513186750446689117121015410621172886395841448414935891751671781306605417263526222641705986108675305796025070104607867865864936439504067801341391553294379574502638714029873240529977141404128349073069175108153104206989479263622333885904592355931178854588704755860262103206081782878313056554626132259785369447130790161309342110784358775782544754702148016839554790697209174397500797913911402377805962910670539504817283626007238113898084803010654605819443039767305131437559840447637344612074196865280587134147229725698319582714904988245215339788375547314262179146707740980891360916559962297971031866927122279588117003326036268443885530238852796773322997442407648267901752655208968269635068819112469940963516671629674701991976805183206346240767545796995091928610818586852286854333220093845653658672442283171067541149859314898857095008049048768934937737022085755093753073188076626880371935189965479309227412471928040017647883297413329128879363166858226915565122702939082426023443975384278698571683215014026248527075520331091080922929893753511235720793448363076937594475664940125340591306014101739310268982917753923184771352646138472244906668778474252539517098591054496913169190089841492810153692966935749380182588652352248993408152516198485191380813293272605138215424009116968693239379750805578331231214996441769957771795225119673447990978550770583646012246883771113115270018126009710304633805988864322597305537019011980649315498478545436252053706998163643549864996091056936072097050639661541669259687519362181041786672467460504137676284421389131824024991425709223842310308753004888197784948409067085224828181141035917393619271357428571989422006200518413376445557957834268108770268988138721124213909448123130385290763585139314279962973511752400862459190594900573773817703708849346843863049603055721358578086105005686026624088903760716237542947499999592496708221267521140885479120316052088990663239025272496575540664788432302356778605808164463510770804694694402765830578956373620891297460734719510358088231031290324888977595679583707630470334265741561319949156792045764437609874236333580578696882542476103623045044998926158912821132165023998999597897492163599719399285754013017363719408328776238321565517842175005797505368022301969144909476497415914101636561543614778340906818888852571044595824874880598407616032859999996034112333593463778585555823213342723320971256575962119220377005056630524099387047007778638384229026550768579271775361217108325500690886448010784775509899536991120602864691223971949488329022743914158788442579591359231371418210419615682602614509670934428131869570506480982906937234135956921712084673572674793520423373729876320736535828239737825799797778102211567252848267082450601568473661984878655721444925490280568279191644491807057298517784089892508971698353076216421483304879980250056745022792415163668276295570887486039478133055610051484096193053733799754000359980386285476379512854064856625170206986516333151864526625162262496368800463384423633150846055237387789192960957563288686763326080186625510760811492833931002371992271490825115525825528378334882044632497099342501450741598429629679453030377714284719755159853752710733132860141107442339445806569716451828691001149600356423411876261301273012430530685155603085407814183382977247796179691080671009744547337605505303330458339559168863378250232695374039996480763309306998928927665428015253490554890104312519017117424582321083547720154287478771782122951382280062004011510382513792732445186694454035029403209260815619306373811845628988321570224085094421716671647598702350096539668817761654257060250247547850745356164397090629794875269642064715736731514294111492238069040024652561837155945178323867699057229145756133037416360524970292755054284963124700768043513878849257588348686890407847359166306567031752154755086632061839841513699873513953849635292036989105419666275327051788369755510260203255764141404003787808854283223188070138360123711486001527434477681190182069615266953757914769251904733728866196985111892897022834228320039812374144016771068712675779256609232864549339605051598416864995978190881582728851827448776771700099637204680208155154830199866761104109032630317177592391984509689983339736277374622491500585444948534659701372584745062324652019066308242673975604052294553276736238487728998606880953450234681564476802658813028046153619926999346186084346718961193454926624208995189442190776479721094063565112937458144263816409891874964947853013902992554818091053178447701211208222342872505364188102309249616144253829494543647039536181456595585989644349539700938809085658000288835261787704413032372218334967843476181495963267847197207171297059714732789023383098646224748940005319863239542770025984623217555506542233592332315557362238670612450472690598332673197188706763794148767957452932671847993362005892510882924219122374434985296875784378437445599625608493727095748661956352704983763355057645419363346858768854082833332432730152938802135375207849182198366030525816025086964671250611535759079017846099957094445265870280202594759429992531876192852429187230820196280067800800099217736125035083036662081278084130912958500201355034133369967004315959746835998684546064076222517683367015874447782412345365442049815009010002203865168954363409205971396369131782819122644457016970400318851057937184939061649528884285666734965465596325047841107278681575939365589933998844646687282430829833746000525495604748509501503212805857391714115763372346781628520651384760822792256031653043312009611448725433513332141780488621311144239418981953729240397814752676797562486241808206168748542738217060007223085638316678854079353746428863215737948362997910105644472791462817810216573116080667974622977660032176322460617034714898047651812626670239423650829951320518045272498437501271438301116666415030408787999452559554817360914223669307502642846439736117374092013774719325782322616932862593527238462988752883199863819113083397349012105988875642949585260431274046678134901400178925547164759829625351582752931703695950715711198726663613166039384870337816777683982373026296679206420442530425301635320424874680609523844210294619985022926479315710386151720741223413522824016644995978281322324560189384009663504428583097755847428318102281600179385053116709843960720052756818252739601464081483627706225168256876767620603675964911537894179321323119457081249768083958821556238267978564325548059547259011450900917011807070732898442302649812750881021072693654920626777337771641141096622622868989216048053008668227174098929845325628687716323906228522856413251716634630120355925841274975400369321907819620540143819012327536068340042782650345622997458905384594968660729761977784491695156114041107541604445004781131823170625440600316565341146224404688629594419133153102733670643708052133293981225028693587992730911062571944326922689093799020011652768527891049590978288316884546827493746215806083576598059056233567796304111215199372148061486414889126868393730402363782400605664410116486687476058455508523585392236841583100100196363726265009601998597825959457826498555144200362658724588701236624994944362192605308782786923369436577269076689316980596118809479126345497813483836417436772120053458420793999346618087382611059322420909266983768277533644458701489752210407029325901623012097806581606083128231021135993431842192793596686485654482220283433604624148157792480443798397694350687455085371910758753355594018242670653002947355210540543262226575425440856429837384960379227538400361976872296363477988279865587730499700842455839637004661003022260032797672320116489786423988268289248392919117014082500242556854465248281920796957302819933926255324401041133878341314090100199084866401129661855699171969162861848491456941972263257009406681948924476697460014362841475720302490218914370440486357554027158403759416018114641548475613349028364271581199544960942996828476081172610841079909625591606353677834987050175011121657855240893189167849809098963556388512184132229965107985958134106185866331172395753912122635085686795330110825343663309728876304480999496944097788256571554424157532711620029905671197153833631402457635512255773029492209133909524256214288366385961941672295901648899525059779088503973391830385119684289564260907612578282360890723763950167594230248803574020236795608018531142104869647518019408509328376381985202198805819623666474286881813098556166234508925891841754160243339796129331225556903840996881664398924525919108530846973238335930901743090880216252957025966695581779261924888453642123911312805376572059201550168553663096977715689647727570140355498439405864254643803649403262370845303802620417470688047917482985343403102074840865334215194534603489865206253611225168267445546553079296061220802390419283280414692265723836219046345252098462855461384829402343628600471418182589937786387393498356108002661220150207333536174020828560337670456784894994533004259752220242586226798413203872651597741304073013902243296025155532203933614002885285637661501341821826321832650558156701350534334972310912137663411466589750793033473408414302042956005600737964398395239378893108623344525179907096968363023268945774677758170167563048568514349406905479924064201457240247019235815744664965307036456857310605292249522063778767198309014926350746594941842843967255650427170527360293174399535809783498117431289950309913764888211438173765187261470654371016001487918451418162872048173631304696198014203526234445352733959008217367923874039710098935666271004250224403727259385213859282665641393732142716805661280318528692071486715943639215657788920968333464852019564953019247643361504737130938721693457020759616695689815311590018139919305475358049087222228090682867644262106027045014949969046145771119603193133608076140371425800944880413112256703267907111017075215023687106472332259966175344721869319581198608476997273629523842472370495066144768841330397534702254447566209458545082968783823812093759146566421017402050511449352151155755827978486019407206962989267127237654095830400447323800422693641532956514081964998093814444420611283410080857262393105677807427711243380385812073229367985754264908984999279562652654249956454545586200587462683569888463780520898579979259182370421874701186498026017786056661232992055184099464476291491768730449957501933615766898826287939119286935236172297455148948684151150988524491899497969313939057917265776096225804826569554664837204535120227271188688855630333498569826186048410461486449653866670693286380312062213878806580760880184842033242197918243172662563703151071495597848985947869921597130943149496146527623039537218728968182872134276226323021816667678092654377917754241008502469014187490593708836921636094071061644210991719423176714067042772418861339372017793481458343090582721869458188938863114633185736369582180978485874862445240570398973366103348446384659462829716347951163590490777375286011905206728052875214053149541697903365405116184133571238852577362759979141275759030982589283762435845228950086367278675192787382441364128602523490505277383481553657744894839024448468895355443225503766944727098936647798040749911569245482966392262523135777251326636738142480309706642479620086675991179032560424469092752075830194270065818690774613923512219680055598855484992897764724283892619619057625708098589507931043682596527928575769646775003943174091672393083598875235842556655306382495189378274501884542800336924215504925607305744182588877254842343880620786215775876431842850522580248657262524653885850516281380372166923087159595818142584800996522223751533907904265966939802644105256862859619068803193332477511186577432162721879976908599181328032753543529062969267879091994243437525701440313780199726477213988551834752158622641373078078108670248559018074588389568829214456701849307087561137865461608409775134996554520588695009198329976211538297912310613745687201106667076917835768516285603244582892078196450734258199923478364794546042405903679103272644091661225641232640079754737974572349893880430390893056975061019881185113807858234301764012753372126038592248460947273569678320657508198710926961532828969651278531697332722347374807075167715137789572520124728854287437542958158460958985024491788033867328018853960214672775379090672818725643575735773059279031917937377145809890704142118754055227871786422663318977213865805291938479881214156030790718348052224918959967319862463430030590976629608136249996487461970006538819091927717529803210872698097357655150467089648171662309822060757173074804034106769832780254936393872861798955303944607400755214201204566911237496997750739597403581522613347164780809041562095810712253341040798227122758292110882947078979790353594776670113263490467124774571674957517972987171952511165862976951954677757925225547620899428685911679836562840778799676683204030312704818350185353528165553345820944487381206859794442953619428767910786547456666829244394929048362303465189026495185436991226512693527484851590732954250993079332157947812731496439289671334560969390723066173048238595247229149140606985021816355386346034017119070586842977024081362966633784910800392847924557520354110842127041987462880568337908759619781949056543017805103841086713865436157059960325433606577963411356261450223470770569205225988552191771984481090382058821965305723616760952992584452315706239715872407983221429657603361210129083270414166004329484854338798249747263973948025099699245296129815602731360892023763188386453514729576579819174603155221891393125025058155829162075964496769397263971411543372333219456520397635192603318967381124148142647539796002953399209080634213051861753496165353045250174901031755108600732972119162433975190081332152846743677750766850274650909712477476461707676484888267120947760824470462212501925164752290122083532158786785274768097892752545339117724876582354393333170673286370204139751663687951094950039956629707406708544756621567029499623191579484309959473630996471612416009172068607403609432275441266807630167983984480955065136161162561539984431503359388617115629986523433872696887566057535243021694556771106176438164467366175702635733719724556091637782075195534382612120901521071742346013667883608419556984063796148746676854936091052724593267419015310784711664423370348839229431510672058426510183939070081126281939817612704600057822838535627358419828302434374375511025385871383509204588147695523657214342281737151649474597107729474579593637633298701020505629065308992955397403403980307231955695722335163993275593221248316205893020667216027136789554667542005613914083816669727530281443541053591676336614463597217092579379099278868212937602036621040618713263422860145908453479496863118348084743636249282294167639843697422107227695579894818734976304978527236004078766463883030799277003021732500595562190148844061639904055219880580966820919275859019133612969175995733918672633108033883127565819596178053261469394548022542164075251427359925266251345903224852636996887541269547462872176261096755645417068834651794077334982504679445233719579263816079468549885428855466852061468793954947523608543803202313481283639789402312955511445402703046781864309101282902490716944052323068673148607960124777359105875336573866608206687465226105336018189174678994580933794343168503397138723899229698754804464518808797084416657550350156702234397169788884728158650459333741877737392669158293357747834441090167433354523191077730939673253716396394127018807977459500181222516850305878365796186333355867915807491307155113319082646419913965125090961350193461241504199005691289906707940642564030680814087855907241826568961599660448529330270099347191779027646551513870151981864509092029696914882493620211486394568693350094813742122661798991606799668593603045556097758003021487398316374081043112249835757301058151333613288243443429166475098639013183627253448022763197931359252988383498535523975984450967265909237441200558048698445658248483066490146065401571258834401752876827797834228370665775415333690258545760386376086989267981793981213868288026598211496295596705662885217214504833833954290534485137809794582526104777435421755573885895778466584008363563687427772903782480462068361077197655850829968583471142658131943403051947751440635278725026976432063294037694988152314596613162960621915601597221837335671755751327226324584687567082276732410802845552879684200565716488998353932581210903933662370268644252104002640743072997220067261452365619564752554577402489740732268261821874041780591177449779938854095274244426816266423229002381926568705834136877955529448715753250900885958142973234687355427565264913904003601371522536767801877935245728341904194349784839656939721743827610607301077806451754138304782185778527518227799557151664286742249962356303517592707262135422732756423520419298046147596476003693980766064772329238126975416081013419497217665630392269265947923593010847974090518207677570987912443687872824431957537030477998777766880659540252420512247802419172048676827128306500421276594115988103122785635751774090698243708205763643595724311050237057265661040213543522515427615934792919160700726614483706053079573932506368789201474270120482424177457665217411557298344179243865404420573110768493199060008299625711017406074851408358924458671177408185391260882471819686972425213576885143535897897246117436879117274350532689083751854023039232575284697698698022743472543474915620121874478503569220014837654036455195282909529153178601550721888142131623527732382425410504949164435146448898809017953676267609855181069805662423002578907012231785836060941741278175275991250345806854147962318907571537307901939943136760730580908467597371860371018773376834629041855935197101524443263276864012377264227573711008510546097063883871092223625754131074363673881111788804267155022654068764814068955463806091227532416676511571624839335196560687582730465846780025149985274080102096674367436025075434270655593596639336602914484021390754786958624363606229605080786619834948956764709526546712826825859576848824962034237696839164951877670621454946686422043450180138726649263340514742308581061097134356375866293963079956680165773433777894349412059620876400529047061665863474062537250170852758716409340048397387665910681647835120751846966123880924840239978905951214372041827682105793571321343473476331096122479716934574780627806911309842885747594661241938338069989321272699782852006675996506420783220387267977614760510776034452900595461260381133287720694624456653371855075875073999024655583778159158731135710578302410115326837256421378615336485522881469861941939328355515986156329684800852971251484674355742871301120486232462156009118217742266655968512559042054398605883639583570377677666993288157281920100409791094914717111642191860788223486550919610536731572452659155972431974391545345276388424088974738961314014277477406660902090551062981000791113617759877699978019194951616157161561913099932575544365940908785537772170010320461392507581587715604212439925345504315515275116562594998532668150366221100656155071020135275204633716275044250255016807069974104206093301221568476245046325013281812256322282187805928635294399396895908345274274120501330795248155639111979685110925555062376840582876961953226099621094558227590958314361932972463221378372680938954905326104324647072183963228312752112970967619897059945671197107418700050409958854225282190395866546929393492052995171394898054480964328397893534402078998650561096942918319895808446481268441549494748695741404738169315151888637315940785031348984524463619594755935721841814892294069511866075605165296381563312951378301442525200006436898289909925491653413914142687686777627322764540334365983877722332414266923539933622458803534958251745975851275055517719256103998634456870143025286855345641634096146099141300263434097313423220769447956027457949602612097249712351322730396104163047564296669012897376094098659462323711183460117862279722794912233062753226501211695128144386467987921968362624833102114731245539842696663514216481866847402517888178629131070825534751657199960261591638446852286226936560208008734032136582569925572392621312825149486254485324542549544967768171926289324223200763182046622140202425728697375618598789397815212928147111137286732244348318210388266915055734041462605922510268984632150459357234101326280727793020341689397763347625263038337446502782689649802286679706104275819473421547182277094264132823447354056478539701605069031365125994056706456878195895232661826068124966312473011835335855886793226279925211811185202154793759091994116868946749495037982527230734260483282626449542797185815426224667946129037240585413669233872126305358941486924863173007873289568471506543599318923232287341395224785375110898696553755174195317798188594179802685759135498011098655815166434857235538566997564079466445965515895883298232547669534703619668853010826118771781747661967795384992483375863924486195006082056430569696254838800043150156292294968891903700598526124912804205644911599809916962113769527454989884199117081206903120192997579055237231872433922316556800638766504139296653093864215941471811965817384712668001145279019032660193792373145958057920784977229698389150753714937576134695390306477477030110192132208078513724774109108358443072373817378371584140268835574430408945864858364585158333283083772298974845206158977658338330603357973330825308497746868560905302936826644310716665431379376290015088079155709442878010173794626064034531557516752569404208628210626661001037496792535686692346313568450418119468861658098359321271515716437268849850615412345261842135572919592238827862056155815514337186871059382709940774402556748756192412733626460896706876175923695503459221508437819864317722734158855796220805360531718011331076647495464462139430740386538718213152611389366070472186064806951074662510380942707737911835380267730992777461273916938505904692633346724233621873467181817040540029970971336577712921924069953172147850972772984806072704856422804295486358436030073498490527602997689739389182871205753939475499459584516668588847348598694604051223839838800268022767389600406626197151698107066849094845857950300935071503954564468510588718721756943001159631002341679017079078995152594998516803015183664284369560203051427454137420558245165832403035062676606607289372944467706317795377091713608972550532605339059896653101681538897415162626300378578522120109283784145390754968830108488692634205027905406399484184829611982403656524425109904397460410043828390472674739045194271817164735478535563090404614677079658071498395242259294330082145478376063873988964788444357096997273550689770753662052966154441564791092579825722051048583761635684595159083025972706891968832262040994059117640155903747621264183581837107518655379698607334697484857377013626871962047811175394769319482344263239535709984157034070677327356261050659800125280193918584746699290231290238720425170355592839685909244872003384067240823598976781624094426105206425539399742109238381933664415291891183647350938633456303759804565186622062473614757913185441096871897824645251649997821235094123188783205066420666490720726174474048480902205160561590201505168231729336516104792327545000073089186513327571674951178736024511670411058194822065304552404142362469929865766466611610599864299158650729814977419791557808930035066108111932602269847847183704965850270360446977842256793330590595563926083629143213817257642892105894962428120925000650792130860092249313145040011839386256330016851046478937036319852128127381123739953003459313664726133372357920472525663991926982979667757953874754292058805988707006119290845742590606570143105705547591384085823136565844400594096091976768095119352908680289585095970867352129508661541883478483803775095937735088985376594938013075948928723300733427108715721506550833930222344735665639859344761712687128171763965710826554450585404214625856143074868603700139457746885679101697425805617083579576696468373041230979652628980970654849880995174240942103372095900841724172031480493151741289053439568953715812140716865481051858844994435444089040939278320422729668213239061879420909126131176775863968148644808822882224163757610273546201946054912608698212155261625328572698398074815479055612734893971922486422259567832075059220232337298670009691331064877349976778318580004807994056003390967357946712533210200222714195584122617853655298492657348253952783420662348603821725231166387539935719295791716478262466540170004500946456239223054060505591700787804743802730249215562666901029424286012901663766354905222448898426246328204808316782824343422061117050540487155914065719630104442656093167319299238569027431267675116622632023628224872728059978395244180043412097287596475439423547310376068279930864174951906280986280853307170308399097240370052819389492327879282361771764194162900738763284084007161017536186068624784726148067188658707905700184766266424543561472205468965885226620862955029693337820918368052226214165390215524027554759805201218589192698150122908593186868163141159200704793605734721316379561434758111158498579960888541556351068392313122960788994939100902282717443358309710334517423502236484799739612122933986548317115376028737178361179977246930801016206954659055378117270122000206442951841958357971339992876957439369097924401859988799540788383354540038001803509938453211990018533631185545012225397542064210644459329388897731331385824889574896273578266444379063727774798260556862144894207952145874127125744365478953379906593798630802857886265520454084003774020959420206463969760127212613823918447283791289255953895511959158670223886562629290140736154442259860613203093521137609140204208332532702401801548321634394539384382195225120466760206601630853524157892210275635789511238759371511421528130155289657962655151139419352137355383934702598407554398097538211574596034830809267187255806749381058561334257743688274676365141514980433687156740846909175900745465450811522990598727786838393519558028437652192556073722622191268285225846137662128446501370985932551927327810621940868278138253725038365569544584218870670223110098080156613091257564715655058887465833497224033318830823047422627496722329612959153926079880548233282569644342153250780394417871048406494505379093088926110292287350634606935174196664739594243536970793733534703229455158507328627579901398804068306958833513817183063012887931914180772214446883855779810101585076400773020093882415660565913841727846371046278949156486223556739547056345309635770729211129327607345402036579979054639424271117488556373201522267106439336043776064350355994403656904088792059397586380219814960109693928759982031696214417700320554815009914427386705054451045986193769885723868091372471740576234479271753224283832313816336787984254843159800738027495446934435468977252549445617458375840905964560074143969463997453688035302452099259219129047078076753554615651258529646040765516355837310327277121108404230066576186028196892663772446556979167471275522930597368856172381521387686364744036429209563618517541927646293638994347279737690967386516039901393940059226056749282916878331383636939703645542558403622999617669937284675806761778136628794344926488643626670833994255647732554456682099861161502528633655300241491327132646093171247430453670557852421503550115414091994228197054266638942450361102611920815286258922659091159884583944404056622892267504959334197440466166377422762082454987917269127525862393637169990651711935932460697818749645095397895386320046211594091581441047488955698877911199904787154620332102594556036224031204126625789250250095466911407013666058827478926199080865705868464118722050527653165464150178169978019497811671465841296994580805343431307322321401516993262039557175417836893360382546109303146374823500897734325729901115591471607200999439451242540027239666296794349665701989184508099484736019413283479478154197803332125885736113242532993240045899015356434398561231894787280409803417624898721981862679183495593448465598511919020103477400477054221644281356869155370393000387543361744540086810010853754055166334237363274317579296394804921699930091301371517137565552748002219253697556159879756119238686553272404536920779443451997169099739398754765669316402365836155137637752153975655994631904997673576210590483321012601381720730330829200466778620498854402247081712166298929993460779011840379514424298125346788325502564988466740891743741336051774999736396183875354635352955423649067760681256139384575441038542529457792882814982144374900469281639453033569281812091348003738263091876714917853411476413396029432570665981493219196951057296018862862368952039337906123542231423823238949913900586902072758005998014450145755830840208551028724404527215630043090862877537788616893490151715423611294167223469444060329586545241780977929545671739828333334480278414728338651175421868273383469556317747029244849204747048287024037938915311846335714570551777475287932785791526005433105278753887488581560860528785321619029160116175940745341895127009248445724772050592113781029941910264369043157454499883003517897582906054967620281705517129704502398883906248794778250913524679713208445334082275875263136310560814476510260467688124244357191011839833040318543153366356685883947375715652633793199553647804585973350535577531539751932834627641537664795419388825061079097080038899150680025516092565626192319199318984807833339654196136358235884283066180505256345247475787786720647152890478465074655425017398069982075879702563148097514963331246392516920802194933811343909936416003018263715073577994127536875266507556366914389823567268839826149440380149340534464802660649861375170046205152346585497275669276936306005714946999636018899887615747674008285535835892509490316966892301120928078121660852244904900821571512561053478220300272477781927164783001240237105897340623426227572677404539708748668896563834895179010534109715294564460029175912992876896474130991162405358166724684711004828820801990022912715390446154463194154871402671200572020881612922720886588747808350239222551233195820839883879020929286757707390971687323880923684685401680677334475276427245710400467450836813683431691679806866531556365495488240437903024194953704337233225825435436459885648580611613269728596889850137325736242542362221528915329452444440260184029303742791119028271680740199537678534769406274886931097754669075038895709603350643540797147004311256180362835392411780266205031267883985907785615591242282996592785045721173165436599802966490837636936047443113434930107826762132529241197278806289424469028785423943647280918662388917520660726748363607831380074480875792073984657535000603602884297827483122283035164745613589506533219059510518045939880955314584828492143949235485240453770827182630953861096663931335563605711594222394693663551842437519457578385249059689212624787014499142137923963884295024941929938695386031476812946803419384656278873394363087424977106498420654801512150794740269272066913322708173767547613558111043612235091595844893815066500750425221832023335248115978853990284475166555042798093507048333693538411280184865090486154108332150129324174652764125182177877218242661927816994055307631829953878532376047367222890910550046622104852404930302450397494475183273294334671883662500263082428629457576079335838698084905952968212066543578212709671431865226331203469888272782126565944655417227990986877695837895757377251909677673221658319680382797036053291813392258416061054055287753750415825484685229938397851279194710809325758741633318625559127821497293834693811540636269130482979919442922848399820538586081936555358367170780996086814791191347940210298194652885942782745913562267628407066480330816696998179042314035528946738930915423895505317966390612814717305421085519965976059814294822936993081594250259940652681679648255338264206959529412169478101796858804449540694540275699340705649444288068125499977433182862697865505653101369994460701871869232518864067267125393441107390094346111371009497899871263510303215517929903102629323879879175103759138710220793098101135386336995175607038373973145376992526879997478812484935722696029812659036167097848356776470625269841495993331955836066317069758772149537604832193988029759431738210720196954461134531766507822028591436367854589300455105874875075441537661915904379333527912603286753672071198981672269660696248082486603744953530038457976745476644351644212021211356258578002047991913846366381577761318990178126634647484989873127537367234511014571228594367253231385599840272220676306600653358399303724415168053247013302612456307892397524610661831889015918344960314973544701967379991741475915761399618267390425209330006168465189222231127097478194568658934956133743188856953235136232341499091232669427451606080925339855162897782235107631616503116058674476263596394647298342845942947813527564575589711107809075833138489245193085065087688253170804949931267241390002840848504606004952943194275980658199281679589164487207548311011946929508884426900685323087087798565873577452400898479419077179718143494799272763196375459896206805717580694476812994244512947656861644229578859385993699178239408324800999368816380111695500811006987818531279730812812502460301779478005835121117118084532214413104672257246671882236811497691206924752824849245555491859311242952133406873031165860893363518677530386619519659708190683832085936479767837749045040299642043897806253815966583545073343325747187089779711497505516754380207747340416450072674854655777559866463088668388201036950267441645708932905861936867508029762533788839087075895625321519705401370835419849586186288370932228487515168013924135076973313598309334549662153756914087565914960844406394192039970669753887679294344777156044266908799644302238437701135346754657987946334959175712630718934230032241098135048728494580527739733796343664127408908322040956206821445999645690287117557609832632444957310006389654386841242167945853100016504521656433348695230448273051066837102238296052583337783347683082142500419534951690662806154934352503998453678332714826926529851160274797330974139461012273176692138491908570541788269651718496869136545147641873802316727248818821950529306885120874982188917559436029476531791589731813843819465177494766562800858060150521688135141672234726895638575824381906902530825427303713031802730731262851529871955588857181864877852311705464825472083337788392684225965022173479267164720429869795167137245328683371246762032158922082765938568730895990246820166081335757129356509563997418489052407225732795450961443246758137723161564488976267320735731175211776348502169222945290475837118467341843208515757177563776431046877930529011307694052651869742195534189816671133476413915114811826627304117300121669909244287179767351188739900959232008214386320037709023221186549472062483539079517818897015725473483369188471795713881625367810741831982756811546718977527387683804059731371748850083635706090362135932899233198673851095798578760481252058273720333632638034869266001285414687472183378252993053405242924115490067110894308666031927348282693881522090365939405584631763366007283494010468530461401569076271610027473191232459018503439527752319992677974853700445465855934098007435870733411457073469883754879701504621443916995267596568025394003100305443978441676824368732721016644230858873007966938668345280178333370641695142082395177273146391172902103413187519583014962144513734052246955680647127088734344475587484563874971033330262797677042822301645738823232542718435366009724811213849183088090781029253675528537976434552553547463598927187002780389073930414728353302591833309203507396812286194484547790458269866108521342298338734647903771352812097328177214498582618033700870637409671257954589890540350730069705237010258521906446370877307221576624695658312076984715265517437222051878838302737745000021082342727002507461594354235869996201281275752164223999781468044616843043615606224537748104069604842315670487169395995278873664198682020312736429990513228496552421052638138757028023681274429796845701685498215213721781018007330617808763442641431622920302954262297290313124367330062833881349729590940616037507950562328200946703191413340158225346642669953208231105321990601493614929057641350479682905440534515433406022818856357353876286898730968143797205900373284100195496228484153738527082572372774044076498720922509377236424317859886399509526882628321250207424587302533575436131874610683240058959258616784611837390685963849867673218904138342532911798377164258018303922067549505435322508458065251498557555096705528825289882193421115238069533569010451902034414326815935787813965522763010895382056200961754148595234666309240798921013824698342403857942423442946324603406623462134445219779570826254405972660099371471189462369369686025567967260742054746179090269428958005982140562500121361278275716903610799002722616867042803777273379740594222933446647175879319442433850011572281434312838375338155384625506819083808934654367821488469844076896325511385452113750497575514055930238297615402775681017240956455796316877589260823752236835954066107203617103969566861507531061729689905907316735175355891474968499466094330569657992409886824605090577307882689079907945432388973012679440458811980729473978965665257883338812937888121197576407103846877017796522181860335505636188926017068591741171025877813149654476189160604234056402199822162290249980752820112303164335225172392352420394577111945569992299732895661783306275731971854923164236507492510626614735254591828963563157954581947616390288737370166337675484105663466746121496405641869005585359014963905438588203539075753531021712473330146504081228004414079870836569805614516818997473720486120454217116384360835156881346642696115216396161931659007801287467419760768703723979045097719921738857136716558246699295009817144430933595742602966602785116457631930117894320502786006178033605141141154735483468879428641916409664985756288363875789186245468382494820577610677241573567258673654984179508254005956471749660720823900562711814764903977888975315083943617431932908846461210792947196742167385005113627689082824375107917351763257695797875686410565883706785440284932658767358905325795265413926210399214865570134711086807700091519751004857484117288942280631339376992188771096035812488819019776649567456116879040029761143798356126875648479693159787974966583661718354863503821845819600495208097027476165533880318173883115567516296982476940200429864544406125368655623168690655737662848442615495307376512221267366655030099018540716933485089839545937319917973797126531366363616478497169408764905255938722934980336698607073188637917677068805366598450260096107473958459876231965138537736764263102603815501116393265114981029200242272666652819537568537261659035476053592277948192813066824525594804711791139303395411554255474256366460835669993753481989656916021514998011472624627060756697735652955881040859637382925468102582413812971933006024284801833852850825220110676693032874993710417970085286778719599200952277291868703173287270767060853035442542279973890787541519291529785251789437301683777295395026883616610360880322491124940573600249684925937832628795207344990045344014479332549147293278906751036759815285918064714152533032411189400232833966397001898727953044465063793002938774781318800836508784372271101264125019389522655465598012150034256637808513187716718162197519807233055004525553832040068960107792198624179608051086388463287340319934492330119112817962965355100674080967266866143704298590986634351311764965019252425831162408871366704699013848355083792418357471404131758773315700117177235077486340482281808977102608094003680873855538766849748233035499628177709930452957941296991744450471071045271793290944581308422707725927829918638603417673118963802911189816161903491798266218057488060479837608374035694284439498380987795273908630202099309679586319938308420729798646517223979328610966136987744857525233335769197132706708292735820527954040405648497341977053883071189308507928592173983074927559691338972392319122437534192308322226424778498291518259377343318165446729867520068557934144434992392580163106871925767645193770911531520951293965422743233230775969277219429444104390549392918161377612202381910887276503364094836350450379332471724475167311363685231532567517277518483306875026707891741983898747836966892028554151817324793969801475712165113320921381685488229321769017073004861199568047837227542438057301118350400706158898349424378509433819882384720432838229297064177835654938968331582818722067731687557647664228809573066836152982622129149103239716506274422595626314153446875996427677846637676238993951598775410472586540810867888998286429078258112246176235311814599530888355873944681273301985971974826220690126683260205836617839413125932581825532292432651036418949704702257241398656020198074846017167082153219116871262423518266456364714998007773768277439311584282109021396579288712297653751811080893029934636659082161715157675094208978768234715658148121624388957001593079107384120016878398752523341793703230339154621985280270239909161498163782984636169039663712536800537158772260016656574646081765967246532452154274841466362495170632527631472712054731016649911303347946392806271709552960408497541908855831732940893150352228129178698044374969042516107328687561468544077961212741476433512884870720344705373862770477399373936452719229796353278986873288640765162948356128132679152734312308402661855546897240497423117629585509382640421805898611326106949544940345034299280977319387340268104681146622176192131616794012411717551919580811061242860554974993484861298690063646000735630446444924895891300941878949187933460449100540648915570128952744885600106615901986807301458046451112317932304677343330514809405765530845435508821092911002177084683535102408756740470655490254065497404471372412788558537261058601044158744935764053375018208833241883310674591916852282404103343130218691265932436878667341563734096253494535852358601671869981944350967179142423659724740056986349940506585097830163536181554620336060327898704792578215247084578418243409630626014495007422526873891516192447057804952071889108350023701964889963247118748882225863685315994791311332805348014872633964731559868253111031272389398330583508077058077433466249290267117015337883831829291604247407473488063541106266844679784617735831777195272049029425141614311600300463001029703102688009089739753082730408549453893478914377944585906054846888376581699566746713321163160438210752622032663809238923686641224625099272705898294422188299662242515712501058261240958391324370207810764054795759865580680870068100467705800259817164364505131061081168401526943822104370543415919999356662454250884315421378328373380812246177043291847187794067451294777357275574459353799768038495816221673622270804697605060432662620670397472552674451574109943985654301531405791175586475449161577814507070332670615804050264701634140151589468149494682985595930732502342083100414110147220374096380417171586249471297712708278615166065954444999464103903284057412719375928180775933968899778186521641148763096024998823811045210563646989281194195329414533977737111416342175057666314687629068973522578525221403249925277234646123012749244189994924883155266565251405367391073180311175220458466083029874872137424858943059033109307368653313618325495796975253348279029499431071552432183778609275194160034009483438965929767622134053733168916909035656601663135527684793168203690030860982827339616616621014488136749958908878748691358148334365862619367480124161104287725203304950514315581937929564993797905473516401672520645929695823979641673593488166119930992123727578273375750003342251296473101529923266867870757947870505104779634790774549538265557493128492514152557705426624196801873677825048205184137711978336338028789658421724956753321370162658219290190060630396694219446317591734608311685816129467414758539231081620060609317106388159769793135224861266989964520958260469563529595611287478528435427243792622743671349192977084882779051407132282105039911406479235547726956089313517225898745444999677370345209163354279883743072941854580230960958084305306586354478350559411604140366131784511289240403064584073936905979123721436933504790006518621487536136425435925513538271084831356962452284877761373964026100579762172468091456676593698526217803159781342004444309225091907769077195041645915546467617550815005959938519336589887005908891891515482387464707164890297197452145289387052420522804174733049444335214166698582402312600423582683578601233937868018229173463673405643369511906112580066558974157953286709068524542435012075353034916485930898943429851753848132201304563596374385028577449324203538458469772762499733085400213683526882090303804509418551621401046342682873601759597928582306997125531136226721464652476583569983761990723569078765050371703908244503380130994893541821334037574625595399674496031455854563408009480517577643340941215400258615292283840848809610486361210219937431008044677682090960106855126522568807784047005835810763894957887427896246679400054093438129709944740669452833182080210283470217975777523745708283252233605074652188950776786012501832127552426858621594426433304106504060907762377242357857680277391459809603524119661012716718020110892778769846780209125440897616721196807284158352019767254469010872183931200462616597776246644533944375387661523803545977843659995030349570711022585783139139944881283185307630013178600321239777984978109087202940398503666599114114378423609330362397857103468965073541271508155743154625408974975464347267644714424781979782535488075394305224743492021545128437903018733446646581586349381588221101728810708730592677745266888860410789100092283231514709939591852081202461422520845008578582099045893835170760374044287482312886435665361299754469851734695102580692509428515677620144575201548543269237281948372781440552702320018130483489472217382333417872627765554107119634918367768746789416056076487281952235245314482503436169940114630006259589341017965033618992679892962209965527064573423677577451340660949470554730038472376526398489714543811804003442306127387624777895110108452910157455794114409466827479100485813012298412268942841443613534010902077803986134491209495842368944078165469389685378533570748824350331616837919387713360387639217812406220955697570166971904703595526048573068399299334949645928597631524764885818643204042100101823941570806683741047181013955889627541775278228915506801720764126250174778609570166384186516918290730986407789328652748770451474865922830806136643093202383084762490688322268312099416516125067401896551420752820377217683816004042503463496780339344030244104288883703942875740847354886772744745575370445959886538492377129419813836174251646135060946105061440481031923125254378348296944097288057774296482256352236717874945767144438826423310474450879387133632905115441505946089506328709644999580215469615418588539205950722747082732035167710115590911775187160917086971826099942496836408917302707730709361149216570089536890896290087805892809246100073259372790564229155019434653820028315093347935140996912277525484778865988006656195212871128506526678833565511803137971343790042417275987817548623136877650895074106129446905051218174010884775701253950054420642239109840375081154700392010158650504966131301939469010794171718449695448914134429673404093289246784232280784324357602797174820818216290019510889612556191531672348418412176223743183254698721174575030777596883190706152771108156321718516207863039312588488388078246517732623696855742500695142113055635165528504647408333441052997927788139280247786354752788930264388345155686884751169458641243182816176105567159735066228866250546081263755483307949838866805694081901699393745482974697758920414859600346734671015253033109565660038836933794940603141733055995961654556867622851244787328276718203654596667713518274252829339682896613096703275925975165717825100080442307950944323181546842818422187253082577272666258298574672492701909080648760753554387017644899691497082897007324502336568456536717245420003524965613342696303661364647638340359641518153303685566931484308510531253962062465226681915144410491537647130236409114605454184175368257727515577491834866241703572434672339584100239034470870160012909328648933122130401274713570305577191524543375469646453082405458642232994605084128367253219101118338389530465645100366677427634372095508471263754507563354884036507707002585847859028028548087924758754096696579929500178746915985960151178709890794425365630708970311016502492644678156662817884517207428597968000259120513454976026539190278871786844291342144725094871020191924247612261629193029661678289687623736925222761455449175141797901269416495896473103675763854326702511127790271831673696583231110271088757650017532094466514742231943882597372189734010745095304884853382784436335994433985473088645190737786826064081232351893555243852870475417486167819170569733693708218503035670333075652313333192454095890469019665190712048754354511705517461048903814413227276162077529237168455834054853377146651105549934779100631090317477334934745731821896903825745789609156844140666552568935106546465917131061191442301033316263246322168992520276736559056269322601939401146464667262776424347656763771507588020744449283739957263912224853724869587425449310647837598462268470560768944303870277525344864709253558859760475261923722039290978101499880421757378086287803208933396926644696693393919265723182125678285168223001761028100577471494047814435544404886503468252928440581549277945133701363953639819447874087533584501345853967178083002759421140506528209317173862902282203826325250572636387398826597631581746370571516409313349250269427325971574982341362698334401938576694713656965255398661783422277289497255143138992800599041615496929251778356594474038062341322296988261793473049053445045393122515780565066089229915000608130080189188017387837164935885344855747497325601516682219115633865815665701696177891189823593375893620940550253057918864261363090655695806901949313105894882782793988393274739763314580235676506287543405035384689152911449672660065718428552192539216427440278608685151320202573824570316173932070032147551117263637650001358524286151621211665474216913232981959347348227574814052821670682783960172102807346754322872985156507656638300171031978827393103921655478853794664506981485132276172498731930897856610671285126577147053916692556498687279658358513316262743596836483422432208095775292935241211298362630984836573837649861680355400913626939087056327103199603663131129084711607842065995116951377792443189233342054296091119270117356343443274718581732739361626354988489574475444279780353711207484644019377503924283391693015426415868047591942259603126744636139558290342358713999532617771425485451644671494851732262010724160490887240800997254050863322052069204039768214108604877879913003031496370235008571603678073966622781661342353973419161318268019130498018230725195588428048907173735019428707549160338245427056234559667063024823190424294718615822745226213132916186951905126634132324060593262779606687704939036417465041669649460305965487453469186213082533362729743920877747911042075434388718384914659667008445979199793306975261784609994519992591327934826927127575449803125986905691278043400003967115837750747315056128151896694444022845270203322974678611293453073863960842869732032951243670362090491804873472936648446948228468701299970361744100421802796214146722018204952097541911598820602192193763921338464822310235229557188155406143497582506917573307286386052751753739280520195241558740232388418010926666106589526701825467927263455768718715150860058910508716691697467224437386646790366395326043726671480612321233432641660287771870419455893154956974398127161858531746112405491704615355825180669983891048554335404674516716128689360812096428020999099676818217132752304274248849668918480408278390707304443363469730453845726954076333815105380445373185748507884000180721286462832616609353475686417261088608317644569621924769212098490045149598227666744973218797434877619366301325754058200329038545641129078666638682429547170732816098769176866929520976344410315268968262097655912488209350498339818276912121870838258320681082795593869328299728435550571617940760527322352267030040009344343014240567516286900303045771831854363817781963729921495289661751709162906374344591437860270697760353040067581809867052812571735890010391668735701705760755504706964164918307143566083958059659135543411260971853582376167866747908344407039611200212677581303856839007015893340393355561624760436941489228991860377982592337870493233576868381465428047414460042693721973567548216958794655554130255544580343532836256247064337084074629421695992482121129182886651633321602204125449953655188393929612265571353073479048888557545484242501871889309031581211969408471225796745512920527946918226405102828430766426934334959587344617708070240829192226051423624788046685573347273880640313411980952799114177063205928590885330194795553714647160318197324339845223619616708522087045215623731848651917702017510926732458062503442675108767111976073526374839221929527099546188482575621685224857533039222545186826960796809322691360909173374944444503327545939028373987010975204395419476907319679008687148667305701351278867888579756464891008532842865248512389272255757469116060238454385322181303486201276204425445765117051797855678407814050476156299613404598133198379872549501756883196794093319861728726743687925266367459403471072114068805813761374937508829122221095023316387377263941323235872461780143424721526006165066388532796595672587706171648865205229677074217521249936256690453739339827209561599418299891815437962006053735655717108763437245548092165125699211146948744933352437508445716398531037664617455927049325186147630553407236915265749637892347305067628376786950495936003493060550811339421015150831605550778346875014961089101923919642605405801885859358488608697054614253973533669931063421044238930399135554319728729521986478055827231590398885028121320044972294840502554932546591756183640582316638506155342780151636077323267031855036655566911451213542314901883779641703795102907391795205101634513887618201106549145073156002556811018883194518216442001170996094507475924784448497581429302614674940961680239918094571689514602775895211034705902639239237238301669284973139702982367934361265945230132010256934926957539256267645309184417503389205470630746221470783134256239747435636853183773260531769709788401435100078710284676677764626090933623550568168545564681183002800196233598720294479855179087188239302309844192726418063349956909392503784877382367571382905018919590023306025166373680796616067109597123535452047330195489655799753584666672130393088669827040007811283583056486043945318031588776775959332461803527669317318954946704740102900165676834977126352309773266882835109232248759683375466365138250859429223025708071682194919503839378724457625407283520246793812402420120046687428579118352114499162213371158502583233029605593633685913318162457239498199888291332238222365655501486934371592932191541896456279895656544976281009628229271588276153157320561761143859599352323410292492714841966617020990110214707073073270509247707054103769368974631451540069839017556659829176957459438727308699279763173646799440394472695824690456182178226189902331184400664335616177955302577715950004749543171855000847843304792207181317020408759963796203971775787862202580296618130869816785434974968329432721543432313665491844484036612311453148590522482420875170510010967994366625849302927037800924961638858642493396187283379380009377161848812610380075488391793356062596251776755455917321313884895941075225640850711246863233297204325249194003926578692259394064089855034608775342264149789046793175604853113746974335976259058532794547205537223490238828326095002594586578067836304720863917983514673447503541976008819959669831529517716080560394582321752543932309583542136640051494552038965605793742932983794864416613393691916710571049207717975422591756516557469054608091621950778297321233778340692233813827419453389112825182691274808039724996237021924087389989261786920295146703086916926275470160205495236068019099117298654603861389433364847193309307988421500037234009814102642403304768883505471525709295516453182416224630908065761165722967911468181496753520786166603472573754698542209193149031315798104649190877290508585082342663982705873629143203858960763025192860975875053439271145285374267931442020170161108738413203263426181080988797528142868721350873746932003139390601247606214170049890686641682100543291213691168140762017153336485034009360532157057780635965597855946086338070822518705437546273298038545296544881384026802259095586848103015560443457127994464245662004340292513389212566221356740493372488267506078617401357181386101414768447710294317438329622306488537577997238792043282567902294446608114788372731089821741249218739196889100821175841370327130278011415972285594411397333559170311494708072251479732091136039577882522946391341136921061085357486663544277865241773844869789955977290134588282326993454129332662126267449384724389729893095665721396391896008648028423069841193906658990219417243334234916262719932215580683905661951932276639512007637174364555519734110154914224686731104445639499748982128468881581534945802198686582828183942512456154092026152797017002072898855633856137032603828147285704643362601428071919135139803200143213056455269715195923598129452895902726252951248638134351517174635245773682452043795478274902989705334849758557291129706815394821257123331756235037491595049637394285541255135148523398989953315819307168780866303923645231847143846740238829429591383412431320817857491496099210527226422784488513399130954045583550836510662027227327865536647203397794564973362238042963520477283361432613009761731272051791385720972511318621232913211325489406299281264914930989214170679756910104635744863395798313401212435439075203488033720400567476877637000474989705977512035748899939267032139968406736023602141901346087083910317258391375199242241410100497335270475914113945018826436686616161582075524519395240273593596441673033907164896397291254879652504957067893948688407193296590034870407055548472754804778487099803143223424045774122412719681127709613468945143527925997281679332522453230087510813615204603303228663049768894798994743352721087910633777974899708636252874255952864478614772207185457957807372462494907961266137834695952630059545593841468543173256461314154924816990302212047601725852059954528696695688051676378644085912297380216932119966176431038243140267472671846459552544880801644665047306954883168119269547195948833639133532448536512579945104567009249803773149075818397241195116807218105823286511863040934844042191658294092585703520304743236444461985396311431247509466975029721543954287895806455292612955102386997260572336706714201561854581099261545381284124235913859614904138254908399090367361509517164664899931716272799475508951100170592648070008037536695365601092077156471166198340585846859582476465600710489809578927912359755965911825890044208724924757257138692436213700874696583761037723438997595724637565237243788483926570226377817975880663965720512574177594620683173797689803047328394758937004560560178613577241798156391360881232304584542320535610372676516196107735809785221083309734340090829869439331370801456823381590969199807871576318887043925156433806214784958109364448113975051663853165387970664292682157430012498247252811305856965620451511850621984058138872100224175009078140277636495501411968757115363074659878061764586764937474174804266438846883040531155947133947969674980027310241585382082475470865315719435670117783650745839519796532744696846117438492843527282869913629103626019604735990482646243786029150537366120489574984271024648865354916067907124945145805606878866651631027482209153858549825323370972043960217064415455901630556034734106412429449910284295340753772367609193966843448287538054476239699098590570894140571369923445478363116611781668714291215061276238168440862566540656919932699393936992296061325370637365195696565423841925775499251675321335806060279267694937157109402448988703438498811314233457313305145802688174325241491469844657448899821244052573198519116154747431142496498110111738326680218306124685970916605219361016532768365571121736044869479665813106217299071803382272836695432876189175179635689640519087382266507942182417488819491977277679477695994781502634617742149699244128814481825350052564048601805677097003066150395731271623830392939489258532688078134599413609566686058787892636214879776571720205139911181074015958162599105417055990478668446873594279571503546558520218732483880611905724658122368090395945658615777095309137243601127807562627678750323504153396015890503926131532410656676414437444360149400632215908998032249377009861140200362921710319283479991503654372364499818667365728056346211127154695619535605098119359484877783210518223942496423000533979274207810835874862906794387614824925824405611827841283302392188880115023185352441757608701431029090934720942274294649759440865294166251765699226024325921252801111554426342975062014371903961963733577112761705748757864123416590091670969799850714448394387211104251048822729500767804703019021811522007817593276313940428393186343082809003879510036168436774234076940771680094258663216067849466727545816787048611455407270003194735181897405485464288047043357917879783571543314689619637214987258583225537396826982556653798901284549555571035653370753345911298669159629269988161671957161151675182999818574766716384274081762665167590691173846344034862279840273840094566300705763788110796931420553024590248069936862790848189828877835475941676899044063492900914960875791368904294603763993946414098509319527538752893747370521128037807568739512266465545217519696971911103766455279457119515427865338198776921372712193489816891565843963951738605795229407937281388615853916343577453333595616816756937273258944536644844018343032721179712439995791033357044320861481293656865631591216815170030376773821216886254486350002403124015936021886670798688372183808615964351468204526185878804952833557332229362396357121653415252391562528371983757336894024551932566335323418517691728116241743760420303354614891306789836651849757419938509837555086361080056289879735597153061415055678728582809078713298841094690187933846333762868801178507007254808961354653602083763506564443140394118778588628652601478805582151387470688147567821181936064411934151164250707568870391195026619040778929140497693801273621871986499327619592523410768969921981615202407995751313784383144885010067320375513583454045424466881960375650264725941751302323356532945976740509263907592977790315831040270361966118321206570353619084909470207157108667335513935459611880452207775648494789100120645928766742807270230919183672814177697184071257165690853866302212733234779666973198291017389310335062564342782221808458561927723390952909794977862951943429677631849888232640874281846206390107948505562297904955846350110587478503668945425224032707399821223157769234678190270521395395729026158217193764611837985313300815077223364830001132234270711495944361871737327706828670948313799189808990414395084162788290643929178587348279057186127661683319421495236118183274653564637470259451275801587444251773230350439920624417019844049015010083958201081375214891146088826931182738272906126530758885287765802606830383790211290320396341529839106094816347958812287413265070650097325191003617486272381301690612235463880096370890557370454983140123888842190493011695697623394648149970975874559774480490240836328128575121324191682487208475978537447953127836079026917229179061041464398407175187918938023421375083401119007955453449834415145990082361735516729754629520833190189480777952555899481320104043970622270078773756142662509062529808600366989326435986298488360406087810763024053275517842994145465123068520568833335794548472782083981043858483583075154423808798020089608873185437688147520454104066918786137622857978289472052837303853283983633310252599575252555842445890589630656171157016322360691606361360496729533847446611089711271596238851591645806824503549739622155260196905406218416467738556385521003332080067245535928641353180174916045643577430134826850463442424274852532518518439275666554465883383159832191230681970690750745352361299749104963064854956674007469745867877869201369254060804339773923206793276759153753383192921397244743547462414764557032271892649417296491143437498942483541064204496362375362380533981714814818494521254819921288762766625228503686543750062716552758836487698724675207930027279565668817779053378749071525448423278669396239076355229997001523249711982540695286010417081308492895602368892697064169673586367647144227294065086708295308945604852671704663999488077511536246836843827721698204757992876875467264993707266082824318017310764901545554796515295040125744034210458471567128386582408921456478220639647807409019663054053464894397171156297222251985670819203602898014681404720998124979073390981056456711549269420928312735545659336560813755863498323984508481854300650678305076149640166215970536946689772795746749637492937172707267694975070827967522178418778002986267475434636369699941359475428716494249677886262131943596779701429410868758533707753176544911540124607906696724336022498903751245992465981230725453954714235979443978472605233139662636241155930633459488225041738073756420011628816505026124310158477713912348292471389095544794599413739353911129393062866006888034690958264284747138622225459791846382546172680751220189761493998484282491483602341598967738450767503186597569016513084160123385071295050891897458180911388102326358901810039362574567552557639472913694405296878757152606411717767961470898761120009735177587947917950831995274533968907485721002174542764885180564564237236823397487242058763968951702383170581504060423871882560558480535747671890665805807787945749399064154233853376064132057577565906373370284509094543207122276394410017579660338172260281233086067183178943121077532145603125703743310277353449094036911942808783978360726067441694913592980492171187852916738884597497848462528489953045753868860577057425490021091060496163679654880752481982662070814166284865947394097378660345441297222145838843873404870271927477264469670675667941928880016685494341576267516746316657739833278980730086459181509954780486571006434372887644893725379304323751801788857942047948519905368103926745993778670743806524910559607403606955583483693696315675538634143223956507425915286739503375127916762482039648447722634064282997759632393528287368891190901490548075471316561985812885376083857808909568964386195756303617224873587580347659935163507959956060759300571775706613731112871913286687733371242262961514777391634900827971175679065582444452384272824800965487943329065511543797587689526987154539920727961141732972528567083754310971372020998777873788100807451657038382660534215306573810653900676587663085056008024788406115756702558530288906832462815300884624269152404156122247206340030007385315489504852749045966285198422249720245188629785921994303886820332253874455429294339105134660596181786187123022277773481920804570393943293311873732129421364370649585258499948858846669396043500485002914562217794910904548365461843029387901705681120842589235184758943796888666501948803338177857295356602214530158854561226659090265980914883065924138272808889234006201952558848034379752224660249246248411658690459394857760577890522522837061690070885992723739206638226181660705346378666419550688169333040133732163743151981770350123877441503634923397750588101062778680292774003309551489927613270243444365292170300101219878375093754588580367018499257903453058226192836128209751020612099594209284272746563850870781280301652301120680994343143701750950031281689221077150251073784079075168082903260223083934172915579844291977138492191728828740707560074694328865667248795487570802315304557312592947465894247802500328423417915845546793984856197687234076885048933549913386419760518698561190832569796390175336453751215151689311338277194807025027336190923192864223146772626278623225160286813125476726167501514199019230643472603751665519305393117216802925824942026365011122217776781045920067041645765457426383430239115395609290818669415212854770870796576257664326577511349536022839969523994109069077743418234875942307691329177777423092741548009470546766322632696323626704848915312537443252759349592023406194998833911568788257260372386894471058639315899185347068402244831753749332231433131087216547836268249196095597045134074504960570432831186668667327318660939299227291947632004013721718443571567949481373476992493411218148000707483342246857607550495969416254774107843685592199716998573550306696274331825479739618105526080350758097060288881786295382498620878415130900494382526146891193895597794907310036020795116754027736648719605658727495255799574711569968108188861069704551971342500209684847496397154844992567867338817217178364495807453298613580967903503664478382471772634220794428241789214203738341349601196681833706856971366149089682980268822923969863786655235635021867615185380666240231576928432909455044763636474224672838346366184749518921207317741016868635066469651651761213837645499597008760452118567110077622382021693033590852602801401502859733232050174707465703130818041784545694422664050673352033868182337147524076991838839585085364581993634802301535400760932197864962739700165888382552667486697946238148064906351838024992442717413857805796550641052244062029783244231735049122729728691471716067152816816691820800638746978714512485098621721723868857829393026131366435609662356523242033675065488059546565575551573633474729164904207299857250546540980801841086291590423825077411215336286372619939732246306022122167993425478268104161478861387790171775436341553421604623464323730332061771765409784659937992878708777847628928832174368244226939814782024719428894804539875679044708031074109251534362133618103767325036169877937778397469060569629716363852362244851858361190009851385665314560043537701712252534170846454907424836643947663163676600642788103205670527778236043356288124404351862826003009955421490730613704280100343151838034620256088614612225099150798619106489737057924001711388018475526306315535102390573029164937420322274618214905552018564849458296598223254840013418791569273445457345401599366878168303228266244710813631530154755357199499715012203214465634920711239200983007825757482641905387847029080218236992722567992820385752101764862091695111588724763875290822386393147598365374116918701874313424356863660149194532065904491388296144208871921361936226623104116285636687652375825129506288744414721631786647831162038728036810008996967107176728062031173021458241742909112282279294651185170540994437967086983371650096276932153392665739650407940004925433676067955174247176923368985416842597195758583230336005629291162751002404912983477231308684505836397841429193165483607133958349854266343572167932116445024713009360322717789177833070168490859321908112840402296892148709915536150461734361363880629702244141247871207009886365529506718791950649746650171962260648293093936266014109183292465477202433284842136285507846465175884344550422305360830345214407804405543749762780635056237489156819265044858314163318125041971494788937973147919276498476620347383208688243613629014363861024946125928155696999300767611670974805054296341554840714599893147784840482958795847720244910359715686250531542329836849109728899804405140351514303250415282181021193282538922883940406470983349114315391047927360327987018866694332266162305575285874822254482022184731794772779556248923765774471569468790622845363347124269316830882902600486563769617875383691482870837348355998721144730207905042135944910282751787475617824483738640524517720602046603248463761797096644131287507318582913124503372592535214442469965718343430827447582418177060823677894431015235499437815058060528399909961935514426222429017004361225577466508157225172701646982233793665420215581988361759987263845272025671170764398128222070101266241412685779150140301334705229041506044895208671777370541954773987306338716401106819482691212664158806907988896477832206302584004470218710919926710740887022594166318744103827760789700972026265646548541821981560436682420816584105968670722404203499881686125910444977131533157526958557653920181970583565419063431234192010041429835182019919136787580200414270643774271165952046035285186418291451516005115929388806560991631341312269157588356009792528313889539491194210452240970620179573897344894571811208787082156195652807481637822923439457303816178591175420396571751998307449299351570948377147772104130728265495034251497004010659592111352083191739913677058106766732842922772745024575794474423005971764965604188520793403533751169455051560336346659293038463871514905998470861762483790119553529484867297921621252051672131166692619098251048603701791148682534296764917609507609199433833157425618519347665379013748161270335445300126773372153911565980595659389523539707356062666354281225746819194647218633512154076850425371887254397405680117515706732283409136522401386213281950457047454504540266330464224964140271594462254510927434576260072678224469983704414643934225394435620629438878258424358279626076772152606724557759628072204684060255978261837612259992022828279511307948253227194562304094275478600839520810313003254496362829049602652174944079599954092734525428614333777238955572092155989235136568756665100809415685560032379975155367713643091241732588840960938322196651706520798972746096840090974678850703957375891691223199692882859575808316382603191536283770616094442523018729858450297542570188003632427219931547741393812355514035690110477846974116426024556691731835493486690858720308126931981444981630505269975422477709472328064159155476729962687635697873778103054940205258639440240817975317940458832045700737627402369522754620585173694914780435311342682516330586211114568726537890493836966648702153068329998655882343790880063611881974516405776900678339997915907896799089772769024789158993464769416726806924422648467471639715086769067377023898660750894630389330974366818814587679388559519360980704866013016930548635600830114178637230982781917237021784591598565079279442296312058634044250384923934011299412291774944404361833432441963163859082869780908279296811235654938548898752231829884349295415021368568475736192929374302184960217595435201660203941973849220949838019313704879874092899830994216911643898283848017271387897383199937580189556114145492434017091344138089199372264560564180551108838054396719785024259536146229520915703524892303050085803221517305997190981938237514285029305376979523425084037770378866023618229999821286276090080749040849598256055306063400748883953246054448922539844446558507282809485729509178853503953748310528521528786964883114482940788640116037935359343403333093556048537136558054710515564362552361164030566510699820104258638608882886001514082088431344140926658514924222139985680334922681562619669137769567904235194802050293799420101475917203217602159770789548694042242337052923021632236849886940842276209484430927701717707075072382762687166974801628604817399259301514008710790530078814198625866459263449600374625080287126647697902151384857082214085908042291398788153422664309542339715175330734211800517106528078944959465275440710978059778149198442139824280297051779987595685994487229634818873066699383669422248094555322205311217233314042969398629547166690457361853946970411692499966514708355606614999082596912879867458302039517379156996819526064239044229602924905714530001942555937464757680125407674953031720415620267398394445590646833401805036802865105215218407909048547069736124975941744071720948500412579134186705564464938817307599230791396396638586376981199236749810278159176811813118473502729248188962962202419919287815203032323389955918058966632146041607503665391957775432409236066569654177540281267748490956640810759331579099734897035708197040468839306578539309512135131599840621938788466549086698487762141048397563267359743301091267349088751026052075691006451937789031458994252192663533279013137423010780623142991095770614113477964348576750258195857419908250868087678975835432204583942967950230467992160233444032758976078077374372904038557879340392786439405671645540547937404107619731765144644239233388409331027834463799029833063028984172881775438684087077408213357529017521063904402701183644267820759749042546483363971290705486499593453256010965763823163475514997783634410552105056815126563750831252500843862733196711246114699481759214445372018956255537542934896812983788007440204475788354574882803805296802480635721094590241883812110654515676579100512331295421891269125997335043635598254698815610289145291014335671760780580445434529941101623423425455506300854546840973450521280184412970999779066435129575099974257723436420612424297949732598135302961586407574785992367191817408945578781000241917728616069473512833592389371738700841225710587700151308577736138144204009019004579385421898331134227534915984784547161858418694425067236713026437386847432318647217916086561204975828213042337740170175868950552181570854513710639169766864745670893569245160473265196098979338317940149425164251449656745937344400864316834333977804576395894021521320129196909487555162904621459733323439235470281593939345382698324506085583116164795047792474853891637635743924658512100353515839495549314547530847559408238354647627135546597100251959311017040858197504243981022473376036589803048133812796009315856932119372837139522852926439080303130917188755995999910245226909396810034097832925995423835311362845829080244438540321084038395027783494909866468918416560107273070693644265090079658658116487718746154822629337487419141742906772782809770404816671231902995091708919315540129884357973018080368821256017173190057593021225606615695249824159333167128111455157856411754734013557577559396763620826355617412818414549703119152135602813704512707025063871131223274905500760957940709695551941716313936892910193896246318880653521576521888720474824322770452481256941692107664615240659844694028116989425188920139893805192202232668210152619590196400301683054084050816232158350002535770903944164595501943428596794852467697164356781685604519411738382949833151677830761965713390630254253503576059113616383269665407257834377983970665712779419701709736956066166343253574094649178526569558841428203395007950160364712617103081613596502833954810706324360593779853823359935003983401506390419389575615192900280820593709553766163113003868048719877774786691814540983760316283857796127330423122201518084127927192792927264907566317995678941421687348814838099371436040269385319129853362112075088636487086186179882088517569203624994509828222932353790022448041677607025249524366532059280515913894242683887896289453101253117357462020256120571356168792057004923428804514578587121938285938482988356404217038185263018226636309174670791447384879765909799684371781576067495512092377409137797311445597459489943935431678221417428908901042837152132803008535369183723307132998190070980735961143497977984783646719524287487162124416555004304301546177206040654442059275668144114722705249659445739419077238153198898534871251029553404054249551720870702410807182576865116959636897443235768804307386250565056958981807339298812705156119408477303480011424186453953969851507619500960525844764911631215464380394768553153402068637838323575797310091902971235545885061969330045313099482775341899185187046494441436289955522568348223445719914624525824984865280331285376590897570190998014532001486366864426507687812947270287096753953428803812093534047474700992046461052979248903368621138615245989392979096346116520466811742595086849393551884514188154692383583212682064907840024570008931266671782231417946413997771433832647863911284816923240292249913183665124993626151514193760810036893433831855731108834234811108061977698052166804168677825338136767393813917772843000428759004042750612505431512443192037219461924492337680095993050368214517898941225321044339323712102949437113623853029236272566575657190317536988998693965691020964159947104776401171507198313968959088007797844621149670047027028401570252426490346283727998515792264729004255437138789689775186191517353781447178997560053061358843000997627326399439732167671268775108915294323409372792911715721896522390046453748926603133662676592692179445594687637849513059635438097105695464396561645203472694729553478161111765176462241302715991827421179321567335090874937515287827892257397570181979992632586130297657305925835466735715654946387225141665297246781156553812444625723642377136238622663676681978689099098071352928871564848619736078172165216499024253078408070996092414953359563562785536322724801243433476182994997386096845113007361678919029315602939383497142182814962122003643453303267631292830696671389825152469219658229097625625331310923185662273694967109689674880337837731950197051432012661056365632709498352760529935456356159441898321426484318643289754677038318022778632715803052892354538532561022007870909170714411012099980462270286817163970487047851246012523979796196526024678634795249410384788107613584531657928757055364495517854438500581671184806035687962200849468416913070349079070413099698144064086590421082033170300208484253144327032511568117535168361937342220530285968035567580366288118039635249215490241550686697146356284030319007793179451410090276392321266281247637783744198792495355408495368504482600575674163447526049679875685275559851960365797634874589945442120404118169395150330772765997015421377932571267869727592540601199188267183741345565726734895976401949591401747060650229276940842076143937647779426937055120736350684240642621835713598145679703657294181656457731026442587159761646333192384248277879303989448793573984956977035975509797962799807769618832244108260995127837908112623632900372559529171617327749505308579945812755573050648034971086827823371862261850681047061566844927487934768466082785495465990537915292691027789140938830759557703677600324718486768228544921441472916204565465352094144803673210625023845298348197516178012570607504141279696645054533838601485497639626759576561314170798656120756640644144140849214408544509848014051116548720203157905037891073934313864942794884755176680010365911224861098905307822922798204167933620585270329398669958811115115348052958154928823808019152198480949957224643371064170963447651144498329819986451825317226466569359856312699490622132236643242603752534383434910912757076979536644072869373249420012227916483999228615732563836250019257307000115259713777534080129012740264835489912286086546069487921952891005488996599482730428281756771308750686420293624740734731593912956478482797061605085591071926449413439100310531205515088714872539396450215324894356487891512279738613581831889776471584126489106809917745613965292629789650263558371532498628778049075322693015206952923923165944956905631781334451747919383762611002679731055160252396792943974391370766319019255109856925468156878365629528423918890508570985659860631851734609274851417235853539558655265944131261939992570098919804581682090352934896595932331132143080138399996394417710145296941960053627890378476131720485554913828743140565263224544521679610787800861582424792763486333182536635371896081004997892231945541382928400841439264883538885739697457425504591570339526602195911006105938198059703158433537367286629194459551338270211694418451124927009659919744185131897042452285740870758007696408140675499657472796375623055309635828264478361127648916774955608310692198694080735432443098189503425708320739799210350036230491549907838745816901349246696038634678843745544928801631770931923467213084766998692837573234046406404022454565185466279143956349497082140171877176381108951903340650683476322060813392042605657789048504005599512223727793178570400056979020588964818169544784219045469453441369663638662206578977906118333446141239890201083701300218204932254793292041025436991409881333215992927499846410026100986613677350313884328201971319911753515052030035018579639040309897539791580512157790801766022397972972639287599607563773461578961449451526115469485833437314561541101595271861653196200517590897385491246151735626620192957602496274409959595600783909941666681235273428786932751831827792005501502163594171099079075009305719122469769569250706588518472578354683771426773508778097192793522095154787769940132060545194817705689784761029330851643392710555135582890155228396832800769149944173519569476208248837668055720650286687938725060084310371635102222104736907794301840066161325500608226901840226635967053481001742612084690924401315794363704402782857348396749248864511239018214532263101571064550015590991714520230669050850787154574303662009462545381369531785985219618836493604048498099630183048109422722989448599671353489049929406329078577439763824523683042272758695952761685824796561639372330491643766816185031631914917418670427345593021227108986752084074306995425087363745814999028206600308546279027390865750576889674708581503981850051421765060036846686477716170315829094555450917300635453657087549089340636957676961392775147075785567259451623191279166833724640870638733520481020138905371950246026341801495473657617947253852212961302182148119475622658111279587747898549162685417329404367675589465766206340191111969924346657771512669997222458158584971496182479350359454676799388606553926947217393090533843770656284663819017204022372211267937997689164187231889042679981314120430741938134486736949396279426081164278587737665365857801380393722065010734132308963523281174405521637432290827953197003917788436504803585403096498857962235326374430274679267031738629811000032295293788519284665741054158932149553927269985336105665515858642251378951930319418696570874404858290319557258777209902839861304326522678561069388784477223596140921132265715661762606554060635169980073986260341741213481235855022708134787130550795580396761676882234092450924984189174256157625496574926219119870817920937553317635033889063954737799419621691149672242841618904989956158328983951747683396066233860062144320400865004094354026502977130485314110228040951103300319469355262499680393168155424965757157324500719978222203773863829952896681889060367253082843395976155802125326633448346254152851441612059568688708705394973076359421612168579044843320659171477460677825718615824486839332504124101366327251120861307743529041821928859537169673224074534254590894763169544617311569497515222541627129213562047178756278147750196125011890473393105072606930378690829058749067656500272870711224900231569540022331053071094864104095611577253621300936138132115046623176655551569053029757961322055623193809644304189729824121997795804707572933649083471382117593038065476731743023164049425467220586853526979976520598733168500111786656624510880183960901985289986612764929545588623289064612108971590000068963460805473080380090263945670883139173042911840236811644385636515594484498391719195735491945007307363509142684727373335049392138528749957718007650638549289808866558736373602836431832849581197133320878145975953282437733683970158142673552739425833525573674842887424977456526026003984057071650848494641959487165780321743440668245629862685636402630053715773354106684309846319689694558624224452215314261868083007076128938951493009075881400806529539867297549619042820869389618141954101188193609584726297526771929094999666024333835019496939235173604766701702094364595285084954232779790634665476452113150104889984195910722495312683257708823429243229269835300418902581389828634159931870967035813589821132920051176929246959526267942692818849833465967059894159994145571164378563089618704736337246405678285245299131450778306008684639864533884124154441616589622684471867133258152808767772712428169615964515047090408459813201993294097817246050998809665432343194947446250474996959323627946886207241805270837643647878885942460879076118285016584701840083794838683055327157018851693579100675398779711911124689443592109987219067805525199738254093241596494873183439141961304326492081327728014149210708804650763058957479002922451055156986388263829450189585017508636619249494338810182243249630220716178069178175970130414661290461186585458267208662932187785548045532604743020733656370492829600219210446517721063154378317747671046903039574828174682806744464899378197479499127968072899946514151195604865109565477187657600843746714415591071703347460140892228183778601018267368371933134072848621032301765967392301502969066539781841574875062695873525739834351016146635839181129894369557447879390233158256049743532006959775017061622765200634899986237213459529508605173832276688879936612766794122044092299505249679069786234639513642581644573396654551620187470184259556774254348996550875265484895651991925345023731758798036111612362970416445306994438400852993376912899962853232697917969732575237297543010314273250143244071569984098354952526559066112370747062871588665234218251228990211199804946527584504455609294647996957584111360978596091353804121178732344104039317704907079711840363295478293842103890742292459333067588001562088212104184594485907818292752914363451580953331638872793567577949132216053595044000128228084760615181128107598865393040928342445755414659034034066735942224351413286169837833850190030225616972708874110693747759181168884781842636746412259519342599116062554601512804180205243439178839411468131250892239138696197096787920895020702968266483712057158143793698912607461394824882244043261917205816956455240486612603395306918653905916269684447748103407320392476827700178044678311582590606597870404430296395929363705000174954213165472017938410945442204280111733141046115399160237247385514688135246331200827559149745510719576780776676013927917448800332422869763515821226513851331258105254956541690867923074563754127212027005850212976912037874079631534809444085341091019456833662911461344378188907526439177687238264571864578981155299336769475646476606450243398618251271328007301665276781370069044218454080490801100865268335950139123683407119659560175280983764338161265921469061569391774179878716126213600365701763466503398602322739761140172347234431822189522446701845263331101386745630454394988675954212217173725152497641730001125817017156649239140175999812567295285014773074079173171499470170476043640348216943745819258685916439525932038882680477867049590554713521596254136148817513463982090009420392100920355870013730620243458522430881224088398639718927540173429688919838570721084807796778884385613727626338478891007566808824277219830241215998141616564953961307257101308087027456741852151932938258840639841920198371796593751413401375558715112487843566429140724314547513126554339196556592192671714273046801303623074716665089241240575985661546033986791939826492750943770566177429071532533492644027955293186593581592525780068028727694637626622756816983034894542747310321065071195264066805002029756680072328882617022249772430190711906658261475407947106334886976426056661382168803351874127243773820948853543611269677714479876278711466363263809641963199725975236010174737920850060946491464104024806913826610168426122862138559353307963118452645720324081349429232351032242467398150476505099883520060286279810276701016830269285218986102809310221836186942361804371478880541575254276299945335709796866489957481944039860733776232246898669284672603005820988166253571427793793232979253437446788966311129872426035639681426314335545393899682838708337896489125765624609788834731830565098841405941087199596665254738600093340321286007386985186005015262482145327429010887318723759193522824350187799592645208073195870364391577331976743617990690405639869799076354120861489231223202029920421331558735695919318635379324479048094103925179120004011102547964636092241838687148293281736008796840600185978849029127698622549538334810969287189840691354177493901359073492505240013580956316122240700772331225009301850464723032479800458516860803683406000443850402004569459136722831822203311031510770577386972967109163506123658140301102997107912072795785875665553446201089833968843392625859406844782490488979097110423420526098060411276638405086448343793626471550428190268653632368458888673757379697642063919729957645453356279602678111338814521389385479597898828219607372381155347263693146815658101164601467744381742565227566756091233169065437734056288163933479041173563658909950020199869085870675196226666314453660587926530677475304330559981759090154847661270666534032036305900198831391439696874324010684394434993503678703208080202434643326293590724426082710026002195139764851573960680646400272195708749598786178003177985852215864594406595867655652880639773902792133734509844566026093440710299600696668855769607323000774493548358926279828135524944892527676998854410449152385244199590226817835820303286655282666028451624376107636732581612729269011982964996210307622939556300726577911107389382756364694295321076469492775122978070127111829651035441047570282810645538401568810861917475954489523111942776057748135969122078319481748440318904839842576068102541390569559735305180954450896074073639541199267220950938554268533900848152485051892614133722841508215825952568954968847299352119659886241290939782397874658259764170377066938926299967372091562192253517735137157894774606351154584977921597948207291172259671057657983643518750478801226611981087681416260255573500015569801125982835963740826086051590543333594127998581990235420315800411299253554941937162333198366574134359942157734558853413370140120055109836992510418742930422008620605710531145599444028772795431249830769773335646228042434583167275841947100098589747722641087245600894986512002984231607984907386466682513711040260759455908042743738168617334069889904608564977228070145662856311933891134271658689120347809111909388923803723148155752773805279026785887506712682460756573419459737243110491523527214612443034896509292905333292364391365681937631096779862635225648527747981283448918940874522605923130381510011704372311042422095463026299637656074416727558832243304336296270804516488759033743786837805557407994130256452097404635890001354207603240594591055113320278619566650033326331315778817108406960819657254054762670656629123178902961510959863406915879875649749128938503041639164753911582392121805350973720585975898235595057085245372590295863145788820406219567983218144083223261160844452713551109033253475108930688463621435524292651488613160088599870765817738895954820845277258384378934600643495519015024359548285450871529807380999347285894731531671041747212943190720742622336183231306032633411719808630196412188504811608013450786620051809548842803005552572944027853682267210277579564300682055925661008572636610337303335687114517882162381171335826754474241843017246120411327278855379462711680030662721592118502671463474447985779524265040527486329920559667323975864472688557370295003326290333824907423488576759384672077704517434563015390953175797595773260386182196181532141697876010073189135083085977535980206376796651691311074751220222978270429271251897198341867177288776686480204366957301917142538723487866097415972275133111481517190766144271217569316731924232665340663137318791005689862057268272430213098646186689646437460282901605342125279377812461555848066304693715555645196618123415358963983065278448679500892383133972586041084672099590810657239122353718434447690170774833426665781177758783327177706860425682403364039505171495845345239973688233034878875470398077311985471102912962228945182714898417332784553549571733878792850219849756967189199068274878894635786452045285927267984223691842283653656695918282494350726180236802715932881605770814217398465790559357800495117131050403629229603234951713629072479699130540267161017800010925038434031063907060944498311251495639410910557341174409330631776156562450327421274582707227824600512026722539358621453153972683196053067338407732492731153846720213947247963733862896271910816453894863099313000251975030241311862796207907540260099700298991840486412658535673279671878701376956625322517359074487310891338074637656789238111651264960515546484990778884805013176148279687906517126286468736342049266827728816977335178618406036407608152344601367594365206840822718323586344307385090647202218994457352751217473077257128636388644166472174684889993235407512375014244887033672883070648486333496294241082659940013935182575070576363720436325793262910529011955059156788746439173636030138975465322201029507688281645802147776182868572892448205420528094173141959727292914306347377486206830607484448227622410057585268150701450322000168863180942909413665471004117294955617020499815649895509795279706728827352323643199923947831580709084298424343634732550678427439330454480535320285504611290184579859031153000494384399052582870232954349682669700760467154037859781935730957949305103021232061746862219949051681290369643348077550096055596765578539834621656979045033655031303302007962526723364802875423388657401212535681134257365889881047904299119235144201889549169358300275196682404438321719422588192176927963587010680677344798095308338455158296063592573230934814115571016833938642736845938566791288092070191188106608425161523476147363647809250991608997751339190472738483724357361241868471500287094220717105097304451448691856234496161350218151542503576844936683288184331551873477331460705208540464575970671515352770736602975807610157827015561789655161613260365381429909277879180453959257179639090511546574453465810480215131884668378398463152140476843080397311922241434862972894971062782314784379829516079649483781411410983398959683956351448314542713048994232133364123290438242457886889191081223507401148428086072064434101241212066443077219546714932490098663611138092085476230672993326722345929280088309597480868198506757667612496487795644718770786859733273896967850730286727024481899708570947440796445007317406632274154236067912483384516599367265918981582912136955961315516046242849305648144202489216856428688716369561196266542360774917432315449845327604555312364512946618431503061285829009369805190321019486914101554086557703623889548313967081813723308567852153210091069830822678141312307052238193686303115666578436506384182866912614709882178785254746852252126592882340848335838754784540186062985759402609417383661826462703049507125169985394442808699800197857903248541775152196374119949746022581184087644729883394132731272978025418464529250189822750306560856432992678153016230198667518339447217095773147163088068373147341731899176549940817623468893733827698275733362089711101378054778752628649324785389285021076998368463552402708331512811033531438007958982389058716155098631495000503451841487292744688001816881353285868578554578892571640284759789670203640703962896326506458501550334899218459308490881004884735773879365775557605630799261357003947897799620321272155013674711967971346854350047550082998261661380367114478745352036504107930693977423537360930807770878169276856922872747337367916211477186773452538748047479952962667197866664335293117604708387971691568581694141208556822311960833712517908538856923343568115435503601679410801122686256697556365228317224168009715910544963870278732084964960583533003463768395706767090932765559397562526222946447650582470521777190610555871616167657075886810185484546353552803073666655975375686367718473766964754085763304244378131912577696998042618673440031966006486794980198563403828481856635948818327432641528345433652985676114253634366687861214947292473827837437636622819556952806679227653733365968713596596938152387018131646148961047601422552930435398045754780090669479983790508000836925994869878751329155830338520893701804280915945079281508347850837641817816850169754138484308690843001641551644246009043543235068237949915408897846560430701458977849897032322807306265987778247575020379476016351197342899822190108938007325172657178455727009552993685808994843769185678683720944612789015287021580027965250756100238817761670416230561951360878325697647713418279018334996137396528606173259408765469690278314115640105490956073272948342236259044071697459922420262453857208819852004665182489598649215499159642713923944322220842089847474698322917033549659526667726789153689063226853212148202268518043916916370747478692883361022384724906064482142708568155419294546365568793667838483856772923476259818838994980826475006021616287072408466458985302554676876694233595113257246986257313021000364610821474522460759567553367024399972222954715155587703162699377367289092707830771500129639994287095810471815812817368891109328515857652272002999085154511277550018944920647942720913820027260749571499844885734709849206058203630387421027768458416658077262134695420835891778245525154353505148266122100138702095058958225668491371750132964317988206896875176372417538955928510070569691147895420814336266361654914294775843618773523239797819810815441358954889753010898497901268995215904356424406551303286101382430314930544860781194452027774423561392414132623105769513537919780403699344057538781590201526857704421868533070879665832725603059940068882411935440566909939721107022252638079345683460319174028207036249478189911763142557504292825670585516300849447976029575119539789315987525212618721278551107075055253363845699041999897409272789296908285305064667483676706250907480319967350364640155622059666535775897899138764073580254822966666532509456497103589300821252267810183742936002882573282061243603182107131948585545556655907612371780914000704586829024799965066210746810922183225017502308700652137550767835993823233986870685257733453603009170202419559829939333321697371673336218386889618743576795301851467651744645972917797450001013652000930016580824405063922847817585178060875267292633493433500737773637350627140724474119823479834332578849970421733313769455943955801989525258680345838053135048594433544885374929405082041745939251605998005772246113742731813459369233112400052384919102117088589397505645276309704962135889314813721010177038638784281408091225992821107877189183115043582111989961843086973323362397874733147396598799181258323590332867528083447877936355948731730738319192314280671543874903327898646432866582880744916989448655067981119704908876629226531334743896951117480729975509187316337461869376931076840117933462784601766213646273200656090509080547227917778630746580192585406078684987291388766679812424243592563010640096414224445193917532331582060051206217864231246311322660296344523424135240336938144488597304420813184737236152449578129748787172357662254205002509452320427637829242354552521104915548835184274567790313153249321453401671557884462369806688178611699066552214929457635705948941046840759487619676119582594108228925680581185573240340193337796106051054181719021656558914020029128414149926215993399191480104483214528175937210119131535344648859045150544135580261424284111254590803625169384786131322340185172836963765966552719807340375928209769780100916658984009857304617225995327831352319227438102978795197675323080918585089983661600873199799497855906687213651253895439235783054423966950703253998361413531923443820179456238628753804480782586708061984240462638347179927218250308086528194705325025898192891514579602340016632751661822173146655058141866389887210047976950586841706229566852675852726196236028450737592461983351269475617418200022619563521590425412551880236674047381140441869411246000025065380518189699748582090011033808182103852033829904969075580793416551015711537568804627995275374564525946044394838692815774226480432954659800741032646762577474498299016058167284650644214518108184767375382777381951004471999765165961692300425842975611215268918851359821921696940338523607890839253168862772080536343064461287149826506967236963257184783878375243679747539339003182390449481752527448218167535589594403540034175198332218198845857757033209643217440866285720823377544451052499652108305406934011719553016585423023776579204395710233742123404940636905078272291381540275855845878587394388957227154830852998586493915990514311112333908652797066538259118222563207429618192545635854986328656298935101360166809982685306108187407422504425240311964462249226093003220444413563178677277109119524373204418643805013945622930940287010380862311127700845149485000274905996720787861026686246293112673798980657468099818049678874823586256864547674125266679105275769037359211162955322893424512493209638516212714230443036707591007353527826647750241080285884245741659032313895983579490333465116341469056543645601050800042789057540601747346654713420141025074891498322862763282158810222689673646704861368176073884288523700628684004377760189654001855998121947917778015846304739047987588686724611864995709159638946549301005811108732648525864719237250479512542453185100250306113952598225137397019613950085551918872537196155218185563764433149910706282907564127241601786124287710781681611357432099341998278389605285554636980621109980730455536606475586508528951637509502168605900656590297708263554784453860687938939170108559573658903373104909545412617762794635054228320652008745465760588389531357591713292062742927250218638896385486382309081749041250770642479355771626920962010571350642654684053604369577594158530118731088396709134759453775420212040881627461848734737322469686444185279016163591309700793582389632484594577210788608598860843803844443444322179037676915460399005262018443743938640601558582345967800500480559512693777074973702528284139598591343575620705949154824319799452523175200005928813871249082705430526976863198624707956009591648096658080553229257909368285656408669611747676390153774905304841546899063008601017453595616413536547690038180879664505450745930571540851991182411717881463652892245642423676914303505531893838700602219920209010624903252754216934660044849100535707508730124795727277711417189978648179627045825354881248336257050605524526205121209041672198923433279339885158922083186640468992070135448288750471256168288798180408599182816202723610287669010646364516469380232122826843816388909454028612255475258115593886206284348195096337594781315451714230241978640643870200311282230080806033165830861369498352641529010314091734564718432209960974490670227649002389571739627458139493559617999265607314040394848505895362029601160419124032763635091234210634798919552093591502975598143381354437401885275427893144534734639914744423786095557607045356544384715781471650231191792400302244436094726997517410265810162950332709839807930171238720602622108612530205704859045629099776421526516540229342042732997134676793476669287119504094198418405997174784029059354983235111645047979985130598969882682593631971170600637743391994818394766965064254626468400901973322578785712324305740381463102500402650490579265672643347641280609210342222118069872926537214544542073186288274432832221634010051900119901319790839844451364104533080051568707316813213696911684615926704196850932731247205505861905270470662763632410005294262461004167013254648864719105079962287535932872492978133331313206146840616664029765108871553785230214361575298631434472843448388856055218562751024060810582136660005370274925464572581517333910895412365759923750057836426160189735042440689826327717415793282382716063191705549821272340822393706853344917455282678313713059399672830877281211697964842180695706847694708293798067372925276822961087370650612746211007661246107254304070721175390523923134569531370869357529657584930073728338210403086782177896609310243380537757829133305548269079055703403653543380890233288970169079117658428064087305955987355508071358365793982879514524162304622728033461657398652154831497323983417507823161480274715407032372451245010114855230938464329336216632700785285362853659228789022076482247012259180872609677095613294937659860306371397856669525010976059310124542594315439586175651913313621314977390803873936572818676882815025965872824944890230949900884913137645829608366639764293166323200809173220029276672818371922310770008242244576695110393446562513506763840573226422538796466818529964023954789711337297155001555413032208607363021765803898792140046709258365371933961349519161421417255617645072211081367796450158658373230668370983685158809817434105185869807786225630501724815706338765266174215675688365234512140935283394111808267781943876792542177414806798177879211723773766174857227738846196157285525474729490540836460495825568296635090671267342305076781632024695297012208801549948631049499280853462203608845739550916694648830964808161947761219394279223124156237990599622770192027495414282934388214422599885311396507861942145399867784338236295559260718634847975466872561576428247558809801451716513785592593525037370747552550699307075321850300458268501523518995973275654629735903550134159727574320537360425480540730065932627924089709907805808904210389341748592978600388831147190031913169636241441690958934016610926698799510122398377883304738244562546300176679739729335720576417434807889379828981384897256557302981664774200918683728808776112616823524257070690389126138982720469522744291931544278763187013909277471719521272932056398625558498234375120518856431364214434797628367141245625782334657154179183669119724853183947056503168400753641597819688850249703330309976294158094545153129228556252892209377985138354097176851562543297871405533566968958206531822639250635560413516370350358894770971194452645194471479846573060760831872169593667259420481664555846818778896605982365724360685073603215726577200149180848415970802375977735695427931249393910413590366028358143809815290721142088153134427550430008943653720779863179560900703807464204753695192292253727213093771801084956063211139144732132305588579133735798309115843464794297792341414081779980713505207818684729011201145623280918316969708331966099881226465242516666143383478774645725388764636915961872035954868413094893760584601056344416016268971478068928700036855980767383912455422562946938935048259720368809446648160493452856809569082011879287243061598619624038471264351410357545035759245184015672162499382906977833681834950257338044928683328906390518157632206699879391617079999385610577375863613890606848578000544062713691256202581786524862227147493494632721187138318513723348408844982810355159616410596366639753220993898830910197049930395238506026374796480427997719065050686896932925133914074511596309846844739465452897906928567066950260024027668713161688849529400836452411986975097041564692322811721761321950195224022711791764681073626918282114905133470759514408111355062622737223635150532300364039788467677980054609082324060274564706363163504585475900463505049422356492965040649119050330809984388958726119232602682014001393523257561233761316414670321336111431391789342371095140602060012392969276206906164056668346035212297489085297476546091220393004514298437357633488498368508801071867412692681378774873573084596261101938249053776996456871937792537551153997076330830558209781177534919039751062904995392244537110415040736301619769822288298318801980446330380654668743811001298282929359519305609478164764609055342469948863966644316478731532621879270428727341910529535308219715661539712148111551027087540078336066443859576126202668660547412545204587400942214874799690169767205329995421996622147314786790419087839768438917866943130956553820283545119351378089492670216784302581900630188255334679412166778366990160784566987552240119052641741518982973126078022850840202946721800623378343232899647174536793232940715372144019600536865988252063886751409435631364802464802892969334852628336296592288118491204630452817302870200503479284315173435495396797461651291288380981357360081201498314916503998217261269127957486610512473427877331831060012785991679029674949559930056961125347529601588260194902100234004011666124018039261208286303906286945868763971659428603245699906260384424387130996550041658190627478604442423123742209013118357246473735685214254679704212674983468106080365135050017270649390280798887859342606638581242230140878138675791229350777458907177555728189704739637528250271866487144371294325189724565999708658857088821933123248964858771090417556987958522383355117147339287775814735448008054846023905551162107723360884081064487979565824828800831967378257139738619042652836700049769223447294338026143634336883616959049067655109653175338172915416217924265669490354986688713961981338834156730961796667903123668267185426508161029817896241933713258635897487015421277696114978458269006008205456053619678968453916031250461495809172587650931547027878564176443272797832716623434320546308300512401780612458506946288724541446314390247791031274647266907592833132593333886749281920579306029814751132544279797715654273926018786243233209824856739768065593185259380594773610127875469818698117950116658695609791823630878541238248582072919915422215619728344774362496851626182489413171633869959591420169430475841273829382611813389193708653678627240217362312219504280839638702373591648405341412542425650746151857849060068728982549032812785672322273222623431029605864070419724430653516669159774543782367905624389705173377838367735961155005164415074654105844967141217928534089711812871823060695693713267319513476470305382827522266220374028158733553125806706050933008786791045843476247697924495468870377285090299115316574723138382909461480974263739937638321437260518430399031648897566957611091877673973230918078621433326737498648216286905025136193259028756328266633429005501050914940656175120870189827898100908967761343243574526832824030884266975083790517219902128821627682762809804708708431246040781604290165506022856839209267629039485934224666069635368388147339055579741716336010646541125183487754369205328377858484613599639085345135223554574385776260962259882360975927040199169328426090164389474315663057940806923073091727251244135948510439673379559234058470834863835676651555163319157203026835626211015542694719906951219970755328610675806864613774194912579802345804916282749897954268000525709338811183919566147779733320127620429933983402508132046280138890281591161235587190924414151165389280801709154682541925293551339918290053916819413347550380794495967695836864073976981168200772447153596849066081589358733172052737382282028628486560252806036920137511831344848632008012937182220780135849153539621321619000232014336325980644393887354066594702005651264142010205329006836162660989816881855759774987021484318992603115892468939418415704498691337697510364856484843319160728238957768223986969556873449442764864903915105001135877197240909461510019082977002346475593062296953830376012857471347887509874274924590925265925830455380859754307498404264130842575467700943742034979530146748312919194551637743350445041017195907582079621430758935147689755011821833946228502273591895111443711374667241727351347175873397270707296366624436353430365339359328311577375145440507597057172844423492529004913786801142997080984551069015088617332707535690593799811783752890874230993582444866288717773567814936389389391402710062232056115199996527682717790856313465386773676196363195629310001700165519404306368085554760950983224664341793677795687934442587043587412117408457107665089868918119103495955520136640311070887372705590786454210138040811351934702213653413747195823014450859209020412217308381973566886673236822695822350956749940704061345192538967728928315508723861125761331262313551400645608544328461812549515863623523048608062006308866608950314180773759303340105995412192158847239454364533449444580744496915601792215933586831028816499347903990916972431064491246153458572226906667782846158283290576142563146990909660444644802554479194568823422123091470051770520192231987003622328751790619470215900121496263208261559039714675070809219267680326062257924582127994317092550399924613559651258892564271963692723366727441873267068482637503830287390299048640141476754138044965505232419857667146150204912985820393704228110976332947099316457724421245609424509447362944142922134642017387789527328283207513144314890650557852516443989463240093865670368085910948668370928642271437003717645668295268227686033339368635471478826832148292615459814695590847790623108183991397412904100573599304333588111501843787080335883555534225752243168936900868248776092132499963682937897527050704166936161374219235419811806652911666360334231272281791006496618600704751656557220677250839190441084500538206527027583218559729432892666522944818757076539596933665840562048142673826543223099532557418286955217136368647132967945536253676537532492929637536836356481392208548605219615577478806873823251177067657293890859970664937144397878394584270536240741586961540755313318192347256872376604595659019898398003964817392558545682070399084041376769650292722536984342269120160337888296972075732313110624829522550289033546517752722186645718370032634797619022242097776199538238983302895036203748634172733540087302750898884426610849771066818194593102331609593457214130160621522565455855211602744968764076008000860362583278156189483168229212664284821042761672235376678248722946660341402217764987464583085601614051156376689407412595197929316559520193739861004339566949881333336262087352280667762851742820681045831576796153514923580453908882061321459939724597422321477164382412504958012125726058002708473120117412772951222031597975038654497816374014318559636979720582542237681026240561847570694810705275762018314558285026358303165730943236425308476833131767104728293911750334714136689495362821658977768469594609568658462353934325406810820026186732334142812530967933818830603140155009606199719994385759284580953755715564040606066627178072737747881845333457915518394532030934654842490299781006784755536454785770392485142194854782423850196636367293551244196780060384173757940371024274902735711267999197046529038443567984367675994429476514314900621812840282468624621587105607805208619642822078606407899764173445185916763688675140151028050320767052905632239837275164226189868273622546805837417466942618094224205266783789616199201051425582475369774462633777622106173450485865398574188867067531283790937240480925559396777279831262352337295445099272897641630732346745782802460586032041376229313289924508601601523574392188688711963697209692728155892545742994682004154229924623349637391637194621394533935715275497349951234276013857486470833857797511913035652464293001416284007556477650489325180322800740096513486291419112570958280741731565680992970874993339720305264017981419153208882301079371998048535983484964930304803950190787072223077533304382187996968169372121866062473783171589150116985338101558583210735378699001402334089770725334868446390523528758656697052173980216218492409408981128555635259540744485175140049035526656458967594906119642226533138359043004287283514944303141458812124096832539979383303211511153968460308728491148694084823713546237944551224096002693511581209828765526198532202821251640290569635491810155805671451408408634284072830811594903696359540237411892690220998949835458553040819008755156538225964650168864494952254719163030746263557795887794531080218556722532951681830027285780886856193319607998695454450499758176049518453799297773310792656150159318160741576381819062128737456174770751624769792219725153299724589281416560567848844263846840530479196307075766747608526591825720969923739305112844043813497600136712485672048943536987855584743037686644206728023013441808760735664182753498439529132168727848405501583300125141467969740177844703907381423772173285597086871778382854639545582731632978444061669268608058568411883175943396695825828602395431852464873921620929630379329096833456555401155982847832577988753911284851383884225148166996455234603880186435407693239884052822876546037266666756558026281403528707125073054830660462795477622594598829048059162147102250988309443089605722447892027447517802655584341592612688013752682530239142645772244406792181459683964775776267262917354900145877502559339443354305709556177801639052327714841380494080351391882409863341031951159680303786077190389871368697451493722159162835139395228548923681518323008863812898673766308528458950239796596846355921021488432788511820019842781081160300608988346568714964057814857482853046315144659218245696879082196459612023477049724555783192782983608238983310122742019993984670703783554755345204393059705737698875622846401935281633006075557012216183155619545124682199252009705525937127991357605109415950331179859896024470304024641731820801162550698696000501380756894632515494393667546249197889720306708378490149976752013357656015364542586800472638633928240743338955112907710201179860520884616398835707854909805501937660324534736814006578130904508667063665856600324221082340735895860459984037376783081240546905925286286982533417692513452586883967436568038185767608311252912014241991721886196739869640353995953943077835019345717100959335674019768959948436804639330513182051998016708973596119226773695242781148384405076273111253930643111496911732438720752122059128343911562473761493335019971400934072289037553997567766974549914592700094072148933282964602862791594338935462758601586763138499888449876124935868599297881319680361507518575351098006225602114510189870252669720423879447191096025383140158014643657461275278292854469737302897304753159724938307310873076878472240619257732421075945927542726248498651575983354469674253302526839877407257485185587949107916983401161913662664224050514072177002646907312758297509758716554597556109128626440905755295159597981428983679826162691627795846006347309676906008198631543253899319851621104229969318624550434005483118799142409873175125673775199212239715252105323367004333473399541857528205827900245224768257042716398410525316380386539586270500358928035632930720330179178014033006583706651098102172379232704792251317166469385164238418172073687330434511972436070145821017394758146649724263440814149534698875483159047302221408984614016740108516139203981343291044182489271080835517608084503445868307113546023053295942866734784709049049249369787527909374783544336773002664827556042170229683583616455955647664179737775081817252280709100675179760712779974384899448897674852303195098963237260273086126296510039570554142944262831978577264762694435078607890833776517016916291536624868624357538222401342618594589639799588479236516473374331531134028219681815711319613531424913564061845345265111311966224076086283351889083565965443738448779866382796636076270571890593372557429323316073503401195970284568929339151723486135446950508313784972329251901732736734294926366984822471995538491193212619269680394029446411950964845959187274203896727448409857823169750400330377776305551363015915926368495066567751600606609938700468929194449387823318404319520309696066511957527429450649659487114072547233105230550470728781800807880434779219533886221855600028406839195603109632284380165577486771455426663586939036650197812434842223880525530498860003933439063203799498324053954617407684990266343474628930237218330101876791507997073926063152771135389916806728912763732359859030639039278494414282482365841232412917715695519963848869489396470865826907095056109400176497035301020424860597218926074336444101698571443090687254283822033218576413624880701884847811408359290584473125463553181328667264202038565906856943791558900447477406816613315846566721682809212099694723086356122715537197905134970268854608725427880083772806128743693053528638698526380125100420907082923050012369889630236676525615793666646158645189627777633865863162068302891530320808637693941650154448287587482297453114891883949006983285704357042844306550752845528680842566214137124772280818393221968637207509422255145287216618070128750939598873013290310929028681285222826488635176383964315538779092590446563847413528033699425366097238026410201898961500205856748591041793574838681914185305984739683778573683568645799453791590430460007068918937598428944100145914990878168722443664302731750981941273821603975283983111833059205917144579523421052433492414112877293310865188114307219984504360908320557601507450742000260953451126187144925498698179572293428145662575804839458076886065601165225953932752392421706694847989667621295296713964629429206779109841532017774387822793093147889024210770896199915118322277581733761933060918760561359212459886789464655762699557305988142924854556130031514550916371479744760145933576852945821569654554369376437987192664332358137233475606622281602782117597967200661931290776412378731748994806174840621684232418254323296967275767506931264257373075456274550285885064522780404668183914286078395140994197012348402701525417388501277542080600093986199126343158464541807401953410396893782968503405031018203993362060948474284853577803595701499504065341725072380070387150493052126758868589381655129643412282211102759724405575538373168955549962686067849948213678715632195508842934377004652770985118894710030255057569765637557577728913472657546525429168941255372575312010887354740553857231326635926672577335309496182212630064971746461399383742245927382325467911901370279985039513487271204859057491356156408125890070177324367392934387655095651096591030293299274767094686455679475784247210124571122511995402550513638564535874012122189060217076287794360691687000834402185133663083355694875724595859809847082504388383444012979367894020760505730430764269028951542794074808004443696720953129949751736064976590156556860054445876249246159225780642770959295625025106926070457568708793416784575494573226091639557588735079269092005984857411310427833738938413405665627412046737320795247084051265939760347071370714108659424275401164781689663295323266343817896091338887367298240878541338857220126640621438947404628301491765400687549199096773362650985424639286794410174216628028594256700130082359501839286955903543982257791621221693068589860222199896370307712496467326097591100638196212270066042445474101320888752414197295042641998680411538941828912148639229484590230357769705485822463219320635407934909015458036141493493622952109048088683724929017582558778531087704453138828242531920446312042642488311890928162526897236148536633989067944654511881355917446134759304258792989341050287643833965856212238825260619967815514556034858749559950349535649145511524669004800170626929630333820028614433372626458862249201639992456363075261724286631222166912345760489639394747404061764014374978975420906900286625267447031075730022675686300296640455448241195530033199658563366085709841890139809941005133430900677358666083220243188134365692135618808425377624844442585843697149524675940278480494103195604501904234923585778788547690766326787339872623688562761418914257719319482087438707899173807773507496993553880242494169310484193758594237137625637106942472861528275447831733264095982256546275263232315846239019620637568579650332071254010240887628163667320091016822630733038469123145815717994090426311896093519013303008409513301389771202821480899595728470669208037537150321752493129519798078553512753155092621550252956351983607324244465070214395822320499557258362198838137763006382144361554107286626146207525279181205870602247349591604133343821559254682213781485666773182097331791814525503684955044283960022825231004423634341937347079560555416890071224470044149913860564736112536443244058380408874814296303020694242846215870233866297214422927860307781959097446095994342295008486012757388667747850236453379091671878704801650572961827182231981894533648163599520480677539139645491421625693337546429874194894650890129572865320272152123227674899677911502971069423940824975332986604123371319168300083961419214924775089810514125215638501827113224013117787714947216245122813364786102456087225088236658783846941215296651183998392907080074532441644521078296019377821805536373629948709372449452918736943953497244364599415933267173283302245991370358710758674993818381152400416509627603821109370288926482634651120518084421246686752132265084768723607999324670658099732400306625814648985601946871610395019060674680059187498144722958294402095159820269921224254137491029377198928901498885647760875382458630014255701771436412631148904023843510783671245772225568258823097174733317190009125064607250290130913128415197484488983492979433736586524827423646778827413157669990241153447864477105353560166143957645128611956207543395966387951417796877347591612396367311442078914167274640042777705750909379198560308826622300176150128840910449732395879569171284436759677102387885842535601639399615053929088302822904575411659955116849461916493901830768918147359233899690411219558472120199627368461090196637906177873825275517459925095259752605508354840474289225433019762931742215708552357032621815262603834224831571430283650118726849603039833416935579637185027042338959430609197439687145704828286214651460147197950991504585173024367003704231245872244212965695002497401394257152050611160986625877144429191844341712421679143063690980227165069364736659056637580939462013536877465793471460988547555898085574154953882423207485998980929505411763401878062202530869091990790323265589417188602964977590126558727773410950171720370390158459790126374856225218190904902356470030914337326014851957984521578396297692901701137772681920831776564177173740633836088108027236422766132502918912045226963396027366191618150472637644747271779287974674213286426351211095489478495953356076752169219941538893201698153756727193624171112895078502151196769423076706979437705371916902069833206177478889793216640008931703650457548737543620272900252930175654871990015543662644078947045689591023754577893112981759454521291695580464071899456739916756689557751220600189155512013202639161216853530397463716182270300234303434217479876202388288678195398211763892192154784615868375035581739651941933952063245663470623960757268254319350246207041851642000607489697690039662762004994037716182145651295681160055690406242851011389878576190382405969485300970030068986079461900748241224058261783448055939588799496025904313308713451647986169169893827850838467530527153570353028117248486013078700494902326134372484313125429847656609424184904284942101570943790795830426367698519485363876487796923255687273002615333445828557126094141938684758746324410286325717815358741521144836464160407128944220587102207908090580069621730114695448626704460767744796773299667876368314346105419751965955348257374949942375249740820065665167854611602976565583526234473129101091848608363247745195931051419901447682551652306480086326889712499095394401395835441342717305674049268785126883844435736671140943618820407395384268948868225486582839821807244854842078553726567219248285967842204244680957234751995139369176938678434876842340578334010521196516829884797631845885504064904418998528253489604114868051272161643084682150920375933422829681550223413109414382236342314645263581365785404865175805462484351208073420471271170971884635298804374421313049642654743288271487681341876454550847342363847727226687371076474481656885166154517656114940334137560261085585401629937130460694412378069038033498915289242602617253055838121665580397277478166683089244633186039838839617355944434297740990592178100319281187434757546959434947780441818667772413140304281184310289633503562772633085003128006772952299301219623444302729081353543694898407984065377056191325134682658734130839726059279411752493411149631940286453009143479684904983867177603870046045917731446037896738964488350033398804079971102877422345987498996000007975477619549060513666807496265205733999457800176376618540007998936293960392603555159712738660138752092268669713539345804517892095467320771908747686822177906837689275235416541797618703562739894896993814882466963119639397571410543878652368237900379433248352056525709716542706217015147579312494216636573380277415569569833584628363929988838938363487679587135661095527000624656999546187851449195619861828008885284823836503954015801505643557134651416146201921679291120291986499088006624711039080198499382520404324144930788922530417667956274491122884979519218072941300918852670675770245833329892134059954864658185184813944947276028352939004552686308371213267841798573792036413407800237444829610521047710714885596663794512300347249253520749894129411530419511496494354227828210190108792551195755073337459491105355904540682292100786979145957605919184616287684297444798155324698632274944502539908628933577386481441526160121259165973975359433132011490892519792152327799635030910722857363720494179193146853240587460070415607912492400440864098137813182871791052029414352747184698784609558326390113113889290036565302095128591159795266353116964229466380342486960411181380417193011487107163055578579106492793961838739994574259160883729255512614216891773656322546352098059511567280554986148966204377841497997691038244410357547859381101152991006258444005664182029889714354617302757609315812023994333700916540287844045965763094479511068324978287987090236894303610329255191894708693146001403031866957643117100498623885435702365785510741865068044715461063235449753728162193155518154187908783856049362671467686525107017338807245166733732021546018375676530497660755419963743031510476540233100982154504637478695997622668573266542648715623831170915903517161756286135749004040750229283855787194164981772557057568450785118799129937009231118618587296304862377086894008780663376707371785988656771463204709186571659954484737734143534891653159436048379599016757660598166389770495449817308141017922606469664194152197033526929906063589845584702530871161473529805223481234509339229351097427678742474551208362132236812598471346251477273264667073125096775176042554017699831634140504301624331747117901191683740221613666753052486149401443370237328125632593742222789193015103102436883285136680191894469336226276554389922459368115791084015628053932116237626056470226424782731141963210107058108368232900728306761409005001478953649119036330330413199996554009499284053163262193933169427414656588336795378745288588363078058272441896376129885809519702744492547631506527834711902218998561666380266954223565551387566238733474465087773131810868029792869594569881328973791162487925409479134820314222573357298655638220008083138924358917698912448373934688098239043787817988196182973694850308553267417097747369052714949142520047002181960209271145364713825010231909253835975722077682366580413938502274042764882629286643360197358680614158504105415639996962643035562293504042595863547086118779519312878260891542728748328553367923310995801402110695785973281728932456087878521004306018629806544596649102815045152996834605116096033858536236437900683701956500893280390131304732397243831809464707765111517263815398474278716128857547325057134354472286867898131818065967323075900360544675132023883129931279386093350531812554332868649119646122144374796493377212581970481654408456742650324198016063882549677741687521436502918844554707427220038814430449935145613450542857403964203903078535916777212135349753690707385837869926173108120231267207465715111839578274149301807718894540492992931380234487361863005301687482708978563285447493497712803024548364084708386254368858742602281480107424721036596364037828084076085703989955802552761096482850260834429735488913851702425496300245371193115906828101531760494402030331104576882831163070732765901681456040618506007955699298526987355716573335287449844148475914583115764259320001836702790374302540846196268518434186217392765460880131526836195756659136142291785046735548699903766546607103443898553873866400764004423246651974149753497007443997028316404740288555641707807972226957532656516243588716618486424071738655507054047251260262138382496630938268192611520001725530024050412882189677809809379631533033911579921309750145068682534210954082063968117639269012547471987342823988754204331706603258696941753375468808805460710419481869591120333704201164867806748616908186401446467033626036751839537842768609669476761492813072076782082669120273525492004656775626386213027801450061770753124822884733960712597006100643820017726597614969481600257404597665340325440061090113592931759234935867291550971587060453420216602487281328185714289056045301666234924310549166822718388034629643065369379983828689288250863389591331724649997577038130404642494012636993327392273774130665298692415788062186527884870897038879428869839811175861031946801654723999490667298956084997893640284316679509604895833134098958054868364978691085012086888204015874335609423770402524330319175311905073875453710313218716167220042090991746797368403315843270245307087073047861477406679015310439561673991919111719635508495912647484505363284676531865327860676233840911256728090520049467411074847392611550999906400457951679147353658477807463828113353135489509849993636815703802271900613536053874954942675157901485078757133478180014629688808557067701513967494894790574731369566977356982921216516359975579000784751112390782360614499176136946569465708721235200368185893431501057405759507265281664528355412710509799364780042203160937229200553307600486745749610368263687316786811879371458467125622627470505842787365808065085192630579937251966205094639950111323725113827060768247926628941891605265645572793585771078474608301564107052292395584807853323389576014682141835297215531759235724291738471770346045218395002714749932520529121108663930105446074517014722277226035338166378567294826602594072492869746012412294562581721564746228565723896329293784218982507514292949284098871689664226636709809407896734110691649785076997646188921754128143598171911160801004424760755577759390762053782899285763979262356189382940956977340576597762704061559682231290395044404046753235521625463437461577777482973781234533089986678389488970179747129881451469130309268185058175492242252266480772488525987516916002622778343660758177798605466973583589857464591351372343431423858342565195058682993153333679850696962811394403505989387478473524793388236882314852659457253493532057206549752304594620223257123243655814755750132138005061483112930012695716916964305284852580958744058303490415375716517020730698777713051629595441517644046175828741139931722378259999165478290850657186856830455163856616390164549069848198608466501856537697662432090853550341103239242670753134341490210771096335030704578568283320475739254833237643960207385520665565413532068645123521431154337770532925622262901093939520677028488166537273686806794135024283689525694790567742506118384025211271989980002961880635337715039134940797617185315607492189629155557903261921578607969547960710494962581511283543446458615321111494391617716202910316389003444809325330343214974620430395661299735903068725516870758899028822455079346454388934130955982813401442973833974280058506614606531483683230043554066804011653554760247476314238763016836503531694075144068513748348713799578838569734796896814237776186900323316365993429250865140989719916529414446075697760135442688426582829238044025764876781724460195312260645752822344211488220336421543814655219174037865061014141117276760684407050153895904289377577536294072647191056671778474884206942089170065859911281954354533232507773280093515578642221481444791008146735003022136069901103637564629494864373564608884321327990191876906982796999524170293437067848450694686784457963156006365257855477591183125929583689381624414593971314772421435202689919675808335146931916483968396618607330691788144623205900237610406142637857533766374957169526161456625607940877995412438470844693021026196620960188697200833986388125830113182162720971999664029850833278619225972798133848180056564892501580555089020649588472776338285420350731856158610059508898745592551143697578074607588356012032662704204223141076870383948275182297298986156953750300474254484075540484184490731772409754084608438612889363287566869050279693377733080185744271890316815124706745122456513774602398270555899665830213083712499527366667223088174974797996967735189296186708300977079049312689897434944327565706246306662240983079099499638252600408484062279480831309315313928035296955019256691573439440221956177067150801954868986462453543043571280657457453069825045099977324317055036344092521297214242028111067440703548125402786056485733137682235121262858041354248192357734218355845619733232489885222750425768721741002808298119334665241435611918084567949682267173778290060503499466636812623258909950755386246823937501724499870404548965566821472671280179937589470027760596603248568945957810453397144639552227366174660316815126357728973775461030593137380905115391886877049405180938130871570939843043251486482055759682717657784668215260952924501557090040635151500411282114243924184470208746068135428727198323277208893557581051001447027708313272603114190892448027723275392469318912976111458138766099682162339297913860576206442266116500510599629774373214271318388402101328441788817566777768781955397735265668002994318164551857527080899371611332083149043515085603820033607241830646378260729476116931939532809168980583223967051035179433384405012985331822573320009800502634136147702743640595917016459436457240466207391926264870271480965423923130943382508794449184037186930272786973923904998920456535773161458007597049057198676229918026742303313173551164182042752113690426266099800310448183248933671543065531526868320536594663970227789087528787602234464364098150254410588601122039793916149104009587233696895743736702285647121516346428326504714343331136778611551659405720171933972662645435802709292292311359313922589099961896978505583868837962776843554874594721264308503886767592182825158334114443491461674508428509551018317535917545232863467708374712173838800735440205971684092441778379626395213697106116775602672771366642354337858395179376547026505072263692017729125659487046711374042229787755059056297069491035250160556140548596190413494655785697520520357889697651988388825694147615928021242434121426716742719318202100366381229021215151099697723961711052908996008909682917843191234757814186679465151800468613257071538849804074051850700011140757815212956017747443036756816099415332677226893781076128621746752305024208273228409931262285512102386429949207427587201241201866846811316263108079028103997941404915666955700674968022351701879741577231130912708842502215217784224971446834410110297090437431933696015443231976298265911824343505816558179014290436285342372746755134254995856285899008663477248685707227368498761295502558632627524521720336222890052365523683924169719520524174953283590212419410818980958829671594432887101932531810371721852678142798949507278858323888492395310642025432718717192324215120038150690339485470593737810419544775204618731268798927412209866621075579977704946114718362771033620748912945755286442094158802647613232681612928274211044096427635611204309167875111122115574044247312879577371640894032491439984240806755151175406221160526534765108330862418034088957162279610121523018684621053743847927490154627614730129854912448017550362334917568262057034116588071827239126219937369816919849709619046913862857801315051238082063777056138828164181773293150451237890685183905951307514551267798398624536270123023227165058842536802738106011554629714449923583847388114050090001370387563587474450204031172832969617803289461304587952024550031867462936096448479818442404733794572623863809677416715960013434162410064926502293124168068909142616909137065321925927875742240620752405951440796010399981542268136690997442595075218026461407379852806033877654307767870237364527665066695299296845873832977744453349496700457095543362706138059903070576696389127751715893857490763157527156813549939332680369282690956680234613209492383244816985306452143659782902213982826912146888625885494075216958627836308641021585766451218876831072293997450825156858495077549465811253094125202009105370632405889629061050423924123601645763898155647974996036256835720527970786939856455152723593834133509983773257070879363465592675580918258047006014082895930379812198323887097486893815895427412077982182128468327057864862028907030420175997462144088517564872830713715911845345607992728216872867964534299551200417932934819583312360845849178210186008342015560997831935772378021651931089827041180802777467249925165595001263939010498739662399020347770917330351981115931916949342997480515925817720216394128194046671283998271396463540424327392772717842235653282709512759679902253498307820097390224877975969638137403795208357229092040009490993260535691534307204874990180247955719665968099203156626673203830985104308953506805565794259675734274390379186508424951878769212310336680039583370423072911722368042415116589624540739297350738702895522146785804753411077893462788205878132143839562624676058540245372723363507104660825820284790580351818496944122652729579895923869800930460417794550581912098845948409959160452658457455083851918998659235303372593076269360121465510365299072362775544522088707651785062069236192210171711045493209545982323246641708295732770002777469322754704535610567204739904737439321721958556658084900224726933844948236918870755565571176283494623916818627123884271723821011517414133856455487059939216278528317624039563853006551404109050478763925641023386111699201309136942831457841695241286481262487265906517172146743745299995210354826279630482205911682390471562869113416533669218293628284574668379533779099695941387777726588132657669274977938431380492326631035754125852819677358901915085808874131912841374196659603452838835177547412609517658093223500956236441436961483996584253480394533382981328211637899262065551008935357635558110900266330602310863609681889215202684582179236482202429956679531871215413614493081794321636894815298215534697955055367910609592470783203267011044972089606620209563979009468304647767097249659988314950262170070512337160461126367191470165752529968762326629713220804778272649401098345762278149038881212723119711223845470182593029517587951423527696177671537304021555520325356066057242627091556237437182266893127862253876003567182682572297720289983346970501121983324067137275753396043480596087842037870307147184764314112125593138596679425819830709615099610703042443716259066605724743753757105369426079492434667621701802278774107176482591675564719145832773156686235717535990327278964155263717580451859321594754398850091523163301805555347431422528055936049377467952921586727691492922150129077662897991446007273331456798410671573116648962396252209591372719461375530115881715853665607124262681179183372823462960280584042388431752856535900383570246155549540948614831377698327988511654450557703215127332115176967873701439234433181908394028282558009292184159060127682014933605136021241863213457341371680243479763175571844682884240997467261897565855119348649483213662363175850325786423016490062541380078876579055138235518239440176759089262544006972055683436930560836048082903069865025276444374347117008553184446652941239847251126920870275458855486962885701473811271433196343305925935005800356120264923733283419727069946804144916492768163939942261284280238523399864132526063397345294092391898361090689020741783923088509396283996129719258246780742038733252372508522243083832817577290985700170675861124661710712445458827474850628669600005752894590726183357243924266971368173147800020736289729715263422147123394600205632066661533128357470301993643575997349220809128320678182336094574251478117801654602386307019704203741914107043098202112064882354433933346635486144544686072842833617617690608703084078870904952297864981190235632700261219101371833322970225643295817772478748415610174291166838178565019583371679525371828876758674861502499850230489486184067605785475853753371378537169989725116969840290847546188602604771408994114496054884200405539765874557557264217911318732042321404508749382723925948285880237294357781349765640512741528793038322522822115778946433300980106102103659675668584600695086889625357761217831820952458588243861879676713110097616326524462143951178473058811199695160714514542887920156736119889579905737999706785227160755088566929104177926481299925190736250018684230377474829991388160072888138251110164933797744277459307314871720881489654281827305936412494722265636649753928294485131679937648557095611839753142862526412572691184576528894575661551672031999784124628150211410548097284567413171189567200516249215397783756024016612699192207287636261633159222388011785018515393684380342300337029765706009729110350938523155365625364953219728376948233855732805367042242371050019300307300480326916402095605898767054353814180523279902960869082273392940332328709004842084364598316349307819829877673340209881603882248000035318338687256223233295918659181547461166016165281162108913165755104173278804695214477451629380800626774758211372014105183443905475259829215692203967800381960391407564062658742920761969042298687407916688500123620210577926148907676495795652487772831721909232317437168806751275429900708329621795353405696711693366511440103345688335863074846598524738363538435084759439162272756005450817716881428505771525619547541283512041119435092356413893476494039035631273483370041753667080147273192249705775970014895192923633127343136187922951201447998109270048735641531730292259795040605172469876462284354415291694360599047340610965241487371600853276847766577962427350073914287770828077963009886172223985758198498144918021534999080906708224988988016959275672726162828630996198890041787605566374214318695846027761800057678275245284380566676842023114115367957518654679545278727512329457845023557526303102459794947001367490760109375089043236836897763710479478479129588123465401292530693184381733235236359643278102592721439745068256097465444519916025400461551052471896407152877840442746349264923869594509556517713363721141821521720093719153700015482405390293464840683541914655067972486017262113637181064968179040653727457968759502844641661707516870864250112098151450601874640726891205535530425576398739793988375723233652814698078215445624467817676351358196334249350142513555569448367953138097443093510473766897605584474818367935376608112936089803053656788638878770512092025758492883801630446081260534841606509835673801630843029789386909347873402653470975368150321144164845003377127694860087748189623430174065918126924770831245633924962436723948578391619161724542020120268356956331873059114606240867523713467694811690278744110148612208918234682908812681555930529219305326253385868559849670657969311393820241492680070516828518782594214227594158334188501081390831353245422770709815132463601746857640423950311656412728635152328823328698832376482414605791616366592086711046827247099173436170365449802181540226154158894911623061404515169698731780147831497694986781652455120914420207147163360032685676626969411574088744655977476179307179673453554927939118115130336374923159266328995685564389651203459872663258483540227962284670895556943521387474923310132967501585913127726791538363553296495176292424025407866528012260977527965024544275093181685614682574894042304615365473877466483777331605872826683142498836132537682260541473505786457232801202546108203757346948211878932606979753168593007618866562980173731672395652948289262781413876844043113165235734930668092324358913540875932198161221849334646674178009638393737916868544636984506897988728037332309521376098320726690892943109635497077252255282391108001514678124663355498429946548429120613387645344208585670297624087290082576868664280494122803037430197814464345201592290954092904791316425796616961149599887151863460701079818445705057501364461011852125553854163259100101414110410125458443535039700556998433986352302909658137347704771688578036187404629499426423807419709296254959300500952775505259796378377201536195973693636270639176780187472024899585656480804007461768859081670190098266281420006051113083778586013971051786770104369273706276633051734034962472961152990625866366379536658015496619753631133012649748733460354364700974059657026047638768758630866853708642072236046919325241696576550597380370778920052126673971805634773262089140683004271782206403136480259690924618156972407985252653006561840284731223790526633185583580262245462854290382907727017504823842071873878649421861235987044487613448864165989613340059509562077370789340018697776494071131792638696301798526002147270617287842872740665760148523601874593379448655755028082268904689146297548636763310064613177961095986139062212714354626885955878474577931015612373120381750882731377279845454389272829746444298806918158682231955222882368599481416771329593900946030910392240663989821380678359087604553235917271231365764814364031890737577369063375115659918488117793241937300073535281517758546505138326515376436020576151715448044961214133241133738845556351302457355717259169334566730781183976355830389264137827965797982842896237858107662505840051445498633908048069578232724976620309480560861586396463498180186210372128246160166613881064269795697984383785518758429815413711514706819613788020658812375936459912638891445423195521072313426300031514289960996847249777993066333189366493939441540933456403261684229400061515425474985979868021555829956655331063045789339832301200091278847453790370571578692867175917153398211727884024571861684683770961923997322584222856573151419809901121417360821967827984961454383698095703489002286485001338864686489014223215792439503284509974355641128645202003230247254022236388185599975022321091148865303016630569169840673555994088551113031191305659029747348743046301520344650135273507763236140353113213448733267315184830222988686646149463933019397234294982382542027534664666078944845343304959267001599771571015447634872697999237224505943820248667964167557600130598478303495485852824610567154151332896951455039832825389596035745301222419097549111949849869152637180815976575226988542228707196000004949898124934754228976614890121532776541074379575693030729893661748495455524660668501635613542710672103537674733006159765570608067971681527984268599042406435453435423754801945555464376167467896253708205754115958562321565096758198421381999844091568826176712160261048672487741722385616598850862716101910551510453777217959470303327341170409512036594926591242305777788282184689413941019545446735048803100333497316057239344232562888522398802147195817206691768152439598550477994255675834691646154677131188817801788521225769384114116668103673611419305233950322090843085191419461079335918415010375267244322750961988378296621398938709349300340791218818359221484920198848396050218879797910150440331357747954816927110910402701599111601283093502484511417821469919872515063377733338100944544791241644648491850988046409574750591599438612401536871977900711387904224815053311710441470424131093996964075964177658551422766654394921092588248361764325363556497618657205128448033381206025743525517294842048812681060682060239963689931365501476253359933783804880247458898128871980287131257329218866308610860594228276279065734513185517867635188397490506353421354928412890579400682619688216412905004647739742179667611529311396328443285157173576000195832449457140834081565491099020781974971106792811415342869314864372194118440928677932716927942927666958485024868277653786651983467244632428168633929220146743430863984574526214987077318676298858193310069951180746841563481106642068208815937067761310329328444085593276935448820773003463088297552643792601065267037760076288328653388400053888958106020758796868220855590113684930751560622755620942039267696567145430063962134373459666556339228164661750365443547398759279523758292884883802634999984568065998738211079696674539196461928762862781034576964398778413592468608013949113214841553041981650264808301823729965781450600399119233431438653282644695027203330822564739943344272881151724624068444370242483614051388504383307048432991794844525784873262644008574668449563350086667049699206739874774527117599692842328114139065750039381198848198389362225702822935572814088475643198006475340197484966849443310352556840240669961443746124723536461929389300650189277644091841926639321978050758733990417541281765361186113120572368138635584653776856618923610414356593503004505886346992097812781463364656250467119025118463089121339364670356107398556815191232868453067918567596557382731863865132122231852482027530664384104870845919472989900075199390041756819855461866165865599862406269076095491733711870669220997495989833920159462921129347863623765204224198849739130297503689345589303249816612845247825567327504122026515968356079210528230636220693864656363442186574674183258767329046275287168112743013342351582814415566526437374532459857802199736056956769271833675539046654175489475558503075394400729596671220415346822684261018635023153218375067531670503317828890235086033476988949956316929437386149320424212454532935210358723974830371435546809705682865772448289238189205025697051162972038447484338135754279845283913111055330943366129051196971363752114186049656562391715899726980191049543999198260631294565880319796997456213274802871814611124984946765187534906112375969615002219599333762029430065232605303586756586624481224930341174241970283429861535151692706524493046757053312191949284851543014210799273613255420682301618430772105944224461593638879423571011270947286038956953995359589929635169196572652062511066154632409858428323850364223157193736742042419734964981340831314573120747936969594219775987858532977098245784681021083021364008537830559400296035211290643373313524634483020081178161263945129658809786297785147880355906155294699144088884911118953139166263974776050935226579944650047395077071412571365164593736490820503240475661918289682270102789297673084905993418328793204687570132924753588091522398923571512204013319258933076492360910594972388384209646884290944331634176232782548785963631599261463565629822680251006507395455876486052116838517514407467450588264829492748639057751324276504909483448223060474355825314304424755462594318883240609079988621473744461880991416274619223236799951986145480504573700758007873397693777952938167508659197704684416383997868286621800788114112492890034729672905899165733495739683726201974145009706936742097107677697700815691747047985567415525873894960350036254842218850572688302923736635480549127017359994703502931723549037117282447446916559793151316680195273381876167077574464916674410074408308507578980743763459758558824374383335884686791948166090667333266172965086186332787709344338649241243994951101320828667747578006362397387669386326958500112174889253523814679336368940042655134706255207234549222700798571723974180065798910689887040754032930269817220830515171937596088437660475320009462782753455159489309335487356279764056775351139598007576744647950684248134981216654969219144255699793520477271041427964891460357194186149009417918480474763681637146837131174549723170286543480123032631154693014874162915686049117685291490191881812868408613453198633550251649260129355785640904948582263088390827682527138329362660825635821356467684844319789589047092905740041404184242731561863454407615637356998053462646495325994445065279710271068541109960723796970634437711146140709148869433323054022192141601439081775733834575919240805760441550593197961076211876810730063224075199809336614355740051162473555603480048986441347000937710843998650625848339054098044001525865899692500077044494072909357558829624688829626128161662099441058798381292067786755642160117118446606692206353407751605947151666149469859372682789699143069447764619774028403132970533792113068801903933153345678647771435609975578068965151326877972047811235471881897729580062848670912607826730588495745573379303176475421632718507047791021540099892840497671154114568149347788867253999628784939363523916515018632725860542770784127214126467377693656890841546776217690261709664302155541395925431439105161552144906414300797510283772714049410557327720569699701445079442859874004186169690540608433253391328430131537409219438321601737254630131556930814952156076052819375718020396295390564193960730315112451668096911752426624928797492951634028865452066751278269384027859412876694965014032941475055036385686063494273734791709728068040061982014442928648948535515842811023044566132572097999022376885763938594712806689604377575851212813628387955839638727843256815511688932812042339130050012606066065426682267631158324861926733936109675287055155721499632511413628436870467407933818437232439018556691171692041576926873039650491233797610611966288067432428854213368851769907097009629847774982967671851873795928285256578184189207874337446101405776672458929430986074032949468328710365979385382128725164650420287962698524821322594823688486237114429602105737167070089917668861579815932170670708157583984650177858675585208164728892202469968576528541268875321609262657568523183992059815507773135676882715213595783697473504362146574401729107549635867366141243736211312474812509373198800502899950447648358778020704890768761819805052485296889458307603413364594221817582440620443658481434498976600791105088390384853958520274540872095264358052251480212337447261864143179965904469766729396691012776249451629301556752926899399771652776572747282339840656322603071281295838521618864330254311140101164133504804232360994928978238024198521814263452760109343793813301226205119601488399011744866185096964869308835279189555448715223843593558899625518046454367229348286907186620460969040350478044053140101026833685990442883836667863453196633894090190018472665752495917113336160178918852633986880207285482903527385020168076831935489630757523371137205024935317332935769340583397448479455287406737231014611906967318161219155358367414403593803778853968005969287169030475380849119301204888203264910006827156712495993811404022927493596483385923111537774185113610275990046965934960372138747707344193517861707295587883110626746815968854812536571518181531765503017854881070268832023873177510491197931026041380281049242074261858148288741867552729247184612334527620050436942242169245660376147412000911606223145059382699418929132477107842008475338564596552089565179832526565386635442637783170176329827450099036204208476709440433336557140074625692271185228212903639308701393661524264696533253688795318970143897621656158944526869808975041276805267872056421260567472835203819597610503612559880812177758403788884561331203259893958401967625134124421923418710669707141700469683455904499622662268747518656100285213649120736666940367226522724799909282436337544601295166060299853150104747339232153689640178621407106562315751037318754603129639788531786444629063543240319763229375512120809237714912610230889908658454250679953646545689930581551520154573318644605669692722982525912338433803257973683049630286143359576157199174458764142610350916965193903805474776662630803624542799244288487250597986385134587376304891831538227787318489461535299849525205167066482832106062147343253734018260331354332676791052804716477468649589840393468993383005447339738663127355432833484607049356025873325345344814641961140735998243159789670037085277884928541141432620288810573363623181927683064438269972805528691351655043348889335505180371368952593197790448805152986753936506823935531893281864093779320470561607011834311879599004966556663958127478896213448040848979875552788122028941034351475582535399627544329731894744015887371879327675605735836103677770700376510459977673442697354346242509553180706660971843352128991982484629354836743801135154255613422091888939527364428972872996941483702403027133275856906374951736039683317999733907649020944522569597774999540743645759204451359427175276468511206300853739900159156869412490407128234635490851092127590669509935050790351236459598897403389814717243415010811476823214629062376159736192890825745079305343344574203647371899187871914944809437374858192283817166259925875384504695370291728214244847312568625035806862148553691209807254512890962385763380979018276421314678544659252976628517835863550056667392981908180083862238411137293793823889025432508430387453835793023188752252271592402470089810927035499584016945290452742675979170420391567700848254630761903194242757826154886301398866372324378824709860106514215502174470567424467587939015374809170812701993637978157118874441222469822960883907430895766735356073489813218969332502807577926154120069403587548427878557568118866446376012184734862059629792851134980856081447444342428955674509248715409007059515457648938918770143777780358541242071117776813980169562557562735920577963786750753006900308618059732295070016246886843685440432097199849701961052988999082989291428231450281764089850842328874421071089577353194494276971630953663596194441690147676322121108244948803346780635630105325331433657379035204963067933494256597788220334492432715713963328109780018574085148753072467862124232590942553734495153093941780722125490792554678678422422274326457400441506229129563686466840690049250383871715345109285525544721986585156096939069066249364476431142683660347706755910290538464214198690202775093635636844495369288957371718458404279447740133040774502559077478228736273361461426202954815100722240731855347103330961187178366770893380837871857131843871052901348198249060689663505439289691895253395653590486195909096437329400957306125394112855791420625197192853022874988895491998922907731841494986437641289303426849237376313181678729868639917809917621132738334832047973521827401781233215454103825397635415669063093306160928653699379787188429676990000110940689379397038306582733210637464595181068170751925753319983331412438597149746016699884680835761326720911218403597765935140711709714423950670346224885994529537563476407959996872599004089257162257523222758224280583059064756719077076903161427340678982467449965867464997527976951199826191431999382487493146232292490690867325251275679506680864060208758884493915339792810776039143021638856134916283117073409420154863111882437144301660695391114673424184502781612294286932917005881082468549036603714642876929467088559711173740959115450454802731719927135885136717705214401685381905700751116937410806595233970967809644408749636788928235199513313605843612584628252842610965872618119600017844913311035598783986783755288098406304508428045874312102896850928312613099787723401829053391189824759001506530025255880525125702316002427877754118516341206862718325178071114358720457398455275102514368800131932334668049700396004661744057560182074669464804804386064785921643360082973911614025909058385350939202242391892932316336541492982695413149619076418853200857988520831376304090692161501535353301612699158176391481075459181318131463960056082843900200219544973173201800832174447584539162821666925044139197931123013584972266360770622724371840707111179743829354843518010852761219129049331586711135345209936673531789424408934237120957499524875639849083284749869272436787669347274636415725404390734758024646090984549303019818947380883530071850933405658772643996408071021107260340057970893858128894366704161412754535192693775731897673882232990905012190341427183835448973783095078931481692791261049450040615487247660121287114523648039800356258160390847830530916492304707004618201600999476126778035976503322846006133764819829457255391893278880986470251472440069607156215175705509556771671434323787596740362410226881240204388257515079078202699106653280072879111985853988530661353536947520167116449035259609278155985549646824931237537344278330840130132730901235845702154328493832530748128002450224326678153317012214555488319528687661874790260781391659903782373869442097494551847890647805101632167963945424236954856095821621829473764711239811182991215463999361348656208277782956209746212320723441418141892625317521729081205328148108600197265624399496922475430227054118285150522554628840396945284633211841588192179100189058077011656821171374568763227291659401589452452668037611640739928427412020919101565317771085751935375833139514824104940743686900978230776398608317390073357858817443846782822579221588723391466895268344283872056850076677687918505786777968394873578739365514941505926294465005408469620553583537897211762506651845113603620040963711038744761380649366820008463777594943399183170966871563645622132572973595854684482870161790886656641146322491487694029980420229486175340610833509239808884041042324371030372171694161277771227446512230925310272430628632742727334233584914143159215195111256599260885423971990500217329768109753032240511433816190796988415316935472453758035556398575770886848404403694989430875771871096818731780151885930085164542990002839854215222522402499206027182345127449688870963763777047466022644815058833763871238697875532950865150872250388491931432673287370043502869700595829679826219920508346010956750134928439551328557241508915846489718688087358014408874761373332679547749279833214471083179244460928925496267256810587869304707598349098754786673725630486001546446878964544920047016297623868221004206841741512594996266028786501027016391427688343120253437990234830078669781057440349850861814759494914351821339249016159035524786013492763521519210528165153539566626748705966506471260088690026449065920472903519704340798788537841458009499148331554411904248001701431588120646639660099474334732568576205608207856933456554923672774486646072632198752611152727251687081882985833315221637908357068159605083165179932922143318994392260025942853409639331592056351569635858214907818125388486450639075763681334033493233525506538994370624724366878985910118992285554117105109572665379534557223239500423326517825569972362822463313678391217277078084585659966332193101700409623803634597981688447769816039041136466697899992262820519461543485543230551837313097111882472214098518495303779454961511377112373503540757711934797634633179441008523345958936826332268809774322789254962979864909088940541101750569502120433296740337744723314359282057421946305472594257205848235701940296996220218619446506682593519513330335178408397387007609674014886109670330246181955925846545985655636713916736307988969594501157805274759010607591765486022627325006576567943567982284807878617221925127771477302148367935645566476633589569973024143418088267089976519917568979560512049095449032313345383013029384774514888527482141489734899160163909682635919793007588098438416826422421031755049316172927118120533187778826701762148086385604841508824760963029198707646626763546262658136699447431576542306638403826782514036965473428225209836568817207507533346690459492811135397562553048610579816138687446039227819781545417588030848302648116905385429878178085589185590340647187095847624374549720579479842949556798742383737441881891803167726548509209293652011452049688807215105554051732030050086495124990739106657678270953476831917800738080193827153518532625496783040956437308295645381416218789898280568685227498930511832018317679221740331082639680616530967857129971201326816721238214327577669100919756909972733040976599838591070714664038660484562492608151376091276756185737501821529423663937068338680265046373814928557604558401683078248370667899128084402858515503313965641403811839231114756003166119165246619620757369227521144779123824389034294109146907466199606337508102200645792706610197369067611393211258673009602687697546078131293508794501750631853566552971036938446214273478243689698222206127114470102092930781174131807607706861611088053272368320759170245502004972971110169886628959016702503303413825348104038254456200055292637386362960741427041800039334802026607744171632692435233854848797941171691435917597665064026826540442863524940154665374504206686723465474592982078060278504089278376479584806779631675692044046498882387500698099779993998592536208881341859074586158756620722103172956925831581671439591574758224569625765468402392365283570611716129677750356327181879015989209459708857214740368362528680387024744681493593989036837137507014229986116582544787542949624755761020303374209549954183707479327838532073111379809014403307341808632750578248836116987839059234823063514150753200372764664872635254320375477586688886998081547752600189008460123800594499901517815748155831988466956764398790058479914164868666947893890436765475701806405695628796055249928876476205487088291099097455907679618019164760137770958035050115406346442377119834471743538135050048367730318895113873674735754221239665158345137341669498406951354292264093862451980503078293040318677080298439860796853523239957762807684339404121225818914123866330128566568582924385117957407860793075399072023178494826942058444066450525317066317416646805591190585353559451451321043091135159309221531490061534583241842842409088955035374839021498301531510094582125026464889882528628189627371326346964175009495820244768518766945430897352822553613330986159167618881698156522371769495517189558007304020320414236277566466239316574010590805387365940975942823727256374349249539714189823985025748647861653822654874099867221903781856507835094593435895730589746926028886826587932439490964265881258802790118315840543902969317318241186754755721567997333809794103098879168351644525268956430926392522439407781232968807172210417949732749201785846651530742114916983511710724278006674656383490029631755452377152061180660162394611954753464813068775740721802584478633113176470285664700385331904592351363986085731472261695881798712938929245563270623746853592534546763924033755196623476394800155141592639138766908541874397020348668769370153558921398441473634179288750094081351209659441184306287367213508690947979993909585523977729793631687767089775871317174361639951702792436432513455542008142235197376606749256204564767840027820758349199160112204011668615252120909960693436704149692020332785114267057174988039200471071176784404982902098981514074062066434019486662899757626466763991170781749696165629900758389983204906938103502589292549139418051036818846741394838355741042797766995100788870249907009221901676645677759312056655847316517893720875497941440793449513059082013343503628608555530056326657288239574778592634263302319172402511899700072450633045615271246915104155422929952416202965187952424865723368320865210269346859566292425372082741946619338953840857546770426857587864888738639250510081451611455120103761346958847088296066268584368609716250951200364444413805962660655121869504341626034852961760771085294886476415844663990416429010630015363282184951638040142717473252352164474499808062538961706324967263921045942453690702381328238994405927220575276232992148271324104021612722110111651946739404399441158951426041028639020169432261031599664837513741736629517549463780490814022418351140742637624242422889942715368146761428210195201837561045564927296345910840948865432008778124981566339477944805431134329331603364113372306941230714062564977784058741377819196143102136749982177533013037868586926163064703560438401427495668119391545163885637364942898030448608526066271875320921702598863039161361673590210173754999808527156997351547845635976481766286393712172162653330514456240789043692826738368567577864522052860426815021363011046924179138563953603021761618768178329947361501854990121375630060701968172098570717771960590767301920253817482813409832014879850069929182566150143088031447581670271486804968420833463084971129244579223068713295941329761975519006031143606647271083106411680929813410779466105400273879280399520138275580392140108737887466322894620777223234679295189049116446074933885512098589920296471593499426548240174150121141234427733285812119217964412184284229123271466811967319902136235930184618494496235538161121484628854513418696439811956581087752628084914799756727897835522769460828708576064382423646476159985618969753215850967937275787042683826451498949431383131521811198875467947924258228081872414620572321442221316095130719722558306748373731691763894297682040309959379337870211891505508770751033426514045970891660466360009388028433092271970101939516940260120459623910706945824976133520999113801247520566703732047867092903167617188823905200107500648661647347891793975445191090567493032726092549347840142284595157136771620414794798138660935607926657619658500357122949337077060067534050593247574247447726543115419054834273007756425666657038212514387480005794612048605757830543635097129610727614331029206468469957633995710502222019945961184832517338754673708777612432724398862824234156942940346184460151693447637003287681127359558737638551446144071764249745144314655939382445031651152961130971088298422694276892249197519841037888889136206384436342451123374852109150643402813798175769256227424798600483251270538097504890670614249917554349000425893374566145088141498897403454575165576436982362972400444806266964310633023088801107743889355945097669658646920981868520932422573718481515795593646103553683706368869688215158683707999730618388160414133398470587448417413656917948358187069349230510136577658308661277430729622210530776262119335836780155170794280960414599810371340660365442808872329832620716340509945864200510594830688686926399655181451474420704695269782462797385733230704366599310336935795209885860169340311344064138280563495117954286494566559915315175214243280794948671093137489313163132780203470141521245583494953728200724948379047974554000805917783235757780970621738237203467577118603643773307840891317401548391040084574752176958064542508970867287611935706443886267593692039688314955162536525493328893905918778854934998995522301024442644372081805878142091920255957887623705819120880493397572675548294967182909391742610808244991185467990126831061065656627182210739823125603683719864301695508749224375835608639667714513043863312131700158692653349675457805679936112774102178330881119468751019510416349157144603233024193560254331288447954463084018143506683148191788766881095755563183327787045449888178216743676625417184397037489313505103468007579053050542811170897307406434255193024578506932668320523238203291253606343069963287209957006325779378459703203806866125103130811624341090657889175151526253194410020912596692828615352720330853380566626169075893728000739694418526218899430184695235672028119163201674895758007991523993383512459517042344689917974162397664023930810253796439569284112072947817575040493942383992294996467829601552522109689578835188246267974164300961051312562310586605052418528688879283498220104684341285154810008353725121482961090151730025368904618185928154880236644012411877782432002161962210997672387397895895879446144948839283666966536544299210405460784672503360839458521385813504236786783974649044592966952827178649730357399659833460949516230802635015561542813504430550904471026725458124644721965864666674530340183604764671733787252502829403715777163897620713034096265517094687314312509798051201645993179042821524377072205371988888702951268337578372630112775288234827325881748344643752092947078136370975257514244765603128862995206549273860127028506555118219341244735108359206254801278158875507864880080221895980173960932573384836264541597415868378415290997933711209542220180855829554540192695840485244996166958372397938658437916808725884502494508959180600068471964706944033612534871789666730063271517463399360260667478276092531337968950709929908267371565159501980132119556978115580327419398157482350908364458571462212937520011700537382933900187396467739100424995205824563466596017381286407218650418295046817406066072737978859015743832901318332509456600787718906397210688063060113034540389036882136621381443974573830961225744374075382347473240464665972851121219383739370842976204016940121226376437794085948441998389982937830160801644054015800248224278466497677705177415909291218470052104024510052056404560428783172972234155987446195009147961559976991234472945375836096401662599310757380630617885209981739335882147869337550488739680075277810447487690894882922640102820794926770360622577592939060638209711910189052623354556197626155789580480410301473596906235414919561964434550544917607678480187674260249913128225901500642341231460559449423335297223134476911891709573325756451823742379363929139770935687251984712564756185584008391546978776058547081443843664651931448423502486572317040833547936590821784990284098989906978048495717514427696554137310046662054404696248160627708690655306933966363461031412665765325486832011629822293663179805854543059713870927077227363233980250378038573933363538092863833151155110782880666994534750391324996392144099594545814371133838303376300857315348528710760556382767900505396405774995037978309033583665706323811565841996482725581667389428115583579857327580297488093981017841350919904977871017731107662503759099322208675727172897473702039397478957111428813323280271405183500133730752716439569137054549243590882066210334398373408947493796122479893322314978822051638452672487833206793804898461990884397755399775160463137702337100649530222183931893186081586092849722421537575249085528050470535194987509243004074331893046031061167244354728271668627895292024814564674276043867835827397693252599946548654794415685697859254102736834103735063900425440008090575821463107811681105596411555024544504807240759227906093347283839562542287741231568125004594837878756224445256812625617111572738795414663496834960285434690390093935618168723468722756673740279586371856441559574397662144184762823774364347604249600555279199595162170530723984086624607147590258217316245456666358671608304828173563646713588547534521340051185456114748870012645566101536586414275487717168391746762956661846597155081675450449728534201450929828255459610418960920460065540855982479955143432777742391954782078548421930609944999742944482230894217600617153531742038649484588359391369628280563376707878432724321481839571821033457391448107822138998710131907931679928208131459416698707304698841093499587150084631513498869157630470991330950265453381122318155160682199737113668478036991735873307704622674392567000045959450021033840708730029680522378673431816627669542434386088933566425823555506546109142238051740680086018143654470373115920182995976750767556250550462688947223493219656432710533521929711096343772704816046193726303870793223174843074516075742923923733942739662034759627559983432930587177924355971465740444261782178012121234294098853686963004384752008717814155449378693901739420976639010093025666289767667076263732832585487006563068135821904065296559465694736143396299165193301338926575599779834359234926525523873078360061684138255786189721282088063438178839195333606505770021081568535873946312406128365059720546994724909390185775154856197376469399655691843235318500888467715456732763412175513313629272339991677820909664089484149746849723031951662159742379823063964976149760276931026171799982735455743919798366992908970810381764996715144606887985660771071005778770461533199559617149308504152801504248039578446064229969253014258148019098009933950899175250263076339905226291721318735219470935166140425910999778610546239082285313985435120987789499408375708438196995676371860707526302933253312077445093544820152049534618868834635993938293895146798225078975876116747169285448314991784137372310006188433574664327567296481164715198483969415836366021203612414066824696856779362615855673291191778671711204489534574743337622123908198199216179124500403265074383996861811317928694071523100962016398472039472436453854634460951979843654170256009973510895136804250069899156589077528386695661495667312148896562089674622709403428030354551392978975566320221851037268537674979106840423829392997517615259801737603572033902009891955495953189130386403528753591320802127446215735583740314862310487796227137252588681267173312516509327530533934038278722114676740092143796504580850837588189534217779185172557237236264110891329536067489178446294885940031336719534078919963907687593754061558936968513800095851007890265640205674908691886172846030691055548142514218657935549989884494185225474949170798133405920497400246843708802192272186625215118487699577048172321365871016845532893341882628421372237154139055815476959956881393469272508933430558266328326020586243520971015765107020460374336462333573716080013429943490440583380224106623692462202703765896472184370789803096186624764177184214351779116464542908613843898043173954083066440313083509049497002315967859777646211483168658838560679585509080353584205762055743744828029953974690589680823576816911989559365379274908108364082628284713475788890438393462384126004365926984734673661397512019561040213780865219911456172765254799358082881992623975275832823312693742355056231529007616289927219498220933848379346491927741068592757604887427104866589150802239416800530182726379861866532362098769337506976898484822301803191630715769460416216092943381570037445450700918161315446299611288184877196500894782646838455395306931030563673555992309395477598669190394907001404195829633533904269863003933489403935185982998252196074496799230217360543395782240847782092504841427176365059884134800779240302137117801807755795101470232367346490262286014429712952812126934231944378543351003696165721269826624239502678893329896206664943172374944766720581246121285712080396824104495244957477808230972418922548282038772439605713320528283613965920488975060896618568647119396924327307376533732129596161035883166583490481001488496863099948427682909341034570757469235128960156526600345005754219028001584945501477285803023724467261609443524987914555242290680892522869786335615123319207606232723150527654132217467788650783869141743369512031635205959258709012191544781215521124777137422794721370286518803740419048804199357082259528172266633474285970853628471920472576323734426921868185928179198905307326470218483684536728930958713718821944776865720014849484161835160366852095623126616957522658703042192640221807608242646194082240198176797127613759552358271655408020519773547110803783920692886376360018050090783576324230980653273121104251711499748844074000249149836057674037712233299382898782017134595490898780050478005847632147416996517938532103661324950981300150154159469356185556173500534914615217508476727467954643241556684562743353089111681153060872404414593801006269484970462948010802691596210427956785940132020805390247829317409074073433611489041836039809898599076364117739645982481052060503366452028599616355810682696279391920609341779329766770889061022546077254241877228554600915723070679780839821360965976616239668188614010256936862183334423391454982647324799433123046982270543426177349080109247094717834967567411559688528727686115838721243518279634680878122735896798443193395275151488000139137042842879862386546300856231031973621417887098772191374050215154450483099772429878714641845589236957141352212947782676450933332900807677654143436508056156285090046565129895503762812050014362914571475942267887388964844004884203415971262201018154845849769692305828711664060932902534980910871615870599545591528307778026216637316867685327402863135009880292597585389882043018259132988124290144625079240204595285562430314932774114544207058179849999921532539993321048688192777921478073177442651860438048900898749269390312239822579905815398115187003855588650602773614845146698859893359836010817856794437514820811138324489830219520139979727498428809764484511737943392945618974856244106648101956033397735854604529554182477167646511254020622939757157611649420863608824602051048373016116071666424417834628527092709651129867802796063633236353797022018501464309962640137306006245884108641416164663004203759494714953690682083251867250792653377917117165903287831279714768909647562227357913705886712750190992463105497841615443580859093434864650886522868041956012133673123431704612839465266234545323640608820127125655656598033137632937635288691520615166958902887042369348637099252999971649343955151022896620647377640190345403823960297448865308785074739643509084610184041573153685369782312907622206219923921660771255514932690171137156998197830192920170166031461240676776881203297913060367005849943825953375094017643128460229344015645800929992085440567028470579939560760696493233546139603456388368076434900064012155333810679476222478243016889567082505958256197052318811737718650896483726234818915227783649679881003834874359490482868404762359577831703313849963433552058336102478621541429636409798862153382717904508623350173906648408682362831574754719844097933519054065731966453436920035341753588174315805011137473466017928190587771132563630492476838696028294627939963241242658806664554947650863560767184857746529668403713074074936060472137337000946257914589357307072024844826901295757609036313313014600362098359373368788590550540425543873424069153715794188106709091316257106233392358047685247027297214617048441840239751601177975018541638113443911253730856775717327811529067956109504918235756325620474706168850920320324846855218988237219304458666119571866725406587408004688909982685859078130017778724321115414506522005579696271727139144004993793676473992089721045257545777260368492819433856208665418383039238758518413029461651563466632536017766356652866539003383762076047784777813878080272149411607966807478170720072436796116583747832996666445081122529657458854593152736713411604054104281248634199796453935407543164904689815532060017384679666052840153272114570662701234816091505409051414161313455054996766075578984078714308990656746424766582694612826506930694541820709717424120294878587817345829880728846522572308676326811436684837920908386913210062724884411737575674695718198954656187582804246509089525354358714852083878757589324622812124936797235896753930259125501809024879563153378632453692031578775043462142238684342757047092503909365632703273940699651173655307063935909777986440169463145353309024558957213204649518531862889308000752646371571171790681572634991667013840111736677865148114628308092102921850348473769424561546277318882044310947929356335442601823496843784998232208630942810712847660419806037965986441427132418605737538896582813294965784741762682966816242485208601255514811426281025545874863035018310785586166664430156972565530881196131031136647009822112058570889885982258520493552692581169565870849748815806896663715820559883775578609557881349716350635934693660739173705571224089904763470173594459181805485349302602107355400728776111015577538112078931638221973369462262090418039323991990913675597289313195118285519263873326558553412116754443094943268511130801969726123807269982165129894899411065905840953180821433986155109221574778989720862143162879985471312543302779529337801904843642672206037229771578138890325474079502676436042974346091126700179873037602446415110551428489497803172450714442331081129580808315730008143008522077687461344141781017683560705205826113044538199057478658331990335926620082020123964194655486172196280673355712109996972623443957872974264889987975200667090549147969734415339067676284999247372548735317835063420945108962993990841020306079844840300868839483072218868480027868801462644418922063554801933457609241028932053399161549435139282574974250630920485867891726873143015160183118246593991084232270378662152202426303871135106080291045284102579849635502218721343659736787680327731488221492505156647173153366821459702807668301678507520232106325461601792525320100358194923105511761208951056770257556353124526396915398093965436539119225192768080253671576008641002666407275267237283413751792811566773810817402449918245803483143112683199708599785318426053553248568430582412456262681064637347765762367888535488882478661813610441183676054874274418456288734946895740557615482611212674689902689825522677603032367870188131749006079941628209933064116280546792325175934417216221554755755017304920181957339022383374946172633799713134559151487162519707563968775886798993512617765305159836630896830453272697481632211090164526396135074101704022353827558461479512121472799584121632160039627096039914475867132494764074261772098967847975260485938950962197069665911984424552042835443682071319128809911427441923442366557803347468169544923981583228109609687770796740546367858432688801420874156564044662087169914124561625795933121942494115273326116084591091950472242019894175555125829693164858773872059813085930920153557728881838720350792276291244194470770047022431363851828072050138014091637267814405984436586593053168397836061512040938908281893588011257722755097575174302964781238747532620757962720712871360864294962056352874446696349338088934112434456159410792876295155422440974702238144660159303311299896464416709683138964185842400048463962988157844900613760805277296762368042387514916545306009813493456378335156283554211564992304339729134558035968478858244512032719892503678404365700027915158944381323008312438730325582828119298391006054667701725932067601081249994498082205169785350633605452263285594256718271217121584586417858512776347578901869184269585199509200975408230092458845290281892202207773606626225275120513833974962158827581654008126972274976955279073875767151311912582651707216895829509309907312699490332571229287251609904070039378683872395521951687518462659102546653453646196787312403986389511534639517007675008083233584814475978783949080720264005614342196163302170536599133152078357563153147185227659009604104473140015385508343279157152651010030976935033553809210908930673652765113530718207821403329484036149797023094938422929005078384089991918159959078613792261786430305617116766675590779911165862942198373021664386706769744692081247493551327831571569953216584036376294889147979591048048633079712378260767012588315940464204693149059729961798270592671341583193811301959621461034117742976330646504807179412501909588150947832306205409055779433813777411003368400755376481136012800352483830874551346437144691014196291208462770545096220060059605542567716177117301310927740772912455823472820548443469118963403206327000292070280673464351830016158453415789350510404173293253320103864487216578039365448945537297691502556195073274967121495349388581200228991888029243602968451828168931792287674997839297488452920090988972850363955389836271277295115496527124626931845670855809293357985464831451407534839269919596879749852721578709838050606855781767143177362056965063707361291096754064203918974495497640248953710395236158913247063005297614220462850621237137515415707252087878123800824826039320154418087908088679219373370016155677727307035100144152621000959016521833458956540333847663720615552152805447325189527071027023789977095072340388077007732942614525638681478278188179221450737968340949440380300892323139433515018745423668781457937445836834474485387664149169336954715448383308161285677674067765078099640443736582373498275756175910784428596260232688428008220577755089107119709147538119905697265573768825141406793659233586891728895617756997377757223402274462015036774611575357794339945820979384879954711266225024096969475566356852759625662174094308095291380882809709571826900808063059749684388562403474585007423040474304156618370351074289893322442081592162684688823946714215961582729643360351145705556512186041599638233568160481186568887687287055948309431815099259925861854519167229167682936004743226070703943811540809678981931403419951230780410423307297199350718818424736751335275015824344184388494236294356594494010024287155997361043695177500666472341596337434888138205258621286454022330393856463170581333011106697472317978581210855407644444873227277155266810307060025894007619587035781342696097946386094275923751009770800362036282648833582635399214204293903614821764776145711186692642179491899883808312901907467433225913315475282253867971397812074966194932113609916900833484580095585422907175526761578824906927456703982746290667290125922671944080979484895749369710981352908133159805314188625289944286310677001198012604094250908246249025435652515410212309655944131543900762817191279341148368803315933342608977339297180954892551376776384607638331852441850031264817717051452732634189008764500130944666371370561134899476780385051180651617446004292379722268309534936181536009245692916757583658632497290843369200346587095809915034854121333965622142980336468421416453914550754515890900762680638306358652743537599574395638341989988349237273533835914696443323990555395079965215772609786011443979299537831670952579352637360545675983770476997090138993934121781258436075563050272442722679760283297206704031048698447897034419004418754082061061553279449729572380654727623034190351120392370898936600347692622058111825519179002260938080470206573314759283479844100236846163202996913492582168724185458142909707221505839367333586241534567334239691176619366689230566176769832814008749593232905350679961568615019347107780272780468714255080632237843043403349401076283942716924852679412439725020613294059706060719623350558409811645584577109823080725129074325018230176532332143467057827618165058819460891381213575869543255399133725351844952988885572103606183981924111110678610346907286478708577012366398166872583479890867519170101300571782587173493528214374358654590761362720209178536491089329141104914244259098168545236880316537842612737090491419488799808185713497507628001011716205476175558919437689342280057479454052316123477201347390755965902182946138863631944122457509594601767139860720028481076061707026138489430522722171370802701533547826017523082749733312977764200198424915247647064046305574635249388359323628175015599175795842617505314956513161272403241834092953146171614439278946455293202622119176072652337577339981729890380965074525819459867725366957872648849558202873270343398972016042757649361007254626910648143709447465226003524779751536490251941566720191808141924485192418496996816394279137599930986070302755402045544758790684213504607569313460419060455199376546118849638469967167140962546318765808359673585657380177027639129859622033401450217861377498190444325024822305633622344555687661467888099823533237304650771707517324053460160369656656245454042084833259769931430512044691902885647315879037171833442566342080265435998583753511591365580001164891271890818145504141247383140233599644272677505011515317155597607264847464216199879158701145865314825895951625478158871733613244644241875122515136309041497340016149639593889966314262904728557926511654195417681797740069087748135363224492483541981910048228513868413472845951286414410110462605148100659583727586550261982684641184081343923666478300975805571993313841670503797421393173903150511228047414910385599255919019347876066796481013428296247030039646369486269928885901204099342086771886555308993654012563468765888787428557199130049197917719540201496531564552148244429423837090933523040459848482411878617272557078758677774356856369905365693457171247438670410455394166317320604434042284683808754023086706186619351605027392884038683484701184300745657855712776337306583323463994616908294986844557320247039594972755176009303180245968666419421390972747317682281125426522521353082049965041572248788936850784321623179037697257395258893317400400963684239085151349315887040229933771606539159342968639903939074614211649932780491820991001741534277501411534681428030736147192621869317814447659636083355786626763492172890887537931544748189516308598183893768652508386904790714168486284308815447687168077039087100462084147543568492154580277128632858158761795910684494743180705434984828437603607840945945394089548693759443800168177063071433014005218284136575007882022480793262533100107828407546118295231525454575614491926927998938171705570668731544427649775148042053285436916109286870761874125278126747794943789093993353602763527601952125330314073308469954205491487297719589252652301645946680826203630988230698606144782701040639327894530955492402464674664548473035728324377834399759067088899081658425860315663387336848683203633538348576793081394131972998896997059874765761552798948861101161948396533083146995754630589293449757303344426927473661826277443737357847928186567138222881844312017843117538654404169271763013954430083690226578779081647910780307371733338692588497229190911084196062014453854578030203129699767760894340109470408178624164710855354216973281246870592669420623668010473041552159592946041617643427526492860836294239658411027082296956296531863053211899874731607347408169612372026618712268369438797705753751907106101343391950304530268384538740796528183377545946910614007440133052443875236853279138356272067673425316846017912635998849550431274306602475023124414917136516590013023903983032672859831964558931111018417149407545942741319279034360743457728359287540765768007518481023455845318634947854960949211888512988776179084546458118880961176975646315301152583045532572625000307953245269738352957397969510429147909115877082453778964963497295805671753648370473187409789664386059691287601940299442468337361580936989822917573811095193137987438672438269772586039201148638752726534396747313601117906272825681241493426798261558682816005362892230799370301411874393287909389627161419965401773275815938964688145191019674891054652176718380468155854367650357000610969218766902883415730955220024293073783136837406436840501735068355721699755511796485029739485456668048464034845602103784146408073020772594651517759725702219808928726678994585653741560560740601727423546084584233768047767044862192596265359424034269591352876894617313756387159373812437965727930800891580856422535058424259598548587445478848886321042140856446621755550289116834344784275147940629417242588520033161124086757556817641979812101616306073556729608860452704426805223239085338144958918806781390993347893192115901224287784247676913558025887585861199242211994714671571130976919173794185872522009435520627402975385944125624060452717962978924407305181414774146541536642213294295970299185089510670405631764104416668728589867108912381674613339853452111961465834640394636871935302282273257777524546560516722419622674959231222984103198098237440205953709357284811641212881237340540959711366762899099458045566011134552148237667020394637575716847328695467084485246544563826201891825094310220334280963346721382926046423666673127819318653968853868025906661630553872184879966580445462684366503129717190114988140801375693859802884247170515352943523626586002895206260921593960342148475606863055993746336319144008969097045094985028395556078902894473799035898653147491566081342009749177712509260603724712706327302642907162953664238540757831513129415416486847168780553380350456597862478373121517896818859350491322128294561252637455147820645681754699209795241811153428994014427446287489804813878148491311722987528506732631642055138184083617016039940458910647052328199945564265364735998888259120726575619500529397564532909232651359875278577756447219512256220390147330706926422781886829074485600236489314065361364701729141494199244327645990490403408628094038314700326130164118989845246430716194603825805479427500208641934423635481552473583143126468901145201579199822503284933701341682345604516385869696555886800846912904639742816432937064367703795235934326266649293867921822417798958221613981548618796207210259263232717112637886591723076047239337584353654045524409147542873978513752106874840017611543879756472712721092073504511540286281537464621512086628269719540673080882949398514190030002320072150733764790568651352783913508617269751899312213128453660184041334120465592026389912995669759825191665291999527586475159001923728365763821998268953332123451854370023505319221974780875861285275144952259879465868279507623235261132269540344155989169487517879606678243370182843156626931521456484439346730116114294422953616196465187742790410656038151801877593724015981012499852011624911272454679933893717134806790287146937479936783159305669856347144764048834895022179021669204898176411741469442046046783680501839252679869887796159513612868008573682272739894010943669103647190674087728891132540882464738384087911536946979856962818265293269688710249136924779408372158129160715262080381470991367258550090023499259280647857846877915465204000078448118568719966044301415390655912049170448226663745083430273410770068852993082180050538902105212879038229915165302657263321070563838113448967695801449102727932954988707668053988961442497903591105065103751080316169917304078762592526169720966455608086219428185888638959418914341320088149156764200860251899169219887030733752016926713548306431136198810069059381827246155220555268359084962501933304808715338345135110787212554844779438821587261820956408678914084612274917913806831935766785623793970656241749537342424095125810620358222021776578189049482015104445646748329204019465410214055185826059116159179282279300357153023779567629590423597159393717024252705140580779372663543100765652416887307985244282761778558495694736890914871733471287942447007984585184243756720233501755408051903369510467930191520932301965803488917879987749786118278425232590953705669738246133488931480027645389056057382309047156614515153006472571540680979722880738956500924982610187343750785844175320073223830102145516236238301889209564072225618586518613583450657832903452345258616201075592289866314819300180130540816346133551715468715773937555694906560715808067234343226540848742462121404598316290247192059337001862633010229947180155374065242289600621480220449664209187632359617840531546215258947140067823254121543813597453842900119387216499874898574862221875924176082978654789557470091241536131902191703596914669529914603853275440031403638700333621846335512184793521849122943680622841193121679296312097969384832077139469314759971168727594685039414871812450624868823612325098257296880924744619423166926916194210315020428064688651872794716677648285482916521112948734531327679944562901617968589620456630120074629476991861601260666879154106106487485572635433074316471482463231416276127015639338554360616762681131107504746103690964077643305191693453637898088925819781127225888910055171120883464546340427131147979197990810828136168656447022553919197763675210927319998411296880478964404810520218552182711264317846120439814261740859940240963036653805834694515771874051024048585502046938431498811692906701678629787474237683767450558659430559066988881330831934618026481359849545660165957084554496010741478474951347239377453475432686991098378933553492600046699009013713691178476098835046471469307779136606958919849767685751616240690064697478505769993544344492253074264186381004436204210511171075994120509232608764352473403095863037250795639400513849259655910347513762451771295179878352254735158950945402751203235450272403843905199686046058295749906625634964989945901458901806217123586812488689120780382851739259369113229085003295805086568867431606046082407025150425173379453680005023863643557427051090596929756194364183715880124665561410350181017361239796906905436625181910362088040994929493624398896049323639896255824120108022349158802446950515566339694943633068269264519279068484456737734278242585697704078127314718656364996774003204055730210194077591357413500649623421416499757967767710570794123058752630847932240173599051515141610537111921669264913713303795359793295212688051672581762777605597435759611641454103463431088551486794430839666609281461309533568298469693174157400888317952052451167300264985205510548591977288140293353900255157367226682738457601891264530692338510015772574265213077869311951713416969108844586951460090907022793278595461281725902952572246223281826208195842885323574675537457146925995527506548720083728432907332108787752733453886742865999597761656426335038217198094243406938778337865435187751124739946726112076497643610083440730345190253589767189055919039421513326066503206779847428893854487888043323158436834301688266396482697593960592178139384637969390796977642166218033752278986490446879109193905615520110707418209578345707788556059095217411432211935238411267783455437436714278466842289037185388641190688724977379607448524065571941515326022448138933869860075665873274833466076993878818746225103062301683300957383822285670830539648310219468488310149976116307370165823993497533080639211679699114691360222134822936014606969970149359732697883835721117834311164446788037938727643708883277727691511789849155227366912766926017875468519596080010955232973790740270082351307224666869140549775948329875477269485990419715765274131015026807040726623031616811850030142660727402763197129311513009896486766669242862078672470628302153030745390013675522905648539638436840250190554103930626203000049261167049025226071906903508297961626107267919904524066277861991252595358277286022324176848921234215904395603668285881782155514132124766986642666293003391496986508801696650162718816369303765706301810991860970345002202188498222123110734151256202399489155306787773167511229915350227178421021921403055440865265849279346080557421047635218803811137042770490416137362058556206921251335886637434781942767825134114511755675000776635412879403396884065654814397615282475139758839570083748791628210709797628972661833038601151960898648746044694262387977975980192850581916755704436944956617753103141777370692902601525469053368185494968514635912345845609599733103312985751228583936446484990760261367852142703345530545570560448537088823143489398408509925160160802282452783966108145105247779048875294236107077822267091924973246249501343645796026940533692987745711234935144585603565394382534895207041956867932591884695788457380115897040652853370021226981708117055160280284901695077509562976668181908926900743006762516056654495968993811462104410956125566742221884624874203914512862072212648289618928349943715753184688571407000444477947965401993569810472105408715308393108679246366992450724615470033306367814313895187612653055033845733989276000027398884970972834218137446551637915590950788155268358963276460030458854332528085077936851277181254704656468068374377417811713877220199744412177345875481862520990110372092719911263426573266726372520125302980058466487864153604442825941495651821130024167378798893170354300602280360859818775528497368566588082148501881205210448391478005170513169252567473535542296715775773385973745887347279771886089192936531533625555426319627429381783744923019844982186727049622871291967186729744986793741582512010184287471647287873970438568236249956730920349258138094028307083423789911681065220769147682543624970661983683692860875730365294743796989103289792651574933077646451563244940451144774817929049492859575232245027928533304522445461496812214035650795753569727535997630242650667143143255382228530664941984385484264003810614764706815604734345135222164978032352395992904780820023452800574682991669391279992937801677284807110461678429427802521916620887013018105203706119215028403049223883350878292111961520090834999668056718145408590939875630073815474056417219816044641962813822353604357465762956475714199775354434199568758481438478209623647963544230878047580713227128224794378630358768930754772333813344320521367004131008838526649055675721556496607186680464906793005223926932193578960336074802112686188240275562354276019127954804138718160954753777617057935455235771886539848323120957346058940182060302082758266747945197469570724944221176442666300584499970488853525328901290496930075613725084682152970281920569234630215738956069498811735305986288137242378231937838221187045324840325482301693495646424766754116526482618966997107320429696224771986455126792143054121778111971865026769952611187592293449953484240696574424817126240865241930542619146308627650621275051351029336874255857214848645233999493078667020199121916703469331595744248373616477333977662178783111720775484874751424567556358839459767329607690318977116570517595812504541110339457855853701844399397076470252977166846234736813898245434267605405729819316529562640126486648256480693082345896391912175284417933121220472308204950280307363551507996709280157671778484448082922493822284314486021301077474393580153346932443607169952664525809629294380411556145362152912772965699386223507955749972507904327757622842016362244965419517043750228092280985699137307619381869144552252931414581518906538700182471440555895609095536792481767491560093865670169055356390875567460804855103164727852246783255063502953268274912878067676292977909694255009935843273317192424783464757858420476013150213467463453901571604834440750613313949401796941513660320197866671707366956439921554613130957147061177805707460122433541641451856112567937244217452098510268982395923329817694571085802016746911504908579550992318027167046445906639170937567242334462581434984981175532864228768323513815041866682195969041880750084014069036744369413422849225356706901181453244757747974055318063375652460165852766313201707270969116251584422108473995118001415259992363677740496794187426618196715172582874837231613956961125679207848484790082113196211414910195114046358262345104505267934066753202515574928827537234028912679535375495549898497719880600272994967307668035909122821708174921176777233787734291898809717470338354188762132137861147982625822720221895690770420451051633744225049569987380925592909461533446754787973084858710103029309314414185304066896767703766762569530103486497295400599210769589746643914446063171077102372174650213732490321116372091889393446896640743407502769205434716656362759176128093012471726816590449249591077988314121942204121249640950363926106154913868450508690851564567506290047555442247031580311381281123998468903508570894511809204328943261918216031929052900953277179711076196080773516649381922563729304564005613330832504347045508577925193741400104475607547703684766877667756011138359355566187499288770080183238839001756341656364428220866992224495368551343567276778494399483962272124844499828881817277039357160761230260379184705738044318586140735438198636549263961598666775170105729522061906249196760621308795756135246087136175288561204086178327629683399752028931712168447909047834931660258222213949674881409470864934888798737378340315351735041630389459574777443748069374470458371820221106043160938044051174883301899198631827039940717804223965429091093866376396446173858668743551918239839776117141869793175598911811699157094033914425698461784915166197249551736163068921072064368335692478068860937995621934632562160233244335395985635926824797971672944397939775799735242785432989389479565922257994525558760766441372008283713853826075729216446199048814604662288770477081272692554105102877436920212159882353870259628389720900059532832889648717328030400640487938992922575929369553480703689137015696745570442122753302185452391748279769168506274748627447598287371316102785486624423971756462560812343764519397700721669819411620846140292118334111657573893911768633616409829191269678338022333209742692062250125541509048153648569796359057810789574097761853632754502109271376553238446825933755715751440878400478167288096164659704442541078623332068606164121440779269777990450290086477060536021533734141306750564875634717975981202376125529924241193532844053633673270606480728327688540008789552777124397748575270913221883425966122001189784138359592070399690213404750191451297463475443249014267513823730665415628309322602802160682852343458832630417361610205146650409186621961487909591180054056840412378635131525943519395984822684291407459995189220399777565590116417252987860002132907357298305676799684059773529169947768270292803397736958020223690154710781645881740908434497660919817436612116462201290923246694179349163507005638649907853304403234082059631930912053830532342814594290247738843614469078004063750808498597732305256802417898969481121259542475330058283120697153691008316457291947157677789432773801410441080274049881933329398675981469835532206788506012226034019976674358845124735205806276174705235050300405993947638749697519944692528134197170113425404865107447215384610258141980067373446161118428924151524101782917217647402838262422233738678553740320378624183748697090993806096646918223799458622836921486910696849648211583759593157921581105064254903093718585005999240623536855526321902712683852212201419217328598568615622102854204052486714784182189538972961973710644305282246371018187441991301692298595568672440578794632599446711226953121602668331354915891653424053628421986490660795865394175076019404322375871958416446288502199696110321039774576368465021563542440767635258341333406955119501705306400869828239759400530382477105718764371568219729987931652127858068938562926623545485686735614721503682864180851405966791427936098576433810886997492739929599691136036771398439963960203667317871913521794246520648922455280039550210782104903998480227343673885839235261791404866957349819768804725445767276414894076593348083801675482118022102143853744063327603204886467135532327164598747714649532638375606436617067939170555462464060617311010160998262899417472002554260739529849818536334052733392285527961128800812566975862486951963396656885915738741396895044984688453878459925733446203848994775555658234891552795343836519422562261580322554047944731039724751962831709722901627305488488954453094380518140077139067027909509534609468919875875625317386399296966637332622970200108718327843745978640220432456754426150405764526132811177427757141450302830369486095675895172482101847676115605900148190980739349414987940034074596610728014521624716419301240433204074365168776477845949592312432568632752001209467203156044422698696842767516071685446669632135342082474256178509380068999072895814323010845625137383867701764519977402036728602218861395534601975622595352794964351437763411892760803019347708084958737814291669319539992140539366531210697569951850463312093912858973004266419630697329576767868561599245785406370313921356718599782090589335048339392083767189155720194737046969678712134603038598118222988915928550298366049469338043730504952040031978045323306325400079269182401397328784068621124530507589543419095029209997087788977380161231403890822636389452346150117591695995773149118344133399334357550115716609227664911733804058794045604160267368042450229067110781194627691977616866581351318658096378450080500685994322876670719443589442757422802076391304941709580864511940381453461935303956887130218404827727870428021087779372000337893474896987608365591237194075579772341808015627712027505415409487224850811059031844060722808087921141752109111903779631655603557407968143581294849818544504887421651430520416323202883687552824627452659665929461885451730243433210668946454256824480607490407181584718322013007540851972892470237341644371196471098542551743815656297748187127798536123587009306747657136243272394804058748758679916402538783476531676686961264986235741932234170996477257728134017332022513469918617045924319884960405126615845709751266902107174271347159036521850839909541145874772931150013263544324848456488399640894486187595589917619153167184875733698486772209276963602601918245524567990245009251252205045793685476421225295447937195880630008944666544787571786945800020847644209047544774442174175707793445040308720313186096475749334111453863626933142784751211499943574924914699230316238530570696460478113105587161167648596282686923084098666247291635883392150888523463045155355091567205646137559055890390266126018158085267320444351161219575716597028609940136747965300458644933011497993499381877699181486777709162394970498447673021821255149614041507180963076850523597350148267550418336739620742830703298595315124769661014283735762976407657966057594914219604837726300083158160073643166311219249805784493616139697075955330638096632383219462764382836334320296446952531328944272860268532164602639532990702384793454093977028418586666603895407772279542725679668561370923455533876911020265088606647024234088254536352310087266838923933098240411856814816961737880194956574633685346519365668819295289654940965727822230015554437409065337339581539860338607000662758234778815240434532219323204376528237927075276178268408231410101252487341401053896006232767163894919175105887462988498545711700449281022828202646808661815340255492697669426703948989817445637583236009762897323787038116943936912362565416491490986823958273198960237671099277116208835163659875544992246333648415281201628086850689669671047957753564601394689427757733215040965871830412188776419380011519990288053599825234523818850445412862882784497727436781991445984853649140499446600154417721908271281883537725944961898785284010489845200463488810215571460009806379838340547715721380441791770617259076561930001002129028407410355241005936127567876930306154329225801658382880516740532688298197896472129439446004218553003214755795720032157351414183416923091817253888280490831911832125090983228575778339070266461743502693213178624648668217217588041840311429776417411837864560363050285151313641329144572424682204361160260581050052380794377653703450250996033645706107810236019122846849426478554985385288514570084342710885093244570354963094473975588674867251747377462322207356068165829838302834499259997809324702706642582868083332602477641501003588237308796564859737535081739237772557580590170782095611557336382493912198772891249525610185655028300344590498941075472568947390080499047069040623563665871536333357144237584821960836394017666138309222462987117359501385297847707472849017071400361153699644182739022860604690978807020182540021164463952041043409556442640864588640943584434779686533193278866604130197465677841906182110496618956758653858071324063308069668075775163084304908586326707189562919716016395003983408739394836361156508858019379773121917560006424115109231899552304588313833541634884263075768290784611963660489740519653100037416462080341269823214079608006936924592595801784392558339727331528742169373517876440654813038584164981211671423131766129109923894427713135487327482988527826017098110986873978245616038675797165757591882843383337997455255246441082365409278988436336469158698420636957705573587836511782766726804309154854136504566974201472477443098626316295948609221306585519143242285814670261356216483545194923735888626695840566535140791209179019474393432612332067776778687085363692187170801876207413174506109376507104129321455770303807652514223323234765084056078470701364876528284754432475296565457664270800413087262986801158448507019510939933899745822430128785294330073226172288095675998824046417226271937585515461045792459404176784985674325801050055098576534567949080288148163238527533499867911807296489745128036978836266545198650063148305518605802957298602412510915330290966317706514930321470671672276067039218352074058505198125059796479974461230237927077954834098889865904957302436277541959952365681270935883982001550042433772747899326583042473174365468852804799147229413764565850556514503268491748655708600124903902506001266988966095969350932145362893800623848800418070817919533341615780791303338932372409010278100253855892514578282157459592953569529765507471333289817446702643034826303634058543158464806383461606765505735002002380624681750569339710401274949260594410798482059813045725758085049837455192611337663711961352401212167356663285507529295086869143575059239170086121932545379169591007796127882631159764977577102472055002194068810674077712277718138494964064664098383106126379584497942687199551888923273456512051680114587034961509220210759540991837238286843930531119695929810279916882260931248799814588482133653289364952215128781201691134105121796281837666953076128273146301296373175086027402966028213088718624538957036093510590927402597863036798661167625539055809478976197588821722497476179204582722933172550767091684236112082365791100739804418452168941183364620506853706858488999936526814997560185865053962525353206346002614086652206733527452323558692237691053852496188043931539120827941894547383647595406612014947516309066457903471624845777558654068897207546048415164369287682584679648529895497046573231629032510024643891396496809957927176708685450309529607465821727608066784671611928229518270889387328390603382231802169644494880632126797415300337334223544448603265008822074275570591293620993216900592715343857578881679307546950517707438403607012933354522743306139576289055511011497544762151845741489653002792025318781810187630275184169012887128636006661123390440425164414119269585977177637808616492264801253449621557865198710440319222457151819802843865656078010661882323290187669559195661951959782768811805189533596074826877065584470842139277874110044031397058352954319977674893485968470179011203550887641203951650592400762347796368965007679439105912953793500629124399026047438086792439840444091800582065928473928695318248511829067073401674452328298604005144815915432752568493913964031876446849089360005359017994382829627347646911671552918870172436262725400929582905061609739090348502789981857050582070398928998719788586683370115514402248659325485762208110432833371817611308416429852729687042005690409346334760113732184912329629232152487567864143591455264178856454858224114096288582909766688204595640769565215167195896731753542822382157383289574417997237724258570940690291600141365969588878499793176372932642705550753544804476131413224639276816948748827075525470641349937938244855670846321410240041173423472131167480449589950092411077534799304636607400385155894472038608930174648755750484735642619001879592978645664505841928059277934633098462262294822453459284834003067198677667971964758793013070468192427823245388760995593040637140901170337000948907864216368908250448465809517073313315901440137076859339589106564297722868605041463982604633029931503015565098902694334874096430570931201885549552097940491405034468615905323836051074998767749839296859324522708572208928491088686449995160012677408480521187485886669907163024563381405790931065926186308564212302588800681487770917894246639662969372191840782201633867614135708822271354747920493384913574602335931141835369884625670533225364439905538329454569994057383148846898623339792382754133307142055148466975651357438041610565378297793842694702911057438064871701102044816515737532625292620989828723266874263487727139132955885271129527515461349315663890543906238462672459999933868687686712535395872028636179287362356844265276564019738769998219347660960288555700387378472083939740788230995637227652030825925780205894037655160899456205138355753688903528372532377639440142135333769451915911899506888807238595275690600041746655230537376298888046544568734410278165321723107773370878878091310688424115251447785787517918511155376261711664876140811955936016098155882065985328838125742257896201712233652783067532177662900157694234122424000380929904591334035162558258609938868792474667372654646712781848954270438962544106303343603994019478033587089325074484841104892232808037729254085613472935800024253224209059374917472380268735559778302882394499678142372086977519567641564733013228767007054225391945863495219701028909263431956560732756869900461216081878405827201662107507937902811567322818747513733531574521629328180288818111485104271959562025524856808180384177479998528035634612034879580468661096499644541900445427852082404354810394043637614719910823784241748604392878861868014979125085909789538006264576725879785008490435630398372010861020807700307827961978865335218299471770610126557322671650523152355429042611024032385512108353280538369666791261811646308825587531130707140670402153663861792941491613561913527261601424026593888513558238895815227272246894016803598297867578123784924518730039573582527244839611739630998679683858123261484647662062450259139466371421550094908340684379725023428708174389849127031118093515631465194498546788829298545760472072276775908310900534624067915868975808207271037341441245758301858299049547286569406990599000941018914110614796916617780699431803272593772747447285402948979271012049718679900209498363226255611629172028465662064293416341434678754323223171846101645854486991366623603468124513536447022188336906786107869017859753668763645787154407368600220124694404748909510435997045182505461192957929770671485819835451667493399063444082451253171757022736969662725628497583254553450638867165506219580354914268858999246997500271198138216306881179807679235860654594334033123153083503918464871533666747170506306534511311926798153203322110548312359920818662795539713072704925875651518578943897911243127045887412945055858818432094088874689134899059513794001651628647238858235271253077368329208777329385748275452570865327494548615049353271497678486739351325123191243830608103314368507939187576877793359492218328717925302120606844075045295063266795487654397019835591215986708153868270539605670837004999011273292125731953872483945332983826273178384997415766860097027042115829396577306213998904319346861593941451910120711638321849445707182738064601598719245590698735007877176863485980955281798137474606491408213601877503199465914978185449990341458933573189962731789156533273743011427065853112985844418714549815439527833633748064686082172877918076827336087283647815874424181216455232479489842836475207100486681308284887784868132931654589980448390555496366429680219743537805047852554207691092057984851910435260427651482382416802004453182388525205559092316451636818715252123144582369613027586122569347894416128294778790082025110162147284163535189402480351869407665949536699376223711307956481238497640127686133844606649850990756438116728683908239285033701723065536251382191702846570707757804813075088809611937844641629102659427020260523290773317990864554806265737652043363811211580319950156155996803687792994278511377802799272161108478576330041780406528835875941024251291463181913038242092935841945973508961483406056325867723491611275916376508562670163824598338157158855841675374798742703181346356553112934940640675626731053482157983076365335328926591542795294570008305935041090294971537700327085538645065992692916659433010451234421691689873538302169849739572045664450545275408971789513137842951899749497041019054001464442422337796901741862723441936413295681505120754262203520957256233947749130551867429418131724330134317634730669435857540553624494998440927997134228947002286351136314654933925533306786625499385997227046995015443079096930018953749517887645740960672382619521718191082826436930679337795678402494159993148002375817225821942252497893533885865767591957006101934576978729884064783242926791080127764047173822608955861381939613144048761634190082004728174587186324386653513381282891946668763319203455969984500438414201742755193625292811942840208806043417567001268540053685071804524140706562761829104728000315821821965511865934209175922890627609507092906909989176339825235536485116393736018471395987141902597972455111163134256368314957840892119297849910227416284908551907634349944762504094195306439836882591464115898768065396849412379959632953968295450345947828259947608096703375501251069821395739202368952538972428556719290073582008522689719841615922873612294961347734442200800079052902995797116050820539578072119453861195214333012034023736741724943035224600955917898646430376475395169864849818339914535555336326863297548284260984408996697909087493711348973356870643073695605178196104787530267599308059765727025359472785228662634085597427497443918500160696401135045357500631632420516139900529936019115087524945190759336149910209687910074095161824760739229375384135016905431993859581297467170397686578800861547272155655188227547527978615128950410638294060753081572433537056629771330503244069238688525548526387063187605590491366589714959527810766235744566887160964794363028120683481833466724369084244676112223321125935740220081008668068221644885372251094210991647821158627579222685637887140232959087817843383612152645131459024322937217397949770234924145456489165478387089819463564835362652201777292613995333633269019370592908908195361065096340756573106034321820731804442763753804079908881658756880724625937193515504933998078124010084022622566709971057392002531881035548254409017789303862429945046916326706499387107829176757660295767694894630455410803207878611754586389871979081274422967693224160232694945928023710395203452893988219118223872884068384813559743196358461135314864626003316938417674521320899035475599475536462049181034072343515055177411868562815628535854116117415261939465327736873384343851977153241487096390240202750576554982825785537748389023316020458412071617227245787838590731492236555936538954564965403868373229293030179864114938352412339916623270698820445969717129930946418754035026218794981139389229800907709514245195085221604403820449138057513347530162494291375775467001803015239694407084049839268544059282166495796991923477393873760668772487322808312389818785686100949311497980471598204099448930899943027639898617682831650383778563518365240240737826714305632337126381097230076840523098166456332858365063659608742786716051896772940868502411288706851941985435480394774562347986397905708372504969817670821706678388264737421252634254742451502927025581160245118908531781270265939523895079480011960220541357612470674410368188230169191164708423159775236604861473259113461454430894704146386405355572514522437726225441476862259385560962862540274352226847089922606112542290362469344730048895107622779256452026614371272576256906258739639331786019429937524483171864332829107977244816458587659728580742067917129893328003270054381632327314577385745981454557806111494206389218285911248495598958958762202201999766251424907918332986614274370105600414989648849007289589925827256093285367901814819097368175643458903524280216572915534034751143739902911773695252596540876299651863637864132158358184597782633834959215819547858936810342088337449072796741069849790112908355837814753526092958680174531733314374121453206539927050193268345154969356088781277859052553080761008844584133351465151762664619505540746601969570199325610233388686618180581581501394242335720413512062928026900576164723373763248975981355097375087834797634737177582310614182828937667225158516552758742071993626035186687293398732893755099731861553086502576585776599194162505662904027630252365115932221946021534854007143055759673909841411408197962825031311441300513382005952255854835903231161286599628189282447892359471963996263743296757188653979641195582109792941156775533747089387313838470607146299591987691452265355390905283285039092578524975712157548430147372487349000988701323615681710863081607226973538803421237590188826988428846971871756019816722869328769524551043109175536681767544915617189158365527184883354169468462142729502086869657357540130859580687241418262028400925943143322507348831388122928584474792762381202969583478357893741170921559000391819793613141881559726112444934408416721118182992429641754498555920383225786637588389582406961916530758150308170954550042966748747729636342629325124395474002835425078857447674362389270933542823853685384584487688753542372194651435572604098956942529322345207328117893499863884293893309406807409752309660779603170882580295332019058387602797299731598981181882041728160383735181740717531036956263119658486635553572521774923195178012471204564529779054382173866979285308002163569587168497441937664512025977284055431618813684977417916557177985403473514738864142289470539857174511112933159309890588425844655515889032435587599820222580410771442850448446735190046600670261809009833997915693535381932008398819940621732837043847713251337620754989095530717441652223611318085620043226650893349492673218358152101338515500413195457238863607165245726017225469863018905240888047567349143721619939111953003525988368411548356445520262987548682545040114382011966354395073330639358689598854041294405523628899853416379201334277257582083168261388579143607778410953077356204145201525601342808189401317731058108687109229093122012610171196489014860132864637294243786065334123977813922903834667163892301185815585772773671612627713846857300087714729792987542013684236578467772622748672854073340167015301357629990022653556468585307939219552879564191286865449181395774428581796491298703943108977072648327948206661189436358070916718897046307762029957342718927763297422369950084241815086447876916346200931307067249118357205165918360554082241619867922876148902267352495551416690515678160279777905350763662595571793782304428841892176711162274829448534844829847761348460955264973499251617656333477377697810448701657031179072223975934479406553089789638077242751330772943851489288115303934999318411410655333694453032215655421827508224140682702168867395702835818064447690055069371512074327269047958608771446873913097450732864068936299407195216209934321221099095398495481041516203890427471933166137443155111401921696640452157082275341319218510534526844211048091116685762207814061399828702544750134368594996372159175982638407891287847347601577583563803138736789377992610959567436127312831342574128325883424849198992941296458395560649244205975217970411739704875903980028818375828576120026801496445977693424405291867380161073133334505015897852494784637159728839742313582046589178641233654755154426774583059714077390283428518124640271965009028246365336699706682793035712127600729263099747205754535303598848934643937752112537055816496430479643301185205936323557574602185450359304135138128694559285583295461919494777192422749566567634466249034618154464643599408924505474900860668602142058527222214177711426029140030607030135006643359369888242140749877162251385898562845334738241175517772007854748312370880680152383471405773488623422982985821393465686704120979671584406356882507091496005985671987326485853784789028788432229741085238338677835457800107775044514987483308126196665445156120202816562595816245290662388886410596585552762108898671533642174721091339283084913492841525956035786194504334356265305961333460262018941703445482458894960424210436299982110007419747800311727518685371951686500669053055012041630330999472447230981746416663457769104044407657643372194425053322378013411282180371702903857046693680827707044149049945302332823242011095771887225732208764257503685651227488202554103491363298658837808551280884612631170878344703642912125136524422269684342357720664718411536178481420971835712279322503347070453312948196983883483240643981104309965962060809752927452056684436279061842090725992623112952027535329969985928425814808065670327610632254965718205117470758881276351333592145145980267466083077976407430508786452008520889988733751428042410748427750281607172422506765102733001228902617627127543832528688697703000415446012496522863292613823645337952118030515191471968753941682866661394231046356352709586090299487434677181661922867496691413560355668534614131904478932791532176936422834785017699459406577274471988381088934149220655542018567062075738679457348750272390445204554050090556798272938605593187792289723986697691861423202949744197659048508556024659402349074965143402251412699794714762905667754417142758356484700825814753105459237118635187888830706886043706386486584196348344039353100897742196262959629827867372616224032005493187633199392960958546645609686822107605605704436917633016685326464691142690699697758476793183674508318550595533293932683622283264308710505467560823694969713672063225443811277071199866441818473456339371724303986843919671803333783431981869177756290070102930231813866965649203111063365587242706285556585393823428240998222238095163780801616039224160365186023796107211021457437002684825864158057949983081673883720707289618292198909990834460748535750344663181749112506387395073888743181820428655231312437751715138237933562474620184234364476081051083231879489021837601332457201869682090542484683216242585722579335727633186708511471265763901418779547209795455818807647434841935768290776985030139155337823200964734968880984656138135291633883734252483451231104441979577622307825428646653815358495799848437545955541188883641530837292261722788599877739227276929024706012349306900480571324073524907510729195297657136347077222322051368825772191003865495830490059799078371631012567460493911611349579035977864486789967383871274123807073344402477223914401213250686262426085117834536526107668689646017686174924903671924231475169165230803820820239719916869515182849153720543555475195981513836240692869012994682708874655107555109088152156863517524180708907643667647068372278689499866001099952757003492505320071631501268773575274005959023943429645917381970158473238866934866373608678801360355619044338358908872394830245557632884388472282487848815784844867256953762145547157714041664841739164093762385844550065148166772076336430473320242791409863821862136057525296716617455031590151364426749532603531210515946978018506743076907380914008646825192730419480553987096212543863543405812791018037950206637665093408271217294520988229575909322112360851862002581383818168581863058714962517569551632276829144733263116642922258156181022693944709667459182379032425287225086447619537511114365394265230669802424871221497412657569546294312776272171591088748627619215939282833731296819907411436239719910915104777671387620513852060520928677956225838897974490439274833122669608121039131662762749224478257015335850458545640038049388684917215978563052990563792942517134480220640339975575469896551056332002371054645622678130513766541432952541640987575268907365757413663143642224910179630086737476726338584639764885081839601483225875421060434635139225637688968656873125311055038132116587309703335520380735396246611683721066715150643000727876589384586064665032867717569503515112833434399871819383461739319427308919414886613339668150186485610330388543953853774747617398727577326491322240298383893252372416280460508745722342742249678435807307984788375718258787312263972209059534317867776770188712820369165040664583507970188612318030609421562176956965216986360689205100226175878370894351278067888408892429030789235191198209129731447071180494352367088783983545962547760356067668084335217126918706528025594343301558597356606211091933744766002481134301783913275000669247446291665774236282096578018190529041736813700265660115282630978920225252879244157091458651797897257086441057738314749765085135950547974807363901287143336845346970941857160656399171341090989111109978009505418300412204764507743609239219864565026559007747736843692103305487453076462465107211131617443328170763899406379446902465820352835769151678488834263687033790571050535592698581233812866420229068230407467839787392753777278268811972197038903197964224573441414373558626909964212747234024616087955427229917591902807564474639806971423289568850008787718243460815892522003696895105379769399304332112026814148422199013254539151326574296005824376465913206028452845455716561651301281105509064964397331934389010854740878065200546685557863079234515178068484370232838830849534074522034965987302769790648833664394667710700722730188880745001896654857548643057745674546055776897953775751292498514471911553613417337862478136443688413090232108590047612342935890481137264896214065862769731164883504785626139748975225291851896731125285817036501316268193402074503584800685562643419734806286154301577294683451196071171540586562486616569579777736199294397997456401373523338884724230366267691584731426609561674429135411662554991859344177462532293386249031692591069590084957038740741270128687253430641468606482412991038967428371551900484631026770629541496271556156242373041228356366746353001875470791168396045972685286174927504381578309260391137173337656761828981305959573850690424297348652525160132414867756440335867328077725813863754686959196691917147648353631795034463106665549857779272489445837698978633075225344228904027222938035888099262704729375499953042468590160137059774796166187685605410041082502788438107179386859443814705974820446406296442183721376045074048320309569028999323229600166338738604730708152755548422448956000071487878194499103658420788267803514163431503014507768090810544889370502922704505444381849692661765500747099046185635040378405197341359077438152196307537014641449053211879336174035554764268619829983964110804674863800190669212866951648698508686262265440121744744783654221788311200177850078807625992598389364667502984564606184832067458694609281652364667380290384149324410504503898948455498723474727475619321661165470952877840738612363835871565071229083700273841782557595633576993770581675535329317029111900390446309341761797195555541651976305012797275332981263593084448389627835139916948792221928009654875992836104777907709403737578859679441881341080439039153307935043133820727618894560084602308495666698163556392686968152504348650676046531839787965789034431504247297787013899876599334366043329980062171542079278388191712123476846314803148709307283249444161353466434039608855956790019293171388094591735550578051254053362299569601166172159142828066552626731448439154479892361670304462808414164520748065670746187697734390522488029510477615978700647560580482524539821863154690592521730793829837529532006803751131919879142111382656263902781713136029074413552960474358306687440423977617497142912692662632779075250093116883422126429836729666025885045249326573084199222690218981681577668417021045823879973429064467718848779631253877067416881435274470486530256678980084849328717607707792797386549825663097512272131403008544934901265619265339119072831526660051773118790471861350896445136668668851621443314745670269477510260385731875163116939589763425526827219533986032492569472191356618655574407923093035733322382797185392356821351518479849156728961271893155752735460452385491602180387920262966108412722668892038227833676509471825867453096892939267448663193950792575898424914321101016880312284193168411807784333532821644106135432449462125319158540359764944601810866804804906949621176420111738858882333628313220467638523516878662054684632305757211540957748137845177007841391546631079192746994060506250508296351253773598307217777735166411309942527448187166486000340341483777176044324526498650665074891865232417807410292253905725868784027631272094332687940595290859141300195093999584560681196719753950692803256545798219222440821376086112645469310494692003234451228832064349515547290594659703995472911838546149047139074213577578351682174824866055082918863649098263115659352426220114540878839951265408029782492851409087625173075507396993018724678845482304479551430733545318415618095809817227754717443203127598428690216127493908279927950676316410499433637034960937708227090172272114756317923700733112218065038561557509923939667665468509299360669944608104451381820177719677114580068908715761755065614176018638983888873498028339780507369103731740422765334900157672878655597266851873200774012933440871604812952307211897728900522129383724779847361002530377346118569301410122128793609379620867927397662851796956103721577043225676331181612082721129895439277640519783170139152641672731934191478933375143222589465447167470642010450736570649944313405628903844616563080055988795593402814551199799341934355412222293330733533599462817011542860844224224026668446493654514949348461730807874773776986724123777650889043752217540496341296016284440101825638236244462953941722470340640627030746657122634116629807448549628992761640842247742348085467086350765593089449336212182459820613307150343091737400206464233538698899595750345478719724973467007431911879300774187991060260596800943385752139549105036052790939766887767035686285276320413804649735839856569164605406376406147784386202387309614009794548570987791015879367105385681296977621760156738914348587202238579937192606955802240313899202551540636945509049119338137011374694536223457871219884999489355512587009958216494605638016056816272674161129986256875504954858037245867514933568612108825635586702501728337456169475015020860610078107754086787664170827507351041563536245540687528024047324890971759153537766610925750468266271350255026849005295143193215337135826932379135126188050843413460654628940938630419124103547697994404731634521346770482352006972894956565275012111538593822300140545871684263676293420045965309784146296390131718414942959980626718434686648156148480489486777099763099591452925857339856619546132682262182354616848101629899564558391079845829009736274928880564745008509701074879273528006608548995708932667886108035815266741692328867422308113486009878700926338043280874362224044893339312361018112926046712387701836450882556629372561988037266456827058586019989311482467135958769252692130296282338502837665593234840999520646581940589476043109206143598213145593822228345537392199451056450900615902614716828839514463364963796119297912534093275690536838222678914720387883774247301303144088173217412104265691027636357118061379208916043066540711183692080396556255797402156153159525618546525594346260411753339964104414214721139766135519932904775985776676775143632234571531470787153360647777833563984827537589920975058703163468249522095102088554538201923496578839608490795789663804438164450894987113321154682169052194422833764765072910137986049056561839438464937830122254710740945239312988721460379050846455863116527512544312079540392468529006157585005885871903920609591515077416425544209907216161973579998930488020079394622241922275394386401921948905143451915682988559410014162767717114340617392102156172988001397625619867687002294790071813835142742297412336681357161075097687370628751264675210749598464364195197901839461597968009370266405349468462068891507132397032823561773917836917090510258173496861004254910430509075319098677381716138486138262350559858586873615451869413916027345933891867284302604449412125215036413366435951328584107428588124947261966782004823505775817717029496537654662516505656982699713308392851759276792404344031804846141775047445142910107613853765877160160504134852030486207563652952388811881221939393866269679391748681785235220458505288108515943108194035103528843332152007072771413919673595203327930137917322059084630399802407730799681214783627267128726368627389943205648103047278951216261643542724921201240460136614170576551626842100719061453601871945745468614163830469687186038366053488785757353663003815947329625956003155107828484121162675196665186306326107449236388720699198330554702035198797451284393540298065231297739031183426355547003961332097738405762075313373194097441403206775149039432468650246624263841416748640432773048574566109709364446368851466825392358924617170388644095422725554606877857623791157998119722333224212640182280514215477870457358492699257434272921761672575170849096319520301895034415653209399513184904136830856672053534824598748702605575560730878571008624818156846369828638527126562700068064777209662630176887178869522865198355911889225610305989751191804160449526873159815025010734283964942955276789621100092317957118317857637042549048808099258866258486418084217295183890874913426639059302317463344449363596040893182338762231891391764694942742767506848009498020075290434447436570981510499201535463503042581202892475177632980003214774291565445076532965910122319910678196538017562545543556070196418367156649014856918465479652607745038872783251097855346033989018598655751689983577519908997457648698749846752720632000209710207402676817806289606149533236772009966434736597410579102333131437364331890133445842008561958418986870297029841474832844280187177999864587873448353313407377800571422949877857134715592354423413040508032741071131118367833066035561763110569598699380642301070180713545411011902313076424785502746945407998338235377379958095828611857358833260265668195950907621673643739952339554628059702130125919506234569890577959023451568588875144765521413019240458466562057957606669776684290567348107357498943986462677719158658043787869352887464384915307890787154250125788153844496393238994428360494639128040842276673313120786451911094476089834995087465939618502836391498975346591631064398699441697651795560827404363251596767390847932428370943577301836721436246297998547133765579681159740514092503945230697812777235141801119749952106368227098849869828998069437966332243099049909214498487554675113391693631835253199346569119846073156486533355262442994450243798905577206241736456769020817296969771936287441079655103536676133455965075884268728027791891642477452473874530042315844482700114955375302693192234444947846364478571062537840383968986422892235084107924103899244516723035251636838560596107549546234469766767202215931791518787818904624273339922061438474769771270803308706528801599124251347798611016363798046773873216429888795284357110592395176380046292339148830157822423163715714062205718191503981120391793849181496808281080360014245150384746093615153501392299430938340804066688678571104770257137694888308298960866383293218842585835290860470617452499542757877272406119237871399622480446481801148761450487748252844969791599473991786976917649813811098360952482305816762517657534990773325177264443499116237377287314948608899917932854099616340869545854011074659336172661296143836621516372928743313116881548697475410243419281394014776052546002939134915703843009358074046162034964849393953379794550409058825620551132978059220856275512429118124749640406032706997260910293042096206767661933020192877429851394383144802936778568194692648907477883490670347734901787848967086000289224587895393653573302416003800004358793068963128226481349286747412815082231619554181509056300394417129750745463208288032149606141084075736987994180012426667279701057922870705973444943341921761138873037463494312897950566568277966955360272546286503358684212354665053726138433021100792804078182390362088170393205991583219277089196564133020689210336276922409626434802049848534796253690469963039077788068934132730879205281818105101061760544539342368184660195045718994386060753240620950084681802320028978125088037090512479548626116662508636310783457837682247316367612871879851455336256991539635828548367896224452536002704088500105616796837052695570416655276047681671017514303685042905646341517956088508008295873008358156395939742776978853548416483515583150900364510289475702526680699234675967912654648548777675629819235038310663214540832680069700775006614143343185878837797741844859674322639508000091543169639970680915161352680810977002891485817867703805724587177301872911390695730914766593013935531127754286653561214068003380762999319603791195067095519441365529143269482026516913034278110970549333229116242929054928855388599124579660199450797224515077808399543348609637984245315764199387973340381493272934535015506976340837882630227500772863543100100810407936263758058890446894095856986166373652591488506669291335120029425930760593755243620767273698265964312723042591310213903646423972305901103600292581821833784428667505199399638567262831153803403328185154940694472855831213370918040660239415566984676994365503610794469959822894223756499714913520423611616341093366654579306082332180254212575636478494569337718302010121609471521200959942080332591955794768919736064615332626627733898882278083451255016737741991967655802129297057049828167567050534403708155321801320317158965282277712840061259935740325755991941906799107410701608640091673697876821885559509740089482393964864500354084676555976147439079347708844857628702732360337728032179598231050115998683644848077278118218636408307129680830824325419253887865137118833986411109082321441962671552566402099280812350560264524474112394419552200618273464515439052540834531051787569562201461242601615868935189245593527004036818710473858252109680900487084017788325285931695271881849201411177248721524845756128154469802060732399020080090752499260015318588285096077007519083498109381937606219796900406672451200191531983350732258554439603750654751424076502867896075077860626426010993120315452619227481847154883426955561909567440680885752158310810065959928509398269820182517455926782229769919645456152146833048654175639064680264492370331435483287190500622199296036585183320479469154959475373194955784669809385342544935743805171234198918343661112640924001916987748435829010186401284034011959569068727328813229487668398137852588629363973196830959537173406239723955189356267659475984988393473085324247040758649233884556227897405227006384335424913330379974765733252214026671677324268644669307670431757791265430931216717409591203986328834096952286319867080398898348104752841642283178484098719019850408988429744119917448625461101299106159042183968319995656896385920520346902518705444525568865713996480507029129793939827770434545514027417774853368365405060961576333543781566723285739306353026493814933681929413703726903121146758674361353545792195212967142144628557759731336274662795391106181570843020987422622812210631618820786708043236339038726776164615929263127129201423342023222555036947876958738655581650275581338457171939008526735098923412530888196870728271320286556511187508147740012429956092845180998801527224236496971203038573514816392517259355278386368856320321742543069882108753491873090399877784210604298558460793583305615005694137479382987151763556456851311868083598680379346561175049332534409717790660360214284779662084964344410361624256639571109650707901494854521298568112963270840410158699394529396328114414773943181907306021338758410903488114643528319487049756770047870219802733268520276432835767476088242215058553022186997054366136652400953131324050848583177597435790074120253615089652688642151868101139014808574698915621001650954020743152419457758253000210289682113924513179103342575298763741729577308958191231623059812098973306885655784360513803263809524727741433982329641099753288922275002504065704768108578896234361607418994575734444653109321215199461863765964444940361471449458474978464855877722109195283021381946087762709506660478123207558945832328382122783095550825564626009965120295717392410465968768539484029504454404174250693435904946401261659046668330232353663388605634430180722230510534723851247313841086669828173714431857021179993763355284501591707419888075598922834080014913241726203980556670380477185955348869098976465708321807638428075336499577563786160578730411622486947446249271220104539769896176765331251458915179236966062058022327919765457406044937767131943807559333115760384478128809856205744007674169440338848667793352413278349427630505539771316039576016524354126978403498688732808539070181710282540075394279017987476236682722311294994590363549095282378319973024005383410290607615912355640380957924820441725731890389766952184370033619050349981093302847834187551091035401093611615180623206155594818607279056678199613803665981521873243543234152677352096698964278924256552013251456265890029815161391770830550209240114678612255569325091586334563540916846417383081546921595697322765734806486661758205183877425396630805751003893743271363292044093798455985649391078650479030260040330719191978546283466437405818214372346578136270441431078966241631358570192676393027589230490441123622363276708475564389455806654995754331095600469317159636697801841155775310303968361475931265747610509308756893211158597143995458810802623474789266591524432564955667284335123511432587130060947904238270549290076771868556862112406373479112924009324742472194515551298011904740792889974431982918380277764417162893136391486097655073846238447014647852620058856704155544370955369288364085782809912901305038587827136088641410156170631508374981539356090975107842656701280561526385223365515593120921798948702135807560622183663371486253093029889500474756700331084825885466750137418207878280146183922181921065650267755532675507547508615660155035563847378397698342619712981372183056739208484145648743809114659515027301359712294389296486033367001030143484277932641468006386932499866353981340347779745339415997467196319252249389655541929271017322881370136333262234387742134808938785906172928497902800390043128191822021982893250534298349961948254015445457747848065141570125592990772899442929037303203551718018842106190745375664279850102863568098997016268408926443142919269276844967854889800540113969600479183916975399348688303511844178457062992730164031260909420596159905524805605920132136211895879778890039408782295602032512042682413913368572563688247074501395566037029268427087888959105607083936017675693415860951299062800857650702408537292117773601507376420026735705977608097259814656559372715374869463644585043638145637914951860178596887173109655135971483094675965465982799698237877686879506387697500860735405520775976487730808561990651762107324649657754247627784122029766560617715959513640512026310431607740749859075750541958555771940853186462713105532936821005421112606551964950907795256382962305516469534539169600979313953855914101182477578442022379599934943883215423230346505746084066316939562338890782967129514583028635367839876789560938846200325693757359008964222143031071850538500032444680029581896043928918858094362689313111854039807849435724309116628932888830138757838604868100173589193717770995046451348854579281654353379167155032960420750881218918941391694285366771357432684700295220907846040405982394985309408122033539640310632367872016549027918862125794908905849898255350587413268101149074548316708309502984652477786666856962382600570012573740496431708402852006422245669561456208238510901995680130375134007839870959395654358621929442208682990018151078304188695396264086379201778765356078317104241660158523150273035960243904352900632176102894550730917056497963794408724742516019882131263986528224469529313502952677066621471778199997632705742383862488691339137880795876279619666640632779539338852885506621376765223646530691648972193184486939008508697238453429633739333604774377266319219634189571952329849778722612226577444582242217379856586899659912210614375981424762790864891662451516305718201097548086225077646868081298066456283348071453853499353254313055379866016445709758172293695374926815071330079099386853967805520839994707059479339416390434692078375972750799794513741925900066874792329217853497557229783270050812817208803153961765739927414926088149775159490319350508981086861994002229163474377574560814522260511878677146757932827717647466825026126470615783003648597032664832091444952758230949201400814952217345378603793765580066575825233036726814737109584482020185009297987161324606464286259807423141173105591322076313786877308592311115442162369382201728928687663098587509095660639827283645527211649377820213307855574533366963749216405534908132290165666352780590568743781806249635572877674602697808829010884985667101364877170777267699452861707347057066079273698545494482782996970342701950880519018392161201143473049078528621113463465169262578512222985941092740039826503499981456281087553532708924158127259024747108311727694137045155602390531918345203044990257087580257432301175991770291952325844620258730299909065107874339450327606367331100933955985455276349682703871001199502787576520320426697236864828604111543973849308943314065287918929467466346986504894141719776971090530489041073108921879057042011713103215390120324615661892406343941428893866654498325661188852288471766356488450685144700073097780471086000790598256063500673614876878702991903324324614542856660576388264494948910639646168510808395350005234409449582565256573547371792468830433399707708325270651125634723444690974650131627437343620895638719493687829175413840155063515056970617772358434208759607695431527574611652467298099359696752029998006517895901239939977247504457068581452620955479857102587838677143473108909740607502135610518525666243935727911520578639791183894429172437987563283592961965065528997887048743840604633802245695046170653885876561891602058684669278808375842567388832381009168819886636725181625434797857133516897028486170003075448828534277806744147825879249963651653460236991229948727296937642236251484014091805290594036220873546953783191536870340234278550887372599684708481637424933250670374314871170061577604927186502498518246183209661237928551317810755411720927026857182807293149868397063154863737909991664642473197912058728719919387469432807983992766285756041379379939597338061707872872188417244878599749585458130611838517913271410924498513357025660547544109853197399446379701673676643499246467827186559803830452140357615677153971120675173971290660512489492272165272874855077592968157240915752317398497831193473449951142611757520014021909913335030325627084858627787103223201682536623137149365508310813619361157754921900211905592098777342904900932918316977557488390985418916780468826332422874203928833407549721702417726154157782668762032279323274922686940947384618475382710847166093899639599168383225367019720328726488960147090651071397377238538302744552284214851956328415202279124214969832857779970924692209530233957975963726198421369854433282552548022686664756560925961327120156427065608568256893763773804574288332475223635339357801125440316455514527122765366225787947273751102491736750937074584676411215111437596013776748752472438281808590159748010868857605537336861040496675410122092417850717857394932251055860664618271379954704322486982095783391633445969108256826779741548529852077990087226442806874967317902280240161184706096162694220337227070067075605064601048656267991992864303876245426723320113864272425435701742328216127973011372876245944701479894504848717586368159821436345515416078449721760335772270428794717929809464195270536279187156815122576305447799781518809908375955161368683721390644557097435864530151855387216579160364596588710170391429798059250548479234970299927177817855467484005247815421640879823918085158224245385391380801365722903947407936055941906421088280746301807640229587053199515061928912650933955286649550385553280885940535365343215535038881889771352070565066954969335974226743623040211957480545752634065562802182844758887411408872419117684017458666052266799315652329875591988390002190259399334969127540627069457120818153968898610525275081309586306844525227942765799280106961739805395024719103697920943242522432548810223012233141038454866188178685340380258509899539903096764941672019163150141006598870504416987331657612096524074202144547025533766436636191892840063512648520006648071831115050495679333444005564633516561142956400487282625503277384347670158864627248327229256272906136204833893056823589116576597467609150997663333225798591458812939403143393200005592794307503683578045531402696996577257672038785001047821835543216975838763767527290583378750018316292433028447818645638277555700183174107574951023678493545088445901816577602328303568840198899232887819839798484410124017522006004671629509754507488890298054711664134368530333767388054885093976392913010604928925129852991963162695075691077702652901944380693364249562174779839007964930363457070603115465186799032503033419409754178941904739398558896341277165594139859349188168017506145240760448460908968458286179778575521961489530875357300006175456311955862337208676017791899529346944430311274212042471677633915929948453144463026726024476832340825941347546828488011650341916341538152186146831483551080890549380654962338447832424610994747359993519074745041198545272188668042197713348312737643871492765751014096490878592942057691528012305633541728272582375781175988848454324821855098126317010062641494084156496825262951401461435010228553372234978302827434457852134761882089537073171190985048192401492339667707378168775772692520280952791042385506386783067876368847107038349594370052266910889149652733333098150657315743082282375556360424596898969139021968619246894377683893522001198543817556085188035117105467624565318860200606325754714375159352898940877376162454606153535796150211784666175404764384454862548327644648705497448522866145424761225456849245130409151253845482483639773782855931398716873611034528524942372512669186551601815359640824528694971880067770189968366988038308524543160542492950898958659026818462700182316029424548177657991883048151961279390305197755555362746820698138970331435979444331545981912529757892065289338385272603566996693962688832265496664637217100931246061560911557626373569307291551771907130453445419399532817541018568286323290915860345575886329175456924253234811922487881100617704420225402964291858976216284249980222738173151983767815557605138883910796244192670419362890289983359454592455322666119178010416614981010965646666769856042957578335820371546481332841344953102916468184833041744154291265754539662238190288703342818308486155689822059207492746549658669659149064290359564467750857630695084377589718825089263151300369980483447658616506094885927505482794366099548299273683949459077772250220053556054259847564922582560602120602207351637092676008074709092656844917230999724441806041672521832710738615557527801992643173017534402530449941628363831972556224669270841290537633498179461885235598513356398215828205367975457867218332733066512760702583678424345224038119885200166798496283799814105715224862583212028899279600214794856583307966780149045164983820829482692327863860981602460770961875890300913573022480361892318915400090403187122539327561248732036394615613633783181627729552628935265900613421212681341904680479132279237704454506082089111592146194272696962843978058120374274765484512260715233670716763706865319014440920312549899839130064143000773529469905442835601479069322332862385650918723548821707913840142465344499120061979710045017451861404175208508999812267298780580491957836551207951888106318775104321421068844783354291984321601601758171202679280125621150937814280324089262134898362644277222738736986559323853525010709298765602872626605472820351469640485983943358683591663795352245371570463045571470921914129804071637667928813470542877878408336804406617644708527287716587856727246565610624505701272261485945998700393831975226202547790883775410234987203537444116918265828468616056968696503799640982770075103287387283227485685315038937642407724833539147665087774055368023062022116283919812489717584755619978743412052794225981309146907442096453076109671240468710973501901056013761880931133394573971429653252873845864715722635757359174278750077952891688097730227144801718608556383599415311653295518882519133720449853372697632337822103866533663785851302118901874949042533435086821491162513245606671919599660900670254598527966616082377561518610527124954253824543988930490714690354338610188066769006994023585398423742823831909734441230524132984611635521365695363621318481494791353468973800951228652490684772656337373820094129288059719927689288542944728449400934596176259175232515021422898550634448114255061872317077305623535949906228179599761609146307617384877405825317513019690376588472775321937496546530244533333232377316760206718048839655157758449477848926031142548336744725992623238702091667675482439625479723993354718813646337967132673623002329318368626569029465892188733095543844219213717026411698151993407550957085215711311820219107279362881612821149662795360180084648337823629642637221584733049980435094325732339293501215805011631266070794007513437893068076442466486414477657526565783018919877155494733171251420840538493865527011245713994277625015336319266990118222250186810472229627199146841273711128722144763289973188452613419165979838945864568269404661553599295067320046311072538024647470837900584003697799057972210753953193326262520536246168191125313506838248830333755631435008653014487470005900899763147517366132311220839895587505047449193041098362286006136111059729884175594952702166485836592636767098686162426337523194102861822001246410235365803794350608952923518865360017315794784803248762474795891056850930645838811035250086471519135252355614826334140648215220118463388592489002710341610747612810212479599088828186963435430686626115481147990421634194979653165338435362827484168544828540311025662119290114463991524873041485957417849720043997457012566006626882268445554539768040378386135168922918627673721663125905691075342773763017495687019445243115589331283762562641123772583811418412016160884434607432832267319968433411296149804338605055878500893204493070010428189677074242605212198329175204206266713018454837004920417427540975679512197968457669560712961497401001227413576225145033289857261585551984573650129531064594430401196830634135570976565020345475538148271073973653226816359085922896120522330254074085316743992796398366292690067982880107045909003346113257201459791884251825418487275854404171227813158526503765217157283065286928532206115612987022358366855500764653243517522683387255416456488305343956630467607467036278628950306093339782548554088585323196003403002499187566893909767114791292720612913287562556138004176980633091753486208507588226072560294187187282936321413478097664884805872723652022461820235779160424561162405716865128308590940606605055466119928498089648794372444416430436605809535988181012914437442777477385837090680271729839378584437701211533643403816545789815320739497536817483720982427545138690358508884774608886865805637223960324503936377709362435868086217698861860303386269281026861732907252731627957949095065958675710040305705008297601511785052573986261588804156646736211793317162287329839513725075417137200354796185205607707284198756928472191492199298165166459846619851341111770767588536816779874818901913564783652362128051560738061782380985403621330520017208383556652975210121253101603323867352973639563561855111072005264274528604812785753131743557186005757651625604042832957121682150071053927120691233796917867793259806506109534030003571794587641516071131374278044752835008187572003571010898342177508497785582217441806747688472406573725545091204415190406688755131555469561988249028259356057299852307800559372409584076184294199712224495046084538644844668963578676323291559207441957835773548555020191434532362353415671729050912167018718715342403404355032293924939588885327855467332233361707745340955347902361178224018466856225927208578989573436299504743409030385366754786745634066267410658393693315640085487285103579999603444145851086877677395340592208280993598888056857658256307880593867986831557081899506828108280047930985329961376242163036614460470121922972512718019763275587844291037308279012594166868139729688250945382059361200557051283512129821352018293911195131184650398052281030957001644899332951193971096438932370227875042532277466928234833075262274773646848874363570916124180150476598013819339075521908419691893871876110353928930915068728400822421848857777434903347822066439754803665107954560806731370225141545303265234275643062004966653745069256920357041961038362770995046975389947765238529371228083958481633263616618412077869495212533919381671071655453045267435636094106256072399767473513044675230976637017886950677712004365409760802930067007246707907501322092413506290650626140417758249673891560238323110572015342630044202464202292914135443747962567510730021816813193239550682324880809403011102994411654202413205456911116686790756875602786341846048535741147282775874436935803412728706912055031997046378064752909929207151749855468819467710777349841685822211044372739623237758665145998532708604353251944661099070141990488572468401821005193069749527644945615664965883153798005689935044783754516920671188992171606762077676677450061658640024452846785405040330366142508728128351336156889327417146124340477705006009396082296750005705825523691332423716018571808484875254633291920433141365172664063314263841433215431047307726580916412828332643574155713722249179840934384522294089214349226850908432581231327737121425601500134249352420103148524433445813710386948470610370825973570414679269960963228169770680443956141919021136975175233295829040647330680615249706822980372369364864493240372788213313439893938325362195088808126832901508192196128200886154614242390918447351460777581421512360461141121664414454661733661595580740317696562689538357607503493641996922097220404939008919190362483356995896576971031109173014250785202372266251756630172811838719406886486086581213344354423849546019693246398590353998544564933828770236183729175112649713343694131311747102019421082995508700994442282519941927165550415027912590939033948879151525639934305505096539835684995366185647620589687512046800016504124678683212003689259521878225447615525386243589072341534136052066911846087448494711461146849776142369113625970181903429316561942929173745329587103400086337629866116703983054889505742029386977391803694950904933855995427400191753681491983087660982731499392735255110065744389009665691840334688721501548605612948468377199849723948189021341247050738622454537374573853317392895701200596036738430514421190389223931153559347729607511964487088527773695934182701346922953267225815960822508160148089614860579234197172989071477730795820548267913667888359826582176833190359621732325654683206356927833264875546091354929240853298218536574404980277206053862796896660130438144274553403642099566010075803351885244613129989268608193156635096477658064107007199484807048587399164527391789413627962930134626981114341372521919940051754039628364717457840516702742557843810929178472633281101504352440710874754129531411907926022940382054603094251890910692280505754427523065875742858035429753753476523143452893289361820235869135188636643482735581748463258787625857647247226666342167857375294610089965600272596466555034372674198453995869935323935740913213299483852119274359914408563439232808957734181030717841012614722468724358408769771115525326175248904234281146575443593483153672545166024402046198391025205178805326916598502353641963396998245028534945082245428828891187291838973643032804282015353445187937190682419015331714996671738534420615972676213994589444829989754475154288524281863807803878332415096875718099407321610911856499634388655736534701524869854451958891022250821288518112561129667644059148487546563093077191338229079622894400425296490122404960074697275798538860480824049276736353581616871666964883645945842209564986643810762714437950257394447961843605663404593236985172983332726943609839466407747782972024510784016505906046857693039368028588692930429829224233311833303148194241435114117435206201486736675776054482765908049660109194007038536618386573988917110822637595440163332479950058282498161562972878107385791466690796275404647295972040397939947058974528543776240254524370408372723225843174251695829726997210902819042021933774025479314508611899540344458758730311901039376375727521051363150294736449177210933947325269715385467271860277742069973073390946640601505815473432216978829660392763382251403557646090312783697030453529110494606578226978233450965523965010662403327610931602468175347661739369808598325149477487643717654997421300118521098988863397357033524307989985542486105434351394384456107263120578313054614250996730268321048993610147576447611834457627362640067161783262311611511256271535011893177054724148292116965993402551506857065133267890997153974785172468100309994304159775950709025598086777552569878366666835911702235413215681247547350637267844834700385162036419908578929356135804883800593483389975718404869035528822649536303427751409434992223579262154966715220287926523544851521723184374771807727637463543903519381002080988265017412003341519952897771556380634271807939838440754108746999211783065433801048685019239529608938859675236459242965350637221681110939794971675784042882634053601335163162213669043745581708321487034529906783547092660165321649517947286137394037795446916303735900176510246977139758965854821790176866304686776288803013040849337363815426354076532752375117672101856253025765475661055758733762048637947734636072899080483369596139637897740781443260684255007876431110194434674172990559105983337048221872332081785733002146608004053847482862527735168584237789350497895615925300755866190278830046061592680966819025759598890244101832202118772968104502509106779848623099757353740164317209163277128251343169441170118334121656663399108650093199621779837764323481213709404660833090454528836171350329500113937817192907124573101460081747682059604580227233248683116460777849639965684400105342017479470111789013812848069302226563078878936610398315300459238982020290799439796069085805930183217146699255936014445139123728469630125657423431169118295029155865979072733261566724926111136926055545807412307522029072921295722177124343351290795979583693775393081953818051077270309652929280570066383927576667088514275668389371488018748837359832104390123842200022962770638699286202502366831505320351460314444192077866667257185576386868295554097426837169326747578745942751544816460361326155578680886393543922092223615171638907788965668658502762697541606282439051182472040538577812075418943801054658097095539145404652796921511502963330764018528287234913303029645186523298454251343545226807500937432851609327610454785632980427143365519246418391710400303926053637585258763598014721062123658073326001663592868794884622742523020627062514627878017658966036987129471640127841961091365909978175109986568502530984548625900273626289089119389287557785558483289295546444487453279867073650503537052132231601516273599578749708224539465718332387343639434082628418517180227834769473690600914128659421671797516305980795763833078552398683721423196555746642136829507249265457847099288726841612096889653617660080979291510687989901555799531701651182735563621012025093625065201293847549812990973583656263967519314730126199028780779609703204814992793242293786983731737244409170461207451005086036685494056403595281403009190751787967148492766561357607661689340071832780908854138450233146145794485321319375743615683791046724284084864057744470335134863077714686342656875025989076981482535139948000656431671390761964697692337540341216611542756195540121030258193304460484367381933508455470133440572881346294233124495516271332985756992124207467815336665896602678003542922747801572401735016866409891620845322088720457715213141185369827907738911998902056142849999545424438991216126962872129457414083643628165944673009073465860108917449229532173056227945166804991217305292332115586299976214086614998593668892989506902269628361191021676711106326383237272814684900306236117527195842594308912426791563782635478852683943831007262589274072477235926376415490930190129174819621628599884354047764918626374333972209486596502919401881784744288697442570666172471214449452870245340241536463807125509124838573901977395434521737780731014838167651153440058086900749682893377383812227039341726087225393682908407712195116276462049710694400339721410163462490572126460169374268135563663344247178888294250428604153892295392876039813902862621810761113508716680038226699436297322636835767714483367706373671797887623474630992066278440140131948073635487421164587789978247614815493321465393480115584889840063594671616273856566200565945999006068892127703548965288374147599576224784634508482620499694820996651596307754049695476736132411940733623024244492896198896258090080703033580265043084049162284001973349991345490136619946177387893912495640206972130311921277608031940289511028868303511824105804889724581938608449845441642607282459596440161098619572518612525304026554918338152111067163623828398380831618053172725007711937849588481235141856918667980944465054613730251113827753423258344766682656926037795716194107123520904952974740248982306847567703780540964541593594513295972862266290995815553583692647340649259746367222929036015623772598039917054218756502223747711955214638586030659005949249774654281472992101912692425095033951946356199848749362620518642253517352940142424262093799466855169439134044101823523970502895243408395886603954458921057474095693989678296029697619764540667120114621968842412190947964388804802319785066097924079418538988572773135427568356279204131797094830375612188451142195313686831968020999039782215824353060773555858277801138033640540170495111269693584484403795671559472485821646109310874713954846293401858367567456601200338136015872996448431800013441733528250962052555263554723348288614561987108381008492887213092205164183662754439605401223773916681490444453452308851083133882829436597746765403181463066858418755442597726398297048386325816979030783935900824143561806447186722488530812863791943885002763134343876122546294175067520697191780659151291835494852828450991096529078161922097897723322089279379830910387744447809268753784108335953930155539886483011447130645592776802662281094511342653133807759601659547249700683609594527821285194154522785752466503283917710229427685633766323596341265810866184328312648430562630601731276681105517455047604825091808640216033707107425113307018679150829600284668598319581288307201255574055037540078079778917773925619180179481986618037838600245260451814018894071345420540950210345162480896159013492595313390509900462835207147872105523996998024343049020341377823200564485616136618506372756789463835005525824584786328452322534293096706176146414832074802009156570937688718212164417060240759050960659678059295307682124373259791232480654434567092290609684637040465991472524671285692622958788349020703838963742123349406276887651982768657723501988122880343341179139893266980569676851075294139838171516908434068165477360675591647106130090564252565402526089868721336824050102351923089804590746097826620096036108433452982183714259594127629190921462423435841819071505054605065128297980784098593846322732644876810459451199276028405361595275643567583010166201879325284144550992947530748316541927288534850238006746345913538612519122252204665079606352790451438582197836891270725143361251757178806707509852101812421597364436664392858552473740922797775503401095654774788791363714473477856163997463669014340568681969512230546741954851088515409303895295683010856948084754567300865349321255670571046977967536558293426861050578199406694800419392336553236773103415906892393365844178806260189841418149241391555901909639957221493206408907589677021746153551503313034931963838020040771493795667293595018392244200364939186823280819641504040905463148568942900487423041172586040984603701805795667152750813798933608018712360503880530999912175743194556224746364519140929747870625675409859223344894843403907975716832393844314722340474029310300658244646591791069686110100368904860049122304935813491317638373556351878706745376494847834615394078553671836906611846573346599301245180886726044004171388213322039963048984429404610509380681476325230002574454339342934009909319391978548676262723858563126392816375909628198800456663021904698505790784999328072249341134193611691497820417319371518617657706904154125146569061489620615388761165266932013408264017559353616312014647373982638065523580150705962496440730030588207614437596103408442426940578664310758847592400923586259939987559139884764500973589464819722882527812082133646528798819888931679455148134155914048692712737439508412007581646041425740265911574122834407056425194593357657240994869216220300400946949587553454065686472644337167649510321344954291593504639504866352257121202465722777272339878595664681515214314015673924006902986340933414661155139556888935024860507340310758446875567054341445099194183898493175497796234738682394332969348320367913031872661748744951352508859398946671849434153096633172791296561603556900576393102520725054450402315967430609204787632766508169941439882169042346045988283107040445929243329208377809960230633967568766788434644490062107113687117004049663533318266099730664900752316972184325707272447717060004147714225847108171077157710726839367119454246658553122780119676769044502234667347918734181448904853062361674464084450534275549386847241746507337638725648624941657000514386869255870586295651300007386153357095158077371809180295437028402889271705464940878052073015286040624509971346164831280987031154877373383536139647907825952213994966502615197818265837621797148506254919097572305798417963570159717051794053585603047304010877587492728984727448742480811481851846532087156927722247156568683964651708786014400076390720581025266689962774909912217623142328855390097631638206995996479307231863752985374528666621337034512322757845585748290618629323391850498061751999471340394041199810368821798559242567329479610477574766907195474704261175063103832566877572213951097280872110214422943191333981178272232038650187460801456062187433659087975074077624712502400850658715141105583666591779794788885204822635645240830792099855019026770919459397959776018811632519706449135618916038839753737779655199513157320106804865569545961378404757741118143285217980466613686150849508196269857237627463460194875464224478814978046316233012950783832680907410280936442894209900050419883190482937399149347687458110886772355969397235213639023771667923399604354201082689285323149928981142981612390381702323795588000722473593288273390789587789752924017768359583329608553560748508720770490616285197726699839160087409471023466742278479132549419623257000099786181837860912392351277702509478258888864531563299739446329847216915438969456430666592233844579586803433375067752135662974682463280831341380639548058502416805299817503268047843453134246041827324622351985987199710157807315312414322854861085516432699219668689500853041661759999007084986443460415884133514529339474043611452053574726317479284608610822031320928484384687075320104613294084396134143143278005990385098689257523476698390563042450919329927627569901789108436365510280476372677696762245070342461865529552097929811839132891266185976485161897313291696097325493138496665844679453567018996704744402480743016132823537065018363459255758576806300185339067153852318925934042224431229553377522676368960052196051385209117045871104348646891918217299099162610860380992717658598281668434027507648708037006447374761627878762126824403977327861115518620468931610430957147470959170304517720785253938193383940215869141865156869416242584160011851326010028334694199962694447199488186380753947329822442445806365255787947691090600612082286218582601124709836007343105651064506067482121549869631262600131347937332961892279284377648061826580911391249134925045671910623971576587838760762732754570403749070218993536279635866158177387856895240257975341290403521356651022376253135251687259952477848483046792476667969713303786100457907171247190126071052154059416518849823829240032464306422016120979008467512489743659016936895929907839904579448277698911724915582617162648888249417363998024677958686362056510825707892278302611067732383071619746495420556009466231845563254673383567927015987619842697895524003491588641208113059969283163736157910015154534454533703109117964796847421837961767592789889148962687694226264837416427749927014833755219636081590169942838466393590622244545747768608166233734762538469226991703624008961728721216484151303827630740744520872080853922772062480654258183700710228966077183125444304695441900159988468716858627534294298278592529288334352421224376887070505056807311752050061956826020089672654948173471040699325557017666540836060493944176816854421320881073279344735515966962103491492252117550597948012590533054128220027384095955049282040851353620658984883600018668569127860506633670676112511478074422883206056074901927794727844539216321090545297456741397185530783485271610699042557191321593509363633509407470427432322511233508609010228200619414837469172415524810424133760936795293698872754901542330916562710471141811731716704321839868064782199784057521842395402260284788066123047881326884643488997890578215348520323965392658836622469411679981472014197921280230326128280226559098999968133431652188269679150510495003361001903166774379281863013266283261467086948064227791307002204233440621872377820638526966007700714226313992630241836155425654411295494727177788049871919633004807183773989647168937721279592451250228728388468199928241074963797668546006790468700524380279752834106031091737780423706693915817535205693547100931128704213737770732355498052065843713484809755894598542866465041053365638543827155594945558851162182885942319013536024389804173461753031251523776018945970135803347154514342847297575718585754581747800998407378777260276762290030555790133463743624074392703162585780672776077154627139881971208820230107904757592847304051787888498433198465758904946979620474660591522988946344157118724726706564740045578000171789775651231569752818679620418021383427007793355664741143854620660816996067001917815600181812025111330150598480307479623483860809590870845505130833274443442487162053122753134903656211079890940354373366268131075267921015939507918732697300855962972175078288697141447593800101849192028883259839761528128289349863105915385182612701006720575397087961279072815119818253761824718479976034236403430922519953984843199239108791602609696031124662397340682732596160575437870063631342225543436448089924636590231063579045169929202725035254516579965172607314576643514771732662856912099525410689714627515285128498585668399225240800664500049349544401687412791108474461770832024113956265157258166606361273210366975485475122877053413215122288616975739362472935682450048845098641856857033583917068394554843686250477214209584082093094270659542947300784229241425946524649902951839139248143642472192614648816666848422792313554933355883099698635026139582558128054261251237687981713588529165139907347091577309072778031037876300727254076088593674007203554076551803966032826189682396860451875133087700262379724816090748332460050643056141973047467036362418656744948559192342933792616221894325024001349177414912649377729201207962331933428556975877043622593492620111022850785289857967540445081994093616513062335683533405847506667812572484391527771397086650209857757091040907296324687676104201713927735842314663713664645662507704119029901228014256763624860863627938307614704518151413126837093588725844250972577570350742022272555590702319360848086047372780013627685989011638719705663930416275914035909519261080738111987585940756153347054096510902573575799587222438969084813604102364254270378967764843502726224836029261457328941489431671578419315696009463286833386299718628806773654117405763461076983108927447552733333231732093709112597998239628149015394658068003228855600335310749041924723458440702140368931224334873823611144231246189378331048014329927382121782949886496454562112808908888761238589589127895879715994328474559441933413132023562612543762827285346316400630410137467647537220422273193151692957721444742869756703409586474153483310923070748668069562978244599779392638485174502936758311026656617692215618027973461674678598651367715725941187805979378737827390028511890313557167566400435121994006004661534435986911955129756851748635322263405021340673601210575771147431917412611057044935821383685311884885598319077963736973697723348669631057324546846300002337887869776742631164040007916675668544705789846503102583803738093071706276649352480870330228743183439431225756033519919749717783195907050206684028497213784963397185759751125882758653368630378096955377871259024059020671117639615715178166583169676498278932304281404539074396871045635814691301370699213970974862450274089706827344964652821928934058996457691058495232691682862633622741226432009174907330183210395111774589893625006104150659173303003495076414667718764252070677048223068866559911011697093163969452263254711862538864146603599782337249990154642195937212596292097902312189820717834370189183114827368041250888607812060008782232631116042154031488651228980547119045585695921644115174660235462177461687535171241550707954301888305693389875568570076560177870580847224609578940245731629751989919742515354300632069546322018693154472299500670232489094130574049555859855107554649767623004100847343452872055625555185695943676856076104334822558443348295893601038681282309794137123900199220689993271462614728045979399895493065805826441156948595353410538730200538946468738242870720185957241952938013488198165857503591251980496295312536642407068748675372744904616450221450690448447407512908882335418112265013240898287373344778345128601362535419015653356401376131192162280819719409752101150156160886736679218575049533498440543302824981940965547939106882928383309905874517366138266893359111235969845475990670960107616301366000914496491571296608640856829846403098468118615853103798688641757439713887191447432843427253010093472966812675797921645579604056348451268814785553615335619452666097391937429581393911387705615773926705362086000564325986767241347891796216218114451863122879800927389629560726104459190926297673911745096229419275298768809880809730521544400638202436953271865525560558440814394201103199892430132487266670988180033740311957027338101133141973366568202119760831554997919277253307316540668350481083686471346994612706770047236961298836461501151555893097069030242887883103358655276271226695141296720027261155385499385090854577020350513394107814631543435546166389157348067507282555057600400359184310634534666273698616048470991682856388161413152629540016520427936466042882208814460156009554766478777077673933946546922202230103217292528494210671685551953274123757852992048980657581319327314166193268727434390520663951066646198836237103990133062584287467114162332066006457081799042066213117146895993198212468481511653457302116671641946755216798930400683561598800949750703613786393104448561560330869731405276024740810567023126813832064787636856147906876420236109325131139055094219310120256349430438076134741864413553956292800637079789656280831815884800789250388138084099602924181854424520362424804008237026387374119508984899774677125680044714497808135298013232746611211667787022424206556658777096776651807213638638441729139447265272303939417746076223378022954049328434340392552050720399134146600821602425513043129653765917084848257536453918875415657709306101456197307012547623651492524417576977417656227421920854627435120166179780708994740769456516102124102228487629619933962325261868259603594718994556088302791258443783446173321853015473487930743378347287258695558365034888324999081939038247499483897924945405789379696606289574284597947803255538337403957530288822667193388508461452947198427999104163356823601560717588337598642209229998502415368503964919765257213608138251604158008328464509893891999416626709982139667488794174027867706352662108107843585668977310573419657862180198181930972230749178918116079616276427261575388854231225403967041914620257644459149796581776713825879609423037129060697690565218702457403988761910085014824499018515454380532886526288652903392220971754378147391402263297929738852742955150591358474371132335284076428375297461631984192518667550965897886239737372621938260922333023153621231711489556230895529221443099376362936057888364344337375070787183324566829223624874752661965455532306953624170105847656751950652879470304823056039395726030862998216283462989025585477898500118246014885654943617337661404998732778438262578532738078994016736273698627042150303501497186579560483116228789361376460642231180236600268552835050980372026564902850465108857057068593138786011551515372652704528380688213284639114291635062037285516243906912255819577500386347006281321135551191595960083852757942152952269348526890272475814755286276526455288499390259124593708622442450581743734474137731715804841057435572745679594893117124652365517898681953813124649087053305326216038309871806166996038851903862054820934183226829177949821389078668888082676841646869496242068497863414005854735601321746392213214328514949184234942670082605739870399188715567671122253866654739833040426438139697535526404526888549418824989708267773211465484560186679576635011091564924531176098635964396754387248502021339991713973306334913462863258993683972125410959046065836988664356921627605885406827514168063265492619291384212227090026227269309792420518430709431612735434131611246698106003123657191731245455882105887664434108300155164866143529555959532578713053660560530082157872896071926013981664716851103457267838138862553465394751042168777354254663250952901022882982464161307623298708169623306349322450161561273632115908952840946022398213020960146243151330445760454873994691341235875743772482195230451635363304105204046815685268168847165581787516719308111870233928318320793513449818737646240711354238996853206820422717851847696345206970991625099083563156878097704752035831912621572351735796245310056132760644366317490516078967691606962071688369445015403316726098586124675103726934841159589915160580020875771318492210848928918586390062984007954109751745815781766497491682106331290341398434570261708375301658101489417528267907839469546114366667190512264051577012577985903936677229292044127316652331251543643819293178125556122003092819342407539541481078259838428692000999859762315776969173677717939375734996935254243488227722330552580755547817715543320232272641444115439536883769917563843969648265484079964400220349385562967290893198493502243067025967894172033151133486801179784300677067951030971013355554627959917461837722428268245113208951816894713716132282843418217131025881544485356416461385791131012402116328762559999817588053877112612227499427730517221768744221353083218516847306997388925653934950500820023781529365903536610587175797269828144661655209822846372406387832947978681982139291107928532694255522485967627375995936134381277169681250363904122454855229309810422921061384982548627252505051246092774786878825854043361625097333892459486676362784609255852904566847265638018919051236598735749828034711384831570747626599768033111972223508914025666852452705794179637688912356141574614355926420836789868341797651330348429219007952134071688204354577459974338572673663669283917461360005465897859302662134093712072784402259114196494971743314064288689848129533896439071194306050452961211220352829110695654841479478681919935934163468819817891064727130738790040539914252369301245799583746498272828675394484587647857458512452969130093959031309318686701176806482316635961175798976978167428102220243167838730327568953166953745274734446494748409697993214375488070012702256878166001013126391631715810229555278195762102082980177433638214574035167574201400331344099423637017825031455734996188874914566020064230838519344120525400909797290444271084349991699134920021147025342666855429593816046957936638594973233240058637904217347487852858330657326628008880626710091356129976177274024591843704932124011269987199736759725579379943118983100535893811441575043711519802288629708483863842946746770569604817586784230328068795969077319042573942229814635647338712375410286977144417000736648923355630452911715508759160996450378793486982005097888285599698062412361446140502370757514994544358682087192292398229088930892520360201455887990637668187616453641367773719755526639176630748581382856533120075717703453522707858332923524354729021983775724374928009984729191674586797998526813720509877131347753986672211211695190519400763344023198364941146946241302555825245452665278402347762474682509498573534401825399053911230661985971764406849900867066094298620147284874525104728953285578930681864500712245401686917144563410892393754929539155580545377781821990719575931038806457058365464497889098594688216776156445191953700115431947975774440702903302070845535045439431552039492069040885255414336021152655679674908727446230426293027389482880571892339063648786663105988606122164174990668266144396345378855138425901230982124932130932085113062601756890962408364444210357953686719246410403853340805442710232902323296960576928978891134567773455305325174097889589031015896316287218193330026873185713864842087363496901614290299433649985354135638876472753847295970671651999812319356863969741961892531644423333303677565525659080066145891914891146561229301905810554135463043756227274874078056239184106673270382937832371978014784984178278753417593817974335998901941080737031273795370018283554290375877206246703914214652805106895331198893562264443777570557343602676558108068586049342482051232701590722577364984141447129082405811485465348129435022754910595935318555872382232928123269205869652436517977125100868453852638378883533040014075942903642846328454887364434954934945050600205895997993890279284424764365690728700045678230073840566426098127070845190432492608780781986906895422533040100373957283274398358106322552757107181441598206784781822293149831888648754455481433166835790734489877738798489311357089748035545861913953051034356389319191420189083486808457744781154406168008400973869655177897432442899719605520734016082992169251843482098880995679141496529670880884229070085716540473791983394653346283757052175138417243186085802089084801055741079430933928191034267184153117294781242894174738435479726896927144519011141750566967169820366587388523853481924695359913585201230258609128409257410288027466672472308849668861989760852812049340072072827426561760332648660221134416765868315119496188944996132988515842525119749011679613618003394808676595240525092087123745992857262879761357222720457390647016792554130054352654790103579475339404502040012248049185874942334986298152468932494090947969184981351472964154803534718493296697192353760589644181586286864235816136784572168816560176767932144877626726524777648752520524281334181369521817763835936756500689011487868429116602026502123092623263648022474788246956819796876687316527244045563894632350022923101339036667153276158785242686358605176264382900252397929948428253576289834666759470345458754019809265970980092629853250665203025533877670170984408705241750948664900676111750965711732490607629043131401479429411549275748630142103466987748005364070432464467649598398820204156036991263101577862825428919723187291370461266376294178540262676301143913600913158998297652488129279519371552819457932204114566454411073336289272171177599269580045205419916074598713599115080889831684737750060434183722177298098204220016814936904887253383064137137482928871470352101980247661497791341629613205552580589272530481203696698696237957467271380025638079243675139549667035072136040888597014505462225381429199798000886643649639645631700579679898354325122194950514171742068745661827060461336054339508889909453821341987790275941518518445503411908657691408385104829067150112567416292877864729740366910904284649470072298969012126335669902171275246342746407587163597770700062275580959570891838349092289700149258091593646077467760794882281409860116741648428753612125098128933580090148477418007048169446693334963502350467899645127021601044591969265025196974287813967013535145034855415888723266162102968740026132908142622052805643020413189632087270722972851269260212968578250846697247626790373223295425640512018739189535178244694576032367565199122117607068705411009024680873224324399679220298688019910364333677386014254925445163416030530316032989828542394751130120369302091003524347232607533428887978636264181110024906934511907392144239546007486884777514554624498844169944154565604835240636624746427548369875107375859012879077624879197066035040156387675107242570234014635820158047374482076609604483490105188631215079640093025529983896542412537302824238967965063541927494766879252570139780970261692765391044662861617159346145407056975742795211066561553203334425896289376427379551476719185417365497466631836491305191081429161674236936742796670376168397788921776084433500374895488770319802646855046888337131479884146316733374685051691828374656629473003535046543221293809396513375909668441427006395397788566604574055076422491420949168296025829851928547619550003056481223121561246419509362620038265216501872208773512462048564100016426567568605607452652769160654510771519887136212472433427158893274260112772119601182779036383869148259007952490860966636289314196378566745663494281056366271534467801802609707062625613155656560560667897712647220215284330758826220155528862169987964412685308625442401607667326797249916656133311772771961030612868531156094623344768980665751654016759345523383807125569933149317041118694600925169524405356250904395741284928919723073517164328435665256056681753398914449814223357519457478644801180752228353013395312840819018772938096377690295985753382629809154070113847723098044708489442534966945619939105623155201048857044906009232958989722150545071469721866973512737331264482596818029442063417563834177562892267048078234542286650374178732061027505422111000845967094739061449818773688127926095218143897981977497909418565358120258776364822203368713749776440346706988841576892131866950160499410328519240836261329494758531343745005291854069287918113031019035389090773108014146144825469469097912889140516324912851279971527809327554140927941078772123571623426454436600717645277706596382551089899430503791969585621519880172271944974174000843469486128840535185612561594829227783608230226125539121086742807098358992078873335734449411959719505255074946086616537733572943407363177588053702141600109080047019297582830708359024445952672634360596795913592818824652296663135308361323811582119739802354714260613678172692472686135062325591001404635499523328707491352780307410556345501602951319859881702119612193251661403160293059670390695976864078544304017743426732649068618926902370901631703150859966083652738463150636683288130007360503012181233806485736949150729846984789603739158321726668530243338484087835626460589241211058599595312719794365956259832532293019775136105568829669322705126021638964873447721995745134506688079910443592069892507988060220391607971695421574930511576201034270163848639189961921874150886579954440527718584699992794392444837213767191448631869670023927207648969003270762911368651776091235093286108593801650955456927855578521550712445912071579798551958131961319046644589902618760701779647027464416535612807228817790216831288865883866488182338579981607167525522483279579220312790272722240039505961756299044283182141984462957021838986263460680057263561206396504116112465762121768439020619539322387364008161488665479591327447498409523077921561772908172598919342404482941582699196725187935523510155636857922790137955375159742321619929777387369999489316128969848429936312765360892451569801405951706021946280446318666851856136322061763147844102684094814095521780371199644325840716141982301142892759136107934906440145774609629049833660349341421981127776345814468078408859572093027011057815137658612618122562427709971174676966764366517277437354383100790902448391793359640807962765303648592984032204404250651092261369745618575380430059351470068792334533551873605518795404740579327123771871295721296656627132402165339657989448201133405759141903109842601288679551077029887635057791345813185224097096104204684463668150113047477561701768895107218412747816189211420738899795761796892975607312231971221234778693752375664130967508489668711516693576598487306725120149369300201644616984952267135279059941311168817106452029731481227249187412126581616967983370997137970401780432763318954270302990423054338712400384386830167758572224748352911364562521502468289389190389276692495672288826363763890731946455948219256879798869780028866462492516446425418053580507729918399894955410852904499729083046471942390564592315508322760249722286228732487299926547672660668531549489292818253554578752971171943133908858321416733220838360169022521594192703193994852958498737368548127078430276869253236691061290387849284304714565501161123832066671933396812498657038113113397032198940870767514524951429041427123901501753645716571313029086757795405719241741892719461087665483816684284640288792157466445940897655635301601816396848368375738081272988613735289847486931492094309496363073846406955607785518173940607912629495651094430568846542782869588567782022166941255191158407766305094619066414982120878337414854551958423193976085318358798989484977541006835022011606973983013648381192049359216277598860145195041404429762124234383360012719838880230611547293275299692500128187275136283519978821429042441809808535392474912407949153464580961617231186293308341561388416632607898889314773013039805308460928125897437419599116132231838619037848375303293728565009470966220323964726509987701383577975278942838626485755544235719838170399595788399859564028223006434937641717202212929770795662138998767712961366982308432275361059914767218275128114639213378542628330263210100541406229221877974318468357721968988411905885229699115614485392270661715053472764569675994550338390254072999156990056754668442149240919752214236361298249725030738525050635463711089927406678270449636159241590302846917838174014054170420897463571569124967428729503881248224441102681690862564811382773775981905708663516704338883806124259344114979298642325616741776611597526846592866127466432200352695568889149839312745128786669582766561336211814077358933788471923183330795639162170834351600743585099992084807426512704654906284290910793773286527967154463062169503735348454111455405930597372354860381223370374758180347995609540686840032915208171038881968389736227673214043481472974534112001399338232919073950621516885635248137770861712655205358606209890557400305721006100129284481624649003297528825264472900853890862514275511202445610850355345137548404252761831355648619560471230459175055038490374241383087520523829335393852565977377309313431332364970098857586800905654976083941983029181080308768236422900462647258057300237698889195815255204585571141994557696596322993606877770390200503910144326057399158971086107638059318975624504524475357393419014889830443253904616698794760884176426375626376603809959454900272541875859119191330161152302575630775014043925975897699183843496810075991502746131406297766473169430964361933360069597665250319087341082076817322227838368397858990474843590234411400718586113064857360729325070886836111060118220148200126848520877586332856386741233008000710909953468346829582037143115384487066384639222833031507532512071348205359172830385491013823552468256427550289038443520170691638634750877660945239667384644725567664533931585307235250598518118150391880366709450051574221839207293784984569012951932299705261210565194351223473000141835202941404018631104043822785749405160943368129353032075907511076682828800092123145415317732137459276869476053950280257353741344155404060812250346533400826787013735018976272658944450613396810324629677247701658019692823432490097018543133773857904083192081982608929689413647486345476331113008981744601047216209243968837919138680848925724345409846003712365941060147798120060634067295924180620212296959410132150079479014767449792662457283024157533187880586348897841549107650408148464152346805299915003147319974170565512297002268613597858745134056958752156432555341066204899151688290137076144448136421588851164936058576445821352600441039050013897812674737305789428326653212574661761089777127592137046779159511875008264641106313897860350059517216202617099991332508069344517355191756890474086874056075728549973906670372123443918800857619917811816769912662475454767029081688252181689667387847447910806819831030495961949147978957234785689217677350874549989360341200662045946443638062110386176362719601062622209348039882465212827977767917048843919005891885240354631221370025068827291000053490153080814643925180992801091442805487364133420536932292332652724394038094208959289998811301699099710200419896042850004867305962193026396890776132273868752438478795147915881637251912078007028153480871501552879122984249253901073074868688557358849149391409298676794204635476688997899447623208119177158036511407319572274888784998590094938165344007495966022727374034151713949034561058144166983053779184763377018940468890268038882717541218337542863680489525742356433814173737503665926016719929492631744341344351506834415221611886362627176035022191462531643050372875410498582562074968298177542205123014943959390375874980402390423607049677969485655904114213681487488578011671491097321022886218661671772515415258641438830237726742920875741437508153604470362191543528382041172622889042167201624087351766657458597539568194605001889230896257755523230002864814959580964522166009453166628296520825605254598960012490251925441070193381659452417274505543065420057673061433678415136387159764167621932074217157660771392101876223236660451168049772379032367886495712744862548001070926391475570849776514399932742942225306614279293047235284886638401091325260403505439013265326751382094087439128107012309494924835480458636807830984380198744120115202870930561490817808171799281269340636078872062898080680303137039415533885753285944857346289588016057533245477381129231137946644399368386478805399700262243475019161365750907394333236581852671152259695126894932367870375215604169593025713135708556917832810391544529194393724689143165027891900932918542379509847616116541069610971513869812819310067190019226818576669689742029499741181570162317917839043485971754996537632331977985614256564685101088549208835574250447415385974392436532632033410904619662085836002966814192989229402446301383663861330189777493097061883264757696104411987833288805994344233676811787011114159666549588423636506351298905211167428544807106831622376976098871567805683095557020035314271350727116002313119528978725247837582631770279475670529946604050733367565805835265309286263735631955203610594834666026848198231348809355179792839639414300445773953878880314433652524506706763703828103036894256092266959906598783315140106938178124247202770851736730405401814694000834310909870040260484725505985261187184502983750032470829172951073400330092322477113456547034506607527495812918791457859232819370578055814006218432315895297295777482918023461992546566841799275557189178799819429361386551802557830285351198356093437991365666807586689272207629427141256915200757578729445946213964977143104849573499564249677755839141154194618724497915171482231607889021229379385518304305026194247192719695045975178696209271672612471505442194998001800761446562762634346234210392217679711269838260866895304384910223553444246471657746222859582217255234421312732469715096002777636812821771901190899172981787475353759648767236066379603438595663421031136199194818857366313864937431380859820740812837489702697413952962036452553085609376902616713639300948034177735964748505217426332246656856383963874826465644614943546507218026965834466751979776666465787724558827476236833217455443582681335536592138188746681311601482876662776999615512994534857463148418250695480478259437863708469284452668582670315108349467391727099237195090078674421480794514230787069358762634831839283006395185213297421991228036679586398340451408795378360165242474809114127490547915441741511571251141620281621270962173754800026906109806488546930492166901832566850755379722700398422642932401318717206358113448368899026261231099064113461232457656228257510557189809227199498810157968724106228237399996252464314699550402613010292493744348468051757549902247656727575492177628356949768740986898856664166863867172043171856193750015868890088767334890721079349969714247072324028199818950336301438948862045114731047814948375162528816495416524975186886816311132735298928213343129370178447379528828059036895155872759515664177220733584752244090985356891576087212990685559766937689636522640780406903514470992178754073498210003921258600464138305892215819589587139910162248556878183631683296017011276064382860488865794204275428609348120380951161167288314928068455582293006947168508078226308669908841932399147512787886301572615090886723489233565734549929151766891270306059365308796243503285460463480213593454629476601756217364202255299171559562622951174234001432222834075460206035726565039210172702437361145272141578873811325185832788487323662176037750587914504131559906821279094136852172507775650261645168892097909259562275463683767390558676101181798770912272793480803583536142584365361991908294942883409690844804630717738613222245588236097569554300917480056231161696777930285005915102270869243930605617555148900940718784881271704769285928847875384065458680633491650264523620065790293550120363475193216831951026676222642303577662379449255255725409223848832477947808514505382747848268259366851714812178756227115381044635164418300632518302359688572852683709326258270757984185844247379859261744357181482949331787233658422838904158829198575660025716024404057402480820427336685408745454480091413371575767232897115266381354891354519781991817778894858763788845224535745324718062949983825841544723699217227438263730729740282643113543912676809550753113241141861079488856332105922031745438930017517916423028892158733220034391128320165233335908968429689544710788193237743685736010931278460381941184840678870068975168759666752659649749491567262275331362627320233998173240675532854006360847854796858794899651787456721993968590176816776093812148826823542905634797582530140785151133025876280228665581303953025263309861809454661384624990400840441929954561980213853697414463821959189861949458086696638008152789805536268881780903309630348085788593190342648071217463693741506799326576412491817141991307271266395443506648544255276995104816105218622538237722646945365726241251158414540661879966274971074204247240756881571206692946636472167658237989360059250717602290546342043956006268554119956449031104292491792733753388057505571199839959127674367500815415577244342087965280827434746173719397127039436793286959880617138198252485601316142204728074485233650427560179446548535318307325369668628185260774845279852801566000788043421734541962995000439982155383752517113996851385510884472423963286006067083064366767953099442229056281656633002289169022735976385355891463933534403625313063809399271882066679026365307920239493362415433747778512910134417452815340767525901165285477054029712117610709066866093624309281326814956837830502560071310629484914699684093754231043077249662713412307066534930490029604156259118630942224878442183005742496905229826953771598862879079929372237911934970381971502591183747106129327897355333442073179130345714601806309253018450956463636703917635235334017133049084229640648493972493584436516955821556664035134654848622862561605144673300443433578002694497276444135878965791642466880357293788014785213956239589967172342943959431922578389206926961056328041044143019719622689203757875235067238231026414935846933169928060157568673477558646320075712681672803220702973077280322050977005520773846948941307878768200647873872801359361190714069298797755913921130608433018340591133958891208854973258705379944183548356203608823822365016537611843600948988567030702509240671081694444529797048944105296085534588079916704703599852023347277963665718865622730830693797180997863054469053160858823038416495701561309278763625438152265627592335761484602926426162458511236781268881544257057308234316742372198527641138205188570082517266983386234126431116996327868654847487650002289995319471807248580595079095596203025232326231750673161626578932571537348154455135116138660177591709227538998675560138214147448363061221088694713842493648412997753742576857619892626461311993047583219425671007726786227160857167440529871946120375472001390224841091977289438003031033944981494755347326886045192377220509321392589075979719670196604648873114834498112567346267889479815554133553783346647516789806529307510808921205618860942029050406424613596863988456359418177888638613768375044597854219110317783274898774600398699228985263729925254453516859188344419574292019809626048893742843512893906232754057585285007079542769864316439547725747068838302166615542380709203147287243151633907145764095561868001955086470047306141015210017826614510963469820837434891248469803387517789664398561833285057675775368160177847936091908588067369165122453498443577819777630250512166415797483457587844373631673368933274826702638121447974870513035716658135958294764012978355561439460099112233332624823579155038781135813734637349099102301873583812134403587619950056584943646488500802569406496678101776431743042758354960779404710903956071005242366022528490290121800162992752999890168862002055592738724738443278209941729399129484858151919646367731166064533462964761896458514459062751910747901680390722438721325664185027371792863729621064706767601944441793503405298913748242108853510999398247701509831109517815602834379781034330935742096660185631022670258514521688892435822856558717427652592724224155348316225150334038018291075940589065826672240919239756266526525110527854583000891674348975755566538053253346317429477256717479784349551286551374655213193662928908711664244935829112075940415869452115958297832647287040113801228905608717115863132234811161923055454568845576570403231878991192567342697338130304699874401394725585745343641620129187437944286536854938045109601014358706241013219794815412337787126497559123367471289560853452446306560185917153136361997469709719484808046463670529629207805986563080086308832636401138835097576684350142756612986204626257978311714884155834865690393021717166822022429702383024474210888210692086090256233217470959328373493102381217643098632935673369083167052772093431166585078907254641756794513761123033967938479893729672054498096279635627997098425560239550660227948717201796152846020200845873597247680136681228555037325880765893728453275960822560805728413943195565663843245305514494015566190849655027968141327399092873122537211710366527687377100352556328544191540758404653493875771927595039157604761583655700340181613300159696362110266744209798395125674563243520058583171659209243701015914698163517014919054716324523139745894460625612621412631300959393895473951016160758145742902239199903100879071199510221819058299045921212962543677772269943485181272607176280858815444105841977686571813018771855045705923525501150122936101687328315791315035249403284364809875856307350607807323051644375621063042168172836639129013143463181185501261574917416851381017719226238489304610778172898562453246408250439580865884303292124268899047586696836244278742809601580624811119014237343021725993695278985211199100950002780725861068336483198408697285170429565628433045449408769858959082939775369696027259889538322205700575758601473222928385927983932028445501152579422455948227322164444467026089169028300055483434733305559591464050673068679134864163367221442372358100382097215766107552460037940144477048722355301565291428779729502375032678472898627070511450438923331912871126214724123788205873578378532572956587758938733801025978189923171227068656498513796874865586633826811320834009530427778921074984766089560238613980347540470908742554361029410864456961632349104233909012335654365629312016540748280320313921471797657677655333820249497352608358558229378177212498955821574259525344282629036159564987593311168176314765922529617663563965925831209888180107044308136972466650931248504302143696406388513649849341055084726086624916763679479720905233240852922981078085721795357164764554171063554839200565737335279198604848473881190674831381345950315017033623282325170770257502232422976133185166486939478828518710321399746870753305550406003683512900607469990668047900580310103319124756332234429980015723187023089703814834973592863876151466762161397164318935917998191562051667776540775891467985597266110906894240011131368428635127966814185769513828098464584144683568433186823417191561064355829940137008958843000567790754261181968511746955910656672677296979278992330126687292965777036389395244075593023055070541078623539608516484419943741692082092651043181374836733531272329412622120371929362300713292631730458895660358236496621561039148370235743951916817927617981177733536466403841809158501786795689504274807664458214312897944701409621379623237367370608070459342524713345014018558142667550254700779798536692968334501830058147974999071919818122014465649834211412138190054339907052681595993143002474468157951021753762508854089546430592627876865229983951982996794354684275317324029225930605804216849680725439634295537127208403303304624266795378153191991156690545914248126717005809486214179928089237550156923750982403085586935590618359756953997404433856940723422782942217875493809368157007914420184297019003230956233901511861231788837925070097212332072773682471520309642687597665299217278518712136217756329010269334148938171634278775782670192531274575315927193440868526226602423271208968897250004744069754755971848717900625438606478954840022514296399718940486113978978319772343664657606948853613955263867392314792410340167733961455630462211986049954828306003681423120406730034401938589027461568610364401417065767393627742586065251115341653738887705021543696565629251079040381984321748852732805029606771215401945877312462640714367020282949297480553344147688587467052101496305306343061718207004444240786166500655500885385355357201527688239609244072415765037185981682704211053567566803949723083762851569690594987736725403643644012058043251379936068316698363937886905892529688313626842296922582366406869112941693409547240447280299517739391841138329074049067133548191421328283623513219208929257255959318208832906564064474389362889056911707604555440388544347801266570546745328266086281415975818032068088178560377939978823346412633588724331392076133545316078930220839407924490001491583758752355366161130253042541217446499334739111123415165945121582973595837099094456179495416164300343605866703362177480917652649509514882633746189190559546395822243212327959879356324588789801015799303533704915098176452237791591010603806605233857854326436999782414119897721858699270693446661910560325734264027287423317392052285634926493327551433291797384893078402649191028220108715798618861123889420160823085929348226775505964365984977787484433553028738481349774906774450410751659898237976543616236760157764894391669152635615922578395345228459368297735479868694832705373713324998279617204361612911273255447894125874841814813978675128468318372284666209068202106032140298751107951342208557305944309098161181119945049788931850899803391469038457278288937823237287742746503229672200189075578670325232408287388881641963198176008950417236124701027754241857430892712249839929961465308327777436815652573549448313029026096279970037799970637576630281778435651435302525338433870770541997478670054279951462028009648989011243890233947493741072275383377109187155877617954029145986957159177205461253617442740705850696696255324030323097163946251892494654759254389872261153284978720584116740442119262797297730921460974684983012262215630796677154679435475056222030310419514583464380182765224090327409866760683473414017391832813574154256637613892099936423965281054185575064054733547720291461321091968869155068565341066602328511132531014385428298192324800391866982585142156384300282947208082528538593844433933349742698166852762462545706942492167825161552170591159987667441601236716700297628449128724704933087513441772748066071286908502283214469680020678188129255949587011755386182893499872336783090342658326047202699839929027908599675867097563535520449832463040112283823066329488839445621860154807340723036061232967599218036618125430470527692606581965911548247592551532384899972263866868117919991183692270300051819524784556193700526099062598728076510051842141515126027007983377416354165515638073119198547810116662953089201323512650900086315659978058215053926363220008305854083739837014752285788470170357462642027557464525551609021495928790564458071748132792253523824987800866132686975389555401880939613756409198551875286710730794202826480610824352005311858073531652944679027557575175953602776912601187968770266187513410028207612155182786559871814875857064885509894908948192321049477682002383821196400245540451077327173488611251360952297644438727890239276307189383986202985914081760546228784787861081144819401575667220265856051815472927082437598349045570925387346225206145096084938354120265993817617384950589178979480225666082557662913273801299330671119913554765610353704301436368176286687123321820049837977854580349644650914383705347394749109463308311976688522742891696986213263662337051299079842390070905190181016395500843338341806386227691342837787008365274340909653539471914672664599333608183514220070417591129915356582259058778350732922994951083657360830861052209495850584316716694768049293804876727680922062153339482947449103813623676736524654439288323656970520817414262396363688427642157306113137960715435218879005309529044505627004678825940928862259685307851733167416929108811308020452146366146590201173194562941242119538836084797123776564945842337881103508034941125814070389154627701909999485696943267013194049523774033362333054936750199481640235350930556401561595917398753828763062049821463842122029162701355173487458832505377811992276396907242632718778456657078176305230220023539309348199547109383722308216919018494514785261817476875237092220724279537873455425533725759815223377516411157658650452743722347638578409493720041254874435758395862337442796614777430295087751611053937882629352313204373893891495412302605206492959933823227973913695381519298122861279429527098344134625265548152692116111021645000659433121000143187910271473563717623213233634404967436406029824791164785217627874032441032079865758293636496927903159840963292054819621985239561763592968875463677921197861556559772092281172912855567133776110906831643187095021553805732911306905717354098260345362075220243337981455685050914293871864728444718321249839375365111999212118740235423320347988712472796387933979230790568847521356163388932792528648797928231278979007747138819630292359590876078888100312101426490276321656122363883762170523160438139170012645271811447692524163411770711342012729468569408583208259453070259589879021166434378442800298181654506657345909418071230675201289276809908012067240271446177377239145022116387359123234270024157974791929254565790977703394087322299292551214975309834409440530311118607077305201984674543904140216978046011123776400632237475668729628940677355337703106557951374748696478332937324044747467130779994453873627709807746283493033503498392156398940419939606219739366743545771720232409905958792043093466918408119767322209439633973268575192325164102425518156201735695082684468325078123002469569921751209474877620627254437294089452533194700953413281541491311287913289454765561236005672123449724589092409527921217582722260755922111928544670746042886256735082456658588390633454395460657898358041882934252113169830739771134556696637509125091854173789435740375436697589121190522712592335759430603095911728585316027652735022469547717523302080651166954946394156020456633541824814072887872494923264725055932714767303911310470857119956764528048096230866246135898077885016858828973231182919224428339629525345872334222044125034067911293714632551757895960736902268502013377472262492645157730670785407272979852041354375472245859498989127370839661625919694998053125792966226298393682772376810339623027658279830749123073423526550741627996984344757948997799965843390307524515247238833667595474892077040886686693202833854884415446053169866785256994415530456878321203442102513311433055493908528021570675648413149561884680414995374245910521729350801843544226872619309828447234853589011081997845570051276345714413985509682570649228842731771608671437158544838432446392943687511922775655971313643788491048930421944812476808344957470530392288939121332327374021261838910640561946959892242855088928731344517435517323935735370940735699389406417053786716433366913236725737191117726647587972575199290042288725801930213904044526648115584202905905259903851045399062205886812498229706969803392509535706253107646194373246215865148105481517841061374794564509488372769830772331221179062471534000547202471143772998269959548223425880230570698676539968945352067400500738716130694591531282681144933524415420342009606453439714639698338836479681517189701912638450409424029547192000004758308121113756654409933993777548576439438504582508327041233380408025356876993982742131212348095000617131920421728498414387226803190977249124464169417062054484737198806423079730808428260502618526496667561318207233234681729267016438046065334909834332855870487688444728601891576207191598891937087498972738563997197133071065287441332363554980252689097410500336265238839871263800942623085106164147331457517688506915059021035300335754629719847529908914757861543383626541290796200752176539368681262687341382578191038534548212859614962800191931426522729740874166778565891654948812823872082555808827948415115862731951210901459828056873412239719622266372151087527689432423738844672264579580179472384920280124907481774790763643847998944815888406650911905507875012127065601807886141900841594662624850738761247316354177988656170603270662273864012918305816826958106121425672072502700473127426250875191670407812890056307670965797789979160830858724589806365618572836837629464273329751274907406556012766544928768495118971150631805949693010879077062321094304128844652906481015397932905115366193901500498800826527183134230815499469581424682124806632956918746613228741442880114109098020654287898452417258906434327528814386200994876776174322264892682958134342333564378154950301331538591383873331716330733652119805625457973879135795654574118539775055192944557277739728158813101272358761379079365636633020600018600226832695825147729777771839599120165760330283387791519688367204118335160695889828750341608998210238007698107653774669462295302287055578595100309780486879269537994788264844714117030294138162174685122945942644120565084710745758899651821933194038049413478090878361951373040616910497131958992811001898292160836375009714026756116055904116961121933831863634302587022916743667567362191958360885053993749808294496089181139836188504240969221881310433898426842643413545003284963672012221784024919267866320463606277956531469632606997093353393755399000666670450088927663102382451357889175377622863827910202813190686590082508641469163589030571248514740898111020241946287591308813434786204168153685214193463256312284078465837163247960972106639483367031584780229159649720397160913250240759886628884089573045235397995766153484407093400578342776148466297174613479772716569700508813447980378836707866109757916257299342664981256666945771912792116952992185784487636969942307604231659130814580105763660619069335874738073505593259175512033129297849725669962703263974331676439663141944818687361568705985180145609514110219438730732246731314922894824549849010575568235102594215079314014281574957785920510511634726681111133649335332267198467169653900374777125195085261091967121074645933241989068164687149614759444298786268669624261486519525416738800592300267607276798820752537232723390071724537260079028850030727512251570130997705025997660635406446826773883314789174959823528900196122075836863559673177231555644257941216367528009381358056126843772218105380484785399843806592740910743279427668629824079503256525962099046888713750868209834758704567883025931519500895314106768578070635336722873027860388591916852524940114353219305068047341216650208772387581858751956708902792474736419543855090281734035215114278410876566658109775301032277253711527999552722096175246285645973867488188663090609407818228356510964910402567409784758045600169545029039913241121192160216167492734393629637626777364877494419102310746191112967362618162787451182983178487832203735014376061587277893132309876267257265630377458465576790792238344414893519932700927843624833060495171712912719365598154625982728713873543785137901109418321040041421560822045867183652010044492070586694636138971072065440776101093075074136589727247099317788724940080288589428275878320531295339528111807981827353098651992396464409587939396136972040116894763940979549750216664444464142431674827974854451505499986669150043260296301597175566176776398098665367456512567534494869447534775570296440938314486194301305785002331956023014810240219704396672651148954729184988348571593888545994188569157714877706384204149778637134361689649468156437400931004707504092554029188864945705705230664154743268002400639507950073042264857060927972257979663279864142515359014417576592349817835435261438706539810793489680452374905511692695826302715893413913824599648242788348802008461080459167129864631083142878604950518862529376496725038906141237768246029677800782353495975727295885494555079323860308374269452626407846303992060691042880949191076687613818007066423660541360138567177671065726176324466238217931830158503482996543057080272897775131936073621310423820657137960209320298248075915986571160102025599767798325987391428005125355183722134351469637059093950635255888095585565382216186291625455013101178518007766235629105059996120306081709109598801141344001610713726264395269961780416850891311317340056630233112044194804617892965811674879276672145929837095987177418644643807236871607525842210025056509825620332841729246274015086317065584201331923617915780388161512565433363919288992503248644928239285591050969865792991295206805104678608943399380515102394642500479933546185511887934062742365497587426963064991565289759212711830430332152338017988790548745464172385321168106895801669365591800186995222540155856514354720364554611922067126331682061312687033369948297645128952066537532405214584551937071225372301420529909019021511755312147630844608296326198890876966675075574011011793818791728428375308682596644382819739817064223230408017503534165327781073190388400143545160054386191704828252080970753989038311829051669569128901768813812143575273340258782854441819482402205120607633653648316374569160136688572927956461526045959454920260299239450176176722574595134892984112839968216829971392342568541767980031322272062923197405064900502750101212085588399410624192488511471851839914372492938225888501392125862037883804664477700657666331503425699753658627368348977138832695737659981540954002702816569080635776319607073064308504803307078277449165092733266246207629171653603119841597529265456382529041776668121248227140249609408377083434980373061938750677644221513172791677669399035328332344082902787810404081224498891482878487338708503815659696658758441499182494067544320192748180082749544264683551456720669288061164075411259813627652148633643214744880768630039785731087285072203286818245202273295636379903660676662778524247400791508395561449916514651585672088727163497108474046680211777002357095439697073531666625263019029409540511014517591226952935636676052672781095682110673104326207086525343972477418552112588745779668942195205058974395992154875789201967766147143640176914573922209147590662220610818130125587789340883478376100336769615334733141389841317105328405499603295714483863996599989689735151654169968093805784156063419594716510933855232159330089875577341008092376879487687817332212961059077935202223025159589210861170067948108039947410803431240420959538793186797658962550898574873966804855402583327528858428661770593702021625912940302376167032228471759015745092641905053135831821643539822082523639092116339127499327369616664863121493504561712601697506932721637942396492069393313923888233563731311071831366555032464981139227059375017966413292857315084249791601371578517525604885552058774084062598729363416500646114868460297529407564351452819381260933739248115748737039480820231172844831026524688456205045092295958496447684730121871603061316291114588020312945969270409492240892999494288058542736036862750163851283796194159851627462645039560372072728885637571689456952923085993140397414881126167153023832392121504527562296058657202333896930078787506847204135680363767795630910135662739719407833000205109805428773293603268831178457351158350772739365203160413565127958735329713411810516531990429488429451469578840011923304166217002531070213126241469728993508305842090647883894131585684369477506767264691607122165328811539837117801971557552144914305360276599943157017963860952011939346518014467199762807191449727461890364893567638074203296950999635465017418334071918341392983306410477408621791782490626107465501735058365804520918460778959003891809093352379431244830720006612079614301866692725537077641544493109873038990863224042075753244109019683686924454770091592326109079692085328284488195003696794101068926556087401792743522535329643133490142544353853061739143059090858958222052822445260989983201705936532856616665314606926153075415157810287402798384668695596491776118984576886239092717393426733746151213103546354063870511796919294037727659609601682458964328481179773741317345441179633029003331882980458287921001025426119970120007488407961658884923859694094367379605336287500560318725048634644904514840423637073057738271916974372160185913206922528690971857227152458592421823907449675803628676908199131487307989988209187533581532393552042014657275444843340837035728990438698466274998951906641568205008742823643195409668017290203259110884675479607459072550935544362032776483502910082107164425633358891967560667982967251086325238818164966678142691051493294660050951636850228058795030025621089721037577321085105980941849405849373977150393851439388249358035971400576273131012959902847981830479814431616558414952333910130661937133466122687786963147688101373955595492827310724002163433321413005586605052565179429978460925839379582847299579529495177180252958078196994870916283262324597824780544331989498892054254880519589935965216550669816164350877136830731565209364228324704912215539668628111534866471893572067066618318703858198664994755932739665194117553962352544086891241367833489502252078750307514668163526447346066502665194894442177799845206272284519680236987248247967467343004354649761970052135994937617786708505685098412595796366078860035956862939636690432140551398651863805138940834487643538053862587671841127257374026242606736509738859183353902469878642976880194593741106256020624792619741750253937089190995528027161041962631363957776872300527881539572926095419531677589468925136471813961358753602989566185169274478450122621453764249317828631530314400204023974453104849389350698743691167551365467624320260223146173313899767608243893852262545600731157819934840568232244453008331396461335836306342542871997653563900666983005432640311554386364567915695828335294197315955536629749005382004208614165754409916219253320990324746843456390686352284364433855698461077310495864979472315052967963990179649773762572980833255368084934617469798623852568682979603211351421990681590444669323197813283986002455732558082399958661998546858273477577374689338912362320955789302806648459845936281925314884189319350142019930979934210954439803536542360890031703483016749242075231063649466601151715379615231148651162735069578806140819674906722901826086904889307217077330553429163604473979287618380218093979070281949972916325045145545316624490414756236799319513846328917280350568151850834302043414433139698073742991093864224232553027060084404238382280200332231584543966655716810071027929704005944060071021487830525332695385877382412699552016473462007921239046462213492530705523971786656295790578843411949876566784508168754910142652246659441190276725878098125752980314413669667009572544962095001532715780048862421040590712447076237711263367854713175731240656276186920916501140007519682396151907861586583880472115848969631808777063454908551218617532802602106589702084761040742178076572089900528283246123113371986302102867645478312557555310255827598662275557077264051048010120537441357913736420713380176410197111857014144874398052683963598085427125968283691845749158101472942477557894710446496362123550567081744575013398015437841835638998586237646984154539883419900803769660855323864577866453536077962250273148554781757492408615271083031909208143565389002179364132351417616766368771737694464079045886262719790074669580119790828492390995417631104999128012562433533521849357732972669279781317166843468110355918919836147330735518474470889720477178112980735967800701994151445313347612306198546074604481587647599893741604182698843736349379069182568234057613463618373098243403874642062393123439707747819481873159239010085069553780700863445425952759040493539004706052733811991434082434481892260337871797146720458659491714625885363917892643371967194579488726592659624219904817261545721543748980350988974297019810431229426108716213126831691279117699436569666503397709483217450695476697483065704366541328264868061495045669817356338088532719752564333161984960539612003074575915216474130686474043657844957046000872866928051445525734514070958589762609032512617355536071564324684913444481952266575048129141605865117836395640977587397334659771770024206867314784165585369669917216602619590306972089404102170434351805669875933179185512360210320855518677029042065599162324221136486608819026730341589335466982148371096210533211080230305440628628265476252673757552214993117023675637760931030842062335141540119237620806486352525900663378040187886139447123582198062020647081019155728104735354022839386236223136711400652521411443019806948908975724684198433860193515692003905404889320032785697479002954796207081640384412559091309854200105956317214817764786579288778742158536805613229569929420673983632852677889294510554207828066987325554379335675446805053160334987335832887774839563849071559032298215647741909147780556004882291023090144057840503928848456850419117614712762878037777148975052274163709739019728081725142551372470075197188595903400799563405003584212028861598082520671476447978354360332023093691237816787439722185744937574183768252278085000102357443287308372659721601784584440611618822095750016163611062467238099198353041345434645686479859690689191394751205269175409854702638279213535289678926595992862077248603667675409317955862256950010262378303287935963019094439226526077838517834140398851411121940061189069639464340058295563690011442809229673085787524531310233093560948175541431199294015475699123072344192725171151547501608984197837018620581180881730986356669714320073428711427084191630234804734133671680099280430232987802893616015159951965495102090519191911256454301952482711637072596239376077675756168468562271440218913665256994588980859829625146595163567103680930282076288309927191843532844231879853052005102160197577420542333583110302394569382365023256062808830748406760734135495514740646704827402097398982776148063563649658607336373771779145553008189903069603729376679774472483605759070698111100619235869387623369959148951403796909620452264833085135970353464326996981054213741314145927052521118284382281971046631185819360971142274418305637865475451224113025831364442460928094561941016273434442624945930574418373769225767081968210889595520896578360804242191142266417805561389468135468273670724157439519947950600611188257539076224494490873968204699438733874321863319821641581141735742744007014884840801118833802139886851554807736276047736070880796005720533273263493840322249401135167213575847662903154195468910947874405691847525111018439384338846238475129372982031408580443764393757356326053964619925562338664035275779008435478841704649028214556583898026226833062417319479537602685219532781159012737800768770595636091700303165072911897695047318355592896202289565140727958507266094200296280050531551818555359724937967149083023212843204232607576359731785486680044910621263344866903478577428797969672659576258346725799075917864044932338637849482932071569818013320928424842849361286546783469953994884662971032054291555237442405912000542218811875728785562173046395980090415763221225288593292710947719751874410975385469281161948848336811074839309767194940752305244531179492448054815838153419687147114573891811761909681138042635345353896533528000375095589568164796844588419114307153321941530612758092546494408103999600411025284201280402173422019029922460282318137250842254333105838358542629633215904971128269263969347025576117631259048980111034754788529054024198512122874774085701068482186044654701423729993259852330635561298087269513713042549128054682231506668678977775146055755636837977930516580896337425760404569358132334639227989558048236101129389260083345916249561523170135984777765714650341585973884550958270564031920929776064979394372389184535264545658800000085770449715310895460633907642216368707184170815793231376609602182753703610687898109711582633083720848966158046252193051710027688918266482265294982499766359238396183266915221685156748822734651696145345927599343764604981967542308498260609057569390086097609643230621217522770262500898585188525326749652724328150379386494417019283883966401563908760781027182689015295316164208710390850337081284743938436703407226783845448120446225694901774280155251189982587071124008748474702044383353467164726075734177991221108736950709099866126817745351547084908736702082285847339549187352071477299907205665299363772653369476271184463617962113326041634984830387335707169597091557598500177491182519946913635757524867027359127202688301208593508793531449915198563407390212839738854707862756858591224997778466053553845919144768069901715684909574358724496363592413418610014612081667045230106112469921994771962094328158850832626280400063585353793991572393884207469587343661784310396289860561338214403646669667396354675717446819070385238755645516673919626557789882774376432218108780638891534890575938990865532091530797231324629532819146801382641332484490449502429150475134948479594581420404774997368134429215725053050226302364871997051007088732577816809092281385495476084513249679581522494426950689160001726943820626926074653366814379308220739662477337573799420912076572346181984695541456341879056625872575375454915117262752374737135406349138326649199610863815027917238436631321346242523110053370121132564786484416325749320858372975267839194560543265872584489222688459950186359179755123863152748711449809160877611975955371113681498364948988717247189498913909448075547314234073261192606337945631082051837819179120000691056106760495853891152473402617485959044613360815915717302061461156671102104807683416012332449196173767061771301138825730150226735747403529832930335144641113147938155165288827677545201787577646644644954195782870019725796100075584194670736655066953238030011705036031408623048433150799733298761423609733143783316814566119427025503808523685115694434143834852088720988935309094074506468329795726413107070242915112994316923725242791921987235659325602277686118000045714985147406242070160961057419444004058897250713991734531261101863606661510172059294369118428361459145282078413830437414326795957513027206866749753521729978926287963089378297355083621625997290580670155902524296874616176578166997226530952974158996116370078870733085974848508579632623655442218816884213979909906219818278089566595432997509310933406562657027726945223847077807045765324659487133477094014615378684550124045467475800488204734750342034529689371915966826179643865181945608817093651571094525046734152925833544826056637568372035000118008730430168752423985300031705580119051504688411033717968654667745930589774961767588011337529421656138030900603482244457304362940746252771825203647979545426660016475797973614611700717810260355548162296485949911615480127214342563713696000880494015779873022522977890312622555121331722755778247811510894995807217531343616449703320687954986508882051437826961682631122235159159428383731865190469800478072004868328373466150331581238803607599458402466340008245767709631511727614848550379599406478359237231830071356401153567434790410692290590455436037591702627368535948662129273282954626130484247109764192762170586152295085236978687755843253081643501212103147149321941266063291597672033838582934657982268982622646061896022442761358677629569895204944937717517318629685797004862944442806212415341943980154968050360861659796668287580387448024027861301089975600368169740229140852768772875518956766219761811752089503641879401245117636319641274580806479707247548918277843818902472714750027228555181192851223208779095510175619647068093684645882468600214160162040598887825908339502144622986941358340968162729696521998357335138271282982507748011460444987343795225419839756022820773615999048735502925364235988928021231116248268109791380806872714356590822633725507129405072264489463966075606730960654687389949822252935727882598631846009993385414007434093137593561126665491458536419999552202472605959538808436494121763513133392214091856779356645657329585596878419428092088628551480671593084454982273583868943433482425198457822404939484921044992124374718202333271513466392450727950455172010737745735561601212975986106704479362338195253674450859726168435860102156867236522771641848888396656672613301313909751655829307522858762279626119843078550347502726130111920186459004100877928126734126512804178158773383713338148164203248485385351211812665467068271604500405814862722001250960655430662431271477110989242040040052399592568265358554711574561353294928266485702110823045149736727860601789444593374264754360447523388626765862805121495130564633099886333195731585940603490515628017185236975752005744443584761399498601358644409435569142036643591228186053876204949794628003455027241004212328458678385269022834874140099208108445341376810455458659372899597684991343609956151224613035004832279980189243360935899324980809093251356305578333025625477402817090438442198356102723836202128857428171786183025270113039090721842319474550495233891656319282701575201682453866713987386368887935927887189534776979211011698398073801256415356685505090492515851020235830170059741238671214724401447839881053800704968006067699017506585507202820511257222123217217265671577593345647783599003621856395530154904317563496957769380830835264058120728517657856797834815226396603241343548252159981604665563194226951648879074755280852770451204311518165836724754177511613566114528166191721909143326893470815909702621490598793530283015766526455265470472625583447009423267116323503953989683582335268864730638582463733044518150058830493886441252097975348237549172338681910416271200098905372039358844895930047664778422641937803311461676072484789951306460028622840588256034593028358319423441821236999798369904791666554055982213672178736173375983728198978603018849344403595646925417101359100466112169180949948205796845141624349427725645559354299635806313048982246829419889948653344127557611860657190433311153393624997406434621753759683115185387472203771614419944374015137736354292973565534398158091058272602531536130224474414882092358814725657613786015301617491921236680278378602056610920992774434179262923201171654058293279344989865645928051428503776450026190242667426396343407516303560071641020877139462290734122807943163109732722922947265473641712753285074001700553408745158073176710555624363228358506847981630877734286804836494245101246539873364165166263133535015084713372445049269975583162468007647404421661646770104322745792239052902479657690841463307384264139025522874876870600056747675464622488294655934380157046757018813605059864078297279844897779949408173693409339734291644219136408556163510864548692856746242373428260883093677938121532584395446214301597734951828324357574035488765401297790759016298122405204532240708908130218625031620579641800782948251310350278958127622633553975926367544584848873891111279577058191929491802264219464293176544674712800196868120203382142991068935090927238171794393653299507610386140428637616386443104288828872741410046491833966111858329409877603023395853369004598010953307047765563357415644383534321149431061719463905521302596079257622291470755934875002631146486424181271229714244948078694383307448030067605856718218184103917817658952195505297671978591593841045809782526200003218640423128427185708367038681822830170537302436736803766706937877290772561929481370675970521303044444716336832475720228170650527239741129109403327610989741268060064300537066186091566892860712511472494508112594836950470908970660735563544657608599438342515594145585820073997539371725963769833379314108566885891316629755641543012995874856041492411610495064391931274271508727350510101690958887686411784169987045737686767965956185652105194863901876375408889091833597425544334655048356053475440874625189280695683044462930788299722091763588439360333313934514305414545830075399520523505524197218872178451826210634152343081038258724797833693175062151131210218657198310489425382655868239465574391510645332012157591084809262896026541445110710305348216291524154629597855981179632047233437445122381516912340873025740068448171734564217543072664267630514898774937555837830848486798442287363943018445092983399971852762469197749566279181385879632933984106820918556702567418559654186781081598065000749977990471961797591925351500755358562696368152667297997238080039692725638765686428202148268692104143446383166735457538340951652264272093527800152991239954205606649377408825935675625302590091725773704255223575150191831805749138589838630291837898725038382776655423871989788777693101152015941488782305806101922048320573484956178023245951922627203284248353506131355668080712246402604417919455747698850453316985305492475808653730566207104611993127309708344533519409241703785401474801962620019833249812554540727066314788323569787111036435923391424662668880540441152599057785877302729855055100281672611859639435462270415446677047728890479198103066967615651032392479837478338245534899083736468217694858113065143021209642573171413965779076775280484398371455307485746047798670700513664554998370235476254026486378860760540108545834995432488979737968036360786070078059190525945295685599953164120408427624538680730989936435929749984228224917298434745421995486830615147305073626991918189287915128751544742536979061413403572553336423453726312415321419643673638552994596812486331833187071304205844071104083560277237482284390610728822845957368076950014260207826582428855767790345951190606062404455757359625675471899868464285070707492189306832439269994308815317808574217509482578955459498290329157298205559717806596726513289289842494753988140802018378934630645717856199688680296541239177667291002115604350999849789212463089707230768026063869953475644639953634794247510202232801518685878912814044751347075351445780443220544989484946604781463972889108234528693766804116566696921694152512715333920961120695170687787716580803757553193665672750263205892274015099125144184565062677355448215487821629189635774636991377569521994456063262028803283786693078629195228654251816848216450472188519624579133771276401824033019798953493193725920271977589342365033636379623091621303003848714952716586231435654322965850534714946826779410878973083315008614607806021514475487106303482816948465161449370202979987661007905494687052851796432855447768904577004579247596861393537184634751421427257648707208293695420843503762874100903924975621794030303254319150449763205933613773512184597231169970085922156757205197487991332676775103453209187889423149081430600164037398108435915616816024754684366244546619510112389226993369847097672354957645977174512025335588908150261224736097372373168235659397598954130027250094756970275957357900068293558406958094288346820769391943309292033299499686585518300725450886181428720752490785523368947027588531007319057927216523779671970130036493731825714320255141928481405674609451067130741197869450539957285209020886833471708777389099353354589505140328149867465792276330612103794543494569504305400304864310684797319200609605495998752306050587577289480853479438891835604579078008710078999255840118005867704222248284709610138914540497824488585201935270667809288409379862838469338413697316829269643020880274652347908889590332218756228095059838962823588755434224654438849588369068088079557587564503166916892860966979330466278004261525654150281802913770040290314199622321414549939860826407646853735905311963414260714862458816547077029222665906968614175040478873784523435683330967715062010428103468848314734421393055468067300701221368899783614829538141585027832538015742149772146684490066166351398058054043352528573387771200060086435935650479641003075505961907720795408674133891792384005675747109876743905735242144104200910848902213523988723144270823016348106670285072805589328636217290028480166403103869303630124578781051847166808730967975325497102251724538464066612889123670136921412582138014863240806736096984497189559398276389011194172262646589035947916890826006272813257702348583400106938787945521318177169662192050247505248780049573908040984965574274050049401763534563118051283595452090093811612746397295937520416976295641980742260726584695207896062700852936699623060233906781130924185372084257397565643845280255822019265877950094853740460504698012710947732759396614144547717071462367907036861345381104568102859213653441221072446837389824870690862789900726145831926571922335216934669884249981167462909801196122444057436804616064997371940051974002980589399171982166355933292642904515086635226461776744133227255500915222853868330587712950397901705324588632039402558783350454923771879484522650295862730873688069323879471870289498909740208524124416258214661466085001200469159356856498110044474766051618276813647823630008701938921066005537528342620110523148318752428281402248103852389879990873141012577428906575227296955276242420870788507614892241626847215810090038908158724376372767571023313902589645309826768958142553196151663133617050565641248949637815288194157330878984187537701054412686799662984512476230054558450967766434002124697046771586800495651872378379816247957186811428197251332388532996560892966313629414853016562860860109063106781898665449928642280651121145370901170549519647588048179348094919315563161981953572864660620254194463069502876811001466740425056923321400492095217266736679197903245213388313978965268363206946093648011780406793194710934204579442232980706562641784634845831121159008872049069097724191088558957848436745216312264079536915153666117958351367985345072463900800421324113781364668810818009793272374471054826034089862250907289978841725060433123728346436881124806416582188507740898671183808446320359423481250173878061401516405551287709535820746792384499164381770175700364321054670418606882195292533941217710959198193251674877746432788734724222435889753599547076322913776393748841770358552129422579523441475819715896607260898120139823517249076687988796757895090728813863273301937719658217059974881759037340831496568055778362274325234901219274992208757540257188993157816405720619742393772647769880324590826681966565865376539745647614816102707330888715077222148078179662829794280001281905055860214870638628658423049001638405872915945061221957493416628828134547332603438520684719064796293980500477893315026873762978510080541314535225230157543709390177698878468562055452196337575695504294497430432504994936691964757808711666299758698416121234985044585580874979414108260892249118580387456008385209478246506677686652828567868621193062910677011854285116085929315593442353495565960934967612007471363178294147459451279657823883424929784924635572275625362530480650898425205617427890729813344281443415970424655556466158648707357534493596560233544728624728106459425907774349213093830371850782395704717025974546068062851030136568651533215696819873451243551887245022646783785223160189374572768259514286085244134746421728282796135014279203178532658140971492657752965854386543200244057505676224625073773048469619044283920497647125019743488731398026225504876003061337467699302680870714994565347011405829686597102450512050913910411221694981512761166783293187081557680772551186097401207002915804880122480639680234164811047372306687026006689336565740408385840404893839850389477136599725471543175769891271479481231592404767097543422584007901531157680630016394883914196093396863908129764751347260505473890049830383083756951220185613735101208407312275810280365880541165033008486645756726236721943049896062983830898274248209449566521834671798322611253916210867603125958857724176482450837356835153269761456031109099861210995277147106204175662082707646619290384598956156615324800709737971479089625028100270632262552836545223235563277331606968863347212155022672551891137294116098753645679263983221108612191250990836980513414224549825911519901893444212775260218263921436616837975966601092427433139149819815154148282542855431074589608922464992607267958388501054877034680407156054720874886750878175304910316858282449694437883879419887806347923423106909158153014445741172271698465149417787163648495469536640604911918177403755191400819753998940902206588736483940558288683052679149107128248814090487813384496366077833489009819822216558222351113516831949308342221793254518940450837571861358398642790887600844537639809432149034148440580615709519030880017500980977686020154991328830094944003382789094075071773963767584392335936872942712032900023311439401131305658448741300641950877497826799693979101011458303829558111422246055023166882022033370267602084517837173258038962456011096651077249749019779538121671640500867098762879775780223381205353413921177351259452438075655380073545431766642944940138060440542096364410722315284209203433915037978138006735708251093607343707164456965129081759535466148081394281735581478477803236758412154812398706186825342280232485133272031141452176596568661959715757293661834658994985556566069873002330206932227547492719260658296409740716047964728711907568252852188250860135714630079363222403481559161162149811617319887260287949804617177218939830450576685473889542930453372690095631515377573593763454336013968033521942783951280307065882886163634225175717400611592917959874979764169230719349850495472634900795153740285200970896410036350468889950413695809755355300959040044247490755956959208589724741741092823044902372280111253989907238255054843070903359927184047166353101580254597158674062091709702425727506337810004537405603893525036801307864722302356068432247267997791968763161581021586580875674234938369689641483495758591297248053699219297689006851682864049244930953817612869937827449542373969793898923769447163274860668772414414738461427723106869859073517038764665101507955387048492419423035722268740027030688497287164188075970937724998100945189153702551571169186759088535387185752980573988892411060442705468151832207777582869444201217332477355344679571134773347846546507861167622395126258479102578016995715491936492888483758586890104996193942227696486358774001379723643930590356604878851523283763329645153707155178980902612082592177786546166644395673418834759997140274554603470362932262907006221350542649358917323738815097066824365475511777049515420261525124879481378461755271997642284293794524293578411311120312090506879540919788747700932804995529113888432260503601465583858383936741161761405047294314941558876347188137562304238725283831243263095570202463428263877556253160777826890927218949526193811639310883094277627980688533238798264029990571723123115852724356890784455909378257046436030326307025371760473559235037072512153801814808141873625682895232761161910405970277548012650036078354086255090013612492890152949724556176601749278463037552175225015322385588691690268285755964884511151941827879672402422695958508025711121814320525302421457718881012579363570626502323672322698600044480600919173837145172304576192739668329032370184388337996288327812400733230127789942311241966182671366973429810716053238757085414968826673006354781385071877324160431399061967761910871483405617390078052147069302114220437319537984429976223048528370884210123633558191020777365497233508886596202066611434961922423969282843040178417378096799696679175958706028318891298654720691703748032823927503303615047770753848881132258915373728114135896709167373233653352515009328726937236565582989176545706528770332543371475146984064808411325734528583964716191794751696966446410655877226341805086246727877879541524386694411480727829824337733392187035569418384907823792933006486376792251276681620430410341708535403756732624778979365532394528196346688002213419896727469181874391680107878312518254475453418869150746129079959182076010453234810628498270067214307315364966787200385071867459003862825532345503106291974633693476186691174198842348971382882916539625531016646619030029741350522642230679823733997711661006661837350513707620384527772201945985612647659730419667003940595082161740381767690509816755086275717591047027826817398883386988262792168687365110681165378477565994580984503702693278573764099048270299124634748671147253320646197458597743244028735412706652206107807155789118667944933871946012084603521690544884200429477727404933568855041231768156050143370724268646826006513412385711259918782906884518547242139183271274813409196736905865576524533065959454764282836750841115934457761021815868339657246673315936628352889985334228759283823927214469095874683832494560625082808840473989919158765538827007903148454531111631234941415866888408478370722032026922046974390924041059135200711768495862515234683881854897511142243640395559118308327586510855904656903510148660402247286894067088320170285349920426831170337804778972263929035523633533932262830093782910261964505831305400715039585936531521598444134212848729390443540651346466309078792838405209969211592316259944942618292308697740167445301312962875167821540740598990791890632684386404891058132577474077465563249128566231283948496045555136682555082514282710014002550336907614689633131831718533244562665084290999977785873987471117566007428576050788482631002028012154011573683340460486243934495885286116500021468896359674670162963794042940465257826581140191272437577604971770223677327542611816267327480832929265569381562926850208087644872102571616479899845171255255223875267030090033859709267252089838485896879649282618305605715854396579886776437516040375914899271302149431290460836014598502847320460339964016551592813146237625235282968052090214778440902146558054196286916316445349028824963940429094841291654968259220809688565266368150831158695571360177622092047609359768014414673554086069353997703183516708239176927224651482940599667376104463238091654403190616921835713746614434590604524521322848853300264914760326202876738768317846583987011507168635333387542756614657636733737704763834553532014092743051674374170264952630888670433603119829619024233911012691658624494916853668235785793605668692772045821304216180221542101855700317209451255605006722865475880812279788243150456372340925763923084707880339380522977362946474352336298755886072169855606936707980707112448736106047555098806742085773535123177776895189892354332536002749443461587554678090095001254821790242137121574971493227672562688511238212766832797662931143449486540873359210533958820617075185158303724834834907437666771556480996314955699093797474957699526422858053168874706844359297923740723384823392666087486732932846244338839187492309921761484796413874211304974250727208476805504957929449137816272777705465299950692716884655741479582053671768383461060734133948301917018903602870412004997998811793794681345762985313529066790521844998768811747587452045234554303920593749183171892417056559814920352330640010142158652378034042536309681318972144050912799709148906435387777856150615134476045158017265575373128692725011427885939279318886872577405013899565347129158562044070492433643191424513977973941100296624303909248336965954225583768633758264026573044054569938855932904164252512234493116784184353805473363504687229566217936786487566321026539949520120865846416918255518672029560806751327087963664022580999022931940339042888511345458461602991823328965909187688198983225282296253147208721522150573391311566891386496559049584721704624011588925458389014630652719118347196970726353678910074758943112382489650190375469163504368555387205014708697478491001406924862512309395753079647743892184766439184692194459226797948781200091607166100396155858288586250699542864948018090461141890274449849679183993924907520585468493985268363193013049928289333311440023757841499975244299118782493297937757778833888594187925895862133268895559834575921837222304513339278309437161796279721467073523531862641513080017033031568842291793123246408886371375438442487002072036231032665576845888542684085762351532874664038879983050582012652848891929124050817782535187234033746659572753604067902968220418799460792275717949557377612729264454020605203211334240118845803163237496467222380619273980641709228971376139956362546688925735482672656129672565590690032582508280739686583906347861115637813114871849058063112356400655691623648595662614987875836931292932202625232987520001126401996307693132642054609852361294444487454938045641809911562468786488787895033842668589069455941178731400364065242453390874414544524348344183123965238956256397396535335184398136272191329569005549494704965315418182032305430562292311489834978419911792322205550484671250943782218555808646757573012163154044019477907021978136744657853376490819202840586107716177607805855245532543342839380700175045589263901903588268141585616783896176467039686023547396476370050937477656602236524786321062067578145516978564389682671214061740825105527346843470405659743226855086103892050688936744647663101005930523679134142709310719017458766751670217527738463569012134063645581157032269272496605488243598107116917109841456123502325718299961857298654579487226652163022064300929293258842205325916592496518035180986531870211343164574839600037486631311297415039301849028022752309351421470231885371581133182357676629073566258266277223302221839382418307923350971703408320598699676408133796656778766242914699130309231198445417935350506023368270917737804476991906880622984710549713946869779094648498939371711267853962837020742922427239264522034476162947711850456329278637165873304578112307452231408971765928706508236848524313837899959302522000226036322391284608967933475948829284681044681931772192906939288048306647396669291749778610046800082593355942296997793622553930112194515591303566949098442390175342324543151954852605125170384244336484567170848601548078363545549763505342070159046766943327667813600619549834530514236998427647712823187160413852828365622937486129300876122394736969954102166075387790308891588682475918102762283642724915106726675299255251819959891083541137635230893450855379065179272359067813950758449976719549825478619958928024535030310734832578202166542695982836722618295507458200300919318418326918317772230280351578358863825103271564642025318633989198357601793475122822659605547741305576911728516352852449021859107739946745498025844116244573674420084396302978117171751722992849425116108030758933981165746824277203468671225609224608896436710689752047487564125069494697780196004544238311392481689529656777421030389051373060420542499732804723387391793854899653336614551535913618622700908131545266765582944949658159993636265735295703087432411234232037358404016271547570229345652874669487551834342845595061332873597856790614336367536122024907967851876829565038368802613218117133524366775365942919187117793455677163401444822565637889908088208023129271795891416739410964990222462797257244670297411223944126591977534466145496932970254567698919909882262138448460226124061207579917454772701302643536815354579839599291311333543782831535102511576022474293033328728538527606839787704484264951034981737086178308834218806954343325632370256561482241922680762538659914628776365417014009683264990369932138141934185000433672677094857007436739400258390461942228695113394919819004897802497086060213665461034370043639951636014652306430988356454263399335267623550317260870416376165495045873077531468704842087160846085089251088487022408769331760029593617407885500700787261477667885462545106995400688253187834792912595754591068384180885703117071969713781502872449619424135539126593326830608254583697725358354670799085278154030413687291678885093444449059121144729659697404536793470060654973940468503532793210451180009064303558153760935584606144802521909544057754784082060194288920130133058209395869338865960358467899317749368350129493086542400967392833695991471102172986597043551675137603940836437018271585880240228594220777065030831079494776644879806190196595347591753638397780804510001586377037307371131711754671915109851672948620364618568079038550082437023252551354890482958056322981577314674793434841575601748493308415029901027315898927055253218986907554811877423837152707002225229837467674641202394555268095879743180009435535186782566258577037427060426496014297990646261499814392066474158568999094477845085497876621534204129822368519806279258473454635732505131177726598287737932772399188378429537320871104157374607313788780127746409537541840178795626432955809402210635095743897028920741054770635946727234690119035886124484072597993438045634321292943029228382716637978326920336624244612528322986169947210259862947593352724953398736198635667026778284206668901898537853020226080948884710960324821601052657723652508640549276212351162204463941576960688969870506834280560158457864385871333110381680011502105572997595497646069101813620064586281022638148505605102421746502422640679274447544935861920015860325559520650587585432368453087665172527329805658667315758365898174272815199342217602075815055214760012998592092371999276080723506596861556675856041293890789714901376851397484335567281026070833650662697777592353490205338748536020693785148292259719506952524762451999670779626467569260716665552278759187508819582639985322700475236046366851505926852642588329697173116643389226275631927027766015312364752995683310879062740911490244737632134931450928720596315501008485481011120867529349725929343518585408821855883127586571193840670852755770067561452479960943439449365845222963056936166617037835912849699561256082799215449098697569503157540961572725771538931869055484904733367928663735051457698334892421774626594270782599336573123316032238691305775014134615117009131152492563359160221155457336651422417917775410056210864827280995131829062384343407108000474403903962972017450521856998628333888584516977934828535231860587216757582688450736111879672446302683117135807210786337910688440579855844811866193293066508979963436870978095232181509713815472891556105117361457768056371074769029688105548367577278165550217431335168517300741807437023857206336611924496411887133793914394984639879748261634725587350614669740285428861024561615075122619492177180088504290951947047013652808684217801815121443384142125717483858436367098390491423028980757617358686419292102382853178166299763799466104298332967160456255165202651800196324054851531762798564440157757956889250988106927016612647737278850190850733053625036697486265219891397473492676141075791974854770822951226464110704750127918763709835603545780566854705026623337192265221383110210865509384224430070992989072205128261198301805672815504614060261633899819317152122693551793245622189680766360480779596286078616621532765717518470922482117110595574957285003584830464510455549588216314625462877986730587715079299060229730681073796360608544035359422062858042027798013968554950408420539883882536121981528260700384999490589760461795458202413869248735684806708808016890697996191473212704437921276861555042153253811255979539719495182493944630917335334722761133979997572447312124070447584482917188058502235494029251858780322834836651335315054701922244254429649406611593633768466718290202274416943100833147212444895149878901874255053914087404625144393670236359818074865841741420600011187825094457781414187648681459008131409301314689696901874194459436083661500954333610603426994294165373888987978150733144766949019123065142133653327526870719847650673266787075730482582122001695675182927486610254411816811320845352176482839667333609646617845573397372770452426236912526060515326117446093931409162856110179633439285342087314824186049429224760843716258119065088864660442479020034983076194458396346163643732416716385929125663316871033483307476945326635395209834751612133180573435553535410451488002511185252729529409356734203235644837399461333592725664275881184521780275513914194839036679127071812686753373438736126254239328521336268147449514084142380874898987790074308893247160095453843251447766552114463637587529853563402705135675300753791017119226790125315143627761988987867356179779098046857579261842763621566464083137526810963938458535064922654667834462075217634872942233893216918395731370004754322666701793823186011022600138970098770919740399587993036432805165830347468992083868536592207367274234425874603545131212885134591385383338399381249725911097933308532054714612638663704846339472019732377710951995509323416595958128819848954518060379746252466823187496396067954147241605751365072562148629831602875777442727703668135448553939082230216369709834155845514911634249801693823890287667484178325728128102416094065638418037044918632712138791738904570884277378463297211241145338864415821049466314543686785888058414435360735098153538507150593247135883383950983892836984550124520070044950429884351962874400786518958321369836603999605160753065683832096169149197577226015084602689526905305829656418939094948983829411535481477113860569598799548483439241048893679720476309067978963604019486964218568763669024328918949449661304716471438617197748730321843484114529474257237387831209091248440023430134825931391717458513015422120212074801886686590619918351038719576132206062282894244967336175831634035736804227795023750266990017952334559702015056923149224882164586789793319345845480937059303190432571927048702900101427975979564679220738210603964118218213917008546260870464320497726572604305613386791345788629553040469339205079076565191940885766753761963822972458318458794997387834706539705788593280025918448076779340082447675467123199013291469220650243501049336555411073779849406972564828541452477866457043137644564216880609547587249871174966939390852412769105060067148480885789898301779842819243610367494485679629542194953122197892728600406701047164283664185117757010986856748559603016317696098905020466082745646380817962283167041477911121622036229490634093913134125831758502512870893851331797361777855916148453554911752190394327129933528395268431477142330812868713164932356134239926991460389078224615104241150680255934523138673215908324431888600095862379268315267768910238160872178869246349094433105562156597471295575859124383876270540332526649852844609631745007393928793908804130001590175872257449650340963090837215939283119071160448209753794013149048568469048327386392751691800968964120131713499546815468371281323083327627407324736674327317391461152143767060418217692566963485274228910768419162800917069758497079839077839734505716524307041293932765899456248490398864323341153389295704459782403152582342028333386794308181233558587893141235458655772891594378226207509525409032588911711454215237430030523688052068775954169984160323970742930424905144134184503441984669931647883012404376698892603135150106030193497305877819355796442366609919045001591547352794314910410585051044043943230109027760078000755344594736045070432073232376479486713521732453598850987699984602556118479265345812472313410044716199174263923124622510706834229929431250093763894078460618027984457059329431660673967566273095135486951925708575257477144394468919770417419444117456842476049432189916417159450831929274985821742380552737802030225160095214354444129089769308682636000349508222503201136146162968134252623362928137689028470459337766909255694685515168672617681644886613344674463431557382491862674513988280738152818750034412843342351804383074946462394447861303197600420153009499931674777456176844258411272155378482173298166405389389698544916190684427547925685776450570145845668163011637785828538710423370823308923057085792995159290420468138187774253762032258421808613809849276992499356022080463857639138110512344576187099433508432053505802854623282054228456699297194221952493791094721457387340453905050923831149403053457086777695268284806554477397191584883780761708515446240566453314015058568080775164250681699223627725268905127031713227115612818545268411746512089739142062191155622697558277558596185453751488194985297905889439964528958178122729727977390819917357598216493745773451806865779781554880520780795220904802286241420209079063551769765755727516081740789427841249278766623360537013220488020693071603822643272158228748189523862835414578502415206739076631224211923649936210353020594624454836554026893203543600402159544672479923736182149732390511937229965837615523906801161681143189678043231849783226159251581863592954864901484750328721286746478072164136750147874313046224591573594853615586427339872528498072054770523891641951879436935770521200743201835352576360681721935689821145151495088832555807975005084060041650365540452833764793568617836438669705796029348015502404012903722112612159158201743998432450577956303439066165568100470468468823710916229795145716050458339297072841095182091619316263815566632325169020392816854368437654526699458900571293889213222397742105341262684168730063320103755347316669688994527355654704409285374616564088877376275342690542986896156016112480643970325707358490511809390782536446351857205997370327319078505686070008179555170673509225004829770207531074672811857106267820380605743687242769671407043990608818461461451299888673089824319163020897376720177020227661495835406206495067087688201381648982515947263326691277868552084358988699103664788205132347823161892892998406564288931506393702766684915163069853065121788466982100668041947934899624417803046219330154335593956497578272539196352627510030157358710304433662350446058860709098590973132775678202170622270736503012387572854735790652636191612116836191507124358597080143176001217655876865155541186550330359894009503507513562102521094391637643563444423529394446988439370386396504110534871380121008870261258844659462094970900422834186716439318691908069885091031853135620667998342644211094565900250040850857925120098745897355134096678334114759112700556601084936241653900456450413842332296353588112159289595807102076937948765568102014515125629483501397695098504942133711723720492577630031183673511355868279375156794597639614121295365732636846254017287189429547601473748759971710601522787752109917517960138612756819899860450841877544283419962814563289004219121976433359078098469330350784142307411397818059513836746055335192813011646354181483775529327775054925967878743389093262901199230750981739069811231835336191622544132181654266010756917588251619206982121614021904344769894828380043083308488521585147737966146437182034905934571631558308905670427886070841340315726199216895594140171577122588542952174333245076350992429232524470586440813953442284008582091453608778856973546199295200417068403161598147711911855857117939102250894369454869645188695664019878364682293552650680384725834617362377078219985364032030952683254118258011975130556351295088958097373826068468058873986901131666085739394290803018096431463240425346004885790207431876164709209222395664560654768496213104151146508088700509673231307982711089343585485195137953133689040005763957064813677125103639527966473254597985149361541529422241479986047678225299492848229618033791092057221976232253640439111001776429671353717065482068050857898771601612917301344945239831198849858772431288187190717461476876850394785157288920512560931986640857671385962129355152581949052635780059811966139927997334870097287628806871868537443676539230224025825971453234309107315865461576629340382580554716006660394249840064080886959619762772635454791577491945308983404573575927928857601388212133360101811368391788427028535612844046299579996715003532698822047081878533273640574598395356104883998385732976308964526341701733961074481953355692773384840456495698028502067742630580913515717278773870190409085469631866713833826694764854417886162753343465700591462438988152910226414822791564247492050299601992144223453989795122729057366752986361072830808319251316220951390614750480726696217800715328167109327746732576493509902299287242818259409846298051530333962854221762806997175019422731871690778904794662505870537810720827279219816094077130350786406858701419732425978084248353871917714190426744086078071155977463628539320589410028475984717993207699508522826448101541870549876625466440498886612975966851856899815782442272291112642587247300337361226664378955954597769749577718896392040839075821324607145944303250635084624157176411453763159597699336173781422178996323169017264071176926694230866239081898378832932183847786286769317497163076086565930732005358583642126775621465310053198407267581718750851233981450685055930202303928080054490932904965805936872214288821807431685161892699688158784720214643684055490493716097689299815903348271459020039079060918954136060391915895183528512564321311300095172265089548894005018475248634446750951341793591871247096294479466464827023915282687513941154392300861299897621207625623107090882482319396531775834856138812834791104545880270115739739276323596952654474228165052930876118100892876059051453858690870957360622327448192176509595681981701615260148278733945472652571795079590669394818164545594567260498822027487203427763512550046955846517265975000461189016039003476660360552069350710134194403347915836787537898700675218111920978996600210407657020465497620155869988930665680721809667608515994922019580109280124211096772261623687432165173955723777982282332096863621799716286764169823141942812781144953926848915699272559721743966996295660620169869491503578443588827630648142645664791568729223760433650820190420436971870484966354152297220959962850058356955353749842556979988589171138709913334590047220293241623952753162030279674736805298985143098595067175242533013144908709752276728894664427278968974061398583219899691895275150868899943451511928787254154166277924274056683103346563255931819119167995850210876102968205305392417326434601947953911810561355873748356278755025305889289773844391572375041100291743144809367288574230658683619103527149869278628101108796937300026460067730221657658376384348290827794699492691213508788543301320257581567410027532547557757196441548691255096187340021160875132764554552999732631170570051842588625622255446597587474859878534142976337918719487272119844089891449123150592313668113746606867825948243698812514890797169877546975120042126814887306784271977311501344895067911926323251377994444543921691942609167638236822521166112821487450795902323612950809745457661109539382890333031593828538075320485880448348800698400796562134921723022719967846581172530414665318524852987443171211260132741050306276305993562474225656434773771677005765591271018267915129873452458231247408199380908961233482622773626050727674517023329929703245525328063052329938013067436229882260404972403357793256841782630088659821973198391946227301251233531428917859444936785163294443128586298351642747137239421591066692518261092271024512437776558634934869217412108460357893737327466714487929466831765807779585865639366376550421036752370598196934271538175002912928533443767074208256934081484870821787893072364563792750249310591935692832951857617047227090786474798597092671141998229286085619526677854868322950731992820219057619761277215579492284658504845450577342582357400029286625474363773347968770862270560856060945415146811463246418331470367153930082322774846566851067007512632463529136367364147283043091967114530740663613584037099543987008017244662289982579634198211951181556464020942066483034957509115045916776341819035664768950644055343964310061425773480474640912381271466773306470147512448644866440001359058350660762602334064624818491474629844629759371749847615617718164455797403829449512629392602058309341304796839451832269817486432996587766060845208364862441703710723496882737544764507359093943040771658823823981378110196048392365910438022481233694765902794352153006140194381979558351825006437097655709408635406550630510662880471297855009779003995229029537742932942146593794431083675081906077880425522718111755789846132933201125968085919893289627290522169654718683772815718464219239763778287627470800348188621698981084676107914228820175608852993325720570921540263346410551311519469466032538310171797575281221286871469539453084376480844536913051293329419309245168996893274317609923692733901213282569609063745447392556944951930310392884104055578789742977569414396648615782213140409109045688980507060104118725478813779977879851807959093387803351422727466048297895374400679758160550356930955839217900476112086931267231633305765408673194479639427207642698351317018117962327139584301065085630005018784944857850166424948014354561633800952102031825883361515120421686709883852726292640601090768634653670231967942185676005381626606134433749741441285829583889336812478211209223497327449374784448085363313903521758923439963627498030822473294170088412018285307354154492007508316885977873747710111844518952297093779520133200564907156002320811307518445248338118025601488722120928704519227001817902836609222439779714284663340974895361205814564938306807112593059946683005034412100371088737199626637748063939890951896770244688232691758903022765828042396637544829628792062271687993822059654644521510424937886505334418240920521473781026935264257777485766198080516778737938523459018567936099698060458287966860841301864798182061111219831424138646234853508992348114634927543581169047375148528547925316985203975839307138943170802187193301662656731409455069880064729557636459263740305132148538914668261386393947443049003687641067328245365463123926385162233228081087710873053428559395643468979310045098476594282384304862637130023461628383208461016630201666341450768453724172580138346431285006852885159925587023169481806810234894330440527733399308735609223386944595333624558459641227718152104675231367091926731500788008242396593670436260740948471589749785016389720058358168117465666053841316599648309898298665313446916753379903642942391966615704090611134869194250909882931678132841975459430887909681958624582950200308830364202046906884879766263949715754800276406919835393370877495105366560669566535008572624000289159975860333176978789413768367445268365504017525500134820386251245032680483656212618276953369722437312300862849382171955272161362012431441822744779451977375301046557759538751483097447005573937913364925214957573907107485870086494792644778004645649826176581302924108598905041229434117026825501694235327820573897941427155832375518195862777822674579251180366544561847271061572065043936644489145941298684192197863024670979922257807321001430128559190397809157745679525571886650108272663878862709935523705538120574015940898787770249646655140534809043702457454548090149114052579050016185432280329891996417655674684027774661461281570356557187702050332012837518755285538732297766783726294147594294496751394079533871942801881792174826178602789171373506152869041465858174653630002603583702053684446203021505840576240843670273612813932085007641155759459457551613077610350289392201953520204173467353796638904836023512910050331526922698923775370217353996149769587137907858318978583112632874057199762999006463501478441893033592445688418131562750636227353155094359580480704943741529500679798785350267550147398596387492903488905734127477287952521867923200284341945912084157868948939804886096776691690516399635455908242678322298007053954086549620172998663372653890744110379908182881461673976778824649931680738136886913985370844698876064825307336940076923097068934841445882833532251061949961891590715850749871150767306876202687117633803167478847254717249609486715281766547491478299870132500298400897174488640779150132142148061971931699919277302130701373347162686905137538257380848680707292645643864209255932769300514984323930259108696929241748730475009386109835853625565180928751849272869135886887261259041507078075345412014624028337767010912939664886496605900183277719826576792486228560407043685167455065390529588405287265175525553565094020335901441157327132264374082420380961984488575113983719298329303588709059304043558385368621883770289212374802795602081381899935552266769798816874398209306087383143833110991453123205747885335128652087068784571574041736468196080912156157701179505769785383097235960365443876981647639408728714969588733981897428501151990267839669795353308504672614722694728660350551535166813010352029913302121147109753550363151443387444423157335668335822643522814724243289439213300571971928811245402595202414847459190770301560688856133159430179664994582740017619816916057350233490856705236527855472199431115289102865145095497436972241706921668503126408692497951734283145545919606223936397529647648641036832125879166837699764548621930778027627640829907271179245289186308436588061993667485406231288544651271209803561879935382095215222119279961475778552305068575095224780371739936051658273902812448637033455168759593397062182992232888868635495805663092634869589544375576545699718619606322548082035698800717669985551574595560544164777918699948769489835456331426490253936289741423736628301367924571379073619180357461130456829852593666985602816789307471135945567920785280466335918019345903381277856716578980964801571067650819775434571017522337378686460176544103678851700282248972993200736187941069053708062899694745573647459657173596758380375461699553628786928479239656489614996651095033370087786494168872615546805877538809115886700576758927343442735150138109106427746017245327105042538215221721280769903721021503671459488719052910901164862099272320450027223912518213717543991135877829767233953713640041211640576328322527544602649748080582924911560199250901103943865276356573473704596379800109151403973435217451380968827213502421423784786893580946733561728350904444113996712711425186664466130516112800964592938892317029226534697424211184133953268629532650713164235375996436906211470955329013972184149755824240048382192316361152006081138442871007730938928675082689598519512809386739807990774128909022686194938851433283686355213146360652001263379174159732715264050000105778240602452922321087851861617543243633007522354041180342160041364846451998390713043372577364155507059070015265332575896259942309240424804717541965312109163834410629689089057106199627236577321694918302777847695755155306737166299691493804824814231736911764357712483024532769776617428509254651725136834490084406461492073539899713296364263941520114338963412004439782169587521082714561198040878323402960941314225857245838797550835021398708052571196132619079634820947348254711861502487309966961650888353570108343523578982118363793738608069094979418651141810582461245875307670756001630238052001928490451848737076007696871832831421628328561945208204650748387977765143487051771721514106478948052191357632574132666944845482076897021348496338191299729127330471709993586593158497461440939967028441391663186407223061225089433587141402561422184277256100680312313742479764285967147625818724420865877785878896039076910184545837848604164524644891039018051660846598777185966856497045561667563428882264026456917406305114614361898802732228372879096150391958565642183683425770926037740607718211111499707920017539412646287753006050473429730328711601002138227850871656848000122021673157532699537284037747227566835851716063417441064739504880541607540619603442837569068539925574768997432638607291577892026141902367333418720435181080177099047326666574107979288955687049851243267489064578941082463850849222956555642070200769401733718413515092202252380538901303632380764654374729790769596965995585596381761646011248402798535669209450469924999573386225289418455467771772209127747513609834482156976854953302099898649814008595773455571310038270530936873776873686711547003787875989906498881748704074692905159863610351805012115948150121536113870475329316809062666863923935956036124199183404343524977720490596042150111611424346807093760103080156214683591059798697631387421430627250507106492305618256238835607329598410746521011589981671913375653411756898351986608226873173210397798332170579300021111076905693133736723694687492619664078767849858864624892245340679521344257991508019152054162511387811917004774095140532373879184451765491097634144938034637925140103685624003958393004005263626682519085730200852953631062565639406736997856788210926151455948036773006928426690487458696958100955443358318653766494453509809999444090623717285407161430343676798174731062815008619441122366171704182307848088700765853706160888552665720383868246607772307089325328823170899892565302085489052982133898129263319283996439900064218688736108322729152849099330265221743496714137096012652882974944437387680796554296444496750663841306939874632343637028838005036341783772923140427114656790089187417018055027219201182505205331183033977478585528048613459584269678544088119058476957761667098933372330334765681724932238749918932741730274854421592184813168641851982448971779628882694415859471810089123999365480588508757208543216454227775166806518003543155228331009774710660660205453579826723365757640304583616146214298422848507318569494084316679068136509432437285226682713555077526383343799523713945492064237627041461412535411483659663828298516804567992536301974817855892221867490284529666279235543793536237045156814015229863335229795838510911866166045922379885239625564481120795626308016592158625250736884170140998290257825049353558965391478986344349665406999419448780802732239209697533997147671001928805881314760001077512034503748431515913206605060705977920859144062065712690083189164366474007290203537362460440778913315108574984698556342024225984805943099841397657164328264920619531110198256284054356686670958365496453852882880674972068833390533751538242451182244840355388227197034829610983117377845436140814776644793903825962393067703905539324467183513436951544576813384265558275359614133396247742037471556180283534238184906757090763883285946464493129175614421513594065710555783494293208143178251650262134819098283661940423426719627371230816618109662111184522599546255577955139992676855379497721246241468488287935875914766258189984478073265100367050572162546563969210835537870553581501564226077545468385569566136505268716006271225073351778003459681929071704981519046361793555154918403060484399920584134119017995241097110573042359805927066050416871299921707285014759180084906444956397516247491622309153639158617737308938166844853799117814149019673774579229609984518873948266589397025080937627003944351197970777488798267462151743380672989228460775258555561312813973706007485873915732577516310569469964337105061317817606452126543616489572177975303518368403255958263266443538784581683858304393147611863975591762046234190640199638477339527911835752297005843206655805270702587083048034608820309900317901554661077713621551512294316835509355837854629981197760838496312110603355911248030669349807534035811614583138795858406982726528441190555069563400969693162566726551283035427203247480335312448409738623208982648740369945674967659579886127932164173912933398828459369346382699237726561084232366891757207813614796844940316123458984341400020853931401367707850141852289742387832057105375168539404555026666687285387201569178045469052704969861615919824077068810482043681313948088998397930669134666755719100393205086034885873859877029370427299496436221317934638393031825633738263499332430568064367166676569777068517963771800097547667670514667055635573840629621877927953631335606967192860995339864063266138282122329935394234416483769564426908715889293152254718652986673675485744740783850118216116850522939312554634762542826025154859167329785367365560715533229853488752986141481576873215243548016357291498582722712617289490533063452351056527240037181177560071863123061558026224278778283183703768098130701972553056069804332975548862049185645877810592326375147692509171514424902945624991357893100151801907414896153217264322949023555984368671595704803346069789130024053889665106560929857631908437374853500757298730903736442158442753651301827186922144428724258891214880680987895381603318558684111458941678479951845109627439882069503592674092181694425072579226300216646059055262702911363299639221307162727135651636297745365979186311659834821585844297774461104314512381392800509149464386914222619131040659605075445885022789013821917343282118281101142233218361527408562818119661961336691151259408160058893200722051030970188461057197896144343282867502942170559524380272037599551764249314949308606695136395376860481900069332324367644780913864881091149640671039284484037905454135033331803034466135668198685162077701114160857222132027194764497894164329014484503245427959680288951451904228620709363772314402466883305338610633868556924803507189808494077633917377194413821500770880675370507086697572009428348810514901818290792601504135413615879989157191177660108964337013356246344358588762081695693491380012953699534430279117581975630076644946752775785933247949202124221857739899646493791164851739026658775298079274620808842001556445391968747673444185951900852163610414745230810776125773680580648037487016160921254656753811185379222786820573555350605209854866486255390398357838499933061101368669170759711135964466381460494408684477437453526579649728417433372836086252031633169960365406515568299788389476612603342071554257459369626754795714812783282392901291145139187765695201286290818701401009318649442955564557101320436503192014788726773441572397710897386625755652728732783527074993921586974586347158364980139298943852443260990804832294438480734397940202839549266154924499507411620931536638334353137503436234516114858548879885932939994907397395072113970705327556950218446920696347977411382316763933815109492486897385785780080421943414576531539027792917534895182242218433145248176804391462474756147247439616715801274447674038566857429658106423226743969622824595440627177222557078999686866499553341391740635308263844249066502519606434010448318119143336639702382148327458725444909964920608700449684277086567730804766968679380537668889737131542008191178666122197968949299995013773222363424389244759554769431915127615105029039920210195226852393258568832480883990311829110497929216184779812746095539946850162898017866419506092530384955632560553687766790840511601727467470890036918082341661721078640559155457697548758241208277728784390744998219713798868528724743722292124064776814820629745737007601597750904546262501371582738238933779807404283351269721596095450849917377842999536856148848024227261201255215915331491720472503657361632682596080486974519729778701390865018076158389217253830368887823373678731855565247947684216063361902306127746949487876596646615865692932087214581665435610186937951690325738980073999222882016493040865175265264490963368983129939104798726143286573875392826661496422683594104681643321599588448135219002877016627447501766235237742993042323182985115315661669672881488526594384448950259066270636015794268957844070298170464948056356127128504951694511260682648302519372006296007353116926808548857654817421792214437661703036721394282271402187145116677676588550751120361561626634413934724131486674638896182316456355854067313439749975375154213403743756987907038460972247964067400243541423643176376232378809623930417500153350183695729665415750603326575684222791466417230986531062691590352195197143434773805256023601008493005399028906825554477840030277368062447316387407753288904747746265191242248093954370154515255468093476832632839096990541639511573298251971370800810568843055218236514932408408764660111183186230216403592112048731388720622033818410756853675284956416030055833329311298338164563561705677217611697120857970892172359118468784125333141118467035489009335229524501070885202025431035111041390002916719137865604421761782874249397039080046288784552258316239091873351269604587907655118351261514485113625837166951582672364684098099836229738907360821354355978083155990381358167122464101703868803593656242001611486967407859415870737321107405042541692169198628756374237466369904088804936521373358048546839088723179508134418502598402889125746916071961938748613632359473860736560425092967285638616176621386975523572740841686896552736594906343549754615497264405178870006653036072520510128445657688652683579406300667005613023889429511272205613240432602289447390574406267478063548258283294249420717273761428264649578010869342421419248473670163926395355337584137568505410317478945307183362475137198957738147579979318288505996581583349513071721121666476660810534797515308149496845806089331849968298870298912163289636558126789337487255893334419415451141309313043953254504016077533103907818213631487213441698449706106797379586674899032567712547374197494602579349859317141401678885711123542839954222789850450298083925265699925970321650196714666317112081998987074943640285131135547659619992351228894729091767192074548307375420182356985199814138910780043122715188303320387224886886350719324768287028899733526905881884402878665215790959597020053448858055171888433513735126363089917553887488631902899682233665338152200550456368442637181916266832246515735107781109883850815827676342689508358929276091269952835484365689315477408705899800485726184992661161367151948228605382044853769923582105365802758659790029146830503733717798827745476201689232745682903699325920365116248847776456209560940371725144513100916713062972810170732764478459358818971412379616194601784504372839134831336314197870096683455003200180828679071907048785954645548952322884433570296575292010821980448274508133571456326724208295735693756006236328261439995571021182078810266036563561559733483086022459132366346137336819747736307455329829581283844689779817161912021216334815488887293606295656341902082330722715126046757494304086174441453387629831980060814140363453234155931545234702178495784348057126148081261181482433675163808676652883677539806719756305291722327404530174471317555474314135603979223840701328996771039395177705447035907433853813708592737022708091448950753444879687803355464453389002713812699111615734211038539646715837615528678554568033613050889795463727955096608810017948087097477077959495813900565105035379079787023987713601710512155336464706383157922720184821357112577894281422643118968603172202327068281942246390751301353766149534472429897564333107467192019955400745807190899854464834435671048112533624811604033433327892132988379368335783505578882368952413071796700246447132307635059582307387918177656114896899359869886736997980902590015842915542056733637730754276384754433107947472119547697828887707960323736253180327261422460537368764636039903455813094890231076337282769443845595349048012136555958382562177692093901508288784340552300817907280170847378275382885639465143898723648449755307479733137266950239253005539290818851678605794442183183408788330325077471962959283719944015198796103842628709211069089435308096943831656845573815282871271407406041529844095707725158977615518880735544232502698339720859492477130649640837394344042170933160310086992002156839080599345946566545082221880209812237425547276316531415875172442774008443002916776574163300221340338939704032923308024283216355791181490814899766577379653913608804960324906902700741069683542406479712532588767630793237948298724872529633183479486854090015333315338057522947358785028089636444011927225367272504191180878107565701546026323688115662465552748444373243864774461770704546992289836359155042951538979765652035712388671037872829692495593964102375047643616661393628321470352678356947067027233042276620019903708586583016735553371858473871185846503087247145850244049068118952819679393033452753224984059007192682693448237476784931306555484815918602275494874789620608799132989355447025471631817877491128044827245174249472875835712354484763108977732981226624983357877863025679380527462922665167505409065767995240428016330528210225676843096897310705542959487934608779386398772807095149346327677277988842686697239048067788101264457563994178151551765807835394003778364858605252070395925297844887868947530786511202172509467052628274933247020685759309780231121805905191562716596662292680543495848485339320962272383773923076120262419527882781309183128012456456285895548054782522797511493905083720756292762620214892562921210196134959696375057689119665207219106701203585271164697054695596440310380024557691640415276326707023205316824086649289416029950830077004998883830693179245759632727010422966309206200606455583213002104703820446938062821799458066743665401632937836780480395604439461023322836023105760563574783700912756232761600211599466264531507454760139555234516602984370270158079048275961546486037854935906243172889724354224230932518776405951273162900317377333685828840940096914277200470503609245402689270298956803696208948970411039901418714705112644681912716520202577545892273985487641080741162099379230018298738569954830126577108692219121883149219378829227644024374650791235875754914379281805097539677327615948128844360821068505887486383699349701024520442356854962407699810327071347609390805693440190720686284089583659892852386654234334226449055793860947138419041781627072869816259917077258525083870929290411070359479294769412692446525061761598563592512003245389043330071581409501234107563151848998597176164939775514803692195271238017562919881812228830675565462684509955348927024546438996980190183364449585637393161446646385876858066500837911107696699540312702298003215907547029096962732172148746796342951984378344717996153890544900807317415246121079522681350794756259290954129803308697840360339737436403090008002765037000408672378367503888222403548442287081954403048013055478783746411823634713150618244520861332961591604002457904556066824212337394588049654428290460419164549856040570098103391568761412740468036556550748504383463390379442935089534918285800160855206426125917547335226115945213632070885458664400659645499763310482297951176007955211847237471072481479440865496409137920037884009436597261533191424493314773522198191025566989899424430910033493226421839190865123325348782416134676287800866815729715741547188704583093614436849995236267609625379694672462822257102719256114713298575018780150126096316226488771532629040985535430621302749288002977883327378182946846073315327770575543676140172731647199210468891054961608371169876484510337675008065304649835767205636608867312984772435046423471357857119886891405235065403156003554307204201825532425648269871833090914381878267248544937426251534724610822909036585169515944021025855330384289683356050215962272937911399017502211950201196823902757673062943769856196667424038236627799333240145826453839656225556179107528560395027349791807152344184790477719591151097975160595095997669799465125964750621736351333272887553497757971148815842389117568703904072864906902463851409187995461817392666874751789310021594367759964036116140131330283774961086219824782946388194965854100947073629955068821091191937490558369100108938406886854090741297247255081745912608262047011397995275795893883557904297247082307524220403927260403281642920111920459329450921008638788634356746924250702409817583562006638516475088329500907293197458196523960363471776571947927972216358199250156131830307947414392318802270959314183475222634787107219766335963630265365907812216725063297034681584752768832578385844235355562531225006980498955863806292701297964035874960819794479945363532930031361157051401181353491592866747298503960074703619452414151172833196338668762959509563981486814325290406177555867043911341029287464521332341065097832708796330312645971473678457775872937475752898967687089502890812533999045406268673490759474883709757765247322270901610429744310550093225051618234304260061084504959119289446633518497212542386563770990180077067055681464741784459321475713662873139980960481058475001982235483828339321983508069673949877548099220507309485682888200074925444897571290657632643141639702581391955220458112803450211517929756851710718647803694547516029168078617575098772272088027088976307137860600574258983523125444947126902469712543289280502055882127553640540325877076347518204127441376496813533221080024968529980126373905037122509879709911297160259308613364103353756192734157599628456416677529997445553043515581259876751236328746313776167212357714831206395721929297596434654049508001522670414429238324472885180785186352762501121726228563483870666972852371671089091117656985500958609075262385290879626277146348212690848986217239095145611996157918403181061124561752406708581986540951531583306979195759901029263083146774713712882078208010697497199266873216250063677637559777243964804467127499923196494243361317896962145638096518872323511653500365279833142579327217448563310137203185950616730625812673679907135917420341403121800986261902372259105485623910566449389460740797170588255244638476247550938438275282760082931176300145488193316740264848046396615094451345629556619034064159875691542111823038695537090570948789803161413334578720365603240073104188641959850832977546458181447449626401411479822612960214037624332720430899018193373443901344979533592731171867870221716897923307352969446348774636818473597822889741247160904901446832525044494920496620155252407545688688633847757416781427155522497501992470350754802414419289493073695227353349027104228561279922033866823345605579884104037281586124128712892636659906278254090726614193441110884916754779832533061869497511460018317163624654566885076989065345706250371432244823900250912477332705588299884990174826816804733573151825514765980407365673827969153404104357841837579634041305169203817297690140551767251345962251595056838314188195775168536904073601462506631848841974537525405510391567040407199933680414884918790553935565035749739543033310820231391225445978862568694003877788351578949485974358705960256947458709118422387645988834239484262987260168783926339932664732902442870013165700006331485959087652079360643617880450453344082843444904920831122171136919725939825162254911972648284860005357049612303394164570340513149773911096326764962767850158788721126760455883806494743874741412929304605239815586618120618575834415919351146235282455525490095958310551364396896921811655791403834955199089960855235738402962547648015910505467232731326000732089831673017684230583741655077525871140743932629783446678312741495062376599359433675856948746877914528354945736596405140848324572236596696421781590253700325574020215209736683020102610282586790549124670178864083313083088614980653127136098549797565851566211715619664780497622990495346345731270537778991234108539641130438639939893954377309544350111141888025563880951211771594103232107677607196536765219418745391518959939081329118449153950751862409363321634730689396289334926066740542806173154117210025646466589104026964290192586502728520049099436439238726612594265307153246017811317805324512533877812790032226301624576247353927894180646731708653239478941209990856902789207451022438159745886123072138982512632339075935389782880116018955585471877976461348718310454541654511186417912294282398912190866146948418565106999516041253219729803764645609249912127230446148790292031179603520114607938388983290674896114027579383137582363741546786009089869600714713901788178748034162506284642236881908883422659293850295050137067334729668241295576302447945585006486242621809495312239104217310958860884917568689403811941037159290718902196311705032322394926484212794545764709382420143882058225127918255765855282992409072078990829449141044723685819912318186964681248980077039006566451905586900184869317323609566845989755736833592889459118937886830999416158134688887074965561057175516941744362647847650647331601000991061229447144367402542885271499040880195858417477228673410196685729069132943854809551428410437737083751855521621586974599115495656437881409877688809279164345859491334414681597789939833630791713613495501195101473550211239929267019978910265286801482034929891485580979676127116707977768278437089925845979351940926307858418620899672509898800337136184725773276993485935532590805785042668433582008423140311326816397798869547514212144621174932451728722369534651515431478054861617743774609897338207438707300757502622758908648737168321964382905471212100658910414364350243209744971218029267850370184753414076269273460707051180467273148941474738252640537212330927260081221699698235933694007015964381072980623505015909945774676742280190059331810038647063532984135923266797583651163949665742904919719776617562621655497092467780761016865661173198583059649306818992758591049873279135196893604950390459076932044652294251382751778197812407860646677034434192092413362279835747219126562578860599228150437740362595236713432448375158786857916349907043532672452988317704892131847968357676691988955396277379656220791960496157775389358485956885502402446673491111661885675756185750566842630893934109502320072370110669055637890266486663083514485279389651577243728834696464366531248820285730381570099983560427899912781788266967804800117204806350581289955621424345328197327771345132361231647293386228461633103647750579214720317813362168611180971629368440234070069026213613168346537878780593121968184361527164328286205790180961687292036717546601615293214158157652121396540299723787363207894259912738384123215434018498652409649271080179516629215541186459399479165559418051455487644888885941337265690569118522423799387063514820154865332522095366579999756318325112703272160678113826555201871438054556882851700159179989676749784940101249873076139681864962674180242043956684603329764591346850779981951740787332399552838446325006503450032313725103255841224962652345516663134899021018940958862002320690066418872359142557893091486107292700309763332474287538430866632837907206485889597115729029402772887241071846724971230740610104388828373306257934442919985052895942941348370477764261436028899532259962420407801860057680980524488527717840558696272197852900047562202680830177074609980111291934024326260659524028359662072754590757441891985764505789130523190120483773410931451649874504211307910111660396872515555372609602508435853169144033177828940453683735350602128800519755602467738080101160968965009911635646618341644463520792086889268866179473344648340382556810676969108510086268803118988971514070082067890034306682366961976914989566941801069809384532851218447505394844702818878048667926407795132684358884084679489333703748061744052096819467753179336493542543461262465287689294706102873534534655400152242572493675859860046323595633670519171816095957663906284426956707235331351813450630361802686615217852609586327179520386152999172778588553626949713733982245915748890313082904442948951904274746884167256203649889997235215126200699917836400569705220804934562921671157176374315577136488720589462203839960248141227569437357140889845148831639189175227360590911604091090488172291361165255936824496576497267520176609482740136297643766006029372464140975663717746282547311672155652592261902093383378294567549114587259401849569398657689789050304353100717656512126433270383580236557841505891121522470288568991808021776385199190613670117629660599865444992711198001329037502043454608495907592740448128881751666215796759736513350903360510752545362443231469507510141903129448940572219138388674532369520532689129591621352494302654737492376908765715605106820770312303235525603469240278755100629864552418266145238111605451142983963178907607013793373243960818039754051332678259085961212381709846726134071404303187019033099685885367124726401405588656543939462380387466003248372002290374213844232506741610505475199175438852986479474549036710775235083417723005410565601679878066002226987359663578273677182021857462798849350194677067152378803808690429686637873833468413583638377941936287109776296707880628348257341012347673516884110519363303836432320572896170436345224888692566154592487464980135552467982425766894909462590430257035658848555795251444580043350513750178921801209291771766313729557444348207935493876376140472042640216417921870278978393157851389811988191705215940091913955732611397419957509422062925504851954079064121871925754451209681482650127174229390799729179257390531995644025945547574518524442891211067790665937545792245172307330360593498557251378845609199032459251522424637401743126905148481088795932142337153118486540167927330166424330162419121712595476618606002864177753198178653505007536840595874069653822661406799903373714081466669531579138801667031886642955879503262108745053897117337113081139372697253145883441150351153283840255981680556852035054251315515050113729766543823052018456465088668588520932778365189938782165109612655931669479848484673569531553418904257120021629108868151010551978974315148095985551999035882196199223958879197988466404407003759557628795502348396510562569096680865344853819995524110332075710954431997402730034859859701814277236757308904289980015570855540989866692392970564177309135389302995460697668112600979176342482125017352854360943926693510820179932908644052282368944379953251016652864511167518642013224650157044307543437586612007287597341705701414257607280169205383173627984293706995434614927135493353864688941599029874253873120531647267366509034665723980849097193511090816239699707583807844588566154705490887354305040152279531431639620300311902611921408038011850528603599287977984410941046239351539730930965917221183603310999247136218235340878736704136179640784582614161683167395423704656219437974413255083085310887025739504280209055306795234721901674220143113816573175958916658452930051449801728646004986746733940370321168458643106244356920063101349340754819929130501633993322430996011058118020308975419488340800394020246454638488482491164387170578238953942401512386957188268682499078759547204648826779125107820276084263834872736221057515103434738991966008220019822256418346373211395770935306570247175851978951487574425927109265940253551861474878947244796848662083062492301999133578933766863387645959547858452564844682381097036163401958846361323914648360827645824085480998036035231749158525615313653144198045918314715777885844202019258168397636509672638619939311141155593807027930640395613265177355747567196218312199459433251823049370765727519169543128901619510360586912402292621741369241121741449201344175978675348360028207850234672172020021525942491871649480625483032986462056169626080985602771570651561193862917542948885053817875288786836874414554680191912339806463488726530039850914283619611475568480707689417211392305740793774750037632613398503664957502659244188350478993071587001090106275558116274932317607787757570407186417599495893782799549450224191042290760504160932559745168489793945697018257658070278218356320786485553050762889352675162773040906600380351811766858984736277074707237313403311395061672810049362956578162834437568947959438704167170195047932514646988834592602509518283094731040492069103164351030105978121226713373844950859967152964588799567942922242107302245581318487526885970014505235080172191331072276899126326150856624318120452005601789295311331966129028623123438503102988027887644100729913662641962579262786502960125794845509044073556916325164305429838249983234125522433569394899289930538906474732809327683690712342153622369748184988822153019555984605097379022115630282319930098493711201122344473113021857282608780814632195102864978575142278317663409065450682463718837965749643156288453448851180121244400813842113240943408317023012438751258582491666219742062601303684443040413272509586299261498117622659059862146382572698478495507854758599334590116845639934500149076495712478339623626353496855157080205516663930156941408614629899269395387773777306946776521092125254328097452559568074990411464580052217676031017893393660060858049319146124343583087587442517879215710780292119980935083296159628358482396356798381841473504610820962485835042531376422524123299987482604502876254766840781216626940262796707639518801729919216037806061269314297846657359816205641773971002638003593873954066651131216903018810517359662337766995018355430433134429732564776044975841257759732032737735329606202063047869549723989209600022679719104003023597851287997824832948421586397308861758070108351551471525388526712484677524295442783952546533574603444932793428169054615863836203639714305854404419401223667422702001235363441801491216737175711594418492339516420556688561524969536076179023120993066102367660630090654875235032819538684561329577727260200718491473245141386811587482259046890713075166418307762692580385319474297385168138456498400918279731311142334037126751190701348228038800569600148093789025608572221349496784438375450297027154500318766468576222449700136001976856613256393043342165398371405967250086843747221590218969404588262682420975425748834999397916051741127971424243857736372799370129171478293004293946233684280738464077119181426705283656569824863004765071719845296253438464536283577450575051303131904073767632500362155521203372939983278841053263662805445883586165851318684651777095649651163792956363756836662443027352084879672024448752790345339272536660066025660012528952708737197709152325761806580366719793741351260406609234662679900983529784038971009497821204579081413946085853239402190937178970033790291091681658093355192700732096551453643043410875361484575226453062635009466669100789488050902444001557503299089546326783562468483964358077756059899022758906569761614966072650598929751611651860609776932037767055303561117936416546398103852645060607087280157721942703388987733765200351130751476509309760416489552589843798768812430714511217797459870828685837339128017395169566078354907192236295651066098352613414373054979094270434766841849786552439065044469238610358164757383757608017376653611459537843842961521696591930236366695893348742849813880538086922094580226737684638642033626599157742154972761105385972892483546561676218342312721051428395421935957149471217006848105349043073864761332224585782437247617257442106079751306696801185590545487458490019942118094684335152685469879427003331765839362698750428689160283205213663799691048333081983029002659094585039439971271004673026368590767060614884557157630141893851525103658781796989655892451929294758824121281299645298204221508882487985952418267246820556920210837243828834424849009532457782209834504824689389454996541146703613625284822030909676854881849476570456580027422633257251475244113908491179458908928223448972979000584895580073797686850943105211913549691759236527810866876158428303100705344452482534090262348279197242947744109496489184350186528903275342236777489964423782199988476744691849727106068881736900373481177810647307416862757938576501943327202298206316401348610281315847352872291323028775567056343994896274506567223029397677014270934744157483567345143570142681468768584531172359098628254147680399092716952274731605785320296597818271630494959197256128353683953011281149931247863154425090513188598080371624441328831615868625912826292570237486112235388765373110558789787621346275639351971184416658226190913110048696725048539518743442670670842163064030168549634020178190058115749386077919493388491821297671811275313922268653398402712391548506555938017447254150516052493115860248828357199579561508042365636802623664957756293819278468267356638784862029938740010129783297917605641416466907499639151579434724035324441030835548384199450421100288530814514855722175951806288625993190749610359295116069354339738924367880252039636009919995447306478426452344774646734320299742535656561331199476960174160445140021447105216984810225044826936470619711840002600413371171986712140293596700692989710942720959536639790616631447333598539656897107310960004740862159112116035502941918050645637678671211464923624690719746106435297269642976730500376392560618595453403674898171828828577892237498745855604060848884582936199403789852164847556586604261996473445904925894142684342367720869942886743589705598065007617485739712731118269758485960978947291119359217433016534440400428401857304171015348026552506500755794194999952177294586079257794415003536494521440759367374913954638118270170515596197699633328688473745470397950940146227722739203556949376991815471837357410444866659197247635961586945696931835507417182201393466831694046475494853834320178877444063743643364855625031090849077540491111377016150206895220426250765271926788706949256186668001578711333348918092199891054977827474582028352843105333878576406865760123627356926620977490802795322515883931518876631183453297776991489762269813371426937604083193160842850339203821442145805558863038680533311744876642505954736099618340693410778723606290875953257159573259308718856208350330412935491075688233323586627149645644530495753865023954740214691015467287857520744909652795010474680400504947468865739132708220233569358567811907816846507320944916753824388793282288577256236488114849783127738327428340455748570501427291004514222112614556305609716895700272356064043117912490682607207575772876644140702440447037213152520510724579445091433666439607420034647731553192091867998657121172858563518239934566537069437818617548737731150599363415099346903621805631748606003953443224880700672764504964663727883412371569636823223874033428403459186004186845267994730482070783828763848801966012940572326374568752314325161104633027821613218311364011148567572088564721589435356144030254428473660938844868902571174597244092558849282254360362470510526910626150344783112017255750932142385373171960691329034830858560487958746487529118698356775402681459587193492139862328835135878586578658083587246125309120160512264195089467755617725051363255444699500774139543761761819105205434486284377047352466805630407443501812906417577531372056392710134748317484669091674835038671240749465081183117004202640288709745729267564511474171398302476154274431805028883542163764594619197239182482775693974542108643198501894401783392055681863216920143326229364320454909273508465637507712296622102237335913382168556154700978413996620711555303271240830036290896694898633914941810958428583315046111152934828096390808213799886864564567607930922116778612491330897139814300209731471427903379870468350733156254494016919804569197486115367652985287227573836945689707967897816763176053001313541733949161377040605362002431978600547864217711171777150950456013021751643957055256154703863061152725570748143828231760201522137224972301345820092596098151032084724953846590408459651426760261979161608526795609314423921642077459246354545813635830783502165603434724247689962578069619542095510707168343954970227857677291289090984313979864719231616731561068346744002179509558481302620906079948637474617375027459967014492653649742627219089686751288258938487090863437463882950796348615648723087117332952421552870696414961333769795341849348084939856466298253621072165036903959996853116817847753451561035939728226334226185259131042055828607607128663347921845821600330481247120367610562681946780406309278467644325414366374443294171041149441581442243416522925725103397806064382176492003379306654039586011618164355999035773520754217387719922667642193633289119577689911794439939468362083768483832246311804045550095470209916674198763716375254109169279588951791417575938493489116964658731084083400164752813093368669902669652499112325196018181243578432451061938564108744024139371854182500913150316513341495450855225480134403220821867698618529774847884155361265400433382615523304570672386048439621845187865395886852129037457356655081597773491807624423706953243007539636770337682222906631891200079582662330425431853486386124922296409147133897861595741504300928887585490823889092205266767223457803685543643013761826677047561466124690378043480373391770312255565059034481498032022363449923115750322568551654531230586597974838687171114683030043162724663863035426103953197207395648691134563485021374773396751020822882612173041715162660785689551658513885096807807681608889356359995517171365854584592404020813991895175009510036102100356648163748563913573188126733190236169295116231402922886857251128838241082819284799692061930153055538965418015277309238469692438914936163203501533875383973526791691755463505370042676211770367293748744410842506660147993339612871459228853408534783107534747812274947224087547297134878562171736971460236736821378340525372081160873339546372744074969665551938047939202546844022113945445745962227792208440287932931505155136075550114541709394975695493174256094198339260054342238280286249940932694212073033630256858381409331414334034885990512888822345967608398242209374997075301536507218098528030380501169961993549945996713958327737163031513075943187758046804370885005601423261694205247787912764409927007183318104208964258936432405903852246641400883847555054697752768028212463687655060937589685892136056150577269640891259568130493018146744768775267563898116909334333994094214926033200395427453936956979866323654981388066094288549617438116582168544825457363886452603628191647230275226834281081694628667381710531388465666494882043369792961278987662795651895959616061816716035447631079153533581831315178759112180357275669139239352070743090563346735311261521963567971245811750208324086199057105137693803643699302202328962069541694040685902772490678643026640029206616162584022271939039849934695463921943127043218840562084764491617865178597197060357646722245667525728573488752895871499465578352858735630587541304914341570676073735253688605334352015530103371311160038118445556884799222002307007233060468655420279053044731243363519769125107599128601025511624334171896210951174855539785363122607295955151004189120977994453621161539096956212506740210868028754299641183464508469858456492563725806995406858604981953075788507255261736530095328599253632597178357310678116109279750212700089166682347785269628637751928407386572034637767452959094213936245939263419371615954855364797923409276370254697981273587386805564995579617251146724150884828993526610168127552152390324176925752181418218908742888315736811238115174945167271357142798675324707953730868432139022049111069371231037299389697744343240699580602437243587023792797925082726703522310682212519940208158708894754792621529321674693067816232731195450753717245622236050323866596589024277223181604749797400496763477833670160462133971188398775567666489001920351544803073185535028543192532097056450005455209321378175257970951493344763092485504029490653918472669099340150344511190420030770603007089643840300840676565317184142783804799443698861719946938718540416142560680029163974727837586028371681530091377013890777813321353630365019792527093310521793690011546615658290281866402615892286432720246997829777423376001207276303332556527393254958711816545106112605724161434813915455350902659142153351754946914775208259680330585341745596199385109097794577197012071590028393626135112572391306180938954791797332107383123816249979050633523619512738889216885683831491970264923851258477078664134203227669787790375673914953375106877833773269469321626263394066411245490870393564415344105230398325300408735112045114823095196069628460632272016727818458362649577859537217350893096871177252043316833717621189630374003916334878870856996540130688158006112360935573806225014175728022971566763679564285723013934929316533477900469002410531427280647944382888304345736810661462408765485462876630455643999150357487407811356012000607526494662452342435769007869427091689531844031416237506679232005283468760919218152390003145334296081847453272521483493648076861486345819914117444626703538845024745017190357409173635744454994127455670642151573207079462905168271175558252995353522535989481754783991665841762289428015027766155199936185186198952018501600214696661763733527119798803418051083112650166042805458377635254792667157120512703118539903570452058537252435203444767601345928979915347835465152569586329178864782662920752669212439051132314766183795670452085851450589378349307254658424122391139027737325725782317750226920874847543935409064573161138694862203746256618460084205892161879678787466451744676842077072432769519999018999511084572142770532134134089893746055615481062713390779464066959122525967067183841370479047969236988183917387593377186293593104041706641846022750839735575031517052455764805963548523429308571769796538876438872117033587128606020565422903656737056519587698161444222916914085353645868398383225972351353957107383141338295762534200208101783032007241955475210906214845871781927723330786448425005464856084409463628950481709635008076756876584940364675415542940019876793362264580290921460155848594522541463115959689638713252527532967687528963351855490975901837556647811745820306937118393918148122730368525658319851196827224812708976831224792797842915752963705124800136435560697909887944603387688107237400837336378462904817858749725873763425523884516803317229548099006364629775234223397906868890155080103834836044314085332394932466954857277542255452961143016387114885702973673192167146117810734780986069936599998325822998674019764156067516822601865011106692348731015622478527064577251432166778463377990853525231480099119574766774070627670205506251496741171459160651501697188720390926843572970281206190048373675325319564242634722278730101312437924395994502902117836683867554313478341104032514153528021095751615576306361455162305877434513497481748512302748745246326981308023040058887510385452401145244302537528626471566780436927208337505625351815355213328582265528744100532310067506160207946321867064236121995970056241876001496152847559610316057352270188248132038539491786798297972044750458284282656394641442146070029731181278034358602311050194646116919245771491202094253021547594474374880236869467447527411307766480325010486648270646770766407664815096324394161228118989436464321008983479145955558909191126770210610294255879807224168617588657322220241984557284643521942970620481916611866125243910503390479201805719898065170536070404767560084682945886579957535949605902358277121750053195101265471869352464240462827902257552855009701834298488595293952911726028498674390495034959500568517972417899933784307945413454689075934665291189855607835383712910485491105195944188352909198488477654845170314510250606856707168215559001709421396217203191952195762162428749300079538492449911431634434698131353055889141243741841257044344380781265800044570520642749032497844516305053589083261549288175123843558719903774090915353060183599880907370655298491793505609121022905145617217086547794904454372377464044237187116215672136819612130535533539665587829852614615302315802164312823865434675261730510526918472083383694083388734155156131866041215395565985762901035063894347223766820711716645430782294262316049171911087006678193597333263454043441133356543844898155266084824108707178715564155540013641835970222059765902125533392698469676759115244357456802463866166430973039852952267661034361149390637774163821379103697040128509139397000520648265604890442244320008080265862993554245951188573736383686427737163183783747667655949809223383246787734425925735850088765777967726287794173328128822128994080745126772318491102357777554419298855557978460821848600012752582830532109823553627115668538890083813135757778799075899904067083268265245214908046380841770452921810322905369305856660700678807396883468931930766415367455806098465888518909041262951914971841186196740835537169992800517492791072458641879609378222797178054226033481322478145767156219109389630160627473671852582967811905460513065272954188448448582149377028109146469898750482749758835975624340723928057498778300746694026616096295448556777528099714141989628140219286145583086605752397362541714126262020953352977502585561764675338782436146246418776033689160657837424931169795207236137632975589522730123736303895609605914416159580909439659876568844148632240318028708368021166386629894276610717300610747535642767535341512442412825666015438892830634021223119043730487358795476649652387083159596784853766915121815475059611107444839686066082180899705430950165369520894641620209732179685160418018269892064296838452899758556890502282458080641894921243073519502477684169054567611387323820675395594133408049890338278278338795508630166781579317340354020181817146616316282236688975348099392875478401819396290362724980818465584369299746294645063196300212139383832489844943105005224879403297250270983192156653848894168761342272823467633578202667836823578136654511061243514370603712064894477143691089054879927207160400171323566433450016283643069688892505477329209423984714266988405445654491435915163353888312846768233848098464181222303281216165803276572794219460367382880778239538966879366528495690083909355269565708899600576491028495641595656039025005646845387449634902302862212753689135439634846985220935777392993260672564096371838790939321749937667329816332902606904385544550842867442137563356440455966527297159280972979651747379360310167677876056002671625774237383747618171831971088574112347684826061113386153378611401314170677502847288356044376851458281923227277186393038199520461972119062170884542719215355809286585229430998880087323678087195975385348180551513164585694059424841687189939063726059573090713143811142725895956713426876288259731511510896188455550535434503733066099334733384112692075971166220316719240679007895550492519865434480529975286717946199311943552427527000857943698189453262516628341116720804168628869484154828997733449442348429867580413979761750149454188662980274133411611621237796336422155916503878710770203429133481459413325676253972130832617844003367413727533655910528532413576934138382369170566413286329151446144869597302278220791086874958832520516222375750843674758492148311520173858053784292093652210003278670895682900257302152202196305109024586922867860687781370418097947911068439748003609984328952126200002865195426844122578509976043182080467967260377033457152913271040843336831013097587667082912727457862834553254533499618004549237390893727602525682710474571399285857931846252137499888269063484133022954493099304092767481242532874378831637245862822039348684850377612829497445056524661174560150190295701008923823422777498970782874484564208214209434066464699516808059355587435144785756625410517653884780723979947136630355776923076936855555045267125092228343883741256153826926751303627417188346214466932904283321033993884481040870091569546826700911567092329942523764439064159382468219666346671678135352558903059304956608650337370196426059025016784287552847221320404394206381180487683997001211848503774489831847283805460993679570401135132011178311296017374781838132937591854760906739655514103972568493624566768677872242849768221427772472059446887062626926557091974976308684195952808652740642416723927779284729192453051010172122433510396741309753867824050253701149776822568036202778819126900920565192590855067846878382419705817896943044434852490897553179376998336961917910429977733270938844341473407926918318290406357216740647309315448641795304133434905232933710421294053551466261882185995411560072502381934981408080825149506011736541385035092776830266528710254339217823107967158604507635249193389992806790814990300308321009156445041127924135032868326657363091644412364786683155612735812045207572457826719806682858314818516381232730582632591652763197801324544092781699797984465852171032251340046352129943365382667619651645478803879944805979779400636725725053799452513933574289701051916510840033156102630427180374607883977506700752645771579759866940850310500225535305488010882454155626456268681086420032067646835409232766969644354152767016349078080025592249365623406545548691967198011523246549450030832966739597746666788546143615813995157928583641751185752757135863742670607485205841617283586870044029808813742680889647417018616465276470420823943782577195648976297692923480468223332686508325489377674251090163068387461101616411521749632486572270410523772245653210529299620702653504108966338762491760414372849823622971329353250699577093769376485615390622100869382684803853179896916134593344095318700196755308074495207132019643893789438507042771453163990153480785093362151591191265481827644141605565145434522370672404866799489860275075639300312450437551391066196582186092495386268898588790397309315426387203694693012134968747665659211472668884004587599153024849394576165902719764339883731950501901813362069579672663555376558892348161748756340746768940717996832873756999965023039043186697710371778259649899661598974853563220800337093831266086226321434763598239013834296651913133931270456823017846942656543370715277589754744516200036125270717299912348710516897074700134974205871137320429029040563243693919603530561388883026353078455122339336306861728391888899723263993379259737599057615489581100679841544971923389181285787242885462578599155590226002920937104358500105665810673731002413561307078484441905010580750547182847565406228351279743816981550375298158650401426847433318141897817190523899683043019289953788302329045357251005665899485420482807343392169848091749711666330999775878202538904531165324003927792789334240248114628886220782145567184884477640406289040322517491677959739681626582668986306674780471685664009263276409813808144150636993850646549295944261212551672514229586573303729553960189309701661847102749518904216846491710490706662394987483826450729737977978164659084887272477541924358374416265840812960279645145695599066879994688211826583006920984838036961927973618233482174969040880455981605559557910867449053543931334187551156981823662826942327750727137583930966424850827649258960845552850458974831452670118654313010638957407305104915665140845356460277022327962840152956772182660604639948074719366740156780474836686418158949810195021833598530677188394369922049922376840741956762295755965347509830659541578196054249866262148982401679282098219784160638265179633478074120759050033723638193954011955915664219864794102511086900255021908976390174099612979799495598216748351336875247081481180736527498234734863232302397696462526780020179767025519491304646594126142849176185902850610302913852916153967666820704265277685818689423965355403813952743066750539010552628804683543751224545387402261165779196365480289286753193976710444227437800399970639906817345397536909919631791284582457623463135295157271558919229914476795818112724537405160679115192477748231322634933796547801034039371647068488912280952946916241829071101914575974254817326566155351346235919610345223701418589381627665629101552436621894763547559544780081365242569803510458555479524470119184373859377600194678347583979359693280341737878565182021128516083247285547187349647543594201876952935213613514955808716977255534549466550808907006397565408118858147845623503340007897877640599756225819888073179001510226509462289770535800222017556598833759067414448857635466472839970810381321539882768138263583272362483775767182825253463535226140233594317942888046198357317441808981302564142222127384004947997304439011724106505457090510804406528769176796941846066284082829848932601212810427773838940757521276340080712235894160087457227058860156462768847271432519595405823397598688931323894266045476241195477541756611617035434265743394504891851694304858103496567189809892576874435023133622950343093320614587370442797731344676572941599063994782463984723718443692183532258978588201349781866184421686619520224898367485257381622267914006392713727474543386278453885055772666899270066767856904613982444950695450732257168732536924447838186147811361352112227982270603384108187824408869421553182427741478194686024268169677169166496037375897573911445129256445332345121205835889286985759551137813498178469502199564111848175001110216252895601445151972854488553590769297227002034909840886433252428288198364615555344284012360132099045775655435375759722833602811929223085618622295777424337905869973363851902988056179167948083107908310122618349374855980877538896255963654039010170764882419448534727713037770212958207115186099299390864552464197463639781324188955830895677480553136715106139180336121944412518467521391487811881384514382625755137035877213471961089342237466338298238545836944469265155539595808546201968646351295821674170720099057753303290031661334504532116212172224758798466564998903009697732691358568335457783204199064260148958793096528050334116193012449807988116747089240476805101010707784242411864644992594044308462008438620492216294709319202886287058487150889892817306924620037360279742511782434263849538545411288620346234192622357099428211988309945199112296191636471101878503386925054640995200979494643167586731635666000275385519942838141999530297734414186772336094561746327740401079520450808366919865387364315217920601180279253381126440599570306527222586515866687910146624999464478264205487237283772685175261565658006798236842698364740291892900902662223028633460730639453715035481987542127995852654952207802633905384558823926519400763311984868680597325802393280477284551365435985387907573099254611124390977017525639057499184315710582775818968665179053879398263622942812612458623734200701545969063160229300688731609018846838796978549127875896173002788679926608069904769350546522162835015870924937944693445086489632290669755800837970110973486178773284745138777756996208621869567874420771956488442337475609351382850822380064311199028896950451492581802091030591106442894240394245286775824348748031627677531937475038609343562985723016008814971874467339485496653660277290083562078803446875808796297175277254783555919236674728410475809489923096060147522673805142089217739609378027822876658815760707459570228047073832957947246677041241516550319100562403519656329488637805514436996457615941227503117903118041522264473507238515517885228077868240958999794272869653448106184574921262391758682520638379364078748550184500682526431201229161916674051482686508510266339860886181352659164716953008798258367472964249202492702726227258167094062056324771163864084556008589096820613908975754513534009943029541202081910480965550719257803268485566258183375935018429983097165165293365060392837664261283677829914189454294489168330027237257913150669552556532508739967329241574818477716260793932633897249248191416097950801668625296320002093568903281021508688423460975787507237136249990342206795623364293347358208894636668977580240489798561153837530662251395264490203814053201964494322746744820665133743880557541202123157012866876419554286242305640798923642216199080107164946557061253770107987872074448658057210534129407770747889995594607564802247153589944575362581612631292366308101058755037567185602512079528196801643353808504370894725326836712560624663944955216624705918818973305054182611828979629529958630254081624110499854218864595954032687245828012424806337789520073726738113277904130460179908034820812740659520002256127233757877660847292132473826624974889844367206337890359655611498799459624218580414533013547370085051919550498508869134385550249702127130093623796935176117679591342596502454639325160099658798504214754719228602500144777107061543531481610569388855328394772183548934817607538851718128414259972297040762462479122970130641173463258027759466810281943937346657022792184971843003048183348584696538026912635466942356251530840371659122720198547065793492754714876212746850516529768879181867386037316278144744766968278674932239302418493854310768930601001340100859428617390853130891504863081318839295397957446257950098468868183548639894442127987132797434617491469572177053896396416514090373461434861592293668432399399608498251284868206825288884406507094868459599124972233633030889639371873372904927483971362356302209053233122870604573099745986400292109074356136650102551352103397762687715193498174238428365130093473862883455965550436811868501117016101802088284362785536206271103823102410514485131780597086000388944912581340762383628219581274245233859126679168378079979122726118120981906465449437240469893836365340590581329497927361801158447133079011048571431699568002838281558314930817699033428878684540173711485646184844861837439946154678200933815488734995955972078856940449512669203724704837047546053516327690998082772947184955769985489383798731827172777615699500929599677481301093877938318396598972006894381825887762508957008122178088032320466790842598503085123273522555671275053258835354563099034855309152216157926450447974190370794127806037867624850766110647991745140386368085200490297290784402406310968387804596827660331118734591846115520181603186775228632509827259619695708090775295322510873498097019258721081350357864104560404310048765839793207802341073096563349391551865396914893647180373116587481680809964264432776161151011501304660205373079352269873060636681182214905109684440464406777739558427969927560527234114657647031367431850968918968739167793040164345077769019887601764626001598253494665259975549007852912846647150107241906771198907109447169301398114275750094733066773191660271823826396621916074982281906489531706802281807350937225254030772522031809895792571658209112345192222162312323018243933841220465980289278459573746575622248787792238400411867892127110581059892722327856292038203905901577684247054309838712122279676383583147032443815397319372158346441492564078070507506424104489649755126647160070747356556413517031839120448638719818638250739968755620268635650814464157050184451397001525085871871878045541342397610374365348489354521734776415931515548845859226683021622098298001219075709562276535096911026237587459611250666726531247048727093845923854524973057052951421937691522767435249982733093030037579016715965096897990949497828305451746234953182590315085538630016743861827685766501285391253960242303769218829103942887417511000755968907348518106267159091598915096257042702700971765600455055498325424441014947326366761735271759688057378877233015065857877973712523254899716319360782972776323420629689592025983223943977111449975075369148797029103236378213322516371161191165001653863511727733616386720535395904471448845197599703017489530066197971350079331805768318859718251107088631311610724732548870741308072040792603560216551126023245037140198248103102590129332189760831961448944230396619724672727046739773886338238870995591763825662675184642712137749598279125097392559113308839462661205296234716777554621854008071094656659150035178380700769571277736949028243243359217518398725513902577576955550573447335356841288933644690066253624165553493664164851153563068171830367506594320912971806888963065220643057729160723070934401605929381663343766811490066769697232032320708040618967874885071305131474708008189361618684808686339722660863340304558469033809774347762468834952235444716560629154407205258738995097239619206773837634890043611202302457374970286301024029257381427637342512557430528704035729463154862049493820487960700461236122120671797819730287405555114386702646413170372134297364083992588214566649475905188431339515579745434119053321831483490642574145279300048539852581183833144644997359753495448362188325420529978726793198229984945542793841142006709418423801485410182838014154578814585643555810498750582946276239113918086763940497670472301302272507069319549837094058170322649717660412088350548038721071672562556254872531478971883952443528387421959397251543669777968557447437650333060968825913527557855374066258701723306129004073897647528115498442143820982424691214777432331687300604878562553816014522418046368238590153901768594335856739322068964190891730207973847187991317507281106560505849754989292109012809515657758110128858701342495931501260579748056742981793016014388292509196957880987258796679495056736136023369229903656832850726783044392272317690986173188886336134935431474500089286684402522649960755606934084274901723530835861758384842131124149593771145135697481044173832017125012502185121948766607285113299211535475167651815952347247510259261434677854994081773920315066596642323006816104350012593396583180888433421351587176148498543319898129450587137824293279934940316170550219405656107248091822772162045673017040827128150355167892736689037868837654356276700959286157314851929902824817799163296526422722834132732332913209133438452751534716636477122099070612144881651401645131146009072074011428904676204323407851893294655619580560553618365434119298598528184691316329578965275692043105296545828890131663581685735937974295868004549164683388662942479105847311045516680453280118623535099537446426220053505309909827913395721481332964811822551442807221692497969514729164717940002029604028601163816758774954980049431552384164576631199422123971926385827420313342675581027187631631951690987074017477369348268044848359746649930908718087373366280041182905777393577102727460261005236304257968277581987347958849310657628385394789617018282844375979302748081805676622514543882392492835929349075038414030395476812381432656156193309928314594775922405185748328701767708530835308093925758681680395773691296395306072748327952000756166737455308307468711697470621259234625817601178417641011082667366644243660645125357181159505679455179589835718341811948855695773717991375457925375092031266287247491746750057259029384604377806564719019305594406163366852065287638536321094502299305213575057218509757792222930954859151817663307605426519162518951482079346800992445734214283418585510749186835105076696029660843858066768338339920368340722597120286900582178001945816509686078906350222077672793743479693645779071697666602467811402382266314824977529518522617932172290265083504954050267626604516030125495774844612250677677674129975968923198604341959802370194154231114389817035394601062553693050260697429833034535910878115330493135940739420600346466720875123001228457202832240269146349230745108678990341848715317789696858240306645737798385375070237588158862441257691881624003303736637935821760180254859961813905199709951770718305070581787368476532024337852548894688921785744784735261257264042624557251576639168641663444975656614134132003071776499510381783631357471501070360487192015989681740177808764837717433892425054166273280321781768938179861658342897955583054120321274934775728985234512928849451094087122021073825105755008460140812067123060232633163188688768753410897587701700906076166947161665604421756266247473380026929718268618824445340191725207990186579222902816095331128374258764807159648922999625020494510402033598858089433386672532960883224277793697406368520229903405799458533033901117857371050769599490521011632792610776121502145407812091093590529781550456885361971178104799858001369476134310975302911162825267887363996193511572986176504086290111889999930115403995283008366952019568643445049721438627004851853427197066895909895606581081332011552334982125250670966277970609531393668964364969019680843623201623677632787365759418320468236928313425298930667819832735143363622520194312990891375723201274831053248772115776263126139803702158118455345910332503861282826350729828818537761898872138868881613743620366066105770751931595694944575724208956457374405038331409868665058451066133074463779140518267380023725870688598354024716668778577520346846580627978814556047474874107726549679106050282941124762177175156331335111113115298971296148463648523786937630623391761143998124821932704030316875593100563658111488652274336329062003939873330321993221386375697939666853858499394611559512468222297962662496015338708718600282871296319612394821558691029984903281068545609151164406459966959195880950993642856670530031798436922961407640190211832364333892720624645462543123197776890558359102972412514147836943287035037173086400275540271728803470195982031924193223503689956193850446192332866228736872199324403071840577188001909367582137215308429129317243981624523685549678152833027531346062252345487232989044211035411217358649806865947403008621725523078162427314951274054382717039288437838477906205147417033680284532236724615297511496385688740633902154762468151097847596362324643171790804280504937942672329231032096322749843258812249066886204283942768281042179344558633235925918390991185182715387683073798580182559563972097777193624877457305779765721797752062910626201585069928049154082397777500095645634827072661377775202326789593152953695830592449321690629213430380096647383935580713068678098289592181373426513131326807739659727195795245504929113839007357982888096481378763955348297813496314111082125101907120439254327375226392168693423482758373393093120661454724598153910789442449998134605223765445174708296944275174618534913570870664972363654704993557597588051985248391770862841985063622258362642030413855885575730070707250735038005697373256199308583044287714583541049675961667709655314774755691442209049652012463784767319203253550622638039304794825672184874566657550286225716389268222578222214235750435030457294242398037404912712316812977161930441625018313371372188130867802878734066387341956022458593800666965216645511864189606346626298350661501681661197751461333840571808187377819177315926177358585619569586728476648633445652755756472913505255684823891473017337210045347092950705626485653662731976307332425153499347776369209419119281917281415041545581886149175071361594554937778109843051216238317648686044349812745354724596916638971386416070657921812658520838931346895877502688838223315375875452578434574472389576620805550648984365970153582237162595067142793188953094042792032030222746320206738770527882885151151490261051397327641769353222960357157917914422576270882599960600701584165787435945421156857863976100475344438045065464344958671436162402393467274304059351557211874355728712566553633471435903220788831254523116609349354523046335612614425124320125912830424191411393824724806682289806823523466061953168356511262487785688613587267275282818142593300568980006364892385038186504286426682906778027468223734185510857910681476993134055235782555015399767292415343651229077755831918753953220839377842525323427861764280836204927141577497013656707276657904941777778470059816620887782777606197343776505967606250471050512971424785962344127070504120962447573886507471883871536167169335098189595527872563696719565094304660074001485302535809602244120072491086513231036067056823051729718578015030892422799729730484027826902587723549302393237147737279369037830015233642840734369822406421900354427435363927101792026324680923970687452157199027601476789399108005884410330676303420823976379263005928124471940861025729425910354651548026868833531062906187690634304993619769234491154964229542817948249824702477238599383138389683937873330962698416569528818417927750821433701227584545961151325258315722313659565665789770731304374430947441591995577319605266766375528855105178005903239891110956929569531175824120116479010562144911645621604878991562754164404793726969432440593723424859708592224698934057628018340863260527412752590604682285597618138246741208596901774655371227522857697191641784711802469037700545323143596632340466475704614578155009038380898230251848330482289345029452370351897315896716039207330179697165211308382506578771578830625019018291019845507939560232513462311106350191150339950110197110961953542949325596346087247801568237339574227249907503706102757318166952748852280160386171662914730884975467313447823208440535845519137528341255749632249023866229295766053193750688144726817707023373543196968869142454541312985372397925951640246027950057694121221746519675982266606459233146828695714439618908115360700682439193053766493603351579797500764303203309237025018746964032691297169067621969056372167418463322645092063249516386497511967890841826530288279921734042714769443493957499202378199588956432696809840428301980906609264728217593478473135575739658714644503029640386898836680064831546051319431059247638742657527273201204803904025877525469537690734146908851342730414165571300486881967582422067301891997587639277236696222425697069646690386840861128351715049537516013830787169684342124643496938318277962168548073611531011159501561824708361150109538743505596696370431300610271704990253276449786525428225271097054492897175611722082669853639280942256299484875972504753886242267992551577875769997059741789823442440087048114592522938460833451215595614936282007013042577337497036680203906908080233706728208126301448659166614553627325358423889439369620611180518888741614919199275093463168495078487708739711572569806997375725158572248593504943128471500540079922873566361747566783669764044657861661881503537925401734131961198298872678221841633396056168634195663428690935424061944757311770746506838869123116360787844981025899924095699335793991684580619617877586135578426783772470059892225325908414057357401005755850019534884583065279673962213238240953591276544227180132092673884468497013188989618803324374235082360952044611790280522008185049494356245851698864567074417943447920277974230769428759260792279723571474086007394860883843572520091736295232723988671129829277895442947683127892860342935776640832806175184971119677123104121371510848873119088047436569383137566104652225021031352647238880030048669847669306112508426864629454923522929280600537136074180118611443875217704405837291567414102506599018174023992668745480598272781460118082423666753521553901047840848915682864199539840508194047425107726176360198788848571835360315847193657514267422664813479280241177967717743010561678844435615290880583218034565578991465200912716861603604438695077217947019080801964130590573865776574460943948489608355669925521849349934720681677963736871759679138593752432560597635940136522344559766179446343314461330937739492298200968529098617726944739452070065519354340512434547330990959382518987919560554924791497323863792276453864635127567287555275273286890465488711007280610664495519486413553863707483961000153680830973589451304949485231416489793878718316591850474495487042171966777431557797339962140236139499561657379348516611822458606831489604828047132058927754204414656072175320476288851909546533958874143265808520473779214963606648138445555488397773596337020082328957687814175374971490018824278776544745307524247247719649485932234169958251832882184661367920740065039715169940792263577310306338711012827604657570358776217073582484160543915437380584762675372787232390868349881039667574979521414669653029218156803646920106953607683280895856771889016784025425579846326432904445930135018404762637324770568849657414022832293171346949473967258732444362734714477824840886336615845322657168948164666951714430726857933598382809910466983763148118490073754634780003324002828494224174616728144102018001681516880719804194083293122542598329115212031228712832993730464784825801245188601848517814888173779462548035543741165832159960055935697767976514792940946892807363789282486207878695432893806473667440065121810812962110614193102210151374464288517886651903132819006990132103892918063460364889273640113207669048057862816547938750897853707524191067376116655187355661929063715131669695424477258183268915741262428483087289525044617200074410943626805187998747684042820864934429832077057929247599937050285868198007002868761776805857517019457897012082357187110562272491591631241330940990807889187376509080336151904574219636000682230650245389988031079805427929764759553088181331357747237157540918187352348309619499455139508387117366097230329742213528765632453083147487912075726869429044968253333990074128972360684186364418591467358733734734795450642532616473574379321699038878389972229080194477461988193160019124196989693459172114471074090039778086045869929639019347991726323743303681818727504559736195465412048292046443055468780085483739517639444976081209654768730584706684763187016571175318081751872059196744376287131743854304976906847142356362919444820144604358474750979976258194184162576157684488128442679340649204461610317551072900413444998867140939271129914635336583900551725582556960387113405041222673370286375794567280962871384947993963607668790840531311513708254148658721321185222041563789630050491588350752982629620361185834219583119986214136041262498421297338546943992765395920962817408189746263011013575850439230653388231832675873679954235655626295183828250769235327956568992848858636492872357958597165516329763188183581486390877027559576893531085679304370402907277596276823554349080498661062007909560861741347420000812881975230469117196254892855478305513544546299928816482330466186113017662809509118187219521245841026839525867166303891200868617822720093490167907556328913761384512030512437500930288430819575468536429169479850247756013905327546899822632382895481931091091898188138134180222143052874931174730259367855900752491583142831014010409402418480545344183791148637586555377059955055603280141961624752328115648216764948897608353636065830593052624601849775935081417276353469183060667735726178621620505090315638279463546958372954507627246543017576576837272892281814992079843631515895996103038043021423014107506088330217528497503734111755085060521871936520116689264884889076482762305427904231080932247083326728243852083236089910054112334513516168259668296732319332598407775842538223367020486911401409679044494757154371104115432103797072037446813190171253747845713188113897399775751312898526583171033513043573887797206655256160197570723319699149908813925786529182722788431903939163571743952620697933795538996747986228058636149781450394389894993950193935784163285883122626087051904187562060771911343264919933105399233844977745863748751891680006264211180209248097166730445829942368093637284648759175892024497917698169832942231314224413375123743377198373648537616780818044016011492766230928888356588168570784430275460912973513438046552282397623738320245429272243722806380094413335394132844467135535522820743561068142930699439239638311131811076614569455207371760607376794780820821895538832755822852961786359487188274617746448378172272415043164767239104935851884066067477772692740727941229414457014564242862981706066977363214150616136197849396785568362633460531300502020929358558071764369513219769422530231879984963477129261303307329220820136847218251015096017723755874409006480584796864740384832442670809968372339697189421883357769870083548068070858710656239504087354799455720888182516371002775208277953611453224714003574911481623623250998256915029906279963653980472121752144351857786214514802115935719163662200917448307241304892919923939944427519340126305212592150870514977590835102953785844694617805540416689996389800347658377680298757350466099384377826613551741114600650936447113861077284716307349490640219353418309861048124829188415024789572759766862130818725147801988295471275545962928382630603591229320657608981766051346154424385284350613567127392680440723901397468947317763489883595200453857978115298490722502618774120409882685543332115461580140752219105689963295135150042293712247052210944666236839519473527088396897730942757349504192996011043648221805008768367847217852391680490255351882654095428566528533885779507221760270628238148975126277265290738790732583176001383718371476318220397825333772373855235614786830804695267859800013946279731140646452514944422237598888696247465680170591957050551104892956469116257700254935420156970036941310240707011296229693324503083399474039473215699907521122196495547711260462024759647796045608569925235207115759069730789559695853330476510981272729550883054472301881760141547116447872215945944688808042011281368611181884909846651577332158632881879713114090759119454137312138273658353394854862914737212460776300863980019129360837925376317359373662676842870294154667985295193398606561333024708195006932102517130092669814702741716468256260922382792889120192720333156950762165169723777063285508474245770278214708448023739948592395687721268748341485043165950054799305015595608678996800526880610260149336536395165473951518786921754951030604893561597573228497749715915686195837498177596929593727256165804289093529557914988831762182731884762277545290456903671874962685684403436196058309835317979051053910779947767502976198352944283431759988873243000235892374879579095736992081667905749705285505329251848587472588589138659124669954952409828430214653016250489997358137278295803520608166467087380655921743320032281768906757293102698269057816516760440687837948934037723637450945752527472657607118051238711607097437127158530335681769106880601099080175068572116978008358620493956961179821163967781613021402558609069520412764940687270446661000438273901640523182133622999479152517330720738776989180283597395487225374623934654336268880334493023201150244581222160348448668197541598885467189801689622485055469708993828296018341917591460135855244765265128811484904315530887376468511977817230189967035863986693816247021370663341167001890042831645166856534049038401094708741959615653804849720674406294052319363740185452583205664919567232296503947510133065779469687969585654335607119260128207238652455883518915101125709652144135414318272268995521163554726471423877799678675237881855605570483708802484837395591875703675687339927427375183354895066268048303302597320454509354315506873116296045498269775356211893093035795021490193372397189886702686838565191758711272634585899312383427088766287879206405344375040700007383582370324909156311329703605759765606154997071901329034825106303366087688395171685053311508561579235553162951139920080653982989670181402757243588882053954399484279287032961483450056519485084254196455193688162745147527977643828701944854078135571619256570219825295306325622678251911736678653744977296399074073953619529762255042628507317819379826293474136943636485596108372285253839560834780435731330678222540522641750643770183738176968697381341714803115698822338740729900549253330217392321257322530389366221207132988425948958755296218841236552775985247154160738383836145705034595578651188775282597702016592795615063845710661015153357421734416757207979770178558490962331219893589926620860365976778620335393419872499154400812522562841089943755492918816702095890567452053449152520122981038315502809281483000102486930845457673157453423110096332120835220235262504005768113701539192471643883486441403771123426210206803785177077122302663649921175333370101458891671989694757907431444067613676123987592743294033727824559910744945612420641950086488995253424349411318943054829717810774745578295042849057683459996720032264551862553560045220522599270671306117913439042070685871014795485371779538361421614789710578670926113188578805036350257273127205749897413259605196496736953579014907001186540556646664179286104523006255225124839341070384587602976968282697216628044045246150426323813764670011604483282099961706029705599889498502709338170273541413035735003416624629563313212776207817534920742122515417289201430165000120770318085482952058152028822881524426941582464072951016533059251518130365920147568809220173011606868302637433645621349853608935202120550736237893691558965823063108624343694039427450784085158950085463509053367114571260528131291847923132256601394708784501559720956753831362686690673976660639916580271009452194067314896579928701667831701532280860993710325042294871449450004949826977476625400633948184826152013949987496134449108572940940672798283250630664075339233071530435934070011516402607186380046353244102354045420882330715373581449190210266281730171415088467888323282694187320940414721316216174002210244971426165357846577086482499367571470821624929561104452664722262375144864547650332266156475434021576323467446458587808119003965376421568915238091887704476235475111933160734364443014979573273781389934507603370788155406518356976187078494284320726098984608952312608971013107213028376173468425929779592713604156976480744017973299107841316223079286065245990745207684450595213407391379282825850081387769395104041285692264026941412806743976935410664834777356324768904871379881135924843929900639709292738746372059319948405959839126533669503519388116760097820125520841382835930267047768012788124318976842922948190817980930975978370335586411097345775007956274218050369931741334644008434186953395807341302509234710744611474706065935583789642580774000015703844553206590429530172870229381093053331321556791558092302188460532397249181833965153402210720285740280735849753437152386961942715060348889245701709136125161266383182083463459939009963760967536535205936002415197720660723544664874717987711851583433797424061989216873260785478965081404792865503156796685399007773367517848369325497443952504501080375169626335479513183774191184909828070010677390034165998602079039112292748148838655834392485009064602700077738465824333098694353641961869054423712922533426699843301563174550299409584083425465878725477859043125438510219847213714920563204022405500403255301732528523112949024908784443246490439978757110465057008203922608743400602116004584924999663955797198533286318484163256693349184394378686034525322775497360931379248763736254866599433265833377507890132061470883467603764432122112461278638794495134979204131749488793263668160784828655270309616243614996291753165817027891547046156842579359615613449882537423862110182116627767336945842027766842119133694006342243060751722799401942645742132764463008644016127065757768280938489349791605398141320144498603391906331749350636947717958013192388553700248867089684228828040073571413377039110946869090600194010160867918540845956012062404986743649692230477087386568938411585835248906720418802278683223946861504120284186223579730036684213024309975791635797892746919442348387258131109353055140985845809438720630422313023766211397579021587316227094675107307248071080122034389227961321790368708809616111124741306899586122879308843254325459204737467494838607206552606963261615002483975638557916371004427012324235055736078098650617720250719286289596321752135949796893646317816146979359380596917491742171765316892142114775530872392564312034157900212869134174057420938086954013527224463064975324680454298231944485568740291678217432610127550568146307718225083698630044725748894700075227424672064075484083410194127240573252445797693595291224920950276864449593392851460786029348209242547838125722988195523798186309694018141151686689502988887429297754213643072993041526645370598093403065724610509003060440258471579921799792695652524947514688014023777348935690198887483363036139072754751649403884500278543097870254604575558668495189098701901598116023083850148660758601717752188660496277645759349455472032638270987829372753562015197636053830190577086633319407020156692846911932708676861701601349989757920014126257391940487708386381747238601407829277425820234146210944617992195919395974821064181646663681251537703370910327880441538208350080718214392638932000390362289782352765718041290347027710434969341854181499153911437954631055314705844838543263737402984869902501122882335156748384797297922142842603698324168490748180001026943216417549013761305988188999189775673077664423410593378991171742116006666958462051265001141041735820423268911889907946261356611735764514590891020400127773652214831424771323370410969492667504868425897977251335543851017932829161601056511913927483770996203216128251500129800477762389306431582509852174539059251231567255061233001193817557659495009329077791058502719661758824680977363184512932370919929186550174790705363756873422240600204479525398255496227697555493564335870554170155612583198647445213452567699951715533371710074310744036836318923741460453361576539343674440986387395115783969472293009084026558157307670905633781260746475304322789401676166988139117042365888463965421086670136958249015238249896925131859402139945747706996854289138233293904527459330349018469490850670622057762735707317598235274678027840197546934003470962798207292099876598864163350368052035326671002050316276693520342259515397824185639180902106310905749215708313481513988602570864326813125013007593881004708646112558404141790602579189676594946043430711771264802645227333690021453587477310844154509902550130550925173778332892675469396307319125747488223379446870491267738934921362079150786149701803227384274985709248293456066675788196752971586220064886259439219741934367525188575610595529607252270226167223715904883919971316758914086003466414869141797634536161470390463444289112395941379211682975025248425045801024219005746059553055913597151991762303408067090257273150625797643190914745687642330662905581108544869560019611401231738582745101307712606124529674631545226317262559669142274135927837297095770324429787108308935161492331072104564015659397530354070889963759040902599185522077711869526317564281177910611828014691380934851664854799059432334229437870675640417403343417548354132168067767046334760362538783779165314903787818407514359191474724662000025254627222910300252541596603720425848240865398787497381792647629685196503901947092720640279036977834030788359815251025087145041911389401921503790089251883309854600572439441796625684582110076887187826351146820034869315625788788731622850691410575557802052559201365498000258511489253726206821521813226932597315606176043580058267114388264877013335250420951765533129940998070436917987000843669175272619688649099210201214610268779810138744215399778626927854158622167236899489111538174026791495046619773090298599385273911163347560463980528992856079199889828939156727911818550828207378265032271506854483767819088372808535109225291870750375067461940892404273935114223861565169992615631521743846238947039949682288170000755762943088169501643005921475211593150177361634930525550275204236448714408881072275265425789513624966305118390545469834044229521043573728335754926726095012596968387663966112275922854051379979244562691448249182782193457191817756388104203870269927014312917908159390299554499233886841922859857049814806748234872923624720570853920963093181733252060354596192839353120157087900118252116982098853455773448119884457546578222113908253160409994329264398465552891841227358590827404345799691468296171868684447509634550601786252563043635857530306832277405291043637098931683508703414554774750236752009569518282794147040064607353266771900570412962034049872487778485429589667221107620111921718841009989733815671003951370186358528080975478075080091241192758258765651536363452125577631042548144849396892270022209064260705693831157712331743226168161692848037759832455199985911903686782929010482869332132980936818042571995900825036483702997339849909649144370640978624943267136662692835076310795326861515026285445096636013073596464697364722337544225075521559391848806344360724590868232499624767861819372257074259332539896893894889881553661602774084137293761837332807546172688833902652900887066801054748100931861330617995311156899699614337789413907356883523245165699273059672181589444482936901563121715493745623124877388031850590816424678424662099304970053353961493188524199927912644764872534322139651399017564792795955567661979648133054295717414010700694689976555497809926832382443163168074096930200233179148114436532524429396804456134912377335498421423122898345960843612019993121946186369304292266475652793156032563543679342065969013375169773816654076100710497283268406422373654995261075159506005759826099534793930229982411123790966858991624824563890369231452505037810221897154984651647580893361421365141695629561192262957960234946518127670614465331906632078669474024319157068626919848177483070043602868001395025060425408162704956279756369765373522677204549685099155493349894019314561477689796130653940173152921727974974192713276946016424438521124924758255058766333386650962563284791236138278890575502458583423341629398250261421116053002378294668918886176447255453393452619736649265911505145883473360675108365734178061457161364657203606876608942961641325177596304818042745737401605640184782252776251099850026882850741444981219450274195074236224599738374277452085544827407418454322201296217810130802390684295906877623415333258261770183836179604467554192942076494267453251224500366003357533920469647033725812740902051884264149090310735025520563635354551306268482049091674026213310016721114978842339638385325119537872075787031611136814283755991455966843648315716244551200763978365257734605031843791811646277943096112726630190114805653684415141369507199252119891777887908749388021532073275876850559655767920510149812973122025602483750552625653218033939353127056368598995435699992056725113864203635770826141398713021407601017824909479628456839419167378791058516578143203648610454594071961718883867861815843973267624018352916873800744850533120177010458512484958930433589504670612291168822711476845919815353558964882767545592667800030885666821050255530602687319194970503172814649555786614139316782662700583410690708838951593596390242416423699130766062681786220259164332555469559756168554585832378513520581280233191859343655911771935655099992537890128812519411872311059897445811966322273235986691056895836928575353895045173863383492180771511897851735488702439269303236456180667462198560674000448719676576884852154571904147280537960671594724580785871553927027911190617864717391668434043466859550282701662637583140976260508694064249352916446793193761347928572085460926271094030680236976714924217627326566462579866637949107354440565435927394807546164065497334191833452308818415060384882730775512140033787191013589459140494278896683757893355757823454999022693096228645585488588209419380537364296786089455206927358666873779021114857125058410466535106784958976371094417628996070558451234570093260753845298039829848874761374976138029135800591338050793095523058960272446371058459476880235892134658041615870537435558113885424537552880567121474054441854449085429275007728048202732500940005739341281609968377814207179397607849175938320777794444766077489942133292489580120245477051378563109443384978136424330293510649901264199574732562075263181376612263725919981554713533903714874677389633123220676437589665270361264834311653734336755745540761278242107700924820518921874023551594718331117142687903359179485298143120753882345620524581022948696938441560441474035886255224971507072975023127114673512986513655151821177205232184535859704752276788000860751426797546256944761389733920220156954704994819429803224345170922951554837209011171170452706460804493873953928096525987039354977143368407553089129897883438679841028498998276969059701728080660994680586380191020586881123334432797196356699670034342313108721476639370555908601013304391432878073887353990852950204157347323669198418774899644325925303409276712992459869375635702805133166158371379009683310266614504435274457797092467320314558581737228370818572264038953130422316358695874845613697277396236440141940652664729512948704293684953350718446537127092246074431158742769927029231172213949727514121385792772417420024386721763148038379715116460293692672853641840216628454395750375279551672310678225174924415079282315347249144612945896680847657502659332196955290086731941107301376249148442400523437063489892226656739890857536824876986616489891422800204012401897445417782367092609877619523015173150552447935089158145775142505136079705550208764011673199752165954305601635625902717615852913748794143810123758915607578138512602675727782632072417583538699271519575820443415422870105560885297760813429372193645774446578293355503367077853418353684384993800385976281416542504154411087650002475952003571160424236063029217991909362011633897337048085377530304012963069454280788439698427121858502118258755507053534174714133844884949014441960795403958111153092693736236449556957608503815381197502508392787572157529808077714577920591663034474790560491311540429358055984136588571618088408464711456722178055638699715715640983345848066467304995109850119004655383177920608485319338189812264334015963197533844335622566789022200533994340224685056455498941173923143475887588786290520795790942042615668524250888619558956812415501176528603455411425610391377848495756073663291671057198913485009297832237702075479552178699724539639546344213067871108177174481315287738073669177805288914230220367642389756259436429989084442384999564470636313998881135770572790692299160493502568482891537245035559656960241477432667639104946284549174445073897505760838048921289173749060322322884481274549059116570369760524854394955893796087948186372207438547848199413566648436902892643878745043521253147746915844629154528738488222746397347009638942974910902400040225744152721829779615475574547850099845227694660690525023204810453460273190072724139622629078714134821039061862961677117722055139518240936978165282751123104050172635951863739747970824719930019244542421500460514655906912335953505318120886697079753070209663913893621248776506251824567952450014420528700914409470257574668884931340444488751187488439414637399387828249129748148234774167765834336581469690770346213534710013628973598161529279126295858893042584922277626365297702950692645084306039854212264003997263172659614988135394367637434007294378083985843521473885848587834707631995598892685720913110898123486974093303774356898920675126955664051163957105313988891958652806470159698643629960340680222561247333079252251962643532968011558303127227055772168033993093099322198607504527675895030030064924543936252771373969252531148824139580542614778785253702444777643336433175465114257326336571492080258466931115499662075064409996191878294960646297905853481795822439023783367418042280498884107658863592345030674420497409133907009243849481946340847093399373892089870954766247557897213995399208995758642690184761136018087175495224816662700650412460087054584938139747971863234641846991132848960466869215072926872615692318445180013101708181861704279171389855526819391606592247507951402191671946002056757684932345839381878363901300261348145136255578298069029791853258167008078800332835228138537323062766593491553299693252286220567345036112259120478473025058483251020667103494019232881647051314059461823932991640571977099415772318656553417995600674330362792427064606165688935302558881880480539492527651303061288689876393708307163245232645029825647733202973143554202078374258950427623496682853196352144092172339064683370226908151411755678602765398782912052964251817621582016795205989518728901322121145731202193461019189031979487183447779183265885463328830726902051994521857456402343330015527420454460412707126413074240863586283275943199665005609503450461510425250152044374616350215950153994903444123526321556900842339063758232918490306961485449410571056176995764295399168382056907781573926995506324841808193458843591819236487827902625427048506557108413225455242192221444925301692527621732939105988823193500651286700029044385321400756929019267236572851879938677039100405990832580113805904450891866989560787982627449127521775072858544750876516301913765250624808914600416952445029666769544926978615536952817621540380987307926238112259671562899649986526961336747715370903649636193494932772585108266513681370463910825050310866568324223503285368831328018997558692990194132926898061356361734853569894709515679250480057690020957337336947698757446275506222595945327803237359768394317342955302984095580126957707671153582088502715524470924483770450739492659021655481131422981609201701686936538201030625453281491064258840465104340423574154707116317985346438199584950054927385090333451107583342695723889732324260336768853747387553002716508370488133879377367272557403201204630802197112959801670518285449937617311542418705134253188775886882346680283417506948209291282162550891473321815197092893740925964868979680545981245019119825927172064554331915631407150352614239359532845739314957422472600613707949674080120156918462602108118442990898167582054357883528573631658343029345729846005368473150621649065814726127046740961745514465537976774178019249307908989346348708072733182420242877602266782409465218526120909502683330474317632068514729213555165856199377411787211999129909876650475758380858393913110310245290353945417606749044086737567231209201368156844376911196257106293895921588974134797630822376900173559847542668245162903043944751125418702436500529320710403968584066071135123465605034112472978246539529569785292815467400447885393378770223552234970648374738210643539788374687937783319046144884873592914349443255054372270468759849396584892895258343691320369848136712701991933576663061536820153821902104164928565193174820411755856387595851261019390707107939195732511146970150276193759219065120267500417236978240474351629931592529833658449684711559345315586881173662761889255164835088917874841746197248240200766326611804792267988902375700230261469924608381682544519716315009066897096262773086953324633515278816629535386965348976445626551498076850422650123357799414562695894634184242269333357625579961196261450632127394450529083381382263468468130026851122844693883635317558363192250686731932578383880343108758138200405215782979491866022269017421669783958480118041968417604154457810016886220435061710487149916131098302169014805265099434706927317013024882094395170742383230228372703969670631659670731656814647671801428100279506565974865248968908026187182886272536585249969139946855719008813632557047669803860805991340837013575563779279731009759151779142536304920654838018233355834112702464959600538134422450550095278501497992676271886609253267637005621917347265295605838904533601226301829650892311060446865269947680403256175633134584677057630061949795836858767331200939372476726989551578913198353170837164142849489081423591571224462280729519977724699896394304483367183726842413691662443846626742259055140320561155541638647890066462302979385867475621222501924282927115665534995009185569572321331970721066709968205682819011109365503555290372956382825801317380951688633002954890229197599866475742552414414556051701469016008419923705497567847628700213566714740773323308342545534304526986381867544059008030958258062418701322064577138994654304469739705525900446696988002901747300261254756882618195544549048243087077272732115761329100468903080012173631341129380758071715990860991387755444234020803655698378786634193164777649226457845237599178099653999586123456133554235979896865825164944721273577045893308064462196166154686643340276897298035804225246677811394813055621117199124970093136590134894768782013487222214296899702434755251685981301050433529642892689791680421140043670738687863101192118970200382398306750436826703615017902417772535924992171788656322129940120869917011926786465491130840764759766461079203215943375157626568516501417837868692084707573930804013804845146981742890134488434066813686223670229992951337836142887328966557120751878475946173283659794032939752048837601978970823553392822462384400292615852490223330012129712309999513043323930277274810466868473387635095558362552476683681861000054389198535573327406023619156988133403187952852178573298019570022308754220340574297608995223373450957386800269602345727018979022370885878318079770191126675090078613076230484407992792667347517393568918646509984795769515337286260158525644650186066156449605819251979057295902707727322670862872863275442100499698117111059484695934127898639250035746549607472376394909404505236667848681255495360638887217641934692844058545488067550158789861023769878181912142052221697668157259207415498647654749615227642310533589057540817035496808701492972903166350522709160565010216752558623809451533122524306678874934063346911913489051310994719447033689744357946562738172750249306107442119951476828150965793046560812091486697605589277084940050164082871922801237570490498407493836002244049610720591930062191365687705019803896316459175394654669694400742317671525019860775952478758351413646663394228384857876033040778296685044701929148343531545357256933160965673438685468735172110862624972221665787160321388173361057997930043426118686711934198650917013155065863002519047420507390691597052247689593702115123554513900508589555871568358888013396056601999222785951841503874328954229402400657894132033369222884552183993762140433685562712191501616101368456108787062127128973831092458746128694953887953915084608290871945140260998739038757386538467413004865117983697945161063003043442665193408722802913564933359765662171025340406351280351469571409356075925245378594004792774534821111659163200537211906148740461262076102601818867366119927346364290537185158997573438469556650121012926557248746656433540351656923290133737396790857273355568596094114910644827606271092422896833986117763891337127521195465988744619544694950223558708328724087458149901313607113935566927218968126325982984022213058654731009530254468841861228865533997835949960977000215361468165249051860559268378108222880249158962978378039102516723482324161752878800902420078181960696993745744919914999193668457202631962717462297489846444652153817571656128159514567093274305217540694060076084941212047109880933915352880845516680458717705025249915602268156691242171930224441452717263276525057920728152712462097463055732396845278220044497066284658847740555628643742588535868798540271099314378802685295466903085568554614639087695612693886270926758828165281268682612852107538930866207659586265325042677660415885233912761876512719732962235033231755313557279071915308283649381155810035051955251490938377417958357452622577731321319994199102502918652937270816068319536720248911038243349323891690284514124134920769386595351746762807899921436661251789050586333523004706161331829571074808209014116432754732639380726201325042251233760201077473651687642964294005540447598895350340726703212045553537448396439699348325481515786073650748451487712868362528495180140549236089528325529118910234161892521891603289890419942355942476096602571776702451876530127762205179330826296470545177894414278277656509537880545185846915031232737701790686673716825521790912986569156544194055184258623776049705340957716183711847514602270014586033143904476307244337066559393062144913600354289951291360115915415782440827555268363803298092109594173561152862348809278924851402371546534727214705052365111674273421200662558804743519985928118093401214075947994096556070448876434196170587838208544852939501160147483906821211589651293819784764969204574838121195155006179770868890347034223776716133582846823000195107642933364972853270695608391783744338038681092497152054888675450028844724883023876666368732616835603627400224837131089636014499699022116109551236157873156407056849311006672243094890310072144629415281167114251035940387278487124477191595660375199637360340358978994783553685468753057088750249650319657531808006155291711469074602288238171225923468018729982406910394356659072482229679033184344238952354203047160643169321496715641564763558620809593728615922257954269514294454411680991763406880128678242218095365120567694811625839879275476513548446221481512560931358729719160561767725507642953483762787771920892241020746172513484647913926140317067188426354448974397763244455649773426390748480498665735759366875118592980875603768360854874673253575249851138917987983866375875685517789102207563230714198461306573303678955239694754186434263500346010207132508824050376486223415751310928499328026557167254696663540632070904700551958321194881006158451051494947858222745192353561077047863321153708078583720216219825677015138093618490566028960494153424892023192129553926538691043033099497647140690270492733390639511242491795653636566372241577415457097572377828007072101926630989621570979827699843302600578337300055658886111559718440352425085154742401434057112915400111942058295332039786403651968284243109950073476292451098775556473680518297861123495059036227281990395018032781597638216684972217932150341190484133122907256475842329018213504239397455836213455788558832013261820939940555490599955891704515053007752520534899135760706381265953930337049748528942014010778812459590405533255403897845654118808821849040829700184827191789760964102995471209148895328374209309015483265473680411863122918008842375954512457568896291488728276897931249808970438986886340967012022357302254048285188293156022848189493768525098381224208377671668219120242483738749693733603528092284255147638475282217325441510865239958044325350310230664443758433775414021899446944907967282356458718431296881238661278131594085015521755038504501390580604114320504440697570664744969250485796889464581957636507984610849090724759641654067290515606050233597500473026187563519292815227741170692772514686841951274596732526583983524646451188994625034889944499363149039435894516140398899196312610090240854642908258403471098408200920845965404924274331195380086990223491656098212830026623001584197697984091075548291816151504291762224681094035379064982830443012776669423793266184660254611851338318000687541778050361225361288680882343407875179267858411612030694032063483521641564551491076092937528599558775771751018569300357998197275660870860437427952930514029929337706860467312881434609447874846808264984046736188249608924256912193006642570431804830035486069060436179588176094021659473339599149669261046264387881680562856348910736385702882640220833299766528443245064168694151347984587895443704174927735371181750670388119334047536717432648730796636525055408726581111391912251998875468987069087764523062487509016502731762200100759447946960343141857378516325745418688053905716407245710077677080964171069701553631183457166934478353100360987057695818953765626973229569428866669074081024011359338315241193360249269364970462541979595471902636870806896162627719908503709958266450990716521099488207918524610279582957084294116152637436388069362083634287342411788585142925302221509877275566079983062539781333937854267829875645663368039424725332067561188257183458467138633322027442259365194071086163038350139932357126946963191188243174193810251542021577385093372111300840479948910541142860558957529925628294124597477949709538238722115708825763836294491335581876394590211613664433086639922733152042442259563074201421162391974839301496336744459496229902081018781389336945916538534107427228090201791675618511125129891149440412090188020686610351756125735789347700297661659431200684227739152838585009532937827941858463842388963201926170208407706409341727573182505142026043959277443950836509298063716338866519996708204834772676291030165657067093004824812796430808323320970242980304292911509868123914993000712507504490901904087963624282254783867405674883904238526930288320065308737876181887005388624392277906557134777982927539475869363104997576242800100987674256037465243304186733730054272134887752406294992785427360054964665419224589316587176468944301859303044879429790591396377321662541433953020237899029298570254067020910666244693517217887462662897076533920434816961005718656290889171002069999014495215424973705600122102029549405547139417822869062156932263112779939126427158171664839239198199698993895372356594965186181403112940572040900816129587426203003575390099391145312633885673001966532529345562342423240904941248998785635988780909356971531195309418294522802697698786438594932422304093089926674425440089021116369360645057883649482952308714324289898186149736104506767617092506166789448738559514311519154120420621784843657509507606482102325832547616194713692785039339508809602305119532241163701842404870331352815443740615662640295163312934562774921739533798983613306054130343459027602717586073598856901488896450398982138282116909620479393598888454183266952292459507164503398615324891471978430064974063415750151590205405913136013609635672342193313840798551807559178927092389623772328834488387610911638683352673887342343044792328358217388164466567992274892933074961312282063381506220987172001282290938958401067167646937280519076714528542253072981723716433083130923403410101231291578723426834707423905666306537608340112643174800258921255637385885921639306520520175166298247875140180306963631790898653089919181585577767334984520817981166813252317742297468059452584616566344308560071197419880003692911933025673908356095631199101923135341347220328827088619888496948166097990145546020666680622162423706370544165619975695913584199124382190863297536938996513727554586306683934790095681497650672544220275824263053963967013830881702661250443326291707426807200433677645733381102809813428891238234180297140903927987066027967970897763529613045086838540966046154069217313517349053127675041545143332346143734579978219283632811983547935463847040295380378396130722519581635479199978708854926751040183951088665126673404399334295538375034174492598704077154835445979192600371128972227985168572161153928066948404510114072005175840778093769401717654924033181570247548454868265483613521116815929347781836327237726975256417068497128230835620063473293628596141510160347879862834239648269292714488437149787644177324880477753640376804386949505387607299669051015922246811612523282771751149413397258067382410255751913309824371933450345123148072106271269826490379661530093719676543812443923921912353913251526430506636737544054661100858033310778294163967524370235250893348024528727766994968446807832824436506749010732522304609117529683216477129246627810736446459607816947455024092575306127768230593251717689212048723629767306691267139414788464027498799580978265173413591733201064964485316137313965166187811788527244409111662695996845760366804726971240443156780563820875270155448568746636358701988317320424635789908529825454741552797250584324033684573357469728818836395927986543294004221478919858088895946007495455131471364058185588875626244751446812015836043176543034856845182501835754882520859812255662634889284258108849756570763546310846609010052793032112662096501440357080443610676030316956625428307417424383805004334548202060533880311694878105582934587028983834627536755440060299433167761950727639857410309910076445909221513029538836427120636337862431069786444407419487756331890157027197600564332036962946263646500772787235402368837514316974687148839716236684190146288894352319127340756224694805185624646206183112309968430157602561486275227842385110800799096034458664956491606747885421769984134395867569005765348719819192699107453932390220065842597578276055131367455028235541057424383599646633119711459217520696873350881570909088179022464384481929022929133296289812911788180647668101730782438089827140743334423136429798760568815179445597590907150480576825764722127059565180327546845516300446170958818075111256462047414008539521833775326757356108654914778098087238493693814908592026635576905997000250737559923013173476682282049280324324256169296631813077642103433405636277405900600204424599895767493824608119781023879210002047100481597287783720344455921254105064014769243872826323160517007703111334400526435090763693209867612620718571027901536163717218393511897994106544477484835574541138860546751667342529548158613929589871229755960088890156163092645862641763396906299221720882800466542703466241290027614572031543513581062547812336328329447038586314812331938380420429004925322314270719417054771757589549437879958678408758355483322508055642768432474101110912746523140657942442478498763439875344097445153012076933010328701217193730509945539151230646071851282776383894549477579509463814323355835021818334597706850847884254017481231092966790257065818843263246498549293812289533018700316746692482823409490234649006666089237125304060560412921519026927918314057742256253647835633280273029860412325942053239752885726351656017196833801125663677371441929598006109819872691370059637314174333167823896851689976433422970174852802094224257407209121687266252267620175363305256263364803236058719199551972552478532398864572958376968003566080716161050658926625109293150344145010072389916022589409207079898299148009515058974892827250587071053288870684567635377713979540911265919258023081880699661376266530836790173794628678861621734475388106269063940204168930186681159630347658142092037676809383374848101065782645559589884854314413898112621120463339558876650243108926002967850168013972835346444281753426899838921000870601332098492752770451323557564479314334336450399764705776686995474966453177696558355631844848172450972374313870629068443477675051177543195319753562222994327708744464476602820638581755323636010156882404481337203737470659687235095449635410135624394065937151342543863114722540474876761442331300884674415177810541881229237008009007924882326212438354864986721282328259567318315107457247171310476795757358133660985486575283677901675517053749961601021660114983819699005545100153163429439172085277943099521360428880268988708353144453987749547189151827857268663996142552840820075960680387205271357794107687570208618699436387220187050438504268183628030184443794059941092552553416049045917573501249160829354410980949140197576232061785699302551341199900462846677021052903838567463975567511088654431881749470362217918729118968936750273721331434302484458878207026720748074596356669069944973177986143546178526184825094633715191320786380483493450056521637055223365910288312126305788273688714419501379256594862584564829159108236915523811147119775709859103596136602182492975560873090182034429433788955700396427462902757975938874604355301629781217612566788369497670676102915714598315624369940928351543232396719297584755414120752751927765806056271668062972030879101267466009715798715712968352212999773963623238292839065516678738111690259584948799768028342742247707725270818658261490841351530861604097286971608424379962557751528640569635787648229568306242816722173025114664300991736568981829769285434616966626474607080492189894968158154090328739726075499603529855058542884760381976820178476547007961161035518673609334202099004152691311114169586522421864426903549638226024369750831012362538788671275130687243619112068693226638574556449364114028194453989512566508001740058728293063091895387951368905743774647013113521059926039317744720493117497047653010629549403670908571220419975765762978629091206805835100748434509638468324269373218150243945859273867032929096665496212072452267527170834770040390945978769635462688535208519047135558997978779457858356232781004739354530298037243458007340474404952120765341634455128585621346724942295079772872088455345041847228309532991918989387906734991571140258243732845066837268686040953838194038934602901508612909738289108277149587646520699689925398136826955850183500258035309651028403988576230765521033493789007115876915277449211027186913183241859146616474754807075257693772756572434165646901675308091063880123041956719248540104902958288672938329361010142244056234009767864616986459768301064013015077224084817676986505860634972870676552304320151496764591686463038538301342597316910090239358953624881743945752061101537869042883636728380879626619918834856469242418879740933609133377976110843678975581239234300769464710019478600497695961554993870147150113229635920004546237697475405012269939550077440586091503201794757552254569771037006549832191352873200569945773915602990696118014244073745528315433664046124347554811194621335174060516329368464797269939125706064820188111870120972739947017639634192440592586227392387573041301664134788749057984883514061560400706046716994110645751577614105092022156543084337231849748399033110204068401360259760434820550339053061351677563255886937219940202944785001964170279186001494505217294983863220166526137537667363899322795235918570469469631783582512690447929912809175879563218050882382398547944120981276167089975847153996426607508844276510292998092886777374074416884279648143500025527635055657388188497934264949001349451612095197102705880833379142538069142370185630736678722380924975510288526618731148109035522760355736893275801421025805847828310239567281610383899338475478170496622836428718910358897416182824274565460881352381250487147910926068497314615184942674382830457475388412721709090793074802106526809381665039791989039925692960362054755927910456854959164525677422289698379735890066275052725079883516358648593647842245072619352397180092053553408407864693375430483672420284311731954117440312237006714274869289629755610356203211752235219845226530289299449233837390059453063773015345353399844236039432378475123430562113012373822137527920384232363416845472616236282818577078011871155035211910229320793107855249623411320579653464500233358338338717921229655468515379018539062719681917760585144353427185738202911584241440579398106025522751904208554358905706502486614086367516291652789050060509245931477538546237271976506014048885497402412806366561738970804793732748930397015628085426057908021201136110144271110317582926985810109202506481211233238471634911455665151689202307899081373842963461320274881267251077904789021779289573004937082436761104672216697180897021570663096704750065083101971682847852088697517396003008369327503358944430680721890008156701142797602657428448442914276269105129156016511107978314198346832417446039656943947106395267975841952983162599722169232523039786972522694019569040681355665057172575503914763161169712783567792291004105573865478164662732197886858035403059350970874452462634364772268118459101954384954198121054073849951028350420045327477961204315770120421380502717524753938887024283406706946515430098834249948478580394746537507939091827262863777140034687808913042776098350160268103914548046712365682812934527287500442324778309074385093697414318658563829097403240826915299940681272483712999557386647269943082226395309453040496784883673842392080929587072627657334903770339737988436927414637682340924367841185759103220577722718940654914247266945351458824778352042392164524300530368721089689003760963410839418094823441168288064057192899660145720148348296197170183991465209782142127751391782573853043158799119709020997640448329041761121830315698253222360279673623142846004285846251491354005133682852786832096902179406485375518512118758469034019280228426935746557083300182513210971299240512531252601043087941387571350303847579591203177599881977839647762888423376535873226915255232480846171558359882824235996345864426497141509352035830076234472471725080832130142475922167961737087644802332347462891549273530773730549826872783843051560983848360678053738436768667663910461631498883408312650305355213427716026250882925135638875429015710332112711293908565277989036485416718483469418306652041951721945488129398273034919981848342261016854316196064513937398990850902838562263912647339119353704250028595495965102235509907395709665179863070521217350998291907118353959509062418963527229898799999141191456663959836751991603820080825575770725769020817532797138708557553233245725689328213258712310351476108569296198606980099134484887251469369871684099419720190748545015571864526253731988121693773679646742871968682371996924303917581574547128162114266306259610070089985453082762843234404175488634954709034207720479083817322481521015628092045401013116565392754450510955249981229714589819223373234832510390843765107093082512585738933071032316798566288398848333448107227270185303100934210889307228306668370311487791298453461595870265575992981558086825203440872535988345616860831758269058438456545856088955245863572849351028718069478703783143137387854683481287450842502413843164208520520465451514039244386976102649593634829855172727039663323736549312009450753623259481453061014628776538182455223619095694971025642005335668270388866635752161145698872613229001567147542497914603677652171978282381196332543526598492755075169469572802354988602749286862433657199314767902704114929003408472740923230619475485854146825272553646622203617045837349209337288165913189470543011509648236057154918570333996912794574791746037664035570625741209908514534762301999621170117215465292009160365514366586479741800096871575643309828370745098621497147460799831003906453888909709980118975724159978808492378118757706185094799366947564400573031724612965889162466442455594225063170225963079131309670479142661210085254697308289653200526914732713268166845289317337845680127353563764399267617554040054953697240193630045612217015975449039177211371196042183296432467050889293091345477737398880037792737386806689754451128075512240748539036163744427724620952166325976767633825563977150499276873792133137544133624863874351320163774201775075732230920243685572907196794314531064819985852726277573666086697830698156817019362832573852691008879063981666939682908977462522654306331343195520950673266342807108315112301195410729035757649756579638024002042528999960565055965136657986000935915929772631214254287557374575094288305595843736760973322169177761545060059128550606214944160115538432667626348755172706280899978089882841027327241473737127818754355365418966506568139380389781714864891424556155394869710183064874581276992113081039103672515983797316873333775666589260375969739633985301924838990189032490406613113587421647867669891402954509211309272527301257772470453065090477329538678244602631327324435048242684116065580526798218185194971032478578989097685430638477791441668728245995128006795902368363500649867916490255863093683390250624672169042395555124575529171660152183230821514030037343967929273635558992454062536301126424290914529808808949335927864942457240483445343893799315389934402981840011373924484880275894731266601873475774442158244650225542179356940792717837348619249013903262613842491834294053946550254909115171916271072270271739799281718600099126750684934534507090844948188936628092199958793644842366296381003385128166379993208164270749482136207636119673138688981326805781540231481840456567522570671983054234202760046161304932650963479182410555503078245090619378756416147439516446278572007001322739866848292143264762711778586812529343627200023061929385833438097391062753981869833363182968683448288468718222851459898142556455157612100584089852387745430429065440352204113739486553989041186272363925105210626796521232665526463914179750853193389585283313251083613982669810824521895871470820810186461442766365912496803194750040458464417356500363943994947415940859881860035055691670340304568873331457800003213449491747126415443999478635269291232566317820042854659954712984586465593814228699824028321276148068843869848256075945298535930819342491819101231866145908985852727586097230930894929375005569023461493815624840300757085166508198906295964057846927475073625304930097603107269816770898411993016946316191306141205080007944593385012126528349778284493719551962782282736684568996586076531534764548835009719222641159501056085501439680891072717653333155416591646070448278558044506697677863735626029261788167152679622147138310717257540157924989748470397072265189050154077455992699605737007274928746461698088298909246036953612166728091162041162054277256330904164767678023433660437788464122729984686908087931745343079448835753513396239013817157902358483250000195634269397810510708500212330748816110058876399399825202897441476485203869383623824274764575187326412292458372480993512971014683632993008592743334512842952495470445558047369536490360372770908053397234084041191736972034877136592857349725267724533591157698506013830926922304265650439160419662919375040000934441577907994595174067349742659550728941482427954947584061737127979368187697937490786600045687990312897605135698297545337477054165160420363316020632196188558508296543564948007889372839827824723280241519154190735145868015667482121591743771754865327187029750879071030768889024419205939159532194346322872957586828506723861775335039939487552268298106601084437309351082808516032584526688360245825801396870323488433968215289455634149362357131221628315003966554758483558128753329132124134049109298682522666928936945031644762637712728893191500363861152862879244982412606557498179535809583169250428882749428715762076629314974733431411984643624101715036356279576910920680870880011978338881471552428316040463467387394406357652271008833481258645926705488850320401371854797226775586886100013235964507126840744728843581671183276977592503181808331251565576544258630868613926085065308697562391634488338108152153189229770035152722239897499087392633374180449676278905503264618076151497847705788759700417758865184978042130881173169283266092896081085781010056712034311097526837726844032082140800344227595371064679346440323513554930378026766705806515469265440513666062475907806835510450219980116099703211199084605928164411142200144521276218798274190104354273403726175970139281830962306170119110214731180300747999827869977985236624674823149644240623808491743589199985214509392135108260699390571252870357720174783321377794723288642990758929331104576850364554593399826675230825923763477020775348202199299447026116723702850716633545391621844287209154870528598698441951582696892632538057691071213806784603862876132695083070054435488540466328754673221634495701871846389350061146445866429709964090397640455802787706059061944240267016188566656757071189917249510365398982611675771497656039182902861967311988541343257973375255274440312686571309534972698636470901751439471326778343457876505964307809267688938280220673110865620000066038699280560422435586096655705034783899702418040665887194803984248884457098836332956036017481650366542211272489437769644971563357812278595608298927857961274224735297552972105177123393585266781816641498433921144532898638296619497008785039424453939121536143599368678593771876723613379585119326030899656326791084832988686171247766481453339970698670089938409724329760522926342334910060354725832777542330323639750611990540325907560474630932993583199372829302741918562249799732208520262983040488987906697086506261980460400683978883340281353986798295584549592931407828834358107673754754906446072832277798959341238592147990607926137520854584190370300944568797827412801779002089801101776887540826280111715306759817839616147197372539560795302431736932044272293226877347431512868263558641697839226009815875335713097460052390194650167011931041914004052640548019981868470727007762518004204074656265882783506628592489471226225613296678585101437856096827674720638594338066417623960151133069007519937429137574703920115019013558826349559721928183676560131530826090210585145854718723237712761079022706503989647133014691349502996626210339128203557618872086407776982175328142707510723539583955590179601797359289084888896690087098624891564606057588829099504475850533805954971368178898717678535348896409081082487148341586020850002884294572228693285969061858160597285750892430668532909113956889574119745030411107486882793469988000889780493483513004472241420023956090635289173054476358229257443453795729727175300637811806725300696895058125189981285940362539586703121495405450592181442444914929939341987797314971739486073340487159051374379748979219137409958390520571247087161463573488480472571319082015470483740400965803240700596826752163502343792108813257073026983742893641050977787336413420609778913640875203775170913618915275841918957647692134648080909392316810987039356225400308708926415307946930116580813083946886011160910964440227299648401049306675674980773722752019342325199049491291773021082231938391643398832546558572049327711284434340632231322294677345696764802570927390360566561546825374731365704158317270054975605795995499714628978157547501401992268843308263511020088654259372905759717990371322453707948008072289095258883914818536148683979710606705149437341040682433134990234931370306901899112001679770247643174644294910380180075826966131771586804449482843258208386312585326003396540687747142650726925666294475418195696947727949646205415553539235541459572931853327698552306866851615622087919481865416850535417629886284149243421676009994026043384862378756407865180132159980827546662557391229382923269049178357035480541628256083147669994585448719520998197721341761465009856839580851910978913646883349580027842249795673953147905404306344316524941993939392739876045989980110762027161263526453062887930446889898718394130388901100553265141048451861876526331381324392559975029851828661705666370663565500013081030011087208657229712632636980447913413184798432231480119334920259157616830278105671847635416371830733446412090518415907973020760008688258945160087350435523282516508044552944471788404336752822116079030184974007079647031451479441159274854967280037185804904936775394103800358708568779888927565856474804872006369960564907600971050254233383355278559138474315695916135043266840624000811699633829463569014566832729212335607102755609871276351574419570757022880170463788260879894862002149244439413171476247865801682977618108075176409383527821515271170697106031242933584051418204774990520133867302097012085571640391040790369739202544960358934347978201698183549865618073885689391166859729688807062310390132122737482539533821790402778922707508281537418662290267267022594972756630691302219269620337445221071112634298902563356099642229618546676357495833617272879578474951971929997493205485912196708126038763497145193772770478237720030315873496016473409004218799771573790961045188471279394307040229232394198220141480663953818148992318791407721520132858702882338854387331016127899903734676286721715641759983985875540453439742813290615721404162438824397450364069462639906001363890963795071846128148977715828999371511826027921485958956872558047334944876262824859680258095516547305471268897487614471627702540493850340036205635541026146920593522729722577674604207776768902364583589683271470785851039238756284270350905362298975796396980931076092549339859125963323606152975785152692129291656143753636576579864122180337597320976785897959571781314407894563407339437297139919300716876993575535536251059800894939096253257339397673990428633450795592229033209857913454264383805227314892449810632523702912287639615971580670704422449655347588999810312206146192504075615403113380627803004159633863499021579609478745855387532425826826449632918692296904364907985113502433661013676247421796800676069751388811146552147557856818082687132742472567817112594292765492517002141507800013764602470815385408139424061596918696372291601655807817596350815566834296742035541479247061794855605189609039723437253914478000693363094387432331422962985605009482159717138671503564511994011904888610684405477363119760362565942151053062680548456248078228978073434536838463155661502745837121698577235106099758557677921633303454471003756880478751582472635367247853400213957171455230767444119629575295575727551811161497193534937460596146892891666555756075457375823358517152933167208709934789058160160684194345352057050325377706880019701771159406810062432305898492759229484704735246762398951319294257395311156578652967100142779205350243438103617914264786386661494767974268705113009933658724399255233193186223480429891894831139406619073603278528803959100769409960679588391502378267508424364966973903642679379145388917134803678135692049657214637251692858812134376902527870033820594399745739012889715084989390823047583434919051326450920141783436060560274783216699840689947586199610750576197560976726429290568558614191629260571084919006052234399785134144250929657776572783282820844963377343272218725524834587314047447900779833186550821734538086432566782971912206969425765874207853325734280980487077520372843553646365402017557172723927971655486393526017806647175469947241992487306721311400564776111369846360602864561389747903169568398680023102938389410107822613328192842431456007528129841363441952329224868449825468524993043649308288279898900558998215186616547114002873996167572614000784657969701243909402332783300170714792072478062179127833930266480924447045217569057385176139000266952704539577222183623557935211853241924790287267598876851174913731194290134599995779644239858120835142133280761369414408596998503745112613708921648718010248299125392486865225404143407247623161279766745565765978654586510471460952395722981568517075899669768346619694058194784340096664179947242181401622052332602586625616752339947479274337032907223013039006081316823786048893625763515271406592162177171239541491526865210091048304544039407727655779738495002751207805859469200845287119234066098755492495288068146589817545728143363984152683664568011581945977427387740161240350498973608837437663655469305359945152287215662510049576984947770790530792652658398372128349418802503554943936931671696200756975478898936303666181925214039439080287762036330391081812690277720623093663301117196751398414719139533251453047998921238548952078824906159977224463750909032443654352787007465444677830577330583057860637088541818053901452081442533043444755538310584065175779754098477543752596664273682855189563748799025179044545327617484101066328049048526692759985989955464589854221441642552385608586742384777126634147294447671599871592836399121403115403003164995163247259367187883562064119409004700899879381004865586460577252424012613217091399504473192805154077936263956705016003357683478254371692965375553515850245748584860144385569009730788309544237696775255621764122576409499362212827339098511660862354863305425583814612655486630201409254641126185030116080074188904609757179933507990617091040589907380550565652558528726136370054102687816762111494642229995830100271369247636371108442208976184234310586695618048868057530681612734260519755468166756459224985102605248238285174585013022031004448453070214616796571167926187563944015376751032778204938098429406537641605826007365432055700616932930852923073883707965902838282940782217275148257150981224913358389100334359536381747594948325300914660874251118266740199380368702027133736090119712477461848123717057161957126878260422601295069458042142589814209555563793306765429449472342452946529523289814506223153267905407322620933222789453905128150778859590966974099473532090268247574197375023117704797600276733553601988280612874024108689733123435874135295037721874149524930953116414710072338037724118821881669298285032294010203846990041983886481656967415310494483811444008403879976390180928739276096138728668121006013752829065640181009839788188320812219010195246160028584948394454425928481822025193297425736920984219534923909131103456837415039028853103175421578747754314745866949571828353214135522795230876789496197765310315702450703921011951867292984188586834191856680695295212087290840459925976200307825986737252644857293273213995965101097094787103844359549989094751810384702788690428896013481838050446610296986971040130184105890581265181283695011763686224722737401659132266624175131764354063616175150765421158122390773841652591992207641551119707465165511233856449066039250475951886800920072596271953073957667368268428389821254404157500071532744701623857032984451349018294374574267227777262671567978983096068588984653339587222870051597467270397521569335758620365510062513134341866109385967346630549106388945224396585927379559751784014687831504293125926996725095979398003714437740030316212213614448047947413536529028792512183585643719363790063618235394307175745939847671796623218692352737331848994507483160018972532985916808150003935657162018561200278628555440254103125531804606588088374438666629973479459792182622422569593237665645678993636135482774014962266200920844616710498232271844191546527814911313553584167664181586014457697280252202069875423233005935918037498244766853866360573480658959886993488088467826370037353283446992349504106749821779375791951768217204377123599224308932133137753671839486963998110884254202739100618864880558368369337330335849336558569508975342523351293745633584238070695087384931296810006773619874927123461973918906682945469746581552633008146547366667799192265928667138949859859457509159810031958584547900363751632742776648048844249114174413696389186292053676286195319671099377166250886535792132483574770290809689288099443823217305155885203622326805600204331874528568588818038192060773308650833301006352620793383192233710591356315225533751460823174036795779541339499842942152536038248154344170380094711661786500433191592227864964227612688711757387594483160894250428478935028447751204230031739676893310340867420416495547064821095367097276931016007936362912118356706821041219531359395066308823653862257246639587483532082466401287138182855791974455425690694713575582611478664043923112567506724150439363514137628351271269882614804232196080535615044809041352299156580905452514782047439864195745735134780782370885007301966869086378268439615511668573924886236243106191050068788693959521368755235374890643223056596250653230567579358808785150611239599343304421776545782602587042813594742562567867219317715208137950871093008617704521569007860010163742497242231620483445406183129159027386863586272566596699838234382305823287799751757690548703860801792685781732452051591521018756465110989312421106317396942934597003073828242287486787859440186924180494862920221602320666684685461596897549543217355392888573407271287101089642946799032703174759306713575613895452907386355626803603714246657902370507100002413695347953900791405566627175750781802992535170851987256548510001235280749166395771929988685877674482804581773791979962824437107918522634944148746937064112548246894363732386551906080822136621311867007183451380748523985905284590725769153707260007083685720853079399170655510423911459651221062198243740100866466366817620743577868608735022284441886193766876292799616084105766352560231450874132970275994332736041879902718473039635025502791523222632855160485013920130628066769236779178917270653897012498463907025497012157106204976844095326664796329830210604351491597040742178311248395147902830701535270273849348814131837528501137212563535885601241203172048264001234820450098766498621346273953243527501280720926487168462601055018330987423869557119885287685363967342640211567706313943497760004614282214520202716822204273315869716594981133939692787819647109383729245768562122788685789363299686347763115135606208967375965829601320289281920146123788379688011081568518901349616121365573220265373706127990817471338678255680760733999920001852647632940184040766622163137472630808283086671841176164951596114605861015234875426662896175174422157541828006321283454568065189453047254876209882235832797391485526092616633073501355551065535244469917830784954274469300453359241259329783218688934231269199846529834443311984901298323611040624758229911044716912231845541395453963199817558560951342793298372211407517347751177747611818024340730680665840098791301150698506279167802487923303982719617097609499908876883881840320959978823113812514760151651614763472175941641289303249222150515771351392073236639297837786365992154246606218560417178870407522881132373015907571358744430147934511244492712633417141706713461169609367061485177095592190423721681917355149883981524389533211314477618867870942926207274396695265731000716848896912853173166282548308010961877071136557564307317256507466413591493208815584361136625313636523494145152823035262142975054197509855347610640774582146381238662818558502695141864221624113552680300742802431156399289823971297170809526516752935819588359021705235663028316867939056040111671418889910725440667647480983718988541561295989980885304810417137301221997911082668798417437918468954342190891924196620288604267146442242458693872787586811580106116922495255097114884434091135109823427974626828490075272348015820889135363170827993408888855943331383094215867931152436266142635017327171280840553813852111114817515162405597426774073860339910166490684319101665654724605113238862451238905835939609488367322745702933861635221493474004354669960727433909516528388804004606631507345852119228651893219247979314288115453104280131531423491567440910204933538520948404516521628070793299564494915819134871184387909832486447809124068505211024809936369734209278432166895050408661042718525869595600545952018909804044781903174023245647741545804900602728183790709406987316295992686170941027614955380554855337839644573533651860187615510753971986675500593696947797128568879545293196230844468307583687923198828216609245617875250933169012037663019087748293887125074659983428833460908248887414704306722043300731151860280189465402729204451942157508325114269837731404251617594091094123320476497772795201538490515953677637227667380429933607417322503260481534552518223292469710496738359200196086093378650056357863088477246586235580874960389479439684607938118278876807533115669523388866837652981199719748897507244455513251992459284698433479386353738575977986714349673980125252342271692551042443076854303489019799308589118415428417076661754164599313722951913255948965306861153750758930306940710658158767733779778511338158228315219096757866946139987230713042148369963977285185291066282253417395977033962561474866782825176706670646107944749223397830778567216020251590308639493539069376655365218621881777060365491127152702482795747771481359836212237496294917340084089702336378746699797678057509412978314346873764296904338840424835963028599938024390914793790716599351989092785546154622479081034190173909524794841191596558397602362808804934383432768378507169739490057335042636405950433727417064921993712642002834444166561142222026946865169694364307242907768442691462478366287385178456176327647727244291152385538193784685656825615114614992834584053328076033307021315808966958430711660521610118470954670321662297508358382114871667334364803163862767321980780620336607067617824689348541896135588995238213036785420019839321695024199303463957703707242860143793062664491336430316330223653222033093424270397181736326544687556379694149437268997985235988621067230652668372554951753273627613471081376821450532283684644154854050625889143913890745093374187984709205692780774764307204110918849858881162653914811018456895761935929074484021849069422551430017893334214086080481822431014905237502266424892948311578218945320210826373799319689092725887462657775182285985948173952294102492671743669244824894792991743187438087529484015832748577658465012141173442209906655437031813421654062048173453287018550957909608777488681314141477784749349244799524484412005905653469003463244061319892837954825126565824272232569226479024041393397197559727794358421243120682975044456256906833155561319266762722192481361931710867685043011333919894365602039682500219827454075106752434418365836529719392820520674138744115706981985158711448828939377439062565782077683166975514554341471910542456031701596195950183647734838876784041967457387891253740741474626283908129389580321287173677015987162746398906690450284596248306260427745037428508122002893760574887916027041287353860097080620342120128069055403510415192857968689634091407373479608304408105477544718522018749201804535902861726587993053966202678977153350264425488331974184803059730234860827925018075010188972290218616768304110883090594846407152873796164737176146306342341582520449678485358442030742960871057411357965339293295126884023528774821053911397939996794497043746551832811886884724104075662000908106696757443375432288483153316510997229827963759730067113141048268261912570729868869820440341449261691320192818776219698425332273139779761046529890612134133614980637664102963805947150434762765998063636344014373008442557854452860992709457006297460255626915550288331500532538227775424351663749792034107462136821591248813778896443068066725867668637634929254550295077566775811117853887514497177040869095294169157979384720911987182088052602494411730713555905890774891511153040669361189500002677850438081339862022884986792631667540635195614657769415444477095293058362149668364937568255587028971309596492552466845575091574660554921849299738960708291521751315965701850464037903706073312295721534695672275646897606199816809959484240248824922853491299169266085192459338654570254712250588713570169383115932687599093199827563544555044270472216208398558355024704606057574611589715219871959393695771517244928353632258654516458184246576384070173280092800674443937941435519043448790681201350176736887174772299536578730248201844184229670491462004682643444617150766918920684548522748913297526147660934057122905482884876699393006664475297212648239195523958750153269027026188861968564867294857468505368182123631759416502897726343731802407681073357184783038768752296383525815643485161364123314712387848035827067027039544941314658157528861695184894374953562355325928707514996098974255304825053432587070345012917898683347388357855561743970020477276123443373360201887982207841239320908913535372413858784539478093780514507018224495905981297985134628149677695858321281957418972443087719270655179567196369513727333846219420128788333458971647470408452723370247750895608362247306374755752495260379495617301875803283891239087614551893655843154190718993895470455015326026012074892507649623346001898378465870893849528703259831141272064987456523228075100048428702026064330860150573179988365820194588106101963965890026714504237023493109794108471780312498748366270505685212539097575630517780102487554642764042308736044541014282000151720977294294439677617873302546675142489721348503004748076002172054616531459818661505000647680945663448529803939839748222510397497786044175487856323605052543882049521283541593692234832389473026936343999419521376950001484732345822024640261624695388772688038125835217506336998694163834944817620904969015671964499736566004879778626066145964155575345168077916623176547449838337397044522461596328906516760841204320393915510742919454748030954957036412755182372541180397348976267731897335635185461675788673514268988993830281236569051371786823213127640194678786172441835119739217679582015128204263816364600967814518095346455986909893512744704234273460365107621393591209106485704163544777930898423239494902357711947022782785721960908095889945179207733908708377273429123418578220093304369526883999734875624059939739874736491467908838335162885794096204175441341320767464936458108266305955819413460228031922372455739954239177047669201730799819229392156613482131030926712586244582730678443710479696221921289034253266546177473982998574301766949000388072414337170878953361500469435789768858033201541089799966325053025258755632185059568837154762967987360798071774577417709462375975425554420410802923916458729503577953702059619706638293983176399932194620451495999898498588722892783956844772307394919931492656683210774892138615971522373871484701630227108534328076886035085899186067266588044644684797309133649121738043204844919919661744769319991522407334583256638570884578053531498367786997625137054798353457965771596721394057748969739601634114058207389841209274438822335503480404460601315639119077514868082862461612428961196481223496675362657616263893894987081590156077436392324667948001269566914335087863746538012264484436309536542595506188304914850601434839990393739706381249931816616781743259885055211739448399201428105913107711175919621123053441549483114452598521488140920871979654022289949131703359924236123952840109714518129605760424725407864402949686139092985034020435162015576994232533358690727506168894467643724699791188611591724019344240870919343085731250285291727461755593678681533175145434028662924982425947506955388446055424160312246193318289331880626400217071980428289292627304925159809929702523075348460300681997448315771299922325397810601131955879664387179823263390472379184876218207030394686067477204895584722813906418881490462575448566028525979348153328201816485665701382474754713833587623646476992831209882314400591307321241323780336177598415447787385512951136554444153495329988664570334300332958320093738287925899767683441945965079719483528677740888403218333735612551166254986871861379765599444918651919177436200308785943819090518082710360599826666156980219138400595650004981575777227533111917771082688198960616379044661622436528198741936967429383574258694321426923589374367697162158200017459520111830123744325105162350502672938618987584815354731914889460566084379533239115415892195507331665744323717847110212068107756645512836798697700767662548582864209534421046773089923891452699427401479313691167288695462363469213174624456163650048344666731664512886317772836647955091396614704327042485785384812965234567111429112517309546049608350793565950271758139611789123402721046882551005044822506339604894523370600220321456094782273856596747305988209915010180215355222186805101884509865353208710396340657005790979717359270500260618038319874272359494965542554806564462513545092700323228397318616231116175750567143313807389739691752716847478204964770061702733337394805817322025976326238527904852512779043315852161113005169343385729944678273582174409565485729106499516316802648076733027511961668596400992237394442446252271379655628745597666275374205572734284335133401452913098068932691159652591511600893199344052789532402460581714572029520050715688209302229243625888491665762226014796176600534634235782703203871560268062474069970821360988799256876781935255059852243099389062619329827656927460898369411769220892627095201403187935023283541485843821041605987056703556170925644596191756744342038713477303139213214533554685793987546612800233534613328018778488916697194087163119430910392486714230869502063496620334072226573202596696177696596451027649075412165807325614734203286112190996626623223364827471686532194462417183992706795291384265542860646745514010890018863240093417141732357478140425876318775185174832449602174813379098622115822824268062776725431847757391211002558169043897316232182370880807736272565757106700606498230451771394217900220019949777474152578835990250948920096216634991309041644419024389102014959143264951123113334639334191850075339295047067544546804941465700550021726609121177196377820577295495968517406309473456420765460363295720476422960391516436889694405811926915986119068249397422710934322203053504780213482913487825471644288594692052546804196372471257778419301017358698845994534659065118973791840532376582681117733661109347988372387374585456487744123824054061083631148662595762925894058129899111040244357923967498299114453668513761318724923827584040368195015541872428874600297618773457649397912871604287476879391475710450836564176544348690973433445541528547536462114995735606821080873291890964276755456287822482651142104973607359024513617487642586355154794009082384224503049358465277414241159019191020670557873460551585286686636583481291749013423004719175626779715905442959440928552493350677163689590636085966277318504062056500680912628662915546922652940099963643186232342436194350556436069926430867946613882991135397630976093220681011236237053485070153772074688305567114061229156813261819547326695926622702432724181470436800051068839268451262813130113859842700290676846754156467191489038545432119477163741799123750096249163211196806100167009612649412053290437474716967585787625857561724611777024627622431354654566511636429392367769805013983858982151322532977960396434778058465498782610498311580562871230491032088895448095465849383987067064452108091480101014622469425517435164824392470031249242371688683352963044033809329692209018608473997598485560092061425206589597716054413608748569496866748777527625839632456925047433299600863347807851732781782075878004163215607222632446861429070953476377355500785841450223849210700566418819623332816097367142635788080526958892524038400377727652460644319516161340453496687508675383021114379245733269128228096311133230421695802360644696655186289747854435237469140859743938185957844017342909230023662315368519027976110087231532832670640786272894311003840755081030860209029621466608749301053447274227404525977758479545683518183263797465434414180188704920466746537874130063353437216697292852119017646225576956755357385976783584647124476118796407575168355584914156085874880102277275213044847564233782746859421940802763791905755408609131000494878223085543093674243918301825181000347336542427986816025249563224362289145465215389419435860471971855675271792803226842167573851920685996211524317089475029003108510431150619388059296115556518406929526796531624829128506904420320842449311015957363266702988582421336600185595740157372514008135173615012757332287077716920424763703981837357080497557188900916796708263451978916940594977026033232376275794849642317594992257470828179895568338816599282080401399238201062899681484874045734284122703441387625438526265915580246338006359651443698211336942300838428574870735661394561961966225699835777035088223771771538095285333990921095631760655981043169899636623249002545319930342027911129964318261840208212381846690856489762238821063198866469029758117638238243520199966214210947790587246256451116173814283490444214054835898399958085499271027885658675385294144037086640504711294426298186057088916316692259003964071029339386391848383554341430775862454541974199020049468877919304834728589254426848238628090600252765663249882470922389778851564514173135610747261976855329127952087017847024148437174459495662556479950329309507552590250913562263950642061416173143304262266112154186037291087102120420497010452358619287129338343903414723338893702507476570442360350702818000919854394459042021859320224211490074955962451710642044838477999382597515405071539285351312732789043903068302876712652737660864887357556092997656439442194591108799526274518994925326648174396861974599006035184138019300576581590063951898115316203321063329687513604800061477409507215141210760999633974331190065175967710119202984707702691157192377757893299548753870092304922823528414314561364171988301333237843326815609262725233239333683336375163139318189863865818858222936028429585767161654499735129358600962139364502995248492599724878585049312700008552642471713574121390640871794492652551159594672978605153775662414100588419804682040249863048331128997216708968717621789442920674329322802433572499053450841507958181480928167159938553914249388087990404077143015234133076895663893490391397526567842606897859333311448226887399733474689248711126193996421636272503115144525821012866833862198311496017719757238454666954369471876399475342958207127212726127845553321349178362384966213084710082954270144552462968265655556050030408654063257334509467775766553569586089022048934734485320655593505270266367021225698126883412324346834407773099678372889496744734644501978011111381993267820441343503777913782287632264090185158762240007009067661112988829400471733509866870930432585604417140337825801320983981114703505472921838133410472267234549022025198087802490213772342780741639142475242351074114901950878600700722315687681146032622009688581031552220981047481826039393788195692813914075992980887141131052471906274255753161231067541696903453307960457350644449854662125949436005173234486479919604236850586254373996692804460151573698130155049813520895801234119856611571686428387930989490174537688025648841271434155848890136800798975907504081466510307386407093105258226155680287277892483955508384680161701366802921064951417939832088784091741156243333073519634489997795434211828767625429136155195654952415314633346397107227099479146424252594991235545667371306543064441511605818110729524594995685428351203402613213747801626531487077954010396705140702596657860250078995254252582374813673457288123892678040533123999003558271619403035928485355072298042924369441105591782959878751956982001852152814723749746873808805259243209417339183826235708935536267526984087129618438807259703614410891558651959027957200724441051166213510401837358212895128050337336836176546573798987199450323714322530275361025273894518062955379338273304371546494846303073010603487597568963854007415771309411347127622674256325429404950518301099073107265660470072129513357549577013758897111582567803232511778931155396969324464983667656714351360862608752033309837035698286872785731809300255064046778200439139771525880811215644270632726511195130629226001536049323587697103670331772632901354030242486242544579812658970867718720044340156903030759703090222887156455462017664907373869447538940023444126037920086985515191573235935928593756201634889919811644067043011824376548005007337719103090777527200417324328493293028516957682375849527803295903587949288290976102082358992656974357736907251702248810662764789875010160428934947599209987209918828576582405689505603863075761045843494078364735022957913506689259747436296637816989716632782464404384447522185548890167751332577489884259296814924255020132873951511984183566972111486446255752277549388818894583636801592059967246501012798330324057718747867247749995414380029771696178081537200626963994428490791909826873909368871277270026259696208908074628569406890909600560450055130636555729064868406044127541151842716685844185789088704454280594411715068808984360086992073706953846548612307362597356332963973319461087963338157926307159353051390704252796557711761087126245545718478592070922744707875527504745141616312828485328650417840381975245396494707698200131877642810376339132487756053391976670663807152350589410842136988936640585536071419936567902925135050046430443678449177486913369252684259623914442205386082867060633907051683416854094399899427328338520584666303072850817739576143863420991642172969813566965600960636153703252622301205363373763814231805983001903323630982046515597511796643755050800333375443848990222850032019957189282685813761647682202858614554998468844782948341153820193495607876389865872444116618245259225465855596630638982941058694285021574326359808303593854481898624934947005169810831106953210069197538052983006681214017501000103621227760227453445850314676340360506080281831476396805400303725847816304271350781117119478195774047324212837063121302055587665433859418755055075878192371684088791396429480525332845575100301102567338710334199036028446900070877732969330420289551501854936512771648972360493206804468905156648769788952589062814753611804104941763057180843880496803575665119299518060035127197050119883568076311843197277298003154982815836515518275757404380998402108831579526430913418035684971630317372888014099068007910153325334840281342243673448818566995290474365977083648034862554723606402521050290359182577661281759479050592889130832345936025245813383544486192835231943425058128103453371334879860262976871239387016803987466918441813337977591476392471671184769694341992528328023919997166145079956496021941697869167150586137248767166506390348796980533421008813779818309187941587455925543146304885714438201265552089089092042960346351650710045469777972598736714883204625366691570265964517732016466421429475760181553464711426912039731164211028040404562090327338026064041934135431709381927318094121969930670984779731228509188851745476807242606970003085857500961639742969418548829408173391495163034261259273309314310403887429238931949542399127770985674309288305685597921170293220721888932103786756631409828095964285602947809463391921645907734295369640290415058796011194387605715067030557795875702325568633272835069924542808737019002525208258107585098747810273128478196418745407768565536474219551325059485875224534775178547067364465014065886726593380910980512040943324394439510136491585038003830069313118826970950043158373184845174843488553801384030603242829695656616899282873404820138132525213952117405277232494136380559244117497029986446312532736075405469987665420166597132460301215219756222380296217278521551498347518879809708869076622633822620076698242041693686519592202567769440511172893365440818668262479965608203929018416744209188883066303429635531559774048134431886862795076041276897968513342283634079931655174027124754569954365334248287292723224049875489000662204092797729905598719591727664087585457882237006455773845300259842544217668617706280957202686179129915417501943328439890359344757646920570110623075633039745870831475768130291454606257329430433689317885230481416869451633632294173259955260591364660854495636097597540377083348584294967797188611150267094401676723828986305971532283266289978993262644679259610717786229450986680016670411302910208098269005679228212698072468427918136857317108680330141367297053374669384286083722029275739510654950076251183454673100956807863134876409858880107420582964279263405418698588151537897245515162939852223315124273110066205156247918085441072414689177533030761755862894044347134028347967090113577279745634136303900747985025141393035528283902959763520480501829133361280686722118632976041162294376723083849602836036711811822525525813891569357522976771121880244806857604287532246227086235674572429245825973790932897838985126589695663377613930016219067008481597789784101194541475811684735617146287923822385734035111777816498189644342320592959659058383139230258680738607902008620360008781379213322565363213699419852511657006564109608726074022319356597153970034757187602864009462189660178169921406647702004035217615849916250093169480338784842343182638966971447540313960942804214107633409196741400050544525943344628745376475271054554727359295257114250320488766289592288629415473423245688300480971300255252933901589754088103689869170472362721228431858367174229415695345295581351697080590359146543236160227203435452747620019835473278096462924641934686193085416828144994479740843486829266463558971508002216383301792179636719473472213750421259220637759548764494568620409349274959428054509758579699393019422676130713858186925901538194827495482799259962375425104664062999749703081558482009048595964510873559791260556960837688018026403614526856635313093099617303979231858535451298875899360856619724932523617137168255405542044792887450245475465010352991778618734781219594714749381732200151863266474545218358284130174172015619731436083978659021729883873228765791762023049999800708747558774964773137669383713400098725814300473799724607822273854535217793587695641684702615452029992681134262414207123916769771492856983073641367112852694317038610678890588615801719624949649689788915219194886794307996337760456079992836549350722943127553047701151285706616246578246692850804232774975978142708060324086954072674589356596628849005629980242390065629876450621262202286559719482947357656102855292683114442123276207272085062735200507259301788664351936776047316721796892864615638345623868076715102095707104736625249611153456361852944001887309939483595218092112501103728032925265378556980549073512300353018168018375809182223437865972903256475551802776608840376510030403873979341744272987592368092138527800136026089386219761886776396695805925043549221719837809444304570914329270048538992841665240906058802805160293891509031385680544348006446095869863013206161190079957004814702413552920406579804349596205785720148578874722957959544228901644381401194090160093968115851918170967084832393241312359069257831212525921065626663853619031389678723762397144661236964709108971085581238417533800870842791352478186052158152430482725921757433536373762364614887807932261323054853565569766776515787896512273098020079555423853460840060121110116152826642698610855223414542714866253161740590303550218449306441780514140301197865250546025564017227783789659746949426802327863185428440534013990191145986513875375496015298647935148733793389712863073138382360195173944019940557835836681717008306912513689289730629741764720185334784358582385452688211116395884593138108922829548548846023656266937616896386255847046190832198306142187975931768323533387745543140688368984146601269123148226959619470413112966912825365926180907425170668714594695961183371426300867855477904627730989755794270421535758942896751308809399722725536446748890045498834130936058491242987720160370750557747531457232590001244487232316303476173834266915001596357707551218106383949841794347409927893385308564860342522025021566091118443624275069117009838888651000410101051503284129107810521496282413363761509172293680410419422002113009759894527427484658262685003672381853188911954779142135833452305023339124141146008468123253915684597257107785499857380347201741053314152120802686974239364938741596900693103190548276669137375580229340582100981477313043327184039956948475466442313997452492863410993805835289703612951288461280994083710686703722893809321013240513694877857721669519509421648865112204413685166010966662249898800678183554347487044737105929066164914198427974256781178360133634105259260620145642161094061212032809005700297493240017441822171597982181463712259437394301045500821178862549972603522666116077099877256332521645157505403197653137132865976383827447416714630743442790120618600815115773526545511836454893863481802148733909620243014996506104133750506901338808062245386361585829220242377199392213831640785461506460353041266138498134231124750937003434307120724012513140661689723751137754060751398439131222372181866615028276967646349472975997181299887213655719918364733368776077074148200941503731084216187688028317848754542356712651144333528783104743413116026844394166400987634176033206936679143478861401171404669595151185182001015425170032642358518421979321443620743532270333212827022505277491628560134087882289470663429527284325411109462188196093331029894771105381718019858880730392928334747803329683059086663618311044385113588024386861274172752359003580898108260063549197043542612731301666675848702077093474813601121546775136817905785839641205598454825559880628121965614559284759238725399516516874865264195180982363192588650817419845961858884831596586741919678187860303436046466761274699745432031248603311542329989871223799546081443538103362306400904491999969689148415569874248571437531800934353745607556075880847937908035957343515952225469667124095771973421261023211613929793383989819511964942186139756313758779012212745173526784255045427713692750999991037087132716595338791664580209321752106468461541282395679872118558921984958128840454279846464259397315264292585313207386060581358661714939006029220651440220007150894911448424925161628660912611766701859948053032011148736487845308371275390885447892103675998722934377722600562584587011757833191489112612408643231982512245906520604367304060186329887745308575178233715828709544516067134124263975266060842580114123237515526568088539117926788581335954718650713116003593392403941059112239827489838981429529593165015361443409413553317637560640168320230924462920213760775743706859347963785123717546461778587010672786817643688134609585878598182159978385787413543366613857548534447521126138373003836485958357504334420326172933738518004956615773820671643966503737125530928095953251109556258091934095971276385513562014352908469832274737208685286332908847288535668569804546972264093914588186336305643095719759763800125534805755628945997803249693532289106620370769928108865564236588830792481242519671254799780295085013169289985009433839246961240825094736332262273905328252746850683768801925928204130567571649691048053221579222708993372846323449883077442966816763646414868868016331048468757260677753390661845538536805698302962607759647188354093450455673978198846205183386234561959519963863081164497862722985139708391684331817004893924704637529564558116084885959765836282461616093750074883095145190551727279486715544509851586304066106826320452777673402240069903821587833139890412912390380956152940290526074271531482757992235701603880649143421828028577387643109642749951000616602406380091082917109538407200159482308844680199504333492532581221759850359337228365663587963391741177398973706904677345681601767446977062178775289898715880044802141672459769345645607317087750035679445139646330848532148761278661066919776302243251060783511853611990989629754161914552989282425202856727393935106704452860577662173560990672292733694916441487164577484065676126778611210456145628215987038116299787590590307241581173686755423292136094073359977314060256305499652572004716235704684701590759404029149798315756823913950187424948292632737253089281041225674368782267458548788039125338412394748848306213473477574841857223590612635888457782162149452033297811167180571410266976299879512285085349229019617112979821568582492905903787456614094482422772781130925238826846446667101305023665193545368882585793876969282677192315905386362260585350181877079600880617564256701832158141799674044184982414724513408696089402907358031000032840019803111558648469937568184168718190204865109700986627719450106885389187840786239481526511869191831826728084567626555070301029028341120258127964284277850294868815000761188839291975632005000130491500319193991463090813899560168523189540936367241273563970974310316500450082864434550621556424492345422122269652758054819771813505191706843480897713606257823459168424196006260340305340057514518115695772441222478605189213067872875421138283347686231001702276966819182425886798022601938529449304191530481605054435287435338168399273717189609081101555525737480736995523465580587314299236168215770255821453621306584707745987865931685861474039481084545762402718456807909143682325109436976865065311044734710149603670121806923817125919762577672092202625809081669383119104538202687997851924378287172675841767482664475350157057813827031179504349695688018253451317218552435704238922962697245078022681615268746076926891263823023280292192875098113317911604135346122501268502478485344458139046984067640058664502522886383759538616666219470050052820779761844339325949668958530751835412036570241913086826416898567112478883845726713443383475847714892489789020988967049595468455944126491605277839518958010274160151964598411353104494225760863388352063686756970685303894606828695372295073958399717389647911205549646220481763915428323994392742402407596193779176009539355853689033162442273417361251055023807537599111579878424448840654708302015198877485016753244300338279606632614450042704925763092567928702604179364977620770301481720946569138445240385403847583707409229806869125387698516378105711159544619490568588594786774097752180749056515518542308775313563797192329176925730254871610624139526815452962831853839331021116559998220988625834456708628702547593793751469551894330034997305013024162758900762911247522956578933933272403642631557039897857824418741317466174561396074588320776354518632267312923870599719498504870204983079390393201450530920467890821538782716203820675079975116845162988680579608148200533668906325363774009281886375776558106645122236895884329565769097459024262449316079953154658734080394175474188708616741802474145149048265296667405214629545302495068872647234175091557844301166808261194362609795895831528833356051810275889664734962566110672245078274688544277885205185570785628709055316910236959921559006180968550972339102606100391343889891928667554321720991854506920187786556672160411196010555524960526942719330661746826100804510542890457149085729983745288255960936625435903874826353327155448073218397905384094873429095964725582637535761679790838398259598846435667748132108230385512945265559746035756468110885431182921065289280500121716576467625330874016366813545220490692449125619498471895127512397389873980863528492440916258020056960793016547772588847710582063816483903008666918411171778849155318594067047320991733131176061375453553990005332807752373082857670259606246502507207947499008770522258596915444701618864633019241592097984692328703373267548662120943154207136528993124186805406554192848539838720804823418599053462565385607200948321472375241881736713455914784556850734569061120052077393057589964047358153449068854591438101125332049166382681659649541363761878726755277989619995550433596313359839350809222154429243205012868256741360040977701475661059127887993618298410518222547638569614350121953274981221033993933391889425137862069043778902340402438921422826229593775583258675578566399061628916309818537845259937413225900565888273043769925740797525495098912327124541765330636387503625480596784640501801134949987042510224002707879990988381674816300522356003496328238052691357570100657827907945503499766936143758702290554421755943610956088490863044159339252947891811932937181960605499754898022260065146411242413044339202969637526056092828552502108229288359039295374759921834332561583326220276068240590125389545839174353507733887063818341655018170470502797601680225820948704662343837411618623812979964718015151084088502758132517658971049119390036649207211679192595888140263961520868255765949088285445783085041199312377601039797856598154227941430608257884354052804359603210182814749292831474216932224478615275942716318683934226076008487735926465140756307093502324590418677697956715196178014991035928704665029035983340633937631625504192164592327982581731335754706741770096649978532588195598794089356612128681163385995345143637111975397966464758269051694277016525282145490645826155694638879010137940683703349829563441571835895412824721025744309822938473396932021547787567622033007689386128903209535194887269382813886724403619065515306263628102576124609667256109026421181615493112010699541718586489068686286836639326518122659638506766403629467505968238610468929048391529867611406456641062658938077215899028245430226895618257213948426240541214580298215622856584934464913963435183625220411773813933485249889237520329391757975208742723479635310289654206439324740746359002951019568175258005855527047871300511828139509506737661717655765941148470773494036141874946029462352927229992259151040660894152612865159191444742841792880473460520922308516545673895289794010164047206444940800352282646317861832026530397306144904906621568456813913302057181805339261360772117765469860996448846527446535905869293062930943340193227012770714439519560419481460422502055630233425933639890076190068261676392084702463792210625659916176764556832161612303465326248893138776950307804274124335000568110719406134036875222537652943754584443412365650831876057853663194190872897158745805080066321288463814556649227912884778322476657306197450358471935152297825401855203504897868406113240398412861609934929688801198054442422937911219604998319958715397560387900907656967576240497346064999855256471917721829664498940501147275212368462838106795344980251523677777415288263423510015668042214806045178057842053610397782027812585715210648147296426646886061593471827322384320386553772873198552178338204257410431653827045880778445457576600728109495185117619706762143302447683032502705712611212224292411629407526145491842323803616766311190437456823554600026575096977924668874430008456254971954454821817899444351977254791890529604776061114035872014387358497795857904860924957203715122228858801489333436314377069447492260496669911815040500622671338629106466338581740907346471904114071433236688232720126235583426114087204316804057644916060080643411676928010624529088725902512054776360899042029648622365914698917785562120175089827481620816033471749191946962910542247499737433938945814426448655392358490709772435574036028068850265916290434820813303923184015025762596585944868058134524931184612137609328192183730174096383233591766972183099639177124514386112560935815137993865082633067040135200398556130122652854816989177375594728112374276222666171255965144577114966426625322413815896067798043721035071690594655618052765887401093737522182044223941804037028034593179648378219869516849806534743473674858057835930719894001877013230352138214235091447565901989512410557230993718562084543010506288184104177137785637736845912739077605523546505453565931574701009951659573238212815175581643280907045909627696767903010218162075676209126813116101421205982718638024798309542321289044248583026697830781042141101094848792851268821898835162616125165755636534383122893173969014673752008880121638001760205261922890756562147572671681774052287783139313627491545485626944039528237756503275287267794894827286020305383404435126685844221951309386283003030852446207469704160672428879996719263304849695710188953700463327484925733285188982526161573637704799848995152739087454808585183327143674808060562773276686639193171018045454590663349316244177782662131122837852424780500862411739665533830378552719495165864291157238910408993165136341648239412565175138543199872367342304177458772259348980134759901611878089067161368296494963441151879025403654089665422004509777264464010246664794540274012912773192347344889018854378511544254362340495810820291161418103723199975360444460258974353940340243735116234277891406798221117181731332370501366682363310867066064405707809313464823994545775502058382890435015644789375268669286501103160969849198536583095961952693310705864473540949789832298390993639952322145086720464216398097546745347390086303005835469882667951997470639742200186315796992465060105919444392233799215856822658011301725366240696396690715129566301576957999068520889207398986858599166001319858106601979122153842695744375856281769518633659276269765560528209169691005528781799902852076071688145803135685798705056927144111199151793225487347110637364438017453573424791810816700861441868120251814308892921298235743070116905389722026647745621945914704937507357471451913382401830299018302191203870303571800159600617800840221775539436461166027243443480540348609127779403183010414918900432931304752425286014127911726777361444299278840019972047373012716823993772524803657559644908768067111400506739386502910027157567814629348306099377010878772832645469579448615222844931160458881258285272131854869183305909974452501135953402482082751024100254435538827979301717448918300540062710320839809887438370405479915798521704011975011852612637851450286603431104315150033393842454358207475402065543632760689380941612413519919201025143813975098718829297826101999772825315614230136685687941552718706680185249323798597097982315085080552184391645035796842974023571291169766484493954597411890051914491232147752762237969658916977774194412271706337437827983347954448859086030539764438978451081310226689016678858078058675683474395903755504054378195427086864314118770171705829644747449113403368357692197193576489961734147103580231127666386326638226791000651227371650879209924580187783089239559194756538748932038499362378748002875581150309332411705194617062881168675930341730307223987395058369141884912069347198464679900123228742196628202067995928771466863192746389730293583297590525088619045823253355723384745697681709957303955515369824890156071799179113983772574344624884143527730528980478658236552170317440851035607161688111545926459371694000275700087660890627088782322022055207394016552797917380143837175782298904323430093170622281412499131924005883949022954013322156664362850062027384072202571888478910166716265068055734493872007148447739472828091443094602568971728554352740835823908155039320674440540433673899741338193467869092912166640597889155627818641589255468507213960700226391553763150917651620371688452413828398139493907421460975050806131606672509867627606610285238381785068519323637083270673836435096945019843916302985168211788045445949320141035167463551581780895352224882310795604976617809027503296708790923909590299598109537440094472086991636479949578285650635555174743882630974367489653769105440240047642129565610400701432348536876595521557698882116098552756667915587900723672271156975420850909123057988856146720494991960035076550246655686644503320187142823765767239578772340091318583168977536290129801624058749176204771045436606712881485929603981519682707371381451738086617357259672771911027909073466210637272325036394339060459866418173166190201345755930487339124305223613941293620154160575296498371527864221694310285174752195966004914578848525843042150583697959219190755909910254707669064387298570091683873009540667682959258269075114273467697462439525453562466888463002974238919470958274579339136751131426728443186868878155492279944972768339586805768074372927259179586136433222462355370199334670238743758368908930036379503802055157272799363067651491033444880058057260712455893431219969869623143393573364800706442817513135009810724578258275644310989964389460615487741858763854502009434374937529767778055956812962236707453139960146537968518855586641577067533654229450134639277385020525432298992018488395883181598847540354162557180338402320788321248970696058714011778773734431443903889974753564819399359544553952632425067349620665882641292045733678612536659753913508860187966793361804788791145858958309046521445069491331362484950355016127355654555211513106338249600921448480170529049291520594618674489771086687858037148784982599953084536957117786019163099630502226820368551443461939975862225253126364569889103175868654371176000126760161760743601681921606821930324242404091162475205513169660878945544128823374449090048138805599184903559761193851768776313700391984920760724850609124119955797103988856251096600844918490025521246868873335485746620464175165001445862270986485895402648851476934966875230218273286110658461170641510021732767388615497289566775245743188716693326313840350965609746634513305640090769605574508719239557076555733167322698177575310875190926864633631622731407320803138094494481711862263010273148199797679780408546850494796247934866936135576808410210360525600035406822348768585844938294659424472457230219639463800761578078155556214232377914517191831974420157040667140653199805508740383470007782583194185142332077012956460987211467630319083088674327162325878329416585294444579089321016199655285411794757795505635111495619313020229800463048957989618255968210620640060732839952449400496485887230925759501343930354152093823199143066728357648858239526942906949442359270339969452745844426953464053813810897717729544868575538075485295608210520347682647615029905126357689334085895751147810163126059400568400484731459480258008069293676956451976517687712457198377299744819069502692115273104591407998557886295477490217883637051532101410362819756271239516385276624637158491130101609186146126635402503896822257451702568205591744242323168075147571581420850997056385795766031267826467681965768940460955017264874605978513419764598634360306184977608665486406200025339746377723765595185454177202336657977278932321845021764319806251000841823768748628251478052446714356011287949550667807349981491515226318263577008604491203251617539248558088849222971649083723172430335199522995584575116272935314406062295428439355054189049429268578803488877545210929699764618446393595366788274068098772763006494901033210274503369285779776711355875510225810389336617045269830271783371706894146597187592130154083042858298041521753383757473158829282408785301846817878023902171593714427700048481212939707673434803872980739432936740813863084696018514793381322064388436418495466742339125280267141274384235407204633516415899397619897778896180582490260808024634013619616168914938568784561712693876573394303302871403130526925997856677721406188688852275318459567655877308626429657364889395534539899454383862626016846354876236261996492883805435352388135345824622249791910046238220327419769600376263063948118448328169509185546409399031339418334691003038685554872400838264783860802921091983983800929692405138447470595982313824052041360293482118776581528090200820991992898650389678563263665934977239441259131006700347720488772223425673056501375682760881224970919738736585169936331953962197020646737954880109648989682361891069482619036084461453080581204493547212175172146010642653496646765765842344002084921072701659862972139025101705156839227032688963034493538978792688455847551596442584576388158067009953847158750627510906856538374828277763986889496776071432026285765677014024338245374484909047878721731012575906240732411460474653826658500259990770550919437443233615733842465704073007126550152793082315623764535705597705554922211719648869085050670622462211032327725644515782896986986793328693191422698064637624975345739266491560744431248991511847029942934054267489812955258756863930128738604851764522698278569908164180452430996729508197458259418019307382945054913552920415109860996210154566543986969834160757992435634283927375546279005835786004872646040388162694643293387259267797141751716156324110212089881437020256529451573551195168256483283253759121298841775055729069090465542701399486219549121819637735305320289697210896730577989490888957350293391334245871073729747273412079466665984173305418719967184765144362114884679135012411003341360346551553730401669340703161689320394385052225704125060724945767490179075371151096509132255918085779551682603375736125678057443309161327581351816524955023244513609782932605876119662045962798196638400184557578408243137821202919030766605787352382872320003861366049609640801369351401830795507436883661765333795882151292413437719922371303332826559403708811064615255526043833641267085408956231646874205071096282345050524314298114810897303245857001857829152935031889087211816075175898376789609847700334446771521127081541491752147078099296213066293100229084574523973306616984115896419181581125266467689824021120501428106314146339090859213086184589483325459972976352588707370312305544652937551192767677415471996589121387159012152724049004666704029777131844019657102179937734551975647098523119584744022759216887656556378313016453241748121225941822332722907631305677149526306451762484895741018179431372071192968707037794565760022072895536625561603532721177040585431508327337780796545646305355350141345814423500594380394999227191866964023292292134167977183740481942768238998911854073708180848410554877705344715658356943147488370455093091826240488156503396587385305412403379724226414751258310028770953903918800894279909957291557372149552397597288201223085626701964002679256415540828910396378495625522398746548969072768172244213756069847374314263973429956991429878349952059049585909434802107119179836864513867640850170455503512601411136787106635868148285765118486545375757187311293572608125559194619895541902071172204543160729911472837933171952801187651507581139624876393862192441791132374554788978332243198634115457851757114971447991412048690033773045372283479256415735444165923258841348168416203870668439283916485086216515473111075845065777634387985702698199868959599725516615949779511703295697525360355613739546686861842280440896238283233522709631540311135529508816122454168863435346064441128743398949523338581134080136177805504581754184654568331567696806849441311793337005199356892108199565127693333186056518816123003099423818998066897346076163083806312957643075846590270552766347583507286521565185456605693864961565810088040104092776131770902897063588501923661648263058526576602281855875837103241522648215146093397877808153588708209991621856067166091451296280653198019928604185961888395884767687936201397980007912618780311053062169922395486494280796611112721502259746675983496887428323509799060480062792650235572983969723385536801460436229832604109299951799703364126207641906196829231655129448465027758925848088542694539546563083807958840039376163384175204909432903194278057196586158011316929686679547404687501759742337133261142876837680895260932329713961458574025949648491767261572357663089038424155987031824125540618794078484379010331698194345701354192468801983384190883804351518893011076159546832893819125478046138440756260648261782759985069179448489291271117155724389560422224616925069577000228096714813314826793382252841013218944379058198825143005085130884263606242474117778182386531102257641076129156852066349526819493382950173859380331111819027148136230561007515172642392595149996164529122288678802051585516167027421783236350627907183273521638210909054870980123219376917101515733190776026624039534288263137106156364725224437730616473469497398817550592407486634762491655988969286182263369370545326896365212625614914819314405251963903660152637480386211599561769400589597674330235965055214150233344948951927572721842634131643261212528488860923779602627706898429279597766435654237092575462299494930811772141535200116764498206397649327214219714544484236633888454622179886723035743035741292786475192976944579660179642489950140250565695407368203546905999657101013707936463825715307349830751218155629926377304661014148529014903095174264035418571255031042044937823180517181203951686626403040616109776971786650377127720813532430180180312328562861160387650330572599417225988909778493886041298913154171323446305703052964822757267087382889126823963107479387370174133915435574966873958315360206909252257442807007072422263867907885368303812965724041470248061191726677804094635556691198754910158955787889762291976430164892840142844741266679437630064724365352207986796945581245150984360028675521001977646676445168574612831157295642493551824592737990794859403964886276968896417486125870053212406038612041791945485251950692393079015729606675010644193744114545060813694965488534770477818434917597918811767903980884249003783470495018303888882620788833085229979090733812288515772690726399798776273688882578823275090892176285664040029599349569756318338868053360140233699600440867487749906313109564112712256965202844909227408782073677690257802567192062913546240869279365228906500769525912018948132967313133532688724041461422146726524112967896656459104802146258862526172306148610500766950760890692719386785542811334272043468316808342155448217481399351373353577146957891983439577463381221779309043155268808623336639198007672446254516210096235430525283469921813260963011694679333686301267785545199683570922735184006592315553581391822282107639744522260337042616683890545131390160343982892946278690324006294396936869024969595044747126579653778513526494327808661285168014498403682506978719869268703462917320822109148981407396404357274758982685996675101385242431915291210418334109416115919272917806017783330950691881385994555722263939870035353545101895396753721689818063498647062346187679938092110817106045140838308016803585510033544351681217309498990697492565108018453104910254212963723369714577354310573146651232790491104657343247385124825338757490063149620764514324637918074600537138458299027008649059544611972065768239671958160661932707077152660618748280221232666214212464590710678843718935487168401002737255737154385566347298406855432802572980553355775349848665805403743345658602480394080399279364896160667232330786684981152119478822399047446915315948903134916331485916242640055114083509205865746222909902573445521311978560594034661344635013957836624074690195927052472460165243971484562665351937571451258885636511749471095762900365640890633026976887276078251565605164315800496366365882700636464591124033651645726395489344220302715121004254344769324481452512019111079115398355766384557093498120409518482968169571421291677067912818606898984902085055729007946012748720613241292203589536602618460560674551100948617731729199967947489550407590290044673905209641580090643594992122036285944929521163129703390174986180383220793400970988349970453649250107308551897051350178659626783855663609738024523341063582836440365915569729727268713241209013980674137079777738167175215682146837546939819695059367808888090974203946979419322413691991809309256369737886802587092394936016527551767029171160617191330851467063624258905793297506312236323701208058234796029672681395013249321342328184806545370306708892836355751749779884109824910558374618813847174931690353738742067961486039113800766740110475612257303135317565985505720198240427368305627420508701989235353211950942461324162712081759226979024925465043961089719666809208891316416089314311810863977001567322377531149980952961723642305925450768121074764473194800750610264857005116175698805415413785623710411025130520978587250683250338394853945628980317117514948580894034447386579307337439341063092904493212100400577651425099931153660926893802323520972186528380838517343182461373885344084071539491179124571274549466198345016160546607649319288519288804625529080607175036176277830057580149888583471273166488316532401116211459407947025858951963640281810789730138553650714553819976834218445197638433997396498634236210425753615029830941580456205841784908861895841993450512067852619015203802095354599354524474403793213543043108125827547919202207855649881627132847439241930353254601116953182182804426458716802442971477335119958210004436261974412716917586959241526159859804334947296366743205741547403956570700799059903747474592015024755638129007905172225063244453137548734563958772426330822180728046036587025105059589996765087657571994249541818578969968483317348967367738788469985157855421995706774058159418190708202138444000802948301555943276924420953709923682837306104413536192018140250612229206037872468425410068506970204202150400596814408635164889322821913823095968359797401549626239620573220016515788784658956619197405325451065679937322982280040872165189299544319526656326914272466482308978533558691487073911191880799883003044803666641373321021395061421187111620000521577480801661592185878498205048215496069715436388645178789650713911871636452867305839235421818759799452292433209786731153575599426310847296291964396837910543192880530020338133999793286816132133935266295739209681590702184270864920488257215548950410157440619389639696521991183935031331173086269821499551037530984846734879522242063814125232969052435727718821659452847805984812596289838751420495582361427992882644991912257044343235402316251882970444316372002707360230025260642232167416960144069444670044961916326109404176333742501673463906790335665182521674733568589800207877021781705397274911203056036342260783992217311025677959868786575632476859643825407345116840257247248945720849875477403560826280625146133403206702192372105431350112546852826304114002191462153577316928891031356599075919245455273661533474816081225738549821728325887475983425643810746616909294790932090708089411195679551824006523051818753799914081025466686015699627298256382921575435949901468998562964720375203101684523782295658126567153718489472081098840490644853016044108103483944886844025540640996617976058505742111698427042345852024369618610511953199590683250522385908868759580011204446018884703951795290676576127225390767233988815123734991018811484487453170336239670506532756375309056157080671156714974780540453601972596460617583418306570275990340728571143620538044459243028366444016057965777781750852219972215513807348464177315519940651952396621190152016232930161276141334930594804958619895090585283157037080842914504607877718003894871564920805973323999013498430888797779821436766910156588978352213229912285797652885151067509027452490383763791557318181989148442742886854048185528128434978396592441999335581516233655141800534165380861028036324301901261522336363796116894750513082874956135791319027545442593709690220180454886630236368721209212584400433922967519604362336157867093386925276115245957980049838689465308366623508387650637520906404654612501883438297300539745178090216155338378329552819961330922609163183582676799311649604809916658214902064086743373358297573353149705727941075035388130131916192776958618898719732489457129241474920323414891662840717287760072009437641918878375130072443685397336148686533192252313572891215446397339264674666340516227341837506776260250810357838046849545019749052491708544978863303138333917471198427623014405372042558712905970993203375563665986548324923601920784706383670152892882778573336982125205912400460344127173406050784687486465993280831468947437078566672766909053789188996686194467203532909673376214715128126504716531517680437298207612498211449558478615494930904776978313151348909127525456822856394912421490902624790443840942790959232811633921621533524554541177187130441943619382985599933140476649438309818084405755801799541612696324540488733265395852307644299009808909375900619966844541674029881318244366017741452363560127330991227874434597295535151698151130986400225281197823781805246075920337414284223530160705093574534702855662673776160157956998497356083728369496868992039301536309444618854145350962717264011122962424264634276867686395215064546565592490539486357370642363253604924991493731264606464020347525058104926397582912173695633866863095309440676004763405382415151889319332137905724649342444283877237819139367745224302508295450017907006059522115212948880048112854115116605579634975931805985155476760687635564949530307752271295678144676246300673547444964833987712650851329338099715812610896093665234675338593852150762456129706758456315912078276863624336079807667658870946897507928023192052512433453758510094323636995125317547728039331213034820620305357348336480801405206546837518083510089381995714627461564052577555124069361496151057357898186874260469074203223282230749929349107412468451927175426887275403041233474601904637483663982220449292538409681520535312507123966853608333188175810300261663155681002129934704528213715894419221946676492691530644714815118396971139449428373426847595512714069858928760675633091092322532365077330380806627352245040972764182813715419340019876338877082284074644328192060814208600611551563580696029249263496884818603146086483649062275374021970921953679013189155338740850608024130146531231047599577593054182849057111831280580639873074019943826758400830921037245711993276932295188949493724269125331879918407182948457453203289465465107743516221973667382897655636989700154295959220300095474917180734301071046560416232588411616550073137318338481252391538332238467963633945697173821920588463891654247669442410018024768883803538292018562520939329760456610646924351546925646183127474877411634688409866820511433479924691761723333336816115873856817849492480106659450486065159429966416783664835442017012446009556597426375576086420196626144933457546974894240203875244051774468722817707519716477963275957709171741536214710087163835114435212904906109561895002278288997429642273610831769338935722090363087807640700404242620156894148082046998931312228865074833993422971324197760565015226613640319207103592263444034819484105360489075198721329452170745953431805533598230955218676994537238731000611916293507061891547900696028637326227205679623804862734526246057801895923668344274461301864883340175188738341303341707643585420509036969399401048549329524363399651033409424485180174199448942808449467937033102785689795256176382810952501111000462293542790135961205071716498699171344186187217912433320091139176227962894550973469060213603883694948801517638820770087050130681075157962062977671462334158842905709379856452827234395621533026803830620181153068631284278600277856181920842132478788540172686689789524540145171049152296997892133781473865078578939670412767605595515544737932159598896978670835394891843143730168506768310065059942186649319955611718268259072273784044449093477225898394067197569047870495240595150753026777433524403513873599207842945448504196100136117730827515265650750696831659756622380278341944157785496662073687542093263001597962415482008896053892727822875067869605241346072781069700042487940127780713420728936464238875306724852962410487219169353655987501059503678455386949753291533722178327301580904142555396506036526609817870968141740152483479753938558989218987840259231999162187266060951820760583652454526697681226748543784866899761499909959999528562784657421085965952653834367164912892195861378341188525205068121668268855180544656752546910507664086050530410981319483078339239168063489717250909644186111793408998576455369101535472937925956748154254849933938177178765962573697896493756237329662472218025721953545572884347749888132942422533646525920759274077468879705985819641324067437743283675545697085232871704848999354447798601127770873482859928125640542383355333481569634931090765934644549101704864431134864302514188477744166399055055192465307734277479806882622791233478636474634318499732157382783051782109767829084409891564961638328854785267984885022002371083442738481913838233144935559674389051506747302818959179532221119616334062908625840208561688539381204534069610815277472295215908908303980236841977637126945720880608213584624284933325032496842576210127501176122164274844531584222166785060864372516070228347994550215597754123591985499530442997832442377705367706386511463405170140472954273738521112604279628230694179960397177230775285817070926699145509595321224302644029786704077212380078136810975986137861417842281465914711174318936316655713182613002466534100298146339351339346585023006072978033594177148053485030431725048655361326594843065815195578279669447681665589683103304404397648971353653357109435838315704326110013665616346473404544910306184645902516960789943524033133274925340801621742672831764542857359716020038968645391204694623229577796679775234585641817844469808073160120504793369761863698278379218685364583592299459450190910281143949137997575332001856580436944961639551551694059467268677159642231923294750087898082148131750583670611287145111679283932214161222465989280491859570695108240264886378912186059405883180441069301340178065458042028887935485335316337344690512156028004998633156735343263440174939192399948376740111888820549641069843298707299850238047677718781274864862729730353779566391660578846133161421805004491201443685927211277591700632739083215286733003498529226640278306661705291311324942786499196985916308031151327769088716992110741287304657131207695224915647608935089164763508869209263798737535151751865296428188065151469330401935217573519341516180037035077505218475628345169529116773109690590168832603969771546691664921930290211291882470943124234665778298909840454743282952470028732799321889563923671560040013698985956151612987937183371919018117741292363519716417282967723467822932125384896799997131271799607521287453280438479892515039052422979307847110808173208744062648432774939806005700522434107341588481163102839092268356197718517935149449317723394887534743789700349080416851789460254432025482419802302302032423598634700403206394515208934585846546866776808664620567064621764713198377529687963628218016716073714704157593837963322721720750999762006838114902232604740148993619948648156341405814024228402534894508456996446476067044198145498996729728083562099105723775147938890439093238864337473631290483051396092453917365565667562685742765669482675927001061352098655383600659758705391283329598236127762765594080729393251955946360063957925865721691522062951126915042323672929513544309517244475576870692403879795175888100300752849221051602875951221948782170742282625509234296921740244682714586060382269772737049533183678159095312508587881099143586212044518830958100817432534767288844153910884984492188742972116577625335815067520027420941079013442042070781333597280359376833589028951249576477988184170617433601997902286495580012306289630477177644342149312640509224430696856258102675350666798065316799123751791250817915609654639086099801504721492122700365173593590062636329831658853182429416276195691286640266950260649120780558084953369434145907699537282145085283752157130324602690689995210947133982233960372244527742233532207782683805695919238132209319343496178820042500397388167567035671668223648937235692005014989044026905323673741209102342381822497737856993820510950446499424417003177374732100744579302666135060382443604050349301999068429132064362219844694826711559276978730716156821807003943464806296319793732346570192726350045482824982485672292139860622428597856127147832458438309669568744648082578104355483933211457655848219804727905917978061926068892931714121021998762010210834770338361526391374548296075057575058338595571898359744867475710264227390761615096917235246904298863468899218381222245244894373126724045822392235032836791660933727167666889545795477856996948605290770762300917310851257871200615995401602452999240535263396186858202053241761862067885560814908182161430476463524512061400723872339680590159074301918016684648988705110581447483963476380152940126172371799734098426872667070939011210345872891554500413473830570642681459503760908704144241079938111910622643674037620951080362580441082083460252339944662501851236491457678535475648742115511614541625679149618241541485118807489497121410903812714558348893926777661140652569390305963776348840054656860776731582385255117753344515221955346335781358798128414005515799316228786278376870550925498917019083881496222628687291085559334382687479319635100695093272658537819658818288596666150051991587205831113214939758466385604640754358504810327359005825909647565497497405502414602291441199409117043030259736232067156663924113791522082595682189246824295180735530575614050670819494921152801302198717997763421435352913802347919197163570267561731870546982483009586584666566437877532955960817391923651009934428372483025671767116946892175674077205151657031493575910873603229827209232627248084422931124603165528205853197237334366412216224515900954550370911664008783147390982032651066397919683758555936500752483157904047253655876865805360296047973933794325058499401223721552899320803103721168029405769533787480739893092148306889369795564713118959767959435412352517336411466041524539851885530918657060193884986449484488395873782024594322983556941317731168129259822002765644983283666902555533617559835356896938012883903483031877347820811650841641407688658551436808595466498057195117176972842552277845599711118168026512342603622167073158902137166153121963486496032227590554560302267602967905432608350827787344332945722646131240590304665116298718689951516881750859522770951682004815869124387731398418049425726235681695974438781566850315104373481824422845676955962893959623963861703626909474121232913858055716336985490603595248665949297287983602213548252395474410723048847222932936925134529716414792426319032181974591378688331176276748694452754001328189466540216200912851595525644077954180479666478183417991242132509586945837073049795653825551024734597124775575429129376550466451025161751505427187483863937539213556449066999504185455433717909222166230703672595886217225468146286070367311651028492362592079156494212037323901324694988833661926286868260285090244489153529624026038659071131980015166644531774240878016284021090379721873619963568185616263199407100504196544763130699094780563017123942439005267575882846141098419407171016014097190761966611065276758089453192579375533995309994190184848548949908982455773648525670023351273610114581510738347636226893490652951050656889185341264108106971494801226408312252052014335244718592346372091996396566950544571511641801704932576086110191640139214131452377046164785817803782841580339055788009486075083009859467767850944726447595343452513255142755112356868768981868844690447346856043802864951937326119572754881466313890192104683397076556373639796761145102805683989958685535647961789726868849514113008646317150634649054709845512991198306883376970980235060489941974965011895200820695387930106848975810442872837153117641293131826548707232571364583223811101631658851173961418183063521491152407154893090573581206943608200586031751860358942770557588270880402963308233703504151655075016780276919719724486786641254283638644645819879914480528666353526265436660937407503558136575881326948270328090601464360223356022203419283196151788133370334768903094649232627264421997580727334722971988780332455612274780343032344825945608135126798870458912358996355250661319840813861472900069813696422020100162861327499256536263125888607813263515643754508376157981425158313448705133712188147486046526657547660912445669764126116270641150597009569758981325443750799582006665053206452252535090623515451516629975629857278077640408639773701632907846965108673217918675802816227340363666585679368585220016304729782340864714110455118043812455217178680289349091818663407476659419313132246094874597693642906545578375638913354669197624382030810503541523895995508408605362478255892994768472326848021265327640956138948690940935770000982227752931801259101174130236693388497202198556005652487719714668671247909479749909014818345676888103146291796349381469470825827887570749197745137833256410954672994186661663488740586115347701710797613590371169947020782236740507598502075148545229002738270052640341507496812221923393427236413760039053522833021319224630410166514426109444442815543569825211075845344540637544035883644924708279652615341276990736616155412062329863730179617797280665849091597451601958723437000120976382444816316523059794213275250962688207765184057535217873535428154395142729944688034614553378464913043349477787052791427179223915816557735484499871723124262382304701698501463607431034553987905871690675791915251030096537263142372285110852082498823348014942706617592295939998052941123221839459205339749412040014386297426483839360911604590608425119237454454894323716957951876239867933049227488063377071109046115185768544261038749041204901256479711123827410228109229841399135191654283626849476366536487792152545497011577215221607378978321900071225735224228736924454253523361558422930061494599004027805110175742240465709853503249529520700284827411466921926240660061199694611907384018743251633020034446110395528488683083333652917634201194710619328253949015781579691647896476361772128189522775742711343900239901101471470094873088498400381648733753714399181212746455712281161223961048099348376535530303737815709540558485032630354170236453476213293812842567300806795120833660703202070854178162259202645826071476120338777120266329714095023906810936901008716811790071340797098459759211144532272601065043911654709220668945774846750055918787103482101928315526438884306002845315281713106825202909577968590878611133076326201362945730498603499226377568527458666149070772302341544755241535956318447405980889757436399419090248791501252806923766556709660270837940539275206451028067208489559251663908291337887646049882698295411714551628916625069838340551042096356470328966702830108489986377228496963175245128258888189269771627943411842424600959459740168148954788174790708528679655199312118531213627072172588220611323218446011928933886114369212574091289618539549153758548158929379420459447972156878011215087099955854189663413716595861122598382849744394762392100762626950115635620917219316325161035508440074130879425021641756921461840639096774933631543548544901438788958573969443329778124498554726100297027875836615904870216690080337463609705731854479923017750343021503112802650661498537495872927229681588626425667746321537271807107474128446484304384607663740367985679009009436279635508353344057651500435662851884267169866480588353408550756324552775284798826959992730310368204707099632603365067626932874436211242653726261896727216382335218384203855369726737563988688838726529159755542455467568777946683427029990636816821515806394786774581193318157598440547066444781768718091645871878930234734504448248480425937727017833778517651450257516107400723617989307896027879763719125846080786543684604824918844529007954391591786292733482031410227971748372842743584660560013481614926415248971107304778909769545055844736565512042314974710129054613013645815310622183427126830400567996329005184160668133197383394507812127501910655984713552635125999168854534448688144152461495063744525747971762656609938871249454103042998174005260091558572423010411991119844123952398607993080903801019337932815902587700627456031191933511044467829208701548787682467644561641614381884236923101098059173877514347642033887756541316560812674154252715765835376454536758000850831769404979438141690968385285362356354852787674656908279011251868776717821976467589607802725004712997768515386823025518893354570740146616373952361757727476046657706489227188985743218779127286854613209213528658912335459214699503538840508511884657276683996417237684355608339697466850547907947575184571804083484345567148670686302779829731573793596015834383710797578774509678240216992931991485740832114729430545280142248168527050560043536096379407200434068156267406046009932647411995024760185023586197435798281431302689349480511294813616889065611966519818073251986328723033200850211827303223621837749921376848378535418011487452772992549979327774843526185784761220001584903258718566089134496095212015540753681459978395110051993713122020177079719065979129441793666660016213234552394781839834395731958710668583107165846807807216401139703547884461565845638992418061805503045046725345934697457505444073462912434635730521714146249926421801008138596115460037601322820966269934270898539861961460974418320173483055473273049193390013812059305562885926126071850816421840579725509923156819941020639274819376235241961545492907088518697052664918482082496062712963166848715899031666170941749950981344387759166095447998360148112931629410689119690859748667487303756229670237029665048607373037700389428321326837191319022443134870094464734106447434263960834858586754787681387261061551974329615294828018845105903239596365607120758997216287691583545243799350638334054113868742548447818361995734149882751130934109730568499496170388418332167173853487199059060325606738094769169498507717054679939365214330783061164297990903482933915282527221602795320416564790140350234731502087596553450800601443484128411430991333010812837197044036235896356876236571401137987937931661649834800101802995640864472610717959744114805551376788848682738126318700348730946680801775258759284131670712443399685922731317601304921947347573942484675624689981314456628464432209451225557501222719307593809202126534997929369339738788471285060113846895872071214691416334784281119374587000367675087393463039508637858457913751653707789178656836162715465744365757370184080489466110938118126766225080430183393410170270870086141631237375904779452929118811368431790562994518979830239743747478598849592271116819004465958670159050242980607928842193721272473110827462198806722975173847578253228351845679890147022581869511248926901671302869188459907025348809574167117059000325053896051070679737996814051885618315360595794131772960403550058103694929385721250355844051198479634562741257553505456698084777928365138842780126480493083035147394418377534745727026083154014767160564131271377134991821808425977087099954650536546322932469308826615919326783312745928222839350812341928641490660907836376458364593129545655037141216882550674200227897730718077086773040350376107343568115065875716507913445601407065474972493817331481737694562639790550821663943114698451913942483696893238042141761391915629420975737345237923539398063636217854829625525870536492949738671868450619993814745330267406746605891847112799399389615155397474078318127090241643724781553641889042327809393280703823829203124984062787126784856863840813584339022680678521374108472274934147783241041391791165013572533492284183120826419411094528591125412368863628188498470652417504713844967196834397998801747851382248831202425225555480958435755664222272023728208589121434469711398938086304256013178645683457918453728683144417521724752225242825091140906901363155798215285738809146119396423994755909914296375877177502176257307834442438484360795778518128278612400471607516787655086345057518824344922199739020181514528777534861429359025468507544648743592108331036637114176049484641829968230484393809308082020362033901150802615020874010337595692668509590691141267759273917232875945442259342162298593326830140365354644977034918005197733531924643994027412011335314553625987218972138360349475059431469069980180586882710196923261364401978959103874796703551479822640030417566781069576960424111179986034282561687113435770743192803177745967207961216245248467178583600431590258467407826474484095807185696232311149126544175507576737223508018401478725757419593798060959432601056977369783303499859796818419677242733527930422403744733180662370642002802040568723960527464317586133415581052693002968920876865831595448053823049822080306696975331180729075591264018804577377134040028155817457542317567922983906203860407652208095212711768108355515762476045188420810924266499524872131811031998850296219846418508319645303935188172948202882174471421573330500806244010684619933476286517539254769756308238588239568909109249936648130124998715984504229749165905040965475105208075031010766092762174542357933610056053006782046352054046893631721603662724586990872837712295963859871178272857749437258381219345716265499549754057417414572202517453738760326718821453934804283417354386556020829812932911235763383975953075220923048685592662076697583068249495099622686719062954123432621082116413744207167386326039401933951852418408212686618474737609996378328148071961838424883639708079586546216924681294912365185964948545155396518662525785960329296471022630113127604176430562331716217590238197867538799187048967906648710845892369721524233609801187571702948844087500382160052247594999841485584993836241590129534801059811828453629637005435996458736142419998909227035905262806143243551233537497812063436208731840262592956667455836250750203225952634071895865590157703340382672832942779888339386933109370865079745664300659375844631388127816724545558919200461451327017197642536668268663091151815341602627396115915494843894031334304911973346756836283831893805196984926704561645798657166854477735976216379756060720265714206538603530953095347274961395180456220674544290851009094476745636853779996050783647294261182736713789128338518027130549498364620723004601939150946227785787103290729659515019535386014822390948905355631932333482055817113490938706997627142143235187633362084560476671676598559290837963983586378289499318544558564174324966086195225107071589113124998589051670885996518310591108502597340977441989095718228038381192078452798215891765459971526444335900043866712133868395608927408029910242518130163879285381132094178706057117048273100519866276182663088644589018804125427358793418963749853347332950425359732488950352612442053461654887574980411169797411343622502744593464752529119966172822380469231537770480852743407103121628297390846934219722041815692841715239808009624864708517060673209934920409705851570275685577415359109832064292943720799920213262351974854125834265144196038084282228189335533603553925378951926137996110465524724432682208199849154558232052728691828612123746154539396097385958719525658472401815333960518944280252600023070057640951580143897023902761161022502277489404417898096650350346052805535733783667075071476887863522938893384858419393569441577911889421509365953814888652269875100541310082341702786891701156680210382671855102682298282033247117622327365143894449232645696017698397464847305798052046848210396830001470921484779699102444116986204365586557687375583012898622498710467791779378173132636842933733985443168429280766316837521024341270195773557948877427094560708527682056073522310076765477298978602993129838493729394899824068042594968920231645113924172798732686780105885765076234229844145036906139885334620489943846672749001203621850160070555585794810790572081603096209274919054902074523594332781634349357809993278747542968468035907223173577382907360250136511764360643964781182535258784416204331997337100251034965335482122766078541160873574106250238173611051085976490651504147226790560231808458806952967139433614614364146540682669616767546311642772520183910875483785551185960061389717822573361652276039121573861693963009971709029889590961939934393509925132622228932627331610614135035203766259187771362682359562864717071855700134829139800793697525978107943128289435780533661588300690261063915797415950669422143761443646627818771986002344003666647280399144439973293147867108093477247169805371560513840788847057002597097899986251375792554181779052162770007707287661984504111417497024617107870195988742446874446348744167322546412124735623028038017179896245380997616668580830721508853500102937336782652825590062393355959966421628668204080638180380315560502725376602435027856709536518913617579053879282609659462279914226984305186823834021559248461486477195637625176602609529238188496052166306378002524174878232813229753711531330665642310621830736292928488237314829620690915542524613979968196969829473068527963873444750115806244559480574031249945741818421442380254699807285595077682155911309454110787595801149801881215489982795303724290015510307136684430416468308400364817517633623255366729316764645450761237839674379677439908436953091770024717540144518268824739523763790048245002087565849380312484059677771930069199579684309500739361481095596363015183759161315617892637081131977886481802840224059880525043298758200740602798094214559240274481472079551419523786085901367155752608001574530076834049640556603935099310804207815664469255648623733500915814545292619799545977890882665875794488188723555475779311300457909208824421195841438415256534855381654783816991606927191466467241386457547204419495261379021763326722872967121675986246610575178051556565765735303403146799958649119032632577688768828932053179400314034522962930220356069158468282364186097991123449991566635668133294084593774317781321470513808549836564798115024431343868067933327340054093117167542733717610006169716425266050403087255441877298355105899575854805863507463391957378912803383548602772355374892139522860475873032352893896592981382887414231991228066911561401922988869234412877127159337069776263064575787124691152224858961897506080900518161260712751826053598444631894336598412278704532030513075392490907623068712836009314320360439528357617672043987202524388688316337857410459279025871925687745807032032844178382672280306526681406510568609091270328542975881387357189990863194617359224161953233855181697497694498540136846271748925490449781896637378137463093577612917171622800692823259095089209394010609406361719366231111522285335173566773824799279008764387956484416914765287746684383569342225124605827248294784564488215022356414313246869717484824240939435170612913842142795986744441893307868013131385940933425468225654680291809385490210201135783272223670978402230704568165416452773540182220864554945127941105774292683551693540990342807869058167818859838432192077827783645279216493682337110437227631364970749785304260924530431098727372109809731652825641941510860871206471344852938476678780322798280645606488101840245360362271935793564648729216743770663981076870888274248409510487022240841693800804779959486031788818535385887751543203040975340717276941734920732724509880951377175605148803874226817065915092773184820117038403147898635745336958396703633339752602146232202502311049577067753137166584085011323195069717905792000269471313824862854059575881040582177437909910207669617972211888945451912494862796090395947426093329951563477078553342250655681091573007787313263305585889079680512810183876553330000968586640242786864582007641763344627873059855391289128054299241877164706158274307309909665335860024701112046775715699077714016769034303920462484979965198309357187039704428518543339312082258611248505325732100627647958728526345592220434508919147955234852274582448298320718785031880012371243717248911058276763414838970950953927355929625597216689361005293913742424304233550134288783227916573320802275055127328428489866802768076365212580087087128214655725779406315440673358073729300828455382516163183428507704204266958377347199971577734947261588857056295499327259495726365878384749856294908288181879814007964740058098591396804878375917791297448179341201651585967310215835809127497121533387358558836395585661307385962315439303837130191902773790115056693324313041550147813784896454216935063180140122579734630182301001354901460966000674755798359342429544158453985404102685489666293171781933097670778386066345785057283420806729403021779456450870637866507662673721066861199006274723189508818347513051777865236877576624671638375850547178075355504835517767446183752313429167401693761514556259178553028482493649354637653143927688583588176808592075494475599325873094367762888054375532130446916724291314716487444845897042637372027958097241946973845096719642484753639760250813521626270318652543140796226545531231207505664480217864679375649360961613530981055502604524050185342614373835608164737570981383034268778911795577845293816109664119115315704317836431006706267478634190102584622419825408873761440191206343320254616757656961302361905009252401065561092808847989438993721142015064736793165205534333208262344280185377190976920236999558791758357236588336466068412216080674754443694686472327517975578070843203727638721372641045801702220450577533386005467687593761327795825992419821419991184513601136496451241165082500881631174409159087472165940039523385678479333411039221464537450550496599017408783654330812820244198441054887272000829287735894770707488722152821534396623838773923870932139656085342703539093462923787399890676863999058864316887418552120156986769973634189400387614311224993879165079354163728623863060366274644789417284561802050847870892506696937224434213288654064539660389998988718473934720123658707415869785914367054201208238447930244311782170951580281790121183818278148502786048432894179731512734526114430758812497712234623869630615584243337620233629171078880675893311579957896760125857872500260254240438688282438407379832190641267824236236111031984087631104487798605437692165921696867189446034508381121772930902480216360713027036391150546709656384814676926112836828857709814538721126558222917985403122348920344595044745155185671587442717390648751234004250559345601222489223112561017680236626415612599740403282549910450628533843526912474042434835204702457265744652570166517322079332279098451249693109593298374503330292166366453638379395776222674530522257978047365849769821085825788474545568696564114919612236353862941136764388282917318195376700691395240813441855965241575402994418579401756968623671116329045409733354879241636078380387654515184039879517294113538423758164188997141931233783576104709384195967106790630690522206570772422090518378066386128825112995544321269604172977022949248699639549904023190871716196970266786588657534513054640392821952337257201198103397462957106152394826502578752116606208753885565748744376193537610168212401328887879045552814748967203578191999468848482370500200029213411898570095061196413559492631830258669238369328095745072899812321768758465047591536014572638083978155965554348656282399065100921200942823797711160125239560262125030763180555933491361829415460879452573385932223291441738793627582142527673599827234166887476335183978451786978002789833425932547505975987483259045212968258937533816276346290329799588897409043399550864896475241353933944994964582388121730401744051560329587771649514243507001881698530678934241452248578506206790202182114210458217552762609965239405060305361421116597910248055754480305157542610997534405214639517331480602413642639088304542936700733810621843186942025164678957896579429072306189702657702978435680451905512001559398234783472783287462918611782278693449579932960704815497781048162719111949125973616367490069677428295105210997274161214436518990755218437516373190126664152001962683842456700246309209043646405219097856365837958994710333061805723251272362532930647702921057027128270017554419339577364997860261091048935068600037127075808962794071668440120135441762665738674007871537319171978239555631260466355993122734511016582008400968038092639947327937484179972275897071198847019541042936956680026217067799588981519783316090778418493407116767457745879561604048349143612557926373374335676155375885032668864656461840690804862332444092073454484265168239232397889397892981698749099419698334585332097945679205406505909594984658989198191741909069202440006229407165334808593837047860146079427212190845288856903524172605121179210024499466927006878356697928765980906016070882707247380090620433841624637601162440427403751829533341615705366679530638657568751877942337162054329045184352916668003485177846457273431708669297450906970494187879049303564784827579479082075791034033964858199971283174975926368995860525732486327670716280005100498545744986663087678420816329450571711206116608892099919578118606759068798243498114253089817470417792057530659003421284678250233398963816679629325236122045797139101671083191548967485192159304402380771248727499270810766985815812851474527457693122344414571745138143201630024694688089518572205410486746867904191841615331483093532268090925860837246154102449831867721098870463506839398198453504325686031114010679037539157183322836417599438749331301575533688259311876136020627426017058917107136610324028469746102599127075592647399085980606516541585404728099730068712816623068662317099675934371017972096171953291647436390639724986382587022505588708627024751596467915526035180598634306166133121988300351903320583715001733241598737273531476662347781370003759216596181461543253548243508895810630403264700453186283580694740287783026620205254268574821754126185360842301790401233639680183112337601877915855089049523675837134779709339213690717556408272081298180260723072096483338365872193835625135105582595751580239102134753879233523584107693364158778596415028451174481072937016689170719256891356108743576022844002238927105932226267287368201646056630671383570252462911903387196922567069349614937311844900797317144430555378175458661937706438140001108246519831345600484621135924617499475799443344115777537950584914510590375336246589086108175877409080446181123953050536635505922302030847179021719168901727443129309150453634484010238283801148589164059227447710036064650696830040562726860328627827805257669635179639466975062392658974332025755356011749433506109445624460609278479363232748833023024070557880126857545375652101082508319240743509012937495576754065583129254577473371617305936448991063725624019124343460040717360361654792544188379214207731127826520141308810300468420482773019285446399222773175971684980452442088908241560823976143252873878968247944312480472734044805204066548716152056457529191844876490494983431866874256438853665105518065347138721941050575651921190436254171179818365734727054481796358679903188300082552681501716026769930612711264944992046783853987046937732405536456448925864148556557943263001282169496735336445752174008528045599285012886492795631978547989522797774872425752542702701675144111790716988414678818773183398653531510839443261734626439577839669623987749026474090127378169682815962799091765493721889612132376217632062043771934732243124801910905972493283285398067282066297406806795594527617115017725651510347877266774628963398315237979015434716099600748854053700788679203387640283555207087974228301429556558917729845816824725588211223473224304106873992811665046609315538069995423867220504080966344437581309977313470018770892300725950548544508651092254422881105518215825939009491668215859975681719047545918463448827539778274685317591032502638962949637317623769259215808905886678696040954250024405720709352676830821501911526333648221563654535255630934357495056261131043092688347560154592242653300778590014525986288457143889894037949794928782056561597520681932940404137000020554826503325572358769663760603344029573048460719726471529336153327390855914900103742894073107861804872265338025448139205250804967505970624797145906954577624072519658201326935291840569282043258445841320875077176992136824999130521612828839430992854271776130211047647969478552511905621647388190535728503140377060914838632437485425793473619560387248910354198202745908920343632179565707490778510590233679421512162516736915501696779502348158487442002749283491259923003762251284986805633221526419465497905234672145611871006634318762538718804007634136499280840265598133004985070513906249452481121733442175265041606352046876305483271484833525008443556266298394147773529293875798385850222009023125253444654637965602704935421618241634813486887811171356948116620249914534528592116715002729873383034402281877764982396703369328561074505682747814621263452928815354900652353121018479381076875706569530805035288203711074043188028042164536236932535764316137671095740515121988188474817210224191799703933414249890721114045098843849620663063815117360589110361537790004625102551357015549938577268266703437864250962781848885443803207197256622177396137239259056114747725293563300757867808526724421934700709691980627908074671109487780146249251278869231044472816621334779258330352319345123842347786509385163010577076882126952488750167001412971941183386821106428593827063375349027616271306827805262295578228513304828054157824368523033456024638083555101777456148091496549813693069618386289704255140729225983729118695410939372037839323208664312948476502921830710391539015482068096699861452582779388256916898064398512135158216076398716648247392950903867944180186283882830288095588111456324670229446195751364356219605970690466203345091745098488196549707642676429035491636423835024882919286440116563854620806817437422230004973750958546188889206619790562561101010552667667351415652159421296346514223055033973084648320041291853019215403235211582731342969712076346283918673865709696013989196667313743336091291011907346426896135858155217481450470330108767904464761938633870978339193145676683053030145027762972194776137845148629974129212498698103266721912295389242665500816402803927935968434849385391529226853979647711909375970953912256757238557214915277038369285042005616596745598089079335603806976418230419517059875332025918323802835686230401788405604232015139407074195580013202470921135616884457536608446106907133489101336473113318157128863255038424513265009962025708751921699560431959293877987195255135526057139743529121231262756586275422934745977842962561819816464624545455992782670727913537779277238680645293856580104887237177551828171148378501786039043622431714102710662375954618280348364778014304728441680986547236862115820354288079948457822305305353092096729253573238708079695320953019408605546709606409469334996965426174939757245518515176867939775894753098129798988162391058161294620302994947747259790952189334515878195598647874861550724777829997106251311300700900202355140878426461640069764101979429071492588960622998041436146602350305752819621782538212548956458454622767060125600262630790494178036438102001370087663449281320507723386628910479365251529776398796457659295086513859170823179440851808735309747850286532054708472633591288657101846668581136009162020919553464189716869928885296850307923866118644241458143408138507563418930598881630451001860581513614701525304823075937099871140669607358246897730150164415739468547795507852327667088093971592026603473629502988927710448749504961593129879098672775954950423789689804732750982055532735755735211681611485878212674908183218314280515559455443898091670589220201381873199440864589330719731534740304909295128447430320048036964320663310511711874243928546306614128917183559369463255757260613179717006779216037172352734891214268633384152508843372615238876294361269720397820198434569194007121070631235051909192851442002608566322579988786275551387441320926035315432723798891211936969919061730387590179703073974711390074539458079022222010553523643228978787936420448777353057396969158577130950961544058921629457140122611732511229260752361208337178362154880920857781004554991334634163026968707357296303929618272766722995437141478995632208202546760678925751427216219001238434332627675913240871273667823287587352076027373628084767706809395938411400174190609271589614235619422102657454784751381424454115920286076256783433634916518696994961698897713321026037406524437085999110296767316110224523844122132178405229285000065553064360635088533835898253997880442369624508457951904643589819845656913246566111286029634726896878257657464590393998714564476969830887767321517949173553076431025406733925930480957317744073480077606279090328715718524821249245895742136910337856166136118574503994553656402337662718247944171974065979148301516821263398599572149632135428880222154051680046930420499247506589029118074788661965184113899717061965496054252598017976192126423775081528950025774493358463220292370010614169932058011635100191476678045810960238147090103414148312333192754659955896948056012924062790463156704823739419354828757059937943563254334331295461030496181961796776845527599355688863320325490784327534360174664395480013979422425673803129810236946108436568469149245271813671661077857244090929118459625576490201893890021339232598372660280441751173995046332125441584691515170886695873469923116639721423213204754244050396104725728121339137092303375269254441071707445697099831822873590768510255525491196421551029229300994153028290866855231116905972859348210879882494236632123766961791422129321049152501362001577894244812387765454220397179908555633908511767423161108922469147538899875601790743799046899386456968937637949600251145976064221645143537555542153461006898635028250841211688071160475141064199810698925174619315890800047655336468903753791509815609079856937694156815722324881442290873075800142093279504577784799619345102411613629455540182622397895509624421563658636975211962797504258171542731979574190988605969102871065597924855216109557044679537514131820474141973064385482085577472042060267499436689050925425700630736975376205679762463129163211017740414566180453360477514160833018060789061335725982190162615537676955003892800400967838654088961739102279905761373026331816131335100244308279580749118651829930589407513380256952855427294427489974211349514422552012692759287152059935271294655398133907474680171215221580092607799117066848673094177687369816725231032267142815706122146245714422258616545059019445845666164267499377372612764031350524297260491482400362106137006944546811840960577560679366183087610659627255905374220928005640032089769475559598815372018555161323063434835566136130215681128463447996840304732075795650539765587943997090901186007332989162497939943456069570845987061568945273435331001711884737909726087022038364471540961928804750349456223670553348607742924525999244610620027932693077481645611051279352898184183974425182103652706384579731522807430711962957459131377942585413272949688076847840470034853635278160012755660505791944198909532006677908965470197416584684536052874764621288541102367045582884560504329227409542841483747901199696217652584539441773447004419904397892766565336876918274805948115302296432811851155284916743509414789715994141688211094472640899999555827594532883265159646225991965862471557255311548548041984702948288798495917456799681146180819091914735485035274384170434992045331013782241451574992824539610121907890079899569762808595569216915836675990472261942821761132042980653479990346900195374894048486992620114016739097700455531816283998452615347999143199017303347528353097672978408230302061009320534932825830746752490743700703299331519641137365196496000045011138532210119141689838574672881071711595703439238116756968345838597342405755595547980913961211426116486789937511004019036579086854734257139539361065210320405118087350297859327708430954430144348588284051965738823871484718091888585663162415038217303587433413354099760163119183863919014849794418412979036665120725193784976894143003721706155106640141621857227076392462994074736983843425667438243910847403675210867944132130192702291936571909958135092713642965135116093258504436366285756927165961673419249740984321052799107124109426435327784703222905039980004201793312185971258809349734815840698924281100499842802832133557093215131062065061886557780368853706680208709740503833531623661769872875758898830141150621446044625923087663626309856126931249124696452241017813288262945260762242168461080653141912875307024168147186899488822348675850472275440287536477320001131725427842188214045426819226781814718109354784455513088644559454180101593642730796602313364918369864267138086446137746390997867173640707689268187873081121088863932468220881746695741748122727997782010477187951711966582153188229577095795676177707423020659495068589567338868905984549472549504511252029802290352060785230028008075996773090326615034200569867583314121825784633919366373651298384530006150109761078828605453133702489331343568558913949664626734725839134068083041964276631847882334241458301799808115438191482654679039667854259084696740629261554495129953523216068096141955139094235028457278434481194685532073937146137640746368840540815348696183016591060366063150074744030705272011589263755679341931834769090775887440561895007880093393130153084087868764699051628970353187231661024885309337362469357553851500997934171939828265541801067267993882268908429380764137036207924889072056571985219377068191854922155925164921581193301882487006208485204995562774614371311947369714110478215425216642930359001605614473458532299088752620601612896772168123676705309384176446392236594482714813751414177493733842082970096872589335288067572711678586865306305602830814803869605957537870439339059318616363291552681465988237695514451554536007389462414493925086707358893827897824679171614709589054206506006163569584277535091189671335142285487785104444914391211370900627997451359979970894504488145265994135150667322739249242336277423121986502454983655067802773027906846036423409671225692166686157880031543542007275328722391710580304471085838389347173039206133672730332938819326035811128894223509541287998717318314270360963008422178465022467449789976746342983817796008383440198545334556019454846977673817936043021157643007979329557855513222466914637883235644807175339599178746631750026168813368540396267523411416550601364729956594555841450566396880621467433962479075629507935234770167550919759334259194530581242561959022077038562745764062539697844049218845211409685913194397462360657022743233369658627590250342598454564432047338187772101429222569689888688725533523860867290855545292424218392010841378426510883197160937537862627920638321980789956449341523291542312157582543593490681817611409218892370571453549757334031153136154374663586832204769907518637773769642543656121515654111423314019947397864964300099503834435462261874275910417533023635850901885135045729524982112774527058274762381234423072931834354877066272162972688976051882116165854437971683747667700891395114562911188968741126550202071126100361741891553968351490272720154930125752907802246056659450509778836634196150385708863961910237631535204898662225071348563256972899506952829142236318147422562722488674266032135771473809423182686173822340847291110215150796714014767115731809228655238374710185167843693317182983701266922677372598385587555497199922956655146802516754188651425485878229414072120490414755792323296685526852424458234337184968655860732358321471159572165881835559788040554856580215956243632267650805278603729769610046234799058154276478740362660322339193444685463796760966018009763620965075225417239389216154064695061328692335439768159986221462089314340617830097235878623830079870204502531504881304470165416450975696597099135685699738516164230368713294460523764246579516681517071155427251499984667288128503162805917754001436411390288823546862365602269384510270325855672900712411861461145606947563939796370470769737519996559168873114803328229212679228912972693456836924806037543151454721171975291920603671286182335547178331720156957607616045967931119591466447085877522371649400767922289536995815040367028811873877143441797492254958694119851232569674907274579854170761618141674892906552049122099713399273153961039861293111232265194235209324102026731337217475234321582775405562497192381814026526723613991072238625632782803306189086364255169345877935529269670242907789923473727659252401455552679540410837381091685685579984911720566793463315680190544779560394211316920358682699905175456354419869064231657610570654576865293451818487837980247481750795277985001019288245319509240836946869357580349235820446065275018320178238540304135515499690565208735926122247869725248221423586816548424419188815881868016419073495502147021755335607742680391536549035659515083286740200683202028545495859627596189618391282394737248401380639387537731904649553225050584550030768929694420268215741416851977691936693684910648496577334241977052921391086726273419804385097037515706812847969272874539924694025321745098388925396532943008646133465693595012822844600871409254891205239282920470462243129032417364707681365893040849151228228656753058540757533356465462728396798309136460393029904680052459254070013615827274724903774533088032482943598155229305985872731686942251473569266225930376562447544335738478635078516478189276346878181129192072504176886701667543810661957413527262385063858847488180490233124978719548016432376459530175754306094047392638279957458902141827423531877075614665235886795999626395412719892142292837220085698622924609766594433833717578928351504334027285857928334889632840402791050986134549481141595080900890275678101824567733520410332142959327728980671041494032562961243343893404916268005861805360957862121716707413953208974171461229108401806018395011847103088406329324710043150350988103251030939618896420404090785275665119681615371357540302490825716446394837068660607373444637744403927555463504725288528580536723022635545596301481931962687253927773337684683790825554772070534227828106818013386807699585004453194430860088855299537632021323750213073839735625064005359708976989800191378993725720447349916247377571623336936510448023359226857179515659371119205210015680400592962802431196729363298164279724399762956121800062737105719306447727468246260323196667428419836426822883169145179257921194624245529571379635829157914120436592756052544215570018329802056494560081096297099990891116640417733988834649522908376165895667276703930170846755469683038312938048177018688889932294820886066975472485480422873693639526457254336393781602306041466309458195296128253075401158602949465667217789564325135427276343592966406292936390835982405685377237594401750140815417870374999152678501690803320399921094894431829316355249531225144008539279993858956571316694028324760664500202167722975303619931707534314679017670003622476839436252035558450541157656242249508773438346168463914453764052422772221786787359839867794856323130947117413158762812673056537224581807738668174731454663088290422273838953919719253154104998268904495282182950232373213448525236962929905683832958477473995362728875706060964224324169643356174853273295462812814093552607063935030641384004186388863642571092498539557353126010953336918167919576159269571186552643958143982448632959035629681213641473000913127724832700991937398882942099742015235910510275335803082679376180567405906539043974197987522893215039606898370317817443302555380113061598971198888126075314287834166389547214038367175068150728490930533288160339899471042620535342224603162535870113914902145704669111003748982816114842307384901188680192743445155872661339200000814217300859133776929867989720353438979807706942986948002995060434592708602552454741445969496147720016677805168497756352479587923898692510529210710213443792922253788171837039345657901457635725179878577976040933601549441111337637567568348713272807017735280612700789165386077761004018558128544410783027587264498022061121150057435005185078755367406290426448225168945628918762711730418467384695783586263015356858666694745647056944184737410477737691377629034269917547902363285221974132684103731686064712362732254540301728560850673778331163872378315267621059318785428613535323299387507558499895474451657150657966447602479784907174279984148984646176681685333075899037614146210362001264760039423395438350010060555837597239881597734800928009654292478748107189037136384763930946293370351663109113674819455152204985022844330486577213353778572402102678306542514449558464587727070918944198856973821179580096125142836088489159514837424626036895506567088586831635416408353152578160414730203479596762168875182921519906875399058153689033552452735001610716968842407272526961911163492381951417509432765446946813667464583228951782969247465196144014713899848155974332146316204965036508820527157650472623328172591122146666377636111625292400234979648618415170735920386385190846652753888852467159901758250127120754547009422046564722045841361626274922899141094193475777529467721243085441762129296763062491962583864472490323681627176159195761984544086165190232604177973114843631493647883504467291370311409426003838214032566245660690404978338037262786542807418512641329511942885724092636336660820343930608921464168870568672821846374933712501995767477721276742834691408522126360968916849198137787522620034203231954933529504028997066005437622041292372779217515785686344443029618457065893271644145361979866344701448529643326751824958400499643772290024563667463798410632521354828758848402614471653905136121326415142383344783447905464377917882344917777318203616656187536892826119528284528836908089194752092043915930118548367294169354362773602246881247430042284907440968699642979706075036855770456079119739826002226078537113077231178585411122175950867008445752525341375052864380190137521749760995788798637711963015566626321112687139845618530284798576098832924150348314599115292824460934923566128732737378453274898149337491539272813757133470369921921620990001625569355704568962876552111260466785282745650981520577175199816754937788323733930836578982703052303643548712011521522963946357853424415332507993015683232996662498686050199029384019108540806341084538141263145350054950783239955535951075068483637543522249852639194617232499670095620156149369982946057397123903556103051878810777948663765423611121431658148599107640310912363563888454176303931135367770774934563203522172098730575554723848032080106472055855012274460030497334234176098549988937086327579132884574752265269342447090117460021953526819170912704756851362690836699556676843023801080720520701570774606459627586976296758046019145180422109500948532160490957638028913295651600546055637019595942474706781900835009281573849996687493397053280149049144020617015834704630600604158715455726756803608222462699789123675256829198159244407649669810934192435289973669409681746039491633882623797836457341608637741039097203696707062744208153670491392529215378718325840382207353248599494966892270408256758078948576874100829335238330119608478044106285013276278494786050548226957089881965522378898700802402907725665531687800097740303118154035376312010121537242826412726556977580051850485289249620085312750767876905036002936158164583131226966802060906881629511119724674952098989720903481143642243894185087455903842395231987903950407226626664721549494106779041546516864540844002887571725357484540337459315736688354264509987083947448104413567386741023228369977343797004220867501595328877300578402140682568506346033215574836559906199943649185054185451048822427468389506322502128179815670139453021334669210552155288141575346444836618481437907612057447493439367459561040533230850207858024055535703049134303131142883659276190295980482201211994138893162304342679555295843260254883888007720074175677777761247906287187637215862026590423740541091376985941345968629850394220636677650628717066629736949008975449844573429828156757671308825465625019760576320221807876173914626837871608235155892302117554302038533072460407852409111469666445942074116327931372194227607405694867457674414632777649316686161568634886063447991688850131523244970365095861653775199105573648686847143832524062772494926546933528856801927087553291427541539456495792323561828062332341902240679520438263554571854720782583869407491540283081280770079824184753208135447629285147205715721446808412414485653805335277576166009823580098190021618197200921368645134603726610992643915160438174687805584626022002562993187673609930483433737869379465375632065562492855579171585461805964484141384542688002724842949883227640988453370570441579498303833374351456293357751993139053200889998505533804936470558747503101383644654824233577794620863888146417049055454878497393531862792151890353272070938184500973900646620968951894542067727720791883080746685279587995683462382305627916074689446229224330210705213433702349367525424973208860530043241322350076743857962701732395450093274517661485452713339512914306165812776705480826185700889345232469217562415471451112491588230828798908619876068754682817329480459301699385662328710232234175581287992036840284622286905891633620204136942443531073486138071809195938026337334351914243230547023948924351468495501411650122801052596912397190549759569903839637997380555552763467721025387045057194045374205706919497037410633451814694702888772737060451763161367709685074610855704092414857247512421711476879473201720705269465736466242397913671522281731964448265024429780156406082856380849200249512012172145638623084960495305236083333991143764145615857341031731701620265577644869863621865311433986588474510408239448544941582404874545293907365449471549142124710303406004251116856538719245865980494564480826892767338926529282752773890166556713452961583736897104119508330533273553255251374098497408727288432697118843279865561759889635954970102556681454626941889714640990106639027646346086373312876267667450232368818395196334649624920020649877795197098528885007514314267665199511981287487331216157195489177944505753061374795663878265253846835714486754175150927056762633786805649492252888984532714994676970542120006736354103340034829031280406630978805016661260288649415945884385581492221831775676563741936884871414217212267685506954917326060231555675201559169024729762042024174343822286809415418874796154736964371850109086912345256972897526114866175983555633859922008408317296196703636650443260743798635367747976827278948637250776307635874882411413756469796180897445361330403293140200482163971271271878364129205246699047116280758798954249671590605025248403781389006080669805592281455799169827264152846049552815483340750408323596458103425043382352637506296025549675411500429085542163426338497497490612368946797098372457364840480404854642292405207224275315792079276094450774775810032867521671416321237220824161917230982998030781261131797061951596224322287179432268422035565893665372013289037318652441950560440242570280072660095583506551687312237724380383995226969679853772675894766811814579518607012014992979683676292783114319017318037189388768197870600033818998690930320120855469703343560032925677545515405797542662116017233721873948067128113653679067451699514929406627410038953435614248321220522082528123644675897605920630090078724251676054013198338015405504300577567023726472837930287612036304399733542682104390074344857170716124058845727051873404903286143342811266976786838843365825558811763007208892592865698310317347400589671069185560046208650987445231824121006769831021516475292650533376300113225027225611320924987548614638535529454035644857483768286645758208985550515773041789563532529964468247712924245004086010346286251870595839802092217496692515365261473529661928918544260835459350989953498961120007100877502159640070670211031319453767053223614467566170133420675659067294326210466255347295391966642954497510457086199233008062828298901100402625520471754501206806639715991311163361502403041814829106241773684479613560666208143204976484873288088171703639823911342277231401686628193633934876220357301151850198810413219044036954750602613095441574479351679418908599132969820987723412663159887188093710435440871218548500987664331146440224565540273774593335590244304182304830198331710785364770183956718541886414776282513107624445591633237699132331080907238289859722836275720091088413003206492636781003586940381278027996148573681888720280072560288808352969740489779213698303766082685739698807552512162645982950417336309171080807166169371550371233827942688158938434328681195995502970876182856213729350229703381584839058772799129976040531017898117544567596660210957189643247794623398299151261628558468324542826284317992994101007405450848479041399422537661762898199077217841597200593755476515952999689308910519352766651276683908687926241955314723391104804391223695101343606935439227606150139460198518457157339334911443312086111671888227215955993244562538656604436012091784732079543968863316704834118542486544558597308265181958254181671896967680795919432941732067275445506040689354225304412155794133970911495044469805471243383977029424951621890322410741748136952599743285858892757290288638739672589699030225495311705076608574792021123351971498747550872088747284384097582086384866966974456101958756163849067766024372376311426288822953155585827048112789595688182825644941129552394414492835829565064061625744585471595626883387419753099526092478263641724206814480620023393998954651349204800973220868195374942467262335642958068378865062007336273971503986238993836445113324070763226643489447167814905093943418301723963368691453842317070524607674151563588028617052391256226937876099905386123928099760496071865695258781156344228440254964015895393736137146754540603474564134131055973893252069613157228214420468739806121695521259811476240925861567561688136784581992204720615152908976662594811171060490282161590957773332895790267632313327241104138759962017871069795972623085233897006873581958491939918443632097870665429488731516189367929280704069924041582224254589283289734575817153361432431813980387897503108585318829231875110411698710920011315715348009036336571321647141583962045195244520372313465697801622006933765071674474440667965825562515650698548450752886818658132366935379918524630409794762733635593748883924948975763307544219945923390181240180653121147205051885830184515122663653244951972806570784970163633713241908803282872262149857976206115413300146667429434402676408186560067129917671728452277433622268761272208712113754489023815818424060908758404449277521234071375610439485261149465002109306127854909753011166677596784564086312089375186445880719184818272232612359951727953207820714130658813458851884956770670444768433019638294056620891143290580918846929056211501601521255922273221482360911209967272320242623644282137992430635142981111303579349477646031512766395175541077917266331926450391868484082556638126167944114534974408278128146166472742921279505242547118320770136118628504433077963311635628942766350562802556633708536673348353302015179256847848544792852410720592695839330052743182317529189333359932582119695288935869976249868315135145830428786741221025850424803817452599365119506768459498294532201331766618708905412945867116198643108640373465623099443123852255003426513504363808721064108553492109164714728325768369861266569318557461136327990736855840860939690144915878103985882417339025699254914712494798466800470641930860507795958500716609202301649070452326294785004759176926898476970176914793710550952776194505025156803850837616296032097782203060898507830413028651908423305040164069732976586233168958358120336222559130779662546832283147734822201045566915374498417918822250416970400642504632393001042519982846791810253891250916547067349862552977952367403382387386279224273770651884693024389095580223521116631806310920693699745639899802278104297579308916659098038641708632449943236632615985719196985212966696558644019738148317021343161759779898822369318519127924282394255101476203298706970512985734605619263808721924778535538743334714509405471198364501530922428163928456275338661820616594245419776661390760932410679144341436803098501346861141105869874812978508580033531772972475886289423149986091538536211998017583813910865052718613467429140243882691644691171144187906391426726874776684211035336118263873019971261907928692806822547031253567361497261595955481078125640632535665569007860190508964972287432766886208382841089354840377434280110654434398326434244250462856163682571719015679027649241814758493199043579683427239196364841962370238368139531728303012714944496895957830043544754167087650725307329503709366156762003535023127957101172058034789303692334605171668204943819009889476879755173943261419124077564893503328603855307878379664306709143213637167286255656817421188860017105406873639960158183485878995335278435336409044752794808969834149204556073231458791306783169294006547839948836673106654247818186657785773230232011020684914713982009119748151244418555844469633951414394242966183279911129072974381696333750988688951407984947261412910659904248631589334984083957568491606716297393407818516560802098676320207252614446354468516408985332436442783491169557837471750837059625753824669929525398764687267012857917963759740461243790417328298690059950372607386639327884117777904013451309501928069883462313289230082817663390303229119377407980086050923138440983767695493891020678883684306328997900592441200520638550777029679535132755997241072217293755896540398251889619018490507484076152212603633347898775623860154588731135855187070574910201782332966098852555351670138493521080618013374556167715781589506267094182074614375182156583723281189695831182478712749133025905911568855543827203769368103288497087015996358051636833333168355046944089389860918833103693681347093738380964831364383931638001631059492187487687705694067002407323568047068256888453148670632455853830791669077659549123070266227988679911728755484990204271133981641981681753422461874905216314249526924652050038210953869509944283408175218826494869492651820341136176395468424093742175844671180460499990361696345087777378761088267526637444698159117477166621456147357594517339656737030090044406261812966127020470845784532642904336608301781460992951031177433435151832879942486128688908447123796557481414214535776991486265706484456181838584558322651668771068888049609971601862316723968922205174993779619732373162276722967869625964557477217759333808336206257864555908152908772891685364024674710887093729364954481756601070514776852852185530068887850080382890541646859207509892796871322939573138647955673734323852076643363003748461544013489698447888006471128857217198759307600931618792284179441437908064872315792783657556406985482996625035713960828247672310613515419993824856383522574352483499210598802310960586663724024507068121299418728342741540355127404384668209220582143882101551575168411159809600062303887843857655913742452251205204922489602792634875594824586109705430992120945870511587452303727098832672444049370603604242357473845276763769577440804952964656653942211161253554741634476245507023523465550987319474399287140302688333071880265911133235949728812867960511955889241655303413507517464342316860132387902106548714986924825560791051139291276213879113220495323753046099697300918466446370326343950987537297045579304652011268886874672497909140582181303674759163843544268016517092738938207862345942101121442699263230057097579227308841411898950032259530030809501031160576936524363380747991359435968954239635285242691042152398804635563545507576202473051810641283743916837770694816022996688921168292954152471929548726404230485035049110421769849871396137449096141626993311686602002831746464076019515940255351830291541396640578685998561249787049684865194902081000903351747560903734774000218638844182839537764774902801486718717613409283941966636073466861422327742943597705331828000360487192729804534056446169162730461474887841999110622430557066349502855749053432406998772122912561175124844345907833101198322439506599011168606655059858230099664229307138447225425685786327261553795660828473843387908255980888922918064352169095083045524697072498336081854908018088208111292102529629383202802305756737966749835702194872872297882406178543739956619322249763411505313443541845058279570901002154777515348061802887695395586611996339503535171337125865461973255099904664853263156756337753981963384954547999729848218335164040700616428654911919997459682485946676466859608047766087313259600790166179599380810628701948877696411974774181197034286406638242820837906683293281016022773375770801322158824825972321613010695663014675254221523738508205000048307312684720195172814609832610302440112459448497300691520767447637798941467571357241386620918312290141973218705398993192737598798033314763250519763928339918880857536338876672637546762252197059185168415107552817069948144473081113711247811179862483132440075782101455338699796658703485491940879329439420321595735045021524584026384568230657176164693200854356804582238332590132766060654245987075443227013850006823012561763238398368751430643408601875196608345256125069402452938332731441592009328686964350079283204537129408110892382137910481209893759641694270013378949983372685000106454775590579368456898163710753292415796532509188764318751892557770027160542435608747513383374265599395953325063590897078370546434358058738073723184727212974233688242351680273556995827146331435159146602740744634312716311544226353800230003035873427381880322822730806148844909921167810376268930214209385459103543693394309908550551413697821100590203621109730801323278581755515881771458198560032123306176639572388626861841005722448457168243816310071010757271272739411821290654512491727578757511239461296968351001921599986483536306321653916514970661893442000995536644163477954053579409605319278044535561764736437296162871863928380236715535493815538858649755951661076511278483439074311606366127879078351552814608699317478246409117744407877852636631469237724131424685106521004986414514806539262468374941843239964045864198229947667005995847074021591207702669570468782936513339623964582954216078645859891970244050328104838512047805387131019800620842108747412832945071770797295247512631282757421512867015731617286825444434766213816997144515180870536993465787044508116348285709311193774160020520193526953889671363704137973110027586340324465835788904663865157508388031823986492763864647839283455120583657645918604761116799542488877629774167203872202487565126531153996190004359847965505198014152071368535202153848608134960197758129202785476165988416469485997367750322991261093870425549060659499605167273846789564265065936837913181672149984708622800509933297879701414379047743451030100786836102818458582936715799565873059823068633577788259605386181896582954333774831954011475509154810523344809852720008925215712189766790939010207039124854057237582581458239482464047297186769546432887700684111530826053871659392296996083260055166632168288311273137481143987881998311044984850993678392227884369764976944270585972058121921558525462812377579650892814818833406890994074212532687803983156020702231197477966745065541818731634488261477157852683401325294376035009989856263719174896584217517692727588679970001253551557376918790632784312852451931926602468680316855247712261806988591678702941444043786267512810310639970797459881884615309281519701611598466701963382247916468275380792356930000247760285404644003978966235338754937614961714881392397411487618274527484647348949752036598024422756367360732801730430717846983746896465745885201537468526844117885783248355089406190597773919929329506220664455831884648103994818728767807831101851878764997186310641718072665459347036373652765975963525063603347848226956355336782622075929808346925880815165799149816555230653261426321597956974552881426652724184880625364725389647605997452992054535383413106484684715300792196867153411827567042525391492878425402292167231896494595700701813784865168860174402780094091330759020923401985417150816434987295668107129830801943082022677121140993140579858079731903263065039082846528497409363669142825023173979452184717069893317560500570755489571978327312407233297059456702072412442944577783227376698461951620338663773771571730373365425653205118196728193272586495145036907420046435140723206478099682948483006675608585853622449660060889418314049642689555298201297877596205908792455068786491213176628516080669264771472043844830170830766565103224438474291673393217209026145574076089206426864594452711423329474741394731391398989621264898037045095824879464533537758344615959822302455793847943388096313440336921833862012382308342535636737810149721708347159703334526831389197436963150939244619397301307346157570970313695970897684996736743267960329176776741498058805139012602968982953735357168794835068618134913517231137371928011182757531539170119427377157230365745825833070231495206142618866714019265539458727271702976091350264121194881860499744193691940719788427111020736147244874630359701689521549462394789892321296069035621397849448897821091068995356814652292768676988894013451450909276327094383851457797049255360713195052113153215425082072667170281552979759627879303944266491000325708720055962938448857107704932420507536402827630325603795816281001591438756732326843186996886332763149611268040054930009801115989571496073874173473025644861255978157726614766217525008895994260247592030195343231699075964595069840868194734868360137997336113045331624593248910905822834651025597672736810867175864022774649897182113173976153632394470938468245660765425399681298969165843097571428802119153904509312924728883997350982341746048062765053260370697954124548110306546946833545797745950487968775693029008104756394743488157768922895951536328502592199334319469476902579025197552278124578810774930535507575837452027626797477581692413939221493872127385197583493904084358918100185829082725724348807286495923622876137571590598287290696305746820644232247873183229742020021926175634054281466181225618374883537194816101963317126879503252357913238096855679686804329483403013753063341646819259850974202032177405660795052936254377427045832088275735757344536594591867780614275998366638009375050388895288672211288567120251654227746104250737177499925986167784238748944588363283346706613213443565777556972496784615907426163031983181841504297519662133876923359229926359050159061334027350244704473273832683349226841969164635767164229298597456132146693605702224523083468739806122198395003415053890853164210553286783146619326201263452990380678563111560195787224681728599448429974709354844379916693608504755203524529842263638298927417395532618198934240749350616775681276471488134613921651238071020731989668722138763696312540405944396276589347181909536404680162032647296728563152815104530160722059465833847104794651980339051334769977886659872282619464521364353210007816872078882002157484970967218008930804872949678558942829260221062562156385325658569825238899502971903986450194107076731090616342706358224738032033294180660214774936987812458315958994610991307614822938020495719627164901123474192080585595563786616393059596859920163117740772975284047262926326457617752060691833451909485493039258967426637125777248008351411019357235677619244402575909120733561243703934762241207161746464034544266302348140086461113468509662051560364930672753681577224761453118480670568223531149990920062072174595858655767577901575071602583612912073137511479733859925834836385414370374699504305169970657719442824629449818856877542147366232922437290687046769764815285243630451183446880940759408341700788743751269076377969240561256486052660989993950826569514308500186747237716732240980700490665337748099881821637416761202635463492421148132482086287454231812444026555410922413442498704323109174185772871230102730573488922911936181263800841082851920685320350386233171075004181282617571034328126500105848456620508262471716575012256467708473827392400041127039242944572705502111829144504319207236608162069730905636523110956946908869821582688005075248608442508656473250627291196751599385729268807661135880627288194772523355585213410039090866185363544165891394414664525414761079615138603967837087291623813774360426173152096796976051658957135861524999121751852140469500914801703288507262254674817181588248100179423123562233766121761510310659088701878864941830128292801231517161067783963992052895761164676751403433113686064166993110409189661852155244489862071003164127505234835378809930199980184697907055238041673396048786771997706803468386606415849216188324033638887229290936422388622866314369082542504298953876408801809017916340261057685346287248385151834693196386413025862769250150684945940259913198775374835262094136723897507346895207341798180646979182190171755996561894806075140893421630744092011117639967793638904075471379602095081171588679301382808000453731961220717356101127321405871317101176950820327523502252322237802796768743174475804416688790679344194524415935645066045247914358209738767030097312968425415492485056757570518015100244227605524233716112497079650696446932684829770332994167616236596583001921558695883740701293285487668206233271410647401725375019604935365029454799141214677694884126130524667057607552798240516386658634297637973791511829644903486411022112436338430289841752890114407665035626295049117774586470094794961905265383660369082021369083032898710542078052940918605982893998779360342624801111810080218470123146826346075317119036017797617068962748916726640259711297754462585494749568579650756526523376997258453968475133622262504569685293200989225214145737400861977227142126217395749883346336775463279979035889772536912631020972811725324859395437316543385709584033737248296413424109526389457371548520501235050389595653209015434634228931028141142441879505504437070390961462540420228524528130191594887614621673294915598939482925369537886054107611649627983043833709519633917594333938030936441982043530510188470316731135995572878335756820262985631310043740754533336958244961181731050147364182715095168692069812584405731642013163861373206535823655250284813847241488090067013638149037944046251156039760767275178051167064493939623271362601600068519574597672860598368295734553048864245049067167042354793630642186184345783393418396619000677236620907687287596887034701317297382642451424025589784461117684331075398296826656626757171415214513509154455790134930089762034414962781924150162116790010877103492135716880858578249981152919831063060268292965868464818383781667535616330016284243911705448880291654095221803438496859743764508577250687229894217374322500769463167474236980982495634729373610015762118862906242611605877786975925726816433365210462700649622446341612354415175450308915254439351099668507148036644296504287350375429936921582503028443813832353137839069786090384786982698407230350261178847451266131740348066064045278174071843927097054889757239645625992644021205203212238040696908440892608307205459333614828092481552146904002864862309507827623297596066247740101682674612671320996546939400341019340369554667707955834203412864219739897376225861693911106775016796224135155778822577783287037646241376962164655140359474912805858414353256014331605920152178398248500952280513377262706100734473019540774868559345876861252888576563762858764368539102371068752083860904784585958432403549642261210825029781817672047690326328805002771042157323707130396959218901726968080484042119868226594605118182417920549025504094717914219962448842299181571802576798295866447657215608497322113702982221745193940410444167352476457113479169334186979403239100394977442546963755514303860762302944903373829098565354555743888785308302986192547860483930406641194042377069733114797626975147893550420932336210595407713183022086845849421157289842548893838796372689670924543553295402029359021287632340378047767467748236959947447186970688538870350237465095145493860861788320419946342558862291652098504760680962502663661754814186846559920066623862654986042434455948726292236690199539187651931888644651116709032214983079889535729941081255590146326436131023214554373583407549235870758854410425370849509734310931910942736277384203782916215828747685059458648106733345144285969093444990268838083250661360323628314883234334088331089142642516069597024140414184276619862566020711355051861053842597732839615291040850154688728561768718061623293190553337377822729211659198537195447963725530873193250252638950344483836415882653304052609788536042600033789981357084127099531440182164461701450350243952598267839108405104701860822895490396799778014277930758785008583320647516844743317937755401259922126022625274977637626804700291370707995381019624575066077863877810865738507800075343614187467328083183764808908623022644358303013579702428766599393973675032788887120973194229121539337384860085386896299720571766613374517774212973798058866590244248652823205367366572372994728841960150058955767323107287029950458341149094088892083429200251309179090017907572090223835809814312849502194293165730630444710056128833906233184947510677015840868100406195183285454193927388236825319024526764086998100229892672160265320124578255858138294729469562173878952365266559615357940802427090726321160611805762954452913352282101519007219694383510576593758168954730147699555203694649601996699909664685251659626222423951241949621441486224494188823755523905664970918614263293340496643720587269310338894492370652538495063817846847347241046108486279319625130674206622970601033868427913288833481836582193430733372750231969990590910158023022828427917890114783676122861992863769898044301588370985265952392652897355722250340040444924214440733839366555122528169803044640894922176002796779314413994002852410755818189772323372070722151927259548741572901682897938431777414758447532251772177156443152912593729074660948085705049255343992715829490576647789940065388693535671020579316243421642138786576202615730404167311731951597533984476291634961286479412340222812584485290650195347227760288643361801029338854237045955400977162173259135491953723970153541515306118664103518423664547690466118738597995462777722315553858646553173971470320225235926814257159540787935588502288459133537411041684284385939882089068460676607388278555524216918030294006602184141863965902583359836166402361717260797817804783889747873384275460793349263064271318487055789547616084035005678228099739046932059305828246971409154261721195360179636533590956268922827491630723311389769286998662061034852464769748684018791264821923387361492719191891674567402617796529880025373711837362574845179248979916005584656866876496716083526276489198059554174119403957221625777072948659929672137580273065942666969732512902210802193703365904074408445993378680428371228085424028761669143078338653249303420555760452610885546741135728128842855912030402670394545683141725673799459912329660168973671755760304443169526723428124076150209125786154470889608175974736245859700803722332197887916340044452926418888989356435207790181192124646295054956522197799986405314880298533611037100004725087265153071658359053281628225341601481606736318115958973526405441261874285794667276760875861725352726173107766838174532500543317062381295039493204668335823783418139927992082906522865283488159510841885259252785689599850528863766668894076529169251515387442896846216610087600281397169889250028798545214608615449128192910565686738924402203550324992307583574487476808467812826663611939478975925482877462128981959489710589643958471018382489478441358382916942488342777330879465792991194012153111561434751776766346872420923792352779434306409404128107137320882038684988756962511575503852555840502348333125670489052683373454250562252584366807507341352099900629346219256182951955427745711665805859342363249469303033143761969327180892741473115528378957194191871931089723394943407666055889572847272458926109767133657188765399622191260852264368889019454359876251232935893689018386031869332357221771119393903812247747589188316202432856541445138579522829710892726181446856236270701676203038498492364688242970804109934358819627441481556654387031728912007704513332381642373758503221548623830705379800405437947590209652144498769797627641554300804959613405843294749572188062179465882716004346975518936749415610642052434553195942877824296687892324240971310275191272252878039931472484322557009157479124883251104774978619897428814888148474960359678477042959292652122319249718406471636989574979851421439670790350583131799892084384852727632178276580517787044580452701853897330069320511947367015530542975762939171293335440415132767919658445679414735624719344950503906609924011625633748561017506614714934905157232001592440191748853127149258144610495581714044804811840324398052758794838493763028907546192904296430373632756708507395012061238477448221646785010595738903601655417322581328139471128915665590646657676681213223478963460858885558924519216251193954561802248259434646218239123570186592988003080468220321227131080637808927905743685505603808076542864869247249315078394809037781784112360746724855315868795180627131361709888044327607862035589442806934626227012657625724089975184339776430709907936672230853264786443265958136841789269792517959596256669448790986157314210484358046726637697723835950481568767378926402955165588351879702800827429577297863547782561681082659823365495917655696066180187311831073095799620714332762329085366289921128843857303933222293170820985404934403344252406158784678562011881323447156932075738329537316084557892326398729927938334219746169868400098131788441482582164730456772605620605563874179551934583001698965430701437852494481112645662466838910604369475066889294569295294803990552252500200002030613865193851611465660794624865575619535907150630223235125879170377580241093654435376181764426306948989739849600971060525117109360643592034480860046324214283118047401055980160707477914539480932952709307831485685627333161934835599397167124836865597751017832682831593062639330806745785119323331245183329797166433148808555979426306209462898664713685752639245952474665429899354602854621113841299926227978395409998686873858201590205189250148293259596503199278645414065831281217673764606766166356237202457784527568488178779892011778668811692625762099050011196128537800462606182162994710350214544824070300095034636899029990712647789282512204851413463800536910188000949801982412348852095241579674476560432149630046078165060240152874481647527614233133590748394210438520575390178529267548951511687242423942763126744050316757229312992809255931556337654954018440340027020440422262232624935516020898455369492717090797141990269779755211973009747651903122017368483048077679083342161304800709025830405789828908998145975881871698621057546938290696906700544475747873499827057385092647524804824653154633512715401958177450179123312278087573274746613050969763662724677005310273471063187845110790852135687824038709120961916985872055151301057845198391022628194572391567074983041120825634123156099739611445806014774213965806447716673635286726478506894787076280412131142174455135995192000713450128629730145170994120569557964359385471426092334510600772904425609444712074234552332561339766818637964758599982431189819809101090756709805108291394836164453474318354362888196452254450837292240390193801223913134642574111359124452104480955648332218352610898907873194061386359768422078126622318405172239732609799836276660559310707059554473781407839948809668461953409235008663884896686755081143957924186965258160029867615341475581479132652994549740183611446068026819303184080646910431644090608322144377687857232339023750490635316694463887426134914758695754277016904123219916481456582671652661336749118582446470570620982627515337437512293098376200188513557210813260597335663055459118230618749508226999849846730874180436325587390613714742420050850029814617140569172190884548772488109923484542948403345273669461065966285117129875447423134573949898106907978395077659808749541308740621027658166593104532860399326280978673136963511423696490994086512413412175800847007937242285759227462978876123491603840773307988072949043422940384162164428924359899445438585205293972175587025674769117729905151421827765151508508739542578595250101611444304757723232607602015698430454630273609834858717780751776024799966313610304430393670727904591067827959121876051401375135472611060600250985275743315319856621061363515835429466948410388006205030343090354925413550102302598901277146358059280006694995117131775878225981505924581655136614030262486530322605016156369905642803685079939159075866142051492359266548703191979099190179567348654795356927229817033810109789789217951675133301004028424482899592129531062588341343722777554439918151406458410724589565354128210520341943934520263329574064586097189512946106622914095160398573968588678535594690467156672382342194008285893640149166021018693808819399580230808488153410934182267086611718810828909005062567474769985280638066664863819802107105017665271470873873801074284812084334753284838392697921257238189642741013656738347588649896690316475708828422342184198739314740646581863660530557606437133374070797814521672250729716932352962220104413366514440684725907051740009942327585584118932707312034842946778228978379168524555102615824764142971195088884054171261387872114089609481555049225739248309287181761332938017945382942730079427935778410633400273573597857650433318298766358377824445652357530344117038531216903664635658335270635962646602333966223248219684120318335553020136162525404677814327501120550682745461426369910039535025777455744710376095199319785618835764256168981801692673661390173626926079165017779826736209168032296497438600986002388984165892757942452271918847681971062629949026008559586960213580273065417078439181898541452784013730773453020285337557033677097683278277413816001899731638593924141176591971290584772990467882573990484723217281931372200282307127034568027460748096428342863047068456135501502148646458683211239332598938332449422057256386334934514806511168092770145906113510528731931875840651488126083922632475195928748523299731534430819834654715708783561757040238076795049087601947234431891036598289038490791546368928938846041959121458861614215444616762036932037827843256732593003683889870272856925829268638263729119756725548357255458935738146818637096442147005410678369474664234790581751924685893424834241238531833073948513382627040746006360677933331443908292448349399614204632471629961410690829039663539301091205401149232759091666699993341383976945313653620539584296570245035402652433166233246599234371530181658251193212339438705252237733343609544742154348186544402124547006349992592794378702338003724661970557048360964069539680308580317668843251212374362053629807856759711956467404360799797969569523998743807187100171958510592293106740847022328538491659171715243805778090910518094328188954262546520793094059034334712097392221179878940531871891890710649593790468850758457084434357785591376382394218072143894922455750851363807436789407547002294235153791385347510538200154629281671430360929551187318449814251289619008622141159893013654771900569520725592746694955458009358371607511397383053704339528103925260734669765088044379253083268800804081124200629255414021002512921072440424900585115796230993594281825060256009783447671551646752480436099097490198941090880507656370803537036763714323673975969476495886938454717730777830601071049238644470598278508975991689962830897104129944840125745124235132540939279599301979420153663199442362070870395431880203614325906001907988865887372657608622083107958151494954643042738149226518832707062047301548486510463070176375241678280719704919534203629651835460027931108681495472662985494143722316552740929601942098374410983426622300015171626959686764728290500502172524123981967777214303848536164715330529803787250180081690621548530417167800613375651667633564565197866641895514949447561891580244244641280053308226893494180424914936973484455982590297709930527184278244658270446951334793694926227901922243121111705448018437264955492793495361678106480239156459863456961420835618866310058241814198262892217537646232161362318021225226389775237991024998433257041223310217084170060999982737277991532363081565857617573565891387802589012724668867421297514037817050578966482955598715310623059927436110184813617319684659386471447494002868143856912181855149383001490257411322934854141717666306636602934993605631838644571604506202907191828509116220954793089820973209855002661317080063628677568601517500366387391492146500854235048925903927423447166791496520173186749369581841925389437394785235954049984946076621640384075604469509905183744415983404577500444286109578665472151138319688528248987822552412222503655373404243787959531511610337692000502588984564564886604693362219275305427817947764264169164894788141099240182816321156820665137461926138787560770567098717183277165080884019352787902067112592637837416911547211971165179102213306997108023811812444197289185730967324254118204268824434432119542193263138073666333003106090631572194806950595798984411068374180837416620902632566681822043681066093956732136164797901433811834889902668096083983431479882509463938269353155545967084179651408618519552060001835276975920256525247107319321764754142684098958150710870871285357879627729225739059711030473811110300139991323032918792121520569227208453650087314211895538498344066731297031063639850720133204644508593608225066661474809408497694566933310554627915413266830128486063197360780457193337565407922350523943372853060661518669155819609157365558188379507418945143799489105540611340564057080691064339409195809413163565530071319454931877090479173905742313279664622476382894501751252220429187491475651156907207903403768514267361477177769775579029873633703639104215956127878272941911592368636837565462184098198581588681905233111243906187105775409179743792200237063370049352900946565548066851324024492512518482761665552382180736153004781581090594832356843902677435719274577882118776263725126961351721289268550555038023425890797920975066112285894566976065536092686001149284860881491916301838999354141234768237498259154454043843075336007957413186987095297082639348941317457575290397243361780184177038276012843895650260003275435281617861127954876960692952772738078783846358154871221713048223966823973842939989294501859114024293336019399083863834334776343126302630845293232584267474964269355734239752362060419481525431552987868594115567515792462399224715980475233952339794491963437604383498889024791542825971966446196698490684380121872589711786463385468017792912430503162267860411546633198551041367418433355330572114000693988142110933614317244609224520350336889703167039823215274657563636632897635916392151926548585301061505743580662945131448352936324696111167444963703547153332937806699868829721545078541434292734169982134452001820081626157139586421937817629509419818277867125146785214375882257583220622206473803037827192725593304014327685156856776635740111374557574871632901416713911620209055792052074362628120836627547914681543498699892526591068568000984833390785335064099143803007450371208709675411016254321638516061340904349539487456140913262899068415984212996038640315233120879999051319576141100329308500689379963499099395645770192269264407397051421264499524982036625257129782818374264708009956589337441827392336025793995020180714333400386173857192589895072631463541095510579578512045247177291394055596864843765140901507453682550085646171008739124288155862094350813237282472412423727381987041239397199139633183396169384283417238551487802521914798851047608155565919639392487108765706685420520711997234873421897463754312129693286289501992097467090843518820163527786202296930693041606356880086506253907130093297324627189045513233745517731966742292167250836577081822421528556852603748802236772801223699154386921221016875379026177736767495956596035642324674805803798845363764341019613686164974267671090470812380064484186188124123960994174229215535129126872920729532016144872198700499969841319007248273963410858374071709383708746835287501108292195360467618955983757745941820499452802974745956443678675206814355800833625590797504183050173809203796182226368515612482183347128001393582786486171332367608816803117152030373118311795859507009118741927412743734037123687446832185294135563598812635640813928176482859372029432834353898906052911970671239973545865349344972176692790140324190781439950496831717264663066473609786801230693540583017649557934949920892076065388281170819092476329802556955732540656402597528971840786893285727121623919419441053914621316982770566368476618634842029883235775997355793882046960241782891771613593354156350366080618671418155859922198384895701010783181629133194647757547663863416797959775672565411334432197279579130031562922915936927274558736020009976814566010909115813087635157751916393107690736135631890817543825072571307397429888092447933594573620384091641855498484404040949743450712478975066803529518248285336187426820545768420753547467678671850956521312838496424874037320009502350722969591070240760902205761690844789855460695646779704058460393419364070767571686103313523457194128631315691349643589036338736098503843089777063164495364538741831107875723746067060321836253189007292787599468968326487251558230581317654843377279881856851168659071068710791343159992641786923481136113891091984779151372654717168098465785801393823535503021751413062205229415774541628488429105774314883685646471775226860476049191890084030105608154595581032262679629391497883942780955761550278725083958783200271064331717524251769992721214811006048306952744525360826810653751611330710728986935718370322540689479241047505195694413787569074019589579775376682441239787924700593413534904067125295129117368566696867351699695626442516954456033323379470532284650139391750428703728299479372631183286585668201975113741372559532110591025342323945911366798069772888538782802167290532877108378671552150972724723585719021116422122019582384740755577934776409180464146214294987991548266185051705515517221131791607776534048202493435674791316073527830546454233136394782170029075059746905202300219609612931160283491932737816347494014364316812210386233987133900263921015859555629184348246006372696414720296851235531617369524889933648495414490345937046795194290028310465587231532209925597928785573076775162620554804071201788628415580827670696752437997228759326113640457427796770072299272184534766365558500789817570157157744616398371326604604305003903835262140145397538867295855560665808836301707321968467358401241580497189024475275456991734567232149969542580848367855460389874756328111017800964088456910139210586376324330849262309807676377680392877923523630600648676433927065556027093931013687378045460325413644896934704326838106543162892672018002922444154902761748951324580489643851225955965825925372838403081524755985313392057424144299270987411290895013065688100102396634577483901939318382965420883904589704036911215631377050620777944439469093386015524005677992948832301829265727245474335075770477815096436631788005264859661102859160520251479101393942928252093140481216865588582587727968761992907940484893328387910738255189990278366478345339904069143283553122823511965187381724270755396225559896650465559517418715465520745298777940006296382719993147985316517945453297430873089538314804323027727837644628950138224516445516594364766345942542954074260013946897699181486682668847880072560227832575426210611758917145071069432358641607233782295925494027463002166236199740240857072532697461149368500789754200868680826096160051644313232124838399085244425034598410685874842307479786768154622998439316688222203482737916226794622889021090601284663834712947402425635827542062282310545385445468988935691780698132141052263029412842804149114874710325899857002218687765430595055218587900400666359184641212310144816381576249720700262478142914296198184155856314846465278830017732782013805296852429676379041931914594359379021162638206401409158620666694101017131513824945481864203613622683994868224118579189220694166246473307177581468310424789711282563215390737941960872444501436066020157011254735967610961880059780255246307732771635018054567878166069702027058528612053415160489315146060925021828231017229870682852103982421017500125172888234765334459727473485597740459524379461610563678803767657696537850034426248473881511377231478282365490115527127369380957909409878182534447524453869734186015960288463749606520566648891343932896748215699968232331810362461154549772009308655551216760733112807700536764774651362759678585956286368649400953651896001176514641607199147295759924599147188051164071288246720888347516461888376130120884784418776598364681879227295783851575929263235791067963298523270253316840170387667607086438665405278511623070645069221267233391531034640471241880515221709862606819182361775371606645214661911436796818613774091198164871772390596846039990365275007700790888012130334863862128124388891747640830250546707676472870967828059801254379147667152214719836651333468971266354174482704352636739345264027960244148744374875573693305847548252929754405155196778280077010053052802646667411201442411743362295780469704665520882605926385574523343989863799788283727981855750922431611600810686240920231282358789156895613508789958114972184303370121628841666280172667928868828829968946762278849924346290122887060460514221337513447024159025586428013525636297482974336815459703032140810945227377628010361165612894875876931072247015161335873837072773358395471890360642598464556116467400923195052377974677496538996609034509901157609900221204119817125252987526277538161569048181041505268461969171263431882819505977090371571749649530313788037044622600040542300325918164084084715847766195500690989512634754483188627269152671833093063810105502266925097340031423580133457512554287822026672400883797017523967786119027432624832001450585296242136679102148407964739585182445885165861411983178310502740552049457769405684246684121286750504095035421713355902519103728869849017637459912406394427710977697712930240898149990665636654055201609249639747808936013846922630773796881619925766391679282554760338860479407031025374886453608772085479241315440040514984765044143616996816313356442203620429987190060716478468271574882625479955929098380213743252938934508567046748397906651643603073224368459482208862733645323423025904787577817513402530967825969401944925314558593848805681259900558511869722541603244310926691566114943573987153577876027981658106306404428492540151673133395505238014650571601979466936379775391539658590126676603802744024239773674974659109354023692954584202050889379190901045204275362678875650788754406976413102336911681751792917274890470452675537869835555654316178250609466615379111476234530818398847585503558181938982519402994780105343936966042865848010237526749950472195621759574674248939673036608458273754643086790544734156605655529517249369461785662651853057143530525296325750316955162217586853778334889444953375539852407818785778026405395823311047879737159101357029347358598015409687213111809137835326276303205976319229665852906011484211482675375180658815736385090022523577655683788921113291292825790058282916110202091367696977163673993692824574444888355594296528727090152748184855115668547412846905168058270345122138618473699930751897208119240742963896870304822851531683555397918698350931151366021259012662792355583517748985520786933106781109747563362518225548045161525887857054603432098399209327067479456631592408899321536811549614170345491786471294463570567622311186344707960281651771333107458869596690007928235525692999299110702118304978776366340759866950935879938889969008906542223690286002338766388153882954821779361511138170923031006983136297219029117725026548902933731849771774953087786840802300388946646062079820302045002301851033152649513261310357687571017169602704402700746209501809125784476995760530288157240965705350541209465106054334454477745938080133015252483104693553474640646317453367918921406230690591572388351956882179109166721946889026877386073997716818737764817893570784332207471052985002867546610832038509530846412206612480685157792954929074448957086333332352905164340026027729222572507756130655783757776387622563037106261162015854452926046612579157165262592981763484505106381009297590359407692559404503431739397009578819386128780284896882698623758932930121617662301883481777161091858321443143950535629229963227300648614511679126926457774964994820431608492565867332661270780109395010694656310701498938345677949695774373037611084053188531782785597338226251097036909179959510025814990599004705447863335220739801426694333750230639526575708138165786509415008465993184364239164709873019061136170068775964819354363440834793494795021941474275076540791317109186791579344950892877870027569871550382825168041717847748236954142475110309729805122525269532713592573569379506615339561774603273666244081676304046928720528416778771303780024938297162494197577209867056890567939935129404048911252412725450707229663986203390359393050647659126005010818510100012064550738051859133012572335818332327795790734867234954132901610146673892800207915643956060574518935586648868414243112127964941707070452215935105646439454983496218703505443428775998119091590808269987197866048162660324924024779854669136573603891958766293463677352974662452703134689408138278373095654251514356619857924265213059873197897249535479694444952814828676328992399126030147219663462371164153311753400257470494121832359830710586723136890435013829068349382623818781023535508350313396177815196727921704718796396703527555407644617341969844876196422800436716191280008248985190465495216485517750537176058160282761594351082305066217477401668314434317983738855368636648532705481535120464496553451149991976615013309279079460786762424181426844830541530245429997099044073244773448380283127850045670709268804694105639550269845966960781528610507177467153271403364536081613411444674635537725551543363212431666719406109636341576108304835688683816086227539147511791865106537718912928666548479546690455379811397342101375506054104640536765338246029403491911060147058827107122537295680275120710409309647830653940401874775265540634724641971110219990024850809267972102544939356738149511407626277915369698872596685681789548910698818957253028224001773275168410479851158341137919396236204952059144899031938910375297148730425978747721743890086375208568827759756516664363891376701552823576918644854945516546596727848250027799908982732995512332055282234773449613839567113165877785346139167213884840129021421702993847082359385121679200278908392610398568349427012604716110304203749183108245145999201757819074319159969495920108721036959982630042605081400196183740611789332744238034755994365276930384977939348754346428315500314932066300592932534790890912659251655616825069095538254433129052743966434073350786563215079000395085821407410402944211624596361558553220826043603485543887915202564586193225991469837044857072476101408299525761710598868438255078644488179053290224766000738913140697731449735358696701202892726700462569429646681145069858463185327866542661912277287702066378883599661606846297940073860800753779364131911652481298285172046869629452994845741782636661922565892627378760226301846633740392096560390052113024790945996167104153968657337566111981671810655395009780605977041741480667272994433724292446749449688472754588707651454424903192130164101240791585767267602464712201181081171983964248290778055389819143664386516675269443882904362785154102915442150407772129260903568010402695817780464971946354259037160792283729277921305536520254647756105200606456868532972185719636123013615540198818699618462135389625631903768739677939201329132343357802525429478843133974111398447541960072361883403754901717916761741500906978146697988972691058475626204377355498436047501198044854473591154815372455291261881218564412996789657365595495476714985635011727198231761806954688592030535124581931397644759985329188624390803595336996234165868912996470779811972547139097348627187112271344766212045979636574016479973248494563650856162699770034186985883954041980912936339030355038076465243677261908487243166940210595838509798198538037709964142156101044844509663677114255156553646726249417971844962271719187027835175235759693874490902562455625453644389686527906101927327371241814339522796006551619795458895096477020883234893239303173686187787345907559097578985926847628731077090240439036244891458866491935098737387586285692106466132548167157408519095999762480980735070178402555283896176986976026054674756050945319486425695862869232646872168882171545705811148421467452420574817794776815981865013153414936824951173326993048643963385408458158542910281816832479758536350479145330655364927803208999303675822583886532658077877586164567300613154472813480371312416840933098192414229635697581558951018306106216068369858661252873799616333023621676198715870598624318587827602094523401850162459144294666736631391227842642206202904039979526030269571117509895451376344385161194868074351511358160432456089546816890778990890819799238764270185457124678477202557489294406337393406364492122816164706074968541359929388611914907542818785231882354696897990426973427595486717433219297468503173804712172366641477058635512509383787676462499444648500003483329543560718154099512728454496111495697839735083814341236729439015259592113217112965520680666009782340140165225134171426235494863251602978929559999069324130780843385500287372827110580824498357030418777254175509910893504911377632315486470863270678998544522756431024295394044490559430087288964768643199114130131888239976758802121566588570314467689192303486825635373251432450116703486402931185460904775808801305454437916445693957003777722552585076219407194834913186593511203302622310800602926237866954122397437699632401890706324994060437079250096435484807402569310344586847056403286888356482556758825327539194934117947965215629991182761491678407304030937360917309268317634640065368923276004268629417577734374555248634863448562780120671219003260313403435651598691488226709229854123071352737186904458682577703030657561098936407295304321159401756176309555159711265599072013663045741936122671720581095253624510819528068939862596076511257385827019957235628795737539316566960439361084003927369550713098536641675945156125847968479007723132938637564182218215821358539995954444160218468878211158288842719234885184341338678333470863128654997237670486867109602404558405248945406557036087483600292902438091260906970963802264631174389854146414013574357486590527243651319396886711122318612860335605447379871491766635450788082632317116650541825021430757088173023213363790494826454903134284366249112782082911327461566698742812298399019450087820709809773134253169433160218085268406463282689415527666541377209595864562308415724322003027472545419730879836940751498279009197310964437669085417896535451855254118287343849712658147674321144153616901795482231225629798106123706014867218464296509003054816959666764388552261154542017889306693604476601905562261549361200536668309153830096004352292363130366700965523398169306373678470499820819778108178992353583246572832459586562017036850168815005341417402631136718219999232197270052639307806434034913969842825619154384532234836957824844191865904043126997591033072548651659105044601660910578211636719406254690557878456656993396589671955997882277019006567235516604832072815240415269586927657204458860284483686973509338404508491522876447735028913381880216367561559879222660838780132461308923665417037859312039480589256463355279875474796778764966310009951176069802248467781005159776991694562685116420998203780386645644233555361673360164777283838630006807390955496343478597780963111387881194505312062871411657125472455468073236251600656949327832684865748726478402000904097407518245023159321349535244641844411100077631856360005800227143383302923172754593141474144199970497564781933669485238661187253875828044340928611355951605293588336934797221400024769127839715958405243708975849616222611061281385863193216184893583958384333588042502092752069194010746093310625409807899421395907185164508319297493500690285346759758955178925097964004248667967250475938319675728441964681823610540084605044231278207999319602225657876541165580866123096080593141984364322739866343349492609225816295312822563749181801339573244618826449013221944071306216691169005686067437950766951154179915293418344936681649473539714514024346352653473997606154171938209572082379546333914985190275434973131003542724191496606748072878915499850622902460830515398199781459926422114469179048527940890633045149028129507959661930451276714157180179621520416556943346938625210824284754872339845828153501938800722817377941436965465249656238743337615877714972664741613694864705283848906843351355936323676704782914770813322772186761941246838388994787684116816024681684394458849798247511603890925926138511789671090015727506538062126119028662851186591430858458161450930056706819486972580115854388139342603649434916756232108585717993993803906962732461130883942241157151132021703746556990528405951347730825515242023225573575084782050032822634215012984187327101623550992177801355531131348838812068858259807473243222924590956196464424252179519042447858642068932027446626370567638464424455395451880686775720261352507057388002198562064790162261581445721533438183895724416531846740445668183184590376684052975809605969586567055809870876165504991293036510068938847942953519942329483428944776357871114216116067255440096155046858825113083159150946374698520674278144952028310700484625972637826052033923271348597659486703663722792891535050657801958106161279581431721846782388219995993067042188347796940314263167124552213403240908417285348470629787256994480944863241612671399230042694433988303058213592604988007686334512453864932534384642411651879715661968412055506554174833515163349649857723191077375226740251930569086092129235622027339620886596518821217813242835513526365489486491704095924286124701072609544939011228326912794030465877194789450737544081956350323110111668765239763812670488353372396233099475919448078444908306735920838433281149589403940962400272150213683977818198771488307694021173321730301086409290646760753108681166484071802711497213665043497913453558650478995220325940459364378127535563604912253413846137339280506254688206780004060758953501240789411250861730798194433024609533667660766129706270826814299962964127283222053616061596379053571277270574158372826050024120243587661279486085599740891477966025786103492055464459660431978361061047429579161270419672531656716865169505019584342572928272863522047018940457219611176028457078848163929258088451513348753774281486443016067590512700644940755885559109491946715386258110134482248900890649880271253978737092752086736044203294430764577270320437797426483862083942839110552188031236930381110200938166012851507594720205468180443206485208220219757094637613420180782558279270056091654710319967329821801982480637400602958612836405451079033766313528371336617583662232482125060929114810139167946150876152241348155502974881501214919019071121662354453355791978787857476899863781710995957929283881811522220102678503407096931764647957492031179409872115458269129285346144859857646641337374170738781032662319642929073399078705169360596661478424334085610424129204638389405359880978609892630994206800251668075637234697867822085702054192113689552030344550919570192202357820907659545754288708499418562277370423240345144937895758352972709759459261145513894540076378316380372523940009815480814356952951383348348097382156210039621060998513487165129326190659863006378740385820296328414108755199506439888546647735271322958734547925448439535641296993629898525424301877555945460872078341639861866018393152619060231596994994761502127397637129088605478310399194730063899371934603745690882658813806104573416423632909931730934640861796559606162101140665016413165268222706506250303856969385953665425520075738392516396529541530747877473628233261313689394349942554603904315751761315446701928117375106841456987568826694965123273892611526511070946144519272340953078355869164188398890884435043092973912944836232552085060996008469246012654140941510875115329506277332758796475217573480578241296772442336615867872503184782419142694141813753205457861635969514865179802764510471968415517853183669780703007829663265193191495061554385661111055341857383423824450369575045961322568345319338767220605615257783559619005287926265548610530303334089043139325347664871370261401612463211562858960031627943199449774907517533605729658388366750972041791796980025656497305907631772781900153158209626720369995257926636657408405166451743881388495068312292601277190547410002270452408807999072314116147432778488703392708875166894530839230347013309310034766072784268061798666837497579360325908358933732269806818187869207070484107376245811554492075087732099150912759756542331988845496914211999125895415113289501805623105464673426362481832789487481235303539855705014856151608199843936582485305211634900529748005226305111659713014787912653000100054803559573894587223289631366670292320414445514376499964229293875497375522534253245833189004775025382796829627913446344369214910929509762363746437910130008508113628605422687857329014130811524178151557161833343775220724917993080629767981187038684366350852285255679600285717410669585183021545416594808118520366881733204095303441897376483891016538343256681629399742530976162017877754214908834552947424135162091285200595729942547871334905137071136139501301152420613887758169300252343782197658234936573832574113730517525876464622532633609386238267626830533364082159973300017747267897429287924882340061402218730573273694686133677926329645733054576625674365796981643127377022475542310647917706463840136523720232329320314620046196113997342571430121546623869977541893891428163018131361643044231997715115917357966426432535588840594694761636486386471674560101445410970162946407433586928181576165361322508151283056959706798457626851463224421359227197615522415077178939228102925308112266539652880470090843421747609135034786318879954347807177711017836982966330645384027460745449389012601810482597491423530271735363783798429350004677173786149641667535785151680011432594579473670491304492262609873652209514520726987577352769683927332873945172166275165594605575532680409487535503896401414781589715061427184813554480247729799685217031772762553368152951893038389092294610789550642629013787572902168612828706016092475473706168750204193059453684527472352170253698873613576800227148394206823462222200875313782181654946677686059926887460123343944683335776666022684574739041472656777429573560882000632139223632292609963388782360176285336230499772101596648129717185526467772933901103478257654407639657513043533680777622390963182535428672442560926924461511218879272905626311196607398895894256878905807073336731143535095895680587065032890932337072048609954890651138222591863849300786488547997904822908036248141530378746356653761872262706870018306472437489424199199552753547981995679083450588040504928165753046759162972035188576955015885755925573647695718450072851485733370522738348714065335144391294227679771213641936826196572093038482321613322479228820181559585609676917624632391624783997913712870137014888589231310090907971128437728002029749479072224357420901947567374398866656875556194124032882316191588082110170509749949067978911286963447773847177787039283154057686184599721528185043360142106853490240752168965646601156646770974379471376295474609548800910032458219813578339775491218426099434289830906533075091665433284078479328486231787283821840502988374095195075078371301829986883092389609319920941122417265861399507927474394669060371837971204428223260268056164137426353946655438607659476619938180488562345701133750553463865908527257695624398793640535291953077779030523630146343581316290124300744965492248077237280947509417536066336604575810675894728513709414131492533437886410894718057763993810435396543823088926222286247188381813766121312548278116502711135029014119147698905854566690173711696462509910388366000292814055136288538224259586091710423616776172778982959100898507959484430330675734537382541788596392010424994330214156837628503374128472018182135018448933360209627358426338250758261301122744977664475154521234182285831124589256093488852009435887092385476964935835880450487129880618747813473271311294051736766792722090222815599861613710409377953016555110245195354304646330200584279769623603623924794826481882603148906750314786767062574717095071125501044537225638062577996103981389695340603249282355700610553603853156466213643612963853013128892859968344191773878436972627759837671636397221438255865118355427319492285992764989933264077770095728528625862932639486594245934772464651278123446375671628840995548246692221334038694183550799986986720915119794946403481166780609602906384450309282895707705788790466204138462974061563213610912880823997421590809999061142941104522108374824978752134013941905518873841508215763977817076185600355408001664666668976629590186787612123717037965825318219841708993680292752103469397715055008632559176824582788636297197244715538347087641917121678387502224664490611985916916739067685196508676671868434145001844556594579306783660232822195339569427041322001953254332712512475476885659849240123536124233122071872145304384985668118508115402796284386143349843852818317182009747108373525524182809911352707108584323124260042797079999876492070283516911649981034329850164336147251426656873982220568174499728932401321924583695204356240785489100201373565366690073146758601033499952685689905337294770389339589651818399149080382381575767864932710704408139691235958006977629282254265867221863850816614544227204194326350330589579929049708129514466609317082562697512477016015335423446674245872772503516091094603817483512740408871616347663767709521259244075374488378349299443072583239626344767291198740010423621874175543049984999709766531037794433756806355648579918520498715581086009959648099132104731992691785073347950388553756997443966668547456962172680244398946901919927402964743652201952968528201085105416677231736124697334205462990946802731010238270772187197107197910067293092846520841518891318635029912785891946324389131717615496112215736989818906326421193415325504729862718873397823401855208319232468879560088817775179189892983270076718092854813335601526005853855841108645469528423704064288669256246625871523368922932300238896657972993904083533898700123763491344312065064912149547513737900404217058246174083567388788480976226021906987834599634638902090602235825027395214198719042954225572579680048962494100120865836184915918554696220754914821520668797726875552608272627696284714458369058148534606987957641422991624030698293563080579848485099046449941959511118801326742666695746976823935688092576634127858954106979671742695323930985081630439887797496880250268135483769848329049617046750654378506448355652746354206910654196620410172539109513689039858777223302416439241347248701794619666968101008899025061161658087001255668051401774898265054891756734038211237525536412782952069886207508343642649644683549257624555436952100002952950446014978137921168263132139946441440984856725026432229128257566579803402937898639383593399184170586873590683375016864360539224293818928276785990612982721503735740876493791249291196674927166806790850796051554011987647474688481225019998710441816975363005395043202264514368656325246366005299147572509068828676381619103181388926815637181410411609103670399626764599313958644862861967538494176375926693148053394858483579249854716703000561806541732482612730827450038995016382199669695056452148915318170219129210553975272410334566326218817332475259660572110856759451113923799782099598388579922371216299891038386496359770504427036383200262500255247362829630198925500020921335963970283434196307708584624828072590549857425265758575159699161340215986813289385805970247717406123599572747509032347194839296629449629914052595592394040560631666607679358420274567779270811036765423293589677440173734861607354987527903150279916192272860361439196465476825103734623278018312816235526105398487966172396892077507090429827509311218404737926919897423569331341332029362212226929247080766150310580578044049905104386995386316989977052047893570158402543670231993738165373428008673957943132321202384923029123052019989279320128466947438390547426092798062711218458374955978766155475146513357429135232830641270980859593274500453249057622891580195295425212576153169863182916748605556880657974210725374760130075865460571117120601226911369863641176622591513549256873155693935235272126230943280258518387132709087119240316303574958713084028660018403818144070831626150434331353567647284191851770418090165895972115262497066156595502102189839764561321416696161840379556344483951076938188974647222958199144524257611170265377196005887347741157189367557447863138482450835972625455045121991264496579925881120721403728357208420294282489103355916979400005352089097906275407859153694067261592214405218188260576259679413761341843130225124641766293719114708002732789903943737095037947236950262851969449203514066705934793797593587700718000432066543323561302894833164006355986471017058445110259224680602618326122523441608769724166532308138192012655864458336191091654021774787321670516262614047342857094336918946301335135143886395046346927485978267496351310026102258653472492094788368628877271449411642098489236759678829013316971220734709027696063190027216376731411110714346385590465212810375132088590431021956080589890502389704082954105542182198138999107457612905885760370113176724005897828349359399975012074534976051948149833392417162026601275364093846312392588886309939995505604756181170863711778495344716028173600205221226474701144122319777058797031010148797471171149789768494574096123528909772662072978584641036603262574489680831267352555618266404091939394322912035064532238741710788897709875756929328740467404909555746394987254911532088934940516898343474311840732758300881748731223472515901354102294646472722361630774719114093780732861304370217806747682375082587605163906956582759457612715353242615948321802928496465147652545668380687632278548389217060512805347930098835959830169055862423822075256392109086073256745714631873336097928163526479344549358929350120251122388791197787123282126069403697242371823064363195099323618969641445523307241361619376115778030276037854290320876239015344591652203133011088645578282516659027432089030577204488775039938720177300255550854059697285595384824140221616505006562044647976790530942129304517216107857210850839978077020174571989296746424356994346473420771076926312179737640519441185826714751243944569872098100716319638112077053974252724500266149093112447234028988354800266584493555680824765536876281588679771474844900186530608286641390461733601464433419386367284409809841210923349362872080025027640989428504085071982630185256232064611546687558547337058527518161077572507663560484681477922062765236805414363801593691131879582934407619117401761274369054401814352359869610985886301159829686697808043285210449082050397991566261552729680505528774771330888190506174377871464185269755443251915019527329039232984863162009852399983673088388248646386120622554805107351971448078080380975743339456768716165810590230539223155399303522830635922236444822890259002082204954615844931056418728823683951760937018379017544900991354817377339302676380346801979227027537732625168066138897511645306267790887940038342940740052154611859856811545182362974652189991334009333235076439704460428629857216844033087837394229934961757005489959231174645184689427193393979662095997010923739134949428774173448014832724347711269221710711273081345001600078448027874250609578788916451139724820568651957873684892033156565684797307620240560806242983965694297762413662226514689559238068825114192866197849236525849157381564588776861987863058830912817595537932409987722741857664409350017449513323436205851842421829749008508798112314884405817674745449133723576874011662132263127480682158807441539185563315092295991464655610960790069767851662082631943234642648979009085727399461020825818634320656967511568259571279043503491165978697639844075798492073440989253163699251737946490449309093481174263700198807472852569996982931148353457304742551160137844948016651916660624059164172054868207234030882259085922543443225168282937060891702084440044256732101920182699927172626191953435349087673119461849069351359681271109374028888734197852718210059890977013604922941404288112674723937520713003748929005652931990011511899875688598241345625497313636673301852075780022327178373256990072180945316368051144873635884627354766525564388369340426663672538239592729770046291354622973615890133659528048374027853104118137578530909305796420042915604507026944671411452742729948179723983502905058029293486605342766649455123544341152301629683642074375141646496132016117138883400074376733605709768994483425361444950253184094620860012103693389688633199316374078717088920247248695898291788422209814100411210071119378462682242802731249875183964014028313285793945882722852870728940638649045478753642524679597099012214798693466490571234311110271635488850324682371457987398998809559589179764922158322718012521736786173392938987547261807067580248010502819444687747957548693784779856405343989725175735198258324202091066706980463373595291091488600778661183967782372759517354981386601370690063647413699434825356216977521593946509576768950674915585820422159931889646917674335600395397478785403256299845511174847781931540783465952724341337935942006884941501427815915738291933912147117282076681822029178880459122950095435206514515294965215169421876106824392458978720860195948818855467953359353596244190151543044862857552765708557013469084120946361411175838168347644856479588809932362641366607703169522743296019361753387409205798866582533361439584407863429075360094947331434547687472962134258509934413414089301401626235499638269274075416409646992542217633214111981555930202446227066007948222346864919266361943722434697469623156890656355746827408357411325611149954730857525834267694054235683932302103609388333795739200413723033114689349752235907119663402104665769874154012550956386595035026032041411219606043228484032192099471005681200193203999773484369599674912764128281705537788007438556188981863982514970318753798087465946262293994565765771046147599452521459955429219189691078587168744699353552129916346492623587368475515998769267350182796682660223049574743401321740619792152501871897700473293512136462938102561386201384501552868673172370051940205254499629464282087839420844449975970348208683044211659551683442614847261124617065322034725864109273690507699698420563786355547603526826852467467853623821826137438548835279953826886429592539727295178108586627328036007232383483614436314027712831887374416271704066800940221612313307923412877493032860445494094623275538805501080584676472746641397792219241113263608610507033504624229009115457397437823219106133813327900059868944123028028985634569375194519572680209061847895521805384230203643532014984383753235005906796814195857605522663107551254136193681453859944329972278141451156464306021699955736588079932590435860414320399207693728875517297357029928954335750465438972934879286045312282180285006024007621727421102755772379349391923445262020654791221684989346549817285230927303744709060865439241691713593879117184002169531417858268536702290554352452853713520281381863416886020116877629751131818679094667752436613047262570039645900686500344978877839027730813704499693269207875506731603131403283181993369210875607727284901284807287506324455268275174951969581695914668737661865835343085756656479516773541657836286750908271919710367285438025365393560141014422148116140136773007942566619161410322634304674608409697070215550494446691784400564091214554472031059911117694042767419098210704741499539042617452436832476062514272265481635039961292095987092097327340633583603794464251478182789433479371694030650900386829854259334079752238070706926908936863695212062395393778240300022366875406835559201843736271363650888371443219311848988115868087033788461813136397698005850317745387786928648157027480212076824270118063184552952643363052314691497167705795569379004701853240545999994526125628235365421538870400623170164496170911468955110894770889799596731582581029798659103413219807489813206108111126876320858747454619092275360317911605742655001473985711825422587981745937622233143381259237094071101103560221895294065325460339163730658414385556826922674530078758058141390222244412499063512991123387594735494701466033259237456469849989087997103414935678873581268146497430180586636010216727410174431497491775026458183627197990631098112505400263029019577115255647599144850175553997287623842411550951664773709207083825029783376077924654629157735284644373638193258662614720755515731591388331109333815127217432333512220283788814842991807254427795774861149009948948613659436009772620973585418658122226141216464279760662137153261325987718867727759942557524276105508194723245029360258459825911256788641777847094028156982930774321434891779930865477956138551328046265026472048011306604045887820587541364299379208872968467075376749233274211575528603760808153415031738805680722042020599768815779147807763681026183833236562892972158154939294230903897860576841355549759845706128017884695799221316627512663761985708249723221796691142111025817165269914992977678118309987921707141643824539170394832709917255082138574045574952765646229578977370042615267109891176350554135065142521500322366866801626163514130628381309329274709724189909281185931053223503182301687158816919379021154947762729992008965338438330051225104805057162297739245601972721730822468340446219528139324787197952358209290910870768064346891801496173511326399383793446668305560354551092777520791590300573230557422427670829006200732196115264039520468263136989626164726510663908507044049233184157686089555849486058226446579438490855891647445324056182950315985679881579551122594712772591104350680940564055288426794505484887093498167156084284833562194013355315052262670246046964685248317816092190312982477004709603569575593920752791970163321089625816652507087182876134323557863631793301453463620898597465471435906302326081852213102037883732764848735428529055831925257715551474932024757748102950018166410962606727599491352186228257056482310896954394647743190429910663704143360159389044878862871909249056538238994622720123931375738500937541723565764769333132598583050370410382412989091357878844821745143079668157872107967758209356952086961972943496561336851978399564893846124575634543798003410590689986935882351630174955768819612413758246087613454191314631142917161033391114292022448440407736366639489650481580962341476942744680272590154989172434798668650541503528096114930302666725174348463550440823595953926127341013761321055015392664023469985892879132146433147773237159960861812683152886861770335623949191367549556309331629853922531693669488713446184719191498605733610531839982936995716901168618554020323882535683745337288454620999667493433964229955858077627985078901726613345090504647266571366548200593878640309187348775499243477772131734641347662326143973330639520816952741163046019851702910093758760108091367577356589413108853949456985671614944693201746137288750858941961909325420665342133659903259930858876794582140403814156405480411945892446091548305202781009047831335249253537743121064698844854043556141915255726573996459805583734496624908854350261939041198399382846205830578447790246346600042274582461719118738758195636307138994877989194789369924896515700083395039316118879376542647213803978175570516656730023138236082927455973724730873704147982618503311524576348151246389946950839977333777452324026337999319439970762787349329264508841098752711480491931199509875889246125845800946714158637174179186685697169597218380431205902123940583744482501884349462671995329071362905469526672843064810212115769950564962708687077011594367664231108399037947305874408478785669454730610754444492925168424721429218713328574076771621322395795068580179414765177645450635521575977599107473095933269194320455985691937792994232104599591409994753507161276442527312351586461242620513711692731226234242625832400901156720723277217725286602175631672006847613224976593989421404386320210586292163430886001993592461476712110947131476607808474563634213145110962794290064775495176812698776064222042077581813829479198344225836542360343033697747575544570920390799306852298286097363689880994004693402047548613473497843086778313223087785499729556835380396567857218621295003288593871105031742733353466496331418411365689833477027709364728551301836761052458251195829846735802175054558979346543279557637900956220617748900818869196194922226169609195746057745043506871150156681894691514744954464936626509846195759880728488706730360455787626905463594920510968504735057689168847010890409230421716857525522576160912006729869754187137043311553471228331231953913428802688867649206932922755158782172469503920194678489764836098521782605128446239241447405595159000140983170556715739654734073512479348323925569891835302050997217000501379376436990599771360765485033092120209606661051819626697360651213806151746576210341872775318350830867686048196700697569372079910692106397193536928370453280597155584915499886390309835175709516330042072458786342004269176577705515227963903100580563376707553577944649158331282531784330229398810224253468557538460503580326605579783019533791413118848315495020134123189764852270485231690248017604165818242785969652074350085020358834515550793635238752138073083948338126967468671972617967309994452107863860159626927575606368238280738982558742536925413615032319137841525516763243417728769069530831019565902885250117877998419207362380366889074198264503269000679173502098090835965486255786529792278285379826742174235900564445543156821101446864410046555999366195436563528578925713948034068788287337753893323454743670981495811234722429266186192595840113706984786862375756464805971265612511324441910786722423114605542406780621375515629594200144698340110909705633670734364089663595195666939452000582516385836659376491973209285751704678020438123457868870979820053880379048495705797079134968327866023455830508795003829734866755974600143137124323115518200792771108589880714725903536325246551935974891375694230707679821207785889033868559995962170429594214536508998943258019371914312404536339056643665928946558159595180011076506468422721434383247502906483262171338607280935543119757765313881743404903286110215414664244698099992676299883782014500648940924888598667176326230227603076307982192996199182425715471214397876720966519727800660453486781901608321574041606410589474614581281295965533198838410822018402720486185931462656394819459765999425446495629232857066819249184015818282717910962851748594820099675133809132619559225434708942795696751783144291085475509275843687782018394847147183603809958670773578590373504718282702955111917512674743590043258878245450426185460090024844589383609583079004898142572133707347141520859381678420588993433055985711872225062401473728883121273495780334349034493141426286020468779493455353527581540030963227105411403998757968742661925436563060922706465056374517853381925520747124612506050290069381259921818494832951984071240046490589247921520414649851450981084710347461986786463846801769760849939332444031165573883967205449904158195403191646278749438738884468682193374992836530428996519260024774038466828257659033069997873994180900319292078841708887905768810017879301799556348930620360873563444527407713858521384224928701527348332473564627175019788557704316604675324699008212486473285793409065683747233277910702413220103349025999194566947103435043402758895491204445290653960023972984703195801872778883886619954083744447750536723814132134774240875947752875924045476074410850429290984860599647928161413225770993982031973535534952968285617957764371355439836663584537890371510455965449595333862092692220842404751118830533348035708803374209315553098388876953207672242474731792664889637593413993329319387126569131169069652069383009050218184259811681558544966190682963247875955621662809155170637214829440665387923003010521695140500077542034528005583946864350871161281056692662814460656922218542274534010953002967369735360165791837701133883567226855791136723518506950000338132236159019463867580980656216038672593281579483421150579720816697786582352048057533146309788230752209065673439650790362895795972685439759453509501587939329666736468391084690876664217917675157328444267569873516844648028607310974380516523083026889390477466715330918700838249104613871056268831961569718758279713104367648930336471623794770976360937137449190453740594579331473435858355488034116627867830363141450823710289469372506412161958293852700504127916542165088188361111023799510750391594165667879498863201494314306063623531297263117760467080764951536926582842727325356561350677358781684411864697360680405620682759038373648370261553052527687993519109964106410920595544280632935675866708825784230500419990557649644119830421482134095121228335180901858418673954092959232652710951921174064961396663812653811178099975850089003020252070883409905094270484669996238093301315924844613902159440769824043879234865860618502143143841624953864769846999956398556337353843654754744378648977027461125344033267934673946805405078674421232739494905288876540198633085821493312465540412151677202669341316150518562729056947501384134869783056366744284468496470023564719655536095418463506434585575885137740117860574454818800196409536700837520242159836457711123774053636664630103917309710746431743658364390604986488045426368539641575861709593372914602954000716575553315308878010890624675381292612500003024014582095296988253713305721087625757039460937019399061892502465458069481904776548869953847244668896444735418713017072369316671633563309436037215288637238370185856795249594633129607618072460221590968403860366741632760373921131108936653886401212580403545738578528126588420669797688628392016512243678548337369613483580542930552018696535028079884771589616530979297221915368246824509682269830667021958512289056772094483604988539274397278040815913929135237160660905255305168419569822419684285759649107060257808552844577188694768894459157723923059940782314411760519602139011280287993856413414103647552535361124075822651954015700657862732297080220394523870871223706808154727375323769326430306237869783333196664026497673377529002247359510211121391989400364917272314126107255001104337265550027971043403758390091795732387969904254621508809577366552342928507459685365834166504782281746703530064867750813140286486447547055910741707223723525804112275929503228691717934051590499586122537184557408989097846597913925024214627411780277168526772128177364494202581276811507399412905159246507791530662702482134400981933361952442235129646127393561306417003111016292689550519326840545938052089191404877919541874823361137536130052813876723429046381854635594089738575470887108921988546635407076292714695782957114651785799074006905624776872624203603777816182027222354058726752248005410270415073470939609018238515821246279090169869723707997932028613452568598087066161604766198685936171372893361509014994297317947054701319972046602728103704324255587268063525619406500457488716004174405459809040939048870091483300828832325290177942873381771366213983573158271567221702208384685281132924733358064454234293378031552884889004652873964442804662093372116876205246827645016072599889116011739140730309680237357246200289712467662148034015980706633259435559573000256266237875493300897948548210470232120248383064447152708802845953247279444567611925986963970460037204829431470654242229867964250815457799408254823028027666565852483051404997421996802988326133712742822063512627039039331234162494542947294056297004656249679734551463569273593051214786999156998995871214385456823321956572424831486544887870493297871436188081944523151559327083227615356647312350418359474149599062178940512605423676824787465139891029812380995494234822316440926503293000958955485449901088042701550950614781559645903062667333208077964487699579592608918718352989465532412733732198412492262085128308347719020372731853595784283279199232639265143582989598957925850015144468302938553619309813212963072821904275620851291940202086122446991408304832893097060108810796731593952187174183640914956037234059962644682354141372464436857178681256295624214932810139750708865662661458169034919091415113184836709039180406788560195566943756280096467461849773702728479866058814912140519528621434454434070682130706777597053351518515668518209190598466558523609300499512346555739848856784944836796954897388045138113601837126062750599489714499099097666385535259046028233382891380256171172101524653921824332825314908890159513955849004846714663622413171814948035033307525674672540380066014575944590828291588249700184626809573299514779960485142213385414875549379117739486761527105157007104378002066356075069186865270550825880508721552017105883571061437883328541518969533079944209570505148646190855364811865502532044651718708530567244881734229825905384655411474767939743263543148539214043988740102836605668070141390005140078975045893865348783020621326887708454822135204719283844841971838999845911177892079318153954426186772759195875944511813868991284191073647966876256592923312375435232684410319556262457888134241355751408589811724766000290493618611346316766199455210739745582906645775413495558736840279123114163345663556669050671476135598998914379086313907530809218199063634706070129089022560139777048424634821623973447229718350298435350436770917270517733595065389171345830168494930590969592055572102535617189954918399713303198684251845020174103345895376858214291711786498753768340792593606864364071601438074914164580415267021384193940851916101995726661798827376371917841419249831042144245220455693409651605192670181635480688809583755114175633045885915819861747822429079039760594814532688056725784561071254453677901064025761133888938315078032973468646553791031698520938652659881704933978110340869801876564023822096275600971930749268098047948031805836944573837334788274393578826527135599597688776248404721198160906402769154860068758420568839085579391475829202125134353577295282402625815831065839632932214118884373430387501710162485125313024194292034782423441291609307897020459997679079017174598686450212626736472330231019196705144952991254338230141767241166036262103719155357138221644355490025466187884026149649936970968134331712368780224539704270230839280072190935246435981351431785459928366073209073335959996626484886099056440108763451325072907481892486279983028201196737830624262804904029609086236459091860424514734788500295395155530291408863371726224706851244370433459855101342702205439056599099147904733756358997474560056925060008900724258697972030157200536659135193575440984204978956316091626060372800461685080811459885113510684898998175933011917130929310099455585916699615782941836795922127414518987024806086144219175334554559098711120153075179431233458100165505491570351920323890741432924411849014229694625113651525633986020126789051596038650558283096901992862969947749057451455362726853583674781138078657860934075444434948034932764922294397195529366002830349178023637077390423512956481307223773103649419720998841882166136855735069864704569427443438520045421787773769643676152236997426267924153008471944785567255977979356915012419026707715744207746193513258995474979634327600459390260227108483815749506653133661148186274282318213810770041814907423385652916529340381825449092832344105453456896381939578207704170433748197145552661213453560479702493222691618828318172680299704159661605958647491365442143995083033353898772437703801710145934449153515940170801078860799391827981649799373822321516648369675410971848720745035047775201479597139445441022554213190417600903250892151762872544520095949196249632009049925176577827084801294759513810293845392209236280911329476605729408369477231546146783938398750228735145698966897658376557185966665044832823813642626109258349391992525604666417294699028306558772003122048079764630415238997952361256546095948131329130927839124507816897957581386936544865986010441707177899689495626900197367493138235614143737285258135630720309678869895325956423323767074538227133777921673017452351950605668053831590187470111998957739735676512199101586138118817894168164080408067507272892492641536003272359192267557648379300725601169711134880980293614604019628885603451853306849314694345957888929394210767358589621299826150286852116229593806085224312120056383074934300150767673669634590804732921659236821086087780059166865382126825120380456807586650860685425417511804871911392268729548878895212976978538289317530246609403881780128408593880843667381834645319563825199086060754128256879791543985333868864581721288331199434008168046538839367584720062375516471453467076644288576343395142930788639580911262528357671194591402831543017721937577160989928064817371109605929704385835296823625841737932335952916073747123239931652517867382664658687335588445871960937879181168552858448168938167915467964209882743005985165161592798844923633848409302852179324641607056675303466641515652448683382637185797636136410154531928108075333795390720313495206343068410637403554478871841972471371387090928785230106309822178061202796528445786838948790413574624959781343225934704155907988726567342969047461188088647268450184411910588405940566012886267064144338799265127809121366112866143725997740426627974273635767236496911952726262389797297628325378021792717307902195987519389843429533922688363264950603575769530057148368553199936851552278772408692009486676342184748124922074192173559044100695464397832596115976371402967375149059833526996301797252378822824511913449501336754230150922636484058929853573466687161534204117419006994352743525095554011321215458683910001490857039630437626217687180066776031967180175324949686475336406006083023848016559801179628581417064943036162358393515130281070308784969867430309206533683620377295820711804563047457693392368463695773742462221592809307232073466675630800389186565316503374285633380752635355229805327889913684802066630791955856868887125706683709787030958411481227840147005444062273914744007113947131659468733423030384140374775936098173065142962656772954905975777818665319877752621171861372100434786658888098933407980582534577387161631437726723910730147108747609392813517913378038199755269480786177521200223353524599374865681337471753664626664276468608332225151860732182479958252062144537837899854343617120748574746264995534689087682478526330252498795109084784445904359138975090634346657580283427360146405720557238251453540269720684344954101143401442213246986748509167129822090569096329856773815265277910111382975760677324023655314552063873820126775312952481360711914204847098872934090857419179168558733035010917955131464816656273311747792516849674047100017893183592003573400151733462445997336387224104183208459286742414303295531485338191822091374175094401728478726621434101477994736330772199827720741402537085845018677875983663744689494579651767600495570060225303835030899520311257522386982147357592777920527967556720728143423434321293544211165595355039840448530395353085584599095492765570337591379329013780742736082612504464404307918648656043077485534153222598610479282784773740927397565823846015187496476269667836363897468987690918002678070288734100056854530335130929971958459394025078520374454586070865392070431212148963275079921274628626450477576000759375145117755647131212018511638992933007192010438912698971658257587265713073093481362082770924353023822156101038471010492705876121942121721678086081238738662867207204783581477448164904996842574244820243049885711747580374915077606642887250627060300995868665107930976478084795169781200396657549578982293068669152519534418453657328279528094992594385663327403919444427329888174893512445876718918118950643552500267884616936621145724543197751025528140417198013456372696841890081192791959469664280938301800084160305756669812218415899642208639302732081646933224640677841360723248097785078142699146161018842233090455083402984897283028316646360685664626285062921891140027836804404450119412298947473309968141503118976649790933491366255508969476960640531976625962646046246753569289519670935296890000708697201375006371953953523851602038834455647553627213307038235392837178746223705447392326342159772396993201840803446846417053206861377823138170263875854661246094127924171701103065522479671811132006808904774580839144161425258642694124414525521199476811825764957309845733984358404659568651063044211254964816619030286139944751023242550127821653099605444825072611964429394153919045925999589978713059062198407687799795078661466274391159795469672942451883249195641070302239817074346594267085456648972090667270544785105520069035828232930296293712749357958600257848540115414896709515253195513456240120538839812884685216306293871819513002750185038722212228269394094506715603375535985089300851918923112871103762991363122366317622243045049952782618264341668680033573701244898674787896694366015303352853985829481782159396272990976582633257689060178939324303667437636396411159439611498348177656793675616593468129294748587401814662256908890547679742322068143946106629606821314955574417093055785991364621751205460810359869478877632538479880363760670998230319929734427582624364428085056212090524041893787943297604624788256260869776424923309230235125005716541227725825361376213058531935076108889271050692985137155114839713983891570382894060838776651326120289154764618328224258718377850954059007991374947347272097186811155273008426167878062206609199906845408447974022223711112309338914306427412205054301689454695442850540485810266207328070462895672239506713018417628234753515664033196072737991014087322890482537261264850467650819005498590524563816503419399369468032974728837326765292913514224784703580314349871191695099649639843045479034585538362334901468332098459420339293556267958893508212676413862973403089265749612632380325361718152921724203421713943138681581709212098206831059247038409975842447594499554373158287971339350983304764371139555753653321390917090526298578897901438965512158463279387813631500705709515505844844380771921959680224585307957073537712233858876527370283601410546183904204915755776478797054007875271078707728181332945307342335425254797946981579742505001658479128800689932219462143101532834011658495409719241934560406689958489135112335251453037434008280494228948811666321394515848204698675821876160941957536515806470930136511861151354726837362602597899889622553094860457341905857317713102015305988393173394278680804455156530962449955754051852793826282045057051990478957402106240375320243652861594585401377297089985926319602422866584019421255240259339962657950351840805774061579279231843459620894197630409416803569207767974248087687534093622645242032496250593569478064704241799311872270881026651888316387462096642341837698626539454787304140398575220253417637117842176554750443635802413364125829994625838587092429021251095971626442588235329881412971834496504227284598327412285694065611745534462462515753279883265579387831320722174226030292144339268815148136974742451677273996871693339646874305406545490821350702497442885829156138097348712083230762333628618290636463716613800244319248869800511733608636396737601179337671617607225846424367352646867947208125891436671329338820725675315418158372835066338665347648010454252155596500080884800480714876776155372692749603183587492084364249687344813900464193586567774289839341623361854492232914115231031746978189102774728960851008993661900127031634713784807212531367819296978444548293677117596101420076059914059478155750484241644841156733447747262986019771516306549523255404656902579375014943437918323476907952690679282438701879842292546770054285288944299884459660784889123557171113907150661389014117066341443194009479701078697140154103907864867361756473181666604215553983862518672166396784793857216793278551809603927787244488227115379992627447564399659939912698208477139105359626057205354966786501086401870468792258549849771104847135832440920055966819289913228308596687688842012714343640763027081803532579718958969838934581370978222701319026712887012020949298460778008275871019759963546743280839791106924128054678986093614020346424688412934079693222565941202837051448643658364939183718026461784291866342656311171098118617474083591995690311021410404013327009844889277994690693051931308517664134215454345851841162485000350153766594552453024697659887678770373588771963964860101747774170385204329893224601915501914836313557581821475786720805632732085736126329256752164055323551900705022804493178804125518098746326133901411993359531632482597449429982005103167285985074676931274263405343645501118377934581428771457148218538030938118978144764844072715999058670908609064673503717598904258573749844840929698270984568862700670812408151727418382839396021418851611470469669392108944497973951639282179246174500162223524249901130925627346383585203928499442131691014742777144998293737831165186844102188382358390176837939345471294126826971041876807293315663385064712010138580596934458705441296860588586457893564145088597241006569438759463629425346850873489307151308628097361276492240523542973336869385645182056807536886365460406473821768694858853516058486894233724690176040292272294891206243370586323176875671827571920286357484646775489895959900113008961637041956897610222745704256331296679979441911545038237924209125742311867223654495140812629555442699874880847746851472092688868425995656317536377616523872477684486012209865861170019611048499908466181250853740678683204743046076980652598004811930553842383924612404509174208665729285629606364338122093649502804407069104134461500613660539593867702925129846238518231986336763693588747485829360781341113114673302763104434851043236403985880016270647845140503633834660379631766719396502187701581947765283761436856952594398110416360947238388180054342767216064477644537169199041469199226926931805817556533513681414935449977363073043558069135693547651872868272991636530713108532077763468079255471585742715647165523593597968776882840648783110176267535230844947277808242902601933828233698744770714364880931498143271967962352812504153432173368168928671149458836564739368515139438717021800674379438690293531152043662899038484055784544371971036515040175492442760238716347379122773615323764710129036676004707993337640859253920714357475887006135338372617896572037555823201516174752469220097140596370047841766995800447441929637738329706291788774414762568184072159023550383965185530439828777994544874847457551071613890340897109726755455355334933213118321821588534178321775630050853591754801108920940919414222849593195349896305722053951313896726313082242182604817670579085279789989200530713748970572401379492328435177707566176329771589026892565177407683792134150302173476934806731296272483857161601881459034866530482097774031509991733354609585908252537079359928436500035700335525525613754334398259020099361922311000015442867439580252814739143799399894653023528228393141877369675248025720653452679463888627408874107362351261763700195357900199726192526534978573854835837039823731624887871046647699018854035677313792079773999312732910391778100510436094347647183473266089040763021807732265108201288407255985701589400756685183074406435893380060658581831207384152527684927667307646440404519977269835866373419625506372856631882650870675185620924325827814504057426147725341051597835876219249932495277933295777785670936444372596198035009098554095757194916932430733564399170936766121031154065838366464820657241314116101076662409651807211268795406716105487219366350423205648665889646546380673600698168201080646853633103213712290596574319307602454682013760300424029691761728206550503629687889474220241183035320829590083522194126258781918665038703166549447163839924663059716136035488692198359720307193948775556245196839209821183742270174893043884410374642385520434011623544145182950100877671986825880000744728370048332290385799688893353498594091776577920034022839889866153899686657690792880610444873525853848582888579206679678078334632903955642724269475777938034700037237321865292673115650211497459197535836041901062045124654362337796244868580831902942375042585574608159719261553753422301576959789902828198298418056342440530004887003465664650994806342674504317260316735869731900637146565959219751045631888939517997946253864541609511107339064397885177558786326738735173071820416245865003780357791362723649641199155236809818361866729800022065319329318768182268026413531155947044363167777640689068899810953774554530043470217743909973127053475377534786907862534274812301942731180197831237323879040484509140630710787553325435318757829294978417873667968256954270913617986486040829237211025560941279834615353761970511102791088293209327113375171869487765613022319188265223030479012320545188846489954712597565367958928230467373613248858591614248133011415430133597065393739751011186269346501185239546324142052692166911412202892279433208017003986679361385387973663710046745223109001728709164791631416237083416431085490120916483620641745961675515516119339451110345357851508154720256212671203741762079999469587962219385035773070741773141479324123864735603094282105684459434008233065754323576042730708358110882916453210124545041912178479828361626030898281637811090461997065750646755430711717441079593523505715423131296082315656490856118183083407033503150517930066807186505155458609585286624830689201765167492248255918531774863501306812645169478283233515921606743199565396075454414656940197931905395804750263891029901406347658014644051699811744799152131166258443883477156747480144627707173145283581196015059346338780406019988390096395819393105782227292441018718504211613194787338302918267284428799503495189956223365512896642601174025772021946665846532320292478954853007045525157701563611460278690625248538909216180922087030377509820769533146948752943036079163080406270075526889229747677821259209939973452259751225454194983005095612030799975768343855081434555736750339547589601172419179624323938308494551205547842096643746389978506901005052730725207633740640275531423778196709025697102583609241115962050782364525845921773052061124004005223306808430371675957535244801805279422816002040714500623810780011778201855140701904286216908148919242605058274534521288301723637520376784306990956633255883389787163188017318472626462647447048217625054780509246603784340044263465528617555131057058965191853166876328605769456593594665194935947695719747750468419823127364557921544587633800008887956498567537571144913571337125555116212809206682852348963930320798365742391863342174875781919527033129472646718673374227093764012277022317199300237489405737316096806724611900863051231579377202270845368193633944866744991741021722233954160233703759470149124420015378381339167976372408939418907806857230004500021685142370320048328813365505704533968986891486041349741741168406230426657531269655241127195907900259574634452464460524392758264119776124869130861946158761929037299784056537669266418877186610908846233794792195729103667144179747952375166686070101481732347861347746559878322218527821068088600277560767927380855315082030839746697482136908407709597990681783329293114462370774842763066226714988040411408138342545086344366162937339052780575796343041702325446740939800639047589974690267984520519659116626740324537887411675243128216207428022118543237857463775412703978323629029379359869082217734307735770047040687863860537585595269299138311045237210198528769178863574472544526086148367958320515243734005446138695713776297990987508141343703244947729951629872251392256120199858479640463546397268210771780813290758941169049375548549930329043414725159998497574063651247310901745680938526868051326904178944620459464981305200072019071582418559783663544280131268891073712262749526730634904887231826534766152569118943688483210176222363805070155057461909534326934746654006595414176175047692041227315444894476420860514047476001378133637134801757912237244024605032695361204390902682645533486518840787447572806718674284921273707520908455709838831137238428574235995447576253060515368259605870907311285568061296570981138269373834277562382613933526334542046876474392734629526616549661875252863816270419032735952265307926982827539921099998800692214073120678803799077945425436617830292978237689132970447602883534594795943412163627841521345216228444078137178897984382784942082190786561181235692365232000229341140314888952034942494471541003911587086162234515546394562234170926669810337601075022195037289163941897028317027217176170718924581250203724283636243388977047212182575688682798961176803361633163741906720608381860138455471166312929463796852730128360270877354346332210793097220132503775360373918861648167562279687618478074752827762143417176419706051987107400401119664354705364700349252087353113426859471934347834085642943101143518387823273683682337681444572511850816132779717102445334690341188521874029864036632920574022501542933360471383364075094811420748066376573621126535086246146548102915951680106039305637045967527910083729879021546574150226836319852259815627943197427850938215434324850311524031352954993413543971139629327057502574779487832439071548404172088240430174322999268318459549252072113093550484622071568563617380696444833075207972920505913747736369074437020083445811361666967266329924085946207494092313952509635580300720448528756284801072153641683915681729247164222984861898530571414451092900062933529874692849270220747765169729253175386489198422903027901888185475794099243915625376863711448920585776528691954847246132270115488715733786371503255575220376574166697843220834634647224101123276483336411444859004060694964817939812524688506731897138723015038113727876592916776614053733274658776718466321703039017940647629746822983104510156653251876211753046765754494390314002733741667740960079349957993485494651159213579651774974064485774163370783014473883605572731754499969913943657867464374342037045601533653837240831314754378891525124713744219169246119860318632105120685563491004482506043249041249339206236699222929132283638110628497272308161756995691542881955364452606624053363068893401496167411783677336674686366310644207577596718829112740711153878461440488129614787349592052104791395175013915655082377732513503601764799402448853856916910594636896332644572402378194821990298925551607151665617375205818878190332200451229888320006447959750691541131262038425305598930683488622965883393387761722342622613999594893555718246961890942965318922769055037309528727501826729220351501760167213500386245190873969508272814109577265632136955236510577101269619463951454771213074899910678844685483798711117032523699735778421572184430225234347587163939517350501711408688462779754713663228073170235224183039038280903759386579749229429525421828128204768670437637615231309780059261270031011909760568921161056326149524277301552348152631047770768905153035009862689611514829427097601551325569876169705348285356896528083413170515086995471400855223117493928199583479804355915614772799632413684880101235687386045636165582417631178576712505329728737374095684499245097331012500848873421707436954003398481999718707796066311433387867236390322841377273989699654424256322149898108824394789620932558188143719658637389937118190560655492187124291151715101745752567733023256252887990040615756933377854973196818013992996041215900173556262835195421503444381237344248391538854376602409186257662113644315511729324912413205247237770163137389305005815277005878184856180634336896609810141060368770683958919309486042776009089300852448199749302725506853992529657897154105037089341097786994616265007437615188062195356139956056875094233234016010217166129410937614877192997993107395854611907682572347997331891460814903424216253404087381911843991286095876453202662915362360550307387992610024776252061677848507421434083032279488918159224722810003391486606347239373818314774280205896586528699236077854602151428231358359983430663009571158466161775147896354257764777147491565368309188789456419071381220155561247609294153931298439840652375641085384651180449140534309430576236720646057845913422877663565305610420004294686830276514186183758628898902606789810539018545636357734168542764401254255040640466155090484910228663659521753691310705748987054753462930466745226936590395074265930167392968955114309263655478516356350163704859529732135382879624650572340361983698596443114075881075347302539410496562979116629388441419872542925067999303951652110574939500999030178830965914392802026071141495106926074561639222208554558416672626284704709496105519840564451100139417712176277138321935095528379533830019779360260201186251602033019153017701462761002829718088998388220843115109931000224466193013535824984534091144273329863450218869067658251988425478011055235650281175938583619101257460015748795639401105964061905262481091621562038034067104552669675950867629673161240697770050772943162922656917039019169107762008688541805336396895737520103675230137868693499248818920336632582721427550917030933136827187424090024942474149313641718793350085957561619102723598938092766336946649640802235853685157660062168436760967140722496643397755472322652205351481684464205287568427427677236812225302593799119468762831800127350941153677677743581300806129575647677370461620854187326078074097796587532606472985705852712126736425818393313606788306808599426258563363622797706833433465513366449418434483341165520666245452353651124822424285709186950797503453032873766395085391318300158727546414998041313653478985600954274562424080196717430234190904609160253674183701481708705535490055966438419984494013136753823200039845965394011255905601988535229947960656280756573182536803940372803787693322386173903861989626473674219355123613191324848620596019277418791333071441579084445303784484939614857564947825724410328292536105609982168181181354496968372886653733725177449297524427613573800643494145385756499191856115200441812440725130250853139243393555397198356349868146298486398443018604778652567632884757746581315571509130732386585716864081320917693853895243005594427856623217246128173749724765176083684250143489251906761081715333714546866827663212389799364309191349790563428848465223445171681129588188845847774112031147429471002715897521349928896905925228773793066701564622130970952175663523155147536547746733051846969991043443386294332169960515666441374144830635414477869969890715564174283455962681994642269485995209874309312838189564427458310637319748828753828228930226005411608217572749697048397230913381899986582689343996743866446439194323130973551159196435011243172477421930728639749873566015741906799260164667938956678634793508615269179685777656545471939054845702463410347751618529514343493608017474539547730939035595246230956155674532923221338103550080787191475494657622378634685475101436386480059979850103069401657863709850047306236953849219662114232778969029169097409574137903222587391492225958914238453518129204563166645820800831366956476295951956676862135079795372904832188726347771909932479442149402500985344947821178004896019770940307012852252015891039896528933967264208908903980224484441251259498099895411911275414712954129620040808178705603188385328911188833272799235619088411638106751670082280157562447227223252665390831187915146370493802950475004742929548083316322221482872128280643090199316702851825628471361680515904859225966729078688246930256295204305553739485722777381162891587314889223764496626442431526530958609986300647799148383043929133874490593514192727309792803084066734086181924104599424350529243676586009455560322117653069860836249640070440162648408364632406811408647544211473490689782194353979422091316215653561325361666862645345088164576869918095612916561725841063566259810722773271818456241170001838794490784488363670994317744165115461378989176517565122558113358425453935277967425564071420791340663157210831641851904913794257113398670291021572905111900230516419507640389764698866728582986151230794861123076224856515618352787034313392226388656390986805194231988632812396579733752832497015599372034180469030871457040999857835081925821576529811860397516358576082844337168858434762541468598087055381715553687175834705228144347612734425206775414080963077373095905079964621288062269740484914922529388875942600351177898445041782938524520042392497473219893412462184843620553080945432781563830785090096985098537300065639955110594361451427658718384399277017048309817160087310841752041557564840348406596095092132473521585702964079307177997501249220427305249837536249928251910139358075949260648677634076540474367992121968361832324984103809889219258618478823661437029846950536631126052340126321171895762348924553598682943861641394752800243101609991827230510231437704589736763611684790249222247307750934001214198492523041296660504380777270577518643945401420334105081172163587416401160784353649416799643773876368156553077404317395919412976146259657450371253134903968220095092747049885314378099109606342780853476900294355589240542269332925072297434256937174365557696397569455943892553505621587019864795084955834327736861005707721114262208196004777901874920104135113967606860373300601525910817046211997015786396800979668488409421659802989330950560739050598219416278808084744521994659583885022976059413175321971166649230204983866587651696245756965772777947490425240068400761409182205010598133913883921378031457190595628897673126177456330556241689625553001357771882393690971033538355491879634721142940189536661110194249839149860093596855478040701957176844511609589402072613251979371974357585826759279144443901555266479103175584671442787541515508231898408684255079647687568216447745540663192514602943238716830395849890442163074663647433186806583218868595207833660237229917279251991957481662437555328928240741116636284692292167617254316088282840177238383496227026088154067609304758884403317010779639612599620482066707259227861233523517334504880404082111541223933322738750598616709625882957474998764593008773732447546980367503620848923679161042222224509028913144278580364584760967441099476038191671149627777711647609359514416973507649540546732125526025581536613692615040710333779648117956388953405756072929465740311141125887151654376528906335309511576143095694759619905826222272965332185670577107913893628349871472225801397215896407360289719738661127073834291969826992669673081662224312997467859841640747165162533800894690653636532117790332882962553714627233112167558614243147805949499055427455374437672667811827834068386540861516860125306368569310782888887158112462570041045832803926338095584558234619865915313028067751778617153435132936266098835929320445394447197590408820997126640523006383159492572082747314801242942769728202660957754527042082536439293974919493679866415564818523086187597787087005191556332163773892747629099574530411615587789430304759053628130334801373089518214027799891173499104054432233807754167364737797810568697584035776106475094516829675235230065989429769997794220623956621027810563845136425777950031267531729398274364642818600139929809596673689178821036431074946521945362486916142158983070623856497355272730034047444239455870946502074420130285775796691231257470583859361965402950092284499768341778034047682037180967832085581318578580692379341239277927525834370375789797748867760004117505511018683841681226185009466420336560774002363718039093054282458127714650976615824046608093266090761296396617938656811975522780710181648173043055705996802707418491559699322873152214639941154558415065963994325671112171312668236246177016831521186074727494319762926309041932084837630550929159916517542754234857790896926218544323890249088688348767538994061711902456124498551941296862996817680946489751533401145996849979900947747064637744482202372306066039931113126753592624664805203832699878156823832032755637779479863611321223981658672073945402276946599359208197614315449126777921313468777211027744455135384409487884764668891820253441150074263499766159290905895354914970124639079021050943193112410816784698329263058808588956283490493398903047950000073492436459710270028141343774183969956994177273425664457120195341972108199019570832290913805493554617302876965553199101540796352827987857780250586108092263126221552816498261267963095280079311675412324076812046025834518450211885271208177132068567593915375934414971409677148644447643893429169277471590520594871957531767379197419510006276907203109602886737369312334852291767503809174837342529268703927789365352732944902470012612413151261778534214501892238576691859637975578946347525315124265933244641179937946324909247077105655365092451815890577871475143015524564998513971788245281407902638968356414543186388546661753177632687851783735731103003054812645076277342789367693756089443242971581552628300480002555879026689195451142396116594915879351112311625552472397422340969439489254114230314091956784511422705970215033518339687014660158158863618005199879412117932691722746391131378283697657387966150661100763175232441960714566687701241997518965236313988671819945985407507011683004938304306234455571856920533297146665313338290926952264223689232347929565846065471123661891647151336251805185031453894260738611694756950585811343599681987911696745160115170247867158453772610442389308133716594263415821677504539942221268952777599544685927678273955296207933524916522119487515008293135982548681249119769638450230906713120602458736409998776748034193895664566518516700244922255711449424972522368170471366789083191558711587891600224030215733631198130062770113543429824035061407515850338020403905313104577045306217095836965289675609937201676284443017309187717198296063127240000137385777678070916955900277108010615760288750309736237148919487454670328386802277683646894103305961810096500182634976940629291611790730170019352878987545994054952355824816431721368440313179990456153071401207280630858800241683254089340110079751833683327315333536771124551335657183776367534159484160433998140101563858950581615101707354667884659031532656378512131819532244930966614158076729507471779354583115595871800283465215403825717631180289013131328065592061111295815020202547626801647383840275856359327589082403339645626537590339434212869671367739110085921538478067481928301216927805733374105976807883466791593068107300535281038964714714586961936323622249226229578056676091640487221364202610885441829020532457640807362067972649646106843221268340263686726503728770580431662724597941846338527770028649231409045606198003456222188890341244034307793475360611603015162911827719441285588504080309835613172618877253434103861156666707715154354632778250865655010993317653510282686282324946806228839729652087447271649769830074677215686411385115053285343111622308257645968091359754509250374113609745973909095998212141513469758135086628050932591971811383440665330795780580440795210167863596341456556350265959181891350819901718207653803641195867993642938307290856735992389072696212452041967733122852297524544584302094534619349942395788613103619334366295903951077342180496958428052252968517213767051260922279221509900875169627256663627180110848506000466768933056821017585107896504272825689843525348405260569854434620473478986883840472586495292010223322729527359535393696125469873231886638499275407220474426347558361780457438681155173666451237432560800122684864300290231682254924873618772659806369952929179103577633239300728338058079304905875940279663042869546340024205998807675417022528727258924106709936108637822396550062210822290043608940605142185138296879084899315728601033079248200437267730605112461061075029800361126626952008571922425160547779121276365524165949443365023818799759383986399207265260076998620643026988111736059878897405116633778893826363946633202755409853399367508962990963210180976633987616982290847353794286438744505980564399038285612837195546069719324702721483698257271155028085601979244715315902054170961822233003691695273283416401703779941981298906639344451024926851330036610663516981490981002502250928857903488052428699217952681224162100828271063424053145820122426790017354532077429874544339178635051803055835815730464439410085275881240399682753793968732829681099592040888237988858027934188286693436518718452754362218529877724068853068479657154165472280775943600625951569790867032772845895134314792565063577176078704939577459097055171881559963839747848282617861091093032024107945988716654227191216405390957702108762185307481199871119946808879105170867958245809959331974821816987499374179518751228307191570513929299551251279965274264371745520873746832230805693039398400897760886983597754310577180688432187929726827884962089117829838639899460923404827094711502409272154328755598468950097093158801407194670360775334902544768390100498882792547187649726068122449851549069023485922152504969899494751624405556613055934727217607263727995629051166437176128154747750619530725222291928007164378786918416149018103234927580927646454774351808964015975825305715188597839846736203426855470574438324976387004148143298286094360562394481055370017527957891326865293188566310327899823085747444977880864909733976132470719506349307363705123154524312828409343833266105388328335235415494241434452715605686331469868630036625777989047653810032488393747890578833506387586612930839389371649551518469756676947421937102765264791810550451179222188453476759816560875402307642222560721682996071164803936354788127172869176618589554536061364751933998224064226543716490518250037327161698756964668710765661991551387593485612105909062508758375566101499616807790276014360851293696989655175259282104111569133379360808627108565750481913537212485385213999715612878173732129846542403576107528386291461683632088411146379122713577678765715505511120592750927436718651167517563687271513347990425770587510496490970000019389834748857516633879645208848775784988699550566994232643806616000188835257560447431288217959729717947956125221907701610271012151349621916356024208111215662636951330612914943317638003399394542406583858559901960995704309431639856360747000448085638700742724125317563582540903376351964124709414857238168367070426772606967194553692483548197559533263779280851743934467699099903552961082613864344960878197932176753032537085842498519756629782941935284436199142819433698025293802430318895627710019561458358963121904482732933175164118479178919503263422158317228473385116573844523062909000712931804754805728533407318896283799527072375217077945273247371751383643692673602855057623306494459447008356929533314319801996736241733346535909836855435972639176689349814109034113829328077770580828501402937609849893255820416274792034357917589845806911262839543219306345896209373195796128085122175391107889490091015141913294286701094795271093606051050671883693277675470999386945668344121473556950401546019510882671607128526491561642953888779131307971771294545995203148069777850793419466058406220196002068526966159876179457624700300291133540061135191411374585500638996324444728625265967169120739169329571525379790679590783302646003479085177435643575118876215776059648814976167274800468655281520619191491189105387012899119206489970532932371431331218473267333017469863534524378669911509509914467835995778109493534947909639009772687277270748951368919482381171913969156674759962848985367095677735222844312598283250372113372778434358187416260882130238282902371460637416530185209637076453842624623186230913343017861785990632928942885262896508244698876195984679899177647797797013683292160819509071351453472920284904533120501683528309734134997183537844995772564684877511253157569781295524633407262088814408648509799503276575974863141998223878092639262652746483839718275396129508889706788517204734018060057462522342996637246966141795247859030067834846289805410603618081798363256653291410647279401407928270849014816467525506989606368968827853528248318329603415832041474323484983372147707328202357358885036626984024094138811923057820874023888244502734044033467499419654612516478736138324785569945768429507411482494500121764079981580702920334598048567566039424880267786144800584356177682158844587136447046977499120817956671416120078999360259911859731552381980105782739442337588593645185917350029916272652742058270344115285502509465751890359454996415598010324669391411757889017196358023322546089999477656043012569604320129462426651173729679168456613136207526329445060772897698747569015370769103711819251406065196322314892354875277049755933164689089542248445111988185788759129126288377724252611011693857964583152042477121966628077433332356322563981051624719499992775786908754030030913982470481798973493225522796745109591826364352691961548065108795651176455233789509924100552710162793019277349143055911984035536415788260284021031911850598818306460074057748125004647239434774171167316007975959569848886497456404543096655872991716326908158985059982879903886125890008910175374580092678462158226166194506594933964680360279408777959738169592826922947991810703394912140101920128944160700192655896206960833392693198193229381094231065574140041287856123323531752046644725171555400739504331551763701372653523866395851927523990021047962121428377933256383304929427719681606505626870808945870272921820521489207212696390206559193803641345954952947208672108326128388294654505842124253452030587109127683380948719418563709983247033863538712991544793464287630573952957043271788275414182516605174800574555262182945769319092824407919664722375532495018466294405479129704496977130144387997638623134128169324595887028048074820263422921724464590939587566805242373615783178289704116980484061984251341053731658126562245632480190082149031389806160102233496615318000725150057893734750722516811278041799164512812965938216490982073377696051386071939754999839079280687853798821587517341209811693724395163509895161692778956051009203970282563219834169444188719387145939590867442615877964287164855371073948097455250956208806526352417346892831370744299814239984036381158872023506358985068229034063367880113651332348263850214789242955256703568931862529945079343237730664186536674189241165622914808757039702243391143135528927296943421791239508112689951484765922827953608105949235862427329656627640815779684271213950769331179783251657033303591385437132051761264356396313747730657949026432110690645453542790611879335828466912501633055232652118101327573989194352658722952339290337609414072443589077523016906764289129638742474581053492392447534423229232506080753039940839620594069386892626169867840397518996615880362877602388243393495666314969159102923561353539582789065370747748107734071962595669154916259705622929621043058781552546016871063937822220807754412917158779212728732089416779544522384216910850970739901238147545059697952670355573754971977609697225238554687524668860597105565940526868960973827828567293863258279421886716826427775601687826586275202332633479605427163513678168809727232877539657883333393376240203916684138658865234553148525720697769322323421271650645394292319562954757413962161073591966355066134224787864557542936648471028370627259789212092234867305856250171308749022159182918742723577160522975346398564432498725359933022218776130891398665236316215354319070681169139688047705440152445356484293291277236198165447035823467372886097242909290686146441017933122804255670789926952940540903651835391180058218993168583154431553463595366579851961468298234518165459806782713008625053421079303167534105314789813685253162753033897777990744609843453332082609714138507447475121483350671661510117815385873161588478913410906468045367705602779582547824910190465900126285861783500090839283940289816054573159581638499809997041616900750557449935093664869940802698550850685499277209850936242409361966560778479071923263587098603336164538518625934800390066606596268601328278005370314952607051706695942474814633827847512531779451941163130373438963343107353009082675103842586088427383780120330542568053558887232934853446300044994874548876894628164716898398456516529165334003909586594542975148484741592479512797623566099251222776878601556252968789922984814697530162205689800491712784518198847345267198258300732733509961781609550646118351607572133893519043523442751229169500369760162785178684529918073906765671850493060295626396314328272770708717217240269779643117638542052225174849187381608397845903838439093119964693460662800945981479589237889912510522190151653023783070738524227871821752317574307415977636450388846025696021560239650078437087558044890691293941877962615018713052280245371485634101359045664017818269472488041472742478723074613444719572437902743808668507204156613476243321044355614329551776719464557506599133486947851488619660098928516831286880403268445929665068655503633495852095110768080626067157358345799782068264212926702822989413507568623366477065578537713920459430438531475911713451955720783655540071124513034364736312619282263398242759271097140454053572172282024199820657331207134838029954780761592253503078336962237692996996732686399179302483259628538421055101848837648385343535243193262749378301286514885120206316625293644739835949908348861503780933178212571618705116578945000388252570649795163105253979200589124380425833113281236556008605810696223669370191844229918084348663037206146008732134345941992851106743059959398998975667662447606199589482701378053988785736063766487405373363550678546792219713639170396438004629989046021309557770831707349728281920751638873890142385129952489730965848700486930895416603643617390482641826115848902575829630950295865161090637135217003464989891968448827448877499877245260790107875810014946313020232293585583412646640698253273119018262585602063781297781677735851731367173808697518554847873308255131629487470473127914147420341392104350159023731948598569762287228452373732715159000912782470228984924296355343767162225376015635601191736655932793641766278032382178989057476966009863397310826474661675546796638155750220332378460182652308740773957591785261871058850004463364248851080552023753737566716456842946667726484284427767865645750520460006957310190588140881336547063843806889114563161975933929434983051220660630804791609931181837913546945715263295886545926001980136832900843894216622301976731318847643497745701290368321613652684523911329758793112706161849650521379546653652648296401884463070268231478693639112519137537541644459934421095927752820482655658918251973386046447777580943677244478588879544948015828770342500274602746472699351663134022732051856655652333055550629789993417865666333681406781285461825872691770014820446455273715681373848987981799919600632414854663209378252199932015346829670271395665698361507691279459478050549356841363018102028685635111310191937636024426178615596010405552589400029180541741315973319450791082076424316572066909759578846703037026462048166587303783238808064192008594421256780445418829371275594040339547537474311221585312225970364028894715958068466048543207613443933464554458188865701588135471989585557746060143174985875155667041347559430005545834998465552487968228051864103709597540304814570121431812216732250844261754257623315854341665066526960394568516999735402925028128778958461569953152474539805486353570564569948576669642771130553402843460354496048855536734000280584975635593039633920339645443269196513348758024754855554705882004290093674066640549868045434417216503979299705060606954520723475732628726800095350626168369549844373886856977121321894938907724857782015682699820581069950692574142131543289528346555233543570442431393451053394842728254534032655330999181138193907745442498653471697229389802624556660877131705466760525063986515529904180854763280061115470430935245818678076764858171737505121683881171215030629947095566942298269250272506477524045773946080616890954777878135162926899970269465245245062026323778983628923018876174371624734510074784876430431370785715517438292411337577948067970834107720344326135190689917146599060968341222819070097747720520010896335583867590757106122013271854386530732144317698714889721941448840703882244352429174401821448907346084279091144737164081035663857822578000350838674297409857923747867627500963491189930370263182380045486816945724071563244216501519953762917830473855736895537793553076509730482484409375559154585608525613155456516532043731964934708937459757617090978449785078968300940250109335541191974010419024747335531913997465710806104313354139070960584351109824116473154838367305563566877855536488130609081979835964720682708347592865605474247460201104649460267578043470011330894073841750710976258039533252992980365437809513686050133228119166256810447283148202880696880305255275414451683152373215610137674617908351098196103607709491769642906599680474999777564328418971464005286841489526991314118008152163162599075859622677621270328163851389267918419647362946973689544283891044129381263397667720691590160057948088265966287265834140746597855374863963411443681600872548514622913593524136836592261968820815614123691671104053147125199017060289556589015557652374740911221752173052914304779548927806601347224134582911508277284312936362003342793409585037066938387513665605492560751599128988919749704746352427420215913428880449361505444417248072489813080703949705319913932124912719861174924322908873887560515770069032291825430565570201545623973282393271046431813689645526280218206979884475045478479373826077799338521871531212489542316607266616802819252767688663380362424608992083951646295368489713172382507951755338671499085228325449348702668601983244519450908688108483195152641315343683844034506405678986594102300599040674883871773874447340473860907139311748259671339432731531140291617056438658069454616701087736587991479419917516131099336421734507238123845291483095170133303272611890151631721490275889154966334774903946724757784173413156851784892640223687285845549331030388475066144846002195938414390174563815156163439595856964308691837595672536625282238132822360387180980962563360767572235461252115094830891027256530468944663733100750748223715207804862831281696700070570362082851077501888470637809143916277274875289665118357026088657632349412141101578618762946641060253456473200079041901991505478381612885410256050775942752659638311828197105285369672632720991969293455779532288926244023201996223723185657531158930921080054863383596529609508292827918795425980848888720345455378813290420115978686520525156982604902450232128851743348696904387408800162116702084047997800405671347445935527091115707230532312260939675827777425704490813115950338869255440195758854060280403017077410467516462290712722391057490869719775993038076091588369778353335707546711627582031439827934866600402117889387407640564454382078482175329455372465222701262111837784535291820289578338591784276657005748823540942079666653117418627920564253321021320523655448139017201909264816722026613579077157998956096210084280759891217506591191991350271147043883502860378822114377852695910642848382215744376075026308182436683793007451500148920738180004630721690770210438813426020539158818942264441709046948702758422947437482272283902419392447348610793765547113465025293545632147872871589510430882420376196691523778813284563018552242240702331199270950850919038422281833931179135269948300395653992826643650663840795231504248539088124336469221289318278709788344127482421187134672558323170165627736320163290230400043123390163116769787933309744820334243730132121139856724895229592953172202362795029192857039594571024121985912540772695863387389454867929285362416267810806467950158857535438555444034502767007184742193219628792808309983150477672619845288179031388168735741050854226759849850304451095198629966066978965912742846335517141328664371332351576727569183127889840108827077007707917815408781438798333780401040371899060100623970675658117298090629760034810623132004162227959772420657271286059407511572905812126364967299665835529712781221468631981399794065946659733842260085533890271654250429242775462322545645861877832050448036104328036813585441104983080860977094820338717798901123227413325354426738181514487660487256172999956223126413824153047954304890234533494313220240410550210568810044581533096502122631948133427129019904462969997232272078461605043214919958626292758588386556414212614977557206410018505413111212894959239716935546054444269071758407048839496818652183797097863128765631642059736077650181164551269103653533072753968160507241381655630115046708422851712054185418888181975307224847742222998890738761853294663596220133370261874148696018848217673050679008162076749432982104642159910071283287086896347113408005568146412234111947694496122380358254550067080312241671744737666010589460431550240284051540486402257410826201577538435486484728141863233205057281225366316555402998695139531555357481806511801153025989082900149724813593367099162977731026357998124186631205943567661644523039653657116380542848072485986695524856305741047941574053167059883706896604851571943051934939448679722518376450783548963064608514516997722113984893313908926943921556558372648499159972736323231150934822296715575032468881218163270742296073051747652231934744916454171605522771353973034150194202567342462471055731154779925538343022917152598387803588982423170198688638296211353279131762264572223868591714861203411357151545063030447870112388430139433892412191160557055770048062790401644216506025718285454244006957485834985933167159068591586983593792682727335022072810271993884636374024872870247301251881836184698831986814311643774312623649989709053274037751893257079428459673321932341820036780560966630270456245903109285999701015860182019800272254525740957046884151773029996038460960810322363701603862569862750321414809367044059227766210274264343855189296393667621967522057049023514177281929671158617978211888535671162976482966925158891498079459044229583955159181501017724436569745394855055711253480288757189521645436638271080068825641563118729766159069180151425509754933631404462009557316247245268366814087724318671666096518007741102091643494669608593407947313449726767284830067144852168356728748710232898460215229193736488746655989484638520744879161044795810336190316646660072010443237079666397380491464300591909963026368639162543460135212359084247696954692155087793047483609658152480075614246205889595210583035290100746910220324551620047885523814914034315443584094668056919832958779493158465663317468551594626900190407707099622529986854095271161447483483452382591885034228841568054909434921780856449214620712412568501057896327032351758370939752528060404761966628911452009214694941529518191724446401573702860090523543079665875764141915146495509692700338174300236386773468506648753188692501050224165149688517562582240225148528261938544949781611135990341576281392031041193359988824599862667044228548845267549225965021016539555877482639889629993021560202080511042430614202913636014698287610001836232670686418695412384457004586613263852410685685102930843884880702168495681088047205051558519489747561868371068926916911131790893112140063567841284684441521159302366604220242575985109041197455054985616326392199387052904210681153016574606437054419157652105053916613877873901417491172444223700463225998774036915135445793189715236795313123006735379752756375296004834182267594536985242342359399829139659018596392869982504825368588503708155390153328274059966052428327963925632856791895508090828666380211428822920618149951700236633395503969188512774530106761127146401422892349679585767982958375789979087224597603490383384216649649500850694010351377201435316783899145069865934659294117248472200417439443895104344845586146082584010833990330250831392998218630984454449752600389564943929342988234033705451046438390092337891879526292333221659170866186063424725402461602324880400924377074721428633787905842177952630110801932412080215304297028125755850974819224971528581156711698146189800143067453148758155529248165136441281326515159059982445075831510223778080670109006040875119769548053357980996269363925290809263894865758233154779431601516031356447081585464659022527525018674380639434377355371036077922406998983495065772801334468380546613541444572824434524304435529358571337842793788143643369692103612920780557683169715723470351260395023405982197565203071904754107221084320567220319762690400805995184358190931289347574758136385801887052904461755350838065004644087545938771290160576279767492039521645523098888220575160426211918808545910073059910880630266998964425032254009799020273397316266561054425336281566330692708705867118783449787595554853330708468834125076431747654169250090753009586030126663825929320278438973040086571280776424125444782739579623045565120905166711074329111965988380084823842968285090040297448345687215624446625290096784368526014286266709851970136170632756628378946386785685789544022892852954825520961843527829708286093585829770606292095977576795638832760313721266729817974377986660957090386872204470531331494806923571089838085956984556602336669975588342771677240292707913464701524994929956279755252485831485571716476671255172397123133411806726642700937315156970012571421824665396493788377036347668117658081262006758524260727718126955692823034274409157761638656014855242153698472925185442197968946082573920909016275030477592346277282543577329002328371582758223280680167738205482722836032602177517868276826320417177831296376999375023890712682049732680786902169216025721389988712311804304737822280479795782397921552147102847256045978139692315795665242661516305799791725184330573899631619248151920768171485763568904085243574622227364008380440133318748783225703050796714015244229458892383819392075825883458118171037586485620240310860919657461153950546680702133462874721593265461089647169384818514869537504936940313391068565156895632310909360334769741355103432323180744921595686077465855372052766792162188833243374394245711249821247769636337596812937324803231872096760562367596915357673598466588196948254202821176079564606639559252513672082002796511322897368214349565896299688776385981228630902868141695621436106372944936451571734727368841871968749715723250856083399436445278848824574387487062154133974607233172649986781075195895508901348084652560946216529203629028979208379611369709836209293789473036629872937186103751693878812616952740550385810896447796596312926243236090350374719696775635982697529196827110648105398483800554994329507559549380107357639898435705188871937808745726885894660834548313668174793176717642546249482281430560153070885788440852700557951182549401040617510650470075103367485965334503958938194769057872687844199283375841230111153055756371237474879714152177025642900556866358322986214367362594965408630734186937077881852010791752159443392483073709907055223220158552205620829989427332936705983986357566899649432852023173475686129793561517669202693594005348992807210909466948917896938210504176863526265798353524306263583697142651284087922873911006736466324964749412999765694595345585579036588092582083226707876641814497913121597799692860237479753129803454002572386247461910661910549459427344201757887763265227503023623499447702018176891889898400248348218253762380008600878233357659344315800278727969874920491087291182500697237488718499509104165161440708475541941657375293283512125260900556953718727591959221309196665778850824865252511359459277856054794956022527368803473311972933984311231490784099705594401573864089678521605820720158597655807127009845877722853385894423680466685357284694450665485362567970434376571394892158773863802220500362509908769343181069855820289137314845956624686289604922214098883485446262789676632641728710937969846049113260233915551426797025622027605364632429790183514303092104288733159962181397144321778023688754174870889244995458901019982259246414105315157292161550104948916779229892238236661770433300356492022126946470372077393991548693237539970711017729463803975935069706902045960936521176381117906809370884366685648958776080022374621220293662279521150366764163475555904384285705582396105584914572052852750839618381226480011008229893057102915358034028330342437398343517101008405436188651930810286886454163887609522141920310849064661370046870902817000343409808123879899036982793442094856343974517519952206615991150990804104342011452015950462891039607875617875444823851959519625884165501288268794381493860645173439551829911181824260385372406153043933385015039705132596716581346769717706290178842740039906485991314455213142812506565084335297401707910712198760447146700915699477457159052543224296695712080067182403346447751821397235288740178509550235012303417672278960259967321255331789249314664317227961755271011274515926366618572779128177885360106955652199612438340577628203173199536479885470215651745233605017602908285871111518243729637614873281380817337372691083998683900928899474992822774230142497747937863110770412858621147075962225944629500484276485656038174336654624657531100154813571530206311186991788462357092567573543650708804408550103474608197157708014632441278856506443299328754480805472733674445030178420641689533702464038612748435576188350698866685074257523686088012556430420247818888509603912437081545275695390674545964048878644261533851866803807180821934890020014307605670119909187875780114955861681560334991276336434843769759993384384066482044216954573273933843726676986536600443824241418501467660896652769702447674141973131603425420329837049997554397091293754679482859630145202344603501865066568679352179221196410379152633226471703218129429890356710644915645200404971764967453209125608632747679341814632110319224173005145746652566787334582009933800151324231852085551742022472258901954959169297631947314454503864085815847287168634821462256575754758135739680795906638391013591291145721862253057446144539786672373573758269576636858403158592437994603357673656479601928130150488365584495428064443378804909892563944307509583512579832771242074064160394443528802937123225881454162905826451095954197141781097592114040922362695554242510832349759592327242572882162247683631882054537090776100391161221612248212890514736735475470568507642868713722782082874172201492449651846148330590391144751333225984364604283609379293425277026019883154614141851101425965859065910909872169866091029951719961448024850811298197811595755281018378964284395169714861043025910268355178534568321884971848449595946545038423723364391598355260602201872578613465972410448790537594489480654601440533479197085016600209364395391543837833188759322137727217635055036698109769518626481114929824351272782138772154114228562989137081702713873196221319011831157608484313256132346154015683408100203782314129504136176552597648048140693253861944184611325883591353794623387131592609245392347465673744316916385853277657545017978492141484781457832264015347809929030315241816339162201842312223862870599714106652060999785838554386892113644588939253256219451894759011625520721793535982662625738526416724190326978176086632240275979363303595660313938406336476751362719077344064543023058470014528637532817226205327918965036185250498933125335956610016852275747582512084383378390567340218802990194339836515438954400621997964491139438383504666318089376462553479115485574497917341974334595406011119416474424968653165560023468402185068825962302782244000049695315448436279895488100972514164928120997900135332576652960898889984972780286678500740678489126765903673841338317628242327148480563623283740919498381509838186246135243196743713273620541687109605378961613397674916629881027562986275985617582198970208009086702292144325797433936406367264699556163873221129130958303497608835024415572413876519620419132490780115317306063063002090988704994360842062395594334611725295959133848321222427215279582909879158935171566063579675876889047925208993817567238817608345545754879094231722752833280839087034353588311809431750395598932699944847264243804237284924613957357350975987971670475415629140798679882105841464423366378374080446018319080408300178074490220022422931755920656222939015198922965140755365995603163961766434295225723171280263002891033019951072853448024168250787330450762340220223770089519909444726935828868093399315578056568201026847901551158475270482961413427522332280144752128222736040331472875076335274211687702143942148822726596532125395655835260328318392602071197899834511891133710115862351175366931060514101542681323282437741184572901813276805758509057493692831774571006358529917683780963685857735822268955648744240197220984220865192147406288329752456106724320652436615064274187831671542151547771961741344742965374889859712062124856156509256191511844939235074201405463574099194317963096627751414592293982121630810144055698401180949041917952787451317489567293500709983730022238245828067308453022601580165193167998426788787593690632807595016245354238509519449348201658926972527450299727512310110071040949440981153622445801796908422868390373752735389656934291475997213209023154831845048308284187509570463603385483189913559090504769322751815144207212841307981288411636547439207565573515838036154027894594149742242418835133294015510776664838659244248971179406531839265332209119733784544322213343175734774185797037924862180575336972332829509838455603724430037343135372027267242018815829174795978542205176920533039994988032058742921536347612807580428287731825369359655050968944337535629842525963746418122146471000553891589113532827146902893932443687932735932283257756628816476385480766986355748874663003131163274333070882152368097236219413920732464307998088205141177831757463796399428231328716540836910754999217990612372300427775836290108929054914644252389619995738013729566855343504412931844714747850789680900766078110674683381496055185103298595573933525437212702051320137631468612650904382088922875937499422805253239180398484291041371861807292341948376063844145202870981992046029536548612989060858792357379575281437579956334268918217069537378687007957005893810546899299546945790313119095725907859502971110093990235491852181358543325052390216821184926521239117851288685709309114872554031212128924686978250307206893071115485716553949593607558132218022332018771325404801117001554785679906625202902064576769480869109520259752063093194710378704922023705621551096332160109574286656860567091715061986596827932973452769684955827813342452855065209203145080386476484026492817942559875904007911224976219467903548337753811146502101633471639115450586443058786625956406806760869099739341487287920423787372650297758233343277848987468079346100595590585665718060847679307271312544322835123749603591658584038928528581586918122172241102496971640709986789965250521189111504131851281981592413540568682204456001342974145931308871194246484573145505030126861876780527957350288338721683384240185854100363089750224102501283202867144297564318849741900521003534223666937454297784734884829709012904601916901059108312622858529715938309600660317197498884781407959716404098333722312656850501363267693781659822223882523573690024639556835598588235014082743865757522988486313950583461874767770987503774639916915446488087799643554960113806266446872419585608684134323584345656187402709068014945645633633502367936825608267376652988436790797313962069153032317927962637257296906954837258984869300433204157943057612907071670685045877457532230075614055678308896572756514749386960842785887237465898557851060713859447172400799237517230369878349848531037148886063298180087184363907927897075567385342086976690700497866002732756600966064823640365116376183439737286496391874498603217292025826221492149924439975986019084382852078108483849686909979997490250632499124918630335875230218996945632754567519583731241126288020546270030718879653242603769684678672701074272632275891868324594113185166127640724197982174753948860000381668980835504535048529836051638060057672543607002207628123160162161564417487090661788438620306270074319664304491237897268496706461348536580943294615911334508176415407055490876788270893997965832800881106867850852143962541288663239293689438849957764500877102726061878539578526973357808128250608635202439848008039386109546544434924444684342634823804643260355040838723878859876615652400737519759234968419126584246102668773103988595832177300342890038122321165231703004397634726626717895936570800639592501654341797950646558593811065119122437148572709557693041705001556335470847991873096632583387949333066005217052509679050856837553899618684147679212001535569460527801014275934758813115250924747187700792883398760512100998658099673100470437130150578890659563646749046656013872657881511121515136746771841288397337267362825353793295219467204008445165489540260790535407192167320661602963345886065086065138878385177777293086637692689521548113738571670864632737817982606562815276448089766515709707754701402037992580589274543054554834637877064876184785972110880226849912352267516924842958071232353307750227957669363028621753312094675519368880891324941028635704456982602112155362332787480439475939109627245033979637838652883839771678708997536974501664258937325971768554702820330781979096038912715938986032224965282481942106951974369167844948255163116690540096962277272549713867751590490957117701244689036838648799126043334944176961402763768507598612183830822326534043048781396548829172573601710255959384612638503073495852368420181378735135178913334778724560648964837104879083363521480528569697668600425708924088358803789254047491298918820139754637922398186282962293611225028725758780905084834971608310036136989484128863647914151479164592272042924961534136705811318403506888935865884237057411211799144565607663600131181232787069802114605313295982789470641491872105978120539205218243539824396872617165346602041853091582878110429074266681874279483276986711577176800234705631348587799279460724658520467619846112646226188274532872763157953024637406190053516374470058158052651556810405227781376858056315850595625596532096117644706993647295199730127055279449208059728147675007297151733289138762987321670828890678042257339663920621546259167651433051495401680051694081285734697849928260547137673991438576770153872782236166133142426812455090401302697935243227516019374495965395711841880302558281142685188965706210350925005996316388765297629978705147894722910852725271743808261261754638683233595087870350669606055651636076109972207390767935157528036730852918368220230661564681128410406930912734311144250976643952162330582284836891992717042233868960436876607690008842586923802852385168277590798286554070943595041305041657764835141032863370826331226954808207088671920368574463773783513159601869729155346505439987798196945781111171892759968719846300792858555389282218842738375808144144388542187732221637679717526748652156759195219283568681635276040374960495943436981762707000896846290502044451975202186478869701067384531224905507424158008619083750894752562655135300341652984626092698310026598862873462709288149589372549697678747903254391935595928266218724630885125576718795979871986191241002516332363250324227362710131401880711578663879240120970223389779673211905444163031558523338807970168368639888213445368639138901953069981048579868113990327210207920762079443445950329758838289009153119227371349775074364452249379710461950348724817072771677450320665438791675095346722208711389152998984248628720781369865514087194391747059117081207178315052975156229325301982997043734289245474821829077273100337548088693582686041117853353709150680763008626614504767745003043700749989764766853449407590585757986954208195622223483517406620404610367115429422655280048770394707272290673965252319954037088192556490700609354194876295674678852559266520666067944574651608015752886062112209613684844665616961923276120981677261518084767206171699252123338948672788447656669947464595697479899810153068651336141161456203436876732581939352218784420430280127021273443072898607366279374523221499721015486552109695532218289549747837082643901808164204755009663854623623260819316439360639466420005993113328413959019118587968988709798083750026462544215356740880368271033439591945095282675601961929055047896812687471355431545164729149807997926990761003253015499117371123762923169686901417814062877625311406501840898724829121800962903951856963257787849998841581442488807072481046962025231366312357140742227595652574620661841960006822348050156818200242100283695316374814159215277833921366814859152969811666232994474565846243764390263133686070918431530707088762954786001464622225377576739097953496953370823583612095767279538994252744055909122454674405359609194959935635040885266659824140207434461003278707182317313107266017698886327317396568755218351697386705841255116193726362890171336728177677668695919031831477145921493509452788151565329725285923294098916881081401824087034673343940770078111240755571029858158304639825904419493709619198975495608883256604558300862008514794488670904976648331980821580645655936779469321481724802484050955605596862577318144311475539570646917659039484991150194506719085182669688339015188785241544847814996919440252420059329253535811961814104501085654035912936162749630773447724818277628176384242250356322329875822278207523475361172403336420775920111693260983008211805359438868035983251819390599600622303189096892978980722013286758927499445002483968170822023973142861899670196656112277820338542990343991274993516483947223564935299495485173946601516514939076307189449788412258721082271566620489580029466188462733765607310246741720109985918002503297815552867616460395892693426972977136580026989485301389253678915041558560336518909021650514818865211872922272213280528362875180004390887422370746501426247493506434816366174692217058756959882813840188351568312251258355004072820159075587202855334598348110788881748619960545026772712873891110394278068270966181765283488980151436936930599586429134556840149898603986620744085894578160742236757384790657163166799358161045863442834014312850090154295025023413931771144946489010348433461887248360613913514247676689229460126416429993666403217601346645546100550276772020371402096103210101180172378490327342404840311774654571400313349514081662437740300931573529386741581143225462815974056506906687301944830848705330785713020908398401605791978993120059862793997254918876804814827319602378362395312680155182752478206638686546289107895798925737126099080502541173520750105216913285952119333180527836897384172190972952747717310225001832005217452777756104274372971179099703884963318052541801950239936377940142676042949725331121696166744517962199135962738320049934873504029536755927773752953407307243967026378579414016668638692850212710341708930547870020260320969697657004122277238499248575032541261126393781853955362148010115322312916550765876887246657069829570117453028360596139526764867467220188162329205002921330562128041143642272418085793136971224882175447780458833760361670148193342358928783346968924446586895242508748554784091787536623515226983179728456116059335706283252388641723403591696270105727224615782088323531742125431164052054303412079216952756546862392086113033956069320813636322483655248133777126979876894844867076214767495275349883056944520363967850811930406447983852114502987927741685609403147924109188282223193858643548754391340256579497536372068563621930302716652549791187519220257300825434386014294438271609557057605001015486850771225022303433542248572026574525953581667094706395889408925607804283956612065740446221327834682297185014207649146098228218906883162259588204205906870900728634000194587366996423654874201428725304839638152166642809824987716465459828366573736434707263646311489076742996013357466058144770850848961998180339246317550675140965741393977920685941260326604900986228743829782041164558880562927750223497181490347055595336516514883565949795935559285201872536742244750163281566711543293118418160948882770448930942950583637732277445259754804464947556504580815027248333864433294803407936068818281350807855330427989361156011275017855452280322031738199061931386970137786499023880540594006878010528057375064170456761141378489593479372560851243748315706891134330216112179210977287166360664358227173429352005991548292777021235984439658711232222242422954439181119030551718437988606012432617406840227474319660344568496018343007076088773670532861502551018637511142428057562132676306038165576060844090584565112190081349738508072048539821724337807458962950799634211933343148048502755520902886104788217182777361390268195291058501186912569865375920170485690422596502265362575678782449475290663699042240283190513479183229177587974877114381884908866232763039843489960447330910456452237629991674738231460741101444359394872658721706988264812983526334610992789455740630107302310469818812146348427957572838750588620502518389135810674007409082684441298235183479387503607056060425315849112968010641429167519641806731278998939175153017042210499585185869676856459634765135361572878873642678842270018599026427336822366205878718971885028213513829141271121620127560355763591461779386944142391476319457431478412581582898351968530970662207776175580506032130801294724673239308825305680061981552967369193617680807902213123307598076611180111769772810447808670518838917799108241708039770576706986118443092534219540587238595146678861436873133009430697673907854252830503366761220844284021506173528199416668456098942505327679531213100004956095039365066832169291281185769767152797107700342335305718833626697077417450901751854048002138572105462023264453560220162235333497384540634624010954610493815297208187223768211449136286646771802037319956960543084703343038007315909073110730313849562228358342729516078642801582904842055598131473901245040268290643543010615339823466826394833197268600342951934076663990106884171509311405025639846631593412963606157819070344874531171491416070787317075828652675398037189949742991143582313115438599001984888455604509455822186199703420312175701606039182194939843526110712624612335411692019884854946929857217881793297276858098148933890108629191887352628273776896190246073898023452944725775958122605796545056012646081194352737061227085494032466220125658520331113621361072572680265412321024577591558340398378836519864638623025958961598648222296648365330499866565169215098822935139591132015730692606748050392303703224824768406709215792093064570246381003688323672666720843519616686211955224826156254139055032635037876251978823173261862433954859337931827288886801687434561179153728471213115384549602497335570377306339975795811934557855950587909547731041889168824041049683469235175329421045587420085785393768608181308528228453555143023603447740776527921335815443211347176171387144673302003956317151918752946473819462228347094535438072254308328386230676146756946819476472168449562637676868169973382670934608669454434675171605817625766025362085221902423155756983820145000040606703203021314041829343657495888043258012859086889151501020518881154413458755137460429431505440399606245152548465192291583200669432587412118964856282807960753612099781945645123741581462810259730478460484430432484954275375723750470871973519459757215383178785602425744047118491525332243437774971791224097191670311606376882381794547305231336695953551518192039182112075983482185379075947362221539093193029209742056247668608205693075913565129171394701790850267560698830167126639772343296091543527925205133220022921068735921259709677590656352932139338212599027194024062446523195614860564607046383296444068942196086522200393465024643070547785052679813122945528706113045632453651160938194397121408726571628126371625146026066142036864802362223948146133923272045849397017827774368282498547969911737747757919043102141718210188007671875025341297993178567504748617999105471424212486070503233636207892656943758883531486208503195003225267696944923268659123224280138354354056998822567237588124817941010002708232577473548026554178088765629412105664395898572570592619277420398213816586788508462918537855848997613834904184845951301397352851298292823155122837117471559467582446763192888163307721142237556012079431497032302482136583921836782323850407836872537274733787178896270371077652830912512005246976005494483971117906806822661144466753827580598639494159891355360167433669116677519266623028198632421236894630116482800377180732786113047309774395170076229165862203892852382162006316044431738669007098845332384038380079816895005337864905438505528460716327844473624033020799358518771014570199629395315136242584829590647372605906650953507417049666158683462617539864741650695485710397429825185858145675644029660224709193447447057088962493437892605395215770007878596707868497001669338007105241810355647638868298342019368709149408735634359912224887034291800731479753827952778845270171433849936551121199933756293531183285629678188274925430893012629368893313776049601914602128361020246662829405964133894999815985397037533518128249776868115400033679867015739738950229928468369201488136337144004706744811989610062359028938926392955195171596779367778804767335836909134839565162064276316684780412206602057592458400143620304070022187034497917713875018160249664534780205238986667451169034560615476365311478049206727840985333132055195594724954601715050350956674433995155572217147624840295568204471534317331827707566167343350208008390290374485806708259598320424333758888203241733716034505631646546358866779154794481767053218709452392994968438297569307106402821557470445720459494963388572414836227463342888116688617665519235165494089422478879538401638344723737516813259516823671464741681839372434209845588912480859549625550973583077773329602841922918106961682877537104612638512383498056706624753543871903956295471888349537669109304685464375699299605985474882819404911263849236584527418936535225259302609059701547188338177157469990608049517513557857940452773339985964964730026176292529143559836098660108216579278580827797657838879283116749506738937544302894304447481442647957976126608465633405479535121242933473149578460803882069583555456318923920275494330865222680434401504159586758738247170929426313880828198141654032721433759635999110005681360423801635972921852888676912423074253581600164163390974100031904954101019369610489768181641136864207829476788007657817698418995128439391806544656697142766689807759447874322612767483819094250325012534169255803878859568039243497389112052404079929408396125137462432665183958419294959347092269790372107936115828945420631012497929070335495480241826843811654132754187668057518787979280538448598701983405773541208833911402871808833489828520864051753126799122339094926750965538839092756677210451327643176244079144842055296519055869792172820443117089323140730137010127028803553178666707471465844153210510820176079328173662844474753426471821768085102634758692465958237930199683972662234434729363373943767053615135746556125281149053575929620000529641537442815247960367449097479391879292026427215117413489903931398302888725146055682309392049346006394156055460818288459030513879742803882613627890563388065518551653250029641165378661517715140869729384316203792683702223820794980888061085444966692629925787570792120719162361203397389232876054819623754857196778654866505239230864102531781045878057949494508846402608985366718979089468103888583992902540462915113703818281979422264368892416765141321200298967185690284552164480362987164523328302405709500705781126708081071009495156884683790501021895110651621003212356493091991197476658600919833431583162993361132683394042288583865001538017089503371596942484628170287269842020907797279704112423091479781997789249141612777283257778753243675341333416077222469346845635623370888125356241805810148562187208803895966092537463059369982291374597487609388872328261290573903008462648054034211813649750178726816003895446756112748150808955791541693524302153192525169486336922500312696760758377852316079378203065923249234725629817915799887920514179075080769220701632182645996186892146179766780090948577827199935704620884179552068998022680747567733731072018549348194538969068149584109300725512545215980325240873258915239286286836844741917447910928480710675475161187816289151274397862821785139519624806064000927787454215291639427817725583203287244813392640973320043488066461619557327339426997288221842990279205966687398973332747175342956094803432569476523215290646354335113381933195681454863711228148243203106447944841375898150798618118809991567457903055111302325348512082619433163987072520933960783669949061592568747690559332479728708499991099727170929234827770684177114374689539214712444058812581308532129454196803181600564608083114088007686002326776955546193312834585898384895998695152238900404372873029698621326782748534767274573474985975247080372487260861046497810488898681407376903565638292857826964356202353414814645850588009256129813060385704513269457340138295425517245813231865800731304693270699797541216052649797823556419973928831083677712560937175222806001694089426461475984377695036281014873415465834554607919545994648234127947353444947092442881426073501543295656383436499366185610393363714670587060392119732248953676916799045031708783366569746659736697613615576467780373884079011825503172241872931811400501895132919802638525197791159592024649886785194400214148550803405976458518668486461493881192253728033907152307118696413459127940280670422549418286987083687736656260874468975575321440565017120721247354743645760742210936417831039386184921233400636367167693406915331738631551982299502013067275333743291197537749537279775887115666461473737563374838551777320950875100363323514417130153166636223858631365869481859374891450535617053803427469031479643936763015990201910384061534045374675459260939832691664060940208143471465717718563022704050377199372630783081211521946125016188818132217936709227111244037964735147791204506924840563776552646783540385109630134284244245358062093508759468648777432290316374039982698135485624120998581716188286605062732617604707875316244266205317512781491876993153745379528205042088633694108505757704895080145815633884894121793859495611716773809677733145709028431640316838137373578198397493806763862053284669454461842001588520247322380835172703387648130682236551463268481109271662599215008479937152018525295187020944784511905032542915564775224339463410184440624249906890254287478736501055700251715618992111626218242164490581935642422947786343848866091163639491504826096749328840023793418505476077857541236485876285410510937828316322376550090418717668109651470494938294419118533780567828554371802352476052815734981775376629333575388811146910489419194621805426669605547636574934732340152879019480441714651244936533251067593100688500100718151722834551343894646071165309319463606515380299781874530409037179238379251299323957184537979589749558003171958975529122536161472669041511623200123763545750545332489340515918447850922361863160051279041213491208379418511366859231533339771855016732958340343621304385054311141705325826760115447993968171532092928795098548886157474910424632744775539118576704623830922195775945053890441124571558971973715494414921060241466424937774533145848266545882543712978012587655879670586528932920382865052790259554265038824939911689199884281120683716612458893376938591879713389102262847698422908686538299220051352333139432736358420034421045158673897678905974915707584011425838676133046010148539058329359061757031174845143265183102794889265787331732271711998365212526075290593581842101500213957958794239565577962664519496432063553888535601581028974490644692587480423261911272669899431018471037869891430152860281643779773066158117774827926859343683972697035456958329264471618062716761156444015877438747182794431362564387687877236471956186904225952688494055616757779516270827652430306358681105932661812859830508382207708733362630502236027799750918258095828601357369259128564703806448143618850258129387671800886115203487779546794711803974100549989787242691360558904186299381816251306998596935152132795859528270216281966234792427735171562724523316691808267235826651162506691744573026100657494614841824140231320725320740157785644090313422735042618421215351913179824497237654930320390728368591850720922775251198280398202635188197574142483319139288744905034188665652964463545356328277639546613570580516271694411714502795501773271324487504652023023549707379736062870921208476717803291762052604149983269126425738720585182561516272455952343433548359357793807877431314574994587961448912823222607724271319411411185463762485378207930306638028988221474343939033438388140747957697965181339253449832509705039356371562368734502138310497478566119183353204496344580352440752439912046021681372173130404660117965508225418506488307755840381962076548948543717050771864818999061603394586761936905874660839267441528550943532013784128804325863826121159072491567720096131042394273568364267707857103925227091686789244057866535896480289495483394298479138185759194540813094974831551590201022680512529688423287285453684194158562788836337367735124251417806095071441602004370285627203516011735517410633476870357881778304464234040047618344310893399541545755983135127051596422701781026948470936440519694753802903980014635466734505981724773202003798495420346024517013113860446106534939242279628862111682740839201637471533921784095173889470731038301402782693083950133228238534061426219112531403422119594378641464369281266475391033068376641478120335045944629747685845258320037363418399458352779338070217348496170866505579036071868264025869092896708886574402960720426905031653605519011591995327043288467294589071034806633356387767712260048182487327119342346747482500866512058583779258837131921285720641216975816721564124014811760363021146507121704471243854606394135639324089580664367729809022267917955301046094243437481982238486544983887358820240540665688398288574884132967549561040440397067667255983373616328053676824090469501389005108215855363750096306889839483773586010729053674073797536751594163694686537391879158145622787286805701899349037487421326868007895150081971796492067650994382034099657065248200326160712582158066930779257111386014161176950868273469226993795949735749386459568320206705353590216643565326627083896494351884874019642492160455929798943307785310187044361072110562203771854299912840377359887507343513504000122830134212966565256635741922900886557073430239725171324389375308157971955567876762945326782004261598361944214201599392829400495509677446733380648691680837693022366689488199894127529619004944373320379728906771380189443170772729891723620104155361893627251452823266501002516014883152926128219831131946707717060297975501864177466101523841665315871183349282092030639389933065225445651097621337687003411804105640668447872950744770774736734009023018207203791429263898558924226463120013332661315622003729345258332522634251509241684706721381027064769237968327384527498014687833720403487293293353735980117129844322696025927748030197244019427363484074697324251870206453732507230148846567250740485435211288646970369062205996852972892717790506076606878174724693091381210298513926127119552808598333979853575119352647166281010589291999462555727663811697813806937454236227538230741968461240123640873528909443230684217287784196946226333167307284682129331382999285994951589709327260456714856102665216884446928033732715981384749990570858310830259205638168874416088578055698424810946728139040856163313598030993148689698653463345718402916581201164620249154888225165913587959052016941042189349060700406253556042976404884450654465457922160665082465246043724846106367958485182862886644366137077814139725279932148012036539378904327073533826609282158548291626694096529280499312094668839408116715585829489662050676783261461590625395596065276913517751090727161391107222888958243498575045259196101231917111673009375517682897229007165471957909056348584339930067304137260593586438648911350499314547126081369311990763034437491263009001562922303709654554024449762385701304708975011783290848390791629082201360892299121590130372141465003704677569131419573231047515657533366759541280579018964115015000276784143332356930180729462465551437499411847973684423334968892794483754175975742544810638115654500615627295916740886553091831501603262814134265897491435959949113415845376651461447585068045994187620542467125945259880938214529144856352603934687260447480196392994517769490381076734401770266170661054018502029991452509056557291306351913842960514387541319971563660861550465438475546216876331114971278563884164070846116879650405906461332413786263409076822832874267337962883555697304719638198590886356820118508928555591864016391346447905163069728289771296833286162485277146408788003362180710246998286619958021689312169444840231456104438183741813099664503846604075424768698813098458582869516724967966939836837339756133852478777070946245173431837614848303137613666999451991293801254810683044099174672715437349926378644715379054949769359832625677993789768363525027409824781962774001666893919589856859762794406272673509606718339058388270374847507854006296139239757911253771898176065819953930696834233819082669567931568481485150980282463640299111246190003489578907635092674360077063847558575015793463947684989460228500778897124182701621432217759582898541790744800495254289827647908435380746295968872644552481397869371295919667831650029753075897104414968180160988043550422010865833269913318869180089488311887676825706372897487297422567072222074861493619989870783624845472969943337300543968391272087161734457234798722921067028931177018814386015075007112127269519077460807719137400971442593863294520701204245916396788690273638552678351043252423167556368794928528997627511490469654025583547409171498662295513542130028654850515246458666094791526861977822919971786730075928495295754974501150713216286189856287591583923353578941748855414679102436123944536651358263787581324099570525058599758869324215239406462856373891030930915150498074724841912927650717978669489693296285853677428621191102083487317756709590325565092742428216486260835533460003431569966107010584333534907163450398309504579880142665936645518879253892753783092343598705888559718530601001992802094217760075893044099495911370696846885202305733541396486257558026694356883860546019415802848602871752719458715973625554267311744599664618956340517754784177049027625871877939025368619767156815472399253288468119485616441902353522591642930556637823855699126754364321713799197724878078587210563915573994450986949180445031579463459651785435979891256864123707383172187875156249730319629364539600506768832213898895687511668004387075198654177808783663328078539571278796891998816773818851709914334768329729417800942247365952018505110455378551425159218425592520949716439044591348693566713445292242614555392314350075500897229072570023047995914791214253121759824283566556509406708657045270609970039366442897641744907698407084204075168035049331545263591453421507182060877890654795283963670553588161351064483784131152738367716082093599275910162810391195780275573118647613929603072120134077380927403452629027560003779103846863664436247827906561184125705955711201598516781175335566230227021212776107486700032679845025851622187168291544709320616414303229024978720938338162939544582546956797610967389841537889687649960973898848055969782130358926976402453309740612792925965249011487417301845040219250541960655620142053846805703378578865968239082760523563312862917095807725384837354910307310426575485569598821678449349233396079530679437666297370219242935763965950829367180817107309747969481501256463383298667872237837739276576343072564307841636399352735189585476258746474341582042661935855277540217385705103173907443093191392021044295874798725975533338221584372718752433508251771851942109966782197198591130662986882046544526274603335813204564475032977551355778022036272180563700713968304577662037961907780403829097542189290712073553831768202869816548490239541616616547933937095390605001765820440848114021888074605993866115565656892857644980047734823438162482905196456026582368055742365742483570718516420485635777468748974756123041444253383648370722064127226529057264516317152017734369193279016228587789519687408795085434144344190664980058096000824549282981538747710508424274778077996193968186775660478870599187299112965937534822985116756817559874827272365315505041725570793376025083584439789425951128328295256845786294409215347408148560947039740410999475866776571571994289186525719596244790394860411605079942738008388834133268103384588287537370764940819932923927991175047814351990795078271642107255045362456371440647595771817232400374509773230628517569887640391996062776695385950687175748533255039600641294749428166567005429742335953510096884817770977127825796135778652174513232334395694185350525265064161638386765320357890758961583609042021792101578464374503452521362763629834857192539803484895505843580097304961286148041706640828271070590129755885130837771230588880740989945317218818201024158156517518702273341420838703703016118799943869219398256584487982856159260016327224297534821413040169120902795322671704927374954790909093052824332766044179348508114687342596063785983897241281266112981510183793528798848008798196282801875878129405031785013214309977056238848922050631170780210407651970500221354427728759763933412076266797406950606615898797528974818492263431300195146515304323210153035103674535355239324159251606852623325734124850052518404688043320379433224897516638221670615117547690781500570793056841135137508209872206877653420971148138281222113320080600997417690808129065312595756748892515582300966053804585888548228638232644501127322224507498771138519923118201330131872796719283839144415862653034427166444766373846305627129726300228632411390584196930347952601324669828957269876180055275896876186043896092241092924632143173283000267826227189594216629665241804627028589999245428208510440202711923581233146162035732661699985238406181848495769077842135148132572541853067283203080635181073815728527491115168793904666916239438848861653649388643072719027235616942493712440064347902052541682420464719425002769157180746665000618597122190364605499658831968080383071254614331432370373776739397528663258097346288931277357223168879158953713081985011746969824763752027246228428396373559076342730838521427854195643292218298850062868223580965443199567089452494605113720340612992445272779654987165660734391156440728573796356008336153318937345473297150287236367228566062802662357319458847641057720740909248819110716329482696930447503990642782606475140004024491407933745342544472733584511900867802615630477682345519518798623624000637475612945300568186270638797815368184020224415574229206831101010484262415364062088182547956012701360559039014345406329558276531877740037740006718425979977342276225451295184625026664750775820646596753561407425475818759298466896452984954253647351719447161781018430273042649457107524635096099596618785480481701933628106836673877514431549065579756705409993853981318773932351672077676418361520555585661372585239700449255406218702039572168786419096670148971344560574464508197233921967094314459043596848892314774395617616954932496824541990451593868566734142740106822898947992894657203012351335822844651564528347791264155458353098376188022179914019522751114703237961457655458339218018508279645407068358775432053997795963330835376982477233178245127265127524212565846623550091329975699904005870194502459088865875475363035063611276346005473101834354331953819681146640486611223431159324242067973268679561535481665138362879611363629379127902401940611490720768585344778743936050263885544953417838902329241639808512383539689259085383456756631216842234541162983612548750643189975592306360138730225946837241386470201664664204964741774519646465168307308646766335035644795758026987734272214699781820870550093981474674712662959168014423969083495386501197234046928291697577661670697338412147830488676083733287432623794137358633849071109045365437527676227628307572712672488947022932474146919569439860514761992821488165641565661999059977400275700125487936369443654979253145601114699075457692864405214855751364653648870801546994522002633885823396283920267411393848272406059272316028471560077196253855737563226423630086264946823180017976292043967991588369698958393146395473294426511795857543802818009717652902961582906566015923362615176966697877764285314406810608738198074827813797133257012354134672544111806929400348120750961229550686180381916277313479562721914239031477090953181488495900328113766247389208412150842134978022858343008722242154119299635309907455320878503033278162462008429839941487413863835616539070615293827688491024330896124589117880019807314993493252680624729374539668050854699308266063832553476755024265034777284555280417899057377084228480466622092915509947443496040895520908398088969856544876429075742452674993615159892483457627074421981804427050795466452953191428927930771829221357733552319001787328469429293163300045518056731224302269291672403102258224239262630399425570775856484069213944617180471597583779369346907265111805533255170341396473940111959747794209576126038590508023066016409448218930000431381085917897016190919845565543331815044447454333810185171621145686529329479894356687278294284255230553940138547135296294246728006762082658422133811134256413848071153245131791409929576653852246740382966636739440342277273396835888126480404519817170830525276602809894763354930912139371206740195353777931108255231822125524760905170553334416610672516789138017769850178795902943292235594704129897615741037527162775347864482723840782254530945621148700885808890248588980224979329324866700260144697840275537720741218187174391215169413425286161322767946092400592065504917496296451162760432823157945299191015748493746086621799344694791459060782102469235904112665816096497528554791739252954062706447071649866462292411621643756232181380081347423044369718046785971634073038532822807132628669877566274951720109337251169167436770087026593938611809934545378731159767589190359608391115192544394223669844313687221058192582737464161663478776462344709500198357292150185137912119542031159662032960253996600474900245003477843596790727316307420975537774015676158208476182138366443778416127992764098109119720657024366521144196246778221468946362783416094777113954832574752756645358859262416381558606851636122111259390049153150521763811655523964808106617817460185026719740110958671339156125757040839423347999854430851070649398549047990103789517550709345704778106864485996406314278535816628057693067325382471838057203992384417862937033458864074024525630892231864846238242993424942159201784500966214897361662416623553644265639015748369170833065354544522084289831519355624869263520912900573009394439445191121420505113137086119288616657472999195763357405403645067135967257754680746740612060166501661244256846149212149976410443981052944588348152773212885848265991471575140254047361573872163418629464066976950031682409927280972392115013424498876868388279533955728751847409609016739409549894186584699125845716502941867914356361180845625578206153118803858656533858050829815433666681425297728044818959204637191103998391411172782146946207950206678529229193033984509416436366286137608507870216315345077506036607408327749488119978618607898790647420864079197697704359575514927821870667824734348662846106172383277245072166963472192314654765627737784243118666786076602756311228655703058838782197538145093522640791857891160958155169448271669609798549869770776887318316089664496753579932245148888261831172525436466577120042669519773426647998252769996331070652407842313308021336542677775524548496655168157653098027114264423572771280245827323183439617101707222667567062359028986869017586471350426246954262138706363320934690533251741338544943687797786421476459519917481296255899595924911486597393349820755692366601596962839338883321909320601619383155701202199541000816368106024084225845864317931636913369520935384894418704112853215118186640829505837905526844570493305078834012353583619257696031729138187928688959267811114165386264552686026109028651952336776584523427847214894332262630349189265715486235397019369983047976949029612374897973492743786536844731701070025868983975205237924684929471993180202276309306536209822575419717832804070741167160538557416783888751162069613986666492936285737357690984364889449157852239812611329590385531498407214870143236133733339159865062504050124768725902494077390513211486670159895407153869938723112013830557548633041421311952345065547378138129772221019446630969826606138867494992108742544230536126109063911400990898415283680517371305280629515186083189388701622053583302004702168888024463392485743139219008001815360273900373590633982634755447220396236841019625203267680451699981992515026694816713535842260578587960081287599914707400742020993675845166354953200772166301241847149823994805878977802909965895073216700695286278329213885127571075375822629126913402742689756964641678946340796545687985774795704890050064257970574589369284875260426664449872243021457299427108391705446844470001899619720723603901973291755798394300653924051164410427564608380411434591291276590518017214238603712363811130759196815734674991557296099683699910290684595555248719890506674835963174830719995627540029342042090918116843919000752254896841623108450824452015119873610158560446350902265395698693082670434662800032420070354929613089202820716847787651328853014756041575331200418485624002639251467641356071885777237807175118782552851606608900033144622909272071245250826277723307871930588549426495348449200323200262411857868113440330396974029565014435012660947476671987144603960036021058058161609135034272284464159281940511244891422702021859049919757080868413838578297825028747101978754157682516480458764806738658039527149768803093123795728971861616567792237346414347227563854791868933914939241426250532982034883311582645439502919854421407794050119086950470147882467331382966241761206640647513369509748778248091889327181082310431856157117787938338765666364906637583535929867129736375082130392546723132512707247884635850263184684471289892916223705059282708476948600024726687898565825502464412511150352321536294346469250558890184055897789593130990171225944954132133200568803229496580354424363117767364215201667580826986621457889608901139886173386148545106377393016501458703646315259568383278087775680562178202368137820837211547420791089179063607663406121100938422136339223488035536014922847607643326605283788471276312137379193453884863485842988180177169624373525602526399847426789452148765474719911402235066482155734951887916097276453832123678957041521966609341045758955786362602395138104083748589833160202721229813312348287817582778163285485422769309886158455878306752873684089261211956563607327658080163502972307322936863751846632768039438800801312675044871503167977448939409638894218193962268753432083693009808368448470207829485485874138232727158011593635014414153083274641756583108313648230723561718332537292092331424317163460113211987789934287258711202521315656792653840074420516648323711113630860007772721399312236991665741637716603531816911099252006731006736570136406259554272609665805582062348768890269911675286152373236293780477990622471126139670160147655134037716861341207963911652553101531597592261984818176659157611670514188681198039329912820745291912619647743103642707304142633632815324388706777074095274247965568616074572658229164016164893375521500772102607662410493580167359056278539541472051647325750118539334421845311568654038597810176854463897756100557681363158342788571530558975879674293817451265740789229723889396293615378421760858951986434417935351331301451794579322027798262533098900264975188009687818255211041134250747510154106578806511995656738949722944761268363621195726773515890786302473565005704086775186968438117970903590239006471676170126734734872989183778710298821872189625212094014874987850779551322679281533749456193512193402166074719674818012538613367689060173433103613322950291176313486568017577813000488434060923817035727873658328992108749833400440480879981372958993715701396856442396538457194756025723785680811951319358984426965085467795896789631656191036292502322525736103502272597553032689049869518557852227431295042003332266994926731274159036158828098735088841394155660882488263248672332152547461263748692820401682076803013344546615535836763322242247044421149827749397700811216586973242598056259575351500414191395510010916174837989159714201351745425513387425106462823263605514543639074384469541686848822956735721739225741247356387660946538330711614794928600226140440822998714119848158251576001824136993533846903015952226974201950829508362385567097741715889246101306243496750259739542976613278797630869837627442392394711234130692981476551945266449201936056229871643976640200100593810416986807786484288443536957927654167656359139639078749662257590903270588361188044662413786538545932993298594095602927998783148618256952779289580091395314674611769109393731701838848893469750187435469280233004118673867191467263196485490612276152261284329481235764797407823341844984856500609999340749378806433891585734887285981183345337398221022033499912548977528461861835344409482020867240300119077477162821424770127938677833104348185480012216905473219426058505949782138279620498757757357094358678777853704770435839062865170571830647350484963571954688438622419654440956190333566221403768789117165504823166939115316468200764973420733606609003466265788087844519058940217693439519437153286095622552802279026469969655541032392495492427292824170789850688017195117908741697014996027988249464266708073611261006835411597983057928750505064273223048726847896911112437378318340637978089696077989288345640708892276284693351619900185342033168380730152042470586210441260859174289701954202985173522538216023826551321701592019479087696355042509756503651874376503361440274831881558797262030443878557900161730993165917174934654679098573148706310331164076962412478876246622266342115742734367023338698772321615688017172707291869642526354793472229400829585275271810301167171891998784549194468236718815044934915987700448901701024285747178300811770422946193226526296870935172550620717886504451506423516641183942409896179084402874119705404693119220413865787538004291021438507513340811369434546014490283755517929704285553769393270645889241379517313337823100547195266395253557877860229728725943399899255619999770762134336209595406153096558529603235841460676988329721862207752625743260194875786836549139953286155120658910674074032326000075416163319809528025041295553519616471724639252267860653924999746554248070431257293712956631466162744426050557026313564257635020118479044686701145040759630351262576573044448208835731003556121621248450288027542047338947035301847189695476133959387985109027804400188676008136781793926863403092314242459838914700518887383382766339260327221459807845803240318934767066930097267469739368885286712569482150815955610473574425663742007732781833457597439945516943561025608497109412277673577874304491825897537051901245330077649837708321186536731110856843882438070538756300480093121955283555271113902452353949450658937456429656105942069853626728457810153068611812864992250618036610132381804915530067898541232155077275253413620759128195372107675196113424534754242032863342329501402214758635833399702293037100979122719722150410446140968898403138751416979789714957198941262440373479148188692069705223143295330117078409184578816155763426459460673643456607987924121851268211258485884001905361571091640920675191456178432429308703484270928698766962605221232960645689336335141776022551587006185457239384834225868961208412560939434570305488604767156302165450145619227503782638789691681509796165445841158324789947560607896497678134665387785031600723708628832791034665252298056911480251654305148822679977712308220100847156679974606136745511501143194037538597096338288864141499127738218711891038927115241421023423053833972607369837194926260204468864760830399389606851025257413786936175312922671131630466341700981031269952000936758715487778878429090569576716714319545827742289414420869392114809705122092799861033113187349202637543523306321747203063729972296357184040275930311486926829061733529503332356732923802028895229436565492653812513920223642540114224463077580684485623212054161870402267516816455303624803903132387578122763033192526123849885678284813468203285885332652410320173835269808488180535848968800351731663353909658041575163117458669734067115699266032212945947240342486279333199177526755871033078852354325049576428259296145138484617422033872630976034340471292413348132672514600096025107926696842186467392749255406122274525280589941090984084611494585132964455931634611908910311037234849409821097424166000062263070018083439633874131823427125475466371800622574993138994532528036750633309132250209464952016584521317517093591238834444026034679469274604912938743198479252310098446374869300785315656942935549844387587566938539043045552406195530678525785312923220939962626074147284543632521416410227921343993067961407224627391902265474811961516889890614241299651164702178362223665103245397981023854529319716962336781212586353382875034012549929219585861131223933316399623996688685892889696172685561174633371283418204032925681508925319526401720156135060250298446516678390525928676882979695042819437239015971743319875494641172024741591088935512443674274126886353440012103102537827084077882329126271115712116066054715223199166190117006672383575942127369828224869127441447743712742763414246056923945996236329584545506687008306483244752511572587438246044647814026818394667909367818380956113281692558633525051305189652906138255517823192277229304846703710409364554048312401468078828872884015676617206335495954875865325528876673595425877105861079207882725012702776635620515052986338290054487422348287519733981716696741789784811821298679445352384221055240494548280646649717816338427173406781284434047706741640309139644110060444521291249124955999737861403630214031520199168730736397199649006671549136215438597083440533060436075543205993544696849510137853343456925954609981995262561534727928165219453046717062759519184979257570604779108588796168512771107424729835993620547117596674902806131862369940220053033249625249012555989904104218453881101495526469447950195544629433021739946691195490006308030864564827099338417888577645411116159167676547978985110612849845452666409230187852019867995833573645783811906631698008689055225885292924841036097792635309337192873229844631498543335934674156929225160217059141423802002340631617446884038277365732300463595319907082349035675758488126388756558244554895492761628019623430224647037571390749508874818127099141113675856810360749102806345210856289335365791846340817349259292438888340905395652278323443729289409382000121506792986520804672457733642047279351240578341371048510442291785491330254090039711085213315098833411727883124776757009126312722823660987160348946874945919931246010438445151272926980767568463088336164386804780247896363467607139673930478663588294738078235134659320515496267254990829111931931772485466506190668805061510234289718259724415920824515529074835126441895147715735315850421376212613020457164317971867260902948219227885875092598918259690427921190506084249262473586730560444465183977455859077979385665495932523476508603318444561356015485891109437772865134835719365604803159647974856466637313841749744829915399727009929652543119240010393183053115465182440146004947982773251225167632073676912275897742823006183759382045011399455839700506561060418008207806923104552087555414428356545958004688861559642910883965783511486728890675404929246014834725670201730965096960181641259692963727064837414040178809747808234776187156813771244264060739213719190212860551528715487200634236774055342619055913059407733788489607148930554625021112063637870981473574542761270177332713372984936124308987875903403661503180579032338033389855153863514315646521360291335196408769293943375872222547024730934168401374236345296390430792216361499871326768954763243633187741468579097364944045322962824872134545455471839412232025761648672987240193411646901423847012917994546978014311477007291419411706312332979321230130252747160149281639821241478503755624442280384560115930029290357989931122942257616359389366647764343693673782774693697250253468430647178204073772993931004429258801412356515346084146172099810372104035245048765648965970936667198575723442525703997324655894624419540060849550201880655790195082342793522768068939811251269051941436652667750820748608902299686678668919475088436572690264598143832630800999457822171473413823558385021902216676679093615970831102994631922635624062762295680755474618191639621089013771545687629314534894212484944268840833783695868455853115251723974350837103173170001466145331716386268149318952820067674341608539911351974077248408037994955928483113978815285600144610958686939633185814682507716620835877077692860705716866663050808599711376619001983061341265743926947918257691214019264909204919224752216909108471380638986138113929909709709483190383976373338685289604638222239140554671179670786249750844141309955474139780134274863993859745430143886599442047318063056049771714250771921376738580694959345166764700530273134632698382361798881503274191910315214142595373624247907171299146588332218795661278784752752412911806737038701313264038414347581607416409316778380835635704157809475294072014711042153259366140643354403006328951907239097667782742082754175175711181962707871883090547456942300020473372878818690799331559011698028553477183094353138546081191525547531824495770847751326997410836547614166248007281900348083397570986878036619209641312967847728215749798843323962620567192395007166570872894082736141729413759474042363193505873573880724577891918844792907492665580756942683498365438353565145525816564410481924000703123701227597539079494379892667448093640318024599182837102196116264692368241443950389432318983261963105625324652572022763820793748430037938491096822299746461662361801365112715943215863106438150144767659217342689515189633933328739157543554718201330917014399160787651463481012917136867414297783814665903866806842864437319643876608442111851894775997150711320518380174359191569012076723553707604392906370553006154469010625102547021360625029272875873832982712142147250439959167392694579390374802688786845858142114217793366108265615438368883058467271052388063955399184306683485770909013648330030843725152844836231458922794074511153103421432324331376091520449887448338655379023700103205566287549976428782433868039071473673157940793476416752224922996920967670779973656171283654445696438043871066352184509575563590145513800394827870164767020139209013393326038356495459815196853490421245045198061829982125339908808309551977487322196806321236414818289076969503306501911285141645692723747598112457740277177574832455184432130790791224267378380782693640923248846557210372854706465214219262851406864369135245389867632319865774888761133459701796437447796249757119044436701946478827547299866749260544296121107901631515695611296454193849751563630944629608103771236500826723698983966368025089868639094264142399028174718708937787646422625882100553227938742677115058063004494093351409863350993277118967882283279571856868624932919337192448944593756579077534136544044378900269956965749742624600682217019529449889790301595470822953551233712547752449006395418042886101976151066315032251896232936964993167593348233257859056088252883597789860789216618757893596051323022038217326362195623659410696923769107420017824485261497573711548276337777440898966148053067142316566571755175669980194920448030700501050495341329207133431509447262336507230000348401181089887552923468306752917602533840333470808335758027376928884977901609701907392858369398171459004127209811423959063133842805889950916501967211111432653213916983540724697915840471117197760641151616087743286391293288954582454068915904562869064684347957028062237103511207633833898991519301596452624797154256615140878440467643069505765574186281276263366024355593391997907602050042665562786074422389348524266202945366442605328610008713698693857054336589063560959017628615760028269425135676775239432494282451649244060730942338578390889962952555090634652016142809878619251872348792308254721989707945241707245292514138617791050016827221284157837518313658098174388679355165627297338166515178673548424246327085344097474785074951617529414752965566180868225593803844164858256895558986814851410035198159943835104331193435492346805858404627994764377137137024982106251422581583797776335351674084827049698637500247486493066093205531639899249139803621980147021418204000311003669483092304135527593463276256472875880703710531168225487667287315514654729572599012748486876376111366854841789133677628836548677318998500440615586839953593415646153390133057813414593620452752313476877659482443713221259229931422353724437252414169440741881652118103860214913722181662599233255766041477325514772763798604499588627570254349241429002892709745069767257308581321005110527992906579058742008101861779931017036124908300283909125860618521791729020409777124958935216717497425981164165586205414405439727142461295500395386773460170493031520637240222258402891119689750080682767122893663927406717206270013941514098789490671345946764723676395661108690434171788819867385451962199170607779181927982049862338725284433661890213949893670937966865990253629063550273845264590391990103454478760754788224074724448806538343205963458033943103211208730714842131795909610124732409657887298515390692271477032802693383259010073883845992774376791641021507187243117384564120963999752762285352681581981583313220183526710667604405762268300295705737536388529616008427429351238674253124551590865041092227150244236091776472580962652465850150609918525335110982778003258779883890622631700691816799777747836477812725370829602796099808260498523901314027431188942405863442600151346829386093856543849420565071305776506157329278927753874086423462875317160233595821506682788895814044068098758690514528940395993077952769361411222288655582967996084043614204398924223423560263976187090363626905467579469279699068455992396953938783757972078219694947139779664084599979835435853320903502923267826648949460304551826086292988941989042747258980930417794081913863690695013149541648987161861193913243360111589860327143849585898547491846323474104283309532050065136731843418920127697713330071441982985123068874160957480093045192720778263773466981598330949844349390939515014529350082391850162907452027877200583882006085155555059746064927268212477279115775367473259820602991319252473027342854449974396270833249847158404959718432125753669368857374508814732993846764622700078227971047676903057089589449586937403778545852349628148686614060030314110466094629877317373281913753968899000730256888458437527941628277949063591438663298413350695232088437025978216361682694223623613858530695890553819582639744458634780229039298878717607024973042360315484178517336913511922017695310523766192985318422492322592901373528460836389052801769190380273888484004866844571326060160106720290688580638012847364427841535186579112741687197397230139350673696957378014657592959939482894536589448296731568601705667300286959145120865202401973069854861661169709064015907073065019012483329438683836510787687324551151889522248133098336900020435998258448581814789197406467623526711641466940129997177478356609140423032576808205542148599662959260590407896902413726299052147822829672534878950961442256077988254669490487878396793242999529580957092592937085510470484629132708312281531537461346188544008200753061317576403295258383157084664014204320579709586583577934061760278790325466899555552216999541742008004389937335462361357222408904454038323683197912343877802872634722195560994242889142266696884329604371231775225065476763494280455517405281841638325065588825624621179354685204183738619824114507722119340044027770264670581262040909373674379378712343341840191644089377362260795251135900183323033958301271916120116737748607972191066151965023602632397430535593407326554176562201609174006247595477330453308140440608817199449726207826786014486919502287576247058621555724844821176065621954627105515285288675958505566499498474602777552683535484017542331640076501915916918297833234737046410964410394742635057694013106423312993467383891008599244829071449619213102547119521500082234954626495062886654436392462457238800840351259631758182030847501221273269110117204772703818338588768048517252416530247548721456771117448866613687958480607848553364002942535716382103314446064420247895386465826858483334299484090155146971797898405453387924167599831045770614280044660772616295560261367416946790245237210385617359321562459356360017915671850054100085585033870289026469053504548111329548280327465311792838786442402516153794750248276971888032333203465372313644493053874776416760617834699725107479285709562896261660271906900213610722952749353549326587086446783593921721996929427257554600068072103702821542098156332294848978606056748125571302317952020243392415843911446866078788955974152031727399621169121303407582556215890009748816490081728736478003736561296095428027643789056101143980832343599464931256663311913685459435385882840762917848510814323292250128498429851911523491720931349774582257452924399770502238122370975222447791720340930630144799933328666656658137646142258808878069726503865570770992740722144448776720819346757993731719836886725930557216946509336107975834286762550056998588635553221415436399924142362918708407846598455017610053689000324129991101241393232195157739451605567455225067058430644691027593384093450203037791746769713936568260487007814621688668948623246832969075143623179601523069523546904344065493771332138460740451191635809278633172088549926601956125535988152905576719921000866525994007418075356392832059170579528777671664215983366064649882910157212773963448483730852220424017391068809770638738457917214771849856081753797214197003639102835435929486920078016800326085334688949529192699779471716055204494333796975643160767129637374491083620810389567288364845747665983071544656153856551173434115311914742193079375721809782831520675779068240880180128933223384761330646323790371586187984195004626304557180102346979883499537439351839873511828328310864151711373639039340127544523333134066813357739848877545391485110979576703477685767210179859485985809670277913247435325273924290285432708598954785886038106411403646470284711510341150655324158632790144457886879071380656463528782802094446375316803758732759308504599224165227115792261164806428551096149631448900587504600775194273127603768843728688250377835790040404279761594068784990389232126014250160735259850219917763101699285818961481211517441027255017941349939185865083322067316985839641323077926159944419552596030900740126226216443283678018247591737320720274363606324111593053436597574287954118341238354505946824753575923491066548501799621955245169020867387518437544979655947778445169463134095359974568113590270614882241257581429986773974606550365917721662110145001747515771941629080563914512351580956636614077719278342345201970702823067714803683791158371117168323310916735841695070698063339805273414401798837169818352522647434740667842536398743592973476504121366094602565008080124012925298666956818709929167020238889974246434698526244851977324950485350764466287057172336610370950858527580725391696181751782970079651337677546109076005343419337134269654061332843548997118962586456117198340171084363966525970261461498579086378726376104287711472979025186432215148349437627375404178436617335743490596451635004264324918846275244590574670035456351459637373592383332126926777132131968753021122254430296091003893296053661675527159708073425978873843942785638725228605317623625149559145519561209446049314900267308423310216868968811739176584090595499781969596090192547125758071040324537503222908258418085804486475251521603202593049595556164376608833667303558102588314535761596655371358353693333822359552345935742457486369365184911928831093977444949386611869321190052098386379829247586285943123979617634939337692783952957759197081245759030520775237288045292678085768086385188541957314493718521693432538540315487154829100543585191564556941835753750830624378787779818498650448290016074748687475655058825088834923878425717392785723362177716448405125745175205863304989699045322589821546676290840311104447542818166828297811562872484051432262432616488237921981896011440680186628192396062940639183775930526613691940973249649269077382932590839969895946307313607533890324519374896785025691225024572485334583772306011058811770870422899196833886654730688047317526971820611324731030999186061221717114179684980451330980231155120656317906889324740412621641868851384476217862930643803714297307094449146646930829240018939547043307988421504007565774871969397141463617483837238520363966697075209825214192915582826142760736507587240730398950647262771600376626685643905534367144569240526487626498648265571522276769904319062768643276972651930542441294895904429433094480546761065970672251176233139933387095838118753690847619644263136355815021283195544012895728512802930764146523948754282176633624752315749099382147748995333010031131676694803359634989866930310855943566653259334257648591658507231343588300570537578968493800742632641234503883829449012857639110742119579536137858471896896075022477965499916296524338137630326764081599847508426972514001137529523144357390295208155334005255929273672683553324521340944812331168552045279561767365773689202940535649495952066773149483365547904205642538135597577603395788727465349730822850174584756056360858814594973863985017229724457219731243977238411984962959212323881047506901796890940967189787253238874754519927683509450282033774719257756199736673583414531581402962592780794486048726414474710097206730013793278426978088317056078939212356176860314394997605712663048430666088800096204491577159865698216165442705991438042362953013039963271263116070751686479317256148230139773810980593123184640598772211543207713607287152053496514261274194519806777352414992664111129362569690604710956722945828279863123363153068614933187301719085760063253115124484252058453069017354624227681951599832786527987785318127143076965674160355103665191624219645111924906285191347812627288819747750442364698596187504196966487362350687036365004062432376112170039185130902086140025031124914042281099969440885667911057243766713599418083987849023627133088421402693978899493084878606610191796514064523281871727162669402282126815709431523463529291813240437648402208820587657960297226684168804491485261950132207298621870897892728621575889063620794757006930849992662482884693490322543820202705937978397073785094740580444644032689706384250578639515239524446835269666133728359931424635011314938347753878997367875129227085298003986146797739856444040095330719769197622427035973034805854546723769989164612572445358728227329059591781049584517923343585098968991390992364616573993390150750754213858834176072261467914642580060339868739816018866408781390083003891959157229813851472811394112778443423925620884758625185402564846525265578097157568659605235761702406999651115833084043026715146971242863099856131004673483643129966772573972270536998717310376803035211515275596940987467143732662594136088635658435679008839658303265284220728732990999601610300273118219195744389676056913741906573532056750802770227696010403153381461984511562578489764829525457265987055081408852120430092957997157806240480300793334926609852511794464686555688547597663501884354339752500430949056153965037777632011518737156878841952459070868149871725151612236004813900921983623528713784072522045816369153012167552705906837231283110288715574745327981451997804799009226159099929196741489589611129202821176819234345347361364151233784760132238866544534086119198293452245830999594681249174722486712228637113231615977499174670948771820528020627612812302220307880560691180885793315321800149775742594699914485927767091779961951363005663548373505275062994196975349727225282111810236212018342714419389711681526148940065489111996250218806045799975737167623710236343413365087623961662645026974749705786148245153997808382181561183162715501967621915785306515530674797751610378194020597579977333669507913429559121154495134513565743177628173866244411384435362281103251809001851915615570922659932772746875123338946616990469417047755998096410497329525702939352648125398035990326524602548069636687109470918131419742834277817685848427183817832959521868395396951517948351105622908981108327860300561623522188369666832403069798964236371793494837649908794590139390079418603154326467827110179622576299948843145968385811444695969882615353753323843921492217467351448180805390085542398098862216037991397447617528442809421585960171436222914523571007915044360166779544125929709184093825398575508876773920277703750491102908722378124568692258261311205787123351904486052746673053217050514488187021724259392545167725421832959018013115054902138216130786021750960814901623309850340543092056708472230320941310428191593069875336990898812156601051404028919266796998529923260915387489938061141423493693170877304151490986782607203236821594199641077112110137068708091227894622589776722472436545539600149447530801991321553318551034778952300340092423808928024285871943914170143832493901314899400867899728926640035058899824563303104950301817061908283608123940126723128572148219326098447545658872696790013457209275251166586482026929321604544550826053534280872830676799175981442556532642906739583514996970191836835013572864400615498353519577251254269372658645604793331842617715039101490492725433929382320298305499268993370195703003121911604367050556214650349816366328239893100483058591979781984097313720941200197045327574380153667792295722389611152161368471410895649245148444223084159630885637398602870286546216682893171360716350103995029923119119199586461497568560416804917217392021343361383053725846138071104263989966239273067649603610409151433635338256012290670629063979862878082732088909345173410303755897687787670397775390393519495879694702314304989787252429364695761062586930068972729716900624865588525172637668395861011671816145858649666374022681291938281962533940391735719394953535606713479197362622025017563550971632599433089230086760831985750466473447453907440859955380572385853977328825226917398237645492557753154560298616325304195893240512425623267743570339347142717153422043925174847958179750559081400639465612441160148826681664282726313771941199712003356102917350965804129589346253429851157635870255989335680801155382651573345883331907041334654901156240810184591009931503739602536331666033357154206889591972329408539439426311911840784584041747666087140041186844151428112346740138075438660583962553723439217745797085398983221025567962485735502995731433884564867906228154902845958090066532373769587369284877014149985326074278055086958844899926468747477227737564514332488816742265177892488051187480199747292637787906520512871116028425001652774903441540105750745972390554136421266398192603260994525734239195152565451771973694931859889996218094164587807693670475755116762030374426093610904266443700349283872257081709502580232138631714467373410680781274108567366351715907554197362714878680017971212303176300121428526415088567020951218823733903057987032514428345340225823816251180644974911273319163095261423132776889408337046474962466049904596807403881754989813004333119701964886286051675063332737104663061935075856783559943156830856931955283111063290476749243673802320590021870089551137751582932841507515107381242798252444018233345176967484455496946728362983931408230073227459511070720905240335530476593730759680209335759397654731880913666361466792161025985969057776759659095488443128403589343938547669794665769244866800142810774639346634951953647578478580900290095214111636842421983134264457654491594381292631043910218637438071360776808909121025956936248924307833729724657100856423329397434041743024744481826113232193388116856849601704463936800879455676750194372173263716135617762986337237255823929436311945060996178348629615508807423171380528123053292699502785880523628946844933254739990712253255126921512569352032076224919334528931499276747101684005758751691537119699897086144971366702138449184211539564392615605216015350922742826439752491350716904135388585010695416457496442158304461601286365486532304468544950194315626036104280675518739715787378463870605925388346309754112400898169493114246495012655205682622709368395535402948497011542806224755668338732331114768718510050798968977225034835856246709222841296800244658980384627441145388758928889533520503104288385425009440255181549801841662108412259183602672615990652593389327672009958634718133513742836016302306975392909395277768318414394791753860691064445539971969520962509442744437862876149909501331083039941747500867190981187758546982582574975901472042274542037185995018450114052998126615386664328599755810708893009403939962416983048003030735723411068033976733175599481922820930199574105997366486603577147409828562612287492949766588745679717598875952640063297266803169310030996786938034169247075560159797010051740224605221669390538006911072921379036505218372968581091817240999690553789476302965623039725941569279955792204026479674195410288890744194724534450840145947486342504735554224373879239867014458267999235303289046027946008688207721242679213861418126879961615051109939091600027149503150155968453004047391295284943114752226038502186263613171086736478505676906855797496405098016841193681313483438250080157398552214590241197594691929959086940986596602259055524211338464375756448833678062093153218354090258007964114914000532832457469834028773173392112590985189347409310731515594528817441881386231307739280831896858914424687327684283998140193325305900394876700670504846575071207145400441817336413581104221249106736629056203714740794083318810531024969091324687981190534910081166422574137960105395687328610993744854912707327623405641665452733560949395953483543048135044319645678814966497234402678079183749590669893899610005368318750239441404734007006971188764356606901689237279517928597771266883078028930421240323801640638664289864829011183647973493240827434908506380098566808417391329944394722240988862138204176230142851589995409797953302950482723152661086755732785775748400280914421018314666078805529146812488449661900722857385108903275674065050393727160535696030411699293395065916087893269051139901784283324768264348577565683072386490303487471962518491400935257699564021079117257862393041277380863879786495972830619683112098015044984293019745123358245935294680346314879660731249837397743780041659338479783575533508144512654825234768179100818266931547679061893737672294162645509707565387995079908599733656819373239538888979987631068959700388715369309721778512208547361622618809245611817704993802666178251592630087131679146248272022274704925471838333448516454938276102746345501693543287263531414269087361862297977215601403409968176069561769638737626941831151429469364011151499287343013725644106131990128775729165009648958526880530319857082818823609032711465874810167440059040670439403557161173634190565281038674553970305484278270411183671427261515558536961696862062328197321651740522512981219389202806856713916155925782083306672853739211743543819609641320041041840721484388962974992975623099487123652115695231631448186101347139869126366380841575326367776483447435931007262228250909085812289520838355260260523899126678414254690751868407560190960264176901109664459530384858413861818223511023150446480268993500452998146590022632838655851145827935693874723497390344675240369634883291122820428733409030734845893516914934995895853776662455088772176722740769172805607812646998047789043852780696726910979181177989648587628742324104033679014438039950184825919589347788778099883137322264440628290195379332075888483395027040526259605576646428800471600802354433282072055416452506210932781306337979064561465049834076827712954221201851595348337327461559716515808492280478814487380254158263785273879808090663992257225286811654699702640001493832040928876582639318205097848453411477106737875887400072128326124498481173723478530505260663020474980605981984275603246849218674321477630154294857513150611886219996496941716356318624953890049289955462125788782538653851347695052748683681815088022384620610474893319821429303426429629029634570538966429444861718950285256621057704931416367951582118876120451291781599629005978381417808614683002591800775759500649452370696006901731193148891020314643805875697633221367697479517301405145654401575599751658426181158481540750410175648407725360924769019033245970589822485938609339462709345025053051065322567461654779549054140707577935701208280190916628735561741478938577252096201292488846050275594142820081230124863623251122263183455763526122073594771241947852597564576687568323272072411887433826787654790754752589218774933619181683274696851539702519938587692951410305072702183977754611442669518089207438606356896502441373162761181229829209087348795036966826561376675453977496640578096663615287678750651773833336192414748838846015516343145949205608050438186054845631092786839531854661494317197290955824776564873215082508888339136029282328521258227503263262379414260973034976697897371552965136270852624941597930196244773004372071748719973503397519658544951394332367179962513451309962854570339460743168116953553627262775863340092619547046825835818041479422042290028770334214071330726700259748743155391433986078116631122454209120184543197190900929631070641332708211149667301030196055963990532282403775673790875782625107188988285558727460271957594724466283283548209444223173616200484073862954152888643320102849608170769027486142557289861329852318864329199477708539887000389905800637831409674032091500143036415659884083229784518872662838822287199536662137723186780254410790349275432188979008872432150638733732033691634295476100185399817464446718280136828999841436051566874282256794473344653544780643033253483889421284814811952817127483515806128202530585368565331770017163401372550272857371404134262073859182731462825712029838378519418940689849194283822533168085323361372910812304183112834252002431246557561507968283121363523445581951803951488811406322856933491969380818503822245825387190957857905362719103399547355164810410553491214488967780416997732398135535374571164024972684779835194039012628269608707930073462715513188675562238248289050517439368735091935488587903065639684593168568350520299229099378147638350761444878406533842802866655730926716291989234146236244367150671348956214417963628724848248575844172243462021014664272218480215875101391904720466374572961977953813796928029864715294890275544878205472271345719719922146502182797682520399621519720852884613997897734358056230787388758126730298179735748908306193051144627896534668826937300507889354722199716720041097258068978171617126168628072116025302796093680314960113745935210268521253689778511521876722429818497668416166130942663525845627272463056386567498199334956039462875682167744948121568151743109599698018056369750498975368295015384963415102474128419111140762341961994712696654300787278375491930891787480980763342698998238877017882828897529771529389630231273872056416265841311359757398512875869917716881926506232892515603696771737234592074945534404298833338894796473449766620791651972023275576773355175548547435763183425680339209734368136066679163563097848227253667463831409716175375013811138858573923233920275420646804076525774380072978075262905254783286607049810421769760858157024159616312689780039772025738940538962124101931753704734283179097979594449869974211389768948666491042186703862850226965725564937563548065204410839466048441625995795922178048093215113417857600373902647021877474278381466625368263167288319820293779185862520410939259558875576754985201277392193517981159690846911638052701488659027143369627098346007175614326290037446907594696821488072327549950368665191662642590981495642977252697118254613527771022788411816985485199993411966690972165989633810115608591501295958495345731619319126831115783845404515795589647970939424511792666733927812959817293384826533725314618234595771625197225334449248097782849753984218343843620764611354111390561680410155254300186992068627810629832638943047549841890224834642462791217756965305130868736344471037541784270379437986665579413898786098835625823137313111471560636551881936818546164707100427254003154065445024157942369821695913192118207088732908947138013001865510584639329939430935514247269348189716432724882841058997056545422398573090211767059668922859661758402968434652300335496013273099021793373978298546134667039207360222296623256830967320426631370540434777143195850145110805907549986235546891271455323784281482449023923846736422655735813736436201187796491319742566709176973612369787679287139338469401781300791235323106606342053500157725808155532535986195755728192304169924669736631384827082762211031865845333069922470947816286122902752432398783738546797716237410213550680634712861252287117578100907283227318426232539085167304815779219101492787997394100006564325233825932793313133826052811572189072884254624755428813389920134159536617148037090365587908820060162022344956289443841404925484414211097652497481377553512177221023575146405312508671410351628515254706142166062797878547847273720197427822193764987990474415020304392735650603026387046333176337277514166231469187800693992012483749781088452710400303118931689403193401544668202361598884567603196541706127781873690007153961377620193876133125806291720002307417558014638654612412777377262118165628577890754997757710673855592370369616889479215745150949999785035140926610402048810836486567666181457875226216351493794434805943373328423981306395057338747238106882350261739128352025624818035409752866082534234337681387469191886857260310238910743661339143393183246531058230447490968638049460399630453069618816885577780656289172493738026435789322951584291423040115259651972164387764923398057977103300297258142789613166335319039589837329389495598915416779572388206362040268252044482616654621216226009375399912243401687100330861218866339996148253736267266843159752688380702611764561645581952726138209736425132703507215332013277500425070398829445832894827083458573384332502133377622066445794377689383774505145135736259972536837381548060066537503162152317646824953375213215812337955231570785486103587559462288470665810874990887219114914204682871935003407877207036080437087573722352408005019910778088319277012921908473913336908685824639459027934454687614464500792367228182969017756889668405304774684135670704165200362077828174888382524460878598460249086047470034165473130648172880911158420735157929905149048261842867448428562262193894606972607489489927726099505044018696418874662165395866917352195061973109104512282331422484934853537092336698445350252855936000905342201247221227790919533047331357734652119252149755127667686464942930997990189998737034457085113848093436635070674588898576269397023051565452353454231717231590746323433633496796978797474335848466301729124487997012565502250809232008820489137028523820025160421784372145847428927383267815488608675733449891115780367759010859152645310341971453352762056551725057702626543428563929632784984264836605793890611153245789670311312675383454387298103814020633539185274768308512927354976846026956553542883286512785197813402558162032872200787598216668121464390901933649937715906696141159819492260340897924009926418714288819684744023826488214385626117421444628253747034042809090544259436555420931352789969030127655104151708417284922422245561212126590138414134471726465680691244706824621237867773463982016980301896453943525461244720563654276820785958936270695522510871463188918213878081318954233347365385265855781069637661779333381313500538907792774393757540026797188120713207194616449149651495238233338938351249363246399133258630938086426904509541566458289609768995696225035476262457675835969206934672791901301900990729282135808122902284655159717464098614476237895047884055634971167741059620520227536070547955375014270410993269759222107986859419154964175518998039703547252333453076425881795066003274245325901126333362415866244853241457217970169421234857817029835396642850208296150780311975281023751198408667535821633641636622294606237080609446296295178289159383926377850094731018641444923051085730861839658312476977920063886350467471029690137843238541241893481895247927702761307892363510054664045753940474688937759787312368876498644258801433869720686759365321097432001094186186265601761951960214381131397659108135493809548225579792120809630612212061765962740277543631921960030431099520713354401468988365764933866413565836059915971597949665528173206433739713857049438848036493074249730554405642095460933086473260239547938381652379443963838597302164919744350227419053683762256511507481923740377072488022647415579386844320374369227506420357472467436393644909121887989745192273385224661740734765496149179313669063244209422951501619778066179032037531201709017887781969871151571712422542579553604509481081097105444193839774417657867221625316663078685966751469478388754013720188641144572651366072775014516395182700094003831863367504543950084881558680171800267324856579288503551374300767505070769879309167379313933381093706325404215209290070130110500517042503972613343099315745812730159352181856253209115737387652139012047456370156010198830584673412313897605190094120322414358056427493925712969235479091248068102518058587248361508160520221092452661033872114692086376345908341632766028834487093968974973208584093963570137075992121591639777556121129430538805139680964554069143260485098271007854397802530005074768647321852385660749419676094614862854650869151960011619742424945242611757507757386421771048873234456137590918955244925468174274777454381519199967309180596348121704400809966663189737622675846588090351677988265854595883317226967962624627500778746190007442252405083840987315695976359692903748923897552152737899666874052183244865411503761987650674908655283201098155882052199702147162588786797114775790506842015328945613595338197233698618053760028905212450841822122981586010079906424073671477483584312639031895167964278008795865806014268868829874652122084641663239770428517831724364785304069006900216734097174168937507049561837752309341658490626953989399613989596225925058027800603053289811704818948453554047320285585655488718651511107671850466731345203438036282113791368426130463887353043041190644686716431672607156044586500314183591140144634734470603786099781463041955247066359137278386134885325250074130790315141381405322500423612303297771958106620214516181169258980558527804376155082055485687655827913281566845951139840068477390753478929253421345117542931020405430406396223940924357254322163304093821298781305463993436975667567562478157297148626133498289578408555768349097516353165778671096061520492654632392778534078565854508388818475687217440409455238734191160197561903716297912202452931326757547239016137302649050364870455626900939672110579093658981753646549928729461698023633475407846937976471802368066080017828869463985875593065079751822535616236560397585208468504814967292280290525543063974869788505009562792697495862235279653579854238134673812026416153452538108402202616563002709849380646954477186564753753706032195682489318305765207963329211475505322530106880415117218571994629173165364807355520334329006851546534835945064048834699557269786761585446688330711252592224699228432271693542664547369149549830014433994338736900516781459710540114863690408253337164458233705598558031340564404242023598918404181034546261150788235912255224995289199373596914898089480599412501733249107769968149588606077311709966844213096104077926846712373529881448806696967012815724511972456358415082677099779455315224132711540535324667990259771169249027509264614745882430789789829232255555664796570154418031303192954607718118055349924969539494395123521685799416780084791833153142805471600633559492121057018948005134762892383660180893561682572664514171990998524974038336505906489594552146723987393395547687036890608628034790171104637828044296308107496212297302982155082421037314032085179965999050456938703106802836075365631087746947287376863068037787798703661685838569561269554755306549090514231806587532794846998288764183291367783721637430238021849261239805674642321400503778638772881782222367492053884986182311589825463038502986949800356992173211897696734237009845090937359947667331478784026030208839804735460052190631099180520692330659034417366714371029108293344603101074887701202202676268375396695219790059563468820208626570869890340370785032656164875664903084876845958670611293210650488848156868591863538989627968626203531689427154900898547359698481544233677688351320973124822281317036080708634632891523602757339893139911817437410800018852753702342897184304933122664396785309643640925103214484009008144671911548391307813076997715409330490946690319724056576091937298299530440203924865560407818828674753346098628571068813049493589565448834214019626770734840703750341563779071340120233321808371718815534236577904979425979145761139324887219057796878875966472787468799873966009485715240218333784451380724670125530951005785986697891597990872188415430407904048536836233754020725847342551284247456754024426867859868440649588512248250014646786524170032211736046255985575428649697373840916069459520470644086650004779536967331890047296180574145687579777448618042312667712278840700774596719269267281771618566611028520166317387909049388594056711004012700406292764259945046217067104445392836048242478430825253316547661701432420443669487867575083527240951277953747864066608066373813038105462309418366274498420036134039533934049782215976270404038732676970062043514187056792779868246327124101866270137896039274646052929383234846966746204416141656942178930735029446122425978407939198566841576309434016910766302917049499004760126255900454970439306679893022936524182353362232135521151679670520516418007594353837487487629108495915873372981672553607567389880203943807813811007365034492511119520508435623082043911039197597175811642768913649180414374529155781144071013169499473742599329777763384920521879899060085945724554520074831163060066075473588448110008287773965654777718359144796719762762385577828963912177653858244015588813662334042961851769995861197935438228112863989875427450468283924865156633243537832926633653332616058492064815913628428770790008464227786865765764413655400080524520094259668280893855830093238175837304912845414253021735674900773865542910339260640246506516153391801138216994387671303671938909883726285849831516150177367299469107544518264512131171582025114528097232557397454986471085344754000308506050649164558610991067962328905353002435959093068990069716373096638824083882440694574157504914028521944299745927052678166338373935478410603665354268412835937936534742231806062262295915226785199793392523245951707308862146371945257186810564519562418852831278432961461307697590813011512922175429926887390502193556796720827038402504276256104893375960415355413541863001868260791269299219962871320561801646988039761500498196172229140236820793975266170222253081604146928128558600584111223036794329990708344048070881036866040858327525752226300270179828853307552616694051114275599062285814348579766200166915349101096424605217114949543415396697245933439231525801780222695626464636897459120349255453018646683300041997299529337001189278449634261611262314658885185106196230658024531849637759033649594463324468617411192524378671925677701092919318883224826544555055906714781629738081627359809436942971942392274358295106106418778798851876033460113192926577819115164021645348334241037349164989296340055820435899899230537355051267806716087986759611686180160214419467566354396798334539045354347155197824882418202835573534481605097976433920002594354857725614571216575199299653624643218190858345835133930581429017015660167653771711804321095698040237624721440276398869889756847730621852447224276181507742281103178292813045731216601349386523892400475945206963001798225200309841461502340079902225728060237497065155553543346292301922363568427752867004866252490358322617903350964744566758232938729997265073382539583057937679614182624918452463999700649374846111325665832783762753205826763395416313502565296566759227428851642444452711109206791908007345203647244679416030846352073313209793849099293695483710380122795595074209490464020793692902719025734266605323411387058168457621014602071346241487981621059748903807762836809195462716796346461696562573149983652755306486408275923363166353576004887607355744059576254410248528904596399701824736990053309369928162846229664825307727310988758329320627087608816590359317672389444802833692144452438402345564764268688861683236016001638367055714561254372178228492267364944317088938102907667022031011953266870867118464898901408889534243560641323945397717007475015312326839264482146622329692841238093342853641164291948304800271968979042980097387046381760690268221411711470377263976893707228978005494125603126626469513973422488406631890010516034166191802882501125005932154265970863707635256111427550171592802106697252038465382437191548946373680004356887469522194315567858013217406042403670878229046829121938617644193109866232213493570540648137634763521922866058863233700311367533726264303054397382005902068681018343911438815194494435382599421496969303197872938813575172164494759800912540072568062361587650275470879355006409008091820098543983882198953562997112364091956414944755306408314171336958393321221781534778894583536985834810576923571257371701353726263320976748528948768316029681762992281141095712258070711065528517890609433376989913855166366790408161853455095639563653323390326605067639869410124965400184372902799324396113255057356588454221083077959655002852643071539793480734151337899187953150383898810490539820824108108613957036071602593053315851479281319080658849105930253403048984595353086306798727815400364756809106459485353265213411537840635313235702541314221125524538296285303559153545301537319165615552482874914935450982750204839792922742462205427604926188520105502768048734807263157162819815892173340683555076097651114247088580414766784291700142714425324271383230258005509842190799898493823195834780070145283087072294561087646210166182069286601865008798354870905126796108864082965736401757190937115314422229179956561528937511315883997706427351196923376974459066110352515735489450426550907452913147899618217557441088122527160275197510675184829867913941632591654700250220748624193560923026938442722124036779913646810046954095142793076675354929287350262647571672006500576450054314664167618541661442984820948555107368722876653881951615615843260636985716699108744645427140004421872367771368970527534589668046565973631753669493926265430905022587218029782795926453749064041442172623249352452255359701537443119374716435910639570471963910978296136744708454013694547989012208125250492771903104818809412185848351972566349391176801575108838977619106837264678140520869391798599858756077817143865654983570235275695306643803221210259693218702240506360900144049027090347582798593833158566357064610573333126122031902191000325220137924964987378407326868691510510054900216838419170622231635439022372120170907683474154366302724072036227030159376297240878982493601404145684932051045313037070248991224606293382679637052544320585888511693999734036594943943007590049299024235636675747272990409433076188901365650380706276929822487026160182727426200485677654619693798827055313453567233147140309092522695301140442383623885815670481949947981523983223930523672914804826423463414980230975750815607351724586233021293203322191612209146098423545980037091082390576739229955958860191004572057277234638489803473903956950716699694498262056386821558077896278976621661068877585879535211598322003644716548430528728534501660160250893867103339167770706561189208798253293308951508651952929268622437895449772067404290577792281543476286060711804688005041896710362522868493951327583313693289470354702719337617516678675341860002864359892581466934160738386125021980913113319790465096447314026169519273446906089514340456199336671488498180009233799003294633049146422334867901015064027929150184544182549064964155577864959807760594811140206994742225318189204563085699518952884379040073745554579428167785762387513002957492137247477665680875354104836525587533485170973738894492941911212845263964719550631148790743939174030353379033101723899609968459484952216402011367154293478811732837284546421793703075393674799083862454677937300539864890851740176093506530841255182919475022228321756065340226714693663146048761289556160755959145193870338906772354611589228676749833735913986691485829216834418105832802543875783497605931885057515295360256977280629668519267141004850081551206634183930985625750686686547694297698594261059910692262735193054055178499849710037986288444594581556921703963014772322039959189114551467195404654631820400432421155612787980710494005563653723057971853214307931287232118157657143376504613621361768150709517152849901111731483460595456642360358642376389145475707544258665006195555507887410223616598797698869380922137232582044379428211731718311978026965621712327214850462237628365808920323739794090537815900355444788662539416609858455114320861353353006243842295901655082923829268564537643960168964252766316671805842830416969176198386047462110564863309526212399237552954523222921774847428673524415593963102827594017596814225609466796459095571071413882014128032690810002466442640783953145721781095488287663531942900266304977654012539012368150202070014469082800130496412213859151288543479977952366516400647611137083169507914062881141610205820510606004958501384245305702502788185813077772413579192788153385442185976410654787127853834123510709700874647593943539981942862626629820990019404180887439439452669424264396004070170440783442303386794131687943004512029810715361463687690859966732665348073987852383853930527600154814813082067400543958341388598004666186959248605707953202612395155432349857430588190365873085484033324947783930996716613693400004464557108388855650912798520308716363038841642464085034777051855667490101044901460812997857758956651491879746989832037472200485056433166457256735388950791373534515049410355511777818982279988762904696882085270037684884693357165515268129341714051116848827325082553898582441018361738135049993801397494108594672779863864165023838021490385408780583345878045344945526984103945134000152280281502208220913921998720718212799974480273348538496885124291237283333035639314811568712901901297542785192926251711606929569982349554988905664684005536494464160635030614857177791123768126781356066583974539579257242744950019931658692271697361772453420675618427530956395123075002168684013420699469130333497189204841324210801848156286294502467942271769036066135031899171939617519075715043820121230472048139583982246055402587136904445926283496920907240714772198252399751848045074850759409960413288454683268205781419679480225212444792941592858603073672495389199827158060983916681386617169044638198639694093463125982058296022678534226550424026537701705396236033477632492570701208004075336507565288632186524219891367741527023556599177750666627018349414579855134538595945972268232551593011936256448491734556993105726075953270610522429834163323763232074170230688357496518475113769238994753157407398905494381961840685133191504135710814345549447026417952261410668567595182589600859457957238772633227685081134647658824851377347864120579879865565766501485786771993233934485775907914598420863586983295973594916876525015913553490153288757313772452859266649687238888014270833344149092538374791654636198571533896390320349385726130862417191691404249922485526262255054823838153801778294764429821318590762803500151903015706699052906155747000475863467903393073645995931590042694049227093327365889242036779705154692935316979055272996367499846356537703191726890909047298162068680351419392979674397125173734929490633448634044281551810894249266620387868927757292271144761341713845030873466713728906664734050518039645552780056596779772264141680190534587764411022368990649919629509792211316002118346225730903932057095400858485790993861333213825982175747296596349985497649841211729684520451093934968141226828351089178307949276853344093108971080494746247455004594134418181799620121721945524460981664214660124608957682731905134262290739809395329286868877943476620175626910294703793743110746251054941123942417951597788855027995846928545697785012373644719820793609171455610697759395319532071632904855086904827757403000563920986666460759531497740808262507452723143587012285121304823303854491844273478246765118761856949597907565750063589376145748129461039337508688213461928819789149759124303916235377053976249045095494526640250959242389570109190192906222155263712524760790238536558128205217490600990378622738827274682238597635470653363942576520828226993237511297485074799935022275201775354935558382657465663357170889548858480297914250161804697674486522467067941048454911426573710214636519661584603674856474103529619619077802260796979626866607425595242608675218647255702517124097280724473874515570289947585502819869076161322837111821119922521697564220390963663867650833633733068895605892372331851806349671184402090710235542952140667547865418718527098977866018334718948751838845732115095673426503877856977674277402017366356464901758926820460427868924777149075931300846614264533375940171010579632392873557540134084271307868037544661567042541640690843860356110625672127918131101298727130867607173414141447275693037928819079489192765424772169637986205571283031973410471970265177734948079102184547668128496603981102921339805329553867184828361468845735730486457302309520346888257470181411388284043816171768009250809013678568946079750016712930371218715631781197145129682887033667397861846659830309463330306074525137297006910809493442163648692689625051324648367370756548682340537442451121003941214797434980719675637475655776914232994653003117237505293923382273582772449793298311853914364791733815710975126513254956280556132812444511887002987106249949249834746244921331175446926462602715678787039653961392526420199611205884672608106483497262040234701192861996320922535045447704351439435306238755733695903653314797001423308745977324726283405261053481795433249911827572041594655179553703835624367565304261530388686259137812858496148887618271593433281792732736687438863476592444842972468961446631551908501771402094787038248775807448626371580539065469410995150620198884766232964263569199485615743522270616998527381290036928541095471851974307926441903523022138949306040995183850962616343299204517695123371125100295346935398441085383698337708133275637278677382557940666959392033025472445816337040170222220967340354988127632531589788145009367577442159858454638910790533066634687576685480435846366754094371038153531954520256723108568209277094704326268731214517338774282313662416678401061655081894442167268582009166909854952243873439529067646092898723935747252313883389303418513333902459032691942397239228737773481095449247382879208333326760102195204865786094659632304167503509376469928610591336208979626544384656159199941543470459168657480023312354154740330499657185015064682141706257175733248071492384284234683588123404985764792261136110444323823894509572082857701874522935958384315979695573662267221757597003125859301415671826576415194298249913724897758111261010431301226335390796396947229136299812950592624530843521763586124678335616683787830862858235936484243780451860298980494015761438834764678977207540341254855386458797667971926450319569968323506529846726259781729414792487404278715624868152727608273484511672964955809604058643272826538865528367747889862030558847516159315009809238415035981219217714113788140411201664347099611092552208486182969459879204422297134497148626278488241309386375769929148097937798772841152875249001316650740753463504230488935875618860698343472649738195668187380002340983683578274849684921748073785336047667554297503339231201675241613838092467857557105276948681844291610203913773540389494557685156390650841417032100014556359161878591253713151509637297521119037865640755437983921971754354378592267308373411074503486394896717888646660732381652699012105758320328672427870268448095384292142761702114772045914685182523789508598098132216249409660486050496641562499326839154120876437298602571466721684512004676297302452768024137338859829407388782419982328166772866091040801460421427266496243997795478761521984708406014605660362737597996505256379130926351977708560009179145912142625236741428009962065399704647116733621014646895216968874869584485378910549232222427954480576568369284989521039916947001222592927255243297381860992658463634106822479161785103790977651463694446015670000129287795908592893184492056115870272199923773722628620996549630763752485352337939510940966853204738366291729178385601763497340751901787765904340180253657648577419497124078134616264339486322007565517238122688494356954058820926516366656961586470056855267665378708973493802807243332480290153422670315811792155786274505820403813211687189218851396261058851370152164736035134919563103885355779565392999120442924467300780562819806923516092109808832294273521900777141483823889399818437677916663701562435757816138770443251683733468670600898646531522852185721664054385094902979062635930592338400728853146247127070570741673938323213035882352847935952529921898620378716262371116588733084913533014516329567182157639694203742963378297799741045808870543669961633721892762245135950685162975478179713842361361518896607758490239327082663431217718113427567268122223011707353242352743251515336180800618630837602850192338856662679570194292232014655156766408113468718802260496369652877707609944631620716746086579091179922227836786042661365873252993029523605289646917084628869302400025746467472631359017181444819118553492609534367957465441816664488168430602997417939327086602821134857352002698350119563370041849158401792510343351429867889382544278338593138217354807564133340232577505115794570775894128593772908903012278745789141190904115360692680438297313153083435012934193087448033437409341805120377239738579983558720282896235239934251687022943020597177179345645033950335842576537276411021955344426790961386104586045265407855945038449804801373126188866567281855794715229187680565142536855420816253984901079832090598267060831373671293860047931628391672540405893974544548768375307958737629115878161490614901952014668837669403637856641794545049564246759276863086279715216712955193074251772448490570157905967212367276753026136407910444976585435649656694366183983935072039445624721746011165176281595798888075840974921539933270296635310574660558773582640208044774851491519110997920099663198967826345514444987640042920666198672273722764218168214887927994082646759566357413405592441454590913805459036209700732082708302814311425780995746739436838048491682053114015976400268207302044492799039074043278921808879218682672741351502808021431419465812847221338325404564078044689764607299834068668824466821613111120799138118661525469701058867769525200754350182593651862885775208677309805767788070734405649062129541673005224916562877787276892300530476746073134234119052874555684610883856632141196876380964757941615639276635580218662898577142146574420655455801148613010595260749439126179804958917343304145503259801274554348910252378986304830154953469769247942765428133080582723509569267009255748917192825542483442473539653142618718633127010279675660352518103080423448281807715532182893445361584647024498531144786335138759426322962279142964037379318710953380339527690344420283166932967521345832266951009215010485137389363409291484920596157565933240423892576154771233375571562588783828256499295236471960115443055156262091508588023466775591835583692819802538143976936953078939644858752889348827704335388756792860024491660088184776965456753011280991527910221373545937535090515504455696446972999276390961435227960194288676001586635454059775336497253991716911878307006009324050245572698915071389140555115041593535192161666388702855685543906689583642384189507469238495729173723561385125953994233976769227155139009357493709151404722213948474691943536173444178848954273410214069448328967618426491671139249832381523838436473744904995397193861339283844808451467458657354573150357216109246464002304359697893569102150995915193550971651882291031176761558472590930614066479658629231395935293264213098608907489057743279034307405690748768277700613481998909890988478390130290628302321870772261489325789446950246412100864731621155218806281083145593209913686035917388263835046813919112939868154750062001113266033038846117810180865034649438836570608632603260514744495502655815956861074655212869356311483164739245966156897715599373395194887591396028107602243651880561395976917090318497771560659459687911555227310289409541709531019941206527396438989917988722250143330232095866735792487201835256769377133102672049347353608787834742025047583547572921441179210427929194297910342266302261776751273338324804263245674769242928367188027176337720264943898735705691914068023409235547924776083903634009114134086251133212434520404390208727751105789968683682972706082959548685089965066693858876884406274829617353488348417471443335072316936823810181999310538320119316003474348703385701193467899508531046836145095071985069550015481418517168835851216316544082684000765537094807410374848739753109127117594051297573188298304665982737204237671289001422763370217966630348505550597847286830755798437390227536952326122603268193678514280410669021928965411286567362687466467775825940818198766563545127113878548816272031727471827345823351421326088357424827001372043063688417602001252130073924467779255688570170036029206717626828972300827512047217187875558211639068673669020250158735876307693024609387183205313514752646850112136526356435845652431246518356261759461404168093313753360891753022525876604430556064442040834046611841432719939519653505963822376576306435476456038323745634091269742079497039729727773197961086395803864074821563729404031504894368615711055269975199193298200646183835736601947094659796683266156912708422758678459005935470819278307260080939332474798724526004090869970592940025653936339695250923744363822900429060659344516849758167340297776841353950685416010201415050796335931726058535527087490540987120759259170522799806162444240234530027405394301172675922191485577180900219879804324335133173862322922878405876635776404761074786911774310867675335224426761787690524526876129884671327869364180209856725774766658189017438900623278002272434356061464671110294172749181394992815500239096960485819416902880655234394572455315050313781192524473226620713233368194565248912920049143856872241600355454303326861080765724468596607515400835626782737258551178930433461890323322477108261233972536291497734110116501204665550658111145438338761758683766585597849097260965015985308216216437250557717667152696464415884858994061759428781309292174745509776148903143984648349923716189846615470014204243170320488770302273930871502328333118125719378658156002654260675656650996538766602658896327072883352510640496177979355633747896592252753211535972452714803340673910302090169784090158726078902375939880574101625070557053533836088391441413538958692758786861542067381545351302739903677540849673831832364289386779479755019959879505437060882000786082628940542970784563245249349297084165241278079727520692644619199557367573346135053472564490170229105988173394328819813797977823162247211858278857870260475917485414723599722358380150091316243834779623760892092607242552255555860913518624362510716725423106876597941951607071977396447821445205101192847209334025161431657846441160405149194297588764352221957522535867747175044097059864706459842365118336304398984765229025053588559778009435859392061457872825202325599204020274285558874341201837025141500401490225534839448713920946732596077450075486011354585587872787694113610658623842793076182551592411272709163641766334292931143522180385752714231570149237219441624608234540973211013025686487741521109046268131828695091188676974438986721374536588081681710694217535206515740387203333330551179901571857644217757130008488058764401543285637468737181627069889672828071041161644931424452976841691770184552327981481486636841051282748328868879888187172669739574920671932600014783816819137439668188144798452599455030557411792951380494258854511035329577657939471875920446394379430171315564194782106688794285466773299414080790905905153567824589725156025993192166900651909340009534529866464370794272162363707721038944160176580907992722949834440699457906638447951990501203571876555854542778996748075004637106066136277334850517251067139258935071575530521738736907750480174561689225957867291104351795297468788965998187902399483809825972354584283282951897438977937053249480413572501116319987461708399992630684579171547058436262143107398213223214108982932780747668810884571506145442209361531814428969824648527953524797639300924742385012842606469651451388151895254519874254725492673639656800388671891621805509321636095613815815491228278713581178337804788051622902053384831244348897770988227258151604420048029247337747159622532834966015262051683116394489158319398695989981442911543577036439890106379395889738194920279841139457185005565223876889598222954753230094848152691416050511195901873963393187050222705804823063869687811287201145808410259588107837906429561892192388527004826775950989821683692474755032467363867762325932241006287614579132009254293011579586317010363074190550747685865018282751279316281858152859254292982656924025144895057631117626257468790425128162173148892562841927623639162360984752898213901190520728792281067670756750540061330502493371853065835534163629190905477319001336509332257414578446088502097042854520314518827521099974173679970524878425751861965588611627713928132133710257061015642967647306267398287015754121282491309085863539561341849128640128831343086748083008959541916472775860661458252835269657078515558549039642765357649213307001365170592077279389176915301008925778175305051909490588648238540579653025484373508591248781236151079358049885514635248036792752180641198162933437695412190802282082068369141400483496369714422119402999751063414021787104749219261615449625938696330350788391221253604853891953248061052890900829793098387330162283009378317698266686141945969042063437745922976108226475466591392301465541445784150578251515342767344411176365092614098797758957383143537314144666259056229934865609013771539848110263546203650353617909129997954209345954010124494024028647921719449995119352266675221996006930135524009746619349861522961685302508954872601529547611525032353865867094747201505828147086794284875002820731743337442966873094408065862906488320095190898554524186118274761524955975997672186386545940369401467821241987368607486118300198521682675551863111318980744615921572127653541509386999868632273822506262160619703584995185475078471445515103770281135375677974429782788352288926726258195462131467980838325055954939265935004651296791878056150050220240779733176118121486305344631158479276501343782544562932879709363129663112770591824849634145872828098908633026928590983468262711950492620833580093497754204443800995793740062741860011939647150913448470809250569826733708871055821191375294774078167263429279820603139912961054100861344032240485460429521193049412535311074965583266439401699478282776202302996845349941171290005495899302413922738148027498595248169435430035595399366368654304284109258718301678998842088191477654869733942886413074659751659756905818739913524139589521695028963926718244423106702152261552229637086987779750701514661624701696087670790238299401878870126830932306744935820709966062625467473077010490960468717617945864998337312811092770336510863992798615017431909240818055500095233463169634312386623483868148013330283298673021414973775642055097787508905030972580274998657736855806406821686500928384682518744452826435566267809273113163519307062375720864978296662249511113413072376481749413868356166720528256286268906770146588311025631292936438586520245658649141654206815017860894200973373452589764617772203351449879536711918999374510406100353343118270750895984284474369749686361576406064398950166231835163317884746710633771393310506704886943272835171649112656826404456692849842289323849486965105597380445063788428129805691417795664512089177614961440338922593352033716595809129437113243048366061405510365590782735646566218563383805915313147715404187690127481556686582771619898434162690242049789635208781092742386820937489463027832387764186944826559474163033511504360914577841005901397904754268340453820923466036458552986185652067698994404875145026088377626780873868345998215598608317134318690466896688663910319615538569314545397988227831546243879010724770667215581642771354441106814558507248474066709264108305810335945261200216742405666405940466477269976645932549403485446431810348375010888748732453046609243007938438348927317589895790669422195947861057417757007851360731367895457498844673592857578728240248940493406355856948548636838974051875163537974721804799499187032728406706701577032524674314850099715372070651802168051028155653301157368154210120581916123110988564051638982362119875932612994597339705083947988917444648648133181987600233056585813048307517189898490779894771781317819951942238586386498278988768866054564431851124204683501247001908807869210715434469632595171871366743495402980919078962392601866508539531971139834080363490915841447132535420462489537511163070181945353143585211016287339581621426046929002604803532154394615012194268811771176715938655916357079373756702695355847339842044354848303761746202276085130313232470744246642236762990272047012002950936023713858924352941632077045784215028472950534955671454738245602197921632161275909152202744010988116358343899290610321462261663846904716467782512876841567280157052111231004040784131632082196858329846341886311119141348082947712201829204171571358391526509721012380439188162860183283614368979328432006295036318250938186783787409945490557976812972771596009786172565726245055106567559236012068716676888576949984700186399388644243286871587070201104131241445850190331383985284166978386347484081536744779429179414650643129841792732790618271953811470928373205099930271786141324661551796703487250786915387528185339563762754512780002838360666220727374733301810407495752795939103508061966170733988404880051299532559841650768892216147953371667207307742382915929563276751374478355969629806180357508550201494809233278331036044841845236061677877062377355461103581954718939805512339561348370005937132807372857071658684515060979149376472466712206335003278365285496822004956854590900910187473983512129237754262695672182418829096482112429255669263360771281612869878184633340374731487733325313235105427963597774220395527510898246783511783041909571958819081988498783695272843848619531330356065992522638599656818410511065574590420050092907340573384772984781310239746131738447566227425684468071712303039935674189554115025382804531365255450857715402591184425781576397046116854324899690253781661730633528541914509125230113954887557599104372987697012713792233979241925220114513858620409131207079802286585069130364921526378517507676628463835886803561776466560168640283659593525859779839079965568796347644746090834776978253076866143859021910410082836224001074579731087733420946599584191964977683690986601092019199478930324595416845493238016185340888498761900542078088506519942100755754780774250652347334237787119412478616831676676073071395598664681887531087604650038723839108488265077447438491531950646507525099654340657692814318883458228308242184164027382588672466440271831478248567903938604294889199568432378594267425338008938088893236181796975886226712300200021414878927982449310332291154802629958938787645527464222693764367667500541501454942119506655910262171985729084610535116996219044213722700811586298532051343599674636359170889041712600186762268947657436122608323928236399531932482810421697253230027250656552255702433559881885444260448619254720532139552307566600774985849942583719444180452914903713414625163432391476035537615340716908437036796092108701881455329050878385852072156739697066967206478312823823470715122098770787328262095516344002180951639560797363055332502285043449017981231064747053505414567424207328635804091991592106063384456071604837737227441419994285131861120751695266122724957622102137956579245566705732045245628579525133222422609240627873199554339047099077929428576907248402767577844263194655876923180981123926028787877150225154974504398179563389595825217704251147073828839584029348615490038338425998744981816628672717485029462578794815389978825045408067638149044122597648924292589297573973196570277057336443239334810774977850413599212144002846808615094075451089842029639677020599256296930324596165739034083028603674105937994609609369296293152898198243907324361482502386394535079983200352519271028906392380622438789352901154363558928236148339636594440142340842766534086172547570223113944890910450946532442786979372469769637478412109433211802985394316175819268243025549299854657561985978502801441933505531306816524788834889555194287651867762098066390780783441541116178676273492856191753566766640997267587856587287593741852870328954239457122182424872072683799180088429642910747402787750205424151185242742287950148620279488026624106652829174345359250000121191987660635395283617634420955521905719262945040466659364218121769161451395461265150568382420327392357801762854203621931402949352628260752766632753215436472943516236660257499369703094015411566663454618198263642916310270800074027212733799249690076563590721058155758823392135177919930695418578588953746410009842795091403173317672339498620608572934561972535369182404910155449778554837206488063668907905300459832172346937392826922452980352604361853179126799538397643797899995104119223668426992618098433420473817204034708549206041259188344516729438802565988331104779027334129707887995225848893745368311834498251020532369537179573898521077008768457464463744185367098228356593713580350644668880432947084841100217999226530173525944558574570366425798639426029217937208043679977504159883781190887233914986784824349472008096286386876991996979101867997519894275293223673123399572163798500502543532839070901039988812272231190490672876449344356209448414186598533847878072418951591808721897968993273562626619029164327983106001866129371059082997823316669655928443903819834408163648604519393206031835920357661639347869435229093237731876487360861748094779257960125112959658366410946267105429669310632887273299508151167032386197227742405504309989730772727402475007139254340946673517429317006362291361689559047067085848838326451594314467304369518831224266106879282388600715289093464196412700562547425837762309856303025857719936996291125600506939600539512833897272738233250326170103751326417723681806166342355293898008459570595726844455061000362468654638567614867063885350393818193746832258142748155043061035555938512693784322585782168681572280411040024816960865716584114268269028047832836615412803432923886541734672072211864195032912808443467429897679069513641242553017026428891014851882862189135371875967244684820847638009114705087106283582143089580973420906445009359215588209529877470645975065449448823692605582159474090294077012163201435795865440218012874356224562655984564158226392166828861209104915395449696709534823742154364298510596114523622106428395105541031757821360390727825289196430480581656729888366061319710656573235641242306241214750535933846621682754579493556868935402749019704735223121870250079164466798664524045069041390416213781071263092122075527646991197094148884075022897587057561984121939205677240324309363673541395660575000449122456916058184275655829577096131146598031243044645919449146360978677565636701821940250635950438023905143539403784497326324884889026016428726968256454573521277120430206386129916747956541279649492657078937150661553772600759041901404106073549002939822238123182185179107791647256523251434492103152697036776081561885046698648433052979506769529994863849348147728637997581531522769533589370045350080159307198087634255744036947201442715544711636005779166426579679400480400382555826443660016765546111429605905218048921679031269882992260606524709919257116901947014917444895741799470360437928112681788220737826527259373833706410764308287361162807953996386808043849277045851326950178450974578059835449988757938779975543263819970014239966591906073104856183881280454922172158304756619749647447652212049366465862586870834399054338445730511644382833484779623905575115664910087370560706941615296306618134996316060888006517502907283477186717487644637433267607592094711180920877266759543043514608700407179609516269736077964777026923427400052136659304003633051927635061489745168854795411800970421970952331038657866587999658037237089339978162245913019109722586974740470405916715703598870650618865000274697267080666733176446979115231104928851804699937702572943430121256096344172497521882712265547166121525201962326101095869528748678350107151230892289070457556529546923892248662872319236279038460928145488556469608270273694510850767018165177571792274804718996903357976102505337943928990598049845689176112499115131319597416825910321209244519479868814716323016234099293589493828251319816361052241820538340400870611464405235614717777712547511662528266477723525849710468040773104139041906064147645856613449277257109026440638971428762082622752300398967229234211411555806528737871751126362526963111051378948315115471771712455042560593263597943698253600514599928813424651807030442776614637879506893695114540545413093470007698759292499772968250966851687901788580709978444466741848722047767948703181881827953710221320966324086485839356532793555171184538540487763958684531506349435240465410541646539281412947868161577762459169783541556644045602617378484831889645776141434787425050903866574917559181612854015209346952250406693997871079556499157350177483310506958220668092237605389379127371104127102887289215805167537667078516497372769415286032378516236403455092484775754300974825063184869805376818796294636330902694346622013578175144575937637062189423004217894305899761812517358683414606901687732966945028214113867488175812603947058947041909562029451838404693276363546191384951620679253295971556410154639402443393991522348228810594933977180598867649075630502063896308181409737886141111534686650213846938095014428658770925238817233895639793647909136903744819274799717856012369671046246492840308119352081046681100578628376982196617882267642046970826464130738417904393313040341470181451456351392672609927440980223936709400776873783276770698692398751352100791546637760663672662366940795403809530697842945684104402054942641864882829323948670032388443008114619139226127435347505599357070301261914717180304372182121665786926565512414343636676450655285373681151314870416941144741908136143297729520447672120363534847159569928714544881738092994270389019529499035713426186750323576046122301161283835024107517106337093953144314613725055239853912244147731241671577608977682530527832095942180425425546221936927616505988619881361679693034852581152394689529091193823565240936413716643832932903970040067889690988044407849845823905474626551745162257972249387744224445972833003294502600386322714258915422682969636491578469747072238388651074136073495620311637498018804989796220129239763810525645862222687622479540118793969285386838114226043401615629995194969555637872535736235189146921561450749917067441579532657830000383433695394018414070633071540688986096131942176248717253695547133874013599709377766102912864220437143562784052732742643211444529662660258338468599164285397410789635996890599252619844670300032057429244811213298385350727672485918630720873500046493758803696047061444786565178507679501985114954688594541009307294817515485428008258575240987706343782437313189771687389717752937112382528653028468569736778688720488764207335963396952303843975541334106446571426457828827066644428213357131881662293164470805735038559895326248722367075544829299451074854473958889509337437459525177070772711471600936009841397435251584721683859680231728949848659809488800472796558163922177348115882675667562113760842845586642697776147893529798792879786928113804169328032285386235797998429636893141918314694524751146528392362252994398516170235292107216418407678546819426046552235635425586698915676162081468186693020863949665354725149732490466195747924581142046239221004094370227314784034531513676310534113190949267377091140403326586174481122841591251005349054875902653182642294297372948965026367485902345901670635817333180851028360039651765347778657091823585701239240413652968841841525573112700520107429113369846952343891211830030294513364909648698262255710715646732431381028475621126749374169458547917856596333576803186814148242376015642244279948575060364920784424204727811767590030903588788991789130694527233253087421538639876360631938146834638516983863052160716963309425877921988613739017174329652130949406122437679926099598801444028116984481126816831695541768215775435424276782854569428594469196333561843013359908849980770484002889052402284586157013675263372177681830568317018669136561917472855599824531192683549638705649019480826010805566022499823931691216024251505112720029338585236284916107247290536386029198832530719395149505196591754101233388420920775793089280234983502357973282038057188958346595715243774431172453353268271418596450814599788248535802449581901277430556297154064455293027723152159697216031123204776625973693969749852900704998122655085806738836636584109319233725157480563340698583298727825542072258774947009950671296824684175432710069593849542744943750500204862601853034239009215981314152491440328548141432971073580998650301411494929276090219324237909136819820603184808664352522129327024038138653567003207224833488520378623450219310670596229048562091295230491106293176759238941107542358321775818753977484384548001661520667804252842536681425598099235682371411216600500958280908397088091437117269395467435350699909177900759413177172650728040738164457607769133156508887649257476890036600593851229939000431894005300687303881923585634832688222226870232101873601026864665586811928410695023878557092346789386480804229064051334569204603124846175135153466023696867967818849333876980608801265593702167406798477631634820663815465037789477727305008763355880022398882329865571042832227614133106518585194600603474307838297100569131959116931358643554433148291804321542967728474074625791881287245034378600612749049028314104075008149414647659871421298776622980369517816744749037626146715188928941124169576620181543638766768077841403321040884156759489890848340668964690593179968674722673232195713574428239719506079855878955925083588108313662362275631996151187963828481814400034979852562344088680173423017969027090467147206694468954068325363409758110718627287003036257395813794041041617181094439273058342074528629901588535251019747565211123749081520670587482843553813080000351986017242430163990308799154430538116575630246857055830492269428362460669342555748168902931112496016163177968356481171066388924470214377910697937095829386254935571884683795660653750818675907697999460484078114054977209818562161906265395779241680837612484868018449436030914521652734426222482471771454014622384795675538027042999947267514474087621412971985929183107923669922797974719122310955454745221182283241977594731838956052183694136326813710245292383556951432624973838243528241496986011993619996531988517555492626299860138794429613135702633526982076956818778996086518628289950976335843942586042077565315672501272101710260050288687818509174354413763935860787434453145182314864686664408972212974238215861458255087579007296294912416599590539770405391508695243387965784997946664573655085691259743266764146273393375734300447770764560364878129098535380178430549013946503627377974183443306393159249854034697106722993530989211753987191151902739331205631450156031076656451271117096074642223374871486226263840714395722110935523388239182062679806406466291134358202257476993951991842516786580727202636168631761880035009195287112533458276391877249751290670621357342985453389082773705884706830702108920670662412106161233125873481387505430602379599879320290711622875562647117624509043337455362202739320726124142269930899337235394702678104209578144538191445012219343488716351632304948255069937313482098490226857283106749916572692793776793207781084261542770831117816937554065022866946453414700900559548184166136173107281823750886543019807511230754076137517555927796566414453600654047444561679922008506255907375215255614248887710029310907688583141244549140870726172872781209349654866972559833639905894322047180110078651203722120565607319696378969202515298464691347475236139645104409570949888401788349713014694000388302749005456982908401922475960145901290147400620454174591546108813856946354566147926388553424891440133728950038376809264994444878035479329724041847575796697203342712760556159152810878362227490315942584811565256586839348834084222713115215445130684894679951434654885527439478866408302552226513583406321529722022491087285713814713395646518834014406122302691985958033870577089819330130916631020454698651681230483046041433976842960031958239543056996755112433760519614621381967291568616672240093034203526690165504114561608708188981070109624843286386835065809447234972901297022062583161503738159116309619423125546031852292906251713352797613400877186484743128407968014583599298711891395488046635914638510838443049257413645837103858053486965016846625244836332362198642109618601843105384014449679511733058091798125524558859344208574866280710632376975192497733701262261757993315401161324149265130201981452972282135699114611333054034372218073263777089135373698911152349471220014386803696538294059777912333888369610538149817080721608108234315791263817682673015982130885272685470573446240026177539493626204932892335262447951388389703121553446995381041805550964100517835703841809866592099578309832980660679537455448428951931696017109667043125845598479157601950374665950556167794998458391626450591252572909344211696974670948375934456978068783297795176077737095999451032090999039464241662659217754733923578278680762351762635822388586991393704019647295085839871955371544000297628986825820286509790588726192086674459082625133125093951732669273934736658381012972020286011447013757715588199654571676803354054666140697741414298660892642607364966734771034024321949447700056644451297547691509088841379742123141929869502376973897188594661191486353382957037940970152028376340428479513423282338494722111674364450836517691333891217782994772367431140885320077817132256003242769385574212548478653068966971728596701018726477181924373859530339793482484334976952982658503928596709266785209436708942225881492284257778469960421208193292655020992567397556353659228123761005064603261593328461680543624941591350427528242916048045526356142335350852659697634060554897151819150145583374076196433193160792146666997123658158237620965472828214101330643734104319802748918639571968887115682432014802600467225561010612374837305926458541299891727026380975799606632252113117612410805003676384759147809331652642836828082253228442464602903992044140619764386865213588867557875262673177642687882052893779647051360952409247743239739410212603053519496284591497093076426848430844071196017541929760432136651111728395568314820278523166949256290344120375914704804554065075857541328098082616666997419485636561233230556336988460561149102279133250683067995769752783060133578049375421558340378235644698431409141007036473693696268999849846176236699068614494843252918158818602720275028068988007792590722279547401952767161445256701363194866248797745462845738375807907810262528900555561581882778624082153193433625003997124214866100734707581217180822922279807500764822878537701175919791134687846626545076551753503242058243092091124352983886210088027465917416685280781843602933976148261080768045157655285983164750282716603455904177133149882697972225385703403291438613229851004792180277217377737284273763716232346260950196593951737811282566251371973154370671456139254269625869392374664240796410213301349251652612696360409533446925723467692682577488678001914001634501977966757786282713223608056112085682754439360874416423785573605199164381217186176886966303550477006616112189016548059819104211221645989068951311046070690040350015137041135040837256193825145856195235611077920319459328136617172368191956896660271089645481814875915968656073248544696149361511868525737412201343080724157850064832573816670426620220053778856292834505539046978832913417856357247731382731492825363077068045702124417759198458257429034894785978533340407127429235668794280908594259142268750744266834874571093980943237392108182057420571166056822828444345219485883905044351057669911762484884364445631626956805320017123210770201629957898102414037308233973812977686255166782184878758642243627007137572787236397144225469566582412268022687471573194494124419743120632197698873886799551095145510091705409155376212969512009277134209746121173377397778864082398947387263314211698428164917078816540012383357530251466178824246577879001340520233479437442838237666973301205576665052338089605138053966065653888605310964095370025547426043082418128508872855293917265341005723310895415103587936969203763018185584285766814157244082086227171431527909609936269409211208870293819779650204444288138861961169637178309467623577976823324691274653671502495939969206059839095665170415092231676402819763764690244392212854454256306584969935911604389288796907836447202890114518368934583876556498445048163736731665892866798102607965444338964798692584094933199683886447214189019617450063870046231053010670520595764566959569195523282905519678879019228503029724731467238830474215611025261722493756534429121117663944066896580182443033461566689928175250975047912639340856198149486507747645163168831061998290976185396911636576075944342999125506093941106043940023819633666888744067963462602529192342243431442207742020290790723072277460083384824126612289387836736872028795347156477129847511536805579410981362915990407723858028882797907344469083070271263240439972358698111069173404098049442637782169629215140340450198789706275572764376545603747094599140374512973555302840218669901355602744718676730975504482631807847980234664032697335305083450083242615308550226262425311841264656800441694424922016416129406888328663982186311239689061157962100269676864968791645322691734853721604276633047201906668119130298541967930577321716810651566344163711930131325589833312008133456783887372547168529124205195354678540986029493843840586918731694329611192068829930740893021263821279140658185439479715914845820908965979659457650223177859299858450867364666718321229779045535373062236258692838203229420085644422460459229586083024750904234646069488886268133545322558600611626353817741715674105293870856650807164333241690045951762387902577396212506690877626945676607504572570316471127668627802644672363842726776965871108358293228268345918094975592666243087549605317990648315005051722364460592468608449465221831536461940694620669934196001299153129898183476056345543356774956554138252040453627345417157735879890167248183240576681197642577070222270976973946722139217146947010609266486608297443640122013367784165752890230231060703936248333711551760434501983458882249137723045570853486422168510564237727451788033573620671089347882167903104380980821232942607533621404374161528953753818905176931290575985851409944396464581513840224825938192165391786086529256561171653129798624825178947161485992335590541974149502911717220258730604360534033914026804637021958678585853785847111025997078402905707885215036837321843253484749450063568508606056455651849830265207263691444106203542737539041112323750612161646106384324980635882870734346949154844767385144205930375433399426373449395264303827837363401540151411550695204983110441890982016252212332032440966453118760538532096029302285549723579210895071774026653661180963854404048178151354169775182332859229176778483098798624432550335021408002884290736760978962528488428476131480443866857669452577485218479563476216050879823484896167855168097235214666219263214243256343396019610584359436283277290747224813449483351549235787740597223730031984083293879722354725798478386793618719402471372848765516726257857548202575781088278968597670576451267344317604861885935330187182283336450469815025210186347408609576265155756108632766468679877120540768170703502261187780588735324587817989571180517591422999273398489364147599055147467176810711145638993952266010051126317188931825611196632656427260004496100874086606502803139888673223412794627368671116355779223082516306558785011478253039543673830634373480549803939495590492699646710643422520855860496044744682461979603464082436181657255960754508553762718352129268531723045696590611039284032540820402565421281475652842155609183710090999151311874454868964994705993441212058414525841523860194081816015396214475135488704429516554563149554850231321777278227073510225362421620436899012712853099967539409825407877672779589612765527099004068465717654211646986769870480859880889606057734106279131896586663132612479107330962962278261431113757379297013746814967782910666820731653685023828649700901366052134067614149411381692163996765166588228995185248178429364483479066340263035893672479075691563771840081732742371559688732302540595742446031455340377102814957607791989063821064241854155636549667483632209284298181479211356525132060143754201973006090131915832522009322185396164361463902893186826029403406747364120673422322494180392580566006839025968633063901965849996806154192128671550583480018551313112671138557692480655887711619455569330230962651254135527554605430898277768497454735801372647944976849942025247756754463898054217117374849469567240682342031925967850732577282780149535228397729349048285891668624685227063654219200613776016020592227999209641860634429795577003612608620260236885596546013665414692430284060269894427478155043652823519238883948423144623973822252410833306459943735314619841788949028653560725381291986923622547152927730269177603133037593167987417733507898964467929945700863039798664502368635215650579878288965865594243895253805416495202330863874623035317115775621262461281029923105117012513681256168158843241471239272737827518286837575651933487968601842997662552633593292951615709303313247355076927500747037330643545036116458989048001071462128026072571111573472993163137513017956028224156676235261804233978480536084412996117107444548422215995312388343183159898270542574209779196543919995534039545727100817854000074881423643153444025530550985515966103527839415374318528260258368465843046465225413930581170109094885800235277247165563488192668748873561709932109447948075153234145373210691809676080235079174853663693414989989492626925363841878592035781448641893304549317596199270217146837742387002250455053092437911089035360463621000437651531228840812207007061998825251302156631176549293742451443195924126649786408103203218891199745185186290260766806542243276855512475634961014710761170845646595477335077388572565471169867233254301677364654238200793079343634166989352579093344327012880578042117774020982000089534607933945952644307179327515684027762424901760415941923725380663150172090966480503877150041809458991148116691473674425728567224564870459768834271176726357561138378742903811691974548065495458027535088583866671576934380754389333673023432060203909670966990778510194300587204781054404702110878570866612177190165300759376776922574403269160145469372140680603084258934084806956634093815063790950796691097226593018946974788058722409204430307031041460252057391102732343869677467948878654918427482965156903307286614446650354689132040953817311641313402871553785538927781514165211596255794427620713199985964404342808155918383992818902413650154903728322115425668982989599088586538538330993615132646378451010806114210556622688904371238314732908467981551175971180297367263526529115968322778413787331452452663730753199032138521722671712604805032569911442569684207404504192457517094139686403649467618309742885585649261005780356408568086322600455585621927138737867682120581065115381743807319050528275178089503799470510586590026216168623709156768450409686572408069304700032943587390397701238815913913017606164263000144780216897765966934654768121557918082067447004922328210259855368611214577276834023280140217808048724828692070158152263035136552952104399055909783250858436834844218025627394977354532335979109751612092748800595774271990793868883420543518241511664883551613979847503475679924957352801242469777066144764757221748829327333062437402460247041434068256867964486744024013771930574448955882254880099243469922335732449396455992821166903637009274384147341448757702099329426376062747444808252852417011866023912421058664874991505507866261804617114943335172098263737522865511808984946627048084482456371527644171607866428135386123389667562050834427040439416457953835091152502502103485196428316353865040444380409782814516648440368735544787955946155414712480864437605221609438463912944543910459252962844702346937310689742620808741746340885419632201779899420821781334024499498955722951512898365176906257750461744881939883687779326207372504934625972133899889744879598771926133522038988766768599560420816674893459451941981232651277234844928118328404878525390805088262801111907481747437180213050655801671960153047464897373454283143921729494080525860957651721018889163095956463733794998273473738718193600642052684375748933066932721413327837994453304692510329461856807672592313568466938273120700088601028871271886504911842928696265234272277406432565199554190758893486685283372541024279707262314716768506846393524351171549583938219738742311982550238189092525805066032699963450917497005601027142651239462501305122942738706486230686830019410097399183038854411235007802215535960862450497089927653607788242088500141604789018449674778462569798594736529388741847246157160971253192913201763773298890557759152922966924528290947777281343388616385446932291670384013217766027237446160271582305038196561927150023758183169864939102856497664672185744354067178688393900524776767148438862722440698343052025522114893260960170218737571909990901683811928348534374291536416914152112993729237493063174501724836269194916704063252667164744781906944875870431585373538156329489716322892813847750740357600993310604657915316765722779824472712040920042506671718898185131117476381804275585055447718522416682443407234092652785885718604650563196588863398084554389893209241946115488207550653864432616904625806771652213060672033775680912089417503636876057959552013823328738010544679290151587717617381217812826155944958987437563611977746832587507151322091466924638587120427484256639690336171251589442900879709027316631057022654371262523387795294160782355946587267181220441373117472479159467682853349727747573657377444089753557059232308785934438942048943328106338252122862815803779620716359483043718254785501081695784385021591720543353655751325504781048138111681124748166962284118012270275849332771945214161360693361657092289232790914745039028471864402251601916503970645411532013629343332413794876526482561865323453324954286112605566161008566229758701364243595977068213973702908683685111737165482686779560017508370721810783411355615231206485739276651098836500896478496164455568125907165853841594141488851840224982403290258356512341589784717620614834718532777213017162395845080103040351946940958963180272343975888761159526943048951775194745253998410583820284458945580517076200965515930154015094332981822983328145907367991083195917855987867815778779321183724536021752367487322948751468967968259348940917006522197499160541032345540183371200623623694390964632731082234175798506427413587976538885065151224531394907921881564935805125322155844231021074461351211459045309314098306518745651380484500237530400683820073391117932575922168793133999753326015163721350806484035186382875868644747723786779490898104384260962474361624911324707448402849798914064096256237470808457263192808972053452558952684057059372065592254774942689119209066908997885692730884889002073051024608971008849618827267717890353935987545025373031190814547208862186362056496769912871334996928988297871079540015187186750161356256118226773633168334687234416136534051165848497693862757066652092990934958775260724360831057416949771435912246479722282990917782011647944402696272125183056074600818121215133101385132822439709908153844060740856279978232546396420517807789199729793705588995643028409562588195518868845106023385775882252656604443946568427506291140653156154865706267881741105410139588525619116854263171059394866879458880538309626800732165027253101073537962067153065955402854192739528210401398534089908337080827272200009273471350660560809099816294718102364517111247894848183968817808491450335274139140941533939332099559951427860232405188553474193091274520014834417474045555534200022765849819696461663864455859663678009563165024802719019377798956689973188676317080267884808423817790728739879840539766465744385158160879434826361954826872996751501056955584905952532895513629754671456608210253492558074327507420053890117702447478103292241821078171883807200967553980376394482279543617672259536716557409889708833806329766918606448961216538847715345490116546736976071176882647353199849689318524216643515496918128826640897443706162575724909983050271386043848092731387859708882741095595418930985194361027716289128908422673632772029055786126471206649971253402940508371473078748320792595367547791310805236180935208554418539019146111322214719527583501310348008895938892122519355571565123987493066741657064566364089389744388980409861051210820876878792061503893729305408087712102295914029544678735778912823110378979384202837020512775040403984461461876701788398251690711617836541290371905815918834982430669898926017127118159199173804678703763369183975314910431261093982621030495545288458648122754099676957192932350309664445362138644980512370408874859009388879008578767727596809513069211979547948634064941076170906692246302828590787828798670541268216396974022777918449852497369796221444601630002993821589925030460834560953400170361460940884122770427290264345588286969628797710222926759028076522073838189867751017253586543345988988266233001892055006910338078480417483410457853325107918311601011169508107204529122886810591722062286439124029991353361626121312201078537682935584129814206581729038431172516773242212422132630355334494485269974623796990124424971096425545184315507534990352125290581849054167226923232393164701936479044490233386359152016581684157097112137742113642234587379728518890205368516402626970036235854517756844407098415398352974222807812560209056222368667269953636923268816658188754868065473731519015219293888942656495981752565358196942688046162134872491750994922027765640174346776443449544597181199442820178611889065541754987401566049134077454790315196524843473592192330615048569521508874633350916238943171643982028038705756084425113291110226502642871001658482259432959292020005587841204448635568768045694387502619764616949128213264766685348656100233079885574393285743133563766159445812414982278133684637828893196447718000387892355167276335880545112742246299105214551795373774190669187136306692465940479845211571980287985283356205705605349849251043914430863970407055931727952149248657950184070984852483166955897237487116273989686923072903266155741146226892628959303132130573465444262385865994035610398389377558281947428294216994946915352071686780108778417371992298425818400702059108849597143889929126311355100746066812624491667876824132674690351280625873239660357760129601911368228451815302359868603749183614221717459729967063537241379333596685894757284375777830492256766429618490800324128594246544647956493711010754256241494881005076593518952193172859333618559031923495401387038732479027902140303399594933401096978032411226566486121466060852571417454489721683461878699184520653672883380066363286606069445904016279344016089775558553957712115626369444412621675910909991059197391645859231295713460601325579398039622441147658791009430672555797655496324838989529614189830352129299962876371687227163343095373638295359174359483583437956387904945780427644286965414046578215228210069994099926635125595126955029424156306543370214356988727887755494492663619553379513161059429443451915609079864661109740231290828732106773853492195629418753029578169563704602449987916791436986030748815943716787081042650619933419876873290965217365376479841844382701455120219587998039703055653323280558291848042199156967457850845666202530329735390322606318234967354879466478591209818483788292098118228184275242936799391172226393577602920007718515178899743938793167504965641923787406736967002488280267383396307426767415439508051083960422005542215126676550374171591815803684367006989650352604198331941249611666645535584658980728403442904517346101039677700023815370090790252490690012835730183483446984291515223580547643935436761575726017451831508462198285353547665627870970354930203387236337129781500873775025032078635938285592270094356529417485773739577446313298653025297514820015234473387070274103499293297640590075290804982748910461756008118810015278795754362550317611265885012452125265394728682380799606090345401974111374171660516230395602371312038064450592945194203088152520506851557162178430747340740491487604883104563398407404313817635114894957984993797665526481827741638321134762009722055567366036595299394446155045694592041139525338321550626718188002004029006373098083309251288920899035539554737421829343206120879645492063527562821651530163607634329810742641465199202969451768049030573979344665051227266590561344067049745474672744901863318156511805093829524989544790187026033775714857093731027456992381326124882848491041389702131529829247338009280393420942186016456382769292815797132752664714056256622674814434180087026517583506770630072659074481430293438451839902327761334651148023593172904118910841514124489379895170413089590013109734972814395760274835155061376122430604618476263195824033150936499044533871200801468650470780621328888825969065202087497255936445249516494691224003584259490048668703569067165265797831338065523704709943088567189819277923198544304015576565130183637505503010275577908141625036676345003368783211611245240854875285942108036644748114160909851216274566342686463238063937013068555197948024328076699498351791747882365528895878408434011744026678202261532158496270525795273882392810718364543108993229901208485935392557276710051379655687250532269403720014198632285269046035292842991188955143239665158022494101188963451828889794701694288004016477201993583194790452385167319292456911882837193733408174989865143582788360461925610347567545236800677427885726130733392010225658792441710072140606186166912744651524403210255789075506666097274581783723448436354850296396985636212944210115240465784943971089195486210725388409286778174782095514415420184828343445338979313257366277112543618702932558377039193029487846515924202186157045769528053181168931002192743246809984742765174030264626847806617124204152814586356467216348596927326359620562923779048306825848824424119859638298380658121038652190751233984610742977364707807740818526484721710145979802225102702524090044075230378712669290096416379865220678906528119154411494198229730415980272904062297971767293238981423833886970126529865010748400350594736778322614208304612112328047986249415698034582509721285277195366985094209670674915965090613426673589666157317264791992352168651569445612023263621619644261774803095584527636704981628006896129082874580565409649289687558197916265454948941609418098846119818655484030241358372238513575684209542260779816008773646373242327375045684742758639308579617361066011576177470690395763137377362934374536894950850518548419049914817146061233652470804009849689029685369134501608331848721041211518256054453313728998505010905570361833358891842926657209742975383894184389086022779856127861283662426025641844525605299202965649494222170629002815850513693422770694389680892598999021685998895907064988337760129910998977654264738708358047142444769823954016547419827081591412781313740058074610009337395765908385812483446766177405219433644035118893122992144946832764893077837094645105572507237895341500699113505559540339497123775115578677612264752968219185775007875303308541081093117420136855244150790378072274770869224243269864363313088690852062028704327397805040713465665935589905775228140183309941784474396821482300031576544593748489017526799532668594775815322714340272555944957139372940186855972122288638037471423278097623069817535062758904715579287859917288720543206231905560962771617483024805625483448115108121670599083388477802018953808963488172956767918857031700369059063788001869952316295971339014526460774656720279100286503845703933317822820397795678816104975407685054018891151597998745986024519800622325158322406771689266502839492686230491772367039786226310099634486167313675000459604256317567329180444288705960219395541404655529897736767927291737888757069278608545311193223811522844960864360830018236800386582313069887954486611834690118977037737485968092746454245156633767856514405398597833223151157102511253306315780418652146230801255687855531142994050729340160499048605938353134994889283807280030718864820483219461505505844594768219508582759321787678982042795896779645435774629583013322115457588059822386515090463951480884206045078563462713088349638277130889675673213538301951164113081941113095566607911302252028620748989795153137974141606845468615354333018806544173425590381152011058544538207345526574826213184586625985118803493144299433969400110165709221707542326668283939472259084366021210094188068983449802340930251510221109079791994489352795635781193985359305777549880025786855630740292762508542222090823796019881284735240095542218521515928961064798801738592933418264011382255039475586372061020275157105218194746562363611897152811388273387460834753225766352492182332047639963973402119505377282741871665740220769950808404785985176351739935076197448849955697579563392466574998586587556364450309656454748850302254230517523207172790122506434291941475173874120934420199600236590242065338800016399505562621699504159447003287820337931128871730485940700741425954770759794231794860437102753029199104879160060251681549880841368824436922032359809490188492703286454397182415198567061778993840510194105370931915521285712924472300724757492615416040011433301037577830278452972218207168540609716746843652656161831024156034956446886362556354996515370663056520828842788853600515715286985955264112770033641533446815313473828650310277168483855839681301840798871923366961507558873694061720474347891705170481568699806013360674291127276749920754450665480130127669679497962457778225888724180536435314142684425707774105061132738245496255294890245488545810968871468861906096422495054335189894126074076938609625738851954663470265390358816805975908134029211552932339923919406247386453833075695746567390575698139458564871208724563987965062332370631914085116608112045055471009082320261697594148401578270562829879748111738496474129731971616128039097747552443568087632383366836610291513008099507084313075738249881908166936588398560610023513863932557022105356675991315075667924632383993167267562123949893175437150758454258710194087809983061217831975527709421991552140635861620970935879485170878600262709407249874976704754788896328000817222664744277180389486256764218344524471299584953759821189728534468744622462476075315926155474468279338945272225573436980616685712348194796733388922717591127891246907365723959907562296501749056446890377408040454093735457907546795659692487933495096643797923245905686845984829455372140028423439373136989483635856790034522443541838673879230548674595671439193407933751653285038804396535740571126708186997658407381211391816288637254632603808169910710122826416979224692926576439737360304757946703675384695197741028770597840706600567285578855985012866006245466759205547725281350151238921532820409137911549421538074877913065747332215194167278626266755174985328277848987471772979921233694237513869296088724211184668069790561293863360298699264176781783345650319851919834286198120391625890954052798545050149675361803267610696717213928013614626304147632948428032816132222649819839231861974085375678442160481680880353653078838275343501041439847740134849507029063331849008568787703858095630584998124580437445233013210252767161564353863395248003117705559418397204459177194761854960456408991566574709004790614703706648393614265252631970059307151181462200872639139613127896815466898491986527651418146077552665313650379083953584887581868275825960866244503260855299111553869290808431833123997659193386320513095399229882348408579170670975570309939907173804187054455380383505155882822865268240849225192578920785952202518118110971696546725480727103229121184706118475149644326696317467972518067173814754623873129256879411281253571197689342115369266890173744398112962521660652980537239701201258726838692418504392713593647233397463027981483118252995512491765044792884680497612077878884338851651403871339545285833441766171295022273084849416768265317689474511986853992310618487879929233684861884493605484717238874717127226572078665259244073238782721317664416446519350104279992932930828504974642833281088265827568802618109729177992254028703847837423540725269430807011689926136129699811462080790815383917993529995898039438176315282101260671444970312039326918812134615830382161273414395185857147226897096585039019353247573864712371295564395405104147153591285678711967623089105957627489646773380881937594456072015018061853191224213403008758890578104917118873782296676946679232124839761345491139396379523135366864589248324873174844723838664532402793658574931928328730901228852319717149772604245887446873253064243944410920979176299266857646793972110397347953233623210163075510628712196100132022221174164633307430339784708514365326925480421989403775257924275732652967166988050932814839393005273053672870856326980191600385759109987399121206036244542143903545957715974033442801453743070611575666587443384353385356549814825811033238918533729324597231548662258934317751283619869117182579703697797619563407386035714682125591413010630724062815809564469758854749055149638190581305152875402276991459627894797770439565412983235147122680753561318300151680599526840063747497713676784775793560009416416132029863335208523450533271431801776584469721417391379876269486882929198302304802796456168169583116444790197566358696784953379376844339459790047945454534121703594641185786900270184845374645861443517902913808260888780463188166807177685373291664561526679823509689165282425387095398968009397038015204196284294925445242892244793843699088055548696762512169883198507155547842475118534379994534005873636378662327078570631710787049186647772490611559605419311022613922185052402818977783707419385819263321040895275215188411080062358825974857423077402203638839140250923486105147528082036387644931436405228509723238670535052494256184661031239024634651264864962235690522681402832288041484144989034623636603661401383544338719643384463295638291915735487973571420485514476051304268270707036562398068326238437449756550414213915140799381048061592124277783772998990195224331356202624708234712467054259475116753770910802849210579746498763276624939043344180324894994301359436399302444758971104785913307997930649254513005498763143189855351597532224871657124790462235163936808813883152038858683089858191605879266899416364749047775596943537847176248945142649678514156945474010148935632979718685581331369513583152793131745298716793595902862061599046596866780852222341598996839791364071078162315005549114541312828403663440551421054606397546311607694935020895836296111236200584539289517032476900545804864430804504794649899189249987958976599933888187806980530085203001031162585830822873723951438463219611609492276662179938909287903095196750671055897542711877599681887992277748423514410280188550942743327125150871189813181074000427891041518475742279192097619641605715488322926758971169147706885926683811961821210313253246167538580487754635727107368414283647515796701624418613030485935155877056349049933947302925106855713713760490177513556926348047777313529718719279329297399183625319045501831149022970281463617764141213735677741618104853470279425140329779544841355591079300707255948189637311740733798613193006012141866382884836047166280030802380369481655115503001409197869530330914194406550713365364340211553101068679954681092400852549187250649430718457547318845310624692792779417875572067435788675813025495774568551570016891669958400243339431575236427719128015357880570070182590504254690009059161470865541838603117738192019590644167705338710809384422247029383571022635012272921600685874667790526131585013316855925707434690457488408951785881743081667285346510759381302710742060616950410048895290834782749585490059166826901598443852667914466850258177025519720759096783765636990212011709404301110869926196392948795012723161661980826730431096647766624569009151115983594672552734952861704387681987273685049693206587647492271340627371333665727462794783342103660626911343990769415048458158807355799838419109925175258426709214083632678410834385237495759362341444942692636734716934044939797121150530180017981694820879033018879677657899519545103153190044279214156613447643057064677468774549743035486458726307518713486589658965383744920804661759611599851627994009457150177345467040240475736075572334551165944296995228342094573470792644234670251639814508870113937383916822499309423805385236576309711206295998753194943852902707248993136926604393562829099300109997118726971631810205662304232941553048926588360086743350476410241278305715667973099539666311619941834512691391931233159015395318344604679322117972367622827804723864365099815958228511574309560241811698708391011385096251713774811082378427813526638675046849552756543197809781509878670437363097808730677591341031750793312362052904941030026609363250325869923845392925614223425890211977137583972896709283476089160473862878222201329401933703682175541046852376797240319325823861700536564493471565438804821122380502792867802909204565061659734520828655111037721408294050164957553601262349285934375618943361822065195643150112446152932813402992155479006965568838454643967713029256027046998443376386088081411722192875477610274256577580203062804076113674938210888082324022699354116977629523133718662501526273200391637602598153836064412950000578967675970129555949747803867088605066087146375742367126512330820779255802598247880941539324781777143680250513130057002037326937836147886749824534973810088821867141477099015889228361361797712104841822945588001477429100387942004798303159469167067592351015242198694362976111677877438310622351937530031449538617969242249632096809244251265646889474963864878198750981737245366321528298378877272779587085778661462006151643162070746535402585384042024443887325650493672593980214481193051896254006677250997026051544991613691605651864170988301393673471313595362452167606157746409231823284901323927585669470643600362483412715365815036901140703438506343881704672163908173611264350259141124626159973287819206836482726110648333279909725573685399176919859778836221358943216397764785541372677893921738262751590859945648832088865521599578154301865619279334338603927077565345293997389087645483952018386825695364792118583400074302101385192621861175257205537499463876629077563592392011938212133110785056017978103251066034755187496725337281652007273618732669470728460531202855491773330880911388738309922206410038262022474653047635990496789905605353825680905820261182502816773759324529704979326481075135794054305956318445691302553728249132490224715666299502675186733214032678953871436977319886260150930572208887836976414621755071793594745140386891452835087789552902838513797616791243153909145987090215099625721689419083872556787104067596468098956606570679884148932549582507070110937107379708778309191483754079376105005638002143958195440882721870770732159710033577170197926146820274360976785941720704083450074841232379449955584262848904004231671493473380839681255712881205876284375632667169514273696607924175044687418545168882751444198332122067726070970466637625533665451150200091562865586954043531233109226022251150102658674421167990932039500768771077830817665485009594630212152503265990603669905575492398658721052139288331737851161742795526889693238430705301640277717503742089375433639197038355571030424954294183831206757194980849781788381809848909140183373316617407640941673217338264339831277734373188482900566470232036773285926291398728926810800442614123559995159601299746496516616579711342890252206243678133147679492524106349288518045099041451522092394648208231145488708019547386943927057908950499522771881422594461358715237874226237760636015517799734006571996540258851527757205819787050922822162525608725839234438892008281612488987533685301833682514746800401110340076021615071977421734237573583437943612561408968020442623775686160459423632597379796924537536493028821419441969505810144352686113477574880447748172671997937089483500081851784256225978510308558048097678424373406718890253705758783809966820347041320929884173199837835324981279323417115177013123921024497173882004799127199515559915354600785546647303582910726072823128491745393320777787829444609729999035855855004436258945657030451612673469746313908692125137950610308196580198821002737668800172637691471927578539370043218047555189893153868419115152760641112412845959907670711582651292010784199378282848129474771175269507889264671719831688167470060705583512390690385011619045973893085742540812211573498665802084277895960323145159582586425350975898534846048992783325671167691616193063483819117171520676878238537013680915515290736745710169570966650630372885140513468382417364703527038505861729068868794074681998196069257043708399744844711875199963563840234180167196345230890364444660941733396669256086636422898016642732826297347275947188568040429410539964522785402272844733955052722982459057708595052942752072547584718520354951980944206738703929607882317971745230769295645939312263505253941303152457183303399175563845197046301086684407332773142067217750939625690640137675417047981279460259744564188161115344742592016832338699713409091556962082996154145540278336295617406467893830304008742201343656712598018513707135702792967168581961902725407645741308519010997656397266475114678753784051149337371719026859044474203271333508141155057414395743203791454209770450461885200446775156973400194330508030643744392028392848176378095714031032334059112120114838222224665069131980048668463069264562692988142951712734823836420270335120285014844110155189986754831439189491893180502694844909013547023634152184829165570891039178351617411417941313120494396740490000249907440428044904874047945832131636558923377022427161202706318340327220533816498770359625100483191873272774668912036531767909275872779397521137692632453053777869126174039586095311493763786325188821147952242839690909463710733599575578673194414068999293004529521834675038793837855186578007024056849136722558061798561977473924124882848984374448223837351157632978174935637020721511684683220967449756644341875288975913884379378375218471518365676537215965755810191193693598763979794307624175863386311602702476785399954109275316241620812816635619700115025157165127064031340685193890180763792244200233180342956695085368647056159319096491749446985024661605757277264027967390121360595206063004950777000970484711838220475756171298527257197815262763675780217415963566995642771317029053394949864926739481049875031971516566597005126044577157214825631754829592948697683721293204739887449752191466482752447522156713750393416251374107720960303208224074530770134463808698274524995439671340680053560056712041093602470386178230231526793318001184949597252507811091760517488283975103823904003887287539509996034165928474985419797169696010569929345096705028568848101769189589295362454286368620501727547785554775436205211862200032775568536823556572710860871014145000205907236159844408106532700447250797374886533204969463930601317976025873495814243990708410317319771927665927783091556681966770048787717323286298565566555168283892583035430451718228939155503064075812151504450272777586618320473944368394533752759276566143071577008853935312215320924632019934524527613720005864592649524641618066877724240428726765374786341956248174764291518489455148634812384137296703561361104565609475011555751361785560518257174926573310418556373904739615437648719730815407919975190869168682027908370913646748256553853358396149720907659990337286859381785778123827766587423365200697865853815527447290495158915142623422781795009014626255593427286896130340917526891660909296536228161704480752176702318655150671376576371593172598823620856055104127931874305976937404643934726795792592690922892735148905378412873994520911383562160601789056518060294353280050582288198745127102403522779694745180505027600307227125851983741798219243611878074541241853294325005468249547637942707082422048272048488900660129048033252763810372694377426980441574620812653876962571125447064720652078520223644684924814975004513418221902412683261540934889164396201124200815226772877917627650860749438935342170669782165437265451408934496787403895777616736408358682518506773136416488686688997629341020304022460765216274962888900164854148058554045121701101373203022325136153290852173003642398224745630340895567063641610625987322855278935098698328748524234056652320984392496472810297594824626432975352556971698080351718120437841689094824078775640916552189110499749326478337265139806811997900364710329885611723277352405431826822797684551730673128106197699517431408406699123723043988098291055273329501139180610620889179852278616656848752388323391812876859969606800132118807171320142793988555804417834859712449183241929935212989247359226658517226653674673742920993689692538969507264024065821529038621360901685898170475146196573501286587860422780005767272819465344178128493038413047868090616454769076757683202688586156050671866646360309747086502525149066724260678804233000583938387723022385635349060544403069788761298741343832002370033350695356758265660272855729446079644128131142018675609204116702180145953809672207518064903400669123258649454482583425078447887880147894064194021020897110545651297372009872465408052057512955872136396876612346139682086818843659233687939004661844888423314665763237989828306516218454417911316315947876508162487484969260566487007021631739143319977789484529095044978503331938121205960386066527416864881728634278001010701470356389892770008359453186936229095506193470913296659154108750499737296583402222338427129521944710522382451389360267429564179474938318864784872461395136071470367488062781867087685517530288738247131101194032036043802754582912725846168356956473386239240594373172148486005320091210512385373025464093425332610786391333520835478176441030744968118751344526537172098344503539299664560295179253015564414597202896547542316617334626930973965595129965768177864960227457856624185557331037640614362203842921268205116734025832306923341461587559697239912872014857331126410673342775237103482619516029992856429294978316217361235688240408461650925969569553086608327002257957671695007070596350522783295762630825419806390039941526440735702924477923889932187455156419173591273885052093717482622817334670542383848812998637201003661311511339229199551296922243922256740355935743246767808291500658654567783037135513618514879682670225767222311372378175160840167716873579229259910045458317062036925915506868783321754482213882639728576203322390571897112260792953118064408231152460909502018602398199315079296743952546089283966791621337784114134279487621254424302214465579437203593891569895119566513472372997659101736699578418527707240663471061777459487087697514407602689084575013400426735112133309321062922669143908536259118134262670406972586660366875210808792182570810469199276767851942016412566960296467907270535475549584628960697081484082109499173953705023853034950129548786783814873083638828645360515213128770585131225630975828934020604286319216136343744823528645803329527400342600168539585522426208397432411855136893029603047634335015022641714897789001158829565731937931710886451853253339024261580135703664115937144510561764478023735431130470202788067301076556915556422243005850694232145287730009694365025817453577185312782798762537815910934604881841301000465690345510525200784310546694122483980853749171577464819886238216382023321373071303136405864305695801818667195181761136451747214979085918021142976441880382890897483291447851570457096497907228469985613201419397826655922568510360911559544220140470361630945474675100790728762797252765647383022151759991928511801589625681460896832058083676498405175846230403139846533578315110393700625570729829736541962335314767842574748577753958374800588266706508547835891923018197797869523356418784911166919049836264564059430104575922954682013776687793259573618595424768560820986584847852027950585556706812702124115862296869985758938202794317429259072901908501728570596903309772239621285789580303383468196293625498403451684291818387784307097021691819418843773763092621500185595760168076441576047158688754800564663910645456019794441454330651270324321944596323721601969934423495692050382063329305496127916473716452757800079375184233152952519132779821939107629381740577875970016464761542876687088873290881653751310446900803086089699616929042424402731847078425792588696395127271151506395797801640728799816144833598652240132025976052956595240696769416215673346583819235593219576827121103582139441835778171727553253426832475664101623495508602382933814843977629533288314800007820994244850382147270676497968825718256799383380554815486505716144675097067800927838267468919210382688053550276888662272631039043664582320849400234943572158141717817821291929682072318090977911964286926463934929728664886682886600145407020381718787306940961367960366824151720876631551565737889639740142927938819101989117761194337630972672641795964582925583894999658369230577137915233890075576335184247238764190686997149964715515706363926941921535557853641671534613506064729809210170619287660135473297720722753479124158133865683468755199949138377411587407045086641707430650226876701296061873797365785433556939579294887923223150328686198125113259256283311546213744912992604216632412131661712473202827205013136954995310008987353045643826999687677497865619872608950233143045254880176434140254005483195068681014325827162094491771714516017830589051552378733970936976003249134489349481732963217458824646494790337342015601181321040105409192195521142981429229553474601179758897931800474009258216802478492198245890068008359442026623924212932350593286564961924429679426547986667811637508992391412718018126472195685667391664549247465170605901091963743162333677179075119376777180059681526785068290017584217359383576886753278054721622523380618562661175074168415148874265638119828959539424448790341415127436406039165774487513233311763352175921637140059984374949017952575328500234150217262215040623459726059221102659048014574292639463257662800388683161825227622050146555206665450566661842490368034626457433028446473958062697270862238039200092383966526050040009915934621951056585866655166574669874022276408879004272902596494169975083293359738745824660150024259033911931510993457214279610545315512513043557081299539815792697704817392054360895500319659737862729927540485180837009588293365575716847559749371702701068983135697610424017186764074152949882590529631589866653681073440652653715786035508601603321299852090915533084498500363099655493718792480342022295415113240900338232586693040255218473175270577897290080372815823314191587043406211750173994213606083200197881353201638168830282116797895718261576460463156541093654054021729246401697483996441142720967546380051691591379025884614351935859620044669539230039757323775209522650072741711058528589435298126629535379759711642154845507104464270880440940157890899413463340131598564177724609674365626949339144036457637321714693322240730495654961926735970870650110508735204601208385924631516759536282432963509107354831883728081545596405594214702982652906202380471077848144260777048455946824959415446551817142830066086017376748080391077106846321801785619951697324579140040792232614328486588892752519339503743363299378185588025347216961736595271580656828673153861750331999210074634770277354140589010038674518520451664028396728407116380757777143614237465735247869569968811699570983358953630598717030854094305752926972828946835538789630481072293558210810916212027936907816835767746147579602084606224702337426112658151162352437691590278356676089875807434781565205170105285366048651533088396829382092406659832176749903303156492857074710912291803916699879743331556823387355118446969373529413156935497093460787017433616457696778957289123861525236427866444594694942691388253666402199847295437813624781723648934996678362165049291110812002226384146832537847727885662136998351762112972264484120516989623328651723218484214583072448540360908050744690481528017499055963542500214660976024706665917120379929942182611558867798881026286663623684072641917916458037439754953097781291796184324183406041025529093122239635686994090244084599027708878341939586138999962951940547031556329444783362565088506821960610867539801574290729595978253065474314052996614496678583019858124332836207535732920462240144937476331113006832265712273096492009212936463200954990834924687422758932269933433856821524769394390119011039936849087832294374150776689690384786774354848509042342841950956402370448804425683659173761905898093221915354431337609179213135456247460687979688651187867754285292639469495888842137529134081443155079717114229260895974444986043334010387774621495342373400262199723906401182288078644326620768169326675178087765342435333352537801793430056233597773070845897857835066786931692238575039418591295592049770993117225164045203143909828725879118560830490783044188464553291165284654353596736913234955838309813874536756889625438158233790482008868332320232878902930881425827788637794568087903107980662838052817608809763578027429636242796145783271419320249225403068600647740271650634241677312052790888155635376798300430676680441652916677746585322467677099772698398460178123029700673185900074690927618099100086228350324488968020831879526575386756151013285408262983689056196600584100255771447303519076261037904684798220406635951140659827463373758966341379981876219330189940584900700905572022491729724683507580395586933390274562960160559388624001279903860621961563229535014542318017019007880485983176042121009563139662235970177210626833483887528278449243701063938406816365762876238896645526368408974318006121817332117155229486497889358766358845923556782554865553461647178989577083537340829300423736583188161911848860247464545968080682645434489850625257728317056331034201580850956382928012377179435950658457058471304244501425827596045414931074922223200234633048340351659915003187663770350512649764720159094235600880519169040539959542916931703179408247709698548938685895091830241252104373167943118978194606776699545457424092196413463005165189427993798418320951276881968983400216463619471011087212197044721316607718029087809131127010535722456204888884825887118839680454210501152502487358790922260120816425777093927493844531620964258375996139492228704954139475511173763709520578233061492420982039913688862301553865340037082344445453330415302577077133212837172150962506945358816839247755953752702487852063750839498560860049551072334644624205922323715734129197612552953637561214709912024738850854146024758412620508181572867697258636963203959833541086798768187517372400747368796937995698679734737455146853698498912536039458675609786878568422258518445764664634528198062715025914274474407877328235944391098993985684143694928878267335870508086686707699594560391882957495951814866801963490069085003712839810674725296578271001787682128298931693289889364460590217297281134610979014550312983534248749720412526827288361033508665847195224664350992793395465036364979452069948731661198770197715735696901516390451240646129390203649399209080919824518372927518821815854586169729437369588991579096532811435577823544477654565140756909765528574141481603814204436498293900829280150349593473873789700467618742663395977258693799236282714108086961288588116356011798409217670002136402388521819366281335253280921838677187218070607504473671207260562291589784157321115170810236785637476055250020536861533716780669081155170678995272318172071248487498262897753094106789453471323348031156603028427952829679822274962891487622143041472770824092818135882565784928058642035151575691766196161352119634635219819409577920531465582741719229427091073620431935896966872156574102668313531833752442060444983319144932038716711124321687930800424279384711792614108266984765467320001118843273938812709235564012291820657011569633898057139645083964392954670761259778073408895451299973976371281258866252494955645757363032882901556808881034887504146580034015663299772094241624245502915215058960127050045269628372664903566746821266445475319017976281275397502350838294241718480188315445113447924117586205012719093789588552636908279058188230221276836676958342412832065610087537787942583742716930704022437339971972694836492361887360503876518814303016614500988053303090997455365743535760042308950815748981256609140140016018673941222678204217468556402080190435893026409223619028892429494718138521517029854930882933329222112631766054702609625361075982167448039461166806590603106854107843450733908925924079812038984906672978599016026951977299451327167351391462660486045371284122904069893042606055198797531369474027112429344440690740062094891011041536498372484859161290296267298992266295070572584918848847000952086639131284540264818367656507543384027840825521730810262660073904584375344019442475654103252526372627934936919887451347518927516228486376682505758360925375014998735732673667352260400081165678326834418940973008977489157442997264378594934916752466278507710953830047563293008488123401540070749409131052505549808930505553709667580008247439644407923013275741986497992923891976323761517866145468760778683312048371860010997664941493499300028585571993103367270743648271585081778755555947122492021212291136290357285542605107286043764899170842225694230399381994220628320564815975795961311034527665752946118991158944802599278525572823701845644519620129017992403969335682283032357959710844375989085840336520314466444448048702074252205121985873065463774160661967268865359797787332266395210133087802280941191013808988881309395656779010237347437009031414695482950487630636147826961095434125475544832629288603057952013392142971089976562894581498814717016349315760668491135931227826566551283322850854769141114157830767960456601839788685875813349237538627607661232134542558137429384262742271747746465417206009513332487800951995842060039421848442680206087202878117470737137038548892572127660931071914154243474295993969564419018288782216808306193528253089423076627182923971263039560665852492401404725200720706086008024225585094446908031547119016696237047361646247412600246401354059478223445687185585740120787573695677311315502308858636270870019444437592921707688164704329100219123080851061052542066132321224920176548794616067480752648085726070907797144356721268694297846007874875598990790855587541263888991571423186906536795021010466618840726555178142990046685769792499910677531193277319671530604581285086702077542933956193673835765194323768674731525419312779045208975239834618767969836081072768075282815676117896550027526427076574170614129746973599967394101292344881629663095864769578401020959962557673913804867545481056866790714388536859479737535272273469393396288950533806460648724389723422892472308735553788642693053460924297085246671914237815013353006821260698261305621268874277620547885766297744757203387515016079483547893558778849749882751636064635940079540611108228095764170708491270967721866294764846853129299504301271912947398485868830663379025329695246111057878316006041077399878591385158896412735353134545251755036111103177088790321416044644278361587382629729563545374193216055246887357963420478184297305842535907877220429095467922694790485164457451284622722038098879468872558873682413829910977806050531350123631817601192544790662769585163293347887755492592730620792915506693289092088954235812351825280889567076373004455176694298765419352598018736925070812486359888246105561489636039757843102768691423933473473587899430650603993850609720930843712402118801288060206743462935177834448614702966403915820487373370250475688442569324791585990664940045705953801412866138550388534084510986995252230874267997002020112654834054891507408489018139007422929288972511054436255344086607254786523434067288159778192695120809861384841514727709088275697416043786234028707624249278663424216612742229749458788344557960884340964042238316620076350942053189290178357656414650476052661438142085863705205896309009634015724907941414265597631279659313336275273840125891877701110988077492285559015252957892977783702248487627201232493209099801269194081295166908724188974889472552991628003184154244938332021318328627060092741280787973860327286697818322071582463907327432294469723796407055244361093462589125441501035482644751818215715106709255378367369011399345604127183344117830019224310392404283383392695768815506529477573614453108984738167872536812147820633708699035209674639508537938074310241559127619162068736154242756159884539920063579983541441478199493716553094164647357461164973607697730061396070653548353107522463390515883722223088604376001888661513249310277745353745255535622513523535806646635069128151556986056756279476813434804208583188617877021508883670628631116186379981449073310529851046690226800991785467407914763611663999880869774489336961700457334755545166476353086810410683104118436947167866076056695024279605059404252065008680900159415652609328560728293524054589342501789562194393407271376319831953194295898880963620987830267706774101712561466537665825741986498857122008614078580818373979347800521749135801762484498095758343410636605857490870865877750081547724103201507401568094299588588956768898923430970685025989243282543252532427249011179629461637549509541150496620667811936661332766485475447050168424178780339512681051402166526196723396012937426489518996414839798609357578492965321158153857385998990976180466618091078010093651749954065159956602048243079080397686252359381935134766312304659783373847656513989976064263548713023195201853381516936859012450907098687392547728744053219319185321809132899314859744485466912912593704041552108813805028609036647696911023940108133528308654044207926463738141068431723490562293547354187444929536370476563791140979048981340103811344767029322174636204007145726729734650662390433464105946925595250086674365988269160104444577553605657477395332183785848652117815509894476813158568916137901854236793225204752632546047269036225219639312225095434337257749818967544506879555247887347124868453508764994042352773864256773680254674988258152723055622017556910690927047699737443837264510251013759824765415107097394501093574267810037282172704465257548732959570465920948007456467872530348363983816919741042038014686886491493090005592616080769329231054844986899190045197929705703521791471295565710300540792058353268119015944687931391147886710563058502457261089840694087301105352187358375546931303482200309938646671222582854263179477736746907190705068816311818755838051643660762573963139521481466295234751090835791522646696467228937371772582520483922887528146696829391747085653988985661460819926518003569265571594758511557204615453020779935246706221203768307066962261546605403913744104409308547224637986521544689123741276274387923153587758202180729690533533442884514612555004211017292798739183377207248577059986610856152221258010603125282205059585588095829317860865202391820097573667407137722254872431522862645227679648605464446509461901763229914608500578373406891646068325880234229511082575682888248038710810200249254324207942079420556820905199333621930939254454888249314870120479876674379246594688929722654822106574680319841451548317954170568010212853402368160426997418121305008319261086672991771917424344001476081515264650996701359835543485748875738940135448526453432326192449174603087907644016578291684158168412307606694117513308129112072120627718379330248272713282531895729260521716599938896809336540838752274967111781197322268496000391980463963156217658242670834534842431588457307334025556230161823022889384606855350560452008911177652995688930928145212665436431945544081270567110384012079536609522078238245696237168306707340044663866376976474602437187127573500457970370102660802228265085913548020186045784435194143454333172319011980259800583687584765500927565583894340258178526966822738161601745048540417441632464081897014435542392757822807072420334827052428165344803467492914300522284240109891290867989331288758927184639264246977548298342677915091836811166103294158962003749720445599670833020410196310148037690599151135994819572453807461557482614274418745704917005888946067610170883980967393369875514058201881507123333743443540054442110834724280245434380970809633066205417661126947681263860707410128835697278630822669200728863171896449117471503705142384821567172077701430482486144799089655418489745737296120571156154326403501340247560416593344692253752615579774738313239532465506766861969189619124571872400865288796506564211307956734667023038555927137101683646844355900021580245571254348846783779038059013879239755549832937941405992751151366756721938409650221821868082083353191825936800031616918477727517840267756860223038294632088621338640567897496679531815681630634067145461795469682615259358482460670649166869167411105688302249631053444739332374439051418882206485679070205146191972104252759191823993614023660002662321818252926933695834087880806153110000056044873537151613319727434312929540493943138350996028874727449019455067257612307749232043164183027078189391682976532555947486231024152809858964633167948647505134158316007866541481235021713194999286399347784953574514728348187165259327941829201502512278625398673987246357693949084324507218022669137526992986458799413151728513743504035885116776552634091195573751728267306871982078289151261949606595507822597016699793620701388706616645870515254025651777660171256783782444007015522265954021626154139429947731486518645166195550811782115353609654599656211011852038282872450821347280772955626077710200582860948467342033000503496036411025729089163700004321736451013397557677927817102336730144814007208159700964515456955826339917804950142773956503050056859032945611544956871934197919890451810620267404017258866193970605632321907126187692418407537451054748661761831443733676082615760037995124054977490621419217844910290699343496151346920489572988538008765666941323315953024716580166359080163335133574618934783467354258775166944931174441131013970767024935999630459238192218392491858511433095369239827518815763757919258363282935786604837856074849188184901837453871150636504756411351237438042231507064394939305385505867622374139428947549153086783064306550853410888038802229330937836504102512059187906755401377853134140887894807236137349121764033701007146670187558756255089199628315877284552193879598492827803304172160883401727029974730079101981759349332309536533069729380011719830830110683595820245482354922776297235712272835158907131619641294062404730758018191392874534369080004606085910862039481915680708600678651959786887973326317926502520905263773949608133253956357685482133608029302077184537534973401394158499486719813059459641879114869158413845748231959858431823067867208991763862703813430359567622726924281778560273693256083131808106631112493605447469310190512646182794597994051487075366131000592940014771838018317750843351939108802656775343607511341624260380387465611372386353432055123351586312628154703594918028520822927272166030540559877030367512467713078317521892429284325413971488220885399542530521538461024677849064403071544086036112662945012952157576548064853191740474195881671181359760212478389976973519891091870170277455415161297676803203808450565193893033277276157442963995283832270187041053246003437709181228853585411999641067916634549045159260516940178159091491170323679967143890616743385483758502132500473371674044811928467300539773735789821132288357978826674075011782892624415893948128635118125043756122259530109235185412735475970471705785523204423280837789730821292406014438696222677577269719659178721966416122122762855334345232195228480108956180391071550683255876472851363150335031161565212134879719812882810183239660942487199981574527032739236126678517975957823095286701201744364637357684921245832006100003701273426218915064407070728336328901776634813791323494028833456720569057595832173858016432834380431306436911974044631326591987398671627002542428877705285137622879245735877675691626447668001862164453470592140474237127887186929245207405830678823108895548587746498623754056177227256981120645900724326725173005025417616693662690556893798308637270816255684805836821386975641439058926865213587903206706123057500531783230920885904838353612772352333047765077749390294489381441274792401197797357327059193900716709976029490247917507087439067514406915677804323111772377946305963784355711935097561390273136214315293512720281654316069884222956505554601821465294808219394637805879509416686621372990460852270377160788352917037120058883416126426024109105043334541027537527164637845674256525717430439334995301123827120146454226952104081671758662471689020838708032879796625765468391378177161077231549914622116448596032012602321117715395019055870735321296236559693626403423891532546065590005599815462226003160593798096289394551071883951483928487225804800352623882622626897932337039710367835537933972287961919902998628909702315425265667274594582988203206133425326549913492419896566757482396590966148200789791585022716501068654750094003657304391769329427691516758657582147836071609796604646704015779976699663577748245467051223695411119320147990719240245816044169619626275035131970391597532141348901955727076179889235138268447458912038441435714642617903609024294469910117462553700216655751576610146032633666619697418767565575254734645574528915608788662887257071439882600657751158032167075969634843856728496232487655552788247120417954800985049272213540961374719023443723514694256853058551052250157593211496479503172807754924639471038344258225123787552644611843116939986191514959186174950025712135191448049426583402280297079758255385661224110880430129033490089394922796530156836001345915890335850994434741827920833542144889569764279343778999862851872845850674474517485049257200830037069259893149304304200361461228871079326117694141232878425588655978040892844504569970236954567556767179142500713734468689155543100851047706596842322656612981051169258636066011692509994570945388584128375033568928661259192947409367182404882372672420679850692323166326096471312271823148786727364564456959382357147468896237978769809068097549224193738573660172010828604715924725757353068723569731408529095824310295078706426243585785927375248236661759257049431988152144805818518195494213636288125762641421993350874019270647345280116627851078351352621101417139608872683043192655307784278566323314203166572986916893454754393666091929637497683531236799087595621918238686305012396395592282804998751153369199775523048559273450149901690394927891115457415228168620279894022320537215354648312073819562814744532430475460531244261249760739058392456939844549406418448227705503060965743859041646148400555026472021986607730857272869471926975560089245449972073594981161282809515811321236383032928161501138870095860673512551582625739136592162914342974609170772209842641965260411940184619059995172510026664971392473662370473153292833471124997540999874987922054583326183874353053639198468308857554130708915402023482805306794125661149272689219122983122495562606923917758236390890349029870871057362149242151790865676477536490655923276798338705909622297483209772095734143288666787798923119500613276087923003836632692917829562145041622908705695987725755266532902652634243135045271572233587559409911118243875207855517645733889216093247360849308810461796941441621799339523354916416508464280563792486272976083422569209967417769986396242418893711065277887354381379266681122919368059496917472944474718054751998550548174485074916848425111446794592362945257004570223960212464302967034898235560594851663717947982445929472055555901501848244563798551893793622597696121775269677816994540710050917454949071707284369266571188152356542896911391278184025971654285575415875418917704735236926660698971015385355595569244720187842926678399670036868346834105293155725916841940224308734325284022313731671630637896573779576038795869305913884107396751429084184285205595879723780240817568962847065555938552076449541712617781915401461031508253425578758956425860407969327138847342575424259930734541790014900348000877930488336184855669944644396583800117082823663641848698531666876801989965822118157821258069692064590212287523267668243991661823683052301364572063115541746520616362151453996660359199569630721971124150587659582747464426516512247903781590813335133992161184275094197362815356706772265835142411089946947751681020336757959149993966844002449861486395676078314381060678927887767577360211100170772586056608436847818866925110885043294590959142360823932752348102971382678376469641682066645263192814660078099355068479820276268214210568559477996791568872071595966927077796234845712834056561135783140985348562029633647335345117424281813832978479205302283625572401610517764870176205951620054647321053323465285933387225765423800984055826715080291055418536375051059210077745002211536926282160795586958398609670225244669084216231153487291382464211589164102121908941012072527185074341121376758674412708410161401426851441668342444219367395495499827133379392306151516208077726853742437788298671606635170537947333565028255927040826178428216901306314444617164477058021648798009244840400028660693243895742549110681649811790451325224366822343734809287379302886654535677719655546288460428887251652351847531340292523791503023064393808332701832417556248336695677810829557983477372238102755924241248594989300981985437713685239356309723700412270949323351599527302066801608716865249120453020448793194327213577758571711476357827381388478642608321515211754144272311105877733258592271621749501478700915274876880191245714806481848390794111475032230260362518911946319458329378104131047874545847982615240866144484249111658806104879313495385999668670839180883132601775962501801704653170852510056379052027974024343664582380034510301268185317889266226702333086368275132420546891315622686353526242623014809980897014536170739080355174583584212860135799924683273991901332398355256454258316363191581913503287146498007712653274216492937894691225369818793372524993507860169440630661112925769314344999449206676139601072142643484939804831693188139490154035924043472844253757160872638122323137271099425005847499951381001168561015394194860116060683981869984909192519712511092588747890830303265644181221765014638984322666805404692841902387428921897988249247974193908425542037532898604080840780079689096956112678972908717181733592684086087956627907619693423006805749225123334741838389739647626276287126937849597509377622448997728329330110940263348280916280265932754851990560170554652944603091648623568823667958558734282520637334101992518216343855328582401026605870621988210103465683918254366486937700341983059325892196574573765227032568293673370830312499791957081473237276500143647491997427470649832235175286523022718317249765422415850600453305542207165608187032652490438619185196648268480247005324365684123637007968351026973301558959483867952627204398798231802621096825418622322263783945432828085241995244606699496522787675711315462620983113638636210531147901394097042455719756426186826559331216048926288410001921023833183914058373785906259919852196102605804264534848274626951331413794747945887850418485796418680271328575908932914234654093124474088459670183485873032821284878441641953465649912376669562869753268454243694509340615207461291680977309255205870590261822233186436145302419670218970891167634913182166885901962096468582165859970547523081652746511647154611979940747910087485021171503286315717047418244709374800406045283647472785505382634005195234974904622924116563120439638456451781939075856237632977194524009019157760616902885065360451640795494585541181681809592649298726404956490805879520277620244182953177352853629413980344252040386420712769249840586748250864462706894332450315728633169466862954859992875341452744544741505823822496906424099929844948083573869400107183612620763406076570428578488946337212083074055343109632437766975327875273435068797862303283859177541834050533990160125575928520335221118821516555185138911913051246164666005810214599625710805791318163823140657073648057329489993132427020410198580893883269157592223696184158931550279658209444223069797313093125021638194498615197062740169498734579812674653026688167355710260156314286423182141450129582198635651122960970868404485320511441532329872155656300041373859609881079390024423778233815634968300002852189518890987784718739005229172334627699129363168603686486159982636188029319046186562097197888246445110944996691797065745614957599401485988478383242171207633266722622924581278065884752066137068516697484337652170876563453268919674601352233500727766943430448181247793813820828880930467989448519962113106275441697471668575307065703588162635893466319733780490672628495243177426628563091063857115097284318094818056015335805606233266845191856850952189222668228110348493584467968913278222827629064496172881875607036904267768030961917541375557477546845969889594659148969763688732703146241678317898296754734560100063010152488935196277718924200087332190799313786330417905165812524867067713006720728170026997461093147095818008868437424877997060783717062694206896590721643762438260628996782586465263470028095848976842440817153377749641361229719412888264555021890887887934689298832671836182802321392812276849291408470130785172395572416430751213192910719554093139709120860368958879255266447196962748133495314914731523846423451880992019443090086582622926710509343751511739336618485329171218228815625731777125927769591668348166987683325591342213361504428125587077555212189642221168372935800815767013755388762276936526601570042243748936556780435348515512100943238804748217376755482564716081655218398470991489769826784141243237193113576416688075670020395680872007941044280870066660582095047828622154772681482461575419363478274088788355766371379080618699840399658124082681851011241634690598167347089382949118000678598438450124422011458061336087091429703037059942723098791485802929794766160298404704888451844917136577713972342598161001328941497826244392915936372801944454104226601981439140302777445599937311439708606383406968806210060906411183992080450886823541782843410801259424106383925522266538467932130256309376501581887187360253540399185357000420895684126198536387669947214324724459931374979676724936999654106879082648933665612304533365554690089281933285171785638086539120093086200568791842959954880756679269730079825807627611337012485076604281205923095245820487390183688278057637425357720348525853593480565017053552434453988090535548679801424344081716401683056032942321812825950417605179905777244613190491056456314119936048312170648127256956624075813935005550625574447086607776675747310529137904822227907837888496704907813614766069717483907714919318708662854330053016995354254105741783301303619983339463546493632057173722384527882647221152629867363291020131311179994229259880226192278402645869739605977366024950670813905556147654233963960205081228681253413237601851134273773764458066024084587385640810213172073269215029305013290375420838144175191197727588255267268370783117836359792989846794550899825793416232514750798447058459553549955754469162093345014778769229015105698075305154928438989850582322941587054991292738444663758201546590590703007689544034451612263717085507606222480503821028955268602356966512766219445306756946246063716382183316980439455998171771421414342953194896349804915033488556333084030401747379153383435797590611778882465593271730475173074702452659354509760288027330393193205992114133666984702215712870142761266514551139051019837479616489900390653252780762566864499771727296256406139367602514603771910395907349280903456447813123824307883228843447692113950360930220490095252351810597430217411894767053284406429360536644529234906334991942959864560835044826057945031741389704502090086255371668119981065407439833843804217169504660020977718973127342207303101747074087133514403492817609073568196784278993345234338149912229394698018278292825536735914373291049253210178331167515496775722808821773939928025085739410821276545499581584242528305083504511547530893456793197950656705078419277709829069655541803749296916172799642243029457692339813268006467337948832331694297612982862955548369034536880592446434412566562394813675555692098037925865804162120452614541481394728418117980988274264331349424490652643670697715214240164374971133597769632834466240169514795520468709970795984040329823360879868864782594497532954726326983288381413514578661827011954775915105148627892870561088565260205898390764657826854640859638549528914053458582765934280756663469641114878573252037406392780648302830467770998357140328685805450746342648923920441230313627511186521817241068645933624909093954397332770952200666738290138628881183370141724931956052372201078788634892183578629108574847529578193190750794778383093537639429282758672808341232530263945864294154997799720148465297079787433663270339462868423943103993027453581783517600572619464562076021410095076454046423735244952354171428933563807666482109316255991287811373057938254014116115106265710191942884389135057219892155540102907359730307849193625884622497486008299343899001991044646945892031967954208856642263716906189316910129579526195910151756206411257448863485503701692978481957760520894304187203421489394793304639493661722807045621776328633021855969267214862385742463627251059316015170520036640712871919017070503250040545413821371026856971921017808072132742915699548467214480310548607064042648393095069979455404492383399808357217348852078426017301085357129242799830406847846322089976666179092699620729733647609097903775192302555088886834043826030462906461599392154645474418409308270479146594081720157051338173318825093759846552336587664729354881739002409279037537432068470419552956957340835973698878580941175338788138513872219493135797099319967922868826845487245423541079598237892410029512762385232112865693987528429959454681580457308135299940778559292256122571463782790281457430970494190061634962681429347917136516582757982712800489742880673354072505698052414808501219075239115223327861589491544367619442126896013617370421059040802373148415106332097790169499983470631734557849376870185277293792555555373056348523372176398128585384065708358051252347491450042914406446409703696621491200409717443758392578945905979343170292536722711905825230785583533025560059314255378322126518597342826040042675686310912407445989453303787212431759253508345890330069224483723466242394078846330283726586606542766383173334536549909056858895194045776614625229195229190169124135716368068589660630597518111256321243303276363235495379696084346535048808267550227392179482995683693518427113565780472776950852533812026771541031413256739535654398373994257116045529954865603928825158011428853501291393350256612014846866746607171754939625270939141709386698045546924113690783531375130650649730986130820238885763263355458252044098194267911311172439830264041576122873434088288126788515156377620434075499265005226308048108501578032446085306397002950783492621983116681165935091369176500912651217162789245885926570441302464480622706989015565145441564376861641504225887657381745312878057258761607295834203601521364573662836081771485671900545228654667235527306626654932019648057038372694070947939293531423545355732031441584752906987472531749660677718232684251332705313208787432816022020746090560869462475327253403274619014705949397058121044704661482553124829690562793851415004576733144254047167364451566865779740310831320713176430785334709512010647944177187530581930508268364338328440542024092293391193454647182851303931944837811910242299068696719866659953468173201196649086662671905403383702902379007315607971047264794811262633694871440175175239310957088576272501345840429419516170230148684894392047529394206407678600625078273369107275497094820601672639353695222782982770985093282041913253998647788959567225097804351356324215348700915739117486210546918030503504619548934968967561276446085067048186127390396844385647659730482968053256208808264778788131744140831877326271162878555455933001177322231152602696795531561608070328067615599259652375583835155688471503201749080440739194107683606088420660713305906668550647225290793967458005707559037639470053643711518486916054760314084505977868077296146602371902993314682696169808152183065330685509196387517801134331628247847516195466374464108588513838162978723007613415229423920247724087514877416502569361531028867409236164986072051808784575964493285378690375097264290699207149061785867562088996910328439792431630791086480224422993936261824807820557258717778110258786972795791417867017189908877337758524731021781718227752347466412117790260738239388697452423037378440136507078103547982900688560823047156391349770549891162738774328304217873250331225178930514945514281351567455497278406216489885092621238101203920872361304290945971796793775556904013197128410875638845854193016011784781239375133855325105350899123828895112916689438084760919869960216693168699354098820801697364711618954710812470624075836163101545729577598578820375763954387423599991071598146721655896152836657377090724654627020430669106046794248416198213314594507671878541774485749952794523241744051056136231463801021611275439599346477364173362397423195939534663221982521970261794664292060313941941884876015942008584250877229998911290745884739858836231474686872519435237113494015188024429904249966098797397631711661177077865199984142695876357631403390221829179287363718966176905783504329083432895395298178916356415458881967126331839172216542516968883057236328040839594108805029465064705355257353302681983070266035077018916997999794214730606607812595280921059661266360002152680029400414515721153960354668198711138820232068359202726389322607221820311329334977385529623657835899110787795050401475990399637181050109759954882133259385609752955013920501463998322108720810390101114123875710931074996887688173335519460008271962854796061505798310865522124027075524955107773560403973854560102874538607173570836903995425587774084904732069665047231813196930370929589207239609793630454148116946182878896440402569706971948363005158971745771275654842200141765436172147840958622315175834167301615973425291836365986303525809283827599037810942155482823313859424720923198602557989317114325675387649423828431335959438918747174771122494511301031135029353773789304472415241598439077125310025174437980062643799546288047427691703145234887136612090151834361649256221435626762346616157591752779268630857286133778066698053262878963204972574996259425025689110949640962095569584091300226617136042124477563015783696212242824537529874034327272958886654785096825897097258725684713065891618180499886174760545174683688222276778459586252499769473696606783073221306786708325226289007740682226070096632819584135623657408846944088769489770382678917087418327339478480874470869437536176419740520024396667007079514399234929691464896707865942644862513529434009230738274272847335074226018548660790428249560420502803499459037748400603288728313570045305109734394483752127191302705158694946852478327356706757085882363296775813697484349086031038563628471484088764441761772878241675020579424688850706800795819532864363321620167377758864797982816458331650007803317561361230470726308703551109181541922844360290077568167504839871678085518107746084320242741339250800270677208212498808245230406792562154806777435488035890735899563912119629186621441278285073933765665582684617822839139035863280070770237391508294696324426132789902789959453094154867585545061933326459530235460647793433674381121780172227663000983622977150217583736301195503227209293527907966131730554517697607032726979960228456983333914315457335609559159853723899197086487585974497936382024257769153776812105437597440761176147635272772206465649350133381016921265924084011188186704043405099642438748385273928337030542639705541191332124998959546323442780766677936728674912743620765396827016694070659026855122370449637868535701986830334072601106512027228150163869549266522315603278766060269597144293372508254891314451889773020849931303477693293157471708405205244099494105840565520251392250584435250115249160890290312752583106198700687831745435076722822234237808266105261598165151304349388150544935971122044826917486121358071210114287286996128707270527643273955099193449347087563757340690853038691666021447536892878855619908199047114710048066654286424419542514838569663666127408541057703337282494056078021223726026622018019447643788395531095462295055809821387687066322109060202104751919931506549088515001642770139042217722875367184169695544342842447639031953261951990860665765188730148417963909350860862127632830027276123629198041704905477823704898263740662649299247440103381252361759447629141952091090387939244672044069520578733201692971930305133884280571703296729054545568223297751097211265850360362346129694658967579483840163862595068904888888927682393741320883069740145762675664519818541756040727167983582691908781606056323829130865602467039589800627538879780331407778290714811000328204217823805888405481667903288154621101880678974339404523117965518764163553523457477573279284614714657202034464991925534015365599888476406090302808183765636381144847171084042310814092383127073888156126097493250024882329900422682856085548484649870008874670366789113974303569841248364641252166413042900573651939152253299264770912951348692357670906059825565671234562660908626602511944387163234777480903638007912208571629956121738727910124253351587541154857760862027892489987695128583390424527284235263521312263843121185694260645745916024550219522303957926817310744463562649336925916590128628549887951448164138111317757031973247558056504391113222856940857647636619007982019460140708828485936559875838009618051704054848377633871117056602050527291105452479656842230047304843748257663701140852501623233291572067536744671448268410535954783362981291184368564376907233443884589078942283529436644248070433184019718783849279769939112126646289349103547580958281871427184429794608884980764995228811283848189870530598306697733794761620425120644647413659991336548601669963177449983959200413156070341236631724777466177850168335781783515914081077308766949590531245329757966212960362561614623226330574842122349075990096846613189073431123201105213679655606314121858268732213147804661435178872800349113643375029838476048634296398544137986594867608632646544110823160788512661864474169183792038947406355911149741252397278489999845514333791867119296588679225016602790859183436289667823711466488030613690811567675945930469068552274255578514518491614624155979253375875392013662768546301473084218193218692859105516509458437717705149361971336933163542197392145501163131121033917047715682693192252938839616300915666233387762835723115093467290689357059266814440698822649344906359086401373057121795225108258681297262123466798975416100252427964110182371052397747488694747065740615065558055874065273220026709363906898724747482567522276849372195038841642853536185618074173146877909639157060976260328951983418750814525616634837455124133825275361974352362299124640478135532442632380293043347470792289731096591666202238467829605712474077070867213930696041071057596010810286344446341068264993018025909810587134316289493473270930687694106157757113691022648459093570156496003117893055595041852016750003683415139190466004335333400021897832227599641033853832752967108954407125750816610872593066675150705928543739759136003326261819342677836874247988063618815675546281485946399940412389415557768186709237225049566935348772597747180140920716312908956993434286749601298127826721567158949069370904605270517871780797226051464629995298986518575595755762333988017047910310176988392788575337659221341564394803340493664372554858536432922136685476846746392706729797884619836634459029762775050155410633245986743173017416503065362968731455937478342732913885028918810653804007513192114354632697886724958524730104567518929753762082828576199589848892058429820819308949577591217527000449795203686527038129926680292614473192854063702718046239456329214391916802931512439172432612372927983609368767296396245714427143056419807911033947573333409344910791252336452658936603526131960947244672692465170594848839418219424519978126559524008099402702748438397804551779720006877920291549154711523103225099067439888123939193004173930736274366487962062778187507081956358479776659173605274783391955209364754774729611919775682413765547377129788807818174279301279175942345341132768402735945284387652483789100284314738965279086198415427920590461171356651841937100178801233748843028489185104867408444574267624367207598501570522715483097764968585929208670027903874986193882526220180782019242048038583802924483176534692700168004033919790491484135871005337401548576990919297993973800978139909179668078577742140516514770455163818921848837981750097300804314638807960837990895791827577392503425641066725291314689189612725668046977050323428100272992933171069398962251193498784041517525283286351425635675496923661517739611854527590376254401633025019378449438999760927393791062894978782307319158874715120094374212903442168923146730977773493643868277880763623554714694319593934081384841975230012214810859678151883585586549659796128698429094037628702927844078786839769632109169058901522302283625677862007499332608517229066464858388174421641135778486727742228104954412907986547482272133019734134583695624201015773153462154790252249717961545447274200998400560054673151718773462623454542303631371560534644199070899443826354084273853571414836194951762877535857609507879298276211995620599692360847659724657243536092544146702146489566535296785172983637015136354636074825033848077188768408945505971064471921446724609024895357732611170494926231811016839539713197105947258562068009575536665418376570490567801195819791354319208125369609478062713094094307758782265077318374828377348135248730541529062938111499464433996989158530075524574669633118890694071257242088934095617849185772362821989012670850487995133720884467299082565364239265424923364060771339882743816523567136452260119335748470314635085187990684725595638247622006999993259540444435479791966916557448624920186744522020236529592600561263666448945943205227039582118585501692134999214701286268467869231241357154108641288341437482286470716211981127339904975828647462859636764180237437633510499204335742925158319611246236954309698075903798994854236094054022791318073804907786614302853727238820638159288928383162624727737428978054936396080347079371729239372777631559026824317807684141333424671684082803680125290778308601608535614366580656660368619082094286341200047951749643464997194647462234218465602001299977895978283367156249195146913402621778767756989672564311453277230771591044766783519478464654819676529090463877794771855970041017803017771790943777022340885236033610870782623219796669972111987200858551459052444959187946772053139525464421722307045981439272245729621385405185591862270594555491765784007585054033809762704999621023165794011358691226895619618867709285911717814938037723357556769546290475815605570661454842774262874636567571437825759519869474276413183289220177388029252450104910024258398151488601982786533911910321005292826746272097354408683302298131376205869090719473388734479191445156390390420831319481714885588547356979581939082192793578469329121121856202127154890485367423893809547571182127978634659231395881820228027467171967451821368327684696484895807992951463045818839476296964840514527916398042170726178860114436288062786921387702324379950399072645813415446898052436967785372652696925525436226481095066896855359242926458594415792782934800904263816047509997708905985269392076407376040418607173404411033634349308574797158132530149238625079557537459486172950742728434388660915231015228449856680322715877875863425105349567674440206982225926282397354185714981759439008932158673789004225506632533627672726162686936729736686526517810705057117410285310130628281103351110259808759863802865809420574863046741188469378148162674256237921177065796141095132887415941964762148830067757070128046761265362853315915535539378102992095899805430387659673752936516627413980410074801107632664277772334218141454155535427642721423540294263868667345179795715545102244345591985359613973770537600558274457233253510669775923123138104478440198689370446191511831076471314801045428797542655174749840249540034848636738384852292593336933422075683296533733716856893870646667863069412455100805084343047993467201776702793070772131560940475820904903613714555272079169846050862826995827652811102275625209978685852294294205770412900995203761577154905123456708510498708328665285390209834793203198477177340561753950968962807798838602982122289857643058538184736372066068116540325517069088426524498944062530290456509179285731998542641720492431598171906980445240340048727950035435205444215879891844053101305423430886132241270821179195434347075595072669200891973989404842817184796741063866017870027572797717427386850802723445594050717699682276734697310728754936655972998734854922274608039042358563734195420239220953178329810201584969653970550470424815527162861531895227996834138831276672890551656828112324889922966915664388533901400171999036016390082800761930389520963295674128870787235213786434928828788637336243690721294465419493671829984674201822477620658085223126712615558782569299501442322046273442518861144017063993883757987827273369229070301569272708897855724167869714495614390894246452442914973529167633531945319006711061203828040837833301629132469446341695155785922320048827990013696735161667849607387444008684977317845901775638229629954161352552635224299822991864620050841008769024879906137940775045549888911012313771245826436469015171597489606939687609919231418477341776463986348943947794725803973358833947346685518903788802872764456088161438722801382129360167872597752089801178052566254230908120025102417880189060017394816693224207608784860101763805849472972818003251652879886426169076515899452620862204968974818620061106917035227790468779245938359211031548490475653060981972688487227295494031162589831560859313775483399256473082455048506933473254012473658010963791544385552001116984915264923327027380229563432919435102601620347739942144542248129504262007606517992796502599044218511018124111163350077157166244449515836450569576991904976314486553976468019684867686875084856984871165145395993728569705336894036201373252596972778215823899469361391177910815473401799705156564802905033943325986983456658919017004426042336437750385548400213674991456830572319785394505205297002785871153649760204359029206684610754318463413476177893135465204828563605464600197299459448373020312645378089758223142152130418590052417746716753527829463981512619360960711099643583443313047486174171973970754501762257524080136687099810943657252165208808053356199201307542987190620675174148993442447464372089833985566416750129964353671769211939325924509519189061162679973468578354517316926822975659505856071637471955412354321387277380868875231965071109978515751848809430179231934804682625092216377344592839342776140161765711921564448250401485389327554436615091194331375023543353879310561646619396569208985034909893133048934541962613678066307032468674993809382788842211058274663523095298005554117458336744200041563451883629713201117930098738042691225731282724767427773153796597043291943746194776417203563877025017448234664829324091158080730105293870595382663588822177564001132849383915485880580879332607044502789927350494055586541635239626889664813347193369313165401559486147009466203940279874836733572167251461302681203946345884146491896796848539032612017643173323406305899912372059983529271745361902588807405405786094155737310450419673571360431014085569030741685098076005676111595628574049666351413120188106161465241295231853826079705309142078298948656497081195833407320656266363973504084098030486535787373990561456681301005308937369983233669550440507940996556486165567950863175296075869157875136753157389680161578303510327793339609444668374636301872019399154283871844236141838064559510413565728928136633772877456102524093965422071677161060399914434001318410039278083826339955845507998612072500074005961741052108979625186361014822391340485661280880136617716201780776316532660379222063040710502198951660496126922939632316230935139280358577735629225987734201351474430854338877454835905164227411298537500936975747969974571916592917137180000304245194759319109643504810883105691355510940671292656173087351827275478189383190069156550562613902342293363406843139743591727467356225387418747448093562945379487697306413476808986764195426751903297483978539785698002187351523632273966065590147949874810059835130748004753722582382255545281366604668091764378441316408252722745069953831509997052913943488378081231606555647706092106726203761541722059007778119747681575144742582997365590714212347400897828079497116812419724310438620026553417294066018507149874877182640174719368154914336251173374755285823128152063654643644863767845178352146771277131071715860463032931740549809119522674426198178774507397854293614994435116074457251076868262048824870825083674408975233597897243141756354818175807884729802309093547159772976229568719267806660410113224010340871318838869300402395013521140382068079855978417668825624058661563771956181121046731190974970596424234230853680245631466707906997694290727749866765928566210124037946434688503158625772825696737798946959953304214147833228910708220431436228112757913704925998939419994444365489564471937747028414599839305627178319515876001974021297622909380201672092429699913749206364389089954570804050634515776382965557022917973597174960216292997478492695751146659526578859305819238922865540107028514656422477477144212412865022791297985100714136400039017882411697369607592583253438037107318652939280040007584925271208679448306024096608927087456294337461275658896172859784522994845815606121551836434208344777458162157517241869110552095270423402388427794532617249061153665973176789942978412782025434505486582009392541693726207035216262388309906695230673201286819748283292052791960038599430341098958840710616124116002643064406336526334261596344239941452576920352148324760148517832401594217223832064249503506188223241147889491227774018578822691568334048834737452390111538465942693975406293494822895071125441135670737678312309149931643260285648136029262891397630277238643701295818728160190668071288140305422028497063763390571446128529988487061777501193288203176537140290995570748917869622055182590344811991353507987096717040823695575664340924628509669778542757435539118311590412076680516447766900458532439714750198226818103459786933266739828745720549412257064368649993788409063087534807778090396703512797802959473533100394474267759522604973683973335616560735257484497606172358519602473075554512247640702942904587648758349846873694551862064950862827590536837273847666734137008307824357622147933212037494788008428935227590911762578278562432072854174515977685678201807427226348437184913683322219107548254125271609659833397775211311792533935910325002874017196320831615743956178784937731150442854269591572238543611149978150165643042759433591244062353329064145038492534201092169522939467636794008463286263444351425544743874670911361276845185013506155974262021122356850892891282249034815018090418040480942370360770323767575641040906021025614026250676445283005942742423739004777139912324894418232489223114843793645205370106757479097994160757645756788961596063329212704862896657396837217962275128809034225253186141317113406638389536069582496413104498773097491284426036225327079227051778926358835623982083178980389067097225306774094761622199838160532083366714811617241506929004044092143212519821907091616568634988573030305533464826406930764328672034386254130389108914686197101607457671329356599979259031969747655905992962250877122959164726894101060294818698352817115770512355119479333676686560958679473400826947380622845555938366298887553027159594041195001193681138894846818028924543394631181164545266019965033525724037398129103214727404388264479068274469880999263594363065995769271361535471614492416296823986737692342747393042180313106118121789733005538704890326559879605983329675462015679215617522668895930643475396146144361549399721343893434717893205271862637625513129675673909482120456788783548207043071789232423819406298412549520233810012171538112354051663587310243367731608464929259207835284582074989480183961457547354059761816947700108695037769234350476839360676220996468944577683095883549711160453858791174511387521668175590355533943511603080512578899015274663736440815705245527465220224831224378361652013934011794432573041247359662315076509337015693661449587562127913018332487962832409514489615783320900271874286667510848658311522225616578513276679109985595977682358420894808733884466378663819330975110828774679968050178128678114028483936633800600962774603313407184661668272805594331710070171724177638970913376869784176266482179031033424502982325651539399124176685188104778223843904272480240479146207304512744129454685714180383873830287208135545061298133238003659516873325681064987189056237327169643554607759116209571570186013195506156321553674532252201535513223049648878400583082280551195931474401005606725538256143891509461390116365931352896742165803167816861062832475951794756914892838051546535463411052696122029826978665063085239306825046415054327978679999777599376888481820436754357280229120076746334376377891490397892736866980538211740317015025140018441230846608407927429715371484717021179726945129895063992794949016192967177351590055602782780252562193778095604873212463084873171958437817644026737228294678292326091660360422969832551227541840199233406160228685796193323560037565328355362844012919998874640917040556127891379662863533291296911707855201706465437959025928499991249866378070879375338866527914155352278077880836020873425665062319735992757324510720380691434824819417974656482439238788939960516808177151136794162405786710234987119835845638259076955948884827524174978671930355845065067440777164452683879178366533305061771698417224142769224251308196985495371223037183923071554485786493735328011352488092212615297791509532164535861173223156489695772264425660724682698813430568174636037208642117490090741111078422040976012117978510303443170026475334965370085871624169074742464915270670117076547844884519256272323451524143276513794834041701697054529855979551495920933288834702031711093390945126994509358573202882270919877616718144217079089700781551558227440061325921708780081853020554014610343791934946431863533162685810087901923867505749510477197882320923460307002443621744914310652000863260289497963979939633163918963818685933508124592230561157528172108429607463189285017886138148986663239640434234957113913879813393121519140248698995073176690318468158043561254997233831729525700827421239530485938680647166191763675060367600941536868725181121956669101214107450114840337393197246534042471463099202703817525538984076978900829439861298413314405249354976262044751893326063426245643505512791680791241995503455760930372653086155266999757492609691140292577885036280353211213764786209836043609050809389868115574081753205407810376512127937992518467818784671976784356312562553284370772650993506843123209238822924212901499977590167116909778642212960876853485620844564788393448995075878528680813833621339705481727826927807580700642064097501912429927047893449101869816787690028338158397915142025640596508710324047637507558716584059117670933475017185364214351460704231566063400901609302854930834872031530144116045065789054716023357167367858675010128885742451479009387865583681021053390205678092897596439604527916622846456350115551942234146110066155463290497817585247242112703219430541370420407536939223597640531295268679997401581094154755121598541538721968100695056983369779511132859767244896073148181352158785128857660102896524282421697357842808040660393205689514060681896970898294658781259073583805596111781180604894917337491217179570848845023539238782654889990581414900345968622179607221999773489946702517820919465223453383034285278165763286797957584111685814879521651508029841352637539047944375399979102997540266355759559463657536133319579131069059691828404702636721308835849667802586192642542486137208660876451368093046875294622170848651279078177256165302821104204965888663392369837397735698421323551970425427181503240694902742561406436966952473449230014726552752999119954824014966224475833943500711459831649493800153337607147715035343325084913651902808398520314279585439174957702440602493464331155135153956445984726097917485125519699668368586500961886413635516961986495421961697714071750872653998003079721689170507056740961746802002493464711903623011218645617293400950002754264645034294777560026549008171914755366084733542260474576348266419224095600723955545429972375160369433594331471908721039334735751445145103964260830593835526762618523587656623507292267967897716987368415222856457812383905633130947850305797126229420697619015831162586815331701995394029540130693257753766193326849472293558330381710185948799535883552599199231724599798147176601511822360451177877588079649503399851052065141015862512318914745699391849892819145028659198054667354556324257599666296982568397255330440934549677506055077999931354695892001124197652463005814182226494330569046638831297249381259789342245867411872256243693379340415837004052198178728593760697170126970097626118505600643318919361899296930777967994371202562132353601997312674104690306458084509711724919633444122588520587403579100348009412545378785527014932257186782442313668103077819695780782761114192621900205182498374028767342898217935034456235522785019373539449927094521380076289449456485495083435409772114746398767299190403148247391531111954662178563657389153637588360438942754922862878875788059464536386055261207513643082688254756337385314588349834487601878552959411708960631151397176186136784757399003197893370858075102852828421430553165250058564227078135850301291722432529222340477027635489523503858500808358850537027567043023102489879061527200991623716909365746959347751826236469266720949523665369615158821134318257305703440938852107107857466924168356577603963401262955125152864705448000939336984983433539077929707983446752358392223309858654074429809976026161745365190658731695312017243977745550954958158305811436612058925042661626844134191688182079405314353216754083093669401337677758602028069384233270788231907574467417158786093740971308459943807660439761126331481585284810398207988285969473475902857682245514943153941671330723063893009353231902310146784971933550259839655747100630544692078643978743150162078175942380565158003970257614605997326878946139742574684825346883517714733376308348494688913100666117326749747881438352665177135886541864251216537682377909063151230203575050969134074414051823898716389866157538434827330794651221210901716293962249770714196773900712525829130345856103000643685201703848456765890466438341556172803954261550934555611627276607569098089752468257651471846207274105578422860671130543513631159441595557066986178613410694231931119498678463119923813234342163592859159458798578536043652920177337209627542976282616403383157411462435994351522206456224096737703165659787548804292574894632632819866546399473869470016081878154820389348067536420895830031484282614670604403284078473714688271855403349300386440876388312083330627396965798834538216245663950070641198340196557576063624715228821637742272353166896370061193068729871138643000688575583858024429096261984795335554083343504923247017576037479731712311765278427450657148925131754103573251225716605330995977244962998524943119373670734260054105684196348426964176471925790691771790920020564276024810586252105798220179281494628167141588037594522262580191774206678354305871871920173589735374303557524129647186145941194461833502813310343224293173421423983945772822775858430245456096213363266442214786611913782732059330260203912218669819375536692083337851162029605209799248405472163093103375499930609351914974577301687968648725300704942644886039542503739749192159171374969300951480298782431369317444783809755144012421355597767079651541108302607347723745994541446936246140924071335875052979252780431806992385851006664499170204989949019509731268050692859222664059057446572770534826659948467922925772045233709211447622455679438231043915394451202666643272235982511456063172985069796179304164151218176882271454262920176585849658611979335830870836577703528359200368509698509857713107621691881448965400843190208994665610520061900627062459677650126893380356026042992537281920553004355285354149396635295004831952916957606927591878840501027404853257712918549586189833146522930441295233164049367868746518405630293009654951885017486717817766756665662286190868697465369935011422662440577545368713795266063417379680053084467581628185674022631211102845253263508706350173462312553668545295753227669047328945905100491643811185725160825453594445127578810814529865002753430811880361725627813495814066521210972948146575428925320405850389911584023740293912817164945691382183146585922506213140224920019644538959311547633824287068110666122260355112910595051212065446280325645673537456825714469558420416367930888465850883284855468302508780005803725082697474303203319466757299001985237931090911214862622307061710749939769637144660684955629288545989095423858678462135736432324968652122848576383856741890015041397748431453352228122921475818999681964189826366211596670092619890540506564093296614137266531200780774029352716871806445861023964847174760849989989820667963739494916721554034865529374115144728275526482937736620518045383533538206472348661129014954171597081698921472487543627069853553208648088401366088394415234701815900254779897203517949684226884128643976542725000843987396365539762532455474166272340376343008543415849400284945667462386487371559522152129370657001017259425430042887409165330593734096355154014206412510897535918419462699352093740161216153230703878665666696157342883786527455115070856280956996574163618817239246837406276062204940553194510740555649871746182863516810332226038816529815024253574535427297536660940750148599228712234074505558046248397322797833312106610772990463128796654285799498983774632663422749490661793787767084573890704072111985955134850514538240385139620702569371009711971384500329796414431337613573072417308262358860256515630431497854458188221277260139367713696974148617300629515693490763019708022630275125944621117623705308428980982586946610619923732213282813357223682604268975583670552588526131686898134842179068712978802413431850455147488253288366794755688684239080339269243743348256697358330086734643061218776827203810889114747795541077072677672337453420302702575085384433251076098289641041983457102504467957571381198819427071548969998301029861337240722939800498856497527576832514224300448123886520795590634044346782079808457782020489924901113069890830413089120826447458444390933432079679942382043648836174148049513783809668055693805578349652163708077675407628156001799573781065189510353650034251440200150585761462275125894429388327557623158446629714629591243608576787127945937166756369274615136132901213580797902135528592753512887632914605648563108705405973837746948025207150285691709948473250080245817481439131950739896172292806326216719841332380244181023681538485943698354450380915902468681464535237926383024780733945859491358407961100049912072805096242077034201950491291913892523808092520202991258350792789841321721667626353913706376356056238503144804786141678648415752238254685720039455900826081864844912576916239925698375750633401594566940622873665999576970380783628143420419654672218069371192243535935263610952773376809921747965366889400164160392136008656496372152458041779381936540434745301663467556268860218832020761175839941210577096705779848412917607903047024182029323448619175226003352297392484159995066138307200882849502776589804785941762856686918147924743732730702590473241327776338241231106760980345902921499576239151610242931853727020788286331623778446833411447822648926473526777626529896786685463132731983315446418037565930458774634929698939472654226615558229040660641172976650145976323523001789386629273797587744606840520771394185310615442075071137985210057775388557710573368399276268498363370692489612753298806964389221976849716738841007033687070323059947898744390100013337807926222100163610965475180992594920847838646116230343061308258995639569883297760329479305964445903973482887875808792443081317941059616446510331399890972621244488818920576389379090394655539243638194551592286035524806233004948780167705900736712050629641485962078977987487092349091260173219720732256925877576206821938697845116092810149933164835896743203649733256631013115759431891088378226647615441407381679770022171755745990246581798172960918323403259598597966161742462811469757818755547280325801207618548717969934938602819596621930406534377140658181769342578981163965526951827869577070221499203784362754752546469677104977303042686635696233071877724179345990429636333955092111648864611504101736042657279462485635952747695839236468909425936247435718551868645844404612072485092978572899851481707694858804064557529227942355511786633966268865903124381251930954451235214665778254504157724267512269983632143275701517804526237487292614357180701169550757506959599138886343769285667734326380215761395841229137917226881529137685990130225583348560933796865323790546926965028548703126388183745668537451356904943448529108744886953733128191902354923531903642009032627901526957667779000404719044286629076861654620703724201678284350007164284455473892282878897224601971522550619790205807447089793131547109497622457458097497397063988130190799109620464737732603316106423835924159537361365480935874181574927759523105596401095974583606024907174315699968021600831828255521254594004020478850436663476354904871640193064392393951159652736541935576677440822944001614720178914417389867628713181112282048511025201984080933750233906659170602271967201733508213594825317532826563765059664929299718863155381573284160721898360609684612252513472711651721772805731107042506223331297198848888393761184092548751123254840369528410065108861281410276229149371318816861479067812957211827195312650281857721355110889374195015286163723361473614346682680318432847004153933761341463736292403470753935087133482015786314988892861618914993808318541104222327286998071001975218474816560931818330777518335325690227271052097783225115337331706438599062231796534451827300836918683426241164053770308176610958892511808074319093163493648957809671264800060697234196021260068553268226512936536415508682825557764571287732576671758794657634912325289306086030846073736962963400206924859335342279686133888428335415848063864626330107740197721494494974350689089920155180867276252255464454714760328414983176939946642012955540330828425315322462942591628416188208747422328225664601495821324238287150491829073364775574528211546670119802969050288333620670949567032194426894587996758531946005053376795158453176194030049914397087495928349888873178060229428546736778671722680971344469197328397535916397354139611189741917777633097983387887333993972947808803459767288167863442947024307516937734394445838717366777960272264659821882008936254847215874438272636568731919100192379643303000667822652878989656689473733178158602912446172771153756585063516553342748913884208949830622146384030301475038419816870854398553116437192573249255859753723236059051803954429971642539459239158118721326604091491859794240740927352257921835359946796125387502816313669469735233213131815990879745338025010922357724407241334336841931063201142586622484041393021642396071322072690050985260079060649818838279782355458866209579140382416183006316373751789274235644462243518869173192549828345225040281607048772883352366350508060880898514069617448203654763695489960266011087647171514581580297113102839397766860994983165705412311774286432463256570796326645715916760483816880985090475171016771598107100935417210206213794365415340503204313819022213444903661337027504750214872057174536350274119544984657747054353130391119134980709554939134051255627189281673464461194660285734540328110960245625857664473609797725764346148549728690589145819189160373398960957125713726592593091028640195806716211030350521699548295196257919767940399884019228333833828069070662728579789328028730579122157199891550301172832624506147673691102948476050850169169554602343478957845947233938647966704217782159788245583913758701056445883448389259500904129521312444372330685241598628784923538756626000548289602611428231071090887545281575076408205467133909644987830672694189391716837247532575783839104214734226233978557207480671488551181366870842152376445088340892272149747150257473668737606693908772504204704780136162906410944898631079860860799548681435669266325743309925535323750429902284735704409621088253237769850065275723514772561535301497538494071066894639887122490271989555125388040606494641485394718500016336093145538118203811018546101366218853757919035771714118166330333373691462930245225796107889017159508159965369816351721839362056777436425585688220830751372564276425575101996424939885797239985113690212088775784587504545930357476654786965707974151261746348741348997448115242205509175586675179275151561198145003178542799934753043703000400885986625007124836249875027567287501006869538811326253690574939873492653352082356888643197627940887915192174640310344236851805149522614579062313053251512298959134096838750700378317396877516051297658411050547694549491300892921592728385756778142187889605829319424674934925484766935736980121774969451988307747245751690562634205657288933175170620440225573655305657879423210244512402592342574009105174182818415755288942207980610532995152892964473093111767790637050201043716885487929676835212859820607174832707728413194982353238315208972143828583173482461058602846057595425829326407966112245899266191872531746612667529768641348690759964584095825498580310961781453680128540997209250746259720902847225213796046478530236182796739417224649252452850338950201074135172051526766773912270598005161349745216697393467020627859103995649609422516683653435055218964994389226939658351700406082989354295077880032556702159889367381174986058204820213848382658331213732641465946713475990786331707675277492259084651456458192706315938891346089839816819260854148968083588098872507900751292117439405776493886925769238463512684819472921254933630022327361816874555746694374864674764492349253393692303970689177340105076970655340720261729186047264934965822466618558366220992808772510281428362563299042659900045946285073397434536971718997370193691545521131083645604154945316292394832760977070192954301503434958298021465615132321204949140016910486159122336370107332886928415252348523753655860410158519384586074117709686944346161607171806065875417007426402291931372350433886663149536797968208750530939400240370060267232469600447309780303359651174331753494216418111607235731696084676414236387830795151827069912389885752486951035720287805710518515567105710491150765273996843681401930329061745078117795269144537512511532540030527962490836676604489952211649269927471026833707441156319052465543932088412923017838240300834092758024832616801849108888579179270563857741420281000799610797087538408916820862582373488239292632968586047896919086667521405601139408928518545781283375907152134946141041458095748592416772762406639824589443152568621897042003261264627363737796219653510687046130736693926662622269263128248363699848678166640152629066538288362444089312505634318878488227781138121011930941502423256203674585813568009360948443058891364839822105118618380345496027553244863331183310349666508007552909563814231330262643165128691294138851798429307677564357801005305950917762551729090696959880513966411340532141898772029521240353433291090199509837008526450938498828328952327698095661959429122158459558974145382607647787442392601557283760927173907904485925534929984236144075017128366642764374888165897666730760923914137585011802593254037849520640490323259739540726664406389262204669897412392523544241753808054192882383364254219596631933904044406624306322282199889619182264725117932136587781933499808308182605585600344077683802625212536433173962261938530363823572881477536843397991281321567180041785182419923093055168165620730514356300308134281851429083312949261025759474405124050959354790080330951470362922457799108422465424108681266123419294608491431018455199846428760639115152302362848423789563125794305198697935468385226758073609926359347975697872679020078872690213483963863884686557113607948832029774829842504221657348648145072410191627872539738528164208646009640919285386737053243009784030813309746688894746074373659247154841816102295841976610964520809391541728042559713776597949468691933899364445443227348840657334889466604299890014024212197231034465858931179422344042967710474631893710176632474787232650365079661387370418457175194498088274418993682724817189163301525026049609348979884738332498329360379137261945025197168750687986794477326766906623002059790221487662691870637040271380552288713219628915554984387122607846149744415645164787384870897606197748134513973380133916517405789993023703466177227642723481544511043549197227637982390655374575885921346815605627672277426030273652944467878146556146467349442269686987257042176480138339914986532982851575141289009253710599113416450884660820508981463337445853502994840929508220230815157262712337899434737648676633576644988423249320899964440331091562041325300074686604625349650073208362190193020270942811288106950508665123970491235847901240496057317517482319861631039961476129852344510993584595068242410335114231569979911455158552062773813709284969398895108215529951257381571429335217835957324004563251459770131438655948232527693370906091929212524424694501996053309834795934372212750669424181119804235495797913288668687055639537384435916317948239653906274031312585623030144361502474395742494740490279978183430039278423750685515857788237894700790737760312599516046788437614643628596393137368045543744508271097049164956030733326724737870749907403245347084426187980613520763906723356501719933367919937440947926276927811254123880178601608716993781816201103736880305478908926774157250906844159833741195582626487882977347595642280921349398997812930677483999901704465040970306604784059305577869439429553591560857830727073831222050355368473146694423370407711703076199872437327683787943781049841084302770816577527746127031322708741619086501671971835543749969338901123693365813679069380516552623575579953624587654236721737622039241181627116787253127177662936114693898634574279797548123212061152920476503047047104449428352306995969132476844588071217906127104795310404785492014205717964523587996781718644254771168746399650975506986956569170284076065633672712947490625979968067521282906286112034824257232862323053450072921642466079760930753087689883709071960259733109910465885286227097236354617258584278542558002393735163814434764145334734272281262780636405255951671818449192417191368160771163848737348329614340584583122696072779632255927140442819792757650804562124610080358863698716286450041272756035797828079729622687114718170080693917915419453692043951156598153663483084341024097727588050918272025803850077921844201618846680078051606390001602712664084360526856473285457287306985792958523829127645483818663423695432395523569769178583813328955099348816109288498075654614093455412585746300098018016141365755138461703041007748216750434143845808311600590103423697597636798853136128149733131819800465071112228132274730649348516467789019115657353010445256200560652795892221343721687148489264203060477120970440767170761210291573451446941981552888314342097307120442064906587380513088838483040853565904147043336276855904358876529579734552096980201015754353734728837287558152279071298720301819498607700956041614439301839599992996736813105089822437145049818298886505945379565520796645293049111212850173148340076846070514691750603922428339241931571025335044631015018986684111236408476961863892524152088513272478327097224085209473878357318177520021203612980157533310812398294897888149270441900368209819494602009248102479962844460902701615942166513773796766677941850632349295361149707196921755093466783658676309623450679485695489804943820480491332866886094782788021508773077444717718197235640531129488990893323937438840168863041316658756966716279430683571141336023678462011906328251689124371570072137856061950306509599961722289594945842221000563020926794190585617171863058141598021995998970202767544668343914603343536055851003271496368863262033167172236725511734634315894262639685455505968327584196169999999870314169784405152995826118904892679536938570185468928844965920512646378818766041201669642927803422913753172982927395403930283229502441147226188881849366089526172162151206178042401444536608198067153720999647363956338784262098985447183191962922926093103386203580929270160247420157117232476951025610087350185509467003266182280053013007268947631613814441135020837599103109341083082150327378290712073001428136932760339399758348129587854659025585250838574718311069949126932351403175057614041378819910640734714641678214435742648652220284260194122087888634916956495322404523920617751870815492651942884631064580432004266994488580349859461780660555434776818713250504119640200324881752105961141398374061836876764463718631232587732227756845484329857543937397775395273323871814100278784709786563601461789631347449243668101489939761961712167516000896737568701607490540722731800673432496062789045791361100987882806950831723840693921430832402993095304057927241540756533849089565954666384793382110265361374740395278652522658644778743427952887424094828885415566513649923944556928861533572504102627732141603405709439338090605467551801328914036892705026755150365125937915694400637004444824647017295064226061472585283367822914648133245052953753765068980999774863230590107468780181672841261629126873712612307373921047019939493143445988155523717538989047563151432394649511578576795208779606592844104888489430091842394100977810290820013275585071176392667816702965482224234015246373853222055991924962819412553800180085530011609549764747644985729019479937814512851924977585073312595962625152978292044820859189634136282948503423525957338127680811541135260186357807335600309223051483900071133217524792194256361836791943379620916531375302752217653033784467756005686887547853301465668636130368270854049186470587517656148483454458249596241594242299054338265897389512300799084613589883659244136517944019462266167269170766054234222862796929961356169881652117558315757647903164066449632206808239591320809714943038186931993758384460590951654496163380612953290475585509301379554770598185116376645245209286091216758732742182638068891012678740139287556292596667235901983628938705539380301729962551628354552885695647418281686845320412824317783193775692482778812080675355324515103805245863728967616068083263330450236068024001904905870510664533048377636321781408986414488764166425727780432538143585099159104824067816056008809935213559901228519102955284641408982985102780490730520004778173169618344388184014751149518284291177619632552811341978119473021749708174251204110251640471923322692142752659678831502072925455072407177319697898512569870724153725585291212926715088363020271141790282786448398143244092632831460803201423498527024115430679558683134440579527573539364401196237229260867758196557995485950045373272877213387213528477766773870988424316629889432222149373694520726542846775091366538960458851494802261546798663356488376187472893757561800691676196303672955081804747127657250542793753207517737277627144225002438253995051107784796536466085839983611142486083408251456072640790914768811659166856751615458042346668017729815357069515591192547530889928472137602236420934358058294454249114308970845561491362652656897467952885262749243850809685362690071047698069139149321742698984194806290983010158697569234967531222542765066866922635096043993225974467725224023620562184636120440293585701673358875903739711026176183796254157572062684620946845750556052946593289511382158545964996040891433639577509372053508666260131329993910459351054117433259314933198857042153398339193302615735514064722663968642330933521414511244413349970950699932754816276886105528419818557284931649302034017615479047782699121088914671792278841423124219168091654040423501339762314215078723207704756791920863604101587085882864339903112958024112364066347741075439878642464359192762384929880160651664980688208144850884137282511755629592455049266038601393891518314427213569192684625064995865924516025766186154293512266094922670061746461722944467688300747176775071847248857986644008143660696851668743169351528631358688472596608992309242992781088032988259911003805801294194849522616376329427080794566796455786578923405131200725340192807118566561823982508719056774684311787623612242662319650575410168949172002857930053407901546434490827093987307185975800723406065348809889172280691077571999173702647048767201321317691201138707673527887304536050211820516525789482588766110966047166964272304408911565984371477735542617497789599966743754247770382803652170075864843634279336636352872500030265562400325033508218856999291672485836682242669279513880688408968647170346623330684999087500967757947407218548015899546831317236641877855759864460207397984519492170128851286312722439460169287538418965544537515889914461319696708643327594947044822753216694621115236110139266789651108558278291259411567166718842792867893284623260042823971183651159683175353589622380411213297837997572675397658771538984675893624021886568423808526262747380442878173693417884586097506923054810574996141421715724864250284071579737186169276393988218023803219182009426440580946217273783738968233656080659460757331647437025172983116317459630962613423076932470566036495942530763042768706039467249026848608021314408018308421794033322295694980160297432916406457625349059257852054117668146409070315289640035315409672751211586932116240568275410002375510380275708749716119809113317712866302840052610996227781864027189889102258425758576578154301423597709828108600418895490813722371674455468505408339191483039400921263761433760041210956485501822449203394912444317851773765253903258204989359246186485507840285178729681342705039801670011560573641756353394453566432757812965057931041269699912498140965039514287135684188347460768373886795353930649222784791218544378590531848301923368424497132902046846809845297470455192071270287763084814341997940380966451264174564130809971854662506213813773348712264542554215031263131263066215749845123149681461069079785767084246377948937910071112068084976614771717412528759623660230877635589764198831489071891996650045792020669620059178237482194305775174645958300860397546477244411779121201179730066185331064243286731877652868611441106792404721127273717699246776827680910698659564773001193803914367028737352768943446037267178004627508155347121154096424336278313900779347703204612564345287456350386629593768151565642984079535235002569534412826626429501391058965058611668093502123394297761939352510751591918402132625899977860033244989456503175382066583053240062799659411190404660824529657847704744428831384426797876558238083141134203236860346957108327334667814983049978433108213337751495854873424891209136176118188941136043607781868402248024940759280310661751663074259845241390121301579899225615911558006401886349037234290820672246668773117204552620191391833085972471149775982449302104600280113208039253488430100699162442724644017348662193392993649282404595662847925919356755072678986711977587950382560857153618691222178545478323608411839506816910507501234884597227932236297054596706182223802269185029887419812966510693881098342624477052269119400227483495424879215492965904395298543926590378390795792532336518306740204473683071730409010708388987041472183607995210474410349298727144904352230176923847247937470240656964785301865397426286755716592881175670390667774962517734450868723161513584935415482811351416186608127787441332753633763865374819034710658402566810000063844953597397153783220786672233307854010587903102677429482997296386558923374056724059381089952011722626274623494185094300312952441833477454447367233084020251422004584878532814114417660969574189727571344575688493395522226757373777289460238173853173250880269244147134128085555082483415113227573064253713933051349994485128118070946267484980714315414934476179258371917283141952647722089907632189466133553511172407946361546826129471904664724080007590398710695624754274183242875349757589335685380613208203058911290357477508090424817377790448598302813078862337624985456996665220733936908326112952319670080783224235981891167413522747720465765393112256018920526113172229869178017793337870248768327766716528652265085631420825469662114774526035370348386738084755151472922191454307104371465154325217905844389100103174558490869074522285384863408223974142611088369519632015158808371697666639118811038159367867914384317780489528167162634181340211932755667905189008455230658823424800898808649819478113553965407844518862213766073399042389590311869892969058677001487820496832645301403099897047846061976170287702559411578859022601707495230702742506844530289093790168053668057973513621104440796161343132711060037773536693186165476033904353134807027444424191745369534598973031994198799520931276431918346914009588238694397649866076703619039218385315949298661316962695559982700155748109247682019764403580588956395528255955167781779492509504459536660432389598030537617975510796974278800253461771242416298458084405440354195270889269785111027240514346755283925085209474225847935753214790716773339594907169724846001527429716813790035354483408701140632791458622075289619138362218179113454658036148942544702711017855495950410351757195863447770524590031617468943558105094149972825340754254498614960504379858286528046833064369807830183659320204938878780659385057012382466886572701353687420821531780403107200163275352938713907960581528990032435446099616894639868676619195178976714718670448214147381249842274496347193553648450319744193962617147477642867981405637269488796877731670343679577891331365209196971031341394038019637515643673781551549094597887019642653896810423539008391236031494073464890375840013196432928511932267759520366895586535526899628950160042297717392015869527846870845210517008218483410643118650642460967528228150216715115151821437926898770466342632263054615759938819339967193096477126548591916779573667733046328432459146160409931147555120767443411753423383462699078961609111641730046554581596977931169457008586540363883158933790777758188018858050421570970796585204805656081277793825790897786949200596455784002377122372950596019792881586673875341522224948365375640513416658771306654689377506863893404730673520904371990617667374667015341577720321077481197152692057507741157504067349683311220654584568066343256045512859925028589651649920373302722637423810639297212823048242704731071005389487880578203530809439055666262632588956156277268015071020242443135931341702903770454506257867009181811332926951003824381188621311501368214317380996851378274355030314203920524435804714517025308244259426499616269928244192952676107198489329973960672403532920116127161465290142112709068582400296576931359751974997907427920277046356580550164759033239690434287964631512382268539634775336717879220356690863604374923100231390126943721805249471379716916470382464527160608746718091674366572989882075608563294140561622291230548231500206902608640503601202875156263301411207129356073128242231018048500783570657813989012371209066389053003636046770832956138140953777814909070411291052202785288518220942998517840353006641559811974491156885836999037571408367302215017245024673240041567685183772517778277481439225000092458976011926906699985243014454847079229465386143284879462545887266767527126748783568191585741400379915447412078737136768089591107211315345529226069081150525822948029341792947894005052858217173140207277221060206190286482998368504392279123370103011025489050561008106143867882557718845819185779235853571762612398763213851508133370875210670342863028714195534734867750425760647714597371615996516570056284510812083949025314940710808320494854428761017095476348514358086570416390959307424019218739478358804283021586487329193952992024138214375699331925654593738751271259089498354256528596624395903178999076271441102825443160868494950968361529031004285602680426963227801730807762808903220293033731028493644217841731756084201478811445379912569759553910598334137369403370308346335868490666833043439926465360233410949959798163037160613188659458589503050463953956902972169751721700466122777718292469180127206756928351877915819195326683064920691085993303756841240713023546900653284267045112958188384399340700497540053919095120770549476901133628587310173758395160937678404586055173760316612374714075409868890360184044501096026147482958582919643189074234486427319100328251035854793352095908758707549711874397083273884183178307313263844851689519103022795569337201951956773037942946211234307813875484617379422495376685839034289375256593942215902957768345187354069668338675997302153758518073139052476341046819486786513150830429437973344695451966303770885154527835197624264082676091597664795482411598195094164712349083875612139308705353485573859823466428065196557585996081500225191789047995162347827780557411597124948616928739863522965460322372525621834670390741549992427004037186142789041561920574777140995131135787486110146686371408690030621559697972149931209844071409684176288495225953286553648312324758571915228314807564752134251957119228746126207346005079723393987375905698558111838238176690267586459788155084528986698461598562001439968278196241581226418605748826865334639600528314943028107139803250462650331952523400881078290959261551096224096519867657861509763662254445635428807184945235620301746168703518382043353577862833203023652659982151824200189348660715027793457585521581823389674698925393320504490115512207625353347724268332774098810384816292279149259809490271549870562264829554856850903765353145992983916615540757707131920885180937906111888796833535594184036792198110324622748127965599054309493062627048482999813447011336978304703687392049489975290070554332331588677655925806137965879493267525751072523028558083620645766438240469069327433074766796082228409073556763850551908466578029215096475728868554930131552819363082926753841776987427712046448723023186718033196022633695063995120657647314291306973582586322764590077515631021376609361363789214565751057505424797907604648858818017236699722443299065193460943001702685878272135968803276955534289230597534588066394870855564548402609557747808184954386220341122892422846575558087249851521718417632355574809334169148648610615749318736899885389435993937879425821595364448391552276254267863259464502981855038250718160712109755332807209828056929631459512932764924755122924119659063852349756307018818350884984583024366697391263153476761712148847136609925767630184768154216256904672603900992990406087418920798379411187685585596580322289778702813305972926854086773396581050561912878682477758974405650824589667142358205995861520205094201786349966307228081354595880577257198665646124754912178211162584745342671002502634541899107749031371385681123213150787071823587930930853297961594783535556791060498543013647918594309037059348289653886736953605961371449736430601268499432547573944059553831513710265235726039378168773354002283836134308378973533800176732355640385895316858085672508952427241884032710228585346111729752525811559098145723546771367288237457072999038099767953274841945165925882080502950601410788854037229578775351381165852660296204105885622680708209566864110106829142064672216560906195468188465128379159453009906197853897000584813082825174886951208437058642287889083057132497084032689382575968886540046923038179851113715297293102127434949953795398537324396982519433211014944981801215622824916045375264796410305961857310879822187278093681019174144356758332189930095485672148894222938333800588907718181464031504649283409790366068361827065312771198228866725393857925371798218132943833469670677835898767473824139489114231579669442383122461879151906123243826662866827833822025888663142613057307587927599568830977668978299014849261794340258249968628639619492655663907447696952997200853603908917461171080427777188986342421772853458347421327417596465914161220648918021596700251588960264172195355582476345857105589212589352741509116391237002334363843547770968084321811781078038922478289693577852571835679238610810090927357467313520655785741770126266701477563273058754935723085288646424297240245201394438819929871674586123947455978009004516915492705692453111987469778156626116231470671009504620217683461319898386770842947105273852229151575437815155056058655428904435246395669025705655624600606253661752076815770790643455484274978405587626836884258975717205174281782347135578957113542394342446859561440823210733289942310750839730180573261989438461855750275204920485609047011655222790482058930650798651657838521266340656361706957855271046543004555863819313790478210757742787799317264410197102298360898602236751639351265233138711855230253523420012956753591987441443219670300743794535412373092969372180261905972804986788053220053512620522735404842787636164764529375723542994232201826384562943237638862582548629769649515850361977374706224152617179768292045867139629771424230452708475570027823941083884975483885429413139871271730198552672032989395030521627783571556846150043881595675655497336592278017160518046108684275389539199041402253635983529007089624207845468144570492701052671940603042845690724855622197425860780005027853995308180297160262086765916195249832987329334065923936673656572045607679953854536409319280623580988789783052459583080013878191641231371755629413028262064080297014314226588016351092653839446254751360917470269973969119032733323652484956693818352953085044240426877508913511720279901566505439777277729706168214503636605270106320584856972374567861759272937238551888490101189193945471040148156860662440571672339657468269674755650370437839351866591784250383025978489486012748020590036972954256151065959384425662717972212509582897022578455753848352713643720911989635222494276894017522855131097960488077237497485564048636160198105629334565207244804839134782685379311719505430234871600271276464506019635437405398611103795562536426604186330923626235566344821664205098396267872407713375061571919532647592981207779882311014519513264780908383661649774043416287707285384368653207906648370142019148752861838127345938369842981360348227433920024039989483003833641984493428714615409072839515366615302329604713072134040091266443099320956736187518652532749809136672130848535475220131985138774949716503796115859503525890972841784871744002356887355219370967128699758516861710710323747879142754377885559149361263750957892722665111545433768825965660950427374906973602535464913211139672272080430677760691511211923948827067248315108486328954699877462791216210545831461350603971599853747946923516142485104494368626152269170616665319410942544082456769732343567913195052458037672356182512906843904926126584436080462383626343830028521286201377927427273376377904084032418984986707283715069189018733461040587350042368951355467526978644163538669000886477563820867510009619086047578567158231558128221447338118618665892793446805320013126270932486563800826814516198395255184863789364615324432856899088930211290928443571721176725543779188985517626036161959946077996777079753078892698798972040007561084892510864661202646744462045438743848596398586931683580716310679498238283869120576426511446671702132936785768495822174643338871621439730038112912753803332477442216343795284004958264605116726137087248163363704403372593906802814938806951374432520047190055205255859503907285421351717425678011098849444796861370856558386007024626425245072916942143186717664454842526465071417120030099657058405053737142047994452084148869050956458278773173528530361299113319386554238166805483659684662456058901915687079134635777043571560555548267265151895074673086447863198995592121314950988550899676562825433393070725646781746241473831920119066843100327395816243422633408555896544968423852900045705740286625516420648578195999484420810326021901029647621669184901584825073446582926119640050230445828915641010531730574925629442765709836615680097280335004556205655315345375260732428961068886617025899319137100698474458239143978671287896230456732985088769400018753654151014936934222644295123989978301367132542397947647835545164785059860117961694259377127124325691596380354877402677752245352098261714942488120674419082964022812428057858689011448389853704384518732124137061356431594453336421896250427702157439698389252332502403488315679609694923048628110760639862082973246504741661746054667576646327247158599635037790533239163086509180894764325232118198038220015957548689212548777096352865079035989531023645725244280255248018151439660758879793234237831667080093521655211747914555762308290236337950245635606264332254113877898837541629842156542119462068391872793297960565342909312734875747096129870421852916546543753979792617726198158080899574130767730588853538758919976018283779838240556556396588013537282330661349980804464652380826867331164305658331863170700230813991095060517758012550291865395019893807944657435935885188130503733306426324839328267586703714948388085705405437076871731002908401317415342072264026523401322110992217012017078360194276421404114708939272560489066935683237187007617848411503584721084028056069068238230825083615692797975457794774994666890806071430659509891151197484659147112248360046959855013662779916111736425270652640551674342434697526810063306620118312681755159833002008525884758728506201691357388586984431771542207061090153387386896381863703060000439032787219431019548954467661867392070682342213906601947203577612302152464625018129322649404573331327115069155842183446982363370937206762671496729568020871569516347406645049840609502602540372264604687358219581691313096558083820749997626513551864805996190536051866966028594602421300150086123140323770381637547968923728262410135361641005515352127328970987413723324233971338604942831287647002742479364877210379690502972195076006829671668280681705596303116195748279515726175285659133621202171110902262725061844006034135433627871952784132920610113688367792992653157335477088544974939080585463484373721917460762770797691419161469940940272416119913814517481892481876258851862368863061905730134963590020015480729183222639608686801577551224642552150731047381847695394380152283265785081799492458084661375579540726108734064030062844446206732180567293575904735402543190391249165461519547043085665031671989897947927604871325588027273235426770176253886332428236105895113875636944659874699447542870031793885735437964082595675690697652620578301790871207244772689428789053027611419371282877816814877768963444190125146279896513934254988066508804442395156436709562362519666320682716184755749793802013514979033649675138903050919366215031277311007599999798046692326203200500904148961553094932633188806135791377277994995205684030861204339945169118236198997905754465190133101260612152361825990163184129272619996766246052526905230800965092561239326336100602876806218743967358684214462670863683346685659603649208122102788836165393583067023969341077015089275060884096146514844509363154442265012290715399007876391910026373550226219955970832413670520335798676496345167036477494500593002736399310804068342010060106957949304974594506970502449469484042524094864740657781085152505563560692668535114859229782710873870195738812938099599995536778189513081632358997383764248679438543646711798174049670255870952158645783627974752744706124267210971576599009718144972973061374568792524086093444829760384961846317315314513120768164393865893076693400627055575581788707145249075514450447800096993283030601226876807849699189820342639952587150009121110663144507213554211768257867157050706403034979091182740127172070660783790524315270898295574903560608604505630273811865763257879390710242717583661416867399070515097269702179064419359028234565312876357107443776891057887939456028152353517913533937445150731088049475910726416628384030805493280081151487881745607858331272404464516402808300092923405219617632053121972200148796985139345348990845717840920756349816086300602483058750795230384779403504017211306021164942452336688557290182241900101455607565979458820130655163703551033602898153022459896441560433122841248927521078261706029199578138489864988861125415466323827886916795649792205288680848583354876814806708343480642967849893950335869352205685344830509649984948702198165440422356692066929210635269979065817017333376431631860903841780947172462509200532669619752179015378955092484872863431933681521897924748154199380733978426415666710370955477038164968937727002509406479420315800184851022064717986025080954697143637798656934099380454934119718456522214230251723813342482612106081159967979621473936281131928753409959792458702620648151272756533558657560064546579495618780254366096686539597802269754979930661146311291026012492272971509718684487022767534489495334244426516052102107483514591448824254030467676271402606997376896143182534624596106223131044684627945419389733531831962091111782120631000434566730412027733501566577784821165583417398477645978389290219121081850313750761752544917969079374420598686254269459499877545456462309336781090791009245270339372578307385456771035527965993176628924290630565160930821822300970388577784578625788856118497583564813651436975818422620590651428470433875796652871515790182293810107841019544936361233770067099719803301589955515163603990545801970827483810159321856122731571886444473725452672414133784695395625594257607936868255886119897448605026721018071652876664055364238170121583445181766329219402191236423130664620444794389976949049580428460098166490968529655498158932475917093799717202497436280061072916396961020675498537640038265653159192616720466061324321804724179589206861318797275141512795614112811112577719011830029203424598382286723697323005650703459530315427467438449697610381491632185207836515483676732107468950625140375519646393311069797903657303758579440479403507590173628850764898406482116430926331719852724819758173948087590461614452766928541156686991873547776481960318179557729431657348864031078420394789116766924313837610852619170479249104530024384077367864931998175260158328058871619333587743738691382590361062956619538170726124541393195878475091790655641819203643841238204126682967734499054194895216198240355592814526454737909045583210437396953266860352852036223077731789574788338320520900319798579398221032481718818267753442336094441547062318281939199157319814546733211824644114775367554339914774727887613498499986173522785659640863913742907875148616470556077398846277635419148141153741827795645814818081527052110850857952460766574029097611361473740274990271083487214299540261730245553024613784274250818027321155376057689059554357623290593906292092941699099436099257874468970550189628003506132756008503097863971383789737486421475756716039729618294602770857635153314180888623563643928689325791396940476890133417366371175164137955846284324612231308664036665571275771912429308888437330513586593258643685632505350974102740432769885026528781734790482631660848246635958834587740623574740428206711572418047048058563535132781914775608654165841228371490406747311047392857033240948289519717823870189951957733485840278661362781882469449704097297995092359143577438262987320141413525281928714819550323457693717043539382286115205400444570205561374776879788146187735288384898539336465273342928583837082561571748236129478343277470374048291267716057036738196141396507081819442991423050586407019872220968615397178501736042940925631886875205180420129907943336251089634861103502017060129546326578247758899198027526238814307952085003598096985514792096349124053441610438666577373283976313510619575586349941994772469668218544459091599749361035204837799610158490462698511113141868055695248432449505626917109940582253971504571871943987823635878590509499085010267588413780104664202198496797323376484272633931563428101870010697003484180987273344193458642407586953656681889531534752904966819127397514292367319847618028023224590719900287350493620501693862886684852924150127683519509098292596088898087181758020322214817554859313863225657946598588892741800014462185057551980314937518761854505366672689509651381968179451019581361971332848420890132818836075489167775354133776492972019663926382958878715403964700301148490045945721832279499592062374885539604022181898443819401814377287161819496775839637015912892720659331655510256421410571204576464533599955360429701288621105273914043661664359784665205335519173818501513051659838006301754256818746953255729065761188559042328081993906392232663136172149387622916137132317535935342302874696983539208689136362245357009793200357625515451230548962482520544161130430025093620923505324926362205562553158088243454873848021777293575426304596827011548749291964215866559587796688663493262305735926228926687649497843392631890200869329214976171868924921569920586057914793492002491917458083031116176996924146851237111100324826907378617441648714587134110527602249744245712398962211377928441060742963822189366025243954878701242879684278372407045610734467328995099597285995764638463476679681688091813704130867895777164168972935476267575742942900617743714150722804948551564177831848148734144461638603861560099288385389218264573806065576518434973447825516654991250351640147200199654005095159318674760130771108578196883593185948400600328938620798836212850357060276820362519121144994782783023816904337695901825790479573262189047219121717382967010752491419363891991483339412288779888242499471779968032137351421470361643069898534025316664572424206545937969885769289476938816714767430168965694941407957133439837722470069470302459326698281013195729980453355883975793043596478547572196678487860460990845456842346250299906145139930867456442769822973629687970159331717618946349532303916652195809639125383480021416818903379256146317833370108157656389748019693927744666187651580773526489647224945305621199158752591449177444342920261168006700800922513611542974242544729516444281590967491285057975612756151165374575608982457133154098126106613550126920816760335903488771461576846650800215401099746426719898880448931769372494357941626373726069463412692856153996407792586158300211443764080994725662252767396033768341383740050071879403220456877733289276224654094840774870766995202742886118699704585217501744845237673766734173154292034234931532099261833446898764085671741326143650403412986797246968583636689851622109699936393790221004145697920510675503900158166595480008981954959962883044854605512947654593873577535848129930953060959958971426299643190953787458063122227484626522180322290504009805343233573683324133256653823629765518406758332031900374609509106874049192828247747052923712263014363738174687195720661098709880637180010327445660089323271053157028166479044675837734548036394280184188060505172137389652134849456096154071903406121419336195829219640025376238687505581181891964990545058628913072655542716467540365405667383478556426807153770258794657051722822582357479808428796501633763536232374143125666991776694201388366717729474031217106806816101695335052207664526923930202737410238245017221531710815396241059078194844096889542291321185070214677685840320720559279471189434133198750522321317011770182629266437591757530811395001772787976441037809395607326037101356977877786347077691537859274986378369134250290897461358358391952622049901687497077209763102189630057157350720923757748909396983073749022796738401297910010418896333523156113155372685877749848167886912968336166572833301108585578221665865063082458348249169346271115943180709825221552340288378425601931062274502703955650765617939300445665946651245473379418282130255054603538561829573579205834349201914559849814433515490971843061604855197451865498428409149185391529952210060550863950216281620853501214723363107007821016621241490734016962740113907162061833541611530986210021296357841031124067442018946731711211460452938844720898231540217602518011890160530686902549439818454535515853266261032817775337850659148111767053157813801700375722499474640649434315635939769712097406661131925858289935850323073875889654941855715418447525368808885563809945030440112166639251269719370811838215974426057121517196421154375495268798739276255864757678343857523991599452094577205444949928633153810641003304049721567523670331890895831833533549031296186987859108949730394913157758954059806664166744356551224156642577183769791573733600685490311648056115493215836348557651519449020436271822099360391036815139509045035334988671177137800574899218110271763424789153172789805155500855655460279205875023998768514044222549380655000673981255758773761909618605122417346707678699675809276097600262050640450351144661304959813793366208859520141798836668945852474197523591722159946601130375747692997953123809244097359472891344022308482281841518657732648597566416346946951762313970587675603116642405902436318982794828759640689080792881120644812340031984591101197009729242276067005569844088150012364898532540318392031994085219467294230326692103730745245789526618399124872871673400660497867402930184429048129728050692239539850070313734377354053242054841188393015858832486483542270920303001325879687043241324968980927304867758074432788579480509801304193853142009235472648358326732248418998811643423591257196121014812989053770747952938263309594057642020132660637945968038820099969928105005384041993516423834282979690958069903304410648567098982105919855578378788239317178303981123517511988628553619789261981291161375426834654064270680096793301591046531443443144528577445337312388648247796106193799685843645966920879740242627226364292599499449874630292005908419635388607025977792229410077636171846938663381061855306031040449330362315920883235568617337927665778851895152621717125371442108441838491641140914397293371538077842875099194803670881613750100273338615890706057957223495315450929433506632565008749279813694436768591354858189196722451704105071129522696099520282471825216425265223625136947743466863791152978478296741877819227662027727864109319885121160298743784681184635974210727484152554992401360019515952403615690747157049272637083902036745652233889349399374737212544962014948695254810688093192021010253017574471282025120876069308368726078788630539531120231105066834621035220564636824955951920408902511523282932432320493258229444868001241360864480737764750840597630364459004323409571592746351950537969892358160792893722771293810707252503635681279041632370679294892896598927712580362329225630425941282301017570638657960430492867213951318442305717558676077971597119923021149550086780240986468833499955184393205206670429835148419927067488258394949035558322952789525949739911872971489792896691036179460491859214050833262865611278414047435862493862181039120443983332550839298189118732775027988420537321714675747929080368543337923597241368588547267577382955518079410161022127394631186885561977404153239471179084046162382725273265375723657066115253978888540148355081237793018431423403069747195283527208854290778441406517976179417758581057958118966571704910361099670987316595949917068129984620908363924839430653958463553331463305343790175703901991993814886698642939149496125730991227566111843355813141957708729694937670351702240223982705555362334844889510751943001366545993443169261050876803136843858565949715198765204752135980506292625702425764174069599435599895314278695084802813969958618151158127591132054648592881955427179564616972100365536651086217840560462674419037872912272077516915501276490327043191759959055903171984167203901319445735069911261516141936716394662100911530947799540079836267083018774514611222742373139377930388799476061954296309002695429851812134930657310429739889379878699560059380879085236691640920192307523948472247100934101595885629429048941612586566286527048818694760813444743524138533471035553267355206802376993358819774374937347718591063429433764321117590374843321270011321933919238023287406111289691153740940946276115889354527492157424231200565614541999205085128651346873716677950364369749031654827742981227770357972077120116321655268544773646130952519729663490026600622214194604393857484107901582842905952618995560930929657610167945427016148852743496372096710480624018166842494193400470153795737828843305166056907410140395142695760822619015686691665605954303227598989796806611771110291827057166032524785662097838464409130840321555646542683655964669301684112777274822668265153021761073242476815526360567264508991639385093020863852286918931812536323164751820689213736253501428951334458619841270529138933665672169669896800835418403240380926735146549211832925970094733424700799131657990939998453130431833253541576937687939949677016824836692948127921145192844738634889069952275745174790465562388837241412040819635617865798932842219165567083735395471320860490453804631576135972538205279020677347180362719098018035711429091296967810845367066537070602154958631065074093551396760402438285293328144571644858195332598915433011037761639216081509585316036244755973441417818905936016713237256166469862824596119267992929223688948843256566038032575560325075875145750645110465680661494355060737812002780191762577809475451353522205323204016976664532895447712145884147767272310358325726389497216608217137302147170485655608231894500747304915698956775588086065684577281265003379409733267771695832961713470931263677188680320657897375608579239887591388932247444064879886158709513471436924094437149869190522344505739730213232232892456605367110087654426188371105811059111998148802202744847700776625468762518175693778889150780849400102348889419683529378556226265642635969353525716963246464713189462548632510648580942676785112344729545109791412809781623873816806309193506061322395873668083028735604100919826833984829836726520447225534121281614466776942572651909733193310515549552543568387416617482605469317461203971833822807261923772532445169297461316782177457235696773166706107241073843051831426501308562450144008176070013518775300282593989637100944461474371423863241379801363568032524592888111478245632747298197368563122214192402579955092672503344201034615794604061925821594847684658992112737464427804202816161239705222755737684012453024207430087986039377705386022700280142227661330822344911469625210196910385458312928860643248975098788462740568146526885623269578637300771532963265965600824803484852409960525342513442234052965947550976348819586590378515511394972048268119014615737556415410031145041393594287636288058673117740745327245763382331535216396745016741953641567644774500184401729329144275503100443094777535773386752490223613100645297772887025151669041445079585611172830537615883368406806912987173726365536331428983234633193103571215455445392343587628807450516834359162697328599140784256504108798181400905062155784488181332973712318348198832143165413102549713398107996789418857150323705578952947660773469859961358694846609254811224877321521148823365288074577283252251400067432128767785219554742752063036743247735018214198096838634116153185007411435869798273553548072909598865176638668965505818035654961742494031748591096568531492067848214875150146594850987955259547009732952674859241274655391230383946182171996841551598486058632206377131279928862599153512475881484151986980361298883553573784064053629028613681641590145942261322315765908800048224188346015055493332747023932544098082825653483409728970862849386519091963823527324489593950472686888696438132429973733631788685330303795577760537376162160205802803454376214330490504424448876417500442667509417867093500973785536974322549186068966265888150961216450246380813938605867249920127352738338641588135823128338192148752267542269269299673939164738217971539989088855894865399791564486220004346265134359136046698482739177990720355540919740095923575966218217663474758593761365771339356407102553719166514366776059159469239609493719618371862856871783712661729852526093092663157905844593280606757862626689454333585907922878305286814579413272406379008576748751516152590105760179926360478634329457198104224776750005489525423559840588032987608558249286888036548819836037202129213597042144508768616651201626977042356475232511750302882646383899842518140920956755462012844479738369264662243021433126586681037529064336564157178496126940910520237952984073202068551667884590013457052249624679533404582212260446001688139208226279484506004851205894670143523013439086938790754998172748832843544469796786059590277752157816879401645905004344815746745053859086494971441564860191658789470415643266349673218045470654145233325804720403728584308946902847802871503248360226673760967964868251648790790907550836425674884022216099379066018471055882878762760360068594684500853287457893332872219949845223301979342153537016807777548015540731865992702997592669686625769129025839755833762466618215129530089680815618074085317669297203749310320246477290834190410352893472872400665502027758412388284310482412164389589382054208849099061850094597414735004730342484485608372145759826203010829009708348992598306439858615067941486691820332958303854996561787543937493978330704882378777188580304056376017306850585952320890248233956872508987705771095268005259988185005052264027256630446615932500940855434342223549849759353919454466222856979696139820772568743327927285072750302378796971693089331316042364434385184148487999695370634151119431665887352742450666358020339416474392037991681775223050056295749731630696538386525229767686575095616734067905187864476397228495363477619934716310712403664667068435120472042027308498566989131218366785600663130570029334181730170326253017065383044583122654795687827547100955438002864286517626244357645137479997460913791706364969554279264915966210746499113800928975700536424398468704018059833796846287952038822290836587188318497920558506214690412952829602049757723840935463047289702662548992827267527420600105880535558452424683547317102138045748228955240991703475330432236540860033860768465584429555601976177487189863717785294236351344606856809750312527607146651943784552082332271722810681008035535089149886314450248377521571053082574568747032857702233335930946913987558789352132172714830007778659034300354804834319716158475891561091048341575401604943175321132109485801991223646128197533634685919928200370033650010327295814974021253555465018382875095560055590915431176791697868802054479282899955536072686745456748893053341295392571576534953452745911669201891799394166051424450367239772437328790078834155773144201828880191212008765227927878254533555726228752191374280604879608431239949878091581771587915601502364640861187408355434145891648164620118622054150410564173395613686534118397653256842178546524529570765050766685573513710130736250223036308726466571423520410881758793976135167065631777457994725346855288465674511509085747451493678717479176707614813719694547827086841673799174831651005208582960992070783248099277121007603162460514780305183320193609424737804575437667311433857353650877235693369008684577735630296141198739462920951379858963595174841660012406854746151223460039959584599301561546293093465996305225176787440593188382529136586559844571255966974040399965878685787891650914693250179870740140899608819868348599123179993186039332842373169713439063839839619916254372181869216855890915968035977549490002682300010797765732525060283861181808695851750947296370059355158445462010048129812097380637259429724006885674450343536683381663375530252414483640528272857844992744291281282592898345736945911749565915900226977586950709837160707434550837917679819388285640015447405795388367437347752415831525134978399623206127098968774413518294365927893866248460575682663599195385231791689224522819475528835903251798646791116912784846638093158388334307987430803945452270727103590729735024858950609875493497012517949218525570623675021144841754913593018891209539333886237122511240512907772990956981392105851500818054957696135188170134381577045954694056866199959423535931181339695099251919668757962513291575767174337247898717710993113069266000077655432232053341695872918953234274170450887686978674922830790000383361371461070269103743970494342724164905240787571783893768624083504904407400251792740708700717681882182005035700133809859409886035450766652378938396491734989252123132649425586533948079653263057168513567691519004317024182657083818031683588509343551258365297735964203781878064805751701229769146530420850381917040551569158593270158459078512714387854286131685639677778099869410971298754617102209351570362369503175028736627973416814277452078513123209430346123368523397900514808309786384263396746820330647785436145699583478707602737128036949370887981114481370556878518260761418758227364096748678138810138455065326011764432652042631735942091245066691395454531264953370666452992274400161674171732174036158956530196755645463765992940142282079584792198005234377517319618977283412978727021467503451381934823738981402518314946186937847980852237741422249456305699048391380478773650178057820007174574121423837820193861997550101339002385835630166942261802728495678491176211751026981087269432407796119146973169287919020138856840339691498008010212736117474887567261529580216988092482310752517731201316071145913807294358057381594695084753883094577408239110904082301254666183501232522591309089573580076687879343142893469902820325656923615211052981865354104503992067348040561815764462156208409955753584394929829541183126142833285852301511763628168886362938995372711494609622726888557934070993161720096146012014610977580211945473661122251269924812892631704934610214127770050077379477914935431072930666551996067992955439848904195530067823928198729966111787225514401791714052313977173705224530994258923060037937660372426526350353156046026246856955037370011994974985519608166952223563143039309212720805041295966190280985415337093345901059403286136345269533871017176777545516999060957453153598966751808803495209536624780661884650860825485615282974486546688810849052852899377756893415675194517394404708028792058456005965746206994260054953098834222127085394229115753143516269905164062814690993358165230466931716189357473784827594754864670829965195956523267609099264670629464427524384434312059521991284364498637524355735258563448364084134291040997270006443428027769509872194121432432895901228581332479415361443911811762476441343300697838580403733123817495760277912699782247916430617246400659283658088999819243824742863483595739678964623230914311909198981364575003996196544224604987489226262409228497814050318359169778029495176807958980872670016235839277637401767208250360650594531421108053370322820078328935516054126889250798304578734738906010886384478828913098407163926650590484225775757240419875035256676353884496337341352721354865088669933244298894005033025987912051210187024074579047313291395925070660239129434408166593360095605835077506566052230255219418960118995648120549030258034649877388454928871774677413283587667911973419746290280897608669011887249251969053277084272564571873134673850098889566543163853679576847479715973470921698687827610979986277969695363571958671517958969838129443620346877728608532768354052582723641080072122275724158715004070091562708004627990994863162440922759416732063842495705927730935716917495022280859928088569728733008022148266475225123680234575055097699211894983535954056004823915864392275193975286011827670783816220501778338764923174689872450363419058533907766956806133326627860274527883434763442256076136968105554144035843032158301387463248072908215111546949265397204470962611126971853134844486808281509733615922450081805290208537048226879541753675594454975476050271485312752554872577673012182629821875636079534883365122236732084825132866069773290662332111703892245343280580570297318443373912944090337536325912954152799766549750985241582427941563345314048409434701674485673592308853120903429060847840158902018953906778127977020561151753416676804257048506497709252140522353276555987504926513309604351020019639994074544219754946479088482514376191872473772610205123557371664504894475079683383907093775914450736273650512631886054816951649614577287455981107731430933160189577829382255063266459285753569547508928622731500996469388206029152490762154810239006254954100192450506659250143837515406720482625519073911975299950826766930072620774393973999624518386788587930724176928087799783438496879518717665477112831335354817949306975249317795161947357114030428624657658654297295462782742024595634730494832725412082180482198550513476240995532086338808400216352844567991393789079141211316753748695052983784633902261865118806551443807090004643979267776763489388329574900521602012934744413542618297101868742340277135086007608200584170369065061843228477915301701985033696831778247953293422636372813086076059279839613712937838814872825476060521576389183518165704700169266400514022696035971013914199111258383512829118089109448027146255045782643126112841407214471707141803096184657845328075966869778166072925219670223144545819866685699105200689048092129673344607738387887924034689650749066441677170456952038084273096520729598928009876962450374908274415471923148390923906463716947597796908663216521709174652846536626762161011392786589460341421064768265685193062048787366773822930729407225882631685270316226609116256384036590907325985946051341004462864889058852010121995772787429847479261157463788021839297405634734381677838336489548671638049373492368908968555198860187276280122358604620678176786750950113108606765258700653755644679897834061215588447506502899679821083274809550341869911514333551363645856027343030483665294023837753956892788511295128594151453150638912797939372839108808729157157360131970905055488995867073246031064076670372744762815189534579449746922486885782223693147078863540693462613176004456196166990945864985362243902556238291794203740020564264878025629048264232636341480571380167686761550159831594479214692898179293495798740157456094540421217115354990548066737540798640853978062922933559516370572665466794762955813775188011331848935991886300077880559499875098930702766038772609741944996987435175623858935598263884314151656112082733700856401497476525825454520172093923053484909753986889476548676628638402961954409332482164956074005707325067263121275709014868980352479742501671268929068235945827900408071924385550970243917892073652425168998278245801245702736810170389260274689902742746924563114508657921316524975115067791651186221487673698947699805225949342909945472317243274985790941724828975848478057383609735297672141759319338648233873753751872576003374703837039877200028853472754431033697362913591766511355217256354765580481926750817204462009932306445003012200455745764934936042769652497141488353622248135190492490186473140606287591849105430947299659851356268208470239543047974425347186966410323441281754407878890285571534921948957854780940577589543387831443451709748359524089937512830823858054787662792768667307227833096661699326798495533103537368127573744640343938486489157214557092311761459171030918054012013011638012456986226272202134404247349858970129999974602144549511143957168246139929553045422013041232801119379289542786712348968294594691045174006586830398405523863806352640893947513575926066230212398172134263377477963388060940466338830073145949070596377490227076599284998896442567030120261623915094204398288323207287063551369311063481479634159672813344483625964064238680728401257665872422990831861429821076191247792922899650797775289355803679567458442542024094554983272676295783202588783883571464489239214154968690503667139122765691310004781999738936786963418785104295825448774900484446613103144947245710712908745173512698460412127352939362715476116779438743987479755202435248668961586913866206190494359510926855403114765681316869223614722749437567979695509447183380210836282047775711463927632860931984006893296175902177206150236722541311206937093363532592177521113777286374322081113460116189709367147379105427636438596862936115439702591641909420081815610347305441286617058025189269430287222788310109931935550350252600079215037851988978583593930173895307653771270002770172717514078764789863695294542176526663572157761521329037931286590576016863808961246680383805402177481054347342883608904968941535828394717836308809522812318358468101090891854480477529578998262055184393571807807995678467495768928563153464862307267269013979478818848886799008899331551658469988850075947693254168122697142242093191506983212520546007778993738284853698859264052149799668933083688883893589401849413214116955994638899450816548447846510852777764222629991478988427254916218015796221729552881811791994422302299219511752976750795211677800128592744990015053597346343216151515862776448358018981292181465037956785627524117918205772604128325072832226370295032339451298294867546136178397867763655867300465497362207975189636671192696320064268843990737915453858148733041829505534212940365525523921742488426638859734509576485375002201832373046825092229763167851229636525273780891534047165848124636746375491905631484438058635977481636772123865841805391740272004293344994251927903451031483874759273248017002634418506001405835144738724040744427149289930149164978774068357287323441285912871830663227223133012229866356400754485746529021586055896753968449021939397084911419215921668900506382022479896859747113916496164274697270848406942987407967270952744245556414995733578969102076244559645526684016204767941436619274471849303993160336038972751129577848268792637797052361174704706630180497753589224784255029912932870254629267678462870621293135771793787056246201697232778259817472741802338186953580844353690836424959232885670965505311859294183613459782474686228438876959784053394726574355318821088510696615055784798275410681664647129117239299297353636021888400328334188533326857221043868712994337255885119528580473230492716342836445531431937327163028121337452739520923409836069133986047402523295024587934569681921243839409086075239358584637584289691318043855989524157926085587667053789439266668012506239167845033439789795396034207975243176444937372446460436148632630719723034906848170557848092767570319520968097735255745506282180600224029055197208714916016836578744190855507762656853139100433734046417304737441029745142915541107735239295788693030293930907170385939392668862931713253634227794884724863012561251484467758167924544532779284291985316291750790091680442582208919186645663333795688811432708261727716070814849977055518596699823667975736977566858698196769226757494926012503685720118247348504700207227326155400418604100499001380728472519605892387257647611888990434893374718494722186623942806305383624400872557154943608462031392992559199796277883351842340597108676999576261738807847982657782444526356370764731980664110607904204411181616355558950694409700320791395158941527538643791620875123997979754724367618858394250303769932648284857600941070077755950803916715950356457292056095894890979106696678564941391177638678696081505423695450932626335334255183533762371379731249259498689905497386648080812706829049323691518402665015943966338494662133356602073686011056191600199499085995353282761198523684128836022667987395271451766561549088988276233434180505730830493875668741789193295476385706147555568902942180159370160270342845343530379402396295675045269936065855593822329861066228500697327640830499803062622682630645586663770745451151387797738658992471882835240641879999890360187153333718593663410350299631250252794777137498118372217341244073204126389899553031509930258461225711168721972653766444236440488796767601130291589724362580673275649295483639976449501910114603746391031077333402759816753902456618485758768206199756416619819948803647327192250093142856339164340740112619030393711353273784453245022034410851705011843321908814729361527354474371036244364349011581725771880388973886807985250078174511704301136392750987965636665464224286282980100845478729848731696191355283177902938092644680863302721524259677403053060002533913841371196036820999091994698477195205869249497436932095370575069261502646179596870210218099525886932638927931158805003244254951002737422883541629572783970117738194546371835982826783077796206316354983204083396918788061294414890657495679631327598196140460408060286675435876355643739889750834613757030531640964795762364550085348704961327193947405276144051315144291349463489745733319269466178284574343117789897536454937646935942991093553002349856706052826037347826343652505434885100469300407033745866115967440760178702034364248321940974172045873623034384356785647369609620963613940915615936152938777245845970131036090993564766616178770828867087494238548040684765505908241932737801519078712489386315794347174953953028593410155975403098178797842051339856664858671155048583525568547325072596162533376378987907817183310519730839992023201083279613101753216388061914729070393368885278459538507782206583486533707052462792321278136178883312448171363160430341663026410323627538403388280133285065365449852621305238378302365862321502377509396472761165621707666282503364924841607371080231615241268634297225697892051602678030071220173919039321702311469375673260157090616608884577327609670825489094396535705146233316406990407824013616283846170135878661232913165586618273317412665692893429574844760214960830715757261158372825638461178689986082508230015523345571660596018643632486703917606538300256276192490102705439048256756685950189252197031297169260123458602436184449453994980778501723404775859447090178055531564658891369358660757681850959308411797452299216133507555352397571662957603222481414408007671149877179437208758949248470524371797227574884999098956278474099594035837599912675119804797080386264770472696476897199011607885233020888083298112345194132041169086271307616910187358277429158963268502689656365817495807179791678314147193024336099270979070970985770573952230666981632159520679731947109318539937120219789241494195095014267865318318046206201248595905581683460564354337272444724543313092765275234031579606225159229155146483334001836614166342657685507307719459322969892511913587513011911379669445042504490122079645655919899210295659677333646723253865785534059236202630814335708264758576069690281798787490580351583747892937310985632040078476517170227283367895262761212766218417808004660124760776859993608908890673449637492435764385758751751697762337670452154887609393441780251524019913720604240025750445179742304118280235531539602195682025056412810368741737641275728484374076980224414510968814023182268453047098048923471771786956836556490716750614369016570989657831526448678482820231181385556015658243993058966625439103561883398729758714504361048703781010013560822035802005549049144808094837502690488771244860016651218951325001395871477995186915437088636115970990035163770719621457761169271712296405671044594146686946403354708739003318814455326181393085611692768276487540237727201572834781992992724963671002129393611108823911427672987843557100835685746726104490002652137448898112737315185649724168370250035044610548736899339284375314988540188890529862904931133640353504039775841856506514035494382785530694885454642767229602998218987992666846347938479716423041483656375087154860320448746128627538697899768638832675487015254997309735050256898640197314772887034632686712924936168020662919524104190951417899149376321929120677239129621103663000509981072851763235064553223564180852462997131940256224011681032697743070484019992658500622849160924712517810183104214828273042295589433289800395200282330548965936394437627851841635982724167332439581169873993877317541171013251713805148115862497654550819679423855248016205210697946851147484212496312938079510503637661568870907507759955659870534233119324159479344012398913738951031860847588825727841996402178515801741965043489363243334032726216987534669471933208749417782127401406713549868896193879417390231767522854462731376699922437311790428585309987092793717814398461260682682630057714630966317212968340227071987344141614693446262149042043779056858097173005054781753800487240281161804312579210448168727896287497734174736254630792042125226721941034098617365819177790101285215315666446123045771834904376321839913824623283536128742786784676696481489093726951926289457468433087157960116928324442297973561606532614676037284470533777831170093449336022141972904940307252587881908317974615325849685326688197937764375231994640151004369704218616443049606702100175983873683242732524113461411741398720492390234297245533778121794635626232172799042479027975269035451272211243222680478957791049646160569876653090117976968088808159291628822640345346244282648011962186964792983479035789834548447972303947812958514895499871640872532210917137617093956845662488556134581752250840725833534899131358497133687649933748493644224680821798637062457856517863575447612540363124663341137409826552188589187370669826024882688211980093771417525873185681887073751656637695906340294514989891462132337106497009478599971346752938419778659500531236132685384585975015170204408686893415560150413561311635432126146668110279986799945696042528987534006391688447441047871384956839867498964388675526594600481435285219267837724870274072907296162168437446098813993023132389173753765731263061162911045087386219719767805075588389861611558411138424319448752661764458693171457968484168599360553279316370951770900676904256570543163668775488589808893612072494704731548887357149552874566303097568026474396955369812744993774349629533912386388275887695643350139446690481478547915635263859072133430253798896432400664395491662874233034583166144029133795292421733672532226743436300006217910082750223525586704763626702039217874439446999428201695189066871179485678084160615485854227267522508796407111479729640930150943143692899436582347518687935908370070700519343700384848740110498382898375837508719959673827655639290707266580635182884207110069676930591524508087517728777803841523992070946187375607630936444660327115947804006324144306114769850652962274723979815186210152369628707553541785233998198823317108212414856072297394715451974519750891992704612563242083475962108135757971701650185947652800907748669026430386851285297616144478656582163912810726071334104139810029141787327027772857015168574208405043791526699905750245720097755683819841367271841284365947135920114767110786880834332095715959756839765142806920096555410725246328608659696389766433984569460724103678934756007000248247379074880704008002432091037293134356732054788027520385071223375280083926238501797006512399711504763874563065953926464918067042972655308956403936667793236060012565606441792490798561042812506282479580116921595487619516158503448378500501603306365898506185535863244241667898328130569980579070111374704918479764476345021494319285468000166381091753723349827652301186517956590044416444403444112925083692571613924122635256767303374457533027368965941347098238731852124940456791212572545779683130688427091831101304233668819551396708963880967049651062579872617746044165373474750624919738326864072765173688368524506414586500002504482859050567784436259474239659350940810508942845183052035307008861830888979574621383520491330175006032952505817907736732974542061181456533069984491697006301457091840982195068113431633926354209580465714426724089127403669451622942929411537835433902929805124881749342087705421224068486875559746611744297399746184508889744368658527083834770411896418954439712340562649391044639741370815561278760646866632402903945570645736803569646545109000343963746868824943760968382218181913317686487793152663932053845004842243507984536375294766035197471105830347619200559889469773174147986454155431352054558374599484573443216758667641680348800893676358728730847102342494638909161182558427811151681802739282919085931931053971234160291790594829644377642312128437059857140016792268547526893066637530158797833907132549573020442942261646743293893074394493647162874589311130846688541468678884006019045514862111830510338254697700333359705195862772379340179731240672495668790511665472324736206240629933759165705028780705524317230971709031772169986665436696681049564117373043909257619131597281454241233943124080066778268286464370169121263295740505276801793531742048998260572285756245001793543310759885822558552782868077603147466294358665094028850352569187464122105060662126025916156393850196075805235625749082096777723603341838453183987253701154240137972567116693125157534358315354746972774390851431872136674935815441403937031683313618363280540248244586247505927985131098744759999837985876998313231233737590490678631611462212785274809354176263989297884174062626463159885875643750111407897606133328948225651046351793803253976150999171674578203416570191450421494580210686351280259970469605653189270423392355459179401367443867759190499538976260823891504757540672530908361127352236408307152640840465763743962666117523669591628738876064742044346573505926802754963953030191243871393279276008175429396013949599476909305690568250013073845675210516235599003725823809883483149590225290858015218892273769535322534346544011303514976244744941528311047228818841373435526185070124950240590318321592627972243714577602639061053816531595714236795272692940775279124932246083331273207556186830419203904812454801014566613405775989659793696920367216848949497513965233009554121565651532603935096805386700313417073335597038192562026254351110616595943743922247945083069827053578858578408410468500111342603522656004578852572891953553496913625406214929603999418480629156547565560129980208344916293343318097598198442377601481271852436962688249818383220927737792943690895216488302346787827648619048933397523885654075969515906334622163524319462941313943094880090331570691945697103644040966820716979670819734662242667361352351175390227089981711274523226797896136120907179251022082395886696980529768233066180770883439733458454354968842266367771667360969329561675762476233973843398375500683052854906051453469559607566566767234276315243219721760342654521038903731417779226387982043863624321295361637299695303264907568138130838325979389094698349626508210375824580051798843173757828797929963065267136542065434534163051523096910828179750282402269894724564780351290491236418787737834770474711675058694423078892692394989548768023554112030240932814555763971888880407104287824802952276212827189857913240711931020245944616343369442073657134043550706419704043570583330262477474476188693313919845528253987922758106486148451031483569863847297798183411742224098846667626050849320468934290216960607116110564134316917020821038021597567159900830723446947347360405734339009414796428949700505137804834759036599878471191220020773830080144966614293484560205004381899911468022705565858733089938672208018257076880959373663615708655476329612528549659291839533521811068729750385526132968630940194805816523138191719471535821146623804559611976019526723515119882558901867988773667596711146595913674865747962799497100566450684973976342702788736697939053037324067231469370085594990441987259440839683489312129824213994920038264321220204667475094360344048048026423415451294568689439322159383006534691878947354870647264866018407093955092995941352374286527024909148773923979121167149630784306584279490097780363467788108214650279889252731607192911420824806333238193125368293515832151408818737284198390334490460435394792986373350113311473212900842250910958623244172978646551076883254716319037580580729550644955249214482782424919903515905947869938657456531304187241157485554044428158569192338218129007798207289371480356610154045256335315702710936641938237188313322525824811079641363562350841563571254745543918884029086319927664652154611592562018320295236657304638090360748783280498308150243601066529279569920344633742625442886960641491753749142130055684863832731117900303077383796599396618786839107541544270290945933972635862274338565847715720652647501595385411671229429413586045845512968969003104790934675685505280341044702002222976643029452214843484824533727459296323259438154981527280833143771604039169168502283921676640979615603361843865378729815565827049198073312474753784678563373719756356130029515746415470958740109541658064104576670499310876537963019768181095090566489252734000870450811355826080875891244182280769519137594521743501471550119176518938658613387004622180101074540115108025293399170308975452892190287992167886271351176372483890919770760711226704866293456421368245760529719663903214320119719376614833771084424594467930161675952294057494743202750158422725231062571130323712560857410184334932881945667714426564687901744710623991873450633943567374885714465253124021929133881442960758726318529611624936410346548143226910810054659063797185107696959893625623817117043174510092699557700614361220536583018006520976723984032360817900125148251024933434800183365780808632129528437083762466749382999486133205051820367432886401456875526511969101697853569205998614764247568459367197316807434851602738325119083027334953781884947304453470498618313491559528575205455296119568021224181826731837788759484101136242798836873766020548490051045807390992597856734280823014871181716700325854573389177914223543900095717087222470068020804425665066196411267297880340887067666580417007303559586929617585249867760281283174479851849140408974155490723455693420964590027812483770370732183709236216900780721476053444177958749535030490157328610617504360763614761348900915651829710410857438665655064392965663510994586355059183395659026058874529373913368406372934708525014783237058704941984148467054219397492716147973377798519174874387503797250846083980739169947544544921863188147412810597199747556981133754648070007587942184259147918846449760855305153962320586668200873048544797104958741705177363860005321886499429541460596184972284616594125409599229659660543831653663967083967534664992512882076819195521078435204654057923884863741506487750021948839948802856617071625885516429340408849587499538595224937995396394042651918956499623496135509275524101886848436620770411793144736120728557100714995501121171393374590618166803683032308778969351818229420179844501307062737020031209959673319477631804057407928990119238285896897413962573960314393826916173528354129327748062481235758409981878119760261001958786024016757245028118000655326045609578441249460525254036484009360137336958947506082491404435087546588593011606897212825818366524989510999717350594233795747172898559304472887387652366549592417383348974372863066488209312946300886578735344717112033730831671934085346029184584305346525939028407477767066625876434575258123691082468564651313734043579964379019849542082041017472873238599215764227956821867323056354302763007786233445051696354153022871174595626997954889511182277626138660798137587117627369044406320150445613675399772286427877429113497918214436677829282525047823659252836205783132038426016010932684785680734466962510665011822679781358412530254042728661801278094585042229365822956699932803351403270645893119131159050439655257461648327289993427306696573401251831499466210840745006667788299765678574255267274515490236104448609577001043548129860144854895898170233812346150876099288404763170900004831894659571015540911182967059435701295873015423580031889205930471650183854491994003825487653871854240999848354579702541660051204092562134120815009159003656445144352049864414275078382846741229908154030567176818836165933885039830338540240645663649116228059395250861701601868343400736181037509053364609072918245609380603213360071709066486672930025909766461136061986465298045104576412040727868755331280414963811281173952221116914481848975143006950458261788159784170964121827221802267681904950231709550490924865402537325061591174846841198695941593886110965654360158142623703166398085173014770292472626418515026370418335346434427631438610331538181962518325056564193579063073368727172780674447365121942727850470174559350849174425735602769911096789117467294375897112424581386055301752504113815110829209007486867710006613322838971284048970703339760493326455722323165359177014356753155445951782474321046105008608798259333496179220823744422919498279693454720073997396301546321216138552882131264131738251679950127832609733632525004987723631966346595521821399584060565266626803709781126585564544458930835468985449134898393118826479771060065160544021927082690410248028531145398494515990301983842325275140253781187438192992499041181204004552952683057952060964122508972853198469739504832038118918911263187800484002709499798911287977544503276224543611247187565152221829352247838392771151241291373717634422933896467560493279772508786914177141863381872984640100964277697183384263285798133343407842877071944858067972505086711984493345116292094561568602628839653177594320975052509953309058719630112972502828699581213436656460511892558909717781937151637648821908952106096235031213934940044262204981710009925220793315931621379845492759856458828695809108814147991928759636061561400598947636367553300397488707061569894425776588326381507362181919039762006707850746490170353497696014400128309743042470296200224402158315345974521357411476551326704547564828141928560517819908881947363049466544648132520182559101396232343938559213918125712985516201944569636388149625782818185399426805075330769371407434373934575892403394141378531221240695321427139111600798636330285575861581620676300680587273485261188609967577676133135342748078341708858981587048131597008705850883220200339565112709649334431411385094432601504963613349030662092311844634524257953731560171511938464836234896645489515350732762069837680200643440023648446344930243077615942286547499992636495552976675104061540553596232070599033775733184408742003339030400162930725573968031987266096477775154564418943356586186516163524269925594960656166911062203312657006202397434775660331866221997245617519519687906841017092353030698375543821561787627540722195644623647477587007381732410337210584098116883669933470032446175130047118795142326304334552497018779550226884837718788343694044621025213140007864677528949264047005246712297196714938890566984018892906403869526366441941493705463894505120924406819976147942611499583678906934573412262549113461093549929852607655130409495424092459077450668802201162555059943409132290358845525692457032688024082946356785182460435211261475862287915920349964947104337120047736574598135140408246624996730067143943485026124066638464806786095041156363718375878196004990271406149446838167177760380481312204538904116531149532188453053849823034011890378358547166614115209150348831117155728682181012953960009698321863975140909235015170774841716575899056474235865719754327825166581286628440615069363654832283699210963863347333072508203408629896062651875282758877060603656718692366799652429093826869843492147186644330562971414547281735883893587239871406604930450258936945567949495035311494444190606169081500149866442631212842726092997352148633357983419557343820733726426716277290791783386023986851276705496376018998796452857277609590508680093913660089807546173718558595595253139495078562139619854900412868930911206114424171424195244309816049608125773172709985112813062321275429733622240904204288976233319726791693408874592836923566200137948162444614840099085114566197242921641929031208722808979362794882777088383080570796518038444503213264431486994774118166132648700469948217479952597634806298126253567713981438146553952460708337742792669083568805838757364079981705189413542087857517900583052923565361704372430604716210065201794663445748309220384661916814283654501399109167231895463477653929837879168882410780264048580017421558093324810860330553575942976261736186396226496754109693123506194627318596477128925558779707978629586652539490683088990004771212436685424288260829670202977431957309511377517657697811757153156627915905050008078997253581254872798672990930795248205650610768107625966111848266766384358540884377766357552065101641408322927442613928157607860086935926145227392327963772835636695159541718335814423965105079747751457104822322326450913411614089667540693761585485136884830216034699271452897440653561672684229494224648671845164160680738334852037811094326680937787169837543489514189099154169489807020174318632460719247739495514663012997587433313075325975757134592180176705285479706700102583903641353792247645277978270636545727956254207394730405752040055712322173778426168763019104262512296897419617295489053681135033330047572842395904392489430750156853931598112635701871611408983165700703382610938989240923843428761520900498567199287958828696915045404480291699035442721435624791567298754926787886462667642101352056249930234889461653179567765307895117619106788096221770786653601991955761001772962019436404729586283721440610117198467204306108279634068557467409836371052798692200615975825761487968323008370163199437777117957723078435191206847382362460050732183353850118845332036069730381196976545453781569661046376863741815727140157467014593420162819297313694308258603750050740446871215085988305375314295832067656070812134824794404676331720448685044484969739734104771573137139408134398368371092444949753963483490108855892505526240473395163385966581160750891259816928698935425984837396893467375485285959153548806227604536186410650341319690087222304456013694367554501103908690038894746859107828181291319959339081655108595834165450631896427026443783277441756336631940375817505721673302476084289001968108787216677101970081501989151550363058398670011591025665336975381137706378216780837628968098303332301078469834730808606539469751374507533502202711093393709441016916486275606697386517445394942370149341960814712891912203026456905304910327651586920934579315163705004818333039408378292606054227221622039813529398334910678055619690648680522837313617875224370261111850060347750984577920590864512064891953385615214295724458263995150512036489253274280800082817403906172799363142698463151684654767101269473539732462553903413999512582884316402662376607452844759415107035084960085509601549914691376030111017338773370281650121932966105238157460788853300934684015678253352259388587020805743052584035930752777255739095229529574433072832728614353624469559306651841260690171717686675128678333048958361801264380274215332822421323501650664890536336611227990060059978500135560395279791679275776472303543751077808467086511862011109402423519062797069444698604818887909306315858013677597440267449950590890346589531806264631687044717664298162998553317951766390321991932877998733527529852530998815666385513473809568363489749654555619399502423086415548372118665751881291722925531328761293836604008208676601255838959435246119613817613160918484292241586698099872542264903775666912062746969108841415658369670010900681089581299424171703740477386478454123173600890403286253280378548410661800462505207713256652325967719101973305745944862263048280963196863473939704774426312353738125537599927561470968585792777149808428854020433598062651563547899089753361912754135982497543974006041470861510220747475088855290235951418390934912007529575469490463356675234020495430481168619434795078946090228282919079476893081561731549533621838035234163076213252243048167441197843501968389869001508130699818225179413813833978823440330886609431555199149195796159945735819192850421585852480027273684539898852692816833884020058881339043433050122667831382339773219942654696278140664933357350314292399639229798251952984049765712473106612185066275529215863957500628299262330145153941495879281648745300398165273990099181582385413457424234590127116152727282657742833043593186769283905816088770266634542761946137424521214999677779758796960980671399554508779433593231029101617229480407369739522093905899785530763946842078614823084001635098129018068054700993825392525893693344739359566063852072003143934417924025509986359118099421066408814827704654001045413783687421889927883413412100209294281401022013201374685582486234435288049278834841551454573239961778289278068883646471643049525040921409491400534683415915615863831344109968754959037265695236885344175553706866050416056945468886604683956061357219127008829499361524726691972545861633380186445729192894861804609675272879748106358846097855828366347777804792225628845312323894367541431412103927394950849020767136561230562795804968138967641678242695041749444795042559260185260005941275477842023677325542089329763438006961371693650237645298682366487650757079232428147460676318698766557796733733940057138317403890720069228203855427354224867850160840196876335475822635812254492716021715989661648218049829850262316545610264115244534524041131226076753526208525154770963753377819316697599999064134136682521852126066766240856992227668731178668615911663495992205455543072312860848790444337106488181174201660873253951280948028644291531260212536876753225748611539458077209797556683631672851843217231589712105759011999552959541288348163367311627863808241208997718927584604652866262179468615236631968422063690390217447927700552716065553312562733805159650067351585619197130300019343116343638526803741285852774508588733843487253582052218921419191864993844442001203007867983967298985794492923681478695703756487999304958528072029268266515547253477127606140437372769331247341965607323050692270276313136307548928168050480806521916995963400272985953733572030063337715130383425632766410355772316666682105562517694448221559469298209833561854647070821304070577809871891834330074586443986776422577640194440412174008454735482776879412079757831298151578134798621380132450111762097767465961452911718447612448363303750786524887129079914859490254673635317334363593485026842865534898559174733045192005474273806797109917727858068171272185715725756230709514746226239562984919667271605041847435417002114250307385182736707241173522219489922211543142174656990256311591112452395379844917103532754768437288776698964669557229919270733692584514189985699425186246865832016439146826385916538842050016773312688886585986880864493027696441922189712439902954110738671391500638285308882695068016554222946927316337128228956985200429824610002276351815269504797815536987585900034167964491230370773754658336019723565024442180680058262617510458619530412442862746568826917900854165003018173383168742067197333535827222602522583146546381745601082379939139378361623491596994166806870371957571300049791347989595724400698345846793961513950367965052550500527098314722866218336909990862505547678152380052184482310068525798255829604017659381749427844769321397975944160978077832333576099889754585296414027281587445925764343488779675227463236994309542461537520224402162020472555875512985927252161485249302656343698499629652171310875643341766517533462667322923119634453680863372405289165992404695274978814064645546189801683772575653714539870398501646998322754059775739217826808589172466700608219394951850082786416450388323943302075556390942742773907424638279350541207350851062543742326217522164961212726341676389074385875107965757603625394028397575503587475696350505084001163334074891837646492195144785191037906100583172386664022475500779135836277308768005399772763848018096647485663571801732024604758235222749761656609269021622176229079635990227891108237302017125867038955186153521392951751870239381914701919094790923395834706445036090502347220291277449156967991331776224269525110970454754666795355369097397960692172181082273577117630436085846406045890078695879334657549414043959669506517124437066673562956439374983264772342084704906288993954682845293379926324572690678290663984047608181564618148782936205366507174977837806221321327392445845611990524882059858770449513915062794353195450775225682749879814558520033573857729439296227630527786756448259052901916771811802385240410867708102520766623566459048035145805349891857564645703795419377980265236050678247195312630000391530555259623647634286980187279087969943017074020193676851314454738918725011621480572273730712188489813683133295290366116337203990466544590328726363271575707628799522933287082062024370040532902830513893977958575922770453998076084547244635048793256081043693259974955398710604215731430795150784730829595926523006724587937466794238710665772380716087547483446827913060981185227401743080910083630116632997767482667828188856751670739853950768002935205286629702405828490153304183920969026425788445748284020042378842652253460290068837791932068605913673038372157808637328477258695493408800504623485272653346549851278334409292819298975305709419025108418083184512424602985909465601714117096770489401669034971665676643222106766729696674784523885899883387371040084444604514624942483902514840953649543488799519104128662211599983075675931591037266227186132563927479688254141792785973249875927769087142350971180988607699078993427409802843950598559840355282727522410828246102264229843498694242018049819987805530107527777936020068721201450881458326130603997007400297754131716812659559422092407486909012105105297555756880975538110455453854771093455571894407840852232069354221115063495731354061840818206388334304137563799074630521271128852416329043099616090065192049335401154251574091244435028678326317892982828832694282227511156319495431492891332692180568154487310406543629541193564436394022949080823442304229295424008840430864301065460605399604998781864464504394645723370471051714162290054429092699157435228333074882774733839758364776005334513739047020594184018109287531919877544520670593384308922245762726876551334588311131096234811565269689215633414525753997920856390589904245875791661182374228323325685826567737770297802786857722866230195118480718633655601301744114460783494041989338109735133387933612825158040251839591869596527216326216808239766106053846531915306313354827814257373358339564451481592948823941758067238961725581554280460604759668457133689238288527489233627000171622096064877495074407570168365310958546896278929886193207866792520527995779569227201392850218923932992177821417125431689713603967783645394636618372915798816999341200370949068228393567515646432562051171659353425092228174326083343535061483634535037046756721846881549800239329998583144674667455610531934116729312072043232589442104719133724103737555233698583334306639882489403710696205280792235500063207061122259420254350073384522126281863842666665023592002126704478556194271730055523690206704260129149470969779963597774150104889801231191348320918859765843289499286418589602851241338215897109315396020849466453098468297479916706180478957238814319057667698884599678667330909259436542509608718400611622215285837602739967935673364746014035734090249640948736868390627348629251702545506102636298383512721354947135518813006678704928916845085676975257122460479015295336682148678784599216731448609148870621849504905369847294045417425075521021986521103777310392396925664441965065486883570172276062129645855101354070748604153513831286215139368670015772524388399491123465026789080337131833881895896362316393784395009374848271899149390734839002388165630098013577656528004713945214052541278103937122669398616301769577221292554942302707953571757017622174192272860805970754786587381898057482285927043222586083872388494992066415194609012336621484932323444254539237665614631226810502738946599447868720446256518426723219154623697115665437687149323417812148849860206190604856204874954660425534194448110230699214642400489586911183572379745533525130358182102441442179516499685049188341634800441213276408458660501408779010966971380616692949479076161570465729369631997958913417350028034110623068651348660217403437328230345167965669779208174559771476642901374844999430335643113935034275880040169278278350630634175502278447510108652017073040089930849887753154684698344084489210605323539016142285860085285154273924457586451207102487730417417303920775444560246964445794160675274151926804332248195025018219742814284083692769783922570309301227908474076950916095826741654654357663317735775404723304867804969103857957875280158748554154508685553847958043983787038627681466705711713710045265782953894756678629154984196969485933913475610705947138713535256587720420808019469441448484640511327979080036263306023405900432329063160930017574266568185228303611851042039855374088116589290628026652883146673664886612346202877676138057053570665018546656440625391801303340824266707441139570710140367797778752328173185423891989612629847397264647800652197361865695507514102674927309265673034603622430327079953376366391106737331293189223068931461933443191623849364782330801559981161099469865274671931002220843688535261807282134150683516188125732883587270336555197908366764415126414235098246639295720813472571322428357059275648632699972840447605227617678976788821863551086579630889395061724297660913090720965174168481586300745026267594946914464348722104557436109925743951000727776762576329565161957087421684120346109689249121093429298343091876020528359105440802070912874812380598850648845588717997929417155250919643891445494395897534616435051257427202525593709150003927081921714160387648428327807620714776380370319264663403061529173442264803505617431140848982801714968318706429933886836103394466466604843643526456191045819948224620662725890980973357352409212010893057392879939888236382617922961262808102188765820437307738795469544914260770491790349977854128408623516464575619519060133367476905644318449220517374389068052565823498167048797810651647687674412609952713558062093345360540725411804019873590029397003536309239911805463000420730481773214839703398701772534543409031619227673308948018560364097929203156130204616118135848550410649374276021547567360108359953609863635022088156475842831677653888269147421361571243564914548658616581715758193142907029648229125142873546981148397194534090024669931693690676111755154877142208408197062830162236745746521098124031336827496841158088032175569151437392506645500028009636068053796271805601462940956655517603046986128903744658613828029794100104228356686782364916841361161903310846468602391277627306726393178878296466645075470940535936814339011638657578796843070260476997951298539370573434878569560776254454628393293230072387548968834634417349386310644336902080672675250678417022743476731665912843582473767817198440402014199202203111067271365367885045500334375796720039952058578243846988251692399384810932478480535236514192994809237187131552153226022027169504994892003697948659717871081972874078519246831184747523168608427303494975530078552628912914189385043874291177410996366596532686107183044130863705139527165556118105617401300374151743564491852489864110674576738414675411235753526266385834497453969239267907593174671857276420217530380770784410158909258147624423641457036416357418362443421403374110440199917620804720256420359423842457560686863915653914421662724383606610844809537526201716651809015434241581125485964622616466888348282258517432323532292828729550061466471933782214322506128829193047776457036335542618233947415055960780000808249588947353032553660412528824020502864074745318050613600143384964462575702736142903818803832058852148413157718234267987632706610105110963385002157043852552047203415790080684112761369865017514117211923161267395507265664489843668306993626229725925520730515208732609131741678634533872180744788759913831219128841367190083639745774221900843376276180934635745159272081791182633662038171363730713596529699449007249093773684384707725154412111839498618692122051830126604738715677848161434076693170956591153507939888167012631411148223206491282541035426936838156691673880972736818832842388420952721326110272871383213571087691157604875315323139062292549879504098070066594456851904898499251647265060928213368964292755183740505877501381852743799371991961494584505206800738087979379006442127094898964827475430612285004177936862774271491964317485075413261241157738962169066051080197379685522769057319598081107410840822220952795064656288302935695743887125395829705455771203355599646624301346480779276753466699315734061311677048208665037871366267140003277890352785931130091014177786051150029027422757514113308465420515393485179575552794905280886513809537322268767816859405966315843430260751089221690163003553986194711421487075417961560692836316642409102578130261122181252166495279923482588180885966775080459820315915335318057174040427412177937149931729610001113912762299756064306085301572292641487092215075207610380417993830037962355622485908402426038827043207649137694959803108565324917998991194914987537591213367588067471491828385639276611803091229205261234037571246052430755873698366485008342887575825463959107808884959132046805190023570993309714642287237265038060596580621855226195182086443554771062930500011049010364360732404154965173426303681330477604775456004686231246710385255400912833910885938993836119661231453342777894887258272700467850932964303835989507239119696275061725912317095406067199311192388420770221886836454103066879280022626578374683289118398465479073540707763592159592127581805334922374176137852148659319412984465273523656529512913781456941463859012631054830653592786841009161746985161809559202241099735896725612939416916397611639940224558666619443445660936231509093482236001051165131332236568986119931563313702543621177628036806635629236085857364970916341858943033035032222064461712552796213121341556189389996624490917813287294484432964185783398533784980316787103730706967142722770018002081528364645104516157465347900692590897831861789726373288429989141704965760304249285385336113432645461308492458700250888890075308424251544150517332642776631431426638947439031279547483763609432946674955281170114426049360407572105725074449871301637904160901624602342332620195766864220928950774726210961174945860467737568714411019197211613990982558212713108739018647527501044308484120577851968730147259659241021544427530220991163577378392728030404069794537122025258006079633888207013861704109886754889664795657324973338366705329027510370687342727908224124421328932048120655074631725411693803712485459621560312699547876978764493781420609993498207439598581286634979854622440941869393574233769115314286284238148477437837393066363111320622497304846114751436159484081462728700369993180691139062581285807039512781734850621468546515314892416916220383029628244899592257064108005386187286263032225307904013509685450670312640622126821032683059300976286864331014375635415185136974883824325915361930825673267181654194700158446896908303009092350538339820853046358178373746197402475809678405189448562587068081816979234234304290993685879277098949424797559822380483138507275767281926999670982692037653134058692434362442224342523772999452968131978784430094582643469013112221479436625828810807660016729589797756450795361104599116407026595227273405467021090381147206913756662728098102056467911417520726377910201330558821083992579515125789061241407669473515067789773567060524040112683174144063482848770956210962994273200647107214939762855278048583568913401750678855149868489401829786092646915030466126726386375074625595734681912518501110177684928182661560055678730769358911487692014881056101111254766157901905551761483776690066594976462012946710888623013883519884181844665129611411684048260089598013438959170797062501056785444191019520169067854662818233901037473099063862915613284127619213221923447495701712321167711822838945827946360965044349299327710343364011544004221029305115127889643442679940236880840992315610258617625538075113437358217763607722403154090744872164004463720059315252105846861331246968467747258951282954125948253240664375048715691185464236462356518339359977106260123568900046391717332058376074422376167268366243545660812293843378868606970719866456453420998395914878764581896245890927303398164912560649419457495897023165954783457888627779782008191037632602639359258390323058251062927990825058742726610349759121629952491511750489501838462571922351592132622239278936245252306952479988821008463600430646803687739493871644150260820212730636315835143975336314963032814514877387035353051473544470889001205890903611783793576361730200602751055277989472232971483696036300115377821370388329181047653893662625963848644472641800289850300888213128862918190005111800843214730178671541608345870684295470975362419272793013468065138383706860875313392973835570281012452101173821923547949294407431514713967144393868789062763423099928024117882235909544380108226475632546714793736659705246073703457048308102992461900437532454111250948029283867779496431809350961506218851984484215738892984613492742620370174243834564877963769391150957531207786801041864685459048877128528342432085291116972382939524748903315881218662458432522336850422731086540820806443657489160935014824449628726198024054898281323869582915329808178667191004462452680266130563851147214564817434897800326370055598206416238341034383641919447770034909587185626511543667682056181573460825668925736095062022435487743173748986562527886747027313063273537089951421218081602186242980087746910378487475392611073239533448844841010064427732811492483021516058620543723685784332349690883411600677276323293432756634076339951503899649082346650938240636257933409905822409257654133935217186037575654252942627334188738810184967366575846632929836194518420761756832263548526857324860341487178715622367139335701728512526401582868823062702475562951850124575470822721896225270285069879942215498280766576054771201048831845743315721289155644695993867496272826918456832226307197733224691978429667858368799714466889924702883161933474236375694701815656021247315736739056232746154495559074837392656042947279027598802385552653165213576177346632446591267053285242049053927957676771074624990378132151144902698864389953696443688513359937625278484276757187109890884389967974669397841206444539818188615491670479613659107690777867370855679742135620328854033623384147450207231796553346698924167967621160752819220065017581169108840129212712999511970536877151445473171793791494268503032383334490289568987022995443749753235814935408208101012132811546503682557775198593702151477524000206672853409950795575450937802205526956856703531149073847322758186472088599827912580247700460675546333202504438789015825840568355731499585834202940208241697944247881118805163953598268623049138045513657025476354860570300739838617787609263898992281061518676863701868326158861104575981109651510491765156752693690194251991002659597667307245824730559561577813427253767146999883245368800306914122350148044998019528126088941412031400188476388686522066071431755631785108747640720213625413021082918245846271034598561505753258609803665809251771777000682795088166919825017235302897622174376077894816610174280496101532477632399533608821635378578295239944474757929373790350002677018735094119672253873686453679800217062840002875387240838566851232313676613614714626149797609921040846221207501082382625906922604897130716775804524196677573463518151848109089432746669914973276453956407159342806630798060277574988624378424362281765396152388045156831925287077405752341865486855832981367035045368879531927149584403772994638708204398696577588499279108294891438234893843169197710875956817796596181180858073882045845028853112566707302554820498099628782676276880074121126549151090455006272801056541043849533387344345834681875252080581525169059384473722061579980043104308962605974065300155320274843765369898299614619769688062536287361626452423929105237838123720003733501316505344114414948267801134576655745833516943162466362435351891151391276806957309373529017942681723241070860215571343111454286632112861918872039241716261509985259413720466697822276833730505289724318294598365415354185536439066270012338217428632993180568292232146941017239764861243641633464588616300676111882694078636481929263020987466330905253774894859296406061654177838431912722220490079467896141378463664137060032811621032418267005726485626125670320890199622127520045499720791764679349261988328361555550196817052404821637415163037485893316358519497904206450700253666161909230101117704063431374244294908460953183571266065272622392299203377310883277802004740187140245702099859901569128443415095024353338021597297578025917217468448171445441861223088419094363165484389796428122407296617769421243958444017003812260590797143799925318452283074018700551829914994329577742370600340266420780790511804379343168792352526981208081088079023056900981706417701997677373330153167270107528298417098048401463632115148706078436416706227465875738271768153281705342018885121186420560452993684118575611343882253968208023080265580088278285395212597028352486091009901588638318355873477128546971513426117443924955153360970507738136640174980188597367082394329809523597782445769405816207491052000605380347912982656718987373334278807863588846308363333507967150602331548110292369491753217964680983215347593708117108193727020055195706279934490544290366739746387653498914630389339853139585785604334702927669619320860963544323745092998568854484030049111636247348991605040174761019249028777553265798524091716885602314907473542398186348633935501082055021980893119079327626699824752324749694045125970154268877329979165542431737009513629844034360355760296448741063274460035971942042079683807672080296582806900024131941482892162077614321817886059307672285919532435513497206321975307001618769179178967445134647502396221654683729557571397904350201655712807462824057164420165455220668957038278628153640982584954858561746479401686724806497806796924749591502700773510835507561852031763110690507373689483253579675093621971050507103802632295742913988139092193975994818171481931642341497633779825345278045860897711365862553206833775656516897725316244529321317954481704343544029029810987072813506266234082558690074173072830643829574917888080305410522963097332324073637996628412323223873599538548677191487562028018083367354344570417571462492490536047758994018753653032604333181053147656257163253043558247003734845761703605602698177501363332052146716263271056694127872242759661757004191235722959441632782518481148136202846452878198018833355583236953432510912947329587882272830142746381630659922331733409780110651043152096861292281830579629902784392354582606945149554067857341892510464244467871163455327694110318993392959756033334827247921648252911303676512087558510684516534841204302677270339636195198126327009247335773509299938182556103794188192909909379283961192735112000749409968278552487719503883495808324160983444897654426245665484791137303677896561513868728251240552915237487246272374238310564486351473988538115571961418754001719614172730440899061248027321032285099492612897227466647358067816395637879121278175477452243828316345796470879946331012006576049293864489828221778672472658508529792674688568841510214349588796846624806736526875746059502064078422613560147477537498919851347820294822259415816669365153055485132388094738222664023794465696193507848714083406784147830596397698530949719474701852266486772317075850298117388729883045094546115048991708898933431985113023129590731858738043550453539906581697111320183382129175768705599035023341365255379425460784784097510958431447608867243458581185382196136261213359869536663272146925062729560418103652160333992782780800828505990631584671352748937436227713751024899961387803496581311648195592615496263782655183070148817527579302410251576300322907140271552637877716483198362787551481355183791995803760148942475039286385611877261466803063590292529410924283327375529303938970585263094507208283419921038352322540649903182825625169307466121287120506082950901222271743884331691366044416758632221251138341602914968005692651839553086227364036524580076863568631038552896028411381982045573377976526029251731210248411059312835494365825597002416708882391873639791527646547570930356847460290435623139047337559002613999615285347591514543066676847602267642877380336996161431792886091503299431462298433629618051905503950277627285893462924380527687016824494190946940451710347450591885039716197780361956467534020694447968080715229797490057536341427179463184352314271995359258183562942778136665219431447206970006733959919600983075335494908790267479473352066519131433786651103032437431832006206958675261537868338625526470323510509633786672193328181078280706431267859685911997316737834054677068641253290989759564574445554619755929996499989067051245966118742829680098500313370153205116985234532035001749620794628175250946556006525145867860779884939154804257422342315164266143102806866529588510659579295613780277286996722003272173431865312184082015847204393769339730594511765939760217558514629979166078581748620526858575570855330539061148561170015293986261036698601358876572056061794309902848206570303156527046392685989984292703556623481166791294007287310340195015699994285179697197420497689514849565557136918644233883379157611118555584165208053314016077470378608836902081657383500173503792034016859014628562877669337963976834651327344793802396457407092843787374767193034845192064538939200351096370546777587937374564128080781150694014098009916763266733099502998940077441752682715455711424492121569498673649312186860475660025260990994581186030638106299898541674616353463223173914569144552854654691820971972382923950289402240853007532385382881641639055302963452398432050124726862973463205509033215391347250247633076290149599633700974294896398854424706326566556264816115884763695633742465130895539246019829609537281665638834983523349718148731889915604569361563692882363506094664699993306196375354389191735826673700063210482321165766234389593954094221330300852115719852366725387564243274594073522722761711301330420801103451188032372010072159604502551473393334142237415481085193014116444471978911122491834395846789612643081228834009262142634493238548674764666031101801399107362626038410497939655278298413929655927590129281669482674357711540643414471041780381437795965237396221024433333271739663239925336331171921142609354774017647795388807586862015802976161027997462618493972546903417857824196878287021864847297412972143483187711340247721561530177418480783940704329310021923843926730797041216448689923459692885074234527427120694197537271751789273670260893686945818546569925740367159617413796813218444049503958711172129014943951315970257883829442376727199450926995550497208650501427353944016008321156953889552676653655187151672741617428716073825215085196757921348552884270645162549961003447676408458608417688402485485921128320127345819749622553343042482405110089787332955172920627701763987773899095460518130297549410985536912093550069480252110805414331346759431266769413388657279902714886197362828248646343791674404548320529340909676408780438507714282354715991597091997263509649596436512112603076780530098535635963898280727984151959684322113161932982426157573633962233438700631330693303937815106252358748898728479741050501980289316672237369297435755792680403454934870635261114321562545328739257255645389924404907411997171123927879728051978836800286712445645882865511601925957220696713984627917172054069006728951780840384467412052181178999255796640064294590205699426334679835399555406213195558208172679513141592588015409312339801284118797575673841734937823498869756355446346249149179510929196315659341068733220368015437978463131063362441275373659142909436978199378083525026769201113948229656003107333278202631770330353731051522884467947393535851265209833154943903614951210840640795165903134940159108004376098551885458360615231025486835440292934817479450043034391602168403642488260692258812511089903263219182197076945195511068483433751378141731823509948683950470592129605199075496036944156142303389908446518987555488181479345412806677751342345136909977167723406914253196966206188337381720113752362200613089681549004937121732734453179630408348283853363605611457442876116974735453055229605400183518376217472292434388848552468396343235215696925949099517038085749426361578100967341336674228715601395641574010251804999163175262312807429678745330108214902035633507705067271158196144561025763017118928255645156497589399055192425689961473915133515817840662385468976985502561891670846985395057772283539663327035693728672393374254234041364123270504628730934443182927185717946928966599248887165090031883914654764833064864143700901514530849874818709184145948002716577861429555750158979268191649385432877472266330125958289778886086761751582160902422447014792667493500888080451208888577736266977679427000159473860197761524994939155672837695315577452179459440882193493164894092388205398929553818693618484968207956932062253548863584638885492267457732650822420151170107486405195616829666627659618836448139104409736348369685436932481835581658228159333846244663141359124368318152407356474417474749649674582656244744146624080314973343069817313240531769527717978244129782851662137973506423699516544986976517624537684959688705522228370629718423931924769752643905899004572280657917416872414763730254339131067585559229341975062876698732253538750532032309933716827970208613930421752715076131649162340456769902585965026876787724095393547445216092336445793313717855712016464572219421380432381344230944535534052677537127014129060845496668394594986443283741555955105750562040247276911368442570237153008575566891084761362160804584444129085388904595285953060797780817565353226904689402632315587883352221446141981122173360020385458661886310475025486330333483219553584574991781936913836415500631352128622543137092086613169958096294145692885530172360569814907941508110840633821891472925648301181370533745658180402796928058142725888441711299436615015389239956731410763680069436784582185632787888863016298229416748552594233367864967400402298873155112494988508762998113431986278308263602512609991644759914647805650748335359022616104034816464344361875975987590961368916814061478364629720485994276804028829428323852276030504497943140941875349792918540770403325363047373568863678102109752132192923409389831682919211815209890895086138859936264886477750359998994518762366460878188977308838225436438800282016072562558907531694655639931695476567396656218537463000878028621421953318024033061635319783476273086880487962221234587318882936472184354094365581388493362019171316699103849629505174818779085423634631311033244816087530640268897801877182127712462441378031006022810072397159460525666061552247117697617420887150157469818367911452195118803317246742038978467949783637265421947887238383557807702468183664666247530017451390570597880033407862791603965612964042763828592207084846760459608407287270021143854327089317340721704409114556085425310935046001026691845044730317364383993521647828749556083825270247160245967113091030146678246160073126736770824991909997297421074367127380141535215844641784597773465888953350516054722868357488939002176848222828819942038946875605445219934875799701088879225426027163158301958718387036355044895814800559404369300160701725785082856055108986163071175563789798986946320788669105534392541695743372585979587574484055280924292993485914795532592569775098214979579696098321254250475966307430635067603653145170954009722454914473635985948448155854353714664418749305749845905598374107903579411565289461865627800343154278882078405389899272973578621422970836899184362655634574839114119668623861011561244023956838457079093422840700301274254991867378567919302956823113665218390484690819669261962357862561550461784614316444119552903622286986201464844372445448689743053283001884428565386022877704052892008308663654511589813678228693051084577095459788210852072329409768400022652067051260936055272037306528990579747326373113061576068517131328589751827165743679390594541033001205131005658409703321358264375910978909568563808988028482662002408059586530181677902052095198062181408767285826876067647325405551789298268841328691047448637186598613411200138924118422923738339448453657021793904822627801082750303766665779395949146640303124479252800191586403015440905397326105901548019348588133360455338009257746087637414468614979922350122913901877536096957451560795745677092190286401940428733205938339492615407301719165059333151404342396518004798468865532299654702093640058688256812991587334692775535561582979825669521840588706471527747418008635564736564131103596452032094130165736361718269475178163435324668153847674982656700309307379443620004875323706636348835944513652106632379905650496436029521606650109857013335628505803801732539176389522843648661436217633919371864194480325693827417009542025582493188525409705585272806144208457441786894300506626342041841591635388494976943977056861552547643962037891519120503232989930235554983943799318914525275263258260278634562793266057333224953179713291406507943527030819048439599829553767738494901370280046362159464170591491751783236685021916991392278145908856825474446755320225529906590805701933689875275762816551028300591902185109306808725529444323669918844429108798255088062409350275995552919106865624962750288305051081331487552936507203911126413089323296115419904307054800418065714363149352478472167272364864341366971244503881692554838097688826990303113727690642996826564154903040275999666397007442388015988458965990826569762097095127893373350864800904430407818827040182319959854772507575282252033218649371176655037347773893214550042767640077834237741484901196118572057322436024696627197904651835180158878972022679537785315351619100208223315169706799281843732014831822862823573288126496468780649152113068168668925514180683992818707236301167899874305545546547574591159457536464069007003215522240507866333622252920268325679649406494519816868985452827303963757836352041023578094885670716196094019401562525089622934454558397839224942441804446625715181387530734171733538980668124435555906613603388181490779507543683358649817572417436026934506920951281048816923368600390451733303167227962431662190526577266359186233834745289328620168938133897481218618425614806232409319541446848387255439582119548232862493987304298282630218317482155227885137176712575245592340304376775481478344550086476999913661847421981426683915106921543206622885673747579942205788721524242843191437718626059261312218326848925456365249904587348348948272637442409186008869398502947434048390421506360457048218994044766630588920937850247257704810330997362204022231908359398255640629800791039109231376753769185692437045814019804563109834458268398113258381945345410884972117426746844838712013166364992354990714032850593287833350601983379078848928155331670880117031452663834158614832136835244742128208258715336701212539522682733939829079932478158842474706239462553627174968340550809007486281885110854933060575072030403959602624763203933248635975766594828627038712382724387437374994996758492886011313626964504312527736356917476549792191055736842106936401223399862789506130971355011195601302852934660717565243087190408778721570925045981127073726050245972167566393429129851898889987546628358897557720010033531517308807315530320518127493151204125355179575297802006655807017259166057641370590612247945305101513841823576923058163241555852649071371942012407068319872685529928151358185579358462679980019366442975438827604287413956650829574255817261149229276964768424864247114146743322314649778347574762005874230112022538686630568318106432831369622279809803136944032311135048245438608287354899510304394456835150799380197266888195308765070754643069764995799384322908371920328726506997820433973238574744729683533244546822895405204866426516080456558902510211217988249367931018461883144442744969282272907038504785743933323774865615226204207755826394044929422822258589244325959315819624468274846966584629302872851407322900474199395015374988774506833627713123237730003516502791675825623068761530167025230395082360981849152335053605186450738345535210412892171838827428142831943474646997545528160344212866362078101085978320745406809107734764570345864648628626806578482946060435772824649672938972385355435966381481633332092556587256592579734385688270448880154395644225972406027989080740835961223378645013495244400573896466273642127443337879197518102483936813938405347851468793597434609154474189378425550795812827404477578840951859629929244970432330952685851839167793954079168874112874510027949273249126304906814682055994654695312482637621731244675487430718259301789155234158256114477179314275373774282370651564941871141494282318311524312654450788854497094787742610135666802443104423800570248858953718026788859570582417427897631898956610371313632905180518994458206195533466653887286710090873346703255571372422217531452420522280811693995956035727818668504721007862107363075532653698125233673468951294853015394125271413631941758521392952828450974801601176313018087286560916121878338052499862994905625776083291292904264784741375927357209982452216171334083257067397924286757211900480776966374542913344259069663174553297749867379498952166850507453614360987075966935113310628350149744959326807391637254925138703809900170685442892330187847481872740977158163655566959318101331655640790910595038736139372300559888237325851503300336796490107469137439001401224276245782655864035901231975231399531518541348754655517260094258234062314006712414243413983975024566800385588760444006431801977022020425525549159608142838688900784486023796333098573939042781984031654695997559160984580360429620844586584830620732595279900220307878139400002826499075398492635514708667377198135546409110014201130469565840642796273504552963414868288474572738926848010010761375797650939089024580655269205494429968287374302590089250750569697824266465508145701717814249436236523840747085561769953553253888744823492076242787562229015922814080441286831775451715563235026623002441979780933086047880338177755905191318265035232952225125852491750591424917949348198307303245950787219109008507644283085917992165427671467932273053340396886739072666704544918438989414689750872049990836418911806632911829820486030161209863710470776320791281298615681750448090670632104483249803287770822817449825124739795043976018222933057698185074702714416636029331748191341544831161580126584464304687150716131334830105758080872638236195596559601753568083860377101504026527800368659724140675127216139246392697101493116949392545670743445655455468564687201368324583740320570850687842809030077566780164763159653462597260944787123535977233167454368709451398117425435735961015372850918464407817162084437156606398675681095362401255239549869285843941557162489461554757118101708287350786428154845210547524006215610552531938002104092069916361414084986523973186110287537990894295475052416484780181591936304263393660786260722305747463748291984479574230442669435147100957216290707448195876858174130308969919043280169421273664593459343815438901888421013081609559906146239306186027550078090788035673247380647165743462947351929403356820760811197371943071079020552452826326763484415697965239450082455464522273667931283987569570363301862459489844326351032343418886368484136203032365904814313609084948061057676409435021443686023983009310138293094266983694473444584528726215955152298836112966175312074751273861844030752035965717099386447706136696607558514015994580825993828631013431454389302166707876921454297780952156392519042350740623223348447635999492982825905616368540778205131027963136459774958006290341015979585246007611574939735754359076493992173689815731672026786211043574377260472627529818470295235956396090305727210499892768599440747499796139142566110377631584868418556136328508839337688139210077626817112641975479155373842141133721160656500516182962714027983297042798080113929719251631213608702290803871912362242702912455190346033073961083656727215520786424380179433452885571244485479457681838616359341517697667348065091668531649629371409740168025380548098376891398962425255257947953679753681055056400961822032000566154634407206619618865796216056225176847816606212712070476982211472175828867216999582006067369138929480105513281352277593818951308816471894033309307938736481985738055892483294855631943814572339448843981552135703043597451031136492638057871538897447789217852580221252614785404215913923663485328654302208006782847814150674996486050085716463707869067628282708063781560780622754249989011677221830412201231867955555435392389311005116296666524305331388853294885870281386601187537334044076813350395386593115439197539884808213333432999768651805904401519840782278925490251376978061020958137328900248112452617472717607912515672809648196899119974598190582530229831443776899818534973421540451285183699506198486526371833391281184219515701335935924880527985115243924932589308638767453865934730252756113851189705511560563220551334119946158946658109643669780378200719537676757861912094141531899528674310354643789094241470974486915867507065569249654138334382668384797309203619615806892023321348118441638436024124796611561862473671676951074241772638206138835998719113672144585218278704980358783880413027199439552522369983451538572121410527105598524826286786662986679843698112680773332659983198405648313166578935983924933671039397850149254225919386900011602705723609052805275773491918051625929538733008882289111175792921530714925464456606756064860046449503083943589007772218229698734817041961299771612186131854317803851330092489456044850112303380914737546168139835162290885786155095664643737084741415756553599372388806187796200703814150396398979228154913361926613309850214206095556975374991306805187060442161235629861895808722925606658168788173196834132939151432462827976524572511856526394292032625096352607325875244900585234732944529314079177074985302308593013082848588206301550968001178795767578746999844441589072722957566462302205029332813027108907807519717297370197009635078987131881611904067532536606092411687010235066291925984021152497269481632352543651155970040685380294150419923686639880314343476022811870441103394243780881163997745243083904238517421457563637820077829782918051615662572494935590970765332868131926016306992748564036779949883608415086497146977495461890952866509292543390333265192353986799997512493909125801211392923459233773207770289231669422883382819798944253996246333291511548003698641669179841053884160659760843773641457925369255691445939049884557732677238489547487897433810182068687979400499978464183958018201804371580726112512427546922442892670336415465429285036087627675545213283540285391373514039979955193206312070085581697889899004735646379940620616216122008388374802625795238229246801043653594916362944318125210663865009064822757015943021782792199015592123418821220938232129914151530268024133725450120613304288269881111945547629553530304683799806815424991340512311866370978486278026461248011880311077468791509598655441138602618023404741065438996815601451491000888536369823122040866460404574888916397012313976148483023181311504615383868063841414806861616721161547685527935131191240310541794204538458803414801531228268673365308775029937320067715799700559860259216782959497088017997871430631930404820971716522147403667693233813857720622816023050924828128487215080706434146706852760917750604769487390634321788151402263009910472051025402930854210043546446196979317812021800434569973218516654943339564588657611596404651720586502220246429368210911896679361684169087934819628660032103343059822651297274403628775685866285037576770049466485651734032166904695411209074491844141371433619006502685486706681910924197430010674424808786014130210849102059847007192702333627752150750870957676168962124663923653866815372215397827651102534901452416011478640474407585262026865460237812826152337045476789123032580038820594809197413363866055201265164610171691105715550403920901136011141392911879672315117299441543388879987494495519740696989241640122682890120928285067706321687919067347190162472251185790002476662915879059367404776539639203668999784273163099472328291290397425350836814580043079177296722537852782756385441431542103295887416709957398354131025417943231623320150979257685295074105122544395051362129411080938375421057988137171267481649643481028990792767932258256943576126169675139513635030729726167954995536497102363298457299044708335458150857898744337056650798268508117948124199728662944985643050274658995540030862096105733238811906667281453726639470678712150915688689608932117939453752291438274492002756518717581858895412589605519383635420807230720989055546203716897910136533082520293785899946790293371457240127199319399626266932982092656651721354049875721268688756102291510926789451076178265934749064571271119642944765176431358057546177286039509671491763352546411592035640821334935288856050211567508313738557667168698514755369814978356651040188413783466934858108113671252195901930248790739353362899809155489819665921138058724420122078239923187438608901231789337485970544337329325960426023313502776877280237757320156836088891252814371651975582938271773098078842109534142651696947888808153841522332050168368593838120898139656009508289961227427309356210158795258623297795118302626052457404848637397852824669327162885697895334602662798813335450672140554955730211244835524079653030337865093594040923407222663096239506209077771507467836919881473133093227354918466126611766295046699782627937279938533254838873535359510917430440245799866514258105857714784940378716248212783770148226954696604958078365190457184714115423123408479383546898930345580826355776074866100993691666345799433159878899228870054155637432582131294527073328356611554681168094811187016087559890763844518891020253922997095486541123420560907332454622010031057251523075440624627475487340751788157786336392603465167719395525743898979821200731594874572725701442686554020105624810846771239902238631309360836956566162669398562251383913688582381961123414764036090946485885981858851842222936757272354928726824483969377704225348006999796292895764054343787974267062532467269597504814417821315289476789225823470220707203721415661361100627506271172551101826042926896016707333437802729533316591923538609210410505841172933051429253659205624766931361829683683758191296983304469424979336383636220967893369145429038740811354026694078111306828538375873856900378037812074293010124046351104520007823791734828186227607235900362233495268813467561850009569958657330729963862462326379480880978940267745967329692696876648740673146600209311241495174415429911498219227103668432553883806174669169438758832521249845109303832698247943671176428827124421642214854437739282426853007729103507828798101724819774128264901368436002579713120213034643764677212485534722460111852994317245037587786287384109127857500476275190665731007360556282358047743336758323820366989423956872568069032698155981797597002068783430886934390270642220602511676255450591982871565939935861819110806755539306548008872878377447100595505138060460601656194353341886498911228494572945505372282710894129117786219945707472640531487092282342859733536065242796857640689232622443474660265944712194266560557020461743909977465695301136882786288078280352453490083652055919427561886952509665859787067687997330991725848015187548453324234430222698711206957303692724662060794210459194018581040857576027712412201783343925553176603581280014671516169186199902935461452801099770416863785348478902855677099302012609318663052538965467086338675907688765583000488950808770588288344282540921167580912063561021238496788143549217861040788293167834163197298046689779967075853797541791732404548593096757572781742269631228386737445751627874657876071610787493343098089106231909370652670917098612928859772110444357933605471224342103281828774582528569338345965103206495732658441267706219815357545722578587701558563416817920633198634981544488343762644447662800156406346756168993062364690494421990773848896392113119169837291569615682863792336003175939638410424124289586147815760390966584173247631413024062539320754107538128300609460629878413650788332132295114534080765626927228939713064890670075924124906309687486803379933315963577673036564538429102938315713768291610033262482091404649963431303296648021228486310413258821524854092885472542221042775837897768293137970143672113028393069743116802901613905459666730158720910806710409926466684786774477077786947752269095937690983411304139842503787001539667816112410615972188903958333346610975192414038957475744849639791978113593669042334300515496112973322972359666633117371268245015472402215070699833588416079264202302777511979258357879731331048994812981284139832195798013046748013702496512615925895014621225222848568703852713298651978903659489803100912531641761038593980544852261458434844672581419246462146414292130667052339814140484078345678194098864832566237676804587734919465235613800587068541848771113538506606492899638136180880130251259646634844582973893286607455295448542976363088848842916130260340668422268745162546999916131084663027744651872914883372720570942602305818977353180388918012191548292842647163510307204138045823577751106558765059618028945804659892211087653264476539310608847998678993450362174729103532715265718162207627237547809796050530552128208448295787313165315678041619973122392227773263081398439833949039222524943275712505475351830312664863074677047431518533122536925261819650450110243409407615252467609207792564779324097743832780315973115882835816843405522466126559025371573995823180835307105848700388088699022071107502988619171942867096706278706876994062050233535711009259850142135934860095657743049852593936794540682210616363974455973037742622525294188335849751873354638157844940111144542122488422893839554472396798356610641883755105864606650475392373096726443364618119642405891050278795868710551455308260527590549358560282206914443560258554227447241139009133509742493546646086089921318491598045987661493598988048924417448691388891908525072794844760317033632436190578930444071979406768886696339109390121033068028560405243523144901425464523645765011977339102228308248720698057711060894272439485552455345311350827960324120443032361038055496142007327636541250839044533916101094603729951070563959435464370171997331989005398621096171406440706140707104978868536016935931845812712961480006287696380347198800423312499114333538825675749240183013116721444781312034915286345314602999611679361676118848459779605140442719773180915853904555122333830230669149388443833344527075692780918902077478633942952268525878534954099869484487318644492315316934607565171018740201457751442752941850668571976522430184639058301263975555709503233490117649784013909285039528422767177049639305959932521190549770931379168585710669028871626312015220026102526102534958913357942448478873110772094393912452054078888948545132421163311731641274768435044964447507809393216790545007789866762868365869493432625508762829522279180319350954370916232997119506028432357881525221331234910539838956792238140314892978604865771779715933030530154699662451167916534250515860524699387356667827936484146831452828757495347832318058503762516385750225026593560798773420393095949939327419053421437500615556005671534498639276196822460323576765327080642808054349152166884432792517531851437422305283415269592561354821575961975165705005222488044844129740115459742207922920799114077529916858853763405447135983944977868712699440600578066082662667385279570549931105274648040497280498886993653736347491588586625444649960812701196197776665490508482331140516512953418476920818947983085235941349823921922795147664425240659331518339601348534873616546828702081882762196273591232496355000965333743528167083984840271883551697504686173895877769677173975217138013281914432799179515466429814111108665567378446178112142471465654523858063142621044026092326901907645236754354301141163110564873590303776237073849563816577078945918871269572217272193979388663189355204993336726057927357123581321529449393194066445206935240832203334879960372575520438354186935818646806765398994758634121493792278347016747347324696626644805451578989187431638314877520509357626438735847111215140704515695819608524028113665706830571253941369912679380650096748240202511826235987406817326397831180018036826680931524329440672311855278105019190603085164769441119902451298672154152557509015974547902890670767098169036663602491342475086557919245537200239458497766666181941721967573143319480097331799381460337193675079372650537892422989609898636582975399072414492143425422573931600306961762518025455835330197997127285619270097461863174093620997212389669042906284428459947440536203925016515601823358209966183303086327609543345217034787799839855175052337405671917603112411163043903991521144056767415204971649850174267239583066120144029745836872962773447841744254686535489772838013952170652221203456291655195658000030294470002482527422663017744558445733528499595482690186551395421879031787976786488912057456538835148369840733067030385663678527021251516719625719702844827413736568974836299428549075115976411045071390922019297594915186698348071327124226332688007497287923591324745648811690130537438324754137374005696117549696546407314141769040580648079056202835907224867813797331634625154678031636210432085736117190705876536908310224634715181734275537180359123713271470714659537354662072577064897580058408009522522494565865088612618941085342768285526308345001312228535064157029051592631558937703766557570748686242522542009218004249234750676838704997804550330363141713998063077326326902604949650518347550020946899077698111323918147506652066612015551448624983201223908336160775695502142105892147489284111613018326205522348080016881200859876619470479021780654978635604046636433928034527928143050199215843247230226241634290887722175502133333312091300526016423901910919524333932692696705927161079073380035245588052367924880284419030005495068869950677845503234823099497353304516712355623822221508414275015667441335811178584443926406424707464950454288437402883482540343862569293519586789994039376465635730046805873284837690346228948435082737417532001335669887269824425581342439037128454274593279050971227874482442238548909409517859000722551184750051030936687504050643276109640095888536111427177867497013085561561022991055762428781896842638210193985669573504170731823637369586993249840720810676900055770113078827923538522947616809035640041225696567466111888316235680813986490891160584427865010713521345783540707232567776172595049449882008355473291120416540883221092575140157234046041204035975179720612012478160283933870894397567903636790603292291191307059839754386831343934932794596871332957244718797456720044390224278432588773175166203498774929799095379982568414736328056339557842284678528758823741655854615906995739582036821899376596388153220672491872970091347159921745605543402179565566527562668998913844960227610886199445615454232856104674284311708379949087249005613112884057015329024611441761337500568955938284087907559730818518794630236579463999901871018202271964496685279362778742704186418253141856484340249711716328024325059115591912112678788924805973702386389216062814200160501378119873652621907130371388880434058124091271361350870835766885832013235927520584538491143794972724519620392184068982192314574743856519363435098323972792867565289121528250864954488548746241793817251381622164213412756366743706817681204693436005174949208785694823069926261611292845205344108758883203110281221242816966594220940423436535884163387641445398549222685861015719594940334271727257628740331310163819908934133892591785761672214498435212639018940266364422668153855227038429050058897147205360416424998101933516564608794865768767430252139558728301430237075638909259989587838635570931035130833454265048454654222755628731526191141275803599917462668273544615657079681118491421096345701173333392490682238214088364372044576142526277878855111528598024327305713244372281402714720410717695968233900565710211379102133978374023832845170808239817061621774763057943299273811057750941146395611237864240729036297456775834604632251522321404590329301951455069445219820749503646434090260024861105640513987029137700462065715176106957732884821413361828720213201124924513380195255577988390132706549967907023228966852937146315449595080791177317596441006404740141754495578260052434882440611591728498057883435637594207290936575784107061009198123087403830039187146396558457621405400316820367534603941945325334419610263845421078606530704461167072815361587780053421927618051539543844970998593596118554352285207444753728723053374165121143094437185530168934568597495309698262718303849408118238292787970321796782345743796376041182582175545776307457231265386628059496061091095505816497846225207676094758029101531353107288129542931476408262091108647748816877449687994028594168845307581247410201685231252659523887296677628657070340489083867250080031644802831980032771629945581242384944457550327579603092701953686855836396738386680949279617628387508717539939569334346675170704766483473640609997054578002954713824330718375751405562790673621847391227746687276541920862072438397787732699237956904460452878960571539254847066006383978438145977430190510541041634916575390697781347965098021663336848105818051318638132042796091097590183956626587127369854510821047020493481965978937866019417744344000780204554066796834855984564630156221273884413268145222586347025605854885161567191199326966093333370741490298944554196174469457397016945953179611263828951927436028168052827364749674727761632882438411339110582848443037663179312426014566336652839618924703267836642973021498048952758257557004993184418009372903078100361555964834314115163228551362297841043919288134162474403718294283816577958752429471606334939441831304641507102646980679238342406840673004422377444743421067016237811463570852799919533981936742235744875035919005897006891958897003392148241881202136909934927387327299235856754053487395063664751878172114092546487867271213100394794669455042564713337170777945836064304140474261479866505198090743029289789687867587572876786735401915482323317610395269918434862216521209259300394113770738658759130978558414925716579259191446160843025884305537094433663059149498651040968361820632463759335151115420253800370353742856932273471681016660306247428334113152824289782352781536272269121556792545903224411941650921824922996433702959193577826720931592722212450090949489378540628833930663775868992318673503787716839575153671064953369769401672652044107281241121121399558825325631918614034829853603641611727951827202953474651294909203287379484456354672088897122890047996383661529610020616482009710307631372170516898853264943411878162323372035793609726779653927810683038909420038903464141725275927883559627830238835478225540995866582472610355780179566631195896887633764530957647267510268001590185446015757108307074591060250846790668291382614675447579208460715388458732065269103822003451690295825548306996098432657930478538131528031341571493633043160201723294755963640509027968931564983433782755652834823595252691143511338627433388508879448867476633711907291792317706634513033744544634150261973472669623831221694964633742691527890235144464690680847296977849425961755645784865081204695963119077525083297601653067211206200165691175565685876468848076459456754344028252048696703254896976328811667244032950778976468509595582509739321471851503895017173070438981095802144323373378733029002707485985449758752764924593972706691266467340123281902529840140208436954671478065771628718705689756377633852526788395656130452722737530636436885095611625123452940298438515377820951812653836931336508424095707126773733809040027860611104510323497837673641613082761856158529833816003892858282383506611227844379299828007574944936422606117599872125525902725381769878327111627188145146825996647383776418548943765263982894715223322641986980698225281512911010319682689600862511697004295186263685401804533075510851284534596931847879454665881316266461685808029690835643213768645064334387396823542114727341144422935788843141247038612281620915631356283970300317508364227781690666793296300175119013110566818079714844848011531501051432559185453529587337897069566963714649570982864815274401586871783362622694170121337347981210687469800553597291334313180020734157468788219528305207401910964864444306890525564793651290822938244230065123109485327433266261072751559492014036039848086135658026659832614050556765016200654910395014311311417067204782304527357784639116069677668103120014650908230700833968100485485009749588983659227821881428958273683411252662845036705008654031301745983487289841583162220252892246521881156581334923440710296780673520743170561300571204422840914262770609992343606044808438665880505021112796086936961297778446879759474836070801302425577263228192500782487001739830272593385523947962808098503832420104385982900978893802989293134053277679032594796114672884234525591061954160808151338139590903108475936224352870529826859117630104181972353729418698957894507793834950218975868739544629250479336019458837689182207613424701546781577344658722932488529199406111677274766331580309614720046304646328231916223058508865672156566980143640470741784290909727836760861308641059139784099861985418473557657699721890843763337361919832339506796259222107111995936414718920637729786266106244561996214636217201492170632067228817915150386052817694668587986425716567702274498839684026766370677558790552545154304628376345098464973653111745280941649203012340936719944582713300002696312629527065580555767979088828500332044247257485795266677151197837874280697230930151201833137416229890035154099534589584689151606363760120309407091039053827084645701809644419810699800068860186828799473246098286344142876857824894751825915744685090948091918602485448619625887384155304041636673454605130213461723941351683171169186192435695353267748405066807157715988628561128760319962061083922170080702272207672239659051864033289513259983847593708577829495317205732605789071146832834789000808993566812128216557929258682557247566021502566444713516435553431599981805793512776500067421625309077654515795672105220374653665029541724860482917570880055618563652943507201625044332977377781416142014256226146807409348476422085176774091471752955928953296996260520143635096224496607200554862000728526089002185931593826829834245529380341088205048334577153382433296525881029449553892948298448315468807953506798549941425498009445688246381223435972658328032235788720279165009510880171857999435071301002467070981002238100933144359467027056640263483897308416986404148754015966710496784662645022823761376459403236608081486433718793571605432035934002819637730303391561622302429559052249177824930783370543054998579014898560256913179567678759998780851760059564967170970077805030828101948979760077191380681854567126172550144558549105385345612421467028215740231559588130831013986450789949008001408170159460664023074859512471817313740420170084093178829054189033083988965661539481947702678765773583441929328418885104316486950465830980695918418174315382150355225523600632972055123913411386296534126850711062468188845257598129033981022455764487814449090306915027783881107404610440819012922035293310120999647588664683147196103348790733483537625602023476825910311126072466324810217261529430303833418958177196464373893198521661983033467357171504880833561633204678465940802981131615716332321624130356462751212307512381219508443673317568444590818731961928351021954039333075364538133501501438186819385588132394775951084233423773584605155749530530488553946213294230292961918815577850064078429152913763756400724056773145825850107789058447066360178252340549106022794927689982513141359445913864117120908588443719724619598049323326426064948924456854933238122590500031390251487005867952329280169434587827674312353609321936459753571839888680912924612060032470235196154609994767484113388786327097530895879209604710984229818546143018420397263744627516214544078881334904555671903629595207253253619617551684046795665374443405576993020160915814785246170819512654671811772611831339452396744316966284521385765994802264151581879194597563503754749207423371789204109180655135714515474667543164297095186129490248755333855705751088132939950509712498759371944072682625716942736672562136716917887429130523756612386435859626518857529500378386577488605606376587662565654876378495917927232630411541887838482304784401927170252889286373652258152240423164552400734215622702584133377690586438496424778053328245245526829659228762008088402946011993568205882826465611146291665728284017429193891976311505329764852347142053372568970840339021859010610084565492854284274486222343848322261387315333256857349702692765339899069853174400375978049803609081917042599882957942382187428201915688625380855591765644619722903243139115363131991579895675320882091263235056439419870313931545205353860368500812195004088560875570064489106217885858664956537878908170106684669305555283453185045519389387465445212949136439484225577807667227262003529178273835480201945773527476613965693884752640143279250043714260416377323951184983420971148849492408229501434637137863986868480258403313242320666991480486459575544816627073225986394548420405057028021733131052464002282677557678538712081263203168382035472865458242068375692923566309963519414292948816316234993126662963283149899112916872872886818881649451901755458435298391028590159987850216670203127079203961343122963432306446427194889734883428493678092147134844198793297640722483873467264965576645954469437845192968600463710876387075885143816454122651028592742726298622067915041942655794496687597934508231932885871543053053776278264032094017695968503187626375452295778204697751904187138728396730893781523560302331508197574294689348086873668689023398953195116005730173971646556461930244672922497568810330388574000851954143113999169022561848251733097616733708035596649102536491694450909671754549056792752768751792682652334833890417217908633463159253070436516481486332784079316729113682469632650960449075569080309322247887465135370117872250846452937562961575540079627856298360533319670324797574193913605125618989733172957759871393202999884863948353687904019571156490553465072394693765020972419589737987944517337611444561502232762531516353856023285601201637303262269753419215710905821735818962526188040979342032935058284570381009963331888295923351853365065579130797123071730820742338432509772830884974163757451890543489525542738759097212068551957880949671100863115130612613384126786174428820520596782676231097472166968168323573765001115363556274737869651453281256164549156955042004722880710387982941942892773003174150455664062084484284683600056297573972613856511392551004147005838135638770648741463954679586399132653336258279074747121038184653528072511811760541030825266519150724359596847391937412722344262610089905204439392515186782722620879342570515217182751098088641562517338101600720350815702379514200906490478428178380319460121322061798106373082221062312785873264185932822639865774965744507714232031978676664546362541123201490407383993714037178125765591804187838108889561354031893969312736643575273968833049390047556014713392481347066170292429723735576086290235775206374489633699100649885633349086492832067240800667690763471022868680039837812577651085302845187030114543459041836363957270503921102558074962702248094953556524794900179896600006964631002306940115657622920118485663547568819494654377646951888513710428629212547220118796796433208701851596435182242890755189729535258209703740165915620014160714213940542383694828038365887748265302986477349150351249327496022797904432634037835192575503446720372938114347330185868455910543795015548918271100338060536960047810219024642223499167329721983621816268735875435291830678886921351806681727568620751688193963585102209167479688323804778400810560208026112254466823307569858673245549655552641526721738660515648241676121441456014580059784848171536337566901548795172469408847073293484901505557361034212663516187652478546316029677537995686060480195131742518658474870470801101697260358193283467198044935591127658202716900846581564992714634355586098525722870753529939605718587919461645185518865239017035818714993011697573759180823080982958780769610061218361934677682512373991613084368886133716545008568354355153093679537114519497429876809431714640156261807650660304627858838860619634883664291868710840670703956216554304043357201795454630294558045651998562319137742670914185666651189442520608827552909502981011696324268050939433939190584142096296093662329600681339442737475633433691587702661366423443148932452072168874063420569085571620787125646614076038421875185785846026484228241902407004355468172428784929887505608639266420189479067803016307264023920677461856560599556656130959622204797575417932893522663959182781530245881039049856098005364385190240392928068641714735439617498899018246980457266999877677456972246893175982292982052889548822340393982670054680548380511245237351905875478029479620831232708552799542747102930557632286673276772571752148331440518312920429660488376079021694876544684454757742704280108035074094709128794138657516444377137844934790131330862109368166771941714775549452413925919873564618190094210969267329596076246383253101752402010181074477546793481707452809740420714788871681997687557720525732054679425447705147671868184601252298426733806831730163850452596852776537627141925745276945303815324533424026101061645339421817536537785658928360681274479143738842189639447126975789498683423977866747036574488851037408889800024645733830522687101521404255557656770379696397994538544886778963836639514695312897742440708339290157668163057538767694885754124373669192382594682480402287383993527894299330590596633257965103725450964397237521135845258776667175831557983356923152820656460103958836338713357907451045636081060673289536938774786959575834846566127608099716415379284903455963789280947532616872394705691515713600757478769989959387635153671741285945987947093080051632254572097943496875172406282164928623554678487947564548666361629528162262537057112454965863555024220575095650903251148875356044510228276656001425292000627518893014381218392887089716665708028005394749983147255922670764169196499041857058137681561854027551559428305387018585857891785458088585828008370931398857801672083098118440056612733369622285151894794210561515607148410496729935843658543612580718348336684035081620732640963815783194069197555405267526538537427377760396406374126004996556618153689118283754245512508854428294080780492290563453674588992879377835872433331585593150550027813930777106141545070814052922014499284523486719422213999107131339071012811267685979494898323287827724307010805206957349630309518502512278110349659647091461814956881522925191073661917225996691682318581421183704598577183429682490973987709319548502104231951579323929377175624596565277481602526979823617546012821546193028428769362420389916594092472252480391073131064790326579610847732759711474284909283087276979340594208287497246437539783114861105133036638809739839540187751617696007958787987838657028466325946402005221301255578543059564455504872659922711708607872473948124719143792289630888616932352871604017670568045394318595435569678308602335261656741356491917951501060694199814671651390364819975241613376045519805439266913041440366955846277355601000565254778385979538177458476179743806553484355244171779521659594377011625993788785495114264867482561060546053626660012928065047561114299899271768486794955798907173792688739254375980762286115211584521567533629737048509873954009782456479268345181568374247287176260470122925684604506976633536171191769407217259525607467204455601916028991545344391779883637378982192860582062349202219939040920174773637486702660782767413081969256097161618345676916704670451779316231762355737027676803386001544001428546144394057177836193622226620795741746817882925926484729585766298317157233459436492002065379216070802889086152239082072866104519007619363596146187382469374816887845998276356385931077741683551419751486366173722405525980224883493285228428231934343963256727808840857624986355533446130766082573731380330415629271491227819051883891229337086547866505461321141129482699728903676406159143783108346885777729628240510161077684746113724359578147243073023828447943494898430874539149519419496583360053971803261994712446852026942464092409163035278329402273043271280050804496288823275284083291565270466451240403360850199175596804075529332112675301889098178743421054861564135256910734615215059244327817016800322884889720373749323387559756754425217103553384016217043280705932484325069696767627272463752327273653432931209343061243854106976087211288591803713917412424335802367745649606055968984003176049042998726524088798255553248807440954059830369219817187846844441113343587371440597265092839256761708878378379611994533004652225149642010840203107760611530754364184199244432202286542569271637954485605312056857952263483688124003786172699581810442512995849874492169470019705709449159312392947062924213698012317396040571717464432956443862621752043183973818153471770237938257559292585920740383857982324864354590803529135166301803577145316830378454096008468417783124034608719399701956000009087862016053038747222819942232138514226798974682981862556697308047675561396046684334795800684724735429292748434999691350687383768574353594663079898439259558108877098901579640296645182082330875973634057620219268933005729271122838161832368870547906376452453239209294209423152894337320091923808582219338600529507877991407135686335674363760190565379853668576248521572408808812544473929199511614182689610049548933154307923008814943932042921463608127149994995314538546210474870351750126054036885934126699989264434016677831642678841181334329916387016734960692051288829136901477669532332351219661209274125482797508620769050727127751450622605186988485516916553192939911220999350366145246407364045508095291250740695510525894485805039717076419796526964243332522199454579042675320975497471800006626609116826906077495762862837117785186900695005664081371666695972864645605786964022601671210104069739689700279589794384696472743769121859212516740505499778349072030419716229173585190970689243238847307509129744210865398680125704572742923556983738903624056159347973859306829385803032108322692634917857294536091335861200846135733725796702125254334210368277816279008866377159651100636140375313896854971081895499645689092428325178596007285713244455470325779957616942550825167436778955088158407133184621589320093308915134221496824390560308908588570161220336431317319433148730998567384600343158450621899295873784200340111028568416914865095481089088325982518207942328668471331613615176391583608337909558321991004860014528017252539072629489226652506347460330681288124262961647968830432738016614059158459776092722313805723872876558024332849706800775974154207748864571261635426069216090495208616933265832135646541035037634179423681057273993683433092794848116889744074703841885490248235647476553513579995788151852437020340926307852584242526754139215963618668830544146989307567924911294246470398419476422970699204161817526688818790189308095685938135595545797607278998510017586421967544106864408762915684302302723527802516968753010532200235234018455076163441987314239659224925010439163985694887992871967922727006982337240777593646939723889767143376810489948973106038420761755100936815173097813208721331778442990939135084413749166538082630311656441517947718331641140119633785698498420068903781630842036600831045379235291778757085502472948954625322607411225856346059745225515510768753560652646040434077306726900846108506558263303249365707027166009679061905640196188006874277200695443495664061188368559495598399410888635104066931275083422608722412702424298083362907096341328712856718238462278388957019407166074482522548036480359608852696587740438467336362935137506103456125359599237374617916402168944631268390727760909642480649299706565822430607376710928236742767367718919609519121642924543209724729705329099207299444315668148548015889535550972758437649723975765700483706518526958567170529276941453492542705803387948863167561982830474055313883451410796276621042588675221538235868494557084941032798310835455913111740451576121647709922318637221761516424087984836093216413997025883295324272976199284774624190463081521611256896377094777631920933639775931869631906507082343706063068856117124355662626311454437994656119280130257555620029387866576511028172681523226519809066322224062623694559663978260861750877216679758978626676671129545788182857857362619966762323237971484242902823398555821888814433958820935190314684325236663594784387844539610100392013712695934964202350072109697557246157203877309750950470583555086134891041652846272027283753751448162268229257298592112098838101383284397273020895198125374301306857853476707342014259082492676249211391018677593063994240927943129790445479781989423571797346076961536129890142071513785675778721641108719552474554048716879646744441860938946969270178029843214872334523874042774995724900366091913653367490048601401248472995830918584406730520016078855681573917980398700803772910102362862402689134732888786252466509687554945101509544759657549014921647161790378833928829771541591373214079241632606957384928941166964577519675925856668122148982242753302893315726589281918651856361346319902405609215551993991752559666732333348990730048871253991515608802010711743260659037276182684809414825576328230156264498802613534566136276325936398022425689941860405501442038865715953214560703969414881499742505880627165828653838518422470832502208643077824382507298261897416266619373989484524461665103671528424631838292229407623719342529682158376658838186126964065238823102646006247772381586888675051393829670029045303612946125925729715078289948762818645437041395860519184141891227920442123466260534290850932707560564184689700118390805685270105651654972688157597400041470190685895464276144857475665648662667368825684281445488288315425622129607659863233118047540771234284755011645492706856026415604674969567624242378706559224389119678628902122058916877606413295100552482685680359003224674680757185030562898905902577190970777863789265442320534424129889801253820201122849895138606509465828823224618478807447622069085443813770211608039089470599551337211308555927765072141294627195580368726830652803585495768746268543473489331780562958631915146157235025043654250288605048936732417563255384443644481365640149391767921664968667472465435258658327301837520805924518822433306042364317038353057197712181269629040705971294424928719679121974192681884412051796297052031970576090746281451208369837888225698683146353542401494315022095879144434183820755326458866846947908130555769170680041775906829712695365305283158561610761360437184036736117679913767283590822755205772918824688109801412296162389625743788312515643676470343989966681439964299789326840211890896168101466797027526570546626883053381712431987886073526308088125191792100220582939942461035555347884766551627604418842948174028352235594152461835375239355418940499112578439222442724682584014564473933075320643108548051048685867561071389238308297490575769680936726773056908116272219213730410354937123657898918202555221732578493409246850113731913153934208266351097878290555455488537149510696961138803317912342729571900314514061198208679756050840925568682565191439649787645928009828250566541139713644830092386765200141798872270048512008686424857701887835258366884881450748783105769230790690141790306395170247326016058894692274777860861213246534394843891682538508079568369393319869118425678608283587066988968688849581561969064868938253223446963817480114704164851078368446582783973463256342773106648560470439062642305381256649332897217808554826046510120929585550892983504555294950409025491360663648027970533635076694512200726056250854045190194686969589918893144600008248756857786944994483602484640812314562407088662816602881455371376030766531894390749462206874499709156893349398558870798797800306062546184811632469765593596646169438379236004303178851203686673737455073310091682910766338221748924869141851857070904277332133616135366988905508203044998243324122440966136940615531448575722360273413478884755740456718927334104608862536697476718496032592852669973354326305402898503968995614673546961472226106545678848946688598481064762919427314839548118961863991127579687031537436605317814780214334890576148383111710213943040239764687141570143891296095751075562417984714000713471907587282869297638916049934139125176368856307526181287100038361649439963019715422869929503730018885843793195511282573747514030929340260483360860413712433015198362489145390565953421672224766425080634823712919704955469369585722753036906079792973089346407412952217191658994747306341028079557066611345127818686392775415720593701594837228670145826026916657695571515384413967960141099345789556128903555126864347018321133839628120660038462797612832233099329589885699615637630994513280093925990086185198842062505761112695509707627896045781443171372762473666830905222098695669349106207144536252838633831343919503114045979353789205006565520104897344181535313295275642349376910727815849786589165861115006533794233403473983172495812493178684013383829635295235213461925672448820967986526940909145259160050769652980094510234372366729499052842049319902509322970346443109117140119531638070217387667603674838324154680158005315277299582794780507680923796929151546854993610657867503832344414843318107252455427896758474833596602996157767154926593415240930963290257844994026756301857227830732981216984948538051863915115902098996537291253461932276877762549629145934206786839968822276727110735974189718791749716566630139302275172981949742523943464582983226397158725402494561203649066981671451925950938127782575728625230740307677282434956217033221119254908998035069022441468240430310317196709878298663492597789835626233646223883249018893873092119653767895530244067365729023844629609462192408597755184540587375662802381395846850462211288936090704918432687867882550112137380255419019966883594057716435482847076336312243547435475913599218844865281606186014720330476808531312193777956878127243658655785464594643684084249515836686756475556763894551550623368710199597866740442465994522602897428960308919484399924084356145898989134131953071805725857503411919924192090657783717263715803037113848841873059550975428687774032676997996727546026870292294089399611839168842490389114439728798948941694966853961365842860237813736272165273228571090065623913488772223285357758477742917019843796807447137850012382116966138204982266330410620496143773763623198601272721041578030594802433685860364866270033864292959166401827337024829999147257332771397348420793788891076742783094557302460442478239581211923118103330314668376442750327211894330153542378047347503268190709945723234126301173559726317129573337140618531931473836921645798001021290019179610833961058022695683815226994080416030629008094419124466828505826022983335481814047784572431055901582581055943111955018929355358391520613966644417145510479131625266417191679446951265898553656887213882107413845554401759982002181361216860655692918657923753144632398576438855724293845872898219859205662646353860213280176454732387297190801099364117964219000962088262969044133316980510481703671623043851945868959114064265546955841891943243862668603749820092048080988066772208790784856019552894748565931616453618487250891753649998413017440926761790778185980443185919492234060632611523463197357948843642334571209787063361385010381428632405062012562012381498108470629921949778571007726308701046521265306213816840214897733185919302733508576795218968504754591548729633298573355434606701488545528337924293544568475366890324713189532438943228283308776239993910280302145339573250744069323082385816643107348719437405479915996987506383019356202247490168447468806806348346523490709615601608369238699749921399584430913004934147898492060714704885666459795724884370838871774880517193798597414041268059260491407981208635957557648217461641563188219732633661457729956590205842803709616619895131501525899693872625176797000915654611444503366778534054236782588745100844371553397234146436040939061135499023122617783395887862230805007648327208922578390635440593930705508036836146417917862598051177056568890837951131199675306712379054329288424372274692106263754568167931893028028288741207735350329053485244760839360066583486424824993944503903705411278731456626539549200039298660587257580361629659062607566927540703536595492414369203355879958085729526448295654214788614683113122582378534008589370735277685667171711723169659800107895202315841263633811362786840109021341289204749421937845218245583280092363158329755651346112171217115961456642268842473046014783266113384494368125836356948783424692559041867476090791128207042560466542009603666974218728576218235636133527208902836437074476135230959288701406928757491044195518102380795206407622923714863136438390255010383011348344664371056570289219461080050550761873351775922654857515660492255498394534162988187778955974811915256219566279715714659657203283511053052488770204106572542729890986395282707060584242376889574330412830018665165679089324790496587382465840993188658834878033524214027085890039817720073296112644169429999103068754462280975327454858486170340837659779670809779415290017179390709701985139935344135008034048344929170997758534729706024463097959450564476340715150812034730698452903486740060415356009281032123435989562780825150981640321608139787683447014126210395830035082358751973289757207632137938215170911114880160680288056911665602704860738931071375578565200383251586086581197563307745153392065377240028613797249984940254051432658020624403977604346773723633696643453912857968620873283049031748758000894846751619125928485412221418740405275987740323930136725096144089882355373404004517497770079039123490923572463983194296284068518664811297252292237166113105535229849886647156249622771505067013020598389014561435724116020117538831745464934747161842402090489238057490637002461103556045271961407838513143768581368446460095560513868833724329024596593541262185696216090438897741290767336413328444609744119251868490281123097076516564203260030765112538484628593823386348149779883067069399447102802366333648914737607533989554791256389472349094798383398175323057072037704035112459138435189570970326115723885680625492402563005713111485057700293450851203854420743464484329606972032648688158507280720558466137498465910811370205550529832638481308501978278171663641494191323429076469725159010921247580689471964233175527574421849192145491675478618713695021297696261832039917758770590938709277996067274972277250238059202058452339994648345111228691268967836960610953611267720759449155227864521485260678810432814603120913040189635446708891905721647782521508562105332358551143464286274174312511032885877520898601610006052405335915063757253171923113047911781702773226419215030834559516163753751950805121487489837269789898144645341197289375558744251469679400648319376776485335872625376328750525496637341814613718949954393968774495841028281907856334174602066482504230135968553272787659198967081842839270701525835547872476446037704483452159945114684889927179170901305018508032156402659277066767024935976855258136126562964404856973737020106748167870576587146192295537617594778965062417924354100646829396032202795253088248380819686518131662239716366818305129294343263021888884605776578748769048069392636742013177360725836962173878759085721578459780202878581727562292782065206375350688880664511573190398583508128492520655402179196790659731048412550620302402434679341171426450456774374992466901368423315048712937360696246261270620509197228177569304480804273986477807271555753779018023333475346971452926615709138478374546411361307021101866749333466430976169743984326603608949516118825914621800130697369930399333864887367245884317302227396647361897734490313167162173065751524425387981899011934390438509261745250830570188551412195070392493729528872138794052586730489109726561850531585375898260831860356861946477306349614296065642747556197008051530388495644071810235192624723830200844134439979141519116787164036786137810832175573343951619658208704416130323452246387528126284363510093160223742085810433380765336772237917560308693996690302332371612907613127917677517764932444493745092409013585310096849709425193104053670577376462771330429283792770682975144693399194864725404757352002468937247810756257465726403086959874688087355967731389058965527172276962994498608515892028806234890045541300849136566671301770808051988869058115629666944335864760800659539616085565540571326741970053418523771496133810719972658434058644985468316439336418031401711513089442640531844106825452697717010163592442149105489178279624598544595544664501043273389274776430130158312654065332281284078007626247771848009226413487892635474906779409602394856977145289913455653338221035511647110690244980245599975967937022027805974651155918168717029081858771707021928434763491309613644832209603930104302163877251306923888690957398602588205611638955468724300616993538313689921669314409515591862863703447208167855904553275955025917047768053209153843285754431718816124878961812474193452082273048140780527887239466285519371769071322871668124359688399431637614466409929188356410294712712257827170932408108560403399016399835065317376545046555490527187758350806599964666919262623024925561229763428098967249509943335635006650091264641911697763979243627725488548379042465504703499928473535026291059719629888830466702720161878671298770728818715186021390638383524852872472808170254098673776913514677174760172854616821193964267917740310595361632849856079126665762760297841202211577099441991825473130536317918558811126511618482617901194851906347623858301961770083301050387130649060391713649741594647156698205960391094194362689133023175402790565520942769377052230166457479718559521724397621250470623244819652139403246790361311831707936633003462264024643579562994917113079186033589654068224163072820713450872077918294967511599728431968174310897676725457321078347151707766544960087612639202839708318866732460969545615945959117798353131055457882938519959262401103281834976269647326532719006898351629325213214179729670043144725414393782594707122387396667043338679846297446656921972020057246515404033195282684134716040153504535267081234980706496144719470314260942018822976693057945019982768555595525798416844803735825935037217536189155756119352907695594953555574312652586815893715390926672211796022841071298944024729695884627698690791553842768681290027762483309765285827567889714267942620787939304196722558354804789077380782573364869078616173952054902510714023980480703340202097997873589399531003220755228376310159402662469155291392371738725302293132440073341345049923042738102903172442804547476476332541931388291944493363743834519872059772341311908600939136568707194716937943421558113818144170423669162709034440500697028513540328797443376535267447297546459361343085205763385675653252612728877321090577835167018222368978469525458605533507233430946087975193394639042106084249015420427249029968634431786507649440551946383462763887640794239183599542301690963593893472429267402767992135720796008434746566286330784285083917668979959880695767028408457733707013008264929433505897678306929844788530367200781731822049276513218513280241585372808299617634034404985547462140716958119745936227133001720183893189957374881212070519332838826283213278972913305158405855698619431396395302837309214711257218239801148275208995142216160949260991405447299601323455991126030117260273737780930603956538302916341883424569439133546453752267673064905381077488164278853835154865661026062920001605493307374972086339056736828983739254136274564730511547746248262759543054242658701183942070047119874462793796767631854656866354325032855235064175393042618474297099627439128704179052633408422699724480209149228581860464692243757279487796490069798043037423392507352806827642939436509259671921767407261105278667096996318767046431516883233056236496467954870074133364846002627332101514170535670052570074525321244552543243572625232587013952028914932441612030714785505342578747061246591589015990723056023308446504744513534349107917827536276887222160345798069534082055811051351531905689711567658197483000133659880240287994934083472303517486123191012376447886580586903907002172334089958825083646373040626529987601604178911974158739362408115866026857613515553670177457552540865874365848425834856647908439932945816918586131005389214575286812890314114507317597984831457365533288459660065433029957076829065183968691968050455455270812172038194785641266167700889118666387237686398563690325016058350466364821038982173740779338694487969514280378043924380600374606712374432524973225902159237508143663360241204724520711569433151666402750495332511212186519041496138474894000096349144220128399687280092592967118250746506680813110688255339105646202049345812847273006975954094428083590125549482192952068085229205380886162129172995156735886585809786675424989016912782300303404253198833027483693441517046375601881840812909627925376649251415553281031025138226524538492111547962104951156043733518473877488664008582336071238174283721843078692905713837800888316491642776977476438434419026109364898447207748295177717098697552400850925508296764904293076667334724793002527879960232330504456216158854991738353477604216954710650927543205309518902789307497945511203215025440067115500536891737609925977524343968817633907708406187053929609999273566075558754650907327812979924543910484692177589875520364171700754291977809333555512147698337083933841453437075360572095093929240879007809712323456856037060294567498915386469482145452023055266081798856384404107032850205928662862547056033530438164340805510286693281197909157736069314432948045883173646837286475364857427557938841315764898276810719569986329636255843642453792167717703536983940798483137082959850706700512853902222384217682466805291409623034783142808217769287129087658224458891719961538693333016099529933352504265501414741539787947870637321166806685163566940854969791705936881245198788769462601894367304896055633116595534198402848204957238335137792742811077949333323865489932416490263561694160785614757541434392782978216122546699284857766044200389589879119718580814631704337316398600091357333663910716462679407906398883247627918566813710127664753732632441752314150005602518952754756596024578439977682228711603990047457655536630992259961302979869722134349774914459567723162510832650446372966524820416052452127700116305437661540057656060505545649605263777440333077289549230951486475840384868889635394296235270179819050692595507424505275704496955701781577306195474016040561873110973916729174913146444402184808620150349289695951936243399821182325387360743746955203713709611076413754818985635584552630398099048986167669694216543992441263579714300414856694173956117653325938163922454663794935255677479612162901198857229251935403467200102169508487208387255934743328044062592731168055103446936719787383643563953136434501868430453262587603616038272203576949233973395221633924934409367058392054760189502095528552569670489395153792185166100682464783991767202979070285361705262408717024399453052485267758455493210797009204647599930305315238129995489773588597843685396213632790244327333049011106621189865744732215817720023612476991390792045397693453919899300877533459081410690354394462326397697576125086063356845411283253621235469402516852842971209325148030544668053773019928203683011575625883925427610236014194254053514598763144679568424838209085315780552390902539396785397167433096942666756313466289389937504949761873702874159766199938600583367271577704771266003279415450624716624618913512924305329869966785926916598991962825934851163117315624633050800090690292835724747545146274440962675571645092187781607156926781272533253285378338435036216423862973642834747045290193582858342257303949937021202062981399595471592534338239877573031558157506251612414587982190529092175560065095836615635788880935179815648451502413088320253792551346170309885633270991798163713344708098904300146263834804297606626138512208943812610653516238804460154605504766173306514915021968500502096903963505026548598035012377092329993583700264457960134406873012125988296546856064923872473384423856174857083594085889909495711481857063652613670472623556315725165371628641568257065560105517472581684786259032064952627289638582044925249114041201023713766914166128387282753248651399653372455085904143226011024180775677683159211739339481632889782517810975653484798490882045683064258106067911469618903251100021681869481801100444073999956854292242568996706874239474720564070209494938666580757263241808688318313336054684679848643015646614135481793035778403282434675704543652215666610966488353080469861706343205025118747926510205970087768450986539149688935081380124994988130962212952537591736739063765395455298640168615403369904539922455030833599980522877167738848010373958727256146552804830218269147393950621276353268373073031018338180970407232082971665186162730022895389322674436043853724148249313107943910660086393095414504222573757253561513234769745678791435516311429903905391401240231773551986800349773521459390679839185530229028053260927404568249936313685234256858358457015460501128435828520056503629359868967506422563215716516656224460087137432110071601363309078587930963057550119852992280729766038611410470849794510302920156187852430680972059211231815717925154236849012238639302981678413381099196189284869948521113845782157690665129629670384830523659226188924585738456103715757330067572072231043176015485430566649728827316055608259398293214156442226027258136657820443617565589519276778652743017704470782968775661934307855926125742470477262411463666246179906990959728560582747240687961035462879467018156049763074020376397032953247784525545744160134607221103787649784869283984533184392458076265615329905163624858429191433614062322016325983176682993557170794426542301023417860306393113863108809112145288717765075878312334054737348442647858526802697800634753614690059865075326525820798634120401311549496095942727440390253782186824698284102866663947658799315703559968388046839965860093212950500060768779605836399773215714280149492749833108104041880991072793106638504949931236218723113363499484336878224969933645587684693183417837119138631141198850565268429137256771398890281975713246667968499469081433213843312618323023128838562788811817090165757291353250078384989311950952721864223721143879314898183707556521188219587845238962645729622475086816626307058330417601810989186994951735566621099824267159818438367757563367488063611267736661299332947990963136909151768608362496881273933128128343112060781854474086517594554436491201213088348435611619534021147767207098881842035561867595566346296632733115383321586829768329530518938115875875988823092462041096021265429327734321986618333300059280559152845097082412335623730129840145089974956136215439599304290277642675614405126021445782639106141498526880772767875128136897771121145110546704131034644005027451495846152744847034888208746438918863595636455801773752093611860550684150873978363313680426407997242447474505522594947657985047999441265504511933367488611042440670438737907012051680452891770155487698764694303058071415341383228470133899539753060478528588219177481680805637044426866092718113518793217293660968758623883751472422243872787836107024722176895171551691676205211832054101591016221820490019290493504428825963395611350759121358218815586668223830431180391724809687512562588911648354752834986226866141771205631158391354465928493502037765598513742887687784158616598649045361629027643605486345079966593979340994368580752658506526076102114784576795454363110431471684088483861852534074513554779470589130754664189390690352683762966138057475067661702003908208447712647333128233080545904420808085762835056697007620229513833243686093202288801252203653830578097780295793307200052469142900840656697128173925598296069402533316801955693476494656427782210448195276868915163349213463923789122353385349895570607579890010026143058393179073037780794867530819892337656148182806373884589828609780280524051511346095040513493523544561014140244077128240248261798124913181143603295227580094925520560933140675749358543384136915063463973830194394215003429220199194439128088204145718979117780601061755381394238264823215524130750882697196600903706304521701785014579907410741403461227080920398397307019484159099962170519158557257666108956290226924697786229012474738886502213868699036900277717997688882162059511101967724718179668202156301935175269426536555163749811699509551958759179575680287015538067307380618954745405275872336325479734265144717062215451258552088732557164000781147584473121066232275608284909481347505522269821551174156929876232523042687031074764395178535779519457158471845753504910780030367138466801876699447650801257970947955491375922358892489177736432623484103852821357446076029516039062306539097820660640584993805842078872392950458957600445486279976377757551514216477993451501689381321475716753529117662413169633852935121746643426408409419047645481350689787003793448829427737532894593470441273300490939067727090086664062033040589804725335129218435127170331536625462432188193918688042265287147576202647859162504596506830049084508684893408824235390322168619190280919702960323013247870316782091627973051391643540178669741346056927427537495914452517436650091063824135970765751031370143942984947821085964078101037687080938241590802716590930236846621162583128886122080846429570439892842900052262239786262796247251063457060140227527407088359873339567073143176745616452046152969088544393790445954731858553088999119927986849453301812771957256785874409441512066808306092131595323565833453962000641410774221317100657350257461558268795123470159850166532144196402506229910186496631707856754132038898924470683263122488927409678307024459260349003127929063937280228249124539124544473908294879714391424748446417276871491043055212955812822328651410210422985166503631421299111785670666987461124228789932807475286192693116580564342492997619356433681132125033218128762003055391439451445984103372150966867061931286811871659427431403028421105945935441423730926182183909546880866374660997517097396771355358410481866240775599858668355600738089383100649848282853474152363592575626367060889882406614522638296686532271437464975032953169162642469255277186354113896054820168128036056807746280866407117490480828729947065493406001061785080474392277841809475253424922077446956194529147225649895016468947458776763182179376581937254810714200474591187364827280060035173632834740103130383760156074636935490741526235799681560027852318514836374965605255944148649343114910021409491875354034553358576302637550929634646077820274762733423001386694298882919543572787904266774380280826844942110577906116413391516151152009431204545226466962625984067171882412112752133022752450561517488777480771112831310520493160489952065891259510282793647436315330959916155900114483812284336096910806526871042001106577688676073116410348589643644898069068861747564490760384803506711859722037007023330720103069550563742320391778723799444214066593462837388271524106805322718793187845970348440694592083144979525193325389502457544182065669941970236623594833695035007649760173312137269237940132412057372178940617378921307750497230442021228637283103875703610966340788956900248443239384009951674699129615079156043576413725717401562480667146274229570710533085726841097895610750126255784492695604138135447384777360117487705956759436023776510400156952903526844911955636653858678137637355523174696781553089297329045205363697583309009306014396030098462789030451773912286941681011252407338238260476677386309215218410035292366440943481334136613397259137186224810018967663300721358511509165679045812360417687432197217561655515030920323474502055884615095519841461782387064464914604023993299629905612481987147731657465957296838009279936205593332443917761541062705579318357399847536762264112458495036104949401508101452467630572697046078338090486792265939160678973505602178562231305024187395069472555443579700452378428489018653827841439659388796096043646717843051665356801572568103584432862997402841631251529786680535719765792541220103691279015263502709162545529022881933777037570468019019664303861157821058236707165355767587911692572561772800774134151084099291261392383363215285648300989991967965784764814422625548472278212343678897846475376005920754514003616833892286054691689296616895976307443220277153123947147186053888958100623477249849019611757849407970396125659271645853986260673484081562409533799479324180552316963134905539062372096297156179477074786855899255460841522308428842996527350862051013277503790621877779319791200489446639340910539091506904434121554107610066766878087531680044566743550148484065515848914658364114237881013904246560561200326401017114437865905096720145341675490298885382379132941782013915008503352823884414077290267195811249339928057968618874953388789523131760106918434499290922306245078544636806506914169654234288115617321863523123159558816551386185165173945572658405362242831561322503475336510835514983370498985859418188275004286321175637470641575317221497274103563792371623073460599801784627868732925075417104228834549687897980166828901949833178158926502196837042576528061156563372968509893236841305284213139318889748759690757809135860345291191921989745644069110369420719586660842389540857046865846669207308908506897106873823115806387438445046774960175462262084300933632423265678198949915125232871035626760626976027901280269982282358377643494769079591769804726443620682954923512141280471714008656525433179277261920207082939283189441783222104068328168949592670675924903053520902959558865371625573046614547632577930275619309699622541193692343107143264536462971582635940696141461499927013634048499903248264606343104127617711046669391739691501763925745913652221768120788035126293646054511195396930015762184950047855172982232721442812709615397986997414003482488940199469085941562902693258718283276865713851963543717496110609334579240378548924639796101481562186324783330159333591023962386394812252146053539609296085097588394330569308538319057338408359366177866288090854408909047822563439503458844623258496134334892278349113823966167004134626243453590198758294512700724273449578043465779020876469029155550708933357830310938249032677463229950575404253636395626384047442445339408543034466298909962152762194566425776841362205334886659026487557038004198597670113948576001866022876790779901506373587328017491276081560746816779467213911484778565418254143145094940514834994026990640034584582490581481832429309534833940687032541447879645747734658848828347443142893103820517710436292635958479372755615544571604714149339049343824402545638520073327233239085428906513241708585783936764720180684968649319606086347111403738082150725620748174975980066236656118317640362112395840094415057621927103020329983972403822062670973923660954509682726411407420865614947519177039922678540787536022178886834763596421265842056384727924323318665960580921319365814734744536681353788552965265468928213941724521829697587906713576506648708603301600362626774817722087884243881319275000832751097332090798196919579266349255840990703775163565273243364262159539073561027474128740666951651058147258398261333425125124337201089293005043074294259814707426282897211748699937738060998186174549728622723045178292140422620352734997313515910311378822646080799105321622483111278968340926380164371427551347470349512820238615663612029695778227365935964836262837050301911280279024396612741041518661560391699022127746544059134752888941295567631603248556370595244820849542163201769882376744015756206107068707863133548195497697916904466370246092949678582561878902838968158642607740811488637214900795182817559147179774626798071917477232661659060178225283634282273885434962646698934521964078125092127249346772106766191838673106696685313192231680670296289272148527089424933236414707700160382382998469762092359190512144312595797745332575360421199793566159944309624933232236712347420127290276431513766779709436902899949271199511618310658835410743760695373094051125709010912232478232993367173122631271064578885822487405214456083560283009901784539589937868011826372365913578713176674895891187186669587635896723112567402907901391573454561529853797819168898515695010658324103712378517647651215992832351857310978256461401689605152047627456822194962432715116435832700183319514705599898478586973802459818156783252863034647853407935553427813555207711339869748470764808203560723720691515625319929128024662604510307884779525126189046047170454838208112872738353360510269312337237735694408705505191618598065600327537523489777988168806505465936190303549072423842036253921108691903232515121246652540940090913546260931735808500534800219937473798349268098017493386096329779547198344351344815389597957380673071734152602629018835687158001516150795376211410488350285708430780877864512894064087201628376257636484227541134107045960312344196656857461542999344606562614257693021685677455127430610481810132781636424015177712399496752949566337510704356579832308017833083141595263415953846603104921224426782090514207992463155170710179229985775437087884910707795227286122508280229792192040331470432156992961626686471530708326748763554354764547997341402817391065624363348602076223903881777420661095137431092320947548542793444845014003594164553315411852386776104493857583509954504348731136377271336632851493621084776549027738108359423537049085266532609297804942442255744008198345607351487601206531525574414318140874495159708343452288433361712917784166105924191591543129453353034104283509649324815986611247535078916230145836142938613714402234608330740577808320154659710982789593738748244771223804304568119513083897827813288368809572734028054851264343002791280703329516273588716053456286451243808516172976302545918779093090234945717777145005492865426304866806052632215653228453041906333684877299881282141452426453344800173913843241399452348634117320258927014723929593383434900876683195889017799464658632263227463373961932989836822220992218456482983317030765698742491166387288165691051470547603519863003034491418920150729123526821382736453666402577856391985430293370120964331028187152514581905631733854489045124145656302010103701177005235897237103579970660869829645521348354365442156303353629288262483567597559379835986774807835085048989074452237893166024025689164576092200405464611683137607547107202026093080704537971450574692786285436353760752417199649890067207785532603175178568284886037094754786979729396235042011299054276243260379819721312470695274018715883617588588146011842026595262883178794745457646320976080809397506415073959440640201512463392368469192776998394116541253746422240790032293712734436740348695162869967148218442671736134608743803271302765131091455394320424433421520871882961457018681742341573072353806022286815175825691936240059555261853252247875663604055833829279701353327135314145836099980801618422001223095791920948272635987724390338490325049662275196409401374272032674039394190589844688038198912860924006322762859480269930603363124038056712399331688990262702594190394805198981552319594522434352568889280151761547182964010015587304508689770732714680505221100301627630346653794424881021084562720506618578198477997455136119076657223563155365512803576553148027745477180474697376712611204030923783983698076170763711014482190610154233160857181425173317332891371204786620988895849313127789960964361816864465318294629690753028516659880480707108999342969640766213453638227825003000347799794799511650129904668066903320766277294462154709298246040974183027545303541956471172419958720576885704993783147307351141014121488322130266890331842194508756201211604785063464550998207822082319719688950248753033316054836263865241262632055650785463919600646397682256577775996784675920831893112184728783034320575993075335970035967267865047901204375494626185418021691047845070628327660012250467180927997767037090436382872310007904376704375390258218807605880108512575445859335628862659543695258421219304365429806239955462122878156493679120078767257341626026017341628736644976940402925246548991088059996382226695319092137900473741535106769281772677116416975065097132035012816288256127157976957091755637177399467123547914672720058836457294034709871802458387074920540089831015287946377648105972880027416908146871941575948873812655577504079740997155588059666083672325561090938642711231188776971935763733977695755439755746689442065573443429627504490755546901743328879158591231568821152695138602596366478759156095126448336035359979231506416933060362386876047437052217662142567254323961266151511911894883393510621981808173037307171183981790923438715524083763887754234386893946578764937719438897716107712999841484100490291917289280776275486978493660591016975328785158394063737088861960843642831534012005224552301952985757201289779511151625116433797568592488423400974273329520215577293225033459013179921407525872484659497641062673006497871238898984319264523046285853481887131944564313243625721302439597866657126425078008067878954716232813407909949029939918312103290290637490904996372405142873202798097008621741220746300420596856584714600722685594973347443506833571691650387601892887265607785228840330879972939832744778255230749115002005837174351093513605983291930671939329104943785689087541931244672648675169757564141701644794151266981199869685290617187185911277317080028104426778521897792197551278733629564374294395228131420201974998581688712901901207836475568346206381842562774483214146748110859173182306166606931212042245899285700031090004814651209192848062747322915112945893525569387863556325780658122181150498153430159616532298296364379878881443336572024404158835270574568300741716134586442139223670746332369521257469713488069297788648999104073193655085966456489542816560739953572316985689139266236944410367502727175181628813827517312113175763628470486361189340775852168610654196108251268391868821883473469036795393423476312577719615264475817591640182421285102141996694809426420227350559333492581807378004244139558441159854672436809422648817731359416196001109620967201025443230607516658320038338559051908677941372626611882765549460381925490509572604328370078473446372063999978453115266751641458896184091259468196369159478158646666700362253847997476594303277822931221335972191223774982939296651577985053528813952744882711222384389002373860306149749723287238355701713233994793898122599048636005798794321970617939856567539071502257116760982050354596534660085098592781795429474355499529529284370977484818899629971973161877377896725538400974896553539244301451451352435054782900122030888628858050101310116956107737301375998718549783849117414972656298850677110224775593515334901195470459153755644230257014071630209376315341820471754414503667771799432572584821690672022567090502527778817045890013179857854921872100044696972439750366026194103042800000551777370684602937542516646804319432625963149897460205854722954531417747381942665585073031850194816525305186801560434411504653839251640984035804903635261396388567496280977859816618403621776581044032655875513672882678641180532220286494398211182844143710453504526189227449287130430639184676810040822132084406981920063920195976772227978458859300173641938677098606552600754558559857288253768747296049402233079291252082796956105972525434339099855907677269190789275153497601200364845866126770047552030271041829673291099981494193854539219602457917342200286304051747560079773109629705391051040560085894322482023593903338365235789197917281601177589722851194707873862848181878491447198459435758815598305836944268941841755214286807248131450325225718950010584793845747053376656915433396243428159955703767876379104385496301486232652695480314525211120162268334612632620550012143222040165637214807008663145417995125358732620937087218823575425431441644876264190212900525140523242522578353074490750526653920358029633403758375681356077495843750519967459079802831474406273833516837117173466012821956423582067100697665019294642460098194060156274317560541652125123119196775578000798794687314819831458086994099453295152447551611448148609215944674585654446716296200872883600063305634530911272845902628505888375918902884431760520420415410227324365068605798074991966514226879573769363872595316142874167244553734011793025988474464100254642980056018631237082124290467032347200303107897562615830323159961208400461332551799931318405198613333531412464747226232158660946719488498020371433897813359908739913765926631381502396307681196779151365953632420137845030317842365487900619636874200604145624355617894097830579318645092372360450655458880030760959363058639008885345222766695234980312444872084893991603097537722054851122380470506246907482677778032403062561097489733627089647311038572117886571789728701560031863207112639585752551351402850636427231980512308178070767954826088722922301618656074656505169323313903558100204420494678209031302560054286383089523001316809555677395128049580491663108523959034403177809384041908716829053552738717327013451844693351179864838697608084409895282738372636455534088844542357125064634238635053766264990516567151747866373080680581249024839586443391254046712636770421885817849418120012478648036438891281134760136194766978914338294932601785203694575939157575113374620430782982578025115486429519465591902095893677957635523358001691818998593703532094693999809031414627264102222105267916609643851851989743830879902809315139534738026443787499919138711610384140805786148334301156558023036029375180737108669236007265663496545016102847955856100579029517999764856175898891129603177436639960115587834880505756806483301714798699885146089098426591834683740011704776647020474807701166377527239093107822405307365750911384554091743568684078208590639050575376137668787290960863810400983739064845220148300380956085310498422253810794418945898974107908578301523340926253515309137842965035831940517777040386395989890454841088192268785420742204780128380149855371882220537693513519254697956553227290165912008587633377410983068466837629440892063229071576316561733545395421412901498578316327566113206226091261886251692307096267951343499959968663933207907543103743667036743375871987997849268343161363230943173011478385115999183821400229124414447920473716840332350847543953919156803948490656749659917195576626977109740663288526928663357420908025223661455448031936317811957447684487028578435183246735631716307103804191213315360255569674184524084116123516382196620977543406353896459655660289474364120190341455569754937216972868139603279257373334383999346678520933133575393756392823111318810236015417549368825263738075286493763490192913124868763874645208274849458057160775582566449933243634047110425752382558312561579446467513628301315015565815654339843963048384727834670032777494499315332393057870668141122531468335356959295707898869963668558667140329801111617573893245236210752060314071935685886708953340935283657514249573128733041808710209330198588315270372991857773762163087834960593157059917123307560286469554670016012659736021391575966192933769856020363033496095859718284212078315472182451311076747996487331145425870231453936205056149132641181085119051246889086047588451205614362100390137658992626419612040812191321052288857445967044824457036899905062204611179327614916493070761625177400091330280144422154842912915288597997318154676868996085020381817729768343786357641992441259989411873972846101511682387964238576509358305208805874640425759104783491885648738572466792838645297817191238695221299755704887372722617473342998068758936609094376864807995466675496437060984914849398728209879884092797625246189170409621250688879592703895901221434172601220042567910404835572936276133253147016774393388966047863190072928904893322278807316940189272197479678944603031082977965936685327407126915293812095413167671187916167786114881546455985970515016777438749452495819277660912886846923198230480832414084325174596644853658448238493423750898733279284548101095873799399913507643407920719558657961761985393291545028924226845973281133206969946132065645906823933212752954005087398701492964788207910420320492093743390633643362986316971278592879170026019397140052394609034236685610254568894210339509585721418141721986430714102301106553916880515026543349916340257321541841753129657735283893157662202535104269664394700987999623015845324099963310829952409989083786782934028029353474760262649973949865720924549385455822711030466018695216566084841846636561718838670895931359694253591828475454027989311387084692056027781143634487716851457834399445900786818815486137506532781136958883802627986798322928869547609840333318878300902450317166480446080058866136286292043691700440284125974940548430151968142723329199118725565913614627740138707013656475610137827365327142292933096877835315903929109272926321470580896656585783629873265353708214376772665089077995116312987058239451151361972487989901833798220286965869959605376015121968830976025343450216084116721165230294316014504294734721379516063475403653873450586602325318312317282960336792875368564036362508667775158117056676056183647867262216758009163265767712156963895093109114185256238031576683115952321459505599911855828892071248673753480190810501412952749691221610343255422482685627894553314102936785180176588723348139357356835653308576598306495552193705555348041204157879454184456745997634478347306088723536232596232160102735313164759382467853222523585735388954544996488038720655194915829499934398862880309535816881473492045586400296733876327731149713703874781888005104906296956428740639062470668489754934568371110646747682506464515174298894064781994430968260771548000429062092950974488034712453597771643781576906320551090297547091861380660063548460121066431436108268887839103636594288456812282445749801776044592067086131851225560598206689877653528784563984483983462946567864794315723175893501839123060323492897477398177767575643220748932300588104541448297860514717957407628201926437418467859149320882544499479108574535420593299466917353909793793475934794607464544644172560974377777492323624706880156721720878311288567484248777805177260433784799575456154275038919431515025391732013699512363093886085511124458314096688565911343524061816365316726533627335318007195816025877333287045589443760056452638182473546829167437551161796423383240513283396021814250670352330089189758603632341404772147593516118158013569574956430265286280582602260977078832639032932102507064203933297091381856020134858787057461323406739784439259109070248180543845098902256658840166700523043024771662404838029745206964967988281108658563438912941231776842187313144984002497615271210263777457633376326528114392456971182846923379588324830981756898371993581926123981739476869444128222568559532451436183805337677280107419217589689421541635728735166553996780181646097243719586729517499587441483838836747303782928035278044760305400852252799593948345526974193340637551233556942017673243496979138998559117328709685834280950575608106598122336623800148414454414952071249378331943786039912459054727442556107437132082619036501559557276278542343560804617628856009347927853278973409317515130280425520071477107791140983301209580676608090835256274036472494697122792489740679404845569731980281670954776874828242821974560124703585336904136645059514764288678262534337908566936580419720212136595395636138418597786341546554723494190252920345593675989269373448098210957849147962570432549426334812267541325696607501578402493156962495537917659304542523536738847292739353646990951856235488677554387367081580066320461954901922106141746776737882553743753832472309035372150858460007469343652575215519805377593170168689101188967392459614647212283452897655047073007828684540027831439547680632871195244333045206055576894267704317356230879553924853906877661011733913341749570839795588880038414343682029756052038759132605695794323349844015632563489005684657130972341433963709505609378303562442194293140298471887243267287930542837929034241453745406102661492038435591562174183982113083337108274077722702772282314041467328672388544188920825764176905878063610384888071421742231195527430599961898364338859620340397138782840935463732373186824678450220379863682368217488301641424949974302965448520421429647926228237321381738060552562673079064623558686946732325084320900525462730124998040024968891659605992830146008728359290377413412688024282109697954276991166917313616242230259794311894998540201777616510370023277271201237319185331226608961376659030754158345961079040994542002923185113827197409436700867869626286796401365372639224723309499066699464006408135800556384013809971285181149241008569075583455468114977498071267534334958360849479175394669700927284623569109198768592046015290739593324819940184232224078756498064653536112420894926942286322141488745392908011957939885169083869080252932886679016740921825896819954168540059092432349087133064089434128444198836798780644629154852341690528318623030800289419839298048188281619344415378189017859610823276329935598327077688491576180992729652645985442380590445741482775547510008309427076959262036167002573649746366433629039394883655406469769146073098617473008246498898199253720154574601680101204450219458970000976742770625166861297465351930247520343529378548366306470674671308387347015942524944532117438830258050114347714464108871098141868689017172351563073796673002657197379624761536177644668639102165613888532363007272951771136314839896071983823285523443924338824771851617043198262546962527370270895611831847576879984630720296307962968385575103944320427873068298191597886513201340730919715725243803538270699409319391739623281165002440470467203570621125447115859345761166702118920010004262407825550271528723810051850377679242626190836970240566969582283520278489617288913992342354174528975079686326335430099080921318401664669659400757038191976675860328589888479474732461195715697842922678681351059213342357649471680212580996646301934459268490848721962900183588350168911210041903227900463677007171690253251440248432000789316262580177924314970194183276114456068240022283077433667912561871653734999795551334707309785986902656566808615461720604864317241225556636006262973934737165920784789640506149137512301858129325677189494628319131890800816405458425621333220953405710788632270946966185959696225340524680045636428674639192971042394045168813326013992423271183798485244312778637515251197008043766274691648374660906007519349953961482580590686065628226933040189618883327446673028163044224356600202827390003219219572206367791076520235257832720201164303282448274054674473462838608578679518166356072354986187534940573447966127437025081831506446855715157709130399011534594249606058536096414946809960192603557347150440425260347178886137293181751799253985217694727017776125701849405972434372100944596628660333306223631970175564413233923732622332504783750781433375025278142770362052820957770986444108072474329984314258879905670810121549973897713990446511204366452079214009980321539251207854212070495424635313684870120552624287036934895552650875747932073202876311669322063954518007578590852585185119102375628796010794209776083473412971460454753206371675181157019519440703441192574740103130339502846892502424104377737136568943928527418586173619617925229391731316705299319943052852849939540199775900145256628943735416122721479418838896974961520875338490098093916426853926478285160286081242263737370243970710277823565006765796447149101323435457778486874766165511434602367556202466193808418126095232535442822183294230724815020019572879986055943459023400578752668473648672399014886710435861452073002958808225402438202617642638579114304092049150441144716515164250117792901685059059780504268962979857908988780085521848806478572392681698671955499979446308030486932912717133176581924843358420598606450270443424846691635172137249293961016780585007755354408792227854890512897719592106923519103051518606607942776985876075735857612732257623200771377639520094636196418230224628480119251359613171540299397640085258911053283933495759757832123229708016918316857259761773598010033314094478186658696158822472379409024747185201513831764935864891574775199942126561279054030317122722587720364397435418116331015568318814579966477433900649263324310629553033461122317660468414716816133286669029993342459516439004708007977028835428514930328998635111609346528247288128541094575682269073693103534086494449063341871877025390784608980725520127983509910323703201300633191223446828893657483012370190599618136703828486631941303316245949265557520084996704783363757434081066873721050855146458139253732296790427261245589882788603679112313882448493829968923293588828879605087460412604586379476201989349252952266872874823350999841272955668014141819355632575252031522116170745273728717833759554511487220305428457160679150801049285552313714327828496355214743030571130002506208663448979507063285168699513524480505275685128410059434097443995169555052421778888373515035138587617152945177181455421311832571288652423811469614930121309807277335619467958097505754792694042945401039211754032772328285671823700653038875943223645191812706028041093308400512876287775851613483625964241171625231033005890278530417437473690480105930622640640426251918267564107342769523539423242384082413820347787477644091406039692248325132299388693128487140377262902679331930702432736815002708380738659282387000697145902536817876362460976611967676261262680813901817676166200535077942915430876903398041642335036203542557741409376834391330128997578094666623055076241752976258826781241586627908131981045556516490952714765612536848194239251050027637876064026218888687291127792554135458794158156917971519617737530508655554470129778068539885230614139482955111653071941890064220125226334716387227623027098613531835681169368047702851336363693587943631958613074561745672583223248121318783231130448716053348064215967043855017285866705955212327110077391457644080565732594329511011662478065579566863825395148306165409903357012028453413441458135514626066710629375918297199228220209980464940538405677958733605892642550052472056391468679164342401275982024255142309881884834236343123898691418382801272127101099756915473631274996358915945347867599387255507992215644780987841668200421493625402879426504426314437715822126193586781818162544589391544401542491081002878506463819482251480802035754296018361883933924540175585910482874279826035426801792756160682779173362063593061088557655013568396044306424994060523555020350257615982988774671359718723187976528364566586462363591233527987692541717461330577641644218014787956805589243418611179231179356406884230350961859448583594644250093433873062160046709677225269564647811597402882839565696796805750338889998576646542261240839660086990054516789687583031924021150787661936582999229286232153778369754245722901882378612244149843804333343833215194627811284180685435296899164932682907848461200215138753748006124555122477642522163407038490769927476887962902242699969883518957110779809551407841114556346321362280471693477465015644428119349156285100291145583788330841743235875597522824963337225794913316029236598575909654283057574484378465849005488800535213143297045741553489405407234087140766414658754535259914086388418606928746418310347212581927008966163701930892555716714166500659869339612186296607082329129965950431922814117508809405631204038677590247139209696494433431319223729913365640456183714768243440470305999134721378833334330143111614461219782975829879087428691526022155513802633837261714357378477043402719568521606129766014628062399738380043244129463001186489805916498345781335827476610125765380174679344554534400384627473721550168704510558586890157011189046159472575681615965577389355265877535664462717464772450115353857323752184907425064724104839755879305055124582800411580835854260053378131688708521088739155953476272640230303312484965563860525521100054393170939089916116839794632492777786086520136427557750202767589595865908784673806005485917627475254860828527366758377233417070523110547274542514553584241598323729749824417547661128787390897795980600929605552705560546829245093650194666670657189033326258685429648210774412150711692469918626100535210889515670929245743955553105882770419375572494564908890193516442273625966182321626830573734625196737379087081358889820072559093698398183295437148697642936168890349834432448262813473924638245018684613103224799539176476141829192025350584948204572811245450765590637483850183977847867346708897222825193123380861166114457926410197142433271732813709314168180406232703981875483393287245534874261784251192665422714833800369076966162166351475806539947310303377691274279264871359517973711197366717899511158658408841705566067825423647619025787489480005725693303758478980250526549490216832376457615564094616722056869654461993579738826013704545355978425578236109323184497228736790801539216013579192100700308870262922189840088124827664104771592587115869600941572811131376612787065350623011613097296869261974186392121792175597638035909980054228529972094728611864435496936516398370642804935133629604113720806519493718815626175747533399595481107441853049958442434524007268319200345110331273135650271903349354175429567115168244538797923920177338927738752173503359844599172086399922299482526999642936028355818328077534587853751741692380323427656964318374482823479492079974126951285882339263025198028062882009219901689759788587442462375116147475069796659469907864331589519022649374854187419821091368074831753246391678624735738927320846549574624539150555388769696223863222538168060371821962977190784137855935046417991769691999713573151052190396997512763392810749163423251557481088759157854612632579031520172406509283117094595364611075220736646810508785905991305678183442971138750197647353147949483225177390687356847644101434040244340398941912522128005756651360446148548014524991750750683349633325541623295583243191700290590665574963852775915062148796131992648646723787558141979450906488657526967705227321859429251802696931234319838114336679048922093037547773677139937994722703754843213812035971349389271387256845230270546152872324598592699890209687222473272279473899085109368368063726187876985365639656624567238563260766491358694675235987574133307239058870661000732151006653670771433398464714435575875383520048873408765650015707869364339184148232929355828411434798785618378540527599830330949698809418328182732584177716818521559282271867104244287592209429403909135537853617955551406189252440456056519115279021230219061093869853023361991880362131958657523779043061886783694239851719709060153251245371794668108085795961184269682425400280628000666411039561067077626377976738836219890484973392015011857164399760561020993072617801691381535448835152150935624240956376569660400795347034084953846852884284126774135732339387562537686831143920016467567710142988407439374543244133167719523474122738738542706849901122407669584720149842476588934244900327991480033662100181329257067642668908055255976967037560332109284955898183064484079200405422389933850333854259839851006009019714678604773149220156810221053475154290765002094725100984393445448581663374852032344119959133165782814383677615309179353628226895155559676079509861536783774675942817832262538733685624685070053310372313213864327617970084723286256091663830471061033446404545595940040060741850971645711694933577278121193943229243860918193352094374063563544993213013424750184275211776293152155537928246335726825107574239821386592940038567259246645356991472820748540111119569808397163288611476497962795128219336572325887110530740691381701373725003484223657082189139996897536535285699036738201862169094101614212920813840100886522627158479288260167054911474119537466467291266156387748222855329066197163144770279906648718495901744260302126556214978376206794958598710046109615383984070686175502431661252719365704078133233877439296356310627488606332998317115166209652079860177646443528900251311215175169232668059017780610282334080826188089134078787980662179843111801662720243808227090467563588130517257857845749779494668064224884268269773345094603547694477612626906430990999000557155697673711531208895775966441784940055025928027615738639483058733066941329315920440242560198234996768795709066263227302302575518034349311058404763225324139383545237687645929168659330125108892556850406566272353905207452820126765634549735549933265361993804215103082312459439981675162254868313399015428802941974045391696985753875027252038538789943353610962440028982690308154176019315643501302679461774305934272627767256538388330343272277695187303272487488147299854032872471599404393945671663589542082944626126928185454098850765090707303166377319547813135893058939330959385499524912635604775088000694929073238964425770503073926234667561726053560820458013552977684711800929337172650592293607692231483571195725003159091709561464720774355421582083042621902178657895606411166888978787800298296022344166065653391755252876499248202879781436272820122016738237335294855766347187918351146305484765274798637066968338568003754478806075007682030632505281410005078468540241588007120210796283145169873755663553066514661164997758808975880459684675375089957506866427956987241939048102522823369260456326462815953945838478621872020607678709982172215071321902314813890111575104398488092201091736741581636800070763493018407716176456002566810061962153790029319800005514695685554646745684882356634346916540833779530509678772161535819251692594185468475827666652534015307678047579288429256812475323760220529808697184984583688187148432622704125536853683033631544603410553307846871489247619348075746253204548131838270113549927977654435504509879126496018853646696408272975175287093244009423928926647204294737906161316292261544527988408771496139910382143218091229505778849368410065100246296520782311719751674107035250263437775551129923228056713452142398622773992356739910059414799186241539766652989600751623562540607590809867635252908048857661118288817475401590526746435542729819259878187058259713575644652079900810914866299560612410513833777373439744448979093065232872929790901358890534554899141591599263609064820892728978377276843391164351883382665326043315767637447731683887942351764464708897866499265803939442087730600702075683789904662611836414924872802675107870713024286641705819136205643149158393976734028950485963090060947247295873811857371796138051452685333767806044626346909056524302812490811539308101769125614788904847000186117617627951243197967384995301666050821267862728738570534354436739714384659866694972349129709239709243377377042491607423385121040329969854473258135167958737103328096554489148185611600094956054625665649711911655043482252783684987895059338724146628782714502300857742975153145948548540321150541794230729193932824343494653299520183338985003122896747867379099320482843130728404903728885476601424288677818498208469731379374164091700675481722227757258133168460179013715040218801276937490873491636127560351501393184013001384793078895575535619213310911672646708632942247753591255039722841062366609973893256267022342453093960299690570389723595713365949073445359689509580350618818720521222655425421543891265948100984370232828127962385619403028599962515450404051186081367689276077456580524665463600141663731773596785637202731066067458668706743851585830024690634750375210823731530484328846927674542094760730538937930365495652320283517596103893053750578396079654369824337104193651839612844059118363474910546609054429786919607140313414785693972702129017075172804171098242268672442779425121397089893733523837170878936666935844603177136448835117153630310435387234942950510182225033632902045870964152094474383746258965157849288635754774729002424623647360831497146131038618052403974125697596890526622757543206331814668467599798461141211434242391863638631785362767041984803983283640367836336287259667966430980786147539350954492714906120276190105498254741598778820819036929556392897607019838991160159759052842767246711216675050873477755676243951436827742023600887630051484794273450909555922439193381460273375038928275850243268481795379420296074656650054345873636364866692406561201717840434615284371407471526851872314681800435487652956933236908601951497863543268741076823448908530415534889053460818950717125832688164894799075701155279459144123112335658236909806943966778833404238983227336353859147229233889654386024534068126858795356039011784361037273550972999562269758997038497272335307210891873778065133686808599114038399685740689087022433996976352359690162989494058184219982326261211101306331635773961294634521693057130769334833089591814697660429184728684630587534919378747696126497492307172623532886964835831916546950034045882092177607960809000625944983522163132855390002118189394844001515869405736352206723390452273452219548979034904564538386256331044542762987881984840352681555708959186429868989443368866145888006341025746641606256283811842803067034285430248374456906584275502627096775125184651856340304840542483561380345903122483437815043294105660385932267422784955912441748777629513028781519606836552108312504109281730103511941070879858319826485828772753913145216126549703030203100746744704438352008032717647935552129564255491727027979902958469176524273470520715257239882560255097491173942999014507779972558742110572520529901122296327566090989054421553357075898299408573349374662667294932630644099484565812509850268541271381646454687590306839168061392488487397140571479268917612892016868891209742752536651557816864392419764096731873419280591943363521096274907441086775046358721246419434775788104532356811684492738004893785588418455153797482486120187746716496995754802779224029792291605066708513017411842512673733844279215348729892963582727525936325722111549618310354809918313827355068387670748360745936991126041715162866808025763386507845210199452281388651581144216919812042656303125089682765608309977848633093579031439954583414910786574070957185791583295445370161862811436281350169614447838766903422008802687704968342137584317018120590717429744110177131302843421903120610938422564882167737628942321060745888092649688865003712919970591082197657243573541806323867279144609706702179453771062569373688464362112411997098969951880212273340321174943088823711539541882659829228384772659671175895345862499460649506902077830487890648318952953310651394641852699889885605332953613476710038054327380405942786736459207191026739754498555260272446532019627978997253678955280903482650757036794199309846850474844738050843017360585815830328619853868420908020757399003124186884639265030536588622959049925764496007787024775509336117309717298333958320571253283984410348816856562115907288763857151963203128887101407397433980328072003812132398387667026898252913540939731658429870442850561226226066509731416977204680077470487524761743855408988289754937886157937832800538192782820513805563782016806840658153683635947214269849407301226360539137076105812305993108892180168118480019443020190781557967897227957321075457873371685798306540096231569280904015468565029745996263076090510145650944087147846581406486554153416494448950712907664430136401369212382533802730037072330527266259930030879312990232882535139672501247122829638942910360610992416322740871367006293097225460545947256671436217418801216316505487960331221358367156423873708699515574857184342759212845258023428200663388758044930334062553196842173799120873871097335118972984644974584691271002239609928455219187771334661447781747013986642765839407776321155262561993524802930617349799133774137337348053713745824124795205874732671375375642233434761526175031920153144935612084767364711139803902190961715464782415779354878096364614661276292335097502806226361666508144293305448564970380425564006810159945427606306049719144300907517186494899506986091759415401402127772404834320530909856282223819240003995200699546462817776267164399865191758116534905260533656734840787076832738055582565687134006127437163141739874805016854342210585393883797334957983054572884077032139910137437039934216673295671076441033480145057172995056236621274125296992401502592237915773231896355487468631531302785068068311807086423723004394887473003324997723230033709890328957236542515719339344826521510604284812278561720006067846231557076981972473804918361306868360265076675913188269102563495196216676636391139206525938562052546384517641915226424670507477504418881070499668853234063698899425176184962508996048852129835720658903119353522566072404815689327326941392257550531411694407279287504657965092224497789912049832147439070003992471995374990707839419462508052448691267600607708791287143978789993270195728608010189783239465221833508028635504251257143161350022847163681211477237124545874664177260137388806274708758086461223491669312277172847630166998212345986180265040211668656208450070275570358504743066639736040056238775754627844715432311209706535592255712959674203193767247439408377728150769797149903258997392829170342827103792971680466835468932562457596832466764972335579474948500599634633056281820873350823954703260000186559730565562306456699880253927777054194266117955207392916229556272754913561849819246983539822454332167496470827442941234480587163179862469459523245528812155765499294630789264490276255153063002009711601965000892138138671801431121633248901276909349894014992859454872282336831805412645771549063804356169547380558982312462757761470709039911021854329398139146143612913883377656725313656112006228543698051925003021470258826907190999836872138351179386807330293259396839031781579146159720663299331591461174067505063883342242412564518096750976019522048125558830539560185183017781380052376063254866987146263141890487664498857450367101184748311175918305906868835697366500584783834995469981386265074401784399165674944740160609251412397712065632957975075393903180252045327883151636333210975550095142658649860741587292540800728663605708088256408975356280854895674424161503179806621114698112465129929711320284990749940589394605618526962229876753536512614699700642359752225424141705351012145532335539723113502093893296918500783215991329848994819525319374647589984746527560161950564878163124939247846598853873654560050229073827382476375982991213543516899221737363096884675811240294448897629059401268172235922380220982789286808761821318821410818780878911026041974410178858640504462294987755607335805611227868406196665634285725870843233415111020522477745792201704089977461816496531575337640270537594255780156889231244319864609882647627472018685453906903248762523477578765247378970630747545426342329756657167493637172659867591359705623206357739658093801880579781721341939104090365970623124563761538151950444760432614251810243011629329144756733946884242021292536301496507732119756206065171865479838355782588778697045614155993725130681858810502000712360254839650972909403384432687948167734510722678274289917800003185465324972036154199259646863354157867776893337159647126221413991251547783114782608940257037382175547999487788402657958543798166868382340125666428392665639132190222066718630357469228360120627966744814858869400249770767647686117938761480185047888118027837146665133422396013002964473852077583788947320106494699682414086999007411501909631265313193464026127146853406681813252099218069134478587332020597343091797157522716325555158017996735769094008893520731891404740460237636396153387155799059024360224179721380617190318254226427545884566817902461270248205539144531264080875792706532017174835023553392504085148960325618328294375803480687681738276700011373905030402010469441766494163866402116877336390447688379712132981505687205365941229315250807820666224575004149906866021195865733418543634775654076164116951910784231873344229731198910142320596941991117313266540156753975802395037720704269209089948613321570273042072335460371709432748740842971899603410905039764400146320221417327914720111655715731197492499700024396924913745382655886866461546671378193276810770322304109459064746878198813429220022048661188801663930021167090338880158445187189095059876451237018974972036303047623333515505261053195561568756884408347645150549284299451082077189059123262453603634627401681908092962782750934443083098409210662949489960451682511715554422124754419474481291719849922590930545532186823180834484823165426397868125040395250100950264884667732321073712309220307797829564820005598475497505260725826633207247393872318925246578481911746268582353400743570851965494793783518616786952467763092247626362179404932304146640009084724407539489299903129454325164503926343389958707480333833164138171622976821316307233417594977698046368473873784146743498371006893570927539604938692837409692489417436194243661039185084858867575258388901801738637316611990337545641859776621454535783955667050494855592942602993057619358002555629050696887868468492948335882937474117393655251751416402966459938692054559796602230586431576261025095937717431864910981893460956110099705052404443127591949424095565641877583725550784048809850279637928300379248877424719226818599330183965837107072258781839458457853040212001056995807025717016743459398247787219029276118047593787173249730348856067985291561134274572251457697898833718667994088648268501213168058060248288117927295467980971944254964575487801860555688628857667271039501445535927864011213923787769702914668217514427959987061430230730805303628058158107896023877639673084200957391902341831933440840182427199083927436521518998039097019530384932170858114796296170198298052192098618909458737463259714529997866277400391908080547539203234809591757956871013526044035835985269551021688019813136126020523751989563830378297849122975015986126644937259395023629771652135482274093502507867274049256419974553638553496862098417500792353889521719497215878814807101719818408818286780897146325889075861268905264476128746068675520537149165513496295774384022963765158211407827555225394335782408846104134651058552563129112005323013939643373305322743274463345285525786301964974896366526267745685507879100940136051195667644912821585212282286345012678769073931921288582277272952528924663193828064138490250916339639020289163493586907320527869126203851174467024733792498860375426851959685297044761674468539680785198045340875777790979368994313155400754459504238603679740248638762798292986273905084015104543151196818439999338475732149394237416454581629971911785659045701179292431095433042658384766591470996263412350458417615005043681852627905600335116814394160714078356009332792839965724961006951645435375158613603593277162548313434701490735557221687649359755013993323899450478875886504142403055711305933891665889105792168894011907637691335241574422593138226442848401910520557669568561365618849640463408852181567786285380888640197270152906285620502484127338293247355702826499777080574308262710798558103355170730583802771904989770475341808742146505277557765324253508533709549785630115157678391703909934750673792910459735876004748759370872910410587257323475448440805701570704567997187952499742784068623373948452869933806894691111902139812244893877643826701803438845278710977563917328808898761712181813047524691209685766725575218285635294760962712046745217542186022119887592298599870706930482519178337423611770358213390439895160829953290784803788268327070701754767469620913855350664936058886587509206537880817056364221928625209477057700200819489100955515336575260147121101143292196712660239955172451995499353191391167659518340009747216626460538286838593279994442007569044459408340293795700920025610236316050344378715184027240616381068377826229533832948296503987482564263569450013846019215930662321969872519240547204658747933346550803678835966879265696461674714605929014657337162416890252040364808115279488386436634296291847272421633148704256366978495390041955084480835460323748660742484943020530647914042456081323802545149361604136974654359455897482300931155411485418547006831187419075086880643162462044914498869044089516957732358388622965915993847080308776066057643224860819617909206736961220618412407326238367699388033424419893072284274450487134995046844657320475570941509013118238006741596302555656000022179587414524801616681624517212241810596914027162013620294029923534837977196196199572057740566049509904981383324677635283168649687951587873091403793597127815166318129541643695572902607080432425164810388619469502805845348382117996952035731133052484946144835350113502734315699602313202156319915872413540884131352043065883864536950296465841820782490694734421488387938504126544574674691843375884534254494786604138557208304316725332921413058226367616472024574715643567220238040939672205060568713828454721545076488262016164991540908098387909292715918162576066245729435260371358467244086906521841348919320493615969404688274366213169826974013074129261909501773462580132175199974491746865982343766428549593358171403503774768215577709671801283423770546048257576654825151806170568169430777093665272415224415685612977456904277971069204766329020348446019034954835606272656121446614373027487416669048823692828073346745168458524955550449159072403875235868462324029594796206611721792481248870159937046013215693992740981480246025637369474398037863576334822737397544292888744111662592537251930734325353136525431425385076276250132686428089895119096266214283201991728015845953283669234341281272672278575133824310758217803862407557573348533945802040225587143997918199987895602068202110357870583133201352921711390056357833906636486956739926980700063908681229499470586368194219623445532429176013858109456872795810163939620399083783726703559835340865718675493331566449840477869738029727527841463569006708833593896755099669638066000770013377992753077732225862784870293432601072864971904782329649528296309103124209717179167064120902867696086516092124222490024003219304183602468143177951053445525126816737777993944897869899787594453980724425170685727548480878622216233112485036924878707123160985573962207872213334289388412358117099804707363845671074580241150651489480255398153129502020597055557074517556842427741955364543145426904428282482270448310670536329859215025085741267342718129907698977375639486827242538845093793969873170619589282996065995380638346678601246097716201639657559082048886624283703155242562552128244666271785024321442171744142428398023868804358837822200457129398335049429343512062593723509746300515191952273807596792340434634306295055527760196059253202547192442079455045507603982735827660030308527109451602765498424517755916529451796374503006203559839849653174260960865991710463968009400017992131084738346434313756359091426364103251895148093677199516385396545452833333226703390221059536434697149379185651972404872357730637168815414620715643856355331105993801030058353326326787455769197532434916729855401745375822327122551893933187033051747552772357790936015691206074062713187240573607674169663515824071755335450845015312504860087576214169634658441725464522520227042007516078923660345359464531967266704489348276399630727650862197575258923518856567191299778121517236432508488328955301284376762210222089765771319731199579627175501286882570697943986754304245095089436389664345226480026777121721491791098148142473580288174312902556004614394990985834995346133459310409781046908651929347955181310387597265948816305665036844643760762311972138570154035201218341137262426131657728774218574131659465652418566164552374557135577948204449227842294015905463687072277973096029839033892481037519491118230612343769616379927818811200062685702909703392693880747052806431884101538633284227334559172258059980132182700196168483221636135592790561750473736272839596597344597636848913045006081579966011564949722399089513070917811320404689178750125418899936647195678844975350778197518853918697579945854630593098551884417726400939248690250536848181647441482525760812847064803835758388477991227390700286842039818237633172879945030054759759861789974519647212347915489805457913088775504202322223616009897582971263527522863509011344980872751337532274367721840635741470347015173163164327134459845157534195814408013782244491436915920360072228205213334698759230766437067713751068161779936247410739917830824951702068290265375474445960611207322067250008216430569264394314875376049139080092866757779235397203428087948181490094873362289290095950150786524889110955494013923600755637874529430206765447978140012692580121946720914519088891856118901008090978370711652651116298047374935910665204452502340650916969073366077331410581870442907593031184606196217577866687321402867992653173148604413734684078034300666833728260293942302314440303522302080094319769867132639664748163473221126452449356397774097753856695306927602582448376889857902357229754493950189977381857575004678150803035831003569418451009445331571630751106626362934256491585727412246105299571267893225432141152930133343684691420241479106971280186272210037936626488655942272679045467835485557054527913930812418821256860300570088406220313967985674353300937310838171946251275695424228402136586878375803287607726704437372817982117067029841760382432087574529525573157485227681734686447516665367031701312059321094186924150252757244191933440498148650486252207641906518929834312880144250527248194064753080486208742110482701255849797853622702569906120620968154408819677301622546407117984755450449017809858822617909223512579060316892362072584848809780884307774938828368756308220725779192918206098680460105822353510976137218865555580771544593389825044669411606260737109636145351992817409840525532630046355496283015648557625796773622313364135770700717437162741244153982598119027445791489768619102144042401420687636996542489135179896133426748345373600346717832184558390797740457284198516198755666420633328489849205305990681839615776838253706603859367487343422682647662179177958307547060348570073614982067824577676607573429854330171247063404364640082708615955912246235639445995067505950536801493781952465035528335355876755636736061567857291780787881685961541487386767176664936643492090962001384446089013748211726546859980462792911193473077495528727059594066517291581643742029215110732724325442620711325352169765601681469422397481272412096675067851657198704709670336923389353371973396544506576188609512478726560939441698930646163784253580579491501282767977951988187284228541178537324175167511582396991021269185258737599602539759703320845048285989110782124935942706231466801823723375904137289320603514626642590382014466488481147707558768584834392943581685567004035152502056479388839463512048604028211329031183345532552377385659643489602119477462731528923612911542114784512462346153224538179238398194739766868014809413168021183467974359780149641402228052316632093179777304762302806153589762525506024268795559567739340245075078155789273118202494167122553515008819957884992039125763405839542239617317173543197764336962087618431396042181634325139048531377070104145349999796501337517693651477393367944284086851561161211291365119170444975957350191770595665041949916159979849051169921402643816805103998682301630295540816230411287119991831486085622385585369609768675607861901683794692964272533992630280502975237986912982931081621542798379026109399889597022349196647693629436378518506170127442275125270380205383902247646314677923679610027019574885742236149830327237154607679713089205676742805739575302960742642513869853430468566779059765627325334332751839711831348624154674640160057188929372898780804149975051763796260791088129635637685816277703929007897105472016083518208890641726579162656307067359608153213783787525386745345095057689573393623033798156889252162422400441499062934163861605929506339183859277078571147761547890070207206326513206878302613328916570673191778348775287884667490255159560922005254633037346573993800940415637960405526311736313654137014013268629887133276346179974855058486411323901761438672493290868139271774347667138783022221026805681411469270089908582229883634285448656113416437561923326908237726087133324186746582980120673120219569158410427748136548924854669933773136697967904490343099014413261148624884822737776041590233705405579466815431285800975790198802335704667236614487797635491684835209840473990779728222044194251641740473349909529003461456048958103289899956542329981128794565017392746815804602577376765870609849862797464478842351850566587810531528722198883064506335086344468469202363467603591382272118124605496076928188214862730139707881875521273442117282676209898954396052089704594236942259621284521877913331670780818021154927760161978748006581956994038592289383225120283870977493020462394786030631363397754396180446024472971201885339374950827635289556631228296614995135036123193967816972349662189216552407493429568770537975204368273083897105042823735252529808777791907657565623207033680146794366847879762809274624529988872585904903467434537039598624869655114718223417259771322961873193517043954819711142805474747485477676771640180713839554338828480837168752061426167339509144331775181352902346897511962467125331268341289690533879689652256108398386078764984976593716619612853905236580650230301775403217361608755109700997104847009965998905811378563731021870392786748488503025827548761020951931236205363823900525983008655393033506448882476511008476126130761742593978482001356352654512936524278118220547114811546735544485166691664294396953047938232947270392947082363466498348854053195457950040297218572720303217735712065122771625262766619968999978882535420662766004826002182322244179657099632505434844456297887758201292527367141832465716233316256403761003621636893120216470896643953746041770961085472554902151590335376518467642426637917156142117591385459689226379543768487955144604866393817111136003562820079512186548915564910734035484673129421659877015612352966122756974866645704897617901692866250503534409271793929946435481171209890823897664891360688430063977159171988975126653415940805343340962744244496352954338983660314033783591576586240214196172615723852979390553710748202918388524037735041578160030616893209640335963143362480492583980183299757877391778734089306713521978382788472226130651175482175212846196567244514592787153894959653468645969107756385089322536760327695875075483044370263802469157441632169713736732785122651976641568290682963862056269009941660803992249842040531552269900885559605945256709905013403946826732538626839587190809987442142250866812213143624460629125820090141733533248374135549344275732551493510430744935341452951048826681939520373229907035149078095205160179379720525088921802517229853257384833898926625405418603626875852797698837960541504059922416082987416081786707329003058808780965463354442981428843858480347688963599257330657104022346866921890805401193537201430364450641931501372255063606954952348292326598639031990506022245290910663481445032075046427282222876808159536615285577229943369039844374065983386525431279389222368038483618934281473297777512542735175602331367947982782481646533905006240823101116145067118257899168235833494143058508066511433181073922516732570573405474947448055181989246716284638117875315549954634927708090610439974296000930916848376701283202653132666850832431769650437073760157865869689386086002198051483910459890893598520466504635799908859445899573668606750323565505347362243732754079517086633290604886615067386223203368400909833867124699720825272121768178517419169967321429791843202221829677576781836961520168470803951423562586456909205154575158911586184441144336854319650065229162853448127469619421675615291333383854344192062636374638745235822952709223987694284032964910537850004740449076508227481233573353244911667862255470200613122112072859554457755548755246464138644691010537935475922483618308078008093854633649649559376461440983299499716650203386535433388662456650626945371563198617013302648431711149783980748902619847171212343107874372373323982983053036806646258811553422890947514551470422116134774032799420222901875717932751028563387644567818429252199803535894893435254187922006815965395364356229187941496042228406351889464668583813840088970915817111290047088522812268867445072755448034695875331930624624395255075663759546614117219573995812688345798853521202504969277731295788058451848677472955522839115072504214025055347121525307893090362108655221157710543493873829293130392263198913896179058450277488688519744989784093538950181674565230605354831089807738468291528592599769453920244498820829477920622659656899801200489671431740442295427048617086317051930370886201328724692363143006948331782811682892936574239121705937816022561112970104377698066994096346952511178244363827506523025987769772195638351307707999346704807959307478459129564609128328501781922672746206656526200421530882750487440051389544090054445727432058475469950907491651005223362794491960139875952875427574674002240476735365244270310393428870439006307869165676045017758351529453249377878434460705180922681145643479723086911259592158809697337397207190414515674732621879049953885480923497971169390087981585072284075732086741291168445927142564073486941037646524106191509570031534508202290961110568982750248232609692565973055890664487801255932283302739421434624518425090354349020776688276067316686541790280838325610340291521044983811685021704908989919495787326032168075188580375797515889030720662931222054567401913013241980663531508239903050106411582649213968893664003160098200235827876146651473300187950635531425461742673255152670743171221258618550127736516192475780423767284410033716630907186985340882296993476825333236880470605277830010254559208908110173982203442798698172075621908633793448571093036060690923340872899871444408704002575547438104180364490664508725019600808691799115449880190497433891412906552775786401022101522216207399857691485942742275422357194193400112305588937820750539616054494378478332814963908994618443002055167298532535762105540089273617283311363857841086333540960963403964784892492005672979550138671642222304094932527465023123973973550576613899317666139697397509201072550223262584032378814393380597475641229133739040305728080768193026272299344690985792915873377341807937977839733702826907888866859482999531521613934933822685668197587808761020082816359243138169631019202114528671793823015417743238218381947912608244224170923147502885139187910046662017403222699552376186892399317743583873602859160704929610391851793477765249134889145070934001092646934956455143199640339864055923080155998799919155028054683130830966019369310186969126831237799539990204836301376496001361587793134387494659145285516848228250935200220081241410305364852213919270467085023383544092025288158974559432084563267460754993644130751802146287861877452505813658918617932958974991037694998864198034617748861046430102901980116242712298671761423579156140439001778664311243690298915958427126216751183126320649111130551497493512290657546206051402571649380208762295886269008115618587311298188181423027527142874364454437480253712940682357346846716292539271171200717104760761688461934214910987109128840207262141725710952043747125124652815790531813511942204401230369760285302147327338710537939876165923050056189040847376346049697643996066685103231011092202608192765500257212554888684613006394527049328873900553982357441012177832535417746226091746227026160785238429640381296886356936885368881473414469818502460410430658846260604377369813406181480864812575264266005087859027225325581400549399309937092095706933077727307803443637138369007121207473494757176727809935573677363905950271308324599030308788515647442199606429992516242519612202380140803992073303042098535550832543154038020029472700247063602168257761002407271625612672823207521310377704306473844476054970006135433954781621789461104595949049889806898801285981302901409066455686468529212174463173209787227677861728587341306798410994866158052455673436055187278957500470013031399332632334397094840213114636751161465285548384776157748037809792686809789063242560908942683175702763727041523494482324032392965024246246478840659036669334003947298745299502168231283994633971102371324492551796417562136195637051607015568244143453790508097728900449163263134848535086050348359472516772015245083190403868119338606764837016138877929077866368474474320437786970646306601204702858278261244813133791660304057432924053698708681307479353269500247319665046466334279430664003329666797126112826148266959708915997323164124137667661382358819603579376788729678584298340331319020048909002870287447721741378151647329953948583470812972765665970570987443838929954756424940968607591325783131341709363101401555289095462677937937371743070670940601561128045532391252064312473933524877957811244271526706081881668397625008216836460228324521196044749144897426209911536049827775770002866990512868530937748549949292799728867637822459610258472595947387019279204012254856291337192690607014745128931077749188811475564472322371778180266610932780584390232284730344890793858409905866315825771504662434878628239644389008339728791208747071240888498185491569437990302305304677856612258285756830190289989346023015106736930373815915471878358251681817178924488410186112666106891315191513326348331236460362584068910909253159243920293713716508186115105473446653017457595216986501150478638760736236256786713807642339472989824167170528446402903223274402160730146715627909740819546512581492920475097696190578867207025178148385033220834727137111930357960209416165974431397957223183958575160596984002189179550235872549977249584742778102369453749863489092766078424846303238021630918498905444932483418817373435107311430594706068118136279419924062324751605609412270582247470483478767552098308177309753323452197474085207641832448559264523939146764963910168480432549782917949890113625379154754897518162205642363245966769643646351727770386914363172514956839495027517470776606608297001706111244022338788009082846158166432991863474821715719074175733418915761071066538671650926401765317642113072781181382736558323053461389776115314125357781910063900802823197737426209618994214513178289905364366176516219911327728907469374088850994067338520569111681154851733279459571363413658687867944299518773714266281545753672541474432590236065809791988122406604648714812696375216155947715565486877151960310599520514298781130241898107462175015082006904958047928081192411183009215983879673085112574509219132300000569614725668086154418036236353338001666961563559264999884190502886072207072057327792242239612849000154698738385081910143349377623647998246619348600329179109091622611885457893316000672073178496308841405452223635934040391366384823663423068002759802028916719439663477087926355744712291364555817538169738852865357269792863245746264057616399647767415290060925701912249515835133464377182690446343260908051090288409471281676893144197235824947475322349580691468060877387233794934571597406640353817624312474950225546568134908007530605135873652990007026318548751432147866699556751511601727603764267554233317234262028683636955668164392806448531867390082175277267021951057414281439457301255764372747557914489498312333646210501407755657704284782277557788339969999624220067907208078192185965165927827550646522681702235633354093946224741414156472360333399349129087244172412226220282052388637525035595021746011663850609328487899170594284248548504994838687335943012880962582665770269304113855224177526482044818676795505552079741749356146436044245894352727889095717175533466939471328182594628041153179666339918241716319110318681956743422525237807329787495906147224265285481686988326528179774254474033260691870713831570096609104916024832984529896607248638503151112928540371286625742836180346883764782741779678912709966312825660984823790554665366054515030212812198262990207241359344656213619127892532256087471133147176589079162368414110049212991097467742117991016294846792003774439537862775890586675668312729734827242928226699280715979582838216174652549224710798256773484652313061169470560081641197094477860150933264849128341198043509783638778462292488560643291402661081835967330895403242792470187616853734752294072580611429088791995389994100931679758332366638585321919859264921144506291232259278708404992474047479496388969741957378181112273780838521903592042333761922849427177935682118205511113518439290743257980091676346084016474560254761461229392880528863142054052898243645382096829757748583063710644649118554999879684826165693851673873245434695457792630212006892958891628472792313322551286521220118155915362569191601338527876051481207261775910475472919749614897133962241705109413295672477532920167617509279579847546826412240575705644082833284340883871693420842757527898229934810190088074176919284207868364354853523822086045332441797874655903739600393765813648664701280245281912496507946632159262419600279990068500563349067282340895334374760112534405159707790088430716592319825609353578186365016158010636316628010903458912024620323769264082493596325761687723667705201803535167974007164791550329320743937984291232882906831807008141224617965073733733002501090286380780896509421550215866023497349192780659515713729583112733061086914207590583804810715251235165552134857661490565331889309589924951800315278022787396876058108097580220675285593723322695880652740898272938004657237472425005078552848287817589833811115912462842422387774971532695811347711721922822766880083578527168657980898429286982693172968561267855095462177749388960840391010749095269170838864396100819976893121807491498540887964247074026862058152321656814695351992766780531871147814900697759958548551247066634025417407653783110723681645408035038912521526810140876669600872267243688971184466930351143377620334395454179066960094573073869368283481223617619141490747137609522248855227423928076257773839052513613366886796239720740562253428682890748761553011738952260089267876149529182284843898792392775390851883843774846227038304822908011657995201876163790544587098290623552990259376662031635246397055153869639248917945262955544781230199668999467638189854246656090877531552985256902355758759302976396144862027322532880643634278511835442749789820701060153356310635861842623761671421583567376868197771353173439799007474960291786038427981349216986783099458296431848064261518228260718691946390832861935584747930359621056407090280064919989238948102791919044193169742799961585507824089339895816256018269213718115150100760148689124103180073445859170647805911622302349290649177723623980076389014502514522471848471171202314703148970505727979689703494788275357559261732288061231678660090147357492988027822333289058422979483617689798375476182842195641843416600330312010478695460225774362018754985642904040235671888882512841609393850437722638276403705351069593455384964607868805350084169520325221062076134635481417873242227322455594873532470871116494549300442343573108154911740652948947258751698853564852829429879216151796215007101472993019142177396314984348931330900720710517100248395771031375900814474355423556384221647324391585050499276688006064239878897774055296719665859301922059779501722809803419251013757707350158504007831744367067130499769373518623865513745463786436580953513833906945016957262577203413522228449314846336633697132915807949916074264419909264945830219726888413892454931862694321966155179141873639528920538451537962734835066601202136440377076377437562654864328149420885040078274654698536436470843890454238428825034047330130182017544958492516167223427715589695758625247181921603443852970239554534082812105530858133900279550913174282729581459504347453251616897012013564987788685855559365084377098830455907290648896803631080271131448492928642354595620617519044605072401637636179701214852183078418616745666720032091627010266051289182036206941154696507498570364241140078581472674244850875792099240062656979231881460911072227758467659483294417971778614527390826876710687929747655822844030000437336930336599001868901486389143815739860530811931747153472445437980788003185627651140316357476825306409206349215035987533947708049144642497249358005155615312391234044920563605683491676024508300380303642855653192245221850945920808594149720145557714859930578369456466822718508524560783939839371782523785370936103550302337943015002006390064348173982487056092389055832975364002220724678549981730192694555472622859997018674120594504906975305600238034693041717641969338837494097504049482053956056084383271068449599615146642476522033832567231019082039284019952259843787856091724539930469498569645489453861674378110545940992625553633087910725866152585618171933371124335360619135743102272037957507506877545862552753022126256436546841767603485774846879656637206937618540677458023255265430156530488211126490817767783385584848129608061758278976489920454430315243905897880425547082320076369556609260469574963890419182051374337066519016388160743565523886097097903135539836504760696065242546208802219298696232782181742218691597389245799512935214106213628711183885501171421785782618887975757268650622723780698295481881389778090371576001998404968278491063408223277504209151575379149698707028643949420953661433311424843659833661607099029218566478755504902805833394831218559988421592803590592292226521627717708599769838077849007374715625947072298509973513850850887340581710794063215499126471965090502918948080935916180322781988197641391565294916002273647388185505159710706050597724875805837904652788884445582865718322484949120054073606044967526674872628293352525610187811129236082083575886182662630834295494416673802734455563012122817847410342467296828811673624936491403440258499378570158555751379772340332507075572340047852385903218442709166029397809183453221959266581659201224228269855539243662694019860879832872311242551706821759303375250375394035107550050630042869706138582782212124584125338051325440896725768242757268205686555144826533557375035302407332473495901883424844648105598368551447647856601862659518044071237307860758374449534019732930995005129987718555511285315863707737451929858047271436104504223415340142161521944963074564982409292514282223251514422475148834448657916816579833392916750673345084142036810988215926442830954856775216061990417439460783033734310502296092563946907329712424929864692651337139450968983370881643734616025249927896284801126651121290757594916269707202269012943163755407791372198233653564575649782002335447962468673310354718760153688695591250231273205014692662795084631163761179532467059491047418618626083365270297529172683482786308184201372549656089615629753905946715118687951947903491564383599965064200724934469545665315192091749695600310935405749698424929173373111345465880947588032129296346260759839735635141238968321123723644838140370219276229478422243812663780790037635515166238540105266825291445222840948531036808740021656857432391015531225094736811388534082553491396199749581909377675284617303463215568530606000928394285563208750055489361436266249905539370051862864073526451183328651830192655174665340688405369204658660481407827982036984307697568592311436191729472214343330503684362131383552876271330301990875481082028078684579163489312123192187300383868884551271951489117401103494301006746983606400036345485291238223632158427370455387064400490285713279148253091547995250302488854452151299691510800215937346680753137306478314471492476568713119837587946498470013198824021527739213876623309292926418739125332674549875824370776062849733714537893313759832307828249786620575215694467649529774631454091347628242000979594985951397816147213956108348782350680156787699170202043182116243181579468831641930610394687997103215325016243538190824085619546094558345735260164057512170443349866628320617571725774773808411418676646823839437310330444110528064533706457790384348435277648295122423374756725795029697639823900159784630830193554632194468529982652843842819889882527852108296001216393478270350937691958983601032344625597100563653058830897251885012295566147522963823527819113385449637115387914414354142167433127396959372934277093877213008265633374704514533993288491215886557997576836008476500580822387563468793053080690667928008659574516184487475778346734900456782258012110004776812337649334102051269658821901058163954137025723512502856345811603266738061957106564245068042250494838279012372134863254055320031324902515409503606052744597652145885399025830187442962701719552206595148911214642758386835108915011842017144897933598652254995357639563033882802139539233888276964661212914575058987930562051111846904908531415933210147004847339451327377678075686840736123642644565718129841762633170742524449433595895263492120202415471840281803543561639572449797825958334996577926566535791462010060389514213358372529618223810349365946595721086883258515566122598501814945653415570115978714056907204020349774035632945936091359046619365168260589222349801619753460444927002524960543377416703017555601292584758168256372414270868301939756151775451149756643948605706431511186992334170364180142045599211758822878697193833232663013511622487491714405159552299936545369546777346604756933826645177328592047263389501899692086370465397072921763488621083958004864634622018372368179476811896071977074717524507307724090677514020274871597985949299971808695118410053660519611194808691390653257307820908443719775108157130872832161272213360268254879604935330682333689660016588645720949560051359139622793596610989324402358468192677677173125277438812793752428345435001338612662649329968707789185429085326650914727423537092532553377072660332217861418126831987240283612501190435825488617586292728922167651175857356415328902889852999247333991297188299031453500999202707058612316553513424855425976668774590552571097906209540232208158940726414087468205462913012723348709401419768202874665681042729564584065517612252772611012370557533247285262394133908107744461778581356644018363419919091186899602414632388676242846354544915979380490547056607398655883505519299711580164766641354912880689355226659958502131614853845874165909438235930941185376047476819384392942594758725322354329931969111978060871071618631651520169593960303703997736044561364354074069477310061598088663035194618377360134757222943423073495056908828889250135551189006211476358342440567303688023721462215977910604737332051767217029869707037220248621478442659629153433722676847574692539501965122157861800490035673009215114813707806060532462079907682486432906964041069815458795954616521086932651203577275498058631763946628616719650838651258112885637799008867541092951376952363973772742910245082302433627007285646009200557386116180540222881251753363732226201053786350584203690533984288089365919108182998530642278072220549180505380095072922975194057753242444622417393800354853655398114152163767815452636820722560231157402451581191447894987009321952779828270651857454592200251064583519023923605570056604047415525788631355913170868792561205705058757374438247940848651264206321310618988209016119985280212395691579060548584824121043710148309242606907822125730407109082239481267439999436081538047002163434641596046788469105980422935770071147633281527479033630392942717608016099442224764151922294735988796534042298401739854356612314955748013917445285281887661518786964146014111100466610141343623706614613349947093876440787190106466829242037655346485930720619323385205495979606024138118249231716140543312342569587303347663500634431928977290398281926280103967893869108651627409978772743406249636552329321726389580507337110338203663829855705890217868266472919474645648732858338745547114936026263295030997338079732391349016439550836321412808058997844083189319271574760798859148241119689382320026318731777777726651217742546553338037544711492161194978730100913793263645164700337810851828031267726218208471639250576800309446423180740284983678889991847278422637609837584403128072714689609127262913144498041374101254998043513621058607781459987579649093825468397666142828832964326544268253515307463067954466979670518323019875434581380596926461933550960370190677353061894122671473712003251072994603357867134777899802917687342265794454107753880813589262530310082203008319579796591633540241483735347489448383090455668842639572202704601040495339023388658100954412447570860353372473126321826062028635504892750949264608653453956168769737376117245187229632824632188685122265366790611187011106693301436399711173541859083377877953007380962881279749800703278440576484863991878268001927911951619059704596187996625930142748913510241091674291924988991094168592309806245161215434434262708344164027721564050126286483512054433229786661026790791412971160645400740544913872801016299396667970963620521546676465906807709402722297562361375917655551663097973996844477534253631511535305868373192690648352648028409739027016847246340737935326506406690643071610114875683899019497731504651400139059587872667261483242010215243680145373241521777104801766171818614154832409110956346926517097439026546952464161575129502018303867583431003335400287446360161104928797916517052466711112174269998017686566832096197195632505422890281386576845755566978415058690486794345545915645644413205407897132247945563244418903266221136541144180346917528671434819777868329415933084893650837301307009109085146301343879702724680970626497538022672323317762111802637931082136259571019782042167706813687434167872613429688218159282719004013590954063995360756999191544759705713984374234997335167802810919628021156632264184767769126180079467252905131095444223979226749943520338201748255842807902515209268867990138494358162340058377100252311292191213352736232367755115949291089784209648325931827244983924487871285788134242731782221901552114528149429611615182164114711519822014957950816019793033145031767046412006996814910543298933675543148131750617933744692455363728769345845189808567074399569111365715716048948374982968713230104351713745295848620016483385351107065739436608972608606620031161964727967769956451445074668613340375916229019874377292128899358323352967474484813001720209757978143386081117223639981882098308664574454765316852089229023526962158465389521899679055547842250351730960539650065162513607358858401348818101915798409342462838288414756919275832571308361992548419757489099899889205184469251918471520935471701014877816626687251106927165798057724439796431735247375487627763331740630298058202789965120575297730477461182369021592853095118907182398395861290288271116150784145468552703432764912074392267263814485549602246969585810826501504497123934329612024324779560436590482571583795328552444769153761484484075420531837959113481102784145516932969469023277628365898205384320879748174893577267544118848946139866913891051623561564272652566178285876307890305292783819517975645491528765501815535576897952704092376720544810697149742227557370440733283509433499681860232409988524076336902095345748649961210036965352320270445914433742229037985409993769649425532051073153458125483841390858797433310935691635486678962801364770108421344947611256494918408890249551612457786276323340761502484092222282562160139837148989895584578812998068975763486529477520009356475010127564170521155396500445764776272203710900847786602830728551685598670867675725843645047129777537215009825186494262838178535521017767590484364288772963169317210760118756730364666541611120580185637729438752391502414178103202389725295808981387699080817545819073983341260382875215307105175215107096949371344629549418222920937008488852956702985297176838312158476585366810992831263202574656300921679416623661128332820369731738013907356704747859708283696757785129215725425098033359711706287024370032489972291136170051376131726806328245444124624528267174520660453993199598396290267334027696053342293876964517667804627800376791417030677928572030418694880735432196232770812092864567174463814650408595689531771850776850267673688785569134325444997284174444714743532665593256732766182362777767949948505038194742291680888327189730986109174475649578297969669795441098624920759971463326811970936728916559329917056116160610141023777051972875520451486305790838527917625995399806994259476897622726966448536912799658634636677899297836061160692570408211338415476949138598727351593515309498925219612297147427995050357485709105169105409575740854624768138030845352306312117923184202464998088782054085832103996927495359176714478693126596132176777431838686867675430076997319370017195592313166804358169653867069768636400035488776852361232031142033409171352172687418219647527281293061202375393529013272396470800012628031932733271894583737075221867997875322500146460757470334324246608187510886604317114559911491679949271170080791628462803027572382872404945659176501482965974721979142844270532892374889752580737766861612755300315473830708831830613860218601864595495496758247019777858493062875991713936496130896453110111498256758258027727852839310451424991471275731467238365834920469447931498238740157007956351143177584625362212831666463439758728062572453089921405731999730692864282424275332366462558707102598494339580989512696939896159470786223359796298084542610523342842136557761362521784620766749091877163440660341940756798164533384285341439430335806462002342150504709613100775416168720052343368561159027204707951824370786342867181866421789394273725066338320612309671924722846786162335698311151112554029828098375066007683907044591451104526519543464382215912469394927722104345323179541419970951275887935806968794205174856490953500558048639170553198113407025647685374940054881513259249423410975890966178004078752886357208445381603069108046625727970681682578014903254798980617079760515901038351013110768181134581575218549575371161215354687900701463646000047814611516931976326862739735444276660485248170747894726408218114374393045223951721706445919466746676561638312405551605323916831899959079377830177702847542271495045742494347749893465450999936004869557865156940175600842195386131624418386940385804236200783066479534201010886199018281092643817758205587320662285621853770196286275441430068099789795808194813127390590546731483540866669663920103183323358650222321135489614360796261749218977438836847774921889189434807559829775431013123473606455493017362056490001499721368409861524580114022697783590551060463959056858943749557363293617421516303200436443157877544916505419170595337468160134579783743743948804586638791711967086564927367271784362596951704826284606816679882057937510414655837113447374869557610630112568672729637349122690823176517610446003104713590113509825569781101149428528076076717658749193464557369864238169182566075064832141245926127325009788168833754049465021752126970263030749412173836962407954549203599425528464097312260458124428891515917061427330632366752345309101118293282665273166476108325111665028380069859987822523348713257041800859024214538482114675578801285308092227395177041452319467840714579153995484882577829248271157969536834039260571152829842892937168641324529168222567487178721553419928799996880861811776918962604858987863737779719132442823616937462560155181953159828919889347331262643226520057106323921458143739016993521675458034085445967098656772255794318482931239786699257938142914397953640846491943106888881623350380929977407614016362702870086066589450891148395099344065719214978167216686187290054540220443852413042245548307470757217196755977615201595493691021911779734101196058991777082279870458655212726911268763989557919870959967733812547849708171550443369141824346086101101443408374350152957092617264103669502998214579805000724279043438412899733778351666347646593660516087124029463054367311192865355413547354906079519204671446066474482427931247697709445998172794254302038649903951013016256612449298317938381216737932630901332430004458816042786204120168735833625293547589492022919185481689349663574194937164602775410881326600999218783198762264721581154629237104013969421025357288199512184173464127719839614535659169687682169373927469667459524279659291920828748051390865724090428397883870412453344642345542684696740638856625414166583286795445605251596760195195623821743118215729271505610261969827506631861354006460849815576765847602728874475658426800619231256383466103650510960078103416893069801710680381553860763039036302651490903462729477913931476403619900472152536879849761688878183200278820265393687787728196728929782222278508045818327172471387213212299709762810552045692448926371497027554591058517034272237588016164942000946640052090828645310898778476034901254986524367303054850933600121042024473919748888568404780902405515608799769195675006307495973687839681270183294777050943003421866551949148024072512232898952330808008946866055579795608758669414887892779874429382193954464113111269816941172076489730464322170000315621660007034369366145747979364799566001867972911987384907456431170754798097962117016614941957993153573283199108112994597003701722135845576639830192456132982111816338814377067013388405388312395822421606354085684594960786344335209161296023089580437315129685532692494205059893899102555409505681271553747241769110245041576419450073207484025765877726174490224934162750000967949849377256097524557280457972031372704629245401226869277101450922223254687433071154623596435305825200269945116322683806943458559234918921949272386695972384210030174769396917314003246865530664258671765085839567563127891512404489085013031699244879651148900867321196978547003004676948481123198659534119982060668463262290604653007424686096603587747431835639232950912219459909536564170011436020430305193337782871698579244633343408982310726009319343684111263302858158744338245994436159781893901567302980780531988936636863250897351019981786319971479493517821365295719341269769605226102630772462751330799125045744981112862728913477577626259794448366524043629465741172011026302312461327290977536797826838673879682125793811688746465548885712893236907730811039034213756468316132839154991919611532727588595448806373381633897041743654904304599189917932124755581251862671014314107977653572520717981606028333118309330601503179134511303853450529692163546321531403715968145558364930649478607591728107258110866435975174967922046738288494095921698918867162830449120830315545150359252715526575938969439254395854400920835952342329890342835759542503645363057951182968323848803702930740805011766159212974631032788437245518464091110164368846676770904224744419312609987007919490530022505577757307208124101926010439253073890074401505160393819389135677131198904329220293932150380581406620278612052257496036115511889464482757325461752640719166457193552545240113014104886330737527560246404013248129716544774070697363745794272658419698734888334437085150907993029754431732728667257311100897437366916011254572000654898946062690082477911901138816314428550453215066157999906847692083256608033290947743845229082691092073086619662845061968381943058047722979838612485166807937093644047455090161874604691542194668558670655107383894619977357502972717108138743861300289846027981951706480527636667087726968211091551004406164139892856321718499856604676588405673866728471098860832553760825593672184412998273256380869221946662989476802492229091285085870710062070324466402765758328467008018224398030159415948387517030267937538946349243221933937388277873928102433586721774583390265400024357709528208231911716671318578188185720773668979810814745388332635832218393349760547802385312997712725700429892339231285704603946665296694403554207270452027518003221121939721697304131888128373093368659303868139771104093457566993014761859189948087102230161763310632611069863148551424244971405549031175445209025818628900902525200976653325708262943584836935600570801072474356954444208399491110805600510364588041677343026620767959966180021778895293914711492454599778967878901570695544196133951567407272933050668571482294456783751463000636503816607447539507663981515918403145443088433679245467700632687576492840594082863946658988079431425497968353900444298266207891727281012283235067681291583041631657191903016496002337112320023302329343187998430888405310731374469898507810619233973967096945011010653734318523377091438116302346246977526060212799750386594759019463450692680809275437531541835605170327906064578432066191173731402861849384882174021102008874722812215750089594732667383223758629500070292646347275482614885112270860146909528944491332637823206836127917147699947332197386703493930823785871754833161147721769937140578402984098051695053452626896573711336618328123674281923619907525938079925065400273558036307863288098864813144196431410067722479754782346947260257278531575335854864632573139894022509933298932962139162469325425094814374740133696131250434701431603931015108730418755380487169745774786624642240969926653672503109427899867064461458860167654260407970956498774079238292069574722747497404294060204704875440057424277209134083762560270412186102477630756164632836846155937368959603817584843199623092360571576735194480092727072932049959738679709875604840803619454796983926133068918254954445383584949586601000287662928204419910957244081189211502294950328448016344198637490423466278190621027724622040761948358615025913573647887513857385404479085277799721932246038429344621785848065032621092045975445429635894341633226930722516473301284576626833754027615544975517321111693461183385500271936910809562114051249363166330483392102588312374088416435856684723705083411669215544987663421086547640899545483032772481631649690313059553661624805607484411126493482647689212667793976763309696124144310289903991498151534368236913805760196893653364774226728662595611267317201883452239499819658008270754439728381209572824244487343086228681274597044910503768048747355589628115353897684034535027265562924838552434758484197393424114851537006062963595717199319707999942531807465832392237083021706235500052568704812285982416456269374585811908785049275140580708757444128192540863957549920864014354590056899546861616140241630374909124243550714574284292960667024215390724367787481988260416976845813647221570781794192192041532557301339520915069596911516445033170147470157354440061295051618013319937021481772285192252407065628705806457378608071621244231485286052821069211695776891277417763765418232668001436230797517382802094051213826380926712866832821776547862427133541732742098954069410517042466507906972820225653380053443770187652419286697490801641592180307038013870343615146576419773346761355819139928559174329693896813943096535206233785230306765330628432106088877660146190383905227784345372179364603888512860548694019291426828204236809510409438690232883552745439390182969663053636863585654495354278335637348695933774198959531903093192924188120002951827251430782605909470491498197479341211066461883954583815340418971579492737804708931405131562818571159112788622001480920735655598127070742248092395187464462332030714404702461987396734208721104223291335481918553133037301267265024127560143601783031526859094540608393301468475104234821174277740406682151991301361233752929393542742594526632907529249501741699974497745927077950861388205663669588524085340991274024025210904038544501274144536777711078274817887614696504178200645470073467343986096349584730510092962173753106724643899913847683034815842628948962900526229976118412131319630216064591707137225031457289460652998541110295593473785080193859522922719932297638931957130953993244024239713229285075265155857974578899501032214161234586772017250632768602899659784543163508532392445701451880528203778055017929327336656482912080496974936540857792420765833032796479075876799888365262960267384162303115995251325613598366683653998646447102936447181313614467064099794043715537316843198125085352090431501556726270916677374957244499296755648076872661852711277248049229578253242703050243102633028903580762325947826530194977821956709602126388261449640799935086679054388426798320978925610019562236000620427151840467948819391163456455080354186481096356947340096975403516274890431738251383701228820338497510488470023813314891372287265551516773687235042589026830590710061378693677520039657222742160886118680549659270426272709977900272713612476177120790344121943934329290776098329308848868376688091614580655838372921383811576546414453451063948996719275685939508425144442892431359272512072844789312633375850679058409173448086739813249809894047797596728623696163684207859122620313948926402616368998441698076518898248377784187781836391058061620903879121123187956535870460463453142981944372889111455218738171380546209314223984543716855055183909147335689317949817131124188621929788542557484118344745345077349048031680498431153329771827292898951712888990038714869450608809170795821042217488561429552166422019921329378622113176280797120367577295249147938946069679006628406182908532352986307058959114915382270357745607537142019803971667750719531973560371113072672524348740921392696660891935104478088765969097238357179222519332018849387193515737772228003915691119525473027117021265138292685089088559376229500529099027764658469820051669083064934131995964878363620312060654978063893521184106014307651981486985594789407555876951152990104209160347253390845271437189611170957504036493329290050240075085048552551713930433760260619161480706520925710131500767459569403523014345366852666134591379566383656339279558137538568038293810476952623747602055657900536046961421533457984886745529846973860178147116535478352450178603512524000169277679636329953266516034286848278881306023713399465989328816919449440586942237402325782136186447483871579665671099129358740309842128190696019427039459677363434155231819144759562671308083492591674436835685822502711556405520024197384644012881818592036335041205978243027907314338099164502214919525421520671674005137176416025326387413003770245724463072053803342273988010240904064434848308279052296950294478455303411728953069920933870688720484186649060366353218652487393184159496096065532479483367954336286252093122194000917765768915445625311212996604386164168638866890816971980112133666162169563656150015182597426303472220911508270269461079418876695078614411352150332641161179218137553777111384852906482571580624560889157652543042620142408988736140744042114894548695398478230794824537337809476536587016070498208571825426125206688721062494391032558659635124675028507348195097452041871592186157431128087886422675500092970406869990622859291901195002259213768513636545721781430093236323579680897080456418714199766310494056111605870039273723974384645821371459156349871031381709750027607445970609902389980373189944145135760206789829508074616431920820971252633876085620898217079167239861495570482110440108889035182831684162513390359951532797324173981378776237091569141508082798255831634372268694490840903162377657079826121921914704211260407499322438050002281580873135362436367715408234371196444621228059613949233689070811265287283045785621877156988591001658397893955743135497490907029802151005134300031333356176245514547571420636992003600894057270183175217453817200817969212167173057271696131938359607410735846553404365604075215257783791139989838971581794866140636622202180665375470901080981588675416801897369766084658418431741501934841615390445981372944324177457744664243631686231516663721989962514837073216886920020336703168640463922145863357150244313141823414881797939439282497539246964256051582375594512760908270142025445585755992081408565014024189994981717729518894914521809727210203837500907243960914140185440613787721060427934832103788258993384215773731577370514375706249701237820231205557459809712184627232486258484716325208876690806391289380395944002893043250685064390682603917991465225394231015183691161316728695732117001248537770622699792388022565682651217931407438952355976268707053326470226385356977266826604903106719320721003830094329694992663248733639634463676569865775938933197485575292751271169412710297628156401415146598025940589032196983514200073285707376697312004258680852763536028632295200055862877674616633338000658745500660815332549176556435929999558430719558606521563440380025827429829011762774657109696807802070561691590145756099484571913510993809617579133770632062458199473979735696373336050339343739013028241355691677703301816939765927496528164539699142693443290080951322039398300687972685094910848033251348994940725063944253240952703916989150300530300541487337853756024407727736403090272603736153713965607880481889705793318863532187940411799905553239232360627370071043174364412785961200065084994234489769792804234134642312552436589767111459124705296213813243135118761092443773982820295273961283252277143247685871515054106022638396550034124532195545603106202756233283633081244230931702875462030147152804414090674277747967340752417489764371906329226710193156899757502277930281534527013530794837407083420572584218198266033229583580297461431307703980279068014290572026326689922025402844800484113062490764618631802992214221388405361597822400515180077571679064249504282089485427836889407396164665455875598577030314860830721250917803139151016042902842854334895062420388591540775554200803651833873933506207159434669984711555007059310992885101981256384553628236694482895918985927024452011670804065176045532850009522925895143324674996333184805040240190621485629191413606927093481068913036222806888255933205648507171645084726655872712035740680080664221336531376652855040778843790294777003996578471251772764166047045090654324115678211165075626607741346714211575145469588766849466792626355161585201371830875386716864374558206661558708812691781022105595424507864761174010221617304199403365286865137554245634126171772681970077203508973169602591850769467816714781762060733602035321765033610713061752109491994027927885267555987312841920557604834004350923663579597585264054039226716075344641308231671642158676261656250482303106319064133485973691449421519178521872748821690299439292517430802822460409690055498122263525260259172786459658898222177266795100139296596203574111589893818890368930066479682172739328888111775216635982688854334981001426826632744886024152221451871169040002091507658946745967731019114412863556865989168512635732367555020081801132911982880085292679878399811608905546147575904527235571588415540801475170586160069729168675292731660832423889925028653500684679573004826547940472562307273644910078080034229244318425641541833170902781711323345513846262208386320644546275627852539767804948650696954691740614187145083888597700682345847796405147993169493414589517154158092648611616588717844445075334573660854726142081371421841113432728532311454290920631486985433994281049143148630740823255033041024489125611740590331016234125703747295640113395666919603095908186937887592464083552359899777059953225945028133814445281343077164623684698114637246243135458569752383263052771134415992287254094783779758735623542303850865911839017451119440289774090373561410128680843803770131926936601623283464233295978156942842662406292834383474055818656108600755845956757378693431259660524000873480518857239182827153280897720804769258909178620969880130303117782043631489708817822509645903346930298470667764516030974313823418655114796121101314873843828848398199480249966617733990011340820235344072937691626834192273406535679021179021131360650392150632716873360656892173114471577869350040663556404257927632646600832743526475096298360675971772094065284964967281592832650007416577479959850622131519761923347830325808318341743416321829140653719016965869850600584270773043424539332525442760261619284953495790035494764611909654622602928114475559749061825965518768778002335577743445396429014739381994712737216321014168786577665403706590810323362235433021433213369760807737413509170010466511454378589173949685679155471955252248466926695156101485372869010376581737216524681581458781000250040117172962978767129248573344298027440002008296341742900199619477070974617144370887373023929620968154937116626521881114044606296509659546634921009742037726589196030375608847313298715533287105891612279385859312020292827847608225795175438652918433020830850461221030149141540086274306576751468329352631613781675690211301250510505418845022521772293462496471035091390016656387740311458002638042040440647967288629639343357495334511319924451991869476936270280338622960972956317416052372701948828030407322161584772817564260264980962131360379049319274059984536168524375279242077172114859759178946250152261994485951646481726909079946446517613476385634959787334306938750175633531077415834517977265930675697298363427316529404663729995398446778644151895184920794919977057821749444092414534392965296994698352423770003584653081311131624076389047924441195150421526600336710716984823142205144827052166588917073931925552262445273237457083385611404424953240220936070831819881999710596157928952415562707191835943777526236519763044498697254817416291434226058624967687216331833073910803852657134392048838916939418381528133757527295577820492005693464613816364818740981592562217179894793739863218597135738349975276123363681813165075134985753495199527124480694426729710716678628312042889973976982374648543206092250981873619758189725458435365393079513914878924168242565034148728518435403189084153889511676474589234804534022050606799376773707936996100528243389021950907319303790291267682852947365533129539377830917785101875156148930285449261722033921904214559933433592173887682299264772677239371877100301166743080617931395410547782609023827176016205995037030492298202938948362635930547720590858732510449632352945264396866265738296461267659304997666203157863021633272510729055037772667300746263743778322170496990867613921489217763492644836596245034355361529548146816862337627415970223906812982331761485320043333148943729570547568548844459873890645729647661759826266957728061201171697301261634423019578734657037867238491012350013265675661517755807433206832845162855911308018321422821578974406235567053394631706511582581761917138231831350957131793599207361325186599081639224603293969902142809573718293319249033401700480056368450495729633743130776854972861961494885032111239559799429772818888133703846224678529536969773985754255432752582295981679921554121839534952867584649220598597358926943592980842199681504024328816537203014185425433268135881327273789134469835149087201305982516828882197368608507300639264167928050416008405784392128089908572294840708878320418298362613670695046776223265658415081392192139045728371606117946555364524559645908215990505725446576860059825091828807323183960325496888254177253770405273178619887769456179002021297643221824150107568814298149613534754692434726871605732514859373622061918330518842379961124004637486146859758936024274982384080207095021236906903215209175228140381664067234531672649295555037846491320421855634166294221577580806700043214489515981705095744265286051958299433664225070516403470414102626025511218079765321221797385814174934826444799740964687683709826706717734709235864888970231376747010154957822526920098179466288779672780906432841190000244354667177373674486951185952953319615237942042730760303776759477323036933247985281543793888290084575935339767395559606171359574576972294302883466195081806270955035127888124237058028283557310014370430199318158088270001893907535146596579723018354747604369199852896048125017475631693028143671668458320549311183984665872866977570485224274361688657724890708567545182603780659250351991907724911156393924692273728356835466764939349207250802881546102443402969943608520169609747140573658331403052228121330844599037009780329669776491006517328370644912431047459614125357772480271378130607834774375739234586730653321633122591485558951936044505127625034566110548305117216115492660226239440550045834795844053442652049636978674030171715652998615168733391911959785318967953989997003557870927465742925490611721060116555926459595204546377904922567597907006761884359045125546336548743291939560712049190264142072096662268875975130563236266787284554729420003751886457341197080308292382337326899806421761248233546525523380482007637518441736825824518528919222035988540275249870317867945201594127254566589737781112995668125082332045119023107683477507484895918523917290782703101290325927804360965918495415174804195664050515514801089457619443892149316959448525420433750851687822868605648251717864179654519142014825237734921735813106532160413477202160611609973074684006308915786460534460854100694781394439872644886928031687209706646147675194133838777431296591264217006985889005664708686950969274418342101302977535810286582676299503631013795881772009770183609468200896841450077259123056112580179909236087151153920258640785691835959130993041363268610021774515517936079421438453458788141923844247802881682981282646734306016150957052882947227420310793025040219282343714725687012278196762749456261128790381001104818575541577107909228361786120644160475386408627758052478351950650772692411368431355977837092438769571367947789415879348606375454945352248452385626648257517788660104559429693651633903069072288014494476328492446682385740516695147838208353786539195790448247238983593062759592460973434294538487906457676715697830251747503975359397558917801558278041802512290649960566920442832495832399384273535507514658774672876539527185037491445131496685531591008410319603554561200312261575277261359673724336383147414740883330442504200531736184628917537771645414628940324581784148489489564334656208861537376752927309508098422065569731653733786131120808691799264760225783071280915396287528003650640538346899631935476407346186682067153506231774057457350110727281707322391255971132468470664648364357308922633078059329263100956884443918590367635433853557990479838768581247699600079362328499091265029963114124683039952884135057858747566348008213816300535464873960634844013476327833474720708927924604919538445449396190923861760935391113257572210772782312612186730308201939837307623668171607054717472620013524538106336928492847282847752916184304584788069428672190633933310341565707269966263266282703326833947454143548857604863672661487768480918578884318618946793436168002143649287242342912956990420222527434382514741446642106846736281625680899529941403211152200612117854840112948931610511240658469189664545904175213981507742098799214844214023887910308616354285886366203653678568184129454308835345110210285238180207696489153532618169554880404534243482331546839543313468814345372587775609923731847905070376699376576823363253373927804637768970498968781759021433942579243236036137790939396779187414162873611268257894925283941552298497219931942498327900761863614617713984834878111361438117904355105128105713901649326410056984138193906015820867577156444349390796487443175390729811807874175113392794095021737104212526570406758269915841702295813056659719020925052735015831740526981807380492669151960207460238064100011175355184466632287510983356815214763810964407235929453000178958216360925032268124978881757521622266313949322622470294284694433420108875844083716889597212890981870693587896835219929352140826558136314269036055994880780771246235106975633104704171123396497840463475700479518213791569122866791615632765845165303511919007904978545036082812391885031055434585782280973161859783891515644619204230748885662409104922848373203405021671621715788671015673095708358557960637856640908888372455277525095782426661147416607040385470641586377662812977912168641004030953625723475521236007872801914460326311051656284433761009909124631271991737372046874014072386438064881253441027138990359481204626826080833021922703318465804273269455654634800194890263423593120277272723194912412822288423890169917409012807783562740039681915423358604412711361286582357522352368484027001551743981174700347777855799645707874881626179494925630074753220672145623357554264854474618277908428100950366920239349376864654514442989998269372792534720323663477560384742415664169605079293023807134587552473910215155076116099070584071062670887497365834224900116542674301223126821075374529683037812819062277402463688713762142364382844730025011287111081453881487097523121212019118133572250519900650699181364666473404615545040700192756419845002021376138323028046153235595414365926226732772779123671802841027520246944492162053278195066360092428587198347105810720499243092903208329946820233007717291400638555018723809825397282194798229238578998699616083491433681456488335281362606004961041657550508126147644178067814138278879629628344562710126689861966181531214503967289955071496549251965215830392623187115888639278322890562666263394999540452142845872926522343151888283456174502550265011297021116648117868545275313595269202563178489627305438701233862862610807840731136154420332579500285815079892456008401913307328610748177620832656686078524267384861469620898081770521796534664927999705154796382309456582078980929885202203663952875933758389676462707370592435119364684349357241516764140702471217704340854020938407780779782048223608016881673006556079323982972858564493026946263718694018649827129824876381572520632827333254970205880344850184488049372863041958243174260793480131958371896340317772682842560089762629409236298897238076843388151353790944798888883603460674250126921738248995226539723749267645713725749668509637506535819361719183167932973387097486772244373825143489862468886133693373065743517239448407370485917134758173286911447010050096544503765180626063123258511787876242025067678976210387318226801085556059777551325280050162972780722486014043750008815873931747147805270305428443133821049140711438816001870847968259347683687716298101454734961276429638998552974837945159339580482016016307580069151741807237846792133753229536392125242981712262241207627953142673924966798985999553397511463809771485439718118974308858923043300816270621195025041471505860657668539900469173487073727877555366956028629653639180480114186441317710063443520363763353846746984598175019960267082571324144915005704037606221394288695177767977349078224312261173711104017020106889915260020263007405312820066002686043132441517790537139157075140411002999420596207096269374942507038352819864787078474660694996558157789543798964602504310377367077349210460195625625050457239507446920473318399156202185112647299898367680073501514207665177453041067039184111549735186034290208343206995557010740956492162324608116151157994650571967802963435228725863995161447366739544474038628891194561632235318458665211790199576720370716531882838113207620573032747013039024853545594588597283679276212503259796117177104651074469695382292183089220327996852131045277399740472214382589020858922574259186992326850421533336158960154646622417853461494433345821325968462461078327860601484053717812762023999630761914491841116872476118021098614091933496442547313404164143310911062618151114200893596867691665126909551558885521360952973611933861485437987555476186834118636138172266691971418769263345762427193985932404060291468124017566026995837766904027115596215851704557408758762284457187773663015753510717541767975691383213965831676495274199107479793957785270844191724152708354058522575341730352031473878428391263077898781306952972172376126867457968436159331856123531360299998393183298959814233185425982143332766431648322745832729767933358552658438099868627904612317834597343749582989519480335932415430940694254009403352901488148482863664166871155245000049138086189377914203109017200350342714587167557034025335676858780892577624345326987825230137987258173189784616105105511936563528655353424992965798192556220585090450775940588278966209989298570350396725468051362909758234797506217445683147245134806352427460583507262576543323397195378854552506485701999106137306074490085006396188464744933398525577861271631958093707168148256181577757192762669881145799801739057011590344114633417762928064093546328401777974653106072405988988569174801192405326021219816519887251753842825726832580259684808511982526048726933920934483447248992878215751112169722495311252485522022840875947979086861479168011684584968451953766490403084238745733210217067597787669751380509929901368616679503958216634519812630830011009863818684384305748667306031682511182804207997484006386012410280687150749212013662852603849037548843721051289572052668811380914389398551720401172705527190526972298959010978980025397326037396416279088005144081099239825646340379060249986770418634730407799073965454255786318701178875320858855203359893708643122176923444039579514918431809827609309622396869709512597250850357967086464750228470029008428090487470608047139661378654199789445839249606676728631111985512415473758028937503838195162653624891251775009790909463142356333220611201932693074725536985781050740930414605275495845167990118739631468378103460943663523241469153543708868656254570539308737048839747608774416109653440886871878905540889488273168902708575410152010275172136847817648392285496393447684730822403969515612297762162534504416770142983263229906291233488129281939527446007746767493951051887329163041186988361267448850132582041348031450081452895571980352235402304883334628796714948358926267369700735518471435618685631915474640060267724535320345719800373630530087417541972364216128118974078103330409896411829910860189287815649162947115928270543193205401234371212615561454570017223747838972206724204520079610827398102721425730064229731114904475072147484121481241102019368270555125916206803938084046672747725796529581893587006784318384444688584840244225137237892422957660241170555567707468355954275252296141554052283879529123630594661226000415446741748515155461652533665833880357730316848755130831629334099333241294286393614354446934710514181937393349018949903969986873368384789117004817772089760946960894566914848794047709088211363651564871398147369804360971761689299105085360612734888109070476411132334364868742236635695313841090501814649259767992018048109134238214435579976682826638582848618384232454437181247927332504692466550819160575501232189561498402413571399864889896424159362609453472842400435683413887534278261492912687517806494038891188030028506069588514320996240324319380534057332190736897593337876588768737737834156432752271052318614455362628796943897924254424298401668124969502082083668888076093687832533963009358288448266751298464177837768574974884891652705253924678671602750957920467110982729595330873273749272926522573136396036406116869088261145906422833574395413122047320621753775961068452702358823958948876092881496397010188503698815344107281292342399808034529570090904572019210873954116382211983593257129894224536993155341340916672702119780122068321544493357385624465779014257331225912974896345785258767388867484891503917059707904275940865481982941926490342795394246411760134149809950279520207297242614828455779951213148252115029570587321484049831412052002881633521514014704894495876006227095022169140229690677024745406137815418418512995206243622142269028251278818273235078392505382576426724845213474365298048797204044112757266276755246702639283531556567588804526794646168834440344821144364500917253083500412060420710518224847600046620922717915909529037385543719939753632067414877722652492790082689220428859993754711606805114245657722629201416793231237878903755936975130031018440099509234847212498306972996696998857957383817893129794129388302938123789979271769435812414676070588389174217152149133900961189944203638163531071380687302546997311668012754125995449299789766299944918827643843953556402511963255243169566585365089820943219134309301769496445649462669031767774055959926961161205364340792686182436828549466068428239218699140347275763998346439907201424833117683392145694551841135987343482210416402541386651255278474817641566407947186156077940350549914521328714713720481184659104204230755319443859621226888855213671057268337632243318523685009964243637508177075076133435270453042007433838508805379989180023128582386577563168446613683692230195328789001985169184447697624295606713697503495854565337804965991249950937683749060718079135541318262532345619622393191081209314266261214576760254093614509120275108382255169538184058766208663374368192547547658268564624454850534330225803198224929279004455267580376533855557805456553523454950395295788458374005541988311283586040578918713011761887755128919795971482796463569940463695615080194290010568821148926846475020132513299112290850971478504069147158372648859741444860543409794702120932655073977113272730779938191975941575877472419841724910461659969223335963253070867679190226761382005382668254475346454603463072342237084212004448707473732579915624546818107022291015399744909402470640630364673722422504188439061735711324030498886089058621586744254492961582772758339929043033429766302348845750415329594534814752305981918859157852750493458003980459465751349203030551747284881537062902529249668833359950191394200672861868793652633818109117886066467433304327649598291981313098123129294659044372839466082374869352206230789613532398266685786287229226451423032419670635657771267397037131598417556974655186688955356110757691323779691296116526056662242237915968593364064985071711855412393319838649455775378932269317720280815233638368396913229296488991583490297200601671035916210284419515154270787161007734790412153714492913692828348265928788112387816414432564211995168344466923895745062701995677659916767427448226214862724042830831480693263589632602721908066247148165361664164299723010213893806527862598754122261957416447355059207706434069217324051710565418179267056526895701227610721493300732747922263071483223951701463405001096761612339615354775385954027352047043212632939866388842908875481841847388494514028585569505635523086099046902153022893249930203371854581277927885634600589354031672305567175083013119063241421816122008953722470976352188402643853058324797321345242895940057231687156618835677978711331075974235496980408919213567135978436511735059584807417396362550201416418865137557407415634354652358663508281511313759102065198692462393471063849200151300368209086433154903527256923620505118713433447121188487412956560537895994062887908223575656657188802842264058065085182097973136314719509291001856800654287051232530373568079103412646534171599673727889092487273091609734360374848471251096788161384829020543837086861676395468599185645104615352645534582033112411654192215916619959464164276627938923746656309941773641345767717606835738103092069249554176604464377012290218075560922060989996731719196720336514222171161614123732271575083646856768219230863716155872515810627970723532591795248335105523692860086278726663815384835854712655456125218362393204841047038720140027681499300209905981924753650432161227823134766520622993631207145466206704817228407812932388628710970388491166235638084567446133316159739366801057539234364048362325922679328146261047243366659860963293216776095832807988512757894497713888595324079855794711059221352951713797926386939485539266519894928333980466812181923128943897483706511721331376619051521152237857651591672549370525450036216008652010090879848889875108522048325980065287052297768013584651245769592963176749271068681283008826915330298815260283360015429512075984088697889173229258663732285160997108109387428587528450278192677581634958519167954263954635400978218916003882922926877472347782302939296818312967953350515158924914441644581453671186259375320217373752722028914215143865715202584185086720964090317861367450474828459303836189587971236835620694519511194799141561573176599688199073671303006645040198373622003795045304084276743095545290261122836196256694582139709384147626236021393716994706181604762370786318931225584339082114468825886491990300286002943070810289630277344399500606066788563730418175532983782188715103568540788907631017748215438588843556943578248552811728361882183620727572494317962337990543953115536789926261877522540083395969224471537785123221614090810012093983511199666165072063060240779318627483308126466845334063062298305668481564955179293850974214399900478922170119154052695818398408063886199097840679444771075394336075117048738186164685392552152792175976175649693299107035574470742745397838237289533641489287606753996246173560462694643614137218720778802841537041092736647056646950349777165391193493558136530306756813956601815173263098281506207437818295135492922047068233329303587480438625825950127809200194320233793246117885127677566736080658985005348764187466940386863853672430486920758896351078988626511338001040011523234571900544370280504846223634575973784784790631827609907489444738495078240814194739084040668830547804850410355115803384385919820421133087367061550560481705063092959823989988186702515855159344898505356664937461215640592162127401617379041498065924826796356390451351766190179841822771693536485362409673328834506435112629465573280311567868860912952429866034620110258999358125277608017856083793712376244394734644997532676005978203675700189658555412928978427857709238547680494973653337350670136903224424859510226859112460365610915150310596586078218549674584922550255866453275013745741683260435930604205161085108706257787154591096387428304609547506994514687058917383006794484204582547336959781888678418854242763651697182232797007093023122247981487850969810749877211226128081083794190802575227180053043686894595595380993218309903984796026750935925984826391352287415130284020428710253736961431299584446346109690265400980900600177103245085347120830804810128674984074966749023064957130014158799844397434785790927059881536077305074162406920201245019923350287527939484895541721323169621330639103363636290157100953640846795410939020047773377931690584337560860701948062285330909602537477172605151532873614363890189999016086417226538920854329096862967302291671555625966909356399250884725757963601920785552725578275859801073662443339772734090556962762559656413052765589463431899218539779110037400166324159371887980742547223609737580394725042670860884441791782965204956541207920383502734684352182223538341787342414026629970024212754733191355369263912789750661311645557851444944617880910710653974124801395254993343446114215084396907253904512173013615323474935763727027821841063839631619777992226262215311004272934084542909388224778200153982743011188117856857738694113618298653610597516871392883962085086355046657230813868241929060542893882577019378699467530618243597343892369376702685501306562555812737129551161717144953566663430590663352908773502479341446147374676305538748074071112592172383464307687930439929110642871533636812141609500051590734511172170319503681407896158111950563493389298545547133219669061918318454031421569741932622255937053508499797289636742778953802295299434606831274971153795286122508242675189862175442269898288640051137632518000349997250142647368806799829896737579428613252490293846436639673750543287119976365645925426315959525006479632338541501724107517454290003971924630408365308573268464345509891913610899455919312556183042780588747077507979715759702696420949228660511258405115162339307862504249480739632350575031439421083930799343727751934407844222842343115988242958108034660763362218526164624814602527213733590979338135755186810264406921582989558447036106139496864997699392782187129731076483844979297435367976552256006356538203625455007173208450689852929653571364038419722672162230062618875801976413963787412008830093633379481931679971420896659916545963455181998386973017567304785186721887845382736888665917595125542445652466368290683992437357615051219093440960971989319229296424604953361292677802102824551979776056743911668587066614426307211849373446220096881577064546632686964332749580876977689472006340581837808601672005836810757483010717576578462810716534729488699580429478885114518244352109344864984402662026275282549872705340098373701970536893167955015244798307331352033992253138115832180556930091390423466439228904032564226756653292376245146099592967526680066444507933252246673203809164770293182216264980458562882608342571149426080890183883621061389276929403976872249014131561769110484378924177213327884082054746376463705447404286718399742733270810374183747047115756632332856131050071162124826015105857327560070019479830296008661886195125339524157175621438577691084043654746139081455656090138707097863684378149059382146331858413288446420184822202863271107117674240710075143271363527080877312929220728345361588394971685954845812183424622006454646734121332171349905783030375979966151071343984199538037623122662044954912820665421442215573814628195609575933807540192827346945431115334267050327616774416689734942410811432497244965487453997650803101333789792454190980283756235034689069552860070105521790507027881831804008081078462585797833313286650781870237781305373958751472776014959816620757682633147685578872324941389033446911630796872536916757806377869742647637605974148133325500879345609951410511514363150633744881372385651278366802572712250702638346107304969949913590918673767074809657999594623633316329273866840895243892142501544156031711260230878983453463262857630272273200393404610373218509394154371407133643239286464002312323086238952794279663750080304549789357675152265390037725896777578162903634995420238760216073077682696524844346701317881826041265382030869824256992004388923337995861856495363068591122791062590398434498137863820575624027798032883094709804327402900626699872862512908774322784422191031960134375849369664001826219460951863961482115021283285585974818009827363406141679116986448530904104956406575270779407742577058510645942137994832300216340724548098924899802574306883093444209961189255022107599815032426081248866919286924058829467380756919310237760078043962987442394390918523859378307290976955562891154993968680941259911789638577803357980178275909934055373370270033246489118761277856436441308251837608295635929947199665226977248628656606896120065793874895667452496991604239022777923351783671054199872868096303491239473301789310942520020659796597314740990586036819190292590263763055456750437604898759927049545007708462442022541072840764644462378781971476209822640548111216920953937094208164411988444387322680829228125192998563389966204116856435137084425484265805545364115750441695088434156801879664048020223299546803611046708284950988807051961662067216997865204426054818564456006243424781356579600246370600547917726350923863533858933280305600481355522815217670481263181371860611013652083650091632612859242684320403128616989359918913471140830578167572184277764387529376890882979251951596521313461595373501087050627646174875238646261733499247915668208255542096388779985553184572342847100813052885910887680211359308219598959476551838624365902119673249853275060902845011421443005517472037147123206975045450027798655004668317931604928315496554337820796587584338907731187457428611412630194496495270499350349895359304622724486539986367463886667873226637584006621773768879164529285261552688251515751622279602095536656065763486744349766685587636194346099341038986946931412033425367836355977093946269330582297526576123996368798404113347858986477458658017793537119580440618103463424210340771104266289677007286062831058358889451544916517217639796295191514117520854830720914507656073845205848550101265582350602766184926831101670461796999547472240881952909371338468599672654108969143583500109682517256018217116972966387702300072299669324010661525595330373212194535314535165838126209519275659755763060178511375174549753006214816776765691212937352404949885152316138074341177132357723865350283142565965842793265603491193087442796315813402656256531637870866385262518901541622776440497652206349241827043008359699253100943483968968454133710712137298800421448892730322798852593389093193474601205760736791126551259108891979533317389251838607887627616869503888687890075597807984077819965863167331969386419761316276295751290082140067931719215135633398426803290891690025746464061897555251545073300929274138242608727029892861075531878160722192506242863897243237329890454114804431926121131454450304406888007732953759311788089437732901648557649854081872940964885194030482457567937878443598142897731980022479313501413583988727528523418521415273944851611509747424267142179201267282809941236835980421751019477806778165954172427248304018393470903561618491173286987446469029539484590364954825910768652627539407836715697990437259740336051606970489480776637945617261256799050698769856740418098156561718562072831880633752483069525504864417017601186055718065988475719823723814316591478115581488402126529936352043386847313395461646638202899855890968586429618959486716150334328877382260648180371203467838219180470703768950238184669093440974812013388948297966420591500502170614895243474034789717024113845110846003410596487315605105853942422578890406664135318254160486645449894393054651769298606358439697102959279019313688758068980325704028203077773045896131858453772357862056113961804089004070037559856217521081302597140661173123955697511690032230210593744590322286773283140822240151181300757403526116056197251369893449002712394391258478248780544229979564955342995893977815920127591708959678142723761780108934596664883069041527350368665573746746660829085446040639357287426657247259713974879685611295645478746075307698082651824624580399052639888002781673711204826451314968506427961984191967368655879633430206360677517966327769355106812628734050421545422949249039826755652793211224481631365513322762340208465686444278172731120504327021860054317941210193576794633509302994908109706531928687253890667938645834441044495992740682742946718283454158263558719375793414985910616059356020069247353316704369829026659949206241360899615375598558406331833596490527862280006451680151958658316226322072244329828343550887904549192657799147643028734636619587601545261873876789614407178425561688178591954421474925242236098974759184719517983125616437597436377434187348195863756324062386537208250818267471446191731246404918740917300780440279112414029967801773785242847437780995942734533826467302174432492843572797222163578467822558456986094960267017700873656491326371708878462014126219003061930433214137422765549568854599620458475475910406547148781840942775631479432694798453982446654536672458069951362328990275193562605340826107086568783532644722894131323457486186297188789047997082735590891838796254964447925807065102093817962121700178570673971680633158205688846756220058927572402541279734028436976886180687655447760333761917289294842135097558123964412487053950243785809875613466454233282572861668172934254647346728590242920299661127782532829081563150628374342708082842876055885614162678839350429718282579833710627288306679561794836491057758844276817534872219469892493954448063693515764234772711301889853180176186222902233904333053260174358787962606688622571619579430889522629529420316117046396800580057899737270534441959062700270396241931360524476209306484200804178446250668898880895832825011874568563704959911509569639071894858568487020317828158650915298959839499106555472916877771417366909030497942496147300835689987206406718698703720522290055269962637714096628281525284314585145841688146077324249181508700914216351339294325181638423751446252306948134439623513188455123417644271296848821237120102041423112967504999558219916877514380264921113217144319445694885175753211521323251897369811342119370911844662881694788864464995822683727538466756812572639917995261712878954912743723366258084381850754843221897492839131545900756765176793964872796353143752337691305617303091942901792314734985832949745422522417462011901750395269558444043080635794134990276310062429137002484252865095056429388527455629444297126178691734438876633385155210320421123664567945465263014583180108966926182246309168922539981944935052104396685693701460289395787300258266798709505262619305942529767810282461889692516242836859681451309564128974912504168006094638158178681410253554411242382450866238745062709206967960082449673386001776528693715911413122549049345670537628677418253617801155316809088888946137199776275585625517335712550303082444183117364847005317911231914762367003075831808266276716780946493614380428784803622737719563144487982769848971987299407787250136410172448056567709770375339543869721336802144352048334494188434618322709370593983504642008896028035961463501766465167950519309931799833459976346364167169913230832950653338574464168996282060317895402098833792928519026965298500897456769424196436088909986140741880801191589690483972829562367718531846232809952053715652126501072987101680030903200064300046876437725484177237956582435144689039812707934982572899915524931744140287538824003023728524428806726884790119357450729184716112909342143422813688466554168717901581700540490711468315319838697382577126866555604301913972898157555596871229891912703815247929002273324795171844987113099459564214453548851325060582011241945545217758892690429820343099339394854493816652663208305948377870555829088561593238780510131507760175389142889967759395846147430352541232572916238584552373190121154899177087017762883140824650767995100871903613287701936340301062820245832510564064943012703473206825604131783247746895448189781576951511649682870561423004614495503616264256722473500427847855167795891537055395546068370422406000605629086177759148251091079679519509402456736770366537745276649037479473129931156621421024977902652552758963447789270301535450232799439483133676889796391799309628064807997085115389649658418367355617293695611942440355195878751132220388296762812730030107640528697607047046040913453429327144416056103402140668702629677033596883427034328232366991612974193804320577190199776269836758590707388141678308568076049836208257459165346960386503895259890083274449621368058571056710564508394520908746058086991714348533749219512685311219705477375016776952186496472517037135907467215217753661817551951771621122121454780213041164221318860058823282388559999551699793942775845630516580274022380472263638402561028716095609921971032126331593509232138430166221171526236267389525445818707704726307054681508857677503255587188043805345911449668968623412614493171696777317565128879646386241668859040590487022768096023860589342789981609105082704362074766873379630825518283997027038751728088050747734216355251978165771056565748201573577947220626346178029055496938086690664945059159459437275625039157562354254836115814878726756575747244441641653147428336568415434494969157190183788473922467283855274859685294556687766865894033442782010517107442128108645053683619756245353645065779098244533574935470403193729783293347381851335214568352262247803343180344361945497960427126462565000654846855255031892338517721715680423602056220886434826194772232918154448211409652639760581946868482922083535499311428936399611871605314579157683737042875779480551440772323622555311794044779876087891073657950536761023217195740434205742828946620505035452787981674953692300252848497546389405169888918816435374411799124568458054800082283765300994934027096928377744760979265701566484301961724241622851841133706784342407813674787011889603894373522937240363995170731941447241723353396996133508499740105011240715232596157712323934099928819215116952998360715861003157297461496404870921955244417076605515076465275159574433655096996781475442946512284278564495027877151466474989149794374967086783804144074633064902581401630322204053412544429453004490640281645169719703524618138716847077808776329479485735380416625697761537483201957966624829306139466979456225141485966256079741441832667563633565399001702771319260543405754176746084659776634700898160663667520209701862960016545788048744173410221889435988027736341035871627173854288207452316334519794602222911204233090410428549263201824547295159742183781203199239573533566546575253787731884655624371740648003569905194989124526566565245258717652758493438227220194824778781239289593674861545736515600940567260625885920956757611628695376880585002884419151759787890379651385528915919178060122540884390688666139572624247582193257588316310588787902839139045714593893857466068291142191433165365227978373632434128898766689748314269765008204210806044723498607073549973415198356957600261341646136449663904338917286581759043208386266833045819284149691488808434941642460712095992200283687851481033080611867734825584079258445145141654561883669596381294559408159333952712391321782641875762260211828376690223307959589675263124575881832167704058487376765235695019820055794144707844163580842124571614368742870797132568214223412488056019317594260676937880125154794082262514797669695853318333905038456979049136944089433751944325760957055934784063646773503303003437694011460088583931024531100452519461640396281330300205523762156078762576284598395290377560926725381449183080938854634939326128211288285347661696859879566734685950238248701132781361867151470242409860694766857488575022936882279745616745054853364592727926181137794709228582535236799969525760962874532775257193888707382592620866931555557363716280648259234830871673975487538343374131271120126699664659781276635667802329264102362375307417646201011640844332643537994622822558509714464795100340679898295267997247659930782622680511444674489385893822497113332923328474770522593645187450200282868346760934833012461750939109232714009108990320367775872216565015640999224293191313293432294488316239769175622119236956998803672419728876389131266949954635919562493564856733360578249805803212728352164461801834143383329439317632541797010185893048846790636454907445165031219448386980080212259796598103085388198669356413171807590617561468543953700141392428686725952209505463955261882307900479685693392908938100409815915028524959009521305221990613717687980340670318588031073644974414349806829614400453041295903115506421146883978938890297425883655328564359963869223032666052299801397948564348333117841697932850219481398417354538763165075651588834513315737510829389856590709513999436719363887292811735814514134831302114874177847008338604189145676089670819412810483027205475339449193309869934295241947219024383419271798481785027533385665522437210807662701319920145510204690851520715110086969629284584853811444657614997116782025289348919303673390848625572173266071988862635451383432927857074178910587734145797487824451878273548518272829711145033076946813770748007195965868426062077349643024094159291852862198777238051015762312473704745143063771357110085185542958064801064080768005341530388468293664599957830624342981577376284318623256910440664081945771335795736820412751461730135546368165038278336106795053238247571538475229652104756112849742185459636176196825388453266062609291626287905519893674010603301359103554416656647187250849819917039781325237111749469820086605209255814611536746243719773184845343386862324388845337092211111256353501261301883883346394206002846276452729232909002006777168681445162280508304546772411029892317576431774987537285643294269472671343227442572934235077316428738055754653789246870324455571804985509029332177736692327182149886551891513505103244165256553880612308538736113510315521757300342228718122406356909916598253046073661126060248336917105207188855849337854961501937790819740146563353944010173636742452146485003454962808038052522522686352753750898908168657319928419987742755438149295022189914891208118616425308571174710827642022869952776321331557266082621503686825045193921063783185355629504594838173034654548911405420716303829951058173154732237611822309818157475243997185433365726578131455525623052021271256617456138072524023141950885167566098168522919517719110611115837762244360334553474025143652263245268923482057983196663779271707052744296669804395170411119896399815025085048256229267622681467159951707685340770986916693892766095306940705683116951755807446145748670360158099109742084195034995175890620617806900764982527837115669069576729460740268128656630398018858451163700780813450435556695905387232893781093685438665522876476411790966990246993234857921883355112326223597637367804283932162530048835104753920831246887502132123087642361586482821287121440917231604151928859529999257849348776824734609028089855971511682065226849065317209504066768532390848246866027850649091124989198047285304633656465146651975383312616304645946060587037671718242004826263706459017878042439998697420610059304985488443635508433159005319431969291755324270051458402513864005974052793418590800919076542517829839986047092717590432285982495487262202441784725711176802477347491963512817387381090054591727170299299220461589163025780708254745703716644766271023890888116595470256966486903790057324958015602842763841156855536462789434827173107977114837351596569662213796401767225479529656032473814156772506038012714822123317585801658790233281845333884760330754839463077649420063827907370033477054137976230050898430155041622638618220949537623947044880315029688363653943416377094507520954287373945958588497588136607235849031280958557754769813524586615418177473070191653903326377272884337426445666800634114697678396018083385729572747033432000035627433077937178179980180575785198873792175489408913936335825839014718301837744794356162436114152135048791800465393543273982853201157257710312795808211377735335980595602257909274459723512140236067788648333769889082193397342109952614808429565647600871429757391938094587768609269583279302322479463262545403914365840533755700764005400188526092274280201559861605882641813953438319628401361476956947990285002831294554398710730214198427094411697308429017152824959743753127025904513120519798713287497051678094995295100464086260047168308497269163020076795050499642013746225282142880819797642271599964623521202630810494995699659708413394582145832894914743654587058678464110353904773949378804932382742137425791071125302955256751128758535556371792268090071811322378615910489140586462857222037607029673998416325762308413297179563155155454091152196612434935274433650290020293071275879320060076053360994971568080999154536956596476714892805265355898029768652315900803185917242398779424875320396393713950064537960075994325134971117019667860221262577297896616052252802813432438859395058574583328715557358578838397066161653521752146661418836100555121424200229815126700369404518540352120620457357340823123373965537764564111438235630734034504169542416044371391795127140479999287865597653769174014548286863639168225134389432106075822216926187945799169516597809589404881919010584029981559392167541929711600206403963244833129519264164923882227780329789223730714250739695127008760255593924108386488097916195531940468609718999036784183719431664957032945862398588807611631503492827459765063720814687334070159429246448054971648474635311993854735724070696505808017027528146143152200194081693519053475393327751886600359115508703239917575775896781708889934394470801102475013984153031411640651988047102285084764607425118088232685358561745121952085692398634968928789991905325296465256900558192381841651967717873892103754944793697745302167911367926529293206438813496152269928569281283341301665444458471648083151790326066210074144837086916922411120482852018324440978944348273787581923257480268611622485749841434256797432248344841242425860173491137836029245130866847002173766875912607535065968065994416814411390775115766974671192115589680042302188690632032605474348369503375731882610320070154305149335504421059524069413143447387538920989146410813864165183980000112471470850487566150912951575728669034036948547080110727602097572166655587567420257698016764637280922446734845340700474272498491873381847605553032629613968842969399567478692705601652470336380667410213976538653422205035197601998232334228988494124942529871918478776299195398036308727868867763539394106371291085702219021728209827533891974380206856937605982175042531806177051889097975261353865842453302544512363713368173862652710814411670001222339497216996419836792797351765259168560976652110828639641280156224014963210412973277287623212813051360420234829223431691213477638234095635739692070629776199052306011722381064847061050441919337512025609239801242840224247497887015274868400123121826428511688457680003198655136914075316489738782228964453989175875505629409258773949878962694408878520201639684497817136856258213234567332247488261364703729125248750692665118545068401636649163616994478253653355742656115386973242441917881110028948380544474795864354740841440087286828159284209020070963119784742442114470310055881911256826494385513539188275680609939906673184344635623623766428577314954668943051175559776036646384168822336631117038339327487870657472240913870324727404632442262215000937631865594763858004037868580851056581043047342374150208255263826220324688382086487614911813669442977240198010950099346670132167953919059170276148454203280161061952806310883875446901941374477809533254929025642197651019617057226206518958455892179235588879054750595218415394290408216965464262086959599520469781693832490200169043003827196178103942119510019762972234978968749625961263621598176478968798173909849444769848376982231686121822347812754690225218574872482927564163043465894526031967765437953131027161114943731085518536936026367876104933309647399494718514831643988947954728846651310410444792998619769905026484276463370319821395809758854822106388888342508010821352135337004956049680340734511474305884894594265054392149748585222033185264545636623682827499228689907460239600029471965954525908245353145527167889031683963760281405267986034260044618865199733555973734437865251218202600719722348237830759667660318921751751839696833421719514161598613000789790235304299278804765832541912362332477576070542945462514036936395983685935368385588355802122349769582944157654649559040234283061404594319353960213871497272469654150895590436485377647336418244386545164621392665707303933042185978230472749792360052856416494754857182453201111670216403177945814406192492999633253608621158909067776378459889416993107200365759044702690944505033419524480645717563253710890829345139417313814245398440336747966060034174692723454472739563378519109363052618385227772681067084389023855247653766373672988897015322679625487462509053683718794954121970939484129482694873430967078487449680031499587571753916556273209312090230889432739007874981924972553141471824786131509857908212258723154941105194262055940688556957520480536651852368407241921563436330336495310742986760536759337438121156750231391924901787172899721368175726212108801584968567392312269338549087997373422756036898462100103570409475385088030383872757934743663554033016312472999832425506760176644754279080881229837037515980070875697154957773680483595976974813097224097754406685071611451975226414873560494151391865305166610964129576271790782824973544137161359091011517946163822504942474978617385383405041812979528114142382410224460002409890787958046900464137721031997923291652600418377014050383489844642061782763101986797216540106307284279260340718840509602368024817399397212661842027997531384216670723247444791275233371813027197586976623443497929142387196247450271591098979127283945994324092399907403651739524939324684717469205637227718082549392469292467128771946646721746617235874593241852269980386903435246209644542100478944357422570927691184877576822613907456197073689859956183356943380831823680649133539802794709273843452038796183694902266937049383359986531264626562535034118477050366188599739738014696745211544711475000907289370553589011551018978460795892173800354575047798224810631161288060022844262538596824190224151174598667533135154358277215747588739573369982750185897732530937491182402631742186901641930966558337941601956875423151904175242764398068734855450280504465152176322847658477955226350005579780163417168155628742857704956159672910377592886343400301590752918996771002328284583959853949816357828288257805410193228011888568714375482798337612762912874357688088573361958537151074148371346073616875403646490573918169920014342740589629225810295110028657878071014078848809976703960832480671921581649324884273507391203847354594271385920414863325109929792988198016526918740523756401635245804941052135738660592787138119364374563490569363866611250394227041268874432327141288552913589164557861590215638090418709218544929735534251138340862941988164306343931615336368933870213453031496163623099199450618175484405032933196052365270875863632432510372180733888198616175097700230251892797332193061879733818589583060484290882106456714152369884734553091131869816882118306614855101180228133380152214114721417804332499840924078517158967403575402280742346063087711271760401091811379792976369245985086431765778414431545740616485058900917068151477607318754980164923877829943486087831315398135434748430686998784908157061846693263855527288800326826973459888932101414739322488734539438708833145871692468722204522971876423004755067333930353158489019232578214779411204646553962822369449213375107653009111903714078220613884702043057463002324274720314874692218129990891811511024982181386597282115128631855572816163505040077576660791701699861511578596902003932612659831259259341631256115896930551237605209131580827635787612074858629024578785634434653520294223046876271685906070794694172059518752494809066119989008237078736770810778309994923038042956699630857718427836530177116175657184293025532037124425859587657438584913859352225204790551383842737699618599291653911143739718716706740975129873947877257942223474202530783267347762021998366151870954845022314455818796456761738917241199068117278074173298676114723422147205975436975577112689532519535109063942120991484752832860030885614477429436820373144615331935434605217974584353552604757455692631923077141354082400167357472003001025860800335625202242987805604761297903724774475076725393468468011287503877704070538605808024236879597540854388036597990207010058421045361885059300586291003076235429903572959234464305118637765030600413640077396993340290458576157293403356909023905416730939702360547234884607690198197689369257266040300226113605099944101792838581414745606681841659924633513735067913743502153925463453587754187237847471811566127646188282450520605206061870331891792604650259659115919962354488520369961967340353453973840446544260934446547936046249500355401088733419745672134503388028732034061674418542196883387572789276219755418583493888861323295552648794762802874144316953547419354101016515283701768684327165111494537601728806113773881975307277894210452589690297027475945487203170553258542995762480361897862641211000194446258007548355449038394686769954022695936439240008565508977164364363435294470628936922715103124269120242439808375666597362667589727514122094656379480085656436325636952577517418504849409168831201997522414275180209722239211829669894864045890682703254922336349613211724321984269482345439610566470454303027772292261186010428976452698641917847279472911008711981993189213903509037485387236210180356032485989675873568503701949765827433447330070632348179630581809480815164970569465847145473275391773861937635155802545311924423414182951643756933111370349586231753249516107253137044622034539677799756592103359024992964209478085130108339864167152621269992614367655370853204951967787736172818818915553738663706422442069559782115947220259620243859436254753834181226098907226613127511681550596866585310078818806148267581989825075068069278845953972552086034589348061969879261490104405215039569721184145640918571522736818619362786231492241546667857588716259199125742510426468512610209640241914362383029864268327963319959052698574680379551785468910698560226718479737626940357998966159190184706705171289718173061914569462825899356793616848980537743306094879781333650133257618246800642539785123410120528774504124957442112454396462369228553135152337679683881266543419706698656408835205149286216728763539302201088663606345530261827927757776796217193471071290370659695353535118296529416516102308188047422071515745878738814041480022841963866751667826565365696537202981464926694901847392650676946856559035445729075276497032249275682086262627184747832337444888863377873242150692882272871238778146896085228762179343862827560047569081150480304897005097001390109568563565298628095207893635469812914109197866426323516551183951337312568465512846031461185258500819187193526153006610526508664269027122893294182188913031957190450046925321534500179854305338297897672602326270708386022124764963433063451759498260492991212985763092022159071875771900610700470379812727195940528406542852859295055480919700895323111746812379034503366267088890785215269355510681373868964254686239767299179556939732852062768040413160633913401381223575323723530051081284489767361200250151876707477306763444888996761149946881041715240316289165684827820707952010933229946315342833205009132287150469685470988507996987586822391060519033738988646046014388811727442024971641704198551424652920116831962357682924582791511946627416029502235242420859631800362693268232471552792871843375472044685197954161835641067590272488797352710248736009366420462521092932125137170169203522772522696403232557054357207903143458785925363467629262377966768135738689407617608749424182156705076858087107977666440255285765744818481143597273976162460038075274816557814589464454782244416056926002401129345850009284206575578847559139019059858164288359200126332842798049638312011968053462410674696915770954673642682926405849443498668800927989001270320615854598264017695397282691384170825946682392937182599707547985033246601662101068777217163805772301788308121765874141848001509148255356624794996096152941134054328518613139405890550168099955750047474398012181746135872281149229754212667353417624640214440075769035093188919489141346912934749862847008361170872571661343416123163564674957786770397829495444533711887531851129743808736623155819361538057979533859516196857878218268140773869923021975533946180860678938571893858000808231773704909768361884961655944421384121321416618942186358799695011559956384603450973590742744416448049277539464884857570595567009925877944291706010270720967947726209740499790014544623544547751387721612776178668485202529548172648047493479086429214253069479316520216777004505778382019205126364633113351215966840311673683546417507404862717828267242959612640755526946269066903393705452998651617606361075047646793327767434707189110559907078694388084752633869624436902726277244965845986732263764423748420999722103650776934392961424612164660101505708842248469451841011226077425778574292054438160478874175829858074863633470217227007022756564888360746383529340397755737308750855932662563689631579975960519246858304121661957384680855705428888346188613176494557866717501422698219016747014415316153112737252693372128768810698818697955660823710965322090755211250895026927690924590400483425018800372867493915750712409803742651042142199187163203518802647979940044046694738485766813048929012003504806229152308666140526288713055100354108268194470237197560796534051129314741193298443328746846205613387254353147992070443910942377484285138568198105097111134260808657835359591314813814349705541510971298730420162013480259947807250654636831391265530818055108441260820163556085657298118639451917176951194195760183221873458553336228832281784230860659281201746332305828561819109785534993507355621805327457563717034995872589348367519698647368630149863096420656677189991337333244613149853427491762912246826904657677210094483017882322157628138977423017023706698515683305864467979764314557068317710116301879144328095147553064425780848160798393078464575524537410507510747747815908383747444659167648621618589929901862468061203460362313780355421909268884403140329795383318073263196259667941291614458501131884303150215810977089967545348345608938083423340562314250725711679710545121254657838608292701739214664137489939387850837551736105496243837877039667639927045329622693092092498736450456648978630294461529979554598147547599706343037260582302259557028829774490712650782727735513546059681963403975340632420167378591546492044537078696640124637747744790055988796072257730685132469448722585723317806971450648889182622331091127763852167520476510943639514472330616006322637181182115182284453944559624944541827466662460568954046882704642357347376620694942089714784956758137903903540610524862659029756221064446450287988950638141039949838913721787283644009276812896312488786007113400042808122961675733778725521197156404753255552190130471790682319200235356162106898665474051579024117105362299213547573231393390433520907125526865546176348384988549434188098325158147019640555574440280590778818645863584650277353170010165999268877085852300141206082085904574958981132420066340385086186034080766394408653432944054222589200412599011461173665042228672983215608476895374264891584085495391049900458448716903408712800357783391342113732677162224985644189198396336797400540231707093970936739604271667497034346057971085267980363204029753309034976642079267011964735353350320981943310476470355410149687792589016698408842702401149106486292124378208632138716129575122909112063542634037583576057031205550451591162020567065080126674683488544176706363130256784216810240094324619159991512601876101622421767853866646597550512631411251024345388150925145111996292805704170353805816545998999763120752319049304885612583246056838990779068529677110918408489683412110041498581307484612875452750828304352322128332700614298388474293350442455083863307307008599983230358639250792198315799771018936337149965754511551005774341143054670957924736466317697367328127019644193741855474989103471051331407354296308189483497958002833265533446980462349553183424766012326406825861886945080489353705572328378317257057689240721829818916330801837974697135939126923310232407494008318927986749689886255313164760239387401406825167725206204520851216137474908662057120209186209781439986677269866020107389207236427699112571784351507199474980424785057057641171723042607486381790617950479900686147424233089350963139898570270646411134678505560863911379910040017799573848344564676259479087960197040718512859773661672393991943998833587274484336860614428931478866717152181596993727925205573929962888079776698207242931936797910603054363220634454246389514414618922897068083102636259028509977797402884687314433587105450066840161512605152215881687400468477187683729609114270407540975660018753370451697160748856173362977920765811591804067682895319310382913840751638186151515011944178041881049339639644570547546999127723799604242316718929013216748669170809991308839957872581294670719649716591044788857019375624549308879526230900414872614966104970193830390814660006423717290811954452821509142710797125367857923504965746030350394862967650951550660905760588949514274948380189132462144702602926127154757846495874174234486128626229393338991379288245102304750989485831541963093968659059482312832163386972737757265928967839310136503053599609078420018972091668844586110880100688621036227126567194024622309948648773041005544881876216895555059364596118937929318121426026153457374551353730164050970720440717015623632866632322266728171726463745196501680727199732092484948761432623043539995146444241578270733178191449602123003880730203278416513113892614056666159044520748408711200980554399269501557204902137467996878602504847393949071098427462199716597317060233402995468796486075740903255103688623208033616294393275243003112548636804737533672231943515708288629707269910629544787821376191776138524029693401721339642383824251412976550577279264878454226099238917593417958502094870337097819368487578940801710413793149952757483819728549944251893352040442919244090786425878650803730927740504476181153007415837745946147839323522387211981582502619319271016507735122531484455479140669412877566226095809818233796174938963521904835239542457656919347128673186289411636437617007762146435469486723136263729029583846278867766901892446163657625138860010407256049184751587008424915695762327987476610826852600834804870673962676620460477838353456080984573361358944677590102218165813599234793180219428976201976413887620128698729187138326430985747716512789746479266659136374724037175361232362014390646695107388660791241433347624317416942746376600081878559769002069951266750617116774987207134566594705063642878794926980835775101554789002986492295108255614709359579662171470404470693968240953929919586301934262827459152885369995703838875211956632479649099835556564934491833584496716673488214353071159090081128714019637879978379470831280114842165000223242007677187817595651711928783944464817088985124156278185350712117337459758370004157844676842764058365718080409719315196951028521771324030315300842280428048221810480196088544343951905697818688002734220489808649986194787170691720226556587792807538580898680561500600313897735717810732677619107107132582140039809477185407246664938306811148881373586584185640885186004256983960565945225718821742025692689322837671084598805827592893096194034074492680749974264014080175466091498531646798116453787976860888542944567144974498613142475461671762484688257216208646315244006028895626697107744241624428373433768398065256539792315143671293565820453408856213226225016192080204969394174001192732782697887037855199391312638795495029466625337325172845718910154454790274892126160627132381692543765402006137721964901965691461390940872162053423759870386278104194543455180962497348277795810621372105353132070075399526307441318902644472296130710456743970476509895554744356939487722462503585668393612626649150619530943023621811129839526199732619803629735052409259567124930343150596019266804388829867030230151796134433171196797374530311413659619405287315136700638054430659665354742906372537243006971052405747481762116673547585451134474777247803341213848459381896957837992345873143912091807768231770719128432134939162837481641443941362185910963290019104735302086570087899552872711464409238347884586783174379826812368140249945795666967951832816373260693918272276765531452238009546545150607009301425522732983242388609872424658460804726584267072118040495290070858497770571699849072395807690512757769193235645908912954072425531473577568328753988639172930542659961727573171899054582028466343301854938380509422395533860037867787102523427065378478897602182592433324142354548644753570479246132281363257535708206235796617424281454403211358367808807773538308532081259482227248549918313567487760540788275285379527596854155480169871653030597062866353359188759001214900545173920639057173724692459648061843715701861446720906520592257610720661861705612263457689574990209103637563002223805531351801460867784495766463147077728669446877337536609678017909559955884424398475547111099904224452360999474043038992064055698057586614689561827579185459078373237037795377052110268728604833090128419642755330330608506988321336895535189293405360657277534961698526404238168515827089514874121874985850765989154859238072723601138264913017113091783121347285298369279123070050943278639994934076432246331431763384065974333412212657711983102088209545120430609369267575948064260881377717570731589237115691709995923921512753379293528878472574662927498134932922789024709265587833453998562049043261762191462660671023897391899846942579826568363766315578718180458899960206276951325868331156046350664352963105802438122828686765473873219385352860301286617698673707910576644075656376694685526961354629388586973348765623226218543498798474266056590164419081437625353033195818265040397277596714342635181070204518281709643543545460044589837712568019554096934495444571447207615290065204779236178907393981393919515063218024026648093703581758748220803790666356431831046573135027343427707338284095012037443765455105185696492716937425169751748425504945586021522459524948237297303209693062448839690723838500488948326973058639752295795988023414976351815208641807843983606407814619017702522322770032411452092397150412861307376731121683766157577363448830355586031803893702969138329643011818403771870066870300992709030163958204516072191122229739927069052352243331196190684568186991962348068356770465091096786767835969449211959406799867886196813232849734394454612895432095143209587162125175890522902192942950248868507084380844923762285573801371220463769655494002404630077089797887321799343821600767024083014561184424409241010498907962427901405449623728641310058208591605445807365121198259153045384110645225941097742482162460581331037324529585494354412528379013056549097101778318427707206377650311466815188183616109896659724689791330995986517901844438392473867548860750772377351244910923809126105632628996219012109115671811730233497062896010740687502659318962404435739240704717060925362687336606085374321724544786859154376749064590546626478691692909639389357573340799773577902914464552978168829686687698933785157768762578051278134727397529893050805079120535586510090532151758422355390568232908682761797479293794681951128727877038119322213585145360891001833463923218869644722309622679536642901376700844661340863224321205528160072089720827782691802863232233092432783280190505708683123870211967465509153033056624323519589115044442787667296587728327010086524505376603704046398477305027601923178892137012362584407323147943311844740290131213940532501518464634327319828043839194939699436172710619926787370317699655679236454573961427311194768796065308824907942485592975556100795604410823198520431634762244082281536561968692596135849509541975436311246845577895984607585045913499100967289751945425603756792748745900788105225632686510666001007236390393046466228103132051591610212074746704849049736858012070662487368907521852953206905802444651717003362736093453050848113521812172733427292377211706891157058402025697959284873580869486230995347561367119000643327604328531012775167228689368104335989763205424598248500762118244526701539670657175608455430493671895070396412153360357521582961828562521049771228113745688900035974602569810899012905059844355787225350091149661260870454905795116864925985062881999726592395177412131029512490245396634242685188532453425823790841415470657272886529985338416380816223273833633083442867750460601449665895558503793104948784249907796303697965624836746798237246663732331157788925349789631065834678149126807255978554023473830037793383197887903600462709282035211423888291657149063594029855226366924005942848397328361001319316534193596861858908750205670526705331982285227913098694900359630240945625043606849356176180324980744676382665357446126476776936153202436851908765260155672068903698670038053691098070701445485198411691042945638469980091576922756342984087204422264977637217430415765478684831483075766413217393886646385244895231873325355700172274892887867637258984657921326911457104488117596209433090427137612504259692637805670842159183620979302714562240028810941447064657060115351009669753040587966359145074055889001852677458167177714686449310014377562968762493663846467370370575430566986596157421509161413633153245352287038918805862295060287310724224909974800117431439366299308749006863949617509369036011991651641681710249934604613787332019135194291526084429411338328820446421972766837665432324258369512502790428055620643375989181771603290529708508925857737856298264298484330220857125812239373295283712189179858769093579334994606796650989195448876396345404072978853371969959822026741856006857676170525190304849423591177026211316575063697677996987410049850885022013240903267426455949670119091859374867465101625083412278663681581769356445227029302471542498542255849624091626077665586139452271080458776735805351223070682837520926777296277572806818429138954204370343037488190479930652100545213326917130746143338536866610303078015436885848735124843528333177318543354126868015961933789748999191293942139672027739201859895785343743262582121150676476328743370919555627658611506355466227180851625218930553371125819881836799468310737642856642449576797332130593771474148892885175354644800840402379495321719065780477525266384749050229072531303943756497991553126079811652811967415589976580519231808505118397390160156901177784983142520494878155912103327689016391863707275002638242454796934857130912688599838722779740318130031667779758145318270684088517057915355843421274771346911822128325918269979246463531604172512113515784826342031836087723000348665444037534788198853009612792231579166612257197545090264645084017684345829208214356918629741094501061258613256910150598783707082501624675322557747848728864617115289019355955904674043989759887312176119735483786397452292456363562081469438649681879561961828666264223338331582236884612056324459572755122963348456247707011797617423582759138285923238942907497669788665448572681553388758145155194811294470490181763937866324298162232180435829531457287066136919951287878338836081317356276420146904592842175952267777449212699032045158967896234447843925283121237600315822538426619600074729556419966593153137281463416376801093144298748892579464037122683087872580772641215916080047970483344699547277554639438193846977561268533633601179183602098249713912070940233337247256457915846375631154549986924268018840085344131466021476395505877440487595992528626972166914560795748916235061689348584455074838766939597065495830137487815085028109090205463014205196014370845792364800346129724505189943821411599061486370588396343676529082961375960884046811659030902391035218839513428276767513892591496507793074934621327433436723987831484219813857287861082520837584051705355520820515891218674877741176386257393435577477993654743388558400333075113462835009856378381774083668684444562763415087373496569281234197605959943134654532963756956839334851706562806923265259529048832142663765754937681997025504963967410037586903761703486196915322820535474014391553743452601680776424324084802346994042342529374430065963015398615192510007671287536404287455528551355371524502080101643339824043219470782531148792573206748814973948540387993765383519365999125398393965434709731247777159477054257285591549478449036269557500190301417072046023430575594691137173279564496580601929654912484802526292200435650318470247041028514490679385798966695867648494606928657476280293288789557160884123672925848250924748684166496015113627266556287097884397366944761635799593928400121535316626942475248612149122659412583338382481815503440642677979048154778647973879394602712862407219853113780629474893625458093584197927086904796013693007011360018360583500422573491392278647197185182687291768652422297817716824457108394160810607158959079829481502301190311701226030337288374700748786401141915450138665606092104559016984434251837272046038222543854056908237293646352707200987737400253548570649398567674068038275818048965035306607270894626207174404236754482145736136865665481180141524788215992895730140740766583074891717119664925008290693989631181055303044346398931632308501997732301705862614285333891965331437696354728030093275198022176904705073605362310495120624338686461551280522659769414383740279444842910678459627713480132588313068566855590295441796290754761968728187794913923250418945999802307665870523800551447619331082284709865605031155066445401582670865230304174867869331456133143586477049517986317575306240792200009572892777409708901000124571167557389786622733218636054536768226139487254036241998873528362264745398015617633758068621007550381988904397849164286127867035723179597837937041702031360554983474255003160246401757450198102908777993758213409552818014588402504860636912726784759648910608168091486054169008097838938301856392759217003823736701684294889284407793476019590598358807201910434121962766885818541911181035439464894274816445535439942908878564533441541462497398606238527386630460528975112750740094679770514804977164425465841032710036655866684715770193410562673550054244255281517910956497040621322155715560194446639688125343820768663477932889095479205441140722011928993099054664320010568282756328013255642559811380609633734610762583007942463273245035797787702336295872823440681640832638692301151189388236776347275113646384221727153952348716661617124797733462212742345703372167190891395586316790472140304339869945130051535433338576431519403931483492363448715251322860213037371913770268448023443142505746363485902368626469558620714099237427536457887585256016571047929985039937777361160728839447465777739062211932147237002015451751263333290991768653225430748033680065121999617912039895232604696117205239255660526877840626862909339069132070917537159620404846101017263156823864350095291174599577434976423110740979550127338308418313264896767031438194129433819988756828178486650457179648724483239654341723410277206106975957404159408579980774086521745879237901254164427552892616626377884409245149185933156320197737541374265495942045676151677057449632562611943468351463208809565556215900723682872298920374630747356594747553968396292144783764082288903217606352116309754238422189982957777584167846949410763656980659300083878324014135237732715709647035874565547567916234560684868951240537937279090436941223563989277216149400856864464944558848105861623274814203836084762844377165363769989183615922902543371035825690672595538780846727800500398713497484078870954108079200653172120043540131638810881548629730481359911020735685717403865670437481252192782268269299933942283939980534256076576426732463958569719504132356176622197527844791753102071366756225044515577903808614383026089845393649526212296597654948937426117101065808646907678842812039535696714499643359193806953280975587278992758684991070952358604500113116211330426940505034786097624243687545033598406443298123792899625682776434318020454791298871815170792435969069396192400927073125351225723774025665293451163723621434406383072611806898774955402225850108932712489773139835759311209064335166249988249147835610962625293774416684196625197700199516841037633130396758640913015103146575636842832214713052345419624868107135422741604829240588042112418052970948826847927113645255087189118280611594518231343236725422570456066989496108868250727262045141989058962821041150476407535269378497010207199086032603169513693819738887582550937649518406440352684729648807596999004824595133041765640630439020039341267288916244594091655704220416776478383911711809199415922116527712124628526624087337009323876309858503102376721637833006599600183144462757235259555507121855303347565322765103674497022652385491271333598984709189137174738797557182888516345087079375549792709352031467464313213058734362789165300992366959781123223780527021292895686139683519421798715364959343204345313933771265434280459058663226541365843561272059119924618149668388728826319652209389244231126246667823389423878774964927727093332246005543853522406245605697947025841981095881364243838531314215926414827025921873367569939102142816116487713196241046812181857686721893898880412567348144275516283659390300111620903058007053265036674089925443857485238605508290763651906925655005967389800237676426765268344222827593276714965934963354285707721063530819220736889404092769269644630420940100778527184307103987323124770528692177665226828310131488334589839293602615078507730724479523062400303530814068622168148983755805117769502728078795186271418854750431507668939187855258329725057404772421216846602842773117451770507712715691737296919245840320560896152591365474838212683081991581063697359451106139393222859534457248341917280286134878909415482630961070130176615282453542269862009766951405151462459120974762744560762679299068404747155788050356625707406925911687907302033938195994427381537743459258676204527960851711950946132103251473198470150322975201674325098810155208894369403502425846776181759694059781470990133266513655092841405326579062699799746231739107078403130276660318857558703388256760191059762632950546567681811274958658853164731955985749445086724969174799714283672128030278560119741628001137139189153361611850355112147068118585260360899841811988570727431770791888559920601805131040695535291701195731730170627296050817030927173094877532478429397558433753441365790125939060969070790887173846916573125684763995717877857327245039993812870483801759515934381850556510419927370851633748308479063900982486204539889260252287227999686269871403003691800906290100739017920507598375687586351277551933847329809191017223076205671561679845713178653363075310343864521682181572313516600344480335848638735547252826046090851657544250707132257768245370482573405175819717907662715499485728567338182067886038664082603316453764369325780524792010498456760736562535946470540257260769996414186209694710809025622223050542742699495952502624396852593597040239265217693529280006886424404134681272736074542923222792607155508469613732525965035247607578387856894719247488765593565046175695119924345212578931703651825640435341357255662710354275122738351330180600922505712702995417001150749350504185784021117172389523467574352357612250879236495785281562293722471669619484895896849930450049719512030946314242073952056235741705556772801746495882720828124595693200645630325601730293525528435181282664155027413477460445202631674281125673423367299065268239478364328603743471084584957751961133509782751500330295802620410034982198089722992186134647494877012918145263922471251849827303524818170679395261766368574658593884195706737875057993462817668472583162004193881471434493002126835800900492376352459512461027233605874059242217065588992083193641207723425336481715934584104509089800904975978191997850385507272743816030942654951489207504495437061793839766442311466879882633004743121982572119293000863478420403864320467579511104145357748075513407213104726260203340333137368162396342464498927322304541262107179200407163422675654073724065572615160466418345268343451704777639735980846270504112665706868649423837169113786239289429728455184171826866512482851686394537530616942781615434797190322403174136424259942827809767108591682341245814562885973472611760657807988205385535137040970281281826987838841062267137469163898743364988014286973643359402111998418280223911699309177291611159313412599751685685756432698700950668415900175301478717286573572988434771232890731409371454235556115612212788767919056776905993576537344409060885890128182017653588509857786111565166347551291474105303774157801473305207657889090312699181587683367256717537209139221983393900984822221464137213828482280100942736501102346717017666706066616228416343152084280559681810892000059068895087005916690457122481262687395711278008683623839795291099253327005125873041775374749949658713546475960424791699007414282112815447844189721682399026042193345114066657087310695255518336988850138684897879839064594387902057346670379801800906925436103883306699398497738153562618324716800525423321926869494682589881391945361994511792069473302307050810762885778107356659181557254618723106333020911831519068556377857896905971585690670265637089530884767161649196183671425771474386241811613076912113031316382371185551665438325712703461173514372704918884602890590528456959779530160500015353877146371241966146226835358324619817320714008773324569001316880182004121589905127544727702298409089860782902074051587094482341637811981343861985717568720493875632937247404252807178951785509757437996122163772082693411266376398143567481095630909300424910256237579121489877881063150040410654548455526702902648132319153761931518647746121716141816804537413642821005934283907600486509883590311466222153717271760282588968754000496477572458330783138535603008683785930146439980493303935905020762025159340124082400335347792921083257825605326520873959162606172957124651540774162258749669402582909122410958767446851378662604654449899726086478113579428984608880803814653164391479372304428803706912923258283094290530407040419209533876894292927862295214049094057131506133249176512236239554296759328209717657417223974214327015754927203027560434207673868828222460964984953274613133670802760620624600353068194844583338486327167094402312885564327224116892019870928643362339196353946328264751012584086712293146873393890668795223758929684906784337876709080710771454358443379064596543220134855486535475325803866988866035233763399122237887689432796942778077369021363302608653730083432310079735915982769075012334973313427258667623038228927750188384778256402809704107922625146165227323518278432992771367845177862199139716868871213248174391292096875192200173847959228095914135657418490039247575876085767428825362583598178671881732312252219976061725572158420423962148796277505474225957595124769580161787482170310705144678507989377984656460611587817561182169953988637144238907437916762217600409711055094655217160227441853179122846884872636544860859742187714297912120862119072330306085689538539604194917006842936965613707107611555487612206567177265325379961189915449294449498681178597844070176142762170770438391595702138943294645425601962976005379820970039814803180987754094865774926858098385223968944579448913728981977305332399546695514592357903031894650801725782153814862255098593153854535904862371933547505710821922721082418739952123816617745725223067514768425677761042428591824100322305604570296535624701081670901443208997337410355106713003554680485052316975070087002973896500189970971043290093410233823582425667537046952602286738286786456312192144957454268143397778921391804318174845779734906306003248042336924078511405961738443685864884699667775836529156616445998926877618701449620506126570660619547126471942488703535260986575595959348825020004964563838986515745782346142111041426048490828378254082656860195599720853773699322653509886001705268832545408319457217676624700758544860492501646532653848465319549572587087655543118740304080755943891237753110675053803116197944764780554773942605852743792164974636519077088613090212509955199332311248109334265686770262270942947112890455984843967402266666010562988974004076223559303170830129249310127986652076521710975116356989397785777895002666270631270927283815869936557452752530165971049239921550840797187864319029938271875725555446220443668283787451392371041519168318543998621348195706495137638385200807852297307566079401057522097862541880080522275225510083181654435480383963060714586432241839562530387415772575568999398317737213850686224680405767104729681318351247620598062982658818616625425955389845569871989459947916475971993297140293187863815596109909579036349907959013315115728757563883232635483082285703319641028111252555590811520179665031281928930156753782114408090189157548163390930139331708938297434375613592740295832654352858185076822428850333993635708132171657857853541709573868022258151579097593656818277105926374737826596664385128823890696471498357833576497558050820722905283164476273757244689003663536898794238546154382506476831907576539895984847234429614825269066252106547213134688941730387835991411085129109648748614101348226919223820958716977323582533901072511155756896998748587196000690488063005326235477384740260208397045342383602476950362969615947125197288054745019480813162021526311800298381074482617274735300659304069938730631511728625716714388828153575781740411269071333009868830531661464837765349054393878928569921192409621707962715196443165802370828637726065203144456495114741596410957021224672940429085218437907345744454188435989329988467288834380371880646120562585809011152513674339771735295480100719024161312396998226268470854508949655980127730507265060180422963743884295922653924385998214003479600306231228978757756121252847229854223598926692721310641594164067233293602883712154315750171806585810068232171146739014655288270690700748772809512390110795736816797644515633338184760126349129956271836868107709047967645156381540542414673470654043707388071500801831638433477220539293884171698614397487651195936859386998331052082654430172553999973377393812197152971393427461624609142909571253581271661758615557069451474915157195485942792426416883760702792973456937807349523168971758724449960488023286066036591605298822839970328359688672441982918398672123731573754997454245373948780737678451490466604024278114749313091576942592135820133062377682845705506381598967297457796379814249026684368626251403744764409392580063764232899634716074187130039091765223452155807047632245917046598887964897780807580703393351408851378144653046362186352345365224494898242248021062919111612778209928681144164883139349959342525622673817980497317855161341169094697411381635234865380448305283329611319976210288617662163441484522360090397702696096872190702239907420446290774647832834442430827028150667028267352885111852086474454827654677790303101025457805184678871242262221696500584618215986516590027292982936461884503809638560313244106752884123509138556314817183811443464819595994830470777246585533459359369138325048504750218019383249200434477071516374317279297704038225287366384478145293176213611442825638987706443761533849141125729242769957218662563591403299129983008289150074246377881736334978816802272336856003312627969900902666686352568969836865128174317418223156069162925371495646890147150175912745357362556004566976969459879555949257365792523116106640154063918108618112468645485140425924038614334688046740167461978705216133968129673143037972940319356275213743206457908990759209285260521415422072001383016725293888271226710460415382174664228461580776738302356749746670048755261242580265620547842603899250355706726750870402505195923635428599389496219921138860905062486637298780031981979418524309554450495197995911565274638723254716212078751890271617136655730564243370777378283737398472372886740788809417153034982605226811151120374222383305379108466780354765470048659710582579517729878662985305203967218415728928366424659319672415033623717758007001330670784849429125761899902615693260910342382275034185629285119391029125277664615526737915970121968602394725916422035206016554895269899365534305134212331650460224397948964225835485645769675093908149083951087733337193501618886222836009908758971005514469244447670234660929634260609837058326844836167860536076649070597410071805104623130174435186684472826759773671941045619810757841088310142103327898714314733720445477979203563612290794172974409567761430457502567899797893541309827913428771838478169878351483404319806244010967332241415533396588056340574315398072791884747298761902672167608444521740599082347331332608388576544073407540656158386788087209039820654089712122111429108846374813653850885824789533898961486287836101543292994920315615433667464417260701406981389031793108145457401240901530973770511267503330720451404893201424070205454187275646691275093691249494664057641552200064143763864618973047177508725549136137273533393916619898401003000675404534136189123351571027087572006586496444356669440791602381756141180763934322207327571247314109338273863372178008422653514823350014288405176842216601257546281225159737063178506406257313450340290552010674649535102475972386454433331252528866467408528042737474752985399556901994226767302329317729179023923858780777540164988863353261986978926837148008982443480577430040602353659594269458455115963129089302854199782089203740714146335749234231656155817017828887132475240996376242166031432928167474519998388495776466868103530142037306842126869958095155862157831268529513790759558854520816217703468870089377702626011429909429005200063509129977803531808732355974362295155947601281560430264382324190334329399182737966665189347666278537219003362632110448606266213092630878854791112656534926296314290592226669161521865417695136138601574266187743536929998736784734330401921131235294307256676232556400007404634384655791952320889103236643137173414372022530713351582417796263749530202458636401763079506344258350659779738287304400049825458219102409243263826978706247199965152483934530515898517152881945930679520218480374882712591637567780101479680141590346128870287207276528959059513052503934528741483972185221538631244003926755497456165225050742973019707180794118430646085814654062500187926827336087138736189443840497210510263385827321985208108845757541031487093298752371198462095037993162823777261919563681333168245991402814717257353895939929461016865433201284645828545485985357621592722298859979621637971937811309010267630571780573218388687128953073152977990997272091125981208500677947046835321937606825156429118855555225587782996256514318922674344229805590567055746534333911151743861562850259969451810705678041540849230035922627104614128857749205579443429501160344614604146259764757724365131945404654375005479930248926844836044203590123866393887446510281590644550490278636229224020014715866244048171029355166747036166836932687734590833391718102313461282257332688666313304557174097822891663359902117393256244853652485771317899206570823202403431874762175183309497789930844608656658890393508284363528212945871025192179748365130528113328713036438747628217319516164695878929700469457299227587830133426201934325861303673740862932004441721518150355601364653723466807032186830443600974153196884092642331485419925102422465683976690301546130227108328994929053569393099963424081352962489971242515616623961961550625661716724086925352793142128027440850110304571702152444438664762785584223190379353519244657539576598057360777508048398504695072121476526769499272118654606495877797113422656957421981998413985430772497749326831396835006180538855470032331091555058638172664451821764876018602788982890374403996909627130111004977699532553319558269233252418775366291395401148991349765021336019134016070331377620220107269516807621134415734756972789063447954418978185958611545122885182188967854507861926596590049409484162164015852058138419007301893454544519524650653884069643354087567443672766976117447836200728788758871216706049900778340312106094340912416355517768559660711643672172203534114574402221489466324031470075091194243424676622790834354354928893767518035122250695010441424642833155313612717710086384532685514120804110969225528121441780108997035632933253441471675164474205025627302275098514163551446495095704450860337214033585706311296384044993473792001065957220813484489118667071444990815144113788805225280802382315061259988028649105256989189890442786182224401037451065915713280268870098896972734388243353043047352455314385724477592831168014925513970768235266915072070244922142073674664677422623670592582635312356354768310070403179582532802873928203224939734622032036231961348979077389888055743765017189392438766345590221342026834378157417473755045798009768114843116022316873881211169635101755389030358966799780322657447575635462702639472803903670974840719901449590102790701101989066729290890833102322662456384624759343074377591827758057402366312090877667508291783489197125647264679533178252677276034980837496204951101496095716572877906568559770725628880328954478630737309062759587543755694316273803039068020769771625885649637907438679847355555437793485925490389801605490499211577512701408599979902781954080700205760780799898070279944664162428145704749855826734123286102871639506859118280374804649269732697380652230092754587308360352924922863585327613607308120993305897023620397618415909190837506202933114250225617666453536674516227071462068120471694405493629637229986534845154893607311078377288749810872812346096969678825781702047594282855573725438830312138130020575027202873111454775763845662520599856896204940695959671403828813011913200679117591363547481079648315284424390384781271899611137105856758284773091128757277223321569598574300217434735788962156808129425082219335670360039197165007958558408836225002771672782492621401692835803620530994307460785773755981429306550371734347944961696169017196160398873431558564909278154583766490290967619397603647701079424706303000127067389522378049671166923889993774873293850840800520017651252158542900112641120983827519411946047929178731131934215042174149991138198090754165250818011274595765491807057958194470917325065062955868181474629304829272967207829638384525422998904577865410725415685917394169042563922355939267216657628233114299967519830440137398534123980454456343747405074009975470754863845462913410700185805211030574229538293334738420303583318926990055724086225671350128014395850418227210234722436819121908390306489476543051746666401509145250840561511896777840513056800005629181769643107422757419935778005639975608503320479544345029489003887111803459981314110884392035061090857708183854193883757921110754695901416106492486587186697258511281140204816686850115437270255385223161376012285330729250307366925560517037056393819271894241284473328090310187064997300945881843908246469905136267724971154428248138714833759404434155184565967092293432724160513065413050918685546248636756953332957276799817807687978116282408471577408700192755214791884945155228979887056086632569042934796787572541910777107536449815011111767171852451063978950513892023797825477729450468154014169444236887005400873103213317952875357436844985022612237277467355205900049262388464521397653425890103395032124631427932016997360881315387373579963928294055790572992960539091907134543871060955351767735819594452112649951166309579971293822453158780189146455915456327592446559426893689351307196144099203387672638313768663289470494086837019296093915742375556130245026112216871970793122408416954117659245502534857163316653102057940119392953758339659284053554365056992300203910269067187052582570815426776417224037495928885111435848283702983258357228923240704300475155931526569169935854906273485824399073588386053198967916057642057478389695084292730672267438616430210737740726032833000732832382428608136081847803270802796318113767016851789967806002005725403127071357339700442708324514646250891911930655237360922318214812804664870162609711820622379444588616056163355030107986855886270721960842836519880299165371390557686687706303909258114935143139234805205620622160314980277779876460291338192408271031913981612908176537070960032151616925691975409473234360738420317943617991749373024264943532205933015491141653650588650187482107271510682706117875909692866790386343450082078727299582721563979943314665862831176074870996945453580779403947277448570477589949010236095418230606031606500467050318182687781039731950211034329009003755154243433420963146976962691617650036265773838912945722218351605347077773830015647293761316570974345253779630046640350020656615138822065750369303623166638041088598507089915545683051329517868930489054235862365716672770656519825003732622402931089677882360734850509771653318594037339387213204470608449764611292795328670062006620758556592842115391125982105404584509790300016097078180200539622304179734728393542394855672181738240126669740090613263808389861309096227129093582716900456970644793458767440041434115866882138148768311743449911462178744077163139272574564917005202222654621527108016426824733034595531616933043968850780900091549484768023393950472784415574701766315779947712503932343444208548815980798996667386161359304005656360027027473823164713654626778485147789645185968494829397391948155183807234326049081475590361721441505738505592381324968762868522078693338776224052616453403541155912059148045153162697005391910347300733200608652644509693204185870327736643217408380417865876388549358047329717961740013436178200523921743280133417321550319131513778761289154793207777545329565509723624887617211163090808961031683498548971759160344435654915508546735666493485466320377281711329840858616145986276138894804993668990512546505799200724093581770355250739953636419345430465866768229639735320306238906564031187426820173152794404453515171987270276234932165823842005627280445169959383927267338145372721729601878065888101370273498661101518172241135287180542197660356115898701957518518937408195547525447165927985882159200584576634304249565946602272215991794357507106711085212703661674382547645662302694376615946975935559121108183748848204663528381177251156649916001760923420735981960662396339972063942273802207280665532353428681766796000112749071888533160619414524697972797151250708489403100182653763775908932449603633498712461745498067278339444679902381154493676600520476944615205597031405250696887925970506570846278873314154092805636054913392092708066673168844421847522202569720515533661882526546158288182218663289755071092187684993894772694897150367985494545396987956568482760216168685724162628891786953134673912458135629117274805462142234267714680667998032058526415819793620430093031397129111126986780233518753761158922967623025656669530001872676459782921821382221679406031933038572490177725862413298156607846345264863309219121338821756502924763784664937326615364537485231614591526865712423100710549482996257649149125370479318779484270523130273260373432768827360269021471730636306456334418254974015691314677555256789112422572616563183655860553163880479365363263575975030926996729399944551414481151721511448503059076029149578332026425446104131206429518083535890818979602453772463963780377893605282541130006599740540586790080646683666277103016275237348707431056212773389198276665626486008532116560257796920832980747257674053212250513112502370827038210504819645151859987817534332847981783774924491973025444355181548485978405655589554337803850011959773359648845348671876023817394193155540649774731026200553149151339779083347487677564877863082353560333697613383895951876921424398656795245920168801999173756586249560665375422613284655380829292141536443514857264018494906619797323839788817864534729167149120341799853669652843014048797709081325818800539673523375174579594412439777266523210990899858018811728850117480599744792096499196185479040044835684639599974963680451234143945164968531027625742634674438595457216439852192887991957395784335983408802895088559746498056235301078382216428542044099332326278497870833769619006684566387367261074797344007745392588885015547417356030904646244075564574352123777038763745509107589724868913048717918310373857269404544090936555679209431936909222354019008453426940513238919459672512895330478879987932255570939309268507423863947463436049327348336268947012697091978675589719012537664838942192014128998249736097448322172428512901380452757788503629853146905397348095822673062758059689682437324419452205428371000419520014841757520134451738062871545866127319321106154447364223067470988648539705065445587207543936023964202421724876950272765210177598543764120979270620327428260759471492077357876339985675635796006930429576554461707676249928837593512073045643138666737774073674839780807568511111337907117844277920423236846914566176391689153782981239680763329108596483459964395175309240042862405796846891877321275763311561033449173735866884336909619703010478913249558008214690197011905166961713933976157120267509288158925011100905072951711997449518509385826772810026827070059254441435702260262820620340761961206544533112903025674443630313418208274914848040445421850685661332101129656086987949322030410001645967296453082747427090987476314583125926274003206825554126188439501061455915836861626499300748232834842968215770744602585258302077130378925248666252762855905273538694081190870979533964195033610066126609197522335448857553945395560931286505114521336128777962721789043143525751465542106813795568986839594096908243928453661182735059503724787281397516075447193181776596124627995802270470486942394329856034305904338649543706749471156369094237614092215552618507259731183849850463635916659135495895876109074426301883480511759285655061220572772611783557279499280312985099437590082086667094004073770409343472412677438938913330194893046334360035148966967896818264235534403760585789517321805766176126337504918020690000112043289746005665291638188275096702926797933225856301509444605608427591138674153710845639754353197999738093787986935809697186147806738473830198953333237286564903022080660947363364412055279168289477674957997803896401934683729302697631493019248541405038390021240241590273523075789866787036439087504997852745948924671203203670677928965709774573158380990779153157038228027770479355079933217622088098692984213957870954459974116267820535396680648832630332301335951586434829708983118427950014883016318091417227861335375698653554079207955805488121211454334004139260700523776784137050699007574371893891586770017389080611547390208530750590071277738803116492772445894157726478966396118979020863243483906402861742932746388299506965638674321529650602063946865558481102475639936049208888708473885807004125836012294116901816576224539851776658988257603250687554192498595571013039958966004460922691969455783637539365783329621092819285712499415434495745668245818540750154407656250331211938708879018110993310871654731470192272399472815371356462593147563151709679365258023018517442839833722663990020937236241614847861153574116821299526907816219080061281045568768659732857532017480952750975509725814998060132377625517814927073587072436019510615976482433595797893894242145576118882580646029858764400378740653152758190701945927811339909164717471768102365540748746424604591571792868382593382571699829038941870176638253386796283852746665925605671500538850840221812051496787564119633834573403359865139560668940825019153895428618778598415688091758842651181970641015853749878920421655948765040800378458764602046134938849721752079662249043532637752000040713222394726317392352599793955910557731478093174008111017259900010834183898029459954583844034609473189498297380506455533189462321140833448073624777656143642929393246343404982911694591846421939233935004387758516216724656364316965643922854630175855891261444812608507422766250370439352140126944501028986068551620326216857417661180313638370873485780032728615671643368130023565488900873936948465192893814272506261863501130146041733653910656582441099785397241174805944152562896136120354720978244017898799229326938850965990792384120670207584915240184106361171062796356645914778680128631716368331068943169682698153121918053539417284422346364954491513285674031273095117756740017816123301562590694286344167534022917629700665479789427268360674088840395689963981111822512176930689652004081459818254416235881550165850696438868127032397954051826780080206551503514516579198848629901277205978548174326580831179147916653842660483040866799712973164909221934561598752533862735914038872913267228651237252476774548868971704290168078972287336460333425203364144273009796225259565033732593464796050024857456152348318979279857212065347031134014419934283357324355914686463210231609907093424954666932851499429162133253974729701224253119786590782546102019408542984353332912927298206564042618116400461366507345976232665867339872614847205712620352809383100009911171906010128903722584613189755904618165955001335620191289937902983860528446859498410181950438269686895360551496756182522592270466310230552260700921161490847142788960036836147783681328754139817954640902313577117674154039139501281883649587369526250468234585200135460575550975252807500070339278251992735855337626465770058938871230836154009943490541123693163821093186277734589122564718238120944276041214447282282371988211079588098281635375088533107534025787894478379100674616766702923316571113774472156009469882989946498841837976393372948207878348132923598525059263885258531225163042678954769477899026018966150804050315655315255240932342802315358128756398883043321158609273768411045040351283055100472870708862440945090149281573590120602009510060203261242093502871740309516777346175486757751225778752525842694842917151445477691099254089030348493477269364105973148541740116311867272398524228987632240467123782387871190019585587610507432431466746921134050591859938784980311297383835854222367087392733345412742635818870073416060825189565354071610900789431410593920606578280002505979119839273501733976593966570460293305154165128664178378140455042160331169855395043382965785751517163607247591734898085770109369813666501525769942904358620631648264074561951412775021897365699512155192517868885814064418511200568162762582196353030777259723142968467929721997808019942936920565053440557048023102687203213760622043456478253420760706785713644502115225402718460434298625170146060016322806964851749247062094650896739493289078916744194879637063696624691627494373766079485486612902651490577022935728859579374075294359223258521400151101570761060097927326970890878050150515245374106631345517354616653282344872138839405656447064410416947827071702042935533193685977131760526735547258704111686697903505331654000572861184604051017259142893915555748143196932934749712370969763141498547199556718828153756348044172793147515189423887467577848534512074471251194727651314219721643800581604114285988490608147703782419006055367816338503147490030570063689887432261087809828301245386665951222736935704849906571777013488268148817251462084666855099147232982332290998326467157712435321340849516844621314793257142082639765660860518284121130390888492543785403664357968465309164013676670232301797548187442293814259468541280705135987284938421019090654261601458240898942821138383816499789158871963040380062576107899846790508542646987859178048237365599176766329687118678838898832052141404288063466536811571763383924579297587473744799569887268467166334646754313522114871264532927989241487341037620901869813540348778083911102813546964679804460384049427926003206226890858472197557237757734747446892655901730441478725850224678743380194867551740017123695792234293561926151876850971430309334055047418260622379974555467229250241529761057245687185522821784902130447469989149960326215537525625866853114477656931827741186133543260403705772824302196287568265081980488432629936576856170973288820498225851602957384517656361910051564910168495816858028416293256454690613457734061083285537576649898107128007271469614918112869223566311218117855905351167461644499396065621371007541326188118452771293533494841481584072895980392750243252171941874292350166425625705135077165449870029298329378333892539041451296108664695654582897350061254708749232588228793853054601331052534356282913520059988143284231078869418066240191266629011579751583969912243597263984128593986163001012968216403723161897188334733973073079012918828594565689646466608055182685441485182193485443494037442437958322048582356868672631678903549671116723983199217806418991059988459602967603634736501143726735705184620298492082295684250821370825074912199609190941891242065246425915137630255305216470132864004096129944928337633737324131524427067844274604928851221462725191746416695216905136648343099996453680913303447216228354016464874491461307517287617745113848450544354141679238844174369343388658439850935325704022065551673016070762776527533965867538213174903844684526766528791414818650780598404864537553145453447283042818388748544557161555900954853036539066371017981066950961817438561948553324391035775921503606106483945121238796547165956231674778124881925848650572763187134784720325596836853176036419870334216462557157471887081845677960950367714047233395502486353648966978027530653589060161198344289441694307714350917810737027018150132878545076966771743925613679437979522683596246206451327755139117262908424605328603968110951625031906558701658523755075061083930943180917534669836806699950379111610519645620529433932528311366146638989797407341533577066572957305306406046454641779839558679492485870122354463578342930218187041969024651882020200399564551458244589695107973200536152730016852904751026746174065955124616409773401505341312046312147439074650422917539311266208237772828174021277309657923391630267447474801709425136501807576393393840841816299962662397488280152780825420332243535053297438194964810536538808584233809396674571642877207730196776959505618583416985125467652184558110001467070859818400863796293920247923356134960896666836631536416242814197972536801496832157573634423263936052698845831926257931720257941357150806626549493854252133253805849679599697212237076953071855980267340904912803622905796509541674078332418121196956919040283964980236279606360540064847919908951419714574255844450014811618726738052452572386646747524159757646269401103797613667781274518346983281084659486345339953580466030846317659078821474994184533068485167837442139485726457721934045086626224843509853736482233126821423206648523731265759010127562770065224798553606982114624683067726773803802293974894396681685412327506798798723485580380304108017907420829437899171974471722718239655066509567772552602809812428972629410525294935822049165434555107895837319904141375430326729575918507353688707888026912625462338814423368290027807073053279827596936218309573285254550800065993299941439033387749274045773321765794150535024494894986917702249858070504757130377521147444068313942650024215776992659635397181213153292291815674167314771898808974649470542758659433791660598804990067214723180848313449198882640639983483272141091070581158927251329319825175632011169054586231471432755060650998448391383849886486574544703938871913673546577845315767041537586400414607423911477913854509285520757414318830298089350391789984332838292869900920945286774178937761846314559600756749516041720432959634482500674102002344815228588432791141801840473220355238283374986825481914133996989496574120687601613059502761003863461045662729471014414875742697803657459593960673904472772222996919194345504759422923666674900898688774571061537534220464912410082796259876586267280320478083154808198142636378096567732711658474976761051067049907210224786629087210492948071195114563673043786145019552256581147110116089098751634344676336571711735985269997811067256558675033528203333086986351572220205903319769919164543052326456343659219791805935017425429249879436788319395443006918505262746430786091099398515131212101810227403642870003608587234273892567558705207081657048646366873056378355331935821497423142405315114574209252910142262064359054622497908189695593697907946811035111836362171108295551193343290808772314825478004076807708530552852365223144039818795873900339325851694721563883126521788848102883795973373874912069493558759180597252313356267162695033733444301000516612071484085896229487380208752952847712289870750626791815368219306452299199194328254398410999560065919866645718215457732932261038865610766210871927475922014121499638571511120736577179100881010037880490182213956176799662180722546106447357309938209975160363846571609587368537169069980298689749639233538667008408062469957193399468081361595578039621790653590219050030911784455872011567472466841265619295920892592717020233874475900848546787531435434884317699558112528859293374518208067212504099923566668757888082201191335413502161591937321036856145563760902531624817246491279366802913217586146596562469424647074611965225845190050622177601091079315233800906115250636001237766856004104828690687506946499402036179663616713829863673901027259037264125674804047699307049341807050054015011485595347718371235808126711149234944741391239360726433209203605035206643113337733846052181383249800529623409829911848276311280434297103443794002689696833442168437499764515136313556432306510482185070780823171767569643248384008442417558406448229532716244754096786306764089772923639085168678042308436223950849839358121293728579769614495333176950498557146744042573068614148613080217173196380540121141236162891892725160969396597774818925031987043006383649602043684418547726138988270035830957299516030230756425651260770980177115118119852749489596842575287189858397685828141376745103072067857260899527813879441302407302861764226923570203174411150194215586133363415842218047722665040468984705929119451827155628170730987561781118656979972560627820156263256166713494204619264217137033480069900277943491208355866107453252464916879899771613577448202197966637365466987110924785840456554430395034157279286112009111861279828120202644896030305097610430855339915828674031800133086632751341735735326487047350218425507622174275916242874560428197119967963165203873614892130137833692526152963076377320001351850451583841033663366406824457322349773893158156622039568162695405012372367730434642833407105751556886878998375536858937125720941162855067663863998606687432731930844354802252708406692220673068969520238796320537630589287580358714541417993455761933262301428315977823557162357676097703841206541220608563038023718595890369560028672471336638090017027746817399784678659159723662462937177557401038109623815820715382481969987014284017402953213232952240275938625175613767361818372229581680206753775765562175670548053250795526606931245417999531437473468483398960518288497164188379977024345954387379831464894992094841868255010625791676736525138259884850433969337926747382243106749898148797822444235321686367418352418002460088952812732102121744636411100599286551246638170155936547636522701509676534903533190791424877914769283671406513338944693194195352009969178173546218493932598143699667748539077941905140845954725384271678483017279241078179900279154626105408337815738261275054694987937534209656789774198216971050372513227925430534566074105274364493503852742146330920265299633201889057363133798513913310632824240628517430019106982942987182056570540740274282609883832187893300816370741397101534727097815312972638731822327634205985913409189241084376379534137147754984110231105353529130286238251568716244033326667244661399213341357807229526545323462014684657396567021009541721025069060380905571140315772022469422019459321510964535863552360161135724470807472885815346568906469975870442006200031510062875098635970751304949910889609750780428831543817917751320530028128130618532081199254744294140951827420056968940876038297734511161985460577722761866907889379296196465015766217144370268033201182215905780891637624829201150808723230468907442260237887662797783487657262327611777585012888788333166546705372214783683520633579185190922558294394267629555829737449763904422831502775471876883622675427493279776050948383336475607464130075099997457066203072381251464325166682106023796878193006083722408232062184588283186542942821613930949533506993477731561304435178713910243762032486842873523993925327223788186503618033088303604691454999136799045044506677909296937522808077945195798494591895954949017538377048004080152983619149132282020075081551279479614151930984491390314783195957062776197942265900848038857610864206890828724471037004345346402223819061557626922413833489796535859586445399173337101701113669827517118869574325438535866498762098375221255339153805021526520898163224578369006893829946909292176900445112008862656979887808578908603393407550217296663965881348102895716857663537908609664566106085422935687246059619947613757619197306050886328635283941819445202084691580472551950026629049849451418525009131065651271157568631166212785383634737447264822796209152266736830100600879850854741432515074536691395086054463160858323036780788863359182349288094662082216245126187879824798527573089357292933247858077386068865925932240201696242734286449631630138642893696395865290353790907067625392541361036886433256148836076344362910671201042788261938198673152319619100551370380125545283996385734973613819400860111746694634578644632044622408930992397933636884275476081901044491008884346493030712231684691419789579203220218514376283406878051088259839285670494442827344551030395633075629640358846835896605335015124171463018806153568123208459996960850001610755697570151386096379030864087415738868800143855886318572408999811552769706743678498522799894406356534568685281690845112632691943546439071936521904562303240064169652274473975337067739513435129301775333841648217276592274439352776415799464007761504639366063993723687462647331750918456139521961189551544291297862850147908589249904190664613062213333753370376594042880182507185172334104756216035744458559005953755930638713310598121742911163211608228602488290344431737440595211307585004112644847669071431241632229594598655017845900187412337318680919982741952264010946216350948928441418164177807113490393662039758177186863493389567510297448885171222762428159683509169136420063509551148565709241680221056758834852480915046631503620676216984940788359566060909651049587290763430823640586254027119522125567833821268830082556420579459457360369538149675832477784073108788154572772091421958367029138930656027769019130832639902102555276842399190697075938148588148251291611441557112704105392852677167197672856606925720214443827854465740470852942487256447181483794155596183619089129348219828930418979820976914481561054277604605658719562005032439719932827855962364555129818903769395025796229394370729674205509345548021604662742990095232445206813751844319271677394088244141559906606118078110289418538940314691447386890951569820305952738772655586527986736182467231507974363830571074818169657970932657915123861979978377249602168093742435240972832998981827908571017149595005040844180471314956463418622626976770473215980565573565806866244074428727638260027334626729429833056920681018419371398208543051250790858937240634802868310196756691594050626318296607731076787519982861303268536824354529046540063915124923057900767313918397910314978148728415075661968810268704258617357000807255037483541635770845912729146399500161152406872327390486883261932074913359907901472986514871359814810277193327251083266017764798622140237724594326696349160911262998167582874679047648039836379783894298693037574349870919770751399637554550554252518950713131240774358149892344733934002507589206032344641121033228191641846794514208423950462555449937302430625969786303587076355809931741647237922437222638973705407823586135367253767368935858908426631745083651212892512165788098962795721432945497150074081231316107084882244807536572911826610074911600725842122534856750047737173971178370406759479507140449250649490259506935747658976572167811348058106277958016991356245351486512310864181697754416323637577120204010935203525349082851020866352592325677119736617778474424361144736763040999025658426609057120186309795963731323836522969886417071621179493844283081414135206232919804908194363232872941189414528273691598635752856522123552468259702286337349034000154864374490816793596678119905637981604707108744031351137827385386640543566198107123911596056044796196240878257342757685952454314293455039121494352247755126760866349115369729681777802481298015013611565320770149393348734893191702371944693721901562365091985076356004354857017726133214951875742297377453289017252206816498041686852541096084267922159684947682751111176585560971937478898718994369851738856739590837460755332847819957521793501891454348435265109300309767008783448568003799555745171792589166647964381254692773935844093381348691826680852992661946515143882506624081749752450155963486459108484850743677188180575796567497467545790898809705121162987656156587061561924245272590987668146763567696514031437054502300159320967014828955338440608402267458762811992234092989904206867516141401295628461174663224603251630965969284628113496248445882709092638783380711478166236041318542882618253688142878395135228273197182886305631669313386732437319373062149534913385207368805027640423219317216178096970434972526216260081026859532878651759940538638147662153104267718281558996033447983196108633819349007049490568624448892297284754151986561951809361807846616421997038128953571878784089809932079708652364069482969040422227508053890094700849873988202153317569232551509239616501029145664035062645312029791554843559458337665774832549086755046827543257613567659756131765472821961133215106688230314475099972848652608552543421330880024904651052950305830943651396096861551070815785270837389501788978668601991816386841301593500758058378724698643290646370295495453749225178068263835331577277718761397149714318201379909918415121873139623491012161113516077933292970734523090132144536912847229419352936958321731580724815101096188439982420003594259555378001105151422273418598339370385901438273275523494475349711846903366736238624063801948733628656123437537708520597770202418906445779909776070389162948317240943000954025009147645923095773998573796807882985558374343683173140067091966683131037225929173628203825321524298319565777554964841871284362191671399380156020528798057534884347348439117794697809421359780231059084782744755159657934644525144319648678011615004339240225857303331417134241350054431035706309006246108173371375096850213865064878479252241416654851868269231939193700661038570029365721146044861582307447615992527881279235239705744407440148333316937196916830703323218198671591543378993985741738692088628622229376612535054972220268075848646406286209983885730340596437759222325058520754325483684995750174556733679621452857636840656362538597073092869660735944175710974517047670209661946263894842121550747213827221603023171551309875568029397255456291696819265037940314852542571773147252077008430001348135052350828966838689526461971699365153521219272937341782246163752604269470319251641473309609343540252663456662114188315999163072778435653443179455485138860002761505400536233259256705842733162257752504527960613995237821293690260223020963284918346609331629343814433589073509549039848122843851123129118434361236071512032983297947708379753679592725710346540419041081850470461610756551655094092287388996314241630662287592815948772183037913272523030152938472027739362877870768468945287306536638273048738313857984099870981307263386111583210062537515275823965385624402880714415670831216627231680764661719281895267821762789880214069185882158008355846672095284828449006009612797367023058258963921906402336259668844178012766839010222831706670231098416346531369940075949325921558182324707533373268675180916757281555723406994452835713511913809863744794064530783761042325330839200167197145454471023999033808277870530984037879893086015032336505334928826183663179612181966714885445394390909266421814799276084589624319489519176666109043268117083450473242526482089846290259204575521754622582288984300951691533721899454326419440489183332053391332597309213495433385072560543946239744009959368073102647515752324254631768484307023258750442171440438484475222360656122315473299455950764580215656502407980569228182003711590621541362543036560812997785068660986931901222194001642735955340606238085220706875019647631047626826021619251457217758233648277113792752451194751685575898625881525211213689540391266733628219951685908767409832309827308653035420698864721883589939605965286817485965442093635470632574820580841047690855315174884323460787399836481092649889050329100734907165450275987775547240590988888933466152538090789696380663209266622229523499330616216250765167087903358165360510568875972647310030549678021268966504410351488168238371123395070931926996979342354166523482992963807105136075411085684326203938567132198347304752546022643985278673860862404090556771842373941879251355596972377867227506349857371724551841207119097224001038848252365924257002837937667548603018364202863728475407933928851711062437204867358845780365500285077101482802171416244842997281555852456934846315454595855893552094073475264122081696708571925851179762028049501059570754035539934744222069338636654766683857782972437582124841751039616467558900628728623166314725255427192234558793500984632809445117702233760149179325130951125256327846196367346245952071003904964489428309975351861956256832988095374700613299114322124043150244574422548407822724400693937081411062556477687033285102883503471881271488252504248806835728947711279498333552386739146267096810126157052219447262416061916043864053497172203888558483607577248108964214227810615767956377163812357166017300705121790893519302211574686207106241089592005145410997912731879517515285930347288572984174150953062735073773731178145410239568917697219395375485769396473412496650862142633238683603925140825792012340359731858130816274295446442137408384823091544693820453260103826602035018552726689939490404095441026455869070217652580940512372797326286148131548172822546759879912770621885832062175594031534187305068347505868759972934087548709442658671387064140063479398544416158786016352164347709395900121109635929985686213217791222388364634097762772115246371531775706656791034033191972437920159484194113264834085081054600892990332912303865053952715863632762489217165383383990075789795682790079317475619889734891083526289870364365002274144431390568375262801238405770062727720586094162449423680547252914198751741147388346548905977338059478642462092647620893969908103858888498005355485041795242368688982585326487977310752448847947283950236688183304670239558021202864012222907702717781244712827332641120655521622653954488616240728936427660179364134193188415535078863919353378562326111175827213520853518153411146950331551193279239482253681562676991206613944863690797227059175250559038661240734282801625022372309334184311846501304591927836067677307552865655420333822734356799808139962579995760850629551295192104057740533032892848488713927764212209638232136936160909104812400017543949085520969362433317985087623941984849469037811194624784366362299719253906116956024140916152672612087901383780464499551704371797415551842031508910059910788318375151955732014438576243341993506521094114944745663874532416301954673447308155744285244405764916223001288112840207517395070521417510938992113598966414168868185717295640643116237765440785034157119150487193039484189234623765869891496304660364184365694956415696886442888842355555153946548732166205414217994433688285620286428518968319594042299052960439365976533659183338122556337289383859232425285468671548859883475758707824380749441290208491074722773427379467641238863039491518962914928973308117532329603125021572326712624345886601678313349445610431724480663664441845828179842982625855593869046847494556395563432267874558287729152091327264607226797768787151943469458151781235206003136978832881140848306997925584937832069583790112650494408161039041611620905884411491991802314915955035974136487898316849617740376547678553845093038706941593335942066630293131057146852553080367100120522206719834041426233895199568247336847085726238165232833428180472931746595192463326446647881176804612919447948490323719979547639853276676992638443160696808362255988605914762331268508339327669409053165558307431557005187337234965968736345872087542301598082654063658023668042156810041796449039472108625576299464277980291350875437214134572951538677852572273198304997320623676154439157075103867137144863028368124956601547904214440251255399826993314302496733618407048248596399241634410518883438537398602643475252120453266778254005129115439131633988696669138925517624543857224239076375716184697507009179496972339679751086371606007121414006539298860768081382616728540957391478526944606190813883728418495283978851852368718339237486151392674726485682137856558247402253738642480469319474045103533160672639489554388939514983377306392347645565856622060140244808343064275347006617938354732646280130326421509955069289406053139006309972251708712586408710563292999250940479286058648778937247024210858233843250627740585948980133286216324581407401780910104693408590937035553729516603663151813003301336327493351660254982114166260448867650568255335526109088879919793138881467783368508589993352296728803424529552678632701375193783626909672858903051917922827986859582233540004935831772038827058489407567639497544788289323989245574118796575387223148706396469191582507103036619085696445824010838521437561958724280177405819509150759429186267800024695918931541913102522685594827523900724349671754186527089344892372033289123452322505238470048954042265486627924555736381520006896272090589015270647132982818069595505839800918804740259854012901733007102171178892500171563060127737747450698806346876661736980867590688901087287493802834028264028371927832508508756167759128185546094059988724440446843522077909019146629014924518085443329372904151634464652808745113962288706670655655116427914507804576264890858598537438231589576281925129077990234901407343126577822381777707395571970497842721859251192857509063247567877813233510849363411766175703885454982772593260913923346412348011125419665702638427275860704681848263485334911698450511226380416263909326864016520607962010634911385464766193522547697300215067330279936948766490948954501700826766144305619460729137736505016353004046011282278234962694741375989891046184814182373679280639441645281847199855700112660439699185305003996186846927125252430268402999806168954066002095215584437469190310995713584149899484651674367390290549011723145803547787474860611206152648930461826339887268829654057853353251264687821842887599365132365559461973135900979004018046705381155044591429324036011533815520375336570669280598309290050098461930175553065915153167988774915466506513156552818379177756207364427767394296653502378486417077439042790134714058599792274303116752070069657279839650131914267458192505424482774330377255603278050665572777795069381060407394912110867936751880710531631014161246846183054870952289139085782042876775084825478345276287438047141638573223620189310003021623061946165961952512608086677882124543855604758348681602222552669171739388432499835284526741962455827073711992106549579729778389272737664203598780235352120042884678515242481185266344947758767207869121374740027460972015531970557826971981965072394759686424054025175340340740107818728907034787844509733069956071728461171185017844775299026699376832480579118236704275936237918290733092916035086249824549585367958650964934350544628518637120698558899745289270641145268545020097926903219668072752840549946564691902260583520241378467429888805559989100268714172511916373836713546251622850706339775380027606838499568340867488066383591980924048587372797482437904001143230820397709099583602449596146288407603320442378408566311452086529751623092383945404622633609090807958244372259838389439985233368078400988541375780415532023033223109059821873212399244155196246846423246057606346363682993173214800267218684466175289481393584625927158411940638817183778154627833653866435691717096426465078173394497969935940098284141502810476995939587339080198732522595569564743576640389511188907643339265551740934222368328029996430386808904889709793450161711708527595525929713591372929266852964916320168510265848988675186326186234813563638877360284643313297667349897280065265606947684488494353458130659812426973571911445543118023684896797683002626027349018394712694650736271764819106733222711454686412483108630973341641370417864689390232265035073056788644975310782713514343901520385001914751417836353924922061409558183027519548419164866161260830421880835255217354821723049531778608531352631928335463761447008463911080762954263956036501700910297427643890256425100109774481142748763610292847803361617961184716225029061143506147193455736242009371895142737340403092385848154716646743445045299053441335498126377917665844660449285938545145212949157744515666800742138068395152676622141943055047893822131003132108013163285146171641945454645162126222987470517478223030226093838057937329979777899973381827383866521215404688341520552128202189224899582944723897716211800340750610209098957140324361316107124059612731049311622511249396100494948786853449344496949367321858625584151709738047139210043895887449695244695927355313887164294678624009535596717052468857620578443802265110471418267946993841248275520504709992639898603388486906227562100717033713574138843438500835982076088927597846911299381043545994777968704918066864745162471576998412881122730250989805571925300322760891031135179310487268440666758400276782936109808501557022641607087610127927661756359413387458693300435703321484070970240620476758619958531107212973561778807393447559557147391955214908630841071058735916274519821477353120551496022443292020817002966152466482134182356077471709317218536967006126933680692907719846700045612683933490156845188277727400991195889563925387373045280720280609246324781214771208399994652617762448642315471200019693071597399915029371040683106521279324091706485816315080535856897061573568888886969117280027496235066421614788153561933724270965667995924817882929778344413877688768569897475553924353737904672775744961785481855516383738771265715379438741125748878999776609291752480891394951808344200483294175854513034325206395573344136973347032115350679846726750804463572876694328882883234756318614630962349815538963528863395039739139277464621367625927996904355651389706174612957446383698917116039721549380192252553942134612925921953975759166250739160940642496129287844064529329900449637005252656814978818335208475419463328211467360622555174111676398255360933815255215039299858524570838792304701292560030304897951618821599124685138671711115501565285003609265267549932061549517144228150739015463816311465316642035697776170451888598015118767967457488931727796060094794805022403661425829448112157906404258579658566996519721856175756970563726817308144130238231853612947474606790601665938908286119155624693155136172140245029876923435482123834355898656930993994784636209556770265262287030872175409436638540416991197612412299885164375550546832979974484348773568706381777470541877712599342414324383939762141494194295472703591627296796256324411924616252740586099482182616441630809517864800218737696735986222810937975097636966435761265752665600781729625855682951807033283189387616917625790354411689864716290491296964427314444654375653247056720903857105494052179771592326655120073123748811134044653726216930115369786689589143196077699421585709467361473053209799726517554880886113508282705494657583168887659378266873854625541169152357295612161906985832562005385866174547381105483386029861920148191700774230680327244811892433881200627108586132995163485525698254540368863443049454078863360383332571943899508443465873038970501389693200310572088528696104176998979418219730005829819055981825404606421925469211824523757272305975786089756844246784042691328199662156265027796937628679551213544683274602424698911709991928516124966861941820380643979932672094673612176403295419181627684200818251071685936938603150994144235120137151249941961876774490472882198029860380229090355544426691870450138448455505203377931773509838021770524711046508637130294803936557064273432606738412049971915695519929732317498492666201927967923157468915353001909896876119537156895003977647635359978864717313527487082265505893550749377705144062206733045039049743548172526297758076380805940349246778167683018257582300793095763815414474954575066828756319136783897323078098386544609374324698561811535666402120350448571802200135067086661127609146437276509205215036737241227884050496848802693574907869604893968003195975411362943557770571680079765163071245786346279841629914927330285874921995691959372232402807183845005200323250432171900739910566873818600586562999510270893912842525266733998375662523737615468548288796312935058959101518725277873444272867146585079756117650998994757728919169617795296714447763666550983976158301330688462476413278929237618936193133882935979764147959166006628128378905248495196083472335545335816562028459144436033370706104588026640159336623759872628890308580358010518774198735781276772629320704957914369862940000717589806236809526085281986542403058353366930256587918019196376376625424615150905082264285731970629842482601089719177815771086532611526801523033272490712113608362059842579241610397133258550145973834631288410028464474393804979399231454510511930653649407860657954865719407582424216403639697238095632012152711001318708935472397842426588753007655171351418575214867860995818760920409554580003856267072985780334356424796735785696451167754783777265705051004781537341124339355991578183150637054035956318650972361188670310848601168148942688793622558370419094327207490212412905913038423943810833411806450878037990158452557247128101341596911899564790997308835533405958137751652416217367909383285175900497184369047811965278064346916282527892519248406025528709852313874561122375968141579508369923111425217704350177857092817670218199586407308010117717445698691274363424093389281650430946413387239251329772526831296442156865936512147239386433828870971175441681403709968636838705255403624948787588438121402660024193995178120890652369476208457584919792704772108560148684835602154741845260269808917620703340224109153727070260369810155054795327868455392111356669835095095633488278106860199512377797283700340879873062248612245382171510329896718407699396128522034129572255765404390916706352060509270551803485896207115627997359258250910003230585598578410484999787844505775777912879688952963011913426409393123195400069385382296891743158772962427510727918112629662826211292331857668713333586589133964991879647335284978358134703198315772656724155139426344653666413167931868891018164238442219596887987168235556249769912040143940944045772818727698496628992712242889402106126277564149425878332967396933193350899536912665188584123512427492986062497090814101319040213191193352879036157703227989661898336472360825656988337180481899474301452030237858111477904491491781744894574750827982455866628802535510982238954961677388735104497641148368006171115918980813770471227442871162971654789223187805413590859897760431860727226453391851259221872409127020230233380890660432762046093423128448354905721236336746519187821653872412698774183353430367464365705898570102464714471445487188808503023797231035128096526294731568973081562808787728273184598521106510031596564203186774693584572099236809832914462258958412754768391951228677377757604608602553780325766042347605477511769876977863550060962724760950944421417295100632445283857376977070189915654734410823201897072740792337894624105112422148027471639722668060240315725241266325487903382405183147111028354457813244279039716518190715869319619392031736359538839748943221714873956695016156066997804778352625011885599979008938091686208384618945311627061530806662755140146717424300885161907052899834591161723110356778939644169934018219301275790299264306104130522046116394230416309371302870225689357428071246400942024448420801989426798946105425252882007782853578426219441011336526924255056686039498772846599796634966826784761354976097302075211570818075302762492430158067830695394178364984137564855816674572125414727964746615993532810725474578375876917260244060329112604825952642761506648467172289955783417236493902239204394995494140531481442723704946564187922816267961368048096256655822563204941329308285376189777590813022921181432646004013212795070928021292970011039734475452287580875850895459083173444275426094446912420452684104166400797616013217954889228395217775600110594811479444416806658757091181852719261831914642292793649411851333600239206237854451522403279029853228494280993301132248462938934491349406835810925343683505812629995031974427195099369379055047179841141123353212969010845151119537363073017383771047208216145216774965543166327436273235284726644518926979541137057588865069353552514657386554169161710650673447660278026963472231267236478859095856666473157107361518446077314006531834518786488275199222831298822352606206876031540996877351660657344395075728777803003887783521089616234810101140705181626155483660123614308890559348176476532902539843363886861504517980542789993108308488135964832891778592387046996303561675132727771291325105935021092003235029998530036356054761029651961823015535308706920272582341233590526452729665207828164369938836706064478963278346813455897074242828958448210281172017804708222883493157975475109219306405148527108003883698015368189906552723686737985591668963612277316682727195350769642085908935558380672507289917986000497190672263469502186756963114196446164861415577635219463887144891982533462505321844756588448050077723602035380732487157025173889941059815198348256050492971774482167661180056632760468238424270472600536274270802884345211441207598062168951455349220329215653756605901189838017787384661655929904049730333718486158968597672862765639849759776211657889171750774208684880267213924408403588969583554718683483076669313481794246091209037566495066217674326089535086290614981750635050172342352863048759462966111468606045231922628879757090517892922802897389004443504213884956845895375160800532787068469778658639151264713087091259887976414045055665604675455122174692354673120215651765565644367311910003607176232915027832949341660108494556945543903489591841277070153612756755392151645916415428131196920775915132683684813953056350411909772883957506418822450260975312844544934135855699646217924200564837157679008458489881324832299078939461756798071696894500614554171454814725007680920625686492166127180140175324363545769638835084071424666444585015837836694477264903480676703804741874275802272792982756647236688293268392708913656360522896199581158780565654490879014910230166720414480031008239782776608556348766652413588194572437408387241462953081424851940681400532543935041254758811600994444290153501998848685398800067437008622629713417452541276260015191810568670511412309763084947398681888049680506211550949205640797297480427102881080096544716551362076311404800602578212828930691589920849668823448545951782061868794513342214239742683689927303397412350484246240894868086307286749550380178909439675876351317311923682617503396674538409033365947616037981201900831875146450135311933881273490778557750689177606788504016948501491462298729579992994216099020532421945745708595506953819872917015938923918627420392957759626184183310566928756428862793446229281420389639316509355981546649432827749020670522893211087489501567253021308392338059604130378639819523515207782476199550819923151409088309590616438460193465856750542055945870934178582272062933358525601189627840512378640636548232952255095506684699736863054819785572292181460286402092071823976913278851184949058204745246076605397054608570147524511297144806486345999128876446011933395612257922639585016594165909862288862169069591435485398482051489774087341135959171230577189302595539273718542531416496144621343050841878388116617258195998798821432802159034290555765278839336940898558972788758865705063103658567183375751346528678058994590058329890575689060806554154107872253340596122967491494010168439013668853845654733222369392213410722932932187190289740890044582160652705412361805528070599059592152213504973662283676696716131257517695068596092639720879780349882938519183353133086463595883664714042114742760268696715026818072780609355167355260491059053083677549649844371641801927336655959352407681083207155148673562396721074260688075759217023943288743683894857125166517120463243016321509823201442137271214543842237725074504457279067126693107910039683225596669354206845020563027954071486656178350121564955754962878330940508879673863371329093403958494392449821226663253105481832259440112330102469325844274104974031933066585902435181518470455910759591412729728539821131631912416994416784701210013483644795619640231276446939037010098407657230586151445001835380074808443194122455492117645076454085486546162225681636504422418027934575639677016948132773081930610229441050210910054100939896066344451560598428870012059549753300108148833961862884995363523747814958542041353212166160194580360701810032964536301609757302716579223580714493160621490962741611810676511426073992279641973334581861247731421922727180304408730585333252599726072104934434542790544766829573872091858504085250800231815587552909818491970810782654713705002782016797320720272018935987186569105887400241790231009784825237958784208679615524328702996660273736265071277403044305477524132105083844005789368823265801969270797494713157939344612974266565310485718533208098952438025299026760615508973727888113479243278956124750775478602808827924732874575290548709870805729834800225914106302079836975898805087250696220972203278573099502341081601994865676702687879877026460506526531100903534140303153520014060794763435623520211441058133407550468254335611747049857209764845621280201731189522556209982256710739694922787819033541000355183229798165513829580239284643430294725299700911110681886833790950152278867024000863581282733373755072230021904280076469080365650171392922863952200425945078233713518230919012607179268006908937590680214918066851338009345345554597022095356661105510339580046095031690906926462524666638498068315186007584305125271513452866958314881827785199952525092878903254016802719792394144719953235715456127048632895726521658677694361821607383257326947758268965932263672966270717432787383416265172167443530506042679779758656306842410113511020364393826093630170429377557276279079885591622533513430394897987439983184572645953372124480637613598969484457074822120535526656350641753948225590418896570753264738280320190285798037844973804858133207506206631798334459219479550982214139886990039534883867234600938556856836343966953583175682586314724683902433788718317403140359946767186601967358195222130838014816528580292640681392258190841405292458917676305703537066971387126664409109633523826987405438043319403935539586195238904568372138184610229771169992286816580651166517563511533868803800955711500462673002927369325484262326900498633151748874579658764747626793041238415478522255985295098833713789364425619937993320114110685100989680060096900037299208417607972786143234741168385478712976043737291124014354317771407356446181772404862983068963649542212917797432705348410261648411192889684900235221176747244720502119351900471966585794546631374851951655828095992107246826500914805888868770152509611927522054730452002671426022123266176105227767552355450363451085049643149854039869150292110166488457364087599453999977883560026081851088380136714054119641404579015043263228633443842037773771676651875630551499840864694598668667210316802950994142992324367479363168892841747630211070626325864597038053521153712721354418135005876540452844055941343427270867522715636710440748570240656501954899877468986078711371825404563608778154152752672249169895117490530672223893890642305609949068171041921007785268411533061023423578428220231487074221808790592545477140251428512340179095917968273504348251254800095405502874293387576833249930602451035057345254753670555328755434903203354858437846502183678088729331662423034860315404964766189385508250528170054736011393285737959193774836067920816475555107232737026270280548718488572344227420696023273210247449302467965913612527239290891384049650511713160451748508041173994360204996591066933426010161424793498316204737489757994740812994958817006408770198375334482890976201680627340679731665134972604907930128206734801578086438359194903218440532208081845622152496029567758632042819006893947018748913550262038120117668066823597614331887074945639977891281900957945945030512900599736013139547513680566896141213104228518102725821278034644122217022232455169810292609120429186762572582203918166550629953970945873612574420239416660370134109617087332586171120782320745632726198959056829091290880460694752607947083999813332768748756334079155165215919890385853284647964122642819769415563822551734734583330223254116355031002450120566747191862790845774218017015941646028646952825601307672180564618468443316618829011489309191655012772856232455825621339302237472448946570813160284316068435109905492582957961854343294855890380834855353521081848829043304431040511247116638817498149488479442606165929892107084341634895327401169977382026846185350414227003117649829830824740009885871381936495042124429864212985894288401448779268380036276928061321380823396671888367923972301535761394630584447080275017769317252356382648300026056982012981536209207263824401716951425153303581201467909969637565173046008554484832457446824548391458854292578923041610960701100084499031016601291832172622663039371414835644282748011029548010029318744858019752892544906239532003840537598941785290123835012736711082727697969403567918269628622740082191913251665724649786850366992135513177495875898159592461748006663150862266807553313113067545016215414147657267081930980399432276718929301525539402795013096865271647835304839541821491646732735741350226964120898388801492053985406638813964841538700993776224566722821769241254600086771934005267617070468217920731278445331091618564807268757355609738922152902789469260790871027214795720024433985255459988912406229675042692023813632090822099649057845639545945923268922908521610254722271847781812046444251660284727645149022967031972314059446705058483165701252761694113314276957914032116041772502675525051765651493779367984486703750218925792694521207056098371836730121184289769656832165355603989554155992533253514199629916890714459473638020669613924484297394053996733312784929247954824617570310613378699450104642628889231669110983048514664718461294285198268176837680227430623268194841116676540179185442462768142664960323118291571860622042534937434633282418636223290214817682511841278505107169965562319805111561246389806976147230791024968793338637212564419680471626112069116526600199965687840301985000548939942492406212571884906961275267693932896245719626824105132567105420064953575519997807917664595077209872468301320500592110391973830705748220142995891045344143710597675053144085242584514508044562294637032788972157012752842094508750003152164094392683743744249958891191753194581016429164659426725513011747954554006915626143545281331708835589005923578438287263700367414191936169709669299407280306913438083123698213828997884729145346323675050740405554579211632584862805990563403831339516865839032983880217401901744205622247308144876197861686116571619811020351189923080789645166856434009256748641666544870553264921351564579204575041923006218661974887147291505661209525920955735879387743604180671847479776187999270821490172925376790812736251249543381726944379953022211173858052339077961840740975070008763934295108663293866196673592211418989654574955731713110438874709154835057406742773175978509173854952394808730040868236609990546930492623597839365489992320040760043619759389943400029069785223360033484680952698688180597258491761413701346270698594929482429005850854262930357789190225113032024600069026328416164264945981379036482479183199535090325767001013655184772622948980738172903660936648819035778090301256644010254740573705039307481329269244586436430322545384634327708659168511236526557420884536800900684781750439747243597280356248348445040117266184983109230650391545243536307063158784024128138992612557652129807313478060585425724955531139096589623262083104043471924964488262876062794697528605988900236289780139170533240342122975369904464413646314572696116866034723318462962209566643044317254210254744862978027095497012358624058249119394512134848198069041037153053163187227404290536107027873036421897152681897550219191396667599729697546828192147115188264786137172251935636163344475838207333849654281445529284588639319507191789909654664722216054976339963686526396251264162491654162240331475988307218172536348555170002546739815390847040695554718425197508244362855717111448270090129653604575155089817807956975763254764667990439333321029675143402038982668224904109094651384312425337727437769281377922564952660413971631464865686790002262129895763737989622175445350656586115920922887911237754752653266726418010231609320926331430318793408380643660725854711701048852454207606458157486824832241582137438615907387670531770622001671715310879587861159502348706366558012788983335072210078691170129014479005057572539657367785473676042528283594028435921522352209401979382384051298559911182337216827400943582894112435203033902112355525996577316061301664077261995505021727799016838720951372316081938658450359512172430300979987510117065756307148065862912437796637627543364180074353554023584187945406011015892888483934834910850755806217290612291687175404281534834323947623794069310604406491293166190323302042994616143463722711220336600169366613152381474260192964566320258985137806404894256470300222893110161394267081838837617420922880292717138378809584670142475526459902248457959410180940864862185461277786711002626659844568068364011174466368317756982225311901277159191430482521939963050727476739164462726911543761596795233815392162984365885187606496299668199587077611119329563939775315235840610259824336955115513872676391183335058134790536120553782273925347250723327607844830095568235582736057872338745471173908666817922115681219887028566844166707279500537478328325163973735876714260349989682662579717543460487729778506676560118215511204239820087550917757677301996491920394205465977662759980785249605880499756807209460520514401921926212438306004769240394955323072007902376717375820839215390618500355497482290967083669477623417714729150934250690600238401509796965068818385837482726047309820430993264240913033784443767686660935027393870818186505405366071701100576945488271956500413398974488942976500761149564888176229754148195085482175550461852253045197213497982454609340283662396545430217097470028772146414654775731929657920733063676330918855942225196396144737804913980015101501134051418132084108664599622792064644535725951539204962188860986810664217119861572817636744458030920299876387722383866231171727095930430131180280558570130366437385581320481244551565670720880729412630744250877188152249274275767896436226718583506031341422613781210987586521175379261017090233046426184735434709657128995739623265893149258857125515554088654081946922237177277417194968427114542685400844788261143288970339099807688427980596926956217818915469456940744060179227906583397594627829878391190555353202707379325771353135111619068777727266189097481365054737889546598786843132955623719052296964513411452441996848584940575003817381615230527416383583828722664012143181923132381315819739768799873035744216383479194801689422169399081817817678363234653367280088802997577140738618738375096791078476735995186179039608301343562736446097404362512586325664436071343445299866935540257095299469839883945400705123894930124801569644877594339130493823201708581672381210456668949505684807904769626040484226643163653110603587639118640124366753557092210999042853276571320488352960071517089749957110982093336958440181250029936561793465836968456410803658263978554412627322918975900298228971644932724213258845647660021363039727705671467064135233826941356570903290454915356692685924636590454037899092628952824213569582129376886951051543071527903923148165228296225484191076608859750385371001114016352037291962925650587376170929781926421856313760140895344142648832147994339670037534747608804914739119872194829659183178449775554747938238921270597639127700997570174193878239400042899094938591573561301752051725396755611813458086624196798819921710541601442397732404164410195100755804842284195762721441074352027137210012937026115833303697108167934812201374724289601377151072801185247353975549358734081969476286257240775388425913746978128951392598105026820514200979601211620829992918142009301685720561343033210898234679990618347665228838109973953444873904539135573129589266940407647475811146795741471077374454843341834108258543201686295062196175680064426178759773152092724412090275293167270029329170185460498841602419131674809085944028804180491437550720726759887813455254797858910855348475353585768852573346969229539220387055072013929906366243635636139131383526369299304785481098427376703357043347908198719150999230369701136682950851564094503156943664755578427124339074703442654768451717106242652727310668157147984620033495379355246792002291798783763074255715672958401244141863618926081806145136868508304957604775691636373755380557205937243371930631210703665273907380380721776162307999487778497965899705664238845629096150641489094454238273127051285106920504588001354205213237031399226855845374252200121408012432174961515428134158601784249961992601777046665207505151468950608396159791518513484598744742004194854279174257774478537202361347763177733405812194881177296735776837763082726472357204325514573799389074432826067790892764038634502353635998767070277349813798140574566437880634447222385251331873275324551408487758262241219533965683485664283492228396223228265584852910600721757402742784634173031709087706788310180488146723144742637346810239879627918949726131892453906222894823306791982942777183663495322861400526243787588218085283061124014189619330186471021298306691016052801894183828271257329994958148647361003938740460810043609008145146684251528252123403839035418021554892499972520670859674890897148122345877159430361566165460955890505045625031479235850623189145003803020703002111094713952328500599020173240532160143346369039215941748029202205201211007130480182642391675307854076478278108301279327459130374710923471941333724631678522635007393619938305572750695235279293619963979370585191597746862322764144977537735282141066165498673063773295589963211005638456941235864926780546085274008959263654198477608453479509131840451514418834366455890923935205466127391687503203330415822789991047985640277892857567532830483997689630391397561076643020488277195819305318575959651710151608577512613862185153393288182246978612239912918932131631873936439930551686275124427694134130685025664671978426602692208822384952015633947609171089636542036101030844007667628259453512557588382793774953201301042107926911001137617901630272254375599369125604858452535803060334369573823178186151905273494034959240058266566668422025797856751733729426253391937421133632539457103202299438552679987916519394988696989182129536486840318502662171241719531558124923119948397403305163600272226227605224904183992229285776481933247185937308013978077313476142633632653686280975188561693254847572212914832767325339151868439066834007001371892523728362371626961098946677285517485486560282242415883343402094942582217701059515395479644622116125506595295387432806478669611529416381969227062021159842577324927912263226849646458486577901456058218102163739489470186014465296857273414862358412424043563254198382597019027357381842677521785310001481581896692945163104824434242056128988912733786757999198322687435494107454977215995480191585647021513036545579585670086540811091239552898719520609413162482402486281504550575802127442282479543851168145990572695133762396965260717382911797855232685480896718938998489099454138847453558257463558680009787445970752335437309035373900746396441151954926271474474435487128102887662882689225904235396493837713786086774217881557442311708527805849622651602428908798965958263983908754693151322791558059724241028599172482309868431250314474561876862704147944476690128454509246248547770986522925685146486242546131398708004578392564615180547941570862532827691304553454848149001174229361380712525103079342998802169267481387112545130995111978677483429323746915687105284503538401195645679425015437852190282650653671384704844211518092396948879813882551636463747289373304855561255539556206084089744638593581385438211962283872480737047967251836287968969321444290986180136932704965961957660080300578345125075462944418635872639722478380442019138707066666215311852704456822740560308920168424456691572679067657600598224996811457494870731043974183819281121181982633312294622233210001119733454790146528907455185085801122864165856832204709591079435716877903964340667362847278846807754315132432033522969264699518220101246652363855768422835522601348681373622835873246704837063931357363170964311972465272657405311875009109042422864466965167470541406032980939738009647782324381124720237424502831946862759246143617012307288414654996366222856008387043049284418941078733732318452707457620616272875740486164370605781698710904713765410543564929261825792373080436977280439853411759370624200887329427589391861589410877385976513676873050330795516143607869716748724322124239073842996469288484161014966871863434707062811450493633994767177137476590522004246993212785760056058303675714440884533166227447307932467345500017205502069492734833011521484958587517250693413580024734654303059353349887370152368302122613339620726403138050385480833415541813241515598887299162472560575336569383275027878162062011214645178532113352183958749442763596601300863710876766964857119234207138692604811917058456614463731100240454169137155913278776760851317558632203660536278048893999851806408852690262080266877854483064445496518986013353140815490871184537474739758108501046407177668438683553873183316707799730055002957461148030618020833533405896451684947640649855379282326559229424972612454058462729672152896338314841345830737668483474600025900435020824958810896034441381709839702263474605249652144631365571344543812062226772306735278181965893501028302933717703629880660415989866111025101559650140276270162768207828023512730361303913327185697186580555562046723676041424081713528283719811260084095618650991596181512752167532574012442954449734680723555313298103494661730955359858403340772181048927658891762336568883416374735362198387342531864122775537003731470658390704082247302002891077369369904228495509404794337109129169477131218942858044284191023698473092884534055599956738543285417477973424465671296028276260345513968879991433599924798440624700357777701748205130253668730848214950922549605956998982408385912222270825966688627225911414767342175407632744229125410224001018516266807172807035890601015553213555925322076046291226997755762371570185942335730148580339482609794926110186409070200036637879316528023281914194603733490407462189601420893994967951701598186884014563819390915082560922206407255990622470679711936922822033533001049650848185226296168092084578992218402141003683937092132801277924489541965972300711433190536830098516065119699204871632904084106078306830020139303833948916913699054592627699677082290194997916161939620039919647300781517506879108414992771489415026361272438821024381817878014393366284679669968067647490510241898959335916405682926439485289728962841600328070209054392944406811619666894089790289652731436003611204558184204563793630893148863027943540990209493916704802571820769917246665080080786641559153611169463300247389013620828250002397239978429106555345094611647219072977944966615927482501839039058101770055008003205647549770782281873058985222795261019525086122004321355496490131443751700782697068684366350392228988903275126287137342289012643359783892552399523427596439823381503277434025147803516255087006740439130824658442710915163893275387417156747018510907634975185719754351048455217303409024618470073244871171320253823373943999558212395214539954735905581758150631160673276165371368655678882167069835483510121961078858732177975472203760729816835894294861275787236254012968314733189446552387053127269756017418160550871915258178379008115524952358811554071095670058648471450102846059530133838537398387849044714310924646076544550906393391320746013676619024861960988516622825486257925199347318670260573442342653347383014102196932645365136696666439562277784760224044856845016364946014520848924576930818319883900471633693915584431141645045201929669401669856956452832817210025494635185863443390479434438774948273711435512477077522947598228676478508974509266068303117877857215195943157096773761272522752885650156792692703402587823553072947963609469352434561868498868337135086921616866388572294834456202107321092064705459747831204144730251761197885106840728728727780510668981382180128843840124886141838045534834801965509733632297409046889495421521436548216302485189734213821094589224411050317292726113067471208700824693984969750578981626704958931417867345308570178857464756522954786623509107638018096893641769611554391189669665192214381847175688541149834406623299537079747289293699307751557383873982539871695001819920653313126703712220897577687268946419005239314013974379718860162629148486516287202886469684715310686397525014618285644109824983513554933885250606737608556342744126427132986606431249104832113583600888319318817294403715898820332847115209611134232462475416381788005179813946699473720971388172442036591651488297145764306672930123569762512736420015355962517357935848835023303290027768768241638669258277383343774943937251668783028850474989656376534266087924718580181286580302142489036505471684608406610280068110182021586607706454305602963427249764560523904683154364051704662868417017541349496055474252649155721726187043931996735269378828758914894587246606349919705838911695095399569956332161221917680935168312293000116619355696115872929264854563979902553009902267899988783318991715479030298435063558466310388953571334794548752062815720311868357048931063874480487318010017786700940508820027491205917140212508989811220945098259781729641185232873200667242993415901285521321037969249224050357663334731746497726889590040761541966360563051635793062452861719968215320180256618482430718940703881650870689344105310823015111797485996886152274943567558410459942834293567455771455585847262137834941888685969045165019913636755340859746202529329531986676289350446723977638922208347722949010470657639428830228714368087295126249217662597299119164126917878738517912294456165103487516059813994208480702735020603770662259077273980629524430710592472860799907641618343620633332506407472252832064736405061233117041923312089744140011988392919491935166045584131408558675741897205273295038813058940182501854607091542680470186701850144910115153825918594809912390769145812388271595090147945334868819222342753413335557216613671137775843877678775055139564950715075703268226268470537640787074582320410663859635789406068046066844511019458076673544509030148167837088170926466144691368593890542220866355617507835613517854393273626819413122665045937715154785773279952547403978406488668784094624532061722845525715965993921637713761853134734684181246382524967745384238280786409874961282502426836037610855616964794381560798057639990113334869088463775587365985354166250388975599708065395371100987140002919976881006129488765888622397100284344985740258967496760864066467452086413072950824381168446713266000052911544480199535020224953582164361031309179766969216170730152242524575790489694673828195839549767425051771569353396778380950063852550746791439492745162148319037467133917336110485095076014711244428925532772844056870377732934996144534340410984231967980624785898451058352297176069473682455625145387635376308808787157585915329518467837171888149874353112171236103304696766326689893309308406265018100084567078244553730494913063979394366577468935194763827288874667874272158056555129554495559586486436145539654455152285305378372569376356857374273832892662596856878103598078572766600916476422294596961460258766046529783560000350143756283543264236268919929110268108821835896352105083666225443114916535822034246913852710309228942562103262685199257808605095449592464675470860453515963086704223555544603211618734563350371958668954317842370345780144171603652312420361886599890778169895005651471952761995691558130977873808644524481475471459378823246703238443495298890764126408763311164416910639831990082191884530906612870081624349846536433477168706073217529297225029833967875532815344824794086857813680250933173469214103345480843607182139704730717119308713711787152282507200982836277507333000437403552108296016089550001272495586827660235943164450040549792827977280262454110239947307561996644838456281586621136598697912951313827470695546344161674276590810601656572689802853707284650696563217033247569214030323615084870505417741076159310573776071724252218936369300187371841892970177289561686157531180063353470220732440320873963492568529852989979591796124912712819390920090520896828895626930748454991887108072881873530338232912004284605249382782779498949286300609533465834817771656773859948029385409305720313443032311680427174928147842741273187668801937935978852251273183052218727571157461181072853854897993737109345389627699015921193305934521683328442144947971888481758714907207070815659110581228621732780231548589825695175192713935647784772815883136903860547376138997622373887851939029075538416605211139483892771652939790590141263604581403125723401687446952337335921378853430636556633446349203178872766259007450423212674951410543774680063843772506893925375241444475455281505839640696365565129636455589590084900778084574984506942881754972171597467374362838076877524612114205253103933127595228117093545057433781569760696108868806951393274923443726538033783098219300288702674363539905390216857045979326043560190139686501731895228103986347151696346857183195977968311244798763411345631713546902678325275226431880736958037353837454870656528496789961166779680621782355804133372983570922893177605208002435234032977483087714443369857506289958150234908853143321179344876879031169030734639426972077370653180772599201978494291424833056213068303936868193588465302548330789917363201723854614602429599132975006119864790385126764592063029127069844024833247512175508611400867054398507572378764376572674348744400196552872459258874666001825013867785130918548932486395116675533149114444116945209742423809954078507733167228176451463090966294903800108858985569762914557620681967715332711153677534184447621942703897401667023129563309084283810708865875326896597990207776459627317988220026261537689982960794904676800173050579377043308013259577087759862168390438293577769080203245265114106224504784119654714825392612471849904279045191505087281889916797853289007938325594998768296697548372679862583176289868371512433155222600942552641220656342653214552958613480656966364680992169959771951317642466824318730074113395736834797612439727599455992287983688489191327923596283836323721501150645238004068624962521691619380034443630215293126254391906298546922359851398191031708242958933236835672546416952619874487767493443542164548518422641913607195418630202939750922688025721253822972266754988399736402855813245253960453240864505630502234709538845770587180967736755751759757307674629559589417265410643095842145549560412596630243503804643659838764977432373708358830287268889694702261951136188317227551055846716675858807857148803301617063796568419027689477175879189846501575113647724910139538325816596757177336952572998751515887170734814088696249690047254995296645048051294965041591528943187241099494433051873583972804675213734108609340379507882504877826752945912471112720859380617337808156590282062580554064564702992110033751348887267742263272917932407157914729738474592922380582978851264211243060124292563888734253686353144973677708321176694133380763973327560841148035744017246019072596622506051136186574251120727165158499025836304200932757487428662549453708226527894621937388915664370990938032191045433815565447489894368931062697568970523247193437762838909903513758180825206009758228680092983150318165990508856220998559035126654620127270243725867711246118559953483134451167242089511608828244422584043458112569142453690097055071757247743232095920303859172107980275148832849284911991162775523843851258012326070758535279380305408848113210796846320978244885422053247195904961575834960300367639463764550215624908267768338199166993061890832128369638775710638832219607022219240595565842032904181303525451974737579262815014521788551579972835518628001694926167291664041155610739866522765745028592729913005471807298946572434986172363906031085588358065518517321307007215159919402384144038733004140330042637136149103700521075602028597560453551571906840124119260248561853047571249720947352340045636589190300685341137820588291709388756702161446064676343485466493870561792728494045344145887466660083549010537051276617474417759414362590601999934294348262901390855017252576101213529510576801658656548622821091196160828788475038060967932198980312659994667184381941495857634516605260460550628945955913775293175894022762057531067205829788119949883015011206205889919999418511270945722932351415337739805861829066078944870307220565731457943188177515989648860250504814837447252006685802688695299638146517156156795305337783641195820399420642967613442314210207213822115449089726842167454042948061370428002923392740447885897332288089903478159450620026873978195755332203731666260613916964160035589153301779640467453886400740676753295457960751399690720827008374405554326708030575569096304639345415511793312672751749278076978280026662670283264671286766381948707575835689393394948132419035375308696274414642979137807544726905750091272962620590709412763577850565320460724585837054164398599609556402280499299204000724224141292381690313024984222073810976873850783851051875727444016327532064238603262444250393185724119562684538195608631269731839465026042909377067849338008867038667752672129778667050595684032734914234528836732728259226560409576239577326240190960995698204670555990836357468094444748683412494804185939639485249815046345865481275245781305741327572147312990327093411478729152215549173622100401648422814628957564608297239623754771039558419578423728534267043811401754223771254705504922347372437525795940709874759674175781934838839106642516562262067246589973540363188558302222683648913621849468102684963908855514190245416130484959268753721461488401713272788076528375631172798025388742662684065760081179858101967431528290491786201752955519254520846835336424124674869898159818244211661782457711134908278496902879183010966104964767876300997646347182186605156440737075558846038031908726374061341987540749499441268980007524228233813884165831656834812012094608172020993957665676873300032394918130945140503376421421835616809170089808662713749560481712066112430782610669177980876769018971332508395507172553360482917414599469885061732624361486860800445799702615653987574586960186325104947388827325857874966637715970719252233262953473788048529267964718975234663931301546562024863354064077443258507703054584274451752090671970829172195532555172546887712721874687341159280909844887774465001566548957140068727018378416686231106290863691226402692238297565594228852647942099315913970215233969345275093473831735194500133401716403104555541329031344909501422593693438607623391393170825843953212688155806590186325649215356429043399673674291573936961822894930626357073285022291155323686955290629530644222604818950630818875907651843503643442535756970208753378709767152256622371296776882540692611563035808732028628031042762016603284837421665286847491009856187547703136104071714041406288387354019589937765416771785225351067989514101175235657527005550492981771420577155694120973667759997767005378734372925411656590680427467212137072749825509777186692764320089139617569114813565715187256661562828455538778521669061152660981658032807619693530603373148556872866307107084677639896809275368682010397962302777134943565347079989493638568796879436564406525050800678423102202702448734777548836002613797079481046574012959389507350347641589365811598207395922734635634752808714887115805004617384129711889595811810501924297254295358111633895078620871873807218251808607442916535598688944506178863989521366688228079629143370042053169022731787372943142785324684784472712612584239471031182458321950871203010627231750565590253454818915235359712321845650909152101776554983294002294297677077785524134659735511555888902875487993004260700077922233088108109325063732392614986409130988296353771308859037758669166432322116023163794981705446198109087841795041961594310272652880372599827967414592954999899246359675644286730883608838483929209527871870473815215143064463814071756671537960795708620689357991316084244071083932477237347990277480686165804176914214502371524198298168747302464733203220616736884662143967905108886947288770125203986782635503575832687201973573226816570566927010939978805661589333984789987603789356707644857445989666249099647938295255462569790303803924490271405068486399757913697281381993658728808414689860749422603525322423431064197196754727851588173419810096032898560520583136434846442073561227258111531919430285285671683464312854230206233291716889228922285374637005779270262605963109382170291868876649544680910952892834291614861521646091676645631680138616067832183727947856481146441848286416863734371767539745502902305497466245315911032477200137040480985617168931172443085284343713666109608924753340753443457908178847333255597953010856518316066933564837263516347124533627972592950906099687365535178876012734820855905945011074563455001940341617942282757872962167524931937157585592498447703764770964669996249974099808438278571703520873362543524908474769189808702846367670988564329484922176179043536566041575969178963422983990695737084805517151805475042574842790257268347137923532497902003745187286953396227918433020599007957339531790423411085890962967930547998781409797608534357296054986582660551542555210417193935025651141022433711578105818887323943013885344602595691502846367541621214081547421666850343353603179293097595646830128558185999389143949368381007462868762830613523735409658377048836918235312820622756681906070546619746586901396349463370233544777558175746587369943884212014236665676393642023926301957924848557432549145036685859919050051891021338723503532897679274195377567323159885762388768277109524030357343825642225306944696156892956838242785721907414481889202410768621978242219666798601211661165766587233208395262318142551435223090590629088135681425920526080123318945823769921959167804416581476994542564220356154817277104764151585430379627811460364058990560065813804111382209796488165710315215615670763107957972273627014415168382383152933578181405795478182129447146563975388562366380465214183455699344931736219102246992304068422254280820797287949709403896555964831972143989333162319276108092630435690122069567024639211176773401702458264739018068180704403013649012480557863250340478144758747115297069792301557194734710861746508261446831732690003847978416390984833854163647953391790739590786848758548393149333632023783898774244914207989138167342634604436823618579831381813512731340559659593516450179986407004208048844589622959500113226461135525401671180480412268741047241551347545593358409690238119191787778599932917661030255741099897745037127541751843146154090268721738755659203812033825198313929328002646811955140020146867321055849026973917691826408184820672617426429584030596719544643580544319498006423061390290922587321542830052912623465765748473899105573896550498940657010688898930937450241106547817755491071695927131693041166364920024393488061568988860915967096934371355501990213877756077500416104067965703969173496265987119948987022316469014468805481863146985906291442706430710361086134103153740455251614985609131084462943134749828925803428593788048340068338492674780254843363321449902268795624472441858992868427042601582694620768340925974747736710519064023561832725202325311238567479312737531513095027504293802701739216311013314500128214550498434419921385275844840108405134413241577377032419227709551898255831975741989934640063156034805170760177793806990948549045048336643146788559491108115555718463136659807969580980131649178908266460764773135203413668155052402065253503110482729537500230049350203327920611133181539868820547739404870752761676051100403362860622223900180771059945285851647310355324871744691600713310029153641739650140880851395917593458554763783150418548298460233922571436118703694534593745480799990844800316166017223482347667263831519762540022717482080814520302213833979020764573320551878350839627077136327801259088191315938050733059383256252358658293463902162869019240186349538805780887411149726735038685761865472527778977335221383440013827729056952344620963605246241853401078148405489809436198738769981478452136337558703422316877883720181622359420137070873207575237941666227737449828116597681229999274904420827067812907487713483802332307805454970773776006567907685176109479262333026687712920353526423844796581817014916458561643551394364437768864511829586622755644113260820197847839470718417444478217679950595924731125653428516120371881746295603609452031597894673193208973001482381433293193561660881922356122781431698044185740276859828479085862683284726429929454684628966705939996403944646926398030620974093217045298399685953309863630230983763854814258640574419660051428890776094480369120733921869934515532626886675479292897520684405902455259073336564715859150685379324494907682222057630096169531705279848139062115030323238995594614061568139695390703704463846737612380843101250200650013223301984070666305632108764686977600189286066024205766105398587676149123696668777875806367626700520009888775823763465933760057848107819398816534651168738579283197654577655458627110864997303725638472385364829666568220279810387153941385928936119816591898074093363131227765283995346931551391785153356873288102186528168380018072237602584655695701650206076626334473120815260180796596381004090423572137314915196915652149454451353534537323353294696955253116394453145036081631303826532862222772902505363309863440982837725144216342782655716409093719515772281090539454299538834316032856326934259667729561722794621951342231037529673296922396174672695230914760335037049907525511757693785280572830717925648563162327031293330999225130518920391851869156686209023485973579122962529699140591070317592103295952749319998431598312459869517988704552367694656507267972691504914742638455065813107847595902450177519342242582015881140856303790182511669068325990648813496740186093337673131467155005324630026100039706687639229836063078573750633646278430624638067581431892945065969747810829951986694682310316129274621464439260667125887509649170837042654575707341286496823926628569139893695493513245791250959949307261706948450959043660531378691242711080846240152813624589473295054539483051744894633554092524935190696009014231372912241653097598322659320360339570909285640269495577591013471775484078756650715452468526063170513161681267035671339344599806834728781467121571277284492777072264346247940206705897307595011230456564171797924509981964809299726731796691693063737229618668713389418160838514974698135989988044275491100772255489635760634031949121167557089689546173457341887471548899871581540553948197118684244858016717936088842467870150411268888657452726075961446690845692140575770991746838961551667701048513702306162560331591779679525444312181877890204129772025702533383068500623625493035377054027698228392038337617167210630145846131819969673267482020866507498902384038963850418070978993089840141487938868563508087075987686889692731881764535422196589530672129675679791971286310816222157557563990201033142498901352101849469179184230306683415663704808774224076588414410609378376661234660437888593024847591693394173891249629425879020277473033496131282416062638678675847226565253227950007986649500328651378513721806891740460542726910665803458432943288238531417890204985264883032029436280992607440415434004456391721508581608041197469289970078937406492535720830557883612226746973666845050006010170341816086505035428205266254433483094604095676414029604463499935944641885712684655017519060563235200583359362776491428749117152980259808054717546753020525774018742307763947606657106111681171903936996152869813379198275185281875670948572534730648747366888188458630204399053551237867283114120185377418922787847751166399549074397590136194203356652827064729842518144905154932755670391506302046029308914697791424622072805995695476754303780309231204798515814358532640401878299397893949854649773366355032773124719335228230737010010634458627929546182664812419147108745703426772171451238701477392361657330458502889906737462334065691935370172204398458989899830794115360209744624026037731396182836419475903398174698218438999526201816273400984187349440490139908692418836932476815577072889175497883740570592530599162917565085518147902173958255396247244343100815762523798913485434234580176206299014829656746433038374782084736147627940304860077672168940827663485049214124653288956263797541195916436409475737659940691900720818258573862261284473715918955191844954403436387826067237509863394680846445934641607876256889347510447475145699240128744717837003123568072736196293598942415204276743498475367234742526771205893278731231793624458082037402657530758268049174011195664834658950437692498395570969005481189779000751684427969518480629431993563957781764670934533204145574982605633890260061015597177774812277710736606735603825733747067170957369754865249199049729652219841124579672439351303062185194380151881278366371599646429969445917004464903597755637112522525156213557394834996541865229229850412988617141340921936173768252436869587575585485117474796974297028434841277982487903086546713454477544059745648525467757478957478790433529103369816036176547600144553876107228172742594417330740147188973681247099108466862953328786184405335919785566822523530598702254301676287609116704294119036315907724474995329389303993774917145266215699811524589539186494286706493339373317342423991296875609304196808246639037269228572400626197107653251228922164743724191085539688615630006397452638817694653895234392092715360897055357115699040676263431615498589514017789859822710575223254121929025595030213642575414357617264592464861746637130765003892424005027988109244400630259195127510853615243125277740335740217164992554139671590777208451872018565051356800498496439929035174769631457088840587621737249934746470880838427014749656272179428986993819626288282132204536671422434722779530652441436760075463860455458982568601585792824520370521213685664297353414542085558151275825322093637417276326735001903068085858043955751923099494713493320495541466098561278124894301039600176065369584851723720057657554569004876656186533155842923798611333919145431617371068583454425724446482246112870672980992041152032027513115988526857937257130537634335603599755048088930346539517406945101387114558930456391796578449714167764537842983322519732857667211079718863166058269314677149736769409211436411332772036478616953061976617950246976460797975572137236846358087191783932326301557019810450395774841390836186037798245876203034787237977582291861412251383025811124431713290488192914140130434933534366188122073919070213844894534504629612218089677756426379560420930450844670247022211162524291999770389973197323279918313861099811627413829170981666001320408354747809301630565059900579514653454832638696583303931190244149044009712187618381293366195047644031488542002938610776295643906061821105776260702487431138281631667885859786560113689557396929742991849619706244868294921879567761689800756348673808591202113445602539547955178513010690561641944436323011235947905175222406164892830025765392678589808430861289540102804047228406812955238936522379980099208548478445065336949184496617549751183787645332146700083745469624892047239853229466716189051542680206015028389240023950725396992286666553271846723503691446442525108296674216718145071988809521409837982955305099244282754985391102293388519331908863757998392263421204814012410425958566915940332117208351924376502254931459754556892133664231119495487657132078375108793971680758013964311970097546799298571137052315525090121236939227721327936241315074237428716984939993915386592194385882680232651786043507594362786378180126924714029782610049381770816098499395398187243486767265384702742907245704567121812192918694143963916886904912391064027599312185247186121365249224165968738580243920210905682644737488267862021825124954003876262225793435538537697691775759481417158692079968728071028848748774973022730939160930509844933815892039412920005272456410575384005208293333242703760596485242678944261448611448591791106242020555278842432077177887470821761852646948314671750367510793641114711733100874735900672346663384962673534589295609844718558520486707068024090818356751723054742799399249631255302013097229978881747985521887484791791136801477112342631711599378132125323113368460421446673612675077560543965303207244034567105412930840468694067653396618425295591852379649517467874446988751560347495008933048551772425059886265105145733649746741043188360261901025408772906469805385644007079281179973239282183160853780525321750326990600990407316228239106831823108523186476069359123204773216531824879610670832848398948604873975386145550192779802275340584149837944515960030111853820303805911916697591896763774408855007886485765275888379097058321614011109946899711219163328701219591551847790045893530478864921414378689252471884383288701472138564353038503872669360389497848361567379536158894885932738840859929935024334505763951822460477758658195692006486942168105100534251135532322102609948482575307144272221946591037987497734171028452672089760661086872950418783635168232178617175140610506575088424511979131453376613300273509288238889271873621720874974142602876503902265922404563622524175807489727579150086883644350509750868408030137107734432065423416163893196599461726383224329065836378798067435482354383366760040253195171992421023616746358603158404783191908921623583709857726364852743215681071201758309772435322784061592660201900003229832418283863647095345464080671099761214116756781913558386352146480745382785198713759082984461520430194325285704693912517897897444902333691312342325474917457941573101309398982988466073740312718760014292207620842902377089880144056047157697189024149518539186055911929037416666373403098160211162598787028290041400855533676381152560384324959502717397882025110708180898010730893224899226879645948924887378637787134305991308469538954195033029252265446585110676171032887511633707717339656222820685480333248737599763253885986540642385637137577162851596091536856866990072454790744182538081510262961589559942534382942834637431716819542668901267407601434067382003971390183350820915229986443668134800225506087833811036830706585478366231772912713605947829583135302291204144238880620475803647095348816836132932261555444012775630927593555512966659534346894381303342211946628486449002934060269385138215650962425936076518630288147453682274731081095309678259533224803998675182139978126441176151205253210390692968907353321396667278671229195315339480670921276547583934331408908050539928996283701079825105340057599890657185912466862043478361785716774680522362373813967788302445234829393324339255523593464862465162769354855395564332659452831067626946360254749874599418668228444242094733012803748121399661654550471426829840203331552307992180836076770268634901891807257942896553444558240070974791543727666458358287886305592120457106155185053043915598620678880920537056796533041341173919416877022699658223226563054398888643384824606718241829004372475914879010559818505222465056645723007111219256274410697509620125335169424280480877424608670716058761236837354320289421448429801184993129893286581340118879085925484494463985097892883968778337605542459750396874326399301263138638976310340820076939383154505396442725959955892105114699356226893390225272169736638326413863918934670315459353524117313021116766949322193286425660367514535455843855044062703493364754446186568938468699694867871674190216895013284094521410376243556570802241346743179877815571053912699575150208599129355128617392485121419411030668846073975933770163218822951502368455873446370191703193459708981781983600016666758661346614846322298761323097571715543244736922285763521149005760994739782265426884740004991464092666680458485433765414604211624111336408985229007678842880334874057979274624951732364494529564874905042418405888991063153801990983336617143124151234495462563686915894358495314829361474246970300835759349840287096805489586154116366223008151572706585162439641039044162764263838977035349282411755709278422493385483446257942698453218083479976214952701601589677534791163247005443495916595813384132910989160276414756305636277373955665449023180732211013881340569948527646110999209837752007952451418875705298268488331311121457829474140571992809228362468527359086158260234156248489848052212928150642525158519518198614170714383682613649013713384253148181690667249986256901173417790354721152249813589266653584368888738766636823785748424664544008050320011214672487878426444789456374715315804519444884978543944138048374505714567802097044242343088898718457966210048917892309090757196834739061717833605615354686177563806942211748116616537611695668292171986531335545756118413817866768168083950683958215208460831454350702310470958372215814484327148113513872559658001108868822845830504949244682910032418737188946250268257518479782222121808014498585370359397034910202691376689004414600361195841921595938122356430549836107164080180695793734727389509879230288726626610282803219512564889817746556586517543333888337099471034027431446349645546837186263609405045871110586335551219573750639998304301448630139897002854490106466383923814830578412110954147128762970548140044278757318810772557898101360755874822586445129837142929875748682059249441433400072317733116872829661729857901671389964014794007275098140872317713110634796354841248923435982759228104566645153641190400778797927060013582616168123743984979743210811949097358035156330591475404056083117780066194275037103677234981783341617445958371146168566812576498179513546412903746277988336975659619745552430671458046019524597426741744854875136682874895778317453482136992633245770121909344323867722553996490994917136281863220293657352435038517933279105313947096989267435554708770633011230896438148304165053799981797969848930363639737070001151263050345371823858801389165776359444684031462846496736616010850356984670911676060082111194101451953448214489112400934813545833205986289707080747908559316447979867799266727902481888004711108766342073849761234380849767245478835829630316600959105069567004196672912319193528785793055215117149354529851265052273901058850701180533630232276199353330905569775455395968200147697932475109284075870154386548719866511885022188068534047421978353919718448633499744662404275645869952201902957118098544686657506649276595514545434211729357013270957728064494910430620446365239624574637529434039743079127837822796504678234522197105872140246476142307301272481407741712472665971102276945920104179588254698699505468663453851072388820139904454465224805338687438762006973182833129970677837327952871043372773673341889789062956585912599968768081254388050528904155590323686599398571125225226540061995062697408486949070745433835711407494717279250230805992547635135639799571227177785656835342992535877348062029462328704070946213559176224123195531543258415939672128503020375439254427685988622082645182294680945558754412098429660316907905515846536802402822770621836421098556049293089161078356727506395886198034798828811073455346952983316204045034281971242838225840700280181476156543731803064332141365515761932472635323364373378279828866620155707156830632817191154043734474945749099194734075250782192056944260647336339880571115731252683551628637261234994893063020820940897155002561810738829387904080499279330186348066368213487425629596567764118525509553931199069421368195106307248949994336337632692724421313792124058171757938999344816820570394192008672320856217380455761874801893069967599563783291156787383498861589521094373215115948171925915786670583779932252122609166863130542225902913241751354796675815620471942957249097001042523856708320270326597294380182531995574358831642004889281152797978796076969727998289290050939209944144915253644757812066947953419901653420979569840422284055116259122002266873637802829105938195301679567082071152486894794666812289830722041973334814819603079883443282771638594318218694334379425158236901719067564238402300473698807743673089192125532841825216282193001084861210316054348673320340338166296951958898170972356144798592073398203283500042284171485584387966479272693426014907168613142486325965106697311863598104773866718150120486936711164853828535710263349406606084308315893098222408565144336715316956391505512567539883800083253147462959504516424260875964730597362908933756482624933152384153303457615296193522217064499899793360660500017367210447584635232853598016200842654730382369584969671598967701210232460647047729130071353884540686080914124996411083487449987478169222121295484450553275827241448992008353294051596818189906026178336035024900208487139269421832825967583314591464802371720844860062160076223123470655019612106951883345736339172083389447788197628691228019363723124985268918167065767982110033958925400702243115843367992132598667291736500624407151465663567651760515511189265171800724629425640672666929658441888528521226524288121561755738088668576843915862262598469964338781817515496881054335184106993016828797313762946476038797359668520370047479489560712396579875651647866179287959333631364639632310781556649897206465217527709319725472950809800449908054752251951227815976499783296728536928793226020191987739561734882029365746022950865246780913501360322283927756928703220032396292474678309688917888291010729806579471572182069172109062755042725552312473332385441019864041056711014424484846451127234443823515578593480797019816590931330805627258215309092126419141418777180480221714301803154918986240090061451144604755428987501072255423936233897775685089457828102395932808749141917797149469713489538737269704255461193516637243510927837982903749888071602733659978755751597682044764956709468014597530272410008948259056850560103330630085657565436921258410374144510738741726783580198777718082499885536872406877881658680429108191314747310640135207393437881911369355090919973161076706023406264126008583106077110289387733114278145635725826978951326280777391228344319156694765976472457214736606374187732848158903118211766608769907268348181319219973191573726918619274783383737283351743799984904339477789231839516375756689958166202543520150103846106465619998367688462951548420822434668320010932596605184195285662697734092109897457954465572060115468512048127831751432690753291337002209617686542288264032551128792385565834061522107641526176009785182628082739848149050434519730792711680259262126534789639380672199141450349449295816616337571112992248887227646695001346900181707233329359562639302738296738522036530351618730032446308515355861285633138938588241136545293146795085555318059507056985081038121016061650466612934873512815402028246577993107388308046734367880626203140398927828812710053629502187556583703833312302961196059220247649632211356362689835562370525128975715148845906752006954574910214056917651769187857372021779612086422502743421691367081781446074506752618223828842533568829950516788299376073993329836295470187381294772452981116514928316257437355593198988732797732068986744705515938013202234758365352597723477746752515988164206223216893342641762569607062325775545088886829564243894885311298976189966856072334380897068861413799037463466271800140976705171371917005061360441402619546630490648668012193625787022936841303489221159275160273551881495960159374188438029989295271258457502512210694149802738868498311422243569308881712873584600048888841438961426619866752370825608042402625092167032612116780940967961325490396566889796326676796235355868024467215902830484239446800295960978091180472600264698412852757314343653958913242488587122084712793355558156393486877911075524826441842866106430210403944654995019140098806387634141945824198727139169082226016826128764096753247222420638448130518939431380327737220729997132047804220341610105691316047166960483108559642933529483572430420619172859561461418835492703743083987372755521511040660318217248923999935476855640101630526511765061092842654097550543843464505178118045031577651274874323774506457563731941269587570710097598771243543740829084558393842340560695034455058731647342412399940423154231525562307724435092503440910968425973813661425624949043629058543114424666731533573023909613149134348314964869605406919614379818315477386040361551669528451158567234388276695609747265786078944573521038893463237303532919058255185525433009214711850221006383164604001559164352370992419251173586464954223524102742591113065702428910800818924804447611722063896134954159642380031394529891721982851144809496168547303370549337762364287326682710213137240225017345342111897619780333430227809726869629143000096786912819152695468807653610207063275202043652837378189906340749929114792850310211934858630261276823721508091270290269730583590922042002767964422676216851426341976501271977827931836778102464697406809734515726172980050371963117140670101771379860894680801374263681686289936187143080651723100720769317993452487818124678318796587027253507509802614309302829407461546934941549195776429288301245616125056788220204208044438441848241770293233527285093823206356101421162517662963948762172261443218611652095733657760586726890857009763394081256564308870634288788904998142269148105513230475099716222139869901355614289581422009797749202605221145073444536504148796881566922873411218222574922738103126458787830207211523750623283141451324637850629414313542059050966100757588558664808254685942977454024569390220147836059870366909241052686564835304520394127552119826647498760029070895838668786376955391240883905173292604231386172201839165397554402906654241361299958674661860400109656195176433971501236295073346681005783931143966445160652551829749759489868315948972818582211339895118912588553286310581287333186939888171409634954399238907699680945997867071240147592862934356249235679668262313926219420256040768897635573681619098672247470897457953597272175629119732558046676718308490993599073908601739751387954577531709379237100369131943339915841282749076352007644735895342920321598933840314476094584238641708364172616129668276292538611360214103069526256254298880466218040519895223491746742026892143623712118468616733813842653075464455121721119956842641324401784345269451930912491061630346303727645570264368766643442445248456489042812417929466147658297622170813160924353287835532124978591279739618920359204456586617981988504612058905252678252231233032221186153416295821523202729066370545988360304816274993187400502602453548064813274775411152477737253490671035645446446464059711077453961931065659074277550203261836606206019272215729392972737579477462530660426251740788168728944080682915699127200189564364762732645587046910397988748859450474923319986017301856718033660205697516301538692059053995851220503357466336514563869722401385083456432626591327683956397820916253398842604931611773236970989721312609987019605508755614776047182151899908233339879329422823757135833501270980684006770698233586392481730755945157833164277075290371753292380472260665832065791176774231118004679234198482218182120986922806497451815568859736063249351800415506362083600451768203205493851305356289508298927331759571133566924599960187317884758550006864507571178530645939254931383757444377743775450227822418097090411945653689317049621421512906888969794962802227688839653167980227005770711426189006104326261742251548506069055396571741296895673292483885287965691457492109303165906603047781846840874022482032599433834537406308685126598864815436290619373859445873071965989798023539790048537652094501096822442924585553481326528284313335758344730225500738920882563281219166348686678328821761722179909902879794769181819421306423498510414004844168140109033162382243477054141990533323626022304161991059821258487212686617215020619292887739090159112407358523881539119843309376360880245437981685361547953266385472081913905740570040613510122900977363004114970067863332906499426517304634544735379501080849051014194857699604258769909387523172333465733843085820667900419466457625374443929567674631413307294013709166860344458587814821591122665980176696103084504695280380827909558357571890109021103558548482269821008982759711717371909381982892540516173899888993195401637223392278264610636216343983363608628520067724197934510843956272672719703909166353272291488202277916806561365574567124342750220558626076900864108166283420269804095872035496600494731942305388339799770898170338534169734251932993670014421314080920555399492443455382541344213732250543513473594399340084976892926276746535333855040699860295677022416654339967031420817759729633762867290517819228941165119099218617181692695769903412324300925390915720839949841799183788423511437274270616882220619001882258331965485888086487445289680640423673461357840294061349828051500258969213597777692232480400693746199580026168546371568326541901536730969840668938170752710884662522482637479409675059287085931538341055667489809660724498204614725819315009294598390345145174720228788944016028854054420793420787621627630965057461865576088711035604892480661150163488805616468577646308047275516440867494856459256269522811567774975382666336181124884856979594295941190475239633925141154878615515621297999500665344259274265456522545908916679755551845371913248666546815722280917294604635560339471925517671313293225673977599715718208234067604122912581760824350385659055022089506989401030030586162474983594588664440078298232051670239490910412064763190498802857302794794321085709988658974534128933871116865551703122175920798602766171408387873191836387434237927140636414848227501732175179895835519896353096323729835437422375520511195073314627797171774007038861899661861241336350507776768025275236608218611976274756698619202500137160331806042156867328180294549910972523873899036824707007160158879965061605952161631521358300948099899849831339152492000347342888236725543559839876121806666302062488725910633219279919029980813834268059749219803879490145908967415009868920920191133713002850427569032990614234557024472596487291761989826993388479445041081052753129288402912161875670686054247400717529557525242776487735858565665186345145672824539735222096328068904014800951089314018310286230672609475333511718593973466067778322158812777359257447274106848354575510864597449470424721395803062826402811278299293724204988657749523345479851616540216649364852770903567082888604128114080632579808777349532725633866056049299762707826733251954136990748756613728444734830757979671053135298560540049637590033255887970785358810550810417235713546118325783757041873686934020240073834820519170003942959163582830094041957252810291557919230384473570818072455120676371222299469727468371582283697526478775156590572096103413190632273902447470731089702135076270617189850205812670976643592576062830957062500530105623004310139823257865799931691944767423601399061188989798246284319794160879493247192230680681335426694526922820294881383472255678931082134059048574470718616337917001489894833932940283561395310460081909361332584209740197008359348301396680558482970448365629122353013317636604745221152280748716690242933281843307446275186413777571834402301005136733284498185772410697463903927202794675561747715460325198471095107067748717027931221393570824565293420867831238126365499755752441336155427110651485038713165000219213267678024301737455912642401479006800501875670232069884202892203512939186931818773667274606334287189374732030875201526094037726616537447205720767652972321927436937658821367688329110325166719157642935688243460038587767361537867799554942181600569374681754108411440495363948905233676791100809315005733465767537203869021418989831943339128768349129486637630131763167797300860402063594565705535491150933417250965212407467516168297158944728421991560351728975847806319456757874024413554027904431397077155162389738226119642118046834712325745231831234626235946714476278197131304240337745164851078351656270174671815357873290325048955942340548926236231722749501022054484921214426248559312574308681098558095955725027181940586378141470073864973368017167167897540531639295543999688698511724667095301910135984348509656719889207805085525453776891388691404342791715002772398195591145970302793294877058700653027575992967613218721184541805919571702515858869661687172490330846213213692365522984210218778728257657431332703684962888350606667618152665855359923952530369989404747219021621632522073473033358859169171940161337685376218115612855275820336420453483314830688573638296537844104394735137278408603823703574296695808798926988740263186114461588101961615295246996261029119402657938423458297253526542667805149271326730895735193706645734606587549178193028461811723220846366858039909538565809907882271054291089678199951233986701702133436904642854144563479346428265033079104328844739117048789817018827832198970310343320185521422786145976881605617499291793770969858314141122111308807621849851189681211423114178143879928873233173974663408388156819799218527713050663616463448011103916650721382838103485923370863265883953259821507796111265649175731295265478055385972683881688070944024674218820418189924786889548472474171544958681853231866813111811666203428426454650919985428985200491564412155474626651512343239854150734723364958157992056730290383225074144633583004446726331136807872804999787926315014047524694094579190386894526442108052170071003560272604109201173642148284708615727307607449762335751478128925790234708197304482944960567438322621091916015226775239576732005991978645865504660292937171776121693207884667603037104282776228343837587397651257543856997238466009814971032337846290942776639076775702143343185840059243742054740436630654422535068501101695421333416012784770609624812246158184356331564227877237540608375380921241130127859948421787546370503044633120066842120654855944077498741897070524646834292605301923559275189926857389568845778347524424690908786809596822022390386018364878890615127498129604785295187930362635040626602734474552568463218735725193709350620727436436917911422674587865140419285405939029451199280343095562528730633741752998648125626005434238106260007402055058930981316219013244503200006753871246743826520120943439836124872785064116526305247198387210121992371290000116474472717434301934492771849140006806291526081674175549339996408360422804599549591314599041215516365391058844511655531577673050364049388135441553392789813860176474056211578666214569886027275283031042535243768737889623594915390889388822768046858755492526107244272044733983914698369300005706255767412462173173909574609632843968040740964812968643553808969480039032873629341939137343237583565938206674874869278062241754178299494238549642340837698318104440356654929054648975321951304327096295470867908595250811015046707214565842664356936724680054362559099734472626378121221908743300062850362897025504236881620695781160906787033584650690110583760784819605209729822366522549725567702249317930716040450853862585829855155787344914188166799660747446350117494967087874046459349603760475601911409897770472152224989708960514628251356322670038599866050902887845490300296595761250273121421498075756108401273971444079378269842259224920015839806165556969991769575035324368605693092981459832165286818594801339841736192904786989296587695575741241675055305305054262020204744221828364952275794579697686168141346760962566904415638033201622745301989539921533050515861684353152555029044637162414787649913838805194844804469431043682757752711963040488586707817297069862843130395275806894054095679851136093556636881154715400277514404910431449396459471847440358604960272159216156223230638097778117949183296097232294582414560260763093318700147671908181165382340989010539426827745025600593732369993366949912606539512002747122165964572875743169876352594439047736654104572311584157238052601225919682566002284839480136446995288206278965727398003757273658674279318192764200665345330841593188548462858853182078286096873416660332392822541009692278812701683408819506284934934101624124652436568588069783139971070930860541464912382530521380667679434517106293967070680061747935738255631047449933650772949090818842203325357794199685713728967238371513792508468029090959475091779640935911731242351910271267734666712180211107425932629935393873737751334055561184001820512500119608316003505997360326140195264287602992571719698821738306314428390374841924818928966336684997869689874264072200906788316521928001144973498146375019090165005097929630723249937820620461834334697958706841314143781361743927018283202407430884339156511933554891282274555005851605058637038790583547330301342573713364746666077756828814491938782944471804954251029479321044564040384840325899485907853912637878987990607698781191481292453869795212201084469910346708828637286685202278529484961005457272597941367763646790595791379253955031035516892934329913601010230816396865787433344242967448413538831690097106544573408975982615023288853736092595405739558254945112776672563731177542947469402812005190930089525765132503120300037840734262079000108040300273252323812024877512659023351939101321513168194806861817302719389910218123110123807556586629463079541216526470188698048622290514094233815493167994493617126237431472147341267615143122533779860234434065749915022828631214342516376545892891618386658064446516003812503315776401184968961194920155838481535268475411478057518335302871886820151108017785264482916286283789860974598376995129467996840324719736424141653229721742120854465305127429897490773797341321253090297440319100569374950032344545081807752611987596751209100614605304806850503473717434396372295121969215382834406295543885203942498500283087081017889802776103119279977846144200894084597267166519369966862561073764816814778915529428814285554094620589580395579087859053747343189115224667464076959068767671552699176796451619987067057703731104521398509738012460931946539146862978005082520236211408028919045699555696053718764336328022685598787963778841177690220877503188549095089254617037636746619267322165335980651499372199795237520296381650136976042971293772649798348107688757895757754251751500522605174198611079944293255855506611447968552527808083095014066171800563642137261262838726037082516050328315255813992403889211307036684872832221431165534341355216743086839016014939974773485999052682659439695944738544432168123429086432222866761469073816404283497397750522911730740127586673464394323855398801595274365907284053001038197182634372383945623258413085754217670507908840338826424661580455752870584607563996237124045916954720658300986008539707605280447760488584979279703707254821289721044539704800205775026920093339926320810745488259282337039786338280146471139839302701734133474974260373176616187606259364865307310760015055066279612052781394980948976754983642804664608730717541927719244298352225828991563443767841656753201310984929839703595749733576430363497116972859206256623934552525060757842739107024344971760418327725734810720966967270288454953803671374446235633769573164742236428705419327541805787549766092407901757311275635164970825673554850342054797999674906105535266907015410295784662188807294750909746778622022721860524644773850031589416897267526657555560267574400065446722652685157904063758028359176040044521405388155224772908406317965519361580800103016555597374605008972330911909519830100250601451431801812784384563075044258380118073484694801452872296452999463856483155571593354117728718112438917128686923650255731698020320610434077951523489052165223824921140008666829879597667184579690108095182778704917482775064051800852296547302879025211828760719851800485371354565035551652359862679214892802916679155199531517663352111615892824695706817121651194340113383023531757868996814683610821788050086166289812921497087283079392571418848011711272331020033735536250269320117250455084511755771680733546600134553395141897931868531263306946458564769214589298137724386178948855870816289564779878850701844608759080913312652935219526430377344684014409456611774357213755133961673030353429722476773777295447858274352120823377527720425518675729884565479083264158844547732449168517015507063551712642643919160271533455358469749888304037935016988625918614559146144240067295817566996323507649509889094187318994285061698071025648297798403059007394733289875536068155531562415559856244636370694539580785672988967308082345330191714614346243821030614989906836577439138337557904422134170606778978079293661882352271941474548726534209607606083081549309796966759732292319178996131414637665386485572171376440079162660430107268274817570683636577694525424860427989060634729798847727610063006172495633133852327630100512383946787010103963164308899479914779236680226011452131412983666445016467384297707979346228849662125895687535030030687046947857945785154935572134892253242032557449024569330441714838151286112687053277067794971520788889263161883959551245391009548809538350056796104005077531567852172971761412589870103494550266336686447422304517606553161380288953055776517622896698099346893437080976319469629966584751533504497784404871538832542541677844565278100328467318529545373480311021388002785496816833375181270024900539000075514177729075148068638109267304369506905431762058411931928390679646741587944366780317477590067628244903762853000431524725337433163565780638028932659110747362241043089781516742950916427270189552663610690391987121708617484475809378003246829393311992622389336860471611078643439211112185567981074794271087323635644970718318228103299036455615881687466625315259747721460943986647669611948964007253421090526076961503643995246228885466786257572936089967011285151347280607114928060997309156022886959927409700086059855793112864316704351297679943707991829019857265789089459220750359261795541540533925060370134832668893409244943984327698803778734049450231313167691488931061150005203271041783776334533928111358039586651861948890072060989435121880065933888254858082043482635740404961932060270858213991967975264173146637746401094791968899185014107778849914901360367820854027904674278280820518768454312813283168962745545017233604861039716944070551194874005519014057692200953514876013815522384605084393003975676046952836049505177154938324872519621902067435272634456369458749802366670557556317092157605362846855702007639721937682162374918980587863452135683179510667976805806129553018905342210811629750733654417758550901283947689322893427294994722913469307149993686735480247780310008089485596144263724159307394357850691117898798669389927177455766516464518766318734404344567853201669328418607144246090218904168127430241920215363825332651328731464925692644016941139687974354136856714163267209269539221113814681775583824910724818625926656318820214262278698091369523498090653306808937142543725325728297682157700218263641485380429540510698242576416577609330902797997662350576630301466516750208987061236125245439373862359077399196174353713581430832501277425132867420315078318355025763070841342674314095144443745053273061115216679366919792486967813003764451605746076568854553049339367268508982352459485095587000493740645691884725438595102417431172545002968730026528350885700296584500504653403710211603785065056599451001604644769792823357911223099923752398691435117447212776837522868363630743272444653877230657710765851691464343964177677795349686603683146127852060924265760081468927009538441078585039780668037574240612858443223284182567555282337904824390013494827402317377251401280652864730069966851061649465904631882207695597214843547167822793948636848346234549359853004878292287157689036804220989347656583374748839171392157893911646264027451934819956086267345408938291969169105209029859006924290166684375383278320114786292034749354576598276463251865363871250099777331865208072838176169329694395190692387462023975245529853048376540615842051785769140458084162276343496708952553846125133486834736115442616163758332645534107830173465860061542249012931936449379846181402252638716649797633236994897895101297640980745232810703624464917162822234832728158858945784186015210937994699371563076975006765221109834884912487500790814259628360868811738124805160004713227076661102920192067048917349701378267413813616905735075236356301536340866578838514888408204225290752227402389811959521265935664833556440089922679028859380993273404004157783415856595689687762710562465117555426514974046280018489906498769958144681920518256648907608907481748742576358205715504671366309040848333434162233847574749323645835370938357991100022812096254949205595769035814716621020218292417097489819610433785142232797359326278653523575547005904648809505429559887058622829954038054176934519972734981046397546499531123977846173510117242535880102514384303240408443692220563998899097358962720971776316049093815516022687754754186355169391276202897571865935784621868847045425230337585272003957417108592515270101520517179442179389210401541419113557652145939461053710888604262309558926651596966826420498075076543443354981791813738461395086761991429493852963158059423537828219506792239885868504052368041158990669979000215488278919822116010060646263793992294168905529163487847930557128519144976336187509257131126081380374918859475313421425556555900223596877515175209222788846434499193442020752738466840972009398240257665764917984908906934876403871619263935450385370713898001930447102694246897512470255196480257016337704668755520964156446377401197762437540179634987555542047463314952633830238693620957122856846425881856597361713268308068070168044891374972434426593586516234610972169195654347761863674695929100320407680224783793196715342521451016401320922354923865393577884367083331248403148165113929343900256285902977632179421527817183306687543340312191906065497772158889024651871426756710774666478653641965723559249924155867712047438119980143296525438908104429196406129592824045870813552497059429235333039981715678343383345326848032819270524530954449665315278897580619922945209989974249306190835877607275418868630525405156729452169588782643668550367998043379046172890827322166850815803296185689429987668604431652840385689038515472364905343771965385648769163402639898979723132368224569627390826843209976963140531918129990064801518082575913496322687368589665325753896897297935686344929458867978619447287639992905854252439109185646504789459773104823416542348389322378677963857967261992926576155323579966225122013313304520298567645439831253258948219568049784334238057094957946204191944907883122338523404546069586891711156372712982527809942479961405426867384205546897181809180428464465888469907072439702471729089994855877653525658757600654740572978268000239019921594187266165132792598722194849170209453757068920579336921627758985029194566501182874697197011775687553913961944512549217182980314966480150762316945012278979331539156997981344649250062421076554145050792481207696652569060599573127542600287706993050061604516585198832367069213690756592306894422325359490269707212405063431046910829171659311887991509823928856882388572192104696322827305352466004734916843033325413741867522198789975551222648757922774714628460992199478006566578531261930165328551491986935715061491042557816431720103226986398192768994730919932697138611240259616635170193970780966251940117074548073547270925012844013223791409653152867157507242413223001261823413339881723722939635836472351125004621070962547441128367012034965905511901887175393820741053982476446687959188342765428198519543549686855862387534033872343986885715499342638958948492556365119255971082045044063356318199027970686544815231004235340317643142443293530874887224536305299069827859047863238464271937501190276259108221774638894633232860975279260526522278443651524030963282114332289383896358407681500036611234348055195281634968589342129469404499497468096221568504048769462571185899979621332367468862730567084706585296511550712184770067220538572846469742525381478350541873970255535546029015017516207715663277626322286057493345738089797153682810300278580556813329080986274560095920247675263285520938912209084339834927066493706637601322642207251142122067509925071664042715704370688370258384510596359515481426133130463786646418558493325972193841650945093603351529893329036263815902452243761755368757761566667680437779319654221527422323484003896351194644875432488342046107569224980580213645215835742370722223799511692876957301841156661353212662118609978075500204193897566030198254320892657973511215835152049032502526104759534586297900422929907818876605899196858641323296881579199984657125180720187098498771235009766675566803953016955262058272237811930919294872846926998221911799549572282044310950335939808256890411543713188041353829898039485874587442384263919722535962881043076939728541187172112905672157536211859965674323406979307405040560295424712582398047036740754899738734347206966302495216205419364186217994409453480411091439983957792409620514893724770725291232980170107917584876856396475455140728604192593437754817023731458185913663691745994750734428856688312824576536695047450714147283670342512828322843251935546804810005033711540795884699987622482828821692878561517829274814048841245028528174133612805075796292501783675055246830861525057347486860816115857738784522308751976827346858312822251916124243846974061229148856194603304323228575794372107662691508140468859594179076117786352095883808382736922508352069750170518844212103438124727510696956907739532725372880419368363535909434220693116356118014933078151136192482335433051503392750739205955338641079896083474710724780889094024503698779893847724849025606103266502337535951820964947704903081536836084239988342417285150667802295118815263006521322963477238516437246015867272035874578098283873445425472728075396345827783449192754378310306931395254287009656508026853219132234213676777816116183217047067108219214870288314130005781634453083293001337860464034526034077511097888603494291173143404948984331241068227403382338758534564590284601181402416422867577353328993615345505285207821445125185254207591608202826359633812729503207666855147553939220739614932686644848847460736295408278248253807895387217418013555672668964531412074750823219723579556293396498145435296945462270977666130406951429489787581538702641140687737748251955703864474629013405813409068049412718063258165617988996156213390852656021702155272705850765417914032556358745947943142157292648469090497726551534876478186605436371823143015687460654663693043820123663550415511548456755544649878489857201283472160898879245892210464562706519190899460681399430859049044682292597801158154515837646372358774646996609786280180344835247332878857601765071987439279049435659834062928276141827964543305175740785270522090128587641959997346421938054730690311715984484080150420524800939602451445918663898124349071913430843743231606446834561242520987162410878554778980243932283568871086898952023119309155935901475393908401086479588033062136891465025663725619997640722244914497554576680215042905067257443151492963041846244460398551207950114872031249177460268204093060562196031693908971236683777802085713540730762472425152530564673563925557763891773156143786834837135439014366635777158529472942899851612438250471432785960858946291710902132663079088414267274570718309459913766379406366009507028909348652045052836201568867814565680667712640658268345756846470110440675264301864798470955598190162521592721649948312668280108934529355524325564949600646486902172881450644215969919893881284744884212469018350082880759424749405731427630203565534873833187592213838815176668225372367836069315607493006471614431699952550075298421311122356868703185240031216165001068713528946281848232988351532756225723201364822107482213082437282771229295150721846325335238901911629600258502240374334857117585739346481540986640995953169472341211599380952113771906064664292941045217516422656419235374653299581576799514716698858757573181249815581010283498329464744038206410265335164151318200491217359953338021547116188397960168083274504829454130328886033669120733222196871261643605943521085224998058998027251289041568635207946788082691257893912301205930534982369632349707497769092409123844720446512907558957876943969485711594795559992625640390961130719822922791987385565764022829112893392500034251597906083849799049678200659872245207810688101818016746147427644269419454306155262173305008605946602364386487786823885872016327509088957245328894966810340574023496337436547842052353738858917051511648431323863440698038614425307104616491375960999798373828646245675446776102957168554596342990302878157518030568560930669137075263950858650360518909224885995753224611632214409747079124982781162258242927991220878721350272952255239844255375499081196914079529312769707330908069547111984066798453213977715470981369153597498092782445591849405185021910501987354239861320363118084292574409744661891826194890192715811660094878198695038745448664699214080639708704749565224029483154059776712824938356166589105372916887251328703405281053599325651239834542217056806811637148406932070784450139655750723937168682816637247187345930375616262381399843711657926252008395518682348801973809823871032225070950367627934867868438548289271693055832477781129089974700113806855333053709069713663041012551416877230899788940959414932270074869100793396018265808763639252031335482342245752203714739479904718322483999258735791934962641486299928167234903501206719539192314908140102432184698450805910588189993436808140568021364745407302744970245086575105582973144159102549571859984135339651019804090286546448146426375492297190086534325972106998495082784375079259044381998578346789870095001350588154903528573124855245746664310402781739318918201059047722426506958616452547198714347499371691768176028396342507180765491652438107441871432842710297178730265015697156664445598348643160463516650976666953594033599329563679145399299799579509779423475023531300959414481522657343545121572746628105605279810128826568087556984352763739095308755577641123862255509731474275470495499398442779913418140222529341299200586845982261783163645053337397572682293066556127114717290517606936233301420345986480686741275244626237174595855677798462164887895241301725324677026406168823998292783130677478332360821245253247654512856443872002923196249991657024094848515007338365889308015635836120501805525662938136159371107875240072353535780465525353201254121955647667742618127772173760147754846011694701058012205905418578590380752639508463643015164262503909312996846167896755007627190532820520427531653695025839641504915754629379276343255651996650742647185538984720465225015161527414467397349832071640547293038852162318563253233243390503277155726054421777754934444949618922933544400216182296237411096554368647601882007408233992085358959055951085326927866376422457894195169147861585066222325784544514307234918154280660155125547403426175123305017584198585140456601610322401754869063064770383199364996019868345694749106022706016686123031029847176802434794082411454306705857393996777294356962291278145020519584507079095797952471509449596256316709977376588238693326454556493554716153112754034183829247914422749775288076417597927467618674861402002748281308211978599388146472207273622766884970823738809408122412079025682965004516741018592779300132313969485580122199518373930021770604651205775682499847244852851811305404314619306171128840231312050518186592285141548839895664995142184462957165829953974346636561756451044727181604484387880496074532810099229867389510823282081088762755729452889455035175986614294687207083748613051377760713232473801936091203477239270830553886991851906892439647562921407120114187484217873063399548521895978114310412847887977852874113488305408051636056271253556037507430001120983731839249255233248424564404853775396252194104763435692549469337384988662764869455324170053273106821759326984764159921794279837976660989750875703900133464962620167393666723396274194908219656061875947634341647624103749775227251746554569474392460405801058168319000505306811912920693405193438905560339428964475369183286628175683018102423217819827407495009627967249429297502349365575723519552364511014355332590597323934400336963796023504501913769222563689562020353194412885396841455848916350468560763737236948311835410768175464929587192600216852422339466762857871102067676417955226863314068871699459982097441209684203210704784491815498851231947602321571526475575470257556674820728716709400583581569466832632252350932641387365874851518737149953242547631503074554656024491633426602817093223551567681623912776257059670554139586839345557365877263829511497842573729058000915620582083329854687994778896865660206665638034913723969549631016046020977313675851700606398279270085042771741610733311952708731023042610528703284431165945709840888695397116727810853350334696335557177108886649287623349841269384302085147883596190641727703929770472575071787306580948770585777532682047468453665103008365025221176604251057845985240061625141153988322694433099872771731129090202920297348413801151265478593248427991549916589553106662058097194980572399511803465275779639807622276033794639259247395802354340293340224530543709961497117810461351484472383515308650696072236410888583381259513177231359548196718754022754576006324400259005919390784502872925162597261077822035727048371507031664449984422685657013245072225851533063374379503599221545257772233286491616163708616805097894469898709275640707894282032062845333641158141572728295082446742773287348328011570140661301963100841067511692314641837767981449369677509490549845756605175784677860632129822422304193027048662545239285716482562019760294833551644537864542092009703971902853343660109337429798331147051169014579210964215027287661152699354724114648396960312788618099198075019679014784964253102853466617568768762146367836020493374315324606044207453398630786230059762277589593171148354073801392490775151582892225508983307963968988211286467676754091767555126192478407321277136780621517925322368218689863031140753980143125752913323830298593371203652282711496622678736907239986002775827908686297152431911787809306920864088929206073570097849148929998593951438987993237420345468174492356911171503534832210687775432493992217267246249937234238078582450849641726349926961704661192544616366911368312503507332097808736670192969535916335914523266932806273433643569556342430871600216292203415384860934932960416716414758470580305317516533387333198899009309391450225475989526666398705147939628930100691396798252580336425683645108450563463286969583189641704820589552594477809827175990974869376268715251349211325179134856165116780052061477732841369873207273645095803913767525424155234124745149751935239761824196429705007955297002718491827125447257410497995115184726453356626116750095952634644302803812064131776257749177004497695301060149833619659624811207582419910162792906410508901409668139351845117313827287672734723830094033193937112290398732675483407385669036333467832575727331199520635702891424580126119315275372211375893127198050998229393198500155582464244593935846415941433036642544953040070657777857249527309067022660853293463255116285663421630981040640091279430328360206208051413696358541023864241328230682426795970290474947921173064264672832075168268215354653694840682604890935711501684045982298978029113517333403158175453200024883279212481909927581641376449660493904441290426389354999229385153713500096304546885172454831748255820828632419891632897581125972749515187282489335885938362253502343002784022726023391540205738228775705415983057705556876223550583774648768007740260538920577242227280249452806586865812484740971595364243189398904726071731677555134069749915910010086141881237539262869195129543896336133859423067104255626068299818899974013150617907403158354663330487210009434372516720980700115717770436013068932912516549916338249919368587606205457814437255837480253718322784272831351163931447642514425926167500358750455670527382276428757264724181035558785392362878213634110411800537433822601673153608633522947741820664346594350491254286623606885748385741792033125430158077181460470529124837258027746231177251773065244744124995306914221361230034239956812972615416454127552343794846259589960210719532730792130446555450566616422893905469251616112728035646169028594175299801226678066936311734217285781456631185260404529157024088423093914481952400213319831790953716698839037818559764338482121352229190618753196057994628842517899493725360687628245158833560274029773953780719886839513344994876117302910743099052251341728018575280749469223511498955285907481900989647859537686261077835140690854873501568825741198350473536372488226406711183871879030720641828214016465402907393015440448717823974464996547171570807523142215704159703397029306746865826944813994903482489620450096886135969517022150530825596650902981681502717391364580661653422311296629093047160066615607770877151677903539779420112151414818165117786386265260510350861184346689876226180231633608884167140170584785266792206720705329268708533477657636799265379332990797596525905651055914725611177176537504348346555151957468871286567026774590420000292478690132415108928505617920506605784753055434949845546039494934997877125386194855954632520280931113859216053365448344876812278377217689930880770809705419635507392527078387177147832038021755834509662229190035966512988529747663219621560051670425705165532201292992000260805186970495754569693078588352874893998380691074953747796045419233698945872795942482462143977879418456347389129256502471772973078320794837446102671989908068917263163371617353204855484138084519491571133436414902306220068516253685828799714315615347647137247189457770700800902503531685496845770892435159609165379431324553914144985108917554953367127921411648580747348899434851239672002032255751351183370696356042628735537050077474750733578641180573943367174439780409512279210418471300025122880070352934094170261115191750443943357323546764990184770227805330933114288602069989914762844993129439564505597293475368954198212746519442465555449006630301179076425669038003514191830660688750559172926974213075392992835985233936112691727345660279936972785508992775560880390882842656279982950315178183190602495334698491996345506772518963025888661840263805562858016002042594097884987457564922513276560313530471152417516602403757411089327170037063400225487622748154246305395104737333269288546808895249178361454554765563320273134743090455691191089247684584576646362179699914630245082266691274100871321255977211501893737883408621570976489826638420806749900860215662484049296302628683896169795653038207285700019509876293823108919726516853146905919924138662360573886657611905586338890141107583875597692414276165605914567773483309319115960313165633060016975512705705971102331512547432356698520436462488124019698574535364383984578940700837953205632540767567405639641981736633572634292723933748845550021934750831192254207459015182443184902968387065880244734905094491714848350254732412271128491849193300597068334890561645559499217150068000440288390430040463651184798997255066367672676581560849991631205200406579241629967468135526162715559960662729485813979830358514089689901888718136274181859511119667568303550455447521347052037442169865558596401043402493142762463656784656742016254005545620587931689776201118731908893050379794361797094992815632333329156096386586473541782491501839680609066586316764282440053446136352512584538194023394164289498159251160658339890381945566943919856226966986950022449886949567725919673037685692135049642571936133299157000549870048672907876326847576843331797989478898431438580021321316119149613750659257059549532547272898015781961487972656644891197968584981015087180909897412911435557100504400952417346013054775353341024920078427805606399100487849146288627350968479374821334583423961940047404420097038952279491694074653671985217833698516493946629197423098771347049934958728025974998397299662497546745482657437661979687243178582588800116142506799099371812351149960391237704970462542546486941244607854230605609070937199954874327317870751140250097688254039880038431258078295983581282422012370391219473986287146681520252553642406289783709147191366862605514784125284416181235307386234735270254730902641344848573893780268884120700871689716223582051690431105056126231565067215573471127619386170302789084509577005844603796802667816728426145591348410798894348881138658555609844988035500723392545162561263199336073511018918456140595677625346908833454729904974979153623047244874058617741236825140423049017402220705729955443625280995674701965731243419991861663562268228735663738955764060315680945386547483476342564739942624059980508871043498975621997028223758337369477813276675737325499097659904690051756123047967414559018006867296615528145043683469584586350409029101339541519567660706731429613912924081487128281802599980684874662608233877091434303508044808248285060887447441598063577148259601515778129103141095544147008406054098411961700379241089145440174247774628588970302080523290166058865394719982071431716845867920276827112353361379053618179532041696691857952940957650764831056916452748226685411221040848215545332729512888656780470540004906846489928598502972097625855005486075995197164869916535795104931315479787532431027986018248926377257538475446868513507922355519249508992252577894081053336137950846521426405850190220174043803344571660623135155453317409437276851691600791412972841288343757508918442511681484398277370873195528693683028493497213546633868657561632525039344408997155988362857726660061516044846377113337711632871559398713393782094672254705405706452308509276781453980491769778042551411943776892567547543950277411665228385687054567339402406262627224569879900258245533422763084363100060315171455078024180077806998539559365321234113495376306245174095117675553837269842687361022259195160586313618847118781694617603023772688053617177233347926459727585599303820665317846911043945405466215615539351715657336174754949657520691018017664083286603267745755105710031861127310541994854510101034002803077898174879511167252678386550443254492181902700494940094328537472608055500904132671810155639337022906440683552773194802914810313926329203039488918338088304077924178274912973714708670562438587929231663518856797437214635602391035728484416093510321304206263509223151804168320599851304767049610041351768741971985305518461082556029613909191804306248022853738517230163159692327618358921702474528542750934698341377839523441308404992726315199076143332641065031066005126354416609893887832856453130857387195700706172690112888699893178541168695294550697534100588380346261224735363101146709250048280347622986665267382307663936057852003503485942656132981637306851255671826170321758076074764137529459477697916891169978955085380014385463077412136996645045009099324588177905749334323664528455158867239211290557669934083761539568775281007041632090671686113438498562618430904356882790875528051170237171122375211848509352769290057694826118561984841580595555570663657450850408011340711602388117237282910143307224717346818860946261099545196305211694045124255517164096946704793532789190106958304175460719883942250737596088139551949443126620467615548893388383631817914321704355742211841855796612237809971285458484128769572402148655964984351974432126772088315892921775351222361142072158459789809541859695922765039502163410257459101479645277701090851394304359476060962380900965116906439549560551475896294154933646059042951703697423885884857134125878985179876399962503189223035084744809863051834492707343773147672937432106497995193403387585071761112193482468440291921452360672784749949769217284475770968678370066233854388508850702681511717005988507174547256060414963703277860916111180364423647123276400663550414252751447944900891613629866775372577896342016709432017187094787572657827542131201331711817465461744407323663747841902093917929306672467845903498084222814171972631734037864003181006940880612415810244767755604032818637471584196110511053754392641447531635633645294429085069740863471653561043936538860728557593043607712419062850586339286498233733406407381598622519564677844802839650536398065570549976419475852425820055489969544069725760916984400482791550297754749896106347809024479929446270678544251554564567986960108358777646411400920336603616287830745077769444095476215298601490666398300034091102378381187166165985611121324243596263710295313362510954718934813101992971908392516052530210248969234731134050864309008399989603803961172577702862963998623121759711369272265124647557231204738927314725718627403516104009738814114918600309693736649871695425634493924875814125943189641966468101293094288061342474907074312191534905375202759500096112479365631575312619609879961699489832411034169060498690098428060337363101196879277074435175778066026982320749997462199172587370807285203868788662781977318556053189961978341282096262989897942978306286842379453857761166984032620762422131438034967687524045918221712100287200826943071323629834497329319924846044144221635598978384733319284497808247632605921648606227408364528494760039928337409349384882198289829280570851130582904627933065973123432486313772728282897984642067327672794069861790050754525219600398275839175243920906475710996953780777510029252919869019195230621198961361553752878524746280084376782874876876801017707924889242766466714680960065323983596610540329266091010451264338740598273976945040768240861673277752844059954130879880762817490586166631002271889916832357743030328176223771899874833999093935577158673302212136766081829272980152080753737099435269273436093339170935565677102820610802229647876557423934583649017205095263604565028675169163652458545009225345995905756702417467486018677475660232539575758709919714325314960208834338088723180881088131540376484529135530231325959802948079833867522489299727280596089335621809022421544957790988834683950137049719471543233146433222007788088378590168678229237270460878733156608815897241819698859492886895240420592526564483747561611156653072356546740926164644858162500342747893032908341822637788509911638116147183027036327840956004503216861290940640818826458968609999889506107185277286480874869197374714248625731945841762748032388513400744582596561069826655356514094118143638870443667451635277516773566476939742385705525440094187109896550460564269998714397346631638792756710533010890533007900689660283502225249567207667363829510944660671827316546984239595344863579248398605609040573535262825724607242665635161388456780297369805198673516058252255987508447300631374160632042441648253489396104919041128735115764823258431456250577160779022446553166687609300152100019162770591834612863671451053937165339867406126057080262758273103089931431947423081566615099951663615046845413386421360100638454400117563262369156885982732144241617479569363721788432668649988850894128512243722488748289781153766463982661795223616618501033900879015278013606126057612708333292903776672703161224714904455146461105271857133984563231563790206845579019131752001486916649632996279577854267641586659072900074314003578425445639973902815006782615264833874295206762231865898463292335908583371417450530339252695160684554861546912024908577770424862576153273811735359963414789834294790802458686162245411780118375087406345510277913141778242851506951446463032683754942618169702314915130707777934998956367039417759493858907712388359374664263475549563779677965538010388649730789055294228333782852890163468834231114412279229422722357265537494612713197301487202133074059834115754642633457250424152993849573931887979979030228246985885429018957565363161804113347935631625623416253119325174362121709031098491716303318416273216875824496193694015384280676042459369132710567563977296069818863639846452324123703444188705995452665354158371965137642503216251216612869372961492184481507458821709530218832825455213919803579551972231307323342578770893593846131897072549597356789866211569559655763894381442407719058739256960258672118505748911107490848973792570414041682101317021319342111978252749389042538050287174404939731735952925607855824631508899330677294766266683433638801971075095135787195858613541337095215077372840952618886792112133344792406165083574556484544019564572539186870945502141349287382420537904719402919431735936604543357530778739847429096987480734055757099307715074639142485633636504822938545376031729747763081836074340626247876645847313976338276546039641907551302544657693861548590871594198891876259203926193943752867099830963333648441803136697505304780646808475854528103737389212154100350326719537275904065076978840808778608070168384204656370931062970713322950016836023117335108779477553170481018698060502341661960490741925677929622771758198465994745083461000817130905229936264680564638373748565280608098027388558148341685799298910419106982780611848660879337837280581160623678950525612237283479294056754559605305959215935298609410447395936316436885055766756096873488591280116437696935666647930710312878569045210633560840802263948951740286590105986019387050442492602047418595319709870776312383347618239464425029709680326301471179362773600705468342583018032759863993670680023710479133002900027841585867188103221149777054785167126254559791093799102018945863264974209069996581573432991416613576199635256813379032151823173876005925134973847667262699979896982342775640264463017382075260340131627727853067242040569010214618403752758788335393047903375855255047429666101465693311111306030495339958360752732822769559341632275101799743044680199738775679602285337651936276052055224201336535535108464929741168285046421398079534585265985016545586605219194264462537233882494566072723609548095587366810556716787916613962915286611981683532291741325549263659865007996354789707474855736144212587267840624976336268267032507097944976514056066373991241360301948218911837792811655143884958403919907273947907064521354081558775558602885740982807343929557777656954162371404525210719524053405922576126748989573232685145903946809991785539146770811212220900153909730686986005567437318780111792055599539275904359142726242962664246494555330806140396038812021699374631162793598621874022441407996624927430525153653376051913222221344484683908071024913590227042061542228118710282633307733385981057729204443375778289119779231438946522167911085440514880318465176495813198199292817842334991342264909379783710851081792228863405848363968787903255553117089999713528021482221425216656462717971678291268148312877577279892882811681042776040310604797520620097908606043412768291014029316990167869050901071723324713514933961249251277056553373130456924397808056557345448992030977328053785594532879258396060578059337694203570026665645597853083318765314544729269081340115960445768435712386280684792800800890383971632143986300624424758829668733917780753035988655138036850818314018397239294798485600057719341436396289993367436401796385821509368393566236510214461408781173409079677681371143563028272617269576208784477420803703643814856703965623890331065242854553786289624834997730553896686870823500651008942334819682035537645666315170544865095376755945339820800033761817942758031916463161345270643253223113053361887371048934947719788848616086708151533381620231878830037487081848139809525539227016541102722719947806287942536857460550643768408806363692942631977219064408289641937963772958545829962838317426683314274104576285307544193017803766703846402813124090442913532930057855750361724439963241216873528912362113041199510257363532533020005730466755294432640754504615076011733835372578931144873640994643940082350336857712291693845136256209206224401652088176540863720074940546821046302385542354371522416446213694601280606807743460942396775623452126464212756354316919537483128306647908371914333456461590935458460094098573646350877870457900113963578819612487514240779336597437077880296125623816718851751184867179447372256027084124968866064954320587588007689970926792545620632967008899427823599271944948190089915458516371380926002003213497530607539170684518777470439545929063302111610534875513285232404439614218282725240759961575816195734497740005866559173809586260939516344470050148886001026557828628515372229589159478882439807919299323942102315194232009319280937540079143052847558528183514013249682712110866043602761204158848671077718376811509486719009093713445059004814692554621392415942068737955871259437712065220695608139347795426375723895388823679167832196486355762385725239872730226397364429143088202726098862210300217388053014429110316514157970846696667984061758966495553324627324412130272162372914910037340618592284646467809185841353007942745888004960117751600022451006753350683768603084063887926634546203824881600151138077660831406184561263412405294546090217873991844736928933142504653821411627296375514680036204509229881787746823838346894704294371538226988463215232327311031461483829791185557824074690841542286862376668234363284159706321470118581969015559197836076800366737114061200140910589054854446250665057561783570231621691632881951240126496484841209801330993346650031312899151412481905084954374271628815601257096319733976542856756674685182594513591110477746081911654366679955868166765518291034296345121591371034455560767548564547024191728919716748064636814641058546911153983168062099199881623416964484834574501577613633687189989249691146824198295096909457635010985758924865242982169179695770412098279445182745115243920497221049158446735497973874293775083355080079314574717572037310128016196923734109523562654907491187889545522890130783349856207482539366327694839670614535827687696097618326089066183823981866149234283714820049696078804793129770586424025664588930271871091356645277063208369905627229662562673256225221031049948041146184490147857071296824805451001245146036944942011918223534322183513716673966967348219620553884433374119127044113730875178305002017238413147159704286530782060006764013249004854138517978901661663756373538679828007789989438614605661650712609224892715383810005395045035637546929450526225219831073518899781731897570516079274569367419876415441314501123691369621845561430332106729368693627990324575736221476779998362343741948027180409396501483497885387008869663947178269278552558567246828272608560432734468173817045559515584461171133589973392355058362962663711060378873674611450916600767977729026455324305537672824366265116992489353856999738353713100410324503854116252136594241975019204647476257719400440614570122267523425666389298348003265039039169287084041963374899369794511422557304424822263048274330533024500923649805429674546269811934089273043951519488188136560376227624780516331395631558120191867863159893009360317998456104319100940798481445147900512552221836962850474221420406182338612602482835338730050781966991083066354961007502323904062072415487775413784431697634791772122670535998094826963039458365205726815197452796501691251567242498906190669812415105935365279897519699778156032306316082721986711575740902748141108948059790034446580931882051654154432312221868063868504098008393093608962994792811115854012398302312703610765168049080532519549107327943397027705977824486228432944209702955197395128483669808532094773943352069731564373218028159135991087291442229300141924890860808478774189805731414484971149296135378795822340286816347060701288647248938765305124797220720655654817521734592400458329764446606167924326873382737182359196376672861581908470402260842752354840771503486031990615388990681266574718120959106399033654967893230077694261218137534952642711910051431264564208754633135399960815851716092887919158642212332283650399575372129171750186768606117391902529930122484654338153344046311061176871049829094709502719062297647478936954759844483979847912956827251136993719546828770020527147549571656371136212587745603144360863688571404133583059511910088454532992508436337202556050758874252989153031119933666396559271945606918355591175800677515230959841964298551610316926538055198565472417686418514090405856548915310781336311838462579183772273555878123825728020733228422810338600416915463577122409934998547446900114761910798505276537878018715635647820702554018514375856790275854290590192525613912830611605759678535802941797890114228945972405087462142301425429173555779466063353201031235313201843134066211940307993553614526431695714006261396289947865594401261101690394954156990358850837228613620885232815614410460860645682116112289091644102280635474269352491629570914728908200607969058072186309411250247180498032084268930803907106986256149144949905571724275870365148548994738508758581533146617638012351921797619047018361302686651413034060049360131199104482484222220850109837548442193751747253068699973164471969705210829603718981786572002510579674028052662604595313181534077276322950841405965569933267240315004499638324809466948786113581490722928526222650805692858396495306217723293675187943169276626423063570451420563861078237010845645419289371070735817355419043366817744156362778615150905617793634545243935157684181820800692909574758962014711359576563005318677804718986994500552129132233361879913178032981086878772380971120455869812011367473582093406714553965276607715794467983988183837848329856468103672379796343407062878341397708134758087232407832588027149626820908261291609196078335712340167162962764666975966454108806422656208444583545443175519349149028397110308160355501966161310356169986837252123896581094665474128188709030931979464602482708709809784323881025470481501860908715802008257916590424381412190776629632226672770225630390727566938540700798091656569935893463647829558676402856825765690820015847711508671436657924616809347996853129616737133957198404678251047720028672119360939037417918126585277944969441143691961528803933156968419853310414590226736049357191640401375340551721059654521596367076175323763025223332806996811918630457120246923452659166794823296069189864357749346567904854172398339202334994893236714787070141517788763297319607507165933912872722436022891548815384456395145388735730972242213162380546602101038892903065687640062698233877469222755282534991469604626232019314680055391969883955604134575927317451581579478727056375207746417418334170772189580678038133508300745354995495268590244452140736262159169727563891333624061752880365731987404133661710424616823414603109406083645849989310293772779992898761786018960705879839575093815284239566160531468905964277805244097830511867339068759809962990418744423514861961512294958588673807579136867191528203364173906596910305329260524555870357576701516556044245315430717167965493832129019833128835226156367718057022129314622698514581290270768528633142481427308195810016649278541989696954394879304180528904305799885184190829405601700074515682509991161075052334401805759902769133793844832621183582550162284624912360882434854794748851493059470914988547896923990376191716016931864576316478248010887447807118836678669784694208957770329947539610038541184130936874988412550388479760112941470876561544021889512634309391933472154062463583546445834105890867444993919214144337619996622388144206164879165872878733425535727553004861030876523255339605463164333187611987850339952210360646078353124152885116512655179888764614300556771890205916760019873687103415778436685338219879298388697931829090063223654323846406032458433203320572767763332212698882892933261640246868257298299726790414891869353384076146887733849391790175547923538648271223238722378987390228488463398365039857503805426991755233080882947284969639658496685681998433258453074686016641022516548619617923058704536523760887198889862942008545252217204161486237627558245090018786240617316166083319903115084859966658092537046220842646962997722344346523994129791883070248495163297961702589041001317189470872178979240508408346020510854750679468151478798469049333756482647836319093983586878309522262531249471295726549400210718981326260069698598608679808846713199416907906327284642619505943633307496882667290818662692613297862333826082893686819520615091147522054441676264241951175758135788896313181454279577841608164823232567592138623666839757747535232567755191612929343862187699119139566636565316969498178024442991953957393945749838949440294483486679946021631724919917146516627777236326194029115674972031745153918085114389121023285235196361945870194289196880649200425184741851335234383137443230455295153663008386101773383459839500711554000541017176209042580134238040053822627348380158199775996592103782547355985398001989795986881769918360338433811900738586618536004768458080589376356392232838679287007120954456697318928045817093638585146433270929041914686665362770197700179472440704911761734361801966796593881615618848597948889231268459572008523724676938502059327512506953959435624545608055588412128515717512927006913812863691444151209646594541230838221450186997085229912241790996413917410990058820469313206125804690231450809088913680054512205988898122702101194216960703264309978309677795773684979000245030915518406951930828416588936906117980788446667943200862936435291093849065188534750612919452926842629144388382518541854315723045807360450106207415470986320755751650594392351896920404086664291376226261331360570922813914767966086239979449230741440961537513244832885574004623330400155134384069578408666925619558137360231196802333170935864115812086138136983866409771702851870591355951581138938395163988724655210182104404183187013789367853130782280335231878446709475988704542393697045894717338947452628568836496622407125794838615834601297603087723647136539195634194562001553726825894556318295938190792394458291721259054577008954099640869602545549521924689106906450494208165191325481364931136749130406664473537774192962038819525256676431797803288852306391810502358253762439548890344381636288359219631905184636447879366693492407704099091183428175882921048216623565679913822714348246969724348506438792026194629845809012649570905229245737923244649095298071824615060048192680964861882060267999588490886703485896705405937597612043627688048594902345499348855439952862062615308665892235978938286274074063107266860136617733957420980533490043305618640744592268568655114359295278512113539760669486026169586600770889945295503044808637021578868037300965974540011866986250825824686983461729177390378748687525088603861009260691409557092496849337790735445665400306670476722265336919090920815667137679397560591583903377700587201510272763494670928027125032483549241393028102837985041992037889577413755572910516729056048553023654846708044615039075527854458444976311149239466779432451513144205141005026980201214927180517806349235920268150123588645332894103766084095181621970000720108059472694708511575972976467986696318089104395640158239975654388914337021287575594813635854508134436500220742663117664811909040920060018785084344518086572119169764155681792157484891117401139366133633535526318214739815518031995426404741907790567529018198045791969176618304443220617246311345377748764879974817702581313701984674405454251011385332973924024802936284662968373055252800224702811691606031356117666909248786993099011734435765556476468152433985682482442769388743526753536479404988363343647415372651146634310997195183239349705125236667727924008092804239547289100433106828296546657851576582789347441039849938751246082040440968627183217413798653485172984558920190417949354787209429061210155030218261979480447687342270958565540297113141341119267633886212094391020146688027530815800528055924255164403125069595489523366382757644080174519416348839566778717162952281619497638846896744895432816968023863086920841319542728773997669408617670728667015666390092529419300027656675213749488998009276941023004242668765250411486657444722005275978859701500435046219916144044451354107044283782604890778141174227715141673767067093353212273121113278137156490321133545829566545984653968996649153969023452084691901288118062198897047713935844606712072267224677889207536662291079787018289839059300429962079274451767714330042202408771977288089461752853338074372142572644037676361833480153061774720708173396862900894124453069808481422159614743616968656442819198807886282665453790336150734429201748379685511532592139827816784270199550243108441373272882306289385700233575406925051712476903634822359678003087330834999157790785337514575809391662090323796411656482778967119366032817680818759108926831195666302511853532779837244680189398138610592708248291752238990843991827402698233423456309497187748034170629106298932443961693489323543824664390420094046862451076837816024692119427046066350575257540579075831821622146711597349323201832867458460183196857618401990331675112941827587020744061177664920994449966402355463765618002574838368890448806938526983693799680021085713128028749301643015730095163091489232746739744476169490414906917539178194789917629750660133515617157107968639629520106448520673899169545170583920532016818028116387218139931391745990201865627680034410872365527261549194259785424498550415357077727527020773382553626641598795697648099994313453942304119769523868893402785243876734099749048618688431588567316323116730861067616197657197295021372618293316733751325993420278523652173654053335343145307136151153997194494694451037790021302215934218925278900759183767212872030988370593598121113549193626031382833173084426617626887618926810222584594102016837288903916637269355180851185659870237469434537808425285701629872214572504195151747458947891393257116860652791596348794832639813952618175602836293925799901575689894758609014062147852476409527652784167402529543957841290829357556225233459753210339238241451344387373138818654963679513209057864778002918539781085552030563045854677559706701414381262480442059945892764471157165550757845062002404297566656508635467072161459606996710037851976638724303021975412891640145592778816462511865361166302996566441060050122076142114457098239491815057602440473567040889558421075299462044480070268083303645534196159030390585332064739688293798315106713980233154082274240640259098842676954950871367350451190435207079982408097415430900592906350500445327102777415945033873525196553720857492857660179274466178899075209345019191626788452802567635196175326085558489584799024792158864178496044981757890808125759780675888744607156137135385655231338436213028013478140241779371136407564595727209178832434666893927838103255885065585949501362775239909949773108769528124534653227783853400656251212179822251553323529766750822098029836450489188168619547897538696004359036816969403280545370936442274873590347614995718762277861280961716817648660052255711267530847479310608494919864220539126809494932662084272895646191653857747122319275349855394932506556480204900045277226920328002102469310099003659672853516360070233673690524485179140767594157357968713440264842837726131138087828606873773144267312624728755148319713906311474447475554508466634280608374094535822350145767463253893538114597221961377114414718036355760049246959466160900958301573855688672212506897303824102709769790391766308422624897510341895667100304216093252143458569681908206952734619198840872100347648418017109384215497137861609146763691361544077904104112140361788152824530855635520885454624273819058271555902634401503429065566343410525318290127011473732516870574536649353740569985760230190163039482871951549951600060040602936900192748114038068245714769623488549909044078053547031323607926883284579787735755770378422274982466209908440805121191754991545217187566752625792349590571121091304797678485334605239695810153516442682011378679498576577350063041355875144107146746964067889453372833227876055417894215758912034081411039988407609466184905829873205625582424797533996067030590845662380570672767705737951765869218252034765479797080346645995536761179204775409826943985529089140279313829717713911430123391888240292590223141844114018021516954400919250398154837629557040945388021912809223368674643060920976415571103072405983033646110928562606721959519683099303071730978115053243090409325785459506197360751337552948480679266046479834200225995103014194127415243280443286994133422930392697346268098886028302624663140615470208345497244663929729599664951441077113289243248921274482135661733827045313812413973589384489904270557165137108469961708306108195810236998285230165584108492543894487263042198042223242338536665969970808722486217484827283937313545995347424524200297101649597599719110959407145630642782325502744148236431561186426651032993688123558880594615043224791157169320478591252918684172912605164903160596609992936578251800827711179173346287376099916619379372539583330404237933404287038032858060209333201440308796973037195436469699077360030127708391974897826529365023553412017421164086667622134988510901484576779550074410824432436029258800279281828916093040825389682280995033281599324619316149388606132064127329916024771327550842074923085685604765102302693346979073359855261339222553052371280681594406946967907965635295878544374223213865257354480819421033379566843482731152477526754569924045465381291737221834671799142719796292207334376010393711891099832852680343472161120252918948884492156104705227174606356273377326021755343941428519738310157270178408288551315682483599568313268154338853230038133401801937809220879999879798552946095828087771457073041752747998247054655935885464590695392504383147472097742616302046451322548195733425559159116359616984775556093999061171910094649809857969394593067920411559466235529471721238811936741634781294478277074702174395493436684689601990866993952847526823522266647837749479089008633777194694756785953990087639768053118202112017052861117371277133517941478199434561912945876919791655415676145438726919761073879081538166789706525925381615296015970207710444311070432841847301559302723532640473770844075805703978672549205558208938084301742388127977898008418940551373462369554190782914220689774106070432624456740975828924933591305042585278022960453620659079029164361399834118646505260515080055918380203301629043350019093738450886253962784798585142401894394675898005544387400820503781613120796092266583919681449119924222180397272917354910329076817748546349085205570338747903793404954833679413182423355291350442889213001719942019204120478446976338814918650380207286139082566739236166474982028291010063260652283012034514796271294298545173620745292368864464473399919412456161811259985137001386909650095587846152352646424821364330747226133739897254894281438842762543925462927575987572767180198958227152435010345277882770414283598436518412370346035614518457101341569344156556913507907061184277413809486138555331254877371216000711593988772926769037069730110878235178232418931476272009031358217995372039950315064530206107964671963277079698240415601202082668255413679934531102481888408470102399151015745826443822434801198452801360329664902647129778876844487031781601610631632564932055311809423190247077771488056580205211340580389253733866882467078560846956226903573085821236834833033620795607426335127763187981813776596096821890086198554688881864111654070669414688148859111900585287672932671754317735275725190642720926021745027403310715640781607617312845433900201064541027142445396593586529704273685433520136427144716957313383161386033685848791712116270305838760628565977236350837507078202989389248394026160623799795645572683588080893230180679119384125980319330859072731458944542754126664669705958642770939110793464663507510009268356333332344450635169274517786168562392898927550267735084846867569882286598341624449462411705171401763456396741368078110248606070774395669653102536729248756390627871209454468526103859567173945007018317435835429420501713136191206456157537803403459594973745808972969074189538969873985272871796351963558012596904273363461750391520529366762281547911368863020083530398122366508014183620630230386268356487400135278533654125186206830030755730873869661739153003238551994226739644854405976307161901757910140730040362355507885404539348230268388082295214359205579952173877975722863876518245177703358190167889050871319595556611234028288287954390026011796759232479793036598644921537383910590251985566551401783235543857700585739023378121368510160405329871870038864876363550485165427416563414302586438250952887484413673462453352564908864576421079042327987583721697011423731289676604857778493859079724265983994742143173132187926354112402683445795419505614352187063000301465110377139045978099667787372512293791799095589315721316230922167783446047536750636137893131886561161642781994193245499381988122151798134890846829449053486203767024835342623118640505487975902640701969525660505076638837995892384026911639314943301900481924077974859410925232139166676794728900625968376452925263955511359010534808357755590777985110776101691090398141755851078885007572350770915443668351676158523558444139881440679071653334758345112745255731122233823468853861160347997634964795993975888205725099794842095664536794070443450367785871533713721016315962480567473299023387225033027874739240090594961209673484453527446633474237575597040678897274020508954112611289594803080962256352571688401810457148740883697238736501271507470701958071538782517535544891892129564701955177467158453816012612873946642768807455995938288840045075505874916222923084998345206754312218992367878969817333808694932628847342771445500065265114808142518384108443668540576422851141122751160957399883439143431867859122979222304027199038962260096597526936351855017526414132211341476164457069216049583058828017130876460350792208310140055142544842996793519317448265365263675475126969349537831301310022125940042933244492330138270870243555343956134059313940814362346106342977226850887293260038830812474775822570368512255107680998541291523369509820769036149641388566374639453931181548446187176919536812806740737762532275859237516846725209219355795124896218108540820861354199999888252597282269493827546556855222726528040744866132805737517960462999132516856277113084180738054576033797438533255968976125136462540214192105547509243427518926773414207009766994464013537094241184554919893583750156378307865780896155977600471097249698203588688365750773698606627930298569168796477633359088702594346768902499214865662597494446019257332427134778311283418508083674146105270658897502742066314889970640989473172528112581295307905495609521457839436219575014483734093212770497153605097304782961783271689579665400428384127191107732929804522349764977287275280867226831198755890334718103847496196133399873284958096253458067538921695250803264729329955194880221062133058835094461958862866429605606365817537969960423315683201845102553470884221258908513000558382432607906148449201900527800624380592170967579787183736600679604300521663090645795191919472041136428131614202643112857851327107514006442449032568833768056680945307268031803983600720755136938955789625129809708291764170053076269811050529830970776189610137703434336437394495042984492975884942823050752030829478534433057084552411799863550413917586462670053787800264898279152056253847935567262116445059644321858550016581617223799556891830426055363771300977008706278843625368223485696937959446037231144964847176995956293618595423209533224667721423007634940920286609510028413304281259295253302779138072805271603198018317871341647895394910636452054965874687072345242105732974391095327281256417814178725050748343661842286962441280524787526645751080555422698093513113684777130132784881745671240887563861973757442103510629036970830186288045739703814798111700624981596106159682448304734893760396919212850732416149988267950105934144868248455431586461322031854742659109168709596227866575939782210073546660020506603796140582338693502656149848227699351298953045208561958534622368412031363393465129868947922426471535263789152624312631946267094694869171177926918595161125160304253541029356272138343241868952426337188927053635027154274298814996227206702852877294048895520030136791232947526307491289541079323956486174524325986569709558710451307325486411646591888159156672999227571680754948593940440721794098192100537216245618504412806828474616557679045597773586636966043687523012490413613190791184197068908203631850301701906043720314127547811367765078874885446166554340841777439670933540470553537386779846741658500722953508296923624061301330778170799590429011060162795129954273010432917616905670829531446599559100663135391562281680543010424051131509764185042256751016361845285705197963011627334830279795778494371059821786035746371451850482233454904400292722087288610915838981007439651244266978339894770412173751938006814854030287357614589649578670352860957705191201131689374902470402972785954981896293547252661698448923420510818230903720134149792477703679359447324233566464082811838256034833593280218689048401050901452256122551267822605649865717104753719169989907882360552467720423627057574509174815673236231338719499967761059634397053658793086181191539392753836797659261380453500697779064900570081001723039261376398279469852457009318784449182959007531689740891145149871695443247333077542662134777809811589518452116286885619078094050614903443888699534457666439091339933832911976050740413892929988833833623967945415728758632550828339986593621854425373360472883777900538577347613863473464654658398491141076840029242218154608707456811309616704366850533102909039495786316920643636834480611857934984166947544689286188253848007052696129337372659382880139465410860717001328114907639355011168626125239654299943055614840068378144978066770110685304305040982966097339932839831438350341123474046924645244653567542766977465860542859142902524955601657561500793672677473135173238223554291828899297902008855589348235308895356266650027807820230687257904077564167410999604090225052717894882358731983361001502796839892608898091407579449632919684836273795977284346803634225568500331036304809039711662523596690299287441353403603777058940305064946537931272396464305476110715304905209126062927351647375764460538077507969880681796868597885519411186480908498541054200949078287664383474381416886142616430138218478295018441283656996123202211801018937393862951530322673216871187401987715500533837217257126890825502698449700726353276536814790911510357137103462385645964201239528861047234891113133296970954177566974292555536126841250233063992663991076538729828874890533123491501227085961399875719597934176187292422765928942634439153569523795734814182926582096730939310540615236133062021419999859632607805274389856090218331067588437891921809399058529575259521980859123000620289154829572575498088540659436338553658907389774896370937783867757607831008393879922097069697728907636808084971629748507936895397537346543878910882079207272808900389109510374246908241597898295267854210983317929096981681471261409806378153843147773068837658423056234594396496348493241022587118526120594222067247070898915238054511765284788659647005900406758484406063250484982565240280228230758493478679669954140005544750753487075917960596941786889767581312352111375968772581320778717815865032425279691399788814765305383679197634237178223023756730066405894648792107917300253533743350724029800173953715611543399754145168117106570682800966645555538934993100198563318497139192303735893304794348952940967021002888331487121906771633740748220454784876117825100286783354791616819961311632631065675832544649014135417307871098886559618276460844081874373188031644215043464864330719615353407583541345818838637398894687770900477999046146929593443009455100646215795985105929711836597090807084228519481495899243743336370754790740510609797543193264334094080921584314445616162049900543793988268262711705561061807096443150476693206045467567236524794190193157274278517177737611981617538008629172494978069887571510371718393299639587128535958114382012421515347784007628458281506413749427268406489928972947017526594341079780007222989426625850413232467095209921680775495175220825012054409792593729577013071376626017494289318220195625788314202233454820027484341711448530935323594554342973719717134882411018287307875448321844452730659321448870817565573842091544565706858555039550075266386699033348998183819227310036331749440552667348292914430034794256841602078230621277181098975072469054980720653783658546124330093019459485616379791088716191538325748836726116856208823824721413167438811158915236614302371723202163899067477467080786019538650013093229762180878060086744875442988029588541952850224748553140380254673884167265839589506173588764912632023709737045446674247222181174834993843987683884976227985420629770328079330580222342634443696531964247107481338287059196895753264380083184457471245691647615339601208106669608088184684612919988851195571211396429419388440311879018212377246033247521132173792203265504478532062172574700763448613914607598174009146582520165234394691759034882454212601695475987373837916948933409405786020067938153610625957433364745119161088118986644927828855524230687288494795706302626486249171448121730682178548395087691635835684943082528679817615237467944270274815156910306610474675564568117948936499101341013315065900899407701824357984924489177119924673151004021531306279342452937825541779320041513269803181000064380907227029881185462343348545361715496149274012635121291876344032011096209568724905756793508061182452905515583430138134764846318320052162121107814764510246963039341301942018326618444457239657095725330715420471421874439688229515751319610637432176887202191818564608160240733993333018476906477569410883431717371136529144541586018524259263240931474126402440661625847927444735619299430156052246900456636219629559516900779133519450837078208397322663645772842398655750237395986438632233332826532021573905544133892861522274555557548971525446762890081641627483506781682412330195691868719726119276150201537927174132527836455555126309102622237342363983406750334834301619986900455937073833647649354249056255735343853113938306976092677854182933856690740215559374744467519077305972059729382726684372697178196452833266998881149290559850363028500645440558527837714362384098654208558636158669924540986640489759103497281740416694538060599369317641437514492118179924767806739402112876425332443691415774680695893812132243123460107315314055507002271789317702254764574155378701080566769953588107822467923186538404824533169901095240181136583047845442748225987219572917640736512154063094055360969821284442947413189913792308097394521046938402623821975032032157077270081035877947708767470235430547230100023293793587228530659663537306002872822837517247559505186043262972621357711222667905795928217095382105684973627572478491350783501125184322209565179123360755645568753810403298251774208919402265971528873821781655614643917799317697057123442102075545319683956717549458648580261714999433107442100566765458386307705041464260374081182767113255230367105140384339684596201154298384958969347503964041471972654824397393539618993447776534453085359468398330841605480739574380045124797719793991300140669996078139447105379759921613631411217141642024651863903268330025709582478810712777410186782711622561827998662438205410586716630849163353573649761047199236432828076523643008051384412267632466536590775521418115658060062888612817414378016442397909526132706632545599393085507341524460801161370513072257311331560269442640455888068365151729971125170744258417064451424649394587747462675191769854610230066579104442343918842721865330758716257138410836595018559158784593773906516914981827695527932949818664026315223941867050127605591513045851825130042675826056462520827035305880873824324735053460281147084783929344010213568019207808360693617257543655684836340828460473255675473179265984781141494029955997637708287320320524410175956888507907032986437916532419378489427694835007107549220095574570672527955941118260964022692025951358906204450835233716389263991941301783694793272586222396641457672689747558500092202261592007278637476766138709778258129368065978799024665341612433903031647855482709339888790125819469093625198656378205052113923746480826957946928902458898261582863106763204836209167402369992383087058884937221991352757896851842592649299015253624853545090137283606444162606527611483434038246240932303935535063339513666767967701610407714709563299377076675570685988092735326599869130656502709206859442982654619955158860248737071270660636214018853306723237840430518631209111754819883285166516801414489204649683502692653741113454440081316581007914835920016765379069182024011809829583504653428428114196879908583794071262598727375002388486272516766267373705545252901621550388121758402862129414726855908451829797633036897703363085347053141078413420146187797346632149138111953376319534841452434070044601724250285123855898372479164552452665469586025508227561066769067937851636958246810480697568923308880807173015662428587442142772686187168926732219274081563018489121920607028772025641548351965726077837973661849781426950391321854653635888434313372328024350577621645532946060351610644498543511279890712665427390265297570094654054018979392242446052953723365929663760672835633613686618956364812171297085508834828940735634153070310856958976571421498136257840633419532419907009839901829316165070281795796574987187592663794090048728351152444843628751699929780735761903882580936722293654946740715975263884962738304557979315048953110882805924109033793428616067905166028602810906777473075632311019470202278401524364228822046319528532703809622790651247036337674908000365285093690635879847890524367143671070997525833645310041064774232662171273718815839906514467360868437032361892584099676090901064575732625153045103868016735878357503804505374688605054078570005053649867176567838513212932120755219793118354128055778964208388476831237415903892781931056113103289587139900336956676100958716848669725511057514124912617399506206663975420178846350926552699184899722931776401076374433097838539508669623163864185598468852390387002088894369940517571424232948081648609705999616936306299507853320526645730712611135423308708725392132464198643738222849740630026184224140118411969329399333700854413892263543315678716072212390383758627362261418431792630350521896703728245181686344910105186317124312963355342826681626976219104141366632941043462782530976481073958781684121703738712092507482078996968861917050319124548613963903260857101236503552656079203119314125902479783531299398825694952329914145613662094413094439654036373788342952632799559997935015265731234490361110546475821588873345802183117652576508078197251743204094702611025212504733360059485524187333319932743907440035546102736164804335709544505825794536797730492013913920464860568922334750893170185745743574009064531183593736207448518602549833501622544959930388413210886794763833376753195874934517130973074586694421231500342568511973674725454096472218022296633021316005666406581200372081227007940153658726316883536348731812300389524225219571859671481994333120843959913070255827383984574622407422368899651683491884566744371956051133440584691199010428433071651639541474925672478851284113609522645732352391611253990983521138822206619614371930104675255134325924865854266436168861250492310987739370718446534485570491155587996630267844532578579680380743614537167885549977253617075430762711045331534844299351123015182326975004475463630191684345812647106480703433217439714295253859719235334847523784946441315804759565422327342200915506933226875291008237033173539031643036115043033872919146840846656889651716567358859399328898965207060413511085850291789322757694744136669174056706846444688791497870773061360561780367845142420753013888282544690983425058367355131070664926278466898715967710237347013501136097573890006661256540798682658105802814939398226936121155824249761274308769232017162145935069807119919650915376430147608266448440776046842720740297756116483537607100606559990309629144398750505327059685167184266983829322952934734561645421130275239055839009267379980766134832355378088965606921207343122503533329524470410017038846303194349121650848281877271214463961986018207785973457985679176045362771716300113941449873892638655906761229821723833523630661998761589975425843401764634884146525876736942183773786475144286180525689515720754539950354368287271166787238286352620430989047560718676947141516148236611031728578373827469157097384778736307609451662593987497491003625171656271052783398418687204865145921074529841390822117580022850285297575260493551748423502657895234613050120297225550653451439785684858741513236787391157333605597108811400959061752865866526267493112388246676912574915602343857665078627061861441326134609450854115949910308277087667258384210458042762840085364964141402229476763102000522498473514310628289482435456049398854214995651040693630478504683151667217787682793537626652689403035800648335986021459447871136148835593923515505941207732325716464865006585830509296843677042838323645293107666293306540438386147313906369037407143352892578697629816723616859987212733505679364804687598401194412360866621184054760046643049522714402704246890732272534051950541986768765684121731614284594123572051931319863824583261536927611630414977500168742635049614604420718549205001589186301691051313828379995164703812055820015383332535407562609046950586135789636208289638721255902320296846266693546763663103901906193495878494211235764286408957847675992599582253135754548693684423547293354663976477425054879607177816925467250551157400708715485790392572161206341697758880289621951652508990440846065311983090567756881281603644765506141930759228863759645664406774850937984443350587095995925655182306325401637468475316316866111907772053606146507223978704355283417265499171830116920474582390071290014135662120006125188415433164953410571324235118822890654608285761970078229960051315084424167256856409031183127620641461562581115914904904623986914092447016609356066337277794141261916148321404259190500675817644574514978121592194181227249321482535198413047453187893616941098487453554383904741899097712215236223777750707766155479173092182813501469214601388928922894986987119991916873689253872765184381331848625018328966021497409007260125132412721060910603811058331249248314067452257972339219414761646315088630721079119577649070885525482174979610145313232482084961667215926294444606589078496647812662950828361971999474396958257538529444700406029700185987666153143516967346083734238145371097685250781909634469082979029150344051086049914412267949253979499929890888197373952092778055025504515663195674308822340311031112353310288014513963842751395455833938436062229094210929763106980461967647190972201096348436111443418978268910020978900296687743744742069695883965234351443056549076686500765900209793748496919708002388342993213062916961058855546223864981641100454052410156721839415912980892579930156335844400232873241744480917227741090242892336643304425614350516437826460869273791111726786781719329639760631117468682833060564267123045089849620138813921566834598495715654169629173396913335929507751923581376526495384329811023123777516996417890626943620075860840274888556907762122347573326936753467510929828352054197033145006622600218765991311915390236104525966666395539557792978564252792747622432035522788677995587447101947103497623102019370639582986319246524861086625441853037879421920028576853350528826689464543280089808214068490182863714185460658691586156184879094943975503175692199148971574959130071383898853285582391176342830836975184232644327905391982783852548136290271857922455410524504701048113749121323287939433381814345335719358625015712114229040527859102709252089291868217790455038728916597438520279801242982170246881558532353067116098322768240824039928528177071545472665034717075317249447527126358465141837750593762394797305239579540048598202155526971962284016642279289736532747609869349499517371458716394756740705503138993621805385395736173443219701699669788560587981390742224061871161317505733335337251642071297772348262618297157554712836413006475116931694749659125787570555923670523113209510327652218847787999267795224954765181974253324029325926654321737189492705019204473286357937055744920442579244436617267529308636594098573974239116951314597942109054569636068117355564974553239384833016271229111123335125410093879743465967342334053213675783962348126963011345457412104825743046132176734775700044243725736406216398746339522748205278006458505703311283457323787223420203244381699591732823816292656374783286817894609117201684503824035661487925173502626557085016322665043638738155489540087835807432764267138672194163056678029730378818481082174924530123598638637179076292404435000311146533106036745895689875587235983378018362719730181499887425197883477009796607711521908130770198383901177984006335561166437288052249161002005041353831378192415571220936247868659541274275436854952910920458121913579481571669343274156903965135021480637130843119563771976200021520622455483082843228016216471652668978494513161963274868875496777613537953703164445315910743436352179814587093468563596577161007570965282102687965443089623405690186522634205757714809142670285322378831006484787078726922306395456497946330846390999268261754930319746971999561944715478260712961831468638052039763829522819447916065030023948944288023022318001152967388124392191277054161044430035669815504844098593566432339243093830435347251390826883791174647196453688710013029941637646528657521398698683123480820656655854045649006162089199123880869884060787684704834392086497285491720532747940721688168752270306843188084063613872683929736392866041923099240229678504686143498708705900313010820926739198253355482321021898401127216627456407929208769203255814683625650697929360002130859729008037792433594590094934951495105094241102322109243370046221063860472815234509575768217014026957874619768634937522411904255041562821080077902479218857586012677873576983790752781059796116655871244520982423804490237833985995994632907761627680640981771205637254213346213161284464047953506661318823117863259077463584511615465252685869009182012180025644405905665904119565794133798569173759325829307414822645223167902352713514959530612521600010074844835513410105125380011675447270518087364944217218153574577392351058083084242914594245146164756640182095225804379089623583561275884333907941988485301392916043729807425803434767056224779861353379374498818887195240098796711126678721831538430192552999496401249485003829370286999426219349322686100051614140384247186828376192387343063904288969386814803097734612408385188578409359741925428914731180581324124362290507042953387242662125729289169507353179471238135991785885614481601346712247317946469593473098098353158330943707659246858556343410559928603608319102264250989821684092017016410910084417116511432420512705047123280474749120568893621090473927617007330038356728797476597017729335216088966543332774730467278204212650335849407441083678978643019429642681492873617611523845878271948009901362506746288576414321273074516767373146149641799420718569260667305411547834330583204198447719203950308729021955241180736276380800775270232495238705700427635227814576146604838248769837049973041528851761039820119770753897922854249822619956476224897436529916169892405218515880718189724473128059443254938470104213935882255611167816825430389081332966654899850910966942457935017893850075521364472753320965184344014135242451630532026780565767360816848286931074493046873032020635704430843085320649316692760231722062267281580240582670380060888917340966747877285561695008023216412427184877292926866049484243988085263166669001955917305884342471347805572651301433825745316675312017762498887997657448421640557684670150898834799447343356775248228514385975660233869378267440552760532806041359027055775992610181403426327661524432375672786778391266122426683108403976890817468556268427592182642871193730539341814688002642942136043931949319148658607827045465986942001063018179779147756648032394746360461978299482124796414404893143324385309227278373627960997342105312818105158108972107450813658724201816155380774171907956626653771401001527058290269039926375828328128973718412473422336004505027174110717987016767555149051401086068422966702190043138153533793436262117945403595860354988562945203301448839451428037580692336395639443342193069997009981752943507495125734646447762820321024326336246997818888368184375214871618207064851201683014622819876422880090573271922305691374576594667239682577818360430874733766317557545809768708015399695109075795731603323585107821920619555106410361031784588206118706492772662151639258196665407950063772882586375946071538046319151380125211760674993501221488201673715178344652330366621000064878684471405584402471746822578448903322799131305303790543206750185661396861579869355475367092244513329676333278397393179160737503122928476489947392277456871515337720198851962815032620044805787178251731113347690379256617620496305481022345322193636831929186044533725861164919773424344648472839196033064523646282076839805689691471831884013352896465229836805529301008513806442898936798857774235542953339856091024232940996596916294647292761848615287295782640472158947923468286459435201050412134639431891611948938072024206136701815992704159560840351904395032725978431298891032593368855737676146679647390827481606187316840398191600312823679636929624672754763274244240911835810887688861047007817585692139340750188903354939875009916912980508025838515122584964357053956995730987306832187773370926944986772274418686341707072804538289184599029698425645702689317669647127699564025498892060001427400988435949546596109840030823581230407984811178871129496142479599552435432432106878086581461884707591240677050095765052962938016675874437310399649788756944862412330390733332353167935514769314251386918754037278933877975980331866798178099734579358933574980834974706194660904731102235677652621408870709250374979976912165094103811338963238567616844400902008151714109241138474063742036541878297432930909057958655584589212478186591990578651814560663374635245541249824924166369842308458355398903250183523365685163999036629650911819547096985535853307009060204458214908423239030137738145611448404077672187758542273625601574863674715986118463163119145409428922189303624775809617216565991717251382501606440610677034449732071681013341308957051240371922590592200144949717575000827257147580830903739924395451959678968894375696488223279816083201765145206305737319574270920556796673868183478812894994732659365774643730553667536029996671757417744667421104552539095298417102174446245208435386826306115225619566590005681797960540855341157401561607920451313171975878674825580466065043286537226580170383689694118771436730909803606593099006328689965975471374366885686258951280758392228046844868697599890011498659307650903758087199156597063095752536426925939759094074646663776239824917189056440398296273660062495147778730731830826815079765622775645413419815409083254225426471601852837879991948051687104512064926217604997508683183629939478016955745146284992773476641048490548890355645736306873929692169066478686517041775020279184616618664594301783069306108217563572949049953079452234425440792292477538862139770396853261477640778968642547051950359784041099409669146463186771993847998742687253940741344474791423372487498192922987061447131504664782730332178998068272604865180338446345254148643826091895152648853306662419380648494888342705239272777957300160423001313278514710311901934058795166785224861470958977463796497040977604356699071392857001387160539360953450684448110682813788373191813552904648853453957488882477597349038313069807487674159933915410393945718890147807570188688550084408415958663354388417147947925260597286470566051576863798228214285919481007137784258131517877765635792430388199705057514212820928272517060841736231451020997517098085038989727546996685717427308672088656599563545139673046475863545934768911806915604397452802143900929638576974223757026945824026808685344570978279366488064034356007822775782698418606812248449508956108114162287484503618620201928695837350997307693095604912680344033927071446129887345566886230367936861555857911938395206243618774043406665816506503173127826627043358225365725375033031627911964291406382323023604296627368971110619511090915081117609494176813245310774172922755521543976883110498302746693657479620099590137068830849862094416672931949623412113777937135676644794909106298624387076143408156826578680267837471443838210192664077771713478820922221667288171087462760693226693587243788700674288196925601323421973079479722459524104075404668725867243574312189954545936898763494420000657524511661232163245451461856573980720454939778977025939744378400221673814511546240389289026858633309389430505633022098655980270497717788811876933678058013343910815338824951438535015973645544346776916140839901747937300864699522127147060480643493037634663081995348296834508550365557332081440519129439591991121729624939010993045256857022619694644450909470320693145990591488105438959322594272414259814171910416250404139479269959522408970766806432943643009494988509317169925380371281928439537735328756576125583488627054362892147181565296320127473588890838862904230762193950397563787799535085209070162083217766374420250183942742510650697738343360049893569239862081481899100513577192614421602155076621455574397080568699104813446353642515580705415069734662161525427797994997470949067305801681342123086348945804031191819533327106540433451713408890196512288377100082371829613808626964847997106681804873397614770877796013173326953146386108661300537757634781306234933834805540074377627774572971132000434403946897720705960173083856562351511003335505550338467987813947805679687595816293027623329531904090484574475285559333724774366871898805437162897045964127770521996958268131905481007428299782655544816001310206018543208396951543950799557583105889110710260076459017121587353073310535735644081508413237574830670704168594218304165834694150144085085082826409693789679421264167068143850763494037677518037298152637459039529835385165937740403690583302989519658454239806228530250249561003908016632600048776116412497331916079965313663078228187621060092914997804269200206416511420453637882157448710407141502250487208687477086810993911199531087857181254624253807128510002911255303925065454144415104112959885141323953480777705163568364023095785239557844438791678856089784988276677347166998193274355456506926178172034816884051651378000174248826946791178954375004022388693165369985701990690269252352879472646499811835690096420961811240546783828602562977567755947622160644271784610495525312445276532773874385030776907647347464428758178743251260725093450491625952491298381719346062759191451747450112386379281797748313865921672341147036717477376435379767581389563613948184783596355527420485922236817293889126223393730319219285451980055779326261568933994726049221920327532854162171495538458453260618638508509988360601014454056685835768925957179053842831891282473893153330315633404755023180954533420998800263083466478782977153836955166613165275150383721205502498849780609345368665602797400889824068494744164017762792237409166791068193404730345043348260204516217613314467086015549728237078431741259633931666003496592441466518494343566546655547225301108028225265224913525336448330422498625636172078520245087253423594117963537545476333957965484875263649530142165399798980100737124929662224753492096006058424255016538369767243877134152753629499029799702755871595928075728324158274614917340813201577658425244377575392956193073093957277195678606138200255788152194718693838010895866962301840358303443606833199255587018867971124117881332521869158412700306474635229205848696316825450115681108942399201370674971573377518022451959506487636166958520396973360401209699989405014971623660093188721836667149883953147256982394553354683304468223756352309144473692124703594858629602901648480628752495907077182132959860149913829973991368492361737141315593946057822925051215454330591907299480453827459233391247873209420768142468673031784044918226549785475330363528418782950871075664131634969005904907945527757550997895558763353514935736861080828270282768876716029020934791948037041379837947982674190297832449036138348128419571252103120514272163386026122356353537211343004886668931882310439814402976859190899098739011491187576976320428040928729488012999900558286309028714052581286053139080655055936144354466722658837592053201999052931097966627338035704936731758317424355430091635966896451444589719240722229860508587112730078179707972373234910004353123431175581379656281667162921724866058942776674980432972234488322990626533182944374151309910104382081518409836362820685729540071190965137384852869968462953929893343740425812233008699057415610353231981761024675181850028303723899190878543473943099975450146718529962566650676454025521397138650161451010298119833496999090722639157468398464867447158828381505901178302439359632754687786233154507079957549816843233745051060445249363859432307366777395312861625967610717541328719429141249831199027100116229483006012421743622295941257862983166291206726103720108468105996750215235771184834464046431471450630064594002531574632076611008539193497907460584480729924847996972768491406546092954662476946221548384915726763409445845999788329275040695324128792216419165282642891380194957436759656503852893404294468633445337888090416036812515379967493452839249569845588051479138054288037851700446206847395093801936763761530261295150320130065971611856175913044016092718538439529931228077260819773384128455036163271216013262254860644100218161321636777398671244109637429908637519717402961274006366743999248983005764339024878424219762061130564908027768072251212635982477230946094346050448359584994010984173286964754057479913205498385614997573155641507256510192518995342255456342252474782878068235727460408285160186524770329428448202362146544744716273707140541189039651048106585474744282113061808663906047718543760400460528868202413654762969866665707886759270464213303240475155275335093222549228708544449457422527421386876999751143450259394308233646807432258831553113135455415982342068730887926577198626039576916153418290500724660518988921539125029150029270642877045911147691996313374868218527810117838520143326036223570572428938045787611553540656546797709006953354976212664407238891566603572042637622584085332263377098520446193906448398361340106570352597169103468529209900665504994538554628886376394909707738646484105769993671680984487419311574184923201216730218554038223035056933352017741265904429554975888505949908234066746692624285465721108596540405520419582639861998016250023452590962197973674854894125152137898820741491352569768177970841885741464334833288996599084557675800681903047194497668842884524387602894988525187631536840529152983748534278055886476685192657810451896135750489182884929569203405561744054337799424830424635281199338435798931641814051539487047027583968903322860925504625610477298194713245616926399417908086952854799673632339952085730101614735788944352005992606476746169770672624145470796978466870740589627523747540407612915260841338748380059624537091522098986368622986939775171563990917803870411186939898183329719576295717992398924843283928996385857683124112044031546159902270681487706170732005733909395244205276052279145358530091455958689124143242001827391255463879410017493611963980664891172094824733973915897213195778246206850293798407029915807570455489913017070600975885137395042229939675297430837167513287370942325621257063265776597646754590891890857167648621370942896120480226484316060025628003431756477817183240177840359317282484870455455824123209960690455888943369369161724552073316866997276197571090561870464406888637985118658506623151557632228685248230795037420195180981605648523831456744161233738229802923843575270895582842525825214751841452315178446288440443214800088412769039547427765942911984775603598056044930571089673265470994782338331288195810369337793941352976904797959056188573886431969926238058362920281918299986642445897326678510196002031326875226092223677571255704752334021574258782298331265001692193049026094960315927030719891572841723543121924804373272460255957027071269853971261105773018371444709448111119917171487009820434524315606077194727955538445047008127580551608527665799649044042521843397964641358512352710004189667818350390416263323101829689163327183785554037387690827928711469336481020823266895289671806219098042405275215855467114809174244409841443451563002593889365154496661888007930596756741947443626799026574824600467005711415234123738154434674736224480004705678431853157628875221834078074010583601023778634277616244866529143853556103101781139093439111558818693528528645903779777743480840087477151084506880692778083277669865951386637583608967512988622483122549685063281537270397791508913315723767278639163258350512691779800634478926502576525979531522745341499654436677981563864467731445957671195889098696642633350314838879848520939109597833095790994076329181466338422009185933278838368975076391033171047642749502433398262492117083311047803575074672465532176928626980405564119474332704008032272198930094496889679367928649001219505035251674132989671890823085413312606433328630904086401046817001777114307155963936266059146477616910179779385389618156742134769869355063338943880571315998174797209358034153122111950977009622277001591839395271737749153483015063642577020723715099885901798859874962095337077321736527074932838689329725268082528328455157609046171328034952668463954140474298903594243516473182547638168836937541292650536227136345948371722512293013414063921849842122687664512333896484775380928303520562186992948995732194398014023732231587667066576728922310071873317113843642476073823601903113841168545957674431203878829141798610891537072881078186956767833091856924194690103530028745151893629312811601120651244363401817284341206775870395234533351279228891523249582048936451395689623330979472195555829224741210635256041914972920791788311699385458933329260865648130491306354209307336250527611407998278248469888455139051878100568492445266347821768285015162958797934947838112658021666465064660855673129139797124431903072274462496852232040029027007164986868362155200419576244635474065910392161411328122748960827730062004618959170940159273424375189835554227516177695425730558175431701287402204171944133861706966913235619375874854947070601661801459758518747318186102560248901635440226575396488348516574243799938211549991338618485705021775986986118833154455385822188811838703531567858933076014486799271041574930748783516690333992352702839744731434834176756994233774775855425219989016674874242779310148035234604789138024365049654238583332187080383888955449611081350454363248223199237581940353273870780789815113398974132467417622847984616640534819393736922093788129747594279728289892976846034953070174210609758872052141017449546470581180975898844196183861427210037626649277837733542986212337781724545092941000819828367265970789878022076883556864037370443553419375032187676723370249720498128804721910486126109326834413947117443497445351881435076387923058545482802940839885486871962092583317686238643836064496645639810597227299321922286745491567962589398582397696664629602016855200399094479960868268101572003527567343212918220554223425745696853573178270906647474768511520701725672307975315477430015654628752576079031221117602395504620412185842742434182782369946453927051781786647139318277279098440070957329663815371821702578928112327476418192452950650311045836886336133171590281772004830702495927788306319514152064226972963800645765761218909975152325098330619933710672922162923187352143775683366666127840084660090662652229610591717583003246397764440621589161926302504945134768975411068955633345233522803688389150568881372131512453668745846393602772037351823162485520715407352216799503695793566818385670676835937097697485323240290887129725493786651720829830944169928680057077709896783374854550444122162241128567405164007514169176753505294638499924689993613912360127052946512931347533294860142880482029110511430071570650520757391939815522086799359172393586659739437691032490314653227087736815659366066241362206937526492417407046501358184394972041030092597533250734150708976013597125861478555272516651676840450239987566619029747884015688455348002325449003541363662881209692918515840724046590280306436742958295436484520404260661478933906422288581227303534550800555060355269716617788071822340513002344145558337525595233664312724517042455431077579585868926436443971720957065476012476404628634674620519749873166274262701526819471791244897447095362831235083910509830322967601903934825200189879732066857067894287536554317791263076377936170223071583218842942674135918458412340400841471595304308752009993924166856182598718950358436538775665196885208063523077544569917164495987195766070599880403182666866469505341193521217899432067982486121361724253741478916930783826062696957021896069093381451749631502781071932323946360160157109981206556871347714604298265108337937588516597170034395402598296575857251959691073892148204219911825761602476182870070667118597140016204347716728270768460058736626049231285382287137416137611414261543101798832280561030267768657193524225084355819326982430451418886249584082131692330548214213119099885489941621665140103294984715684309595124424305157179430395052365106073900818858550906684698213434324289065055814106528699977729512555365940118057628629825818601698275791850320336959839293198598276287150684091140357728841704696415635646926380021586180960063316474158403698906137366134727956549276346874363595307262194405321785786600670044761890822859658319529624895468137900141086125951463943309043365276321382224948351522274596290872777619865995153039587173817162493279970245696613233344017035795463883650357894502931118491771379540245013988783556929684455301393845301063831236802697599202845564378695079803885246161883139845335822715917149267404296850287849698508762621843295611414050767891402866939220465664683050787048015736905519788027567894920606467518566351812335628560183449807197702220975603037224618691361996027742176292333879583806731770866002881947504694656902575986714782701327549884773070871260873487081704282001018539807173979844785592510704975409622543886477124257668118289562841216291313522121228727355807128719655148644358326053813042539320806423674807862116361198640217182163814478902008881657613259225721603910074736686743249224401137259313203303891010215808741918260117664135619650495189718386532405500792375547732063576246857175287891183683422364362232643659437586259814212851543728798859377535666197282772582134153884747244049203481760378221408263736454802542186787232592681471052726309070254448848998432876047213490722677739882369566528264943559475376024223304132597291309049031741836584435880970512746729050922250706809175807682350569075983848124544034505312267174585674781748982171816702041593017020296441517356215602475378777023818651109546096450951597381121108738473991443419286529958973204458430842607281550890999928292481617810192250846625472832307493566893513565024693942052415846627267381852362024300935404943310843618045887670385834994621240813135242416552480748927861849598369224890860953222405416364521271675478995403334753455686959511201414872413387401552316378059974486920726804041388928942014527939341258354489575454647412633490448580318312541660275871073287423883473129182852808492671171744312456473192528392978638990549238925378715240609141725433648772296706266374307735949243337859780247826927064248436784803066869305044992687644009725559689189206976401789321013348661470806076192600332942080238175233826357947096660112541016721402466230282250464315414484972590417809178235054975986584272270483033844335076340750414720057189212624270375578919953565763232904621096093737637799624543917628547267447747307260955245619145925093743125930010550912782650159845959879289033761370544407873297972571603093747652234513728257511543786379857163267507960055608535050976873478218480524428839958528053937468610116804832014559095435654127268857091102237079781942096615199975629511438228520412504006378631728616252174116625164158020983154890603883653598360774230491975212984178933456260936878515979859199568744181264528993167490162873461548646535433775667620516648297272862346124420727422630852106176465392606965412569193071865741036058888068310871735834851198511102169500784667558724194350070626878436677535962583847234775329817683194125761466256914683765126639382625998100112797601261684302403615653546050214322672934716408726188957204722616290969410782655017131600812311060757763384109701638752125490848973467705952606269446633316463312849341563023344257915591983001128909615405039372442944235566469675529641023754667924762975721861317946074203838638983109498706873927906047978299099974266185023043169962753544222472969412430280956738676731575281624687544667198070609782876191257656920802968720807877647474250181791233712309800375666291179754431844885547163149848746502549447875601249645879153941421047066734014017750142494765561266623161003074162074516312708818175765177697126105184987358940348928006271510130481115752107531751712135016506496830675546841446050430186051077856979628041227011543995514341640467141796069975675041742237445522288731613766450013907902483154680371996537335659537355081115413911721428364240965120658995004180576467835281962848262093795692357798547800303893795503671279986554189709261056405323403116991535052586160792386871048650210597858494900755992198604193443458544977403886120433702536488774591888466105422822079067279890094690225113361007909030179138135348835925244449017863470616895414454779624350355612607447320433100479136146762209993002169439625715298828890861476780811677345081213127910553772767170716522219714225356067454116105814235691029913567754807779334525669540849333337290349397862939727541052563050174610756485420598752270914718393748975314809842994792016796078451622536646634878496067038780407742302708942646689966563832612915257132262181451040400787614004275757637905681842466097484565481729168079871743861959462559014674331980181580507114255510281950707882867226310758938738353550050574803844454726730946828135589072084144924019725389626732520458125857082845032846931295926012350811723884826665322592552232783566296038060302908525505736241249888362346878531330970809807163164195535262290867518623775332638441786143985020832871076837237979457860633936755697006761883342533003943791342881905136548915243387894740393471250550739907955884374768396927001284463981418339425396008860940766201771286758946755600763633463453343478953253385928715963239945510360183977818596698241589855231972088647060595764945572747966616411651114951583904833763834783535276999889947185872390606189843034911658524934309389650081384592146137307142132718485742814726961124644401514492689814158138409416234894917284835266713676678074138856611741690122769946959652038257483474651467874194948849308486983445349089056034868473634803054477284209393088470087837548532963355614704987178779336851070769859507114627878232735044798646879802310181932115891393915527062013548317209061152758446672626571200882748355118017903169522314791251035304470915169690828874376619021339261974275398933914130389642778695321170245704930425529245311102256626066117680239336485270365488190982297985169206363171168072428549592630003896560314642752892892763405629356435813611261472314311017084981115391677052296345605767193708094217158700254650544955452235078411346605558733886605832691626435409785296462008387901767235592394443011411847104554478342816839437810537024360362015945546385367802652380560097371778578115551933847657112266560223687299639225792693486712766415967135024791710099243711630116541014967725608072362450651495492078960090462799545499608596540325971289856055820247925346322141529471533280686027419560293377004039105141601788913981539191953198582461582734434947442659515682071861304659712298754605319191141996872784002140281527655020421081515945011552810295926079565236517795949458915811967286688628728099934394939511249608957388492380354555112084949389302365006644591650993903169637639121275982772631823219947011932018074979653934567302316706492242996131029608155422026193096747249564696713674921139994597280077980204261333788442840460014278583402538896947643218157401062470986385473434653092706069985217504124440123216452061791708528159654971673083925450609288907582806208961213472197331160281822735354214248048954711887630886917845558828366367518189391659237840601069743913304588560915258046335606421947737477097867576940653870772201512238691397270176350773614696252965227711342062308111212630869595385382670810847622959796619773956265044662845561380983032211667942553628083731053543711286017319601089263633623230843128127563808048709364555342680316147456710293251499086967703894976208402082119758635013730694537290323629569432217054503104874271460602313452365035014699724023081253044598094315289405760000217127830583183100951782142871921218130073556264921891746324541583622342168990228233435027264791015737913484999444644333528894894348679969314162022909169088843110512249606897271742926668389570709394565989032724792276875680952587757997600578171422113316488012970270012840548258746270943954752382806136978590751755723438969784857497448063343503495891664716170172823335280875873692816255331795425445097456848142841662281959716735025234868044259112252861254056095219774188001847794771065982211304150637039613103848034700335627079961511197472835051724570557827210647513928014130924060716512878919117566148376022109793495306628114431741920644622256714490444521919726620109645400223133525379999868015196974080901778000529239467949317419265309653632945626187581354696443808578857852860936820693788623936016797534417050113601791981540075310279145685875361791954013547365818449659223645142825757966906956231048807178321448104633665516787068575039052102922466664934265392193701713358638421645253395717582995969809997997951794592192947647982145653197429508255893839625149962410464052575127501135646678248424603651277064145496854991244135440393925645532028170527408779350019935173143360501023549153698244119424315373146650624980134106781572233106670666093239709399892357530837032716291086606946987264279123051683438213980974851121572634196578728269528205542593970659779172786340793908725457647731295927321192574847129333236380815464080580001634573632610374179152660821614985204293357931517044087305961584679106018026348667475594867872423836652428305585814300673631532250907552243081094620355219654291932911273069221676064077921277528729205302473804148081115863974541670389472086543969853246993971365337078492280364639573326560156450267762588272997245526278048096197193575348252160218871419204535298656542306408725726562840933895810380107689609497528385451676762257254509964623806788454918635829444575494783750209182099925085381346265063157884575297195663792342796579601241739189410000606909450756181357450865550826922497011972678313172646675234285914948062343650539586572152295461963847570403606137627848479152623104718571914177772909154357336362480830573773168863008135650156323192797412598639555467564312176003662617222016963477897930706872379138553039252213114716142529534157868032806816815655184378261416277288772829331119700510027997918503551862847842086615563619673190432921711778285835795084024503536210398775147257116429933881863956193972344216103865471730922944936550031271327484543916811807250400091591122298779415616005474136748467794026689868995880381307792705960259467677797618880775915175041232128283492559428818644985554333229057103784608324077870054574584950542510336028569099149032910105918720974844373250476390893894584353272352218856183399638628828872836160889255368516796125830295860312946769266309460835314034057101089719576344209176066040953900799927297592012015133063014336705256574396080166881132107075996544898296964449363397491879390262541713189124544778232243298121303874999123250780865356764900344838707925837069411450221225161646058829398685841404387676106379228226963397167628009939260135737820068387733063816874640349885090920745718717683467722176834923492450135599543080632877149109029728308394966496212999048077919393686985259771262367598396470471754022868332803713592899354653063661992097139880828095490551575273531563211008465758140444296044778199137881653366497869455435592396937239489072356640872911967308479803242268264290983307599925719030076075463096388283902051133959029997426813076216571006272378244360018889316568409819990657606875963707672356424832217015779532073322538063697212176794385077650219592225928404869421290087571833330243552029076519966793408863457656626083021987349628407977244131939961177335006314635645417284616146802334161596735983851782942750628684949173989013238503965780524958457389416090452389391294537916060593843972492616258682824446157801906630441787995429503237306574131941741164927100650272251725930886884919097095299933037972853685155506942447485269835962680744542045693643974428631249141613380372916904045513917782497776558332446101795792957760278996419595620798030457238191370715290442144960637520633635659705464825872161347787709926850234234661697593108925649840066528416250680602695832078529640758884179486901547170649391597492998256324314790892905468435762625967316713367032000487320683235025190217895858647642935349051513116990730605972351974463819658535979102376903676594559619537098818724792768012439276824605813020411641822246909154511581593656273680146507503189948798564147196918506859423391856153989046372822502881833577319060553935916803957148467999277657005714670002855098587557557298420576150125380460311679244754028881314873216548348104748741449908316577466458301486867872259956962062605070884830187725682303041955391264635663244430412861963033466655587407895324437007700857578622665556411370472995903881232859226717334929327229563425893023964890763483398421142170607911957945009282276042807981030147826317424825874118341320361894131582377074335033138020493310722635749614037352834079161903426484812446392694870599925117802865043977139650583474695632917157639941845919687345290223222726487330059508719033627723747235853500467411925220020344057524946581716756471107188728547482435771841996396726615453044669783233360116734025766686065686882171479495414574654510405446743020503806411592816941096411121448809863717043778350092501166104850523258318597810593693591836630501128231309349475042953021005974665990900536406129087272464135788810943278994804949395831803438167720074860847983719429263430487570640207096392089691038271324667140243004046464171437080433714290143076532164026136533281778279698664873551628832200903422446993786192079416113932102043838570113952625152033173256021742196472309211716754139553290879798418761119281078676486856679707714066297017914762706866636963808090655831055118696453638214359055731061663933417829949750895535096677170911918827800694960921235400565232561680477468083685279813530348609956657026648238747160680057860166793570550059255273928148316221063337401567876182304110442485125018358559805285415672427106018111312085974773098260445507536775162361538674823811835171902563691947693654690681757292172813670091967436367717854276619211646558567504793807494842430130416678938829167820838986783729937813319761012220125114800562643076974835425028416987256647263162407266238447734304705879453072756497930677271428998363748994889102275780860360368835077982995437722534553179656934941739119044952744206296796968979609614726924637126277812011731380065715809925594264488314253446690978068472612651635413743895162260749504339448188951213043089913022881443296088058114486844980202333231524220363719844962385410714700188734818666091506699217481699516040696292292147155668258676478469344708590414655055276623476558369823707027004138989071028589461601625814577447118781373408865804661084458229069939016061542383903184065060853595052106626322333605889723155605285232004495215395851735466477160021449632370884073181090109648641767729294035412031089159564261950237787715794217191362050822046543218351486674693321425952131663343708237388915869329886893030501044901724495227882255968674722383006964439169980766068975578422040119261099286207829331129179316539500096700317350966424375106650600927168568186774583485802823608766754459954031718749003736792963794999525763573631744760510613528421578444992832785265984575462517932756512198811867492455251177095342112682734187567573893515109210899551921928785859571235336602793289639100917944016039733370105306220917193427380172759380036077068782762073986614360589052368789095809056769708903049495899559844930078158502259681988788210257235927449079886072281232296338478440300352460193975016983590514757136613809666865951948096338678388516788971916617718884814030093990675556320231032692565218636374640063817086118254939986409519333208578920510073513740875795429410149605664157242351806400950252450804032941185549768938011954228055211845887243060587337219301006018736712133823876218417495515293394372481590991201573046124544664850609446937931150836773042112044266300412129108864417537663105193196147894975117597220554478513898499985341953361128728559036578334555766973303861462120125475898515364390181609129218858736495548059660969282438974096794901140743437092429208374394224373677389132609146253203921007162818342311223304724796200059992706690797261423671563564328325616143826944273502603922859826817652968779200173471671268386088538078817571042151435144431998036882075039461366096162363526047493265374851944276696127994189897085673256783702560906929227242522516570166015995551357726711032197173381506852093039073089621438713865034330468400225904686288165727033811135479961596148924821769697330711648014545824855666739148707054887483144720943206900056305188859582772039331349733131371386232645429648659810931727508906360584645462899015013684717090485854504992317134352097605286175249353783148250117019958147022826327204119460660331098878426489391364712925666853827103491136554340918178878683095787805427328995519590229297076198717422808387137252345965869195883838356757293838237240059235268634331541501546845668209724811817172629550088477323438909512902493115116107672625637670488546471102416547120128040127081362082889967020833578398461277668926403947321228422913200904274277381757070784191374846171615703410333390560722553744675798897642137626722602143272134403153362209026313128994744594400153380590344343553135640227557188991876009849991254384468826039673409864903986833639472251478944782437947814881915334692592096442608770922474407876967372644761631945521355000431863141985414083576136890981253399450793837667647640007367658129152075975905758854742534511278287802190839113235957036067959273404574517064873918163998336461922365020900774387571164574189592565648587034607631295406285126035798525160071700732391204826286232016199566987884964011987023956487868029403462859538382838778880328207082242566701599100310951205125060022209898447943940620876735062315481873233599743654154706635096138833295456183838166524939578247583688055769024960656576975474290001948502693412195306006413605030971076716896990854519025614412737607030376359691327034988002324220978804037915522615477798911863039265723621620365998439723405750690005156306441918740881434184484722210583225791631877146252709209542646552756485333029340975608344531332406087291823587449362845130310851425375886332283691303452082166578702874912807794858595298059486490366373187223513536853758909109253266852854819508013203978331529708948303992991473007101359359268519640927136301943571850361302790292168641968965672289875933760470330081062753477744379939844357184606638971831195560642579023151016236736139064521934779627312288036310839303455104889356418240265034963113271129600278214552937201451981042705562362781562478584900492500008176432634795604775049343253071746348282477697017586273329509413772789412401314970985838313524086375391219379525300076442816750927302897592756108939845290383536946460199539948447974118978807432050358351885070666928553093896507587644814789101940194925959394025054295918455233558261422814620869110919520346013288189010335649764700934567275591553565166428919431071989185181112808638699579901341602931136664280565806441800473222989698943188912728723824299690820027605455934611581805911861654657426280306255392934028699986147942025455449888992589644611878764321783208560808631765937189638063412622375275495349059819675305100265388132094206266552473096903379883034678893243496484263444408473178241294529843683525555970987040191323148619015222924909661458030086484985950513739691614241108825361006167849061511793180717213544913936036095520884677413389079337486761468510697336344332437548265373143446856251797800750833368512680138587295350896480134845143223122154340538765224051297023874651574196707339252684698818554803596491431872419091343310759509112924626233592739417467138856924384539432521310585081050345454554143114224177802362683834865015167070673122304808076266668971594844234118475702084962623797107957943117711168061133167141892799704329566777198848853833464579909266128770524697739752666395894309283901790101768168503984552739861372127698644837686399324668403844544444903764961031658243789372696121294972941025410838614517504033116837840020126025122362956267446754423129887934469452823462972891206191196066154273091474074452883229113846778507196722762896602403150023985370373067569559735032300051631786955171447308421878144665107355154265136099915849955164723371726083117254933434794926132907469873808778403254300050359463375386775076994040271399251366705438665778766669888094332868037129421229584693990212573924953946180721388025734920505108142405435418928214882115405201515880839336203492929716365562191834023689342779548582350303870752122478804591803322330102317732258931240874893603587064772191647433845794256919175708600907221957483460297543438731801912121248820408623877256775583639273309652908694101286932979313998500548431834249493026458868576168995124046252645239286762714223686424890223860328116496971347570107924869862290650649887086254149624404864044302835778355928624790490690083992128696586623829909732289602321794807274334452533742653905728230033985115105958203319608964656311202359049783667498114941915870886971953838588114204312697279243683745398715311050699132560268675926631259875470871148569405399575330811847547585884620997386742885958536479674188723734642845503339495297958656467598626032615024590158564518525459018945596983281083233148295292073836181047035349128348725912236636183457085920679461422351451309247008581764430898827041582575723479415838574396300326549151631506933863544606005887116486316004616837508661552662669958382756284232039216022806272156035899480314863038215183648524045185111628022916194958660870294985137398509365388319701257551898680665341605500068001733041983343356478730930691650371200682848323595911035298988635149289232865073392248131146664235312526886314934056188333542234334363876478375210721481940264468514210541336535224449253863586316666532932738368093109545295936245199476920098999174659717553373266656232040174018271188398057562298474769084342765073498325660435917748140652307850728787578788966312658517918833958388187170359001942292346595209408782188524911857904980025536018387927345832902070202152833942478370725616271880504472245725465404212390173114542727804840101224116998972196958133295250620021479033487759768992405686998437634496437886803771311911428959524768718469051119055560103444539066998004992669910054811685752490036264988544291097300497718829206979057024709282690703593853083828946298921969583020395079196900879799766730939912444213598597035220719741853034431076918808327057847824538606599208710542272081836771468750131669310912265318417296980507342238826096833163223571204440746014304965948485625455830559379248015654799231872677967434747018357849418639214928038797222096867540320273920913682099383868447558360573988990291896227109381152377937019310763668713825934857996213140385747408323369971944974188637049967558781035388684514740854559397767053430196591364687099721282336196979357623381111459370823043630318655467770942382634011566035257340153480530933687724336408565408013944391785192715280460865388946208719018350590186854734564722962351101061470015131886450505348059615393690398983268759740646772372763917131987303994702650648246721442571073064345808661045341161244571589873379104186375118745883339924877633552689297303743037626533756268230375303379566572870168925680347904746823967852780520255028480830075718790109363308377468103010440947341959493303752592316789761107488907366904584108751207563509520172960912276032273615787506254875250271269550542540020742316960474775990668288872659995748725507606176188601786111871720859263927867062830082281006805405252636164146711669367113528979244377059927923019465000182276948370262491049569354311671194891458406508281459481631048285082640424416209785081864416334401187630317130241216480797250623034284793038045699536829625961117747956450850854093578354584692198063550259539098388957991754716497804070780961799147249965536074577007593894771377182714076213749832518639213686319183060512855353291958903611201622600430236696844628911666249657364722355450826320310245003173597514361237006330974723846643723748412536079250477876937166568995220669618095572744364687114258325384542228735231522488094824122847031721561587207480203115449938823153116269383975908433334027386714288639896815268203240155836385752128429062550619760872705996495063976851095648002059272564337107346234845276062927697781223721326194312192610196616418495417042411640935479170150395279307266476673124371101006804423677445090878457636820231813944436992277581174779237848175939272893143967459439662157253076112809224293136985324430143352921199266822605531032923125062454800157339527865596912587157999337599655496024669152296704497209623070198905704330097138405520389029177257193329817676455890369156777325579147830324547744834494614567478932075037270942176952426467335294401279091934159378384046474843623159610738139901075686707193962892188456034542123791767335749114701798077972548578051353482821362487449898621983928944073483055140298684223881746958757692849188175127025665479888225276058993274577879202594252133187380512339155911224774346237317766025602760804023277633313992055436695229416434652281936942590416540173751100630875016628442549535122648757082345168504891845410372506233693564967769188447711300195529725402344043811956527597008885922606708310516989386118935318421651626912735646353425201406383179700081231962716560747485035112293221008012946957729975115601274901862314976455011206229447330620732408049814033085585255110081969534081312613345908312395527468913895992524751271746339111657463577814153675647132534803743204512512173781285459545515339188599024311107829335270639799978654343884631260144746743284042461100039033154563704043769343422771950465809093309327046138288491497990760587188675859483903116057882671285856252592175551619397997033585790705853470670451109498127350337052420267646430680499705144003172259132205011841170163350484376215821699839030839268475327059738677084849914798551549111632562990399629188944470201900096905734796789259300472312216794848223720789713985297101626876051250016803108575634523423189699120867077638456685224617989524111832081918745575147996493533217880895128017547228085276707059651854264570595550024009202988080049477973389937077883019145601873372035075514867553534671048153804571245476518814068424250431347302369856780775199820510787135861388098112471352510155886784454607322969967982660416524133377195049650400379054878487188573450749110269584570267001897459372983274561937875991845128403041826982877590779902577959792662321217071404992412513219501910828045667705641082334384264953335857764758846457462886540305409694156774166230768123243050826945719966645891938209523484287913875349513838523949956790387995217509303364414311399089384054495504287616414594450883388827723456795240996249440598185965252362697209174231764345082005494294386261758426190463287133280620186505033205193294946199026678882312292838896312992700937217181449347695546740451976783441915462510034052713015579114336286351591718152507312563287072589114255048475506413788926854806436995156844506436769743708456346133695518911970362896547298772368346543945122620038664733973693678425323022211437010945640553792103511157293853473112236912074364671796649289557628506437823781921355189283429640473056153679871819245749753542411726095469817591439017305911182832569280875242617880113506850390759008361537607213470548626277538387578559105835438119312967369037360941250948497084070297426647888949251500256586740955197131005798027543561590642933645164196484526758776324450537692293834261034883891536472196825083585345812664547806800592394726124828955287188312642427558638723689841677739843560018782655092698738165679586169486450278157817432663759085687344926953006994929664465188382900009931891052277644933370362570242485053504301571987648049746770705334226734686018303145026055793266493263929630755786294023928157357678924722217381350817195230045311039307626752799364372612611670908102916033297615290138389111381144852097745027652937293218380975091041747888209577994449527100269240538240874501746038246740402161858299768358005245193233294779051834331898160043878628262055990859068199179678251867851264963743598656574470673978486834298487416272905337619283833454139872006373294031061549241713875646999477130734494529326752490449716891940979060672990516863755681296421108032127759332579220023018822220872451410715983181189003104830733646890524086514802087590944438484100148306999476190970226929891766271541724376040987319273773220987146990587208597893684650338264135560928044425985369795494060019913807133068137018533607811392540427242997303878879352504468266118004378181705803938641497263184572267246072887055720830609538218752976138665688982843573244767916422022814130949280277520894817483790346296426905424474410885215259175623917332257544036209849559661531122818243518583768540058132372717503699143243569887049256239830464401794463280791772254897881079216235154516600074713943265296076124454559859154823531507347467878649053882377281084224197850313145423955603164994177989208847533857073584055132077695785017622814753163690729792118545450957299307905550236894865683935348270945960614468078487313449153488907691867600431089522931517383930708887239701625464880836679298169428858743045446152679254782880542227192993685318035114386192788043950324262114447902002622297431786550793318801137521450291085296630024132212173678185845200901621511200690515365735986372675594297630097332213000685132306350140181904024093491653643976819788192608685075707669812540658998102236750813564052178269794373008555535642005800087183396017494069557564911864866776939657287593721557560710757557730586605785902877161650900388847769773356741325105205120300856191176910519369313985809003445387505701216820429363201366753011940548725361532375762648029699640590526277541531897874136752190434927206554651510171702334857038357949311651809506625812551131858920483958984687444529464439752489544769659191647463145421439693650028187650693804261417266996557876577434609326837020594311850630374117557349094479815224365234117684048685697088189749144061348542276436994909146522710561722390161116975017324215875409908015098606699641978370135801782444802738692160150112633483528636960912983457420080362595690632139212317633479503514007884551031992051261016988927775233509961193044153533324713411486109488083599077114905526299130146407425048127436476449940367887777937778297716460364762935018665807937793390623887861538915213424124829137067487849740449706254537688246275413808738508906896112913299179562347101882468667997465919363289788915865635165462460334472565752934708021935218938284252713446408715667799030658995617988631271334736523733860224809138109313875895711613934631237354201750325225291399498011097761432207948647674449370225488820904399251291683122945622194183446830687686101941561335429884006898438979304675452092953918716476397529949929906040509191088775112955105202743544960229935694031782925678256508465302053207992363914838436409381572053655464007125628804766713851235108809611399548205361018940190137321653577720269495967201366265901983637489890976911228254232755443920441093256958226546184084741879188974036005606999125673406570295495580302090948919033562771908817512948897268827369508501261036428550126985059074205126608211483768402236550772419939292285122509460642251202129161059255217750110309106033291838383385438477359383771215642067476901809321472879991958124453642102512147022695463563256057501959032082555492698095815634035888974552935582533374600335944239821409307947565804310541030781742379661989426279527552449739775778599114751817572989111946280809554525128056349916316502194376145924411213203887368324989683830294776745560614778033426485656176889922321340874398384810368841425338893804312488710101248468075002553421669811635607868034745968493535994490624174297275175455738028672046163449969839213792976618466584813447434637338326342545075104877838561973566873379025412956976776966809648225880745252834171025963534464147332031301752079979507189692358497973327576411643848507138723483902252852857896278325080235838183856854373689996340036718188116914820819928388360556154393838905291547515162839364200497048137023582103948687363045198485171551114974312104184137155116843036128953542349299490358435913833626753025598132756877476408528009191168199488595674635760822755761484609745250386643243960871237329198162541389816289705537568264179510493171512630302133149709420485905427584243369565171414078184602793729874944803307289212693969417901394451679310598975802503100574013235177433356804045620367388361553834579051313968134860875672344953306272378410316277632471690656976838299955402359106032759919362110843663436084614774611625574085875021213546985220211066961176739248833158124672738220115595374946636312794090512286618624725196586221205098307564809547837359089019744997039321788006227075453584733478588199144249892871339863986455888161683963364165148032847651463498525984351540476694619039001252900809779585197737907988948590427248716659435241378241072949452037846461623229175906027264670972416135563314946332776254114409590144372468997575200010521070128194976442750606881765460991572961317782108702176821313672437616048589474058222064326661195208738847608191840087532024750031344020878645690483440598141346286658830561956807894309267022124405455821629481407100271782719671318879325306894496621877268544186728297213137067554038497018045978885747065344620757150104974843366637915422688262570778880706469481876065036980994847872055526184066419551478454406090657720927537898433047927843421354613996628550744431175237813891877006836434657527454285379467364346530864652703226513030291564187249873320419267209103201017304294337614506244888007765024804489895564981687823713568477056771347553151645022033152935499464299527883591076492576458695990249644055910369439067180267619148769149279213649846271016458371474633874246250596135489028535014059297227385034690179386463325087908908997233231430248212084139420095050333623134703072540998762455608114927190959207990229445171677772774447724045353197809667651728859942741309619313940374213159005475958744335783258676133815645203573115966259153614506829378175280283588454490054883608399689351455862761066109551491402669273132684686555622857328215149918532137583968650465774349468659120128358536007577035817480553357526968965386731951291838130808673969186128533400932009603837320495011451193236029778272974288364065175851651194086175732508356815690342563991461932517044413555702873458659815884023876336838390698502845650637067094684049165056668713044305192821821999724688008467337877846368334173671295136752732668171694125567489046606262378522175101890386949929488069764389658967067080838349523410355432982030093038684516064590524999496585660069366950330785414766145105051999297817501449555738228120964786089998584608334565399643142570799296211066779611649227239779627065227012935803127740149065536242985361354938385418069912199262003132626633865296297489187316042658418868771380477732670114173056746380983910048831560900621183506356236282595739862726144930841024642808521537195682874005291787261607392401613961672037082720663697936014417485199872811681484947077550787878906618954223862693942604582363288934843498651069266780876748959135323925413047902183700558458567733874879427841558410229255551083862187796998056586624024228381354890912589044380256251367437367133718733427162148670849963865082684166289780552462713898809915777611843051412172528758620195492859404247399337950602231317682553635126085938015145503059287970914971165667318660454148575496714020576060748119819355867203929502151281174580021926689823758920597365300777601583999622359467351097961169570638208730673814348851821277126165480945955576245370720923464339492213872143313185480352759458196360645121661578351197925033096085566652843830120320010487480482977773621610797245111679336131291618630629378153526806221792484582606630992400026770274731408393414027751389906118414138926649512376738637873701299678442567628411663607545006397938105601368770805010430863718111133498262187473049692765059474377477066296062185554199907847487828367001756238274914899443807816040526436647791404059196819149917206239306384544950918081025643513532252042745824956884410905562638593447706483430947065905664777215812003781430642574435455009788224735600977963270702240446612031349375391778678988672796447270393867100448590249481547181552926464208455300269011066759626648686844203616353424578755812138515377640597350369466881389806146954271719709431907494650916756814510096458273393465088328447044184290702914946538430894228354875596750242423803024186181411284851998415572169156235584135619319678387826247785237577712298977054400303967087547704407236913484319951040029614177549370620196579493222849543033991340001823996995068176019727977969656839574211713650232189573735591876402645469464399406583118303599828525135673596853841180161191891634541942389201392603349731545043286991025459264784014589222890772418924728836666610579700999988670918540574766302475634240484810315550057155106227671300749575916733002031934629621988801084115639982889932902922864014933561225845579513231347819089191146212460536746355908285084699986400329548113724673766395736662373117506427062916118414281038317364646851479694214872009623486690841017512437688254431776637922452696341477039743035486249705205444673908254925849073623518855085048715478869924105850643997319717065769043098324329276764342764022200381006512247964320423871097202726974369002820915509448279126697167812029476755888908338274448207715109976347112261060309058877149953457942875452614911698670685744178185592158254336938238443942464794517892760026747602300774162988877954383441685412048762495068009694719582313927004576982445272251752584177693291479652565105092835725361554932847413596988516225627210518612612694540232531917579748037960081454890279970462286061794025854918096585760942407498864864575879441047261673526733437945136905954642648856628981217415828330724330802268834857749639921358633193157790988203739274362976186050964297147873509338072266587736017853989682218681241210832100328703420574014587419663830256016254972474837017582187184733078352045503093436759861706522427401913842583827085250331976416038211237572996206995059574258295203270448209924331042424797035863259225577046833777059681677157663652401755993557406675820761667153058320585245440796970086766139116636176769668893191515750326913828996402173110555496068962903996185640390166943601834921867946536141533237990192132880564316439729939029389819972622266355183271850713125260247531779954445542843021514756841149496489201807604559333280772682729271372612622904070928510614829878989326336211511734292337851807396510505750750251013134474080902947953719856187450839607916137037288767669193745083507061500199592157938109198385292342974584729032532121715494421653961128795351322819203739344802561266994178104787598324747201101692027296632802640351093420299248750784304914455281299188550019404508431255370829110899748245609575804025085690637121891123893221815974018668278242359167097367516895907191517650553285581478268216334044085200787770659828257363792382401776202234618119778241143163954023953161421735404580790844060851948522242131461023204872122509532780545313035421539100044410573972842601343750771611996324290042498812964088435340650051401517006436423387517903665205001818200939215681745850415571401158386801737263229338399947646271622271816372502387633202970126833429714459205471795945630506571913341050197661500144380133042972860840983759281717498206023319953118963632131456972306057274127068568831308823536903515577138121288542212151357847393257456361948748565506404124379320922618444672516977960840587540529595816389250514843326138998069087723903085441636838116399107239662238032963879838298989657842978362771772960237177243861942156153076392693670865030156458331934857194086081838444409534048050892438047792885482531594233450429670110942914210196813583908955949745914237564210329864167395113683156984442552694641371217847238989533878706240729136813590507047155131082521473029051113109429822497908491555693300750381022123003690574765492408089638945590341005037003054106206427808306036964954616975779831879831667340031763844802337002518436361935985888259918900718804455559396841422102733976891443767797130525783764807653579175419004495536670698491770200366133027342361237034205422427790652886955973562698459999922198582398505436694982700762871173146764074603654258280815180827182486554560544137662407156489560136379390796682510146241714759535362062327043537365363512898026045163969936641651470003032921489305244504992479053004263734362394317179517535603046445359713553757929126043223608488445228875105652299584053556763182684166277643730795768875714989993524575298114987427007070793677842721083132607140731512659619302411140024094206249311877482227819601384767188393559317744785591574147421108853718992367996024810780353784069547526477521141915151103699954574392435177485121732490682361677813882790902173888173284503360489785259052563888131028626578073804833719761959682149620514367853565416542144976116371591383707407694141357622180304018568298254105646279197091286126801022983073686115463588739992759639507460250754702058270581335731988688143284186391882770347846650956694344801927012426465904800195561022076180631316216706883322293048127517128152329648624496218485404521670050967452108749750459589546224719845180858763881577973695523383202318769914844236383110542503609490521717068666503895552010265269702328022996071249824451848898137045202242145902619625550446800232437089252679236779088485449566579052224812615512828765579092341547553874093663278353758753885426954033768903064671990199622490965169238777429736166923468466891188494297962317374424737189908170356103567675830027504291183219692111343810298392133120733431225313017629031925492653120588532933453607613784927940618072788596734463988593746356480776571021010696551344474465610583753904770518902248485050458731789568113009882804869945413642162775284974926051993468220076395397856015398827880935134340766107508666592947258166663391500101505193399710142564204323549509812298458127060391919353271046753404982955115536984717312120417528586952119752244278714402347560555723865838108486102337375641993686358934927557427851772472619243316678233530825505762198310383144350696294439688898354265256706342312094008607696341308922545408788348422208121685092796936570281401394191800601053061147916567760353691398523369895003097880446324349078080761454590624694692440433684777658356611990246642583341327101340232355056456015615363901861968010768753435679812444552852613358892805853143308697735441197024597629315657208039578343029552852816417716466962343652075377149737381267838547224667323393370144350649667247578546978631913229262856648443437481744219080879836159597319753809119274355592369654020375089807931768948950741010651943289414528863687827472524623463881143492518402661390573279024547502896562533753272100867478409887875441597473178494665125235505294018583182408430633010185748516917635792323360121113349565839592597380775980847232090210910733098486561844799805846004585330088108116340311122191726698751265811754331404669807639663079178517120726478477984290278141952443129686901862740148798143205572184508433203196674694716211171519646857152112470259845810575547249242505222312801452908421758460058240326537257137781218030332929496220329321198300475692896180905041921361343347651230867625024459603932278319967699942920233790205263557743976941628959871958189035964380270605032598534942371243813468990305177379084432695456195037460471860059325700486298998876956077000456680747798314108440187053749289471841810699198083734356511563503142461103898917122520241744348390843204964558463556209635913095084622196457073351044964964538451989927341621803274518787997652001951396910159777576771017389537154583332179695452770208671176586898590444590406977989600402504249098781705082886247608168008846456706576978692030723452883612654769674379574605564201319454093131454425438661280443563996067652747701973387269482779996163679722614767643975504055036592171343813859399660187907610306213808380924509840256556516934267729141542008337735487269318614372716307855868576218796442065766948962928913467545135542978009448700160731377524761804080287392057896274623012591259628004110624009183778926044874879838537753487811957230215414855318343747066379495362890993883880238025056284170332669224811988778535756649702401129974230535384565079875979334259189859743634344035893594789846398737580421528366296924438061356970755888360162344417578117078196827384635800263536661032018513238899123096456858699439963368225643294039969575735747171907025969635400019659098254745661862618357777014217282823794463873623762617721500475666054111736899993759095236809908367571860127841753958578340626420584664611229111961879363800047201868892491163421055632069561827362286249180008943608378187792725167104738436499914142996022573292521161381621586546551135709668629385719890090031828040387100621215471919201205957269598901598624646089016659699151154512825621630574777672036693230435469143554180931006849486956410292497817448619516349687366584364211067219847068693842940928935032147945126184525805163500090098095519333351670124703155235234491823540060077463189165663048390265618966550872437241940437985999353590217470850295784764138878731843770746189043448481552644946503654196435653414798267268789749969018143725900558398010530843702307455729758238541494283107260539130558388963883841102914308536276147178420108838298481255989911411243888342821292471460578284738640023198224834451670126358328861122877945950945541342514370099824372221233371882794007928339934152206812569413909512698713969316619403990924311578035418716634337631740286572623965179990935560601960439056432035448265507219888709326628539422074148666427008009630282234572654846745032821152550874239382640221194097776167860646298562842431133650275564522965627506634661008492220933189910325874991600065589387636472710701008506580671828138111017457018704226873806057409185186751861565284287230405794721172002429778701435566029021754530991899790466733119475424639978059295318756668590304336487778466936427784203557872785340790010307785639035084567432476559903944452600976582066722198779704855370176167376955439549350794204604573172052349633329235918072827773141484957822225389196084538734373875290596648543776709132141462990475190639560114690061214217927191025414088403248083166940785096297238944508741093064832966199284796208547434931713942907311221512014961381888291425119713816570574732781349411290115945388806457544179618549920491743078786206287670002548747062631321001574552087277905138812292132861609115454464271204226068272600029073324856728652351572030712848627675641267649963498732272980595720543703147741043381550488419058531164581935044838775548025386502699784535180532982513603779075577432642080260887010032892483962649059091953316746820319476051634001914092771669984127175070364029879730922159915525398950898578492854268864068409916348577021882509751003587157066845970676704727175889317882175249392556689075026078564788364009421192458134664203464701559473643357377485089299745061416175354008807890072489408634548143219018793531158561712851608240009425988417779932334694791280208039985866858432723609074714532290703850901748200225834393499806230953450107985276755677526757014878026301125106216915892328687846368405453014377686386380806994630130688860897491014123455303493713415857984248166111655434995049733366753174219199380633516692265276777616750921665100198617253955777145461640491804408405109480751479821026284278831340701058657693687541633084859873410972022178029006495088143299762146694369496512894820133824715169923856689095941305527697917450913047974000254228347200104534709692502752061306861199165381029295711689468272842287196633375806246794131392939675441029566841533723136507174412899936255264498944508044890700608386983474534152419582967480746611438082206802646093260717750728909703225574635624039093833297620050721358941418338350423762790253788580293387371283397163876693019371251267721003542202099115617442204805190485193270577494571290195903239894169847756691638050228957618145020277465488095185138787765561585961436878792748406958387602842308492809272350624149739142416461089089051300081082133606842910496834958025073226290098977845200448976767689935620470944766817503124342670104747574467800024714507807277732685588477173979761474318784615903026272258658433553396836247082107705429261870792524042227066354059278963551805384480118633450943917280809570823477250185248725748178466276396763414568914912506765467650313406509315247350092235775443280303764599157007651953343670461438917744598671360993805971714526292346591037953423445846134301328491890333515903918888184430264254196145812075393770241068754294454346352027568815566657650030882017028842903850713989010951426672137991274523331248726674767851397643697994926126294944222723508214095568920585696526925315755166840288303166162425349873637612654315800022273781836290683736029254374713434409259050082372250611645706150425288117134197993456297526826134318698813162342026993757496726933386338560369966257003907083342347659012086563661170042644806927669048829061637083920059449678758224764456838900380682862993533284216799119691123616041741949751365995071125632757716294036346345393232466269054567913552733960429139776681195380645282006715978793564061790667842464281402642365005369841123071079328616924809156392285495603309667243075170757352371649220857517904216325793894467305085316627704078438826574078692602929081130033374192970115685997995024360877329272649966141766938889499313503043205313339221639320208368444018594823506011392372017547284906948051518385986881370471025271955941325455100355069697011042123099741154094255803141607815466542451499855695517206130802872858712690521736325189930278403815222394485789037851071799459735473730362951666188245877793226189248333583007415121704965729696473914956484922141755529249853396984488042479407921170316838780462410923414216437501633841234869242917418327154365914106603433480608519133285829758501663307457063973830940418744216556078502387436016224315773782057518087239092626058460921346360083679196641576067363837084647034089346967051204304256065753360920313323812415548259634355138779853968980682806933638905875660169881813413300191343863196273262888730295052224129117134745501709373251562922885896810537052549778704557564056906544540439508161791951920510774683173872495259065258253526474376785827284535186844171820294645643865597260794515690631057690107664367957482158837975382456840507434990105570403673435671690435570063166415202700989281548633099050998969878148202343032754716487585678769102027375649230344552045648472138293072499264672366503849417897110423674580378940883972991794166755746209139067448039304372963414768478570958667766569255597841681363095805177995927044641490084535679640097950439852863899990168200347591220126615073648459254308424141566405491724268624899666437085607822348305606232413490162190373574018177632103060244318886977378733442816904143772342357187879296535872010667431664134440210868641054443468661936316727599197342183722629328484463250381800116297068284962634434384008940401606287424706128658326504155165558449294205155131719505792232711951422034529384317014505606652954426242323875004947059073622730728264344165682912673354273662441157505961496379867060597968603895455362981164011706696353145662405566732985954436568735819872514104991054924405141583046857158377967650438090319144133746762810639274173344136337524815981344884842067247842102796644610251167582850760748273853558278181898016796253925800605501037634031101596768873792046232672527318652198798869975535729350070086556740039529825236655860094465285641657442881921135951534269899339779120768094443277166995578992323407423087961193183770312539013333517596103311510136742783347602626208318007309882572175373207180284308859927475459575778867798895993536692310913665992848926076008265566234932529607046455485696481442572444383772952201539531502014317117759531637219746112158556819065651200718931257447922614536330157674113858232170856050341487091729484124670053069734071473450070257576190554062896499958458291907480622508934847684156291380864565033446723541676257465728044367748666007837142131524441484100647775156447165913369897535404703408566890736618418983892165228697963328484236770009678386335186416277663469567266202559007142033419805898338768867278790297843481628153412354605341760986047948188440267135789665572402381195458153031606508403432909296288725576975239488159417675034025532260074986743408005016228590300735331618446766599967134140828830731803725686269220578349628310596982048887217548748861878762837224109186738667173966361683402095625015268829128899358914327080535014491655001500989079200870643595922824455621378727798781240020595523848105361421112137105627832708141335444282080128549482146343308771871101056424306654170209347064582071797974116249209841590609194027037555569931815703126268271217881916811056121653452817322604447513600780649381413557423435128703005014551563082499429379077343433702348501299507200275062932933357221718653784259608737910788566192103082365515080656880368968394286009090809872035749022761328580881175497605957518802090644130477689181433902931027727893108173217001718425673331914058875362783108569050550528053500545855615968381641054524661025765461333621312396211089897137368305458842095938340754760208127231161623114839114605648162156882020890617788763102022903930824717574087217947780285908480223519012879875618461600777510591797163310211702384415188367221406273076770699754423399443501293977195211432418937156715085856490388253372600654238971389485047935177121916779445745354948061327994541112048538028761541562112928767536155550047396753615666119546640496694490651066342666258242023633307314496962796724521538299081269705995141284580355427432715573866780861543476489989821460152360204140070755798601756813447686561026665976985139746406471019870614880177207771056278471103120423701102437239775446500375119688415382153066906400109081191067432517187542668767995225978512063454905297013383772154236373980293976839030259675407067122995380176362489872021623658100249959441193802813748867611657368081531556050222982418293161492200676121802359840694664729753867537264754251558437173319002072134785646192878431348731107349719836273337374104286400860876313474502721852681205837945774779916826109578714933652634298827553166732620582351989454114009967068772583594466516550266888837527301222338467301139101357226613751427177337346998445308256128583929493307242260413564895121159812302621372591579401870649835861839466852631127004697683022947124479585018029062300295695136750779554120927312974416406492293573380525667666606175418180192753504569512095657049006246710138954048643865848177411567958744203138021857502684235841564179992178722347638007343322947584064276159754418055845848805056552035592092538453389397234730540467772128016051066107253027304613013322627406004337597684891567633874734883134520814718950801907193872739132901469426556044086504372279939416437550611628375862080419288054990417019512619596416618271149504284561440613131738299558318435621471988166140166479326083069319511828512724418658885865331391381846064834562544563819273088125574765005520318325576125268945038721285279356638912841858999020662165550449261690562134555546072010122448423967875779773067857200579193218300094382894309825966121793281250769501882077009192023424342391816210769828780789403046694136507181843903751655135108715095606047285966146455288847204093598546288425587907391049835541090710037225372217654822236571441346967690225122427361433213291490031347911860682803219567157630041742616234620045937741638507164988512968356246661824775196329477264031815863359361980873147418562640413595454993218480665752660551394597738941866500487456898681110004965172989739441658929262416379462909543395642439999878820610836237544193228407926717620464673823271141833981240961021505665122077027368924991699332087855784192308204026182193620945985020977297502058622621078113781567329722875666789412725471397872701380381400512401949849409559281125032557235604816477917644399616978259541623810120128154328128331963805833582306504112154985600070677881242791477901744992975728191599178571791637068555725060073888567502619241515394474269095730757947937412768113410950995165977979596990781120508327916108440015770780576267213638070005300074148329119810548263456828367422759652236853995582238214862065356776984103703737449995340665043118843063956340985028541457637861775935472136301279782015698740542412639647147321845247977593042131407654038439170352433316934945139158450854343169207016663562601203051911033934551666645067973530178133813754072741691382635235054210754151066961377524155476928923048791666049460808360035813096776536392141720946970620558637519155739106075661598702061265749956783174845361506641594134815621125837779669393955275441424803026069506875871186777752995905165400562079237751311904924799770764902832685462959395139068154250233071835142890795095571591586675952389807580680437072506112047863130135514338970097449524585557632090222540141820809910533387333177757169848652036955510485444715545991943865079130195682781174229299967893256027951945748015164497643661713505503098464997071844646556098319911189234623636734655782651153683158632516266487752104817269295215993657782849340581608542162187152615375188950444413944762875563637633149119933050009325354149507596333239053236093641090083227514182923540050455834946817034020790446544161290466314186115051981577443286202079742589243181640523040267359613987003730326901670503476957186840160080623709661420184653041894363154649172488335550987087428940183003662492445726433055571817669179686943628636361987728063044793101481516177730441707593229992445521077474656970784788369208679288585177291975075999902605039594713251824036685923126988556060021084957392889268914062929318880861691163184890616631256414343105564178741223369926075908368954085194095900141278222248062331767882310481098914576457828225095813750133499857751586470466955840478404267246902876962267823503361327576545645453940944903326436649524083789296519091365915553371979268562576518987561026314994869735818663653440835705983677528284467425297425039078000326878496772355541289589955290945017227175453458566591594388559980197416156559295424348808698325082186311827991641278805530142208986227249769632316570652297562269683468321980783075482853882574363557104502523391522417996294077309296595730296087624498362372664445804265492847299493462123393775163176213442088223582692527005682465373783161656207545164806707519458405858810157709181522659228704861307955578023805776628449593575931447107895584982940550735463209526263731012493561656302601762852341511169432616821661495888673606242494414894425809498996785481052474468354094007931809350574616902160574242090149368799663450527027386631061393322297269440052347947119557409409519353661327584810645835843903514640804680424161210928993347796445569243652882976706742180942521486703938594141174061836296974225582254194167801773563424261993820555627107558660003926753391921532765404594127342231795817507439585165188103925136699960809730190092034089545950319172506006150541582382620481184795509046563197542814104487659928849525878013282174594174642848961294176741807321235157488763444556887993502915350942834193064258988328718298521495606440298453651499950228421707804581514680108472919680952484744435304521584324998062691804499937058012797962496227718355979962652914158264818032700994888868881447058735067510740839876091422047500882495206082404208030527788184594690773432447147402780703716921144209479476737285606965534480255816275865668481126848080620713668237913817500548088771073662552341323326392210827965891878669729121247114710688416850187884030500087985461398333414269786073739561018761152828074497141771289511289797613767961514391862204994860067018623805068622860104157512123847620125807457502310849450229762647232556205124555173118201810765783230635767267874654924153988033201181596660097914516805011077237639991607046191128122214434884775147903657152450520039333550645565602061253123016526752729171693874745454785616591850755627274232852947303225619386929365541245454774890882841407657151728662640915029931145533496765359531874946065734902280945626518849086849063227361514156087498218622931107491988791995959789688262782844484146148037319963277689249010837240780543675958165627609364120115478113158494001814709279593975080820604689228108878474142157958108305086429389411129796182566886670849756018799832893898434212967297331026337375633152120935305067160628189918262610131706604849789542442348782945720096081667163222134490318881685747612905051433434465189651665976306431373487880216781998574803462047194517801064018382127803757715224534907614566985898750913247167802425632076466059035752549853564737043499936285200449626155394333238856172210163645343992755843263920371779384744107176647114312505342309192187287922872685617729085227206580017993973231761335147131783068338752887084806828120772672985234819174689151277033774726997478276687960615348102481854444986787495363546800759295581854317039573154420558602784554764376890585076404669481900951061889433166943647198445059023145359967771992549400726357794707936227377059635099777107812181945961842264788981753422526395224416203170672431403448982679320678086573979748674797991595941408560307309405313253138398543526275715451772909278651679209428301310840939053424810993817234932115628027553436916540680196307430828728376017518139544966887901121953926914296703676270434171732350773154660689764008995174959585706219959782365380375385225099647671869537252596764815340352490179384698981017450661562208822227415150460109079329915891417728317391549310268750657515579395998321317322023507195729302025860134287856698396759172679819568510240100100278632501326037018774163743610406711250510867893838766939064756999044873892548152683597108387342298029587594332589470317459797188926621062048181793487083444515461716019559759245067637456518471140235350799028550135072315341098359507184114988492384795083247545600596127608184991173003468581508196237953125971399467903156644416875137402493612689410601680677896052615295448102858741296656667690829626023998028166501582046846758979877503115664618331406108276006948338159974548279672093350744796496594098053803889901273441221026695619840498094891831767601599430116412463014512338655519693361925562694614548679118727363053692584483674163004468571873983444757776581727407167975525425159837857799240950732487479608412656366790029396986828501423039089411978257808028712485322259971095653838517598639603379648247704909750612587530984873498514692471248655927144272182114708105826921775574609687476893618415303410974134508259481196318118462031224798892068851222786836610288084128747657293165988840819968811927207914668668082924758979243034874194409575446929622372105005207817613729277032475419595705928556473847833159850641065936858100413480953569041757153511409350165704468184266595250996653755711310410909626857208056462204355388086340693345487600118997652007528135902121663167852940305326007815299286980157379789895730399848746896185639902838849585678429411632796955266518109134261064417774764299706970862552669995065283891067030924340976246513500041104139623717391985605196473937899013409633713517871523810253801497789261592253215328541421743784371742982055680051252140137510714961215556135140083462044730117771341500155074424157511215698925349614315945214800863697192717793948333318977937356249235676669633988943565073285751615620425684472328880997572128230258248408852146031408339654402201007596658035336933600647437567359078785235627738833686040205570086465522359123711987193854565796780481202452055135676020252681638475250184275680363246821948666075082158973605034527660211131793053673526465320674957348665031006550311789580824160644464374026886208849044090465501395477188579174557732157053373760027779396747417604723966095489202368843167130719845797374671557701992124669344423838589768948621873334672113921685861936892822260734309025445467845483178259150694889686540520819824222540239600877908235065815762315725120361526225711104206729738876003317690136513828334439049092409457725466409983179454240511936355563120016874325143813665722393511649045119843992676494693619490647651404049299680398326114444921629368014431296559544304038483334435771512320585174195074654238883924760841308060807019638551215350839128206868727135937826442826900995626841510725554542862355311678056481617707984605996010824159288658762471232491030919503224111916386184277053035914737689800614907765089685813456301198758789443765555473581939799664405028557149787083733775084106056021764099392810497547470626069147865819656219815781439634712484329630734699335693310950653437896175936067829080503098994401471834685408200501748565714002500490545589238764075904272957575175199089277317146807754925011535472765037004175122910580104092332658777178286163126805247318271001481390202594602100562186065765182700172164801762739306103861736992815466107305012411294636974896194823615774078245359596955014824710640118483186076386272563616976633215827746556481170225961316186015012232506195677518231735498748495154206007260340888085338010875194388504595589471421841122240617057709585696978652243746102425176134032830651382803669629935405108077213209471075519504473594860570037057245809171996377790789335552052000309396223917935613952059874575851737833321639474625938688599549625546856369892693773494232210213812856563817391016754911989930006536143524038020464749823587604318491804278713609579608752916816626146756930038386999921042355249379064875098155073328125981870859012607115145577063451056231919890100177300810667561646955857380670533687637384185237057492333456242055355469101817249928092259268858852081314949498777638946524054720554656381539561169214568040458845690395113916575668608294260113549224717788980476029046799481102169112510997717239199407545076358208068819359122441212530382346287658623653552281201268488004637364372303845749726203139095343864087408250714809566044997313160418030628686548318881317649328250359540799789153249163937626071383766239753076231393808969005428459162585337541148239270836211101628767621014259651713328496504502871802698888123725044591770970451623583607355513827782196815486807829272413881663069785691129755826784918009305732184350260188469015631993587330895546884085296847635924468968023827302957324366296529755594612680377307813450020915933199333900220149438284019384257109634236588815170098950117002908786367828024755809081502240927130751166692347588923070769797025294048065079517211374947647841904105347409832804699677658783379003018500005067619885399202151327318907804632641236189503115364386571595006297268468382755149513772404837279224647445954434876161785013252162787517735171345829815494664244020221176532501766032910855495656475813967337171411448009507231292664612599922568873121548659655568109353762229004845720886021772891249621700964646726112454660738863735131988022913627388998817267029062891823107453842026125568996389319591497687647291263989060762733917406215672897822939676244015861513787232959729973669820248070005163053045094393632797218949367689075430455282216967874399858662417147821831316814818466293520163699396467358779342585358195284419766269541443392995254541767236871525188773001449295867828622921828142561568038328290787612703596001222363168530705116158556656845562957391186705594518758811950358297011347905723832190423013986869292586873459529690660550746104831163180481634601148188211493508635394354314655755587249808162066713002434567307299367545048405479768511311636248592259194369690207982147770987560976939196977754683325067100141323565166158115025605463151933694707381769030741148609680560836517501718430105812111901656465750560443192955259216462477437510129067241448818932886487607847902694875224735011493810451994886196565786648935053389020170027448498620083411763497839404051819067874082271284959113306875279425690831827065666642186185907565538789009782314450197950153757444043041069098846580061175556024678094603440545502959283105296413051690161502968378879919568412901228817491028833319419118145922038964519284182536697895913855936349909476982125634847187443107004207511994649829745851137447085460538969542353476360526775201449124866618488221098145275327610815398468635973544904115585399576042643836771370907254786493555019312409614810997507005375066108063825212098696626445537448807972156727685577786454445691837084433095212665623898394009845020778402769488071081249915616253508884388537923601950374088873119694062375345969282319645974884243405610288011545812276473035840409838974758354002435904669039165283925090104281175618772502289180851369289003648796846245690553567973056757208248068409193648631340748280513171497608920334395860554694817849683120879648651156375550145366295920996241395032698038451965924481897792970787059660416352011097607509411540624094350702307231382078090047391276305719395086425875468383089291813890646774418331353433322396848728193063586288962456974550154276843777541715974767493814079475521999098888331203311717658571559562666560214948833264424265643857496577935415480599141526253566886000287009616378121773047191560314996617129578529227600725927718942830124680482460794645891117378137943742751756413368852297765878362089732927096111558757382747949307858137757496365753484311544297676636109603109525234566359962681521106766328618704962098465887353871714197622348146036291714502836488692147585669663789010556245351614585202596768942521459535570804225822721960133406125902778953628025361412813136614349015695097664969287676724865636071968953313484648351527711795818648707399215873874806534601413659261313317861100276059668744061555619488442299100250863929183248349047095708004578211292106349620708183782125792116463164111097639062753570545599226139800720426994337223334946050661981533082833355133723964204677058476620938748287361114063160343986765792843648344893873590766506684634408870269081312933691638059867963416294459669629513994766937650776372804689425021566958070202849535768060143367974539978288513975244828642454394065661829333733550668634312445565600474520927559072301649711683598652720428712522465706777649940288735727612164826837439202328497173531408071121320558779276163034619830890767060808064825370162036333847069329010044344251407017142299819736616854719728128419978584852678511377635472063133853931984211458779032857496321660468766173546865606357610483980441629833065240021961345131891466950994507412898850411276075128205368058034475524931773519956673772116501381317771035503414986743152444561650756341492204156196814586647160890938510412845614402100027120305800322677377730573535519882402042206367910578518575064264689726273855904374770166698808959117413742039580623216864623744041294048062829779922172523940920281093595173714185970925947518671684461877567809870376563705281034130010025024877231979516065985300531605176247102799303272841238624904805544936497120807567736010132257532203404001786311094917336063935940848213774875433544445476313706489710417089054428557176664017402158820550291889273824561662601987756425453299737703359586697101786223998028277243600101805789606497691723465910418367150115920917198492135893407176776427016176933394710677584146194580886038446455336514221926997061611036313803752049296078374896925583859852558243814675548506200577959701605325753666855493207367387668012674622592270258183256579659641013525899233405148219866609012822438710221013883969000374561725468729029924649845228100300165138773219821675861693744974008685858587408261857118228333390321123097187201090608038611688202287234900379084561328075361982220867773766037219088718748147659155804824738470519158401098989233991637853776010705863092654333458893471557046396509790350788203451364081353042271946849588863676055697950515215684831751374442849871549942071701706975738076712763361894618693320116080307420137263819472144437176861703567660462125465480924590587315643797429276678220284719675951990003490468419058364018958525398495794394419659019470355774445306966337829799706777847994327126067229803895898750355289804364078163802492970402850005788658466809444924768076475413414867959994490953260740055358046143709149432500467111622864102508362021911999854397056238105222514209383372463810079548106023978565008514109354498899275384483949806385830740191158213918195054088278350244548948732582556060781034825891337388945787377374185909008927985738948276533867476447366975623746274838647955691708885783127036349457188523735536319434307045488643458696462665188604327722498386348139640554173636435100553696567553853896584763589542457797675232275286108087885677818058916919744529722627457556158062726962303931326757544181076604405127251050160709782624881692955006076308340781078063936661972932042983196744849434929467055490064024756446334688908355864828292174171319321782576244868206757251178076489980722859102787960499747836756762381382491210636366279054127976854178890359316799593347866198518055909608735732789400193078722236594332643769685618025414831753111176534906206378365852204787232273814164321528075775849515465638750292288773759728749206947072001014481908900500720896775343998844019793475646810653626072682208868828581762829088616350967049835415474898377241471876530637914877592699980015756963983487280946456960065384339706391428982170262251161726808319348386382870620407316126647349843232802239837527627727136942057893216679914280939268856192838885946018193968658666245492029876377634387952205221370165631790897416669285976475704178299245729807899600191783920272405717934579601899750015626659796814659797570271840982078453855505053095180190261912239836517639255754468186711761937162588131452544757335458646601589620878159014913155907890428415117667342872787644527984331060454038623828742152142645775063375337898424313678308958225305925186416916160834395049245496064465612713160503402753398977850182574942565434937953882523822911634906885120792803728534654267178141314988466591706623202351151341632921808817472860297034886945898543619188630635231918639453451535985983387608989225699807225396250152251855559547614780515851969270654668963094025620678039635142721775903140147037964466374413348144968287440017664128275790040658617620730205650774098084893051798093198007973652774789834912530580476036622894443152445223674376406772411683536586609541802739854337799637868606875982519345104648869671911619408931531419164238528411610998838202424337414359270856861691263343644775286865587259307078978640240932636693729195294893020365567927143488253925445370777308056915287836043209993970359875020895697213904151312916425879874742172070088519992376579708232974726093862986403373643509158228944602164350907570331378949627610248740420675400555506446585935653945904466546578276769379995508934132760614231138601542302330885838167170813119828651508059777200201266921724467209732961040662848073917508642610680583927699250920925239760863285118595876785349226544231005454151038809630340134198965007463511304777781213549491858041152350227308651425267340442014086628015746421164184714415846692476663460437249236495545108655787156948016447556010087708232665293402913191324784091370345361497694337150059747752778078034263633776004352343711858457384880794551522320941040323865678230827995759440138037917883098745705550338118269430371180013806677524683477885347714822368770660452408592078956408891239242203250020449071667716475157708244610358174738370659741265125289977399933019271851809495445326112160064218030941893925897917610184131524403439859266435765872445594063882966847071858405156771986158661194315947000600407813935782210093660116466792421594642375663104123291134492730829440785376497199378486543583558555393360662291635020752083620639121656124076090518977712559283559149858599922224600554275446256246658507613075242400717680201263968704459764890887196716776881258965335753803849638287800005638940668166071889448007615027224087965259190937045178405108400020464425056832138843596265463339346085034825440578024780088072649283490174655577879640338348991530510531039701858218955547167884317947702059275902084023273949538039674710907237823772504286478005169528511070123107484420812572227686307052344496844218342514180029218184229173071374708856405089273172327471384273207565340409261150336603054107535608670834069593247083826248252150217200979271989194294958179224384173253553276247297986624869848823594532452340246460028302911089347962987946437837148907807259745388795001946083118518772128714392818593985344905940556944151240784136811010121412324467792242305140236289465090075939692583960274882525675982876603044348712464929168916464664633951971899265317590302163693626095253883334166452013597119509571869759405840493884113412021657798442889752363793571841553046436041654552434992564252146607003118738951571584543920910674799969698288707344926330677287992980427237055074426088154091632485742567828497401027268011476022228723096609448071034646593389664974695844571231367649139208604941978595778285319761580311753916332982419546763013406330909525021957397605694482218100352781277436688601790273937599627936040666562259600740572495954180455239786245016400470094281451763392990626098270816519970238857802272947465785732574858462432959065869988733420258088138792566053946493103010118798062461390499237635928348322327884032422658400879084409535771996847889742008542450574755764500606550775105540472186329294831355046476254650771503450670190432437473624613804326968708110318221974227733620221000134446676083725945124563898553466796677455898118590052206283622233835594896861672097621177570363267068381904846603831109686916720077808233023410120756117111016078402742631993631250095175443719991059735578349871615131848260376673723528592468501640706525371048037552103994905417780068958184654323912625510681386314597703293815301037627341863820841517376100416691546417438380193084492088503193025610386283218400703834724904029496288901673732505132786616906811859342145951649816042261154502839203144064430791702419522898620381943410288246418481717356586292733341692264230563245614794315254899438616880477626649382052140492323688679480113768475241014889472495924143951116178687240288112627368806265804953911101138361460865990120589855787252019314135201391367891928247163976078078377614261377041971388570516782076448704349214434767223467338020411380726714446524215036816840501927150733634747113480393840998207921205713117214828929651179186800150305054873712779058271230755899498576266476135507745103493872494720418633547623480614410319437888962138795491878390662810242000603385116162472540866865591340904794842429622007534843428092983022542934354062701155620938559214831933028564895358008262180384370391387968255819059984634094222530625913223773801942089938475703497772021994231605532452338427118767395662695311426647497980397981283257214701627529503384633193080209071204207836711863948120168124707746333922973839830392939782080098836072354511783967837517335267013184656218469995194059487223711840049185101343348279224272511762869101790606376172982490087340655011028118650511257739648966209411309047652482304259522899062108034282623661265991994212266273893387311782479192342739924488254530774165746385569719570777197942254938622157077637149607948502506628102325149633658869550803869473204701412289895257735488318651502196867210334271286322675437318707672010926317570966704167234904415514323834864756025919989656537928824711134384812620308709921914033494159089459951578441263899879602401221263675112302701268532312680951147058655250275608220533214056206637022033443328653109933225892722013651803767995370259752829705255745224423250154138618911044444254419916537464166870379152420144096738015828957599804888671214948719055371654859014678333159581472271542792452610831029992652307455016634119411817571484221221195472340994567699885971177412577177068492008515094489767480400643841231027447053330032866244482459108148675606694493295956954189812366188731422274737362982713353367875386588608686261650882385765481446970267585626364932929917567325870924490546313067899952709792013287736410769922799777211650922252901085077915562219357019799160023113786383641182767977336729371754904524766483547549277945090231893214635773621659224090808523299955681826202114385499049503395660827548308033682715092419358462092840468298041067973511336786890347980187245067491093066602952374308798015120096652980107147111700666436616346092838226459074744215963340681739490935564362420604266108220167162375712282548619516310448758595167392875841634882678810374072272799290947388656842658744795307376623852515853058511941110891850707588202872327735226069434916049382761557528841498630087818815945229358298588653389677318492954428998481443643509933885537088989968078074286382727928721759634376298452245870453255626679276486432933647122349657731138495763574691741164591095366909281052932758918457240026688539772007643202585073795924650104682555911868625488751899205246922967217043432820446723462743986000250131516533685644346553263405152179625612968331736635439362710242035386572407496586465716146719309516697606838230201725900389545630316784104365316540815970349352931393072473918392259149695692620423258712810823866222042594980678416059426030056190793923743862555520449447923115075700935194672069765717493440443743998120010023705505733090080438466179498993916464377944973458230703001876098238562764454146309567278114273299712502230995471590221768873379302965811947970533392280280932658661296736770154664381186020887776323121217890363561091335598882809890233449902653672616898754894222955443589046115073816101074803848390416141931904769152421293124940919141291572336379726593650044149246407513806894325700619972774199254784927253887009376462260748471476023200961743835554841268924274382834932796589192199091697145562309097110673072317695142916208110915936549530621193804343060738213512447360700744238086890421162971539085946284641911617518503079622943041495431119533792358394050047178178269431594514339811964613564608768268278415850867292022535807721611203060789293398950267602155666942099722739026011786559851364289837787406009264615732760097899964636501462254857589296495199143764272098502617872636870412928179837466492038311163453849793576319464308459297054502213604108574575875294061058986416754429920200106246220811716455272694117180238710586796188851807394857774638305634912482155191803151448544539509081010293734616209670362125839243401660319070131464058210253562501525736857212114857757158597571859655605509855358501857726632757720309873928979469659689087748869998113378224140838820321496693308759209481923383282373830914293899911263934713003260953464282022796447146130889110882040833933325671945759371186542525606631023534047601914028782077505408698873815724605025066377777120919452785677604249176820529433185446532241391341606696002128398431764534580084854043975031360977634841590992163760740181223954863949249845379423488741960823698146224319989907175297796330285358461924024539518492362650521179093510779820656155433226163351779507438079262732572835591250537148762325958817344106867435762358562475028835302383721491236800511737401519850067708660098501655939538667759171272373846425452190605367803008594094452894287690628602148885250923758071579906105600158645554806189286434624070692429678618591027142582431638625512685597489329754223954757579973840434788371610570183155951870398504493887307617001001603359815192371354586926089203153135756721955882846913596690987595415702225424244196305290330845205754551264105036685303653215760844845206679073361705548691437761531867695448395518640257160960149483358985203544985371438444827121437625624806992253994779359417204741531363753792825996110853652271349448174040637090411883352011746269863749444960658345329744817018506088882070548236814417402673113728695953054300581633617158569919357876696299806074186289512955306326318790124579131937931591798569589117809462027039074191255685287407287146691988870501946182618276242480342299593349956868527511196120272733844746809805675865294053163192445095661229820616054956080935341616617432176643189544431498481032670105096489678252924019962232454498341736927206296076564291568150280012422184293031310360251437866896741989003272946518990336771735804140974236426718861629209827252636049149282126026315044323964918183690215078363599550102144280366253960527692575131415560592147289690286866238288443764356240928939539565922805278895923624973780360717548189080215506218734290842857493687465786682433964527727778234855123119668782768990627424719206273645266080350802654768138285820959518744164056214918691073830484532919044373836273772396224914942147463537962413408477547498134483552211547959154567456117779905071163475084204614533866714194874314202564876151259233288155316114426384158201186868758149259429178247452562015323239703879251184606191707535503198741192282419427601559163275918823101496688258761125236227385297321748915713940851781231071554531840571050304673572281488195110399624196825249569080477158980506226244172239377166107782880393087616972944373479053813046236680921505915687496888049647549512126665696620455248928337025852196606530335149863054560449083337755268524696660735134051349704504866304807366878486281043998582079226050557204943190529732826522431474310482222210384462017310830425530084682203583722956983444939782872278918753094387308514887117167469246492799598635303949212149487068743671141876104605355372029203633151610963129105699123312123488200169636052638179238668522951797432501762711346350366148522853344817965813670876873222347365631535952396316242127458036607629049612865960138844874090700971035713343131136331356162129205737123731368130521133263333805064805683271171109751210693275105658511218017275564261974415416594558058306107195093600420483495132774525918923310184744411661598304970781749279751659127867729612272019774159968689636708980650957554225296339630392253083766841195720628276467055476207114632510572586032670259750698414661273185028757156836444434580982881645748355113531808061589987331201222044870073092147684340146006552793376329322139682014431299228073081409495695865749880842963947160003952256077917001208568387418331863716285024711730417032548129736080171312127647177118923753867796971555548759242205391973400990064743093004874093663077238213830020192164508988401737553784467216187641377509546338734220678054878757786202977051801282239302888859498806214501264689153239244469547326383282703392464267586275558464381553284348521685290585713927987625727138731080975556498478831164257543703042140307319586100317228389026348487767381121789596003041818033255507760532997240233830099443370484342859128337629973485934910969771066002988947274396666087797189230600399124609389963407546617307698023971788611150209505025806177603271174490513099197192130093845350227616127908142926264091396337249379034749399326361562844692563984174881147609900333200064385036554144756398020738429032495176029715691156844959171779794393271863895886302803588778433185072080542096090720961546842662152133044832229082556021295555960610002606895221152226571374526606853846018017431055409275046361011298137289042377042104576205691260267089685194347909353406125269410632885539311441583537920365655882155715081473708788790362528617273710599642592820517517071026236892949191955022676689302761910630078438041487808735190098584895990960266113386059134435914701147400053559889549486448998735441619634770344624089658989362374247775539586699687123978018897366123170207759239055606466404205466037453366172468672827693095583838383871284457215667279057711468588686716322888140677032840875628676024202347054197692257590765487144408722153924417310961588991484787908827101470424413791199355873714817558852583731428129233849070218403530246991252516664346333908559871820993909568638673456807571162877613723825505348191801858772649708181355605829130621022248527983224098350326587976300203908056898144972110449877739898144032986295780541590720094870812164615892225102861258734878162653914915009724630017740163905148136800480560648407437951995590857271061990290683623116967466742973642850936954137153162960206176909161735316215281115464187819655471612806721280471959248676281859073616049276855395408335722978670202427467994933322133212793322158678837681319385277666950827683395559679282174509187005996811384975282469910748929984694865464406221172206065096729125176792961444963102599799109683123958965350311320209596910876398396027387932894572157765407634003198175199401516054355494179564562306467320264410368783405071774434768733011769111985622622262998980180744635115312740905577254400992683339949304732470420429673900684628431783655218976678664888142555874149357347260078493144536645453807293293927070409217477811089767767225715596218093465740380012246999503390305560401696004405671219696941127850550805053967427935244023085031746227695544046384809491550123006536211369312398037558643716829378096273985795258597801242034336472566673825171454457402865711748780090726338927439303844072524466329637530353839089087042476065230493536596878644293312373937661358026835025032818817003247549656895153679843608931890175445921683499069184388578468109873693620228970361334164314446821608889917947888336591473183661550006306654585783591341688935641977940815473327975195347999081899017275290747236000151542756685576388414089217273188435755282566617959960714701686740620369923192318419739161672464591542300222038673392157170456294284807126942551774455243153390366245926361709524612544492871636121526212997068003740104705520878038460210231316365247289871375693193341968652118130683677819896542187384518143633666000109254789286529438076290055691806217711991127929444513671361788913811151037438206612740873883096704527008249961530011244042078463889261941042737677458965700220416250957617134158096754148938105358552079043746892303538385500250093841400278667722381927918632614723391602912916512535843697368890288413501146606209633437413247368007128170192567779566000530758769155909077017539417117265321066155171452285915255890191204317749864798384901536676819667883945861805862938293727116396056614295099013180537557661162132925063742428026163614796854479594333189378901207999537021578027118881891051112362533213271134836433636649169088881211429218514357682841585425994964263006094876591787192190494638819526161486639618575200609588469415541539968133287081393598805876678761313434965147275745263345383418736866110581781295371146923056706149442804288325589754982859536866550973542157945597847619563842767329838578284493649129172617123905881080812655731826170218804162147175660516237974388804360203493967946178425419212341601750098399369869185686932899915587564494809644175800886490748039558631296744550347770232196283202069340296844019993317413827044354507556456694751532323743736976926059767462151445159232101343987056780507105625126135544841219439943886982753823048973053914056510251405715843543803524792268138074691421066257349865322385391889690123468233865585728970131021588016151517366277639861167980434939938603926948071466054921215368926689778941098496022910599169157780427590100347138054494613566427318425343808899260383396076357688723964379717883551617389536941170493245383570197780862122606930357125085466482334700352568877848800119858807812831564193631706396171255209114691247465348278281252570358327246956207783266855286989052132785726651122886715423312139512056143014104656088688242940457435125719753959481645501588646609799504473372125729065637083896405960411071053490890331328519804256495067463657787044177695701683684877072201990217352100510162344523815612015979272375449325377880103231810598980985704399632211328856790852315611122507459010023261111180868699492790070677713980758518434988534223820125991015010276872830443812909712683748473781770384145311625187832859922707521494846960484122034308635318946145486756969928718638069055728498989184394692266343425059769013997197691133342929808415506160108477400191247841760302779287770017083046515801057667328428466877726029505470371017822068869485687921957892162423689206220604451357109788749587797153804983199124063556547159571648030090985605056378533906402575280248438378529128287904290987244246853590928112299525323289025649233382662517498030009930423055855979051887010476211168073427805783366993011109479615925433891173248847995830426188377597470067288374152742683163828791275944030425629165993476632564641741691141125106493730057094358396285434455212181471002002854736735697186938453534266876333605987861569534790161145052748160465126825868053399865920646874294887339440641760898515259868577175881587707917726659540906464343766259562439526769363542297848250317691371968229705484851608518711432435336725624217724347506077243244210046466875058927006538234408122966544918733228936080829025590632629013189092417563935006544196274135233600317472807628040077767601320763355313716471268378062131204843473636456881960008795669082758216979272916229371124038311249738992721333207910513016660968327876980816832099941084036258929818536719402184233289125934306892386767105257247060215924861773846795009981570476919044766703596175208783482966588351719298387129824117992686174020810714157999295677188477680877426983295068469411014513799907383787765713748612231459420286517535162320774989281651689395389237771635727481355409595451846764633905380102970024374220090496010834242629958700971154887919870370196104925396947908777655164281616405155285920550751042656408165493209053395127972188754984765334256225509058821913060403877932161393598811484783841597607945595532391803664989033961650787557804959396253913359855460124241326056333071437543835973519285791827096747389847991392753426328585031007151839211588197896301590095325263395261321799769117780847507265353564647668568942153796949856965709065486789648648656610004808895949791416082925737982142387880376069476151207797057084049709508927884305731132739512090343144348526484133838457634707548977044735319514372234197802324251441436383957659755316620559753296622005803146641886097091737928411406928762386331344001724139402190649290306100349115874782919420561950535558305091836410036212877019739988248865347668381587703736557318181985918068813284543745397271775307466654523981563764146828386158111207273612129621979556429816168075325829877939780127709721998175742512735148354119763217588500252530668690609878330699133684569912500399114714411496755889986438752797457671968299065355665147039287658085546116528348253004752450384988155939040571495633728107931734286680084093907302530039907229972486148591778462466216100665549375352884440725779013622915481707360243180569511132564973493820297333397868137944204168771356450610233057087674518419739245432726820961364155512443930502959868734839504842901066503330463177015802407306278438385821638251469081173235487991518029116663758807925811924799391041617210071453480382937192850910161358732625954041956749214188834342135665115199182328230157572763788249352209513228154318528265544840826170727642386224543002396997928881075871781189142953209641126541009040287261102282231204765980188362029761721894116831297812971588121374756913379457592564448095051926115045894705115464478546308562470428945194332122669080314203497743469302857734463315913167878492665666758943072417721377934984279488090211456419557873292556176335878226288910253268749264357298906875376686528586870826347809335675239770390714887310387118975896374992607375269241888495710786354098926498130294594134119940798738948456922563462459279559313795119784409115458641293622475244585192123888308405458221707174976242331226092837350840820976467209196515504881046661278886678659834402070515692183943829332139109289704767034465981668975265644242165838437700920345463576468914702270060403714673540336137636847231753341163445130098396235470640609572445232687003433174392857255113501446114155868383201876533805222382485363180957185063797349650606622266576077310434014231590328492607991729781431293232976220141625023058006744645237061944031057937963692638370813310606776772357681047053409707428996276550048863301673502904015767352770028843260431806914650425304145944817203636176264144613800002539180667083029211629384911584723638366143434212617934055333108658582432191427803150439741758670841761265780337503573415939246010184572564001749866446820349700683313780510204322549487925782658126737566377754228972830424117963138119163404451265036789394760150766081901097684839221121512539252616993577079166021204828344209860305584818011604586400806307385154626037661445766635736794816318296152825687465325807426648778235470861306006366446583727102625296515709922344841427267536187237074243998372822657084473917172121475543197085115324134114207745530475947138072036831592064411103863632377856939337256764102787191762403556239864616721753219523573169111457024441616753993628479747202341289481059656190387875754841294776446727757781697079393778794611332439647098833652613122924255674986770025739811373220338258042838399696199826191630826076027131556292843139657357559115728020735780328166007434526979923367010297313508137800326175658363485646426468643392780226763190793170522753153794839905808211661388744978572837671235515565921650501909980960570932876876909818829729166873775326772975362382037749567199905814997001014614663594896709501025979871981277176357008563511110582483030911136963440676871076495762603122190174025280616231599701221082980227505682623738123722466248613966968428148274575598221137645721481030383519322950821168215257889356535011296763036915790057172164461250652621098677448272229854208458782855808211273557077336911624615671795929924910773644521162119541788548612182408115044668785412643906672943988879322864289680023947019430842143157440949787799793781496550497086105022409371827766648265540061828890115527844152369952734225110109002591475828202871110534143311384609111177625453672747574534827705900999830845234017488472743521166552986716300133693632733399223418257638011845273333637188575766490485281573870054943918085732797622109235118845196254490797915195711446959889774520575653355148881895629719623593857731877068194155144589027044369085327706592532578136975832152195903972007211575185603674275902507545160167189842570211182531126483499383725353119248780109533054326368285304052485233073390940250180636701590795798954457045441566488255772972641437430749147130064882165366750959512991875833231398261106582008481837036682189621691245220142834443816803693689395425587409131841822323765898741871648374357950061838643987454235523499189910683525663728061308477687193316163966910902553194877931285369841261609495381811993059133410834811890148992475565290595848092444360660196182986883995218326974905049599716416621398821242531060807004036503649274039787583515458096519573328451644651370954729226730018745935930687755579346942670359069613009476223547831507027188675692018852734166560954818651840206411812947871918950570747139115292820380721033269280284278043741986565969986668495667663219641244062345436193251881069729092469464886820014503434244348515254121739503378811126370934081848877298782971077569934587519417456076600683741951829197807049314588372601333136839782736580445954978528461575004567081293714849823774897594392497232782357716686936776575147427459403753494017919027588104046932821354417713169541869233587129014986744396544505524522798326847221496560065009511728179884066360657320805110431969682440217001323274219019968768038587585412327491066781630896073297407386914354378522613642191412109777111530967220009796507092661073500425630213808694283342379423303886089787956876765771110045917260231337544745982641228692050859732179909286698128570948262636254523475737051735724125317693907879922586210690174357474363285753843196747975053456739600035387695778894779983182938015097976649089226173144314594744416261448641920454341437354386277311649992109547326519924792872239533354202445090040717355999111647691998943685490749255472913190723854068666927207493091840167867705443579313586885422018376426524067121682813768775707650680630318684776334674134787312774298954524192701226960398168201141586954551854037380854178951836313640218114425555179399486462245500086373511757779860090172289359871818256646794196803580167703421552503364882932529131446827418802193878504297921430524570431484762065097769493089239324752187553404416097822310996264153181164253680403204797180879781340119860384794012215134792310862984698382222700852347586009178106909930765186005719559174098550964647047932889535469093110041833258382492311855448800839574640686572996206716082345851865363153140401990660142522211306069218411074121021157940636347482753013217722100669988333608329686747882372498571442350895036364105670098164567277194074077125028312337933122452029371274616163423374890413625826757491892366525675945449933181447646227979209662708537710133190132356819228491220270430707869640172497419104813281092411310476452956681149243969420936665725082191551717806464888916453718039046346124791844074299091709795678643190365920077280613862569261217900363728348382042941814489036535624392819200363833010110661012781629318483097209288423315285998215896451503663023829450394524563841597354935784551491572716289335083925981679937694391813703095525886544538950201794492692721963431069471228265484970340160280026831857651331192673378255363352453942809721845478651613653158612144651576183669614961791753466692676594629618192860692953881980186127487953784367018011112260970181482586762261939394693639044232095426461940654204045032809950991993563122114520130600125035097131317998390249595986546432176173347805603671691945875030696191984644211425517830981314261070093183987914776184651333596526504591527446243508226639251969282056463188700503797264768860827108402627735148700249230239406355552205526570674420597812349517840409140258706735793074866822837768917734234083382690679083290936089680565398194997378679307459347166217338217528431049781250024873529156946298525966004394430719626473815850848202411186204249348488513233607904034571094576090714156093446712490422195224946677568925236570984582030353840621694435132526697077575934931858940868075368454092714372560218916525744743348280936102282458336158402670696818625737599495840732043078693931620693726032820452205640537697997492808237296701927606713068282564553468555803645306738293843391462687548878947648503329684095823967686595534976610740880121907960194492740497449202875853515033951441869110264606511095369629328503426158799099337791519891165355716351669110636839301885778543536823754165961819322477253479101352676350547477907578732579746347025952444078826629408191618047979799716898752384554630257861191147442457289279367343092657201711477932224383743244344258909446049850303196327210710154977096587079334704164908457485325618859526027427333981512790206559629373804422713347970069469922512432230513886017630399314080404426671499862200080446366053589117691175079453081197309968045263693061501366693839666193580852845984234851702899864341568948680026448517915677011273379004388442123974239995204312573682446665291053317087561108811439939322633519324392365668718202215786785084094689413865257552938385886739483205491636222686083374455593802211382708287175000095996295384324919942930015007282399937225320353302023966060395300462216144132114994071125397988285002090259082261326337154229078801760329461786308693776906934604356966100449391172546573885204411063716262349792950471299224808698743931272051674483810846974239394420582831157956006669826043644962007589160748136877331382069441895759360625572306844900137260227215884068533276868822558138037688876479716204209674706080983538046237635661299579360006434915237886717331161250644738837703217002847179628172743940465874137307411955735253080450009747770782448176289522318824185517043845496120211745146937031408981873370856604485532897881164002176937249992764324964436780623346948144047914613823608198078885802576543803001509231405044269646696658877731185403711897921237597356146378976885851850736821201428146235331188738593735043298723851116589372974886029861536717900135143001717167357848228744501593780007714055229384472719494311627490935879420890239889259914018584034434237991039947416311854653540281191298436348200757288215300308374443655941909087589780974524742317364377044691512885908883529836580399341142101675909643286717497607479519116544187444659068542627765196118388693074502355646043929946856459704724489865126128837839471323043227440684091205452705301304224277952919776113773369438318271991093087464820620435016727306272028274436203347179369544901749524140800159169302968082219361977752474735857876711551602477703908660734491040595775037539932231273877664242918420593703082811453219725504877096313750074620978578053034472402683826353243493723867732867664584585673596092209900607543220234887348956322874871531760634128996313483508407700787106763927629017375294916109555972299359267371226665936442916858964448866069444887685788486873579128839109871716588193767062155911532754307787265409955316306726696008891034660764806916763252304371397758079936668095565113006517121092967879050296399572851582327038149336230918611625052749188236198013414776920176612220967681560901935566516233033200207318180796230275645909650923298505780146022016505177771443554218753504016401279195014418640918182443317958003981983525922146359835120312297925234010668516164622761661279219647623208957808774831722270045719888989965401023698511993209823295030580623321113570707478766094417867652222042469259737726129855912547088393010062046135361584516363977457589230246181869854204548618649722978562289167526123584834102306901760414351984554086579047404894703033589451174307249069013983824094000100819178534263563384658856157236254972886838905151393603402016125864833027518569160922760709576913803668944838418380219565986724120353335775581912789029022276484122267929436618520711913628750309405594530825022016364754338117556195383829211722038580686363515941952843185806231220908578995898447625777255809446108663991845510383437571161015393960501003882961363153734776971450543733155651989688615946024575337287100601989319600255642525868123604953751268116624889447277018164828362297962524016016480385063268552353723923338814716693500339244050487405154017133274566982325015565505301119448841485056792738636562014757039543797519174498786743082514374476472267699651885045187495726613613407661454011883248757575263762371864621202276428161478548580382060537854135219879295737235488869734334944836172961835485757627627230282867318041040225905186546508966126671185883912289393267855848704101091290995544454279670954671111883082687279114936157919983816870371256660903951148539928765163915114088709755039009202914182869718493185644696482405350311338351903591486845984735678863148702394684332141787544159163751074024139823022177895649586889120839294713875364207236816296893172990191819295634010768096186105156471104079913581710204253071640713420742014584355904575349747662112829562818200897773085587027192542921333450499576909990199946284149177065634931654691643197424653436212621027274034900550410338599481760319888950321855605145533373232216140896429042337778650484503573945295051479250017805041326542348689288363571041513861034970811306781221431849109579968696840118640765263432814286384149924586863118758285428454111116824044608319804085322413457948075802971610767821484977420400784395585767185703947242641257555255970923070984166977383213917734558181037223563078605885834358211619752682335384425657648449286915444047097859425349551098517412170366074860723331720237614528530239567018183104706911258099092984718987829643888173893219553005134548723422830241416326776650610347839529688063667906639297408461681952335980950499719619784412581597685655874667929251985719167866993802770700695809467965654361378967845956173111790173671580618996856494755918976542236446855121030582349850423045570878100482456285126657459169124025063863591432150704116344353629995420809566727146305763092032524800073767917633992913235226858893527302213876950602985633349471892995864454795535053809803002525717264649127719566917879709716707437732501633189058958753886228820679435515684543577894693940405581667953773510763139892539411144587091718425024605456515912869224144465172359299777568812793389190177789992116499633167544904482653825774050424987366626494928775052284055407160094562757613248994162370674479782935565827451333461604997723343537257865865492667601566567768977757876250944922361913214140523880620107415091237312868131929520265818246995630923087440738165395450776641325096388338796443105228371456796645750746958266962053018800884267535174955281464191163877838893940500143424903286500173070997732178272452638147371258683254350072028622197989326577621988905700513248713546190069048116435936080170067233612050815183792537855331264877441077552156347088626867303582392195742379818448176924732958279813295042803747411969894922728777726504337360181620142860439239559494025185531212239780562050849933751972897653713031551916464187663061442516735727925966831635835047416231817601108765580519602698790319293072062701210479307428539351768706030150262137234639896306365180965896677588789441793547448195042348205179282320571753585568796897992459666272632953664710035985993295081304174279967016142288261974922828367941394435379461809301614850995423927409390594634919114526771594369448170493302514470524326498721372933182382185391561779795009496554557033122179067319629741003487283175875015736749585725336279665616231415505037952620967926281379459911747738383371672905715198443033382850587728857127155897450327033723209626384109885334682585627359746178359842934026943555154408725125639540093251749497846932348216700833600221222577282126362553554266986203597282490193904997880648581347386406464285168093053499484748908563145733995499030598456104609075358300172588642150455316933119197313123700042252879623809149718818297229992592501839930935542482770082816280824156437327066558274638741843408123983381213750844081508450467080888752307483351581528055400870102325834318852028657121519760785003360635830945108434172161036632949439730339064557857327099151493707131876895283240034515822368440575963098568635428004138399827213977832370687126148096455753855244510603853506256909041979514782071224110681171615830786593996416417913890741182751112153622468252577399996349328464129193266310540099170086078053691206086315985973301349353296232506733924486959528665207637013701177658146995155190095040172361607128759843335579661196524667702005759901813174944482469777677235210044569150518346878138481404734127231178055531429884436750539014866922496455812537123542946463154990567406614576022632246002831499939063871734822806158594847992609206671296941489718810728992214971956792938338533910756760267585688932769561336899300693903036766527593656313773885623320469657678648210444127199232604184853581753295766856380850507866494085514291888908156604541924063839616413757482052758033526462751365948754305230797428535821522768085072575892203096252647851890585262908117408445409924673052740015077585115318384232408438465971988770348473278198466379883474309420014440906382067359025854340195641495616698256151874240358281605210410026205107467363937439850905167274668096801242696669705347626018068732208012572685244586619260040021728048516302768603228078756370591227125764240577390937054792762301556664367096877447535315177383105249576711036348015835055826855801398053918129972026695638807205849788391304585416951271656973360730208941598415684310499505078281168787805538560638545426587476539709212720384517910744374948369679045349345846570417376872091826581228004047603667250548984978498393060846490501218920782257785732198649377485165560655305721230196162337420347364216613631045119514236439341652469614235515613761813282244977566559586405323691816709989003704940932239083232634441282192432762369472193563548221903073824175769215953854005162632545488994250274393774793769230501047450758759078873070342883396829736981504290038231252474313534667078291572637075142179503069611974479626181447387675112864401725398798498129154812144574233508528842984122209778198051371189000470433372184892697667362761507321547621910690642836432810609683134709800513280932388624110823335954548837840495755658103328808120722850474202975448960345173672333197091992620751899708101735458398738943313439124855827736168785792274057245554661431000180965625257748346603932272588842622622486927861939016642696798960110268961702464919288327626922202325877325880791946780414600634933806213785036275472057968251141911760007025837311847939434378365958400504153320030500800561770776619822679095103689592444441855505506371920099591855186822509110987024950946693715852178184056523359729183962060132683119025434682287558077694480996778241820716952569927703056594824874854526399735716463525928759796454740544698086542359519678829026708792318068358005920886462721914966487113918579402245700469376850321835843609777039760986760556547930451744200520094436660504264317815806167118452005850033559597191132617991111782881609006009563484277577541724903247581784657925934860924063886351314484642360849511540285353861407741554962112994568282012161916901614280996768680803004274957284337085276484161541781456559623734272302977378375069266042876750303549597876875564866899526681279243856939086096034214813206409069875588850714383644867120664135855822555269102384375721114432508475017025823323291563322352996723589230740475399103214465779214030999839312176925571591900172852522618266524714823119285347320637952149012143305876710279474060111579302266655887506118170984091853181823235664214787049569829297934266458490020756894492361990896849130713042020227012718488782326153068756168308535321911312560719590358255340170668687469817863248366510133169002440281436693751964695058379739580328843848134989104672567643403860223321319007162720933963433180398901293312055757581090057543047625262231626754086878087035608533618218637055150447387845095352756851652273694248755226575987164265054404309892502181867163222606920917617161035414318056356697649459383021889542351787640524869732728939256643627393518048869492519561494635065027146450005992226785407003731599913000654377043959145162819210855310159804655735525927752831985169033423200024051950431822984324113666744086058090790542746664481058919128089906628010037805989297319422247760923019288105861620269913076741521123949006381167154835124362925866960031243035750707283107408958585093111873559895981439616770838034289464259629387940849103802806690838977986367516538234597551423987223078392537697302499247338600299901826535921997086928049739384225298884191220275232777768706819307276899353997116143782251437559200503766681117314338663207767878049100635296744571135922112630184048148390654492596624372626221375427805604134707650774712857613668606023826244762506796088352811700511448144506179051392014242482360488188751410102838580551644904527878405290510690989229120114312942156525929719472913897776752127796707435227411250573026135549420201151160251179036364089311214485629365487683518766302425922787708397693952206723013348420246298298939785075541768389030921137084033889878883348767705795286232522250116508351158077094061431948382680190709070451395842716345000129103884707807244150750396963955442529528627285348528914474526696105246995714955244065743224983469841352345473869975242889765726017924469461782080067955759576746369612379940887848828056928472920794354229576963500777844581530469628713026369636883862196560053013184695534080207151126897410163974860009274731099475339589990886258628161259194973117917688898420554600548348143235785278903453139762811218598676689766597600346779320059707822198471263643633928788627520446719186758945054119134082397791130549200833477220134433269440119882479077715444368134990271817357808811459887668101113621815793745929392452522453171364295840876995044752535866561181884440772922057775094103736880357772332541518917909320660719852969044424745592415779859379530944273318806716962861444788220901457424635857767475313997627342188500324736137190490579976230903933569767844343735510116864296157827503993819402539399134549529835391662369882621527560493056041924418708769257116329273635330226632925623668358285923001572167263007219364410169064447856387100885439246469354294594922916511998790254388610056092734798854389176296705506622456657970002460595063659838844928570051291912804397366626094200669095391899990839076941161686539327065991430485394794406218203686315825236254728464715611241253975154200012856166323654272837809209592704929303274450349657902674749905300693091003634561671011160744066820422507558336426077030026775978415231911372317217886668957377844253331182741803224780103749025658876859102613817002800361994823768345417922038639114381254385721058305364724049750893612657025916125278110958415233817575592584045830193362239533523800596614150110782413186733341620588180093473988845701117521510775773600167486539892733013838061831251593966961397015893269903849521528987465131975615709943622152015965268927240154843477940269587942123803658386563668972202466830311529810260869365763603329824230880953084981277544212146356815463831739144814542361594733419089447973831695691007690527966395776202115925807807452680155805304718987771921937850216463129690932343979875221596827417718812340206624230759880174856927700918307945562202579547582011094424939872797916731960833107109144476532873761742421940968563527882522489562203226346300727759509774441949823797075306072177784603928904695297275025095928201998682211333849043978043609125633926057433952460071895119222087664238604755811532428642459457095162398758691862061440282447933346665406154604598430958137581773746726126114448866977247523744978596332578587749490145997180230186607122612322297166276003447619817130305759982937146432605354481837253403154618230669721024132176097754155692723274097100173147240859365445702756291385555384639956360116466187566537468030926817912973089085930622740407866715684813825915064155757157758271882725951673710423569862613066210761300464559544218393828832355825099335177334024048813595657197963787033524675722679289311744441179719065331111993956158233422564554922211732915099553779915866911233034568139438870008330325060217284510064300613815979918792062907966657441676333212174251842039406689977181365816559963670102523186672595941612112885973375953159315906410474358810941257451872782962369266567747369919973643095148383302013364667426688016849211336637067254702122831578851529871644012876437274514314936195326273013836564084070354832899305443406730450559718912945493403626944776168727639305249502044558052903545556312699414558779420272136301905158329011913975876902454525168463851481294520420977436501600134151090414977990784194799131779053677715176912379123693953482413857474674464570996323348841014098618216244465753744093047288526918213436637296937992597308739880516321438191337698917808393620612655963543541471089342890257805295351359713885495664914974044823300614851363320870829986805689472751277995231163212660561672170452554379186201311638200111452834108535813839473840782777927238174400195881669311349131685201817522833708288354510445235358944879696041989713087859021808247120603476160909263106274774328551980052841466215587786671921865064154753431772871383232371800750019409378933267406498525776650648358309597958242786952915798398715248144130976686789933821192464311352012925288417423960349199055594542497567813158501120273071784428895930962716030361157238062042834365787548427855705375826376744401658964758375460127790640693556168658687930168163659436260329217455248730827971407627727093156915847297591249146388517093908342690606730311265119937329243178533326050001506869643169777788713346847768998103982952102351957679501154925498980001586074418508032044879827542174914355758249385345502857065510819465948955369759711004267373061350089900292366613447846767182560081920035076202113416529607847146965898450346539047878984317786559794406053506576552310819578392571178889660133646796723709128049310293582457390801120944088433829610843607506411408996234124082087442066340235124762145554265982583590978489916068471384585840108644155729567188103548595220205711259520936171668005082998922201953604111616670093466566487953923946418581343392345758691451777939117005912903277991062501834330747096570680032299398254126566130268802638307248079172118740544487383989531642423499254611659844784511931481648914172326758026713819654051398973373112326423818894972978208738621403865741527838973108100463268627819844466385800839042155606433925033413486550427058846128645674459576595887920519493876529306632996340739117721338063879040231832748096809810432915952514284804563320718060542389952480601785242123703496129522184959195487204271466708947398181881063677449024495283107699915369397083321093796346841373974616227475166638652249736665533628217828990707157071468319527631873258263133643743552172236513259582038539522761751071489231841498834664686662635490724725000573439904955555815486583238163198051574551281039777250801914961197001233395394725283606504553644600146942446345890161483394362918369474105501723530203743874855086987211884024295200744466463263401092024882789007008469903170024778669283683870518137621426253315907112032894039791309982984087706415181686148091752370797244583549357278262235988765984239564079400832797516026015552814865793054158845678918058026395917303033659387320236743875995897919889237355976443360237690856336144005935796367967090438452393730577628591476572026085880664351605227299917835296900501082749873168185802687084891683302935840001788874098892274954003177838066414140086379224432595919314774758322654959147905916782598452872396237725741006485783814939062920611276339863681351088725090360420755814264174136427119839095824844115822362595205667354860506332894501862987335613311570741863852282476090075267242430801706290149464012748758706256610416151171097502034087458872627558734975116627171246238824139122891858783698544348698414911709949007056981487733300331246967328059146330649659720997840240004827656068431631850177493138044426497012083804653518890160306209405922829417342799855856583442184773544540467895813371318090976869287879551220051258239324010118076220683540410707368006237943979998983090799741705533973281359030815673948542729762160416810165695469044050423112400219790549589123869253813146886268213144602006439373205824901479172148718782265963225939224945815311676561536369409569077011458431438806363667059275997783556352452754987488110058912807397609977764148770061106059063166142520705912559609001328964928129761798069726453245121244157484305233804414194683714946480146800093601463870343900892889071131197686993374325842900457659432492572901671097883238617002266683734901006243311824753322323968368690541303582328362794877323689903348588997022238284862354353534047396761813238711737573879355011577242603647745589974298347590127288594985441011901508915030479845996058019052342561323616451474253872655757758904731376937250141408631458212592540536451013607372061111149596162696249860931849417422186475196573535925673206082478357010540982930195332680096736216778456399617182505356778061678963961567872925167901176225299013390948790662860606490461550136605725080299381416708327292168977970893673115124134755767568073943271165316423869017997240011639706177786300329644947238363841683183000430595308477877585715622911885621415384363861839103886493627018785863966000246983172212052922858816556369115753777474270799244928165586165123841870494608550675019740902808222127567050484937130839076094735144938770666007329543369303269929142176218127266844111757993995972914009700608934470955970338268383144088273374179831174326535589470652504728399737086278659232219010337903295726066834186399847171873612600813601972344665312192450495107916460517919738307928803887072272162121730684418449395352046493177175081295782217543167867233181331297383769619039727645455948527852340098715686506563816884138580011476534227433156521009116795309491265977022468998906545357859578217166401515895207850466970943596766566772236050383365812982459398857358911832326861199966768987934964420020186538547880308473401488875890773788207717960362219808140238000254057250239445575336150882453107079037496339695782132847997796717133239542190202233615520383908802283090729793182475875593498802643755424626037406567614726332445417556286003215751413415334557570835922742936941741789937211449593954422605113951725406272050575005109499885146665635023358455605540873176485918761598055118859763004074056768701905336009585787667326370870830836515833375935032750186615061742094211542164264850731865177250654732116771904893365700978082514987179238558912701327658148911047058274670801542563002083038430363395722164562303122020179090560713274016276535110854992536600657201039286111549665586734857068216267533002622797134981583731479431617010777407900876034068868712868617316883818336894188410852542210742485241679036521256488787555284667189714155528799578898650015624238819721491723628369015052328501702292933881210058098431141931142981086784094458222643527541455991458756150628798249715599351687465322063801726530625397756445056307490175771856138380058047457189945307612102409105302524176586366069287725416981392391021716359702338545802289843251294833230944738381950472274790533594493190612206673694384663646000802930118424327404802763197516256736689359772918613214393531122604667497671393030197881094103326740634360293416866272906564095247399874611235802555888836085310926747675075609245791443337867356446647267035117071846105431001746128920170341413731596603889172994072232826213322164325391313160273829480139348785896316674237205875541265841979677601431725225175921222271996750592451491924386863169992203966705173026643417928287837487926952482499885612767457628828962616065866967754734455024086120842070768970728716520334148709822265084432491778644338134628356510195853557668066182550138048549335670610055298071376151669341032795192407831797931291386855073826723369442270672401990570824775571394903819574954384715794946614540530943283389506810159476319761034331087496489121156989237129054802548840512763003712106460962662602763808730337471205587260840843082047390878624927042330923249344466826646452744063417499333635389687176120783059111528048518637021994989704397622655175775458184777821079290575772297870167937064567562022494463113754336346200878451280241394334692865538835529709573068674402260839351953510528686507972223099422879073557993997845927149144323001149541242537485152276235112768347534718909738722084376202897415299663045620447679052298338918144435914716086620785883453937064108048604600076579611017697263520084603492481349929670411582350685463109826220467372737177422921957041120200098495988222978657913355516931647733250417266157691691671787177623230756899879028991533823521811943305646014118555322977182085422670479052022450239897895054427857848947519351769689110835735348866671850560749548498875968678322455912373627484033967790235153153663233382952023213591529191482444281765859280663387220836006235210814728243282738852211041459618255589052375963435914258718961937512040355335763244799893881569976278043697682920657236617648496463656421144731905088799246810766075562924137162813591579096570326142899334815299531597284247669085780207078436726932032275683945994881804224409629395342324411571122493685642008175002137687293663758567764707254343637591239740944515906173737406009747984730365990249752512802113475352367109772176002549023534156733647866983276467777035809064064426613800346913503174599336821773243937796211363687911726090439058350524434053810689196486909674812852944790074128868732357054495923463317525267126488048689588620396407312111151689652829211994974935138044645668100927394108376619382057366577055066148142002285527329553145298979425177885505178365628291502723615541455594354073426189756390154857604072783164686381056550008494036816736571182097094246802005008777728813126903467627840517804572033904611990817925630279203115539544417289241962926528627448110910654119914215125283512509280578578970326285875546316366423482161565012461582546636578858720144688729201654092484285263959415176474882811809945482421781889840817344348889979953165517899588074643079900005496509420624120071304162256952106152457067303134004233241173468789639614812684199190852495162217258276075980558510284450482753338734552088199292174171364732897715443052104509179331819625878816784268685112908659477334761531555157545733125515910492834531315447697317917388334492703272144324965396290803774915508322000278951846251959906646145626011093857922020469713989258739625912825488703531089361584610683855735279852182257003079789480155563920336029354899983373131364588733380956808297026795844282959011752893236653832351726023357919802504909234894253282412598164917028759205359236765897226344929016700404182401698449825366567957255968367974866985928846144448138705342614077167968156946014130241052436121736190575113225023046614963551443921747321556305945159261615127549117259819786548460463453437845278642626301029544193098034302393430001330929258207589993650388091216811219605125044191542407986066160142360630734105177532836669824934304672010873114614038461241056423965514863175112297226123514677689048817684992879678691485520299216005061537530941715207315064351747934760645222079708124961380468514987438077670923070607960031663278095891636555640003631692680115919650903043821045093351433915319559192491940824990309715832679782815428774404935085461292247311591391630140126487776976212015871715161174015090230248000234230773940828804338542496726669141619593980252079831233619290954165985090866558692636785777802259121051680930145498471268809822420790581011168265962076655520509057985174056199827224700313193154262863091094909806866872525886052328651185277331287728007196097561547608712227197941184764694861575282875344504064486844167060428331979190389339356127230276429842547727709076182646965076789582938135369058289732311158102313388834975764958692663036073233101783790595669299399021449638369891225139021623040503412844787330144836623285959002117212661972238721359539107364855609319578315117303125804296696795901127107841334478840172884439400072730036218511802776864193607472946643895967023249078451247140256390015262452137040340070021087017130629049555748217159934411832348502671590054145172181663481931824290087012906533359377345292318701565158175669341758287483713771033208522988475120581675512709409590945892666966769247513241060408083361894175474308207524686197539280929800542135733568907067364579714265351404886594413559819565589408270327350369764725936566634079220592084900901193928344958038337610735149170671827529902538691440090171882287149747498733668264222203108014370023224311576963106598082383705768600774477961012072804570216777381221168747938798071817127314624349875877891154845041207570677212440246243420489998233992180343071974724605679929808078613046645546645034694550892928707910633640542261898582173594716059756764472706935183997756866269848507796085169418789446801223235840729687973707201272831373513022548214307547749861996688860487786005860722020027478158280989933246533438112328051310410758033137017804241477484575726809112367513282689944186927125138718325436611831176576755347767347300547308304359494907650651842350848850444473526013153631262360890685226876871286456006218367329088075464615580369107320497927674229585073156499807432097613559173219242672963327117879294851813444839380564168445743853685073557070364032774500935382078127163614453360401350298144817874318168839383381580858100961203420501052914659861880608206812190232782193278640637965488394089913014819997822010726643647017218811993295223895563645874517563731184295968121585239764138202671322948665396503111375003904667101841612501347731134176178778616100457493767542264632229527609979580970739230905639005791378503049275591216927891571376171529610836419972115635338042669626284257067317492500573722300268844636533724706981453501795860143897171871215223887779332448269232424003779590314410244487732016008417006311278796096030782599666725031113388379419061858833314159243022869071191538925733977839216904658695938758487436919510111270876296913054234785825104274868228162394103315960866343660632097871308081137514103766761319195915308063004314652763285073075477031427341824994120689235014834558480749321534139435746960766013840351795644527254436165650644895528541922428830981849779115548160697687795004657289850831615417378629564081443725727320649294820102870984604006241267892259247295272025787333652926736449845194522797338976598267565616988829424118243071945042655342708719735946374296749800176892606833849158416171418611720730761559471217642013256958719846196885966259597311268261008975024697108586169678207623255388626294111033243742291888451990288884891683034761122817267215626113083826453637016673888035836497599958144196079909486633550794845715174095425174837519630794780504931552954698206896496809826014394210906322959953496659271271098841742488954433696328377681725238614503121931198098623327222959455420282721069271772556082443429687550740686887197396208723155866440807173337208784249912297701020814232536886071401843748617061811965900275988094128673545428896362887848478369922482238603281231629754674103691167991507350519248081461919800079195522295010434406235435771072419247233389001867038768707637728140607283285423397353949111928289624608207446098443680937875336667170168416096355665704742931110337471323526015197947864229159645926700433052926352905721049291560160250058747069720013465058515446812696491151503370922161368339139350356008674439268295733448954520513668985465643854417981535824841620533434155244885233792641823814038575113540749805104137441499528259986500584057485627372640249824655291963222064765241171484773219100452123652617355943105142967775693372697626962353530978607505301646391102330435131785663161429603029735051545018125675467434493922425009524310195407328265545938324494393035742043654037600240778393207268759312763498442207723440832952846550552706896100854684700012032549136114012170024236101548238222088162034568054833310008066435216330428886905177312989050252490259104802583195001471278517968011594993030005435378121816296009188374049759353348588820314073195856918250524741672148070658614196895103473159987026203961473088955373814447121693291195089787120721530092817779575982673674762396506202856278490151641557744465387479057379645429314499210787525490779784885451238228723022852386632189853146460683261567175103297537034832902745545008415347401744828786150143087401726842201113182600173604916803566504844134503828577811474188144736923932275041320734723337552530938532122151925614132518616698492626284168138001429995077995754146200074406899269008349480175963212284830366942108589331703092672349730138594229309302419994699373490245549890000398253175341594660852746240182170766334003400477649257790689217641773421554363491243975423901587511119935222590657299364333014596699368690923701295001124657189802306927242105748230231960027406859244598336422411186981747928838550246099521237719736730926171478087632834985619103120770200550321465589222352544628857718027757651155358534413144869021589462331316014089208326982102724189435049777570679356377768371681695061397172248128733652198430965034256173499230540962134973170562812867524173808261407438707939232267917558859756267776355227252949580628989055907092652374533115772420353180218794129225128620932899217297379374008599528261370034108532559582823446014181340741751394149454063795597082064036496273965950185044817132057466598397276247006263417817134126002617803229297666561410664816499021456852761123388118930068414511509976911246337394858779482971074044166113317024866581313156800156901578319030932134177394450752839734047203159801145970559711054563102174145211981734742796951451350566289643386223871284090196716443827104987432480641503485780357650582204138317235574894709080825169034025746699604867025535131731796208771401119980318381147082565889685820159593003739398923106676976367145299826843016415700523334607766026412772768129237211700355733592685485622466188458713677101887071566972234330507825004387222921808326015750067510789721953403712356567145187758034477053485570071964330156320652222120278760304801768438308771718240492520106037607671575380565063607701372572922791257614410829175416779280717599558294758743479526429245684985022081686037280573131733893272028623835523813511522611278225244177532164453712534939693068068650905609697031344165163123566699350535250016075453265957755187833245590727915971064934009643164642014497608487079715647059685573150725962017932985981906134344143603860353080238069819794984489681279197556834214365296268983465744187760723303608758286527723419118128996378023593285342401904946767145597906095354039852078725899090519946784938819385019387688510208919752028463055178189269710415571490621797613068590400672043074452125762864449666531638654630334092253514326466297282013187213254974668672093462235075701649325931997888603376173100397987428012837650636403177595188422961358857416834415382322620298495087713444414469630195736513017529720028767040407957160731346409151200589354414030081968011578221556997332415411506453763450604573422771062082886515952798091441601410684787755081358001129652385269743026050244167421316738482675575728110013206523108630620971074948078184584245712971149147844614291659801584112890369028316692036394498735118953421812791717622192821864155889956140946467534431484598611775352888069577432596655145640418497210386494883947251364149888762913874120053801787746220578733857489766960014013800201265874430265951693204290993197051527525015413608332563401995309510468029513916503518155231991361577694520531040105728001929252651390859269956574365784256846387257634895444781614232819177003907929385816199569811395678275194500909266156728372745623155578442897803487485246564727684966388008650234701778056442441919693243857390349350800554644980172887246714302293799619401614796119369808585568128455786298341775444649138307259522103921963257172595344857330893795408519781815630683219252334704030875228044449171960810306805106825003131301752859253597320964431878783065119010817571065226742263688147750167905736596757894997879732357053131414773253267862081900469483836703257552219874546034790104786988421325174806159033075018744478208669180272181133017656692463580537926903290601711905754272689931414043036590589375033931120004918065649043297929209766114903641050107560981271323511871284586451383319647118651659681153928306615019020103378666636196956555914150435414772669098255400495865230404579597428716591613350629850547388213333874205103281783007413676603549363173145939782979762455393324908812112734760134984010300992548784296126297374613246277416896768939526710798478896560432547565766135463238019627340519715416029999904693374655745663550950117558600415819236325510756210148208189440391503460859220770951603326711114429793763490362549151809275357266318807098982674139430381156665851987680574422355964955624860871222832895954605754114047070384912158717131052962051953327129267632099428443662864419610374658679860777267170479696056666981347244128967499380227389470857403099577339888821038326522555145228664981257345822034414669298757679665551935646585655087628988246773687689536557182489227684083143877691800795758946693744005510288181712773646160361693969064308482929561139397838245653084312614013896279051057313565651291913694584552098404136136811581252631062959557825545738452790469968346207151350582596897964190541562494022022476390439718645983483240676358777341227914057227554308654439074816673167152768308560935962720788233677431029666746845979966685787961957532867026309418766535203666676737460647217942480090109130474323004889071216554950057564347336349396635193117644583169140620463495965507402333918759297959629700554630073963970033437487794758382680922705638603135268722737680444437649135849138258877492690296399689747578237132939054984624583545091853546214787168149079106917270744046190483783348680031600823003417048119744603042646142528699965241977611384744331263313996784541677660736560063817004251615621924188022986913216119818271270614637821469889583506134406694351236791094021226549722414911132168851713721522852850513834846353584724023426584454010484406063766799783017114467822488434947709617362028130611713562624934330109475352921040209910172249035564988477069534732853674486234276942983114065551297679414092781217617965475534116241750409719120838336399089859922954477561143003865974033326798082598587108288670727966509216599110454047735501569437075122738727753206210544824686577321456904845010790387207944115649254108653528235744576273120486158165347913642961626097538507662359514765692401303781540194753453626340341133575766828934159883779753912545765280168001184559699036884415950219427217635277686418220819667481672287566386010406799285277425318842496148212052896950167049301687009620276513970320790315143851552018210112393503739422683753624230296781191028074955035867469325808570015865568707783711736122386442592868489170982192880988477736636290726466342271571029723322654996384433119529947811721958499777727037973151916992093125592239019851293227240029906206463989557647476157572501621769252913920288108996280843748729446536478266077924638709722009507825317143147495850692521223287314993501114718354220674905149511153449116932745613358987603333844690194532510613830274956784277557380345757949734124338614692795428163240478450026396095786958859537692553330526692686709252257464421664348426422146620088203044370631753160871073247861281913212050554077029189247596699023000214148502324789659709278873660299221201531762215268152568911108822271708110789377014151059126978518830692727599161015321903421682198375780516022675488122263758102090412957985160060150793356705559953691507983200535462867449292980359371434903639368141196350445657532998514925058872954370533638878351478624193219018910412274496000025946284260813775251547254216467019650977353264240594429059616324174135143909472788612544858996693945717231340444673218890994327802159009529505220908969492127802543142547364559956407514851044216633654571522441200779332643284398179784259265289288901691161542644685691419892686762261275265582822357437408333843199934728011027694642590815362882845385543613506187106196037712074261125911812824537436571669124653704418254068136619257327168808129009428054755705447100077877883777968571990911298617832109498036110939631450078873981186598601667305485621875987707118617984518690830075490790978158834288369533478947686974201471596557700492322036993377239066762237964541980497785325128386002999147600911051741523904772590680469762346870793546993785744026550651675168074927950683749561357845523650287516843506778998274161758851879451301657970734137752440140377257482386118199754588239273845478616670245831719372489903133507380794478776263591347297570087929113787945620897192835457311437883262058417706630709122738133907179721793543727144896575711662150595580953553761951816451175683202242575356505904838370892433473296276211037310918619555577495718627432221971596650074379976337194358023651698915610817082236868185177461173551884310628903069867435301907870292263847227915261874343486440111481273739670204501500401942020746774792083118384805194127169363329872876026375042306048368545649118861046262703114460784019801539480502593083879210164993642317425793776234553432128124530234030192066063893394317728040117707507472042772533946458973581656279759160886949364984410421490032611395450165006204165383807577049381942124264195762382735789926854368153476881314559641015792816362742956014554066694310454635373260339693124888799086726879825929417230923509277284013424821800321227994413982654703682023736586977943410956560876282623019075813769616730519230698650680289811116172575630870892942313115873334033446781459743493442002688081959909403446827917112754845719180874489121613771690348158460963083446361769355120608838669495254247834623897437536878818675879842234561934477537968896686016962723760045547590095010980935866880434930317879246263564242923603132121007275599682261797185807428182056627466100354913959691457184656170039896943187842827134890569104219253050845468044802290140553198789232636132622532037697541654314592408443412360412246379767102752496938554865381869814033966095080369831874540252313183281911855161952335801005113154624194814518077212323678825171458254030034806190765506415706702244072984515115857936994554469676363321931605903984624011669441951575476835376876571262899074816117411366853527443298195657647404747317483177213061715158458939160128718901559604540588467466386375126530073238549039322598528562592280971310616397423560599772842854705495071800505513541024255012835449328167647499503669112812794172439470024870186802300973629295510191145158990436808455116799794466950440813456851952162475533522457580611709810611702160182887471008219930632808237692413351497624410068034088623136016650149834654450380055317862815967012817650571899508101609492321663580011678491676239129843111933500482557481913147087899957432834813256153623397965835438764691990192071117510937958203498898498096229737993814079482093892970200122743662809807697891938885276594813482685101886444528646835727547753936445810502698249923217205418446411187036937819304927408425060463086638117657172793304162859589406996434141139625874685376333326481235381101681632297205816321658681942738161383799149409939039134350547671133562556233768606520985846334084187526624134981315913656543304429551536178839380276090658357874294461976013116424170702718209950078261071216344117877976101942630420049005099641065103964140297262741906310774639739454159965500859865615421662969004084747896653411297527763985675160775167898238425901533673623701374422705577018565248966741396568802667082602261687805284526261077544869345015524588017891944776337369278135126156184717883335656030192041940457069636352409483398126675645085136112106621687139902694562458830742627500603553577961886250800737357522882686983442144232341699649027244018093600829671227094200770154396747567865262437725019236370001547965434474285495609033761303305057488459229567910071732928248203740182219023944799521765045330244697673334618600618634264925460771430204076049004686542739513558924186628448707055644249056327032659231459579566689675324002415359265981627295204901798591119852711150863132691958902947089857332093904825259236229497335399336055365123886745919625211567271466572744441942738330998391020268957986126856864477134784865539744333855319908662428601821255746271094273546023317202461256893088099638561934425092619737272004372848026970648288656786056961432508620377906149846706743808622741765036501106819709337868521843407053959214882988560578064984008868033833031398275396463055254054921480718593065082181800379633670475805290106807359457569187589375893364565375067463145109640046122198775364425369685375382298344115402930739660742371288700699249888617409679801115001290914492191026139094914419388203064142057577760178958378429133778933592064691179494170386335489590744173511312169180205385439281259608698852192933728249564213469274507761527861070635659237473908784657143627686562723911579678530436902273707819691430278596265419962697984224912415164594212128704952181613850582893248249544104270008373006138672405499343116789883610115117100172464917045545484594932104166946100653754711691871401438485263634222851264994062463820233858001228019698549358155907758207291821302241834665586426235133371467313731614307898073856879164018841082500458128404346986332021397995284064492953948738830458078830053858170481825951282594490773193971043212663930347888987546711462879890763112698148795157063962231233787752769106380422602080529680923195989738182118568564684327523096680483148267040316490962288145948556082044233910344149224950337606862212628735609014429084032264219249672770233614759779902228034801123309494517213303319060979936825757841007153940263553391800867985828627335564525377942115456757845219435843295559022966193871972822360634776431476273673245297088126828205199865099552222058034565325149647785804639164624213771262667616886226097350005418213313699371409051415416223638769233436955750365883593414508578824951622624562675644453241158893262722342251851484328219648830894929398811908477483802359436302401020989841126079339426296547992773119720436833874510264295508044993380002838333074676380853940686157688613264648347629610888458200920629245784960331805015647579481581899222531956468707728496225098275838070252590511867043344335016196664067095825745101953973846019600555380700938115061324467802027439085365833351440549466173220428775318884995022123411407712614310915236354391135146470842532346101918561504952244707260653669941959774430801091962386285592753640433827519446628745923734593530753875546754630257037339532812999595972922380586823285209531795959987329188065355766784100039108226022660644295130450254274496423228743015125437810197782542118679707658112910953877191544818543446808745752982733821048540800150935032027322839918326218189497303884302865923796763652752379412052477502516425993422275288558974444652271617157569224242328191501560859275814700293174401660860508390558146215149790686873124797720208452759173731158193200782682822491475266226044530776269605065902542511159739928121803520479359610692915490974594637215149805277439746052680717288550605852912238665410798060714599048973207973268838915766183596621936630552460389671614661419600334169711281803394632287485102050381516795537122896699513674901872236063665414530554198613081411804686091696007012922527153811579050930434499753274179097870380333453502247510864720973443258966064363055991311080084660670380179505373911908698820016499314402648895536139238420133426147780618242380455395587439940273637749540213423916581966163235161258603128002932304315076618961606686361698852976074914286328044769478947463653705623922101420458720029115098597391604303383205244831838129134795113553134287847211951026061703545051819100371527132357840113198342041900552101638425350550884635013345548758225191090182411385572494318334903265343575694800221790111510324006811932693996235027077849425477539981809288194402257743105316053071013283115801529960735240193217808610969661197225586062996413537998558527331082563755381582330644550229708646133372634265919756511573540203306145092331220479779496845970442950073138579111785882571038367812259315993340482118147771763725817464788132379181022490035761766945067651653261362276455732101965480448811592082897027907496625469475971924648839971908279225237933245017656597432747975222064982351658242887766507396320134190572416504563822642325988406584898437668410925148567269986159729396155448235609475908564799746643520655725015481830208111096410019016513676684817096198267173097915595429732142782527684624945199113475093653845018572632848914336062620631953636067740035346934761948500193089163717291764315963167772130980302786331959873137227899517696313285709191878037475039360248792743287297013320293935727612851104605049193202887990706138976080077861525621068727706128428785671210398961637926567673676104696974097221202735837369017799193885549659761737030552571526147112916368032112485822896985483424817185098156363968316529151440209504424667254008454699853622085057187580279630930563529933962364705125063167719717472286971672871414034637997885088743562543166436375822767986982902367797396052256572938673270286671191417724574325778766677911653528183854236124243547396403570249257992411459235525620334290736861378023460968233337087181071403217579778381175809150467311839236995726909255199880838171781997897576760058174295512255917675283398541480549958178973917451019727800878365778400201564979096924780813058096206947466482621672685083959638695200737913201863848569639309817120506548271806494355119446388107423228028698346681508743067249447018313970962381116291529898106969324029229203787035327744498278377438083892672386445508839694228780984727281509638680213136969138307922038701276406207883216065016932233588959983326062237437028893401455861037047618046008270526285936583985983738470063913220186499547384087053593033568819770259249035007353331940783323192209896440180260198461752729294592456307555350445613798638520945536909890142120022565723011483412955717179649541382188676120654863450402417391512056423182134485785106272206488997072104268770710388631966576857606947978321279857379679937509128225461748932465113488844574088042823969430336964553210132656029549449935810446207508352418072190341302694649004550650534213582801882464522041960366416719537684538084411986530404722225694902137705885763464258875947555657641459019664177731954939311440502534923916392988892110300876476543192312563389438109437425002820495452674064462310827296239304012783121570847874293475702193333625537023468741369692867194256786100974440959925591077557450444019589213110484267813056889110418894326702405242382487036638231347472185849553410674876827157049101995976838361149691553630809522589620624238985377436352408579929302420010072825554466891812563996429329722854852310403933224694155931732634649231233018107741190179831824112317095019135696670109587980735262693948762449814428149123529183985808194244158051645128553696694359465073163302248461094353591246695820322740429341758673378837704769670008639475294338998507536732800809823484550901277202187394702317791309540003710472709827992450719387902232733766969222143946263111004595720033630821674465271667583902744248481173718682427777921222802908115065352298209987645177712088957891453747600441463584862239315323094663886599911359295545717938635334777111715034814627572374125436605869051628678199438686076538835128727938410942204299373939692126406240301958956946675226454522003120527326161344869057820172771205020757796376649378788210883265313634651805416023711905668612233208852993076606822269118913834755396179539301154548459940827988008513533431003023077145714861703226099546657624725568105683044439636701846898515325877106551962286131466291996823602360770637253599526762550450917182719994059437163984299489507463638091103056851603603657183848856993662973406275690539883236191534960357912932988852387941573292517585284861621442547150479977283033013864218235907808989224485101640743691676860801974384080649817428022794233559388094063625822669866254918445578224560601194689171204065311621617362736590054057240001526452964660233747078210934189803497447129310772565483686199695471379288998569042478958398606269991079426087899532993686797759821367427628530018990333813496641056520875254501809712748280117127148951614151720973713128575262985141676149300436028608378896735381360335805748483543535380411455876258624037144893567045203071128175379965369567010557719281768919902809001833914648335989367968791858316636947272967544529765288056200989338792590944577433509012960809090439847524947738731401610984141140885441121461429407706289391520515688783535015433230245715566227194234228620610967132246472491799785953627106743006838312054543337657915953391586062766560833164312351561662289441418903278586925699246005946319686629653998570240312111426312789752553316405913534434460121451018976948868774180251135697614381942705513400066215652268774525138061632212633050413888398147212217468971262268153713888101583006891442304742773032594219744075282545558018875659570087745858825536196325157009175965238076663855591627257805307587518624481331813670381092005707096050208073736430215023990101942521590634848257411779480344473992172294158892178406131479990816343670641526144933100867873949326491284911590685130035931929838452197041165403976899167545903012577991931893212826047834789305430503140893846827780143577154271949850725581895169278553048984949372534863099138713975447567869652332333778592766454853110647052406562155901285501124233445717256758349740867829804051774261086590255302689002234576643971510057492445461011604229279767972794488267755619335508486862272412762505405595170637700977010198792616388801041035824728540320201269819281950919217614389051073291023253989046739902817715640068104868532768736095080599782998877375858064761829233160332933398305644360121343480196883140313571820123238673960996402448611136227629465666952847745556672596226288555901533827548426480465661826007607267675818713179721155083517257624594073113567291775986589927195957240589608934836095623570223648305262367839660184364630888794290466360524309143850173827308012302443551739010072947417124879298874617830594238869102420306697720540702163715570754167454453106841409195068817415352126093830533881032188158514972958260053759737546797356348806822370932108296491855095182346087107719936985040330451602081422050120208564688139379835052132398205978940451488698256810422160621769117545017351273910688630307369537190118656512823552634408285973740926990496198630365817194090325368964799796317231772726690044555890308563059526991609142972874652038192345268745271833195704772042429627357824593016388085466935156971851185186839352725147162550706443837162898992069303751925135104630580033228694547453681015029584061019057164539703251451347594324114486742395501192842020713617587569127368995179257901929429925660674849869520380220187768009090807092718232094433196352781986557896267637320722640438414723459111335792187109597549503767340774909915219393791412933191215006950211322133075744543142287849068681032401435161744837318402517393443483251495816283684471873028989689750239448687577288211197202405766384737704110431775432172678663543208165745220050745725538398273004128321043629456918273582496503865793302953489972620087882600522864857800939378307997920425455616901818565374883337349125820974739878239430770858598404258343184628655454202252035587683486999360397846725382905006320749403081172569994767446104479617054968078040526420907018130537622941825417196595588853761768428337216061464954060720798662350353259222294730839159304333696899372958123380227435638977286668578386044702193384430334585400163215837215541720967236692480362813174924096874535947814775504720444311154045620574707953186255705664464051274605300507766850998223891277154994192686931874460202884621960382536868709439505238495416716552456643419722799116502606227165067020402899280258701073574384273944194276145535082585254049673721506360384512255135819159098981704492685110618084898139237323878448143715179373590230747173068588191463785164892339766091772867945565889297503591097768052817544055341317533758548418113005108850655773722729166790423673197019711197540790257847377076729338772782622226285965315086816575250076033980373565336793719935864253625786528545088860190821966206365499531041706442023505589574106707221268453200358050739365599567125023213352016161532745011120863896646386959630444235392063331311189069994557588008774260262738091534035915786218254586171013441848685266436496381658216215186034790337494831484093182405424069957339582665582256199044279548016533664828615919112722843786923658705961960004037542547784494973741918582158964934280578030493990079680651999422202909177067072160469677486180927578408116907514381863106886261697092540406574040979031538840933937436589254265540668471227633865521417484425747498602331592390067352758503954487799978888162945199715475886327828590475009763690314736537816355653227494158539756200830205829436196857472453330438631262684961124429050127138347462565971394538960866738127010483432644177032420269376965998099970547633954177296844798027977770340863727690197656287849926308801959683450777755820864418994328893636029652554274177217412768955375973961584216984008471447919268555093528211635516145035493729620256942017779783278122781206080191634961031598588401545682592993710506728832998254671850454106708838859136126118553337742845863341618106106907393340075928420737134619803277673425784216480110124573483449591674649030483721091731456960903292840158833528404415444605928119069524758377770785802552418948875147901866809408684555246426483394549350458580887723213742592075883521631714007965530494893190521310444658934467636183816017448380616717420294612364879026936648612919944664101575391790154798257686148202700008654321145843524523159064109275843859597461349685955745885601402260955324962921397740302244009273479729036921918994372296605119841177691860755988108684254905684452713454998832109669129811365821711522379461529874539762750986418257194831474160152848743831003525734181986181220933671829118452487863094600358239677016142488950501593855395786307663460095484422650641627113413295041115228945826490836263488447672987047264172224004428741215558615640508760135514925535616610263371288679970903139929256096541145997435073330263705898897063382137741358817193555871255565867106450236136633116182209640771157482088392604402604209591525618688823931109641002486417190318265967159229474718781097246390853429768233557407883447181196390986800127055949730239283832884065274915655769049862611710914907783153304803845276096329792887965462016550126597884738887528121652222582596928252249071377431161007966752270258428182470580168792310097767439341873387479540328891831308340803423744773670007296474009265488010279175062895805539918254209282718027133917691651796961443737018938028505955031990667942241589453044358611252905532435526282995381188118927602506214509753355307582576737790602402747799093005275710828814542864594833315797297099901272555381459957714616494915174738854321034012671190281120214162884244045262251043987305655615933008914531280351908934048753924475322954882399165656330492329603369392427162440167927793748313610622891391761331573831898799978550715802805853889382255521314478047742821613159129876630661808979862307446230989964065530660086668105306081263075491984926198842061578062242317704324605107107515875561052926081832209390161628924866287156317553289050209627380811203073087596060969194702724936604967110749303705096193767808116821504683449526924604921177477996812955893311069040662716881933630352186261507973207307177707760236713804308941127740348303581401270086341126748909852422319037487083707438354103730735069662546356663907609277470420506805531367870496522342147995522055848934666207171468911196912051965789710333187748705504637910674254433626442588795770350495533618503534076216814063530018203216823508771124193948902006703202192496178558923798645584045272945223027215440544957524100887367460030041948915138780388073415310587692056308810834855814702815632260225917151509975249507201930905582318633338301578711504091189308525723381176226156462420810556802024935190305249554126757567052460694216201672698771367953386847605281055223106577480003105387069594420649379952361768104104640798691182924127914517148685681517307875134607576317874534016035748912293287520262982659591408167123739002297438301971546332817278082642304768344202121682228471781857900922473359313313461974467379616594770961237854314017872229482282664788505309921739138384949506402290831456652332038630081912328683304795263961683466999003570449438065135628541195696604014501292682453944799827518108180021930804512820128074178017333210607417377538891039251453424779697754753208380986958168883170257626713963336621553395300074416669615213388133524438314276581246196684862614087667309673376612108520936354735231920889010680854967899830023613819974458865408720386313412992912787349474101083438417406400643729781106392635068276293951738053839679015430013134545294474490628987275805699943610268869601147336017899433088255317608748595411671189063005488261087160515903361045736679348252703597075645846047886855401061879476564975863109334333137437234342846815718320730287953428814157163753952160416221053209648658550409329570371819408225783555589110902902180558961149442327962719703459979164610862236105787398850081908913250884663697615847171329602252581410249945653967509898762987812533616925208322568093309498680599842585224669757450255715946551878195454804665472466110754035798344360274421616628859848066892039886828971448148997684261223801190956077633614767960644270032208025721169556966226165748370878092697493232692927218893406233104623215493133968653802775885745970721600690905623570036462831871976566040578828905017286817376552799733473497967908067231289332055650983606599581561245592171450645733400774960198532088827284462953750401262914837919905295211996657501628901988555305217833164622799132682113399766094339396464076272068984009221570106607378853859584027453674337441572101956502927662464994965152292580805559455895131190339067554625223329388968309362933839437878015572013889562068984233830443390722809326083161714464609641690199901356659085158582529910729360763248361256508224092331317680853693816861234460825635481126660549987838674986314259434065108277752991857814121136747811005517350032505102204456181139008467905736968519396320440920281748545702738069893845939177849569410987932960419966644576318223071080008653061277326650034505163277708697919633338609866476394788024432395962133364051615573122645518421021219132608628337430849849030282860603714258313850931077246181245990518875146515722538057277445723601885230085643214058773458136663658349163894216916481973090143713174662551008819857338211128551156634774037848904696330304470361573204854089864574078761922349602878676378789121770659908719830664861733402753427008196633700211394303700441773584172436332191546784505325532262822154232851484158562439585827528840832837819151199061618193562105004232185128066754960931867726410193477735969184894222023545780170694094956605097056981656097418467586495884803235930425763924606849737978141621920371716162658364842724538608818461921858284828165834112075425502169928809685321516694765328752466396760706402304986483022147158219044667215417574509006274513825054603355996183164790191112956134342357995199306659084012636274960804583781212564701287355754031769578140008832401178069104837444856242319949203936990039741350863441998988953302086104062616353289086840889856237421952316641092366195038290900166439389036524400598549133126921871496595622427298268542667254577824035918593946459733044609874328891769148254771050819519266880388413841272210187848909756878716886106842846185292431313448042393940901981948703587494671176418006238398723740962816913544897375150466742882835135735726601804953666327025106082133678273634780803051049453330748705425457604346601731279901459031360513196950837742553734845322364082368486958551928832970686973305567566960253324064374495596089493116600015029972776492607218497058047021899607265508146173455888203181958373915020669818825864513825855008463581632273795576198715578989665357843456094228179382138025749491086164861504434399225876607690777766279466064805415790644173196591429842779473422700581920562905077374066145276851029485728014047188450506666788106615339770231883812796740882452116542346916126589992949061068453843385701354947586625101478992905644787276883246718291785201642628751154845020998444639638360434506552992812870956510609133674736725524689607788000901411365213423063765996256476317337551194677766686307864902404538215315370858293858623375241032960468718745226800259806340075153646572471115226798445906693229763030677382109861892313621980564678083880275200614900938872829535336626731951720304025462751190568359605776943779631101242039818531147861301787603972069528700311330634003321183862671170891327908550123320985327921579030578044967724441011226393951910047408212771125680529840772225592059947666059766996014710287964298486187480296268745132244360437461740768095260987505481640963596574705932198584252110221584265013051798004228321031637158979505752177944011612363405980398213217560077517604637403913487004013203325098060822654052000449238937198848260200282821364659071771696655237613182470479289156276143406418625319123024260863185320500853021141823514046050902030898951324979609196945614917512812363286217261400411538782496247870519590444183780663852110003342766420579115586869500735741254967534498199480743651811983854945792487910600020214501280216931580369406211183939439432699233172857389921716627968673711865767614933770229765628298070600056990956460305485442003031060861153190060524041820105642618810091013493829419689776373914753487107655516992961008929213077213310200555697278221875057797770153959205306988393948351385598837060350011938780297509596016229459074601107152942976179384704302867915061921212760663858514370483375928822207914412265808898218806442704395883791849989762982520539440071035017275447115128944128922806922098692071835295676730891412145102158671402108425459021707846256357084865851547304618065285973501575819634267253170537998725002971340113989288384880589255044805335374870767441561455067681238131329495180826405579719471872568623375348848305759021916115453066357321593163941399952883178587420256636260582685284432282667540227757717254488179531019197521292529751896350305918530035464987313169794009257937841541765650394963526115700714736417756154575879689048919695743270120482910366658599153862588834235637579518814881230020629547869199516652320322190640986427765710024759325594587344337418980164347728426480474622443776272768479667450353161852920020794893703060775258934919471421390856210290845833860713310842700057528164377306044260605255177098388688767770255561520374597177505992232157011425625857282120020682469397756774016787524345463807331846194868638936073212970447566352197267452809427158601015208571146653435034475875965558823578465888492624414442798644546278966513768979205459970645966206667295317184569000066786066454611248850077748450359793042526148978137993665882718740599364889474519872543909215430979862197314768831091730711962377230371746961125287332375878385327387565446695095244836219323257528261217678141567546905523295896719730262351914762012179904225998892710080359254306119081886226744132860191362158947196691289911426919092380607954606891902538566101766146973910673707888565046431365341829773131331393551963928263269992165676689999300670633974654277421622532127287376229696431917421056861473493245094400533871534057695585690957690791403967393657712882858475920463651544103545949297348380622959140261963405683089036430314290409956326196472302537044508806814083648625569764358755189483448243982164454254966003254214084756281283865312982084650514067910523085240065490486718346098330077961846053155099191084815625900127916225030755452109225309403340545817644694697692007010268494336298645918416580331916999969267915674528731333033499288786639443060262671621998396200122183696584711911510197010064997210935516957182293825248577348059761595897258317078179638414647987744177970493320642699807196112816570524109381654893561172722006911975703178107441529261690989939275768948637335625333367686243112978766860434063609450619000934517695664701984069696082947991282983012538776886522127440464932272407676118529412981262160028630490726315724430089588266928308052190274149523477244009361703928010571116322336634591969466078838353544258142607830474393398565982509629588101949088249572138062332127360816284156966127288995661166924925190312911667209651407413257081571357022457493340368234429949170820758692554095600821343119609966027481204640407225917169876913388766949692565362463051124041080134329524209972892638015591325832593269832300965476711872862894861607205823209657632194069817093680054560771502724599028033575039456151733206146774645780559982785452322680951941103019694195548785653650391733796308744872348254825907327152258059309315128966567730235762586852470397983381083351185198832419788430356547723729770370300959357569776216487726574566475564251483521601480037652504619236474543225693481776864818886953253413737210696152858976786851133107230464912560082908856136428514950926323891986150447367567796850372624757897632511100398886052740756736218182127736532221967443796838498416518626542276362677153021411475117816996185328819369786717879170555111825011370008103981681756399820622747181707398795308963132383659801925540267065043117244791290148924523663269453703643463520832949289741636033552852331366554655723327820328866495910388083451285614895366357981222787183445444812846400783202964265869137036324747044152155320006462352665514612789661701671427907586524899841748627759515916746660362096132621982601384181904631782357368475412649159587358075980592457131977307683415153291817087286731723199984645411795141249771095281592141035135968688589044610770256508683254877413881555099989507810824554115472357867250938453221860539410977421297186279072019479804244032890646731356205734803316514840364584446333759116575191385408930022634528345449717068699803332583011272595906286123714523340873034385878472784829289535167481300652699111847527533637469274827598818126782277866513384237582635280472372177793810988344552934924900544994417251862479583782010977376906453311892112234352399430786069761980303871057026261640559434496785607299613017802001569200589670322890764467603231649179168359348234309309914095468490410438588762484362751164520591708706766513128335972179540666131887003069403986367351366327442216447359296662764558001691569045814132798444846470082967942391057055004143086216694236616111654070579253841200103228290332262676187001187628828255253548798306023963435324051444509032539174267488737631108338418876926498584927799683995198961643808952771390393408264688654466060827717999127503596725094292745525593749311906525249194537991275345125992014156415275966494590537903945408111496483699857652329329291111566423187818171480904588542729852509627280783686194016571988061105180139693716675083279358800678636192346228304505250216857160026600941594096617124549958845829805746628169472872189122932108308198965092667330187640226224527049512920073323055969179621894338023869293380970670071288938754028673198513157174364960246511657278531676581842939090934718755571158598727748616262926971993620825052091594407722780605788825529144634561513151038522782365301580004775608586653329032716492931561899315350822335153303738825139038895319693204386081350418653465529485868323614397347425643935103067235939131339477473749810991168702350142890555599148915212986252593047709503625646563522628289171075255376988423310982727703142979331151772815009680119872451936263148438112145907856856671025528825798322732145233952752832143921175268739999378176618420348304102143844453937933268436392229312302532813616256587151308412505073901421667282796640711868452981826639507358073305739299277304683360214476797201195478714668913970685396974381669538737023264511520901745930578257819035284663680356362543952711048799581607261165225145756289859916882497080120130029675802203179226098785497392310340439503234691328997595410028671715597489710536525192268765767854511822206282082154156569096975521499635082835389202342272296263050508446265671971602647745118477816966022643666386992103745559815390054596812629320284263270916642805893841617729734418711845043500250653993065814294817939756280045985288471455574567522260638272240005831488407355452308608603935467405004621253263784263795919430698583579842522928918820775263531331929801604127470093441721244291320906897986116567783735761446016116695385788544569843460131275991987801116723333482392603982484464211262545628645645163598492652741234436436919829762121156205564825087592216152838067413859360957868107109285645970970494636659987884196939287248803801083908812443526250466955288285902851691410845958546502163011588147408865954569741707647814171673574343505176958059202127677225431619815408869297212134010974374958466238373369318274780046606470317009051816851559190717096552093540629052822520491063237790460982377645259059059481972219174021230477066995882691143472255613506103002465019417238533996074916424025587527611612271944814298920201201499959926395823338837296031407153506212007794616515728827126778795745564212822613286067712906178749896095622435080959973634262331925548331745917422485278922566566497078477581096409477636744663279380327290108483617925813592666993677057401281356057346319427609009067130483507385818778101250713766687852322088829478812061254741211848665036628589349829378979726149250541169849197067570052635097221470815446407240555128571958729590606475394099364753456213057961366220793148728421543461151399716036487376438572256043232701291745077162948178211165466833382777520903849116758723096376842275282032491632148945096878926208795677443771865873195756733409950611709638727844511758409471849921411305165308077587248082869146949756229614897553924815299174008869521097532435730014371258138165421136848955883776918566198401992911821225150018305920991564999807455680735586941647971735378659325543406627077374922923578670116299869660662366787959751647912150576174100941494889406285062964416001197755181630029948395488373697279407119986180309487835972009578024194698443531237272849157951857379664728701749919074131234429602236450959490443596906977796467640769021190939895944749956791174598514903884031151508882304083799114650123314045986111882716526001096211381333937424863220132759983387016617530022406111518291326214606584611567987696847749206156258199387670526363600305919937649634317374292331736786689634520551977973961769204670811705953655861374291829237061808324553358037847731921758224391114185010860267495664174081594623198572611694988498999239730402014012328949896983848361035680354346672153185856889831154052266694888676770481375676419828698703362081474711440073582542948127972875482147414800472212796462217798710609033593276903251293813720238470419007267295719962281824450744758920846238945484765706645068738544557311487652539148860071905464908262076198900639507239796698686192581393105764848717828451636040994826792322216520301826481413935918302314967865346095891235068863645355690430934979407138904769277843221597583908618323934202032658972489584655668887106548119539128509546175946551217860775953175185378928181565178753372445369671498992076666415151885894106238781204010505732841841647271202542688119846484641046422036422753836669730452407600059131385819812713070756890000901587894332579765093199405490014378261662228507337727712600512712768966419430544445430042616540057036684005651151865566022756267736754641975217048481775276565004535394881634508316591053463643181725434046734304464591849097240657598565085232011263878135201048619480077829616258689862381741039927004315727103218099145727599198579611212881594245124217454360903363811649399324560443104589549382487152043437763221058547944807242433395324531577972750946522009680512020238889110658671158565890000210679530328790826780812112717615842466814125992707091072404848951931445807459793448080543769414551875243276699354513562395719726681044580987485369950359006004236247000598441714686227747775993529913205723257806021952338702604044736797431314340333503557883343011818254456092084468202389297362973285505619491112051534610707485324059731946322122251183954200563677631588969265325374332111026755677592019744700482481953063544951221680527667219756420239590836877057041507386689826240853840498862217283582137450060382284826758641832968563555848840320516677329578859780379367206309999500701167751840198213112545407203843766681472934677496481085443014781767683148303723986882618856042516717046485216033411997402175306382750213146871924085442621067076332789906228597043033010598193991927142620227086692746936521766201231095888939903890215063609428374646324265669043764508821198642196508750245062095466556958656822622321846993179217420241112228742309906828005781747005590999109287615861793616671730432606159257318976687246945666687057210259539823998247895485729819281866469981897308887967123439814053514202844343341383989351195965836718928417784302996024177450911027828414344622539936455162259210871687998207435611710652827765531543573787283009387792189107451660628717434999568210004282556149109790872862365530183796645406228328125751168943832357878789507170068913043625859405019241171033395815282489754580547078729662397583590248066347597074416647145718367597711717476746971178647537011113460914812857772731565099707839630709460960496119499408486816933032839591388422279672132604694394514432046215073612734167123449885106906583690432427632589490195344422832157717474578024424181888325863064488408503443411490667133415362474465721891095705161118941356941161447776143308274966890655073625704272531565326970870222436455003208181793155090688020918337917497377751353505389648888222169067734985997650711943649643136334558673175369767356875136676738578619269363673815753837788878717523944912510251476428432225335059729204023778305126568348980477808668823691484345920225335862213429903922800398864702584307382413645473281749265125724262371057888995293429991495319691209668325325551968157078717986116586593535606228248994179852464970942491330785180371897912846015064995386262932655648114709756917851096433248588546450829003266238943536631237105445943199938841734874803323297383847993324609741881456615078526377741396458715732371218387442387970314044200578195536733027374349463393511477980549280668646421226262318683300953016834851883259096468877579994112313136898547353213518612151046743503916883539975892750530248648223390378286885277693189969408555841254783266993365777072777643045810970772299556386424930674215005433513317647322517431565651400927623710846505366729792818528687474033455005652918230104493375414247836678484556229612610571891590078171305051773176795985159642720196546738218326370010494400050478480977965892115275532943123560086061789985438515968392155542611357566092548425744175183357179257462686185817265877375014159186554997135379953827658843029180865889254217367546721161341981188458637675231137007542541135459406938394626715341078667273649696900533422681754311419272390182125883988926193804926326052258006669716539773754327095458020107418583850391010207276968431023950021515660332091039279660180774204570920689371353639023079575079231791827946833409975934820536727685927994561100405587849213405904155459396459950185867022117546914908822856722495444988426981869813168718639300862243381567855839424744049835207519300006520891336542519405710452246640920331038314735054857282471943427028311397400667021530324964831964356540077554588598447934562353677490185504906375259173049903493279778828550722123332339646338950417968825319642873927647342573137071318449823047760232336034383715501561368976542050790360742875917647176930443970179989901692216032172250233734484097271201965269550523264197033297847095728586514540891994203177199066565595907976014300768983878011612486162140411787632663656356071547450618719043774915212792873111222027992248261468840857870106375092530564782507352013214059996620668895327937391152923465940718471566638700759107690879035678143683354875594130427737904494181354261333270576004726842412807045835731507160934264389088636060412159655683042064652881047291035013555492066891373471517835819775129734948563152164583148674400465231997271998575454699841581799530627971187002928125374326286714121370369816546966425670072446727970363634794792985734259626940104280606998682484120536059228362682521324574975829680294911109706952109988928488294938460513028381469369137535334658578430461800973655432808744097428750007678151217136748325848901505031840229873318294055053438105571425101330564822652314635559842772754629548988854886458978014560064355201522869097040130989905201514157656853732176283355463444131684598902748556909153815653635562288785775016097003474575142329172763501419960841666248914437447133435185652685395526078572467584980669968302140133106660335198009544281654277188328963270599887684117453758197524565197424975565562607515893133576663669577570272487774670574595134980207465837128866852406488501517400903205320820304280166003458866466206048173282861407495280457385023164400507138215779527786162807535671536848832760318909498585524419894662381058863917292080143287448636505136619558325219173815114931423388919291588272591583641872037728164739776657198631103621238462204163678094299044597647007991454484587374169406357955308578895553838378082648928089953907399659491576407070391918406269086287815796332339472419550178595571212052712876075111924043330347935548684384146574102306867490311347738604529241351963485486341279413834043905673450639536352100583583456512730973709175961050473816256253018309559108306182662496931880882539818111511410081842159761177322830510999753460885317589620257990886479629829279243266725395252991185921584973005110605664641689466731555174472760571501728861078784644441593338396247031662384118820045118335468136271963703195064555157762640068034548376173490453758538742273009128505648652729262604550230919284355653241211096100230998491633798423965938271917361239105406185608703804095136026367525407075544442817629603132660828663982173707817256429023072882181404161365964106424970390959927103958057096125426676050854870277849318288933056195270963536421645529247754198631167754589660954590431716855377282108777340684451362412023247189590212932779876596818880324085103017922473574760364849115817766805784879482150531771577279454592450472384873943242360156723750699794082067926891901891378648175224414633635034717528035013322891274629001246184348329695320057144051523082102056050181603027268687417806283868279298455847523827280771913657736879465616006019114978790680435377903700512632057405291743020787303801270000431156669633756269939019979938623548659584559643886445598567119742857512885619094806438841183536231772004619274162604085657017114837629558095648206074680968115400582608112981822760734915923948171316758872317238222252514210261998065043532475159087980560127198979326701058331636196755083454499945518399288994319876278633770959362268947441163505728359698624201648834626134331201162905572248598262791090843637412029873986173511031981716135600528255094244108905139303016925193797540602906854692164394095893111386385033933549615910610300186158198615794871543616928212353714176750031790124780855805827275624483148523682029984833881118984557047509785086202646367742472559717017619808082669980119215302988855866668487740589992455734118840378553342129621786344385619819886255294584826592457947220575129775244316335354931300738297072182197401505950180885583541723925030523487520999540938416982113324488864568312957503388625318707492322954756631825093899109790288829466959576278095546306935119527091686815403086003258696435925928354957787236126278403309223467149050354491864206168262946562279785780563793756762344139320153661815979454178123962423323677831621730959343412749478979615764922875109361635952385761861445760724776297582900425155696021389652430895028280091700923291319740292269440375795594464377754237959270751601044931783928284010491845117578133271921340890929335936722244243504453373543673623038848265549013173011936386413165219766053147146813937158293653554293347336161938865647242993307432509289797784039023539711275796995746090791467152278433922426404317142387871063211119584100851532237606814472491328133348281828200692847658678737710640094830351464341232374812431328010734920440741444466622869631298415529900946626396204862034294502361392148579737719758362689728434535684659506043903767524640517018696919981437786450131942558647645849662658488591620328286928210100779464154799267132740271105189530164526828895630663575285426908742018392605530171127942995743902319149070194804009442533211111879484469742533418280783021607992692275531139051063222617508282929386964725867080028252320828632118716115175863556737537330492952804670841721906902723911891002428777692034973533496859749033995383331345160789745907511080453729092853348427696570435242316732980555267154781371232222176401782513847680959204307601024904562952059473669397481449087327086254744611761831234699558681250992995430302277115420433415235131050798840786396150659057829627158713220165613072525257022573684077030506537155894825114345786987064676033784725005972044669820630672910311324187019615531309373391106978304468489090064258978932022467305573450032552251597048160417897429036048956731856134759761149366852037291754983440044542373482708844576264093289640932719776990241494635381149533645585335301577111340604962750108065637059987961983948793107182728465318568987575919087819158587757413280452323219461590348478162326766726796478034155322373393640443546917140892100598288106943544943129374031401638451668388016416824399340889018598310692336176248125212872586355706689206654995430234016242335105421281503648064184906848097257058489522982369759007555193131050367977403542683325097752438578124839917900796181394666118870596559357281197850513905746219589716266301742497043695226258871901909835495402029367914720084978665590326980261708288717056683217807916255331066559629551420866263865551796296558813381142965916949909648189959702781380453618468807789664286867243476273434667837381910130970945330833651423414332844019437202835599286045942732386206991243303192275823765463425516147203085544683108428049399451810805986965203039276277435657057041226104709035460256464993421488221951892318744904712835161996409545499066822540249472608093300776470467020969906869042972931603752001521395092286509805080550676618881076657711139736513842432238827137895310416460466019062865868534749584347538819605753137204138968269739211475120517508392581263316762568548206860004814421952055105659126817263200460655352032692336837171151726454394264384731362779883404943377082879040675149668678656752502298355011918293087356600693652168782593788257716897012772603081083531356988062161429487651160795778693937583338413606111589663808125985862964361240967096127593133745633003050441421349164625190919346834995279789776860633571069330516706824381914269793828631969310889805242516669123706331054357578925474246777613101760002581804323242378140168251867135798308161230479200647651418728172539983753986609884357756251115095385473895926566541330142822562072415188757687570248586913768428746537154079393684662036070378574310222590647733255638404933795903107309703166712514638615661076462038578942714225033205957724905707328598760151599788137325184311390738494513550537245136098788074233321673989531335554838385562897340672858764192259607559618220281146326333680980394157009732449868989065408964131389314182647042287278905291288597368752956380173763241103661663703290540136648104930603418459459296199888987360577301180231441800069989501658817549716194997281691536595096118349534905981706482544930077499885020848673290498982690120864187826263056431768775180635938387966710416119625806364049972597999653561899213660832008038138531692838539001069114887432651327080708789416486138272921304207486841473387896397897138411844468637634223709030710707086747837308543769648950890497461072656011766025191174495346700180841788127366643779894685166230204940120336784852523685283863289026675972612726412424832905554041433770624902424880107298819247593422449870737927109122634995545681585519374407804664907714640478877154036147560319539022090815053594753395639029179593855395392814277161373202805882899249975629970324989462525538157500335233674966179239947937223464328098312385874278985662053786204100704340875177262452864460057374848801358663267584576786599070530773944280620951851218741697204575255773809012236674355491760304735247687377737232025030985474963602298883892784891154522222248209831625728278815498644065633234152426056817547672851437623205834785421389856341098463934722754515104201444351934533791992158802431887442150057605304887487325850828728606460073215234034024232387325548148018653666090312240655876963784683711734108470199225145654662700927438740098439933991619523467855042380264061159926995023704000306298551290902895574285592237412983841423078003716733924350242730228578730812755504790262056611135879443524095621346283162390564196946644508000252514523808313351256201688838341574671096542379986424699361856798254554092760445869166606464182669069605968470017795952148163449097334440278423222984921101916269097354174988682728324216063550070528765166201090793268219038585669926234145748192724310128374267671085335594523010613984521550853789416915579225000447611637045517656974152740134236306785416207557871946299767782366505496549662189797997834986566180011085378777109200399812813419836119280551236530884648954865330802372270066307979903462416907060891322928605143916874174119742995612026066323264584889159872085421768986524965915892567999980199901556484213497200850435912015555045514239980208415091390201537628501148138730220566062423772609645275243936549607891988325996549580746398531441687036425082199443610271058366766125948488223124080737342208737980381348245718468227222649571684545070645976717503660463223503484681147721334983073904217355801024323307016183679841424311848309415171980486729442081587856645256445307525397275574990077370162631479442435752115131938900080495594837260806603963035637643967192821575045739856844393493405798793861360382055267358683856948244828393705106481118379760595798103564079624103185599614730919971234959388521241630151289548745286524181014263888559862905032445507106955124490805653741540462532662352446637863916649298048491687350707209853529760835530170590518052165123547876864862859539271594826486193067380374046266993954484869991214424833390595681237751788085016682554359406806247673379487989811436584074752427312042848810070223412808248353096329759992521295343240488146159845449617031112364936689633811184243720190668325737006363551855187475208054345284378916492786756499795221484717844881223617249583857633083776830241608976327796690220708265523856930800150911637882132508048796458665284196153290775894038829933431366009548244708540589630496965373369483839407317235380299448075548436622688064077350143253337107845954302849716218518927186447422389512017165781217489636782145816420940594551444141699241797142526215961889968913804792954338004683213135530396440369545429828001701592967360078528935798281556295664107015717432532739389798150554281573936735700520238865161038488433291447896189646088655443361022183696540152030290554123661718651053017187380510344031219246285367470157195361135855375890867028070591488955043093652730621762261481577899305114191786171850350879315000041567400740059062340667813509631371616274965872470608532714385389891140183409105602136747249859246488151646988865559419528562549460042592534717041217591640861526606004795524017041033538687281701943481780970541817035485773405718253217701418245125964295228602094288514325852698260278762897589097669016500067293094227674458769193266686968542929228523381026009080780161754816397135765023987148970533717193649268414831198173757229937038597716295331512426814887964858866636203420559020029152222281290141650774964062985813649252550992860297253395975862863542276516185878346988575528475570263577554201179247340668771187999716593767962875389258158486117409564295461876687328022208394018387302112198471307577536080997613491183642635031202960664343550342459907339389811131130776941702406340278644312726047321350647207584674502486907253514977682286256465076180964897582585686275340331422225330931514911597435896004342810496238138189827823295862639977809158847119161426295606155925472270793870261341810592801601195370245726385105200749312272322755635444448667771139438813949866185776099532523695475254118889567405973303051276454460488628661671490469163226474737784697312694753674811707146963330513161944679979794274800403294838288535076019485372820724535191933800563416648126093661794790629604213539327135131621980877339921470211711079553497741054969009969317204029546920629529192573204650966463679732928561480881683640096220416684401986608996255476878545193677488646873324236733738840095126720175298456337744776982830595961540174596617324153453287458711084375104596062916466359564016878919738874570080247763349212856651705511156640662312068297539696759947178314179067300153335987063088872824971594319465180402164716260254671090895000711525779990983980460014970982176453243149600727654689367185002596437633357899988767602425175981173456370154066109988738979825822603178786198311386680306513416505892662321047782921871194520561673315549551148363018127359882844532688520609096849599679057801065618536599162026699401258927812598235490302400162764447240455128453152221905734137030022484713123240919713027684141264459132879792756659299252571939935999737980844149903962075915187460655753286835394194562911267321583065092660205347397600018520845308638725270745431383822834373502760272253836508661690486555290847379498346251889898576512562288891869002898153727117962348692116183048042922898594059011690625915620112107894397864711562573478402769981296103246646446428333519460785507742128372782696400652284390764866068504347959249660989429911487385932005771653162351742157306970421355213912359609116675215399312495768100600986773215595167326070530455597646692572093396438502349417647944667513954943502253900830585417945918906523273337591981680632483067913112205982661466283217462583930926459343445620802870315133981203746787812006303677474569475613546598480379050792508031885009048341131993199426331899463037034407878637258539254021359828901584848848533152037407989148686220156084092944477811879855094415891322261767874093923497440831795392458574160621588747855379355626406164921279334961013146499433012125803973632219561073716111041372532755955332722630553631757904323607300714866306333171763454849885130797171636987687636395718766481245195608937437414325369224791426085840220264894593482765014900035191069135493772584595315069557224798353117446080980764724637431367635909848800732504105839673798411426352599371422549737659611599082833524252908892057956268372888582248275274435357099671616391059049862599642145944692127873020005656130671065781436734449528927410120312509589247453364316345467456218596570869646555752695728690880752367121076373359336907258390945193049485319643994774977160971644324981140441674829208838440856688470076445516693598532236573503794232186075388677566428608583827234578908342630825324148400282137124616099010745537700241410026524020611760754909076195848094197829923527356764351047840599334947039330716572365698510344196768062658412786268189783531394584065449708321787787673361653256840886196034751641694662620484830474508367145831418955237670567041078970205141150192846026087349942879926398388174408800717177460195964645368858050400591701891167787664811075772041235841289859857380952455523823212471585173934611248998683513902368784800250871702015123797819063109659183545815231979440081735953810203522825137562528178962851408469512230587562654518531523566972340064984277403692768990605211469793937152106127858062989447849432839651555907354638594969295551705498231822411919167933321448261149904461420679552654692112432272300217327137427969876215076394516728100669785947651097308705365873750051441026131494925797499124915569514013487489071576875071582837180401939721690407598132435212717947908588993916649289630966310060114670094757481405912870562463827100077646652200011220280998667916337407302841786289327690316271730564275740884546080777406359676731283675667574659276013063196091532518851452517659315158131908680688490542271247826176937671039067059505412334845143042432301930778502579159586267739009626105333942233187599356409368289549425895430104513050443483783543037023264794835809642934599307486805699476832024436089799755885126430019963340666336117066935541255378753679264533338467067823981844443272982669386220496779036997668083507293118363189888188259272826451525547343325377975444673393563086405247295408084109618058198732171159055163845611214287689837862257063540084951470606478526497563387459962540241165794431977396803234429804109039972106103481835708601816685326818468644754892864197311452548764514649965304866084146614397989455588509107598180523623013827344522621188735478142089937006442476419417675311015046905975453746695723335084639746826683387693714676424068068222948225905987199004844564671319856541753977902409037131286482985574106009468719067111100243623106391853369051668860993567485603670220112060676709256721806091094574348677414816499474914120998461926794293105799535672810110108016281502609203921927033094718857370088829219895880478552936357529327539624431411189786489006914597496267759077764588544632210488127339410229248432680170302138807791060706009053445432760802093866874171514888886502098303550767249527276884796141975245006204108322654469096317545483723752600713330830808785187033011311364839829278046317480192222615641576585566000327402593816777020717187138189243287722772975816019851955946145013880953791044001434963646096864539714191628997451001571800870005235210430015236273996315532245127575751043567671249486662513785358282258440902323834859054968997440174158396641702580873045119864808607236327925149397115995452634543622548399822429993376816278518289602109248350266745723368547679965434554889452619936924702189041321689262595529970124493746756997479418547829526971408325618935937318300194865318992394499596306460801028587390767043449147732867995766777166038135944674512273266581284615668609659105328262503758499723851368333733502214192287630319844439607310469525767668689060625800354842788862284558183119846288403153476941215871774136392575903575650348203790200122694310369555091547330819357723343870582241363889140267539683455634169552134009205141762533816150380535245134972844307964863942219843939859632477239823409305644576000677755724202678414449318955725583029363619225302757680840372139589553559994496677746792658676000915471336912679982779072819334899554728260807202381890386669313403920122738783973328902284995757433293614971824356207422708048295749639233668757088475889775448106659974758882621739783970913507828886357787846195444865360054436285637389844165293486463964162119462917704335468331642509325435643458158447696676199075557534131494959817951508601565117719442779592477287262893741958785775643548978476128992052349769081662538757107117412918440593038577499264564963340430881464152421064663805540137279567762294293280628763138873693413524831307455267408332679736925442516075503980583658345104781892754074706191139590377567565731652181647029636477210382173563732879352102395095028659457068884104030540265684750473859693639328615639855285727150929828329968217147981291954798148415871185985446738549187072995833667189381150750491213761378935178991313128245290308316499622107297430024608370211191397751093712562159906571700159928606936893687102891427959270590591940876759564235352854521823493370578085869425007228509114494558760122188971951973430182024970625156236022613536124397772353345127827415533922287528275953889139624105212626435846999447929941400681593410254761715677149023978368747324850000608454650416899319862002978440686472258501362534295111835560726344523228447887071777781109416448415762211419859883316504441877615606116604147147335818901026881239335646776473247472047224784102355930032828453169774206553238462239634202901778033894023083517800684515725533821096951090120389717490602480151756155020864477295691874283879030214217245120104889019634383571888601604383909628814256181551437305729434268332841422690442442979338685657132784553809367091278358773378999745300099807154087748197894223443270609656833649487709735548116708459560055968412431973009772966720098076832101725127978045550897498035397936187733425909196121405930422051737464493566948583276405621609987914660547437474999885597512420921853092104776550304384969972227097122340835801984400734038076120187468354392505421705181034147635799893681059789753796896725652828649369436998082816098223626461754035211741991134537128584032328478059232480092395003754238657656835183139645858970495918290989355853470764919131024744092781198318048734971107436365373713792377920777613288020527115590688416898415414813833168446097207777320531456213456218727548218631579841751547084889618041091659410639273317228185603015735616258338702116804621935301425221338910979311772535833035581319134762612639024349593140958963961983224382957010619133803746629523027012384398883321485871751296214696286390462480033236970710286597790683830409073404503699704873111235357910199466958252168126059491235634536958225124701186687132229946990734976984989255818184619016874144453606462530935942719166155320162831721852316390566530915447501812831021937483323461946547871582473867721724365590892054211321404461548545934337901175124762079062805284687107134817322135219683285771217806401991230294386729046839590022932686855755992832696471875048046093162085733924808964569923513943525457425372203849768176906293920791280335849760164873279328872018235767043988071833117467863785409142393834395639124037641439964631400598699561381799134246708180248940969939123329483741742088892693246799019772253496821440118612461520972673970039282583172568764709287038906777225760863359500537342185549742381114339910078045897227436145278784575387244251261425832079374118544145175453533746754295916058014560450190905140122408921113152372010728081022582595718739600659844861337606841866424006950562349726910831380489137161831922522150241983910222989681727971699206340983024014119548617580714459648503690051723378598516009044474382424815619014872262210486320565590540856695784655889302203677537108217655053820480973787532223238745582279981478314714020672477488993965217718680093176489943969642862603162335736353061286721303404617355795520599682025592433788743761264524024477707812091185742378570728893323851876651332302503447315190652986799404738064042925798641952680027190190482998149623155582182805977868673320236314153286842705417613837701372981654290804769338794632911983862227666815780077629233775047434927159754065847409277259343321670047422173626348655637471686491924038615083027605315287751808019685216859042942443037381586235170160368101729482957625599345431475248941636254030530150439311181834126179169692175052033577191417985856677481977097789804817472619086112625167962698362463712254384127972147461847537690603520391031145662788719792853307115245580440483988631716304478012307808204791826260265532513507790909714574248251310257407069259879045657102598040788059215770928442810941704704524726191530565300138756163651803242041257014024103471338861190186660422568272712699304246171085617697045203575447170529445971391554576653997322814884429052225117584689098618396653657867112000197986701797980675248415865485528259774130789423601952018576363424222773977972011652250886137075438426599091604692581420596907004111224680611543433188908450345226346660343984742649073960612412435173789408827810383983823528346501796130742561652577495280958743663333632704189472416081433275284302935939914608738673624726564698612176886022904968980057186474523453023514839949514745947683211196694393781807845284715689823733435907572591823322458877485116609527852749137601959648911125893227000638195207413156955723224878612369907573002821604124899707009458852985826993341641800817727080547786294277532449494095529528332219756531817415137990912622712456672742675909196597660130030890271139655339445279156796395808030834272475787937599761489445933391771509438491718944445605312802042690709816320549655178035231688051905988097758782079126346810836456014256339747669039304166275380436374737649666666528059475344225634310017152911355800034440468679658707691887133178851533392636392200620159311491214457922609962016516976442343965295988709853184407966095596277049033797894506934762775890110705661814463712990656902672331851623837773236404181091429682825468428228444190052787425329415434012630249497458736078317821032552564101107219514687593365799464421466369662130542107280390385518459311609203055500701833524350334149107417524277167778574530002707319198159165987628343609050321133204986557439688710615928750772995697231019373878653487062024738524334624289994783529681474903581374868927770948922957094166047283246002510581710579935219956138710911394090758477733424853531262007911987694100094031692083752032823982745718542770117393297028245583523293483178763978704369832140070191248590720637810904369756610802128859450234734222805958034694873292705400621819285216903320627170624550117906837835490600700371097235687741574506619948219775077598816623900738725569886322640171047835490451623378012854735912676004264082476050975787553510843940436371387277769232643735052396621754821093905179231355921544742544154771690423136235926483084626828926702467637408499179887033827864398129123845329041095528696991192694811458070393896876662380347593993080475652061511946717113770461862084158425114155289802466985980959716380511837071260427820045899666900800839819301508889795754495254373754471250598943170416603586350240794469378488132242468019042330053972689646304427562290355042448498456510173521122583974637297140567427030265687194883707649470113561009183483798614801821498409046814404208953438776979847442101917770376510666174550210920270061924044348981166979493303786122741472523698041201577735548894205319494062238899728617919917427265567320181016286925969355756450193931565700656080806401332447246701797491014753757249756649054208189968614379401867300056080169753500210739923801027221457207861209980889268119965264712417914782828876214795076386901247906067463773289244990500933216827775814563802809240523930897284480885259259521900135248274469911413152361196210659698414619194967779698130624397087453550864868297919034890514233935216808896019474017307020571047305216221134430825114296002187270298502997137589261328017710320201546145719982845101471281621588559935075045471321198913078434365616174699468130522525096434015404198003731336835686449199523819436491555164321800004136696130142650041388030695558703387891345298828012992602923093992767046792762922834623611436325647826976565760009338322693512383120450094377493195812472028873707646412590523445979489763465279830186879552253511946899106089171187472564992426685507485137000464455911656245694567201949259134418597800675110225508119634870953760597734360302393050276467779147844220632298718582811898311024501174625705167416528749452498732173380142921146392506052577852603993947922468930517377047782486695194000979954507689664425224690137150860120654081123780973032394964656612446783064109485243824701058246064123724526617281548858523103821310392669656642785189288824546096533850057599942499455289816051781504626652074622329139018767112020054903143451274797669577878130663331022519027624095296033998973382197589808089850231122713451510684233763344030193532082067358689912179660693177689123398818563514993072805016725533513940158508740213034860742112986082316300903896043615542145910477191645092021161384036542140691053396747786937571891845635722451993536778280268313872757969050483826009420358429019899883545789260298005002224235595467941667746540973328839567146525679285921220820524463641716629880102000670342853611183813080765756562456118738670785572830983343734799564058600024552676032335935913388322131128396920090951294549410255097379547031743871098789704530923060727424236812400884826336851110752469334336550810463272479429051141433755527220006896173408481427231587285848647889207597934518684037588749840470843545624326025663578941553130311451960510005246531869861547350912970761967415416540410115616469007016503425302509455720136787490466824424788812096121318166558411363945007446928158636700439232032507744592675323931977132139159080241054650296727164302381295595541056245257052552427288639466449446517866252908677977524657565058894519513343296037948846569590548726159717972412670595326924770227152865075602017280049489235744586761047292106069662146274481361565787560716246116353232752163853368682686307583438023550123879013453729130316790663694793732878557954326945309906650918937656397245225285932065948302491268886122992500604007484243713632160621048319348375043083249856527806453269716579269532685832160185707693924928046375682585677655664545415715381394193832407944451506398184648548198715604820227824852538547243426701921724527767089610392896179308020777111182636845558717475509673342974732798179482328234130732630278872303017952890298443215821230323994681391017492162946949670560863463213220493746053106244681765413981464161500721297366147507062137469803430127745110488554981182933742706139079158231935697348163176812242939445053579865672094257754849283120436928468635459403262685100691029361844726803070510995407822403275647874270938103136065543050262775887756518847401290839239718381392069563800577333771222646716110187987770607753638076256732630966311544396144349288317263618773416784769465791536418090497085924200367352075749875010485915345757425912670576679312839261337324533206910889869358461490691132080703085123241089724088614496918010416052016796418214547317077700606866653219046036074412572044421148948120758121073260880338713859888889033788051407860938479988105514270741067944731324879607743206727437466973375680694328895030513592933192202533667240905720293233866623359345928372173823298165827219393428822021301762607059277623887483626934613401429518681944967055652782021460886956406267822456973782250406306592573894413653943253081945853710886821722328918059966886498679708765301798662121759969731665329293076187895386002806957630596125872723092389404473459649236142027776853658002229463288986249778575764077092766372373498766672880919652107860590710341668507235379846120879670112846016749174115457583915886083545122097902619175378274503341451946006277367804382142577508298070641311555701324250505921689669545795690434627852045877092743250736371683810231287245308777517815568969746397214450377539915824369039123605025619272531326992802960339769530874587175730664807466199808679134599218703956767085839249573062945770666277010014595317656923850237356135661693017891635021324096966051155558824604969900651655562437172874960371891047507769320716490730461476350481379904424215760163497176624699965019787180475539491416717512406494898783741947180287015205288422455854032519958609889821290018610869658375122698341330782753691757154793505903141696752669456506543296845496265319970206336986100696195642531815754335352868266561176729587712586811746347614727289633765986105607539426655497738790137047552782678283709874144857710437718811219324279573831874225356806726940415638942768139111292764051933285827041441597575027467795047921952231919328057120025349667158711648042327509609314645396604401330527532820469165237707284631448252568465414931819148858100496547008288632155754296420872257683854825176307490814360015754561306254290870293439476035151285853310639457521976387006656029312720440885079038275882849411351030324689831529292864830471327527035991314489717443492815731966047733674015175514406480139581052112273269093881622711151510478252508235201244131673043829183465958742451888529616493012970418831177138209632981566236600213083364265440940702992088638608889104869723882301594663412073105830617311717349721624580539784102364573159548155560817042905489367207449755220488278097217142968658228504998473023683740683158875616685553854644146558616032855030743838715212486027075481717791863327421372175548106979485373333270865317625006177163650902734472094123668828105101366072925732217560337365699087230398860565504517708239853549485056866291515969696813164395797425215903595086657246445902623641347122352493921326320239245936447109376433135286858126245421390711903682582204187428938992629527671399454311950799514145578505000016089639186536625970485636479837675163704854664818256178017992246428878593052179324137871907645792021066614009431322873157491705556421675883044432856854747039649113699036445273700490760994101981150471890711189777573179784192871129109554143741283006470947841636372464961860295286138196910156905784710076917179900799264496123624397428568516514214050722199850636996383783727059378644874358343642385109836274786150897361032820725333264287931818423332216861540347068858527199141336728911313149067799141803095021625280637429427264209901592147270782931851643234189939961694603041794507431104486233532969755513486720903326246580190456445911145354356171267987272634723399090516621359033875393910127097929320804155576033603597298508341266408155869868070313982376481031073312074300706384342013373261045042290517919927547443006587273391336194031941538481292670718442830300719466121056915107889943477566572287329327030147650963119890076687466471557482746240125651141405966369722769539281831678659519650377998179433894302340287962082443637828992391286730550341457480289027918286654775624928889468139950420049334748821866499506174218459709341196143419074902177178649348350121795347760894639650795790287864854488693430579076867525423310744887487385545769799046786522685786766602277053144793855451344777189818527316644281543967894486829987274016522075713132043255328592544156134601601783512224236195991169728873840327568444918524699055437495549406563356952158390000688453702268540011446091628074949929460001298340334038851974721974313503977126379936377665518794170717117571891681438919283494135499869224649143122749849078034257015074315285980869329300521874361770439149277799781558399634120044651444279134537852242852345872807329336248293742710806834137923721864844219601599492995906247519946192612859595913254171471014914881780825493948908745581803739275258716246154703161524964592041794348878799792079953857845499576858603261608972288389316959235132560822978229585692470770187495454066614189319412772937620654746163866609166388418045396570898970646980600705671547841454192839105503802017291381553090482710693191530409200001528281877293197390213590265509621051202273336959979052703206467078040220051665675827826675937206837109408517209929788413798937842366734331489336813644383653653110047237542231097495367613026075261819200022226858832206862672971631161891042379115940356962629129843369495664319609918850140159359840144500863915221979994876208051450685082932267251766509082416776361895278668793061746507481114441394395170987935319562303600428659853413582878035722461879896559266820003971567543169850863233011453530731075358873082757689691050453418455035742139087544653508272108456182585633282786954866732893694796503671922430349066061098148870529003235330098802334366957574128386776047044419571848618904259574219737209688978691244493524731544218632698579506145739503817708325243867659493686157448184986978458780765408330986014649865816105522914067644422057438859813934551326932536942502418002317397468904362724143292404542790904380940994080224713239203980196292540227899739443639419138053679472218586171871562056896171059473748364884172495854677349999153353202662274298126922033834760827426973298967824208099909492971856826939419854754039441400664623279825934468450432891955392638118640865692734281311220800944991015328512553591342290446557150852919340375229974795227199738247695315839874597168208855070167104555346787513841102045447264472255088065663424608206347536320853276205676611654199970005760968541397037859488198039204462514122393769031897076628530046308385580604343477867956811539741023451140271693153332583902819926973369254852193162056973748874618811966590639523857168372835558855216784020655489743682714509361698083989705173600566677698800166878107432897546845373738318953705300537267369048356418377275514711084738741195884086382701894670139105346345277600942588846395294242868790381545525919512481071306858234673754868006425113754223032395630973335660874547158936450476061452957245512775846711476232004879140031049895229677806454927795592463741575103972719118184645860748910784184784374093699032678735509754780926668208092977527007106504735346478751366614996546946173668662070148052812962010124872401785584487286623247426772128170852410691879897041616759135066156423103466608029931350157958698668869527029216140061768029532002198813150791182668298664348961281399904914660224830991957227865130150913509919079599992304855794484108006529306329036893988128339415316773800291096251903143148839046787617763179690256622882099919927800873704270742477458556726782310109670144800270482929817485306824997078307759826293820606765260088076435267311895111512631237339217300068722249451943437739394878916018493828506202050271946031756850844783715258249538177005407421268553998189801644829269189224010776329177861238339207372687379830307327429848822513819618604943860264751365373931298656224533341049276650872523973801118345064281483270077855882912997880800932286810054385691510480170078603092999592378749456624688343580570814781265154749226907014836022714156047271838790607661038905342313418144308334057984538424419865105821160911367332651204528165989293316463930559597090772535339769214116346489509317375521679021180231843009705110536725642058922414434434099875739733607498575568660275373037408166010117709968879233816637063948385781074682456001369898951576917223680820369017456218745182652339254045105250756652042963674934487194969849870270679733775343491645085179200156812676815511040159637643585451727219063027758335743775435795098017780722959279688944397187582038112600942468206898939728625319936213381309506905761645141569384521367001576086535164819318488705260921449714808724287525045547893167465376823156054724959575784734164479316935101437705382404926391569704051801618485495678063434441794042451112934610114780223927292241072347462381864780835073682585536524905508335133500649912496530223800100475553540368373411492624292625471546692021383464829812993206011816011204864312265696157561183435361203523458061622990562332813404722356205330542928196949306524595198179828297684143819742270250345806049232182706037785511215977480118126095153069393030288263066018844152722549464851665192418616750094839207021574526939529742052537937666552211157140547432706150637022894922804513681333599624236816709662921797178712186147492483524023942356770773517962720524230084158091618347915409913747160706902495717354850599767903321826861090521697351140712369813653250362406070355301671664570267586662003433897632462744594394783076283032621181243267353134934813716976935661005868502537269365903676922501472801678714616593994827385633450957399490622442932228586780678096734343711750718959989666269408442857319970591576217036153736920972930150640282416445227079184257908820458704543401977846768550555746925333092319205724451525232583717616669962703512060573372746811923213978132080373204265149442190249670647266438542965885738432914439792028571184989033729265077443810613375952906850354602378952110621824698852420636815723780161840030126896941317492822785396664065469824642755860618239047482167363868738730503817089681524977641338741565244105065592799598512382358650002618540166195405616365440508313769754209434374620371507138112394008023145730361803918228294751478988129156344403754385033488234274742022642460835997030900439161257213798951784589519175935170741656307167075532958514945821970677556621754595836268194912094457959307166581142624825714247130211442506197673065484867272694680673843185577044440918434501417609009492653706548261894847957564538158030563637062266018675895069866306113400022585195642817240487294421632066486853591392844471988672399263567198825951218969364205826728319097341326641848276634771453245854176033243111735869439479986467811239061929392159056466223372530105836208815205631931677226926641560708046569858511829168169853109630816735306858397661755746566494536853308768311180724269489524966377065981670010813563891862476273105488142187316322251947653112065231030159070200057383555983238876299203921517408493621311349933503844072697295020456005112335462280756311795210231069757457956115951732538234923188851692661206791504376584322229578366293621947793088555383302876821461230407738761982298731677907591536963229922364269597894417703526384199946275280847099474285419341245498893436436998195130825418249497520962624382967619624973684375477524857303578548053597185192126194561042678293195236361469656664645191143116604904917066282262087993523767001263271514347271114503953520127513270837850637879178539045064336601823827754621790763366107531305495072456427617466151722147741039391496347963280979932566943104071042295610653744095952711378357774356905007784285485303901075367276047646128149993566375230001424687124876287725029709446067080634357950072463302917480376956001659667105606244459835820222752208491733110841695819407634970140674175481728309346919202509548501797985269559563285992377132617174994998704184157365543380393025248591287577476577565689395872038831452108070691001484660987028152394385944618930973609758022976901535377711049672350611014284104373025088055821247071600262509906981486299226584844442111683897584655352137520357194399218885464199472368960608550131869956518475196948992421202369635777959304561231332836025178122389372230559552153179619085817208288856329331855971915443777278194567469913186864712228055825433996821438279734329847600551159696485093065844114766510927135087774179918984013226421731664044342562746996790773218098366819863345051415764609836649162153038686267683649782177663743551485595730428116361482792540288557937935334156670582676804727777496514625150074447484088462045538982237306506219262865074891507932821589353233512705247011106302638693012618017511555324096878958961787640904798419545364671765743701517748828078860993539671899991328109591775800306510579121475877893180984013037804010690911386537559339890595728426344376523363910776573052210184334864405693574663249907335909431514628664028198404730972349976646124604260159413075282231517818817433838607444124071558795667410156677521773590890403504581118735458258823951551352398861066400047119549473359208697985601784374801203962240151522221790397746781084012334090208898004895113363575283769733154359320127796659078060852649125358028584912429933015896876769541651162652998208002697485341662208685885990758460119365428200821585157455029650914488048425744498704752636540150017173687840712930285459851301311973527152535141820951029940405325738377692805388398379781479955383322336299878591957424977845003321672202641791308413379211802875321487087776764203701431655532872279132080754774852100065721963289176669051923938096918619159961053729070424719144358384379570201210798877901105993537711074148860279226784907170655202988856306874306534304483866260671569267713205726349103841112309278955003858103171212530657383117146124779244293179739977755492339894592379784757382877066031046396606562369130356674033474101926962852858542139999512702020369198718006877276242314107433512898521863179726836191090474439981920990690290026534148670792200227033660912722504181577907410262314690116949888810059417946144653835547501442674036913945813203739361903976294403322223372712880037945944429865260393394269607598543109513862403425925151436609832383444042141576433159572224164470862808581587467025833324640423230867339668330053719963727402697504186871097851077051621854011146714141389120285846621182570357064593436005127449745303334313644630973413769157519145874511025509652864858189072968302352594073873345197338762197911365434871686158827731239486652573583296420562613615230685393196290024106856501381008490799234909084729423254732584104559880599161248371661228516802486271793004197682254235648982506736678887165046847242129994151549095331530866436108760562735557164186355493489689869638700485839970304033937878593786955380034947152905673302172639832150680875078692488109632642565101423626531113916899972652158236391422365949564399151644303943956649986117198363777607690804223491062368280093503248307314173848978285509589206555520435063944939565793464802933995049518453394256288150652681601916583420408030615297126587878897675508372678080537414993523250817205532933616688875299148553189945299751613208790719234476783477930615267292820973405738648175272795670002467827440264303297244264084750625508514814595120590923623488726514646977182872655330412450468932709408169244022549008221829006571279374156600516272047704815813863658561394638545848684503273158533747483405520794546280541555387700267355993447615965134602463618955009291572684601949144134009015342650905333056966035441530333738882249011933124875241311052911037969346861789563055882169025041573185372781414807685960576436910297135527758914107541459129535175224762616776031065190588849003826107008532373672985655141052982941495288791194022505448977356230702091808233173231581776431187809543638660773280732341858541505895921146256083273054604683294705830084681448375279242474355732108393460326053666125613423968691515931535151566064090293502373649335242108184569317239305883129535979810311614544426924041921380620164068964073016063914850300316497509752578213779368069569081199362398557047805814620226582929858850083434335915133323858286492095426035727726317686249471295905240631536097229319029426400291897207305341140279880705256535299153324794373315665341792335367530338074622602542134843951220695750609003041129040545530310400109388637010971488105279580381736157894062014822455792247229899728001935558018375214024779457550304176664160018408854191720879374724109777263608499205142128569497761786470728942573140437193578472465028744995857982132847374060465411399581530690156818211209108709238282392050655459357779339233334456169265365826370401822961919548974711253502956034172475793803176042950324894624686614335088535933919866595208037168909998718509169462839908817279167242538083302460920423487656499580401799284706522809314186965664106818171447680746558058115436203486003432981358090348463468351564843405912743135257210457951934264795305723886732634039564050591649831773042902569625182486356344877667689324208983953293006706035539087819088640731130396294638098747433286871501993832316175810043818873590201028299949376789053671241713644943978223904137795097085118970851826557726716876667134414573987192898978034674991029304001165269455604457098539651125017801777090978807707964586669662073802904877377844793867169729728641773357260345721718490046914169157466017540958417050918670340595686962063966745126603401259424897721868170381632480847281654619936544341816651689029532003393927811845666519770458513120135299169259825577758817730447159898092287525213617603613628698156782028775188312388267841790612654476918038979120571743740942220814876766804958084062122228019044714778297576839887902325871543485761965492648790521271573006391334947229608032961371528793977187594750575849473968504749923483430231728938431279291323862484268315307474156971788878071596607972239523504468740033929882698076226467112421590299590390863054150522064823581803632074843229159746634985235835932939206030821032476561420065360556577412346448303202103828521442718384509529495721703612602428181644804787210269687968343061194171538148440180658478435261434958425870921635979050746319413175228091966147193977730768206058236684656177230404092241347636492892896646560545680647767215827334478671933689284909763392091466393965818981580824725823051296878807435114529640515969702979799314976768763720838540447365167096843352750199118513555762756492775355513878867008072661082577411305769128033625953399343896514734020891417001607633235937158531706848991166791012562635708337012269156962890742835106675498413333487339626428781956953529024018417397657740685496163272509796691190641891832219489127207269720856933688421947427105968246343511546282583477408485159321981003750788082770077654796229819243301464504844336501887665301525148457767278692758731286414813908849956635847092877162604038366905143699649567005486998280448824613842703733083838700063690395776086073498255306423670088986361818392833307723967433601231311884610598116134213390149764283449800144736265999757348604524368954236309298020217697497403664419076983001381118626663039049385668484618836412386650426015549857105727496912667508570861745243533236571466238688025435058981309131112026804485548301044906260012401906889160199837832452549684053240967562609188853044232744942551166846478321498821101414066858194644011403623985267976135395037221205894871083646484369283716421673944665921946583544127036942431108967568075864560163245921759870641183482491760274951906486521662404509082857732769347884294370856695147401319858795551488513145341632077886700663373153087052412255937079556728326062293958707755108882853593298292426873275987400398337226114109286598148555010961002509256594212701244078836087612336763518205902244046646632227806975309092875201782592944800185059606435029253056010318733893197456089330590722327226017921171218121688467372606112672872446477944962259224348895527331040755364894257937253739434660026507453857149478758425592963885148257381170075700267193638549018565134214678457305746420146737909335585812730741540974315068461486756078135215267745023760723831072982944279393934101414465537098504068423359451464473788013634411336914479781553701461645070420083608470975745775689622396417173803884939545797474739002227059257802381113858254304006411356939750641650626763229696581883052635390239596975528861209851664937690601045796051783123112191734924096962985703394953124794383649989259445742581841677618463771873838347397555276546371218939247827908552758878332428033404062954147972880776627110229424592223017461434459428340163211492849799701681651798034344442677416488198790310301452668298946447609770065310772773522405646913526113131857914300091993920736393986641457100285612958388290506993434005909570080231995982272372597010706932534154732360499425262232729821477741235237113006806249433063292374463338931913430957283413568082269723375078653146662532583873676155506628883140395285492882842547139818679749135741976040743504389530388715954331133469645615973793912318773054017638074423151372517372767961018438289797371382952816751104996882059512209335952190470246095071457036750941070554409379079402716989130147371403818771482265348002236871993096492421028136936968157599254759722575398346274030252948295443799482147873542627098345642571148816908084691980607441407884685898271861709337565768837837486252303353069681177944194958283955348298842577776260455023017221767371251666741189893525837567167502394992559028096533650692563562890471516759350263348283635723977866742439092247650263254455844139656841864712323324262921148186046874191755048713650843858120522666947828089632397039507809993702557095110228832591570570381540151763287183387789727202690689795079645994433542835981743197685442252895133115473575333900195811729319190466386069920742225003894189774788701210216488082451634469030156856537761168760563812210266908055381473507358393974994367333435746491673199449114238269095057949827009187720647881728199632957703141101661613133263071192293459627232120523514200687835015465925689380730863327538346236811932674373513212523556800184417974323976295240959006412088866799557431267144493421209933917200880588509258851150377024763773784572229609197778935951840255372963122316802614592214764698595355645720005797176226001659995856076174770452360931191485482380869534403762881015043137094484611027138122190450328459702004855433980086628570285227067860361261307553270946298373429373783066145628046061731647597288545633239905804518533921263616897563586403276614002241172264144521778737952819951464644106584401723979202626974529022312293406262385666794729221741663111849617604321140734109024630822638627891370290538063725440741780322558183121310942701350255551117511560532425556121552708011861120152148798196502361190511373382803707870744248692468594763513380531848246694063969061184214115468933296823676726942499861335017572260187552767801770365823024136670565950091064043267170359950578219211743215501962580477800141039065509797007600835586728282593158080973280953874102258137310578541125879474734958486723062182739216482928226819233408254344613296611539988460125083137513982676972805460516207177243840805730812788737746504589456493082638722446844320328133228874563551463886574787563264467975325606498239157825005395496956100361947798258510506029773611126363183367389061603760466454018804974811084210331902128587828812081420474314630356107312063933921189323968797246109136333141638842077369532433136652822477244050907011912370126554163872607943969339728598653295663872910541455051254771539131348851139997869057964452179688000715804285108937520833791756465569428707198852786075474395555732471804322557103286036438153044836350263371417983296590416825104260967927440984758444522423530169006006003377860716760316827490900891653534159908164089249402438587836006917208983766003932821360832367475969115298310157544145453517941243553507151425982474077534219810979945465300022023716360744125441156353091387997544856180760514928987996158047432187389600745438454093968897867871927453599147323472133777778519887297982089097374317545081305597481974709564355078785190411727375039244792204559336932560731493420271259649541420913894865499252111857697581407146571651761741298006364935087769222141983768763774813985227067188714005035322342134288352422537674017244918207181468133017796680391484208582289914478862353969622674678693794911245737734676115679601490756979004475040347652216657976212325276970532999856973803332019009404683607302085398979251658580577789919102948673976981787808814835351472746988939901260037409322521750908203878825717866438374702693583487676305957184889795426383515803453172075307926954349536884591394299240213533559237475406562264764295642997817939724305084950353703935791584786757068215880188939432047984622914623424373827488026823659659939944853261376005575165527089733410460227893738283886813409862879866602873088399429104824036847154819747246472008179477023954793912296171140485162951554749998645115118116171597478090272127230591683005239937750339773016796561671232738943544096645073796833216068249544946837379651775583414110504463558345555601411105821498865744454323804262457311253584410437689656004473931675162765711861550012259780206315342497126551055575093231548984629839422378505135766794958011004634910744700249583472465892496329338091117462657574421322237293753160781905242530061328352151655222908440096040801731364957709853495294591822835350359569763915152472864141158448748995398431936778493759272904820412472371588585407708576383216485999655395619795268019178271975287103339916163605224153602040382195685779045665550101475196368427729187021381580506486302830205398784511549483171347280685789064705295271737379785462988388555979133641469142747525290694134174085761348177136714486629191081797026908431326212392780432354497071173022891782849910773326899748554137582702312196715822622062318463832010972212724266761125964657321762790906562205272027213450204633625485502627594887379046701638900385149083861325434209885141819294434351474758597581018789856488825614333134713667874421177195962511311487985209637274545597319652532738983679649200987268619176663843277202683092911740599818634896600590277990711666756100545239364119380473909287558911542275646627491391574632412795135851977310724161697262508902126876269626633212456532145627482775494497623738855994424283286644414843471528822402034155209746593201899279689005598901901873704280670875141336968547785735598561409013547881839172552146401645303122612680822750839221315786417921783253803128749314809402402147133276004212160991604315846192996052399344432612791519735539274466013809424700034958259996039255184812182259074163283881790075362197052838156827539717290113011676339712980051132050949185796718774656682925515727493691255473919782477438738974792095090834856082793166115590221740944010199049367855703019799015549163375361340353727783612801009389803886747758167859675991873195457220344681754726786643913637048410863190545381938432246333319030840895363849563406912156007136522083505024463952398914124813764729772266592185751043329510626558638952430541914061952594109867845445393506980409856282292393219058758605355840331007553198498218401051170989207157996894618506316284689816469505665211193280114023865680215860777850293362935270716138379910882888982184893294782171955570455168519063997216582795445985901503692751627406980900511128886132703960934027547161977469762567018963231579515628677626974212701787146184746901143345440093233953969897897595356574328417008837943330800207494957358749928075121749881391448548678502755443551807649985728959926741774764306969434723106849528519154532222439497999961455748813797614479881679125187300686719084259802356750963932446972788808235228259548056363146094278047695015532896584711719581883085168855464108622235750517687000999289961697570652249341966027844872482504757734667703185723589949363547909911048223006569341675013081526464211686477050121587624783750825123079864786959969467701945080430214378244952359726958758083207226096932245953362900446235014194066257188815132062147657458065004736216090603957086189946254254282495459621955751841834205103819067275516473245351674690896032188231518239861120190707303172049576418845338911449837150878153120604625828719877751244062702938177933191228691675464780246271707360927646794392083634949663198130048146169768649553379850678090143449887887396952455457840094616755805129104666581666407912981252200150373520746850710023550504442015561557422381622198011414267271594154424369246581467667673128486934577061597051014161837019493160027922874849294739343405876176417752581240695657305878621515583007778811047636871706678590699960654555900109426535093244529814184570725512354361896733843807601457715238785174750469383773452314084353572547119239865889427719491068904050558013289720237201317596653274013130032607520000382200455723777753631363675816895793552918721062632300631211102847668689261975687169609948862301598560550788457464822117822149007951035090719640637560369686925431560060166545638964814364831557992296088307389442815927630511361011423482922150046114702174193326732589610587663925833513127399818996120393811828506808200070509213258696057251477714904355392262331000274751975800750238034811669470108945116538236193749770002430881774780062484060321745837366458167297138708535540615904550413298977443073392760414419692917998644612311071389382658789890319552482234051482276659699405815711413272242008484449689258062638498300853281129851177968843017708575424895478448251023103253285889286528847481584693890222614486050327381543205127702677788314234295173071054810843529822138221280613265856723609962197708449353703962521662140439335957611934025754446887745504463032763352277626660660082726539514979083056382909273398393104186044563570422273987291277874617654602383958370614816823467248187927483972040000062771451527145315157936033057535293782360998884797420769791431650858083974887044482150675864094577243053626222428156679711387229258944035268566308707833220788040501626752348069520926779719589819243857973645183803450925820794324619912311390875968549381626406270496662908906016649747636836150182073324255626248565508341519979198226677238592694276821641925213766914279312887372820238075014305795724982222578680371531248541058854921718685763559639080089117079903670902224946842989150700913050811212945292705024817835548630653738536551595743013796766121294233759780890133414529804514150289995081924071504358033100585986689360340854529054498340300205579128523930558021513363192640032474061268636626116351655543865923864569433441820458234984673867015901114507825471068802068069635913591053036784827390452578939009433161782694671825968656718807042381904654422937358948495848297640956050883365217443708492635280156908326388429056869757411377478454562779737059597447206549759556286043866191551251670474136849462966682521894991110394019192747106351737153789860920714365254049914597500281919367274808128505095602432331285585506878700729519700381050976699298342919264673715364906116188782025260903407163915031234503387581612569858239168771635795479770735728530651032497871498647502443636778311746315269849864495142344734002199448285190098125036051687451795486455293330127330160884902256142051057031509240325701092132147096505615089481125972445888448286248152625835087864360884608548191608641036435502661714021602858809057385533437367067924269997230253034817725031658404028983493582459778766137506243823108821129787138467322889287034025583517953596814163949981394933920766448298123415773148900380714524710847067442610049820816818252663956922738664116315582498022256193054318171666035958762190902637692896369988016495039948345556162669431159972134148164956045274260304526592830469946413505319129300082581722757908842703298629992924198433763937361511068356956184668100924584546906978392175506725941050454904920586453218708552965860990113782812738141411417636524221311986153013587429904664096754128920276450950717133914227247970726799943211970037053821353127122914025321313607621185989743861143636966523097389459515321926073809165040465163657911310693738735069145806527070938843248554591631511979632078029020533123633951764333932087352484016136380704387335780240458915044406152361809032654720021154708092706447171630203454597627008485301423466350811205816509047660792520324742119379449624492361352439643785347718698145553389849802425003443817596155349390091206102618558861134507720607666165744265391834258230037035593074419362789238662508403085955175040067582156369722303099884570643599972032023250108349496467595660970622029178782942982492834254382904574387310637036149193368585005032169134837144745706994270803655026116724568913716278094753328197126836033001299288823488654550522928257275588499782262961280520660890408320205670049596189638196171858936566231014846721613497291358763015009268073525800204625683223716992414278352938683451910621040724350671458506498364202489376684736765039727088858731431348420270622151573486056876260379550860883326422184196979934341420985252991875211472529201839066279286261723255245549072539413168236752138526559660690633749477547427414998182636612472212884941165367402243594187634374100825142670470090201698053037228519706747274611103173054935661314339240670168275444120411884971782446307553275296916937813358479151056314416771755807191188349110852165270893551666396780339660505241201287991657463294427359163945638903277686381417773141531052887645113451929531112263747234218783201562025451642885443462626575097401256720309507827041121411492434332794537897723627840092535988963730367273686150074603378615511149663376735573421466679261078691218318351355518956958310874998124072817871333005363565257780636043449778823618855698887530250953406815504202098848603893726460829977363794902204734801598047522525438307509525535567106209824549874301648991082404619818894998453724340488595676983586068257138709983464558485182048603832716974717097100818026225756316891435501669961007033116458732372010958323737763254949397292407463116609379462388285871296474982436149123351165050491459811205700934832132954575091234649883717661519842525936406938622146250721874115119933181915337674832968641990185193061950541026662946450393432141877085357520599306305060690029484233237688396371456731719598977866084270768232702477804533788639129099030036619417312424233453201585527479082729439465731963664532851547979724716155699245297618550230341102723289569132812313267064129301457720450134543967045544858447766209624290902595360741553124019703992130574138770403669982514272248034546615354249916195031611370209554504912770817176436688862482490376320939844898130329567639678116674793340060782743046289333321796703208691311297035281353943212851308909157221692030816675523279741432844940337581950074208689880761757112598897939660711998593277783795743230353979962642935688310378279936655693630231933533925996788532922352773092863922005724899542369075611953450931470408544812201287336782756798891646048110787503760299135870365921302152658093131964914412215591958858224821510692801042787522185243069756913400524607729041415274749194720934668305714992449586124591404107239067312667733592390699511231836115958260714067774727147256918042885103165089479605916889495593235946235199270676547657000284034709964777614484413315169625641115223381092359121799998296549295178786669701230870129282355162395716134015188345169128172570258763105228480197197312566377071218878720338084209994870048819279964152388170917911729220334642818023433607759746272755942874140665908565082352104149579970754311928782827194943281857816479658292673087899681109701936379983844567479739887752510465822624159010964919947333570082624632830050199341301317832717929488923715698684058964068990624579367885879225625821024150279741008281364801199807028248042533692796223270068476585383049180024701835446872667556564422562045539291556195318315828759962717243631683307292602094937980755423459734048460361113331651077135815874649073375638895607217524700129491368156380041026335195780074156393339358977708592339200013108539551252807209907909489103513902147757727777463168850523283217978659039648247271492325323471567110945316737979574152004680649345185147266359790643885685048530070250433317085320075298484233894115325196144126649193436684013741765996095621726363181195995016604927267351334574173815223275795125064553950474718826222714059827424408741823777763902325314624545210891741663334125291501065672672610104126706888954988595833697237459329110998292307456248725555333348989620233072543669492170966915211530383043809681279796828264141703112535832972172553569946840794168889095220112302339356357274858814698499898183084559153759450112475639870509104585794328302897062619951334074015757131380401749516539900414425285164273856904968380968375794344223353854301514240932893314985723436037438610516904368873708528740328294020562085024336995369180750709577983304928201451942267447003219069081545400238952940325629424688070572975710076853920650591382408510875320320564364544785110148477175207286313190298102063171515649822788588831789996059196075304222512097988823864076857546526507797545710459100985998087552186834993553014622774204581313356383485325630828021002306801604978439632272501483166203312705189011679291421951700271204914669150894166287144472771707838459141770277767328781619394349277700085305942719584441168282016895721268759152080259265236678821449550917211904626957496437119481667582856078561902295565889989242782419735857749240653498096436449061204830328250880853007389634095297016047380929473565900032652428210031583497225443469769504194425530810917118411563287829436801845063228259535425721481340757083244098591191642196452660505821075364801866828985916178439907035622733718848967477648333769583160685934566307941716771586313796235772939708673255967439111203267770364652601026358211790279157745752237265733384325014876638825101241857640421066251532313151903124025786587396242608160088570793332934318466396264341588414178060485191458192244746695041364659374413140334912557907397355080971143001752397212462646932465707661913513707603697458503676780337709317065494375060647703936610883279516048248071070844513171444083869746983719756433590890417647618659396851366197004441372486980248495772468518548679404535789736474346600292755327334480974638088763796063787134917120727009234546684871146292894474877230564500794478073011993782017253797842383636512139208826488839550780585181487267588285358562714691512005361103635886784544824624848395819489809569634196166802221201144112552220036814157053381670549290155084814180458752908370191392423208824041775405134185457050298579111947782684310909437140623921649072923461839864910041646331974291041878990081901944236570909988661434673153363746393452316023440381011312406452620245887776448419900692875155759841755428164163496238980999592442136878375887056576081033719351171646925308789163594025931581345688141039775108398712097886102033359213596729668531557534115232153031142213179916058827249902465707602989556474077171998512167286283805405948562887811526113863049869873713897564788157157216034359475499968200497883344282860756832924586839980056409451912420956200502550936370931695573699233541428801409373450525577043505452912986318011698724887181500526678194383922171432095646582696030416191412491335763414418913782729458894597022190810576638575503109526547992894866924519700230260960757922619540579823147111796149741827260288516772484466401805554975328807990126938392460117819064104394692237700656460245661379781286872827808669234604758718322995518998333670719306094560162184710950138456482850276397029361651116381469554913467919717759163376213560196814213554470387893385812626120958144453156453079590095165069326275745143835024564223754353396044268344908621274944043000133303118050730421086475613907326260943342586628291181572475116085018594721006273478593768783865574874190265281407983217870362285338917677270678270701325579008114155962907955938052149806292289508515547078194827741892682217709036561423996615260171488811344054357359822071746092810654482835967150052699394001866341863528902165125892030000137937263434811609181296263010537887248157130714019997380737278522684984340137327306238357293030456354070598497075487550217264571787321384538717511975415582981826289124169878392166916390012374399969182271666459712600789474028221497857283482122700481972702080334184152697643500812819781782765991015650208336769660996492669442138615571938310360424626436152279954581305750363836876556097413268599038516614141949029628217205402761717708329445734328788069665686842705654942573664969006892926554228550105177176462014199564707399871669590862498901596744649786686932062424319897373551020201947417404781912882714460023843492342270788704389069025223472686035006555000775598783088981792959773940375198781087274309564543891415712380507982519617478381847569464802377377651411932213114047973622482989403399641218155217409993778106966256256491827464594662465025545746839453746112446093700631275756844259182160982371896361381467349366402624823545504326945726515039858314407280030965933288903351009405546150241060512116743933417192121038756556017883338292486615256989261720439028371738204853587407496011937141539923963157640451672884864406304485325408034856089417423445987217679886091396093187356100561299454346318667803899703228086786678348207762657539393934003564357007682067489097357411610118326816987197024689547618967638522019857145327297984789152640242612522775275666643284388326529934611213728891837802772565668045355633675657620840233809603600877393829672707217996798367934187992877356832116550609096176775270567660162129607176735308763882944793307081998516955262874156301590954131562817652033275530987104855069489233715937838721080844515211691491918430200493929942648343603602484395512631224737959049366670771370043368908194100191755149874433883911370055609558023190827813883041032580073742067437310041273921284578058833974548834134890311643972824962624532840805829039704050933487917888732311924221337389960722789035299761089678078017281431988075166503344952727669882535240940352066686105081353481919327667681593505547067588885853564922265558794202619535518553548254127432658236705385191572993363766907064336575593390028897770290240200850479339415826851081812181761405440635442122847012535480776681256466980854059464225944842292599366178690691953048430437151833982725847811636710958393712059274761606531761545515242001336385337107890858809698134379107301259303086218524531669672387446769473883603531914631917413772266018438510336503763062808548167602540401550693045733848067368523572504934398448886272728411116521945182230351138262056628033537403379777227190667815082035386134153670918487978017066307314681951327860207134316076430856790953478365939991432340649737231877401637524541629403277555009452197591290325588829916819748548771123774262965630672258654119274537047889996973393457276807029404514635993120068785231035824762766117276435502030681737464099996913350114743951610275514110546236363175552919260576424648758727934403003843745336490083115974523371456779327254108768643997782224501507760593125646175496473419014167530142373783493448124401151915285889833807216522425211723383069664671649905969720664566544196803275717244760990713379860252774387005300819610805833517503711799389696297996617172148706312318162322617220923666508184839319514998796200255877808833713786275798478511862449277931331633440508530195552773208914545563717925992416614416759283283014508716923041659093997172713821280101672534702109972332043066739487212414427539128761014799484291286384286192383490563434593958536996024336316887523207510013456060600476871044862187741806923935174159651296536026357694843318046130071037398623673323396426667334027947739743165778143252708856468869858226080898853157347293687292991666976741433047859844016855030818814425620584735040250684821784963537501130322555122043026298472747191867738604534672153106678018558346742622634376724319704055747060680531198705277045362419420860582132798627711514671371272611331389114979665119356804495314031001173433812747845691587524172558134105015862206826320528365973861261764073398368317360341696262063803772680878054137853469645045891580182615425578709063405393888668269878712975579694124423452732877843196848998056920526123851950544288323026266193138111072829040838384046780673815313994683864726328593729405465838001227855767209649509043784457921104870709336456377650572085951031720932076728487092497566818385077637875398464419344895011370636348252216806171975103373289376023594057736801719354843987693977597205318552837429845445850332667607659924358937825216548474014319597930801002604805638715968200678442408639782646512766177485654286843184114776020565308349787327323842844259067800543627027042954250134966502364599437817210455467680074914652513085753442863649130457628439172951599228044334919700325228129734294092610248897376223791475439174312499812576066730596388273485696171473883333836795855157638647264266808283376928656506309606163140031788673611797810658049274959800606245955971965758461497272787319808047103228844209108140954924551586233859882479524570153414514215067786423444655574284057238690119799732675970994644532095521313557704651061656038095438210003059647022804240995332231259225748157132209521011405537856817835987948953511415576683510993930908158955803556538537429563739445419235182965950920594265219776699026831147894998699838561904364402288319624007624257081641166503329087061334480429265130223359759926471950654051025874714164294430574896301592730749154486939454855516061188684015297057655398691829644675102575318547468185531173801101408510444826949737709619621388429829989953281087742565480331439230717622167149886103000327685674452102472497675467474197736507650425120816711880161028289577644118337294026446166158238304687247193796753282836745607022857290587732646649180338607413089107522390040288581278678761456753859393229717218989611394371383099901037873238300811447389751272796972480590644460942788570967214815946671136946174413303738895653686525101851022319269265196805776175413822266339604768914988482540649134870307045129922531149795082538138010184333446761669331849515304232292931474202741643513850908835545159100057799600095936383641454147900145272785901710712042833837292155409581701272310845723222893823904876418862625323746156862799898705131804185321605362297432325922147725883328926244617211305574738552752133219604688802595484789070669658589975980678516571478227171228549896817002460377453044122098464718174485324499279567124374283386564356032265245919520156123771534379579786301290246368328707057923704330630401411299367266865946525004539022177604657766790787005663586266892074125724357555993603155361640558135546745774036091559528267134092934759973371261032611484565701452689596857999490635708567378443778029243318521427417816780359631992985356903772954751147375492184040740766215457533403398939684994546777720610684283123840370479180179877746910976703022030032248496581828713615754864272081206363962858439633443742802724813915432788340288114367030612741384413632575792846293424135246526712300430817244485759302456235067820663663197179010913662139493983782236298023867440359293929268434474354105444831244097799105789274420245895279525702022416775713894633890875425137445286119497760286196375020160808181979149712981200072796891953386700704309915891004724365685550005331738476677806707282140807476303001889957040654836038351563547037824808416744409977000485427646631736595239855623205350229958298940788877299998154709782948972305094183908282362082623243149668175550248259794161305681640469445072792931467622518593636339892851242576688831880072211298854488856510766572313678940559000781881940697352584879995946712240089831602214608616233947296757058152036821775459274494706399282475100784930660919071685815955580174652727955755186589532678425074747650563350427726998050770039089146279471721049640666853468911583365014900644964617678863226863412920711648581441152736353656808917216371901542767019848543135442873120138828016688267433428598342486680235860212081486414610903996802598052579755377929834773530328412908399255880190173500942558921936345991851959505620628530222279953932962087136604663286108549537834130951045147649948829091433037119640657703047602200694404759562961986003954191143138702511121888319662936921945415077922581582116964500290381775726238776859018983564013877598148338768814172411443083027922028299105632105752185854805952610697777226859398266465265134558985325009954526354384825264289344506446973165071962010282520354702106031418852374807484652789772768127165069406411335415419538955498377373976764589480970940073421519432402328731677868469573187299045163633497823365411943604014210728421633652912925246392250498928174875723001714512311926446644896317648806050820824204956639869159737793993452655972380170969131583894985136744399068260447361794028012140385155253785075288811154198789806660737878589223347107589975872513827092049074414400234305107711765456909938794790499380338668950710406302194874216784538253724807511090233854145550085624201808895375882799267639673147641732264715434747327487643170296565055932883260584262722846249634463551421908392928462823047817629786014621015841531717563727285928073527033964425449363697548657839795466356912144824698277414013968846672064616890034085090491562281079739196949643403042776713042847712135237263322416885998290248273389969724651762609033690144514959582142216434360824003579528526546707602749065791864061220405719158974058554129589358704813859924589347438769183495616071248192446222379188156487548678297199850068622019207396297385072504083623039540936265840416119199464455690360874865803329381018678938062745720162245978899439070451462752833368380112493730620079116172261362451954876014811061795481733134663535285834191740886107140845138971392624428005194580944077314043536125882689124456511634673610368445552618080677533891775241756686880535420836711366182089819243925708419659799870246048700892036837517524326976631276975146394900741048906868616917861648234805618251980832414568830658428246541648476133913392900267984062709050009692467983357105998259995144260600387953661438879130273976404837425633381187230063519836794027678107514362601213393957721324272834907070104833119448344397926907961992905528510659541473692001355546012385901372341255936806059845168112685557939306320059812630198124231312077818421595980380786321521476908770034236790127655905056400484555023595479743390575575930442955731144955568477419977478274630874089320309225057602744247975736618931632548647891210908182594724390417124006423099744663652653754415158394152588574134950647958578080386957088462823883875071346029661101080188947756612938684445473979235959949753773880447154608180358350412158828056513314647713715928583059768557495101659660481116065173327938245891407496997161466229816663741801953808138562863684097708836725256255822308687193672514497225725025672190635561149967334400606108357490365656181218494157311642895131219556308866759139823508464239503138448206393867421597692044657441051423144945443351769356525114440943202745814241698205038232053608079012349550865572831384386859517529803301590964135580029948673627625994469797145435907400513120186763186343903653924185983078486030169642170974513926119865721081992391484436554309383752091727393280104752324347472610479531699178558661209297845060134425713095521399886515222369772849479170344968075114610382318690909489844734163345557914709392223236310713815807156706739575887682904716465185803721138728369025377771396080860692803336761807336773376756808729694430312943663685557162844648330910322477657146292573430686886856142607273988155138512974677627960722989469736075299958073461782404767251726894734062318538953487614701248462398710543243165782560182185824925668768467494806280681072246178463850627507935998764162071727551882187835571864639783203757350335161316446251116150423786414022738342554897692357865597829563551874555156016928145770663856447235494587026453009634435090054381552629436928928961404180580707838701247336912373494904868738717820132950498287982701518356009492653647402524928674042369611853567257405415380542575512627023092247294675989523635987708734753369226120151889682744162733412913264286978424048173328179946331249140365961703579219126759649214382877839375312268123916399855325871681809102968450148707349067415401916437928429704123478951312139691500959112644068635102309272803182849434440603562448063832971717171919518716614375958374812804201154531648830429096013113566372429215971332013599709981722645766339067530654758016284990157210902941804900947234600777835198933965025791809889488171989115230763755327681620661511784074966943965777965709955272662870171274807055823666798773044906822786529407476903478835497998978990201797295311480487563814105599206559703899251258154882291149443934793337738234470341886752469334263185396157685280635894340092444441342514802344201447389021490065642331737107189961606906649878611950936437671265799334258755194048842731277560147404548947420480736881550076783218283239327520289775582604888702352155305838658537147908712100708363105696543755831175025913754126614148741760361459789817139077106176144791845439519801919450648202158887407962385904023213972665129520740976105519171891991447241431835772523847097313776119121259771026544477428680792499898591311529774477372714607462699793086057883947302325715824953971883601345386012435696317592250705287563324333097201118123343266410339030691100582694370865589101872970184792884503906058587953784141454736830474292821364585496400143480560583591857430869075674473203006261467014419022426246437931614442074531037291215135115138762281536382006834182935318337319210754328893729200796012722627475095868489690906148914802751573779976484856876983647872609432851291530703122726114038439125732464216618863196122351629004183097674108604701713042313458284969670247722260689966473343037867508002368417901835221700437751330991391272419552001877834712170650400473549326626254095571075689978738571354874663389807522811956463081556594484368198341346777300650001038878764829680243414472439426591321017656465692587927167457259216178662490985818472659972095313078437401937223493038323901596570326249220780126738613729637069767197103692681403686692416444558113412756791311619925605619096205704001179697112520357361192888033291832861867721268719582772434811153545936615331469655960779801161077712540746139466947650327358083231614433684276750930061327044242218704531426104534709145999496746003464076627253643880424090408763089406490564528483296779497866093984370843289697443716059690550101614604226473733762072373749421560179426165160043479054117353473366818957604404229194329356039919150687411601640107249459361843906818425556777760745271163839680065126999921242978305980171677474202938461757052103810132784219856415703172550606502934373069528673764993712887170058039696406038118050268080438093211310151852386643545059625901788252630130723107915300332260950400636349571610482837221487831349214020131680107843474229349788195412444153306934117444748947746236485893296898158876375055148801408834316659567437779821913566925365435817992139134066907213173162380447824408742276594982149023547722479261128365457943235305255888416277068904526054625916912230236700813014709416801329987231848821733976337407220128389426054430675961313165480108339510150849227203934390775975660920183285948128170699925696024947119340571530540021481013751979669991777680919851684333258203924101178436760652137501006512339884650095602314569923522268826577880765283831916363499804873082315104091387347388073713194142926661482692799211543803454399013437021514143986483972048653876057740783080219964075634199576432550011572291068851489731189415668809480210158154726957344849466219700519399945143611315016093495846103886860023818492714966701799649110693566127641637846543619456049152002961469700716285426288839693709232587170553804352839609429636640164865549789221220640742384137128748175001979032937610752115674832869019357749941812859555751561261757598030525569996623786529128538882028148551185302266712906686494056781456347856722516090214084556404429467988326709698436098996554050711329979858374915256393171522970888390380067730940972573683415009310630399846044707022478116331349637404499868321510876768751733784672388732494726661259432719185486541539449994129234423999859922741501132661985691177148949290972551993876613151633439381049541887076335857874335689442598666215491904122372220985843141452882865430404351673045088235150918098150117188435084282085340032123627632916279169150008406680254028538618146882895425266073882797799530893080077917093718614363319217008828458063217280004182014696818865594827641136937891805571621010916144749602894256291812607907573608422031182557358982234954371738942764356658047815803340963315278843171461210444580586251431264858644131220943038534822751637025310669377768946583979240418232088278658982149048979881618658518029069919198594366985809861941776193776685585994104666967659960839665850166929321610524994942552660272620388070929523173646639042238603923733487412004277366122214023771238937533382882457424817666199210685665006303854032383191508953672891375199624602439252682484621100750314329544278137052053950902724914716742921036395437626072832666122983552238969764855710016843773329157477225634137585185778126280500891954343095602562177581304192729558712376543800291828988404381147073348993050248844448974925942049201384819107022182906641705832974271930400831650181420538537150868926629692037540947518994666326231412694471658831210775055465205642449083543232352063906613361313676623142472082861308934310337986246605604491419265971646037056860015548731901829281991772971554004703262203637114473797237633033673978840506835448392604306263692777859990943272278700146641636923500730157315697547613185018734319756154614374483266672773436994288064628622730752360422136567851386153999165129406372808107190858734670829375015158119803816755354022138772090073342019476609854687580624223139450733808754317556412879382156300788035906149040758538212700537573022054848126522984704881137779676067047954889163524317302408365674842303874832959932324858417034715994184076806460832763572224631057550077858448372990228575540434083129784088521261512303753917785990597623930026246646130461142445079727121372505495185711881254365053504924113302529152627488020617760788087134195667893234842691489026183605171403592583310535500087834404900928597579251072603203906386385899730003619620378761005050387816899841133793503805122190228343149082804926180246862366745347561856352662107329063574554532425230227954923537692561368255092714483493956751256657293463968120692768564246142002104443058451740017704692442048576198198165338166967238558307809282013825207580232643734085089100864603848394742188141738186288934494296239003426300361417965336270296369596072899618147290823847106442850691317969529520657259344767611938511751424235769237605731241078277722261181678781010217805638309128321218443119995284333294501841041609234053379889309223416084731926329967121155146808663708537957461626270203392292328829297464754881181434359373316262457666306308632416903862666165491188443405919172336116197630605219100746582305051912101785417027930090831623704011518286960352259945024209027636400826777865824385214939179634900886418093865648344124890774782181451330269962558087859416109803513875012613409644078422343632225433021841541420499535796186164817475215109138920922461013439765470297729343364557962125303043156032329348031009441486534326626565784194820476650232967137316036767577870914045621835762555081384709987865601997249323081394607929536686297835367560358811200551735008604317583020914182144250591698402797363122869318036294110555815553111916343446773064221026471838460562142167933836623856703789251955796940956991986809507392672403477994013358467161999566125355936456127460204729731037167734717872675385663683763020208629034340220286165679493440036262628997912851946807441665936657521464215567591362575848700979256511289790382616748908580593700752397268931562157938473286081197926407419004288666618337762160313922845024869269053286375473568304609416090989540666500415150213538383345140633398739340148453681635214042929891115320818161642590513566899189702835902625263508673675264210083057653659550923510076006721557747758399582747959014655463198330136321016576227584943378055984858614639219668271279277032157655732365820360600441772059322809875845593064552004747872338495772138365891391836072229016712981967654101122354604791116364457874495826022787370093134922710159111670133354680008791012431570196479625579459725755852771213947891278064688410512518497462019854011144768685284440543705944668532101058745003908432462759672983136115009650503495693291294018017164269126175061956000548142938627662254762023571182728113895347029112696315477490591013157259605257397902634036918420731700813994341237117035614211390167590120862269762209864328967615238662989980816386632679753756295866744345370737774622101400897780054377702264029377110548803665275360615900429014988019466681755148927476316248510468520218825249405675538829395928642057941395741315447301683417196949786156720504126401055181035678027629083772130790061826224422186440110659175139679858089653511872164846007968487674395373895507926440904944495062482378112334732358704273767001900927182552690458742151986864832472788134203962336217894211381813439598347583841020706171495382181588149068468976903492158111601006826148146996423484368045015867181203764942827391995303535828727732043649759041374548622546572649494438275333276403247251261459946098716965362907390936797208314822990203154610752629470522312582323720677108421229342151468248203162983680970837374412884846424915558528571866250153030994463928594141832779359626994756060300430217340255572504379263471881372315294153347000389131126088442975003402434760969150335732803886373760033984116386471678974913555605748049689855539181165384650135758473256423316198139643285830850719489458071915461248591952714777659195574025894844549906258705823284155878399918553739618335196752597400994516553724448531908243959399741533545181720200626474180178041291021171467566244977013162233989391571614004046630881731180701568796504841188317928103658927851047799339336294305085562877785949096386811020118528860876379747979222496082601258441762666784144499435527737813809854520064717018923696240020752301000095047381961810313322097639972967833925265071006501632457246530576171521088192919345808720720025058785249209587597735365989809353105640771436845232973667276235138617073270566495418875695632370597078417200687089919945587422236772249138440404893744459714877997017298819931832300831960985105004609205237944166482554931366139355060387621346138646887656611610734550600647096089152877695302149387611559183553633240374323809511342154826058165359784421388962525213418325564869751371903113122699011672949267598974733906139697935799862710653982636106208229870319646323690640674416190731192623360805242122341682569288985736093416776593839673894512744460159118576243046310204669201272376731291657515570565736770720107606572391640571242396834902682097937687175483965259416341061534149145460036747942471047390633489865496651375848216247706022848585560151892354825368133558980955808686551721019670323550044519020695447860792419285151263461480125473491175890970501033889587353705242861731510450261150556491300319361343982775849975387555243807425411270475683482798400585836518844463672288335257214777991396138134421422267385677714168476590063728137035346050474011410146537188992809819391768782994058812520442700729723062779355086640872310069858396814456020224708242643897032004265031637119612151568987339473011247252286404354617814683179658912793280548117625498983937412769145273860669109643253578431488958902136041561417074436203256636714806286883493579065210201460907996825913633724527904404372610994898170384529512827794862249359996903750271799028174493867275679331043329276393952146277387423531434974199788857475314332870060680117390683489982267001234208542889580516363775426997856112126403836871053193665667458816938805553623971401053229593487433482054916492365578791997003825433580878968864425577562238969620684324443941997934341007627387813791315977419553930449152087435798868228157046861582469169253511037230755553185859643921297937603778319789203706026783898949580892790064563900745419053738885132276173040986683971156045622688160932488110505289697793974950573091021761072136283489352382611377299109710047562543071654407240051296494091492265774042913811695392262047101830556702634602289216640941503200002769578642095239611911655068058015141994096711134752108331581730053181044386751841178963843170916722161029056699593834132524668243304727938046651470677070989217063448031860995371339440278086438708451680413174453668763141249612166204104533576937627074506714272218863375097892039089770789510572724544702675014595134479293701583712645959989468887281015939666100521835252836689076268022542647947098524639593247509475273869346287575974017418168943141366981148010905024406002869613124689240117570503215222093002332575854437341541433289836523799340340056468135799629875491681531669335925529233251097140002290842947510033968300562746209547227295983648624480820732143522715199595532629722643941657797538773700980233013229670104692413321476381193888745933633948881901012668679484662515813346314392973489416313801060793668971179123882763982672452376258351610429538967904016710658915276392929651950029584026612636126698096982921519412483253572384303566656307085617894128567686915778291994525022768270475677148561843303421077037496016040914758233567355454897174606916975753451248835407073548436148135506663400168905491760930808110986260723577332374864087252499650117775967968607360370689886692683951695183856474054022304865239770061927068805237548501137468722632864654396976484635818950229333809183537274195384936840112854257408285974404585502049196571968315987895563314298286720878545450356233525495274278109213516282965393936479397151993089288009850568019165099699573098946877224878582741548905455855764568033287548271262107858596133590662462528203174452690569382400952631920806707882373268800565811265074774326045839505227617716300872277180895936373751435123183036299794321741460095090851716288236893364450893704205357235076842383109564798521926239865185835347597033255608535863859325434118895726970768615389709870064275152146966980290845614085899760371751758579799142915001510020710722763309841886278550848142016207193668609260084194297071637009370229964014946785271022758691810734847836387266204340556850443165855343131587811110938406837056696756759061964299811525099934405014719397678915590905313859257948504273487512545817440886658154409323595669065045442973076725322541798944200395976782076313169824498655268202583443454384691638418750033380942258397051943425721022112525895870601689657199216727033899616825105915545622977323468355594992382165027220405080580704496675320850652769901813710080323742158929557037611158688093629887338785902036814240650789369622546543454737637513630979539111549489389734132268032863469208103777770463653015520913106138527978525256355177077873865122828050776668322075482387604235652575907782943117470283823607988112095426916383370968372484177280364403113432932092265792951383211734186434285986341661618435526770041378886150711118401706281333871179746277181566198128007119021465878885339029585102476830978867964314335998996460352390097923690010903364234561063694442626252715885449056187299077467583761173025695317589644526269553413949791313934792695324527172618978068385821383591447890727952962424677883958029245856674834672408688652189078101778469658620135867134731933556521528491696364697582976292420047994194448412148349417413691692101041212009368771832583055786957749119555881105532004624780150190246547160427964470905868570558421803310621816486832837862019231308738266384007502635604938029489282943927557239851695997668371802793100467409378877774644586809827425072195438874425563426051427673669417905988126365059668774481285165233441312119420239459724382212957047770813863417333174026711824626011092365022210688430070374213575717580251338024085826690452684852392808198703382795390567779098763514398364961141141124947679420951837782185464361470992336975460313893875504178592008000495282145508187701292159152199330719377611456348090285287446717250823540332153434883793956156285388955522183633295960568985592555264699156430926869277586704353277740258772012970859855203261495621622399694518329201350150573548222309167361651480499493818986675162544193400941867513760336960811006552399856951484672020661239589857167052884708676529348145019179885450162908035744081249947270270587763731412805545570095761158435963235769327550687124407979810958328041460825079769524359712591102891987784920946391693139649541759316632911588279905198801223775061190223307245521293920768041350631287158345761399530951009778936800764828208053369142067975919530770470829978236167799287706801775778494475035274807409270675756676548192089309579524695930774471150111469313361637485141612491112105431201126079435617292193488693307421523145290365467310014321942297609843199009093732673195549754838277472519809838385314255911190387426322169661273748406528187106698629340930325257035945418673320560210056143777143611257476196166016509480020069164012935051954592256545049602831070701004050562538739271072454251297745489020292678344737719068735913740276767737021748861321952727592106512314815786537453906270084992843321360453015125699129780961630945044776330372940590215731312870371209707388314906035580088276086734396011967284880758786266898233825290633776635065759073538825608316178262579974453160469273486918119688895748823350716190673423419023176263987922321037269349855938763961186153707341945863693067428673868356551662848805104708637530920078370030442045343541191191933905960981709811341394383443869856246639687503358297752120986563285382043952264378477631544679434171614945268018731468706083236200703760137234324545580631336274327530814391534785327308398831782294213476133443256626302588340561521559827364146633284698444536588907028518529438309603161271200638106022552112547619442949404307484699708590294121502616477587719071189594703587778608389934763660839137366088638407772777363814006566651582403229716717241738893372413879468871079359726572017345024474780138660104319820221211338589672509687445967336885594789227056139243594159062424779459805082914261067784900946775568166280394389312659619947896553817537470193102141417165474266501618762743758479492203940401130307625938051197043440700197867262289348207903005919603078372802222231477992265547608590336777020638528405561976527330482168385646541534880473026773557891869097831631038577982255788715779110147948063391376153021030635670057434112981633061815544142050566131525694031234967589453667924903805124955229205629487115295436061750587492246957757848892917266780307753624117046010185181066019693533241186427378273953006041580713615234230864235157147745829894984518407643823738819997492161088267966491074723780323834944773206241941044870201792797857860429339295946596455577534159895626208961732905197819704674700344214393369217345919537281096370368652120059455603260587943963588885753502076501083366003136534156119988487317569846205612188634094683973168664800839692411360869145635259488750536840781403135459172905016984139644452502323913531403129050042540581352324049595653815325346228676941500375711558467088156602923581339139188187121491780470401667254296526340099370037048173564832750209220419709843362779979913992608538774351866285123378649620997344643270727753166532580224137893788841540396234566177994530871144300213548332164186395724409745349378253905386927449774281318494674443514578776017407347690286949449496462892184368292547874529194437579689585782825142516395051813135789394306485761042297691606221876579198420799768135453302329143679812428273201660524304583080836417855684105045446691872597212365783955426492329987539978335770341718440604232322451322754983866843047814511314727102648881602447909516681100692575619420309063818096485315146966239456530486562890666349342881805622740466251588807966265147241204637500680384604413492082932136334628408156806295726889762614910189510663124353666348467806810120974012476188880222206439307218544723338165267380841985429081379819491149817092769102850663755783670927192106910917424814524833121692117716449083460133262909266996655581573907810436509594052314035272454641283732043925513481824603149257963423525657269719194249270969625292269870489878618279585955998253626925277790844488006443028974234686152468344084396541918972731730777800619354879061354781539922295166567860075193342044893552286892851395422578900520668922415117263940837826782090265710023874107223393872057627077460790709779515016647889328324730001552981329848660799674193934839234263869598159074595753858252946360784901151842108057064579575242978062697867845793226073875092136011282409677245372873040520911059954792910830458834780491391586845843405187156623136234064799146775171733526501470377279160726650423798465997290388587961756561757688527301958907499520632488105568150287626250678928757415116776388584304058631014430017563761830190514552025573261548850138169065002376989506354823262285922091085269508365279592219001461005647654760933659817889878729413757649417783125449133162109437048627832824762189361028405508520798548821068919097394388621103876549182684773320946199122511008909069011742872740304762127127937240748717291982798299052089718337229696549006171330840263785207040144677843823021314956342144051905010422975211133798264046717373272013925940490333154510844417054390631669025130104025640449392953581306641995520815016381230597116227101175502203594281189278253741515202932821263756638734534287306330945052935904654082417793327078415029360181051786870418883740779882395442937558417664366269797768555833061944508059200913740806189826619867087535115007633573162548575861559003752418092493308636170393369654725792783308103697420053957068890599989524810596143926222007818909347147107445600582138900928918599794883050641638207641575976289859182737803287954188809263091759038250279796696186456266087319244589345749837789591860728706487627994012406004536675320874611568121498507592218618881831208563896613287860310174308431612659391410037443972427337275224944525883876568762312006456645680286489252481619614900028813852162456809567711099403782844965479037028464942655185733739155561163561329586209658083210012848790651744369447607377614159086409018945237020410514595446159629099302346419916189930909765264080735656552214613244730747480343768758777184647077746858485763849220876457596514859939182687497423866156624613285437335606519967809229154861944618162443425956079455262992143963540631420807193322657403068494732987619610555059133071558792596355664756880741518668536558137573525159197147055905372672236504125031796609055519008964153448352399009849539522018196346096117642730147284705256444574723798466577606996217651839411263860630133038008811470196010016602879939823818837314013585159328873213173035870576956084685941573641101894700641123515008868660040365933922654838623889285872199843695442741872457618244922325097699227302458043430982231086466090140601187881680928419300934469775223135440197114250590864910101762221747468192827796331733398936269862554749591048653212544548731413460052762290308349542701157372601309303530335541002466570955609490737257298334903951018819686303234474831828804458670259283350907052237556197193241463058361069914174017638317832117061820921085570302447298993807755537213354468890613096645996928047269702103326374268555954655367624801432211562466646234141764318421957092095959613280350293956065328733353713557104226945094938491353117470765270450393605481191943142506745516460175982288653638633478627538130695532096296820089884027861418878800022659921255092343427949891077945546997794793035706214169267536263021735536386059406665990233729484048676672754806153264663245965149461252569909977510291039523872316330554718338253642541441611611934620009365846938463795978123886247986099646448002149448319594669200118054729070246638751294034262801535820068058072899038945327667574375095787817264040496105682820988509303124596416772892966737007269530005213670591408062988978671696162687779142116095749716603911653563882887855001937737180791632357615405586068101380800003543256698017395273539372383264502514104499911113773540964293416877954034584478661497351473922349486767659218636667435780032566067061840407520921661201988910349750395196579525543141854995000137380787637619843498810364307632187996466380082140276615967021694074454054181360309867725529588953528394159564451324165221190613391357741463832611313277544321793894798444475402328616369961019799277948401742367136595016701127005230263476914540434720220027389738864005392974300549326118041451146106829590088426513767295613355651069902920092188459595018382539668684083462726616599055233868789287818508228158152616896866621723337426645689976611242263483623036190006325592751604871840078910514231176281951694591243094798458784318930650477188177093027784286064321652516057158334858891025134460684694824795817652864002233286186177068003394908349396058490627297921647585411213482444627275658625737191682402667759878930142935906519211991084899610298376345747841843922087591827512651788522277316042682613736395795631019551072098816384076154790275890754905967032603662976385147695711875310375111371519387968808126534782179859482037284646205706110145550012318510228704867922344200690330524162038209071238194534923460000786138314865679623049072915785924745452415492137741856794975876395429545056506996750435228062003168895476890554262287272643545705115013434010059407400174245164201497190638741180181071751658999219999072231965801723745604421472905532781293702871983571839930180999675138306069861313607480261885094410452050633216128052414256343331869680882623304732441886143661445656678861341612547760442678430234921206651034895512838988172917540657468421663633982604860673447288538240811540362133921325071387979381524441065177170811263280507225392222910936140151188825727970218220095006834959664010698804354149291110117111720483212091450457905179590943122626997974045485843608926424015326551982348679395198211963652683478418618392786837800961345595905391279426611786649142379217361339470564156694041262442248243338721126292601416858464505710826320046120395683538760139199738415906746773310607666953862103309021129816669782955517251533162620627439830725340009535942705890219148907363139130917148140905008322796475721347971928227512717696601496496441115314600775084749731606681914690923321287147565436905092030958088333749002072121315762805190644862491136296237147293204079412774567069692751194022315159943980499318921801780980162073191645793922156917122458430407933465659731742412774968224816518717867532958229338096564577193192207883445294658685716044661933388833712912716755757929206312940007551957972805656650407604813821329987878186926211432486720609228430259416391792934807644769891288163995657592089288053850034793751412305544848231706550781772575830426744255895989156712218373015344779205852994458992627756381182618051739674012245407410577450329249624648553165604798088493189070444115109119632095941591621089351005636964287225325697670183182313208180514177304252337192524684864239523626830204622962302220593015455513007413390455634365705713227383220493258678426848522134146292085353443832271545495464781637667100763320832186342020459720482352212103104613787213640143259378349270662721366794844719557477696296476785575300393903524673572549140494947732801822999353447980006344673637574562098797322706949568025899487068814069813683106106684721822307309819061224480620461566867418596980369849387311343966818862677577041004866429604172293579375621267036503376621417233659752203569539649129131976636428383861386774227568734229569077467114795196366498199116435165936386481014860199613742398329406151177223221220292926958023493154617074108942723731035266133312819261742242838089244089022474985526612857915077286135377220184459727838226063601987935841492064646623960392379318080338242114577656235936529579882965666879658879295103261307066216814853150417685464229481360462758158634594277595067120526776420482117709138249359689601540227120057592058583325903351810004100773820068589264954101680068955943671145919509640359153965081364097561246229863186207749094427136119861186113195789984600893757228178068249141535212433284817354676195754234643094678790698732774639868634049681563304959204513165378130971503472987108159299266331545151582584478330928648044118667783468006589651784615907199580507814015917770637497666628298699068773329613557482657083471259096007402509070567458106284460247111247714145939814610668291186978192574170292639742077548817099642964156875727669393569844123448800816421611698216395977874369077420049617910255161740987799116921990681343418077495896717299201205974320781262780474944023918852637521405079477908175535705321106128760036891010887671724696765353955411627411407992887133248336532633357470805669349400943314093843170560390906904318567723056848160276005126400103929879638497277268691919268974537072907266048197201379350925008269784759424033938907919194656386951593539446223982501558118044822692096190156097263369413721750382162829264047955713390425913702001776579600647585161688730556368893939369363746814369811827786082052089747680401575298631765889624866413781299379642459707951645011480630116516409245409321546177331330136588864815599278836408211073716033337378300576686327744325230098376967219761949229569922097750645966013969181048589397703624330399701544733933394028869078013969059981985770220983640512317529356058725606344575494142795575838413889405300023336751734542412477699104229945584494672338353843626932121164278019971759713810733732839091367783753147003918791779159942793206711914707974136821053980373344418209283862370014730950730043309588063617690470090814462834005307913198455547292509438122527595229409826011754636102030108388494269054879744543088573100573249171553830144252004116340809390628109505200070478541729534269199084894655164967502311410688910882024200553318835007477947665473321478725630683060483526716264207369577289907751102729263025865682777281951658888795423122167808657146793590881546213692191798565425027840091590657933228330529817762109344816928538578070781842581020469767733652483500515785238392015841527105994588863875386087359885396143310679413726352643394836473197715699649410877348627576321232324588020952373194119318079830929777170215614414781397115071690730493865446774921583524782253330397167560024776724670103208102920361129446922882014070069155167969148843862338954241865777747845636204864416232101493726202572797830760589234539964275513731532267301409228045934801402541933663302667784174175733795037388718668611677845276728626449296724344377680701388846730241613898914307420681789613170505289351633593559017575845627859184669970861918741635295685442821060845332737406002899605697990246856533205074489987725111935569489660506694431418863019182540868343947464928404075655854384269160838382694724903824045276792891793703943740176454525279174102184511206903011099255598480927703910746956893943610308572260340692542709478443008939324260024059126022124426308421845207113413333846667722845413197189002956584288509768070149913426881742819758366580194260217633234976288043692880894280304119803435256549040914026717347293457611735549870780158883469519544773454080791323767629017702953142001874915675618052209153556696378397363081816181231169903089299063480530396136353762412300434793649148242040520654737124982188916111863916063516406358467281805758610888683533396198825490593852754484870561284001405586124058713244958830786474009555022778038749047361913428070315142713409864772444163608245911335942527436326868504498303408243034702085007516034274779695764883911607609735128408748257990725074199195557661590151083739621160656526241209249556504182125475884413806107234027452499171445802305526865484351737187649249713387223035261524954590083285260163807017163021530733582099332981186290784474273696687814401856727440672709590417073263291196046121148634763450847851634265725860861920634493183067589795998469622142087379748497473317501322632147839557540390084815801593483688695777667541322017850730462193291835764941191358650969998392015918729983182244895355592553918788293726061077338962569523466681136860518081834731296035041452253582938807102485754415718326386756690983725910927516213314062328940621870971795200560760820442467998694459937026513344184920580152209273689969637399550221146706286457327871159738863517306332081913240498740649384773401465164679123255864803247768286259242999802066633559290288405964706370312931461162013746152141492444412713985206738645441455160622891815270246341473663307622327366287199466972681730659658863868193789607856422595306785554706219245972992554868877148289542830510810128576685065785030545994352825059707018502485791343545170119734917927613103997711816108160840990010834492974339515996527885935319212632435866869378390592614602622124260338507416625292983492091258260204669120431689928394083527210352978957322672985510463611141895705861465493155052511645912427772852425442910977600178856706256442272328021362451685194099647358901692177000508387714885074545789637293815314212039504672821602783482115982529786592717665724587770886600922386751328863532272176553774836410772914182605991744413200220995092979891012192120840428846550014755504418030250882169349660416730511484807265860126910155474815775022911974936524679194980705801528266996346398805167238346341295719643778479795998095952849640779208779058731366285424805996829154493937196234166157406209652730364519458887623178948226374230304243266391536101164384589134696176785791391124440455241700943359693950561461237092230170623154819583358921269673311241709908046154903030758709000746327436674915988730631026399982506108095615531593222836400840595106052477292696899285522587955609361914866412856668074456810857347250756267915166574953927995876630368791534411279861504735745725918386698373279589983311494425675829014295544367880392927019050013591414257881602327714501827686912438379816409211124039335878785113357350064608410525706988832452889431581307888195459100917768843218747702230511805263563219277262845141041115842329212556549684489588009651270755535714840573010703150392382228823309387986718923396808729052711507927107429818274927391169607407694121528109435304947001293572384788864938803907588732966527313503695124442911037150959920765958667842372759246934915515885892626055752163621884783659280578481687335444536978889441812072890268199083115232786278937684291973080521079033686260491996214557993105457866492751170429280565904407852986125516588642604935318281773389288374418905175965174234889724526258831004494803772801526803252477585415094220240704969691025599785579932064871866800100817539024179576427652073921561275334773917163865905693424887678115877483451688170554490436488960074915050775884181672234421066416910511371844185263014811708791310374256173646889974494960101295052457188973845107318433028401493507807735914560533382300128402498353508678230932395660100969157248734196385262023129527318685793452398910612496170816398558175095813906746664799891924072738035293530788647748333125535667960900103469493803439726701937601541374525109128516181330271021234041962829957103363029545243297950056213847992743855969486633188164575020499058276097473259811198150768484916151873074385043426069877466021240003597447340232997836205583086639025536709812204661318852039732667676427123103923119165001571353540268437789170917651994480044969112526910003555947317881212807068090531121261059424776899799953322183598824920090273406998689327385476659939197431484232813614952566685599430803281370774194651984546046967819489091784216326012258898398949245739032298106480887402514917463896546513976039427840700031941260010032780403347847435909373316224091249957167867405257951011855855432661261425100850524046321138277728301900886847232840694053803910195667526589231040627147964057897101078482311434238509855377078117663190139572836910368139181598903030449486284171952083871207981415858600161197848614522561164256873485042074152191673834922273503619632048985529339772724179128447756947898216912431392317461316509916033065329054372771281534727029485447470616563114846882099619720444224200996525442832848715882029287624812621017174286494729512874764030915818564291686304597811583923834319134041617833243884484480971815296484871453572184098441914025780159299800803036622038549290394822043593698889045406238535562924972477210947668761259288429998284668555947716929545273529172150582715870055262209278913364885042941047071164123096468417621008974288313431901889839682555568637466524335448235326727792201879629735261643153732270192479092072239301329115040732575213665652998619488080622655908961311473102812928627584225394344461189046493244084955726220876340595353301523545102329855778720134552605557609482983543222520065303720264192323057520628049050840706825336474268729719668417101249673824166160998544866989118042009467616456454067024660011799619761378128909768258360062832449228497004005640936573092613942134533168525605075221151185643965267698159932843430650236551760691625780177767052941324097477288744711676501907356774727533790204681668229953686172808351325741016442839662669823607929707481402963156052720333454244174772262093378005635208789077895072234366118892454210968432041308259360514221977810226218174551580272142525972450254883355416960587063041260499110393085668207342200468637303115882086284156864309619647813411671146034812598656469128174688658248548444484713814042866350055897769714387446806260998719149764609011850702199358886660366086653345352600500606204835449570076633320773230149628246728488437840890669739932260249938282972933932081605435547117379363888356987532349705434953100901995899532650202214456671417224289300096114848899121809893007863177790740409033205773368014388632388519583185024889964194808537726115543632810619038082725980031227837467878600271467593984113951397527523026603044612035711614068716839446187793635475451698805075171511857737769992669362824563751065005546497716275046162048035774094045981472140822172070218819791511247913976893288996329174600945744969720748481452078173710578400220191386996776644756853427655603629152897837262012328489379310063655144129974689914819350406027425938754063238404913589695176603731004040104145987805213726780056103416233865855912381240667688219095744935222339691073058230172912953261178038862967290240659908253240118290522203772164833821997585607009561149920926190812317912912652863617442824366230176729598259235205693742893480403557184663152600206993334255991243579266668442950010163077164096803692438513407063359671424218439894659280548850461795457477534880808609421752834928963144347099603482512216836934367444747591804395005864199783781148109493813723700021906016230400436665906432154388539250570492010685022133666379031862923275706111316374696861920850811563041239577736583955855525041935465535811555730691112061200318669145340817448545905535031376412454079472013724721049582292341050996849269393859851111935678024794575536721130485020206816293229622572264094275561057556262299874510381074264114205051919726294044292272688337044948378912667505482946866565287237786634516671610861102753110789919369951407356079723111698653005942411305077725313404190065502317403310529343817127668858344262407011141860341066909837396741834291206034532655924154451826884950273491110957348897078322576914399216623789209142712947168547026993565403991007785937213944198089694383069264704510062028165072431486129461665620433749281622241667904080857360544699668915299711572253827306200466044112947659655907046118014614060844783622330966058728233220760869366342211876560654937571494239340565427513162057981665974898153335349631672373914691772839873938081045917540333332573991535606384045107122174861225285264194975445107037469444996158607730868757317870264531714067841073084252816356242742550519340235400304582061941027050500443200601292972650277858273856884582919833573442067933359123217996031626487885234465269931183825552186546176991708211978772402602166012800433467335658760096079395574904671967507306951508240841305578348119415793308816493868943963805697134356418559412022860326813677767101213977572585731042218253868284740510769988999232836379344488086735638351915183452126620412821249142292755088281891264099659508808049060237507500132536235685243199514116599991140523447826056922877225173533078760706394012041923798613548913568376882189461572235694173263621317849493130890857542954409129246030689514852529061522867649435754118008895816227661728789547904879654697254548027041785608288942191024379373328507005126762090304417879110370774684087857419219905888121206377899526543398774928788345926459948676587578888539945227626388299214760285002706492271309117951141480723366979631796828266936289542442361301000238801317158669537688347866281050473502003804220538069128984899525030280767932149143686159907248932989701368850909990699577729174108127459902849749885496827401976121957919533138560635074202513346022419410134444279515986219050284494299914132063976941874578843302568949454511119392499605349476013393292527259405650234413276097567480399060864935806401415558670029745757833292030383596831734546760290697818315346815086865683071594278198478664232392718831372961662458668240292883997655037055057363696360838248939991830672562554326333090944669483739745575326481791801138585594327325446140480935280880912834059802982901674256134905651299861906332343818997306458587417731085110894624746037673664738252420244847761529125333749100627296341846775806002327900568473612762069961765454455433555153407660335688461664285483036760626907028765043467963508371195639529786451629517868219841306878838920175378554433374040842017623578926564142749378418856855367651939477879670424134693002039357826012101463067294362130360843849594694253015679084048519035596966839431670953967487872684308682003802688315667299631943293999217495715569783372258518991739989148244824054416788645170712067806105749191204660581442700038685146425602227145325654344304181912948991135129231380211878833575541703229167316979284933548094111998558753096447167269555034810684514689232211457053863247697769901927135276215152952365563558743997541252828454513323503389544437127939369898099864328373003732830589870181902331108857587263718063605601208468098128323281257564436100216361695903736900086997424633049445904142733708690123234499405114598935787808334670637792204671944215778526969093836923901880860378339860768427677932002846505176709072678901668455928245223838820682768139560452632638338566275513778740000035824364728112895222619787312655475768299065653537002214866545168209694483680122089533311688811268759417126687695072756957240739576171183107460788946611450125688142787762988721133928377247529925412851478024603082522333757248750344658681903621561768221866614486630177464379024985776227839487987547315854607627855818267358918481668009467572805851768907520854952064747614999854222795923460561308356548776824643825787199145212568125307386625358102726919701062077745078320154951340302548407474874137357836217871839889497431786451206130474712892515957986175993138247725857091922939100726791175037567411456280993251278967328511900215832797260975886008117060138310226203608830361425924450818355375500062656783968554294743680986118354709070300592947274323546122245355845710962861294627549101138538368628395312130718535137155362575191629739506659458905514168854989224494833922247349060892889861217395290625340378202287279956319094963851817096746408598088038379572001974096318981880208244407273255420240501728355929561981089650219304862503563787733810399582055398524862341429024631325497684806574568171118558666900240195903187595236449239371972071161777548002116179053037393734098571978954069563186213735583650658638175791006624101776363875367576810366696014379839280738307621906413013269721624734025257364688613436306364269150944448667912837454596101339679637024788572898639695309069742278695903292502593110207553918993018357554810506874205881680505800797550245524800959859900387626622757925455022583236094324580092677757197819740777842489098977327806902021739683579013445313321431431296903620219370947617451726877933200816622924121042621047230272846092485258124885723702772226283573279105454908891958465477962888230044066541874579005699641773141962041011952342318421973405629793930905583008406187133694824254244676037734157581802157219958334190523165041641104653336473540283016796109225070183015843551479998420642014876806251726100163326698632643103211783766311939623481780694702839205295018224543281703654435614948911092443957513154325007177056191386315362097531390531481468802918512968257410320428234907692548266162046232997751739712959342649413736314480541512971116837232379701216996170215354048920819740376979672836737037740205363749580353302148798181936175497903818662070113930949856346034894360074947142259936151070447532050003604062044672115142394329258179916730738096426889883526208592240503127167286623082935864826043748387056577831093640634813565266550398864108289371820222922371328932455681826095766159140048637223567754159977321571596893892702788753048896003999513441448208352018101851364281443073786957221515906817197743401282915574627048894930660717552379762847865922524810240235808114081180961373652863866776110850299772203907131037605451738573436529837009547973032394966249791600831403386104775735684104140563530233394654523332761086759495175735700367385873772231073181239644607744835160926605835157900235894218144696199500523486012179478922875247065578759822482814676125711624141936995922329533391661694703450934242360526381939510205297493988755518791266699152204646897393303664935099239741439385395392731295407164084875720832981551156566871117683091537038584316601709943009213155182206624725188864731959996907603518048541399318186993807436636683874972540542687055253512807633988237200380400816824655114254439597152943743055717510218728035297727411709923468921365028014369159646010914074040573101985055765612151998201425484690559869896497762286343617247036646357601040744432516956981137709262753131809392734741782427061742168652320649216170652504908039339217968823751115770203613852609620119526039306306112467101668195831491852571557206322212383144534995772687292100679521679950499925105229981467875758817901292218170274987489051859111880489295093889716079142562139208556069327681431750258610696249491439682855075640967696659340084391151797058897087069882836119268789035774391446472473745293328526571894296865099242179764675600460923106389761124023483343978976255789361566018352896996543424628481085680193623900922770987231007394729346678404978753291519481292060581196769630649571284091305128640652932254795465610437324604083637480493866593074202764996623892400842976979117335836167331280979206634743285553261155674506081359757786619181414723126433571594295437047922996799375934430041798379048844243959621806285567868300958060558133689587245834651190122302155692621066557670777276113625872140743527836897906381612130496761463534292293536838740164710107720114448468137223297128599158813424739125966333461159961535486282104669121968077659421921350784943166652619590825444260811576138825573427698036346616059982399303832979642702059797809873762546293528814329683774059020396162702758556251135441794920834619111588801562046544907135525854001001014497438456347935626921537766151521636784295784813815196269060024630977663828337955505064327174381518132756875737294845726376771627561045158037256935918961882250847213552788937235679319636539445542128455124013652538538200135925872394346688585108764022698618971280043729238588135362266502809972558292182152294254747625664568062833808897754206681569779640252468783834946257414105577373534877889586996175957884557395073681803458753739760381674364422999339087051058057963317912831562004129586746435325485915516024009866131741831547844026753173902064269854983679431119373944206630808157695396327237818401492733907608207705380822278986917891068943651021226994313543187275362239741129683956163704281276165692231221913027727197088295410845038351071640027061428844126952710774642821302252274758205712951911293276116462464040765813206482935190483489425744268813357791543448527787363596929158833758934529782803449109938481267712449004214318501384535651065637953965577145335552174944147064190715460773079686989450744880715253551748727338200647835605045447674813182826052996857280113464890869919159462300509540291412873879855826623726117472562444954098579700091037152698661764323361367644991472602062131420979338858420603265538934596305406299662609350899103379308656467623163278459035737680409444304809763145869320575475958633285638920538880252579649453061624371559194173978661784952679827585790534123994204659465429083537177666706159367260778934807147801811853861364501643033743347054912471536925346906632034233284148314264623172363368320389520997388274926590252702380595592853069525458832951814082794845944655546075500211357783880491528121773270879149170048314826463004702250837422200069441495778551557610462615150745734348959257368274410302533733167734622182762074481052425932936761729310796029995966319780469984397077803917671766954941159942148331351536592833131615116360700273870656904023758789742384514498314809145543875773807242901145898708921192568721667136010795231826481031898218093757202725278930560031310383840693940334522026847063402833728094437915567002109704670081398280014470105167659492089063531422160578584434168723838981497426344464593538476458489546501839318771922593412686995533437618718910365745139195856289411818997842678909590158528707856429787217319423158228320567723051460020375154777423866026636748378133630172854510899190269195108453216721115477072255613287868156719378938597289746036524750739701990679384958985246567270871591568617614810776188005816136886560379353827615143817970230839990567162485756185038791276827058909621914600972852771584643091461852268747686819706059730239654670584589464964813659943295160845706447256711430965319064611271573920061186704536799777569146188537003212867890796528519797615586392242020342123827264654956896841620189146184279390124002449700603445819067015722918369258881781365367893856306617425075015215103498985465855519712558003526048410184737543870741943356706568704085693264375550159317048696927231427110262952079282406252124992940339609481097621052218702086388507788754681989859685387609885184628017541913297279277757173181696027555975433681573157949230944039538807692523080979942944195908201255095886566778695112959494306947233341478165679581806093398004830960917095792949153714565700143182163846632110206995875500550033721093265332288511377150265329438166690628636224801561593712398580356291828621117685594845561174802368624690793797034207352228195860129062431302716699674228721284238028166661661739308446571839541303024695076195534773035412241494049768181934556294000984598909012577765352505920775296289054858246343799611905100410136525168528130114567343364207063655674289070183192054488077473077726135768388140595005720065597449413637553239465248758937414208458460023289762806558809572678601793289159766170009648020250359694646023638948569006657518940068750295066290305754755646123540714939338970945643963666494548977408779217798874241892080691982765204083653918065876836056556407854706596834736050034733221251562184819241715370067728472254165843489920653717812982640077303121271831619364790304449361414014495403783016520491723595199119192683205388067753145067523689451211723082736251854105791373188531436443666755133003545569081199496691687728623053490067650438996648108273794811721245930960404086215092099613687187195419760930863016801085551074248438337807251417524283559550084788337218479421618545272896161807296424160818176374685775199081985874189929742883998787157060546613788361695332247646217845340427767526524547894383652754552837635901011991869697767492687570291025182331751935875799212924000901177938943579917634015897923966348626951867294058162020384641657047798677484894022934154481526509291158916508004240512667862638468894455767745630253967233411054395134927691800453895313868726841212468664890029662570671325234418575539944188138348567489408141895352591956396604625131067026617088679731960324267577785978810332257045707152813711693302961158702321265073576673602784447983039272835260058447382772137353442397728340273070549338781580576397996175103996114557967388525378637631299337800141822446846565840765183164882879946817860462922026090973802740718783677022499059151247275763010381892384660546386673432544466236851472007217747727445273334589853596904002357488067208467775308261842263921398720383265264797508953972613087898768386470909386763451967394806350859012728597513284230753515140149434442918182596957279678580584755720054844953619078873544974397132903663098233634417256707250198981915391573467855809060438322320080437035570334711358851654660301788026813870336049330218213004925993939188361132742367771577180886129313586214421615134496290148654010160134456018081857052240671311981275910398439019378108815668801316482930504101114058136457916482736583050801047476260963954546243332666610476283873740149765257509856655436139089861741363173991167293145942891964181367382771132490358894864521163790673098982234824783794599097968352033242497073708099808722921174247936389613511056987778309857493464241965018824294663274349424146787871891207506097551187092592533756916148950954660007379398084786769891646028886807008724537247044431298422447361692451137405948092798573007938914831680648351648557425197919252025339955893910571236688284777465404152025543240528586591280966419855910703121010291466606177791007767615117893080148275188941974959798323447969756501139323831542109311172323743378998312440181960618537092592714954039165840530943977564067435686106069130263433879780576529935030463725335301088443245142656564801013853976082386455995477392906013424735232909941029195616098548515703580728104344777984006759279807119698907613046269672555734425319412032705417412702090863534848474902452481472098249276071436842750115804588795666962728221145343943429919555446047456259754204432750028140108792341487252473951310716168661198662772827685276643960123020590041479730167767925616721123885764904495009825141716581187852170977439909717840352887319599851781724590344778728214330870946894602743785089857571892332958304578493538995659719101164574518714331871069303431867816482237327985936759746342433532067093658384351101849851268956332718644912378550621639328122237837750717870462135865032577011335761979362329771076802435634222094224971393580739040535687244747644605616755036881754566239815902737313584682845984055471876635936497203556308720693659519830227955724676307065518109837530730790887273047300327292688671161323819481057677083661564550361722825706927411741633779607897641270760896716273397997840978051573238666200263310885708179469064030829214505696922733087560136282956637500212904376950967135112192157870128527513319260698389107338732003297167486795014584293768517659273814178133394428982799778053231337075785752408433537065031450765937061391998839040142442828066000254646053385090450228962746518749239054447152492658742299351958362257347594804320828948424323606302004541700654211699446112450522725830709273919664767269112156190550746813559793842313550842461357230086610639932192228205512343406403772270434013299624846300789941708232775163994483386659126778237572444786779043700240978774926315468140879658153911509544852095398063272228200250767875831875698442493994884071021942836474284064167970204591632010112151307130771399979748884598484325208403713148271638213037762950630009777502845901006132998381243777500399635971918416918748400418765783494330316811714548714719653853997249888016483860354752646131072539626339719752505672633354469569515675262283096821994015186137898479648127600224085731013134640298983112027305563333862511206880564625378345808137153701168069267478182760743192774459331576836372678914199872322217492864349714491323922439665819463030922202701232070588798341126201856756583952453900716634715305874358967454489180931370886363226075624498928873115413031288212558785936499238989666006585671953940812332090983573564739397269574784586235893670283152809850441730482983419389051333547488957211272516681162247496120027110381022652354797623999605563571380883144290204545924475897163207752143429755145786169007514248104610592965327822882183330290487026823071508430157384966417412275911714840237696308996303022684064062057637145697184043959409058219793845821018335581589888863399878143105279336528858565378476410938658557271032901591621062345680767175715608204733793073274928137728619753213720942268366875572667681851379521985194977729085221551101313180457764234066316858710857845882211926594857404533752847315275426760339358942108570909952243843259624380434603859555948233816420884600160987102241000400533349477875523346915436287131378731473972893976418503979524689478255163397182393553835654683989449177029528261112450156653039774101238738988248410489844829640317711140791136081283294224948591083073521604600222232467059420656847689881771432290628389447222371500514255997847950942219789089191452449281621148119368729936985474979477470369023408072977913185650343137576146247615829863528676452159365843165624785640333050944321315161463124212408647715064335597702779526988698640542944880521134394733345269121813021482332131333781530701646610362072769921159443426864437381046855905966801949940202530040298396010430033302031765183748514477254769320200200577065404620644327209107458771413015875502974325809327153385851514243736436865014604041984524659224625244737370982080159477062843380781340898959141951662891589506797128364805489149651609226608965443114173117858288072197135646678336995464046262423829452273588112364819580572618538272386595260759241392033409989581847601689742838990660107772857592030601548866558937821270688005364490714095629182338470000595686854920364401518187665387147790543742708355036824216441709732804939484768011496174553764108798908247854815858568291004844880715133771662869957914524045682836315587212524576165717425358650937329450546823046220571830757566404857683896094538426020684698724174992500822481388757172972685050106560974057138583272493417578840599310817907662747252305327520473417876847121051116660234338351645992357454505577038380953835867392845519617652824720277415346367581914908713619152784577407248890677540991075853366732894541897112658845256907006577710979498245823027817599394065722939752142446421569829910072071575555154272499925504237615116517254647266815317438910056670334292516164079897433420722781350330016041396142896547396056985258546976521938758569537331519955327602490449939844527528008641955665441992998105845959443809483538388203948699502373398700349965412190587716085110903649183962250234978709399707709266614213128822596352253669169996545000037535990536709625630975156013437738937967376439943302685436552739461251933736409416908166442084176551102842851012045493039027432529495290774760735897985798377141773314413004215125882216109802641071463203720705459926037727243672406076539115457527998962891122672482674460198049065475078722847728177442272649114435706316051896689972651723711226544951103319388674984472819982603950661146696261473671445297152418263893325159826659683346262484807482803797272406507950430171739876397640310564159143164682368419117767267197107572194421162076088743859134016552643287985656770036776112330150958407586386326312590443025416695764735864505219428239711269233903298269424279728954946722042993170050091166461415313423216984378893479498245634306573997985088612660837103052859919916028656256478293117108286261137430458736860281676069745689554638954655073192710557786381315043477496366207367935496299175213626412868754656143444820128030912478892634686517422590467066898677792881400824408995661006729917815295997540220226776467292829971405160071964604904567386418526126726751780451950973864452049226711565144299208163694194203324164301816732445018227707953653981543045263309454667070718368011964899881637883219153688715998264168978409481291298304309908895056632363458474118906627093867802010832142399181369924082296811602875601672151219125446509513664270751327909770620259459103814742881323292439515001473509227046122954461804174698927436057953355282401431738979001525123403451837862908682468712606690156421622480124141813431608338271398491474165379522293437070136952920272571565921063988892040461135749277184362367520421531963490612917949487871530521104098332044890535710325788904515647767672375444240620448709321545755911168621230808817287011039316062518712754626730194428631431284518565979216105328120529834096926880127783061042718954362257533036580584972678998038651341043509600305066343863322025374903006310736690148969981436681854772664474136982137537668030546556111179581332081207921875782948893937828914771974723150235687968760870227518839817160174748327390146778146662215564813304750654272080955116047595372201600178873234698772151257098865545622342902664663663274149959657679015626817852126017420851723069682613837435008002725897046486517588865329559137776725373846686346543951849422370283270119018821159007436448561293192997968238922045324234736533020885065060888161468616445551115021443475794472664929855871009246359004588786884071266837293404358452830449306791190314969810878714665646836387006585863377148580045705419399410254959860512003936999998680965601797921178727430791928351359462869525273672580170006753204366531549688537925857132195781585101622952689107461890086860419593764545146552856143023173056194388381344596325031616508700323004973176937829322856382626050967315046969372030689322815368848464688240281681550799984818740139070901744230747827016315684438582902634487014746008085063165716633012762008390980071507912792313778702047974860384816494624640190440235409138486781591011239817748933291952394216150512743840723686299021896333567086232258162614350230068840120257541100042429798513704371819404467582722122822002307317772531793475375989606802090993635685692541534407591870580539708690408840305553955111739667286412984156689522006505072620568155285399511190517766828012374023277480792988842199594163317709107549347989179074658256575810415525489441323184400282670350654432557433763052977067847794294723129355689116767823540616053086402055725956829091773985116438635587641544059304615396435397426984350058626013606872666184814178689108912356344348202382239658359230741497427469343072306091998509333983588893460715403065692703970683977872281390017220537442037585242189082016285044302750297248388394057409245426482290930727138127481802144493685806746478615678855515077576447216953991733744763350120699881178802563339205529108957650524404888387762965956319362826775642760261407010824172874786714886575420983818426114371096465947212725137999208038002171800120857676680960593789092388831193438213047135896076583459489253100189352488425756019522586171904040722123096443359736303997472950825965966423955281610865464531514560755790627932027145531426864248771588486331794478574763048751781618587721374149274593533423941923681533848138006684447521733092139400318726601781218428694206866380880271084569648165004152945451385787424631156402497259822874887888506001227361360704358188691471223473519316298917519571269105283552716176521961667878096650116168354238776018117402166163010516106106175936020602131281718233088630794942336533075523291235586584768795688238396517219144853200847985786281755383736236739834690708252950777150094389986312026432979144766880796902985802064516618484065575962353405810030600632904174363604477640289115669815894296911841907677600983385250484808334928782299059027190459272664498194640395451968100321845982688885587367538076811690876304795378499444242765484355411000421269897153540369615497466757748645200585987364875811259049513077822229581528116311615341871889627138386221960895519733845364984055446220491528834940749077073182117178506639560578356479785786079587016453919318782546830001546635846529603162882864805006459225159288841961683034742302804250572737858270813722269453288956711813986439344875847480606726121508358922534190098279997757072245948180766455186330737563131499110762135855401736821475472634905523345552054942885066405124877494946278854176480183292976134509629211419293157356188468262374022371712081895722854466907738681094791790749200247187808218524885846692540795984658742408883151372516046754433784912376120527884451127890117071456774490212975472603925130438096062117155142635389298484147893235183245668462562695706103155648750119297528102135698779211751081396804533138856336807190529618051341743583320467056582871398192541916024789598633870853246479383128566985753656880653485789559696583788975765605049871912858725146751915426335150011421495693069791558044683710093729710759851673223238518168760279485557121770056372140719855674851659773741902229181182237762346717172038523108761061621972889935231282126883937010229662262691032576570243776931230283135672966514185361955422176013621281756917557567948983069994538898232020734809269183094682283973614447958920616970282481448444003709322935680798022249112549137003054267804410078255799900047923897581827926117055839342159374064789489534539296540937688261167860531819878417871517247329493739421165444891112877171094740768823474561159685370377470973310278697973570005560925611309378410727984802208676852504598465928103825817818574535241027900562479707756402184129418756796758605790340674237056426931907005728023627447528893363932732155143141843427853858611059279549101483923311288948359714379328808507679080325897778759327984981340326226936263926387981877770731448255211710329396446319227162424798005707166444678008790768953930687417390373197997157195584683898838184983639106949379739862963264254855027198496123446068785391694642935443600645978850174633319644286103462547402839798896200125170248452705693656717127630313815796088573922823503593355322923678759023290083704703128153009336817323947895178228973735436133435261203702208022346260700012679435281124307221425056215249232923347931346896606517260211689504076045454190909462548014828548919934951385060924005973785528092618868703667587327874878064410966768166336292584777168122303262053722986675979159162628275692322191544044483123787382796647798900327980695528509456703838020832945222713762302629529203519563025129657679404965270543864265045813693116200969499542583439815382814240573120258034433188628892840209314914826433812899014755916033416562545264753023261046283754216849267159880286517641181435494576922677486395583991303558500656754913595523669017412211411891678277452105504505844737388534039150350810315259529957738927630293494916081841222621652845163555024468717272682130066083806925382991723295226158916826695138358477297779108548777910512488937684101935489216828136730159476424487126253140990866498076619414952873753556123520334515224578271611256442091128378741586769212072052308548177425588458040513655490874066967755666008462273616226653625309724104348251082232974155609592882461374398751879691088595046251525023294285595102632203645464991375432757296139774561679783159983547253359755203155246863673664640297216557878571455973111062969342226856123134512904762237641766863978213451299577077865528951188425523052821117898780654296742495976993216149510723390003909785683722988403433946307883271366945812715516658328544712782531645783367219874052169956524265317405578470554049693255884463408230737098610065728353586399785763062900212483086388521125924113645414958262739286254681047041324451598913060973867766774972618672188168686827663541445214948973394490714508294831187606661254063519849205603491192403624106267135567415298946584194685237792400665817907260976184909495680828811198309086656234888766301879799618884769196320570557353392268898881851150327523414277911571732982996838360307638717103711364469942190358178786037062659137880831464154342787254244232913487714339203897028024974673653369873389921553628100351466589905102997260068696575657173378282035460498094654000321736213814210248740193086919131421552687087009307514515654500950776283722653476091346951745215277709506263451984774914810783913423692657128169979629785265636401339072715708684374904859232976194715999628943252912323289336411328581881890442911148576917618860958771919695974803439433208575065542641635099910831107886240598248844759293511344474136645135496481964533595260980178189698399991430997512429309942459894294862396915569667863466737613105232019880843349862973613060784810916897077813204578140519523602582115354454894469274743460038076195628626045963910344438255594365146642860547119760328745640380689167958092801703402787449072486599401993283230934527755431423048510959520840278943284324512814241844320485422770302988492112077861064383202500503101172716001520229150582058952937375254647452084743173598665405138434695030340310248562195655164974924983334273600699521043387793277785238129539811282864408120646532422244002377846201390230028940927982846347194676844750139024688491189169335772050437138880638053981101948849651222424733465579024954314883431118401608277525285735085962182841749987883582659356924673613262465419292181400438029234077967251433467197965316913781411292084555780154764861523746979841874029042778598294046010480275962342792551256796846359489719710814678914496725451457097358461982407404907696122438006700895552134613696576461059867434257286717131576374719668053668165929442247213527532000004216368724277669634330780190536466744457253809114369131855628052059816755227615887383669427358769825003615844525995985094830073580381067645184806709936514269547529985706488562108457258195482604010980910112805196268017375357017502481598543765460723823276013645967269970576968427782053796350643241959142817174278229572274217145391265310065846640829203326057060533710413627474546438701957895977305472427735502885869519854021568189406580443187581764433083456773515398886616812413933220020955366209377038624593095507349263763147702942485830076482196743507383450560841961889322132758968509886198635747087856783532937360059433164481069547754641536661203894081302227733685283562109918473655937306728152631933078381504558276122506063955261195358154880774167253045347443388999988146917165339774809617926718394339511840170375279055434156036321911016362413149247820756234978493541791672542297142187308897110781044998285395579224469253715732209091915230457479950733200917150098976516155885502210207180087289845258449476619729199816572195142744536378293495960231550692398175481041113690101546023733233154906095406967110125780921880023953214159578223168775212532325018584865185308160345838543112481745402521659078606419964244139069941328855693225279496288320844998666159830534055189985874072638432852269037678730459788365357749882075363779776772713146001088418279126033918119550292849923667560161234064743286442716770651623440353958782209746623949823423877548018568111147261154946692481823377949045018296730879338947858657182758143594533498699564326671642156071724897700010277119071486424063379771388173720841340262336024446595232851382604313551295827506425097734168095859623511604706377097504806733942561638435232113147198508102212100565940171622411799150798100550528778111447209583623680679490318914156864196185728012624879284852631033082331677786076290247791424884577828121909796671832388653612150959745166758263920698232065410800433085692483630539307466719288632798285234495853713128939382275134513854286420027245720885574206637806372421999604026592164465106930746520641286893908747505689505975890655973676389477166151021297933120445494740127110874515544586113391782645427493140649186506714891286370372484614235469698018769990698714460622790696761699239770095669723109021888632005349733256943157111728133929559953050342129887079271320153398644302062185923546245952171346312048460496295695806827276171190529096723923783604004344644942251500407278850133546222346327140866198073076120355761483141736509739360373685180025570204931123394983956848692769124494773416560860654242536569482747730868669230153924542409379847898116073100429745651408565146633770424283669587849993741947899000040871435928245898249336706104146779231936494775331815813712584492095131849625963860678043382620566793210010778366837374862769805221993833857584052644836014657749394516030901281707370118337638262658616223011366453765604820247889564448960583577570167548616955001516159132054737524103407331051540926033875693424358732863858525311213420640738989894300165784850634706353149646861618763246907825210496847218390934034212975899545046376017661930252749467485601304529748808185417655028091030249067326699468996789637572705928899116945490149021161671817649860773502912081393537268118785430047892196763425654237482660858209897755825205399272695562696920335005420206629536331099124502903291091715840382125716666510666312782333224276405606167129688814004873605838202236363886651556932704182090288089154425618588670778979545994695539178125884687128242689456817165279920603139388306457924242439910983943714457446557355144083076767430560101509552056430201869275975005419206121242823175948608846597039936141557660850730448299702527384463783564514971169612832540332770795565515171185341273035494345459524011744577329581064868974903803701937486996212121095335192639131485768348914337063645329975294412365478916304940859213106141768727420838089389678544867983836417717354357738229567596052242758062419269469548024504556272344438744874145423291076858758013537605975905243587686228298912122894571399840534264682809189296463252127855784503788987869746921397222684624231461652047569477545556774221087640028172941461121133149954025058980068571170847460964102652540761813986861481322131161552152083791974429408706881647100618965265503315490219707557137722227178778012680312636444992573262530462681160366337105846854297013840676664021822997824785128317555331945085857482157225514665912383954338345926075843298946405827719422974286513472973450164008361718173602292978206785100104006903172105358278308915382607653991488740974353390748007080485952723395723459278092398853980700776064958033121093411754110417837719260188257968132458732186943748936240546810721328900225213748678973377727194348350425829463633832529029803855858681494116335659142495166948330021696444445346371331855861020781806196144510917487570549300777702066893522898594437644835652534716089587577319718333375946644415398013628025321075442236276902340907406970645673872771293333127028353945453409161767194527597394528183239210006620722046168572607112964630209201554819369755301003702037768367334570229113871509493008900231548417243240156760988106388248633004911844341736080754368855050084479877866643412092460430774193274499815702355362222416342133740928092513203596760491962071285900795742436831102852895076921439281359719990938117598828421399171852611002468346398499370729168573982401262700692799053350658636221995164564665507228470862940603823445626828537313513541530472575451744249031234788737879991372316823543982151784812669204449704457198635852040546731625277071018872344987685629923970055625719342003483977581629432944365160807593269543150847459128552203439567877863590423806203321824773048044207546292010001939627146886611874924833643249373599508757399647455516327359386275557667974413406085775029367053521269285935585630121610945231252025110174220193641389222675585875344789453778587936292173262692321097415281154605074063262049427305317677860378821705966681662367059313519298911108685580529570672198182629066594653762077029792030247347396934138308716461079055727308505805059525331040912303557014848936629944678579177548369451059784981708039285500403044022714518918032131277509708054265757776037239804043765644074901299750480888693528010151116595430750279762498908743696048986858319100797852955488962571603283651655176090111728204578617942844635341883550967970263995064969637441373812095916230253385209681189011356712237508183460848666392296477104262819305858711956688081436981426141287657568386237992307126202228931437579975428293547337707474855990109576198925881713124660040785580306661702748382056561327354695553402868318812532517942897929603298492691123294938177253344544459888677255987153874625115833179468337819860818691410687144225013382242841648053179384773598053110246222308847790753904750407540515230241628454303225908340867484440257782659240626097406472256843286176503107025855702754707582075839164736648440496667089588817624504346858400356875071143103014223718940155337857342784752463622485751073677699769739273595666465374188686791081432034727989395975054198612627913493931362921928515834402076748345575043269736855198907079314872149689725542049125047428685191335281103080958911661013903141760890024339447208232412147456625802462921760671002931458281951973206874173090486532556958284442372384477966784631690149168307244256045575902835077569136899337559797512548064034808223900345752451977443828411514120784678927692642680167459722945927525609254869794299108814986232221089412337572436667112082876160495884278908242860918578987344112435962312624753537186580102478670586191440564870774097308906178823567631841028968941457912005353203787982100144693618785138300515157642585684697668738739261484641364659993065862695561793610894139208143463320395054461306624084261100367404350626738641405534277388154169869770133839389659587253983158590595502272349111681485587535867478902245937789152717468232251516319650972406661756837663692132588710531111417221735960675762470120378697954934007321817581234767946521071078447818657037137312711931908973927452081888030400303446169458511211232308115677722774040244201127400858860267359135858130545329385351312132547328973992711956027389443471542609038102483527769264638519447113157555019182528500364212644729101425954862781303181031697230368932993130617689813902042158648522862925838578035722758547367604379282800988983111600399532183931734191136980281090653001812022058907915102058203623994512198012363721006345603324823011596626560785119315931755831755106053740658211984320468339653080191102269483813880832948983193333577215727667412104229208464250022724800239180752033947609196027078556816044666999192568397710342514797427566503233989436409614611322534672454729783745442464166321917905692175874987617669748447941331757586411551954957566484569164216561627638675503511131724822591988725878757356624502868605885335312730984079758720049373344395831525607292274049797487353328064175006085676819602359220094107722322122395635076412122725352449309202253882292130197936096798567077027334318426612784272494847031286606225947661013027423998741924658664695743493586251072928370822069781695166335433063497260240128797489043908380706960419793485123750001950027480753638047540812554647891961904735072900654337038270602349577014951227479974164516217781352616715589568233977663509131056109196983299505614440756800511523788539843611347542135675011473146818046236520478853116543166744221627256989537704638612997998006898556880145930414298070604635067995730717045080608622756604514612964499914620080401854280041547159822114654376477663234909460768615100525876918659914576019573158882524367387577134174530592224688754825369364361355995412034460796632883177649824652996148566088709448543756096691702067319012501742270172388616120444844086006689397581664695877088667779129380383134281657768307544927662450947419025967686252457621883487054595976612910517797293105419005250508124824504351367548473838132316175459164476893560522545228086458839935871514362216380703597939888354866220055607709273442290122116873999313984241749809301382998780017415916403923397316808789217200836646337556580321820522811827218731854226775355064723927260550199788341207369937735931932648455620756611703812160349906959055800054082293840746785346267082856980670506191406870173793009210851926166616336131396898067511673907076126850600750826370530373124820855473006577818373455244861023708076867010665294844731343814110258543449260256630912445274262821561666129655574175461228292345406376161894161746564684613884866008502871560389976698871153069316819392446805729200322233511983880022582068324948170323967562573338852085906692503279539905385249774600014749987843050370108728861514230929390099566100819315594620736923477844146058387449112496202395413113269194198348935568572151033496302893406450768449977760666909083125204576835851367539540005734165663169008955241497888093002540948163394455079992651424553995442002741410304884643874594113153344268645111054505314823045126630457017115713987671927249748912629554596060990545908763948208070754704409722158537962152362021394085065999004462986155297208189292050137808788930082856380036612999680209426406890260976440691547152247272613493111575471656851751812063011348019411189128584878678266132035835831993177516304107045964192326308782203477181485454644124891770807233818190648277447266662431200743204481976331725674264985611849489488639082821390719687797674423749838439222437234879382245481422273834207962966598446806294525284927406988151247681759242428566830254995924247865657947929910267561800845834981619205619813529981666835324814029425409000187197644724711452136653173020729765147625341292681344922515744810279505063933870318426345994281026324549843988242011264599682550886964370281634755931419384756376935028728545164497933003466529806090396845538095585312635676162086424711094618564023676558214351735157321955328845025423279038475492695392561885324738015048779410594075979886506823747156735081146005972871228211241777666123662190063942951116985173149793547520051747521868507036237637637838244935659415161218781629735625438242497330823816475739971062127774351149521004620180904041368388214016258159829000700201270114766926685685171799056271078688934896473574809412011531907090476839021174223071373079409668350074830809847368615356148083377692528874800386486410922611361814251378772567067562554000252417100994787488006975013331870014031491322045463112439956530667532401528241886857433104151223223485713335420581932538745538225048396193724338502663654101589162614447599477768993285830078037222609575737800976198387323279266295840645560146957126357753131615814910359703963483923044102878533064161198595191309434661236438612071488261593574671367396171688195636568622580340563838876951823549892283963494046755305748252426872759063866992533790936095359411172331145010559104906327189303587301616919293594012938653946481249004029640095719282508483307301601570619679988121127780326167489227857529370148069935777032573091382583543460389562761802991159655363084179280197608302062617362739767490892968900263266371488614195147739256010676105858013684924167503209098106832662537408414110208462209191203302476443717728408755872461703466924640005899359624525802480915512063074408434938166279832305578506223100607771775220773054031447971008512102516087144774056182351992611043726783196560127984857557933314720839474915725393814088068547693871334654289079122488143250660924001304367211632700728587075277471373788709094937649145309212423692034031450149197351266587735640579372378157251619328082041981658841706968448783190637419219081286721935861769036734062497871390137349452325502989486458249158860778295560669488297042558962935716597891780229157621261984570515514898464561189420434987694795182685084173393373721981213646338618588847669544650910792130767007475039332108261407665100400806764020309025455283414432200054037833113878911695780367679234661934565897910472974472014402904716481899448346056832906603016745690354484833194193959170620872527421909040758604280039119228443350947548792538043901209647131015201926912659266741888282178643842702680901364431216463871128351629843294193265307425502877890030880429781603840374107633114720200592887721328485245763176996138690395637863267537762017712749013506730303544881481021479666209892782909629448655750547255869191039562786152698664982786991281445525865196846156827823022495851784990898120891614183733511319982986834570758865126881027972470808583441434050981594439281666745517758153734998228666396707617385078189712804710082745490561744417252114664867769914976615267430903245115282067787922908880912391137422657134985282468491351760164493491458819598904908474553951135584063250125391625620484447959028938276588030182824476595607626090016033090066607552604185162353807337065070414082606292508542274205871874155865740681953673135516826581798590549177766024073130516421002684846480680190710155695743439930882906287370450569594397264382056105123593512193138985830407966540448156111554717910209401189136035893820125736553881005694628758762301063455700848980854294745881716924105511892574204855409619342516482092419960207969839243558433749203999744996299223033847661906314410101052659278571673444629810039504045796141525592790826634392148847867219931593130201924878331275346474143845529410895144753867331749848971097441421090960125637278013299665801560053254967330195029993244864934218013990714865955233219132122232866613310115206533116661934297989510335736616801159350583159769523065615236110644338371125326211338009411767733596508786192547743628251874696715306248858093634485741369666176397874316999523278955278564533347092992547127266612062384966588734972946804427450023129815741754024981516625405427704679037981147407646405088773141732012363033894342973605461675214118156870631396934315800476330034036088045102851254182217368913933084446565974277000591093826633055767181121936545836315493206230408860477373657075240944741520355688571882707085305576144570751175264448294274543204363244778112607991435859717547229196580247794735343579036327598163129715596086234748635059769897727470613727374972133853985194758461749028826312246518805600987531733358879305852618264202518388319664558635214964301564476445148692774931251447931901811396840555434408338247008250040147151172726058087619337425780057168756062553903584277943565796028611298460083879798274381369512181050227930394985678989768789709492333374425184631077270717696686490940126012441253578115911890702094735078786359300264683856131190366858714786699367776378253039849878296071341943903240910403475891871900348194778063331115151975406373339028539651788203464661330366908570607666650757784317817410919215067398396683030939058486733521962445331265540606844982434112526311670836872187233541406474882516259716165200510987655755554078549263924217378030191401520607011644667949294016738213209920457969921389049270123966194747211362685901892310093929810921802729883909052851880429694086929426801638934687390520230594767564392707109851850025351135434291706797106474532449577859382144147757615638669592546272083366528047696103947939684417636213265385056588938972392907550458901487276355458214742546200320710934280059147722614381362862450963559423022528292521090162706397555634389225180513377651599711919652180169705558170581511539181678336391636164448946319054452674332437829504139999806526220253661356193914890925105829118109198809039670139486345468914718416950460090204279122813362603345346468144438722813509336135474212697758631619784264707432393477728216605844335837144865127306689212343319836624158479686818836018233097971145149374448519963390043138430819129725234893564775715312904320263304040657948038156188166185536565848652312559702807913058182075762232598639055422289004850469643763635631967337698518560273888702941179110707652594226064758974840106398487163614443990883382892182398869888778840203100517671542673262088729211679894278448573916762559801646026180229082206950114320026724333678452466399234967342781426012399677592821216252176130617175389073188890798494022051805080090695899874523472710276580865864045211375583663649087692610369494001302461861458836405862016228409738064852799552631650606833263067084005364405812706657754186507249203234794371662514899832649037970657400026743421447024088269559887341558259001571321273970609291752791016107240336607625766915131500627753872431097044941121307035275613119642268091813057373350119232983715755963364586862338055589963143507264189887380977927845127710678664298330985139813462300200103484039587646161231373603668082139586913917995013216968234930515093320985322408720982220805692070374303348937431252127273687697399454970413529973017160475246875599110550240240142399873126054500280444341095136822951103000193707662356265593307005970874952994989882840119433682610219747456577385226116729967803871945425516716340022043093689119105752897452095432959701051624038203186343142478907211340463046277493392419721523769237708279793813244250770088186695894584905728174035420529897011931619954867296862319107806951949622833775676215559636152346960882661302188536355137263116384842421190185786105667074513171383644717624930659567482318329170606192634519292961201746207773594238335934399961578543213006759496717932962676512101393179144158453361483176039493893647809185323355443399534925143506438450076201026600084653676698932294333286121823352330411301142608258209120955241026417921131425676065666526455937831809749263978522142477891557089908755372665089120076109125519451238072569429892294362097655827376203224610411060391293987991972248954269285844631099223873368196685360099565329448581951287827871686024567231904263801704384472576379986129822296044339244072978243483298322880095595329973952822293301461106034324206858773134440299651374674921199743603747992551214352816511834869585836138612933468201844514064973520713703765350948620273197712364720597657221495175354234797105215731457082124126849517454674006570449642774422870384553395734215993963009710650677698819018550958854457823822343028539022177363141005574254310449093020231195709628313185084909890454423111200172923082721491089253689045588102217907959665917070739471363184216349141222957365373961628583232559703332423800778511605896475234556196980048013107351969492500079408737372040400569185819229841519262755793546104410657508860328667471661864576277306888239947308052328403917191886941457944074815050405331776419489203972654112565768782056590601853273081496220768343326562009089307097068488432603213052658280988826368573397438872259622764873974057288377609080575304652580332754355819921778930450270503269190581954000036635192902396817102567439559739309954797437775142912735540728284990977571713498650245523486298532629382953316030619891937677296706705765721543859693810756676389328136479134812904581986672103372200759383931544507112345286203292633265771190329392269361773034572773798077425979248665749051735444134163878981260125643001836198453624119892281075086582918996322140098117439975709722999094852748306195548543311583302704251541617780253886751728665416233334727326113976837752217570689129622330913214465223893333990407664044467481283904935727470579569397571307628502246293036759412339636802104774215050479655742142829837270557070329333399717036548771562224871579536061551055113956715492052240318514485473210221663362915798926867979415044706325973755659271814404771336450295176557995054757272843397273968735468883291102632218383839154529611896866440345638613614551486935421733290578523665491457769593860507926911824295354935545352702920342552058498833816682634680982419947243413924044452506764040982243661637865447909710151188875545238933686120697149689710011912988606188029083084029568412408740465668854216397244498091040856917678610801238642039308500173214368175684612634197556171884840954714502114961775071095622703622164494083620747858145749208336691973260113503121816868677503849972515971078365155250255826939423756680173965899928476546965705468209489445262068028574680650030896280268863832872041317385387696343076472368502374849220172248388959663266383798748121876751553241768526961733288862544204376697879287144725093167977656552865470355263172707371368286188834625252803561091154812863914386422285481062712226620977684422565111139902300594416261490768236927396532574367861126997450953954273394311914719595492914687531626905638579361812726282450913120488909192293741048050481294797594104123541597539476485418287648805040213720598325363975024127001064898156104516117979957956752906179055245244872874945306138635777874049769765902501908382809144538798095890132036032522910695471206892986633583438593107752337115436266850845770179036862128398462099929641982085379351999156853717890679585835511784306316480044998301944099908392204257597506889783031247380713950514365433311097222352775629773054385935587222892641546193233323285995356451550587277837694653638545020593157890032671782823869599700327072562503559986081372423166394229914482754303066186267874267845051887055758975420103555252187627905546765348545902612503834533075628908190881479854705091823281703324570627478678167546429347658484894501868192977118140000128528866331702002702599317461921533998778233227660009257475830234844705212989268993799496790081094572449255823242661337178507986368752444256658944958544600175995301613775878467763029505246604271086528911693065230624468941286210602180201726603707778383081876955123925875024197667386975509957412472211497325046330959778395117946514875765567154040608034365558040410415505114202669920443393119226007833525345573131899089921031023147682976451455219388561943300337933830606562941572881347429505947151241041075276619138233811885348455646255256424878356140765447490582982285199149032143377500191919820898399455407148918492363321983442854145019088363006244185979915462006356712612310668897857888238763401530091594953782552429160062170971076469907567550700446811805761798488935152905007484782729083323691173815884469755237608373279703033047527841445146819076690319384913872621828626650646748495938311305788433910732365974199880200611615299758970425380766761102716117266419578513653310910114333329461985426606347316214900413527220701103027218686589709860378800158616727593908570336940695583627401008618302292562252412363506151952535868285450526204834220431616163873185604567859852256858401312784292774753284706330706787548866916122127686983830529659164909811066646422062618494611369692902004085419534114976661626787535962459315484904707205831488834211962026509119900342428834408180154479058129826576172750148471510501764690105429876108103554800915542137357704748073311550871675374784426215321876295839248482965384088754692948337373794878566897631479321779274174950865318534349372927362523346971156557728477045279412424321310151797567472257913732486489357171397281781784641178124185341370624695021408777372608342378887107034338181031944664061152390540589877183526367192882474841666951702502413287703821662541433819486759640250614776264751907437549980768345613083569480829483558065499776375727898514205083346495907782737523793429229700066448558964764771983832990638818850969875664462204961558200551542196169912161233748489009386220972713898074778595216593633855239546838941598889396954375481529422517186958479843112208166292821163922966246349430865731888137608198874075858531841723562216149028170221583718743079551800573767067770918331648443817288732940086352497783171905497263628047337516340953826043102192334717171669531199958987822242810095078568268455185619095239106605949800125670808667621238534931309574599920131804935542369281792021137917256111279187611928789460243714190389370149886684289950079340502267644353097922031486836676304775385861326651843140891619853680801671285455909673414285814703777840228740057057935447311161071600363619884280483366964004789830530368425510743243392361888452012009122184056371879993531109422500976578764026038635219747014959898398453238483177612168094879382133064155437203558541975599019378705607781735326007759407519572735645905091397863064776814577283917397885554150443455721715633473632805227052977682930343167287097933951276950415994420326869473274315732333166419294708262574695800149885222686808930726236546293225380624897027557171036927210797796317364904204433469940683916829676281415615570270330889750743601861584879643301668045514917639013545906857378021791035146932664114989084098563234609705055659867696546604626331386002204225813718738218676410024491185353554542836551065871066272042571898860597010091367173715820778277822127539939573155644449081976035341184529306654729573809753029230356016447264371855030484502558184703269903577529640075225579205771513577253076579561551577759493081668773584705977267183965089139598629139945309803912308304958605521748004263002562776910965667856473715194277173092854565240274257322327230647940819267680763524920250258172900851513732027449793155156521561574256740739839403332571072503063344103668974763735490584955884521562332190400070282025315127860314496427756651099254989179038559498544711870212436171892485889054350555462898764248849631462399007429554667550810761000705837300079062492324628258312514320265964716913066540994383788893750730276430154158800161167762348153606275434724486994727177540752243672019250412870987976479595851138679467032778962813265383100980129954447263808145749071009766430419402516549876698590411012459317468347969619878960452885384430115509461303848651245830416968964123881308881550897529015899902758234402830896077529848890613216597529290768278730485223050912188603050858211167035227163952978844637756627505923105621204447868237185050814769964626096283368418379203791103254000628007084136067554174607379116225646139331424975382943781139009148092097586671030339479560169481989187086270993390153835805760496046660055789319040702228894746833361785195015253987684723177504835273344478219495851661903727754027373622543081404649552790487587227870458790149621609499659303964729295239070454054693211562791832532372965903469462542331862759791800660283224616738924358062190599990747963548028090265742444738251727779108562161097584645556220388392074569905620580510388157231628239663875200834539106748533034767567106147968987590192418951451220446804924567797995819797395068165997546576584069182117384750016053693290129611496772557531394350914404287011194419545233098365528187572133376914461021999536469188433109971716401933162652593581788270040170635448675423800590304889287949483029577551755936485584892641660091577126441242064589743853248789662028874637679861406111273791010441293166875020471841741751298250212210357397587692119636949813009006324191229495744540097181579366233690705981179439831456045503491192968699143386928056961465632758830916874259301950893763031391380418299018066614470338780248778471408356130038309578094498148877163273253859299738736892986046855173505740113801044563981150029678379282121922095694752314549378803584681425578255116126965357027455947137949600952316295078161018037755241287225538179685663504808336378409333830488347590144110805996078330677050556801848231557699727076740430224673047974634765825154314148339550661485044522012660374024713625276387722108087249726548229948636256075286850257600499816585777605101525735733104030442736012505365415930645777393274204422140737352695647194579664111993537155997817598618807457575643780349942453487153810906615182786460577218623793964721555890064893079240244292877918788365184956335993623825335142734866125073858483999112319620511403452111876843966626308344428821695983339782149436064965987744019117459367170911844564810698016078881123340449530198726173044060419177407249134529983476020493571123505114102263834831483771063567237136673573321161689557215608699513573877984125231591114500367056915948018845298202532825930796739410139335416328412643764014238799462126834127289701576662297177246003322857665101344063000238320127220559811575164049597162144849906332536706760356614082203738579292310765371326903561537918662813303753570248627389408930675729366098159346621222270034000562410805433929302251586336280747776470279792817486821142401618742661075580950725723174038061273790160821261743987038412323216022487152184016184091742045986904243657657482308684308921002330195260607831675786787714815158938976887390333148237459209613751633310098926827080406912964618286655886968573160090411567192646345247838101266879236028944655626242713980312218119333710809117583648126558561315421367021456205905486092755392798027435296818012033379652537646051056350775486453325705468218502869766766111007177289262452632893798788770182781719330614290105779403174210250187490522626100836609094366844709089182977527451688764097875246021252920990577297379376944584363244773030319597556422605543163156470912063871647988802342995774562157551316792088518909734065193694166279852718459369804282363041470280315295536712094372558459990353176364950389345800970417181614532503541861831273597213318255071951020278123986708298408639891825464016232102307624321933746092972232657629584575159865562627194191953874132395569016632546842700719416019180258879600949534894378858399093327493717655828170971840157918008501217403335352399815578225570433361145577832490065280038457522757013758919935439099232969862885599725028229551893774646989270690327495997401797630271058082996566624175244075085012241193868449087387364210401805871024097309879206059482665795819925400481763812280631840991228301856741780073752223389657918304911932402416751072229102860529464593412330885655918542505461463161469583678499754840318609742501529814007679573516963958888723610120428524240208568558501853535484815225448255250126496649698099053375622609385374108447099154113795197791688831921705884700060793581650935347536890062142408833630533521045669844075615182113971143957480232466031368516899233378358171413515832552442726097431972190008732943527663433428212100064644917347084286995624926887684422657656307425778096637659293931974424864384842714965412913872499560245735026317029551309794125397256620266375197447283518585113239447114824627197130620390239105314030706979549946858832685471818200963799260176927338534226476771545039532117640999852546526639082733292549612656680762448381203678157619782382982786772438314403371330109068435307013148313656409024266497472461216968379206087485737440890015763714926019103302572282151717001911228237820934261654801583876429825488892225477196766395188896129328778699213208469479124951143682463337493018497353344861584669670921480192493862312212634661466324000058020851240214269812101919980552931860203214244336243628921027193920215428963659482535896943915461240034121336936173007077700134088020094476064668955808258184684728404344442237446975849528233510016391693567517171789395919303840933075556272857665777531365058480060736456645616635423023474717968028152339189575573586489510767619392129143466057620507859734025856020381478354177493719828584607942518982815388245895341797351426239170762830634853232931013755719627297526145927023982729216873960636238071565727328122155951510467881410343473607271554660353512332007874408320532319052471394116806540408870980019999281927683205200387079593229369769732637170013213234275274459035657867536636557187108992798303110463242106421309187154378797166404546887650716438414281425545123621397689310665229821452909152587355218183671682840893761673085046412421654737451604718892596514266767695778478971863049629368664756109579323028816801339012711530217937430771642796558672557516054622085487445098460663752010926569206200192711760407912051173629321915527599933204500245113292298719307637004409864480280067570561310916145836586648888375307679973732450112528738078532930757647345747056442289436821802543428636926246870620363447781831341157404896327990314554549788750323282967096227055520913900846777082166554332376910023521960736120504717017466057805764960047829495221435017819686482397577319163265892931796493978341696761746989473618565900843738158159184085671569064712069295782906403168350520198860334761933823809807128252065030680365432457299980127249250160616679157437752851592358650756107515101649446997957152363065189333533036574442671591098642210950495173230862519837500115904245377180881431893656592676316566151650429879128314008562184185944052397897601732604654297881819462653472596412364913521750709447714359341759188708698239154881569078805144467456857668134507322545173302263468468423846151309113024482281517610064614639789957754825264262606340621735086755529199815518705015597753624553530207149737983105393748859870731043940599722260863787404746958586736086579761919817409679828316504358271405109927553035015484910384665632547872792428930197456882948567192831551459059117010817241793557036999674623224156992341014656125019542459567137545730101563671521052346088180220989541083327722449030627338461545205105034689591417389027081564886929827495852861787150847077430837405471091643771139580792620372003710420906520044343590167336620313094784194458555225808992770903928239565883162645576249782753739744796497722130320190348798932218565262436752804710461714221310866087318778486940963633864051095248039080448483782810894538144654715869730619493041110940879904237436531156474729189460023057048126687482503749642375345864435564685141854303391412623940981613881536712358672953112529083890943423920910082213348819449774939606898436872971610919279202412160911526763396189932663370271975003230817693825167544583768276732710352216309571305104797456096227737665717487406591172288596474304377880332801142568630666260735508144653463382232953682045711727513370962177904269993286501470486254000958484301379884982838614868606189477049965002787977796865847881283311941945603971100790709709792609132928425924969253934448274296332246745349202125881461010176889723505367506658211549260597345651041946529976044471798666531138761711043869619874996854465972764871700146457922298793074027705177726918410832790336680172770586422768275832580567874351682462826064676438252981877125115310336802716964338312827778224956121478495160111587135417252011002280860989250322405250209623639260153761286036475504515174099258357701603717141365729386914755555672551085718465355176073184147558688972804772144474351391821745922471691016327667376565284243887212083645023176778598065376817350187234728237298278332455757409347820892090108992466893548773134859330608985899628008289821368590010304461013290709484297092445491890303708398845340195435664438856195388701698901644247845191532870526215256868850320083587513229414387697038511677009640394344997277617496311195628402189810374405688922676688227781262994683593814999390457714731804388770170655699392153102122787111123552850981890774437067922988531699122465942414240044726292384316256867901391297996911094212796114019391835086915166950722597604568370677563157782153395121241375552757211046108190239157210255468721908918193878551920817837513540274205300924343560983843040768524709924846701761984981568577566200255082449691585898141878806996166514783543038114341428362061745627478511815874577657095910181613091018900820996166132648209844453652570397912835229282390822130386766945509787704054118137170868308303014688659258385461997602830910934168944219120145382951808429620778698588392805402742722143231367814352027764994583155113435932805555922779818588136265782336885331539034737547439422710851641563307954181770029383161521656862619736708437069701774003838311546501362517393977122364908207668641255230989847176952448523857562217579418433008078063576955656120232843864876807630800720016517607148833415116958019444267499924280183414494068240635772931477304244791209924002344647752267111787007693980093603007145642519946022713449987742722442141928752541471635973800250596409295073758399499117532538147932881282580893022017760287155943822227284396820656039689285002439793184078180679451997900821845953056268027433303153151370607716425706829712603396761273439323714276998112802391326739174332667975687784229962002140725880635480143972044645638198526019417517268164964706231241065302162722792644487099950010938351509521782541879768800183712472277617040385657090401106711933567281103385289015498302508742284695896534659897751765093352022424046532645459746582007428834999317261434266547658697083157344256299794527634465668724955974201804675732278773010487221100900018344784019370530689501342404658010907035349891896387518229020217381327692304466906745583553649808425669338663941852651702061965230621601810237340961034888921453538007720937826024131841331448353887404723097037811863025885907403563281551982140395187197184481212749474179043943014771515331341073767235039004197784939049950455783758134997066797704683563930408014685224362162325634517165488106862730588451595614422766440667076514829920836948433913109109495125965441112038946306814738684141423012009352798632292539144148791036206867017402663195940050932178860567562080381397848764158720721689684159852791178048498475607612552046019792298157954373658097005364638962998636722752841733478606999373808460189868527088717144258608393298375096429824868706610910426848177961023724100424437049286735705191758842041489965841568108785748359849632003206928356417001694213218942566692804818713351868413537202894154387463103161309859495256957372548242724572718767303603069787093844283313354281600409364761760766739389625087223013069398519824516948835246663128695261558658072992496481045177143158040490355515409980006264120786282487534541276316516959942472665219431682876357486546899700344411805685386440628084766338711199675150401191702787405351490299667875859010795400733251550151065620786740149541214016433480862784376405235039320775603206677727815925887697008949961665423263366835696730201028363618682646832762083747116102436807443942868548911435085212934149603713457534063158956156412060835373161431358305336351434701593274645518134635631875647647252563004354227095473916907033759959299246373615139961146871422223139979423311628886330002024876655552409491762129922010131250268283321068966899740547399297221477150341984745103862863850881490565641895931948598517302978429277294847363744680802436909305698749087351305419308423201090300539118809197659381701413205513119038066502667236488528460813924214870692154304466995347082474581986809369034134484542863566375794089473006435297150668075260443557317496506776903414935745854909290993805586789523312411344559174757088416884572449065287821322744901963538425497162829911043690955140701916357013530019668444632403281206385114201341377549622066410709950449375210427826695865377933110057979850503835509348563297974127345250122157948626748821369609890869737151837086844546542560817311777497904340667158084719962026221124001641075831495147472718807944819996100247989425148320908427350412386176774530367638459034486235329647572449177206459049481091298653911749628316999873338190423811644110157135595824079283694011111873548427460296518437626799775990644795648095080878773881238697240451832273256704981625460744582227330784225326629783777381899823808813732751602649100345345101625853845057688778959233830541677335276533917215916624663516072883925747684104582564464976625295380124043350298705512366711911084757588737953934243665783525752838213069359390666152644261453092594827092204989631779222516930420658049045284537432772083687427899886769154564843861091393172360105090185744112091391214540593413497977663609787414530768492067851468958894977928881814828104745444338788058709932242140240622466881889939262000493463586079064252947043787162199563166640042002816377937155069115896120290762928139834936476298873795706468477051572644916371748649462288683421663737201116298177227442927864595020011657285191413795204555447950309682980749627460938968230578014897062144336661040385195643814329596103696864215649946354940282416339159671276273785496719681471055919410712592862574053856618909266239976726395249345542308629839961769676878828759543219489565695940725237112319053425192172075542460151673410199857151309377592159393469966409711608599342480542314154893765344733178139181975029639645296677806210185956572758196008479856638252549297281561152014649118901199083289290603768477815786357173061224985362234642775169205641792371143107598429101816053548796221667003828034820756484365310742325664539632307231626068214019871562778080871018303217319543278895873379824253219185669080347948207948034756566866215147560634905661700317859304120241924556656534522334328540089907706601796540393881567300714210214115792573947715611611113311649366964181363381642760660686984162600370455904407001166825513997862564164545045411719568060242132482838991739432232397545906240918894845851604292636633721264257752958569942282674445443976837063823577260167016139479950693235983219661215986751683373656473401531396093958113585468763339296183477985001535983375715009392853940096708920602750546381908503192860430492211883372660327129898156366517622226791338978464976904414010128930794356315480522877123889495939695727782274463359812595365473685545765384166246878217310168146508181246758561393885502141236357752020310038310125659085464910825912307484131383205091049524371403955881755267560944841838209958755243044625247848649104313994567338695585178995892210926402372042520824790933064673713382829356412145239442530941564246033694195607107657845627813094371434512216598043033787670600978961025509446565951655315484828916343861469552754529892916076247920450627212823863893075234600173104227102330750144749022098793660076604413619366480920363816738463468452621663813760872248765432672484239068475452253609623708555791553500067157404674403760416746265924100855874761443202493116056376087463025688467568468145930926229744435925457436580388210357085267168642665134349030261612117651007396341083730514131572017587817082194727898477544423448608678415309507574625683929100824208343085845006537429774458739849882404462539082656058258143335927217298140276913565955851686388695891019290787252274276806107394657739848770148192472063128803751012707114776601729178918368053338036715909485446522991892435656138496870331212966686024886853115428318172800697613847061124432840040919816512949931345485336041648145862634915332405773786683060813785539335226409385793324463585273722480691117283781438062970470270457746314640834634671485379052193887037310468707628319566829096160511606546610054423252779630578514488687102992262237243660243999285043817384334659249367062649241912268828034239129669753712143301625830844952824937879651663286603770646831269884266775842672457072877502488785307460043757885029819666654432582194622881842404255371770152016356296807748065861434683819906066436929054321467273675164428149614596133541458785009362611696997828270725925594538005271119160325631689030068002396641263627808573234522130319890867191095078003130641574508670235110440812084905334531312879647542378747604799654397401640287577028739105692286537016509011526700974224786262676217813340618773252945743281217872653673788924277926388391415308509246259628371360095880352933920239934676938303939821781854868146719818737869961844785646853953889100495498222001298419880803054135901055202818405185776722543846241986156305240692290871574655089572105438658232382298303193581758330514114243088309661007923128776932731631831425549497723277475690448236673978117722590857307510252772237700193243487300040329997127925162351663291118507937212193732805059221501472920370222700941822951328999202302109183717742586106267903835662847932300436064246119528300963475435813037895184616976790335538822089626331007658322061741954284620923891339040517181219558427167235907775681216570718697034694953457385854032875851700946889189049271283183282873972281213380852808570991015125298730829657602569882207854862424211882651409321268908870692982791973743371462449360060991001819757693158582011498940358031219016173223665254061639702167504926763600313035427562751843736194918741869065115313633764812823330718258366658769787487186061366108135879140379152241942332977433247815432176130557732309536751197722903579365784025988632303661326919569568380583863586317740435569870975787829008441279485412097716123945367811089402839200280043946727704955635232073272648315053112110963993987131837092619239387772326806433795663040044152327613110052349413279295416667615884138650950063617640565645455792336671609537932753183654942246860425162597933572329710453542446661546951900826950192002491781318187478445903865585368809679995564150073548981064095771252514560900437283155403465753451576091052208554516800644903359469910512492036670099791584017203564152815159879473553189789202413014130613814047928584989833213391153819591048977022941439849212302860383593648489429586255839894067672850197034664786782025189169316667281609640502151291151828307872446953445929485633174498750318349492811850036160543544775623107239661277881986139491147523311873119609375293920940577812184484170325035078582039501873515269913906691414954719342539126064891449379949871506731913432471774074569426810153627122432089597829086195284831393576083091528164022561720533795243863319802389607991298230956555606178576372867082817035768803093188314621646464051151174732459629288395494220657248023292293217748940596454986764702011212216788708905201866990884429948161313610893344294431173140613911248242223547817955049307166333058829223859399888456287274053100942361128369163719067871926106928319349125256977394456091331679923145113660526187801578659886590190849857907135703000044825089310988453042964061362408781951532763459713173569522959981277614254948959836135460897407916879205002892442972665281003077682179392948021186501435193832226416220250938722685220783489887158102071959116750959788522815395328475881043097583884142652226791624172272971957462978119973698573672458474799562500482006170807739697666173700873831029245311708100430480369065298427455726606190331418456915042175415958775322834486486908243301167749149389936943898520937366464130326247670623359550122020839876284660389389217341952932630264133523338892377914952920249693755767144306909234355108443373591039397335499165020611135431706151226405877487423890475728826280162010529462136573244448980802405852393520272934061812194754453716330173471370981264649237183403718972447355044961310961212162724069226859613009879149070477414246337403877879065627805442314390985756999039065239421878702869150448582865738608299123966014463523338968534266526777374100323071601967578758672666798117819042982939733158761592920310825063341808991201635919493243288088097793330687341800788601292009285406026207671823104922186680592038702597659396404702403823651047491864047257486412219357349668170113109956336367185650935192401167252428422779149483007100031570059703191348785448545019996771482354756439825456322942728652459749884404847239950123311787013484839878340359161681219797121082979256671297609073979220344560838851919376025964422157263835785300014644690869101096619968249143064617822365284045171588119166986903983531531487617621770115290969529369401054296803640555775226704508774770902903157749306815594266996224902925295865514001881609734591421788583526705253216146141790117931224866860583669661277616072996411937979748922796028695506275787064668225134862588435639440217449279033032915886497049330859540742293007489061842478777452825971547418025440779815148417310906537470028709137982194259591380637087619963249096459494222055471967650474532551351355528115500934520703640600879515034157329193789129060327096596832791515474512239318881035933227136236577728120399818669532655488476881248958841903295218603841217855236244218250372836072799249718496892483841216074136364285077189255180396090429228398315687673555844769620325756246198045478997646731555868503933499795336740711757425012360356528535848042370294785086674808331372289724249737471476815380402175069388413035966452578262245612018123723960680681136058557679005731316668954440466478089287524124673833235669320544530702105658005261831024102146947255587660220130237528159815272733337903438941450652951688017322326193227453216915401609440882290194209450153859574584414992367827607584414676047073639578608515657745903227730977111686951797110017484785963428313398229689773632893305269397757028729693735311955346794195599773828014713620195684007068143717947974119773702727262967371800486217786269840618532797559004557081096388303631765649360150789928835126506393949991125943749808432042261592550418327324015992379437599154596049837626705412958136124227107994932843088067851811621041481002433241374769514259261867296621121942506527282538863152664754810125892715008726623730817822642438078063903456641359475419376706287186447485625121551080265325617307775534074443324453128099920914301088367552413141506573869502921781863026476076287704371852562608452244961974566813205969682004139375566389511381771578468337906465529854632509733602467875409843586149184423979420415158142761463467355378079751766309101705301643762633874415514727124619640721951406752685705174933864656636930673375720642479800528950641947055114476526436603159648147808541033173709411542335545606089369331531874035315921040562011713034154505963285324596668211090604099116400884473700236090156963632035949295096616447862880267380462895008398360650854266310737936790893609692903467915646267039168113521320500124977851949167226953986960678430081278207481684580302040595633694504734217421667904488901354436790250449547385626217914270199005468553687373497252105072085811569655001457636378837220976899277918013186485026015344301739320221503515122415208761027656008106347307306077394630554861255175053043380742248146207280534189285518191105759210285634367259577618698070409587393755526548399220268686992417902815856836857482295821684757040503925526641360064257794787544131668372575126711540361524131707706757369907740463504746865848730952609986885554340522181468860355755109875958742205314325065035222008252528082303529359059881543808812005019896990441664246437562143131912062438238918638091415497138987272740965035372635462641819879362379466615810655215462863558106598262267066689701510912105882596386858759550673933310781955830077410654938838693718870011112461994582304782024722835979723014981728543791767515489634957827844032016966119272362708854386962762683817622005693910318202876222811652365412847425591799774146523349625558243483236676712326025913108628463714975730113173096196890448097578053937788385372203049225239111313233575472154753039164449149097127194246847193596351355661488712645184934722518825359941505198064983349903013600240738705298103727173837647815421033801256945840504863166372536371852571836483782122515940103610963141400466497952696094923322237494654883402113289626145024686143028204853194015465046471017175191106262003797002003496280842036795503750659841335371728206757116436068170444988206591489564339054029456254891536259920569338889520402913195307266466680624082873873467886794250357955746380510673802577946050321243837496493030002827663696334646047996847757519737108199123727638483264859215704971546294036407668930687595924202072951482708472388481442548641470559443891445220199773427981144392507565724607077267700743452814771487908636143914223680626747390566354083589017607341898540922712055829666912768119801060257116962404005664832621569897350164451286095292318349294722052335613183985724612994341889853628614097851622143197193741999525124561831373073291273802024092127363563591076411134503783879265707595457585524022419073728953515327914762396954630037587280932122669897656403340226531185226460572436905021372906709425378245838171935242716394383489905359169627873134396697583021595537833012781538368342774225156413621372435043297334383511196859680384944431994054936566178395701893468348340351485299716341515596107763777305817872110863403661014083853144011277773096796423864839830413823146358258124960889134091042805758061695465229016174558541500293150724960774210034783552969890208515388452426442523510018797534500038082145850147753848502252802380635896185751756350966980049269149150800198833570652799860853766135628258200099657433353603825443654839613762408337324170210984604024633334697975351040121427500721249460497473543712240157370159982326309002086503572517205495859801270037594488960367005368066052634154015114194382976365330681057465054687474000182044248829022303269612807622432326955286539825950645207877846111912402994333926244070344958726767345647853075939493810077288041404282079335360267840684985660656719513307687230532598163517496903530462350476535893068550207320560984552367525140331618782047888767283650572340378272882817387774367690145015694791299215023576484226071527015643410653818531506088505937601061493813981849989805449112642856126640745752040819039893408588644863228794009941702416234668990295344578214773238636117106184002376414973111623394666045948756202981570297843520308334885043710953305276878109509153143632654612337465446864649061820060740122081076452639468667433369492621035015460608263406800194791138734801937708247060911738125825973448437127039896116302029473812174564106066439939132779904642676651478514290140124822847977278611637875684887897976053265606910109176588813439617457442750154661322821038258020390548684927958723442410909464185459734792923063282891849526317620831745135376504965423347426888954345994013522323957559002248013008340857005854962962364230445418241669547017824136544594339273712350853562184082100805612046843833698167599220352824406266097029549809899793028499237962149796302143216890622215431957467227414968217293114739153111379928403593487798595147934543455829171834068807400176945338300666922272315602059609919708876849071078953737464156409510001832478084965654877025761010812140284496062240799556396800628868467423432157857966025059762221089006437607057911149044247499933400582869603201104335960060035304576247653296119669004313967397496616444861734916508709243401735330858895442003721028709970284264503611043908295204372525339249839140103642589385892456264760386742538826050137081027664770028559767653802711795994986769298049150218075987426073628589399354172017437135267546268387255590512837809419711772415219144512855824215012564668752342799324855944346254126860945257382868790622813795450121844816898122964004168083971429215324200380961479024453767676419665992838949368576141224081140194624632929370875053624453353472934816039521073251453779405949536480896169308888708209316632550859003779239835097850293226194113068808602036475542556867191149903492904534654102513203962550569071179440797170488394946957684362171776429984571100253084789951338972561235867526102918568995502593420103724403745937435132885037868921659459306845641402665995087235852925057474658394884598777303255595500416544015097383548217533251031028066746863848251188657853274211882981665812435336826433839641686032073339835130355469788388657959624341486469841311306754480917923120044202630095643563755219079114605543390901510992344234771760091764160702003967277435380847762989562766364971820105081191094383089138037080812653575149490582394899107842855551097894666031994142685033297153614233538726494191049231856486206387129584757304263969540013339633732779434271733294846199949142203571480649148263837364234772041907935030128905764154117503186114314692133839962319674111913194201074526499913643964710637425386087715889297620791931799908049370214914340988584085253437584287522987646090984608687988155121783291875485872945632839411251843141263224055503321424249327348314381603492149244012493893546173617223126741675585156323128950525806491753482103060334978568795854837228925262187083587023123916886728723928745679043165946317496421881028590319197832454993739735370235770808090331238471053468994598084354851714981086739881958917059404198655967732072329778447179066617247317448731995778570544670733949400128939754127147516584735654383227019892413472983785844346640494557233215341019190293926280210311044218617650778038254543586060338227554303668250929760332861477454729439664499965308055398046320042097281783518126939371646602364366518214717201764662983150310291576451666611133489974535945836224000274027923782703098387391817466016451434638087605083621132421425855969187650161257164501511118214218359913943429227064230746678741335884326382124890074194302432791125578035211445513894636684136068002163945922995009503513621097057685171184026277211051355596625505277273790923929317739210591422946281279660063208651514912071845908296708119477741506402715265107251489398922831856428682889216771841225417642030103376813698883287528645908486094191337629189288255063240917014435511604535147011500112689369705484950759938082254719917323913949351402715270830640621154321796046516307633194256618307109720550684040316198049809984594218541696502951006740007847135933028494631730371574058657827200002117965401767052480939132891547110272923980609154774774432745103777581418763318354148193451878601705597815720305543082612585701858172527480097444956300365175386345363241112581473204439333394291400644240283660545210000430635744870248496963627363142890322464863869997769351984002232706994926608194768214991060114672474884347590090231861779363193775739071670064389820102851825699320028473992786714292545170948940570810720098630914501830657016514157191550087272324682112842569216561303383413877622049451424702033916793594636076825601759816142128282204705757745978261517715428743287889979604867056449942180727026684029547833643163827483676715117915380344642741949413618221402802387559040961815526949418974945491768732619402717551720224871227090676944294131880867290954297902131128262677979472754543885189886142072829275331794725774309853592962467668543462625387327906047428032626279661549316580186505494151629922432873581187626236198572608629015108054435819074799770006454342268665991313091613264444864891247468410224352488380426396837532785998017209079374735261621237908011501552515727537000696166426641690272608747570187353135581856547128891162941330916804282114262971669870780697991926630830394578208700316839444525858105490227026132624835611878468393487961827005123775342408371596486559316917603356354765098033085827611777465764768524764101730585931082621335219457078404063264418337739448747510952186345809702750088104808157259392721576225140489198976635714028134046765741464777967698271016575218111629431281995651627574530177232990967185833149564829425825482563367189123323668575295710153950762059056459662057256970135232005494979259050151341748887009531943545997985645479765410739430706716506518627232102505726836044725617887000354498064244253125177426612031318346952158414170000125559973869579981569199840214064240480135048699661350470048708838622329586916468713536611865488613530174880444345445636705454859970329071574157416182725714316989436407454143863062677561166116896312505824821001524489435854039976839811941954077189363148098483041462647292616557942313815835546135161714520077723971577103772961475914115075268110725842399388919886221698104930822995166032622049711932837241776034783064294254867635314308837441451397206265094692403910898833162519274634453441052862407472574557353058312141856044620009350579680114210263498318277156196671542778768720860584098494306294869650367033525930847320161870497661064082548714220049853309192563343922790525303438158377326365501258347962347324274818556993327890766839455289522049905743105841131946366502668119149761756782608602489067160214659779506195292835951079354120352527839610585471658296582824133328741659185805987162922108533101250690753257572572378538178932547333925406160466000026453084587974413777502523132723532347509256631674083372488761209679378469792776518261844621696546080936724873747251249461712153504601053876203369603260064944648853598757355813805999125938189679658285333989101626674585749695692731997405985736830210039808705135386858719771742309838282222589290620769255153973201617921378884052961402275794016672976903985174625362260408662638332221538467626607272471179575709465459475964914242621305003562569028050390640478890557014264662511841433615242601740837499773257317694121188781225687576692487233584888595707699946988066357274085052768749457334902235347521697743704805889194007879250471001062432860716477818051334850421604491225514086501087737114869214985095918134022783648669357710914867392330958955093358742944735255050608661988998344577735080032953673226169146165137818478771806808783610170715292174802387672477715699109356394274250243039406960623046259426417602448897572926432064850530583378887804161308548085383343868953748768094194213002226268571010044419988281547928921331280457642343707940459000760099100184005380625502373754488703458263355604044975940062896739918389959856581373716323736306498692135662049454454660718277998319826244676966020842428750771617049045300524521530730367964724622018872706702644732011514113431037716631475963770119642282871843051995268485378456116866465191904919954307911955059565907662377808703520661351211570589188055083191372778364229904063730256698971554469657521839498739569439494997842143309704827776004643432371843931947464843505711005600245704935254087013209613076937118880648454579212268788666666754569641766521598674420718054983007170340059118231141516062902951217672641713992859596422191957264058771336433336146752139762472286845690411600565345611023539938185916139462780652991287316473001437291226954820323781159761294025677420449489383343843093391825896590929084599158214715133930822089411543064829271471062741063416572344036587101871453232727034529464616837592391062890456507266961003158364714689590077842624869855150027177170300944002954982657411671097972030586369548963319951132436076412226456472106536413375220432621750967997696746013748642934759697457939485074104622168202632982075878543477281409546126764167126930845915820229602790695375602993572866986563093670637101936307636275242708842034759596371075951348784533781295285721391890622225775620665364880095554641400961732620620411040866078889565235183013008928209521907818447239218256148235443673898145331705282914471487790247362304781375955218326160474442980843050590567019652664476270939767122156500796552330188009895438734812127053803188078715630209040448720803240955122028500015726440538621613123983904535593048594827030843695277374906565028655849681308292477906265811117530670223935909480275468019441791371401280783674887462381664119636568879432159816416977988921035389595222032981206527686314817702548313644540783600631463042098648837861626808089320263150552760815601118961910055185901654817734230550238761762803459130836434500411822875755525946488010876137135627824720524141830069121847633844933067165978165383535671876272024308015310941011698571526955646475531974087164845504089740264640735301441078512174204445724575249106834711304084613385474968700911096229354003836965024462325833000878353386374276777394112215534012150035454909858784405558263145921488572919405468679559920422701115635069478559270903265689696155226624041592705189710277917565448870554038625189425751219409474561960917307013015790852321919583728691802067717106236048073838024597132634269453251907583108362537854791481963819311901917603418397142120075256798828410566510806060963355502527008096016276092535901806774848092642536021320731760074912655634683423443987946112332251802052677487081829153120324554436740164470036725708924876280533374834535681030023692378263860210038994154545574701244141033985451775877148881603232693587961845113262976323485903958790509290839113875906961675914068348226260176261666461682574684717702104881788946859046991360499154657524893106696363823143944085907305417286845325402231507245513120029499484308289453850961802694067767025801366077611991056134142029971984255406813464774382408673771739416527692905078642537983853175435530749373361959664483381662389239658469808079717356196940163182305210172547816161097278968994256625603811520766321696807291896356561920519260259846574978758381638630851633766505008427979290935747462430387423186385286014721694859448511279267333944073877592176232363304060445416956828542084778578809930850031852236160593293692610299018892264841031865671357859669254107044050416978330671769211871403228204891803888073939598849189900360386329410143115099798141387020513753010826521754973587553105605969966081692196186479742765278550209678094477307678990785128544549817818886727230657797769761131520204031719052368296824710086399651504124618835439865831706023721119211951564406654808688238287418826117366592138057525589529599284045002513308844034962634989072872327693964808700971469282578481330240939337123182748601404147309379396100197531750246643685904620058653837216426654109999571159362513891881727260885122270718857007914172609828259299467380530726889552820340587855534799765611868518449363965663951996460341344967834934661285952951570836967706063803342745790821739234783698000935961016055345506354198782899337463012766407451300963934573092093646737159820217451957077431601693448689966094521198155703009019708682202314780700004070978845108302241919969824541472260503351281928886100666166037864129347237843600558283203135162717170375073154799277686822343313202630268868702461302469545098831963788393231467565715606566630443179296167264615796598613931072132374484354807258841269988424185103296121686590184187613717828762744820924383941443462416268834833998746108541040000041435886060501096368805115717801770284949727485348718944351851003324150445031665947100392101145171387352867632788757964817911259531051191403869856179175608655647279955673922743832024902674978302296712261537073905448642064519076954248708746568408702578506694852684037137070641856197650005364907442214970411423316711946168740384308854558753191211641068006726464924569286917983027584461135469297538840761339869351641792208492887974702070682713463935752098527318290450137069807549385142938351145738751400804283933526050780413468877023548516468432083796383098195390475740081180095660162785399901834194761359835760477462046004319455321898895774676163905707651046992684023474683376676302414663097616146788152908690699078427244121236309458757241251402993245259749407339359393548741679282894183604398725048691830376470522696310972276939621637878754466903997228476604513160991832346503336250631501033198771169468999757672215603113125081572057522766468958467338176177810966037906067288579859584280404179780872967874989175818544313188032636899304811996599138513585543097320366706851368975309956318536621016120366979019565130894179039317549599265820998872146413002709901752509120443639522385723598773624014164463926436721407514589782591392719339903537621687785722439752615886845392767135942905069098825034265612001877132050849361861130488815865383652693603095069881723578218758134393412378454914671751570500743535753058140329980618207618193736885847870771297589963627003337477658124965492901180502810118336908356979082054745670124928505679852420317585163454454373964838652448765887248681470713061682783043163716184712331403648396835651778809533416404693692358957927196389432708919019942103748821905345097725196224594551898083674137257459979022916149041201297862313969058801675691355186277332124219407919876231266904416100893746953146492961084636679751678285384592655427768118616325730734428035938261973987430660175975746174987948430651871230884176373906250721783500321356646706276268465953782733343978985686275896237135761088830832263662467020860445233754985427095613955143929168851762350322183149250419155307484426225759893501956006097904789695489432837034240269448350756602259934732114677736966609524403531291144514791045319505620101396367800251342084769935049517893819288607022588321734426267854707498189474775564164946569990552530983169875717287384961754871030665819712558594818128710797366275162179946405638322483593714771235581560743822217723502416950251075831410273399355652232890099554599834238999576514272630971538829460115193004044921309560165196635119835298106056503590055147704048274044400146247432418417821697026814441129804408683612089150049391644705595937727829003174191082003685086113943059770878331647895837507514391507481171301059742441245227288336301912140350017951826137263278544687543570910981324462387080184034445009572687747371742757617116300090565202420053894681437365005078616098730062564976271508644916238980910061388539997702731652473784579201986805282280982907184031253306141757514264498166859721783835774010991916788941720707050071692136001590145458265280512573603565800037314611446208239550353335551223294785177730516208986886263527143418773731207515410368611617869629364783221370578382411019740260896892852497035812091463817830313813505079627409111984026330307013879169593453627605973419011336630698413411423961863157307425623828665539527233318503198834434090204610730094272887465750267095669139496795586099988075174460311379437557328203017003755535921452166272826096274723558597478482783866471950650062841416496648235898781625844505485655184606758304355133497427382237274300837067683029222603805399911025890966150445958608591198497204763039482124324387210172075093207740678257031699791938064613786730344741563055073537957777899865339744427184063824852255729831135050175557160876424516818722262299121184644010251922257316011317795994464301001312287687333878041887112211161525010163419809648213624965771968079096213432152542316038081159577618417862702645758270094994360189984499883406361367431903433187258637009887329992403363122659668090321483601837656591606708459774164521061355510339736960005883610062181333426505703824176670367973507237416307722096265307437978751024826955857098791431023426320035017277435772425436626725135831721332753921978005652767642999402097263298030475417692408170979433829290191589384671506967657327500153578089385286766437193048226709365263883863884934732955035671708086087906640523774737732998639881890627492610520459995463765074772531555185410907481370179400681224399034554046877230446695700267764753847944301118135537746435660012917842518039614394975279464821171474658522298120813830873379548686599090237911017205201332691222832278076290789561931305146368654299824946688077494342034942387870603466154725274716502983151820156710250543774265836028967936757668926099857456209065034859409194132139256507818753579896259946272917938480739650036142320745596639069220761146330437604288343644841614855167933610045263807380129430948934664044735995894372535796381489586533764198786500723587462142064624511075991953440373110407936929741803186895644261938163559145692738880104344473168781617406148482362572554871466854211623365617057998434263287893317913621438123064689922097153988190404208832634668780131771674540503015624569122015777329282417237659803696043529972194400368550797749201429804231652765288623909464422753946019285276786836245436670985153781286601427515897611776028635108679600005679061836694050364394010678225046316126265192108126224986812362567644484376177327468964914445135918682924867032999259004344382258749316910567702751950325356007627701499929262155383187780277730426343975407062977699342492659854247093147651368339493297191285198036953629883969634430027879665497930143444189867375819979713449278419894421654849825014035015022598489755024188609823901823804902962660499589841620186202870152153593156019352042572923703553437680432506041748360755531821146474549964732710839033928302816971109225443286358713246416265719911478693874954670463751289839060573233078185492781094631755821399375432376025655047240436480334876691741961776393727641490644863488096687535944363217523246825706839281365209730744986566012725025791024115025087344537097413498373080802065781205996333334510113713106833970095780659331915718224216787288067316516358100519038709297553424871437088522931166416753457174248379871097352151681402389248927333517296203761964368865480079166451720586591203932109740870416053298386743806432103041044127306254857296105451087748773231540611828396031242128831952203873503626251595503152330674739200779561876361395594098216919290049672804236631953162799032279137220443627313236798783863459805822632233465184520414847257124350166790616151748413968331279459100749914627814847543186853520414991206961467982304952590213127307867475262403731501965522306531691301974832095842616634471245079460652211829488264477721253003686746423898144209132975318260893411255353526571444335181774658440654083384100302823313205515364616664651387191281890544485464769080618332697824823508165618148779946545727512856283613840957089157793060937697557590991176621106214828360140351256029385629762688970242134213266045660131786103123200216416412575609890343265516631875608401950362621031665522282009100871639349514952249923898071716828282808927499044396904901046839371569652464285946979754056707582906777726328044349310710446734090761665214567260266301859840721472738405156623323098907450890425103111959333620535736905963498896336502367023265171331049209552010833799350578892522990067641351890073156654615119408435375882728624273363888455486323471664663754945226709015857065836152215186212975250776758299148667630964806603033514491191685266523979824534753299289219009999340240083742109868185329324936421663423418045557477150317944120505245491470993567237615987901663967790663451508010939657617528843044443474846752322672258262684619576008341723317158005437330387819633827573774624430933647888603497417826813751013653640970609795620432882462302064905006279765544925899032686012295636961722933914126185213451886606105784911592630626767769617321304836532976786159992877383104376321644369094911454299792192138558107561652243395882316335312377821983392736828089203410421199340008009179644148587045619056742759423444623351740031583088627269342334891328923700155957911120040961384907110619832675623906748951037623753589415611140140139164823995875027989367220400219089417735612804284158856832015733413636260501921357748284284641321710602299926493945305808393994215874734098078156134255665511357833641756840280640510755604410784859543554440975160871254860030588170838903544312890535829772565217819535018467196076532391321962833386658029498688785011106945045839166342941479840951849906908534077538653861809086580882375063460611247938546488536563367563523440701639548204926240483125380722135752787447988007401267388588802953351828243355223778247208298451182632749479709529661317945143274055316069357573581782651410301453864203174662177294294928488349373529989525754717191235185520790456219995146841219122019592412920943081051697346241276619319743414774871227045379481262261999981188556197415547572388757234119977853953398167868381036709270174970569453468814281262008152587740180450236580185031980406742327444566762846020209009429047371888901763673811631616193883700028021833213861855006179047942601165092517349160581054337024718598234399698729173404051262612298510443098745243929652694160168575854555202406735875330429262380861947550091690010622562397698224890216348543257076832817421022456599365610331777708802093015701917565529438326140345438352738994374640324581702902804552453336702968741444926505773310877561190137354796920752405854033897247535954683397919562194324136984788302165050721473345041368500640261264125676873192472107136857635896793345460763966926929882833164913835841257867563932390302521554570664336644105976235818938010066462081195933573786315453266714714794663367868858427368020263945978789630629029753415230485657768755929313611511042312700839915406462156926428725662951721169206645655707509359472276928934966622607926862920781022499621307441525242391936094023511696715270978531662064837029231684891693768912253394734907967858927111287072031829492021564599405152267002435148732333880540190853660105430558663863343421881185968659178751686050564659739652859633388984701893687989826140671808610040742908532416420330053397139397810597967676329332307231441339075623867366984470876970548959974925649055692607732875257549340427037349534637711572333582487551299563726859854660064430156712474371616501885032462771696195944538199524209780338740400669085637139247674720758262807979701880659675011588895592674678891421746960679056379689038989606858205546083561661975908695504139438037114479838545830405257542688563966086931044727869004057863141501278253512423236585884295095087327095583070669872575616783818671839985581931901980058056674187318380668804289103346134982196214246825802289043257948815525800737706252355807598120062356200950876145454089271883066147730178651487129605914026476221209737773830798558118707358511284543366629175053602652788316611970158590461185894250405009304573876660291867289396598180773179717522857320349011072708131381015669774039394801714483368453047349960346959070747050345873001365556459749000668771009533182190941305064746681821440896920857224783143610178203577061918897601854877977005311549911406548386948877691462212656163949671247428067742410512212753663874760465580646050071152273569643205428413207663176067052393634300084863135781250649134876263079787913114521679859398932832805120732334266073131729674426328849387377325139738290114760624649240386024368635687020565315540623652992525171215337578414264669026939931310608304243916029235124264235424576256310631728416614038888591245362388002838580576511666943802127808149396724589416367299979127530800542878343680865131477831074501185315223739158216299662362907371404210579841088571438896326113559499072801996149572406557829985391163521874351026984740337357595884895981948675571154423891877091728796590549344542078672873619278274597650351107266448662123279548907400439488334867268949213135641980383885101821298103730717960271933450022764241771197483248075030895223673710736116875951751420749844556477535415372572463891704771874782903017241855934335372164312178548094151284784022497626214590680573496101262043210176688629508752846145779084055811837228794465589101425941660468126726965670802095876148914346525173737057444149253186071748648428883129373012597286717405929212662110880513722906945187632449380058072931417564656976408981724453837613593022329685585750119047990222532182887851780462054196721075672245413591784261849067623642249786442782001907953372583560579074715129952629442604604243081414117429205109958400861878448346654880793556571836325505756197069185842832232773384917340741369449708332974785729404178397170506541936030522412885632174755183791451801227759735629695002593350632042931001171568398334236201090007359675626638057323029668216399849861013670601353752866187585565724863197826905070886585379684050688239347400390486365724602276605241715300962218095262293256354047552277009607932756700674251165857875569968331293146967963010002223229046299957037792571848945693983492265555850071336970795908202282728731086114792293373327174023781707163160469203208902280973606911054581081034310669042075977250928103640401889567474236219789049315462463229877248184598435077902971252992214750930145123331413189418483347301616622515538068066575419449162763321886124689725405569343283354052305582255902064952095763329547933434697147049408753855284457872437042733054253358458724854572106509526974533385344031727992096481663734341391401807378898040210823260643385657357884288180739788118154721694329266280917946753313463006448188922731828753938081570014397898888845871063050922346494987325742754241753907779726696889047508119244421270522403532702324078738266346911231001708157186632624684258488280589699882079596627547075470794345434203341138052456295958202880611518600293401447112489090272021123845828201855060245324895028738637959757228922970318118995881710861261749717224609066061428815508483926877951808463632825490378410426939774645505386739318707541442023871849258089575622555717553364319491821979994158581194331878258907668682141463097981424926881935291617375356821953019395921831038037983724127692800106843661976609628013091524414103460318326084905522257657856996165475830146498543543768964199408366249694109761333415351025994384959217448301713706850870483546767288094847675971863354832916229728885113296890219483723398084942735443536279406982694092204342980982209664719188356771010882399097039960666754769643149648238006847396954739248104101333611839825294460761500822514625027187563674211443566267298075673715216806817859101930714896676761993623158879748107543737900703680914260329262578071276584029767626095547237193749821145631492411378227773297340643837113621817988791179818783412016887126696521870580168926352876440413078954123451583006590273206731813814335593643763129830710409702440648939112200078944752169212362755114852207438399272518368932116444384448969547750931152332951253483738280692183778747763478140176229459710748868607362914575479428127502115915860250795937623033641622127673564906480045647175345807290913559017589990839855798657317485822577004043629357363088784248166610996979152663262603877335817738604343239128728758460880434264931146021951200140470476446619963901929799617935838679326415857971779977218698270659564170545904693239586568109719762901288255799981090654869930703032924201529893681021108982640105433200981206573570490926354168872176606151767504558671465475879968679615999762118762204300541161019328795120230858346912080744972730852682407130779232388506656937245122076593745579690220179540280181964166029271030385532763252501007073279665073063996358353790299442540559676418798438132261597954218936363374392382470629283539271695286150825056447590898856274011037995253118214339695164738057539479343962302052342275977757395614437494423237794234556408077428286961071280499150193312632960106339876947842841225211816183109332747914494546402648954854059013969588059827766560833914733633178746174161818020396418521350510087349303497991735346152265824170204680201848668702191512489323897635938429077932594876757003107098347142900656471831882115616675280544948765410039019219783000150752666044761895196480861824048306356781035753353149697036944000161239879994434907431653417295337331746320442816771846729063555040814965483598188323552886500598038074537002032189775454544373897929320594877766443681639507148086279583409350365286972716941476484480521346117020511282168214922479703931449159063932382027859316563344255801779572105627008161436122577251522679793605756348563741665647871764477198399830066528157754513321008152541963197386670027914021856635151704708865937884275535349627402245663948260726035657900795001103745012896528326831816489734976357091006119407338596684530260903386549422000784949467182740327880192428606886932889157140117004583643162198467011795364940298562496669770200150109572378126917846531164609539180558980507516675984950261911404544205622834889846528424259379870184667376681746777929497548821533476032217043012754239008368337881690940347211227525100384417809184004386179041297581479975154977716193230010810359928846134131456499293886463460747748106148452940025231574485543884188015128710151890618455006024108232462760216261199199736280124152015682024022672146447549604288535926566565227543984215942558840080893827849206720475935271756712753900534926162827874771730557194528764904791893563642444182073767799048707707479790031821298412540132872594421407539679600606075635618604796204820723478676300254744010437261927733645436065188279662328996809984639412723257662516043364597109377104845345043517917195935040884585982157467632332593259208118397936405453409416598870377103161809360061620718739361327111650885069736791101717329081414830210040208664964948407805173017855660661991061494906970538067065350229636246357675525423081062817590645040156350868881400237103455380065218956497642930707552809426984813488524305224058531698538865687576485405404484411896490734311847225891424780205385453958088744617245383542847009118862402364639806330070813423453152901692990157261219211042888525365483521572262405984418559541309158360119715130000386674018049697009828448129032976402395758812359979515955212669857659691855123295835411109105670408354253246827298328016326835634156830535918705793257411208929137332695580206726840095996848388578835904626238794477637627538464949500986052843481568847302574585363988323169435564423635393148096630126466337479229398919970757241875276679890951536393735702768908049997335574581221524507816880353250615885313801058119829657946592804271837057896688972857474211698191240245704277833828548236248488701076297535166162153142302094866443637338219504557577754725370757934754438622294702022615285409813134644760011474503920147949732502010654305588658042978909672099164852458488523659847364859833990027383108252921291102789245265747400935414862688850960055516745707992351069421708372106625338488814484939820656533517643220800868565321351111718393847927765469715012838513393004040330137022158271623136893046836982976200419513165454930334321358890653807061547541962973298481537961170959968250483492598915739341542210260817661474963365404616589624279111607235122864609835289497837960929606849992809231316376768485820934810467625459980577230282083950627727505988432901316615258770115361374729700898398054762828340182593382806200842675636281379280148429006107664644402192942553371110900478442395981875039165596304068381583825620815284576413159014768338555330174991383717049607714175109349033065017726578965011494301204493450742715381398602102999556933126711880406936041928964992133196699218355022857060512400189473758594532127497640551198389983982256089016716821979713233980853632223714710304940586896745527854845052021423200106442432670850177760083805053831405543361194701760769756258289255838299233429636934174542346564171800969592148212571830539925383130755990928863989416801259339613113794241955365343878115578358594616997388914582860069527705107161236349189981122524741897893657377668817631533400891726977115121185403926012742831369248230878133229993876537716622862332148983587963286227588365563389811068637579353450541922906718889205832570869310249246569494299621642823364312732280603755226312032404110016998135697855208993356334951242413083231914474179393740525608580056812624496657463360779909727877882872385544906257007535961894124976759301886638973954402231807614804651045884834956736162113692187110833244333739905176396578459560031044896400436533446620439206814976741406238433150795106750041356104154227196168127203552653131474826598928112301839815844755134305991987080311366176546278238837242137685615547156168462037709051095739391998119118197477058832714952400289900113651518407243407860383063801085894732688825588675693772804741125471058759264917553913703756621022971039074110898326190966227417486620323398205125540972982206063474152041662348752227743170197104602433599972870645256408216140382134865436235377072665321668021802329958143678627657097263978548588078986303253237651788770069987026169187952100363823344747812116331743545500998768257177097511423923587004474031775723247733068336464011026850608933578672782196300553194423864209308954961893436727737158404734949230559338052974240885790006705325668080477780220897481502884104025305206573056768579909780295013602884483017983781218083729827486527580727543066944744989766939761135615445101716478807784396620420776316031839634389440922961953215029844058537725309636429394889618509053994530771713899170347886578471987255229047285470502833892228728260276745138666454553819427391067349831253634358203808815994917096385676966275771969953101709976430284594027796380782957787393891779327625046548512082446339377422678549950609935888608205660561676934009756388005145662196746632591595428697246602040958376479684574293980408465569723854960177422606293639704993099835485986490524119639563462695094651096055379454505650412617733014447893320548256212546417688647670369748810888249016604999506807506495556352207472249705360243527025424976019414207684948951253116197051014629524625781045754923422875380891532624043234264809956725770369630628638241491505679498041050503867953061834857345249675375519778106154786396060792729672486956406110432026187037632788610093006412479739158152449836924320111990353423188039295416521442924636286250255706806820992223593229257158970531789631638461128099057451456764368833733164787082577556213934035131311482716049983553818373752265464477626087870474396269308164113056151495479870743953606312344016662454655885648360645466630574326066846411306930723120602365007297293810875286463158855348369250003403856210511748626272617491690103622819529011707279053775335187728305128764525786139427871107529750523621985243456861165531000821608732701315414386344276373923487979385484803201225591588641831589322032470831167409526385174526076637129030103070659429475484163014998780956041255537468783168550261238180777985427332916693888161667972031885023810417371726194438622467285597708295578047280892857262591915868516648485905867207417591037236426323864242371457302956664857388315583314159437869429958308626066971995868978281218025677838814104436176421822810132946700477886373007369576030712529404661884864531984662164504449889991681368851496122195167699005660662584151594094266058972017597758533172877993126754177527340423383904782946378868278184523880934216653052044326737321928750135778699232439807532790471081892753489034036194986780331296288449702746353941364916133101951790720247233139157270447542189321463573238937977026773448107996537217804927780139138268335504204370453011444815636722588117095269509458684914283230876949087572425201256375965556510422360828455433654915754458225223617096407550243764187099084153704695753892792451200417773042669088725940570636048812696533774780064179610075069983154836424345399423354043384558507206202916674716936746305409969985611923768834710322197907632966473684508231288254919255295127753149320376624728857960729258568657549081308237239063408919992043338806888958251657843277941924234246033220855736823177865871660380652424561927550050506584260680806202869985344871942661605228708268603234668841437137325883686369652351237131614542086183691992935594889114700993958504211168280162015703034597734544326652989085021585155973996666340572074812821267274579039059283347441829517995676960355808441640978317546854601010471828101340605377786152961085955250593571125845988802761324861642652218276297919633698070362542013749299343730505822615739547939935222891444201298780882248544673444328235334910850763254275719187931299484124954898843372295658620450661611981053758554982430773317820806014572092028680987894870639738669502488651928304123599638290044020145555685288658449592187537966490168078163855969256516068892044919387035093671589890230955263345791800425876979906612653721414235041257751444297411850212039923059884291882821763147283509670799332626846066321740842554183590074421187858254149353186388704905601551240338972600651731280755658593546942436018459726514865025814634292120187822383815155506007101138176038988698937495896468248801943183694167975591438632954633967964084529111604258743626656077373394870201909045599946012614319113676969851835976840056904276977725308834261172915438469303471783746557130203281735681648690764215078224219987610345058541267078330101244781334462666451432270693477313438974540415351588925958487394620903506051493345917104413917594800181925147045363297079843730462321834289105032023204052797386492940825188387572823374751419201451799864008155829936367578100104464959250011095942723400896044037877518637154180623137967518297324833014170644580454912748356260580685452901899679853809267714514142154426459250685675055760238143066040176591109262475388014208526416446754209225635802839186782120933964968388974042881400091314222599114854009427598652086025194183303677077550154770074377427963481939202633770179491344752884580841152480273842551238661653765550172904395301641002666416039529462097174394012964303520376897163763111867520858245556647505181889078146115386527207138662576959386084320947091366579537804561158262404295341682560322246314848319105778895117229684453408800848195723004207622921458864733342575043669833231846509207006017431264800102320896720481218714698375692636419992312636278693493067182671521651163728768857768567080787134783754293919731623823544697315962109851749071754122829162954662805705517478463434818729727222484778737131934826369988531640184769990656020033010495887587510361615126534609467105458413293360354793482520775091448496059168197546753099281332084975673635894232748685901164613644234338702926954979799407205203922094736730646288013289149753400034810589390229369237999013371368199535655346456555403388396596163062427625150870669493465678377141131692473574067614277177556944704355893066231827090490468440241047915291610121867833213862438586213134023828701857548310272879824226958347427065828741252588596331061685810950843630796371530332016788803378341773110861854268321672155232819840126306265133058329550632261073300504933615797865968772741076270628479800518182608919460477715537480427716256816546764596008330787983725281621988841689915577766536134082676970793788073324409959967132899359453559712795317817531093840407400647493779673125126926043361395908564011341339293746455878473718430884781338314249011534103886882098488823541605582087142512860883292036358916134079999050765065917400366514232856907281541782841379672234325456888056096156379287415834450827330299194375164636224260625326077078715857205935365124450547288097933501312346460211018821792437978367851181643569045214831663391412213797118795027614217359235692887885682974237201909458840371214707396268954832775967678407779992497252383319780186043576458764603831068065284939544400461829616932690677008194397318723162466750275693879523295451800487587348577990906156515566562460728580598123032575542567461313887024538115885246478930619590116839629674726190703299364283632092988218058612752532512369463542831141865981750928681474723828326182746390652609261717267619466679505982224839572339276201354102038286803052200474376491727115047594341101758443515294450099773663891984350803821256621279019207090240197836586818659535382257307563358649178422317285560602771914669593855632244346947966696878747019763644043627882788497144925672704517213410424826568078026468993324502415461432304488738717261411197992514164151145161087856695599420330251158904191593063915984572465098125453848832142531015401816784796913298927810304310439269637576540109015400405803939279203308938993093743336621592924820308337616453515465108328435091514608032447425333773334767114025203797283907592950057592658773117111206975266066084062251154383599548595184035451742009317733288272945507514360726902261446405265450374271020185079740891893685466676296137297301959934064930475528573465957879599973730230883002988396626018085425607121435950178885585696941115710211050301065779450798626825189726151455473532920730993505257513214153331966118173911739190077759750451699724860115182722053498458228267579469244719561123891335197527029279285256757106343755624219549243232179252200460314159482260118270602747673103917603054248819189983808547467597891026305804554084260866391019927975558679413582483647961708239825075610976716918675650006881298243672678326144097614541978484405859870050244400232622660566086685513581892213491252395828180855184766078706078878819395052772978085989408786762547055696981372498542708240952864335350039075034351989885128331118802462390315704643990614701327854062691445895448068246063733670940832876528471497097951801088850678433776909437515454623695064751731828706158697467902159505497135296194151178165911694472450008595199391456280231797907146588130439026447861988200086462844683490904957153694377157689482337205715378339380269275190541220632318477263391374913716132043665685490718350522890824369727010257787080509496418863834750932546649276924384172624352522929048929753723141956033043433455910756088905038759714607841205224274632632578184509574571746538387639882749734287117271218015854447031871603459081433038913617836761254195395534564048898554051388939525316961800170885346273818846271148262409844052222286259008178374464043457056343918017513241950749606333154964495880787398947742337591738465774861081698917801153795369472681059471639821060734490230955109279508199831783241757576536112093968599671120298349062929554198403232310775887941396302741006471290395948955128997346288159568909776550026422214992242051913970597051186636207078482291289440275882042806819294455298522243487664070958700671854954557382617444748527352716252148177585334297507048766273029663269718517777216049442218505777347135035924762895941768327948834577713897012503276125078692180605834354991251537053206736636457991727248718803405111541595248611569738783786597944647427801893586583185451599991138444022134476100897612407036312852392684759412987934631900790434092462796296224183287098327252107676213497563918318667030884309911308201848419965476682117162821527807223854585071106578297210653984550187479229222619465995787329853409241033947003832147749042420183406380986680877630074702627736382165244608074308311639652550593114086491296072991297610677795428926353355683573846802680654848179139583493533932600914815997879262267720391867215075373485385192540662692733865852532774609353617588774306851480046973119812028441105060414373569523302404388183282092835181947744459783572396214899648723735012654853072131420116418192722555767842898913198096947979671687931685452762401084128284978850891105547295717713831697114278992054914939653891446575749193575751666516596140328307121755077478353270162347737311055325652968903233360873935590366366631533601792498843727222496302257745590770652593185455943732579043678016998713492485789342543734676296018757416986432535637524762489258917677588967268936671655647078756845141126168247893944887187695686803855481897187772430638040559600975905928342111188804389714642600260974617493728423776747761316657706450388319613933750373184912047015841298316226707973499279525693903053473816370649215661883781301536975085884488343337343396680850374368592343821706008162667722835914785652457046068209037846524913889102186332856228487934657618936549403415990999101250852758619313148986923781999028704168462651460415469972967676025796658133975286259516972784272322793576203471636783991946567132984388965237809531882199832591399375398895141143915661696087264222690613491198254044975973449009640319695830228110964657345238893864983134394484404532105038908033510175657129298787163669945516849739184199825285016006648529807876946272476571763178822454426440963783030072724617662911583246614796635491735351728752854718132986260788888050406617893287630136407130543266273100582940183359378250491048432827444879467485829523468958943604734463536125053936256195375686855525734148303216861494906543717127394789254820740856858709493100787144999051167669420908584093848280292847715486934284881823090180580701409969361911109581604173614521457823135397959041652636397100081466100867848139471309935477104937696521508908507658770644802524345514480454809524825625488153288611726024895931213628435452366277338249162986267721662963508874624304496068137521667166599178429672210191010546372110758774245289192841140625212991369224581564109034094902865153214734021771410545071892165615810909514662764449990637051602019694055079877175899836945249182585047733621113028216559620403371596029806778918107369959640296110269123879892123702177918850416531590718596359705234498163693306612842137275029916713252111253406493385875097477166141849491894394283937135240944244572904051501222479345742846590989342557510478575065956031139025002632379739341409467663355453521108254231415265700725577338258612129863135875404771568085732979379091907070043283099403324666946635713626752724026254324393015302657550949654048360481486783382533848821167994285413761124389514804126848226505791268109245348273006369923477804231876413891694123649646554654970144484495136116592857774755220365404282034738676223153084319934682858652263433423059735796375342446263535835434299457749575604176316892420119946666444691590370909595155543547287226021831408787291064845981047633523877268672702216657245790473635423484483240937130236992308576580260082454081071873565119528842326358807476848161018669945817256266518432894908051123232658570511867204100261246928448672577874686721339710792162598191967979763727209202655684682183273545319685608810890566790141287339412135311739767689876044490441865115326785783603202681697367600468064952331294417288460308291131403827107421082753287592295065124919238326941155739426398431961343319248398863603797641111659847775826394833662285583120587343024341079383394976181531526873734267325287442804146496565180454574132776202621364228739052573308624276799766444770346056393470692314808695671474984082440336443424227559845555665389943132885067715226931092912071390175805406071660341211585410805028165447769640036678138822777717825686835461748790369506686863310231600166092710593756616567643167963065651916463943860486458611097541571927408670934759156322336322406781490696642278147714997734092148159505336873274508304588512250293131328345040744958191451574656654772161612818414957720946981631001114567562810475127131777034193443371451039375814341155105816107463508395475632613552308154581496847670146949961325156320864666752169342537571664631628465647394177986767824570616039046131187882327010162511484030330072888485394188872598958472297331473054076840257298813761399520014564392833782153616858674772455805108928165257855678278960210134948185807448139207049675729633701343967747236695030754041536873416610610074336940326088307710822114660042948940625715419189330358580476198939088863748194562775980767496884076123068205256218457365307744410371231135807885053051530867055480538611997281784763543640983464154768701615112915958052000060213490046640892082362780755099298013312030902345001768515014156180961880125323442685092799478817496320986751254106571828767877991200819511754975644322424145501883001520122604409209322916662004577464949713297383293372925257443071938859315197490841538513444138821599759476542582279407533910601798589898933585539665472329513897362802652718808745794591401268583856924586304016775854915789440125914194546284432303287018249144496923646115428359320388021971130768024887934890501904841526877026496405356638555638151638627418092856243606927067569151308959741578577918046659627052602014078080346012784295555847877877897460878023898699810696863276453876664328394655407956881801764300488469797248313306335910924045113496161908785504320669417890960231859493413556986946840125723057613967189342627796233063884372868723133747851039948861336037003293125872689873482376470368116477894450448776066206945029031112340098262748577660320575608627702021747394169543853558567599842647745615412084967246527970300325714376782073829085145269618896114362736523178350395765546536784384935134023709620317444390509929854471002364429890497010110575179276449461198965409389575414155410085106670709746486443902361017338887293301054019961205185307918236420306289407395902856771108730421354891761228098254925490504438334089080229685834339961247495996959635824460725941244058506217851876795184734367529702338227314040794337890053570353798849296068047724294268026696087638608883959382398923965510412097176050503372220809473448910538556651363018980251500663735304517169433457153805664416211263514531709279162839860853912248222528577728518291821577022429733444743508920991353344414603270101245566289438636289968339909733946420718450576984264490841061489331982204468889221874595398223629169018674563669791658749213144068735443003976653861354366677577393430216948971403702229826996256450490597044915413638539674463395498343314029227610185504842068640068526308001791883545630291802876975604896773424688316773159814297585810620922068666692099484616267951437549772190687720976212278572563221089117249836891742624257750944744265967398853257481084330352346193727576707009672748434744965638976891585721819119023831816085947174644591094891784514873078846759632609026135610135692459355838072801503426581597561493803508025729789322658526007310500147274177211547852083666749626080269217465068493767344890194408726867631937101081662819426333534643683722016921483819585453398080550619872404671955975513316275255048336985798234605287829079838327851282195769633432353699560021186104696703018235681398106675064325858904164304606661267799534436545456283944436951975826352583804501637569044900815361159731351093668224360690874625018372863678429094532598893460666205270606066423509421571923929746762515151285320483017784222091363506012660893791838564981342944732056073765313555545956941526378136657601800702620795157186265760728912882625315006311921560828406134534964934150374798239568690932645508146511510647169122912934966731807369532158738876482714925073715448769971272707025418800313734286483045864634754780999483574644242300379723747261684526238076553107381955630065860893087680281324796713762569889014023344068817246018816308442508396901770108285927464696564102671713758685896241027285744016243830580586131331983982887989816553928506091444519408675636929872923398350064332971784483764024141475104227866980875270362550788593163656012604776574999372664529063513227544317167438196166471181441943885803596129575224190998629648230773165687263854575486697760056589725175023703946918573324070733308371924791001269594525143215156686708263393914519320202075105352187379506335171243432656588290290654320301171244753876455922233095169721365280376137127755855446355034315226038066121878144840894502146624762585057061020552293975190485905172593897297824489280541180973388473658311620077651013160473303610092203474660214203608408867179339666038553589063716907897866679072744616551595903564087617127758490835168936780091128673639998116633888566873264460447143163763712556730598590603038509249582910420807431738541512647620992191364207906239283009735351923103996410086395885739135670549626416263275969874520498755264591769586551998744296116544275874063743889716138156573155673915953467980161161104720312178473705843482012550273157121522149810781104931856969226411365875101959783170371048433152077380148588725247706525324048434039145086314594246210443077081556035550579108841993300510066376635675529504648861577168789153327773024459248850178829171247777847960046093918666021316106990617569226893344868456105927797139723623755796929199614556536011420062953054625760069603179135772383555499699908069482994220766136817169022291903874074135585037134613613878707125395026321798640966756805014716245049645147868078404658838674749566015195725314475166562999180857431761435456616327389545514071671521304811636233355705137498628341419687531952447528474856605349833042146281292870042544822866768958455175857273434914347113048872393133274275991070424122068857051137334186184434368580833793994248428881574411675672515805470158207331401019125427732934533406060618254608987692760861059955911587165288461445451724866940230548889662722439144981794684024011011269620418579843412289227077945320162986214966983296088808584987616680671779449302386911505286396116911281695600173323460662947290134339863622804166642402855170269640508739879620035533729955609394253895110047583180630280364272357705135025739600154279613713394200914833881979800018881949306884370879916079596264905047710629482761558329534014371268300379392374676356183447747158365590347259650248725447584122852410670046749647007105387980419978854088375813782348073602006282905354698103640198048085980324699580152188429417438860981745360272434806088375965515376106256049175156734653340245379463672054450825262558303496591394008901487062229266435178839777109523847378655894063387783105446622963711188719949615419883920319339917517015571877750297189228600273737083145520260653356370186242345333057048782865964203553797951156939481951968658251886794865019287418351933212196774720729862501215630598967033979761066059219889452109341099869006035855755258937304389282606650781800180558969288349017552359015498383647317457291712227588555698327113969570833100183949867464928227757669505148145134272601309762482802034873299061908956427989791335553398427636523352275358282710666487071051900162858534456891204533126333224506034463727760253497073722538981152458033333612805555355612061807143900356672670550455194972538982610196182330679465004454819555859872538931343618154054294121945543033083499982870009927707353846875864666316177019177169561921556671196622611149927411492682358559960348886693488109740899591292950855844498151595422539494654809401987148360349070089768054787595176610894320308957238339355178660436685596130625053754029691564114170403920382881939569266313580274956088424089477229123697340294649367875206884321850852963525847370802349342614389292617713715423398818368698448587942504700799630613877667919350430759489159755179313791732902953136515640030521665605820934227486531074168098249585317700209899054638728376263205754076008759834011961566763856275439876215035760637697893087438833538942858129183303297116883091860016494130452968098346655997189535587408908522706369952838408379296484434393015060478704998091003688745463653392304603927354151192353812885416566825077102653687633461427771880412766746861204303525268698548343623085965313688186326518958529705889953799832297292209204990749573255804922355172260677982108315121784584262286935153790359462028520862371622364339925204900937874046863164462377027058160201953322656278189822438074468466452062359670437196389706259758424301333912003969706676847904176825083310279065767095696110068958542427129066010574865054982902207946770761249717681336854553832019542343575387498629613149264301939424936061669056162231984838391066815520613950732599543708273957682082703441224914314600851683238457942945476681427160582928201104895024517738023712537336947572874955421803434496616219586327415641991042281589900991274537192917394814299554023428310759501124831989984014028029405324648201736774576324496158925030705587547263959042804134596525768612030353042111851569469721958921880571708782913812294550716782829507725803884204427034247364193781142141033311206379004275822491111021755336453821690945733546157270706525981897891859218716817541179383947501999998439420264318594339194469956264283058798668663694046857086838392101185109397115430676288579286968835721097127529330261426162709215774294766961885223269581419434575330366954433700264476848352875995500312651359804709157533184224430708652130530218099522526730556042138099178467634853725757845547880276521773599771125367665150700704876396736841534247648975329632968139962426043994196746047585849395865896634820417222095705392138955963012753093960552972241425185799724742831516508493097386245130950206664505662348367647744563212502577354428849326225940306642261269884728846261839495747543247326702403426637392637553193339030043562237417337244703391575018365392005609483094137089374361322302959433828744123942549181600356531577484464626488772132570884716676692434940401959017614253265784456891821491080156388287035116264291083306820671300289516539778994198994412050089005184041565050748881336111980544419431691625291027838580837374680177654555027989864136476264916170611138667003861692735986051192283787339880872707625194185584589018653486278560543161346337418828824270752007060653436235996493528314143041752651125032989073801425624533506511988124714774263487727118515243104193560709126312611530276324393462746692697775516514730808956515468302340677016635576525170994625332167201867265672197480228777765567900606723763458813350104016703361843360849266753572047716305631829852765760044240863612902647110951473840378680078124523335509128757266893959849741830166664315033847261254637123759795355180943833425226308325231231897582142831663146404148859123264404826598603757494906508093700580852408648955023161333220430135695955310067336515960472144104206724269149772081861590560731721332389363655654034989923994863604760621256941836702785327466856985172988753424583633979583529580463013121935582144712337751469757313148351264472577760840811022669906416029402599845996922186603709685926936053836922299019389456291365052912527921541847554357128668721778083920163366387765943232945254121197300980806265592062619830716498450408100095477955595342560994313320324038683550199021121153560122771011390725171992727485741980408284260526830178312053527773015783551005955721613649870385283633229849283311364957213824364171291677346817477834350313210700488561024922488887250212636966810644861676576867854541220127756054046775939234729866826335237157861759539857949694889741233119403365055830107869363817607219991019708339891675412052754193618767541979849198429053364351861395644439170137698578190553867368170664709631227774486192508732095920595229001739630115074124026485085484762727943528733886352254296291482482552527873548871516625967270965246023875792493594590093916370377210013621834733187081572272303501260422678892196179144244995144319307251163388258086557967382895146773916359982455371705601079554943510241465450003370184847822119793537614554810116868076579794539862010173792495507456972403770754320367849714198668962383730566973335489944190106126450318381084691287295630290865911288743390888007527099646710645162214803478639013720247859411648314135864604103815485051288474105935049571476225831705058693464446789751342583873486390010819470129329656269133319542135214646705025178060319885678213023330729919459939802214351074844994265656678388477771473475713189003646466487670629520603567336165956870945217330451851144370696059207500940486225265700903019280950360610855429547658330274267030890075293613262770873404320528733031692828919690450993178888632546148462162377106103115711682576481625832653331330611613974177394930607032847277987789891163592922798026945336980959395762322781972905786264859711276574893898659199252538165424872435788071060515917052248507610350613286811001366998891125230094475186366439008169225789217228617921156397931780488924328036395760684319094928376509061435636172203987182900426268358149261920350758820083532288307553512387277487211382773423563399418854887694463810254620803272037670849926066772742266114658374867076538465964589366808626572064603352000430523924211087328070306583429860741201560205386990744066635567320373420180344331992207592932860727681903895768462023986831899914364503119428692796675522957619356413853829877408180224454014088098248142788160822707998359634332274191950923377312671724176393309210704031247298038864196876705897467598327234805821269045047563307723976265083275369045989666010362800288292464748002935240901978182415921117720775485140438093765348674435298291076390033405372224217062973246867958085761232150854970138371046633526261470390376778371182391999392694573844990483065355547567231403872104137695811791858444816660468073602907700167494191685047404290141585632581656910405964656168234229221785840825667833632947077831250058830968151818203238738640565565210332523252915585289546852014313640086936380098809781758244433344737381318704909006898252815911136241607797735431293341945453942707903775156977657768131219014682669329658696732467067464417533853141594519535492907876678503461876699609700358472488713141762370495064112034625920062602607685573141931198403217357979445616961566213876697047208081313086737524772203198459621226847350024357833616685972661136606914066091537554721646854723864060856298723615043861747420714597699455697963722833628243725746846967576572251296170190722712774624087667119875400434452360404931131684654689816177319543270826632370177773743583392771022496563617894516704478395121078652488760826316627183557927841182732710041328032041413847650275743667963037570839444086084572327428116823467087218304738016596189963923075300357220821744649112343932230397879528648107695767340173583318064965163132557233127435211358641546755894248872522186674253080821109702866969334614300764210632704948939604818458844920666204678257166974551952063072203406272276373406241018876052740133897739110626057284107493623261612132498870363259300930220478788443572601533285182167021068561962508415052811615262598814019882963315555141642315123130208088091570923154274847076691009375466210586165095289521721492877440903011937839196340096502870768696802993602773508435824960718587964389583911088789427483551634426950434453084864942427680404282594367154281817945483426046227813668708434200039536246059681024554183336191767626511412885971099899955291880480711222681499717737641605097668739508337475558759394412527230655071408741501898141478962120117411117158751067862092287661032496983769497301276225785265271054999389574884928952885747909984954599432144401202955132963094907574731400267523116817205749746054450755104107989846399217111368443907495951884163234359388643724918326422490244295068145715521648465777343353977280925547069026756389947753551182898064402065020462474445714770662089013141722995403555590186152794040653623925710693465374810513486535250243183913278481030227659542908683113828707751355732243959812700134335095109129629047254562430769102831087406616209587030766368893549359803286566324527764924345779820033468858049140867798545279150800463953786597901820288168211593500831200284277186361107409774207869334604771922139802545956516516078469120120413374623269854029127596084975011464974038561831284449377367818935724324765955483017560064203608150085114567948449496055092143183906198262783017097988189248442899150777484963396891593879367797970067707162911864384617879334742962774312257868708362795144104391650191593187942390071308959710832430640837855066180491634431826566162527006375118959204683299523578736123209249605117913478339916430816327689345896137906620606542511426263957223295335375040031957573728917592275172107597402291599082029207263623287011613794523399043613271766239877516996887466377621570510834676502483560102888609434654380358724846549078198603272573810598304424862088088545693407512638785355817165301012739700650401986776967440204958090146222906908939316339219229291007994986314350480158345426657658470295617008385108976615882248836008856478488214741761873946326133094443559437711838906905550676160280876891444989431462667647126337118722291565459466259449116864022403815093428667236249879854669519677518690731382963781995871943593798644188665495975989898808239814523138040788742081609153774509432067809327281694946074852976454291635589703884180531786435004372384761721314924106016212888781644550950676905561460848238278881908660762441684788195838945540967677769415255121708695345169745778989719106099314139586510369180303808079396527963732389654964785609891580174020348005752536272533682768396763842721952182435671795285946437036816337093711561095196151308540579634963754513486022677942911718720223461810094644059404113505554411363289794118354211387492985774486355800850976284946593106944091547896522452348488322777607269878341177582561351684012783203806515511257820223913145116149193444170144691862824140159168255945888692455307665775449421001640463596009840210239644260045052367557106270147477990764139513257860868356964321742822780166924593811313696104359334845923298097733726925136941785896225629351125994092100481462590644035827592500683539270023176455189140643056525751865839166643738491349134967922217345122208908874004914298251755851391006732187779236959705883981941812586184126364441622705339157377323100386544037093822781225506671057635353949720660572544519987948486329169428971265192242965936764283629812486310023497037787021875763402763962240450913499225570317966896808901474935788843603209142248857931650843144318527218165078553487031810773813140548238090946597565509204922031014346524925700496031499823022542662570917372990199614185017310301843504462733380474326576682723361980654008298256849400586758354078167014875934476942061581382033886260383479383362609740274853302169753151182851128234303426271535147833032460432334570130725195998718811476769633710840505637554699975381175434550804720021875119579169604185844084741859716119860278391533745411168926810435504078573303138345909748630863056778269576616388878930905230754568442691915314610553924650930778640988052466911716732856190833834329841806471594771077311581845854926051934540115448395587349882227020728982275055177092459492060931222346497884186095180781400618709206572211116931339245140462755967112465802491683069925925830954200259762440979642944391972978588313393333526131356941844861021400596059514352880210371010876892355163593620268394392355792094622313575838239056368037508467872353888860249225730734822652830129571271614723101551100161876871103650483958126063674825242931348147882829018265941559796365481677033559276801891353158156846377238889420745484026645482905187320834510670373375365741591557997120226549025269777227822034680042439566595636266187288623051238415861746039268985754655854638650857791466316705002489091613335576506332961922749885942930129761043952738464155621682519715490499612992656158033702083674975453117274418728274665982549351533176602535004014083737039449722619095086257410310170674090481514393800495325256030919990106433917221088324547204887056960008366136833383511056173202576680509454694075717931451934279254947675432174079946132841115204060508403103230377758578068826504044503560521854414314559644139214826176160946235214492946395726385825806427509238121771427529752204841037115307910377072112358655249336036996058202526575720481175871424505987344195090422403075776614074409158896273507174402155276008596088615980503006628202385703000840519683338093224821374060764442541847566870770857531462700188240330879975550429122044932633736034794565672872693493734213399866830111830602859014198257452403763268351411372442417398440463989164669069998100583306547332844100332671080338685594916995263827981878395319026194401150617737881578840697147891131327243007761912925803774627209588963336504736787030519350458313092358621485028777587118743069670788248255721164500170709058259012012183342515480076525229355648542356311173754449488505763545180789620217260979723012047041491725973544861697084087230265567275973996843955323819438522009220671044151920912255034823295018927948461700305330206404122805991961441651695903659145611683187320759220641628049120270599356475688679535709921628570696069555278032249947125643344147108139191077027571192952281476915547351299055559930640294241567477178601614008538875073430902912212410433805360171177819670060322159666501145767767101242376957298842577302598228990235622412075157425569625507073978902172082881294928050695757634377898736197107433507686598037598191921555204267076240870808260179070297388019753265425801143500441990469333951131910588486037688597643830872278903161778405419210471969218553660090618898491347624425555796584825480300142651810507742255217667836578438639392935921446709842348296320868074376231026060143816994629239468464717323466855632331648275872422754887601282677715093330050790615292791103016795411064932122145377789095951778735680750802281245916524211471570993402737473813458655413159658864429621114038840571368233066848449765315775786557160320877880601443708048075898677105857037680747460126796683287659234411766318737296749000654371558182678203654558256589158457856983563568849945354047720485318770606646844811692954199525795343350553010314833571419100516214085762838424998672802442825917878260840968746180649432947349359642974990600438399700797710080293285331039701940857617472607788318285270807015106680353225811598094640790412978372767629913853838467836161048504495821496918953810895498274594972332339106311606690136327612217081780334273987221897117067668194500314956337053174946044091800939586975044603685712554143807831390796406246420616804263500806689900955776146105305582432079168210013535440718394057604005316567105267422911942908289400807022801375180054097554195722609104301055906973689950185559865810216071809713258855705434089052742289600418767481096870042083606918989638269817029051215575853038192363915637078657358530972138944048417369789944854559495751367355490178866137836227179628759519588698250015815141690941608075962727519842093020085729900234705505742838365735177360899067764557880089842189950757604954219770559770622432060882398938230854049731852824074753496872844805536610057667247714925725593205708645414181354396675919647795878197383612387189098960367889772915726811265663863761747874173838003540035473093656106354098158807120825636551170128317732229553154347033394216195962903030444134774295312940051193257380648228664166590436781589211559222859061508842078856228034225724338749206895933948304468864317034262290174973405469790484887114530884616175923692935993949702357824220154514898487275449665482483884799166848996980514551261541385506022183339398800070377839159598533773956740834334850104162851744005633814549707271761941114240528789598176806878328136531092136012087478706088395353152595998243642420201479705888664186307524039136602132730870025161915119287230651537926953546249324737600173643229129461832132470549132220908147619398793237925217549937098560198416457466949606061724805757408687904409164287457934636131501171029027249423781079509850674907009379811599977180684690901334871935114600114098112813226955547575219053521081993230860321728437360433608103944933589769554861779001258722983239331375240044197751161223032725847860654794340298792149027710559253842238617005268427742437560802451294172966151027071600418374519650931034798077979511039959869627804358436667356443590972958823523829381438766043271151461299830274436500011416993245070464551390255051968446784615100564647824277246130667565218043955877830800620824440263804947657258155127754110145443513216650291392872112857415631480263677390073714122809367387773579925757026900838985416757004060815215747633734326760327623707729168850281781548305045300400401281335670052162613431435039770455802059228545118981643728588062378363440706564592049728731258184718431901474062834986222357003648989061233180510048451870643751783838738102901247278838385464926776536711528955677359789843563061344031735351692680122793069059340236340111857011299271649349555010981956186624036030789528975556286265906992311860559667628106763752463955362010172610011076075215161730675036913334698625546316878625011670426344067045381341411156260372964338264273204173621816956091373795335834714641759150486284004844723005877962245950747620699572212511499981169469160783406552405372404493852135058217251100683962523216581815700456292929365425410605109211096451758214832976399853364530056253428968286265628161237151153734614221654775268217167057952007471681693792553784455898185537258542547652502916853726200095431803513131460194717693176521574471307618565067891461559378039692022666574404155879269740419080578802536311832777326590157136823584987332103551149970722186188751008034361964948943405168948782939692589299022809008642163244383296221404874100362075625792553442744252058347908061085726432069909296491208343581044298597940739691091967986749904888637222259057275945207044454261858796094279755174977148197335816981783480920917601827404236214463558766873804678662565636019282540713324175390791483285732578525105045068914798257217507172180598484121777459552609517406778378470357835080879311873731014275950201360206476852989326966138621307893734336194044200901849366158607284853779428537868851393527155674185772236769501372379876923321570365379684952631624968672247664790413078488393651688808993369822173090031941116818123643098329954300535665353629684890394694069030488973108817051117331572994959292682081278674683064038106694421586257159050377134693312603115346766018420710929592126288695288336945550952608854755726455388026844621361467909958019270449331062620604312232937039399249846978791508265070368154091540363473400200874185743096424822625454951373050994925923245139920118133922501956395809872769421283441625523135343760011531867989997224646127884039806054146992308997944047763162785468843480940343088534332460417123972719693678798219640807661378654374290702915166890623273657071539465850305741582838757997959256537083557662199566035553596345178209971597406686153777862046386475645092719131300431522372142586297387463171775968801161385399985323633018394542497882304325662294047274493797417115041573160555284705977981666234871966635364766362038140192667796025128543190438920863992495163784155368841374978708484282059943613353870397854745126895833419302968410821790838408913304092425456664007245974016889170547050677838246588610531969966805517242537157898901757985767081633169370536240178757181913123005147962660541530315156950742491817233805254510500932421645988619597483208163922989671224041718677836730072792401275285099706379932666512353803448206083933272591138152602630437192079925586482752828376904230416935818736518859259285607586189870391285758369390662990688519905057744956803073684199828676128371061292021178277791258816119239176731794245938979925233114644279932064097731669065580950339163681767133093581593752503023261525574645139927353351652845962811919135553729045398416349846125996787386714335948887691009908247093582415095985665644685926775737071039012642957552757265784955355279703306231318882194347456154344136890025292295325973704048132296387902598782730959412646182262457578993255264343498552884044384936320113560264800205551444820535724597956679898000440021119141923809388236209070928926562157330792658379292857953404304007078873700025780835730891400869464646016222955182432010887798547663142055427669953126802205897723667621021245714898736827447396966075439841354016756078888390537733305113306953135600847446440128739061753977343124350215480074775457375464942238263744011569521769403075744670786608096676671575041595979662694843523819950876687234575255470689538223983452299589800616368312742306120155172011379570718026403109306363291743924849517008242890253216522428661846365378134308868611351725758078520877486873777760606666547114462484277616090303274619895012764874548441632787739377858428694898576668834750840107219192483770494220351206954415986536188852034407515642002244874268641756120338303551251866380607205860702688554473964428231502874280194659751159021392067048529616520155524998452612451227447194808374241802656574204966997033412436948959701126631712498562643521791021811863035092136541376778269285844085310999033572593082909926042552967087242076987317647196715529043406105535555637604477818732663637435708580999439546751467706442280207687136994681941473517432801442220351919083205024371687209330293395149631155471768261788745903749381601638218970854447049183375272170000070447473147910528295858085663172268072250308654125880647995028543629822692920386892772343929681607798350809085002577687536917260270895626394526993541082470225360078055280155664746146553278197607368213821879926249440620048321673780422397985535676519489893059870544228824318133107032647499422651695560967275483806262428756619296522787164252720743265735188356363931218489795607176941696234171674074408069166997031693557204243714499072527649564748092681978241044923497451935857485240247518933978301755948897479885669391313844642101639010997734840467893860188472430833050926554307169610601845983492900266355436061249085604283163529361509838787367102332880115779248591759489159894756462826662389275775250195165469729581333811832928908073177958956282937083362477535297541410955863038216913805591160244237817999911479444646518823270890229580584018996960815407509928105771577308138490926883723429959263083415795572089697231362605743248607759295128519741469700958673889480668008903752054877353421261339981965397495557419482795124839310537291065546037078205020583776724212867315536318451662495159218271500954579640870897478590667215745081756396518488667711915312468976905322572340592491462740667330218459876645578311691792702947333543641369781776703065867186229205717227790008064265342267612411168213237429134693758959361653132779801123745861305094437218876049703476662526031676453003948285664870308389829305301330192762941423696969309142069502395894492877497493311845007336285201352660059235718039425148338882439068145826367922113911055785074859131143728045985812136888977903656085699125335160730620798635998054208969241255053951928303673342695555369207849922594575279569157497323828402231187292080124304309886663826106597895889430607091041349712564975475054740558021608175401275205892443022482051094320118166280364890462654386659723932845427834957428425199526136619212502996432543978345432161276909156737454575676208412883569635216454334996558337215972110367179553087087828109443347217745253249862356516811607589685508903881468273925702304630031728301387738446656056824132700616123515677071655600556643467383874924390714238584948490310784879379785835831894687383769872972213331755858368714627757952870524054229636686696921281855804773756501505920441383203782905754685723487998961381938513457409049944485053854250643443017329045988987026110853876580086377740991314363531046605753299359064921821962546885893568353971800504234828839125289020903661385480505409284818755020211153625945950679208676861912305662041007320123112078575521348622618188890715310785030232958762698150907316434246665632960037037769729461984223442803994348230818952757045430620834485295423687393013446539087573977694862574590144375623109329953988422947555706661113486669220307937912883068973558610453954749967089844707361584344423156321691203761542938678585706719274211084276800778526144167229834775140900342339886390381416319641650922224849269549087099929309894929518324551435078016278469629630627551378575312814620007751009601565674665036256667895556177711823313069282222070665968485381782505573671670509741342359624957292411501675578874585968646293940197262077629013955288784098518045943409526150772730979160217623357522307206425266440808144718338333559065262502059208496191919927082779700327593274073606410218547292246782719453358345595164041644868919935497006750536310991445425507152564335867890527866995021919479903642970796456023231999259597013196505976808638175266282760537459356353825294849796678953935360993924379936825247933881882519115266213681607468749280770618547131077690321623688093525779836226216583092844465311311405320890860165832180432114275371424515441011157129850424317625663631281224079264924576612463003207613413610072436681962847763955093210165144335667053853151122539022901175837504204399507626414317993026465743198144597619793676969775909879281169685399672220552777129048069475563775546898079195808696987640383974223220074041263998619120751646465773184320672492655696362272673049828622111127912291770867642290864929025140390642024184205629051145044547320324049187536990904869246246693764624267116310201540308159211164142360094927232203019241471122930970569344649248260957075940843448042691248302016767105476424501523769525403961035994323964120029703963880683260510982343357245215697141601495389048980789831931782571892701984732495139226520134537029348878801473598079158552581214852905505079653893090994019709049206993666235143618679585419338238131910602183310936200608851957673755036211529521330794621374001185604778159427799737589833436487037185216468748919390789307436699567663990139823601070505576129008594135517901578982817505454209391629446269607404938323058476523634743307584683731891366685407831291182984629487752668799978631373659304245184224364753256532575073709864160337507546499960081495320477099105429159917267301467324048170583951916441428445351251313067544028209134764663666573432312538343702337897516742891030721783800733689567699674696026120813515152422949397190022427802155886353577484812107172450999539494903303781060089590732129654079732756553150820542968242565410255136455924832398515419396604587677955937975226099422041730322890104200828920158541601298450971219969239151826966091589667033459833105543354470216320068272397069381704896433463428520175406099314862879591830239730802634637002402469220563967987431691109018836001023119986307073231634113288496909180759532120078231464064701860392091873006832226781462738349070323267581353208164679744844049671537721540338405322238405956861970427609067594673176590220891415737093194370245544527453517760329202761329682697429795698120684918467009528875826741541987459985068266718975132896024703888049642833572422179942872295105369981291544394601738704600129595990465858399190698475389361598510238994778505850088759810421188527622823737766464385735251911294907339789592755023436607981089552134735264644348686846870875992705884054100858330297958544912310598321464329562938929517904762669910671783269277078693300047611946082438702283121232699163807924838965425123562789588471820576577397912191765287223286260457062310093627473324039797294751196107908068160649579238527925717915064980872032152928732660959372017546253309280336309436351910774294949511208096934814927376107851367964039091581652992815195628462194774870487124710069185243847369399434482357779105095621597123726491676007114222093140144908374916798280417658114396468263189823769856651920717066792170259606003123839478656161900100018278262743285201398902802072403872414697144766814094091957181108676677425639342617403633574580008935099520082077361666184349680090499830610295575346278052377646182953965702550038239979802684818019211476970073298596839712056791356567273151540154279546811435731576047768470976188734051276539200635628482852588721004351645415988944354539619002540225477774534971414179438782661046657458933912608186434569017225186133995184563967718535028355510085458264897957755159631009996564707407035055124514035473317141987094201144284857784131440675371106882559202444842143659317029317248547139876499892018465471434006533312835442602595425041793129177390681866770792644549620903475734393927021076069122843625252842093810247543864353055425494906253810460901280958500558924459772601140239093614607670787526819765087320602654776111423819819252259545306357551306859152748167636877324027751921555299025274713461200781205653960738082423918255591682804296725119798340204995821211369185536286920154087193681986413410078616682318917981096741090875490792936102548275167342295981191310156389257007492964698324918824543220614399057161746176566358011369022226600365671703068395483249334727464514083155366946936473188746280304839144422433725793666266320723036160719879538040440841813541153059563833882326714522689845376246951767679013370470174746344337118963053853495278564231653833755750517757051474635026205601558100287906789622711232002061239249530020167264852951521873254378696488302453336769699849947896002807433902208795117084029093021909806407923343078387534021482932422914740541900964036347494687972573281818905403435694170254437454807315460691856032972660104173474282540696920889460386094664855232792166439950975236482417724025812384573240671260250109023329896841901946529811033194974565841191459828877451354499428975942505319789075431554082662568366225187970477287821753580720247190512073514549883829028355729708376706850045385736973531469746802583434154676846515890310066074165232126763138858232141568241968127544160660816023110582767281717951256110836948053403615574137516469429363971076453806732358160124156614448644555016108559140994136240701891278594909477348988023822388950431585500349293258214599551585079988607083287800461631066479980822506128295997504839691796066473306153165536480883668243761096992777991745434569013721335508742160744226105299691998900826746825001506613370429628367121687892024507276648525731895341714757843903924987457940671536279565368558353829419614009200903786058473099109630984523198304633891463412278851777202473052084715954293463584958125826627431165970837357987931535176788507280115336377411208083995797415747609591176925866835857374782167578692032234111990059553848449216665315055634099994285414458480373671784132923696703771792266730950957523297869058069278273440993125815498578070227546928778430817268215533841464960060305579414395150975578282285047264627812800388617549081565710642140769275628161529915050931652557023407586718397841663154310585066067392161049448243531118819836996295737802971398480807267537908789130153340367411395747927096860410874569622198469671860494140954865644114939020906539563157996746026628953008044549856934255430673081639473195783580348157102260591131130687293667285760892777861378159183160635367267924029974239283814333272239838432664758290274088997474229327429247320635869521620149981456302767356846349869957151057290549378811775519483932691222062455719467022235908449969436025858985445287342808886416698976101417341855218963859175867464267944460106391813445584557899978561377594446556968216243136059861979465318377678420615755389709232769601988148363181690007374707980193904815394849758845895801284173086781266095018140513528741784221557597652793094409444419536881571900081130572990924152248154984395254685053416794683742113823667720745832427183739746412193272469464182624631309937845816885892801367912806194351836191096981144503731424502746125854746971405152916532776267198379792970735891716846828056058745707081298783607442953266633859709113451449680588455667257316978899692514519109277678218085356139418127555248303049840344862811695470270334261062960001144202191685382959686802408930885953927602607949889564438399475316640405771174901402874840174436187363475816176859625267993786389610812461333395084857490363435253638809548761194106906858786184796376010107143605300843246920369016308621848552746288271001021236183242439823508680468947408630125285580920166067830127665617800387995174849709774966642401212854875753712973899289742003667113366416323255685078530389530436457364622569021779153796975587996319410004698228110747647172266919251263534686164177702868974583512418018592913169151660964200222905883726698579390657059402159955466594534046810322477406206613937114316731474110524032720074372516188290719413598593436105716642610742463717219658416131027842764372980376651576952371418262948354214205847462554415743168796427076192451267543094568737383906574463463227554172972906216059158363800583218445135205749724961944219021295205979989263093094585251882879284836474387984383565048783623153715375885105789801803007256794058227271589288977790696905078315250360155144310246072054469277878288330400826728902600919265567847898168944520506849192472330094063887965071339726951349479136070284495375540985135162551900009190248199906150783356451959301497252284564120987570826323370624695747429247555736657379165350984723307669909939188951360335649084418603226920860822697194882001636493864342219968790935163008029229728924514845126676908590714913968334384947823369586350254666180392981611184473767318131987231531609704226793564836613722132838163363062004486925184145496025062145390902513762190488842717335097886330051527068394573367697111747923866156837410930258572358147695483425820984290357612002574396108760193095333292642981837253903321479564523826978407509481775245270189445704343018841614918765835950711858363888663244038946795161910812872136138051893096700889194345422690297043822991670509882619549339243022693629063580707333304827970520222123832670419168846936633806194546657327928475553234542017488378181405445431035534018487747004641822827533011548927902301872641192609723627266213582196068818521014167523690038624503875387150216088070427278010576740155625250948351184386867505760277149290772740596754636968292132022040045993109463895954236571491111893417527730681603253490159566966935287765306680882424173050587252291757103715619136424366804969857036036049534428524400607303282240340024831726072195308667433554855562190919950097060551489697718329929874364769175006415120788198062921150300481659598945894119885162889378799171761082058266351353612108103002066475381211154909394114083489323900516700422972530963366364244794751528280462852901122173299887982431895910412260048799040356015535748104423357062423351453355857275748598132705578370098155947437359897020861367303781510991690497598425559153290926946686435188730998512518904638666779157686994816068518488493067717538388028849868802362702552839428138765888060549084013287910798942074825917309449637508940084019212540831198191734783590003648872279141244018395930112129723705631696098193585013113806330411430566995108945582640716933150780797930121109941701857946961333409523941413203026258526473016881964132835775320877861169037118288492228973690324748755593732275581270216690290979292094054531989004840742769145848506256715685753732690333584038232499146061835701100779232736286552020823656365784171914100762434444123648963230732903116415855882120575250993474048673532919731873118242782769118397170996640784364901207793126337206975406363945687653951849519890979413143365893007522903229758071488162226159326744573619361373128423131914067223827678739172872025103403926061529016039818757917118840055515964087623208635682487117669825510580693605172518151281701084812678210732690690680480698705648654407700940474507235686147876950101473631868923231004753230721078230738551033163877020327016934633676394814662763111227139083111953665766667289513603487275033802173479041452823285890186263569881526324924806643451425083936528988201957074635991088859581836916169329390383151215406911170546449363321454823547063468580254532960419679385712605891479231904297216167032493606607763629440319277254631035790330467325639344044210788629407100216357610100812966682189965711732488539071227715545637140550384885762967724857502233553926757168096726100532723288151652420219124777840554548712326124744256353519973067332813976550730289909492291758066865027795785492246338519736058535570696619170039481679459934927880015719495995624136955025892221551435470966026746319180564212091513628135416269279583210284364900088904967530219396636342073940569050975128333644039588132965389763655769134188414071166940074272454564935549123265294308021960400071190420434933791184105546902647999031032497043821681998577159099142559417627524634230512446472337249554389959022043398710197989967119270260600038608714780129207721576963564459377823523982568598528201507214079306770973068522756538381895037950205245547981433588500960667956333008400351836147512117124640694193735958328973908280365185739355387767711143408534414314963540402447958997126061474776362499145497499452718615711748642295303228156271752201137553929670849905331362966346838488445433213238088636653090855411998528022952822424712578224620925792291742971192463470100853006319710125962987364890573574543611799577322554554177285920637827649644131137678434265858537489906409316498242522666057223661110875646626025851314858199506838234381456248239650176551206641398657288921216184799312188344467479257022569452515854824021820910404439523799445843050674000828467682401994717189856749423163743905902631534443291376456786289565511385481304334008267747994477159809268452697383219313754880849037172225862521482952436456726778486724054147366157251162731052195954222576846193317529283763171820180668866588142331246385192964583390893148061648231124917335227114386773049911191342673717042328179714988704704559631299582753847401049530828009252079561391606667015963557434679140733954026575689278403521930232356611625938010251190896187637420759640209914110224396956433207088619120264246806538743448299809978132422334736526940790712561222074599770418449629215345300979578072986717307724834456106333713081442960055008842910200823987650803155815995479690734043110328165027952949797126645871339269780369551292390678513746404222110390042401844609772543115397455349540283671471528959157101216822367430021264405312941429089120917381138135247777495509821989395062105211456472868960662343537845643952788932803763622084729669993241884568286833253875663330782901740094460352014801270149230058228820827288333198645515264986429463176535323795099151958327363980659668052100054648222632427165313155491010839569793371441167424936028006491755898960863442995124853831173444356087916333356210825018185120254275999690166273689565793963990580716290687922997841986015712851795972078104591169142012105352024075596522321244484131698400146455069539266678926047362939562087056406545714120850497716988357632398322842351365190138537402430886585974438403659254993724513066030372161606355582859127960444195070609698482991635131982541969345568592620033465713475682127507045207644022728029805128477314285239095465704417033405775958324744078765803723944638428618699409280016891347403396966081013198231801027493651017150354792194039520370642472434470753347300693383944520320689178756517935043359831479788925562539331524974866491074575685801264061142455558450940489365881170436218521281455869579528790473986828516166354308928678012559272172815998488069067061522594397674510928526080599667475069545270885528185914421284382512046922132833391565351114225512725609168334264657200020269790458843830506549483069543919122484461638785497483763870622480591424118029895174487450269616031124837106594045674097852842979892890279961315307532563303067268167322854732387164070788504998465553218859543105367531812761021781464328477954478219598330941894093941799466630311083085817564402853157316886851486197745565006666981060198402198234398918800399948096482589778291222632335590870709946173040063961764171629549965358020303246330907487713998284026353652942659854756967517347435368049667041458245317356337705838919818483718671632657234927213589483083460767843566897192205529842355543771475058137643350287845967345512935741915321932124420297721988719678246673961114450182280762698038950670102746553525502728279728490402012805415540556315406518480517950060174155940807609971732839947628763846878205015291469563120191242319720513181449421767317504511849979079326745883308371539791684360447032891168590697713795412673375636685419323777259599471673751742348079100700992523514889616826660113335839643705899077068076459254123150812665676573887499262181525199927496397205185070422234734392925058875255113387868809864249981398809066764050046901065241515757476131502936416009348961348131119197687926617173160243786287406254866809762073155179280917192837205220952115535992724982092988421540138168766491417867740706602734710743460162832732894131456757104966746718730503802619274108189277012742241362936107509204722302859094113455386220820989802897479643014585882016119491504259652283297019310843295219830274040852911247135647465523135138036911462781297954357119154199306698993711082956772871318396511493519248614866352656312103151434295977285858076864686422195543884139287762323998660390483347807685639295079788948070210321580813849836568637853668165969224798785114026726977960140034834106131329650858866737497050282100058362903705478639328763449059922145780874043900121046027505779542298936475362337351956882780625456880974897197544178310776774480737825196358233537740916884855794784291991222401046832001664446596327327037377475818456499029599484849649655145588532692124072078392510326643196975255264728017242037630112836972625382409614966676678885540308052774411324217658800111281399040195315811923953761671494271012141570731634487129569313471261078999949312170678582670180786113343641868794019754853166985782534216624557529575194165274210825480173096170076570026982059804876770366465237404872527153714031856777632432591804440295102578242279792553599913300555889015993277525162293522472737214557100450159647333777706707392945445750150296382985257987699128183653849353070850809759589954414739817165076608435645249955249126499969429651939602152410274364744627673999305799852017170911989535023260963882703798533069397525709361918302777657050724269970155927397801867214825519403435150917997632695087525704291968197348989852785626348860150327043727042729979969575420095192867873567011271720011571620685435350439972346179262593736994124580461266906703222883834963120164420330302832528212959056045071304925062208837225135387694128670651696595421792267859331561955470341296174346483640123605313245653427892262668390061075888876213188414956585393923218395296514880331097070690233614272596311555940797495041292227359065852701655354869473037103895646657932835293020838323230086236201531481495450095006744834351783380308639686678029441257239555714345188209513845178238017549601339677836611751775526466573824312547235957253726397647504952948029455776583142370377196829997101483422927994362102622755378506827821165770065405135174368236423035262531540561800442954119995797650428207233360860317602179621758279164623107923282226524272925782355682474465764940521651911446355984497405085916986467954047829462356585695655180739728872105114129446799995569316216525414994713018718750683431954073414804958808391906714022626219761482175078173239741010928220642572362207597597352034338687233096980710161314528738977995687307624511011563632474079963079987216500001045902091759183714213545490900815653227479205391084037535326549551236966395476280929852929703163359130475828955204947106837398278477792482665955988377518012536019581349314272140187776759268628108067426451731872786159708467638653757125101791231063109222947621439321029728247975828621755254924855609282429377009790217100493016536174540055333350870732666150038000859919956459437403615348950395191300265650112504812712228604973979160643275967629615556939948723661937381050498305021875512411174331671557141064479212080053379706329305535970436493133964631658157929786461206682708424025128607367686744295927844729999373470268269868791681230504544021653511866726716256519669852775699752810393535096418632622337361398337602670549144865518886979660353989139030598032455249386914670480938840661116528449676838695896119175108049152451585133121312837131469976227328564971855182781761850982616657189536706821313539262162166257484173767972372768685634188194624859198577825767510881806860392411016128934808318240439972688533115166892007084682427157529960324793518152011615331326641124509157082051979781987575333899820460778814385620264256104629622550027429752870544151644662979908738917890686839865578366747194269261965302247290370478013515610151790771431782416266666517510541465841789998417776490183648374249960008049719869448585689463685074967602273995358887388373401704787555444444007162952832364859165560761321274487957505279129304168005437156172844673388859202106956255829456016555490571029461192003518390496815597450499990731427120499983723042699760031946678006988210857402032448881191836078383305898465859445033396040607781490090209294935398742800864062253136575458382669771798067347711936612826505762088838279604498026016586716479286079101034562414298741163553061079773586139949480925305045637960719600403829873956316001376750647095106706464183331696907308355953860857208435760339618060667892740949542691794574008477259657796617909930394708135746615097683083687540918879245338990422115400104978056987927038981950604422052235240698458377254941652464338434971826460467533495335182543975946484882265168612699178989286157137805786219963442186331704438377531922814133783509283714576529300941325487000386865272892772822682507350670011009160336495630576123838589083951341951808471662065097393044956835579576045937953749762098044098868084013213329837156875073308251958210631728653731210889753524337234324272437790509410767669940558872519185292057186752775706870698807931841180113097645159231395324517344071624492328205900378303069316157988140283690375637562462259297277989554271971990773270828658161721432071375915650673321648386404140110824227996570603188522868409607379595436040521446696135434723835418120423127459135264208471697257362545969178769275153877811282256217979753981048297038785378120945168858318596531846907393305382995744557648144284244116696132621863829582913617834899529795920962845076007810415052793613353818681447568266197090840325448280760823813053441493757962621405561305236771474078796863721750815635280236640535421524804947016452672333137179890058472315387706907311931342481003091129410064329343962601807660467889773050721740861914257405662742967772908226581315879772394464203996547054081845730562148181720521423951781651416555798994218841148507355642407133518710090366571717863510352715395013882308887649623352978971559004930434568072891543064723922793083323369528648495670605289862849525343772930378035229374693023704084737051209710708350501731162279426953404636885804468548216876253026096744364794567988971585344710189846821188486744827685273507850798437937586602924590418776668881087767871498274404185577385529471241232161367927467392923154491629577482707443636953185913633558315543215793033654367561638018210704744153829427215481993686278289630982145445682607616894260660762976744699022201091850701352699885668481480651804345941397233966310841241191817065953466531926529042823746699573351314752048812698049028518998236352601511161219766594535180802608035069011252488958064733480631503134504691728204368684520077765583076509141589706571445180153723395635458748038813329994864369308576131219361778533974217384091448053761948627395317914838132971797274099801729767527347225481594131471935517091848051631604968624180454947184649493066855020623606992483551030149419622653693970493786984041463959186210397595673311197684227568593639484876613624086450480134170591514666152931696903108042353293087341117027348937882057585770167488061279620536564368369459162388061521243178136629963536445952803090607169661001710427506925932316634346493314444079996855718880755078713181470746305493368088587119423739032656880545831147536570764734530420100894325224337853025748777792486129195706742526902117247621022116193709307551910950773423356982168269675202692127586576351995975877162890869580308466534079234923316826024571922771893210408304982571949051117994444800180082558264337171455292641890900627674113102074811833166312467301218333315634853860627253611505373670748290310329623800438215942796563056280579439791752428876946723935010891734594668030285152342229579761276239891337307594934644709913198117930109061124194010712104059151287350974963827683015374813505196149426569768737430339554021167120152907511894591941927662258546185318181738593924836317417367364910845854644382370033858672382368517367800347552617406971763877104947806840620750745532407804730525825360805294383706909850866048774133264530366674173266091367867666727740028565204433903973690799674904883347286420202773082812864695089872928695446970138609137081711342306319387170355453862180583763063059462209761290928342203569678514724903232894782637913011833355112189097616879013313146110493410412871081769755186147970885744422066329052605379138664294378557284620709347553746425487402816974662901102428878533925880666891115503245793116168727355851868643696501763458017782470142057216152644606793135225508339904997223658872725890418408786107546494628867375080161037480683623597750951449613256768744070928927771560396067904241990369355325756528486826469539945348473120359798189289822053333179706651977638739574997620883921226932061636443920999433246983679092938016829716812704101633525310279828307533428849209970805694514363694473646035211967241531871022200284049265223874261861389492765686579955618469747408708414131633627193475164148900899389623642240914808523140981687518225971069270232949238550045819735555282120083676006081451009796108937966082545094061363174571178498871371412608929044500138704472670918867578340659757894493901454404226964031404216725024605447131370585583825970089359988070854442549622997312528646360074603971539009133077469950238834459615824820440987925133932950557827122739766965163043354153677822940568339272508896004758747209198018956679844361098830205293567382537419881147418138311347990146838017606939248906281153260953928543014730901355622014318849598839489801906802478089196659319000150068925220706276836605926798980651715465206621673387474426680082236375902734647106669091794903985632230914133974628688428333046217228159975928727560567920010465209268486932038236732960185683431167098136230323088638982653897108768859350244355965616409972765602509243635921013422962852978644090577340180897907510321640183433152827726153259169291994735264657163283821964272424054614343317506195325525943594746205148387806760411310154038184505774013765631810400414246847249933533036101127407774444584140903934580906567304618344580368153510148540395900198332887545057997089449163179311488403116562311107931341579215043856564710874837251557927880402091967797121322054401201024428196627823253997178431334257548710895728383437055216220856969956217340888394386656160331453334205079395702450406303931031885997940100988948689169382349571845559953868471317382273117403083533164264064944107279677946120247379373200699191450259741610069760370257582594177288436026708943928994376533859581805759406123993540347694458477219143007674584600988368499088452593281903108691786260579510748052518791759382202711153048603607502062639671720416142968071406725907507319367299658810946477004524009343774926978451579368405513916368200348067210482159586426803191425262466321438594341003752473860556884683371576158313285249187522651555602108115432545554015294294985277209744100144663491684202560062898332371490771380979069652434732767232212228446659010322260279588833748708506407071785251052164190737196849649663566829008761011140171590379436277498943823066083357326250950154365578068192091310861391374133062329442234757781007018293075334197186492951371096806458639999171450674005855679388850338826189806188724598287866453847334216997600850464084147618551049583504159299172337676138701639616593344910838556307000929697965721358179430806051643690685187814877610381755233712110161372895622149072705216071097287281083621924641542872429135010808577770824728789887654021863403462079974362844775033296426151310257058620977024532882738997546071346703994622460623867131714949364155386686870167972533966838734857253444618908225977175152714798567055912766595823494134377088389989294838026858606351047376294795290330462073451410474707222158805685192994945104695655465473096365462805934743985402784042812500348505003808857058393290188901377776038783484730620218043330999611183477564555329584828753577700429553030275590251620594870714811476088419071235442286551171631183586821116758398744605741171002146816163078039818374834319486186885831843952588883662040274793192960224059043407597799847906245253574652986047613349048879534854318198039513271243159461076212301236696895766681406825136600769449599750423233237209601207883674745050055796415851750145318846189036831128738817356504811705332394941344804181216969651348345485575894703589090219608301963014177645527410891540760375986532788726820603102349905836174608247920639650692582685971172508346626478196227848239040223036682043484024016252522486124419871960487774925676022015040235444923227161292842689753186309557166879658176099051070077402454141775715899071224713635176307823071711449584853290274615009117754047541126281857721136247696680622881788812734322759527878109728605444681530665916276364700836224594707437396084045545419525560039404583323911714593030145788934456504945654252555240848301241495026380898312453640568340708691257960907812082327057713088766311134052332502751954833861261937085857479513723682211129673556596886849477446484397650773507398635632441712862261352445055636951215365770482364494151381138891756106008579282444924273534025265398973954711404187487080444553024202115980389708239152332399272080331176043165866196775827290874741325474843898532544263805111038630853337974911041772706604216736021482926141841904407137450007382276768482123140674326430503431952616232358233806014525714616488663217660886713149764607559445443573908657929831182336605367478283425014001471331268406691424046230955401545442578372375801710017793357302202004167431342929767251036883011852136532236713862152009795163383527692829286743510057167822773623065446629479217809093565534940550876126373439347866567500825250289817841857504021757230836946203007690421896071519471490113215939558145734303422525124188152620587848760420564410493089760428030647757892432768733464103135910605031454747368133464942874721213620238394330238981883763653312679521121864973108423458958148538278082904236948099033894947856880363489650672789784745475854526385809986703335427541552912198392917465827791576614149542984689534639076957837402227618944734984691468248161557707609003950526786705785493247536161303684661174170817824857964317407149147574331360248472685890210805965277897629453947174382421387658953463523507826688105982988732297153781873567162939868894378746811299710871374193398437016115052802015953374904072217877727941376676190544113891553937884555046629866070801899023785110032298040432289922454614521609002864449414628555810869452068118146999492325156632355754991768010074242467208042615795159361586409588429517911255998437373892774569907085189027625092580084816425018545720331400046421603309406998016936039682669279925115764779293086427691409317125381800674627117340781062204629429100578763754220859250340561197871721388881158153558829673854978981442393360342652329280447685035825305451910866323943152965289115647121901926858860069844180625771582748369673864404341943782341757537266236317434591940798434456905740973360607315144880618055141959091442957848577856713379074890472746102845926581795343783174935514037268276769256216544858216654567399765072727746801209742718344668486032515710800496076244108886655848969641095485938451067046942397917092828855796845151911097033054860101246545349083632726222182970545826689492799338870291290274837657733046869387170262824624352790903235692112773119717367185256397212203619464807310063153970387533542461010209479072949399997362844478376007689549893336385897345663693891412711522070781980279290107736624177983290350959356487572060487193219191037368895139629114060830114859917719886249443910786426847190730492138305610143721576301459098732588170377126551595035703007473806621629323585156293526491420774557671749630797611946572358572516295286162012054462642269095221329873609551796815186104186263627045788824235969218725942132177919231260336042572867300942080981588417039980251166420468169036001513078321828859151936248913703709850751484848995910313174554181035667276118830007836876915331718090657629332282038665891666816674286986295394733892264079460236724118990580202623640548905697463571842718007198882625740078135568185928937084596465271615301799843644864439277048905654003488865578685430862736466039908908271385063220939198669899178249668104288471458847320068725059306378748593362924218928369261908743178518063000702317691690463656958867805357132255438502943629623584075706358622526709260559083607757548637615574118286788396493012337961355356746196074178968757446008219808171199019413526477163927600817068257335972775712573146220592410186032854683254932263553263562569588002660795514965477726519208158145419569512461444706776715827651204157521239961697526059923439683071846739018567687645887273879438327844397999693228438234543790867735308954481531030884554098470315566502945383792866111603434344281632146318404159094462202365491662835653434377251625992465826652347544910603714716919858773515890795735701084256447955923696171087673182002084273904157670773500610203112584033348601839942850143071479285731822953829922941236407171143381222251357960228890663857281267269432518238144476171105066330549727210966207764851182494180291527198427881179939156273783516290048601594427377947904409255621173587506438176752345101130390752313185255302116077212131097838634257986719895929525771951052807761279957072796659329240136677209175452621174957218961102540831501139695677193752311309733536252706130573791780539051625898876176772172612858528565386609710530442474878644289613161567054394377384895080535834855559580934182508018283217431695718971055320348393975079594629050026423705600139266224248652010666648413583914167371767972008517357290084570293368899179253231477021618522593424745093799375139305158201457897129131931757888543347122011703904735460197149291253626024937460461252932279501223554062579243363383207707275592872929674272953740211478557584953039388685592957189072446495381946355112686249219874482902896339140759606013273266085310691755910080994856044837663120059023748551978013263293119510460919426494082493070705578716337062225111859135887702246232494564882081916012170555704883817170460374954401783716568109644813824290921861933438882426352206841408937248196698341210262901494799039305166422665546669016092342037699189240208118661672680358908252658133061100221932203727737012731411386142068973803517117543066051464922256952323964288384327902115037141089418629136701491299081231795500297746573890453310984286401947760351849826250371157009855456603613703576194621582998581571475231458610624699862593274883109241001695132226651137896029374667016600185249823351093816999328192221336472138322381954189508821087318983927536344622992888809472056153825190957140804366997502132901019516425208091484908848090134097311615997767609070698627998079516101161275971290789118368108613252532830258387928908101841737437362820543873098880398936897233278336436199932245118956000094112314885455342612776568812032573691602978228184563308532081034657376374287925165823523485782387884635705504208806469024318222171404532735549558344959373142271547116286933883629757778228972302183818783536145535265059053899671368404962469616786947663975449099346054887722039747840556992148970814791552505725699749817951550046893672057607218944565110448243876950375706545411661880443486963077888980885235673696564883729734406401609689601051445840740111147202118588042028416704121475729049026882201909636545587323569147565730106614503208067308720749692272370770205301839650494416527397477676482480577885913573706891551038974279389269450915371358211018002475407788340650785643332198534003449497231121339248993807812731074237355222351405243239397640203698946593137204192336268355055401539825865050657231533204718604921046790472035988325029391644325166307096876581871235604031621142946425780586291681450102520882989326875554861883771915370503019353260915225907620332271974482199240454799886878407596034164146076714231223506693796279692702287823326210828123788689707910392418158295512356386720610183707698247375855802369058110201695465370021995605845538072110486646512263895803846484977747939541313284497345741919014726692653027598416138805933452419424461121431585126032989301322965652639049691242509300550605245719839977063380308367665802969033125960803103006747385343952759036064563348193805146269495360838523079566547706861066991929763773894395564789658368443544902194537813858548297480458981748460344958981294917100942621529961053037085185005205154756977249021887648633647519861258849843932430087224667032138843388588712247475573993542145791500722601880226961419374377325307159667165555827294465639091771989412336025336802320913893610368925808297480196827763478331071169235503744311485904983159763307421179796554652766781922088635656256344724218110922834320558993340100523675443898571598488212817228973897992549911126899221266458984504964034311915893346804288348584465092989456131698280582856464228694022558123999476738588653170430668010272011643850535536404033394630322772177447009534794590602887962824447820291943881719189910264700264740243686725428137705160816310035575242381291008302274560469611704730991090226990162610224794040159546221531702719640832411647464063877209413113460417209481645298027262720738611217390272958173607288075057201934492644202337208670924080592162477828153651528256996204169685927283913515881684488671360848527453280727993610762405925796985666074499106724342226257512304455416738798950433827303942371527325479301484476788760336385205000670315657682832572544234216870508908593428612167353906769730011480462669038177140962350033943431661722638860049189023457399193806381042471300951111135797019081563333373335407955064087753867754137521523957641715711843137636578667086582898992475044880767291148723788887756375041162508618982113502627743089026724506979559069319322917998687450146362990591686000313894997785173783763965876687354995320349265039505694293187480726074387984563531178403626947066394202852356809859652656418827247066282089297494861631614793444282928094644814284840803760241104786807893477529798839039285250595791425862084148983553519339481282446729846543111522764069908417669832636016244914553598270446332751203758804621013010178006181615897974413395621169472488796906018454458428546723788606839592855203485876709634318806523144872446742482759671060659204711118491604373753089119868435672153382153565832805150607882763546123113289142147081378522854212656048443800404337326241331975016206170198789404905883526812212204821774944352202685443200083199543026640193951087868738965022104579717789669040321830869878498794127306726610232611402993363890891284633853099053554691066279549420024408546922496761713011405290884467964068728499875203771850256576957306491023761724498235659169005657373545413872491434442088000020469247988864552081873841257794329011418388976641042657083975036185033406894439715074979023194675853595193113318074509503415456815847132426942991483594254310673266060285579093964855563637727682621912632874874030358220992418233222296542835902366255801714697968628982583951405915566686884311069917048500925401699016692799773580493627417961597967414001409763261948542228759006331654523046576938355909093369997524796847419174122626659130760241268907984535323194284747818329368715467063726485486110803249655781863021369773784557433611973646076653698210006183845304483851635353276539846839824091021548617435219274485505909302775334770046324801853739570226531980549238925618663880667364130452064785626286609799456312885348156754442983573138908140287720640539388130061794279482999665300870947549502532664395972252289455113024076738213032344829506404068780063680042719693702893635053504109981419716509165503026014017431742333163289820200743759222387679181456173721732433731249239043103360472963366644099302356715449760514422535378513346349730287486151785354263759724737710456126997654095756884687764770210732323263318853822439291156144582194288346367482222649527561472753370384479281625598688462422962187905357359189030307299345100773239138550626035545979856453313377739384678387911188803226083536300368909425747508298115175262019273742937262381444054274863376363022351314840341670195597377402668439327528655711084878905477324044863617447330476152627551638218690362633429941546820889776960822089368028860341721988480456161356411793052057993938683408493016756324751491624704584747992687622790717760307934943056373375561339654648669894465547385800638993068170074403530359689685027519740443262350372096846730782567518045596754441601271833137909653646289245156872589357339040204483052879831778510918211306151955973959659279157690968270580259995532421207555642669103149660232974467468424742645982049303068057676037119977907319279816108651758755915864690093197395838484319719096869518303760566121233818392744402339316519150402910757384532153254157106588555897855091685145229288563813427126426059058862522968847870716491876367701842385368528844764388011087359953246383338113924805885168375530262011967604978154571036352712257163381174620719581026008736556057383716171793749622892290004849550384079763296893074835542922440131264254209935562621393269453606812395609799362090362473877128284025384239300054602813797165142956709675381234303145148018316156935203237292655556118957829749267954494803877699718946988929237225803335397847250114346877525736145783382170373684125521777195727747059828247161288764078095771911639378313673869382337104072579857446831238058442321306020166439280983172278483870548381205480539778226803121019987595593243028156265099835398818938970957804759199424506191536326610742355529744465157024561197453943133793121928963100093506528485045364502955303512195339733321339667800595366391264751628876275959570777075484239073847175257989371481185214360575205977241790265470129973694256429120762969358796895280896889910582065085763925815351113802653683893418766756915970087781499302172207307983079760483456080327668124635514561576530886218190897283278621000469044790788222196258691746156041137453510243994472856351651474447057328032386264104892626689514430683673763120860918884905979225600994750946919207117272418566168411756123215569454376821311356629007978658026881237986523735477300416682137159796173397645403865753327634634025091955383146334054330446475125310355309278388020448017354503471621869619278972739651826118225471180174815582807569028246813840230811662321047278146388558028046922135798806865106690969610240074729057618416829569251459156825990153982639562300540377595191376225353388316736257122365380659459054595749409089360718089308467076942135659114095016399687288085202662715512129744031703657819613866560878642999901342132011199949974469061990057436087646060405734768284892419192270950616865885113319527142280741775230823249066502672291567903882913606998602686630844018576355274600670473633959012820737635233677053383775680315368584535366848845019665033860374740410247872563620007753327130646278951972633634249706176734874944868869998566574327263783198358128914459169861365774337010109211496669732384756911817226818720002384632249722847638577004669488277441992762930827491445702938857742616231870775280947011106709990368427170819006078257392070731222994755814212922633055242704368267455853229810750311118846907792713060774601339887660366041919955298233981389821609895420778332227413479244824774963039370749631526473639072743946048835266574548074969129305470238065621583944358859442814466534912774575184329156257725475801066727940394976524397720370967629271016287318693944616332895158630207736594986401166209636226433542864318811153405176319378161833135926648817026255594810273522918214121444279238810586119170458115227159326315515953701770607104070430744718978105639794616163920108015389403144588755037397192324731272507340840679241984378999133468665553685565087802044587449015198716501757514667984780511982212045846979514314810732772413831263006901909243985055122300077493594335853124679349375014689794944744803727355631453871565521491552175236620334284726739167943321409302917257099387811453155777454726832060558940260604149314820259667060912862481028445093547025640306758275140256852952268271539393702337875480611979312602350254657469979121913334371262084600429507948799259315198191222542155643724353729043733619148017599179589714354066676907329613314699014159843474742679925777384416545077457900599040029235137898866464807864890982790065852115322022843421854032197763793857700903825537463024262583938858548561492454609032978171217751719419882305687201207182578932215893861975019941526106500710261848439145997992688745717907628345489984956290348297383252692226425689159315590540426536996167125764961541815835798340003383583854796352066215467044923440600076065193796684095253595134066991444155470412630864832047313416115341544018728327768186793419840634965555147510985057622513532842525283416363616859872682255656951205697741720490074361875497770023117770999695453039038221937570767611693359649489280199796885886572377151690723661131045796582965849260583194281795026391229256751536186350134751821388498434829450155874098701730333457070289075605157844205470321686442823047035498413992304561231800967246575964780206067926932923037199689076937859407811787564143231230130237122974426277889414557758098459862861011141605471282504255325721630749965912291212012218466838222058056501240264558134987601948752295529589666769739635489094051448334121618615970462562694471593018642961521749436012380466848404143303856579771366306471761007552202639325687962281811268959192304884173826012159197933732807334059884077544957395566600482046196027651397469232437983434190908721982893678882589642619217348663986561543947077184980365796439271943607781665027221125277087194576273179359114039155027482939894523380659550708088005373012123125257416577576180920307051634892131356306055400306736909389986495259908633848008442097456743296368123388507644025256897999617231090035959755605761687191577248608506253797325908971156858940605749261067595074597838609170936148671633304809308278516753194154323961212682658919040396007318043437819621572737065820719909969479852076323184028533812068869621091724464022100719184692275696797474065135471274520645127633765909089919054985696311207145497888639192218177933556842366473558118930802322291980586954262915410449733908122444393697591052245519692929363373341399759574705850310422687867762122685238425882585492008387692846382770611278311049294587767678205750948171946623451817957881056895551563160358256573257285840291373677104682158507708000813083720565608599381671145277136254243290669897996078918732847661295064599217862079941063213782037190646023570311054341558371061638782916366828184705478768438677572748808759990456568108655820121483411536860021114761665002309932567400906271659881828709209992606174251854381535387320813659138484342397898523128295473601408774423684150184980939046069919732475373372143629161750833576154888695023516970844926241785105113456694060150706941412534295890012601679519414580766952722193788164417070522612841456401545963321162378722070066285433592232974330371609238443267505306920677707212266827954209182695910262238351372582791896554588597810835295019246320027896690169135397891551990774034875181580122200353445738328247558431687628590942819891478316257554551239999527451417098414890028910442774721295464141634945794794423564772617408903419848006404226958233061972014004135320312367399565495338508358883654133507734243899413151269440666444079745264652151065052969253047448920720964876366426063968135574102053452803950701305587561317810732712095687247524084155768071432947185658204565764180928998462378898165477342704156991624304830984652506139073438191806498185818601721415932809891148731707378184983702845714818836516533164617135359584321050588683861126481663389767057009085241778438758170631661293867445284489219377816665621400972040185189285549090332874423770823541555266611450882192249880114320395779052420731538638909922345043430512020748766762491724108093395364896609769646788872902138775776527673288883923059617746344868026421645926393294653934030011540457553526898965605581958537539774481146531398877817567328413605353252843524526692471975599508497171264259587139754891961691304265803590071534551872716568747452643446058420867002112232688190376587136186903593519077250931661502184227541462667519918789385757739817265633916382354084682411207773129978668486528564536072729941541298624786070951816992663581959338835505426757182113654185716481276695838781859736365057167027500364516328910394170237290903041032077587258991122969336591115008429782178360108076144049201741624919669260800485765439300465369275108875192319526482720999884999072712096375859216979289321729009939678724961958374728050565145142655267726120621185105180424452370274969735716961142178929772672532715945171665119070029239701259393214163565145485499871114925700801971439566497236771320461056367402352030784364179898931356744765938681408059181021669324264392178020068873273176729765310128642019310750804833453702137125122802697755024435874200142831699850392814740053654587498685262445228201970200123962450040052511684985828926632694561043638125688315856604240266853710703342893698741500997370970502335046172384595952290407598130489159711739070289045414059480218826148708723842183113591134607202739300891725411386022606905088747425099392043040981327123609718715585743561346899271427993808035635135218041950217589062270757037310495373604688288841791072864710086784473266689863367785626311721745051718650625876200958996645716441619083078276273928481927699794641422026295226534650838689016900173536246646195994825200151277108826975396935104267892953246125666170995055738613697371930738958434485821616616921929025453489917012371255929996731600592966496496169117898178672921927751031745514174866281946326559000279308028628710099701867518187700585367382327382540728214056487786844477737059929658341667233750299839626767723085900966999433173854508251720876047581462872832352052022688588223269978349311255556571472592606690781207771672932019022431823190447303279428502512367132683483056841519387492516817473737954925366655529548737574889471367647700429329926041663183464328629073082520080802148607173800778714701138729185247314179446944587224230074499978468781002898704794429318457774033869070203683298756981413645723007807803462707867106110087086680905650595450833106826597149140270706150159543694628914871398672039672398625120860222795529034316147851859847746054692163003565930611074344797872667339372915622202928370215936757262566437456056498910723925691450124264425498125834927659701224947654300361815735267312433696401681878844050649713779995168979730004850757257960043332913981075420659155302492501578777101333554084699671109622480482926700335533609110114479012502374262125183761195338435727300985712893600067622314875947240072665680675448322890486064448140868483185748306128877886642664318738310566885107119216337204500189728629172351771538776725767888228262644178347559787097695613204410900103263289139648707631336483748699092459997524165427361749731789816745901538757777452423391397613797735103630694517082318070540814646640571518356621461232908125554610010290112209730179857729574188270226934321938799304179137518292856334186950150166439855398153163095371493488565293671100950840279436240032514158926956545177955973396453242379868020729082807452047283974753833975449750760518463803808151228816858401711077216090007138703582567322961286017729927232801386125552263708282394234037880355155902625044640047804789473369203361367077749309434422658514579688464922902734936459558976463741970069792971669293986540226769149862884633702143301581175496317150087923682312245324227262356375382285341627859520116786940442281049086712234163858333453223049515257743191218564201972434509715625985490067131740844595063928753988297152468061016433771147541728503636545323635095182947514032370329219201456844764633024508865062202705328872855368906856002587045620915010771377408330476600531769886128086174536552509300847572699378860281835842622578710636062801402879422525594085671984721166548869873697623095034290321579546408565629842921305660033856482235321423032586568009804253500737308576109494207263259269313052529253567037352392391700634333644254445004871524745597399411095633489119018838075117810418424259926243941838796549976712496351985614718960632270910776559492853418435865986083959684050954569126358088849705267846868499015176304441556083077973016321225775679842087288437516765354217149799766548006719734204811906233408808313665924556727102627149351514059062712827837196519680785986025119965091541681903165746226701656303061323469897340459264582565338766430370413602890574183241311900920894676905792514239325032027532926525821881578815250932493042978972754373695374654021232363975184973549062634652264835448916053901250273724091249729418487309622030274933133876922435047141625909060455178817329216646664684637069705040202087032457596385578726708091447010212025274873320400393921193522620160860231514393349561237731128053414338402663611148994025816741720276540848620892539593540319272380362748626184763340376309990415427374169559598286342288648144305632128528193864090767755613400973853288933039690032113124817084915786392500609654592820942750251729552225075891783195137933411617745726265677505645630694430608246476606510369280958032603146991798426601159441241286679052115097974511508605691545086858713260759798081880534488191222030022191376881796686604596973393113295104186768976690576512133847185646502950610306166148639318527686031970310947954451421379538030461503820141662259601637231862275728896136020626546678901615579106282379528523778411794476159668632888149879345708534184329777094991008606133429590052472626477362380845534998295200173092555358880449921534403638235872216771636057723786431836009450554745089529656561973517234674581118390368939409920528134581339883522766197163100914981937246184735608806600468111915827965796324671228898064587412757085858439159208895175849054421223157071608230499819633927397023194618767888787054129878641248234069795299015431032014635905587508590265601236911826651659841884689777866169654408169457337380414234401103430826008675679381801956076311640917438342917645738421943410624997666592658069578657084186120028358629626698017519261161100595163639420500388948115286272903553826871744124557159913964784445761265417370074474047163544006708600617235488793823743824364719666286845504197640914399290393383107054206615522041951468601797104539988742633982981747430751106407797148254900515950575892313897372786994649879771527570234331615381538004363080002762472612907757684793176285460407197924420734450512884314668297985444539883641311017130352003402153853026651148002417564730494803852528199962842253436915336673413539310948911388246467372992680289841134746598429551730023189505134486420874743729605294590450630739478235362714635393563608289446686640219141123992256856487425614058083565902314652617075085962776185794280903366221726567399801283580336055167358604644513828655427932810332366380903631377911813668662311241386272504087558738015699465273335735587818781351105396515247896037636870007336477356518986096677530839738430876837715126128614011178313824306657363673233316203177005273471230502181186091056892616848294311080691413774597513160138849825441347201024749319768892372073255347787881207565811645387239714515290271686428141555705197625617433104354540284376651449612188879889236991822199205713433701149991305767087509205715022370283128257215175524821383439033809744488330720674948891399114939851350227162918335485908845622823399581860577366151648354486801423815929561758919722954041915201524873230687172252518287489606138921362824183950607164110628341101435905374558603133486695719308194722028773663637062614322443245899292616599366199190980346743229193154608362951325410458071853183364344475442913678368439495372547599786504291312869458542686627729709176246551073532889797425179440295898967136731317804520726987361068182091344427009182346363492240632998855409235991619475635872894855591536375673447459784276796991113210959646604357195742478910978644743644631037104387903753368631790927138440554696919748143185138069522257741870080532648058852703035037484447534323708884321311982962279300578216516459732618896990565186736221121968381726865500463296275082518693836051437509691241376976672585516417971187635883500967253566136697890888375310722493776249241599137955036871707566284118883715496718317491098924213277661396655072791001431890547289482805306208487939682947350240725525329342771269933130278431745700460631380401356317641823354675120842859074988290342722500753700015315917537590305337561078769457280785727843337535152961475649358744499686901279583086020939406631764508636958552773241968958711871529481182721939409036542498402674933969922421720129531509213902748869836256534171579851254701322195064255431092219324909756135824871275992459335804698331900718780099510374532765222279747487196931439745447403713719296560939508017346617658836857365010793662941454268622471097200218969339971142809124168908166453659918934734367311070248918700766482684342521376945393992652959114692142639513834421803579473432877043395210833472546284546489670238088997313332204168080668965395801633198437937434376377888000328724401468193452699956616013042281888922216462920332017619890846210935922679051040233441224106297833565940252132422694515982955049661272004067721327899960924172532135682042215377557043847817398081098424577869184317530520439621816276820806078654514897319061610073797342264598487266265837883160926216558962706938738913868654048355493047328268979541208001876177983966765893598956902193384167698522910431468747715132612434703683973225928781543624031322840201829407715408625633045713466170630783811019747321839390724826705642507101733638958775904758771228853032476215325474157172327492420004904405044320350433961909082578892908284904975851688718440490156620812720419474115901056883458712569450319528443020517724035182530921821604374990936774454260311282437819695262026603740152333401645097477419501933203985439332909860346033276361994106608353665503806391368493891666404021198020765580342471151075065772994260396983460130043111281629469356985317409770282668461443764888268902577443395454408044653596659939379202451545338224011917596768407253660494880203587758166177737942803808211172342407602048192247150654015212245856297130574757307405370429868022139406617790078084272572284340552849395807205583564333828997866525024241350557756247883398202512850159915721419781035562770189266927990376361465500698445152005890858829629521482711514983688556518969584680879325102664536042559438537260610300015378545491306086340515730644071979579908955935089572986939788984401837504857687250674193874513126334583736358721105095870902860954538002504719923035261193117973992336458691796115731216439784858220443778185750267673406924600984324441979694502021668335185102461212691827151559010417036489910937267006948966302190044374933364824299375912927456903216669473707816734782516291355718396733190042680199049769360654044019273285802377505816314837314093578428772203222728296357035808392838896848406981565866733602771623594324106151049560139925943173868295577452068835806826700325869955395995007526593668991133511640698658638755290819841441556704177733197912078228343643354051402398200330675365559173194882269801532605739254169548655773492245445179230102340507178639839266221722519274036957946787170821706280076046014193912321324267988931544763651823050180666299848818291614674268527435227336283866271814977759902039120867909094750772821713280344071179706270176977784232655631469938037115437010932119454696482359457625901541557836343573955406104554693968246259143579389762977150652521649873457152036360733013215761224865135313469854221112345976255350975449769710328301841243554846921220205839462368658418194380319771224817722194197780424311896872190897161912385046716578148816256929936635335388370821155239482728691468063495715530956393905578155128503193394790929395687102606534910728789515205960360204578538626274194260448437894194520425326020100679239831014266412343931505244554212534294316613069020319035305933309278269837655839749063271224079187349345771827638915313526213344051730481276164150379478408574825857221280480098701913382297611713039631970926137823441032708346831699691223732850441385208835034822728496865653084914789567187393956905955186658656247408656930657509876088697566975580146311840402502429559287273965566229868435255600236677460640914590193848380428911253264393408295672989483965781776492542758833503739729589438375182223351157075533663215097428670097313109179570804177317798777790621925105756073726507252909903787142447883474031279946468461444566810654794012228558249628950328206858781705402234990656508169664903008549046797071319835648467778715630482123448172749539207190906743366632597952654306113483179388792583732904920154922137668417182229058467280177496770199417949203124679185077415049067841263159281454242439533205394855666911653702645849939479565011270050030496955469836815827156218549566797128050215603375998095015026590758807548452702732634801073693456749619679914559026270588586036373912392385953613838365646244193468617261065960913789612582208996784911205572615690545621575294559694666666576932744444901354718016691802892746268987188060928853281831669559859031875108198978769348736334108725836798693086749087939538668919254521442015071549140579822132918628520135322593393449386479353784188329518799252804990385340779506127700553918362097949426942861384060229629437635258140346129046523678268027116442112940387060287376147614904461283095814902890044314106627441092560850973255102929779612421849314160938228316583377143772144544840365177791291012281125096052878213399971896475967122460172277846934517003452896863905276364838793266190465701600342559344573568990047565183339257543577595857569028986172766908546900565631877900264196049641002383572732088680305683924763006802367926191987956454114724331428849382152608633884753854945574694419283544987822143390723287610969887382791025808017586183691187072508686187814246924232917248200316468650849013906506299540489684107864204345323828281026333457845503086695166072696818001438114418200913823459603442731677556217114084765285328063262036902038878397063160173509049561184148732624543401185006729873854543705314397720454815058909867766687985429315569643269145617386628812440186523231482877468348006060367626314766558166084398848449036201434585922805445581109064620424675828914135758089476438676201479203457287347409711607348995264939865531999692182438785972354709498131336362425093732367632064040314208842242421890151159494855115980803878958976601121287597176871151036353261092442126750987487980095324804745646536281169733392868573029810978511928374710625761662490302520357030603567196378816753935840980671771083046788621165317864918171840370519368724721247455770914194242434177305677274201807822760421450569619927536524216708935549117259227537032729854876290695127793539539165094305481089548624259259922139641041111279890603648197623556880455152215015138445965535130079406566315516904451872932823048176882796861218590993680880541736601348843112201468544429638963471860508683679266482360775020682471115132179068393907224834043749833955917595506161678837931191985944440544665396015600594806671659064506793142567375388090409390698326079384069556881503135677723520868263472943517282000972100715279234058311775835251905416892388133761319641426683543073035993737087563073386550649247713050422998502401896739659945808227959625947075440225112669700732742089495174367257601420390051958067043718554588297915110000146401119363479336682506500622706061060247381008107357571187019012575502460048233359259794267145837986632626306446405277817519841815579262307368380695643670510006511874569559921137834777142720957240245191199703218872267272207071449839621576186870120098748723412268154866239463921721802591793204691001009088060688242493061320796003079147692295722885288581455684404835898238672029025876940853495285246036129677179896732793606416902118914866202175290837991594898244356142993105639132471478586909245427492105886468241832203106499577060953787045755983551118625303934291295751474254313330847504152349113402043866597565051410304305628160222081312956057170130123405315773156903793048217147579955852018397855735736265677411434834528514110395564203042968815031391311760941484156566304226393228531514042584124289637639779282965514743253482930404856634526443547789743014003095700449660837295770413405571071609625396255915742750588827676565304418723414656718037656828763388173511945973670881274297512828856486321735710772842149051454085841283854550897825382546497285633795874118108028782512042852504052752869599276415831718095159847107698542615922875388396615195002197176040006293191189396813411160375700494427628763165152970160110179727696251342392357151604176182960059745297369928462981771504781343889933807185701250573746552388027460664212202488812776299576532555617071967582979750388352002100161224428564550280088531259871437934126299586750758737371795196268777419195864908786916412213976843605496112201866873645645369189339670797231800504256399301835677254445329331277044074661596928264774262579670085456381005218692813466738224122424434112181609711131947627399333726787282606583849204637432371338781236684857340862948745713977753323395655776604531242142293650549753418967030316904224945006718981602226674478395397249168257702837510256312798084322194435534269232745223836881482476174057096606229460637934904936298065536169587932763209020199459291792034125733104728371079254623628565342793121673987489919396004091077652438860679069010617980446631331213331426990350287888997741919183562793629001441340369984241120989765055367763120307434410066736346675309636552763130349566327308859256035234037833963720466042779499929518881571024399607352858067082569002922056911814603443958841381634868788808500889834761664747823842311798371115769608519652912807202018413608716937502738308797284131005609852604984323329320697242347949378061462717972161448751053852356001237351566979864050958314054487846699237542949559386001198803213845763200772968823528597842404947978666710860500419633773396777292911258863210877956758538048958849424913695849570001230017386343834880664114111689099021717616333744413351003075426488888022559047898380718850860189459308359400639794080090397718797174427855878934598155353777219818455541320781544068019723680523343945471979659542979656078903711320440495443314583969718675618678261280589204144532508435761326746144115064012054519382921202336007676593655481192685352290576561270894240276913187966047632443860813835336838750475434071766647108560161837660439771232829515532946424906339926784783674800043870049840698845642175051377308972970934825889432451499861698363663736614921304924837952739641158599705943431668150534423527302197707952416743678111691380273217543268847068550452135319023328018498821318629738181122248414459545152365434180642835918451106128455144578866382054051171874681522089115766762531789566909034600774352016175408020341778276208053679300079278912911368584505953128148636028679949936844535676559406647167844810733388454405177487175404965148878288927515204446470768134499906135143998325419994646425518263278161433673472075784362635311281134662780023338440370289874332159050330290772951958647158915170598298985017886142827386491510386086639500549948755642837173773178888873919643601768324259813255874904140397370498352195643057400111601946939651743342859043014091065785732595792982322433360055467906594537139177982269462457821522381230022899143616917222114946016928441080387959028710711558745407690504165531366830895089992567276262230547301070722853857007417984399594240805062401449509894948367574082629875764167324016485750465608249789108105377281897239224569558811027893648856284042104873360347212647286806985539040667135080476210853496164576986879923672756507696344904719921863041052489830406499522189262626585577317342240864343571932241601249864652434059216969253188403963506641994390281160813398032823045407141691819560348645524730323199062635024825062695351490355750417274858503609972139322950820688343630109501979069700053156596668190703173052876844354459614266820117489932930020011597123835651892435537716546546534640425180515811004476648494884649577159805525018021048970740019843778170222151947848008389625352590750543174128195052923915065585041096688830815068448181917648864475471374923420553672333524454920175431152418355991757613919149911162424570006969115522939507123433098295626093356131533957511356362553770555693672653739679215553751229885402051379960494906058309843443870153110994549142683558326649546565533420195444740724967492350558785416848034302543724828416287025412063050446828940371197862576631136165617352458689287568188140172091446651348655246636092430028506889345392004897195969647124395130412876257719097509680121686109878870066028052144040509597478015042800243520589506929152544239982676877031090779707171524165514714986410048312425391725653194830546802389573744068961418575418796852722430063475373814465729231745180311729023609695186488907735268004748815325110510147988753581637936130374091411010350094936100669500012327228192456988221390517153959889074199376788983790114597552639423261275919441125899548525706592873682335088409387812429890184349827189283120942323424525020933329298686371357448841059622114057025192011852146946273558236073474194576194766869558088344183669013387402963463899843772439269218163164090905983886321460499424881421246836031600115517896551241049020474045733603336645187714905371328123189871859415214191266205952384461996998746217592015449712558419131333918319554223770700889374144684536780302752290912852959196166249262829975654005862210938375366799502792684967049654548923775187250220828459363055426778491480220509267544153940864224557497308010168153220715407832604265316863166253566236837953418448488800914525586591401250278918520865841119831811461548005915444985426904710046809510804732566752436604270771904973755539967964238250887065478848536911198845843900406721156030345945834432265629695390710579200616824891571708367486448433812503733379213482131884647100187746138515980560342613938994772657699110272770096108534677359005690562736190035984403298840747549809393353334695185691369668039869756721815793024256677172652936114501575935751601423765796191535588566984289742511164582143910841290985379433793844421891976498588397501688514608026867077984858566858326803867499100304303500086645372446939763891839139835130598352995060562812657125731019010971451946219387073087612301303980519349418068720258603388363504559394278396347728408498638664055017479728188028695490851705744314392601981231056817946025222451268060798230647172422248636004113889210896717215412481739450666452059450164970662379143186749864291740599546496973709241968277672941869864041971925979204105285443760626746651440015789101487865712151396554093036073293344165333845076297339772202413656075884597160562031365662386285626770333845488849716502629113947396549442319078888448822626735116997668633058492573104045740579952645771359350327272181287615848433943131515411198564482544293753755732455509425285653777907048095749352388391871045418687298787226805238953297356025048223483009404608312909660970546949385583822171287969133701304800400039974484101712924257648900387859955819731655404479513741209228379380578737796900882618445023446100757162757169564120782308589917943769036822436685166437743748870876244628595046204800338226486120228116381677514440343162187084534861057839991140886107272718589610948811036752623897242970764028454149791756015714920877835696248773078598147623912502334967860200276621443346005792098187820558676962071806584635825872118925406552847310337136736948176628841534021197119212250353032278492206584469014052635157084135390354224658286594797083186870349412670024367657983864540001641568112385400152420855973710709258153604357719083334989341601819253534783096263076312559335305817653925509136904882032069344466993531195515814729955528224305163452456666649886934992968797271767433502424636928657964045362808600018385089487867356714046056040169959755978125692963999697915797170620066090193446308517728168922485367212495188311436602972514671474804491719584999453368176436614074222836390227625573257519257586773955756098194495513258809681585442523021853073595441672780482719618690719658508719133479529609057828536954373676587399018116730788795235883265399680559196485736932203644293321229355482355743523423577421189499342530636232164575299098750015459152372576433042918562734004512750331980320008943845869082473934839309785486749663958370712369820162315238038265597493408273523859736883971814683307830463897660285183545954646143775715684686246178431461571858400708742109403147054193690181419212875958735797021984694276715433217567026392166045031559453327640502298252728069041850252937397495751794974642683015506750648552996592193587980504378955981073402536763632088998425164366952356345504363708593677153426358525693782650711087484653748578771640353797201225790808737914226723070588226845414978154433821054120414219288663912962196001164971602349205022652211308259981999280286007626376209199341440082599077778808215608168645451668468211355179004700609729859420822133188967306648398852839003577721288366555206352703071129632780525946365636431560750299954329112841358327555880916635242820697242538694586753967765006574076623521620984155581514494080489985950463321947987772848728023008998387794107686647255134493957914975541054936722764890746419427138275009760509092534034122345431299388176990986528641385786604557634553997954416373913195426929983631177423863180977549650430644286445907717444987753153805272211410329991389552870955514409050397054933452611688181441639002505681698187349738920357511350768363571873148874119690725450719685872358676590636486090215711033837819562589391135361394376862372405178823534021870562678518881965887440772900149383220762082148290134784403963045173810669024641681991261793268315109507146975430952941362687157282907130138736832594481337563609956024676012479046638265812085780538980327786698184364977833659494144916015999574523192217171431821125786947977586790037660667961344312336587550852504680963071244818654885600344745163655664581812726161213565359516584705912049996110628872123254661977489211831344047766067859783771335973828488391821968221051008329005092828150066774937650440213536076731442953259060170817702210376235061025566110590981034461676677848910051704298157752087471590561831816432974159821713544906943337190523127333320060451951952190876779462381262961841673146548948337821677270571658550883738183745032835469248902063658601458603210224723320774398142959414314826965416846784531514589659817390574146941773613949888828326521738448018559126450758672739016486873543181257625535917482180313374917781445085733392163848229950521730004478440414875202595894461492761808794009161580760428525530171553077552189513959417257245686723616979874998472117781700176503524776535199367521418179235173773090778116860346216834636689963518527350626435351266661603441823485505039037050482082291372913119526387391124844988256263064569383141632466235855860216902763751919550015238365618102660704902877774567124518657198589670468948864075625568074023586727761793636652900798801359058605255489399827826230760568938012547072835422768067009788697753451363467300959317286908142685631222644114914203266920699506900386310670447013903478977721983954897622797011124591201883456375534780030778053254059123090887573753102065729611415833702307249992222374234858098790545850318635488163725154169812265507725194972782265307069957493453705773202728227035760544091893267434917830302896340712416580807143764331008654010959726572490431174571307710308189529390248137650347850053803104590936363562550144116487230107983354571438356570359251972968885407004443058004649146863616478905791810260947477838307183142703876940393695980339772984403656780892642851759951409091785625552369131889713468522192566039806343601751727746566374410952402872240553096252595473161593068966741473373502803543514353141871395378885456691789635055677340331527796869248150479556895689281071146132506063427313704201193644045647399805871244872186710419558582200861481287402397351517415505177893692448891145595880689878081697105779888536658819820006100158374963290665763291520295228922040084908532579700965929274423017366667067289094028064156430930024735314935280044306494645968906639778163758024530547756535942168155908406517119286586951817686824748592637109727108304000993627670088294620431019651879728528680295991827665203535067018783369132637611474207697421775416058349404422258919258452102572837933915358717590362733476054805415255641464585088861583440642326879025284197561351018978556912983959830433182049214227700844699165556989901900448373733349880799855368119069369935395304896179576359795808046154923389304574359859576941023733801071418330042833273040631816860249450645122386708982028544358258075610171061248304813790279103670940140283622633101323594122510514220416673470228761128702175129975641948355271526374532003155055536638492646488732784449236282570501082993178709138843861135266954918078479302829877306977645321183086934137012955035550517139053343973559618708741325372932582494037411567030983586892015304997700997219248290358520107724335484433435740851127847259153673106339770070872700266891573986106320013151433155396230974296684807937672533685382483625690643758438780225500144489905280879070310690581638305588599925774533916826662316729065384163011201362065983822338407584591524369488652519449424277052525068683144565871699712336139305804214074601895189334270294231956289905311005413473035857201103875449088429958029646824251837099263646021105703461478644047406715272901262684744388170060854816158902676283942439599193727306339616016326912749651115687264467047531397569396957328423847554751573613495169204235524854925610577349799494429995623241119775144590436408201321902406002739630993177249172841294484689024249990572171547615585993303066943271408656570178797172495022934666487214425692428523638930212303725721374075480865711003602216372265575877065046386205912012005301419588450547181500637067087658012726172525669335192613937436108398349250674271666958803936237866011923530711308004927859068066140625998243458269977763647881344683425902502014462494431506214518674533030561026073322479002440455278895515388725024006687709792462958549075979823549511712639515543392476533646553197294762999536199385129072733362829459808733713019055147685202745908588385338636800066734896979354982070018161674385241872283045161950771532951963553429346763921262442504096196217770924875988429793115279509664746933035996415907893891962133913559472261329874845200746544954699639232824688261472694325573355465759127174744538422573156829297738088936432222934621238751749957010010230736359791208574970443938605192027867653352899244048885245320420307915375308514269426208973530716186199453461096007482943181173941681547642591719017732824385747910228453611184383240330909595191637166901940278784496157102306135246943418466752192235135714500150172676624367282515806397420190706616167331855659527051023075298706797206531402776969940162274554894123817961701373924392298660474600938634580775665822256949245439754774159473176206951977753112803705035150920393787513746396180557215168291409101132423482839982543753650976325409579008469058560131032665283820139898004321607744553678063684041652544436249129668334087243898472446788259095492601278832949304865270670059395483149239442297321708153573114568924504236116396456794299708277634827480748142211491148494403666959122037038790432182988417170495755276280763915517094122001904671926042490068736805438498236025145333840771759860207566375881796457864517092572056463170400287384018421970440498005559033504687392804316004828833701939680718855843283264519573923765647376606733255419444013099019808414865226004028148606922561414094162243676543852107354343044755502947775149496213393256374004119430143830199971648644470294197417558340889187876031942949452494616930402764656957370149518089020221090529669378527820239171600469699918226060788846587139225585516258010992248557702197436345613138327914186373020264778280204828780333251271844504590619282538507580826995543688788455149081473488672210218828678815535685023681062926800249168582471084127139883870308264861768620554047076264059574063059324238414547076572682736147135601788419674330853037893093442963455378651820942216847414619682183744239135003243397442689947148830114367687941004103282227776945607162191034125043448595278742933880689383814601496393618130149229210063602301512933569533703486896550041117629120293372879248903556824277857734847559132822220989623889593595763026236468899852681907262006792635861790869614424204788516578801782528865125610000041226429852127720418343383585835023559279467325645818000836176320275802876323778054447883799826093820114581807638526776663717930967409735598044984588388762306375747254375468190549575640453058570986254667390727337242717634701480329689886997795375617018720442314349434132165847836732136893874521558043591877837892124025581504850569369635115172304730136567950549083007743369292002684419611246742611109091414930528035134218949990606410832394669218385678917228148426632262632728176440731771975134565244263916824013156293179082525556267061316520427507342092434603676996906830317104544798744454979655316650769749163163946643167498466991390608643973319042647950127277640661926760217439989263767492727069494448439200678470006601280580989924898820222194770443644758979625462230633530361785378072095083846554408078371698350895366168235736485476261783039948449494957021032725812430472122031619746834545006015499930055817578076140767691538941244918047252206523731893132842027930913830050478941335601205391686319683703081562187813907271760943261137534930284430942848653044404464876263329586676076619086364424712618482327932768420097249491002190429575936496432937572473087129721719201646114022755090699139289680957618966845335876893198213135848116397127825170195223366755748887406665516348396667170918915110561913975294781659561183398873549904589345238663358212420064401663944775382648825256478945180102436718088944115152595124710275489539307391147570584508769677088877528488989254308710657140256475288155176916134931195000347621727128710194827028123424885705972068122859717979007297625284778056913753237426472239094299020816993454289124924144438607145125066790402736643369668552263347392734957438166673440360863244662715812148440147833985158940486149757161816786371221388986963599117572676095065861490103292883158076498121480211008907361855582577146003263108831341705793594045282423007286245356036910736890584283340958513262237882200209349604275992759830769208502724485556245419559504366680954044700726157089938964255738375899049376459182893611503585828238615873534675697261857489305018090322330864930529720364608796004167552115860537229507789575056132432077635932304620315317101346082040673711926667024934860800282149756390047900058239748198715891796978094145943311198223600357814178675797281877936502448085923325895891549841643209976588989006563872042166836392905371872770897366920453735956579198328641884482359745462386094765521853520872211147552025032896149621755380230129571174261847934492285006106212646424314505230601402955711178538929758356611627674642607089176262788931614409305583251416171792139626035247189766535742608310090531586371136998106718287616194211028268788046112778692381606889060170577217528605220652904388555118913698539582354854531342251658769223447836698681505339369095538693669947335304206885962321777497179318164631617532429512841606832247251501557064717083442822478006313671585925221077986165784278997461512251296148491193932799647098697389038712970551895969192507468421952663661117969330957591871061938230801669740225163437910573825239090732891712696170289581067567119601836073189444201721673727468192386966654937648536916408044859146568950613824520578550058166782163160903046051470297049648207618378903620127217244933574917784124287764206038314690150840576289410499673563126591109214259109795743894569476770376220725865724452945831422210043686349745551252923861122587948680190330332165498163435759682533128376847726393003809793148775266643655628645933482294007619993060179800698656617557736110447871089393815636338151239727133001577902688272233815161421601414611243882312004913789278442056038550684464306203444805157385750997753111143509871948929994030777133721521977992054803674164788478635528591440494503057523903246061812589678361556008177952281853455112068255811846298461559878734901308156502128369685648639917995027397916036453059354508339732406511077939658279549994092815669570469155140299861746049509100485529074283744170600449226839980972679958794245242281492232734746105550435987341834716862714548907676799473527554674735441966890334454692563607861137777328576096291463716970505484622572734072950709047432687911400709730462051919526409322689171801240753181699578113902586944243451792569768239898501025634767084747785483264889963563732625371673591069198262979331149922357199526489478432713148379108114751528190069591950827042665371775083451003426268869320671082602708918837585887220434497656354422133619919147091684916082201113167448045996733650377560223744187397463102503185685912204991405683754630142761865763162530269936038807950907897421351443936631144016169833040953512948065478533683423375606333112704963212796489521820711414070045045548916394820511882286291824438048090470896709027160828385790444187442188808050473215725848365506088039899088286304378959282442378168229982428003032610704741246531308110284249566182087731982352462629196592685677712870784354251829170801233826254255475707127130552715646884180443814255953578536455599080877422415950897581183220403409501287550757725414113612012381669945250975677049808951705095984032321391211715979382095237372693667799068841653804739693681860410360429459644168449601290065104607577399644850323083143397777910322756513480558497876100767162992238430304767859429857259368551053530167106596287542798872061925921035923504757477519253895186202843470568659008073157588283934539125023048187598272209708011984206988658709493447674793270301524985683396934398655213990181941176858671260457016507304770961116337337204543477154435294759062526052756058333515081109914481341053992926120947797229684579187682598270364299279306052138689097767566252345218470171868062210359470447860330375381410692218080228665891465192375749777713427532681962453032923151332843369351125493147681713544797968985750638930610586855658366406456787902432187810558755680053633499228420682197433061757652325415050347041918322826611323498768613461845800311050973828465208179280531068557837120633498573000217691752062220980438723393680682835198984750697511115355175428639772778304353865824517398437974229379336324390191308951400993367821296434716504056164750867603179997504180760685480565164762595183827408243900163404830211822522788684637269347088221615991154435587446833599343540758777261016342058596493009817510672537305737680727671609594761728786155558807008312814603192137704606887180196227293210378452983933924090008954741951605603470713034753864992215526343794576281946998780678546483330415171812876429858159116227943450406704163308451137016752032336888794316918271925683702688405333000968929097399721092150106135741750655092801540244102143727519911667686382387823925896400084419250345416307661768668522458157724108280102644684709911263351251815080575130326857898115473669971596321371413705330296684295098571195770224864684692854773882477599219606288720622204391846201943095356256043529541302719793916810267099476970309335093058540708297280109398346157178612678278638196812643967962179170153192139404813340926901388364612779914270403942891233824180335225340549569534630416194848842871149529633551542577232994034932028057969917772344417631900277084915968183709928783868670881551538926210853622982847342556051447948461951601708970040008370407545781467017309318722751030068882173094054313180555777995351334954356702394988612695027013884647012836804995588480528750072780008946774710744731387567265306638220494814056645682477576923390551663400623069573449766064679675586007458497381360866288327258492461264221474098011410542617492878570302064444034912774134711284709949954910593570696355963688432725539838798475322405578830027524203290369408191402846309795903170807693264877095905650399359641872018227828663056186806330491132742248856732725024356165053963681444823343615916234709109727274841500198072059365801692081837173067075822881068439996966136086077920165063987790113061901815246751664847084072465196529180143567433775379488801469646013645506372926769011802953589460583979236060536534353831956033355979684317806422568099505851336813545703316793711624452782645516596046143871317132667035846642980508404145275409105620503546600648545309618068607993111028448837043928828575844376529290728039265961889942123738290884790310582141108965698833018835206134064777579306850070779644112818725279326490611671441433001306031011763759613990388012670302573856484371902821946685648502976549964443210670969356149792362700566811555855381475690939108925327701038415880396124667242331055755775820135743488906112464352903235810245389518360711606647907494607357201388954701041314527559027646016198007665020756111828794689128233025951269285459149812208680162015940235084466137941979196041032311207588068824443910028846035837115272155281296696577296601602367100824553701576200985455620622855433935813006810807421209202737996296607047436743412637272264183040796609741040080368510537617250614335049857318412888471077629955979788696984888028469341471368392050369079368864732137488010449520762925740896442903905227286263090630971924637185761016191423469196865080266884810042010146908940470178330465788154291283320626312247709684250785348624567310943213049127481708652815751333420459548475425650157064837812977575430392196985940774800951979402238519669689070181812036032251643593678651411882871626567074529268593483481193462440875289837679394759526082023144156098951749148773024401382940190523270385357074431892668919819404387373004465454712044926096756683749900964639506139606311869741266795150100772503669635473808060706943378859226656787854131573361607949349425790187330285251866889404898317641813432358202387825326659498628389600559171181720372538483586481606531409429396957079831676310367867533039045265620849418338715937778796944472047145967241464607613494687220915392077433706829088750718472361733483169682773653732682873670172589236432265550266859375628963886754487508025214339845663980773716220345168268515588564637148382451774976034572748327960952472095948725226043834035396818697223358314339723172763286907376049782995097088659186837308037721507091515753987430054244628480921355432892233475271634719852298725390286128891414222078453322887680835108489052081632662328901982026808269649834973026877316667318566194374472492962609874799989084168665420323289393624211469879916876807731170144407706709423108687980160268212149255872976539708526318319909047876475377614300775066786125335945644558317851017936455491640704723170915341067970980694891582091664582185666900155803023973666454659975728635214095123671160138542013137544604238891197113858709005159291713422208900838331906700628851548756242132410624915506355768138273059880090205008178850407795019898026647615434048374315463670800114662567368985256910110360050563372032527558172883213043269094371877730746623245251107366048572223296048101845887438876898465486376897517903126132317976622632679679123977902388332187461075317149650646415578189750676550839463709699187919205879866618019521186770817993240128064367459089841930359324215943702266278374787605074174220254801406217927050457405334185880195307980859091493586900051312956930551361035294151280526865279141716578913609645019371134189112544007357529263007533568256018596231765654910177004714065440432680144295402218920742824544431355290472055287563563749781951014896349615436288950551156945217638132193100075340178571953023715381464266431590364447160546600577637249280853939661017658142699171207093745365830810970088462645198258989982402071675341674792802385530769845297847085408249857428788795133258307434407999010283013663724104783005294294472309841003835149974386012612125131870060874787253939551675269100275796817978571236801634035751049054660396699036239982873504077661254037704871937236386565135876947004221953180989780334474378382850389771816908695573521990108109803930529749216252734505106517684119224677433266830253061353885776813811710683540376028543324583792536102680044759223056805912757257059827536747795434914484768274805615696148615552715767894710502534202601662733391712688758813771784838603990060953574246480310606207941706327706209393678106148840504639250951020907796660869931560454646258914782099063101868632806381360607011944145030991337371841569205560830800801360824277145291286815355372588531665095472252055402221957203289526197533928349299156647752744847740974752737766085955835034510785113015788423440537216931095162879534910083163426269882590635002816988641854770606996895538899650366108446420701156734100460385531321405228106507257451826571420146817309024770430346789644774795282926153200911482933036895022832418855681766227118451790478083200968790317734382611906716044174585246848078043366075169100078419816732335409688210798132943070638778400000616398889723753362353261331719827395067360451427496107446680229804253433176360611633973123333540088512637568978552260181557274628392226767328294045630382769077086215451491016051044436709659751339177109409091123877921388398708624370466213704589163762055486230991232531337367005929823813265956152533770509851682130166545618491653647654107353565520363326500840368538020281657308190627563515166628412509771771781315918890673959936464208970930817596138454728726296937999542855722192859822682789258058435281315290497424964428597559803214555653352000216520660043694136483535761401548631271904407306601126285082697746433146258232556610533208565285795442471205570376380984532099526681949928626794693716357832746257754124223591347077380563124228679577533380691571204903347299318934343898501994313283436146710328308172519269393666094840379499503452149045269807936909687349003711409384900092809886353489367143793472063075781727904473899835862414465411617951791020232937841375618684292066286053907452972071440332475379861508366281761221102125602394140864646323529606790593541634453897697171679521840041361111204415603854372475669026798651508028444660089985015298592442243243185559733645235877132065097930855570575989524802337245219958735518707777312957406231811676232266717602301495678453358019650515166577144873054693225986727227562048089294696417995529349798534574704794509052726180059101007392642761124322093247673815515341759044614418038486127570052558149049780818871269106350886203997519124073905621827772608118605531872014233086886318659062245227592593439214150561657533923023548720592358404038319675567086452451051263685758162387650738588819729056291168845494139745059932284924404231989704993640187409054426366115473424168841517913517423379133923649103134701545489444838158332312515956196505933709677224913767807522547850969279531001589436498498085672727883641140597631913852993283823975238415863193557832868749263461038990541629061097504380001647734319937119154785095032579078769032893423108310318948160016294332560520732987853996533309409776783925210640701274474842129013547809033430104435324193466778296659750863008998504902658960738975270742429318832198992367068091740264923262096984977715993175200532002908650163539454624779972053725023398407337715658930461734694404778980636901858558486734730786970904439517122291263727369228236819902225944619177918142228765229870036145767594923254971907362610744063823024621246492259712758279496493247528560811695325151832652452874833326425430316473304255411507062006840040780853150257997029563083149169517113343407812683655823520473181232122185951675820887444165151956389637819239715044557151602265329865331964658952667029450086572061908215169031705800652567581910941767024780268857668938463758676657255476595019100443443862929157041325062419360960718420241601246115310454439416912363966004085918740951291274899968211693058349888402451941216074158548046821238644268956835576750471479149724622906453274184970542996419416198204462360834136446353496194460583502565380565450349056852808398821555346486614844933136317220215952738540319359109305222032632592415260565814142676361440778853698323844597677522519701530539558682682162229788879879646425722077522923804338937163627943717499929184847432787158901120416320327251920182402566470907106254916673060217308248401104722066189546602380308650558956679638221484328280019034342480353750284110952432027365307312767256520013846058149027115048990983667361974864575634932833415440900109483036654768714313157205560381064157393788502864800135419103132513108347580818161269344728454551827117508355128655209015137601233284665198824058779997073916070900940131482920628613112230632172451923939774879860187622258712252608556888659237389026113208385517579161487497942832291626368582443304116055672304611832143402655914750214183582034945628086241260913824532026861166271801849253349659148722000759344651562642746826957365126722872016760075919664281596955716920335948135618047749910235437254092144014627652348172048434597349679527210676451669444562858013567503673837307086693312889891843744266019172630864841848283475656017560942980235464492908819182208731236006944622350348531045788068364601569444510205604826682313195610524640585042641356402773141762343914086932608058909498412980188660817666507645191440002362000679431725864454257768751506464644333539087615783254733719780600940655899764029137878233619272296300615689373535989313652970578883771840815634137699521755216319930645597815399845722445516477830799797022016444312699357512058558670444658283581820805838663532473510890529093590738285694058507953252740329691403459324291949388472931062840100612016102077074422950004993861358228208819355411641476680901981727354128888131774736154589476700098616408907615897426056336017411901183242209184789387192807245205499736620567535792520537639196072252357436310503150691115241025517973076906595990088766854120794073658839421985177923435752327222512366538069409742848836183915183191094460657808349447148198648069884606692448340193342867871823943068643463347372420485925131225673377124264921090802637727657264923553131380433295098468034619223989975550978644469711430108441782664575869843405589149073423997865448461649319141336121351530174455137112321117206659276929840661207320536266344461280738445941746622667062970079743539317333588263898302517083607955358149223429783751461385659496206678997144721647154319535510026643813561318271531872216555106193442042750559269562803960020841234641563397388891067231842590290183649071824235259904739848872186258644624273046026387797397746391029167858243755727736348206735065551868719232210449626684761664610865634079137773893229985705366312925936992625751557974055648115376230763206564096191831121083959924446674951655771469564145025051885958152182322784947912746982753382629735773048708232558882078927296681443093989003248815638627897798298904002149301204596518107273157918935244363731134484088595322224886870537047246612197377216649125425511008028327909885821830809187017576171243955080339051220757784946368706770774106036457419357423826465674802547641895845259790289748172932797781561635308193376560411384506373429880778737710009134986098577178074088484131428853701368471081372573888675228854256957031838439378109516584043495450735806039386047275938034255292759865954090836639947039204518990814089973724519375137636200612953843272552537228484575896115490608099365038687007146116269590755675769338089183638198654175541702337519894657741351115548920804884110240419400803875553084147214484611758361512806010793027335993272306262083729434796371095018403183990104059237628851376271691559424018993503696473623582164629865287013898724808242707880274669637619840430465204881632274417547267476878397723236919524114490781822817056392166411660821898003309267643820587245978312053778701070048902031295040425626842952725369524189273732452845022735532050963140779347905649096558775960589927953942509877624780633920446955436212031546301871013735791770206595422557209614173817921824746212008123237031948349558895779516891210454778251519593203624560163153381797642704126954282373435910679570634996673361881096884095268819442586386815451991216545510045034459410185172648137477570741458147890987846150423377271612646919457263903491589851912232221776540105458214080890717309780354569477007247499412704853962957624367885507156980975057703902327025749737970118058245510577514611948811881362657675835925902295055690508835768576061800719297340098148359660842126401989406468924381104395075659465496760926260264364673822821478268587870945551047340374642176316841157809739019465308196514752810481213049588411815506446087467576380729697007076525876658839123278196324657845690110149436990156474514155537754728645664214255399946617252434396085493062442284370588435278534789069240835901090061812387795567792729037192646235568937568809937306165841712755968965006678312428382847522415069312815658706640327883195123460467382335709957989190740924637469066145046476437397259338227363915387106644109016135386314710944495470128084962356698099818972602984666314292521303016524456900910188064834525322119790366084926372997798413134670395088132205807362536496780870401168437583071883152576071804418329552629110473131009741591601050364381074947719853467087152396313425767306479813772011007643348236402457644243341982519014580033577772115140755758084870028152780417387501128678758011210316351800137351844282604394163558466855134552222212478922895367387636734391582929710859654826118015818986812199684469505402893805729617941283884581774320119580262820484887114943555224605985971521578124565720659311877714079978145715571510474988644441250526376158303491650921214588061564441844718659088296238676983079983053660224511747908742483033298679351701739963071649439821389828286971877233151040637973179402164534039002078247388580521845595473134975244224072972604371620788369650317437554289996089963321590160705186002951716138239591966203907367309807974336934257154634133042049989397452991925674568315124766662292006533525668591448915770724958124388572993677289461691584623049287287249624191170075993821810970204510486662874291670698285160834076094035308461035961163568931898389879563446513262238353662930891194641828235095577992768826531745069962341882389578363750057289512921300211221140203553066564361569106023626207731335793741359019676729250906683867115756151744532208188396616520085786320994938448913259752994850630582240621656025336368686379383297998077324892111260377056919889713238999828734960369336003223219162918225982011531256363067823208926460304883296977043305050364264888966882262104436755611978767193055278992953319654433056251040408059433721117422443948538573043307721521510907655748670493376244922305732005052687246999307018251825855581031380140909495969316145171661164528822670699419712722378203414898054365338542913512834766758302540176856863050428780359044165306955030783443004988525044773424086021031024475688932742849248174053544989635485259370010689015669635398090919213907085794339875246576564887744632767086253129767415350810879159498754070195989385282956863195729958182444322174317173394942302036897286082666234580176945861148455122972676162518558979463605764053516455194848607846456105466144408621167735115742498366929705272276988425909121618541087798787543965732665932618136401750504266849694524010109490462422883121022337910902229859460899471595843685376274978449856822445454765239412341920917651070803492634236271075878855954512121357279696400430649230032778714042207181664602141724680309333847862978662467638350474908942223569081066782946127737587679705883373838638689980901737306890252754628128200082607881986995169985277162109664355730992986297267539517519651726878926974007397535280425911877312984054574203137573895394352182032916448173424772922515017039086171009463823310557635590379580632312976975719942136015460499614998788423092925783527567339306161294694015616048467577700999102888590355703903382515614995301788167448041216098945636781307451975156376302384591943556140366313132276208067641082555477131144285639071221349205889411633511572990251284158085692951672920387138011753780196889071931001127824390664185859988239558011482425326906402362623435614685447072813737808698137998138913375353255330393191247642751131358198337929072031791028852559527589076832420759677926905986705092477507204626686237162975862926947813244919890796176091889784941452052611286111054722015197591334974281735134995070349697523136738147860182304559840529015785254068192693175187488710318330662602812308599144801320166882695060830324200710647762791535626536707477749838156692913475461470922128276528574188979269470642561200102956389134378268474140752551578705328351770649114852496725615697167363895791560071581256267407147369409007816796137461438868955941130974760820214226537221357926405914540061026966083584352251763221728933964316963675918696856735871878233367808843721270701389055404453185855929489818734021730505179588037962657514928605666484875442110916873619161123144776821488379461922116578403708011374102651734257685026583427199190229176433929118850920693561246499791778190846762881156377736624400678489434741344575751355791096043069997978639065017398556974392640530551683413167727811961393866397479188949326067116638332632050547838319936013732153380497863238742322122429435532723849945773442954386189544322285707821070909870658036004748037215614380504100232575001458732641652941890677853361153783697688433064094252980330678580402713678684144424531712315748096159286271946107656873046700538316301893309629496978740097373491900023670626075409128101231568343538985751386868482043090639666762445539196909048625694879584977171757637220338859114378345638474904348782788942659931004940099956895477272497034360164394285243973769259286473166555286952376101065475140573522003090373005505815279290797303315430934950869648252490869129197160819485574492862878433320915440167406524006653518929062810599824057326781804416491534712111047247045624375534978287876100070231104408910171485983421461942077413930289914321238834183465613975784963119009319474476406148855433564603609255560283905553797238485073430531651487586106423114227863495662493679329119439423260671684878570660251155893342720274235086331325032867789601880759369995224868024974635915466395493634390331745970934005000162376588298722324003355071922199609839565549302847742725277772344975077600961416985725736416314933865435533428604405829609136015869759708998939873836229706241869880091744546875656302703333750949996982435271154042760173409589393503267208233449498886087812597869722188553427163723691669211759852979577091889245270142454633114651812724503981825263700884681663053967602207849043339083524524824736504332531427710240067093694374914575561454726916440818012761074808623348521891092427877805451393039885782282913767937884232652441757780699724877421187219138310161565937237070728078757465240469916157399168289260038902937790632209417236853792609948740149360504864735564743479213215598658316143576744769628041553868946023470330750854790190857774415698379428021116335638828276035789809857560061540646362616211502873141015551968095203412333855536527390656857630264719523946238366449349272054900892992682699172629277913043947709821066153134345786266839080736389673728453758902558114585703620686559165474644016879552403060547735556806762238828762702427020479858320116509123074019717570947099034912113244518051568338896243996756082884951591991458201077520234826338752128862147310074874326751504148572998041444255587062574400136224018312864977022952323307481235986168790847697678018556920215914635202190827770591783775710884244773423854075777905027871938864745834507050037526383656423790839902128109548315129036740727528408229299560647318778818754508558349695571469651848752392485497657329023058965374679261690936764053630100920519460764749396599623458070997538794004939691952379060565903246116881928577522820128132042647858246825342162523048392523604885224447788342396542024834925901923646746488927713903606586210939460382130086966126953384646420989702321300129859618681451757180363796234482588256368283942402490270169994510034686892655745126092355329806405187926962828757760078106809411788757579999985275223697524742710686827521778065569921485375904471035151280881091201554932752989790430475007941707281033530798898670200415194682098840012973163012481764718877541832639893967960047585764668038397230323050966894387568024541965435803039002254467965032782908176830908825928414366435230958828950519187465580840700876606831126104713617282890385712755764818868356613067851900744361062400942663084367684762019742824986756221941740570713449509447010693383223389183783676573420433043710175955196967353430911518242132394053727073477477345796290617117863618011698096336204617173704940646949968541198736131270035158547754494089342072750410213622444501094930074634817580276192898630599397569590067977911372342969265179868755157040131636375082251749680619634719516413877558189975038940336216854087037564816388853553939470159051360632611637628470695410938484550136765731823479440056820963790298200994325127022269228989628945890479223919375927404639261109005636322054869769632405873264938948095246185200157068721019475295140860989750899295164665682367650535247805079734936526746049034105823191259103951030404019505799348021614524330801504563342902024208452730802468319320304410599519517674919153527585287526119012540778727689580641277994175017317621869163664280233846379031730619923179910445945157139181892637004475891322802535270016524332174447724530218945320757747147759337131691037046995100620749938769246948761833336255126191527664272144040940674148365502851841656249251526377270727767410393395327861068843686189802607562310695534005104488632827818626273918571941829253815437055890395874958428925737175658137725786379352288759340143734905028334699684904291599901609927487813323202306931658679381767888784548250087083489939120874199073590464310986863617404093663497182117987912026155993073107676119040623955142977866646115890670953133083704049704061633717901004356468658420724973727853928945444724493836047067101532253017449410962345345736568637741185449848298301326540178561855179878773315737807035568889708846176581480006476684960099974035851497623026697009406680097280917015957829833391131066841108447173711288937781432486165561171592209347078561689570345808249790016210687586010961943616276526182277867068540448926516400546489660464782281783984228485022805105039915097907974842806261991533672942940260197329732971863029013853540202744924994547346133651667499911892064437287924148601604550315624961282957184917725702452013551304989044080670066634973048964551520272873300444792999349027423784799564926907260046396748056431570292390101143854739300647481453261004835739576105238644141831066994381962306634158168438570548979769311284207703932032742766594099884797053519224628308270959533221591045810897147549268914056884330810540384774835013803737325878461761865579748378002486824425813295401203778616488359124509738392010104975810661770507365712197860689240988439097093338014054656662044919981529018564790537698367523870071138164812261044969213006056674277466489584139136472212075349263718170286450879642716962898390338563235998715643215893439954277518686599198074617204802786147772037557950134776738741171443863664183913508620096185888003513600567378025328467658620355182335872701716540939778366077825165614012261111331175937297358089944732767982668087456480705416946120343332632552514776229851155072728675580838648034767072696271072270583374384603280451136275820775774477812215201980195486689953692777643398803403130003375165677334190646681055368224312772770844859804145941399058687879296693479776291842287521600461910224442543812521288727242597397008226629865636134777042060591291226226449624243029770240721972627630945760518173132879488273439613430841460591555305826167150407794271487989248244464814181772242655886521928419190344246156695813267891529279149462521932403417601176296877229913227351735525629180821348564310557384386793787599680034433492271131030582512363096131219616410826138468137287359957463621610876306097085177185193874094824436946911349009304734714871504079821860363291587482452214576508151960357404349905036268784027190308409227065405462909787223609081198368663722861611243132587940698906571324055354283885258668694324018418295851199805980275645361454354149739603161855921111795572666010199338364487932731627695735431884194113886255855536261990141212911564177298431645399705189645267174731755910122790183953908886508805385928956048127812691804981626580310861314864529946011096464595319308478235240833413728439874858935462869658531718984639648165670235795870538462725927745914521413424303810836502537753144057474811564464102132036176983980219288446608030532238128729251608462180096486595632947022345542175691796926454556756550006254625402960226606334412383813219624740931360416210205126720306285575570193817794026002843663953713792549096413624070034702310146949326968720472137151659698685925428227471233313459330308613581320702962750006237017101096386957678404474331356772833288334093006453990912832884171497290321435045821315700325737828203261789910610729922998347372554023511884837104033577197834882217338327557142886824598853236007834142434765319207250557254706484135903866987428720464693917708557411896237201465085554098408904901874085852704230724515135264893571165746755819810508769292275158599685435978910965818741800888093012373673956754992788112358747135038590603540428104183478370705920746090888672851662507377564935704753798845456040590219726496429604678546692235436699325289794081553007769963112394333194482083937124341462440425957424265089851648324584002452458991636694230657961777818956776790312774649971563058392948253278217965441333036551693047169790048321860445891874520771607428676566467836449045325636508121819106716638024208795851397651914731783586313007668914395637036732644229328616763759891828294495784098291005415186870666036985584850849030381307666138454819860161252179553260286738193906796537915850626704343852362698121929374825554668869567263912501762636431921086855473095254626026052063242701529298449769373538042390996287219298251777968833447491546158828483151119078772884297993660712529955452397267544168986780878523268252913253216907450100146139703632928069050050808813977546569603130596055531170381538552190348530278538792367437313915569881844196690434034105923393138242969447613257150467001130554118258193976737643394513941976700017882695273200770819076674669214155881675399558265310852628689883376873567846270674638741140332123213528126880415374986185320595636719762661716136663877007904938510744922831041992840888617557920330230501744242076363502203037492781986168481379120583583779008901623960816141070318212926441201252936603873052463085499011535025407883456806552894243334278016012591418808039342803267662670152566047483893074433957723092275327863428361056913204697903038861688738122921951588243415636280295722988985766286636865257377004248455372512984125753481645179720188340315069896598330064813159499347279964719054063684628588700240429267126608961779457201105581978761269379601336280340210895320446347480479752500185971169896309157867249626869713339581750463703279627252762112716975967377360813551332501380270686753815298202846600677367839480687429414476461730206161636404029368530453656888419646326196411262505297054634445116664428242786960180394488267608236814098667869784132121349409129136506453596473232480995089008949072287843001637103871540757247239528194144849291767187636383786187215389813793048027245288882104180628648246672498659928430535116549495030354208758209412888566699422622712622959808136493669948079696703234641833897631260008537835107834085409816658558912625069282138399344651960844996400249745662152397237656293481588943297245660363430365790312703112317619349540400142153284458568581361516772344568049794639700107880172818339693355813564604180037881499815684659007514627591649058772756478950785119050809841767822282123825705496334156958822104006312099515284581352936886613360965717776791656464087469966591083415391778158994515651072332392189098612301090115206627692587683608796238243388686457814190434284236684812257140673388187433405269899226448703148084441179546208991169325494962257732538153835774506012460303305380746487462961759678843814477244923579052377367483538439055555656729709328328374658221645772176791766205702879872708293697882689519716936388367299571364335325639126832700346946826450834082104570894063863285330729331944361927403612520382963494209754608289837935420130744496847257413416970621141381020546309126450012350559453786508008410682287550657234560936255195421947118113138803067040756616833449124743140539598271777604271343186509574586219639010654330047974991031733749750966758244081452971163334471131539514569983407832849816412856012692623014087096080855045426659307646312408704915525030680933332262069332506182652982147621217648199453965272508988772366660405201615186817424973248576709097226832956902600813106884653364353519642683993699037130178547723086145378024384399276515338215131745758598547796665945627258668510412860593591654578533318455667802807647866907536065020016230850641346972054487763597499053793982139248187025382153067884440980687468631803320546929853522138555573590824439578689867257567004685451721316777082663761425405200607088158642835912949665122239026035062700924656524406726080631764264430136454592493893647122629032391138341895248639120996029814169570237135075163175138274810032591040984833062065454997286279381306342214722316693299440828682501405242066369177100699463371535647806823016640983619891578889239885698245950666326250577080328432212784301527370488947362113770264399683883624812379510288342073393011943105902173651162986561314128124797080119952538386943075379487238647251059205666324908990136547852625491445666292913954137780134401976693580338892924089102792753539565654650376712572349643494453582292043695795682509543095382881050948688014926536830830234863688085911785103435103359890727203994559762681075706220351797256569794406369922644226782625089186412302430513749415359910569169583374098998943861525564813914761214126025405161341939923830279183823245973128466562847964947461474760043948441322973199790169746384575978691599686793559320994970106190669584181361789986564876033338979506189081805021710495863640184480099757971626110158605693444244474392695687910572197866850322771867258248302940734956786776229446506755755409693283200594080448427721213276760909273290262391889462178108773868189205875307504548805416171816218588840504094666840696410643096057416675061205537342451697383884096666363565086644170858084497022945805572514169114685352421985315491751769239864278413941073847184583897261903321932249179000269841280141593388869988503065653894615538771071507253771649753373622273260515926219292760634068926006070678467813471131286070389617582933400036718125575453607169657997096677069013626074721473613582129642066477919577565035576756042854759587302116905890638704277595271020563051226785782938218741811890095948736770981042827757185178957614638268363990672274589447759369504783015912539517930735191183099367348594449487734081876574029687465904601747850973343977502261254630116614215042982536130240677163241167611298985143143827183304430082601067871087870272018885212119010582676279465177686638189337187226066172585847760658739543506229050557523066273177063109699203245477669153427271466767628021285618019819993379861940704976639636625817599456199069960472084574814176797993975625679386735445694118148214446083236351613379156666296690091546182537567938497618087076557334355122454450912573413052860459729465400501720458301870451290834442574818317332694893433620140838504893040067911201247442181768963773895572533094543904359549783769335975550058180670469580346745860408016151615725964525078798948155352145777409455675693646010130808126430398167089178849908278124204091042958673133645310750618445430432353120651700836827342963335550802833048523223030357435301208285053559634239120788718660522216131304881761321774057421134925353362534688199109467059016466082669103748989245233766222111443006469624530269155367537698998140886845756378907821784284363632186421514177989646275449019859087997954371438783425361368041336346658015467660126399521361366973910052095482026784209384237385125356853441076425599198225584086419434699341634167223019675331769395671064733009473625555877822705712280267866004720597727447590605501315961026074647087638264415022430265201235633364155649818492527039199292125122826299143141917373911801594630037501474328803475940032212148468800874703411198786565602397136079312737868462706667691970990388563177539267533847416135280127863202496994138058011410392653051787172290096468246372469584982676152668970964732238223673832817313172499670352331486082661373363517496272757673235226445970641936324447231535305494340806701811894582226986504686491459358994810101806884838764847866237254090557167984304030864073061914439026880359730021279058601884505747102436628259665542423449418604152354372878565572535901907713687243402085181428093190560220450467927328845777675708329143782841655284025820552725700753231072969968154362726016650486216734825666233949696155532679596818899010398127333547275278531469342111222571860433197838142455739933200135785934803762719442991265101455408880339247413928984996370201555866017259312911368045671669456020802458149691398494641280886856714924172241000981363802572666190296827907294064172320045222648328951239167720516707193604225672915869187500611232264692754423035811802758905430414542952542748982182456823680660534398498364257281309398381735473747267343957644353982418583713366856759491516635444197727124716228048410082560789480079236743968348134775420103010455300789720873438892361378045294059619570910002238883491712701763256067384729816838314138727572825359053969182140752370367284336392667845343525772196046107273609139830704585255476072283766106696358124630667511893127210518189783178289302740514163609513903345952436819362933031632019443025622012655160941629047350595647389716301311044000576484071727414442283419350525431323147613806784927239058725230742588085117494075049417055567282992666801957053726324256221604768289200397994531760377596365856631599417473621856942739807868230667586430063168664220073447721515935713781770810876090073071894615620765884840656131147984296347805327055265570349260638359673903707854903726842993509285026983445706401026293142282361937019488613619657760810787700328882073851353917670635078992878170766154539032842374225215837551109757523171204441485034646120108428713085349868692449372312306789204208729265406948800669716463912861291714334274436417258194721057606407987919935623911540193227071983793256199967510074331733524690612717376253941579944272256440319232494754473990908830555785942139821453721216127961721054573485888712506534223688220029051851191608221734808195826785189115390217818484270799771563820800489816233902689420948251439038384276128101307843990495809573455277431261919619408344951252539493158950957898749180937549156090858512567368017581048750193529216559847945231423877043187990875305205124298116775880282841922885464320411149525525477026014257128364554974604418980388836770814777423552092286813375522062170728731056063504649166074190495350140225027924052494925894316680765051649255670371611782734765188460900366021466854000526522904610385736486663792486156024543122618746867683182025465173518438543006489774027680525554774758653672374236196401139329964903407759953360582419160198453948765062011093082993461359173422261074225927393586186102767258434280605783042226560573168394401719281219762425894467166579136232860673776174412975061575795027040532106708887465370778214392367185115841972368211402437658677227186126153673060202136317490518579387043289084172674761013743850306809049453484398255460939218868776133681238013733859991798384012512868258646544077998009374644269185077647821466366548426576365940571835645624759768679731765590491265918080917725935697201562762210497506854405391273129139572762663722813424473929070297977506849926005267866584534699351486770891657417967438450109948095389823351874845653109241270830715098345780331349263669374326078627695902508263262277445385915536741486397213987552462919100610425898584416938123314944202380321368307760718142576826704149258715232386443104521172230537401936386114598115502088826651430786033610705752742510994243172157291282317570374569265676210815020020102908206546423762744207673933277881977482569776728393027918815411358948019589517735325948839273948856613614051717416244236386685456166841729036887590621560501298390553451572943154202743970444525599110860555508796872918562401627693251907676131942173398260286688402040876036393822399153603060010387937574752128236112831985796492740347632195139960198395974814823375428901068016779105224057058330504761006354487045072990827288314747685256964150015128343041774797669295640358750265822445631881682043321958194782133873050818497445787269910439794993426552044328955830709326372563538266361275828189467864195721795031550029384726440389410122915349228907861348066624714127343454234986263834235001367196011749132337675065382732405723890114058228904477189122324281751540712200202168198381461042470700978784527582998528747983898910685674298588408583882166319383219316993785852479924464976202632508642573832140029423526713127646848886703174043351526864832544311380388693141542852295001329785936047308854209299782494666999927176545521274928992203648145846923043669089914819973980481546028595273065848211011475474906024274259907267422164124976191931837311801851721860784589198555765661760108463171965503409672221658092762984788519519760961985631747123054276733213324417309640729806000006814764491406668865698097285258563097474965282531897181469021429476434218049983479866709982485865977358729369063954384425339467698666090010208891527029943873312885095870471149262037699814264014130080275832251926995539260300049765179984880607039496725021360378428921914854038516407771176970368197597095508978860111574664384897356423561938695186442599916404238660937506419722927203955597971068273119759824638512735396916850597815391011592965059135484844360542854221363994087657429884056420400199748932701412593678173408584712094155143684556806183740935764313063738176038327652076838776221325369223012635964480244104203349658345978421396653197664604817873290668016165928095196308934163226570931070961772158977431899610950848530788997352596736225393266769743340384485861423877807987357611906239322265919181268774351524969482166141695192962470432168838888735798281379893394663108592804206480306507797926775055262339976121177083568272866639479312048262275513590392763007929336742671139416098079437607647356017241458593268271540669707862045223514958144389262748223727607260676969094867502273575199735417181562661162892120163738502196341466634579791147748437763283508029193562551020519950961416488795814904937552705357485563854443647981925449387151845047722135471825426310970600197051536687475081128905236149283611308164647938647717888967477758184043573484114334095656829939833296984769082278340485715475191181041120234656561279764317001276585369193381783676664472999778683859770556245393730262223343926082776988424943858662104201133884599847914556739126644989972315520775685250825124841723361756501678420411868312581713276324224407344275967015890000093375659071447776458896082164960815462326233361551079914012368155722218198446479391478684645476326023842767915795157818181931757350257338171095643551828459726660805643229060254924540489083880613367337228289460681337092575190252797839933937980422088007605851671423284195148104799864943367010941563737974825116912438124526377825470986429369069556505644549066253926436538905516672671061802452913203896933523675419376416939619030277983403196090646990915318073991667053883105353656474161633025047974622546722036191936805373771545744651613263434713229355755891146116865597740460643655575460575592904416512160402945837524322971954747182596343044359345571066611649110882255448207737179741216501907243652413311170662911991088841908490269465299307747263541888226665692683174623532637064385939346798889537611684005298195600768676324428247694746802968858192679543364125868063005853525040740199977379437518198959969477232796012227660760024073030646584661698221020314809712245829670670281729438125980556148117525720840592529749278149432169869328172083877389093103323171183771285781616007968236439906653544545048561511193034164919163595327909461476033046989864640979364159087276250402890304469958267441397545952671495772571468984936218090498492227442504468207188974118546481344135717987753923695968931104280051473178318922416634555926320929163613656518338299519552543224438344715210316228161166191952339321528967748220295650330120899091654636699263535990229373574092174870163199673371840628961132371673852447991053920030608093759845800599702371214643244263221599067544929013730573038426712870905038588690797673860559688920901008032974544532386597037670049863790731660746495108084846373548450332334073252952443761622200420673415892932634144754486353523821171779149444267508475440970123369435360155354485043588469689173665829486632755223816419287449301271253419884657638934190480344480945224465382249538022547545226025443482646796701042947635989028453848236748059303080487564294688001679731417188883264751104796208483701220981064163518900149194378640226898534182825414048364790792811115444323620199398773887653883601653614621407820835360431844355115741833247743016181257573070266385811382570225941939713291621067339497615882530712697191885334275371082579836609030784798557370798023546506369968369265501793724251936396855627318377956103696801755802761927218360913684284801073074139286604207570524732021357560367799625890081016944199772115343571259491753139372918836294904913520952834652330029990171426974176556484241894419584722222031714289247744632716465342636636874744206174362835561495164302979601279831723876062500352385582149996584863871329936342727265325243534986977530373574300326664998646419805833065958846819650165428962373343094753715170624575302355838161978440177831332635140465800036502334722885984265593440374424133722021902323893073989826079371891876893799658389179547489139182102309887211593389953431168929560974749507992336229714541260177932456604658381001818653268916685020400069685459392025313866431799875731842072042559530311269107689773912606893285967946493823218330305938516694617341860996825879354906230170832033243759335910658060115134999167986196867328244990197638088225158443117539982720644344105837513562615589526698961157105690708052724553991212303752943371322457533943848758373289879313146755817138473004682314595931705131458337712946290669884487725722916133249421108262276082170404798789599905254668867573535260158460532170743034303184152218823527393324554242802203314191533526512761575590038045651370893186420522877510959580400372675842219687472292086772495834670817038411957895197606456683105431435008359695683949732525694403138161002606103362070869131827426705927951772645414070115767225127739738736900968827470841254836895304284399001712306583734230410191004744427650750047338987920777460045318799812523195309851116077088466617933355271999297610047871992629853703825226945098421438029229334402141734177445420342151841352739334677737454787633925003334306864209764841106482105589998655741242713471963757562437237714835661704916008424141843485948249090953334396741852942433533674572150383263405172933344352006717620971449279599630647989738084111907580838619692549494481716363613339173098470666991477332856720888634731556003496248533934617969123459691632834892317917226203810406168174218986245923867811487667617110921230944728967758795198209255169436790914571105566975031175111487378799716473011278413668225518889791388412100461300849372203311114304271495491559891096028248298388869310496906667020858620492578351468839202073812474043303567983819443575963354563422209437811257178262858889302794968868428402411658989460041872303402461351163008242903961170266065847286082483030131808441787099055572745220718224824016520880950150726688655060122166563302575086041574946120507017090386105628147984451063470950746193884971410726599565889123612169342158611828611675709386081519037491945236936957494262264250876903052443347554257060027860020142305050481165059710448880692814885772334711836844422626428600483902402450436479525460262979083279215460734168289872147213946335697169781632890422691976088805926317431773611692133842301372455253890954158272437285828997376314581163074242772043032572393145322976889132531212265106598498178551184323604872603383618297936185704494429861703489828383738279286098341622349393738179394937268426149950832296617435579280388635077992296879935531027906656207718276640306260359213599817395342338157593941217718640355734803212548340465300963237639207217849709845394237856814900331643433108690164396382122675685779703579554759293852797936914836137329092871582216026969738723107580464017214743719181974601700715802982766401680846568546812156873728676257106526520593870273264110554588374645175443800775524057513585420297275876157321624683459501869855885074959254429570412832081411873662023989149157102539671997775941058729847660636700372113709079214769383294887574271721521299554519709676144712759299280693983714486159051978757026665396934528445561518240011712277792863934477228455463833778628804362730611305437352377290663847440489781994676116939367672333576479556524558977927665845900279206082063242651789035033263775159121561659985464648855071548498537255305239682984084845421704008783175164835307554612763030705810336498971377019783323091508130900536135384812397944475125432397169596044410073490766520054995628501522658055258289334146978444928209383232821501840750727608174196209368786057674940716019858136565162205479551942874885377505664843531001886775150572590501593750891819648437455751545225081585318013427774535687748763304305504367664041063153649606399664912578877167158104379373620031436074327006946441927638372354140174893530522028276010368873856905658864656565482399144727531503657105566537503615015238104265099986638003052179529793131537301778817950433531987580767487534457837503108495406972530332165436322833872378535866811712275719667997043867809689811026599390795172527107464506625336811965319020237912443286731443416439299129431058687959473783883995220325492793791111292849958338461606610231016415995495434504607344712607523368177357910902942678292151953796105666928842990022821170496216932589488823540507278366183693677148965092021613318371259684467174410860359508810542064717625573281924148718784727717015570097873855477826532964470100076852287782890129555703403043575904969631131264269100263584326351919620288017534328848385451709973861146990411976928310194983975558307381631954226941854921069916247487446421796687726619631048297589864154820946124328725232294130956238758998336375755107899724711304216833447353381900179351952125457687200490968520142468933645041775265556662842414094576179724907202931148707232342627226423364114310596262071057699545792584669742924954448642483052657128022058711316237551073659923027155863467901353719860546769547803613183481875353067730289571342529840098779828720477215686038989992643651567592441272717623004264742910361644448160869983142661401504562911069947389312599906418017094714772279945442267061427614888715555669060415005944962726426850560535653341983399658104209703697828976268456595450845902663646651022707458495359985834404382337617085023237526593930460849194567586000378183715712535608833996260966164345986859041335335145847296223522578647466683865667128602063648127440478213724996473013056299457984000794029992510195999978389718380339311940544863228707936271900488367680954694832455374029546477411761167516781938313601974003118736963097912355583396114414926261009352131192594264965356790328735428383346731394867873422922955613948107686297550965879233537145976399003945240878200681566545696142951824107297300064637593152570460598799432825443652542588501621285168155262735486807825605921290488091807600991991787837508624774064659474880008441185102268088980016942214853744607747400898762549067937976307473217897628381577455599316306243283780474295830415799550010851201342581184522630806232068433015716187919658354689023367014426239422536354058067664527046642227273995825769269011197884718109405279108054674343579658738862386919648077768112068111993937119926704184279479675926919928650014356648139866206698047518955996079368977129632784180302461802248675747145015570222320286162887043607482093272123143923281666869679348764406680441070615347958606990852978476896394636977264265584182149315865347352102775481318257280199132981085919877192964091771696563107441310236545557631500892694256749832632174413071367613686163681643875551362625123195948476955743161683658809630943701100572987258641401003575526344390290385804778410390621735795519208774069400359099470488546785026249413495614082230288302854897521453750551504348539090314872458319282353403622745814760838267144491085939614031014451623703037152794672035703675365758382544755688490504182970259988409797419851980206677670585382931633154998342134123847800258895154480157049377130812201679145260988985246891907467755464891091362741384037491445537621024927336732830641367828414114873985271037717428749588437542840359177658917798055405162862039307542421289712959994928692232866113895906057358791488536488356931099477639586871179094406987661950613959409148198393593678108968862045533763348610073024318762037673481482039092687139666247974952461577507479291923742513683097062195754072730805225105635417507978611768374628352042617870928885884507784049178613996341220139572446466594393928938310504993202953570015738411893266854158074739565543365718110844448430903994714675867873079592756785618677678031109924792181029034704984755311125479044217430420931072720363267676268884762121136948239954735397078981594569718856914889406027763568891333428646216579188606561993181261284751498348128000942576894290966079945233501838493999701681755042639240861128211563870015195752923186610332954048295520875658177560428822482781870893944269446554068672868003236011787821962332976953783809015191551446491414974126323979871517810835800650514384564505320485460664140695405217828702156153829156409997209780921117860411194665816031152766179669399476075208515479022936545073875111460914109735216438115106296645028111717138402964060703377444580317150179797494646840455496521143408332455269453992752295620132575026083439194980580072041744071332130764924155103750859613184170775423652616559951457831284857020647609955549540556488809369086984178266065711000804453693046206254967980359042630590385823153132660172760206854555535761748488188951382424973755946319816061530954643525376997163991994840685175020383113166211261170397096803035489516972936174070337674936189141327510246094115788162089612990002552592964452186253212108618449705500803398901282901831837782636863069431018680739167663561146081180734181101329230949288447009477281200074104402487987911466683403998484439449696614359068621478140308835743179542419682948000432811149834764417809037789805363891841980793902919050060824052082714058760086264562083304349106769949146676174094128162893111840716345660710731121774207862688122510632738205658506311056112923574947627699963556679585698708363009816724956793493034752910218612476570984113022933381600070842720245049063789171845438188411078541139655943585601808997605647744343059597299964274775369760454992088981271133363119534601594360729651753879775464006278079639634072086162403106323361342349406909307100203110936966842139233200643680567923415365244118132296684469239946843459924144565678735934321189842043061370774223055039101667236057876388122288489629806610207378881460984652446001508544025957743185362124227225225733713194871993171539142844397528531703835094949335951792885550623045951002102633770972859935175647592589299182172468356957770179607155198397057157871403375837066992289734678101149291879290471982418233976032819135982072945312986965456784900726668918863486174670278763677588642013819365781307373138236959959817920784241149848583017402297335188261738562689292834020764950702000570613269214462052043635141402897401488268076419828636079977042661751279074066622188147449988304908687037104063495518536812813593032667355686597826909058017773801664048284938789310155780428622182568651003788069133520800403572774790269920549870047833632521665874124417134175799869669515900819109709886086907805634799872773343921445238378490521244574369930453571461534063311997996967058579918090929360833307715952321423070273135509934861949747680534090948100149991913401255364859894589677343553472178425295707849288320829302409958978788504798740622245366949976329067682335318225787227901372981019024947789902854659588218360108138408028429145999325333444443503076943140856961427194934864164102120713536520925198010708659941167981155625065374107581392726517096188834529525228124283570633494592254707420238264429322606518749299249569038793306078588474584777963791793838391392391798538974874911726844336257432996498255938254427083338748515389913452379592447600298503060055189637992342672622085853281040107358713342641046419434587729618772313220536268324203036966712773088429237600903750117428388568604048171292649893657987547648570811193056743173546416497281864082796337917939475640038018267991117314591669883708236207099731126935556875885466409453844883851454979130231141493461992128864277242471723967560926873668171206673742440969236986782693589891887122603669817834537908320068261702998556489454081799923753183198679095854418612072830736376205221482549795851352031749463656056805555209486469658527710994165523877967902988697030893905838299301311124243660529188396012941788773114460575173758475838228225106858350586944472936220399002803627083764724028270853639188280977479330488539891204118777791598653432552598156199012155571089075436531429947891702167026422485928921884230147449579846611717062305861185530068372177998916912070419828970040190668452703436979141805614859667861347317819363764188625971041046621895467290075963921966656285603655288389364895353492012462689560219027623681508580224453309799950008920422749295969216528112461004903487245868713320788700083043387718818888512559027237953291606421346940975253162111878992220277070698947661157845856576766772831520977491657785583262063596944475246363871913383073571331823665024029680563968245300456652994414013878469030977575967114709778244371865654750336101676037894701449839489299887358345144618365987340615328433484462883458259457858878001877185369851335367584492086265990959312656428925072505794591847938211773860523124887285105054588051135133868069465640251804469498681627065936324716566801754017256446097421176590435527473031625233470440382443463054827411885267675414197444464913271903343430601042831456751351920540850057191989707446669351148327005173337362258460261495506755216052297566681984380634775387974285200081851707097409773014719677223369537238412750731850266380531595650289435877948459513465318714573648442749953194562995509380353377358973562336491216295235800264405972872592062116492443776513106280937359121504391557553129555494205408808699630847191048961364691602877495966845129877023496552431925179272190730071760988713806168646299420263444784586511721470525334776774304292066706943523115451635998318609355053291535224948203444375527309490078635037533912641384651714826532514846566150556480982018891710342557024852978657303118248691692091464041719736083489524444042606658258722088892036867492970912676149905004267614081629693680137890135076055368780692761644369405650868764671550912157164403182323649613830960698954923624802646827949234912102425713246490852879858684110980214862992392414049606605656019574089844002311839394769817100590034655971208178282137849336813669009076560223075302412776870334904774164749509551291707443037290775493766115641715341987289916358972453530137646526871214787386706966208163296867484172982321084164461861095946283232900895900521449673014303304902039017010795192207188234395161435803485220676459896529608379281634927702338696306110648659901466422726873959452491200963718145727278351989230441126337153647282778068930561778714449335150798486733952163100859897107421622213772315776874465541595796214597572661852153072914713715272769811058068403819822743039938861191385484026896043072299955537750162958345715014657027559145484958014064349578369659504373654052239655239299023482783319543501856735554025159122444505794976546612161412055705833528253142415577603477268112308984600624944894713295781714910769780422133726007950204762394156423661896786359846630770665347608505955572634780796687884657100866721550214382159249131586820163499336767984474124827808394519906955914886096643954212652253243924784096956379414485363319014818046346029205631790183375918936451357645870960352958502593595787808781705342854927630185924404284703505932300029672927692628123281517342409748644077689114603166589307453889138538826468400896967505278919845492617259507872642462388772450539921566339118293708428203710709570317503925917802629298073307065437521975072842761580712460855533560614268824875008446033207203579135105161260061235566287318359903697700593365198985832858055838933570916532280677264400122342771565332108072879027941019325885222467579580847964630736819528591702252074482887037117116173508673269360571172272880409664220235117486740516267921291892238852360009886390098001044956504869456420721816403385225123267091638948218248918336733395879524936501072677998397402086428039689568570469526362217798698618075062522329872306590727631432059892607087445980341501796387128135793854511851812871692007716280423915427424925193205507846978539134289863227511372201453172924219571781187723376060143334383966978246999343832206751399770537055882456519177019452750491107062128155396275534330852884088321389208077347063783572332315007411920227194108143278652078653736525956043795073477434365302431263351664202775394104839971318590282693110561088570651538515358585019006031015591636611859727721691983332145822943401547905767294639142676459590311478303160033943600318780078418764672374160748862625550847432211016861828348060035167155166825222471331580566931919005223969030482682480291718264565252687995664938572851487766755270708307306079976396159546547444283642315652039016798668716617461374379777938460689386519021433197388346332320441301875384542677868130860433933811570262714720422689242856435503294519995683127903689874588289115928651794526826860148541526996456330174980126056762597161703854092508336646540760957539562639171343309749824310848410575711934791924529925091469987849818187016674808969758467127909433984982714338756819674528974346992893132679105091007883859987782244832411236892084548830635930401126918711362212684780636401087704869382801358514433540788368017214265113013573606750599953282421972298002390454487275853160651661145095626237402709439013272810472161009075925406953787340036457342101569865836897689139413623679489656755163167107815410506564563359770162118244968803608015146736397794611263323261109383348004192985554058131223516213696756325345701771227388415742846588119400655485544093417208715211294011947938710107129707034136888114778156885876009684694113661878855185171636889817450577606563877207957885567292853072293636192272355289703365491846147657744349514641063025602474576609038609310282277995724376767688097315352180877652352389758474249448533689869819658331882065547881903007684918077219683499223069897071443139374813348232396340387700715119610479244636770342885010119136481197738931007220484756491902273911497116971111792528704699962174840560012793013409029833167826606214709727968413158847328972397923985067994911768920260659327049450589673332888157099703854675617381121705107735113049178535235831618064793998048013334521678826383984602126371373362838351214334447346098259055641873567647144156366818842210571364173716202184486656563802874331772006956295427576478302287333912165425484145113344574571436686291233002963349010141900655464132700252824622304065040312082653531152548166858961517633248488087061588434466520526243181597039296766765584098506793730255012973102647016445341162799978157223680822888642088697220640371727786702043998306357592729858878337362781412993289812880398031144116887494551443522733319057295309634540509387046065622287466896497429458838129181922176926312540910124100818991087688475496224244731972859498494582829552249856304745279300477895131539050031478707160080140028056990332251363468808212768543533950867548591393372073358428586803025797554427400120188270628183062418862790131306921852375305155066574948875014788675745703095873825842260852753874902749262191473254500159117654725501602004004979136430895956628138978749675495547101561570478769755878023320398425577189722371899532979754464507291866437063682301425793578781325733131314630575365735370958303610976895150867577098210005554761275118446127955137438223267073611723884820835191866283803331525450006538522448522147250196257809472124407925512360165561361301014815712010718055424617760274927978973860414425976692393194777746690161970471367591443660112495568926880396038577599530854459015367516358515334299589135562787376706093165818807989217914276359649544224777598294022698171204492045586080897384907005491209587305951462241152288004385481372298248708845374913630692322513346804607952393804654250743491022810711264435912866442344203372253061402377156629123226791677710083191586467181032707634534414663033343452901156439275183484215935550185843639766714718702939647386585860326296160266717152088071113317009577499832642394454769464825878935032800494847624050363215610639163656417409088604327590875114474899305352555840985081063741342262723756044219492763313211845944760495018267515651637680511267323855163052959208442216621132153879031564550905770544985051925405407436871096546044211423469863613952916245389217190671623514486168033053016145232264218697149629463546449283663099599538811400327897066595424288607645468981846740447097587995102868622255152352322237956507549972119283119783072278692679859377363022064940878561720138711772454570782331594752520962696653099861396126531459829971006982365758793187715041108690522827928459848793795075654218727256774425029161520023285741048958316458517352396560788685779841654589576888932692790691505820631299500362667524114317298477187628401621237618830869118391209652190405143087127392219859114388491014900179263454294572925144242190613601050000495284251111108420069234566813222233436754511913798880622378554223320606256820954703421139548569554149072249683054269913980119917843299240670352983459175615665658977600333042864468738997525339915109523727527008851985809968860265374809975114157280588403848525834262561089275926952068810027073305493673513739192508527165764649700151915513326692496183608063557600836378244048301224813307505424566510250139910663713319691450540678822762078660724640797980070700770975151727822933612488616906042274334362151969906582125362900877948170580607710515654111781620647979659104202883463231870552234034655139199708810649519788276227722338388144966118048548461824749369579074418447342143673763548754422956815965635489302094802546235540622956449151738079989628778977829759382573684663677338515141997760334075723905470331040044395990117815019276700672883595267246083987221978634903169934939968467830940206419159675680006075479262471873967458455266534823500300208554775901715358170910419295058066474532811643528274442961716990896278590278887456421564820858365077020262380609597611793630230405150660250257145053446993798799878950251905750389655997009607291116282388514674146223366589078363239494951551026468791982660602434542894399644490100224048693742222782090305792128698401215630158677521642719284705364994330764678123631497689716697199458261377682053476059067193047221555203690946134600163266977177845089915598531655360291673728455179065979152640364726815570359411436480328777754866464117810109903259277566243606378898405687903697547512259987761197219721391665964896213666870840244789024805644299259904936311674541797419204439801074274188194680686367523353246328207847473719476339471243244591294781102823043271081877604360232097923586117211909755220674440946066272145709022214083831601917382313737976869411898431422681026618912126479773289529338510544509437522908998451663990765067401728612826414783758068407682107810824614169542461988771645097669200166695508870614836457239998762141222509905410344127313483050407291716282145872120141829326335588353499890286164927772997997584392256358200766762509652018211241426744146955731279668346460503449371044846847313474844370080080170006984409877297867958282421806649111498835611442590346777061555312190805303540687876989121559352587768645405070205921310684016647119151612800817928473836791466260829307222362518867722122572631740391305137287687752515581981195218321725613959494140309025366795144799304991677382880511352076800323518481111195566214190842794732790561694037354900620485142355452380199183047483344095584995994626117649066421825574307789908671762391825582456628234272516274071839445398491506795168173506715498827951331400679456366667766701771932810669098975523351933101751633798203577639404434345322420721682548472547278559217173542167889700074225767935186959311466557123823852308267321625580727380809003745092968427275726324580423235207106683247381694243263112919580305297609455584181180427896442636169446680615772382569517081450719520344954552284731024652605738593904501108175826942603413093454330653471698783969494722529144245683012173700671790597837071707058173279226916136914349376677794977279012102983006096441082676983066585409309080251293739134064993791283742593073454907024072053872877082538920176676995087285299799214138830057008145405894831531777706366985933296645864016837962705412902416253401757991343453965127867753300152873128820140164782417094677839362739131177682019129185617911217771482771104847202090982186952016922845652172996823880932827008594138777443739738430236602329150229744458466855261526467272886193506406101930960164652509938441403438632009816118547864421852930011833814212395456150601095592636031452913944924023329715634591926982386371537453226852178565127272290565953132843694630497087584023905726372931239450563109154782167870221772636851048991356497582821756829794124519375621400278535909054133280849618234457025033115846690008411707556176853937784551245650962516081200047503607438414336095489364713347186533350226391963161371074543177486404423108795918021773976064898701136445973061150984559345402334132701024233625410370521029023374073929378988345983039333739698710549186515899077660406203630510177107919910100185560811551944434829267483698378174711386873185996002357779934550048591210781609001170724319351386534552213170288225300637334824805952624863943210167904418430613739210903561514294838418372951266614182196738162486752925118417271485618102894595883915807191581372126386739845502724515551936115678133342121515806273442470133944125343496513364894629826554510996872480050038649236862143759410021437812845001248622571460566037853899798161512773792187200789394416682999837328132219928086480447020975524715282306612086922783506337356439660120035438743758431598654659850361539456441985627150533401788075086117128207387853498339763622767306414262540135562768393657034088845096548416717134589376719285017047110795989044035657925360245228288040396246186360868158061633768642190027909743488119405744588289926899015992475736213300587493747304831615789234957457015789715253515085969170513712994594103044710565375057649157481271222867755618297885328648258741688430701628737811501106714994964831497329904183226884126939741466348942978528557696840076662868904408789543729989147192115137810369972556677152769535867308991435563354881671781492560831934592840869193566767841153549371222508057172482215417556329914905167666253248890262191005048797965578355924080825718545159601109285760321200497823032381176826184994109343204260630562959163514473637090516105473441248130001414913779436074754046673211360922291653253268142721619998652424968912335292432260472679332295958027330840249740260060616140450121395426053262224930894423673323651859034071901814630294623493363626390703882286545704050573802897961514362796582371936958281866714891179456170066526802239265487045002655251785401760171067398951076013758713460604311145582220597950012080754030065728893631713877934935597081586225501688204031161397578579863714622825601279024840534073113070003687619492374644556584837377129704989044851976644938174269035058242010838228720279674492592795127965206140748012212839047548273482220318334625722616406735747631514173416258862990795696195502455892364686681364774369960972754409855508854365318851553414815676438343011082729576265549061673847524123467258049458062156144711597724187128132785813629423389245587571123788537181405404580860925514823288805941046361847877059373557114522223690797442904517310554371495498975492849452061869438567179165111595935430461065314241246586755512972692142878758976109435670690355988212385094173158869666337139771798167448909009648388482944609569044094291880235898192460173884243453901955142371055581443046938113917132245435315216610430009741348580428291090044679834419116450706001509695552140259802516716678750259019504773960001205090111910625688172552921308277393336412197647482114997220915701722575456569637304156517751541994265048190453149328848181135042562265286430661200291831837489622864873736693943876855078587944217372890107983405634493307680367215880447408701364051486995555718209584285428360086952028080274693260277544759482306498351124989911654585292079076912077217299105150131414994177537263634939973657867093950292187560298944469279047400199157194600546980210618529384884955005968577009846599502562390693020242911572418252201357698069308724667136286674495155073045872064362229491535701692165004477229361250740557800799914683492529758779119578963000153655441832399694410408844440705116425307350950262361142441051164261551177527561433816416597103642869288543473497255683544056467961634131950365701379960612315339550482191154244193395017379091322289659102876530486602826486647178251536951408875074974271858730269289039963499629446708912796643428088036260289887538876371397250157614588429797534823206389431393155142180473524527317148390261894636626655442273432165598551395120138625195608562319001839715377657190426835296456806972250663083828413448792147264097689788172338543464901986207720038192344291936730984583173475365601997407629811671221301538792308227374883096397909759179845745166741138485233738251091469560674030954916128628511501792091027045866039110493038974869611272464656650107123919519741643865918422981677279138674445189170665580245877666580206923216177763481294937174820468356186418775355955141655352630421932803364592761630829982508129297008274088069166502697508731923570534712552969490371035379613355136080426017767625535127915534261611762846438021502247994589698313237993157809114991676865661021821691829317269417743465756103804319271680982846720421322457885903350313378961578351111951356575118289883851125772685789820840593994949106133487865690564069523886298928194752272059188126513725894332983823472916996858173295646540055141290992133493323187397622018973195271921427683397144448015167548156592536261243087549708936070479140201967177919677203882561017601224675615311309642508802013401091702319736349715159237492641868300530676103083830600675598117144308478955412064984697638793382606663394260906331465820630675794882329858330875741575491268152587362476377773894067835227888786514129948773573499799625769763158072270200707414877443145340984284086497846046795572213355078683360262233427657982990606038357216034684955477946479903662154538436733926688102879644998102928258661274796450913588686353854069503048704419915810504512273967336207100735912199051036021014564824919238488155566395986379965817945120373927086033903405977638447536641912989904122049795126135563403874494669944604170158591785359588908542033879167679427708046207810098707501463593108358422134005463380695828916321112382810881521598770564317764308089132159472302379969492499174872938661158293008562486561107951914372453853883016734493849623698256959096210214740979800942175015109280168473425999102966054946379379726182524093781235470893736816847271150316353440889902949152232950291635576859962667533530344768040936770956707983213549828902886207338554261772663042311404196308169977479916956884519041769896408937619321689807155745811977366764237183529259168043728018101025993753336171153251529992804909275425698049133729753724376627941216832879282687596665983049110716837023680985015286373121786572814667135638084557143495541474397104798871353299740791437139512241462327497333860150941059705895100182518726552607000459270601491027490174940431974599593453617283912793754686381007910532489919017981436922082545315873801287418818192612474101228907134296145377851828873405405055138062484799204304405519015695437802847568150827958265187171791304636187854335301615778913527353065138205172724785008921892430627162369123089723296689418870455380100231971321089589295273848081193120584440714667388354559851610451310133879355053616491820035166456983496798991048983404265711757727724208011808670800541182008993813654201274659948468677405739164169659350752378857795355704762645455586331591259832301911791589168961714751877523442331840583823585662360945547779092615031069088692211264681523363897087757913955845530059708144918195637157829417036957818985429145776017930616452510342163545197859166689219650689149898808757305554094526056716509872948876024507995952509919847548256913924894429244615361899883878085023956055313578654725542277740851851980311849070057881569064393340208419109266197762353321539128959243485333609133468126711155187765980832059443940764178034967996910194016792046466522323401828607879754079514475269755129476313650872122201869913492787639406830787227988415981489952642788342175552593366522200704677248877662192795915915099044107150771145786663680127184158782764572616040456190527598384449981654570797431791061022438914789736311274164332079311923262068356719026154869525372663156818167054742978509431043338250878522514748576361490074152450074620945331718327636158211861534067396261684182978760364746522917187799238397619037806964827067570330468108541307759729328452722391902852764265834506988557758277629912860922373408246069617956764112330729072240862281302643459943996472759361528078755384942429140723884642783809447842341134151749612896130161070573379412006587199570291878100216994338962642350288422873296032830491673476449618945245623998263912714356978850681775944702936942382102345343345138755138894527397078775077096619593813262103474888900588497220723489359078850800493870232745129257392393904445362320492472696087581011522645021293927745694222548811347497305094791366242563696958674278765489626546714912375331384311866507154900500035215368528584706706038346131915656995897541602523022069753989624133288703111708027446644320318236645254253156396340935261653456974693491589176487350397580314443054452665598352603599147206255723104910076329831871641465310297077415988031024769742222998242002499513527035882580918089167198418575772768550967909231211186030195714235133650702678648352474559154468898313621422344795813807291990707624173148401526231399805527493553849078258164672322329758227570593382159133956079285315779164019130029889227461467207829360395609363556435352746400560784546034620135716196430686014066707032934574722567091365728846319803609572375026921367731753058140567093546779833391412015411585664347179768401478587954274177997239332965838430070912389320483591798561165446450359247019300442564531094651483557554454177263535952640205671904475114204089219661893687507640179864164723656637182254600216780382435716715200895464602570577382619949276032657048704931161475744326545238101604357157537088178991886990927650682486302221682264198609376905502103866596247885208413837571175834620210024497245099649539346095100582235292022340071684272227141750941969132409460128731460888212238813711356317101911668142976972034226689786878611936978228319189969824295631401398061021458562296734220810326079216651326369543648946935895626073450249873578616887670474100366953944621371674667856877891814824184420194871359653762720545066236609363002957670684741172225236851205262784911578206141996314122505716310573484091992998833475343346151641079107282016117109202910006135075668042272875795646408885474168097702551701568348504962402747972342343210183045402379591742787103147411695061759061887332111687722253373239799062592623439679190240272002594644581685767886977252280217746198182642023255682866473297803771025192811362812285464002984339642706369532023620094155218743002174802597867089302749508954986711504783807225134922274959514803284581127816178486574801809074600283274083218237261249226047042938403455017443763234263773472444262966227859636730969240920560953919119682422272674684715441328620948111564646935285574979895480820951487771265354777978244276332893866470556508317086266433477264342003889364526895021867090951143471816283122259204960504837718644491607558415036077306311967395486360483309589522801148765630403869771483312578347934894123289038744686054627725329186022794416513717373594712183141933033270342289038699051146245502674449967562742653399863021469566322151586216526366089609409952361892977859697036043777866004458568238700953327991904604482483986171126167398416804073350860837296051726759437019088031116882625003698670938244021005381283312405084750672735675089931932762903828055737139734726190367670131931352326351917951054427168924881013316946115372285314407445657626032035304641046826617529109655287790416528294921698199787278519447001698437493537383829734772953198402300821818106537482860067353032560146482154099985049650270325435495737242906641658932197695626503016959975569465173428401713116440762502283272745239487098548187413476006909473296654291757965654247022195648762366334755523713171933858102147374493296499583201233312709501957893157346051448181111404075420046508710789698586450267600940858444635466266565011788824025009807996018932382736865428690542058160917249508104459053256044737113837815915768780275911449162020772199439301819118946838994620820716599725464569499824176079407237449372416642374712082699907651755466098316511822367301881832205045189685777682273356279238221278587768996938683070776713969741760714409310328064656252214889003719491186224915484085785841755626095596701884953642867553509676883353964506523952607705473555635297313081612079140144162489437227883022507699990167076924438613083970486867683959122259473768547101620555771386710596589657856290948831297719811556747679651954584115395190783877413711073573303449955397745718220392448946650063743617470042736325700832814959733191534281461561501323412363111821719555399095697226722721757677133563971682000430940714823681257769289551829005813173153557078687029079055121974976833730201899879176079325004083630563224024537898049217633936593965224891826532409778274930020816407134911457146039758321935899698414577329257936487275793999044574684152528537224968257597598066057613130666008614765943529281194301883493081790187960038597531410193615763551924132022508439119109737878458016079149399768185848753375839225145940286532746177319726349999056087367915667914376507918259133481256497156978654255046957698658111955559438508885441466449725390716170083129331611658185856680747987369639383066618467837644184779675231028400454229551132749679686601183750850207242506146329299183489310792162767760637860125497528640228040218812368176675832330239255996743234054533818083786918847032571801899873290983667951773990717349820677929666117853848093047063512548277590116716396079552096922064544715280317036541933068733975682237848282553568896129038730189082627774581689504095860144804656866188404007230446867604055618893246827279812737701219233159232112359177635186593698875643696314228634750616766504633162026525676209202407014060455517266823371450016740398362070578012473774303764874787173777261283194858646708752668706839747823514337285980031771432066380374034199842736844393882553141544746683783707309847942237478662371997070654714529348266343502440094902025416431136165372302204816884666720346303256385821619476987977314990392737741739975311448686632099376396365547137643470630130790631817303860974340991940686479210359993011078902694788664613800359395607507039954023393946983342902825612904619298753586906642338880001367175602487816477403027176673607591754816781929149242049794555363099977292978333788885248880435653594437294021137308370146825666133575716636159599265585827048389384459229327664025184705299177159936399767642029307295328660248178655669132709748992757755300617947904510318392900570737270941549557467601772456074116717721739028107256981616051185283356387887147142497678218221780491578188747476738831070755491808025008745795408799318339604689217318288770665337190485701005708927530120213780515132383764678682769360715268061356212150519316106962761800599111500539545902215490094252082900926911188543944408954784684398069346727820763105028408925452098945476783194782760820195358595850522818321876403135104089980475564133907005711664882331747991492977344435217966110679427125802457803783948515607373402153025359346999762369873218875372138660529524612278325869655015048099242558102821185314570551892950005710837442366961791631557348398119513444852274221482885478501310995226066924768006037671406067760609029116070776247720385178448702339768649296028357948381546793785026411104948145241890284905070184194526982584530997481104968121399453322570660585943692039253491505543155492526091194731622000892144118047510427633714185183512398854920743169766388100186109438293444070169101603009341307798922250136062928255502286489674322226592086128035331660070821112604311507751948439562326006325729139637172903701696540549183919265930163840107028556176339808672617641787230394793624318709214169643691435477089550692426025033730296657024182864104078787592951883880142601656313440536934073623784576534149527723175897824170248134741881084261888411658455279330757805137740676677940267654717221755437021590988250380448578674720273916597162365340403087585515827492552361354196646188181973996393857198093103611726201360322804482633650722055315209269761366410220519027100022423764917029523842154590989564094650853310239665821336005729003414731912952024398873218670386450953280502132026837997711831578550414741737911744981038650951540101219291810539445185770923278401293111042704268270951952228632089722609593174296506212051927868120017460873376425637355930413310736560158812595970726910312508377578536853693848055388587049561337270394603188918248431106470642641203877719867287207354852066817462668094558523265817890298535177767186475932763702740287794362882533930718579349519048140184119992198925808706798977065055108639539945646895955808715046264677159777914965802477474356259304920187561780638480675750737214624298034176596618771033081793785865099189878523839858006917061780613827866526912467862231367440319154852491219211185482676831436079882606535281024027870564628640356144805752722799285714573871305081454295044212191774594803497528927088452571786958525647397588617723259055818960270837007259162242846720506992266043179198985641320398706281535958624164647138677330886143981595890394662042414809009290564089520338912167843564826746463195775474425242434287949056727125441349440744735320392430977399970112699300330434844479559529114451712462239591174191624095765810257156978561708475340656074568217077862499526334095141029986255050928051311271465147077942738517930929182482657291647945238697018910491811934532705890571360332701443798960383064087191721200327621523297027472542888919807541497389163228332404146538420107837571950481533106102209539002102345491319336018828819928623291157320135660887804269532451105551302567739292588245614248990525604793201762476155938879598892331822599063316506428293097168110403449937595904323397142562289005181178463789796228281713410014098820152098056688518767695588351066712861165867461868432670642094979303075982155703074420842913166058259663809145180846101769559095331461492682344769485894718532759328021825528851605644214702840360133858285308821226915520283895433507295111615081893372875292248709934757714506883182250507499813489719780416513009075521766681347910120149618249816535149007887803865917542465339884126381183916185410265378315047531530229334803183393075283230023069579238279280519305705718243792307734303141210579298936588492455949112839790691644743428609543260081936849762016297746868277181153847599524761829163617939884685902274173906258146181320803813200854372859033150250019551104079023532599924297037793790136801594148331741078046696291691101133543284648560890513964839725682928812403351089186322651104448519136195527817631289643584001590640000601985922636209177956028129915098993646658358512054590710715431646744597764443039265978439819217842146000403625343206715592495732513495601390491197417133914080294137863306448888825601770701542780221575659099307077857085161019256160365548487675803628622838907605440818249922999822073662139137009642705983682634149692603171695031216391141495775068910269519985283451768431785970296609349273500611343740497260983433365535940714508145076862309960938141178505045049573602555567656636478099919125943730834513227879336857015239247279611115547173708377529724295744088048601969399183751099110153791792039979985639624687762342014933039400394431981033923419322216915487944625031781238264745147928927758382039958710461766108605550080932125110025989471400890048655014422057853698398437536520534212540076864348969741537323465288575775035824649287469909636274028371707453729588763643479454083809175388094887511978617063226050640614710387523024868268514627582056167148499357496347936973464619879521006776767240678174844049077088522844173724021196043007586142913841460625460833319501329314760469183065226802916229119863268229278020372961698231104804057443121692417809995432406851681767993262092102625175519520901696666826255922952041081549509522418467680676502998060731521551054536482565355191535706853817417392644509428338349256503316256010571093311508485714748246073164449708845353528241262341612487164851503096856929883236438403861178595920086173607612326284109689702267137502345799009292413407065219321191990430501379545811600166915637268962111138736452092413447307491537948534212760471483143707143078203920249382673317792723439359666081248191801937397459805868985777783453218356697322445236797626053908188953825597710378375181625555162693406591233398865998136578726225213520077173566306190490986334601064528636493849231560796482220020764694608965889216527898696267983174907071215197740971327856341818004279566794571099971879950142407146302148801099817386495709386499892471628686646254644186353246138897315036748114099324455643032337974152590794421242847321163219902667727789464716888114530481771461956559678860740113922803185708793651374745703822685283992724727327680060860603005660998467414834107908679782175522072842675321643046687325002097189408915716069940887113636542078233247850726772297946592848300123500166042035510044059945046139383214381010461448744550223194258968619798468981083836762832634363943049843634472986976666198403561202045640125202660098441278672161230393655580904279372396345761443524669851668874573492671358207227946751811572967512185668923289881191648885644253648747209454785615155854977031263946184251297286650413665665722775382423753759389901699266303625673637028715555468951297015621676325837641671227766133832073664705558163897699618408141533916063844992438429497153396302944511777848564343531741545175231724375530823586581972770203352315272199913346791154704859606480850649294711404223220712303686390863634595738922234017076661319438599403369663089739257085885806488912381831298574905083363299812028736340151110152458751619620230966696410007507177026954239974924730421238648820820466236159770699551137783927195645547297855800802322447909791360124342664407210279413000716134504274095448503783081260637487837438268868568345840519749355185423907814539784302211086087351780829732320396774092307306344798576667336398316427637122236840579890234376828051872281179315239156190575094375707786390121491996421386910407757987896843623811022336856132953912541507502275094480715209406403828886018744939246640881358160852033288387662029159461734917287798124434620259102420651648181855430136643802043347072536463815363103581955554213414168004456330392934742344306260697779718834452405758865005787146700110579839927526402400899100856520022468331759877442336514647352793212782096234301058604514200559483057913850911407377385286247355541400072355490377007134144273724528916617734185685907131317803807649121649125886239492458975608223224447980689539761577087288139949945326421289485891797621209669342243413881883936554982895661719872364344268410657684851606299914045934452649008422695803610771930586765043593690185051297672194357861470841495940263169509303973313012649097528805267656209728899814329663221208834858256393642779020082826199365221456011924637497518620183067702994703251757657635914568620127788698425785107486572508102251006587658841810471945213670774777328679723735174743199347472205442002119534811726066196548717449397720729702227696164564678242602927241176037976710759545217654869705312910863733408037876886330337940425007041315609871177617178912324104583335202823133956762637364001966330878260016215852941164573438468630897917123181996340513519316101133334092895860236898740631576225981305665541687009473035450142328732706229404854711510971977360054201648277326863437854193661804413658887584049868766143982710666999029647984993577215300026960125368570314050690231933141136309544820909851859711756359437200853324610565147612156680411573384389030167486173485701873475191386276516846275642255063199785463530859499125161923806484136164086348049039814377966796850989921471602998043229838586169723335023740613776284596565533273905481871855149533909007024295248867301855433713673273657926563381381170369858516704552125400224817778073868847209876794299552422276026438808714289349170451197682081603930820163887975444371827959496163175851965746490240874492222567167189343055372330840586321276665347747289696385953300919187594679297694277947452424399593273295385614638135673598954359102025012528407893645050230331927935264105521792787387558679728238077476720532939914285630831075228102906281929942464410334870243388832259459043613454661035308984637629626626897715911848824398866424367580530860492614922798237013567280950781490733364952757973257323351335706828852819264920439258561472906748322341225901574792425251017581175189299438388714513077441613141654036821870274307856759083283866040603540620516292653656371964117348028028570247909229399560231808543870009733092845890370359611619593680569331659557125355177625369533244018104886565466634169971087040027223513484162135754886710787872011426021011944924088910997698608694630995344629568135720501069575177694200251741116999473880700376965355230013078674719386109059305945660468798462206050132356407963995052781289250842072520480477613807947270447133558494037116631114059367255266167007000749435278133065743050595678970071499739795026430429476024198292045056952105354039732720005850458753212619419821566071309206900323158032575369960765878895977217778543120567918127234377419096055521677782568246396063712289352218355783415999871419602653980696334867114486129666340690304718733806258803215978070242655139595475591393668652027859459770766459814308013589119406595715338512021351517216692861353176923264461481307574474894881412647082616520437258777416794893934007988794763630413405088029865582747891429697868451660095254050521475450104900390856281095233322397365195846631838185362738341126432720207024604340605538894677465693202392772350316685755657279545559087735475458233941719166814192951001137545982323768193531287594920777147097484338629896817236350719855049922368891715012070015049385083889520390356488075724147527107919434951554512185876384902003911520174791010393701207216473002184279872277520968939428775890352964787109755362789073159095154493899161941110987871560815079466326472899636907662569314626151555228107826322673112468238429058498440227102601870713187379700059341773929755558858526177521535437420377702200408123110684176108315349796545973065837204819212070692368628773184839856230757705743504459093148908454315016779355143713598636946749737218090743281063885997890818245527938718945658494894669661386751916879229712232060165014014997707981459095738983076872465469796102858007359976866232558154650423686865126418458327796439755455495779908187368576144238394040312488393967944327560699519420396552377920904190234276144004198392713406052009504967492177464306798758662646710858034903766466583145915702504762576310614845195684538040577562556381851672658766567328213530756213560105510195580876911634390718961555469041108769371662401785688008699522857530273377396443964300356157318425263497672673575280469968423562953292633336108260549404789069929531398916622964173349973065304773233492205460481784739822168416566720200148260303348425980555405706235858702642207431094740732411737971540635157438577016080745568855758156376738952475021782511548420967051200372920176712087256991744514679246217079468587595544259671952495240812171957864352262969988712349344724643343844478885781379705630539595768113368741043716843408450054382091166406479833246488990021237475879541195520974350768412913279860762173560373813809071389146999975581138904179279373529809731886753252386127914499681233522912754207370149894212613817165577050774407302805025373904940023910549163691804918699559302800868228775661486884769584150503848598405921167029157446131952895881848718256295851834893066048045880751491048826314872199309565893883909629467546989403579150992367806108339128666512371069816558972307122690465019299283041451485331936778445918528497375124566767801013714797324420569708120593121096903258530224046092635656367742677778333871312511837716415871268849305863099172975218433515920951592573350354161047714453300567972372751336275079601974941519381831542649713408849650118509586388183565302339053975827529980445299223637675139898961194770270233898803489423834913672072442189741161617598111151473684790935003366636538840307435424368650768299263872742049776288442034478196224459327021491543510271066112089614843305261234788977973632089749184208464231556319736421600912717431807369615729231980426119673743141657984599806359706603546185003668177348453372156541770005720902593246382609521168264896812347890793370974272446871034737910571288012840162181610550629278514287386652681267611085688301472555429942724315522497938941545221451079210627516926201925234492308262079034645549736939074185888041530896676244754797426296993465480184120085243480599506279237747281894395100455263985950940430866374299698801033142840698492189537183543894671981121563513757678409035328804375935148570926178281654063249777758916370471549024407126922129891508786729678167901479098474532930995752919392633927342617158231671026730532654464907357493078506478335468220085058538349004192503769384938740803619929404962136282785374569375764279837185625116680960142403182008486296649359597124961996173378623772287305772880800346303286621186429990150135692765242520037581682672931031711135797958317855100544253834602181320753635979292112094162815884154835114074899419118938314586017036625362675175924908134937756762372038574510512601549658231159252295946584638552827204579079353662046336673288284200361076431120325061689959719548494239670820983579119604242062459237615893532022923181703874485386543993627604218569659705856327055226017001313339575206439575834625546995495467252592676211216228284774133112085889233187130116342022791441261693037610568104544713101663715473717457606526828510692762167632066636771781961974609469202121939741894857400024369584953571259150705497057767938233375720312328893850264726612084786744941543610857349746422524096433384395882509377271245948855346268443085325437592696605349037389573953893409191954440330176544034253630654832852345571302330097697967509543672984680398325064263493097854239435595275792738717145918086948509982398998205588753253937222246419391258554290282560498317619821552870083409493630555169027238528151762038998124961255603816745337889384828454169512722216883885923435948120081058560639611759094979148471611009231873383453184321254633640864111554417781181169794713419898358713791424792758367344511870867852995384460005576954357031651962902447030845160657815070894999226046075027213975418500763754876585913272062353950157433236867381364427666852560943820467310408840415740301958807412061493143030224621519420746808603324463265607639660659597686665194374401104329029772060528205086202046013364573024537394444959883527760116344212216718191994373373492714495757630179320762007240247636554964579136632781356915849917395982539775117380429525038933539207626300692433857661894873943718416132222050077896163393245466175364482127097040433781763669071004202627540659440010664530877169486799802338938200651008473273716835218085868881850679795775229663608377521004656633012837813535234873657977625271569876285082934415489818479385672256421941273843277737435307533211124183116083203206475535946041580842196818641894370742697650111171898054077794907200950125603255573766012511126037708154924497207555471659626605262554360760878044689388246558698028180634739323739959858529708618297015605421557636594245159085863056827988285777286709968400269893801371173041097685463756455274534788463191023953998317711595726218008734805552578239790609651997656760159776675581636247039837493490831491076022956465010895986404592640048845811883313923623092348411037150766239624483391557548867877756035784592579572311001039587774082439868061080411901845372411206039830600706148847625545985633363453729782018524129979204612306312817714536889180251728900295268784861184290636623389139339611717940997359507294481241155539474096174303907034918555390752809138489243679490705571584769587513182832997674459939671200661401159367208140676001733659602562276103764147318023234194495140107188461208749097912706154170327226187218164395845736698720329281029181251216576341469458875161165018701848985167831934912938960196763498666339394654077227378174680966840423942145557801700828033747487683260850044832725984462392735934959886685961438957509032596578373737591861870935032250185895662304074088042983965798755713955389307811020305063451280940263722263951956405811604976082886385166056048789929840088834505699308898555326309134424154162809178391460644340597530484172610130533333882154774404719887605692215752843311578800024562093698820337655618920891686795246613430436539493518218320456308228814350111750049742781080748870540103076221445846170261866441804205798627481271981929050103359788464150359366432127237260994971645490663302372599577446178259929641283388751411930647982724190049723235717021149665091596039974874750735893903369535635928484613648883627091233679874773528647018012293578234575967988515508534670047444727159417026559642035764068825646039575352409593545059721434056317101767538683916580145535839494220922285299459419018464741887036961232374677547137074490295330361298591697451150666784358779562273368235070891458792026930893833319951823230284211006295922794339414059694665073465838178480364978482370969043963597014842779237883613891426177211538709424784381296912704643932499143397389591109874254460131880008803216545206101568838169649662882281731606142790260285138749317815292149047586877966093008178683655954654494431384730341724803928072120893753534115485409818180583122152207058713174515862034968998542079151467483419635061127780315386759090138086014665602557327830573633110533954995531406620781030816206112182401373947191433476983031805769621983458869606602229196466656203703117719730265468069106978596354889441751357318348706798900076512044824458989369258898669017722098533481444631885219857789774600161427932109013476067941045068611200557061239582544700659108191314408508996375081337068443377705910223773079636060503110739433397527408297103169168596827114507308787803427944491044285285459141593384540174109520130671152289097449287957402772571401640858012136380399629899309080722144287131778908923483706485736726698462470567402626130229826919440980055558638477363803584221451248974863661289534329369674778288563159991073394916331330724899144045391674645136492881058679568715605892154171455642325580598252815507526737283580309460359958375778713549806026891582519445241223498060499827148344621268185349441505812374858509191136533948663128700375968984873608575828313385518237543671581868862592857495014145119569836105577751875521325814631539028478057450297213918415780872103842071408404010709041110525580205709912630460492448611845359289395728364034861414819720510833498267300401341698042639500743379711801503044925335779552158733457685383883309819563758828395662538972838137207091562151350099940025102401269492142554903977610498597177685014283726250140259808377377400900646872408171824129252752599552032548251532307224363309657987062204622302508816319148184319361463266064552534093264525400674000023972981756342342404903737225447174852856632973921363830849185736395081968399443660744435964779209965832312894179217762167503632607363258885089102021466609708001875500386096703035938492271890557590919138915748167981451885041238387673741457629296950758321540926486104271490268358573802581732541566286974139742233689791585029974025040326526860512874989316399110860196608087809450544877799358900944906988112896197128823120056285456397988074773173410703950189540641268459079973016040926590218588600032495301283642172604488201869796493709358170714505981557546855946020410477474592826414775837065945779608351253078850634854483855721667642090411956866837862669919457772636283733837203106795643371266855166661851369530185920888264628740364552616629697848082502263285531384987263878780589798852303191835435159064527503109330736422720675362667663847551372763495493769418855808247837458489579384763420251488845484341813537697000535295115079996249784274266210119745452725880537337763705615505749807186115967509864296241598788046245835612690635016919226989231879977360273417952563551196440623278044220360574872644191149702169401666894493235088531339982832385900044378184968877388252459186407834599396940969016126262499284594127359622682181412509175180763672018198341975559814630216945863325206816129870821136208144243468477724457418439139113294085470341473562937231591391155374445457710358177381034270599119823488543836801104835935468083702850009481662856624147213447379109389189918005504788013020359195065107269592328259562518173857626992145289183485466295274900539134542767411457875526700227760869329085757228593103188812142581467589786410330596873835021560267263878864215549152436499669223625766061874694292853414650975390411844835333642965880287968083620592671146452786202371901273096566179161428558806386994966219052804949503958215302460030486397290523926071034510109192332544493001145633466141939801091606041171286193887009602821896340206829919545395000790993558064510700113481815684502743587833356850731446320493177331764168173941270916370618996311249784606575054365799375355972390411180607646876134062075183972087469983271473942547745103604635806485865593530830042665405648238942731899405887948609835244523593984136293820534069980706786131628338606866202874864610759480223114300813703225248036139340064151408893933023335251873322868560146552374411942628230235077731200041644497929735317265904991674056160552563005017276353947489021548936195861335731162100156107589050981918741515821728416334455997401076243762670712472914935673585967949174909188194518582552547716601818812225482878668880644939991050567812341157351748878826803100773625440440203729076606632308972291657219472715513730583489362550219565594584473835461679304351343002400957177657774364639068216544327006689687792297044645804710725958677114825470971619596685499058389125256373032873396603118468710303248737801041487830604747690780979178733689426256505005023775014941761374637645516091018148541652647738034873789722465674127568340904579881758803890009847969362157188785225950485340705189849871925862195865625517208125695666177281867258698339119241652960118703337932373590509200717520333246425212943488419906848034254133330732073469208760475389294000475833056703211581529606332930068410885607448133865865156215917668972339503446378857421007861039767731020492799742290110353143217626789686176084601536004445294770787263423543770279350320950521982984414216752507780137607920306782245393619074586274045543730732199285154142439073539478381665622872512229414785305230708206269238394714256868713012547819983407789930818867036242207821580536364601403952342827486778737725575242440710736391895433122778373563681258470645002270017523305064536835767488070774238095898022236574877964096290776672305279626892787630370203263353092754139612775885121610978013604149958505829128337199576379785199911441358730343212719703895315841268671737247978828588654892276861527018568333479306801353127321141883959857097881964079108243744522910139329884302548743392289417036606548885301675114987085192738785245322571893769021428692303570933390021081644288217429305574681569846740773415419057609605755234288641838956224216721662116316176701843172686188146626409039544678371799446503149457581993636594871925393868076015427842725848880121837694008589071086593282540141770830522819614589271469814777641847881787106221106830873236606353492531901602781048208431696546783060715136246374694069492362656851476051502026810545509677913423896997693478432347537859699696596260851400309565746261203497306569266509688972866019087434645157233425610619070229771326247989617429790619783343674235423958537849403250581788726119250572554821820695882252600889267333469792351918044609261934100538184052267683906863537124139956707730967382338596768504807264372205533242325174461866142386859395968114494170418761039444728174403022451397077994955369601743108766130100613150402466599771282566025947551069236970121266411282150008680666120208524168663562972614860793298197572160197840332538398076027137301475911707224891107652126443004375457071916589751226540260707829199190648704956694097200446820697583226600861658628879953416242950032322194708460472820448830227373861460740552568869620847125172006560633054716350112519053599477209413244915207576086234053217201643481598848648638151494570099147272533684719673441293070900667453999095599754162407418489024861965789713212306924458168978424388176819632020408223856257719444446363103708122733215919597059742213219308667106500923120824832149503399988206570243499925622842931252189231103396319523492190496175681418179753251140709105043692960170353908431805293792341164481370583491372267788718941002696070118344419407660053669446928214418300312414358088043980947687108024675658849304910370276363509369623739232225278380306083422193193222610126361710944273482229703189619645002460193983167611904256037082581189025834111747776417894273573936570659826592133106361371369148223329808472700952575525669240197072626201698234055636197469693597321490478889228889327792508312114188635416793478378828887369402734219531160208679540154447986472645975771225523763505261583959978143989764070768172569680347353544939223314450851543913030471517812403340462385978103838711666202435818760097357164072012153561794487245267575512352228587293498143585885910918429375401696775739855365744075877918713190612946976217599482552495272608541968585221407016393552806267058709790683561430525765748821815669718207824868210828396990900838034535990489906189457329301092751457221018632834622035995975376425605211944476742290405475968885362732833274609376514492692809426633443293618135046854908334107430445336556079124379496849271988865890718998763876348434665146254385201408633798629587317345634774230949216142430805122068808846506274219719154942064113256282554341365601936499694811398083823984629861970964366036895225076007674818205074571517244347944987594460312123191433643028129978608733040648630168496218516366357750776680654219493616379170968830173396660025934621995295781989916266345413302445770848480451122718095637518720064146805211892949056314001403204279109497869995715086445671764137475269880729677524224087663852045516362174518139438539926379256260226443348091023819568933195903883068600173522470180674934927104610662806394908502494127731139471306607097237376052079512875834649138741627665816998078906247668677763870365574471904288379728674685480956478466609816741804930547537912523126949748238153320763043477621113049445167173281570602667291507566696717829535418609845359462299506904134045128288244150785360083162208504668424091705287338415640605911452671155446869657547732024045878102343203259841816246399555387981551941379311895998748220866841645828237444846033922772846714437604037175310315113299617585135796159976520861248865834072367349319304405808517560339980326557208102466028996246770179658865347072658120159266568699596563231392080705654669079187941711851102929474416752909514398803934178901065566876924429570385205003398933720903901011647030404371081301451534710558909435140240181981389567226356152732812280286270268909225835586450102072786532086633743498824650449275562664051341625496277774027774536171641591779632391651881021015232991839579489296133104398768628847420621011246723089335706317224746466691611632583200580139711136815160935592860465596302034304070743751297673329036390452388791210239844432608623134378286191218491000401165070396368660083388186271947354100029728363518772523362630306417766734071182938845812875996056806658742097534177321097732811247921476878402131469310018321823849868113835530105596431582685541304965558256772935707718634896365228760594047074896275213141697417889942562543030680607869567983473989766108569548066552207140201481371433405081969091831668881836724157274844164951069455367770893777721210032638986288553172055736153051875637148173231959888200215629256146033821058883687702884948176577541608612408722630188770862517896407914351745895619709452567648386905345177695661135785007252612595926322468675048411592719194406975995696701608640587146694170379102769045660017325696535307869750658642329628396875557557286507966023840590654211779640015769672053136342179257236304275362277169621080117447217816403133099193504325264736468001764271346695871920094985822791720471144005861391349717507954513365887285639366578512214531223096432432234085939477824376706817520431966175206322524286484437362333741798707206421646067877125683047924524751060914616477030253610565287373066576305093328793388542532523030316686673827092657167111493783281098978801968753871531399601040580480619433982636436032495524057184509253073888648625855284903987217714204339982700386912602943202926610661052062569955125057114335974250361991071782356302506699364947675413234488181429655505331246091569070925338636551362191538094639270255386155912972913583490811896411146634971459737796810442433105622373633496384179426893286127582821147833774602330198145138505782709569657954593482131769295879359126281797035120576160597500627054048063898930061544826283785823419292486837364829827841347837918218582951418673811305155317377484048515552875174366088049459834021725663807172397699568690864154459013877791792073428577525694357821635155372670149098098859112979123771297597191897239201234119571352912996615643782435239240625546602109172568431156890784793939947317250900873512116022772084190898741454521223158600615279785429461674691828153499041373655255384111577447724419035581190109578874901254981190767600757534401608898121102530645029473214646418684435715046754341648847001162569803764226559719546736940123586807116186706509672795350755639911299293393478254177656781291051300042198168759214924281989823938684758332953791523015406990498732099576355603808672196406595994291333169805895712139073157273155731057944460337297394521229606767369370633663451915603811400116852863654123345215140440624597604134899797477694098972245894903442068971472495648600747387931269214658034689518026133183885593703289061593078606084074585237455884739047566339045989415647830480616231759747471652198619511343252051294567826663320910722441778880769511013785495765563607556628441515188527387720291446275612175356871933523548933777870122483589317258836512686486564729781882915613006605528265516331462837396507254512132946741114485649438523666514611657467856999706943159930117179321366341772934895287593567043589340796047695877965931599980440519333783580731158795431245460287190996854895577213002088607132069774069374301571942104777792822047025260515871000016432208524892725078632357347768394646349544354705291175465919737478893344000468699746758087217492012004014342998445654647672616137456953126600944623354139439549871145319705411588506296925210456619939083650814726522481924626177160160753795939417065908302808955635243447505152971702072801062548898629528906692392380061809171477753982149270985133367084002161816183237082035132489713849934142573770028048973217266660229440531773413159437592637499363368964561767579973952804256493222362837946981515292721353534634082966560438708603114427169519121204092249277611557905505487979747649203090444710781548424313029011077120130370417482263872561249702203504540197386993226365798613132549425190688510733371369888368427813446440414011389773865935028249922459904439455685186926505157157497552844613523644249848932342069980638980643544104052341894887003464009992690397174985965360372847873745209811464019606360649293728348916404678519990930387224511356321684638423207476632535519552172377556103155552181444422564175334104566480388557710154879512812713320329178874331743587563046058829152683550136941964335059230891068207129106229832925603763728485018102152794403113833433461627154023975558616222176039380633616298646112772185357528991797502070060673244615028308979748185212917417154224174549218104951684712868267158073276377732233578463636371769023512953244841438419409677240584256365027146473027677758545111858391608946141424187109770124623052823080455640951710765892506178435680399466727349432439073142505081722285156312749402135112230437959860155792392735890730772530970263373402562997667588933885741221873410983966231270380057487518789813615334111736336045737559182400301104090583352559494133307085888669080521632195506446964177535744332893451294293998647004389761606168600356664528308010394231815570942364866029903822442190827689608190367139936753622441095552350869985010368372055467374037373515672738859637143718051931565069051051890091670919992808706932596554124684108638019037641496104098452534278954981060695479600295429126435378531539829677969565915195385029157175964644797474811760998670399271793429020593227814144880182244847817501602319139291492218200805854059068072294862551623425405748584183447318104504734557335769065825360075779201175674868428080731113041669885000339493397650930811402006181465505688517340456213896491237684444407802601557839567386340508506408362025715041152915260758070606893460943442693912399430506283303656530122228396075023735593748271645238304839824339658555177829256171495161438846739333951748601866144276128978940564773891141167081645977607534192227908026992662758266379499882475971875054083290557653056796689340577013694315369547957882494428767432337483254894161943911173637976723315827366396146971115539312349535756311830993376872538265697598565510626086466176654867627021858761551352135282156815278129612284658563699676523888473779500774589903664869435908399844341173666961752438593645017664267440380931910957124305921216255987569084387018579140422392974484656371341796757923008647075380069295565366124350703876050407785092782895330635853334368017036667959663611365038237474620021839680257690696747682211538266842830231348085864454180025027685859965872590613187071576243687894173991706431153382025285591566224554241824974107231808097385854780427843529067749938160555301050954635485522483738831769092376462143353672140938533735611824641299735301351112196053328933972616360178368553002931251525348946851050174728917685257421657755002723771336357910030069248994919228228889265204854203814407781291478593027771903545731869362140044265153444036759938778451838176792052215228723923614883771377594881129264751397573266432076489201713938564899315237318528052708863576323706955379974890381608678440933081928566563047093938834757895578755118326992997423336961147698649429067295392231444488403891722252107226478382512208629212128902759677837281190944357964540516805370343138659415622519506789250393835959132710149421075839313249614848984576737035785622898909098689331858488992878587432971725239504837203863320071911328113318321728040029432327786304207288647927286889332822077868800176272235245743965611741592395898030198194778998795211883321198721580872552692027168978445788467780632319584170357457480207879803636206043955467707067603367140716903190206686950697385324424352848991075138845142459598984117575328166361497275989870616073332985853965197945590635540502170815053786576573306450355064592580432611566161858240791067752225943543005600545380667444611682781619768801832189365151441394457939535341582733347864416526072976204455500455917716379672949822934503634759198251533701931038666622290741857574934891346515530677169200874357346786422376573866932260733877119224473714626104620023985294566639616204445750103716183932421132042301011155912966271242185587783166301261789376525594084854535475102782388099490491741038583997455630664204825214362541240206193219034055125441884333047915304353719090150337630118851507494874881492665113351897491570979177689088115862599822464677774106151039203725940332204053707861522422064997127043499038343144682959392766204223236642635199301687613792298584940548946016397886426690312584187061721170265402951849530514597452038663436563044757215768918422558059921910392919453924742468469092915958958023212971096004207173224242232094151482526764599108265388671855470387674343468188218744096674559623865106102146131583961550220354569896430753691601759225144884731650169130622362744547828601826882624296936170525332415202587618409971060736295094195681314563892884353679099164978636676582640667657554387969984302297255705027354998954020675626237152929672045056774027467960129201055780380911277467583666291935108915454875130577040906608747987834501878423132293057349460418674014526262334658540602772921191184018619287692357533911871368087345609213783770255732207559862202495779701629805357500679287555234019668636761321521287106658540455928369052208468465553541416639783451300129170998201045264461282732195395802814199555033580558119268629044931433698244010103159102590335143223670399762143069443657813207758240477143456131258584555586306462397957747387413519553130917016039871703735889845429887663297483912178149105777171200397596039715721662271924315581847412665889260286802661662127117376925992018473674216536667977972953648758891839666822903307624059675385679839161085156289223956519825196144875896879925998066841944132512944815814046286184370834185436029046405839051370447370259073792367071573065621535511216685100438626071533355726506526221156766136439224285282800999805902655455796253174511652253962741118633536527434476645881829294214846738303594948930260827403170471920227233355541162133550260390734586610179371710559915636760061173099276805791598137118219045072641946673513178860868735192670593863070585643787250266601967111745845176412014222819471496098319785098693893888312201779711553678415464420679006271512473485896624165270507777956651665741789708051986711450322183258747576234398708101567634286298336685671879536033257723102009873861734501780154639229404224473715668958276174881556223786785263793540979045299772958614919290527553799820126238396813141714867480237145398645070165945788121715434068696141879309021098714398280609793132991489688183783225837424475582476182173299562593077030514922025529511663201865726562481495360135796761749913197472633979876980361845947325393958190449796929658827910627308715231653029385430430650760344472093702522574054202888887645657245163195856666592940993952765067510989097731251523927460123382336695930281141189307759412389185467289260159985865948369379206061458329000944699959869001675244659261019300134913248089318289293029715431517631863992381412102047214738082873189225285604684779202988153197326027080665716125278049930792391672601415957356528516490263564794274599863086210257917087876212717576380709774646791141036386363103681123502583610369666751614070565229562878430745195872831028607415803811667962892512829117003373963261898593564996448839176337361733147028544119295570691758333117677526258890125890661288557963270474040026548057358077361361070491299795375568364055596877886675012454764933125026432997203912577210446450079485035679757528794297943644076715815052703364480259874785631545533089049100949498173755362272198939098941393498270614576497899167859481200193762998649623100192742901822839315585796101044343347768336429284550586087655411375108181351034764953824807952437446046036739863290504393880636854866789011816779250240112249095047844834542214209220722210472602422045551089937275307683705578619962439579636526951232968561674164429223801363154663902227558047274925170545514138472143881065089851478102175044936197679883059228348775711617319782679877912363874715103458471918852440837805527764798580219787821047908080321515844402039545943468745618361302100905024261259115127441996887516036679582405935487998139916844837823310741037558996270052606378711294729494106823078101562546003915219800485854106708377847248389007387051884553821094138205166322067351292222494276197031455708996543293296855459812931002830627661498571018369533661973278742925840362456593779898831462830912139378206686896113518522846907896889829140414682716032729229026085607196064134333303977478939428829628440890329146104327878224351040746755092470786499290926170956126260228450106713522675902887792642527388100964982803847084710767441779420331813066029856835481589039856761379012552488717139044158136744482652805320787015189687718203731007624479053333216131343372907739930360433787217507827110590370812316994439018360883459680585979229922943371066090723599771571726475412512113489630871969946563451824852748658785993395406370668704473671763810436682445285437022191211171964431601513824978723636074865007702209208507242578698123277259429514501914096126239651560217029977051872360885731679858886754227665013351171170675613337896712546844690674824688392266207920289110586676302376360916058105815571206092442112126606036066994288850683068002696684908475751100383326982802186549363417009124807877090847143289510230625464657458587349305030475361806932042214073893218816751335845963288072818506826533158833530881819716690058566890189250571978449891370367796980924825296544811765456664295551424555942720640514880078939305679829600151496446807555012546047377614591250010921308040119449616162202402186440766500426856503836197267101723931376754876135933655690235735130265900427846693307814320523460482346212695123174500956307835909322848581858841264304351962306783753265931767327329100006539998825952549924011069791028839388045972046972034364279537779576532447484767991055849306542208659834335563693089775206498122517479317229900215217749541072139571494005241395248387668989965384521814500707769418471215555962150446846299785440383171467211976148338244981587767462706438149503822099368228558814526507452826826044847546189682034480417919162165137800898627472071797173686410669409307568880558945472168416487640237296564452100555481276608542442675079163466249014187558502632462172355418774719740905237998767484725342623051785832501926358934302088354171434507092257747542249087065302529678910436860922547632381294452950927672755945420722242548020884251049942008333751412029247603292101221013801795521945476044822077212392166333606966980860270959878857045421788567900562215095403786705219680556719571496521551796769163292578706244425167443994199306163798772856378734921205589085730237668468252326002687816141970801561325942343185244755937969156545109090952980323332442186040825011913214955563573753361464160446300767041503324662008937446946883303937485296205550537674620647278198803091522491427583131286658428114846186129154966541765097972812472493713554800020038121504717525913673065251111259915931545798912079405096597471172968462084604453368216537098115359889204275338002059933090942411910570295401627075899910653933034110545044309208054546259259211220146176534011984744370950035601547657425628725483378871751240591556190620888827423659153139719581377034462211959088671617694096237554302392907464131963568504778197664758823543179830991153847106850157198600638596067044387059727177353077568834475330539808138151488682002413681617712857493130347010808159053409220907979696450528679710993858017256342389982139256437269432249920957639345389256376203725638339376815567083419940513982142139199255869459652367686924065684394634653492490457756867740695810880963726078516621880361478654033237631137104097645709528789710871770688471413963445655610454370705993664235266958260474501469025919613530370426546816439759491045518202510957408968292112896885379543121442859186915668115798437509234547360417188304141754174255514657568238832629290052802270147897312802992942151137719677208223008533619697097084893208924293921832808151564023715036822934466387882416307772186153563538608779079314507109732226067268341563016809960709647061038149210113999787061368722839406856813933033328527753367755506682632388452755062428036518631505011275336617681674005265820010544797225281693279699963206437866720365463425540740922324679441699933275926058537362317387357601700103321717273499130973077857681993779334953079219254680310968075390791201329144295981336128306044066078528196700316536891278833495310584331421329023381744192528005193123118989300572806106741777032263932988718253494035774936547812354593219235938498937541664821619542359213444397484826837923650643047758597426524063872038473685302535492689798153766008358661144631917551906127797062167441111707599770086499777916483591438879862711153913471391258345484922535395580944220908856103548220599312492902431308558609682485919432468455811366248031516381632047926826927781206955222569698607849715851554456362705042075324494261836797797305520349715637345537822119393676301172028594846882857711102069774753408785780786369192860494514280189062812092413751598256995079572059367672463559002776585822319020031751011580874752055222959318539222975220051660261820375554741496423932390090161265583802957539002907130758100734285194119274701617591159899857647045869522527666789760770560928682711064617800046301660085999828061348545027348545351057504332676899622459349931991288632362387560821326629991541093894920346675360519177266758504943063836967796090715383982324648202891506439150510539981593693240331977297859557796358328555752259916947859465133337917177962638050316405298025770360162123774966017547577114098022625103053335895525776503172242565321477296793314544933369422578219119059638728547923228907785456984151833947340311981170330251732768757523047437109214475355547994234018528187088905433015683857625660865347948070265762057727335832571942389080981631731251039223338099724013291736307997168821066846958346489657028302566999405112754395100140036133505887668792444092911869895837553692588363441446166224278444283848210122307127956500358466826205578365907769852792300451112568167699621619625347514401278241004470232061044435635977695835156778758227627968993251786020651826557651240484146475536202136396687932165498771516607672267561627563344580724835429880007589702751150291779084606278395567949115419507166542735138944452841211688468710282869413843124188083557993504055135890151679198278443014140355269567171735240866843740985387882470181999261959576259620566616475669786671051569989634928400272603505652446041300749714897638497091763737317557516051275047974121444960646440926972750093328024041344785183446735902204983863575761180900273146960055913185321027325792295230339350007742928829664229531604882168492613580302234145125722273310706001574739160960016400794007897619021835295156322834206424541075490390836459723016246083416150385196663009295232108293724155941341796823322931754206411077303629217265083180259725480417409187123196481116335450534726565007417129541862187554746874373690079403034882715959113714163209275999414878063041302729767048139843332429463440163565940831167573770648728848536098107838407553856519078907167511107072783598093181486790530660087767027962675213193680245338395670407379670027844103222972558442869244704688832197098352019810354928255409202246288689184498521875464034858795864974270653383175605048004431879129115112170033198551324502682475191693093471647087004745085545446286124751945833920948033019229636064775505616367995944174153363930931178588545563185773012155424924956064730818232902269267144404532816234606046549957655275771227199525908854724107409896698966924140264082106815864002334722761178474541134448934241311668232954331337764563855455345451693710715693928402190116398439398137189849726752375114505170737996456219380582132510795932053826615558613216662870652140394380265897433332726187316094980251867208942195645123767815847987331681661101569259015185553012063792237909202106443983292024354816898658510402646087677581581243546312400483189830268224040794057870002549562783398712272109840237262099163262386212357275947424551776938662431359919058009023766941261690324681337228628245551958788517769268792327298311044279638511840707479430778754610410798449619627572486076093732599691449278932950325215042820091139983556500988643178656810005018804131883183317149537998254864313626656217656873975568362777990122755548251314370064363514658076090948598351536254404054070815863899257499261612608742816862603755730841132000382924404029907989530854409274358007637288055001091780406694039000509074150632007858932359548734991054713085156305336790540927846471812021785230905196708350535980356310134525327800732608949353009647331605738697301897179532163060240199308653451164609918232765311605159243854295071294520002175551062574504449403312263399471646165818578386455472703415958423989440744934477858479085814454268264185323793446891488367845155193654040883305125845275935951155148517551123117397307992625354402289710836358672108886455179338338593833058811180076804436970404944469011987040347296247774774378784137589448145676572373467327918316517229646926689486277601784866686848729906816031597629407171525880312088234783723226119004943680462987975635127185197037831524716499750275200381787067070836141424539282106208912328192724120849070448375668792148551388454368160728608377972583830464425543205947484997292784715810180323482201556936043035758586025040691706884354118722713228332183570826911895539104195507129035410811339956279385393179395480968672021503643928160062055881659253606534283189091926597320410342115981432095878975181256493883515804820391598046785001744908453829754885733536197956932002660028223639196151969516977770244482234572457309528671702857617680461108222539964053614820648317095654634919677586733924478806449850020334759194435456176641037801889376860220081676754665132689326285838128977588017117043914589797177767030265390877188343697066586055110742899842207919162801487949344139953146395827390681966417254215190450881441101894759622306682278091693027227617655701138502980794632687516973491059967709793127509278539845623257526098723933263305969738399341780301517016699275381432004693115143146085847190252523719311849659114999418085830678714847852450876639933854873467616168718470021075724096685088028451181453978318914175319276843778186707944508537677240002800001817325838653129441879454015661367349230275810211751541181859471414218499160933916786164999026421961511640721844606944510806686176880537357675887352484362231721417396279739272119087106436198218449687095536689014093079709404573055888026741472142163842566225536222633105090115538920453751258190716125004729611572097536857220344043776513526935808561863782816428937098047986547252265676815409987091299651009742430193711736168540393856307134281550548861557003343171288535535845025110285956444332758048060982303741846464290829708813384329912131550852505556692187762484340362878244315453982096988716963305664612957842862968961044050789678073280820538324883307435076351788411952341211265171908171261911836586470322802117757376744977748951449605535084982176228916578349469972949739583996099858914673181344226805764912232404933014033498725326500002241758931979236619751827749232332446997031479116295838357101810480800983616352291752538783166956110324017102240755288245472249575568380681329303794604190660784333745086748333297645041925877039273480744205584041136114203870979226904742364825727965545708169066795553687968217371390614368879105918011691595305530490954835588284600483388864816660721022195600425148760529723897762527686471961600952734456217805760986434670832086537021435747417013514808634797325245922318608632229007280482709919025190646123184094992394935730450309848238958353195473350087321784719646814530287685828825355485028096463509229140294471499509698278729464798281687762038725797436218330335092556259565796005504042689271057498386857011512698276418968836883471668229893932780865219231245078317271462617269332314146626110459386725499641225576924245797077835745418011366781279841970148794301610062938210809674330920259161564177470451733647479050238299144131485776512084735768012461435767153796763967137971290950399718042798089544928360695663768652798790033856495727448373774637412081899828939306363215776531722338493790002315481254056152313274570401653493889835351265849586843559142054781767147147469357981195306968444527973298152291434477210972698548608908923330711266316293319058924454326845621058469945852324047652228067009619577267371031572074785567118291973910711168820614309121399915674388595536296777983028118557537236517220642918151481034170372617317217059662117630940918595811237668228583725675520914779960061450563434048504244418871001436936577311822834928553609416886942822418646762463501084496646405155975162415371457694624991337566103175966776696710220997873523201483483724945093877679929499877196781666784255935753086161454293993036924576276299319481839220321669514492487626340547882713996510789493310470814842055182500412032860437848989685521369103077152791026721833606525142264619549757953225938566889808141469813606656601443840818797868616434062909884293224950617931172942756481327377269161951874108669825462337705097057978496297074121715967000192342688638241933685389213778979835242223921826145108764744786206909944296318651396629011882925487898528039860031523055198664240438829367757239302502764252682589980335166978277712166735164503392096660948355378342022151310913209205485586397175655567735443824470553323714137523896598324790797228024454807969090133680050641639255529257903193299593322944599832570147995228932996379675451560669499584885998592213181704467556532631772457896257420633488833791814082171745183813342696460605265069510685148210675006466878414131030871574968761292888937130824356665282525507228280728735498497918550075390255865369322001159209979358514385917727596618897677637140620158222851398039332849744916381764657301983065370058412835859309972461477918157655290308531365137995092327832032387942675677684761586566264290596107490553525525593588704300417156120340676474882881723615626658475448907757334511433240769322772159368294771393078616643663456257109659691719860281771251110197841568487193178994143665103577492219811393922240458586275660369393416129847448736108795347589422013184379675283585577773820536115798559303770635500048069425292509474218109866753486334340060209165924948557819273896888162036149631553609552175100247010584989739011699066686730969355855049409678311565972241926887968753481971279822084018749395254209720344455359777779074547221602235001862365736802127577600915064584646239249921872804394129835984251965890432868773842552770660313409790475457462543668057407693525448697922763087015504846741803870556283261418473824256914456675830709738657127960616962121319242653627977135896338394170812791243190755730591446711967779069014706079015822414519962059802369779462482177187664982739389683308569287810022505319813866974005512774453472530086450045956380685679125450557084493115281077189325691083303998872085729614966144440876016234408072962737116569491452518196383436332362614674213351071388763025876914416525723757899438981886198683821567654379513554135862735885224738678146073415946765373628130212760713018981916379199144963926934737872133708581082999812755491804206390493968759521464938485781678216126583882477031977115329880275765215563379911094200786968540460923700304824695054026935192220659292744341551954969091761180754066508222531817314810264020676302230878878429002139580039518781021698028388831402640776196151722750952607920097536699910394014089713150788489800378306775867027720064069727700329899354049959810205588781632292398566755068536131879905382776229651151776896150187614513425069906444685332637967320808755510808373746023952092314327977286197517291926215877197029066834642443869093776151158184768188399067129999997464595155099048209803431528393697304927549213288354531397256249251754664264937118726956164441142091528203807260724281721353184178023167147652653763422571611359344767896992226623070880637554220131767448274043519919302537684586157381656185139565638390118563086621040921328828809766933464694188612552287024076597015921153684774719961844576871463667284220020089200063504853422181833316794589260840705610933871617340246080822435517930467832973424770148006861481484167563044168235004270051550577820542940920790315471472303736145077670254749891777007260608398697626909506651619300713017354421890992212240788294302630161370419395584123334412961174717108581829041736436085241573152421556882504855265859834632955251777180497553343916207040748162308429474669959282587111039109023693965234617995260287879457513212332512409096228947121024942960826313408876484579852242539308013693152073601860253173414328004631231215658963809244000713986158482326675174918641811091093744792701104409366643244769657258693484203687614619288081828322007569905883002327907521777653545504338337791038185684087058835504941973005784546035238008366958487692114481252833503007749381027865257020053743512775727842445309614712436782259654912100495687781094307260769334271929837772002690551333975102040666293788389354379825054188639797290288285566411882923817625086146514736303956249205638548364538499273946267626610051622529586798029620565935477756164324205014931517359620245733003345736407018477179183181476683445835424702704320185650653937398507275983243517265361645973161489517933015540861771204873700770117283020255931806121269183397866513084429332192866581443595081227658022542879704165433765645376967624010805523624990598633130204840172626115711337844160037526250957033900833069243671452480232837883610061780531044792311891106233588873344888732410531599211924472707251878257769413870457847759023437330848760414252753830857772724508392891496664143441906462179261222130250744952539921030503970897790087543315221430165633257993861328272657035315020840441660157892726284745102977762488955290731255483150140113595937245196052589677290459632846738749579876631825422349130254285881885807983936006843685540056077842482971236745521799640582266038109830241179792822067760659537652495061502746012537991732994073987027549270528316370058078387876748207838463460565017497321358225577349122621092719143060169971005009236499189116269861817193499330366463850744089569700980612186350771640415888965250314031231886056574759561431509293912530191194745947832501260711094553148821585224932827317218921417854238861435848494923582209789677176955685098452075037616693881017131623441245107896682440052628018114407262689872243947997684472656006743634809852727347908375429307461478369419714629139398974424716653817048933491067858770806314069756140499309841742135208155650719617463249205702268502832677859296889017604110098398052747996101472179200439753582527636189515253142374786449890107641777544351203985666881636637120529054066029247963124993794816097132441327165022530288842032609460196807368355818175048306882420671939283028367831293752935319476667475191303641620404431780163004152330086740083905067195477751947972286849972756608930343585429861463243815403998643715528104118713420867121413787591367371254388934786952939239923538081669384490901292651584449861723586062584763538869990953808165300494236165099260049353422638415246596205898495836390185892831401555328763828371379530502527311996223416727354198721235909749368325253968197593851457881345917473181126855312764946253523439616015116569108257846532509176762376013809246902357002524087311223645991216810958867352040938847609280342430186644293671046721306548590299011718061000213729326683108937635482417205692818296868324746860246288127230631975242642404240861581184478917183072066117910083043701253352685031292911932388091610702024579341320593772222734654465581990330942010942261648180052129503178423453883899470832605269865522000351760938440808012802673574574563488917462006657897701581251737912873148692667627475766722736249498455560202542399454936434010097106317066775832590510145339779722657905140329929849174945106308067716277945473819223951185603186623285237484822319187831529051061722894315852238151095222407719593276916724689089966690084272831061670705058318338940142161486928307437812695155056903616318976537125163597414407823901774223565441786464354157778795691614775162239199454784157362166308557614309588197057394509465802182281289277560151113596960298738150413847983300294382136000318926791593945216255399063353305614857208721091605400163717973561205511818717284114114796535595072333478160038027011950275254441109627091139977924326328378135805049727090036149259884977117414667005469977358412416455959627379196043774292467038211729435902883687313495440628739826746303090903575507920297085895727387296492446402359819213684914241033240087177707452288505068782375229827896407418286377980392823706067446301109557526978951292639402602234911609916687480882252546146935608377475624492789391724690791955584402163807031011006059335907034775192622524832901093804467922613009895829445023359263857483169145393592694701484522779578597655703050418334795175930899641784572096323472591691227835466141205405207887596682393546790645695619143377597875895808382463357020706743828192201952499432578455724827088071746918750058300563595371654177788198515074819467478133554694798494952289086127260965341809683070019719344586714839326503222330127239728350823234777836048627478667594147552651017179997691551690075730629971307061852762564565415694021886238977846612681279828533461405842801271269059085785035639436573409838599052142714743253555349454315429631759675883577923183065426916576824219468896895808623568253118092723035891797500027658904818600205738372682168866654748904003813003555005905729774250781083442934082290896784278380520139990099597607973724135146180630514538550774720220617945026493501101402626927043756643110631414320060820393913303914122602060591705017535244971420361034694452663186890605346820031433741918648715846453029999809183800088643674003333178371654511490932412314787169414233031504081774226973932140764758604228813600236575628285220588794313561022833651748997056953477933316041660029513373513202041581294458046887430938624172288257630327726902035531978450876146895181654585380366513588078137584780552028345076072748983403755992897418328018099438684748820829650495127414474358089379197602132261643655654407424102227077971555917134686964623177497817520420278085249771374906341768734003897816365789729152842962293847454925632557255638819036825919596577408873624325485007427893463922059419444818893456844879070323520800676556506536788867845867821833921988752067613177759475212186001929085575326995599578591729759674249088068202741186964307014059404580488484565240741620154375094558447870547763734507956155961063155468742718332174566989395075946152696991244612101183870604229760918771092144716563219419307033042414828088629231350603868933989490939652325517252922430034886557953308676818719278652511255252113816862796805488089287808708190013856273323237899572857821936554979534687539691969137454388007275213744581213714296778381888124284931431874208540370385044400907582990660147408487859760362356995262212338286277366703349395567519910458733889609054144660406294774442268644707072197094151218392646522476892320262751326957753024273775147157757217410675758238327867363268360949470946219205239706559762382471351763632521552208667507473610477265544007415828079056160652721645911527838143940095773684459756406534950056195822675600459018714805337751942438477966401418313807285130413502598878338615629627892594578002952107013964636359849177116840118440369738888347975844053167240221173481956280403956388044219453510935935867291956519003469479067092755055264346703654208040083469467582318882722229012817009769894614031778497383720712215395141225053514282658635353041437892673127031710919839367872578716302383836643985644452729218641374087844761625651178800480384123776299803722315055071329697071200924036663429691046046205769903481122348498348100969201267601757887843335820934525202244049368785175559120094731696404818233182454552166767373443808428452792430398667070089926837906560938215833025741229149250949272985248792962627599432264506957951068208150342240105659810149661755808286680356949006262871417785904736614775918305986618797723958669265819806761635961380909740481569458246593337704003288220567660561680729294283060502522875076707518504310528810615509401313592328312825826550169372725865926410276426129913789309257466928282320392175359669198263832964222198717803354382926322504139160466404014961225421333770856725660833509107878078837190373593196978208612469420296584796767997851261214265350476305695371257131029773777209778106497914392909055402458603635404079669450656362290629614815672280498076188187658982861787691296016854758045627452455295918663590339945998608991965078674142529844089809370974497235180000606567278943518415144216965580670189609488561314853057073058229025292838400572455173279146054473254289540084263705055931186622278528432310624555158433992273169378395485616955396149394928824318194949488589228031693283011196752103631777704207809969770293478419621385471959987047434636484213826354401992183781960132083950255525787079200797051740978483916546740167495888286719156332906875182970416101959597474507382131143957456217172041841958202218191596898067097487954472128968040142460424328380503171306387712411153075541348488203045997322047232854777370412402383213279880373927752327374262849433007232064796615399961931959820775436788191376517251789334551006186666004982071590161660392473788940328996368713390609522780669116000248120480104279986476655545640161593471856707687168758251339336532861298035808182232930106407284312102348981198444434403054232974580693084911644946592767057223885712569256872519198762064863662953613497038216221810508056737059275551975492971891869770281109328061997168862110359905005646522340959141059139096634055287169032701533315972124655414028257057849648846064695832501591514781457913252408413284950898722053471241269932564573576524949331363002438243676547524414658805016014416224644029173372016240154738974800988322096181835136739763605153196516765628146610064845719672924295187985539535665160578811704419143356708773246277822850849906604143602207303791352557542361574058916562966693614867383291523443985176180129867808496485954614638189495807422598237952789379422960435430192050373245714318017197926674894322871794220054252279452282524699920737364354702895516062893442903929204830551529325427781933894842796743822613989049755246696742261170304221335950191622456412820999897419315931911550953096799744225970186674091592853724150221140120285359773309637810999297862779232704484009739207966630850001825982550310889391241590395810471707225987993930958271586803701669816174434795044199596611454181481390888330562055585212202132790122488046374192472183746347289374300172940950442334147927331753952719672488415537759973442716598923984098311815607716958958874798976952480423074248446995828146408035019771854520068083517787657742293212688797299567369361054054600467654310413115292027532657785398144678517756636735408776585893961811658534442329569642875075351091142751719001448220446318816385681726735739114718015050151193875292321739989828534366020384835614605487387033094458851908115905831797893240382416887651106201993449304356937358858038056626052289680071198808054993177305315846536838718569224244426089975590166425830431875021423999617966479781187764207118269261887592841797287789993229081748439699765948609238110741110563350017764961190836141762680200495207286640403912176952279129467273524314346831248481982967848616751925278784686802876998628337844740756570040440646489677292166963402959366898630453961071478957351359668829976271259228963728796784756764517757147741041457383370622297137236146058376408585236714746066325812301785058048354891533554196579547114806981034692210173713941246051796960724588227508824732950251663169745954354780817184779389344777132401598395300996310339448962867998840934122506350116061772438021796783648994050742113831709595413964682352964315700797545675929724477517725282856403732545626697176177749952630527309568050645874328607997883619840471744588884276256984739604451821941763249716257276652036400771209030939836549424214715158722438500515494980992157743900017634162879639585248587287127000937994030512475309293431261080016677976439911478388043904522267497886327074370309626703360195350144391704358234078651633011396278823030370294807938480551026134420361076059408507330713171373132839642282391639411720549796348791696433729677029585810500902204029700885552429401732335764339483835108589931015925912903080128009954315209151056914954248656818375904629225335338537313725536462764471951536741521748888637389287465131713319201373743056370926940679878005552678870172903379761333442186484013742780357006334060710888866304547176384636307089521805651251844425446965992118930512201587777168377249758331338241571181841814154058719718640131347682217931799263466167506383820210874599510904517371976614730259354230905603552216711786424604237392869255448743807343334002351214341957107766645181304358049853315963666894305211703649263040088913941969800833285511023589452632627452435568348686006326910989184235624644063636567355821282909442539601517227017853393562236535182652337925989657780878192083482233884348742209182184508490959433672395625115550941321629160169576342440351610486305719828877534232439486238088343423256832986135519668542691997761367308994193605239315671941827374535817259365467522182794780148768248358934165502313623913520192316574462644554655776058130894794732621603074313212479736250568945297481180230787223506168461694762727034224912505090514773534664132782258107195778672815230737783856916411307215152706259474994900602219439373388382672525849301338348403116479770085017380685725607983802581364274088748735452708170111309766398586814585914540180501036875557067318395806175008378052287535367932907506511723340222309334708053114638479195434699298069852917469672524081413748219544301189778788764501544797186929555063999032127972018474809087818312001176438953236534026408717289827154590863873197701810485757992670494536724939952218584453740436657320159410465220987052486559192313670825577606340292170325991159252309802846814718984906642592682241717960269815340948553716068819966442850162552731964475748979162487094939549848610451353207973343517192446327561745328248781621841512377935224760632375359736056636578946288668682872592612027940813248045530975410630362924325055758656201354297230421547439600499537958836329237136067765006743569303177926462815480070542944787371094869011303512854999904563549464676255739479197317531261869655880614822168360269184862388664370239011652732187078626745325989425521852969564778586172552281235828647731937102538358725323836707531391918762538379069517951535180782354052522430151736758083232188923190608743256534899797181547246955710787647820980824229701906610876918888646524401171574267315805960346800565117039879892650056701202718995759881359401779902768738984717873187747179272728042019067165879944823669696964273471428818233650528673260046025633120009048798452068751810209918414588864646681747747217999633845797374764177520827407509955395006567905095198017285770246228654981559245899301075602521737269342400918484821278614253956142702182981724939520104568657511183679268219533893328034526184446426664188476101973912506207893092294388728317222872156800542121428224801798372977447978297015383738476282872756678200543799533479536868207043875553477559973061887541509389968495666525900317457827212073039552465419690924643638048096294108048442436039136091176286193640817483948230233300387410408033135102117070037188899120779052546975051905959738306825497100185220417458599261487650995407915974653062098703131967754339788783632241409926645864632731942315502801562795045919674304845711629430970546712371340305902093518970474342639523834360959478020589404965729525178234922889112691633784145512667902648561172633297212474138659271418768972900620245766319609432882823816134681751385946710034792126171975411629001535343440303459526099524870795686945599162461783428743146168255647915454828280586761633162247624629032066719234212486674674955325044661726151743770821791286436463091203405068982211861120888501749862406500127556872678279473622658115175843251842430743607753631724643353708836040743119439945284621552755837343679396237236936192533654167434497079056165491056725882236475080764903490396995370499346669592656333615686340083430783942400971800260970258124674031178618197765938750774076691588915019299207641677139347508360240133500409297416933000693312801741635816540561942581830198699351253614824415957894529331885400315043012721963880428452233825916205740233715697567663713648360312580727259741683063109054133412750501159260572316907414327195618920458884560934610941416184991768630281790699754186619806382769593988266876718254046863951458022334954788149977809180573023394633457104295899147884750253203696768360181000082321462204116442597038134182843311229216571665901753627896494684333079633981945733078376165477519710797651376306236973145983217301321260266405945159929235716006145170833122742172610679430760281656848482067914110317313064662954883717738848773420953437141083221234224036100167203257270986031273264170659457891907221883230701555084354761862843594953438514661815485121037561235330739505813991232847845720175741297258655286431836486711661239811037315458379611761029059526988882841781121080079640621186347064103423830752197316858276675029586824943604442301054745492408493638372145587236921361253719543740636957304554915001231823676881637590309019272884729051120942182264303781382042863912637923078010043514267869791433686900295065152237986809058640679942666031010936442043411095554873516114297800374955839388682701183256479975522572625723662631826480792499112970961605952984195740697823725014809640949811549507682725278379120704446113663996044813670202994234047383598052748102513902552738610997312161730077318569130087053391512335783010155445741249884048964449627175660248623497803121667039948131345315896393572002635206211702339261625000995620767630874962547931060590072460245093207481399954131877524964000429212317664179247943252093329133969240839578871185189352030533634220555261500496734033382226324602534650014029954211517650658271406817732968608234332268112876242104580189700162133311726623504882198545769235276395793287039867468175227471900868469566147229376723371798833790841226345491514284049111123497543124748133661833427118687986250282296294264815261808231589921013714230367412958125593367165016672832099883073670982462500344474883162289707397709703934124204013161636433703165684006861478187112097978975450521746165431641942956308182517493047712661449367302945932783132194017749642552835855382647396924797808220636689159062028940500542492800400983669859178132992085757405395905239701388973742808798271784327587011461062177444534476453779690267337478653306520311063536927117384122604624770270084573205250184414450527227185097430919448839792084469005028327341988493131711955109749606129388705749704361623381714685848665717896096951891092344191330860791635379078011217488947855528256188594526234465831846876718916307408931841873005520868914062418594177307529881868694288083792814229047621873868470631316495485445907912228164176672472388720185556372830097928705495594095869550766348779892251354378801198600794755708741456726462145393295249995729364056069232927502518002879683763614156614182792971027999921947954247773744094338251739093112293627506608174007028070970053917094654705364531642419278209856774605269025058544111782809077932210098574733525519765195887624089341813833424194119398520602014899683099342672507088351545539444424156169575049124662091521387954717226460394341439691212774064741214203908477797458364474498282943804136497277264374499116420707594394661577496378770710131547721365643824079260229467954265426733357472850441132131845606090084840639035503145463324014628962792315866650075712055796966875372031091223449276561929479509892351378644868236627569980662691754657421117516758989151385396667017016469129606345355329759281210402745865096012441720103354760209192587014828874860610489155136769642433555280893915173350118839118137557919061897039493352729471389803681554878792843430296230782364484381181041748178672876062657457499175022887708395984803282190342136774549269604027516863089179449714986271468739312433090065329764605395750621327735398654565241015287802117628647311912346204808033822822455220027992475358781946496892938744426137832816961013482538404739060508806261434961137626940314939020822948547294099834052952637939439103241919823613137486085552521138916320858103757756502653804572001409877011599771669305840043715237727625110838120530339586010384180235164334481300546238911996012872076406889050067502327197956259934641963091890629982395973993472769638436139145746084689937016521086589747346531915664839211173720013083087491990389303793770366927050450409379411753161065883820558087128060217155242290220328644175270766465193850351968119089738070469599936003047769000684800848042116012174936675562398879148766265414740019313137272095775066546048995370816328975285893634560858601310330161879760194844914729666625407441756097150316740626336266288602433414363578436521036108562572994204305089895520383224075580701033954180101680401266189413460235959246461587302430522319715778561783835365992762404503336105424539620576517656875557479054673962494013858428337777284979981695269758758502886064168373133271321214102190406457111425061314502305498174505303023649489123347711471623428736118692891101587112589834445712853633072353486396824916652606530027480827216864150662946019337576585180774277361896401186199121307165118306299121702823168189584861345160253743257538082084476593489272886512360185225270216087311597030585110932155437243353716529063347539700535823377596478780240829366052512172295209289707350782474582371203701859277013761028260997879610125876457732153883059563573404567227626079542936978871379044354702200024928786403648256143245827853138213881195474652068965433362120893686765512745681485191857232986345965317227897600022472799074776654538797734898819942559398175336964491051777283376421204626275335880441631535661032973170055818608639471790644747834859767208438865698572693256544071651317645164159638558018965206170566516599461367261941434548197618994563424639536587725580860099240844429182293655479234773660580901824119993993456676249221513840142053229849633033375799882969637171682547373297481519288448253923534178230940416355964679841762267425774196267075713845867476430158118352385745388865193830984282694690446340982560573294651223757623323016313511495086382339714176124130515342518951616562996235046437814864762145708315967141649975906591267724209593491208737651681501419139609094310883573344991681779678572999560524395741183569716479874131225271019257062275104347097086548469514635722396284461370179263963475298321120561876191014049928163697404278213472925361493452438030794487325306319749261389232379807538297878184701520643118307047436004168581382976902408316868598489756999309338184653348979613616011702741358002425746425007156792723240533131562076509724366549065897814481915941359112147508038650292579627725980701168053047391931182348302089368976856435389111185161461736825611444724041532739408884809518291190623522698014380056051623368709890938677140982291463629669007814076943954942465500669480841538039477871484845350282761154476941283683214278684924215213525914934108100494677670164270579496602599073863483570387163637856074292299301198033524841227374839812220843938448865820995147431751630207606551690242583278771281680522218634993610414445434612776452206933650454575628697665213171422636580234921628779776595204254056328941755266673316786534532934949970209654199881653124433515280642297513297869848121362781529109927727969162238028597911996884379253478120010906887909554707649159021051981053380596597936478078809573651660773905620447173134809262605372113330065039862503748400623499498533980203009253724432218961556898991277135912440785159916140036611210685861525657852374357856423089416916700311986883351598026284664816864259056385939094922142189987668350079779423682643228919214274374262596763501156364994087271437832787055995135439109994902451921233902648954473608400081881708146341308093059795665299181554632144044117527026026737745799353033289073807686212259761624567099689084962400593095484887599931217503692108754109107029554524171776740221678616986432433310841577499754017468597896420346625218209828946023590085786072437250300451225934309561030995914909673498080636103630942714001045323795811045197563579387507162737778931189448609823794570935427337179949703720518943572768449204813107463837001591963145044810160615559806499696126059886625225295614978869452626165288476071639252206555787411187621112407736291245500945272553185819373097415716055352918717701892885107561248858612015650080797860629449574871212902302146577929081824762524781014180343529864161204721467205047707886709291524040984636014331192025992463582622136248998678448388603507124871153698694848819948696199535536230512574077740579267508257267469994282147795641117139702048827896044795904310871967511965308101621843122434733803914183035237689543361296804065662168950081660471630033327875086288887433962569327573067349336952322380549137986029260798478336751609333482911408793734153378299310746417416701585365852776362046804505758289202213159811447145869090264880102133403995166667716361014668165195693426143610456212374007883418844916075118849613275689554796078940973346944602994060472272688578782462582614708462840143303310234930349702654607370456191520994429346297962152926223856994403050373350318877032071816107754206192265502319416029506394960559865354392509806802230086058988701617686968694802942669726466563916737780600672591650111386759700902334927853769985543872660844901453236628426944235541657008117491324907883874322795950364476690091972242721176506685080864478648029485927673449403431920140031205637563487867673678003102544389817685711245671590231473223063457247019160273719506547667700887968837843555219162708703378486284506374096138795852139796739287046169541475648513907802425797602741176504883857790148587221789375789253588679763287850922181526177530819930292256163376720364372707160066768987648250891933685191387751136273562557551433321303804088103801240538007133424822471807574638076551834928410069920204164651917509096259740153790106208459948775108506907907073680055730019304301149605120290272950646418272174792003364192248489788858486020986860515071540899555913503685248415597434725888003116031599765335518180936359641524584780061602056910360110427450076669904361143546087132879764239958306605306203351089617705616931996533264139168289272655911677295229125382323858828986693316134656369694251393757890842524736104523299886365677443127637749221768782651060650697349360719962004033057408486082321194606907270529087639891542805719498731465527441444451159024487240788732070212295088769220645615087631854485041439044396104211484063872409553072937648486115399787873033701532385213730039403746748745222757540054265135522410422643985354061195301206082675449197354250475115067459686301396619078803250097974357499040022814556328148044935502177869479743872875134797756280849414678396500037776085506221079685379245431696295573210416340000425566314346328532903094642336698170668175797562653675869983460536083425276926918562818021603175375448182753832724044651332674939616757649288213252846702073161810724733489677413823601795117888091335512515611628697515485445429802833861849930448777983940349428455016219442052343105369715149463350602481729017888696974855699406265904208626325077972520859565630732723101795491564517663485741222559058233667157123604611064704072332377597497801429410864699230456167003560245096557238696526074359826022169845974369383569798728011372381778303169937174804750548895109219822050116292479607015752056555816419723948175872619274109338693575536650871134246107414284185838625925196261874276731199445166748554846471866702939782958947165264165125471013676008156367286561706381932987191468501457302085718922105194450551511127656987207778254250857066744933909095332130249665351826369717235341228510728827453775543547029606813466979259711260408785189983756165362114165041451197877174700493964828102285859841801901123147162553686137266582716514005637764940526355433945120262377901696909058146987849390899126326712938672676232554176304680923121935046196987311856688098599819528279885400482602260454615923060712399061056933395210475911356665541226032380639253431541736194118236469689122164102341046418969016391978057185722275223842687922070302068654025064313027870698541282985859531174645817706891975942598772484902061131284143222406991770711588093921993854584981260820331399808370834993422588092515146269074788196339589713063311873517330934136247688561009892104565705905067753339720386886843905659888501523165770276629076862418125013046562332883082421522085944610320249293463814831129820135354989250345433074943981332239092177576019254100032720818815642187607701372615382703991583374698272826437855314434379545061285634746529180792449008717812065036062490320139532876185528582279777151818848340996154964821755355576056103720756803680681782850293117555444436377603943195921040797074613920785305703038595413603896465740601300224242344809035205913944993176219021235182334927915545631199736161698327685060374176255434270949035774027497164833586304494192005622439302667659525697052709385427570002422702217341188572737271224719336975334775594949297005265670302630237717922066714658181018090564947255333631411052577566733887061675728017379507342265842957989290617744592114470361517468954598730682195533388758508479383869903478971762916504695561777883010709269439048058827621103101735446399883995975322769731702906134961289308944296389001164287491469378384013500464249801258259851456634613986271401736967554234032205167810172412228046981794927640610874749361905437149564947550426779979612752700129033424185630670134084216045155501802715701629970039237203421666685299604651210753050818377576250941386375586001240326048790479141408211452662711134636612992315844015969353169052888683525254839291805289502535313848333211284304394414412484938234196474585030812385925937484763861632415694158842791959668175333920492093284190846967396361795986572651172213014499684741226367404427869745441290882746974641287590427607107603931043826522117527577691898974830413901796220479222479972316215767816518527089226453181441769592668943250367758848584293706256988376598149326884274638248416467338009134209155801996620142456968182833343239838381771986177061154369216712100981140690625575794182427884673220926588556969406660485256380574125664949668722872448871473029953939063740423104931391474632984283841256044099733984076545352029389058429603851687733162753533141716731490770215237062507923811585003360552833696216681706790889030097701487409441602688455140372755879419218563610042719037718581557183856713469797571813230338818830945862315818659915318797161398460090874821955055144978940682798387380896479436842631691405112733443831235857569007801715251485242064637589942227719867351022218929819130992174291643981121115993570272762935798004505254746024646383728492007325469689084003954636647753431781207498733650831399011625733384750813443593070939430159344036582785895468086212572659598751047488546812134994905231768852558039010875917271129553913409770030976897400868268600852327070091831169930668819244628463856150264874411780827371145450114241668866004441732659011539815192576357686905058175268799228214670216735506670853136267860496649681412804675496378483889391721325252339798930432048466592900059016730897110281505792590454364572090160547809195057703544447796001829396934862784768388097412313576506888063121368132562144717302095528282592413202263042513184829288342859938040272763904231477829252433210723194584240777730584489248196725780766160669542725085643901111254830481514789161939692661335785623292747692169877254802530068452335222956816392876189659505646814322440357215313635957378720352504155501448955470851437296997420492444055872123029953638677914946559317871739152972654643259740052648221128886379828563215846695746488560511277728556353658742125428764217362735012626056411998692133283696631950925581622790908975176931734574502562604223171705594501201427067047442280697304782614388062523027563665073027591656899656610110390650816168433284214200949985695228907605924412787751852666569634362199187660038888352031861470623319349381364403159563512300443086684620338317099376708850695285830111310247955001048896090443541243995364403758543166201627849935825200588329526743180498906076650807474270417199582949228215667591409098793785153376146810936192114310556071869116042448138334925251321905714930390875171600354000236881042271899876128018289450358095376447961995244642138138346945242648760936854142414435600360318190693540615541669267231640369169729494738579381223325542762358592323834712465338348096685959531357459836750567748422044513147575731481992215829336806108211196008736879014527468480025924614080417439280764103944758398804002692745779050594607378769635990239523664846587383565717428141190676255157009340010798096237060596073324703593217635976530543654923800935488628899052889877736227751955729993780068108929912642776253205186529123229358682922436241877041644417237444177492970498134892022211777538684702080337093501655697953651375624864308006975808344696747044500860723967476740871997629472435620494277202306405665521240793777470279418369080124391926509171372848968573384948449129984869390966392467175962743091273388636291212824228921510671746860800104002033600392794095644872434583968177643331929612909054880774607402291751137319083999769678675214763549675588306846535404080773017784574269039462242844850826636254487736405776865358521623626592361911842462284274564143008905858136503865359498409828034283523126994683346099238233440192920179588209692307039002283821476321921059483996765840733258695414076989796042460376891844523446888138140325321809497419586736777589913921694489147487412307834685698875474359698813220592599126093609832266206466246417849301534675479282840518897442604159999629388069445488650330015814516797067601850168602254895686537930873032783183847551923891801832162124410305324753720404286463793035159708898482230349233069976195762851723316977779837744767290793507803268065669751370369797259991371539692786718768203335743889785283581130752967978179541696915468176838952829344676321743054875398298750428969303331431307258782916801545458209792201519940429347038294121839144451911915208334839847291026864354958189861558353589126518790344740188374868569170565763331111914308949599868738644868159714105085235414014983600317500538500650377643730785516683361380773745666152956709038867311093091877148264799956200571673374059991441806139444261219693751155322856406123881702879830335069106957226544015613507457799717188218516186653539303924507404748813967071370553016337947931371812547767955841831475085814839370360209661331153405033371340524046960798217862654013521698251709636647243886172948863406834535888718177734341324272154169022980657325504079431884004359193171206955409467101975805348392917632756300382744306617622009702617981174445075472728281504396881502153815624533506190640303794215131361514137818887138433929604936441850984766611463955722096953273039208086861721140763729676660559337100287481610648333378981434523026997276042173261126986761555000213026724792252155655179536062231577628197542636792595522509982763707404830511036945197180530848543967572606944572228633873205052027188097299152400974704270803922293376646294270674378565722559070901042356500964168352437705484563170185760784084467476502419783723617328384456663723697846180160962903721691437452086980434762778500717316814423240564942168288239453064636584637593867799262090448127081441468999538702407076710178845705257494609095013447706354858092785715461487432835652689123365037488397153852503102501096749322787796518357926122298608084316155294741954378830553341159552942387470751969820633895959042063575492702205032038414488859843596106810106570057135382170595530301737158462519935605033292125149824567557968868915939611394503110329315343011461649620158738415068975126931899299988796216420760545432773816329988922893973562069699178147698904034895258101563949099230609189556786228898863396048158355495183070292469476735135496733916762807631904948546669202324974072439211820656693559274826385137044175090690536410433794964488101823314722566694783132808656504420641599378649363900357676904004405950035355234847847315341326176362484548377970824228023545903968993723608716646347588160476587765318757672629963652348165912895123980693995169742111455018764571020976692958070142344283822304293837297506445843995699741114466549996726801500088755551745135721759405004148027548783001150577698525731400796215669822537337575430112040276230763147483356586802200521144297745820701434243637126346902085673393259130083000283281682366759006657309512585145955710876589555467592613533181626666895184646749841242290550307531575332378717570256415483511274859055946098923721326992459141111945397809040683008080599893078149849065629158992893315017883459879444601504943327762291460109038148765681238192371127545676365518614215063681545614833296775635949925639819589141904952966682186465335297507472852186457568289840791772412469469046081281517794922565149001168022809370661453503058468949899916778613966469940897497439475025865392045776482419575247499538222339083653125452169675399859759636146645254482308826381176786060677851827987305327526278414980787851858781053687607612458765077266150801381578924795426320805701402219893542504466956220208136470373934904331187830586322218656073318158932756748918492810987916964598921706745672936701423083484863576471466555416573202334516664553558728913450405305794016468438988789916169692018199527913780408494499004469399842706998162056933948463551670299001244535561410112863605458411636794444526794415890618117312291623462702415264072398959766900801632236426634613194591888421076964210930222029074738119456436708025513008210203892216019917972576017396193392860333628504279075275927161392113452051543013083068991502951802767165677111163967807446153412751190668651087964794121561793611535377629456915978157966250434207443920161165509829276847816666611587339102944747731057135558912145238193528975548073925422881340728335701447332247480301766547794580021620405826730972246506588026056107706949471458001975561266790298905439478689044948919066640733308804345591293768010846176864125064101891710880061782832117354604737445555875565013379054425859425778913364448601840798480100673304628544520958628474288398314277804530255326843289185405982703411001533961351362655898933718031822806067028562844073376324272193026394152730785062032859187031065422480072222857913472749706286648394874623755731219778330495314506764324444462057499229608153952910426980691022535814841028926313780251886904267795863013562878120091392148207481277566532121916450655488832177443396162608744294982610313258697807711304493411413182794873529289045335862429183582223721447448150050349922432238183622031105489882954709191573703336748968856430849810985099404142192397146163761174598428811982861010511071436170391159454998339233471219189054610411483598601133209469686565471889480972348232804417704307473470782467468558475206335389395793476165563860462627425760295469893375226280325543444442766318670889982001029275237902371847174774589121137965828882640815283050041973905114823556891749646190119439792229291143916428659934814110212551383215700939559260793423036680590687725925897076097662570968482923633902029311795272904488404997954979382167106214280146912955806428074448592362373513407233723500809690625963790840586987144442330311206124510085267446153715020968340521793589461332768659082537910730668304394953513321909333907380757522209550474657693571267584045676111306781292561131604808918780029582187884948674396678133432471716260166820792005205361845361942581382703778765615834387675718073492189882280333010362345442543777838886988042585345476164736083547957540230781342279376387656628545008454248172248162371770234165287925932786135543770014390666759692746527953883310072337074513828259064291466014505174606886083993185461450711023977363160199514714369794816441467094435976045231579189946952475967356504994392768010855197927982174112431616815626704883217104314218990355252071193005945875218168248588099194955348955312288484647272049416009956740079208217187481287648230224938684151830050328971063912547925240475501989227587345852746991560879645026724169240166797828204200446320603643792029520724546530356963021422954178337063731416092086203195457309746254740284138827810122915306425639546238000114284979206757733511990209549749895263048905196278413327966695255968819793899743654070577362393933700309460218005031279116473971551460709157107123929098849965173718432725097451552237628011763238034939215856185425685712514698767801305167812044021400013898766880615748504154896091391125215483742268062882228870384186702391135933328928488797520893972340904277335335166746377294044458688342979037100595957163256296694681191265509629928828525869831650659566924788281421909277390104761894226916313995162726397407155121546839910663185123524984732322718301746592040859091733420748792373763182882744302739760587467609959721441651164548104514117343863319958934565146886479251753238275749107355389380818458044122135151333964265490698948922099106316128879284298765430142261777465795080098841435485196160371892435178944351568559437320026092190881708498247628704123574573438892880524999829108557839300123032415295985640672609086591867948313845861119580758275888602397575530660061110228110398862854972398794720223964336317809366671851946346190675852130838356291483258954249772434496240740641065467305117986412099236425258130174263603134314156333012034964434800999665487002678420374140205510192847460042186606812025731827669149291359187737569842762461305535110700821030124223173165247351759066088194954124959786366861103736869889521937133658867971869368388538653439423454582921306756559833532831923398225321702596561141738150604045618579741337133347381891623657220536169913108823841360671907177385563170974691219868581706840786049842684665337865633523152144509645178900832102288240353354090630337418702658584142887961325712487326772495006014356008148923154609067032898359091267441039166741813468922489839828439935909493226664421102880182936273726537552093172920784135032941052996975653068625727399968371100235579007655306659371392988616418296400579718209135671405827377560299417260566865376985456173090056607597764799345186361624795985623928351765586092061657945620587702306305344091120085850561428339116238379970903318175566541981936784577050651686857303010737939566700106821397769673318206303439390610655689528076692619430872500447744198620058061107083485274264108164591807729008785257633812731786123216842992038012283295406862743455897301120791294999988438280925190546245859855429733479236864493719800525246769848114175922148236318238265422446000135335850598535834132527558562453988715854830070758657098158950295625546435718253425359417499533223219941435367932101584493211637713511664343144411968673679856097044446699090592221334440024536277078385556881135673757846051874573001247224786980457451424262658225245995711527578790951173416777266551567012053220374541647837255284539857630765213832978030829321681752868114650472163619218203912954090322348727970383452690785763494614858328902806080697156758056811281159746481606039481998096993344986349483845274171383361432310924919948915981566270203928789218888560781444701560612893191577639307467509487682564575552960664119172563434436999191884928358907593937552906806123250447901809306896817021505883260327663571639702764636350244797209519671859004177891668682190722836752195465936542566137485661727078730022866905234581872707286156608768914293970116642626375111539959756862083264974328158589818005478681676363265848484446255337833363905228656788716277587302459377646180014967232073144127407290100429023746906897721633692410909784444240986812440874998069952542692335699729871842547795469862075498010313697106200349772052152691798292928021464503056601368321408475196803729815844985998576784840828493660266429226673120571803048067403958731652121057832052834304113946393658641089684176765262726309305788964668711891228943652685824739923600187498865083258658202994168056035165721259425748889401841430347936629272027763692597224675130490010225960414574863055584912100439436574877638270057590356275049966546427912190593996629650037481968732485936001311979191642003582227671842837710678874902906432388100685196680860449045873114525936126037187797392103589745484449466564217649078566031586708783512221457210128081544161648367361658238833935647124279961590959270166500718678650303776729706822456236006935384976835834448213999532597250352784893145390892300673507257057378990336302600029478666141332043395287890119697117153249023282593120671488815184850244453225353956896440061502877582255268273373749874675629821240446228475188894167327609580906312689869449837197844276135253090879051476334903768160139390545904655187421598705451262925191358033882634608031605435172765413820781108235283810728742470047197548521428057828904425765477209036403827423896805958571674983687011905874502539915576313763653395972201555875473239320744899661057264929752222592865755381673604987255463403809313763443349060213589431554253939803607238698436771829784726065718062933059932449622530713151725426213615768041034072710932448606411645860898823346875238698337218101821801496531246732028741943018841178535948494293905481211087106244874081409702229349785778759667532411611285405702144967716255836422941480614486696356963303338943752880948240798091301492529653833743088750781531276092082731942564612187062069557049231357494561864543994977142273867020548464264829067367322105235595497755072786926717154185326897143119675086770422912387574013799436118085979743618648781321471374089420606735615745115162729792260846961873871049325842315879804030835681913407939617336700341573203215940520704294911327300791055630439876744007419065672878313707168122043998116093829934346731374627960721427738951806169695304727787926924575316315465983914051126318219663619973685735925124651474829168166697023280415659448232588791887120926348138297905135873884662638803194811523150010208573423166217077395916017305057320568520798519437361581630052306733742197605341645407028497369879585780316909570319022246557297786574130932541372864959889031852224760644372817080857803586781408064241448564745915326669565060213909613009970663271179845304058564046807531433248496781292828715127274501568499503257634451631899643162816384112811147352803371228152269641431467869864535631806838754730678191316888071448253759589997042102202289937714332224149185725999216975842763554098496899209929211907067026048059202217755211534878691193014332849500301070415098035610579427510972485094135154014123988476499871705215432057842149460594756203661736720975137895027778136486703330905472860002426116039536275047177406684817676693573119553941143473797277638659409184059627909438307589162452867392944646848325288696663628949141624561603683259905388814235615557628209203088695115874491823533249412304057256115512073710766627210737285601588055589672050643507174831133688961751287938110331968398810489384928016890301722481119477348297454992768261159954645149893902438058178583698588073584360903328040759150648969177217350936534538093875349267240781613056267177982594012287636591709365430778409278359798024386097929116917288860418817502576540561679953946996494370422759198664951538914996083001148989661567115793222097171922124781492872385425807547711163993846288390544593364202541450229859445678408141890325756624905087677947281863673656195207703842642299440954052718362186245659796203088042729931671210994973997847034668403614183774655788895974819407854017039675244627562440353952962553972170998464797056142837270333596205438924170790620421738783686455690956596930731994496079262702462919145581550304605198573769332938101610441819530872402909394933347066784642082273788249277187976457482145157949333645705485719064808256724054216092564286524588051732883564200330645783280556419910451642855399782577850323031961524170587440752785374082683453964038385270769378430671555259772072015403265648800480075059552609777210070313936880053351089759695495545825912289501879755768204338437624641404785392302183698315753556604892455924513013041520899426173051787872420668372279163604153687705825525110403057884849666987768908262437721635621152722934409583699709719236376809314612600573731996578223652489267345372417149648236746869332065119827627344814528860018526818610192693312948169380030863478399864346453166569807210423798419324682167049589485440166627812721026715496441222465870122705919273758199057745869070177653547396927456627842373025102558045871307913193597453808401129320569120788147631375857575897607447130879665977156596301354005751884395817396316344708485393363045871559531943969933148839829446063772180417517893074345583553891737335532150938863080310111405717599621116606408620222346273443863796152692927988629986775185267254644062934699713531621002131596507070535483527925735293397687175594858159337098739204940773836586951620039505173301322544349451228205422346262544978792446982436881943836741549521368175669197369657687004249837395512422487706314087926809435165200901016220254861815263513565576716871691861455329610476507906452839528624638285673762388918134418319927869689163403831534822746189970753691732745379258441109856241154432540826622019818252330872300945629951573263137729433112508888088349116161642718807539915083791499272219809094806108058754933844162753448191741171412769579895962377475539531434296655958105681800661451191924587847979435393032888909922863466934070213062893275263383038862573438562280026536831192032616457967762256799592691922735166973961773220890500778094756388739795108915580229314316837048774610882625256022124840654979521933865516900205177973819861084018912220448970982028942596134915725054707145960903869991241355175551782930562464203486515068417526609940247055053397207208460263953524191787245483772173631670926619557813672996315059927945121354955707510635369790290851615526344495802215089008435582818673035742300277782004367429915519795929150274097685235498735673416548407952114576930890152155722557317207909529858770047643305485065645223105663155138538646759044233500627599332671179600699855156824550627119561403883200341680441725946283112535817483981428688851797578913361569233988797585056170594142278067906769235227360007928353712686987076910404296582578863348841166615054363642961569879155161258582518123024478511613283142513462074751037489939762971322467335152440307995904332109623615884968815599327433290669941577779491180611984947890061107872588724565598615765480283224057205630460275129289792554366526873836841314475212308103838375734438020176238715823907130785881084184691420209025938037208665779219677555531542236587924401937542235274754816780438480248617232409541374670275742841453897534387859627267756051698077986643059576689151720087166368025213902366246411093952814382471463267709327309634721568820809229031161921892406835249973759724261208537924351614252295343258406278758052054094967296464918861290779934234013608522777329797516924159146999615408839894308827288480884327461437176482081059658699449508933461428659537938226937760525616356176379422681738954168854190556644888300272407118517891532771016702741557025393225525697956136958387578366692448255387974899976576820632017877201268855726275033235110210300942805949622810036896580811425120615186612325212319624076931941306036800436748830609612200834365782511865263239764903641367626397960740818236868735086731808061458379390946010123459816514884080925668121503605352711759937334333155423749225953996772143205482297788671455555506485374445210099393409472995467575435889268881768063243569577907203232202766285282947066567352370505321320486343918456383623394159970622036275817169953695688734530697524816970514824273587642369563450802029447283625816480569326753029778175674377066329589331728040844515355127001487923383814818599195405811549571057760310948616117515185104048193374235776105078707948514950557135647077038935824352426258118511388808031767670956574267863388710169401596463647422420155796781177692884243206647078429289780826525044021302233869877930501270659539832163228823619341292425300123609096027239690824391773138331964861950018104978547678005100175063587348297107126162426161500604408653095376582903389877022474574512091178662119916927217175924068276481776475943509543156492064513515649638892951660402195143644647491877498997482527097574768600648992450980551491588560327899562505899378185027522508000362337887268051996592021278607595347623535932063669621593278003971680061782361053747801513935012526601999388525900094022756010778468278577670598091060681310961854181995925572717239303848370686018828211817206903761407929919721658671774342991514443672290281364780994225176140322139195998606091779183796414360794507912367091332466413749048454051602455493398073212480247361404820423063545866502154916823945488793365082686500905657785998289578622516586597605385188989297413726543722020913212880156893139543477438198986241619435897154596740405013691609594635671963191002614357195185238812784611947852218561395212855679821690448337055545353044664628060036252538541734267200985668736413159906633918210176315143351445281463428792801781290488844484484835635857071221169943827255717896999303563690339657617372029452718692792323321455430906340898472258951385763711727951476233719103628986601492017430086499252159545868429097553883296137849066122466399310192680227551991404351934999427534053106508605874174275029419713749319798915342928196487548615276371682800446597057073381481998334817166038128763449383257611886993690178434816639778248086472937200845897141436837070893748003041932003735626568624278471220487294045396900802444340035255774427596179779182579265277993855410581964593775952895959638884990235459940855747974563325605040170428740820747311771714457376232338106955122016636422189374339571632379725460411169082251638992414246779836789834360702399481719042809932160905169678069304908568948344170483804811080679099211680136170542642798316016282984716091876973641564780852168125347968218717823191109789109295858664979473490666700584241956452854857327943279147498438484170009445132222327992202811629009016259681652195422707943596348762239652164317020678788625645646200395571395122695943484868225992542504066416798590503957560485482654119574319182445767155754575737000758671167653892232786052274780516010598247168932654601560143708229303882001651108886512022626950644647680881100156317811418109251603204600522047989216831760089509500422310370868864825241804843782695452247077680150202049073757445089191523951689778162002536378575397329425432352874327627266776976879412872737303157506152395933299942658171449982732223550575793041121480517347930566619943115024681751145210935486567163639744805629883600973322353759031979695391727825456482030235264584738674735295197912803470188664029672232562107813175979687485058188840713291152896417977892601761012137985086274310333715959966923016998254285451978811649040665430620259625242742406136575874615281794031820267053918512670787803294994487034784661062666291946503488718539936789252595215483056541789618685541498720554918467629664896472437137928545842777450697566386741731922052116990444549924186219809870792097951296926273264499886548138796075064583397242536637533610437119098505081045646371087172053093327455682974461883644654827864531514477902122790154716272444450135031522092688382619404741921377194161295214705457115802508438786279907552818711810169289356810600972199988776565318414348179728585285436341415733159558038778209044230380014500422971690741882046037241560248306013381024413904798134521703274180334111949617206892866684391114671090072595307975774360806797447811156743943249881318751063287625162031740825079889272059471177102053379725339107350095855030150392722618437559933151644296891920966716539459598244723845500435444603013570522622731824225212979978662331182403771208275345983005446115104555726686297137039631235391964756469895364101620632394005069510649933922397644069516886509482080454691313778791137268925803592825543508182782733081622184522978446775024472822383452609823370500279914203165603193490130285652653826240527744214693846732378222868383482977031465790381592234630293606468471415913349354578856570925414036183745501711851683527758763401717529343953316392540836299566532850184019704851611874176069210098040713587638396201768863388392494730436814010852733238175108237603801845637635514355498328525238865441613903913838174785144214860016727728755298696344242389501894538530149441291832384267325658991212899337523347766416303549664646058933114000794690889218950486602194755548118724582963770945221242154541939773828993282996270276706002158984687731584273999053405329764274646028946817561796112467812446776384588799130237849203668729130217646886658997752170717451218986462517801991653470174373892349995903579116983180545615967971331516648176689265044864418500361575153057275446213621323574822926926069570431226563811598924677092676404139372453561237939541008870454841693443241340813931900646358411669170776170943108408545998902534915983151356617491940095593358623409975863882282294696167078593883391194076885968762556382094083447420203452143880789152507292580869895624483241626830736832031483970615070677877626484006606573293830691911875701493626844235405329014682979350838899230795959736147523936461463426999016495463884976835327909672976467080548083998770854794022552749166346343759660318607039244169156982240284275271215072498320282755916293220346039308773217894477404086108259252333009627031172097844558280158895520698835481489977562469618628970074849788712169221630837150176183799413235708021437416951811553512804951632698046588734279447416621431146491470306703894068846864864547763576907140186883600448895412148042985270917838970225578188548100561744502844105781085969233616283356863375684898334739071313819386031939238301179681472009590109603758099167187946074303752037017545824883731562666719382909741695444589638690233555659968832582028656595130343057867386827806537291701175599447865305142439511325173490296710449541592566410445820758549095405973653522816721280536891536158957302406893581357343350268777340978082623829993860454166443076339686786396003501002818197989590751213628815254722189103435681695762744109645192522673220235431918825945222967361642552908860256929227159552707672515456798822045670268036399577259835147065324403706174403391799863892078598883870330871787604491244002859546256830247738103872991888498974895078692263187223765674220111658645001576251517970204631308641384121170125193211513475016607174425630971061565946774997075664641109415671087708227444544561738237890495693960361805406213531029960152223880073038066525652266017596608853207882005076545442911352318935231449203019225925356874897686592310554618809635645796885322711410336426395547102702216215476205015465163245447867749222637707194913815878092999774895795561508033440938936556197772813378616918143566264122563461480860182025973939850030882658081498102925468894890301926469859440866709685198095761910850036771853497338495544686939556866775639942933619707861672847275371084320528752682476683883509785864251148314792978644713977775108098130971341868114297908491474190057757802661463997058928813497535961772067975626532010033842350468582678851722838564611245493073081328317129802572820696788976062370925270936992733751225798211279284741854187081076743253322014095639205910390707812882326484732248126252356258201937120121842052148324353728364565766427249535947263237241764441346301531874005600025993111136539203207902381739457463514256270423201109787945959169215085346623739947615520666521098349820922482776293955674460160600488791047001476664224640786019733143852214495982869621973602033876423660826807102593423144603221329198319749322182056590072171439524451717725068837484373662847970572423257195043155044733402376025745350581652401639699901008871693653390173348241395336911369919904496189018651451057517304519308084771253843819051976521109673859269330979317387640096806795646703878312720889551835336541146801265077410415216091833628731068071962800686088773015744890951780445950217077658657225074142795922777210113825177832141395801436005774474939778267063293270005934900116154940419777007732526279751274341300050214224423049497738272501920577726332489883976124528829358964277008813416324861106284668338619437603103014181449785284535196697172452969923175916500057365587829775676949077839259869719593578653832957404811701735114705427181310390018289290596483343324013331402554277485548982175825232689208133024423302046415720687275878208532707925292767636312484831294076540889499909002750049833217477173033248277200442359531290600318390691866463096661869782406197221451161091983760091058165108662940934801791876741115000675416914503047681845847057832204082746120018311946019922435314951925984798111095668492749856082719528537503829545850242123707368727447412433136295227406530515391404786648943092751907358755507462076997797270370911034861042891909746792817519819637567537446626032388754388388772936090998808090681571966819218021147121807053378970863431026941051067259070440960219295349536738630508118739297441192450821708513210709458934720727709097690419294857415093081507350319136069784020647987791302135068269585608526448774601669845581096178601749459316113726816786223519322032013085847249194434732811723965558773518320582603209862482448558022327093756816701837628672139175856800661747796004384840887091273801109636670280816331256636868317329563578025934783734030382732154704356429418841484019751144385366576036812192290631114477165856820711026391351892607917265617898999511643101566605205043274585263556676662644207648925913517534571510482437206422858665668553813422274143217508155540899217879562678488395079823963092686682728890535446254630019641955293183795896064582466283592116887801519067743991439493602380113592398011425010396197633852362085935783499821464634924106396748534533358687691286529300641515785409585445044993904079146583324380513916040728155411644187780797322628807062537227991093381664788403969492831467753925042240599848122953874840011817381186640967209956761171548626208107904004104429997923439443211522552311533276151919921732668601798982831958586438805341512460978908562410281573774755098800530055427929624659492585773638120511137842080624007350280297147403008738768181345364774312754335388524221483917348776535501748077044207329999175789953187717063561380397189530711507318425277975820133645076899292226589069623313940549901852928600929758968123497815813451678176117889633105030778254573098430023514963676675332444636895387085347235101657079040425036268483301653512404213835762619928886320638469219410140826055666590384767325425990594339255836479859597594375855482756272485534420863073048473394499940977456979233386183330084548224605648231432301440053130496874076552678960072375587912510657313630358319500144688915083621611576890130585478232756550596837558998189566136626147475972713034645140297993782323256428650355777442275278353183882329525153826081922737262800031358729996313967607554494763355322004693850630388369247523909980034253378714346705878944189075877105127541851319209373109885795104533420438987616566230341793097596664623878033069770167627860001517104741163834557043957873950070862893617703223151524529919861397725852661915453852375001442537832211844327697269196833371212541268728848647518379348915268678045959761664105107137862082184988296735737646681977351148304469068427301984475719312063351234988313706379233987936405075398724595230988708848965132838655106515646304343172198386138566019763326742833571098115436311519788612023659676560317471396205068959205692834280812939047929886181669038147280181315414636935714094355381819420868712250859147249248981464783934959115877554394946687296454242121660322898287614962185101960533567799047713385733318289117248059510465310160235628249351240605749266298955247310859948416251682727616932180446967641193912647582062322000292045639468660242369379435736917896030686588643153433835061709160883276973456277122681544550015905018473784504311178249940443612354772551737533497556208632247190413615103973453913674677341290703192546703472560694732468438250037607178927464765598186449025520345360061104981110298163320188231950567555365232821795958752009491422686588481568213516810787818177430569272612629413808451067174490455287386492231083646219612350150335308292011308452045379191868969351646536835462581489967917372855845855630185870276740840946936893115579105862954383187451555070883333700258045856702927157339992057826081990030095418406332217454881764750739948186071052007943071802216247297567504974887054454485719294505110137874628773232201095008428485976160815680098555929050489265345017068786256688146205190244609405954704849881080070069269382883738275087225927309017442086548557526372381441815489102675180683088858424556502985613786032372312908317519584409475098090196434256509317384738638421732445765144599502961371588264172885828208250493612730546197435051432164255047762756913474920425020526193443628836494622973162506929807881362749938911637106783664468253392619576215996801829711656440610332123811076314814347591001880563783094783300683282180892388531017683486866439470091884967366489297625344149154139612386588201789755852437216124876642439619628404315940021137694136727271081179159520328238267609579062150858998303568494478112178485504457777485243142750304970109775363310434657684306033396790944803717743207976204030638910121613752402586357632483916484911328878044649704341208160639245274200122002528418797677607513900461584154763657963723163401279483559938834997214563219034716598716569642123810389892784003100361415150098121447192121856643384759708484912292938085285717726157480846379101700367201513408108418090611515484362724640322260271310365204219625494867795366499693209791315615392399886366264348547712026008827687335344749838251711445335620830748063450585967422786482110237711582856709547533381769946288715095480668200828541788134191345884154529961419888637881940483732561343349255822831000472506379944800477322174964656177103369080851060694343044831604087194919855071396347821923726368045374535875360242629963209386442628124923429335467728598163439167356976974537925658401633553257049125072590589103822874852374962490589821472095310098450337467819715778574757860216782965504588640424775268936106488007702239268692911017468915308581755117571859904154774201982363966379568381825062759372303114534093239898859025308112297873851608234453751523674331948848739804565942889986005082664895721690831798397541632401326873319437490079049932909970514618905679240034428439893384746130703914300479458877419700962193278344803812155486176060805251692163742539154056772471106741696425122490295194103686842777616996790817977490198436638383030629151564750078663830340594358194442972242654320258847566550215306222883385109700764711285543115841594322293110826440578910698547429934620275102312454383074126755563497478783146700321909240751790358477140396344025593152457813264365147233582463914892050711972778591005274462154759647680195804098253184281539907607904582297439107491768968418692968973785420959410586060317512277632504984903310596201221474009336476518393552147039780182572461316350714707629525970339738393509112795220348218004896972068569204698559191520672676016048521468591939661586849628631604824452690966183125698107570485566721665784901296279036245062607871243747194737606939655527444230184710844540918437604676215367903455716470519567267170881895931840030473185414568448512083013700721252906233535193241596161456333208982364935463225417382920527463235269847333763735029875041328343882498144942956801026793614665809923850623906787809498973326246526623573636051024502482145038625348674175563962618618748081227329593120496134302328832973322889944921701678131383982217194374401781277542970205273348723288723914873504939739437300225167360811310821559931926990480652502963308144513628987849268481475855550432269167344363503271360388306063346567287805377926966392141578893249170677953853269526881980362328734591358529211055981499709235879856875061481606025770630736731337836349484707228872633018931093619451922913957057566994074771372744860794873332624075720730408616911316316495869719426348696486349851777659761124407991525080762921387210345429735536276067363140013945781657464688007342069519017074588888765700402023553530395854043356141166369678683006601826137605429296123662739838240300219610659619376033563835196425777318207381734244745363319574222785362647124984781874265302506587619018630607712215458555898660756145662757623006726913726938329098307501611128823356522272301409097897951850353229036699906752432315504540416740895711083446901454313116285502267870151122085546259500367700183580239961746826728046252486126305632132341297378843743543501311224410574506858249320236042907766374872544491455835200713969451833538465628099776393130696234112345383216973149961262454051152505210607942855517606249790857098081841009858406864842964194252175784166705988579335186803552247010281555029318515580901723366974220385242346110760261271412507138563728868287971718995353258734078003302550965476761953631628428775143416559269821493972836942327436245088774211894420268811451099066466740850081737477365583761445870031099691993155275974865836286782442766793581609087468203568995616691794001609106191817636076284848995576230372046888798851428860765676829304472063787564091175569436798269824216238122604246937743649753857285557553468212697530594592831420875131568311970830014900978509518075704085523660416553407518691029396739186518401753893712086170662010338756011324448629737431662609491661166642292034394196842449748886854365560071858889871006029037876507698564633953293262478336278611789327665404991165843915198008820842877049142817552408451657934162624003158791684756261397386417449744935717777860441147561606348321789934546434205089725708044337539853605780108628153644132756337028287825353537111969824208074851089737713177419233626783337380548946033264320384582648239713623965356684487205295951494389436331409872616846787126424577442628024047841384941043948565437654583733539850928497992821381575114938718098273382992383855644627256444609506026333671932823636537228232385161574402682791777806450007085522789201207708904943630131312422674362966132384374368738763132119911720065596253441683163102825333622987149167165501937233967120795955092407686373887912508345425270759445240347220560111397755860257033300085637971634556575716694163250774676746095919699028676431271449835836335083481901013949050086684528242428792742452804388291217287505578375563314531424885025958780551730147165784848571382517071553608388402273492493009380422191831472243481033144830388053410283310097944369999639908248420117451390138648144140841607039984540634850373602016282158392287770910819170332503328807240379343279538792136856579890120859279769565681118491384859609298372839216547105421542582607980079286693829520241889206601286792817877688296906809014446162704481703512064475019226952004186177357762788287761920862230369506722983351876609328266758549305170020994645467070824742518076707160696122848798323276455230327097853776818818329748041244103816354928798593544591233136585605156341449859070491078572474783997688739250229880891297996116469563087608112096125737860779869658541080415774120080442827353919528048707390233317591141038952837980196968238745011723379669907995831146386130100580484398143466744189617128741106608613705146566073578158669862071195873642101479829400413491701242920122416068091772071670074330186804163112586334131349647886196888326392867247218421888906575077145375543202447353488784535668541148094598083194633014608071375334853289577792324773946465112148062397385769777098923572770095030945038266160042767228280495447937786176291245662542627326034143322705696332999774493559249507543377835275867861921261934498244308667327621042270553482519226398553405591504504799855956215056327087464259523687257240714598374805864767144733382783753507161089348070924604527310673897151472085866318882677558463930082829276460530684539930138693993371031331244982051434040064362656595832455714635117009792605834603365636661240168253345110278447356657048214628481116071508568896724075013632648985481819996739658095150359289953842580436488957783572974396901077117664606192715072547214252768047560166537153287976649918379405183221633126328802183617198374517913238764869463825940961850949341840987254514234294012224044166078723180101210572508535729186150714036986863615374296910175825845555612260553201219845760191794281507918488100877620830708924283706955156238978083938780452875003627764335742520888119031717483080325677204653780722775963174346664660673377734350840743839440692331229421053599781093887291991125213577797799697627905187898093869885566100629584766091961710227797362831994189108044317133659634735206535042318699504523643353253841962029284814743912081391023962740792693383104396783429916312698779572669736893164796716973766024780125912767391008151757760328365872902811523125860241421770353933871421619857185767765026041935976642911071531140886270626226524793347048849383328575094995797842617086795230608895040136365402206296130272579908141392738422401533650398003880260248898779434305728239916587933564869642513579794782689099559995716580740743361985755225416624408201808235518071831775014144306709172749012042813196989542771962698454760244483910724213480603884768085082093266122213233173847022699777039680329592539231395634140662324460478919055858420474646712549617908048625205867179219742541775198809954061620558618951817883949561371489853844391427250814298633516711139338231376079906057848478300670141583855494655110639895027953375718771679131182809789266053098537385958908339891564871778338432280652137963441226417512165840923841299650719470811654943078374205444087343159893751653274538994642882568096961566532911299762385823596314656661143488713980361960056658948794252159929327382068930312601497329925267220215811135964380874285628738784127540903545631201602334846615098512962973427731496997600878185168149298659296973032519335903719233103317162837453279405176098091869836384523374851506813131459295792952333015686562979919988358649851324441310650282972160621071387211806916784992401321300532764702150057663849647810967611252829720960945695098752928390626525805155678790855130360827892503756118588664712308728071215643327082775647996262169371359435146597784391227039420679934025941284729379853342633354691407065992799790857982465487182398689745937962786270558568253273773621298881265812162890671946084288925198191231459757235088420690104320330079599813369851146681275040127376416036235068425353683706895439881305309043773933397079056769868482498471396623613282946077001971750144464616427418646526920526208849863738238247504975073836729033361817683002554616494832241849756735587674187054993890269615348365512638958636347598909894607546824317634400612088248283478931806305461986179920915287015750355882144359318930990586476912386357777519039286417578907287906063310892212193944235402299693046845426515987132163928771043335565496602852363582407942973560337749717982776626689063847924873529926275313222710483565288410170215451160934580035274777575629450385703694552043058832771640068583648243147631923152687100717640625842352718223616599778252565250593533666245358871255971321402790115200345131023682953153178398363874984917890446799626511410910155564190750088169982133742346544684554894763585518006310720657733373296298866247835410323323269053278368250454957459820634236959546318845052875706204557427568548127273067508842220184070650270419832678308868293273855736386408746133121255521481618431054139198347419103695539498101408377471380407002299167021255361439457397393792202632942149147506819813789223911310960527303378445663109971864416334759216974802619704041125281778506257446093916260653810582565406928795154715690997356913151887695286580252960622833227129885119809668505010242988681872450982845701719424084290661015777504223615464452260575688736721928280790419007241350360323891947162189652137736565684669780892343595347176666867412645839826697612046772011671188443181623763612080118471909563597232405147361960147237305289321517876161437506759268619884741502897431640493691972766375189119098589350162699399370287666003959794553276306191817281726148114384956553236381384505416322060051725817529687172352244552823563560822202150739221123095926576224943944366907150904156832782395756653380618710697901719512831768049860181825932518818246117637496508510053494558261127923515648771787566437781019209677867558859814999817441512109268846309453619164260981969733577384975418296580464654017258093289122411434854292869088277998875844833627151760338545080322943251356828383730736305838568887579959331907615762376017292717744927316803931825954988497847947297319697909688242041492841501806143092653509519731773455355347533573009112906333794747976109485560646610859433352034053342668212828079938546231005913953905808636756829705139310921836163018381202173779529047740188689142453288577593674117497802412471336832239727898415747412358875402406938821188016642567269762162174786460519278966496216187435773065155545838003418462755191684128358408354303394766656539705817926569187990582123287489065198387180053944541013048071921335204812131101667800468162123925385932090276528615381654696735243428649162098142728788283760166082436738046398635651276774393664097628462979704460025851898096747159094491228365453188856632628416108068143807572881982633204445179858063961457030964544590816108754676082790502771545627650339592373231121943334976024905403047366112994168996194049470216018734561339995774889507334619666124447687331158798820495401966513377697330365112501529239316284851350625686011070936838021586846933245719451785971932491014169745068370853756847866150522985464056449135639876165937088291466744474694562782719114607680778904026489271320888110217754855707847202565355402021684059735395255777411592623879689953101197490741935125074560498944632563585099219028619733969097334241022169834484678813423308843937122871726025605397179208698033656583141060591943698703298026615380674556082357783914138390476200967412976946625832991985174645121574327231597126520142813810947331344832693596065793818107326345678230096122889174538895909292082416666957187954850981278939497361829881850421724305879680247146020143710738845891422079412264100607207782599251057382446420614368528615258757660379717447884033221904751589204178627026515963838937352259589318246560723395297638673137621807273885807387109594871959095205956006361092816296539617162541104208392967747945405672553562446900485282713455593761844554774205389476758642420560143934449724631721275490799789702882734258924997597839967490388829613918429177381977157769882596379142657271046467828518552810520831641690110381406945662909523606000514556174997722796758428138006847250797999319872797368002327885251192984195786084834607014631584512010367904703207200537257421630075618458724144935394085553447163888583147025979660045684329902862350749665338119285787676050094321927357887454882231397905869684278565198420417677284012891497064185933033493694116431809980560902162676270241727158133143546487508437954903071444955000382296283787931822260360609634049320726996335550269997013879949908227199646558525586858687709644636951758487641290183502586260859335181524182738531216593056395515365754531612430077140715514573674703844502770386307120629231631419427117467960664023028335956290708325792620500473562298760675592388094825664106853095078039823743148619668020826840604580374054000409702078199861480101901163046232009801490726405116569437363868171671075152171800992673428417745918557951048111210836099490096709951857657719575707425317655368622074036744328650888888939098409227656629697953761385757172116465323293939871356654751277384275274516321901282235979196210298217669409351157600159495980555109708091391015037602804027609720762276733344990476323055571388892540418860105440640580835857413199299990230399189253698341583527741420319722153642663075986510459246679250933179942093882200428147510993652502591100968796760942010045307157066774254716697612793586013148354384575046669693831693720777690079878806094551193305117843331276445401723058903121448627710709430477424223701562001228775732358653579755918573349687794906480024145379495493838925528232641650561530935356623259498373200965789486985528457910410554011401098686285478568419913992065641443220634248314144012997396209624158452721902037331983540049178078501901797132077530083845038338350247897838560204948766826106521908121057617904136326776637414399203625151055524730672314621362498347097157514120285820029021609379348559770326022137686192280179380019317351652542595723199331028034922843142475516805850148946829592785204249766113819867734773243119816104081208838678731763979232666722047551439342904466473273867122713300785030399993415664380606320385110003401342271881704045707322678244051142153244012979819166930873739768577792314492477190989919029830444346866056738546221274454299539827387362554788628297102539725444223882828492903559257762947197047762382335655117727522166618224336050805805707162046649901467190068611192916109062346723225310995977402904836179695034361860093641887236336310464820841947636291527195326792850922425942536956613899907779292648898753037389053354772670795414157758811848535044849522302302347882455837199850383757189004783524525678036938504118767934015199400385848294265208545468395900102475993413796246687236526354892738352305628963137779153405960529020438082160337951371670253798144479473053158910207372820703988954577177174971046248226262791118180396798964670309257200885068645789022512396353662273266955786635346059120294112585435697491621210885331757306876211527299363044686110208131358052874042146680394032711056100465950160594670586937856826971622662354166298628236084743555857863086678404909868848929406601125463636985105248031950954514726288711098960907875576277513160618174849893294871529831850506858102862493654654513064764949450115100244967914523121693788231211107930152454616931919075337369409025067944135890585176622320584372124631901796546526539815695823695943401955655390454709683899723295071181181911668453379293273455851684881566497286302517612147469828004138502705351094189892533378777112890842272366754500564609336632594725110544811623188594897339582703899449651623387843064373540205617524897663462165556417656390559617703540031115425541695558973037594096934023180636589883712934659333643023254395462919773400003928304376888727939470836019121706666990790185009293813389905979609388579450399276660917463248872286131992728574442488959502504243141081470189324058195414259640762685279269065586031450653632576426970291358586534662385983601938685446044095407077619756691569620118232899114070870818885535604835188394266230463853408611194622443465317938288369268997374603193325859199358782799744788043188368817478270393567366276674614492939515402175634105708985466066005858833310766054401439416383318075119165351510953676064819826486456720032442213227964367819807336107609266273371225929596133974004093989678136395664877770918245968369708748058767455477311640022755432617363628651735889813482850363952733173906602615387918581457099048286891792581479779066504814403127070654070812571024203009107626596230731648784478084242282293444631443119577414089928351877386993073430484881853882504427986894227165300817948283763216847103009474810338060798112969483435214042951426436725843393879709407431274605928329283899550742346915746432306309134861714733222684817190661568020230736753918208641720936921144712448603316786053178601563237625585477280103771585197153726903999650189670034224868398426732254268521328135072012352819594418912487748193482457501483227167764027145193999746667086635472563676406934986663313711539043753099304126425471472430028536712448104559438570365945078014453923826027759430581773107366613149853638527792138800112183167123026380516254511694774180848639867152659152151331014168794053144675315899610698474611951761860577798758927174480482592727640384935013743130022965611311641651244913035013256991074923429978307425136242303512729689108609137960076879092933908963766812993049053637481153137557048770671539101556513091023686788906116489484770257527231308125636169625173424127839031924933248230844546721897505838041184765919967117416356240847961245483250913675890872419496204152385510805027854685603958436776068141436228471439091727594357478030050006003736133837963087908410711424352975822612447817384893122597586019246172494661508475182066706341460820035116686148866037912667640829739419942273872850274339325462306234034962089129580396996081239888772109866577905335716347700421882839596465643068872846132861629661538946613471862129559036225142060057276704548957644767933651688342823358809972385012339622503448382872054093975582534488833760292559755881587155975801375139020992330949993668029852415506972144256471349876076718650231649816402862258792455280949707846765118064715373301901758706637651541922374366377527982922602760127146786607123784164661251300185789835527511570561541394433729026454039170341235475448157321269641666934058918716203380989911907613525941821508474767638344367676306536788129422128385442253834982662613794610654525930281923129359706118864781886602903449362660183900632733399779629167241351255840652728180294854962657454969266172882613641337706251934362131258205382847010378855187960193649211180413069402007036345743667634242544853131271682542281461956344108230752968843560468229792610546087896826888618303518917807146302500825544328023226267005188403424756472097881960885606932965993791576271454899049190013709255721702784240078396357198738433962114726395757666764710066818169546215283520074670074680444341635152119915028622671148222724852893489074938914396751084469819579217062099998621400853835025124490786850729841616154451778810763441700356763182886308737698837310418056833470347955172200067068090808183545865016190602191950821589923716099096896547074786708959330036125792337517065427910426636420114988976122234316344852217480378873965825699425887219081632811843097247365321074728245648502575989313066295978321832471252176088332199330659326927887968943630036577434260840337251981013853106534088796568427902280586783702312114800332413050738752203446895984406058993412880308051611513733033658048265897235850776453590104005782051826571326981696633998271653569318484418882073069950346148148684800502296582807222059182854849778351155587573053459802216466899596480949470644855607938266635634211905985223239079553244242081555301865506835066751906095004913141158016022385601014316188294440371552164803449260081741105648690257867397478613859349077474584842909396497695433418342108782631990050460735060428537202652236459720961265197920570844961468598418735270185436800324497659704323734462055037311619847429442199026817654513448924193070798128257290950954624650538280351252183465845283091793346169443723943006343684154095755387920697956618431079111363655801857885812146734869315515225376526586127097938906969670474272993105028270632725606870897002124596728401629084572267601192297431076394427063020812642043699362438073194609403541481145048481408641463571915973034539974983134188345106025576744822399898021544663603915678451471083601194205129641456239134037872781117550068036218158558818188657492298336299778703182237204182822658307349551147017555219353442647719188333437079637985750666894738731635442875248602799907472089636399613194237430507441576773585161106617071868393706103640368477426046646228699230394975437962040675412837004823393891429298197425830427016761267744273638248160649833194179353426227834293431163647781144122695991569445533561838798766362080249548103278497304919063074205614976194025135366872821776665291443524339581069164825723498910892718258542843160560843756057578337636925282449564846091037721810392694237198676672571608148856940771979161855814435786576559289068581203661380551995602281450796226495159766930998970108227430506404140019166285102887402450221826290135949214786358412754503269282767221676974775226985450493950102055776749835045921096664419995231046049735068607107841669460171092896207073496015393765310102092294929655995813495263915643955672899673819712768176353799813399251895986838762130581968813482405860110766859357033830214009994222927990379515093366590527955173031897284700762814463052139857173858381299698633196360639093308322026405101048928217342009000419324816904363875739349221963965847375234748388875807102332490232497734598573212310136761611040120514948723500470379141882665116006806705178819882184232272738886929983745600999327033928568781526826864234452058268202383853164175463647912372449206921401880125972610003252957199406221547451886535180845495252490956946407639883471616275232405773846143112325980649676953564067859289874225491332929436124156836304390852531304902362919923287521666669173127842755866011133495083301056387939674841745648741507806688927321059207487265583492243622632328857346219454418282127641710808082446742825331358895962312753406938823988485721136871638609996528959678322854375559734746869358253752773149845680411189807878451838491328737463941489151683652321725370811203137995315157803443911402629743213833773128063696494596681651399501960829912244634037336597370070163570931055453727524664187777191499731318972218639780060473695511800172547183533387260441715581994279959973541806296678513838347426706892950215482590198351851755779086578799638890966363194459732674023111722939081765577368409198957798068275799797825526736489697251324428301883343374802051063805601559026982113389518933846231485119471381802361379510691483737946890413677565528446202780320015271732745692018159311407742583070026625420562311408427705333910957614412120087778570212810768627007994243412636233071077189427137803955694041532757978258221434643381314113657946421438620780784282944469319247089024621153298085108102068043790923231287095962811668211188439880039073339679882970674388080869980020932147766773584771037952671022125063327676408111109869760594978476169366243016802276816028053101328718426209258299599783596273820918603127336939955537358370534683639559899202197791526872831083086504734389003050552824095903344945003131678603212659768237055227550659174578405727920057219042195598648767555775152020005881246088799717944518498372324393819610730365931328691481232603458447872098375177381081216465811413952951440738936920584805241343017424488757044129745120117937222054259067558812165924598652034188866671587823898991291194361702814044713180240459048602503196786767945491007404426079603111617961779629297579007069587028661299748356864267988308811749295529896889510636076905604021841989259766712484568524142814356704200011145655663417205164262967914694390954159286507057554625572868818018014824871206038224208160149683596247761303824041049892273837345651554186004105760863735134159468277083454393321942583741503896705659876738273520445999091884389768630349689373642176463793367278900808569227590984320937398199056174800333215529501200348715792721985885677966813696817411042740918969644593576924649789501562852746277995309954152476286434489641068591355313306355617328330990110965824218860470698048795759202975600299146091980823713647654152637251706200644242538753936625759937009922584900084547242791509493728442941618481293321812656997411943687992376689337104943269066033537077519367782664259693211436981900211493775355435295214392340747745615161911944466835265655899489601427953788883009067486438243428539819194962852649201289069278996853951037626169813014295063524576235556311975028858651587775085443232250676459659474107060741057772475417369606628726591825887550553409571763369728093637979652530230443131473764522760973581059466900008784163986425242518834042685557348977006601076417830316160056671435669159822885531567890726420263754736423749355168022798876538680459492950085416698793207315685785564234101322871737866587419976587757070684675432786829588069415283572429370771375057077103042803492520791051207365105449583004967598629828383962167477740329037910357297684671612316377150447094619963782024216753916680937407185207482916168676082170738873915845958580286346145443480161787654202561090194380746670088879762283248814357316864174590472975244419224758883353941296538170694597129973066186267658631492717833070365119808715755069680041666386569387669438872110280952871638463888227293571341600172417184600751960510296138429827080906586593538959786790791225545013483056069665280161939476880579370285290190817426430691793229029846718209833716972711050079400538564382387788624923088543368228864174423836712428295712745720678100739071799277837832762602835299455726138708025005931454695218416973908799225832047041891897437557191210042606095354121583253740363236817667384970068984576925983624379603261819692458977628146275619843283098774040748378241595946329374260486050158436178439731760848742927026925266514521659994994408739301110345257495200912934979099116323667698497948174166447715472208670559768955580158463246279401764383103283209534133745805390692906874772530115854661449518970100870620922626694989234183667268800468466886244693945312122815107375513668872484776361529203861799834081456264921980065050045596717886049240537709990692824634378655629154782244556923015691957659796482367503656005470813845273782866437600084214240306350525915080822047416729996617788260448908683275495556659138176598793785686500040943714146567078452408772201926943012251347138311110471340162622844418663045216966754781887000916626796257487627435501566283845996806479752587359391492922177857592133248948359442127985152216525194215295634966252924766994738797885033319847186380287060058238310298227206848694267542476731113665494837343762476024857456607368669765772154871053404864519027952323603659916139164146888889839224607426131218606579160765957537391948214978097573322643455506417987905556942350739680508487625077947943374764233449873902233654487873692382086815208425626812297034142915668147021394200613508803908397181444912355941307814900418967556704194142411892415768205471987976145807537309969951213536877532598460482816290388916813604148268206501668805734130547255142131136315931636349791909434047626211852442336856718351010111498408414658884989778018452820257740524361040485321068958015045590682324488308070906780073279800903701511022113342106497629177815524365243350325896327725197312253421795561798133288951752613936208033681691691167570166027903691347896332055458575762587041067533935121019324956451148751713426756303518315520625916881010433335798705882075199450493668261557575339077011917638576569364014194457645098201176799136921428944249944085065557987348396789857751012091235814705718326381268414476647988710404450109745122252295843482044283771312940197787643885323203257962367729783916892672141073986057807522206601982034150617985334818273387578256057106950880035093499570543387394116915044184971021440797959959017586968086026715982068702397042898821362783917243325058114324298228852040259934020232708840747347112108699793229292936595406306239084797254475818361789522306033450976727347728937960722507948890038683130820095699133875557363797207332715447572577475970764434072649253958040338105810078168146073155856734893043038027894389570287043353812444083278745990804228663219305333862049961641907951786746793809400276266278138930385946645746747304594642128613499736309617758148356478416650765823510831915660820277588434288768860238543852945363516314848908675932956606641447955811488623946655884498787782972669202099683106161010323662050488333543020130588261962246183095945761821402987438230388905081190164653805441500807629645466237238980905066422279621474544673243799012915956340422361325315866329413269789761488159298045150758460296881864200589789264568443257506866192779579532597481843340097698326538790212006529949885361960122431614803506649592483720429623841727574267314835416326476245071356226013958827049670158611467681245458262505295427523617657328871679563879234924874553347634190708281811963399039768320921760402289282881504180696861192524940611107820503153539573486772293357503146210438841424526051810956297236567817314556006554023171167577125757750562375083221891339168350008276834120556309000226795991773746756470848647522760567915443332484564632657480611657758992564722523715030288304453842430441256805138743777871359174186837369989063934523271638906842844916144956715350343105996213509703299480679022930930385691155783884193175630420725544545642795732785420061636153213277404276442657755540577152577547447908925567128735961793429415026548965102145251917989549240378855127496920502487200401716222930814958025159797270189598706839182354364441288764331116300304244599527025352219674126857016067117954393568908064485045699070057421790913696947996332248627768369782873228644585126018832101796994124796341608230431693607836612061215181195927581718078475348105639772044926756620492722836296613587049579384695758096176570590023588230537929526901322255291153002181968298632530287874916743812206481642766937149555359464875287674273382343517739706293155037679757371164818464179515413797502275520163024710115397561871897249831145851602129421998684257376089629652628617851262852722771638790527066577534370879242845837971749161753635872220523822775447949123869627125938656564015189078119141981724226255396910097662530567666015762591858573510162647709641148765987093277474543203948817805633684792779494980223615034868182043015618576766679857635973922188008404209399050712818407628866131115373243146480788169823829527168947568862247133908628144165262888208842944082170931723689041365806989141659832298033556923856920168331357502494479124078740799353939989184557022282392357800678560777001360857525616929891171709976286432700688647723418164511077523151618970482507310967130503150785458771207520609834099409460518644031986406457577180082394330479732087698371525159840091628562936796494489326960342351985228328811453215706490410451382558696899753214614057926078407480634931464217770933340910914144610524201293391133509543704699919038546287017908184034326716119551222646682735007232901201679466133176141150291207455394024353184808771190534550484708168805746036722055876546946799842794194010726595946068415111521641556450042927658751714589701590382696119240995648243136885584545577278897808952963947934801451527729818101850466449354756263598430334268249826733377673944900840338755085964525628054815636133646813308074529886152590893091518969218185747158850048550426539254774453739469275813650761468104127996890603384183115567292383073655242237623377477674285784335468537463990789433256010184066187685591482904677889420330591640949035986038161790855240408203030447490726527502594732598185754436612562533888071733727612240403300151898727638848172266515964518222568284076468177298566715113462366608490381213674916560737081279292991719088603171320206227469556054152748425338552788587831479608682599253741025659965950309682830750070883012358638838607475002097834935239338618616488474218568447673725194815533481580229478616600282903792960732969342347617872394415406734323769435499021380904443182555647574033841084936185347799454091348963987411167284959928531537373114683526689565827730877583990336180997175362596901647411517185596907183780940283221324633772381972016986323221166876172179201308040643484345272280727512130226041739411589385982965152514066497085251094559097656230257095081459920391334116308214714621749958182805231977211672027482012690945217700341913862680522123902257553368865075266977788587362977370553636047602691833260522055280728410892412640672583345119237558761044136794869086976544142509399850526067948409143474984364914700313252368556716836341978574520735836725207920990960661086946041988925402106035514277582106895828286022950219333092870095887444737982229227002122310972822232144946059934312273003841261897487317875013382985051660118697819140994084255709715549300577256720563900718627952612770865561763341938952127076617532294809954932700348635221424318701747601362682293623930920930114472324524808858604832313732667668985150970694752619833423055961609683787164461089815374022113583376215633035352301401773991139488649926081753895738931910847393058097897923499705434397632738473140483706337257948812266465939915406575859603277294094154194280009787834340223824722293983274931990765956545284486131411495450842225279501836230656820217534184306378705793272470472984234142998147517001028337851557344442542473589391519922668460679092910816690033471875389086177150473860336230134467731392305471006642249229246682463456395919445770892957042858712332198806695617411686759111194507695798620061589129780994882167264265421830750393029523589065394556786373239720869951367969353185701286645837335354461610323794285630716098682082698186768297976311597188050273647401151019814243722460637512901238896824896165454351029856685696424925356514438186223480595188612162814450664368685900554599121456434900072885975685496417947627497381305758358798536230166592910163170577376108764067749101290194799166042004605834302404366716171943825153860978928539674913127832569210227598091228277631858770248243587893324749293651978183494959974480394767961914618285271048447099720842513404315249796517093562402748294925911254190204792185026148494051708802729688190832421992231150013488618908666282954997283288821027746761151501884691616772318541936066581163123349449205585000362080177823569313629495600175285331476434269865346845611206496415143588493563135624703432603637909122331715966922071046506869307034833207037248009860482051977207793947089229221057371143883028388974615315658693418692932618467662648300674691219894138476117175161312227730283363338250649516698308175377883140864121283939966608876643807696333918921492701758612624677590731772415875237879061984731794209854216350760346450050286559986249163356491281945254863430118880477823143722149461639475635408443706324501036059594223911721362679062078987426213894491973129464452988069191706175271540552067399448856266761693641486367544603522631750431192001226943507901641307298955457029590663954661582111671774209491907521511586002866051469958932779840585232758546426996718418500437877449291088762342075305873416011808599991533339276363687727843525574819113400706376894543933761699024308031148535889585445193347354531871219020101528677198375013913326074137324639016618098043376380880184646220722375170275818371327763915542435665101896867320310044316739743305530499858709314834070467062823271384043398350279964141773676456787516455208986747599534775397425954367954168969017594729712930034296502061673047458155929958451484810293346951179670258660131328210769599333689739934840753518007963855080919698265055090435857142986325132740816070128579414843260397817997847089017727945540826917798099604219986110493164255740076905700754647589726954340612590598164413440277379760961938932291590540843202344510881376847578422499227180034193104562243300348443946362541003901679535757816872022937421973432357530660566851460360860737288483649540862701250686378778122491420079960279768666043132910164895119225747082361483310645389270395572686198305968013837187528927767672727944367846389193112568211205694799211828281933853105228619283479857990624655580472675301219286321569858974027683156327728943801234024262087621011802746438498922552413961911072313472487354355431613802584608983567343698773514315037356613615163972935889067464212212780984477009409007667751392937349060269600439239724643916032304161277497857103095537501659789537617830851138660679162606702096487843104143128426614656226477747560545693090082268652317695502415831159089149589095497042529528098487715258700157318221041648742749211873897890429730840762945250940285574305092653383516862762638819676168827635425173726537418497767152094264007442763362529028379157174116052549603423107560359790788548525947032681362369088794395636176220951702426159845133771754056026970629171162424741479888503884904412015651163720235507930150614246117312450389809902305889310796821513378843825408142334718237886675308839393112431843604697261450230466458693668878598262044163353772496292343605322820339127280269150511352534856665307820373065056622435458061488565406085962778722596665303508582947175599704921842230771366525326659400673615005106676152619367370658763370692247882274691957754909440748804056343329566108991708494662431489841264294317326516140187025385972339518601567709061256791214630175272857714789513347629936210994941390072772920080114656268588636057485208765003755710988471832099027007690117213186453883922078046913334666045119120614337411521900504028487647190102782107170591703984349369911134600036518316299861390420732942346996927781277292881590914781106504254167154898623422340208568711975254936240776994308951288125944472401981727302659824939014187125413719992617186207686300179064729404318033741154938070288030594884353131354078576093093386568994348592387001893086465898113492515686362945673692777483632262272787529897789926478533013851640785191660491804289709238100762128333184443711669165040993714519652676042009331043613746770639190418797544399218250254327764019589288947630559169738278971573023892825536530969742214734455357976797147412328913242778790201686267865911928127998015663252961561922697923740375687372860975495340043048809333545545530242745806259657835349363841208022402043494208751867833338659404457640007126671254596234995514206870725488908543160953422103537338729108677667783498571224910596048403845440005964019424589359680532507312805505137691893367606749912757030095681872296421866112793943495259566950411980641140747611741066257849700657047570239950669458269702979715517551479434905172995546079700878177152577797311063484160533572213318781535065538488321915610375569301188987424373259768701974088598254996456732790888035042208052768380515024998838612960432832364349680097629707990296454904154375479799019159641029856435784331446217195419973279999709734165369891265353629568730980776369223241917163732377332270970703392342877424015321801281592293264928170227838305121288752784464007094147787309523493113958050113792795621446302152684743230090218606187462619545372966849977058884254766502261914963996044397897538027351872394121410523891773112645494921957230112083776735530368961928124243129044670878765292325329102673303753281958726184401297828359624215260097027663368884910702504583385910197685849807821380301937597734776922092333696908178122491408562001577424010145537264840827093096939921051845037666143695661812068566175144149244682613293775612804442553660362092362765591880005506090449187892671665614057819354940224720573987725803544554267716025489284530732586920442153920364033210425898401113134733872132551398256782355735228429738694121628042188817020367292295027790415361409443453411183130204423374470450551399404930390700074843723614968201517376802400487943627775778834089137017248700447918457554202461470376241853382165608715244319429277555987998080432163257831294690497915934615126386354423147581073824877555349903289019494362950581389376073177184737038119024626868645535836701985692521402706506187890937004194547771847538330490031412700783469145231944598846069353915687430826909221765703593725942128396587417075180909702281313827997164092834522342352564155629131958002179565361310675402326505037944979705181823973473293033335206749103484116045206114512982110325988102166883118480148473187172929723794803099573374010277869150340868751315397099325471047732654526505648343656112639317871488575701205925428288938510738029882994553606503068769180578611063638659580215387655061584850809315954486263170849232112098083424415243801364112885593865511394624267675732378183089345567339754891595502172467724196223699196953883309175704758660110527977586786105804348882645690377290437220492456321360324128841372505499576806367802559911000827304499492396751752170335112258008406184584445432488533173924245728928580154533953397382673987641807393441969244438843248165646113838038905961525529131110748474668445325951624186549451441305880901867501841203373070498647813981958853396982498213041754230106070824179456085021582554511818539505578250402772701046202662583365514954127911078873924436675743034313884706609938384554345834840312215801207801209909938623429696681951312637959705466827799506384394049054771406031773692623465970971958940092779941266969331469084179534795428992040286531799317031579193153306652084893566359807076471301236889414544766332634076714731247369815431018852298155076730511698824236115300453640556840398998858898324070663492786532339389918736023793373882517002261319945374239959612951206120913648140231057495753203376597376708486771298087098434955749870874378058384326585146101325814236047260941925422530099549447104910052135159295428615379374577284087641581312923382945998502149601148689819237761690236462428227508674894705580582147730049226273920756262004569072647892691125701038365620044310879667465880408952116494760206182282387189860416800946799267604330460148539482788119211200838471750451662521975860713913716289889590290777035387640697349982726835740206581741543860178099425188715279398540283939233644916621752785930756261414530775884048904229799024963989907683815327517581930079573490389569118117200809788507132003698035794799874994685160944428012024811773292550103524939238858152377775118054841225455966399581769470568755572539643026224606208704854225860421563784372798426543609889016017998056370742346923360436199331652127529149787605070610637906499968627586312865306699497689579579308175818500145913491963309290502685818695829892009842399554846500651696101767414874008286266273632144480429416686953040289558442906924909468998603035361776329855238323672578508122405586147407347474545087968995106682221761449495745063001123356091425496176235204547375538686467099816520383926090582255678935018300082418852626981898991281973305544504609668104734193789410378827372629443043919701266229858719490945460774407916077173000152510111250784749184882519549468777827425616354240093664673335329292767555221231676622904723141109911997657214086482294248831827874305854084962798774953611263570136079860227386988227785903136752114996195812537451523401803822944102299010522827934856419806362448924867398264742801645047058656597708100025109344143802967234990813068473341013524077094125385729290637776131172058846559627684432901620858093095494444678996624963811792323384001152338606426726645792447391009063036731854338916281194354861390402248151464176523101075040740460879392220863230979878386398881452454101699308777750463636121630936190528407188357638093628577119026921991908791174494591663820849293302608921734151440711270138923861771951687086279858564836443712948620126312138860682269382464501763509422606432343444505302526329090952971322988813910573792842813362200427354335445083374494157471081644556342899406353512569868582907742320096804071214361411741740801919860330877803001923232213148232576808258496006473734485086675426364260990390288106196729576148739060575529247729424318216745296516191078046682456789175742950409399437755284445830369652115334611377856734646959448541493739658104495147084024853789210024897364281326622037245426035009091451704784635706974970204769853935282267448432012416051598456158370568739932461012713487128072133772804168788360592225054832508328203240913635355658671672702201417511869461109550720895199198387291304978489078133396146568535878781234307522066020098214642712265473212646887416531818754212839681933081105941958488505678672186953523600884387275328941311150268359336733533838531242348258162217089975775505108798743929653316820107475886413806932871686485794616958805215167720094654450796928136955729482398344130979419089531682148831579087067370498926887813188333161010467854457947684464952063800414259795753294365617625097528869612472955182686600727562745230351184830149245114826018605699626804325476863889594810858659046854863080734728564513239076714230757423886622055154634993187303361174367185067489524863188610333510974647752312493594474469186500956415780034494638325284667083530743335365690488588158455033265313824908733822962213849567518548371066093450075861043878916483821789888792636883812873555003078604868301564419734201872406638878226355718925979974896618597871671913533377611319607179017430571645344181164001269681996229147741453960158746957725781187716592839005230485315864292236148943674029340709612681911491917686235415109845131276289840692356558860708962682468017211459183496899239478225873529222070854228551589709734420356960877971365750022148068723388631309748430646644539297713678993851129609194137846066460758459783443310126652842246408797723665671273143321215387520089530942702194856261131497251727328579898197165606951583045958927067099492844080876855565874472579151231288477992286504184397949252295180679044088329276702030146316911785161971508374385421779713174920876390115712199313090225923238648811612090725619054553696281935408506519891122864105625844976497196790372946167357566080635786454429094569457046719145144823988080524488088841595618769129579560527650301843763684750984966619486909928948375443409776371907526122065031992755743963741188082384662576540867502053649094063021382720652373181808754426784226497747142884984781750626190313840037467594173700353813812491761759426424673438661089530988453613889474866389118848829240485140594363154374940006516647195639382290591249517079750765001022893129185414682440658773268201942073173246606047683881446203766496883587336854619883933150699716098788107357996859812742439443555085752558059523362804526713368146701427484860610409611638603688357803596757870419244075825867011044238095033547364312259141824520206382133280292689038198664575453423496640297301908939318921489507941960613065527602127441231114102824584671689577092361979510904889264095962262042729119233086503666562676713443801118902921466221156314537756890092476455453061298206738038260721497273603271746696958719719594834397524485657992903515509389661363241067087812962047094007592860992374943905824527773724611321608401431819152146309533491385637749020904790898065903077029513182704573242255970369376489599714278604791134870108811247687947598535332733218952757377829709051068253109355016085669718314935498633580918517050980574392404015186375179473576952023850471766104321976635075112772617228587388741686431705203421374224388220946624900646564536918940153871162107770569689008769858567133072423228148382231928311132289113753674192186424987325627068469528541135183858374403532296594698488909117560122530687408514313070577649535211515885864112373891554859385200581813692221070408177479270951470975513711534850759388802714753241546456323349380544540802411199617818091176541711287113839920470004950460158256907339037154988897989325528123223213876303062209118595009572741219345542735297616557035260450529090677222635910792134674719754770771209713560232957148429119474252285978619832378779534875627308303466937267519493017386342446896791305633009554548891503416349085704500730584263310433975972977702890783192360788454906334554278410311836468706017056071251338896615448723355662865961058857710200395984998809037544514671712285509655242508151645966724006249636309566634240890136028579476924699547428838268217802681176741571494658761692188040662221697370148469761060848368988077604175239463001796901342417617391225443238076449635155070459447515272292589994979354599783757552176019979233903479595435787187204999519190406188929067030090368553240463800013299213854195813572509055549816650158759472230897685000860688352522597773441667754323695372597530329289520624323930385948694424939910769900756690964413431855899511825330295278038578895074891813575668268875486285862571482688743576547292417159246566078502105586542713933482600076126970056793774936325933390397778232807708495022738253826888409721174555726376442591904839357563732459446663784488174571863434349404715472684466801727089821201281942079171560778108929842091406907894398717868179543811689487487724123478562177422707961964422757252136233771380467932960653198176227510658718090454966225652816000184128701871732288831560047623042009149292783886080077974247390036408806986978758284169080429538757344374896207839261295545575203185650048018076586550716836071261446497033201426277773362968433300371651150376317493346785589230929210639358955135716353809513864876316292259153256164427546377456588946993720827416192429515162635529786230895155882648414798874424445738188595287840942499362676481922223578193223418600639352951165595324519018994671214749330567449254765389983394689577264241579382017649911588294428073469391658653686452435199021464971723463267913328115639041453210975853569832021085308502760097277126185165710273809292692688140378636640104008663130205108991924580531026158672628438830730406867691039391430793962116996214633038473689040213440608114265703338738152020098255759650901802178943874198017279786729556254123301386535222202516723392159517546651951142616683880411550963265591636195487366941740950846272964872241239085264916809238480614873324168534825127349127257380377116114990321226438201411638514656011183407784431330535548523397703636374691415596641382034973677546583459585268191441692334514086834864989550980543362089662545056385052043991347040667096318117750660035900936107702910875430497709091946207367837646538562760298083748025805066843099285167646714863631705263442687928193989472561085169013102029776524948886598012582368114010088988932825179456175048566839086218119783004239146134496084727137436678795652054589672890031391381619225638942699130608041005293735468663017595354179026291143211401690070231605331299375298558665119890153906572658662800099130180967191343852446880250255165396439704152048139226824420260309302567182048909281068143580258736714715529359065960246557404885500327865920825543358895909495910236616010660606037969219764741953433616474130277233322150727519049801925487642428682680999510008260738163099710500342426971514367858298301797529520036304311921993094740993538888444143347192224503904984695786038986558027360402006424665151051333213733084058541118909626896815969382983984217764300267733714573717303124185129035407272399411554489676758314540828313267290142295161638584290509997989326575439144778775562710674015895702008141370267682252569674930790506147031002882258106112344280825158015967723426006873964251619545623679705957725279617381868091716162522678466386086353396039588802582394242657364939418303026745609678294936592851029782725369096424024226010381586350355262046867774270477074191001172094425672329130897180272657630200284722337247680895339407336376379810896011059658448123004311396912004682560611010410629446443853849053049026941252737642371058306070346204306462920961590251564322172970444473094292245352892173260715396674277819761163778184504768212418130712794147082210098137249389580670490232815798034844608374384373491159906871654661965413970695097538611804166589907360907875385187188996300207098605429081952791583118128981624352894583323536174421812954385222801990153226249813534728186663916347711283819487219106561373087169249785345827407912932385786049661422833688141142980449864134335511782232815968215497131385950633694859796197198565259962199914708218821866067551987069392111420215899923724638940234303157362192505102208790453913025744756372195833065268987879870439000508712034406358654500939221346951218467644845618369397936404690690872814325630769308676489950682213206193900581060948152561812854100096597082210280377895566753817803026263895249035344968692565214331845393046497764097555646663012521515082849494421636246909255735654334153942740944163860759105315046887247399995114017560966420290903203046667252865893757050447749727377921685387754386021504417880465514197466575744588544015943319305664310555004436951811426684047600817236490833963460374174954487707081288107112716969144986283569577387706602824767011356692541664467674804326455973695000284048097088268601724247975771760544928274474356485345986605898736956572326243246359646754155294154084252968083338145175439386194332322342984962524946382762715413371308922495962731713034760818213702889730962232787381446290869953139285295659822184522627987763945429644367107117755463087726974142408278456941708686847943842530435639342165096110279556061781057587610390335473960044864784589233150940323427020059070507336405372169674158261087314025626727461279818439827484698407541702365463486829516240827166579717146171740372089630428989593774092202575560124635566163729883027785285158465596821679020833872617558879581875899135539052378593831503378349576360983861402017076971432282271180919841633973600426662733707104242676698052020647106395946399044173400816044788033878745672885458759256619850883129828474787160308931990930388178917613999010815566370858455397399085262273274404620053385258964877746095012699135656940840029884970346927711134743657951956360394906351817075356857825380946375842298924865425431204808103122826192521319432972982205866750447345198610812337503166452034772965249355486930235947491924815081205844128874905909841236528862784296673512749750326712994874934652702761025366928735698598236029565036500955689592974082620683829376980436862703328269873302977682680434707831661042009389614994390341861065873332098202150623614901758298541545229923519693146907277724787509407685437574035655823551129699087015593268262425508104735737986290999381101664362290006834110584299973181129039169853532460730609770925009066650911139712350726296026239294492937565317142596565856128384044216947101323807863834705359357212298360155110521408524189234730133403703196042237046096658618591750667866575306946251291983165525813202721884369341088662430769682948723804002358651184097023249237585772456634333556872989657073884455749997205896382001202731979358264118842019475078370037425524419782314839548537144037884708901190505860271674007146471745086264312230050658770224406959798215148360224186762932537138134856599929469374419317211125222203295966731390480033972169717927717615166423231688719839324434555551690103853607218842592295082201925737520400214152077074590042132357702025693182837058933388828969848954791808666046922283024537811224597239465117501094132756053793688476231142865581119912437773565020560659540599675071344197050698716758454265081203168087067886208179883748859061557551487107749940005118192577789995575404083240435233828796609715873928473940592647488494469178495769265448132288155757239385909841566671457708016863407046401133130433452694567209482201625411566450784748637963464458200856225480978640857700123028978242813533578474858661215290503736302222299752368066231798331998946659327923376981402908245880747143130977182613631588977218723539908473174898871893762136962597170838969017270376199431022022536990575000225478886620539216807724528977869569482453781068630427354925614987823445642468813050247884466552764646804904889784134451256108767291813283360732873100623515493209216036409433810113574788042855632160639749474319216407413891163975015179370417103249414248746068953290404549197710072435264717852546826402672995683393783936379654835361009269466840083834487914205523099189798416695817470855773518343723560493096238678039103721873993650755253420216317204097581961949417004739971406786513733470730144434189433454511423505093861994917603468189049258896936513552633817247329091762975289372491414337262283341888424366201516184644967499401076091662853008221018050775708520779522135462582712630171352326206184990414246833087476845232789459394921536895533406482486319188797896902988654796044106903380728464637752197788879384225157837123304946278281691361567812988748150498399720806908467563588710605090966402742673911565648058061012078677389622737240137729030694472954256526180909108704893782196108406882172043433872662364278979181423551997499635427703156992927020298028269809480273955195572393664599394693286005865071764107345609413599343330875175805768888318161434881012222049319810416999853958549946437023115217390408623872009106839866097662137965304416938744172263730351682436065647042889321047673522506972065288312046224775885478114375539909828698332347322888443027450723015928054231346320208131012113448805871039607355545257422593647910817480502960561621652973209821622960110012485442660066741359640535851211984140554744851341874088197379695521999660371467460855762834925710283954601441884649118823728366435040179506591479505289917623476422817405668658966573742644231402958166324238882392775019748489373304765962490468934218070895032241868688947634856031038011491353729478350028260704853629660575193169830830986137312489106344954051835809329039112305004887392902728849442753239441260029663338740649846164088073059106260343562661288442289156358312720463239441828533994399414046626147611408099356819181303826292199197181443702597912182591441056066944767364830512442105675722330740618422649242875366790601427894665588795183985766586247125146942811424523450987551724348656871731725637109153827359403987233716880959625023111490348179853555160334754989053015566177382093282630169203490796869155181119321890457450853197985370077399692551869298515745828428833670710391210435022130236598689941975719190669294745089237036054886929326804559531891886582848499052124067514456481713362728315185410304533001305722607529155507591340126653193484828746930542402215917374920455037717493882108779270189809083362753499977673907543950972272407844046723255253261378028598466854394470982945105265876555609238846388611103563345875885393736315106229412619514560891599580118045410718247833767934669269357008839499545816720114741213272294839972784829348803010207041827118851617012605502442104461370126998486618101295242506413542917784984875650672617365548743739757206487860178010851183304714387649449010853270072535541733973493620357515526171138702580179596353076234295262101369673999065822725163519927887816725572011698326696604181653332535638493217965565573214998127362305591145906379920533118719200632734061392118429087861456176391669989556832115390825172133067628244954676313056629807141143603255280260545602088489647253492730718489798089081578245952020430418070960803632604558745248972051077558490870344963867436200913117346210236143190153373255071256170075997216739588988281175097306285623354056795102193165655356257029552337414841495251707114366642166708401903719351685098787674617457690939914937967747781995978702573295359973192897953542109085667659167047546747995868810961623992586021143935191084208968156093697361185871739312330888785586668121763994752151363531055385858858164269215478799857596332871696420275326146711935927790559107526911682101347821764720526567562232420603781844287960804599040893082201293226497419293829386055293126812928414011880212033344396204535226923106194363545050299496922351361166225740920819817380943249381024678077371725753893425994255877415825008457843726427940723875705650034257123330158895303550891485827201295855131874393927291537130333917491368938550483453807947849245241706432920514754476957049635460364854494638496292389167458741476610302501544701573359345613898642220454113473302784800198110903443189297856867927573968994410819212963883366251999098076691932806714587292735958055120187986158477523877648567082318193381010659875878114673541778996219417827676489554936132132456522919619716885899193351817840489542399938977530237226292344603710225427752249109457892106832314740444468482776622739328355346772233284118232287400561317425647631029790503967607029074600151159833627859967318020708954314799014399480940173235657371039483128588340236717159844649839872760173784135038620577577710046352610365914609293285811633377307034635777639162506382890549843200882773029189389064503951395074074926512983942803951312885338040682235870665301414802939077096606781197224735214401481644927368987557205884890768761882066067508425053376330774692752858742902312279579093497860700964932289926386155918807779725845840108131033356547096295453990613885746354052791047173771457013405821682846556473710244179734588559505447418310081565969805011322744373404878787064063901163388409125003207340883199743387473979830804592196332368857845421063122610374050497699474975946305261681028349577190450014966548171550977689762833244925036243847327139644514035969267036616743867488225708819641433344989835215329759954518646230618775784211867948103496314984784830810729822117497665626755728070412055501422834879495863675389679713834012991691363363122397966709603119611521639122464167459858999903452356804231593480176541291010227269695474435762988094613887142879418954074578483993269519928076189666531301311009806344337660027213811503524605092288089884603081589159802693626786908084010945133783744193065094176668434825597570216230486759126483367946400442084340124349431592552192789969256931602327611305160184632523638825559827351094816849935018087825776485706616470604929236992128286617394962042385406500177583291990795151110740849171458452407560109816302671592449652175193175080051743902228891052632214516788846503401532743552593533299785572812875848725161223825424151760995294988996479708481672522570555177001977757600492716006010559260020056073532332146430574732768818284224963221414010056245794325949127539373852458926425173982745778235458072183493471621105761541516698040951765090652491044300299261426650163177387134558744799411307055868921233576160040518118951868152637472122076783824193199192760887385291380531491499431529754261997153966112591014161539901836701814347377295337419305800019480852232886864395572452034509363863003606987205155923728274699195986560071371698936897399371773306336265098060480662452077119185735613203913999922270170844156716001581973979696163328190458849254807569568977950862239096760379732366410328922567815523765692840480545561323229857419258960672562381791677275353374752994842720732954784038939985708547770377837580494206293820957700434676507362600006978322181599691675663986196824041774978626148706106654888715270145974594935265097785600761967994085087821059077088094965521554756372839550648713717779616054689447567092327533322943057863862476346237034611137688056887120481171254218724657937121887475644119005550976574040873199147481468489130109195950458441533802660003347900548839344893951377671575509262249649812155903793306797025581169752035829413738066564722063891563936925207133574577717889660284846535875673578022627110549056645253114348442161575865625294351861337115138426911142619468646383274626470795257587536702393635929391292619165121102793218018528655371612271184235092298950972668608670611227491464339296559668697576384883303421910001588152048877321435187568862201549460970690699923815955995781346197361777102920520403513971008086926105598710755329547148165831904916424971738610570298968645012391130768408587041170777795115822936539108819596686492363855842735083476611399314210691472465764706214897062339718862506513511680113089369852457843262891288511923792215798077470238882176803572053961810219188124650259548131747624446719452654212298393319318010976866239352313501144801067445400174215095888873614355219749998655592569387856785308132735562344891787852304316702302116934169336303626729226401449418296192595044703152610247426030458217028538003980425826437746508805214510039330454022845505278268606402055426630560431727130629369550395522869737234663291965112180791866095721533962742529566912114496365243682677089164864445854770488382839021974919419303823897966115047075377762896097503414090120912226439466948501897358840987387168787515213932806241233676416216862489352498774835696721277828432473712308905298394473121717191279715930249424932688888115880604732068827858420446821377559488008026819349147078496208780979866957376065413999577516944768527238286443663590972684894422285551804003060719763827918009070797804908099923145608537419308300085877313283199356961192187962451876009697812453045102477398294498735533502099752032699922680841789571996256880678690301058089569185369587780743683078181356325924640322790146441102629556515141636388000264428983211474389137418611427834348503427253715647262164278736904315331607312070381201284760182883409601635264557849988708485196483334163059079976315379111125589509426497918450740564864046005014580206230987438678860545143976193697857707385266348910970489666978060323697530754621059542886786939787998221676897604213856458781676641224617460645482964419991205947620687660101943557317621992761460512213176372434154687923058242798125013771232357214881005032495681584035560293712599827385830160228612865926879694223433014356687668604604927875880024322578501542716567011246035538785854839506113304373391978246176693989254494698630353345521393119949011321401299312976647775123779542477886357591893937019575289319383902180339906582084307805700068104283906150939851370715511129623893092804586254591233748056866930209336779265016378133060772425259515342572858592307436215846398124102259594311522171791830212243635961460956217229290813251062200748169307994321482597034078579922140750028221261906733361930550834887592058976288679440235082110679692176669020486715135979549633304469881290796380084325020353904502421736075546501749293264011603399766103570993327310309494814384686437687609116737606483112745325750173454692759637569043795449641707660792180851469843990385983446756553832901170865571446585652865480898398169726133929188128995473843901702495062869785844732694647567118351846946755382121925502392040566176433121363904338982991808307485901031059025519967280842865811827491292677940399047131234120625632175779426446932104592420626641458185665056285346904876458516051334320502891334972678338283119498373544389441742095472405043773808382566811099312703963393039016415770170857534257580657455320936517492669382205125827549094109043829327822817258862622320545725112617793205932262512733715205625312367181600859641808422432709108065197187792629898507386973285507963852683155970519995072326042454962084027358646151038207334508988285337370669654163402177615102317506337271767754229228393923557636767836184431056396341732184258441088791575034475400738187480417882948795651373009716609086982473496274730298134164617837553200015690911328347618887747651358744896101681449234945941994783251885227072843768700187032647189999347372123381574769648625365477357830893479534208870142650417739274267482123856941327130938173810106864505688003568262788043268660617056401370132880320142803225535077865081681903259102540189278471740460267984472032764746110207822252210107875303062814231738852159225669021171914886706058739683383592699344340146116310272459236389088288220085665209494511336789199784406550994889888095804325845907987578052610342105768350845771464371487841338810322089950286347253158352371341722933238633167658959307352217275451893753891970024958989133256271512171298736760960264421779603112698888066733106987814107054985623016188251315742854388754747904575582873208856942090005564781943190313780967399817436602726345798525961556251883098538329083682462848205495858737783567557191867503554609723786820296873049269418588643585201700396209017004592256739558127128626231745547101453365118199302590676055590274719986658112984393896498714490285429899452489598409924837981600623621239913351501701251297790228378193269836380904973552700222658762019707090860335593323018302992063124120419198219247351316275308701192035599246547452311707925389595056870365409433256824905194728544097008516200393314425279898225104321541489105330942642396620653583725625244376701401889081685118223673512227466910769068385459037911471993465441923595667357642784460271977622027772914678066568205463101218487593005414210590438251996083797887791254188256336716227802527312889391264373537076981559555748201234670252132503654574816821987448146836759132655307262143922695464324577472725307920395061062787037887710060260580953968839889917668410368506400972923392366764713713265027137577100339086795046651665988177390254707445428759748215423232456830794541017460717903889885712110195540026449102627460734195489115420684225832413340857325386573601767295299248922713214322504125292293719246153655342938313163843853557900848922695041539049602543946292949933618998246696949684352228643559956392051065410611238834237970681834787725010561712781666382236507986243976621393355788142823231276312368097918724890157864857306872454675180778459852969169012332313779107499466344109885654335277710551303249778661287428163442479874991919826822238081536106713847505463922528376397873708202672796895642689375641530518127156633180333648292551983381319625937008738051946969930789175919482922771698863971030367586337209522913574608802628173375243532935779657625708141016855718122922237487353502173819132551553686818018670677378078806600546836946099062052104228121600772545443976739405709703951938159000901407125817716815961094772837097889298384940231900350548386399210447255905933040434377303977857127127685193969317563303874985897507813102113752411342490778445531535758103192589468980392097446007006205195069019198067591186965162367681265291728980165478169084738895962984537278079608343053780809712981587486665940678614766565552466551260663861244101828889401500992885979561493686966693304009158889928058647680709633699810517232854319327356459649918813624135176879583358618657137652081785907865074268956432058024487179339035996129635726622601124987010681539002908511748879905256696353481706180414656807254440478240552526455043202735131234701898350625528570573554002972180250989390573803771822199865113442054051258995244542831859157269608447201789730717258250900636754965913650340057003457342491740302851320510778215649616253325875938149631425889875995230857194039053289437894282946370536634686191229332348008605889359481496441240348038681587478750855658404777365394727997957988164568484173211715594517646378420577589798250347441293825854183072616922579650346277702939299506597475503891095197754789338182885367760440044872897769666253905017445583362519580162091391102905284253646502160258334542003710984028771792133035880595426915158163584842661015929771795729358186174542314325601597739944263325796417099750071603533746682349387252907212441247090832931080251117411204493055697691292956667876690863652966871223757550270041331410415513730921071500294423449883740169167109614821936027867358885767598795535026562010120267370535703936254291644999897173241052519163827078956790209449785445221939856799529212383976730158111958075612851231389468156868804912360005809858130358967144122871011886338525193500040700828218559190951088623221777980533874365033254664542884941560621214384270424718102991066369847527882089762236196183470922434731179955910848150119009402354366285508394615004352788006695969712454319502102495521400790227269963783584853184777694489947751409233167081623151088747736990146055245253854228427383779882318292242845685467974684512581612689208295782396213614697567016624524926163177636182740206998763580025580487097059214651158808726966395845524990605607152781201376703822456400934317267975573583947498234693527072080031883017067860907026371157201437637753143424086558450610018722528532545573598565891626836426579695260756305350035531671396505818283014415325463665363567820378557566775459300189808330634882106966846178630085174682739208796710098512939900302261031956969065520268597513932881448852363186815870167256957987243151047570931954445120884886429712681352468461297105005193403528170937084954133617268209542473683293575028220491794841898620438006383641304089715047439954871522637547494927010864452087245114912189909968911038250953232303091328479638317865618021869755159238019809238939988601038354162083086265264719943549695928721067820612077273680352435676006450182781630954468848887134046218059978193607905029512839658655343702128726969072711385326586505627408754996942792649363851409503034555555054861116493380034291382939570992545124664166024034338480981175066137191958379247222563940591643919003866293500857171261834158506869924025043432367985521528220464813332385513378067818867240852762239216917352649791806909686561170323040451822735757280454193083411030287714353070464878448296783423273749230876026178895167493899034570661444298737626640270982935173433997588638290312655677510769298715117323550286013173042246528408627325352043415385661298503312532774568288843246705174482106612690008883944739387917691017052514225314619394239599621368896969417133911565709165418636992355558752051850747566013425894452902868440296547943208460609475783645458333867350792976290334034568368960110870329186282922483173868337576473673849252001622416214012102637686582450848259745446606345372503834227425103500533517248899094216333069942624406020412445068438626800558885854514842787980495738679463148310167719991909178665027572201756352428135179801042859638339800473844566964902136943755412824866473143594075609047856838939608633176251248033499249937787703844421149762460110970616762568670851111419190247355843780118158208920029660898551944493526157030129583817807102270718430643304383104279059357962043499463091890577081586489794729819920291603653645209781958987843496506663233430348499718085171750793445034619660571247357363467612671544123508960069896619251920962100023218104674471907490980679882202038280349778564446052089776047136465183755105097447202339011954513738306533213523886741054691425888567717457417733591524332765927335956942521349241950726028130552893367437416444288137534227989487647365352617786065321025094800997372277194424753633519791470650092865171794369122809595781993335828233658517300269426685238871725948118478326143041341397283990339306845296316338496915461238345491547757898197415522812212259205338509149791855363094817553338843306234898919967012922096730176458062986458400682009478912904385915589657914515702504247329723886055470691075440122120334452500508993789411201632545318726349199843895141177745750251571183138990254314299138147821838733320039299362007554860528140486421510608710500702417187411977532741527621776075522284754006625159533908325587179028566351162846614085587759124747739058259783522223128806191348766254299954193490431000367457278462675777565386347305049706236104420220074364745596414986244837034624483057641373732260861234665121475457316090669695046889621085563581242240984046658588669280096935315340366694391707899250904957692778866409383495029028995039773893869678109451910318933418341834172973782547326795616735913325615144496764128409564409759286711576455100539216910558027805025967546464896822234000438765044336866015890504819435244126402885466307547130275399784392822421260224734231934240357145459991209346581407673401524068695301380890014278016538752497083494493439016828068394703896639103965021541655549137043729850581047270620829226326622567275925571069824898583203323475465591584665581564091045199108815303104210454494289894835696227212613065825697666803986689161845213420066820827868866937880244824886638567390508213885661440339606267259728265596642701330180127380694370980201020442557826875252361013280058390954277977171276447944074092986789206273340965444984035135374434560881316114718457166146240946667389868319688222034957335751866043440679416319012492092838205509071001981578055216317314230802088154994520858122984880989942627825584429939602342053751371327668753754100216781060437354875209053733905589353259046647990674884850741753424056931166400565063306462566464881575707372264265461317146765848641584296276140891265925604323375730720100008291112250313194224627826589075981958099552896490203127080556696516115507280491831378111712368297947804311125567361635154382378518161050433060005890968485690909523610201814139215771975417144653638302985636487066329635102542336477975841963632311586213085808093062871088540880325064138345029627908799841662570370038005960708695192225270721159343913717019146711576246895913800009080758188459253293841936955471220997691224211305883476923100728001245639102227986376537078027188286493737881237574997738950199584069062560793036418843067464911619489720548951406042183476106741719366784934788931550813998434738830095284398093880745357219689823692652087030135604242163670561889725408681229549560252774552418452945151846128192792811674523073136375789712596945355784661512966179800204656104989148505199257411807820246193221459692807950423799446251987664797830653142292295329699863314240613403721684319600640117730080775519468525586498487210724709189554812389330115516962258831494624416466964708900847700347698765785125523629552339613619293078285686576745657024968869366948322577028910073429642870164642847293914606729807979905517856719294386361706340317796807228438623457686762355301989826259330183909625623330588922769315280609898486706523302973092831904962385559434075181652420259246308987377181503842032878321226664834777702394645755588506942836607130333147862779598397377683441400867900904824880959251483342767305838365146399048529989034914196014487052201965712232014419957470757297720453901563009779272004646049342975449669502307625991589233103451412956632791915331089546189419233419555657764582450867351573732708938916713942759238530297901261532727892095969006597965942025219390011813887651397152530389468842033479555994989182587559912487519125324284491833591460354731091729808084268446361487947935195986376252917636867917038799070470785830639579464660518549029502689777280860030838622527175618642099263691124183848586920719673932387450962053656719842919072266468463802276447264081376703444460613830822138425373405665204009616400848792456065891190699711489926214122943278075439862799213648677176969047546683198326948141560300277910174908307057401269072252758606635706081358552628949368465251734703402138593873911426815754156940012579442306222983624299143630292278058947656584720608192212311184095974411444269288113341543179915679200235577209954998165976167024525710371056293313456978477941588839724238214514655892506116522892089902213296991877213381178328311993305705449944257379498460761638240719177362620708812608838814879343556000524844997873796649151732355791514542330720640346318813728072620798022878003610408472903401351717215431784089399833710849028860247124606584062845988121402019475446414007861921110123273114646564766967464612604702896485324349746150477181934097690440510563002814870504593286357674844493920596850940159519898827299880554211781710752879536552070392719662553597263443965146911362388723301166405683075627595597692630895256017434120207670676513672346031538774478001102278318471948488020856180525416772741919025685964228411154462954396052609250990933150342353440550397021280821786872878920796558834764449943756472979411707412246612912336324859693397863661527519598120390808550758888149611540725470996098952418519027852252953919482244589735162444494963476221781194127799993113400873976321542752132321553119965652239097756856070374794105431064720814178486462194016925156463565991378749441311197198558963468089694894256035366612132334889565571823937417010756047773486453019702025243786546474655726842688144529040875570137101024970947264404957036008477480533228364680196910154401638030120300602869044124261342651242969877524828582808295543942464625886600457442620802420259300794591856336204551193862631652234143047233708900335907384911834272117180051159523957218840860898506762561085061259259627503317881984539576620569288283210914949379291555117181965643300531177748222134490532531101845314746767197485834185329452193057082638669770552291250110424658790742124381505784008412345897373350498910481698590034164768846316034600860562564421197839403644597988216483113023354771425901854625516575331249494123714346580623193300605246852541552981686517363376009823805871339753518930805455469517599397615326046861966312526371485068026381149898341454210046633781621708328358999807046066599619634280909483983688379267896608751173065618248313240270006972617793678464665229413000100175610723001759222551253076575254684627128192369161814334898263526439444656102619186267842457449426802796104081242396011724836571886463988521477661695423530371140199813866277341131900100673345630220867847325367225850017114351270379096900629915090123688236346277648830277766880485462376467303620324294776397912921993296564661705793106534707353079878984164621578443952135584457855271174702070204315014171135179746114917175347048784343180669055715912625559228030401440463152568488912195228952862745575610620595914164552861264029501191807428741066236306203114261776826203059493642380055637381884313207117982084663454093607085316770632849835924313580410590866706582206029578698038634247079482857408071629749617806522941348294730585885816200136525469308050317978025614276512345736235877663781709034848622487706261162978329418798377081965257998474276202038589922223134950336401920980451226241773773922749552217385944542241159942569770677534619482245024051506515514015082858095305371588134962762324071098778947923487931931880085871233732972110247593483679619922278162705775334282755008243469425032436155540369899222512805158863169366676366422149467325362687622229203466450961106318582074719464266747155967356298803731593620853884720905918470729621180998649595167653327198936103775035594921616116348526841427680817245610661485767545764995174619761127604642595712910575183596402242003514401007476834358392559834959356231560963914635054721535232325133144930054774342858669703714885361712684720267013607378943931996096563117482215083555201321147819384363880450821167790387533734881542636982726401750359092277839561188414135056305521065968777345023428512775115381858274109062091993670841683614519308831494438495335063783568454202253089770465904691727846400403589028366856518005316510585181169408494048435858785312149315750369158666647453402680115864371833794449568959922201929368438835609613094098928546209592121687872874784417614799531666578917744670928237714557236567155521460613902742774383527108103940289739063279679180104227235398457961030511845435970429335197879746005520672271235094959416837989743757654760712043544395024449709623856283320099201693898961504688675905655909038723404334325647161588527461372838651149465271076194248884978409088557246698265448469574588728438303070397441419807929650626384040633243866139666259154441601559985207192229372110738603049271552200789948355005460069889716825947243460016869415147518483448637788707694331554745326091657790487383430009583032157983062848461429726912696267384296742632969937189530653271017039481889329623635690939781544083650919804114473948553661663107686661985745625018049061907440983157884756547303568630128181967853622432750271556221080317826722920269318766768337109841522814697812120138677354420863583789075827369195480186819498964692578835046558045889975196134899097271793282154969609262642356878809658244017851032892289421340968169575085332327225141277742238257241805549242380384308912554344400682622210398779448942291583963112503627520062305550131317650107448104503829706954329909220216957054255969608136646898604313613163685775882826800628419343325674857268456654235944998994743695868971255665019716503437273482308109632543969628846449778829693422137285026086957260255212977477153608833985960694412975617687616851857923556182525717209911448931360799489970963378057230804069704428663596331798348284390566490618081154263911428384192282362574453268971031675010268110314012917506031050645283435553978025024122466636741891222841608868062962727600977086508468599111001241208029577695494211992377783671664077722056317911966658492443781786372159770773442630546888066986513181383097939159442655921515382456217432663478265145262921668423190346644365858704998183227546355065144661017540954151041007554753729630863950071863045888822418576533744424928123831228716663552673996454263988315178124953357745332530573565053317724092977475651483674774333736703836090652585143781088847535715336707747614502055929202766546152706169586624133487117579885417115709842791161122535399226789720473080326836635978019691189192058706707682402150789895587989728673706303126308203007548318970832512938483433905754705210373974817994880078409336431980257774091905674114201725124886996007571280712246813914870488892203387301228862232084898442861386721707009196425774901308750561504914549010896036611130524650415293722940407138425604798420186149802838021228668866880409108283414819966814052898942275518869583887721432493347768889014888892154430719939172448504311879163341294697965551692286444298672000468328670875060652994400452374249419429210228509324339802136777654993431941266675520832271192930378626839661812675348825812554346658620778192160736635920657858610869264057836593314787194642910761325472147802706635642510612700185170556800724242957328832606885918315169049973643941502986875568383898707462826306600363736377765326726224707363150380168085798074577949737339560514768641366384541807814140699770648151017595518446776946588905154227869363507608677018525231120577173497068364251845248013238393219848765626334893538135248310669775816654899719125860902949391841745969082345494727322009655605640715088503569135752373379691472853119532085421428601231715157024825172704158717116234350163365014619386431558535417587961034151935039329055089271247167518876661616281721880052903608497182616311514691066001072154906780242351003063065708492751227085403492390489184792702454835600087776457273505888603932623408007676019374486294401185475869235884720479649834804707211785297367617291793282116854686199452760009755722262708091155030914493367785035219106352047227559551480152167710047452545788378854077117107752058210966465683677404320138458318404315767591376296236521652754434008269502542483371009112549074517955913692716608893814580872081532359221970848337107497724519088463994406863426789752611953900061830277828196103745728398461646120208061284202881525268796545565351242178842569462372140300947715408608248877355666934677268347010123879448689019123409042998643194912267200924753540790772966595622092532491783730719790406060487351322526036756491730014709508583138932328939236895936436439212682948990050033819289921148288792772858789710568899620531278121297827728792889512853525288273560232781381598289844291685390394504642362948055058531720006437030789845489165121676118097656117355385280099921123702755155698211808732635720620787758156255398506110893629734965852052625822199567599665701712760050458698371331920042538773683292588865304738956949062087388293025187330336364420034108526214687477496240762683507257486455527589271568890403681848260020348661611475926666172355194496046288240063992933733650289881442813805926268178142614107071024638685545314761694297527134597667208278504902284810228109244581461599302246416920685969775517539035104219023283398982366748982057097499104807623022741225557347935959077146366736342907021459571558878514750917096625124967964742945762613716819675151121901107776232775875858105597480092479900924498623538494068172668450135678277164863388676201673944380220388952723942707732319415220890534457796187750673887091362463689949271942432162296106098839537622325377000714721812970284662275345466867892235446008700823025992476707621409399209889401458186410122977588956416321807756601066171213985332621305295299804863265009722369768827133027123659382988448066264219991605069906323588997874329312323706376266558972994714974695262104486576543379789769594462833619531815455609315535406598567578475675669096589456054132579642711347641637032028100007977484699156276210498780446414803838098425457781686326251704122275144645575524676713974355227601747401824308452043234575313944937863358476473413498777607345731988647061706763282341494241205039366092637399000182578552540580803038780214744597077927007970132277808061705651288244084934446923157421327453667284427235631086484254931903542352667703471900494382469679690999770087869890703990602117280329826345924258661588959058364542265417612684236021459716030420298775478768197521258285532422820375454588956489044961061945261002521582676290244932060188205791971902888379472747572532604612150862340112166757326914414144620294262287001599394349157622960974298278845260497699948005412155918799471991861151360096673318791735249388046334058865381678388558332828865781691572896357321604085717027961441317400452801083616389948694454426058220852888441850328318386169880322342760448134385026102608639378524691790027715410458716243625858441069321749743240008724053230766519656378085787678847516800613780094539533683184621997169161239206294558156544255037474756213996787937467817567130546649855601419844803305996462281482258377933695296083449053846425135802102221867455376041460406821131553673970659639154125830805999029865419721815667695392921097368942418563176759158887447003745270318309921246123874557990200032695427151107447916871924595408327032050797079659479334411603709289773244021432224957390029422072972140105142779264312679547211213992701109158856201556153620985791730238242456626848805183076210285454835856744954903623220036699340222275994001245521267155258081024522860989296970567539020130021801828410601705707015669405020787576930635247245950280231845437926002603022552282136960934634034139581129655963473482943334556084235780598002265556267463387671096163292339133681502061380882355800091399490975885578808674980004471552311385674849526796006919433479027711966094440198867866379390473107918337932468974246203998530195123630335519558683511946258747493662946771809044610448719396866739134484227815205641817343318015044901281148121493048720746244631366067785849702547960712668013295631996890502368153638974083584471377550919708046870140585498143240355263596003468584369593982863873850829804827586307767973343210585721330090189086119821815168016981648177036412875634251629414475977783565809649565663733115213579560317839804970680590863322234485012233874588569667316664157653378921417790042961340128211363430584931110632842201106043423944165121233242848321955151328758346428042864420727395217066031306206625944544036597630286400468920468987795695487028988950470264716954302939686148165492183409745102352603321872959966658782841223718575712433580460652681138241939068063304837575812258981152036796341022275177810776442130628739250898500602847829593969202716187042982397952764194517370577816451846561532966571373547906155727591225510753385696847483318561878307267727214000236654154078394115896025787284889324239148747938414394584024232434823657036210277797990166359285312590765099824059804720038459839392402101789379179477883865076776782423255528238047405298368136640718056496633254384371979530569903682453429022963901673906699441648903692853425629298870838444841691308369454660202082011598918982506258666803105775809283210475015108170882289017748646525254505272121432446826850654517667744971341244545387139173438270974229064703567037840987907239735684769724039921829839866874668623143324877185063971778032932677863035023419037424845767968141185055379695663394913753920534207027293231255917864782531030246111815605856671232644006072645356050436970386366586160992047711152549572342365759092936126031675801932705075084450024042680902064756209899471092814361320989908494381289754620914864463019162447735847484072705443654370947019082168950595129404813779584305635673655391884359023975993568190348371974295331615866938956175261569619718653182811473990726203121318823106687138930908092392474560526240557828180941420704595407672550152934955446155541947423670840856999577655101622294817674107615427584569290584280183718579720326456928220029014797794493707299739670354884540791540554526916076600139728786610661842103312186279469195930673486039199268577914685366242982986864368021534379843991633740228748200125430710179307747980870380962361784049796789032827509805874164526059496874024896857040405003671601611736712700009017627611509111638853600908947262576697996775578368436346914221402416404806328683818448899062812101087996850094653821741408810340642822718894410523347007830520588017364195150872021152428137779354883279018864159460490352441927927998915349403553929817910211538370234765924737935953020191937942894346288728049206845239235544182144165741705838919721005793919721600148658601017973163890002281016256076485505104924456813917763450383099281756720443518377807810834486756176201095477905225808871345454319130216977696410827150836261857899682291729068866549141751281417481950550402159898314095986678607232617687438332191507878931057103793400456215466137463534965536670707064461291400098581698905915284888461889875287048362486961923308713027990979353506266723589487801538648791538788798834049186823126400850616931431512235390256633742976761879883307909453491826392551615557178425315849284933817267210631939116223671835836526656730335248476367318787423785176297530546614434306193699646276369003379561827533947400183025259603503197967179383116700109763383361801006415731550985887527036068436074502576102662339727446950327799870043001589725813433459879147598812646509989051256985553578478505104029986785122751810835626420956828060996077841437675465093276665005096759947476738120997925145778823052578123088543013185564618822344600409472756445926090387283604053210104140494808668426331709734839601822189657139312048852045903658956113395400465110855350180189255560371571956020228313296163286370851764866001572364741036770733953726839964899962405784382146959231497505698732906837406919251313233241042593653209273775269437671172979991404947656561847187494518451086932919331513424152886183277010215213158064170041551695466496894062433346170141049981901133169928688145278904305101946765914598735818840181236055655035449315021248349146867005969489705957122123003295307292746816466952100350155509941170514992962661198999220742354507598970000792034116113255140431000804433155874134892909205418079155958352505441714541036326144444465183665358947536897581791584531428068578625674971533731136576416765752140576699566548695419939456920860195495528782381761694779295741319312445421124167480930780106239322528255443322720756772238499014487159293164469563211180913356597805625814686024158873493674769863324331612909508219291658980950121191115345326770079848494564156457747737911558610021452189855907620234742471008872245314917058064958522180773099563760103004402129466941921760794652556134344341123825207514060873886100164388404284565299328929198855923631635046211904916629880910310157754685538251306756157150483233043972480702226747894721888051050075081271913405508737102135427374460490837869310252895669354520720549596566618680769226657269435395714095097323986985791857155654720829781706702468423594980774076956415516745027257300629785725064819549217465351112304514989707668655818354025695817720680375939505614655153675243632726701890460589014991485881962112808156010999501242352714418351218563927500150308966012130901221279879426486327592837695619029760643885987215038442957352030241193496885114416959934825607901187709106985263450886473230959773569445616730924062065795959452804354310113865468530709959873473447173947364971860010322845914198469249343304379489074729622790612226886177175271907423875663697081253982635747039625911605514766522498212125472712940105276081417433498507936861260012208308859371101680138298403906839167574215811799454827191722191016566957226289958671286888169145870882808214782662722042247438982344257298087219222824047745277035064748148738060618029547789267365029863714179955111889824869808360070463989714793189539625945277355228635820760023603974763046727235320215887206549820624586517813127436027563534676888130264678512870740723324547269757013960088512494678643489921741435603904552810988875851139581964149590406734693071178635950524899886382621697184715704532968671239933859367737430654128521150243906438114471518780017409213896286108275371240564196559551643614173303676843312663556648312480747653472841772633223370053645872527869512529774446562917429528312953476869900208744485966680707162640348264177347378007819550070984429373174864378784161185018640699879251412093222835554547955527843269219157963449585781188136713524621447125984502007543587873980194733584633426681342451393758557817484926522643523584240949805034891333544926676143918859340352417545288275464096445290675650039958050409396201276293127071190185034342197572834367889119060270147511204654594057783206003967312301601376161109994343577262131116817376202488117492268190302123592102023666219649483957509832525474285081461566138521245221571877678262891762340777789051012868753889727388354498871813680832623162507645243208886822116795837697083942788503904744413225338313555566768538997547974424964772311047215867051030864037618958812686556805488161970953489194155203479284165697214902697999963590202672673677807799908626563230024309710355629965117501124166929382083562642666382247998745317643695606925470403306384360524892186597823219977007196993295626556878444885990271065960780560043691765818743784974960821038951728701976166934701271885457366372988700998780447847627613159037860095283028231814644407327978845295783466406696155308698540545799457890796951081037829783481728991573858999348009589799035371350445769899442662740984828885144266057277783959759625567101157239096920012556191678204253322234569183534482502514765065168667148843838200482417151872944859468149393475927628270520837316908592658701812954298134231302565492752332466211941525737347452580898293248370899354489457813109740674402152984507241385132188572167374367615917897787241017418563382674674969178635998979418285296223189620939143332622733345553616898512973073236516745729295437882222417137651522726804816294510993009616591864640839376694880949939094443345044677845647054783786172644459625163385456802469821825918867955948085711413727820706776479802263866111412977350203842650721093741789610361519230622632209211244465324447699770831814312086165824677027037010366173192969624430042906208493621456515836098712967722304602983959830951789748037848938101185103728471546300635388747025068639157473269858030260723384546421606737489676417834393566894599761302671635037212231256903406555781977004542111748110001779345996802693586754966590434692547295653124177874426983225199023371888483184755193127633267501455995707747446883802835289208162485219121394992266378962802579440128391657271279192200064569239865520388697822661243855197814282602571571085399773862554691724882932608405665906280075717392565510759845515766164354489197698465745829437023392917174593800850851408215337113970420561943620719179388209002041078871930296689185208027318174051866398364204127482309984928994148644443785736295002959396833496143730862813717178808226659870468046176821551064889540829608059074402847792594549163610973965806836690267643609427320737612827843846058818249548555703440253882793972512716624679548885035922044876496689312657651718686242756663089856217135117552710349245077276915571774856939577078348221243001214021145563848560993574354119381366366106083081913843123328950403781294756871514850960221098611201969692550804871527924920116773898209699551944538524976325812821757120461839697762989702850000610185082665686220966983945260130603557160824721601296232903136842287224210069017139441368399967054496602814165179308568371539677631792685673579083952270482165844069348465684295080016461578204609338612221701104488461028290832433264907742773333375060644388602310707611880638032068190055599636146967595034551451754162441116325410050542740883040367595478313406529098401857109423558336034425284115392453419289645875094608049493460254346904778143377987799670425886925921657972622268266314346429312602064219449370705385615385575944407543235354333067842317684984742701340967043190481410381045565120924308524059561285637951371798019772065963809025531187073413259921002543475782115918713334045499764424395501114952604729263388051806663617277995122476593357529548254374029897575143948744550235891974555865099597002130364726121780708494609018951178645159320263279072398570847143734940324164681934108208505349051239394032894908493083234215324710588970839054262268924435271328872106740994273294300289981269053302144015094108097835139317863759923520599406727204557828266360572455898154256875176386725332773732371039534945938863993152506909071456567618885713655918371684058367003441495185513259978526429540974939261523005987453928418503645205365295159027769029802644960556980354690162385930380626560378793727729274993435988498565625476548527638200878278577199712203552447358803481655064223544602663247530677877794313081794411903230205730784954801145344377670277736870924099472010980660103419461709607607518993560672229678102487865783050067294193622697602057701288112414357638587536682902329643873719071497777219127038708813342387681463849318763083284436028602244802173518762658355650963582284644879802123339674281926090650644837426527020552309732722710627003048613236898683526774708346082754078238503595561458387286210973807547743939007541426383145077389491805775752630460365628570935376540454380145033380536409282107519414386160278133559616762568978041447490465983561676732750960667775582354107923704225355405072341294970422663155435148518931114803070688555125496086118052199849212508001024854434129927504381822824436338472283835464205208989724442423046698947857250720712180302466747860409391833434026457342705782877195965224352369077027181541594893658310382506989939288099080740979903821394803655332024461106084109119701989802723971637888048564917834586764128942965413410749680722716275800296366917415814774459424723264740657063484768357447003249043057325846098807205888185954728436524784859839135091892145983266646710208565836604385583275583204459640173006338763821310856781976626018073656655999651979549877779887398751370932283667724800565282313480444768108469502722409395403584359803330487489383501996275870781678759858773659627073668584971297451154621001225447394167436551243906917444332112300067282525134252307535117429966869888527378715730307945989780111747473198260187965268238198013020236922980521623392329428124836193254334254248953596967306548400708828376004663968321361285759237669688229903363727155209445944754193990238761853199588850233837792542127457990140703592931998223717197525827726304970626112516600301441766864455475125368358913465105131200580159614128007956428288294036672116725689259677627533163933677408014347658125870940199035194003400138244801991791637377221944622482462412107966428778277316565294119621148832981563322277997838589178337764572189163162548730992155284580580423516966964842932688454747108600828560827247081511151034639285808146506429328857190650545464494467466000647137130558057684650425479128019454014934097976695697937010691415800379176196011989851785825001745990347414954511381924287444095239048866435239598743852134651362939228698348260207743127830267511897836310268292371709223694831394566340243123446405476886992492466474629352921363267092408631509388344361368977234683138101609969596965086769187818756452273045263773597248093045053389789065792464636895129656630356729635117527263726505971203120925205599022787044463659455231166411730716500240937127210583662122456365441823447026031551486008677707580714140767788302210572415637301045143170574624767819768978467226294907636385179844154094104494602285209551138854663559360234040278299272095647337632367466610704941030728473415254024461658231083701712192890864960889201291083703336735497849619791995508054423723530634526107594297101367438267559045900603149083671005198014135438973365154552976928662985775794126852738099327256619822468769372266481698105536683926567601685504084465536327817183632300863590237248558734616219524800566974900572897085139766136612177106572142345181367011783487910919708569584454734142027101695186917308276626463988058551751952398051120118671146946707917828650295769343459786670546049073024479069896306774822658250979325985254742104650172862654252541665951974515245889426426463134734175983090425328207775635182911458459015988663591824375281909542698042965976332151998117566736658598514251638622872451453452935462231953938630990335974538533867683269936111241791000928135846957587817681134601008480165785541580718564173924389698768262438364676183447032259955640505295488719689136963505342177245973876497798350874510024383319923206938832768547769531320126896152303666048246747944633647602515132622336082735397949786209267276000216448017571943474094443174050069129644431328838756711264834780836685033805611941279774446862795129147795513529729075678602682643448303528427488223174875147952592060653301281373227281920341585990611583226544347500756688920923478644107291213539401974717360522518781020448125082308740773241907087354656801480816601276173105937557469878398524938438047442418431010971389117159686019267671030400300378638978478978810526373013925650380114984423257775323215814052340452721644016083982713492576479528105655952048025881800065351055273648407974457215471845357109490010778944249575887057860726880838777514492205364341913436391618531485912386331272785396511471660762276756979780190268525804816951341805810182731590437099364496992501927830268529560352703662176557613320739834209108750014430519584955177597000820950531305773990362686952192627921743065402136449233524137311917194936500400533486415389271712448479436182341244610300899301938221005603406067837291288983645373512047152493312943299577860996779502120220144670171799199817389918305053736311241255874865396411674521213773035564735210455005875906289909076292751923600553008508570007355845725098927471431108242829029624315061542927944719584144728491713100597050514912679572896910704322953802279049223489737248160116058527541382765812952530683619861914399464647674974104368357688292202397766563382752894649213083932665601106668858003389994670873094742791844046937619182866774259896200651436732693148654014129180920472387177466316897254793913963585989086826550595317767359945882099365980413626196768440134527489296773243397446173833090913725005453373627838625017489282638493805393258529519965714288053693475001295342409831511166257159521745713459417026662255465426907021169894989621633518292827661080697340466569760223221517593448008736077740312582333346805372060238613602604584073059157944409333256350798307114471223453935671641411244189972196206045975054623074865924480895102698152114750505787568549660324233042571192037479261679484336173443619362272792460987564319427203908542460853334788760507471185329170940185686298119514599583705777375253400524929663720405241486446163250112144883618277572333520980107584807838639195595820997813753600949418180186642009238140648180373438561839375534871359898136903297974467037097132472905201353121728425655590789831845530222198103764376787102752637259001762371626201490078402368686112375278235029376444064484466222358602243952055358500227324491631787315446876445033434759338357432619769144558836039415071144481949395877811359053776804120999100839890382832944321791572909958398678793982377174737891261746178577383261832191234497281163577696718408373039905079347739016049805780127238841524859197875268671916144692061834955064632297050339431446344928679570311084698428970232539466003335892551981374301525315457529872836720266316893970585677293590732360514304538188034206044022922643435376962414543853788471637105103672014001296942150788864462850871257843483718284167055343228365833429352872656682382745174929555679380181718446886594105723462976658117897627338896141636050751387673297961232111653680803933417948100298139400658997646445826794381589655241790219804103949241865143454942918289654417441691168608401245946370594157976911221108336855442680144309213260436188963345159733955217663373707000213318964017490477028067501338903643712565885488750471497016722358464715583708656326135810695285872180983696295713309820832703838623708464438083158088132732294332923811358226707248775906976045896669936012952618337325949875195060209877741653110845653240684196070746116727854124769113264802930386641876357492682236644514756615782467167127118442274028841960485329064935661583465166762105000904621271162312767128420528529001373525638812492534151493932900470946455395195940718660986909731556544516582196847367088361596929577491201572192674272795053261251949661800713001454302564138686921800396578979170697760758859679399243194059794476159637078243712739347322730081742369119921529537706786649128803677840234796058352933671109287054057186447955815128671222442208228859966222815729445231264402539967635842814404946388316097420479325996764378706701362638152469086828945404902657907445925908142714796219167527600461623479905050414837715482232980464803581319815747147627663051531127507239997266988103282732324634084890855464801538763524834270359330330042643533535129627743871014633740331163304052138918958686200559417871033978454656835005168373634025209372793601514243044058402148316657780899037492655579573554454092533098070315620808211707383042634867783340417884695304687914344409874144353991402842928138816368382492243563671314509496139840842439253844619692081024356915726739936634717197302705227256858651539962599040573347429084245574247874555376642694845598936986040793411387409644661347280886513816595361440180366624433872116087815374689590797073001988110219587852702061994545915663341543616340112933930617375652722686673687793298639595557983593194873600697729034007500322860208726732627911455833291393684978955174568537509820501117990835458615775082123617375525265464231120765626670016749697246683436038251165889473382830068999207880921258021370755662022549614362336989757515175403052326387228005193662304419092413165983268487593257037898069631139177443279487728416677259205338760272098517234523587691262602955537012042050383668062918939744526187392550031934008316614478786281651687692062973157123035770092157472614344897619461343189590743745700854235305675424982457177577732576959447918253541073736725045603546849959501089635140194599204189339763753597139706257041120467258757987188869674310029592906651819696869350230141694736459317349071146346330980100715878078468234868517007367413666976510492354339921577710474923888731202887875412699521107955309131809377511326827123119334946840113249729089948660464783683984167535152800343300173581594489941394157872182662597076602920800058748973601378394440195127553503291071964894520724122445101463941651460229458957846047897432292495225022895520395637802332959222725969650341246776059276806976135991089230757305789401500676109807248903763124747026522256955784877183753244686635010982285654009154124312240540439395356135074050133052130977976155501498197721225664636123779228988415648387531485046008881015994973866462634419478139652558883695091796456079276069552266134867370935024132116243103460250688123927519524963631718237549775661807719970298100168814188466379031644364023474593417726804138867169029888498966228263907798888412626288884013620944755855713361478980487767195597226235755354037641194488268564692835592822604836574673917145898343040944063081874113642294742440447591590433107847006671793414214201227278726390785932033224052160577412617553041515374930499037116512899184510844423846301051918780993235761083921908586760674277397559334166513400521062519553755813189830635603831906217591106296101727728179323364311603763542445428325597412557017044272675550226374007426097664820494867773288643522861926441538494840260617867968473090128001143303319876177526635698240020247295586199987240918829502913764540332237694797119672029868379894104966911474075655253584364041199111207708132337128702824982267745002464100620121134160091798660583718999773643064051623312719268276834825391646425527025339592258976917163551629036153960554303225674225533569154847870424210871722567253572703597371504516043673590702920201367431318718626462072455495975213480162439138559415182001614851588364443280732136622704583129579891254656001982276837260913689405848832604824115044456136752449192557651843997132058473363061759539161175056348868762443222040107476057184252933873037870294853958580038845457197488093840824996207899937583157100260360570386076142335510400350995508433686385893229260069766925469106548703526435707362381756636417494924870168334340199200792327039462716911337965206051466827612581981829611128017404868727729935140847154284084709199439597225050857194195962818046775291315425434742004386117802348625144454456429318969755044396766703521751883276022832643622054266235495344501236879715113778203013541172449856549410132735806193106401031576028012736566520405160594194595048005385960949544119016177080309731983532046410369705028988964614066732112814107575097833447216260785313620186383211697501889869055552073788245538328837594386402868239091283069282917994823640265131883560133743683913953595685079035546867655830768056974557268348497228147052316845575364819251311625629171001062587373133000660172221184976641253512295732401414107913569331425130232057367716249785417642205335699621463547059801035885564053135432245208787562084595429233077266467754358868060259756050226574756179491897062590130790454075540453104832594175296465869521790422501575847769764410514867547749558928945918393610120140781578569314345879803431176773346612087489394161788915518664804538739795191226061751275386212184747786698327247598667830246199735487757296610085179773144857529835697190702368080092790756314642085937642117173976706582223896411473185951389103444297737994144315817941060682319591504629059899896952583756377540335860028932565807136188514030320408094853068355646173804693833542632390284332557899344338742133532851928829636801994288187379288238865650355549158188927268636654064697179101041350156937673766339306799689078182708755995192072295461115277296790709736407012992884774120261510066309068933330948084684213104538443150560479255058713712935034971337693903159564875671164008281094972775200675454104145929835446512123130774358080281234328064120243852945116320595301518426069323229384307370322862946240657773244376560232972379570396043343359723479309889866835586055081986872059927849222893468865642088914103621780781685707306583468034004685907303795233291799974393375463085510580110864159982886392512526828356425896207984241790746433279350063294091949807020597568989364914627625770970052968705079971962686120554485172027258956533508394655405823706534581913019645043999911537496435830895331891406242193234206924736419251206752592260557594802282485180148345378613297230520434591491358919525546198228849616438818191806600202793018800474154955481967985126176958256221615615177318833403175515926113437442300679571006115242645769164908154139287925878213385588479658585875663882388631060055944657605586186493529969882055310356790605544990452238812299065026274102742632056219370464443041730761097350541236438311081959066498590220054750622575021215698839395331267859602528615500517023454096203673617240022637984957709599200420519036859809373895539577300064029404645834529231431607636556358377423502917742970115907619776440228270471065558402931462956172686222419490385587284345767867497842229331314994671690106237822062816298150283774711061082658996448587826923679063094223498151691082770846674672208294504213109513943072588513854147524923035766555167700879781598854660453346697885870916943806242850293752305732932796666550979591667750055650866826943288192073198450204180518076461120316365106801638880522262490341248769850472614871144182468881012228767334144534536770758572938106552297199517422004023721584612759044856091139276024554526736568000876401233206661111608618540001047345303493503930018921669459396581284142795021498631447171653066450680890098335432253181339727814139990665201415714866946322821208840377632617796441533556431533943076488921582133225972937918241531123353646800530653849860272928789650733487441724639008926879711631512230741109768220713363231338827005435306351003118885456001757283479683380043222135477617789586166475829882223055829986318090164871085835069558522474272406398857978205989160260008364589504340409233673049029225980474232841912694809753068222346736234656711566483947686935482456800114488241358919170483807030444953195381917266868304456980223688757621780169332747303621500560796653020890961361310248350738405763892916164380239080301977658010224382718144611148852645990541378688078085384209327925578179259063072823384054069931955858509871953166402417983726883912133061479507907451685162886893801065510522088478641579042851376484580587350601689952553629903010797841048852780525032469590682728346835952572969239998882017815056490934828692917999138414050864490628863239032183585058551515857031069034428039398600726061721286686495892010679901529022673204204256024282010936177562031449558119764467407885407997556394831266112310286440045763685443131991788513506933499959527931896459782620123681640851758702373533714508467100619059306074168770542345144148807363462879956694030954530704058575962630672693529752550370864775091363076752704123329819570085305227554795133476831610353303909469567795099161956330667228941043777571090369210130324302279441565095989078280925095913727859276754968622512025821659814825153916296102879629500802758240093508175675536885654000932848944375218120051797641953939226730906667780767686339573869052851183585002008928835528584904230887729436617571359565808371409123658890934529674227713451453487781367507159248033512506555360276581099831880703599234124400946944967377528308034058468673061020854403966892147728641580832264585594915116159814187706152389998144316858654202501688955832288293482718797700129956856926214122215420088465496990401134532435539571440547999840805253910589588620480281977695534770620461687770037894583650306728361841019612469193318300484514462470124073415061152688259299500608792435247467913704180870826583770614403290388508493063022544380913161275246186336000887962367238544368449484905305206426502624781085631469999782616623483543140507446228289932711604805228930312744551194294339935993666008319846785211331179087197695388549168963332231118969168946941382694543840041855546017106887307629911196180398913597068765026081163043197103104388180095779526088839628256870572107521658008234995003390923705564813056499175795439323247103478158423951903982911289095047334283369184551197389393952302078847371246379634182751040018758687193709073479820231293421728187915608263013285612150769379160473018139596909907125264903180572410050345633834520601134822361237623755189549063392017508879497651624283100436056095390526843388712727151626003176596667042224424611683909934337264534385302091059922961514467335559644514832130781575894046214990400269600807924839091352924101481400100139279235400612833415300445782836976802681823078441266713226545474207955118229217994353560088365711257279964190029851408064800397083018594211600541972792245585796289291677304407087480107393306652950011361964249021626782923302807721430919674723755848488718841715564862735068555462860596589538789591548991971704336776550534530997818738422943017559464553096774926990370447959459425226705865266985359517271745447713202289974857568577138486027994499614081575296879993306773393141993925355083254020635722037735042853069471457905495071178583610430085207000327241165490623629985237134528556579513944344650341777477815436265262299902550243583119742578178371984535869211356561586942386459503229992786093630806209324015814859071948268515288893979129025228785972153553140141730729515794979432857352076541297711166742748609435109470175642283262632650882768576213172073524120348617961147779104697414700794276762488338747845473103846647118773715227000518666056249372761938861732310002705369910551335457526207572417653379596479784039194794310892537150400198359482890526413913476795585761191498031264531471353586430754329875538429456145317294113608821802279969259842579193412385537986475288852305617195494722966544451758327967669087748098993307114538676996640772831666105932891740093368031650956985641804042862595194578016850364149159871976010405916409737610094904174643156435493930508067229092670910936307418432806781199112541580563535784958660381633047551432765405442784977299752531131039001122218753331846027051612451909989800841335450404552684048993229217234045200994867163523583663782471352633343560004493451167109885477771019611575496691609637687901109319161872209065777506016802279560876244543908969137930257689146785577229531380941995178559931006987903884442069319598440780009795191328444380922888396747602528839597072917881852488251285937589880209607391436036004575796346859548686413977250475789087532640855051349979623201019563300792494638076065430723757107724482738066009058985497921659564005445464578022277567220948856181145487974501218429398119118930581820827357049391075412921857597039359646841045433125204002716724297640334183301813791578001934940676464063247818283779117124266895275915970873563423626278230836427311570779831877146768213178975505735533885679386084306363402389392932682506974493877763620705721253801554774914421827328706081646747513311694690254724900157074867858765733793899627745700365573254878682831072089725009341010029700627290378016231484093157702797364232444268893921525967097138178751197287183944975286310412436485346795636218524454625276293555353550156530915991226561060221856708110779448075946549194084808428101501390044391499822211910791011790435780210459590844875680396067942099341327310043099668581482794252275422481770151300209639914768430431724524116880168376580816278875208533833376078885418283698351557360904972302429587450569012101644363227740080041721644998029366537145325032355742183920006226658417603281505296867175718389985582703048148463292083542972978881790290860270162221961097412770260055524617282126312254453866415196623603027726815403029653378748201644876348062288634564361749653253905102262545444960506449036510936676690058896644984735729017420680263149040455299846510310593213155871374939535114994220272971973122988882125879521051182103856950939977874888572558320267641688901434804035864197472948436221905313387300243811656838650871294510730785327900788864062294123344018112085870295427731361725708882198422395135339892435071587799397827016273319644445466702004948874934758670989080892077694071650254514093834416932136803826526286205910098399857652907654662595825801439315191980250542658753817380948635955075754309456885506814554424346646827999133953868219245621064640768022344743818026213272741133817672745116807003430845975095703826119045147529026245722190610094111504181075939245739344503201263363456336608771590913348096453819016112498388352620546966410763599792965383402717813418488295116719653565921666676371990456113322157402068580072224984077597207979203286351151569383912453879194265537914938023385819774395509559376835322636041180990675730505471726166933544835436416006885043599613703952825798972244773358978699059361600283503607405592263769432704285853274164672632857898065966275072405873940311085705970204527820819458581479582100051018399164734791673489720004875575125737598840972217442565739908416260648787318597299813460889053707824072847841434618755448502535483819134042660335987308989011773509655235212349202663979925798008901427206799014766146307687044612154300572911477829546340715296470870273977418627794640206446746386988892599863930247193963134795163502580810964145283663074465687922184327556232688222929572182741209148969104212795489877326066135315818104532004955010879121964209110849357505464644398466877547538231635787003793644161079390125335243888038574921927407377276214890787674486115255757775996257239035070942961656257850849268975309717905152886680162892504817154031506554098646846797562100916217634292922043052449115467461819067940689567864630349805259710350488402424677426076519143096287740186990094252789991465112733355250621786224161042373373359802394271154089326198967895479468604828948262569303168801281864928042719654929564173611673134929584370328367582401357230053930355991918153897363422350424897202606132060876770658738965481414137354971750205079051911793397058988874724369251852619528870976781650064102040414354520225938402961639374356149281367741065781666522799610884273214663506342450601838996111491487083463163214811912890249309793481826761635863845141957702901444300359955410334491198757891034113122240140527991736177589354164498845465777888909733814487571075964963086703081745225239670085177882194592880891314305141904689239298211717910766355081688047898738863795037495811838995607784918700182252165064291423665486090121971795038794282894880967399778651351530411277813948187321473002008956745814243388703440931408371778668748784481258199603548226591281276844388660566258141104908702909502108522022803882616005979234415666923669147873587856400525472998633030502119387989595312398805209628697876074258296658530211878709439954900605236222200118827771066615569655242960495100140065780908155290989094006840665978172256968240264776359415427453486287956682143451341475266982494682254831985427037228035142565302545137083751044736859618246579413890891073990716536332247674538460621585633300083157733034310016082105126087975063568446830934458205047972482833800227139940025147663300487449573878635637147549664791793283474704069216287027306732765212937036548066637611157145159675536201118615777004443152671233949844895381193578718238162697970823286824969523753750234556984896456765804088295824792633613010925586934485507665411629244119245356847344322041216964071206166708344093288217691129191878628357935733886102052643944856593143125651060269669064916401913412575405138515601574900529573466697246190317778831349361315773044022773094456838285463111612807875169507087837716017847903343566014781431187288542727783335463176394221182759058060461038222570496760942511598932087867077972731289489465178144271450420941036873635891078308854185261114600260666110130763828397684183325257645393448155242176114238275039037578526312874441710503453227185408462530718606618535821467539553522298844728261076611129924958474584771384689484711305394616269741090137434426799324753148815560261886615345462191170831845628889912233956445063848595597405996838228922491355096907901860567461118037908405944788118358987205694417575995965259535191176632849089102134101596610103136732272745220792563944644009761255531986442858290148320923656455623105081080597618942562780474860471688889243462181750168718039067536290256676540712376144803881422817292229630414980874894597624253241627398047435117647353429448894401128668184818431661262949064985310171240024017139518475367778469326816648457354066006866460092313238125779968855665816623395314167433107919998015116939402854404710472729319183682536683062962265548568605150153506940286272996630839888514630039048146863726555095276483846980073757266040109162119130886122036717249479816335986828523708537198451623107394995197910832358087730559743283863301180139300167970894848797619660881707815179083513468670152688692239498935766868697787777719215369497298842981218627501943646488990458198256578621986890855657783919489503438284024207948520719874704191820996575350013625594142962056246437269703060217386763152582643448465876051793339370343137918792787053228648213531404690202318971589604089016447626726455662668915202581038969060432054301463575786874296644525629762845783935054963422043981491899173570166632064376484706378354299259006159432872854626847629367495551420489485158994197799280310287868727734395759335374725299228774545531805087283533993696379584953191358809707963133799954901457524233269274675384546866816229590497075426171772629695420651468252347202938168672930780636081808000921167013518781079610178080602749900877346456644003018638262470097123920545178922094617397782716748921224910211625939657706846947243628954266117866984673721031508087616560721111390561251959142142391426026527458052658050914607247784592798081933014028201075503150184455461843004539079675868999406603728132698217867218824106726888913379619669417139671456404663073074761360885820778983317636416750741650056278997981399576230333688451764021998663660951944440622373098737788099815373417765733572467578827337210566739600534685774831213442990407980919014683664926218025156611373937616240862132049097140850971187556617209195026280491243046639052351977823345063044149665030798532578740950775835949006820204437428670405070168976748110169836941534714752881951450842227589515277607529703116711589086574779307950769025795887335389101853807023106543607125729718226854094946499348039918725049228899730126041920142730554329827746127022052670004432353960281106060628918891918496228218571745721114253209605164052305264924236960753333084897567449012955305583493671121137630730943367634790751605865772393328850327554662958409680838960713186363432476191432019367942605502701916646579430838735542807127243246192678489980185192960325820283540876145775402197004484026185160365992031953269753964879880151977066489522786862393499469506399244864632349586021312076709107020567782767334243609305959640592203725663055613308217586468768669849794277423630068695337301223439454528529304776198239863523853953100545748290476093377044349386319580144584794862170281970242352335246582495717541947176837287646394152441792195213937935441443409993573923387383303062692839897651452066978391631674125265844153835798269981539873744103456790191784155374388072009016583580668726028035220591468896946008578999124922363191195750049298617979516263677871067537428421374465937104445985084486949428260731551277090306925469523348808590854677033506453569454325401139502200633895145973419994732110843582357020570664754446158912186634278884416462845931783581845230375304581577427365792624521159221873269722603937204430804323351208865394249068153573710891352206166297493974831762351197749255702548702236377765407052006963375333788304203420130258272774605046656494585021668381626178991254973293244022349218294787730211192692098996251871121557254010254744861154905191855279239501988721216135694744728478910891618707273403781936916473618784548472790320641771607554255303949675428747379902963144253029673400186999698029748044437221434903320044769191269177057416089190321331415169855667296488028022220053119295109219101521107627248706591992424221724628190727398334083570354543107688679985950287733197503361885199133033706462338251615568310911642705719217493045700208542586126180090167993729074003685120950975730502047246053465650411849474014404465504634441168855748060797495758008113752634959073544089454081865482010313601540083407197071013042168358781651308248361796824728255181449979106969352835475028207062095340457103062764429577934575964662968712510011023782467676288676260340700942799621730720713736834771395503322437586518811833219324410344134779455115143888712053999356244503985378612362583310308015680438278376883530877389152183520179152100041217423451857192679496388854588012269768077202077225196009966515422868108236866841925035493783653776315078402144747636844649595307828008135907336613774341852194499936464053076943421959044169110771196780723037672112268888818875334975933510207555262912104232017599317513487574051529827159668218560129675049584877042304933503827625868920141000241849821071340570735336283986913368620687085357869151130890226315946950126048129872959635413377630962727275635152111565899831988127582614720603582958747023141038532647271439311766537885559042504902114125358875909582987080161142459414978044873194182369342799155022195279263488148991677970870766345759822179181185088496409900138500215937738575540416190504307355881450889751241752413566730991096878053282476808844553261430053839616759386035977008688275317589103149138262901114553677507567237331783311818460882491022745840908825947420453071084453343898120102090310478790906382526292736477018212173382327162309168796297048810835683336063665928537075720506274759120961579416642845904477340408980071668349232982159276237241455746782546223967889906361290760195387734677031007471153934459041224546433695404053878482829815591106284431011311978700035701621744139898620521101509132041074853741237083156357890063882426398541833629709359507347910599297691781568073136374242202314804562120250007437252350736884262123862436740990073337801260414971658936682104737131815421210106154947917286650707324208832194143119216063049506754909013673935248727974622966864235166640122955321072452934245291534682819777737796759003406410392488143856355276201034507667653881145602383212884539574412493222396041233273686005407155182978006837889664984584325579837068480707332997572566800374930061641800598627108092633418834758822372691361027099098123618956165044815743305070991599469146689700959740556647123194937764502552883155461321713202497975311574728762636889681659593216191767481600576088499118393895381762099992292763404567978969012077604038123503646195622223629235834540615680673388028118951810989815150864913549728792485930817616778990006000469667887545538951991043932907613738469336158085143015065384850585069166616317345357648232714337394152422297450422159860927064381942293124105017660523808788982336849879154379752477280303387366858533780890922845232404098518186856521013657670978632393575335956667179356550250195487767706587048922291297328211811582834358089267161530828499698059366822277964128051258381002495947375653885136586490996683122727205194642430944870239863180262073205956827010177436657927954138335174946817722468224068158506841271201899076028544362822890676317127080498166466925389891668132194712782105386368274312278429831568528774098575137343343912795514330183803089972811849968603475475923975874839726038091944661281058250694045198262232870211211233172648835224723202890924524058267581367741074733509035302256661091316199375334551072669590637976969134908660316740801854165610192544910287931013880766394091516082905648713194330722753473684306851696246031295346920667174799571617137462941785004877480513646268450960301395041466917045418321517720964646677674821106111669580748323004943506953199804937275416730633832484210205032202103206711745935631020249659486383831548539239758096653406436403791873670515740313844799786605058255754374999504955824464492308326428593534131895475045132726837032340861959936483331772258982163759293616820197910348676526417488191925505464882914636404383130917371866545461570873399088452415856017611533011185518758729050749146571453488832809935091082323070427483349167130985707344854781677998970935182722263317147172558555320905308295838599438715869352638394545342546598290939974469374279635708349307953734925891327692857092624560792254448230621108928181544804091575958791139386604573776858533089289221052619461280510771179596799157414465792072556173574328300938390641354853299148784057524766823153898758380350864540570821238457965520573282651786952210740997955920681718624777542958613681338777531545547563041774009983073328935906414571503509004715015210678968813744963987984835826917745841736335377906458529071803871563383407727462280532868366244941537638011328835011805076512272692047798201454731399190848296757542683447225169615158282656926287234444871111380239294462448245185165692934034414201388274661847091741290777489576959042052726378215042694632846824091200707043753180233339346857238612283730521038078858459384651609574605375268333037153933183539573370244276150141799320779240923344165138036724139111993444251229585660562120771923605181731291262702619919355578576359966139427961569573768550851225229882183668923709982079146185476977482007128715744072930737339186177754445549208885657830567901639671675110941062810315847703991277492617811514377521599677412880981282193327652216291340685028557193716161646931353780455325336358430850415382279542394136010667005800525723178135222151605486991325944980128013880709750149626724631201646917835760061438303463158405389046170091165576034093755110702204211149900027127336639840477591821772565616999485554198224228108268549273225801289638032030146710390191152893519559097589258047968533479026647363205484333951233662285975011526160454477077906853209662986988010063528545488999716043107327543599106124692014657472503562861652048837193722018227746555498219775301042779975545225331551681211844050816247617150529417627505724786280633972496819947378855667374757107764015170973399003860592009630107499760122196296624140844906002026938162985651831611525068744808754942960304238741453986299205209573715764389084207909334955914658040513838799132998516092599867530738188392453502713652039245356025134263762803921215305796487481774105423415372189786032610764757290751046975825388051086696194379955310149152946529227459518388969020589980707813612485089541739587276763946018956547501599207374368132604843606124636202837621026354213239617988157743669140204896764554919204620615141981108223178833204560296225826594827544306796457999505719000777947678178541017797285304401268728517797831054879096123887046010764214291375555051663537803019298327713099393432526914107068722017164332584720697995582570050900450587877575722941947127609024514252666604442945761464061522130848431615526526191140422801016287091756850968146643226379207101082607783924955303321348319403032469011926022165227998432843502261297131994042703849524361521427603701832953161342369418132460851353229023772416477417358991595189502242303717587659770287238471949892861021862184166525429892403490023696449229025412198250721747039279132917438354199886540524408738404197930275615368230356618400668920763510895913235172559954654019855888856834800373919515393140784354536799692767441657793696601162471097382930773815406868835049886014566321564881946628385572446182579412828173224947659212848039983220027967226180296647680329288873218050672735849228466924444762387072527537216687703700844000847537050221938126166573751875142332731008675352688512546325380330903630349203592725722362366682551264888603467310962710327820595560553791693170932678712283082652096976840848088409282888503930475057741314848411250242440487224797880155382764063144322977878147187121820673367863677409400708725295083167879719929112619386864296690688949033854475754551781922969337883569749918219834027171712021572947327389809172097084368954055998164531510970649335238857185029330750470935688499891296164761673892636773039268808746352418492390849099441387972941645788515676546848200715884610704756863569140690694721252579913446288858878061067123505171682552961891097174948829634149408898878038978257342450908165105249634063384787077241313759825948068786192762573726318901741777165420484519414049361395288308588515195500460824568783238253483453368682873653283395356912036265025569765066168682932922366973071222424740254607103837992289868233696140734616704483033234843710957629241735960062969429021280051237802061213059239433610594603936318476708683810106170685171400911317263519132038440534331443861309789882145472063080743166455395886795034346290965884739648573942125069945833903039958627594098113473821712438047923821300894002963418461810915424997825728137565129284479196063768496845497779388814922510156064147558485781519844349861218049884330140188854954804998632338249893805764768524722172196716535690726596483488116737978252267498710343586610385872270088882464786925815041972914385749426181749785612354583314556761636582114550435947881042844964145848743800510105901561146486523897788600178601468747136111477739724396462848570195645773509767638460840864121930085538010754761785370825668409553042965717919583200261301405393269675320537002248634662310614106653401260087747157272688664059648832379296945200997436795738267528125855143816410939117157432403041386876036983024499582432367526620145805924473279851487690083694922362474431327951399283947895698158258874428071346619535731341240571876172538984816548735038421479161132760551819935424132733913460214144549042269138022881801003913775720212967938597220182830400090954490698776283811268139080564265057138166072701974647488181782721446264447389194802368943156452323045101942163726600888899580713311687023968357516301798273582723377047414708399556769229463008300784523522125082817102614611725198740373672823573840763067365693671165771108068688607865368889774715253832227756477067030679222806071625506253232809792147039343739258550220613193358119899455889775950643498278872089609967986286143885431007910064918941155298335424994125391983958269670460550396382228619023337253865445127089036267151628299991473678833731083517380478042269090941376349474161724476440787585146942190306176238887779302682643785170352553600167765441142077570619676813097081871857446276943469855609470283262973637008835454207959406617375754040492586521666620473220195849492464542755134147799686319276112012312340867814308006837236983393612716726560218800057666956331705341495086633837635898537302321516517722894682780034405066226861542164021735253137508310817438524361890810208553742311607899211603931304502325534665821799210193975305250057353023108260354293084601875605327837853454129055129870174292262662083974124369705206141440753054013090688635397069934101283396417987172839866936908262899016158110600401579963508379710484106231593284229633905907687397581871474271718986572605311382502530153399547097559969118921361919823431384283116236827119974425670043628097255457262934699783631403966272419124003635358346807691898339392335979505836024663874803762306160220508836159177767192135125163909251047744108484116576330572689184209397265267759500688418033829869819146874214234838427960500059814920910324309477390236439691465429296303574502064979551447626471962685414003730238061843320519280576958849044061319786403791419534221291355785370094779999863351515910905822291544139133347468255445139385973060875138641823566869802494299123380066509468371164598278539670590989194522185377033080711752634864670908907107347194177579514505639611459567946072645910183861420302236851147725955265492649894699015754781438097635248604356986404626476371919719015039570165577828556929375940475771802934990764111124620364608442291228220711912112030123045441220203314404859008564535973539291542461447679952980986331702206262189642836672808981750931461010792403222580107803451808607358422971140636894151183646532142166781245917430981386355935970576953578898546460796830521689688106382608383152151483253490349484027861195822452971103508800707063759812640387301714385834722987398960577113285237133079210113348821623409443664473868664597257948504468697873654683470469857205224074493821846272974173321799034954758468426247409262572706039022728324982615398716114100206291324126285085381074277742313433091997315479702492715369606442739958993082130522548188293420360128949268191549695899459663039884109892736787181079601935879767433286564174226610136896066822819513155492263084115188996613687878211739218483002707183274313524087644949020800369345856735791582876987526647478816708981064920237819334173027848936613989465454794613654026855265064251768486156657511908722921407533633063430536763938345986277217810338707770985722075618811447004851782221870001555691654680998729929840730220531158517290222422430238768459218383076803660680282499268387418222133225359591174138321704032247929649105218736589659285340814420708951644776804885644975333830395050630314965636376119165084918090980405249989656352719218684384286214584211531441364874743324550887189549653915971707405365941491831781772811868798491505872274129216196077997414496939513964970685994514951783270144974056656356137781100918209684456517285296972999877947334240186471979699147244047893703427686422233595097169459701947074014678798086185239669954670119955782864048961967752508926678621299979716573423783847932509229508274362752497425998314579435535091279394465776206200127171692254305555566150052268428118175020061685015632517636365808053312213435304667160556345080692610961468040249731501391898156347876976125853339575685843423727526256545682094483831031741734868662736375218713606094411401627522551327652720306755512858855505136883602392152824182263515341157651778191628078367741314806736690327024180842933886534238343061564367571428806029451835965879919682540639713975826443184589267737796715492231467298445324838304022531352775064324725673028893473786440234101892806138247612735227809511279585160148944202263658785939690949319698120687946741428112478656632505363179654150682298831368631183217199835096883885368840852615729209854032895398883691335455168544719185747841056947429643378395207196275360837143820863171544053637106527313447673344377113085630635035952080650426522441628556580237761100314951717630248823108944897309898404906910313352369629932858341287825608650843847113025731265101691165011906129001124859420216121899019076854216812853047262278744474830480775296321269612938038621763940657474664008444896078463129404981559213653612363397431480742728828124399364102856052708495148091030989766338131084477469647932388268097223682377040465425871749514001433330482723404896232490250665853828761282021232788592408347793985173000907948543007439523151918548150560260567794164271736361998177893780482589648100893036516815276612673693917145048239143517741217025230441503249754018092885338019069183516913545897989822334055927710486031978330248699272796725018104699810150807727267802319649546430306982599423339623318565116579434889255696366380249983650624214720773937244375798395921511062601155230287259334895054699605850945850975064566791702272281775005748477823227194662932284496853585704748202735110417485552660958913467312292404513590394070199169563728675703809103398717526780232216563824631082390603241152546479290424420631158083148611667976275118419663618644159942953861505257876151319681248475684887104803642289610076494684745278273261465909565583526667397474355193110717343010976787191246683437038116606279971666058180391103920899890420530329260970229854687546817738207043330470933967270341706202661673224736629981404082062566194920183582129728313982299323542443049139401695226392158431287382022729135195331965325396336295346658021832139195715114028080516558191483550229691532209288052180038059728661074455936831069378717578244029698880942982778075612261486970318426889360998153784106289532405299818505555706373864498133748298958231477702986170446819044903078247462189200014369591679917617337110475630488362107627655241056455418271536527098265827697364452047980416571195811882775205219001763251921565411142169267255563219408306116878186678452765016086635954179293750563877093262564346852967495711486838346209526411756662106463196357197845044599951088896579603771196284757779635974700885086853519749403465538284802264445987197776592264095987386812956007955813437971511888180586865321119145162869892635867468199745207386144396365925324350723035816501886334507966535793080338519436371278692203708184012149433913328027627215783228839609522171572512601189492578766783944488928928682677677605809567500996528089805775695840668237498659262804014825991564842372232522700962216318830639994783580772438252548716304455281670765840347951849546253995310445178007639003985550834751955505715812307625762700376776812994850892777120096952359037279420775279368657641859828087777909069844059899978441154217578745194285050803350634706373147992830727098051236642757654688661966782718650520828673700544593182265331654333969134977193677686817048328115485811090365475381679406985278148494361729832932781321804465923032899355842626555871117287654227711198886879661101844669111009680637951377262131369417303779645322734422988971672146400341036730926061209510600749822508463119651529376325476832980574173460183830608621579739562876027236066423696260920054209775387061282383581081020400535693696455618097698137202884352998818624182532833364200042603893693216979504311081161002918923421521632645144724066970567464650827024913452167736656560716217024977317946867749937055181464195395221276568290280298300595511405773244094521270529327382209991474582590208394028949553309261485627866642516610469968527478582153050162122418366947630263317253435241266330833904185723562439677094013707064165071495934651333567711570197297516247308394890316959284430373465707235437095840640896128032400646557745961060516498082558739215918487278275267164823439217276149454749456943033464567358498888238809299137626681418118775909397669708655252278395012171206320898937289247444316418504166016374895320855350081957341409692652125588932039358215678371272164944291484756530769525487565483048396385824419496149398274547735917337233273645446025100542455542093463565256664202303282773748443062278040959809337105912914103796483188413949818689379595928562321734867543952174474695171612137432414948931177334524797418549659821840277724535733626199833731865517694066643169328945456004277441654451486232591318620741277196088045743717228385945054855073364155895480702409171143267669585680171460086369726458984358732129336215258961560532786872799540238465910708483524386311007770077663393421399149094924898576108234186086844409720032711474475237589747970048938302084385604871633260866208200552520636655426070209887769395442959871060549300690224634644005662945779157585141263541568029420264005205384120684407122156032469669778777564779247893280456079014444735158512911297151412519608775098795583726276687732848797700974576576393176857457822849317290081406424045432211251364267493968364627187946976146992912626293153885928941917175844869817499142026381134235306095231695399794885012404269572010115690701383806454189898313632431364491250923562631908670753747075689556781850247318095716784638319534217233710456763238530222040397321099483457316698551794495281933783951270313729293224196090178749601635233132486528549769813257274465318652937854236598467275101625035748077027039085376537802940109696424293192275323179915709759657659387066433770317374541006933350841627358502429456886540878311670419456788792519100074561824079509665159839067205912602840973417158761802582507477589635073318519109021923516209321026009484221005977386322374010041256690284831281287265843558867738873032848061249915213890076890860016860691887964672524728017775765073418347135227083314033960375264941254309197825802907688332383361471854617567901797613470141578173120988748433945688032519940427285957578329525513647594965018022525699183930098561577140839655199078912142049374561167120823035683047163128717379903482486680978918988788626043438312504531955806848519773646413811493776834874107488453621518322591190173911967771614459673976324174022805557703581610453490104118432086823034263718707527303805742581611921750404457905707718764414991963758350106977679988118218427323402601648161905459410602162070685814492895423417109858575669469261646036463396768314226858231538552960134056360748673576554023041475711498859688955652627233594878460896868665899452215053926843710070286804968108603909614468481406570091444863757543475977823391252952602090876844431250591845273142180578132677063081806909110408845119926119328762792789353678142634498102478606467682488368720902202105532604661666166650435909820250671506639000622910587882934335574148809802227567027393187719069775868547868843274119059707867086227864960668417302562022253205504140320044820043019360494513256223273828503237337383693297641708783093907133878401972350565111526697624111448679747290681141359317653947982995579708340829205351096517163560432430762841428405526039491803231454869438668275479733168160834714691469262755814556929740396038355275096700412351732029680402960461205601600169780887650405801683361218554020983487411905621317077423732968040910939057416241018516402875961607540499277956748508154507719727044902673576013663979884864021982631441387592763584802840757632484704317717730327803218861772956490943474074830503665726532137681092046811007965846604067490862027820924959449631957396202475845637616743411239571747215551067769407938094363091055069765840793391219150531473290545505972144282901574473911690025283732474171590069098914610224480582663486122196017959191856092293402532805374052319465517843643457012030561205966388087536735833970376011624668303453586294789427804735794190788627685822158823714959250260613219389356346778265494172660038174710308890522325482285644315296830599362223475600352420990425742432508421959576134682259430475700359109062417317622031413704352468094587796255505140674977814958563729437133682186809015173636973725489923578644135692292193886796045293300909057407104013861282071547425323861266702074726899283642612417542340148662639970546983969416882216254814521559954669103388412704082123456434731403483347424351281282914549631586334309133423175314161448269140499476044023494275959574104411291442716861282116690827351632975183347425799252630109890181210848778754123197062540447190727459571972208447588050258345499288068240947251186825442310222526486765830990199959815799194632247351609703206366309507356089859769859273091659090020847503889320660303364343075278528826866284124493841918703257689149728462200215563886654305085310619362191042260172166013177383960302717989399544182553093871582729111341951030833475760190602757581845893091599149086083757484974616762190590502630640773305110629963835588757456476659133597882970951997537481163466789931633890104447808184422542020191982019149624758673154917471517072263639068225671084127219329721209660914231826640826869613380961824489686180416555547084041000654751529916140159489404814892685903480273161511260804610957332186515249202554661694074781604653348798734057778031912649057534714501136365710398679001956787133674634601986520784156750491948642468405775860324820160181033393252688813393155465814008827899277686392971375167958135423898766354961311531622847665579176550210154951396866770265829267580332648107280947515320222963273140823060723074716568940854338832985866215956716159178654305897925198015276337537190456711457201913750257318599547138189603989969451451743080259974265221856716929288761984032738643903873146475205373370186090598832034708071949545893610844381085575430785749098615250974270705881586828642795549452919092509516782691341264742156134632706180529286064672688812831707156174086326913829685445668786655508062906374429401992117196004104926583729433339457511725680051908231489979755066890887227037707284593317776989608782610443356711539752248930686705196826367360052421317217562522960259340171829014440156258907902542860815077503257682101335697284974930609356040704493477262262156335987966629406150874815067410315458170396723477979446232806122365094411456990346077973840163278170648659997895805800722433740921814299930806733196031428099234421683175528349209360683759782487052457880946258353352862431675568185798142360478517342760698765025456171639987860444812403133430465358643972080902304903875908381633741968792860415087915281833083106857613097127514269932561814304959688012465208682958115586584750190421863499160774044044580585283980248251092857900565600703622330478795517401660258074437569411646242207725886817702096069910801601406042302988435857249148546015426956767661466033185755710254235143616616923043444436737498596381197286119396655903515542120410853042648112293707222889038746283189162800829298396111920796395917449529926168714914258760155273311257614282253268718208080933106055600480305914578725286035622948865473753621309056994584041122682942807797491242545987839488627693416822524925310755687848432821628792982882960794265114659329331893622125577547714313093065292141814143760388436695544586851951635714668790866447413583812580409471232331260953326613826080814418438733545761977529606196183972127662077536358025526322304153636969264833561407044884698511978889641587113406645085259864262221752073914818264097605625259825288660746419669893443594139587954615050987452252112185134406059501943067795650392906505780575319789620709199185187450250114800394895595398922519652002827284963656902381859255742343938994303875154309702949970645968071298419678092195848378008422067373023382940376699332572912591151819931160442293059767786586432027720802829099890013654667346028661125211670667246391775448294616801582584157865109935953874270354539005899096122724947300378525012930285641715949022422036255753806178992819420615986029392118277040200551725420110149287293006072373183021657529076564218254784452629228452986439925573024722300161972177184342211471714507960048054864637055056005756030192060104836746772279682903448160363611194072873604793742918794589363820948082351770024266202252740497816081164153819256273616089891850998428728373179678832727986776250308610368774284202230256307650128839304576926473040014624075976571976892784121559141601278673326390787873067001509908541261901486734988236916863493062756963436348759141795622478368989395322519085078068672004025714707319203684166616108676208396209727373599490216903962730788232292471776123498010086378055696577288856551033284273761103659815692467943134221194110794139383873957470721185934720383683414701888163016155722077392230965361405163283749986788812496364903255299675913142947748766562172319824623634648252744410967565097464628786320091092118853904077352361678007474533402710596535344041563709904713028110813840621434480031980362865549774089733213687722643544305633471539732801347247636187685406073917277276309016003156189646873951440409497270423816192969277021759890326001560303279923606429083832626818079885644030960235733080573974912424243733573903508388169211896708332509612311480682127860651928971783312744916038628413402038237806365805750703323707075650862330197662765437373703558848764141318133604584329717972364861051255914364002753144519748886505568418220053606171072469611769364573279729933809937819222119305374318264428227181692510830858607644210329015762111773804110065742991864757523621346580249679563537161510048944583017161075576524990983293635613904851982779205155149757694596329195857490558857469108770573000530929662314355566234917276700000980722717977972188592580637655553985119073228431483466945570290198699823916640379003734948042841609606435596660865766803003082450499811701207083449366282603700414194381873342790142545325412002006707118658241816216631660513046738188538866208997523101377923265486218983455209512329953527715343679687410494153350946394647914475374386060054273554518956295096407352364491869521999064372274783611247979981581974143457997022679034122221537897776088276431419822730078595388995697614312310892281523248431020077909065188063436459876664606894475646345260500553175893030463329656959105071377361887748511874095819832477403752413542323452019991722471330674966618960719405294940423424020594343236631128881260567393279924675414893906805049191216237981553094459889857278377919731132451947886420022723528774773644896808585657640604311627132520580799232617457628985504073813786495916199350637328711392099836534161766267351866330938517888557955456797300296269379257530577628805367738433092192473259377175346506465038245121547083825234655343919169634550614509680209159150776728722868839155280842345566938760263511516797568067982231053778578020955666075481639787174353708718339496632997939576309963206766948087733100105794696623020453679693943829135642074656959187419135119211534846351882961928602760467647789539969248686197417542222777529032523572450515566391443496641075550390997417487458676597379898537051582744801644347233126453520986952299450663930522593119190232921178902456175224094570761431504800774891953690655942491719960355848635810268408670208300030696269504297890329096738072316798613550771608648577188765252722673681640754504272884158494410721703162822425785329991116859115575185822821422104921039480969312022534564468144671070009442169767864227664740619747684598811507238028948027683695330053948249055519303961419988668121479013330425665309043498422414050328738268463848659536874872457262791722423092495952860425263433333174801579001621689382909927997414335012662515037068466329919132981812406830131424039948186553516500656502850119714194399731457609316554282090809722595326363327546288888387835602299946483436959750174830838608035751556729045775707215186442316274592531110264305015191265439132331460983521255460587093478237116446219104026266611767988765323364377591944757162952718491111253655507655832274244851205632512006046226113533313986790707448417691711283597011198933172427812380895845266185643490132043555353467896437006717681829235311386121340688217793791571246110344575990698504322798544439158777584634055413341451119806914270326308940791500319580699428495774742996488780501822487344189028405572870862012165254907711240979534038183213679314990955233040915621955150306212068111147351294855588648045736361147762068158893612821754542772681604184143760428949157799119900780822157679027425113706145934916036596470430918783220301508925771337835942900802952872726354619406825649751492356325044897415193493213246591562979623333355480977733850106775324110510588552401414657434224658957616395790097659303968672388665003925198616478941345427349190868819387564618877201340119434702906944728591939658716932549778468087627290965193178051986212183924347309611303854952652946655350026533867747500028920311688915517667621985108952176543178109602511024367243827740917450571259902620173583230973961940869325935181414017826009595479288835433799213185236320805568025199426391193983396057896929556840785219535365350547215852137565591231059038984489155295275454688954889706324322977151424409892005222722489836764244651393742120927307431755722170728695835219362933075642859554142482387317051309128949192555629013070786631170966651491038223669214286516887161466338139743369782642651618312521243540119231664200041838017284940421791077534213612672325964307913403503383520265121501850485417864274761120928550672384981104620329463381171392200837729162536982101824619754944377418172853813086224789544245249354284768231765560639407116907982165858495514105624745760388057833202866769408764151316908410760165384801461626540980560285724439291157615119728182305132379553868085285674419027869530339649914348463485032212600836780585574925743351133210006647530652600361067468542608569185803188956966756893294956484810529618611925798037684790037857839324466926582093358598642877870659601294550255061165560545154002743161627304354307409852757566029833524513572592633300063391152315663047813176568203278414727755146124387940822568543922944504647274395000801375245195688834191920452870630549113537968496174828633263224390272362837625549636478035944466965327550455534530138134002379971312679982720626795898756012359799922897165854556076278177580103948287180069010065511140522195102434465777482645273230644906393174423260124396881594277241114960730654419998277503572149616954318517447640679285303595115119784488554365604556683824750296404147801498235778843304177378350105836218851295566759721449811241750584596542195788601480241973979925844099286885101192701734077488933303902557028992841884088130616748751743353514499029157928631239086397562588684136799461927050573007601694752764371267424872535118228241672053141506379369240353636290033339542748216218049382226143525298696995278457813873396476154554198245685082517017450364783932809432079946834748122454593599308187929578435630149108459583216239646575295641471689688633282534974101468461999757574019608402689198899471506924979045473409816677775473060891585438407348099103633093502277015865613808717884977719156254494458181963815010027750786956392536889000358698031707046880270768594302255214648447376856265332822287667774444646138457213859074505278824245358617250440688804907796450177093933607854752136774488021914220326859643307134799494323430186627654894738021573141273089667963831220320487496113433356337732114757479506685230414277602249960345294302455480881460586868434527340270781644520925014758889281648950166471597254868271640397661475753171004325631045125877597746193434767008319344674878117101202172580812538474152340698118679604592760846425404562315682866777430657368990682116134554904706310207537017229110779360784621385934589143508910242172800323807691463542864542232132232112253672626557243059728355807981292034848565073979739143962060354391281186362099884244874014675152372183900904606723079712993764944668138362232054384607772685303152161384779644486232255149582288015349296895195132488684049299933823134639709697349203512650957971341667531186520147819682440019999098408095187171427780219962807120401818122758061354822539109842184514034960653297829508089471879896906050852014655131830787070013399751777567369627883175196785333573429788020582224191592740013512646244108795349223192219344898978264929245306796331495228954365397212918148090113558467565571440947775861993682312714620258120628607287837451346541998476692848776918287005601918098313560398259722921463754005757251972812147341653553219799096946215324731930290146737981175567628375980658429616533683952716191199503321088489589408739494948581620119789605665272475459829415652438789669463378943781009227707718217636172692617316524379631817087556215390376543737470050365412082290454184801720232236860306407078647572057235444570200849200511174348669414063359944566894261889901248193210119966324605430562719978791152696489697675634025518139818943244451786485585089996126045332311448480250030817925501899366938437653127569863332590374889443819134008365314886457559068310905161389136418809027366728087607119499719922399382756755222461848336359555277854759617564307286324148432885620070128396262655319627809690185157500142373959956683391607243969421965229508331511875994061753337960337452953488892588607813801679969297012404350883292347460042778163249876817173767039779354112545851619274897058844544588821868228466852603407219308544964378412870488661220901411900902200195225744386254156994332203538900140739559840847577431520152796989997907957537995100997999756640386586054861441924012811887168676602197242447746866516341314933114651108767777912366363452573285086979867740637865898819447660277390306197500870407799217765991817577134428597072535185254772529158380838883167844529047977344564140544966432449784281898914512100242849915500072684466171073080109477013036474784454822771442617619324097692134868923693724881696584023369022986383709110442940343876059976631729738349679136229078669577622582436229991280900007311872769205951927340277197667738963005004566977210352017129629928041845085119961095978019322501680598725268084482759608553172087872844001296981052537325209173892859020324657855073779469869691153575149061181024762279130083769642920404451963951015579811093338608918975757829733627514369828104506334003043173570762648810240346907292517057582445372299803507948538866689096740649778140941060353216490549082859949754372858419986103093050232937464282056480346303328022097934436171666341179406700635678753708359311968877143381291003055881699229067405092835453846400737219605379614673583603017571652209742998536171449609359981192959211737354368499564959489056016643912373357880466556084972010985819343694423397342922644306900866094323338085001514610287478403900696596148393166589787296247788247104983447971142829325855452261670565022227303462592037176663194123837714271852272276072966365556524479728032006015189405647784920011863701556263591624795599020732447078982360259324939305682831577226184723728882427207028917820146126310162359215702710666652522694570747091072756362076497781385651787875189046047299383732698526832710619476469120176165109154088946913635212820760970722006253878255043866155727520987143064369870853648917083794448168821917365134516024841794796026719546087870785156514388217870315039282946593736604820471693654173747835327719864345170940922969007275555581136306068028809699313246149071206754564091996300897303039421970827660071714542584583113718947137941491472755413836905261757781504702631162958373921657106489556405938269590510362888212877548952361236333979685384469279420363116965214115035191545164112720342920861632381510846236319413018906992108628966390847262398997077078499328307170830200850014780318428305751696734992909727902895824475143183406998978612422790801967955254869145205433236191978593986081040463429934175849108144029644133272084697989927468209779785968889137246194640941708686245880956969167662055290194011367669627639094823206594955687004556843550095789948255282003941227144668769385254947310898442868087873216357539465887094331351089154291124898696208410476271534698280021864447077159683783067301954255484820605543113698606089633305464805279142591068292573225224973954589685396395534205339265087222797856492112456259089145857591276846753445404024717270916953117464854378394197067888904234212908901377764907187615709344875662955740481098719765092262104481532413759300692249353728443776093295852214292201594355688173833121142851891523138019427787598512011324357662231045501344620652818244423878737186128339630799945129926179562707781150374061442462408663207638765679836206541495853158115559414002473655947550703080728827033553355872413854783933740522120079042260344805411899240244919375175195847083260507516887361806372211234464027333148829182150534632284364580747190929408109372862326344956522192850835318264430000969910197843343904840890539429365670223355089075168815764687510282615448094538485598506122387622417559221024571838254940510301018697494848307581854253993815513072907175448927668180567652221514163043151746110750697244484187961038877977467339295437750702007651912110662948473571263693583020234658010335541159223495161028687374616454251467501833265227820735727022039319299354235804349240113275886156553059736123459830745367649616864885600779730710765035871806591418782309082353559014851726829385957345350938075085581026253222364460206541157949869472012981815562572916889464205461608913413788233744358947527785609544272979566416554475056563802331781254499624217253366517362206720273551048227136812810086055452382417884560217561843198539132700285814568371495423432283019585746557713510186105958365900496869610933315573386288943023601031753608922684989086800632458036937279430534951274125911186769000830427874476198445515144803109576669028921107305596753571728060818380769324734246001610166347501894476533293502821763183837694331256745597052616596879753553558147407337662653182576482777295298464865971266542706181360989025365999634924065890316812299943352112162715521509719590459066338470751192753984341886542133369673478102605307627020440112571694769577259582619548100182129773407747256267366684621509896809011840468502393698889589838286198973794252292938189574370707681693744445863000458033424960453553481693608572125653205417626182086884769947073285728685664445268217417355351044315332042018467119135346689249315964746947947401873400272919145434391741528553372756070823050581418513171428406442811653161120621124411350567650729586199571999725917891710743910600702842527818694688380041209754148394546603291521904876545763549720383777372884847703784500167424651493264496472949173725701774296296727912463720979959895327103589309785571685013931561981120052764994336376312555442995980945275859913039306616850374025014634672407181638757149044440148063717917131351980752430940120515264901852396718216777593967618877333915312644452073745194053806160567072441684695487690530032591134071724917305011005060031904890373714644607323750627534337399980180157273557512193482748047609827074356105781502633847930205232134836919836940046821258144211170162847603708106156801404473633906637117983686254986461171486103219342909799566090205163004075794223658757615825653547306278530473860371500479095245878512612523648532586981345782455185468599818741083656789933990316877542204277968701807898647637414793279738754050005769040364533840103069689417600924711604670347364331435158554008664663112658207935795594437579260044441320080697832267534065466815980382983111203829618486460430573669210101453790736746341868151238591510295220071540083459246641830828400266754875134684449384639725409698967098148063904776882283688894732715130600318613181422386536438758014315797801553400683641907536921862355981766289169285095508584629745094778017928280069349503775696914301374406160115835561976276335773919462754485935340195780280522071548740375044130671813474802105131186718191062083998243518331969675655664229552808956554660610962609802046066687413158920075442953035416744522305417070016683629702385984871749939496474281822506567428440712878380348611161459442678900226121336846677094220403472779645371850614187294590449726332008170751827954381323879357284364705043114487347490758190659241609975197036784452795894416083038750745452514688716028697606067461401288627288056132784842318082482266677906920080618750512626180004029438076466139033401958226618697118286981997657894649386315110443973731054943690180594426284814593196722717128997871278309669073627980628294318845674348254092811911348770003799756237706781206241415565153000390762404405558072614758323188158885418543252617080822306738886448862214709885487104593391534608252952733862149088245134894415412284511180976613168739205353208712100259856785529899895834496150158259832682968405740268807076981642864753047004311157019452498129333246697477014363490564416037087592237144684013921526846447762550708265964482933278665125709168529991337224622423942927103150345607377607509874467363534039681112093889809642449428850726574603123035505457353857407321356090326190099987393395398134133162158766206691827776001186267968791239237889218121447878855770945106278564159751135387950612400326302501708129053381168775926450664948928072392881961164398737155937486303783339862417650822990921512469737342866207290066617058675289637634319279824695943271638442398382910382306408161038292881732160568972880776336284098054363807677563689712968006043101180433133231270560150418360018865193280060821246599561529851764782836883523803948624466255043715065484682844740476682213744312340595276681537348971331899111224385602135921578115527622242479715954782709504777267329089467576909324968641126950819891517456238534193238155514693074408466941208621359901174449921426643542612453809792461398192868760702065606225759490053497423495152342128474078958485557468869998430777703126056260585657142812340268788139240970344058341747994437806311808969563831163098433994460248600325381836583067225839000742607733970579831172544043938306816924030604321781063864698472061235463982595621628868340813893942748190037580966935464952700444036380008534273027688236971061561848775569349577124125103505587057785327752145539388098343861937688058778988306812070124232498403644910250301316785911453334406326895584753413325425216119926790731552415045082104838848361549037326080513445755987527155522607922593474007633277822300210221312067325876242057082085794406217491248909023025894866602598231453481808755267323887248575090608112144642085981558058158901979532317500792504990504863163986780150225911620338817607721820784780276162726370598921219036188044541773164935933996856782393274905049269679450350044269579361645668882014722924355752926229033573505158641712022676033563116349807965454028821354137639187505612464986515357379047962168170431975304841730747656541875562656085922325211747108867317855656360598745526123373186515557042952585917683570830613325366698721399313227144766414270917512174464492158443243223321406866511285763661052859734433605947622221005967115449070780195237403611230985009780383326242588690636464680506863547442566334923995302034130503944923381734083030454941068317101621781802606153259080686051147187892678787775559032499761766295486394699773675272186851444562312856050204502597107446830634985947247494434879591895495943960986058313649544299008774464354990631523576363824226950911611819445442356628405235094966190816218561489886997462880999244184972009397663621896399646228206983404296681394559587629385724691289416549676645086891130193224542236467656383558672184427929084268319279513249234015748275321197090485604203275004432027047728713405651419609322691307880207224280187235950450947418313554509956364647387842859192474027665093548512326549145411624708476745269375092288930851689036789363878384588669122805123978936670405130427184311728455442790980829029457027851908551620772747865792949156916723058992663266753259567254134159042942964159630798849605717567642112532803894297022106365614882068873802118181821644624263699779211719333961401958023443588246847536406113126776948561828028364264019047835983160333214924726787213045058162933959989998845181051667960053435943703800192316425249303894064154902431259584587999304086981101782949317801331077498141085970768509178787015226407459707165316593240977308041094861678653924342102258683822877648613104249362117016386442896919164601963977842169224344417893741521093477024974293657180405549695936782512083822835272354085428636309598203669288016460458576869721205167174622506731033307779559927424774957724589092654577757984589008916647227900923916025507226888778007637034095196682621592373399408201130698345348155498563349317571860373215018092709546813065737695093012293081489827320596415380531572205001931537402585081621917369897917855425046526507827273088713437560109199742219922776044885406073150336997539059343099651965788905103439378789650286525069137281445056309860060405531445833363641856673901521262747705072848560004269975198418560942230818529395105762476572746622279251289632092835567614739870902292708192120647936442343651175941290569204923502266343901559467073844674915330577865476089111091871659707456854079051433469558689608063339047842965002551590252387124349366499138548776747115935443892890285924138145639849466898713843445508136063678132171187566193774136227049721823291135112295558252805714541085409286111772279767406712382142169930330618393335157394637744898921464980737286711758342885850175652179599553883950537807959785563395204923348526673550019461804776907910380985445872460462094474940085138736347978558172249734262843693330086342172417139879125598619580862172432146251443018387685295482850568122676843429454279435955012633973923080089754670720547612023271074761756176474271021145324380839953013545920354007920150852728397469478510894809864762559803382114427378099195110255528002751104093973294135267686762603608578239368270647201662315388206507111339317919227586308238014796443280301044096015489761964235932426361317365810689366802133972896795070993314461631297404300741675030900294294986848500178248983512850086413505140166459359288705434949639791057742070735760573536059430564253884240653582562618202665088955841273611945448447198832410132166996279698249790067427978826612615695140666336254374529699472061396609821560305802090729405863902643296930094999048873593345831453224921956074787470917280811344058542927928321516592564246491200702268144033037558321785869933374958275339755267391443180306892012293709999326016388645928332328514958385134173322186583522694483771474815555731389561367289440901825999425947644159311807762363410930372888489544629264907621648079244070524405515565303935166472672716841200039383142326604679445465131062858881888393113148605399058707638860933646533918166473269119531681933562218605378230463899455604108319196328335488466478557969834314162678046517562501149759744095793467365425097337329968026267690317236026601519136723412013807474220241095519751336918346701838467891024963698025799966138802886781901605993196238913906622048308285397900595733007289049464226579369065489049403614458849838697206511914966466878612579387807129249934591070013656248248211817086639443870795265227566029661063798088323024683334247901725718201193672029682185376020213588619053178640595234499565048086371565267537245662720458171993512465051685431131224987282514476869985117848464971006772336406857444377822995294001359910848326813693991867518754683293676293089727787569132494267565642133457858662557054585635740720303468779384610121349982702965775390805226997297782716358285115234948146103841697917356928914156592855155525924790420955184355629113593131071621092330853747525619732942636221866738610417772516004851779223381145091125569036482814213401974179080253581056589346736704255221288387463215339658261553090866069268266450552892258397830489220569648812051916325791900696889072600602635394907426908498917832256515097496184881597033910091048626344800679551643033838331634787869338669252732090649171012595444523094316735233453850650875637238890005559278390292485750491852224091686414053663341640827542909106726456544397064304280454985961090282762585907773903449942374077094190919418074445017631353009558872984221846797690387553151444346013927928379328530686461017500348810722507211804558924655226432996328513142682999589359581216374681599715480222676526957867122122111803471480783109191153635761422270177941810533042744900799115421406248781120934792082555561491894729839336829400992913522616289656946407004486701630210161317940431902380119172564416202631974640678682206643234526554850854155303849523280032551071378787040076368297008740692201128058996756293961386162220171027417267256754802023000543672829124015945249873715078640673553882506219798346682266607560709504759278505296025301114509285496352767413224620382039918364303121295841226913502311266269357261575702645344315897477859722871256627422519107608526309268068312412347357677079149750188183981933253415286566221415059436843214072049027348191627386422882441668866819460662972454901173065049901354639337512668830364212259885584118310539793233827245191298346136315861277715154638255243363456486581679861858598511858491473010026968405522002977505757674427332321109022764466249148013651890419631344239281815693607857615051039412536480394552938814592312680959456489593160399669394560143974922278461730702927222080296810444923213871132093550925678411374050472390227296519719968680836430360235362421241675983718403404906147123843321693394655231108335831960178873469672346620175861138308628635494423073371311532798740698725224151704114428259115201586385607497643928519438408840406341727071263183680637918978238821300558509203902024070101652735117403048177364719928218419554206789451527448793124500559621191154915505037290275213226312152383470353384582182661782511954591827918036963777551779657986966635230108399904686045519011191511907782171753745278337747287524478643627656192612123558652235450403238548366694372132674762008685336665011160177422451639955376965224296305862304082691089202877319759243954645749103800732421660974977151724163712813179638587423721716867987883340192336506608655559227682452987514647925612098085319184835681569568168587821253449396879825283877563293318014370914733255894050686432897942834669933437133186318325552603570433182940135088762827260509352715179733203972744708124967066694227748119343456833263703173309972614678736972383691776115702194096390854026324117506740766331909859813564894326224095602838055227491191850909904849016840088370123375864809647023469677623802346554912872448876666807059528730376154536967753615580942874422428809271822717067542463777049838284713196394599229101967925989351214950072175259532080607613309375387114996146669582542675032673663403834914986659356390954761267791577182395718343437905359068271143255709641574571716825549694596397458290057418046686433861081817869929201526189347638128086904588548646472855559450446993685180002506779040126702650804220205418928384744864617014421481927138570366573650932181270153077458259538660518661779901726212216244208632761059702587671474130044155356779038983358689000215628331583093662298327919293515844710940535247159856941825135513331414695777431566099672990243038784672385995965046238118854580025953520275386853596882286018417518572238277420031311967888390967331154356738223891307375356494699416140600239019353914973324021834402777490405747812970498197851293734995043908308504054578891484816829298884851921306016364623804798715767890009219977034115320660846935841249500734442215412161468447185622044126688065650810346786802109265216140538824781797848365221848012600048831951115710734379210571488896314917957595086005871421288744738188869636857508586504168476805186980209227351021681757301741766018653189037535489252246317008350078255143631749457490952404555169299631370882460171373011954270003899545117607555628529091419811206255062078157049864174293978919914169817499091822167893990322003247221474565205606036881089233181039241463638763556208739320570023843949813180975010838279980711720511680534034887363552268376805311257068443172630664533426926525004315216739930231771096310198068024684638978359329451927513050159328230442495933608932532591011637465769085441282910266053346317659635095767016145367008352063764178414122288210550931388005790152501425217297484002351963336199369423842216503682280472343331693801782515132302491313840989646919535878984146616743328697769872684296466427985015485640749932111359491344775956485672550817070903384275321295651581462341109396854073731071657694093172279183337169270426336036970230320288642705664616421539409023785841416193049263140608263569790615070310173828957267752417212838453037228367430687155206713459614773828498811268596330959176584456826912413698327445431829247604500900877918057631737619513537007571168013663849119257071040371346567803732662159761204587678794965835403970910045106606634443885080204710479817375182965881795905415134194730843929221000862920248255661426624344533877523815688098953824206005505275730815219664456366098827459494193705713402809008486279524641063396751086514041622556839426344104403365791647510179281298709791536975650299414776333896926842386461149343287558204681998457653199243007155472885285409792777830740709206951795584248567772049878654213155914647579583731188142930872884501556070328818501155667661878572303165896118976462057731639974191610543112041381817417591633635528579357499933751776350188424061871871365578653833697276840899355715931464730096541701464515387761882128347202577744817829903256937468428732605326556757668596646852957032273390872612196649592122960266031520246372911909047606345151370672113014932122524923336110219379374339416650229260594428124559668912978514161217441299298366627426027373079728968000607767947081253233647197217732058452596310754591440849150251449463198235149195115759395320258654461928208771659400773660787515488092579337470578286536034774349353216205508678744489764884078292257155812518558709650486970646774705082956661953758132595630664069715001136590877229677359550822932971902805045341209395246279799992802489872508322678918065989808042639022591116887622612978568461527153895561165935727554442317491397503495318987692855607070786690702221849072190182430036516697257868864052904435179690313339721051684554015563050275619740419077546983439775456250690299770063207756313352155952669282223247810867730346987744994771261468088251864763736165101770452319534845688451029953096962695319141477882288852670380116409433101276537742559637132165128774671159162016885496665583581489573908282254677849215276518647750987552407603453619872342468680380525064030860490173754166804425593043006335895637414075250883755082346346269744357570449602673916114599300479272776791578398070672050234571210382982972928736502293767111380900641842328966504317363517502181147418837170897559569951719893325105119858455791300703150754310123181482218822861291223422448080806103069969378715737845601014719674105236298905574572992304398851819576734548976721341092626671650016932951464186233154375599652050139348609044954961244290257642125171540028557084451837406934619836703947847078673444134505696369656233685409518647121287902353432091511688791072174557645525069732213778595553556272427178907117701835552639732029931254537289092029155296556158819555578606943387581787670076745595815187345710027211420902869281449232686060874817343052136252473531673399012823478295058463711834679722839808651318410948593876130222909251501310979195676260264597927590003763614237874476669983929483243704653897622633459936441939598263138489404061856299830235388349939377374436004872013381473618701340576151151110798278747463488714323850159222141354693775757757765903225040108365740596457099781049691790701030637264605583247288481303501800729735742915071866577360927399922795095199962368936352000759167418434646543795869354353997932757291670252213002099488418778045928277704009666214983435006893299154794183457710766742875691236050540183258887621079594022344072398188900194778493121083546420883737897312195764088001110204986845800410613437323659398786612077692497984796622040009496558714664773600034435151580606770132621704173181661248996266676736634024560311738793653815294278555054091224094128373260501020825652639204474492458087336703622941310496474966622130110658609076567506487269437749850108855818500719948382467670046173039252375557979909076344406463805694055475851411625849016252976291464799591101411477248091049020151136322248541422443792479791677600658324238270050830650350872661247891891010221201601187685824741140133095101606660623166775440390049160983680123778260980039256248247432903161398479299699103040958949705962466574353289975125555868295591547454432865505446441873551684149934559704620227561506594313976125414464580012329765866685022109399086323428381989672795268159087300347989220788299401464323884974548014130556108885319193727492554827851250840923565494732943149167172895575229935894176452170842115227530914908183885504459382897651450499141111111715959470904976667559791793036236232982264337359767721406502278276813648147776926961332672689187966267902254177260820379699920280589456605320810725439456047733286608957126178325755554095612511625667489536340309332117648387611489819355842027343121731073777741269052609700773336899930700860571530581371322036676945003696655221974045490620061661873565807496848613047687796849706134733136612566240162154190950482173856954340054398680816250390756997609679926610908204372122423795686583683384534239893618639816726885849399421887169996090936745278729328413631609619197029533430066518975674460665191479823510700788547036052004455192779517953444027977528305704336694661094166823712242505038513423523405127049698009631468988863851167674364500610590193320521459858578444820000397625797888454159514077101883483900262849966368789937685778831192319962714187817740077982457644060795516964363622102555423866521797762965767220506653049101287083690779872938932261437566687618472511817760286795971060230061374830997020022241240429460500547216701877940330546839121177778750834658874715131383525201205136918500695848078591107349742449703049738980424831723728958568870912566851900501429501564051740774592778386695146427954497780301462722084826270068634467158171769960378673299249255425860558456081683211932754982203323861589301899065678192417510338883304517444774151239641671214038616675121410331296404102106402175881165213057627912439332686104034742108790973872343874605870427549479867869458390717243859044704452432311266673756824422138662381121833663198842182074753059473158417400614195968047927867444372371302216139357156970968533353661312110438774494632193181913334952687115924691897888403482060889468291660454235505450106242152599214583171553000673330403391769123932798533193351881421001521775715181436990707934556640101726408457770615688402238214584180076940193192829942407790383046192228208958276555680041489314526224227763185609781481638859905252523417552085369635058241513747968153265932150716077640024118400460337676570565538350859515885380618010886511054860003661618743396854752165259332385296975409232526256984460452923770078664602862818304008190598993536113706789343022260890788800912552666352653008322667646481398456364764219343256473760727571425707020182371494049031616641658553087457350738056629897572357241624297642069663615638943904733341950802352638171692942879734244876168232240636131082403415709187605091380725016534437905444895653029700198144854054763494043456928244978124058876351882958931113482011209684165193305153685782997089165642326462529652476456343976363062986109308714229340557635934070540969095028883838898868596163229656764509059542541839876558771446396897101988947358548748475769354016115219878530768794304051217284587871104903591338893532486319146596485669374723449122780682916134970367322395465787698404466619734982058660516078747418354096321436348131547646660090812873294637247994926932924703164308480932097189672698547533900881226483606186928182510850788702297973550370244085054093625013145944428183749197999053231992071287574275631211110739883804635287861094303976241904759387534207450539060490894354166140807081343942204347748397716010252049877390926525969235364730191442133813055343741758816915866115239218577504339895853285569862200065097415788498363040935666676452021010936858224142876323917292201324473824313291557803123199568519019795097842975886919984980118438699899827098486836043503488361490285383582268143313711434737151013324309021612574609795391531699866912148827127572073854564390998823956914922252207047197225660771838886421871473944848358391382207914101099607834509404814103122079029294516807118352862091627063082707772744895592073027053194618013467761274548516046006176760865644305093445162628930283767837042074132225979853180400954925375605680045933505436296790232113338928178938816218598103587989645479566730455280980800374739479070999823583719067894168489698233803684816394423849265387687188236142704225453685330485179612253568651145924228221629138966571919247322571185727371678678614572684768490513193155109073868406285509742808099836569848432711684832404311527019019996799932371911025009675462871810584037543912996876953413787298119946880123204696249625852732711710557918260924307779000353131152828013872551885119452362975261765565767663679799952339120809566678070371860938604177031576637249924673707910869385843080066389380843839435781050390225339293323153061721467906080281539771910001439097526645611247735361576609349767926182865169013619176431872596950245102262698633860716213020887442935081869463000987992171739951764858748144404609953577362905895257648873781074067310581566668138735797798419232175487280430195215802284638747693287850367998103145325930181891300160034302332648002832444468203445422369446750887505838644557070026667118330497658783631480557181262785934829241133551058460596823805639029116803651819472481455343122065370601362245854609032444505469797716231062182776156981196870111220184358940109696288311499576689468130553757862246023997168892238001335185758121856080951648035234547956039352941080159108743988023101361365919831403062843037909708189487607550091473882154082933728712514269730905433862552234816779114901435014871456982720968580725190382111638939809871565090113250490014634207165100347604448620093257184017480515392985826899371932422057481599667073274785368562066495994818953113745913427528690253197670003885343739387978136028962997111616896437446631465151160290429601395583671695130651090067080784372562793259726815448383268455969093757368846324866751233589593053187839506715310025698601785704290339624561422344414697802784665960233153330401907274267593278640095965776278376727910613848512835360908976031171987715485280589725150233165887557495744244499102747514289826583472578393065233598300324305180510213570581149233516526317552398318320995447142809645045291552616892545250813966242194906210381803485852164061342676785730976804904188542955336888972135066391673325724384717711283619803582155080615537300264305624367761768728993446787309488068206658737469832960285391156120147624419540713310105005359884069933799454775897603238167605693195723759744540390883336474162943976896359632273993302397526640163947115831220801128017757283409751058442213402444068245001751104991600745724223333902259957983946651197453128727746678846605355944362847769047857372859878001677590721532832874676710693203469612789921373668227935563824902554727501031601230375167308194034888531062395386296559658373925817187101120580644859455446052171322137067641278670479455752067819347819459148626114340184373713525000347267857121791954361369850936555555636861370351514385047009003605876114685198849902042184326940809654856025719867542458468904664613155435489182645952493780829835986735107097772722587317120576039548345814962707647117673769255615821649193055351760291881719634834066743766898728087073056148589715090882765373140003475173158639819897694091602150304664630742786186034159123388698449751175445775039062624487485016542078959399793526075535554870619005641473208430378425935688296168210799717809726957741176262410121304138498369804465551822932657996733059561829887460195257480878257008037372527406542227994544334833848041997393176325711637103191393986795823221721816293753664863259417871932905811285002724630390861317628421162082077218603462147180893901422119785774665389994536506380279862860401222111112803873747731143083463042830427235923346612763637273137615745426087112132280322258165521742242385866064345192054833058520912933731271027651372556000198896053612688396503472603801475393860539513620312508636920297082833163948991277159590431518474951405834061366803104213392437782649591119026510650047493049287979748044882600625301340918353739154100005247675162498461607348100700216967414974751809678843161408213939061260912484035224404623789327258228643951877077407256634671732260624855223709440748900589298825731985499018414654311415739162171948235892988015294981003729469309827799622150369712459856851709770288488269792573159765321845623504121597644198996642784943013731913605439365489591145964549043082232755798795926817455169004227028491980780027737002440998573645923042192976729385989946163246695577998780615278239953478981559403156673288205094068416414479917790745776148080081736090421205405399267753796397269271043115561935686583823507977515782074480200424627356361714848891595214435988060379210986947716295708910771631997671287308923708342925397708499584052994195830380179462216803535006201322428878533326857346644336658604829860585024996881229597572517647684043631170033126039227734234198957260666700657636065257178787694885310750588911095990240681025930410305726917911128032771809049007253372009045666072523987476177528516816649261318319458298012157111033587922834824449952763224362275321299142366351587958945968749187420701551371016459584029448923891654735290765886565571369339786321487997199956375445792348067360859890981205787754713266434296242939015652922226355225346265130026405518477259013114347499278329566454601081790323461545114886652497810662016591673630660859364622796561514028951565509803414489672357056506194127998339439174531546216753416176371680559418079907706819611539261212849153519416298344548125291420535818294082494589429028723094638199400688747906818894304714018041592159923716412049792982922962390262969862356856035118015843265434193115746905411076108489313607739632739483252490867169492251825299793072584619723632458501692479401647209375427187411113623556241023917531431325690159872533971041932371045731978784306488180658155375829317549861079049551250029094762478851086542918334867701939286841516698428874970124238907239544181388401616792432632236320861475213293767003581271697852046229431501252233114332302917354985696092364545276479631483698300167483995843198479333488832189042447808554834855744060130039081056640243448565764290629532427417190951767324432656476408777026138101958705145428002972428848527336163007245862056317583189825276151423937413953121918383915123992356436964908099936842930969939438018767812413221786203411572630269302797749000244058566791837675295823502412704415630407177063137095710272393999539933566043443664936428956975130637119302177349665603861794777478345556740228676186477490733174653413757967864179577840135472717828293646530205230889718872459044160586831634921154141520511906700470210064216258251498981948735430825119481227131565692833312911133578294600764253790980485186464259820918210386384167908800553300721722254507677494744695312579417662498583559295258929403458194551144963306676065567174401328836462136599851187799339379973905529307815216000540868078589303720637263645977660722382547615397752350803029655704110555223341907685822129097807116897369981822300227871066600784093235550910424098030146095090623415158133130947753049459160347706956607915186586670913922175801262347513203251776407756310103099672222391258567993978327705494672160129644926779755831657925388301814732807186372194946770198963435673571977936772631807954045552743137175080035871820398555183179860315667781085012525333847657962676487005720193822015530004103074845864557766422619171682136081498347354032181050831786468221462943686663390592780146777380381161638491362751018791895685870449144975153625548320701356779420930561394734890343691138113560053190522582089344811575730471914675561339279870355006300449897873572114456218312691116128250060552931082453709817387357024845332842373208483301438619084100718541127484022962992463265201815595014011024079958008662155957421132201471191323031998467141614630224126051958787992051902381062380797517671098050792034504094134056949430468573698870298137396280870865501285068911027599636823418889036067581172861683687659134593987075820507341286601116602998607318936089662934393640567242771873443295815018801665528566398327257140377541877886979669668684205868351876070992400418242221735323056074772223795400362915539826708093587224166980372847622149254871876336563986870896681822269639498101395741011765978641167986942434751358861429031557185263651485980756964049328637860511543603576880650128645259169302842628293720543759337134197067364158563781321699553360664025909901089346585442520380784302120791049638264772360955117454744903611138464209018781244940845446075941407866291806426403137190768674077594968026234219408813859031935870615998644274835325483104522151603872280005745564543740697990685682008061980020443716617152309399113611134669719332637669759155589568977170923767814921709288087169641153734608456095051812015469578216936484177573001715785941483729281877146208522338365887671009776235447470105740978755874802240105003280002109280622921264996426857286911415538861056610555138725765222336265381537517538284735797337794113293281732181004990374710790740462595137647470395065829937121282008574411595204315799350990396457452930680973350583138580706849535419640274184211502382671348629488096342094753005454606038437862072742540947006442397612038887583314369168100205838745897710577554210671548288765029450739881302549080071339291155751284391426937115084740825710083920105243807749977745513633631090743971534137277306300148004760686826134290105214712669343324447392045166620802473255979126040749073640032775737026106229094178547313425240375830402776055070970464407263696539829582452880975218673758079397668314767760719105638059071697404546699147981733497657411281804579639101158434319651310646971461092060957556707893394817545114273392152221697376178806248816323525692746764826979100891060022277584993161965723992526728339404810674550829134102396673387345493003195400749649658500118048302663594382600399503790199461755843035146244032468457872370780668305727434444682353075293298157375297922870415702182128440342352482462479448360904198498765963084977140137930447736338796425913766119201511604775806475182220336879744473690264689510146237110428661806583246687474727342648963483000516626966045556298493448104867153174689010529779186589576727041371306287705080246962696780094867646881747121419366273353661283247003591526760775854104647143211179132109771388327688339204827997027367951147666568145550307710136427004870661224258052661069201956482056250739940512821665128993652423763816399513524189333212293401394270768193129253173005851332729585029725169984943385872209686287255434045314558508841770674462886561502448591354917326002241958982540491464678019256720994118362563279305049741704834769575877175314643254926268531918992136950790243955376714371836076374379892703979353233389826727527519777487407212103976680279188915763323232693809166839184306892502263968616492305240670969225737823770988509644888181396936146264075977822626193034686304528462318600840513552548739823881529962186441647228264241708688618988806612055796531448330064483627992020060693803837952546701840690564080854839847866203580570369167062603168374264945566822369559630034417001670485281584424288221496534708137284436162814932742655300109848695136873391777677950295597811726264174174373501129852119272452342279055573172476860784429521276494046320677675381664506895150880817355868946636260701948883643965406797685917695781823135826224913838481006873447094198529586734514664274208786025515111531150160232211844504416766535624760617611119053000449735379906711754433332870647692267251190598397660044461765478228904988009806367556346424928866694325539226504479292589651158276636836953657548959357906804469115870654304249375434115441991102690518193433398265679729120051386552961133877158133558232723665897191142747882729508188001005044437709513461344418514206458269959387955953693156832271923149490349085098889695278801003350426982868619012946597796915332345390486171680583925871108725628216625347070349576001054893417528079088057247160663848736515185008260696120167551848873560236141691735713255399547764301511168525108672960291858105290707266675100218064634046723898666933356092293708876573254906786065675761668705719653944796587467749501582431660860592085066505278833281240367869795184058853501655385784108616719171663537593651609104141696562467145562957649110058736014762740078596985928727086667307420667108817061929235742062068508947925352611000905698680049768729871459356242855502255992640688125397130437266503800275962951021352393107210143305182066880474945519270495260323244399232914110010545123101692017655298721579463110888166796375806833012808190237322080662885239655446813332058233566285169894003077843013944127317168801499609446229047593683832290278110115507440747479754633204534481533023465626402561932444242638065906329147632622231776077111545493392869041041335951552761130757371222093602813061744408130209110393777607020400423108695598744943777909295669309795969674744133570911265472616352494569007729331734515978897105330301041259976861316724292244658374071835053446287676765878226736519277188231617656604458911567249483060478491587044730375365044279035254779890139950667855257777267238899766682628970254450248235137617422657666781257495217250722280072037086812081372719958287428401194619883400365506533050788744645918521566077213166018065008140017587221028632590198626264203208380480974363023760935850629070249529195373625756368566586835898605445307321571516510139947540236317535402199605368864304503162319534241062054630386735419843120596609918195004257126496379019023077395850701068820852798072269712158374719324251806857042167474406514470641181526000821981617084217453379037654756559099122068873680206413927979698758139451620608322273276121138322402966450217405357584381177799738880896880609544907403918781452889690779495203097856398444075126802343083821753341412451131020028476153229577826319072942582788116707058618264424135620549575205140848247403618651486526065401228577076773393991059249747751352471310948270705373211785207595170280305673957952917421412326353355573785312525826868117742742453909666852282323538913218948272002386541276685488244963007155978168786915397355345197623778840628530618239844605852495433630384371567353177595803764823888393648405687674944941225988940461127690862806472284448073354197153914868661195837703844778811627412176528008120203178882488344267288683591272864966867270840490886138185124422434066434354498407731335628515769206717383703158125345588289575051630186463768061668314804123091411142754624099228588125419669307582703191308604441942825998748640613441319098726486113759137960231483523058258913430655973703226248438417626971757562675298816725707870026934703615716420879627256516001670458884020672230459788377397417324162828120696291054126776836008767786340000862093677955352909968193830128188261270891380417652492060156463649994654487275916613824033582532979950774922644159810824384246106478938907235398496769595379825446305852982746503484997025788409155521178768303952704391201174696696162837356944144137491452396092012868618868844432338468027606543267504960259061429863971394656446837499427191912743676708848005416437279928904022509112692356096590449519100182650559476074123576888263165424894578273408763361234127152816606335188199669741643621898004475653269191916667322565413807951453728119677896747841047856969407486438955387893272106184627603409135693593666599169224094134503210410550664411809945260355389891879277899277358232017997848536594705836985575463273014893696404180854013879740684400490039088150624129832860662830662703018068005006434903680296342112887254680383556590169131908754121952158140807548959308651700975933632741041388820712689444373092719142650895655083342929468091231757199027990106437588898370304031229851686897720668972929315752338519053387721976793419569268439485060962655180299680390517778505213904428730026148565464663294334128183065647163919655926628135339967974094272355302334683598367431665728681791408679583779359177980784256273935159946290956307601480092806493445131074840670290243207067146695280675698154790249307518310595427932173645267577916331910878468579444193032828785929502143377536954523933663221857355252558461215398741361974249952962645272035600318896701139995428556184504523349734357090243336118759901816119948918847337866746051066005897976793459123265480427786121376767204704983625888141986114069366894474004278220672633710331931317435732342047739160303574094427768565073339472721987906671035669450713766960974518674294230666454246838294996984625485124637036770437668174420882606200614502742966737629744065959101741573942920044164979115289192934007267394738283541026128000504894626878972857476915702066037517582928997346825630832505818009483272362352761710119043792718450903218445766993203603736793178692428311749362221877375733884602758881362231096964649310507943488008434880623911402758525456732174495180639713516788451086877035413152495930058140356381167712301661889853617574245357771348717528136335830647993732628878783920371599658375907721179331905415654316304242636634268047788065908558683602759741279482733114954905452417233614117192836529120622145862006319168798735849198856400395188406484227650764575821128599269789528688791342597119666772349704101592674869290906696222374933716569816816749046117642897128699974048081938687674391538255763464405628974532535570269520297621142770391333677343424294271072771207887288830883878223848566974479927901968502402628669642601301338959902730868436268735110485438642356665937999225908064578671529240821522316578447425942314791905859641296021340036442837003390131256119996844502979761879540689483128067056766281506561573000887071436975372460161212505080131601628699055290359466019722955676885680296627454335543368353704590519381158350103341412073270739823619747994723119138799480469032227902062896396439104426641155285361040327870163912767208529209550651185662941320968990582550189913942570803577445400852972431041937621028625786051768289656641756232629421011676315923269701554665057539269806104407693603205069358807079759741995399988565819665146430313484687292545091419487443382258349351017368074901940242191053567941298229324782194400421359891406782182835598372710815212726142822889620974888016083065811488679162149360846972638024309868560002084247846035390914419328198457775528304185263989015921154400647402164758150804800778019779431755281063097733958029874522565542526967449079917649758291098452379416524567320662018050697571138428162471341775521747966476460168823975437725284064407189693062171925465927498294234983784223466525199324054155271711600675173118257548204792235387321863403359040697120193006250511833042328432300891660526543066806651037169540310772847250660615415440174998433448844897921728014368685969615209813366320163312509117564702423106879027336415555279715158531666496051917097517647891261241231324393481836020093034510914552194763455380608096374259327063053952571782920206319798166186197945460729152531861098120067318427712873564980028406583705589578496251660919005532332109913533028553354560246492135167375829149905077534828907544321622112215230585533529686671321522056824002907316964874540507994239152046973495501841865681818268505304728916207133862213241866951516381517907061552302474677766122432760857484241360251773889226833069772557508742756455931136578931754444222840595062963209621222427222592820753100135820988009706849831770575082119226553792618767582884094225617155485763307102359355716913428955643545543418571960040697958184723332483399100382944254239396639901480032601909630623266825599100821075315103976489352316671205081801721467949538339993486648121093725176173885659937208275184845675228416132034730710377418980341438778285425241064346175194838964993358916378641758628675653731414744834188082282269179514668589861583512289859998228332767104047705637918225625519831795215154245294491300786052780658766787156525869405953529005833639712352030074992377807538508122709704234124219823283229549301310314141313113879932062255716859575942701385132134984663306714359586181242697964287407476523002610060126271431512815062551855933270760292927485123614559402234814220481980181201161593422875900385981392865021093595637473271865356989510314798473692323641249834149177677787218894985426861139076993269119653414493293717057021480216086457563394887587707214533579297952662000732871470003115568907050151660002138416361468098060886137335580096106420207307756531518415246381035954702041716547575006664468914813225165234560337352905599493098424531684935434100599054099666076982016165685614105214682476747640016431485125041752889736359170647953518893867409179721700588955162708772270826969030594175918255747004390579175066571646066676177821803801594166177871985272753308607312551842980949362467873387231997853141959441874025707406299474023665172252543114787477355730450012347357078978942582201064697853917045978216473174558514254729908116026385103337105313823213051455364630343228464727670176910913641304331863853438736848521785038185017293215928175059531529818255690909793440765763886803910461457652835309413280618652041924415317501093596700235999860004422706325184073490642068103237474236891007455867145959261070632404894180008612430245278003173825900926910334162917602873637759302857325132164714695546807067783544830122654906710590721370209789137013516887048053292532431916524888685223008547973843313378203894624827165286885715554467150830771611840740961033059387650973748884906383520234062306552690264906795493260041996764302590086485534594049249519499902186756536633998432349575966289544951394378190196828486320937138755432458821768960744222541136507509038436061549724573747417510359523356427276785456089890720297223142852118773383825925246574670148670455639716231721800702564753756234779763948662005418983482358437694120612831599401676890594326567501572761398305288846343616269117094335538698354474962826884016201727226744584549823391152536662498294530309487075609278119706633034444102786987216697861193087264600829478605762776336264549111456134242145144077582310475989525162943178670034218474795282765320058392175498015838915399628650773659477694607264656668498623649721019978138764671239815338949837812351590415752948240470223128638207661518116292870550595072116626651490308876474928565702835930425599325666104646051037452059513638517013141025138608637935844465311325270923263798716212047485477161062258097504876614602880567261211131972711558581955319149105004961995097676449054381915879013975742224888635691485880066639691499297422266186788100124098238584093096220223372609325834235720927326659007529105817210778559734476544936935075542417371968097308909392349683999026231503374055147460256345000911049134485584104269375778461055180591623822435613814965261755725199750175403455240762639572662006383512568859760161371805487683431737174265722014531331815431116292211565301325587305796727095313576562639257776611698829332387353812054794016379981841196375227994870730785496358107788671722222830223349701916939003429676100287580016545254109833794242423759380966599954111787150406135859968217427325375509334724092359291317727634101890728245408644875716648037257019468387112114554571804852698209592937981594340584324549385907727589615800815935765133820089482967471061872888663294480585251542944346123333756650725659226262174254676654397085865002651225486712927583528111488960472959500526446064083687370766162537726457496740160216219024394869286554902014319849654693735846538165359587117275728291785497987530495713565190562580123512193004820559124457100125912022727001175384609716379617767236776516885380175310471035473505156831374501749249339604291787895718506844909261488451649409393987632957208934683153283710610914001887915909814593416181471317595888723277711388055497312990625686306901172074100103820941100441636649887195338163508252782676590313808744198951903774525179897102765601096266452946434171527639272628121052028531889623662909678984894787662760663159040037185036181677065913673591469431353862786709042770536613296499270072942589943771200949184000475529897208710280276072072863945655283546672139560578652819677125104325521507423995821245072690707082513185872061593997650754581128297702930678244074741827491026786870900154235304550371557090669780469716102600376524131726023272951302050009441226032062435213351184605108190780704971718161119326833887186645631536493947365520995667961900673134707794922807025263374693101871218471046966889903352765465900993065932384556778285748526681723611206828867266053359744299849117586480977227415192795996322744251218680312745536838609900757182201748362029466747747629410679921645797803124681124181204159904400911905223728039232299308951955799834643139331252346031435446779214608779396925702419941711625916540155902104667643906177786134996468358399633934617277234351830579252564124151241262070898286870554459576865725894890019352180896106304612877919156152731930987372517710444752839460861426246666765600061248585722503772714655164842451824479645302409708948180003953505449269445285355898946843884871153481464284735239449775001293312708455040716390428880507852353340738586137361509128717591457858964563176853354378292158200716629789540375746023893020014021126163202798318275355231321687324044049483228496001924997988003668635519700411031048506378673646919911289708180861743028488536449389293775774099264258776960126065718277688765775804065963062222191317821512424744654726617282870065426970743500373032456179190460620392054921430505903376949041444417481552878855092629212343573543009646039466640832365666773585132994839948210961015487764617038303726853425552841180659795461260310541006052884699580416586478296621350579069347875891887237870005560666695925953528964939214888055401658959546388715966927763519228499644394966284673923855877650014696870069515147631703590689734883513650173033087833130011895059487500187325113535175989805152905489214345240168783702419269084491128383531867074690472835414065453542151241516936667272709148434473396037972743399527136170461165861440389578133938411662509708180134614192112620319180084972677894855418364400620086870810672520303134344273357712776272234210486596171723908795833729749197147222738222053404609329559544056731615464687978744354653007790164305519514169010621901055308452178226852730890372479964738177951687651055295805625818670942088351550801521603661680646773613743840688629936570733902689750819871559818946181321938745573723261244493743472379948948048298590720242513042777899516642460542856101723898441837218751175589380431300174988835948807394007699606735758926625882887007853278959708011134382124675335575276130451654389618713512029785319365469376942407103791866519718112940026957334253804075823252053241934948748801996052377689621238517588568372668678113622956092448021106073834469829273359540360834678915079178497703330442240733521658248606808128748778611285728398616873233290246661667862996675366208825546550689629492554500016375226187866116968303496248780014196833352851622490062497152008573180093315506693468667137472095258950806345079498905191802765426946013644773731391920289221924385240736225971884656159165761243344023931864128920023536851104279088434007670170931354432562402312810663399203805163257392495076217501793410842515223921766252479468403292302966437792154554092466289273787344151958620867144216037249156321665567553363308321464623867824528156991720242685166338648626503983406982165173550590625422543477821432838765915344423996487057198889138630878892196097233475402313218058136244627335651756176215071885186329210928583509579229879564241736143516822264839356428335295344385716192294990001743633286027919908595030769547170529628829234148011366101056343345201406437640801250378817579734094785504045095338369489382394853973888789694107969161255511879344352752901725596173867434646985139295906983234696575312250338121131530905052131930657354246974355687248582548759370539159258186553627911220151171667812866784725903310173448541813433919177419308906630271632634780167588738424876052990101674576880010618078514950117163744872806571764855323460030459794373274217323334150030561269867081235558619930626981636757267722678553016676396890927010203821086139245891007553844012196000575964345949680748390461979607715266546482767236556352425126788483812468782796760465862797992651291000926773107689178208869950314677660442997761758088021165954864004718831179902267110320316799208795643530516151086072309682673719260205117495223883523534958325615140794770005592926230121596913423733915117770281010387365903968054089999448719259615223595428949398873223023034252578487788191135680489612563977292506854467500700255087066380423761809395559168267805159193346231370088860796577499917183974081920899189438808921291812504111992012416646332977563306101222280137277115584472995819007135352026902480167245486652804616801787138177720564150097421429283040319737108473325413536070812699833036612607398862851661398778551078966753682803150391189517970046116691424566579231560140238401831695891703960582729237583998921725390699696685815963150119486887417874731921149804487722419972555179413691342333961792919473786029530823276207231798374899914298324654701404493547312858126131321156139957671000317599594808050662480736614076465801013515668378815478022246515895674651279557506640038006737997619783129688582605838894061908534663469828599603994301909847677260018946965672894777750767317714506889639647225283527307247232996356077798107701038670492778877634782000464967215671661979087044525760047684775726732288199209906575766533993170516203491203084918334248981946084274137347214830005732705510879867046415241476083796153513097219756097291751722592855218661769121147208213134390124336663053950419439894851269611681551320144742870068082134148223084348154144136560023648487624657600580759495758134679311042234736639054884816586843431917078495447114601666805013650970524460062106537205642950681634777363340224651159910811414863908493610152336499182815366188544682036128019301243990297189722075224235403412975931010310934499860708585154848681625681031882125831744093444338725025172596630220836667475336669323804412481051643903683705788934650888139129707363827545485368011893000256233364694073281717775736636795038722744101522861873900734596834826978696488648740942653921468304677068542286725711598790866532699789346769978589006179345524203482844539082365142131622680369566464619248830120460727142479199387525060501343171265690639882960011151717514652248398472639578135850173573374362480008588710004900156774636433963567031725284098506769278075496885800090879888365420331674700157966268411674058726015778628504454978586010372886956042836746347853910000108851384743537905090238035965226710460068828393397651171135039584204733239222145001935454000931882554109340358001259004639695044048301215230432859173533323682224594337939445070849317303495550649464032682032715526426309638317634638062886682118751722871506440954575277895490667757876008757585866198563502417197493184623625818385719759090598092827292646529302016394461511630590282315053465059886952233991001791928671091333205556649821043755699899537003805768331407720401323929857539020407406270659488829682587238065784503486450931591492625222071730281399808630649165176158017835008192601441704612127780247223694733592020079902217187667257871472735366800637656431213163944468258365924134435679686545711238448638880575949638323114423945994891142230306448109197705167440271981719205336332310038693984635929400983071160866453347904591166748161672671377737805184100058031783843639002159480288736854116634910055825328746010947199807434320111519167272154558953057623893265694868641863892774016631639559455961811580745193932476293516564396375685983670714438511063366138425291960319256182774103076296790268790646381575813578601205182408941788616957160755347335628697663864773099882783433971104077140337885028717799098792069031112448274343520286015549973836542774111023289096144049773478054899249059771020957527356240185307844494110636803442601165007514119773285130025484085953091767131400253886295251572848940398861416650803194283416256203454817819427355900676523996793920180959644462230970979999530883830827838393500523701857948367395753804212801816841880986894400348260050626053843535220906409452493140026342822408808275333307138683521654295417787014854041511735487568035130940726677028948999177591560085445562677051269513624746848361823850695843761897516946115064339527580418163667070318668063256723042628292088421370180828153552492132585753590239773648493648491752187950913665309213292036612663027537337049377379240794999871843147101767887651488217869265635008169781181826221179053922934344880873433761303694168294644506463762570807195583624008223549104319414163251886212029934552347088752619597268223157560212968593976546871347244914508978675526689948303407135037170920253868146163574999678782177692722332046934368855718766094458992450596236563944944179294589426179535226218082619094043022249831822292771762344578904009114945775981744473349633185873443895622381108606956320550628820317432949668621561438361803532593050991650857839761335315503259206852172503906971397305789922344161228668451033270416168045129086511512759224857316154038194589996454677003256400808883505875907252446141519397087203157424530782038447645450466744405949163801798500539326246380768740601184379245585928307957072472821016542471882189356165556622531655461971555380714177419446325782813741068950289343024000927141100061254412867296447888436373467157585489381006126109050968985259231458904656205978926190818058833531006941806739821715119989076835469360738760447522719135827930355154936838053489352562713096856273526048426793173933227728011649145656517769785173500750619381413873234142290882769220972850249999210573373058697339754599637257714075615857203226101749857055978614986199480631868484400156572710188681300389898500641073678126359320860216881968354632491308845654156087064623553475043457714731386419485131854950372227915630012451659912662203920088047062613913997055950489115741948185733903346405277509737020211953796516652978853827774066802403665040429980419078289141123973292468665304322575338624608828608929410438771544755117537188409853224649924154566308027150462951327531500402147282643663759304820035984299691877447637025788327106859102973072368635500878929761258594494913523274487248768376896004210784899600709449391169751341573762874306437619000909359571108997599881058483543865558518911941861381729656444878371145237301251261282175355086936312187909348245040167494000670621801377937900115416347362632564409154472642074739658635695014846088686824280729287381013242360934563021986575109575749543556537394990074782188734870579392956104876102192082831533763415486734402836630649082976512602402100063197042603560973668954540441294037748473481431172503072612251883807377774491847352713699310844700502954053882385716830741876420777134382521952332872439630116725648551445455439450143524834551484960860994952769028131470280888746475104219250437224742443070994089303200675918734546145596169335424067339047361357523851689740086893539810148734738512865216790823044466484635779853276018956524645812540405546245152971737321855515274150577016926091225850276742967927177727160345187356198092221826523584342972527842531167004237159910131366098025637422134606407844978187647499477399641405533987960702534119558359347407019124642770491615049559250627514607400796125730976295175089971311564668781738542167869272560807882802562583939054232568133063622165960233768326971263871091320799955922105036292642328971293692203630729524057258366438932610540249821622120563367459132827469302080291390822620795348011944698616094777447071891285130726339943314739775504000713589481500002110799300808210491526558400044669371355305130140700498528652897554580807811393381609874953447536233039458233348709583043292561728785941611254301789534462375192690316786799167752952647223144906445235403955639860996871108439759635716587905115560502999502581808291858495709249185096445112641151677808140245977544559460359278869275128238645191430293710632844774782905533628685052922037082929527712060978290700169196442921904862459040573438352841004339717962530540035251562974819888787670839665578177643879371452268778260756854302917462052979954156298895668340172201040601953956946072245199728027640786048826354971863132052118810482448112135344555175468002897415068925231357185334752342468954660675302860973842519530198405662544889163341727809259807754016615256311473867077863541286761402793951097517919270568196323538419383668335860336974764484248906496374134521088151486713535649488418066832654897719041447481622078809815592279716604236310537067632203168953539622823022198567363092755004099509856384180392744269659811111564113543860171614648099135290721473372128002832103334441853650605355891391571649089055769103218555782247594829021429872237849827881664316919034274864647003948314882387967149057886196880644677995915055247756413537074896002695270612673403953236249194356138024754961705794807985818373052995885790282785922549259938742906342378221923209786145374836010419386361965607888259959098681710052394363711435714844420263658708689774731803698458772046368669711381203729623091386426461717528506889144934699425808335944467516879812070009678159816079837766015897736353227597000069253347072084581473269752009284065975757606259899550871369665456869729486417386772770194836495391989326510211296131735950435314530494182828655665748951595351556906550812784399143155503222366603617807873432830346309536293377168709863579338703291159516546584330436608749583663186608224837687040195378734976165579169362768386260348893860318105641796060328740261012289027882603473459568866950234620069015860660940991041743139762012008620823949513280849270736382474210801484838033184032087127480769743796981996010857947211038170799242997041525959603881891865793993183745745963958113654028924651000401706005768861710221368243674894240272719125054900432795626647443022025432687880853079557911799882185230030069759488874208252257301279447783732397628206525656912528352347994566910848920547668168902885118229415804647234032116832319487491053702819885104226139233431448429984711725045231985512692265731231642546087516998884837278223653993307768081585134955969956961573989688883068241288474393699428263022489650026445590037115964842803427185072295412830431171304779806207463105362475846435364712695877347123436843751125265050734318783930126881621900958258580053218438699015338952836388927509515815812566166504596052528694426508320165946891624959785344530698564158125182941457952013116927097567279226839817838081628766826019348040840219904603652129337196082974651202454577769632509817390153175421168108993303917962742950566572549212004704606210072684941395611754357644414333744427909574403685515842906592730422668446435669801364250557582555267328578468527498176405147582705923998860553412599756057117233907402436152461413577892754552035755741135554191542288661874681931155802746691144152256699173398249408521542904361068881659599711871059333998816425138750941556832152799049171892652472778296644885540766410942696181581821240641653732598572641295541886953338059209329170437502350742752679061474028009610152681963244224956031237858032959881395048573595382643524872169918149822645940159503876399225769997568741583756695451022410265310408411246995109865061963797963388391743009879465558156828453538719547706234367444471798560607271734955283807859067960216821558048956635935266163682099312398794367572330669859637070129096096958817280457033987089332752577909035550781797328121216893070782042239081963699927737518333350578212170113381127112900294622347272369726169507837627989100174894936095249909085714667815929529124885015524858248298635945981589352020996888852627231831167054196859692506520047380388361373552729223201952608764036903979673678975674654359024492397208584908056441190764436661674403255713997058447517580831118963647996864688745682094165072803914355348415422819085142732709259965962531389525436899040115991325919892679020788348387179880482849709546162121939177768293108247683987128875745413311147333303125380999742223582258609543470132331387935418594044741367184074618141615280173134335357737969872840521120650704124828014151097295436633595529725769872321926886395132397456391748716137562494280291239397618775012832207915430099401486153182132431834238455713770406059179767942738272787711103423249608169199490882636863483050058291138224077409476992439111522296091154209372879361824888652390844515434601055474050403514049209884387703248812247092913802055415375071447371565666128392085103230867576260366842919007381483365629423035150268197917991770390274979722206417117813584854356215091001068790830117552237301939742636664086335792621317623991552678027007805652611007625065729767825834890630933861453406212747711336381263314046188622413508124982131429777066856975775503904652969913266901100010231506744950601855468132100027613542269620286733103623071986378231697924804026097020845319469644230785741868135563702308063647546751598532387185527834634890627412502250244771119221538249298010348222321717248790998251677455329467913062162108404510717410755352270720302576397011642940171239612682200246360101220167350013710763947019288955948747742904577337252701691601257691996359628464303197406317157686380055659138815925266167222078491247252512511779365320379967756608510780229211377381527849775219307591074013791813115052626968802412427436292541958945251869887487329842343423630063387569153969129512309415252734294174007292154711949036210738447608151262868822384732918156346828702342316360413954828935572559245218362777142877790218969228464641807414545534626445105245910507601585628889991182049806463505005929911769604845462066553718429270723069940415971162021913896769124491194688653498654911514923446632640451132453652216514339213817715985338897234261309367924271251463727582634820904587393080842446502121058000102250355388382265435945873459485849705382337965364403167602620944589913708438028671866426410774166097720528999028384018750399015597092615916802061838959794752225352826896444685591874418641756922486554149976340258109083378748774562171704950740758327910099437641270089753490552194082039670140025088798631457123994634078106471808715323062423201812621037440356948033613614021396844276989100972097380057207890973727707087761397119326233184876343915119103035089695220145401498243826449000731932200997997903101692275961289386520457021922556425053566297087361483267714078986449364772164369418737072118098026381585536283689303241358463023830544496206569770785788942541018519112052153142218141907631315713929737077262172343614465548677122411166943793130781086970251005914028935927882239588437042077565408669907457035580662681164871602805422958230198227649453166633398391647012613774479792673059597418465304429536881819731616481143965688221236832289522980629679417282399362337912236120065818595511006618003755000725428976454693692307046833403107095753778036932710204706334340892637823090123547982199717115716409598680796285313680621602427846278090013832403505734511521868580470831009602443589923256217023859380823485989280376167253940313926430247729991632825418749492734457733989357864167008568956965741083879183208411956996721276030091320354783705127103463751614880329196006866632887451813087746399852357954994882887104594448342646048481980414658162137563322304552067637505080918129936909751008661088875527291360966160692185750429142344717040306413983588679337500732051667657107724511403590550681467118173105161059626948768109105040564494625081961607347888875375723328095605117663448728214444871918362895878071585973387346808236286691088130064573530939262662970619665255712032980818001310237822916656639856993667956300228222409864487446097314059259246932417638793174305808598263318672138713568404335643652171497053848755576820794787649782896351722272967751634430789464710126383792155460154560778425903636884004854240156829942354690579040718799255982400690874647002065547244359541105456416162293519656963907939725724106418468805044099191732174631596796517154026646934499703548883970891621185003400545289976424595378724511079476206252237433669645587141604737827028280547665798427617388152975376497340340173823596500306010183660482761222040866805899324569711072743441470714708312445287508754081154074787801065950821346542810134866031730853787739068163202757134555956138357042675399083640492392123279685218959072020729178735071604647840684627699629304311867407861849716036701667177150932671337559732753723696099489743308830245028464924097468480177840970861172024893290491592638975652818561387571553067572471052716325378940510836907687416778580952140431698458802647982633822103395005216225228053756039403337550805330712409002790882564843196883144695085794269397843228545239685041663704468370709749088015460579258493369059306042262205057807186776257400795896737788924299124307081001932365968670214020977600906165655934279956988587675618047390816419612894089407258625799329255557641955105278268708610512358864151991610592180044410060229858871054791509162117789402143088858703261839150708624979764037055233160202344252396858079840723445529545157841384748550380106451053150977358891158192653156503440428163196880900962272694702881913225416404494521555389344730885106526925502029876063263079493552725972908888376574980524684674170264131364263056152036787427038481042788580635459283056216951741538273226806108857027591375231306445464056209382366566160883626855352699702171624084407609221913768944678478321119760031320966039400934968499884367118763735496619254779990061155475626804333196025036362313265768970588647061713737605814918897254592735721253170367971029080928723274452604888978918854256214414025236036569833089104326626386136012215687853891867279625942552817968984636178789150397511392473850640461590648695076659129540190744809221755942998982747233074261426657496778993725875094256035157018226189545250233555830156254162514144446566405585345141103662355597618879729055146890769984879033648027631305573137976344832741191061167264023677093529415296223007016825203699589724641577406749873488775141348045609309198742154324171794712681155179258699589030916697318978223755696372433162018484177362954476553225222311320462250087626126040833912736323572854773457166436971555724662687704172967434610716387373999517670681412647220011512155622828350589294315467966360518595555984303099717970013464393762644408719893976219196960346270021484101391571048333262181660698509320541889021692759180310613422699975283874197459190929624327345707884662502448828447947005285996804754645008528727136302984162257219277406788112810851258157805873893899553928503650368168109046166136218805649270647318212583365476838815657509323405275387865011281604635861636002952992830161329860636297866962491320883576817462147233156198126923332475122558819031330765632123654999146669871983758266753687655516246003238888516462295921485653459566691406558884603390162251418411357690474145480821969235232591229594953183049717128941317964540636933856406071072716716921521547594744434242620650432900937042776516230201758942404912369377855081597297588037486316543459306340398191055538222866831092966081665124980447932922568282881808779333118765276491125555902997476378585638159812307457410941936142444644779593764407908984518392474262640913961251245689357693401597159941304899258763080141117984982330691379373600963390874775355208081132147271071915825457199224557695770265087600731799099530593365478088541562396487959912674601036306659896307808487957945272229903436151171049980083119885463375648139417146377322330696891501627962051458143040915971255382033774882497832851608242538574665583293696305984252374309876086385712432543655280123730065723186198138606714505672063185650237448525075026632074771804917390429843620228558888680185740597678637407001832097028112557158082595017523940921707750415436569324063482618796004525050636155891796883496543057442199241490235227646508667295603223642176057897301564042676038561161550365220598372541284629225203483204264458302133370703321729769959825236082780580202800059552601015365925892323783381253908855516073085759678827906497752094412934683311119777513808077605996690834058339100557579362226608440495980349693605049192383739575371286325777554551810735634457532491059006320785107045576078791690497085425252718976234553818908553581074125457154506526096643938249731617237634260639137660110195149908960034124541884320007786582286767929569572895733301364498844848458122541839263155374905933492518975596322042503152665033819420756157679613308841235153497388942690855999091332681063045229547855010746144274501663686267830730175160537659756113335889823089547358511458704612205458243376724230875440604082714116454050166976733300367789503789959979414367578756011125629811840198313625065281013551067696887640219474566510670975869248594250695487605897308858753474203168926525893697313478867152631824874515472954629356692393078786305622639364395561754813255042236383047481390847145535909305259103138389493447065138767400319941804956779056493868850903039927232890026089307916274825501515018469348700558185499010508546255322708212131242192540695135238664449997344352994505930482604213282948550081139823769551172834267851377687969111920359327899246455670595338318708184842734626794422502268699085566268779361380231470125301334280667182788755846405625231152979820109460414078012642724704559933275711728958224745572853690117253960580625308597037041246827776351882838133049093089964667640970521362684524700175467820802071698326591555901000424528117817472821247374290736810624703773240916927737083354959322455017509742122640985798324429716995064442153326156718017013782327860518465185247150157971008549606851811779116316136615160279288816850074421032248262393299456305563862458653069003244566486263720970415145935106191742069727180006370281438461823149957740118514440357974306392574418110531970254336907500834460992114486230522619283360436409976223734506458495584116199769598829300606034787970541462879929876066781980881966282688856295542280430096634206352630037761651639954091497561583169924088248067876434033769404755665275410248911577665299005952378308595480584953765907209327527496686432519151592177358925438642131026578910135104148879849823328935966228843760943550257154009926718333956517969952085733943068426599168706405025524437138914509540483585375576357703170455716668400029796611446445262463611234876255320946130936241854065661695704799588965805337422253124093244199334530196667017619934665197468003310877304113642513435394242220236000870263785827462340828099167285727363633104657120090033166888732967368544351604057248206618674508593621680833668250449423161728290384270496571698237179422932716850349302232599708602179609084253658385879340094191648565408448036412442060125319890166888942502329244264483611098859548544944613918327701212747580266367555654981470617051996259653547480916374621498026963179005371197134930723700320297706921555724912122988731925155564548965240930185856393983190668136372078241429751469854531485140176568828428148307372411847885541458800202275828729763783168726384678248196358339879886893145078228300441644761202720783585522778882174309130300199377474447866951591977267399571764452027993251325307814749938289390147596115869308796503043538144122000667188531575010796163794176082049626340671441324007586423489259140741394482964131629887133515229066092458350257618598373539934863108605028281988411184399622039277763547441756745995630170612049106716161900419632376566623079204353895977327057356849308236315621379988151940925724173033294388514733440188754149111232169351910384381225814578633133486050630570146890121657938307118571956156673526714482241433656183692988591683035226244263843094885792682757360805616178522157159466692078150103086839282483058757403702948218086541565512864905185651538859111441997384876850524533629822126327994345362023487187263869330947315293861004304111227863779993047972200883758108335449188082406972382719273902049701425535561026005291010547872595898455455893671135027791213659851008551781036755898536111968361491517474819247304261993476833153903689444670906540157193783556470750535038495441710419080728653477080515925073832832124269119829217521791015626673036290505558297826265950033530638172993393551681616214156706375034110305047430581032546764687435589135648139099594086081497688288285714236435310221039715174309783173373303143844436719537196748588684067684536693750749121089682924362544982264902329285495210658295965006209147588772705137408074209004609618265710053332532112771132545703546448632928770162352544091890628193312643076346454441906789542656447102219921534584465267832270814911763185389937155312987310368188984673220014288835265560191069993151751128883514865621704812730773120706999638201973705394402515604657962352357677007970694657562274842658460136338257160069801137449583902648839913276939551148107712691201564296789189485254745919229936689521550396049250848888582065512229820894011412484795476698668347211927344777303772316415982699723189622248617545801268732284164016919626525543105989606969950642179043407765143769421141173958983551286853107914679999499030300041002951864549012681355809357628347721403079475361970201855011227949640560263064538507441440722324369824020094625851835228085233202232535276071582348314184190890641721670242835315977504854694792810470492864898681384973178934351409755021805787214909502362334263279594623011380076720892183360861228640364503593473638418806466312227614340909353002635844929599613378570547110482888701222144189841937385713729294698139513899028816581122880882476765565724722551363758037973976475274720100380284873954244191891500736134939535829198655385265201458061754952283814765903172124177595321342984140419670974904072950204488645558892259466725090611204906361470927631456240056833886233055610009682067110357470296954179664083919086498540336316660628190530281483685398385608520165648684590956706229930038763077842429543398857265656594660568970237433952633820822763729422383215557178810553413601418791045216637474325809807166040186214048911794475581988505018245956162500207923902599237376279048291881632949721552730704990432474086100033828664001822737598966886460490443061596412631415676379893674495245606911783841268455776254736857222046836901653920086254092800004296056065011455865118209889776531702477028631508646897307425278238695262180487777841403648626024271670877521985800799996708859640041950532496189492716832112458212005584975523393097896225517323065893886810100467516608267497326947933931090561171799275501752885811106333989849917097511008433376697455449708778029324096996755693428933323297207850117176789453412825800435285413106409125949362207627966732203189897620423613760938098986924835556390765529296121174121664740255976680436749199544257271738643923707355376947765406387343937293599549908636859657529981309702587776244218361169631039356568736068623962215045950906520239329496051137083596234613801765000636491770475082251564533614224266503847778714186323419620389553031016608060110520761201795629484705415543720163569296621036691107122889409100701130097062247687978093443451648507607766661315903979126757344954026420994814212525748815975810730890265852232628231211361818430002457910321209519262719570441022557166343248755632388842004851696802593046781528976212944735170999871403896764905910086182092709176609164610219162866991666855661591231517472533249461104112411072263349571296991715916104400343931154424826035984219691752722371818084483205211337848472383871524468424702707758746502755123737092118143591463271152272419974798977305907520970134320518870749146853370251277470844879746354485724166811495390701018557156190191220472542480970786355376786218538333352085957127880576008131378965723444588631003956304856265925174861608804511909835795031447021923594337859278264587900836559446353110235442202415868783269284702264098803285443780456260209277658328295290638144061979921423292368728009256835383165669682430208008629859889510004120423848547446109076940733282069862351089572356623720451139622504690217368211673410771763860417095567451367894054130288211158737255038278037459217453373589804029901397905482519978308166618683294143186798211203035328238566040034797540302023872169679226260911422727035544136546294386424549697628767975828885017202535302375922338767583002262937236067962131057831776907713806148375234971947927459643325167397598840877106074944925562965719412391166154618219584560782160624127681917084905101131180107413882910493877995239965121584301377746499522413838735166230887843257832293390615167193891210411265971870724017708091154759217301342697537902654002027743401397270803691892002730743403104728079721478416137505471342934448677301128925157095179563347842234494067135024605602921770872701518435093848490864068241665194496809055313139301652616292379516792129651295404101731599445123949997485670848246092121529267658982837324703852062078518871402287055106157307764738033488425304017714554974862825997503709101680297958423088274351950785673704728994946051509898218132512321303192426328714216730127241021426513161138296610703580776841438188877727708864708015018874136204142730579447120467736956445110255699502311544302634762085280002323592567003735611417704271385975171978998489561337800194708904274105909618680635838503515985639811247182882667940201567018005594501263594734211007579100190350594822238892474979443189966650167707345435748509309144854200904301770981418451826497584972316222153736015429927695554531115668562225826099468984564061798817280203273020944101658215056723916238514105572585626065963155106352482964022189645510045434381148208282580221186265760871358399925526704902410235873489034732309423088861251251873516689265200525677429530111572193760717138971297751119130195142137515258439345888138075904374990129139897081915583646295080463306537299032502375259948957892532522153498888834993071795705531601421710823255477275836432065493511274536715119568856416169817268843578221732718016582530387281840677277352523240073236580334048602400448891581354721776547636376572086441830342854323731053202123125316226852397802968577392464751064868668909465848503184127912803315460716786545547240635310753409578091748329326189351139065905264773037810147474128921663403710783783514006437499416777117901682092270165292025443250896390920508874141802868427156550284279139939022379154255782107315836274664957350887408371835815745569006326566945427417282898623988195217133161284265519905002081762850956492568059954203414089280481001965983329244254496653141699028400603321831720591016358817956991941310136793422161437093623496639241108318298079683784302058648983098712847364367834969477843440144795504013122679889483397000553265673841920424380294993542335671108026126852400792745076849371179656629384815448652814088004702357558563309935322178892214481069473332673105388655146534752111750035580905409976406710099538389865403784111252222278084306659242741337946134360564255768902134756321069775226860388389445175165022602092086499356024808307602252000509071317590178806017024323668846663059167545951011740980744739035035467509793979932079331188686671827021474641056126193397758604570463455633694618173111236414341154000849657473611207823022073203017322402021787987357990755236825739373185333720499466039229273862731578591751854472579884287064112958478275377806896223958437617705589709198713257830650848504033308208453342331911906558402896467629345225839532012613641362366084663526490435437903481199993458236931258244647438376187059865597139608069565659007139446613556882117749748618105143368920121840252811521992649530901936822383529726126014307965565113263828796292891604625856445954856087548848578288943348835764321472444312872706790549896944830485402066782395498967544084576720929442436793373713550731516638610797183938552843399548216709394323161331150308890150141294749663009309559912126971738358838171702665884278002962769973210307328740403827491453494468860760962525028439692759766979171786656432585809501023156272548986492745173761266547511335719624747745074046943991310619975759833339270223027675340013496821504493022338880840020113973609641364515124085206777109795463138889412639445883078928015899051879630544291588727205315882024642305105228626117079645609928745344267191446548874926554063269845190769175071643999112514124397886310040487894252380858930301245672912305253946740999904690197671033371249524209781791411070392719962091119200550107063713142942839904344193759986420194261232069281723420293285126656632800473541623719521989265914028226225141856839222059206960568765775473812235590935180909053610634681636592570794554958122424478134425244529249140877825571409276033056825292574116378935244625887987970415324909648082549036245805868904138496816800642507537760008943770417792993701173204276415103091163906547385785284329564996331079572758597910084273801361112102964752804372425774440743456555281612234603517792211602987011474424383811536570613587301110629774203913674164678050966238158592431993901344096884877269387854679886317187524613674778570888292366460240237958789806607709508353164285536742985468380540511950810693610247944967525080922876909626202487452971647688765730496995232005167566021297928231194416179053680184125477115882961310882321049550466581990702097611312834322284187996129852848135240899693582154632709385263294902296695358884753072786018178134292241073642439221995297775130145133134188625951469267622739522705681730386941515939066228866784032940310025165342306466163844780799196583935582572804165355250413772993109105801707995117296603615541867972619167664270623753307180217147858955456312907113442960307496282861590775857212345237859941024513141602762028070428427674018404465534187422256019394332062694611975034760488623657819867494438596673397641604516613786564920421876505573962308532671227997412274840730897037014110455126933189297143808396655590403509538254429609946450028979033843686489022088508649473195159317403018320427892046897668668269965385585571764189141561574428619693370608938256105986324159028052849781768175066819357699140411758238743063978812856704357536769049173483165561778881975285182857377498350141781095926387051275393043510482635371985977656784420211264626586273969146997069170342378695023095732431872560321643252034267305761676650512273487807399952807824284168556746148772990010922462132940000240068509409605174402076569067918320211386340328099621048475658116292565173823071484057064901419591603092248107706080567902399009544052145776436353336285533056594918672957653561373340720909462366077187764998788757022403278669342361649258568551129412617232028546134787086127895602126739477971238997735038270808921932986838747027079485929389451729912165109523749986824818294717478089638686551437620401999940087612400396772507718022285436505881251454491050989703370884443155332040527705006557876084932853635025370509262471836959052451391990207241892367194605348135014033834445908591956648760633424142546025303171351463666561178452364154478138964610137233862736772297946897661892649768806765974755682906469914649707385383274562568460030171291707022590894194572588719733827338050881064372185930596305909329366104762227248609747929471472342363638675175707254966433663807776768174320950412094661246343509595544178807780141087498702834657671492989970177853545844789406846981049479652468539042857706404082082741536520599401289570927697662564862890341881368914185367054047931351964831366775112453876934586563873742851087606684309369987669011361612190233896042163770055610591338938997692345045988127743891611351640968116741409910910085373635356109335232323159183354136223575349359936908816132520716643027015405791980859949670190372108193165244206964987067238316631078348521021020911520415872228359572682574746979538162681521146299096570857949578772841553008062336640894802109035312047696945393193325139032632168118143955505045805887310253320294551365758579657249469733443537552184657067332248792864462299873869905010771889866823415490823232443445691233667799885526740472940298598384397128090244580915871931785505115860486224864063770137718159652707829176340161264822069970554730879444065055696960142967931135334779593563863870606234870202926004403000349223846126308805397317558213565719359703907772519195390050238527549168637436412699813641074156201249971735125893164186291498104789502460580543496693148702934910895848256102124050085215764735821981931362128119583877277360557224723090502127202665157925165806442374572241373192207535095843799188683381493361875993345028668687862070930210605351372529288216208972490719134751850983098658206571964141020036868922981710229589670258655558375388529341649993493215969911588092434501457801950061693674199369062278756722974592679776197547482585227893170287652588626569464045945159013612225371049171505158187607800888332842562376869176685860176935449959269561947684358215277031482735456604366412322260218014657072126758562952060450537278676337446796639694964364183702982990659668799440074752727085597919601334753520281047066453319479340036815587719700218003821875106017446125606934724985511882659419173962985557561439481638745136537605691682382034595047654321390735750041617152597230606285215736562258965411774717154966784579415714905323030632918402935786009046544564089025752830632572746849947229737998492709860385392879368252633110705046261854369328556221863328217801130334274178215092564758391679485994651521994196518157169215222885519713723790905195356101884556429982538919932717067357057023778680761143450318460019604363827709875424311147425879716989869625410757314300413419507222346236772883325967734487340498514988454810432160288173028798228828468507495811419793427708077071634089266454821746035089146750523560604923208792336501045709029843334342144649309046106844494687360417763048178805367623607121252985611019763536860859077705419560831642220584455904966549364886208242625412081413546999796945962187312989477458187818202040844574638610010519791870012500531512819315378688914889652857525846598093132644887326418918231377325475204709588079989226749117315911913072437690831152515365789297358145531747471988375272382442566850269809447923476776428915260847534107254371796310754487772042866451637778693769910996138180786609355206001597358898896540273373666960568772216361542376627307987407174945480552499779187074872006323529120431500778336363792099541821111064910756051604056479734568975981223494208305376912109933834587459216026698698631106312921837762732792622109427191287224364074629342253060899267340599183064994083892259616665577774455061947459018850352170432194605881315277950373397312255547023298673851874670251277747067050016015817723618805136189854820944120714134615363150886221149442633138443128923109411194228528698803074315598842778008929787341607953047821600076584117758914540514411961470531428204348891387625433797821169895510131940312342661295671923499395140338703081801444989989109291957305201776811787155632644167836686496280925823243891208059809543200469649202182936040118870488006193400391165267428749508952618241715845999327913319932136783400670923776220814278137099654682739084643777885696361005666761477585154309423418396532111197320126885141803991446352036046844407832817602381694779864219372899893817056881956402207764950630778672940243435321365368843504093746883473781572932121896570509464195093299933595134485351344710798532325063966193799737008760956385281470989849226142484749741938104395148153062345358475503373095019268086068760463028016576808356114787881252691199424405570617796389245629605514339796892454579083390504747069189097632747617013893060481139905454850370164796328684397628253511976256870358954582820291246859333406029943033082912251669735982987550380235901068800382938643906755757836195295792879107606483113629888030362359355879365512418030555169328943850330948992395980713037369699418945112556397579646653909721957550918599349026978990864422957326197873988588687548454809508835763454219942348010948117715357006964104467078797979406544297478607696418283523301572363544545647601445723644499826465513660808167419243578937176649247844495184523560518809099311591440756613478502823369340964197916976134383423267438140047611766591623456684811031202864687502030575832610480863930644793442806139504173357499283761900571586642214578673961098655357216059263159992161233687655412660419293523249735503779845232463184106135450885395108107351154571568428277463838732692845098246974767416114532769245868103584461723625245689928428239810230793643854342212614478370920428214472154344480405799787271908052921463995632004341243783406878175163401731440273851917186378935810977440579753177754859487494351636893993866838650528469054115200288942302974163863810539065871359225665119617332374491013063160944066998147613705303804221408653494406092035289036640537111257236208121819236075422736605106302685021447664890568010881176516968296342159087083142532066495705235448026171606740046649591590818384834962136999709102289220117224627005215582259160802479307347630120536436550376940825593384665387007932597148009549311952218801648618196347555079098662885844211978444814325513865788541175516430042274891388067363320998566389566576406432699263195684937381103253611474554893288423800841787281623381948931093862149066823692759642198911965838734319330477950107160728239103052857716855546683183272517736659288305526306942334992296502654355576904518373370420283570674055728630942426516107315239762668184958797667067909747536882371624572676013845708433626731937023664191523591851248246726261615388201373572746560915797191640340580689784144512244684679366730258572504911429682583913597382723562889499787260715611223684120743562206324830131432011660233117521271472814544554610462677284996357765399106140869965958093944527096589816243997564787916841059730500915640311414642128502098341118506923581497551078260493109513603972627825058447195510071126572618573297036789131678666154637000108495701112586874382531466890468362250823405050766170752536794607936291377646935461158272487017650664161962982798092144944818781151367260675850630389816372342443469085147634466761797630654434635208020829675432905724959688796924816146988557328952644298198725273233110998770282351280584069123889076938267710347834703275489147567244056689170553261999785909252701228346402880931230254550520674948148144359276672810309730527950226530169861489228130532026880448570001380246222338114869202317027197566031104528717193907514530004304028748409945254165547942055704779695608191904631831605920194483193069456504117088711259960052319490439553144638131144048137667452850439846798510938227972614113409203822227437730477505534623176349187030952464643474821712501935419907298422917303764335572694884160205970662171576562313615565535798355761845692405258748972479002334403265653815519372427953972958618406179059998556633588878672881141606295689242582085518538855241556192697377148012106490038630798748650370947035807860219948029450857621539586802920942063652044132806594761002090192664425777603270148894295900338669303255647485309291204750358937745912806661227757594788144352553790459403817462275915109805434083651443444950071541551553664908873766045752713810821790006693406878353612474066050440385802760722811196798166148347862325940245871679900052651536092898439565809937178935796452318735407368604534905703877766328298567426657300444178166170524974000786010801902429375821097047409656905741480306685146817727465595034463138333323392684750239016575093678375571075603799312147653341625376994384494253761813759332578774162943556733208973654961516353942170824188790855456589789648082952277100816192935341726106265110445481870603961907454433195410467862079637815199519489478881138599964488570820247792078289200306282236565615309158825199388550635981705458444559145935884515501436404134060977404128718295143536707946246309647357826711691483186450350813841229415340088552797024548298610863999793043690789447346706125263369268558270369661560824409887127309902131787558105438480574063179919273172825390163581061438778972716070150266788361410880376255722680888236239203744042452639819471967677986774617183853265458652440438038311585714684313715194743426190391231496131524445868796681191283051183020286550319281466047630511848880661773019080666095457211430915649597578244042459385354186113628087727200706427893310087892995766763496447676675896656043028272478749255454889721513812232622669965811703521927376818513411040328284097045315034365648059968265809007713831169964712050148953477957298192277712817469924110822174309077853127077102967158488335458567465985222786166223406023924239128814801827978323361126539688879760088883225977580645417935171470547009096765563302975092355769500423838133191486980627015576136116709737985986491837225780929252661949954649857320699395325162968403098814878989148401841752497887036177126903163379997455137880064256849434449441963128757019114880685082752004811031062260640920331513554680202158775936786635724873970459445322059992746430073318401459794340358677893547391756779348043663550728827014376143428037423472793310539892857882648615331259151378377964508330081037653139670417718198310588724201715286336108750586564768163435876589818300616267153041466553710405719742929094209508545263577578454986515435401919960266503785670194017856091564989327731990976463072570759778846366006499623304098749464681604255877899060899734040035640605130713849588869202354703818712857367766365737764270478794257329931874926516413153140245322628790690536945240289034209435630538574393185218398624303454160719917498735160942197157954906568783137801778696070982039750519430055178089496130413668354648790638730009901567986076056347764145861328932006132041585365952006903330767705911406489099760626149991640730696453761778518272557048352060812202131794827697121941528419222913835559858060857323473192581990698687230579563854409204336757515187757137194309914515339189698866074329366116147516597500650021515092520387105433691000305785070832329502920184137954640986123163592201039328750184145688602016301062998671617018446611979358395391217686581514219789310699180148671892383065087044840271905362897674054562963342473778059337486802559141780842713340560807613506407885783424715150055835691961406943780751401943189854179472170277504617840340549568811887337318317358359589183072177607690174138216959292234962580608047846720360813708573073807075813499946869662131986194407262258393247306560817534600459023187111893688062825176411445548001248352532401526268530383238142223128869353739144281438981230257875328539491691066904440783681648213595937945038714806224657795312545754213926095208046715032528462064449696007559318048900796223300538612501527821185088197129873831880016393464694039652831050760491924190537727792628991259810347197899416507465157865898419488983087148822922526028656602860655083176592800123912959732837521217865199933805756998060130831795875321132319666151366622859745920153020686286215366148069039068688946303549522463870618400101027724224022576443981609324316647215460761493460782752044236311725906903525857735155806626952841979840849553765268958452280292332775148127601745538768337649876671538020120581180930359107953462399006393064079607776521772358469679633870153759707059677455320544116906131886799672411070076352336955406681881222060196467274637222019654077338882423728019358763432575312508941061143843116944176190524019147763053570644686957118104235223271128945048997441211513601606837193658164583558475495627805479445308012489619534708227958718304618577831785642682335858699686991129378698346097360727668308701073069588280261228506930528602924028707264634650674341571678724801932652617313587916626775032542375831236667785415204958907031916815336643258554930852020521640948676317520631539026567730067162227843492190938360366245034911633017419019399974699697421024543189053110570134033290954045884781689047202251964052029173989345224358048938794722657213248825217276606473322488231247761761239533645206511993594345117400934170138313225085532153227098294400070811326917398508218821073541608649269483133349811183121741597681760510640407359825394358841493014637629925591904239172939178971727457102771454503575809523687987438841718586133939973482372468356716407579435151580364393201761512883928022215543343421448120481095174809470469399291494021468495359227479928819838852876109997274865170987057220926677628671422351715286213005273610749373275062341883537984192523869441110559653123612699406095927367708557066173432115658377151763796511053792808050415755100599591331792400492853302689087576805716529953889631465330366677613855286516372439826353725241671922372721644068748681665658060298172634717022128857844453577526690502058214432112330854599115513450422764406708610811625111823931123499799026883547394861903566563168822585636125990776404659419147181198337269123374601958814276595213508257941827410888269111871671057814230641336393872949416019133021488797788310185160174377721305050586664806472854483941111799327841088487481648599467233551654103269848990494718190438531494406112974670004786766263104684436404600942962123568795710261967189827554727592988560236609661778502364019233034145580229001817901145834118760870777505601800434832806692883284120573962522069662005318502311071134459322264636009945065122509130361188025286000556771300558815013500146867799948040208765193586538753645575692653319449539295295085313045540898419547403472002704878817034357775032943500845002084587396188597635375709579953664639543092340612926483453825162639317408479788960172142226441291917780764511659587229431638565448357806073171860005473091802167105085492692480985208382040827413040735119304455607035554294616621192880105925675089405401712658121745203948993092352410126226267472049824561369451760573079772632767624337701654414111894479479316743251681590517960307192211491896380492629008215260385893716664064713578045065437517369122965503156072161047444346421795211425856353708548704734023683705217375591636208555895617499044014281757911059128716311245803704618030029549614427170939119698988514365918363532352596138681713143090245471938755225336884793613203543165842980794382506599016581212098518054647751688911952920441000571861348090025991147064341558641099615900767022721358704402557816587290285063874113658401834125394518875066964543828790686295448184933920922103110060571379975407213164862485978310890500974337763158501815390683026424796788488413145931429716866810854953947980468988364584170529655991862294175028229047346240711278323167600417165593542149153105147900082083672441207352026358984747092797811728858886128029039634998782157347813392607423520638843356727128842404115284687597818984528113741657800768394061214320401775525631790255629400099446557835644724219108921518204991868469485496395654890130878324678326001983348032053806158492028190101936080300052669967119235809440583777828089575210957366590684294519576823501488576281801625785703031080719386785053768716765182020181300922706801096251918150148196685786610763448592351745196342587859299778105239220595931658566973874175317946489039207072618742116545808331389500912431822516285031701593262992297250455156305528352790689500521571388546152172402900214721276789633826331353433164367061358027235351364242923554640554056022625648683873468699061683676950088027827737749080157762507753497986595020444456227417767908488866123406094164758190520675956017810844962176386596886446586088116472891251212494172479766121217211115038544903226066594703556775241097063815993213635260617317923988310895033872446706049086763275640508097720768166577769367806143570075943630085134088603826306516115626189973817795940675347081492992767365364893767576422819818389216091880039364870573154821348517502094426287619111894064739997228654799679693394188400457438241551661601349506503672395404816572791393859791277422683004160166779238903797010262740632285854281363362629776191286240922350831675118972517536871592743358347129722999519525663804446448050955783237477702978260859217268214659033621469446435208574357530639776208323911783230414888223840061471164633534025276233209202613766937911455511078760243706870549560540492797257648813805677811535710353529618820690236510841621370268425056534396507692266998947849840527654864252552654963502549928827106463315745658042606837100120828848889874603979389281516191449717573347577580978406696894506991986199078123624167436859009512604320553616203135392181091765130299278924830940806250081625050027848928697890613892781074396713399603520934318813874677179603063768635466839877009991724770117927749909520431009979149292459397255417160962037446189345614401718489720850424052927126025113997646764845863466757034386518732185661059317870791490443866099717324023462612454015641068199151733587124738630595241126896758980133832761192365138177450234010312475603301368507790614421592952203815367277218211371937936190039148643964502100162943653901810300601865635948960851101647818690882700791692201653601391317539625474318387944303865664892013930586931013132611057920615416812948095189734728939771813467034379082822296204032345694819452291334598528225723154844070626812381065159048032588189786472620565901605680085403893309928856229258657967183946049346547132786201989287494260839360786682644314440496260403048700347630195403961857225267718351916779201811301382464902677579429527139982918187517186455995088721224516922633118276579855859437948280391694051246441441687246895835715283363747647602252846108139926856880339930539338904146010938137346834261638426789190979567799898630632094346218832008360429079366248805467002112234918947830856950255435500856402330304691837257611075974414775913707899109775620923635546188921298779284656401298112216222816529672243320669488825511362883716807564179307331027951698080326523861873114396137067438459889366902966029739638765479945306927850287146177014770917621585180490727779262966299801920703765268632015099371208409062573278364581460981157172453425889531883163381876988129724905680060949284562975581158350658359335392692655356505047142249011289431940183143225119011763502512356074869653979208569295742731478577428894786947344544483801893040110187751399271413776275327553871764376299242343137110761701597526780215024821117231986591832057413489710479385176005572787874736821555491472683478259169664034270642208514670502923612708236154300792036773742797246699197869803798939008661165758354957261038502687453391612040121103827285354013545512459592636403356049124299822923762779149810680927846161097219051483513531505542933547084189130746612513344385189845142434583723313607478354447563902678730216604965013976034147114273879805789462965577341776670682706922831592384987394048436720655365136554022607237081097477166194282496433391601244034290817860205650504945079034306831634113020927168384623316700517233316510239770945618947708761271739154913008774226581738923974420303923700649825213578653344208486117833630099575542272732340244427587907059880278838633936213273951406849476136881291982265489375936110394074133511365027771698466565327059500373547124202325551353572918297952716960941032256981829220936569121628635415146181393009132704474478595510508862451098740097069388915571724091735578375387626451038398219201400807403561284295031969171897803002594068880024282943366254615694639920084003333543665672045821756415000551844695161852756041926953109466907322484613634766757909708690912946609503301776915204101911991575414629542559168431317133407362405967761098379794563906367586051302351514367866163590776507974298098336642458646019786249665402432728203793106747355862174700126848855504229756717952847178454511071980879936920744298578331488061141462995611013434165727729738461035418836487613247479420678485331958918496041291870842135137722016045226221638537284479066130705881467051606429498843064601706461555910663655724723882596149057364239205597454962237084363686598643762109186590189721045881852610543892896056917084774342818872227133433759524558226856565891505727288497298394930095972990887644546062107614524717670547433831627811370721736077829195627464282970946985098039977443937756277832533450924266387320551471413058829443559893991942830054532940496242620558280940151240943493352166102428595065150675724888496751862690153673685111508759268070362831008207362362670030001867783108666716532012183873652647337655176276927235035404379228460954960556833909964486239551646202986065176735215661794344271911063408909063682972140501973603900260392680832182330362221496618554652387163130712066025475601385711070434260831007860475837400438255107997364099037032227683617675480638710853783573535035583561883120544544971507178932163906457077003209483541765301521474801834076127976614130564221156292387276849275982079580059580165172363307072476689074545387506134669773147613939702354062718734287684560677727689965087251432261226627162151166659439056386381099952913492519658371686408734227938526914744127238347638170775507709054781100274299688869823793347303261347931401535404908496746648140542750148792189670467842051178102468617585089466647221597828302513382503730034792868180083002259944408744417653510908470296848196471450525214582828094764975754322908271197515117282145510134663220187343558963239327000386346591627792221670151863796351747066396679930586268630032273411247526686423461731684337888657328539683487870768365133883937587767995663132902021794628150555998050857448140772719725269973412263902125703383824359619488470644501163254243405482664863149782908713299047361558769343070109700842017089698973874377637014792672797373664932597455740744456078401727066228282583961772728838917209099471334841426804221485230589503894622958865720567702923810499136511934181036408766514970201263228572271642244802416941102192451598173210903830014649637801488960553810231712154825158255594350878634286677982927187327439090936667638762023838301789270449359162537542752620152540063890875344374656148559877510512122665480636742205009785397343869214571037170996148953786234991596459098600965801235702130762849694109561356576717403675329121786298148775415730760443063428397487260363391955181833918755472218616935265677660951879064865916518911274709777762973671299077821602524145090570299057135816505366441513577812959602090072727262445440623630672142326733816468529621539612600952618667288228299954542750281533410865068525926411189937059739049493277979337524441973860180356964866087705775716904118927500896707083826125453927526461744896771463549752096277526823890302789380625268949865868223737508720649530307887883802136774955973987896186419465050854446000920552783874289714999199146228889980983636842794321007100792412819225060855246732473863694302860091095071025885493229506247330910489436956564586642004421572020246399729789685133608716153319454654366072585688091828554957394611997788818466524043460119221331165534533195287117922263448093562822956224263291800494609407740515447326517510808007575051820998580328093699234026573953080219353517255665198166959582380467654315959429819568657965181113954449137883854663729350828663377076534419193803246657649857744832808743088619247071143004535709982942485650223673982774147283651826844191773991568702245762442212539464752667850379122175132942236647663196086527286066375617739042888206994104834481332348734490225079858278213281253992532147467280111361921338354669177880350208207834528381543100903867582848249668302855393392506105465427118844547298207958699670130955246597720558040334038246664695717319062132635615644601849641757744908711135507890064064032035631341156830573373143173892435280046244790149596125818292854899534967607753250570621949123908178335006544864092933718224381419542497809142773410094035190803203061379436690488012604996102740943422422297711245583322151386957667071943667172640323070124487331997727832733694633811281758786972845405995995036805142585820552344553860503171883592378519263892822021605645378461388940154459757714208435052227005613161086622443932089440863751536981041326717880242292062954516141263608280525171299452435460961116107117609104394683283906304819835907508704323633662671177619273050542420265296512911837594608588861211077353420447312871797156332441062529265173897212607333693890558892661406196589774170537113906936386427293756212604256411214319824016340914899077951401601509792270521709510779899606053068820208632249521504575454415889531010578911482428817912850830508864549912143299753961097719083747769434656864146536329285154210964320514309212999170054975378749444806933455585068502981352409325694572285224147051168997911090954838753148629018640979681062438051184438192563204225031005135051525488459230634727240988827385171937847452201561681376674152214410850895537933465236412069729529761513935937423882771151761277430974770509159069038379336245206627549037523083813012328158805018976191819018120065643559970371926180331844747965464516650818238141403330994680038982358508247120469240014557376798939449888876261895809232700808766952906029367633486104989632974208322904779153283109418171024273060099295318280420222591778359606476936302719144862715373614945166677521455189419254493918831561795461224436414868298855463121929443111023503041381152871569701253186549517470317721407575881537039992778422894034852413601120745990789607992735311667233586417908716121511157926175703863868198641424931055667931410047385917441095935436273086361924817785903596655856511774169589913248509951134236395979125663854805746144208790784238758744755749805668504841822286180242380546234406469835654429969787862242925220712428008828062089960266019238035000972401348169178765920877122937682586571486969966342891921425851466416909274441649326856560982662220243428008324201375549341204194464231019167438737968735870479798656109936221420563139809470603909070488454858194331314986706673723746239377400961386692522251021534104704454027581685229230928358852362588552275839115584436521382594074091663429735315094737341821941923774991231305752026538007369634953601465252164850170111478825982221308973622744625086744458014979789690113504367496421695024522526328276993976106567409479398947826476228432738130925646267213441462805062379287799943199834737406708091728328149635805523908284212492135495737666189755659216445191453938217814881281974380124143564385781439044789490198265009360596399090723189387274168629116791847930873114699319427482197626253109344432389384407568942909777001201510662131564970462267430894153733808026245616104831433101743232757069720750012640414511547074822083198720281820471613300326468566868801305087414094244603741734606856467094694770425146621146926472205436907602274148581936486811685186086585334436571336575342128685518025728917025251189311371602276721786042743146856584467255425260147086914339413691339762198515549248668000206503403287975161279472700507025679696023862204357121217677537655375200471995794619731971793179355040511554132649057360683348454060225937085764857384785564437773113378526921677096842252649075161339944695181320690755862910327769653411185850151929725664534427419313424862219729120652465469576054156087804931199286044885000766806308448833526593568761135202814023433042286345348909880909183703637759068460971551823327478180448923532493913940831162072157498071156459689757301559462415805948330344339877366448762424887155870036806639562528158247225227631561029555351377716511367452991406187759320910153531946064533546189413025005781195769926715438504122308362952612957152170828971560655018783412450116089313886858395567346748105751857299975400166222557237467457599480725994154475926095061136002184349985933795551937363781505791500271870206115694319948271958449142639907290146846380378064559098398252090160587642407645406733635158334072222099827908491993101618322746690543313691531639810129527711959143198850811835820323508936335739423486664711713926052193354841220321412291967787124718187506722711318995566379876196520263538550775259737133572183096854863515377684793680328503746682964357669437685932203170934244576282519109879008723484921655008526377426073355089884038596307490412349584225258200944816595968759293526728379252541996788870441770583650985436450415906562953378922427492756513767074969503293344575781501475365747397662423133413382360264968081374220530905100171358757339404755807281033464295395965948960892475332008097146490642341059022645473711781694739328230916822625545397541089034175962192646741914728625528467772357203134327685115156860964729391530995549251864016021033334409061310509863473703628721376615873085186483088574516411195172895708834385595139300648114261001858439390503739112966960388003150430057472990343066217710307640519859241091077981170969290281711667941884588627078800949210556206961361151585724319501048950855207759940372839594612392240864730272087380977955728326390763580012726814119491558422594870345886675322145750647238871745295852726674680235749598147511861432399205608645402276846558113244245558512634316391398504420303085099453699397137773503245892178648224680133101749498389223490727591886536548505699756950145519249786570227666452460438303719107028259354535036747040379383481809996901291961157360167136933939575742235558819966278316041826620571673874951893274244427776434258923909607022470778980043173990553754131616807997303351953721011328859119692169399679514735229077712814941895293703740708282887509955245022505714820017880365375283308234180329061530866138980936713186033856913603415848264550153523097460803209446018517315466782673131329190361315778253641447166459696088315549977015633851647634622714134218312588570788660790445850954842877135509252540791491245283544501196040996464080667542371820281449518892794709258568759277210801290801249037720286477065440536785607969739249543681782340573871614539794197011064971519615545634433713788635790239019446048584852342277694061536628305826476481797258681595189261651400143012843518830738533069454022116811016205608992280539403146725500605127873558341548652933857676361284031239411036807541347209952179256291141615094872749381314792641867953193802821994905774017809379594486961926027371446152488080485144807110291165124042340579613835721825989425513136340281734039251926117672151779637450437339655475876210624863695836114816042685073934993948880010755582213589434530519016510637626106818051201600597339307954662262200982385398160321133926168145854824463748963020695146531469573973701158827550430303467880306505723483586740394792155247353942982835165550161821763957141893388424923248493676817769348715704041929227088499744119604206591139481426833506505161833257734786602325372804386746483887687764120700666118111519631942906692657254952532113569225205748376282580923773160078102415846058419035022146203745214564736009866042809303276176265723221815674701323418948401724818285319089452976414084106638904912059262857938644837889943525652402839210933271816796443150830053959226918810111582879329800503851133613283088032173572489754114339140108131249946251940223008077978715722670511473291823317279509342506665852267257541697383882582858225684290781729215912589062135934465208535292762083057208300601929353053528939126227469094630748014932679278152196322651666497791646083680247668817063363458237004218996520475631417275983560845019313298430273345854509105823489195411670158841548889235438168639785689869196781783752993034070823723161139327223560441609718650228644490101415442256007832789107965365506394989369304245223898436684458253766421997784077732185299836723863979118089449273719311961687113207063889411528098782993650132262331744651349004778771178898891071574926984225330783161672379540504441426553205236167855112643210918283517598498474976392727926487355155777691026905127302810226119428399476144557018032722994744057360175201027097405853445486798391119777587465413223773688380342952063248729472481824396048643060191661902317884141922449055760042271064601641229852500523757536572926770946943874281428222040710588498159016622661241192484058764430221274787910953362291397422486020275066244934703293425360046626168826292570891112036548341608742525600824691558692635858781577681521264382795489611760016687891937085647441930049926217701092515508574499447413561241384591556432081165050714817791547440192796535123290932177264516046494494254424974517333532153756687413875332771559795575018755233109034100154568207721023393865741471458920896160686921524497176839940327708227187791323185208600208700796199061406751153869684323043310619837946234630643599858940465701536243447181167138218822083061222569309517263269641824955048038764482980013900541609098015323994917469541895533597321244205910992835961751203313472016067517933866047929094045915280306630967437272782575459170599045595624685856212188870394388176532730221006964766365864884008119004966937450565221069188519023385680381520196493558691913883869370771257816207877607905391455534079877525785345897014519436120661062428973841139632646350657282711677266687091073032918157221460004905001611475019488881153543462877676555930883749943026182580364437073730787684487333522837258755321801788455802952310949242796190180093474090356197807958215272218235903763439005524340392357330369454155652642733787936353629346829384297960921382119537326438985869520629389906978149588350874347572092530133369525266467026937882256989132033941201768507370396193110492102999987778105242644459790644880344555727724430648851930516205118185211587730833836049279587738590758173191887594055390461104809763267333813241096368251149184189820211068636436283399568298911088428477099606475790632063533645266243625574998022637417452794481736827447619078483865559822940498763303085114050798557368406495393176127243054859554829060720634809017700177230069582607985924991235702282070465344034856512126075125648668777280778356324349128509672666160705998600606804841149665740181136836375056081189971594419080091038655618495185649093183721483622032527403289388494962566846050112264150235581566000489446033714444543005803960734201742379509375526165214023442543767055518418313707927421875903630661536073306063024812134280968056874608469157112096047654264002393796735929770546230347629766255046027980431265859432474791776714947999559348088971777841270876502426022490940280687816053558378385392119919396136020502546628933413829884567096828238013985532634499068947098853206862912245403909463682195279542725232433952852561738343987496780930851154228003128957488042477886504182523340911853168680988233536317623557072706540363427800087420258774948614541314353228500373937129868927739849516420389909595181591117314642197056121189944756628174123500433259229548347578727562287864529561734036226367980405072033364813698981490795536131938608395158739339124820950508464188650414635279956489410005353674109585234410408501289788933439265566393075713257787776786050259202064365841999733504063349284229912842264327951010499178357552720109215537019775770556601121105821657176971065801362621219045090113643671000681435409722462123134152949269589737475917532040480862935489529358116125265097623027048426614168286674573036747174067358876472565682732188545552981621205029263938697596633317672056204675494931467838331364305979086555051659498186904610558729846686873387571448733032585483949218394299527617124400597927718608138160908309610456671888267334838693462961974951160496550722690816706120636060110606632883640116737264358895331867977983522286055513759441183601171810555418162146185235860480820883815104253931481230978217662895537945876536777503285605753239302235487921773278725461097047123441092345182429495306791577411874314798329804180448306732746296510918611918528949337146818158295244985277462931668537740844614140260784949318967063368633534450391184422071627545151927116086684513534116658337803597229995080701978787109391714851690898357403134862224484561178960703836462347783587482100294102272447002866509654628710575038965590248598868644072158917208256131556107907991919378367892563188256003936515876783424625096931258281691445616949009081830829485958027813205355207138439353820630357682462902699273250011171982514446509793358255806989751655332154361870754093104284744096772577130214094189721400453676845854702493683359198265483367748461973670822992946477076333403334562227013131010253354713446429054507030776116588737922250501405647249350812312552503668728187547814348115727187022096210878518411215743084461102926041858002644438055886291739200122142124579912997430752390413795339262331397766137976234250102247501303911442254544444034768032158999828239869050756768440804216991041842209715767176120036250965775167714287484369984149930214106005868437737286365143340824848228411492791763356784203380110647368425217226787724133458716037970436192660332612737025400424284997891092891250436081764249332547510213998289656515475695533873949990518257935783193627157786255430517996988898280809342428639972800947707842324031530971378320374791301678220123849082224621390099407124955370705242111669664153146802758428621014613747922010014883991400419363757310796858649643670528954245779555835427498056291246192463108555033148904505843522250332713949683575404091919774010087087673150182188444783688501253489502896874231833922185896794932660543440602543477696786018514535198241982014868252747671003791416112535752655071286674611594903042176206540601395406692221836244982810047174717972977763763359962633574511115208262529828609831390462791475299231880490467483258479579954346527131756136812720108010472464067030663664557151793336525205060383844383404796733404831488243977812861016613724459278319857757705586060971721749803971899784000622071580371683301712293703426675694212350871878003457538741893133832169638067007482625268805209204703130542848457685590113304529678072207860535177393448786977500296382756784326045257518095853215294858079312042986057159674863173449427550111279596209929141801751727742841212862382915231217159616559816710579733614774124069967704470472674915720677264243197199243852089386880692400779876766951157879705126128773029746215947989446968548532416643888861595119811321384784310772958026061920846676473701939956292829467614722194661533010033922433191577390171524269790819508876173200421214105409768708335753379179490937023649060392919787331186300639070620560106413925088171772412025275417872432266575542647034176626460597148236845301376078845977894006452374553906730229099541238288678930477385623846980984615285813440859019404480310311132249052115406567101563209066656648956247813219866319050288282726093468647776754956902388325302864756515439392620126637406617857534177517952755064845982666701914065872095324119271599868477162258533904099536348011232055219060469850610064624458263452381218629710576952130407675603889715414075130711226301517910974924692941469822140049237546717361216800031485439403429610073924709107935403823665257681865701235052019116730900972608219540337800251962442171701484405444278531195933973954282761360127925699945898269735309839531480361774074029361418795550085744157085557805655975193359597179393750051014742502846634831236660680496357532123815769175847928555402919211832931883648598757654508569092274389702836089357842214347392139955644518309906495612240141113402736116338055797171415506053077090549418905611112865155155868001413260717526584095196859633458595284492132655939406406303913043841603883591801345263627073806971986760569959146033693302425753211172663521521662442129102280435081891317866797125441069517628477030959956203107496837435609095718264340353515394352643640199183383510429257286590977312490893189390501981926985043511181346650353212163406572234365105800110689848121670923914399524148225543934503688868497777632299594684991440467237770522713283270993973280032249048129533907219414306436456723049095099116245075236809487989255003797164219895624281055275638188483984985598573315180983854060432101358461923557024334014424657142145114321623446269420421940314747679659114611340094566315076298009800923486662394660581857843665863542883287336386198018391102253260984933553103714409827670533914957043050894843150340988118017187672516181568377709942308810204771386918091686857794475716970309387898168071031494270272065669340875719283774300427938396426566866446122632915167592844134284355215521141592023200168425214761444321414458388750689423076525193759307114142766318820018758660711558656916375845893594384489224152456879555774236872097461586422283410616068826123984133296242219952912255398102697440594500929875210391753891758705649864304119313899985570796818772111012312689878241502922607755488858752551679519151410328123195913764441227430759351395655454407330682158189880091439227381944963157876582421169742597612752187781535884634004493329212424489985701728540598883134895892567751580438241068130488525225496295192999476023963682889325499861046843855448090571501103280369269835845286915689700315788875751232769754393742526841745106642547615365393238332467656676720271851906927310339969831991674480291192967656336468203927770654626699503760531327095531039003057769069512993197627996644667052712293604485684637442628208143884726885508651619675601232554156574606865164177955601354291762286120045946641068663056800376607834550382759211091723076538319450582674714792747854848239596832458931203838888272244393690335039160432975744599495873047281022891263867883465768683797717726700763158135179073705347855177080004393596187159023621741601742285284302054824152619008313242738058414059466342456212112263425424930700193507411120856654024845181696198752002057847972911546748710394554577644355891145981921799830920059495894787514444403856488374024117111061248869091617585494079980527483524023855377443382908046347525373850664103704473646595817416514811264434114823100370548803404698173446588538718589904489461794149407995752105524551478668640921190341474781549960024032936827736070314363914182070236968850246340138874573536629004893504342931926854718950214976091296600893801912374968492261404460615270146416006306536267900585708582023331923842453358809484883334567140221584031503909941738968226837073957189789279288335739499194589037257517452746431682352748424726221402961797793404079119899857358669088127389056149111335247392240418992350225334528972926279542743130143699554053083681500966534601065110538017987450195941539007829406774372757271147078698029875665503329878909766710505465045924128363263924035296054915316766952371066747011687064824101806859680675783436189828781443541872202129953233147647474673615224236669514631491911154138121845991688219983325544074808131667783795103525381418824997804143714055169833455139082550291053090552413387050710053556533457396133538893924700080732404097437193832614094528327742940466004393991210881448318647371195116597186750775582149814459847022799861754352702469307714347573632232675994314977629864997898347876396361909023904939766269584734432343507582156978418176864408310924107881173832692967408790420000491249034856086269141130846988899977516516523298497408946311233676252259474170670356570468270247038026804494809770659388594971149750188979624048407256054237515734107849231905690124116115484504915111442790445690930395927761687103268873707111558948645432938354118068771689210997963400707330705928851946815399274426321379629579702390333105655501352587618233562844379985692345110080853010191658404817007106054108406191465350814683899739221539620413852096080158968849604512480772958438799548508556592067895317856418682512067269052262292901475447337862349724991619738850993962246560963752563156830037571281983540028406532732798109945818000739934092235474760368300308116053384061369657469948777684689844780553646623033618661171998141783027553275585089951817262720251191426444496739176468120130416376345018074959023410183728467082878154650154629235671480850792825406438859071921980158498281786268864194330924603654863459261538788851535576402949588968451086262700423856957779959772368307275797439697513519035741957266937034624178071763594803752629377583699112128156579086392742337993275144660462810925415276486951384821135695960596592094765269608313956332915040823291627347449033774623832695216057856317412374914470093148435076930861321143715660770585472193900366973817376803560928847734377655922995784863748558296898607717638977815739309103700367064537892911084116188445318706297554746670511669741847752268906378072544457344073039617811088609317897209565083343853075797015014488689375371209344195206690401627733537425775425234359249816419855228601423537763158198492436002017092895495514900199239240272267493046195112400254870564349477071006686154661629029426887303142168349179340416352245400588031978799842387680051353134890236184162160990216940721549952073628072553093481645672143850551486693443872063170650027552575990368924230814543506990982678116067881390590440031877502683704627005440718762724636203635776441814498238281000355708472723108638072623849623145815616548303050119356653774273589252250996008576014827645662298995686054486569583823650006957139702784682316059516884221941871882853344110368556970219249882985704121473155824639323434565919142139194277070352032385400223115697393825373624276095325531441286147983983033222538004587007272425364066381071767251009785042867589785200501458171044967054385665976380372705143205043358546551390578985993139590835151364946675207179537383340136495700536380677638392606618038764081800782899802295998031953989482621794056140686443851646695608693707266515822382559686016430072844239809472273798046172870266313411507992571598355479303122473354921776831561452610975839126680760582926089126717121877413580385773052377057414591622892830677505613622531188023515943007833601043987363844008537265359877674010459011499935282384614643990883900906261396826743881175225870225479121197254157108478178351188728052256202950342778430924854221260640516722133154431822627554072223915058090494451233111086015970127402791966857020045803913111881061239033002061961699786059295962797783048316413342623427092107204248995407732841022825773925199172955870449798505795725864233292457529804275261216075690276926924282116216045613565221967206316018942972384355459115635296033392834587362908225066108915832218022227771984864834492327810593336693727124820063769543230686542246142316553826895415695162163752601647980583366492236206841383062626626202988548406012129054198207332719406789858078173073242248499017564900629361190075455312857655417687251517572346625760646009114500923496111866113959672334849842066840987666332876531458442952181489740265289585335074121829943891701222525099822494341026556693634997503584030368631042876428505821446833306874093121307051176836716815912216144207402943862615288151083878658411331897237734845553161781356889681866958381474095668924056500638242348400342007397971700738434672843786630532916236931430008752293284914936531138519692386296096546456392012802693702472805166044840899521512266522595463393209872901930197788944907227440047431702501043996168895006356540196621878294782537726028984193635370010153018050094537469273067198411854489328450682478852569318534985530470576201104988074517011949720624893335937289885894884649883934741868458408485047960938692123331740571830214707695467565221719353711771267097949893443232099591143256484565591579340571594477699603044234999313523025370401930842362415034136082826163241637758241891720536017138785173676235277656023991468557717977444282496301632255971106694688447117945365401620468514158252102493200373199736974559103726669698100709067714767155109046552398988642441736965438036953804588328332067614423411910578921715490074202065172275234779434870994023848958699922678910148179119151895607825531457840227665971972069929671071419134208134613896258661599918315088852882855257721249661829167175540509067108315121548060153780230830971695097828068846942306650434884413808585006211965062610155175970413073388958007266451164051614193721555195605567457893934864957281552984578886871818309927362071643026283198458463883119448600332718401605480056636548998380700425781751239588307622043412983221480159351698414899016354816100699629816357997890186319755070094996018596452238160546003307826952850368722020233659186592263563928932601002926224210991709041230621855359447898927935522057170170615538294159078893168898740119025540836120246617844011136121273219771188961258659503439271337365567444208419161205534642743488258671491380707904663556702768690419327248370847568848882806666666906500454698432101661146257142535267910969754541509532501960701814978793219368812823461574540124036554932858714949762523302881669175422871147015674955404109788639254526952503242614850004718093645054862204704481419099531418797666456880217026338542313757333325857116582245912281784237925929902662275880661867019413421891508077913066533400587837934664007431578701183308598755764795047363488294337077705334298834422707745669050069135483132143668614714923244859010186396542154589010349601679149171665200988861081022585609502168526068716697307738786812514903811587598637597301928210872800061132210822935296448291953398782285735810488876309701352244841093929751924122869362103461689776711921071975570697173849850146663446576630822877353524816347389181426364480292806179900171597079231466904642288015413646696624640469894328643886594547057643886116711106800128010705695463643851023347989250501357980198220744238854322539711089009310491653654739501107896764455298279157806152302811220745628723721809945027667513964954112732818315775173148842330153114784902526883421075211165812864948093236905215287805852998616339349004504179369872045551444307706212767493561954072196699858255490390471503788329121445018314753872310087972110118228586621747154376892841644696521556274719190244799621417346952062741074623304124053513177792780826920965927490927100531396566199002695287190700185015193640495098528021472550101558721797403814135500049623340194115641140719008915267877577592934335861359949172353308338531393977921390906985775834955889168540132291058199248219308996633428261494923282535989532664014319195130877435180456322391425685389947405310722017809928212431394601762567794544763905194584123217776500920287958734005167167600734087801642113732712208451992015423594477212640497445466964902222619776573727109407210957285708094158829932996530061524502426765463679401711282546907546694844352284910265162877108309059051821912940090287143359265842662369692695134118638493883597874799443218501607149842945680974061164773123062645956186003888470911657927271905852086424541928017733397053397759052656149327217693763813931077846377290292488013084939041720869179643146571465410121124231615553452691427968515940562296833758213566970948309563882943535138006796569788274443239957763403240249257110994297223989341976849904125995188173132003527405133192493691896803871188928682616484205368346925571622522206079078361299767995862366958004799154574277813277662782354739260777994966812784390193688897513687331853875736026946857486906999406645782840616684074202068037037629386954164014729956884556466519882401737726484431611894298423938399630334132277444369261176992775079445053834435792296766073274388146769002824072096573360475423347373601035038257101970090968469819944134224119793788138642549039630553738506288632663873330680022004564503005495052112998621246418732360148154479569295629716401399362562705017883335729966031734266571885946401253459981283405095690111734375640515211057124540009472504298731467047672232133241583570092965202358842346147286403144826640071302604421816611706824648601150129254842701803897556307799556463398875700782885510467770790629717760839418976806715668884861337688050052179418049800662930571857991906289737571214855974535353258206834626999907885007305079140408660770954555125165310741127303125917126195244285278322709888007349176414950894029721845671146325091477885048112713290545238198413639183100033747310548801250537947000341136265709659544750557669762874468550640435668215119297328714970113428784076548157089529777468176824620992132580484374470904054459275178495525005887584292419189667881825637656453120182752918919141985651365607024587858835625939467452926183238988237778203169846084595484233943220867331066759538616254361971915376735321445341757416635925059561615236031370819502082768973602415021318867333753718228054272279623070924300623659120647456160549062284519793090120468135631200212913503054894753003231369053786441092458514643956088063906045576546338536239458144524891346444065626275686265700672619815359364792427366877950897269123505135434365852534978389281577170515234178198364717796254899075654575156775443039115669464934992834056356886423577716987979550434650419995500205454696245148283767093204622641629083832666470573812835461901150845555721627307448319213028109757932833749135962997554638638059062366234354921119540323079751081672147173782461944578149715011090531672621903564811309705096118446902751280092392326657267695349739074050484795695346690659471988282858089305980064554470855616012698699699132409679125406596806704268845198573656463168506633597605225475001184975169129887676451772293483705202674977721601183204023941237504204218390155321480513895468640155172307682497507374732429235458183092712454284893107386067310309043895334455755130921793414657451548754849054133551035640264841427978527318137314804215545995683369992420225620044002119766970567608475513325753843465058182484482195013833709101214894195510828111255415396761823978271563501218063165130292552184609308365877652894812353524125265580645556636048968629489515705215121133722617422455561922728351525904521310804672341260560939307624635973351960381647865169573876653253790627036848811162896453315388206065406698259330384983546892141145163564459009514803350544946471277891547334160623689489866365875723837605766623503986017771675172568350216971907507664732509271521869606405138582721234277994684639301152572649149328029681674182990973094527793585168824074927029647817813352937163949425503385062705646920271950205179364960958866841518071126608579467454022385151561252897825734554861504358549966792003953190813457488495342073694647032471951888734253471158957721079409762679841379277341000570708557059852267485300452525339154149036752153528053251676873880746642922168270090152253431763852800924576144997123235854042447671681464617616532775084340388277083476275968446561103064618513987604260000254435811321222416865734128216776180156599699178574907573219825415779108948928874150789674504867735290531802477303025438037893102614828459607582724432241190108176364881628878090792485309410009852296527345030782836906430511366679538142934748233501112083454926491487497622469944570009964047837405351178461861960343576319661058242907724281844807572084005220786531604029989418410686756894778583246559915300911652809826447871684556309404598589897326525521170769986150175933944417394597975120562154348078218667642774427748053574137254494720961307654226180278477246226612818321462289192235825226137014105042087835435669684237341505871404673858776162296373974233885423152570042244034395682499957451128126976270701497343543493334750414060184708887429051109112035456423159645476810009748531803887402572300981376704335070331663927426723255317747134949806545252904022076946449907648993173105606407589635114520799213006349532579933517652013942639614137348228063046093050858914157083001334014475982335620855961056538876474856350199489435042557105158751099639771248978653470032911395338903233028219077426962216087305994603358847535124048267094669310838232605842955377047991062790796326942746294227337026866868518866545348352176410111244479679136187717289388774703443143467670046054419700230630189096029821399238463505588569874179003632259545464686755331998665492418343539882460579979586958662594172304194902989487383035093389180197733263110197569850955284837799267124938948119659049712371753330022650711493001367443649125794058547582130550774369751656178221211161928473224128067048472138191657106491923453508332905278531204620669940264985961198777588419660351822150070963937716102743335625977434365589737439247775211897063863176443463901733454230068635750742158860832598740730115256454229267997435883482190954833359053941170614733959626545860831692076245428699708489780877518952916159518547604291804421560829060873959299839188601448927329661057869838621083677461952085620769077082455547810566284214409425928220264080862187157310532979484806066420600526523558781919158117409581881370102892117073704624734284924459010364486945284997762878372166810301035019638514598293033113718191941071433834092830140865000831931776662917828459862431696652734084106104472811425842626216043761130321969907545764442746699137304067452444559647713656888137244597997847331661245205300638221646413239493153572674329950097777407548161613699259426283028009136720879652228384781923642867157515022234062384171133518338492518555710595333538587932168255385987448784294924983045588165307423983090816430837878546139346235594029775360429079185081463889901932029803144861360647409230778349754895384090186264654587788761976428222106219346186923302795411218515261755763860599728892515746862189138910129654536351896668908761845032280741355523918400403153286248200804735399690960023178870852152095423523349579567184956554501286155827237585775967588523163981081583278785725035058417325531641942229021389849601334515510605873894676458355211759223415656291840817534593289725454262979013141453677687523982471581248916282984324142741927722611012939019341237328296212575585803095727443860272757580169571847573013583388576749135135518679211447270411139501399331104417950967322442532355891647530362512131772968428538760927031076151085619901048473997121674538757550356081479083064410787036689816070443847692287027497684469155114811223260399510700025946759726468915198037133476725652269923482232607873922313622248777605325790523865284538748478027698291733408903450646488941076802653522366706786740628112845085641437976258688927256046317161275871829493363761642249971566805649348759171275893386518327560126208093587600977307610073122834564645626151315489745879670238873667487299676699215802875243925201850157015475852213776535721495169434028322779832108252855432196613684815929107438869394347002389319679276721713577470782664843238111582828676597111755043080766568908225234942492819743424473640854388583162156118862167782630657025499556175237856992651927576671779946391908204474560185148252212550065803558298203856333370100039097029076136734669868600093930793055486841251095814409584740778787865034513890270159373954087810466476312763244012800307731198553069010013210240989519720206790113855939258881332555242659611069390277971930953520964173341875380180525951869253189496470846875784511584792681694593802742261010979048945308233346353164271602476086826930433230819829385972305946588573913461321593200430053486571822701669803038630474589740795533642659817340167004450174923282312109280145729910210500658385718616765612674706107138386961391568679221310786071110238191109810945514936028568291554080612826036060222414397901701907924134726295214656889411794539543578507640973731726825055114557520672540538649064126261208927549751263845255515809112510988194582690478080676854022173006760277332343384960802731210869272873930410417563623052887608322153088658936269443601799412185233277201577062484316325245352872635689946605470603868744172377823449162362710398444309336291244981856814723102643332380986688490104907917265675428743506636856490449360693948477625998424385074628097008993837222330155716413039648075485724751439828369175850767992800332191543717394341141391494638667990923418041946596940285764118375381509535080195431304552007318974972713089815434764665987218053236766184797769841943229727154020137049523234981372537944743279821829964932067627269521102373393887146437574876896588595892326528586606882626632238831531112462188050021120009519891287449718861980062349448816619289881196837974635863982738701946181448716993123986518730111242389520087136510731470656151176769019809791640025537173333800063763842277343246677575023134370536375834977266847706057817098436282975304344381838117816685988922329841784136078402840549305179594573511285321918415109973930039399585651318438354135155770011766566439760431921218919476461475507225247686700300759944241774451659848895518505091085404834225141311229447957798815780298574514014289226810363290054228759050396067767360299766117387287769770327335289134160536978607233782358794855839402278618475577012687642246811042607284896045278676465926719803543723604385003983568083154247941150414800985955474128142968823540149001895245478691468163358660667189249089765080257550011646036093561496430847239279634489921300588308593553117710389838438351229852285195226232895608035071247469962776211802578611680858101609743865106222455223131681588113920332365965934537464798072723486282783607988401046685825204713759729760588645522744732535180285850929468731682650599459580833046385889838991160093055579685769840036617332481841359375753942670148591461116489570242797395414036216513730771805451600325087485797384461582067622267162164477982663649818652559877185419415821237344372261476935031667808172083538779950869310290063386517480822882902282621975711229764113265922739140386357938873923948794148431468336962803721003093662555221242285971566539839576966988017278119038596725910347754306552807530951656926293650264417137498146403129358534558008307633396663591001685315158970901701349394191605967033132387283843648646678262863228738701746895517566629576178802983826965976098126401443684691750339067288756306422924956157803678202341051106594736028664406056547276058613188865399139715554145644495776862645042489067862749003703832037515388340492482346644428016089984602633915775808335881406731337136172344989059044309990011079657674047407678486093790850191048787863548293882936347655457306441014941706491166428174058663357366651149555180186504426673968583262066474804902061228916899388359723088935171938444720035069133792402424360349589593813030241692803232273920123939574600044363389404467815852290357774628012727336668150951673967466781796648540081379819192609065289621149030782133955065099483408794772316218931337497321101059857577730484026705205277659782025867899050680014816148647455553662601378551901040870597544562857252728661076195958310497885501581530707341031245554625781175000165478445895840276170456032956455092473823632889147943267641777170546313976163702309003740171001203437758870896484554038606587063172291878858625301910464984939707019166005981113104876612150437576815769460744589287185734882745881533375346615794101291358504537692981016020268767537919740017417323707650366440575503524654064967490693841811149309659541377708647016120546895310530750108322305534481209359299681420995317764279354916462408625482245896303729752924761298018266901523038474871713208869181010192245613579203506411959052907053141323169333728793751851261223627737131742808357148094788382250106701763791045164384848640618755856946420256997371631750930462292793581959505824147604091081214752479059648104535297252178154976559880105382743062423549031336517213513533708068547060013317971207445492381539367184671201850075397355444665627896884240775644957107779965749120120589038317768690575616757695045324367899326524300833157524337216256871288216171038046023194534389135758122194669143050215023071442871602530783358848552769166532808084992228760489600754777212038008729401242013304023051559075782658059893192872287025177072899913328955264708945307884157025338386572029404563095043828412571110957752871346536872541082654240669195692813294061039552076391770174879061754697720843792295339657505337565668258093319194120627408414046653287005098681981068142332425377420600194256662174532098081202479465044632245254995090841835127657445780838852367451674041718463281559835359290860825316209966078625968854886806325742164492681589014842150541933750867810007326409557479470939809177038903821072843199511507627618260396765423056375808689677504189990359989998536638768027501611009868758825566468108772796433844307350397654817686386877668709317703374132254862462906229807011514983089264690840548952218312770482337294129909757159456745118268260981335764243612975394713892186903807526200640974265332241017452763539894653447441176730517838904608542457737496229128711753621850073905900570144822696487514357128385048790838303458004247778057403788406259484749295149207838181017601371207414468104271963852351399464317234797095302359934926280985513335176525701973536299305516297880826447029345807154992945587481056457194206462827443854903198171767389713776666742974364891639767652132491695524898400533564775120227612981246156592834723905956060245227872883207766262875231185804856543662301708805091693218428550888782311798218262655677786690982770356606452704616550450188961069766526800019660617743765102289736022878104798885742298077001733286979855004310899121683598472898613766286017570060699593901500258471366785144121794377981597238974028515377549619581442332328985003948779020608653378598520896050414120468172114717134398918660891060533085660199905957847085319950969364226249888626151664194028612810625274156135414905811572776965478433118902527553012007164534756249032050583300516450205051602382050212034488618842339019171960796291718295161074799460843793741415307999590586726279621641406549866957620604943759627539432437458300976331302573080594938468159337938209614760107376098914667463838245640790539156810113521889306204554935138024982573759596899307880405929318589687360661570855717388650906324584125396007573008037226738816801068270211377923312156891554721463082085668167652964635394871621671048838523237206442350224008925220266654084425823061826471873574121933545002713727384728358181431224468872188484084744023990782313541083583935831741572700294326713633118190456657615967667348124468013695971012353968226111785541364088605647086571648806802755649785842431880481064584977306816928933933650292575923437749249153650858968975491352082372798209885582849002825324388891194089749092506881422246466552950386653239563864817781751994678695429883521707253582921013849450522977800877618957701061348336730470658071664495291700350002144306333325654215920070342268142211839643384964162589322437747723006559976279793939165820499176192293628912411379064197992595095329131147530668773365320429725472927869434514605224112369677726874057990847846308239093061274080778313813289107203227957825420755128538951544250137404494888196603544211198193128589608694557095772214542255857292104478019901545094206727204762491223643793974923653258603852539887953946291060290024399476181948088006249599523480514452316487164194766293012759903380362078296058960394164853263926291672392524008715100709039606997155489382373790375623876892668424686953109333020334748984345133741543192526672031231791349245618181108047054311726004697554268522491230365788875112799171355222218113712116262923881651270780359522741745575799668742618816150974814493124996395864228388609066209680227305853087162119934971383702818172425434399645970753268178427765112748324974444290079708359951769410907126022815426401007597330768375735057702283620673045543067957021685367529425554095728784154596108223672274792044032028184820003640111030517471941446376550825965879450471231850693808336940366406767895295112744714346169816087422741218552813082182887539604959135593277882661297132057471322792649453702619684494096395853044140528122650109158183544622208778724541687718766064527849449396070702247023123084236459064177531617829958970730023175179318253087839096316862520954779510863804532133818678644571849650930043686890351532333201907203965824819239409563113067852479588396977287561992345905351946706152681193625248955738433296678471604720949929427066699471442331373706212694956876893175973269808898244182171665398043634840954632557944012131117734713436189560152701915823897595064741620981018257908974513938214226616732852339148701156592573035105546914677521113076349990243517776443239472516681608357816634682005394205220163246266135197087137707584171300478629159655331967831501943387352170236663040184450525075691485978661791688051507032043859623118307066240295578664345434871728542447792361175034984914849224166742599987311138352803962360590365331429733393326135134616638566315682552583711394471313882825359312737079593413371240570524271185006809434950847335026399072468326224650283074308137782322910287235058793659247170880553166166581409931280286831517010774423607567594202292989826457647413009419264580096311533095001861034746606055874133230123762212672349268264060142874219546744159865093255767051548778261351634385754809803506427826611702077347885073921759783851678091404448778416751271815434125915139536428931446623925396474171989065500094549605904057770029473042326008221163378543407214455863509400547083676467622796496049534573134891871699371329349892184098775138152015466297053976444160947638970766369719587442624979120358221569636358395466971921287165069759338711548959887191710710828440860026489961643310273306377771823447469344858255961806473701552200638060813953475844469804513704705981206641127838718361480524214383671051213925985363556281053813534001704541915636859340104373301619978609223511503674733491469466815495221305621509004351702654886551406514891862620846482481021317811168770101233092678680828870445780042746290674209749657123417310787091643951501665317447402993180642726555196735086322337417171669599958938949575524289443835978525993750986905491180495633528681495633888125859341670420495236631356869965488136749439954836031937407462816894165848372945444396494194292517478411986079058749009658174164111223613921612365803403088123296135097005182062431860722600953428636118787226398813128750100801549380260903480826829000222908275176484161807894522926517631805393190852312674873672352534747883110347771986164691232922407484982207798759361059965469185145509120709354602131732319845952003116043106320032304496813840250590868936998121271159860485924938129578620596422588632498370057968626482357247076495702543985592714164695103443942150336371512579107008533032810256729780194894037965798961140693240768741174183019106708494962907887064580292347471009351359962202841298968487985602817946945084441995173759334607006476696374746061274364033247227711920911358992206019431674431213397153578693157595995880584574042504375234995480964604049235752399591366147372949273952298408097595879291825204165848698887198762396434815122279179070122622466499964673769173706113180418680008602023885349794693634025345927682457809326204524687699897901344819862944104800807190707467219073727682469671647151438640276127936815736740413037742584450456254706108848498004488946625206781594017898974181588517015709942828567278277243174799947539763112603775742651159992265730631651940790358784726386237393776193803221430445121220089507408222959671733131784010985875686281491076739944930033113275039528866938419553663507873937570392563798519573869592864648592607440558755163784256019279613017167612553129929775358453928759500568909689397694423420580762478775392849695017621265632585327290292820550859927298765714057080263870975628340925981156285393362228406400922895304845859304699113189719707711143784606411293943192938914411702513697229855032247452638437691384705575883661459544727490924591809573904017824868992257036367447833762458257402618770206236055354501804066058126150160297568595804568882465388040854802570203667428076400547820794302724395007462092090435995446844845296278797645668794020097054343169865440726471463854050420372519091553844841168586627836764960541961170263161234012803808516802075846679537349328007623707788893358757832112844313285998715713676232833235819005230041265346344928135499603432573990131837943692856375765304881870932179364890288324581285546607775774173556262568871831693320519936850196854616994151936254745800411000451386745857020419887102950750442917044008245786202237642684620522807805901306264950388682708141696690365684287193730818860138006883293931405796065383210023655510754334920873079961981288734439221162343435010189361773224129042028732561174327825576704726957659870727294493735235437783301847329408280944942362516990359853968359963987074160915613318311574022297468176460161374056301361583725872946459773731325063064831575213706334737762281081614140898755087070884785172463445272547452295881625122579076404272382319758794900177505313235061753221769053330642809108960400722533313308202826747518609488478580693873683676776998090150174905406187836043650241593432643980059583365832738194169177392970039305057115901744677677213452385124137928511688840496821836184642292482080115297016521218608912333834422122286937950593355031958951841879239609801206083613538166107768632179314701357899023636057421059976433082568378440521281425928768945754665360926506475065998815733329087728017664838865858014678425829880582591408185594005762452550767281011599208859212445112036685327413786832378608573910428740563470304325207807225539591414409351240775110780732034241162722795012169732785644666800462649584139668928089609667696968136040306301654351327862373438461353644620686032858590117699484029683076491274544915261395177988205575995576970562048250905527151992783359672706666744730796066439444886735807074269813038586310098316927991229178157661095227601678859292903885247971760387149691257260006421989069726783629004169757997812608416201496462077847351318336837263601703749315429011865362841739699637955469143389962573907403675423470079636899858689575395036385195221510589876481286389566290422145805026343228269757567053075178609667682514313196671520031554360911518928368932706030237634168046264992124040768364393363314743872516689454047075742119134888071500952786268090723033843654503720980488304172836594131961297715546584646878287242188568619435706518033889982472026300268619874511413115515584839446660125181097488168702335225937989412189068816045267915274398298886491667329445672580065241024902827083957947479344412690339015171990078941408729817852689389558660432770978672606342159734646122450838686306221333418525110753478110143337858295160491222788719688885177805307665133801568623138149612548023827080172969662121698373199354048077272071378751911126963792177985580530922357194889116513436560501688801635258222327326727088157965711189032826359826027161184418302287722915719210259686236961778856808087896570949096387961235881134138569224550273380242787769041273627729865741406564463635177791887187399570525698075277946947663874745831570219346563857594505419185136809546678816571328877709271583706691514151255975637461214438995071299214742269333200263196678655280105454615799455463297758900032311534509609350149583298025997673344461598496611793465795849111797562941100851358220241093028121503245339676265853122548222889361123926349242519520240184936259833800803574391970222449069058622291628958167052326504034140910001464899207414275715895767237264817834710384770155672387082654561864867884352611395806928333632852651906079786496510478778061761119690617527471670718658492323284769464519257612572434194692820993316536299888616345746252743908165809252928027544941910755160830691510288186159696275970485756598811408390790539926709842685276165650818583032282692787760889296505472089524104695408726019596060032368444753052906010015257947669613114705842368928494768221204851433150471153904435235514603435800026010337879621725341481526291736999919793537646402917466459345499695754323496672376023635850571117556881078230296668386186435276317389018028666061991483822050842186198410522735782483315161985484126198903844084939226886148104745904675997307429239785536687756936264783287047492817996071600428595356153931514848918496199071722781638738746834491541350153224276280444186406346182823334886752823198401237706796942649346451677327585661758335016220641962179087784051438769146923327012050662922099602393700145530854702056922015554827987374779740675489676559729122697067891015822634986755445545044884946319647815908967736462530289694595024245853975497342357384870073432251870413265558175925835338553400528950895170768816468207028893680483582256429723883025122354348194646609118200902985050625527566747321197550568849852451178092981071426548436128949443024611598497793182099180927898244578559895897394644974766803098771024345634508744399187817721399158226070382514131590955274008479957557319113195060154121417963129821028287513768535366756955706281692399997690199743486753734969828329135763223985645895957081979486755947155211665909467824464154416227887774277375566004789817458177085564637935081896610817476972951733325743211880515521933261806021976809650312210078138286445098962812758244438892881498684296875119154077796903117381646189437387215932979768565809320744871475782616077396332532247544800143347655523918758487349984515209782696966662888969571536427572962797609985251025335624762020358740218539243054369603256123252900687327957602280279330460157765669971522631798144694540882157201062566853208648610033661250158536421494850733345151793763871271455467487160073886902129269418930675910869115541481981937239799545286656621376579270225173624275549528268924995817745300944906790821301704372029632638854291401602325323679374739004635790293706770283064236537876950052417037843350525347640081189981021890688482717338138524119262975773994387014395664324229331775668945459425305230457358800946007466045588858075316316073340586185645427978557519278941049640612491770696578506661160461138455625259891089872583889072608213334858232425562171032816642382335806085345143477751296874726686818220089815757640805624089727577452522040477581958696948565821681396206385778721513599874279142848753345583787315370162140963708288169743565102771088819540095478087687495118613939937683925297676649585662858525028910985308175633328889353449591258167992359283443331948357241741464788091657471048344158890758683350406103140597334747669624898070238213302407685833426972282689258326612393995617245547324789122056350678896891706261774006015719220376766944966992200381626226052955522975336297548425529029760337702779479445362201366577627503995809440638030654875660007350797351422413796998023690922539509473153815711891121340790787618998622461812411533818495578165938731289305313600345880581594943467106751496846219364566757513848005888144609388294665597529355653060164978580114750976183205769817705421622770186979765489314957948979187631212172700917083671441160927806522977350073377698649229082507667163381791502205247280116514122954919157730501694603493244762520282351989393668253660772345381924807110402103855877667207800068678721177052699039333767429640131804482366082681656659279057461916044329404925475189431954161071073188409068559814735977410352187355440672586321425847447027548688483770785423723488223126604634006284497606642759449521604289295270480629704987497686050820902121495205468145799179489296911973992166058057658662437952765840695990552557487546587452577850219838795805691758061587664821240865881303828426768015939156661701709920648915112493481765853477385773773459790018766578455327089415286728955209003280529627488402710517498137194509757829106471039203671492421064001673194385749510341312893487092415222926206235928033083718379921139114128442818946751189395858231298667026397919372794997339130588692862192745253523878615161450704692501733116998313818642918339562432875430767235430887720118266059866872112575736152156566311739724680303587514264234801146612150123322323152268140941943337091805561948934126806019296549068005438994308125997491424389361843708001022101629211965301624153337263353898674042625759079853359822117311088077418464564797390890351910974450805810202771706147391030127150385502358220554263065057077999151408809644027305224735747993101261443658165282896619478630532042957934600601163665986911746336084523078811077039972833221302136250584280083683562073366289963744843519699548756192207887053613675912862278966463595198246427192187090905404716364440646044064678093986704538211407601535743219547568305314629805165971985037388918413913655494078257180938398247608730587385739861773719406259729801586944256313878469286210634120871243597320606040713648175642064176963413601877332839326293706657106372155908462394076717275063989377583363658849759830641489486403388530847437223857715320166146558869328257362405859703186318913589058487324993074433074276074769684741328384325881122659771111280756286777652047366512752850310850514767269932169083216132367463748043058988501752177948644512791663064784026031682391793116546093758109221746302055381704817785369419932008774298013784968114556965047440815992076579635890966904290904154457871020597811666527439898932642617783530471719899678422420413115862696464426907923204013215018459881626984482172331593318808136400902418710820353631278078204144381009795778310100584352359004761824518302687338892512110075983080968199454691138702472778017691863726563044143697006683544042046244192774188904957940595983266392622728593519494947373178478173273378082862152576730427091992778813490845317382513257784505783412988039784507521202685608150175134675042794956956294569397242531631027174456816632886469329621367786744966411847061228301204346540377840499506496772912985837635489369786322707194610336110271619491505845685303090212871453691784910470145771627211411849858346054987381919727558538127009068897255517756569694660127934102781438582137301099537648543972215548843095593816747569827593765983056133299948008880404214027314028492561704517733488166280248755699000092824213463509876333473200640202640183122068127783603076130556367087333223638973362953881804198539155215271227476253959899273884303167561810491233176597108183190856348831029512366628179612422180059167317786499278776236280613091354015017171822398976480723867255961518160061775597236122173810486198957012406995718675211618825376904703831833376937213583372973001406650767568994182606165964904055559729610183220819293854282113519845626794615994799518792469801434783200240741910597548640723906212822022134104508991485755335899359393704186436561113130649480024400936359827365729950917256514950462919722678550438870246296198023340789346585888154776943150171822861798540225720228864609017347328540214624278861899094036263640974742149815549323160404660376396332288425728338562308335886153726841571417947787676437724846161252454000033034352562340093581325804383825184982165139682497018994223929074627997822467240256702922307167278933421843583885952073354052718305539581776183064907397910087001503250734615971352438082639488387672977145840385035349587847086496184322289766530646146515330594110662732793902996951849080935517098004948251464240306646541133162795421875126424726515171625355924354559080956690082169166278103137617972759154102926802658463439548301601675819372901322296443003116786780307699635072541322122254740873281298335690772710486051514140078466090175170794105793358407498703075352217968117231912269827945631264759414805716635101376647528600597897113469026091999121372514269083440567310152335853207711437185762451807603690970647792625457495476178751144797604168992965767938192440217688078616248591683413111022322241977448616923308978582694704740041584376387125040269351827831431231797021190317802392001491903711718290217477188462867682926551522297451541108810281435068005628910888160461283366122509370949744001337353990523771707736200951330607510689217710486166637454971330172964336928337146228352436421238251241934499079011407512981497043079021851989301979423521511964225154428869921284712476960170574659059119321754168855933770522376805336272014410738106121488544504715485613246389145718434081028400917269186262141049473773596993712376602004727439628875344213048375571722138976594402174223273811563062590716451622791419368254651633000421142688284008228731964134954820667109907669283025879219547309391205188279585511115013875441792498070655648896391096267372294130917513666550226240306129834287731853246510931425788084188231806285090857311356001223567318170526218090867397057346883129910345895278856334638033135227483599195086398438623029576649925980023846278483562128586510249970896359442810818102873049155981212856145522966285342761273748019585049381317037599787612484427062537365656351315251505617140444907008961558439994560509444009702820807637767049581231941616234853656276147380886666431009751757780020623723132695817862902676277186110418768552528210020848445012757480557008240172429169503919604345411168283979307860348318414091340923293504049391498556628810449425459663235067362581785935336667103932687811412674704627496230983636880633515748962189887383312853736077069141967141268313920667281188412199967794417219096571773336671006377437821757790010543423322394167151085169374791513740973441897328973421998127712841956488534805778384607775233475369116413918470597188490552792309761062182221570674141390740539912437487734417510108615912397862395743378050573811007103119684019526399126676036457391042382743327758726299285472840642186097676820558671431564649070282056335498220823381604678743770480133473149134466250857906635893214057072224080625300083583787780094426413995527161223751488294220336070434720914062160888156250563402790885518774978252759120697449844786910447025932519827109969766358227827068917301170688600932235522389115561276201280597334573247997301647275240679921763261008173179811586271137835987449747769890941498046163604597677975136877987299387551950479525124764930174545129933882090536604859614023536548834695897693669572410167250528266952081233885582531363340282739953873837430665669921257327357001788301069993080814581379209920490814231123443824440068224689401806645785687380709808322991142256460404048209905760678529986433393192885552597466350064990218987600039539596767682273595751675764846837549468977061626390464910341105024460911084563116999713856985443499637507554459007445775722091224475285444242921650869021723403273187182809021720591012447412947002556682289128732123439002917686920671771526357692447898553427661236432854323715421932194257463729422001894648370988457408081993082444198486243074698525337844526537664030851263394124501360317324543585142495509630558473771537055748544732362707442115396141030836478204679161740428088955662029385531706754802713868868801073145347347845320446656581343758940156491288314180360704576215264776779469613380226211197287012433669462722616323183826999212854880411815545315026658337425255182147335006005589748280991173337500029751118306594760016645251923724562962813045134300485977294095932805736264158525194516114468439960436155375091036696116449281240855011160908796498151357173226570799230659562426652783046941137104797009214754538233824964785871045021181701555960254481078538125750710296630062367740756733822241810654005784499106976169019752422663166858177318329324372895624203426533644021420471403366322653951820636348899402199538787939987208522334636245898001209968907454885624015851069740894438001641561531178227137499912224031969593720981056581700388717403371894468664098114101932123649039657084930546882538316317059058450519364989478424442149084707815642576323412561408306805464834040252417152434934941274319636689870639752855477388925993826631981629965557494960780078481870593265948965550556778246854291523883770485123343489006093980515326393457609521385079277407231554082696928803988288901406322773649073895616235538826928886250916419132876266356158533694174763145615107022223258504217767783944326678444034923674224062548906591533723729840336159041072633089958043051873881270152459012305447643207194751596800562441597488300347258498044950340979368798783833918175103872254693726845881522804661842827835567203521607885855286660216942420367620569546426249939896180514298819641548723249672693696378449608357021473279314693456105827186039832702106684278449082505345345954301554131074488940203449635828426679995231507482175317220523684272710247503921377224218090860224667049244959924766234923221688307140350708475653672426037734467781419910867779138897054335694388172526776912827091546244567534373874148605273236858233482713415995672360281445746216071636529878653837749066435673760440272020687034131401551736051326290143866838850030183966516800282312581324888994879367406621887671882923260567352222155891406031511498944566251737821622818246017659190706250686660676076935381949784873522482395725199983185097783994707162012468765801630649840731877574724515957842135039085310309841516585302042684568470867281526053865165097019508691435913422321846580882644778368713558000254543698465584642784633564838619226165338322051706566868205857286639331193079492546052996728981173592957979769257073080925585341010522229914225555930040930827115750373151052462728655356998340847945476570500166866603622203986738030380813605410919322702673276851634418289625446561226562869658227612855067344909279882020343253695471234870634043394595592885723902029768865286408926940599056622491004864253008181401106965008448756434474178499301435509257015740094666341063284546174181243588612913571604313117890514060035453822917261423259861065650586445279379355579528398754951125613771031430440830122062080421966189509975644369233197603053533425969285441104398661400431006185944559523701392878834217413907853087971542710486027083621980666079228607444933478628671073016681280695330682789934098077443922923916330148726277521317939743410236051787822499624409136922971302629953553938306050065098873210453656939564733245699025762727973026891220289773297560393164288343509439329274688645910507484342358463318733141246106699677986241103431197087253685867940789271585539452120687927156822317841971051576558607101238234710604873900654746153323211959458596315175099891866348775048716781370827638809452072786102126034999083732982209872639483605419997999312272373710661680843532676874735759477834828726962476978094726228960862173652911747552718977814977039504656014235087229004885170910543978390008052104805471858962029803409555572840929096901920214803879252471039243072891228860254748030227843398725268624682611687435544898020964874442145916131101643535532251163281157579307013543318417847242882896902224946552767915035881043860733592856029035018820492790327569622802005378951699550717270405454323853982975399814817410720019267234607265453685656399936829014234285519951167127670992597084490677907970435183036174561603329749638037542118593841104607189182492233352417738069763940410863233629061138619076614789895691541637096225109973161457189211498793394011799523905260839200238289283546211680917761187653063428536626582967472330056419670596394570492914133799865748945927733706567102361593252105497935028530623293343867039777153581858361766764544917507995732610953150850811540313431121060743744678283122675760043537980403642976504543740679857544181752126840173956476656176459121064332864729645310780480100789122857656036729429975895927336444812530000490190499104095073027317664739190934809934290521455624362740181620074281234040061679294209373402137229658042765961797836111706340309239416440018479608623738783768461243461020647299390764382758550580043799189368512976216190321749981681959133408915229757327946366017568488109970011605251897858255868992958492618510870853584654992298184046385437821147716806342945944761198260544415046155070127680838673129262877254474164224546099477265585280561827124104955509791167930134971994597898749653228194116786238796774750469424876133532845155160589377018358239185281999902381321499824862609624318364771932554339495964472534041529920785086268424131507995397800109764783223264195262551892562808557561802539404507206419626597127125060920020230642851540409591039399253274415963649714727446825414038557110511848640081065372682325917374838292058579773938931981003445259769024762378586127740328857015330660395740346714610181054838245417421986864409339038299372620009922133047593922356753886547697023694408652105904130411392697717540477598583053488142978365502137764646007595113462619319102602243485344833893569669476558847115825891451588422756514549086561467784321937802777101016487227422693705633295722436495049936420696361598506504746750252336488176786721427042016971403085661234318006037572974117018257013755765022293550392777267120038723139174914319496008642918164026762980010953976616853710413959131006452182926305863069725156312676142015937598049949656752753594407540143842555878996676446210297877177329585173526291717979395700467003645409314868079474513936347244680976982451303048126957500765154868549257452571431792507407658371297392046805645378109544214231873727708671381351351570452205408583551145029728116253634523793150714852741704546993764670374856318728977968601442771201958256325728577719236950756403325081963147868961123802179992213613435322459772387814249087553300425555142259564583252626857632034437334167615879554616751900303038022091989598817887486574307370046144478650583291137377437339651684766636577904850380371608859991009122791707654183542494714811535029096983571208454382709683828897663857124490792845661961543794157513527771249154157224617204051314044670969651499550982618120774102495104439660992769223420151624784301283208168855554872719792884658491459793929545133864948105308783438791241184340509107262711530928507584882100119513378953320994684085312113507130472229483782029495395594664962857402172431265387583629725467763272427748520422715313469685532192677684522930480996802998596949134808064837721996897612616108741093156188098753249631287113714645570513872713286317541683229766103420521935548891889355655872001420230600307887257549794480182678011083049832508222558906172628557252545635964323625710314269108926063737477501771141821628531714783659702758648225993278014161914734967889992668102210513304796913111434720314471071198326952225429619074143735359930097265643606960056154737591758298896550910865729521936466018559831273039851558438985321143553509858743822739810725146600054978211556805425002971357549667784534258938253014217578518043087641052855820431684974472260356359356682666249081576577034114072599049596848289219895618115569629995995330192501312414486474627434599957045679203427585758071963848406340375863051846599706107462853116320447937540046984217623556912099353798181289053290676042579437120544729310396946699917297135929782376133130868294015182841626942644516997843470327593908408304205334787962808006064196839314413284446553905111200726045029790811170532498317162823773189763486158953321692036843620934718549578526774217818931359230765369739772333699165549498617628888084420839610785330035985335604329279617917344191127807479576795517075835878766715164321002839553469299494267253070996658581977830463897929863617859578303804236297844888731756364073711614988140203300723430317810305693912401455404069875495818714539488872317208675623107675047739849549122515146115944984431588476346403387470774086666286735501934923381302814225656906834872619544076401974204419357415617510301649901219642789966851641037959263449442293228209672219299207167559560208487899503566412744039516823448692629456655956708672411706308392597455862152166385800850718723233978839543719818361171015888494582796806285854870466025557152300920242290866135805803416042462383724150953230800881884602302886697273131059712536547960871416920498721133871836966238932230027456916816465201641257425177623251342872638206224880717737958398996176856392837903391997618478377674873651106734799961624023737904909058963780960600238967529772045610416872801494164044239319752247438871354485562482144162455943041414048181939786111530922078979496832159659003278835007158202505306822192041554265087943910408444244228003150409471658636742023487027285460120523717682610347571373057889134891231599604400852325254534251449405765129385548862793450444429340363008354219933494259308301263310466353866941356617719971587799428560258786669971602705931200998732460450583785279166165791026205350095751741654232144616854507730722729306038148922688204563751496949542669303554386983475600593411674832127040177745381991640697375742616996215753467338947132674899958735874482374296161862814752020754704550431624210038385157720547690359285175161669813166901603514053507357790172371867648650626509495857312453789065649923562012569539895647525793727612299872810004060538584817997587206488293420306048222018222641084988808373651032679352739771525957831072209681436113840851508244250630351416532021124901304496400004690606946924173826790423888699280432289764599159318486638676213002872573706159724333179667276526713441737026122713233925608699221066799024025680863471279905495613520991678734647862070639112309453228028904266487728920830839506874715203698876399996937098080356024915648460878898096633383744129150116890834198016209480573589146808618243135970093582141264514840639809714239614253040725243084978840229005606265007928202184600530549269038981559515317626069873645470406878579950448014106572528419995897687779574315095379045040448651005119940576042615536483390676473703665806415955204496028114531175640829050991824405930277048185126381804689381853368760145658891294959949333928812779001421270716550869025193828072131149301994199771277710493651458857090866591888216223513060206553833011018139664856335073254089720995587585517681979497287074659046537311813193459929666972390738174098572111956955074966219144473555940935141410554933663711848920699945390238878198627652394052742162622363980091997379970097861052328523743187421942939478884261632697813737627111445621338668816235841665775845569453763841104899500828265741579078186590574767055771692922781049266930712485122745554430904981156393842452032287544430650707997266234439153449756111163565123545424064810228255515694193146636052990998301391066543198199127165793057905223806011961242350282242201990658848116330990807490055578794191891467663832304452841905134938199275019675618141155595047092400544296008550541688689911228747961358945096770062773318429620675786315876374386773292095016033613221513615426608300538742840744653150055949731853791868048908770291291513886282101169294537805151421578947028212475094654109622833588975111405518402493500122944750805564436624091817877686643098720162726701729752086951329063751398178426255151354825295928345056109314165843014561258976112579935418522611567301219635780367754637725564312913162830477424985699175243280040791558495403066781504230024838536006984414400413321850875809539523393803149709876908810996228540996835085047595204914659892866817340944590181302793177976606455714069063796366977855783169913362486536814469487625735075896871050125126732803121135801610071216612937451973087986984226986057955030403441110655130163234144486542131042246378498570795586755065035244023202267005790483421470990553183324567995868028966375970188253883237825337508087365426441145247147352311966523828853397019226935605187155724043551078437503147162780072255605499198453526169279539110347115491964626628788735370312656902748135236662058080786456769579407705964418226413122200671501749467044609236924770039881518129542229667587068346788798494180012254816669487206402494664799682975834175147774337262880999970040677164191893410038761276825756080592739618072433444972480884870526162976852739333553246807231565113743325589407634420678672247188317841797842803003346891569149314105288229968891354176035940328898679966889050131557864678585617566726052903271038823598370262218609775758787474566371749838272473058221046550499332198084257636051819379460029253571162991119913162519395592278922970884547513820310645165455884207757614882499781288734944180080477852782641447090034828753432664233035288574823582641138555935283828607194126382943088651447502356336356308543657835762026005727326513239485896036155715675336058749208824510622959740157333306738336085425647673398650608724436523486007392669108840196464002708629192349591378160082191301910833966378269932086416602108929688360906988759317215036862796167698835790028392194855641097424305212051282716952153280731620269293794314180034494415654670162000223069975580321304361085451408361636328319026588091004773277673036579812551859843662373629170787063696543953182645729004488528732105133941830996429553730527453849433880737075802603733374459554133757747711921608103919849045051497442887601091648447629161920479781302938182962294731183992702456150186153178667106692641923857664919209701996902308247635697335807219315942540005416260320075926733867051879027217466654598867311219178067431368889953848104770993620435629594333238993820419244252522147499741273343588347455002535520267010826853017345615638452492606921412602450417093292145251462893683242657947886201123554792859786135037807762767870264085695949143951871027290739286481725057197303108009136557288903085826986916641777679477839572626155082692357239448393076858385567935223976426034155242850161697017315091186410984833651908135319915521993664703290874679417824193882013998039053503121100037906675720662394046280356874828337519836154609486382995696822394382822761439150946519016727078425315417272763072104007954010192180730496176400742604066584186462130663624002082613044403614507053160964417370010864240069574509415928350557135367135592400585070693772943669545529541784035520456289662849239146196470493566676486014423204540113960648876004795317396375302676184328046626315145333147804704233817844162831911866571891946939078990206848860652540934913096674054394210930482814393905554969311959935303107470353850231837317875925320313451369264322682544436505206192817171554722723984166352708405390869312098161854798828793982850149345328492717790929458702936255998079728628549025808719580248249896121105921973892221323304872069648806602613404820617391615845019272216427763716991763879532366828710757024660001212304327793971770531290327274836824062461437132237165481695850714877347458681571147896791472780921247167655553769983558520274665430157488782015440723904816872990816663873831650963681469080190007428248269268123874682078187521750421126510823570752847963309275528380146266572250309310432027665186791209421617159980663000440610299858205330273757487225538485648192851025424060097112751866410446691809258415254906242383722507795791464984757683874638157014871193588875363226982722500501876660083401372652681676324263720066563872406604774479461531244063857517240013269034933003407371809642493144837357655202736782282429935198737231658010469162594920041232841495306574195511738446397540284758184273159478067359423543435876641779093046185119704261177140648980311506913536143679244933907585373301057613326390966010573690559180484922769202590938286293818949992885536962400485664928610214928982599967078311311021619608637500339338457721017848810916033857097819477167603323840366632210757826529326629105315286756555361551752397805278169479023868003851017744724061320213968390535920772124080943399877395802834838231551182525613634574366988273465059077762689022231040210840865308803801097046343688945262466191025305045284540373877333693987800619905598974965093862884076214249503445777285172143582526841188196134978796807321602517617602895091304985292156821950828904786904241137121142890243232059131483567215537214520463397184098028774795663371317773169884132930785713907275650021787918184495385513333495999787925355687309317262342292509594119570419443483558367113125814316654445830291557953973560146783084633650725542817549117023949485218635409370439993089134060360931400956090486103736731207362271665584012986092027995723720109255474179689520899989936814721463789058417064720011565074222690757128858453087872933589523275146048564264065818400555720065954178166802216017466355807435286584763985397473398002776701360084681423590320765878888290376053001678337405462915173177147974129202873373116485848947916305771362492633073404988791610784768038155476770966831402583865722880115400131614113783911402892544732426680642136295462147655707807346270234355481490919493584258691660678786515105791809670875925667585443112983474891746742977832442823635833644317068625116014109574900127177714019185890852624486422736040782126609489521444537641697427143164584324144117539173538032525420245310046615679487207533015810864788732772450397784162599057172494181049475592456872242140134637264748139119772972325821464452067644308222013780635996535915767756598281796063387737927526038903794071087827821478877051182952035011477734874512258561355476887058062701860952510089993794437116941197191537989566137102129307251080601258799604704983959529290316375769859669368354657576648370097212524308720062564672283540427618032823139383109547957235671495496466338966199131147516853210324537139669686786896706191485566793645401545855187267897299698532652897370717358594150956730997898735903650321818273309477315346249582419101832432458989204201308960781084537305194300080114159281243319979662240283291044511689926326981440416204007878134346674702984749851948850872387938971126641628898987649124249827744137516094007281821279586830880468396279477404157917702483813156185634683321470639954004024518628709878525368432262633255840174587517943303207990380059184323386545877045146978206500802987286423482651705978918841283932534602417714735069724610734762022373770171719036521091316844044787343212657914039784904973610672840000068929809292635237345598890013057737958689290746122934378442091387768647645927226181420080120546916625510241832632061157216174003142369976891759734551452442883646138613437298005226639822772090125225776353825182331656555623692409318978764806893807733227362944193026094070065688638213352848204890794473843007615031113462427243708268907437150876962059715139488647837385813948986132794344646043889834314340840391398654952102206967320004526308488573702841422568491821589379468931931092110871943609986988943163839255556228689594360613685221216621538817623861765458300988307967037686176105214152163715073775567666591189129440081058954549722584967050343824031258171522032842931273634422288194294816513687532011144868596090840544462469754714614484252018162809664756351776864208074836721898748401941227245660230813884739368147589063348502297933760551788060668888047659736332465189951402741866243535720774744583420628497163297136369590938270685186491688079911351016366047433110629109655083598039800888227322464747040844252798024183630544711808652296349576414077721960336348425633584572099102250245606039136196719494539213822682306560309921714452746089308519848372603093219352244031463753455917486519609780710600837605867852506578078203178823372101886011509123471448484406962414886737566245083418444149089579299362704790703662037604117393520644152296121552138128582757122937377273049083914569515255572118137097958902378111308074405746153824150012600444677066192459267201566350877027137829814325485317600597032364760876962782565625376453469852832702008936629402950923789123573407747550571735823921751809578090755594262961092054812465379566362208700557704904377486503893495153307746696483154778385483087730324666872900759771322137235804180450450689715994484944798257823700297671245909301647525772918318733727796223960518973879219239139349159138891350844008554973177507290786067376959654043513301385869789266679692228748493493018710342249173562017858994016348038762714060460972681457556366845651499594078670367297221862654812747199095242992993742360872769831297114530045087115943067934455891803668961731893825686698528051490551494873560923182145458799103159197566877524014995983364609232033756623455813328454600345398191413494708945467072164990961075422273145731334158489308548138149848787183645886644954006017890782422337068693462023883323480583768902364559516988515435131714182510116683284198847593638370507929039397652899618598003504726530958947862146527716561757442359827236031370434723394995519365780139315516552752640447717733159770147264205171382194048485909681650666575730973302025205576333335693769772956674955747724160487226061111718648191207065378889413304630358139315040457315697482827053936006398149583890134897700223783971602989884812100815045045247343675264139138630655764566814989176116880367707642572664500023846008245378752535663192024293345409479155534655384081379379387965764439149136131981314287672790384714922166718485623554807231060154815965786159295898362062854860917645224159722206235931070679727306611276622983846947289294029830361281869187016544712631988906201904213886581090288022266026053800737420786967483817161773533308008413099750580518841947594054704001643473923364983079955343188663896413983021382323573101597425936998562656190060580309170888959626012744046549724464901192964750554090683338137964581811461867186385736139941573561703364064056800485471427574699486564882311874061524939102476501091527702356032356713968640936651204327202095895979592721824795879334080641395721065983170417935711399881458453777528894543054746312227418101948765412342836531725637343593478293444211031526991375985390457588003982092681047251601203245465430210124724000476856146528189531910628068075121950657258588033709235192707608394829480584621150647738328697803455320657659887199464817773568841646458451099763054762335286521639587480701975443921925155903238156682402109784798130051456483510607232817599002719054090909846258263510350312282482126175924308334395002196275776761576288893607585275912716857644824448066037986987289323814293678261171636580364955966735061144717286149425381806726325459048997294026337682236600747582089228049447548893756705217874876295067090196465696272320874154183113608503862982067717524131574646260689646754123664852883793299066350341551765908575423291170655193111631899270113365395541536206469999334590343011027407518840910224138604369505043525742195890187900217444409603247999653384477007455888964850682190747096834033027507075081414745569496096738869239286774240297997979977780704666144107282092093721987535213031920997095772492564298579671355969649234480366316089291541827678759462237828990025605844699449492518201239869245390345070725171206349295346421930980131560623775093671342513406510611279233969136016270900252871599253528521885180717435587353343521921026115043051385067535699563605807654096394252357176366252488848739657039720047675007454965531539286703178045009047201976272101611006040879498795821695023024787989431531067362014820590146215448863560779670830633224515064212272400320298296769541941848837113332195984677643916525111887000181143981017467224356010119701575298259523179809872253095514443578545863679160137294636184930260466850786340678541186986712816463850265376502865012623272073506942957182809677640951165070958723442188267883241533965572524961210795041089229225896283715076822456937327912629094497699419212623325120305039394485161024915700367074412315034256085753699186413662485247923255669905845509339888854378113020099037589096586707379123207020806891348080786564366746999909018867973263856630490545765034202036191758902027783890186493070311266983456687321415979681101715348433327112757579159941415984608814330405088785028201298938713277823125987884606964192106990152093193303439655899927659610062289638529984606478286342681156708051837577513494550430450210594605646531915091835501975285773748689727666899069209922128771633240703265159804080637948164319067602504245296303455197908806739902140652881406110421400547639956263600261637373981780144643484686828958737551799155386138139712763865387573824073516650866594876807387511124114233420212629854908549870822771814210451932319299811622217127109072823763606031251395248061807365489702096421301822970260321427140535117922619621893837982790769955389168671994598707380940989301250326467677422163127075875921491586838735891627061748686163430949800940069599089339666408177229724972061570546525527079803928698366027950093638757406359507168611353544370173069792619369392905059858896957921836893695533058070279863040015531512457329965490051793334234321161146019100965408848814755724266972999584307419683139321663259775941935091969220591833661594530137291545132533742925738785811360971188352485040499447641858357197125808593555869116458090262665662685366250819969981410588104164801555203436870578177283488908218986248419686078405239331746597409853569095654938303885247298197989411502473345263431165209577902742013182753265262000670237076104933819194129415717349913848273706203180460243347080271677009144603514290742407966350285836759968742113565153133162282404517201288432753233560149379424381959443207573175533190041638010896098853848462436004891702886437764819998691526954635491477902755353939373676810889266625762119556774219557165234159934218541525181771919407197070334621562693889370137285311798216768048961710211676307665424242167279408303523346238486467076371567256629798865864029967061855227742654579833208248994791608181456094832576600604808409466481032969569423340974342922600837861077277304919001859647758994512078052392824140310295580259874308092870719720023384316114470555267871443841289021111779118013100259580998968481296750159184565688596295468108922755499662420334819458016396525530353320332185590618483331647674081991173377413294860701706683240286115716406677142360888732332937250593919694033989203792188729777716024102748171775784464454216782057164188808365640362507648470016753772188559441611942568469509200033484087452666256770007301509942500953564836380559819292008159711228123021059142207371682482981425155926603642316198781430232054047638343192208353982820584294775946025925453935140949746284168367699485105139278058673354729350851852649247771565406279890897036858289484909417700814773332848631111482972346577734291889654427208673372980988194312373293784111161940220394986079858662185608572534409204430747704570735514591609147718314193127955936876311535593847153114120872255648834872036860042719248892943053144703908837583260263764813807998448073585055205687871931531852107678714792592886793677229537611133416370040762865925222637643717447574293298317044126309659745765831241641429834438087682359523607349782771073354024367192407026506388729125739732670799539305668002780629378321408319864912277060828492091910116518285248360545670921137924868771619429962190617238806942512912189662044267989174320662283188313023601196029549820799101051003275601709938239769029461809955606080074572528436241254667178235417156071121439835034206551830193157090732676302397310917419751605113561921788514221836317272806416296207024269049051282718548848535704200813754762733039520916729102767379466444329560429303632966565556707810654256263295775425901111621753775189953822093409141336739912595499186467859817407123591436897198531927323326708901888437453595309583767432720171289861999402957216386470246867020923325359529201353348463127567253954678513729816203148813602950750927389206857648527289335616597722300548796228716176641192291821396882582351977370775854770130720209621966101731213182829378518992592512496139266113369316401933366384227231504476347261085767091879181879720944109512382291824447634015957977230173636549284476523363363212585722869254814266601695823460183658564126359581300774383079295316115636407081280639215050645552644218684103493649079008915886388789761304347460446125769187924227389949283263412671788270513362512766252417854328532193935033619864791971649358746479040924677517887200935679874204554592122792527471262530621074848177637515247661600765319554726869087067121510993205688369775622569064117501075555360435409145691705910949454184315747214280565678184808739646416788807874059767811215697127800029014089888799887740846712982506291822580303781978908882209476752371027354075675188809281850017972390870223786287602321491835370686080983755929188991652105927684047826932677588002242287569148479888270171313340407869024021838641475442094787737324678907380019459612207448152396914832367620117095046601850207766505574888056734674143297572053158689557093547895414387584396348091345478172227572579541526744588823002477934494357587880646838370202914344955393947158690294780027407390989208921618454538819573953393371827385404426754546345403729925550362400904433119775343807113423029603083526328134708347369224178212776129096331610564393884713904444569039874361537449548952274740296328711117197753370926384102129673862063774296985074648193151792339649980958020952767006704892626704698673664379507195648317457283613152524660158027461989168294973088734008495594076378806111414990200623543591531010930633616561173320193089241645556884227808162515590586461893108471516077833845820107621179336657461824797141708986227061032722134441321299689101131291370048638432076801538966230775415095890736090605559312406855475311096274393215596154054729146461272038387947140897687457184450684069517662131147126421557830425683326089657611108869556229886092347913070484428059074276936450908521536431797454744295209465506609353779408374290353214090916483843586649785331746895384898114797833738751692645178821394562004689315312278295608155042493478183752472010898311921348232601183361945988755261662381627620824394264570656468995413012359860152011139849807906527297630596477873808559739239853190811475264575327819046883462639564002668259390292284813669001275570255911854155403417853923487384705952286937788536650106835974099860044060279340495704142155176696441996726781955345997032369956195201287475073908301599883065472171248321614974099895727143339476578429506671632711940591248561997179496001662118820764631620544902478903417105986218652457132783418393548183170350753589356180947919332026237532616984174780366661597073111734429702756228243274195824548311299817910946521145173686785811135998205708057843559291958430183487246717781993687364496099230242343900400772751950357320722965015950576854308023712174418373528224287621867357148473481497279547773938927533793282089520428612519283344273814444568547692207911334098985402547870043343746344664452167194359708928316978883201169660056393075311700070456300240074478719438415910741904768881095642102071104525993480592533651188604715347829638960763104681914466111167286117265409481018459965571716173398481734538460050027943287498730875933613119608596798663814440012846150958889453160631425356869325947742891722401667254574457587960067197979885391865130578192223934820295143889790886794547691578031448502002980430929997283187605951157194916101038195756544802367073049222973191618250936013521120899348834334031605458586440125927710515799894474391812571847688997462397195543465716885841443814388610628804581016930925740314869215237508227359773335063524227146430084246923634131304884081704286119996707510607498152967124923911976082578747724132654895758311829806157438271219246472119933139239411354657288061269137801840145852674334895044027048618435832476586127105837059717251500648238784951701156539748364337297333203982929325393244688913557364704662247678866667753737777273581973447694744383964614722430888342430185630943416054564840786675819438170921868130921539510810510849900037645880211647230009922997544432792901566393810886202037610500237403654934031311099280648280966447542514058693582545775851273114921613132193324574253730643254551754429168531738783543013389770437679532952957598644188498449910660925948997961566607992924028210847682465936907319953604805254272765422813517118567224917171010059319282690595477373049610752077564152995900254841658291609453151608336488429572281312874228159382930147287458644224803953460881132237563674282663605435898437986095221879257850964329771936595405001081002012056412284465189613869028014455990381947784363589789776137366403001902195892989536098961509141742891850064498573496165855331599944397055267345060474563964298359061135841376389932811460252947205973897862817381733753073812284023239615986392006932744116297534106535661184974227329003453218748618992323713994044857591945433114441110873656959955773362180405280210046069161387087135173932044120246109040238874467374771220202936456713077589695529314467131155879460046296574462833308305044448274735555545978637888561294271733671436368488350895971779650989617610460867395132012953858559430164080297566887083850836234459185993207137802277585653160930133608429776328561908896268856389232011087964649230654948570543135513374410780067889036949056656274265195383161874290638093557571933637656081803978018657208462435662227301174678027229414379376968090304289395000204014479851405518696412273999444254263075112312880694004464803197552838598772575190881271914621464343572374262633935773819001819013939486917936899969941802178505498886951747736623446026043355629195977253503203170538357575019584823404136760052207359843434115747100594259379644203622244784737922524633403832354436775365232883969116413811389251724165310129523181719411071567946422967314120609677327358230672464149022396860347427297394962944321892725453254279053247196137277223720519542651907492329734865637657976452247292790377999893188193141256050044823409340550836001804202895535321859878428337857874242639656953824818855022786042575930852090005450413586408639088062992780640858718914682779134878622277567574472850550956559265820217134893720885014294294897106868272876224446354403834064717519608825005176208974285344095021591029008827981763433506644598926545620831440125158392780529542372572409056714410959229844252527867777800209956907279485703021093899050796338135882262736938189876175658681311284065645074175989409405945503167942651479606558168510915492137756859598297972413064237743799288466028449009007247800874099418168548891960445713847367703649083884123843131343099884776723952361854326059069582412474465175607924133519319814680516949834429361605531458819614778241644441727717332274801443904310704602059316394189786587751738747180152921667263741016824675692758599257364468810736282392248898927089427048648294636076987922328030128089752806910255945930024846458608711329760909499782097761881371715482799580589285154162213779591258468450058790632207812175951400713669728219061927214002520548786049344389297328637881855661358509075956604261056140915742919895071410979903417804984834821484630261306986872927775832348020320643975244193327158585239418678340696907980350231422475330250298288238179674077036627292475510571396789731272052978640330978681021967482949361492299244633150622916998383253992897958561153634660619781892630145686127501876815261276762871295152595596992766504171651055561172009345534174275924459123883712313251456786744952487460538737128987408421161644687941982232084413836933634012624833081234775199761331696897221749448900904813417578848692928512523301807302909959849108910535118802396953363582470892710131768504449537404974073907343691172706188395136072685883746218862050766470780383361289417852519006055352767892275742072791082371448237228710784237116076772219353468649609447115111540604835023755719224743095662830042003196091756141710574570452017817912586744220376492518640240483555313324765826537199986528409170559015154488232364475728356780254626517720057987477385924967433415362423189197203099740997246520170215422326182816813540645993205493190090135227876755382324794375788537044916540457861830676111879264968700352636476992855379952390900315094004282161019426134113785219414207282829469981617226873077420315662233029307199006737113233931889870066948151617258363636878987035528709923153481912988095883138465699618524604611864496904778890125436682313822923210722212553617323131086638941528485061569647840059768651017089938923676674431136868141194676099775340209051807698547218766118874714093930527324101714288106218597750770718564492333043573805994717512283592783626330076234043482611364886721597723658091409419193276184240150526359656742616925440446937389576517282776946219418448483675486904630838766821010850070248364249621812802633683100183959696855833251276271249265075043923803215744614371431964948813272100770523283807751317912540714393064448089867305279214653019628256903661486048841309153632780425120300864427910342118397858916196928810801876027384273841358107439047510486154700185812601376948921318830843259066375962703661328032059093962402402906122465011701931829980071505157562060690128508144761582204205509154103096387031622585268230715994871176237488043619192226414986767172975344662618709672972845156263235573647315153293180240334918291809729509509899129768628733607264026022655760253237606112532435575215816086884356999334134673281168399674246827487228820519221555347584728217959466525020722256201560073149234176185052876407760480989879091716215377939075999803581394410807673057897408658519764810695064347148788115654663525682553173848787964973179365786618806982564182057168017943160153933666706753124097554656680131688524522666763783238809446520036090934058390476876498151835081582858544216288574576901215207366810807568729174661718992938672698573623923931643780094313882802451475891328949414397424515530572448237096273534706300746368957916771538077439991117394955943181721235865906459971427611410122258662022291481668818160336086178689356111421072985482615284209225341048919850745933474554242171705340207524938379392490752762462296573958809353781826846924149149312376354886820434879524674426821220800651197153610694780733338481971823356851411273474043795252772834707839888972833877158199058294757663940198154732441683573545150601574025688278978452223479825694137475643644456473336672608370999143119383542506186462816866389613727674797350379425783292964387247716305539638539639317252593780306092759066771226171871242774136989005529868057847338865912862246322664402647555338441394273619673088546751009354510068434585742423119846467773636385956188354022613781802283556489394306779560594625036118284585877671445566907690029060975443538110131711142391836598143105768655226045209441262262394565036273942481091134770924767279128412401539428850082960640548440214779447607616395738299599693166984343895195134726938960330778905647074466378899221084187342954374025288443373358594084944417304341850236926854049325653590954039563276247900756332180125287734124809285199332918809701291700767545787138035379118409606066190719619051742927787177629614370834900636330537149412545173475388467843892281928334456211242306215983246464484989422074956093550644030505336576733674415263892697379829046157413679140006817796031630375848503450856489023133171815971389178026683755209758589068436610030144738569035557520569947972699974305164206009628457133663324793268015109536088443688071771561761303480622566584607088718564611694362479948210454579461249413056899604671761421789582974242458341886357199203922345156503024706897601033479452348984691739238141953381316993344782625694735417517812346467397238027374928009378584320363083882712398200403120230897245869345552869371943476743417568562172644592028794403454914992303661967351849036812588469269691390419115286088798627515788562565869783631074765847656226056406191364974558052141372837358751605162362095831175629799403685715806467308640909699810236841964970443568057517056824171695138830937407660127991895414044837217203310555690439331510976688016510627534047132352023811982349779317150517701427773641604442909873672992308098322320945861518706845646607214555720538556765910044293680916362738359830201206822199425589883484254327086780395714303051159642722679712446276827155177504762845686142364055071381759433654003909467773896256778987953892107190841922340841595395622520809775960839445470114822351813963098523266509813413265039556863477072787697912958612196058590753142162119124619052175230730659590354670645490331276424417002282251351033282652457632155033250908022418905533399192909119916838808215362849186884050064257722691724434378372366091114803848359695445137479356681921733657932896275720266771057977401439675571469957371871508133723422167897633342923857212950651889920470524719616554906670599512360111476085042047456098940023701828157776868700440204537614275212055027918304670245963397425318767830687218666977951025188646637800166906549392316418999823603613410168012249959285591276580359154405020909465401342634721102431494221062395688636907122000609902824677060096914492371747831808863545943328684749711320371283908511700516607142339193570444481332476960299776886255812555342972608696773706989310125138893889415536699710164091516995580464387506556611030642985307316572328446273944049741627663687021064011756790282778497432074690038591528412054485113315225115341239074781309557136405431433697877365394190953659569415646953842242704942802109526840530637895319786721885130350965212834582352224447983869892538998714820261084762030799777835889047015500387851217909623786820401249704717675339196405169344061055899856733113974326314782465291127913717464632155460963613055226919825617799938105295523921661223173632935710860014342298308104666646888567336899559454169568013653074774440278782792193999492789775065118769471198249557096202716571733428828597552820686383791997601667563343319704338570902328743707543425016788111457862988344722963142199827082688819409329855794000666441683290465661318051827845471393789142205219591252897043543230457740648744648885428590414440784966845434813914741544345313940089993884612557034083290368895425713091908050325163442555577384435377471700435624007716616098251726667169843117140821014689513156577259142581603766685857992941631481765526726752504092912107859174032376771708386897347162079169161546306483825756795490720737794541587541851060333206447971060508202889206876186697135615655221071535166930036893544027101570848696875989926692920597597992414988831252023799894277745748511570250524727084931350603885626511019665362065764021614002464789225224064702608077134582673000351936085239271749796862572263702479083254481229690623727454457753195083511641941461550157330948330080580558945240877966730147717007202778791235513044094498976223567773768108887644278722511396175678524741798604455474681570267570459804208006991691304081230717264599310919745104761991708888304020468547369572446720672143421116902131428760309635419168753382865137199023574225033897946040780836440194544445582906018351293655705354188747693865326236751053066727779148843373847173496834164980232312161717924205355547115871106305796750334269344219392425851662058126394783348343919290404300853781161126182254935022339420769144364737829916595375826296175130539974209925988709110834663678239765213502166981627805386565149937704503518604504969898971174215326616787742746370663718008571235510994749862916994778173083978346284898115637790294388318971386719189045908240193152613944627699793593243785540130541586736650982721563212694949588627909949897039016142030597898296861511540079168376036667716090248624676424895021249289210373286526656663654259748754565765957163031432406680283069692179027863517345945425995302266989635748282497086273537938559457091070949803196103477434576418285526647760978993027811368445446632142647850430584629015556309732142376654246198303835158702401990681524141329266990737514924114028227213080828152345266737229699018879933319523473791115098913363735411452391579847648603830497437351316575169545648748448138507187472217487786643377468174185986220934643543848915455845688210458815585263034334187789214737515714504836234273819250270029105000265385108211775916514256238306701121825156491126087899091722204403702908964254607708637185879508777009599024174615507438308857457708924120838419679421583447499179727959610562418436589451402027073109133309233688541579435222677542527842032200660792636356933696821357492784182921717621988190298239385203206678551262390975342993570806324185770928804547802415158942744162525360712551178846170816280153761837732130113434704957146475553552563219609992874651378697002265775919580945025783312460886339525727008479952980570950819283415385403641021000628353047090818574630455727713892910034197578407677878691388083335908478926520142040766957682929657385943751795616248119149744176513573429768668601798583389780824010916121439261214706939755211513310107566632576152620467361433593527991149635456430444445770087299337974202797072135675026229039821857710982815740408546854071331018760590876252931366720355830483948706327976091683823168525008649908312497174960104840986232766235875658739067404713969878094994658900553702328708012713787697314786224376375486948551536154649121455173433351908538971596801427320826559693318680864540778588712381140567864735058759970108624794462051401386484275795531157815574338062665963089393025979665012078468066610886480999130899626784117557132853335726364616230117877100930874783387867895734343804127104531244734250319230161144160328951725018970796449244148071891374658288543841881503627098286829766785760793821498371564747510860115990598667211434966036578530180973388482165458742620305026144215982044452909582546219066711258543067133449695870823753544358964728897606301175469181530165283082081055672041430513242033079589220683639254558323690630400759698110272128124234143185403934214104455885351239362879379709027157563751776792846605272442818911255521593521748575746620930328048428338440543823017826136483680856113458772754984882310063126111566311267129439635978961848584103931466473983310678856524041522038011718141522717479300048646368515002525757716160004201955947949412588989481007397253884854871250486244351316947830137600548659795875034416100947214938164527758177646906803249701706390899772068804194234569245992332673282430000185729653059983342845353641977183726990924131242382238105749702516807392699808852098188474198237121042779242700341616884476297019682474897860663550336310595845683802567900702277275958870907645464532955968322910970268053063950435200204926780734064892353760125662653247774382346793293466955818468047171221678598486444030067763237284786271356693355128147826263143163999982124360251834616510712616672052456769470505255187526497456830568164773102045267179322399566419460196227221497528767972675869305051937709750805797021785431116809876977548962681757845531350142297008785308047244435614477111263551842142597622613901556374829026555693181659302486567352257418613440554669505660181040821642952538630756449697296091435725404275161496671360558926897582413867960255204190482929640839955723063217873975690254959917365665612907979642513464042873133794054727863880471570941076631140338850486114535295885760653155196636183443855354737575891351563495461551822332687092008576804920246788761452936236113769468487012771959902146177647997287659120277751162000597017584383734599080194548905958935834355518544590828219971820723775620034784514041978391496682622627749551798468376551044348417977040014869155047225952815835311192234139602570295317856690883941992621811725259853212481958657030222556955271223711986137824673717988721449066271241296320552997237578766981032603757057900609536657514136825573707897652859570411559408037665300610659843577252193889890066832570288747484195925712687957564468725419769732845131318780545040790349656242169147428858080391517080961827513628212875701146217882543183024670124345509302666513509956218087310543787073796233866746236179338988835427108331481084343605570662314689758847000374608447048178015161600457578118555004229616020162027706661809549663961779466698239183678786639693089397222496604100775462440860710638111955859026730780337405112460990938506919257271239482324548425186847115593175328456515832447480917506322012745081285399207228668011070385877455598039376052407171394679962097187506339240282339821105487484720373234498014876992176786316817461077561747173841324392468319607871895948638922193603530643734013041781405391750419784844079653282179734677893076346503217971200556905277515583907991269494425116277949041632287602353738834638292768232951280398990469632404920998385471211603580929954316998137860033284152460175311983407933257062521761342729840659614820030556449495394299473653369288274445288200164694458365909135943872896834631275301898498016280838789958592651105027801983669978353536379363915478249332642529637354133294705333724309816960603801998485282192546384144675464343040686340131841482820776051337916934457953655537728840555070928194421442390853825397834119490909656211659297007483869892390086521872259461209823327602576896268147210145045117536329919477310228330252662582126858387338345133642074789516280607247966961905546732854776719128961146548486533215495512384567999122235080496152193068469886790094233998668287154073841573968929543579563485372650372125162938374118121347971187375574271471685271560338203973966986716266325847810702750151193211456452336119891235019373195839943095630890227978291616791051143138451900031095329150168082914537337811033964677562896251844948063358055630762547729655847444391604167084624076202322103450914289368666597603399187181887706944264357586730566907097499138883486241745330033380858080404139532826503204337730072347642877289372818922955462094046445647537648996898985224524566365430168680574724634370931523638171115433515315636967498861451874192495888000453728283207812581827296667579338848473478505101377737649764483276083160853163093600129782757834302413833929230654977053182236698609623164369348406033333561910871465945085214885702229938111697310772552108809585303223642747662971972063550426409020634807558682432532196420485712944244088996503076477402579355085430143393682125114257371686557169562643787551448634213806988341990902071115471402028454635501689487227958246926462204257814028335387364068724422224049665908017178261217342467144208818066486948073749682650298078485733741482882446553444695444015256099472454939583081517296255582109350400826364073445444915082549066402163521350345001088895771596320952150023741608616758613239433590982120656810667552329386147121192793705307890036376061954094853191399883690926869382020246499706124852538069001073170604375308831054004966205272437232905851794175797179643028385909645160753350268053503991828428601440722111224428737763759706278141305378747777100848275893785767878232698570974979672296222487959394177269073011591576061283417251747012567231383405329731997709747512540067978912314370937003297225850101808092376914004719895556807544982077601716986596682662138711793264301022633316495553611820142803947636938283700594383575202170949673113934693154634042115102938321892803190146179340498401542090062117825772034622478082842205101517622902600426491050770123220197178163991283302484949599697688555877068941561627643977447657874060451474270971029382720171242814498595149936039364111350513495503304591460888299091359130660930347130021086197149677039073076466492662885925205189819612544298638823742110392134644548386431203582056919835453380418984204597148412737701700600933789131448888099884771289019917135790532213622576619668616266467741264013956392419590468413265071196774649760554076901810522091483178904040265526143117339396163634130940471615671266685304631396578091829644133669516588680197992926732361213036526384343551631773633350822419136923508261555912860065241407538081074107491515941068778949879176798719982245812731017477676866607273969914843788263013881617015192541759593766390327926456885737234228551752310363831664712502846629577325225426225778488225652795501843791323251341402333787712193839491207946108637796821336406527644863717208077806796625380105900243942183330728821254346579275682459365841065599726259427391243369642383619518529753523799202469775579777017538163385938925277417604315304692156098281197721033609547014415709923584778568615522594863554224546664632839320192584919741131724305419090470631548029877037460302684820575438808015874602874771477094031071177941989326280317464211575977420551010130308916562941489458744073976465739749820703978884733470102943592940497318426586090211461355927558567930408557571555796008698282065320174499245477791680839875273193297615896183936762918905257011568823960933288948086253695846196773713479508183787832766910963591285788497931820947577546213644404694151411486742767242479535921956983417982920850873743418854855790228070497299114158266533981545774668803441486695739750436129785217884187477671108878132100587440994938223922713358567455021621786534416883712908142200672756964173197725597616250961708696889523099765624757499892905499651447707040799780503159285926218789420299201954018123127272060836759349786459119402507848168423649217675133434432854194970207341965592684510356094367254204981008790593695825323648786501765049884976058793826978704662749233920843562980279830871078312810415632833557926779740395135641403989294483153834609657145923685744287669173898269417650095864610610335258219530957844286571178121030385690802987526584261228493629221026394519185637725595810295305150493194135276677746506292502456395141816902544227325466924777730210698905525722697251614337025243774375574126506985230224693151101043360473983600239186359513777862452688936693565004679104405473055514591160636334372506590802926993951459604862929311651724628365098501254399278595899438448694146747719243705299815156523491604279729571718821668373479436413987812095608232625612990895458736503034311823972126332443203126412188923288736775836640242588554677053437372764399166783796694352934751230717105842165909110502898031147442138986535457457960421827045961766098792680264999671671395143446497800724958784119645797830938833316199673915073957921590422448307310292428000134423102212600947430516327026217604799943217450455141152334328548184433208711323244760618988765420278383453188159342852183863598967471136493739140416014325670416553962614684911045593844019137137926102018916084329778182968802719811890477902152929213164559995856259716746738961690193790355848080269916030244302417750897514061994430781939723234989498480745511213479997838058943180133106813254930495668263196605008212823974724051670160879094661076736749480437007886478648250595305789310401015040538793784830677161718908073665982700087414500993819465484477921184717532359690000612896977881417065941599764990553413911263147506235512774288419987051837043777454160064452490385672787736126758121195877990609660285616571537224506525601717726212834013494511830337379070799363183509545763447416331182687870271551118860243474899137214950853061136781661279889690009978627653428742923211675165960207396799454507998833415411931982603750060439786616991927267816387820788927468698687627946961740439754175941557811167760291684499124517063702844846667304485754040215601117495298850701589757173825498158737244211715736187119264549109850675109569302172471473863079612581299273151951212035135341695121437120923175051618335864529531664447586727288697389562929344814600916065478234560225389836478977516231288624236763199556620186225698513371922184770222277890839786991386966039642034131618697028104460599751141300842786412263416966547439878997088268361835131182389018461102565055470160370506589548601080166004613373214689180592759834055192251003449674106403104557587492690353567679987334632899861288574821473418638270997210634510451674208229588391534905135633488865644124680604621330562888947868298394663882728566721618013839905999749560570937163606809959423241435953718057056852391592904822693882051936478593694237446630169006116532065498859614259634801351018786446276231926310722742720704954790451075302500003501246457501591934674395114977775063328518809507009611377360343037520970590346763191098791127305515773627077186631258284340562284121482372198152532211849623862665188697845873523656122804812956616462122808221057256550299447174547211427438748509185405297861418733168220493431064638217939160234994478451811415762030351351670374756279451403931660526480660819610144700590716299348353124043599124477611837534441739217025245354353999916892011128225920798562812865385218450500863973822850209150160292055257618146307571225725813239653001532036240187967823938424628337791080815239261626310794843603043346965027003250849902750211792232900584114768185072352644689230342983839894709884267778679954879307633326671345790587905252389795085524343841106759984397451418194078344594804561975593482469968313392459630058902609822321933076352085261634026684201477409722808390131527401298784621562585489714549000326309950832929838371460441032314106261563984378818121485433633122805509804207093372791133921784090590120554987551600049266730948066191386474424317207416939165193235142383012238112351089542202460570559812408694517552481312534998973098322211312157988300833044613189285410191844098471565157381176430381662805553238373427833626782607992367609855289611242135858824587445799987066906822993584265264935214151851942236304626468190267900837170179596958197310979925704736542842481005383885961064152138564285160031537237448205803460359847042678155562346892757285033023860199163265907393414662823939431906661104671205568106631882127409022703701882337121246742165610892967609423235351766917476244999636566150404076691952019081613237626087601278768744763750686475323440892967049712657968666328317796785444568673567944482265750586071246186392680241134278514855963999008043073424912342640303840114497138428907206398362829348750745222105172883325482066098345334440900802822380278963864769281933681488226948188824627082851474220281527693044769033745025767556673810627457682522020047557302952559957645370883635643416006047671302052987397748419732389165943285241165794540792132998810946028525258292411305342362140276033032069299422574187418635241841770725540775973896841901211175065403503154640963027268163594271981305151217366069052974024954590568057103361021964210194483836586196286368150548749840984693970905033657687167526268671762718640346454643026268162520502182703575541199278713235164534966919864394595753471744927891477770962910253936315343491731267776926387453039276530190430528818887954801007087679808469666977291160458036665085881193256093206213740196484197227948816001831887938120824176958646981250845768208946461831506812897525782216532172238816331465569188466062963123482782167682209515468924544202556662136111779447044848777659339516651554071669687594054000204423485267686338298460565453418423736381623759765930548458307024438055805620686695296796013374997070422294125012019898931294186211080372519588158091785446251723119706624496847587559916063735645195059785377378461843698922442955370347835082015259492157369517166266598576503343062540498734363280843102498352581518386797929707320962489064369876227651150220453408476286887392361531134681104088330366867407124768338552703370809701022979943586770663861852320037949684389639633173305933357984231131695106907267203491520247647122564471510605817364851027178653555329431206211943858879891567990801981296780014693715527786753218275091730158241469341374513236606351915620956753497163830215654064119116928247535894986054931342848340110764668710789396282966550113931255195001745535150273715237224130275025186555073356216964386217689318265875587411938318530275002149667712380839697037848841285392970424874619833515530631907291871387191144991309717791932629653011507405242660827029155810856201032290620496258887690096304788023649355154542218120772082166271185826992155995328230134834902140858683980553170008193864544887586633795735498906654346999026917050623868587902589351488408471621822487554285405599864447193469416370517136348116145044084455183988189017647592836069284931884686300130430676426799187237184940151893181660774296654068188864412386878250090455258588263642142453966555713139023278680078956087748015173605597158775483024383844965858612195328542038831941287402345481681854859543319906170591951073613470943873626568290708211675877862037999698955946073852199792242267848674217474804394706425406871762344796810685086231417538510261269513540754232386136521930658743384476146910223193021029609868860392225835430279694861434356230134812632184997373219638760187919554034012223426241520380088999767545133597663232042003092406916415651417804347049603948201865257473529206296956870013196658641302224335363006130940857090800240942768026625507827171490469995432879159921169026330547117888912895768881343663870291987049608563512709679643825840853387613837458470870079578069859037477868989252767880487584945056240910833139044019972245265257207724830196475778390764927927022395916193007181407296307769936189198316619401684124055525446289874478655833766774277388017872143609863264426908438892330112978324483189217692050420463982577615896139483871818775500451770806297959794846902016217333318626041193245781261987088826102801680730367727805193361917526034024928018485851913790541602654214881661925808097492676616563687438293653499479938191681116594145786218017420959241867369691725301227325531451832664737456790083869404699870381542888878168589585606582619009172592424352540760479180850707213494451010793539865348927329406810802728705634475645230815469254310165012849506260039602717204873953139350250488889633523355628305225850577411079112482708001653498336252086491534272047643285933284370651279085775064402376701156352130732581271866190661485870759958349581098802397473892053587933576728312293051589618037898144852062587220606281631763816875578614215424360702041547970859916171880271994288176190927951762499527933985859494053932287089000095731954667776078841870208978331768195978257025879616747710538743088288927470783619789106300162492276592118569517540609970884837687620005442315832314716434677966815911247542925714748154625105074697968439670536666011155424119755948527843428609372362196706313031108055303695419536872079191393154384276265418951429607978393522089389442236080633060849129869802942496605767060274565037325524531559785572619820096352234376781970952665585915386362622568227336639392283935682561841744650120819914755478400953764646228238262273884060795675830996984335712342676340391403430038747676626624291239201345943079152620241071739670184203080606858969062800824802296073537321729756798313176452935155278545532547398761216344368762541786705993454711227529149940195800424956899743650041088359677051632452703361809919936539070240642879717522584081623310732567269293611847069273552548883312150250252124813578324669549430810294602689625700922394838471158447463598138594399525719191446707594565116614713331119965641402274975206908516837677452425830701579242042694333034891037228211496304178485540594342421692703676556802780312168368262608862829533093270294550885111407536564660496357160825975035579285812785331684510740108265077724126493986436724393426001666497926102386034437306719486003941675112438629551773555128033117521737842523159960286951553186243625450137189066058953905449575541440791160328044756999737585641316432673666095892896004371810402157644820772440484136047104167337568506724775657485353905894573347145875315076976348736237180519548649074835894498191662352943858564912559084595064418181628566693700655541037963684708632355404374734564198690371245735085086099765348499930272255433379288351445348700070351608377383401595451813667565302248881422284196059557562892012068969881464693629572410187968028580006305129034760761453102312244724328854832534725486899934229295197759888056516499953707793622667451138984363002326390279809450092306032346198755395926564792646267554618572873649991252969373965104501628172684993509902550717464229768353628309013890444740599721638517387788105304308994154945365962591537543388196753619448320488313484189556740942225802490210123202715782390699073431748018989022004547367778784067114434839930447850992570270564400191505159017231933392956168160779257774902273018885619246916392789889486652380702746494827829758870150909879513420672117479124067074287850710946220785045824617351285963289821610234175022612633415139887691706598963586011892986286791802387236627822016009486476914340213029783631644599630442365002393215023651849071022167445735336443754143679010872008264752471134832498409545062911459130847857365396690633577623235931309804429316382640104288452094814552365716629684726314279264609340419114857842025504233465444071862144684080309869511626947057389799742285520128365362682354951552806344190483868972228513389556667081254518836569125310445837742718755457114129079158254105922805575740462791030867934438703986169197279491150418603130620622904163655485112436407233975516054004438150264501414218631485060516030530443626480622714601337109900573409491404612444747135665792697607670806932606672703251835229344761404162808444004856378066254131530406437437141971555179574979765083906388684059276076684877699207380314083641829122671419661644278575384605195038445218761057304519810686830253883314656475988810105565351890671528412693099175935350278159722617692258892391241334077070323688043782621539163458470944347781060220479972546576390715684823323196848304867751440674557357097859620514942550351264197231488359527475415748978543338592703565921454314538851019309573738626091890572163653987872004383098538065049717624827966834157416618695713091167960911633815791943635445373890670987564555360654318350832275746088885329883121911027475151822297639534590127899307041753227956665682020428907739996138170155511373117528081951479583246092353408759493367897466396096000173736016672439688540686579508997656005092141544604484564868487668964226032207505913484224530989380441545498505069339453986288694019005209266276870867920956372552496783735940033638894678971903062125364631211757167344592179983038069898068629645490970692810376035993959133904139169669459573676666171151151025950090638501894539957425598941720442611840879520782952915100920617589597116483511928529702793368080669442225602411178731995229610074762986057823597012861860015173698496086212468019772616225586451394352414552191729985834043855527183869255814705944596612417185582544186518940702387853006979083335098471495816683128620682724616859439798432945555849264285639157437727401465540014464156123942200136454132980122033581420970073355620395169408574914177051016921250798900691395526545419614012807749121166815756548951909407080457236930733762407784124641551618745034495668399598651461270949699613433377671531801372443028775247889184039512328139150287253368797858692239138396937048320014716466124104097296887190229325328404861875138155972048812266390884886491489702508482225416410622879849731213065436001026516264161398977391040166631600326603337533266642106301347117492382275201835531778133922359514219295833624709362718364846371292739803576695591076808466014873701856579951448384724178473946068316155998736168883758354049817617916110221958569606312689720348337937494544929361131095447418255015572632755770540430516822887393184386157779819176492911802972693222739384828735174820279580607257617856794712300199164569808618099823285325255840538628287116814216292698580147714946515941611256009609383756405881869899652611188114801958503113869107169464143576524393972066659588116356458290047974697411100517968919425242945412894013173797714499055504849169027434847762193615470736630949798287914788642408717869820277519448777106651717818701624434400968457738238229914177635616750968556792677332254545410575530601090387550972631893160759395986280986426681170298208364173995152655822371511770857228561585071841548179716673502222975870112331598102827864871178383420425137453567987212816320650543096493876642926937131343486391489860773172595927024723682597360252141031942941635309774992107172839484879967390485000477269017329768400936271430021609772415654395172594243720449420467630803384282669178339037933962077234569800105963196641292708824992705041798562195268053588346788589630821698830567220406159362734850253711495135078857536299098962282362423587467077556054542051036685703543826030430547813078866194275415376681391262809994723939246591590905660529935390671582322153391695524761902827510877341535696518463600437557773936980663952884607269932541024585594321812675182825348944605805431325778204157537120700069853990542086627591479335805668072516617717845460288020150640718257940719428124056903240000267241175476583291933760372610941817884838182414921615877238602567956058933998567639263747236489849538657445047097653551041892993069699119247166459711829248822332915314782830669412485407073497622884502683699869161368560247933095456084070554717336593252112165522258024488576499393973718583462442874039152028838989418566351886372060785740638025146458009751232935403289097697430429965964392620679828180161894027278636934744259382470775739335953026703155429884851353374522386638820132155743430473311969909779774399447964057949009237641393041827012310483294081907612456590366439620495985952433331717471633511910282597309885497981011277998632395655982595307066867521648004216924176786406592503989219681181190115573095576800189376002621301173279818419146708856112802619385768562509300854136709327645048403461454535444181424236118076399113775526653891364136417303687499583637483023203708840372235493339414909055554344046341546269395796248501710367329255727393791372762066618821739272892469628559724204900294742042945913887136936495176003332052393988841934732558117530134406650474142035110720836781825840827132343189373000683225186919079939823232227419113825020363896661161928789657963001895981390485031339509141226655867061179135651901568817273601917776073024069278005979510686760427657366006298339225960425576162473796378759717642075934819824264210984425288271372286106596388922235227532575451253473170830085461197797145116989085736285632182519402913274209449718342278132623220886077762898825817139105493237811069564354180560440820195788981051912609149059104010368264922112187039294231044467905136453384480817304240981258831622174964894737791122326169623113810061657958664005517210694831433053824832950338469832792702463926900173481780942632956906944358465742838817059189771446236844760098355287963941848042349309775986703229240994496968873371270034765883838805898019530402926308289352262145797073199308868146589675979168079400250652902720199786311467969482339309002229936379723501701358467062829048840452424602650925237240684658863388815536513353976928945292567318476470536503377525892517413148273398572867241508329276867264336571032106130131029938371449725531706698395476992538308109130150669460406060477644216429898709725286362277701492585568135804881131042676995749062944580998735540259526847055833717295323087472317789670367639988867427115348857442846054176609625265067115088201420696840033816336536978068221106448347909118579109948466584167768296876565822665148266607565828507874434894465355249761885987997838410477256673569356535547789612717514432219954025079225557666027453026213215780390255516252553597248342023844430993076099501584498254707470080304858233463330778309654127391122197506329179096215349605255572991347930202167067468803434476486851697846788354583833765719475606990360772222888399200563874426395121816379746083977809178447047508761290473999449630791355685174367769218663517564689702656875561529469565614944297993590408556027999416755991194240391287171170389995992648360559817988012315650757317889161484662963271753002660735381896938925651058952650212382454184183982727613624150403521047087334060822940902435476426141602054432937210990407883668073427821152102481972238805423625853325210124363038674940956859772457637243461902517030629296503428774218083693272695648330795410913404750765960328346510336310158426561160869678143149156303739480030041971240260117083844049992831892068218241181362659634479492501239753993095217354274574833189900992340431911689605137895705320011030402047841591249863171877521333676649857882156771125620240506782184744683452695198656862349388886318218664238664925535412815476474384840184479707113315251554867696354608140320715414181474526413354018262525389506085000674535161801690699472203966010028708544988677495879456912887371137799240795930232808052871255058500804505412123635988237522826720891036360768794731184561344891373496027987760583654426042917392790846382858296160519261367184065497635255458181646740424102597168933981160391554324987525137096631852219832839866439930853483097282911391545889552872855314129188476973069468309220446110353967107723935781666398325072577401107297395636649290080418219323451981287291952320727516757181096695202919501014785096698357099129687329946922569924390421802521819720920397720263503854028835370225789708883396545287770345869378322253200194727921030009903078851410094789669649317937273591655390688699097253068025979485492189013515389277489547572508343372958845627325098302757433244644708107953109184745936224063353720289170323117964148933478363579230725736322827057573935475225973738978719406189957290660146898405640133258874645287744172414424143783333601112209981349113157718863484788423333805651060218529676570078999561876628497437975103491122396929926539540035309306576369043297378973768975478045480688487947455386640668475490490775234355444588382125181592043471273613850268914687341649633448122173535906248491619555917742289278326283350363841887077135413359558125530499612256669292512717041161647554080882239491343055652243312767717724519373624684100595938650282231207920544177241524586561597464551288837963762818505933070235539133670785800636899808247679098236185407440309197721604278249342017557646666330763826702622639870803286611979621873909987994570209528281257088363132193820803927087787168570113652743172929583162172030803948163315357284103885939269967191729417903312227937322034242482259325290553852030086732982454152012330311667897385557566339846332740725200378563544984522091715192850769956240844581922272239426056653914460956987170709276050186058220336522984070562780966533864208030939505749164748941762300252087018827000432851904583538335020877671126141739552472439980409089058124832502914265944241786268716930455333693393916286639952819715089386605807258220260035807289365646853170047012007128590771412781480586817348991328455530558810423947025052761776953675756644763429956036222500178797841973458506273211704890003933244474163990731801137946634317430509100250667456826752707386086839214100911849464881631732995330241909064965617217507841923068263396946630768136285215852068638038225563687976085148790273673099643008934248746306676168880854895949635441459995883540037569389602134087180415826837058390849844876834283780073434093349156495793630748131960433525294302024863832377503134011196294476407688743584027923302586719233773747922598314236595946571909799633443828135249259597850514658130806747474618268613212368067186572107313258455330000512904654452194856597504645118034057129026236325696878687884035487388548031151421726720452880480223593324008558800344532732633661373535555798188434542323986593549885146569973061707980429020907415659507582311144736652053130170711588831478178079022000756436699082412946730411102899508038236987556624832286139408422998978850944959759460197508034264379272030615028217565901128402203123264425707999006069687443896885022271858899251873634579896599361122808026931101943320501892773649397270482603563042901210973505748939638243716433396144581549712515770816406737868675887333668067178386122763969738635381898189404206670494458766675292840782511451441424035930979319011285467896733981524835917858383857322068210901783405802735758296055163124357463659149630037590570290002091205168068494858901679186413652898148248771058936096500546292298421920826469007389142258532803467644043717235530945471944217880506352267987613855384994703885182435181006741319921127265485438699909344841709815621680260257704020071919691428704392030421874135706624664407322040838793316790199908310905728559701204636129872900994339510393565685693014250707693517476623958900519592368044380152356459276888131715084466126142937409745050145747051430241689610225423837435958918218629117254309635341980845341692310538347474002243657389728298216866015784668161083503185511725252579540050698401293116056474686485174088415305062865918675590566457725553227969959633791774182467351115733926207436323485875359471997331412294495302867612140345027279493348513484388200864454616689296986028224170389517186870005107408796686695229149182011867541652856886984423977926145921691050706071319471519335714766942182701349307845007462914818965574634091137469650558272673402222621856534824290137341112739042965674342500349286006937003739325417368960483821245432480017645527334139594003253061906010862236484288610234599702939125471177793557749832439017060129122030530618756516047570847640294490635916432870981081763809865369399515999354061893693403495064693590527300547207150677068065964454787226154361513943001087170509708423867256962405840922132950257951170569321701707010959400706068300587878013329521533047364810774770879763625721816912138548740482686194282369399195074505281019506918760161791818704184981040882202944606545217219912194938349300860735693345978619040537349756396906728058974133893488698267676542501010443587930558410635511044151191779701118755658730433128710145751170086954036513032896487521036526268948025085426419102853103038840834336945683101879257579075976048465204976912024101473041418257144421502097382427804892860895675822733773527443927248615801360796694053310045078818407299043387672961896183078828216160510658090237547949814015794236862436892007032525339382204277891897850968770435296288436245222536350628070152472719895454428610193140282896845681420716835620936370140325976712347097600302061176070308912062834653032905164408591274778627231721950961171200553349189647024507446145980175970748987408221349249105537021536978035178690128020854049769874683395227702442102446655289463895351165884185381499473988252281495348866735798635171612222340078437280283118344913354351339120987005604905171908472191460778400708945086980909211771130729298423526530295930900802049229085933191092655084198388411994485358125506696734950603041751942901927666024446815263852562389682807665625511362007252180396409587615251163702268983842961405431969807323368404787535864581388818387058339247650039517485049656439845124208036072952599490657310714711728669369311947755922603669333279454211522967723873823925665348159479569705919330930380698937422101466568529496443226672479914828602440780667393510330157545820965654141160428769433389526932178112194621993035923634427689116745073931082580718165224341268682642369914950577789527666742234212662039845874937558624646618219713097206443967434443262523777757950918412495174229349234376799467902682797329686244656703767743379857381781053057401263729515904075934964347394091681414426210533523729129591608001035260721882972353400167868740219824887872027462198988823906561160636205877484463986168949556261804543492564643308366053158562936674419779093512173175222566886921842884563516581497267750698238514563663911763578914019310672497477795793493123485489523639262772004019600390623871213897862498586210443718646749655729247887677382521861398186386081269715876462600035165628930158529634130073248404455728733823673074969651195765991117244110805751147561006959737503024521567150115836421038524607455497385260219953836372217624739666888790034664056679151460746187745079292469804675707035091367268001721768483805471335715141913496485836089584728416161349478370785254045384595129804970848128743080801073655400018004473791991272703057489875206013934587932523489535284888557169228189719009175062151554813053456624763267576810090081937488060556799488030648172339615849902890903402887732342093849601982087131387581521711959932525481543323242203602445401517870194113585226247044458676401613976394211829445123101255248353293258372970699907601087441015091983055687135603637157198433911218207269860994393870612324116821679151329637329486233121121386798975201956373726624490463236283538593715020249489568463985143294336073749773899138223190544713265444110058976876339314722462305495933143732675400299477015268502301685710130459124267244059927813525433311136239995761218355804647849575918491143912977172135504405031666596028860821196361268468376471549328457642368622379168655741344157652146036785556313160179214245516396265085883589500717633747812826834797145107080963400964879514665164823814735377847156543224300684836398768046136656761456011674907287848965329709200450411739483301172722062911520578515414135073462564964677021749930982597190883007575496497294303095620103714690015038382966731492370567488024024046534820229961093746964721900308053432412317254081680443511834528210631739432256119024099245563435938076883539340660235571861251781024335939868447838423784012478012648951463705952176311544250702462324435969514376588296717023716748469134127221490987173195880892789966630720119692543120409215725059205640205042750176118459594806042273163297467431133586197553628401524768235189493071859747396893873959383551348407094779764973898680755555888300463649617475459484361374187258279298362235945682024436198934741020064962440050516333965450357360210305585202077246536193799727471135819770478613255405903394587802285646656893028081931228416753474371582650180770714672132116094367047581250840269669327489560276723307878709390893927154367144256293334269981864412437978600203075100781158295145722203981971831807237041959274302148322116331986648606779442531035310137042226848119483133965889927615713501909464199887267332131377081989098620669873235331323907501548208675099200098564282606956247249876818172376506533713971561401003068221017312794674951187222837026490905989510172363688194789827707031675723551837654406408228718237448105028735085086435484955213400210276849638428122830469226550406811617920441767921617452127074782019016892583120803420068617746011385401247663503936539776694675658708485186267116844362898500564540408299748366568338353040350259257130559204746700176064328782165104675471078976511846760478787546539082227425577035374982540468305585580178627366272273593422609229919059966431636403646453737264125605885987899582540234228576924341790256446995695216418691685126105209784040712035053510262957261672992683534777938285375790959675891966630930379639845916428247002338653688544304710576975368909054667157547182005739700332878504544078383992409045789829582813196979585833436799063622652552095902925198966203562918900592172469066153724078814695237817500105970043642845306593896392546010717056322179993249710970974110695989728179460014933437146488249092490419826209456183533023137482319957868569772442087512932874385968540207670004664984503596033208562821937985421123301521573259606513082809992347054387323401843284184707047936963811365873764904060479244718282261859363905502682271179959020314850088605135763782164907605997829024672210030408411470027902220957603799021633728160381906677710033230060042192930770805763465268108315830561908126525022575325174837474359397986081183386317630592213497868300416199963840589871366855341516766401909099825232737390673281963735271719551884017646983965624322053867240723507077750550718037236269442232222107701311505228001483286671280778292671421596773277315268603086731044936577637427361857295737127533360541879142838709680054003262818767648741564129947187710471352663299801381236692727717530112784370450428512234561531291605497455706379529584289482700094595425158212539266800491733746809116714265194989942373825392188511077419173701715882050614950092809995136888355459297782725771458849769690398123979408175802873722018233622081421273771927830023188834971888316927599349989280990326398929544885150243098717870328709960846247444533362101034569912059189886861622710415376593684584408135912688844711082013208419194954799742555789533036052067381352059076894481144780430026979973616933515641487156431246827929444337479887553334479596824850268704277392712848490127458605572329169948889812961824531277088562071507834548754034499789032951593969417470717574838884383682766125951399267669478467062825033037809509701410569677366452476232223685211368901411319611976172907306116303553764403616476889042243076580894826548851997740119398720866410748333151831464797068529389720388838670768145651792772362837393238749096851462680325759036902139713796174941311642170041928716706917344737739568841365385551946876760540300844856612348222627749388201363741122364886838273080208364039261894453671511673416889694226445579827262327896058193970346785117406432423402925833240397004006012827383491498110819895377816507057292018633394583698307172958660807093425252187189382564736562460825610220949408800746505491168067621536037128151568758918516515553070703243451536722459935640854667288242061367373201624851834732053495843996858111020638176327306403275444565781348150398126921217301510838882916739509637440623356415420223772838929372852420024623868453893130439756050054221262658911527293185270822779143330694463151042447758121164284425666585998768286057105874884948647635523640330182530246640431917723838915450167207828722850570292327967234116789579260368434209475997062916268144220907120895934851122141286217192093979754018262427242138915997804282114896081798402533218294237201155916256038553058017817240915350092448833393395128528428208075867530610956104288522067080535863523220669188564032415083820696797624315459067212009252351503288578011353986818977340654672059343828061026746018831728770431248064442777117203674103210729233195452488466483012553655599232100580374998550410055486491163553680589541154129882255262777290466390921221500296096400900628920313870235999307130459850312678985683597672064789105186339724464355721671456371473381057247331644161673942579618524527018215090008556813058006814623077781326067384661252537286914954430232404368618953682255446683707645983446403358317467525046257861705412082587060492613490208732235119831830937358602710533548862996607131216702271378264581955695818300010947831108949332852971085148256451475600233420701582943291553126516983884545132952523619998072283655876076929303279236878920569567807896303719994943347241154452802497287548978500034722245590084795874797829395627303537363608138504688809828173721791278221762915988095804045375267135442033608343688198825935815589662049024716362197360632594010039685891381653872875883918357543176002547750637767227541715582128661661915740996577304025477196189227518496560209984109687632488608977742578120763795406025855935612430536242984137459083538283215187778676321117326080156868328010291256308402409461663928944411434590065939337504313548924942817001199657836355710270189284578730387361640921993871878422053900109074035846970902641129615910216340683989595860146882930983620581037924703361981239384509636453572870555125878676452968257693087332178732456374581976626288253411064801247563636367708794608274655849506840295882340563988725778810940009002397617540445936433027062595433164641445708089482409197991890283727276691393503164243597761439956361062675850988594328352725801499257105880181374709336189500175022218351744265647172127969887272160541275409629119362089598933420935503759683421309542132663284730721493281824035058981246605594387721249354950246399624924526852609507343918701409754803899232118466914297732930605640155508001465845786892586883533791494080043158492696132498390852032948861625966817468847033083000119914866782386394992220706822682151564211129146962206417015227072099113375983726028851045573914507233559521639331819549546139169111525782066341361804679349941636460592348671435231157975636473778639131601809646230590645290585087020763670181194191167785111980198354582823133708111731577596279480502966254284247727922597027528003843456753389371612683198875231772841121639295748047930909729937213627453782068492877298181337196764083651356453771196907425692731904189222403651256186673744443734598098176386945938558216463746034488678492637750106908242702886335999518765491534668248825672089982274535095019102196065018487242950286106264409583790361714431987845607809412744147795833261100082368018967845276289538741100763775871893067428215029588403072500949412033095169641887070176772930671435458491072670825504294044180362566200449890573507722245386157031677127211119091597469271019733019319083772108087957718114108751227065857869007891033602881842597330146038390045949545786524409979511538685002915155448329144644847065582047749459524108844122383645307337346565586647680938666762464535076479020267202660137258191513521170888291876016070495519261888062424236382816690067427292196850149026535899659235886835328783931247486429586050080474568200103013661748942278902397277150645292822592096058085986593446734000740105232292478762261955054612344666078273633815042203326570023385343896250497611599587090778820295268397111539096999389682532505316216075108959652262611221571664528244071935979673498560072845947325675213953131875909406337288791305537366479632582552105074455549246616634188246540123370231959954414982811337579583055643789254405478998896425325235289571034442241090581608793811151030031156448493338660396141726159913474634583129579657650735970260141618679762494335498100462530293536624808967049020728046671254006938850440238708477569702328604273041261470640184673838330061640891849676639641909776717350939361404488837482082546936987198553217137584608835485422603198848727091000472874292114149400665198367452212380183063313559190624209148439255409295319403569250784565346218372921922208597449870537039566528343487271843427690872803372300537117733946584244469353589486496627186293378962250523899791996995286474270969250940432401652665237550138136650118104155791629707391379286343646935786154293423752331077769063145014129387933703953301975113615228110345330767964840997257079169836862673740791294592292589877935629775959205109164987030945841345737066186471030118458458637274066269115515979943635097473769328869024355288811001464147027289319560712914756535848777802694462466706008342800827303533918816066186732859558124590001753221533772675372633721037720012634673708495781135983053154749552222084963189831529052197863527964045868505397283716574229118429119819647950542091508479845346270587193902891021480216147119824700611361070138020322110876250521207112147392756291523207054715637104688277914416670359558841366435164883975191020295661530993269003816680289040073499071974493117813232744874921975890526882738264665848150096840037927719112417270115824392614857793138467535955916779249708782533355413478691516037342369687440601321975272172464228289353418064117256748973347377518176548925217619009727277076761244878424362192966730870476155929168619563935604486630384611092240840670902001987425844248211951606053958882099854992269942693763009484671301723635471851012183335666701172237554001754050920366273004405118425802381587261594122757641066303765851934726866942946304361362133419156984216647899210867042107908704629263173187100868374753779961298145791404301257015681287544675776212058819467279687114284399412453840486904365713464764559265849401969653164234962771410607965449099322367318472735280082501816772865040000377784692563424251499482026632258587031898173287647300095460723567222528055109484956090965245136190911323580307816967697274619044389005897245766147728707056108914241298812568579281200629667238091619996300375523645202753818991658557107669451187204101760532104916360550731686969813161881511145017953959446259145994128280727825534038346133260019416959112111679526057157771633096090296500727514207713825943704349090426657636940937812572930359282573008224467856962903320260593788521062334408415946514125559046617685983787907698699889496945987360017043865327281717991220051014777309105725863904458264629219395679126848152209154292544537759130751143505161170358991504663604105670888701377561721713223441664332662401061185558004258604860322709736035089906025891768138516148934302936280800817041792724238658921439074441453486228378674259070802086599699225676561388965307614096421462496487699516511355962940119975309903113240882405742444580788024526586851911400390271774666575958848975096361087891385723091637618683435240013243911516428370719188462620514586804981782048522566349767260322400983345731432140968725289700889432168500396066148421108981034888633400651982440275888007378275815002333410888047918076948551173752050333901945907615506313804840566220306451856099469028752031969108786363524281734825058950694706254298078934217283617049331739191762406891992432540965633086899854775376948513331737240354685569432138286441317850271242688707985572024957411451627214468513505316464348606489598014646418742916171769701300719123591175532543162430773775569228363035595031338846653032159147280269154123082445941741006200388529262935875135864161360148349085381814253139941386474958002273599358489011114813292628812845074133976438954219622835478670209037812058439362731978595951193524333657177798974067781547881275414473081760900163257877000883854007255996715265521297190227508487478413650775168671525014179103755561759797106753554868978194641230178277251856102520391782713795095596570711482022861320320443460359684103400843007589518198784627805628601385204683557827737262744210506910454339817219912593298726456087449906792949712787733132785553328985977928171541093250252472064034083170549380540026629641669263392194661585117687368169816285986207753145933933398248225855301156406815003458654062337659021221708861037188214672228176726740356281731532594497681027086311200329236658577873352598912285641259237048857335529245759195309755466820156646889757091083495346437969107628780350418164261640641625884826645602182656061112885402661611424087750896145183805452937135154245057578302216607418216050269931704411052532487303474944640911413822232270945314846063070627174608531927707268977133990325829479094685748320911345026007351434040706020256576082039666475914129424511267034611122032427933635613348249076166228700927894218278062983770121126807849755991379232208951710511237148886228001760702131976449758360071769699493498404552055601421240874645526354060995252256431999602362256714249946811371982900870600906561689789433061914349334801484303183272670240056320691113934811871916901137544248651313582932813218463305632466640817013777101181247354433298324318328245364953720051765579652802538527285052964481852780336335706887528908259233649834006861317080810115340837883344387210052254042465564496142132385079639985001312324193612656123375996131161905209895010494915816040816716501713147031581502456397516064843876953724100298405705293599734642480672363079827679593950497365433590213347987581015487000467584324473252161799564570187120129321612831439106921235833371572625736409383781113300729367609601033555993758031764990283375675320012190918712576311139403683804718256910612095756964561902735416090477200059888618895484297426646842387667876938523386842703466270535436766683650028621747475179001058663395922948035260839137524767784643342825718655096407701436959012457376540138665261375216856182401717250451825247767524914446270943428109550562476406411913770591197424463413038258926112782405665792168729941587246403408167917583507574871884228567505104242926248222532094586234925711360472133307519602746512172857951062944797814730226682732118453214566997688198703716579245404072060597403757859274468017002578850792142507096560920028816145553014694595703194901578112871882603638681858187674006154412028521845360544594754352968259208765738652347093181496160600174017401587607842611461103840562765884723235494409860751248834985150947385672973232018523823289410184383362118199291883856683505022791075027401006694300659011565167343161671539937039352662488133027483821376284102480183720165613230713812601399006156137356845428430875587785624467732594623426077110269936471999506367132070067254789298520781683978489434961734897115888569540577828116213364090859071701136027919416544843845166454261503284866648271041901513474837410725079077728948033953078497303747111816128496188423791689061459358814618022905182927104545423031630040565501173817042517107584402787240826537723172098609106336787468106571930005818849364493309402519585981581622219870623902370863565286473632018903901288133890563422915979512136121200949544151161747625472382072199142868519617950440999884043920512915180430297415853911118223396475989054305829362676929642928968848268388480708988257355257157353517403825271900820020394903227584372833131791467281709119708563521441124274168329635894740544228420606176508414091547572491639359083007394656025110130745978213437299812545377486650277296946413864438337044579220186512188533069360414958657802547414956397757995948567404551499496486870446839697392080438361500774076156913773378209534433436452856433629754853364707599854674343912044530772920871836884194663104358794840069863090093729522026118739809885861748369744708284809200296747921728033462079366635426192463477816019139965270900735582147836170980586570507974773773777118188596029821108451668076068934245666577912970714127159874158374709963865897638588201620878613176715373180387718659608919718381836294447805289627208388176527194263243661545104075346791942556841020272172210717164740155391772305308541542676301635874078304811059391460924247083856317988105359131344417107553238338657799108401686496094609426424352820536951256886090883556041228829883057160619297727998282572143030073658446720467727027380874915152266064803476793823376520225724229732884998898511526667890166042873985449315609201095718710823122456469354935944856915724292050969277820786583102662167394907085272503755983802809926617304745064292058278190118365281667682261642238642923937720611397819162597818111584724451121686075519856395336179806064784821770523211360547545576487726095398437470598941927468277707312229313623054706659919069387423871983500918414215445484420934249563009297646403643018627789146524077214364995134041049181815604911512561099356377024002303927878781330338988460934804299140437283171439733493731834137081493799146810123872780730264801751841488765225584624475294314218097235580052957286045897742554104546705723797698066059849536940220687932632275649487129589540488785997984196165071629876810586675674604743977438360748005412174850197690795101193866366438663432247730968215652609176641230929685067753716789932846356421236745447213769305392332684791709768015821048142268051784636977421405393917971942208773715457581345615933648666159194446704270493981471116516998830500116605191649356915608606626800744838024921801901750819017671406034819382514529429810973959587561838622985781841353494997702533817718663759681756143319346114533546487561603301312809404967910792613931608775024855188963660129672390238560952719409665717187725686585111423453179669143612230536154633614776745741615731267964454860709681476947611395971073772667302093414164281812670199894094335842668419624609121280159642984431948569209077489726516289754626366594256774715534664809949138187582049426968715127197151134149403374886021833641344621081727842282266240334490467701631264833570671097533754243604286129674270377987117703218687657334688329985046483456097148203904491709153559561428031905074359241814025002711835624842722975191714814867284840541180117641328137505444362814415438301650088182476653960906700477209971516953769055254164184611247017162666215301641472884091064490604338900355665753954481246932395967694272636028264625223804829461954154670685896455456754708619675770872138025485470570386850095124873123043199351877658162100428913925862957245064192345310705117027640509279136635797552845119152057670733474895916830759273675495150856432955478750853334145896366358972429198574751096791281489976857507624133737068286809520653304786819223412531087405957819896018988305086596066032132987201163384103226347907655831176112963092670525104364294957579151955250138449621083331591945529308689134826643184740226950032063071249791461614790567389001446281887901880364130008484601757590425000701993299367378409568892246503898713914942874936211723896293192386462291468448369752001232549996357190067791938223416451508640318643418098830225123427004388809665789897300841335773856271005010771340184851078999496883570802129341046648460898261437079450857132561944821472230878192693799604013645750418112053439807182244571649862518557242724466675243881219835698470159312648857637710813579457697242603478840624685595472419885591519655647484336056401474982460570952594319954705044053299540313742131127213814445824218448812903906873221699697645442065446618821406188006789088985278765996672477503973605583225695088992042265730490910964144712265406353683065597431060496796482535408379852355262313720346251671339902567736599772475895168270817594408795843458192817124481735237147371447082262273971707317994759057800199204997454217354867009717684621591790834928820612290935028347241051163740544870262209315197963423054670749184883614785746213402302043422285809475485639144853138110948470355663695881482275533052861189916357976539265551772265672242989220114440061390794201783763477527515040982475797400188051999340877491570011021901415144190978237182607767634943899063718126991575207886350986784075684860372776396323425231674864597426354631949915756075589782127064491752127663688605204283214267431470612171260203806310779525895213181358872869852777482135138703771189947866990352468261761284652164124831136640994232523955333943991424942512474848286234228601536270259379613955966780915078223875584815221895892872930828022503816615172919869741219242862993880294590254075829548751403398532419065393297002851758557843614860385466838798157877981011398157602826031634913576267463696498467153487584329872841337748635238403301084092894249570350234204211860117968025495777315214110239428688373591305115800518503894926996930279405539991970458227492326262983556727519260312251162386941870432858895365146416274836488141461786686817265482394237738915452844762330469528904472864426922058583173070820074419820073262573307684729244850361226137640797401458885348332837427035858538988000574240419550756477192049842994807935070911609132622064657723726646431537451557449815688398379771286563336632819846374069766738746873840771583050989160372509597559913328014746566909612309390542270095818974747151979889652492880908581531012361260621468120201275558259766983062114772379107059185039187382416482970747752568471761314396235599811572007371006331987430112104544432787122520172059402646383294325517445536002255709361964769537446897120070372728209823621840338124469246674254913126174908494221908211149265599109362743352540962436039583006517530543714681802279562135176458160074224757006283755669596942137497310807623723820272473396562728545603817217438021451978233574619862724111038194714270324658731067050304131371791844161865992359630130328103789019502687252015752251748816872680597778934477734703986591454032925693618650725013951284421830080798608647511774179377356272020279936664019424432047916874426150680252199319128237820990810237121789966989250820505681563359083100986750770755387015641166792329129055893100879136346002031279778155745980708721651830625116760171861386284428546906741067115443587827877681329886598134841216335996895076723418368557225078311492312815980377997558325358135694407719587164440072006590182167278381257894332934101473795033849183301035892117972884991000009169259470005642455531983818127918506165260476010571310951886249913189879994321226186594529011758752140563733550605617281183537385055543821500832173247437540342743754818087841464023381508198694287548982292670066653539613522594310666635481288774505313573516758166695532533754393456058690610160375185662524050027098511202697455555830154401935129547910964266640106955160342008079826637026607621382332387342438683081328386624571070650885162398769234345120356223232955684664217767128891473662959675988772889223040787667429235758208087499147025584547794976979994068023375645713283720606997919057960226611142994816567742383488786287818290282918274690830272901660228203429772045439154712666950271606866205286057614269213655542659158657286233881436477120268619605890698257866872563634390202806741616198746972041441423870103718468007186738286629603578597243236202872197603576757071052008754000975093322530895492369691330282041566702984035961146985691719836720465243564765417093755173635760511017860693839249944864102782877021122393330825655263343291003248580684414976465756166676189045521037231908241921721893201939659171777777021676257234278121373203036088146510588629217034533653751308426067390717473215669364282268949285144100938961491530965359909346511142688932404363327578227837434751967741249599183416141800590213164747177407978957206946036548155139019247953303654320404243602341383742529974159742752193197309294673623344407603269271205583246653720610103611806386782506404245944530825375412757917916619395733232530159783085494519066781752508231144410431476731787751414810338298695818586010113249497194616771742209003806835918264248147512678927189092238704607243400856375424729411048713201893642409071199837539000854080941794727831405181557177186259010840575710770676725453687190898142980208302472422930549030779620698070707504975149074378502604955929780730293545728336639994748620737429301426839376454260592361476454046212197304025096787374022856571475928430660949063574992046653751745996333940855069752330621958658495872045440898670178396028482552222313528089640166938848438781919857102363933407585957015983377983964057132463126215058218693766334603596258665130275507140529316614083779150634392795153236946197614522230851022504238576644019932231076209376724546415777676039067333446867656070195893901069288248569678918213730957568524063275064438374503958079944179252802142334123108703048285265182379676145550305271650885272096941808561575656272686220240757382116373036127626574286201270930652748291549434978279296112877895180050162569725523707517654835020713096357358155147455858254149762280933084522973128208608522434627219313328120811922440434467914097722461185084318276568215641538091586128670464174202428909817496813745022477664604544337183445607126729408003789696583249097863815891035687953830367989365463556232134968014443493160137756873109327374795218141575733882901845255427034008456354794478381726905074034143975971478977552930602773615587815565350845576717820346505997088680131722315176561281042222980606429151587262833478168292587123460598382838530252306429816242370780619980550046279698320419970841312931679228889018779726992570740941883890435570357443340622583962839559975405298612773466256742621404831728244776726343899407174094616056880694947709569722990161721768550933071773120454408429814063018205297561332649334463601616482047686362108742203072739011140822599079941937978869067886190466642794687434348818507094324072105228328072467567359658842777924348093528331598554459472771182358261345133085272039832973794412571979810687204281643198855599308789839645569172675832422509229633718456277496436129134798741745877091641328901378886134127374256630825167797045292996811679017250157566205213433268682988544156525754676372896827117645984606470879499896212158669282091097469240264754849845555046216437442628527338190580531806168048170999287858851983506236769792285576948712639474523837802511902757012263924511310965840959271067182553166476065373489030729475918500628125307217436328841285136494512459533788593459819742930027664991909309328786171209540393585192298461547955338869573258066961104629036192182391487912603467702156161687698263923087984788165703315599178659565591723942148218723480697462190829009959008557584117941453346805808016303478142635941354852203444029961307614514778642044282456948277655785535238319131812635261426291300862544417929823083899720175203309182162537081413523336009499850804459262480540344336186431367662055235153075421296477141507011258045287379284990979839787172411900416799016407897145296247892484578952943541013834293739540208898698672825185520385060633920139718658595372962554999902365635684980810958184674348264380840236975290430459941500794584427881646280528799867835464937500794037181889748831450475635519239558423296346626113002787008742603811288916376710157899139262326108046338210975632707857447804826058868312882143874488708456569272774604960958985923891428745718094978805473255475176323772994087486719412351074070520315711152263892539510562939120669678627960676590352017733560086939475652691156066235430457106399564872242348524188378578661686494289078614816118250005271064042869280676075349263336547786183905358380948017340080705199531535779675171960356226797848334096874987349268190177854368638141361905973013953713225060858074157044576943576288031739116876145374944107890694245462122077927211166754219249965353669257526340299754952726393870112492437551570470824867667297723192136658847665107727978741004456479984814259024380365629509257027312387265896870209031576326929163980009840169077314187980429371665243297976570315275414402601626757766214435180518704575653265430957602316782911705351713605249069707503717756444161053779554593896946454898167375710450899214146233372924708297208699215480333197558623691412990334516472337396366257536988341035275499065790403678626861026158023556928312715284498033098579319801989324572276656587118521517566819676564203732195339073582670706932088680110448351154099942271969008577427487238131094745385792246369249670281286706577041801872507477646998116415007629510594777581844234207876719600428923129920340047308530330637505453335519714568195301809510348298106757913468878268763827545382988704372022998425781695873309276101153648129659410430158327080184532352524998479587797268916601873441960685547469019543426983657883950072472271735417164208580558983692499727817240477530808624461625328442129680346023248759408838447514945049462532364286205241129456946297370690534658596739114512033316963539195968157888092916154497176560659095459269047478361027025533786823898473812599516084910668894372379633412548829881150276703770551963136357715689793526646513516746618926154299440259648209713596587531645430449110458152671529465252876790578393647966357637026103496278198239399791712159988054504342699058125820641410041122564693600456475980702095461291115237669142377044046304219359491028452654097120097446794216799172078106412641057630128121727691159078814588326857026968437374843910595855486364349094449890432011078902515571438816981920380078872178355929614477065780578277137507064787507108698318354232167077068299548650001166473994804387207589223960613591297376814859730899108140377227530725045615933964453701631981526800349264443225126141881854505453739835939813906794787484687702255123197262424650858720482099232744380855520716013459650033602574058236169966920085871043943013342712929690694644304651203065672041311231713400298853144711693503246858959115185177827524469488019452112858470062645997309958915135669629084572176705438327473898789274039305904801801676933117767512913201996234754144031888850636857849405730855976049404940262109932783699446193187081674936189873718752463043620580340408051189380506617351843161530278759710244929865620445696016506491490652157218020868344514762308629638926600025490822015459035314326398395950884797126011693195098447576781517803538350576640112150347318620288417947882153945253160539121774778346190180537587214458290759281652176894792210164898553822845410759568451980954152498814696912874329235590654996234648844817502378586598190933369441833626469720325898415441343047448129818568035276186973928594087435603573754752888891168989408473425366193964212658568725705612933259662653023907333924984915974524852891458664828942149096156340370685290183996637531832572713183107818377055872991127589633124261030573762037711116575014527375964123560581080405882434518691641788309424015989039317236191882655455474807348311929179503360407688320614737214290958087283554935506085332697275585588914536528580182819807500100129743482041334216205053767300326269076769889015012479587644013755183680293934214162938686381323483463835544749092375621581416932174074312670507890622453557480579653655362935090048071706831260884322751662143482930542285540821326836460324337460635284306565127596587196147586519543980821882807077955612332315584851153549867392775170142448985813150646333284736484235204450523688428188868458431144048983888039172436262944786339217298797800264778261185954567869563838626887574625373559444045442926761141714563756750158368253021438508944760700358098363865984789177513509987760871879792296854838585929874600055770900443825223520807433904227171278119647819841056825490025215975262074700085752654303806987595281138014772766192758766412154010870398989879178521306937781170894014979327239476395064929930026532256335171449861901169648619217456157235584009797118614282744267012875211306244878144489300083041772211211134427703187601744954223155705443866678227069759122128579664526997909050846483367946029897973942882274735175907729102266373753258429627518125512771947477731255013889100832371005341822823169578431589800382984223780419440297618463499108543617885857779652835105185080631211134124332319654749785010383657020464598204485182069002772265578934633903800222356126176203988488458210653823115231709083898701124763543389542742990861992330436708254374100912684244744480066502686752841131999410457706572629958515860683112186342269800709083219597912385022202041559849349287827535765133521830513990314915858417370224991308793029446501465876041025795747156696167288163730262019490085335382882046282317552567860441833644438555673231523994622741893728979167303979858634655623947024172867654525599139962102896375302901964709098195510188161830127292584451732862955519062532078652345988184220434835796087521770327350512908861974502643817707307967612380461018150631586634612649491295094003196947661266559062426738317054838876792770878625857832299716458809681067979760151428578218596088428133187830717014512656539227723095396019909075786853114382723913054885946118233437635427846930297768870423198321517374554480064708408637151660155064222397202031532263318919973074610484877949137562868235040427011358339547677628760596910054304982642953018765281704544049570221708755852500450700462635515974758558249506119536893059093858901257361562559017586106911886496001170389097392129489104513444479308890704760762673832102861388442589850322894046914513439041196038355116019929163471441862707221104662959223889657228980452083080699940444122373245815694955286772030682084749627598768587884919537433313960582119002633477220802083278405833184652617966880431204616304522397108017640446876271745494900251727875489350179406940626918711584129439359343239156435533250565491284135429861068688771946362522969555166814422421731991483812282763822319116072859915870563533820967109830660377770499475178663815580345457875701111282399520710659782903617327661006354398588432225721602809316187678619499671025869562107892767321770789870273209349645067132201929694252136154452145828726458453729059528066517465307768853778661472856317766746987303307454182721647888523923431426752285962704568726973621733602313126179540262094777385855728867477032162334598340532044328447537586922021682117861596131278207275514490221035457182320241630414751273308985228164976266530224305376271035546790991343744550668875657642211010948621057077285026923527112180201682046446120015272436458492667150044647265294251469241449766071435478936697060855439424638502885550531933470791164337286871490479105625213814339555765221071694392798259088193417572231570641844489030651171008564987412052971007084932357596690992659941736662459497681610744871740766247864842980369323590052041048088358061185233255154625251586635506427299312246966096405222514251332985692263276272471043319375620107380661080738801201543507576522771874818671575267869296028132133269841858253246310019281253332008367380686378902770747861558457152834315956467661949174645884608784198644510343887406378924894319312587846274554667253099625080371987766238817640558169427341270633651131658778472804644287520316000357407940665184352838105018298314976666414172530086734476296737569658601205589315913640768428163993743569844663810739782450350615515501637038073588623245992722674081639842868001736992348692049017332755401955957121324903808300410467597595958799060265680685568375484641918706758131532827564764018309553458302009520033685689901102998323933164125587364538218785182191498944188554139240990317778009492157882208957354482926179831422541777380322374611300440395170193673154434286423827558278850011174861180979768046599783634092297950214852167990462420048999442893401876225323853930219266408657198765219980758592083946091151445765016006424598911333922354997077445429300017354591980023001902006304663674781386898557991039238019437904403806903913368633935756512414184430227932676142866120129676153765601495837290914520200801457835461943399953903886312802867278674784219309406184679112446148062914037246887970434525005986529643547253856599641410173354481957702251643021239985609884961505813439234742415202645411546526334425900270794177342810254361826314774071173589545927451556374677759831810137659709702265462091534599988326442047403197400210292905843888420003026320082060642592698549824041777044427491027846225206720054538518093049477358239622305664572096581744288332799738243197804811668064657241247482205027958474030509011815737715922584644055359366129061653847207726503393280096195916377003278050475775895411026934799030350087074947307507672982355605226815931092882149125261851925020207857465236460201829011308889303332365581828841206119698487309753820299995881755015234860161577161478427570757658204625658841558254834655135832352144765212667763039380778202123546454116592186263881368606143159893444442325861586006195762630986737201558947072764956348917998291903287260035906272315678337047796045244550893571131167447168585883782172136058896339611320670182705003506473102768288503774195015813634905204103207146134166196435702903026926552567946178079375025490322489823987473414045707161204636731774742954728150484235005264421790588504589240147632233701724390322119576469429113501235856258808019158094533970341601527674400564321857183251516087148565797919455788967353657665427635281137166494724617342832364652263327370021315434834704118375389136110938307794857917199520521792598138484904300802065639259642953000358630034235228092751929849698243781642675800888150609530520473870030761363167531131643081442303669459336172597242216780530280493965626588819507185639466566440809470306930158674656903147224050944322484301067835989789132557263400730133269953961673022769658375850645708339511810176656501051591970974934567481591611352971343159547343201257547718990872463818911194908301681438316450024411246836382729775649915025780275574986488616312178676395662743451535801800190787587586772116200221531440688415725107938772190843102725014653273200541752903792630801606856532334378215894646069696799161510362896324401735549093699900800963194443926765834774665139992305943730960575276137573912078038281945652002466382505994352315441947241010603446896511050638454210197472466363690129514459397237390890724446317309535030751271100365520121440609862857261545863333747751136803374881494129546240616722266307234365228088728780853891261123259290442191173984744935260740020954754296718394265620320674689907144575568462720724989550230381750207415599436731150840906164640780459327270587468599241650058371332831827979651876049338462434615448455986126746770650592692397515570578308399953154967320950201444172225958205853803565736756396586671113372072818535781407371410079468149938162409048129287155738857640671264762113062399959050609689140185883981137471905596557656665798617560474039629617452589518101790064815263709548961235618948763381761701220278001080786993897183029218173207208847588623580689340411964414560670748773714174056777940096939114099497678868470564044847408852333746074744176853844978055697130706803570439904599664007576079257768356628112638106419005916956924943270798286458218962555465908155864650899696522799733804325923534345985989067094752278210701838521201100349758331952131944268522252925574459324646996684067590119060548655807754271422278558795176021735567537559911344439776443720496922969311655643336989348242067911988572163642678450280317761634889352203517339951601590492752340751829182946062138274749285016604606729766840836162010867629891423785701492366707129314367568110458762391464509095627980905255074569278122627775145630597198273053053575272124207636593344446616750771754388707586113135214664772984586951842826462908750879715967090712119225595324205888780262133467975641669479973609294989457500007003450782564524315270409437108056088032840439730851847124194497914043951434725688599860244976397263035742340588094882652144313657621785954473568650131258438587381695401385278934657914203745116291732219497883909077594152171319741950972089250335815622230138740822192615177964533551422734331431138737299057422580188360367474342627724594984346615629669759808496206874878036042137599319888423336586708681246316122390836027455877145766369334399708094326666412671025289590275335904534055786340993538889344543222936891163532207583136806033986323929813116756611912343194745604600544991160858008054248936603972945438546972440032316644634587250723953919624166665876407726500139970201058227663418676320773117708436725056771823242981558478499035820114151183253448806368717453533021206521688888960256291319332003336468060455997312731122633582187519145500617483015578082003220811372707084482607880918051332241561857089940851023667936173645303996463622835723184449659416945461376327242564167159906776637306081896768936649932642161142893204872102950832694019949471694780987961279864582213297303965493064196972360086435012734167383880086533930555535183140601932435517580207639134285439023892923772975072546561635980007185984513061752255834738920359674870348259222792513955849947248496093009358225967242205231986377365011972823661314233738601170371466437119871031090193637638380662427117280371621879792468800735171397282832032900250436018439730427284203795210748593854208026324477020529659351295824425230679184957761379174144530781596724373064728208223602729128416609328115543317868381295204380784550029997292027132405405723453133154171260797061834458739850924323842974801959873371134146549652066765050539366357005437810967658592485374934914960004246006862466683066593116759391207836066898641792575439661214078327165144284464389431505749762638396083808538523148688959107278796414071806821075453357216350036434035747866225294099362463188013717322967099740662794205443204306653171547476242517997679666504313489246570026304331784024762651835828483771391186680988269993279986437184269683724427942147012759707372785602393204484752537296952492911062571012609641007920881951060061265782799703685872199148412636743746742827673515030880600054666180597165814162259155579011056667052017597632787204283658444926585126316011157132060463823201279127612918534051679075072314027774684901178963797400154569485867447318681592116238356625183462866758737173334303187265161465261143745858393271190596732011004960412543420695040228998723780156299144181526995228745962332941698675909993009546242912133661172146641700308741461076282186897880192632842793971534164147957429217145022295125668951577104436309646279369865806453157434386087596088410041360523489512057417253344919256314488372566566225709429146928207026337289873210980380080309269537565634275983725597436017159639183885789368698607685872025955751086649530180249306807676823559291431761842244672422778603899600242655150791859679125695444355924331115729999693115773985765156775311731082349842700936031931332513671214069483793435342928883655506632588790841744832890377115536652812278164148488458154593683787479057588372595297136027760321628990457562943803114475285346593217688856604664153751918206674312377232694972896175781210308678866376919541819831587085437808170185171460721440832261773201379696708346574359733387268293461109675751863422731555972857900483596297740217736605102412092451279864609422176873940122132672648659980297604523936996032155070155341710098999077146893713128018471012062656519334363261041581132354108055812019690355612969388741215180455373369238990285460266891268947629906046212883000365941702788929988758096541558423067282846689231298847209328211289965131754905289541601219386615999869357381563109646066209015995235476208541355950948515212751303973388185581730063937533125117242659974216532643976086984333638328737423232711010675646927182777810444342210910463783237181646960796582944277672774160782202784081407961935804631781133919369850417199608537036587503297154590133760519431484865010360977494931776023824438354192713296928551776630527927763536722901325776571947475799998928420877964415328325688182918296505387936130895786924310310244528068032282582507372112199484582608951321392905806547732316275740984232886147905364480982857423098187062654602980882888244345329049996926138213650002161633105799052647641136562061401000736276176873814697035107395104898090591006658661413596609337114532128968990749921031160760576659750085006861045583237448187566962903356146041163494658057295235778578418786787461526126742594583597814797369466126447369652724699704586030042115200415318428590316013910962803794040374663251616937562103669567149831089123641162585642778215989435193292383745673196606921639964248279397084341694306497763178892313846860598547745244564596748362606940737496774589250744674392025562789008859387150074510147509061760141326961973327540435488174468418713840762117844109818508295347213452359674983276081199998184560623547835162491815406245824852925220528750693911767462480519942260754556359215915516876304266672159972348712657841701292528926170815397189065382177501914313955041885296863834726302450171608501712963597513962945341483620745392978922302921174860347077553260603763614731335540475159987743095601412588926955451321686881578149774332385850918712420437579342774020866602615888277444883265409748930709193706570982381844355902495249928748244831816821498399204593282050747778730751659143209343091952909444612053328795680641077542897167109232508386186367327631019346515861982369076081545877757144658258192121017203703752320482007784983666552338588298172539182705891887802735199048849847492443016958766400853257312157843969021223208604475648660274157194366804046144276533993973853071152420020994896275676815810160078383340756137847888061038972295345598137491519045316289846385841333716159455349183521181937801497557866596532827801194921312055564273347660410851737826813105107582639643621739210033721903484367341383143678280582483511826973288205502980336705145174694714733895272558215802020887332336537390631610615443035556061387856988132446859584960926177118088436805459250704724019175928252590004288078923710976255625523954416376081942998940360089458335399650747017343478653461378177989080932907962391323609383665955254426126583881484753606204389618766684013047788599093324722756743358492956334241473202856234587981105148142204490010684701361541221150987392413707543764614175058983728500697449544816475619952850715810691751253176964293097616207871470766579132699694774196957006822698476150493744095809369213552762073488829223614866694661874987347719252925079938485958876844055204323561095598342196215408806202841010331260508446728338595001384429048499769185456283240400250157950880908634932036075969643486767513376466014058165288795081247536122891164979198697102402696464536463880765830299687583571729234413094913041628544255544337786657732714317368019938384365736365120963731421776516830896107011991749923394635448773223299751542337307202419386022272899617670920844975360009800309115267463509903251377841573171811559486268264707929972501592122678808695500827488118707455225797493608878923676577030726624372791731639658833531776546520733548793078514241967965878009182502800371739050121354064265702093971361485534018018212891496509125418416400651496690187015208737554028004879625769195227264299292703912344697493215149444600448048744978489777253849181966916594489179826044461648815510886272221240758339701197378681695494109888024389541734932884358393464479416266106814674194962163049431878935800303302525073316037073530577216891506823883930120222466760112230156125426304266946780780732203281204053549124151851457232918019545224107692220224923263666872086510552474490445129668072582970624664520829731049019358648242399340455930937562600176086730713893851740931726050546493523198556198982167147317242741344672054795097617307207126406546492549901296781900055350536949649806043731652883754806862104992467213229681978375299424382150795102134021251674159923691089785542677904187552152119218077503973537927794543554882575598821767721706973084586821399461392264415596641999733811920583146009907285712486590621276380871112412498006893291393438075953145380726489525242246516795847627410859911203100615105874063315856488093922789557229906946240548428817918330035198633236397699534338116926401015673164198020790620939053289077114757231000928712109758598658176583258203832778869204452635698419934013758977187026248040198954249674952654952354460922098552691466199767331714943143754889111410527026452557542611725208039066698601822985978796609983511602552166696550567538108293209955519672292803724264471927380871618702397717734204489114402446181360250412356515015379182667753732997020135714374724807697826502261032990224579383981999196404929660035332620357883982845753571896750809537797092964919358607018339495297712304793043037498203917616369503537701906151119120953910660726740161072507041577013886374704237728209373906472687211821954719897669689105100329866455321373262019030949943706908044962719556788880676166022577256051207110824052885107778826152780876881684611690018958815106930364954934692236659550310805286754214469765400893080017008409212906058171962514704544310337626479243866460712106660042206022515690288606473177179834326771964332135303770159298702933100485558196019398230445064022511960336031658350340486441570988575295195480420343660622373305563250464529923310653755516704439160013387348283709242213283103585830951101053356671611010411642536879449776320824734443273919327854644670938427188228503989075128782368017402683121576552596065430891336231873317040211848543305543915786817511386957044580432018434051745364517471848796278195566884393717547710785710133950598104520800371116128827252345882816223537358687632249741608366870445122608739898797673922466517626228068224984869334634787869574270466829860095275098394200024721226582842618190550945435330405765998031572928167528795171339887672191858331165464922535459027335972217491619692041684900549717599873407141234582700875342253686473340403160536249498190377035778144536488724864060475706066929852791277214717303765810872189372155171710983509807619780538234210562942727312663079194240082774288138694312368311421182465561689442312271297769549749123728183649026856272394208067526767000370969233725335714580650521111293796210235412383340614023741983686297535334846056630767051485220750934663481273642140383192385376916360616923523893526204496883839929493659524634988604382942312057833050251579700306668816477154977092449651810002873033389284543674459576892073998806077910486516960687857349387707215879433891330478376087056099421417306537709364638112340797777352483487593378483372674987537260846759685542845580876513441097250305557934328774898004063093489116079594898669678563031420514027635530476459989383326386861750595830026994985025469986473505165135590567678015694114995358757936319493980007013035419193260032629598427836217601604392458925425778522286186486321333175677451170186786401527860296779256758185189360540610665495374839398905713302128944615282120571926460899909462280799855813982881158809705842461239438401890961015242505389125584861420577359486493784665841587914139986020209354377776366567777883315595043021117221888727335450558246926618117714603373699275559382883421179696609297573070896197001762691976825614832542145852571502737181929416996774282708233562288399058054743470147802587584100909127952018579043384027293663049706414106351010137469814340279305096029708073691045496996336432652487338571484545512445117128282663685209163241593354669658973072853831953476945765124381513538394883781776520122040550449727963309936301240395600830002679697944083723778995399063240504372821436115108182069474748742352708354983070817967931589435603793566164541012656659684808672213090782691650529145043390525858133692933891593657330117875048162900485195759508782763114112834069356140024531396571706333395330869793776167660872774955879686849292761590406878836364006250284431839986522772858420614316804418563161879683845225669919278108089572215990015817978883139081972714451254308490693901437360799486864732265106874157135131284144780778695762917098691155435497421072500546848178918789933687839003941449428846559238089083742003356360920606579156057644289251752914132145938138497724043027127861473651118418050761997725853222819509836043205271950486107244681060796756873350762465328038847276223283093333456592590578101497421467206793392205269078140280724584705702156524820718301923104694840520112894851922177286698580046848202833974966929766510212064278113233209659848962140561123930069505656508975931823030851255494290575322930166806830752580853089624116519250235381147266645342938072190178904464856771606931291547967933219428624028668965588042904238272492467766368032011409753786985088123952805764709751522871326026631620717249077091396156723222000771671755780594883359108905873783005330646328895090113096295511902378439764411724070984909935885021321454073934151195825288648906878980209376079173948865935006787590297673374329053255232593769091786544612561803234246166731992133092132656305993931231581857959807561900514973452729224706364870897455918325507068787417723051881474887447219457210643150444316357072733499860220264436783229776570348337706741319517960749160686333371802940484453946604011646853159113673112534210782643923574314222104590139482383668641375137539447392412577300667306094783765238368363561753646353447150501925299088465210146098069335450912774711250219547965256946315180681312667625014920407713459878501439445678242032067715301553506363909663313765074445903447719505129203446306183471867271827028335378640081246684934041362621677315112874270372785662513096770556425171799616978167878573514921219303453929748641215512120080308359764204633052341237394932412486776590483693273732086974521652781655944576615285367903876634533464432109525823859138037428157068620869046729241626176901319549833927406582542001729362258688915863470839706726238928721203338691987420114760030147070001201385544031879396091283600542351007875402176885815544941585349614936901121846747003917579729356090913012060241228019232991118285057265917095594338872269695217466455844110972356848188298300503723266585382171840842082989932589365102967767822294989235112429157400568492946436463898063426193325188341592672554941787516941050027995060050188049337075161944182378350736872653673977266912174780106830142886245011488497024343460860743918682865446127241001045593806289543494952100736247054421079977680668374235181446752019428968867835316258770118664575797123672101452811087594191986408871814706489970947073786377673220351102057315281344762469632886696122440168686589964888598286867143781592514681206913594662168232283033227379668440062475404617293036270705894503736285102034396700853192030381281587094264172583053671314289050154582390304909111368960577611926411538440896269410972111299815243339227781924378440852589352385915549166384479843940926828267124014785686979634587700226948522213139595033811911677223020957102707530087380246945937505548567194673077435285201534739416718448739778898810902690119687182858574023463026199500841067731203708158575242465766412570214983973349465414239045722384381083996523831600331194164090067753976482004601220816310639231901369624072861044935603101438701429752122924008938415897581495579365903527874952229732051277126332871885871148201193976067980797968820166578214538934363895120511022706629215093567769607132027568804238252398472445175370379317878028524336637907833677497566815150059139041227068926641977014252319778815126440501480690252367872505253847842158747258471148891767446094190154953953822249054575426477298977115831744401049939820508638887060392020644251374455980305764002307998257091696465425048087457478260176404691157527953284187854073710807190013808732267274683694547235978198986378860741222669812774556483527554113302820559224650930622130059643028013913926066959812502732798135089885492596234914343329122230517858339619138043817132865391478029620521281791776899003683848884516499836874554144897765386545454303685119935808699383883939841070461216853465475550124319224517378649590174740656739387897572879384802871505143522665819931340776227183387987131888472480304043745882103212247432939638064358933652671907165108744382154853529960799320276857440791093970324205669023090713510513989180140788182612571594096972200400178746555502863828202367242386202731608646722053625292181706774204121170339698013731135413746052669467190542914065175495480221655600036993500590673319470669348681392880330824196572344298663135411501711578164678427768180991170442038055678852995077284727405489849315541505143014569436174417076438994326114546823906912736803130575785440745008580910035366371576864851162825410958617802712789225241723807382114483390565351574711497044603370101836295902920889366407404188876360212354422149431963428390285058624040381326303745514397228588347820594624203344675287264677354737313206654432774911862463043198077108472549045595987387140494153604111599115189313861516934238260145615319897378778817938000965254823575124485036445977935646832523542514820079173945883542034924803462616351411971792138158796178215978318796871688481658149994516696924137119351211003544684128372227228012695099580144557890880852589538392468836324897905629012000349775987864315817440706073953891714240298560626571664103396983702294149398510106926819694496213634546754672053006576885106485053224529091563195322122247572732888548799139864787620187884035927873464807622801363388305917003277790052644148377956948221893512629726654230046579810488454230835130760798406045587005791900979430667472467285891291788681076008804865927681021636102044706153146909093255314638258113438077080257576983146567826746722412164405171877388743672180355988011370295927985568753454002864605435032564380476939476100763766934519024845236911997095975528706833747202606878033991163612263904443114051927963582321950370446407355160179518501370195722867003114425975193257706117036305298298439586553864812312665062330529913984524476170589126470053350888879098022365258444632674812494508236204750121240137079778092244305073955075555108717198343975426476792666977685223107729353873588212805420834517508023735074678270444414039118326035161360298498119529995356056266604875333704962517542011494607511844399106305503754519014233381210730031223808556975149127053245453503608300882352166516598477620078850285672326695319777519129646640555991362719307324241365375611944331461680914692908352638169469778141585079532144520939954486771688931291973884857432543426321445397711268478524406380758143806245722202050744499854452045777538792994302780414896704808700854997687363843543456565789468125286330771564662059504398739702501576895676573234144289375876740797587302360236326696698145759616063252329583277995859464365682296013297430425078289269782533640524547957075989032348436848232670085528285952611464754046011603902059146654358662342051400684499030219691930107720851376285566944074965756136072025396976267686442523990536216972028294371610109731713458543472909573580490198046600012575619513501869147691965236965648045121571185921017417269328879561923743813818882593210279014409637832073127217228365404196032659651562653836364225763986516701662414661779760347798207316086354333413071299118117271661263305953499828144645207620026726698849420138316700781287585778810074049677185991529867460350102830099641970731717511439572174109893662318218545687665208635436562512792127676836238479389015661683800851532467926877406846958706318139515339183056276809018670771837820843392430413192690121877925574684458814653350695442957131282270618684603265267595285824359751549325010748733301120723296086645473790337770186699414735227809826536146696331752239514101241192165530006076095947775094771115089928004182327733402241964899772655977989422240729571715960640952867997696655196548973671106987973380206870987830056021663073399399726651718891059985535047792032849917808510813715245370236137875332501688354948689636700993315706011852797074863473235634953963256843794299717130846752113982676520614501816162385326191883342149966532758316684513743359577239960682646180224383692248001321837198997981790557935810862833256791493512583525772625638784661289873356362525372916747120023143790563173720095612979304308447732856613154622988185993223273459068089951477811503597957628253850387149340108669923447362707745321984337844327439455358092922765520307699376374346515212684547710134113695775394061497920333978335429312499940531159879000149930078620172211832490689928039511929578333161341320163098220697909259437994834371058877187000500753501750942142410442356036654576833086540799203679717948531455472818604682039985095417887795691154154597585439626646928199008890892944006426644719450000074843683809261240822188858057420215620286223045486239443068746628674528975071586856644957553276051808896045648637189322712028793720102338117557438954216639082272892354852249687412544410252023095960051667116259410008653382037951667570336797037183655236091987964883926093328891178489234314256441769713500266896907096703781562316865895508187413871522092792502361079860761361373663939064406395366442472573433973095485179809174918149945484532789777044925185954783711185562810461256476817402712643371015271987769315987571184705507676432520495854519952177355087477334847317344124335684457949414052435133506863755509083209565581756802121958380080856789788119527164179131080250242580333372727486650131999390365207466488283561589850544982045150436443109430275748991336241930352350787323119188537105348297182599623657306282075024476840160157020463760032756247396840320936495260836068673028993811460317550593418892060659155138154124768519271289652840467438122603322185276457000092001024029111976354672230537623839942301450428007746297200562934067740595029912819058345968517729674643206815395494769733358408845183107616832462770421752409506133746264405384970971005407996841567378640386493115295241490289700123165008586975735483980057706613776655654154210772423604114459861130082386774151615755928144412506993780882217296703949306253547210940050317521642620469385903143980164478670177153287965760437388857732286439039008812753854365267790345519236493389912841860118954900295437687832377796121530737565769000154638791932739011200876483854524038677346254053334807874087843534776252976194720922323929960982864232503728482431247409376999655388316290824229937580631827099920626684063355442511438965976328429003289381772153662550361545922064994742120952182689212877980628494334929234711301673726182052238520450620919393203066351641854540926838552258168289146675168888337665906902843627226788742968098534505406515490135050920155682384603235879450754186395467158256055019000694431171533941005059576355638301823179819667390691657048598908584729503958034449363119857131330192720890454797230298459058664623543344174939612063144755110885589340751193936181630491848088651648761245855689701311674444145135574941309297879991216866648372509327200077185607448823320954870685207606987109315087510382760668717907098062779501597607588722403160032877995243278884093166746801495141903683697774166759234487829224618205924021980291074126840395489736676812050849023111982865570899681252563961056423999329813942635930125569402650364497581220803633611307630246950748181841894085584590509761017618232464758193697583842446754426914833533287131460293907681891605604863453081703719835647723519270168906175911707364370429134936785357784728208779183113899043664826644365324866198529691136650399014593453662950757575911574103645840445988942640966813469644714749257127832981597646290512695732106583441609988583924338904453758321131509817930850369624049239809596415769582275532420003925694305782559472925558168880944643782473071544286250010271668180889984173014543916905515396098288268131411705504353023305404990635432863255042273601501324056856864296157169295271279002683550350803523018541841685570570284832887740390657592514229817383872943996611816725216000589208827151006521523394873803528030672505599167364648555702634285191734411705502563310472957869652948104340799756576117689974990453113019659789174485095432404683009877918284180210395065804498429721352768397154216129523117319159281918950694902844226490839397072250128293071286270874705319658611657949389504486192285415787756705891429721932864406989375614223289803594607303092822362872172310488087874775588417470219415132762047562267582850480003530629184572532521024678790563695143046874952345845736403686727517835198377815162191105838418716227134550305358998864829964122127830089211743702409188496003059414053655338490321063294239991474069455739242662314827494450621660854115390985737878600877950114824269638822397797904100887837237858130552268808689580635957436026378625339378149640709282985914555781676619488041095414101612172540894808742910236462321461986311081998475295665643675176762940608273051930699379168841677187346111448606832953022585843524409422559260936036564918449084976954877202929738389297801280716920213675412303783483415933275673446640974616384593373212136710906940914173669487253854069858603077509087239885779471900235074002173021441702386560125216786260558953609641209675118199542026945969649410952398379089870637996436460182201258569007303228273338450286074348480007244771871673750580065783835108247899288270961510016456437788193441605559157009700646633681840006249719693010031007758386861099848343960698571978205418314564582686687620536233987131508020593653332072810752981053814043854785029686674436909229103156867696829670418826937790928509153176247801673448632729318101482628477287133803795594159362650537464171785661225410313823673828257364819285971184316485833955287732490168615027928251216327337863014161921996239838703377417041667443912231838163690288046983051798934106329382612681294922039585914881330075987044186085787044462013163189656016440104192953511984637787960531705394945404609385199192703904998358159475191165817166230377478149524784054870564718847290155153774141879408490307044409669183952255650693095227444767606866242991945746316677338227852347125160188121895762678820751724774530577321471389516386242197907184829527419426486143068575020124249909600226417749215996951732192641315595485731314154221800150096751293532796081782283754851434631603218354922575955946080019102440127225699632737640897296824344625255581502811556225255401987663037316446146648973122523485711385176483386661270472005396747567952616364848303293043071012152543931865309383511372529935214455701970314365738785204434502593990741474120213958922089389955144362330424531842966729779871383867854401608730437753133206375243290169563816848746760356770692333670309667010016292223682407439091077855712821895760440999738059235110966965594872537011643887270348508767798813984140112242194989808310994586108414807324479116207233310955620484493698114546357128002690981172058688032847672915747238158995160345726521604711267875135442727444790628881655063755308884355421088499897080783365404988955695552257001770838724981203249489583516724759297101971923595169866393033495768726001883827077647776833615874373372935481185493150583168473811613115662680529340407704536258007545748015818331779502275577864020657603587614165556081558839300662460401030320619363547691049231426474087583735031399041258938348082155354683464323199363733285779745394672859835837976329707684244328251228885703839243649502252716313857034720833655409068171939421539235025985963405934689669355130175410112604701587475363759524835412564596863013173168805122662350080632911906447731177951449245545082712148875219374468541534608068153147217832726540697246769263084433653846405882403790690033777911285307986444855306110957488695080028075462938414629294875940680611130047379277750764844822720164151469600056486338415128530971120951315036323516966282812977406785759764774632330941591941969960792376968020552447400453712761113613438746728729834434899573085462096959273623905451353528756417597532988872668767861081654225655303914414230648181199533549076202125256030075373682113588766694143451780407300463702240049358334262027912489957739604021982444392892254761894345581419764935748369873651806201020204215765366452610438639321061400496930839883854448501338199523561025657244040054117162596774223658610111252560494089299048086580205592007595253480506556936620357843850232977127223151427817388087767075869794063056605991549509149524573401596963199272183051046932502654495345981671855338175620667954574389187560346230515645088749420167123513939580485987094075793846906043325539684400206452864510783573810511446357872021901046809693834785223442694635518848716892278372428824598801149234790937032823628865063336435805955630402434379063787253166999073148805515704772800134029168580376392612086716555395826776524066143018603412607383795623187059554902861562648672272218823360319402288088668675368763407843279228715255228918772206686677193285433968689893830300608603418284786947554821178753397853680624356399565380636744410406118003378913693733851432940324830326982371305659438508162077936482406051600925569689973046213490751392866474877569594033549070551032637429611451424541955267949648724151888505931350170139036772826991580480697092682192518585229491664614669926242407092965897075828145405151699757664606919034155776704003966413566902253833914436833774639885279202607127683676605066130212497029465202246482734339144168072012899362430645385712573338396517188500034633522650821197616054357092290768048179925132501463692408764060934457100432376434296500949401562837879049331299538893470045616415922561162831537583007231711616043319858973871829449157163301391352021509836713250670179410127230274019472035624063021016562815805425565220224985183675006544395834789489932123700949155369511947313930471004830300815359060701931694327531165742467340121930355228187718228779540464956581389974768222449015763576085082341653942654596286512639493150195308978449775278691299347214971897978211153001085677422623071045602109901890067130554091728955437641004381742840519109693256093036850233080297928250055831079319780958206055626120052059379307419473307086186601099630677658378819389795010351260052004420820511707282234015892789765150619833031733218668234442384195056989661372691673143109317437581228434802051412034378576583097033464599024074492498733652070649580809074620728930483195169416736727015133265831863738564849335392691694062640913729909049317907477787984008517161599151664764803956292128293579059440780403077058554118984110044795638045734118212491567798200945167230956633572706837176149158089034047833440406654291744554232871818414825182778173330721752038195592226971023750761597980613747721831096492359112166715190216891367055959939098126602860578054020124421572998970818052292195582561927701290202753203941108255665290828749016173583705550718859112356545838300139130765950336737944160229213830084463828992852502626619396234938010935643151268167210688817988603938587924490310441220953747531596031715018796263358330439336999504161003697332595461342732297727411514118438058806652692671289643077459868435814358675595389030524220991423729988468707068399577194288226911447521330001976957715190271206060613499152407824294827046398279682408977479868689839508845147912868116104391581197680669225189317338940529946548221103264831521606533749118949499040274071266169034338646411789129075356696874271524187584520027620478178551126102315876825867788181615823646996055777443540256228419371346002645958184514202253503781906543237154842112773648134547178796697577415640797556985762457242352816106232273820670214733835434705587597726633742589938586997100407647626788157527995507639436158458514258715760688078090286041471091846830887025313524941157133970474953805991586004085259969119873083278954208255471847249990130733766372697065527255303205710031860804218693488050287417639210093611113595283215492679945683622563518456550782689234527166283291099394191247962653949296911801451505628028958140527259671280513588374768124729608896034360567524175542967628913562600950662504060406858081853820331709931456224691711764220981677198847923337636379083728030453412722707903739196772700926435281149998597721573065399308389390281655204199789571695240815187513918299873269111408285407202474723001753269950940659269011251470919412879827050541772054586103533740345376833545800292068982740748979787424462381753647443373391297268328516489317343414624338976104757933153288286611334198612700398780578971614349092182332883477414619823653375047254112687830289209768124893667796249165002656135458100296298083773595018533141020001592871213893354521625023152006304321819943333432288042985722798270224190729666492370941662330424676467097316020286482568805994595570959047097452135197068053216808666675466371434971545275192022796570287810143075563679047255280874598709668817848630932011971897098916724929298004112163988931384044034690530513433822096544817792210042188271232124011662784936118454109168461206729362925646940904096258308866713585795145456609769347337544168384986548602442275907051466369076621509739363455057886864085341406011843106641131161008896225103805292030487392550381083688622187631769365824071400694389968607870654215551008091127213957499838047529468080504597777931283263365814694731305510639684134613294681046608288820482749325754546920851849334209693412810402147480033023477510997686294896579299296075199328121706463363101231533637518573624542075119140469521016249133510325987153839449558096532794552193561340586971741344503539031224724085808335465059050392637605251756489855817838006713463528493918972691172634321084317424042278029241575382619161233501205642811734393418226035247403171536327705842752475786992792280752210799506289774848411438690758975401231962393487146057800323240993082200579101923972229090557936838379653314129717686372390468217015997125421195766273568063793025129428078545190824696463795604471173017336957804744602770310856427561446570039575076580569653483762247180163464203510155613358957422891714883826466705683236252897486207077923344045151283083038913394002288965548832940474573519866507757192150522153053222513195123158908408476810634430068117201499831499110443068654758933181294560391657808150761228866982185692471174058863745033786532338137188920823900949803949362030559921795978782488223750378470240699639047705174357643512934385239826132722600155048480806952499026061456655358522319785932842464557648307394140924909549701125035259667713671651818340712241381293992314233074865337855203949770923629387319536859765620126868416726458511175473069970694571773080607285345934001240603555718047378996942975498042355912257787010922933891230212402409735337049072787456784564443663500788926290877082472641067601896772483987904935180105722030316521568888453680993109750511810396341254046337474332247757272956501839258010154280944206471429688739798447606287899000882317499373619253952617613653005628949767292763852682369240568386250783980627063412710231158657010817226925421867638884810207101749343491254750996329440270388016682325060559367023498035908603013943149896677328091014249366468944159891119968334793174282748576259669430470933640367480992347182177169374305500042978857466903500474294215981647696618064112494535411963177191924025466312647016933794699354044459938668125441801170181253428939512034488201027440496532196178311401943761328915886245802308943175783637882252152358891111916792454380162708480104754819798779829550358179736737293695340949994562109729746868296516186648444272428821826992633700884093415525032307978513480988693637964338838389218096369153562679412871727799338315623060582782758602290482676121333774949968144854121984760642052215305160580514332579397798702191537985202438631276235785092118241285989285866236372561673481850052040844117238953158871889612404633085766888218740304012926672965132456707430253078907452066380334258303711481034135535682376700596353919134604599627072506496133731342584222426256172153941747073784986142272764746591636198858002093541183596771896452262216241534367986657612123924972261985656262743115080589247412360068902257090066785828443683482767575418649023217359043806443346042809005797433122079741367218739841332316610795644002074701110409837262621696169300485254051644843503372366831777567514680889928799836394367472038878120579510341518809562641653346846518476598754079363930596471277732045475706662511351321549398776214860236071801068294456171557367078322496574075593187596579646352660596934207492836326632906391310634763047177774434768243082143531127992285004248724763115185674141263772609544516495419406829435569758003721820416263641988237261782784817788368317000522246289261118273566934661999666668317447211924028724921651285341384108899509578466294255953872130396692463784949590248177093475432623167165024948928273183066199086907848124007559795826054636689872055708075229617588395179323803098240707709764718553939838186791343694367643231193870683860030752279389982730494371451190344948751307108112219701977154083798748760070945705635414079982992374356354476999500904072306696729932167622321157614824803805114411504610604811357187265359293182379344793043879724750414718540257327037871869425645215508529540788321470638805363310743447848834195260834125116745517008187481132535739927364263245703531346798958506803906518630684378144903253218657606801723239202453992155825371428226057872939360949982904724330998875743331579373591892606422481293045167512304706370713021164023169517525495524349720999226807689982373459918766782955242158525021118302455626873753127088990532318160574987372224017857740800429097608041842530586476383432952299759037116190417960850721545549858095347680203655955847679826111158970579006642222984608686153753652572341003131043677003093664091959972825864672371640568122981419267538532800938849920926721438799880465702622401809661195142923702716408067042914615239231763925258165109198599228116226213459362560665781327687422144833969148734657942791651572160653082255553754565517212247327820365705594641309031035302346645163644866840074712534683682502919357513393496176612320828084368602177721496633531078739635217625578228952896854997011774749902326471928633512749096253466475393356097477676284956061254437230563341538183876591010521418569883652450298359949620243291624393696281780507168459918389297638953306667776491959274431386154421248609063044020868251879020727741347065798935187143978352238651289744560546874507950697108278019871318313608660027985603955332511788295652274756192411041075112808810071738892162766829295191506015667302886755162779084204575680026469148894438910063338452742505628508556239450421649363157650812051544238572095136144173672680187501336103048955431087980090375990886500746454665657737644639261274534040277047608273921618921949470445826689835324641338912056098494755569482309498371199063527371842093479600964352654096018562858788442631856530756258300205417667110947369858973246255605946456904341993162647171687571234110915641000860971706681001716099476795832622472857269647114960640325194493519057489616162118427436035121645577582179295330548607440944542441284805155087934714066576906009183485801803266708400599719639152016136772318385701183734147465892546019419114529019902365319478786107182149422559229208623847305461084539146672457324625981995696802841289285395437182485557347261040358329585056256104659965286237178169090999218436133749066458833101522354652213599868409569914944100913050779633665665926817332573799558774343104011071297679429289945653928639685364318746452219870685708167344453771376802058488281231884894772404259951038322456066383357230788461911383869758828333181983417632467330086647369314253795758578328231342744627127332999159068278770290596540610281684626093661301529485355225357760876461594802057730546436926225760546834217116236741285355930571995551529885031494425463482692284978641964054686521272727334626062445927638634853321513799431148078795856141365842541737001365181471788216313244812125552895503469800867864602544183840150043727325412456955027791427194452445281938249411567441706810881087626731754345114185602232834732853670407246416798026728954548928505955057381750365792763027319692105902390959917316159971968736345518015147673415588282509135133374925716519040911759579323132251761714049241716579293450413929874722035915443499020249135766906704559639905974761800402022121704881979941029944192431766036416478084463920234592610334170116202605652222465248556094898690844606365648002647644538195682905190535752559021065931252296791280005454233303862810587894860627285584184166479899850075036149628710803623100264969815868517658909051561322225887003664530617351879384723301244481404394597854748862306254450426424833844227231630633203049462683847698613735806874864973513163083316638798613737722395697094979184123315985002489235857752630359269359222589238176529084609010878086656783459586665729199020962912395405047494328347115101080819421459383150594694027897062348841886192669581151318971683242247260222375477427880907899478383254392347737071294552501473071051181893088333681506056774619243545725132513449293786143028338386173231078535726273762179726960021945534787003025035592135751373551304364544709190450631943528593102481111899959766219552176898687244349307464731095512310762309012442848543203979029287646411580586722898369334970502185676327346887218335101793441585065358045418326285917385472495824991759635232277862134413780615505875522956596345783927097467023589952368964195138494356348555239674257993855860532772769106995974379076310556483889680829491782178793833208553287037620910391156510445324221375437881995904168494735884797430754771993642077835599779993630775346070979091693431878326047888685558978618407078291415930137401103059009092376474922702347731214970843190141661424793743499447705319883539110282154950559105239967274241904697022287222921713578869171298722973927622140887377079590144183660149899797464298150219911474132936303152925179471348687584951423433764679170340635172940876811012860395490495204978853772074142393514403066711902687312282645800469164997414567282038611755772136481113855909533606540796495534012848103861372642600948405110350799109176759962223965227306562140965062980416423487024786893512355276109961242865404186871457349714597253421027436341719109571029610205221259949761746022210749296679142465319537632550668196881127094707320070021121089697116076285271534667968804485990475677020467111531863822577931268350131193824109497067072834039902990675125966219157479383125534927381355547486722455485292156761475614659756642575340623157970264930348859656826116598343572299377008879845332988372111151342431593957692086216716312081839346838292343195182582992033591881199116352237408860987257345215062983227565906015954176909321786621615417006800517735091559031106241737551298478640953406875677301503283745461514600847259364840384378441374874595804243969648237643247093164896106460461757560959779589206263775285443702751407583802177515257773707719761832297237157823696533261063382427672503628209935611324442814584948101523201123457468760167651367537554907284305482889691804444617912350695911588571169917269412451631891253920151289587993694664656959653985717995606437164530051894495127441283519024063191416541064033087038768705488958544980728387475222984961319144174178573628881203888202420487324124002277772354261657677890610028601825138586011180326966584078627473131912255279515073280443300288083821932369860617662620074506909598817152825217115840929578785982289795398491562557222231175753859095224231687242620698030867759316552153855586593083791998727134398116924565675628193618754875765068652860043233884940506459628458552340823251434731334805260544457943913292840020164437086857417531851932369495217434316879170813754629548527722919212060422385891144430230129837659358782257030832482410015739737307597907255800669630948419784127582298795613877488290226601985228483801361790443712908544415455293257406755285286517125286703578379779858020827499739911286217129092439296108282124339851498647929668561619408567812610034810593653373866359662272319376227837169144902407102287670302906548650578114651318868194497234386809499579975927726684327034511959821982226267197922245738476407880156138108023816366939722281474566714715924459110932756512221998043952369830035834414749977096291591413043116453193576673878116139582172835291729782329671401348024792593515327362080030822531182700126441258631469825309790339785488976703061246747478613621224407982948616745491713988250893318486246410499201099643268342168918240160364066851155447200989260111191415959346528465306588067097532497522609455622873243151323971920299756535041806682679816084590718250667196528932914640860307404981342598461183872642004494420908192710739490824105070928156122552751688138025690232109431632614055440244069584516017681676737005541436504059203404199546150413488272578453017637189428460130770440168470637059305519413496721539313682956125154385555069827571626898440067301378785505635769779423520145898075526885434096296525170205130721139472517565216652103701161434962730592909356345612306530670024685992591140872889342180566152207032891408075640191190368853673337601835368888396466247770532615396828000743374281694316628716467407930995029637889293347811164209366717693858724122415766075642986864605674181625564699320963055443146085186016536900993865619248933335090601583774794153796235907073164041989171430549497232776677391948598406547388559053385684986474999351355390628129408356533296785174838682104587751026333386882993664947336679108359411630947209579390713485688692419968857666445910437464007059198040306087508246963284381253360218480948186985958851822269314052124614308633685867868278561093780125079056061708320498149158644675588310671699755996172210616156968740033378630113667057433315987509936169771991947975484050839473690569473455867145603199314183454485773028514156779775020031799561343826876921797496099655122373406111872030204639112341464036229777075845109433125116006783056380994157265754246434814926028827385259798602123384743512209059810420658630329991909003730217185672607972710683454552048840400185246951155598257306586693147245366757845269998937532483306013197043260757878331308301142228991941095419725594905795615296365911761413216053713878388173559724929428308746066121804399760965284453411315816695541206255643429686830162751288183386712025028909339478284455518104906503563116866571351050393731844141046601562677260614787681808138360779878949331998747619622961434424557363486078528545240940557119380545921253221727900392142987314849920799441558714021705005274330405208919703412028658033469223371617585940764680102462579457664480763252018645084750105308156337042578633726973222293520203681706606946994076923663673416588168910541788313777373157811493196321764803419990817350840925001899267423309185831460230603648270703182523581967646627622999627867145135934597470692819985420224881476872416524871298288247905866629263225696190349284741534786571381086187604607973235636844344463311993543786028480372206631471386080201951280686664634240859587782953507213562659151279001145370209454583417632139694753620609410977477195822285603679272751113738131806791471218931809552162880175244533898033693371682519929646409999533001736866592892854081295749417051336841253921359220025969559575538159470497286350230884392412959640908137800429574091680584582641008565829483720203263345210624747393056920636621469881168933445303547699848185621794579674841485174823312784172714679543606096758267472653317350696900732285051229182405265853007058686364389782076867103940630714102457227696748406434142249209772927124740707534923356228185848128102902176038442250074443376864781922484090383681677288739132444288082564488048119226388879283727994680683096850437727581228835490537032263602639015327772528755294651747174674144607603243328058585917834838815298124435485983419297645299735287259631573874636658036669602532467221788959814513401640313284054724663378540674364566089806366918777816082176082252825552179366621094324416313653788490817701488991306113759961656485785646292401409841361953175880629912844089022482746558136045921473659343487871030515382386180608969624156782680547235470511019426149807223064772188599559285925923876167141223429336880074591687496299901250425482808244625799138052726674095672663441556258096428143057467402601960875566324803270683921933004862912544738616749020686909860681487245209592125755655805129027968351315902779272967891167588957997659864300709158361577382058092560189268547396826146576450288520232370910378525972532019028805135518041964560400854987710207342668234885237677651958209873462483811577645462953979758507565297863511724625411025921262158651789315629600444781455836217967829046336810777206530355575931950476828401275230711158747330613549709747324557959765360084262696888115866549990729118849903610408446781732638118785649907905998344659948524561061594359334000422624087727384767741161646125520569846281389475846369689350397198248818213389204728277347819277983263022420643001386522031246348331121248147629092400513758659744478161730258789291018656881654866342777008481843858415329815357248217798598623532011965029758235594057311182119333529507901000164780999449844625466385998952876600016456278757746225466792615221270269884218923087677273348787575182197168113771525454535502586774991972328496313054668000708055743253252829081565238063515405823446381706114785351487921913911911004619755576424121307327810453868437775430968933056407139302050692333264948698014544012003329205257744127545524778759737485766974620087508424032117730002254859277187032642251402901175326029634237526472332899294956170164741578631151565524900450612663886201790199189408787260498570372498033008038769189968182919244014399489730732680305480939265818885099991315220127419946402026449100980481159579741771026918931387510308323038790607285190701647173430934512639493008436858471758306267269779361961163527962193590765952309547577754037315641408162249631065506151402726486869448041764734058401746901503288357954101860722087291120327036460588782604751545640976225372447282193668561872880601535913599755228471939493842466193452378862923242593787277013536342111980635951226806187006770552288123916670530892963323274080619518528414086697160249263293577456824666991498563639175240448684217405210597022500959446406137346761362431471736081319750755768110524330894886175026199648538685764334812061710121193864088176107187514822721407727749657239091414785569294474688719585682570563999765897045654285943614645617737924122809180555867045291527970007610152029797166467346402948121059543448206276656094710007305243715325059041411148001407913722417207547942722837531729007228433387318319017293857141095795686422581073065204046692125677518436763295870833549826876890909165797875246680323776540758887864429956875913504823361034038649087851160526252629182288055151347284661630139076111577094303282261782373170462294615230099628913415953223978593451548738245647688986630815240527428011960243572982719958192912995976102081765766278594752380814073587900532102321943735932330951569660900580208229274742969902987427087134254904883174066509253946459091730582906151061198228680154100216792989852348801688951935605376027401619244620060670159271350072811000069916044750732458243902950592280104363762394503185375433625135725496311761644152430692514671038493365359012359783352831968971319280488226891979690028287612127726255151560339579660528507221718307234995507025995250495810308302161555160074833391049504978962163976141303007104159378916440964906700374981272731425449364382105719338994988965726433316641729718128520733249735354776808916704506601917460975565770759785876645258480848988971671013766692809927065996868289423091968539238917321061770139760445016543532990026174670971487037533357838582343034994625880297825179203989003737992264457710423619904720184323671132767698893715880405818515506427897762862160145148369386339594160310470062477167527049572690085204434299116597586887082363048195419143117749055992197503335906639349331618573001970499028815687920549586729876464332902203888926700487196715927724506681366732949482629088412453835508783911367269831742632679282859388300142283691683317959818497030968274629421512475034832891532723532921654185564485153184212607128250699543134171108520574076770832871790692690604709036181842313310054248740323645449680804158816289894199807629167891194983598090110846320397332391609755811245531087575428411551051171944707763048888321379818731177848301216670690060327058661142870764760138735725616494782059060083588936267069779648184803206885342129226124711955439562253669569257339319003654501712607697864510815749533009542277324328884776069948023492928394048134507303408515966239925401999443061480648440000779951021207633108047924254586256806036243735263766000506285059113587916360171485498233585422544676444649816267388343451907775624193796187705269555502834709284287592238505697994484840100577354987665390925052567421553070065300327325480463289287866673791065491601500584243417733031659518559220357568853663439977971847259986463473415507961631857313958693329122174757787009453341997742409022453010178553646223115829268768239993216674368798011960811717330253716634159967871654069253160242623459580552637424653274322294366516442666506944007037187718997440489794168951681468584349850099978406613068166856600413790613358688725594805988150363504612180333952527792708269833200205802510664809893926815917654240068082496716675550405609769969324191906808243240137231503671083471624044168820222592151919839723089260389202292049814124164156147520068131078505144714483102429630753884425959330651318482314640981762907572928081173611795188605918566941799530711205213132229912646713246876424381988724673707461536426363908525850372946909007847062952636406781229417184128265737547935558600978578535059858829807090183956452673568040956983121271341844376003127653240187621877048346394762067165526871119277773033508651185633147221201938548173133338010840822110876893183561378296407188208549626456489790784345185620097805008237048207568685129342614781192771815820292090438959509343968044563074269482411043603922247924484976135961507050941302640480811480925248096099508099920251076963292852366837061183538343403808578741689917557623113619296465166347640742759047589110341625650320853713761550744253963937731624046150659995857648369686271474792072429823473536060032271212736392149584856076802033611060718773054267212690092721160557961479646867236898982748098561138518082339357699883363007141265819368990390664234434652031835915157170906642606503411663045362675832519992800618551387080736163309729440638564559085154790337252650546747432089193016387107854208040853504100328375968676464553731451038766508052390442124801171067755743579083459614376468184834747326412492953291927211748489667475938256581115666333236591832056812386520464155059164478590029320089148364939417087353947208867877410698047984797186103714160593106060693701323004842820197207835906394621319977465723771284660260469629967760232037763777009218205924012648221187883495101564941640139766565422870490536674670726571317184686427468618046014330205621889045098035837920092100517352370881093794339503539816016175592181483902576225854169997280769510175248508790399028271368663331386302735872435920293232731836600284050220984517865041666475523552237478885539774687971216328678328924928532086867527876588000888215219145773026778755167288586537003275883160493999514281323006151382654157393776214332008415816492232352574517983171525416499499797159165962387629564367706981183054390243582689256404172264940528549988714006849653668765946457545616380220266442699571553466549120771843317347201745934597362510227435366705360138879799068821616569790381937853030416281649097485420091477266363601867945304778939751085933886449046592762172809878401049711819273649202144552196914671515932698553630893542666088707455017879038522780831300423346020824177124581321005366464398013268063798034996102270915895463772688206007699658479075290075272973336655793473925401314510429186437155154782571758935746803304315345095376096979667158680411044279431635493457370041116082796602187563912490094597941417346057235679079650650366626001898223756111276654404482367863231978391770154954860262485773760919455210702312956661040451630212132699243391743465015768477754577908657798135609137990173290258369163560892831865009430286341383695835965988213926636984136174138719034527890418018178047190960990633585385189148698331031401045337161548537643153283385910661811819173579026845794889084130385190694822132806376414723621276043551847264186156616383595463348707951518200457602031619725517225533706359100237260645936927928312286713686504007767968673100263677249243505955295874162112715358050193664770555166377782658081182093106228814220178395773498931438528592688618875425859883270908656983765390882579316957384303967516158746037438280654917395041643336849696345241497339967371694689124094654321297202301852813673786620906083714159656608108255976658076150043649885020745330441824115158481572100804822447925893137585314323928419928181893075583654774419749851626478975876115173765009628809171393662277399411888683269532434255036877986098522017150233893704724072026745938546011884452242856142614281132151719081057620151848055953012623489920522514761423966792716712389536276703058215434523194395113152303139765133629746947787372693090872531257446794936968171508674009883952308563506658601409304240508367462893708087903586612533127210575235934314136915015941144302251421714106295195050815138609905389284694918305383014324911382855068180993029236749389671454268659672729798366423429810501909197897839390529466925118087715306196544789052504034460446701121063325420726986053918316225301234121868483013673605454047290500918823481422676240500662213544414723920216018413907069972865497320464688901235356398022820718821547845775449590396229856941999843126032457596199904858558839721838827600098828896008781343394528884459053060648299643233059383342211934342447685475579758355395544834241080604499510323732715307697609938284370189696830263097182430809981303531165859170998797399672734909614283363489633358118896566472748350408156984919359149482278602812132608656311702093345776534920831424703259675809353890515869464809994969425442678945539333143874360861956535425673753133309148417588091213517529981403412148430476698620894510054741848948895849881053554178298250531902339416358209024477163360623800110394022737352649145204837627418256270392688242264868210792672620382609095507023392451762424558240826317275226956550138497616634071967865162992141211521767496463056937893251714592065467510689587921933021818581376286530102594445073298423528295249601208867027677013001222746706859810376144523926960299935604941669040014467570320719856761175039935974273525495248547591847113336321967368230901457289002791496675092429247182982369933165379861201133204244342560952801511020912957466783140820173370698689559300943367216159872685029533978923358616407094848580131188893469913559008611022984431242569146541555740757206263112641654470529092065535771880151138499835926682764687017800911297045730410103369906867253478646765939838334163330659487407268979637830091228739074823375800819158153149197748100756181743897423389079094327565059126939801591552363257314772045184786407214460655400652438441874714773504506444175825084015665618329713870456451100538599226696936959484329291046378970586011994160867886100726872038803786349160877755393836316982614360703940879080542282101628956089696729420796983236572870476489137448075985483222023851270733237394888508305770671308110064685367132056250222013224411481636367758560650942244174762663909227976999931015997096020271959612674226936094516842648411108741041443984919021412269578728209390822346900247103314002126310264197035509907529351556370535307255320101205893836224548961242299687289053396460407821898948668476462096123175498477260741972146867349303767194569804946629263683661231345179244667305377688940441845168890317276184158708506548809979723307701754019298453176962550766700419093417655648435209280425484481288207730678126512512424429840263605064581651704177997154121978290184405948893833322937194103841185807578511640777473382459020011053328116220689906534101398591856691820438877168932515363051836929205149697528200619241233623864934440056450801896152345337598387000682621723844685279747510667995044244850237299098021468904587030367956118888573707428560549940167755901963412724658055887086965654327169515385583385169854028116888476321655387836210148040347224015486495046124056831061392758400831727717049550917125738392552509179402383559005549546309378171518238299320676854346198425256566584284254559857584378469471653378019128139461453369965380938118520701781256728804870619092982569524529977292650622958665942333027800280124946182228117779626159409576395703296708762230151419074269596373202065432849957659054088136516017294905074439479905315392398850714460175237446064392851689180100349465480882231307658934461297584392731815319116999093352808639853669636444012287041205028712301869874859876581294289870364238671184410162463852213685965506072947802143264079786501320448187097710376661578016158157394720424539025324970131024248836343902062201705639858789322023815807447086083423489847358928669293437676996920790604242217416601769917440365398001479454754905639497775917229404146602975320186576412112516133886696960379679031256928351383350388580095249533070925945833895797146804018637508009694673099711852101124469870397311505200876485224371595914666978720402313686218349918823311956202358464344760457814704484027342398680355747616052335254847292050589813433570471717639879544579422291867831741084023516461001237415830518025904356812513907864104039763084509948398825297299199982764602081372736975198050416009012144739305592008013705565122758695985966790580491582929144184320776040768019775583114270773183881830153859108567320279777794256844192633780349693018864773942589776068522386749390427363353801189473295871426868021525602334263689939956924994627365771118897756215379891742656163255947060189237783843883967822787373564147648344683534359283894822896560515070481154484616286042989852019011002373282960183766049811619719289340884328096498355362253318131683909685825964508568462736414197852874894080853481673988355326731386051506230804605443835243086032055593473394429577993135044064985889297674466422466383982665956496699024564245096564576202085980437547892292040488791918289030794088854556730398114954815540887222432424613451591112530822320117394912727200799370896441429916025905065101240580463539802909759704344766197630992271317460590231682227341419710086663089924316904119399589786979163611683096241399784532827626202660338655794078967609098301029028146793585628714534841602490729893201190681053227702904320582347861847265400089070978205228847034380906091182561070192045067180768810079375181424460406673111468048783493520021152445440138156047512506212413306502723691770512057536429007322748070797227304174767871802905572991465601930275925026640496676970833032657226766881082983526075598150361446546107417588480859827860276487886280492614703533178555077978927569308694703234740336257970971114637719963829167661144216496385255306674683607486937121712203232333856098854515158657979677787492353458349475242861302617678070469713109293818845894194760983793125147659536359216830104233328095722092497276920059377753525292627058282276095883463020836122846760170084924141853245457771537472689497560961062056500714990375878811887311890441320274556474545828672965510306615564178774294395641578085256700634269840611436600261537587883086296255623963092809652225586064493682698701792580071403590061185904975873920671879232205047691076871607566091898621487132831363952862562486378080331093316076307130148966641704438434600693513963997543216899431542690081580258906652421632687052227201049670098875299765795392974608369708515236485400571830544850408500230318629842567712575946795896029986860003301354031355835139744607479105736387619029164706730076109213283811334284897897662612030265628199487124927618186939572389732182176541448326498905037314677949631559222434042551011772784759405970926955030547871679280264724517336858236746486391373172230543755251345068979693097322470740220293159084944786079704893575445184097342540990979126810055807628041517474086872611304361168966095305894634434060674236271110449775293264657036071029562790090662384260530135280712747154322312178318512626456988030282930473071850459713251385036412629956123214069379111425731776514085545307103437410015604183333164389517543954016518082770786288296135628722684746286806378872359073898901947628509132337679375666026163360461329525672320835188335376429299320860629724394957960224457023664224992005629067176330313459912625875247386869345407510526511199999440393935401226276550435533504139638570096530068225674937414236956334140643555601467039887036676956624074783103408287945014450653238040701186963245474190877420813982360288396214980409769326261924625821872727783830876479181733294382855683961528854610629199616815972147858642371557901905591137913813996275727234449177404850480192146905688937505108875948222729468364829474695719957673496269093401583206097630811490181834921727154627647785239752192694987885917299501285380324540739583555399031843752504603490299436548379608426038180728045816660870013541755334760452882823997939671500685791506487956481887453233257661970185852735871020502290645189244927376322827088275224344428388612170886799320379217148621443941962849737968011236859715906993158451405415556338369829796702528336692062586619738513982846119354246617803001539319649776018732686430831409143481265190297240303026426287648197674378818232778876861153738832980802604500604947016545317924529839148354121669978739194745583392838414126474032434009175072163884955751328285590344315618219882475205619765469641187550326142636491296250431021414766012809877875475329623091892002100913699004176630578316695947975000258791934942140460162316119550837480798589213371451503577086006733744007594173009913687882256525205911625825745955502460787754717771096651859954349969124946388921259065718603915315289384605196620835878743315095153886346342630854148081622455189605826575482656377568934737197677297308845354832838279915501506605976800437379685115565624525288704911439293264125452477908466992883275422935097678777680458375092356257135488661325250239333193823089019490567497600085263989753996173383256367119648080293121732288079037044569321747190681834152366271103079319148612547027919982667704950892772811429167715374160117248194391065229079319926046436465040719467405254784516985187403235519928322482435079667343961643030678738888452585632985021153391482967277077905131076062015636267205387040285998089092467500709623468251410643332843152507942779093917482507881863797838653536623829602798826387981347063374751339795430966088843820182766523172719300177415483037966639577554835825107355103182279422298843924777900480064258665896920568324427743383588630009909656397023077674277209543388849576267316271329177265114586239832350148452766263056330553940071892885459604163439747518210587747499396799132949496903834974035602335837200974184168712676517771544453513324559344166415329003741049439051307101498492045637210402527864308393470139144496046000316903227099093836865545192087576904162702662987312095381881454416019623410981946663854190344025922688065916182396470581105216225009512052904358223185574144333745919097060534626901609544364841085113426932093449801180488522202852740754579303610905716001287607312835360430476613912183384670526186368882823136349096962675480679271029628237824590145520496737043732695533210855027284489385423853010821219470150408508322106351708045460098523007637875737480144054604927121477822445762829147417063643165662598481038347749562071435228873768651812967524758452778516684396320931294927374413232702979619197279194191584497190207220885497897216505085165891306358658978435676938331832461931747641325595316035255790970763619086230803636954527203990412283400372633197783836991529263387021920679089062687073481163166175863826121937594491797398303635074048657288827606162353457557090112141339675969476800869755199294246653014857011803366026530548344066717778301495321450850154521036000011232342821137654734308801551861223725596865640131743788904768731414676514652581622005568706534028398370476072091603456515199040888369077328657501500586165947666781037924581525362694430925016189391726902593523206035065242752489321272993469235166388273912030032622685031979881887681578169657775930841507229455304258829992096074881788735378804536452323581301771950741218381911666281115638259194310759814212327104797229725215213331352392174154128830948509590566076808485377665464527681982501297502555706210951225790325247075173121039217614002036170479513865285031542042216838408531288041367210247952706538104645198054620939414094107693758194995124687777735652258523773654502962643104524539162453907332424917205413066458477451205129081052014766530300581937059088357394276010808229662265708756347422501624909063547792206433104235527907053159551552362031691374626153213048377960620282002099128126474938164358584251604621645259886226959828886537343267075185198221742730753063554669265647406261858370677207691584032005541459621271247935339272475850566668399667804210922514165908900403651646057861527262362868188028158220726637732531967872292759970821183848571913385577278898568118062507627626518309661583264277107520146261314516040709002483587420781062658465619523731563997467683767174802922067998612751381729191139093886839902915127010724324999722868026359326616916695287992076933009984781695446699883355188168982610102138591892908453193262863556406636983326251584990409036984213508201029214424701591654584645936625296262056546943587822299043737483865406619888601590397435510044573844357314530432516310039682247844517108091958724117919877207347140643276629958082655370892955761699454047552767193667317497519053852855396030546788044814000066371971568773993924819515722928717650917675884049169273529010105386612758420115509399393563288698562970474732778719781343603460488755340402514704526507834658539751334184322893053676048862880962411221625972123917043229017878086802894933176673362500990480843143574420670227105727967173555146188950561983940076090720358878454396238563332569905259340025424952276802526465447443516287028695797990995938352416797370836076800618958773490878330071522630921360601240811394795603385223912742567797042279169362136850464480420406146158195009931994888958273501194977347470877619203961254092259970440912069998716097328879801294953162208318915036074041137645288118634161169036266292324687791901019222837293178112741059498704292357552950360899854376097604270446472816443464416698236455036931343168197067459595615634505223054826830404911061449549831462027575135456652808378045423668978586611004850998530087947197253377508311611257693742149412709301999487449336784517455463537177068961339622673380264343616360532690994485929036488045488472586136684339371271290540206526997883273551064265832709376451058623210199244638310665560755529363868049175081732790825905849562770615706012404989038352535847396271760979264478483366806300405631979894166476438915494180804097239705272077869149625280161553803531418284513806860602918343678912939220990895143396645012370656587805192180324684896850384517151909534033526329720319400320608888352605878295493064464100956837765262667169072735204880087055030374230049211781770462156916233856068956908639913562847065608957154953657373702073529209155659181072543382692408266235451963391906055087964632297541245287386239755259778428810876691035887131500640570773269557677272191238628827160441899858101912499769027202225746949776359300947774014164921371713538752792132436518935523675588821996374131840420085177201735438124025163454569181775379713705672402808381490309531391578363874633805280129845438426314251754243531948524570741513911910249256573818653403120405407613148448981211144102174105844738675224478007799368897707789330083920925766045610867954310986714940105874609414732863048558152078743633410800041607149151765013253844015524998449284935296399527319102824576700944600980007241789600707316705412465077671207405770112319289868876734758138136538197702663706656871329383030524004061794651390723042122218116566879804000826762763591188265194725052218763496191146335727714246453133754665013100203873173212125536188189375557508200436790800191891507133657610426764740702947481532972694852716461677499384567060909400608866617983362451865537849542618003635495339754311164279312187624768220816097725055186614272009117070110943567766030408338708343930317787322740308174679368914640024696835273739779943336874625859188272895627710705310256853995977816556035850965148201527321108638502837712440017246109016980972083306275494842465692344352943373445884830890902208049600670238127783109402985069931298000260708970430696833690201170086758326697169344362113079657064178014187511828485960275960355964736212931592802656053248390391935577076905918368975554159486770484745147856255523576962964019910430175945096160573326301935702686703630224052000062934899326740281113824533120632323940564708662800944129095036577389791800682320408685482664365234772918178540160671427042435670911339139670716925709520686726539910149421997912564976134912860540449456256849378728996172976841602668123404122737786115152759992062569593212837634047689734560364313585103126749943455642785483726831250843578467292673045130696533208273044943241134006974553539778356957234708014909878297674369326656892427699944150511848709436648784933145299973205101022071431062628219341414760304789702146143227984727064921932986973828070062489606856472817726801300712155876953238008781048541049173644059773085508094380279060975192352327956619508009168267678133121330373897691125124212990138452702383067120968087906694821654855863531553959442357276031173489029134618144544915863840223975275543866022842459330477469173577627374193169285251513757183074945465100138027612592390557875998386984137985251937058407413950569638933185291964550212355751983190060567432022196991173507061362860654816943336789290951490970437101701993131974365602019095089432133944084012747273043115046439291439376856318672198613770131981921529327108691581868836701938576425803784328466419142805131471850767502721598234522768176264752863311367018249805146330825733619909079704469118744977120763204644318891983497999383595525991131144459096369420846546652646430012189482382033833070226960446797184727338963218394079267409285888014575603727337339475205862196355506629957881639547563295211681858116590486637030971985989819700524607499001413351849412956159977796732079889052823015504534868535182880875186741151293588090233270925460663148031586679200077433586120925528859442633703263149406975728763094015733985879585333128548611454013352508051671577309032946584058004919075662940816347508799461153359243229245060125818478230075261879673138518071947615449112210688359128563428360333687974527409491137656144036072386111173564153469187338847533612739173871204164265773276203944953700602056505110955641544841900649585513590855104748280811938591169048179392990512801684958859630122868794251027555766103460868365584590066601600918817599550656517293822091971485500633712110417622716179396149078085044611190927745441621701768054446263040449804660878201073063477499869821599463954902026824239935714569818142573478647584412171543487661623881480972123581800160310811378625499501177611072219930625939146152554615741090085679887631869473999576690656491281706438904697838254090719477502365653848023915416890382862970986463744487165359443608531412183425043704381023921694641064117352024477509003994084802449380503668371523042857852304296862959367880892909366985053411067353461287297772627201121588188096577980448908986844922120738990361998784122407322010893033908946530681167674510570361202373680825575645127834904403083030393411629837761995638825887122307827077562309059102995953205293223163419554971254313357094720895323537263195483793388967999114043661998017865723170287946042047987365410759723517095518384507722066790877314954245440623096267197446050115671087593629536004928294286419274704755520338098639485610785517175181887884849958042010908056884064302980394553694691565068221207101726172647646255021440316464604084356631120492952331734334435187521608804177160803477767739527681092246803210106771749233429596610856699584896787558716928683187422246611887588722488629349707804419069125164646760716660165367366903541740539981375090319139067287653533764634661665693649999768813200486803611844885959767023289495620716601620011961526644579889679844893022190476222506609092365445751225927044459537675414368414836068058002033741683359901665830279174610291528486588823274001373594935194370564684700522365297150210803532136640862324317142457543648360932714762209613876286465410774703107684434480446587784850474932969830463613225376676676430410684657571990564235315541082638954739582980111773232644463585242038820821497786298705606497997131544502037445036077326692417261755250080640633414260967985168051697878894350128374511244053999001802474039407243970619281908491385870152638399333145064390450125571466033304710626527053955752888551884748145477500485503993325073893618354932469112463010604433188608138500805238991062075933095764909234453596606352544813426980172504310758929258772263743658499287842204641698423221763052537624376656828792412522407486126758670215488189482746366410156867826783342349257435366169605302332825444403822031725552922399308484209120279640868114313643628613930231124151322195192502417767806836678302282205174964305638751378938097509232688200490674150863493644973326185663215239071995564714815685086598091475882675849970509429170343518845498962311012594549409769897992014523254559034176784789464468285264946272440850271488190681910159033109724485362141415914235533321466560723879548966350847954837677603841869538867526718327008412790707512537385709722428141060915458453658687005196330279627102975225603434629362899775344418498581939003116677047534442188786911621491673980359500545417815937020409504272921393350840735489061543746039657730809321931077137449585631314297615177721929196361270254959163225087749278946808844400210524482975086863604239749354593136403777568055713034419930585120607383132434595715643813033535240564628778368719635158016385724637332127971693305179210163047271715529593513219726343344533350237528925506989586503983279768473894359179777604227692844693606452128653963149825022206562619869944892680938100649047903731186585081982181810351566113909073362360744419337049892860477979867186982215676869922039043006016167427863922431318311218934859380112306660576584366855599044845494513614523673514257578664696799512359711134269939071478010422590487809549798333612897639193175142985113842025579704863850647407371507542283659427009498268729325837983073243865829735431333969970692444423871937729256519934012221128740087722759313821282029741433706548915288979373065611438947987478753284318017321574959863291440278692949305888751116274674330892853930541080806862382568241330880316927037688841907551320721470250862540317104643360925962669223942690268291435300566408828953225097824619865835098330698447355258215075100512620061758312177058174332459445687302030331889314724470183780834979204168020494132677666721368940479625057243452049435689852304770748091331651104677068280960941879889729097033044389632395125288393059553454841094166509360091561518586074596674727934544811547098620584816766909717317597760313598787796042405645502546338946727999569229490982561058654782088106989285186017489850290290471094362645989742829376899833906439719934697005233898704425359834433468581063522049302075598602575488088687786428225420330633698973824449266170290780620334854843655274657443071133877554724930375253412344345765775967289163710653215016824791675407074960760866493933265120284355697070856495952616041905450143119187474373857481980402036985477593320996631654684036995534433292169994443009374342601886960421825308150925923965038965639416563780911557588714405360139632465062299990415596332471077020592772283550706255316548077865109808167812979220988823583370952444337178895972114787805209002034600552512746080622560959609899965629789318910478025519903038051908062886992351816726648490302265718687821333287090037585737147568281339177272178963195292237723545904213884154258508415675893757853165961446686500529676419181996572754655546736852908384921831645150193266982157203651377773720204950650026513047079534093387726941024272573902193326775603822190543175672059743252082555722979302322863638735626508246065710133592639132417443895720958575586394483781297173573224449397209861374637026614440519608622700040773836475362749275498437148898957902478494263761991857488230126403572033831229924360892570522537787299131547374846968717737551157660892390789628519124882944320389443222262348633990847394631260851576991265108542488192557127285358840611100259092330464850933755067067609902500389248084671857867157380642950659456915016604122315207224731517332658561206065929666160515750944351394337887274997387800105475656152109437468769236895145541951463374840791786458984505419191257932888076992668645246674530462487121977997134953795168539604677013900999516022368838650336388523695701306908172551558169829924251966220958753928123751381776104279953754111753111807517551766025148874624702204050718915005313916571165378016862194195433215409069378881524062002300332370873672140949516708060262970934489139710840510420530872410050270129177369610728483587923907574357460775902244798101740717608815598762488746093278750017809764513589771388145501124363800187312193029560002008000861051261314588065194488098390253363164117912550834421928974486258830994587453836140296882623200758846298271338839624484787179166317791904519365360086881938856445336335482647371289446599624165865561738140078048661254122475384203575668728016045547144188047181332309263881080069110319400107785233581948911338737055201300096026900475323303279113823061550629569645272447311559244254590374948959048716794312456482310913317492561413134707469693701901043936855111382711451826007914248849843546409133923484927680650967324486783370336453193159119122911255889021665439705618803007645228374987966191383764910750756015953060696218414165049800429618599501119492237674694625871969073072941024636165947923303047442193972885109239287930068303346319102847361507558379417902263073978376158628794960979124602371950529854442369859850810236878939933296430087845674182919722880134050606983101364055255507519392282954738130498742461682644780266049808556696174028307057815066504896404622511101687099224646123212209781762450718281586283657500589675734906221949734973478259804057956530831122134079103554862880743573052000962518039574845058159474669860345724003290854993572927679354287917668643699176357325025489751301828853759600338257510957538161354125297649427742564595116566647017138181931140599396695559104093751862143527504775803976514116387063298047128753026417494058369216682544643659969531125495338305437549244406944327424020825855791150471842932531946097435133278761727208800630512551299318041161131214347981631412609565742392642924983807317703950392533592720219406326605193090489717676007183868218951407491682514021972673396374677029308705290869599417788160368402259916648224411738130369229005945208853771585642296194266535289319057884442322191149876316003167716082822344441778761634873674723066105414315505020111629602224759198663241004440023995495275178883390922321951177211264955793084744350890889174107651292026963491233940169677543351220955763877516653743029751122973405913557731038290918018510366475703516968922816086282239479567813881283688691577571869706334862826673072431337709264192941163025391028281078029125722597437742270585597550325324555673624488428596410980529511909120526329019358250219014758789579523910170976798979954649978276207522718774212882317020748398813515209600323259549781750194956874791808349139862429728036202157833888341194241576444435857795438412615828877069207542334352360622792760905835280228131440534874485155848334301146655126181128570341831879760061989243938120999794718977112895330730081226336969433537105565050861187220543555856372826306632468505457597602808619182034071571548689313751900690698890262409507209156043391682365463300519242627474875139217445266103201203961751038279522815058804386891215613823538792785387338222503973383896158415292380100048912618168783076935891319410982782501218142713290329836119938915919561903123614196983976205763566661861763995557801376816337588993393095993917788732537872022372921312328760181995265185759149601814948589169265034037290845263399478632981245345958029507078171023628982215790209497073259161654999258638393844326414704164968843587812556836521680939805712831427267213097786986782252019722709681434960693490632151548986473302234080938345340466452885945124157153204197510269446157275197685630542277983467737631722124208434184315600540889719152056077571651133555301697029971568295478507813745222087123165322516422222719716569166802250678752519176587178812778318426164784947226876241742856329826559832592380963894163820583469167639047570307108863824724519133724936729842914805697697540465737150809670201625065657526761304513637645939661867638100231760013877155918266344678072872572287676588275364884800994198797293375553302118310197012165664591697961811061749445495529972867399491687920695306068858680798244890435421378838473684033067966705267825627777757130716517069878839557241825024892817481206424673970870459515613245964719052243856428351956305656165973750761265084884222872682551672684188180564136959599784170361765863504709447029533512923624643149400340737135794303755344254303379675602239518123639642474359112951248260027297967877574159225121017876313978983844548721659190027093813721230025148682979589274969053117534715118336867956616111544890366873306972838511781738847021950129994255084191064931258647214138481170297933593407541909745933018310875756271309741316655289298586022920089743693884312877797893279840783212796132919460849739226811860942968898042734808877078284952724960294811612779826545413801558587466061858883770975507480694687833166703243657123999922593446761091687574445773394745480967081650579117828013262504175798955744797722009597364655339376730659431558201465947323911462863583915009865009471825777095841227222647126633383823241364332812822627756295168588629014469484308227506253890873048147409574413187279829488754332484223776877933691439742054175605084699744037917797478505020481697881049517223995707444164823094218943024701301568054988036790017213076010199516881376896646710903701151027110272974376632674868883772591825294667398242181668068771357662225991823378446911266007602128189731581056203338890212014677915126441972300037407594664910625556902518086895571439277909311618998369079493692131091072301233747065219854117553613461452229312072214677481702383565916610070452234234011192531769386853242047240331587758470959115399773479687643247186075177712876406739400727561111319127836836848986308004679188165485909452224667231787937864662734622892709135528757841687697692547667410773864352669423215426435527017865756011869708719311989297902887472504109099734594492275865772421945129266837853842186439029595555469134800769889368780159625253796269819795165340132778489344035799536820587431267341130702551518652206457323922881959689583523071993173957806783472602962489295661811505513062106678456366817362691383064324751754462140465599825836291956284240139796164749003928036232635832937288874120589076187259493169761164046697326793550259465385754598603345319730428608143234887779888812957542172721241569036675496529710091629958749465287864841456927221132453792334761591372128303557580788966822648006157810489719436228770871854949622141626180419010885359710111043850964258369123553158448035887765751093700351017381032494719090342545302599047332336989844526110519790674517524545894875740096121331128963974225866857080850206425590260617713709590441579479908822154769651895770952974189307717867620341315024341839008442464650433335378006009639813240222935459829044584407743505427404107053520442626143891266181919359476991672686824848997438525848275807595998538750950022194751823595017674859117422045428704011072612517272865150163155321563695337391040915934177810573046363115886532872305475473525006782306493754918418658613652270851277453292066742506042506694970350961578697083809645984229061351620066024799747966941860298407099854051636396258572619257607071063963047544772586540238370566930154698500881407812653182567896873216033815384380090803269028689504368528300569957709975747276671817257875558577854749416468645521252744719132139417904003524614825647255338540087499669414235353489973968449066401579592624719550891604285061563226139765908478711048971254321908492214524668400803745912812951625255319069790432301509869624648375897158308830257693381155932366787207873528627826002152949913414127203307350526414001318791316982649790776640467556854271529934312048148326689209066429762448161801734885673280958583162317193809725915058715427147593966176316242611494919480970975850260066871155065156257334289205048844363143108039736765129062046719870595932278903197811523970184427835721197459948155255736993615100279707103337756030672862916659513165663640719679602083517305519931329886928711934312183653953550512587224310084732681279110625886543538003986061179819564135880729402863990869453420649324303722422562342003079014049543944793636404715366256769825690165291735436831357147561819493469873967449120291033144284463933694350896730601936492931953320476961950295602376478584923831513572123990874010772198174874606839429412545230738517659716912234068673454241212933896301203888351624842956448154402975388251504453700916983233437203396540658751978759740455909592018634868537942762534276066378338692234182743008909957011601204444184807628700893690655083101902707178645470732616080993333624843883423123992982905359033909930898643891301893504746970306919458842652606553358125157641297965550769764050852450301205912565417391165694174934732737579252899459830500471593223511689763499073568437038681539413608561155927848803194926471265345794408713573750709951260246410065966806560509619601950945598804905229205411916668404780111198123227307524840950939167420789085432756459002114481801954494602102214691688595513753500479260226198936121621613550041062878761844753339234442019140947374947261352563011387910430434658368851696338774688342657298821404693395493271666777579322443738132728941404599986822177102989526667883882102210084162752435921008284231105293928097458803084513175215600754512044511566352710696282397172235913407364385695713989282280603703395927682175169746212084434940604523436273877340382513314647205249544247056312319734329457189618018370645953352252169524149659842379628152301530057016933163839577866722929705662080640435973793420526847624796280854952158615692443276121740637184519529976074878420134704495550883938096996058588536601676209544895020796271859898223601155665623669624614276571105776862190936985401702515031002180786547963542569995560417633526525345275746131626140839457931753486460935321851538403576093657997402452891827118025686769280483828739545201541007447529060052899057193855484753533789055559794048660050755926909602311675348412538547190862776150615406623576282110671843275571880805219226814906568820777254073125498564193298779751909639643836845381796208670304967998152506097640132679542241577955076915908342724106044638641029551453286410675115310254994728779077202525572836562757090173523312042843342570859579944951011093505040836093890831990197303272693588302552074476167728767582435520648524293134221722733131245368441680181856581356196528527270725336968165937711610546931371804256917413555625018273193535256503073003265985626902179156883370506797884608789386283093383164746316843055425321191420493170040713122207433876708438730320967670634214584107824631186065588171644011132978518877617988504461902319450823063457733763249997124063273348795808632240831712629527228112072500306525119403389186539418262995943526828306254225605688938893595315482298593593386475815235414722453747608278561124062683557907144853408402138119136889230571441069670275668689951490176912852129141429690489464653228945354799152106808782251341802450485369129994301429254456586569583543159981597631996368976224051101954795711623896219599467253937122000884096100123047811030097935920565227221544695826023351469425608495272188517240178151782731520844696211123254087285688000518439390386518227814163764350767988324766021559495195337462020607916085630721711409322133719277407406726963886777244475187853901427255289100962663053830053357488059901526566211671841120515113175452677359546369435097202908805418122191773202775610555490175222535821134058855263384896051907336694701686724156621823826269422730913557179101612938504526167840099603103870555617021259960070801159176427144862238584069379415144753270454823100720334929081666431951923050566513668135057739644083989734520683906494325600136199963260705165766403130976270655659841193690773866525178886751003453632935825161714303787853574217989008199624017877160902518879191115531023442833647779609800011317998853024799779184854177078524980875449258447880826571963764892305081898474293453112929489477397885940067826536296825503350664235337505706855988944922083208127017875288628702042837798657487595709226200409425920261388874300119782956520926407871673764913845989396908908354765919657517803109199117520936432573387540684681645597468420072504717171331179276244766681722948221936304110099616134495952216816923211413767392205182310659633002594767167593113824743544154503334257778471155454027357279881847340547216504471921282015033867644110851804239320023511842797719161555767155708959104831130946499476781649895870752490706673665412899245179696445708327637025603632388718761424139938071039858134376523282374136693312822410692088419428662805953713262104855298533270319495116126271519959335345678753197763903001811269815338987567395246419594196011021948313576821467603250531355460489814236414359556037322050682284548924264519209437927414408557475948681738691704086459097909805108481064577774584431709751105597138907888690144379746922312555439107895819529470200770888748182738066993501961266558171253599741702127927867151103175026393087745579427853163996727988115386919162221174889090334031656792206867027882375164009196276961022575236680159926603376262846669097289460061236786565033192787855884836930484610423167075438955551764815373450378782546773571502177813265342508977036983989677937156711067486322136934049985673986670742877890420000708192100688529074397668469438772485269469930540964249959116838578968143625539402324339158875625545175879242821760091373219387205034516941193208087863699465533196396430843449981199967532929896648575796783737668507829458287507272799415750200036165586447678039778392560500507494064800122932657442763101290175908352442432905243994830733660706069847141964776605813772839800446464058993656426148208952624639049849565175033340848454054527110022440348136916766461248270080166501307731410474587099156264421574342618133675532138638015866895670399422667328949007746536706810015109156395513270936107395045740051494601475118190238346444980590188536266971592779214466214441005718139376085211110271385619194305619947838264951319164480571662314316929973442514994826615290995293538619664669028535903938429251542163812769087343818367084466806124400980080920443796983669072074915403021810337690064997340778565205492861462605066905779974199670534016986850505145184934453782972179240032577460294412368657111179069982605965363074816418923048514443978923897891709564353932987347988523680338380337600516939166529411152606149803508612453516094694351863786420660204300045403797178464593275705290318024342257357121901431811505360996082536216827253640455535479289838864948216978368282628768260828460819110341028589400712332341406010109234448335686843124279052694943622176739398366188411714038176889246967651725661121674631725891277277272656552750444463694805983465818544745260329369653366872689759278087000337384271963080661652497591912576215303004409398510956689824039318366486171188539966549542573409386699593892575139782751859597002739584097618803306940727679972675905677904906063767054902865974423067009142738001847964997164194933196314917135261850314302769278366906312309932581401945158909314533699886070340925153055502205792807401583960128378282188205728972865084078174540571018565898837958883616895878130592422377273612796304286230638504688068344081205565791069538310523874885442011064667123221019080557633785368477296065594705219089141619519203905449669264183904958038614779479700919137756469521145728275557830714256888508531360252712266184597049907568633977230612661400082153994254820481310472883588601255946497393944587681195932429388821707781678066830900590509982744813381637597313300140047997023348162518311565777085882008355665103011187802593461416008329741823938372048941040782874099134820984908454868293040138941294185469697674144571348901809114023128598606975749064899288135201480040514503671666861043406082935467378121843221150375458027013918326639798976614213274991911096744402023841371342689555240676987108210650231808623510595706090554141250759365640304435323278365351445531291432559688881627696134014890931110101798243789738636576488039662130163960458514706602422171911453680585064492469019217583702477347355894741304496116008346299339259090969371148296346401962153430401976191138541833721244271055940203119163983227640291519591808736596797492714211987592806663155051046644684440773514828243510369204318292334407919193651103518302161759155647232698068725329737970087237681856877873586012129966728551071404594033198152373864678430420946150754277754762768185010717795043555742094479192169032470494015117154019976336582974550972625750897914453273374016654586608437275790182818480522786387854063334766085318442022102385578296198135489437311199285210916055396136482383065807914240139631777096160441836327376970207987982563114371310587993463559752989470370908309621508233112509306381177658445641129668552036497772306497391273945147261706485516152103052883116572544629746030340346528238769088482221095869390527867562077887298051797512663243710901858148638062016605723523314674460071564495036336112465327874542692551367915259616168195453450159314485789509498641856979810718487609795892987677700049500961402379095407618301357030237320425024760468722587829805767927319590309280008412036810094885985825652148450163958437409608914962046552289790854811650537291555305594260199897518985793388283043605295004421507610545671022944777301945781406820762870778904523409742525470934333346563385709221322509711447689107504471646423152889397195311618376571312123125107825102271906339689623652353428045089733688413619488188543874600101446176702397431852104374341571318244556936134585115568677853693541054656146253628565786379815335781728704425340966886291930279910252897018218026507442729496444957032348411832650985990458314390099840287433298177449035375129202069401981898458430657769142866769704675175009765623221647329913760614080610892931987387491805954226266602447243938126918503000030328918308606870399919044011701200909091451975125701405737443030653528383071655395327361196653898754795617668991914500999624175117188252241203625634607535496954680480513583149352682124399490558005715448119204665308598004345936023804157791750363395289283667560706556182222917875023223040651396636814085950791919525219874204884727633997334373967153485365278646395356467175375669196386196261610161842611906802454715969083755974737241556190853253305392171263684171772404389061019345980507474103852596473602085424580534614765044643593053866563395591224360117714595350787279855550945201323174565447938975279456804420924695616190432796320686762057356375563993382377925665691023067940608197633655377189227598707252998358234207533341464418335300455444755274047588758068391470952481954776650770471629045177549759497781162509034813285037193466665009785441040244445982232964930471385080556766119293868942927328890895835663460830961215515599894832069340462413774627611862914274999672308172496906917314514787680807830224100463564654659423596876136818366597872641331557304316721822828774091062499283123347672513633988895393245032463413423382324908523880849018587415225965012569631606893083467280748129913067836018197877402678809260745320584105268919066096327028605890174331727666736994296855694852927157688250488867751595355459393602261896055556912122328046765305959714151766756480234667687251297096202787570088778308173453391130328515315215295966960447674742030843926698678388040588942176209629417555098804923092594433581846963033022961362393301841675011722216320291881993640603115923083611800737432665989125982876259877940172471118786795710574867265103842593284074546558909098655908769703111080287980208977929774899363004029432492036286049026319185892740540330494214907340733460598439223856097491642637887886595741774025281399244867615983996220455850323657981434394009648895159162842414203167709125763608310403029832414596341365790503520778349672604273161480445728440039979291072727784906131261460617251529502474807438376441090279679188833917418024948028243191804104574069159985762857350548454554825984607535298515130974098529716221753104397650853298105852389610458628458301758070093707626079698542399489942691311744356987310475108470264874696758161647242834555939315431711773043294283594634557511281196540539011761573658492714814656219498541712387461545855036748456768990540098312569407916183221474048865592863986464652302754735440742162944989039838341595634451055155790001330372749581202144175110924750211475036840375269135780646300121259289610453932224067061414368998113860099876075891535363247708418093344863562638395190112518445569512228319080980344615407382697285762707983641916585261139137416038230335488846057144303479767886332962479096950057279950422291738228599778304942608058126906186218852307990781150408999797028953227752392315041936524435375286703068828609087815608650888321261976874920994192667814687517316898246541799702593613937464768061387308890059031309425837046523295840902156327892739637695428033385274245727025980437304484495317329550312419040718141081335575690574148459317687445493448408724415990782087248780034851762898152440880617421467470750835098761152672818557966723092157019306780524515370919547191874977856430579560964023622609033441114947554898058069549511759232162138518181449097597230266111752726194505782153215674960984993663011822842259536736138302715555448179176793394521387687511613909260026007055552559129250748676644093514916087673439371503286910229157744875794122974880705478345366388198283515200886419560891050065015539872170061580349364157601796271469879265473452376759157800050586329321867382145042733822784675455186468346285948690534830103237131413307108847226621975969590861201178476007794423546737304159856071032888650750356209606575863229483981246548910567627716803047212785409066782260137749541523279522787193157397649208347176389966232297087575681373919562901109735337445614745362850939829676678409467776011383353905159338372116792959238666647390669125751102616231913930310377242519580454318277347797307924671622762441636448979404166005205719710521632936364946921110710916032463648684729789360743136681173607152430485787257844997564133100640867873285139112248082200263912529431215287966885072540477803248774236217161994649757741333991088616799354360479253027480270139699628295573499636542749953600123122251853344793196548427098964804184750327233126282493648566775392168860145497696687873739452982765336078449051878282131337221675760355380966152622342787746054033663620110459667957036617280859656105679573946970460933116089451508544175173889998347388894721007262226439059667781921661769879278902539767765507981266019299289891612828667633532697995703876729615160144521060011591509222465245703700842186501811540234750800677273766784289011900057066155990858057922147690045999989683447890800952756705234120104447921119316959388417185363650103784634249575115282555830382741467859356451767062064944992809526010654328339011377024473775376767802354051680911100318625643358080767872250064041412389995541127725665243930764350006200407176272052249541673814331353626810179698323495036151006647993671893253319569797135950298697163472459931402641732112114979676808464262166602114493114090515834244015488029156285600202990605809741788904080196831781629320269906361829605337057135626303584987655964630480966359291788420332639794106871708803049971569087795917841298697377271721864630224714597112431127606033378984923721013299859368695337410479275623002687726295179739451697785951374532471951124566033008692151795798838403272792005278638835276061097183031218348779373186539603627926742025446939828160501163036880785956619598363279801384900398631587171004911781451940968963638214281659392831527074427503255688259062910343464400646050704482408701398526756659217883932701019427017655973933573651818799407142572593727249144396482802719247247519592791793667080572664420612088329819357496855097974927122426609796546539559283923292036568542952280101628676934482850884174148937459196759955996558678025651760442900607343501107565290649725645528998145944497976599928834013118455543149044442016322478873499420260270840260952728096634726482674624411964967885210258459436301104193441860764631092758251298517843893859907329807755041740764857253714089936469934409697943085875696897026212484467213290580068460369097916942149549300771646411364926268007921754456040763386354496929667321725078070881390166682391426891389179844306924816807911178146106496766460314889304217162745608432586819020469916931950668372664752960329052020837658444935649177240202414852766061716768991143442216636598217059059603762490641049311924022991864469314840640530064831290663916117570696326089505767390619741262753495349560087018923746964854589205394627014212790872221632545092832462261954102314711650426391911830261418240033712806489008068213831069035780808465421174371845860216402000706457061929316081466899044229583403050705832078455333011765712493822292189671353015080161820882201524539924890440317077034095057902149395506555672478019959896006864369349784134221853385412221951035970280352250206917593238864313408824551096846943368899325099268350112670709586302661395690082718556173704406914352480458605035694554592999614615533286699100472004297327990558775084122320107493611407345523359410229860594175041651750321315180713245142802572999356785362206312212373020876786098191818975452746824426537940423358039499844253060152174716766175909506012119306722217246488454660274556794952284572525478879682815215072516673974418220912240354003500579057490969654743046548124383933456483730575406949704149619039399471408500789168108150537702309573853695870733040085977083820516544270150077940450042213121279501634116058015331929941710791025610248666550901754426002252593315266011359859882042813703331810705104648319587164952884107680811584085456375697367065998894834283864821108802356818970193343434744450941883972476243909650113757645214023355097907536505707426762179709610971456249446138225362867100131766026293323265447406615780643002265705178495680119003033346790192228655825359139203208714383467480638527327052521099208197060964303049006325654144166828750196010441883721405361405604490628346636122476043056969501454388339954537966366062402221502017192231502151722066411460395807382918024284838730552110541939334893584404503938459866168774351282094430181458371988787005309721796918618336195760663981618426419986956386263959295110367385238264067915271283629074422850464284990715078045029905321886632332826709650552589520787442736692688874524123426259309815423170603364228845705293670645285482606604223543534454437666787474566288460693489959636447168880023403881874592298045580282318822139758504194702851242675667605716090381274662828615366373807029432327038100061124454500074995966315699692478309227248705787669862154161739381584656947314031898452696118712288816259648687028797576737334243826140832139828154686060487861216316940001196416520328570430880036116576606395806724351879420629350375051476196720806153441154662162793045684681592360445340998131965623756344131423762007075737905657757953191806799744061019216854500759202929389964563196504966402864742282009656136570516849056228665594930424705341805535924909186868269919912929321178061536894513898813958396714908817503781354499161032656186897373854697661398087569893308679329280017495881846303345987601106011302695650938957214210227659925694173344158886337286339569801657858455237528330745890232357418856566640634878119307352893903476993233394420278363579709303926472798767190472722771574213060901755034279968701469114536558538382786034015544429777129463103494784326913682731381113665310434004701431261879760889471599734331172518512816370172215720270917349997244792204866325443035281262585788361552981004674706378079559109194985364959796455696875860013638363943153748297515714817380198195918007517312052924779781917130477454549690262214956859031001535929678398313575183467913136176130797541619743558521161866335349034969166838707531782775450048713904377781409826436260227189451560075432415619946659728753334082792609126438243104210708488940902632933300542396514199105272481140398926686762770796645446392316989048159269029166957792081912137706295281764618948456725095443457615607651444487037094799233211623821882415922667528007937843155180608048602709218512364672637813177782595054262985693489041055277223995874043451216826805431608493112339776097912339268123222377326830585476493830929818941464483237164363044151664442497850218744871912231854476369251496438957489660922369889336493232494276047705423802244962905831013316473931861795414417737269057407483902841152848557079641538663330380576839105792625755000485009395705822878430452606088649604351326519393654028183439258982918820827237973982370853036860717401201407684469388308744707352523116776939872990680036521820394932038963767661665531677004709020033632086862207471691247508132564781862612411373009180072940093339618471555141512001800021516884588580044246453013204298567633642677741939224545559290832122977970733239121317405877981590076595307850558500892026097746795958743531992432759051094648179561146787389991387511524468719006309566335377758829499992732355825591762383261682020506694971277599732297668955250734965052045025887403926044882093384637372482945206199740244352136397645166131951161832574144921368913203995756137579818711872895228788493649959627137085670174018507213254956917089405497973716694409634596958633802886263743087104021379781845117148309579698635476568913330757953626667945150341232140907486265027713550318925146070201523541763649443804511275057606334681745929002221707422397751180584785003767003983139274017201542288402659243030949976347553126330054690112352702762109117189265763665410201612843194167276065445592790688982592103688735978203355518657138383827445029546177965968630076969854074856513512715581679664783868954765393380379811006692932197800405337549098942955409282117064998848553319149631437743859863283472199130868925301345071162871975057693353333655171705782805936916029852331010294788933788774734286426352223045405019403073209092702579605647746013594769544129865002160965723008828945963161083073706820966093082176880687470635435997778205382764687250150692078121295839999119401467924787924751865530573360073317710132879820802267432122786337750645180638704331517442497149051296964938895812108479231775574004425802373341603526967409408934931343460318911256171965511357182574168052698372350487870327975710728757046149735433717006490968792501111915458937624261317700557746582850688629688078537774683490696707771792039254256972694279326209832393024165281555644605870670150943627958407415257949585184236777033311235808195952505957307014723483851537832377576474892116070472673731060868748719982343671792746065595078041538165698177919663551566088603493796180911513766145518378105897682191195548136732176386720020503382675727812003477854328523508964551094410902085552996229920335430392624602644723572906092749563958227513002223379123454177353290782831055873433180300696694465747068390728440755079179968576829228667483263800276580693224822972536463918761816928707292723701627858282942850219158227801274224186137242454649269376635539341383090218734204368252445419125669184282192480255004482440337736398311478652926941861988831177224270203210397197627140234441927630161722368046638727333079604016653757059416893556728747145272055769906750523758994771604413262482542462881161248084992840220104457029058524251882792910048911661997829457923265229709598320087112403243679930518025732014601235008665112649750047636119683679698892449211522461396125672262809572487308893660563440514366865612245124984034026988173475159449305717647021571400092911477515376211382945524269553918094129726693001640397506782300051703705411727529481082124623143746448284846683905840774626409484583396438145233202058535566717834386833239064293694553174326593593409995967077885106529279206265702867291339656851507089214453477378015549331541848713131330043212320053824332166514904729435832601376366285044240519304791471247822556448096328644178189197057745841562969196466550145445565575020985730526554315822249800314822711887167938424624047282877668388139207157078410426357355375477344769286666414909102972722768426249830421557972528178407231748053939027208627325739307767653085254135024493030454706286276072367795636108859749044367294299681190390308915096044685866582029825859421378392086372329393723384264808964881852797731841771275044265172215793290591633045244381913963261952756658565279753060622318985891993566362732074708323749805140375394376710484793918320231089452058788273883423075993768582304531459928097713612070451409006669237702774700935628465792467622085884609110620585646071847410327360562007004555702325914220943355131359853781891022915461944283729879549778047099891499976504689451572358644833059205916315914271333110208265380767814946906580793750759557151178113665248349147367369759046076754465059318326741147471630098208162764091794952320359183474631733557837174845287711414226660281242231039499671676533429009753882776341451949738839470726514467317275951931257564197893236295358535104592353920214441417394645599008289905061920432130758666564710122503096245740219429151788673252880500610078954192284228369637031857421372370683761019575132504617154615690458903263290116762540731629763099424979829096356968547303733553932378067166556668448756938657090113093401506743202957036827914943389241601565291082169365560238949367329243000975166303814036083109094942365686665624031402085628888685451455342270976407303871134394032791796316738646416786896783026602503420615744012138314750375272952827153770156099175769842679460463826430086785211170907164389658921604364990090903121475915001545598155554885500009378707603259312356664931694909107247831409982125440592670837884308402876360106589003896113631869389523299781706791064325681987587959454871099854293063264701051152316976001010138995080277562596302105151866861332887335382469504683274888306759610983747108602123841415995321436689976499006699146456618564269685517219024075942741944409189136539105459624007855015785686894457932300264766951887394910435794062452351447174124977219034917680250793442369371442913354742764083693199671003296954542034929799290905900599483016624955217674217741672299097227214280668022072733025798422698230227714512829438629356494038166822415626524005135589139734691864704558348028102157602370926501477466456135102654786339342263965021691722914083286561022392186859547441151258138672898486422418894405481197241618580373624470114670545946442283431675355260151014599315242589220116664088583044390713801152999251647341455354296099256857637496721133492745905407632984751324400645348174076953029579711746500760819025556900702749920464085122355056205479144703639142952508976173238450764375627266155868786519490474986098638563217102615880672119661224703847258577953722763901134749230657636549828958811426179949238668595251185970508546127547277058307336688190990545734507663655814557435223870289235973713862541440149179713018177079570204907134718042586276464362617489662931159900531540147385799507946040668060508373945097321726062197089990655520585316453730025712203434310722065528919887104428800740295584409130064314178670188183117901952829764547409584342462213059741540292156755918515632051365562735865673050191774270901665853802661697277874391151223342169311594348942029987304864891868669894334928463437232245904146597587300904976324889738733595761531538337582575113936803679956939670032447113035677773865466102079737765879580321401897886527947284754045331272733154418576698793935276238981315759528078716111093847367702727056631487166862388759628017767735583372496518046480344055261193558499220565031153677435969065585693303715245693468274331932149184570044806024925001570869242732807589319645851758199952780639192796581537215239217890107699590786968992599951505978262222163120761874447117206305236319912818885043247590979272284123097769325272168208599775738212480482427021161442257509448155070560331222627615863805359278705518279066376111355805951904533569050021358254766517712395509779332144658436258137553268619785178010640172410906280837602071734968357665986534090158459547007187610012913710479756033148804315762906645770278707773485166746383630792063108256790221958841564712463520190764082132613160685691720605974173462272642051080676621449837484184198464357256555969484313556344890994643361758607830430101615333143690292287686808847345183451275078447677193267799361178134233254738330564748658794309482051281291914906474022985484016643529309466780236662076075403593822283569669303772515771164034742815055349046112470684226106582860522192396114360157713077817572914538654391880189168218124431725429785037607986195398786495081579280715692212897733086351435123690313924490210050297683789718668924885121658966321583897606210832491823866665150613075848801599861915355321689299943258402378657091323130446457733341199818487750633101828225391343222078539358244966344698672668860909762322654381402455889030908804006976077398608168370911932633028387392722446349662174320881940438211467829867775966144506453903747638582517216688829917995874949670243669954067418321616519941404198943336463082900925029659947648619922841802135462989247871329813430126146495016582210387278105432127278847678522949770097487973726431478802534183403528728598563563167052720485739480749334638680053516101304079512884541117138554996489554640454364350971168813883716205359339305817227320554654475160488634312808984392321369537058086352050750455881229178504938005775119435625501045885641830068335308294196569897217698392490400422570005873221527180100550087489094046684709170069049876333307832202499777986835391112012482553431159835313665537282098745128148218728332635229010560081639819861462874502556932265134419501451177372961545460060347946447558785453548434716471106942705827885226570565722086751718808447640030778663266291000764380746330077390420543342877064165332782585682894505722136733160008464258134201467151864779399587410453932467316530438385361643988462091385990457821213726189852193611983615909566063745477207986926046653288703857147913646836468998050766474553135543771144254906756887369005063086864589367865606811711590542853648024455316105442153306635489197553105167454744654669090114701214986660257245475605569928485212847395504677961215242396156018586101341087743946789875206556762817517593129797358244446700040798847959442498014135197116240996081997360400332890904844602520677466206104196445288892760080103391758996410486128849623560511086595229992854083631612527948772246850895189914596397049270648547551817508379341776431349810772839556278648238195083939277439563589172357374687709762116115319272550083332374528730252385706689185587838763112368808387144297883950286178299942524448298596202490560398945631218793741055228596039883911192211328653188983475347231125065932911832098762623239945741257258932661915981316755193742439665440597451365462634381119516480835084372101977107393710609958165160956956306147048673811647158515958897909391066791971913197542363826018971393782526542870678182867252379329108218145871696812922843293686859025483392574811760344276126923255723505312106320558592507126082206564956585379742664968223318083734903457302919228653371226214216386043950771786897757827003838387083032669823681884162590811644683143050888324375403593244218286065937759703566086827565302996576248432287224038258789757462350049920884566581718580281084643672138640326481364124124801076984108813657303401941470543727665973536045484065152295864163442486814944398559870556463526967783742693523142610113748622045897799824776159799312464377400606323329400642349763420800178164969181576125196637711269078522223212134556579056204423510310140589705716797468808805851472856784342165037285550289528958455183186507027592434733993820257117343933111273423165888679879192112073596259154474976943927627926820404954139428104929492630488723822748213973513803368183421714799331859304232467836782976346163912429963557973015374404211796399992174630638849692328077451447369168916378994257684391819109040200936722440641599806849131527777357809031029428544382541526959079548206055781555995777167902459910210400665435316219005241260847045718288290758338705933300932237196952768068102692024339423083788305789048661960102353632635893573158271976861111244141978655356517959965931999820378226721394543993825563106901905566742880644145631717010859228002623696447138810365956827769870981899230575059758015528468998936492292100831620658126704563428445743563906734424675259577433771981096231334638735269063925507960179501811180480801845192919561137669786025647414956999680701322483245506393662475212292410723373766087282729787587517027862873867979804317437759655966537177372970484902287086284388193854384890196818303557589110265502351109977630902770065247130991535138264568993251613960994837721176569280164843131603558496473249006622858831310983829324596466393822011504836795352034536113010300400239471911637932759466178281986405895117687619803737090863093104055292430032682702430990252185766735924703220018053489147858664859083641268541139795023894718056418587840474369086483364277670791818060452232855256999721485048144722708702912051014727684777710247612548849592499643472926580264754422984212255121035032037108077010099860781353370474302529719826987490670528680069967335400573956415224747023957370332892333151857135544617093986706227939095962809751216444217941089869462886328745687052843606613172562011872417105126444352503713806152436076708109493429305945558843614325745787364481583545415638903376084718971493777599519594035006035817091662911241311385788952030225069718969025288832641446362804088989147626360915168944907032550182440211581068227175144057067769860358567357413750200467271532821120127398646840899272978874101726039789999136179071681377271730409743026086035158746449813825441522529344491038971515942908355658960831416298046891168122229914287289316201022005766739720473290122630232708098210147123495740622719360634086560261694037666541013564387850188120587881096045190388668814189897003817816233590875766686854574448660348672633446969118029770353875651503142009695818106095803292807620812517907075839716120851454114189029449210886891342868576113035440794971712050225951155751575518190130783377012794917974158169065782302556703014023703611223829137940740340033945395799429878162463137216811165314105460497737172106298128688970163504314918397718127802231770518326175220048591334169382206075983432283590889260828343458535518400528500059225190508263190462917866645943069984191733164505893172446998379998207571857800876090987853505420479320884711692760650713714041515150487190674373242676766351958417817200068234387956534318434744373282377599802811438755180295380757295208830189015077823615558174869754131708552269575974504833727459174804608829052470290002405905190769147842504174721132991094375076907317680068020750762902378855929497614977065112066903890802446123713034423793083826500880196118908717186790883112030645612170737207821602718717948809121727340845914831493490242761467764248535103688316382549462766051482590264669253719234660743443239120679991710159346380865989736176793587536489084875379892182533303699229562451320108994311916440872367579134496512859315192636778640356326544237287855288546469217911751428702524328263742170984026426061722394259419616679626434106812920456520090609400056191281353391562394051875346163289622517688846666891458918853225012907528082872544424643670438434272601759299962805857260817842726407053986991008990343578837113732183835702103027386288160490576091613334786530586408695604835688209156117529477502950826710259191646158937109417274966875177762470590838654194596256969892850728172372425024692938495582951949694261687330657212001884367211650053562769215362022763273234258118887027090799390293352259012748110369058958158474330197890324434075676126479773592031860645071591907788312423847333269777417526055163765368668982476058814117787304976594227289421541927065817010738758377302794416988675879692481627638948260562955657018842706227050525772225020802239872406683803449084836431583410651285899128971949684371531918946463919962246256573928238865888867568943532365985709721885848831842455786737586219600657408476741614195681661234947015200484031264352450440633594920630672483497716388715949472032945600971951761786894557832961792822891501872220840825136644581220213710434295739200519235575435233063930504547255737254695996872293591620900582422100092521789838729970261231925161909717443220623528234905134150135349203802417266335359413574451757417696582398268994914535297857842356541087072314881962305215946445079867680141534093666059975808832590368270874544851872194585110289238393669267396122455790795804568592002027620948658226265162407775775860886327573010563058903854692864909354169743527724559352241017944182281008755808432617753914286202861814641792296045685310373822625190508611092866044879624863795599117701437213613990784784668497139379476678917311431300862960203174297004315493531412484148612125779859978235241326372071442623118564855692501794442281925457269019239166555552739750339557868048308922969230377828555541439388539134640106365198153797367634779370046034782190595240625112476522558976738310283126695641071807039070352825108155492306723103654983042042416961137459636631362886297452024257904009256072472298091075495253699607360299404535858497414572783553785914103094573544061254139438313215876064031771565714497998984500633815341058777860180725292681412216547866777863383774825721773579610273195387916233679039214257181526223356287109743580652985553375695530629658826497667483082134235438799616636189886692293217414357062829773347175448813425134857093025248983876403845155288808382309756608110619419504908555748859587218255562973295394913829014600163553693188960245648322728809401163506221789693168992542922638980614810388240404190423724314273508130079285014272534727550602194243436556078376806719334657666827208281890016689963485684331954169896169154057322071956424188092423013928122086678143123214027995900086813624685446719677782409177256179331457575700132309544744916077234674640701898877327034334595995239585866341570594488863828944643318683129051450348467481340220755651219578050130208949962292451157606751994173302422939508045876416585545303503679380666859932097526066094125565928345527548029320776916403849883184860270534571362341072633511110711245195539621214751810298989495842478216169579510245538406841911754433736367006564218089842128376161296647584097791991544469524342059855371256080358829052046819953611542975296946766735303015067358359953688417109721852555318931982580275179400735653340495735719152914822876001956995863869930705684979344479660862244071508493534096021782813201413015046027168620941900401788791511381522824714827910616156989756936432733389802718252796682736077383335233698166808316488752078159873075434234495572319337997196262838689256862265343937481124614463240102287844060022364310800424167316613822039869226117300608171192468997756656596692003448811671426718068288094575011578029014687144447896854813357805397578344750909841198375791550716896851095460205270222286096883684469850513072293866408003514005429204475831967033812702536567429422829312520802797819656116626057489174029391133036364637933865016329169048592311861323443292765364696426071828890666517843410913609175188306620040410901937004953693057262562962681744789617588225503084913154537963278530550143334277295751096829258418937909721407356847386008678199895155955122586844096254214566742243372601085355847134146069766024579930854100512514637145520658289861047659470976481243859268004713263399719672153159855876174997297202581157116078212003768771109995114853818332710013654780557092885595981136233791608555922165383511384389724193999014032447415638174321311396524777914732818653493989415658177067930382649499998800489743840067346652184947450200857583404160705855996183515005883501839269212484374777696609457692085018046524743147756225395032302632786689359613068502623944663078023086232456897046227472562901919540442655580078620148295288127337674374351634305857568886413027829360766772408627799158675561311179771084132468471105001300792480459511000635924254299879534220358626383722573655050063670657532160990106018975799384087593299603421058638498903359750590935900354343554717790760228150148127763357615756066267282365009855457286601864243196234022008908096809480505355746307656462376480055503776546955016042026739821339408799396693869892578603014678505791644217489201122997779575161194242307190759994394673601934957453982895539279326138633371156529012851047846506187226304942808237652137819420682570450374302432173980564387745554031720076313290381822337195737600311713501963280109252457278013173374535910430517036921033387704585040298819637891750403411409625240688440655580980061042003873439551893706800437149588884454235145317582151428134032764927593590043337928988431148932722718324989386916501995777700176395720104889081244141835963666450283950377798635940258630284920554880645622430232095406507562057847432181572715652723379735483603517030071715122705954594152113905770726691154312391057720363351368437355005339502164594535046814763094239869755307956525839726648719890344683998962326018990820425925801851246994429515002291121422021159873455552534369248337871040362723810065879188674918092837278633242768804427827329396091529975595729923728776543148092524993533698747808713632232251602329235987761908606591494960173409226617519182650265822968440770083650552956018614737323037439084305078671723129826258488772229838235165984652574218446737132267959325868558431537181608548176465916506190973152421874722324306697804136999936354093010109837484097513098076180144049258229903880494033054864913351285995567302452774123126550499702690780672814551727198062343975064519962565617181426075092984211186037032358053455819743840108156681390830718873652206565276313963676594999624466737368694710619326260369940055905950753496019600392820654066350095967186214305131472077122126421129108688799738888637656662664338639878909697879049801701696037162895465837129172496201349556939319356326901043859611833700332340608544885687950917109203209512114879818268936391000728688782655630364553611651298603833410884396873599371104226286967719727901512950686253225050503243833166908892561444633981906677025062407340471651984528087833900777990220957236952786054253344807113245929937853536275039015718115969007179477770395819734454906356214845342390473435502906829605379065644572133260135812408581747558805854294042873021362805596038762378633031862446311986052553818505590506168271076853323286097510319906215750507548545899235559023587782049105593744784164438676038519559310004511710078985985118888993586130185248119017530326102595940149502030330304697979326104315418600344275830187627102762240676965557657009789780236210972555789179366630345665892158552199377254817983606384154814112160417559922993226019302973782855216851262144632049984229519342470561491400484266873481567437227764529828736273032770368827133646151939071923486427051775527356393668770697084740638231681883197142269934979400534835138670332295768175478103681717071059665753933110314258636500452835834748715566200273588482406092965466538695676120916834524891366618439011957697279702131740506345730620862677598995882704372478745262142276582246876814998622475110441963662177642117228107695323644617507152281754831785463836816241744339763347175856037869848958848379805906869064961707767142204459196278172471861034039155388605214814857942543122493917186144227832013030079454744134720493612929411612589356723237777698103527933376607262899507249899216513058643290419539031547892397510399571367671208745077942060340636048713061189704504934706161068282953976463480246416716342925364972961144657351827572683742149804404943920282094310285473412101059436985987625493234097115505762838124201344506097522953873182495091189095163698672330705523556422754938589705663829861453663308536536367901204020425297392125959841933917861090147440118124407230963769645326083924201801835941757955664884851058956178845420496335500132114513496154064670373869808907223394921786703517546210148813384978105299242306075393120799674899240260851863623043099114833217466773845667827118108522781724690066718578663624138243774347980417604467230721825345042833401333397887079337702294585014013543497269302958858214506628036139862573934977415838684422316072017439767095937870613907437452907556727568521150471194198040636548276532831084867696367227071261594656140211405704595784755185560386790035988531546542494215856603560248750997445634202689098899069375942928376272212943684729253043286025044099061149909830415944143119361816638596986328627706234607186342051863338541860895422532587271790955297018731719266634094297995436615056027843227089884058235756151112856679196007861214571848641298671570201641399653811057342035326634106475308811554141418820372087701215803580142642293326220260178084900986998911325534599461012776148758617495944172629502411067909945924842264139131334299723867766412696554719710038660813305279183325697553907847321806539444429641350403111269382899692264334182051346757293425475805276957258163593370966519840044550402340727857638048600444199675002041098713555833449512318581524688377618315718414452867111258179804402116332248141255315217290019391749781079485692435732069493923981054820373125259551200620541798023049974200697558896727118308924365033306983229308578810056453121989502863930020549181470537593650059791328963367570308100084616535823348914059340675945617796580993760804479247345671729669269896715418274061215715727462761836778655809398810882619849453911343524150617738815630200423972272548294038393204138903928071065025408694379394702341038346800880158596071543187541725798063481462610526149497128192132660000459369075248511588280305931382282123874581481571960702991407553833097773901104237409251835451608075193850711336312127804033402163414159598457762334999930439071391633080906404249531050505580450384522191781885585527224508158901976224118117880294800937090730889888982884825085887321932858674163712987070524642254332930255581029619487103761494651664350583384993644678765652446151362660819809021757304584179893741142827763625662910264394936321997005630485407753262485930471342615081838431347666729439763562509113718591824165468821272970856592529821802587731265981728116795658680409824672885486838456603750218852361898233586873504429929481787906574359705183712436477012809855239375512206881567436473287425825969574851000767785289969814794893753461196414197833055250121508451712585402208079215064287371413670256476747684060436312137608765030100807756333439279472139971598332168972410471359577615704419537235119717424828722083814873917429631747267695754152910785712838211764634754239466866785475436085398718066558927255359230816013302692635841917023609908122763612050862002464499072632203602812355483067207801778233969230065610377813050881932473109052712981699190595840803799448367839248719381647010082124174992527203988812293275289266080394767078837348173270813296856010810041153133574422082745470280393912859919292175683944875277778717212020381128697250854059807331007628832415103984772894134685194370489255516572794451337541631591872935111974760887781816705269187412696663773573775068574142245750567334273833949062313271507282684300735073287124109494900120287870788457429348175026461511148597461753564630873669339378194167293151971892266786556233666923620539401539076660813121222433174809643698594215163561406219310760028366533938061401401932565998005721834252535002800865364972766059566886352071591798308330878697159565228082539184566154437490372364275733617062108959054777421888389706305266043379632601426604316174108482973778782510136129208668218564667817426737381562778066367987357267892210393869996440747176307592582459010709362949517210129008901784744311051177783993538046023831334338706460042062092518383721904429139071626042901099405909962697408520458637196862341219058988887978590799089937418380344926554310569481517825456798843320339471125418786249288041942079437942108098288770242066703178260277447099550863111307235119823868744040929538434796719011949153633251962236667458922330655817363241871178815914318541910794626061426272619125000938986334122965026674799618350805087647897905426179490427010948022138048973609487074562949929730581314448452410529856258903304347854526629443438945382301384093533517758587230648482550196812754545082314036564640071797597430794344581450129644858982446023540181800151543645185314936740452237675485448166319533452958753300578553048807108266604825487270858404262388333771765601156859789749364295106657981350929152784826167702433799863158189337844308357092554593536336233719728840079423334931353538899904359753816669679163913050033434096530079721765003581652128479164239929968981631169368264763696965856083814726332170906914149222550285487773127013750568579901728214551847744649599036430772712621875482951534459105890375900860671509615364336141150206543978673570823630387840100227653388057688435083041840261828196974670616426153465952732178226921214501284230010824785569221334388057768853279205346671470572438052684132849664660473826853934529371949883232478927656337673585493004830662192944893743468895959250712636721349847399041679021982352499793719976241649997396124565094912051684686210750261495593348081574538370093010925044356778377205630614327290379570927777557277148800786972469957328657029477825560247157370927774404160943367413784816276305131060070920680622668589095705096377388349214594002897361875611661834835842296469405217314432687017672998435691334785980620916528781940406960815162237384245795838108051923166206515089621955393211145880559014611873971499340157392740810486123981653396469404970804170181208608686396957695089822170218323453643522770952570949200470385461807991575482888964638976070701057158128917828081768084911309795906227520725834002445643596592243733308062905250212193725727711559397170259833596028797839824272662520477722780576342091266764390950330655689026406196360741232672901489946268244105227595458900002652350094899049321203198724232096012039855615337145773424887842759895624982190192537809525685831258337536142168101758978262925718499761806899437191218348895822721840086910485323873294768713094401741483160147376129725683874571643472152138825960510911544873837838587784336773555931549081244765031224121773370946585362290660296159556131480676911975710817754433873306978992067034726840940125151815030634592324347602821175170946762027754284056466245853533786839802392267468310200018535601811047566532677930611706653567150300014179776494550544383046818606703140129594360723100605499740401410997238239624535940254301059950648452818543201581621201091735684264771747825534364096596440009136289356849415677141323404640638078744894718927170997567804797353697041350438781946246815537632681241284443586698648369285547187198532192750712078779208678182815599451630711222387126934622545417446149295084684417233415822122677798419308585826767505322718169022438246239317198447489922274128663201538892114453252104967530301397216922149031567668870190514244892645541643668964742738718679268103236053063337585132876898843592991050769774066136106224002829090102798497675901961007361360028482819781870256407352362072371721552503345518646741304364194781523891174247005362394107523971756496244016252168959896675467279312621051233762558875300301833133173645249509822349392545913870523072970548051286380811713528843317837789667592933107312739453067238681708433355952008979707066803139307921061999636794600325208073517429077911390325284722813068080553804762511619092764646491495450924176183854300267240536620478714763321182624037317812925435154470867107155161401082428490340647540273612886910077842252316051887565492441696508023381939958146880958820520933355836028790016914881582000853135008617748279099262930717957329582754113553712921105892096961597232875626879915464221452099030910685185812042112895956576569231024649513298774288409689761357328354481500590179825085674668303356649310682589862746180587640200560817646056105894901697504941334940687638400886155489005962087510329801488560634404450157507520759850132296407859668660232497487371434733254477549319952435971936707931241033178404496167504649089528478767576758187807261132831017418926629371396934066508148141340266958921407076186461560883460656909147495175624980706957525655469184860549207544202865029343756839488273203811803029934049824073755017779448367530112618835963129909517695783138361397638666926694987818399413802745999844067513913990193219281589470244494274523044958617828843087056550489869823302658301682684116714345587753673113239691815299589015616210455987931199753642183841116048148404948276899237284813371823599489501903309480781733493980670107836994971380796924075848235148991000309077232004039606359058963210812935004317632578337924915164813704322479734460178441846799556264615876301373462699660650532422873189829208918655361773003513135739824115755325527142345134899967278545371273900507172232090757923368831471271385937181596320215251921099208714100509549043940016567886679910331005964142720127785341282366184676263517373694039169026938733098183228574797519966880566477405350051177962343356170496492309621124962837541956147255008267904917703190558385424626942923517003581994599881186047405307752146309231998907775843029407558015906767859660532434564298579863920971756970314747166613778880911022731786384216831905719359178135654612201434720351858697624838823873680614085878304242783225416035620577483530309517813192718101965112035157938362814466922534031277706669558412215717153128767545637942139934998850967214718569044170660681336652107451771686262878208509320156823223048972174068455444914629908078249868247965298143228605295825132526514083746826408453155371470173568811530608461035014498314684517412738922415613270741494496302952018980400158909349028451591169610482380737044767037806871809659655468764978236785159320427374815558995468019328038992045981290002221609924072203842836850480006324420461258435820488973680786422105176932663747663283870049785050420920527060399162197211633659836696840107758267751117421238235670308577579288874594131821663352147662362361694822283841676132370915681873861520427524177174090377462059783190930134647823230369829279444750286009706565130289718039652899293815603744994923429388197807870110920566104796715919585923586288080706497359284819213275869065323223920677132575198274896855691474053123261265125000445913944604076970886366873188127743411274653271073912299417084574237036997025584946361239105162938085954427363115255686953450378080026004460224599568436658687702301231991391585501592242405560238555060159357900049600627043678945312609136051478317274191710318263502034433603926954686032969850317596463341672637988639444623965540221378260682630152642417503134175440995959226136477053538840281918186437007259719142788376479496016372996835007200729915910398112203542246077934988336125493807561652503898057000467707377570411227364048412682988400523610002834292651110973444288217926768924162069461423132367235699309125867359412394459147855381078883035038604391463928554996299824214114568316700362596810478839822557503695759183386615612229572799167731988324221802933757624631866883880949734789752971779976400871504388851157670153626348898815886515914621710646452673204909378594597649965658736704922063039599536828049113402700520464462172548329780304986952240525022868002312035330949169309770846820340967613458699355035368756590219915417780320283221823225429822509417345882623972492765774633839777767229939817868751064971589918728602709997985290138487290349310181072840368980516326120090616347577698501862258673806854718173129919175944556315067503118470668386015017596267286708063234514671378194368884157719956832985443509695015030096389383918019379776743996931110303139511884256570431834421540768780675910409634998781537534652981968131851827208682321190905173840487690162272574927343114305562762419335200486188660608589592905521882800687183067090109630477584194982163172017811355427969412974234732044128126490964416752490814490059975966065811509855144902378063070422183474497998405278595510034817946076972869656312220491311204401959993733145442973881220908315065549840277232959608870502070322995375990363756151143796658834834431902015200494463778931357953327944195319190836716725823946101341473584560564761677099881722856793560032348708213406334012810009197905075566696138941506461842913769995111672613074120589573089764544542239433278627452319950703177594004507336929759764719133967499352106548395752260301450057351597700276384740606659038691147791889419973077015853250069412796178854744720782420723815277671085874729185816602605434067058493990390116221034185809016367927704878437276524841818103772965467690408310865161440203743071801615090709986842514328119255672992532279290136630670522880309677772336520184750117933482390866723550702584278160538331203300100419112565747055179638726247653204854583777941057906833141178265819808324086175267759096009181019296789767084721577107814375205483183177568864178330579569536863115395777355157923998252581173625229210028154333098602798627279694145584477185571431167811303603090237932053363110406170205061905915103217215032926220186098199878920894120080666388663402280126610756316036600176182484451365116032140372712443920517658809751921434974319483845053183540341534403176291514547078903806121987370665991974223869266926554578288276304867950369401948894363241227817860906171076627010543917492346932521870465166157707200994482078838116547665616926297685261953852681474315754951761318298261047526622080122594714414430434072915098045209752097361449801749799937558732936879201370390062752489702628329960849929697401854453366285236871912169496230793272579107524780146797293013742916310204187205724736533623440781741648674060111959247447148086963182809332541392822092447718307406148623222791399656095725559656312460140396400416912936858969798548931791907991112563227908918241900945465893830265371087817555244631360849310577513489203524072036120136291462103532269955891298372189463846618149245147398974144466346079142626870162174206355556436003224269195857174169309723015731690453420926323282710132099332183535990263000403390522928200236603819468863559060939302827015148019933419924492823095485376266200026372101283912599298534018420867034962511353935526718646458044822773004407217012193861849123127833230935573777433370925290143386053313763466758497561036883072212361588422999786357866489350030579658152753218329136189493556372469983951036373457911621186136470030930044889766630726388363915654509640271335917869646033468073402167917434894444719972477579201251413207379423247360803940024052638922787495581192007466534916009578447525437768375335794928184386959769549493473240312231625802766028109355034402927334107693207561200579770706074717055192289629752835665743143508700672119870550843036230181181194440699746880127221171143706347253545881189778738195871228280865951909742601823736909929471112274876090477266021410903014290146205206719170504619123330490646299294863519878060170693332810129030097597529764426290806692909998186033301796958447191663529031499696660165815217734557097263408066280245326163870131468482687539238718674828989431349978847918863750748775769858839030527906228388132978808117667560838643743882014103650017775251601269662364786520498197992351312397583178069408029905503137531678270231176725387851831516710627225225822704824119957521044917340418446741742052678735218296731760561749191720655593921311120680687139492614964844709146489111110941577643363452292678682697895793572366365900366203475966034923412050667904349224044135687051217519015874937064384141417545108401983842155702889280349514168805663756030228454789704461869553346583714479202478977610222199294163143159600813089706676242944011744091675406131033476459822064077685889586772172910780553004978109316111225311625198990103445357821684773607002742617344757500339780047372712425179451618135924074530498785561371578661244540430347702198958622399023918364026975255801027562712585716439194237006015536183127648845821196338240941628476665178449025458655205126458512285080807697854584996533114178870503294870362117589637152915143949178899374937721684622015550207714799592680833376967368505016549567348973863715904873716893982896492050391044090398731904489167255229108919697942904085810477626977308537387829858346616260531950101999499475174137502696069685683848592166603997210115427259046140713456546094796534527823803366980556059152857242984097199876303086147122323198946203730343511619778346640184646663415048034224173485210196222676383099888289595319654560314427661283639905184065973672517375128204497310647390281527944089661952960779695275751454884497833968430326986585526747597705125000611017266084353995867364495777397888678714844422473317343783362669505518147060206800842240732692973306873699697020724235694720235320154515671025480438501615238278544151653904159914037874686390163698073372582566786429734047697410734878136475005618778387587156865417213155225820424117570565458598858872709364428360418794279825776184008173219577831761891404443716147800486430174445986881982305149334573399286063692708051972459212224614990498422226045389946274379957965683014008251402762483814217404749411929730762523117382637782175866978377040800611230861252875794250048802158736041198619206572402874710104105684071314613979452227011386742832622867537021766838742544614697603060057556050154911294471189580331513147526661405928543905215767238978510567725794615009924241876666787929195250468606468678974884602874702223814860951463943649836484718747129217163036522548772155054926554215616048562410056745692171398651488984942140124492844220055436385464299561290952248669649222750679645231751309606366460235799575719403574384532412835806867802136512455097699579306404310206342709883526108929533025952592167011479707888714023114532542028500782315038400021125813146792771545150658267856480496099279192336341468907613860476292850773183017980710806210918744768483416984475348645952174086469033368797198545101541162361849961687913954968398173793788797509580139991137060319089117305663025588681955040712439750173837304818463075743471436784241249866766165826960468564451027002418421965557241918550405457099907320950849487433078526522281429394744539522739013232664165800297671666511071459770266407760579120501515347072439394189088093611298446147768421718135114044572190825784410428138569563277422165683045704858749063073119025876104657857978165241571995220509458807454376510468137377096011479964363481004440394519326503364180177026044267963795371754642182880480370199248375531677551140098538385493180479255837204738454998418374157900544422078719953618157066526159358219258822254691574740730677035038378437745273420407093397339729282590280908647503011267930581651303407794153835449771875904510891517143174049613213723192547644933686554861454431250718670732400543819332496429054022673091743234221227703528235147982534570542847528513044882935252109661251547598234807660205043665311373831452511130794687773824203902338982163033575498726758671970757101525940690291957530621077543592462925456369469371266692583948418726281551803460413777443226272001549316942094901505817351656441537161873100137711889448093228927162215830257468161412265224795482851869553771660230569094042804533206214018465848246186872499337852561391851053184853212175952310951723477231632312787483277249733550128612895947262148898213461767456056243732947997394217821500459321823226182919979288215517203072554572782388975052668541404411774852494958045193698185910778491067094846017825296540807904332795369197092945612128307638233999287111435144117675516119691998001654961119298960492046851390313082694096125831001751215008781079917577296464760751020218847147393709013261894584379460561015876489714885341233277696787317792042110291835539677485503090979129849407083160742904474074449918405960995253058789307667375775477632242084927645680406880511408455575034784826475982373317415020209554583749107758648861134968046581757233680818767859449396631896846858741110862239105417651886701788238572169063937387320147304907815877871228654208308722556975898069675289342652717697141839142083401409099022367983473600611716922639521446356825395516606814889185316295655919236753611567645667267516853020681977399526491563965586908813433334363019261201078046027306662356658271604664398086334983381105875031624964798330448051140189630444629508951067523051750376799222577688466454448264612310084760412931407219358408288134815179368503820099472892265105410014255082051663813345546385273773908267566429588159140303943289105346667930947605393117257595568667984911547673765959632572413278692402762958426323265638503550730461338033519258964379029356891947059843352582511260140389031032273873764843931559419604459080806607019150747432873058358830667158076251626511613945539258411066485503437677062364045155988977653975918079540256015988658374536343402165021790508532915700164526535507028403592648037454859594967880165227651330248901687614181970834332215094187317675299534945574106891676269830833635987962833951950181315442085956254628533002869844159658017124613042694817743847987261611107851498303626587449015641627420756166628859530505435932354791627695525660761383618875121500421185283137991380291471940577108654682885171163142257913630842978913639419354524282284925561884313024277490277008963782474562795646858648187128549914020762905741105406810031090592271283707782668065484353705028405052539627985416164787856973590997114357409852558270901095865284589251823323388471820612103699443530720577381919436494845831179328141915763963071188044098995065332965636611640984732120330487474478254182031452925676889090578611186629084754085962471258971228605751860892752178700593962240459158243105689259712535837049268900462548371857943260506675558388254144635410444763817935675737906308637756852249274060617559974367106560306257074164823188441784625201040805534303076002327923895618720780050240849301817775645300358067786647523707071455216754186864378187687463353026302476912742588838857998399595014409905987215869778460555886849145594771606500626231263444878218957580753985125436060083204285612736257396475761110726529431453124398874002741544521098575597774972786657717701570509849127035752407591302925840668719698617870483514573489900183639314237269712329367632405204736749224778702004399349286544359469112632227441032128387938613455701673293026558461951710924621887784988346287883556141148866307711186756324104128951192126222122717468167539218462798004378639666901677009041275700664626110844122685479921064403941160522112253197761715505531810026285214935354977489178124485658716731298450683977977092423162349008046860080137544047618694009908423261174274531470485346850867046425527683071957597055669533261865587327247135452374528493373969011858893308677181280459558896501882850997728068172302069097123867224692321001080915034483824426337734543947123804025688093092484340936699102223906126008746438364677803688438863408275905919996296804036082139647140718047992258751397830014462063129054635695059939733453707338839406323589773904674379375177026003168300108947335466791986745073768388459086453100876774009577031947190236644771595983561748479740823599369523461678268313074444048242306747693385365637581050956162646779809443710232680712668662500872186695690420699577771808438773993624013058187121056366126529199451627958929302878402584326771798018355641822319533238344931586611977066349755187993758563715993916966497030149361153966644012925081069491603272373929937463715820798136819797749619248786662899210892583475882462599870415040493369267519006488135680323817722412029170226430680333805151471120555110338432037412799092653561026556169714622579715257363476459149745461498009405686723563837945745990232589538093813300491688023034884258803990626864112609637564090045400588325295518429474076160973946526229460235049752375783415488097841643248764732745863041127643091768569772647434970739888246848593982309959993904432781288194020043215718749307431990261093258603786539306058337498312892285675056738947121461000588014856469209450381860678545304386020188342444637429526739672621281300179993816457116224338235458789085133340363561260186175681678552730701449166470338233080445117189329270062640284454573924166811052666831772517531630719486306738918768762367860348893476381371900425191207768242614494271559576951674368098662884423811265938979370885992159468375104115710900569883093758433741986062095310921984821380893037787599950320902475049648018300685725847064872519984120846530470464054543546174090220673599406419195770793214472721101239631111829792793369678355387002886581714357455245615056164018294215044165733427503260962025120794141284791191913735713036470364914707817081899391159459010099907848077137454961954338299514822870180195086393148563244320451527726661788604940704135124742309824891428160488802759188448403060736167386894435130997104107751224147719267547099890065325548617448192884807945669735400031081616380089403720697939657974584643757891895482055024920580803472615420531510420960454645965611766328697958809739464055406077041622891786443355650159721076820947500434219165047423271262991168401885725569031961939261825174281170394903593881628888659834057678659882655227904584748011902238806397459321308627062103536732305470760991318384560669876352589071406550131414034978452872320326797742921421509486455214412961150269664213128751059590006360577758134899369673770959791890021061649103038553931797011406973064084908909671047537656290104400371643311803257121971019579157675263435770922307892080649191806212119094051649951588718000456927619264505884418575544732253702105999492443443609882572315084687165863413472159651526958127721746467223321719512642338254459234259010442473941373937805104944451615969326789645857481081724458013433433514703907136746548017992508700808924296674061840164503539059421229523858711524357520310998220473373147462434717079243431528720107974129587269945334763460987876649700429044352369587512175456832398556210191591408101931682784734050929976659475311353077422384561325975712483941376926438060703635856686368663029625599712993554369863936379687478364397080704261969733562658986110835028219028414127594946274552457815838899334311362316516629533626108477334460551190323258597952222834822567342275233922515313060066318795626377665010343716269380830771353669613503618113437424267794809859131710336127303736709630756718081928912574384179120509149780039634370697479470349848474759534802612276832640519417863008405547536179615993786117857246395726993472313887280507386908915641370744689386192118388589181823956562780198381225056006240346777589276660238972005360253240719518282597349774455263943730679821371358866500932730527753141932745269952003180520515635957838506754789390200718512471284105535803198107198659458432903069367620675496120874929630354385839762551728673676100999457247014746419924863392241223732245854235825119077980354411799795751723923185959096322556717627297927997643447137813224780585657790353161187989275013176580033693236227552575792007744839018969730338839999797028386126705557628642165260657180725686548068301858566539899765818371285129275458686160573505752507271248716419456068382280261447306768894157686079056499673407938940180641681016271429748540753867387065488839829619851855215126976352008563020614882933282000214347494039331664910204747643313881621527019722751322476600418965529218466733464541140391479142514501880697619327363943337054472372145844218798204845780828851219658142830995613426677321422955372900344314768480096339945479873511189641400009452579152958102856316423542327076703900768939150128548833608792218603225497080547025105159017476450546641281028816928004958965527279723868390200536761201825196225552292185054687815428791314704257584442402922193507787183960475097320397978313385462593189930946898265465994256934060248331688910099852668366283622869455765724087798772348369648276805647930031434704477071632330309135869480364111699229630182750361499059585792032775811824140886701405851398402015991747494310403967770323048699949181043864866332246553025292787799734347148133197544043761936639501253035561666108848251917830962685873207747149250461772911980355544480392681896040061002119639246468134707546520683873747894239903130316091700929522897704449985218643179823484364780300371191672084425175666093307578875183793449799819358716651479433115938936080752262324776668411229896911365665181470891437558784582553677452000732020420349020804329070327815417121880574293853293741955637641531729585680042761975670476167266731145090728463718471814025927298388857366815240169440791167562192858496578727456199583147218910592532591266986947144442268542839094715023162412520877280105101498744871511450221284909881192474355485460129403001266478316859006513402670569522265652685160453725857161052947895332418641658925992910597801507068788745071052001503656051879086287441771919544036805579615239785334281357895695485423953515621558892283630713950832959501391938265031365287392525661310288954951986369651413044900435964702136983936517106055896400719664167461118892354779379662244919856256806357028795699259022609416949619957829766159671621660085110828010659467917428862423159686397798863981837411117417932136675667051315200045950248571052063162757172300284697767388474179414211724023452373610465827076317294112145387010302763467977620589407234058732252850100967501266004256900786906466525603704242357980998052524694496764107448416580217938043113109353728104155071947838705316492050943165453363270560040203076088138806636876631924811122185012799585769919145243713592945587909397341591482604884643112170697518932917238770591326657333068099185305379929821283047264168211376841584422061240713932585168375581227078381690893563478024664532427909044773014166205035645096936865962307744485315977480951638276804248176171284324841250246107947880724081971835763620255137045148936860003949603947128819404538288091665819421165637976445665107552463667777811839493714248026115726282726804029901011323089078746610006717214441940021226724289668334166171993325553709102941954435241287740642669123768739989974470729009394852056264874183873936198680325013018131354106720438441638999717693209222629233774809790437827106681844060666951347605682975848894325575642613659563827505211891461984984272230166421899329731002100816473604309642807660748529800261386818712598663460917404536672975107384936064468552663579195567239524620061091458806769348666541154530120391909375447909525130928039377111099808639776744891062455530188255080849380306879116700554105333987295005900304318410219423926785757425341506358589929652868903919544272204697890990192330439622099402851621860486631074228660425540765959967943284433421729901986249522585451923451104324031711954101646062901059609308586654636150200448855691576823731962703491458218763642845753328554370030927064149459045312029357749099231243918181117791898274631970453562742142400242758361618865829656506365826615191945887754011831162793689385187157237245842544881982315521092683703086401814646872680258738794471771790680775192997158321115782068141658840624275595969593309568175188651771705245403418751694725297575864130914552404467467708511274995447883933851005165237283224968608534730404793939588964689944430631474020411665853083227656763129199348816867189933357388659004422733148553631643805105223461328098539499561570519303477678096901010538076961819196482325533769007405931084995820713471998887178780664163489915561621977176932043268821724069351883780764285594351029975320806220509717931396554877088771144112247230254081881630851829977436698969968466910432236405979368749714585706018037237069626776872480773912638156341709655205169069351614230736310780616756124993122255146974748571124397732338112774469048139751647246374003269654491011089825307572147562599330901260238555567422750433754861567347268060897526088580854749387837002256846900438031476752984150022084838368834188841064669789332042912366049475501801398596095809491133177549131874691989686370029941807073074702407289463879509451644947788301708194335509277737445325609264912426996909951294907600270069679160174862054739191131190860570167468511654162176702093141762420952982436115148394696184071002805093411145345407848497945116253744227358618335282896373963765975538791367728258074087172027105316785306406548521003070087573453469592036276982289195122318105728856760387556138177370229800490564350972811317653028885059802928965484403995357129124067781998923173494916152301394853441715126764391038482090681690800642576635518906956320721633921912294703408811477610216047898257403832040470119177887714765417643969475193306022240882432750149445565298103590113351733226125302068779131870022623727868844923299237343390674882751630692574568847897221740291780059006514012279673926318160869164869467199151329491475484753236193150635499265059895391134157687676297756471867394911332019481315431656480055165936350645109485845647803961221846649342084034757753135176402399649345106590902060440181664409683844690602852106242033101357286061272630837678211259308156646469272850908421483504551570615052481383858843138633375648278088727981263014423678729387455294422377649053643056062351083599096369545777050469667332670302140690977322185038368002345959411370453212163856058458911201310094500946283447490585151824562036512578020595267294699800931145118215894018705585849835934738827045303331538024910846874175120342137689372678478622722646216877691619623603781337075711763958751549057356739886177140196625409521317306622021501868791542120567183394664472389631553332731297053238830995044170949778186992534448622593580357910279133549901801020208007603652944530107220703749613350219753473649007421426096048356992564461557271933380312155476683968846538221548676023766812074113802572659864281306010112477897082881787242683591991994907157887227684820805906147789196952789202268902038754549500139340470658861838803445719383832349576506191124291932255744783720870585195554366235730257219726269648776427967336250413044655945191374026489991341317241898740234785255858278028365825868627867327544092647463953170895107382604845987545152001007932229913337232367582179513224720446262284584600930682783130932658742230287246496260220982517937944948231715366266871412078239485339130979543715481840494728117382800918318904328027127815495921974714805244255328298297054505240668573781412306114031209918490778891666287989081741790725532810963688312495429844378271238143247417982051833388599076607028363051110165760519839362832228548404354560254963330837922311842991605266077962600710388008549526896348755584459367935938880146261494316732258530781520039127953899436123680337578557114936554089385039380149139379928712061511532633516275928292823485376445568573742700038951976096830194733526514821281863466417730154526228543295143765647297395836549601672391974524740867264796547905288870080792647778915566505354421301711351725888488455745244991720229196088009495308706063007111257724006179564972080428570360273037607667467368201040363159931193678675246162664106976732421620786170203262220391976184462011773863622474309558775910728043981068432586648060387801423674487179710975431925242285280622301401864691807850395770189983803051839591548692369585609876713379694219650673609860756880430587656130913287222948737845509834522411060417202619527271201021899102181898244216583421896802235773447262164724178747584087632568652137218209511289682895157184405626713869215991166222983489505354490418979409632996895379971234411236826087773538383390644914991825645611285018695151942955952558754729102241180673336789790175954350816210630406765612257528705249097402794245278235300792983328319857331415957574704173843068504837959737431689862487452437027222820875194576188838522186837441842661390612937989783570599841216216812933253567767445838506029954944013506253860942345559945822860972821486885424242182349396406614976193028082684708461049233065828565870336938072780142335404056301726772765304210673746819812211808128340891892944440550646945135648352690899319297921327423929787259326329173509534795257490471163100729900189938373670278608745751950567058385915794915966625920995562615949469961333437571363670863124268654010193303477423653969832015865283187070281911224958694990321988211166455452123129917462274947765479764492056623558772982555196496158427921429953262280080686439381706641445513115077218641856677611439410155864096238199659493055168503254058566663280184524892649890390562514127872565004257383361466314292948250861184261599998295904414252289373633334700689178614031868166616734601135748355955376299170581826328197043271095363216894689731879825270132530151395728233914986438329834520955495081493087520579849038181026158252020360202194184670596361755948035306542705675394556397474821470228202286100796648621674571361158298370621455141066769760795895485728273824152199433525317231074717741128104553986108213510602069040322554086856470618125103077201382039051075773538303020717706518680055827946196461950025001278930843391245342855630954851528477196808609503861526100647844786937923830533800794670376794214101950019128680077763729117170748648906723991442469352548137713727733401512039576214563823070926648424055396508537802073563415433058855747077583102012493684919738407218102517827002475736109201735648027953748875268867431052697355031102308084376915602293184009379818204861969219058807026655058202844843764464804486011165470496832273385867053898149485095826318205273610161337899263954363472117106328194558589224725300386939668253599280293281699870974283906986909520607434351426266054881798326351570832121530444801046281743547812049931084976731325577993710018727182845881915979019260139362653159020968740252328522608001370816260815610788930734844728361282969640549562230944066380465356871099709958780374155374652688803801419256126095195287942749954582807038292777115753386477732832697496069545890812485948860255434618550607178296687177633536846831233593289790633765419461194545542442486819719910520407293804320963286543521055636118243554840947097068186370171745178340462045264687906751410197028910068729538609633578997102622594102645847678075325953506005037772503841354879675909690934041964366759747387895234358337094174893250039499401438435257990788319687040085617949698497097443457630642771615065432571581639480397068891282361425435707807854221133336925685314668771581683170014697427076780926664711756295205836729218157489105716680043861423616897807560961065651961893579752727231518830652126509057787882397822695667213188913608350666601568961846377580882568163561873680151812863090031711642886666384031176237926624440595623740539595923465884866317070759764196324503749312339361429361634352243214588866539845647855888006424349969922703253189043093290959426280158836932376758338650183871639512169045752304517702646619370230022021080851773390393636705388124672488744147962473740566563794637068670214009476416693632144390270993434693449411469942547236897855800546249155076604697824128449810674326224296565813922083609211708396816503393867788616560156871592892334948314437127018701983704025044397361680347256302051229560510461997308671735784616607302949472777697841105925099395172248853063720543952886827247700341386069784960885853500256360648526354542566147108943857935572816866103820944207972762424102328257563365131261384732866582633352573463102907664378214217289304231039070719758153488482672170573276588734028051584803943069941934516153232032821555863926923238884047826202715374999441777869828852431463023434145475971511942275231722370293996145561651582318261107780333932346650337724633279110120059706210181272507529733362752207470763677194899376982123949392522866180281242642663672296044005049271594563270986126358274838126652660032838668046213308822385897622301118049725257751927056268855749571411578374988863509884876005894207154718311170756916767821287463654125004137803033155891388793144377983117473273224149444395297543364486076306240096127869710248399870074210237794277433619311330761689997770550065646583831059905750357977187793689716570932097237189448982150146777255295004131894340655474691119051916911579010050778183913742168392535730948476251383274138650039785520223637524059977072019635763401317865504041796807816487239573406084368081692288213203431157748702066367686948395413697658801681973691998966200670377125661248343186244373059463868036454780337826741727113462783530908386848714508982910442154857451711022753689781071808474186899303962507829916574948998584546762258960583291224381438331662685773817382456343432554611746896461203983306701800425027593256554151265749594944321676743174203552482152526311194385591902569099497479281182865797320429492541937816016365808816898122511904580628234149900964134321044360085157828494430781367376978674291878712208774833205919444079965375235285644707946707773347196383389922822843285666409117741731781888848070920492215384986154851974539361212904971220766290738637077661076542000863054134252387483308949167334909032268259402515331806641219893109402635680663095638178561882059202234127877299330694049276394951004207575644103493045338041069326498796528603405320417500870025938361284380189763796809361081617755315368897332196725516410397726427100452415051405531792681804129799375614044835259599222483580837420706583160176724769689339519628937911172175207968804943035547992401088315903865181976329544794944752022972792618794996673124306114461705936168325613549402152314365081559407165013838964617821509609679505931908870907894070069195024192190042866708184631708077078382381003366412544800737847934253423781576209449364829507365737155636191714017719367840389036527231007150638102426522413102091803771598832062518758646228106838737607483448418102946114766434227451931877573490905244074703204537155478211299919478126209997063332184899677825437089495186482583260316532536485207643956151811066175337782156871764437747299779650418740763664999831761531449290578602721194159912914628414288821400325770793930466712731594118774431862184952012110134210211760938872511161844508852284248027954962308748753019251724697604577973936442949593795740317289156724302931374447991750510713685141508316528669487037430513363020289697336219388021217136681148134518075160005361639580773383371609211962863704988400987889473810590306662587255850627876277831846366560743732648923450191532309789332587695073904343287377060934194983748628278749683740133389511727800470141649402758602552808427744881927484224558567592771208147011073025242509993958317667079301860304211587055839610046590531555450441726031830286438815881825058082897107328746092981569913037293522539808431770025876126487410099473809558198665321328040923885508660451304938979847600294951058248987372385537964821368405678599424904849814987642550270937229269475767039256184649748806561372203886079461711801480185342138251767921170395776282844821920671522405396620651789234096627144243474637004322529391160476705815628473464863613945784912135205720510636487844688755200119319009507089564955025249574482005525858747606844580103706320268903168700804085550964725162816564632150042561293840300250109588620520423514239737602409252132934326106443464214405230770976491010507540848634658925105718170358384396773362674437384509818009771206552056716383050763992878796694590676006992269362917433137751771821939434674401356953413492012121483032173849712131907976041794262097086043476623145139397284381736236676705962829674882546335835855181659030443099799684445093198921734010025146254927954774532163928909031090873667802575107561370338923949855669326226576103116084505191964147654214419022067452647603138909551829346355481757726488137323575193795485224585064979668911241562633737902742633912578552803473408068497249562533889122199695462943338828378895328437724660632785881693237910502137557114376051671586023042481640217332243453090704295511881606010947392611086881498377662374450280684180281089961533092114596057901357347673627691460443751842656400713143929772728670112288324508013482038321153171138857158496319872588492559655253199260907963855681323152583314035821181113936458424926314653317225431378432393383884029012181853429857480822971815903488350950170509701521465553274101747360247369623230548609066890593237463306174611923348111060836941391274112368787874650678927942011107795601231750834837135109223024418377787024625953615590521915510579947577626491789666595320889100553729491922694111521635615136274337718521846017766631057242815873269811887608605958448298158521641553347454143950715011927364425907190976144051642381724716061778281107417404799339516537464246060041547962849037655419212657093693374128720978215124850901202295113349064403196291048141135706928810584116829535619248935304927504926375727402207882290715431534938790679162273241442922007964519123197000453794438552371153025707938834915042510757358157669274392321540337761413323826652638754325790877407953360012503947851772615287904271212366287068504802926562972529996192746294856793799115906951898680544028743939684378259409815631096772632939954137443660689547976856281782243660393949258414942587149423504104159502580008739773314951076195501808431915680489118204330162373717561325291939168442094195513159973977750493804068401201884745411633181426885845373792981805268660702858767083787473953997760104881803555353422441276464174530220009243209781039806921585742630578923457512131319119582809567091124367571259273085822677444760055921067465174349408987213394450081900086143258870276804395557382385832758209135268963880553581750035323610133834072858251446175087175636762212318263381007409551220059015193204856040443451922853797915206323204618992274520945128947896011518303515472770082237196328184654757639454665007983898164525738622140505794511609936864610353054987780972082424747752183399072384886842028841748619932793718751829382603684050586398164551837146540228148508921379374863134820888862627098652792875559217305144983587483996361917806915554045059377840892672138903708487614623282088280386391169492285512427539325463501344931825903736512946252184027248298999106313875661562826909660996204227075803924599038449788253828206463371372599496696178505376492688192782686806269012183658250031248209682275008171246653008053116289462894854875134488097257544573928977509320768841902812992247922333831249694348165572645608909399136462756348189561990128327184523062333748843706018865785501424013042367482082545129661759205388850037240631930615791782256018961365367752089218521094942833137155275301299306838258272212218538203173538896469943131202620607681630686507372052251317209959244954432381629792512513780167712941584338976966790986119889163880864697160855007726422387777749507290214844972491816150656443835616117393339573863683813776681817893365063298542674063016126176141387015758910863420540800150857897881195555701446865671686417635197899104935838006113251842064481575769336247161833678718376805232121554641266721695592671098453009047658286149743563197544089805346942697742764845921087291512041473989954939265533931262758059639205075873329927743110323053695987435972476024615145525592383081776143113800795887195112429758307949746679193490270602911367091102979273821045765122753537926234434556432890720089884186179161190874864332085239736110431594611147558421363414977493788785076348895573363294296279208551663446550327503633058195981277076498675157432684040998749650024795725217983374112513517231306393442810707263917478232981571526028341851103133986421359857830605838469556750173108550893503571417858317102738681409943717217803164906883503082409008589829864332687587525759762118174418586286955294419804979771745329413886469273338356631706005374803567838173927289131620630344184235076478763142282847349913088382663789435004307104350893125358053625853228134408164564203469733660193947237588019836008277316286474113463357143891464247057215650553342063692477129226386883778325304254647334358654078416353234113756792320434241212580286802081034248760501786412293221622298318388485806811630116542200178984301432096861076316189177868178512170085333774625936890016095991685775789792161026180397716825549991666902060156938229528642310517034929415053999636502583710493357958852873431716365956393302178329156086182381639146261485334064660014694233657562072575339518006822096534144608828087156915295573785564738664686160484286836934376734347500522651836611537838738239371034332257779490373230817332337314691615460771140126127001933054539601385952498931047506385248051349897243169145359125152037013996530614234286581079570517014296607391602272754209930710059875528354980638853314863360263174314644898336946566968132783036002252328523307302308058430994054507530767656940013240574152854623929913830906405869991074736598239206845117386470183000969308065781215097112063225410860255085051401085205376485215745225809513813259017302104159069531978265540355350377431671694812359621794745105471294065085529831935500967793040545794051066246603180695621328841404823597149987495363264181301514724170876298127285294679603932696968271862343271650496043848647568825701531226393537040363166863062766538893272319352871994736343787564228514827007120207631752829460586668064940723906966390027767354254129202471118237893411430545045790131875966711078155413759919300096690565237782961886979737127155414635430043319665173925520920590137105503126304521372084143931415234125772975655517833861785418811567429395953378662385245527574018171113002164979031540507194166482694790827628011356969493954471784436767028555548467746988708422147342403984130333631649628563446594700560959925202493076192720279600087758035448158373571619802880817447062085896477626762422535199116810676000559267183320727682030868881601358422462452639486217388763277462843124124219817009294107790261601932851715367851043155596310257762268119789359986968439871464682698765296898828678939719526004438426963631414248830057070963134341216749780692038916987545081462126122191626380417166225701921260365989467328711762988413674483485233656486479316452927229481319985383598619497911642680521085980287288228169249217880422992983472301666613505945836444470436480583831776923708200058252309693462029382084873506612665329135354736152226393475989795272620011828214616931006004390732113167371842849640932082435741050025340080228769400961621778631860486057598986288932012716115680288119640609519337645574462955131423634835875524874072206995634369838026589774605309526901188382464733820170804844926174398360081773685245029188049929171340401493064582180169952984546824852664768862940767580218478153818106183547259329035576642741480124842102626906276052041756949984706969146470846835361018352679717775425143752257333642374873059578536334576558972958075777960357275625848121167780608671885090550674070889986089413264525648405734767602543380866374801269388930634381711457729703075360465019666843296635908721798550876309431781313641906700999828122429724932061433554967254967412440896325435456389674575629268247887975314219111864143802169977558601864066029215272069344630228998415235845185579290225145971628784073851963188965251944754370681719539319921940744352494684924204487745346336572008369458340837293482924288572181465587607373345811129377630656102372678406152157629628361332868220905799303005044275630489263708398690750381086824283963577006046017373236246220684861770336476769766888752023541581784834403598933662664888743075988290725910143037697782063037750966458165543967734353198059716755915426166031923235502979547965322162914080789061605428178425303212478015930939782073396626826470674887145911155535846359931285866025142327798754922042872471435020436215803521018443096406675388807094227153343108658433253551982139611651477724270173304785381212287632436591147230491864719595530334282045603774757548224480014267578407447988744766792198024772426221921238618882627945368014522178914325340755882138399550358787484875445977017586076559411229797643563269636862620566051665039233763517269599299803695887980423735744270157638099492727306631408869100675621485080290312908985444115671445963445335215912807635386528878795992648354330599705114704745082716081254578793649301162335053875655764917828501601248021905798658487152468495024361621453763687573189210230193376960173744732468677303016513883430854181346823381737083862859503903428575414546466296509682770747081540489024315106310486795135393452204186108011052694350070809136723811242842428384436493370976017388080247311977949841452213421018954511551221240167322582933864508022468782577625348104572172764068465387393531587358565364499821082657188102515496773716227647047205336115024054081353200890246168526867652504106399938249307622860903536710310646180096568936039998288126635488022641276424685327829278849475660704634123069740756266487244416220325243475975262814795037862085549256717247930117681980429736122999128611061868941363211951573397301284137578009405474311100179154346475189402102754261221218702458130231127922830616309315806448775949259206146725087609042070823126745551134809500889151450668644868830074827029758969780769386614179936277965277936441682892854779467678069573860914154665700814961052718045454894219801108374685038486023772151848923063625480525856848768679239248273850793918872314759863906861990546110091767089438575327000128677367435867934529105643970077526249221450285355260131072297853905022227423806415390812703752838441241033311002555743918190873555547123042175776328687962690718301646366826637927112601097102745743428553119731643694775048902243475082805039652583312990627200925117153101211094839263912201425915378540885554220381078611399313937232213312145756907483104932212664903531321372433075925306377696970756810252709198571242221356019014519012594033978786116954059346368870539973184939484498176039337044813412862344837622889236183722106475358741416108204513955691104206096435354865476902380723988451087533468111178274448775684062329759031374251869791579625351175579350429377890507437804447804192029028496002996763648169154566877387392041395519140614427914887649647062407674385897811316303331591341130006614387917296323486995940736597906976235347375470298391677540082733482743694468752277358470986906550448314401850966283884535474924698904836313566978895382542893503423377438145236824348767011277421019951855268089156700615611296218937047545712413710360008918107015025037545521730460181074576526359694118073607354218717628899564003275624248040932698631259570820862225566820944609589307555745178591867505968445824658474253947988679525281777311812422868041775752989407057005236836540262088975606279816821369126067991169216003458107880220789856723710841878995649232154966270316625522805068650210724878084861688987316963033706301770032232357135940144244780693595656047622171994806413901265100272268223668086108985568837565308458664821295363446017068456987057103416155637826963441666903687927078932710032242716013077400096656858937140086392079216223329785055548053720352658333950290209216848271037797794211048933929208785489063131354201864394978305137557337796466249486380544079539503311242703264469589648435434554673894522046955046989799902613724426088416726237913503432293818676936768734123751222177837621907702271547455754825592212800157265341914498024163472835610132910252737363412305729502832916125043540036517895524129507526846341687777834470132749637151525794387715591851460582872815261564519634483142641990967429929993080897414153519613719991997889724755417231085134554849347911983261771958448050716315994943795728823909439928637310905168317559192718001554399863708446192534307754603771879336653271706149634306256852807244779279595304159986594332317975508970871793442639584748688576786963975050402022282483241133939377879744711146934457477853017895235717312479064923066864304624263494973553565966725942247019488556096404958551853764090612619172894325534050557735221064641558111637947490722657061337406757449083662353817970337522163850664378414196213878537727059236284833561329872416564070353439224771137490306716558591623576721547546547528894969242304290905958926299902371123323917294913532548122409898724714061798576954303523121079071999636652958906071617403711338540983996770520883219358581691518349926027896105572558516302548127675535260329212720129960258952487188503974926350969465947147065478188231725266283238343751397652564250521672660295040345461847665052156503568517037633615842156982851804417306934238383594334430726152666839010246161320395730586806713326490005936969989525662454743103245360965271141105537884662631017970505181566467600979383116895649891999576624570447532302965862765637951271079840422869199669367786445602165032361165723274513802284893206560999938474261202849583380416156715017924068443311138763262831641853868724720088106297898010328014848034840882019048512829564460491774284477681672906591062388765416572671168087438194418185859736042833203915762466497993520258768544326497674363693521402806771013711440660848760856316728358119433433155732650318800996275848351557066613756542305787753709613763635248025419501426534055815857218982230649733642431957543471791164651537707497465907440734464821524257423518057749214849935934233771673573909136424976621972109894786620385991163888880786138607511066759823382366215363141905677939447467255302306213710582742492993972603086545246076195434503763437903988668487756258708463553158390693619654198086498262727861611220826017621134969170061772257081577572620070840619318139172579545411380119081140388749636159511740309763041327862847412142010850795483036891870595458642324445335450313590208695369796769788207539581077329572385982138006758381206866347395320502358334665034372973746295041171154981047791600821912685433641200652239633988603223460710042263715427619527477721203909803586252321030944758593737153094633706456350226231746884894141498547347012823949579137324019569867314367739698365908823344669104134785573663093077001747653648704960745844345313625618904237238252717350426277529905091062014573619305972395050749698520256750468822538183717146104509648836103477776451736682109640265098937452718451080275778177537384668883263811629944494302017426210704905717662610074496619256250316234734182982702317228027813951432526543287895514539740542612765674601397485182381586767688578585783336145827781426295366359685550282185352618499010935428613568403431035118534835907481839183990616369760974184410547434126468563366776401109551776939378528903894595637040278542756687737906448048012264092760240081084518166202481322600589858344280199665421061699866837874022507743106380122802855376863525150229413921081854446291268686940519059233264874291089386926768766391037633367091239078157680974582533242249074413294624196749737415544475761277412435997344295287642053920737375131812486496647840261258226978408912657381938986111197479294331866505626167125658588004065180446591287261254937521368012657163682106452399104266679342547053060694884246992764661343947165859234102746661400290459584929661597554772363416012240045664349023286723946694457267758921578862351300774079666320582312074508932263883344198505869607437298393833343917055937901859841128387119480132811934390933092746069385787489401754975193091795470128282271260892234579335574422691139336560620915859293649186300717628227668830635126873989726611590723954981005298481507926452692036659669909758706765336252439138302856117816429721694205925919402672865552693810350605141403533861953154410780607189240666945104682064787871992054154208010888160166456069858907037589747303903533780406374983139478473044370507387410182633153363964170294557587119080713225057016816411322466779445878289551069790284789191658588489866479847156378156790602402787865210155470310613896610313580107647270469091636713820586315119887482782899013323787484582273213719123594337595869784298979918181901459117418291116679268557154067926447539050067420213500601093152819948571493990374726356763348248215024460062482737997769403490996513751962212141252116585284847437402234167905823278755016054981755714889463541482877233551212433787830977043917137612750452566927182945182005013225650510612633986667599512821704756775302903873517357381771244033837725160003337405895188095777566219095623199555625760330672727836574565779230561850375328361202315654801209512685349728023506764417146847077495763111180878124364199976762464865834592393777256112198045673770354844175071192905656916648925695634703156292345527520603439286429062078322624617961934185428767422704840303617643250425919874541697125482549305646180040993634766816709414058939144463151624019087821108058097033568810192201426419275365081392805146659715163679547954308519663249823400826430582850213771444799858437556679398932082365110202052653065944680994353108278911972008887449980844585669597092389203242768737111214424913967468780278601974535299940783445640936530001564970097766132367959786663535213378546020150830534815941464566867843094700837674648745459125132364530477078184110463292339113200637129628202058407259200177422173678758619584174154855291128393762322647179249132908942228761922309282828864029046272121905412197436350494683176201733455157619872897084238713052063235280338399523781826493649796027305087452321071741805137113658560933540768818572528747932138995025825342203939289681611557917213072279227542501557116972531792791465192685072001925828733592470616194930928993847531761620023264590110190195798130839927787228052471413828276939513569140441703894838006337193642522656215293743798818381194281524875377276319096409114555239240906834776012913836497006697842202988840644895912636783346458588815855932222812384987638833518759441371856090169937891746979981899489422910934529705146874805089342893864029352749275201736049787036321212713221925254156810434420211001596816684929528500738970552035660931357826719128973986260268267273215248177464363079045305012287655758842800376789035340520198767528505917941547328063178167483721944375246596913595449378688531008284863290144085140140010881738152946676435640951269273383657526402974981693635769172898591789402695045078652750762945820221683273186877514216325265617198670532827263024187670661006985908877637993004513145003363469961792303376379748657052472285205840546718334763765153909982577429858762255546084807327664929717030710079468416064234629365397476319616108702462264249582362402977396704435748208408378347731890590723443631563891373914129380450924213721618082460284272650812420392734125240321060269002323663265947722644386677782526949717543272889478807066506693322888022014866553827972850503520434008022119665857566983281972137593020554592870429430040721385123969170267534057374511822099599800628927749867979548769885572745898523535091157361697964736341991786910297283574034151996966021808352104492976976396068928770895643525598483711596779297307203053569677024576561181621814326018059875817590439557992428146294062792781509379469584969664127987156813333738500499622714576355907869988982480441804685133043576143472181391275320759705822149729248675341932699132117787067726986833517512863827710136299052681420075860254230728093082303584505015065106837110013549850385870938000159989783367526050683955600106774838133778228846422547790495538115819614587032395617294769778915855603447265675418418244220552516252055175212153772775186050336162122642928250925340852435620274140914952415636235533543267350802862527079844890083607684335257984651627211523939129043275821215849433643160420067982726345254849281373214030391705039312654377731094203854589076320298050651770997488975365487001848333241737293337380334237737236889147399195997849801974876324138358971625080003766007506146819901331104365377570303222415744438818139697573391510202925905415091649758148726455050046748418074825680794745332177486203600257903709406761745783011961094680861022094519228327308282943567533296792563657261147837048685235176516373494748071640571622246731930476139208332172345667709703059856935571262574834301958368731352790955378401627240478034443514896480423805149169770303976477703093905499354885740309336216981724182194540470717766801211514731874151945460280960455555124087450954256296335164552863840008318032074411854361173410914025935350000843016280819073178109694405624539175593253388691028962800677197458427909905660436451776619576721701332183637113662116275205537881352664289104922855907793577959239964585035373229589944214935546330034323100296369563229442852198083679162771136274504036075081474879311122210770731595310624255790100495892584443437977984728762212729202923878697546527439394585614105259565362977801948020656752176663390620843132745928414248864738310363760804867055010584231858003301814385053318048027111897934116176961704233253160434023534529719833032980010040165082307923906967835104118728594764326205982718438813695262494792026786249580768878080874695404088821375513584913675732307049907546243989400573542747265660511971660918510746921056717346650540975735733357881350450215142075768718388903098756543427351541006793055908658563819890862468711585436551995206412107859497899366969134834409594262144052915809388977282883721112610242401962922367298907813650880549555031197984493096736401296936915047196464396706574206666022730635847582094632910056431863877848984469402939859627758892089869973618227056218407362559196387989586128309780129655201658230616139575174610835824240967031631803803263830398391624970040495518088499061390262899590653482415493583212780841212530980491360379479027140850594685263505387775432870673646470132452011369961711501102507809034927639310092476963394770063310086148425488718159982212774541446233705843323526797455648554895440621025139403268660077446014149741486860322233202072322330606643388120880257486094863688877663213182005410581378623272051957566680075708341982858888929231997114766890882106280040943772806398794479167293276822937730113141385015315727568382367220736363795743705868874680981984451109366267828876709181555083688037566226323193801047120665206757926974450978119604141757419288016036432993288292250472995976222626996708651881044198407042020567666960153684234458995065886019024250967758515387966092214962028109931075333194170909605648095755341559230879334479858531473309665210444225158592668197114377015554144982063044582367968288385177655676408237849635132438249850957746110516628049351700375163574855471339325104682358740631529022251731891147873119518300063960216407819085135022506709729663013076648337440049016125005346576234422190857690251663222107317529767619487764940153063585952398198807313950675292382012917344329634077014444617934028261579094333762882381210097382334457090630139567425792429562085688167447328210062933746105436609663802376166508905278114657128570189962744388870572461762173035920471795146908222027222674856648609927171883829632698360177022724029199599570149952569697687880773496079791090628756055056180601976583158896798000158490984288926051314717570017804265933184682383502640392797253379766427324056821749150058405781393320761789937734480199231014604328978010275250413536963534085380207091661540736776748176204717610270840742675331835026267540393674474472980403625462057911866665306234871101885288878377517209969280344855227173089697551659867829488460079426674403243392402072188870613192103487551146265570636737132811251859606775927926747287848447522872133139605284924183535058085617261927655964804455292268782755306938283930315487664572141244571867338691301847102358019764665891761036987798942842245830638117020754331687421890174894117688432252421912400996209531202564129609645657018481880660040066216944874893012931946050707567535753315015243430025329123221518223926199292783999968384326106060585121261206928746076924491109048089076514298419608623111785891977047224503147681967103204048715566061244540134314024156754150993950088701712012934365700770657766101453352985239929777660190507188883261709448676025335995348383811666754191282826501079427933488556839966544406655762322287964245904856268126326040906583722605841269845888768702926107786293921502269964307088786602064368218557986824355485214766961686870456915338340108226763709302227789332239241753033620814107529548988095588261382756740032341847847221463303946852207903923127248403095858560078448357598207276610495118428993886740718560424485788798663628871669177824482764372256620264959643917628645078802732750114553650401530154492909285341260044483180749187477266581016168550242826582676276503131937501330859377301480872288408420995518659831295707182936522570072009753847934922893786333874051520497847401536435590058460128818898645338874169531388642566135609954491869866337562178592294115639470091262594157403315502092062920982005946033377566106966120728132982729447322556841934542230025071449678640284921969442748787668438321305666904655881264233656104189591755713425107030313772880446620972543443496980559490136156431537380069517861750448352502684605862529309360642917634284476598855252567674503121640850082978084329303954222337480043927333017602185710590317308324587634654499250984809522916249445515684273756775169722663505011659187479795034776313493800411891523898450088636191147992657613014284646372711587438523311188994880243469847841236812195732461990063215615930017175173354147617876616595426296706948986891766117104747842760787425534215994757286906262981203676743717857224916671826321231983657562571628131894516615526653736770179702206190450221363636351921438673559409650630899363719325758432461098776316431655723484504986549931014260783064189859096672216405988374130814824098953095623283152905752001116076045608580190439710034769685738148501159991332480623098225512322419617909761651194014411775300482669136443651757156918902186800249252880283217342779724749389034629831828499373448514560402811076648349095310113450976351195011563747824896971010415484901475905905688259736607695586352732495806241093420666733618512633127456140066896279884813602723559115913523285969198364026519217043034723216422229530047935463276610430423461730430295676640437741219705537569915992297701372220065453531718970704652928775706202306520550962389243871415462477067337170168576025006011186487520519588164592935437303098424959021448197318946728122217921894602980147184675207389542159191543978148634445407797837085514382610263725830451113577969235334522998647007828977814778182922484308426674657363890579705016394408757578033519024034955379966054603513400626560466038279291399524822473185251525388174581627219262747906540713272504253737537422361903915557326488899221235516745036695541080600243331559244601493012138148301204176192200070619224787118667317435790943734366266389562895447321428016546094689231335561086391368339014304462448163464483045880633208139970885457648857588894024933552752869272599056969475700316258342225892504711450553656725081445404413682418544116281420961374371910822118764600000207950701266637908811917192038706593348481424183501846400658266219706642192920928784585980830947908737447759444038553558936812932467619215705793005131545141464931036085377203128083633068075002449903150905601094957868745780450987474527899058895665937259362070388494749282189121808625767155891024486194543532750617705559890564125735499852514668044329599489029884731848953551491616360698977740079716962280895749372176823520598851473594849184567817901580736205681319024383694678457528864452432580579511849321098694620640049679003535972179652022237749245795395334082069797502451952986468531691439138228684092839670726649282449586783242939310205406713340537322640805589741459349262918320699661666501506355604421836052623021441853507753426247315789045653037215524438273890808832633917925737605500463988883668830449978205366082153487544980752202625073559540287088408956352113735468227922662296543199328263996659203920378112068899265084339066179973349751728173016618943088971901407664672863377597326629502717937291879583836613803552123879797173449161223215560145653895434764602163759743625519792138183645901498363349877077080669796450631884758609116229081330810025077674954454501057876083126892769408435095190012244278432293071724093030711003992955866701448399764421440756603870388119306049035036673533096473793288912075935028753299625289477883294937998367939131452757254422459688461073459498033583309139789728206818630981393488504981940564068924985649713458175003695872942489293929653019295738601575205216295675261201687035147723353544356904940317870152939515809041731873741749991226976140688658601724170470930872101280368429700128386752110292642189041469003029560176289584219190329848002404757738798957260639651356202715723556330574133969283652429480868942002504727020409870724955670996742491514257208560942350799403651212678464866545327635015942368954155799331628222580539853591054724256693534279789617275109704257442446569563262982373206791401069532387652456661238137767595925512458188287927645151247485558618275924247352263705595857932344088128832461933032221349419003549418891388598357843121764442922134501610826261422964072771729995844014778323510966783219772671216184063917325964382146645529850193874155785859051540133598989036371126791735638115031957215428991618271564500609951813233663388537714180741199456283761938200330446611643425638045592161450132005281606547463538061905208447422763741413872146509019922181236174375236638961431325684253996845050518775608607374198628566335657597301889427372567567568907635232312596585955525583872266257662503624808191555862670561983084597047375053626554690964445970114498011486825533931683402841326403332161853960564713811856036197647996450555432325098602029714715213338386024038571310417706938097853644813220491769068430080942903699651511697399404937760506366184975942612865133586455570391664777573951239935979727928234926932765473073512747073014340339560388287890478894159290105875835967274407135103725204943897267235905200263782791430506908485617340732591089667006519080750490492304539540080907288961184563601623532243364634070811960751460673754803630302237885245327026834236443484865821075840972993060933223984189894223354656264731606790087629953307590690311640176225939853798701554441146216692395314581599289165193068859650341419999647941819965228411395226036094704697459670902849386309209522408461158000536649240733787423021981128632034216046503877492631573778386193200578185739853778339820319407678514866875575295890001369036611689489315031836188593630725853558886871219505135417122559219219007431298047215431287943630513166684567860835681668916809384513766018089247564808604589151589569250231618920655484970703190301346834472427302435496806546349093248731306417579356408059415170238603863558002227923487166802966820071999871050714252637966828044667918897400882555657797101619337783294499664931272947619155683696772766593970911645593845592570867913053988410112574300986145677312657020527326105024716181505159460501261733034920943942929674242396305094029471448912439056232218299493920551212101785751999286623956178273323869043112075327448889840775095989450591649024903186261131934280748406912432504745279958395095216730971799861271649611679126903149619715441496475623506498787736885807148334963755805361458369612821614536083183812265540074224258202453909808591295669571248852020537725508117655189346726958604045072952443064297184093303700990328949320288794868863333811263831543051120919364980709566272205830124433933995980897704751926040675546603894149489350703993168918731358246625123552222152448026842771268603183756373114123271270829783705305430490385513071878587473741029148543549788138798730074765500042894136558958997460317347199061719596982875440455792076278248031076468023981664790836580975850485229952530139385180606219052680645413928372090491692942884870600785196412342852331404434287984245055851234461024682351451268620823870353607601111592754895064198488012903032199448951690439195146351876850160510912668000997840927871934344026493318099624564147402199890250604799362570557817964264595387187464679321656614353307323402938367631154675610331885475099895219851780819273654132937095729771584749027889328245684396256606805658647554091493448627185651873011780216933514231106129203554908964101983117452993349503892939435314370800146300786102492224583889887522496457305833500976385377068203089278769452785561877396083318646999765841390155147714070775263681777600942425077625558726935802105640986771768663279437219295027368351354766527539174669052842024508839744899120735753944951617772693455537302789836232982025641788846962298018681129164709870651868897136848880616546858731799922841940617067092375321590021307658134634350933168014752864659435664549546329916398235682992968487648872677417809344175588124961140084589617251891457935985163016940677381955988014844080836435214913881680482998866135021800930285033008991538198993128132194297015035489769709048715267769031580958200957516289793482753877073950026072924625055745942054637745801776551514412004939212720637806766278238181098302028995266039636290403097373745418379157014628475387044803452928493588863070257782475510395557379363719849435109469436013336139067028021959011774880301165251302811470730872369106246480489005412731181658563811372474944610365672009797650298910243448383154221479794394610068333455489251534438244237990236205693405680065940020764711860601297414307468555240649992854082705000509632497678928024561109685372666514607321807192627342830903886543945015274707123169555191663796405610799807326760159798232787356999399453684274096507249487002394605569342947087386400139153574810732918394729729358832207813978675206647472054925150088125801489779725778725596996066534332310822121670332091540386819811799419586579177670507944127819626165482365009851039906446685970363170603597188118547767228151511338978257384282494159794581718890463530862712062146337898353525488869275674101306331586012605845913661645327987366461536727892698467422227411902208553426391312754019059362406639752485340808114971465629379914325877066351939451530655825695549699345825303123554328087700281685043236518696454857978289666791431588274278630696687143113691879895593126056468129720458950606646138988055778861658529879649401833720462996699472016267664840660607769623321958642405282331401243005568548410374883735387773535483269777787891106280455321107451353144912732017978490161274331392310813254181477222664649485043315986068415175540639488478719435412754298123352107473095149121456574634494823427168513812170740721993934433214915322220685056372529907717355331084256239098283569335975991222682801923043709978467885217695300030656070171835419620645168004487771764127275931850297049451600335030744874147432237076339707663543050706914643333098044228100793508494428494309262234885039491496852370106583998198859830115229416952410322842540515913280956397052361792513900999695339696094485994921325440604038316794099741501354810087016856609273011302942492365941067336303939695060148188962641585400814153504544374571583855633267174434944627992591659609865785287955465445063727221312050225432427677008415166931621730085837469685992372533253363630411926126457058677962335331590327794694735161442818965833993824577583711565354984968338089478941182406903385457362519860755351699417119877690736390824996729826709586769906904579221335289064810447689024417214343828201602353019391761719465067821238231699785024460900665823841088941972419023329153721108139181103957258050652470427722868389015214496949665557308621621593683766144268216897416395506544803078601472620020628681751398124505534851587321240646912649076607719281970830045415110880501323068762884416783342348568129046830605963189056617080916034847862533616857407842108459207765876190999474790275758138194101688549469414101083675291926396606356417270533795019325735402588430845324578050259510028823792314331080444164535967101789316101709813415833333076331523168403536310184106293499223501951999135672428531860244152506460223428379283456826948849685001840799760420195318843181556831452531408839145093357162312998680389779132988256634250359506090820921015081676978898835682800751767320800820313527033307662010452282288508413663626507611503724930540082799083170962633035231215733820737587585840974165722742011707634123417708891326043641002375857844007261938795657207950954856319359359292487682040772233489671335896393974696990392371641943046625185000012386619481448344047565860362149861713684092968185433938262865634589657245825784035299997656617785091724422327334097777990973081946826299707214167074471455502180603360395374096906928537908716961504750167444983690019937786255468840851441962975186829424954742530123511185173935999457820576654893643852440689161620940633393230284749064198182570746979000987002227112092411041411891239432856893717789935745761393527870748463151729141449077509408826127087537975581970854993686141466266105423224667365056282353989648790194652621747838943870126484998500859581963533559847809073566506458080492373904706970529143164774757659734087737110288521648081667451680895377470665750959553484069214530777965619626216823804142243014608349702057835413352726940319751720226737077121412148474398497891185702973064463771110877743387895764338176187921039705659892866070182698303736727959124420644401988024487364457936110205142996382339091197763760238949960337394221858960231945293751257857837164401334998207712822456028640008225641212080697045879021099568336622598909948791823916248047698617021244460821325991522834372214712037062407196558283762366205460280809226178096807946945882046945373514687834159322923759547413230437849311013971932863247509714399160115101118089171123730245480243580046230449120516858128885172295551152666787544083720563493978443489865139532860397715240473952773458469551494532109750151775556046648004381572844769970919799926556160809944926314128258231758245923815158658305504368009754890352297526450825377008114021777469875180481414936135312611971274929326240039080507130680879521774497603008910848405811249641565993242352704468186803208511896375604314710162838474480842942914168568829631519260713010934788820906496492212176594920135182310066773839179664185274473302929629535890321708289747833354098474827380263415118904647259695523537737762280984760290769333906249907251012162515266694585814820116368465797950952943431977111354668344499208267297384193699947604648559159930058095584427044474834422295300497467018822135253682650087196474967478061170246648965202589674998255929660790506757851914828410494290101565306161842409493639331544277058630291352008215272939999308825019107564090968657487346100687361590099840098293212420293799538587344959680335610042340405239714629281974839254440445554469557540263746630956636511672490351285141676045626199649633112877672667719363090263962858096123830565572241969710907070757897708069529386553001278630919275338276350416796144412744666419437311753865750298207849848133415247873149009456012990200197371533102975047887622137541107826295682519339002224750371607048946280223872512965746507335225448465866775722187995458090558826872188401297426124952115469751796487026544218051449763361368048021688091465002979493926074876491693890461048673984362246907431952065896619523633714835060622385399035584867156704419468303513016659636374542480791956470226122547593607718163726930424924532128721271625959538675201890122370951290042140199937634295998763280816937474942548497618377594443534570514841760796171752262461009966070247166441555106576432900481732356078056140518148670068744340529295880017389864258650350669209953478346360857571532029494487876347894146716738361937846982383415907497256648980126772138282090568790233620898988178758285460169155905351013232510911987414209679526467060631244309564936654403759740227180800584851323306520673028583649907513115203101187878024414354425359656047331999785080526379270589629117558932739770579138449428025887065126314979985202712294922049447949507503532162343534067915887982193637736521692032902190387409423443902600781703097774970856400396665301086424344393624686653728679192823754429223351518161968415597405784708010850503133405835291737355390487865298389709458102571795814908336500357815951718049379406335670208256332435641619576340342182452986917925424251130617321796999368755855836763934615949636503186136641193202305182111839823450670483766759875221861664206995752784172932346360370739900379582396162345910047122315735580485784706662670902026068780349697287527076078521128554160046861395027918253814169506160531288892366048043139124978376505999865506285041560423936487405091252824771646209076213075443820129148853962306173069341341358167059422575081157182195321176780895659934761033668953982830421666291330946081411929993855332656188585004162294824825162544231886336105191581059060689521100581356332725932180829543618175000452389126658822361822409669239695357202558264326858028256094393738911707292588682482792340201897926308122344571041695405391117254884991639091132442826950250432527539196393219744987822667938644290085336969237602489754896795521276469118194335003250138675739670697823177168945724118596877713956707167965487080399366627288543830725497199483874205247941561072146125056358214636094704391343283601755772720040643157698348659188683741344712543790971935075611740068096338177545455490733266439843937528947355332312660079165342160817543789032972676085196228336554008951186799576875335836979095940646653559718719949531139962095587871722845719641586962882694254517876213880506971546293586885941897909863041561704400788571397890960936156699132469184017285307168720837423555929417208020258102038800137601139877558258943895624678914413955300570710456515630953324565786814879215520276321705382487381297535352780602604622518879959332310625184593947093412998645688099910730391916812464110373783014497100023023194922216136115252447801846659269584355604767849997978801036263469184364498695065825557073489498674582325524615986270522814467588157353239725021135234564920211490896382202587409715899370974809597805392884746866258704291875829756375407435158683057095183900318556747267053636961432296577808910629640622930922415138417767107020889280529951951089192927888556741121745825996741830515923800693124046864659737088337982378147843079733921727641365014448743039612921029921278140775780590293866196960263240493469444889791864068409366180631262075207512597379592316188231075520164016758630704595335367931864994960060442115669806918045550299652640204380353618634110383865018100636730790126478465483325625466794210541176616010151795355832880611836412221703047236301535682023926847705729368645999510135422265506337987471712305738440861488894255676021976815988545997135100203679292483046159366884136881120868408779477192433290773297910231248987160085571753784512941577593899654592592279731145932453752140935472151131984253050243998390463086439576732392494941584833812830375160525890289329677503020906385559172553446440338388872442173007660122700688087972955598849806054855831723852216093090756680520919240945012667934879691249242387386110528248482208918176894677417637072042678470800505243863649158832176252264808469336763803839694809431419982737623748124198604579842628887171930554537639102627071745744441833701314369281401937285901555479572424541118483017231851318373656174269829193028149727309246243860565108355269393783558293670555068709157362068916984469014060634484978398155868902505310309051361490640155400855931586585065307738994944661764000945992284506196474301960130535394617468555478408285844639975020947073753673914398158025414486495201577339628852229696672595888264542986964304716356006924326888819982329890661825939897844068942382857673801123051700252614281929091604673673602574926982378076205559592182782432291344677017436676286559801374321318287181199887376046627207681307874513790151720149255397113317534572019651288240711032800049172688648612424210190909867292148333206362885979865748258821301053121354583076313646186987312190439269743080419638113903843030109739496263058774562091359914365558883530900024606791174041843435212710640614842728310093644050164049023690135491371451680669066574526532259771938806221789136872965106208437136673801282680875830884953432583865880546379460203688032847938527405485826068027663063766996089088421641909669731862685435979630104286145666859588452739690783095927672922933953282281444250375532408556513237020720822533282966875120148207294519947217309121684215174911296582864066939963709179227809873855053170854032061026150080405668033771128286409381109854911647245159330888475084443112984375995435653794025429543501884281171234110060028071343754068483581978115508443507139325854624176330793775408708687194666762513569555164402206453508560205978437123786793918924947592774145241289615446654622017809269292766471340310459107963799003521644895652383685709839799336179439322238367138358491218332449019918198595284733177252082936922848486283171546579833979432256627698504818711492091717011483718027483329581482828099196213596258592955579058433516597130854917199356094427489389242351848654378739864430113040093658373565518045716342687890534831140076831484221490146272586366017257133303712063126377340041069890305671050801244813079523022275995939907612668988966559376168255354117597315237553151435964504301610420503325833382245983178689357309429486364959591188260085555756787129152664866022539959739186038902337613284957461851622543950773462665582811303315079994110017149736181648129599472864735774875618392687771591329177059870996837954002775215931787191924638540043118183424626039947755776875013413310931673757278767007691695244070260363608737089407874660577436245644560251285049669713099156629864856091594125710109297021104429613828307635156668514497573831722495701167148204051863866324562211033098971837644171912421518762460372836848291089563666077218592185746774968801654776484975310076711869214619633945651673430478422687338022257906423422689896312071246497352714801137990304751256169905535631467496242867111782103639090954749718345854690563333925745959565788400809750749899005307619634928768751571585409632271322145069232904642772914053643561722319318092454285192655416053095756504737506385787779683494322536655886220581568378581784102815558415480486017831664773121908883532096459601899729202639246322031971769013450505414156785754107321410610507845161172792754782568810978531297206868288413627988640934813740472622401325958863268109452382499721886264790479323820252130892980802160098237904447179542595149829150690965591883480464692860068564725096905317402259151405086721874760487570240480204672767344013030581822314916694666984834012457785573236315572940456174559645699704677391287721597052675354847361481620289153643345871682515291271037831114129021972403265045377857660895664218700104285119058464383085264954295369572081675425335811019665410379824305408938678054096656085030216458002459163157737093615441875787860962915704587729477745414405098226526480932210882615516973340415315078643088200845160022962191166325579724587630686177663151721674078661120288825349703097823069247659283381666732313241812149369159960338951436092729058597717707549188709454331252799991612360784731116292040022616640175849516701608845861442693691671391451899249811164885993512577265023849420934489774646076553453981613504360074046126296577144411181386220176792124386129041179950273085152774662911670099780143321007138988422790245419190466666620231597119375474737012991893229970742911979755528634757542698852421005171411602446611831087962482406612405188032881647035127097771240525824394211869762653811939791075484052129449191265863800558290512810433430332012815612154922251878555494544982739676656747282808239020071695647754915061337135169804904120701507468007908333152053756663122913355884380097243632640528421361303929424081534154864912558708280668628638548103785537365969481051745263889958571604416322968802094547590696781879105965909009977097335418233771385151245129511942867193632579395795959773448412518471722768504684302358523403101672335280910905304034755533747496045343838832420154825308446199227301211686376220091548516810139535198614526675529052374022778576752864133728789313171388505659414957412423713664025845923665322627229836902483148321192946926825032640386108613545073074416640478212047632878431485810067605092794597817844199166066879666705089342302294867732585041725800782249362053096422344587648105009323922281336539271363605092491979379705104764403264243814684499784395093441448885537258281151431324967385210260544847471872186237503985332518483199975823109840274078442911223563299674957591477258557899083519937558552173591891202858299591671995134399048631605440018040983302089253957086490595193651780501459398397758405659851286090146936956001853404862923555885758642804655350707373220412958672348155804881709350872715253942689592743019104848460883748988340863608203232629899592819901672199505500894213994710524387364160250467507743793322195839545277763879308125891408525087093485080030416081316503054374065297567472989708835850426478348936936371504413988715969584303228910761337489355124080039849889194343009288904623816770131716423343330398193515808177697493093935356933421498907929488712668818590660619578302265803029838126171680669096167532275119422070782944464211023534862821098565545755604711933693781895798108463009673598990341304640658392716513865436312671995608313145315638660710980600996004567097614093839893238188680392581393640478530861791520923357731211337837805842101140807544803887931738985811387471772322072917562339099844221282771423072094536785046107877482228014472763188462261759399125167419169883909305078600712380077933917693191006082879804264264478829853450737811634224487850513296722884491129161242356619349910139019477449775131891770331394236473776098311791543537080562179470411303774850097154915033714888912412176885179707613809266888402715264745219538428202263220253387512663071643321257416463740246911542866295028579966564043483540256420581344630800524682326516762161781978616239020558412327018753867667345219874398620241873303631070860982863233673614463779029709066493596058151631508117704371045832081303013647141855504197201464443856410144849833765662807058403193553007861691632006361796803506855407339237975213313497337248378822172458845793546933818947812959195963695876281553304244521302505968918947373161031745162363201909854574628551598618385922277120063506858423588610849949136760891839332679493060665857527445095745922045414525305824707302522255929377053455862117405350004958490126863961530591825774100849937968123710485610779362231179527121597932598641365150968656523052193716166068603502730837492956159424891423368761781996389817261958824448038621525891596142386224029613003614703577594783734138888492276379843070584451448324831738652039320062137215324499206726382042901584538670535816743318782824465589790012244588698584457662593816194450718364313532591187621948657280760428312511219155202148199687718122201077122208026845457769429059095381095472175204908460188599264981681710306680276772996138690661321932496997377461047590828200399446536848700793498625603327399884928241322198714506917597998617134115138732913086716754195372050416803618200469834683693517081613396133161811756558698272370360707940050306461736151634852322209031714793619667755159297539070279359083915306799344996865557149510504806801764322795392605894114313661316020917935785754976243158402979181613748401363711585425438875827513458251779661397437433797120627540477994454722309889663254606839092943692730705407463466440008389823292487842723745569262692668321353854922558687496626950572094428332001273788091787592798538648334522745410187715120673129542459188965421586265581588508425754601861597559379826461108256356589684890146559336319940717146389038691765651062038301990606799332812695316603329374453249077478242073905367098544629346587720828210203330827851175352206091694513713881072425059175381699859976001462171877066379132934660746619202958752061415315094859798315507168635725663140929612739176785707222276702984709690321474185149627970911370259074823624992730562085387452828059113210884707753233754256392825116743050423778278840811477395936852645401016699359966956094996359190714441746440376172028213956154312434188941264458524306090620860442803598389263607315040223090231445750707717826887813882149562319210514242346031435395997652663552313827317079053709592231197415356398913212208322534719691797260605739160384621831763647104272508553996657036335000930651806104762545527586988234312170623170117033686303295637523079172376879009585493400615391476757788214523276220873131003821651186973074542992263883607582351451253024021277782026241841018873090722687158285480985488396498943144001509784014934287206694670086894949798930047740743116947617114091570167283739478542128577981033304062760603721156716504456723372374135276228455316922938962153449838106172807758212970623322226963664379959245175920280324916944720534011094258732411442675796624289891002566213008548566117062345228298401111781296982090091895043833304183716449604518533327992177832792024509654244077721039504073186954013040488953446647319618675985923654883204270024856996487379931957772957380598644863811844576441044603374374509531295147710887321292509016564934789928120804920725009376963507992842815458463462660238662269275017182820220848659784740245252826443261779176112962600135030419534140328332029157315423905926711250233914514863922282289117138233759811328644891111260849959610296244890327150517529766354028931919771113851579302481958005075882554587404416072714359478683799373800667717688501849162960370254535999580091340903366974430669981392529123261854077468573782042391359342680584390790476008695720317365404865634837801724658939748585593624880535209438292392090211063314719590310950219948415140089010734930957614368847301794299356505683847106736372213653159103861253636126783011230491702290056141933536918379706595194956801235692207689079768708091669692140639849537559687977933326633066176226922870828325812018262143688611398030291736656294414074024427270848188626981615825296070743609713835377929295228991854775904733903435986864625206227580436893813291857819771708103095363139343939805411184747966095804774018001539689738596329565971978761435070951766542727960406336317590210613489408895772325259394900635810199392130760643877930223118803787930915647745246018736656518135790519527103359615801260365679565002970157146974816450980342454843577361974291943616622322394876390382000579116921038931521496647941734712614174030814999578281290101296748796786135015219374418603337015761269227444679749782620048586563578946544220130865290268266425093546845282057493392954098679440443772038365903676977267840177741380262069803396733991891929628637332525850891939248489241367189897398252468941484306508450256433362104490965320403211286802077986586482824424332635170415868623845671323081705069622122001411344395495902728040835386748967412087747897394955076481293283559260267886025379851469787797369060056023567560225147158370444920089350412813299366348951126779537126219759486111776780232543206430526239790939707087924748660149236526584861706209898650559232054866840515286524320332705254439030819045033298978027368997549887474791570925887372122612916970321012073681515899971647123178930477520426202707347403162941410930596265425490730049159239173413064186376629814536020562953767351055433672646328513802117345535961852536209678798068262589696289630567917984566666810186336320870770466387683680298281601702279534470115614648150855473404191010236567238917018278913894724011064485949264129928772696934841065598178693928214907318454727772655662671269713968126668468827958314714889916185042222656049827789637360182343244275427777743665064693065180957402918414899514955420990938762821828489031645521025279988117351009725029591136888334873485790904154890160344268698993502968857116342735928452861695379126306570394462212427016658714456019391667068506281177429512023455589090200482466582387664771828637829587868983213199842604523693354161667386375684460544467553886306258220305060553730507715707613930602841937091467378178052865130933715868434064266429767188881317757300737350783178812085802409821432321113490217322366912224436489553342873805089003641164393390981786712353737210101808119998871832243775727560966206910768527679742311605555416064761205217758649604792700450146724380605358095374519274176743048740738953133809154317035759023217886557886289644072443345039638246628456978173929458677732070958059209126946418168529383030815735265893271803168110795075391445249515440895761005468906728964421003293065423749336065618560502377946837874746588385524850008842893850188436597690330540164941798288093492159423135849199182359080867020916920547476986409493617019296169698619311088107322203524678196373843602885314846824885897639640044788642397655896351362034771688466545296573574888418186984836895323418025805008460598891137958141845821690183335788534717085008639349373856459557045527055011164641091046380773334000765667649394684529306701057763366242695729560152025898329454811770965554110387870509489856718851919709296972657272641106493284495721970152059546105060494451289767084673489166027088017080953258313935124716089908172605467504613202761828306375301184078967365324151842323490794177912987126395078006796261714362421539266104011840711460561365139393493084144599606188822460161512251387868709291782731888000789626268013833163879631586659380618977928175065810309024556706678234660522743681399501739880785044489401031836147679810617439754208458664142217165020671072948998351089912559792141949931187302173461176408491996453603923568981227799890564509869782426180561715663247663992605931161018136831069321915296880739605551692222986588651096024538994947565842749061973125580383617856022565670407608815179385234860534234401377994331541604219123652402652097335210980187740648934609235995013140111293018847435553947817721784419470799821860644845174890223011403510439045654221809585067723502182343543032767031689008544996898195535191772076255346649010170690883709176628315225878556159573293978061851447724216661091191155592011335855657769654698137068943175671352349995890475940462065009187054830277142708861025269672025646821556691156524032810158700860463056234350647892053735995943805568468128720983051070045047330837448915286658264042839758623692590687714182268781179326825649084048915491743723331216108101843817619855390927817212388250745722371412721199455282098728322634014124950267369965708793686147429467974015228471348767647576708689835095518540031161570151080457113945361146323421266137841105261414657300165240096455730276378614807707253642877325451220449415147275304873626807139560776145015122280340310902723252510124028626776202599739251916414785156081337482948958884549653501779283136407097990364968132133938139389096910454491110126600893927850388218850258809464600002801884941141810887184160163741877022156258748696054255394886271249041445634873526306831479914926677266206525002513175522965701967282261853494481515542162394157027219755711955942185786531662582005559267251287484724720415958590104873476048047823141649746444164907189527802497224341036299712606676710386140738182021418691273666062111702579130608964545499469005617640036690075759121227391155371608847015974591541479800269215487500865828580326391038748720908159580120233428463212499682444453988553801358928287126533427928512013515185333995149616139848505295057417369158635881385799761692596173851853189415755185335413645477072325996967360294081839808826874107831656764917209887404678095752284562055942812086153616538501569692976965388172853014063274563601189943730060168537548191727784166352098353483697881973486910123000354118385957716033994723507224777942832019483358268419892334923470657815433412308886082372742526517460185088454985790211528298159944312172012601193852876589932067886338260284493022892424732226214190983602709626728978941168643395258455466449315999614235122556132715880632061122590236280954401356603450637647654245141122043652068204354108377426090845172016895904980216039444251280447284205717488531615627802311610406534615607121083144561157095698037892892582956728830993937582746824475716302524037101559652459726142146040368476009667957692666703220139893243721868965083024211453855957454737493482432286135328089145242266618203759178127595875116202923941979535831288485775481159000465930445290411919331413617035627743107778929847619706993192333308133472448008162326060751392565614310164290468012846463860676281798612616063350319790078328189266991703387594707210393122692967482087537521059079057499943559671686517179209053628931723722932259100991492173839094786817755211331973051513995683209701660805788614987861723661828691994371000605330788307726758041973605123394341625896977401616121145093710668808341161891289526998805555734452338413357820714710353803878224781444596170923234974604420903470072552178807327997638718586287146271236165605299157916715091431577491124553694829359329744166442104114326395957490984001786699134800911431493916617002894122026479651203885106562047288870972159409825610332224772428779302324695190698799914951365159506871333898306478882787676149794033963042886106822722841212836587094581552722497785087452296208349402341945819420894326160691274842187621625127220041396596961557915263327244601668859194725532894139341916387847727833307878651755883105589219804729116322693022570876596694911980750229379797283592232423676400233138059763034375848107383245841146538034733290736646037161901578709695515516310666422360547589180223765996286321732948512600475281086117064094439520666157008258364518879167813614389659904737782963908437685049846769816645921819226816036742159361482365608078778985360768600658025307171102039116607890151110623297853655279371668930758014090914771523904144557372689213385067019054568629541456844142490709821441015130951397187947463855054159239977650659691381415208934536045018796785405710220804659081914605882003876685330627031919038569920398950573558306085433017978202718751385897454057661943554982506000811069114920893798667577684769556265170638040851413100728253619917416541383141878940938184293276702339077114056671674664095926466768994381052964880649491255643344472475055764891766320506741002790656354144821126436469755920143687220612791492864439989522335030053788832517298259971691766382187821515101006695446323052130868205622673576461761900343934275054723004072927404704124999762165504895020973621060924954667380838286194083783723780665663658011959765543130969665939996183345877854937734956762818597029822589588299603853544779551810489915374236436226662796981493418034087659912089766837637469940304384445068709869406362433717597781127581335014793553620371045854293492249109794437260915222708025562388291164953458975721062629261410023721487415909325782856212275627984347594379904505598031656252192555656365357487142103169109041614678106538328277714850315881702431286655555192464174173542421617409555390896317211326122694106725128256143588438370954112870250029377208592637967438710328708144425356780235598444551599546784472195421618774313433833967755421624342781284954729938155606273247799234069921874926763007734479129887945024813758489836126865986127901083778172284301152659564614506443880912122536621986783222878582885228784471244228695935538906403284524465017645748878872345989812752016973503391394227372104814011870440601430505417910076079864898991776323670740002873161831958672324261671321998054661313036875437679615794756266950850570288608039805851803653790593412523988099198007949787681592337918581077701456776616892106754235192561244727398640731689915513517910334910448413385564046147453444331969647420969600184451001158817043039758482254432741745782372365142580517601890586221561251325825067485760874353889798397765409616481578577196526782360150775128524156906334611566874031031980127250639899407906840819323256609797373358078537560664632171095406171601377684144980533726739956145921536948350717630695857443034175383546334212648867559671651181889009270348527803374406972500443665364532270578993278828257201237366348305183853437390733638191930628796331322818007473777979199133837473852176119571119670603465092870043932160051727540819788717846438087889260763865723019724899317213696022273249474440247996882538482799475634067181327105085203712431955546886926745616721519240170259748867405545990442420828223830748532794228897015002944030693050269377896284404647519870625336871144176096173635190211941833268822110123203887620080454059604556105801529672034846131868271337106668727003412693784334817848336830414649243518372400107076044835633712763722068840154132675878349585388494442114850728090015629120017525468307822981822473867330546308927334755202273109560244780441107781383300115686305650904356003943429879048877387470047496775445035542078129071245841189719747433098793669143047846231839026713459848073603829871008594702699741771672482174511825734091783106346604865510911320408621366309340152106671934935765956946203690496293407813309836516317779038063882934382522724109695604888991503798921122617171457328930333071314873009955132767783802937701858922338528133356885492142847892531184422732005118244167454467166977315347107390580475876227334215214995027257130280916523028315003167137885367395254463571626578211978908029527210507325709841421857235531364296577337077560131018428298513440865045184407989324729860534545750003578693088683096378321875137953743610678136920711240378123434500869808718009464523759230096220807524106055073450692643615345018514618574666398035383253678011315981089825379281656594835181793942370140944224616308486226371576782571453053040352550390686275996408331457859156104135654711450935661547621769874267647532923259799705715343964951550463504537764958076393921085428821106018946380428155616297979572259020533180550273689295552279060433123279444845716052681704827647472298457564066801132069606227217268396539916072586875900710940563900189219737090939191712016928724288789540511045642923572944364696191923536934442023845976616555885005461378079164926866225639837111402473363181638884240715944245435289836868453780668874043462907628287435003539389141533865366717689402227346653704269727806451426539261240843815465618103863074407100417566844785165611961518072184893581053368328715425264215535381814312040110038817257139116932404024303866744276225076023239712897675758307404934624636593303102891126296252425597088082503978786858534779411026935259855228097895483064517631811002643570304595829154403642280350590236560415555614104556031806774897553006919022046580103544686223357890641003644182944334042429629623590382117126861353209264406217302887289655836062070343789126191173870166431262753958333355688176240251910971235373630336178403695301208015731933186386918577810826147394715157533743685803304228784076108800713340821108092197692992301257666023324664326050666017681561013227326084188558546899768306773197012157618860025060659145435733259295068208149422036462729956064178518862893762384978572050815678266007358668691082197368393878962828837845359090330977970805895451757024733265355512055044620068103580478794318106861263243504824050908172611652471536308197847822537426426722512166287930733150581589182132457361558158019058213796394094634196395470436798686813903663640837509807533814060179062257865850372871268715599360330673112246815223942310790363213933481497065821915994031686642919859577605712663234247465115842811354093754505973866356603188742632593162950000112135156916529043280640769442259416494787198425923863806982902722316446612792167412021227695195958387193228053448771798689601131661372961848268690298708776240047795833743913784666562826730458057154432544325350481258555837722394326151085227712726016326146177606543726673310206676956986136835224601598214127312171390440798299799850610736424126233385621387433748842845660463249288761749387824705742702515163795450532879645171566333874214929293696627595781930476491509798332708571097026784304007441118533573148217951110630040928349547578117515571936989956927980000875763318394652352717896189578851313117655638625051107898251933023560248804889927203922189511109598190103329124934835318273286875320125840066835083499209523107065617586903451452000684856768664767531390685259502186557916535944492021280950714585343605727638670127353066066634143166239215376231979349937907488687595864771814600171224320147241597156594611921740511749911446169764827534861090139696409421748997983245230792139521776598322302376582432473088793339420815611818633278279861420429955092178808385775711654439893780828515640462355383478960638995804908653477467286699015872740871429290205948264057494851144633618866749773865429067148843358662291209318098252748072023620720610199743723466502578679098379852543863946463807845198222102280542643093053580432329929307441389174836524104571150990255684237837241287265746878348416664813460317570941291210408422306412718589317282199220183778095592432790564205772464171559446516109589478067511891977424812148313848748265522555239454899367833570389688574602381930141680271154915034844957897835720502054397006512009886153152825491753382221129170138267415447529812152344907618081135352455775212357519883743077645995786459810876586317946057512280760539362865941586796182108380895691677231659988074666806673425592435155204467068802455587961358570894175107321825365976479794951097273593321959516540480732868306225868108513109487662763592307120320531332623576896747290797768212891080174227616267752421558563197256665457919694056627458704765890100290976733310633665572951469977829334016081713107031445287557573292987445441553600477748352467028936137057299489447611621065669410751240406743628715638483544932648818668142943497780858472616881666381732152832142795268727299227842502410427412967325493004595412350499593482729678622218943324748751905991941503721432573145486666644170986823687132361371342180392619756699638263196939148660193440632077643476169215093024715700863513356067516486962110885457488295202621902891903751861215533817881035130783785240450913681736913557855774691295590697323392420822779955226696176449434463739654885468814958915598284049050426358287868173639875243304168263438825026015042723940250730010279431474208359019423203278247910933758136955872755616989377614781779072505277225074475068824148504698126315190371359119323565245404722823966535424371725314688943122593081231559774134884797497788638844679360179868701626268943472288280007760037329849934903346926566324356430012314811936892822820331787696541364321926195660920551237104371595219817209712832432432522215284587603945562767801053835621373382401103537416176355039416542674018446502947220476484811984401755484201161907207359011238679783009709705658334147971553891099214107618362929164426811332416015657253860894753503891776271268286929092854748469105298031281797361323042414855391656232178899784765984465607011518809144976394448268106906971295904599171634273171234026206448456800520048341310308257613048020378553534497382503472350714236874727148640250891325295873895036446787563950243154546134623554500473098201076379390168481395553957517063047010344526815623680408759211447985304345024221717347952107257562113904664300930189775554818554052739877471635918551525772759318880432526344996421125251373257710293801548445290230901353592438946503716600067197946171869991136426047059382933001097940935667859595509084453851753826671522906961054992972232054387222734910690447695547400312804708526549333318517472422360979539342110856256123451412365471457757075503964652337901163771781288007271777341193797883631397744085193182242443849752990028254729139600153168257378239107239928840545444811821441335185633097425843714028885122711933949394260286491605900477638684367651381996959838898670679723714398606333672726691658276139837783405452016397301292966023472111905408197382823424048828305851712087047685018921611138652359825965771127203809392642430047717933287085439508823180397782965464478655542437568555846514578859019418979214785475485765001029395790070535748755685788027177956149270630555864186702816785254028943914640627536285274976715691800776344087026097838359894694774289931649333163157031864489734853504739655356974080065164381174277874870968616986948978628501345187831519077267503513955547221345901647084032277026527692229342663878842591013543017544793400115094064826801446476687832274544739193479011818584566285967229407956302900080483183665388469282674498379242513219469773521049240274782860609751374110713661486248712957774869549062312337491503665325931412256367974188943346590384841131786010453814293468948199543711971643980840550443732598960031758396447010634858378565071134420056193668863152578834902703788482795109859292064270520164171767185948491248884545487541593132185398933430248107259804603515399516902546982020861941931214842597880211122774421755768758982335981478216334014407128672569037451364674467943336513322188729810293641727454255078581311426223669044968580264084096199619418152982864306516346454813499188000071240911015073816254903236390786316507622933019545822169485301869519631733161851446163956768404521326172650989264219774702364668485336676173978054776920986653902088303837583304680442458680239466830048638312906820433168962734986657299558783460748580947962151770744395311090371166301474568315125312310203453193428120630035876978074493702379462790964612833124749796227444428726223306318466356016011399255290946740170054410886937367494268747360109802869461582458811998590133634936392600465696700090168960425063857979175062845705434918561930892812952231992422652370987173221948976917242102715404660137742305810347528350302947005534731145930432463812209476806499049305233984479007509840399535166492784701111573267266190791515448388113495972518332944525098354415957603818221041635890190744583836783659613585496057946294465375552320100473286218351796537570786175004628831206104628434323022472449215225532313729926867106552894360558076798702438512560971647345342457163156422591618452931610287125361997440246911489385185509733890042442885706561305024846756604094036445715873262869512219716769889765542051558293058902819367474404346263629690746776134513339264379290749860636721837889359331928544868746860862855315165474856186106802470638706097671848226716877005849882290682635344097330351966831372944194812862542711505027464032646934881099148242168881242902902421789714665021800613145262846392755284241963192966535503694439829367860865316012385270798376124268968201957834266478316573010884427926128548629564057688193296047751752408341057370910411842999009727226259186432937869382411869644284940677301837896878787274528706339233914024325740646567775690908277989933833510709309318991495673703617071172182497345938724334861582453104739506801476474928492631050419986534401320909909306875115023449436857333179128784376751397470303204444887000277969534338247633596402730745165465569741066317980538915620928590284231656980715069243099264468921252507069556705467061271293063021222210820715130030192812970028579618010766025457248152493985490965639796798904342521555114690664781654438043155995141202827461923350134197271574482129740826182593717278152785772758522396297173976502304248992859773927281633670022539766536823104534437438895451650137172322322518946192809806996993289725276844045734700143507511436230140681680478550512113809345125674049980635985854576984030822909459276986549123782903145884339786594487633940445536001660900812875516388360730578258772968502746085229716387945302616646986693590087149468169869387327908920898152613117509387887410425118510149339455039119430204049575773012122875853060751152387226305833176221563854105324903375948350785457978277733487933237421767340753423002044799940276846736761295483854233578160037087199856740157794235527975558674667061772846949145404261686345071628792326147057986645442770100176161212017513269321474977033199114431842628615050451273858852517106906411765144643077368954655907318357113402718950817748241011861074069476318014370150121393084893402291436233765399833626398871793839186539376786939653007660259910364497997701628462582009085178320377372687745962735120905034906479892369328449169495286957135676743113114254140913396602821518803104945123932195783072800311640907437222716870972371619578739136080214319703003026146275864608223734622343495554238933644891218219550835195328631393644270733086284525303582575304869059712045799667875995898075949898113915137222490402484007523455441286835565638780595586537998644608617793034545002036398930783241628976005463502066661227948377973690246454617435955349417349015232954722634656773826591855947472446225752502230153985612029158351911939546281034732909227520948959623547544782759073466414924552632243827945808397194279014970385004235793320097707824439138315979159355895239246537921251528913944251526923027436190973946376903884349022276545931203741768666308770263761215859952405449016171258508393131221402979647443613749614752541890513841099376541760962247182327777072487350921714491992244725326355454068114230369379688695554492134345495780839553191452157839412132059025403494876919681056718208094438186042979469651942936287361821068913270654478344471234003780522755502077262501837486760898610644144128541851292103519499708289575595964794484625866909160122709465973269315194834297844191904995429498641544711833075961412466680923907808584533155239635036681819452600384700946747152539241472390636738395498638613712066945816637336424979012168439421642699406573017684113101802828455469615872941083395805344284064419998225305447349062370537404526652437644350699128888925202618360500255948345394560504894847409897703743110588703219653523955701864325453380270067213307826568633393572615744781541183770781131240440692267396198941747779801334594946902194826270960960780189627126603005703863438662909303656121150489242280727402798603396427674707812834714101863777682611424879527831901567481915731192724057074472526039837961417510008149970776109239282445667685018867901113752534867155946380166914100625854903396755360659802702860859255629221773548285166440731309959081555274810991437828178271339603760038673147043360656494630823943306920923145013619672137263305975110240909932901990433088869160357714000723662652627701275551515679107632238040137933190224595310447289442849570742123717364748448036322582819476594983168568765162336168131725629714962539448526022406442482887114401548594489216042357944434851069481702906200887792347476576580012860990665134181608590131509306810587573098225379445778706924137231531187666991703892392603766965406475909544683517748866012559705323267071525818395579697061509053199431739323737095456759484468121104665864141688560113396345800963916461577927178264784829357113380289655803669806857745631077793408750289897738307150689813944614476555337467220243632351430597159907282676734167463069163082410060946632968010698168894141004550321588460866952574966738583818517565147271083454997199901309095136891188842064681566319609266626005021576998325092502349051742155758618652129650328271267581465706702977494603447574585158312181000085981038077646669201018469920216547041439889810967757149869214555465032778833647626453017186311456515217418258226204260846445598122732136878679229855957597611106140885097896701107513379820360275116099059815929841153727337447180710411986791771035216345429906262460596878379975290267849538404089049101307412773874514466074889015296600235512853262859207742376052809605954006963665049347096210431388423270882391141034341575986269243845107716164338833165261397723383888622491431439148644338911076263602613484276494262071069234385557949647501079312404827126587449655669933272994127328691593841832353917165931151937348854198762629478855870534060912243985848990214825958516044876447781729677835271798820090011266257023917249028282161516979544090758351677264641759350436395638214715310785367853497058999683954232982290912642266251646513803000636857294570658997890613531603394544130151883633415410756697346163003364248580255647946603189056806126230982234235215308759846615473981655290979586788239558409819134823785374563345269284065820867375249715593154741764820633445062125574746488811205609845581154056653584886014100812408490168179902971506613044293374322940142229499761379096930537598268525876568995112193796027995756704377546617594142070297791738730342841802451617671268544319956666214429414137045440113750930522253930221718355379173573323471858795013480022625865698944109988540476447329982141817575808832510033414716862700864793811635680919204062446888973909377959801133191160518902047292762649738588577787601144044645289714575045471774434575864148050893874209899953459400790136101378056614210471245366410698605442294172166602395905695179929371459681261043585184707066584182956939131092675546933647336048801343307850199078741456597421105553762726558439863414117143799031919535013703126080163683242265262772336132469445967437205153555989997834864823290438791513764785578361015832147134603707587129369087693180112086776525550549740769672249655292166944149466397120753076765516718200436557620008381394594753687971371063720726259092591675265350562917830568376150892453679444213651659020023321501219948863366092234439373507469505368977969056136003940775455379161890025960394298609471514067486397510894895248039048744490040963939280124680833647248958880075857232243426505561214239953810242411030753711961109716394901127420309192983399672705584920589386767786964739040756862261554244371134071549574815358137598303479372343370392932930325485296886962982402489654851491941292876435823747461363034197804119489816100920794259331591343518006322022439363918464411641229449280567010742993814969351483741076779707426491670802482638658316453693959336965656189062237343213217757515926057119858401179792305376363846874232034494634613423197437364961742632947111394071457246355755362218360005903420800640245314256242159381360838800688710922607033181247657965453036123359981880423877898033948480961283768439528747721133715862423767220176434756744890416151160636336402787738177406267530153176811428117260480640513387435822606464202944979825802973246534198172223157566850760951818032580442566437401537714569383561622131294469704061034757962881546437570536336273095732797611680550661394399447095250982015598344982800897959262796550014186481263818926375820117681947262673071764452878206225198348820049164316978592745488943537497815753695995794722046166797123245786241522973287262045176600296389531556846880153300135997907550737465450171573272601137690045850899041134377286891907194648195743804559299292391573854525560589969914476000609146224326391258670734714577879160266431096064772624755248826290575942168323675258201829536529604832141620102931859228916733197054068453469027128372170691166738683795940697246315957990691085803936922712287373039800551557616610023984775919661558705872434005665650171816421711604441470819024937690066283577686393305723159887223156725337510259763444963704158338480601306629019379017854983976970047012901648729022076822464877402443752544152386849898756739637872217909059393923794015380346500065977953751580144749717450592891626128332531901436343121256323988538910657392866924671684134310318820442454948302319604705354473887508095283537744944501264488535639460813090909497176827855515900663359731782946268194697344076619238825193252726351937098545701816734349313198980892485805779391904805141023659905200663456325150157031286544575523302507251292252628686625938356236431552501586969654915702746969501133042835712420713685277364727294156524918830535332073341828000080442406830669679026802689507671417327209763104683448336838989459714049165381894818388603799113078082653137998488477174384779852596021975008617020381804185868086432115261338567021602014203247560602717846045659930681001228054137741935859157066357640121105335812856470948813953046438739799792106097543310063899046359985758076253095830576768607721676697987589997244096683778098958718055526913748569977787230837748247730677939584799420115550594131488549504790000416312229447839866250915790063769976553900158964316506036730352436627836778686002040283963080171519084527322791702914561590428551327077203280219299826688284071207648775125014711604113518481286603465773266686604252094249438397341144559394029548564906313936335306336160803465888098549758063799480412125814529089256966620981431664178791678121226323790999489949059107471631356260843770274057813767190757646302330896131509394290669717211232066360842711858003236961243948833679338530269322110360615325017942147250164121478168000258283978461558930499253813269215594581403077803817244864533185914274454521117712810319461940238371696062161481918788807409885709788740634985310819671987594946503692454327123459210324492825246791236091354196465769138844491542667842142880019110442303495937839769437614335284103490240236221915153701346613705724103323599739310072724460539318197922146162886877290777203162765071871527068221875430555478528748222667373518551339358957969547448119369110747211286390691905191946183487915364542824258110053055585521318355341742486593455743313271898666272098951665760314702314888623331683466041450913832706701190878004158733138225666155822381546725291758215288049635914364829437920686998517141444047883457384247813947505318853232836094678127215430530153772437477513026290888922097252926704809519195876233860353287735730051653564430775549177416498150989327776334916979473541107709207910125092591625312080670140053900628721337752742937056375688814085382872836755155760376760146182903385944918966445722849285733995220000952681383297612271465438497444225012088281530532361464231353322534740040766567677508026905369129841493062480046564057464802710653004694887477907029240218241461385831801986328599126601294574198754338680362772861641918478764743185219873363093767787591501918496703337704192214322065743924783061044609767582014268752285768316495482870623545203790900121741424780915911553078762577756317369808900040168578663376071893007129924358391968176158595846228240256571019641186624995310272479828381983882078553109233275302708320783790265018573193837272029764922056912653833225062556161540568650521156585319393972657827209048505797270591368218767836082907210842481762941630038768597284173481817176652153189889985951066168216852539927333152908295872166403481930806258127363300001606170018240122120894138426665151540972631708173942310730281693056949479863178856593958080573399747084825810224211063365947857528446872606050620170423393445072758091831230442918958829227743534935092660062863357367548150820680168651053226812171088203164148108886562750694526287530299632356277906748572181406068588490361823070883073134493038672061510785793325808156588548884835801547688262790194850377724843104084578468635553369627147104507250701338062042709425018939114625068275350914082194133806451456069903332568384723991414327936347651426170447060953908077554224797238746255535905665769147673533479981060977251184615363491026522709340740698265472106128625926288447025281657624714107296554674403184022064180928479786381534853797068775033498576892236306208519016017946612971875131011571882360050134825220141649418605561564722706916687107060342841990749533112086024294895639260314204275464653315745772498090293584153439003052531773718047749906778688239521581503045659456614566695588980900167716671991523915569225082488512122132878567458634787503838850821215860343643834701164648051940766587599934840076519887993800150347312287803077891404829643670577962564668916541958563033984629578139584006873927946955326393301078244663310871534382954563452013138256340651331197645573169032077067710175336779491661609682743177287443411620367176498211074651905869215809374790904616200937928807354546383979479672714707041089913428107475515250250365429255567588706154203581639345781072106589158369610792112268715234041410388563769000658180987515458527002729063539858650895060400799726107139165324066011703724830720901710561821394125156131833059049996231226479742336586372275611676864256889124904027190052498206600527735813279000548625197341189819288860599286933241358426849947076121566960072872624300403657074809453642013617996209255266408158072527399439965559736634738746684803944205982239880022288982716359590069614305264745422934105576305484214163548157598569768698591539721711147587743295298907048399171917602105609873764331908685441338243512689316879361994196014491847038696095459594907454487328629204729609543510466766428398197206343038328800135220386866661603375757383751250200856446205713383465544206690920796900272286501393496512705140452358390447165822719260742178642204585322994014435696027827941439570858910225845898917738442731050344740785357605941549310007588476999887113579510669671234746505680419892099227108894906121678238756716502677112692087221379038753619420569441565984041961235613048435212520891778883289128391463628943076044688269714023928396603960166981440496276755602800170271018306570007145145294757577901403616125732539271891128345479428029799341422568209815453454804375837016269378265452215140360869842530888776365580365683859811091177520670514642025951565421175422620458281180087668409459193855319100611156256600282794395177684661608818778146464223340318454451403162321026037531667829700686977735263258517185734812859896651409902404087444522096453128972921455493753333027076662459904617667989680896157811036066484064426182386913124986061458435012654273384964784533842694646268341009532753501675443782708006544299116487540911825250645545060182259232121337486670506692067168001615103204086589515310801315425859271777534653263918814166646760207799268851715580930908746887119600909674925266654193676995425707512088015756316183474546059841958165479843696506884369952409652951712700403266357325166447807852348011917767709126104133510154709607082356425334994962246374326740201766863291021018084552608626266617424484132819818695741974043861940348121066634085373520713658281248465344490867058598551053961809887199582013391475597751431664392686456459346084927868776754450524511394427405141461489717493886933956242277756838356391845818771422987268445583946902933406976847199526106493399732442006505365783943517240592616080081003189908770186426274524048049972415967387856005104684409024704141726524191358247932306466308237936732784371584272128638924717715211794854941018290931845771674680795052695302919341015620047763718098414146868317015666383335426733579989557853380773230754224323058340454304346942843139634093858278214084856252889872495542970511549036399770398652194878010111267462307168827256540282907859611102631463846225024758597971535222039624244802940255712102965118552679620601477234238538381289347758941253655952651510644165454687194902185745564695630643301482359529011882440244493191406857588696428637907287010011711233936084729835939905217114574967888487511467769549457520227293518253571982643174333957543519536694237181370217748034763789374872575327929571195065179692779764091512207168396445014464438795941603597968817165417390646306542642914141859952815442064504710831034618046245115144600200401211918278573374735806999405748618964139131677060149707849431478556285225217190643943847050949353161443193457766284993476289021645946980047675608051160121893196775360504067794285150222253201333711021712900278346906499713472188532879721113602362207654248227586341661041198629669745659259846605498113511243381421307050653925577555340311930554225268892281880904126930249713917004280661218931087105407580243391859383027750092057010637382891507446167854756006865545088021763352229166396504479568555457394915740486643920264984277914051777701383849039456271567758339358402524999402628499714738831392064611936236515290512120995028412480862255955253166661098573727878843197977466840444778259070374172966263328266241751324465018776307903866340667544196664490915095204009061724750015895264483539867460784696251018377706091516531124351737750794009612418600437907575169207170460151287374325409707155054533322859945937609885337199537586895875840283185233513634918631907899929070063214039915715491684020381090331716653292656655577022262732454420267014092619377598374568858387675069129054037294427524139972646432139939789813132909525348819760580193763167848622486158698786194196460214471077713345477301996739984287593857003147858803209507240981282881353647586065257392919203695298595803406980501603995754944276784655987204434796409723295193031423047986359301808281738965625231545468923125469478909145079167633589048420830666330071268717104615989378258702827207599293548184609314736242557885115672011213711604629208605395172132660378235946192069700056415658418553135676135508758661319462608180661619601238933409445936725742826909913242502234204482944237597283963834526225369584505565196659254794319457663001972298020117181438928530449875324284607841758604242758274052399984118635532955364716061726699806633198444888784418040820087720849654785492815305736555361417673369264344038961599274916204782782624178665836903519997065146135481622571796342425210659031032660376568512923243154812468339418606307488880827663249707644306755338027755565319715139819632738694907518638162703107314309967559745263272670000425444878276340742587453166681231293914564356620316806563717546386147178706172664481448339005303190283276419562278556886709056785671481492955113048553947278031319586486193481103625327916645053209047207960789069657806495569188890639618463158032360378993705790988359347158325550365385679895529053229155497616343920167709992891672776999159192897995396879349313730318412801789746689685989120030713074454279214496052383428654845286101377893985652726574989880825409970752196159626588753272101736253038178049953827098134524081184032957528309620164183630997750825192597382820394306969643968159966909967833924420913680058704099918090002468726251012096075994730890510180015274476282216681430448932270844035897244142523717901110131819888244912034419576268028501897959424342865156510660697300707383775622464047842225331835577356214355040780963695322503156816061057425111393591541633300146641776287862256320743581667559888700298501154469738512861477866175829895943542081803562430920694107611803210804602090104654726132932068079761335888524299309375323822400110125895597765483196161531772439519084784836411505698950450821976438998141683784674986541530668891693123535705370838596086181171556408580664456957536620147861563921873567368849364500198319429899330418950503508601008393806432710512726499270144222915504206774651191775677710178201655674163086897567699642898818999155294900468019791242858128271816852096051760805264514121404525606251265441599840804105073546117734557558559155354593297961993193143477626986577895880360906079130221099703925918624408286118854363432811601858062928604241133963810557078518223535958339708682118541175908951516740635359500526024596062054571349311496833938385942350963369485230199387262543658835777074020753421454159971981868515015326797077411201220075907889413327474207747683730287536477955849681180281921402922904318560786659106829424879277743991608403592921854391089865550721634327764395925935710154283996910997297819103150205597592983737562932848068072883244198483548422000271395548460965249571471384295200109361714865527699684149723160541895629597570861182884004555377989785776678169933705291629105997686893011602594142334819349914703186357596425504164512781387310706731136744605500251941005062993658469688633683231042100519788511718765825689618290827964837275568486563185902041819375131653504310527156870930541799523667206564733326947976295349290624527424205391303463757909944359465458845727635033898374270165639832180941187447600908187477590921886178473695860750956833073698028136447984164268267397890429673855237302527236261258833469718914282405879180969344287688199272389864553276791447512377218658893504941358421504396315615059798004082905909443062811697148886551942898292795829427346294518915131500989493959667641350305154008363825533080031427474515894776821379156552067526755220278978246523881370371824563351330919793500200214023437746189068288193864569032714531388498113201341733290133334819378112299424832634243493898798238211181172949772465279081390001000832694193418813693202360192303772907559213961933213451425986691072363475602476834056368089551380085665800828498128416383545405195604323560174461982542941031773123474916017435401003988264901834838406968715141491078582518011051282381491808468015125418032919731136661535423740457634256872816599330703978647587183795133057347779793261956003632545811837389923776156137443978392082233885728513528290152041164730236311474137476424098908667459251076919508790870140215034571974567925346290372344989127375928701149558200255290499247428505408553774936319368828788441333127229293427665663935146904853598752950159356797395553947515543113386923748637254994859281432685557652784232808676257218602647979340940305965122496490799270083916876931764044125115494024285300344031681396926638876196011831943620034306493262185133216081413667765564729676661258478503406229754280807500704207460996232537490856423835713228237272958616551838403195062797916549897818676372730748742207352122792464432860139371837433507493755257593490651987278745596141050145631847170214115361252684994560607543584498789972370696711507158490381710391693574923958570850571795190391668799606454062373027902380677806976977819867167869330404134495775892798057354224430260381165271937291014655112416560564180769261820280825576675607659439150439545675800209732533547752208240791324021357145736285179162083245950997494070814792085983400466893940123935625513616036469420577615993780869707768102218688532910246362190625532597095355749464044976111183742213261846974516306281721180012060218293164844130391133109127505227995404308273277969638647009691772532002051224165801391205337617057971657243065761452568441236323846974570565577590161625461401096230737045328828679228426461780130536619369431343354894714141842116142320868259198051414449739096640337982703456459245777261856985807876393234148514393351328370415146358311664143473369460155916305308615434393004255855687442104921921803126311176371148235060991039033300130550010641174090755882454208328281556784703554478575378798896176160420466268873381476464018827041457959545142778355640589900370481022991027598851683709831243632128234345934256531509636194236319254037859824961912858674445704071128196501855531561971919817245020166033819083549920695228613660863379795612212741082118241959231602506182404798588365842083700922868509239969687501482510801226872187462784625374147526830714108485111087669618323221549569676480398642734331188070509664661318262435858774479743431649856916541760708029830536972148857139393398781883655672748473790427086338141614395729552491682920239692357421436140284471466705179360132816253663735534899895553715109202308340597425035158634377523656810956112355161241449586400338813332714965098501624583416455997744069097254855854281870820421942019007881090957364955137251880449971909923896825426389562800259097185162407424803550900596815013151387055571339958907955272833927018163550730536145418663105656162116205379927563272813697871109344298900097779966571550445418392644522396760249549922290709359743537226170670664646591822456713359118936285183067179074924811194012062973782766324316936985050402092936618400609671015238219295080537357514495812267657316597248741616082424448716789494683018374350969527739705299861774858561469846708555276950894684858139686941389137399794482730219533507027252647522132193640016499436872624452208266251836256040685847919961471411480394472525248626675224105426385571769382835948706425954139021090457549893347219564290284541594361954295074459406515222523547392527535088308390300422671105723009458170235288548768182433289524071712082374726211597711971727247006762215601670865097227033995173318178040955097238960094940839140942780044940428310430990681983323388044286194397936533328062850165969165750260361486334709828060503853764751932072500150545672803489788096098765626782575943448643076686978791296316988160584530608099051076686199850505961396241932147678763544826094877962061063995767878409474605353384435714571229088543654602442782672996083979926682561805183084434360092653461492177813264338729952842369649344681820620666732671217483027728863579969657955432551681460765918113898494292919950999810506149478806367920406412263157435635860399948396629314488583621830727586659227282238599511516343507892915533747080388710051701656888630015860845783882641882389404534879335572525918700484058859130360523393934929375263918092920927041458782014506837048986757028601634059707151314590171523651227124195917973162402552182028284898802857956507770232275575220730334145001273310735284146546970336489564207457933846210025962879364529088350447596529715184066159622625016366395124281450040962382704335582431188635657675309618014247484805165131572427536599884963995422155910315074735321195897733814013829318297137329874812428627992008709718410731674083240258032860159903689176728749831365745052785843103618851242021858601839563684850482166206092015628612995430995528484797929293847358369106381846219470538898924453099853007550323729320217022826298082978736949383787372579853606990368160824544135389993801080049311259995038682591054706459618028396545104883600993240883903995556697271569059271263663983855032355533541758109392367700486595479586333842979935828344121568922020887886895100773361332844460760383013518503648847030797457847498432462597980010566788801062373261159977756677537952111119513306534759096873660772103077514968063908576225111968460408175722616362024087517143028621880291631813495352898595765324723275173251653143631186988854018204006087362622171482411657132834376522864418167435436345724660610747595415118780887372971292447173913132846090996289870419393283777460428980476757770524244019982097749278834764104626750439127085052480203826342699088615634899477468556166978614530931293536055336992125522366882932025096162595715663676332137368943892736063861375105367851768254376228759828291938391403751624539496696904386311173140249299381640504638027250870034008395083821110696700990748700951404031216349567339942522875331279994125309576143822025016511100423156171226967972980221755385111294622933579249919371815762439825002001000408397145499727902327753680693658523822799000664886214562988451166216625390694477029574256656334490482184596095918194467355903870412729503797007575135737159175754504440225089570138046632731905552329378946283917645763441160687780701518819761649249832486405840313007632145048948678404068393972968428630860236891258179558899679749661898984174854909758033374248277390575661890105001480417844282048097119589551057254314741572240159057055729925368973561003328784856184247212409811353784470847844622848747242216984372553028948192676530836725289729880638073661264508659925257142784230044435650911380298568947062212261056449266816797750509384301114318840828734904078918415646428667789718218029305816702603025496852970501402300131129164149043958555647359406313059797740710093131292559537212785297672869934631176582784349756148004141583942358310866343997669823655726220724709229914731484043258122989174403343803578271489889925931972071090618438458062865356923668963357355348762823480914981470429166008608135989323537002008628585249947945784145373023181457091771531716120465209374440032916166977000400693911280360694412717331111441071107793725125290770377829413425010894852734975276127947874563621889853872019081306944009784659305983074436098235171739275710852589081695230972130176431369504171953867701148857877663067037148149193927213609627447605043989995273649716572925905305310150021703675480672633294596575865705051400965115372553393940153728937650905360771506390489232884481673495526726543390322932192717842951178477517068236788432328766660135366101274289819938521353956994538797485388324360567384458839798057963323709490381562805947333265867418882580367489765657497101806346121099368445166861092004668693523078846147017622833670222746693914268486705964645164927744718915860682617634724088047376126388945051492231143355086187396472152402022617504464599924918557154207483291198606703804968497392707438583445023945819270770144672443591301349231933025416626604913605217369422779577912215211079423208663974416491123826009573242107034754031726138957746055100372231115227355629526400441558432979139237966307289750096537027350717842579399670644196006949972740881368943374987976749413453018559732577648313493872157347389996450350306856335460526664306733087782174277307110780377480758523666134196890162199750353472668854280456800749345229927183652892309218317044577536979635872570918802710975462071481808091791938855454032345370193642049422708462453390440305921197245740044675884206681579796498527017712857849980643228293606855392535187766079739970859097677580053838121883709624073624677005276997572609091126182752815815010164801008920537700763986405005417793084528585461642834838599807910576009886166844356631983234691348737948959830078409052761043695968899286622074024074749279798209828824299106380277212048548242180242619577614156159010240054741385130000273535546902849323908735484491386000230935121413118026302319954262456876014293279627342424899424586197363157382084991026462816848494958333723555992550070768627819123137512896420091585661551460262421713301375483925986196444964702281374702672746254688260847605496434532321356873771693393502173902303381568874100104919163118221999381831016879687154027993842852143342784621460605098052610264976650116562090303351827153737579230764990396745232662531853407641698491242611115792348098807357416908369591666778847893095377464067704342850487205277450916679299520014202757943774243397873558809923918900225899646110060813432377965352008020027039004832001422980190468421565453006247802707982369249085407668048919484891993261819804938850417741824705728329926568884888869120765912183491762630116571329281400762533500766103341728425921721543841865387410474370324327685715566549204830235339207147923335743782070696847460724892043278772317511151805053360575262084886405054100476056810338071631803867122577348571154147955553992607281377453708785402718332991552142433364386519420260053618661025643696234583845109823970748356185566470765592012384065838863464573085715382628825894901016646260979119583223698270437605520610435847074292800712352842765995765350494743589803248511005748763626074921165551497795047288172342981685002587309287427427785337372907672623626217283485101655898243128775507971473207095885705144593698568585542209778546134960499492740827120528837788988475952195482287099744775845820172121615067009152103146719513475445098875380094880282698470380188137932497300499854787582434904954997412379838871292211158765099522555372839119064583600677677729171626819823230712796911794319518215256805212753220394757713627855335615547811345652941399195903198230622891824822222817708407023426208977344134925638451901929701220435866294180148259486447667822813238284358580050356729464927405541619236420619427825621347823121873966600080102150337898616986293302720312775116714916343339845484429657705936514999320810944613912508117415369099480983220641111239226307098306789536230126616595015834157012581732054434730250305817396517011973193373327932286953584743352500218370452407135920499157716010950344211759091908777858866335331341836067348652903475245090254558883204976302008589381896919923083587899153705587938200941775120568198272765934033305707052672357081519670797057255834112906187713961210579222904450464640643165714617715445142266704230499147864681326247832715732604573258589528515083294344876479834453206177499082641979930287154291540644000472859497616275360085054050437713885960986104532615496107633840041961377321009778012410579326981683459530465462566711148670507680474764953230194744350423934371322258594271327306623609321893736004307732249768462488393994849122544449949499495601295947071679231057608063928357071403224799763458702655294984598255657978029145944397203731665170398181287959188595098788381327657204008316151745484195757237730851620833659609402897308230285969369903555002733539465774453078185076872818024236277930367561177261581741739758611844593808445128689658190546985166359073777197314234095428788710598236619891355327244423317279908931791973565881460265563066226956243501505495659638932085020753933818060082072222226756868325977342187376852171853695148947335763062229019341972980898854377476089401488938605801825069427470771530450133315416619229428449509568230960155459902432329896342250711934965997315260089493846624973381536249705038519459314094001483530668687556642608173759966630730471168218672040420955932043413105360388998588758284789272969241205468561013432128192378892455039090188267344873041257785112039471645616275940407276160326979309874329678051052187426991148723207364802736098376031615943648842196056832067025062665864420656141624756459126814628382882707229875036622421123100445465240865058775651162029198114711647985095729653907535680624423569399386303312267382230378729379128291259976073881177463848761163381705250170570187499025544049002991740080291784756313459880725041790131629336223027749939845671310946975276008165539186728877203916631705737518058400317403951967523916731723877378585458503427477191753953248633563459025388358124552690679416218327473629764829697893257209684005675590016137217589370881569055940296431876520368953497848966073692534485599206146208206872684809359359539491410044499029603995037470043530072370671890018760858875950781100096054903391038657981283135889884084447656270812953569723387217553537070144006168552376251212772319394883033692722213025271101849094658975066741094529683021254228777053707135553822801892067561984782188967080565650031418355524616233579176461775462298213993520191249542327314329159243343187128998599739055709044710445365348598527656677988180213870280134673246007632734204870806333497147821688254052290699873975788189486760362516103616583922337591720917991139089712428901773397756512599453869898418784225536580953824995655419004194691916021864304685256218168115698757129770113267053000911297407457576658967416016670316060345277081131900675802694955555966299564707922707392764299296684198708151976926551408721438411335390940919514210637447446517697561192573638076759655126855295498240144456598444658177382320490592773179184512216604362567174889428166319682286313693404798776514161399093694337297483830080669484890335870622782882865843597630462275004263059698597097848477990073285866883033283381849554864378755072055108392204915601771546901740538947694964648011753644489659055791200058085431607208305971986240323033495248743898541570222485640215867406476729510378631770084892621886464762135435930211330825969871364551437936506042043293235790746385022745756217159167294643739402570195842142185246024476702148526814175331376458567899686105384745028100270865754790151530765962052457874260421268836595028975330829828112153285843562602574017004504900783200911012692368023527163103999100574495561709377235354987986859317689209893160612036792304989196664585770559917961000002099114427447351986632138211205870606627791636539543828083121302330514247685790093061133326653191822351422146712183671223773193313437784446634837455076353431142996348931847922758745221580028580559233885351859895354179225588314413298246612206992510922547427122149901354271341279224059072436268359152546063729227580123647236427007753909517555990424858364802218001402957810192246527628391732182052115786704162176996429128771272054113135851340462694950247407430045711223719619967798115839823334718084399303295876398162577568303097452509562658209989044650623314080132885857625542820349991448414014111524265735673768344852038925960308759656281589621737839186892709767982948506709932294772533754767082437788442471819752501626834801684610042694469087597245956280891774794273353383162845469480476215940382782533215502992259349633673346656647710842641812496650607056147956912483071167954618920199895758545442285764894271638457876745201448452822587536804400281839299937496934595321959704829032516470532356385582197877011909668752398352134495071652921905339584002830978219615746164458396052441530765482523791120302291740724737014049699309297761772835436460551540222934180398227881617690553145630906874117032815597134280907574687919875200476248193130232689894816966815271087533558358786067692914113547437179190435564885943033550382408900204809929018773277061165388460007975213185878773518893914822356950637904095499598472289321216824704034437784048981383225261251981356186947044515740176993908968585969716486259701417964930647641382735442687876651774086484647467370641891840946514479480753936031285505788463005904165560799899548556921510932521608190102210425574253786813415176398154521360762792942819995671217801853467811832299015090532152655276860239044356236071493147535355809453371603167648093334760243458189210209313052698327238503546719069497304557538704603174479520836209650007657145773533622610118901904423047246701400442271328857875510199798511145635355240275102207854859490812251425002075270028252684332827700627270672595615918627834111592129516448361849645648925025281626455069541324420251225476697899295534834621037605182231739029708482659264072270630897816063514111640979772362778877429761214346913836454074445085403632279358427533158016941656807382545077467736708715291032777104410428661588209955156336181281916097585899915969606020218595192536741315231683153844622251197191327320857403378485248148923194504861048034039446364620305782291643997809991838861251267540700186742475634973492380364539733712847919628712368069910048701752887991945629737526667364106389987595271448413471136929019358964782309342823244301175784785174157423459207202708744776804083485899179731645119365013047985922967113395385397294908546773718256509873003918701911430818549313386131299292991175966897693240787100116914709418802272426241203223206824825725832370575326020568844947315111762255825693482409920923354716757259098043058517107893985422201838228806249149794232835221557058342084831047830758271566136332675277888568644542280179456544021811831791251062044674091636505269619787428238854115758277022942010357222219220851297453834035312507367644705802486952594235685374511574440658327591900053766191914718092202671031309385622175043739825142283196060171642833094951131379166784025467745689767349385203422363656588966542920923705486482565086031437620735354693598466923864740639130191906915739598704275832226924774051473652680685963106002257027342278428314642206820420436422477797754166244574237216855433694593973857648186251344174903434128880074342479035755124608066675130779168829546117796924937956115925380337363819171685119271528136559725754188636513815989713388255373572283747611459552201667432306410195593863159502747944229962847935547970551266563032329850341868865873328642116531053615291449400276614169912547872790113788901816892692011709578356235929124477890221156668381037680832667146828067884648771341318559063643210400112663764746751010958748089963558274812453411653114405700223877354733889868644444339198816777420009259838383657001454078396263840345317988533670202467292549293251236347983437616189742708595895201538436772580147074794998951446036064756086378416685868295366942674175487404081951102443783010175387271521226756930053492583550393584728273338063055098151048888133797417305016210746138975787353733940878371655614715553545556790974401674503568819913044281840845745660219632608085015685485122517940737524710861581264469479797921671962034600817033360966818430869407979211041101812938785726059101793439770588154627356424387633937948866006596495656929515095372261401270269320541174390695655644850666839965561205001526267438531434749840600397958800528277462142526189296085579896017267160921234331306114292388086289671357178980863831057259533860805766663407147708398173997552266926169748557454886616466190491931807004151894851167041535360507061714147789502315192694804091745977965927639329497902697176898458324199122700827981241328639205594309079898022481406489095852811400566363442312306151409000508304040643761693526038811334473242834388738374718319158234863774211404597128343721516319391226035714028861520860471638603719845482688193278723235043773732314500484540516013736568675531622357044817172035159223383791916766044695179416059947903086394437043076515456323065814920972359368778670626812089535997707126776342169160606797357368981191579420863616614005017607844149064806206341926886364326144873895166634853191113965415613124551663628582546460908489546978047820127333014485062684122905739823999390608130726738785857701100962160433097118627218739824209600588617630599791474221147435703777337957799934236274365263268630206906141962277627330392487877009114149107767585492682892951199486165918941538297629083504600501072366626455942560218800552006182345676269324757806566713714493204695762107849014984021767234408665672749849767461138599129427741110401943674472998865967230221725509934661845948309713983545668921839729792872796266769466706900511813568927560185731202844877270367627879585105860452355698559654394179628906311353885288797172807267884261882069661107429429334699843025471487642684634454886669688789920801458416221693389260494442560461528955405382568875312041277431728799681115406478512714026431852787018624293948309788121667332943444371923514588654951591908452159052273213749187911006830245972998760583361248993184830281678864758923724205172714682457936704582917141557792791589419297178059508146300706717850077264582235386839446572610849461235920083995459579699689366715791172889951508354890748047506800608147279264781268830716367898658668585549098601763593927944026266357820845144933382202730022059409138531893691362684421620165088230933494760197925598892271618869243789702365497588044911721083382421833007113798089538376553309844379507914370878975307737914343221489853992768814881751161020309984913488590825685595374018427666386927719354844651947730465182123407070413756608327295794275896929490077208528478358084657591431638638339309980556212395606665252839912117347978428083196389450002953208949025857744498847024120916655472153767728453449458882308323357024484220459846786764867248463230771595938238759206744162854896445185550430685679142201553181860403145784794520617638330111013928577258526731863776636980187658013923216296888790764256852497900910434284076847277831460536594373561435473101469172108049142948930139795156985089044449115236270597789206527979749730483399057593549066416993623502174226233941441889998956268899281317988114308318756508025482286627679089099917317670695992333814610254664358085470835981767917540656956887679444762274411472143681020315139285508488950175427503776649376253460489118409480026956706398742205892995547350868948747031918734312842147761140363971006676550646492618674646431040108774667325020094377741433176724203472967388902755134229496240401731839485189931747902875865470300376334881956333260330098137682685494709813132562526751961309666865391631421447834245717881881391278835248667713096524402047032562672592607048476571800338663479450610044463737515529317886484610748792057539264923938862640063839096207215612001953819426554296806927947295911424353499005544344771661929124823648624985593009142691362066388312723551816703151273159738065595107667805861929601507854087731520136291851397613686673373402474022470275582955298222443473627789661346722801581658708145538570408285069148153142425318648730591373151572736588795980166735068364460650894898249032600074748486338672009323528473605439834983178135077178029012028841103623653701862905428430673160588885583353915200334193150015610578471673082372947022609296505969922548974614262010889020534117019860539811156987721735257288903571493543560077348886411852829140419358271132671098464973751670321773365210876988275265604551544326406744609164794758371431770982674648860591031162400264897269017431412568459854016357100864519599844835532843771055257821493457172639855524452451715577633929260173677662613804748362118842488382748746918360066651090202224930628079682210263468290493528664647212629158801662079240808358164620541991243699667687488061261864722457454562803150606289866469491361538506192117617133126718484208465540871729807464229645185147381860427739345772497649046894779089077401949351873722617871716695548580741696306629902929045489822149332265199264236194960482562169610930057379262641448203580142808163214325366935089766685959853413273490435599962124545230549139484838645387923989557546052069994969276883650236186918738855302132363378980176143079149903019225479852616303861111477875775334463070241695242650665014156573765320596295572501347813306407585029579845805622968442632983041495673119761348706193897083718493912524079595108711943855522714222106772248031488735977863326139789031522674668562012610512852350497322995797998120385866818811810606223232834125561093367125248397925770913660126492800108906496543393851688631254054968462829230019033793968334034975883988667544871858735890395401086551706411854722584221263591218083905411779419117288974296737379129058561703446364978959257133648289332810345521357730916731695455743846664949544032970995447896108089138779334853728989484725309142243974985935595597647870872348539307350016748588301324470972936255134044789271302223788538245642147835930976646372607607073396439773759736516209177621924636340892700131492148504305475291678052380940018099466090672019495079679124321724725771312997667106267744305270852434532048519240203381802806446529946680810969259069983467296383124267917239348765820206843963907376131664750385921995424909410615483783482419917435554033930345146192104660903757539265010970505600929049559529499715658982065156414834194092454990396878496545269018382236416988504556872073962751287506210867671017055328871246132023587409173511333560146080679385918945139629455099154710909317433232901322761413978320283048859719144023544209665316331137240874956604757763631937948005153997929327054686541277927427707033861493361498649479382212136116867454556853649432220445164811510736890954168139072142550908327488458846501469066273245337580247663425581033446603927261406540214383122830897831969917026299944180629110340426271674988404593900126459468379750059455315238388135913354328087024467140109846669698192424266607444219780566256206037979034140307162976586274255363555824576960741004777813036679602125563585852358308685662842826010436441433153476598860692575762569696929605727244910769281050998512630737258826517544998269909258887672113098044561944766235847115206867445226722106146747928596103496498402719076857242152162590653468326588043905139803843877854464457214080317234056119964260239480350458199365710196310698371659643339676741158340109227180111782162750597086731271257283612636723456568783903553265135202721473491784352688381926835297344685480342913529868353795744087211234460283408938436559484305513426054492384680253398143386706497909869339793059752048325719219309779306706360539710433696220817083976181031132776250565054242469797288782558831974905119727884558590289385841120780475556516322910394663177988428791277737881380317686730837110440975997921864903562178190513166794677371810523618241723103071724274642304065099239330262511342542767386438136330520880373243548301745215138893423249925958240109502611525453288783501390260453581485766440181729119147862200963978660192991183232455633768346301795483355260549594610491217405858269847736825556589701268010517286808456348874490665535015412877610733592013408080980208376568473599819798743996342926118999045702208812852383757664945416885064636066291669706274759226682570719505114951522877714863999229643748371688561108100145424456172711260130255769194478071848572075870523982367248315605369435057841128390550639827873458608764170292823459376192559942278352968798140720412058212124197995803985437450426083728673529518553085648671995135041681005493628133358693413358688907302702763344123866481693921289186272857006862619407846864426706819985620837075830896154633646575174879734522298654004719068519181096443916358310596840463710812710403059693868750098709256592266397596761075489124036556569828254900379988166310170050217125681533019862302821779986336238846108821980309346118146987654712368965126032298943654638211152323366680920103045586253496599079267083417745290738687173234265216414864439124935412590071850802240125881765680696677922175992116581832692134688153802361771312782188112823072679125751909816977058714247542950362087854190393158555636473396047927751564199797352171664544515020414791005200541427598128209843563553920292333477987191838884627193137364374242047907816862000033717913655129007172447540438963896322954369182323258820112763375920650013454703761863506152467756252595956925118202821199956936632707747029993702595269840375338650231087256061925345522802823256917723537928818989025385146816854602368584520546870725334058251591197135207384934616716928461760283649124526768481839479098634009111470241763395027410058314391153255728892199528468536305493549921788638800502675107828346315298562579515940371629705369643307549672230409673692959971668896394080054658940109937962861385147287089937635653265284333338807599400943808113033554748449265713292273608832859240595107774888120061566152822076474419979037525114447407537039782653089074486220934126178288126805675561496754108483933962400227388381385111496545715745683491065257022066834138368167055740930786499845815484501127041795785845230033244564702508854599445315759924735370939867132478489569423889729595527387287482309784085138526548083288642925861392281586413641495709597964220380071176879840968974523253708308286078890624553447293085276627026031110680661651484437242478949034334985887632268598631640670637620306832857669267204167692044970518916751047402424486884928761992326683176170895771628715738265387280860670576552626409667913960580951788509642218584493958793864841305102380793921076995932984797821791152283199345445433536878230909325852575255721731916131364565046983684451204485218259631777306639038222471892149563636021314293983727693656593395573905552250317322957158502310401996620129789287954188698351335695591561621582071297154059806206790187257093482698800152696667888478275585571868142067477861317286688228813351139781737662974635583344263688269900607864030998797436229785846297495482022820536109851724969450351132068782704726230300616931768252394484809369955147190706090945447726041499743160696380122931557254891049137170409698789952751219713542165693764343740781680369376776089190803778566104765533818006388690677086836766250606198803484071014985174830599800489565078554279024638505563907309827033139722255537409625676955863093824223467172929771020176081645406518923099199538856233783199668020908928329601754513426380101073117300701749435868959290471017184286520700083763626491821255696430267345345110661271324366151927972818234696480314512347127222651122001845826920929257624640815707385095719486365419312377654237027396210206801218923855933121480447986369774771826069754527164766269063489403959629126337355781488200128944056931790481159167763070951653151399196157208211549815979881613240186721591622938833291394717845047305231687849670156278884212996975513433910632357641884952674329966285442529290749609878984066744599233730602119214632988826301234382138310404293413778200826210883016691202100748729559263388391368937712685229878289576716124977704215466091029000462478930864606375665485880572938447988841107025133351509078478432529611637494432942747717554564372784763004866199805006801351785553208862801653267651818501198673693890439768846838351835951492084827295110155622848422296202833357404453469800294511685467789560633830718517883007544115512460568831091664497828379036586300357662397249078131794766477380774715536739902381644813443010577607607406293939925458231907659200643096466352156322146644368506828084217512201064268768563570346388783432685134049941038756649460160864286735786310812818649326589571306708463831173803963868832254940138196724409268622255107190110850303103512735798689871875688628533653806624401658242147641368190523005517339629093111679536390870547706347483503688609996963529632304305964247642070460218188526671256114310512496211271488677977087113340753670193815945893848025040807997119234502757731497869460854219021905799564057572663915019330853908148155977593216810175447457524711512596977667559716151847268001403320273044223362097830607065186859807535181613021222577203080205160626572847450984632862685435926091458558439417926951724533682355623362296571725350925382765182420472141491393946753519231635132492579181595861433586969545132733468568865871323688556509185757910176226367280323418318245461327147266712156640921923699183894205939838849784542517963741918181896782475012977325873269169210352592241834685560559089426734897724759918708210562891932907703831173248983372151951849038031557297316194363154021092421862445961437420113280292408501165667966831763958572417126966909333050614026765671699223724974990663569237496971387424415599173165141848412061586035890346540739321014918981116422092742251251081127645759623939532424024835142892672439862334826568594890245950835951481104480295436382312278178840424015082290681111142643532984473275846059759009306004689007077816669351745199028575197787023197255617778014467743502640613467568222325805207075385345768660146440702130732856182498498877994086653672613638770253476610561986340867380716722494311464919282180334267350984865085929397899192321819709994857017642741442042266655325620165495959264479379648471622622661988043825973133523626199870653398437135073226711912619837440437184312688243439377397311669811453124520638329657372043575100920743900661122194582614415112305147594133550725507666428459002461459695840269688904585480484798205950502341550209820980653936979237946707006149440308798024175269653445237800735869716953488958957618463153855294637645535728454717122665513729945439850362710117959267564618489349498136302064360273596184123948345892726683404123687080523061151721216146913834014024807752334793265708814700533486858312493436722515831539707135111179692883467025455081117875122864871737332863404156336758592186538575623502749973325748701125221097314670309707774089184405910781762210591028138792549481553518162915181883793473460497492168825483337020118685032806160644824176688617386929060289081416944412602371925780339339176227308755263775683697638301953937203064851745582305382605634232705557941788857297971980186685071017661066949828157674782529735058448188163790922663790403779403160466108278394509983679468280397150638666055596853992419914837757082772186141820102463405747901498203481884812994359263745803707927081863261205663981300736102781958423441818648224253480148792729022979830168960796404548136872551348253114746701824588313321727363908472562013888958038037800557334779523047301638657285467375672128928675446571943627489856407594155091948302679067301562062940167216704147054832473251882966842965686409390737073695980059418886251047287779084796813401236551763697030158021244600914130829457978003302694173318754503077062435754685340075945405786797061056727395058369482906269640563823401329049481393057691442523868358460447550138162879865563434585127597696349327859186509148559921774388264973914232892609613209308412214443277159763538754328507404400348146155186131094349424903274940729013226764291516526483787516847270988097858400025849342141708640595893189728753622742631893145391075243445213099393246834306542544175605530678832730506292774035346063601523388632913283475386901514859578553463420454383959640815650330512534440537496695490749478172673496491790267303611758130220273628211201278752017475043343806292878611396601219151441011482508145972686834566012584435318675227724152159117440774452468649838439001507250900649997441500756091059599202962287847797300611344126347435850840444915834848935660294085940828326338482390135831852431311077756875838767677622880301775715810917651311505498199055677647515179345171815450009526621892503136647414598280320096772059914396964451691496629763244067957626867006927681094255782639846831254427970875576868836657333701035086331423371637465158850844059377236097045758682966295158972781582547691506455406957033231337643264024074361239760689529227646449946802948651825976576713363751922907382544473221303041417772356767173601428577473758487331895119251373056501567125016786256821927905562559060867659700435788444866334026465384366452769130726516131537525737608222207123779445532168454042730709249765672561044316333668356083389245078953384321760184251382693405626041897545382575749611579039847724852044709734035242822670539934214820592954822577202764154307728702557492954268788455435490100451158931388024761740494179759956762560480895789837606431123536000791957926444914274013753710363199366795541824793886561967577531501032362827305501446974976294000817118711320241182664422762464011997872218342150090712240812488143759388900247919057286299895710449826306070758625630271442347864831921548567888196878142181451218273635011221033409482345086519803100820722673675116948141613392944022683523310954860566457566386850049946858013562452732443743904662146449944153872265580635385612363971214786739687804188807312943491877958783127396911462186786399308451252942916964844554349393730863928568723702514843313408939237740882190344243899466569266410803797948193765757432830512771258884889846967859239742758995090935608477938245104115730046076010275557628839766713824029709704068140106352449858440453236923483932987949153008413384580755408324656631091981018585413603307043602523162111693526098126556408362743635224477304523138479601861595486109698066537314955860277616466886529158544244175978107308922806245957761905497245153733298152394412387597475602986799996183727348708944524998817957964190219029231551088872022154085718352660473661006863736327948950242095410830689442216973140696783060726347763182035270159795461936691731798805597175808923650104891799141055335899399736523858398879354613464878101722143866183716514492583485766367585521756503122871581545549791387277548944861460911964831682370421400971723776320369628447362563671984009376727752947006575693040161780136053780131166313037142416424848944035021513730597835341371517134538918855861487816856416512010708853979275517188996248919974551729233062330884921960797506468666737827036346068920975464032441057894094531024791570527372907681295964908282860204792012183955325164147619805084596495192815486661432362256067392294307454365499184389437836544741893184663548213247405803169618941404388289899058116689933866210726178487001730495355781683039868188532314225822763465620949563055923889390314744547197358627080231158797112359076276723658083933514645543819507745785046479606270761227341069655619564578157019665787192053212592858871737738337189904267052938839199234835393411730479948917350607475161191818455830272035695491559798382439059027381337963963883019154364414190964585933000978369934398913833498059963533542542370526714811326694419202279892654970154570444684314964539645643679269145930341503665668778605795089564109377159594206258969335993468420975460937686183001584608336225263292129498333305474251882181010872599401540181520505305083467352476732449427025670972817641657508910600653370901549096409318333055687279769742347934805751061561435413763644986505945273560660473822258605148822365665351211386495544841961582577217373925807526356366269140896603172667192677689571485855543956880198473904824830309713471263042883748424433761178130806452688586295863058256134643565400399760286367836432211237656107756566675470311323285658014675466327157862901955481029157903667209609123800177302326796419183099168081145969143446095896222764524280021485836549813507073413776288802760038823012681578389898862191769665018341175139836939021434584622277190745815768259279631325095953884310799870327112781058391754728351677571701898184839383856342609121261256355181751010032703606825706804807332754962798040913897736146200588650552295943488494925646742581209667839974934575295707961205181115284505628543169669231587935745269982173353450319007141834181295535374170150747694790975387945913241887288999718084588539900217179665944930347279682113038778802408486239563665435709660945025051799398470269997692038690405909832732217569362571334322500382421872043124253064063693535798237997668846798980681524583717007091587800223000153361003936280967078505662584693661182691235736615717647905713279296523022702910797290840096820351734977977822692178072671502409556620421714270378787329243616900004435378488024360402821000473683783511436220749264709167930513182066423645342373765749061610156815317758296920445581528248386943730573951993445978694887957184921591074283031718056189610842644225326046289703884525625550946078965624293211385773511798549049889711001588493341847620649941783276441958031612320094363255921145174139034523780590792291425074306126698021511924595205424604072164669807535103880471520786810104960845275970024611921835567704971015329228953434167120551605929679966663142642049957614339199452177295969726599132021412832947192495396972405685742937409117103689085275941885965977100350316673713901950599636446903998723474668113944117977771660251488384420499507040246418711409371759134321614804958597556096499235169069364808888144928062256909809226289145836711191900531410894799135442508984806546118174419327464348129045482287914094528222352031999795789701634660059398341094770667992404028275167414800804822573259537621219936937233007040417694644101677727962982232951691869419952641335972305796412421182418321972415240071048620768356080992037462286375691985090805179532795996528634568971530422750496641563127819111226360294467615188339984539188170550146089154801866284356163720962638462391490866160395374185122813067721993974469354100576289327682690809661849908203470795547966914306212841881390127394022227954830802604174013890327275494985487702214377132950098382357077688517654582692583376635947592152993861852746588844136359566586599639705074296820190669448429891690534687783944018158727006928834832987407431046011931982328316030388421551264306730822559416638103797585823256279149741519316940661567696717635242451244753344474357257881663192077954579095992819985096701531095103466629047894931321563385549524719874197513141128420921361540239885870990461213772104558528159314153007731904748877588947397550275489564158841834380910256860859848025026910801330008306561780115191926274963527161063954458638406013711617745135452072650998331535002778872305572590789782744169813940326000939795380878061367769187054507043118351512985949340131652780017566714924000229784700713322220985927011971239751726033481431051319257189111954018430210094406816203977903897796417733521314976952289167563417371261338818327606403394128050544129811260249039650977198656065173542785186966909344380111483899705722632592818084937816770784601537361721020391135636764941041159270913012971794072458550955209592502506957368390392771011269043400206838105089305490296582878795877006420774046317061766960317411254948454326805720014504207278889907653354624574876595092429962009604182678770846353515629121237358339095024723772616579141201892245197192042961823489039002980157721791842315392720669759876253885690221492972235496336247378406806178710526685460319282853569166450662285679576181462730767384033708349287944640710311757229174927276067437223387329329297625203852725031850700396514951299782565832853198473350738336176645078778923777599989224565884743800044221808850473268342789675453320338878978107949257571260175914870310741092888976987281335582537962964947822832742335860023721549522641323649154614246489335409754269885856722495283095638887285908108411786618407503600862840604923463232909547036796192952794658132741042749444760427303280073760307767599937117220647308256422774534166237551100176332117639346698249806341270912541060711444892724520777974755951244975299656843159051045530536232345029746299823125178976032327972351904267221876759761433361331907365920245153493628665218201155090019354592745500716070695885207469660388619581554847730993109971345419525579970004907449305738342474838440061340489962998551057538212547505334916217093441367880009084553439200907233576737824597118652331900537003061753797255500912089776740082398227483816391700279607339537949194135807571364517767598969776042249303981838417734053423676583312122215558052067880275122421947969433397540569604520616805556274024700723782286336530964728230524497847738754412845966986834581415102336415393121505894103902756653677566817937014705685241450171310687331634612612780129777331217559936613037311250042657101127687154078183778988328020170140215230721018033606384082822688743533855088433351309111548204841419613028071702020047181390213742026996726119104378099136097158284589593860845580057819278210138836908667011065190836941928433097557944803681831753988992566033959972612687062401297708635597230177853929516500476505444478530789319863881767971954858747239950973854672066554769514678650215289798820563936838167851287477165971743272750620615185431112702062553805194136065261815350036176534713350623770275171357517667903013357950809958022164860207585057992290617708747292805087239066666595645415254668041649661929430414635015018796456537950454906643250808821513326100336096989640628535623509078999539711247729127118791911250561093363624926831923821595284040660407729993638209824234045703615853561714991945955013884685737446373907440808057293169307121561946056428587014890128028229013724414103657434035863306317529508433073321285041825350071713791422599139350665639036390502624741540995322721099702094725187196606669586805016107868836939485492181055666491877360378613060669096869296397468179916984962743226754842518334693510367782377659349806134361130005942763018286720645988564964207004676399935826653947418364222267583007214547167876593799848766816624009462361746830616981080040088671941740923516939162928269082121654548230014669741219688192103623083532024132421073135147818446327040246115909637454108740843986523450971752535668681193458870870324014378237599707648638468202254415472577350542194641290979788182668836736026422218852600725931875004444130194319877574358190081402281293115732139987217349787928047392816445552480279825800702952803255114323564570315949024087450941144185376124304731165628726184739085489361351547734891067566187826164922269417801738120110433047523581747087780211583343282918062251351201015706763715261043308843266394615484809591351278293426215052569478486638822548723456514491483574217807312594265004940830060387896643398206255991298663211649264666638208976464037529016562951341109053204704812064641808830202817937428034611189480258163746005213936194809710041011513324811813747607605909743791541697945379210417585690203985710379734036955429623771605840782104247500007635136124784516502651834214062773129560136369887514664714052434197548052152168548883204987774534362262916306365036846677353627759515422404682151484046053622668376105003794622744416176381873385790449213152448338199279240094070588751082083394127891233511791796762032772401361311886970273737487049586284423860951300708187834393898992478635958066680092598075002396499160963075999687714194334037011998977586370093053187696769548190032607523440288658978104057290349885374256287629793544665422381978206051881631473961959088552448312146966435600750639461180006992315109061926350422740598669977287745395647149754567111659479848057308813937477231079411298444171602295404959179757132283854012481835458402506894067513305362979633030639338325652654836625524066565241297186610909996019334715693843338933855475929430512808295996597050320359794680352974640922947524856983557216869771060059917845058455755415828330410183256388658199323291376507311236456002838905239364985041982877276156495151864511793564672467703669220696661819822732160302651175222020319928914962734726847627363970283225976116129124418104392960065260609812308234510552366163147748857132538062187367313796255459115017323175380188976314918329740721408952185217624872828218238528683538002139327380417124560594267477334154664631049453781090323595154074716359285059348958507465109593363949043450237931542734317213395119833744335701509321660328909206000647575562809741864202608945711592342238447596621976797369610605231195910322615566886471236758266162155459825754853289369011624426866420937453228485992181599246410642982572982756003056176799979261645735259503366111862114423582293260622920327562785013785055876521137117474239260144530551309902716858893111800615992830131275964715902643622147801119184829005462164952277360520870350450225541915307466060210216605167489998182657708707427904955624522652769434210320712091116662967006765419841173167093279336832259362320935372502512481613017174682543903347045614550121776584232112288556849910753304577804968732264723785590632862502194542971585868754883492229855271885828647014280086641055006158846528387608563449961360510270816105294402094774205332513816037212158507153106726614162877275644610919357610292913839667866942263547551114655132935199322303218622757421570266086143923243758429940627195852917423045582152740391831584010289676559715903168419930023057505758779614420465895087235204640106506271848750399820646293271428350749041792334018398455983063171474765113907399645138546345927855424948497267713288023866966315109411848531414893544398728698746459330479896999583458870759173362527287444197829004424724297975011419900228391876795823477113635008552338495197222718091573099285758626180994850327111663335571130847614140985001773228805319017925403175603143287013315535072993365179078294586221107481642164946575586325338367750102160985996528428167329915103655693226620145182021266130925721029308961161147516833428259802777615004989092365682206825003081660128672044987358356179896962734932258526833641808855016591743379948395416843600828383639506998243451274250577114122474689658654245890583140114997200129910650947597933450165529566400640067533793558454600326857410285750242901862474153249573234558891424185878165382418317588337667068194682247697430189140680795475117682331704743232185668182748882283113903604769541826902369221973852875090621031467256590161004838047458660744036880149467804672587587630812573316774741424862513670389779859898572664403672934433983945788263757519560442820781320803945389324503712451019793975270871489858992915665635981654033293881788790070596435094432418264493588732374269462870555375473036485574696844328927147125491899345528833616304073823560368756612789076494119894866477338326470790875447109029816959405486003794831207539681904478954530054181640534903378659235338547053962777579619753761693973937721305535811936522722209522913370268731939311904111254435558170607325057058912268255428349718464103862410969131906096841679457043711810834780509596688508503991855097135364162990128884435963735700567212549888627215336584496942616884417522680188288074541974363996330418985350824847327963108254277885277293173760829027795817853322314869463373813391009694752121778073093668110033730069792433994369795125024123590994869401352905372619648397662940510474917429125140933383882740570370970347641741969171328397133046815093567543792557617933900508412204787423565094492803320386083490961153758735459871377939364195664958345312512461857900021977338417754517217512131267063706220732881241118115041393056638580092053078313168974736808919055970354598659969078373079958237553345690282559333169781898731997268726605563886239408828712733626598505252240178445203584664258340455650212260454036846710549557434213319847447844778726654200274009600808583780377103138323124844528119579851253428970606028931102078113975055949568609152254782684915899168481048891189925375781570159488231502272423065615884943848024443960311712797204219568684875171574383302316323400370732903952461362874192797040011249433762004786450250378918793032129570709190446930480547831098317446227352864211252059030323128229225108500664547291403283222586894496790781118765128053436489529219277492955935493899320109531617881314127802008855784097012405536315988454063477378751867602960461457036873233127662179055318201828231913924590300475171851326379924537217657200837272002387204440097431674921283395769895078509997874202144029391744873214506393691679577275504934070676785799397259357917728318682282738754610421888979157342500139007820999122654958821032001725201152174132067017752182743018449993396196056118479691788373968352978297026935516490683481646887291112888125186706802760026318916955839370140573811496622068235244994347139165346007244760283934653207453053445482646910084510051771148098377234043793072687895977369967607618596811558128758818205645061033834056799113721708136402386178707291236817438377060679581334857295164991770501855364772396499269901685640904323108191336029568698744970385864478501124797638325624482405602090128579875083182098070269241932893956734045855007748052582592293575096189980952696781948855120186806454828974952924259934541180669528489174363689192396590410487579131116688198669027238065555111533622803551155219268312806979637371461569380426098473477007884121329914701090536617485134331247263832737945300529279835890802205566039927502590382987648212434954415512206376059979908523718795069168660381013463336545000090315751882416599821424114859369720666619257885826113360199761982506854512461974032254473672238645357437660384518982915834311123121141304708677647510944949818832788858332958338432055988183192791127144034678423655756949337763148229371395785090856486930154659482900063720017435829753763372237574743029950643193377574674617988084615750315267304327875984957171441978481185689115076546489742342467545248892106205374382933617049157171931463425651333399955227647807835266529499899193549977178607640215243952417885622119180759487980158550847381322516271070979859923507501183965480582632339518312549558532762145959501007526130530474515621398941155001004978703874063874113187295435584594741839202053389135118643622934390182982617671937158259060743616386988943698142690343625308067444341429879786573827500790198569382805022452363430439503594594038173662180142229034589903990994073585106657560764114640606123058819660740003665240317471751685778363583359926886030672169994918939693543727724367965048876579017282874382392908438495449689407259697906008174981243802991210344373449035058811396203745368914005768052595251438988697577252811933334432697265148060455588844495650071548590768184390746680237767153830916083076213159728611066285876717092822142459469969330601001984154471826702307502215873525933759622337977804317815232396696132741054690859000543629110746891563044288914036703675866845390094190442714057028335531174120461620203176561320556434906598340095495212210875976405457115432745980600434933099096650487818715978779457025154740202257105085950831977557085737699781511248147240732860113182209944570577899758155969621538127435527021426748544582134472477563261883829488273737602318792376907727489625120561202459208316901727097888005616531634656663123804890030337189797640703951505276771836796475790079335522663281593991497772870767937722612367598724346875885065079198087975369668911474153827832153067001124173966427998589724076956491542118775808109464908864366776639627418986215302298848063998457577585673316942800101997250403976769109500775937387105954234511362792929684520058230702156618043907332669703207108492560932054177769674254300959978689448000829325949418812070553444370028196674955577461215234164153349592895006279452456435509687848254019749059645604829921059578591269564268795392610634135046859654241216563121345248901989040657500258062715706495452726882319606328862101451827403383257189314640486331613914468797384961691107719951973769080496413709568536444507871698094980519322112044661986890485755164340606632894087501471444305626838908542549587938287042891770034536405397267406015167871035641097626249843706365207393281376425792110489520887256616941957134445519931719080833721652460777244698150866928339828220366496992461233714234856579430664426899634341239635541389406949581625826312070366100872700502453308908574176372081684491779768661887382874268283790738992770945053678995429720047762397910424513579477172834823124940345666816467439659439053643330552725537921678238875292626139305555391540423162292364213730797394576227989434171560277067080126281184089904170422960408920062493552378636644893660602831056809240681329629020566906488794457949930179351951959172673127257758717505564175746422092497291335006166615067567318786746675854922928377427920024607755505298878438765038200899316743725370932799045632139854882621857822346909237577307823080585862101282920221546403252192889222177960769943463397983098761564048470304184144835436268035803446477674590200145632968674934175164888162439031643875349692216719191208083039606781085268786225595909986122887575242847127432351790046471847299991577612856208398407743067483682023805172717386820756890406808497217868530905934469741119707556629831053678694092269586929134881850703774216483448759196047095049691539077570492235414077571517442259975387671506344289698893377427770208510575062879181633670541917866561998090850795112591098387767945935260021259626712878295310992669050546923391299220557857425641442062113034536780460390223042675352065773371261888322015204900040766788754027346640058401537180984501077272158225718325117556828471574736907170720098607530247281463639855099756797627729898908730003109544280841243279387117662627213695969709446974509905360479869364563927421776305390312779152311542843732275381126547129024619976346849993728379310249510191248223088411331839545256191347819684748970595295272442832396626366334819521617644387140615133728846636925097267748261687506211353074082904599492591087125703662921738467152159359386804572307451301209909033147903898581593016163786360278322979271782058426266115866327501016430433955506126329630366809536731799134467965019266174460956874230169465265527105133986283703500145889739721667890142575141652940300160746284750258121965234912058139001935376039595906231637327107037383336713664646891987841592545798809946769874851526628598073977996063056042653989831972079108393896057354457705106263868897933459264236144534134885456226051135677471846235839715509753645042811179648978317708854744973598207095937417320920605784901482555432748597785316373171529769367803882259076507719324087189712643282875517777796101299515038452327565995402427231289240762798912554123996682935181691236355779319207027763281669754923016623315975215829837936054126900571191891806340395175567038939084490466107766744640838632470852244367226835588573010497547076537324778130747759344753953590994882005943121634003038031800672517610272762887083253247719396427006438925425671695592117905996373692179935870887582699427388717980195200725532087133216215750231680209958569056453398309589687734606169835533773605531765423304142870817558311225853819737433325972297098563181346458760525991688045909390659808285803491455276706093794726179820197419434629745514377865150127761283950950054504404044351802262896405895883873096200602347258362430846132722650442973946872967178028361317520519252693747866144013739641440229640292595844326257887597378427453085011038201139873626361190436808175271851101550104757466961168427774419446737063785506234907419570018813429428917801487299940493755983523057661763177881604549507197000571384338934707650932150957270085547304028962952543652848692955888676519000170979524174486497433711707028482032902173421219140590469322422743179834045386174819934171322415646481034682966314670863556724727472666227868910748983821819459126038291707400859987600981637217565091803695038774812306950978776201289684048957275743769063936961692473829297509515785253486267396115306657730082790987274835676719596392938607269802192333160676647729616768215722718158846561869518402432778641311217380823275883564974969737933380211017968306518400128949570069560513123839449955810260895380381595151069288867393717929907996641192097413736864972107122492331843867713559756193997742228239248275229238289112342285372737858697554068653832269093747550785012635516478605697874364551718112615716089342380216951225654054761056201041188648693903704940178626262747214648194943776177172083514561495579547864713318579463333827835099593046109360877519168799490494028440543402883118566546336688482972860941520512387126735264897204763012749426530222025831752435165743368918006187049737255872463449086999068599082277403932164143040447537040549550959870379026373031080396824346036998284593727244820925162215564706009179617993808208287602268755759664537578145071453788235857215319168610658036962661387595233070911839146711176477223245991377777153730014638850639823872273962995821090756440474381669759398827164229742385721757098163255576052393557519595798422369507846800390144726357619569065106684787417400584229550538753923820386894314543472478187740047985251801264415203071161549063760990842346959124226869258760307775982442784395523256476172328699766425965098907093090598636091254775303376122339461613531865516442420083573745004634225692157741942083144904253173798269908109313965673592110071452786747784804213286487644882799235183474716659643980813168811087814612615465816150084120944107865613555394202169844371028693122146834207967220280577938722962132444454189504438036883494798078908823750796209883439334315416417794527745506001434147687919543037427856983512903052416956449266291954321997009751152721877742860509137861037175127366000575636629658867678578449708445854778347236374713864286083525455113489561610770047869401634888704207508141497589416383977742039842812329949989723239745263981193946745237514520355619524475118154195805890617706134250625235217563704241515919009873507958247356605608285708082474093146230583803362853304064273538647091441884873434425376361866645429786870778901519948240410995990257139193853453868707863340881546182685503766009818271373473828627314586197048299031645451402756196250840987709725518299799259942499709224850606891053826188948750710180309672661156462174334864519760156993572011502624704651115448825272290452002628222323906175755901534415958799388613100720849217815457757399529865170794107287370462567397554521655237623152769206293645410440770027969511491644828923566835418841847439348403898102610195675119377027046549054131382737052909119980824616185677533357371103373835267807055686586972526798481336342246633825758549631686332077023320059396007900973063986590742650823269806175534569865578661940365243782865558025806410392770422458087727199505244672992473901782078724092937754913546597911617181451755372182389492036807064988550290906407143658798599195478113786704450111866199728810788078091475621827477597106316514649305578038506127285072042433008423342894465661576873489725997775980850073513228794664797151312182161104344401773212398328979232271634028065300405667933497239657027653908431296409435917923867306126299388942505650854939461630234360166520160242853965169354173302453476130418075497352827142103937346955081140024979310789492028736002014853998264288245619385046459829291618625257975866411478180300753529915430723189254271758798071762427590632061398509299847143820926292556131426899035486357773264825591927412934209611502449871491416469867008697648349936685632500671296142514523171157723898896406460533272433222728382432077707027201607220641859574507226202100635027529741839686030478132223368376054074470128105381849205544867280397905108583137888215189314659117139938541348666343430193742968992446493210050532997253775098828907241034560717362186905389855524994123937828039095652244378556098923343704897519748899073189044916329667831194513421037838623397175584085490989292889026145554421962256768541671735430883253778516270221383246118490911454774867668043018845876532036881517695234227428509669105144708148383738304950961804867095207304387129730290773483510426969477946545846742624444016699946437325602413546809725253612641034882958788140992662119784597363884837107324381163291074017934774664053401591918331431638879146054748036444575020260395448048025818410973990908459199901038918037977731167494482115239120926846871547106906864675170910075709965215390009601389022918448054620936550708191376860039332988670680253367216494746303411515304618624233523405376058619089961593115669212210958028926896974183139430202703586355406803379651420449896942154310848053762627090938128711717448645739694460273371403008641018969238900529454460426314584604730812417784082663550102645705898156914725757452739814944971705855353140356094135195522087421161165792921779236861326146536257928718565566704025567872775541376821636596574638045114112507044417645253949625849562278196671711911443362777642910607990489430238223639386907946739831647159431725831552558298717691253253712427035779552978616398643496850231894686329407592827792022423198312014472515176600501934074675916653245539070423827411952855519590450250325706762326187106021927878855962504547716496420541091660494502645119147079176064495547017038776402129816616430394332261399013256321199037104283091942275984911980993929904684624611853514929324626084879394577852336609645889070114635615022631447124805471171140967889980178545682623773216690286063845405180604505438723756533364803078049463279112678034790571858933320691920742362474723750767568057944296742423613377672358741755734032513213413094928393224537074472289098979641744459715430814828329695926994466657096699648188197376830872564080286335586405981468784740519876494785162499097318713421110270149523429582413998540578637077293557053799603396637723010888525697062027040749337890373516233028496246073175433260507523856249682087244305987514708302747034250976607280578239541466365792181859348233285282018858750215953391993948636075138786736143815904044743883544403170515251519596269706766828599907520911559609726002853536278178919222547492749067177599598899697745963039147362483985984406134481092852606803922157910661277170763925259958101978661736833241499414865875798975712734331289334427132457458452451959521545189176239751915926891249539350056923692940499654154709207909450119974430540296533812973096126268868489753822557513255069654306213412502806884238054037718441569616867548985553697750275804159361376522359026795897767609327301355467042800404772654160029390702477066635250284519289322982982867620180629805189045674724828333536099583756758083767033762290801519136032895592506739397429721071098099021754945279420072713004417537232558954071304160501818317847801357709050172262157145703523461150269955448487257689771980678291721332647008272352885884782454376074943663015554706410504978460537863512370599319339275909221866318879263633294526539524116410971831669904317338901282871476815662583871830372633869741264925009829017770852668914193322577374348834426214730750769204592136197054742010469955421863842763472246800108403563998271967750451320175592635572192947963279020255580573428201133479429742145584914043783629979731825186827534847991369779172598118085674669336873071975394376208812208022746628050208504040853343247966220777459683073280316488246607709838699534830042813317416647411904626145481091573579804143330817990249899432518532514036359876474763047108610635821301852883591819420605834417529707125974688308342615249699456682714899230372694744796359926353251565305985989500190637510292399368170246870799851369108041112049777527661018989897944938195288121538637527247176707588662590372781690842968031885559650438963421468656745579209798146489377539578467558651229670853375719343821057792683669180621246629755521076145130036500511270833048649252360514647764816537051229066544096473468688724913146526787815594224475688946815159998226883643812894919842145487313800111929485991084084622701055985019704780497057464116210389038192968052346450198588405707479534648809422269915073727384803849497671816343075459089326561401163383725920360888326441548179620387420292959597680327019617036468291914847366242761595857943976508052906801442173621944033061118233568001717894379865055066362770162573008671969627747734920443640779909273328915044425198470487991050922075380848099532237498544074946561029595664480634357374704378364051067435956513709022869324524251426031629957051792704675904641695479749055493425533039013195325047036394270197692616168568682287764918327914193157239986490888395191895299540248045761408432512776792339613142395160767614551698720322665827623379285743088509638776288732231277501108180222699132367747835562516965230909843157456621972312997648422346674920082381468673989842293156365839909454344879544551072175525180877561110337263586370764238171803132213529337422327487897356842827380185951708400439110333682495425681961869718224358666191890294093630131521855790573754936221829035621684897915014232328864550134178039151323535206576141545219569889906415354842448696536684988433309073490223499568427412624977551007268670198234937357850814033730791428551525250182709623798699647872134258573024857562779157380942327948278151833770401735272501359419869748614379291629388304106800824200583919367232039669716564912306659903348213367278962404839834676140068471959799773343943025506910909928801437933763203630702607219298973500938497610904179709248939930275254291378895991464106529740858679331077792141035735264143349396339129657513380038966681101068688066744772380764433184825142322627493988888907015626989037439487832640479248496518877538933837004417267869417775312317736978397629595192711569738784675599142893775287035189682036366239269081198916866250443184542374498509609658136061806768037996127267678898174916716207555652973218256204927089183004884760449530156266448376152635996721570415035051782373293383215795077936582566721933873199341068619922252583418362989467708152495413629293591339602281859629834720115594629518432286654762845923700766111964376572334991709581554730888267514141555489795622235307845903105635061740429754751783734339515440087064716651981985046714407645646882012213818206179908396801526426650969085104551888351607176408818111872019349800384455077257606438286984974479825198410176777101078609543565066516634217000099132182751216611800073910350108173488988064624233084972101522508293741776881203555486494174222360609686462107301296763448754105311891207993979239389192897222426729355587085910183631478013532221114039772105266992382384162233142896017169967640672505226549754287354228670642890271541900979164923112250153547881644107671183608754125340289519216018284283676284214383669375403289147951446625814224859378496728633988436782469351263168048210514275876673848117080641041051652529648593240077486420938751294240777174333211761606878767540935378758398663989254132689473845208749701288225570807654856135442638532202680821713203589688663023873271930736649603380851708262388917969970968171875234913526716460387388496397227650521088018331766904590438028368860183563778831576213831388671355974722375617391041013038019244192207420085697390930806893556288590608237402049394017593126799157547849397328348593552696236598908345089632351789523379918200439771793923546747650385744122916507950057217967361616090983774739235863901314897813197235958128119934247516600632292892764381499456990496729976107163911675156460294903785491483839535321961041837727350946624318904504495154965795447192116885741097588105474372912563330856315298324440058369716252066043069296814247831101516736560551538187704454428401445660611562692150660438057238521784351522674805088948129561431825176687956500749288873254135326349472217239380970151389965856479019918731990504613190140797460945538760984467308456503822241904736145501493914927221126299362359355015237623437924969942629077681024405435089893590719028007134541704174695076931500548282961919338158746897750100649869074365620789752820207795212467765097428350613441605372546317804688874610848653561725807349823138069005932864344871593146141605383625972227462647853800844966457214652057719282847331429623446799716611804518855932469248941473472232386750908739172795301941872855749475669885797586784808596886438978838767036003905818093827031271479601974651960347026503555312214875940198152330515318936409017458587848740993984439031005639697271302646166181891857601174769877399360498570688530269118903208714456586383385773716688103070959639249317508662251314401907739751769667515696318429488698036063106838012849861918399102143785819422674430340882732787654565017909350502081088616375512061183006897621641283884333850544615290832951007068027787806199412664062477542150455958793357830673148215075443826068098672541581341097556393156564128891329970803257527149322088814517052387305268103694023003322835245128485753236016536243658469846638241756913405318420335641761050605238925016722806612168675204650469167666391547813314338116367545206192000827702588018048053512663964148686993091704600253182267215878040205968058565049021760073273107733034260855271569088933947650867399637703544990970304188598958885125340347628626447514410346316661429950105979783517455927285730932003531105268858796004099284236953269092199816828112535989518192019575937443705566453768645093701434636969189470487315364193558655422758374906855580156655655800071306819446693641285987817515583631320047463515142501136543987954745265084922271504596746114238560078291958760733663929688304572342911471526333918865064763946135074408064350874114893923951540067701984729990128493154264039895724903331335001847810404777217995236507445276329731000385981790618223472268875844005194838758318107002763980389085689163438860421879831311440322378212982045316740724092925059952650596401912514007813428105429813333929749435444201700994023438435115059947270280296207788899376651822818397953629737852761744306942169090290440108614596718229333090226601276019444326138866027620868584148996074568200495825433909160431548137969847752556058421034984871171398805098947395313635882741811968683379308413772070391984815163581541617112157056849803915701050424575528003275756330940463865934535159064443652256798639796597587560638064346593201666437676209432907451158407501892708765097364030922178400927568691752036800298230483076636507884529517243338735052614148245422379241427498520856065539498753475306649104889692604438202924587411677656232594732413346212968355404827927885787182595549260438388849888756617050554522557238786331272975116854446984397235385221200729755604990117291685630844290569592243722334262010720980479663057917058801479407943579470882556203828616449289347857342480664632083992966760678378303062766586125807683161566849955153883345056221753694157496620747215651131023301460541993316336910978129892619043002757878648547919854514010691515305882101732300933001741019139277123085621716314083911354074793920943462016711152418891854534694769718368808775755763549116010447824104761802878186359981317382899674562461697361897461218390870168032409712868002583842346470722877181673915497527664321097317080859449740063455182228018936149808629163637111866978061980918638895807809661430590598538949933890914946273270817370201105521802559329803794068580904534817705359359378629266363868902052213621310323151488871645423401560803116501727744428766476085297218843983508036059199032873325329159251996085084919225755452216975492251842203096421185586743018112041317471239327333368370190950687756232820516991488507629007972302099199043704277971256603404136797596138344713727478466770901078151984119387066903283630103343591051191499006039503394458641970110317524323395196226526001661708197013789307969912840568728416174644623545624596461712982300871915548134967501262912269315693496555222384439879161085517994821640197991504537056547353597256610018065861198827879649113660008944363989980465324597853359638051343980358713536733115020802110141284948368499762819627257959194040883327412258838497008044777412469898305144845707153365655123237048467905875213512803338881553283324684462599935584997535712643839793355180637404580166557247728294538104898521681677094267368026307750229130084821497213890331569732337953422590141986452902654537312578908912460626024478767897931240352761204263442494949290018030385645464691538848402765325059843107078057431121590456889822993031813039520896625258289726581777241184799126784949981853606629012425170742728909544355967149166782708646626861698544961613286613969345779234231582112176208671120628526390514855980198557672634337693146224793427017030905733152953824047428381638520345341008454409812020993122080843408863280038254740526082365829981722984660022796751075547505336128707768193156806365940198144826495375308490959157321644851093310585259534113420891166953810048526013433610663894850957714875890441022987484589357330717294516268509211480083118058925917124418787032702228514256646188723706999966324204226366150262629254066538618538657310827345136438578592677177150255378885849433154840850956346004540428438275316707145049008509980587377656122047208313766533869420604610514393003883322687859263932035949364972516829427694480348189250033751376182509541239190046244953138891711908496857057640954797671727343837803449150089405472565032021149871378374290900324779591326765962940874616244208967729958433088901511796339466213207650548323773314795757425982464958065495007755922552755665013400374994171194888016761657820483615572464258298167448558174526656310280268474085332416634357115099626514727272412153535427546360355989295819410676135050556514121918793331615461129041385264394447025326208911540109586684940205440078318637784627803893997255047290373227905481472237328446751335986144914124184023741365981237889230233286648811815946587974078013640216232439602972924535094623753770499164757711808798657392577889233675771156836544173972993886816394777679580970031605407103803532698193613161586693825622904532705143305247440181020325198188164962257361836703527760004689830233846759869042451185728741123083760110509099223737717260074659743469678788074041430311454431914378175452742550704328033327064477397497883375810357701960759836641430715910516232486419107324555473307194239366963425534584091575127852170992583177503830007068876957853937600768592282226146298627112667247833927580814886764175731357301519353324534295840941315879834330259203848889574153700741605084760119275032842102732235096612996814450651955721007650631501606428512772526128887305884858522736102135831215566875320479276848604460587315567221061525229147289144270618748512241629083232615819673904214457061519657571202915042896892146370958360801700924222901013881191260580351403081381434637362177435491213417172466635240349083736038876467527769128178467832185896460059161629312720462048123346993459984545576215373548188623603806607629444734059860082020038567418025240181970485469404558321739235916545700411238920009183109714590050952967420027996649750170180611515390755138935176070414185046342390718192152633381449384747794080758797847045930113516810833541854770540925651077663144345206947459307946366794573313840594187499550578174654540585492894391672334044968423466944742907709271511355579141399632049391243698866672728311413305665615016070533926080523648634710685704642898441734968275182085759288485781216521498325399796262213980346083664988590430425726361324222339634576738392866713350589205164696732651198455625846201948736726587316078964178438665372309827986393144036915133520194984388395298519789143941572635164149261838677074378483480254371161460832769166697612260488283308905827570120866214068223639658779688631291996303698254615320455077830843989170948955400636195596278564207357463073478149155585502031606908983364719503880490477501736841584364694370891915897759202706992916435119693591174883134647776149683283607771805702672627478445632047709384821636076452212619913431620969755708903483156929400518179933802207489462261986361189865030022440139581258890252992099320370584905194497038789322545845150116582624358421631336799933521594140515376646674478537728429439729781553729983529038300827991326080884057112225515796025448733198357877731824598486085622419724005432167357852040820554260026117523989129071175704168214597537496284588470223733094120239285695690921343911408409975976781715428868212816302516496114963302684657047645405134343108988240595447705072454963154889968102091889438005686320784727806892642502484593122190929311012816567397451420626486424496614588804143485612622949797630458106924544723894738584229799862327154324438013953704826476374292097510464831114525739732464163991197560288251401650016396748911256553577587218165308890422297625378355081720456787774785242254015475738589500576537016618114129149241474703273082947363175222823231942087586141929511942061617935310541387945888351927669881867323442439251493309429726541099853175830463209425881161967306370414016438068541657825398308663401125291305479802142028783157915134643013580288179796135090886467764451569680050298955497764585370684789479328341615783340327893450717557775674303518708365994051324603253947440138812190765043747024161316527652265732554323493915805222512981230215969491801840624215451004364222319766192678932937563672537605430934413272415705777754600615904346546740621784215689161077611609738830981687243805061208469742210430557165580256536871052333225716856224653566067975781918958179458907637370910448743558695839608740052788403871125846996045361939123134847230097966833285891651033708400171990932220301381673372472036142291693538493690514727381320919689869317507079174306873196321629794511954075393842106343587313163101314034581479361970118450621389145679991732982031636868734053803673959337836382803958852893526920325482196464372497775542815049972354178475298737617551379200022859189994922626149717065207889068362173790960707372536657923527811166583714157847982704671600765159034824753374576902093786756247477733545911362747613775683202881791153184048475020257749997945672428795494719164877524484985503918052243930940999150624221835427416025033316711499654013346892645457694876480793052312612637938732877132797760404981969460529526172564980311934036271688926801022390192414859337644480943408557809290471770692656213001778330686935217997463591000362730735808373220389057003590828894707156421763256778654450650141527851361322188692877059393098424824037223106006427244143408680794432227565541219465268250600725700653130175406932956199857440626885164611140635811955664434077575815592676157472096474802513637561161695070237493280015938369032336777368018968564141866383298732288378507176342411364435335336028943460251687289698303539484687150952956703866937528860948109785215183075549667353053835407500596420686336951774977039942007134132637032315575718453097671573195935633019010862706872499694926522558476313204333815413963393677588521481749342710696699250213094453151253003026944724688903635209613810909152146922373415031468615461460487497406945158746068680957545780885115291529331195986940771492200549282745388934082971028126810318682006692783639832120733475171644588787929778028570658399048021716029863973243083994106470481384973596211068186251539827465054376563466158505018317385794258175370534802595949601077347966207255752758285810716757150778051964589019290664557224947172545440568268179339314304298700000483581432054900313439604094858569313475027457724880251485745685838824328646830240968412483517030110031924298241344505952280497181075083538158515716028083001410718270524271814443696096083164876802955444121742221293167411219137556177763044825199536489077205859348885721741349747962958371522459884296741790843228706995701686466407887101985265180438387497951933576171219830401704677310321285893606967731679466983125992431216101045605283242267213490139106547215940766305255206310453025875108433985935128183357426589136347596988554223858425485257068154741794120237244759669613549565852239451313235412694870065716495644193020157417281226794606639403113204070376266295467178638798939079109376670381432623942413856348118770065097107350765920086665768600705884223147917197111921406253256722984688465095580783524508057149830048432629976958034658439830196372425267921727315352734329103777238133026484484352538115756322903623056928868018348964631230111870387177716390097139080299450975922310390635992748749401066406733656973621905458822943125638310220719560010551767474822781255018267340845933170022096998232474430248825730394158909781684905813761634258422315807792902947930683925923802364065997485190086967057703180056236374074358866306228248033808748595723053048489663513432989863379258053349423641590585157861297162535883147575197872019143385903495606355297203900832575638339518233767357186380583774041669972828814482715880365881121313676273901679611863801396078001429152080336539987527240314360211371178945117479774566096140337766882501183527849765116296096173205368598245712890570126309777217797477623133486535833367689287470371292194936874630991617639721118744172331946437953286387543433096209974897147524218254199957568319069109409873388948131269633203759462874244298829902500480709605480136072250579554580901676633267295025536720554853696024268894594824554296680077981585856103003809294693327706589689480260978790491687048478946124873636869296078574358353002991201513661553422397701667480386623748197031118741812837354968724018109137708686650223481585778741882399412864592727093568237434226636258854743049217461674496413015677326569808432124183446697776155598095376414777843005513872743865407378879906560203438124019514360949288693871719613992423281664653367186614010827733190404330616495669683811959088494643548575914554338493683094602538807035184260858615356062341620857776676904001828222666611600853544146154146912186999022501331455866748652996766623253645376998515665097744346114668377590533342576634053996797177036206295301037646289287103721737010114180278914488422568277213352246424399767418145609794072514017521402762148082282014124324556070767527619037032287755041573323707822876014113918893268014909171180132006195465873715586451478173293871954803644945873439648385319152801580961884351075790877818445662667915936712852653401098079267881509778046808297480138581946333852915872489037200585842265422937219226993027050484865019098962452103469059375039092654762456293228141477022393623103730988431018545021244317211140004090101035335607594088767610101076038129361408587938885336542409690850457681269721771833176103170484027201627111758391812294808406636933947354978937433756461434651894699170972360224607735158779624567436391629353971396458002278546313222826258512440430065160756295045087500122590610831754388649629674241343794652938346638475670276532987735677316915706944987871599951673741757403735515541817238436068672775813096521606333643043309571445613208309546905560319210787297116846900731353761504194854945244863055866998301859415116748038175662057362101282637939462547706426876943256997958539628830368714021682096637253880442101680349237991282221940462559913740273784323629386065121401854045111526531687326972495489100293138178564524042158900292842110525248885810268971610866465304676454593429313608656676064975837293795612500325533351694506196429838764156729499934097623752472193248282874887201002877292028213534385326441419571902848663085762085963933769625560633668702334901771941343366301918428627311938220157071873116831549955322082815344361707993316060906825609702238806645251708504363855919440619792632195957612014684387062994919789568557800867995716231272683615971487255157153206112291367526154125066135352070725139135113047840132541860227764013574875881579971673741215656042784135108023864243064939110704013667335834873988969537696408244646404016502176416349459481074598315317274159798808038516222592314664565764060976116642790875735659688758603327191714377534354546029142383872962573104036441891247388021462171923936362105973796190727539210746447025464328092176420173306196988194650752652675083603681862936309291357658654955828530232618693447360116693357478350308777589108244095558404004307145698121874023997473953839913917829293535540661900132764306790375164498010100037974910019631031848584518262191943411221624207593677170606346589556059042639886631139892789214235225683247650245454246752096837601655085304921842645054049799123402440799204001702923748994096312648117347706489824553319109484432104684582300400254146645873259920614559513998536625589784883249846111656468613398056554481047969084558726439036168695655589566574276123836863289858664460793894279314403223344747643014761814294314387478543766824189743243992790370438372669080575655632081774293187866499256913964354927748638408382619274444945753807323986964190654737329745107544864461984433162764981372017962042715206064490861140085419778607855049443836215388220816424137715340736115211979035025018147840631072205058512597305077060628135040344679344659169033860550365791593886968644545910357347289345024221551153397206820414972005315299885500551379026173022063410806838665689255832223222573745749530378710375737822342873706855403617699600736315560708392820777000326976785602010693616032325329010662234087369504289120409045045211539025398683739107849405489782838000556932156244292747999284859623620532932245954225470293208361545797618409556862161973825022191410357609071281763498653826127388809920663352431367212872855862187199458053302350894535903896918851081261192583414769916737148638379588000085020535562577052531753298723105037858137440721988146978015519407549816090023691332543324521899799417952395440120061663554782974800213383966529819025210379774372256722870284395851695111722482065136515930502464098486092093299696754047759943643525954620812522227081971099049843452772843430114277923329635646750223294182643541520398408090562744884146730535991980093158082900417844194066373946858106128295026467192093745279886068397155586850400471824552610205876135942832591013022146964064620106371355225319085432324277398375353517500476736733552849438077648031126715217132620236518342896670147338947420500860209085424401861654438252958666233814852512873818518102123664645311945054485336022937519846934204033052916008747061900397918316384103794336531479024351957760932613648816455380344698587506202540125617286450217704946151856364670571823312606733356018717961154685596781967730401296764345179145760813468810923563770391003366538797064868128410105125618639081629176563739037977072529960354517932774654137211730233890211951377167138483156143058289101692409623774474216554634965521499532929885148597167276605795815556788925202396926602329421015049364387652532540776221897865921554576975442393883142503501976488290537253748794032277200462040852027688109284743281176630268084339348494065286759463702604749187769663778060742916597973854007187140441291825129955377623990190860569756136673343676189709827267613001214630186766547157232370846771019684823609299107981468806463482019163242522700438831800149221103729193391094259755973551462726343705872839342197173115211438407615035044102756659420759679959558417945988158771171890375001605501855823494910867099773554885939733985412328940703606976978848859315312052552884626207526656998617647321353148441177104504764165078004445261979305801134449409007848851461801832906485444239935709769338082149318885426891549439735495316045454909966031626481393863398321703214452215130581492917522967061149905146391878906078756335252264071134683414277306802367260554172155060422742881440583227853790604476153689272761549935933719834261160124749920885390546300146335792985004060278251878165818423834459060530064850434035405194675414286975634582730897466514212076408277372597033200834087454853690131147640652681985131563544461331669561464238846616061374394393812798536402152823522868494027750147161366935530035621211929280251878321308221962021873718711091440822670454810288862749730707329106245715119043607820225237555303118363716353363944511254695203752793153895116503262408821153487772450888663686217971077232881058313284052648233191758551196796171810169904499255209179366575038587652366413195676225511074710763365256615001349007700245313014175124302035840098497778796495468896721580046851747556041459762229468874790545590310817705191431824946625404026508082381783287972226855835484099986508610035817651852858111236616206892439662132944739259673659089652751927995556721439821550088508209133045686869557265260748840569150508450565581245440959208256690008019262305773552670297782661231926023492815558535455041864990367160633701392884062417005750666702001642338395737715101170137284904225235947103445941872733526463240141743000629030181207989345872755513193684274597751130024406541558334364220986808456314897157117904750654461217072554887797358417561317781950094330362230700719131977191077077005500343184748318389014256919061237251708890020953670174445456922971165797894203152678952115869404496865946107204487485282612283672902077952900102101521834102847285810283514866490586336671542687591606214929283178423897794908645066747455078501318449756428715250514406082315290333677969378326960151068078074421770969708559561926964592442708081592726691900419921804549620179249413178376522213047258106405563888563835306580577860552548848244440985265349659940848740945784842377031587512505064557878812321555322541835551701731057419889365692512090407668594545791921138810813823671905348107721910656472982698797496131448862162149833514254563523359865684193515018653922853275781279223217368825030230169637701752343336357989582771061381071349320031517174919883864530390324083028324314668436533215344713323407453958683084787714827616685518190293792757968220671820473886455847410425676528322342182156401815096626646058816254121867367654922951414019061302454633173997667716259025437250128906354998556409152292997787337871919453800918549048006037727519839864816492927938985789837077170965400897233287545354255019356746430134089515651725334458050786528393589867516155798738167602213954511876424490830840182548036896540554670628298644085214218397906924381273589097960530092628353194453951150425992498322827140876973185550299120622091952558762344571543831983879607154939091942889424809771637375280881541506598907017905205993906603435205312062729549263756756128614584962910121695802659297676809387402219832532063278238244861159446871518942197719109668477105234831717486980984065780201131000226072757655390203413616479334418154277691313888129816671255684608821898294385643038140434101960906624723224408048535310997538193483621059625563540394618624753299343032224236086943427278180651611467636860249124653493811738489023404473235453620277867067885162078762821913236670800490417130755138685903883540957792074652814745055448159175160450490821700941640532112804999444799254456772320769844171403654698107783855919843922295980681096738409356139823345642354107293185908587274068358539426218778703194768237964101626237556817955651953825391958180253230793232041460494279537702737958053616882742208801734989871464071251785026716107042371102392356556440952050312994100760369413042332824033056398402542473046714162242211246380162439600936521735756746148695443358102954231504156875752422339719066292774135129763732169055184979903880112140167360346078966765648241475105611267021602111099366933723415341155742358374581258628806768498184695110421498807894224154598599675508947359084280799693638468424404285439974709976726393678350980862185887682376049581360571929618366829923696518681127250902942433762980934373622529456075840952873435547141105769480175736948683591366850200322456048149330832351394529955541719856401536234048845761260696286340037500361611656702818972720070568095810651899117066451889108686629209931426601166988471371633254634934679730206962150826069544687737320566558538101595937431275218926151176213619505791289811306971550994381885478722050681041008505536309238364373620703313586777093748847803042639026398760896098528370551531499120282073333504081351149006322437295187409717955577509621746514893865926514167209206341402140902808288526924567813653563429888859768144463571980679752599963022951601167282000462691903794571689590279382514276141909540295248785085792172627197000504256504881726233663658049577766893852615845817211300815889879733188626845609352141414364463832641357764111744083960553946236301735381852398888530262934994874552922526320187265608683577952843665712488038563934846591771099890216179736554739538445409065336160761814436323518700153787343133544436772694612842054961224399156995130926908036090951626671644308529793117470388780699586629135041365435792211490686604904092870579473193185615797038260066014516581636634891280491020870107536556921880387874760755406136466075184939921519510675785524222004545115605936888677068328242673935842250278839495353029147252915009965382217718500497403128287545575233341119584581707687069383149148362584299164207568065092558278449866238714644461030115264185449665898191052377720985858546381586342978617344121617015759236901963560932368853067142609329072463831714873519528689892680379431063598525809387342968050322733257579512656661596157378864789106096003015100919224321375894107037175184848593097313327200501537991752377871244059809822103878543034357360406336331922386542715068009438209448171281344337392033185192717201500193289961001669220807775831566286821996554771982455793010182613548675378652741681520415722926591429533761503931700181620110679932138158313281170774849829733910950084549326413405830857721987381214621998045076805143794674256220731378970420950078261965825290496346456851346536211859407217158274014517184192408692817725220375595059528712295583843716112567250466588756188155556869501681207517849346063820880140459576853307974589466349896119779999345078540959433722400670732605242314475991711243365492282840794862171461285729189262342531068653605338038769915214926737834817842385194414379076118111106226557127334190012021441897082235223471811714116039158246114997385747537504055080168582904647493995134845530497128784014314213260973992766163236281548345218143235586625493774288557703233183968945265238589220250965804989265172895259847447783920792863983190164836554994298163108351520025327801730480434792150715403612559742599402193414307246683969021277061668328471458842443084429262240531632357496290723702306745678149568706753829925782656873857908470988668190965905960715119865558803719384870340883885837256130419626300539248454242356479445296183394935008921680624228222670802581980782697566919260080632477634877564445186755051413262806206942457760247598622760197435905647301647765751230107971963353994667660867053052138385397767285904737778764798903607089128323754605746984795021864608278381998082983956205741443528834419094051108381606484966266283830533997295436224775398825392543237868643253168588915101402480909186998904403360618176889620095049763179536682723513128283237083578365559237420696063673824443023503108482510865787784765632117734629081644633280451061288086260500291704164501264045151248504205405029441668312740293152517472832540855736340684428652903698786540597446401229483627617315996395981897344669711365981879492477620581804134117328997274178910807775666719700979479537247046824133584052100750682013574962583040471579295370502822060004770728055579614736647339631731397578081159623345984307191057290067216617990582455336344857025950120354524723692758878703281286340945331838249104331641783947198359406579130853271112684965664755156810008679426366716053476405636351701439854066106672437644568336639291874433278715982323562874821779857084154560506705910865691065702574232064087557169761563101479910289586908284391688711273576346013218455903486177145880724223075422103857731172886765721164771987848112517133957050773049528614190971749926339218249574339705009542869807057021902056458077383322633884930603514013326533193584300176087201029453615376118240314338185531900968343750963387558629793683974182875476312700870288986322653890639604400069642459078473889909114323521962762307785602463677730675518972395315655459139770287189330861877211577394773749113002119777135050297489294721256265614517885878317209485138253944066134978300089190309865056808158845108387385455720536375086125137482025533634340779383736539007151258030396963486352646894268567182563030487609614394090745073790580347070819633701854827008677315350790767818293545585273400649870667188471598200998107669061358214243722979736440409705511122217069313678282538867342064735484282355219136244202406864767728509898394751778996668161004801794355253620250345677723924732539301666719478357090086609188822805794183322210323795445364041726024052655031401649164871347287272608134346999503252982566032020127072922064276849996763565370535333075479755362005033389771986071778415628855062683953365067908935074096460307379641717183204810573112041043312805632057999989144688131555449314437547399283484984168318684451078375502256994795911388247543039036833604272707448124998240588185428264799692530275305647627894733545847145185665752779262153592843308124763314670552064274483656093799863761541668996845533675724538522942540235504199203338483257332258364146371364091101239395816561134948780356642451553464773767723094170491590616665781500459139545035271077279170647863301423134104136207296864476376454665106076042141022875392355152718319059647685086261177712500811270043509186409032952926735367381661382860709999180338143665272643971677745059571528489641159367250760126211497299145338402817756442286699449484269055288157414273926530544459679907481140262547596896227128670022215455486257144294415216771555917804065509297229179376821679420969198478794844804757728363714653326219183885748181954704481360377727471096066649983755093244320699012719593383289216908324520119476300877587208838341181289134530283031661412259168642142571191336353105968513569246111663584518580330262276688643461986360060686643836814143310124547470722258951625714068218697171085264797695659178584011677062558299935702661817533441077964486727995975102666998921682249739692216502795841059356362574677322230274670171127530428975461982477920707009377401120589964706402174734674383595536089135625530875463010360149346851912945540600870076856642295498907333948469667891713461990270613226437598653435927297767575950645946167398687497580664319689663798813914255801959174170100224086331806803753386408178949375092054277960745802292754145377951948623259791551129874843634431103978426458477052428805628300350850365830915354582508406036170818347188471539526167808970734095706604536020087309737505846454235570878851052625000015497298331607575910795752729019233735657040840100550405152385852499104944131016736289014740561777059393094384457624548232128264886914913460383287805624233932613548067690012526365590855916854652398488795804099569229079832457696489305549510716969662117415301016486204205888148971644680735636294024465848439765406099392109634363764873527166448977666395284670670580732898684630057198566835462028721605783841810761071191046220056534785520414647280135076989125162819953444612803528840956367798670512268741014438922860479286896975653232109506307900714153606534826998445088853596153339926522837656620256749030727845515216138631829409509641314924565234715238536566487661931279504013965485907221235138743342124124750260684827546776406046388949646174104881250725858045974124581928694915962915781398480412680785057496430474130556023174677318512320084721181388879643703958362949583767225088501792582332557058186301497799178960388106927799038914417947945522070300649484065852942187129108095882090793705146006093353635706330271626933385037739980507703202667795484634271400729924586725230782975974536274894307664893828619164505437133579401385201470395534569099865922033289762024935617536033404947970994213529809618637241484870899860327050505737889969956583647315058839635137093918519246997723765837122754244611477908398618321243410597771840394519378990876346934325062453165705199107725286024035448931932414841963308597866738500855228744344910043480947506421002588259378340120340270505378874207248140377986349452311404148594033852743939803581155634908939059918176541977557914447189175421681607124122352927134173146943227621284573501359075136512942666139809274358739424616447556627652354110512899158094684202360417126007400706405214914496919354089668665508631560227803956978016158182662811523550941684378580656240876951810532705720258528105381602184035127421485001114213410803010723027075531810094511182522701495493122442886953255394938021024839795221678264111070003335296882347700736025147507957234928819098817493844347674882116871004486462402305780677610482212608935046522151576071327410040446437257330103311819182139425620874901882825574601236074911990863773876335508425241413883170810577242468444550393562533109744900020992941447527624656007271401533814484261629880951480002723170381276332316053991600899981937305482878101220881578195707447187596700412449845219161899508974000227267178140134359805208485457089388025407411076512040546421839715954050300280092320953917198615715372329009111759082601996774134452108907818955644576659172486931884722880423386415840271089346851256821298973087387063072025504863195446537283099956634245336084962452072286044510785053578040821424045927571482047081873888533470478871782917493002320129409558535567289946845848946386548893916271989005903992284853883537256676727430213250639874424634610277329838179230901793852038954295865026369870319462116385789600295262342925448166910271025721316527514651225279024050501844396381992153812238168581594284146669764592664131928466976739436456593070561685245015850424194470009316474179591048718177585131467692434024892303371806869026734353034297334314574528815441658587911602987497368517260423874891831682256095561919212051347099748653990677983016695412140244649412020191688265551487818136637323256722315780653202373840028188180593244898617489300919207478561273047687868347874825353018201893568436059133174328568815941061220471733039776810065005229962712177724198160800347740969350529231606955005501068886185276402745809912038021278393971959078718526256110568073504963923693464302403548442336954373198081529903932012633755075120270786740614156694640460956568644623783174211187811120023473837554945428325093773133127439053318174412642358718024743302736102136969074066621341017232892104076502568019497717124284436310060301599558488320168657894060102964045312406777547024863578456747301490053743705309798414465234055083663134899504980479304003144315296319128307723235367279632166070667002638518346008842214902068786732644565005925697821049301521299315939767938295000567309193286849187196322761680562107337117606165233413233290555884887617077273436629943381688028781109056152112693359500148291127686735021655832294171198512590848895370003220053067379501854058785891099782377686592650675953965405695662735176109520008317070162491738221721432861035689562062106127804832100366688298745281763130574845704825485590151285963276694003661944037164848749994223895550412393745425426319585267187508756517478321526111469436410497305007194580343206442848008343243875146193645836032930434180440085521667027591116568980756840179845601460030547651644703474729734316829990786439483757509731163349727706173281743330528682471622772889027955943809622354276809883653774811963868587621595135641781376022784887443089105183888704579328307596759728204636921809292188442144884020691741566808695961907597714064473648147094896412182717413983674161027179257930723771858176596089600939339606459524441014079332104756628194659040197443754590688047600556208913377299440767159111890093183469003536724435182520172882240668210695241282987203097718653678598643744841318711653731085813578666032172837083963752654327513382707906984294378639470943530461403378067255793471805439832522879185245705611696936592644808033018405679214866601236079348091872365420052072111063825543981684356633794609154615209579547259003866763315929346800889077968246008163379558670119917799498110013676877825556651700910434575404377457084749335441255488287653780807698553989524673465746028908186411171553792008520109408578533559304591390144392121379041612836929940199853164594914335495773335270709936098189707803360148913102896189680916875077900082019263805901734699436801110502410624875114115547579048122368707833771642695151146919505325781435877234541227764270928889144605409611959061005021447092338103231823360994383466685447633210299436706681062146436292734116373068989622344063366199019974556253326547265574644000689203597676695743359340011992517095385446908369961445185610777946251202900923770381049674887948580621938600087317064624073384200054625110850294973182096653494942302749596630884379280962851225516018125632107053047844590492822404397027973454459977622316157072156023146753918975628439488555073158073681103672119366568817202928644161546960276526798062307542326397221045687950168421982728603087788747942269625274488226177254159956006471600791127621379532044827657972136567302920370791231246451082538961250792002627066154491757084404365956288914339056895180512206982765647221530547466073741303757535193083898173899723417898048276629118139154101613272997241411055046190517123382919954916837978461364841283944257753018501105542396720855386848261806228333351028834400791471185589835176837917862276217322902681137163300702801718865726695438430297639807679188175065107690586401538587206683104849978384613915068881210079240517330513945154408541194276618405516692885336419300349411982683977691428207123922653540002123093583168501005922029539342263716627681466689413172781991841127205417225544847068367623881868745646983989839565752718051498011988546999130799824674616402663772635998831379096618253476268076359359781488718536737072215808420709760188270289279741202029033617295014235745331001222446594324543986831146414181423286153735050549922797583631540103189531786171982600451242105358297006777588532182112311127311426056687741963151179720040852132625495054870756347564801381001309199462485876386437981012764163723635508162849915233841063702932871031848859239474620315996732987174421948501787198007129670697946789166157372778660251908814599293307147705186824379888370398631872882050966763128954415292444036078099421286766063475773627171740329317668517266818119624090410071605013226708031897468956302392040897227528611219094779393763966656503374372950144906840528299860496549072769695698944518691885491942027405367032261650139280896956030735294946010959515574238763077415579022550610623671659637453635285614583809319387445606629646997679399593548044192068065268408426126788049525650252202876879062316141562648969298342666125825979791540843493626453906265336178302447894015632181524412366154743088753071471097697677594630396393422544918511571097932457517765255070708936682120597934629856142992191004217007710096564913473972593029901595796566379909443981243439075540650223572086494865239592432279574803327047433668822329294105382843071767148021976367440469783989443115834980031601285083238629092919968901263423986881447942155729724884023164211556678553219618100781544467508509197776280644129976127316262693619837902052162878660116153163373118616446489342525961606663279552232974493274508713307174223876770699183884816839172953799702834035004144844688645040220452323665773629069631709316466342080130755239129433451726825061408747207666200476679520471078710717497345447243212074401060645094141877263770192370554555485379127074814272426513803696960825110919078079218730985835885164018017086181184502976424706095928423372331062217679790531072743277850046405738027076678679466937181703937001250106262036876483598744895614305673289526132572962820949196512378982664730537321071860876471342891197312054887240460940664680249290166493787635919732322109179989826130621623414347898109140579745208581836252055379608840050820032952140492554224723979984921506870860203529969330229044488015232736354615464065709509689093839883827456899832781328366697136754523958836843420321395259228565678270488993600584664274349645849052740626954972849399703164779105132960219542211767486429515997774681931675823104832030034199435634806879694291628683575703104633803013936094598040560173814881803003812185539748940074105220496994491677978362605013322717839876824882158516165622269448451904972194078217437149305894000833269697326171324727609204406332241225404005732174481552039819055937061317780345326504340101861043023871050175367369357492599559696481410004576310020636641974733895361398891596463005891648974347257565475499696630625327520631181738304940227918394353427679188554364703422725249709496456155316550588193708280710446196588055126424723324602339028961727281319286602143904777613832045081330284064845910517835732243301205646312067330626475027383002398127670155144404027420547539511232167137461556466916551107291656013424551249527222579494548592680059413757179654419477137165801505083833806512914471212716168423500719482058504952318242006710461377025497496115117462456562154256727366495315180827441597574924738502950960866233238828519372331395560847066814146560680060926993984350217244764345146855538732760333872681726895628149030307554220989231551406039237613891552955986097735698235668649332681815279711505814331747415850087387842601997839322891299894768165339828498612890792443642623510253779796877297618526829070830556250605185232896236274177128147483470380240503166833169848866441555403485000977131543232216790534512181286153870219873903927604719322383699662983834969288336545162945514552741435872001443522574874686906777863476278168238535508653679950383074011905779781815878814100803074159817796276022168325746178693803911613962318728569390933401879083325460858617963361316978145644009812870113898877927007716591990078166091870047831053860106579490155235872404265550788967687684588656813998643177131161730151754026164651395631344681963778914023456380912402463993386495793198409096200453336807852274439895268503190554200083937255699939106134228842241802365160711578002962162907444919752855072069478618688282098702644205180011177425317245648123907935740195780618802528551533607394111265858499347127959960424512776592792908007242641630356155354367419774945036831126017960372689190230711881348843105934429973999368219439465365951605362940055580869209002640675099001271044050225383751408694535657367202595932821998652870191924522410779977783988321250455137324585438962049186989908910913796608274736872648764124529338970041720154675930017103550031316850569639680006827883777437437981470145178685079387577133123375413391207500078229113358624418677563143690801594293118411060411102852600988535087781608355680174325999424046987307412059023538008736117135190000493354301306129099791741354454911847570903667270319280408341065327341570127464349028508317438241526596322687586888130297778582358952781514770225959866089627509950768762055921892009231026693106600559286763518382083658751002214791918904646721322565848445959529303284958806452221588671962532239865716940121238103842767225871650194695877853691176768237596681223212110428151017957788160322536028168295866719608356560445660684113866997986794409201913553030188991388490058271266851785818129170304104021866770223391620124946032057359526873876058698464633150527857313695232747036680591471329248086445148266274576678653774179207630221693102625416631826385492286735857514955830718232584175003046478568407839390736475919824962090305888524953546796649435532625380228526915924754419408572157974856816481573496648750160103333764352594338934791258162420610238554136916295856774151411603512528167836391465853780298650461144285792467814593009818587627206958232832768876334467452471049512124002923112944586884041814503545361289102095527340408559765719522225831123462339096698229838926481520680208285385479696686928785443660873291540172416700367911111542713589754591395517307675047169806172485942151144121256454102009569241496904287872443378309523508644728927045270807574538173444126497250328231288725117980274017977908245961455687529181785298807003263456762516450192391273907890930297456304710032201336019297104214666237783302614468192736005999521866826402723221897585349599950282174922755771240378903497479002194635266496465306200167637666941815011508090039532070669834602729132918313491114013134193376373619438009249477587600871301572389762121166814113532794445776335336894420597812202282937188674572183985270689099788120803720935111474152942606287685084061086079030366813006269655037537164380427797187958001899661459645735740542498701500534105394388345846282001561479392981003570466250647226641067193686223221183714790626014659561276680171586874137707213975798110038421387217285127684558584919041921476349448551311382298503200825441531723103237471863551284711122947474132120101519631510830067901630636386183702357314773053286424262567373685318086986817194065008851509380422640742581148164763574665685178733783237482506532360491592670720564609513782452086225032940027318677738094082839700468498151299836002640596063873265406275499784515045919174570707478803024294554804291816681286313378763472241645452941110167148372412295134475884948206466373117532865547449962076532019848003524396281536388987156509131743869559863041019707674727441551766508785603642828725563824595818496503964255779643841262928905218936801917287186314625522986776690331163754900109756018330609227717584042575253420295351040695467948797639002416682292341216915384911230663813403433008676366957853151403049316967239246982719801841602799220855580283900324055298480008711116612753404183582809247634462922768533212158811816799968718589690583468588065696111888331576530383777884031086455582540040079262000803328175926362351871140477559647107351447765422479665905367009992598886229782871794767936190151796465913757931943603717492258674987030170626905147472561549933961703317698727284710266095582857478002008538159921589243733336968672974638591046144191055959628783693720356388859221165222038686510224886083260177584120945243245925571778091956276574638146357840096066826806634248508570724813309625116423124852557101273194408083285469672117247113530254538937283387025335485793865588656824192315533453183807506183964191357585060088399032465614596041294599151831211225478520360108857528750286038736764731590497306912640398884363458021009441846471078593916543622549061961050344079359027550005682266875296825327986161502747973211068132279706945660903540755168294839131718906631100343266151294129128904526893735203614184399191547510870291999017257697393429978099903136801359058774342325510532727057929315764158804041457838010628634694414573921793407381616670640382798798524232402177253677867438404513460249940712841805758833052780377526523364495618487508123837728265248477729290957405177139103802133915853646601354272645047655850685744897534784536310145471295933643156850502833514068857338034647985550092575973627650967698983228285806728436146126401826950327273306889119056200729928751168638645750819916933048489047998828591877466250353329301513830242722580693848606616519943005720815237668500518337425745054878559832900501031299518269659523975329265063700926760405208565744489997890792141362525028313380423380594694086329924622730087181135126234179787780895217807902387002031772015375593084296889850290431728745117007403544738025802455215549620803059429708803432968057752322187325945126000411088021332040404668940294316137362580575261081875079220116722550441624998863085886490372891890172510003028115130025913059830921691391190793082882054532056435050360681987184826883726886023751109891652097452081223281452683571947641261878889551551155752685161889978132621713328631092891849142431353990172210241661512515436678211823027923499843982550187060466686952107909022885212665423054794907118493019227013711154987657723006767652509154855634298083715736955982151634954670613319118940414726677884110276328595183040908917986055729374427034837791262829573477085052812840587746209799013939124485038936664925273296848489243625448167321922946612767363139285808780959210398686010588849334429292275824886551800107558480436923738712082105694742843940082562724331615854068082792498877202240229353033148156560292735920206836489014240607073589754960857952663131751524767308386219850986156665199759070297935344713971881875641281635170139597238739740732834234740341662032782718262717981702777028194524488422128768545102651226799432064328828236990952966645802379628299079071251562728363706640473051937565307336166419154215884644252692281706829298980159507775161902196167777016525144881217105512529011958707745090091912758064892442133579673961532909379817515752508708382273196280511563573274786505045822413394611701842769943690479586944944837013865593252619930896753310522023291855413929392305759682620780675581717424579876255082883727363106607658350502814501169814774504550609427460007130900508894613540674781367359045040867301877981432754746007441823693675836994699111114241987281499856341347327497630013815383505538096914371826236601082100232214512975051656367122910927438781818002110569161969646311886269436335384152287427003251051665062175932574461200757546387154436006085063928925451537549271464321526878998614537849750488062452534239950113201197368208052981283900619765498816988788980245634326719625841764110828366213046962990830034059790812141739848853019836706299277932678480130073002105602370696359300923386121127833885072724773040705813972409519368085293679075525946100108143629997549904906910546636762715949617424995019160843922448620764517143429004375911480906535452673292276471445161806634203985227641646812050330082191018313732087254343379568744781130553185884394293933642846351076954914506980212778472908998422254025379565524446407447737328488493723436009762185863943915556647336283083152055476297823219689406896423236954800918208557707188063484200420222619182196508014639726974320309109829724342889729942888655176386209362896288542211291532062347438644173627086083307979800573299534468632162556481315876259699260072777748905703622731051427845854313094956869100974266163136175706712453472567484245243347931768735102248988576443612195468405797051857268474017278761346637213327303831424008906012402055533209591329079974747487907773185793691564799681692569393989791504872199865868865253410684471622004081899758930725874091154272214836640749169232002703269425256978345521816123322956516552295234425940152924955972927554440298520583439230906083966362197828788835690017487595726671610365470929593998929337615832497139483622761347231796726006033903821007599051420131936021260209070854460525628054563379380757151426268354684556743174650795599771620263984637110593334806052835812845318246455134531411859808118582234169674187517651627213398869977722940151088277751658644769198414644420347981307217150492050095680217537633973831918658838829315790686998016926968969514444692956098745665754328681971691409427319917498728163160507399399144349436858193884099884334324191673987383425341100261079975286474082806070941675172805829164244629646233440207298114413554416308926818464097718246094596161448649526814506701598741626973424523799334225795334757809299783481824491392999175797938113553977917697614008843300663049298345317553602048925481951133607832589878045120369975045930863035072444551046383515847306659395063462824499192230528788195665872682672026746014196123394688062480946705481164124024050664346818471747377337645253758573427500120727586617201347545354406799827039142298790175492449983134990469486919132664168231238515631998926438387293438348314433814335903737757254836176023334773148609957414240174010674798018201249482330573644855557755128204326461346184558059932407986770207616263704172528783182898607195090098008749986402571058347801716729523234449460510406260724791319420023848257605277469447828388852252976228694939426590043998280959116544085646779407022514616549818200894420543061453518350669240468152445462454697848453776395745863996658074414090296765757179205625949382807331977620553450604313156604380141788057166665012343264343276745931523653443930605737333288572167000196394856308282496762408301879819633882844489863846510585491178099602176000749229540023926990391958821124546828616887455008854936455715721736935095449680565325768567206253638012133391341397397148019457825450657684992093705838231474843631066609539545422928915785874754811407827009232987464046791277079240663905051571666645870111251961866744941060492372296566193431656711834753798634331593723294272340502731389522829108515229468412837237780037121497899662249660706202529086863914226970476271413286078686155976533848995545370038311783993336062432524063679407792333007873209085338376980511583966669136680513289643738628179297656442469743644889846210904505598286238810571367629327403013165390985751925140528660873211943044240476083352841450581669711806802716947786060789351893899691343280755688739217807128471872557071782013770967078473735014171496477690712674666948280815558591370224934148716498329532599379597992453278322931986795696590812016951273052589083184996368803770806598670496792323529214965318761004632811757001243401905741530102883430162212934116963511899738985509331983219506998421504057378999757068172624150949012261854035747903413695220510026798837149229347442434096160298989573356665093264564992343475617776780946411690756775129681294554396931338382683363897629914316803133654263467323227724570252015170982732209411996904624869481329149175721868873042939320766114177362141147065970644957789476742048572003534438146996468728043029728184697389959835358529842279423090044954835686606508453180895692629013169428683897001174884527700704772009816211126551194382688945146735880227509371200584689216350700398437849101406636405878932586260089109831294641530112261174765720997533229154282195505722516696789306875591260736832624207551157776495672920657164249658455719873581573707562733888936134661111942549491038006314400812783548662505562455702326948622243115991870427491903248209689488035012505323542385118890732353536251917730497650709407711109950953416015056304704406001255246955796205594137260803169148934809829535025904955908831855562843998568099595013089434726295946263117709665977896198777395700172664334916180195332102054872069889856247503636550136903564956305832240737084483322681927401152792641490193209285582199221354085842040526438282865998651079263134177559676325167775083088857604566031713495257477113999663152118814342173698667662837380834183681903273746913968876702559206845973252614165244760717318671270236038677302271711956378452970163317027285016204276132901583806162411899493132827577963299693333456050436275362118645960981690367464145894621517872816900324876237394472952109395663661391592716051849448810093938261233266058331110089643155580789077594897646672110983451667763089333148855825808628953370287940250542500695793242969286495706380049782597781932787572263954751393007533253176698497379545230460436372962002550412316101118389576525878283677861954549505896091276530540473994361329408550319429626472643266313243050918841859095322256567601961578041753076931746393040337695484793893248972107636832625900474503777744318197813085312562637850018264876250643531536258247330904716052636570452477060791604761617936123172884485808284306636137950126588696745922759844672767354182858507333516848520877298340011499794780545003078689473931865927256126209173531154033768018093527491018128776907909069651730503787784805571359793409291562323874886456212012791531061083658254964563293273933130032066336407576161240312547678880842468576472231859073880066830041084770683418823812938500314521211631277072084523597476480333748706253269860423352968427659650454374146208073713470322322505071366711989092516557655280287604320392025236250224235641779068587705283300878955030874586980515574896581484252458427070460501742902287911956340318244037372723662150967385644016310958676439754450541542248711428583555170016276185573028190291605168947052178718343413774266925021131663589868541520666305277486481931082261376719398556400910700020070304461000972173155418497687818247134051045169524683201560641641147767441937473164076274038211166667054978184051288200002689040842267256316762034209217908525456655574090674323687722647468756501636564285296579483823913735175332281644333259138252490301351328972089339160689310395098096053198344512618660201357320396230001935519219448960648951136953491529300781618551923299291163834578464506567380156291164009111051990794881829307878787996367271676536624732137644697685096200262019731229891611719865451682374223306809486119200695183114000950706707929276469470906036430144955199763966737758534929548257202187383295501374328240065788257753947462686364863456459800395246648382707839546682006142884290434895764789419848761021271481821407611443320759041416129433795092772385821269478579409755631274741867582182589476188130424525329795416492054621508143781732055498113770155659610690198376408802661346321500669859299210919789458489559619939851567002184404975042596968773878670675753079885919729189133442783246178766204378177587890682139423580093749047672768473078133339137369938368842515526355774162258049455087555803863395327121587258754797276662039125155210294068366062275551357026198630471143435952427241714521253618828353389386731024792248051383573462219298114052018931035708238425550351592619104982737421037864448405805198796334805624685403787272761597214722617145806359946506745406817300618670983582314732298146124670109369197521079494227704750102769772489284721572313990695412459553067517578084757562348035751030136589839869041401951499207732904922281960108999947801180475726184556667073242540755317666203592103245320405476483654502133856420156289138546556174153262734206878437791876765556801867751231507095882109660053552469407530110692047512202878111917248994212540214147902240211343557709425302687366591304228631138403123662346404949367591237756172796204876950976496839255235594464270271786760198563063430159340844894337034512623604285060623310771701003351492003906461382810979117594659263509437836917947154940336641054542109709497873102098673666564349420431166674234877083445630639864597872012870900133927156141329763349246047105626586672019226361051430002472022018832492679263432203237168532816218588058695443356625761980925954248990131004293487708175179211064327716470180620312677586469962088949382258789239321094122788532201318170919538127787565470860417324853295524273245837707528916979979115465871207046922017557599780758678773098412729316787177659625922570943260474214719989696996771768336367722101991958977086615985293684827375807019311926801837166282716103916990169704230549493595504653003359065640363006487969507352978450820409562177780939005352361715350659007560745444215382220432056757046394947438626768069718185854618917165089776727213499462989207388445429975909255024146922305579381505115974065999135771122656832720975597499895636569943273864593396512169309248181980754995843206182029102945350212323227032201394779702839525647506683588525984807345138748349349396986759450573536835628720473591108665916613398228706966728808933112505268925324466801970322269184041655024320439411270778463275312814702812454053006612930829170825669835652775672704494976447499655778408452191737362565009625890549295222263227722438782524655662315168004640523021505034426998194024108879584333926071427316636851378260402847655092399364633088102806244485931630583048415002064866382387149313792297344473923986573383626762168218055338136186760806899773256518739582157030810096995754213488377200767873136200426219753621388484464488889688157227147895563121941582596957273279839224114880367914399800607911790635330470282700282664848245374525382403583170212195377424039120499851895618234067120631958803553769236991021027529434685130318205368724453189102789687257705156303588780489938587074474113708480078754523668020819098974612337190114245474655674132716024578860244177821053289115801474792598753991864339252793138901640646693261518096821992842641954900594430277630283679738735009828192126308347451274411202504624133753265589156523676097426494006751647154272751149655339684056709417377428614183555192259389697926280883782999554750708857678686525234020840780531548888491881326241392961548531019981057817039550482031489933332955473021092332805608666846619600890416919907079579457472337159203150415230895247584446444223519070159679658418607417561814675020234187790077958110451934093755036584702440099805121329188954810358225940519651181653599951679013919361955744163485456817429778904396774077601523540093045372980316408635988829370883979991284231744344560501404748527163021104924513382896186031184111264686589986942387500264065600683091515035302487580325574000498844926914661847348595215766148168484793180230735614506314817697316400362080620488821443163581081266947329229354896027381953841136632377941625590967098430550896368048370808080886531982011094792929930118436506929377065756113506718946614175690428968560473473543865696603108315926124821696261085449837022861374682444710405439262745994868952860242920023351543281738509300142778775857050560682406399384333486779076997911217593350923964451246883523787788693299666183134561920728381922907990406602328298360188240676168229950211274664342813501276808651045475238268165279632720972646428922914883293489225707441218024793816769665607291791988324215696999049177993715499941661525714820086212725971134636667947090071845674856165950599043019042847475944994999759088799445663489406399743084746529020723944138880148885242956629324169535174067077622769161534958106668802466336486590718028543303348579458210756248567031437566750231402612175302265955476505129403869595975253604349373257776011162783935317403859515451352262272160816448432229894001709408385079823001461048587494373733751202706786821979416653601994629206738013639134465135151773872010368243724745134824843764831067336112332189880404241688227845599455364336434712099521954605199241898377224651840858196007892395253630328648801396282929577672277025191407502436413029090816068180833724287371765032243844343365090940297204163025880462061123195850022002579016555491502094706181035248425339672634955317207950889628724919843649721586414876683542552299397338622664605127871173461321881161435950600789616182647872010720285859842511285338574715197665626542133498704074815503701195806961794528911612012275186108398040991836301159277580158343954597407497444339335803205052923153816328588195901013239930109896140809450555344591974953688710476209997648517389882348365731017062859591644945215164755886451127060163650092292967640159560024496499424926326329306957536678610352658993849829044762000236786584012408806055070091501236307433783368570567539314648643295553768309179907395592283803923920047656279606297313495757801342242200592011135536212396609618888039861982479086785921519554911062986994866092349580060541564153569168276429588753734633130151696299198215402400897876773605677810642215027801614678563919313964959993514662057631276816312430980506301346033373250941632744285747139183258419433175183960927862321900939233489588552696325971254462632356114145574578744367917233217065011367016186507821807511793813855389823829438697555406607698575682570157427236353299500256397571683612924540615803453219942203269310957719878431255272575292225061386669831399900168717718143729192186925228324124959585677991432376153555398658940121696518608819657812445498327229472582071158595857962396521832342024127934102800569462587335735684063764202170147763935492973974465811349320388446047240858196981373856498993552304092485325413976883322253197776700535517977477436302323049435106488995281418002627790233920351772210712064540274413976859613320915430851352653486288355101429143742044584663059751783258677552460501453377486931473634718755668727348046469664828575032063154735941329540440283075493183935882117943226753169973151599936296208057385994276529547806415667418736144638589547463834275038231845141664272729308595533171923793537985349183115228738499195368932636343248224834321566114968267044392051296992072912494611207189493673213022241841976226034032953752089284486794173757505852627961936343996234346792461499103807873812232539501387095254276299928638691224271501728643480182432045899706806469639862668509725086539277109974402180867798161541254328065964794148784657014431852017875968292316143782510734230797108747727486405929773229515296427120596139552764536727558065633611617295387296227519609262210226723925789228806154644064420322988770821912203846793772620122364524187684673109586010444225213798740607618562352965232184955945534798379244439176848102524934718444576224894577595413262906293541232325810614630334040426205376658224900264513357202848553828551843247475691614891017254726032620853484296634114421845920713168641984852980789928409699471769910744793409816886619619285857986080020871461659732988307683615926920650690523663321555304540953390946667518423224896465402622069506410459670669957423175897877168584780097298044034463485370586304250733043605765278141013563419392599210389673095227130951144459104413897634570087377936518793555421391880245986873522855274316407764981507047166245153673458916656088005173717080321240858231515111644882692451684679327494513372888662346221339293151730694249306548442189705059940857351322684115195506717927576116242140811429561631022578789593009742872017772127374165138455030986157579198199504846258655731654493059016816399133214059202623378437798015260017959517302908100585257386142180210338994781172436154171816494656991546001484582015043385916314736996596077447588249047050020965914251788947458759060102326804034087177594444734728030147959074756986027522878848247821702053945124083058851215912523513484670922191033861016860699363040689150063143806084118310189709937363145702073164460898581653653096495570277751360708790223972193018782592928786445362767164774649409296067809395003434904104045538881946476010866370904730754825274236698347944221459141201976126368549007507214432071348704935979227927541286148934855513544532370586054462649394653991004328795465112672875967693830857029453701027856094241000418932574209549387392150104978669303462328410920371475775046413930506505881053538009379971416819253917478915024328167956602281949292037979817891874060278467015932703671357736130465786761398030441835488308039305592989480386503717316605734100334238474157323486116659723690868665436925314488757460091690709898821752425181630714136736988360764579723507557566754711507892653126778130096102547804865923730394337162281526849644340126584741772424214855532048397971841586493187739630851852020872004812710673120424450469015051825408112620820480360367084257107649229500182603505898063579782888461399453128935664218374506960430741110396203655906196140104059656696322492040160745876080284423666970567001805475721105695010278364564506388813046236370655299911464719825463797559534406676201066474186863835022533956856901919337560982413598758731254399539323054249286054257595440066985631680689295452574490626918704765607603946094393902222908945736602426429124361203564436049304012596175037688758383856137174854153571271870816140644669428367241065812384739816836197402551839922310610114072147119183557948516964776087915005849475913098709639805054566395131439164492231133772088922959314903673502974753388115058241040960124280135365871953106841311843728560882329855837634975494043630826711475287665235296133403168448124539914946202813106319773064246053361494968289410243052242694709407421192259032761093328442843198379141262808607523581427103909072928271344813323402631723509866992012108213071484799007934739165355544950030554770448350931984322150407227173436597001424429668083536034027670184194145465432198331715628648480316880006246161832443704031957910776671638786731925199419439011318155962983507486749721298893857648283356156609272170298915510830387036963281792230588466568629564566019581300106961371437143358694136602699278338771927394141286780593732403574046512331260471411185802520405623007345470695418777551848739045158755344595885119581200594036468784870812088459392832561022293334729923114168228281537178236695095549619643007196267574145631864965729694822643435469560754610522209529413482945574118665733337814435242922647991722107470168577482254434975722567883470911680050169355010019776343588977346576278787767084438935949550137764612443669234074830476890504656723580886400383994979104896117507092660094335504103527605056053668978886465073555305860454473535201456920257574757706777904907909250189243441351543127309063580171159870973020264977698526467576229910898071123076465293418917152062938483043186550725035301437812922432184452031206622172372871457315710028384927511661759700399180265336611645327469910033632608055348544302133427436466715378296123982558468411158889689096705644624288917488752172676166204278474105918952336667137891603951244355209128132715704983924774520663017374484039237855361177781334040686918096008020748116923724588674366957820893228668254862613896374840480213571001934492677595291275579164199898279457889325742433749467641505523466472838031651717476414591863161939698529347887922970212587873502932885755455380783396684508056131099888961065613511932988519240863269586836381093295856660687418680952019819318222155144406657413540022844691026899726599353020226620324941900746965120361881312933009806035778526302104682804608283454522371952241731040383438368224305915181382851703367617131874946043664505014840671434321739356275379783950542067515287361499910487450048811020984895444845576670708697564883510966057923426335489109438343569552448533454760863305113390594963294346991286212788740388709623178875127997779968880760621776287626577824774923088811491190722137107667944516665590271157724921635010118232142999726048751779094762687238140728442569877325246470492094150197670086766489098077751972412648877405153086063835306330373677137344919437957774821516578799636375335814832355486737006398798057351046080362797956048520333033909819605150213894414996555118881552039094369962404086177065237757706291375542552897558636838817795011968290640173984002983585288135149358391474203946870862223442979388624866146390389580390802187536611025574153118139382338866482374846143686974261141517834301540553079932210306473475764920563388861233001085862997163696224989443134270938414153196240820646458910562856132258253584398599691764389337002455923439108320585327349048953676542014637437836713962880876027307317624455429589144126772300175184206869830589502548792911574488715558588302650901615893235201022967863650803416483589315936306162010395487602063083063067453512910039569713033714635032668830401972527920426714663919752330500772031743335857516758449345880251584562799196824273076934416858259786950017804987763974162846300625393062041153353983394106006431308710390176002378889310920501461522831186236925194355784556932495833285373910025666153861636515534251996980721952781226450728673195672059162703076905163231193335510860706319579700423736250686725914160189233366801567547881412664664406831340329755351849023989788222465627987428700301597544994484716732096533073447802277299590695429497391940087496014763251088645626532265628578678734606048805639496703674926225635415088457683185145264154123263956091232240992341555474036316361782214813826507858084499809518186076250818885839603430286654346318820086263835330106795904342546954118910831665781899825447732641739212050941917377299224479576353566423665664247104397169755782333783727280928732282940741662249527157290457285985692943082679778768214675257807326547980176142648974464717960633409108142098318607934028095549521101822897563391780485212928955207270359458876532191529995408731410045052167461554091437371035591505030489199661953687469531189439183740574591082000058669400706638130847346653915886821459802989351232710474501603812670962717137920359411387332873546296185031286350118493760613642132954189126772400069114562291538081022976359790734942917189678885992595684443537590301228731722926638623327702978736620233821887920110800570729703177755270342345083428020844346816073531379873456219080075968017253021800351709274920564639610700336966227863307788631450477833487333052873247507570187346024566972268127101757148817051085269456156707604476894754177397080153822123144021718095377515415039997671819494773957706154926944871058129210553915377062396301165513700415475932461366566779118075424519152369520965005345022760384656805872405303603433342979437730797676142776964296789822343783595686980456934880008663980021422377002750893451540787713779134107010287290689751584079603485902067431853066965874998315719896357216002093931378886813825108410072698814325946030600044701305142635532529919827525375754739895800899995312679359389980141531377737405122490639155070192124679227029007726354540672905452980898007747984821732524984043969869060686167969841748810908434234153201861229273513935119372334545013679176823043155479197669589373326658001913833287531527681634585128017744068427826211516380018832333195418460431943428254644742802323890166072899492095201893164315836977192650246154986010506505950235200705421491656295187834597941149167971164087760450393314030278342279638208847834943099219127473814964832486879517863515580346839753183943556427408610204020160063480688330304439610856608270618831470984716303365340520815142305086274855996288863795045503553194066377787193209155882149849290199690421703703471792368266599693451232444094373107019712992215171263741392275050738158202270415249469255135300716271422725243233711122391015086976431410119069448459123934406599620620496875055035472300931512130704986993357178312970737971228643321655766062483234710118974230285093541205422613733282282383686169342158557489973653635515119238071198845355495008658811763404121018698386060549709277491076934809281014522818285737013084305554687201861723389077660535940101196156698390599876943129913775004246318036105760762009282131092546249044539477286915429885557736451146152197202341775432649745979612213474680134355873522031046434767701057565306752951918299613020927730116531461598684675804851674339781031998148324197846991772274930746216010228766232542762923525319148864204488020474194683372446464964455977736264257446870505700788563992469420653472160925184681824273316605118424626820839738840160717232843314475245553150596250948551361471997981945105052650493459015939241220055561809658182002112645143989872736306242540710461022680038170016565538117388110631369635047175906406643878424269445026468421053967087483267135831248195684072929382525258164526426035566243650774725546600592342941604887654934954103367350791744845114145477395255977359080367798852476708845348177434458896589385380161888888365022874543833068173244890131936200625614051530177607928987663595760297008408621001406759031773488163612455172724050518096797320213608450766485910622986451344681484048934709249570555450374011047352714019588109670726426949281280276278248465549197629245641366820800326633299870254383289871860292759072385258129158396851303635366146658777873863528391842824221710577913080716522797795928921064390888675256958404601632699379643723180502120747445714256406740433680480314076641479541110864453932933814549825904204200196486782977055292320626851079353097133766588853943400544061407070788165951638458110677898549057647380130721727244635935992495706732484365112502459578371663529919262036547780831036918972222356579225705548733862519198834468994219290246365302434366788576846583154159782852945245000282179812125435243173503860653287641848796805593114658247199142390124245450713958386380376152957097769727613964991143803342220891854058205765412833558591467664978303759842825469498409050227361833984684818617314931189888633575214131152117788519816723978826508900417393777709071535813629111393209878144445328811415833743663401432911286526170062024552582580011716437166767904313781461110218067108520067617158111375725859993881783032347133029337162256902267476242859245727891993287044223000316481833334867766528956689165809897381827428204695053845400152375316894316152446829299971670496627094254469681793224445602055847256795979097298872688074549735076892328603801616487298355809400580030621994677280009272545678247816663213681866232331547824281874121154558211517245273175259210542635456237023544877955289846542527160600539798000074164724423828722156796742468991716394615838360729378131224026298381907257238252533521338310482799967482647007558385802465259001661094244164099204666338221467752049318450526757641328642098497220752842683282602074351930854918519744311408244730112311957977302728030479431508086972708390630445701295166354898404693031183327614824594882192647188681712585277863119648012299196692031432134155772713644565899726791555908715851135695850856849835396669015520736293088730912430186213080435081445830169702671552099085727999073988564210045975584742716031542700919817820295945235394993164144995104820561295133730630248523861767572243056917551322293137689509786201188023422042703885546126474177962833170278842711097249391486185520489707698781652177202205924857598154732649026934306985256169968494362093675721965535155389404677851123150767247003678294774978036912078436995831874878308529108916783982431092085153802584729092281155629988441451163994280495240384273120606047329139333750179076619170861838241785038352652348619763312676934783137506660529916846269206095752379693588423968939873941945743128322042016802310938358588358332535715795836731627633644074248581323600740034956208614724652571997773251447795466348302463816511787928909241581583069870470465476906964105737962228721188109830016794243776462508835293077150835775103786634552434763220549145705963452754582262974679677464771631378412100581807190317373173706195693757517877713224780920489212716346360549186266374821416461225948094460424573042922178031469453241789679355586593281953884727951889745436478668018327420297793687542005067952538928615513275212747383586191632706635677175296401618138680266177912858644439289761514127619785503513376896868211251274707181920323509345813894252567279810205059649062513821013720484247758779490505544302742008529701894254847939307357073046393796462460436038776823414895931792658198626326951754520758226560056140748893272650934492294740334552608329557075985947627256625610775630092024731981871643225544395865506130406083323548398519359073202984212856649504666830570293907419930272089747592855980728997798783599385364770585621268267487998481856085945721063243209268792662453358364066885477627732697138156911307971940235763119005559682392357195369852579220557389071802212606214096885274509287395946528216144633485691334482723402255314177435082899502644768508629508768267238412537658549936555107776171323050148756503644266846489604862930887185523470733483022825070810710689446646205591864744799305948032482432055698639809741518360822969467003902004901181444132032445666787511296131024470548550448372832228996553470169919654550760990504353258851563086888211285714547744107273277769973083194381585531949606090112212026894143054435842488623738414590525728195227525574808919530820967247931029203762829735967858391216844054245119948103096747670305796708493914787230298148712725442250828179278273915463735700009851689205996712958197601445119012733931234999595074458638689605107581129061337260654135912035453586492058665847062761885909523788092686558815751716348165478322012635304756891655315192765519054971151374913804594933554053271369622091240238532271149222272530554866792075556372991251428452507645828835952460604250897737556620649318673126381351170233006295154653190970815439177792664305670203540557384166387136835402304767367306253200140291782240518966480796947279665919222035232233574552263213017017800485592606443732882964840838026897026922451860084694705933934178519460150615210188599355093696359458429739109746123152858937825807705348542088873487002965583475081059760334550543274199506358424280840187778852826460863383485864030912623116092635390402444240459414805968608944043890783304054896945097336911425662287800416407998511527311723148191936966767870727136070784391073179985261342662498828664218451008348198142443912827658221747891935393310073456836680338709363766914877342620642491656938673095925465234296601396858826872792400506733131602802424304485714948777995219536472140834043437754064924918108252207730473428363308855018705629010340860065278438182081708342837752645485854117261960329175562054424006757983762054103678931110585654437945882483323773802405413095244758698603245423469008827801114283400366983314548257886314457178927793009306450531932874070121952350550694771317189488731078287912915090800590854678665175552606302125623060953414807822189172249280912209623646825305331777058331570471078799056779651574426926789402911024434852796491298985979292948544059380658960904559342635777433981631867596740205629368768176949067715073510272359447307516987717915529704583818265266529578311117559490232125954200643050338823702907621734237382481165129973383224130208485022896031395939881524647412730155646726024602242472028780426866005571955490670736405072636229770487585942621105234131377588969929305149539886827539493272425136172203586456765345781119690580105084467825085865944130760754434527140882177980300984221564071036086233467158049108806203450260610304348382106227157020038564132079376707534394888214262782847868221958482907056649647184113604521150915346556146310081670507806538516848779764137033686194688925615164733118294790107940238126694967701271632772282237100351777435900251863463649708647459547579456217703662194134183165424843959218943641562338540449737067696217593068181955855491982789289957153491582905187551443751367810603342291731395362185769301544836518756082856148208804075406554702421079762135913770452196122327684103143391477333929534728188494505543833408367556008129027312864467234088047500953460107693009506457900443428684968009349991229334430775203624390248584937033453516590220181814656504525090452827752845061638868710071175282677530335583771823949660245507283625798217804376389829326277534488845682738883119025727377938114845812965667042195717297082328434382848571093673884194702550304324960848983062345543143603739426024927337231142929184106255956683619443651307872006788583839140313160159435696114470825348962821387782959416027760582649825891249875095562163688052261391804146418724075735711444624075100358444410364927116465672620878104987258265647865658635106798979340428145585858206428944902671512931593379841731699880934709133751244584493368617124873399866682842974804821857239741519745852007826010882789616815936367007034715323753432783235069733138456819932462188109989309636460847071027125308491960303846695819236569838512804170776774163086114603009397538833773580642187646762810433556529687818523604362766125604461473463856006997197051392710531870504630485649231757281551644676053221308101173919342635081066277760549151323214005513499507537874728925036652904876416148812299591885548584200086983747231621390800668881481270068675733834364804474313598906037154390553399261456456020621283258780700906428338517894448375225523338104740716070630578909472701451925414484737350753061713757314069996160775308524289687375702553048956554460759106381660330841847006886495548017101433235007611333072116660647437744657421127595062639384497557215181645167478101103799908545268216884817885125232618292674071734468046741739699245349188536237447612150707879924476697169920831105620972643913848900043131134506787347929964645554185836588961004472568869185926580674103005626680137304347015650887512372594034160739304108249175362777928348792205198232429874538088547679047452298285888295618729510939788333016901634761098928749082435089394091932364538487374633648508107170517792164106849381017034107660641718671824122560804077994456141590795012792609503917147819626903013627547375723917607808340639766251742935054307614915029113150793501210329493328631767038759838042021476754299534214452501008411409148316329732220982801136524932390398695369767266237762850077292606535478795819620568034110043980036253410322746462512788501225460669032396200725093199971850253475324445890553554655513870814109645931656354066744019047530037255982326438084317820667125024279514012532805387157106467203394013866612387328674066524954520832381072355203504919952359897111705386993398113901118190198568243956165522813226340616559682733891268905962077246389247269700544231692897115074790596950508762422466611629569004927648735485247339362886630804269292030473535678250874568291862033396105223779025319909672714016790750003801262529126833300934972045991160711590414969790274237945946462999111501741838404237091736526513092629236636469511194861822331669676128837424152140791758039865281427437577885789987391534819809835738283724285431465754459248009467322188864919115679021517335150401151932243253092918428087401460759119786471067290470537062941723186791668905396566519335043241943841723060732666852017258321962993940357605455466342506959687653589017551265814787132382798538643657832392957996347617475048382476778261348982650547320870308669246455852522992159805570074457503086153176060920042105932730708410295944207400778508561856012332004015501840504571185923079705939967270474203546289894617703632178500049537546688972407074791804832542831530534506556446857070011758175546087411612521212912426286260750640972438538149138422474302251554637337822863106617750902586757252559103834586548011582613647405946473799857418482308431349558878791791337577271757556476488716588173647954404057071382611006471459577064848967799286257752573833518199500711154280827413863989189706776055650577315776333843994551893517152473394898866927600748237180075137501750509528790110684047312628509452008818482372916844461592571814067169170965136999163943931173488660644513058436001483899328215375524669981596468402650485140576945591917519645775525232827087566107419164692154234967959104059770340730429489421103230475440558823730980427277501033175391433232532896898145882397262200532218990975874423058302880852927646297786600092692687789490039485564055267810910334623944646886954328532234081710433354848931331494103384111718107518142792163863158504132167515446693209974541592310770186883218624342970172744244498385634584651812908746816763016077515215695031089468973513288053089695930470911221949955716692574016408040986344345787946726202439860644544034527589054071822411959833802375298834981168350280648858756223532347176811756395182647672818881916090482204828675023990965885192347262980502395721682368000487620880145356458697201513116960592181287354436169199154967754648218665826860260254168939157918796798254005690371952277633527553094814573369702484081597902912800990207497261146246160854617531572253133823614560373860321361060908030860216130616994305955102213624986458881773068213007278217768860632968083042031897120016137564972359866556330766946132358283718203494118040466903365061712034715927428553806717786480580455335199902036751871841050049991114651900265652010749256395952900259100268403241930157978134402043360872925813222550358980545466320653333948646499371557367720499515984754176301050891917222504815185892741231889957154211108222628349550316498693973865297811483065657783969654494170375893648932297167865236659777486901472618552189907162765439565094070353117343239976874675439729249695468829344507181699153679498904457109852854416147877310097414220154166788655004143834343219838213490456599670164842485730783345225322391238436289485085227340978923833133599138314489298624142602090398115919828893783653342751278346977777398007260887755252159117962645640918420809596480620761486934112319031027966423640877787370538898529413654046869781043420570905798730085392507090807503278756850997474981450004358769596409339960669284252517933987430553425726217060628493102825254588460904721752138757005324698290399156645156356722396997473272126646178099573630647551913873625169628089248821343896787653995174703747808122883355986316520047945454384594561218139493710967757501485147523974366157727650442867777365311453229887525329651426435327723191514150251753828887760760965175855512137962853729940684395142159903458040231580330826300552871161362733141869002210476516602111608829433710450005672530091554433129099143029684827343043214968373133655828672598432390366200742012975575699975826793275486592662424634860072702043540019189357095020189419844245847116633661773548936640956429183606665257134301760181728822776862219599945061543134488163326520832305052080033376113540613142858856874730688598728643256627224570231710102072395323573115862863650048298376523905319168628129735166826565605983190195543248648537613359591393043355693653483785111785022877213458450108010085397505598216862072389444906922636411901460788407952192532381575523216168431487186855658894837625822968854288712504159180254399356220331947255938568809184397646402749140859003738024828010991657487433835084492615151511606170320920769889507105210394154637987474723707339819032519499474554420623776263223890136513161666649333824025253814225903853836612583691200628278848413991528907387430490705043196425449855994314470971667204445589718416644741176336974926068388758883727011428717952857036730422369267415863093300738693499379628416893594548453825633646237619289928191765698310955592920717666411232825318833143908250910074596756877831842596843799590908381136563203894762099314676724201424577948488771634240056799538505084093306491774888756647577992860170264569940211734557911300021001728310781652381404919951893790950006592576668042055626411168119936328461060037436582723493861434403514049396254832489514968837472771943749349101931995998745637349018010884296440791376979174059293143388787989452882585310185640696941743549844014871711497289185352176309242044159526103506796315890703049910700208391152641408909226152420774233646592296026996575040400985296860454785079644180693687780073879625070606049659536536208709791638928593428882891810592530527322833717080824438259208264879446180496504524668607421422870187478289238333775759602628379886981166382302614557551849051860218623924764162213973249522091806623246376241126182104327702708278234041832378801101965028464997110307810091260759710179094480952650208290616089410416460795712185344012528164591471755606285024198623220357333801121927677533494115075051179850043810126994335520964022315415862845004496776038788354221573019660996389569539407421751424609565206321188357661105787234946305049777833461620489801365654598870645095767022663579752671552424823518717673209187237792828070080233969300844058762982308712277995940489794947677894347270545680536552165987762300194580589347967260102891132865201294547178283922389679857228589235745120614441650932107397029630186685656927490466872071219923573504836958817581486882060048499324116679334639294068873433717283718211178674981455219275648217506381116395647282379170430652089748204475655384161106181185702296903320539679534278824537313984233299212822649528624952377705206657834806108718764927502478371849143102788394555998333952213851778408701878445220115848648062573063347805582506197461385665310163531722475622765672888706312895957497377056856991772833032618168714347368338381282064199423714646470557195452121347074192833862788415910389671852625899904595349769994682550065160323505701777030614722994807764128268069859911105495678744557469962398801943676001333571132034078786839718214550612285714652230245041286753725785632175705425804955408464389152592254330592430478054087289243711803811596235647138703374627205097030976530814881231373050063389847044956519974569190212337127136451817513930761612260770616465802968851761482677816675474187188323775241419770454477978066122133040953441757092393472406574034849468624462351833458414919566435971811113777248567584501189179869043354365802714554754657678382597106294186562578908354099894465476258653873830586441002771057362340372502634208455940890090700258646207565323841669214007518388070779312844692524833589629270815871003692326977192179053105876193399340709923842164645285185933509726197483484575531574974829624762973833890820619203972155958743277096767098870154704427341365550460572808201520932971131307414659293883819119110520515827450910995992433049994292712177284264342066229759870380954265853034537006667180184374776641628965199013017894605459575140168625588333372321150742152064824474408815741151402189058643421893854953451690672155822641357037925030035598709931376994596165344979203486554622434914979753731870261243722988964912058375861646065340598442173837691353386517997033603111689636708025730408889565552473814424660118316191936384697720280799784949799821563410579157282638061552114763316185749280702398523339644643394566674003092471369129855074811503343736125927633711333152843534303472434018366668476289435815015612755447137982161788719497168468679875079362476882188178679699251132676830536118710000874207181589573395788941201940415550014199487948601582633810712128457428044227750223128619147197794298767592149896915539187695350330337946458154739517897454849330076808780914495219891256404426476137364957106383070653578081718309503699879996947646570224045317585521806459157143158362167188681524558035257382315229967653196648890158683470954222374113323406867709075110969543045726030980900457777098871870436877062832922910075539289001172636245895076065111497668606543975758801508384666335711270101696320144357435987920000162110218549530875303569756429962043352189992108443792410603770001401548780574336054317777024493110297174929642993507767137195733365727772755348617598425349588764137689866565377097146999399815290446961541787137169057052969210680272099731251839945763309532342055453056836769070413913137380819104717280269828727637149773247270836552780426533727165679367008940499992121716764348914947480097447288337903193531367343903258391163114077677632839091578312718934835626883290748642796037181886782555743065372703308749755150386079595938706087725855320647922210756099814918111303726185969696405886214667101344647419027589435640529670156515451779978111834964869342600597462526330525067893780933993874457407476265995432919763970176930444504763735407337356432854873952342373752810062759861240374547298952569958858406032708310403259910624215677394798119954806578055543362656047779405804212697972072790175727578559467498410397549737489714535738078642006906324431414607734290347857792320226090113344736878513640642937758148084490900978546377792451464790713462041991649780613783981754263317790775003859063482976060136613669204940562647792266137094478214164864096045882221114090069387927157399350278431273105702497327900989822844943839009944044084193943367764391328792090579979331829133308110050575606405983136626876239814526282618636526946751417236644997085770797216883364695802840092826082500851201588164626068392038044931431973589932268918492895125523430878940870594765042423481594911023401124762060905867625104740079743668442374116488211153869656793477504230700616589317746108501503121947943158987427453581373828907094684432609711566959389814803582371428913015236909223656738416127857569941984308295649218899190552176115362341017554975749590376103184606574560175205066847216337108182618242824047566298199418349321591644230542865499564884336712154146039409171981644196283820505236646380132636204234991382445117246926490412388956272281116934176221126460012948309712874681697897962207552807782636565962935115580519848614096445068516318022278430627707179560458181421336911611811102959319075140092131926974950837581256810046357712358548148685127194653237475113095801086040711883584105847883326695580075538457414690650184328469132653176571715311695584975434704666524746278062765293042490312644902151260974735087459559125903330562695563723975545409978386313845378161327421386428241247782916091058703016699927626603364262830119864382793490842649069144354306526071992792909853143875801943226333316999738732893926984043146537639100356290317221592157998213432398684952174368795987025255468940069257263983515873145032041719948416844525271747777586170635640989036912251253822470635271529339847880498892792448113722325456740783963228689292647120800682768698143938488835453351372637788218843658262549390712020571086867364155115026946105245859133775915290695366972382818309382633325722740997357010817434888607864964303879089917611476085174672978941654057516724040890627190929299327164778345621370397642078654394449175675923237345209698935395018319064564624971443597335038148399282486445262266000351924244193069938897409813563080111943564040730673341041007673458946082166961022361492742968424179589250453675512736663490545234055463285399258161551486717029645958679200091953660556751060464183305752183656761197455044426092085477498702140470442291122916099457670222527524870000681056083505127562926808470658076265001321493739165973549203802288174954988280497338283724041578008805128830312956267800715894340789977894481187297759386561410790099615575196377744993761507610408706683404714242190083960413585904814866930698738590851796487336431688897229581239115310462011981925002120408574419627941320756133026083802040533208699510614184253807636056950900053883681129186988074097869029790028577529838244300928152042173656014593939505228452169870272811919963029413991530887697473825880214354599268544382807331664044778710696238767057195412789738358154663876551943359963732768134122677668909390616761260698731444893924534241655452609800111081161190684353600720467164430056193932455814364654736350381537206727960528632700797272777029477208869172161294653143068432027951721321783022512949519085059241303421010152469077139769076726071887641218713092267151767749494120658212818405875257830114242068673535355471283777232199693583191489091299525164518232259508937704355337084887680014903203656988947239879608944622427906016227560140218934218228336836270284414723536636352848275020484183401895938383768622334304153135538645597638141844543492815293453632053081261080960156750734157396029642470239573027780360433256808344597796760221157964405503683662413505219922319164106902418568571950042715773370463803043923345004052356059460357733837431044368236964906184413137800883975047199264673263481401352852399100175254975355434931087253219302371185137727437487975560356757633676804708924378125619809692921666362345254072654151379106642787370788001634292571059400920031801904112661630592473051939478407922004334027507969878016109276399900518730450017350096901072461568212513910460015321273907206377051736924690827541677807992512748809603689150875512736178925662080783049516020866592546833497221353845522176364392803980179960441764566490267396563475630469402906600153821868887501223063690041611544852977032533760081186655680912701335817558060946572890940802610761409324549775013224068749164738123113639582590483606438004882563673447981563588509337570020408319268656375066893533842074474613063479177492577694290400101697993574681297330628992196662060378752862737477719379837109291984958610132882275142069780767908599101413039810863622950191888366885227572539144554001023233405819085962479319918997478000950167711475292313238840776262548116110373403691373150166082311857215697718356857347774974395965728592534706856112891799957786763930462121151974349172471696416357757230232298372895473811771763855950495097170669835273963594157477734662387705843572458293844870742908761522216315217015528191673781026459036262001516158188034124544940897424520984696645480984240735376798650033789592857106802107210016909239884335109350044097619851484695325100003549705889137313532010255864099766803851081871098287578644625733810003625669117476463188422625391048073902146760965740771496809610034835322480769402595949835386841540589509120827181587304766453423213110571333263882948257493556721466865174629526902150010717004660322401171182922449732514096456786443594401229708627519505158708905897306342906196408593841970352215944782145399952800244061996496562616396940994048924015549484529892079196817986116349893716276773247037865521327596948477133081916801929546309648175477912569401396328348841834131675542515646972471460767629968665423791653718084453858659807747895965197172052106531024056365478201887961082550541829800968937279621572933933545675870371305379518342872240156119725783831172149413928707731606996212850796781028030387973190438416785989989573696569542309193399190400681351599763293247531739764531297889937260331404236087941901094475643881936116972406526677855771011673911932148833048423596540482182072041220110862523325051585114311874551391027714877503608770909454539502607992754059311105796564554289928539674316708340828055678054460535934032280707362014453495190086363945403548092140511009524204729717260260657000077669975376695246916228431557241805746593092765896360553774017644776591079522605330149971242109031237052569195406743854947954655293810067907894637940860747619032178717293566639189062415550406433126946421350885676222015780158750533997569054782386744425216725303963871692827236768137730528139022663542457274024762764887100447157156852941431874022682958068534793765833788547657785446645702012544645529172941650852274776247101569381664125285601182971453163600046001800327550986695375676149473175028079279490977585586333365828212652685218810013331308605830714234918352874660519232132914844397634519246079193105734296834743706403467991253599866917384307579272903590912423692060467629166899469987242053026512415542973077625903212762378710743994753675141629722321575853217531569411790825776205429487816929087204116960955245882194263058808833707911233700838704964367299978664783656632413872340755787758756686899832492683248802890951989549222828210934602728562253656966286614446456552384160807419746682795050896491195055490773463881806579436030228174576755339450826763667376094693203900879123254360131343869911584452230999888927936653316992761518923572772350192978956653805039392195668026648979371188588406420544436998627868315651002005699048462006536162051628120925496377123334750480330879709228046390497230420297526448360511468921955751331788275969743110297686716034216878702568012840467979299834474148511268881066959980813793909819623874604719604485688047642160351397369527706490370027586445328767268162810655898002752731654929547459234437913865007671980516517264531661810656432816482309324104385969802240911611352523437745945553560897677666334699384008097372055087933403796109242163217522349596439950021376025626478343589795451671849648926643392471943579626219601022722689334778197285982863142347024785401422643202552171026715302447471402549476855093017236621784067914819469541557096391162111111806217989787935100253103437831845623726215560393740051328477908512169986184368330465421077507708236630855204646899073083844052846769241767360902698007202901302136931801190797996171119028452580239075882964058927973815010051192949226615839384156363095330618246582777540567970639113620249102440638376692750095294623098412576818213995341289154546210841660227840343497488806199748592389181365858305183879375101921779309679041281860510417865883635062602247602739836073646696414763145700092217735278231569977240127511739888552289677377556789812455015075680466645456098939997462089396382741758692648755552849880149073188518956909667586732638074753525203809763490805497405474800610757263961746212247278816648212976461166669062814937827166393004609511139997583877327421231440452782295732096388836163891190281816522481760548482776594627749125119975161011503778848803435066986037497937715130389294570505253649555319315305159025509899880806646552061476946726585702800932928572104137941094163770551830584630311591139006389587724076877982651952190648760947681577181764906456434294846264331914800416957101655337198413298679539458773357705502610667262818732729844412900119503994906752873750694965793580885809271911710396182620767952128501729574207730290352075180692282430522893659432280221253037285951381282485232973189613903921642784872532434979750296541550548453967579704983224419587497984803639500811866845117228347570326176377462690602696100326191775330559221020438493212688962550424928176679513094968472085434418871889195584243679122271819767842253012500259884598890349469583462745088827733543534560816998771278978744755198907952745267094959517737240023560121617596447056729917906329076549010753812456134888098687102543163780380343704196518557416962103918518945833436288081669364317477949177549397820314289153274118757177171012909406113259844675663316488060355138450557106947544451834329064156561244140212631159780133656817567514607035222732370438020194989604224407637061325618279438727928875501776496026592399705553660675395134482084827170688050920742284875513161420513247453185785586854993863581311080317649251301395497205818301133620581749991024468588215391278281383374512858560733404525826564205318510062952848576770147524940064530650191768376898438815878970448014501326964513824878253908467674584129501740815213846181871962539505489954180255566485995602676941595406560825821748398392243484402102985592994087310291861039764118486338064006998898624406890818752891871166034011691884796025678275757396983155273710652130189776527667423410104848733191636147122454194003621274433684723758380531152411216235035007617957774993904385574954899040249226448853874586983011019770814156091078841854214088001208572002781491857223367469693840674692052042819391736443108598385524162460022280489968583629086156335487432430570517828634542356237883636533672326635376293139520371839121414774325691831043876590948175177480363623283934907971174857910639505247584095273550127182523354295399962854287234516693336827723130953720195259436343919243865110505328271204969874113345357134019785643748795828299416333124474577499602656608696786371483980427410753339791068032241189023528622845327117928980148516106293372730451460871353093320947246310842487764184193328279269879676689481145929290438643089344504435317296720295445706643080347948252737714812673263366307806595753660793493624596063881311497298781407342304741060361777478506788932940581138318995564931691244966325622372038943932257009006959934962567656707416009860234613490586679061833171854542401889467048645972543734504405500147544520440821035890843736266282960673107650098977361242875353833154882427122255945502605713744978595443349670514953554184653767119636077260232990841296923903203354961810807947026036024281928807919349717756603468624115236036262269522285837021012547546637549590926048092499249998712983222025964380520439810341354515918250398843205301670525299295614389550637607941667068363280832487509709776675210687402635388302596783675371200365009680142228054906573999140389714562893988857063232947334574360676476752685761865482111062508512774543120433417326430167873649084005670552689109869499436349680191517859820950504629283725579997602504053539183455484072147649754908989923884703444887323976368743374381626533225440318460730422522607584709366326501550732226597763614533735719547527416606301798420008674879311865630716977281532189420392905493025894327979715507611721742065281460421722182964290801131624594098089524853810976104191348520886631563984959447345607603844376328029992041956568204794518927396548227890351584427790480173337886284033341958661264237076252289932612603988993005318407622696471310600879226120129202673146750597476900403325928720177494992321073138846006297720324717291762652513090342831566587574080712672935601331105749936373715176125060033971442178831214761744054360977624693253308044141575406923227688705506816509738850790731202363399690494410728359001353459667753308258344104173715026849791262650374382069302400269014569421611605835903123759213595699970534793291939588424055266123116535456297121652772351650757466626220033964794422573329527846532018256409779492087759813131120783441660407750730555367407269102100228604085952309784903951690715793862967599844602140504925450826507141483999677740174306824514156260136625401817168767651481984263655062772040611475056609125745841136835213298599471996768307747820536621247815210859849676165696381940220007456230277021564523266690564285542419789617852147572561190139094327555961389057237690035987462641716480777620439553855643816702854990054852489530012877427398050638483649803394838696880135486611383767565488819298282330487200649532079399406326977053419658283044951574036650192829591298105726852539724413484010320546305175481810750330629577201289891543118454929180619953555016293728478167331038352908190345760651480243260251118261360666980869166762921640222148995407451387550930013838130400454956909890807255973266280343557202189786868397609261624265039764162398956380939684952708187540993474265301443427119749423762732466772489051758271390545293369763880080326245420813634976944515676071205900986996363394921736931553961851199613988130104588754813141398991554033754765882998570920887855705576425312295181581199224627121692381220154056539955242033827089430478989320399112195088047053334343495340661579686828885506323645544738638956910190789764633372287185280236263747600339568191752558321352854194191799447050369760896982618459243634998347859826398321192246295433495531143641654409701751221060755522640358995576643376228558392495658241745891721045280596072083798013167742520900707154053576594386209865043674428530429426706107373155501568956215284138130398992527687602428944314968373551047535069709841481599933593994001442297003523037423274678372864642004999251842952081040144508203433102361550558880410220075358005820021261783200731943929872928350749374875513360002846717709888494994699670406050292466857330536127787350925019504059799649863874617287940408321748959581834228243865597769135724611399288336619867487577273447226586581651156477644721332994175622254032545288828233813124832189364722079915410047283404395516200792415714488323090531324321066656151582790066169730309890637725053298472865965386684563546862003136393022962493431223685104652935086985919414741960061287286516071083188246624621308125615239038042290811477429979098810164641449635984957730216254655638810313560168891747734129363252871601868341459469259701845185234112161620899491060297209486143108762936602910756527950050050922942587128365559401540999473878806846645429521840554403099933587424837125828129109119450550227329000343252711364159582614641522659425989929793748641919571880650792027865497435320861914629199122217432574261924189750325087485260726750749487805113901074576379188246612036021694736369094084752852180508582003549570355790726087387721242798961380888962025651759816009480910929775704807746615411202075638791794989188559584893271394483883532161226513921183017277102163882329684085168198207613170234294036992909840341060417231651550039105099693691268688599312565932471512869787951311644475652001513124296093802209091925839672723573834249098746121786070943720318747644016913844752342127801686153505931806921494492676908044483198077545047452536982572223707278684732317456838067253395909247372262485068438006034112121948879740809061940077663324109899025357610893065939068181406521099990178502036193510747298874947961865023599275653881144447425579948869850020322503813098769690105796833699452157872254415276684919486414133797818339764104704893482314541506055671667400377051574595137551441003228514192018658625284201481552134145616706680203114181066501910704353242941276890663670462057491356387453223276513057176472013931583232513852626689665529939618019846043743216309334257223788639339915161344393365221551076536746651543276648853313010521245273824975103997743998984357262506137365745592124004579033491077041009999458079294682364658945293788141346856041335563272340935748851491598259631014048386107181426652044370268685400277079795760485970818676597182871552488998311266798029645698029435059107778369431047590483286467522511468691770365256627037390991390156691258428271484420528093199208067210253295346555843678058979341282773304375913641714237633672356617144565748250451082373020006419018181916593233413174208216646021551921224023461391111616545017554748013660142104838186742148313771487185678089586362888756132275190267462394743733443142193877978584381208577391874556017207237904310177552067428019412246563454943504446723245538878947899519299055888518996826709458203873455583747744990273994372846314316693195872280652713986930360747288526185043872150635283222795308318707794111474340774374236338268079974184538588022985903256623245823801313619961705564181318883846843592633882757979471277643723419592900112346871637187905258622972770130792324564081080344449571686798154489789361433859436117551878595785634364908067719879366282076814616373211297921902253527859211917795397461531851685634938938054532069513017376948026789491565309316432146950249849910079364859573854704767129979214417172748756269577277716759381762076388028266501276046999323865404536285658797621044458475394606154985235928374977644365020643001018888226588825028213033750053350745606883119788001036783057212969107996491287707668603731477472543314986349408930115075529260778617571869633715489924432552537340335289377078955218042567531850938056466970732141539776760565247235058659485448238202725684608208608839733430691425707045336081029158983303990598802364146631902386857603731793312932006629158971379357461202329784408323877359680496874811087001416851999819266168548829534623919939780811789513543015052869508198095490442015650249737615969960084215133549677395268512226571902281138517236981905658539639455339114752861596206810284240566714980775462522778264840940164381599038113707985746477583273073744372715242353091643824384672702831657552180117377128642411958169244675187856033588970366068126018106369884596412240538580974168309109446663930146112785471444192645779590871585330802023230711684284146038959543537874242782377590627221907399075412716028906670626849466500366014105936979096582273688986869927637953104328108491470760839667298825791700322916202001050580020874020895325946353557880196157428804856106741973024649847981334799808411521927437588450720155670056625511849732355335606098503226450379304272666068482174180358861207624893614535236253161743362122783595729696000260524577545946036483741180546973752583254785135151865059380721347496018846701173774034489649867612431681265498921497677912137018222745726827762114634381282859449488447736230885531916984146744745440489843075337128928844380930541861641324943737642849382896034968563764494097320416113117007425282461322194008816411258263967798196554047307848889618220706197806441218516227566348212129595456658256531417590037917769791277739738705579186329941604836851273707902711838574961442065219805922666705912190949113485638828774833732499480656127407709095445369899786622162049348486502333067669290587695580014918526653311930635859275839114309752001542656427466668472086825876828669209048527996847553944898853244681383117337465205084800948739611790239347656272418845561006947412111976259870016249723182354797834143669087846189340901609616895242410141136204329317913542012380934440197256189074675380654053883204758325671579601002676899954222054528413527664007893966082576348291953431316324352727628283652714634429797179129295083962284468488040692759658885075801483809470531073644335912522084090336100553415248368058047008120177477978597005957104149438414476417271868028643051614435860896148110435605342977783775400343445694740158776821727290676176359108949619567195954619351527395608508293643411434375362568226884111275457454039307652957916214781001836602579258350334797085699096871049793578930917538181645646441810729734152015062809448884997510298128014172994121954075775387438428462241255249963219333861503239822057263926892929750711744535449866085006445991054575644599274440404406136001790114576585011502304655036393818896458375249028861406130143727049054078463537011696561998984357809490830066173483130197962007972334463532353483648715008477438031790711992917439762534465114078162926460955547387087375816407894978429725487980878609060735806911708029696928376564164427627447644637422293322898154733225638392535011103034285329324779573272482796938541686873861327413174242053787392628224373794226922670240064041902803358671704331626540061855394067761881567702254004908570511608748634291338909118295203949491740057011094004286112564196877501291970672419532059276114504079576522836698140346785128693491874962093627991903903488371250495627209339773913034451606245292398692492551906308731581508472531809777336418576731073959432460990980987407070316092395664235388842849359232600432292190332642732809864595776001884397878083220388568529606341666679587119153557721986404769529282400129491331237460552212620271900743102877635675145771263135951871997376491034545158378884698108723884298699604747085657725207589420364726742320995945512193418435994711162004050586541216287557961881520648503216494352662743082352526314601050018895004188310897646031138519806066587586122358347243496801281633943580607261294144149815945575314851543644425994414201666036245274216850908032356608278693729532961691946022989927461702426231139702412664469410755860687978211173155397007110624589425343326639758511360936777502547785745969548826244510984710501225645344199531508171036509457359492938128570064375453167651242160022959717168531372419287352055251481784582057920498256661038986251513097248193265612821135108764352956339427576349457233445858389588152380759714001040356108562358313886273969666530429921650049501765304095101560125028761470398917570708450252268004963999948079834845047082293099032937305209645477472094812267019966098509494625948102912221008298883614131140278818610300888977420182235624743845485496928545011062927648984401289816916115719559734927051644325799307915923303643160796281455380292610867145433176039324866239401586984428978758137556593041266144367415184947598501627329862382941763078698427385254299557313563218265126437311626234763104942301486092740902917095010155613868233294353607631889175725225483539525890264564816428926497872680548654501120346649705627836133067986577607979157749093267034614640615900281048877541517661722211650064670523575712190103913043613499335965102685772404296433931489323146125832990654213474072998393191899841173471999935379740457641317003387336498957201391570891951269802686823214992026653561623662145497012496613789344653054026679531933598218752147346861455231378037898526989165351928580077315052422910210971765814458976798430512073926693836711878567936374095178756951730592295251438212866462207537012544192393412108735896318625530469506832065041366484868296366004967142236069566212855185298891702880222209363155410586519819071981905200219399485410457525734233070764362251964234314522967955141568952626599297985222609816899794246466386022325424109350767219567147361723585002724947885421567711082322289158630175661368848478291684130070959891430550977254945919572129960721940372721883348006036985738772645343094136954495457544437265945458789236073254871591545776701526087022412430844674719141020415153767690250375049496303792166250171235035207552397696356799164453748531311125436067828246799016263870107866531754273673888556062413438086212484229778259919517852715043143349961067192728354570729003427588514684598551171056643358606531356639219447935929166806272330314308642211346347540445236355022370907918561667221857961746256382310179091424311957610749488906596449063426033274901332442819600649080866586312339865734401149814695182504867025336976786006058695587714245833737251301030396191186754981631402279709734248050198175818222007214715158608346503031581066043387093645097096025797643581461606512569016916278514743691531702895222518359999378796252516046858426557332874164732802181527426695797563385548651618267026427990807355885704835224882478014493202863013922299006946081499823926015088482522632893737036971903743338632178344805289730685837169925583731124091751113053667575632104494195140464166436399447497509449543871231211335883224254328547199755361702875461309075852590215736831620115835033956221181874491698257202618919821118233817901761053621929125744110458490168239756042493653850878518585091769111613265186591032756824707441795489731272201570353429324526998125863635995875827911892944453706750097674297999950072801866793042980811241265205027919090010138198480882325190722304792043425267864411185477400798539755273145650689381167884091507210375701568859984303928723437282646527629242665338989899276657122282774410523402685165872687505975854756997490225501331325875311925063638352168869346002633576396897559479847297970362373012649609692779637617260820760749163441642811980971035201196197466854582063352681415860049133452868188416569449709343731192524950058906431782176305386790409709262667504542782167879175497357777774939863727331461499611572188550540018574452321388597041691806351280782020303692977237098727778459679086953516597410907608772579594355366906034260195984896472313323866664909367364916975567765837925817013285125626402201715902228975555677868822143575433837232368273635225608375879530496289655085415107720831748247543379562323682762964341300689998551929440280622149088524906726246002655841000036989152660021061996095510923038981143061142119892596178483261713104278405219180988609392070501067463330180839704142093627555334331380365135299291316847526610470443958310065950791245677765285416845559492819376568177773909331114526994045930568092308771009367333185816477539382386282189716575403027087308762659514544988554683911564319083190006737845572011404548893459802071438059992218446194381073572521300673034054686938532489948723913070456059021774632364472872596895612277263307496838777115970886956053903282033095207823762703407180901900856484662236842191560957746809956745180238314060741461358611242007837536616966570979209731732771007202299679178540807709287934276478167017272337317294995961237986691669873469510583719804983727160607901745881346932282398587568083379272321931848425840800256694174507099093018148055758259907821677503841952959967472895233073613983705891282431375453905178886843627244322271171530991053739004952534867359409718782423071700525044111894355028595476029136816423588149914087989407940213561117453644536559007540052877531694577677837199281342966714367055127717535624888331665989759867876814851848246365951925830681766070715940421921426850850518506649382900099870570827027576454331677031954455048890783989556074032642989347078820284805449549042862181430188925721921951675102746735356534525317954875273186989471299320687890662880307364449161376050483672107959743672940259044349912119597623222038793619458335829093752465970973992558381859166824545119055402370761574941893960214335439715464248125803939415454514234270624065017961090748348120297330584758311519270682090600292638190340386695037175470866413300019572364639566201781639847425198969065351413986274064977480180081454325217276961484547127690090839802964418071337952967928719583236070974372702161661751957448414460639840356957750965023402243662109831481962629270048750774098649106307374721105505335519323088824304049345624063804676696682074811591941884386399838620212189282074107104705736379305327128465523634610935656283135967411269648342115843720420519793037046111984184634077232679577521106087087328769544380137307295941815674648697515524854736765035947862261991314397557385475164896713747516535171114661169251969871583151250481218164151172427371295674222741295599578344125444846256021248977628344189214832018394660072849320887822196115525849733077640209562979597891644833279885665935763493038075808049029529953800787974894481037788619827052936884329136973964356466975978621093926945553408708554748673483732686897701962155878211372212916054894659750448883344564820126575636037645991882326759190278804675939623054642029303149775197170465983123361714872664819293341726904342168579687527596750833775020038384876932903803783835336932873154855149950697774739518573108570489417809927077911088971618952079111363817141577121909268432112019408083076173823118787714019249074355104657750179958715003624277773953446551762777201398134064581505373802875001259471377611320607746368840016118416511729502453127120102859843383157392595365721427911146408413522925676994413570768601024764784733840671163425402277888306369703046527447911376951722144600678725670145894527286183002373962154155344646608351880018793565641320294679374809756488229437534952729535814745743156019185025014100610025760086775664252440585004918504226191011439985276632058250520411583438523150100989092464123617861845273139229982423660872981914588420003988658475005372876393466549685442711285782223767954398488340834440560979113645449622092586558101768123472857369808158315452747290330036601646918744789739588777251420604837259565763962987121916445786267891716070001296039133657980199570896233679090025211025111523143477846721055075603274356415002733571425456101412566149186294476268467476753500024633559980603949138822612453693224863155388248663181616785936466434681317880385424825373406856651904282788772422897372518315297836195623450195786034221705196511795330705589666726554679496538247973816689933853649696681316154416320263110095537236567614445903273133591722273286711454740438253751297539516356695563857129004613499410079110600239747688179227292809089391155488712728102407601929511051362624720150985005440202392758243675642143183343497259974237106418105216157535987260351848677768883035921254706569457887913494146889344902919240489496114334615335599378382919936048282420942189221597455353551634480309273624753365560689115185560474246880130055080659510897500770461903226691569937558204936271542768758043458312312142414758210122652196369559591441519633472658492011141391850637900552785296417452186016027495356705874063148777732669784550234453399095825307724966958352513355093650516846100105052213155522542138416110503004623071521894469050488959887394635706876230375350670930714742020550183061775627920556256712180985044033652523710191532096584831419281703455102308998109824275337768374643800309401613274015418193613446292653109610905738390070509905687609351964957082926518087619396669598008047980459758113710691309602640359265592781534862681116977985615280239949594320522122549050307640062774037898440029960686412764054962038592262660626427092144836966650411648959892178820501217237268998699005945170196291381102286249990937271811700429633539081772763732653931813208129827011354945835038776536852945151582319659930909294866465049464706127878584648163712121417869984025310550715542511837124995761638333287652792441852648576415256043569913171881847429345726489359162577702878031659383915337733534986433572355839168186850132585526589749969860797443327934993456467418664253841825040872044897159027919599542661960531066656505651377366450499413523955985339723152122187632874798865851330206450900662975192494502377423693651321577156713465531720309103199709063761506121838559541659123397252454664145988659720298103577762818322223479830405007474525472641225055995332908081931192810963886056440255463230364247793180184392630356337297472578634746619363766589165820009918682519923625235587327930786201139536467339298561432887693478004158496384099756121893718188761786158948922120974755580823297153870933160345090798866147088620375069544340809700801285128002524463185578241117889939864729886821335389170837610225174715831160325226595395383463315169109228107333510629282024920433798487414320093753947096436333286720924069676097881789578861346858745920698244475093516568132582447625877735508773851391289983763658784885816661302266639121449955461076113010561846509694450557747824494226991337424563656839358381857222518636959719068894325685420286306710002182052693605029436420714703227258825066550494666770408180152626173282212872644069616712164809071313333626746990021074338538233657920090233931566628059120312833603143760344214066675809631753772001756674069867630895342664397961933857910570867705664039459885458930897905181041415723679250599814684005717492474560500767508980094236123127394426935021703386670946249736222417987812862104351403213749507997203714767910977199184447070281880792679601876617718680547770513493953280606830936201067466774046613176658244999896348390809553527695379109743633952114852108115182762407660901982611286823456435599841483468543092906828796378597896179162526575529369993612844432210299924981505593223872467154901245244318215703133200655134923955982830430002557170181572025260210929552644542717993312306534331065046102195183633375451474801120799443169478640459032758675018796330768258091021563560492982473974438637915083327103008317463955114525091334242359302577354226193257321433861626324601182350206118143458051196224486492508883787008935889762535661422337949997636543644356081396454950045838964106533478754320558604707312574923570496277528712979644308060816910641604969713158634782696658860896257254679119494995048271537051800505894637177191465592828151209113130915435770433295394994360959312771176379557814806331438652118177245709541369584669943408168130507810522450204530032755708907667895940134940503871133727922040752067824476436480196750194592824570926297894566718505233989878589820672831177890008697104596469004480106386078891157095895973081118909567235108157240638067106520368834734898363329385218824842973115073473784083410745402949115786549066216287744163971941477656743650579499853043410814424985328661061464944982914427676315044998676126280194067363304368667742990194650249298386628037668039717118811791014076251696359591807370369109315395934674068960845936816281526664857560822292884462898493387801685197659903084566285432444769386882195283881393518602610389120943207029270860458025597570902832609829439457672801604363950837916193754176401467227597282339703744629715882889426591930790459638625974243644513123393107972493944724005734479337278481644786841968475129682254446215949280307643527248152063418158313785366621735145668274600109503336314149419547322468460187118804136865178627072027184394724919495408006371177446876228416856174996418743816051138190128736498670908240338503993022655036901804782971604354842682832592878554935879596059890404950978011825263058215028799275695262973707809141136538874318847802836719001009724114101963652822192687183456154907440103835471668389372519599637695847495362699493282303452307896948137871091218053116818844711329691221108900248352293782319968483860066245859860980233356750674159395138294358416044303465617051084767424892734891207485524189541692191415994379050158069941522060213013756079565214206920386646904732910471139957577887753828403340218489089773424472619347909888912215474706289586835821021587011817353949109958863085453016676434454202816548991946709099785433225024560503477285056761062441632422284611546066040055310181924251670243352071975410349125120005674492300023170420999266074641975950088027889851757704335434769303975832309883235409962676645013413564097834382524378451253046138534974209906547462202963517226150734925721949326118605059891623410150783784888004614736450382534226422183850504738171804924492774350189229692932662648263678906872697890130039538509737674980609345022328662074680579367220998608924445962713813350692769538457183066204807704648729638201702653387879880915134408777915148514396027700574653279457155048479495884347122603843397885483243373825253478343710411884863606554883980317493373516830871254602173431189615210427143170151226657149546994287174158500578732818315660026830193863093493688904507274036700125394547939466859365399760384056380658446974589957981617856344661617501335928969703434170981328050982285884487517975429289808947514152340748419668102846275876420129273384084603955352084224487839104830214231674744900314133410593500001805881831350682473066525613608154253485373669330070184679252406459680284411893930505242762298154660867020542260219946531295871718696147228772110215320158460506281537656971946690415425470475890191934810638372145519250075739460625841573698303907228830973559862005668784332685819589091467818651215516796971262980688924897741282243312334972240737177720062941242103465308099984551817835672647659274333034665287752748603287014645443953388840875879697223062524704537879105393358794750841046074989108331587790788095876865449908944385086810099525975534558468526796397718135425663957866056672561949662778496772174976405263370925740759440476298705901162106303566384032171504787913130610724950526618493068477626578607863584463391091404139409786248239832359376976951868860324534687848106962254773084652591836796747361037582418225583606022435376228740230736170669460886644513371454760463805733565336691486381148418958492287900273072873006983037320607313401823531369147483635752804351285058160828552027199235688993154716750880928815498994361557812218729234149840624969426245104809274718066221744148426610430239438291763576844301293660062535783484690698089564671968035362748578806645497435754827679920451061647504086519902368858403812458172073164691071594022409689352197241922726501244353279929020028346805599254076823992950501025936285875422050301701422296589990094931457070604491930073530287175799551966963395556329980464509312983794318057563098203214699367500866736056525162177091839248946594651194258054028959685262479126796727013194213805823891860746494675188145042720959711414723524140519437075950900617087026748981037088342099507304453589317487927890712999902144010409337046956216577222192301479385666446861205644775542597208000801460264877937268303064477932568612822503994446025990705963063192533221368444549232415262148746747922086972770546877882543977886517908696036067038874625696696402112762831145397199128952355809338928816139843255231331287216891938166851868967260244174541589026170744177104377811484158693843545150758824573896277897417205779422161154667451438677486870976954201472226953558969894573294946045610590896449990532349138410512493301619947925946587782345532714490307356841966648355802063549327939036040129568926428430934928453748871791167268115860971011741772997404604938412668320407417173280133071961357741319347858670951629830658339406163779483247141864083776628069739718333394429887700055964917741995979094385285074721016633007245926366816457556484690455622375688861197527480623349268619241945109467830855651243530079250123620671875338674224944453141533151347989023421572829654656274989035931695825674286916169223686553595316104175316312946573717968680868030938698340860913900079459362052266388611438127840638832786251536217677108297427273383375436255435814232616628157493699585386004141178779739291102852308154142605432150006275991870719542796922031324090920019048368427070649983153984622997047756441296888141799082759989323384481893098459370231569791765296112869143246954344362430029831245724322480956680499921599791745131982130906419707176582460013687602758158481926031869911963548654263456233394678299848728159304548965193272590481791192058179684952852353928243777899763271461162715108494258917245778672678052570171860193740681005081793547353784032207394019920683270867447249642815422465883997787045354570093537540433358048187518351528958856240299782011710781202885635585528680355265159191334721375390138250704306092015817719130366499124319116341447866438229487947786565616968411461132608201031420848548252769467310451790935924252027886557652315074898899599569405643408661104071111966342468064377530790243866040746620759783171409848062006726283759244651008819018916464699945176772591080009364884214441630831985058989165584681589854180751315582856898905854783383417584454939659916613749403821024460523787097861197422522640760360147434458028402190948047590583614839733819309792438300769074898616320008837148744467266236344379985395140187350824432543777812471487948136119948049979627553835519207322915652561584740831223994710430418973357104187220811366595167689909083073656265608509330079124625000130320141265064055062130040493796416759242982419474536444667648293252730829848853156954036139701798427156606557930462906079021410448731899764944176129091315656822964771878390152283740352767870462676545259983236849630979594245802363388898585078115553365976006758865201939123414018956440019318781714170886999417531555653247920930927911947583512156085312933572049561076897934338331667730832517834634552153658105339138156259668756399388235440569406722400211347587303268477547936093822522176825863069696810088474582530405586828662840352008673678914870999025823637899460604645264774938082972212000948353041544026448995165118669342567455941690381617929327558517625789710925797932811996020906078593790647841391004215004356715113423836992274647802623294163665927030474017095901926237987948553015542638051147638468777308422176789040838385324622578981115252594714876772247507870823833881646247816839124998727762998013147393030444436918208712072365053190670627207366341775377947984671845124519140648113563867336529494371155215841392057154181465356385972316746804291846167701062933370368475838339294555442137373583065973989145592459303256283226627359762347127814694107047118893291215231773013358231504677322498635289734429472751891696176129348002052571514589371574505658501960281508115016491672977507592641074646140929173566084215377394890473193725028337334802410841449965450684650792329564249725015329804883174546154776678617004214167616586108096774825985504437034842137831588472800474815680102761029134400213777622537163732196722467394830444159546217155798961772780910339344037808170589317809920447226686117175038436363676113344538150590211849718087078089361074891533637436247904762358792736286719448212332710479195737796248883747765293979681815038405762222563210314903376016367076358887910499569145903297851490514495793208908877968693088154375741156707261734429849854408360113653532950659430651475375464094175393553923665169006478657837981315984063021235392961428466449630569989589193647449106383901285405914351791159108638838507267829836647605561183517240538354816584425547692741128147218513330224200972090089447832159808292850059694883527308801324140659407636923384632034798909101831395023563350257095045121250182337786581676337322658531563994900479143080165117506927922123454386327268500877107254218840940720927215487778645678251163866245411477646705832905571611160826514897583030837795199402745603421562389745221510595529934998344677912374643461228963341743957872594548622244142958868189348251786176217659922377659908698256288511817228662700877642127051721991986434801837767403928463265716945783369446143787854936324953487984586934649962986323862350282276694575608087501868073733309847995287421404494445365546914009179434093560456215635226769749605458907867065003253904154267895083987017398648285026334979470127809693019241567139492428701001276769007950108445920710104845749215207258830941534767737025459127542874601354940552147073518574349324355508050370983924233326270780125172406298880706664250714317798370614722219039882107680566259169686955115832087990529109850578578138310510126358825879529715054784780144118008960062398203690223357189167354244037177576130574612007446424396891785741150685659954923735210720829466785906495284242605975366309378902498108687649756637627457401158661286227421074901126414230121844634622485823098954884153891716994615672177487394147389406409592065950732643498791533326162910591751385139643482599623948660896548465965217268723157891965083065012443370006636070632508929492618289735596496180357808678885056466811311808241080527976455299598246850184946278865810858151973874114250926805476523112996362399095514225678790002549254820342740020948730116278579898568996154538447614207782201644237068586472131509329797605399935937197618256482207649355921249373154417761958616332515473035688384452391236534811325857897643332665369684719426148437442241857332158370695361766897274405834356947549712340920905516234476482375998682920506781190432590425628864272363432565896105652899195433089826602808933557567509701648634810373473306390093601762836530657017068138749024238197267997799731058579313267223606996311295282514308805109376838066177777499980373153111780211283529534152358877166899226288033681601502803539574152263353761022985352131454450155638708312916559935316502170356248132007903921726459110864908508232591038463327879674600624741287441380591895327400464576456450017998858191327586373625285607764626980153600129712106274394853012198766171067028387284769104556569031636404926881365073496112835411256739131469938707135063728999583457855956696785475243179377485759575072448236889063984107008944854121986316760750244581930467968293951754218022993328373832131678755798138401443862593000301737942427600617106458618762127206186474511420387113852874942214838719456856140548554723450214395884798598153519315347063967307687080655383957559819213755530841873495401423463609209718659563790372244537762224218725656803541999215823874680239051964248191029334072886171826922700746452067836938413033028229720061231412445613653199122918860308509811171202639257991168096601382633096491171310054887697411215267405459569715318522285396249363465730399853164128391386539985041280976165939937635647699832114223764967674207735318713432047298116624221121107957957654530479586126354542071159781380529077521895022819108063329498558368131282177443158615170145351425312685059572466610770204485500044320281810697721267402746732248860784280038655342508400015515739365277213024119563161164517426753453196051064771976353467964184095773002595344461281615045087670417070789811172725941359269250990693883015413344911702237754734167494864242615549802412843118256571909332994522139354799889802058038952902982608661609535945479676970723046263116628368323177162132757184832373696325684558545476947002140734578790425609772788137812803857421062349603192965947492707711031459363307188453455972302934733075368235530175875790842284775856417110699054325924308685427650901882472569108160377912896947797442896304880127342609399199342809774688024479992906290649934510356929533066070980751072917108937628194289321238466533056769883500467340978603945669968161415961710806238815429001166984600196648845326461452652381153641595745183332831018497874079480233870556812530996461834661545290524566656404887758450654781691714396591448150962223724279933163104487312305020990401825564731171523752450126660758563890779763109335663035346625257160401966366898635179239616014596989169978533143494790045118074183462316245201095448677011636721900671532370265703649590713468089149058393997262507145986088640872768331277857685180833110659883907737289390141197966995985254480740933708881407087851816503919108669368737364217042259494493913708472494771556126566608817754978862170673281651474795908984451813986740036241361487740178711408984623321002007357162415706200985595763246360700069757744397900826993845132005881687230523814379869635891844891003797342470425707334335891613682790424011779526871689667049108576474462969566756310886162985284132277995333564812656352570547201123989335635040575479675381374214068634115616291879388258630789087101704137856692450806484834824642145509605336485044093326990429141057614480211532499703655691317985053383236683265475499481264444675829021688083785141020519188144817278430584069777161135302726865502258159077162096485199585646950232195109657634717109043751602623624126730087300112994356466564189049814945618963462165778438826287255503878539088615658314915284770951211731331374832196248787287526591519886469590181421248736634007816602648474757583053347360927095567196787005136505211588340867615717533396506783353088508766854236987470535745395596315263478055458246172629584622670674846038753002342681408469432266394704961469944558233988082971618304860613807456445571217775301593196503030942370750155342659097508102867528311301503335304759361827220495223888758128302890077271199871025658118250723078489895979574815234061533622527301670808725369518936369413012310136860263167027052635792072976099715300057462234736832100620763214350662132887723325601735456114672772752189046924580007551435190738248767267423314566025721775158042750476078974578603415291210322607965743405642135222622648916900286129260876700652496757175677486959000480865291574864046672985917760933125674953709419664810109655641298199841452157401481098371502114736581207181552720845646424035918802313144782039559229823091048118180201155628816683296536612424161034223606155679166929185138813139739476413162090835497146049260249769955693192639489956309691646179773130382560471001395338152077293598138415062612739364365889132283613537935622520298783389588610136732857063186447450281177755449020956561490615181261769771448295555487932289031518160502930321554885053307974395737609430498901949901912030359556703957598842693587717915789611194783528597396911846095020855341318227941866616082036512019599461103946010782032017695707642964780686069064361090005392193160915382861737551197569660502462421842853971337950577067317233732553060576367450393445200970688147622386137271301299082924375064945764371255601691027306670289576211903623841483448808433697484372406601575700107908451279091708801442044069256267914215396877763535502488026343038686401239699997041632103754447079216299507114120979753241837823232183030298727336578151900380833990190477697423810766271754713420647374941497609222035587767288011930496721566988177018864771120930099507839349919567367834679858522747273371662769346278787404537248305642670298700329352573378378473605324997538911742838027927295051453932009958135805642866743918472408956888324929668245566883827523677193291686136021639968118121945479728514498778997493658396675527058005763612152925031144875345910985929445046543493168439405341470891490697918303413612338753127656670800248851386658309144517027024998373095264722942496110127422935642743555080758490862394141892900373487721455487959883979807402349384494033135197541042047700040408250831686693789115264803670289995471462321343584776717830016926267973017251380848272824522320567872970858137953012725009836573212341998462440825424572352885319259414482554274417086187185197007530201896361831079999367213555039295806450517247564376125064877512817307370823840183938410729798249225539658220764261049850636126993148633742920254018746778629254981072615205135581531854472038377843460366512491118392211483043051839166817915572657468854365762691986427812125590526014180627029576193944743399718651444312764588432984926308377892858584368115832743615919970550427022394700259046087928190626153058341886496960854789968471410629139104229945192973120959937789454917509236315696993857102825121074707532497113272570194217214159141712502287991138787762291322853894218826768641942412987375268812528978468572722321231230830106723400367568084347903268046591519611444246133092960158392826246802050646406436757377537483340281935674069867575508105018298454106725448396223422868096112532363554667177909314658707471995860256080042449314967870671340094044449974873855920215107933319200099464163313307997003739738532398426661976128776447065059689567765928821360199901887617389280754516888475863725603136599955416715657313948213914149872592564413936649174996007554627380531185703901057158700721037464146731622222802788916974770612669389170952296413981368951311174560876760279657910711783198963777211531087581541173034206054955524912606903531379001265476948758850040010844665778794962270075115864799344021105725317957198142874245281749976772927208572550174226142359085876684537141661769164347943275083894673301531513258478246708059964911783665542848484920607641003141477295804554973694840657858407302098440131478958142857660622300878669714869067470668054825961927962493617136344243344169617407666122455828400380314764868085795139240305969985194191440146800497639425545690240731776097624209962846541938041621477038979533952969195879384362589109792362815985816462751078925063127059156340835456225472818428933949100842787374557656689092750462634508697109936754504932558281605358031235138817566361657594979730542036212761195165641796793452024768003312850676515451345968815893215674564300494148904294745201620516166968369007050692111497162177057216508998522715505223233169980316674745206628670913823959737887899323722487202205498479368778717143806372552515497798584590376181063929137475677689859792143682341539320273683068370994024578618348733590259247129282280031470784106327447709510774834866759319448456732541416722398467627520787651000885291070731070466010978223123223653680362748280362106738405739838953144203234711371683152500987620249259977782670184186157979154395161609854034394246901688669594926510569461922047782446894040023139164315208734148281450615424399288688128484762139955324665606185046972968717197410881044126904138977914426156453070661667611324145226032001725264666397314869618782689348963250424015658592615578898361718885978674357975139654317596900473651793320070364292553867638163958286955152818363159078554764260821292593028564010265020649998000322085005965011480721092806524128892444508151133581614735551432267900809565559530464612413844101649128670116477764172103875732436851008410986126288988967061771428151802084795132776564219545859106343121031071917557148704742510998269737606614423250919074709475210513268549938511844141931734540940978809200592657953128394277177044238083620924214965596442986424113978904651725151139279264421490129075152428507718450006667410975202656040346907745908503056195357519335128895653696807829720839159312421157320771884014733799499708203283036630837383152116424294958826453298382147891090349741020456848203432876180836219117933343699748930813667800011074950053453592969583155625430365117400011124484540286494514135325673571045692602540762420055148480290058912723094972327325782824809096876465679638921534699945111627951626123262408800966139484650546185721008927321176797883580888478573057498638625387270968188684889773238349285560252709897811804686149800731961288608991511232925771266111277008334997743829837044205343335324548645948080528602537800678890564324860695983564716561812245693025212746133996764378919998845030670920490835465605571446277528610545851505986187279554589865512999088823557170269346601457336888983641746716664421621019094046888707779351861000330583887915838618641864238044821595905256280098937492104645124441484120456257328455481430553543008098402994173929741545696814972856508379725287204909741006565667156869756286374432770094245284101160046815588631291244980751217503991981959910441310677479524889990018087204739251543840832588429853248282158185269288323980881790712249869780827246322995337979509244605877261147934815351867114944987230302173039312450099651253062957118397673248467438950796272025182300370981670394120451453213528322380280484132481785098713008462022082723014253191947652178718365563740249441398267032306609188364660992245519297207691577312198513677519445602817508602984713674985418553452705568551856977753074938374428407244818469284068786563704335047409592281478926480867771158132364491167269079959705670541828789285883874903306435232703426748758115603513844314166070934044192861476172531700742130906502474511430598550879916302551727227625398092010891557685579984332202182843940413208620195345577932369213673733051790709220887533438888784355445063230807979872706040543031990998280571043124277302405726437996666498814272807927280818004372345729594559948716681519507468601302176570372949192731693310425485127420073126131600810252681935547684110778630567034647179297040834149321128923481748737218757207921929230276213649064276319443752620661681626239550050191268227353744843550086654748559483311500894784713990418235200085314874584252990764841797735828342138519146342368421119965420957391490753279222078047545495028618327681459835586968666112256449193627031569452708856795478773950234495586878745244221506715757479619827043210566117441527132768646948163783773201879992675724393779183816937176743081029600675289252291645363232441701126155487979901368850763051494762761898052656650221723192989602039406676882677558731756119815745773361359513841658504265323988256394410111958419283143352404028504602815203777296384656555013653590266998320381942242100352360832793306417044510079226153228171002290827571970026646104956119474640693644554861532188128826044079066003456022096246708927643879072532979426820390157287295908097648323152946142049386995195127399020325591464390803877725352897155662582217824763998111830097088097028694811899165495642879867653648706603590167522387557332205593469388188261801794933458307288382239556900910319392447415368711957169272580510469521841974669913161043652786579184393514433266087141969161011205967477046954875320439003845397532260947793729174329141155998495691468659495449761043566861999190677918166179964332590152787657403061908629222246824475422539126902161242781607127862999956009637060611332823499431385115892103557475812944226332582362261475110810387188263779660627163212986217179778775025156920502175409490893383935783554328278521410937710431057552997411068254981236512445153901907831361461475545641119162459847694578009150492679065844223873820923001842313121197458490637047975182532599900159108562188263818954222559825401818305755092975215210972597910642703866602951763807779929692536126576227239084397676258993603127655790929148065277226356930754885123926265084672368195393511080966038594821353871801026091598481385377124093255951354239838074203868173612134818022471245250829453442916942068048157346470836818435632453970692607804551346438866803688777021477532353929425145845861637029133188881242026673211935023823780228837919338850511450717940669124659608342421041395593985474903198144408452304854576445141211712866289998037044351195985328472236057940320594006053282698840383893416695851469809838169233214966629589988260103549522173822398429588276706499148221299586293817907402357092275390894610007271560743089926909309796202385535244629723533451882097741158368646498498706403834341352733128423526275972176131194537924966398729229248781137561232694554197692470960212278895618256503612993204289730014959385550612647890428623789452512150222188464797954525437098188485866684761996879445710275358864479035617596009821241174535981133316773117891345432650336026738864574856803124999453163142284469403770683409310566451402587306883506412775458603158755288930663751029740951055295097597417712695285813066513038541452910051688311884686581188594192290018666106745257320550799201103326179101292668170700074926557269270602787015160904768506725480442894816406336508666447615524329630087850975849929772127444571200805475408770381403246851018547690644727678551159641695467036006803964562991263729585666884110318495857864189188907108937107548002634410399660829634574727460882659445587882979360833724898525649763647810713871818819220181631498718112087951964942688953093955022227507271350399455960524188694057004580855666589622300020471762632284580756822797314718300922208855434452452501233115564110870762729262958505922430221103589107732484932474329925745087909560093549381367206968882332803040881669471726386075995497840412215060960488786032783806605686741752789759600196587009374337911029722769913327670270241123425070860000156616312580242537644403831601453162513341887297750718401429512707786207997785879843169260641795869692492659454821831126295546275101771525840723296183571744735459851213201525454215598390931880823712768157745291927979643704799002883372844213633541620793894597211882305019273611671824983433011919865060566438530322989819582593678610324203777031897335486173867266443929513089958220039635768612736805919708262802836740734975785859259754085036525261584209759569232235307435760275829537704893345759367311089591904357192019963875243391300604383307843111102692328530996790353141568256411395840179607330044685745663325322024999469173478503457164515358841995722043444489156970272732982554241081023584089283452806702724042610295669980104842698997965393249203256871079984208782936788100192375433096776288164515994791669586381474299353657749910286294907933979579298091321394133772597248191931669146148213489798750872314589299995001724411285975905311274977276432189148177562623914022448656152596606114573554704939049340228811254829200950398003900015908058801238575266365391128566042036052476323915141803850174396936500765904730907486066784505323100373401063351204126150276690413269375371617420808754142676722628358653008285165776111598151276152951102499612323810141958335466541984383589447946341520994549131680591673403190610622853948087097152226917291476691503335810322828973803795005227571217394747490454196154295085204489118528118823706480822417123548829690721754034975417101949639951629554575849284931571292911607935539989204437636577750791352199142582354460367058093675011007677442359939766312589574942741887815047605448491172228522141616384643896100385003745839546406642780763225098943255232827819861196021551527291676729106953803460380371332596995621991565066104652445953655844006804347080080906946330605597574952666072185775166670872783337045076719118146070361108461087064030861450184130916477569591943018765512386525332345147900095264082825240002869466281259418433267836470879897287470108577701611794465367012050383950845592226890620428537221597213921506793792357504383316366165019847294519777554188067847971690102066221831964126811500674756232092213732882910466566302087183805380190272167758824877282752357850115007161015592763347100309198819587625762163816237794872804304856582429101111601875366397667949334291386118125312019130226209656849412304198743251556720156579064918289709741417706213143565610486678031189261370432856976792537457357573376309068527910759381880415510115849403126137317954611327737625807455611241850810307425424099876456717409092989068728382879562372983211315196589615828447497205659265989874317852738130653069935405927843326120488088130023406305592824067770529832817236377737960100694989314270813072493691508455610246560474862719374904313839158139707077588326638946297243482516018881634763148645540990671638819804046098536795667992092312927278037346750223432856480881953720529278371826191295834333905214428124153099305505831265356681706067312331241500043779504270556952364545449415292842172236516091358610952403799193531725389626617816552605895901835601690493322047189215412268427831664764180934636732236373410656883029329969136231038266696511434673076837640618598742441318463526547434395651510031001410404080222264429865898152178074615367775080458918241056052450360927727721436415221301884342880618936426165507158095797920629653916039538036831436518706503435792608172676962446207024678125147268616732493573167696018249912775732700830470034799303210719449985484484845815887073890213081305344086140919048280381135340112570373425480080281266865962888919232952949233927055162119744670610013750538709997342509729703649042389570430860802039503724032975348369420302719637382561099256469789545912041093703577680351093678099914171483688284257995244571139941361525544156999618941987714642317064070829420016474826308221742445161666706553239778433290596233278284808892308327417980524188394988848258452568179650094156457300361003681657464316715540659853180712144874535195963730986522396261562474922426107855809954566941811067010440009941193824952451302906343670130970939417461808009895485324967098478717384823867674517041065831254380951406165673702781087638124597927184760708909000547689789907406616283225561502993461733052960112158244861450103295681669330348901121516706241549020237868736833932000189596379490472783466187125385420815169365439724266567075727378419199035003380115457461967455476444662441057111527570949218246319367936299769921813873800483111354990389509625812565973623586828293528474535780959919495497255051197423995772842189771901770694824621271124903549540645944827009693074206998480005614369332303500782427778691386047313185366266371699715743079568587790342625618033381696221437187849853340039852187390893280981387494145167318051960785938469058270903125092842464203392206621404892581532519383027041912529698682795276476861365557652876415757147586244680739750539421007765350374431143856940129376192760079894639308146713855622998720554475870448651103857926891555345409455608760899815395153531109433803285456811124763140305991277210260099762631585236003103130902319664660978268062444925069194985156115111385532273807718835930642654551276136140196537038224718425876530065941448932205019084063670023776960948262944478672237170206424452886679418022522445707570657222429451409245233270317146478722132808597643440537581306947655019250030498237378981640393590110702502162474765633149243581329451210631561647498798335962159525433058507010166002586912862474943691037411397982603843667440231524070898668162737594199492183078423101513447994661559544535530147475024125230049283750147777715732065562938967830650666650094054442777777895569077118341816391754978916531631849607869474660729442327398573035530960288065101060521743668267733924170096352944342180653129833191218866813582412015760673660248861223807799708355501829848165573599753993695374227217875085838211903262683560312368103286366728420963312197738892427306664933507115305929925299248572271348624367359317796096940170532197254704209761841962763501980999993020657535268254155032372391275048839010448520851240622498780815336755090849563373027840854573731430028990242828030749892635931845192801942610899313630402833443755438873474230892744437277682451709110962244234219530032131268657612105915266630501011370852753794332174551532175514434305900342932256520997355795255967734357044027704817113334118350722209013877787371462810782250388357676549987319315582220514388389205107056737655396414669957414475300613287163934923815876824580971299638477397679945007731501715203098086485629547573365893029676713256700457765675544180473544485887102247827611328530393540131278908419891288179973769390028009496645259543296487187984316381948992339355924393412459131325092348951706530148197233795683317798226481857641247457866688576727730003553019024185689181153769590639751330145404653869784200101796685606365030951222806307423564989962843845196993554368583726636623515709159989664622032003331792216033040778314528992255146488566263929794652360030233054555663652088097175544835693624184356573566407447173553312718876941105814711366196042120283808261254313070456053638456075196361381626369788965421419975943587203668350284255090788538863997928146843571741480173155106902503671818511646918258830481153487477279326049597095256548780880897490251810977707563740227379132947753652570568821907905565330172251938577298558723545976156733638678429286806706923525370211329517455999876091641531859033032393802668529119084571037131440549614057909567742067125391858013955798654105466548540318389595650849891977230101726541520455389124573045161832919776844673865517473713638195274923485928891692170048845612799002909403789175316665102128086513467205553262903391277811155014366564470790808639944449140043530036122055816457942690933279778262843366278598031007769866722211704669282429447547743642593631151071278800359068872723620555090136600270305473803968446335302994811800623510237218733044921460283055262299825585634118567008627342553739844046703236093294774249273827044966708256981436099801184056278276197121603555542629948247118755772118523048802635375324882919237662364046809362497072812225089258330655981238034449412810893652420870373063292712696834431316296671639775103370308939111616889394957808959467472475334156935840286547941030139798995684270299708912341559043433750679069253733842297872887289803096996515030478189647226969657331845210723613710199849674838758768622064489070025201400494786857669867774189237317836909349072629782064109238632166477464431386784878827696860721330654637390680776936952899026189808130848460329535420019085392783868769392394984386202998353615838698355161681410074079878854988718085750000102370437585565125882343058121820536714948449446050772179551657844363666779073640806760455035873370919478816686899151670257240499758912320607304912428307068804721712095527938139460976748460489432204850131264767392138835543073294231198412191570867400702238393310507304082859561187475456901731140388229259051280137565435245214042020537636709070678276170777075796840673553745983968901969580843011678514080035802614082878083469814233550335172134676054181702466880139210672161711318179546099999531790459174295993772561528527052411009797719072210471513725227613644118967489695918354772958697202625160163293821046114586203844106948399284065345666812521962691002403341471531358916966070664446221292594371274238374275243320434074037976917492464599116523876758782022939491094164530800840090350450247312255252238450708515665780891855127743301280928158933903896220810868788308407523292336995153196499033161770078648827727308359864994523697160165207655127883756885496540925098342418972254271409048020289502783976121670863756487079856725244803585100262843530484901195068663785225887515265420743497528537741283643166805607059349924446704373386795539420080613276094636679996489811269212745594060991964823897217664596641533808247150724892363430527822653631805256620037529019469821793391405670791543613150144641721610237212091610697302936802330363862552754674717034737322954776195920463612859157766949497754001371627449589512170631791016519972582935960500228895991626357630852237918914989517442602505852007658679543463515604378903935023302397829935973634792123379025410342906022591834592144864529974206405025124408856103953883930674075602141460274345171936082106365638126236765973589649765495485309227448570536181331535624403999609480056976305392109076756828174299017840885041618633690670414363283567955467128202622233255775185949525082206101040853695021451297425468432676039479680188627715294823633139680501142991507938248864649338547016413364183667936770034269543336629177410467787248421535821465925657897267114624092324975330799172230735159389492280669344921935105896973970614341897660695747075003688183086371513038933611895480661582765337312705964401419574379272797145038816716421272906730586366039665030827511307298877960980125258281722834547482604426155221498767086954290223344928735908424147807117799651895402855552421951719201448775509061300163534285917956614665963549496105730236141075114563134547638869150410304392402016469705769793676213110531955469001803322238126461904484490836068878046339093299396695551463551919153364554487111443219996440139910619805521333448035669200033059563197262257569043172829007956003532134994811239021223512220647481841560049252509937971447335350280203315617671853658707521317805251631465418349712881873668145410131267176827823020743117886157493334338013471378125828590754776159077124515038946289114758077792524515323941001974314629312652922294326438950364323246248826599670667048644375403093364453443902301784286654520906375427141082829551179877797057113808112645752440232147893496326316016859955923112352574285280958692897329471885443139667402771975782579060229268578930523937738633248027142203987934201584790718175067289500997047365717711000916824661602772224263896755178526127968194040928288005273587937541150228192151827485004381413597837526195394024820708771000177486723358381334478316198510881964456733307451067867880633302226568381324483647013696067677260453071820681495143887303352620707748763012911963353950383624370238217506538966813705268246399409407270671304305996678412856737133099748323978146135731789004559253006444518063160816553201421595693871832798519168125234941167394975263971960671948070189184978259580192439109172201930797957589246925903915046958690617094626610090285194400244708505435945998889830158601456348307103522121844040797746770267596160466088461513835876856712151871149743197852438147158598162419244882770727000648623349310687159827861706535456960229947111451869245319841793822622045064037260456385841457577482484072286773793327856524186126069899875730000943719608428669204971511029765270977707402038321350274585745072128440187477789860190337208244461456917314574181929706276110663947703913140933866093069171112960800455857785126540660996036929287221871887492138109537596626290600912718954377964346096295569617704158229077449638048284431974009479972673302297842966088371863719643125581226067397708285791450601798858968065770668958194629293159519723793862863372485399612198288916335886229993996510422231990452763970198907313198181729657818565742136066069442667538837459618366036175062790590603715971083112473474444684711220218437064618909202097502588157845538168770087883567946796764981606074007055667153295062982504143988579405129304034367766510899629753817801736249482590176909269231109474791416761926688870959760987735842101593602447661676420827365093727344988595899603335971866015569447512255678127351052533975543100591224661553947092230083606789729762951048605509196150620725859702576457041380115970146307610766700161900394448138451616383853732228406244061497590608334229008453872139598216985040302814494054193229592763481031332107837605159124029352260446159042465435028656211509184649387068291082486537297265859851661635337734537379854858494442036443359146939803998816390424860071438143210046504533751505559952087191136529854685361147048010371534796752037230619850021526889291867586857385754791907557540559721284815033574631771365255536025827407642085339185736556496334667811297787365758030080644587723055558496262972502123129529818343223906303185632480996659410385532797331830311842020235754398045775071425909887830910844250169053354793529284707312487483389971676136114619655604517949553039942208174318286246681885526967812294002123112222414906193760367511858525793438672125350364750579177979271943356182308042477636643581629739623462717544056267328887277256856837190944782067218458728394765447262251989395467302008969786689720917554546878066280854983304181697867104369196365738671765476482469809961270490072732860771121748093794934748862757761488844595298847709281346871951571646872954498323201617351538598900268487585482436630169114438379926447935226316797877502357605855795164873388990879253283538100644291847118881861768878765992752830144493143604621783243851541847991677642483921039099741603238099556877172478584964133014910063036606657549383734211643793735058685682198371026238178900245098646282369459415356724271570106962913141910057818602431110534188731485194917984525142029137124349368918028902935531851519001221083844898520090343357540571632874126307504397091569910870735943458830409369198102735359105130400505659634326862585397550380382749300319832697886250360206186457226183772839061989402038647106912154699038785050221261773974809546235653258263023146929738041935007100267626234189064104086692906593924826207186729358943229035839195898274438114662086871274944259611959786330517522093890902552752354672096357459286813397045184182597012948791869968548418285403789561252436306802975986955982257106377392900254837898043871947016610409236016456150475415569553809501193006906768936230254281251286150237683324090501013164065358228869404284497081383996853919363625269937192862355199446798904910502615630640136284502042567302767668318609003333742278544121199682392649077175292612168833666705928675029984086643638300477280796759532015346077357147952344946801050472997265012376415091480990039583389052244604478153689136840548349299756146593651857460442362402799538266604386185619698342397925246492506920907635239600131442271328770409504224425107841091424576042109455388797068248633683304973644939422137124612997238057122734892498583964013055469996653765880595158378903091055033194721042116601729918448607636491546127717459436150213098091372186415353721753554062610676741782427792894078001758133556354365075743948375235798604578535039255436041574443807497208529637097324423724469962772044798180728586448895234501152026856951359475723439512907552657204787758777761624273838755169407878064575350018014759924716208716404378912287085486522074518499052618874919222785103519407683036511199091544674897420958946357548130731935212188262280286357837214199888245678965157104798216271586526748272913169105864368207015798691683799564080599285154145868221198029477890778762735320497342738427484047963425666910776341165249864167841394884082675707415742172115581592878018504117364923296683955369901478967522586665539489853400398542565676203840201803255620580414391291440155457171323040483821169568640059074134939371458762013091614283747667117751827397940999316979688837464139476979193827497977523316034660907128809993587312521519000062082232310494485638774817772206310887409915177873237575695534885700894674458973035830571912143681391080097097709215515529832427212290107335044327215420526443652569011262246387944251706595297025149253086844028716058326463440197222475104460598830170343164581762193427951709051062070574277122847597778750076541145587085885137029221160456757113310939701894905989064302893071557375265371064109901939438993251548563245133812200840100268284582329160383930536731137228081720687394414444373218111952625536311040093338149484361385066783231494563605050481027702031205167728392551993266412793895416936313509348240036334362986211963938386417235525942421865446383683661096104698038731739114481261631825636737879949106388743381087307715663193122922145854947261565962205799152196570407747694037601090408751558639597999664604191309376443967869741851999904526649941713128483573470276737766821917457728370475093066175484956642309769385865300164083818595096326628481286406299630011709345448395745456013180280983530005259463469008742259042969533397550635871086763424630958993901731145625007003429499648098680643198229808927675453107763938030918800734232731957080487065778699294881411797344595783253747984465744444455427134942494550388014910608306690510218605004563622836241821751712068479814040664264425370626112701048368270640330026539935041767701756352597357755779019514424527406861016108995889207360045293120251849132452045843695761115715033275772444597039376395278121016269918739098495469158788045934060763844789850580225936692742491282374424988418985236285104721629289799534676203959588928016790586696326767567859785766837411736066816734086385921686678140950762664199804390622403734749133620334508968207488563924920924296263045315319673070126411657239676137698496952906144766318490492030747609983725446580104693741275708793504256525890716345206095942252184129184689099331024250316875772107412922149832447234871017752518902345579868661535070606957239526565681226025778475735458858912327016934253465587546790194078143831162217369059232989309383965382327421839152966997346357237255056778017714002092373846989627189570661238805190203106441500288029943039374438799995032917936188040051925355588718342865405926661655626300665843148630681332134917784750929153838478384657254723521570252834021985017460045623398707581817335731056124953773471161532895217107805024055548099003147625985694342330527994623967507387598492739512533252055995733469828490942640599196861119869891667085595745717416678199186878426349562869311087393920184352292366948072733854735093019724219252625046834283116987822251169074735571686486750516788708637245636375245622815668676072406025756155868832316265839865502016794304501407536094912602462700006786320751592820878310769274332541898754461172723947196940176611015328298940120515038498556417525932024583649129593129212133928899237198328032278523733434824229040026447698569921416488703305124830056734242479663542110260898012395178541418851113391475635216458492537225640110108273170834622602031455622476318949249982232246638433418869812040840187528100617593709066241281613140414375511890393689174268198536330533015539976640526168158711950380164529098112205191065098292984082035115413964350530028822016971026291562313777542284552673594366890385738558447580289059978980907770559278033906960425828253991549532500137743887723083297377533831966623822779944488305573327028909707324279165547068346685325110889122048883835978144750056258559939978469520576146756873460365757143375325385829294927181849456274432760735398155423611103050888024948590782666433789511672119293962518685030993020881699964354569677621508174884073899574143396930404185517629238931012120685724693148195822237084637360010309808064909895713079484530388591720172149382823976789264404542775541122620839862912383776219396428655767063083576746120102294875893935263753915549808736087653271727193394465931497413119478049485814412569455827007639673158588591366030067727737827257607501665568488340683508857324982367471782989893624404206699073376731400478189074157092155676443843009150718880002710953623542163125843873788630224327352434973577913105900811781815495376770854864714402176408180120156578537247139646789066892444862008490887265904928627848086756082251483512524297472958614251227497650134057031001128606010536454551555806661484804848256599305505385273600988605774001088492748884189436777406061381479519826082166380945906653163497387810503082964286203990878875166096074809421740409237687046051349524664798786368643986420183298375606639851549317548296145095966161985089822716569391571637921733553096961862869894119351628259115830489219215846072861841205675713951726688986865045384300665949690915798343626932116708382748714501316440539677637874364177446777837738208306018837355656616947325946619765917128225527185453091003141220492428962484949521532810812563698900229712840259756578866657418139411352073554688823040650028927962347614133394535334745304211215504551775359011614676835147271934568356033065908868744058713007437351315441511895695233293341705142689743413625554339346610875696410366450701670849147352366948835495242095116322276264972674883754692127762801211681315521327612216955274404941507135788477220880707138977832083215986239311197924184767855666030566233032355485724459919166278255839878744428815994535828237218831349392587222312223463244818477563557070552554533475238664038868377469335904439176438907048910954089754995417157895589078626932747331501276151731526418885975926027038745518741362668386881669161024812962192549261343532735569118918854912391769194237904956254308759442695638010108027986862249492123937962246063395030811141940781922910977668643269916129945261323865960362892566716535596986605201062724752680581328703279421181746474285121800830140541818428005109469551300524147112781154529122098766013065027493451290346098719900014988393442989194989534277167911600930671613328529162042134805246698161252779403910677910524003879785739396822500020689346935487121961119998507299593539841427938495566766736745879710246362312695401094900453201160028288570683790538938292715622458455651057215422301432950198645967636047807484040323509078624283128604480067423092178242898353209104926734153821723497934794062403411106643178325134602752894468929672509289567568009533597210210504876464113066581471442909118991882861944582423485903413971748659940463554245170236145711860875848841041764961116934587625705173999582305910556564196300743762474844799463562971056353265820701735199541511545415906895837320179359807614940597244978568911701010167850450172555926870764187654566700642680830878912684626229527934618699548205532632287933443809958276895548186870370109683199875262250719912135935755952660108514194653519249221182861414390683572299750730713634359373887489816513691197799143254435829870782068452733974425611844472203218387340695539228995258398315413575383392677493580438899135201886971758758887953270411549449202210273829181603007848794179304746960214391197941917361702631882976578560537874880470909548183937703113516141249817055971485408841406413563191311545006849359355549246817673020441367662263627864685469958047234564522196124499330287563088933368839242862227266431534900367550447313446962352083177931928867311206693773818736627653500097614966418007186035468357919537628919561604413258051190006874202255068332925975588349372596340138235890230028872105824149984444592665728548074830868175860857772986787440960301304199918309245107302245593972268169845670337030722501959848448887268027383091884329044039021647494603693919406125536584479871865215685049579511643576472034679830557621177566750998285252770441678569332306145682795673376431533946619842558342587842354365553463067540557010080170560515712698237276412517482569531955780916560891105118258284408731850004187301101284890585478439118481964935510003013528927472157078035681809480601690587968336679711153282614195783020776587225973274598051851768251083659995521978732227820263260142540821744871036809048812563809719437426908215396212879928927272364947037857094814786523121299582440722918420320367856731965090429446969822477542794608490487499820611191719300815801710935778498900716998859394844337871958401218255269575748612576626355664957315363554979922267404710706731998401500879450070182346764830457463218249321014800943640698069985421085317854354178698813611439059233300423750382725208637207254329164859338555923625461451368006234385571094109803081995299870152222971395888497051586222154664584231805711902815987820021751284471994964731286282131507722207156985561051722957980323512525739685100776864190827973468253015645591254947147462831147529580739202046070772889608805701280033183785850057178792243075420723075416811423569965451714010974595036961930649631681764465401359407608171564683533097734765355009078131671026505979127209843877724774664884591708819738126618328066039392582761341244066494514769598825667941345115329442600215192600644576990896169874035367174525651502921266497437258249428981831963002271731284790725083819683039543570446275192636525496399537763568567571270965127858914519028284940370132927441561440497896396871760738639456543025972056338526178300527990087354146555796488028484683027831561929094741575309519168327047660894326933435771233521224338994113551583135839140488922677014317241921624616119321316911137660522113341402635822458140466611574830291733217059502234008304311666007503929903566021795870835090007024823959738574282744146395492273981348481446397831985345867149830377913442046324671126943735543716160974108221952007246514957041592862341191554954547215891650157566562126623356735096269915261352701072774370308342568473598411966854297705786001621286856722866447037838106187083794818592239442714351010407280562061659613382869288715448380427205901803338787922654482519175917651158557330329772725334791568337653332821450169509058241551329959913427819231644993206028593058311654434614239981384574022335969639645000907415156779580683209658703577460341129163647842267026525254888641251527704503407195783795570298522278163229135556939216112485657963092699008698335688226305992834827997717548362270861551810235149120887846316577657904615620054869985547406235572153357474771055401731268841587712663617222275592443617207410420576829476477896231313784195107799984782022567935317962108209790666928500405352876990116752869830276100085205500233223558222275572989171321183408735278391520460340808767239219106342131837350546943657538174706747656968321987508174721250611019328620990975144339103717739801183523884607640386243462052100301095274641661280978603269277982690573573699514105195746626918123828220385890880406919286755714076058261363627014025430639601221694904767035817638685423573186875705773886593810339829870843584864899559672803156939257648039094602047749919676014993240110402259091933084071078693442174990135365125844693860030927723880687857762764098073326489702110358893966697203734947852135860652028597031444431649019509234767015445120319215479217519552743435047835773817169529652956201478580948721166228914656310226582110221779611976944371323191979809604213951298206866846713314118553814048689866934550233839052373382865114511919863489933080056729329236454339776635517967027522535539302099723208155052247772654087901414785083028513443343835612036244591954829053764492041257538420330436540478135097697629726291933672939828947449192297710860342652261642058381947503074090418863710570330276561111738182997214961406276577969924500579205442811073424063195036003049373349971595559114743057134209394096372862223752553716103165298997606548973984353805510398874935748642663567417814659210714375615588089449400183857961238117991149079499857412510454564788756539717051895026339539512695052112652574419269688748821360829517268653931483047294936180190307625628263241797021432540463748534614665858062129037343368596957343804135901804179401309302445824504259197123645905779103871090854174859653284041207161494546433636815543175140261255729371194976810977135889827365743405814134590087708340134896495126395744670543195900857054817525211445810444446995172173583250558249710436276550521746048467119180895945406371168125815025245455864358347318727453267427280064861442165183338040175646545002036846779122396118704786870193412234470121573692541160609302095561364415877279045660658425903859584271690475250554712640318290689692191811988380055723076315802550455601522897807026960182281925883480663052178612810235155790426168092609392820220221896138953618424018060072250586215961363004506935296833945287470686183567192982188539214727845640882861315831701947065153130050275378579468684463078795143882939789008429893669190610311655025681822567012008646381854405713140733518984003857379891978272239122679338346641665985534012154809569195259822652137397445317729985926701846150987181527986293332552647423237556846523179878607415864240610827183546990146028796660007228145434271491489512202054714533407077090054397519714732146324720035142251782046594911703883631778082768177991903614232931896267503878853370799730386696803506636386926406882328437489090260925483588709977415439131248536322455214269581554920018084201149941298757251676901087221563094746700161819672968338654737080583979073498951143858647199139214788023358400457910175695029813404926657659303440539171617215460681511986512361244601046578566551611344872858421653364426654976057160359183690947945626364183619177548639548670521072312021457233925943755250228514704355476884504489120732577249688644921170085683733959600034776903580890854390952709793335139322927957317408663710142859593044331154694265037356691024519129620857897494442510228346740056588400819240129428627494700784359475037027247815028530335619965349695867378297755751497962232341143723829379055369883662556502309073456612456683500903776269205292418355640066591163259411669683469435991842031597763524207688425180462444632812497031982342593031968279159178326044816983586613700919171771653276019405826438282109744950464366703536909038257774252042514834357377007957612870058556545954204943129306899717290672229741731227299214408117037335907092837489388434613157342410922639184982448780525737570650027311301769161754290794965206155691724029973572665121508466017080076583986337716938515311627068521254740779935184634742801157063316953617501719597622096804802583914915973270347247952625713596537361467087124462860034494329243636533807911348297916016959554104745843875963336126806083549132582054590317644553250041561145263148541735656877465494446297975654580062085332520630086658582923933921805434972637859405749107763911791338295071005166324508021643700072896204536658251520975153494081855156437345464361721892841385721175690157585450965623307284018467700898199305411111396209413514289287707236361207282572577259277809183928755996709292345706072089809608748095760504833479674537430086196979353935277478892198291894103608285034021352802207361882116481777640488846348484945139525135921455473567698503620441443091599771761843550334412239591653432734901843404418197090949262807111326937407158818776029382320029103991043294914449067701806415251491456355375432716150710163665468979872161007815632568225618423588991824871016615134156246757094486198145554845352657564673380070291153893417382160033293763627896369838687115793393763150072323494948069396322905632982678918225235341658261350281958376139176667661208205310343676176792391479351520235693751114648833081758521768241800596474623459524561077517410527121329375037110636821377082585847098908336268411570352076521059410829339044032551406956895225527706300213551607841110344935203826252204127516798808563027056576103595070137990651380844029539972541579949548362495450927017218389967074382772340709610331018248385661022174470101141346157250050613122382102664835005265225701454746712464128886320472776848323748269276286320005512904050848902200668865708568790242034080275322456744435404394382743003827351331012994553896307646217487928680265249596911918374983920693330683454622864996683168158029831692827772450829067552634323664206966435309375083467532132635422194564324382309556745542522395026439857770738477475320925696804239581667797534512418566508882146796199393317984859302311787518885813659394252423284930288134796320976152071268067973268891093302543198977312320390286354513366819028354726964707929472869915572316988093891072501235156819959405047225869851640642041843074686295711628304346627605631250782129207853782405475720303619731905413565597118042027354183542814127308365732432203799624284442986956212687974184958831171840107000932052550231333984739359710038171512673562083245834557862750948740262073537151171042685621647307105515799138260312724022391047436271104856836964650382803400000910138510641454151109744501959944143986051298549133273720427420333357948106378156642098833317658251256563360891671194169947895445605374862935255193185174895548540260550186553109437617142396902944562379854550855913514272738375962842811578113679172198721653748503912196664812848883038814226137614854326769009006401603146418646153748688233184581709692178121149628954627656583894779384839497094073896414742575507957807500391648976797026234415029019162932288620277959930014262144721279956275929663714763463727977740675509095065104098352096112728419534845840772400926914741592668017630409261602262418345269537242296746392958276758603224087647594407029644098883373755184577205976122573105230272261923102309864309593900345007910360324256031022159452003015583512302698759621407328926968335350886248007206567767965185903049553741958851559858472596645141519822567324047520648204489357082392210064253035912805069696908602475119103941502067213851729128015558053431430734621996233725311019005694789361817090929057905819435589713912106907124176535717681971183387131750808259452162857288653251486585375994772900964545137391687060320303192534727331533887624682120105444471739586470617537383516465749574420015056755659996236416286754253353925457035805220695767352553984972675957521968272542813794394988713433583112846484812601135685825690847950246286696331875684676486006583376651169539216585701047915186939705822182673704399154270890091247270365775476223464627373590170231822939485232467309108415709149437957904541474601487657644896709499489677019819547470951211469834170590452922732037519647579938870175379595020785277654221842825566308843321804118380016044405760808055019097669762890309523620354095411454573526206831238567522334158400170614437704944597180241226128171879370319121234180179591795630789776683136115337016277034812763410928019845852366296160960483686058442247849740266388360983057945958464937997461633057910708227049541835010632165059132270268420844078365986909450437165970458547432280217769163213385567828689087896892309061534467317655287761229851396790309465961555578182771919720451835193676033650560680601042572932245577486477802093338199601807976987624216119303750011363828764844768147830231131237184282099523180868793575727464686715339397099414257859952028118193049463692568034961747641899199319115779102767084545712601259783131415916809324124975498726360704841760946276827114547004910558681453170806613234264494995260181818376189633851725868204498712466296770782874388586969160851530993408076498873921597847855431283023340318411529839649642451608568290184280071550753780467897283423435252303289810848876746156834015968889209752073212938808320795474592435001517142193299667670399794356742356851585766053530901520501327575156067672864835296471403857493971740156239649164777416597880191576067779253770781345022247877349374867649715802951790256777108742571735981835163413846961626220889144142148700458620021812212669091124406587511114154400953290031314398868768119817670836867144101083190040890791684011906888956094822290812494409249596434473896914071995151638137024828204145690349303859154012649090829137561954087507997052488269260432038226390069148944322702942673020505939845217428282430284824857696523663591554977277886487258346359345939296850338773592907416707905324131083117642795283764336171952910895794349461142662095542024191802296168094929468279133873027689200704421196574981158520509933458860461151558441396166641094511060731550240960218997931289360879137784956971469927931752917175956783701401390099065208132655440974964905652489839659758913753409049579721885349246080690557126154678246546799987342702224327769424577228452997718881243302313219442113194131519927246968817401557772798214679650578916644816760239331031733717714422656148391476155684703109216689360346566776880316228960555676687566470313513171123728796420336497424585593030415498418490115086974476964352238815438767705242747270418924389185749899211914119404705754148019055495243811900295621992363500018087422750878976860130526308054957078813379550617781084811936583738967947696889470707212689466571174596834096935294580669483333531022173777498123631890656446100830718351604410787347936934944665619034812722780386676809669669725859691564376353070355437373642610259688776623783549436558205175957895990160069854337587081549208511052845762649536776764448043889990573726059255666288890469929700115727059128703906445611414847755872807014519686137753644733729745120072980184309280356717410685606052263975316563383733655356311455557735834405509092027696231676250877090666512600245456662925518663073598939722299793025995381136258284823920852281584645163464887743158008348229187207843237683649999667346727587393804077625556488194900019078903587648384228405863787238518631059305099112214399068583242582037814952084935958995764597378029533550432828091176352816380764500058320668431544927497448376772577420797523837974229672596163495197744155220925753620714659755562814910645959577815271523620772079937818741872767655206323976599859046003544136311086245099687652012026132636299879200278875933818046128378603241221271864620865513553635598264367331984011748310093457443096335498753046501263186593375234553422845840668521788689981638653268676373265645678306410515243225479818836777143993520122136299242902792728308938805274794431440826385599794338024544189315877839392072679839107287107402037544092585968977485524373737439616428068236842356765988388292572438305539259941845162769117494971159955273075240974689307326432125296148128827863416753906275536428296790088615599122935555636104669325798162902040712384743990132611428870513757706345465283719573566409973013931916679993008759664481156349231178071009287692001136543324728550589127126920619783742931807007053220145876320540262603931610057020209868596859393109762136051569591762407331915010692327997281187339201693499393065675735571510630429946980406258282366628378618734648063629640679658464455807495862579894346622820674949890634041003906134210815159883419401399608972263236055392728723000100074655893354689603396550962871679094561526117012026790831246502916975286086724245579731394442784219456429614813280428781714511754903368847293918107246153419271573872772843029797766213792966214907833624347069864092561074984399339088321760803567693158291739491910660918637422431815970624763602450027147875573206555014139610725694989375495538588522196469872098225808536969078547059819300267767780776779368647334822562598869445284775136424136715025661661893240169528672121611433531179520939923504552327765828658907045476173844949117719872234007735642832291357643291728528650376050540215472846962806823300157029217869008331431615259050975558803319032133769900004528383730609844684578324766861216113939855558011040258412808694454766830625902170818764105816356842877875974486582537706272265337029648796559605482892437694097411315141744899677371132346632946313729788618560104481579119425338164479767621329251059765617383895617014998610026305109751394601993351630219383228736855071398222794214937190775957136101576901680136259886950808366808188788073310694548969518366967045600343253639544417909174903303434450202841978386858453612024964467246281970241388318448806697930552746355263399661139017389931618959693274748338952537211691184631541410567781860300318130619320377496856501040430307773197283427287852620227332435857854653594234661153770329409913993741911045652902227189419157605727741038292230852091284120034043981452977765141119924296695334755122382776342323042602543368632875834746614183207820744944150679112523491591963588293096683874938928888134070394469899045185646930902777669955045764147928322832800775885855634123021934904763557942782686239331404851746284229139301859420917594581785956714633489804108003423570020493782159907348066542261409430120980402729777746487794978763957848112955497832287495181441519701000063782051566152896522376061001785582362490207261546335718511334832932893042888274789750721653873839104909461722831302432574646913026754187478807635339825982468963118995057134029571017712331355275025915606709964157265030891665225619952488071444496890186341985601643149357609541154861284553493669788595774987998442428334576341755150338844200940325622616034676762089143911958468712677699146994912133079342733040132019091742475551987318556102908447152962740514032195924457895636298685905528750401137496579043361723178546371019400098697082719611196138646877861752359084589346870171219100161717573165018412727888169279100233316484000566518445817668312961613435017779898649861412626488378800382504683362865257772025352564239755782780552199221033237470970444754192630531980726084613418970992459806045343308551111652436619675569503486019512001072553755806905612596273195482464605821767922657735508030728227013655020990545624103309741128495639031619049077855151466520395540878622408296828470935110969287458302047138829115507433504258717620788975560939622943324067076621615484160857716696102456064972614505846222106932244801794914470586744477396786072993098770077006500610428566953327309570724854888143747090225964594148512361959144183783924814087411087808308150286135767105475008196566000331252624259485426517712600791306085305873631986130884574717184424026631602909169839155176151862924603534504536878003078953548007989820366280795991919028848335514449057308720849428117119633581459564572564475932240851943957060139479334497414871813390953137905606340382161549636195022904932529731929220457176438413169572795540065814555266185433689640411853976125234880908135752630200139936924323349800626132482737529104460539657829816334798052950232769307805136464304599573539386734907771869725443875828125225613468513523338942120192636306193435002600162637169959813913771794759538394162994734815645771479501565202117651563100218461765663685486771948231165741459836081820592814607387015728632883268987460855276389244987965345889127645607406119009082570491899557108152208396535759019405785880207459613753959061971254559997955964352870212623425697482478197507936714642508944391892032248544296107879296237288884419695890174470902147195612257786223174239832360745306672183155876451444714288709429478636643879111458681373276339621917240494349683034016862257321301670777420767393727237728829911981973945831746319255005499845042491751953088285474191999661036572590822088801418057322448718505258838816307081787395009228192345714379791408485902314595248714945700385782326070560653469864660759401397247117074154643521730745159817639885589693870081667648705417965799861494703631884455944314267041393761580092973436609349370891655802182626095307697552634581734815731994950193810357840063763270355195817325040260708463711612613076739047858070654712453108839672250682547635686182726622409469350115183133327281294670791373144102702495425297320712500313198528582431499633509881511396156386774656553876198701516716287641751414659616515038412873109956011923607411474260910681511933898454562423111142770272660258814076546104848158808588690698950231871992929644567923878696764709988498673356957522506776427652379410961006290161438370606684063997452297375554533843130490014978904405535264986656631115292157911259215441007715629380560199551452007084432848839795512957445879656515071239096538054251244301008290075065556839609906261895542747234886933149198953550257293738960822878668494668505468728324141520016008511780936186983006678084278900821029450487966364896391406197232409828703415968105499983503172878123643820029353104963165118969002472295712702770994854639939309806919281161025386186678034175394457101019788766956800276852061584199998623805969303101301618923136932064766149160987496541286286868060711069289859778937549569571792507566961718786017277694425379689677834185421874389178147027860650893874761600218659025805511179091936289126156475252366726592822308055028413889786365383551758479594199116695131458409495673546906436249664833256554184334508056354820581580670756642449654987922013020967523192840497022576357301753033694435445641939581572842002354722215463834585872471913754522249146154807038815746358158014942504798357328059783897252301183798870601522714690988984122789499735069890416703792742560337859148551852345274896433998485945102005068023036794967848563573909542794389326019566645611510509059673321715298536484156222323780596706534476742622046883493884069986558622496141826489916052595843804939688464027362230403611307197963317298258688082994782168324103149326205218091737352870071173619703079233074236462552766373709847543375475501751814304850979672114355408849275357334208396840584165720139018377240899794872880309332184433855559282577689687436226557168906532264879504985910733553421339482056093501050696253186110547148371545404951561913019314597055369131321357137666589416595942516743728490744551072041165038094965632049298823810764839370498010160370253795412440480699749527782517640310707388400842452436366241744616375461286095883299591306262638241165232836875753641153491693492781929259382452743019005041825221853299375250663460529094813336752149397089269714084215294623940396551154653908293328692281370927888101516157048800489875308571747663776233547333589713617862126614666698414258468167122399985530777354970880674711800852749127351744500682760017466096591461085217008537193713185869010146167202708403396113989256902368306209303124710920063628679599306026337350689125452026398231330648035705530516587048632909386481321913794359921227339945720172931312878058332955103867323033465681835159307262126080688836482218625421122600413100469295487204513037555286627944573324202704124838239097535708068418223840593844674086501904682257459025285048699084930863387838439891067008945959929853975718241687267640675086940311027551473104284020182498768408546357028600897755068486072817935512430686230375855562856055104226464127578114396205925041135032571059531650435017967511152894279866478707350338558244764231261189331639217721290089882047861813050351050340584650871838019990216405542905922196086451923975955074183929697093229750460071281727126859815309376428808271887109960063710704956816150177519586198438323007165168697319543214805689759227563227118864080827161562530395690318741890170711465791796536232380565879391909981121423513983537322091188096801002057027972981871128052239531850664126309322207200190405512593419069722984853767124782684763272150040435250294357639558608248983680655955399643110565891578183175812608500619835324453173324783128154692563625173716582590505776241378038362364153381476562454179138947787811541304513061172791068375342337210230895552733662148983668497307984617820040860302566912740046228274838725745025827389467198150981048289164229068821723229041219402884819615273756697707956167727670567501493385754938275590485140833237789004025501077087225438411701141567713555268779803345569372865311418392974572796352790896992147955668885190129179128752669188639163750563283628306185407634221441580596010696929542073451121086628073154782817922837537111759456133538375116462857760892131327195650649969869620584481655168690737874569051361082044889241950006166110980153294547125311786103914572310356718247995711188968835973003136971562904479870639010522212978590687636991634357809797982211545557898539312086930565662268932394007681323561573851365105392101226245181406332462977587578737354184668225957056451869244520349649499828473529119163348096900813822589657269902168952771665930214667618520499814009070758723332675761582647372645073808540536117142768099239660333916068026230183186090953032698216843748519644359605099738438992749408996946589992656859121747595641813965311911848127871634935290406473375973502194704923678966219768562837380245483192009432309247442196626788210261958239226674719420888152061705512155094162868846290993203337606350857738092179617679905401516039779884548704536179755336683164887321687769256155274152791686367686146051425545805957382455383907822170397198724211742405352917274670959069409399441597790704721373225861728129602526544944585998560494192995934576526053766360262315453850882413165173107682905955127906111693932087471754650540220359438597744783499620275395069513168886965586690458494922603312876891459380978682869400798844975288449084063791039359709328811403462545961293088463067942703337213108091968619517009650015146244620461859665521625439190055594814898150004130802841958534784216584857290113682861397208595353823469473787014178164722338685795304923660528152598733118746139209395179259978225861403643266999482193841575550103200016599962861845866827244379819955536976060791653257654789154069559477646242517828489192153424774337866434395108166811353577651260350028936786126486189710444882060554595722389696324152135779151681829274145598032341586504022627935591025223613156390407089349996489839018189426445684917890997327877971218968300315552687482324850806129307766603387028479832425805501941158920425035260913506460121516727711742535422023230483758826922152235603062228522069569906869242820686370277807808140563744981280581770157352450646173785048022333366628619700631799706582271708278214312751548545177722528413370365044751327430643039930235139873711418078629528653455723330349551326719934974096187617674293802018547270371603606469126938594723420518457822850293565789893246214295333820630572023127266080111466210174016937833319140280725866119647598804053177555502667981730256424584301161010071691373208679939238649366257720831833234118850607716359578286297351929001089379294281606505378456032277383066676963892136986786146809646435762733333489428044279685887464561231989334671299182752147339990696670719396108357832705510597124329612747742696521570292681573366657161809810110809187704929504636746981736937216033065015625829124706432802678617107551848911371502691063321717124382335785482913398034961858284801913157448295176033954689553053729288608358406524570329686421375993856514592222834160532791339691915367325130351348932560108349297285957353917624549308566140292647595514269148461543290404225042093112468433207837365212176049309636520797079493437554952209004271695549503979811001716519113441337764230522324830946579342851783098357212137976127102048735106308999552972615279307209867595691240787496740078286335226616624022084981642270851641917136651917177480312957242338527819888790515665048481621595570909695666962715225687737487284846706662441698595389533153024001892153759897898797614747986972540412209431965267724690091534235087712339161955961659919142675059697474818155818496656132174586102341033231003062359848975337910171786699083704788036750789708346311135515871569031844922843362055178595436661971966456192181422569962585712109818659507173376805731457464644280092566988942975498676547222667444454821750165191087058289459521102044819455553280323577479033515056841790183982111545240874669485967714745143610853072809721274972877451726067609465794138780720825942713571007766126919925871645377085577787386480571447325531150671287025530307779466280533657682926967996062919868478468488741841583213747243576756720375441228827087343106004008951816650133435016013510035161403516810489629085590198974203453636355202257617884605386714209555628215696839381087721745094088519544828198804035549341121312660234885544757136156888807680436761227741979669364715533793577173214942593190443595980990571513935317259146594190365194360522786622321222623487622933085713441601871041681749289900768901475874308703347002342003720178921147487126655385194596832576814282475966238154404356873788144994359517183110577790583670327668465924490852712710749894226866812479773024185236653345125246131057567063949427774987739157835017988416798568345907464676072625526591652893598290586500288714827053344478212231437013444605058268561834476132775518910044357960757086388681403595183514535592911617058087760667637108369472635396993938095005061262872682471502357187530662131711581837238003432902584511764778100320302894349899335049432139463631392120241173446527398645675856600952799507471460797250624101959434050984349974785531781387893426793701199581668255098597332872253079063650598966616281926356109365081452074307392193872472541167003480996419899933865839534984265836209670040379691733169118209349853388834919087147621330498708373457731121729236205679720538601328335897202546742209709168380484779679322444538232536881607718860510132783443897422902106369247671595780317414953751861604490968387074465921382322202007147361264137888667675496810938956205805358670099516107112874365639405936925069012179754245280984706678676211432123896926455107587905635573811084000849899871540197574759386486899986165057186222275267524338138661704771990272425654219672778475063495205757999221644887079555569247321796288401784022700484648031882196746807256594959044463394153562646434115564891439557543333753853560608169595597395513728044955552368375137131786098811765499998644265208724551510387957786849717195186776244537792622034765440143962921907707617007888858194028581126215828866023986815746900688235206318407385170451733999579085464524589471625394866691902014496150046777488326957978221673675635280051745612204656041980058108900740023353296595164427410060184438933841835178631627565643210752759312938838781279884273853817568615037902113717394541861123049528723165259795046795174564063595805915966031879037511430265102936054274444772793086342854073721510100550122733154954902154813635299752108154627810298488304871744418616008546087359718745021913818924204116389905464362435962020911140346874830874248982172468332545403309646479012789953985871698264087302209411361710103315229137512017250665999944884909917973155841983518990917923452523455463718482614443767907121445950222295764930321681040785978854491089001981859584476886964125148939789116430032220986887088359578592501948641758645707468850553541348907802196642453987953124843431898921849109895917743715652301950545452770897071081122346199982650912160749704709112328027784028838129541109143890149443531489337250705518239409219647572989839776689614678698230684462061094060493378960803050148712892591048344448292730542314801824662745151297174706346977591974999484312491532568224816279180679250431227787618400976404912635833943389021579638645066627444634453878105391302267068736741429543435022309338139513837060587105725493622426628459919873262105833107668505718361330786882748546905504669891215465587281316556216611903527173879282805062469337515795021104697345520591811685790954472194175365964236290565076660760981242337942299490138973562327214380138999123117654161510814937644590563988277720956167089800520085159291624445226863830073544597874741636914176686640036697434832909151237075182740584492334769071198816724145618876550369420134417111939249133649589673885795588656309598244383453186219855163878555107494547490948857012509154727376132103801826688214929841630673597568708304804140529955499866741435163072926356459250813286259238911936199622733776409807454982540816331353654036427223263977667394292001453431303905174117344854551204347980885032305081577188896176317187793936891680844378060192849805724814360277458726978338968129037737173706540123318323664496589200278389739312574162327937180954412504062475051941136122744550003139504731562497465495796639187974513783133606257936329541036998833963073502280832059429973907646695338643829891894453413218164659842100738575929923652664595748677569732640088426669443849750343416563330602656973150145502683555668494802650516652102297912088922461212976858084741780725989403670921708640341341283973452858606278070348215134618575565669764114579438677119654859309431274560149656070328131167120542341940716588435699818577120771758600876549945038287705079292589988633395715496244666162496450392518049820364547816285044729136585554234439682556882393842657164633084749221775179440011674830140181208897894497292401917991115568967539825940057664540980952317152347504547906201856273313998342535878436440213455183469891351985692049537795098779266422907252224868201984951898410637960434564159715103763873514496720512289831895559282240221939064667964559074961147459319274100918376612578706485347670211278301653353397677611413229992561653384730654556822578859865634494922777475071823097950721273846365624120824675626217908140473908676745634792859614132370823125369771606524837749087879355508057062294511511553467470664991218772981138932363439548967794261948454493524786621066659805237205224355339487477630402056100422218770929483528474759441430749078115667509700451050830219131685662300269555768663411797824227551659961943774308464391815768101517816170693487576211711007181915182114255608275851398305314705239593239133879545046742721526096781345154339278450753440755066140810757017871560448995361946938652711930192259139951259040517002680615468684998334119666358372274910515860908697919347557273013760528705007430368683917540842233560857769610822092174635992973194498035019519196219053719357384597446221748719975356335884898572889560378251548597398360234338771869761160764796089250267762374847250962589557866172805111140102590565864123743918811799877712848475499472222815630038301752928533159369114427814345973989437596141216621038222807164189079955405101702428700439821802215099992132807240031463401927991096211349259169176449729974325240673424409195662597412999785318111877186576916104747969025206495061454154259862971219690503773781039161269491146771247206394588124948005777604082066211130871743120245600317310106583848554205951878865279624180003605255506373661386724360332247747579296805415992363515276674962020669503668763068101107844712020279242513542795380737717307966326129640204016118661256208837159333442088450032284048498580990916933241421117853374933255688919076882265971348276005282344063211338183977674544675630724395090932905674875154682293082077507448899687640072088086755888308914072784017920048072637537879744058208845500622239051739037953032149487792701571494397390685178509108901816470998311389678786618997978009703865501788238925256491362195798186083631590510947558530856408376746602777006349554392804980236983814445149696778900156426221237511120958008732853649544740979247271012506555908666724287102576764016579991201615203032144602015353104205126714605828508990578871728729946197104648995710459128703475554650001199965445940860666239899298322849530361334868429735361738447202561455011000758079151817105014640235528674547914049477468968207595668952383126494348421348777103677676182416149749137599422509683254002167723448533668330460825752707727338567320375157327330385302558100568540100408587869278127024353031766899382434699483262218161779967453010565716791296496670295658574680036214646904686016889679620240224886357170578539101101575282610225023872452725782812557662935717089363384409525549942911117884460313161804981751573367272221017990178532050583722776120587284629919783748944483712721673631951130789703674253367515558784541064925885357856377753107764642854911543925300298187840521943333759683399553512692489719253776857266327169078494599918791752721060153986426542122980502579628705444240188993894022246458736783797146683305732604841211940971189058095375031127414285650588503221091497263334752785653090793033161590422138760308251618768873570152549794782354452917472442903227225977470417240093344065219197154256123162198572040328967672977371573352485481074588195054219655348218943991185253340086649727933433577581520990547370324510902615637445878182976463071565097804453341323794093153467767327273542507305462762482470761823814521376194065591341262111161090490964194493629393730978491902757386804221653004475754454219118742400775627929607992377928168181138202030761004737273156560058827703415115718540096781933182016442558646974502277749261536141810618826858488413089334570006713145810700427529918859364302103038432566927942035175083605160535371881179002394107461386245034034977287936587310958977789051803113055392789946750964043044107381153601430449234608624613057890448157908172874436857686755023634617443845284901196517590871304622228453872893753458021198773205239885663127361598529129226712161913302233872338940631504776476021390239294111762947599616886902338547028067591011998622264784414780258620350009060419023240540311616302988299265086035195634570872689288115217624335844866766891924458411671809616466889966867830676972158725843788114842987354590863736315957700360071522185069149368394122188072149332430340998805168724475714554012336021385657828650977051030750333153954606330234533580854661756475739704721243688700135670853279561348960562315562023776495966736780614727132633449236978647669491101389491986088042882377737846948658233854772404545970432221801980940015853611297466038574324126470470892077191190328804729079721455100463287209498632648719873038166240245134160175772842913631728032944303988611659657378585177745740866124808633868695016630850017333474899929038383844120139220694923788900089964693089189390771524221224924156014862481716255712900501466915135018639725730868638110265682389659490248559922728823699933442094072806275341679030299272969789771584241772962642389517154543727563243905896286497386856861346031575479468715043148814719329588056479653342345221982614282331265266204728334966722863816476094113172266332864359588238272537771325194927907481233258321176001679601528249250256494978155823908436224007943169036995361693493231024595236487205339039555502036723578858599390456196123540607235097522812583224604018893404866493593586770979085526102003540339498408318220702701615039108909133631747573210997411526236936212944628044636933986814764692515370948294561659470691029519448569986348539371763780602372047684715947079006512007043258979315644302538266604341917193527745452887640449495327207418079349104204891893941277306544874410202180800237137128210525586052573498683364388758267026169548928084878546525657510054983483076912146323338942076305984407174539020790637770754901543005300674507596545377496434101252592124136187235264767611543640447384327883451091298243146638422045047916707628697238358965829016927571536108547611841528423677239225049237942936717487805930549355669572846348980681952911814648659273601320269573280056738014208680025251794833692053035442818335175962106697661661934367430532565741125615448399175908076663385761058984075163440417134820554527657974738490136078752875868075613212965350600041796145878875153134624844125376061080431457026464586305380648904387429252537927015962759970275445404302803569638634409970795170122398582491067888008398700796765843350676768919475000403033582317773205496330725916087248778193187407031144740099775017670533653542657556497479798173300657165213147009076803971549110605727949070490686901724901136610668696567827890769600915054286907710428188326122444355306119515178801835602748690528971567613815186111043100802158808902521467547966607888225994140524547718294567316840072354461016307855250169151675388567266477700407420347198371844439529506002960863863594253463780275649414598769321639255361860051007681720640074424218755683566997074376056825031728804064811766249932993090399583342402741761387480428214625942098991893832936839929483531568588007936120389925897481671242471740155107011903866464862753372607271361348483315094040889924853147714184612849823066640028854854643538312309536216197193686579510566742631638974186064529268417401963591565361017926370209542688228849558859403767658577566643791133372773978199966802279314135243260558413701960060527046380266613151401834053552462087832294152916330867632099872036584408507946351374248166800006689854487223350814882336183756560058849852216909550149363785271156666094310456594006137253464151294640746343231905942899999580660714892736790371928207819612441434629188780254087586172496866868756440329984213470894935815166966054979018113916643911789874070455343971901723797231497212959222654444320309580839519920121958499795747237306682616122233794045737321967102877566556357567609877971443295280876845602717573307341926556250727285409294539954932499911275762059296126145139669659873849274627289638187178341653777095010894853761238513222602755738076423328664194887834550727668115873884146535941270439631371121970195820116188341248275492995889990613286876361741813347272944732338889018038399383974007308186119464555146273646293806471487359242355031753723359537207293695285085165950961642510056099083101884287293681171466149937749285879267657542513270447158613188865431139333717134104372658411280733539201256187155472488842537334248643671957038014474743056354664632764014151596280557101444975937120312909626461494193569006183746786480251230755717787157984963330086888624931262489726828288206145076664674490767596916119535849199979243141383231845497790251226998101812639984557550186917883082257945960919272440416744765018751993725005579117481849522002768499334685173995638366585327992876460725866861255200922421839749208176202557369228769476347764693284342925214661664551410603610791703182488146417776648926826670215734494331546006261460075570044616182026127919042787548110185228333816360478597121347192211947726358324014670751337873354802937572748572991582049084729315935810879538246783477784699264809227984099644312029441208566840300417608226054407758906121951095163639786258410722312675879755411268564738037363992696135644467452074888148626354655744798343960386885381910056144346828783588995692324769568552225456274586759314293527351361852998847902787314647343111072333775238428634360986250121691087548571886849514040607956756304730277190648982450082691948770680272414758064936750173000781686048009808409441609980492686556843952347145030847282709750844704917147378373650123932672659499946348990325837266289864965438381946845554398489053174065669405112262408122672313645704559368480277869270570327778124422986079106296557290696832174551250776182329321229850138289057604588557062086521550588451804703856252268632777224116071908394888729273487569486111705413773816832183038024853092526619769167474453251150997198479439070945148287823395573541023517020431689396258294437954231203722745023301944648834656970320196850016111227609123309560775027006396262092342838936359668019569994872456275390625988827329297219432764610081603401660715166991137211707752834680432298834730424928382660930291425467590417929387145996528219556422649833006990153232073559989436454384129369979020447735846598761598324315917717263195206157804545053539168626406937564195866102825379789417366993080788871298773685753604569367484074267738599153528127521666722141946170526869004567184816146347133747421599682762539009366354727177112244083500442196550448854570133341287125409326362767752883800404736649546211911031341369279309413226016509849270142745497135808198696768160349894281498430959682346859371834670402971148158653316432583393219083288720802488974290900121935847381719908987773104479770211802819164538248340977508974693160891111395890252381368425644913620171143218374945625590936989150620318557070833296838120919087024566588602994512527177948702490910172091001015548497198041218711721900787279476121818403114759356127077722090292258135309291628429315269277936444049580412439455784142177526545398962828818464316561027426543450648001007513633712576131915203949584953280210185139537144209822925563878804998777111635859066828366708103084053019832602460090919426813470630787538321811566807047478245810336816505255973057451671707425624105727934428100902281992378980782206748516949989979848377746203871161216980715659991838850544556190180395981603656205067740934125574406934366929058535422910808473896093760397355284502412146306873388665978512737415895014926602179398175003431605027755040931163883995337773158069000429766615995861101838106514995241721652299222512390148076797993693995547378785392659811042492132256660107470989315576802822145310881145054568147478090849284562252297940281865183349695647424781052883271358739402087695729924773743565097658199033687564941397549415069012520637692877042545542009073942541279963315838365971331880533328742306719283833036714597106503835685903975084353404812788910879035592147823119915911568593354994954969177628524801226283688198818007876321776790456362263007420334243129294385424842235293436847735431527306473068899062438899937041956362494599319124253729368366484987045040396425807870262213342229612382471202856683233389799952628091802571074619378067942976122008377842999638158113252074367310406809498582907280900511859611999485172720238269388165808735551823588504662566241850943792550725626057513588892013591279399690591754025069668429772267894213070615598320539127386841869571575085685218571710957307843925927214078435675081783569548460340534513333082818236756715753087113914658889204940743929743775753798613323324451151919405890154636208852787102821594038246000268418290535083947030649464246062948861088279258239625305563242150835901821141135214990592692073989489458575786334355966234752260210048116407516561149574310797720506622568633734588846582961030830837172816621107201643175592785855154337232956729836850355178030388018786043497903879040240787770335861042410993835546522520612745719484274030394236396255280136895975087523241063112556440187565737441988739224427214166433363256246303490295533314416414722558684816274197302638879687487660380898682507419935679915658954977856547408652102974840934333998852640830339897165351273321940345958346222654918354194597319262656746582823964537875876640209198082486532247342598004503413736338073017703883164680930403092545002788435711483688425213399776899372553899374849569044415003623749365083663720801152267320060893872971744020063921681954702816760144849251050950855528396279381541780880027960244395707855693815160367146908310791673071351555875345879359894316140640477275543046515114464063613381533963826348593705839135300658777528824285405754065515125330244906133151300633804429510753059598097090768042193029086452300566941480699375967963529925736184102347675845770214680232745358626472616722677104309661371667493920446416534344645409186198640917817935666467043020036802894272107865879060405217906944339542853344977684271580592973864895986958724185273922624902407159964900531751484553810100760526726246219217986430688375597145904602949212763768682541835906523570497720601742914663043158046289565301460176632910101239233715486847049990732028555147073819642744257261324546248263776955559390890282461147782968313268202208590395180813423028595109719526085586191856749035125335918254667801056014028960716255929213981874165055441735378523040096784658981729734687912812538534686786381574792907628388355784077407628529844816875350553003488176336484711699232820721310577879623778364947971426395444291694332982819035384230664210786287842592400940797740496276596489471473179992472920351411479107849034700826673229425992648364672124877028584463314318265769710485112445996429723618780541940102307880615471335265026148328472260132091497108133508180935083283431160341366851836578411905421611457213966372900630041674669590826513533711166076202621332916279315869044818728622410158276102159613670142579538722058106819622849281671515665514907302934688481068632408001061146828904812658854660422893707547232038392318025359986238013408656600018452563803296610883279988932084882085890330795377083951042366189419590611750513098142513338421984913071996902907570293595457532524087296043495347706171875756737866445194751718439643360366485972129184212882799440018212526247712239302091581206665844016663777358460066906056204522920812351358711011230435407008456060996918537459800617230844593172845355678377329676534678028423203096471353260318205878056318321254664847695756225930889737017068255249959210828978467250264958028122245758010667338233543089056493413403620831743353239435821467881546319707179013949693689156839497778500406423981522152914907876792736030976286054101669194689871733117655823152637189063692673041877971440207755539660155657205280749694757640574535975552417598514833752251249593210138466922152926676247476154378367246744236128201954145047805855064511759582006896388310888769546653408391756902348560755931826143340775264719459694186903513513767294209913753055443163524724549411672836186319837951095302300906924346785501782452866652200998167910635964364452226841083568111242276624165974616782273733432529259135810536375720165776911534621767850196766111594768971792126755793484466287193191592089312743603731510079027880616960306251691758901247926719230387598268291994008668226334247011865263875408381799453836594378091100775854245621097724352099705503174036178921373825143496939789424403584736368792725162464102244148459678591354280112457541877543347549064499977842747768016135974220348969247174670122725746304031906490167470571719658938828410132165656228279641254157534689738479188636672585414625799383870605881052161510513956297191176146601286526704945960649890698614804300135983231480281069570155738516988551913954052675306425675415152415768905351910022908953319973093392944828306605863271054478154410236091701936549008228547864733711537982588969310521065065913203491346725355993960371326377501307543606373834321994125774458473891593434724137782682772326407531258587899165370330636967439548597747057296033772130781040218564500003343643226048338374157106491015489009070591730197342086047912516767095964221957360477187359388727509585685392360833263385645788539078409102464767382096622800776525871561597406222746547417509494934572749415774283886732510307099458546558867348414696156403313180216291467020818356209309123028540787882274228481187565284438597120035486291699642463932687097480048344176548282308843915200415155581344483053024237593704621453935700603753970618862865519264647869356915981458619902741406272718392174090185314509619742756536073868346933084925603672877372590338339387099775486550298743740786049055890777029513934157131045874226228937119492748217208053173015583266148517888359529253675994472788679230129789191044643566381971410429294954788414246502346356124026038179847518309552749916765052516123988187188081241493182944225020882663651064205539689562742377576759526214915031928581515769674937507655153051067416078092144234643623271623034071432352771330185682725200837245986423556012456223239662780694304705964515661931792521534277921195050585257393465139634575395070371492637548726276443601480811815382174322243643039592457785846795976075881450067232766860132123065525992171344242230048573575450997296402661637001569482834798864912392889652349015131052400970289891447265512926121897198799649047859318338512103814598967637601368827846056029533897708547788308263053986048757849333123087802700178385961629659071345766805050015458999717235601209014106168947236981767210337247024008723719454249060680338241337305411029442526635914200100365516800511806643328639692551341191059902188708245895285633720070360171963066300564687488287097071430004810873582423212901749512104344223808847029625741988201278670662433156475147772686379541283557077472037018054717848213280563468286328440487877355945934262583679812871148242569351600856109591340748332265977717860492647388835150735949224097610918725288351886786909055611642348895587651124291865115143066355187021366750426273762030347187930180125920163313930856380496876180524647016468811706875025657643622250137375710799973138141913787935344224182087505038943565304509024484511616469318742541227540195556108492260139839362951857471633418924915995118635680819098601423556335675296004160521865328404582610168097156175137894191103656326963968646251936601450747002428772293199946267026866189506143966578353257172304522430060671154927158793211033555212552710352814512574217874893960765610294534946706803240899444854584067227277425175819019043241329086725215882676857246747119207810108290242192823231212694139219689987274194973876057165922811067583575897930296328338902623189113373558342434031016431789273688566771286761464132323925953144816001138718819863568466624010873318685363765022586198117073858696257349732302999888223798163339482734175264578238997295263511063314202284589973143828427955394969366884790682618777240653100556502134000502138099660262096108253151951693233241195109930554660868681439875479160631203051495690921117178157718977178421040060925546280274159608699053460432575373411383856175652698431574745207181145948207472724239701898259503733994353860960220367208033575554675619368783929669776081873686416756668970975999117804255786854957366815938499342459811177308677936391558400550200117259419392414840842158268589744620833482056900541355321085688169047763860400941001225003335650435535144410431146714174113354167386809581246318354706972125988495823409409779112127415767637641956099260759832558496784519034899528762476899523531246914033892365421697921114991117323052202941438399055210826730375732473542008082103238095200965340567684197617369087946265610231055541290658220435324522007099800809869837478586525339499075839765961007635070878987783245718651491784124061337923540827572472210142612480348344046656895981879032469380136176684077123021406961617840381362089566222555029354206410675971821553439944690807096713797126712057182815483033554427456413648106634577444780578274397197652389512149631197072672446875705924789463537394415694494715154600733447661650033871655756416602971071655229252994713462406846892945525169120719786143888330189788202767340335791602199275124637249040593756708840510730058893260271351733807493432140102816882548801022989562263022333346761501058904121500107906334058576677445492098561567327236020376634156920888577716274397867380958241650544657443258310061824494504426520435664741812331325066273348667313307799756771427386752964616204841286681733037566104720693932977667582528936686954857733603964892906262990901832139263753353239692565606577237129375903885085669210850569618350157428350859804954571363698119679306977998114287615691877977287492471536355739583457621820235196061519320846156149930000669347479624924745386585096312216796664337358243105034693557759080201876926827220019746028627780530354266265870107162246497406382754104905768900507057224583314645547171037784259319941462886543617237401580742952321211416707692996072981808462862290283134484712649166943685845256225273767651297177588537413918854791676796092106074390472341097780247676992667779968093689697695741770855730769639530366405531582062215122989052090866430244886156224475089405310129579672559326956163892936717215236970401875805903618614425522262944726233387435074807602970795600958919612842891950559842096437485186665890135426331515015193097263080556885556040575127408834562446049608359574467221848989816151910989384031433260072391467731363798437985676994293731442570380696464451962660845080796069672992170392113574524993364322160929711839969061771819379021243495473382783693621949970351911068377488161866219309154512675713548273166301696825651664775201226854645367043216880030324800390142700088394643566346199379468096137166015168316362177007309292507990715151808585658521147726845562648390292184400760649102646524347770507745202371338806877217054781816397487086156327657575988108093377678733476008050780842127762792518343864169960972095565764432473141068257794817324027257555810598841803546168899785772753778651240556340662686557212362647771263600400872997462835735549764186908273710863824994753432021242530467559446205687377970707571959479640899449305483534333206475323656934732477912510568406748122090590105427103830380156863881358118946254913763693367549895300437434413061447898480102723903529447068515366347559404993799871115251236712686954730860853804650604797087316059828487065257353950892933060729105722331073536201824077801340789408826287600461725247590180832146537856307904919972673240240713730950509830892931805007656243977118334734962814807337332959782982787241077207991566837597492986290575546696471833654793969891786500848951019520532804200617667928078071287226117381956273923415572533933064076283266138517690177755663532619974814516409870872863433593119511191249965821857917898017134387626415985138726010414901733542115905024662186085250153548462124165535325103680219496523922456095236482656020473217284244535267838694869519328331101246327510247437744922618067332979918225082104532619447340031263469499689936151804529568618032188118718775784172134352031952401682292211174771967916812625822996609363860231281453654493726804735211639584447814295934429990437896017421239983084786271234949754436535386971047572828810898636059545859254832837955511798548821571582238767210191898611182366502884811583756118590283289656848924572999317274009411829024153760573444105036039517838963540121283918814876209376985046025298166875366923913040638024891724668220832062071726335791324040829264936130408126052781865031907932376176970078459549420691080691962570957014790438545992292178760287193289164145169420463722781068542165461113196748783513732458615561648467167807965157733955212273946950888088349337174001193216029717964310740633236418071528368841865659644673056225328752655352535596382913475746978129127794194413777564031201714686965857764723056946677359028365814799797766982924251545582061048032378839910937227508792302225983105753742398429736166428602346557986999725399725693141012768386886878359562779024834527282364316030882359575175463055226202413071364107122703634656638380175085247802049278013844878053436602257153475869895966617845499852155749217951324198446296195534810532296894321105333150839875578831061553748239324348471339968431659570967848116064720782380015900013448347443550467571773951407336708333468134069094744213236229544638659173713951608989564071847913046701106354455137828852804476045066486328715234927649261735491690773720802292858073219167175465068099843117952338453541558518259063073260989465934318176846846785041384519098917440990241257768227453691497226331121156417321342448835572754986926004865380678698328905962766997166959271507862784125212470406813658538535763908154511103568136824135644665547018934578376555604144356351855815565976347860537780140304999443280012603935397605629642468052763830516347875644221869332256038994638037605251703599293719874072925346195588441718078101926995150803643406145173057032437881748149826097536542925624058882477024693249055199893982579453467858703586404667205770677756257087104954870008862996645176358765772201340231464332285804145511945195509369068095053252650896979196610433001935010997115996694226987463349460109316703847191284407912082118610815384076875363536039682863115690725986368734118538267733393004075167007589342256499705073295360166986005197689529881500821091567358796726076664175718945166684911041582661769340626024889343357547705321418282409715993549005539926639850391975601493898926331603668544753746622403857746537934508959898000127600119074590414165723536525855013420979339287968006631556026694578007549715916006784820624366201069268692697726898721092975412806131647091145151171579352468357875748312776824486232294049614352422698641640572620142477846949160907187849516108681302501267142831586717307094240347419150579729854381436200781430218843110747005193776832677396428824830424433396959775206000171963820619396382934495594056727140337699833858038391926883075228363515228692587496382681006638716092118476375222713742730773798927372522236114336654705491341752976742562751040783665742094165481656348687366010943410395947451858001547081492841150523096405778412582077895340634338422182723578121773318967299413349057099935652887828893405268631452568650369233276606577542661176630349929867781245108659465153773551577882147210706887991745955887746251682066226529653857849266604354490292910110304012537170382287548051588638844242798403024279577372378832966735779489410777870630980508432081151517172768899020202063053947208681436537268563115921486641492348156649973508950166633350606131465576488365039185551337557392306724559874602542760831671682803366190101278302606684633187605122145767981257765225025376891996962645513519971633817697310021221839620211332129259870772425746046903634373850728871794402700757989399475129403716569572335795298541088242942145028568223745033702434276673032982810732245593943651054658620473007503737336665214035924590517483997441795429140724424686348275578298200939368887168414036152079948104140364279918307829584764521357364812435361334442744170512684046882589081286476975408310474491146645911577853712826996771766802653329692505662945534988168281957787337221641586432733285727561947641674517647997516770853404290963421649116722885817106507440431549195779796204685745987938517231093000354557149523960244241225945219333255091173224320590541264428904328008879487734069661729161849178224457513218307438400960894683480880547801774937482812578176488075162252062862589710089393029601333051608828681122256655165983732026997386102453525430197273247957132158996170897473343478282817291436544085036149584456037385808274452292308023647458839444228746675959186418958311282845510754623764559264697693730702928591562961107248367302606692278921533101479945116302175443185299447160989226195870904799321002377864115876501590302023545017782118902448241994638410800019357894859016054066365113179715449814696493526278484721904514459065494369104604683697912812594962441044920091359009911822661104760493104038765249597794824418482974063771867611392248785840153815400656954120992334826943594925015857939037895125804958029219112229929435785602823385438410998062249114284178931595785567663349467015739976382466996058682358440153386354231312386207893310355700187906845746453077233002677893611338211435599586510704080969795425868155801093119499831613997818641203594487790344757995804285485697742234767083751479858070741681787680588260728863006694977629975381284625514161951748655366228030837704173515450672798061774105932853084448164451461530502870149667358023918853833646249539290177975920157037149839561645497059348993039664328673056895311829305781087198573022739687161561725899412895221057321067065951286747728118222923296206466404783853147481450268562613076678778954630129576668581216166415200448929126704452210826406987210619637910080729272321785985664696674353948128677213104530391333087412177145757927950438454938961284646082540252172771038581913574305615069033241582269797331639259107805733917760143884775064698920566734097786089558760345287573107380618633772348925942372793470455650763007217367061583530333281659059131776420549980408033133724487714877557060000571183173402754765532490655600433988655711269982069480216557022267363519270212186499213830617388612576775033826065125824132614774390372387991598554027775165892560665414888105781749250078906032850672527940461852760686949642577752296815059245661502831839494657960687873403249323347579042949158634813019546783912441107796575296702364703166495584911879684406705998860516324452969119872289020254814169707137256412242928639631179400427940933020970072409394693063192618195778523755378913556462090953386966020703513520375559229913467473821831823779100830121990274193039318385494391040475012799729511626876223061841258053869837938605888756565397270003329033589305144066681401242305003282069618276158468902502487821934957073590854399951618439178932603156935337114396791161892405499533808689972966557467975340449786162030973275734901971594080573098893518529425779289082103351254910859228129814601971054714060789647410103943702304138641660599772264427460974752589461628933584988517988466131957934059962277715190259222236752065626461331856736119343693873950336745701563986599641912810804565872813786443406558995681645328037131847303535499508740587196825266487643566884698750786066316182119574240636084216663388165979127649084435281366188759267625505290839477297133203367650150939663937065387021863845042434403735089158107454650777185727136392029395085013851223871058401562799930257085875053179685460270481441811297641541037213102366310098633665934343136999610369525311049436223125307497567581826888395587832177683163234303231481569444078311877802730106435743513409479382813141878253207282636360083093370975606803102648101790875806565194478346235487884672014121762462433291950258445404391157377949576113546420802281959369279611569453749144861544226132246993305861946511735641801926942199527162322392098511850184168192015769796325086247217372143156570378158289493312215989104498718676800912765268350023869050858781255759141468715730947852421476208750469953112707618821763115721416636548558801504436350924583524123827757194595470967736102745584630986517574412884533118963493110126103255029203342906656231030373039082132853416802426718261823140785400984909400866129415208434739565771804102537268555947279615215017356826232529913607504284942442632798860223146708846261886414627164625492760026660449065099918039891193328006457939232980810942896004533620735396570079420604481966116617427103308077163895987451216012888427562580482704000146748585247911287445504967478990098596596063316232289661067109607580841998046877841270153610702357683623823820889735233841636379371077437308656375627182885883340687330494106446455921439962868461159359072041489443251587976083052538889756062627000293390316045072900499887500467683464366546031917370531659866892367563582773442922184637859321461378235671721935233362371551897880223492600890524967864566796295099727954853714908744078366661942545400668193861775992632908857996731297637236081208288539349420179777749207899972016225603347802787136839516285656559296872197728045596595709156332021582744549268508286110744536763071225850622044523282315080783741828569278271411028521601928221661695011204125137091571245885848003310249324208061405863509330530313394457249951406561699749796481166541266013159074740061945308063475651905173162638537697374198598039534365319413471454750929180977965420419271675430833243363177508577933672117773595094504083486045413178710734508926126166746520187265499316903858756763611398182862280772880562781399724961938336089061196295984411890928764307950369997346418994805290162699419887484637327037490432163185939870502184190996263960508851709299248280253907305224479911620888663933638441317753062775266852354157326800498193283037838083338534206744127188797462229996267552977610313709945566106353653210011107538460770660701394323382678021044621112068999966999930009919172044023272237043912305427559944568782558686478427929849119886923162421711708155111892092466814996660112833071407463300588662731005132257759842234862415313126181435319200118165218416727001775141567381112269371125708524230503565519105673070661074482202265741529492669036285560783367309594440550953665282452166349206208654202948129030939875816234345142292197476829115815215544593250559596645823899505632139304948789072440558236580707199607934790299543144692374620671873621902345382828624024687463189411199277476717251278834146344325978728865244185455090736048190264890965658163451971595341886514436863123343561056258007090201679260493458712853763317431972364889515978689722287948199187306957466708824789007333965177040474234251770435205807773738933888529950636901871603519328270729865370784503487784147476952594185341443240732069951596194715984917983149690612062368094029445678370730747909283244364737232177385906402596797204529966526353869780629992813167571814898896753400292903197277169851653367356228541712315521374836975838379395433601559634580027679716404979955644479757192853841557358182476751858661780657063634068487585287278437813077381820011803561437490420160209063892742086574116027050604261983102575127036964370148146750468761346429395990348843269371531950698731959978261840116685013714028187657468176090630260454788422726114806806151925092165271676100924465906465748016553486648309238131694395846202081729751281562915674861238072142718893406186657111440229243235099320352854679418819840037886149728954634191878988073863662908137113699292376474738377441641138170514793066721973600775634478238115632913802071321942523587147988133163141612364347795854188702039425775000241612380689833674107531239201217422789357154212859853666862776152658196851693316872733320057234446820162165540683499380372286446528766947942624417832218439525929256855495500477131635795738349993687588845497821328932840429080823224469482126925656905357451408199494604717108576650630673758754548473565497196438023180663638054023673842283764950337545374526686507396453688901212924461735317533745209655327597958253746090026525982122019269891585696707113079203893312602064589578094277056903899809502574362922443901685246102570957189856879076923054458853172461338643785875845055904045788934669115355240340693744948038633721545751586478126844555945033538784925356764918479381908081610338643507401709918647116109023512788794658163393923707352200549447836745152517429443376221183744735976031882107295766545314046654356650042157670418701487113316250264548185473899873549497341389608368181266982404897462920017747279252713988934120308455443005990740013515250417858603839443049575586855354485243138981590663869083040251846494122743972586158345867079806405367670289755798395525142702896157471965593425002220175733890330747110911562434475580337203833414259925264330572929009577744879392014554400658673273071619034915181446918332857598637798911958844167651058318566796781163264824824344209129631880465853607682784933633662379710248911150586989830043861029246981549719709619595053276505361192736691583981840156711867500098798178909811532983818121887147314892342664960475652801694958618801336079559661478952560944951477198832937328113986036816156606753520439356013793807187588060807722783209433437567283933139637297498539204875363761430554960998188011285556980893477208123472898133293728265515360902082402918454054495446378319740119329866028243940819123435480620537140696693239838176328045558432900276790177084074225714600686265846936293899431720634338736495942220054304316812704226669362217496828088883269758384060540138529077332302554697108682076460039101959539494185846847714487558705553708938083736189296138579364703863934844542384696875297302098474820259712996109570326434933243607786588058413676250333529631147228273279914492623417481690546349082180675095662317578181380095532153403216322257775958480827184480770406628508152743339347336656881238110696553373034858778295502834886867829748828296455716557578470077596775623646219624957332757683293217310352064650650542218336509806806044711158955543778462062502028209073893902953304765754996923316179990415898963602358647956026019578038531920560285827408839424951307742077619280105055983099361392677785664233704862436717576028565236839223415992108997652594688477865504359856350918689381950199673945005683508572370061896333053462317413694550320802127698916684950470632252679314911196976889980594834817665943440232637345354967172804093625144526317917169961234362055557624620566667322746813663380259527273258140379861403470789595742814448200382837022134230559680477362787020885301804950447506918476730866932700302228747259244720841375734495768752889811574575332067791630264688154480742329547159437572297295368547623276027443898783720322466021435402570393117424879062963408757185744712436904436083858577305406712415935478511793009776828746142845569748921137006306316752818272313495156139204040247940017417725631029133581238934231123068274996497552814254170351699805751377989499869363372020683991298037740251724065559503898255144621537039369376963972418175906468876125022170722877505517293652093418523382180767282916771005382043234778200472132652925316029261536974854675122271023758159798755290374639806070703537141954640468923516900504129182572015516957290794162656188381693115561263220288729159641865746918628296109062374766977770276962362940524967023418446806434775904225427157434677782704104140193639742895432562030796282364563588366016147413392167173568383211756530939787797791003092524991528716994457006290991373455584322260711058395610667674388933265753860209022858149872481059867464287457790587117143928232504765281102571211085252322533776072852171136701221273351518791590841836311178998003043481706884628552776438589261008723227177039706167921938922056716856299617671179781385432347177542812265169399386437191629640391992243119771528657322252081437974592508358232809893691326728674472181968179834603842614414307918927167942498490782948355730328228052874870023726877643810748318850674054039038755929690796378484335507447942245281702906977089968666477476117920669170812588531897671404902382392775729990767811808121099945862145934519236414643286223487340436576154963745374498535134368478509366442353250752768565619694045912247885423075272581396291923169266935849783114527505395515776543064801993823782204471646894658138567001285030068040324096387416472109945810941527898628937758612031514477363416518195622572852214901017447799202160473840916505276377177550825971795142750702906864243555945686182364542276373241461938986516284519855601231469409899589795804004170639348565396092623197729775657361404189903580571762852674842541429992330806338690531563807755956063386477582586877737976105138283805783796391956247217017846376474500010127527964217892714063697476142026414851956371088924621905253225775278818460356374536229561529613929386508475424007181796195056612378575685335453996657258435797879706538279288062096102605467410784341770101112659999497961676130184006721435744817879152180895910692771145237453904139608029998860352795341381553195315161464580190475644621238856422656579838517986448894012452811487159934377457145286501554003957996046284715684828723972523379230121667617043303520190621522920664573335318777621105394362198426081190536715446332395761608566664083323456352841164479893378772809892103765768147147785551477118392592680263629823967449940743180905284665543990837623748662789029345131025308808131041597345391286745484109553184682721089413012374633524987572689505210809555380703119020776438250980679401017542133866322276451687436695305836164756753652011983709109785681672501697845416952270784528678950151690075539267696314932858414402693926930552573061683569903361828946162028582790964063620633168344932746341485408108874714369230220124531735101561947734325359025650920682996222841504688732639147055598529951202838841039421721595304224059197648836116240190866389789113527471513232902156972822662963621315584222826339051881750362308135203737545762551193406521125123107297632824394460232608469471674288629950463808835794296413899422157060451291237443002512190103388710531796872930053274723631587022508346251562853600638315980064152513327726091241456283832121320989110855123908866897587976680778156557563126362319394402601769154591223977758636173944517331479149530881836142128426583684882763189638159218945393914730611338478345344847668546215968026479922182371326624845413951112988570979919444011961941929548137558442622807506361439769689488965798255553581354037870935961164738990106296548797711909899916683273696371959677805252763255482627534215301156296392364324053770954047704257871832654857970096102030850207311752147197191567635238528824332374629376518045214108501726142652769926291225064197661305809108415674003902869194193441872286811894914481750838895752625061445210936141375502354498500401427140870450030357725761723116336987135720083032625497653674488017551415565817039000872222288787750218412292488454641419160409145447765341608690100621519258527427974721323659139574593454105904920994272079777036717309484724363769436338488076069500623124514603119121206458992873822847688365744857995049351105267780187454186162118177305279001541300199806208723986073369031174904591605231389832279229788784884113159359194047470330182472306187983456257843866032147623324922540297402906072597210618149960034702959705554239490569641788670482499195894328539512859649966897072058396142789730143416146211025052123035764673417268531933158565338812167586644204959087832526679343584056646631173880552279675308339244459969765140003959897076648789511914987226395149258931195480936206162191831050442018907714325943009294614967517616874484581131661784110463192337981442193557270107030203319095333579261542588128305033588493430327523110312684657191753909273844727190219506240839802798343920739137522075367140239702402953795801695078527548041371729240863231051699597907354803583612639039378038790299541783525627533315061338829128274842412525184501318799627815061698683251162421053184835498156812038962030025396205791216305457612246421391606116856760828227923850727092462574738752162470898815524550629841522987763767472601963450622109730350801835765851735477458945942220203825315804453661671681733675941685391951689118738025701494235986078959166991045319206971879496561926207286575034181181704747544349819409334951367624631010733810675992820708801757050035723209038000072274940177078724938567363190082414027952468039176884072252900876859939953130590884874536773044617561107865660246578036787268931987823090037632957894906617681303358069402238107416432951444801761787900278458751875327303092278483830634515037104449189661575130035849837805141105476621998997719095457763378668779242189714810166216233003758716917114741117246017565281051287095820900304758353838306153718330822910698262204680563892978785995872892392647837867430561589276077075625806393525484435034276718707083652310125874386038152168671185103324085094212172562466651464121522150197538323174092298228401699054246176235373163344921567106556380773174218743368772781378762996081150034640943841440190154798403620601231862304114044901393071014678376128208071035062656842809790391341040268029086019964744873790519001889863694212842600660330730359052399373625441040743902337476493717534025061930357177653669959632954212319117028763807986948474955801057280085664478728865371407194161757981776989748327084698578493834898797121803313693910606361262326910890648641420109842224339962648619261860507553568045739594641061892537163471213702977788799267001213213845913148189691266210912074038648901223459611203522867315879593492916160196377130842663580921632070037040546215080954126510434037109576602314751388381750086089985712319523461464833528699088702551584370265075166792156634492153575169249774867673662552903487419041128679988883892694817196476123389852226205679918509069466773201367682610068744210972279593743090366947620676205351179149881216358288593398780894427210631756654349832667550744363624696609703337100193440112796246943920337672575530734573480712500412394479296084464363504761917562291610082333032167663372219717562476639955932247286059017439412640293520744682482650214948364850269137835726361493173416375017591130128611738804893752449088333124230957271504010593490909868207454084981994788719711403557782103506515550334176677411310095385317576527466876400896957351576593196842935288662013467568361664176295186235625438604274665073775490711777272876107100049692238918332954207118558178341258167158891783442442546721246401137351774636427810980729490584841189959804594716459015082132325934580280819788346351472169336458462275785884924276226230052331959195717757181676061514732894235029035013623386192358994490080137038165511383726098570045576383095996315438503498598998382895911802686875809970276371855845329384796106851795053716123861830304865771526861342353302355114760289710949822783304855092499704811689622651429944806773151781731918058344725510796777123668912828738029654939228434833595796469523336120837075762993100798937335521796700999931318707719622505015393687245438284455710616522534034328889106075444456709329587520433812351618771544590558255829515691218959360530580253683062726845974228692961516452762118658175935401271376175468992197405026652117583110110539142646470744277746820160445292332616967227225468619061246306223550769668331174466010518242095378512497194284442010033617896105638209308919906111787826303778250915378182110532436599044653492205688156210175765364004538950684550323280915760287515410615982725967618914904711353991432820728289408656090347284776327357873711969781089741548558080507839506509267991017453698667317294033143728472191758979530625437495026411333297332546163621996007090867015429703853187432357774181715686006634423708434060000524125564928146746571501725510027406167980734039641503351771480927555772355861513309581994647525470888102792090859282397337901024956425871314368517234003323601274729257373263164276637797205110042101485839121217565752615669616568113308513799632983551622089987032786381505204503575159480389802744906947760340427511589299315951831930066146502152314527511116788842552595602663574011439521861032906277216008050794264095529977748886473847701314824197038152718485192668959847991070105056613129456891170038520590826157015364624091558310487683581020968469431012511688899399312965524190760592293404102112398409108158259988869690315436264145381707496751695960160843651928169650467857836430252494626387098653801269028760071694176257696483518836026776209648039565783892917768674550296069649119785279896121779731600909409758958171992494575971339410312664280114300475562113663803818921015015160801532483482257211793949925176078040172462815214757391718413726935531298098683190550138105071760468322494195657640048783682911270259076095075190519320417087532915149094122183583398289082655427595812057565273260237910612651564622373250872167290776452515058039064658336412811528481894365562014860540933715481770864910489892192098237653475838703220939070787092746197446341777432399129927033322057504779174235333180963994042872120101004699236320097248324017585181758777289261164975839735689432542451483995884410495983451108374286777929628662406219920261761159857981638728498054538471481286040806612294346711523690163503118453590293169182307174241494241937405540369871721717379979627282380458987658266952531171125984019084201718994937864840290889138763970084918226499702489665705758937837960406277030355544559459904337603687764155686146925341127870857952013704896812714077546237370421994996070693093324686123710295237032596200369372910486771191205539750587229913166625890908467254653723557503266463924469555114193243252260991648514760013741989897744517694452709808913888042731766201413051467801887763268849593883094049251417085365467097590578157059231244753174521129752261251003563875503679581709115155933299717095101849064807055073931048185259016946742868864916106337952628421397083241054609764197115673129028812464544317310491543646011597775364080169826045763628774575505488884826018004951213049831395437463797480128643280165355134606307058692689590438253720090504217996622229415842472249622901186372937896109440788637952370961145752829053074365264742158454573056339780182206430159948121292234716314056809838011502037355729768655763251687996915249262571864688646134937329766664759909965226227848266159500148850245990280314158443547087427700742521668646911718602820711277445907834258657247551182421254121227107120564902389125009023943081950690039881318991813153275506681916845836828007051528465901773887801280736018618749909075147367641545844632237687325587293719997876223381661108713931473100796240251392582798918256611517680109730122035107660945901396912498732619682164273227865655085425719041933162180048720318494321939544130444383270018917547346976455708505317722493256649392422290187021569054213643993868408547764720514161128437334189349413367495414170666705852737764638236540948173091431649419677262926900541133505466640826925104009169417983883381954431018343606953046793119819138097932191016227312071024404264003822545642083287081392558126404297961887082409108373441911170877309059300516768946497312987376878490302541901032878493790040973169270026135198507136016191676167161638475352276231804450920540704418659934957843799158547627992541965755435217171277301126193933550348891312538320341275090645232624432001372077769451157258687599616730513665838134951024571353056517561802998116043483899852314217186114523040465958064309470665296343379263530206433565784449111713706473885116008301259016161764301339163866073369231593723163269993960390173269065773940285630683063361758411729355653962916589100418923571057310010957680877726902334336079894891314400047682087821278868361817494852406686120358043876071325121869428566186767831222256838085792315959421663406045705618818221489058344188939316582343134673179882851760044536292662462675037485853353778895666678274349535897541239768983590537214627852815449305290000687125756505795656159631320822026896628225844540657210211534776482571657114248119722361063433940100151485270321454546841530327390630243480596728320532599804336294502696998164620445006727078252695696673780854636417949934850379446813666163098143009818282953095032568948119064184989734498916073897352443296537863887731804383998464997986690367695254184955805868667044379542358677472361423093029419163967234860191281375270010317312726113768445112576367105439136273074176106856905344853268725480175368633272459724881759652399749306790373355649511793551752840747595675736212503941915963098622853267819350290812245747754869117040432988716181590027263909315045595206913429179557783337711092622014937329748863211382158767110946755164545251845595114381932075425986829971783054335425682211402363919898939997049073005009214676497444201012518516948323651201140755371494788209817507179541105269673963932386003558553557379939351764483353957829208804419462714261290271524166502666371318972187938651558286753172198001371701975752786664369931211598639651888481848586568252657689058466903588092919361194071249044815699176744848544033515229483216780505086628599483414216586305352350507850275128282191930707436664035691517194737697622463167137033137411481983886257219219738234767794114530056440810857985958444449406058694273606630918777889716881485049853276574968685218685942606328814046963266995602312973809523656623596868303279885729386061899288251693440477796016714906109898420826027895440292865839847543224434159008722495830870559438703504637061193747482436965944881115154866822683501018716501592211309218496535058768291303749603812310399855356403242554517144781014764381787712655082774508222135255883922491486744849437731709629745400971030653113043837797841830242029200299931114595046548981834410568460069831531536404128090661125819569394575933243690665409739266058484183533010718983748827861086880193019009152364905224169227290273933868288759764911729558771964683898710072068341720258990337975091319904199616209376960419026454454552069028185380399146303822693892161255931954846421486570737317357393647738600423854541460035104061272660981714753229013103894441667790344982118880692342689240645381223762293198234079553633301898206478620852287656146308469116693747910641317400420938614392734056760084767001772751281464350969355617501721626832721259642618703265373467222372666215664198060451001777929894532561669168173713037242979003790009193868363901334664581871607846713378274507605826696382127421148651813307322554160838251925003016108996123870090316993713996971118169602470074293733849857127257325188378763959591146580223171847756138047707177164071081629304151338797351183618698310540418261533199882702661989810518964731627904960403316936373663324981338157752944315557465732465188090965947466149407681115912315459628349082996152454796638028759991252959675768179209054265022021390877566581275817129578834986415941409930911079050065933266658018403453640012226012373873072579089802070367507895242625323603612958726805375318007986442461312589576250878849353096387567134060548373592439145823124365918714006698750062680498347309217911067253896311025510799255727191763856693352023367992777323171781549839896979742426074316554200189697897765769811927500531920159351543679328495147548516884367101286330228389492076905739916074767424810151699140114316335208758461142542737505372674511727962151701026118363143066465673478760943102159333716092394517884098904807564259107789026607238146853629434882177527176501959975258267347378508369959827125158945748053334969277963953476756527593421122039230038283232328760450773902842124132828976275075164078139352291769445641381974306519256016297669875494628216463642504864268344386709360066420114552960804446328273033620725586856063184303121072331637760824578912672017843207803948304752080189101106916020677391655790601699248572371364336932982544252714456929785178669393936314702000388840721327322280897418509669969272573053955802633122361112217877239805754026474814871053911134968608895061048380202762937383385766520461473842200449231893559997419150453929714221490573093674915204543498212684939574977159158146558549357888963459087785701193603941511070531134805926841255575422029367917240601423091957429472317803889217425296425140656612321395322476331623212950929781795409744915200921120284548133022652481182152760996200758443173271581089989181270083112489727432657353737289259774852305705964864970889696063516557355958469365763496506921916573492386225976774666256976224817840802038980695682832711258209589455763056803837850255705065447791095642042413705504537711068898538484208595629259893126028751674027864442736278395881209720871869065583365592177959121313647452596180814345165368665209869676877258024608295865812978426116927556562310954531005657889803183460888557240301603025493772599998156454277690187718815654797851166606323478606251791950551710646263804783470504663498807622273603287125128162224022861742746282519630948420955573652254625398262151656502372066421247227306008412532955006578116180503259089859314131488674363992226827858127946939500652813345222812966804477449839869573157150910265401358754751671618990003887675970975887164470048659985679262247899686065178702540763480731416050940944685903216458500393953397057626727956074364902472824365777903964230735917147202066864006555318087065611314150845316626350617949372733871736324929976040632970007363402467361130246241084026061506365186086246912340343386712284821639697706943420748512977372733317936358098966557457668751363182310534464191990763483814670938701485813220668968668333095204670090163948990521462304749089711318778528672491146933265286551942231435108581483863664273015713673471811690729972396976812258046457994968981001794626005643589462640104312162238891626552811187578378371785381697919609601113061291378152682013754621220586285364320032460508098973610551412195722812938819078790605915642261997528944429529492306758992112220594707665563827453861984961904773087982242726557444843183897541082090466877213553821779162800852981573380549859898857927529325166295653684112496780358824957064913446820974048962500320883236748346608064223128483623161443100081456568485736099992690830720645147173809387671633323017830482214199024286273117036929782677751108233818487255625088090075696772496177233876602107496168544815274703756506573785666514376349592836003072248006140987208166076990908473166643781013487651702540418969016072377473659167729642083707723145811729596969063822642041317687038022451149967139344267044799819716119560480405493328891100413597232048070224731740011732897966741852261865966503317913465728684297053104334277947741010386860665067295095664676473848084114852293534995870901015784752345303011014454645955533714083770875948839066142091484300922815338315703950463034546308506751043017316161829085330012274136012789261453745578307419986915381698038124942583745685129889410238434190293884796426206502826534666840327193824701104179906941264867575013884446639508163912069252812270579223374087326843966885217114687577153169301553477945193402759095429581678429868424981604749160899878846926724283060536324335075157819489008735651577495500003739446520560248719855899399724761959254583075924204857887517813546764472846691387599206737342584883376113636796470836687946698755809714792538188715656515552890484708945768135124412802431771552187940559304029671911765320898114513664230308960345178103735875661090058237409342881221365659357589735149794055412004069935446106202276541986427055688035979094197515615497206400848840484086856856081690852586547834517208089020922378496590681003760057868249540036057568734379144252830276806956843027290329718592675943835946795902582586339479563336568343795030001044534338010814304932652666663426310422972204456052255458893290357546814477665443815421931760326864368206778759284228619925062876837821424074546182995108059895016620460012020220867972801810593050880657031990307369907238804858568242350859595009181476727205374688016297184136014088165040485314889446611748384008085422943939165422765044141645641090473471751315432486818133491284737855666014832483353573436495919264725436547654030430859602148396870235848708588582818714179674399924299888618585851098736882251780601809018844788746342188356989967959533055426335924450438123247620226651031555830795913527191570671275296181356809076287057412918284080291074801952427070971895358057648838867652972282301578791361647315185472402666761270700590491521995956041265442434424542247705297972573094673242759812559193496905420770093195652915111660199210774969776449631447925893491025749795869023218792378589860326266464619113036809548391380821794015756686594927251623913063292286617549791920881883683097595712037065224451091996585873553237191400548669522335793180744936698927035812208765442474016486050992128726132775869352333147459836972953810989283382935898950218153601313079564926036877421267122270496523043725252150223503301260713960390271518932634619199048392936654073399359466695037205699334756093122683541074689211608416256220024272964072753354677293877393410985717098553269247637611619072483224767475791487165236488651796206966982358855905697262415709307139306283575806410062936650042879258931353297070441918563685292731401015464170415715232587827144259535948283353409456440839356179311296942771460587341913555110438490217385277846826989727635153365873623722239607486782022835809227921693748083319650536549193296264041178974305290558717004369519201623056676200387654703593611179492746097632234615597085360129308791755440882745969944034623625113002198503835118083822643320442081761988804933986082770376318224748405827082962251094666852984096686595806913736006010213815165859052902077503288423437421389530584597534854276035913727731932658433645118715106793882247869371389461652405253332803482621361476429946547202829760620721240034679430573125857078559982067338147185724783855897349211337402963970060650270220242286736341607895202778802298502187555090692341656116542293988056583910767287712339288441843285383866606653648472924042582565772104177085451313323877800306181600917093814024794637191593590780609553112404517506817749148270668664971034354125998073922578339796566213359920796466790501527644642958347270428931506476688019105673074741929392217036556719112962569363532472404801860159581379005176016432582332818718381759111860857004473390549752909128239333673139720186268944367049482448731725180304640565933386816189800018895279277843807613975679576393505718337139387526966166984565561035209479258395981628517813438395874303486568700840865606602885586460412940588380015909726341646042483918009914908887216451115728131326146429625683280789463327653897633778389973599839710652326321769114779507889700653947003682837502462273607301971809425331347545487209441169766296255627447279825840675274900956138162048494738087474700113382274595895063430472222689608716145459994895150117009386883743287547945368980521015391588788980690568601458864498321985981645089652846007519179932711435356143445192166161984380654739710260394275943929550813700806780688693370439057516193707610521453218826621700078632518350369575801729364020943102148526470652535650196094418128051632525496630869702934995468244135409855130753226214710842280564962611576013095792068413914260240076386966541456603812310043806904462517235992720030830610383115035603160747777839741992843566109096594323335168492770747732099358958720106448503729526970079196485721408283744257899772896203421084886020195100873554466864994158634177364605770139324029715289906851608261238791211220456075982700212562826458405293765594129777012550914332173146643881642238217308823597245453310961919896291780395608122352986183734104284613178945933202848694252316363297089882718047215162212015841884989715442714835924999563579167916339120755388941218386605973979220301716387260038130078779220956519327907352287370006369415405292415494239522879838035021112921758829816055668094952271819335576714784124441738155070136718460907770565370012710186422145948037481413387209181930677906720783459423073158289866248899783273288074313416013217779758463948552070021106111300317481351991347334092377549847374911208212501911929321066241528007871989601059827590488827099068970456658816477727712791540409008546927065153302165047307340072140857678170409337958833333247103392956985608913893663842142253642980116413127699534311037886182991262795985197831122956434505080630580217141819779864726811888432850125574410145757138974121978008651748777402260819730778611009332973020917406524365754345626679779239144151157923521917835520873350374078890442366192649029090072436703611187066510796015398880958218303749946320623735366034053584455531369234052414557105991154374550719136281434588712062991922421132007846863171719977314233086627797545136238099559415354768933956705047419168606136601794741407333074225308971520897439300496085470046123358114357854717351287051265804976900780261423396809595302788090252551766002729106698038181313854208939128986026544511432532812292201839060093246995180818337950321384996102742528567872082240781039185047805135960326289203625044463490102868246829125613675392813524318349534710480621037768875867571973963899023513353767816441097169652502833271480564347051973281421465146302223174730134108773747723166616583507092916665117827467287224627959288070610807205317298940339378675908710437531592478672542409151785073506233619026675032910148382794017904118867738276777360800835473845439384380385401078803654798851241471026320136407472602718357201382609275543269466203228766071925897008750298215427984523274823439379337319691807885848025819480341877587876482272771479108250983276516048882204825110027982087389172436784545818370722818379153196988142982428176164043953959432891479044714326604712827257581376088479091782373463386221780083520611127814957666574613452663816751978281735241785391785665387412815927911636139775478737541436663516956839082184824502934088367475107308812940686222118590493717244196576730187000057304052009705756819327416240208062180879464951005845088488678563225642306188813845784732852473632927140438110135293859347539582926052677254481999381596526659994233679594924892309187442529140522231432811146049450672800660131922370108657505290652799031350315309441064696306248422035697679452857668813380516824158962309656671510955552360091262851019505484311818097807815725125903335115704883943838407856088565047408125057622344695595679778370153158066641738809333058315178159946942939403078652468797045310436023055001956824902862922782900342233198771211987001037377939233343645581436387043379845255118692773148890119440269064129658867343064724116262741910139755899137194361227813367374855278579615155082579371878936019899201579894837384940472655246098409945651980647473398839664846372403987758442193048934131969194077780483416589188375703876568342772982100537864531028140257359362160347184419032566559975568175069767963354911271724639758224487224048974206447743579128523858516878175512422113242092669381598306179827457422902453654445198365506428322675144570145145290774309030686290483760417894200361483637484341788281313103192719181476727317142352299725235178152828822840175080349670576083864371408799679733192556810716073926120070527690055138704049598179863020337113335176633735014430617996463656582151839094363304773152024829741711766271796706262332175041554508742619917092705170288728212265760231271825483867004130772951627411507919086356156690758010115351006073863316902006208475163745769796246712854437996227960445988121365886581739980924201489612089869389918112533030600712110580727937608000486460555457951968808334854252829947810586736567044301729868107510558028952560939577215220848622755968659980232844726666609205003987995582882660074035096083244574363474137345031978944057533685656631875183587369594641231414205155252382670808762799783588059902488047084599967092376210392990747925504867844622359759803138306810949034730692805446221766283317165480978079736003918966083896061096710197924204268743465306711498342669538500364947789312322393410770375232506551975063667543933836045481589206546562268326264677138480007266679931164898917031777378473999032376633884041420596662910398951393281489308743656483475330506522629263717213302828592828269606876302144036747751629507472053509171116785771792713544939314186773537363219183360166999536526344523516801575829357435981399469423728624417671040865912901305119404320429142834259608734258992965940439073388832928573805827257343147663426804355028887621616006104702471734727194607587355688290086855456800100736484663958802770136532173048183902991993631163188334646520104924182565155341039390647562253714442079377718949237729416440152002495879885147955926863618280945924398399497283017616568822619365884687976632017577574455774442211062894192945523713514514224714898057747491963690879282988805611023224927667724925999866693491549985725528598309641930782276717275889564322652280149126754737719900266752763421743446100516502390076680748079604719527349220255542511633352334418239065997401711493708132098581592692441499489725474972176126507402143595663350944670788233408503294897468795504715949892582756150822082359092240160696579121073209421781983934167811765069115079551233115202147715955301014885351744756918215189873980045545634634717123608313053143847775971671586269624576363622581607429967272976120202261235641542853652909751426504602916092898206283494191727295118990211276459796552987532125812909567573735365163825157769841760863815095105287354114975175080200624247327642859351538464886805410857058997492040711485463764102672935831563159609790775321751943618548132449045172399818988283910497650988232308052780628062772433191264031247100138775915091448385066370263187283574585791682113380461651558156627540313985897687050557510003856194585551979954802082668859208738643237675563360473212876338290224865001973143944716006776930830665256182806762024941453328911495018202079640731062904829885501623134223826234459774493229685569555499004926653315632042091100514317266790132898671734573352611519086272388075807217739317062783233952753075967847587284641939859309758641368204813417190821677558772186607426144085420209225044078126434349911937336712669403668000887812503729551117284703092324523801990033553135839473387073088872347040015284262225663678757369169800055179489055550859496288471627627005721071263441110870306661515440757121353442018095723374813496800945549220989288119714977180416846340522538442238837925491073091538165278575097454501088267392929143803294208392260586475035174429947976208495107184609220702169264552722182576164119385025924888025555290635878713311362086515115180516856021155520417713364160310710983645228925424732235221879883373432501275617769076944201776319419145275578712411475123226250218083081110302573932487378457637150771676351029369287191137878156482930762811244969537769863807129330306612237042356278399251836155593611420483307173332512402637019255378973640288886713899725633792757119771965869711307794351894951843312313699713471948669679391458161248655190025512901902184502743680644807499283199678592104799616248450757784040170839032597015349904309752382153282138390643046538081147037675912633552015330204812116569415662071352274105251048228086389790620752583218593598349365837601207156931360937147778645236240381982570416075814814070657378779904924149357885635911070162254452523615826616089097342911648938931421605199415187084187149466389647953004440515252817083682699549345918538367730749495171488414853677288515337044097984941313576310001811448366494039032389733024209949636103674779955810223509920151152407831452083026949628788351906971040256294196365702266185707396612309341250633295584191371228619566769823916082035109719987958346407218895060580621532630719943385767420693008204965370125950923241131021367003137826333020201608640541759366098450513800640677412722814751421267549889575940469257652352231220344661336335887204113298832000479419408737629517223666187442659051204050095883325353487956207653240623353856039603976402669549863397965471998317343932549437121078323541663132303273779232794209228992183945279831305680746313491374816301506648882770776898006883557868619377907925312526430861631893706082149049738136767229676699616087679594815049438694705037786074354184787233022086662235441777606894520227003527781898826841098510677521430499107568791797999896829112924213936021257273992267505113514750802074496609745697205508152839834938382780155301252949083885918192540630402261098320989914681777920235231260946039694162109491322791733583199778499513696364770941773281931523675905197328879149843191166807742409254163709858592047630650136844885811369555140131068791999306655829991159284308787458631852486765724310212136512011702256881738249387032383973920358805441119339668584132663320318998236417529207962825695952274683583163081775163192282259180074100909101043912201637196474775944618828732991008835892273157931773395940572594911148628592339401642201298338995396572926964684086809929518100875943828821050224811444880997958181270396538985845168089680580093399837666105633768416055210178030362126360968472107290218319183517093968366087927182621206966251959056700728687716803436672773584836823422598207662458245940584852996627516710036616202605759445492071018908727109601808986473494538162583538098970396079851351240369838275565925121371250204495824427857692749229135865028069537598743133661550463805717647561187498665780865377005525030782909989727565401678080212681340100501975079935959730145270160720788573380723719761678338596255027825135591317982567135907493232255598320019875864256399251009925555842383590944949860335882694096279065416263121868247889351915408431342067233186595427357409911147275936697759924603041614449957087622318688429803266977191710226936378032479801747665319623171127719945087813327179051048046994987396978535468153384062707922613560450537632327784618474329660327158630886078997809113373434519642298902959842213095056071834311617540722227898892330025653954736734324677778896845612910593688185977684136861737173438310749099902359917073366073964374898059516151378367103223079642769371864510275295983196882045279702421598200112589311887365298016582200577566480456058336872276965468197777751371541570174653885931014285388318143533327947192886991851370708533875958719372262794056397177184212368171850535039002072306424607071109680806291505177215748125485986173303941941362912953222233979069638449823181336862782165818935662958005458690716303021004362038477971921410549750705033629636685617380038193839483631451050835753392269314477548988938401101805445591866965827760564493818949765538291272360681769357688677250575306487386137216100885112294515576024410492929030455666825479640207343100448768413716035836037831795702030209386584106931660382399250267943666632735000972995602004972663760604899015481159872108363468712521790006474213041851689086259079790234313728615062486767684176013179949890308408037850080475513656826175154353192607834347435987929182663965066437641939469853602787350215624077226218145071222024311350778003732103872187101267387825594582402463152140783664530801777614827073483010585683933040987321757261259675459996380231794373521695743862984341510633248146558180836335235474551538974275056242551501296538200815141331230361007520399046338251081338096585025070939902724834465882876790322052074195329142195859706182283384393738493444346417320244064153866079857283345075051953302265088094069137073926020916595437354584658390622302987395769587293106129034011211706723066450001018651898195265193047895528076756292657329052130061805421996283051938698002599403952642118362419319073233300248418417709661809212838487037425284721447698695643548511771782886924013609742542230193096993207448895628929985047011795556486648512018438782315014948819952043395588586175969448594912703010415082388131982155284068204052103506626505771017614325793972468139482636624880855076710498638690832842343662454120714444238883091472929112939282846562988932093635220401816694338039302952401144714492112989584327317652609691514307773475353451110867416467628699522226099239021520761395340187270358364460880452655156589124323582507211216693651892323894025149751981173270080312174305836796102667735140817731485197789734042926356582638303505385673708985176044914856408988557454050288935642414522331957342010686845320153721312906584327830751271450113133516432718085016487074958571974983297671279326752770872467318366611608850934524455230927605223138366178870376667255734539516222857455323245260425344431978696630670156776324872411748064581153324761484313761419971669566255855625167583215188325066512780440032967714327476532349593540990631049659923491601531417324342676124525058497431623130408385183318972542061670628081139261560895761022059915175286937110974027906331371242719357258257917859844917379612769760036390575929013029444922326026630103031857891283631267861011430332153244876666997711310866589175793592212051570968668765748174075394570453419227274184430534691102912245684646324089446288164214456452013149752004493431532816618115957703824514862561306631524160794103756588798127183053851388324897867276036159686818973800690447241223208476759225888084688911039210531222830145895864810435926787942182586827822265587071622836233828804599463815597844801975721807689643303591588308192422953503401487558392927256938383788151089274282205929662576504880926855241470368910140344758767786069170112403115275214860616006292917561874725606960122542739843141704513561099176968996375647998888683005395713607087545040179148196515166950318477716904148783506266388964485007605803323988036412783535495594319300574550719186563173514853826380116600335162279634980404216788111341821089840472883365154206245987869557715223828238856950425242870358549728011149796520375556213020374828999724943460083820232090931662503021816704469984344183891392342752373660333435323778629166108939308163873950602310272074867910044703298045955379478577424158722790100318024042910496296308700819988287147898339227285690013913763001100035411822860331292345889267001868106964477424710613941173278537575011061825856745783582167672837017769199907313037874001820445144620694992168624336345417996376430558883957140996349928058405870688062851838025591877100764098291346759418972086455942044618649531676565519411981227397473586430461474500812220068632206632706568712726297005660647765241397695050801725646970279710278678156024438066766703235957807691688798500769027401345893265213684287402435222090830846831364296882610424559724131833364701419021526231043706175162318513546435922904383532383278242250473883772217285626236107939160558347490371224702381231303647250138588127413921263293192365288049702399480894183117331781704311018261687104795701752682525579305379925089415152381363653544106300350959946964748179844440153740033244044243953274793126709581259958480253537278358127856563317333964878941139735648708864417352990193019534533277076750329610875630091508038917829432578565002031000721830119463949163857894141525262232637653760944174701657304407425662954832722509135627687387613115380672022921966340469781460296824373947350679950412306754126042168112106727050213460233146792671605728993714040101811958073254292013928820294741815475180317398085166969328365222286962544660905595922967201893937183027257580776343890806842221291145312371784015449012160997276006867732299548456369239497692093850554184473387138033705038669965787818847822584417493353069055817769706029230502281477264192803965645632599338271141616543743955979538736541336547330051788321223018360860752115030094360759225974288489495452152308711326055954178680596642651704279439435776210933857961675254140772643001657004731606334898201289926556833508433268887823525977958807751468994022532465213370328759528563788180192950061163832720271981660576336575292217008409827142545608256011139985809636250172597398352071138505477494077072950984744291398516346883307377735247787788718702005275451607125874534352452496822507096057440135716423505651694214499292935308426734449354933462358304919101419171634021550283514449098277533500435529550410708363428505605915977405983839948235205374043674745018859086335550137155332187234719322199682904572158724558754366966494600950710754729835188197830365559587237541936880354883265448951528841069839327027667160458561915473426788569428447754504060341043374659325270009577402665424134908071573105946456731667790548486853411342719470906357813594567053434072199159632042949965550616305735277688397033256828871863911329134242984378392722529267777155277372711697384809195435079897301179790715581917880600493609241262207081890849483389064283603998460790238286624196801854729443799901646050468669242829719655845986798151626159353339423915814363036568777920752154285516603866842107856091565219770712366171892529480815484242829923880546282362113047329694689453334315411394782244865388569277104797221705262831729476899903635550344215105002719072892850219038825850309936110324418391528544935022342019778627141860316439139236576613910588840775579595860354438144877683872600078911198839444933680158504327897964958425592702314070517162409074960540553554712893918198754734356129735955166946565057612464598451894985665111756101309059982752794971683945090410790422685957173572778947860038756527398920037806353303428190709579318458921074620275457644179978168365237333534125451407403488178376187023399802854852844203371698916916382763209282776036175847068001526794517020019404330765180097932539768727497019180515160059763929823487137060261504195171523403321811799498809954752457087250645255238653046549946408400008461207259855999705873016447519429611436477860805274606940749641719371471936349060855530492026749166161325922102309316786028452034597569418880998046604989471578335074939316347970846481899358481323253925516241631541803811314229998062922063607947973281264957886776229113744533147193730240306010546894634686651819339152601507416803732227714966075464888618634796198461188524812382904639727146759691675271807296823590215500486126810674558849843229676182753819735179391749125922330107475971341595106067436113080684087229129822106459846187332572147509386282369612939243019126108860965034276404654221355760751052929910748511427065972536841842913361098429131916667100162691759071142015982356247476656021491265686310348707783694048008093489996813367917954683054920162092778937446460274515201343536696143190082453069773475968803664492944575605676192093628857115701947122078864609476464767006712184605159160090789197497997471132256248532787723792040207310886001249319413800511465282109763117796575564421634856996553046631719381273065425568832753956782109657016923744272009873941721803117419531479940411381708686199187655973882754892990213288467616289427934139880163274245435927757550994014563644102204277339778867731810298630045745773946737646330123059625059801403345284962169963982757410999558223722832666474873663846652240245173688910457643140705074919591816059390196394313113095114801662747425452594799253313276982837387476594815599754106081358610229424004307938548314252349546232510582910105163703034369418125862220603645047560404145473759941777731996122363786352751385642321568718201501380199138125393387449434831650322911664622851887680211544611544973002349069479320230626366393286698027748217053299269777550513447622575329720642451575312420326072260280696928773692452244222834058619623389054852950552161964115000319303537658113907820481823782415555014711308284786919929506196857022171307528950926508535699571375330373324421939768860595932849510794006427740360845666779239588079559019152382471592177389880208517184387615186938400002900379909402374861759710063053152819074972651114368387020789227468401639848978158429586058383136921452237787871297542239591436796310056424085082890564591037406488595915352460603161349267908966821992503141316719458630575153241369552100093432593842390869769228839198409372813526052729874269662670475304700046709474971717160806168277714953492625795786584466525528395143164534714540369696229159622374013991682511683939387022446038950925820395895586892803764847051679943485493205645822033385887417123621322101068393102882194193998613575019951933816337870118155631203802848312094924696975143554781777869186032272078197929848287847272936583321708076442841298814412109329075524783963412008267606756979744154262868261911173800697468238753405676606211485927429171558458317492895085962955884702256051889284588316762083108875501233624251458325710406448263161942571101984228423004409561263662189077774377790909424213643655658332886977674949542690027409315021440170612593362134513322566558750586789223000087235591412016916240386494208469469169387831419072581910655530888666080054093186737144843190128885867709675374704851758525492625061213066738733674710341236005312933879883815344512950290833065139942418290309531329297769396329618627987264550957791695040102476086117605368997360596801749427689764571931534477328901437447925247469514113695124617934172386526253050924256054043628232115235960408501006586285114176072137015938840500504243391855408605794816415430774766999408236661790854707636332284057632892218723248169154603793918255366629291114117322651656223110755704772383380496049169361368510693879769273609170899851577646210895396358221583018384941350003013569351633850424469005261859880916403155815187879016362596523483153915445860271559278599809724233899998631773994738300338161487622290596485052953517511237815010730439662947039297685753298076159398050798253464883132169623801187041482161802265481001895807775962445051745353962692724894293632540644116354080022297882864169066680266466886638950840919739616069492296512230581022531382092109065903535519095049743046851630060747321451709265751196290468446904821682640242496663371194219753622397021136164355551728928214791172131496138669109788283607289091560277148496370121115788154894723107647089414316962085215120938564971835160629358379648373968709300372807805176097236756931965692962451863467258356061338134538096653776756412093293422353332148895962067130078888878607347622022656385694210197366931409082985826153887067103826188273780941651618969996594192104278172903219472884244538528047447700469529815488872298045226606831820916760599599972680425986920681265781082873704691220597749229759649265193851535760183159779785648778715958558699942773218051123579143537646773022472648369237607985345453704164525107794455802740354499242865981655643023670907479710116817221489624799239819554916014204737345435527051438969595888137283688634072334777729085694343352884678408760435528382990122522141144332760612336901717335664528746476237210512248831484391315324137115433090309768026575791875305206959847653605625803836360571686334240344083886311942655022121253929131676402510344774733801057864230586221718733202253533806397499126804914828169651724484493175167678758981386455442410072409083890488650374283362260119224100647554588563390470801098313464060095406826169417859450946617313013165406606862742980839934415316920989107503879523400750965843756361288736514352397157554184034802551904918102299327781536428554444358053143209660065528256727346137768094497981302310606392494514149954665782828253524443983094438256381774044551192377420818821957236305405019186204238916333577129937209575726780160974801827899403437944758363286993441701616066963574206362925449232655405729938158561251961346492468754901260978928323379258397559878965675705395551219124252570343674202818116274989299798476429041559331429725501579669585828773896532152749760483396618728242039018038419444519343666919974027340711647226123556349908614438614949678431634114751964045069605368272262099299491444113548060919574110948447961992901450930622686106053779942972653252871982123289806149152623942457885328032819340375437298386615127941778581525177583886225244234357097067106248260098756189106370193473082328733754675814915317346264642747293329201033193569959199721049051069485131253434016283300804111369962783222631911047123199178669568461457638349915276054328864863756455564711145950549816565845800837785959306746085755794947870754895650417832064261891361697729539573585341301940744356035270350747873830953646766452811521960384253237377421618798273617133988064488496293742902921958935316092443977416975376714330294120732944961044786604790002931106880649261853697624882694992861844575963323591983164871011380429885866670030891198227246046345753698938610525590277316272433283730969680338338717068081260719404498106803010691252803010599197899722292104923682349433542469182048208927547102659697090120147721282811592770346636684363523164175842952714184129301172395289286168065447298556146215337022406151338133387946269407106553393870390500601860237761106011274504973244432715140321771135193322995616688221687309532125244196639651222679316738989759274158984391205323637405947038818135747595458924754675976729918167957465425596011872396436557488929809296379058286716948893928032832714819640244585984820755188172289010797793872550262296270960108580640614526529770407191842124255317326625116435014748605192231969938932859227604601797321586302551353090083658428731730784432095068915649328787661322003316150372166911470988165675768855161776626382894104489314507709787528366499872286929590211933168560114332370876460416094509807307927197981017766410429457127872576748982034077011701952618252868044547923992572817482309225714947604217005022013001693222327607507982869833565474688758985396075122486046071241330321913695159662786304875357621979253596416151524044298910580831591684040075113083758967816473087752909086813294465953948427420442735909134714140788131714843577065648726969374755551530257541935375534047654848242918272208746673504626893906684224175674386545393308494450980088252125249922430605580662635166672229070135661753992279213776121001785763852665914096613032024274134910984427318223943352236315675719205984385085177651011237534113107481215820069508174491539798365763394682375478995319569775867796784881502951707481904769540482100148172028567087134360583334154055587944358692277922234822781858269082830387975866895825939659424560970480014520191669909732805148891933827469402088823314304593539788582712595262931898791887067583447804108984797780813679642942493789740116782746587763227323616605446708873212787985787315440049409068016741129574582528188070438359673847392255647293273382583867765938948120926517187000697290657652208662862491621287421771961633587201552532338602934843332580993908491086676173689992362566809442248161586610477941797076949179547545997030787662470614775557262908230495415009166217633730445056441737414375422416210817927042754495149472686991826232084281539846618980568714195204993885541162483505030241718534804282153904911898423929651086563195571619759911328283694640420083703580203903394498761156419666166124721445185894225305897307837344760434110829912286506853872421001215662871221183979767429312145946167865505510844759728110126494322401188327972289806667146752756552572475348121864004645060820322139990367316617355783226521833504416003513211007735921601838733585161777588041928475386956689287547936434020658925036399047569637651681426844566363926135229322257833475413599608216251882278037786069983082993566966117453737128968145087294497149778238726901805080779393026023663078612183752287711383788124017810726048393565667314215314253794858721365127257375916618906050958700903186785256054583751608595160913243626990182238263209245778584357141030271890834427728200572382189674439861528039419213897591773202865603094612558984013604874530157737481810629885020483283348293916577829231627369471826112063803163738453671260406638621406829689415553168882175843902306338983088783904170941669797040223792526365923369064232054484319885658919616309172776008254169798262717253330929370259048163744662206262405394394464520370165047648672540218728170216219583831415249505125900530736141596829551303318374150156570216730245485985787948667936243899678810700403348168473813398268168901714241740157661210892100860993896461097721209398122877529984406960443394637363193224017506198591268275918777267036750836715525385501865593200346893252819715509304497671711554317948844027719616828456245783425867797196551085647798234728191232244090423736241253874271876688033272464685342950686833342386779215825091740330150943896298404691034596885765236132390657278390585478572978921650015854183670534987277292419655010261606545212100685565825530937087210442807841788254160938728858619242306233203212147794357694934619529642831695889454893433864719214042026269928539318413559213997131467120264827811749395421330548800735706694903666548521075733629413732467899552865860491774199531486849101485759518232376087199699253379788754186376851751869802746606181548053565800299915751822811622372321964977014053692891374942753921067575128661748959697755777031062316260449913937632288234111883727427472683941176984998136697244468947587549755576060166736361852775278444058292427950669941388792664508509161435457618191910926185565337180491377223103467893545669205127976216957354655033962029461372480032237496497308525200889696161387769546757372135059949500080430705599857063763304375316065973551949973392252020383296647299633299555627267230917933791539163068587492840140313489780956039072377916844458890056827665643121079341882081115013273500446874737415799245374519093083526169935634867098803077889396380421811323173008863120704257568354416047674928215855192680252078908574574331914025216624062369717068534740370617797597569761592290351805321443328781251978688318039239734474093133884687766757967841323946692322674547758807369284227249359728539567920571352450754323405778786999544166907554625915332796412208834350710385206770990695589372864132776115537339641310390932526415258785294889681298000135961659340514741094505990346248195929665030070218962175075195884913996569105041837693288370621637524793736138705074854353536253551850046354267131060778458083780428223087279030756918230365819058729492775610757091767292298702672192478566545468949071395423686056175395424809006687629363493166734587862050685636632719261511604980969619993369344983472172710287504246884168484285249792512313027612910600526123698124306753339556467364133593177172227127367764872026914861151240292751003627961524846276159983033150004268269684804901734856256705441041044292563090933981424197582530739309463003922227366696526301282447135932073356713966513377932739059256732897439614428684567873822488432736828635873040005128432313193590395426465679180783147935652142343091682648414336640426598731774700114644597854939084517722510538833689584029375948034009837921171646801880499219955662622904747783927095638084263581098503280118968074564874917453664069190475190856287462272843032753463966445606438723491043960485198029111563168662131582081950495462188793707817720332348194836009721601077729951523927450656399524513085645681198010824086070123373924420256842136298297483226363769973275181179774043215770810603292253974117548189283323410343458556816155436593968077641469206086517520634851699676456335302887585061394292060178025855236371710938896695491222299472896261730072729210317946037375678109335625163248823078907303857290973812580416321585738733360980075103880996988868813215257242290311504512326912574365269113081903444129535577182775947618392440441673851570654938573568919607808040458852454576654115336315102964694005382414429215551441673006567904021036265577066584309815803306297729564910659320875233303097115524080751331413521500539418766251064531079681883183730752109217419412732979555907469581536346366049440325719969598015168809767361222837432075616026979799573969960286016496513180087190861047142609333614483939444372002487549704584181041678180691529035292031199798727289250866157647843481755224049760692736813936815752867753110044355843446426410915456598848225788227397072537129690803707017134817175552058531201057650549191927603449830094572673672890495886865659843661009306806629312734348143341198144515247282095159305026331003710282386215964524014649778043114113133054339876525457710414082329508087934528167154874395986207010555315433730791658527933081491618315651223237832181188246594401941186311821824550014991516209317990767329237442943128243978686086013023812421781717917480483304563825746689191784189075392731516905513188793746747348930387361490780506366751831822827181799544263067710302084154473856281704604201026960880601837862198850672173780175510175164869307709826891285332689530301524906476952754536069365095980423571205990745449951477204551247500908755337678914816001578127713319486440860184417989945338280420327737188548586146924799913842638475777929234738569595925861623241177515762107081782044818965090234429903275172940356975664706751108320967936790675696113954563353429663430224048512599216069595535211910906891138054044203187785089988010065826594078734824975385782964165159567324500630285009571197725601983874269723553786012319377886784315116511992889585825044341674686572962687258753475797542861307458993436674808781426831076598251211876889805628618749567240675127177619761877699955341094770230405461038216643037057714174944617057283930422570924120864599923276933561649690946460361580364923608901128803809356800390087060792800427502414401320144605796588445329629201976788022053474366389214196499640894922652566364147443564926617629245755892858753119386915722433832222761190855589783596013818574685394797159723816642997619421241164926801823874132115156265846378562790016880141587732136095064792557123086513132347668394670473370734736099271986303822660607732734172493654132715015959506527532667280075122547226791070876445249220777160141897086710149807187067252232144753532524316130634268145151453098583263903533712458056456435243449261646427225536811717522661940267465333671837630228738831052406815042871050586815895727659872303196333494566817363613964956047907759988376839917184806030276570087486802602621685956069714265791329974059940505880686545626090042587993874996722399987001458836691469945427684723289680499080382351983758454760283432194676152480951854598802780428087957638049915716774106514964048634877804596579633933202118448463101153759812702726528338460801550456852902458434934357610455415547856938495469205539245197133379547682953718525745585329069952047446956696849717559899795398802173115635789948486303251627639707418839545659958579371455098528323510150858599994395200152336638115436383998665896649800551560821420047269312575316357453074800818331235952293755770935400473067624110410560408856595250602839396660144711889277237748648091500279892470961564908538143996595747939317210312181571760591690817237250588754999299856722722761609437534692501803334531750141719325903078656437171236815815501730222687059678209024129558018314533572006927678894948718439096168431314163107946475180972827738225010518272537514618676467064685894857131597007192146037963094355809655617349444103325603263423992247779606392926085992526677968813888434088723923791333836980330147072705544825291432869253432020882569369562496463221039637025384808573603901098715147388480000455730689386465104888758021349418104496602123093546171556941903047418804464388049296489561671320480668194590022780193075325750470130125578195906843244224196806473602211136959567675025384589465816163964375993748771022219928302955169931077152986454918076782493062061677387738321472992957915705947092022387178069178566605487822144753310037007007364303365629943566659632896556527812820681529600094379728255937825451036487612211875435150697611900264139659365909729866936500931171934178269962259515795973666412533499065855013023744041563158541224331096824261234265181970248199644668981286380695781731643380271911165784782967159412208242690152158806250961844657301735350785525444175453623308720471622447248700984762000113554575971811993161578978458092921829750140017478128236726700985958529215694218818759114811009159418248927967933911601336135459379969584957111271495806399308279894010977044027070012567455307786503186826804246630323985717561208604778634547255564405457923454684408268629012044209104526162166376608460396666638323721632610844041019916747591987671386169098308501800271330457636152869421386846476410939440971072312379321798648644339310543297217942518286758438658694399224890355999697341620770935995197760804344882623899245899915197311939394639792635700427670261933823826121469316279692914465222250560564510316079883490631917153960313457109096291483564296908333303712816537556146587976527934147670863445734043445346920631936374610808746106558092191278509995365559393480747364922054590844178670254787494798916376846849262021754700426178693461322066228420537022727827120930039629745278692368499338784075652611828498066671522725509040635673927485475501573026387045534194487809797195427906479028374456135518252746410517148439680991451094432380762555566326617881260537422743127092016696967999999895060224285628937767345850350308105466474590697319576885048096783058225172764301713111970273034149760371337396916060861621104826578577360858475824799050798072905330520055089696644223151282689695386249786874734741400281412068444228597844470200804354002238798475315854645152737076380048725755921478015724293256352231471443368710723321865956527920240000276784082266982538795342642254811467988344362615584638975960522712501807417448262240006197732050031932469906310988799484786357211353384829569833161410723338575734085848729210425422402944568621663632218793168756076304913328254765918898674960467948710933812782994671231955688383586438866479639754218292264779310501902108061947078257362501937607241977800083500611374000704234665457579683857451387007076267954181069644296694956082205401861862455045769993190690504939404769839329685527705220357774118181652838325820954147395130906442384306403411796118261613058595924098183506060416525822247395133925403852182761710763649820376368778941291051674059543244282899735122475686852487480335100126562166986040394809111935533924925132204665777166719381205115268483142530310849920045583045327219158527894873774476850127917302466664964905758251442355539507222412555226536841989428493170271561108744536799257052300240264007516458747549583053626329867550413785920123974051089868856786287455467974423708606067283991356495720625955593459955383726238288497264057241714493417353245642961606073296171342757706744964372308892520163828171063243281379161027538831617030216025079775467171484708219312842836344261998809238166679244018885491592655401245648339927403955554803465001548609740698608930670222773429707038752352765921138632726676917320517338867064699449975820062882668438793121054279316268132662083000554502541791063547397213071137891153900148855708448762799558716364539326499090535579262752669252826734233371897470357115692327383212781310698238106518178374731418681277150496032315367053232416488916576398057197093139269223990209750243759563487127088482922984829730535234406026616001937341525645202079376521014696329741009598537876370298526552298834241648469114445093994971941061927655443237305778275673993865437988918013553160868625027616638968757422877102501205676949626913584573831919392768259786080871652073833531265181037921175264520964450688538444224689905137261364161048317473570205460102889049624456061640430411386879799907111591569143354608893959540932860527351223708524977392452469639939340581412939188686499840833148102530477520541504913355389724525781629166706108429811626943551756024464695828940209454712870846624920418666214184116564469563323207699601739204307515810839496531184279005517965279412734135330472360905957716002472534409147938612258746503136301494711011237996214605722973377221135098355168561435894269286999057833581551849913654172023582166892489647541118750592841609753049170679411289857428962966059493906157307802835502753716160932319996474059482809437625667702260017152267064579221047856842636989676556920914385058687100822890077636754552846028127270538689593548610313846068502106562076909218937842953008069440405710769318694025356681791589181899765460743089808778730022637756344959815542525903257408461564109223607996434861058685420860064603013193013182332389480146959177199550682111562666229816158928220285224997169645995117462971420673576476878119913179949049953394886575217628978531140573257087515070027738949681676434200591647627600947552824208963145458611542905797094012635129722805774878335746907451521955426644482969609009262380012859115891929226987411269597669178185914569061567325844173196706953600674596908049323975455571024792084399918318529044432238995646452429181769888420422646475188337822111270247836019501661135477453014694401532407851228715628857201010332620092749792024838176003719126368105951563251637353433071859149763783985086230593653385030423332346233425776701983957304916966483511389169023112867994525068202602413142168189961242163051083117658308827766097546551316118850964625728460615766206705090346714757629603612597422785140838481568017423980504408254313763346704682086001949118454642585094428217813899491011916724911179917191961421567925836730983777654540487798148644150313456500090779797881892535133540170179030465380185468585242695817450884733325782773057391622903300906343128991930026634940166786029439477580745117653057307695064214571005178521486102806928933184543055609859838912400557392789304725799265121256599340621326493181178525486916188761134360617565168115063814294675670006196472355244098432993429915174389386297291215375137646980324508659729659047991977775983842775353436164622289253745067279204168757212173182815971309079484957109965310523528427339246390172764410724884915289380770801581053625864730366638559289464977422843584132017768846133734157787307253083198513336279779880153141519048370100323492272156762654551930431616811730174327077827379130649682710171905800746731309323523742281316746884550757137749978008904575685129463047548218354035367053699783827632310802192870788710435577142859493461294074515468496529191568790472927657696754024395017091475633424476862607913254141386599675309746029429248021912558214462804031562512751617863523381473294744534052382456078536656953418783486833209298291477891771572833571683625532388658466688019283482279504431240988806589417645896338538649879129357330284296773931545716785852440845387325932887781984632418400561368307112256700485817202261896936104150257311203379006767901690928801818202836689729176041746201638435230644424823935924139613810832303905748554321129360010458867745590367678485506019057421977705345013184875655171778542253376762112797718831459394140340971594874192081546808795893741673206989415666149844826043647897385948921232396260672464161842674496125761461544750651510244517180898662653108259125414640659842828961188625685352054349311908448060669442230109091410558854722786735872529281417705263855473458530940271381261436930807641948991145475294044204179675900972274350336818761561124343517062187465466361606856642534232903489512341365919843466236851491462844372278984493036360518803269868798341670730273646818008224537347295329538251239174543427529781642417644922212965972442026698101131761420728936249834090045746008117210255800605251616896435107225047003645384620165200799658528130639985604352305908896396389820006472000062278838257180756567774425992057333095297154214955427403396899046223864122416045124936984993980299642248804710428545061812769090143848862870276531452655462731209458573382000913770553072961694559583338409413938149630529716864528986111225508640350824832317131373510875992102997208919175141018650508828494443193657282119147036637785510459493899991346574906738500343463801326898946803200448655325850384217842333378072672999291326897048973195255290934202180570106362323399442935465964980194639080693813963020096301319054418073351362671807068294404712870398745058083158966713808295607681634714330231461105554999452572394595294964601276192476391881627643236445808655415606683859197751085334632057676810444838268778866088346013579326518831758789071074027450577457625324672427965603259286568268923233087206584474149017019451176022473623187977986511747495231091958381188089171911629614662861987534917254541153164677606632838910415853592171702595693082558684415104635534677453087608328003926281542897453394582711910854712171420446212124759243450719692714555838811678235341671084308325852061041624393686402606646368682858891934361300687579679624599713155890695399133346525180609963277497419273917688718770268854017796210428768876891918482015417606886849445213746393582771022753049971597708548235541144370429717285212570895009299616540598570633124691997529116559758001817157956442048194493667146291459398269639881080159985980805107077328579345454317963442168060474526389307946766200420136643218523500160796108068652054671133340912643029036367709305184931505245921987110360734347130093418116674936581991900060940989207091521972918433913737857500348270881529673308856717383636525021342924290964651397622230673133211851794246651647715553287984737520277916972488917224402589731038441393177120052612409509941392564089370091008623617938269441184242449443683512450830050473972806363848533025973130695117029395552695006820754612588762878654039123564000480232959862507521264499339128443733092462088997335096442948189827392644090285537742130735736937890290455789639675770738553125533791276633666968238812542649679046420841864902452472876341618239897935881426197195542612989858400083083791959282741370112835684979633060602683267140625291722675771396405960701008313219759467406379385507702461912927145602760552537932514578210972299795055317302209411730798282554653247192030763488537853371900517760117908971219643314456678686527732963083937292097108343095712670298379925488853637595980766969572963868368644790908863966411002591877496227428192308022568313935714533233934246101590480020134331001963514002484122830673832580682584381301328631422662539055720887114953933926375348317758743990607285809831307662242005762495206406052388431336932944774478544316189494449028171186223765109436133594756647387475278776199759885443761800550698648172712401184914067069626646433850410284848301012773643273934960209909417428325442601212119168739806485641437634796465643258744408419796493760187212430207041318110248574348857344520223053688096822432809429189949892912363941241060411881816951501052047360966109641205292740188942517854714372281846794795152428073880775512925055219515203429885766550792248140774595677941935005426240537108545451976313995502531794984159415355168957868804595710060830066590521369537422472199623726366150467343770269000084730768080615858625097737297632279734578000541256234199252620251030817423019359195061491197604336258858566810303553367091273190426244694350999045628749992023466906393148123982604388711956598484573265889982382732486471791083601796406580313428448219448765553195860988767206517016269971893617372623412949773322604906600745686957853449157590798619091819948455266716915210590474093665133696594056315736837047386650615066004477403882002406159903780739085873073131320714637485193081224329656626293251555672777038445311805679715788384864136512559034914354417961794291975007565284652776300653229197665861858446400825300094683062894803103009354646001496012521472564090041337491709799189851605298745486184102188981345620151701140465352062657871144190545879055916953964098767242898553697400388267537272490083390081361689138090337073242119954750270314191008776627072983980618036095085543824009703048360633791704323508710658255564712536324829530992801665066633608754077216100529962720254667057034007356756178475524195789371086452130891384405837534737779841372825722212514806587838805950010017725217480143825051357672716116665232986636907331692397598866772507323875988275168721626500878576218765932141934300524118003559322004432991454547906958931836682761122311790539944284472766965636854197943640071438706240096935270500185145031586194333909962738392424586274534890608286628158257546163458443061385866857731094562287608669471353353694893481072780370566396884421895633409753412592462851431864316215423920092065104263420658771796005334669740810531266776984509018069431105730214153612502688281024363366758346546300083288126959735585613836524117295794268546410982986496127049855767152117059192730682689926491654312738882337908768334408532172542181903917784689066448787009131996646772759565432395273274638841643907978959362041747711373614372426180300352524301934316325785691884090076264745747647853139073200007095476522909378784328162517683778972317726619122433793534743710308623825774109134377003299723156444128626492376563433895459643796911142605385091898916524084370566228810875608737117573984405660290745446085606686853208790981184190538679716486052445539831512239039084361784801071260963099486185116516695657264461123874461362515512020009805430887328358311866160979052600788961882886731023250630624129026350102669320185582070262702576126274124232532274772995867540253212917045384718115899039866861279856038683233522138804504006949715581245232380329289326617731221931827398198536252134270201171721016078617509543008429270672856155087120058430291678437508329073324072387467367762485401335673046160299654038225945783812700074109635766489129302054235447424086492870203738195085374113967806707470988868428469732242533339290244960226278299929972449465247052345796896483082760138487319504491684973156592792973793936220669139097887093185000541836956476412697406496643110249527002454251292617169565746212487298768245373730395184261607590418906224336244976246915593447607209428932594159857497698812724534889510632701931181625536643883374456603024969405703065685614114843193732955030216895388714074241163322312423666562656755741046560948666463264774823675007023163989520695631716229487600461210190741341952005797474903630088865960561335873770191100374376954482471188977994115596410413182667544546796165524341733326006807358042892153524487940358017471562450042582262876788866893263043052842292263041258346061596460507191426032078636095505387625409464963150954378985884890235896782193753128209170787975179742277123065157488998575288007257051384447730936548551572003487358706929369504842612357328036393916643004734999096903595950728224226791295475646901197903740888125921832395447843971857712182589421165364190877539352979523735996251888447026251241450828178982044294897665519506502058677033689224211022135195397868819857284603448871823403048524271485044638302041850791597262045022639882351327393935472301009183491581435838902234157917570126106919465429896782908601261157729142681485967856213224362503086147529287801044553075230147548099285513178871464837495129823189283007878587237347805964744659598242226026119056484860444446586665062360901887980097551781817476159257660001988897418194561323349590206249485228937492212805954003739827725880563346779994616737971668399136458391393768845263862485487507832246617924546199084287428382712881000392395359598710754891712282667892538498092332964865757289898617971677970988955462333441615546648547179059770942566944448811126141347498470492084417308182984110353984667591685545064158735763950135369190380958222884457746547118962100750140177372963326904766539578543575735541005221816751946187679245578596569571655284943549269281714026481631062289290392900343744618936139193419116366461965880619782076999583585361322331618218649763072765482527974033946666872061502304040813236017856491050059990404361098805595206023146870237798718789320787709802638354985192291852673423780394074235123392102959699796170707990193630428269291353895651672828926132789188591064084405361661371643495696698687447313710187366187886731196677434777458059649586982349158465829314193303079734724101706394285462671886079961495219192918690113826695642976703233007222624806821177837642356451150589722779639532501557437159392821305031559441782907927584639385618617955891138512424959971281571578904587823848027826356893251278324257922249811518169923627313614764551627988521168900402282426620385181303139067536627324371804444504856726451899356469005322785817787610366232903877373436465788067112839667656619023742407307196557880370458278336745428348995806526972671188796893673003750495861271293264103520345507274024611213868525306828624187317567545521779871259748425753194878920912327787708241775004354418145277585560112045273275260260810785258654872402174499352856927679628086066748499946306731989772697723647922342482796768966838159413743967330203518245661904641110685221707727763604587502616104166094117758435813308477854841741219045253809634134880643571669021912505017984919526788692560364336515481292125652108288983218743072227897056912231834842528364368669480356056207358609439676992226483611973944007019062094336738790993945669811803872109284622623204539579712697202793410104638090740264117878142313658211492246728409379792169760185137022190693787445109682106844737044621559131941788874093533539300273155792067522804722206553925049213595949895743479538839628618394922567982955971399203430672277775466594435728616415134836996849777025380022041112173015329790973701322361550442485245381404231938356711789463338910233161410375797452812383202413968127188670420621779925759124583714745175430411239133414644687758555978672861807690479288569703138500526213266461402307948896006340003888978964505119395216921732636793929905699809698607728268479671816427880560432547286030117505460136484530495671757954381647156348281175388402276118285110857300866275813864131794085546499197643446997692632300482654604990326302982760863426701327513191568157402520511643400812638037015856933728434189109868940544349512869970634474870108032414638454290802251307925020063450628378419454484961143413473969377557564526307031736493214532184149945508334967161576659247026303472616460655503602822593170216590066511020330661460145013420401988135814937506151119634781766893815832477487038289567324622300730332884940304156696876481838588267059546526835197842323510314205091341091458049547903192959257065788057764592951653729487403681578339352675019368022337135109355697608579054713138950643484503945516926864236778001611098574058217066984969110199424592571043060057520296454484479886979963948214239183503432134862597861953702635905860991396798068534006086300500434471691968847787632992944728145277696410720937189667208740597331728060892376157247271151388855280465882971059088259654862654141139518335476503689839850246846044362715984255267717964318959404698093866273149008285852570976192093132144422099664066872530526317879102912073369147784718985332586205879471094640495909979665774119861383713342814572612045559016950019389727975808612893513303500973062297153780661744662079488049778437161601532331129844277164229579526601874244752379931984945015463992820590639800837206463980860451635897507719125612824527386180905362895963558684123304495304082002625751837340806472888451823871605453908117332351470121036297860027439293938331027828531186747168339550077654617960087151206582589248057723023897956370241429486318992143379043264222477861640950481213923844455843693393772077061766876954118041585892857350660665458772620963080977953812773537373124742281832513031062205891071904084854887990138172711957640508379167969997376891093189642136570769283580146470077023949169393589401853343268377790701360834184730326846409857339878541280747241552611513245663349147002697035053209209505490106832514748669083359810922153335754001509507528789681177197237276903392520552811395641195973462246331228710165948619638174870590341473422106115808295148529988647881704516142566476792107658200285074737745390315251549804231371832483983259656190350110577965719033099821479475722665629240147170273126732948590244315832325439732111276286912745399034472530111674041697090473938239608524148759338731856218440073149353991342372975214644795815364874387957132914747476635426830750820348892429486928791330763146014976784552990979768462443039136830131257924157692941472579590260990645657615221579232796524768985357364965689598897404087682371519201594088575567584611125286478041113904873597802285831160072479419959820458322627769062338783292915323698058821414750873014236274004645133027209356456586954980359506966293175484152535530681346671164209591058558488842862919939690930456257225965072013179755546378141368483215110250450236955906181394017147465199626285107180658185527562876298341790875445374769949460588753494844086660318748596977019106848728824110980896614300367881157179239129881450069223520102905075097352779659504117103417663247054366809863079317194494852135064034135209863446684006117552171874470433897090480350747843722318978402809889683617509036066124495901690050043268332367265690438129305240200396318505825771143444960684754278038111697694201545479656243096476707485876803808465058255582123405015020862930383782086885578403101495963796361091033907280901670338525839432030889841510569179265306611565871279082396513592484703180534953046060943570306405826876118201310822868736054067685650092663788903668216591685560991475063182222985149371350028693808157599036649385250694980743556154126777280095411954139667084035595483761289298827516345754678728010582335483221728254331900241984303045343915894478674732165722953095312053249616011578102734952641258329559811120081874949901120899628550360154964268694075296811506740520143637523610407437622949198032167470401709054644950979522057797977032825017234521063882412860305478661837797723469876801606046508478428481527156240141965153570524575326323368444160740711391602946891044848700335561037271570272116555434785517003447146870447082240803344845632697320242567204848010887211793172833599571109893322058202058252520972287003998424168768049890703186852427370418329313884573314262362338858312547984361742904832554072219389465620652045677934486260598656446801760952795882805620474167693364575574909589688276317353311435944500847262318317407182926231407655633986471131225688840741606675461774733969377819169528596484191808211420816387742732121548640849863702058507464681089402186159243419854699734075961560949369728925599927387819345273890360820677979850234351078024506908823979532279207364134135036481225077744243921921841667969114386552437618221307108352632757169154822677132941202356061018541475063275890175934163509267455017995129992714678544137960197024321297658328048649463796581754247439907050481977166060891728864278369380310464098754050791676124641210044292968276004276853163272219591476761205383341160612055274650874251132277569424564202278449947823636579346962521590074504624393117607009556437395686813716787177751506578059951886276680845753561212649398705839190852085099274414178427867315571437947264770658544497742523724413544375974750089430550622756435193582147844481780905921809617160809493611249953914941739825884455489759305084026927314606219030066981221425695029260970207220153168791367687276889009506635919179370685860034187681555767275202334571330439116611402125424444291097492209095562441978955815159076530202782755930671822232371062088922049127393993195640240527846242610181788869693921884586376388167516802731921657549914123954419681855151998074516132654057378261117849854469007197385841486134195514583039397839582892730278827474081347865089685451183459932979053825934735381971090579996035119150321954235287397920703465838756650987933578346905110707962838105025258431356734012265478858917667392292692943583944284480644346019353696579268965850170275371697529339490991275816289379900304293277978778404890385223680043943732810825171582669639666056617631770176116003955822326639789812837583471709909768173186893794273181348205868692253751152986322959622029693521749818392822906446164175628815205280183947880168150418822998332282236117363491498653582287164012998820160485657541028769303689850555841352438860300829326802260279495572060516500857576307099557027670465737904085834177717153003863345364395551226460294815990059790443041893427141813169437540008166136816154378628802853487985015597729033058099626445077146369985181067495816109499928133592321934266979876279886408887236076577076764990648570414334230848337122907298491448678200210715949662263850419744956847749229215048173454258768537378672504929409186364756641057865919118006455868904463571852226596392321948132475769328264858726534340392454870136608258608995482826802781307805817700562685260947976853274308061039061344772351693536727106144749249431003486569548791557031766995609831893541590967145253964669478371419985033450627152853794367944841255910580039562159079811578459877434703006203401798968815688747170984756208778789563364705152116756866344470095637472590318446550614545813076558905184828260641287510483814130398956756061515177782568332749329337103192723343509478546318810158617626085239885141548549109290346564814206908104812987836977027574360150882052003802181072383170048796942684564432581636678029051669313766254711208194579104892926737637441208742558102718027916316796431924507738267634072508888918586751138538644646338203726161490364254852107585942010926165360689341245038349793379015512429862589014578744093103196879478960274703984693954532747552516694315008496560832533814717346859880172410513235600306590933748219484726352475843600643792163461179066742701672133628154617476775544178214262755019763926867317754401646291363954448663963062776161047608522746803289324563551485252276219705188813717685769511754073963774528531471488114122573118439504013207778622472299403821181206777349137652869198378333118067136866781037736785907926850843030491984955387697986290899844413264838641748206372975669651299794519071404924536703929007646669065065653562442468847880329402071965853238058978880104114334246324680758175538537296712867282089282961572799515790130627586522626759348379766791348799242358666855393163102784368567406200880496262626535623562098469701139304917464317011165100176592173313534882741509486954870915930824395649677155755528542836543636623594532916185207770460244737783355822258359291236202932520303605947978260178437095365566470982051150154374816650496920490021674259533689981381531676379290331078242169534414268543231177264965809553282654168161687626600615079730742802767141031354222162725336329050754009542792982702706796499433422970452748641284965991954878456235320604152177422530515218587831734207773949469394699685278072358624651630665130800955081810951161543568831430647886972510374234864829856405845562146886974887394614021185080092762425244768042789923095181140781202556494766083120615032824977659462192064178140874018444162320594971879938554206087220413421466199124637925086984178828017351609720023676704204995420542198146040303918754675046073274445934364576699215943784582555000250757419997145675505751966711335153933242703880574118190787446360237352150192006580588145154689214631638894010949383256788626677955591240198287781075663562019712307805487181106957794612492547341593672266089576798753569714442803579107688415815209676892533225819139153907119078481425048734020782891893226251932010129038064495551104712406150967845217885184164604061981924757136316087844153948231145458248942068525827100402909444960314270340326562280459949114277111322875117251093307045077292951692585836555374238168723271705250542618064828824969604247436379709152765505266828180570962777384646281182465555238920465742462551220584938249645150285936376770995099100135307776476358417214710216198260513133017084440328979418247077227373754749528719704422632982415869433046147650595054076856641118823336357616746897396190744745335237305688091100442251331914960039031281964030246590386075344534422214633152022607513387517557933354264294702775123266590351118149680956868028500156991362846142249107334732656876164849976848138999701987018405947166981847709646509099510374550802089078349854240599713549480109633511309353470139889228935335365403384549547374957474720363779977611621819005343821221449649578097517580087266085133192747637164218938092639976885459464552335808937321010539263529763826305062774915761877662701850978512318226802460713778231786563098530215116404680801122277048900161612782931067141788528411792135454988549375708315767415558041286869245479606136292445609727916014532888292568859730746937322492824903035248061106501470038224562452279419547395080541496206895312646125431046041512961282633599618328067029271736973184661356072116705086660965936091135853443145118295069307847991495322364659811060896353319422326662470123703482510160494774018184824985641864638256523146274323749294056096905653416919207737301628556014677151273444210791496216607268656163766354176616533519514365455161570512059221219729127160034394168316696398390339772747339131830472115926470059534691215894228345126917503049382576954605424941228289281010179067812619138887991411479057533360005503992594948341445500857541273300390442797783294991800140000492859785626509880352559376485285849600731177772978034904948275475025121968001527742402127771134467769303999990416727792883701135207332177048334111898073062658049994183647097181162718455487191627070558823434317730966037872276277907163845082846433778458795176060932613485248981098037268163672671619637023191134542444087888155923476985249873975685841100192746669306630363888569948099538367695122073763637772989067893887399124648103691315396252608056175489861836727724771226317020548920785986950702579515997126470983135090492674505616636776499711983095727500319358018439161635451905844575462623042656874654861409889070380386119251741999875098171227548247510843019611564529535974087769525295359571391675266929683940042771284973423360034411756731425059925640180293451916778602496754643478363288175477303288545073111906131972200776656598845449363175901207455152365935109614948927857485930378825902501888530562148505963380632313054628075572160080596289941268402495619597489838977829871799145477443792598219168614111725041050360647648969606665445211710862651110646534966385115966245201442152395542643935231707391290731616051148356796929775036616053213479022085555293362676944639472170567750217195865312672449928991120894203589260426045133956893102884607810286235007238433653009772122886958580062696134524363606388131876229325233545872776280335940049457216707207704335073181378667755415477947109838241512768107583245145932185082701827865298972814925146811953381148590427615724818188552009773556299878976546682218431751221047894462872910204871479300469162203637919307146554396472725341549056843276042774548919870741930392651973843821266978939046905561430460139511897707013344272727361169342397368522879945215136300297898740786854563303825989558814143508068027771403992990793749394063763254860734620890110380355704430674325271802322933854421656756759241586841467067421522278152501741335213456040323104861295954966546989448849226240986272805375944272734760170313938924163451469311978880986700111174538159228617652970514355250601128465795391759941519368389114593411422305029582658767528976836994543179427928164319754117470791400602701338833096333405627911266048788961725740220210564343369888737858016823214951833058182768300293231108692868837741953283727841470881265550374284152694726498998757234811319997725237529490247772697063343518915748558969822078693600388587409415638701487227717511403631608124608716920817830421552171902401805784190250090922844800634536633537208034521916528886404020864287672107608415758622350160122281694696594829767662750148585580938785012005522577003270400863226333891867597781223494332600924990512058894052181062055143376101716811520163353400048867098211141525773159333233563122962708305709909204288661494212399819304910115051846505890889863088894855100048135180877041031313533409250791618639016097963754142744049427831875331417383813298022754902518012839071380460219903251774721761842373979868153776576972248857406671019034956258318116735390779144252748131434799643888695087794814789804608065145255408199328687578645961592240744094905159249524888300062661608627564964939599606336370402383203825481527062867994906376528233609363088203465354711344954842569165280948990082752429942837280303704915104301639355446390301376065392506428933914564226641077790774471032335760934646356779614614270597804815414191587354012853684873861480156634881548814974116851967740643748520735788314144571714635993612948367407248059279061478572311611071375046620103147913951347678594374360168621996390878905531501460262418742245052473292339363962751936752938127434450706066101716860762034307504666179581863685086877437432392468970005788355020997638585005004531686358677624311893682503958260894922291867512747013063669815691150979450580169989519556686153194565992444001701818443924017213553721654767003689800530701152417856903362616833406424695805117849663796304709079598778779530616878761720364438303012512498110749180153033697792004477779689053876156933176032163013123988050276865432060415191316002243043380638734695937381908171990471731499091255171743980298718174002405954572259369797131565646274499773312988520747282644365099167436832565802974324313058153217326314732694067042206806637531875664959435525115717538241474146488612209410770357600158711986847533750367386686307056893910606242554749277057058047675175177833209775159209122923930964753702921520059450388587652393360455827918316677005047844511762983992795008069134665778934229269569545870697703643939953047782203790748339672304476021205572908508927510010977286510199026352614107834820311458119952534041847359066257564556631695727496674688065377487641471039729642510463342538207522271637341514578850425647894003671345158206616345421380440835942644723619251111280420160282521135414800800895833702198592183115156567788056877101786698195257086627846843097742845471076485845535212643386425981883082668337586679886133746419131908953910756774786099735668499269568569666294488344389418065795629248748459642539778108367481880073703760875948369059338497487721245592797523959361600175481145197248049193040498316792633980070281715903727082982020442942168550801114768574472980719000350342323084377355224671049407946394152622545215528250029190325544458452771434966618945106648960336767418904847119573503418659627338935285558100348854890498375218209905979910296386720514105807138392310269194938502220148673306266480244249378935995899444245077105162721628048258269654555361878915775621196102026518438955488921313726061824740169285058908897549636448414699842796929197236945884148962211835411100905959042642387632034790007593378233525052500619542748215793829919638556960127853829874862863525439939367910961349084136091780482568922144805472492704863202250400618994839886771708511576416080181660693902892250772137166449037967466551115656377872568159173658303171456333455331836566234429642203238739905061022095837780465986743619730813032239599581989674930153411075380480774593185700440026825608594987444631854080901627364448159419902556632645338413473359126449143000725218219746436625252372149659902928813756906411607965704511362687946180003621971151122701281536877606385965311496446411821647616533901300296848066678374651684143676979655740591169928001669078829385850651031991715990308731715749491282115688527720048878881198546137092097948319420130267454783972727510282963220315552945844018499542676984721526019989976967999713325990222404308982753670965500008919350454833268323448186474861536811734889232811161183980522991790113940703891666561597084062904729668149714387436068285666946260895783146113837067989308440670677491819757805271073303996457380149559455955870735414918538632997929593694876724720870776515883625933418512381338116343335423541599296516156596762427934914910213319120621366464432797968231656101450719079172978806851819939556927023784367287004351045496615852948635143105381835289880980657251984185135853806708516759840800236585352191915489520289942023386403449221063497667007451351510836910031112211841155234694615417822848546413682502762229249634998722511439111684964554637735313014431721219870750867838068425263009212185324824449800667008829854648082978444120774851972431690360601859093062941256591818267006113884689771153645243520752933564319951058178227394304019872178617066578257484108612855195448629521222380075012826992317147038015442067884873305028850761115053055965561302574890523289350424888984560123496647158961087688896955980118091505870740745359050054758551397300154107771256006758057592223754301284914057911218305553265826952425902216320950924477776493805384714784975643102283785692510749019955440859507085724553237086372685147169882802916465608641136579735770340812300927968593106842116510933164972011196813175801667999254598783988526964021978241034955599960401463382208972356934084266526724488317543426114035987237907444698587340342573260804961939515150175960148154384077680295720912749316484365443734559944665030745582285091559003147719039917326135729391185195155215402071168191346434410463418844104145064218666861005134239539536587177437285704337631463060270198701492579875394344628819202554041975205800591150100058464509094609862619167594803405701209873941638219566946783863792716022255155661271579173423037267289256803419388725814936827168663227529673026070473797079187306763258183741846007972766004090064325048344694139968251158795709491912215656252061456645202285090956966663652626832800040009098924664782907666947885173121154405779678237657728102407702722158900718785394574772903698023445876836849910573500954721804165771632809416431529550837210801258118950849847610727126259520556633327715722377026155740171639237811699419045805837993600976924481764151846930469702410344868038144879445125779995571415830615999191977511646764817810063346159140378556638407994174969038350207227479497958967029677727554964347008578576564238094233876804887848452495285574783791715470535108987050345535796795460689138136622899596186926245114890110126829555836978209809900669848948362928813474272580563625194728844587017679564684387336630350119319600671898533805450012062751315715180891943409545784196733210399579468675674112617115980439154490677651595516544404583791347985336087646010099529439044708585102556609547003484446123861795585977907876320203732846094345665194614609741529250848895887822868917928930096438540067595091093872788823771627505756447558876439039988209361599938598752473764572060944019977171717647452436031071555649634816472939689866110205488613093583057823530362689743376404584201228078341843574871973113657001672017909720035107921541313648637747565123738373260224657632882836162624220121065187867847178518042187412781132822071797991484193088705827099161413954873741968761777060753554070967197759096966123607326756874954443639630253695621818796151694668640399514746564911288519085832365480001667746408867849218933931407731807278701238732994330170507547003865437717866821093700382310879225857984437651895824686108754350873511204380478273094451043229809388569427554071178687572419861702388415579747783139960409020635299935401533017726506112012601977064982020142560230621414928012416392973882318943792026856613607405985248452242136000754841041167043769939780283944091644094643624943996940726994646465523317632023678956785186350689510871843841347281687904276717564513604518844034291455088507915935700890863809587229469747675535696974379708707882103155791865040240136239330551088114205871396244039432562216662750450522492822334401871817231165585272978516600986251917720446863018818546078579919894881225703343596430117819532086755864237138126850537224937665919280518665152656701948619224910607382413503038665353441339202789197464981998550512825316764776052627071314069084212876677666828929236341764998531634451996172906757935677263062382742076836934733176624431978949474330390032135120240213685132882326257019166379566734304858771037431321613870847303863689196650736847444354394386012661550679265351875947119939589708212873280725033570118543857751108957876978267254690623143688484524498151825659250305475188661414651517037856451376377508839010700380393423788729885996388268791202449453320033389556838684404619754493488646698791995617162868964013386592463404537120086789353639055808985598955174258019504911351906893355328113450769612589268822499816923262682924684790336100243222595804670121512192548036081167704254819883503264538009330854439327555862702022676390395241791274885888096758645340264854575690206653605501004576600333947187311967418681970476153560412235741427494811764266410330866234678016622952565942991750204186992777562766507373023634021967053269271672687641491129817646158113048814892043073765483567838617304341721289036028430202551867606964240048894985448243022958805515106123080440269792114763308942283883759007813510711197098552078811876101862585389508189518105469533642077560485432226954865216694615666470672903823357842322100822729934086793298811862776658912955273991489304211887264308193988420524023422278424796258103395530622101480296211857421753122769483717765805307944279255561608535165578958073114448585924438180482663467975463968585372890155552387422585862246142052243147703954993667400525758284164944459938542809459876689287350031030668045175701600290855752905553267729124156810829542293257027483160542147057882026620769624599404171675174268312827780657992387983257048952764785127648419631730190488449945966749196242808574531974693643119584031303403503465279010556548860345052368278842489129967987111071948609196724636749475385266918951118812886657046872542087852732672267208642318966507389904854641275152285305042162375135139238752330633177484477331710310187332804498125819052786612469482289507397730456879343781370371997537963959026865455914322312294778536576538292774802682926991603501546349396188190562060299361310697909398421770215828256647306239876962354930523883068520952990896418126553283703030643410573688951175871939369250499249056896302831867092782733337545089226570355839860728722311264914103572723931991322733723387018548107058563792272085054004539046049051599022434146149692891644198925364140663597043178926585488302685598423520360736596018493578081968126484046126392109066064610349681890707202967324926398443107216067161739780323545526405687321409375514263823742230998684642531669065223929936585708823450121742186289826655559302303565322041612183928135782866443890015300954385939870089320890785500045384304293269388534893885048048253839134193092903840099970665389043240551144721640886715541097850919022656408298523472370533415392649929362174401486352962965073162347839021700627344044142431638721841288444683491287237328355584416778390471792492404926747315904984264423073628489133385503666916042639796643935283778461361686532827993027282308136369519169129621127071417208974282771950215693642173934041556949761829824628734789656619288424401295878791452241972947970373899904613933767871506603329577341710721237377577012739178106204807039400334656298182164960689754032803676969666706046727556097116684695558175712356463649891156847943882223301056434755853137785212298482780066768870117266547732741142816793662994982775102463472420224838497332169609684349210910870458911072922733211860534065216243657724486883838648092406042657042463073199958307386190990714503657692266456789933090054834389573982811258476853724389859017038599076009458918162780647129669093738839508194576985595756904284570991944897207907221681985987026183014729379770711332682370545102833636089285623496470686783902910124950792909047657039592055721609871177499019155770204378876701322700329519768403153077939520468416533087239394561408282749400228091374499043287574095442572685140420138757411773698408958343510108389411110629215350997112684558859737068150533801972209163488920410535616543842724354333175445915764821064514472460635408404073760498671874785247633269114649460910657692812704012443759777604113416651634033076532031686707514503358350515469916661076712689799850969834643021979420067775386928451576843576862625984221106065294312966128543129350965295787019777189191606928233137878204659885870261858651052465673025560433801484812444264307024612561686109560287751515861148447639310482821760017978704883329302770097998970312472515662822392705968917499738285017802874652850207306370292643168867931156856498109937208487024368413084531032731079526226439838094867742569818112137252795032143464026617995708145470126835250204476162353087888021201853278567731607548812920796138749126374818269656651427425875912261313395797296100442674159639020990236603496119501459592152351551880268462705040833710127085972760265513595625443933626351386058128947857960747097524768655189359132175596638411322427112450013590233595272169872848072420396464088740147010051853482366650287635805580808813977860094392132329133032736228347887743323296309475704202290682442523454980092249345431428977039550193904212915993655610543101129632372912630410560077281553065600772833534695074793123576096640892447904486380580347241166222417346911852673545082008981696430027460933463523675694403285089474282966604093631534520586923801351811221319570327471513746169424857260499059743027321669768770297789088543399787449825546375227559684767596282501119522155789650978723568412234228992138852930400544447717278534228503552881838798310210383909844480737123800739297657416789956606455441148327590188250233200049233150446871529264679479441322877257404578141136754116032112603213803531793570330157247892499466363291463873283591309250233988879189390347597395290884669588938840670639568931980011326875736670484126391610672810617816719575908623153965682883975676228389433162488552325094064504115159333600705008783895625382394088679357599046107237245054259420279127623207199510368884278739417910225597623708822641687863076694152355803656402561243732254459510868130281040792646438142714878810471132262255832921526967355222391682775209599439043398302263330837672274645643798420351620616625730556879198648973959266986086219869032626350645800339317857013281732883818973844786116864364716100188968801186477781904420737706581560350399472720242763256201194745796394122664811291571713060630889966887650314430637049107701242426382502566012985370433530252053500473915488329193153188123474195833431158883882312399505687949463771649876392862977247922740940878384988508554115911794772145258062166394280037436759993194605093545449256097045165693465261753593930369994121503496931631509862024326853405124696498112037900754717986399051618687371514331315679735011464628334587337584965958743963701518158263434770624258407550286637983728447412420576566699854415478251240597076393731832002976376759771189028700861012857955564456014505429506299019287738130410618811709956560432340696274731816027261806967458093388873493858913951831775828767340060319010042416021748786399156932436408770174055654871154355383422927154852993792745422165468944383807568505294789505293005894214550010403014430114946447497319556421372494322280916423128454163934355589290379667291937902276361981341463873000922379619474543942255868016282785933807624892114117598541745306728654176707239766691486004284695986292292503715392232439020924405308113963421302456072779569905251661718103837885607705778771751043907318375535671636360617858512415730868436257526044262036646969543547556909334735178256134506013390612325713179638905604076778628902868906742903052599210173271478292952313962665897449689402299279755040530782483448471436113885706715046355535106797882835587206493966698661583356622877065428367560467651305886894234178814649998382326438658916667194484826657953230510637834611515283225260398747267280268124072051225194419774083616688003445779981781131534057548893879958633792272429753333633679582727497349717854406465979428202245498702895817091559009299728686141849648410981511559382828697761068861861967067940192442547721257014865168253859359654594556934897196584525152890370016881676197657667438124076410654205724185230005139215930105615600663714562933315662936327993538923180516603182201563237784777661264414378137879723070927122775960781616115148201636530528671691408310516626691789880811015801183951105514804599061366415777601336661523856213765436067671116636126885479216385118407495422152598979223430919136573181994875401003096607910206197887266291262167927791879272502666751446348726845526836996485391889296877506852390158326853574089687506452142662265652666116356292297780004608538241869688269017123449013264709562225832737431709565266950885206243973507514485490569758291163181146878417897926421748036952908013146428109613424637337654832063914517486318157695571962860292191659876498826607782476053813954457966380705870588706016929835469403597365182178389133136545515934386582457814322621973034872597186370701796600258615629956588568543381565094394974744421119485708811473114410774003086466155243556603595906848362500271517766188310803572157489497755369171099542440673974427088941668443442136754222082235718299368903267835753447088973242228569099070744593780469560806276876645075935578447941468475390845995678902862686904176867206972966412762760553388211947648283163656101822792775419671159040058881081642182097892197853450647365217892259827489200790598489451578743448210845234716355600969709264691160376981759633901920589471450907546174512730956813277668283001357112428944990761346552981657562755488709657790290216541392966633353032618145328471386555174130741738732094246292273130706994785282230974173616791807480371127459703014997933837730608868330946008622315412795183815419204863416108675949318431612796225613612744565593940325669265201056826986124474461094348819285103719376105686751851423733711463680470076391355648064347044866216065835108212409977684011347383318361553761755526460758819775774840004468066608869528691288195291645631791694150428693536791430328740794461674467279721426458135580350548941301345313407744845416836148817090490034761371182549671878291008854007117528285407569998553218857300247724262810673508504956426241267470195908925224271428969517927446247129656475930070951848036417365431180766141122928650719143276332009016241639030122722525000665520678173605126979605754430231864679076774415674113127205746428381005858154804753283962057416891714090906404556607837954147794955318310721631831010153119915121727989825164407833387584910272090238065406598396203335092939623944861154956816977454519163270776682233049103764474054887379678088736882324494706471837524967946212566446787019798338933956546592147306592748124685906260584113077139287991094621132215702627564718690670589704896024304840123593425714620000877562033115039596448766450018224201465681738513792120415615866982806039191242425427774719474960501944513647271429625482428498468260670885659003421314592758140763549915710372009604856269982059319108720925556348720765005267001435030738522770192849592354056267579712871310587625401319078462161217190259198804792670565847535473866824856297028193531725839937948430911432221679451960233122271859675720898534274599718800779462604230194950825264244192958699358936492002987469013439566935855450912992444914725129485492579556517307371355935165535043712091869059090516081667314809963519948367471873520498486866313855175773389862370476322618096651779927660251909663025752902688346366797812554549430342716624396537919517136770649692370535796876166195636803034286288875801240470186306765833127299219035774232308495420647269265667155563268154110288772750854097151468269267283239505835021220125345358509594086170622385758517292483134764486060320690210581116413637713986361039339159717033869686443338365952370127970601247156012254637688917236230190789191301699084571951985093421095047093404000014529082754248700101011743008890917924553118937028683572684987194311220445094714532166190688347584050564077834641551180324811915241801790793603590637638419106079884592990825547217179434118746323030644993324640137362376625361926480422792055606704701105080446498045348751235705175364132323520320415496151939426318933956585360476008025432826872306530432468975611889008420073284919608803422321599205561425432826424060449610348579155969340442701849255005950429408568218353667143327654767125057508622799445288609616259604270960161877768995768080005224464716047942535771198066256108147842354872413355566316175227615695561182531872569491070126171685998129230812434492270090434608818081052849353502383858987311134678505572760405032523422827167311841831656158991852344401844361242826114990148710127339962332273989997133558530728999162573919768942934713728814391284541941211865983891458495386519278757321517596039501507253501911179973542978053231795591602075044891142142239665324537223234482037781902152067977019617596580115800332698984836040796385610953669794048831403901535032953983928292853090169132595018628286521252198584859660075551699251615474684673489303570455412133848527101774084569447062738057068315961288638767750283493822625099465430833200619265597392674787809573565424216196508364776968434395975825954923480268893412737350131610319545454293589113069287139813546904037549991660010368412646140916876998565213273771139030675301629678096722100882035677892951641589777103773003259795468865048289595609439359233941574419524023819756428395025190222459321019855849120302105534424653421900456327393116118673210664171058297067809042666919359157812896237141819867062592194873718688894359001249146689564386284458619818440827617003317835921313065398426912435776332563495478757526318908495332464383652774856316188459633847940921432752803027090512319776882102940784435669213064489717529025052013141849556856690013376938201279377364558109315822053227749574702538542735150141272193296361554456558187262078306260436657189995962950844173616467186118968132717865045427112875406023097255275896898442019540935126412331136173858914840874219447113765631202093322204951906879810747043864919572231781812369340327160837202879287631552404022848364579486354102141848827111751790687577830628432446410144399706889353310936858907184650291723897367657913751058878644328051866305818694802172973165713070396498045678894987104943542679195162619473578417556551166188285882576632860145236254280410927782996080063591067897292949076818708538815517400259179700282969940193717190469389221868468723500997957546466813200910775022582568141831877170621870346749617096228315297140842401111324435300269659979441111941912073309097357863557383611049526345848349665819149804547229424420556095115998055636200054830180705584870615967258591515582738422765617641513290236199536547236279258577033061453662762623536150927309070687933638720212487149618130898205526409837993066117792665091321678390400566685218236113089039451330558448390475472105447468763264174510762190950443878602325386948107885720146655736164823058088917849746466980723776354562464931033796645035578369082925686999470518914149346252058826672054878844860658426268246445062673422551016540922607076833638582187032301550939182818733492047911579117686818387390202581772341110332181944098445383903387886769209833986781802863063719327799743730905780999892275777726235493182539160995028491327441400045337866934714832006931893893883621059572748260903888358874818676001524393304779301874286202777367448952045004895752208942752842544393877422240422600624666817939687569731933775364684530204687927147436031782357067383052925922641510224923994046653122123901048781233919379671400817036438754193848466513612495732279986191063908272175581940124699387562419304600269202075139802036185596422309484610635307635420788895200791582302362753550151865554362811186079492710854409066406726928491942693965520062125278345385429265623811867661491810635676628861709991358085350931666116255777968568506769185027630945374497522739657972368598763165756448982006533031146505325093465155370925005928983682667191367934639808186380805513423947574523187274128330490402792519201968146549856407616238730632212598313229528382333963681146080349008087355852555524355562924348494371930950140198081901520327884700255793311610082063640122793586259251729722612199924915128302014289920045524413759194219925786540061407844148031450681833047244745537674569639560838296023070938138288036107391935217815585278341543334011573424810749930421446382034223575693615483042081786340474937081235235171994152917830607571770988385983018013677638754671999155478113593570098869310974947490547298990084453459342856619700537466490972036911921905368447566854751870738809383776552962569721916607764503688301748210403907338610190640509071475974593814476618540759121313671112068708398513182461099518966962492466181762849509183532868424628268476048527468788767320058712818042539900225281595924238688162596368061627654640086445717041849761570005685126300327922211828687054985781332468504320587149293132081310019076224705723462635718879595256880977727542094737942344678203080966305972466091988444223063420285231593754772709202119061861985580476754396132874909452599842157014568644126563055587672887641081089389124770415288319267832508327070564804735250300874392839878609695825102640040516100537927244584442119103104115210965921234572677725199250253115713983423675821604429759493417994251315496276914402685922067197833500279890626165822364915066530605409592265524352018761625844705160423537390412371752975086160747610807354128161070035555921659707732782829861095299776488605105241477901246761028343523198894880030695943356585906831290887487423624691230892707516456690525885571975047050560603375895976858537042864370145819734206478713299345643967248322640356654690661703232562687041491971773706477521934355802726845611616710380769113151876649964348653024075527859244163654385338303808727484335525013415705144683215434266345753541280010379995574843327500905331585567886452661545831388078233006241790714994412905412326161108844771189539279848656442431597001566493046183605034410046406532730100997832934369606682470437959868911698881549714679933423947587849392692892610976538157628017673808323443557534239512452930228994907499225286203772891457574279389493514945454333189532035063090253608277651644003279271728053413733451859760413900476118670008922471344873556559809589126136352231762051412977503783152476894200793318700993539408465713561106623780613113309809146725054899535771718464417639737032084135258838865670485411577583730487221560493784944522353377773812019010361511357773206338050282919776323511306137513416727719324942447235471643469592672797370884741683184788171236334188049098377876544494840976847005652253238879343760241266704665494345966585241419680374969618766876177225966479511049213681576099837012045799370679922512919156987694095711319442155298899492247661557976943815385101650969741694591656972120800189632859859060443208815764128230430887691799232923419250995258621018363773019568404705315751057849249054222706671431633916975139768142233767728485901610212840937277528585153259304499328353972806302153979156093584328423174191081656224145629217412518109965820305510144619224883341287688152260998111718439848997850407485026060982418743863386962821298036156894456105568934003808716417647709370050408677511547244814952043753255280268810090094564977931755105350442782988579014019896655872068059193999084766020374761594400303192753102419156557686464610697206390445540485357697104909396764889636142386378029186857196991536155028289465422742516746238954758005298292867986641390790481333171033996646952817768495020711152084385759458159415479835079388712737570800090360453758030574637188629190145943911511453006990876177711476378574777963954886201181275867045255417350746119839712728892186491086609942142372089980848965736744575511889706098100765549221538978222960542011010306391002330524505732903431576471685652308978511723769496846811225863333410343690428680478130274902433577292096337610449431553152547543679302166700140172120348573562975826383695399420840047537276748247528343539782136700486700099455794853168525557932987966309724537700444184377277899994316803510571063057237488673298286814956068178825332233861890157652461267713851718694205563825194868771843582017083770874223017330947044362836276842903601895412154382752838482724048584067807592151081411261951165278059611887608621804177544914770895061366171618199973478649321244260268954788377934751977309833689009963792371705449879331174510730540378462096310486675394794936566825828944276885907899939352533308552500273878576592769052770116531467056689851482931315445443051296641995462057023347531995670391538104857569565909731956111980716646301813583224227648386708504127845550528268632457770862431142607239852849446673870380195815197253907026718898110134863474097099415773424094642597754361958123774424061139012830442876862360151247955049513303043549096405995037718927625747822012751346071375227085622508363345338779775002232181706618317454929377161769342310778699594360222071866891196263092708598315406016420500839299502804379077990033978133467224957877202466380144145026829224267685880139633868444840882795970074561766464689458176707327412615470975346120021790550693257565914108606038397452855377887682989626107572443172439455666125695256474742026623643392369222567250232383070437800449702246436345187401864651060893861770387558760296743835475472646403533270100595980079912357302822679174827645353025123287642143915703469286299739580207871734208975235634092338035139581137980153105253414501204979323899943758872612797826693828703919848299351305723816874917458331821672354733195858078832629362796586129445136017050606650821242894944563010867911648293410626931355619124396069947060429674727269919449503391144648279130149611099498073341834256619221558537026217470734573271541969185503666740027837130039138013972012152516831325251613832859902100224722560911719955714401460530777161255347576078391771314009441239491659472904772266069715464879905538218461361737281920272226261492649399336768817407184788922588087737451260290256454113161008746635812066342020352278049106917577536484365202256263622557380603403485478392118173751837143703692857327227574772708809637899323979755314085263884247458507986425578177234406797939876880793756197677229564834689755048998559573312178844875504541926893516580300714984569866762545591762678475508365366475136682558848942487592951704306232726419058577549844973775331921326506756890435149387524723237005923884287087993177161376056565940007868604574656409239149980622124548316042939310141617356793799790186131346273639609782365432266521654785986301443209632975284091834360855925308589591663317213689152815955323268429064896371243579464651607850026486468305109856768931227220458344405515846918406390397846801852420753178568724874084057621666884390518448350130047652502262259921154634016079001323788717030482863263895329152661012703806547572630755415285963154690232951941132113167155179074129878241332685569432825259345579832651312372606196731500466193094480208465283401721424476954539222326932648653338543683699964719545369374504794657258597609844352863240366405462574024471943964936272490235810837751441517468999150040957345080093592357954139478600233960268344914380281828946268338872134886947441783138494631213240756138554824499667626630796484657639067218937999490218664544384187779926898487568426515041768108478304094086100514612301984532226976229251164176338478906312570708124760365899378521020746351815767350000771821577131994386218671141612833862062045560585331371504537845095120629720239220404596689771820485819395105837186497017903361027014445882144326362220222051133173279854863489708236791983999944937260472569487633061122196061025098197994165642813749739181323721072352746793341188283019981855874290421719239220222618747989557020629940075616455972012774913929174716409635932126397406064382858594491969958419854503168014475431915017935178155668948627327610166676417378321523273035239989414718871732962732457078765276685725166643914355774522393483571287823530805468817045605237261429099923879932401664196251874190253255545055791314781593037745333202137753444637004503638486364887049267940527125679496982868886395361329475275521109333100123440655963724520463507112590562592333648993073321681787346055110239863116349937478177957145730292245545766939028139199246359561912183695257580092757184528000138390625431174859427043035324144846761732671861946326792534761786956754901547004710749791061842448898518615562006376406955425289945450342146480969246853317483966702621130324667461311847988595708283372588575601962964941604063343382651448145475658276358328428158802330675525970018274545177711810784151866099071956168508122345043384917701700756721930864926125495863991450933888243631649724028238545956717069428685364106272538328296498158951231925806445238535627669178050717415005517767295380394340585735295316671623719240236790227190911419707172781453071499495826652185103542568120665287752746722352180704697863912678708856391262980887885524776843422492918143920924117915727915811593123155093488505870322918414971657260842073436120738139750575316784417219799975199679342565616599065151954285585050536745716793845422470960365932794315323602281671725210035197167366868712323406544104490968561803194354582439997169693012257236088089256343932823395232527665013530382443137645655671134823387253559683080843887120054573859373262815861107767802458044649092505476834093072436931303477861851930349608419822390144008814063986331708651729684431555143057238967719985725587432702938381666492380220207842655010169487049679515942039527099017131364913488433765611691184170249033873850077973207875521495046847498416814744987800141790797289682419425376292002003231383260344036299292661143142946751131498319925563514189987800256874481859317527743430192446998625259858946324221600631824857261217806215215722355556467763621671635940061730921245058920634073863771914637200109229859266355327601208456204272733257494396006954491795853712491573222445024409315584531572901563206908161525945617530284331345410377550406253395368119090968659976704603806543892412432887660194395236707014568605746840744401313082002635293448661022765486597768583796677190882145546061421433415761800614747686971746378798585119047868226977335956785640297453541603067160380421804463808048599760109713826544882441843921313342181831461357002318504435891405347453626655623967210103179059065983736886174361341679910230037794738085439488310256934866760924961803681675380957421103494077867332640598453115118026606293174341083231009388641543530857765067630123298827299658316010822084761914038381569037608974287447266510959475652287234557935199198239759504188041887252492151741045850266343350858272791596879876934813845628602045113328145600762722746989368407757660421033582136844898681955061634770585924681022912613866992516845610374881157233223361247052496044461778053142112096997109907154840655322750341898644855404690255484622298071849442786925758244178422591146595504197644220974272816788933116886969314600347115130459312205785102425046925133964812576100212733191701811512531161434595004266297342132324788934408279972257036833265861742183265944473580945842387848810412016160944396712185127005676950577692236955818983300751418797322181481268381958843535140476763035684961643918538643178304914068283505110967073236604273210830904524797481192269239831739134808997580245969115192016809081478122570442239362076198889804721495225226686324148979267230929344404351037208944676401118189786174780789863103899417921597646919684679974768964846951382227434815251736701549236208025097492018231980631240392396776058552584030079141396786668703590442667400711056406705619083710623999407067173689138376418636526168052686079997690431791602974627910896176507261336823882191320011955611995447457693616035997288685715567206770446897336521416013526630073429874487744418344266247972137386616600537041155883520275237701097942194304892403670029484435485446819707337966631543370101043070427195292644977585471740144382714509409547513277046997998080363092462141560901112607860977811580179007873358335348576812841669152220293747800776866053572683715550865897383421365338043937535081635667820072621058535163494888366882025059667050592436858720653446387179905638212566288190939088521973872274900512469081627580951128891630718539700984128681211080306710851044431547459293465783881154266897703985300046396767314932073879086052769114648836960636239881888903659231591931722733667833167193229919826663687350143086995230346941322671214302013427152796560454750339248507111144306602894124530362838605838665729179367842321560124386265893528459800225351543725276525744094960779373246697867782173397550362848740846744493558676694218878615992880293887481058385423838211441167409859374505331821003804581287421167311498964120632611648920540415390839413802628300968811290229578678673954198176625630488847072760791576492376057717501750483209345038547130503574924400913629066083591673011963932250296308891628367040659455092680208697842496820843582110947632498655898147425069210586417789043932529331531057164115868312209519342076897375423067847924307354961343724905599995381079642166955463563738068711987475889072965142083951836518403682246204705442592758361541958198993280089620450349994175802443468522033818337580900634455836008164032896647937569225668602238567889371408304287499350395812912444376702200958883212964588687520379485630183273804406654141650419909601676859304309218469632406087974034241077390100674068652088592440283422863460763643440981116181712463653761267534868294041684040547676642598352020938016331076845616550572350275845379777892907593796975710725979139827604379447698763480742213567289047263340967652324380924891508240040765377498815961317421520349079472106921616452369781358179065415910650849603427638949063373199606986346538567903095577925678024125871574412506072522559846946710317722460855863717432461241816363368263383152433693818007326755171331514963339711774229455947556739945759137843014429234059146183532741779354978568079109312765615300705807605499518759665708703986888207513140629363399946230440779231963826848143995417072870302220389894116468489193234082719283185242806971592966405176158326902533255519568996984812503275203088888397085904411582175577671717215571106274429633607357598923107330231647120100747184415918558667821946287779934480424849863877809348130901306436735170782465382140939948202115475807147078146001658483304897366120026147759752733638758855752649111119307087243109433432229179762266725357832098825900581131726991118567383246350144282808152897154291468152169322242156368216757940142380755924779341848728442088363092394889550946565902419151915918481536983420229470627720819118385121389180291102057739896879860189209771193924653386188130314929541270917470006349104076312211916755644157251875352730107877899140053987143707478856249523796083273471939133794473243680703434327580270849026863612603388515495139451597642402281251628063812690784166970264958748766329579406332740714667465448939129789564642191973564072863549568419233587157339816009261188260072341927437197902733212723932218027668958130838109740526826631350984550037004796091514295018253316756612200483275340828633896197058809385188318497749630614013767102272286762028870337606491007223203933619650715748269115313457398139171895863954776757725345275468589226630709734606097205038878538495611909472309506732125388142317699405654057411969274426548006533517991935359070069169796043419893894132844361361157907478189852222383754188193422699940907243873706524361810829755622858386471767711408504097203402807091810756454162619322158183022029833540299891848260894679020809766539264942168669345604972634993160809803757494722834190112750135992187670299930889768926509986167407543797807312657521237415587368930731968410704042950158305307098329701401392519528849876864013025712509579466212894737420527789662305426214653149088933815146987557667618638975364285889566538501471245257230647339858813818337802317203554645453288191733202492087456425718450235521721495189468023778483988525398032093109108992162551608023336110523346005110159193290368725514907720778982327910986660823834682161657557331250613231306302294195514223842052003868438270418521161390162234481321811966422566848837273813751340092034327976763832053453228387648164716457611339222400715070482070916285191957611062169455995949248392603508938472085429095586710296783349135895970387074513922331325557043121225923267281302668516910955930516564218555508455594458919357070059308137038486283167488739012786024764580907101603730698468679522673940337758248641690546262327783819848955794695454516311463605524580307798203281378764871855197685154319248727359191803440282540331483556392666738981584766875992217540464444764593487541173724510425029632797992885710923398565773753541563176078214250714423989730596396000076888787567808753546916241614165542711461579384582093168863653416433743498441284893781992806332544255138951762578961831906631208276061206919368785497261901823958146710994029700246478585106338129950614163464595265897816574437537688296741575271142246650448967963177023050283847109565852549029028125222326281930537769142205806581153323909882894528482277644046274382829355513838848609979978900162572251370859781430559197092122084223052695168816369109004300257680602622518791673693819929944554292033336619347619669413557161837560068840078248060918601300766024335361342585886844728131850296115100360029901714078214845569193535090109234193243919835445184711207968531849109471549025613292031567732877188442133404128798462461620453924724540597444114004474527366000666663570762505058439389047917910922194888479614967801873501430837952865154337375135936311870923648372448136674525141437310885483599865372675074034708063906005791234296941310088564277269765942589981749759882173641471518243144673567883151345901929421657256426750832237572830486561466811625333111109712195859774291236107979150592042859145325790633759573391112350544269863398805243488292545194626486444835329876077534163094713917354039405622134715870549764605837209879214415002545893984109239878792323479043947222374879901542767123919025863438030869426948176775026158931060774923836631821991937025286365560443810994241053311422806517401423781520576330730479541306599574661472090401153566446392412782357265120277772060246074449639326194207052876819693917746401744212366623976424151747396885093153231089961443736329985931095812561168696280303769185624296034667565593635338553508308545835171311126057740477221819073031945923060193002718768313345221695962741147700730170202721759644100251438222066231776152741697879553865487414968537738944647589217271361467410269217992511158502318693474790224444542583069248227488949764949364976817279103797208941256612072682188553592628513428507215742979586879627334081640459339262831475056935448820011841385321863698239572163681381464808204005805824221457723531600045579714556404343927344322095054046271765887995236322651875884790727014684866622267548128848662580204577372328455693308314320775555886128500218243650494543669895247503166200377758041349906792698859946099845199572314192901500450451459308513883999003121954737701318882869925036224480345674084945040462573012538211206834214693385693819438283612010140008227069856086133237602086734351999662100615903278561737329974725672538234435057658645984845861892562220744575769425867098304256679979305763680225285249509440859641401449141378860893008807160887497582465621283777722952837170740752299964660432461869401320359059819892323133545964614471112919815039947017183772570747341375585277047506816675446862646472937962057652851745808529598005445088985512578259881407315641380262270854874685535725462215445074795925317354379359448929379706376501381882004640818717532264534023405990639515280554516617246892767525315687214793284524396541546309215072857390581114881600117004414343836276123201720263657655501892697033677747611241546055621485006941438689775050430194978298442804209294190395812781152799330941884264778832382686868945905553090352423769176623192665635881551516717137741154360461246171177125504338333535482230184428399285751580180326746347068683022409972914509114702582293501599539227007693923500242494354461394130233785692320389210862917203745677132288385008673323034201351167309127533828428748022308516286385101797683386972836563242249167585904507582522136892949795470103882762954630325860840937255472608493153576488650200446315798998739680810045969216425437917517963605039835743681993241449150563996400357713041978657040473212722221227488301311486320510366924394393105303733369635144762095699524696710692881691730874826281151357524374556984931160800603053544982986710988133104073675433744990516217273312197747325844555869507425384597208079751933892972455139832231185528771485110000200862902547101931081904267468204701735766682793973137389885781433828520916675746887402699338764807203393864422652002619903485629236442278749979277278743726713536613310765110308813038011397716145381489303440373542929575824220638979030431145500447579120781470894909379410553173203395682420060114662190569355021015232622573950323157736052549386643234935774843503609194843139087903617891758270502432576287845509749200476267889977579603649725553231746229610919533893369187312403519583621599605204120140303146797190700951520998314435793641267855012276966776096976145978916747276014126991262411587453983918923989152230369957638683982727538685486898169030376507936129997565783947603002931241332525418285460709552497974271519966752943772871399369421052761997593727104584798623303030632577370001973327991238615391541868699992703875033338350313401758047048092770853307911681973529154103071765139279589681454481329105457637508426253051490810374329403628176828485953416669116499908012101200448038538385538630625528683770798251727176588916156559531438264321685883134758352633403989132106512813012594902583016465137988079990147000195340017699679886663374675330180902546991576888622961159433080382700241186498185650648724748428007246350212238180553205554078415477944343599645832179297330541067501010363312671917400847402960753828480654633428681099847838411028709616458446788158463529363447959274338642606762282456861698921284716693639833371762293414907284147728488179663285196338507568191481138102219754815822459750519787102786262313684031201681362172903668557844490346387949451262648458862332079041069375297696293993473737961030050070577473542966141304585532815114873254883566971963041638738491320797619743929188684660180654848005948870645584169218443259004452471092359269318345718963941404950650797781890400610742718696756491802111602864125180411910324570959644355994164344089274260933777722274246473271960334572435431183374146551070764677127876171454135521487969916234157034181376215417779850664789794396482280556098561367517757672905117715995647487720063911030503275513574163844034084722724298513835124499325430227564249092875198264397490115077770146133961291977383778358273028504243104175426788283050050701636273827736160803671329811583154738458549559470036776826335956887109226081620709455985807277589142263885200284934272177004038977130062799471858478311922349011661568971870652862878525056043515048558130252614740644302067635366878378602014308181585764419509952827300564003818965319663273326962639065885382090257520467408443882690614247481356125118712967898383644484438070150899243462542262151263864514513609941923644462715703304335581523078486108705259300508543492118501238972777414524616185509643619929430029218943681634584560753637243590400157593590074723025702900474171473603127624341400996272727223741418022194945088540713121591557297651240569473854087157229407557784937874780935763517272418150036663473806634757296588918108678969536373528377532881507096872883705955491716893957570665362711377650866338528383898422178612247229396070842045872524162522156657106595481672834700455081387138263254392145845018379858998720726901984144009967313862331879861975358950921580730191017712113797767524820939088467974290745988431438962807606013500779373410164512026809729413734742474787546342914380249088357285565600593726943061645250283439648327013659885550607872846218953439873160305742983975828533919921322909360547231484061479493949359932403762130525164658278021938381914216018421891111437028254043797701541331261929105802084900896990395328196412190479919251185644851419343373201830840589668618754718720028683704893071097485888370173133092805817692473423754711746457191256740764862415633957013169747986722059260831768488221458169814493449744327979742694525843824480578913156771747938709313312072302790029836778642288419475526747533379264301947435339177623840993739721822817685751946622078865334887703707842031236513893179080988564163104335652662697114717454614285255621787399066175006888726701399826309447854366750581951798598007681199546856884505870440222407645082969432675418075384038836362892281183403490363505683955330970614613584965087800926260756754206253830865995091708999190464704808756087648950898102425884624004744275039766227867588786202426437834404505162156740676476589858129228049731684493136365317680017918792017093569154383787288083461983240021744355812485827389369394049691032423233182945209584734069014414747725110535214761463426185493178360498789599972886567249548026967250376572215954329406891299636122331129389125991711879622122827805127768039829558299479845281573874804730539601766412032967116555819234017865945827287417099147218169107100225109323343211350774944155986066774054644974985747911219263947047633486343771678524295794492297345423423746651388499059757242461582173929729010926472417965751190638522619445016945981070762960106792749113874216817849916694377234017480370437271334380451205077321392506373437268513306741051009308976874697204442765759805972399925961355355098580281889367332673602070411201998756675656422912680243944633188126261841891817718839520071522184594988743225109437573658173648764774323549340963759408365534378627419490811958386840165505385934028807742718419367412073546738489633579302712313613293649663390544502461230808641127093200194737056730970416762522984408699796362613740358765573492246824226990271552977452817768329069859662973984024260880154586772853032153407820583839658367243016171768441047755081245315316000784254880214443040797190168030882860417533119118282607122971665260132339066078797605565422716540636685743269397462555641292583267552530210793091467297216326428108402295922239849150744059840934327650020796513893187761817705925996217068111704512454247221684354154798679178963331122437018693631499848800575377307838844059945207430698645057458273270812442975421457283296606665880050851233567528303245446685477922595710035949974662156506484821448594518510701950017286162824375740655242902893349904351702537570637999531135556018712946537416686833580542988400623882554460746401912406061914856160288323648478482881025418814064622818029889984298196869575099708427007359714913304410056167126214800106808170941342767993902452352071936516768187485857010082681779201497350487325852174382204733183227522128018142437976273799528776235476219279776938750026157363124802257759430200286300574250958558151447884819372800201396919012981196235979179974008708795611522946028720223057837541841028437854887980871519976241769914507489163391255709807055864242456583660990303761994098437855532547608784568319455763003564554942129404792940321938605342272074642338805836583577016393636539292741055717926741782848700267175505703305963728862180621381138504589847814065236827501693167367298911650961766992750090287977203045999667933472163027118538872000900796043137109671202354546649676775311819000350739617354701798608273204522143501082394048481195283318372954716090231455415840262405847263761249324039764594331582923943809866539552278094127538531800629760336364978836353879495516549150292341399961201343220335493280936687627604051981807122221329312289926307436175179698326330947924816656337207962778659123888067491470002792275793446118594882352489801457392931836774480034837921118942458377990136387501646897531042741300572783245371974483415866934653893926454941705760049710148570338590491421334266032253674799595921780013684124487022535849842208708507330662796476876953634047519284508356655598390382325986098433243678052767196257627803242351283777365509705388800964189131058223889827582508537175406196335742095404500862591630261582005237937822347260998621138120658321004106729506460889351566854600990555410234672340744305919001306005617380197629923291967832199719188099449990297201060094634003021040422681500870699857855489367365723835908996733209531482157421209791702981366810387813963085582001750742166923023161517986243421418276362330410535806725128111418060148381823245527207687942340529562817435626728043420061384465659391398160005574240786295979834291084598082255434408280187018984875984624120942918997386785125938692360824677409568987526444384045175273313357187943463189406211804501679253567121815314119898209301037075985741377928597078886304062835741540716304345036290533271741818359786711525343698733757528325647704330319726266885142053215416925753170052482428447037432103706169976795300153441932981192825295238349387310310756601887528726171264258035889891801514886808727866934626374207624859989968196910102425932581350037757596394047470445302373541229365623106455139312166891828026380289070681790548674211345999007010846938786135500926043768943551503210845112343914760425580254876720258166783689589547836690736921794666913889164706791747546309270653069422422257074721163641442786159265287758311304604243066693517371455899867532569832253194231894246450269769994506213624287396575880726307755999704068721460067980057530746831254597876702002064923234120282493520113443394079127886768766039012989235753090202267814347436718263427020596166470965835195329180744434498923813394212822326878939215027408952754165126487721126296714477110710805510820808746383560300375729466362094575185602077985203929691009116752536778116586451432222398253640435133392478554894366997774786546439053503101666405891228503507259987096569922298328692797288587095680451233988312699927701963632795738081492038422503913136704834028364724719197630325794147562761097902035597062034222611873083857904433752511936844213187637835849652989621239997495111883172442307519997337279483096261516794730820391440743522524492408995104902042279280178055650793149773743905012443525232678549813490269735091331624462446578016022438066123690248065250036349388952720294472876028024117967944805192818843822184320776757757347484913916361100140132751902126235420301175928330760137403806665379777425968341114616377940152521763304286732269176613577714815103505526312136233688922315773047787587079565197450224907514703547766353763032596436276202307859992795966611935448421849186958961851419558244380379829015176459694843872420763122507224793045216395098971283413693667680593055768717807324506720129894765742854358608986471663578999108245931643927267923599145809120050293395850868564202502394522459563566735777133257320049942052070284610730215545458045156480299218436796900381622346215165965949262308028933069918670514333340914118783894453923755250292981174196846844557668755160799372273329844100325699838727597464382212071205443295790254222476354056544349671668830756869784165457946825874344062327645621400491480912372104919160588705527021465695847526111446912743039820431236967156900972179859452419675138998381917363894373461107412885186858518839847757280372996575361817860598722166846249693057366967046487733731235841763729988204955271373083068180212563076146174574007975960379502554496384558032274143010848017793591459199561059219329932914317354038716025523174708683406013545630297122347730524103779910403071102554838320730502478592222130977357162314879371775591710665395701216731423479832703407007590564037884656371522459013405637120459708590123010811297581569528069486386481290506401127009831569600138056002720014239051417887935256807528116302962022821852943665104566652271009338807902178301065722158989718471074903694530555281853136875263466528416047370229935700290331004313043785833189240424167244445802588227562941875309967268296242422304349299796999018999023589441748651539758173693424641527356190807234099930046236795160785193872120070325653647239180480381079927942529028662065784645964175211504885555770307795361605653703226684815083015994889581657956468936536609682317659785518125166268366897812966344249262458578482404366570408685064769616034943786255930334235449239803461240058097000921616049726280014886617396734393354955725592269653221916318591237658668323344124075261732654378645425827367357512058200433609643600513735018651853894775775008097500139648637285438465691595790470164774079455341720850155854471781471978371251602656213655649892339483551836321619986791763919699943651181100956884681877991370733616353426638627356723803087907573739633471838652687159908752586934244224533174421663712401594152485981882983670919426099636538344441343308250010037144046759922228763909757070522740529363843353348102138957342784774733362847643731038818225604179567667122039287664061588227396339345734247622136373246923744124892000753587825224191893048599299344521299530640993306821152097753749172164120005267235522642634242434246754153065325453472586597100197187205178159055575078329491054764914202171467370598969934290565976229503540954153528440866159071638409413589491215969742248510836720707696142213480642994057029166457501365114608295016706238778459428106930070598845749683003894349635585524417912770110803862151404179241059328029947067793352741194960792054877459229657272586408846267339830426231056351087292467349817979505778876480310185548553230310795781399705905978744583924221521503045526565422546778939923152676641677012949492581640700173450610255529138231891180120451170521922185537477899459827056504677830687510672258466007208577157270607218607141760313267743805907536631672910008988737869628003366664467592287202395852761712540732619853662882187170871359236435495825936244125490230879845526414608388057830057134381087322145131801478779081622166902664460118607146402346944326922492289093690765570191804628970936150840442652758506852745500978791747033853644864154140613316353239160348077959917297221968677949527271079597642703130032130242164324474453133900471274404520402588531026913861929489212688241841561881317431610799592034224847109700760298196107374208983954471109244659717580692738741770099140574386499535034113249738871165211994864210427599521479907818832225002061945434234350623126519675968392790847287321376994129431756971766041094430094123842903776379081348264126714495702911575717672795696789146047880516234925216947702241859767144650613100487984433175994502440940359961398076760049853396670948556674462824196442250753091155600820033857095411968651839932826930883442333002284016555655024711984842374269572232020196287663472938359766186745781308392385386615406998248597164891934132413056495940097330322740651252244785685442937301634961546633945895195611662745792346789428118214775357649719281669135074825572880121564597666514464129172299271809525065178646864440388470875223482253883803682046648182178767792797842412023987871590030857257934944407446432709852321186560713882170007486706683978615634988885468236661483593336151180898129168860609892946660463630711944410105750254928020066662469048474092192347159318193535975249750562703378756060966224949615064463247000075360652699963154305558733450715225602506144198415466612039200880275652969836171704020683146333591381847742377577108456099783721057336292460167855405710664171093479337805290621418735449287567473204512241122376730423901439062903281714681386669966305542102353471077376969959171370951941926517805361368696745479547707559458915231824975233507131371299435580914609374453760126626428110697892170390962108487150510448363608343833375248218525687312104711591435685286136093692890832522816868352947012666172787560676517494318610699736983964009397418465162268385531856299756051281600906189559189698644185880272695057223409182204392783310666489563727254494071915092541958589232480384282667173796069275381511371516371987773137861143682640163071981623810653259908037091627842590924886959984188907654878386592270473401620975637177791852439907328477452109187297426395398903789752354297072853308773360942277441145510169611928870464227737746906443558708469106101388920164921860304810549289916339978098160219326942768540035488371514669576402390778797168845197504713778973313464361912683666496725459814630432635881766914892058655024885099082624749831228715216190451896596626182156705397964349549353541444000010198832185354410171163984834505500341004758121403810157904641372250718470538231470165070985500517563803053542168394794994296761301823787124263961756024776960500771096427261881920742532013431829033409294253443722513349394250358038269556393123011387406420883255762296505599112198522977419195561905364166316531990006951116147676284813713502420563712128322869316468936682936681430359078132969020189571288072967287476805229860406555654911889716184919734126762502209967564702545173441582841144101506083756467056778656503100430620606053745862399240019414551961915472331081039059788581432873398115898912641776533873635274893336729675760023145680970584694504369260778928371240188513863992229185643450894291981774467463178606910753551200462105794892596434552895061823289126904149313453384943382362220100370945028116058678154187196668885973212073876206251059747993527655429425514114323862342789523980309717034304386858197605817213127489530122758157033245605270656183304140413837102237337472370066028145163496315443420406505867016319300815276009354265454010515139322718869023684316050926834185709586358989079585213865924910797599457844647862263929141140294147794362561331035228067405791950978890795280859608308464658913683118112337049859176592331090164552958418207355782029548172995657723776031855766050566080988975217768175161453586403799761988969778401639124842820563755009403170323306557459577578434723055751694274647615829873917920233808862179301571657637192090763611554172467950595474754799464611842338297290389423988674602325411646433560045120855129206206867409525187927806438870150273433235557026923289083551281651630246775449867448436623414124380653289857523048315138800387556182773511915256440075662148223354229578230962677106094243699375435221707596606344260928803119894880840857353763402447984837407306232151086272642567140643392488768905979036543812781669572573103927384928177633693610565091576732148582513343565496218994254100566323159943911889118963353478033072545823511852784123665058894257473513543272642167210778776882547538155648263153257218808454149627500536474886302005390272926980310599386702411833170380446104235577064913996113692890561891171256861913898621130743396866460793801200880966511034771744699175584937687653772684051713234610422542566194011967840549348884000265301252359551790440469391364136437564089668841047208325903628362270312766741007301690444091588186446515963324060516108726666534583446537778491946681212794215529655361083240252817801076380929642698817843272696790187651089514333549480348933300942733951123742246434718259543414572961226009215567206373175115568465704689265673930619175998130998690532706826729228580948939286511797982123499679509854913424344914800634770126428420154425417511426985385947952374262098333162666239917422902006217299784323180801148749690883362240537127750106887292391537044131060464110161123624676226539033283195448224618664754593679340472669310231890788309823484596122192713480889257609931919540799351141549110615334530067967733082030507363569232667372172319645454072413867329612669119664506784122855989418432700437198788168289646663943822420596497677575167740053025118990632241792254948127513071686254451922704947344977104280805823241391806378417795107945284374337070019463988035029757940811826222845077710771835558527804820713645304255714284953076903974964285851121095905199873234741669431064603358285443655626014697075493207223219414470551987280465641116110009701459299073756748152548777936372500155480071588205954481342355784099545988837512011162419055804071082290718508053109072984958726968240795392494857205508624363440784348078424855363507303891214513743623245896886636202014647064210273152165807266056407526995216694513187548084786741230475241954052771519021477084908997266712053745747084357946410940664591741912262123738555989926521364427869116444234518227434902997752735000568214661939584489730320534343490661132599763551955839682269259306073373191119154202692021986361748418413320053814517344202729482089314681995194385728144928737162100121190660914354628751838874755176055885916574100259943875545668796781718532637534348796132542024278476409099524295590548722995659066315654855086704841256877247617908992069291143051761155145259283820375647832428439350123248744768671179054569395326235264691726359946030350127167586635212670421889815921123310986853822649348044772398023153636471425969631745510454839313276709116906813230019131653299956593836679111093796919721937659250177077050167363303042293594710955896714895189057258815837402652637318089458081412664274510704524343456007495835092552472758609127708000990725516112428950424145130890749186580973385708785092082760963374150045661094827683311712586251173299432743896621268008069128862203493479917012029785399995052045727725104609242071676152583394299851977551865365429729198441331035443545413962711593828625392030166942097521026184211467682688298531066547439004445090237461167748337383628538703598506006365000215431223462236089084788827135976939162870176991787711230283869775169806086669437484619370966287576099744870142882016925049361068818720392166114106614327209014863011553223460471829612649854826214595263863837998648577725458250131975343088167629289299073013231852551465462654363039334325899028208428067906354248300701352836452179871326312398382425005701367877532718846763551906504059280783721832360536611362777607916674625419180904423762048577428690496863772990857936737017992183885600996953675573313227175183453795449983201322676768526767921354973082734315990331036218362186907996345266386541170354033379245887654084379698659227143246132393075347644983414131237650493694591938308854937605779085094791362634527062524743600395663235573775013120414463162204807474783133830323982214378501829861463807193623197331139523104777251584299654368688482110994661983928140076324535291453108282193458343011093293025647553933059952932045003582345027337119489340885424918725030627565298170646825782580453885752873558223199286028228988183944323567657348136263789631626565714196313650981022172177234511801002040040096461875041400922249271559009563014477010338500676345762924350604424385607536445785288249611140121881911616867304475012920957392536233562086747579660282270430534098591260706455833057527597671124234614534862978580052056820261375240322507846401734415049537849356932226270334245112459176387707397642108372459697857296789354944336370832637590508863381088532606664210153251237851674949063492698151367156434247652149280580596180826058580993810495043107042627683564124121422198340339476142490470169147061598724586161079188242410720085108850492743013904108989033356864786774401672964585787669420688720162861459629919637492039932956495231599200712516507939344615006092339459880270273735952694506400443519117606323177803400340101004278557820455587892454696634401282634897812308782742056333766797310692132531718407730642919398360464059947458417289121640268841648650833778196471692542146698322517769966783946119323351582739540233192729619408221764165189169423913036548776238272648047020090450713100767260936999897071845306571368711250269303919888631133712932076607811605396601064094529028357676770493622600492532363932515681090984710672377808087939650804306307640455465884888661327078352686172605471457028382441297860466462576550197170880057563752312310766692644185982690263205705748195704442956494658839476481544614267729553578528630729461333295713170373772725012899381344237486952965903273392968226393671094767773582957502354713962542216722043432654111906945228239755371966037362957714585931346711369630129314481356387405241870674309210813000162106722220649798379384553383748556975863470615979307110850270443723226286324913182249993776864705914081620247309321133507489157444155953419706270848660077688816813651618670771243144088065976803591385502490533242715031963679876268282208763278231928892361285245536213211486797793712860029386568468691917901429431416621217889633253469111186669233257071136509808596690750688296349888815795061849347174827351467018078093673125234418298002652829977625481992848772510938786252584657451601387501276613724257469534709281164115473085468512780076431836962883550654367916905633799502078135677978533977953066057818693594142520922892291959656398112447386797439513805113327177141940633357268799766663990074659063197798054198281499795776989912002618448856933798699918683582486101396336052110742400522335947504764431862457770724576194102779767658147591915216838542277506166022723134818858649022798263468761069507352692004450505144677431676164078634888825788664076935118906671932024808290950371267970236264425528970940255419506623015187482204012658172298841341862454755893738117447609178869165562600301754248297928018690204716459400384168659845730227086496450078885770926165518730176045526983128582896419752936320603839244300772404157393063228118236703698532055986328857041379348322026152808091903404418819307217000195163409365296951818445312708325253565775118977615507267638637513709007206966498801960936299252603146347520551009205224871594888073708541450497092484961588516094979621589603537194520461452249503338452146017791390705606824087474420608072974656571985738912710031874042131971369907043555168703595116698253832014939011786901078030899466340238342468415943838257596161037668781870358673590815557977305284341754924203791042716206901773249861815376305637311927625321002864082142643576958685613107470325925963878520517695267693753996295149189713615643242533834928575650049243807667539798278363630323071225930790718441634955611703909479203182886779651180507396434753240909344329955108467353670679491863384044942842193028037472934593170011451170257656691230289082621288995328178979620612891032849014242822607700124011507995698272808783005199054083189971209431282764036596429022008260586275308383349062900195188267824716538357706834594749597718356771770248723581319183819757747042280118519836557394297616603500688095746625448002635303596486458676665883359963250380498936442958600329640989086304157802473774177192292046482395731509883773675575402723597181987190159348427521485574477023071262268017556057620523564956771929723547739671612333281262828973809413073753535103774912569366658777862438085030821099156711268418228596136425825768260134010865726712108906241440717013899673712958120435129118996848869679623154244127549668583901066532789457692753500309045026703070219372147464113889437647957783137368203981189458977527593617339019717274094318191895483437204648141824873912765679400070475728897527026710236469230976442097912978254313370220069162373206051132190986289642211405223455699975546400080174052606094097698403198063674939574298032227715079364261325314368271406275246372319325484918975855677751935585461535447783090995496581565861547028648023969480470030679945286066412985348699533135905384934029999718543718695007125197905984804267609405314552629477366507878825423649430033172794455117672912373586095909363755423471600578395675334542332764438089560044034971290217958538737581645111683182243778526113996410033344361865104791439630898443357094464705297724583283900066690313658383549635543441455575491224491423505033795533458669446436894591382630201375000677427224088886201058819073921864404379258139993738346646103622259760098935489904873959746032766355866436822376626696934623637094765514923866551563683273147325986573607227538985901106779143153181009518645345578838979620858498547527830173129122251522153999117856074450817709113431153645712868093587575864800366966219035329440296917298959396002192939945190340708357676027783116728280660721246086257166178431065931201170366003068601508868407472243416483383972003201977895308278298847204396663619888667545786189121928558799944530869312522516447468621767631311966798083179956888517412781165725889820107993089783360836465507371715983998623900985425490399573521509968117891472845412912245752437745745876231681298275187729851076750881293557753621780879314423659260553396577470088974354846167626246071052096362220578177266315112351216350713980108010550122623397344347886122357451131368137105112549887976281900772751357681464425523394150682382620350076381848743642002183468476620250093568504924569035869535887442289453953460558928891518085695447520187380284503273880309224164004995967151520213003778600690176854030769259000328340266182576553174348572817517198953850990909725179645542592494053738319947362310483730872141323387752817346651897984664234326368947399973743009454206086274809964996763614564213181514865425582839315500809487127128747512944846102826776821960607381505229509406810216539876086308757110959155482481355357813697950607629303073006506134777503303589955105336494027742618204130278689866981643636262363008085619643385550841434985900929211509324030636336924953362701373327055650479778767005971904423018195821997796900988194754671516476941934203309374298276381144007941735479166587790318809735275579360106746012665907482593305162420229635910751460669538487494412975581178374881066152365848261387453405627297686433457484693707638067362550241935598069883420675741031783762918238970293263997169400908116839603083215265124273749962466889740766712284338595073376177765933997361322524989816107376290914166247498159710036438605013051898629269990828328464141034413753123013591996668620282210002350845830090545570283404013668245895485833335678288700098121195466597785159881785915632109697697500173827975416040644329186494796215478317829990230101254488524308515531498035616741448967244544314900870143295663980660185950602185656904785948030800492586899672594107437546355116003061249303486083725528582264475985816438721006455576676339535311535905998825960457142171279532367406492319102946461701408933290462977564145835768595931947899077399094414246754397486638620484459048144349209481429759521834140805759298374539973512058473954057088125585945711519432457995827230623679081126994434231936461217135837138877249653081527611228160988120344685459905592118762008524638630283133636750526964930256111516075017128783284295167205950949773465312215877033113810242877753120492755161312071129096642683208864686942889049770423444994369232508433895965137324450085729041395737817373719826658640890020841452876853030702966221074360224129659003041190788815916620319964163038399863001726815281149705659234963429645941575320942496571476840194999910353956399711660741043715390210453969165247313435620065443606141006770995591852421328849589525014631276286464016110555397504751816438419499793179865116361826173183605556204572716767474924497883659220302376086772959040409667387505662786800540537122665337381259026286412634127757926342683540627318530049315844311985541781747452144481116789591243563332779544349975399784466337082862740333867138541493676372828323964787872768844015886730137478997406803556621086521461896520945354132763940301156023378464587346571484728647706528789147624285740073401198100386642159547193188784493773401699241163778962954402109323617179455086897383906249230383534703435321309619767148803222697168878269274205155503265346848482465443824276487368514508340731587063133029740135493591825176156480144992863840279012549439798840022540760616092467700072816099422335237715375626256572359526868304376069704064270551993838773594783540134928154985742354238103490668483300706435622035038322316500889931646386715685987388687626466849354134499411387262614276718653629795160472372759367708623333792522179160381122495407290505538600496997012430531250723558914600479338070222373447324928504435308508736596421218266376169377356191627671384230281869815522349718269207259785679949557686828122881501723140851105071867643155657156146372738482365726666171861161808923977192224025349854404834385668860744601523880743878078180293758403222390604479507796698535794538930395580438158890904231442146527298147257355476661386194828873822937973534173646637350950230592702105717057684886895058285985470264723327761047021190196429811960583713871617880085683522919815531574382008761553786277072388395930632719088858598729075095713660548872683035133469840420615547574363825938573226642729849260088628044959413227184370886068897176440330258967207850339903492860018387555696310586316244063634097055572305414378850175763905031045458249738877407041884405572390833742284962338033538354438148966809591811817247867762024093909296552570425334715293275327485824944607129726464357567345286798063155659931380766429582220690755081598241364742419029855742049863448170560621499368498449579093657089756616343793489145135158972729637393490757487804963086208453544977600275808941200318178417554614470809606455414650218722868476296828252269787511751880391217918082934087425428957372989684472725962090621237861206107004001572036328653472384894485822048025212051391344652550198599024736215817617967159724591020965710133044892493234944784661054655505345088327121666119806303362710667194523516810166042865221882540748310450428708690590269827173191461407889310394107897229984309381613155883509752130871465884983865390014749716513870441289337829809948703505527298079970662045089049529405789470923388267042247350497709364823245135434367098954066304107387083724803059311698473737037442087543026419886840650216254940371224721584145283107895925018394146588080198424510175022237665777337917308636709149483052184240298767120680719670732246818898178686384182325089924258811060071212331828963870964678217982398317103824750990602579351948019079501815601720962920879196411577948399092270053629931910468630300381511489231884885683331444034919548257089298898652761544284147025965292184657370112752955300810123198451227536545765470330500821701303946792941820758960733869039212342381292829075956355714399144956151883881233348221579512710314250406516345999677295362002687183042512392675787617008326755695848035236615673971127897593456597341521766861089280813035766261453586702943640385422182463246828099154450184897393094456918868553761445331375408586434021832360074617532603506648160799445160153103043460257539716228207579471036993400573991701280067360272966998501775419923314216413784676402235094915552245984970051277611177340248772558935300945041867933661849327576773240379415328917530011982814361078568318507933003649249113629475490339307894638889743163955171226145483858236943709948596481832443943096507671838573585702374477988502070777277844693709716597922593203383507261512242922548452361547207750823219609261598346596167460957274454339852519373597774292354811760351936105770853807460434805089733250778866428507767051145099294710911933878636080583442793992732062064106758094405258807967660326718090635285441479571047577534849626406230554923542934029614518811464510071025331109894709416172805198166870472928648765053641037792651783603249757593153300415617772515563791963111072221438709790417453644649595168684712705904260983838365538003369916899286874154172895396902621951373514681796871707834140098120429684858036226790145398682650129672336301719008993353082381818099000025910241272453459413162274420513815840149575965046879170054267071703027040328067488841123944645003994983665270922721092810837202223694864317035180404369003791317854575530871210361012229403879803874555469608757924206971689740495107983112936841920647790460450156837374534297188419213492473356085244021585452201053354261405216739080829144018757478069489424195725441274718689095250058666036723112086499048636634370228464881370300027052159986314514238927796528125831859443381099008559841525411816369799571387928758991856507228660490952603368214917388883212201133604211977335006011271251946720594537838240068591330561504569488503579759735578439009374277234183873567226465651483704210065993718492008784485779989460283577303094502650738899251666385662632839940694923479862448476891349554384356271298592674013057061177968094794992848450789149267573480913532027605164124483234590685296208567735758906318538727755641723804906534311414068825292443546377902646808067188050130321656050761116435935470972400922289224082964059513124358658089610792705863622807555508657446603554553359076854032717407705425277519169179517561726184646734810903969933317901342714364466896133673709264728330064473697358873347599738513787891851155061190999105495078295192806591996767606606771526656570245794377489879681459910699411175855032138916393218222592647743320988233881346223205402936840083254233903306143527146015881120638455100338253045176788528672727113141442617624993866655558604024634402136724381248140941423795511166498765832776144492928840380952142932287441716749677971276769711885161447185166454124391582756117353139612393181159283747384190045873697509060437122357162791681282650408388722160072953125730863226573376321158112112630409269743386901759831676027413599087313806238362577284104065630128171221203385033567751370388049767686571221988563009175322000747215616299013562126020064771239799699915829621582573680793293356227996753614922903802625457277424157620051768533187032275389502213162325206301383330837203773297043707414631801220105900440641768571263737975934269570494889212398813846204716801427204097246921697223443844383354049222522761052011471590679666856474558003312848424103753462720430365373914200565513698496706673502168352220201964457233010185691309856927942550456265750918518890466885615319522592054851989184511037031702811751523280777186039633859709323529492349097831071162674453125307922529043992616286163133659423795746710155832154875638081196433107201046866314008689754126518107697063627929091534293281099039373368880248949041300392127823582376059921823246629049466390678850516302385649440551965773037872712668627528184571690988114437654897212474991648228818921296572897144259934990368432496010905859266249569282878021578532346291530499399748296437906107344450058927917802914892694522620884244330818636703671910653772471085550054548954106049818280503007778651335535518167661531506047775444862612029175558496425597490600307350639945033448113151638033070995615599517916687508548926561736228545583737026290361619632915527230892234644698381427480793050717351074684299062992382631570760456211621544338522993937821375142011262433167438058591394919335427476021338184189807821785655735826657110090558511804480742363565195926806290644511611258911182409649939251347561711343385760643090534503878886311941538519280307305398034827168199732978717152835373320385158594811118497407144052738779248819786485375591622097038966565691439407805829615407810617406949689759832951756835184986014312690228486104581129523155861652699343705134463454680454824300795419751947250430977851862178220291731253551432446685266780627993423928002883811126597926701045965816299390522708501438124403083962163733046412663600839088861489550374857338846157663100904102852466228426757975322389782402942419289466299483244179964414050058391295335714147421265201233103982574447892641018117473581020909691110055845213101434851198451949679858013515637450989796101139531657099162869523358239549648448543211878217871055292807063466184236425583590322192929532601473640816271411901061083992207692014282962033955348032652280302592394599220510800163965164952904315717726482974127687358286614644309320190333855822950786830048567930476322669579411089067070726878966152442594043338084603181023415946642732217544060375192583445323288708338177442177966839347253043252265700565583161383267954436195286260728293299997547829663475921127965793819448187550131487867881111259758282479953016177633165364827345703031431408878787975406308917476856488431993101459819676798639133943514375917184776792426561548655154954407710145547057014875001247032486249329501637592259400832521648850987845755039111217294549423954324595632178421592999035858494135981126638578418908370955102092458358255263390089651854442355549277011424816643339860263105088929456298036795004288231759356062962464626665396680049943173451588784487928531680952470533496501677590563538340501373265974364535805274665118431985668041509277168470157835453326124375835845462026314002296687372711122811330132164721878378406384441008877835656476448477217215958631173823892483660013491350449627598199264267090835982240580426609988184490274509890583822152991444658470006747866084091824459002399826428910438707733647318040248034081048651588073611059586296177271458102350242169503655172155320595257424808793099091112644276983286536819263912634673699609025546175046186847429486995729470309794328548895371261765217732058630069324910243671263177793073978465092248917556556533306854323060699402835519608717706828608551559901757497677264226149294262768445323331653521452805763786923239606262518060595388342735610983053622939700109217083062113592091597218041030735801432069134968445596497412248205399175524398477619334244718161988802745416690477438240307822711922313440268896428827960683603323876079649049645876840213424315980213061858594452432488427007115819934898427051281260955209301265825112443327056707888118941652565857370329817777556921304347582112105282012275914626638156465536904107908970315107022551673107666949718288069579735693344962774342243474098614543517768116373304415244827688596486711908943160454111963381506734704214075230371556085296960448799546363396739392779037043998996093175093708000637818224690546097689355536182699724294120987205290345089821601942630972310179221862000235000254692553316500591893915510176276224233098912199877611707452075650477165469783980965709730912229741801637985123175474304003577300774183061069502586029422077709234602801678467036020344063160745684085902084586100744609036705543119458496975242382816763813575857961733536090562807372283966399788333291439621133554203484143810531287214578467039904569084535899974220097251168743463820671949226257751558379501756279596968335754728838837154339990191966200727464480885740556181080229308789226975573622163193848328359862539630442399381393671747998177276355614253682299151222588453286922452460033006875364563149413298291450503639933286581750387015909387748858351479936615392727390417167330052100712693835633763779109887837208270112023648266480845147863861993108460723017428427625346991589229902853670345472457354705262900595847385591697284744789609647490858014501128250937934988508291143086896124148985642853074230485806458759501724661146927360527380033901335915395561989858902647950732182626566385570825493512117183288069940237376210705317651876333266728615599396569458166243230603882723080093244428597608304123713761353906067132710604532647506030959719998983353720926998507892541310877305783625027420541033716374512265258418333818192984277614595157331249891798175154906368841691081478156045771187819016522764207112852661887889266564352391742509687354526864575990918173292847257257557581613700273338957282607881837495849421662281989291782482545948782683545656687591016540111235421028236323383861894460366198696739986095079897599278929587741468285657633832987417807914373206618505511630398872421072604227696645544924798876702637824694244215739732438328925284523691387560093733337199544862526905264622085186709197795982783321007840987492950073819996308257974069929114950807897886055425831058678773118621363103898869595496747927051243926843642367902980187764952333811303839439379198350179982777634136156495529163179132835826207280792717600475412495535876007828959552700371214374365628988283962392359852557752494060931779602591940929085023637828442433340425202551469379833354328000861497023156380529622742645343415953894492262756028019343899150809041656924404710694794651464480129170774549439326141649577339722213336600797696535810360147653209687229381362696105702618523150940222973089416294920310252604548508477520968546153883343061291271281573580873249262104757076662242719201193143861371776376102719153169544595148903954233087562172923765584574456510456558729118479205203160838694298293300040931711929447573592643600581390603971160942805781172367918044260848535661406632144891518561063714545520452978684229510731964041185270155890918783050930029977732278852969913738664892035489830084336037379056207943656535878656047404935438476296615418025317135240645002921845420914518099059474434465014195498031214243038632909930791395207898832238172846604765254060971398929763532982642939082254681690778729830589073940536906600246844030463377568991845453721351190330224607789962633049573436929075069845250373931621570753318749996237675602709480470812254277392285829315271777582289484205413280167908123610451041962964796707800171772097853316236480704626494440795007844793652396237207298628892484886604719079514844718575882537022987755419132923903504892031468146304129505457104454405467479193798108099467920192546419838911449343795798521958801201877158549425144469325559634595820714322587461940557845692352852654872143504006751959224498362334748158308493681417762652592817602927465080557331856724399039673551769465105041060005299185012283817252902493033731431438231421714199678286503066436193237700786721959841884223529356068158965184503764224509125135940716468188477391449476644928844954581955991077087079658835000023405841311456373659177615533474773064722371214161851093410218207849613342030374578860930746270383673246317583003279353100131458398823479583871656296864186812579707333926687284289875415887523916862169684070436404711741561805820918509537774948127765928837566067187793241881086485204948937786227096614134486778058635602496489702240704591141329345675729124712849598542775971214211767258298035339867056319820211376881540311205970748598587002710962845708520204324170999083997223244644028218247448750202216507345331048345119984474183738863952470388173496425146792872618062172543571268931025068012595638158414175662206034773155488351327942341158498249661061153511651393374067480258421753514309084191073355553797557910091598137553867971019212173396401712970924546048574242324354898096182752837643983927127119652372308127065882727734586713601822056854700197474851219224969548009551914516289812175349918109478659088839312386261048487427382837130569218941181459836769558228569117329207502359244034452281359593112198835805814398291156056107799275725342684821389308455046784376193012223224808558038241670782981456051619716444398567020005528884738039865047783468438941069057579670696315808279657624596228470269794008130439654837000581860327051235995100112096962141246604752125297607252933006024843585251356024631654761855046184002295021063987140935067211267812938245631325623562441635330899316036136737792950191270603846508909766954344255125336222777643290736152012539248570325661354074660812444563447610651388356252340185615491887984439523001196474648798536710444516822939804708030899243942759380150870341339944372190741148772854291049920875592036507123612715328927406733343119565787002673270185225247537940795307534991807573390991102922342111069040569545514059192957293024949463687753701732073354665386327536697533336499624116586718246254745905816239995846280945667044862298662797855620644397212293877114240657270796362108501090815591336216420568032264199562374836502322145441568044971609456324071018544361392395051690336210468266687069374754724405658818104160554733847841057624345628838590365299208293343811225175091932548028711141600900496552591499335083527895358127267418933309804192218373358113183699381262843224204317762310750391362258529154924468212279543212461500108925930051352595356341551408234696241552182335096851316307765359100119678770976029986161246743786795763555125747962391823804456455311498791136463521607439005201639642073624218987915449452183335024907654226372066014885177081575642357325417726553241014040251379221932351523196386013367072726213103560713170624843742121087663700419889124164343474230119718261052120634103282038441757135886753685139545209916159728532916654577504092635542962761422874603268646457692742858747820065848223184147087969542333503996293658510643351306353205742924180142807593657085302450621489279098068820832230841358306194499851684766978176871017352930747984346124870548792168751476686154494343165236611731551797975250681181080815683005333217133345996898099465705583420888441484872847289075960389672611039131746985552183514723890282394657038168261704584821230236867777473624164362169183207796227139431362796771187600330320282697987830197692121025583532217329984288457157299632340158841648406092107817492304564744852434000354884653236411837795130921616183658474113612913105003027512271217755530367016912003617976741368606648855175325772364973935441542062390383593694579727810563135335850088572060801582118981640949457612298715904746286434100116866679943107976910812318036359195173421224450071287025702755393451003515089340197156249837625529535017844944752152923963288257837169973361464013853343712509647825430672316733821268988488266098148758151909484532163591548450037842850006147215742054047930141519900980306659555828755287309324082352800708424915560316905409015767423369687804488631345360667392108192860497753626719649967894694983285649302668562140788644512843393505015631390558810441550352119162469705221043481017447834963210636280852223801612291425742217034751679294825307001606806911074323284459711775740143964350996767534153906733866318851432612363892640505804020894722572588277586355786584851184514204807409205877372934713629684830143783894381814877684158358669119524586962241501810549726878795243595945718113146676890993686670726588114543717538872545161357227413417710001552415532691728288683268214554420036684781686588211032378883808721802834830604829540982958871104359954221089614824416360467698773918950127317798321681579324057717181954876142182948539044835516259525742128852670365691194684328244245745783059982145491613888634697919594553919776512385825628755972564898166718377132142204170722801177282535033654565475070528170458671635358422890592656597290622018367617126364284232513993191738872011886910625941560452172018113396661412245910417687902552484284115918873822116499164435622966291025670516438143336057317070549345619499792981558196922553756449498534399924630276816974523218641430796769693118874388004783101382528489930814592343151894784586337711298312662626915035005749864858486791241672886261514544265153965706030581553692382702291849197181913332431148025565905447883123275499832284166425718296399346057383499386307110906928767934444589301968281999265926086862772648385528580976769689151289755730732217877227156554707718741003142018762149821116170064878828764841351411820706387131903859600937639920762695138724639298687004654268754888434835867815436804075654385806826777444323700905760406516821561776703654958598425866877269353235513254194430146534358756659546459994020593438863565316927277779096475052368115158825349360262482423987260321953246234560529924951171661021624608439655799696502481838548440596548755180348003115735816185903960569615112338772216921876283634423552831092584883692406594012497689372911501211263488682901288560161894220370316694204602716934017350471425489954182116852542381917930892348483684242241678210445841022835531404132911700138445260207602170387644058436369985456047451712260799475347313582211041892363028291712673879657638474937864540417115106022027195862025158940296771054038062277755116423115804775342536450387539983743084728434497479660792382846305263846380373078178248333544489369734584608111292153758687127679527540968958431188994447341108064292602199437836153246730348526888430855858197873548574268169982069053323092657335398931486552740651801751401128054032613964820669174397258380231056954415793790056346683237202615467398947356594782483550320967192994738315853075735693882271115685203386329175613861359503264997050294561391208791518493147695865754838421168093264873704919481254743047810869503157599531997299187632640304783163090080196831923972511414434769438104240630969744984420571871612453260856189963910563935204389016051742029854831593100833433332337583028045390565585406483718148523757121781626690262330313672418377064626575001644957820781460958504315590381269985256534297860016355899834058246765777972085410900494898031783170732695332804226180410029219543105155799473178044486784633878756653719395071287552619238448767532465226356487580172859175256958136528232506242149158362791047542606811228693033010205002389625292585226046203002423283933337011439649050611367343511922243625271263216909309441144366318764627270011656228889734481308323234494278899659182955692714822500887073488175549085936500187440693354068970911676422493125938519803395341928187709619775713348722399642575905785846680407288177081691726352391367655215255732800079520780396068604857967684903641053748018309144983151337753277383047960773626709684295358195576934553694007283679942436774270415568555730637541495999168153201351153552499178552526749987835300973792041790935267006272155959929613182086895535149348214116418898117683619742433819241072009160275430344926062270413540563211727719808918896171139883003337448915006313837211895670185690737079834382456036616579371150442336346768926412955129233144320020193872729897302697816825224009041734085035473427893671290499548646795237673204933575032441742449523904990329546086314875715956513651557668558585698134548289415866551610879615390317179778981378352843796791204104646892560932490152545402615508575464909239679857031037022274806074180363320817375854751301558007888402288199235306250573647910816508732899335535797020948671983648341195900755728272479078166184825916497316613623007272534385528294682752755080089562138111758327877633447318895740141921453792868361554373280275855144138363090375539525108868164951937032220089989721375029812902355828824712226675086324963894614710046304108494614739683457371681888289199073572680213105210638820641306833400809513561002827775394197642285784552012178354763299617117144580967057097975901510767692454048237598867158793427453290903018201539952411714549440605868314392706232501250348261316748593366568382202182200064062590585932205629723744092150318577804550670499523856677136628867835399652322252740815409139993228653448546010641678462064306248199161317910883310096485299069480356864008972439970305083335975139916366063370017767906986716618848337330525584604528823711111553589090631012543124525165869223927447215450679175936866477807921233684656094957208649537500681412129106681717062903046637271215777610581513372617057673423724445924029711883574235168430736086600763353931282544485556111948157022201959664762308571135376648559503947642967845107256684777610024096456656826409509771027324926435424500705076464422769843714002373179491079925685362934163129104230268595633326148130781643969093430362020250936273541966886117831554441882618120095527869065151917794660461622013494125379999068254946728956966990232832919443120644001969272411723842929510044992423972040510534716655247506312592730608381655860857176901181626531829699733276167477345761596564683596896874754731022537302833893293175725489773072218198460893085639036851752256871431622257385731564718506090225008682862716518171727199989682057653553377741674657476218119876039471829279866890184593174020818047833448817649062931924490812823811226624705968801271110254580629137723139990656814941832188754227572919997904934619820170091100253139499861008258300458809202989889551310845852814449319284940600902478187923752695193704145500211537281941086896936159668266763805637430258783762339660664519695744117080597246056985652505277952412518763335887415498250696375393268663652361326294338268956776914491195832421372449007757448346623508508213847472299291534913463390478669429024831498930198756538761239008246085513744459175460992918289781645754117450500505488923859042964342403395602304122030302324718158108111193391824607927595079473554949012724108319943691240658680079851000133423960406232833821894036384486265283772230061790305668251862397412108449545932527869447375963349982662298586020380067232679201086250189676788419792510768085481492430672893789546363083828042700483777722578550136589953079945373741028130959338122828540579209427921535199776863487263781161734336644492136614428992514310961265264681990587728267782553849054175633795500572081459770825089201157105057512159026269941454940236602501945554677041807996218867928019672154543190217403603182671715911450799433326220316074171126304422092179032686385332225321331660558805448513879954956858281958184720273600457765103587587933747012030673243834458821073152052035487809359510336404116780661111696732417269996616130486310519983790781243830245850930603381252038009102459801748756846398298829974296980338631624416761646789343456588945555071809578169154650691479306209491495607593047320996413482045373546715338384966521883632813574076100696231659634543002335494768636215518344896744780247849190475237899403815184104606587515581654638256470243285692210357671011134022316677718258762022765068042432660006667699869757311217505324584384246826512892841063438792809655699713618013745497512412578065268239763006334875316444741611716184695546924745372662613655918384714638990795112407965246516832321775266372546571604902806662634031230379924279901092572277774061607897831998620942121305862086789975080883693145026047073701374704184735449075966537044372432081334448245521921650568657770143526099217761601398453887314724587634717611308289820892780660574550937173762763576143713081937542152163652630359009855363915240843290338322145030429716502265642453398084895214051347809512365469661143407706990506257274190528724709816528530694913786132774628030445565361195284220760824030877564681684921907633568899010040365065665376518789993866430259551643684733164892111165704149329013905482714186242963488015847414653561702653567751141104012053035157249411365431789537186788698909352364582573264841549239362965371039364269703769578381495245746166900287791498563383280121996540273027513169123376084280486863044932376403233986358646466727106377133395640928382678313107644015567796614756958379972064563026005796910728124113169384568522346093405782432975465668811451087395187641430080486339899194436248474038847150603949569201242101699387552519042450994000216477160682953661000991619858160494899800732515339434796362073654631780282184045146212233742401492403655408131776290763896611305759947740088248325517022881230232255114024647630557517538191191858782075397765898376514291594412915302043699883769920609292727682382556228932206212589562177139733233623250478624616382467760610398639523668921165518377423677916145730941129215580558594792821052052948139960108098584771230974642407911662412905815976365330804510404360080224870252821452260888863782953678910389650024763586026196710040895999422056387646871567978725050585808736434547043813601063324773543826427794261120443613857224242015596782209695706018891252112886228726919980562034797752946893541514094606522275520975569076954207334308175869331450261314436363139902363961414597692969009075573288804854513946883600064181970126439233924235368444180811947385696931226783282687336876080397968520756786490344963130886933310565637902303268208933946537478786156533376011035106127919223916805930039612010244761541352674968172604631965332150201145281252500190550445941586003275033657335310949906470195587812722645735307209618993503877208411182448769187534371215443517218031392292350529521729306562136355107721148750231991138526034247970633672214525275619113346210155962585423823633195877644343065456824153164248022981782393434423407286517515071066407114868237223699686054191160055304927887570913489691724464236647178828685677769262570289136240117493217293675470044640320572552744669429502440217540860189937336686046291148921054004671661361473614719120606814235076554437869048054293095897307018200278562324859201550395811840405514688993867290353964106616482185666584434970083802489803236287520009349485243628907330834954910031007425634916830254100421847260363602710212700599664892104842172068008163299335925890104586406420472150029269393114211859355186830079132311923042510725926723720714452152114288908882106682965478967408771888382157514571143341375886216198829801221740897460649328273176883979186818945519661964665418339998301103479943136793919960092845843242913296541734671101774063018531958794930677575946889783072359077297241334753587522550789149793517192149833298379781546742848088518536835884584372262597413198689077517043136124088842210686812030481690726269037564154599316772364003407199110001463228445971605642716087741266135648124360475198982003847373664447836563121345637327795818128211166797502609663524714243161104422579631527414831363767893035117131578298273793197137639700921577195734167446676082310269520819612016346910430141292811914034935619877035859468400999975558730027472784532079984906495877822852374410443510307129446061788836319736005308996625078994730336917730695205145395385973103045605608857145298303868233338006375836725688233010194627339449832145102323128812104310384421214164234337028494126868752832811938150393432042230861325603326600858813823255260562410149802610971381888457299599922877390906709048374330354919030812177804749800252840859449303725403771187457403541367307902879337527923490612740096428076039850217437284216553924288648834340923916119218124425710547402156433689713910485249596678049660631189833933947433905037041333270672674363512662645254893222468016067881849734331099136177753216782230364198174324796363144120643354162463304947489860207483407384194477154855323694892542105693559928919639186252068490989624193779403043598968941152695360559408572329675013319173038234913447693809354238899805510250497445556665283627735833558047588029872925200199916088185013221088635139717123709442452515477801591429626027584289137653751739882136870414251259157735438516691443206000819369468469383246681939442673900475535292025796535009819418767679654538705060625560014383952424772102332823900180554209576142732932406757547303809706015308110307754023536679536481892970116917311941333766453254927662924556289715656647147147337123668531742756937880590217291372291207242688038880460475715663422269216018441244471104833128306507453206560877920037727020822678134791256145182529029988053005052355987128425759148062217317674323755710926837908377332858598471882741548282647398145710706598341023509958548569836412500876515745974208695673458648192391912430332666036591758834362039129119696760492010085671779034677055558623324449342212263986083490375429545878938642943272437440380171849722123001771477315910992436435817447144392547890973129360632930460362455135820366951203988394088346783173694629279886727170265633171375774055164284593009375606346955498649407427630474854190311391816167587932324231438266563606514108417212948499164616684809757442322805731209320072406480633486093075405344563383338572114232935911789748750267223014452203041749556738280746727096236349216543136497838501608478890956197824923748982599217160842220162699928886240092344717401266291430850020186392175441439894741941226300119239843328559651985725364165365192799569817318260018368629003442797153666144738480942223776433101979454857038155726927054926701041416208667313493743327796220333094782162481536734365229252282738836100942347818475582417650687435676669427405691328657059781812255233127147728025023930516367926559655651225145903721975281204064651400428433418562645465998639087467594870765033257430382745435838898701207235857661600784397632965085703067483439829886579141709032475033869939573986492635365809644692245743579700385959481200774070853526050616885561261167805218444725866296011220303624731878029304853649128026139460755628056955495678180572662779682165102566135072114426431099310672245129184295487046863086498990845786622103883923246152406213342816456693559964509942559443700565481746200981987196693216230965254303318540001263621923473116099537071733297570807546414793869344907384103290031288125234855506540791317274839534018340459927997942199990797089158816127677019304795690889145289121964693923263804302044974471546806538124619485456510133288578596908941043308402607065476550489861369053502239525999328999468548994466751450925397843760628470328250690734622394445193858718439551911161168365554528378310211004705555861894396732803931298995629627978308912854023290636472481306110159556724158373310192766954237607579452277101554654161448429465725044617868581480041632809763665329619081652441319333104432905386092533504627262550889420715520619218192511929807240293930806917357585508406076815376844435540769396293212693585280855026049809935077026683907548725924476638771025122298723300442070180939787321817832023577628809810060786127208023164407145258774787180053767959142696601589799989397928793029255461236485050004789216037280189456120158672790992449228501315175171159983994812069239224672120749062463498625995275561330656327352001679959943978075842867357839554920287409788365783084626742246785636283893822158976861574918417114573916705605387288953571474451458114670814266900395354895516056826861910661266192914095879523150987396262258160463937551866086352909861968721631605847950289445883716711274206709133418964575848921785754302979488578053985441831186490713826852006106159403854134281887451855165521395079696015892048117294556572731411659665313987356760265246644040260195764426246192348485533580628663061007855142631456269414449612832236283995365481054725063745205129323803640964599008188581097537316196982199690367882813284181579801567867712280861518653202244874003676547856524502207704720049429656894992700212418496876405610636442778834232421317337428737478770732774791880008815871575335171808318796406789641622174337124685254302712605341363138230617025225384118647776398849565978067003354632446375586570351825128425369576008519344025075797606341624245292482548793829725135903321127485914715807663783789720547443245311498269930395033609462028544351595434929521058817022231945553236483636745596333465837170570246107446663061663061540877089070094277495506425812951910003698387193725904225440554706617805248323105528639129274257785433045371694942413235243270065580794720442307301329529234419483555497948138271140337444857277538664043148178395393782078536289717014582213773500959320906002315184452543892784683881278337784278651233650466106156409457350364260884192916952681630331695331696510047905473302516950025844367744863540640984692425364273876469940875530814012701570135960408989727201837841569755412072776123029901546438614886303741125933839443269405017269810409547332029747776134098061954717047835969937572532339618292852148213910540833518822595191115742212482643478961581160215489315145052418658511290886452412471387217177646169421018096565679603329809856319287335893414035906606126902850762146894883832665136722345107508298529684701615779710063147803666676590940439087283509081118388356335823021487147037077313650727629207952317297393983960203670626365536965811733586272565958429464638614990057809596950198757412146209783853721636734059743172286730266908252200720794542503416013641899353641894311252801638804760146249050486235111341019579137219265680962888673940428616411426365915494575286526862992349870312210543070406690231380089401102838542453298083512808737486658522537693469070111686715336492810159755653362743348166445165803955550860741077136657311495502394364743722418504607336931137290975234235495783273617598933110163540576285570061076071420287002716157173765880328401380894132349106319452983837939335399055929884923516131951305953065445921887795120073025715021325719942967181503864715186070584444173574306586696194649292726627342847718769453295140380799361687584142716726503491033045572008546853437812104077686494261637158695638437497838028440016212789577778385983794431197274966622221208813308387584449752590492466257746073330824124242205918970355707025990592801638639997855182485133830131016283311143422233743872588173735971384549373509078903230106982756277035966245891222910013264851103068378473570258815386736112710986443402632667808429974329731864961095493400561226931565401855591144247620595700255270165953898843525502039163432998029545262259625409801090461746777404702918308338973941546697026091901840696320120416801825099273185618143459167378614782855871677588411357863096057194762822198179896133009709508371551718615528135845624905622280333203911333572802361459293138096510103106924712221957271908161303715899756789582961904565151254904904427415385110154186260869792129181871200979491629128426696209418099919491080824740883743289915276502069773108962982650768137132492223484929176714395843478297436646995547329930956264861814755610645793536582245058437715018092484347504054169518484347044706886696061172904307388264205981863107739020568438137970782135144882762488742945701936437682794081737861755055097916973871380134707458016060436472629888852868717567127595613427318271096193036895703515675499521131284705758528436778414448307787755659170901126138845806256092974652479638625347777531009321218801837339529835191992968186029082759993759967070552256584933566994380854368144685216280041937039588008643372135579717413405412744893832591574677062659795900527560621110094260093702720435819534399130079359688556733230834771847078135454335993089055738255971301912914651103032945640818889903417404963072988823256805285746009739922955671969024398469116653439763807775747740822594806503444222825679426351471880890260621408246055307974552975324655882773262663834002569585241629425360683370430650629551520694782050417312826154936011913530128950040991848819642355137876545833181383759486779173861235704684098084886338621268260362842986446975125551773713750832863082249181294738572930275225911886719867802624538113561453132278746712627768212019138538537236999446757241370216416981009699791663615771955431684619304833308992145584134068465358930063243753346771131258906521406202392447554003426534229039447627481060193175251683678259331376766433531406433749613748842192918507515045049326237644923446942439371278847980338134433658227324918471076366914927556341888473905830601665838165842582528742114075538743010654710361327876180801515769275942244311040628261343665416171417556091852583444969570606829779485519657354565709793267873722515394701645301059398028281875434809200133001452838763677060517449049229423453728441927256168987683642550203690493635736523267693113995968723163988522805054520579943723992759081012431515849884644194621117443210377090285930860345176428731291404144138437424576833632612059735229427493257908914250731103387592502359438337885905516837438145025989388753621553261566175772473305058373138249722079435855589866387237777882076478394195800292512945938601932811521167140152439695894673452007993558735298628777325514823351642554427319262144751862934807514924666528049383768837221991346241631425476933216868798980598071855515914698571997417505229890023390693143921141507949359123787235369305306147968476906503119054046490677247733491754722284233281022289839308896538444505092307018660558727089586247890174760221893580559295456738536742144010439809796552339003493472691062215333747044140387930126589876053834335692463718817804614215107626699975756378325958873450528134139524749905081747275653026611951979480120363981746343574171007087278913840968639961482233059296274812783596901972234863023878602222163603412212671080317006754614305813329879064993981252125001158717752582053622596338215313551657693220054459336649696858572461666762749204761108617262606369346517191626710595038091711748473804291811310708677355622221661202330644630956739916883481988970672021176877381674084801661101399482525618352056026571455398925908352054947141127844538025338926435876564540417382701618382070111963692721460483974224674881681105514382470224406090711420300893451507704573903209202302090278188076261675816068353225652759927407381695862242956490278528137771429028807766962679273607214841422251024170265605433911420024607467891187103795442575774473209771572003759988478269879697082435675238916598529620909700219755817386906506792001845382482620138074614061885892836166736003369032601525594618267809299353198812440046974075242655806449575788808081765928410825354898529907849367841725083577628005151200820483630769272546707744652751922497264510521584400309083346223499640694018530239319423068013160658950780899279636441268730317693588087289065518943463901348334296713900409855452441695249970247092124819466645164961735921093754498678013915060802819718431615443993404794097756143169624541546778028837118693166005894422983951365401006780789376634757769485804723663250423147406623342640175643353713538156598644229747747467155694802132692343397300270257476658657636856128719278353027400635203335153460396609846740593953871986276283416595124728714740292794092691763806223074556599141387154365365409370771812228751646475100514178879963335100702949394685525429903671242513132698465307036991694740325167536578579623293601237586474067335710564333788642221326751570583586160008594850367515329346476352752983724909992222438902211149495542744060505119978961651337459145040055702469480196496212536442199780076286905925334062787255549106588745973421886526820769166610408129901862195359557888925281164607735749982566868520213020382647444963632543712384115396313897801970715003645079378682351126529334123150131664090399991195978700774522412873200114969158107985643457968178541799892970561685625878129834296461531392549161069152026542699810200632131839291422495566253006306054994148281071349404801751452869771283777139167908164230147731765059418758894978165577776733728236425206885354350686586267247686675900495435166737813930947382973968811164173215812369155724289996134825662773472507341551029217277919159724462059055483885070531281818520807059055287929236844186544811895950112811939389672484574413468414278989748787158079407427777144434231133123776679452211343576097698552692773579743214323599885227465246134750204951980948279327057242383237610041755076834192959183047789198186926014189534119423449631526409973470638490323089698234073327379962400888861547044924153814754453898239827963458690789570708800439996590535842881904046343509421720293798040252086962170369453992049578330279668200282124214018814958150273028125878419837725883472603481119457392168588794718460232595122671215441104425493163903921643388756919579924129604866014955426600577011596806287663365471047651575233347851228092683879430557357781245330642708783752557571601738551763206069798746504157001116186363217362013989748909583567430301999743096272263582023739958876239053935850476809263999688889880318852099269283393138224933289654548930311237033595376982588531289482224967311295885441850960269073116173598943805111454504106503153143907245304793184681650513616130733920991649025465582001469973320533080557398357387276670347659878266862971252693782796463053012596866013354080826088380786207990652080389052381794988028710899408553520254709311170543807575036180980844620777359949200758597385416960496479549359280194128355787137693074433362574953834164079814734850913175955953029044310197250488665253923577847200970771761398742760622029525955373274536426421492509930572656099081119707163265571056791423186130770987272130317865353116012333138954613148248685173932027252920276785111917217809386443725675700648750500565654951540047693630202629920882228777791082321224930798475674049498364983416719706866748081764648275893211286371335111022708704432176820869707433861961840462370798900038004005404954723042232925024129107200253832092088182263367367997004304016251890145076339346560842566489011651839957056525647212074420382153891704879551467650027424732758323999831405342560409373492626163116668307526805293037044449790893184033204940310461925497155277208329332055962475796392555038335161852429846797592627212739273529588865414269178249775380949261049714768566057821033979626326884334766102058943604734110415254027694250556758436099006720223302461974387252733121854175364218129903441202820615830688312966133704075255051551081883866107947794069598716504871984360658772115067508349223037287219492488487903328438701057764259710829806216134920028965795436471278599888839748003846335365545123161564403208724894412537920126548173198236814616498662076710695661082721831920569757043905182954717025479830326606573631021094615634509894522458909380006589227335145753859799628386236049741786499995629493925413760992506764481765797260307092444014443038677917425510778067409488968296218111414560209879544407770903260068205446512636324525319059436994236328007406445557856886900934785676764006507074244092241684490796216177012304977363610250553787904086003404803709323271701034405740434583904027152958236049071712591416403663442460544147498699274582554928298595535184763432517384631833316059145973035599192840032843112854187569933836603676714401564810811740733118342300713886411303952870836876183153577615508974639539078138619390679303379303215327210161207106142105742687261111819925587916672423159821789650872175715171155609792865677786120356568943678376854775113597570721170882278736720335047673454495504829212244415566980829405636513666434710321133080597745196374354498013887288787032476400174964111858193219737882483937498385913612693740580348442207715066919960705180344719805785466637849120886394288226843816772858826653062980852807431893682891588123980224005826746611952389691807759415368460097525832541323777569428250622852088022062552367307234336141981292012841167072445087267754908062066660301464460931646095408134298235329463853936308577848530431996309306309490378866874069100336715127403000860283370063991643977680524651537662349996450923475757339974194979832959118235822357233646114696445328338285618665847182924997711638179922045068599474715059264752476887983553116319029769248499089833175616596578616950287955371832877688163389996893645320448812401482507186491461411449891335777269966668662922875632324905093757633768075433057352446812122178591346889059258290005767190787979713676961535337354651601152542600198656357194700635900838180203346615593642546456987655228091294211251071561393524654634615282926409577313827250546950927293360283282101694073565001198736953449044813381526992713788059414866033738197931801130993724813458530638955538546438291247270352308225797445007552937159289746034585929196375342100307050420592682193127255605796969639830209699283785162462917813911431425165206458214706218588092102153792515458142856566028475354963809150155680199704386987662067753333297145714000782923212937189233231138910263707372958288006520652238405631800625650891766248232984061999258476528425121720615830303784152159529376675367116983549349365857590755709124510828354725315239463259612072477830938520938779156414909469783522864001212988487468699751935905415869963617214253855904926325586870360949970689621809770137870597156222040131983301656455921567763441625422675548596473252687853721490975120618484171326003948229554037189936239691564997956261981258656708920115119317357099448928602146715900953676771921485087524773823079230738764495464158508638203928682460515804177693313091914237308973011096462603577996501712546801010935290769004088776608574589584221160017476161796438925807395157105406781297812509977339581796637037584232577862121889078242871795384400332905773229280396631374514332562963804467723122299551642927774800370570238568526127080600287302225834925601551642383371301091163023989539999489394444408565580411727687755162359058821314643250354015640745324512100597636038827741327357741283518675786420744062961361864642950639730817616302030837070411443090634861169610061539633628803689191876059286348930071156180308260221020241191134269956817365353722952030608632115987912208185402596770446405710342904710494631947359610050636417042122053183159911549887492339826679304542160862192512414490623905171027947026993654160163580023110490601217892582494762587533346939481628211394376294359258381903001309524531433998450898229740363979382985149639459305376968651432543053876315725691535284393252763706461253772722003880096197456165344692065032154727986422070566616513236838347145637299622785438641814460638802141403720576739638783485486702859923326705273151909379741005509348957481474236019922921032525122352460609461266387313557032306481136722000134896977328339984418728097830150989372043918039744377880855087609124778898041927307659695013670127367766809779402675345206083955429355244302167653420277784422509214901689639116445261254587800324397933433894361362754332611388585088720552500169128631369853620945602985460265648445264112747101078682007444520382268696429016106649393119436667946855150481574711897534719163499416161778301832129923898164818294022580641821754723290728733459839380655260245595399865521490520981786029814526160467803696983343025474042464574496868024816372454877567710936626313403558059226291597791803865677139784507793985377802182345881263542498808511523960528379332811303845260722790905718095024175680585527262266856446366361694250821215769239008612946323494639242716992697107432020708250254110635747325798444085046432022927992249013029477563003127716793371077515046377049439214147468684548682250969607402172400833646060073407075515328795881686475291850597807039097810039804416008758469524088484991153636314263468438485827972881157607449800237594361805707432779112095526519616585511311907749563439376502936043544531421661232873251815022869500868304686440320100719029425412713436190185270614470422255347527830646036653156678208741677597154922284133444522637011223713937380392322041705343071899750774910857410585205545249045789641587958184094527126663865818660000493066660782338143653236302816553214730356963893050147728905855987065776158095104050232565058265344543105611405678486860512241548430532901732601419366371689083258081155534874074290518484353877744558372968194413952905808830434955912728164197385361824261065374735840959163750174980420505769877759046892253949276936919243334908174561785818538556739886790542974207474627946781361910960836521976533131787399007604330185041487638132192013444873128853273872870312523021476014641311231007111025673515606200022357076193412044944786307634797512327421047930005700094703681558467749069319816267929721091263882775111296412243926542682759574740745201511953070272245599827611064008614681617773268141234858061715879761087273168425977230919900795974505918108152626107768332377357167463673185487230728484333625577427540936170943875655378853092357181545031971979040927771569234157582930014713555058793746012506366967105349252391226240346844057797827366663418962143299725252275537314975736778562671219751466767518799996547663315593547725925912016008322016793363110034614561961835431771181255650999319500016022464507555892662411791366456315739300699480976508632367704426315375574122607049586447085252297524608587526815349118521609245736209672509183327370672159797347408397128068285472299979995161913195372464515068063708767246042771536005944601610702383557441377045239746713193348225160415788883003596838799204321715683965811455797713250967166924169937559762305888612131920903951560370107376038744993002231138904075647262500749241713893149466110276457635142670394880186761991308997342575999560633013690856457130315876044252143468173276124082838691901944010401638628495949417713871392754557371371702637913150741409726153397829422142849291017915918438173724672982286204978124026605300545711704107326059568547943520524812090695564883147551643680353954469605949593575709427763679092824789438757196262840051916354240105101091827960916732406874252642233985456483887092573970186015934297339465639618452542268569781778395201304128866975062915159252493798892815970263651088384333339353860893293962506240362644257793288203217156429706228274477900632186405562292035190974418635800970325016757071461016003244087850018936243347411816499152544835914814798384971538459531681558303439286466258939972984912314475758900800280835488291350597957620940164513074367557786024007521472612124466812002874902118288776857765170817088351953482125954826163821185169997612405434616135591003040466886497889670223093107448354714008615094842998308726456066583082717493882476985360533052152238702123753444962107240718567026128241932685257506594846460176939888164884722592830318667355659487486805990938868111305965772646248655623319383845220714111116335687953472001322610478951932729225762165936220720041945757166625125724994108142747926428074028636087072953475249969542161406721804833334756554469647950121361493439626752387518445032568292494821608384439675685348705228506714621212178864969942854274776479886601938910565530794342847215034032458459684102092964062681164017876701554693147975076231513256503187836459194618992214110632041499108686883410867247828792362208230453105758443212505967515930376509496548146518100702742769744178294781451242102856907853614450893107848521238222164792999728787762553167495272887642342407053863196850444341677457868260987598152365908142579332681557946630571975584940873176015123777804243872539018446953039366833532355034268058156731745771509797895615893651965453267410304070878217036422851674689518327722648052057104599326005500312899992238195806908046840662754956108831368056867689212008996454746369955602636338918163970295893697259613243565153108727291615523251210722913442428986820440330562705445980329442040974767127572929844243081712063466723566662833050477742599198909125433686759812329613775960531955523509421116514645193138661464613799596575634921826921026394541056240924818005262812240464403932094815170703334768766275165586721054484422262043783193982943509597239281678204883908287997796703353084589428657906537461885720272472244308235748698505509744442057401270669849576727365155059016811145643923622674450138088156614552993858002148156780536343449670902153022882599553125702572183798650202268298099595364994095391280876813042939902225663981748385666316088224788821679999159144496836350553046654272342825436990485559595448762950588352681330909074717155491171265877809628028417629886423581697966204420842358800888099517332324571725617015656545277389192000636866808648705380079358405806192257618105345039440776086567447636108441626010198724394131633236397704591932450104135390936441060221943449037728073775941625976282652699889560612503039266543572167204064848343463733563031351543183763644664526382536477820331164061507401067618511914059955802814934111991802303692614715011918893444547506228805610243149531635626581266471145152051465800961063495475565936042443985147198809383584394224878771839199440278088029766992013714727020727324311879855814056660803529463082090862008725695542901310900445393571675553001140031676054953557902051524441929622494935057474165588332366624757362346113526396145276699529414093351732365694341582974766407340866920564160713873626429774316683059418893730860612299174496985200020288413708032464030809756047705683837848578283880342983825688285471031363166461969791646798086670558378131457360728891995167530753800678674966162124210289653933591076667599233849785614683629517059552965565746581021045925992693362486953072327516538414544707899701553704841080292712791453730752282332262493329768921447931865077218698077073622294672027563487459486979801677614760145083222507608463152909951131941403300794855174356575694880180896845399919183226166381854012546512846279574212548838959132794561047199635907744380117295428771654885711611234094911299866593043060415934980142844072481048060776988907849633024735844476566320198759618801796213275571176399306483539007908414803175779338565201397795356645642527622295938331807030759894071273811796434963758454237215125917487471115789545587524155339923155700486427628385213426141786424045021371830534867696525003706573209931306496394375437436051256471930473801648927188516826371334105263004942946196214828087966761459969478387327249802774160323768708996659732089838367026694663378164476668524638758432023771542407351079463186522650238045203418029397807971760631654794579961393885737353993808642920936699216177983641762066089239610207013054336431905134771614793644348342020049802052764867359547553118502819659568127888685114980827239714280102117120592450199013033133639546386523389431713675362001543399976883262692716128232747987525306954761501856527969302250896469476422981832565776423912673166352623140153586956183771948094516097142132598486329405463398272116045964330161978546809820482565262651338950125852901823524890380879270881656321151269101924213171942881666500587121996260446067865723240657789011773763839628676504295945663622432230802523452053800000968791561619153552307037563865735906193218219841193585979568928315825039226042848577384852633163943045505913632137737261376385404553055371320940294516479741011889949910061906631309387384970616317645372096606583850962888277783393598049317307941513135648384650448263185041889834446883454907795964009952943831243796808038014376313455477071827362429709543394194052918704594767909482813206988037599182364673941975968098021273162308687603249020259354581028642745242402248349226323339126374703736097927620958251883457337586520541771880317473688913555750526546177769965812184045466290231360678777726850612458016377594107170923990469265519226104337261001610483977188087123488769195191807957549623183272366874888045829585502630169153585954664864452616812227955476550700450115516525686608714267543331326972035025764410735856316313949428206913399658195018208083583280462406393216147024409596774962221796566077997265695937807772085092935182673022290366879336153295737199417475521104439218840731769368780437408647725195112126167196053267661285049618613997692278012578769359031627225673693680137310066457710879432003327243146973339866787405088400260155315980859052006405541519754439136187313178570393708841900291480250126394551303898833009698637542348363864523991178400811713459196475050199369976704307782771735132937358528415019405880697664741294794837027171123513180473137166903642514006678901745007222876526716580956609291916732018380116829041945896490255627367171062916886836019273794584722273017387672861867776165634022737812763364204115147416549958219194234906741926866175903273514454707795810366026423934367965650807888945828552695844049269300052164868929018063574340450412241494562256874314357074229654384633455380488185408146215568440629129121557270357970462068760267797041455831876334044161362115834458805713188997235206045688709718482847540184621006230446987942783435033525795228634582277492842608315409662273702971971713325510660621376290828682739893242060185836261389290102854777263908037199452705007081902028034420450565235541498325839454320099180200026382727400718811135303642892835741501949891692180205741387636015511468032540180755564994991393558278481221138400171338407001814568149230973873960404740162671364634702387225894981507327707537824361648597753623544942993095539548719849244553026841818826338975092287267521518878785386637969357875321224236951045088917687854965109775643217599064365276273802933157139236399516700534052423605517885347606228508291357501870025403513163151274260169996789581281408371337689710829898283906767128655033386334815441830044325482093011998285091870809994185856974061442738887465271183931615479678571930987533439243434339381108475226752262612367891133652323789384040396155593903291250917389988191711263398083735145111363839852375341363187516079823904405306571557624609231094176372837555249826988781860809744335638020515088890612401366769493983001139221373705448797572015421018808297631412770075004701926973169148142482953009116334435987052875539593424081527539057197318304431720372282768904702695565020126250275622770131131402810890428971235062848282650349967748934596082486661459936597490515146457389656583114554948918323175495371264977434110957218270275877803913110104255784974056843604456353794022169991587582119588305578050726190794242586851548961864601426683259311044984845888987556846531833412810889089082824604372604257239331412863087902411109474866849892644046251999652430937337358394548182748314814765272811433924896832316277793386655526516225936889792123450884029986469212840856214677115041974417699804532219774540380006713319863120370613724165151894857900152841177789052139758579350012615560316935949385048448204596800713600835603973675901477712229611827795602302358670750020165310527029782082864950754443664515329286128551170874928809471094037187026358627930147141834574562790770594536273616538670236580984661285827005440028029023131551477857587475383114883670589247771311703810723189837335847939459694095107195189474294302643262296471037959710708773030848297337600645803360946824815867731247512586299337252784398976068377443155693578787564249809476219647448358266053348458771200834959929839267101285476826088377901932043711983340546853134972624926807278653522296004673458960627206447725604880833951834805900818964539141292985418447022512612084056601111662182505428471820179592088155459725219528488997924190705000699639160341796519737907812638688286847275574723257669276206432549495569293424607017635931098917863043018443548813106651662356129843179024703097642135832559171397602601348942323861949175232913194843500160279866722541966968982182761245130228556985340910072453398961190130448127580583793051664866543374430865239454987800261774058991425865902088378636326885418935992827943383936924451861218899321756433605194310798638215495664972108217903820286639791974519718304922374915634771134396062368732035995757704802348545378545152134679307715733742754497228117683424194445025879793391147027899554320248903672726254367255124042495162473829134953210620702343158307793702413536093369224150826344980251874281939741960089503507686003436644598277762671168789719747627439670392734649521652986602550750487492719588080409224855513944375724255791760227769969719441822440833217144125101657439233849049848907622938737594374946086188772834255072598589651051855986016881162095707760610128058013217882146565573115239345202154276618786798867172189221365161417683100590453883937899028700037793920642480415786991789357634517040991667790089732941080142792347616963842664699741788445901854637031899715174231885136015992762398739638836975789149214848624267042128036293143296110263754240536953626726528888694532198627712388936781687602895089071620443025547630498435406598172529785895740142882053080243319035802216371876322323138782920075074628011440443918134468849543460422623742848098709326323447251639821696677034096094766134846764999855110325381511798819380769714379427332748309878369087121175495307362701726479974813648222613626193036244255253872109805811688305925184221672203453781304793660496209370184204291487015445316090544989955549614915306785137491974505186679554944408231743372663947454802555423921612421255716543472546054894041036824440334295409843639141418369490990862045525517468590853386952362105265310825365926309171636448030553044316267093398436733489113855372949372728141927795967544588295329694334607023309250815728186752009628914877273458864528573239280201874002759067719918337571369384752359353988611646444282219965940587560097841077380731112005370989099902190346796879063768083526030960637048399476096210293687920711120463234564666413448469273924334816868071503196013356177695005800412740085945153266975781902323515311263582205300306198871472225334250296423520234210234178795396308258226124534683473068622478374277710894792710367542983330293209408377572883195022130608344605964819575594027372628271894763761028206132678141370173738036849128687178133336937882922186321689974363829657042174615313166934210062326992692319692429403269764318781986413501893681365762954913942892092272324709145144751885487852575722911644380117411200003000704080155122667632553670367917891751981628496998650177186377600989431411383033803811245756047154496133532285499708204736663252491968397573492034660407833223041991928701548617998680178249340440850175316926967740737528211905335887194846194319102508719200192299461445875894751125309319447524763582157458306883251780311254172313054094903186895633024812625234684377816178775236562084093188189307427143298289284332834650295462944624451530621894869403160708886360987007244847286490373054180467987607380750835646141609456888637682833718665172622707244554561305257611900742220638862906780621964533507881033561785922694788306304745972221891175308621095965463656208113644253324560411048705122183746276255934318950652514103321731845353301465627707859474040301020634049788576926601744242853347301960576250650831635783405735090213447402468844217916139393336758722234373053677190506570915463210259759010753299334437802864022341679491440435496722610954644955659471646308217124268439785898542117558344997225125997338023957041835754511832753877416130087932836007825324575881868522135962961413523788660555964784692087810418870684419490479437289058248381318089032142271938727101483535000479714046663711796282385501055825416057447162636401771027305938657391618776871898719274414324154034786227032487745355539159160261276258558199532191952688673893994304953280978121942687331567984918493220638532677066022220898361321865350127559879723648546837622396552173212866979905859353717214217341253384120219269833192981364983649300820529589528337428344699600330103169292577134102110933650488765926341359402312732209571715525098564806607490604597455685999155983100175570596711277295914208689845432585090927213144757734887486837087886230730878094857553419942877221729469967711590055146659840335684481983927246076404894764244515348773840299728974743999992140930022623408217042699177826299880848690043455841601994162110623164516999871576952254932792713392422634258917006539151763479696217421597298262955988445723826137299535548335264148319640603780942098153078254912961298093762236750446768934226470032157908251365867786086753000894606327773988422028026890939792995983788946386397523950655955195866763162534553857711333126518751579719529557850721711790817056352339032078442688878342273563215592500584690834239223537692513512402655252373259452375175432342504535778000937000456558024602966745096926091012119861897603061023982642243039739870296707100925617233750740938168321861451223701394839595739133025622477087650817856866763051425053601671833297346892712617094470252409255223746613753267564163567771341146029891780035632637308282012690648373667482930630734503928006492045471213184626555333106554333577857322215302688047891972782856597431843232592506446541307082604892717887765974067047730037697566764976583293257792113535379425169547971727966331776740576294577903003528628586729389909200382951017115735830542547551381838107253884482529724913276168369915220790216579868482165506858140982027955055606000619246577217630254535233080085369277227821981069751988276560509690850683480132114585767518097813159357871504249044559517566815318828548002494132354383352276116174835086642078876588184250652912704776551223379358045225286106226278190702089828956754298953912762607560275020260076145250468175787318156111467827139058663439944150809512277745015206793866947444796594709860308538292977344910497394709483116698418327206062013119317700770609281509438579100309456770085535690738356551242784931758690659050756104631551358176586595897111787514773965042129675957939775641412318305091974802758086267938302168096635018361094191874098562080694941556561798618860955222552528958807789224603560499690675050398362159456466746789817547127471028573756292944760479100051773980674347973849549152035257172694459579647364111194630908912815790822120994895215359186783966723253946458003752259051207404779826542645708610141254959210696159013958602698193279029367482334494337836431723596073577325307234557425721234024134541943103800032148122150530459140014068601733873553129517966332616960072305768854158745716826628056149982704465753250631698239394970502794662567981900961941183607384609921041191855357946480713001542351624199056923776980913961518609258930304681380124952452401248877955001466970776762595984651424093807677472465641179049333808500206087010235966246284809607339098454203685870480312608750895245228915661352419562805800400856302032768835481732471570086570172533603620836922273704523999815355247700414247555042221278179491675792030199303305304547807359794341268053026345791897833987811118123633248593826267111666498355200598661995735385403768018393851005910001998173492276582685839874965860045361565023465018256914791049086763471563956907363605061478031277179149715571529817083884406133748201749751265129208089197413998893564645044411172387005797192439785528507071553131159607702095463076962876573834071205115641610741964244636558879683885842667978013837525008135104145106324761642267193095426059961175555029882220437273536621619444482217284005269527761529763625249983411960977215542439016162976402557851084556660994448458323595725583933484391441192906048725981987948279577957915109968620007815902210049924313671453423289163995987753932842180640678109580180883237230756812947583360786849207405309401549955268858732360729290421392807184241759399037318539492298150225455621543504997429385056053404592856698910743126014316447858837032353954204658086191076910140632337634291601938484368273432716911073310308319817374761273132564985143783523410030222315256025232393644979820561358834582280294594145212639624645110478105305094853370075044315186254770561560517190392815107651843835629861677847430332107711013838468426980853292313495268006608499300372598222305164009243449170806579773523135937922036155487459354778742918489853598422354614920791091439215593035926823761271203459664759487139381975289017890765336942811818267206978512210597581502697346640807115416841052624190941137029283710982803815253608411648839644240366390695670348643337906033760270871597859551304825266688376828064522517410372908033863053345532380273017793529123851515545689869020753351255802398158143451272918279262046730028709119082168014832978582928542205125218647543959934661671501240900582792257244695682467302300168328720940529734868764755487981242296135516345421837069339259332597389579087735962846634810763128322178322923947404186304072107728028881170321012046615232990298975414775162307122191934996210581908799701332832936595932940500979479532507751470152963048300129556403624768565008068244646511661405923323004281435816747540796887669849393421902509637816305551184466386076757442860041338831174780617616375731368750064104177314973190449536903094787551500728930465852606443811990846474180616296079032979547354481849850132478703305966455929520510172942503391875287361274251476305214644156759341781962836103825444119110575667489228860530627700483750375020290701017851755914804088498124453722085134655119905634497638790628709598016766589789403655174047807549199297769166924008530493667533049868596281565828969293585507778676178543844219890173978230919305943238282238155970697986578213160771038662620561031191233024354096615453726306068255665446950896984389047877025763471272712466724177465250729061205679978685271436730124176204077634438230118898435187802612173439145544293770101379889638629787146744810757749857127318423303288462471675638646914898018814529745937032328324193433914229589917447392859725952056682027147100109493697024788159474898846490288550493070211574290317585762972642493869557286430616799881746203561064662309184063172986665421556570127073435769901334794522268903981374043525017272632493807276526944073212480510268960193215925242338711061288236875054659270180865256970656290183424981024985915051153061819946485632932582873843753713904463578397426808591144830070210448012973291746913262724379555993601501361065922511886942767517492082587513603869641334700555527866166056307073534590053566838954492689126770953424507313339573271995557910118491479822398026765948372079371663638328066766163424381744463507736355687631960929372581634360564802316789594359975317005513656315432974250200670467219688098022334492652537982299145371552316753561031211701885168870046927813994459429464088976131640720395263587603723594915271125214595846534386808111067829134660520988622837769270212177560979288426530438317014864300508377860776720259754153240971623680632813446995496738810694827135454463142183527764274883003914865701647671221356918578763150064863250596603442503636134015691803859494903537685033849507930464391440555978594660164474429328384604985447808935429297676097142061030093903298942625249055433681591594658008243827648063080377233021449477894659011601531572556974382350133919444693184526345921554114901076154546433868532658722199516139747980783952825752154230366103494656344550412486514317671314161310938156427698975669506036875030008755543502381526003521528216404221340008215151105189686989843248112488761419550044991876946184972493233031166300870573218604997841689008814662879821060892261852878367597692148919283590743739330208753552699408789433113460082917583237592740499969067059911776701172379049961938151667238395410114180769254762407657510296848854122836192715329624320985618330997378639170064860014842949001325652924906537855488597086374164852004059942961939466816795704798449072070828136645575889165269038036481047621756587102376375384736023238263191793280512979338385194883847311233085791589300448123142434303085627261765064331626355797530176879115040807824376154995881268574873505896910773738152252636806214927843681962433678139671736741886115860077510747737790946059737955767435968863884658053734637735961776310837772413459455464206502593752276760930359950927451279904911184436506150602336073972737966105954744957056079893291752818924925199568100444255018087229609064361335588658534648015488270632058381654526023814707674807200612432308992364473783468103100027527206240000774603015848476791061901804204755306134881684400926927350019601329485754167988266628815063138364812929559847115348712523330651206212546111960067608782034001066156989880546992977034362877507503329582864269823173224871459813586128343747178470172495764479614746287961041417280133330345228084741234845868923963519081462469482186212942864766448870578300964972209496691555591912848784146716722839056444733424375649340229660815137684238291437887641442379321659738207973896003500649868981746901900459762396291247846566615480712621066319356469299771496250275035428800022520950336331338097162691139772842580894150368463609364921715722567102045908229906120898053748259079787342456496394347128764844790457846437773888118990427313956287469998639099595498568855418067403388527106662559725800740898306594228140958007529389527935001062537730237912847824227544494731555414828528269575344415023299373985517057014670470829725674780967538856248933712473418445603565983339895617232250353475689028529909030688746529185108113792417029807994619140997002219646174510105286515695514634431643959155316307302732361709969906968791294927231012443055614348196183412535416389626077101088539137233564330685490589271639637687592573013590001515781337989183522551964261997034218330678096369509571865332083684552164772204147205011652473774743931821097581465232417919782534237583018354053028159686411987697950042476863566985856278553052575004777885799486143557854269976979729839983769826879321374649140257919163795969536222574277625709685848364478774857890607075493176695793805517495066008625022062809331699896174145257094832750306893679359077558598081804353362958478315471916444766582761727826792270418683002021768790437576577922031320102981025170536729229115363630739757959198017753719305748452001453553324677623428427195859906979720336946163581851362760051877019336740838700792613318911371950508849597277953858535398608236858870361189996744590297534434774666580834003555390830445316734690724126398097519617805277755788205092591768710316871228627935914457605168302353505270049474112028387628276873603058246538833260140500800027790878574368366076239748505861360926392870548039305239942599428552447720094119715503017549957906992578967077173213674433871514847920720258146646523325354324846242100792584137675697831042706607238309454029963335391944938616352966082176839441532157573042458713737572795321533300911889025903173816991172117911078482389406572786009948251609893715230566668948148398397885074592364431076864375653050663535344119187030880167402619456693412802290567001127150587448864074172936018732011204744578434478083062181975404682752687393105997569313734076356272361330722189004258384573560724962617982022798272761802665168211405052236795589485938787173410753120970232886078376099360239437609199506967784294546742508415544752629791944552375599156974003622981119584232348100797586696531046991673145114865619902912718936096611144135371225904616478929284740070182933754715858323141713134575094062319849088470699398228909843221732999964642427825708616043718366285276376977128894415672954312118820621553654568204606668910980710093042971457464346320141749791624268767985556449744027663175878206444953039820393709201707972922462806640318830912391851641629925564610771199701726197313126363493419241677812989367213008143565437137949928783568075147712341660900372342941591796889005444513135633168810556859850655356389714568894741830894883992381076915205649587235815820170955358302188581114357039706596403849815967533775146433442124685655222221241677510782670429783598248391723119242894935199674700043122093732054518671711807806597832704552869754589751772025121919841666050992812032213195630625728136539942613356979781508683391377601052030894351221621720224357267402946529157867789476283983131434911877851525104259886123514992079802949164727819662198006456623783785007257172484257915651300330667533036042916641029400421982088115600682998235996364861608634249622769666799063066856441141129751291414114895041790853608216263539273940230883403067977861730505075213802037825904252531018300444431619813947354897209308053056235576491970119066291396655624853443953346634172458642981066192544267281671798282550437808005926722626001459809479214006006972700234265413753927171806839906722671841007799326728291845639846209731519539671372423088347588183226419675051397946621363135670378050372753851200502616945854542680749749617809440959285069711870308569700226233991377845466830542294723939260153650086958770996313641458848858224936737861107074562582453064820522403080376924317564626094751830249977718545006556423620400206623232296747743482601519122735061957443760830452536216141081208003985426871740162417110601109141048621396912744932491096049227710200885682314111090147148185669375527259109591042598092522589104099038588957863980913847599212822216048452035780167735554675911545249794840603834950432833420989660537141220517297269845120948463551073901464417232789241209054532670156957173511166140850832366035818514188993809620031675941761633033805238506639244955099869260149849909762536507652775258297082371587532027713672362583300710043944331453734153459779559424249673301622769668798398908948484998149058093432387376118050213345309503075168530915792875193014325079314768172732169967849005811065056325505969887951094884331282401337673573248654079014046290682712343034191167395023700514452071340130585026187050144927085114345271947369504060404352025561836775734087763484204973823273949322145652150875438196882839354688436508615856544838598935801638662115101963953743298369359892942112376504473104845160569753956638656225151479380146627614279942048015901747683774041429273383442152025096449008416294273951433714531675275596290202689569455702748003114723461096605356906884191168485597009217634892569024885706464203370752172995651859375104462370596008897836271768141255077895541763580674520245995382010833128729179633923647075926649316797063183090937982227826848958225814022763423114540616781799815438417180189244098244603206469013372860284482118712401927672923818182397080144410042498558601276490242052643074408552709147440813506362633690506308064925676349533310373873766755594761295127180697983571738322527581000494156049574501138944195666164773375604195705381732789295933569805709571907982758164105091473661626608269496251542346976973873332127285734905170511401960230506055007254030499734296541250116002488251036700805299393368496972159141484917155142878418308891259632305719306635082506987616961427969327212347771108492938912092806776693496207347810056236128111344012748625464104042662552026636538173149562074986480105453400401980251766988726590562546392584437489766291364401379549866006457756385886905743320397160663631405356576415368535124340860811654083951900767966925965315744858662837553203410769071217578235800924867754705371806587470760052004640335122880705567586178426771227104768297509610898038970996160724224685364724560831769795611387246661191492389132724149894533566274907503165579220910600587347469876321077760814020621074404427377690691625146025170275893567247502485730422193353559541588909152378378476540384713652775243856163997769846229490273412007113135183465776237396002357208138130293295885837987015294080503234362877736027423115441604963555444836164670297165227637418832642112914886775784366665904821984593208961249841407911448742120724813836001605006740336834242244877649944413121696798697667530967071718629080484870449650788632037064455019950203423510699818231084356842877518680311875421277093792328065933603294013040190171804202024319973386412151238094959109076889623431713417061492290435099960603554996390592457502781174795366722610059875939045629618783175383442259302021043302552638768721613841455374049992103560595470126209636992220611619177634186655115872933197224077016551425697173771653208258793089347998347081141237293551029567039646783665156246271265931231916732754918765228372979430831981694913493064554734417480592109158483243725476236831936745588634657860521156617199275225073521682173685357562223269005196450630176810137678592687085515089999978419245833289935299703082226627265327451773945185514328545306118821939157523698002439168094649709103118599756347253187790323787752705005730185115364832015009162350369945459331567649714456691114377254596822218556368470141466985676589029360841557692874861991899306278213887066063858556820630571014182994691740414526396466888406129371822553862943980483352902973354655653668395897030063545658946401888026542778075931648236599244417269231783530661790158925882516481768936293589736441110262152024727486130624686019889239370316059299329031169916174727097908791298787487080874265047323766557683201539303861006152422699466018408239063942955255120310355747805144403179997148382153835401358640188689109957965373281146480425060432206810321242738978706457419659618255274105717396577316729480819889305855317713272090990058370924724295907686364059206448197160035817956519694996689794277190758004204879986356237808243490628948616540671900561674542474324085159853276596310070459722183246817202095078980922642586803632545215662292743017805559530810139832146555455501610355502202910353411174060182863587226129578014863922841461239257289099121614817769902886693167621425350493936137950727971306943266789414636968578113393402752052763072673066448480395553383483251068833197067546893122686536954420564259303316280522106491489012170068228731970671066577007607686578942487261936792803117851619962882389364725084037552145626632393916471078538841712961208856098650700988233531783425917518021973471005752194222904126825402177087611344630679470557069248666193188664159835395569896879865267510633521799912885291954610178827101197754125972564278525286140531300455891637484526231906485261832879719907731351540396654335666559016326902592329885876256240885219571015361611952681088832579196871955761235878241918474652234547672720966195562223175071428414236122393196277084107111846556299881545251704547785562821108562402007175463692760840743509985446284219936935066775955430052799394671668158103210947278768368642597344140469800043551753589441486821268138961880166330520184042662114650555705967731095492123943835899646405191410079417107163886210329695349630509716701632493760674533859843184737993508817517356078957445106512018245492511715688274750340069079289459523654962704397271501711380207905641837080842623447960575045939844775522463570702406530471220835128222988619565121134201316260519256183396007684398362738892152046503643504030035816763957904969481066815258903659257325047523965841554963736481036383013096603607921390706048115838771375248031921932911662614632001177902642345532594303684012679440749537613861290375765262537253376087969907790649756114317614949034898752105480720798531805169017673884325716219310903670240216556780495327992816275909537047167774512459947217422305955988718488841897091906654440137586392948973353057375760231054690787591110354351831127483559179730060876582592388536152553145374774524374405473337609201982009749885441056859003888469948332961499907004118056467130730393114980506854422713165334318345229208334885075106585555891240335603280530901934058053940397151306828082028395808957762081924723579290666885811094679392562460097749422983415913815485951069509606044921677352494768323176621202341431342375968507084556050089039072773257717505344532524867975230217487536278029504361585924883946632084083392278398747514624147063401048356696238973599736623274738240153520005580982897486808669529434278768556026040831689364995319656855001293952578479531404026635647583676085947932909587905383877770494789708919555117367711786508873635883573701113938107718719043809728782821212607647817593359021473092842151027487465498293067550556913782796955522562763937780167803418839334656113187680365896318246572308364127827076004934511674438809420455626746196406839903861386421068799884786093417888599983414145404322304753691024378262668192166872804342381592242250163213556358575122869396828788627820482425913326745598331069164771376604812047190544149147043899552696241338654256215429267564964221939695947835100448016365194793110372366033402810536956577769003358933075371258938683366213708503520258506426860114700920332576382077176112133568246806174373940495416871025526906348116599983433976520003362222989239252396601402417285779784836723537877238125727040150593155742526982018426606836283242120903093166048890816761722093849185145690863447662689084321305892661161725765991460705934997980689917131285680722703182568043641020152292903522104966158947593859602566426069654384615237142741223968906271575309318721675868245056676635916394581020424927113499014210609252135863986696404995520817827489976174343588556505405981188853897516116797287936385787694323720687065122611496936420302164526696592372124693421966604299827683937664434163322182285463834173502247703819988948054068271600609295673891125697812447202994567918473428016240765181428796362403840799226632091037462673726779286692855281983560590651481732052551510956243508302770957057865956184674051852583427545703218517415712277121249172425232756542968681028062196719013813098309107162058719561262006169600315646152257153148697260120767828410947452446478892829174451841059247891882749316650146762732258548521456120874757514302538899436886716711549502294752694689842472477398210691193581572841189365326121275669948649122636766160698817856286555109398534162126652744764044114737387965201856913644963918023753458930873328211301969976820484380715182527870029516069063453845630909735705250139499522888285113786642708555466740362705126079082490233388160418749322575167601443526734977539662460405700733507096492150269158085923935654236497954956302255361493264931244377641165187856777744714013429768214619188815331809485758541597218065263175912923194607376012460441233267688940724767660451651111141967004791547431231669810438974692386547057626543401330348759907218863142687329644198633362550201656153544614188436098226667070314889632031785724104093648480585897459588176910078056201241766676968977793500319555567637283107084607036432539386695238122987311047267543751055776836940465353825452379352963153356259855494914279045714903408856366586143983580279872645351464563259990644220587481078676851340221115118671617283491060654979769629840164133950243885595493396657070150973506834351149763805073222803590467747661175361112508167087933451677421204144713351610025430116060982566229546408142273318605525702533313771124615424857919536893033697801108641590036321195266163958059401361543740096318709162712859750791478846443630654142863087907175389259476321550009116657022927958161862394342821306645121808178361925185516721735994814023207575975583965042367661661167059395315519751319206567693541678889746738444254363287613348105706892535874128617843355297216576131211949804960878634948043441022446192539140743633243531325657416816926398696624631288966981233619009298146288580444538098733903799404050778389215656397585153487202514370106643342345509881656264217234160023205344536959961333693897793107911920899975444859721636207108501093362828420726945122443173554163661171745538535805756326877893371129077699641946744245533891326020754312560426546231865007831373997719522429982394311898452969930101943722948126380990057443954851887387054005268861136861964389599869950034329912204877459716136624282048452145575834776662350941818169024795936809721719302294716801602232777620811550158273222598677733116656157503599838213905647941057345176535654405452892895614971524135810820696995222736853651218329690163219661840802500056343126828369866288394467511757860007921062016615885247569585301550522222661083306719829601884695611147629075572261082919540797328904635376303951049852811300930592533395463248309836293467771770865460012149018128819928055862601619605810880058992168286172161588044320928943856910054935396947489889554249982736899482680197104075197696323920017853788080426750060127485574198545256112025816180091389658643868840643591727459986406204016680162892207473629487074630406442744383924653646815036349352802999528731058637457757798003595165976558222137278528769643323461060657578049657177036831810978709207631773053011848937001759494832331074741013675269050601331860388955064319433102522747661082949966620794021555144261241029474875709353572655706741949687721839617839238384806912442615755055400301631635037947389864219204990072469302426005493101249202421107412470832999566620685023542734489943049247197405832013751774479323637524113417565688496039873500861634398425279235587361893044636389217090083025362776504068085455653744585248980753776760989474463742012720477934776063763144874414697358951894981308608342067814766580237013107847916758745276846294978035008403133000252439140468616495301862021154323554244116953049942648818880745252679122172741148901290635650293628674121680677291478133914682920826098090661610613928647578978353555451727745314971969571278819438152732552143536771391731286209017044713800163256210205618884534106668527145110077227900190679630684653185860788692835495184195462602138940483505427437487144900933756065323461931159605090573331277551819821432262745337705385815920177837255827923603433663682564302681145078655705607068017117813110420290899678536983399046447796919084046535247948397996114862834035784013475982365543561688374597905975490331914518989534741939231523598608030490229451175242545911258095231080338050403375827632636664825298514817179804525610490095971275374351698768825169465540213543937748757256353585446108221632603505104783678216454725149519969219117742194511157016026643040515084983583936915801199560233024321672396209812961095199657218799949631183755500344752604163421198660137404779445940620462930154056655208145025819714443021091121300378190900347416458170807357353039514006437276921384616246654983049965140878390149041992381877327902093733250945445288587219976643641979758047221305709726103416189027677658374620281975552725178222181667943381746195744146080639763995618992905568408172454015121487113217455494278913146350074932985290938752196814922774361040725337110476917704479023101368096356364832695322509958914128572257059020603715109397911365760439204795123922812913223781367312424350998808762257721034807481835681651998766287656359222456231375043323926292019462374418911882320364675586484045795114101311810395821659358351094770191106819192165100722106909587602564634497875847278247181336416999914507499880346538617790523035851203411795027812605794251107280091353273005314656634709198454840376681840702271992809670995813543091355889018230503305374656984765159903497635865381447024444189331754035878464886436371789581836552190602856351771757782527547822267775614557994798391901136397822985900398380008314173882851847387512623609567685997387539508862364498560903076432000482456157107074108275122081723035727010642610814846424354603226618718625886055597477386587128280507049715942990504802950027007214427571208076799785744209305957519533481550942066119610556745111115717346039144715235161721872012969499071175200247220680507421436292623091571785968760156130310153117956134355352467365144666426301061003202251456261206554104360701762890591778616771211503482260021439374556262923667789020476107763245300577696965262675268146779975856023287649960150892417140093771615391701070512441950753377317186186663005631315458217173863048513590247088645828032283161823127536608409989167652063374142443420611203128107549429139864489945526491947312199358974099419294787039303494953053542103042229653906705824214672291049117359981308914830841591571668885075990926631282490742591879063843907248662951686224090883898047069836909104126912246268016980893771780317700444220837683576494912698182191393782563113966792964726414974466861307987777442012355922523689194165387117430380757576015461784735576214976437582343332687352732791773349980061731152140681444298873857633944023396466105395293115253857624032599892224631168367396901229919243447935191959514751496098915203446922258403905381078541123338231761003669073292913109689241474781930831021930920773093028907447631966321005930954951519028847220202435242831537209808482970886291775814344665274228741032274700712720839804802280896085379441810359508339866795585826317069801530566183772967157240984843814948658452230650539977762071250101998018849634709977568363257369225877937851599213696482301571954620462267471760703399734576981801854518519268641006048115379899685838392370669528010540327955775679259228144957644966532127665609831238641685504696510998562910145910586680642982359193753208217935813839110449029145897013697627993174510462329773018587747257607347432552097344522902927835501045271193706725425101547273910083373297083145170810478817556559466669961323573881465036877535874356396989504397538653920153887519146956542297072193958499041907981770933102696878835864286979145678298280472591071820364398827162332726405688271897136259980928520838470416507667594808122685702918772679949084914827671107033343924557284310372561125110780471846345717905666438166091818323664446864825542702929354006494602420270882108293286931034081506765517587560532877909338138968098021135705080761370269286085815343273775759193818137135028641004062690717880452351918078591965432895695765058616513023355632858958433914167562849199947371012917783820010989579709712789690409005490999034233506278126252479199402588190429366760337778791896573085778961103677665739239495711286229655265120849260628316045001176987872098368792004759029099962943252205055944601351112636701423354947452927465592631904420602289520781363755875208215697472634694412320293494768662936243949101433157633814001120877595075567551495042536082401632140575630940121407082286869982363761481564518235758528631046685516196048698859368386218880318271061765704747971619430486326819724613592689214435400931578844043910040867949576403866365733952589730144284033902373420720315780856769993587426199974788698362813171070053539590730343297319668676461197700296332926124774869210727688659432102571321755317198405205180804851366537730785856049242410028551752328731510140374356132595527437169406819769589010100073191690285651399463587600106394049694806387550979046747032230832975807531657624716892389042127586926200531356228011485655632067270776344650537429028256330562049973011536616610047635210465564063562891627037849905589460766444607900537738984067507651000763452638826725554447784602337849630684182416040165601178901796751184454108410970372915026297780207232561779724257284540580328698246026173268620349097466116989289602526775186091079860819475270082776738683982226318031743634838858131380746687382040296199271730671260176357518695866916893427543618529404277607127971459389518033268124328776123084719846477362652514437349799230987647649087372905042923031086389629179571870990011347789859993510591622801683228482826513998044944059668604768206503571063805507216237240981328924991763923009512283214122468223894285504370299698289315670461666726733652837055702959620940641788330783787491404602563226531147020719826116988476823497732926290853821476166223404961160001096924389560083561276944876006183756534311984062439703263802145539706783261718187942166658527962960533092276352744711055861136243465149805981972840175987561958707418267175067931316275047498322200587880576268865094954671779243464766177898758552599757508616514186196169943123880653147069838516669881803681740597318146206755874079757443188125453057884428439750345334802851065503715974134704481329624450356515164297973188083760695626401824853391779165214663628359408386221639119210119743148906258995201341524398346562792958211488610168058187431212666038018741839767299680604428697560477414602333069711096067901564452737473148138146249933306336556479809667255395144085850031285673796810966252146779019756401866211660242503051411355647072453283961099778245776486016494443242988584695611792504752879531461638758606308244858551030399506509501616514720994029206008593978077504913820914294935007530305177774235898600420720299211353235087873515118699253274317372371441564099793384196542768231848820524408931057791260415101295126994038029304401122621950902902317243706688195070415543143990475758028728647202658115519582181751271342013647966995651132947313459347551943969721037031880948491698376360926576091489209015851822736908119564537493977597524586037567941316252188972835121917854567893873584759876730388258574166676199848607854765544574445926404049426314096227979547641580961486553610828438781030954981622844042034434969719672420629562613372645589098521177609712858248587522350086765712097213124852886660698283585711055614024891696482439407476059729650940870279390660072235236367884293695084544832445110149569829757151808656777358158238254525922165780393123850433058801080892065788896945082226296108732439262238787616570542698581119646604733198402005122398552648827077104722332992678199056557299470927364570823761290147604899694754093861291293806128968075739163299403686652171620964063510957602614932686548010283854899984218493283216604186452178321702377778411086647089643083536853079007202706289865894794560784280458117085903721018542643687460630062086849623887202858523394119804236463918105883764124004914864067573293010740058207584869077992996917226011744510043149699538662156097592004942724190807699296449564758362771446760360988526675955426221538358274034316768189540338950251629833872083743884766763218791939031806474469371507600467609124884961189374350293938640946813528701134005682188394857255319599502464752928690834481881692320532306521907032097700274840800347749175011120874581674751138373838309866031075329428447463885218207099011283032825513437941190571415702015113764519733158712955707347840973687626305465008799342610668671052187668202483221327731128855780126904610525975710642245944270943823553272666803851594206184904844685608204858964285595040428951826874008612943702768775571572982145547980611451363573581937076556358107861331633668576829562696412840259021128530998510174924339348760932601645750419403390123237436397034221715001409892611077210704378594688824112329619576128740432829988601686607253407046766092624423362253535661753750964759159852188087113758428476277859273034530056350687405339800354902655781070370605739767756000131633461038975270824427356793971946551015820792290536971180783157126689640098820530621288507792446703805655753395321706361755950395823767817808615391846444653774090194566353296178009076337003616615867854911136687193942643439875284920963243335324803561214697171303401288181602903485662900226829032850894619451561376114424474150557313499689033902308744925493931003216122358014725678573410620862918761669315035844710566083246511850794919321673013410564803967703207936807443314901559494782800253755629451940737904743594879640146329444468005115319148735585901765468105169587999021870091259669404250927808154070919939497732760701856766485451175946390130753834099025558093531759836523646015401703357823493661434990162706367817322211056508328429637502714843617148565442770817713125274236822677490551218501699747987423991340404114023161571435215634198594184300448898779062896501250529221355663607415908771716711364095158591598201402880124641822018354570047044910819163431157090801662504242308736186904709499267896316716001711776687561171447788414484167015188242376892957145453430653960876478259017405725586466762925016977973926664782619289868043212806212487455594795642681863595616035168821275448669747584886990181390567966588922648921349769499989603343030651325764011831937950457776283602233687855080837455623529689456952632770161919337926161113880023113562479150410440805658354329338924879349524614855360233772136863957194144882193780973439998984775690455876132576991537498118488127586083582266286785306990145879372093832373577237716219274874789935708508733359611655377598823628778268999543107830939756184673703062876746978272980835434520624870429607039294405809622707801214048225392258021297187958046771263108111604007132526983747319023097786099935805384935177552520034613163969127935819166143973152742071648121284579615938917537545382602936109951419672534888112896603226565670441255460479612112232247889395674801931279254479036442494974817176919339490460498357150738265104502992998707908461490905294990233926994102374238976909647109283890678317329068923886353946979979367753572722523619221488398557932725288342201587688645507262681736758859307080639299485074134486954615315491434377443324513684699873150311915296245044113718793009387174408615185130226282053279447459572840840943205138889687460871130045987283049009051642531486310188805772823071277167278913956966821648624384436448992139659717242652614635494425925977229105078157840042444836524418004886989982155337234826573443734622851816346763420882566545853147562734784688126178131464065117322959955313194193677689757367576450563772503644419443085956219264589266029018470962481444994973142233681431059441374974387611277346320074649259081515561433727549689058902276058648957129606295995993786194439237986471187276579290477475311330474312685764201417155156294760564728726668798675304803330469897372935148806930189884032455867405372201122660711286735783456396109818537415179498889980527390941374784322775091777538714264918493515130399318169430693572329150007150799612407058736200024509768598184145587021933051313694924911476151154952180216593469080167508870134277562752394942534012353757351282182945673870398140359507548474774321456782456780204086934736416522388288481475041916007832620653174486729353961464438999984814025371210391567489546902495463559923569029167648614338322499220463852422361193012170817165897480938274568820541821188389815508866680223026929735468455893280166481459191735600150770526196623676721751708424000437064971331752661384592347088553221307124539679366461565387770010268688777843728272734200142425649031835049010865717469121364611341183201686493320423973652692025934358496719887126957557138505170471546651373381942853506464491149164573975810130932483689573304472409378197899154110971616571572207411472959669118161414198770056763309588072077489310482194968451084178580578365784932490912823703197336568211946603701474382941259930969031298049851113323937243715493099274073533308012142754774455084524181250502632916928941541126363070197498869262803532923422346179964521309011533818140164784034425814854972919734464170018743030990979533093268651032863761389443884568376643976935909304501295401017830749497195549959857801630296031010265088866619589530380611937133756572452221006643759739214134839822759832331261700773286651898311385398874946604422392874737720396711079368507229554316546648905212738366705892795687003184341692762963618775911048571781429800241795667438426114854778237970643848372361447535544454996295220905753152047021550434559442481550152408435469219817303928729888636672175639787071498124882858030761343448745760755571988735455846199600258527438914010414468439183244882956332958614015305655753522765775584048211403175769203863506308295426167688483366865763264336945935400368682760715901890239681521297251022445715049497552999325519634080253628534221316132317920709546407145543142344051657141859938362719071785377799210145026945296283592141797168737324732282270021013696531830003707231675300630743622016630302367465315485489364476801183855461986679671256783026870183286801577824484996424529985666258878179586553935457501991687935442259010014216103362134817139786833620140694132947879889618178729516149751280304335233330149323391110209199980716241327182513702836455446514928175074323195940425944454746312749148709690834739332736793116092887805235249580710534165748209259756282663907287019879797958884105813715623465458335068712003964670422705557918896372776073035300526219577190501095084789332933565763963108111661149089097005559867359771147310426922045933032305918567509176372018350496189656675071135665646734405151480993010200028946523921218545636672928763025192493010850915825650274332589176146755475293460119385163258978275344929115311808329147195669365353672348358180172837704240830911730153842438766753348031638348322051743878302757193359092900091787659511346257591724059424685136521356790402535313666947504475270629743216479474412746412705971641925205413146786443944753422852427985502676370728150637990480528194713433173022876106527712816899038866832817916491022845108167533688542762604416807551417174894949767936413416592817287066501003435604650298987192677126902990655786211944226568436806016267746177163301978665955677290545741490211721418031700096819738116657789486989519381704067456103103930295745803099245878224016281987896297031737850480990551207971700316859885334490895381128398736977731945180547579508931595059196299049013944615472650641902180746321956223542383683767159759794950562332048632462906212810909889089008957278179766785651067341755603637902599520010479177783939046151845201091763121637852305218191673848700808253916881553971097867451951284454406043236933328995709790634834004825745889255436723560505146936032282227865059344556204387180601763196473482538062862276078573325716956075111365106495330831455869215462585628289127272522254915253825425444190786282365363352543581924047547466282344089964398578316569160057410933271774215655187930229090581374470212322760118687303920122208819867488544160383488752337971250498130918299560520828184318845499822913655701350750463211255707889177636296786669851416775155077784295839896408885998042850545824705781335834746644396879598603738837156716423238283623869331422673077341705548869117720828868065962191593153146672368264387477840070971549075090414076463580878779701821145668433553285911315729135962626886731931577700766634852864231453421184094809377255132460573534754323798391213680383923660995548721811705518371358618530781550315912711330620563729194950670286040182368960432615133365434966982446806858289013404083233968432195542612078792769730963059475613957360222962139823270007151820744652427628073381412929070990453589945647679065946999594553049995525236781811138812553707200940745032833954558948348277509325834927690895556322746687500675666885182586314668290034283063028124346117490291676851170746361036914648802015620950600168331000443218362803310862874882350766934897814979000914795365991661093639214074848928769290092454265194810778740339792561055009930038589729604400808047017703154280755440354059905613541532186405395638656969804965747882667146097456229874841639811866253206167066802210519685726787270104223129138538256086426529597370999179269561152254302007790617843463015832051838860295679672955114557267880871877294769336676508627001600908460054162368726129508317982155070302082447194412100423265483296343340595842000384678390313642211566873082126403234338940598651697098851995210987299123560946123662536832984807252292630491716492616634440479050694216312144897751890821619957646093383636440407604126572211391710917369977448699723501494334293627298982191026325980417570827523123748099835743791422948233863407822039618792636983598322756203778737906927888204940166545023789155151079520134345477869446202833164627856403439047941510018862568846391989076252525269202699301143363315999490345023316144757597891732288418216441354534067051411693160364736418931781936190853601706982475472652332435934091742953102374953825075243173932857415298036366463337480817843053300624481815807242003212043184166443409252251022031316741315296052063524622513112601479377658713728304208052946493738203433288585972910510637049565265581405112052084806078583594767883278662667333712251188019186721465088465445481215731402489062142512339145664059011428751430793422442326242429773129770976575638829188586664037171632358621069131625181700059226988667268829294563710073859866063932800033109793201264840987233170887085739367814394312993435017136803539294040433324752086070108330091274036112524649486167984550398024873312211636053525714081547429946250729842788175102653185516844357661228205457122487429395610436994005368246840951937917284806426706684903368943552015238106271874889527253700035555130090234801898204323513588547045513552178013944400401888826436141842509848620628320736028255771330289025117656221841371782837821615732724991799707544695947403119865880954184386810313802007553129140940340935103771869117450936992789461662809914879668024053773237656209655508084935616455954388369709980830274241628084480104601153827556187197373725211010461313412523238486861539293432788739894946728583478778135816908262163606107739110080848682063441144177263945985878921727356214586878662154502561369710187601285155513171886639672045752145915212647792678320376305336513692329755264283612674237259343571289201122965576644344766979194540964151493292341164102159892778753846028148773871321551944681589299014418390811286585003943641522990628535388888904785529645612389112415543412659195006444547743570036880621818627719178699807765053701117415739859914374467126818098243677456847297576906713294460892691271395402926423923454535020852862937928412573206658297509161605922497598402696235121697510559426370902266843715488332452130496290647901751882444064371982682342947717730941158937854934480397924915761888495266616423633985535145822466312851753407834424498997610459366252497258702085907097746904735081580483326644415406467903575946799967991199080942764221675995164110491732631594734515637603253792875325752491679410700270476693548641207223760218337579865175542525326944697395525326864643655533078623323090001493331817744989269912226623740076002102718765311308352531616062439990406514901126770346768504610173827534722951541862716507641653950395520936866565994336669803204116274045385595157115296005169121401523963505440960570593481755098757063211048035974096956167435813838832783076396642677245600461821841936091513025426526071583671423915208974154149265245568573136770538086369402916962246575493996341004285284863841513117148950238762738182644668605512964805020154724190032032244541794115011571566563232326072507912304784746150161156888859078482058942079904585436099894120415487194637213442323000449867643598260548104697779817799064010474376269418569158006469754424565844129943448855256824236374070338447532208022673037834824293133175420025883353351268759529609933104844418134148806768497517257353636090835095878530578078819311326970116710458034132209682536911070838497135264551695845396989444885209577261140128069988761154329747639351351506094475068850082319174970046196476046077570271097618587411670428792103364366204401133464469652744159658336044848385039077576306028183027678685946519959395864810824478017580960358509813821362895570355929091572561087476270184456439933552446148989364694862440067527612990031669456091449011331830537197797179838144135555015675864388849618976689683761088909820475585242663372353651500397600737336896031125877724680266348243383137018226231346518545079763635225001702912411261638040773516079439566367396155905857260420263454113923792767463637560118716289130373120188710144038921042926089042012041215212706112013297797722704809861737439927874969218395042862863038174211997751529549849041370468851312474024966800232903201258282070300867316418779044657797815007623210107892787098979854750463136583302783254030698689202739673404828223041273740174775618237897601769566761601031292866205023880934225740381692889270810787644889905095296908399250575375554666694746081308134872720110546675792493459039535560447305265733397679866233379258238478560842326602632001765741600893028102735389900729219553878901997730358945706981722188788657863477915611936294247347650301637227150814168503315432367938369751240563162773742430553042512148951019619300652802052075805492714707059178828164596971441401338230140402032430213611374493923028161732920660947299749547564520698206189691925238032659164035096251513109136034522078881705745829496718475881579467601842668385164214052833239837525957651365435336051304987342422073418426184899512017480945981114748785387449811335742090663396186678084084105211965263833818454031700937561562288336558525976876229490226273028199580082203465297811839415547316651175840513137171289434183128693763076278647192554667988488913859562706490232701856390923661647393120773341471291211005831990086969119270887177375819295760374378279918452108735783767745293336258143989331138292069019447635905779995707885916379025140640403287553426302324651480626165088803123967773052277921671635481358925361522447859923835551793488690098635849431494172982817478330318621662708573686007131844281481334172016310001877973901070419436226647000438157743459376374127808876830897239325048989586411068947356155200645691988722015036871743723024337212760479143239531998152571337473763750843746029026953952175053507356323067568101635773377279446628385723610193408529509365421365467659448473352195533699383576869545206858549240815546507936101744704935258887634349790336569738946497650308116524761064360634221950782205378321587101636391647458592868220492286277423195946656554342449499801497513308737265833244845941596641597949453645564316811984612163644086145543471288846028211994210829215119575248453196665620681542981803287337408763083016428489679771256227778428367094590808547283194954293387287522114950152671123686995387144709289434889574266785698660989801133109908878722830842938953997407307141962426191710591152749652896281200197664134635012010017754879828354015973287596891449139962554011278352738589312790153664736051361326899203821857485850379489707210074857498965231157949399160048641541101045313536335280825411328825093712742662204083010289427149183553516890289846707238200137895632016809893265200488671147442923558187968696890119371730205398965385963090151657516399447994432838757726947515830730313909271221258222909736178778538793322817844141218623921407947699005771558682230341570509593705427266391294258837462242284782442293458556322498416078016407568764628176601161795105821439602471332607978634876739018227193137805292782150708275097071530141000317431758171070324004371047629610643874517098343621722339105312719465549753866856902999240008138599818008328835617425184189918413239904023985134596693970997060684808909996629778633899006398862555197248697578569994707787186326517586682693934093953646402323234622231120450603597770965714346044023722166487269657460775560243569263866006609785416559161335025608390978698452159535525957539265142343781646294475452980505804822697200954012092471068678430036510099226475049686678560735327127522898512957651966145844861308078527804944045552001898586720343365523643304592132962807131298776105474200746745345285843796846214373521908367762007774098935893978661847381229283180671738260036674825574335827173613234480118886680952715562882949223082831104918598400905882531522882719418949754506905431295709851903231603588920399736466017756147289244335350731221486163984213755027865111111317299170017493993262302126027388302069703156759702780232960822551107306858511175748449690894862290794392182370862423678684167785420749354673987603781916689068456334816121075360486308352440592078977029565885357556296529857954541238201004644827072159011731496444760956372932870123751481415362891001165173054152704024416951703852690301737594626845928008896703765503103410832742032900698473531098468804395973958869805395289276319119863278892641167311297171193114598111924800841599804890105080234467019499212020252546671662982330435125090548000476519012472368114707364403666032474149624863684866951768346329276924242474130959228892775854975340336241486616799357823139731318572074744178930918954570211790663960242303839866656248377835770278085184738973115432218597713323748988650416349887933084402592829824355550310144579618299171264401113250529886461131623741973635497663530623741045786558026121977780047939880543882182207511904797427121935570885708310882493991173929891567476534646365156339172905009915406239971645661256229268055804395031998180616230510043286193904310708325739407511060307628144716803263856082077058761653944875793850332151837331015422340104712147506144319255684940159832784491476997590709384042553083792048850412090544111978260102734107820752586948182363774211794900252851774513343043529886458873152702925245272688549173512342590114438756627294937383294906998758551166834632817310427047765647517705273645277362305954374078638899199603105178229788508783094148475602796477077264204330222792513884686982468050264784084391015728295509732426438402659515143237084772066919849002515743287642705108919214802399413129256660801706679618852056600891766119961699344635380507178466480640750621024526174265071302318636918986604483571204201924367863677335862306913598848548342396420384895050622979548250707003622947476684759859551216682386023057069639341702708676987083452288593974848276025713360611837809744155995137201661315180650567832031935705061742408143204834825868877815365724862552645929485750897464946885635305312448038202659105964975658174656594426968356874451587606879186317939213163177289520811661249236533205236363843027741651389819112338658143703252923100412317365424253106850094074776712509060482825367975534056288576108806867120149292209333580597075319619702796291770818026900513218366395413947656260315929051228034153509481842077669645256229646548035224461523489490463528437626278401803584986245263245635658914995091565736738838307578958515020057616091412698046132374784454111988205422234331324998516903747177639229804686651464635787687913984199336035206038479643917365280980413631002450323521499222602120696604848016026052696403758521692817114869837584985726341615540463319311468623914256879068822421014701172325961891178184078585274941890038817812937990845269171352520573426921008711660625433063075186191122610869126296369314625747044217570761418805050053326730223910337577441001909368689194013526290855381408699866195837925527674800721920960226729442095474512357679398599703684320005661998724125628797484993078268179398761404001481771885522888739256478312290955778762352897579232629639434535084449907979504279666587259002051831558763060234611617722761753974618740822753755226108475438694512583508898623917850287837895078768559752984239084547158426483360975826044412206517901530011698446174329735604456522707893165318275904202008976383923133224993712994677426606709657712103891626285663049066285569639910144091829733125515861261882022084200614208743519320640081905544143183133898201218914341994397277677808948117259779947943920624013465094000316001824601263876745592615635934945583646605057925489490707798184455745693547656691188043039865281791047018680463268674918498419459412909280820759458778391959424909590315317988573301992788455329507116038937782366709326170382748528659977472442504806045590899501475580100050097532214117738150512397837345409209338727109330573335224693928851756937649493196818186532144726054679057040762708048550774435979318463789454698041279874377787383377755224448404660901502332125623965609737169968420376612983117761923655886700255316884096207161247747531119427700103191726609226401869062196431328026245568610525906185596359308685951577585138235835555347791168269147349374475804300061177289482623468507762720843615490741905529135942382379691880087400310336722726798771489198005796018562893710179875142844388758049842819887640495991420967831783048826761826610834328829458222780724008451334035495671459842656353726320662321046511821874980611006558661577081582218728604355666401554725658944135018597348760868668719175692781743271995294723567924035655552937341439932521422307884364665323575997846680133650244445425947391243726622209615903942428451988543345432432414051204484169125655671109699717744921956816147185826877032392146480524483132691687109233975336353563479718452032038765699262019606226211980881183961236018626848324410872387154791445156232435835960232849875791193902476346180319433168312393231834180402147968732491165358048193951358950685612676804512828586548618343879283411600945402453753599858074240038099555012177675035084422062535537555452117069661803078529784196679849976590155939263175058360133516520843081036287190539900658601421470410496519546821324882032919923432498229916849450747680772083632682208591950534389067009541636164718509449334055285558508164601894582566978055612853926878600706334099850380130503712992576407286472448669940248497441426221555840047419851552803677013183038073214508164069785152866442004919320191070886561792700023162643618605373952388491878502322946139193948367484946198856048633879993362936236134197969924516616877508996665012715141439307111415459600095746918427211349395348723895376556087048556020104706463157765556278099893297687130264371637334367185552340999605018709211563225641496288058967598379381699030882455814001181926178719614521159590216985673138297062581970981455454248634092113399837894003881273311713999578493825539749364610671126293857575072321785837525714813387124720421080619886699679742235464772285748100941136213630452426138234751083849306830492176659510994919990576596752703082034811830851890010006336466930099105542215754250024882940680036331211747885602137205732810702171281091752962738963915207230815104053204012407910026753491301069595370194980114895958848744574961370483709826787602380276733124502970766761309550786620533748633573923934571951626084364441026192304505855573274905248099525548631967218986252186941171213680093303172928039390443480357999190259305877135066796107802080349853054288119048187787382343879732959888832841259537706770717608672789106809953381736735534794902210263260972308488045954314753654754125088551608445224558296922935812787332715536870634389714778958855024518179867037952671607286676479099094798805730942435634635699253332497614134749941878646224575076955889962920454677214328767028968113196343956708343334373288985958383713578754412248893218957105132419968694558642805602647406224067665182165070670021463697099895389506144991493280701476906083844546030015798871989737076492572853121324931510301888178685462119094636568657461690778120781180758591363414112669205788705927216047532379115438797660508557093796632547337145241229285898338917619884225448038330201305687970093442188920884496759730289470569112836528211563366530919308784646552622065459429352299040273505273810475525159824340322166705264880566900087422321523480743930851685520470696031957422211093062859540378268208548834858373351353008257233499689285167933454900657762106129138026408775503305542200147875124784039240943727721730388419267905737113721858950053405389957044377104759210679742229053504909412271987953770334420509627273708802546374742039342411611566018805134629199896831848818010152154258557126713440955195083649469451958485812073968350246832933288571997314589798896480003054360104134205890277203773613708150631237134215544413780183075702075027131714684749502006794587209799365004507466540722600841661257435632912112012259500367326998652212884194478716884535533395387646454177079819447999060420672805227272662919668575559522212580728554363597949634601420376995337338514128096640428281394534710515186484710821563383722308854127430882179174447724450516781114374940557623705479122532550171572349812873871010981397483805181435456707907178279168887127847714410279475532192062896885877242800559640454440015512034734647868487809996174636369676674993797082535448976082876880495101118108337771190083957220263559743347682883807480020665254028163652130296253448420588001923778581927556290585451232754134718905278001674189418114827853538039112451031580824511284365402392383559110174430412014916670798358435127874479638296693035721884876067010570371232008640703300151306080342349189704279487591477432686606309538258097713412858480451564487864330075349804531459705250073453243290285261175719465334758457787813642793599529980722560422893972029562983635008850238604238320265997299987571778872454862620035998409579399446939669978707736287711690094108815489559636017870521289993053859475634461623933018633350330020698342134275536155369548441434169318243161668913255442572647654821098085942138060303378197771168486271160228037737897949368239125082095938684907932934664488942695931203459627545608731080243446520485980125438760692058983662915370995314293648978300602027785336413092247536939175114685327824694272146571713179440431450948911525366165316980204332747438522942939609408163506611232102658588568581134578393601280123180269271114483279312179994406114742761606111344955700417500043806949428629447114248335556871368201889176266166517406945648624996063329782299886156135661960156176667586934160780607827090212148094685794544559803641087893843475715914124103744212060824457977257550335434058456285241245233711482611617926623480599889372500795179642980631725183140225399362483720158365738080667869406997600272497889287702471904598709717098876001779258892720953654709706435807784062132472021645450457271284823438697123208269332967005805261916163987507258554634312333724525673776852865218481861004126646696607244621158594374904691727060978636388742151729236450638925815496085791607767961654847859010982263295553417452897289167669708902103432142466102664940782649635508156386132030214688442728983350794419249508043548817651456332727158868929622710601728825804953699810612524852605534094579826289240479838624576145660970113029472363899864464022470651788381100510510552244456236180650367270674195129740903002801086258355290184900748898174616995210487815944009243277925307410873200828359668855919997587188647181218618445349659624267384376435412847454758941500751369311547715195837309802761251593616391411960415932311415296657374892615616732122296613019316626232690008278677817550921339727548374657830298700266854979090121729903844371958165328019609364160906560537580068067066784453991112143560876724889353917899329844431124542687856197085706273005310675104982658237535224978282736280634131654457766174885405006152654354407218829566492944154569098104509120270093565572540200624351078859505991845612780889354127563696388111913861452615993939502266856463698650473277671785594882507214237273335021519504584463994956842801674958860322197581109415614022358039152788520036487210383627398552383620953665615360987820114155557618325400424330144654356294454021682704019589137181242002645193870602860632514596808998293236549756575590274648709789348136548878051040794289522329651667807809416326274220519562418756080131485857420650581077670821394325012676050098928808866319782102514969135228019144535359883603683378161952526409851141188852992355579930728776711954594447857314057182139820336709300485204436142313237112136501643675657780281096361756510209719046215057012206075506882043569383816887782793074683926309138382152052627267521357876591375690539296002701376676913555098484579448278565539442399226322383374636825028284747323375514793123290277643553809426322514171847360869489482649204270765437028994186904856821876134511875886214052987530035566329998128485979509685448808691587016315738608299784834547030539906913981847220570178367288435148868364880609855188586353377556638547655724981641890314026398054444835823694374921337280706501181869203524753782327368224829118575424396548104523742243674415142034845009765936795356961511402426267340692381423063039803825510267588811580439176972454763307984352125686172299327741858959311772486339893365270813226019239364661014360130443029080270327138213384518990432522477783041124166045468029291726887152022499041297189523096670038077559553085014881999970730276069503122073566539610697092200315370401612423885025407505051556624145310422635671158447972681864883798635490499345874691599932445438896134251329313071795148922733539939143532460595802107642827071990778543331007040070017270779990660154806368240044955470582013169161939025929674645478006844091325862770573791656267053098470430301857712617477542061340882023816000113030486164225191437271412842704768350821508393396025458426394486092703868581585337693672143738297089075947937205262719816602916472254219389153462777593736532856287534693773930026349979907083478928017944044876884139617989414425313686361950349000095087344620963287857037508980703053277685547676970057706689647242228763362263581709497238656502947250356857696134510375448665130378315957189578003535361683056488888059586719886135168721108905070550299539504246033970095481974935412642419425984694716161463506912286824468586243954165964066616366195086236810764950249057889606246397505080912293464189103315790631722469367263214187620856932711240693044853711841923817566267584968134803252566229398371270397296586736201288174301578728237777099931900730800863029111021075888625949455610062154931049815962476438792266134592162342928334695103516174348484268679679583518602875483237625188487970770014212637441010261431226568306147334118641068799707630612632972568904149837335082032185982302062292798542135633291714710034818638475879394187191377649075013950347633430535804237962438027435886311588897147250235997479981577294582380318658824780358113695975078722041174584818860601697527524600708958712381500482254777739154125799221364724075397438914919098059051288071417135650268260054516493230356733227465437887944739373720931124780300230866226102366251241396297119875246062267537631557373756988615486250383078653768899767470128032708861676285177843776281143132314487966731525598736795608168843569894826229022686295220428650239056565724601042980308867298983680131130196969024326011167099688425210112779578526551979443730081851971595042195742652490647110180265914377128889862756045399659094736201792291165938544822302517717793954933489192721074972239748384147212381878845501046602388991825936064046547656832831075531361182544135174363923075305447676444837017273901215623543516398945465657026155701301208769918842171496261301261018122015908480171518004148684535455041656654005233913947081064543979558086565981457874291550526976161445141609184183743558790936945746060989663729798932695702629269662227242886575395524068337833426090229734173623335453307982637410497514037519846232915986930704953827331115815091868253802712850681242621973097729974891149879097956378510579194005140488497879971485155455904063703772628046492733126320973441545666644596083590606506595294001637523976245240844317032673552538267441575267754218014617228566495157227709594671540265147727838838989535723261823910190840540479071919735506375566874839675099784978966949470384763001981915357032683130819349877264927324312975256944683143350581703425191642117394902147069568396376783755820370816686289784412188503959755009208929615099870106400965276244526561172419101158842911176826640593371069636626991194282755129849541132291980165939770439897827178474660357612850388621377781821648600162087863274585621149615140427574691881778824227534778230296034639370938767894467509987246759027281844170765984563935714860551945360275654301121708137874572879385386614321016940760665908623748234314167677472833025242167075630656644682951018066202297927665706688050983863943617675491262241319287547133646930495529116152615468174176959605611867840831435038172606914423617488043721436482222190281258129159697625412796789303063205107891672873312080242253674177042377233327557383939078413185666993691773609130315664362997482799424110237853406833021196862446760617513847405133140586649741614876724726577617935105154905837227165206356870612744467073033465073116011994957659036030527043351388626200306726062096367305623232832572803656678197814830555837210577550743391917719163452740472185171517760066352381354143859957388282589159735292062964618662405779726881572136030223101557079149253707868388580179611031675239280566049484569942137540964891223901151064743004514708448367684997203863182327140793390689430602897838717307125124712048441109415392865013294204892319030877491890611292864596368201775108557464921180077530823314096948280996307997049547053056640374061856401420945441973998956007541716874107949032629460769834208319509030904317554111810543328462015806451139212770165096386498454640509317171780853466555447886254039533923678267975754453720844505904092042304836290463053545923543146243152348527573709332971978020884211803987689394102260655311141773759266531297789167826746274177203462917226744875003511647538411383095023921787063510588468416268829838703205928146468740899853059859477040205655407068119051749149364116672130354543767263706751548751916552480657448855046167246449964240724885718766237896358140429967079589607378629273482862251396030900923006567506270317974512815202325516062524388860841735018985735970706029977084997554428141983777457157566963459985567471397501649216975227887352770830037450773517555532239983732551870065376183375203901076346794404394252183799182412603866873140257742299270229001443750354882055084800565774364864893316423662925665278024806057337320500731397495469309088768247269154071388148240520270392827825230608232643764737158673370033355274406606921792712603171591046133691458566763909294884161184523631496842076430057269449880104948011153697215524346509413561253655445111797237563685219088078980466992397944481798689856767733636517549587552076189151885410128253388277221115698046689803290988532193501927195435572148594248772648857047956622049529942491331963056354931573861009079872930592745712198810657164481335976129480936361444318669308974154278844827014806029175967957137642155878012523603475606685585219778029244059375359229940205712534278647054877953085806131683973693115491679365769975574789872531269431545431207072003400613738779284602708989446341976864940388267655518210111603117127158715515585252237411617257207678493244088261411932476170651631430543090029263626761809085827097458698258581735936969321466949163486192839704344719446711278828312181093467907389920122224501760677034717358432481089594081618396397834615694350796815305224024311871235532562113870708812165647266761472945712455027529768897600239945069267358942624395728930419307005878674569224397949947429063797282086451998901167859344321932869815785661804816033927211889336046340310397774234788055448733339588802899541680807315159061889145697862572025520865524342632942339426336959832903107630221151169880210754198956945679547629192923901027835796089314284190730305096213037822588994005610419693540539872199329283903971285303157212922869755598399785067410913131734459366461369963371174641688306963923095057718011055143419780383158185068372113757711702231123307754198831109296041913006380389829459190151044834417677346033919000469899958912628905227684047944550979747677363262431570205280275547280522557244125665286079794071499136359937269676389739699343118400113121238650989664200903807807594274702458112453388450769711448531272234650025999593901137327457339380676818694380770343456987604640070077464036901101037449411338579296949063566042962161715940324093568987484657205728071507890199097277312144694435313764336497188666272944876984655236263298759396763394766157868081971473780858221736079904179351305192031131743507212505161649129522759387361119942569643810740870204137183490793597453050473840739656924442642172487292506460262007018036477975646602210063910284643973251628714575808541610051054429703686217506770467108083338509428417598112936314592344633959780999814728300089178436497478170665641606383444149781811376277250855568056493181408618410152136647409125876888759448043528136621991664638078492331325334897424754904376549515048007134773285927066597131908581212182705326723440443309863748344884582201820326239778115227827087404681758678897932549297574199453075599927072289283468148880449099294641460676561793315389157305112565389013322665226380382094931432203822396606604026490817161093488403007327028264746465872042754506493740687027996175366990832056656494928204533589104929747784743335339679090009294674334216294121455352112572624703871723534111999205583902772942791688644792620748392093064282913032859880377705151709875810268693553404284426763672765255097703552855466360148663719933982173265438991416376439898116311699065325541710181343237218648526116517039490087949902124538513395840637140579164677407873330146067602283610559738748925424699535399243373768090130523717977856713573976172243791282242866308830835431267393453503248467384926521037945789064671028341960288123259568790324215311678640796209635176003499416062013824629790007241828342834417582637127449430807636218940382919408445524819938986490849406657001935179671350840603555468758619639001468435631968669634713045598609885519145898179922410298302034817190688800830933234759528714094844027940518555094993781746968292792975321411050536915277327744786096262982427580491648529382922659442110476917219998518708967016600282031800799148226096613472813527965411673463571919307186061936684121819372768077140729690862133859161030527883973369994297997899227040661022029752535998917919418167443066173301594255945781923915868264542185844927564878115181297822875552909930713122983298672514465194271471555717564938240551556213692163857942321215574755356442223799881632143887011904135879183610543028110876617710910446199260550697118980850981669952618434040476546089858445138357799109836192198421234036143128899665848957673716896720389292010844805980590677922954928429907867804115326537730763798262279905234645626367939100801907320551048369469281888215426040476268161485604357687602975819891113114491064905271339128901660697198512268580603679387853879007130889118153774897630264532582765055863590907691290854987612582311029543138997270045604903735648570920932101289002497343643709694838683142489202651686968553726259159241010890884399466754463131577807072509496210932721277010438005259296718721335159579534493520678153355877610444539527044575002379132771084023379979934355764261360362876106778853709739507835511518699146610293294442374557117221832318274073277083567939820404710472325549769934032851137980027356057063681264213181577401711357836447021471276648052752023887677132969754596758199298214945521991453968005898481883369105177986022434553553236132150705161625835447035241987442603008867015047581344892822752803226710842307200662365996216970085890369768931875920272151203806299801678627999559677830804129323784212086357528940209918038713698487529232637036919110866342382616331268032281452763450385797959643973328705693658058447958118461524944091848292233320630659226869450400844367744940609894220508940933595064234741450588765157897782444724797085590804166137578406571807355704622520091477021542057839270644026295591195395800846824980392498494119508697924768354346243174471823249155240045916734680745854591284714710026710628674706616778241320310468053255111703655227718780272625299072832965048498999103620155338877776613217717491791504358198388046574245946158544446605843377173430813976622732555923785129923765988590680312874412720372843572304311213255772726927632976458835464940373064321984456818942329248765369075562680447971240534345918551513812796731706515853403573100483316830442148881728836809578021080940930835152691992583133872748167841150624375855885327602894531456054245453589253497159674949287607372799234227044575879531516846093396349232137150115794985527438899649390421375544284704439939034393447440655598499028467615213416750126426019973982836286428793577143178607520695222128133884391785188062541178481722570467269421886015144203700793713851193680482014802028678253664805506259755910433633206053310746981329754760751306560089142698236842655455652259307872292526920785114350380779182374532489636951154721521774534617316317321990664992720232957408180466643664059035784851974123087649602043441050897647584791590891897366614058775254947715979041541562576141899140404369878431630325313216256618950827447506378448985269359365670501925575313212852045378879011692185943102453038382262962433233635813892211215064167793572490189075594629135033356923252264925452796606584214094174793169805898281843624874512538692697580587465379176773003586901362671227377428207965377179539755163605787114836402571316377584361749716929349828267645710979745476437461397138469129684511966265104750392163288501249911830200332320699922498917592262639397060540445949335141336359139748646434387294501828525534507766195553533167784525871993650305846548011284705331812682159823325354210606760548104525953848985299596995057796457125420531030069537831082784341300695530204240755948619273220362310563942556860918631727994459681442509644684850724455306351083899636424089130515422473003047721348644689392928239342677244034506450241010819681114695369299854222066214726454150764283704557214228876741649834755957659186387582936984846141478920502807119798039926882291675657652106336194980588224865494195719198632615795602675436562952870680783289002276586119590853600205007139962241725110318255321924132554607700990042376370511339514555288528562550671563248104849408928898611566865255270832650026366522689847482569369052693992383348451103968172416166106448848563417649106178272831630911381972436929011509194678947579682130920915827340180870607748364957518064055455232912991702646834771825383130238663711149192584387129565302670280470237698818655591073189149040550873544694235816988555405174145316127083495535555367170929104789883926720555495295659906973360687375136498994221825355362626181646246747393018959240702326955871073116918672845991844548197079454007388633859116897962483543666297458232217860649693105205796028233252510207309956203246046817235583737663356737625012078263811580115803718244024741415054807709936841180476704331431884982952698225374469224593682143474885322768041393254333025579169849568558363657386517241741713152254376656936158362584223565694382100530532672459951897707908182532202709016475186008856737332656266943892924415922268548234083828366082144063304338295125301054243282245287199079066475647761505502817878183818917613043119302709813087567202799058456408843222567846783077224296676641987394006354000200975285705485212410666771819323393556261574845204349290194562938460750625537466555996771593819549944124692316732629329231134889089162058021599431720563085199404368517976834293466171164366568800419537490032482934029506171663876505264091449231528072663712652721199921044013539953171309296733475851296278723972448635945461780459716727243594866492888908136217172218695653798309260425133645978757283843885877525835407250858928119973503141391729345057418147906704165668661249913368381373860850289886252226376827650450069251406441953662369324994746613484900175526891871938093829101326213104144120483828394662638245571763854747647871429855449816069101353176368373838030678336232384171058249974130369445471755848547224288514949998018648414542173953656506439942408645369181685238810318149842493233103627851664414676265623156995715417696993955875775616342909552233710830956233647778954876257353949573434219947272131752583659348177272622697857244010941430779931822471572498662730351034313599018943136195946137494782973841422511749521123597776316739125814479528522208332682906309251179596574056066298762604487707427564442671889505011238189468725162528044083269068033690888211786661466629853441979296141211301347282838816309882817324840882760271981107829934884436029282213155354535530991035435615898914491291299654836370556291726778082187935452942227717108257748377326846556394715688623009995183283987399274186617938178066148211778219816973268785605577294151089950535225224529383533927878443664671805342528606128927318358140549023314297409143109534922471378321775233488445306945070679851105303998960592776625444796945929324309232904096015804250086222168352775526122844066392001602248656548812003185909303786332114790919623475036917617555888339343802899328878966514706227850382364889505337806691994984418765688887765109783575723442316229805840515215707004977054186146572206416794928948401530324085991407910112227595255631003124724123375340828862213083565895413333001125788212371834222198396338204226510412043488692752011551995993625828459154536537230670049975356330140584667903819579220981464080248966960410570127385322498966483479512006264069761610381465490313902422923980640202653564809233638477687517716092785553174855680243243515858020103083756433717264865910089430837202607434480250334423604565152663846088557419579903083993236606752199168990099901519461482019365295725039994792032206968147938738983793044471908211441644127834979346300439237052769796142558490091958431354025268034095273866295984805595512874579159843863639170847548104300001362774581774335244035406277879350746897010927260067847227716409748677406670809204188961182101122380774936068258763504941005807095753009956949770038303475335399302956146982788822874073140230011733253736431154239949129651811333835594258457086327607140831993735112111212701930875765805185544218433631350294657668301145740332716458907778627574798828106942943952250169757772719586084759544091696360155695633644018054902352745780357154493896145697636251295667260626347427812780444702957293071274549525841315745062584194405407987805062348810343259561248279209344495814382949767956002862472279057939635779095260524618468645314836233904745336294973491464721405143638945334998338458648205032761024113420839412822692396480345697335212498832977679906249355719516722503797080399730078443170448110647675628027959603710481122071738580591052834251961437807524014581999375706473997231021165700747080918866846233907035069004928171248759561307601174806022882087751556252705155994268444547558542336238115110215445933153172211709673864901356422872497816188139843943926247682126812468335135163356492848974704654937531792885233667770250928640489603208617580136010093381153131506043254639832099465771461729705749869852968170352217440067855919986603343438535998699375852697963875471567280107548306238361099930401012767556911414402119080449712689716039128452159533158759899003053049695746374504577522751273677998604158919949947733155771956969548460457873943015486155647661165643241177376728283625235264310491147285111366365232003831141458730615203226880984829946745740208829970926083948202714149537835179170812618566842034062799652012673162679417091102608066659141778652662400256737044712292826828705144790192822391553448526287988272706728848402362648295928790891242074859423808975295169677590291256081430895663987169483965956381229238088947176544776845051144352980754137382810124608304131598493269611081004605386177689926273625101829565484011746925209775110126756063835341978756592160442569953719979280767437718247040991987728643283600442503471855040315966666666916367264881896491160590644926824740359965168938614634781373759730085072383991423650962643294303695047599740949490188540112036003532576176741596998599894427961798101219759583883807960681632025363311941927337778089754382357069986535264065354563124745989811240601946540712826249610400853042870715357631266206179712523652339124635405347905835328614130480668213881449498561603171244279090523018784435149336514347377055348326246910983646495936244669345000137966726599441318358739054030038052530146609739267676196836972693443974493369560944072645968129829186602818970181877108169335532445262848111174378678875076825614862086243016179286209485444987659901671524862585322266136167083320020349174054399456138019601006316750862100414318528760496712176996998714018974382980779814030079966231607239378380255972306252922253581238336632863767241219743293312121453634525022162775273443587818709057251942971764509914112681517513796392056297788407302522903507982884331377408837087120043890228833451206397735365523169773618455934881748498410106115933782533492626547624751647842685258567389063715422083716606237847090752206906324360744277015484908732564766875685755495021014804677720610074402139714542465682506075945924374729944984219154881214193176097335474116189798838013396882898083078698150435511958649647890576801921962423449783299645392254794816583871259871768611065390599892365044708866826326793477365084027789840749616512549444551140588399268206226407022897136549128950011761783326162715179852775430248563780604966452883833807775785122877724227774843375179417363908102816956705174157904845890551200937441540955183693883091435972771506405399415154541700255531013303263982402976379621584104595902623877226513768600916589578920750646915616316331683207309473646755776916530612684038226265769686814432793829922836652784232530779207508635560274646576096911308280130220162285705460191616116960978542021039519211023404818769340858116542533409536750533316372897546087794930999025681643241030973027188161861996730825605897074084251386385221971853997495728479659607861532474435374019864955880505124565748192261518601570282874008129058185896410263061661587274105838283502464543969537834994345371539029191422450461002945757643556604942400983799460120067332619214583192163260867883432819793617769443378782050884767172025783741166495581844573664107414590774634919667678982446975541046309287876247538636862708346385838502322906819559112987728162875348011815896398884946123628416542637907045860398732721417186437268272370783201232630735886894703631959261550715864698822770023121249508282222797110752316325293096607025360988894682073561725488079545140138646291355576245686311346524561654231095959756829678996186186780464986761668548112192699955755964293819583947157057024467622059569679309313338822284315797612984020212152170234059711038643176175109682853514238840190159732876503681057313620264857209815845592553904720395479316201563162517851657689624441696311638030256071079504105135354850712038964221801008865411217907539544893756615468356897949882083833668764532132023917885197662445598163079830365535121812841854062763771763307078057590963436297093334273884676314973208480534241460969541938686573605964343432200052666419613898571354431432761075146723562896143933122947954441372319762066821498683117075995387232114727977093974454912989382132910329765974925463733185264302074410024375837123318288824032960769239724124158492000235457273580346133495782056896285334068122330879182123407483819895232574870641441423982335956774894110115223569330980053302565873827186944310971272072316723763168002202607785859153434070626200915432318346067110978254723551217475390340730274167773413109322282495890016707848254291213161015765365088146045877319339150075675991765134027676384056337891646189482355257469127665880036931371389980640140316175080900990188816167717569017150847164253513701913474014120835953211586470758297796966602153077442155260397120306959571869767860339824995744758069042708455573610427073782107414470812063575295819517414344228080735581228860274461873382216063779945833634926216293780903486577141588110659905419555930017046862652717523070654399809846701180922113618594491592996210023187550522512279191125350590043443690266805364461609921982818956255595492372945509739036736556600012752944794757538291258457999778990051263018764219842433221797699756681957392019201987470795805853070045647294918981381330090742675967962187318588486596620584243040376580710403018087911203444139589382082819214118443203826043142799108154647471395544191086090390704804117748557270260779907521886535053999245236635675890676616050843170543117308566767517428387997746910569799608425675905093236830339522717049605449856005072241610978702197303747974898590965890272211133707811594574334770498959268484635852659349338825396490141813445094906402370506338638432933722805294050715235822589522371842116932446792275886983905397391908211699877750522124511322432651661614727826623745845479695895306935465602410661699661206665522384037319328955791025374346229949056596671474877860223325606150555877398048161822047282774519373091645756482121714235257543805732446816696904112086313172507297480158432282914064774704654774583691875101531088603268861504435299004452907632413070144637995114570421025709649355477943950431828073800263755466816495786228156617100192573181111606092960899587434902111914862800524187951356528943664567347185817940939052027596508636310646228640094457178311869742401047412137040697216539790660494632584664270582555379316669872247909855445284272619570836356648108896989270462134726350370402715757928523239689387962347690402675968349702049274475466334611705259921004166379644580115683156399333563880010537614710657903077180449492424935490212693497710333233473793030366533826972278334580391807488016994637035941824034418941261528686354496237949627009557884427460823435897478732755814959225972383094209466484028203024892118794145042131808313112946258753216414341502259521181460557310797062484834427922232114013686372568193080941739152215561996594688570250937085418576039600832493017599339767049499177966574654344784616335573276859428453503503951651990057493468183945686659985444205541188270383305564905679937752027556978013350652921630232593874650068987957756697952299213482954886377952826108398327968145484910815351948541112551061205831050840719215694019481374226312037174306466860155836597371495048978711947061531571544372460229108402680682626987672065233153219102140764728273907314426175571863851261927153992187529242871634774207018510168283507733395486961595493547979150629823586994196289978018852851411666770865850812191896447042718290524998402651982650966956069748420450867409391786981553692591359932749533162930882897893348031432406891383638212930508077239736472730664819171463665087047979774215075362630352834974701423737902541158056815240013974273080480275969995448858326238471045245900319354996811370768675669038337704373843997877571904691929138716424167294211799830738955901554151635825095613907781426577590487828652488833601432152296266366087947437905897512524599902261169764457613886037321972291578946012502188881439416366433744010293498100240207685105776478508093168368419635277285475608377932848246323111636669677152258506121306308640207439764242978791776345945891337655437181221670099073608815529523487327800935574411229960224555850207094839106370245075559904678624045190596537767221705302019306994705293107398234865563507265273275892882649385800268176907774294012373982545168457130216954265883140351629159197282493435185770036357627038086758418401321576161357246348503388460707826790050434463178771870185621841043744217135146316076395900647364491441407207350535805768139589023661474719470152169545697103893859371230746320987528379785370576561273254707870708181545853179173808659721495070205056615350198574510884613842761252698549552276820876617529299993053172809897263640095123041588236310462637118594479025604632905734134194597933356498360914471214744238777711873297785826396991657883144465271273127957858268393334489715370776300606568853902331029609845621499582887072027882267501669234094830355214853636607590124695632741835384383577108394196606629300573615575724455832453418306470124621932820981807347749559785329419583312323889141248790388280189575564555811748995228627472250115355730699760319109213063460514498566446453401964516614258866126267686205504507789610802288440721431882353805995673678677544931013578347329394204049940834196488109190076059562352953088029276620888568822928465802890768413161778028623730653748496915548580779391851857281419003682771756448561484915950266587483821058707820187984309778316397797109385128157116602682428471518781184622214911482131270189906441869311955808634413700597809124145400320485491583801980477278274052689833615567030070182613040987147824642781526171818218719435836087778819195166108448749170096477407428467414282617084175818850691801061459111829024985828016667205561790297191428356842729304168970871065589681594003205083547516210079156196074975087760301702431271641742385218795502885030057767263516921823558085051572688057393898118024948810310489289477376111707324974436186835788775293473135229105412079896764816667972678517473334070660428290164891753422187378057603211111555284910974245556738650694208891355849235106692764735083704620511043312881242606087427589771549860926343652513559238649008414433146853527250399841326744256342919571674083993177117808350932293720504212962238963422348667433809908560948313866174492725132911651878523162663564921391235768155477691915419702556413679420583914579710567992446202534731791417863588670628673773173202457611683541286055851883173140740786427328237124169448609155964512208184931422639495886914844559615082659331524220812083219380999044110862304168390446464119187176749403192067632955817920219622521371364403234637078770943291394068660860671805533603223105305494977291588929545840360638770608438026471434676768344060420050094983786896941890898297224671724523004305961358590877345315757423303810406663552314783665101960160317365814148681271220572197827711819902116994892428188536236432013704940072365125471457773109851786364953250150522834799405355788693481440931152165522972870852268034704611327283447100818298409394388242058385292850039394717298840705566304113116423343943617656669733014751037378500717658386782357806654063791622454292100490649453785317414463306023936620141226143720936894318964612112699568082106858767947436089542492327092897798840728776948320493588416978790152596695697496998282611662575739401456153681593428237519715579252838173633221479149576264557534012167973734714958955712134246010106366230153845760115579184932288520090417215362491307373840405746435798092844349327450779679893098310054276857091278823195840861179539749862562656948777742524145650304600702823039675587693440424526800282483166129662202003789907711036438930412309576006789667414293005207231957584792585229248573502342242091400199669901826946752236231060132284768858308002091205186914131147727698618916015808990493905910344818954068431168108361045755776763238492770036802984009298788958748708238898762621882209059790331432948711912846619506598597873515859942177895306042609246317188818118780590379701025744062538009571208116028543991514973658805181084092551362863776177626741171376784897413929480063216351274525581743592977645575904542639853137537469500612256075492943794198458054723599656180481628988360431669113277998912961463444554517588250428786319749505019756759843097324295191789101917300523506544771609818732391741326102528707456279407645250779415112937564853447871227745309764890358454054012801532363454444183478669569392901864995734024811836403578715955558434236950601297915451862155785476620936072567861695291885150658284925697348224475498083210286679671382349415615479343419854379639013592480452801458462218525045043453117322252698465168846698881276757949698130049221949389243779856374886205281850627797953011029296257785801447711700352278025983505585924204116880938283463399619273531557786693421486416080589890935556190054794960630615084205789011999282031505614867358984241095865014233722231052807231417256336883994340185040270294059050252526513527825263323246602029107647522999976637474599414662245331402768743044431971063465458403704566790353913078451425500954185070478996610204237058742364640908043297051004850027311944874912504925096064020396621841480604135067439148450523119066468195011531439208347135139071198510267651591965637432399688649949510517024055390436076746152257866822089426474858420362578068402319839961503953953879622085427841997485287906363504703201464740051348604128963331088819009787163478682255837885393770716795259011385509245908466650672241912189508799810575221749769222306016493563225417364389855164853510773994658278637440756621117199803870607425398459320419569156686070740944759703647836617553091056481225278974237096567724466377105267527570084879092116466544386041302210038086870533018951296873553847618572913176011357358645814849580634665353918819976182044059275140069774978346041524631917724577482073582822945749576333142637103540110073603996760496463901432969631936337946251334521071674598524907155643696984453541720126699861046473245750133197880011246130787802105036471512128731074621168444472290291148375678077161733474990603851506404172724776303294652602040932558911767429838457337015784783324115073886215087321871670234653201717984242561109684046084854660041144491356592402637705735606745720505639793977396965138469986660661447919856083872316884994161087077098467192567727866572190710492572405601522032802520838187926708071159566735068848445725032956929848389095623433452244729338762356710204455001569694654541507130690856653961161765587409331100243371086134262998627317859523005554190534967279670748753156230257283555316052350861884602085261404714893809662269119024878962541772287634463024373105112795476746618155706614070827237186019125132420803886458274557095149100702922582000438803629401627684954067892774105907709292612145211661279700898366558935353084738385336247750340630497620481242017760659351086804863459425697567247015104292986115718815295591271522616983760512753790150399490661136152083645901147859589237995108894883373272951481796306756426410951657121970608285380681976127246030293305836271753761369182273261139494729201222869328164945705276217730991142286344845067329627326344738508197564163778575864132886847430405445288393637845718630056035497509968510024813766502101428896355293469892379134365811947653927240996809185077561720158960492934522042379371799613570526507095204575828393732239689011547819669405053999535792075961262693336641371274651830175359814933935118205895649582124967815967264240357470413737585720132985955961308651842825351400911154474436649404753185947585994924148994882387883297914228792438409314172529151365510380216631263329672129439180666052033452995001441108390786687777188872857279744241857420567102763494978997139140708104757067133302419026085379446341130287984422219130040002973374432002979842714221125891994432923746606554469250690249451337327711677049427864941396877496650531562257364828576456831973318903288365073199898063678073406232339255885414940812297568574391206223843620681526318559257137013522072087202336833880537243817083117591655123008028688555507567024371023348132996095105181441692598874904396070763529711362694898881135994763264034077142687829146572769139108738650226158504382129672593795357737488210407546989430043197733380270880000890117254437681541736727489322281201154673143037308167179296236406589496659619800217345600273175406057574174162354158193888406224226187662920031682807175083180397836809531633041458455704363937639499811482178097401063951778422285837737906550835155913373100435335119312555878574282456554491170963627370047640858252934944258246678418300549359823184227179260769212125695777601327332626666483827841381407340881364808472196307848245376435832081799509692780093229650664637896384265028586420714569450210249190786826017196107529544423705645903107839786236224088896844110376795571347429394915726381816824174475651137438326690652525493085211568146240680268497992083292722953816455708377244427048641874632688728889453336990597522767812843380821895212829632056399107893236023169459735447153091262683329018876621403559612078552568801187382430875976975921557937525289932326948223983563928290602631776541837729265450376775118118688519993335777920337213449454967842784973623810681753385124831199666212496248575476128488368558459400932525873308932418577634132385738190316607978264185905004076921269633341673943526209429836437008613804490206981140745527693753574565165069866636673554981198490398514379326687951748482928988894661879969452696338347028490423537364378076243803063059586634716470052159776077617109634392918051516813032286582836135796739316119610966461589591966818303810637555822704860726935305420235920290230689025616719346408776365720639541598559851826603360528719002711287567515408018459838771146543095827956762352317901492739777835757346673311365141057439213279537185292423412783205191549866774672788201046388133102275268026079492701913987727656237544761655218520619250771354537824407395198859794356026505505351196684959352060025309480268377928041050090642605906830843665351604065869921454344145110495260512213233993203652112810144609784150430510884098866934262280403938901926375827071579043434466297653705525138109278659405703381215442284220115639348830958391131459263574199480896813181419946856224914353527598195834081110931351890576775658774357974418609947707954838103265434070896390656091470275155894743299271040498665533088837808408150229093401036408668933278786433491658104545278879043810299939810380244682330759435449040875167940232988349194187641256658703122659117385565445431971441876602289697763174873204269825696519468512709382424122875064827351458618856053661175617053520579685605194930311256238587016763090241354009183912104585752974388994929627172398240163432170204196666385260932705827891502612448754188384288662060373234484471563325215287716549559749540736900653509181561691658177786367403527282652617490637651729897051999211539703750798220373318320807200282278447166088030441194330001468923069118004498556184664474116411407842438141743589499957814397608629090563570048980113658047685335526319369431660458659341886913336266181057307722795094548168831186422388948295661997500962150642450766710013370200462385371740567014789110904060862104262928462609469697958959732936278580855902730936092679453210996048758472778573150300020365560033215517031593754269806337370412100867508623016479667391735604038187162055414755596363303745537239909333576052480011518293435416508112082467440942424781147552841568015298265999668165114629814987878891371988131259520249106922304885146428732016467464107183113929643883271835766551436112683752868104500915612304661396020607994514468228530678907829997115238476855746028522813609726542966968334530151403876757453867563163460443301569145377040558165797143974345419602144750927765114430253735355469459300370801664947839555554658230190595425129237417090242800531599731864102446256069813912346870468984385110303835510229817838192694843368256434482446573676905229981098597495025403976143860427601632202504076284749141553997478443010554866969553299948362717857903637492983199366565754389740790636744736156431035991711254078179400044299673638880927812456463863203336125715691091537717513874540896868814126455298025696366633435609024297305158614534912184412054565880168369653271919417639991053680647311256938601666277473603426364048413475584189059874358248111403013208859790162023024103002016769875635233294617490437106133227409389517611802930775166980431102973625899125553233769857353380789539691854741860174947192018642466179365785661917931098436609384282107435994054229513885686049498405057105644605155962302187897633145705174817100532210072184730519276932219237766040694631921678640493990359572148991630987079549058734515452265916569548009757903221128195846444700118954819915014736473041498730926117585113466101300270306636963049813200232794861341850384350957806407470077328519077451291947796026329461303051428097006263055119738182601991926564161944053211668688679960917072396792164376031539222055730882172168647640373145145424638950939320781803254718503354314095575096287528604386836163255537405225732163926016175002081215851695343759665951997868111055772789107656419707813318539962634650009735436521738306296064524221359450558192277806494905142879760060443780100747713996900580773452783493704249686510744383431232871719390763846158748419833457505451598968029630613951829676890919430310301936555301683036293512081275024337529364260113769079100133616741230900653633480514193008701887459010861078626637357553655727800067116169564780433731214339937445640509499195812603249169302218062245653070129401048496127256171661424914220492708147473628873337645348089178256320882729842655198447415473319858116150008853324733932997531949458378813322292775776713635131697412966324341561249439790846030299831308592282385037297946545431424376497012736126954485763568449813424399682527648827671333207616952516558061993871114356330915800734921031582264511611948614330201670234346604918045314459784172770898779234120770790932381547772709091519867331340791372676521037452906320310897248824143273266363000017086950228980096016025280936088256014266930167340981142788164895995542802893389542382068318814802330165692717760831903894109967306531543095496187966220657339796400354633372810021421915249122476776757295224552533342381526900566539903454102141832505805821258117004215423278899430199909638533447591722175495458312665089239298092261649853855101102364443189653110232917144418391958195452429295235210482229640606148794296840014372379162814106421117123137013460266037776062345847723608778530838022921902278894332855462857386779405134104705316259303081870997793749515572030198665136027533089316147900866333280820877785927641592501381555160866831333056339015354256244221441527534413949124670042505254672745494986482114740354222696640667111556689240451097020125766279686304401862770447349300698471260042058437045209941286587840121006279409647356195450908960472965562703549636444399287056655158109191914791912313139991854874042882475737122519703297299432615614328121353582155139399903959449762037425483214251308687076184408394832243322266010511448148721263899371727214407205417276152992340058966685667582188008442382356978072975050752755234974426396627194575166510286992182040300455063556820277745034069750596633293576917575244109301655430309843721915053409444729523849636358037249926235435066891736567802681068208561198971606803588134104083100164978529672519569647151278576586383637907232886128112334183452066289434298708597837249769084965724743298390075116056745006499246424180716329156084435765728183089378747634079974027530404636133488513127929912809467251184089712370960628832051423653373262267971008038807677369531018716870328616553890452863314283702962577059946325270277770567506948475407334720470271068447579940677423406946459052289024337720055528624163742405780592659690584076204357906884718192901533567943435189954915896185508997936017756755520215440138643371917996943504153300743288429932617870257757928336574784543202341647173826382994968702935156764999743676579717106317823442151971766379462327033858489773100426860418967743776056706637679400784683390462964541805795940969975262269318744514414059880077898705568601304930927496846503470989804604319756044174915422680282799838091599381288269100492152861745383960493754789699148227042422232849474220820336477664984643507718719033909351104811784576216160498238080617367424428876926151769102459912301367557861848977650038227747955730004307060585749480423780421982882327316606313536223382468365718414941839603107830882357541860845777862938326689650770807620745635296217742235895172741739522404094178485686730797490301182889756301112364660904383657720742096924903791234578405936112266428277307708815111889499946821664742213293027649442851144547617612831848197566975435727617436475442728910443224610819428372227214857447858241737689638777343123094895483351190204635893187129656058226171738401600272236065750362079549887124327417941734514161316761603922671324121527229722413107565146177071047831930487711440980006391125674971045607481076459649386616485569826784861101329942626418822108705691706611040123230118326804968284237147368466504466084512661572334706068970231419568428414508385985283917026262291805479557816329421001154705770699980520458701538801041888896951139648943932014904820500926476434575725180057622703167805933438069523581962973183246849667981990723961979376343660561685208314094229834928268840039464240676097489978650022617272238496484717966866753610953446612455324169770984844112280209108960226530893024052302241657368303603929210242771747061799234449940634888031578884543558343672673337367007151675340322197738044073196937084349569695519364922918790476175545215945652643141899893035419823754573447480813304148556435454884712834336443016303378380816399151738384529023365897869400738956638816609440427942555682277928393940103890231025402658446611790821379906000734203628009835913821110655491476145785926637857064911490454199439078231790842890794816927839578768648024910572804846195482528674747548113968099003205868726278082228062635539350403512763036315938506687151294393494239080218297432336298163006529588346081613316888519478737034520028411884491329913546071179555086964582902831274582404484219289029106674821429850858351230071327742330501470729258875190330074723255028429763788852155905277141107861331886539751293738141075656540033390478482328609488070634571157508526554710224911490328378075868407606325493274272084272215844635364118060831473025049139260888086752380634031753739890468787944047339308716298959701083441144419439654471915357016033786138793274867471887500673103009126033412394951386323825184582249921617355401198806079334532456995413760151987251618717867437319474646245977062560908339390337042449100713593244778653011895229053230347421093232707492126566027614921498318060921073554745774997576715339910530345085939170507174400114297276697535054534106604640184491135912834145595449610141947014967237107018801598012723532503012798186421128168566205558644080739174245522917352204837358110362442260896961069625005892888170711683677153535873308896421935012274573564097026525397394708635259267177310882156527892117733616107773243250852135506952765319318166270183060230051626093673766961476724322398896279043428938946841740545537457755107181596843674452041296297857295853098664751717603550205501593757396384074915986506756312835603443357126691328849972382062320257885649811791153033916850137017693953675338798195154735806220883963600859608646151445240056312035147215440751513843537494056985403765066661805735097589358725146954183171754369835512743283744409960934308006561649753237642918773349357706583814144317732084635266432107601652274239668964290207740946613018563669137663418473891879233249891276041399975331789334180132261187062938997113159240002741328643468683607109716023549765735271942397090007143191311733114300264103738314891922034964758481346192585340885648340130633215361648854296722216667036155867169639353017014087981090143998426655640623476351847497179879410424470620288643438164495696948990917551918989372678054498975347206272684853954116338640009281845126223873784479450821222125378558983766700854358114342712129075020762613089786456409090809521951247811564300535955115109439186193346659031609283475536129800675265704046167849552343059001411034918073590469681432281710322983807357324115165291925210982395495857426545631351961641056294218040825093067913103230708404795609895702976606404229693958530232545381835588298665181283034201540050671419567144089825039647683857964737139606773112071089018715746237520820935614938024595753713101521127800815296358061923569065175708257603855067751576105869061540917309611873196602428255696520008105438142996768256638226455726442571678059108968122387791011561169744007416616459584195280690831242207794568704076157875466778237213724377350223749885302702787326370980825112390539537883620923866026551968320670759581684228144571953658321575981665653845927450245958919988865662625506064690984433901074946279315286654413840527460125225065650120428181139479032384844395511423212824078317396359720438815690739886026982702376205931433428680216046421094960445756800874066356150121732436722775211483292620750420353828852637345319229041256660562274229947456667326721135546935443804325092151481730289865436285787310722405286477302628931180522159555764936990393657131781128390366195934148767839143950310012252841820419073927490697706258561673612782832893760670892139481937946281079960405418500000877592588016799782172514111495242434400014877487280084609512298408727398100586908226227080268134629163223386034267418806077912238457175438325320039570329632913111303104333387477961645696429844900184881611545955320312078728791492726814323523154247279765294246912167304978766607229487366394724858711348636863150568583324088576211852634474477976015799490072915904584759202803273078812243355304398955655086006334421089464758936857485015885281665875140626543872886295511612113756301059997926509833414173521201730765333943890420450250139267974865165927785731423765639848410640799388952899402264635124753976385905247248997107995951968148515239144395474783145745571396190274284907440552014214106868388032495031653398875155009984737359288288589605448694200954112700257417376775522733618339580109141354600562112316713143870371078936908987431467204148395566242900754954082786580921852441086233153362407419954699904269547473876166640632238370895214856391217012583861736998486700045296414288444297925171425806730701514388491334189722900541273229541716745164374305465357340122138630136212168997520685611749094042366641616447631515372366467742981492585661770071130727427347520421039532900760953187628314472363558745567602827682002283498270498844540767133655850564849482695917542512334780917747630062163277489756022476190690848255783785053339825920977184314481020681385483834067529377440122193081999607079198585657013243538344228272137785755628066658891326605294277429032172558313589990856500192546031082005998549306158857161659345231356189848747709663105513046125964600075599067697273588541373563438957792693231289491437746759877238016941764433876244108802632953279700632554107328960016801836457233127893989089466007671227821358735391185433406794218128834745840229345061527132003650997876062451229279482254883419647635640420183641522281445372395073088014935104647612868673795365700144242408203955290351739565180696027920863318933751602669084543770778085169511435117365196645045418486681334545776822476585762885254711450778196739625174072896866652105801718396308048077513379229743641580189584743273467708467764599892268684406511152862732372920006033125138831930908185309321911231040059165522676258212267534965903851533113670726486024000560633025359479297077433558121622199701390106208246633865652076670239344571219387828819547658588334758019126026751474997790451623951085464292708896461918495726236263537007857838039711908036341238831834683604754358993005485524437342518825439588994573881459231133454110506557979395957605058459536801976144460039620169067728452909156195171360224234526371238427718020925997889542787790999417704005411313918992704575931993787750083964763028932622534760634664401642162825522958371027108001184780355220050865322363910677253491783405376460935310329464695182354065309761205894190029558363958112666712391902170101599401753205310632145783055221635258285561925162427315312713487878122691895055190225816836591278238336774121840589729173217534489512820229480694620656097321857832574879169860651556191242132243438067856263194792460303790777398553027058434904350854878560262075658146353826287889179788461735509974417764180235402702937887316127070440421236180134522189172193373791681881471381911505497174386818870974623181943642293281133047352879393235642495633637907142146587698838579969345850373811491830245066244501914416148026809848691756952318971480037282971777349197866767783280416498742809688358997274673435864177283073950051672141252525638042907564575337501903075232068443788246393539872223165292849164297711822768613721667903376596690239070895825823100729433608654597136176802109420161100950637344480555636169851315878759742276810466637062338978155169455639227440218350553400530392577562094038559585515927383741247531782980277203047490220652409422019050689386403464117624168729833853696452186918378092763399341949081184998853892533743177441758431256645921056036542329731898407883060687275020833955445911834507718438776238259804667792170714332262069505555772700847691865201623646444716605810976725332270877479497627862180051403388760200466190458103554408631804676236682148567442067603011344283897095622284869664126621934831615133233958435942679061647303354212655587937496325086459422757263804328957086274754667734165092753349119285991389821688766494568323141720349632055204849797524095541718258037432405301050365997729196861505759761402602914320419044382724582031215579720252766229237887695327858909835100270861952476353890422435301486720335711107394805031553614086142205690495895103807088350032596354665975423766984799905008712181498880919500900592437974361328451329655792576740836413491794957463393439325053331717721781323369788475228355116537407423895593196005714650044096766559734309334281785325484966428654398570131662507194858137741214970590324850298954153327922990655754307038354607274000260385687439222617970299560089849405892069595539577960303255575988838550714163108437730249409661534347349891525104372097476762439357421797036285690319107778073140028553922883214437801535043408020871118789805264389974417400731129407254264044313389578090553934667546580928293372377828851016796927666943099528369637149093643011957878451441881953617424814865426758108708530044923274819434104644429643541403969084934494797027629822964882590314998477917793115401507106596863666246533667587927603771282291111507077094774156193009543848632404910621570585509155911527751873814404669474831600989348988072594977449338486952501273495335372589864708972256279258703955382675410744726623513860257669540851685638544470533668752727778321588501622092443136079447072904333453468947851421075888268820956528102172146655797975433419501755718486809704138283838638656407151864394452361609589710293443047319866092018614801526574368499456528084848882215888942274187754382439346965929029527430985026974839482989381988741621301566851667481524023123701007756251695911631619622667430977407064140013066130635261908940789668870191334626926477631027540505428626663978441707209307221763260499499454779065495670010652659793361351365980037750832061067298670765327933030190020364840942214879094657989253061623965868661564568025703984530946308125751644843385600214723193437392921341182083000272075883117160676822896534551680142506268656402080353786421891523450417734486813811917174049182462487641971005780879581524662820386263022162528275008740813517111782997396702557272114862536745169440887015405569902921422824047131436303645218582129492354309574998658567201327375659303411090914706518547838738631498041130089468374154450868176064558892344310255463921309273744439051407698331845343742913100568262688144973780976106865663184198969694211592542631498314378666293970963854410769895231151121344359095943541669708607703797705194219111801114380570922618281560616922638440983917543801565493495793358185510066940621539124437201263335445292664422317541037420813110165821787240465654621727697397849580400096911695513102867926967947340979739626793496931054965123424815986936170612611220414732793146216229160273156286690574477260030980109437569490071241377723872367138411629457205190881586525443595944468297732844606296924352532278618490505531547563417280518564992462043051780687575019744396971297235797384975612633014380452962767015177135571868801923239497620140066554990799113769255819023683076244859403023439859031482007408267807890534489957853940476065014985100412846901739303967193875570970352079495659566296638075027143722674584255627833310015621409354271024036553844352039191240755745115174416976805493358109092258667038802443938391229776121994542250843864054476233087362851918966731273730248772812527444256559246680000816281015042934649376184231234809968171418530205509053680516462025264522277209733691485912204936943411657899387828803049751208678185195489111367894152839922664487956033305946035193510349360443703885698483287302866915760065524008981852409423479343131865570324913110820427363785749471162178859298735427638364243984325012208145689696973510983326665534661828774597252968785550117894187297761641201400569086553074850105930792426646097873184250111860365576235990125170889448011533560856680575957737696304144454559987250103176814328271444953412228272193231218325162185916130990774291398469034105544113847677845748176796861892428598347071769794105362086728132742120254764410283153677108467130531719564333536636264401580490513314993210882641410742471647081135604594998653156325962358270770356016206003878804084045529079248574458646309033836163252865318587796796823573470871651622633617103498006080745810187674178361062474184062824827875963231209206200519034836470743484766606691901072648492227333250240760980101925081772074485997941948306386453924786694102252708810717081282533528517087892512602655513485103493174787536467692372649459316203219778421053998801101364684201290866099677958687188305598269319752410325252146472891882760976659949918885290800263579508607322679103213874844650521756782532777522969851603955204755095038769422010598891317312570054892438421676258943083015961324015873578713846197238419387949033204034319525447616642468420822603378761163183420643080783109941295082149389663756571108899910704865284918454777220714278751082130871041834202437702271490835833618337515925558581214973476848790719176829780267577021466903277321005322205067378186272215058254354023539731741147078462582927691798680095651429950108865300229728633746621523896582579919349883659811935203268047707444130794948665338012748605023002564776197551776064159349085797233258674518371876242167981387127367922382807163694444780653228464183602062237121089664392861632675313359150855575404405287450124011799013423699784293271080419111257835660225082391028907268430620571844414884321401628689279065085982278072485879473333946986323540984159446478793006567036991297366544873591514176698296400656347892333241600958187894790860979148691940666445153537464785486714114536184215000908737265376481210855968103328023569785250276060760490522205863350239864296069978696060542810100878778767014090386167645986126327414169018880930946613784736840689169010558295451942824338327268729304839696772145214011251858341981016640938940073198021183205343030549809034406744729380215261656902707754454715244933460803558626674210713829427159922274847283405526720888311731381704023237456439447234528889964509877950778705110029784158566803278551992833191151999771946451770398582401016205922946097266913688866853965785409508916313042558264874779023049060642545267320958046970976576041901121707001789213878560673877842547536945934719505850448399232857193800049263021777043664036872574626663468948268469997388211506939335431742191822041104177522068400532199447206270525679999095215792963836281149062779044158735789670383265319727820609869066394010582504654677593195364247301423814628793013600812552469592610199750632544079965363701423228174421109631063873429426816489627358947413985472102115691847750330943129903532434243346089872459234982973273003431313012191176588982498193308202544343560877772009360179449171980802920994030887442867864665807160145383708967354218689277005532104689995675489738812849404346771806953312177191919105569492923532859783617739836770900820834366157816443875203306184856318297586435894413676763528646893615951681646203567431561622934862164589502072079053797700280020973196751829643457972095551542839818990355661800410391422557807227145312503255822866805928150485101644540401970891494796894522486644994580893267063687230910699923848045295452300353949429277836674647690387185405092936488715958090517201578446923784552081528624546213613397716327579941736133482765526346300588924152294733500893733574182121383996600362571372254027168894672172818902787823257906532337067211369598197147715105074326186245318512829286517549914044848534673251157487961904006084735337964270905103572380640967834568734589716982297757390487193575873226803556203802904880256733385728238067864663957103406571599802137077593786990652568465845859735805528087777529217167732196038658037666361559680746281282480604290549420306167615484266230721264347794536161402785876199397567098417724876104036828703200461372345934128759402119566251421350166448610581659753205197229277257953807845540274876681456837116695092835221579964069146455610760231888941924126123142540248209932219139778004843712895056766580882262130328750706473688394097169284429833129227202820666886632781232317171984587930262303425381182066656265462213194281751792504191104457993147464706317240251730117263408060910461667138845840309295491644488730301054272713648509232553461980350126154854890392343596753284747337874304696456294940066348838961373826550361965294847005112124402947073401862335518582087290460658241029695602494193543320776309407909871091316814112513366255995047049063529292039657663347563541589851169973558344028296380625191574917200130534192724048970415121268010228602866412922676434005052515208570044946557501389883479805766538714878813168108414616930669140052848740259059529830465768157547792701257685171762134491031570167830645274409494616876263499183417217137271561864705607447854023880059154636862513530516936380243218712422223316853350640327074405796169225975512639502190661093654445530818259196705996411028166647733754298614018102611733290882451508904921996054187012124679673963823646588812035155366712518098232121770195376145388834904638687124739664037578374579201189648681781753327879199456787248784696335991160529481587908278111232765859046320739024949227076311292018217911098648264440824242107208563919358625339825603268785103459432991096950924682012197368331056887723482146463859784471095044803923892065574434282283855110562739745585309934056497113720685101712623904587075007018847775398109264009256034298057243930051971069803246176058166683308666693224949009120563998923966683473096422554140171434893921545894094750118697697632420388721031085090351723017944202025708656197421948873080706468094058323762574775526219288535704823449996829251041104556564149698031004311378739495684339273264879882171878053404675978025283206436166135156945724674031075968271680813407463493241059247591640685042549093502378247084037051040646258758584887523512243971415455497121635107737486653247289503767872669720490190608611783152822313632634473319255899386271953744031178524838057659869925026027373378306868451072340825135711840579587303505507757325108927675531130656990171433990196029259441740155491166311394211889219589883088129735051619602103370908941117944714029521723303301097903481906801310986428806911210368809407236663441487815561314818297136326269368513094495589601668613671670620462613139252020481690693552412679609739554496228169466167122312387807368347296045299226627682401232152123514669034301186805788545415834724392536805380995840058987508305540187887081784907736146175480313592147509207336679782050728024280971415194007334145509352659028576452592307678700295585506004316408431451403686861594429096058397349118888077873184248603429578013259581921353795824986138334643968116691745421687273718556423202147582800999109821295223333287674768938593299164862820466904009856722087390278141949846868606324211333468315036372115115932912355654990723709134840054515339805948405142716578634185385059305919967551844317656764112677503295055019861308598447592293385408583543171967900166991644890625093079854406610848846744129931861542052827921836724388053759880408690072436067322868811066045195493534761581876317450901266086373526412699310899407547314729280345115927246163916882127272899865108037666987140527048552937367548744019489027892402094947572254757742560333573666654928817194069195590571181680678687450050079822211559150102080949380650316917425088358130150778624683747883881087226329306734822017695323736468765767438345872909991732960248999109132862153013460727920100280293389629203995238584053306051331012361434786126221957262444540766064259836662039177979791697577740149440230390224355567804729221582896277365863251329147997487542717951530896902067768838015388272655791683045696626322638555169433488090103595043506516554329705091588670075634605764111715089089598045449337190461178225910614157888775310105312855103759816105912186007034973294761054339116551958057977836836751284309582864202373864956708330278024522922895448536298050990869270983685124246500169914969638952720259412643418868757461581109184069714419219630113517289431033394706976214734310676028375446316562338688774440850135560833075567151024141148849711031888580646686256466216854570343119785455710760141522026911107882661225997819567260064190162936874059835343881238387585752201551558320602082552277774503012144392183872861030285777505053855224148036536551418686015322869175504945893322829826287713171599836240450365277444864560167020309387538430139673014292922695068420436432952064960350653034552544732632149353553733847758983393032580179223440807265896813048456797072618043689264232332476151015931810678609806977993295377664707396260093875028558592612361831686177842798947473863982779510592219263258427577600619780666883582024560292369124329995528571098773146188984824524366331405602771728942301642529244361740826649461986052460042093969350810540755658463335346495736818619754517051479091246253951102622280962252939888410355964065817060692247798862052922260427556737773529521581502604691411905468674821144505173155171681659124718017192455748440093145392952394842748318300194802866385909582493083310930072970789255603350863401752593430601001072744286796812806468733540670216812655440187574702329105455385231255267387128302089406347248628864663101627112474062662643123510559467657428359965060115361315843387982740393850770721127445369561174573716917774845380994468971250672166617982527935370242178409420567607664080624546473128592593602535594885632099817265131889372061259171886145082889647508605877627979753021478173482884078175218917404741630731683422404488801944572701773723952883757169824969137309236853881191846153949552010526169253333239458182395352669879382584909143529347071956935841225408961094027113563853369056477820139616334257960410182994514380298352714280319972823580819912652820062124951477604258241823646997359675499146711757583784493458809498489437294013503911152017094979396936458968435746381964242415583407005835033425982633306871042831465124345294393146528520961725118790876330387819814065602601722782944810687044601246959199832842332895443212851410567882122069446641980746079655224210354055237088140585463459731119325796001272581189808965618006640822388729709157303371907116191934901245640495774585266337195167418199106723805236725005360368064068089770791521935591177604485037542561723270736807830772785679451648949461792779687032334448327725810947112861978186976065631058594620649072990627810683084396426094838659547146500127208655289971336266545684876334523724138036899505519555828140816108704885927548634734509457468848794307825222511679125815374136550903369261734382754088502743457478295021948409668435621763822219793297056776470198651330236882104859506349601964463589977436716405223526272778616657058013202452956679951626568960227064354683287674238199227268284865319856059066750633089499296778561096824136917459795651817226818654570697261085078963243790451259586508039536749128382738718928306179117711172502029023984703254886503086478469517295733344256661181806955707344933502001007017957023549946339416348020301834682083324207213373154827109000013699923986959537326536217946632713394817805706537110039044284579574177208140232315596147168316253337291675031364332929667069210512910668398290438922958892780775598891086688815601409264126166957999821308597375312154562104902179517593833108965967389779155477332642998626082974770500609300706184078778734842454094984751452503034906086581136245647645479870020398156471882009602600482582099915182201406019395557809643804717989885578944959732229479401008422115066977359732295485052704507736944627355012356500644160113797346047346988631572522028814771195313741552660644325327698612781351053993820091989589389544637466673638958359776584813971034170781244221160555491244710607040753046330008057675865389972610324261522848916187613494590017234195163911427819587979422045665911555882601127917318453202582391098513994097728506610728154168256296460151055594194367395565396471270151316723101567661303455235202103055868970246757739018556270403198120751219419750477157034135740790806928048355772880982741729884485752535830946318236187579066525817463101319944087491175303262514029550459861205737971370387252714772798816937330768169237103534019471297861100366867413267645445438158595736248041604026302031658096190284012464475852643709660296753987943716213836751791115132438299350772150453963346173926936890324516213556189827872905612415091666309630399132486022810271994220836436538239783810267832450767451473082764233078744950768610086439147680862156390488983087209588946660335386670512564883670032936949965090999373106914595168748311265451579445147414228305773779448085945284723188072960565488505345213163891640056889780155819659724555346530088486174891841062032723893510583825846874168406468392666921644394085457276696759804298982172146935585138798763558221420070048023229112388409130331315901352361173300149316737791605618485319785349284652808592718775447060344016397572715756824279294166870681261588888357282211451694168005430966893257169403640255943550535570157124625591841596514826102607133579157722396484097512565108873403331149614235002080677647564943752841959434193644227242899281288203381419479428231927373785373236027517768096812950043365751831667992925626408951134133287858080640358688448969457968729503992405129006833481700321386353868205191939366100969759805153129953760141610582821442569523288357465812573934564158027102096481798707152389942369188803153933513070314806822639780359525874626568989467803136457726031097652993690830351676752031388037901986679769843508279055949728496893511437519019775954686103526233539688758467296607885009300305748856365034447748632242708348298610259383482348049593605493576174055156899663399298029300843070878813619352167777711064532806984504537127090171656919255156779676993165748229838894314921791078478419050324009141352413581495891940850384693410326012642772469079750486454209829190696094574630451220877951533784818379451749795227475763832017667774718474720115409891489071839456777526051004644133546646086124068050058888014947984118899266466147232619754676769653453673523495057746201950419679348881231540664061515778199855864105170100543989274557638836489029442737315769163657382620783875791624800391734336460560444918988266872420188225890400443392669823467464224956421458418796435809073348286014332327526911754654555249713426712358595132761062744127920000984011594557677916879398450236276465036724643236243848200420182257019796439397499989102344877209056533826300497830794887338073449834033267507201036436066060146007854360014645852957371718161379710703147400169909781913165394790197157324906582413588979701342786963029439950172106322551005754867221651622667601322876300203148476191790787742129261003659665401437988980890076574262322829625022075414404641319285545134628683973151270652131768664232504237492427961921909502056127321816926440999407736357236862455161358997811323618810644087606861056609327851566184109468520074290584215096155740461414032810384781726591005260499594941587430523040150260969465416654763476641943951869778861589232091004963481874648685039134462313261747234486015152850877459213569268111656106942263767574521729835716398739960826071187316829921670892876888638194901893089331345345153478914949191173145713331065195132035241820244800114901719775429147077020877505525006756658137959018160972764829508273165664430766388308620512545198903043057055643621289198030117379535056339060746895682487657921889229591855361033185691992753118888324328781671628447409405585811389262808150217130885502678308263927606985253801484861067149976884272934357006111497968885957832205970130498119957235553020019841198538291056147341111092125958061119899147376903078728734377251477541902772806508785166176553356986462925241439288219222213167531610869099004371886790715295876791798236513811905249905442764589973420070891818718907143101958991560164211467332885105699998022895113554456882485460768102889595468281727565085567099933082206336953739961750917327066868833314963656681882142157594309469946876031001101168609934351767399399571195093150708620744348930218684482778926639731897467073566459415157685581438263377085370917628959672539497479685178269409155034208351452685288103469325194706560243267290529510022776183285172986706076236605744457092743506805867770080691230963692660770547440726180256332997414856345784239430805174639202074753476891794837409828304858563005536902921326815478501342279695520908991179552022946477621815133008429129602684153402729675223089844045326518206955515409312414669485568684892579833212475044181334055353863231582632417393272565460106631510724437565587174517838645140821305164749388748005217356037836276574671019590514582843930974211662527816437976084419781701331882892148822606918552602124649141726995011246803282442418990799582869966392769993307533237498250686930524298776978789439340884560798584187531367758234828760819725677325236378009691218787999403309222065279912934054821007896798383061220295562251668029341140224634756020303413474528765270596667697976378021958937690442606978751521446469733166317182336817586745370104079110980175995084012351261124762561878406768486137670765548689968522725952452167333141228453466802365842610199461094845644026268849201602922880112570356389661134986429501846075882334816367201845705161008634608472583320603632350214606790965609398860030322605978602864359762890716754993876672603101531142868324247435685187903664815947496797579981985809810024770038344988178697361829028760829561941450386188568605489267557254862204499726423448264089500997301102644727609729803807154965962670285007302286997104246647596148553337248460919856087620667135202967233076057155073296846443679220528526217167813920234016617607533546504811365890076077455106506292150002377613340912981926105825282606865400124043782409234949276050311484015283165928042979912262056636606211176890409521284978990035275685446908995941471208931495200362926285783563500188897409725506518443550473508882308751970656118336073589708240698227516777399861294710126686103783429589364083167527287076207067846338390950872318798066051856274742247711109268181022379186011835812664392417306538185639539839193952989806253028531379275865861891189872909752364687599298909814999395526754782244256036197154664253988118931529900313152189997439435939448798695722861332515814599759022395057018571546884288385972013373097562793201111747700129490255364110224196072680501041663490833865146236722347606982417700081528350865839514379199582524946153103124508811916047969248843161307466948418147993710299362342765407636405268356585892507808972695416908360057010568048137685338326392129884703755102227501548206489147144931173485060891449970972516825059063263866955710590701740417332706830079777273105333411902080506335554383783983987504300722844938902270456082093576420187868611642098110499309093688305597628788843984713274832000853888993411255815569897684636375107576039419841153902496482437919763215059865463184323697408209564858835138912746253590485186734736496937397401566567705777512229679809558933961071554496817824247682082387350366493721314573475300458182543847265113558362150433664433320447459472710724311865123452716546228021477451891510376333109855970191209562434325188967913030759093303067293130953257851982137858245499864014088740657067938288870856539936165953736629784600145562277094609267855767552368588542634789607609488686834343853575147995101090018677147034611961613222212883771965069251579785669989400233933880520659968527743452526992495061774618778853348053270476545601073831670907434938433264129708813131474758906804971785001653365609854129102415666379568528727693404897498105688805653936585093740080883152247398100034115730285105296949416707480198568738809255220977076349699012340975981925902393124771070827890866872186680722481510005604381662969386129103130701723461750099177249126897995528588337357375378335196204361531601079213063111903896243748869945543075847159354540355442155782564739671388371383112376007247930000568822670278569712497428573170129946509405032746959200410410040468362486637265197388816698404783915357748805850906335570950138741672375573101806204629537793002455070546896766125841668881458799969222618869873388805133139455301907770863111651506171173588727470530109815686938249567838668648248433347579358433320368220949599071383933397644665344405903576479080475783173891138107964531400909642843783013446905130238980491004367005703655453874898878740611035895722526173537535341999244185035087286502267327928276591732118948092982711034391424230369288015026068795243998765032320896444842132218769627820993305121931573939138132898222393553883008092976417881544201753393264297506032266765181099500466608297450475604169089695842770175458700074980529334758965554393056829033860536069582515522803208985657078311017463074455935871746555218451287668900764052751231978362738287202365546343665352240288071707856021768532326718642100973850303664890936894524137437408640421496668884581916350316613128162742462868286881924917559649131433081675768939996921477897995336752906814823060470815942033208794265423872139525271021536070217026522691274266053867747517401512491523724862862954540879471811032121183771158885301095708595655050052699488347816485121322995415967825016118748143303036765682095297452614675277001033021026715473245551847985278988201170642681067954409604601449817521922553245426558965102985160777875396458825688776361573502232851820146973609163440228594917112174486375537323847266108684253440235716462588169003731714335784880365985674286645247246562360826235663677728011740593556124322836199208842227682030338985321574987269627442396272582089601766470060353785584808320861944408120018187009126226876495200987747225702531460791032029041416293151194146241845609567139374545319232533241118931690594474348989760108690358629161754606113039432473858030647007148572933241398686866128587224131228365271444417882278142739334313795603447704325647225257055435829693368645343143072467525197154071767682019552802690904744788465367300301828765608906070791668265956574995170651550755383118369225025594771282785936625078951318382683870540299764701581762663310261591405761525551519768627833715579666731951668535811941797758767092828255268866998203872745994346746263624687464938966206300534782775430552953955481718872081284200223187489265935101534089838115079819074009991146432780145256568825712100272023368680068474683166450753110001909250659666349064423926544678902248863582590878180156335546552419210933913364399735421390328643043680952231158218502209311417207528291878933617354305825148500392314993306719902052801292263084961010934138349114580610985313810427093403847453281538639768738429954111108811400530078787305582708796970805588638521816135358603517044064808955639063489545494598021560739637831204618246004159572544706061052374893398808232375258588600729626802482041714885985937475714494239039289482407462357580798993144990997058901648820446011470744000928038441531318498865787768091941624478672578225025100958322976984850312486134486500491866665800757851973860870734643325153570602502253375761894902143048425259607349571065446206162106652213408431314266609478381262067296321442577562997546598138569543919262120562530398289382322038596157486697385602074034654922346764523606694158977641259984269889735105917480380011284316424292374752605456724688099864807279244052056000223439095595903541031296735556268785390151744977956896703707731003465391157104976343851958358250234154803444401479713299717756996577034205221185969788888846730376424233094641008290284059498869199238507296072624213739578057141119187312159586212018422344625439879105548042451358261126722285766863296804683730819036124723362396890857336199240804899031728076385176081086260779786472827372999162440986275944210736791788306683776072709857576501105964944784311689211707962926613088932047336432186034398810124296871998320418715703567221082738508157910175509286517428176570022821867090065377953995338448942676426608007831238279646196777141213013406348830873761639933030136454673756831773486696845307932168222170512194390970210701432690407529578153115100049862862957739330393600737604398968631624112763371719083627925981851810649838841586376059125927556640017123459923724131989894065204760637412547481629983372488279158478305481646751669806331521973753407049685564399657481873208849533607475098972345601415305148653979162323889188229019180504041815769973150328438792030998077454758996688623176073792454289920663386049831660855274438842494312642004523177013752255157889290840764128757528561987790489073511758927063988510848091203369811483251582331624686236261976186450708442930678609010788497147056351039108589967326088962938794068172975820563746191549046617430687507844775868124631310739178697810898935300221321034414305117413436777844479759516770306360364773558790200990869263204669399000443970287199252169269245865189471880945686301038172967452925129419241664686706687591077612355464836967205029546195613869133334993509445931772914370737799573749819290964377278456107400915396770921644966270947136080501629981193994973467641783897210437665094379679356376294758024900312502379228839168063401163140174451117080899929799111731093952480357553861045457917114485911608892524428101834991242192081461591161020921618722617022551101488679416952749685508845464154642610812782427477817073980857170085980369002801246337250050395976446145204910434125272831601501011948412925917220529214165658043618678078414971071992348860100331477665777400905524030416852293821322437054975450624624899962371527788054493447670996776906833860383636108884099523555335139456374152332123622757370597178445237347348973951976899530923173239264213745781983094524729295601162653569464175770982317793463688642517075793137016602561115992946979194444036814450235396058318975343873242973819997657172282550155577371952100127839107712369218594011898077794435919059584856849631601057469366188091296827668924974280442249944029806284812889042816364473411363771410071682435695090503236795980215829681668723929327436582287278550822684986549382564543845826840964984971729637844490011313621441444680208673541906727911659742977057305828174965579874121738521347994956434595745138187829712064813048744207441622112475177994498079867441600660866272259226437212205661110244362558915270123870262683915780633152912241597599031786956295598835502290061844463059987892138707221160004558433564865914031026474447582417790524156958285486318284526268086048978575962761497710946411152943794984431272640128386799646135478462125650329348327476051062324876754054658724027159577184041485542062713257108560215897852264813531058712827505988354291888547253139301386684902687082961836130641498952156568946586021834302983605690829651187253615540126678116995006053222570284375962458807130076247093616727183345586631949758023861274101610005495861327222408318659434812656535096430184588029291683805538599072313278609611675534468089047042857299557553699137837917930353774011921173091232172852972008972771179534833533202961545035738347116519783727842037872704744813252243554711626173380953074475317517538950390924326824257587780390084554421424680350980660240973058047773632854637709257714186161319089736794107229334584139578700736603458413138855748393912096061519467262508022947491490425778437744644150529740320944577426383039492556870038281657691715657804089609592187940800464795088039789921180130766774514475127631359935014195350106140982269979001865653412164595066855845657198953242573664514749086670267009894589661146702873658726265593213482786873907504027112491577280731733962727274474024110978988602320609791905636281739363755838958491167618917903974462572524244315467454999616446866255349401831706406339554680508428029732480219175569548685322843562295100512709033640103973907894605620440896785647009801476164908083992272873368325998280187400107445613079763360487266454031012576576221177651461312537740050251176094484165072117263910171531510118788809521093206759939003045813778860270282894446504736567314585738282716512859106741117940255250786504197537402945487963839102392663594549333021824628920801419427416632134115669074470835595518029347853412046146398265288613162711321202757787819774885582993342795435755686154564981409127003402241284041696193327725543440706316083474821648891678636534071552513592432096210586151640182417825269131199692810478503758886860233603631393792583117102401024737004257322495626611055624935009889553792388029065954666306212639529538361328849270526042774050767703361474896123518580884016302431076159569222381935419839660328958375876875007208934706816495945714836475168204057388064682445170452908842894953634490823281543984331804328375560855166075187523261337397854321987259430405437848671593286135135526499244770022769361774548569752024591012854105768570949121019005631549443983844429375906827476084976911896176825991416428850343493933163608676509697284003119856023443834297436646519427723610908461872719036134522961392639458193277154744223975408497442897831366392806594232909172365561981393005255839896584761815865788560717843654901617574805024686623632481462437051848588885751816726804524178179714955708491339252977699403094124632335888190793869201263761357895951890215211373095486630209667375087789629810408898595074220574311050354184289746016503717101526939558498804620238765015015099369953434116517859521259798379025059964438196673905601859070791217203059110088697709387054065491332249627198236192471473703541114839203649545775759269256464706446124152962948854050515159159187384566091759441937236267329692827511892909299490094105688585595919940794931131955382293039572113979919243707908866223351929444086149888056103708857626997548340980836492903886084749338956854331304339716585098714584507392282717444643790792394093985813570399091365466580058210161137908143489072086884238413233769884981297577096477778998520534758544390147114815605088508855067641572422695969498551276050830555974607171773961595144027538244710893165500983295192304427013793192223190335358597791124745394011704911199834138365863574301334145221075173778606146511555514703259302956530871687587370163666615577374354076716008002408681718103739355041722760846324379642155624788539309818980482967328676248682850669510258564891974970563585932035113247225387869572656190942949292249369521605525038210347122259950029610887800786309975050339789852751966897545290115059913470495064347773052046282393965781764790048711888461464805448103743329903891897490820277748535594426351795649416066004749224488799575834875318324234720938645635485715645645931093780004006795744580325488751097990440622851401405775002125685743668947496354583036341680317367389839253502255410001834808279878237150229960040773562906524219682436293444182122479353597205582548666103467705348935411339625019377164440955524855667787460826416085767371081075972795441349614593595908954087385543774189404999796814937355352957157103163218319808877396913727906053136413642940041834175978491025854473619181267206313184522442114038457415677982156617957273824532432414675054587096442976900636633512816946473977270981609986199306132409863137661688325736821919771037528469172625482460105203071086519921415661798745655166479049162670554798400032633754652983870904465893313352729643014799426947670248072183260429182335048166319803038824092721080041588286010008796258337061858382261632666680253778749333210971154582008531207476005384286302388158304435167005798948563140451380040661268284784619891500640024625243086964008264164808432369202550726377302238884988469763869051490431778070172963754617084781050924590854500381160527446623616422315354901714127622658543708315117724445940602009403026219349236689136398569893428084738236828976161464060408947359359738121456563317964623702603888008583951473167378066474363965003146817953874662655881365311138934370420160128725762351568117645183635765969215006945732527559816014347135628287981380195503398394223548418140682165057262255336793594604931268585511047197059875801821667836695294777589800587886248397925202530709955147830219819038856431126147233035403921256880852599835003186848435816497073844097529361190806093232931535684161870044692220166045906898897029740455366662526265798782715851011788848345029658439927132537512205627938630959477480826289680416893895562414221720692310898289345730303510537357536576427192253744403769647101955604734001962092165426025395457962621380329705824826946261951222099579274005110190183595668299358579684213319390580273728272204730864135942989350692166310067758544070057577043722738284043779545222474135575707470408219016501861068650594772589155547549053763839227515888298267963384492701225873426647957712523699728843749743422995063430980096662132339545186267801061151705052859959819566514926785292802458715068764759305250952879831502023508066481365513852280944806032787030558340580543760539958783124009192269861469856251026831259619834173024565707149467231527880221789558924604061484173614589134396600752923963058965131261512654023943839460990402547807695827947131016168706665945214349926284499061665808778492740811806251563677827646053844442509068610358147370898312832609579042667131360338940717844451548238677281944928266230024104452012440862292283427307796460930273275591224312262868473340409851183252534178574150359557151821179108399487527666627912633679775354336176438837552985513988173348910961257582758695812791745007521962833358452023924813653558846669136299245689945250183895594221826451071065593851560862319295208622246909896404950617755926184079147929227720631453553249039824446724914215959191949873948420988255926758611077757950158416313391478781163798892300826240444329275533981595329330902485485703356406262620962790490481071276418253310638405811239746301059261258461027648298816506868560086519900387314870042858085306080781097561559959550749050618620984148601562958043081405567927508483600301548164595330887373501894014256638745992147856502890499813964965472763662995577797345151927099627321764590387102778331804765409132163956898000881782909415112607840723869343779378920425238956196197966375523978826513460774231157298388683348349668165607251024351163784857755474258253693491788275118059565905407329430609873149792234451264011108091735981156962834490069918493521833276128147326520083315897312550815155542317103160215042269804584932469798278251915825890743009821002676309015108508103605503011994305179841988514837802706878992485089649801216095418468668909418683695664975478085072101593081086697032056250262045482066426488920429024546407581527579052251845294111343581179731652888603090879859155916986694114319305600903867894816740933452486251252325741131121681588674041954472737197125504308784047933644803543284235478983788049630667326563320724793944556885125125961642134969731921554704663705139116845931763231869735527565911989414824630638481655123217057110008575427881728953369722762576565758763826780707528432053698386520075411478113582563458229079669657832419715397404448344566310159423566752200369088864933791629953399689776287959694910335349725914531490255067332941233563539996861398909088697656056002548366663693125478836970086012495537626606494819232126015986662528277968859236037090619185288433628991719299921019079436040494131894182781127845434968121929158680911490663996354685126371545751254084136378053080950520399531783956456876911908963648688516743266011783284754491122127333100984928053749932022078830370663843017949946228675919214572453164660290081665149324065222381648427864724828613909689851797413610040959174094108133207011244758077014927399415675188964175657571336216802464646801340257149126891065926487180511425932597178055440841673031542711150324407646917999615160812656932456731321880456204352128095108813112118465992018936365164985777746754189856216156306803739283020424530655215543653905658627148727813257133938423502941953773478721199150827268148882384745330199684689652799044197796332909544394893493220513446896301814748219852988723930162381751317216769962103560249465411854535852130468104158003484506435453195792058191183969893474675752613468532816258529536987574604680456638021652223127672718331760664946392832619697105044937776464261188505549773182207077546376868061013329384216639490975769614943384287652565527733880106885970004075668919661064300625279362721587261042401408391631303690839819584929436589799898250248881995660127039020705216119022724055739903784336744736787223204985079825018285876818703162377748090402667011176283084457613209562172111500824000316772759662487068782158911075041883700587817068859941766140715403912765096933132863275374838885867014383328610594375664892668306133118784332627655839760530436580202813060499007089514844607085230134684519608414606972260366413376714255381822459458506432746958052412805991412019850088617697344828307234148357842335403603973683891798972120596348163833443568141514079930453281885231005832637839503513969788517177404600188250723146998061440833987062628827656933901229539514604696335934400933606415833581648364765952034627781645075264597849005862525347106560390094060257189837121890226270270358214774567186820992945359974175846259679017304835110054751748452586423752359404799047094596229799325573874506207893513991767045542362595312002577360842111235715352394033740958286551257589393269215686654249241313278737272243220060616718738713428138936701446080974594649563471438213572416389185034186859299136748285356619539594424248781575480815730677448370240982356531917946353156793899116870552128610822683649112312987305646819259295140502022544506431471941824975245930949829185039863751841440563620727754906416575136115202342883800032357073481137990144247554492891910147455463881555122951627256331933381059584362796554800143452548155299617854163988232555565029676179011346221759004665259759063211637980512675480373827521843911792838881317011348562273933967922834287029176267502481299680441547871555439439354981933937515244732035201981255575569988191076347714818085440828437303602179317881795913308998733976613924733836854489417571629413806803366176810921649375958035536244726890547460662787402420856551445918694000150493680289391058110598612534328768445352125291318546502788320612128628756975781342379412317311188957292338981190778454953503707297571127949687875215278650459611929879324049751475650249066388533820570652364970328611661138995253879977572182988854571495919748955740089800015235838153006572696839941672661965320637611698530564496229036901254775965916152137384895492527387654489940534144625510955498243813575508613760834324284296458200296277934312861850870790025131650047552407741459375535338623786139712003223036854938628265270614193433251017800348607645358219900122518713364362978377288595420653576655061816114598761147873059964533348754101909603027098901466805036054924986234546776795526972575859154776479812466400199371853615583101084988860506847043019634467743218096407446723060542125431051551877087079186116005532212880291001582262005844340699708004855589563150730013861160251470112582320245409811917657492818596527566703423138633800150103692266702206277710022697217043437302064732104506330998369231148800072416141641983966163494749860146343035716654612135503079067197086540305216109091450546583187296441391494259275353736272029861207809643277268773309549481451873167675758372072044784094988426417997713034722884310411994861586672721575980489522893713049935004665019383307180306787463540442975093571699800211255376713026954516543768392275433425033420225575875361601096166264363505597853614729764188011937545611120076928891509406234877904156649305094698932724860960864306600000452221171104922759251660867521694760161841112989070848000086617656375648902156421818888688239062538951370655223261333289360385036223096902788547909182640005406506441221076001845417190655448603390042015239446903800991297665191579205732578007108171939842945709229304346334932143494305971744548894912516924970635458055590271198067791211377457637003998188678035727811270045436343994622346745948353869768793217005697897848313488339485874344408014158291980381323448573538833723880038087922516870503541471885293026718111605201810498947703298297193576924675022850929696714323894137686214091176393972367911009344978584013984040513324184962484573135752723371671261374178159245007437133905723056555642673573090486129574078692761110266221335070152152531462475023894747491649461498240866398766549232305320928373428099199408225385429527884945423691718192998538978140980122508275185419295141073362915134789347629510124060964664670390981800720964208572390011540891130898830334435104010394175799478420177957016085900441559683904937888777794559730407730944200013338953098592512675715451312565064995468152353143818726775199657106036082747283970585633460159395906635616311362574791587333390850898114330997230284910877082369347053140395362696407361396836800433565151278982776452913623715563570408165150409176815433423480393766520064780542073986448807986609866133501828608135232316017207323528534558308034786998397520678379144701874454686376661714734420419227895468180486829296176982269975798714603148657806645729903589709872513055523409777320868274788344083567575589126469694640594560769571078179720726581183641582338439132874368441901520279205995607818577721583124239916801524633298953183597343524652700529065691322782675082588670136632114320005480719368893935003070253239635548558319501368192391716618744205366699038208323756535295355228102090653185412630379065569733693868175578088003782264699276271668768627501146464164005244118720273839691985921375219114000058576909606446793959313502508744868063548241032468813945778321388165334384932157966718496137756212633043091398274842623989082432735887875100186353843945627689593158111715440163234889468140494076801703110219860216479767557792928224497641321995318300963711369844275789283810653326328790067019807705778970354324494757669215668753650245718185905363945021170943902655476371217932275532448306759339062874719302671922116798921508254568213907011734029905305739892439513803445074794552366817049183648521052755682553393275985604408477449002519041868485440875025771223781696946902225439795688995871937028779851210915837891952764745508003729894098462303344989528427141296556054467825597336228173630285481583273606802819879471965402032037183684474392243268091107102033661888174220974107175271914961926478192014949655839830978387621644018097363232627671228718229398340130895737816622160236035776014597243544100965415726762596988579351522493038568801253879061462177285275874201410606141261544378860870548291089922977407840550271694359459006984391151971108342466035776116353118363784812760508204175846991882890401349710280323863743585941601374150118888141199728144766136126189604344117576550820739014106005205042465712397274466994132819397822619124459765230846049180053718218930578270735474074279102863770125287437963942319593866942583656123115358270918278042576405437631486789639939052853704691451721453059822375696753413054750668658263301543513932777596511980495413227147279177115170027591455168653558011109936675285221779144316512047646776800236719400232554303500836497421514196336717667148975767312342134127615557897459230395573222578927891375160048133017923390569439228510283383536506246785450079388692755721818710810408764217386797290293770341255590051043827727033061933077327923942368588686344582343750573407787257730420011154365453274738626875079286252776268389629221438985512917404510407310184561025652175669651354535439608296335269833923906344122545394322317326838880662706126380563586131182824738102331799002390188941734231348756631053259941112507499510259253311781910674133117391095323409953310616554303261323453024892247896003777839020475971674352297391729483500979463572445951960782085035245524262703696501253695542581734477010944177001551148330843189960916425198275777485182101525830575448810233386219522450722295772356380909934509010395779206312490501107861746397648811517306890026975842746915347399377237822500619861899993068393367108057820935301781976699813640249809647033445743281582873159039386735050186954526453888296225494720185843932119841470544663049137990232937792235096662385636494174689327117113705808535560826815642358195939838699586264466224956738912959605476262127196297408337296846241518753165738963620550091394115582579226244906164447474197962842653496327999106109747250085012245252517309307811571860592343972197679794468461628455157924447967360023444551883161254320299815666001140847800458255275820576930832832977242524167923859000260018364388614920649921422564447332291237181584076827243812001901498723092288988218562668880209585661820418938330004070348111556047557796399754401369635986103005297222402570582159007250504823275685164176345313552516351529110134439822486969135385519362572747678115683225750322140684963669954192020686590604842584107416419329875617262424846863743965324165377967984105550552960543674506013445958413736428560672363082479450708295329884639812135928514720595966271678160442610432205517102556911249596299046839997208163579799020559882083940922607950231791681696475842360083329255245400283682083970831994097501710627999850617660812588819840401262620001978441561415590295545467065172385895621833645646915436339417927100533366703107579996808712260176300780543691413684748185061367649068038526561646859862893242436844142579545812371462576483764766416536725297608993966172781326177547167113176547785846299605699310161540190335142676665125801226266122531890957386979456680678706242871592197932102140813715358644806574164223023238129441629507845010710758484689112588344203184335918675219514559468675207493063479984070993816056108290418471307473658855254471130875190624069184935353912292895532527265012575686747041749475871311840992484378409765276494073661311404626861556617092815904272123924595245901515499590805980743804384354325570170545671555893579824520851380237487833216657220936640784206327857353517099215778380907099354531427969982411399662634362306983741768785832036172429871026058939876389945237817651067401900226715733932195161384042390437623401550113411104007603873909975677770970750592603401838186453954400901682479212247686724629251068278682789803948748842568518122174561310546315360578841365270998020578365297064983060915121410608365848584120843351682573842200238361194671050117160112424680537849349243212821785211088178988155544785906750481265082760819360139283989735481681287587099409038826570416534669643855500098727535019863740355094254889027346132094259716943407844710517603582821777886998854313800578568320764578120910173090676188446647615544570842982110078076008750331930598147403335164793292708507108175948562190445234005908634966288554018839521345644964546094890755059911261836674170854877767628815792867077459030866888797113103835943809421488307990999970569186196739376951836758950011952603210108082647664316387284788069448872462091894423036143857642682194981895145017720576689841436021661286903911816602005863405366251547486176541450999570195983220083491550648071934732221340092129768130944168534924470726300911433627591996386754205059947810072198780470380789510991611000788538350173515571938693245839406137587877140516768863306859167437257550582768984590065208903248440237153276995305961826496182118547379832652644686813654205087665676514094002352467065389398569556906985793242661035221313417496429949770751960668600617040340453751192851099670548698399523233104391446251677221980976754052992380582890233603714535222342254536268185702684107935028413368357689771635352899747853207166691596829533920569852765311762887186511391668168962238009907487429895032998146126319597427242856680453975575115541766870242456163864628180134658742358122946039905210615985217135979267829309568700781284338289166142882014454175602497817774381555096932216485650575456409919119614988215287323570002691418176729339056231508876147821973324984197204977397019636296249228391488277360550131349003385342876478675401372901069812054917249474101699655092258842314847382982005300247227245505088504081923294944779613265386649182340911460117602027969213086771249409921413089811408507720004652249369295474971831327979710070237005032586998828390652471322905497627041098902891044211873728586739120882239445292609245510566981333701128879520549625547355227499168007604360536671295800170942939890504791417904416648155578781042663640508993775542382824248874244423680800677060453412593039035553735422505222701732216450335691558912907453784732520605534131228869150683598802228199830859919440395719035664664913861614149158605530606323334763246711504236541549643281196333215091253547550487195225756302122427696550514614553273210097602110465418936314630654901879152764321506249735898084221355833459269561306983662603845941739479885763541070437865419532963771718385013928887541673599628214594562259502228306305598434491550353134595505847249716206180225283075792012340074613691392754661207049374719946116013042052393874797035131239231476468612888034942955438300095365228550807582063058637480099416255025638612138261250567620760146384631460937778467748381926399890593358048808612297097859656427972607338384478771032541098921063388070330728354017767308630415404948088611206742575111006005587370541114449721807874090255731971215372488977438639909036801341021780495429205400117898742899406277920061042120004138756872748256541299389082544708635528386462365589782343057543376851325780432358398214244898782062288990701633944887681113002379886682769253141426272059755497994871753121337421520070802770078309898427431776439684658463071502144434506014616561229802061658706817312783062439311421364344026288329801367914219195179278828404793640776338720801301306770584576924544020070772844088571750441010806513795481689501069952618742821939588493392951465577755815013735829861508563405866450211514938844222047481527798945909110589570575465873569904566003449337315034122093744653106174447742207264300172076161996156966833013381019806308685350118136251856302871340915370562059286441348539973481467869123067605414872057655746607835523124628499313371551863444564209341285560960061493719451437175770054168260122828917292384516662806456173661456186258959315738941687466454955735791173497745471052206453726653126750648638769314063754386213466647183654521963653127095865846099902088444580010483759037188637933554990937578632137900121606152906641848342594947218079544728068152537040926489776779409001376643057416204634944111091278094826100410560016851747150759308804012249932646533650491080829072058556293746773488311270228863951620137304327704233675550256843140480129999838172269200249046433398599556211979686578393873618243146572126135189181453142843178858556866889240079868831646869345524042917030830775448276934484069984509621907432312076966776515904122288259735035756284583425906899868357416797128974536161108168508234689915540382930157120805587504204498332713016649338786585476592699344741600047215207453618153916159105543612636283214999276064058104788090018735061872927529316698815648564839987397063521736975803632417698235398158860924158067515937122811008227731361074685611944979300625358889524349104589696875497706382094481872020853895477194638052474563714799134444446799981762997818829198987797433291659260397046193195389217235264754906758133054110015674967624693735680247246215617398141148715496010674159325106758729914590058568052978855905513981440361544793560629650161880582357486200512899497681055009625475111889883896562202750545364717256374880155546022127572032641283740187549034219668135628632238130170007288978195598699009628716431033988472988008626165379336536633103962436696778692932869405188128477415063388437190554481666622707731471321661969019456497083699854678401175289249086486862454844985720129182416085785591329444271309925588503029134938728445246608919653233609039888794942132404035256476285800896958466740021018437886344065110697425541597392112870489629770962194532006252999411467009902329736801308736871258192362313391169619455885179418287465313086723752312521408026556082918425305252679515225794399875936023418455498959344057864687712014188046434149220164753300493075242301214384439196607688382207575142234042295158206598698071297407159967823930388009149059615719103666980896768843092073717312615604497737571226663957737239799491277905152664640374218602985928123846015611474843821784692486901050330126633945593349260612517920716728192502315082450114614650831393967488912155949496259869245135272886488835376767427578505413313167875178426557219917878356074046934976228474747349577898180430656817879348151530899984389397588007659391353502767995459783047881736689423601731665152399918563274542741630015440843492355652369958078624870815376919437394523771425636332245067532159646288995924174886659903356399374667728983288896923936441825932633923178659426524850152925930685410404994752194951325183548213649633059502551833206327065270201859195427891872640918908334383279456892416506347740558911330047843743717716169472969595523835102553415200533271480841038010412144765771230524011193823057769134063759156576136758399640284131295867916418797884681572520742865004139475713714337770481931713043747763348811462087370513245993711555793698973029963998104913382973152360615236232666240954268390808426566094128601886056260641324780695746137681557823614960313676944692248061325291814476349302401590047671860668401703593086756798672963460917519732193654547219438311698721211398404759950530117231185700287642218496247718494474978715337677938779953689522810235722037922689577744405025160671648482984735177157143732357413841786499188219193011730244175617770095141620585443134711592353848543146344090585151503269134535887452441574736012612874814343939682120549968681847198625118624779795429998882026438940977310275293200969409309739730765948843815390455550071178500473890244907985924075477786528112430921002970708248398031599690391548698400833941320717860589641850664612123275288968349743875755844409856842517607715192932432202867738916994819022743622153680975731165440850325170417382272910687524974751350554109410291618195560971328886089816474262562728557476343045509926276095428770393405277517239129897676636863626272771614238962149241404378634478489047138266095506851538880392212420111298795775924307464237395721703554301043881406445492241804930682053688172329506218945566418936117046592207642829713742353960202170559026350332563374960261606299770174890517959277769725972087422933095712602488327421118168642531593474244002189363146672500881316216636561303446219758137538824866680515104428719478358341827977672491824416630833643855907856658306048345846142635550493676693231073713682510137673965400302191026466903319426532241085882110295022931383157641456389058094718843098104896671520267194207502210035224309483546961791691735016847157366779961400650696064818419631089196465248795695453395560667360408555273571460012920692121174525226422038456349018921915552579428462798245897233161177528940361266864260386480802381691630721363006470445443569806608841998364457468317369776879951960750928268633606506017598079505171466339901842775537622665902609269051523622034633615067899857225771660487159691129243601351037960958216069777484893102672142596182781616668005299867580964898663147523096337744167030741302895240191092020881162800785899051303053013579071203831899393712316392305899044612594956557022398500230030469771605625588593195363953576206137936488272648848234205593203723024588919837245389388774449708154283419975040603912936841236545118483161580119307440340178050011804290912544777340901769933894302785903330422864621254497361679035803956687142197485916725132780895384038014445385632525641644770382096308507531275060379082808479488487717417852282688623841958890680264842378973551792016258734334720711322664435948234717448175695404603003917845736832163720637817052950748807341522361451910848177626187389190686443817942276428429589940808821688947833601557582041726431754091294569625214258645291723721333072255840272419886291060068837180194954083081381512167380819390953125623451981657867543585803140871818671960018429371947796519861126971842201905891744912461167252037655680101732648653028782667332339975983799237521315791480785625443571088627206500866146922258502081835101870544114077016338476598849999173045896444319798839321767473844535213217031115393768162225742914428794420663001395254859816792206233222608510066295165649125177712450817134780802518792021478690014304674005176409029227029187143591833828231656036405672483699422378684307959110997361199443807848120304478892707305232287736542273702874511128823736168980390025048298047770354270661039581562695017282327828319325713425228348657125887794739013359072244211901270908117015789677366283863583902166917230395308163626200186464485459468994088067110939965391936390122420078341337889401631743845405702137631464173104383770980064051820509412293154937137609769131771883064913765980533163156550008599779309971859775837324555113118950596187769076278272105072934097752042230735506294071076838579119748125610667924996615614473469288412319669021422659007004984506632455142054083451329847700358025176195791408619323465397926665436562629839117962914314394680854155459766888474729122777333771725794787073537885507369742614088924385965817423748664119955097251350474712237921629991122064119511570851367282717821857072037727415321654387531365857231727154692804815975158390403929773394976383782168121422000025326500750525208263613160277970793385118354244808850008030461708939989714749432057031952718853896369183911030421971462999993213919945286049541476668731448301820435907473500776276035557894568664815681466977183177684576112972232710907302184194951831119091784871148429151511016369688334114517492543572802734101616937843838141850264906823444486002000849225436423803507723385073451797533478500932652064545252403465478637024378838745668152955186594435113840080328567522650687518568130362488315799051139378206084969760280999308815511451326389436042925101143525583200006934022516047488446320539577907668022460964467665665235928763082772056956324066200550148148825269240834725399457120218093093035764125916129230954153028330844792062828507708601513458811059421469999496189586407238429328509108841286409663767032846755243047415280606592104115258454390011479593455072484178494628583356872981802182506130019496419755628104497486774686417666123862581521111324334238995537456298338950153972102437898258477059313010352080058177622847616415152299623126998337167901933392022904921148781370296034988249947920849936869422116108486085270654529409002977059871653787820685790684730761786571105921872165890205473060073402227454012594989642295783621662126387944817081591278757421521085422528773950826567503088947624527371633940169854751178618058811500981703895715240003686137472658798023474753252958073171704677367506871815372800188249737890907882612039837279765084030613569774978857856016068839018604966225613434997627893376791863555564260797266578365094446433906876963415990976523364329582598297167351589605766688231160363777217623315236365755005017675577297001758689334314431280493782878237912461084210899047874477064627345105276858805410615271161345304063288635457942946537243814459241515340622473404385848868412193252604140936680728758236604730472786433576834968289680959121281425199567922585944617039661612471701372782517253571552841563882846481657791970591163680127614470981332186506535214204612884231101829263414717324022360554110951594355986446642477899957171927749537423379986526143650795936830804577315075162979050016956795009788030781438964543533785381332663554632825225259211700746759436141989839974198988061284557064210595165231793872696540922328261063993804869615687342660945462258823607972440450036550631264473445552744093925151129042599133863110915414417445085025871165499702381420444292165560918342820066929262413000790464717396014725065706420979302773178436563790528930669474916054746679031240751648406127918130128381789979969134123152130452108541949032783112354377723012723990237806110893253762406834340189693627485896247688156662272659669455463234506990264884752277175600701135459611775114688198152349634344255558773833372769554621971904380197435805057973612883878205735372485433772996064390776035245153798803428211680265305289850749286331206004303285992334769762416699293966960915989511423610745124330963182949763823367097466031019428781555291245507775289431629538701363947769427582320045319729666422972713173804617846558312083101256400700453594783288363809712267412967576004043413612309809091021161198213005221343771870111508962750926859805620089818302845045355866297774697894033538591469267589545323879862802142867667277940580021396595839037551800083013288264577382403575893487484024519643298349422337848220370565061009348344932709656149456052700537003736542222273632136303007081962737567737350029495953226572247307282363634635021009454762710783917054045098751282647208363623836062019901556202082817509346756972277963657407028916597728121870937780765699174064321955356054257522644580439400367045390553800679553601193880189481004813661069611046237950669432426680072921166292161512187636818015116098773321260013168180638050019196108917793981081807324978520674150527635352841869100770985534897602234775530976739972186678448580993492652000717763207167102731687484775778988188759337335323603979564792210185809673286693117068389422900502713477527050571138605268356029347120642601555343333031947461735624830575142364205624256274325489890486758118380662210023412946508871200293693794162739640118795180437917075335857751743050214261653802220171315545189763366721715899330912575904299137800943587927432269558033153568902999745622628403794896650951573238333789459265951343707147882879891916163831877341821089734789668513188388025041171761267646742241269393905063652087204459767299762657568475770968660656799838908629612929508138840010025098360735623573291997902745503089085323567272281523100987815699432099127108889916781452584903217192299784610244555331380968887879384487593036593327045851750408234488441548286797147270751283307774629986784495021197938341308775224636724489381409157062120045701590060252935323222295410416564838690920896053147763005517273805884764998049057598310847914144307061992932467530792894773513798033699068494157320278345101030922327520282198221493742697656431144929317088631067226439250137588016434594510615801687268684147635363460156835406214080392611921650767246246139524945294552732167824661778395581359245285414984605245740071344431935846064356767593195673267725933692851934631704917155233891033234110830248343475369016531061626399521473252993278465268228106812115625254935029282175542089143369666830396470448178102660740897790647452814720513436644464313371148004454489470668663410809839343916133018958591697056004619372335503807958551253739107076875659463795455419202241373503844935301789434277457560812743626283806603055550783889005225521669621213057401156060556109972967068929380580049879825921825690767366962371099295506808981955869043424032050908849868470724862757678792657281490714243271294665542865844269347822246170096423967030890259101272319026773299661157908018433380710123945677879011943075745119753971723608757186094746632763790356510364676773361468669537997225411584732929334961925273740788651473876043248299555689562624543663103242160975223221374045114183106128960513521991864011096197054159486828660903720337307826079936325749829236165487668629163196548580058373393053926100675037427981227822839913839813052092375889208987297717618898316751745958267238225844939097328474935201681998763091540613949374972829494681675333334603374144441118986192434800382900982850677061282040407182644781610100021501894261762168659366598853769141442887956108820419924393370196316712519738427738554753796479825857460008858681539931480186562835442028734568216634198442580014437673331130605633513224612494290348103685804350579054747905273097955895233912371570409468748017134723515659063432066828770558291609295984054557207488936291592984326679322778648202771299830418657530288130621690323027893293580127831812714768976768582969373170201287103920224809748525043710707316703927101708095255075891715527640956955610337373487400212188488872056571483800646331495368587034072571316246004442224731504877618070629850745615720285287745834786623147461894151707272073793902577407729635431251721669707330987799584905512929824171165539900710469253514756335356603173574900113159610613319507295651418173026607568969650747961769521438197824158602170777822143611796038970544199147959366680158560696036931957170892175835683137942518867865383333536080010839774289627907087879900594677652471607304188178918105514902924208375011878434172754168059461025666265271372169807534424905598156209240621588813282462991326604218427773731701248841179142554038588055187012715738943104050703482331102445069373917578885418865320394148424023090853071369520225155310690045089815069163676920153217109681041013474818968902353711277857787208581081614441637408109185739353464373174026262341938187555978769220539433008926846823228307558309344889999972768179002446721110229627944927086680927950170377289395073029663183857114456276031798341584471445640389361577533103918484232461808174756707725631344356375173635342845356246111579519929634571093370349423811393506921624915840849275361737395877485203332436348625751708088630284624138017183582787922546279155923837322996967473606310353816818736909404997078162751116524384053225554257671806830138464320974937715236907608527962899475400985399495189907286421798333599404217507457083843729642558909401564206658767609459756955203299365745141921650501995199174397493554651842379729521570788837833740633192888973124196093997564812612748888353581970365277000856543883771808357596743410074714391253511830149193023102955836526224001433210617161731744593789890433468616415622420236304730577598335505421903043004119521240268472122012683809765434737219343994232607205760208288409015948177606470670219865740020645520983004635342771652122456279205025209452336116344055822190659615058229469031110683807152765624370268005794582120887098868550236579173675423011465634941895002816975241188912040420633645913286748289601705509874879611178393516356557873041682983840877818251468873966615351847159331785733988184682230920143795541001009259840705138906654293088335046768468013760487043561523987637002622465061196013335586008992529324221845654563889775894643079776623584795938903808110651911573928974445240058029816772319627617866340635110618145162457411998949104827067144039138733432608647793828510672572069799576487719929056369864337671835068419846019501426175651956669076499096749259639882070832693695758848764178115601109810949980729103256186519138297605862167825521477068625568197113984044738694338043325154860505595231892480936188090853881191175413293390929618934830849928377662192568226002840688037951488339300812179955336600702882769544205648208857851846471342528583501672452731546903673809050584375367614120732193408412196108994767577753284106552844015682899812188665367205614280208631655818728673735494351018308218968524437063314666306641166199242590340804768443216565957159294236301578238074902277409806681667309530446315799732046913867602732297155124401686427089210590109063192417488685550411660657859666898078808682460018636775105757973692858846872946750567683200003508242441047368566818760377042000081311169665797586739043167371085837692823729954520443545592400640704623166748651874872809544857162771861540076647545670927127776425772428475990216548336280047161246671981510636313136150303287472297457510475350297309414339477415671326449103174846413659636958873836481021680180809020258883714213466125613005672491155140112649610380519670952293998879373717859311726368482573304956572025155694640611481957058256335586820030915205445493448362589374305903508415995494127595455671463011967995140659835517497179948731300621784561458167585109254111577656163489722225488384919715521605370271194472473063160026814828081372868266729510777223125137268668091245931144334171946482635000929553958634195638457756342533260453301116150750520605301932590410351182085217324126673485270868643034780221405230148115599385312135434286580323276129719903452107318136559131814139506079453922099332196509859478684571466681517729607329926001599382939187486299861978571029978487538057330092445573759035267613163055707988358993920798289643224409249696504765000831284437918109065560345360253074997747736077376003950394697380907840463081371260108029241649652036278737268437218526766347654184332130238877144014379364177231619726931765462471878080275462208634374280046942939014094034465173842006827559357802898572674440340514981136970787198914848415823681981225023606548184538806695022952676459089533223101189655020656076998560380694237049144021173587903389454810258900607205071120598435577792804819453183124536647986317007767143254881774024397807911049770173814728187443149641728203756337912304734650735156913210792999134256286843383427172251320137152209523347361696403216164003112197423602081005161887882090347205694061628810369781836928741468138092731565707332253554144457403298958296842348663701316885309279522366508074001052140891832595149979330052791360037725061349537186301663219466824489286908189651710878394761246278465174756001013525665070270784413960508365472662797785080672048247607454226038770073073895996994737435380356850907531842934260207901464293490454587945731635886916326188863834156998906837638713434457339282802251500580369160000632953969204534783747653936755527408914363136348268982996872357436020623477607650364469741306650587770454570465211137646701088660120255620734872479090271327169040079151752715189006903515413036065375488992853611218873188903125041834536051076234965690809884836518585282014422411417013266190396858547471357501193947889938512370679716644160417415464142121057526092556527260941121914027397850757013645908694118672486318762445771596704784573114995074831044567604844304811904009045405122259240011124183399435362178564933020784576805936754926835572784138693338466485202529070422765343541923540687191891963924035035652587350995354748314530160138596601913631906863006918702407562167864555785432535673855245910619565441147402612920075818754488703246644098078820354366064222878928510808011426748923782680007017434796642820022413433981679488445066584849385782782131877425645193195156132086595298798231593118844947455604117159845092434654431769877759466047152246289889034683252633006587427430429933702584506999539856859141393540783964937446659038799603053000199393575693678578579128452927613343844211290470872089109596021308216563773672372402477151566736463683645682387762921794240171891786681994163542224450448110926848843103816275239659960747535725812796609582547460220796746327574644066642570807657779718225160702939648430584491256529701337147422316278717891184456087398664642003477122252542518772283238229271067127468388260859982858944450693771085275512427929480379993106782778095546898621853317357437851370141964475336243142450904536402424967685806883665781184734272138270995404150582098609388844756198349615248820642328774275908351546508998109275454632583123807651546395074826227542341024722033394076136824672061032755510968303092647311562338513144933584165933956769218577197163547491507147931797888361609023814677225250223547271776018437541549947966984678383997963598384291848217826315246945980675760694696684738337166470494367854980408985463095224695790637886876821960560635784037455435240921966381478532326658837691608187649378503449954123871220998295049606366098477941807595289866006128535760683584749276560830082160095554734469768260222674651741616590974029924121469892024158230752835943736873277450764835773989365046606350577184816768817665400326770020131150257971815981897806452453909184054405379007222853767210107059645647977480337127289977556272865268942878060324726404235047666166241850082024542262256640526264114197877440647273606710909579808072399722500071547016101332057201918754620904027946728580926381808205141546635941251549135595259890137248021649792526755798621040159469971239207764286510876433354866555794217532845501496065745242807161010793349045524038586492554970528720563514539373464243879535180051576084606952101148458685211782044556787885880732421383294560575373426359388718047493376585556862728424094817925179125108516701320090906979707177395465621556182384309857326477442539453894519550325117623986063254589264157797666702037016532606234989064701064361493195164319865136859957742205750694229941624561931598486493455880801550446793336522782058327629326047029006906855977548552677722660017665363618578137043111043760119582702284484343789447624195560970359922716932822873383761139666833175632942810551699705599259474298518826230134368600116561715868649353720797763102919782822009543483574519139005072493474204054257816248876911868864217735671633506750772149754266247923004922740767089899388344822276220678276291639520481876202073843113170112624727901969663023676953621876688151775300807345026145160915584512256519306592084638224471379319435442941642650590344163859600565333161723983905856876207515353922170634689474834933290878606695775566899319988572371007265487084420359722692657066070168747718747965742892084841939917123527405886571428970165499098003717431924450141166373015792817743183384006661651842574402539560434957519947262661606059724821221804167857794262742343660327909906200205980834855052139156007987760921520466360466731166325597471547108198621974775487372698640000456126696235489305028159361099911406925668886601795211769448340920201397982809825654348525957386710803388256062044743894235185888018849679470550903306968949905051641498525852358189142659407753036243681773151810048892450834118954518532481706629897331342095483074324829978211777771401701349862007520823035206389738965813928957386444286010859885862692402551230463312072911371749567807268559610918679694683539875787676773894653177483165970537324667798246389648373909152472115474928337185669941538263198094623573840610739013806461460546326266021003838282941143729499297748837783460784365535272989480136681197709713175953056363291607699747747503045108334191230631013138650223891972093711143449835552857304722860945809105865019072570163746048008545730382174656037200502499983014937688373744379359389989925604626030335195427689672703485387124932554230700585448346577542964595076179568581890280193100927139149071973742197125589095397190417988778210405978904732137321764700989990504181839354922746955892202981300603454555327018872928785098230796713982183913201622694364187472821520833482177337186981312210822860210683070148608893349427738998657547161196924109139874940671815810221194566468479718857751323635247750090834183369218333292703851393767403763209545006507661553785251040340140659866984159803402760962192394598159918328924846359101551065110574231333192295184029374984580370291286118354397759662507895739510972700964789460341430736586280060974826761995329655161134750369980958555761308670114934687297112432136850162792806180986415758377359193024925503470505510464513092500999502082497762655445529108561290016314727244383709264268386932036794824667267863250921676627517401863226885674109165599847320538910335221859439493016638633534103603146464545095799801766399549086707088230223036689717337992128981696074856877859087404572850250149903096004298871334013668297275103082223997789595678810165148746167493265891930891161756928750076065209591146550765627379684618392512527265410004665637341164658750177465107669646635100538317616106882273287855918048389857364995820620018193982848336226922374811857563539037753959667606973110374435604788166748862676014648191526024112591292879915657358126160551655704817318289924886316822480761900249658106632147561061940394097647088869356443168303315410313772261388148557077159384534384845277745029146465620819949802896590644057661248777696408224551385259883420357737906701044986901931507285148170279622665423231781461673324184393233693753653773629850705057677184389130026676938774787298474185050134506730209361634609437369584910621461305728110811038814114174162485635419486587182108528097171949623723846839243397717471055249104588061707371189967781035039600822616065633101154735804796387612218747321914146949107641266546911399930648637464852902629704121045849747107169191058135802630423150917257304533692163653146998997586660094594893976879992446624238175573838829455276081739413214170346736683430066974756958976681582296086263735710016772890074267594282051498235176279494143742803979175337613249164991042129103231522867438060052591647069563487882609050332128068198322441414455397394809729472036076873785816391554448485347181254623930593850363257867823261996601393940447125157542976179632633156932138867900360636907580296890536491961152503720888852633085839096836804110083715138169718625779131433527006660473869821554777577298323241591614503107125805323335898446143647755504814871569920622687818555758463544689851561972642332547563513340212811270585436395207162752888117103216061411436358607309624090975927866955219140646804257025298739387148075067866589592335760620035805164959561386014137460151722882041207188936080754075132929687426890454459543090870092424285106507742014885428408883002288141798214181563677599821428247977486462882878453504605486867894480410281012949357420104241012750677720531451919625690907775956777199243381797831697278381491280675395181695338270033504986710874540896344497514246070361073395005611958782435328017924188372095562509773509620480860892858025883401605213043405583677305104701615515842324078170066521591023230647922941257352896659966739582435197128317928418008767364073257893371112564851825382431035183004451028945711525155647444053788828750273013526028871350992732431174435768660842314783515519389572714318240541738914903983698681143073214787377569004398981745309159999722063564735497208065059450678217332629880009173933282118918294986005570323107618110114218785386156154988482539104130098097127967724114903728335725016216394984261606723034404229799799080058031471173130502530567033695393679028031721556733684457550208793101195468032289009080042950620730869183069414959107694141971843595287178769730667270785600334356776364911121753910605676902620859038839170656814826329702055922716646779825189120463331899261677722889458760757109250328832482768472688696051102222805692069134338918233339809105426725434803704896902528648986311978837419737990916787647295426064591198617479662143544563555088310229174451087460622209767372459225251218341860779224980958090641702505000393115440706175039577782393047955151330048264709749824015175093614191416031638243004570685925310586258064395210926885051371133157102787021380468265831405472143714276784534245308905115375644995424236356762364705626448249822587511455165907783144667400464531835714056472852860276151597330681851460735136428410597154122269792484839284694570756992559760764173954631845706063885764450529016728548379152036041115641891022877474705775629647942740161740258013534624802851572644477678673629585509929150386170437291820513098978502882086372951462104359414492212725498401048350969947496082901090525507616351732165586834577600871899401193279989445331844562387213805471058096221165923010985845589395082428994758850827688878624618096650848821285618672448852148834519368498178672147950587979134639837033641645098702425105585501357894779295561038547691780910742533001619171937019770631656407082553170831984399038017289494058494209724870285226052330550767622630877870424492254007555649856034571296415593938737178012263173493375288350581245063434887925392672754601084504494155719721342886853228383456476968504974178630758613053961883453304303248109424379702162410808468794575672719195677688230287781239997954495524497541629866817469523891712937353138002539081550095855199856450323535485969186182336785627417356318263426955602231861031616544285837069648850213819589820112147535102888594780295820065607463904659658557796580973785092963281672784343400622998538073108853118388472591864345489510641070967675467381821968111072620823829340962278093194485705333722145660793886945758129858037589765633729385299385912601175827150394577702597441333613012378960801304009570036009270811297815791983686634501168314644015554769139776680835634133562976030202600890686344051010792453666244087886073746935509057580280789253948232348557166454980503540557003216036742593817226495404713229067396447610897571837680325732666918473692150706104795028494015858928963363774236505711936233701503666640877532592696963803958370070662176942790873425282635305895090531849760837102370396403544637815747796128596122376132651132603354842936073460515783570988961311811339003609462093057826968498171606149151437012815746669346696145182131960075862082441838755567329828466846231954481102646656739224834537101007170022492156938990563889378610770233392261670400903637137350955310880253209629315657389495945369272145734597304240708109043442840815225874006411615200010220275831724557601649423581134296931895656982572484102484243738320334247071026725020003734570307848871663914579342729299315528506221987084946225164397537081303463542098850724319689928083196094865317469532233746732022438007114382031815352000481258026317165140368150988617061443250557723312877699557106933078063941727473143021251930857526560050076937020932701591721387381670962342563273999892171516711624712390438406190633361222776948642571846609681519667965716469826574419040485439460800321423869648050972389381344392962526481332844152401674095153821616758006381621332580511749909891617105566741132465311247539393863982173139487613253952860819577637035228503415099519432132772136506369207272997602103901451337894268016588459307533968192910571696592715078218778958318789807780608469194625518386724938302060555060724093671189494852087322577037647597442274186236082956073147473930573643780927094663963231943727898141851784306173751226689263943525522505855200002073110450811736548828017037467221848594965920065070375476633183147582164656950669384790529930755221084907591018215779471401202090564996533518035737657250695164090723472803536949359344987743327176065933496922863946122785008517522219942327392326941359921440579458735947809990013409037917029684446250426579099450856305875445720828402397813326720870010744879520643225528571572302664201596793460753567321338666174576206015604664109042542280991346534528626892864178658473994369437220460364995094601093770962740228074719008180337723802674251806034608783112617859302536502754737989728985483613928944045002419307850297464993047999266309536457936500430585030128213862818576853647099862255776988904357742851054240418213673368846533081954220598315668529263377587617942650320212169185792765683251688431600580778017976261310838962372294265624738411473612942596509212132549525545125500306144366896156837285536154024428159807392727718184685200968804164829032752939883487322924335552197943022848752738290414516140901142149265640842671575025753946613729748478433465015703385663782570894244320540404068490644016594604706934993669706485600426014233713901678531468762949650075137329594579155535233457619289416701344429485598124495566798727441251768084368284048056007953591173427065467706035925804422841841594497279535330100601454023626218211841388270219860318970951548614746831578673859838387023061842365156238037225287765762001386196889433201391814141618267338986323213450103773546767368352013010452147252447527772105718476995093239788106848347352058184212478614402462593813552246347455277992938140848867155355545278501410505777674778223758051868076203585867532723908736367144818746163085015767719534111438523294879751624228095060193910690140718744567927910155851241042943955577620807593612968468124106978729771995681909761974514424935395837679065231966134270667668271068320085617504519184335882865185420029408397617965367430236782791800038334698688754782067025487216943758745507370201178758727954126316200775104498270566040798861218913065055406743075396963770414907240397271567515776356250233329983461175228036015575978575806056647389675740582613163658385537320019970195639525052262553514284167123101837029143899912963601898129904977568706178908299559554008075707723349245671195564454634134687980822057957828537327629792622476430838140413899879406579230783805164562033023244770711340036048719587521077705269944396400893214292537993125728224999540491126866357585435668582285975020693967657930321404608665298601584135444667761264952187392311762835589041565305753661568577032225198206052687806914316402217083063651481444864293034723132172424067004064628938749648221186597810748554123278742666136918740183501488710089757525373571071973265876445719193738867633366964982695135362424732735089977667078566693467912460789357325842934654775002700962224773628922030135114456865145609022526294065971569333108703545248756120248924679684609816339313007390166129954011326224864107115437503063930151547329461739019783439873619630811739313609335094531408549048627012344189553293683532822589028869296141403594957889930665968743480633081729002916703896486816897232500369352944143938524090435465949186688606437318812278937240524545692901364288697764659730809363005587716327143923414456474681719194607437394297491959817647732673484166897038864499121911975491853275357837642617678183358195358966006500149171949122477779383062720101931702725959686644105742302093213100358249035604527784547926389388955616915891154248156536735084306918132214490715929751256255585342686098456902027972882322203037969171788719925064636258134596116417844297190228864389422609344797362332575242024803672653567348526608680699977070194869979467067634582499632111426990349717779882851573246098551009575062020141123042676023360973924443157821071861762393128002467351187360198923136114774052405549484393593555894636390932106555603302321748445524839242073562940736892136488684279556957418559216628376306301007120383621447607325741882988082828242482546162372107933310864145106285214822919698972539057074172142352625391807374467017640213232150343677612296899521443355773523743735237942819832762823757525001608837293403361446382861000927826448316452275195450165063398677271471229322577357479596875677697427626125406485602713710778255578490567834547138303123046786555734584407004390647526409107148687084997112785466545028060551692824588884510787008037797549644898631000903550451960905067729381717568098404939255436554561665442926606163947857953571219069981181455598583257700121057026001442719551253674458315723382663020264484216711362408954974396842844257299147028686828288702132279000786539830450708676948541224715282148406311658326425469346482428094879104638341976929028939787824453202641537911819089334904972978145397984237761602163050278795731263022347200367702173066842721716458908137444504061689778718594373958043707289882726300110855768264021242382374863623155625188222714547070527390948232376369614872771015868916090079736386281362803045331824209147174941051307236588574191655703583079605968373532392177965221885833064375052795193756865634292068200293595515750869896076480236848964429086466861543421594775464978122400789861941528091305066200002399609113351060730070707352026197944411239090898821346690786448899436606139973679270821466267854774452506063705749226797531805059289294344411013449207840295247367234274989273279048597933929248326619506734268498692831376877468805158733034230141035636556206753076115221834050173705389980485831516904818546992889489827248687395993275678181392879681653245132641814975166915628334513261561360957230758260816910571659868589831471550135162354468042868402684895398562334828303701430230764452910773703760421006287382864339984460014679695551991827060874430030008635145181504124560542513485373010740912924374642088819834697778836676600398817638800521516621343306965891944354671873461974059049607516265755247836794769998518046027878836480563507645385013893845998964921910700219088094696862528132715599536297527352785944074215428600619702945848014767527785102501277388564769776430467966149895409706998562268815124757288430186530726247117634531041048689259226495630982620611356549367548302830501736110240604003967903634924195576574474740194060293131502844472359543580941124018967857878839410844833611483524156687867800025765190407089869246519929388229826864420752890697407321396182266120913441889257020526764397135998520813480043843444014140198682056257125960166216301089473100535577503445418092498442611944201780224649528934049143013988379267228890086941082825606554016485983029353753629048531313972702469840506117131590419415165330095677670336021593692025793125848370400191565712065428147336206669854642081173112559812563862543117815122176890404215077553921390465439446153915826866015143516660652713209288383968920330223586072530416092296263924526144528248076560600086426259499385939375286167385921019171822103169380917493285676604137262318539846790028585398614106653889766940602800983474581252857783009762877748795974747410169405811035057018716215093805977163923931020357243906784889430742575377337434140540210547239279525668199625794707792331136145948411022899023886183020314304845823847565301576938277092606603342756310620650244068632482024718851950861770400551418972046488814387268698877224153929498243930093554734626395524703670380595318079435961600097632558037696488889329705535019985772066638405422159819638754621291267131382022897149184326283317989189946995111650458604287937590215631385212659733202314484960086301413154685922259882443099259162000397468650889395755434603015938398977321026154132077094902190583607107658867239952739781507059855249389742587151658325162272707830033785517160044201979978333407293417549308823684330994906677310862562800351212615473735531895070283687257594162128561993013393336849049153972443801335620415861158832037973541894091220101530187829140099093458000032768489616750418360962597420264343438346848331961737628939374314088604637029957657471544958609350846830881409067319920851375248386085748926264386243584700825984411727261164246010579302800297124103555212402540093245119972727740744086737632538484800690065570856048127722816634116342214037907215032695111594383329552904941776390890145421465143848364694728038797093395405494788172179770551858023185081912150995112503224896260622710590939321334478689216784153029545450391950649109673653399778646135641606592214447422523863448337831450696225578139630744713969992777977504322141714894074587294762677691955602870882430129238639771608226044710210214791511502720354612816654357389614740980408816700690072556472127592914004045353375376776152242501831643140413252988495287157392030652085798921623018140417057502956838461017849043497912274024923745401612215614676716728840666033718307680864961507460762750726936666619517337160615689970353062376274880975454138586406819799777778357110919732943769753364364276131324780481770000416324503796998022535015714989764594100525279125575597835126589517930428557305178292376062181865835476039827708535782345046917143510300752397019009971455429425165250132250500451459185062974421583519436766885187227076413409062649917753448855728299379819903706197148673840104265037686650739189442354295144956611703350529778091597559458293040663042394317736383967198730870475563083660607758394817894717754511446564589892488819189914069346654038780916163649126831052277683008094088317663688603697092326062341184730885882637948870408250092807996216058382786318271220139941575138248625092940044761648200987078465246804278986419692289196235321449183876440464987253774072941166007896421698534051987836977126454660086663728881175078892771074566415432118061274138657159331141840092754012219443782663159861733897030763555650845203111395472944873352096598949806185393954129262550574829416475879997798855988796139843779828545488354723706328443584852653967388879682272641409088526114765039905343330161975001327025595011731154519791572565886584476489444956720087581629385917883001066542195374044362357591737110197208292152652993601924525125039877542245127759325593105764885073743752846090846485497405602600172771618073185982570561898769630576125834355123031499466260482522380567644641585169199213902557026383545381223604154507893841460465782522932859155756172637332922605371420650678912474640962387632175367442982998309276561694291918259627688840322778357896309394346130294841394442889532549456739552254911094167615980346951004220730259309046358172938381705997212330520727324511473988004127524211573308416811275580929792484321100594925413777525279218485158519446707514159500894480747871357970259789504565955058954745619338271409229067941005460313539278315844741640897515177823890752013561749481300774189914160503286626233522129575408573816763951029068025781013848073849246939071923869845257251049553563323622738524009154474934703799265072608675411959485034553042548837255008974378674091781625867945211485688271440997639248579498078408188399561531233517601041067125545472316970442559495842378668617444808314726938917033342987650031474763250734574703899135992212089148604462640302952596298648401930145908334174174017169795569260871825680314341366850991373309198578295067810336617778550239284041468814223276418074457588339317639685638157077998857158770218468915846353353538053665085564438392609358560449415596431949517028824862350576902178962741441718594892173804233618130051723098666704240929806334469839589073260093373481527493261488587044670259833262720411213144127460575706202270361311220670570425509228150925114476720112381632229469877299711437675933679995305496963811002269946266424010440594172182803423510405439724528418612270554917656354577525634594889267232794625557302036265662494233274085145270733956954517678676717055543465724940719168213789244552005080318099679487842781448201572000506850475620660594612028558711772863773102673824322766637330375445476388878970720512703211122499332883415673409166148716942006238363496944921074851405104686029702460410613964851201609873020736829708109929376414927786461966283421339486637617209673591549738987514230547092567080027625372972142137567711784558414889507012443780949617965583709768465810811150707097503005224728349227347054062857697996357662206369193725853207388844272369614050891259173407344016062476170549424315961667690669989890319929406892056634280673957623191286358412401314356908300418189107998168627736546713301266901323098354849834880156540324750109631611455000289140551442859144530447739027048722383607617719220346462691845570238229610219881077636102884265582581110244800403836182869877423907359527694868063964291440548673109365429245787435322622748540462056765093483504894534241911290572591852081336303216164330333182984283484072968202517269721728838912137268405905842282314072872103096694081503384487627414837231133883194835230840786851305764694517308308426498612723969755583073522707351485533485537909309396266181748147833588066650998058338274795696646796938014648575469662520185678774647635227206533806184208436235981138713242759258940651334006529255517366488261235886960440564121373273052693172543997029906921718164227292124895968511026736695832970898006169967872002034640383593103380897574060414649624892864894566332421510621543526428155886420698415508157540533064240611068674870327070810171256900222197419002873707107164792307456185554570659538480390293007120880245070605050824741219579450569222577715287927634767682936937224840537574910063564942497132613455367951896745448517474382949679582420885656151992532632828879859117509092843099269757299676505609801217436477640619443352382829218616189977100136130901403203430960193222885814700423745259030980254918818698338189408867035492976774718043507952954273592001176095470297884181460654713947714492032498927487402866685415449836341230401698732549566818677577599460899244741120199837731590868731992546564342435815489707310631825631354835958855417219552735189151502079232885910424433355510912024003389530406812633327767046698646618494897761676488836956860627600407536940565226935013715224754769724921222048723867250137134003003143996862120503486953609645738923306530121430957044474040435349640497347778677066885506532010142016902387115997831624753353697146628681033382317719351768734275031320654340504640545854170078465085584528372328625037385904750217240089504412292368276505580783520680003854514890363623153860971698034595849602883101069451593089023635060124742925577992461397293877882282109799507702634043027998013539253470729365605564057345893028000682637014249124591557360832602030554355625673239253110932713087457076578809779076716351957936118112846371750587117102130366992472369351037123709417523703322153557218909121928154367914106660267182467528811089773150223766881613983633795467402455644405395123747173834387033748957730619411704705076671448139388666911498655709736394949228467083996153589588401590545459375358694054868316811838487161714187248275781391730570597862887304487757138268795782134586402834581724570752527879697051827137103294937318411876426887121864791618502989600809619879939251867127861678755091387603183523781224376937162074221627893814635145111038707496220374835549720797760546373642072372066497175559098159566990856596486479689063031367670275517715382372155491845903273166796555428903752135379509189339370370542031394746702268220009342046276018373175610853954115180977188879867670836318438059152436445029590866673717555506266401643118643724657938209125573620157149327458403720706180428158379267398469296941022305915312917307394402391817577788704558668766251380694107500515756323125343108495487287323757247870423670712987346484584876636817984596883847431913581047518915221795512514187559937542036399319756837036060641488213366881553664779994577362468414308326173439293820316640763100168527366547198353452140571126220381947276644496089401030893730269741699544960928578220520595016121779028844402242005847767053071185753889619417275573006310445163915764634329370965041629784813292426293153394230988233901762651643390756380870721909238949524925505739901160457872279765449740875561645952117558219790175482531927960647849121762720484537770168399199823132497928648618639758862667602135270650133097557476439742581592757236279583151695744348590151640137021156772160194416424355912302581810227470394091472261651480527112610359008802148584389403411941990454329511803242174970236871161057303893051657781389512880845619925966655300029421506384768853502384124678456914481933999307537101673455592170656760468411061089034427764118512157931654935708813835322229189545138057287421663386277645435096435098441267494899545964973940871270885119383802115530382076847098855881228697148313253439904489072025884402526694352220988591008021884426560584333898599515661495577593431602505407109232659994497760951351803555898842288092543694169141301630569154425435972696829712309481510781990381647202264100196679936742711706992799002417383837879647726362910452992950905311057371403542885334380684366170689646529724902900207827614092289441231904446109646244476896212556359399088622161185234365629046287914603014112734975365481051987673826069624013678711454162385690510102713163136273110790471887442069588323930554861469996032267871754885572126816924796012708123367635907175805337731915408479830731328370944293303911259413394491412683963668387585836539826671613793871963128742585754608918852382207498111198969909776114950152034062483321064916490746072187093243216996127325879399391655413291756414233297730622978583231764545602758934310591033743660518625672002463508662441097031911495543085636060482172140440767121594231210521499261083671105579459856960521873287680906342415873125812885032785926444601274906417649990314997951283045081565248316801288761349429473241404650020618827448731993260431060649879063167423188880989703897472030189247102198586471933880084723938366085807695602997034408786679188372321672513672085911175459377677917348553330541779087545234116737205343014740641614873664487889088237881848211211635199336179830361777213953512613628874447472505414790111291459405347391738270370073343620053500572401928684879642762875204340422641401109795770717170909003891410764873708390548835274227301688869196243513726795457163910484589934096025730793716182293193556556937637307496818454375600607736958306117437036747555900259940502858626852211282692638334775491685367722863893817615072123950863200542764442988218747960719218196265835165750918765033895469476792361398932941287252974690800087222781890477323508872405032403539202562919680699308600701055909752745490269614177621197750928679200313292907576184781744453873705209180735627634276657680746384564352872886973059757317254228196846773212800682025368954756918131985689552139937438942920504702889305595484261271080784010719672343044278076107395560032197242656727735383749758165825809356921351208163684804153448179287889990116533087019263388502595236471532349031144101604308286284759570652031626150964919588378592130650778281482071423967706605755314165381139595492898289402971669784377395452718795955216045472461740684137441874688590537670264468633089074684311201907437372579975887540170837442743686771902876334592128544656541217545480044703118234531959634230113078355567988117195100345181134245631563010281160571720759962890562578916175453122472392950271452616191048737903319629593619696726717567914743116443068031283312207367413294717227861308404543150180620213126387908019173955544765752134354903051396629788131836492244155324039536584813016210763288474892104209453072248699449120999486638454103602166138943245314952457922549810601562957297299581980671841364213011544710992604139317280307250434534746981861327946115895903855102416715197787906047087301015681198872199996864388307813074399255232211650265568001081237717537730383186245667521930704791277160168366864133510286523500235794258771058717956218986613299445246892437240227917300500569943916799448846714367517563919951730728504696613413100630485821512649591718707707574496052583233297946065696958255257043272252559469964194727471406573275108219465954680783765683951680204383896049136702396508449971554291486671748247186986667720017931439189655557885551964756719798933188524385399302786612158932795985156518550899323730232504218477889125812039124477495422333126217043230762605578589923868837729619433147755931725326449700765908476462506076466331907942788780911934674384876135906948813654283122294305524829813329527336277525776750665699147670461002265952278546033214496814197895181720294295175401475232187851228704567970406957891900676523697919586839291013520200719315579086359708855816445942849416205801243388617704456447945455510355558512148701048307034128358755806775694221429054141840609142652609462368463386699560054914465972205005545118138739406156819305559615349740706879681527445357179651752452373457125462536607356430190109907170241722862283535449813671705592684610815549710326590100803035361100841257820994324482464396537462332316026461065599381664249739081805231257872742940414888191046609416838396802740986132359938839176818885499115343463662946660719935625203460564305432297041840779738732249043846983205790868641074488892144672988028287527269517707903145499182226544287345673687960998857321966155807659434423069879426040391941623529935916220648218593077659274232937268050890447123445755614468542122242924788357435961938534767623836072705090696201916950182347374525970265099424817552062799388352096040432112378331660851669662848467811410444506310821314367398023510557045908469870066790405970195839826400007811184549396269267448569834732599074557380363146315178242160816507229830078273865648634359442618319841926833489247272662250089131466870292397480321398799848539523744228472892436007068167334554672041338208249460987365182507954818624657246075255137732598307132434357608620653763606837847287367517048662986963284971241443503512727448518498582286086780616964060517129052370661354481579237621235821157251108921124395791137836652883269652834544767696681221956555023876741710361753414004396922893171212852017494728573068513113303819720221219667180977151767935235133915101686004629581562992827253855104480865293372473872871964746220479461220530505645956211998287034229177632316537317161619291931190610891460322953035853393750986661838364797263712974622696926692027980447194113946047864314572372098793599360601552558124194704452050824961339663105500985857345055954416720369004536723760656509611817934376214836748128217490370100497428461472836549112096895464772560359408349263312902887277841407197936785948698932774808852937261313580476032369799066408733119865735675060233924836157267267255956879045059708459047972348345019439709232529232266085317398888707548138017860689985427856298029607672328585675668791598489059011819872090252671870262294072091055384712339814448532683184522929078181079082952774348331637623707569093458473080437415098959023830477142907019009348958081780923369936130678546771972070995422818501160833992334453654791224244324502055376153503313634011156306699634438284249346744927236411330024467835817234139658168346196637144541402991469983783911148727288412853969378788952374998860064439553684397585821406019956010712925680286802627637109908811480431679703131307391595186337519740988164533774133138247393124565283898092762754764049988566541053169170455327062787559429219547249925502133584841212485697861706171212197988385077665372103655563432778049290289509145785431490435161405701529195155639873353444599053974805410390387220476441332547271750806751747944063506540175373822518141955712697807939640623507444888704628544366426680019731123804980869512024163788368939367851458375433504502768919291325998851875710230813205715055640460409831748297768885823219995212769156192937938634591281843770023540045471878489012990192046355454297930162901883793198313940665000583471348313505848905172631170698247672397218885048943644042304175830446207258172900429930090529140529174485609582827260264789005422263939146726438056914773813186712748024523080745111508763610785829174184022062291606108774254724315124627338307351300570813803936298709896110240189514284633974881674703499458334435481726673350590739316665431164969803543501316248612020715838325828429432740407842815686839277159070849760644417637090643674980220127130566442568088647629545759916761409427560142727412410297574013590257717972929609170884873278728326828041724279511355530636630688675862264149092306313402891943232503481668561287804173586488328973946954697812911374762051709417496692978558123331906514846901767306331457551374586036254197997812056432362549019287883826507895990084932871770602422428826975116768734151874550199078431659494250882846122594846987702964243659011930940352060642509216937997091342007772547640974051091898526926387537052099519284567549144342759138242266306229798726582557463730594269776555039893618300565174405460206374982467301293849018604809448293308369518228734034806285668967315374298785783652933354592248758578749153162270144237774677228335784941421436804823373738921854826906078107737245754282583634918545881475821804000679218518893333619352948904539978668289181071533237491279577232545153009221789432821984998517985177458740044390986009227614094454153418556146245856011340763951480006849897611345747470977155263274945603464760775533185959952235780662435573150080108681515685358382859496932146064891293684909305945175474213879881977270668831785502464998471495673430514818576001330212030966732962484956423323354959327614235845889622240202860551160070005284536787935327664900157866690670556686177532608077763939629559238429805682834106931969092153259475633611137561931519615432414648596671615607637347797739153751699995203850245182124967976551432045347910322361901253521760931161527510922821778886003409202451358183906374923114916849746164076351912466299808834591552754122217993552469780328671624702665939378958163340631658914009001477845271391414349506831532831880584308470677079701928707853851964279101518482627939947254338522354282261529207528851914228040310560504867305785955848534742795113491092796211495966424559814273278865137013372638554538590869798702108809253031451949858551620660819992261838986580789196812782522079457779597576538738847459590053761756548605937532946400984122445313889244003660234908859057591378624513743015298398486240716339069006576255339879417498468357441170486328834478208599585138741909558629500094550663730619450106517105267796645022112901243990841765337474179278280778482538933925166367817247498750413939412614151586643581172702420547992720749681042614700522283105940489696522052120307864091683820427282115841377792986182753552941740396500304060952909124138159094238701959883971593436977922517170284268895623753511062988756014314069636828838606996581744854899507954587018005611235183298100094276595752508091922195604036045385768332246406646939609775979149768764797957295195069523904467141311134940135997128267806327333309563068875377200139711042955551476004261334033124467125871320488229835742946721921145688984326942013487908357070007801354007030829373442681268278644529477807171093317822613620988331630615096587803814928345572852215939977315094917581745152572585142775234240016982434898866466464119796094448756358023688758530139640697044767351346222673572500176124210353946639702436679066753885983057330969747639130585100748311276385869780978252795187446553376583795011295395093106551363424533258086173079850358762078264902263809915726008263438866101535488446828752941979941681222806099485364686741941404417554025343409489296210327767308351267410917383842072764064075558286852603436740043861791635538401580040151295263243137813583586685410779506202149408433445708541809453331108749470690283934286222464051924228310723160723912024538697071172536555361203198952933673107082277024048198866303194514395581350332009875510886721266009856876858738265379243217573536980568794508436769450379114204903802224798474725901981630695090675682740873147237803184040032057322090231124804013161370913058516191552258544540383247572697903392320000277381613277763495234478738300416787580676579377009220279350365788021280476087144182204562351518120288851228657559554202945618333281448069427311241837869378805133283062261690318754114171787640727691421062275653635604355717614234517100712842078817357526673460168344011112138377928275051771174691785575772428960770215729143140355798292197690111261169250276188272578424355486375188896836654281925769028147365216956820404371220215999232577905991438729851540879945697539025438451505141740121004696818650390207425506172028358964883563250226425929174543202426939311424369386419776770873573880592000404234621689251222356870429416719869929038111103578654006280866502252890825067288604441580119891839575988992868935638789491966108806559135896175180709758480885900163352549046089325140982623719883023977342453678804553773366799879896885364669645649124844741066478289227603002107027002404803450526732742400558427588399492763817318659738192997329423008424063559201073545057741355655505994287588117755630199944323725835181285396144000220356514961709906341841999725016600205090939401029987194695116688425925770542696028373666153468684975078407844746042240833649622205941315740794466879856474181791607467923001261766320393746143789350436007889224527678478017944205148550447829401894035851040599987989119986104297848668081080941824237561400915546849114900707269321510196923624398478338197708818942300113925039261551425061967429778300253588810778386620949313516797464240552314439279061497288033879289886991032478232977765805166012376201693489405165998413198018430961216555756493584375581841355655674604808002425359792064816545825257833481551301023900565826911096596333385956619227729969150953802316242472020731138143172701273633611583546337515429360760751713449151043212969557270661360868150642521619792267075080516341997470074613734596031048062767431215056188221797958288986315380220224612317736975515953657374805354897342203742413006024244667509043503733413277035245280124465373203012300603973009610780818117758687163239469047566791584124168658989998925972013070042987587279681311359206215050967239255294593415733875160304210198671943693172924497348414513293199249835152694579056819374592592176553447953775274093386158384743088690568887914276996027795588315244865916449596240653422362297416690428196477460374836402829321821774766559922745358725499270231769153517251135760283811688301775560758531550633081330271998681057789941645453024541740802750594931459783749187321600352413940300712240815658238598799464764551925757465777234005533063650403250895656039073234271335630459798502400635310543442286735243935084466474420715880712803324042895610941788662908160995454691405785814867144471053521760181064304168636089214300032064221511572732879977253701902838184643984250873294847886546360659238036059015120311856599072155686338616811246234190131501527210321059070941357411034117504407384725914535030861502844321307647427768274943141521054897115766178531460422811344160651424782668856582964603482557911812664769328499383370788158543137543414175703785366206147220283878267493888177105180424886454179857201769208809739435307125112215641052704719113016434574032561281044664052610631123813758082935636256096027173537754120611041348424321043165413096422003273971766599084502540531722616312879313503878341706700782595861779448216659284472764543331004942935437246616109712272570985860500319992171755699682174071803972966782849698937959481553082723941944960180971606176330625931180937378184711933636752943327025331762535820876641322492011964328373892140047398817487866514531402481506841527916555241529794109139381169999563975360555843422001982857771274499879246830206478429302697254917410948967059447418237034114594665519379483467494168932351061972732352539656549125750600749075819948865556722066868337017869930150919455749524236404748859919068221104661960231405881955990162795052871019911118707267620378446748436687861306703201736070027559179427909979148419528280915979765818718728617817878180954080352984321801771620858859332734289829646788014812526378814620899754036603354869364518713296018787908136334886498247219482627436201436218287885958149165188428882878493423301269159901248439208103835941311101454846075185816248647766246437145799085230181703362808846640877615288502302916826389986761236362160220518605394252912631677351606269845646881952341594340181438512616272834880809778735528607603289180431077992766930727934151754456885584194128453113585896160368456215277662806537771944001846126335909136588762967267601319794522135084651247151500407818405996809042664055133090227137640125477509114878947065811980851742377855731286156880456484720877773793913651191102552080158781104465104614642537982261582542973237748505631794491380722562231770241560260732811957075549898183821713772937721469166845697263715633912789495640377177052345308000926905480824443504098610135766408842261298451269775268928348441145405528853655573073788812286516030009301096799970804045132894392050466267497357880824600317456594445150561735635087599965323689539579376660359148514229929664386092536887577650015984911157872776545213549610349498004024876422370461280207523480059515639870732077575328643728433664802619512079716213353957100254464959183479641028271166476868226291839846175050685852657457301272029072034962118453522631517499013467609934903037291938137757321652881402177432195218834264761158511981913410954447517420194498298906877263528118247287670195954069861481507034033168784517621715046017464954202007953856257135334428384104523857933118285130077560485909524346193986322957367992590149925708434590495615451229266982788190782199966433750764779666125168137018553821970351334789843662730031633154652116402173918664380829338798851154045330872529710831707575563204089737431983719526684706324086502829377367265075702667477238884487199065285057192708161478398463677341714336630870475381145603338957499871155964948930682718964074197962045462870230868512966661813928860235473534419964190674326650513454585513471649667114103265588817270624986390511895833540338900019468533405623007661496803764388101402131467711738103132553504619727218269292835809888468824736637964939276932570111355865610667954535491998110475892424488429582502766786005162096608204508903183798360985272325877200297901467352609204195215843735949161450020091792541680502109507932780535757823296907920704659633370767524014456080537088856410001859303569170874716027995807120461069119360764720254728514700726185817124288924590888091550383779097349283483936060591462637102885008327580331302244194641298698936001654393669917315571315205263231435556955161132357695444552750286453177554509098612050157085866431280236875207419624153635181419072038326655971441653995472991681743938331441426436921891244704961020529905366015909801065452708791165705071365548030238177372672784000754101071375432384482936023552517684042656808172498385733785574136186088792417874106779723032662586718515264922514017830974416680044279074842727051734578293535896689186213708705546455413612745605889522101422582964331417357635743327096301869542085868814361331312180994257722774608739476511407354541998759110834673631603301028716623084440342552702077606056221235322641553904235667413570011046614178894970433812532882360476013916351524280339396573399992762683761745297958898604588647422136277069582662472092669548973369685730939303913359266330220221599788191649133283999912264308633499341075515013815803643462448803765096031283831520650977161014310272235274462018467857681902819555279123583653880030065765171484132124510510225172233073280861752896753762783228894326043143365870760895433646598645027677918621823815830758105888141756221726525997596023562792093724877210517578335253459322431311747729044729159270278581811367007776142477590150582930118613276505950433603171705370979544295763387268269567523500873756750770179294530727649347413267674321866085452544310436065415759560726535405206275979765921277888212696267104882783332475580645069562534278242398528250984446065242982481259800407821232230004119678182356888644349575159137368062916010298460223131998322938978927486951488865566049396261446003402569384867329354376349073623972275320822101218389486190483553863714312524941661768657535842382277844779726022233217133037131742933254780202800393006424193881087396819499903407113696296267904478350173986620189009306543355590068986244461711087348747144590874085113482962561409689628746860766593627037579908454729939649243781058732091873676665843739195954789287372161516974432599568267644663718027843397873913131142152050483995645679892190993045484632386956310538770656321921369961814060782835677026368414084415353619816328163001708809076741595114329557885933201700872357055625709608049816937672668088768617777235100040362963438673688002365843522959979003912826270122200272647714030807695942354623774337215122847116272508215312376767277154725205611687481201510900770497514574862105224689924394956017583527293881055584164600588135776133963850126787437340140512401392624434952346424118589611660406655945104537563584973594243983733306393947181359204974774635090059877548016249627560687168504362225574430140999590454257758821850939344607237301904007345215609754216262759453790170229120982262571737493942546719861291428972243314935256998377178399566395741735095170860493713647954102665885712460392773248076786006951600388619668724546887736543820174639580918788092584819320675686557730473089676528316520713383036256511935243973322238693848188578561790599328431527620686095797865708953761545762877907071814725656267680737693939216955014552311307651996092519813043807073617854307066437359145237500017134916319836338245445270119443624483253291051248266029309873197083576661030396767201660329853099638699130112863803491317017704996198816140332533026910661221564006585267046905139839215053020892346711063406840316259358173767624586809877205756356960755697772810463840056556495327543967772060030218440164445156405942718289006118638842731008579340058249649624297012019945232796247343589949100493599421701632027829415645370245759469996523975942325911967143304187933886118780957116182768157547637589541287307098416083958663635274577215359684965551774907457572528761494522172344761390173955464557235081926335841507664840415879927189171764817936164729523605084406656393674493030803871952860557887518040587489664584372683923477262181464920833572171127825986720381142350445158841830386563319193154197086562788665995076947737498702653758257068774437453044970086121114748467284835759256724548518614038172379095080539363960209820898933303996708638123619338822513669733403792921541581005220892723118341586149201550654523853651947606211444884843215836689883030578657552211997075344875225568284711945039595384106902514080831923639252263318389050212349130294143487085472464303397551489415630508207631643743079423195541279178939974873234583778037770927662426895747366772578225590502813991632798198020181776584048614015144322114530519711056836885257541141165499797243056393834239156110514937407859622186885211973162357703050960284122914581022029747718338417354576211075768644109584299949025262187421319934321091135850779002155072135496900222388514785817096294171947505994268631489339140724588615333225221895095935462610229016598372364333213239946752196493900293242535639075362086724608615812931350831056784271363822033491230788398322881206165276480572032494830417038852938195403152312851347389219111532177439853031888612192138005562900582470567717820797593376960444678266458668871875386420201618015094693554365043462812483505548914845883958939227911493200476810412811608839339466034496319245096053236344942815657495804665145984385368030688367492810538932116030381591633357645885894549395670738097181215943934083233536946557678598550029138553478281106330377608177603271904483151206303278415136077235749886961239372518404231938521880834513513247787915311826853115740212869158722730408308836994985003074836719604415876939344315014626387306273210581898508356481228064922293000625191173671812043453072025914750790867829271499134270206468246710127432565929408409545510528298969858890561559943644307195635316383395144114203920766545028420211134167686920943054368325076729531200460938527332002288450097744030713589122754441721637749350326996147588913988781344346003061746016700390757646263282826313579817835720066179424565573068005008181522597591676325249570156964684304961395313838412447457088647327454007688767996834427190158441005946689887581675492202665517551350420157981810119116629842208129414017831279704051855846549158515684950405455572603381020156139962757468645185311514666242965399014038028915874047223168354839539592310270611412306865642197600475000628305577968920431673791350211276675233724785281384046468830114758334393469183125483549779350058483003783204167156128972197147994893798044876582021508390449360595512879930740067314673834362443621082151382060002383095773906305780279782897624490633457767507661264242756039737497279446496239104993216682994927902219853343338933054140116514843053078734704448391333871686462178815428885421336921222821787488143361390978076752303941378319048435990454056638584158134487414217833316661033094413145495180989138974745285660866484058774055094049320018237000077779311411477118789118136582028545937194369318594049749305281942111445686430179611152283504162619200319556796845017691544765248774834925357592548003313543330811277124513885345263157998359925215134400773149048937172950658290379411979111118044735496497653495448196436282194259634466893908524455159304371430548047901991967702271756726348460072202588030912043509365875220583808110776044128467400918572897166943780728413508146088506313068907783615127407225462875887551662879156584181429642788501420702123271466861591566773908452898490144245591508951071602012496800778421470730200843198302137004420421083672293435058876659046796286907590122809145970915001282375599794707317652379982667947041908599435371404465031390892903234986018371592281920901788092693532728617108570128597206777630470223953635715630202739828130693026822908834532556843390724429360925980432974688435339351423094431385914155734706273273000060154324976327034064065573697286378867076024129824568054020153746919755192345150169496057821427900312459124668572382707185952004295053587827612303874149678875463367375190371441979449645253486094460170787800893982853832958233193395216960527318592034969610735311799947737447090095753613833479774509518815075656368502068674694463012845297973270233383001487130057936533903628056324878016591297027219920922813733188230682952543484481044987638742704981663250720816325076306632933205268104938883810988273138988663280786236989833643728466162750125817891128299208612987351044777109880085146718449207512781625355819602983382836400619286177739095408483613810120328531874069839823156735428076645088312674143463204662731700906333710014870976575966215439297093894053019129353918992070330252353786783488329697091006488979271502534533573539714364235546763151644628241853332248273918754601309217068112252620598074946303606790745071060693823324633697268468400956647906166129694953310256209024801552859236881749202864668268036430798133086606433096815325521087826445652748889638229259699438381089660982706296374989344765550306207494297705715254364660658105352229332702365445500870459411542130048349221061936433879596522412940687004886222985316691506296618828726287259228599060010187893614394434474707503153801600296480062778213651513639716091134686043989412470780878458343081640752780866104834936086146091526154217363816243785701535140778295961653300613371337874545625413021662990601166340711513331988453483356352990194475207682033638162819986246465811766704364608722769105657717115995027568968963871501990515398829083814647883096488576269732394814760360555364291053177184891299299595829316447868776204457418386937331850438764831535104224696219353587600022214743661578774820632437835281001694698296123293232387624679071266152222847869009078258141410632378251143687393469942029356808923204138576865312225050560011134130808651402827709649165058261185470257410598430951992994725670765049722472252062421902776381750554945006345156542167824118719461933443075819221640200849356544512956712092391778787590430694697474554467437135917202647097946744095634201716114339196830985505824112571410205454918363282643778641630127021916639610302041325851860674777018847798992440925529164635718555450919511657603155730564283174717450602932750288619878581668395844801425635013359548057625185153254579180793974506948084600768240417798426157132265162289993402097308888984128334926202108540786902835527427273221531779967622567661252723590752300288309741603028202101554695830438990321520963691699720210373064265079238879961046475052508080748362254813938758902561889205098400598430190153576334792059727076402951452077888287502667998615416335899745559183786034819892945523947409234045764815866322704105277184644101788552772062605134544582157247465303176308959968771067451746792535180117303778645859101195202426533799808632220501283099410489520873696978920877999539954760446558472508372619561332109511329073561078193177768197168229272540731040772742305518559068520124884937887709705621653374734777165685972365966792577929897704291531798616416648716389104594794226306427648234082733041321010926766378219314762521981051121100608588423246503891180635268679544561228538999919843804057089119741744010961058338054085629903755388831479693564210852282513958833612835292247421047843905833512211189948821142204295263016831129134907132203030886802611376188043339157143622713534832823853890441327258773815849992792941691384895853285162761787408648931742022561498045276522422102314973134287638068687877838693684594186826881534925874016699879305516175119051612989968562181107842720042689919506464217953951207950442404064588348587742078529687237095634418644795388563301701489668245519522940777991418273661654182999200836046094980816520295186035402745965901279696362039618594922329670407411088009184954052783847543940043709219129563265126361210071099321974559727505870073202979630605461863876225812661680141362110347697527181299603960638039161198996394101117925570852500763697855925740509403833716247065630438667240608932481366151552469623465805976961222457533388857926045546807918499470392867204723101874078855747651642717347306083015736347663455526679451120876090313753642290498731783773010273912810376422797458435223292753604602319810628192068592067753887073206127759437693529323424300669427845552990058066291250029739043606819650138232433632471749775787408856249086270521977219584763816266178408222353784583480101914712079929628881116542958394024751657322235198541267508562786165491028993918286773640489740208839040777854424463128264952976536870836687986609009681083115427954298494955673834936763620796667133523271678300949436390337872778878021990518590954751355143509831739590193715168769821566854816895000530415817917062161063183709409601733600411740728689745649922033923958918377402872752679293710488414558630956662013023077545567284705411016185754751521378440229132380421820589015486510534061063024100911828274609847327583851291615829335998613630450243164122262915696294617646614860997430598219900122471219586617580253039395720388059556167747725720630727425465019990724190879767880544249624091521688064801998744165393133716641016162108581534793439763858897069654058484621207729968422525390302384348140695015459653770203622242813738599119229504518764826882443841099637228147121140228200886122018400789618396452606180365314368394978811202780392073434641900632004356459029238425462956102088196179265919230970475182058265309754697894596692406353420194983301616515450968051035195578848875232448626820254060548587634833458440921097820234915893443453222084720018994851087371803879595445427614424158670533229445903297879452786860657799986040305711341610657029885762488675275324026663976636439264247147590764527408337329859838738614089417999953325991163085815735701278029185579422890242564995652023206335001944843305936792995253869917895818120312610421791628852104305428004214802778673327083945106557214032577886678663820980247668471939642757350355505765767318010707244204078620689885989248488292253982112756808319893852240917673295995706366261744368756192190592806617315740810208844611627724130257733405040122938657058763155621596341182732143400876660302058703177392621547170199415377202523675390163440041938304945368870405952262731963104199021000801497775201860829114212748344554389835759958299737273598429667377313390145556409892220704815338434669118138642254139889977883128387410043986636657100811205136613088121851625653331307855079582487576449263524253679236490448388042756119350061572987822692717833909270078417509852996463830894580522367943239239422487834844088309165275360911359797529458134621358129936380002040590691627664304402696127481278959361154171451557973908861398849918185257305169210008944894618658463908362625444115173763692452091204638996809216779218584226350337061722410748343377179759064951416293328092358842660109882416720480412978997848744129590481675782106050419537897389132345319569334281635339135408169989049331397814319147491744053681408830360534106925868875818276666700547016450288558774736289300122689482319193177791560051898205843124430849413013118118747380258422193788576288277733707605641504638658774715279028167564800542409146251078137983842618503655214843427226345685423861088040578356835016886689052316192766226843522583214199930571913888123343287189714142362705248783575898186060164876750497437255426478155385226862415390022277777398678198784272763021045238460538916462838526925076444098881641167992706115435899050461515352910159720633868712922932658893224311510697364183123549955658622937324790527494601441584501933675439644452344092581426781150141145584779476181823426184795480353891052424663333922327934227287812422631637227888714699640866267306502418280096558317947462935465782074606488427035681260373425668551741743386800374937131342707204372351791460492288421217991176278750433851126212191102315497909598791768771815445445385636906347234202092181223738006644585818716059924074157394219701795631952577388513231070028862173399158751568993465156641532793884527030409601417308364976723209380784794715301682607937253562033465484842699819446221070506928240688210896631560228278353615303325646339043195642289135193621805835442287786067170208271961022081077500872275171124349838777615323703220346856867437371069390399918182511563344248262101722405526843640196372372693544788407598498248745197743956441347762429530898741519050753567388190263784461419049843675263807812671156193728787595141306934406303468147927557679265397796280306659975462373178902834590273045494558023901179876067530088214880176995350103918010235990067640106111563368313843146146793419911191917485694292762864324583516706580179769463554734671664064398792321361338060846611850123936409192825058214341660853211099300366307861141277772267354385450431451417436462898362914605072133342220594027632907006466010180363536703468084766740269725824740561915213081197902401653648505894902359230042660296059675311072908500533644415523733930241477461486738308401078511117476783749811231084477602687723448126556242746854764565641969424162481033305291923182772322126434843898589873978131212030712368559000649758937399966892314770625313933823491770952453850091594838294257926271579746725606941782636241989169052314344256799758433927215763101750570050746736638569019278447030713373990995799696562075646536673922672645928964789105471165618600903757711561123388887206082072322841240008043770664264391268358460624742275629151647928804653284208185293688173778643376545988712467554193458761422454770334102486214617023320797533070382651633289058917003137612296828207348864204803265759283673204370511542944817793014693459229480023832740233624006749225651888737174854835918561240329135730448431243563927008926896490402670804154413080545413665885437432507923014064561014608356715966875197777419801609724360476895818491264975492624904154895589101720757878255341870839765187403785261648567611269003044634876222112751298279338818635209538345450671684801363738596100168762140971698893225648209797003608270467157269117159410519783516810620607277683312113208013822078502017162738088041798612019005836458492287305478262681065290438788293933961161095495309160926966223219855554523180605350690850023272513941920446311656180948883460010496797652163624272393887076678505922843444793308237676244224830089216510578740089426867228872713327396316991332249902807564218655051897013020668980929633687002396722170378904752667656054440751905860629493097170802576270504892303665596005018304097904374620418636106591110743727830026660577401894357224049500140196025634205938019922726956340523557092782663131724452629701140271292073514760840411744858264132291607812376510166625257549195381236805176171472488985523896539404933744077699395745568688772088495157154044126542480761225149369465652637958149245090140528714348682271557140946798451393257040819322641997343144488638609442409549175252590020169491193836238851941322279972037582840666629066385779456194808221399136094678908735274668919758821384756202114041567215641641314264307234100418899674770153210830764136074489906390040355044826625399818424418622693432205026338984026162889238691756889170708882186234416602200019262785400623798665126441483443919698321944728218633101560214938502575337632384955285321920690562954116047343522607648029174804120370503049349377975525166762584559132295550185931334354225782939055132110257550086814593298574472184514121524639762180211359789064956051502236973830383670560167787615325171998546759391723669199457148825498838841211290269879656546748912754599520709575196883068128690119963062381538315976244782330973652595152121783728945287207263772858842650281327845455506017325880876039203390963041648713740927844557969896877146397295544514108349729582741645814482771269575399903342484350499042244089459465423995280657280307464681638093559233722888441079452557930851939273983793854100796896798099276764672041767192447367877808471915797339055895259345563402287865757341535617654235817648868704803883303692899815871328256760633529250212976036700422539454781176750589920269646842983153119963376990473626507094374844381504081874356666287936888271652054459397462814698256214778711291555370931851879385370791112093718777902959855745929617799690468489052201644005218242860054985292718664922486019610088801647936639807387834772752835459641447478848875931425491839314804703219616798774030022137722169270311515570549036081840126905879463720075078267848736762414798900749859062455784670506645446657084216355735362620873633835142717602385383804141256306320022272187890715817840975778540499561195027199296160239817312707749678723978489715200585468645720723308247557195644724064671400376148199521324239583023283341727157363451413397969797551271031441547210707769780296856047136562317482091664751302802641207551305517987240484312172969535986262724107252141796307226452844412098041964386091797826513432720983088258085915565904328719996619316856783275294069203155653463894244040100636879085217555961327969142014736820877185737230941506175323801203132947774808302977762884109086901552923714576968909314614185715654837389832366751485320866707210357045248038944538720345103988320883433266981710668345526053880472074685262842739124677540074446809822863589676917476467366414358147883927258146008945346151095482212755104604330008140521539611138849836322258671350549176416093628396920630494582546330653595633851479554371918181776121809290787453604756891758202388792157384434267090253556817790751208491073469287664137502815824669166765912937532414271259498256439722257216921211696124333491833010647189186129258215813125162323824287527128465840526815334816748401286393603250753306354358122841379625924156809146804202570868170426057207179315517515178188138674355418446874568026583123639894523333036005066605649527426601546868501934756835594700422243803185464312891987555799031447356558062695750249998184147811173247693637779841446383143269203269751009367554097086434600383321412984399955805453064475415933200693940719072421744855032898980081964602475781960970242219751517832799282114169661536033346113256239418686619800839793373043601127061247176479804544421046152943160778742310520789725171400144435752281302050394519062336165638352754880930413078518580767430271011173604765583845676185835037382024002094575149437827183822528433195945753121547411530780117313462946602985783070998918043042458228834469742269003514097364798544927396646581102403783467848959114676876824361664639384051679578610056167987615996434400742415756947238365973570150609703342141330588291037979417609963900033853041620190600433299293757463721898860514225040536582445433237043714500600655689097531624465470391516530258076289371420364093696625961958285312057493129600682579204928742683982311192345871950549784597489615020222038995203251549706416676115153385234775418300322568993130412103139276481251533591284732935519894503144652234474406381948634115926229317104410744232830547981775880794527701048820158022068892396653015195489944797761035806908551326093994410033269525088262055720794579225026620162838715519604906003569271409509925381219950314040607872763889706903033542871671081118050931886903004198528935962116897777724733017268551153075295828005286655883574466275857150419516522890406748635907611862135688196107902925381564920502328869774278447930039032956721300387426458425428280579059207725307834981479058228906474082557110546049391132924469814587194735411857471325630196016187346705942852947107155902033665109055939147431760232975134913753794109976689298361298969454253381277665916953230957165365761625722571008438259214391570436442647642083587165905517208038364367803186443768481337043479046124531325322203895883033324035008502510330393293726691889589609509092140979012880079962575465934624754797168946034747028657065684262315463237973377679396861072293556067488981919220746057206695968740379262670281242793022900116578277601857501927322027564132074739027980243912149104708870279762424914725617946511727408379088304697458031381678784319105064032206351139022747056291757798702435647908702949877655513697894480899852662125348815116943026069900149225161851569231710515488301419076493370527627276577482906074274068344093468221582296333273676626479229466167205347226966942304133303178964250856927457379461949231731955371714320560076682895567158212828786672634322173955243818172918427697219492554120628122593910497267368847625932375625603631052821596954294450796926944087425794075729053653953750001575257099515691857955683371913164410624131555849348130586165195233430505573795526143545489132399982237348001380740990134856133804780138477169186554133732990949053127632999488569688255541060171889284560523283848778954288914690329641639733836247246654255966943772085541823755460142109692790870981574480228957076712808172550239892875537205156962922478462016781532087190261113085817398330369139979880773793925779457896429967267709022129490810122376538021601290489567850072649028047491572238115274640081421962526610346657300155232397011278439288423015485664341726213347848297473180919390561955759126146027437417382953808699538725051136950901284400663402870774284206360477888532063324110731796179612405578769565426176818591091178096189639969046010901300458331094753645092226305302348052035231569330762358732944481834856966986916985244827209748661577950924540107099580229236679317851070643074146097883106592421335505681093148262696099450282684903238562383210233730686859589664736693218477674707103801559838362130395466294522839368085629299755695672763192684810441529714452562870000334614541547552029905830621796078585529075075602405476809453136979842526648447889957484802396593374026636974194829959763496459550621783390203518359426499437997169117724770952859379253619655868340770186070543543611204465975466558609747680337941513162450149061240443263779172577455230557172785836517585356217833702945216704582709796061721165422709198257772479743763773053031180793833216909093607481020583490842314507803214170236991087147438530098343886397018546786680227079457250301704830277487348134522531942121104052489756086507655030914248910509096415192505820877825926287108203696328635731584261392022499457058168392820998168040045480418949213844241893603558521798351638362419894538415971773746460630527083635443585928265337522981872397263977081122724002085771475293544192308986490372666605466505323065467975745716105900660511820710962104742240113282421401176954536693062381713584272464378477902792808616650583839696430025617017441869500567153458800603828063848786151400083609639512561805020693936014395145950368517044834107946690402918649981786647305530058894114280780839962873655939962870004792854741986233653920235592686168030992981996562786699080227110916163985069472413280758550882680417061784745524709322391181020565880097674405279498644505976437208156618111730340640031540759884588522262950645360898152735347443162516564967084643412781162638085917896081756734777682764352953204284132492335809049252075014677062915817634144835153208932931369932848323533196874619111682363611931728244144869017422068868457057167258166554754940358494974727894043330488054360122620644254544671404671619347415863311638977348425607107594687584836713981561358022592531557759548106888645499033137551818390390461239829154060596236502670154750198994880406022997029668367202664357241006279540810983697246960402175784988702005951602277644608573107661985089160385394821157494612892359229348253705948103839259997336732405942217805026316600392472126050734694685200930386494721450209587540006725214932807911655657012381083460557141875141456397792217735030738872506505677989965535434522799662732156479839438636364778097606888206403934527297408426937304420327621226071214937886830901224511257177443406349733306632900587068889602149902727276526487195006801696455209312566370769862647991023338499844165383053809648847550879911515092231369574923005372475010898285658406820484609695722977345333554619700468788245077295576007394383121532094000065825923356790996131443379567387061565322604468652955118507657721419571881227011521768357290225847806061388830077027242397322238504883880393754509588239885137315361475128242241871558908029884393012640765979997371440229470489756238853739732440682910193922142053396461738871649127983952832326680924230110560204645507872848713940315446981719956829763562284829200253933982988582703585273082974889401877551171094465991404318511755335857856982969109773618969054498530380988349757376577407300998196535028347574298710663360567405437106123269112262651210587429778947136892946582683577932544571381530599043590014236633258153196073627848872774417412119132375820571359128529465489360960266201423862907661698305548018749074656772872291800003678045425692283422188589968398968078979914948414007565246537180926952779700192864214442912879374855662231563660941030507818235975797639268121509694187407317297004506518824573578671968430520296856519412495343398530599201256850402461651766169226334523009202125082478137212945555408074708705939900132435518782529781924426391504436694603043457775227971671262974463580811950990772328644831522313330554581904752325510893791397993803088612464553723217305253595322515917583796565129054673179988548456211700739268605046406464709602856933813557512210619764644997742149721315866415709717774349867909227343984276992157450881819806108670089206839040443636457503522285885732325597899592692584291331304652580153096181763145592964005778975495604974678035197340484989059223620293621502544973980445756122440864731050887423597047893685565217886497646512926341819276120071097813849680176192364468032777190220268411671614633735722036583487624511954291815147945060333180718615619644820571712485958044528986782277292162411668827027170564495464580283676641622543766460362449231481400831003026632736831729339950250801371850142107578245084776158295148168745111652701289543255921967943499565222767724072653173491174686403858636380171191893917671279678986477809749345260963030094947193286723780699073516987681534973064163078908737144282258761929522013893664518833613142363770980442832646596404194527363162245159150559496142212456882066148130531904598771729991116436074578871364939102434069157358308020475616719940877339988547538405864835429818143917765346723426776270422613730476965225198714699691921517043231213563240568450830348246951563137715599970079298505899436470652267962944911152985168555215177243617284925122970443180346595524913088777440453523201407772435897512237241723916710994688107348605022611704166618162292071498406144879317651278530553474443603179471766709780926420024841453223747194076223033809239816754014177269962760915994709721094632543228309315096672091086798322988951714453312812162408831347445232620388705719411870009794114754559962681414100086679533975289006678515582963949962061313057589149393935519176267790057494843535805814857912729661155946030214702570519068316291365465231427734054784184051916837917905849630029725308386474514998180287334027652983784848943588868801705110652754059239668206291488841793104816513739734860657014532594717268063721513368625477790845585667966098708624160016586058891537041424046515513858029525908858480747145503136215155052736003134930371111424440742838659406254003269446789526138505198188594145128600156089490105251628575381589118965101389284271779682732047673378341990843196030143863767848934082563496683169784169523770223995135423275773540957198684980699847607757560958538249939942683550000246644626562892570898791869711580390821934376954799030750896486462661358567992193140969612093954007667045415532924919840670234421408935440603244688817931757406364294242543954762969594562193320629548239966100373710292310937713792985499828446100132521145512867030710199233814338429436963027567372604052584994369487437369192686095074348580507628635656533947829245037980945844563297971345355540747923196568309912753964974685602485783548322849270203075845746051646135299091884377927289582217413238948036411356262111171064131842630219786359448717464743724708145364963405920324771625474186708297784823927107757638454006717601130460293811527893935632146543908581679621312595682189663718234333229307209390885362841524240295855285950097921114652085351344267317405622046796116872572630677335717911511009442422389010861570984235702310343041838577063961586533816254527522659389968960449622225766166099622097277931663308224024231304718401567682330947113915779211914571724011266694109380805974056014525077636521599492232707151861625862121645621413690334760338417146874334910922153651059052581406195830440293515247325920699855954924256651947003301668593174610318852448645952613058778433596906535582967985633135254434982671651378802203070984049794858323687451372214495697048070221977054089079635772503451431712206535859051030933096187660295626012331066684383952773311882129885927752162406696449319077378330073079704999616470362893562837733325370650147008289582192456120444681555329810722199655672149624151537071876825987226634277957268290331455668726725252449101369743982607196369441530722598833377283582944453047706815176545127486738268520237636141988698065468495206436716777931055546759811368547028017094175787826660106170511691993328103664983851837075926591849468557716995304821954708598011504385130168253469620918337756402878267267787875762214033950422969489784665392413886750870552276668665160925992664403561654246411711915729624972351166160748591196412567107663540300017416790190030118309954679863528302963018858942094009931344254542830629048103328176348471662204185744172671300328776204289151058883559736665767208097044592231581273762834158783670136615206162722275140604341030013651863407796149363921683526452254029541994697833702084718534295702089153578818114397074723873130073118151334948386055788542756528433505974621338733298441375866544986209354943960653412553144580130261095366395982315573323922830123520867566554392480796844604142070753943708432691030655545767826673549561861536107031504391560811440057072678139746286843718941321123509614338386026139526215219966773912151148075585844691894325877306740295024502006542274857030893069068605745661428506961484511965350315789587863943144229668236896000050790108120091786076995718280066124985661305050795628621044288753952488249508152169699330295771862534306393531170217003889963732243689156224184024014502897408804647495774875204396780711842886936246579610986912525108100698136051148091821829459314756794321933456478680322886955257646803129581248937740172057199365178213615208293041031568310274335706643931875103329766673241687362410771971020526827090658004479186710923363677890645146945175144395420440532779504316619965130023159945493267465090816487133148589793678111303243942361661449405341209054177714701896209050035580321966564768566569208156023776944029392769047648669231389166631922182642362117938280890185143253448774307790123557251156400595870482629021535008346479786670150432439817656319265750622490837622873950070419956353843091953223255950232342511820627303521675631322963391652998898247699985314901720813680586532462130746204095826921075819923909586280039036376830199229460970986442967295732269563917981232467900369213342439249351541471362186626205602818322684962887992312893313882956706000100372549728052306111480552176962669732279810597023857065876344811772510419228172673726757153408307213616729163491143425572174848185981088834004242255497950895373165870204350351961553600889596826981110770408504073773464761909905926487168852749537263683527926701569349576943503951141822678795157855127377305360648982420032875539470751932943158646077781207702780358856300209530893173481752417903440362056863168645064191475083114764265170174943519519364333170171221695433957842211318206614466050460944268057878196808200621150775172716699427431727851865739204343108582343781747202999651697002402764829723241122585752818495775458966868732442964138388841859088347582533237198233143176079974162862317024134888561613948109459860871866717229752633577439547408106009368887737150723473043671250825593399753738251754260544646745009057726587263945380780001118193641089512970434863035622014865389261695211652019696988290376485316073637774275000905832634872206935453716503379911263681491989767999402565841546697481103797074314408981906088335251905362918053963480954507338745027689852416151687710415627377653863726640731781932874876120933513552694834207595189491463887185352483992569803634520141867653439020975742788076685615916051582450443720582299978738163657773213028716927124780900043412060917514258256222886560351855883361218785183074759173239341331899951270288765462660493257725082698771878128653510373515693261059150841369841634892123838929854655662427099630379189208575237275806037520607121170754838010422875606357761053615522403526009143574279051444165653664927858361854687680417161368678437587688564524290336234019833273726525486363444630248359519829947389908814018216616905277160913834222518000922950377327845281923738138419964019831605618541696374775074041754623340220613995138407992500777917441191169422752188559951963982079448287854688209165386777775473347960467307790993573617616218798131286514799338524521975030222065211833605139595537888588939747849524214217917415300998356880593621603260414589053191943023120523992485547196388539065030920815447270520234319533884083384915502837984847530574269747800815468134381786358199106323583782439851101405074331226379222587425483581204529726962809010429419205741293188115185513518198821270556180923919114206059986309851438579035754497240099598538133428154237932282519581638421426899020738663570176843422358206896087990176462919723940308366202378970182898321435214735869054078805695414363496024199618141357152542439921740221459225113719349383506586163958485255881154521237168140403662635981761794897365471398473924105015126289001328922149247581530455132518249602731308418796951376869236644429534542589992158849444525744349977030031928897795299832261429938182595314456621041955050607834279616927889736609848287081795671482044830357458678309272762915591322090271875532783725490174175488139821321115852161287465282606401703552104752708551938018258955623777686269101057317050626729980971278134692694035660937868843367294683983873617451179666761508202764977358100874557639648965996848179996187106696442956571118954324098003185374058806528130123818089186164438580066062610946448849549729450193074995988056480771034300516659339024560803218092287620723383066796393181681076061185796100664015556103366650719475963371648084671795576075141333105383872105707599413764645166039352794652971699539749205933318830999557060584309827750574907134380186582722023777029702249155795783452718880687560439542638018708260738844618504777463996476242639416641267359168062425177735738455282617709787944137750029761302209836756491656705145859054449774496512250989455057221637644564482402743125895154025486024674392658699850561585857051036197559021648783166178975722836572526155750755107771433561968264909487045250791729759290155772377238418899921191224051968834974264877538886484412562656461994363942604881789220200456108294853234822931790963211207719928331055950198863546965557645008288023732676754002827377873598211187785782195871976115210627447931856930732930078534820366842770060539733261103424129719249811725511843241892568529003791408180738859630137390996483580660598037873572118172516566372139524308353873754867991008294829341911605781148978201245458275272456630938325788795658638990169586627544696262705310470762339701540819139583310869629253465909202596485577284211658143248283552619453098367160136872155200294638897481651684746754818802796241708874041078688934914286918973163216559164320164520841369479971029658474064768186903895970971336441332197352622829913392527238528059269682852744430022092760700285781841455006684517527316071009510130176155728277530853651881903617420845181459824752335332871122176523014206300803833366526213848803377180249395847799456821947638753567523087906538666688738082625584237925845140165769603547375697645671688890913352136447531287487016670995493121344280816212030429783689710000225319402930462249458858183434727927110565491699646545076534946641565347907594518139414539111304058657219611101843411516282979703480929070446355740237815043792437564741539789746956500440074163512781868521868263906966115529519181893031297651588516538728263454648391879565384429623701937679763468914924084197937616875380274602866849692491006413566508828630013100615430567743506682814171609508848789153044765171141924913207835968015383854286835107308358869815455541003749676904510348675988683377182633531430998949014200989729827970599766487726297979845505862206861822432968969899701357717519924976348333114367577921903834124878046992727661805419905483128618832719877779411204603162010726337463578574620940471830005649702746198599851746194738718071829165563356804363643493676606336106862730395704844925232752967239981801865566707445142801725273779375020271660581721281483619366940065629978772106598636852224520878652860043746615864201841452287141465505481510102528884626136616419234504908981813655050527067481553641902863011720665515294461732030518104159091917184799700191827503804580340789521790925804300466752918471957329695929099840569144169553316471184015666007951691029303570669518089867265620896024244725001509348389641990078279363945334116033166054217318704656558493223553596201609732918963237407737705939007171946734719383620625222115702526768256067662526105436664203209394002689434727846998629318022980184937098301891316072683497498837186663176071251288318336639198143392114493576490845739486142378539077778566904390414335391967864403227251612173371882900115872248414392011981453853194735736308692092580292875562550821895965319535673579820067331567427012697507287940836421192668962696763427019840168744939633006243303938650772900139719596265322494917769781549186796712691896363037596993510212495727212686068002769820202579927845664996471416419561319316597824089251419777564071851165131931649598930802379173194795223627822007216804372819272579212338978179516110206135709239775752815519188617859434423283367189662718265908444512894762717598691974288017737181537648615685267380450101447523743519211197474514122457624731095209743429200864161133770478035626686062992536325478363622169533859254713849925519449470570604551792917370905531554985162153736325346964166744351988293897582329833202471238395088333325165416920830875788927514034911180761227277896189593875008994399319868445238810800078873510861198176818659662493947300035309483916272055466601485180803459821323092650697398450853161548067246641264965355960983006600386586063509987225798673627561588668702692344419944141313095743835168781059759035573768645410112408774933869685232836376339148094393693965207504062143740252923239422886701518881572944420027046999688179617558492798524221024190695426447046320225709386464799955139058641085844749617637650438670262567360541131103722274433994605227946795949102037739719845080706942986856581046844213958397870931402518727455794042914345399126658183251375547844663860403277066168227590427757456647626882926742183263474586658422660964123221406128946498524613681877544454920193666722688271764187955524687999002336541521713181381341827946862604998628967336741322088628468178809655639886212741217690197352314604722440834202607745292078860606660659237325132893825863044131649194734758913449700694199411186529205527563219013517457208095784263085430573355307652689284006614239371126224355777056040996046683757027816891832156190940972229382591496686457311764738852713597052211658408828606673841784503329945334951914593349015427717336009007135230108308188794378008105083292953915530076264922920965428354818333396756174848661411137003323069184711858002855234408090386386291283818435705351697791708764580242016199182971223840048209749662249675220024306480056457943981694846098844723134510797187658951444287571468000891965670637300195269433903512812570509959297889935030504331966571091018336997995978175900491343569604407646849141335402805743768664006477640590977412157834075587900790967089963662653942979737281685562321616031008679696931621059921776924579342204340950938663314688152543663949909561705333951772445722565385594016113627085348901709046106493764936069378565953536514497585929181016452658295241439648510773277194234762320725098054533326933840096663028699051940821616833321571106302390813015468586184706761776139186015650266970069057326177655600282642964347168636789676544771945923386523397962945886506856668617776563896488150120716998264839555085964336326217080183070865440441620628512451429261832611603688537102885184566209380680828252070210536497492222450715969244228930480592298622828346393301079826531380972133133963917264887482512675283454921058624354707202701936166558807774719497956731637112503625635683946707774723246426596174952235415274381529257009339661641110292546759016463557289255803243128893337038497151759675225577612617607609165907742186808671179869443654153766688689592659705336490483915092135205741365810684630188366125606108265918739269813790140448837923481941242307397396664828657840248208720271327512075580050082485601394900029966460660674914053605475235100508501816173215411112844534373693565098030474677003875908058686796711023030716858944030407192952896395221574348465981581385346268700178228964281371436550073601854664065319609437879120251485239991274017914598017695755955928405366555780136779695440126568772703810893539018352177826892448930199131086520035315902236729091326955152770143960380289887642571699228996928230176802569026517541577235653368907872648731726649806502925156422985552498874816796825370499055580863024617439309453143993612297071965665914288300599156611813772676972001249695086927949980658013590018044049974022219541540792668243630599300534959156543224013498256892791734675144492548629326873286584188611401721190927775227927494345707683059396327442997346021343147346345110375583410652884460761257540532205950019429686273190396538450461850800053883921893046568905591968360591183141333719506855172134536694098762294260893036774999238201992560979595161501408336450292333337370432873607841968072898162361629276090186509157106599093122324865610247724209509679413536813169575813262310373461443545392133245393123925111464801134915804527012465052040149342639791525819498902920295402784512829229461219433083961409640984694360329898051754612728652560455920272197178718409827646644185160142014161637760614347064620833620019020895560257357627449239943284400525679615215046644974146741481463817774207808790550183626181848728603701071374973664683712620513526929173857650323539559725801077983690774535961758700262355543454670490382323753580782549120792904961975087907224235362608589954226097562188257831216225664352740620047029407501085197683503922211001997915037441625196226597705936624235628916350816070605449823256833201174524846245740165483414230398462699992491427961928300043637446143281469018105663371831508537693360097967214440275269101192458680194012058694600828957432120010292680506158514097186099128032109199914415313544345527047202393603878523422917047134140178669746280544370696853754492769285976396335704459170884050530462719662014184458407652588849086876545881191868818261614858661815200579172063456210234100627969258936082743483375496443565342161989613623625180641647479192698355236215569553142206474259780023764103009318499817760371738142524753811186462362344875617100622374579360505612949296221187963896421793442658668009528497344702213943977556766520853055384633070213022821735154916840532037250674313149125094709743690739785488198043038754911631943989742302566137739161796243676854308137793941095573047039800642702300112279378884897935025257480842970235086767933586319711409638980305348320145917677513124049858750496050539789629658004275650671151275656709843407594640111319364439832725116379534257806850206536602856161575467374457210525538644073708775662367802697037971456475466168777407167147717072784216401565040046532009892446034619302822853217254262998372042601620581405793491377422968558992428036350487879335496411918381377437662510423553610762364363508939988586274106844013898342338865233202883412077491281338627292480819915643960818652483452872826829477938188351400599522704953474539947573533894238149908810694726038689736576927563504974150094561333330092016126370500797094543114515071990775308447119285914196068982592007952543031861312922160327826674679530911802270172945369492901320771842222357108531083515080716361812417181244301663856675252205430756121225866172684282450270656275610253525385031692315230487248978183435492002047860199949956064791787086185076738205265644855556287722600352967326823278718364999016184081637502501735217230565099318140098861863134188082959924788163552769510517560286532719565924077193140736170773100612204963256094813627901887820751877812002485216755220116186698001364599052202407835297109509095367807571712316354987670677331490548964240242237902593681381016125050006994691358628692802580749446174500055716830964750014102588431067851663212930366074709949849037835705707055543444299754239856863379632968966335153983679373348228168754138921400371654857500190413787011948488862589570062077255213831426860619536084808944429748486312708081147399979910162310905229448062669515434422005721396724053348918949378356345086282531134375529469719146390057878000661288213226008529763621658400842629810985553365181712588603616180283749827853063588020340637104684279374144836251843332831208264099240042781988494123119398286282682721913708263762185024289222007374261839164174891292114369384044096411195171584731954123346527949105747101833972843241221710255665779316608428262077071270911707163438529747648344272528489747104310669281372539958509494387620313091673921892197632391809126932788338720739341149177403372083229085694245087073287040022074936417798072200175940292019013369237631245114543034275540126131169319314727347699081511329882492631032603076062756447924800101266460909932168814085001518258589115938547185251750444296197372107932169986408659967951694176166714257986505593861128654537899329125108755968321520650524067448628087546237164764561165296600374214502609563438662002347973701986929626807439475231096264973256423993165140079974272738186485032955803445484518447952662497283366491269959182427045976266392653744732338729507497372896193186680693075641977301380751850391424352343956381790053252537066132109981125722457086138709528062727610328588664032985905219301740752069672561025840565502244543640997490223838490329427715763893074939925127514203537053149362666371603756477647378622100616383524219302893823603203290787392523267545309180853787316986115372945075607667842673089847106782667949676464138442110479677584742990411004116202254239312222837495382746343603991186156067336278298544823435749204450474145292927244803498123113639608666381293626961120172159759588914783397002743750927083209836111976776168265030649166569684957130560241271424032665770110209104905718909302159136806246665386042847435868655030701694234453437764306240647926579046124327454109865593408330657613129760851585008323755483322395508285877824464300990031666056564680767577809169760664125540154213321624435681357237567971528743134578593268707156811920708263981412485292384620885107672037364018653051400647257790033001099808568971345415986809049264873391900196911039439486652150393271444847213712977268391245633020028758802229595917605587441404995261305962980172374246375202862535466776363270829814355493951200985353058325067540562719513141604155951442198619416066957290657187442175554925566261693511387664338193379333501021883531060556010102410748646689209220481771117230149518417210957701696016932574910374214721505170098898452940050869679008945746596133349955258909122101141672221490738790395392369837892690270139474547496179040868424107437039446294062063883921011272357945365593396469235428280648988805102009073885084133100481026423543339669276418573496509223087245175824316410787616597875802406971463283930237946735333831447219146503049125111462044986118994049151165554325659871627238938270989297353100707762906873401210515939286791691551040600406535014596410851374140417653552707730284750163551719505611645550938530460736690674888147737239619842711445349512684757114428599963020979605938212821118694208481205788406123043581451141761172697537401398009587865509240170979700217319687151721604569400173741661252568784961789449014373912073474130303977530382509692077589632722103598879640684951652850314936738774792475072320822611549309006443678644826899248670435030245645455144366056637047897643005718907151167680416518476050090175303653905327082649769665550040200908332467252780014200752012592632380983391535870859256398619277694853415586017051812452393151518782790110092169408876592099606780239352620353967865034380047371286973625998825842524160018132377453670985224330631429895151765191981566733721546892897158156922401103689008189486355686104870804779511272737926768049311322362403435064685341540910111796672611990876609436228549852933362219354400143157670785444172176383515050291323694769356210111556760288463861596994073833698142526988434070538157379055176716312607115642246517665020232495558553846213001832884404347896488591984386080537398111299849870041221390442218563446975929429343520994557021653355939792600751276313004536715784097994399749342843877680757591640988570040595381720644661252551058224380931639128739435428788737679990243898994070052595171496260122397471572751019868252089737691250049759931094225490811638681947403058745417278909470165210390888195832092338354371357972806780715326650231844070188482373433771942505885196586422468939591531085407095287950962329400073115841553728249440971883719146856401293862271210969656846152932412485707919137998195285027031588284192259563284956746535376257765875517959317045823201905558849721798929533048329593710091062415170505619978546041464825915166005979581130559899038830203679676872029320890788706317869029435025528211462375372367361632209581021244450159799246448219215415346958612840195685262242919212285347194098475077251918390177743404439701683297762304928866392742635127800979308908054600372747565511264311008869735227172233317489873241454086608079204793891831440288508849947762191134983330097016946785042334447823578848985586600811696345259066238272594164823893417549297165056552370092247791754987566239289592405830619489605778195844573535273391414575367026274812881637594455292786962765110326188911420131785032889297352264217636293897605056884828909541407277789765720960742682177987525288454398950872266245303099976685344056488411871125927621435795736797346289797151973217719306686999991494722869447406632418320962734644956035588719506662188673599518777816965341517852465077368371183618561809269544113900165394630621475305848109913577974977737349948723427432711363516817969008014417212015381263330528655501812642825538661913517604576582867137179161244770860811842527113484568257304826884891797251115172267737270062650841556348236154016760835751893782886940988261483990763172672919144541330460382289411858199938365525646633616506755569891174158906406953645181798321780729838863606004267553886558534184567363329610544633149818330933367977029924293567023547837575793607246637268741906166931402540441162281607498338837968063659415788219712495436147266766981496506755137266638359046694614842668249098518966419639968829498938911395726183636470711436082370649141110870126487257674289111060499694090470948043660548127659459523867652040810683576577987097504440179068146789095376857200133155904894973371503274505236980268895265356289549377229973954457102521663171054933047813274883389186902592887841992684846214951334142876146508863614549381783103166725065076731240802993786812672967856398772591509500439289709984693097252271325484052947962970927283449032022120137166222060911018015801269801904969453032618663333475659424114685122519954996101243076371143433722420077498498111595190077976761992169175048580845086657025372974651622649357649201137884060462948225398764803501161907015520519727438223226479951151073758318036088292771557176962198310356111302376283471241230232826365333669472684536257091422030576474820412567394981267460573277594434299578079271967224830220365525311827226009891074705751594585770486715865405201808115129926466214342496177903540107060302094182678613945759812857181103826498358666264050407436850423793819021793499519435260197265617641289105464279824315267843138696163154891393245886398499517014022884552071326450754622138849315044700120177989844411042813630067261087026682485378919380269418320643900211762771590568758915499656204945702336021750199202609869365536249241147527984445436783912107950266255307286062208354991783557389043363498126858827235286166951538941155932992916889404434331972374893231784629668700151679009980949963954299495148365520410788465146093045718940158672140791490299051418972077451710349925221814284276287849621313230187052148916417089773093439160323874496487862669734476395171757332229543309655321231595842203922920555021557487900404863812002195174533459964570632984697708369201286438894375946054051132186310751390859408380287582459820864814183059345582212285263146975805540856142274453774730010223120149389946275091722658277890770821884320191000145462182219358293937365491852809179189431790018079277206521571505033649641182082138107303483955502038493696295382435277198369781833662628284069289793173037240534526673356180145970650831868074511442999387347098530765388968754146719716480592394154317641360387140430034788385928791716906186751510440557361805452448373618069174098573395928238119781455471529177416704013617372682413458189138889246439886295772034531661232177237103646445898369365449386452154890442797706820297371482844140861994356581413870882737995092337484643715095993747067401585516999171229787230581378136827128702770271929065384399499188332174354570284441375677481433724714856956068260942468558747560465882171557463091240481167891879304876964865151761907446337674753088274277347930520369610701685846770584967528366964747191470665904974731334430286933510842005440355179865632926022273879890335450807112993625685845529613026654021980301469004967024635272383434314314221775424123363356822559696246356769410085243475600987889554025222891445749468756063455059823328425918072038591081341977204242679172928677376440164341183092028526942745361230956832789736143833163518547833302679154401968224938091267629899007884261563214585388845410118178094691631323366857753114100823907722255244019434292449239285181345749486198394522087004432704720608793897246639487853928048546053100958202295256582868226432004891414869863808647606124394401325178331971734190299620242917920224637796619358450889758203078377074905524000803405489691598818846035690912033576270425116295940929814837586227600626975122157224557639251231392260499096348462692894868091737354383067628290564273760965445819545429776946613844023930319817885343194073121058155246298485344889888594621004313109448272299513791503050328250314722233720341686165922417894487099857566170106200967745121408383580277629162780888866863808577776330537517538039666933400459701465505966481941773415449347760913466523430399691984000310110039666163915365806014494024353395593015465537743141629548253355614809322103158490523984062888385290219875850152216174207558325313182426616229220050749226027475062213667673767458560566588247280369451779890918513315441562138214120443049751272573008679168957084159628138007450897551707158373197001203243643061703695863200636995520061838963188464467616140249041788814523609726344180226326626431034442084601067535881971284881512964330809915074356671735883365907650839370295831892854550448195840978686899099523846287668272132511836026990444087757430748277318843007280467206617352891169309933015562884074793663807694796219851493189247704756791178741043472107158977993949790043679417103967230443798556013584461227100434012138988901823023432115011196313733935149520039805371162629491792016763202958198704938745212969442399047006675413487160726997389070656044375288954548328489593109652397416309985842772853072512779126617367085825099807134899556324840491031898156663998448806268099626927886336674683666123469512107561954957898753581765549284958514389052747396626429326312413564927660269992567778211734449546834089520855551765434936863411743880900386075168380694272376549932630405982398221218564598162733066953596687382295782982149169102220492800490320313585855740446021629957403941572720113146764830871779821344515097791605613892245624544453679128266066666009237405402532125279248331801656893794229696705416197216622332806167828288910716474199192532909463104896685193785505852974293845389213352145538788739888792773349518165877057633145457875323687939468885142166424239925220825575779485839172318522596048069502123335718508885161561174266070610779596197220594835159068953218271064430629353405242982723593319616365385332635593447262662591660872981645280218951600293928936663797882776126316344632342472886177893869749272699199728086619839022382264404631983507897379781472905915471482936978179489832440020650925245975917243040094776448979887614014217881573996554225157116120055042818593844789151827216872165175189227426777079228309179760380461121690756923446745994667506313383056830860992482369875869803665213506937086848365043899916539900396656941755716088579424178205409649286046800235012790990157964609649553868031762158734169175612408023528448712328627736180911160275908954870693331866948907728838342405574875427544672232237010960105017733401987895661222126095879164556886915402022621157239369659337420420801224869533616309323527256991565589501705804283298273299446696514716628239002276954357238326074028337369109251190683880778190208759729545893061411574461864432314206075767213856979319710703023036575365326054048508358540585569709328561169863555797858353775451698471670647916552010973785879986477769738643745492913350397049257869521323145815538486767222504931042358428359674773570225064478378884337180607671778658355725460122030648230819094056238442753212360456212823292916861159448180105071772162666266884353618343395741622656475242210776989778552360789489591013638836440678605663220279382384220279413064589580972797792629941649776964549198043559729218092254676435992256599570186743809776886833006637241855896247447741496284321008963061753319751398496914289486685022409221774032109324961472562973524490748784217612040579209047529154605841917276742124592771812268622216426727977636556556226234603816078996588983694949092440642861651759608685762041766180740598802982174908508083081916997557298267370980934028481175297360537909196375038793955775350963462224575186402728840779905712212689921112124581152139289576138322687627136464873325114504338745674001002530709523558747956905428058003912543065703611079409244920857874494150414365354513615669812841396467366181188590216455472444900674961053942532744962658687423469400640187401750153719888075110142552955461298639050375956478385718693565755033597778252298181848711989416618915821576224975751576416536343137674171926263110271214458712138219870444506309053712074155840321183578319613582593111101892481871731519928574830539051106739960598259671491061736062500683427170303979044362025151710431815104811504709955868588834166482566463621557245920330789156355580444548159790483556619683594190124064357198914125135006336155191174733639449808544956358194212459823208381164593373553038588795325761059585230067569759832709841006931603742371993272437702178298279610091022388068897248898926929779063909306335897965899707182713505082641812929350176789197185524147868629937474157822247910402317515417764991769593839579952148379949590906421571531925955730272103457489485941594746277644100189132864077997263442119937129097229353951970297513950229580919333211161235081900545846916435734880406067029250169409835675944215018540365929944983029473596229612905761542552738351820621799355416500148908457558207423207043970341830534666898360174687120946598973106916407912456460917647529832039791419145861658670368537590125618035524979830110529252605337148166756345008976244860691873994754755649465625669388171558319942737801348077968482778959377670945067792590848807761085521159870413568072232495025573691618316271450576428510656311289438840193841824964754393601579236276826087927346572377919709974939455583925087116257056339017560441160636224926224531345216686447958687729213026498148348852946674564200598109572064412096640359788497055868777443864926291302601903712514319450133097993373995957828511381458815081595316791949595378948217656714971809521529748165478108715104440109930543094449964716668958644695753926026271292807320085015765447512367746194449170229115268608438376000194142179911920129477058114589769411647360384167478035834349244863419755835324540295912511242720968944270501040805506172235597518721079319930626963459802513191904301920043835302966445563936987601414911665701961225873633193085670771342919696447316390983087778367183730370886533574597907233745627359547546453006586851243908366631567875908033798206683980330161403914473054083896105875508135535002304057147658928819578293988189840625790511429444921155944160819333774584987517184266048223158430998047007637738598991725921442768967648411863985523408738298899360491316083753792445187196728526284341752763079980956817916546864565129880207383741648471513501153607075032264902609492821512317674328310953421709450182210221698464273960275079354750385989110732129308416409186700061815133629948591414955762045781607618295932343379840356956931919519429467144165713901198470794984541317002615249365784098401797675408503099934103549370849688491135718633305461672843645456117588449469586161931186397699974832621833810369998629287163694374356824009503041491527936801712173198540974074806452655190179713458477269122099344553682742049499016383089912081819502431171843968633487619387748006518781548981295220780713227706287137208533438773059338269145494783803465292765885057533826959055955881389279225286216674501853795772654651488675537968550200506846888888528318034719085007239421650736049043751414563937618966018486645318812074296480090705310440221424898507710264417859793824335525498575846481906585492583290931647843212720275654184845403302156434469881128803365729537537823848054998107351950701226319515244337242906707171578887035055427975585288402971654742272438873126456370856365709490982574477466689037113848010888939835025179839127145081485748238520033253550477571617813966518095672215546966577566106048481885296080215547008397815561688397403774117341628916667964088838266579823288325001815167883170677236503755218068804049355395962576693934849803364187777370847960307211007913790248819940484424357486937260539186755335447924204778525968063462710847354690613789024269191310722925199248527013370824776438693570198878263046986195558068754443290081861749455916586513164918539448326448113989331825169706239050999417251641693878991614799557467582098574645985670597213630391687173281973886329348711910561553983241143858219591786860106287505117399327410249052431409866696307113371340749680204070667894407893926010906816973108069937928069114153364740763545479041779605255879117724520626462460238531937841940097373541065911903637753139420421833432981904967397635875755679045400789263048322602713677436650516677620750507710188917436405417161894804548225163886254836399476210838103855801498608401799485100527544397863457729525194403054113073971948828088703449814056741698175873731977203568730234559413719209331056770255198036548796175576830433294929633746282503991771751440073034028546146355694257974275349628674045609229240512196097238877924531477176104663201753134256077107995231197017549557535934531502075919513633593291482406081722134989037756222904200975568354211371556345763207520693858543566330596179554876889914052062120501241157632207280103997896999523028128744681434841528084854707976744891764112190631896582581528148127326243163496854364280995455365516499590170685023499411844033936700973304876140961038342194662177078431582971969688709095576532277810845709977262712866065662233112204817621895882652369470315481194317761738863683316608822167122150568720807973308770372432258467889972980522755521442154567976628670503971350118521472391867002472065782595194168028391236740134008687445706418037678065021499667800368525368725060836384247818380071373651988966004094271384892487408995843248424553552069910191793334281871404313555533496380954320423260700032441627536253749626005836578846521505698327846764489439440359416694783474383061629958297069992732469166412191182287406072804590670466663285603694972428218722288068257058656568148015288659283694717446507708294987532919777224025696757097595477614395051576196123582907562665961900789331924017221483268643372307626190966956754095776314648505543465538902204712421583270916901244146130562756201435071780967968595076745481402662718822568013442146408733710796308643773692650756032226223758040489647713020347499381535215084761250022772422717074837798266702378641964275099977045944032692530485413315475283970171914711101683763044998303562684411956055555717394884128546386888164176762540035366964668905508985391120457209106867750407195896777537680171740265277812548964231851156000134142802554718729288834847026386514870948216294497242365087645420163474444245583303013767621042906657745020113452875831633065040442449010577735913303380723284333796342390248637258948062038689659505571781503374477014466043154043530416659482589559410239406356202594070105012354488510892262368827358987359258782793120849809886463079496025022108183824682381283964588640261426703570092156791874068624807582100102587026964978058179297297916069809221122983825303759576764833559922995439010036793504908202293996194793491365328699254316344026311416733404815462624613803200638317836211177575911741814434005497042764066814592929839636270689506118065041746825363325656835724790474134526067432068610287423095369469604115564065675573121139693141037249575486764099737407256202822406825252776125264986636239280497904816417059963992973339173746811375233893736529207791526017309320372073141881500836911395430149005208274739051720803617111874150344530999828164721832575277851616123787527361234220148021055615798884419775503982404940167507401869187143130082888740125782658336155142463733218177343476976124840096476064646864560892916838888431679144189546310001568998757202463017461392523800503638394488585266863578936665099850188466941644660139771042457733959445885440164207880639702102279900412662917876036985101056228538266862105362568284805425109566002183834171393396898262557455611632514714422485348226910623597734624386242862616578214949082602760115009439253007634561384728763027587912762644021989843099941327792953255716528887516819258668856761056860696974524602835588020275422065101237006610115200837945672357576508691626896531472516816048331101902329843643366667532528161963410954291212981212093507513669625151697821417450652250998523851759596393706052997795395903312814301281681978965577343577737504773071059696688554936427705388219267359300482659652990760444930554997418006487501688780355610702379453196803118447986647777117514025701331778942974108525483567320572894892167550234935505772433041634173994002586830847267751499509749261597434565483876160251575773789629130172247670554376430652419072349742854637306140680881368246971963441137844265767056764347000433740387464727417159952552059856901219744088294299744687682663625075703851128669389695655114157234465899612143380980584987617191236304635840022405910750530848306327280198510216287235751293080262677190792545664698067108863353497573636477874674528626744981281872475470359246143194956367711192898505156646390051306813503484170835899094749840279749630304598541245596012878038647125090731167402909639467763047337834781683698987194939832544566666314183159522838094609177493942016015506208943583491222655522936573225522014752101023473393866252109854658503428389845659524805015130597265571894545925146297974076881053832026274530395834703499816975515406237885043753658201495079050368053663064848319860252353873584610479656203708870337400748938841840427532662896881128482786839724049765679424309965570538177042123355298837137802076016614283954726928222868165045949488886716910737724936361640831253336199606301468806261391456782324963059387199777808863671162492276788289966019988242196447932215032508624867603082269051415902743629802595439849161899797234790000439386287298561331165554233840387049509283914405193572439394903137384783651078432281823174962996150284411013310445082303779530440971266683650163238437617377111613088354420557550384796188839674481630297239549345338953757662516977866155643839396112007117278149328276115101957418664493228023661869761680995218100939424387489795958888769752591028731855203718452228946473134110540398603515795081252985137826123447084259242748067974782526555548966070992977052912277146319625218304982592077057434896996326428730089206307954740730521225927761603229315540163513942961921420538995615042151931678659473883833755087731732256510116074496644178054698560586483065545095645311679273682327156461062315855356353316563710872642993149276231680659486996429723737269363893715994131970874116686666074985641592038677580290959064073795258254682652530773477579606762006248066400282080373883291768048922638789886971233172556835207930471939535939535037410040000478290115467475659567827451952994072867434492372963574669526915517385480007121337299163080591906514406062195757907197916720489559446923354711538225392459011139204126264678714861624819176003265794105378696533513078418562010784583989830495244628924744513871282303357806482522595022266355077053776461606239334354326544781606548223729244749919560223124996845476567320659960409489304234614504251346390900083742841523600867129562962748945240314563368670061107185295593424095947273678363700095046716571981837910976525894449465084687266275970185219869311500880702264456329534033748599885054710140179468589704068164121645100202701002521534889560513268351129820236002694323125060322338473740519835794118122719463826105044639570064191888459743448303562564748890004665453353573041138935686160173467409117025075603169486642973716593006103136410713248780991270428143080169171078676327494228346637609967902886221352267014986720677853968387075413791531433540141204481909931475406421846768852973232798834815998258569784930483129979121550771739468972394321504450028266162389503341979695485396157929593803594928687760169486637532781026443388158275471523583618670014677945288875533998849188275366810233243741851161438718520951854956036116824082407785524951370530567941675886740436141176274671704741717809729150964084797891134486604021039103510001798413622118411296760310326270154657005077970024226378627092926174239974475686095659851392329760528772334440206425576860563774104362497104850786444957998629082367520617043144523191010536721431679737456299097634505893488495389660599752790819143429666630734030820242862792787108885073180404291933030798687542602910607303294951570047860957807623166445461055432922927688540503831211750236982890520290694082960289159299147485305403595077726420509114318910629478715918315509411639292477603925389937857223551612145558294234331488188757230262807003308173113545868824425670395430651651025434857054143424999950707450137327673829788047211727216231818549776474580508941622869805645778694315144104686203233379545302207649740344239591066079118450040693674317004914210123122862914785304672826918441759269297083691489187015381705225679169543353382919165161775682487032768670541441187171422174821175541048928688930651574102910040361154187910928846333913436867937218354223135598202595452595593298987362260302562731666179767502434991729971000873390209089675605797659319282376683921317655799686414077286410281422729169215693215569864940968677165517776856045244687735063485562919982889552139949603370326163692908789773096824787449792402819584525689565609706397222994699302303507685596269075027196057213729179297621448233268738807416136580525807012122467769365790470577594251861912270931557411036920057551844590607460883246283700929259015028447187446855927082513639247957318396536222438079630791577980739169048058238813827002222579947548112799178671312863009887918423591966205049735372061733894312855132958621326446815650514585310576100975983749219437423483564020233948675111003761948634296501928219883380632542943161307848267686246688544979542852911554715665709597969947515060093056933984931269889628837844936671532541223017375065442883387959459055051264412612122167421813746277930964216282140876935195187313423278791960164485878918229167779227690596709935545705285288130083347025793160143863710673453856390381984819894296928366409570190790352703409540079201726247457724232775336514158315816142566175877564177685159346173190696740988733097772098346342476373266833460172426592357374440560628187060104298817458316268976477718345860191321466214366442768725337799007786267169631178727224216857185441001398029197857121137392282978651749345009384444577520070840422347680693451492137272669531909472764231846324091934910214372953079711651972812947432138804216628058118887123615521536632319313528205198230714411374981642699022730242905960232010372226526801159549381884303236360692961864773987756301948848340716226846272437616312706921275872264036703890708497732736045117177190448370271914866611675831313308271127072156793178993955585760457090708187654998827801070659075917590071423302194016168003177321098597735970306930133333575755201004540167409035894917699376511652144638447302410900809877625992880731507112366273593590523813065903428988195446314674250930569038585427467286196919003065718387412003371946259326906708759523928885734168055332516466272873723016738579522112914709163751025021636181189295655867675205894603209048072795368163590392933350807565546045541460625105274122295494121942489861777161783339230087203906137430479620546267752084448354754452729455000609786310905337011714138115991523094996620816861669750657094412685334453981924366916651665323706983877185785818325436475988440440027630464105902321915441152336063200091913310762550498025026396464386005344010633177247339749243612252012908165663589145348495474529563937538979960671419754032640760547629768943492285866437622708436946740412757213441519705778053293361454707977614001082258637628808038611496692661539203998621130442148107050034066867417197571341071381393292073656957183937956570281546182969773396849246234266258821987414115532155008246745306729173898730063835876502673644985967384386442973928214266741968710613016749888959147324113493657157072975334385672428404143451238674071907596271398254687264382790854717165286959681050520121899399730877022078137451690332191857962508086089680530373363844973117892186869793192248147749298067942117343434318202851220513310442366868036467520046865755362615913252916355097486578689694766841038322194453343437711971592445242694563818131665902634612490885148297291631646534832004063517299407117528416625527724159982971072881182931134269071121227287325901918039754769102377984219031436340376410946968074564003874174694397606040567661218072172182796350597291255775162201395667084074131703558680716489555442534096604398868316777872521316606876847051406576990815172539362154107455914772769725081683403600143727399018505965823480708332604609851876139894301895620448552575616857608308107028824858886897081152269359020519718935257473258508374663729259508698622008398706078527262043266013399012776582247583470509281766286353303720902628909484708497243717077354401082357277475783372972058769218867825685269007375038579822146897745750919635714824754466252960003466165780650475659628597714200843410383737734293634083874315389965473667821496829615291482907816066945302416219141575777624567190750967985799771570193564885334570417496203421182394467845829180852014044107563237359830384551109733100726068433284651475886249081873539437735594607916520958017571646539002940067154225851038639176793518121044723593104131790834947549006904573461804441666027733733050115018923979282197741288906172875011897182255278991409319090591720628669256895885666012074639373684818920354550599794415886183001332086244988104299298748628371187802899009749849002875585030144453131000989068128470301505817470167090354165329552676845499630196185084028146172740926674602344226697218776338015611674962917470606687068229548553523166741949103399126518264966539273495128701456222828347584529259837564251335416552981456527657084817984129931880305558737128054943295585119607007078377939683203436013756219232185373605303215154340142349891494397213451064600969605310366154045459072015314818994547088914403379409745619887313878696703046121801293009384978044784103288478279784533895232668205524657638196352492679086177114770402919921221827922965767717156663657836566615081137632180933467694819421894019791748774393383719828734924555537995574836349290273701473957775815744896347315086466686547301211131060358064866860466811690058262060666485100610819945027779993126491113519684576027603210944191528742813675351369491694619935867735947159928939807989119558738776857494286208775596984346200561690722894393265160076820110027653956058184165626811577054060967868512206606627337318583747813154570921463458386188360347356114441534555246208267254649471158714901767274747615574949097903750363454680411074433426158638571914775966738068905992436826854084226835504666582589014407259863233683750904867636322835324625627194705142848925609336577270827738121116672763505481646369586545982325819059758817816173954996498981984167173840291121361288873600247770332789925405862749303467186858919735812502467022327845318798843099238435913320424485079151473093021947704565868565582663116860017546493002839077996796148327772696526226025052189552953133179686696800437948768721603439497290465697509519637129477389656394530743293106602995963093300621122592596182885506571715952368439848736681178704958946955496835691562084291177008622990771021324148415673358766266009758523927041377272789993098587658726107510693999640002239899928995124345783626890730139412582802748093672806452356596688430492326476494675823650149069254172480884251018161010994732024472562890900785858262698208488299540794267386066537044621243928299855424811502140675840410005981008420478402908835020820258864672854075051331352031091321232264657915117449195621485294230704719977783748010403463235695498445561356666191773499547230790903710813104036301668582553973554123040309057962341378244831171534615863693138480224432733166121070446576131563287475832651954359251928574572742957552277520246036075205429874033085593343082051642083776677584144772205343673496358260759002206686019511635835380790021678210121287793782015690605101774496214797718701102350213647477634932565792248310776384764972852620697903929503159802008504550094084126807989540562363805558012017970688031921997861670528158607011155232662386023475520826949928593556712959752678379533976724990216493168709367283607659821058454703932944484479447056272445502919634576744571338787602167455518553103852118584982266016274553434291504157015181508324099104438409193273714735050861418600656738920954703799027543521785980079495916370343183550267158898355459636371394545258018462038526222557881593778014264588329099126343017949780584965767446278222246966720610554375415619409356446595169465950489609336863216224983826910622081864622963201505832136326946223656605135508551430062309067579841552280404878999001526961413653522019592645006445238151605041715303847296475516740694945092298141432344958272895428172959266991607215455899503709491736765939896858916044523067765103206881286125281129415220306248581323010780997671631255937071747308560860545808352811110294250052449374670862933584547706531251779880675654983584319263086018702988933497228021626001366859938444594093640383518399161952582620146832198722285902041859685417508636571452466079390264252403545907184121329884200872177409904524409927612774006589175571531875175741410334260171248918340264089517029313459892610722208543888917363332744554951609002916716582792720199407972687343642768203753496763124865994802585012379909783662636304721872187678919030501752222746866077678553316711262538218099132332992142812227537277055855642179077910670341072910101890918437119240179436357011804099100752855153527581280857886178730156270477995781399298065743359798716960343079859086163963973995095733958677965342751618886634932256322076068398044883529295929333236197599496900106782871866319795592400702439140302800424218581010504013748897701563644730115982133441858882173783561203438326130138668355395865026500485222798961430697643977543534032273496440520713661447526378708237447272838218766838026781069083629790122396950440062588333390530959658924157224978038601259567221852901740954045030376115857965884957897035801251896300628290581654670361692036957456100388046049169949721414187239081869003141641639362136545683226565446072011711870500637398681278715296414140110528808474743945705646252277176614562817279207826532470952267894003687107987898859701738576623419744465948408906634492603934865415412786324923926010836213523668795247354668874447440233170146468492155035389275858705432126527920846607946858395950910552359646764477522469467105434178526139227236101088238582459869905324354578840638445703533887712180297681245968617014796497656620823815222888703602552157999003615911107357966710494395612374791878767275173593432519556647036403458816737452625594656084807012505592709654694454945366665092775479385048347889496637884791877778971850185548637421912294488197611839105369099533219413343481813944254158243648049538991084898696220901590358353862073037065570250518530727891317602450771191123210336426766711637342159801530947125608245713113001122781959770735591369315070282797533595012300594114595367164461935479231525329792397735624924189423558213107310137421522247717476641608244459588643239824670512772234096073506688032105061756149391177218755024563121140497929639269911459184845336244071375206844018085820640467535391964806081069505876462906186722604901313915711715077289739828151818726435788499359858614138026237973516695931111509462068319316334108573381175214539366077943730702719080364692918212824794370751665976779542676355147726010789355034445062354635151277109158297316662547228459240466668679086549529684222047427176864743063444352726228285192208704148956755153573594482336674417205703755793711063788712053045127635754894660178482985589509698810393417983303494567176346136209887845135298330381632610851427260251498888698447719526461504570743617469891872562333095982133277473855243726994188185234969942567363047616988337903015902620037888794875679800325742690586711426044800693609438403238310060499620265671581275977098047649635282763590975670212901628451127250850392124608585782216607719108907683297610898889593273981023683474738363410973840111814078118856661508274986349441895795172282925737959411557690746896106312931782106766512487286951906701614089178425661584386459153286118532008244144189322980417074871039096217044506794601962788535656125067426497219083407689375501549956540322986441829301723586078757706198842372005682623166210439377847919410608893521454266761565623483400367095203106369008577532852103551775793600409525055398492634165392766629637720479585025815014320427344550978543116285431646822762333704328615314756764970019029098213446855197592020053991651006653712035815932351520087229073957491319278702055158966115154151683851235640674681073409942257613655411875093809834819794380401001924338609484907001419828220629218649334613806561269212359733208961269340515320855805271429315075361601840882000765093921659164531527079526787624070408832551798203062462491228373858033901694392405922446982558287998963806772979481435677970640583047182380496116673783483822351283658921605439602886414223866220358333002649027471268894860325112372646931637753173407789105762763333430011278347424431732609151226016338744030874692105203695283991229321269830119750305085908974454731015508905890586384091554212646403597082129214945306256407711788836113811918949454065029990292446707192011126462593537471334713221269377350973569110036756583634662437363487224809089457908603873207481525365228421189573243021691294988908938908389993798635198591448210437641289787233056211646568833865601733426356758065401564981929219471621740950100755289854145597712903464029243004124540373521847405732902190902598117057104963902719283460836773475011785985600547108024085470912449902377093257107104188934721656607884506278302228029849324096076501297945854788730038848263419239146779902458913178477897000853230310900503942843327365683647743075638009959358138012474152710919826376978500721404159031847318855216851023082627709645524307374114185568803047615061746675618868479949734781196035446200352214113875158822100488859490176523475999986336693351848859360967362308127594306317810427788651911538791884537635062174229386086329070231157534645535787506104187767422668681233031362354953751607978232732136973475326480236435412841014925487216978480677615724291611687051948496131748274394976757847048046546769655911522436038993082711750777842668349668053314230845601642657161553884935605137071879919688543986338522844009090070662063944224753532806780359037198211016606744851437506408605027918068964650034873120204399963278846209571803907895210961464387741190010712470188104170674262466213082680090433870173834602586701087700092372209372267881276005239118264663412615110697125390178172365554895849281816239594762393999852748519604255472362119766685481324278197597547952067163004564173409811409753216451157364550055105673028425100350616199496121770530903844848407503246930275989562054374148500817762527276872030303394016975057773562996622547580820679273978598061292955501736547088952015818206098469087979112560063140214994713318523907909213183985415402651945350984629862309665531840141343692169388433053458040211908720799242187871087246822594875105156248697305087387171452956076754302663142950943179869343729524652451689006965525519137961539422462175353216163322379946307171622708320782827231537214801594649795970458205817925214777948921081387238697556404440761345940350707318725253133693263240293925958624759370068341562166802745418619616536341472265237017204144792814807568751086561562755722428129932925816362085642686336663295052302766421125091148476578542687971545932024531175504495152675046253711280466856655652811505180497547522758815377874379932770018705363720837695667023921447875499530906968034928040511628831344190166531536764294252014268455697447039302847571790542893725393248367472570373567376949692730373013443677324550005659103825059152424395875924880807283479883858667592383647468466973698698739751534919581851841858359246736311065406569768174343448976609247827896876134500732542168194837655079073209850062563336385772424842050854195531100301210006730245713233027883241122126462053673868749723560845195826356546863311848709594913810925897525064649819311896301775862216558059728854761879756443981901437277474792236575265702502128122243483606065704199294707812247497373525860171882979333193316852916974150980411290175129049905678219135650717526490630182837647828769004567467670738254488743919703681388187334792687489895981456034056825349245517492720704274059097097301966072721837827916615636064910249806997074137869562934353499526182812218455565387884167186125382845783693311420931403058524062342710005860115070820266985510861153490314628753286082683859227890659161483150208401799830501326066108430680788300206441911607249262011104135936386490193827190870745703636300894062691026179111665811948883859020299314358087522177944868402120107195680740685492124136377107030893062960353370353552394702360134900168767146509986514539218447590624139460164310085232464564551139251149408872722255923038151573701524202760540174735131402250337827365039432140594369088903944000671268780791717275847083506781153629015944796489063971081843541818570442082741094000866824614174199872835249452727628229750260477876111527056904870204732418771298085752148663552063369263669810990672330999504903173234236888848951905463363196862610842060225771172039065596555276934185709130563974886762369368530977501882899032065992035646514372159402268128897101443505005261299023877927698104903167621482592382917940949785014526052841663371105774246843442281631676404011726190773906278636931159018744342346244322055223717854379453918577622494194391568468529771764375605105965453748501405178481391022378308493803374500778556055559084792555376043978145999866357894697042591544266925503323676886867016922337283487473260738244692916411644788770900903433512901324900052333033687920717905142029147982680257226211687550113898297385341026947959046223656968240703160710740806271239014640699478554961058696155151803723705352172130177956590012469946655026449244465268575824662160556897674080183544947070963688684318059464526866086345645488139459847351304960563939660546230351266401302634213465550139809377656375405859912483060147745931185466368140575013476316871414552315300416655625593043052140573184325000571288750976775880348549231167098783945992880384769222152069633606245225807455839957562720517062486043156198143920356208381054547009102100470989114586880226132761899425327403006727660243825618914432008810512420176955919463219365596215490936875377266124488640921729471269725226683050169704623201259491429626744019981605352245265002424268757283545126789188181395687126230616908948374478600337933666458723818545157376335902343915105537961655314299832631436534490784997656463641883848826663754483574588717998012458896126234966826774725770419661979830350242792516005439871022251061551118961295062895656136887903424297601659353438782655127354734294817463295029583195299286016688062473715185352695941846554203014416617993114296126294077991536678611531841603821140714837354140400926438167587803126463993987643232261910061387223714139376513196326464108976777846959338324530364822899627482151082198065562017351845247522719395525425448623594144025669945960923989139953148671045725567042089559536561372120416877447282965813496314782567908190213660699345598461049739474033591106201067479647558038449691697627304890729872295491031155262950698397246109831265578197834322933527227044024273265654651261225673894167683393841855504646465025940515936845587907509714350490047417250940720131779126781855886753398258544255798301341019615859005695544016068767115143336642251009489575141812970630843566651473321367682596016307429136092746076233659099539793785744049206453352550333918173705261225806485438238021296063149585638011702715534026446781227599456759723112980061204847741886607824653580136502425451868808295810242095330334542273362021547940370757834336566108604704424093208745361663459187119976371542973240870275648309712617851530950013829693396636385176110790753730942534525137482311342494593898037140570467821408017522736902839682833333381013266171448264830436845151375043374192086476322195743737111945581643984070053363922054567801371705599058529728263860136847930009566422042175801202674043752957891702206999623632078038637098517383227570297199074527690404435012280733008747934452144344477516557215611079817053874712887529857450107555274978781577943201443715300593192927859004801553729930177292633448853441411470741319804055006715355570288596952448333150631981101974105769703201264335190845487491871172876259323396197172425015645713454861143795283113249014207775322889916965814287783757658533023102570378723019957053771775720029651755464745274246863933365978258427198080946103999414187456653014519879666940037380715575967931725199218517695874515998067110103093306068185509862278210754105613377002664886578551608448300556878572833590019675761324872227640756477240444706504977917685839744989001266732344945703985388933203724328384483606403018078346659434726358455812175321202869863884080355566726354003545830445424825322283219045734133000908724902614625236709618343390872844214184988785055172449972142781319565957401248668232616779493862966216940622780116521290758650385191851370731453248773817859493836365530123080211163029702749803006392988813845416894063365611813145867903134322382855571217764277174572863820832410161103348592018244859563457766292801212834908068639550371783567513495786036415692819182610011285217710585790276722848919763586385279521339660525590078486506037565519408169788877152846293218360203390950767189214541037943269096594467435710387941161870406754751631950695478850794451130963786287791983123121803873903487348457938507945491596269213541535615476150213517506789615768729445381311630665785499804767726476843637058595344644870640751232360939189010894562971652287835035617457767522406518619376300644009241438177804653588087133227272891173095816408619798092169979828594125414707160205724307484030095330115788412223795828896638672629246028964484106412153513164687343997583153947771032712024312244095682655980581659931094050037529065656168538058947139768477054083390260111215928028431849606245328853716454483621081596246766273117363966081900681061878382644467745667867467319316074225166343600831623998435746527582545090644931613921314501522440051084949339002687517297225498601060709840369298980519863843483975539226785017238930694021691260500254852241284057096132934021364091210246457017177786512038257177263775113290364187527165274464111481112719381374169909284310158131457182448753272773408157785086302319601492770954994005077180395466663620939358934985490770582250574813260700076950543526535561736788556433654954285080271691613566130450498314627715544305045723442804284326278224644493934753590831803615046770755009468493189396342961723122105509026783588341578172648225210105178784007853722094185051320180672911461364067471068106717309735525023441285286534055044250133578548814090902586900610315836159676410334144121834444423772388682872258804647549296144688110539548598213053735826332794738549495413173891088067323401564747897599459212932418318729831261818877807677884836671222122879958884836280015463902422681389457178821142505055025495601027835741763710978956562992282466641989806009861214267676377834316341717159376467148558882645002413307346804791231357031302303649313359139528100133346212386973438291677968629056405635736709370914376319711447484693888452275645146349602552537601401271049862421472770585811119230783624700875456326901820476748454063155270586947037726555125390262729887210796620423427980786914180052063726047458400568006125690031505868558654073617468290735053800509571213845097511710370732259502090873366060078673792266831876256063507722324270749275812223398023905052176275223812626713741869991531870661675955795279489461326214946600459562464073416135412747268448327785475263573250447193735216091322893976785402549780820516189817689743858286395959391384625326722238806108467102205978299440684577619462366774520861957010348429371129518090458431924577507828648892357283346805462594343639391597799640284922360286707068237976562533673364112123645991914285095760007552583485522711807633694256041064827085436870650424283875827709274047273995498803279143567236288866156083821911919332138266469308106967223980116808123615334351996773919175122934483293316268204771749003215312657959905871888577284762535635908811956892401408083178902311569765193174691226512413585162279473286958225502349483170659508516924268162657155003960682779652381541278743262004735712012521444702093958310465570516764484853593631192411815691991273874153626847339864931853910967153258698766458811665875102267552282889389236787136944165589564373462626300784199051573192687424588480224491218844550453235970803841182583552070054434590611618777871002985532368018064327423874282989931229226927147893339292426598107151310172034382336175701459010300500416895127290366168202662925044191073168510717962677910540834229459592313058759658919962240183274048407471566518315990929692969571942545962066803871114772905971701566292372814627581681899427653626076014529516823494903853469587998403687026368150851217734269874985486946090686170332016916193267737579889046228942834400404883909535033325211550882291124386952310320447494897133759430668038111671473845260958116463211095411400520539488664658651572552649228652925257929873836662234696936457288640907173652443931924949011761273555285252827820385809789277705395554113461384285239961285857154308339122923506660667247311564084341380186979507301488487873484990098151082440281922442090848749912443813982535020468579155662165624614070601746694824825873441178739917230533359001614609596617908669019874792025604129702052831238716753172255964747123615724085715436041101803121479651377553318157002753660358660620385233221855259139672021522384302399162514638056181134364117115930797754876116239550132161342874646980744992138001782126962942547134786924477955168951048879927169796328479299650728659770172548028466028402745554838772541526652587723839281714377614360701488157015903904004993053613275670582467501863805763779989089851485167805724524795190773412653840860247860693312314800005259279984316555206490289409578620119637266303569076377053581877569778152678315961969654059799115819212422057630780676648149697895588954500210336661073831392052728314616966963860294771146651185428382078193154887872491516292888991175363193512435699062029497469184214348605768735935987349020440469765286282642475691390427251995503587110555944480215046091423271785264512012141813445022599675756037289656233963209136911808586407643546804987897193831064982782833446991595194520120814958442678958621058778998991805522988160752543007903449948784826607322553414999328812189352059262072634496281826306748162411443155346520212858401075633322390798326081115346608266200560314456468893495284563321371262275528820484262060693511684334866462335384027502047359726563594445376024370810943031265662268676862254417660746251478602571163902036994479061930340008991876506782369239147396726671913175114546203807404079213926772770778277786228831524312785598539101584729808356568608115412201214444017604742111928805137690332640732354216371839792212161162898660000190663119599020596191933795867631199101329097618216233671857882016497210928645309537550792059226020940855046057145617914415393521085100680570015221596641906218702856137509925964575685170002485380434211137153470183207028134110616646963608176897978307766717077246214620301263771759165270230965623918847100112989071946887670559811418193859850051142051994689477988721757429261721438936189226160819279512504299992321521591713357286606151104006036977707240839346701531672307149563571161120268262233272286108360798284333160752473105748210406989735373935456569786021576854572961311057879860592733491818161497781616748442992690507955479179305431313290461911860520519645806950863244678126533240937653090838668554021143369825701952235961337340321310080951340398947584816128945436314904597570597986565346618461461540376730097958486535701666660973924669990250364877747714659559294239402249701161469588529995866884854096199419474782421910547063649589706726723463959826867425162141161710148313897331867685391534376735423817318218899171171018977070661383589458036253883071563273064067538012888697151597673391575868187030475153597014661440867381381278453337170839733228505897221208410371809500494074107965441335462100853650760888580202721970542074581064943427207569950853574653281227803495012336562324860068491794372770372649682460413096766177234796998855015169045140124281261308678772753858940255388789288891812799991131183607348123657545628716057299432903553372041458214737106347531142954401759496312291299404661770348570467584213748434398299502319417859510855579281823750410618803847556219278892755139885151085787553305810112249178990201492076786918926949264439114562898295377280907581968237296636365319157645887150908458478704543104331463508494800864598260562031970063548361575960335130045736340986925842190478727641633758572545795014039454822328702805427900295487131261053131686390612070780124511104079549611135004542050769304729378402575792210609482661969002498523263621011251510053494887006360167488068484148504097037438450667891483348153248157955144537366566778738006590378328544043617273495153841699625908512815727773303568232807387749623591157170773827780316005942794282306891970828635196042829868240308564433408708558649774442752031968442789342279131635141522094950322892195596155855404211486611013399257069491569549347657922557119442444031675767771703002872938566750387683540687402379510754724194979814290553391637805120145276735013168787105820114550641031046849207141306274686307036943402244136132682972630105999810581313458365778225175427282563328698582964391001779533012700181039053457078966474443455853270734692126245628857273446737603366057515648885352591496724398826344106376112968341630641068308571414979310640044899635748492291778625939277945348450874972243671701268961439927080139587299914876230132180453146355906502743469968199601909474703775839611156725090672506121479403510253639913078857042980070178549436452226609189473477785164687958424250678794576726596491322422159709234739593440798141360863440421827553812548052454571368657278043161797679446994100931612061893871370434886962111586574286185260775006463432066929133876678258092909320386404358792831198876873144130549449168849904622852976017933307316826637884940893986718095249284095244707146245828248087614247869337677195174694320342186900684149080076874600565855969979272539812836868499163793833714982281438685435417171148019360812971917256194730035769084877845921327846585151964770516535002497929656401551620355993193304324679203259518233541474422932343518653734294718242397116388123571099384156031031257861162278825954796498670083332486714511402057949876311112399018630420252348927192677674521675205106371364752117511572102138029923948206756099719002447137157287674773977683495781447725799834116090430980512031498457998485878152523915043896866486410170998112204654056103621472573206868630919285452891671535738099749315082314078363009763674159927297217498337554504447849290218059062225592125785797106517574194803925968923217915672335332653887584603263711939919886995608677161883545183955692966523845998463078263852471470761269562767606453780546107363036636934533386507141224536731138681337984249407534818845560782065075830651785796895510955364368664039348448329746689982003584231582279696022314982700523259767711441993680095976288968570772302337237729477416458183758667895594518233097815945618302487501974425717324324549203426008006108099610944972213119358014618120898600677480954951875253053618694144474622918950234199190635320102401150283959439022771806888349243164231878698738471225908270825819632960565171274169892763810891570984259814699222676562608923300373278080770058949058024754609204984350416770725749772957664461975382098467822491943480020631607470876813492382698074518951570344046637917484396229680677996115995832259336368813453296903138795158647879073239298358532021828946837258352228438618757008080310731366731465210550021735733103199165763417536824164039879464155782126883615124749069395762654627508603085160490400668268458761944359009848406796305902882712664055032789932460830538006673818469116645959207376539797790674939011193163829885827575581547852137227767967564262387059705199795532166061768622357552750273497683374719276476950438316530083990674876438665535915949996926965361816742562405878526959838221296119055313762958609696032246794271740351708067509418683674220108716274892316563310635718281312127614395330163492213557279411031024791728056307423932910485495466944657807730147660697056246366994714756250108899780385904584363068247930645728938245353573869896375359317395891120893342217703000942761020225897596835848305546781572540437057165825905177438649229017067898518375002921380384226822118509464552801920735316410103005696486073195038334108627029061380971154091703342709186130765739723174594118374675430919450514258590322026233711717809045422854291745787254501285020324891051779844279698165405821048470821942607208221037771491297650258121217318158594192859593268870231550336591920296673010724640703327403278087129641099429199398376834515474854959703151044573744807521238060443661546921507482254172708926360164403122450496627428017824977167039026190018248747491521543263459730958903698424661455637706799111329592592012719736680481189648107338324027571230464117791033423839776173932654479298350666421743288931094714493244666769504370535810861201922374817060405518993754563501215504614923775723961294915127311892187198587208329360944051207766577105933595391243026620922341543928314483621701237281491745506598764662790483803566803454127607030559393697522941462644388841989393986417083812110594960165018655713627677247555804149897665908100824597913930504031375950134983775226888511205924680858567856017283729267447988031419389786922989238685320372363562121609856040249769417870180676910024937419478120604835106649510338464856667614867834318470773104336012603883753083579412094019014665201756264083755565103949158652450796291184824834732596994602336698473541218564268489825153168140187456746955741391024152832067492520443772628469536079113537675120909327202674111491760128458201434514002794050726488258726499430896870227176512134011695137398507632822729290447096441151473141895699687589449159798807061524244424209705599098868339280417510850002228778763557692769493036989277010937461605693485242804630251694572959221336849276643636615961525651144177478358270058863163595385502058478452533737885047720367415629276408450843238996601910902998948227992777001642787957080490288060042423186083300444218287205941387069306760470385761010237918681388058667545200271808287887162988355200386915604554655135656874797870013658579844823601079298806854329099738669433808271683007973133598163348701463759325581864328826664002580887646607947636624281950772465196315634927876025797347425970943827020029105569045528672768186956453358713816287787933266474098100199034520335875313830399216048855074154240787234712772817865519320664490134525885490589369532426151652284227273449322878550162785849643320012731616966808901179885868826686351557907947895950630825453114046407014651787116663420323262167918563071778293162233473914968801691247800812683250446042996407885857850127830008921058213022577146108861784216251313210450447488285972096091151217809260824253656981045486501422461224291152046103884330508101137628152970363575724037671273350403066202867271380728828242086932414397273396306231093340666578590491212829840058582199848039581855687787341859814077468718357807768626425211638061750417605964634106902949966838188846393661307726029064848268550191139915237202088605481635072947921334354551089651980189654423114704610248526311207280526635023662012718925073904770372542708444357367301017974461845556822336624966691932158129100154236523269379182700750602260385479393585511306052368663388874493571854588389849349048718336152845653887072338730621772142030180136638683220235949299806579399642510460949076695507536219138422156653968465095236072255581861383042268551570938736419897534928404820130832252510574024704005700271184776148071401057924557998820580838508467270061723336870112224372590139271323648347692958664898157680962431730714760965157936525501232451438579293516079785026347728502824443359401518182520565719452754379053336378067253532870474066891625207649247402548165081824013569495793182115731661928595785326878775873593208638664597140742147653580985654966149038921566396190814424150006487618679249297810549756859358715050412398483191064708187215531754791818999964373391053570973447250496256049622773293272562303408923009967057783952253144059207014322968265517222586363521155561120983152425773901380352874477140640392446793298260747121691445183179319086829047627693244335556829713104597161866818958772394333991183305149016256748231493098747879371886364555122642762741940490407209736539327152703894919685611219843594043397064794715757200795172255126121934301873715013339637322955971196019761520943689161017667135380599307221518982857521108153397734108825308834512562513717858548603468503066152643504325278393837308762276363395084052911811665526641261918974659346270375415658943944562890126398773813404453793373067671587866977043040247644703624053405135196390105516464192303627188645840653733896418309187300820319423307325695344270921529778120862730550731080417097318177544416724369276739598586509895219027739512126194044632219065167257394376365815452413170763344032083088218288361995060032026428328193760647428670862557314474240055704498999970831106840376856424096904133188374137374340697585286370387707628941741268965310918029579447276473802473863964390135171311257018637864119802633403456043014389433450413778852596748446309095866357083242317283667054010175821366533029809351133507388850547132649308788069548695652401169876557291441300995179421727989919043682476403184302346342237483291233943477742893934379538418688968071976021917487417646140978715969556075823464956267339538521452112120909482018674155665367549234316493105900514123193442981485145883749769689459149807799535718135283661601642457185612474539001411710979362982052053593866942451841139360722001518006138484322920992471587754428387034736439341978965233741694185945837769721562332247654811020434341823719469599428818104298174329395678067991063986359046596060285825710424430427882888678783789810820053354758783215756798843680277269135337689700126388137687646468744622055333133224491567370779553727171644708299140307976475935754246398690529746384534993244262537026535944409258245995648746119385652833875115206935549708545437494244983441633948665978772158306965286361385476774267725699501471910554663556930477170797297376527220496187530551520826193721326374178065305038099822490908493125650675043632452457580843428546842125343475439338634489528311731013530883539724743429393106424101648961032410655597551083613735781705035808717465805733365012297725589000719168384034590921346943668563548666868294840275621164661319471162530872062548476190019040278820830691172887138047032163971111896919250274776327430506998398338178465968617963450645314821518104955215955812123114163537553511622521125581919557624284921531371467889523404725291631738491119627085008961804506691764234082419967915529392453904177890426735616388942631972462951014139064820393802696964464252563914652479203937127500301004483405985209679041301238090508865258090783564566397630481827756497715776963986949237210091950137089456633018991112655975480820876001979110044011422688593986568174665475991244826635727587519665712544928354043882598974718935697972481732665892812876203849258843708702561473638453104198230084621143910173714905808124402292815913062300967664082052393252098804392408464624490017904421323989341443661686705648568346527486587452076540282463758276381819908439833138618045976221665508346142222753405550273241952421786111663815472257751929401272912019946224235549813536280726835018145166973122918844693150309086214771307426090124376051486178449348758739146225934058698669490545797753895206538267807710227095037986907384495737888725556191302712299254350782496538883429498171857422019729480047931556459271176050063672033219059768605879071999283970094375399122642721024009948357847756756357086673564314490143199409379861257305353264153530347068873413608136846075206759968805230511169030420592432263987043408178617678362360376950971565934877218373218339360497317167600626222484358259107588370561914534488193961408795785050384356423518581928987298998998001748217677430140504458900468898532210375059017925541942833867393678559361363631222689835802501274099646447197801078046797475207174138365558343343518154646616305662936282052928160554943320645420694728868246874127635381423326227665743608475460678349849528335355622283845015079294197347927154716136266348353067370609335272439785530945265038315320235896543067396802813548272799090588544298649973550234700591671369389342034185007989160149322736388812291211993591172420542007138936513388137347448568241781366377176970800133221296573469110082135566780639040867230032562756384385066658667322450081651212849136400883808463660390846113073057540036420195894170993435996391850386849007894134456201285707055216678245162257645624916745253275562075671095191301446900001778577208773585772982916834931605649903613926699969661949098844698365127345618143473702484570143646144661495534307819689110787111530595033726116804027989689902478495633961369325523642196521060673610589177884950296944213060689250777876478966017035557923040900338352474073043116910404944294462272799049542798442919001333916370594778297482469309020198358004951643910320799424239391046163504993412274846850917520506204465217645007123101297527632882820152327138421191883260156931091120370211202128145761536693371240473185669542337966180010174755532966897632019244229881036953499798078438353327497365359729553756221550869413434007932813241419353129432417523063949646303162014297588728323444499613900918507775113285931211512595799658783542929836602580028981659485793595904898966955713687564165835108090465536881694623534530303884269689934059186197942636752020168143958964393324020308954320457875690270597711575922092434120584712748264336922325901898932772438295194376392527527854242737872531560161946837933556018894574354450587158503917370936165657116043268728015746130373660481069482673274575794017058037071609560395244232509203225237459158059903912780908113217140536985904283668340428657467261094931116410364812033892403829887328657852118708511113189340758718746091690339852248201475901543786707496760775467210082748061004767969983138305219739318699933150846435240439571948187079977956384559850063144184875162317590052610687495339928085705795075945184352487539013030370554536467191281623725798607605089496276222179696869591477169162073483171193809985105134007533533273115846898975706714671899514998430409954156024204473758425225018201461755616624910865564628446268250770166983646020950119900667382331873067732686109821328882778252491357412033298356933131248369713088005466291828373152239527626436754741558052403909028189839065795398080310130897642906289100101536031685495357390449946335602616650168545595326986705026693341448194313735692228354617318441381644055900018205405816746580540573342450339295344564167675035946165595371543673492133820292674819131622421387195550587522905302411012973798414483243255597067546428709454137070175932321271800189099523652449666233625997685695824905309717391253727920429422506241536284583239700058350742200581133041473859096472717554822568767124674121365670819436631234493863480092160034020233306063985918322423840951400650071732635904701181860962291291435456110580100501775856216833650057251322866963629522338446747546859231436021868757910304037006695222342289018917589086108319518184043239449359183141328062289053430682024965105601571242154441382342244727278415241684068922598678593653698145563062771990578365159721093723601697602643276881709148052788876259845020302768881295955220277410278146792719959587398194169897995273953598798621168135667886255447039455036843327962320507488317040439120720999870205853778062937442285321826840223006676136977885841582428638976464689464167642509722983767741639571342704644888683731325682494232679944338522130217262993791378894083395305835747428479916346074251427510683349770933738676931714190676898775597495131106716631479999673698841913547946550433619267886230379164013859421954451847261258015726558126533960625026686182865742394298803491941716967891128910258589077221250607544033796663158466811461181139192153870919571203538424629695538658056894131188571149566774640275249679925021885097186163310377352338670826752194049594296109291533709619554841421309644154532867694921737749163549733970216022067457636122677163138020219489503694907706706293722483150323107650824787513376602873799743536648255430829987028855251925482461598909580382615405325378258247261502125690230367103989775840166340557804509548219741113150196804473102432823209955418033743710873489497406710147278144930227815896174804745273832259295414996285775936058687918683948158906437417533750194818202687761770703623621241583757818469736264946292657502766636128691153927594423949446400965251895981822412564523608756365533221344312833206697863575211529296222220465210176683919674545714246649798426564024428040493405890455753741043056078055486904017334088797424748045979275660215705943331587593331338116080021834345938350677180750668743256203430168530830862141384483913453220100764606222739429346442976750102684084686299911044128049096972238940005067426590952670517011572123350777336217492135885193019013683959592475580582201829546154857205052288746915497880397015674722663723827295030224910377639983472343870511706641118069916121053824128899721948281366568699548230311041565186956442894860801606150527137884854957517495529927981560715558457455193868902540229869289752897220298532386659126518627664872857783677909671773418029236651029008985730633644666354149873622435861274052886978436549932203794001612988091240323606975637463397770242446593915379882825790619668860546840789771061283644103204621237902700012786081278761905528255032101030698971867992822192052789532862566745524509650309552803482459198377573689249707605201426056369666345811506086726072836198544646088600813758686633545824191480802778683824196987640294310365675942259191029173193443528342292630500157801414015369536234887691174613487427688643262296378137651380014835157119726561558555849103550959254886949676522292394860000592349756950382570045527675501410172104143200440098738554358607450523384232881023094118366702287046029345697925984068030467781541284422627302098755693620900426271694454352031216373080202468957066709144842491995141314208280918416885617750976564058584897765501368684594504910389530902840822163533531714990723474794634505580637343415114567808820034801729741101320824899390928874611431954097094056272422468589464580258379390664587223173186959045024721375729377235610655757679149415138068919069960972416303910799865301336597183042859100366394646338271076337478663679878791826273507602841142630870275521385701398655836127635630354094248725830614167057398862810739580933975037818408312795814997330071890076782479369276418827802142718314758048919087021824871111904476208765473856411872484248262960145800007121858426604295788532217510323178946317272308491505281768863699978155153249967366776407242668064723454922827694919728397070955783183601775830111399878130661093968584076942045426438560245784868460118949945426188391310376898107174677263075077745442971119679545608038337941685124052000845717012691568779284247637267852800792335612695828472488542179797987244209002426012870101421913705675106982748288113170016319735567087668063011542760437381666406431224826688687629922774080815578415385978109958693007618880111659603939082141462428041603832267879398322556089268906092336359900684304509437200492467477912666332281011515247846530083669348752079335571020172091828254238978571311726254474577267742324952104615585454355884024757639792774862450570765851950518606425206823363546783325764335261015523830192986243384451059819645083184866736985521611110317626603036754669498167793784449969958957968656503187228354537648494973727398119007859306312014221705182396611885037913851562708354152573118281419959835316779320958716362734513573961459663963887620905050186220188352598024758877622796856081810304845710725815607221559839528161308757963090489476662152132023592564645999422506216896059910060406600608624394977308761544906246923805462858436162379179566566741294609030701310021806277666183876009470323171912579466194127238134486118012550577695711423307292528010669177182238588700482940575973293309615494160575809952506683011220569592786734249868629290115125615464713303076841945031561006927668594509975654677482046990965403280531377780612509331582762550019652836308907123494330127118858764225750051370051263025851263417692698120174342646630670063630949488665667717140055621027654087823930763989320761741803218891123217602010604264915575408577135863113915145031371342967475590202520441133689536453613931275046136374922027039995016756679191914044710509364573995381353440983226330019688116118604545817286018838059947250930595821679210508181982002203676198481992527675521668241505602430565392606813882412289306118216151114096204960357571328055733020258492011702439760177468286021948944566934752192685054384771147318774042493758496519023799969410254252702483778887451131387143406870225454773936712053119904758191367859775439381810307459756925581561957192997502750195666070157693660875552443193990526482199712742670383277514440372353369767593699122427268909967316853840543127677217157715497631133093757383053573427876504279388625329971246061997564252791069136862609352372266159904158259520753945307254880676966047927465049187149950389442985393856403155008446453907294423902362262540917973038602285924104555676195550965800862507425095773111139184815573359838178904330499851138166279284004288505777875102129341317906827725787641378897734182038869093607558967137239431120251113741374558597209429890814251602272880513056648154681271124309816174311149491011239621957321011297806155834788095446610043573900261107938396678301077132698298943465947642682838843024168204157553406930284426643052832051098111413065091717013013383791847915589186993593568678449248102667393826796789015411659154498848738570570666934146503391406762828519996208476588877163571653207600913515286600316062930184637842506919116767541023454149672308780070334477815548236287796852831505335666418472658826489808425277091237257944823135219114348334466352994150016102750399554892057146800513169000384282224771579086479130721030886844002742386739416353414225838507911132369921789535949240639091106920871009874149699535239824354158797636120169295580683819831858386200670473490436991363558021138115111336034542497383838678062621952866742341091410456707664694998244414170582445135741128643216116205779931521295914965711075794430672853533420025632660524639468804696650152648766970472963038588408728201405283008863441364093383288439948194605880569192304111407202188099987189455572013752421411581602671142877816495109611908661230714302137798843654759748334092958702215510293145542491514993370303224863098590029355599450395028940792336607531369230856039573516363631687645257466845443041515176904142041216027975368788067934156702877215559323022785033486230535222281833639761747139386542459657827527146608451731758290673573641003366570462474945063470520163681420439623707999030599146665043671643607699286889363132583596208308954769445088390904006764156156628259569185875631169107183404519525320270751182261937756816241844074841861811736240592764512878979736560176504159711674525337108598523787797491779871982356848324231364075173725404957962591459045859608681550948207893453753938133067653686806228902909082982100614278312744450040736359506615046448821549119692008065519263027077203718266005855677446325683590548518494594663765745846217729054447096485389024843463182679567239953864058076835684519220094907361420699024432190887780130623856410368397406876383773665726092705303016005054995530300644640685217510297634538487701147145236559619748860144767963525206251804360794324799612668555801966641974104624729202140961999318125920089102731565133072267670478315439406911588591441757968928501932432681536869186486014398820524885273724455570607463187041419722067513761880159860077630193958182937803704392312206018684055588661977454429927673957839858688311930763424278575415697870643677767283640735266667848442877836702737311483017598588748378010216420149486102157987422489416944126470956646739915651615126668966884319435818128383240652459013501792272132632880061399518388360413234676074326800730815974860866956076936345670185950394752933789850166050415728022956669107449811638360594440641355885940104052463707183343576923726316071896659256811139077601674626842875003798962288534306781688028781760868477501381797924872803169176479115570959312608733481266537824193895172558580706274802650036109888541722275753546028705694290278873414347422742467457120934567522969452889421238543053554230790144027240504879318875097983085102931171918409971162225620081069394018723814578990087939188412806239235712227583315352265023443907811032057625107373507955264596356064328884687371354728017239821769616142895113302390718852362897126076604065381962890392637282382723850368907991258062983401051962059191836511841971557074863922228826963477729437880105416949090703814342290898398232687156606152307840425810776914089732759582669697352254604088455104866083651900307030681977791087444962273910686830320320434207952227896754553525606113596068378471414295151196189513011488277360720271465841120964239049778220061567926970363803149908790478314574375406868169147224923581795016490563129189060392796690063022001999130985135192113483329691222921959423809590765590557677445966038278575724600426100031094100327789595272307884391706577489905826172712239137259479013676217475575101899997331147409431807222422074845671943599852321246195541250761395304993959849960963322022245218818323411744987641694726798525426497291951651557659361810273325729053254437767263707309677120636036542283825993103796261081497087505163827537811323654404235697877987954354265144458766384315128055564483947083506345828241308145061804061475892500460593077376486450455547030895591597487118522005959858029219930093829602844360679892995478643350019461861252859233736128376720239092362287832607803704173853198277747304932194816033849189632868576236790105185871948826685756920559101172302213111532253130674516320106103639538687887611314594761550216252523411716523624433836837555934950575648238737514290681826373849158903928653828956430345050524498012257147224302003822543283142194988962302417911405667121517796664925561653863892119718507990944104174946414744682755055752823052974486228777194392816451934538002859314755868471114801421519482440773854268089681428872773964605023424804163632528397443217031129243858287230832405449527488745124604167855856330958811698084906785079722394736244037223021706041080654160757867932973431506899642063479129333241995227328436612906516958490800987703325834905515244303312147451367760446778286486995227388104379101220589742458961602557346804365378598953870807764533140871846308482097672013670864911741084627921622056964482420691009609046055423830667059585228659083507595558693644790016628108041737387510968678786694939080558221172804939079152811573185609564318879041656160849892808773721551097597135740699098102679743527962710748354972825610166255564808831379265969092265067772063929061502066463673044746194963524098720654470418957096378946454089320992922750034234885015379738861244200429033580687153184234505030206374578227913959418424387570471618704587709303736553252246034510123234741108176120627046503603464893160396380473021207739393893288246158615734978632309567648909947477421417711269681381911900715107450284409605503156981583270544027046751405040777135502827145271696060132575786040664384531447777165940199452451258890169159223357621224732213527072180245578215412603600174213293014637560198787818713799195628202543293633598341305437732431008127651949271788199932813304763180676030983423111893387779984358543964034114779796713229352989920343336704537637335992750858340677256875197682461136758281659755451118174187016417027655986992273651589206024181329873318925541386679332374853915844351888701612320184677130320306148790605210635412293833595644059158340509029051747604260365048757151514282761106118102115055254447337645891167947616268114271999023493149343212696704651278593384842876168862906048716191065060817856359789966217651193268849314355480988585874545389006648560668665667245416451883590473638614189464407457012897841445174466491232984461886818761063504291178620588451113133010523887074380752297408601785075286718407882330542357052579014827403544742210090519558469406216177100283456684483587433972473091543675539923857496639568091656904321981301706843959611136875640411860131943805802034404915723507978856569368053392719589009458729971593254402106007877303804068014652366643697553753144866692523382792448230402448146237705809935790196084562878173397329472788759745432956265314042931911211725104661120075688471352472375446016698055652267475098857540749140166675994078402223172003613416163386048776897362539280285347780419559899753514816437117799227521183108124036379731301407323215463350352682052014546723119709999730887541097577304047397506103740104838576907844823977445150634207477590361598411902435623777220479947015604589181279646631148628936924308947145748579891504109941863152857203348973886947115425580838900898369606012420612326853389957753745915490421174130430332193935586130078427844842708475881163390874800892200690855132190703973174343445514853822612134114261819229614907910273501599203636459075992850025941906416785254776070945000750195392094997775045842986914399113098210734111198760220569659543791380762857691647660472651935994608316612672724893402286339893438291448934511621936654317300680624819579464061197370378341606178168585523646048625854421730564282017660968324825939432551794923433304708587548471159924233284720768685211839997760504735406401634747057200779574979587040782441407980454005602730037118562712592518704865217846278832702822057345961452587837785100209674564173771148845912758650359333647730330906493309644665494801646373478552930079459706454083531309966314591104574436495469675587038356723968689943101459944450579658756603339704811806812306562898007140464594615700267981470218229144130643103583009182092468150945314487423359268594838477886471019589453956386482925339433375478512053265296388594292729220752404894803482287100445163121766241862104457676104436942977077644059921906220079785551761929419691073017414056786009114797164186810097204646613549624731958939077333341278493892575636987595122116327814527349812853676998093760496320008593048899756609062824469899299477803884225847567830213618311387473762058273241902264473745365071633348989424957029353166752427016866594273034419157955927192720337361064489638912040847494571523236570677678298487870716932515743369384853631559899314702519057235563520765502866030121422472274962363705004701014691569522048103728662899646952105510338424914919601757577284245360262168775001199041626284459875633276274038564229448734398563518914121087045206982799824638456043225313671926201210925989383825799751887583474924565737568944481771662208953519952398669737761718561519760073444574810083470245069012059832538701663844541940383577325790783798228913215746578841173807026800004602418987155684203572408463584812089563948828520007066527218749093226140947839647438785791318757328963097009213591031016409736297797372935602087949776783811467939781819022135436440939021520902340153838252816238658968974707548274200521228065629725644879700545654700863835897287786412525967171539225953804019702875917878147063651846369996804549920457114745732804344731433100317089760228243637916762895889050743972474919003163820376151289052444551968698758041558484761715646262010389206496253040815806403871052965378245581482500532896006092898418179880692736647691768368411021161924185982085791627732333096921990098022094622768208188064577220859621934108349108668289742670460926075850284765293729134767355679514434866811365191504013534565569977160498425495668190436807633893612002811241436514659174736414877636068141582985086105008961153227645819825919047799250408618566390972447192403659284584274772112042956109703353717438437538458641264236797045080024097587739527792606435182071126357683084912827832405930422746180794153204534701764356453419808776708538251651370609097974700110828284717329097214228265569315027759846801200071765061808729554191763393106046586192874456456276395850548220384141900986695836960637286885615967095281144170678933174757828764546064276493735894187415599851597472078379580174255251313820954319264924312582150234995572073354851814632208261759402540568914746749458678610068582103095943085263388722517413112114754986501963064545277338703799956408031042951729155295495103291091082989090153168334848265856689750418593558004846529974475486388223830028930031978577723891027699967529737101607694469483172619418117997725642698020452946759775495511392874367341350885922492842340882764490358342068737310610123809526912936726289697132569031697535488151998560980856901054044419724928703419135258653011901883672509696073483277861081424007216767339139133561740650190182612332913606788822013364634395158243380942438768539045035862634117155702764547581299467638643954168631570954537456920311330835157457854529142597038261563782242234056316384577245867834206842356466984915973447142778349992995119318574396743853838324195885524043251491441777513255069579801872757261555822921638425730344951910066318961961712102850175056476522919588147105799997484475952125243320377971690792173347266595700096412776650442068136073432178361262072753232038374446750171127270335881717275774179533055055937298220465304799426340497551542194325278737407573315275465289954043527967161254125512869455621841453784573860453416301387988373243168977682980338722979472352147461519334616663914230173796529387365394472730474830132245537508444478397763649524719523933107192194837616323312967418831410580757035306442414869071556175883307478074439841876561233213313681581978017046270046730244846511520195523634328915261608490648308900331698124669098738524078766470938281421693519483272273029337440549244333473684676386023263565783138881096961737406521534640705745546683532511087168431833627038436199731861592835736157356312954620223715561464105102020700575303180957845846848745123089128779329372493184826570431590078863289857879339205964967892804588954675037865970345028975197029788254489544858428951555764469150778666596830311119148475132868422079901788991717527486873675983149723975361171750761621150344440882053469184690226326069515601558186160248378336555896963736161640818888673252451064650666286589695032384394776242600165366514603830007363324129584378087015998165678490578535298649186640568582752102375751947299243218075798201064456139512209475506177705786718382030739067218162674929665895622057678819669600421206662146364363398098391334138777100461206670647415725987733209734335342836120215919792436823362884072703634963707245694946909058565750828807177599344311165029522110688945149957715827742826958453042084760346647924340204350141490682820175341905296832992410467402087013749202703686875643018775076696593456057253034368030994129920770923073572566020391597999538322456616485684371439519133095244088184667078570684499975037261246394425114175846444129417606187020117925775442255052326880984325518386072104415597613423413363360828663758927884568612356077752347817136259987972641389068976420973637036675140831986833345965977967533011899640899490806369220138621317795141181404237180816309501221803427684879928768109316174017066809028620847293527021507571521179183360558432485520359832713292867362788376865496268438275842584646679636076928206667154481176121299315182154787510061250467525732095658012692733840397872990495350674677620760753469373973366684472480791738561071583769761779756309562789015911531497543136799222983848049932007344398672396053211508728816558074118035560150876654356933725538687359784415339912226297283259450213631545087035120785370053297653410682597666051826268572091232239500774663437773427609122178814994468651830269384117335739936825957481463361082115445840437613961061983859347385861792253539668031481802910079657464950921115622956072227782821106236481031404493841999483311644732107887041073702927140937923493246275497923770076047144741713220820038061225107257716262765325904273779804054703645508241357672615917605033796059520538675839425754227519940878872563739672316433445094084466202437049318501287904875347228135652662916871452317997142774959674812687772425000027544502442148459227358621731685311318426310398966086439110929268573144171723706677575935772160065199762188389895269531398930944210554074413764056139264506796536877618293527750591494380971185541932946373632851115420408304398511250188353980188058608193908256765108342259620996716523306514811267096845043904734439774207137452093723559924358813324792307386269818098290559481197355368366942184188748795285970302917391735882400387746371398740926205445134520825124342234779143008329711849592800491512634861414296874525937356212081350460475775660101881032160618563922870712845697531453901695590024089956921650176086794451113354540296198936367534104859937846487555786222296462836395497192149864364089254381555783437878636206917819379894624730856463431558079133734480417955866391375204714000198936884429374637124577630369553854959588997519575241520310832168771675188120539697656455986604692871698807833029822133902671665338214824824925613647060154424736506661706530684369384326957142405451281495814627508907626261857907797860138610365580479681167903083596296245155384055080824752633032020688371488442188879448535632187752458768441419561614477451668205415498941925425859172326180152459620958372592143836673212056085570546276887640575006500583298547730400191371795646197263216478190589092143911386455273644927673090301396885016126371948461924741077327376122010262212836464051443456281308132784779787519388783294051636403644024909392636693240235241975354239003391953229114104027931696877755894578516273539609415822313818301818803035486708912644332996891699145766326959452012811127343432566052976338379364383180891491286957626800793647096572246247521590579178578035570307574494587703949095974045722366198588894816727090858357255203679552615092197037111110491417995132822255091107268176768808795366510439045241763021090652376838674609022536457218776773089223767326574816228080038142383611278713609571830138080463258308517627508464691938957869714156307293282359250646558907204845708524051811251230255484881568801533954061217213998699728659804646422237994937237317927090281046930516268790150108838450097395034200739428262994195221724245778348039723562531260511697171324492469872273492657820625739927947390331218816449577877935234181938077892236779219935256472765874204161009403500971690981439875513135145661301778465966925849606319220924216876382440972665356182761595973821024484350126072255260702843534503771088574765162918626000841158831759247158644047528493744855406056577659329951980115970886215625290739844087091488730495982685692591125508066952675432324516176751252248187899829160142433888204567245195693062449141002492245485353476375579955108380042431216462972650663757500969312092215689431560588897141550749310205372885675133489010322386215999213489805610101518449446174281824847854897246452626051738813609161332731271977524991044790249305101136238257049696710798609881828716957331396391761875067712887422416546948727503984800204114445827661195528277516491694295530712895723806917180391480722388568567254077612304559674806757302510395862344309117280352069113155982477067528396599291832078532778505667025154449041023062237300455989340361435485783505701130996696296712538544870597974554304583273805834826970018879453357603738895268111399662324054761129632606220602009237281744146660108468253701889586636694305608703530230828710252244582838552496656622245867380508261286765825649580973232737549173952377922054077526912774224839843423678510404793604583978116479822542923878141451010258037719858571939343539261633375994017804639606545788787883947218629678332700261544863036783742139263848348588202973457177294528747089131903200484933762979279376982406186391382015296528471251928762573283081587254064534889535530530314548822201230071166874192688077685293536884118383904192488907437091920967704003420446918873145791460208976706984811569148464796892357900935929189043655172377258268559516538080352956736653182524750129837751130437056249403051619698081843000867691966219326675732853923445327651493301878658792176826166034174719251184457528302297637287239720547940891046285250876599618253449267737554531130488358012111478866094605676289812634463343086585373170262826335738195688685648758764366776481735170819134106481609364541509764700533724924949310924527698039162046152056486778869554241337176102087116808723659198572586988083940526760218244957783241646014136327532524710877648421328531184309093158478223040637225397657366541794258797673954801640756862307204160893656656753177884721081772015983745474091586014708187436992540255848428469480637524220682056543124805743505068883059217122577143990946144917152617762841196063690937431174941267809220113933704270334264014103933876917750770692386212214429503004229220804987080925217565200196776008601627186454394779346144765338429966733931189577663583964823265459359940369445538587078040363113919576131534770831848563761189297155995597176059600346034123857537686845633602939514059088795113303687348459933505204727457846388103898059327235627576059938610845183811778071736959207561601997321675762501756477669308360429281915979960636250840149702284343631878399118703560342558494550841691864229146004230035135590841235816333087691187031825084684952805829904905410961455444567459794038033314169744956301253359267591079483163131999586271903069772831730293043123937322418992768039163121477042403437313016890863503626772305082756930852585214994192007499873358761028918082166500511693014383736391242232724467515873121320315104585933245375221642726342397542229562676488518666077396298770704429230328230734777904866534462447715838742785606201555868610195777076866160797206126158866472727505208204243864432721297761191798607636016791767395283037577039253255189326780499909486602547242295380618518860926035376397961001008317887289265295361991329738163649510194145446236388788760688063904451997521087554136779199852793112314561038664293579345140694186003885152994351935068755423749312784096784432583178201223577791482987013054727341335833380014175946426831496906013786859614440511982133448407097167008077945069227716669685709557548955548239664108951386435052801672522632128252809588669095513229703386966812503361441137232415976638010331267407707826628048992933356604497953958987716319631430473731211425564111528183749584448476214158927097768781013735292361214879654896129104559701541365993998916618168380376285556360374274650983497496778057220972558902495444564084142064287412846707948306019579558870856884567082232738447489801879754273136609487918029227562782746596129284143427567001616465119226972602170839272287019025005385004318604126345738434867134234337171545071460432052265904748354887278455211157597868582183426878743015576966404799146444488803613428152452911849221250497547016398052649850744626279867159349681777072390234646133185705462977807993462609291738475639718214066650973797108231778105963418713750919675708645390263481821915669079667841616501109734168002056638078104524102516223796361092735743673119283763823035627217580365285819785250445126211004026923891499948314223868287003310840452223916726230918688840237967338792150696444662089227570109821236929644461570456656250955931337147806841283363268487084759132643202099728401889333231143241512049578256740567124224018786126591519553711823747725682667820445526010249479988350239340615060050376371778088237344354036150414529817364426000550545586243971591972873328047111520424576966566115561805881348088334084656329758493071975937356328057880313157667818848245721960490166250854006920137670412680822122779208624290794859622930083386822369847323199866969878560230693969249220057143113805802803475591835068002790714039482442209019271367080250281645923553224910205968272696506150635429134588674390572401427779646514553626801319321813086388588529201913393879715159092210962287661413325593681273695846324366812241000475258377609541923390875937364911247292466385102916085958028484040204369553830489412528793798456277286063059581668550507526019590772292894563124010481575888187672244975136875279400122009353534650593014255388285244429224273197788975871958324086571401583470817969401755306542627250484686798972052278913360714544068080195110420248881386364935913972192614676705542503656897617457309195228851481947381491022146543332476688776238642341810900139568584697841915618973821206722674212738693787329169676119353561223139902287061613151533142443844929551109029795261026299733282150431913921473085553793355285908679577762528321674975394587369486807272061080559010013501751703671274032543879845723157980907850185871418599926094835137466861669863895146084875377660987610251876564825723435138118614104895927904343917171786536419653112265031259836396396240870640948194344813987671344874334621236988038731814356167978241413962278630539383925083948629713256548542206472565916417262713441881906083877784685351814121567982178839609370095898029474202766774415994060713048304556069803717582228755588503538978492239385001435035219736750330666893035311856854674602153201932173044271996375965105602002111390376799762028079857347419547813303967606719926513489751475406289990822219458550845939080831194118533572396003201310867404774295466112820112293993834870227481963292931579082283291567694119505164549896834206986991665675621272169473758305909827396644396021479615971616649843426149402329566082363265635210505814542186059585679246626478076109918726397294476051248391856680753909148236880738650194752951604659892788039711762249065564732708427833017960586075059001354649722998490308018993703147906257757733437418510728769556016541078808701835141380203353644163923115565686332173374438627866385652347348275973109405824450746383402601968067262472332656013632825695352713265419901924028799601509162353584575864529320450483496545733019949396994222471378922292568486188304074219191975684758939213683265607922874064593331060016594087135813655237915082888604979387089411358202891359381668574553017692875399567799085618815545029503167655467091677421879071885847699843687628238076559979019991302545160318531509242644866276145230416043631949688550769704415837382249366781887466975192474550127316303916726832387244559767563874561570715631922350171484558666428961769350325095147760556944877625606568977889485214235692042621318615705879906171812028093256199414933278532946173560300773951984385875175357723669845141348947343582159274313355104547645011393059687882246515899166542164351856040337578380051428031049572597860166377471402340787156118148344399118725016740514008393417461456893170033493486510310147530898589136479776863974249414913087641664219118454055680656145656812876925784009608253108822795348511151028255710333817138616564554380316845656376158496932860080562435753552799722861715564405083489107558697636841702907859166576114847377563447284283441498127334697991045335616265583465614049947104644790790127748491678005701764532224313026604120518423821852252454895519471494016020505099372787078390466594649072578842575653510264343641282311332872356870592860011020699844892287336496010476886037087982242248090875081386495441403398784747046447234965624952231683864613480088893227853374824517444391360938089679235437935470886611315749661855866833915228921394574555732994467624868126083191389462067328767708612059949971856304537050192559158876887216852840288809704871224286862445458351946941210726220653556089566173136104828464571705887156393549615538585085926016290327282282455434118026171569515595407419352778843484629487107983021106364510239788394934682708636350425490721900663054104185372271756082190299122531042653493734838405807989144177525639954114717496384212673526883418750316161909626865036878155692760150002860043861300781362451212028441739643268290422655579172193449443073972147466780873397532563510332616695761332534017742377606431684326094144105001971058924250702612638008701665684238386140452727552158753396900043423345634576551638677157705061276203141642295858763161365031157831315875200038052524439200427238677086021486268658642899000206819500305112455457262368090019015637997616377982543551951482666331671753054406959512368399958559014459313784727598081325519006557149537875241418524537755554351153533911266327108249694766591755377437377816525827281489759341123974301132483206279705686903363559914294940035614737564834837432479277524479830651998408860672774888227398358807386470739869109208666083190056558599449957247328478708928900000931006425010799274697849440196238304756311944864244960932702077812328716079785849151217090328216729621152543387410251573484102304757674914741537464568096324218606962171648444900696776707570305411190567949673475859179958864997480300386760543911438125867226464412684075719839706838988714617584904668702743395275213909194431993604941705077622449992441639186648499537310388391824701864949599207370245356887342744426074758844434304262215477249578030609785600526205575235305266763248783458462322731674664956567050039228985836895964595951892810159156005949625918706264479530948351617249087048997141618099676483543910195054023866108392752185302336805031429707041434457729136729986838011832295679234963323686147911941988083075749709237672687391307809217837434224452268520618785264893818755578371313257741025757151582277798942335768265941408890622528843670839584803794330394503335109094575438189359264625014159769108666427696205885995855500732829809776394216370502115788017184773394587634041468246882875820626529412299728957475865419707816743948393680851682758085227397127545390279007411928128976267620099454373258815523907142804714306614600101456417029435625302758841929171219263304991830038724875415978407259561025874785769991733215612347329001671463259021244887333416584179453536609378993025858644306363540825299797868963387638959507016497514061712459080349756193955604648398157606740793543370893247522968040462566319211367409002568404314833132232797016138592812617476957961973698485615600418588777686178702760140657259041054744966834151466445148561751488437426155038652949891867222006664084045565399111254683885934320439693472846907758383148362227276810066235941939814633641146722662455694011904458723948795919507834246126823099339765394749079630900572425590256279568111880959161886249813731457548617643621353260060333501825724218361639704075203852135934343086681294745992167906720583875765882144850433168127989510010684469252854863497516925851831126007654502871310871366350710566389003537761599550132655350613749179600491976385118507209570837082809875455893751109844073351027315227392041247819223572652531064453177000813892647021052315819519972932132867632542258365651339956398259288737632368397497449412113408815867111400287460027947978623459809683756434263777752355917138265167346333770247768065892134188166419236651014625878196888553804176040403103226858665829455946513933364807550014426744122222763841845987730117995290403398086136162258146195577467181395844033016686112990247435247663532978417109154560435186434309853018859745249825651785445932228028285790093257515049270588602752524911426412207452512575117104754674741623180808965847825702849130605216262438134024278889547090537168266479154100523500914165901061349969288161623726925078954758864012357498674099864398841654270828444067519968069420966022025528936460285501478112355513602800943569723781097826705282314181796301064558276232080573956489117411684040501217408974345046573459128285797908771503064651036498908286400680331594064004307029698200389879990998616210085470892360401654231495335622261246224190008986897229619460971897964332183258411129983762437651639261462132900728233438077103082371297149490297739070812823295943936082269299796806226328580178440110430938754809702398883235027005443998238463135218636349279812740464495202139905267354667115752473843064496052057411921098036705966058630248052585071783168138316379934303546445366303922929281712807941770303477974252530363230022208114198945368159860819612307373385772810003948247027353295922922106931041725990939672649935242804020638157470707164716017619091429536827352205478356977808464659128226673527815190113376286568096992113728061241280114084028942980867133733791946834779119466142496200964266452109947602278905709307633845396780735771353513515175942601535819435080742879048493590342638786841040933042034295225934297391002161556551555191150616443007557333643300023453843614937260261424587666291461173993215587079467529155494302694438144474771222191330325893209176482066871327063702792647396346140247587857084772871315971915207852464761572428362953389454594622512778580320593503880760682930241910461535954218535720219555009270669597532635055723166448601821983626009996728891677073499551894340129625700657079660038491481095942164423146954265775105041167065225482833257538698798690757267459258256828713162744235242510883624964941867088353294073537078099552446826895351348300603842069769151251612929910778106844450197714926003835567695493300723697611017689205438137911804262345783479211733643960928959123104672262207753827508950270596511704690634752612492262284492031373613401282472973434902015678266923437691768391092272154491632194345342735727185429489968556096916764632273124099984671125540900502504704678979363735011778911482907093485695919296428796097474232602135591922751587789228872819248244154426963503544250513113824903140179406518692744710874072300360482844123309294109974831957690913532322751904537092228255474075789744072967690268562831393810418619047528014388683715535497011271639242375887071971321883176046418066405179990302556120643369953826021603953586711000806222112275141115925590889108688491990600127104311795797492491013009619333256911920449115194001745521826657422824661631897682926576298747806648138392248747394464347108486789137088355479423691222059858658814950076330572238610638991862357562569217530146697154687579719168578457613104396958843564202311506637655420021317184573232586643213690400524154269543330815821931572906687077480543891273063751484950519474029797433653695118413182725583760050770095623075660408591232722206610932045395672091383407659218638415511359291363328467071929123431927072289129660236987434284444546244239292621976724582841518099413133077303735044836586668164674082200745654352374606869511250077938073332248476924477460218751638957452985500538057239073775150644209300738816534259693790273498229053679975579694693307363838846945280895616884409746064652522122686068417223564015444880825484811790297548896996182599479610019903087772073976339868465164481069528204285171882435868751573009636738399955766445761761551798364757626384012778609821803873526069096720352072518811511226789139415830231335776679038225400237454565495669708122986425297151283299421867572042589954374626153593401071218437403212010499817607256514975244654222453824347671638914486082785765728477935980774880274199480935411942532920749568809006098341551938648855556127068316820354876599701536387165537328720107639393812039943821801712298146073747304724745460119333928649613331930014455713087948703051778759510885826991817438567818868005443472582450365700725134507975801583548797129259725182322169073675596709837762287907302877307406740061139178461369022429484843580624008610422586536536989671287477217235522202872395868547325813429795368267617753060393048181795304231541785728635357759727191017734963064305350761115337764522727112922815329607653348768660326357365954727550807652312363549024273116723928014100436405635891822813201479610996009889408344612523114977503786423033529469182474774068084518154899975263271477542399494358870202545585233160125525573381779601333587083364674213190970795200381928565863770379570086163309312778011759998166068993875509183470665857323760343099369983741715424125277690286390321990134964532614393338642151378866188323889195337129533878626754298748772664780249275643005629593755846296335622170852444940307098711294968937300678587439825551391845847649261927787341614434518533649027361961034295790648772905396185711959858039482922743454826833005997962992377800598906660602924484178545047140583663055385106975302362460974341388495284878653178110401370111634753606958707326731807746734972945587540739879993544062352032756437006189709527280033409665395247306688152653763613066873166070094789786089023998886097401105981616182936913339756764341978758596816150659475373292778784032757166861435571413379870037904457309149209645502560737037530458516106922976013190609395599660395558387523784960599148556081617045036196883105432009831423131854821168811863829206831731557821962403008009477637505421331240823984137536509491079322823645024283635738573126072338896503131072268777673863764719057831989576201056729561354112948585732868273397228747704719394409600384661094842004959674936016817541922660142336119260356840967639076845124452596626295440313220085465323345734904933745836730206067706220670860623674528154785178193970693432601531634172230166798608774304353956574745079782651791277178441335982310977418902518880487521403865762217411379737410107990592339631224014640915993325966342272765937896889187880198850003881521665268857503481820111353703869644127538163438537300676078498414994189121968738655234560944628839299284008883050793039082507211530214401338068462766189824777349227000165780137323478635450846171776325276336526772914331048091776039210427194067702532373890268312083464154037203236818145574821294965684871225904704557123340154993895339834886151351699648554827754132271040808601711948199282190989504435930872598866088959157868709323111948470729765588728825574101929268012287138134868651762403108462169316917477412052597439972389025258993546874767382171051425692824815254304786891504828968572282760000042065717900399123253548753310341474914490200581494975623190878433901935334148313795449725201905249245865798117560578724245295027684054286313043128722063978963729825719314530182597367251453807013255981529953440329737156363115463146586192675740293431038048736538538457907529581166236454631904682888974546733696129112574248325361629608156803113870497829957377969899313248672333828421146426087040257061920191157478192384649785512229677946045348103224715416984364399856657083972763659482561655591847303168104017222842301806144791334612495879230451225942761812959010633497410180919875578654879861358581146118585457229578402538858383627218185110148197728347941942693109071387715741187062740909660185757772212896103726043414406070486628169557038594247115901587358900457797959104450786650980125459153568677261690956395826372031784083810370711145828815762482403714002063923318927288588718215621448377636531533308176318274874246945025998596835876048997171194607203670651251624048971926313777074007717008678937604076763192023993640143503602500895757264455531481844187097870818258680006600318146305327435677264065160266768593144851700733057709732143800506294121287927969545874012926603926314437603095720146708158615683470595819515383403082486763645354468256175697328919019761266128425859605646942186889099603693529119823333958597806213219789466131406011472594363825257610856969363587001541427308658724729549149410985223294740071684611218844959754585207224592916257970292532999963081898361293003706695139886872284657801503462876044466694346946889058871664643904854403793096306944212430809742555117473051669895873526142499842303260855242357380517778290615768667834968728991197070848825776736523896163094260142037582367754619763907280828713824918746164817186808042867997851004449939792075344156444178765307370038182636655277260545571212875817562148171971941599729244904670549805711086994508823462369451290230590551896155653775394249686386776422253896663879668826338835621102529055299986647749807043429782176528027714433707143847642494276654509470305457961418235240139535635027230487814401502962926035943503188629703716774263677310462098244750497844843559855382617144848466670682463354221475890266430685912833040539278171106377176907194550652055187768004161049536412736772650775804026495898021052317894983119772233022489492190929563682571074434702095524954169457845551829153601854381078890450017635742655750312175013400114081456245473844843757132882019463590852040668813430643544011130071995142938829267646805977399255386596119186692182864520070071787865708647494187420542887583373667222885947710739447106819351174829058713180666263376618507754270958057097246578544738909307365958344733295830417205425006294150131296543636973695683614859428371474435163929556491917383933552966596586582889912339086278270729472753846386738110203478613426956645870258016359159374209795620646006046107592572857358148436016311579380810277405284706918356203412402246089872650027960459167491876582296268663100673347293775855315669710230093527989973053305253540780388413880601966559863370522364671281212470336475830162222236086300131836309723749286498615527577626264100827032586410935367657128016082082906094742977624360655113852652822759925293472645505362354652099135756219860777021550913905644959728985393633199773142653247832615873436868010978438540124883728144366099314146097626507051261581743296129788442851705691251859642386030038524543736552045197193076985931807964173266999572712619232722821750291485875000757198751533785316713071744272226487894654376080670597846250488869535992979609653040942938821141488244440056024348672614798583900800274226121748845979169423676899621184433912325601231406565156731982707401677834766817578151289858537498945886799478199027469201248726238211662365702056964380500270185115464652355785286597377685522954927246731419313074978423808594024738935540124566889727271713063496745965932248650988493716086443933536953889010690417305109177343625223912835804134308200542004839176609015622175845452867540074680579012064216724871899494143807195945742088392433644829858394176869107068619944227720077225268231504609252460177777289075164875662193834771393307166238506079037733935530360939098579713791925728156632571669223868300559831114484383901252103274170913054237023615659825023403683236119251907019892102951788224305913876345283315076348964150686637044528063511188659534978909439741353102651303417687467220404723573828857476862264156615365987193587895092126864746486481469156756490401773330059660240452029780687444868476237202619911775246259539866212779132782649558894168115568885157384841175479595625417837278136420432363079071624269172479077170945135081055864953469074324896001131119021006451838976002288031140903777041494460362195376888208675155523271919528380869943634338230664550925176516024916353479609190028546924848000066063653980247742733611271429328344500248427929488155114812260713375911864716576041336872453097096255189581282268714767688842395735265473558786860685249456794834488480833576003874013998493865446805750635264188234606996126235637677569737508404318002791167413569967017941156530519992434138779972656954132106113373352436147306719386150045613743431155384195373059450947323913399293991511829366354954199043153795006450623496732270114811837276174323684127701575855742440411113241174831449174262881003781760593143876678502199444535231806397008778791074863050667709670273399520778405884943254068602853197667984746238388531169119838527394591761677061034406640327315563293146350798804239288776113842519436330831139521381952809749953301281802057720832426340285454508549227870880746506133700659647662412704338491301026812644682903665984545814161325008798735172322528061015046621393023990581054059563513428395912516245140334318650129623361390589432896596852242715262330681192068613871313205411424894239054644272298722329262509790568118286032749940532321889233326505124978402441974420987361507590337053235337482185055714244306770305165677159769282062416797444851507485558877831456762942211181587951565622498670070790714479082516498342008413579627234320055254912708044386474210002457501939047905285808915540477785298628182835766314696320924319285949382678081047838834954642944996471039790364744110944625128330797872373660946587239751799710752738040103934543518109989046414471441049703740879975116034655276969493976818925224893301906656690272221986206137526913564438401792795353679908950419650565851866986637612199688774272034755754141488708650548468792730837943429619236546560981791904200062294394690660422120644970405794110625780818517173700168374345922223927328787599548056285610544706498053162877285168405108563603571452132911903057000482295940144286644789746146301776040156013100554887948718075205730948807877257076957985914227768627313311150843682556760912474011501753312464659144700578507769209743666041182968302921649020938760504986681081116009831489088803890750932591086794246250259542597389400163425186782408360041590948841780140583185498414484720444954034976056501269217797982354889188956859396800939165964873338533238815887741637905409682284976714897502060706091667426650864758270134123151366475393030123888679931103119054932807353019249401109808673683794933951606100984363384298565581383673276996397837953782273932314904430237091579745896527689557639669557641347574373436363093453539401916441453946783576860364209403224181778667972000640353241268430674467934630768069385080074515198901747886012449041477988524239920138821665297410511920412452019687414155772514283838141346778492892923437675823690312085558570345876883249868260386221881681634310521365222482512367813608684790398158952666632117443753387572153787230970511378057541030717882260026835271027686781481489968764136920252406057632657118844625323936027117462891999678677347407844468796683113577107552624293408920017977289492092803452851108655346158846660834766195871957930333884111082600028664082286621929942493475945462233190837342602494997038301476192616155670702432219528663688411321354176588153592162697462000264387327082892684540483026548811927254639695547633807989984060019142514676591720747015103611400237359751345991533920439609116776342385327757090525380645985658097188435492336630920615860339583808857221734301550584701572023204636078490191517067426735998885465757514630776839423128033758940006302113179028317682269150067535531433836091998133391822641821508546121237182605748351886722372117162764341030903644965269585167162254228950804177088562099728645807305922644270972903180288834188857458219481345978983754280802556551067624566680664467235977878962680362014458788558911421620269919850183620893730431140426860509086535931379293073285661789699224209161461404905214623521891520771334182633401932266197560416324717272779825250507029501263011229188976483908083216742428799558075260761362712379214575147298656965806904195343075022735701443955813097719530735041394556406266106354489045725560464045718041176838343854131579761792400314281956337299880854975577997367163638702521223944218685057038030102479773577973567516774489310149337009413783138141339222498611309017264455061089179328541710192353727744934467171132479077361912946928906982672683984065282738160500400998956133728878749043688483796668165349043489782075580790848260206602318945575158959499581414890856219119889682452627350342236877015567649128490592054265242705353990122097386663092490238877544612829316400233925547589901809277377114939285817111094491393641136637467933898640292668929935000125170505174604833326937233998479015203286350785118395136921529271764952011853158532098351867852615511329750074303943515016246986439298892075625737417864399676647697515767991698070862027403350403818049644325265069588306327538382138349823848860434305662739574758897407490768551444630972352935361457776636618430754257287910453198375295962877365434453502089081686571321950007898824412064128783346985721300599085052018427961224739537479314008364779796228373767816324782302587669778443730945313697812967741759674993895903618555932167219048711978965497492402581615512674461185876709389940315928249534374717081424397163640314890378811981503338818745725085595501390080056190233208907252796337572562552965069269973787672599469996976551351079516522802871096610249023600264485261953165617074225543985640393925967081759200024047144829483840564897258201698368987789785923886300351477865821492675209548970767111603511776922671861854282491966711931284092482523151749945157053809791178603504805054226773423289789793620765373753699474678103446214593337530173187679724948022130773975954075712039114545277884699948325808176176266636063044951148472088138333757356157871168798126198361574155015132046940253799367317398439872451606223849297640191278005743221598921009046631502021549811914095907398422644438332430972735526018236482358874490771641780995654903380342616680963556504142274593024919809348355056556221466167962634011237616672071304444038068728971083092463204514355124173744591841694974460424644244915709365361666928038171096502401009109844790999078989790103021261146764616262123291826695945822241806519785872834111742247090503814912139644393652011346257141911556836144470644554290611495681306360466486266744920973602155408591774746549213554879669453065521581997299211167783195937096197347142470794927488939575436994722602705053478524574950384256935519814237764075480157151402658040101285004485299788459191864574393857894803957923126975397656742480734112466763259107593519428402279699591889931648885649402119750079186597412247441786461925441767351029522695850724620330767104993523172628070355110271395076758117857271294728899081897289346504126570984729802864106072136811481461993358516404987540358125454674660559930414396470659448762620787730516498013835893806020007872413145987782016985272882926310557213919521650915375887332901865264579171950252057555024951695200776840895583073130764037126730407389434953445008139877775794555005954297103479879253274140898015308884772524561167003464381215527071429272840819396058570675047343415552861201402900720230890200463368871061968481608547671945492219260258893400859495739962053715030177384016422682075227170317525416994536575417261785386680039542584303466707728124483401621679159947798596171536638353122352121237332777705733236434192259891187024016410950547186106265327641363786320021380908980448258714723607835416817943088970222449618077533352421988022293573657634430723994417104577194623381460356460903851192490245952618931623741275841812961240254861475210422673187720562822893112039921138975356909825626342726676307738582856963081030691418466485974111447394187044686054496396752473765390519938614451676631492159944966695974643488132046963557876586475393243054534505079357788715129765917479613326340388455109767585759528214779284775435387712496159130563497876556791634876581712749588122849286338965595076369651438486764457461615665998578270542785759543100139042285154461708484792423280962052552524588232699211076302319237941480643706343368592642716717493364223022381150031452369292421780400094893628826810961684687209719840739263956550080090572279682813774875599457252929792015797192289819195800767442696077984542814076217047599053720001496404536971984228427289467520727675699925577763101587037253663947509029760996919425327719100401744571319236334320663454341285105402549407741812488621291199027291555094381376245753910512228720156165103243115562567712854711852544165000615396879081896573144217567984101112656244552383715456359434871230854512798797754086267162027543717172669063756685775462336045492932208317587567861327398558847577603175602101098600562632135047126693811773477699692865425297673608554211139665505295382155960089343443961945405141259601027133862692270028491166263503230653620846797054449257461738551262818720866055517722270716593678087127535924344837433408617983794116180725147825313836453206377804889831986447413269779869366494239065224747850680475796449092487305910554805302385089692711833145185395843054559438117490424639343250118685901241748498619627283890859057389018887908073795851705115947624161848867035350100633338013097127740057542470231471632969477299566974339696829289536914552860637222662977235456879542624206356003791364814263132621061608048855479788766555818285253172955065737905315273187650930995916992060200339855094276319939984617466402681285340901557482223598979481776784280611713983426817337790482024560820616277726575205551344074449881072992625532685468410401727940391213710184795967365848058882218141148290942282544167764868176609823059511291888212246764157833063095280034131058684600788589419139285219194222467978705746705571709825135566395010500368875508808909536109095036608753920179909100316362429960374574839624498715176082811397169341576159623947469292399576468440648461776072887222435432480449114167281774225585511699177689441626399976769287674022185680016090394057862179489981521471932210463347351828178973032637147173163735345963468025754321894227452290242042511318334835245005032671363002983375011671848277641034921869895817618586097511000924547838918470429994826941333474899279039228856117699927059422586802288947562603818658150821663232875315945690191720032067244474367210294813387718737185252544598575413179676923732001352433566326671555960911162876731272143473433773675094378334278903387027628986897662996307961169771754948419278221671112778705195569812635657031711941918360520468689681437629328477044078988928568269976806780689977506148016349743472743916932065313285351423077434461785307539988286486564583630890514281689252683282199839260976430878187063257493826781157862577931236809167510873920400898971433587352757322218552935125042244381349675518750794153494551433284671528915066230461921238770179993649375013082132976383209219707356936713930974640814460019297084661365986028976605603348870740432980816002473448003869258379301949059093638088901767043457916519581111591372369117111724824290123346907149077060723657996241674247428029158636109241739751997826233409562535757014827913496222882527961146199537134690444780798428218270158236553936601398635509328551602283271743299343839866770106312454760755467609480122436166478734837281316427738797198387329408527464173070905393393399812547492490791922657112835142871719637491001088441662820302298186627058937412291079922460398364664516482932137528809760098042464599338388367933045113790040613782410038035502223572797908539479200492327747410461846423619682191470820076996145733856685431120612126354832820486457675725844880535290607075348007365882096943649358147255724429911358319798516179736894993048008820232410772320954762332641148921618246142551483033109826155454289692083124251891280251469557150181790601122333283056621606822153255097242018931088659190885128817655236692937768768173668487367226950395461735071537267401855754194218029015415665346146984702935191767281356714121591910173399931655647484786021473308448803934871972814455658664988680455253958072092158032101151223954248190480674458032150259136925680358025256736049714204582000854301652246171106005812823991503898422634814989850083340044043368548425729991575454526489768323234255566147543785711168039744750050147091560798536493672794342182381003110958263621620875894472282581811441962786463333247692537854255061653628808646783854527717611655958573635107642214139430104671118698546604571172517971915969540076832065536879157538922609263343595724701685606923072911361671793642928284569961447498244448854287136364881808445457188662273239764961426851370230570164064239447439158987279457360922290573816720016993062786432780115254921302716620037206674856831828298705228025263367927994325937715583271226316387119212476925661883881029575841079542129265059263153096164261115259699385318068748355041576759010907932363183589253347537844939494435388799030026176808016658788727075995590816687146048371019659749128779533106500209475080892161207888998613713102805508840898156068641623018849756650914926392085244651745215392190566579621421629018923169197038826998528346570078597881931116808883508709447844739263713728320192396631024697225906936191088355996230248348917378458993416847566100213680177169022494117136668978628870907450679344053615983332216623147761714096270543443298563596892181739474238553930506848171366785304467498574054028825639244210274626650574970512945841743439178393022712827181288817744154983472469371692844942177013719777634475294610555342210962468971522543878744880802283975449665969782232759464634090074960178205391014172239019567111094059381789336845219322452837403841344566988233887402852951039039632044820502799652967125497535686877464498713794268353970187622100489083575319141638744037239484079039094669060674779331059596471217493175548227504293143788255320256527713308455933012632042470113445008593486883160767484770621598202216324806785416305501426038971181638593378712036848993453552826137545154649377163305381160259038746398290151211426044666680336869008775685633443026380621812276534777683807405954776613006105197978088673250250048963045715981408533038497584868118560271084239433757504234730761831127164122870753420136548344378760366432404114387030193203155903645674374961373457799847912620506898394108968913110171583602976301735468041716964440492816826408940989056800941845558420148258653562872232716519937634606557813045737742666715613332031659371417420392246950741417888855688674740009908373382797052185036131736866664264694237299663545490527989270473905229132715851273860164914560582418398293296789021259064345175257267013823921750650881809596239099941628236753613976168438130201250023242063792545999845566228301321297999048509748608432121230730616387672238545763886852810444155476349263809566887074652566843791026523180858654836560109891028005342131878005580380676269280659783155021348924293254644523472135378330933676387121142716760533430206366673083095406250326299401837363687535492255114362153352839843453755079158118902976839389101616922703536092073761336791102161735198205043071593713684522365044390002861615562578274312932621071357911101973293418522303561974697694813288393529524140483365552651571652854292751303044291125380031158586367149081910724795611289219877869450636715217892200352271739633960332390720169938095828071173725821942361661042723797837025506834382685155814390950435295670228554506902816761835678385925711616239385131852119789790532611214103541366522302109436278955511753137547095336207415934182444986307934650187517505908927111022970977381043384387850912823391896039814873475461525596827181541422149893270929462883940304002715829882622313922420989263942485993997786488677288596078569686847026356253349902259266991917038384736588038614399838341981221823082845102638397474207939191874401241331447758328463561616072466207191937436698885305606737508591058679583604394463443288770080811104538667460271025209089746590197972382866128638221581870419098592409200940960791384005122519424906543626158987249499463981677698851786670416890224025349412098087320665062504366666795053502344178648327334867682374732100510388073186773488249792090711690797413151132994142708534066555564867957022905004895068370207404790868546205357951537847757241389196693884617550506851374162332699080459159316358605132364734202249399970623527478850677488503922133369735379664595492910720299391273241719638229460335042343572985157532174735806884091411405453742291756335493763751654358071312826025310299800206581113796670598633484344260274345426195092203816882714471120979257592502436640387265125623159301745088723455759671242709234266728088587816150668627885556968407188297419485403328505036836716705908191915264156080938877930726661683607691569765687146819798079687551984220672581875469249370982663072440910678402831401077252805975663716966738306086091323840319694159359959297982880007851020585514466364482806122985095220415987344008851702139424666653140227332088699328021962945030425101175181694481305922098329326416040146488156741738630008882026803420186467215433954747075753027546184908668041017319112348866418163047749191076106207045378067162971401054149385534413242927686611332802840460576904008845356984964768103204829461678145500576703481969199760861123269293514864633417833339548495970617900693775189459388397829502962202390181233268596226849408178251609625835487612315034429832688428732460021254258795806802244222919815149933064448266643493463326106381338493287289068417488963952964657097181106182175808544347802925741057703498060174278504848356105651059259000593443303171874313355987368068397710752393555117430585461047156877644520366299135989150651788392758381642724196024440922399199459986826356341337987128083061646267130711367964207521171783712262256803633983418332228293237849541931932713061576844017055632591857624774079610937929759626088384901147091575521496196766151172809653144382179046985746964421710441109731499878873779293251755700691037357989583486104510467493358536508603298010363577498808257751049406801235607538729336790404083216167743990012785171913072808824143227325219171177486699487534248879518257354393580520278671440738117439775099739512108763013785971532224438415383688427806456704336903406692597827565606052476179139476751099505032285322777115309070743806213448654164776605852835909681843858123391751989559343440945091636887074501732554195693032711331390017917075318303077222157431190315892338538146168178812546351110482187265604541580961503311001092394442778022739850344035953350088936679806609581847104969973493394187704329905258358398434732347720942407272300957302542531908240958276425545635480367372399537002493414752109349031075282351411995194593215571819969013581772137326791568178165598671750937819332153220840819064170863170698053557174462500154149059589927073219361702454238847472021009358214435030286192914159051692020297956593912168258404906904940896356189392812312549571931138537713867476717989276230182529782888767915477427311479303247241174394231394352512767754929645291015163696365461294468654080660751472312485318762774719310413391171647667703882614271141192400674913136798946439421689130765023714568445238445188294650062327392416320132067987872104599146842217328888275703359457099755926953823492186314703354038908867030376556895455843432558649189031034115862976072796369291902115198121053130736673189332006208208619363105053477891831605258593284604555071961700468094343852526956403257555542089987888872172938024305387071000027912196887596889505296667533789301021118189660586066877726428656199891450829095096962068020172916276341335599491570649637598417473634849502716910891200097813252922722111613749496849924856599897015518488522478286443213630705662238285798664334938572250127120736379420767526494586958645397407490626434588748154648253207888214850589806036830431377599433306836456814466373806447214066153701685138206463530714879925117012640544282879798822261153113971424426785599523264003573030676586322708772497717294630571883893344328871399689546448118870853744347891307360927645371752788284314984479548765349070936906643258088003078809400877220869208060401362954712337360906671558842925539080669879483616097072744494008397210517762624381139326363485496022888279371914256304965425202462519186414818813377248463079576013362658121898172393992035712116986087305423399403750294255842912507449234485451722493076309928416164930839391444084393664468039952387058804100830342222178649138112128376881188985854719884360195653653614522781675851642778300362351468715291497753809287726289702767988383607854761306106234421794897723804077475067128356806524563208373022029845542161795472503790923609473848286447187409092999405652487446937835748686312218578701807812294138526755975973079520395471658935838737609916354341166591696962659254472215405641928329111033421771431075830309409647598680100565086042720235676441466172445514664226176671826479542151135359869767687063290363882485901415953398943066397627318303912914720707953476289127145015797418666351773773438498959469740964352165212702721471420489952165446161087202005580230604845380916983013811277678148637357283968729088432171703609448695907157480134462895944639104977924895791702171373083154877811202437486510162075788634054539287913286110008728402904373601565539625554322465909366702461088604732281186935003841898949453342791880960776714800180316652348603591775495258284711259029601049957794569140882015965439034945730504238797178850908948491548640934030130172218442003116340322988897258093869475480644476970876796836250237543326826941359653288863572604877170687956835782918788585595002891454619163329473659564573351562509911889449909278872186367944413512041175651385462734515442112815044407155341485415404566500800648824450845849118731499724952052993811948360384057552897359052631391526155195386040129883354215152387378190640003695528536855723299467920198501367212716619107445548459351432513672146919443024121924215848207893336677227990707131728591793500390477056127020003979728176123973705058808279940288324553583653259046398145882932680853157900977290158216384998339409891864368743156588984917543834853363407814757477644152300826825098377731313185414665373505735679517632818132029739041463534648727419997382438041852602889128498357167354022644757122902583824977926984303702176457865301568536436153911684459042529642262205697799044974506290342853812300277895679791754497386412942573018586497172341344878070884293812927061066482081232669133839053147314885661293248904701751488451397335162468288994082807230888042602996688273700653559949948483377944121501911257522131781350786666975472895473050824867678701056023411098352267307051240273887813132733915159693790366978015257529328418925788182784052076673332760055805013870432642979890865462683160544472001734923644884846299974792040226117645146566334887056800676202111718346049177328692710954463947758956873373030643042222530362022137658155599780554519312521253272605808036181184006773741580427093067102143962311134539067106844994104275531792821768265979612245630311392671512493760694049692905096969925657094276592646832503064504567096342810315980331549458749947640086946596563019817787053348355702953518207063817068128095111497755694516407220867445786281471858374357200012459697882982273297847228174045667424269284323348670711796261278592149794062042374933647991422112064797056470906115592081819208255777627252686274203761837626610649404631279638697109851652926015163074640413038240643919093816713504530190484121416292181556587252838617789036511496804811990746854251298397203144525147926867527691934933165041423980566896038200177839548217409712364334134463463500074515538100119322894992066961216662611478257646378533806211597799653065081381673758839444254967895535408934059088545858238502177907929411414547657816194261483887270047689425000928923207353904953340235029531719144969711113486869817599824010033221561040838407082376013440468788390939360378616015783477729776317389321366984325932623717777532462011057627943800589063229193795462048899550055341574423451265057369720322578518126283749541013039788184418770510301322666344436714455339339301704046082588096679762588026172770256300841063423921879865204133362152674518336472502835048348986935227886532847003768912684965270687437508744327700865102642040521176851614223082614618133550985250869917858638921982485253615672271215135774246465919089064229477938239459934717510901847112244521492608632375399253809038697955951606240642580517813038656555300108155064483588369763010140353689876907108522905048345680747721960257723627441204238753252899601760293098865648170033533100461120802064430762003430658170843956766816949159907768725622752451981397453850982763357919964851637451623055740224795589518574644364273322238480509175393132056945943267046539883174279307407090570342849024149105014393326106422159119844171314154094361670417467766559335341651422160122053727391203022157838515190983724846399785797792146809634343034499634209320018743280618446911832014997334280222559163091880425034985770785230225435488782330240068185691716750334942613255333645393186593612835698288120520924376486258203775058112940845192021046841343977789693797447657342981114753104553742260151552566256469971514768548471566120767297367712292739806159726921627154615782635463054927534246189030761668070549863349754305729564934413748694394049383626303708725814674044789641452468429827573936088351191021281663032048110244130560926469348303894370486230341209730438537210616623528641722675639227720119817390218006573802802448807817661447305508864690050916945184198257545161682132249212434904041347504140459756991485766114815341351770660673181414435068716499802775558772837358532438471723246393948908996638991427564428517636427322225199096601962702630843766846898361155939364500943145253607257081907034001623794426014604852707870820450522819058880282788819768773536132617320660078648272308122328586481256521509672014403382130433843716814927623546945096226094508441446468957898405537720069332490851587735731529530256729764570130302776763729202591373764072468500139769713351957208948591555683479382908248627433891355555502024952122901184142004757506181771796406290032860329549204645494971498593701332921085554267551553053575311749979048695626426741745876984417534087304784441836835438370229338727361078997761860720330776346250111133167789714106471777876371576856633307026721748784342024398629667063843860313321035860228344980139201297010734693006996768745066069017631258300633829769146727534069190673011351505087109354706917962462321010173616442269957160911428017501330738705837668224001062630024593615235049459153226273507230756041878644411940997723776005137899490709357938936654100989114181413588815442677224935275552401308519201722439734020428762247671167082213594461650187479511260952406221542003332379233266426412005272885025013351097100749975896961929148126385564807196536045191827611422007976410281316724807336984953495033878364868661889586366705393236869488904489938494964690847976640819490184450531732847790494282238040499663772551018998581099351187768817455434123430861122977957042026956250832607195662193660649789108303276573961045507015470668211950180837874388599895518467453167633785252159947301329167921628673656267584408467458986248720232201853416159046857470432977115994862811624234757238019598172847965583946085924941238615856937181734586957176737807962086701963022413737489927870953417382855475627735035639352921169272844759095432697468960013515538664970561142719111538593583677243356380627204453412151912195537466889065827162887342516156850734830229630655594032805504464126694763297570083767374460073351374944920714082087185602448843759906160362913240174367351273240837672528317931301096600958293717673976405596649966987978191683856764426907240199754141136896449980985435249164996109466582125951007720456601108872894756404386975971865302287439028991914575136235888973285830990591254090271213063192124406816437194622349847469802814576910211663615064565663850796612076215456349738791451569490896372655088944971526765072533237979427591180411409501979174452706230684394300068053957064444878607927476469892343721195110103273075988738675971385633627136383598520112380852361335674834634400588634776674213519595044797524793290110895440908449650953362307764500967258384049772983821464003526161408716373763345740713428214945831629141224758714277463820031883027510558498570519063632500503328639594782306711581561323021132813555358311303059092823819016838371560655323194819828484342974747408386198415164295627951851100537066003403364277284869007637500920355992406120928390270175658667289339422184774375918314672550611264600075858179363021621567394043800658708218920283296849073761187160492880007519247514994366678416159684149169437245032744229977689584480937549357404327202527691158413793407725494757829470549237237265443751798444027376516578588500312268829452249195580335161488094644491040707822205267938676873033450755389500800811215716866857783121391057141240789069476627222765295136527837021411309703647665524471831830036416270838011796883521334000473945324790393523015466265100226969841331064715931840240389465514288927819328888170480670302462744982218250131189822303129685744703166696548144489319896407894533627804016863703736812697134192449532984331293017241187284643310652261622505432222942820666942390628373277270298699644909296403778705913610158769828440923335965058564359963715516947279991596653952366234511537308461754985522761096019812749220056866568240101172325217680480616597659394858762742803863252377397166313524942500625628373376107232454419132750507077410812014214393598721796318045608834187670923986208651336650119015525786224461556950865480958896179834845363104473273675171754008858643839778207943091727950736847957824723048845985140976109974880478870308500192063949339285970587463474388846934467027953590325844273544726090478177758708774366587067472468665287717505685610459984110856118655297522230554048523897928675404278300122516354803308638391402406848982192451940239949374457624956148256581802328265495957515382627715217624582596085257753843189770173012104166498652570441327939123281965254988403851524259818066756454899247974680023211184972284233264808106507497562903960964981549442035309142039812594203164869812108346895128674947734970573834078742661142569067204022014768661635239187910700463941596904335082155655488101574683086669090483462546470966020482231104836535400269782758563339830828269794554038742257601904574700170087110598024348932246224797929016470440279322561987474122902654585465358945222101120708823469571164517211121534605599599715973806909997987561676783603009155746911328772609078342041411925021482691388630973754428704321244655530746973950041245776359028449318827000656290948695971105561344867252746960511526624751776797306276848683991995489138043343536674475256233698124518870831286594680526251486624478659510696510740221021191243243322461903529253730118845587946936453105654424606304130966201507860956707681239894208773425136146044743597966496347300489444078054393307541193729424592096183345058686462848416015978062057350799254436196789491723248865702944090685882440349936127206910748065866404228446722303133777005812610792778193650365430113219065078091876111977065549248284492443719037715854085811158109373910481467312076939308153141042313781018343376220933227952147270686925660771404225272348657243007394615389904928854959219927882970334543097425881914177070446201256758797468920295682198923932165116542871565096947804594469929900977956896448879220987835979621646464090997334679928174647129250442288964220643890378409751058033392531417154044354290829146045715219558929326606647089967491766247084921880084140320508807703629462170995963467018656271348850735750502556261782693381526080554703912666831317236784745168584930321339797397422306176988844611413584919927382314332454754334673747389670258537903600255558086231984367044190165037873798419835334634896017301149819109715385780747317799253186415287758792584029190713535876950198216805830566249836703168441687376027957567637222024750676986159671952170672771056345405086490559028580875223920794393514911437365381333713794118827767496270278925473025067658126836971778434951455873297309657399079614974448619592219830749163032404481361002358513290538218568412533958521710354153677203288654897791610619215280177145381040656570156097863425643806359009047420738039492731915222833606458019818093873964411130844020529045422747330142171737403622127481919545685907072390263055954890845804544434531673028324546974394146765572399624324368762593188820193840346854975107604226378822451947527391364990498373038124561365500393223782552792721140989222524892807273401108187868532125510412376477630779668547569586606318306452691029005701629941836117485366570949605206955173478541866426943104686228870986383596922690536905317302811907473234097643979786866035277887763933726946179128638525207952153112701365141626807025675435882917824044426549241610147189070525975830816744029516532927439626320301692720149408934249996404360951449197950673620924807041704007038003257973277597043927042582582752990460442172888654607236832571293567537027507108720395338462444493417302106622521124081491129034146451486414056442716072682276972827520224749168315249484097771659906428441312230498947616178869041997274391755272488423286511548073265880361648552954211534375311070435777533877497669850833535228237019863368204677130736440148211126934360052658879154668990787001790541374489731512108096740358367580302328101155076537761807770747464535287627810438727545809648232674114300214884006442424885922753041435276518507567336495766294742690520100822875472486942304808797683091648052801649692152308005810846522539534570549681107142911497295187812854017579680259718405861968492966117424809687099638692784445153108425295880961220896240833133222000818863266532939037918139685965421669940229733433373823005943737202128115804003750262709302289314121861086624712394291658073603412261760531038073727479648012698928885845006253472375970798890461898036467186128495815038355521267648180339473893009630882819895442561767782735827089006006704017430947201141945008679673409386945122194449369769087864589725953418129243391076140804853065341262448601926121341739218102431068545306213295101855316512531573811580060443065576519052762010468991843756874292002644535396609052668795349627867277722415198333903722025453267904834714657459921035906956604772748862569435389346242566729055356865412367185031960345477189455844712383965621311027186599035154796493124387221404857072148963564801133004223305350540551898125951071120650578686753308729099441309495405022015740516843202229027145684019488693489514377475629104432495297923195004929807219044669900922254526118223849815924332275889532486949475728242508918659503334911796066647232421001155235336689229582118188563940518263423901967115757087607643012529772137189729098552049262142475340848024719574709069806494642430885398266028794976506683488475900718736677217710681285304172283617635355342286516012148063372848113586226825178148911401413870310828548969571002332417183332626797729595390891122925266825589755674875293000316067387922172536028438305671490820231457597500319656241115929527406740624880242418500606034092883138646288463042451959406533027026280097492079903490004840037794732823178891167990820367294962700444682703953405636472324740572447024373451535079527843259476621687657227438887059057937703385810543266450353855179689553077685743641049740907707109643746176514053366425702537571809727630519833053794042263388457908932010278235549217469314284425283238747412416912604846775501888045455629872362359573006507480920511261702038273755486022259230963712052347384262858671471357974833286020131427462806411869944659179217392546921439298916574401562910361808180461628980355561731727006719458108935805417640896604518569426650747293667249192271625789245150048777214915423019268550821637022461488521360601359301104296346190163634720506588487961539354202663549319230075014295495128194421291090797137485537788279175226969162576862025621936467680428520087515372648657840978621211264736039837037368077485601192795776614567508924512736789067756865285547659460061682297407591472522019344941701197724061430886158608460086739698446016602832578075561713605033617520917658756685887023966607919804267869197087596548547816182372295177685099730252642559581139829028060483912086995991797521337978775001476253224649794794379325664708869678019454866012044920296309946775431205873076014740609733825946468004958463547431044689706978579131634760437356986460203760729191451451619674138128354684397010269471979795756477169842738942732396152651692191614540247098866566372726043599654606409320950547471787547758843776622196858103580254304000119516417442026792677863440694594440030138449922248649298003652496889355772343374921863259132278105192250518114416794274839040166945032820758592664092888313225913616698714591018901265666842977124978022533578962637609604468055043145537087749355313879708752873784687842991354164358795226527351737617030038466553029316075112673596090023202867903850676877339197583484223449831711823970035655537714041146213514089241179682696820722528243878515439109516293982827677988193648516084621754791021904480070585281479977801767930558883418239182162201991528563996103808975559117859284354279843691796063738114167369777521572566811976579713877590759280714640040322434862905945379411394216358334337228045381255665345066707519940210559728221404496984476195411590685228451437984541083351311909572878092467470131014218131620790931685308126915526466160407033283897255867026165948010383899935339882811007240312474146626050891735537459726381615899077780845690362614049030034840768693015288524015689948126640565589130028360608777072376397454642439104837430819343929728424596774881425815705147993555583817070342758185099319909195000974280875075584182003154263555045142246522703522557456395811892763771923886006373130522699022357953935579356721112895410896617030026475364050873901099083501197889989987351773390749271913716362796225360497115301515303406641821415228519547619640623994633401202085467743559284333983843289993901964584945081191395373707165321482897435932017674070747646080165034388425042540893307736920748566130707678470711225359179362907924914055070205226455512333450456076277062779978525018766874665813113048550652624397486785550359094649980947719557424462437074546166420634978890809008118697562908282705073163574910758772296651442288939822762980757568043369440664324262005611139328334539363031189958602523615439386482722660100442760760743847444871838137372366798571951591587083631781992529448690871368030823801798983941535047508084261332380436653901834006409949500059363030945341933276845527417588104291583102609812926992689976926615052738215259248804614225926756329337740082958410690326239197439840703954240009308175234469089183010554714611739193335619765047855335798380283234992015122530251819591664146890659555667347751646399226707054547283532296572699390145132392332861590545704891677805841849945424217382489630612698047309772476087254580454135054095748735952320366660921782311860043936851879607138226783378401537967637319709502439937708969456011546560697914841097876310207028766061326349259486743602348739772525343497844115341751717578659142281942041088806255628245070476761938932873095878921735299078655388079006133477769543635843351506697227623779248917854095832783980433756001376707514274567227297218513104030268306919737076733423528842322435739973837547125645650212867181647116343049057569806224248652099141620466141640738968528357169026021605829335394776822110076351831608283179422798068206572846105197544189992532388157813276450328223175114831124201183348003474347661276253235915363436353054981262132736276923585545470854270820675972891005000683867724192090953002174376475229651486673884660507095300644700554706943733617606299669955422361701372299369997891883894110361982548003855608779834772702649301963705074973609613185187384190329882059241200479718957324421136906811444242321906380203405181291571778121255439117741846060797530444162081870918815749991899448017777734100820081434718457470099782834170167709538850783267879183307568105232579735232771326112973391546003132855641620798655064403667894854803924091381919757038949217681175054465408974483603412205939026395769023673725410802755620069374797965183602381937678666807849637478621021085213814099939108831369173324537185099372308789417114649720367040514991180330617556690355692278389246263223092991983878963968531229630657932501424191864625856436413526643599449599146648331585307060570670498461478163434958223314180270757316295073195881313109301028216082756419609551829593298969365380533875517091865683533603548116729420300805078726157343784346894025154669051296845107021689192106402604423892288887333529896146795517461335363073466860893298757006793003446803502481268581682775234109495401773757659542217290029559351698147210262596748672556602104613287614177743142385951429294366473386311795300648764418500319202626108027068489316784860392549269779963669590467073514078840690072844859777681003116720510220001596633840165764601254529633784779144068462274967734685349418929950899553936777734836952974823511291591372829568715725184191306664493577513013836491170824988514930175930734639710664713382111211128897546499846880579808847589883610710819533638037014049111367205233206668042232314390907895012793105907418675551989053238783143510913393712665159243450567625226913904181163499205174035833578165532042794128033983949073252613025847758586291167675372163132855756880278975404055358672386374758551481676601490762556127051415421740032435883803337673030314711631316373696586183385299508333676091848044407295207468097929569754046404290918680158560893324534017180753442241209624511418249002883712822568799868478217346762922312617215970443578381163616958911476776747606572966579988788848767152651810493663701242756193533142272257021409439847645840394146790522919959830761066632902612905719226552366889889406246929755165064313337588089621852454539533160863259152164438624770264946050256115046840260931556549214244289994040531881210030457679750540793782045295243860740518251960689197191501804676946150494584745543538509925086477982654435661965634504634402398903457267531921186802611372249110477776892938506618855110152607003862703076251775671353080573019968358745306486249555228911256848561254381246487093546192401127094862555618829694370307348155271774919772302010825005227855149826626517564415954990507364850373175062704482844910580812695757600436042509674267949701458479247236282100642105932615618780206499446301389884540097461108549838157501486307406877758447232437773391219846395470037351528202917934234128691593135744945022454048855549155787303508089479832821486644335244638567117216497768812620035420450884135373262316601282057466333019036995960746572114675771858555220878664295400164853140078653557691836805215844142732095435604535741143210173776824896134629585480751545695852609933086168273950848035236774879000757765221686693767033277356162183858464277853668771463119462505791914238677555307755167190936431851231543458615232966430938036501060708856710152532073690952180231681229397120942138092968521441382872208333522467020239440632181496654906593557169357836727699028387825646182183411604286545119667295448590561983302442021853072395843203066226482066553641366829630027596927140919998023876243700860120670195811483216084694870134380849354906922344243338318013658729636811613437717111741137487861733691711225353854205389608024648858275657742222128114193954129799240004795292614338140846783072129144197120679257973480679219672081070208074282949791943573696613157972608512471400714003348670173143636155258308823702956474344610796338578591946699601337846712017238458279944511706127655139121264598022315592798411724506723770952231933741379235993114063541575736128994873207023790681468487144886540687176442843634945694366362254540759975662338922624083892220042427389621178941099210211118277643504170370950239000119026741737759149243245415426300418197660884535715937700050068346093512108528312066645784868445851579452089936056188180937655654653069625486822240209269476587951494157039619289701873680565690059887385513309018044080490811026304837594869950832483806320817208724274640979513263443419999484411147192171803717162192788105911479261630552017057788982921135230496243014318190217554321974693227069967968967850661008556001261185699495116106130879763120667751659391577476517158019892380518683876036885269917880108622677502227906276598350949762050082963802541362609350827936947432149345193942458525597630533433684389562148623487974630470785201459248660660589071020808093715947324981790013885436581562712196840391941007680422152422133793848842540353446469467093765389561477623618486365182485479137330829646450665358925057936132466698889901881734948994516843801011080635122743173455053445126239748959053175771513866467408213641007308102047613473438447832006513575439057753975606629710816187972943227115730588074754998788784302272272894529470422549825057182538779249463910693525727200248908214174848135218853808655870502139461742231626785668208153314250490250355737973010199531377013397244894590513899873620781739354178609947468058210215121284511007378237189088444837708352656861842795596997578108012069616858887659779678895004493837626239701677348220070447936053567063459996072704880511958375772178628152353359620442681174427935753630791979814329995495030562324551182549953485463885142951059275457318012639452898948705237566721659146743782039477503676581192371725129933320241268442879719524848328024654152494948449269206854561459567442422313719736564918949101357622973677122935272688868368356848599234491332172850043752093023895359995572845618061995861979048737787420949383257294285360054168603906827061769734739347521670962184623278929317876998140266398400328634429872005084800207021132189186572585993589613079715500871395197797032087071544660929077586702615924950355833114976139508972049783907343522793744821728115893207190357141784882284208790135316803081308652868309658676900769260376829352316321242200070805207855033169918540900363543111204381335718343163540446566953705232228480049242678014065454236582887370713436603282105560586089683837514297487507462710572858084889779864543585589618255701957644550340521669818502072613732728110688993604549071847537061707194891630487902284447522148409887430565964231143348252202517375004998230920282980831171248764219187686236386646416270801443636521369276776384275061811260849160065096587131547426964109419234823217948210959981412967706861687074049503122132681293296788436856319942522084908652873411111047140572630774075727291584761862864128312129720059002689579308778715139779147257317515138738056046579796190248411793727165832407140824790228466996496787112616920966970717702105739342230883705728669308815471618519876225375536453419218355671250502832179983441018213539769128862808494893337406519445759467609344061289266829456655600650425828535423817346527775669249407066152777967159873495941080923697630563482134438573761262793152305944617167839969323023980417028428109622737884024400617046170752578853804786861404268995613143450600336509386820030107635071165075790004408767067009593776825920141662680363929715048755277973769164215527088151833981631287014110501212556533217642178547855683822975694151806941957195010590855973578835987411114958204551091776140863937357209035398585268692672962042306646999469760812428671686488363653003696669404266865824319402853127049024052005621475662349336729618381475885039301165170932320562346777889298516335761533320330242465746232314852774694000105059387735853601545117242607936494914083990001519641246809851670058505864246584120386459718751516883028602571825140565862198763871492425737868654140210277020820929155565058938042495193774199785242236458024115063011963843469627483468961705386334990435023437938151727229351432583144804317920563149217061711725521676618908033539827338547300934867050361673904794078860456395313789917248736426312885715765331749785933739622719714837276168529167276923691575563503542386377272466016100083166403970124150116344393980765388090783481946562334243261722673556070066300989259049332416308720251156595002741775713910935797686148446671978128682795910733185887926730806187099385146038634074496428502625227892553598512661079937723898550428114962210369354091641223998088026119959123856965258086370443958493346683233458725450108660424343169833545565861293113792458112910107333894936736813715628918810786969548250483690731202097675176539304912271978398050935718441152616379340791241600764150604858269479187336801128657055191525639346992243711644054110813339470874196452473208714206029182961208153085972255032626331598534653989233708935854248536097813209050079181003796407841853500541803100030137098901559193391549156445761469304752048430628651241845201898003950437153269763394255535549392516354320838001189602014975434020355949696980572837218643889828542245557883572596358565275640372685369841354485140463132745876082985816349284331071561889470672686722046386252822378094450545760195626305950015256069668895065735682950205737416223921370130742228760756309933931873571689016286438768433799055131110618941095244332897568870523559464425819385703229140829940587104029517461776780079152987859827768509147118737030300513311401488187961289232336976221312840735382636355730623560876091791097787408503595954803699247871508591651386299177498234955141978144208277116376268012816922084958489541548681796373147109218047348897562313975023087332798052928885558237849645649496157309778230697762842636053919248358219970983982131772369231027458493949182820562566196180819964589157374646362359781671592687788432535151880163290890108610778276694873926314689350450968455128538914616071588832429811970127175370842371740749329643029964693961940014395367719005339712000414040026506532863532126839077076775414150053918034798864545155720268596698784312868343597059559521433911581400429023983615771014412572686771870035135188522441582960866159054380803659621867737513800862866895034366018441611528342324983103717881976657595130996458621470123997831080791052404181772164399279377808188665292207695200464831938752704088790008665744994517326515680748976420979507364874383226891785625368362378708102150714714171953931354923437405189826331464370223151614357775641474848116351856356875848912815071178570333838957992291336786526641668759819702772271866199059610242937024943469436774543563753912652901609678864003039373401934350847301628273346209067071729053743833981133784639556725925423102953149362660228092675486864347286833385030884629689224801404888508380978274328745267033015823220620951002176633973527562563711980838308806372829414999842275277121931543644674478897616085687387709669482849405594787454220796238709739854447269851529736747675664932390203080513162069211840999048155435040083105181684433661715001496266234365832737385323030666932767669731612288387158131010668349797609352318027519623404452378313251816893188301682955851288780837623903385020167037605536760161314038589681758637491916459874849281854602022416451624726583124463778913409006294104778207244887689086851702939078667206727459691317240898140039573900229256676920946562223658612721377619855874891260448454428475798046947135190956414825553088047307836078026997688805315223239960630397292847104155425565488401108809654863563449149575159535605680145555080209693186008890454336568142071758444875279815847724745190020636323664086580266975693976196382380890575099427593821801887708169201795902724526469007570447953018400898636669632590892904259628453895277540423419873912835144743467900670909398601155179316050977280337121505452965634676483808219233333299100192722853282857855630094434904297086024791251165912764000957576162118308980921751027588346107976621226003506571826360487737799240875452035631562322560763868925052392917878362260765756669524711116288674965068693754261913649913404701784052060382697376341766194852624796607659205721550543061153414213944728608853672787100798674622385427785698738530093740906113087605955024138118698292865492488361057654024258184606109154964735876361298808602076039344619828740698022266246771599488746162359340080427266841830871476904836550493256756095243932769308095805423394618244422384791657784469248212902011375858094796000253315962387847157639688294235139056841779496573412124230532553942924491800564875110865913681214321460270971848039054731882265598527931051508921507192213416876549246505531312104304880463539839007634859674412280943434166914344006942369963373041970523601097737710471019800617887476866386704429902355702651300593601486990773815048524544069909896700295638453356308679817481324375268463394619014131584438884001947759271256176614682668627576662175040984561412623305381403875572847393265583171115194286921905249670674646376816024947922302463753866700350448968013326740785937590398534944791580041313633827623927808636631248777834724218177733148817638249221095571223514719324891223166720298191773346614642574346861625998777085845729766561226749215651009687198222277364194521914859037143946362812496316046162916674052596975772031091641850883243030663858685669511461867325619950864943326424265855314270073717934040861413671100965099773491411633124419418099422859223390125167150922565890317535088471723354365714587788910568045146636831954453639477003546165116933597977830863489673251705827002256693834357459666337588105249582755146370285221323598618194608509629586479868371093768583588346078304582445312457724040220008622934705140796621583935005379238176115177757494357772430912641663527877554930415501834569756047313545674249755998879024428351054393201361081511146006767482389556916296063042005327535897273162173196015104988884631206932949834377127243136380189001922788345975755861843051959450807209976557892163297154252077111776510108618011913672943375664658688871561298247542190909273116152671508560647711682061230882423083801629229703784198421028115316787397593461991482087086556478119133278999233206260920811309534541328429180409000636632121565777245791376410853970335613523905462029855127784708287808257214503119907755665145059312062810550533306068652453134073418422307331099223789072229721332044711521717342050363470807899543140294497394610715983831935886674982436087759094845623938779835397839037629318628567580131085934347942806062199631555791541762049896677391524182372051872805085358378578222596124065801221578599640211372805398342875731687957901784630730787663740155089385727760023553561695211118615225737335743738273641637680305951317346156070097661027887378244267096854930095808584298472776865318910541968770622773449341251381832871095935811796569599874245363595329231349209325405364098806102247729187171134765947644066830463986601793911399827667781055524542007564192929290126884288377975963405184561216134726614125232970980206886751701589030023016272951307642215340703719951314328802231568805149490215512497168480262241755387775563243057171575850385942531158665682020891243656187847992420434883869171040484783432092288175219804859311352040708296994683928648597426561109006776287012745412572601954339421995013118083712291666610566499875808281545811577230606528196223218061486595298247205043439692148696584569829783483071251628304566624781750212847918898438920927176453200471847162950659590588770511110461007559393815665365965095433897596447824160573416784034673023141948698278190103650230241025566550846972360422529084118813400790658721373284962640410008770311016663874793201120830686434837237303917505948991330163339064447547066819159977331724867266237759096892159560842522340445724305306788698552766089780431935160997361213616532335600692642587352912767468987149830155223489937993856938468631297952482966281649085948944293476257091491837782749288136363427446843258402846352562203426611526127479144514432746612407997894873793864588058366527775420196976950093739678143471837956554308037530023533393196118732418576631133385906425190220935225268624829161171432451894161545570832565303343079493022175520318997908994722688400791009246308409251018390919421353197307510060111201084451915375976529802052827297160855166796160892574391205622491299884670256991300639463541359929652101499140825663444781506737702816354550695980516826108085298815637774977491240971807880862430647846264167113727326634190865789000650188573079632261250386385935944979453866898072687830741514301048195890655084610297048557665196789018182185167415255470511662668738768082082868806061646645667408455896119100005397630205869962617007446507468027186560452746500508623587885109117283837615928443202336703694212142244695441152597134250928918755740246469548709481743531130828367392944653621851013145164748841889810986619672713686894504487145849117796545558176559627210556449856945523352881720713478657753723382033275947955697466216322121905649956162857539200451937196182948769817596576391158135609670920417606108482303679219037567052234683410333916083838817691309515158257982026706715637042983025706105763394775104691057454051199023431581678938843414647754576458552923335981656996445436547593030250920024847973190614898934740643735276557577844243698770788334989346550833791544373157967205572039693786771131225973609402349776797626690305200980144911590873802212722805068274710572541478816704716916652467812464233845211347514056863234162172906206705150445596136162286362360108089192267618614679056166934435584984994705596150809990574401835750747035214554936149841590255821263214470087547879296662659508095828593791512030066095216678094524913559652397668114006466177087606496349039286062067727353864501686587935434999892663203515240662839699242387092009089817368264887127142104771248186682211940634522269303537558358486471975366973212931706923086121755024475625280156526455986169949872750135435550473985935313534397177212961956632229461929387109565568463934934820618258111739821962538171752077742808610024249572394595049709956053204305131166871286481582490121849674700037919938645877242460809371249205305928086776738997632439961317944871208442339493679648234614785801742853760343613918344798115415538210695539487040187439925210443164310911320078522614038074501291991044307663998130399300033150422428102820156527396294485986515123389809065575703241287419784748206262937132183434193366725781661873802236472598314649125201805583843945454357682088495566662089643733898441427596568886008731249437478577715395297715396030578624323414384297427804052644170054908325827407812318965954056375631752423828901657946322301352441455226311590182037766139275415854646588763680652207683723366344571223938142998377479122239549071726316196580478793810113242639702941246367790261350611881551558142693881551180284088140680462799638066951557835649354957302412311817735770892508781882631593189594171196059381970996835221116747933226111816540320676720604951100073094817405333496767868904768358063942206051803171064861569327666456106821366104656093255948403577674828358218755970755881411641666691106015379272663753733134427779713687918323886868250195532373704380824606681467123737596301823920419719337487943470457638267069527947402095601809047431845813901207717374408595027217129379969380599606588537687554654275371950734309492550698119119700308915851374943019014613945846154721128988997030945151288972504803746369410989616521185510065134444851451817389172774715252507073213445802743952655190001487320469815432113153563743677140500748279574526586467709209817574896638796775779456027234221282976182434581892990938231103620668514802247448923735730674913005656422462367025356988783232835753886927483240713192360861681902768990543638993429251243981399189687527031454442439317251068159281445944201132190407917816382774253984215085105770662080780592787376880569475227718303266256721479207442802175455084842242566158742091051200187551238216107722097381618806674054804881245077254813311750893203331715850808173468484001390124670989495529044277587262214905976297315086585144126331777798170312884931682259243352116316002476383435404222437484103145843503241072909211905244067782729940693505544588216765806931038744172050170155420879073421690506859603957277084247729067990910491956042700025007406229013125342676505203721446304589883088240682760826737479418971178051018896525492078418835370516641247571370208655343052880653876187042347210968607730751112566926947460978902572938153406642974195505445713648737479306301109945798365563869877887446353504922333181450339256713884859146422045174138129820655278961487603508798277969058598526648205665883973700078195277377636468898139167409433482042273163685898523174313163845652458048373932426295572224916873848517285351192110876848448652151948858743754098629115777376840134510968419968090643858830181131746061692809750697081761356968849280860091749975630667727840312961810097976451332695290118682817633870253044651914189896209492974080864515941928556536384119728094713096813353464051769909511239591984885076282848455948589843038928761319372015785920753586177387868053675910367422878014708653909251145029928478445506520372118930975529866061617207855936785363433772531463299595615192405577713304089826612287858675081329150028531744150612848286496642434128113072436375728176190264528447397918499303115316180211815180623268602490336309789481097923606068725080879073958340817631888809514288328467395016216510317892129985027893368758134355948519946483620166533497115518941319698185435324954233466829747707582704991054432881792176404830925047263206499796784251942874256481519201321589527731121807409474114915105464525100835748754097382990513275942219103861504115695396414521041805163486545839617399430283756395828642475472666060342372876782987374119175552857492163134337663884596090339307433557455627534083737010328254239532885634725357493925714094023323701969756402760915966234648645077062181597708699622193674075710807613682500141714001509762021716077629943108304970545802468795404369301492713116832506832400774193611452827697069482371856569686066411454522729553994415012694402732505256092390356142898814947351469029429717135919476157780789353092995268375683524970384055510372205221222440378510973549860667671532880465998448874868753017263088426175828834229818563818976223012868051328547979085045664859732207541514804826687716179847709492644462167287515086882282041115000422330332302804569107779962880675866459925428531909751424077064504986080911228435538430632926023972904660671190571257338162670412665798465657856127990873430731013876443602030701071202846833745585686468300483214676209213119497431954800758128580615904451927155418482376064784050666559275475279486029787301061768408908385979474546073483855529797629192622410644548622239681086263592296136008733526777655460429049545775902772355778066770334625036702462252117270690397939117151402173423788466888284264139126773569516448639044219623105512333303956224597202566081715500851732805471951113962352097902831998304010129264055750901699886514313273277149800860170365170355174502397080980000108098984067105311212200272895197567336480930170300490552570127604721192897543510623475099713408995930564503021110594088973381319279217247746027054524123814612593982919413509888936000694975393544637573677161599909948693995591495858405122934032804066647299526341564365957676204987412226993015616884626267388379704774596885053367507825093417421549739428321973959048356534274124511647219419408837770528683229185540155011913664885701645215259400286329351032307527441264978605954279185712885434968423709760929296099554353760633753828998760215642619871200214652625421669244514331759480322710322422595068014516396588748425832463561424482377467023133555054214425347919686995674888685118136232213169172236528935991530155275833434143047471140018467825474113861409156216989088010302323753525330199746409085918176771618454801739378841949246592330698128984573930889126876698076941945571828966992314522218795302728727675762675500389753786817158525304260635211136702763479541088005424099112204464728087566532971728823205486261573124668988802563363581727290218060128100309296326961191721826867541637947075611125944138418013601263327180892134746906654948284187993624299167039233705874179858265190160711463477056146659850468937031503116933923796721026076659584232441136971091059385670907218718818733299061800211838706898993539439862458096842963395070205517737693460600634656717211978794384310900522612556409775272847529619605097460937812470836081755723838096458584842236744547241541377657368092407832738269997045808935129402038110596703355483952159651888882812867530916193001755177454402352485873880381206429579327173446754706427626477944381431045172928735451451897984169928209946335767504073954322005911772457766069087500887686173385360271133403207276095619433769389728734410019654144767874567525609507688063439058874601340422102363921748831107070566770747866062029977637149693244197014870828114250577498900586651352063493594418115928699718780007612473727199383723767840045084770596596741182846869552905684525642813936987787235844445186827526745967929777512237856807018502918413029905814067392292905264299820585283745229634880870369394840283862554890853878952058142773237442474779253364993495930846642125211633707520947192076606975671146798668897713493274426342602685100578341908986363783504024180774275087883813333455553505769497284743979409688301881754485322588997636653263609859386342514956350089235721950531320870134228825913400713653531840011897772171480741820446695535217209988009402258245140087896621661306357957799720519519545249253504387162802525813375984567997737522644206118170777004492363831656213518740387727446934648783305915296960242939238033754529567314322143480907487536649118551258196126745511780744202426241496131875852378946718949879627957923198133751381488463351193815721900077944381087986857151835872221341546107567159731213067583355478922593984141025455917467433379588787865832240017222143059061897696229345883082230197395418192257395591462293438604938999462087408242427960615577367292582203430030515191397563302276867095480644836324147330469966656752271650219701664439113325500306912691948904068294055715132206446570928089802718997565476744481725730950943506268504815330690164631426316248009107444298012792982333969537064459025792073168042549238475284548533776747996234025656400050404894602227016657609401040450004997422587774159126375184216770565147951943962369919450829369699384634553996146661576151771690868948130264487668028965351164410760347527819909365155317685418497999204455574302943125619385469858593002119608854562302038517750020381920445602855202389025609545968323441387157829841256110604835742099097001411491971076805754479633551138444744265696739498903923854185653180296109897512303887003998972676573210350468811424809156420452961154013238374680403238344803973359296256219301532531473680206222919512982575516261264585419579252880121900788023265801045885598274478658780560669511880979988878820172422355148641401290823358877075632712514423535474913501520939105929853613335918976773557487902695562477750536838892597996198445214365663371691040846027041196411408779676814703060595486616974781673590478172627274588032326684882198968375164882734665456010257498362453141605777864632714230125451501672913557642611255056759528312789277428002782776601994614761625421728866726752635515691633470431116442007036873961143528487869172474376537637472050223302382662603690046948448223220615789352784201055342661988405500248733189175945960404066512667389369271839875172436794514701615008166263114322763729779138498219121454223407079567494170649208146778268928462915115994203153067117760590997676301330098950357995540894589783031874564893489388104326497210153441395533253774734054632622476535600365985270537655666668165251292359269883356247026395912025559915383155368979558234122714127844200813422816415788270112026549735417845040843072455680343634076958589725879518598535640758821782944214970146549721250418462288023594052644238037038530937373993895307405087568529105583452520962098040698130563785427191669855813636435399788554566593028602544705889894923508512931265653164656228076161193829550530320501083703928757776867072493741650613066132803798134617712532191206222757021690168014679080201498442146301413626623059630762193348813300675845194346533764171117130731307206032189409587452593704933025974071372280698184239258023383563857530103946468883016636894050738397010872767351566046983762989344235135678648704936558884113333202347445482687534048023582056102757260303185608738834881394899048683232770318421012355747107807601288214475850309403448245481622885711863833375110349756781826214299648821600533643447122252683866988042174963699928217763457917034025635680245000968303280867276586130827010338073617293554084646296964504853927924369572677152099773584305717615550309251290787795094287207876243464194097157562937948883572669133071557325907374635744054789830193691280900657086016953364519164512238627721039011471279969170155091935196147683362918799474145410105133248081742840124229934258014635478293399487517352220946264677146751439053049732346541013839800041046827757834503700305729091387399246757036484769340041456940413105790925410619553026888910475553644787262808742425161434186533326123668863345251988802368094754291247238868591046407932297781522004259205580834115525822251807168989219029045392572562759411306222799936784254763450339065755244962014634438403647491238097425401239487096635378553283002747840121114726302747724591612416953434639352233916384386254216827180165623476561726593656655541822785601531959080723307582937568515203416342330517868421337422786754826438797604787829424264380005894693683618167648562824013853547182704712311614863878921038788684380627783293158803493257800920561439829685704959250537952553005669308547812495235697763133472061561891545621026634024517236182060488597595215389948983235931408639694836299648779803379269110164829086585907840746582550351872224571994366019098074260659633841962067372357748058929732988606384547914623357107160766017388164190438928687121807689842975827956779063499144959643991028855031602502328641329637071842173511610276180480683568861712905144148262821903172101091950124320359308448659133342150514666253931194988719326841882812876418658653179235002347276612255399878182314216380825102497921837290049538383819020535528446721811588287299931881081087266198582786302612096992682442375563405074651197543281978330081230599978265580321794163362331015647085027064753015437199402876070835200182997606634671031520885671487907149680833243315330575130884570827344664916742476502058720975656935008888347005195022785375997016594968637107435094578750530112466384331083136494584618413310314274223788992304026898459425836681509895407474830267059280899615573128436647439966517191343716637463097666659887795682430963920377827199210832596562887100184847738129204751569530941129101405686747226699517269526444725139667430711980423535588820482191424000514129435516216515877277308631105515150837910670568953566665917501374449939054141481367368643647978063843162274072223125317692009502979921803686561596769218775206900968151612183234293249762693318289579777830489069165402075881322258893761275732083353984620166172080668131062705780611655540895142682370980660044949516769713427807840203687810367470117151908139039429396045952895585170349299768338779715103919670059191010181975480294773192364850878935353255257033311317958282671431111707528214297841267118709234138206106584602141926590947778227515270841207064172351134930745063919294631966579736697831329362560177942069759816362190415522936813965870779680736678020551758463265512825918072984124117169822041435939640866199440791038852841486051126932936326825831430914494668223334358250677331704779524371704897335881316284329454508588384460152642604352590235244372377446655432259658646993593611658222107899374231157764256858997581197277614611758242272041817540603911410743186180185142657778217732651197392062885826948585958462768693965536669073454746072914341213094574352400150461732775007681612921180793335370890989315921074918994439372835168118426489902434210824934213635952504216332417769160906101077156779924002146195376861738312784078362965094364837808545788742901662825774372962838422221720601967596741852182180106374724642339213157269962875165466298544955074455216273565061967093223852191354959040475490302354163755447373547665138550441132075601951993064430999464928187790952417793900851186236211940058092413702546581822016112703437949777534157443551239055761362646173186534409482557336892707849764710577957586563494515502791726770113245303318214607739259195802496895056931093343986939784440279519555572880546852716554671631868132485755477776739501792971222482041183427569977721015730186416269572198153743878736148402712119429537143646856655915111887950790153342584187359257004199174534063997127696383343454541828815367606398470564829793041934468403802303569380377249662882498472355174036324954865207419537879392929125443874430737083184320365758896283006881910729237158817407200714985096118106356239252365813357775662010826258607589769208163515172475010803618025236852748564465350707201432241562890832667632355464470792865456411928289883419269729496884212971625829078286699537441310075330334367481218477179353823097340453573359774428549733974433553840666032383479230778600650142581570954344693551152976200718966443552574508834938841867541033445464904899750344542182727374732875767433952025208940136843708448668743416012775978631937018715934586712833285340830935497445090182380838528356609845685095290269554683240873497600326078937919438007084361675994476390348556461494889661112445901823546479686754345915849293343370298216039388936964623521853655808727896588587941448891768906558597982160910236754127662885539133622755392114865543296385044189246512332815493099156036420381671037293731740452485938920080895434076952019431249032727108677925036166929024137567930857002433762423332198154948425191662820805641474974824837711440385062821717569478307137958673157441027258629268081906900745301409331050500669427641670856130977547791990274747852552891222512090461317087105389577079359091920119796123659070596600023424877681603279011200921542509998284121985528980328151593593990038754283337471520734937355524894334683843007535145377016874155560360102168681539141558697002582938081409980821832053981193437890857738815634623983281165408737438080713109647181626802476188882471426150825022012685561367362179092793555645679240385710658364722497051903850913357040655037588942793304423815649721413069500525327921278234055610143863001260240517578902714854613670762948002451747853679339819015020114173163532785869659976170197148701453819329526715334216371755156637151144751747393798872096525949142859785968049363537472609542061089954543843034724304237378227009589238486619782324463777906674787893249491296705514200210294149201523428985939646772079190046486166090409788089422152041996175318305374876158404397731448000323365062885675723877285641083276588906632906113748667455818530716306327154450367480815804862026446921077710092136513030942112538764717661610052045128445813204090401456987675863639950385098051524310309954894567421078023280658157154746011861932999122306678855354344118512053311969335356772790101855987579612324032230981140709234113591868710674348443119713075768442069533022562923454049435046166855597552213025107520927047727766591352465753922802457421140024190284963618364745026060323855587414731161654648003536634794203702663032094972786232501279774265844756309126250373969399875714401017673299278545742082597908030734472216112397895578312688258897439979280299103198929768484348325817576658232431767841375210224343724422415903348156038269624084195529082075972535541700844303057962020776572690043630432332190449897084967334782928234345336004691923074796712125915097271308926983925646810988171110383836314265380602813243845256965796328974283169347531325237103316768242890888663009013457209625651842591584002951607350972248319381333589596910955526628842786315421955538808536588151077004545547356771380749999758718287137602310670793168148685417265015035949431789183542730010759910718387825832625021416729848968637519127442625251104704329052204528669742855487537010913692438560077687993980377970562264395178907003075719127274004346813017654383314040126724306963202285265973206360389095281902734434087051526622749386066162901147664520080362437263461167406984401616234456325504610104010197393261855410902680314635676108737295014367731567871706471936842021929982357161991892529239108426164585287645694725366347112124260384610289146314361389250280192926853927551177275872245977644664268407408029956911754236081421372266635290920452327725230417619470771154514269549886287759383550126025442058017574322257821636641235524172906168686423510061693346722276849101732197717141834838641532466194168612780022607086617860608187205329475678718158259712106405745877656856347039968621615025179097266969801586755419160912796907387359871002056342068402169231106084732003944962562079649932311745170209352140606889917358137259582688160940789296433242585897781054520839163293130096378070032850574774995497900251562974232721405513316098361920879970138071351844838701371591859723974549507369743936801221921999304584517033105770426193758619702029115456137989978907801910051185675194668311425852600324908475753524067369255067650738948779493618679638059733416922993299166800941281834006342409929119808796083619892170021861944168480241554185990454666882020287371651217358941819723192577941659445008410492396867424802965722836587494491264103617324748376126895059193393700333968176663018021438324573093598236720403317526486537520884176592876927249358367481357087865642553577369754571160699814325715144145171497940496957831300727165695841728032118129078422779577630764512422158074332921144339292932321662135887082492013874386814327230225183592961379594688084811293535754584120660694061649866285187962977277414178980516390315556076034898856485228543309782344635801539430328841622800871279741448077707732499214725485490550736701626000039189291794853321872666544423827909941169275848316642516306587609531193627845149267389667542318120583046115424820937632723478192722890689076184743322323912393674237234024317580491835157880292904026167701189097808682249640074669346197214114320647670337623021400033942718874872502430414509552777281473232489337200589689162151375495802874548258937311483408105753257010397490123224212057192536510564423226555214608736395210710262913820500264449962775522597095090104377195625185862097982052737463619025561816322890446099110069281063021223674514420067201901462981651589335202263332208733972070876587072934793690932489190153778094945475081395262089553646773462819687831280244937471747448193604134491649182034614053669022886187412237376659939842579916927104187616594758677557066714455107207754232440120925700172025158579748015963742900004952759320574831250241169733852611660774077816850929779929238641271783027254632245912180932266656012267865015655040783497712567453316759871709044682471484374843941458913670597495054323446750992180790956768591030346907637365367377697136085282257117470453187630048806025918330119341712364840260250348198380744416825909199099905974592848016995355424889367349709738538584656834717300266642888686286557322332649202762272542155393200952819961431430117200582983071096446975647303010095317931908512294788863318523619021931270933817759124107899404640891767895214206929816464766955177604109865654520764247825882803173027150479450766208223008088593453137859493772726070669029921843276813297607583332037767660164972887923730168850345151860650965002439944052567541692143819696707336767842838929180785737707618516841951780658131598547313943005908148102530852974219803772501404604758484585904268422237499697080762819225960715649485083633559833850607196649674753408767742964961938627284807887954030609873823449933298308300753004467950197664591276562568732817673211541808185129069074410676959520343728211563848892825684377836995421247267809779316290102172864251088186380649157736457510392713110017130953249227095096939668726306237704325791482315142657977469438876145316255882714312049107403997678884881758100767803508602306711956474089885977572565588067668244287467473592716723155393060809740437900286740665453123992000884323682529092610945714898424499047765886366343930205700037683079859340850644552376057114563467566167730225977421202126982668272529134792382050428858340321237759080160059453327085977988318925818214382545033661371350094338588440621163485575640543233238309846363090937986281586302445576695097606689989842358887914835654826118402827103352750036760215770722488458368527485556257545112658395435390907037922677449786122068628404176763973853571211436462790615933799508037185521898486050426562309285758119089457943878775895732132748865994646337073010205914936311123054481555298272131836046450559476569093973734095507786313492050772338519418653907870605883219169477679538443819475545973965907106922388439409076041253676926937221162583258444886008301831472051509694991846782572445162047786049491992769785080488552544412837534658861592334832074453577159150817111589424832543414818988164924076894681350099494100760330494844459747008010641271611110085626462132560253527407031972580003777515307584581338127978281763004636171395004944876233798462567647301788655845435881993593743890494566551661698611835076751260242466884021900353432640454963706140102934064081160930077714748803106126828898596094484982012541753458046432332305015613778291376700039871194064990464656021881207076476888419081817834417815780595538677832239089635445236172290709999267558483725423460589453360386152085312361992038428322520576086744949709085266468479848831989987332528809812522655316823710357340633974616369746216423233891590188584339787844845067852169857255734285255936833720073623323317801260144591988662804778047755442600336102647788963780715750285678026142253167320985241111686596143118943345726548849816507796293327410185046093443308541882589731261801072748590157367490281050307128907939179894090862533597236874105043419288943458253830388428547043746309234107301398642985530711038714770865290568657007645240665010024985866105471524130520553244754136205665456046402160883279174489947414112279639957710410802736276066311097020726881828685266758202722951455231706443962259221876060374730068221850312263759267387684691813343343516914558163432292480594960911811775958442475362028396605948158033775980731720480492638366697337608784555344886869229510083611480142485909122099335583387725907752993777082424553145638443893415321149918184077065584707338446808575321819960026030517730567142350940030200789239955183346154550421581283651663591563876934697024654902333633473863437090084698493714984641722343015005404190486688808336019019282885137874895099996780115338095112310441864642714084837686579808032085635185705078422813780251708715423065511735766610394069212476521189051672377504717108866753385065687531704958078591494091371681412274535052738773817128326372242972347201972646892066864853092413840808450028639761003716267345998566470010032065419918977604821764890620919495094575073649263765330618045827576055196703566476980623381368048099448609707502342415712647002836258048863658837577629545277514290113762605699848919215507860346707595216800095284898481330787830634596161481467260252006003632491270686153324266283141426769153131187876966316118346731677102334336308007670975106505230789306113640409142504979146612881847938145135963142090514661745601830038845346280172204869352498936675798302162454322944652753036870471489952505010224091873984853939300883772850553959825986849959635413770669173557392822520905172023164584511644759864091126594639552835337551042577267224100276253989546791503398835080216493750632936886308326849275122796991238556781790330976706344802960478306083267116041829500744298323858500983327209336136734335532031482855630971765810040394938422072166223163527354683585348509622536600041759932035389018255911701346652772433618200553582939852814098172882972071843661655496012932121833491436583973226630995405804642121264104177592968697871569434270422146209247254886263383040109014063919709470786091027420034586390932977607304968206762977531002775085296842114096131609476731980462064211063734314658220930841172807528299212354361271359054476436204627057298460442586803361014006816654182157862940407153952230449648110359716344569774707754618752774024218580375766495227660464945141917039869666811538945610002311061959303537126525691446198983069924475333072995402940825641392940757155645129984187952634976604371628744647202285566273055524665396794805565765057440915837515084666692983100272997172011290134940193739980221292150152780830124844205048554325051056362200679916358597741410538507452861388625478082212560585198483651555083365348184526946453672335678449984263887222242151042678845847374921297742371792674388325025797777128762162677967844846309785023326171141881915050166496741873691115124796955875105874675176721868102026640614983178850036876733683896082705021242226250182230676267759007938492290603175052628330803317876017805127651928370070353155893766803232482996478186361120756630622718286250567907503713449502126291406188618935563479086534636288431565771853726606065793753534024867850703601222514820298655952871044391921773998480386760940806975141879823779253531921069721564046425399333542686916123926622596141311354654176132173056536586553725123880894613227512909038674980263687162075994109162320441402139027007200513341241745746463492547839435080876218272413988670592256177194469972357179527595126932695925666499459259389206308445233214451913960629076808216636270528161116402785825480636196645494518745123371791605675356026628776621113945066861400960921340657025820714880153414274300814664433500142284902934019600398983408357143394342665795354035585172793827988373355688936443460612203733772638348601833210683504666951895136365706986659215637722945125528813948353625079624765648340766275843225828911721235964046772966086218198353695797636597780424498073336464397202496990681405781873101605813960165541171706109124429256604526370377669522727556805016399842047807015125806195566926628999740289125096057210151443943656342490361407593047327237029729979516716757957804301763373970697745702946093193223374250082345734265230866656522750668688743734443170697572118478238393992704735449231933746641090044519029955336259314645167901603031854626641102282032102622036589636680750190203046943195489222474060590912206661407757918986181364118310159619953306056187559063629907115877058999978034286964858665671321759931839460252933709690494253124740677445583283968968138414085330150000402716541053049837635698800507400554423017816017366573953622177767019002999152304655875728165661634111773407642901858824503151588864304079628476038317101654159003002209084435514458101997930580704933174068949294739940282400923432847185946553145346076779791852567611912581409194064937334562037836613680153107644342928592715090253230171381914921199652484570734712205420080520145683201011930088423122869837119186451452254402258539696570878072356869150613489486935713636790608303469050727641026780639049966233000420904783012939775223114634380983130517354613368881478299374722602407805090415287137433896215821410609410157869905320475406739617650543994640814086113367930672704983709787415227659108706910910154798021657534069226646619014274101494812316572747188181331254370466111635590695480661321971994693926754294671289464000436643676985134740919989647940799989871083476110462322478810592094459632354096353115472692369374305817130358682733078065964364017961581880384022734233582209627687072930676506134675084514333100532855473118632427114480136237519471487399895119379234969110311815167559969026707151227788761366274253199952693526486034330384223825860373715185230579341696894274171804665475555445311989534062527977521518989638979922128470435855150657866013060361903089049431657001922999101105404778772976999739436986752113486647500236091094455977262150929341906879265098772873317102449486581295655495789625952342356572945819947005747414230075453180517075803528159674973692015001989230917252660832960328707340889390832898227623122949885385976377950651150083070924973343597845265685042751590047550660833418660146414650624478913752130172546252631411122512358197236874253304694493795894717668836108314133705666784827259915574812568850519483314619111094171243324911338327564058792584551158990690972232673154363299688771121695797865321539175499968694868887874789126265111504395273984561611957240157800741256803760028474474648522703798080752167930750220797316258635513373628998511369494967446419252043529142495047874653386533548791462383661448458551746848902198159647839471678282981552885925734386399659949443015768332781040226820947593483822690521522197041325690295621123823876341001284224846530054469928404796804257630168380618540267400544298850972575486147032232657383365819447618880733158707539256842486843940541162701826888712708522431723597744009577316242338243911894000164392794740922649685175835856438647072607367098283663509892161167762937979094770743596013685921468142937436660006922156493778814752586254650520403040177935862720832311502800437796659583914268077838108037763554962595900699931349011187676798460954223176994333624065082293259726762884427594920550432886809094087499334393309173670586629639439011231147734810164176413177367560841015105148860454970389480377970050584444300577444414367726499192897324933372189326408231457309237790018048684242002934878171856376405556702842364981340957729429346467587962388859480563982459641312444598425214887042174820959362606611494373329828295065747948807422092187867662370571450475984449860073470733053874081494704550153281662983874495409387903593074448399078654623092348044959551424363104051022256687630662653710600995282736640131302235793602855141547547842330940322665250113704407603704554438415071751489239644571699345975276961772861998259309037202241552578189931976740849726731335174967074286541085896417863155265592162252792308543113320469808353520586911525345096357021812682220021879959536239130225219141991807384429761783131601045304809319727131933135720011142033156055664812951168535279631829226404122624730732659156768093272829377273131314826521832618204100849630278509841786558986902072681234135641432804451241120572628686049604989222650117265059377931440865206124447816625566251634700993181848721538927906311546893844140434463628632868995964051990081319112747988649796777481165260924041410295844133503567976874929743817157656534768757977505941883534460755617943335205598715603858172373000974388216574069321388623733307743536563661675391800812410891006771588802119110519921111002531533868837141544649967224938763220062606722269881479662574001596598491003127394758894303329248834001839241674072788086578907471752291870149999427035071723261327741107967685507731514382044992725560064116080841542540461271370605211725430301196914278708088776866017135367008607059377366010163059585524343488559845106895318966633280950709163828220296788324890532771851632314249112571909296279153666513409229042153383650235984490172653823935086834624481733296274273714100312525953777315192596957551480278952789833739964836593930472844624843593728477224310161914450018790620604689513328880296697459473140864212543026450720733254765661195978243006534229426284695189828727598465315488769098605276301837439739324159787139553447324113545036649775765367806423167625578735134702612584703803500442908358609466709217874490863604650045285014623917944334667834727429556187990092751793666160499764315463880687206935610168496612876267989163966367626232326396569974209776941103938116634602634900119737780459210996272510478166614145515036449214918960697593100350016119843060047586567402811231140126117996892672416358507504834019673096895415160799258858149539688302094686066400743469497976056650248558676316582374179161256905385002428629246306188336434136254977015638282074263045004073943213298593212330684289511374337919028002857382705693344488592438280830187397520941466095011449502524265523526828562226677378081354431582523699131854759904117470382294187383345786826056410748116322231321344340595149899604137318913321528918693589033250524200930821506115041140053011326053210054806286772609195438339510742957320076702264929598427968227837404751294687567944284412995442810865605168941636737296204985061176454632825086937264911094071499582597827160635499678539287288966693689471904763613344077294358891652035467635510764060812889902395563237008954132145148920892803038309419151421425327845437116973208444282524838729199750302366358899239404516765442327067397068766513219867237456852989341321471517870137873190841062396796193527379329995774724172113912685209359835682610711740843196479149359885978047112434832015289846856400020893114607467773337918321655168339260674463405726637748327865603869703359856606279898018818844125913254807032169823873486281368083259867300938152238692204703404969463960957574142726403858157906138762655513327223945280083122441144542149100318668287103271994379112822198998950859496313374007106032148068945690626299803273875985537198591730421908003750881055533930111978873424880166825564936723582536375390656391939338751299623090179524288907146736752270548565750223649289812471583405989893540991962619215741149723451746372031780712426198549852767833620499357237742358678704254347694251218946234287326674665640059232979257116508077395704774690238262747380190148833433211813333507798898188541896892005119401468573840143046889131127873678545029539870757572274829676892799933696921697483169813479005138935326664941722637477828060244073994895062164434724283827070733408486934981244096285199436482331776751461392756574123704262700456169146976423358481308607766137214075954507249927189258517348770868975356720441045379930035243020265275190351183015613832592156871126605993544679700233224298940357592403020163904914824146128755548197775660453322910263735765636254973843857723994139599205682074210504415997825220704171884324258940324000382394213770050702744963633540588536759388648543860566907633854829718787829956695342133457125955686017513772213135462363118284599695128187089205847572196084044527617615454812235899730139816291908954766145979426612602484251038385528060163040932609552085603063454466187988200597568630585508518301653623914209651948279884032048999985955464490782103916316587993304227290242129919252098051136189174730518169009369688503499445327716977945999098767815100339742983934747063549774936642099569078776663474837233383350068720357497517334625162218725857871714015256445541970381847340066745415384694185395453837520577904364969388302701886616495557663196694638944997078133452697080843580545857117605332116332776923764851358225965709920861874610378597000930294710533128528538370953046763801403728759782435615691932898076364345328659819775178873575802714529815300018949614855018955455563771980159298780614690998917377608884798810845195648372628690223515535862121978127254055023003718439698218804550479777576241204797384862376557868853036332854563136552447690721544555213717113743554905512047965648260367458701221381531272211408366080475979671003268896234085909938508957815102379212440990051728612870516330628935347438452876637134703396951669582223095095926779171545701037557238913543874943080750921903261624038617818464373969792886127297751998446584974217664982524062031029547120354650520674543891932840524626125246346558866247570399125852859107460602282795484971645521429127188033964154016670365442291941690887196598906094474949626289392876457755004887832397484242065677521026543598582617421507563132086746462566116476232069771895736662129885453668154273272724878501731116568640035232328139136600842093241021153209126213044098552486016309490499135636833893061320103103446532481900320085500113822422445340187188801801468794267646084697052762022998508060872693660764231811507569367685845564707157866205255392841159023583043442758398450661741890700450013347702073612692555572364953376880335717115205388389857977774743452740284955185846612744342134379795750079217654119431843013128908945810031592821236354164908781618380030680622565072606820576346668190207563440476494496439018970049793051537164008115423876029415888791723477990885896695258667469647574063210773317447523526189182947277934370789054635905348762844114362352258206257813856872860280848935247554128034545223601261036754544598571916644660205765803149760270150615976303291839222675655752039845872793610955437424718758144063157427798988274573561679823501361947916224420449049440656513407561783492565879764566024875066572876610313493004155352628572682113926969789100698260573059559769560243138334924740413761586341759117556543967916790870645951261908777581064306860106947212419643657601605870263616795274170114676348554915209879407303543003937635696611272294171286637368978285418978709855840349587429689877955138642397410789822018053187544294727868366586026714593956763321262848150360674559085229853846779065413127057634366648648499320877181757707706957807710336485064938133431733520972501116334573495219643590179365021058112247103666445969041796190913496186500475997839169023498632915037420781859991623594346303577118494773861113490529902025065628651570168618252712076425865863718198487747169157040894762401038911594087105765727930435728150919630072341275128644569059362629406496862634275237410484700787918561102493539864423357444970647059613149052886813643904960094569598700992386595843041892248403299376041880362415917274815843834545977931395294433454170010550609172369669442710520980063792763300277032753438642763957854485899419983363601685820464034255795839916745938288314173698690204513988787221904188480032072152648470394479331490282166343771439958822605014791564720823785105835044466299037680863423031061188273654263683792194924477780031601472934698573662286464976523708750629393733589035667131688972574330089614159264809746992770696206260998178822557443225975257171397508338543063559028275721874072425827096974321315517819926997870004400383504097181997234961619579135131051909356244530222771492303860659824945787123114372815842539998625958993864105381864138018654526144497168142604947875249625116332425447936684657476237802358436683387369411489857519594672614367620884686098674213365877523105440463876444793298463495970800400828333714256709017750139128804496194575729976514180902550160986001952180209346729654294549234238150236168942013134514508592232854531908364702457503237962173563271516022157138669878314325532835737938831679600587823577874163251686008915560837706908522294709542019032148131584172871685135041323957125299836337964749473707799268624179367427843644773244821299341367848419532862480838114264551269671510270549045797258627022421380987470482656876921958677550098640353593017309459942792859714285343819268558964447463871988693513741553005094108251754728399911220341831464221606437520357178187544941940882055778460198736181771426896470079848483750777355230733279337065255313706916630127224640693275407493006608011997481802171629087568848871353647594768694894332482215444059829284060984245141275914038198039224153960372816346304507378431885291567912314735387515507104980070745709712102164674364157157429045202732967817921801445520464358197066602407374474044957277191587376696147488153731749876357034802411715446260354190653848267739673440357199879462308819320743366029712098630810881172993782990609430416645705134738101616723924824286419704570272204330590887985344550239052855201836764599332933244165412981245433712740668343302467473408438145083398433295247716628901672806011174241063622078790868899682145599313872479103836906126128128823008148132349995561937849937502164834811317925820917034034414550880483759883878770600661213827466915283121477136274245078828310202704083627813753754325722283816760743072069638310168583861215882216908870883081612150667011708970897826022770377865579102202119875173824279945227161023552646884621724373606451106891985255125020801182744858448523105084228364402719014290784516310105579220444170754499496720575727100362594886643246828787465049088189771960903777202354825962236402301089797270086433520559752539726504006371650530844977307449370891093156572278841663132923297234452560685090454589033192379821436151280624123035323737808766364670550648388653907652691091448590923322678480019038681267278663990816313637857116591306732584687423155827767906400409226699020424512010085597622665908638282771123749373268902382694288088363206138692074693157069801510942395600748161948913502493974903099330090746080823341386856927351430664546969879979194698137232183430467705976754227509729431702861622863718200456298194354333082343120999273357616276095566485364914460325299362560315918781424124381262564604247938907122986773461740221267600647432751032929041395489741352921262884288955340752388129059527838429400383748563270169467959473236172294797994448615982130215655816963957120413934551567287132294293755632080064927580995956841340249972767542151391990937023850012047147121626909637235605952730216058844792078410402343869774504709902354109169383014142833680502399440240968511372859723809205804902257660729249942236138413451196796318132066285089287377626687261145845827844311485690638144220847666761018036363824879272419586140917940520776678508339819930787908088095404049865463363828163783006718549827891726051082743918397231791895278339413279763255561448469407998429728527795687416350347971055374662181783536618510507587059558672573268896635370870001131221104077993742795651336257843368036636821326563872871661450194996125427948357052177045825861165807694153596394742624879776467490632556161308254517681601522407810722751230364854920957427067414357065847753512867637316083615166447467723464925026534641809187102330749340187278803967340027739366249966483268314238329947793169460908439633478939210746153089152461908824023880574079018261086377233819516260926420007728069812051684738913088446600013790562537685300616032547581430421804454254065753947795494637463406917006094823786107753666376186780375914619206490914229463552240709180947281781670074774208075232362621569811978683317405380497010373730681076239311029970398189585493727277588499098057247887140352571473674274442554008793688505335715716301826575285046789053036014367299166963622285782977179975702555714140994715535343825687007083561624424672817897059959128040628297898612812294717798824553445105508985465730074284515074665939692115463042845203075776496563180914843153011083457424779027178852649766959780770653332866780277675736991426203330640438632755946816185736969065918222722364541935160647203127376671053368073923844694458118771609902688542361359718687558587813211421771782397854435680554828926294712802374507464170862934538340595934076234998308629054193467878600572365607865331125886634318653653560191931224443270797187926763700244379737119609553559298607297365628632974014908284581928074948462077250844687044288456265403664272462663116741441802431889632500941246619406857411952335515571557214056074771346370238912323544981620974943799031034961581745151446369217747338507425035823894219228654706193140155775736644404153370260655359976087711066586446293654479736209114828042468919887649629739826489189539563508607651419092076873660128205572705448466399350835894486660428591495706563804004458119208245935879105430117080073435263321192340942281828390877747636734584348645159954251990691180260478673698106309384496804438153102797989549257929257065155154884172611204343103693823527638374812327077550851609750103926049337313505108030685445450306128734261699915799750865222548953666424269784428533787448348473389449830269454713956569346274365869323235337128404016930496533044795728553842814633969356995370009866390205069123554200548136737023554786438547631741110384282763198414228592374003113824211449399172534837303978505751880494488634482517408520214116599539202390845411749042223762057013230048855876920650578597346083876311704058866804975024607473148529610118438094654125825908187893644677183067469383784487348350266730345577712272636892468584233452214511268384151613252550486623203264443081207437933180247489140516924461180622270500144898479713201278028664104434298212767540126268488245477740539159804410333353101142987532096385005478566587025357015011955326940875813641815773506038686305523198195636045179319001820295904438667491463639354287090517447178734110358524613085313143733463997891542633967994936982617803648309953325376738500708249834954102296089715454638957701563693428061306989794848533660062649736753021215105245715799610248465461697485192015214847054371052700334189442193569458933999678165332655032045524386861573657307356728049779485850098832817438838354374765096437378670346729814767698225165143310690912165779106758633428853985960184044138102576374020689951906540418008707593780671134019968377868106141222081242562327392526678384770502913306168091452574566178730927348968725329508278201486282479589072951047916365139539174403616158514479744989679635175960961981013840458409801221084656135199814290092397992845884884207974039732338805705159779607510624780522709200508793540549947529440182266486437203628183416762979312266041228979970895952381383856069912668652490287028197107213002713390004130428887477077038499327242935233819238260242829557292308673533848897955092859936755079350568665535471808497004857804803604178399000217375424567707652757651844630584591723742182778740952504870351197874536918262897255292814183656262805442819793753177823951951654343100308293801037043610893314809801517328077776442454948323694096709291918048153875615933008713947528786001372374874086616656280618347932214847871225706308823423582149409305715693329188428198021306367451760115860268580115022497031299370481745847627672847579358472107597890849127860125010672906110305114216776267252899066597689365670741697907599245121842786422246599282997625712302909393557208934118230592551053223600443300225463136462568871786795651062577256928600693497206881660412417383544561407793794184507896328678609757326718299433676322251124195516813483792002975944972150712662284825620999567275649908821943155775994425385324730997213869393030076488795333491670350527098334593411051084079286838441761623698406652421100998039403747266126104507028753227084311809361069984956537548872975617936366478708778039139408885305943376740798170700364472804135720197082278790392574593550756306991940473139222433471199250569588377766247577311535015732695418439668565115648129235798970333041027166143728925119728901855407177237899657715678495686620373090000378521855621683967382646918591055902905669609394440854333028736845690314653288367937752888482306423043707812132877461993020530614242140026034688322574363919605503554150298362986081948796747207602016840434957247629568321368051861563404833198218985657606651130309218376654626673963204665028755029375405302574717087156663403208610493786543510363481092865425711228487083949935820097235019491113557980204672451843449750345659601177700518749128904451764251394027020978189921091609540166940603407048464026244327162893378121147769583719375897210343809080390473393450086870775615804835634716901669625807761014004954878303872698216928388938054153170890014112116967476789032529023378853044336569021596805977424656614525417748114228818150319697906436033709391884020415624502992761907179610131005901182614576385598883323385960840748743777092198817350007642877196835209859506435124481796212203083501157753797246934144681823067435606187380966211568879318959779499646322825956867419509761667390522393432976806864965143478641658846609287909973301698717606322513856361164181818833837833876422999785574367300646335739236509887713401697504708406116806712441602585447596804565236258575169816879404597742909325405771054436875429107993356546578256230425324986518467397564721968512640356016490247244154870440780622338120528404974126329145400036742763816840560324587569589429076328220344868717235477623078263500119295355095900071224485618241499704034780901197850738657186108610299988685428743134880067616079835829785704041898329535201104411562007372165254295517003372690731057279153841549573875849337005661223499610395099685419209254252285479572278923262834467040237038369915572695155884830305997960816892859989931948895607295165549171560934819750355690426164748291055611003669807030162514696673359507357545625481230735791788347332309502920756029109920163333891632938648091981380097509931489440647837406253610119590902012910351781575488287119443038812398491089889812967786770213037635896304815400918332139771462522962885335142975681334434552802045372629108857429031772959385338659210623369840189023207397854916629727553368388701435186762075828699798319594275970716505613398802064854936152351813329890523746028070016794146938858253830130663340101407101222193788820022287694910610932837959280369354356628771348785139331831511849669580158873909591233008107046097541459316910982442911290550026511541478277446415132696997747396037248577534151440098693303492184272151267459423111099387243495185400037162586625773044407339063691471413572814122022854611548033226979686645588109469741987907839029339532598755703300503866602070840593341319850896382607944780336394794433572623253008856934018782069655217075675235267218029543195845594612116547758492459075104689132698054297586391615139972732416147696224835035376599671671598381787814172324325982603085220274817195606544344776256928375717432574305552784443911518345635828176817188307529254858152025868949306560806739541652345558159746704717709238379657380763397076096106127452953328245562169470808541742705175110165556565376050393376242885954673728620642140671976347133429217922075766688832177535917888444186191666999595640921922601096372325089889702624996047460736118671596239686030871013739478421733520241960814961682183516848734094388307423410451938566214627884589341680200105197098206430152696939538054788163109799609053527325299350180037299652289618626983413450726005296466541349230236295591544611901826752628509742855954183163658629395273351672190107157717765923993627379884436781252042408133021093506369805441591949658093480257411831106290678319755087739066070073515084046422792880898930369989825005958283441766162368516715183078625778298445342658116699728911146719373672176830177728317819795508154266479043474152601731156701438179749683731565553214505392588810476305245828824118875826217894410750660175633609488727020103125678188107947742274653793489501344655409367676264941288855901304445087988978520193482661211905664938426230508656858764322137495252139320526121617933554693323039637912944281447056495203747219096247320245548562968426154874541368201674574717964590788040620590552531527884833970227425594894453141745706713694615534798255184953838375452450001968190593953808666538031576386845178438380374821772316776812747923541127752835339504369873363664246732716919730498137221613923402243167980281238493144009229478705667579890065331742401124060668748215830797367734852378442002635986643475497730900747416731270148636122772519119306144172499682209512524722473489582730840374906479493082115938361737117820499442305761397376126808371649356576195426880848571404870620528944863800749380375353253463206358178327960160984994353370724998531074215281182035466381362636602278804610698501657078290260433121567820987372776330334030647173861720084950954050393200488937114115598442300838186767850449079442653210832832533083647951937152761971505725039509232696824037989578263962203664766856051320374416064031631327986926557048733970976057538294859600083103297788947395506355460931733919301958054958065108050155726690014021647210226156714710744932317680061292389004248008821513330570155017182078143947947062790833791993439584631488347082553086353676469262327605989455262620559089285542391829803539616908533413085204517275266260774774240824642170968797743884442655794326628474131054144199368824712517439860383755316740025801686594670637209393020753565489482583956783443090622843759920638457252998862922743858882034092121861306570417505995386836692631602047275243288212243684477678088914397160408713810675139399248330411036071390408073663599807015815158413541780799643851663588321501076617644524066971376805297162758374975709561741713206826767853750235643379636107968067638835533474826655340840164190567489475856282586229300950718952260017851089805141640060123060486909289446250293879631117237502331484877076586662332462376267285838514787517731856756275019062773242704011583223076247495218640298829681014708990872374174295154423808033305622834031645859704034551844405649002560597208386994512033353326623363303030928404510399041315974477374947974823959651049223090958013094165333405044194317524652270806364641181698187302322115022457447984498688660290373285607899557307624717813055628628003015508064118620298409117155786802616638729883886023176000323019654035839818695134560596383557377521491927313206716537366524122366358826973116432893945632773978422158044375015436363477995869293316155030811343099613606528630523711492978432902537420438399959466226515933695393264847709723319118089099212567400575029486155294704649510476955720493205377468774941396233466386998214853910519957447739789165347046115088666846668948622284381259113223638434209336833420512763386965695711296879433309361099716284111431875691505354170233145592126179090974401305237053818424158627374315978095341131132840627062155014298017330108536853785623117083739836134531054245435154028509298481926918754054232310671090428302257170142066203793067797356121382330062912475021479899162203523362568862736657256982645068869708310729337680176915614437202855115304988252995188852028040944364324123559864517024477941758022633256696204646826150194998745525499679658826818501721928918280788511802169385723903891043616420974248144678472574894918894554475121505801392482654254898527684412487195049074792768430859513549977703308281589832691645844733948552749053179623478871978919946234804728129871159395226159450102902598030136430570595056932365379004474540581086403346405732591910435332295399028756727829633204236058164956827312688471615331487279198505488230061896301405930103116370629131014887266962687353945268371731891209179698971263633604445609973336535466544280886767986952241146577518451140432417465845771528861180456053113226269223629923749555612106171132963574238817276589155994088351940064136797228614171564406067533685403713645044838755462802625815300286792135803032706677040833709412874873560969554508696874827751323421861148178824537828330543011121870628155853502782812058040823379559256374117654129482322391940429504115086755257068785771087826772233269835454361990565628801497163716728132602837730097665090218965567968944666539997411757780340998717799797380750496869971671027729836009296143231402411650647938738987682859797866047245037551819252581216868239119374706908112600205707547165468216835191377412780045832162970057397830903886925064984359640504291610134794308896283920542768075902059907470178845440227766470679502424631645146033027194486382634332714466800468006351469420691165630737011363269316417518155037828672050891885768167857069000703746146351174302420642240331550381374346030343288945760466830001141158897464132684079676732140208167294695053972810451318002760440019558350312692067677495935497242903702764724989304272433743818291506899012935029094609266589811239287681731216381895982983208751563744582008352097956281889671193085077438926665773289307859251446189189566564053897539978167601849414919313618487700870312228168868032950955812769971876236250483332848626921782938815611419656520002341190755276865234209136671179272448988828390219857235425220881135322221014995533957555533970632244454416912794613789007408247514428468145474083350559800380987148804230106171689729675531056460849789260605742408618271641841723868073401489041606909854711271958090218020751488769813594293606407041573348220319493764803723607513106950376278334919616559423297555720744762249374113645783110091512479773205960536500400478071542650947949942999639425963135489170850119932413586440611449944454413134675350621479500495610217264636273044493170417565582499594424134932966377913040837692409031623735966678395183776590534319824260839837050187139349674295679904951237891005179979105272916964442131208041798097508225120309915373350557366472515996791779812645282526716171971578774776564892562317158863616929782984261226313916810440957515181195179251792735006862761745973729971486372841257224137223095548363334977905262756614890583598385337343184928755700631450673760201817811776507672078545368465203210343008100383860812617985261774492312150266826978557061940982765478461203721022846289307628692286603966222007692164107730686912992161156815374382697151578254627343493362092659719207190257465316515015398615122041100720553901426462487870499413695410172428761481562809420510203776375519207535107161325106301497492792521576662548770985093999754643135912490400968736704606851363336991548819537991709127666396125800835549057667521411268015661810127614508198846548597313317616277917787413229115741825368740278890464485468485707392739689860288434298553259085440138368467344058885136182343135916371204438542929620775060199559411148950877017862737709572901738229507480070659643440175909138990691289937449375342710536560769070108416109517961295715879311680953273534323909026334424156864625238819449312077532150107013021161073149105500064042189879489825988658741410453736029626885221054003597559899143690732574812797005775123310131939241405714249498494452271479872176799181455279309499055299579366312037363000735764464836202477383079324349623717931992111561403722396271078005869841570536162510549894762064636717480788896411263324876994552232913198836875346335520890149049871282849406001071522409235760858480234855579574246630416218635144147575966147382383750107246132607499060858796008484646949450002790976025446788077392203674696768069398728415190381886924940653057311748153301817684871576622707325497571949238811297655034524628087446408196656281070017647572319506295487689600934114007600003174549143495076805498306607782964615910485279976319801098922120212040280443673596329223592378504118870092059589618738003504631362949273213832747732551154400343077487765370363623787004728240057289679671271985631172881944687959826546507360330396354690156919212210521911935299723864005465076603029434402915719438744241248066304399776692260446274956316482390305710057566938099390442144048197646292007491801079983899109416624632846996321922328363198247939832246184454418747253086622396408087522882983181491846761665657820469083065382714432392069699043045928264002698232974072951982955046654075951059339473878172398782757026032135779504380201774138835298414207761741486092355995226323792249391382143396335189533106406291028939191984583495221532273808037892731621647712326542056686496449695833157605469768061910354171232378449582353139789136100581457696253726579875302868440498468748600324106868002659498195953180047936372571917619567656056893728366851703551199345540269645596246129945009722459668066337545845244567450846456977175183597274710802199162067054322747039449964717968024817690672535018772697096079737029164088484786165958421272193453010646262955905855486839733348628887923679057098784991937756890097887818872758807161354664057345675670509238552260105213484154124598748360094592556896504265332338863157509988483221944440354559785025861683212073414417934183049852563570442228560499944903838341275608455374102739859887797918489476387252651832104300697412503789866750582719048945265228656874880970639336415333107045012206551420064960617571129509238683695462683622358244617037495707387975321605024558528079857618347303397403458956852392366955101609818620524074914480262400255074608262503080220102681497014603793182615110950987293122682335774374431195753176587191819939417210389697959682582385907891390135925899898819933033557807954233116289421581335635073231953104225469179382038367297957972171294116297933444538979481602432492384047930695976743823189944451705834398013701415950656301750982233077674009955844388899528323832865023615151235981536095704520373373663048356440595743816588324367476004817251718690667554554052441617311618644719062930754513216902503798877883330264779229567478054049868882175183458705421263436116652720119194481942507267497637014959324926490987703943935069237534618536138162639653144299103869847120098713998016637786885602824888326381178383561133316173947599934967289975399643045886417402791559528906379312644592286652400864627672900264397384825131889044649830236378690948137516499861290570385717268513970513976573819498722265617727249532903871193229917835078848547042556025466176925929913164219305433513193762964551316752992680326681911738205626859155279228159965719588353131143122012805196896714466034028276007630342891559930842262003816040686998371102767413950753455497565653333651668265829308390517441309715480390916055549873127273807979289403512989895490597628710271608130739403366022455962787960894186486653886141594083443471551766628595321770559917713538270495098191586216118038191044351951108959762849930752444987877577083546646083136993467848296114353022585339796743844098110425292648700304304556912424098994190214031761066573149637582304321618954367058116006799737871504176919651693410745314280685407200920335192681535269601601508722520183849854768133029435372143048172787693603073286503596945269543193827583658954470395803979897957282136652351931358564867656948559182396464056749867168806579492762145031138530190834457233567484850328938829013456764831928915279272481182671616775818969533118298234337124212988883343330741450322016691548091075547991064238141216453934867855132950013604769246149965264274871712605647657495906929467778657657447934977510592229100831936789028054438100859057700036326183055928436176077407132034326130789157754270649679554383062529718713279104886880490474938990039660969069655115278925411131415788813524903265137436908766354432923177704916278704108550836576632058283355724059161456642435308965010641555429843899938844511459064900813509996995278002328650161802563275594540139436755692823294542238698412841350377592031497726100233160276117421883864253770395133272117999101693580258247745719897337685709021476434760984040927072691188872471510788016765483456097515608980927944436284299214892901234664752943233620792455801165025235024571764464376212265133359701497480394101743266510074953380070758750911295439573632604884972967216218671413546872262175256734093543338917348501848638167106591397311389721830755562185759590980540624453236206140936638565726975957256213048778377577194908117271042606302627877819116776791231305941953107583331925555881627627268071426791543144466616095027009571892015477719766575152169539779477967475991219063312901362850475203365480004670045765751392930633977567821842590318376409058939801100468247565698099488251191826204566556930316510182063659409845505454528298535777605442819343985556593622313553675590607152503493715155419216497327369430534028307707959731564588405639924928322156704650952024817444397054598037363660525119050312362020140459836108276272357944435147410231953395758014935784892153402426315895492308980689394932771332716127048526299851350861583777319720270066678191568958186451039044213477775419425655903075892858368232493038888192609731572054438058902933439621012122611136366427462396589023346396308243604990647281760458430844777323232962879857113259879730575069951977792694235220120695449880767093027329272505079189087739718200355326413373583898161215092968722681917940204497480065284281342461731515713528929230893156170956576176603716688737259554924202041019681299458689716212894870956546926437394123402100381999808682868237335836028614498509460115195239453965366806569027692494195383770156050800620802516726370724686295990139857306747084545153891399216479505196662092711058964183577168897934469721231574831220688087278348179487185600816769971673926759022855740995107560792462261639663563841392796378210724947043148828458146817503911090032626606167182428241836763656047260429737606172073749303476536628320001143348338388249552119430936431596278632282409108051655662985097406762813796479886124700092832052804719825977551223462597929787846894577090633259345030952364946197615655626518527253633963274406503248673511503174863717360844701533130614564718552656096155664296745825504032964249632055165194312119658252860833955042212568636710462652996655524537690385930185036346359677507969178806635106217932260137308332648206019593313252076304986775418271533358451808187544932026947142550680793788119379690242964169154491969543413821058332917982930936632380619488772629250916704809333517714967520007878239700378485953002059785168422859298380203162401000274218331188228233867228324535382020331451402152590358236439242427179754407269202521219997218985238719757995070845948976589385516457765911204338933959238561523225560959535832431174080702829460593062414894543295616598151773971995669224980796740764418845065317540628232300632440866025020088960126602393890099185593090640333080101559148499982298872550764686300336252824988314896187688663907520600739830249000857266486404149560366303834066426929689692879222823929443745307945442587920177873803642708065168579927888422018619917312632043223267409300812465011727839577647135185059590567535253385513764131699907376462362810424623046969729318751430812819311730052003475847727024866786130697835352364453300259490684800010366254126616661938497825453505891432449428987552076724791843545618301976504135776902348350387718483168159487255042578212800043317662122990878585016065043007215777456396635049374312643707026469981499337167065365592797035049996578738851219724462310535044315182970883803420129156153076362816947156870696539690577558969123146771068581683478058197928432408907534309743792103408850574929312982301755644778016218336379794875146524735771991198674067985735656581184321135327383954790980984397015561322280320205309460654549568239549877232339598534697557885394799221784483611714574084020485999274602279787260399180669210618304067985313420233493895759289601863912093707938153445526606521516174775055982304930808756704376354176866362802828427295159292472380383792592137438757464462555532218314109406413102247305216640545216655613308176048532591901761557277901799139233492829380127362767471276697455355623541539538300930729697188489973401873813532025650380237124161405077337827915945400565836272392168612148144641361347111273068311155692732773513046953201029280428682462850323872252552867246046705991298711789091852192034814254268581138376184717288453611319406372424394155932391040826392529212788507460216164741544249376971969749842957443515715161573364420048888160437144805587797293551100333089435905917954541787331051243694888559421461219376946530773102287146502614964339711443663667812490368044864830270836930002707869234943723976350725375925911811349373820980070107360725980089235268299321203142828979761441627892501950989918441278056367559751867036717425563428613038911771891154154586188508461967124554403319632277372327833867263390626852255881818976456443367121401785491858055061589408159142866632070272194652529359779179993574058753454334871922005961054719879263394770394082412279582834297994410684406092440124394325204667533883490749643571467381036757638646603586027602678240797924880448318293567358460286554705335837196360605742978507966119704284013526458379263270179315017497028891547135928156941567760625102787843708710765259353912876181325821242203756767619645984301911844076582895115920751015046198299441684404852301267904477983174695838563262022552307972735349357271566869853731507925805074886768712553799306059162881199494650623505795159929502559620571769956804688320281524780102518149564239132277226495339786668135765182563641055618098779652371137371992547034038979515727655841914121342494991503554168474632293942162040574256052863949527110600692436003857250719578595613915567360598665354621803109067139294294356611127275893329770151602153316659793389340503208343203859911897339535945589606513235220569662885248288882955945876950590961963295814040223572649741450047324298060311563617848845861698814536599708149423090466704252460125348758323557734876580864926004630438848133474839868380449023555855774664113866380153508094818700883178661906727219925426690231487016603342720100922075292689341607692295102326573018588608962714261837114858843321639229294928867779175117997362149468925376514297824422318679589129884308892894641215967683870662039126741489995045564370996194974201441101682620313725170529737639667583011376704977508301158917745338364838148921770968403968014504966528501169505010803947332656038991229103350311129222581833250972862978562832680447360617015307300905251624571993063042830002626369476163484651163425810335944035126697810490287422511545842960151809238600042418805469357152975452954165864162780944957653999812700166760950695573994296979182380083873882979452653926566848004342357409893753672619478002619328901815966797191917349680779043992325234076364806314039776585899213876613398860452478609765244294588441976940837744970744046435150948630113681185084342458326500714653665904524695873654850587680719541651923418154791467258032330665711577555608602777895170844092283741753982433957109107036210871988232907527798798738554406487085748766918533444231221530373607642909061328589406490640600019737521723096215612755512284676220836636614412752602363332491044788515770063148896680040574125878326534710624403533228298032197336728356197173120336319740763410574652608184800961050992209331285837869001676750452335590992183565131238430779664329357839598912912459389572713435481811641444128623312469900139353759145650925993230226837757714082339452268113941150483223091944144393406097345638995368752408726497963976231129655916817918079796954745484539912112448510673806133618984999473322148659064658298679409667015422024106399449802566031949954599468881115820008925339787744720161010543864122426963308940345055339480605122500980632528254498710801750816955102346321930068176988785041623497122464441440137313557359643666100083542201169943770137844821882696059302014499937115735184626611716276532510570397799652909465700362971525889199244558231396374974044216459138710513040891624903461204981207012799294554533487306625670360641815166443519277765689253860554018608362353915042359700743791088919371381281829461798267638178884673978514444003197124047321704532533363510920315567236339476114812771453223181926825894505555330857949010648024461852541163427883512491429862765816809233771396906850038490179630247186930083976893148914481911128192496937220700082268503995105783936812618667153642130811004092872122970723458955039501664168123586001933033707489401530965466503628927647510753049721117512440132317445712982337903088080538646841108422161060392891863546247750756551297495748169420079387487415592772900964892466373371408663407346792028615988588008784005556817183713594959056664955396423847944914044333241025021328030152257628143930629731260549191602811106514501979023674795905736470670618078591128855508930473098425466744419637738367794640562275968974120098169387379914670004715606222464067321757985158217560022465050460967610152516885573059332955070537235390034738203020375402643050465856400039249801374894466658865283910105931639864930221802362134546413699661499411911409198127405990599369977070011069194264288686448860597673592640553684300650111507408929429574366798664381238779781465881225115374098788297277214241389291719555859057130682483231546183549058748884778091890045493398240893326343591785007162025047397026910803759982181222576720823020694544565574039906804606737352778046320050327635709282381633881075377808590921225148521868328624382249034342729024187666059798046331883805987243300457288678985129203581717232993254048513582107910245007716553228610591412827312264100477648156270500994815063270546100422018355510010634220791595419262505128379718714382483656220301482460459878124648406923576608900200369381001294651420806151470689927025031940732703630498833545689052459816191203878771192929011736417371771985934442836143114810626313138020021176539530049299161964906508127735716728144884072776993306466499536035689255579011737801527552935471115055653105846483476648164019420094164146807929481253701664057885309480975053228138894650115786255614456593663350620875922791819773132585849052151880471347634443740175349626601373801801851934063186778358095525589126646796293748520160048731280732740321943113566896815233916700569368660335227706572261337717528589752269475945155294070856810201238742786292918939505200230813758016037098455668492198251257557656482132934527160032619094522675227779422763865292785939868094168863099562592291931991508472111454458455155669257012707732681656012888010842109472884602936843647738276410765930700459929235962391366848837376002020343971920681796635470650583233116138107259895953545960086035865543541102559836486841680861126205919091834927007803531191650492636126275822261243629216851006363597740696717837520218476517472682851416473611093340134572572730985147307151568115455049901890532870985642513511152466417990848335450792198692518256018133993375054075494092358748211525037062985375631398085654150274621584566569881343508577475728731397312605054988970961743711060939725817861057562830582446107679751958559828366236454508233110532898613931410743551122762559007456455077699425748964786947054085702153264870003322494155367617439566681159037055684114051663446266478977162344039449817100159126708993902382360812731718260491326283683638194559410644508786288310624581877416899926932049763038990884080944416591427582104637761703763158951637054986584778814161363872014786976536485773783465794162429374435570154612737296387612724472664180411978168133377595657713044482511461018466407639847369502183441337073142141792594943869005471554859739929270440451882321494386676750315152334052391123210920981161939360707976820569580081155477126383104167437746166333193449234113243263130801197912511820807488946258552836541766758680596280434498920250506687733087910594831271739225829995910296592733882173763515676543470002707456647099553460127436394527468646218592424708875372907579911512182604686305499137673478987266414622023226766869432383583595049586486493876134180257110003688511028596740649858323531434786588602236282772513016819167178536424420587000182426355200950255208019009137455453875855849245125736868133255786927435619624350806911483312324495147960704559200401593183125895356208802339995152707467672698107757071199232966008774080092544163184280593658238167058741415329784883203386822807181525047681018713969413023442798371594672799976096391292042267298375198300374820968549067554020044643432336169835723021812525421046934042483794724739581025491774319825774563270901695783271145043749750084666572951733344749778707948874104612897769600857177988607727405163337191677999366724968164411504808755347469290974155383633505031962832509108818142144817922398949655892769848989887093026786540491693523021441382805399835671224803760797939874976918198866370500172538095673280039125464545532430666415001147317064743673775276100587822071659504785582599418606753652354246443759768349086322846636106215704272528403002638390480772004889448124320660687929418752796616212945394575812317561670286020695191763187132064533682903956559479943066697325772860445189837929330390512829880205752418848347536418148118050728495859466281159985283570152401870976819799745626051100102007394467764850827146532131821268205229185921999435196146804647114351431556470428241553919391762715112267779426556806815702602073954505294721041814738954745588315166306992357585537116012160495284357259585481972977226907903816912964058203302928292439524617038287523137436042968533384259834641016203825236853018611624323928424406567303498969751029160592895496043342438984438220867574936177132858620935752170774621698305129447306870437648189504553793847238663954684773144223953737314310025463039738077020930456706100180969252332631474196202997038531044414261612930737677613329721403446586726733108206716360161840933819351120909974267819741228831831958094799013910916479620488360427042591751824359465287654210776793058873128461411010305552075160308888476422766036833077193387975666705119959888010941322487832726687421575884206447760111109335544213164315146839901542688154210261861821958841430358655126186225205623564222743553890741474611981315096718178486552787924420919264192048010022349425830123797673087779534397293366402914852053945967156498399006775834428112586993069267666716402093901797025627344687662573167737298142329128403697666036874783800006768907819583870169238328631132919142862926849244734181820896193810656511014336359284726611169848434336669338713295006296321012841226798068062069163000640170381870728580504466461693515344723993132005324228329266084302580491714229850581624517393889618224708735742383836111537102810347868006298054232894762579419152866834135331231269361104929644810895113177327308699869284990043329762583974137124919410280339765129833361991182582181449121109159161030179460872274607578843047376863867380704391959039557418884730659718349528312104421110594357079835483728394422487197143653890598304404362662113456811496404894612730004298284914668069995684996656221023903335762893482554971895306883234400875858670759794527682671880767686754155042723561696517644318113891795856644510184624838078947732431854013334470260666273331649618577520724269168325332083404499326116237746215814344210787779748554294884919587760859160448222823605744127517467148340645741359165204490898439425095336236216904409823357133817159621037579508538265305380715412338886932563404918775323337737453562188042604918289749006433467655723693576204987154117547218585631002105973089624074536271487359779322618629936377730487177346645496534213305117198719203916357105056100875460362699603501576921184268074568278430512240131336203978795265745434999419465990579511230317929533093348266312690824795084431090865748979251169654502178128196120515549140262589066486746420338476483725518729387889644354002332173106255919539247488800499271771334010695083174456279304900110586373155646314612342464669950809698503564808886226998338440815788670767859550435329155753796674100563032170548975922720500339883324896064386983268005642387554371623323440232330503960174907212049725712874186367341856806685515734122373494790688557726927398759807856243805099512421561202008662944296679082017076290778279872115170293328909350343612886701887188876156146174723490814375954145567130063524680261755935454143879146299722054343125471584705174251897330420227629469115409788318532187612940976698473805080495848477861290052200647744279134821008985824429637894055293857994488505509454775015688043606483148911023522131848863577803566437249234771204806845724659800299884559781831124912263741555702996270520202861710205097465629195435493507082944140511846020552555328563286416382435745070434400948582723803889054917824231119169354442151863283968124840894797795696417033855380030694819139848896299839201373434185325765389302970015279633669571726253291417940512179025123242571458231982329228234152464517687791144139756727039606805848693837449868229448784339928049839749203178189616194747442227467390572373026195988860479663889271034668290994150586944792297204469573949577603626084666765877173832414352121588773182063482626923951526731075262775837933926272576950730490746528589771429507215485658338512836594110657066531179870513696513885975443521793193272479379213987950227904789766651809709873678051142156727666622029798829084636847888871805182836684400092210341627950205946103614159624089580306163543238149847643548981275083997415067234115843954722272334386061450964822861027330339532057675605470000070763691103733246840741086386472703925015455773843515665181808310929128886268037214555986733425955962790486019717100149803355045655406487906312066895768355862857032527183971530811013742232700124624434208242364891833778427555378480102327187232799152637374663145296191368430503097401499123651443984538152602905404997009504569170727354049125112166241564203949868540780379744205763776418530900943408732923928979585468005061273036593113864882457946741250494268239495334868701318409261341258250878047509338180119805003902847366778999879918210574037754947787377692947546057677320919812914845429030833935874128618624867217850909949278736372653128073097057454123670125981441939016295329778596228035602865794273344557380622663542214602123188628524622701506166100039949486025534137682230373993245950109554895431903011874951029862337991648762435137536255081200810236660574056725089221582094686448446583000627078918902826238917853581679454372659565341601598571789487298288716890704367661776817636552931500568898512558874945644554699409022169950990946335912363355030808193405876969557045499384532122650718789984274190048054218040685366564831647691091005096420447406408350171929530629996283998293265634404656034410018628047469612149143694812534430489693600525923992849594610192222719263215534450242084091239275879851976639212072317254805513098790850405030418816200843075713387377299261111157979942774003662085499372817602568736373174447066635056267560464926818601286654184881398002113143591689663894320016852598810550587725167129657917154855275248023746804612922121321151256591959704337710141251570200500087669690583043049085631027345202965383380343876453931535817666358075395976022218916428136568827057836273036306484055283331780910062330094076222271685665877573414921071254267107274356986077884880822424874314068016989947352860793905793103146772289248413050317301221609939550263968084807601538880937962888610491013902261984741152365449038318974833161776727226087320424355655358231865287812347189514751006928853284476565267444388494674724158853103612927470994565667339523243931461293498368336099801376912542095229961299937800632420371726840513438801673952631427833685110779523077814208579029304977544823509051015573248631977961701734167242371364033549377035754573805441214706567230889800678801392324540834310134834870709726106989753819375009970427615682010971057092808029847583547194839367701194670936468846687942247562022862368860463354992746698024531835245542191307677507706632544665253258549247528773962356164139866859022577884241253771122578573087111009508319730746450813496595532412514093349886461602286560572905662129508216321901678981984740272448780493824061664603333743037572124718435577600507985214026749697991933495129086094904101157722188646779112127199466468989396451226188221732852588420956128580998482539732819286758356285920165959166242473618165454284711615465095628993712806708437351629751991267505327625786655518475756876789996347130417995793250052521223044011996677864027114470110177090522336716245412104804549693636186927709988263454295667408338540382743220569802921124700596252713731480473019340004842019792072631483483861034568533310875735347492736792223359748140439739442373817885270244332465664617989629926145956643239454366970065286534879873342956597610923740571373869363273050428049381185804940470708524830857966984216854259987876648090439235431637871532307323493840125322697131180462562097656629739527835202663687588416258074745799532708076596355126431603817339754857314106706166080542774055523123951709527525664425517477435418731515883779851113974672300968290710847504700679081742278365474132586799439657389586818028868357725627831290863246312571980330975617956665177847439380981336474807160931567971686571165278601374556496035376466753693863264339773784937754128883155942550854722870892065123404995590760127089427746156368931484884937449520232964318586831187762869058027398447987869484890878699946343274089283725206082703472228133805375972598919881942610064854697934727638538505527961606528616284452223009455891587449472544339845702126399220963788288876574811996349980453360897422457971661656938287955454614290156201011636522335436881521661795835837918387222406644444817636371240355156228964033595287161482918510704509315297631260977914263652637794880994514193795978310787310403222686939882937512862927895797548098178195291966541592063587176256516997475199072506774384962252278578147160799060944908117044198058586647866965587719004206398963684511018665619379375582163963250217703366184589095167134583822423049543535286756033742989744331523213709251987234392182437549835358707440327155050373581861498571103098511609694096425993470902761010867735504228830626541132814486907142806691240496172810517270395845233578733054736753605402512284217331915774944125769322730262588392106372372035650260812596259307664241511691850284119843999474980133412793212620428485626381104905606680676074107777572972499194301605768660750239754874907231532283650504271090990803765971487748146788958749416922799317566771725055594590460429527729628085747683385555322151178861671487363996338430779137576085405172808715989130464166952438761615035283017577489827011624288332973884071059842768869109515401107325064585019118588503484122473439745000547072805925547699666933031085250284036742144950159306483999879105357339891371885696232138710352651691758641966308895631457551256092908327201496454415064451768387605040282110083781705315340361029160691599994796659699964168097270734392247727015358659730855635625730752225368597996713059998100702933279521441129720927039638181510650158350236852240998177852982085563388151462041005966723876029597386264708600463294675321844221578646501912140356843533123047062204794674597438685879345258066632903059789452789268422636427723547039302682190494942309995700940977236338029934058213238456905237699236477637981210977291285007435309462380792681407854441998066214866314665815636667462456282558999175073065571890583866536040357803041801122064321525333034840728777728845146396234725020290287326360286737813047257263355791091222708849296463649318844654093456621278360872519572466913655991148764430095908246225997632171002010403544655898561392244615134491192206206766440274082301441495532971560560765916538819087002685378700413416170318619567693874514394939463599084936704635704665084915613295414883405626088709717589411998302605636293964420630497336927179630359783228850503467496899470621312784894397112108480868401052906804514931797198176287000660369383073184317596986889106545553868338077338463907686505090983356480767206678858229797887365567006279191547039715472442098026988097386353613168829935879990217745618866753907430311215092587280244723507085794332036200643556604341527330010609014245392923759226638799689167950676285749449105842010992708346126230182014026456847081291085239773960593332180256704216915799909178779006065821259983047122800603364533686801967922302412104755785259574179776345119567825634466024159504452067128666181328562522209329495762917379985285746672929795556707580251714576121332593661934069902790920511667592729048853449805462351564422559975328790277031122722897117704167541897807819432523444350340011702883536371123375880761701698299177259637587230729742748253232255436459797398065302083602064729545499610535571232334850773767699677661225250334297363733047511104519569010562104319668495438238857368479910875008924575824473231270999031508224873865477104738942689334944199480664774576444374911682079066527815722387239858490210326271184459975527941773591626079008836210469184703707657850109059357958736132847657913727527780433666176781076781980136068525936014174459647654530480533176836835977757968938743728209774212142685299305989655154142867543224501129392513006323810131893796947677793574237036459669732819825130137320819378339382894317030652086527051870700064409700720046853521620883653716566313747766690441985130504215115136282291129463219844526825307092283884064489694959150716193661959988921264193373928212460506867156009151196244284571480312265622768523135936162266670505426847947684885829238191284427589755948424934110892756540515400058330698828891593175294166981859313429770052022503789776450830643756879537788387430938042512503051064753358178694776842101607590051422218757004544351359915974243842013146428696986326028743319930660622166873100942384743247025228370097005444904317724391941795808675195089291551722322683286205025624069201686150345031476018859320382492011591263692148727797762095801473376592575600131163003347986719670464610591589972445557646684734607136013997739371681883629573316391528030362176255016030608500481226608026975732255869187181034663305696989184432179940374791635469019115128624359766016507090878750849842192864523747004473704061336937425936642589641088832880161412730303056763469053505877287626666388446261135764666878524159861119774652854308871945455084658470310070112918004604692931561595712519882883289745998174434779741323142169354583089762413684469422172410129316264881483136594938645038425393708729691036768430673295891558494498012926448715384525984507980300556989560707463406238614226968330463370532408569500465210376797858103525649204088026346338426845677214998716754567736101730121255839686821409954964988270689538688691388083993299166252874174360053651919238147060714604268259594625773446833248088860184051436181826209528391124264905295438137933838355218163110710683348501253293466749584883534716640750148798763974486975414205430260160032214246059873430175540508150550498381008327639641327167887435305242190537821021743354336016177927480794769218296230031397051489373538177950510840768635872841277181518545233648511368640571261948631689077675241120817328247486669430758709864875324602231158023739425303147521792084745818095788736439599277893852283910822899928523547798524458359450076055626823752620759178719466584137740529433609348344080176393804116785514159574522248317473364271252126551547545923705490614232573149745836848420822152858547712353606794081683532305731326625068773674438645712614664042851611361055176525226898485214498218040792472300393971346398459030672982892356714432448628283809714718342990696134497239494600586824042726669371896897723109086354706193621742235898311682127824166261827616257790052751852861211442192580719724883640903686311861252692208614427134209526084864780968367334114732506766574819819416566963839169192308162917905807325851159023371781123928515912139005665476601488342876743511693052802849432752278324800120726432387536242500166590089658015217907832255681780077917485350543907391735983909305380587213181544705926901889525426962087950122557340102240190449040562572422774029097603671058562360743503760462697859247428490982688479358646949424176855468782516912380445305697524573538958147039209177324319203635292161498043587705884712052781760519207385711501722037431225012420887873662307930832736171406067144007841767689010160327206607544472067513146111955538393429912879219975679667906865361630703388100475133582628962128877175820408212871415730515098232559341755466847791679503436107842286499267759108778343868855220503538286597904214665867350594216162613800723651188807205222635617391449936516023875795940689820374783725591628349429465048898844817425443516301632830669681589539589627054087306123548399222242556355701076549334374826622337022281610240834151096679069719704970770343814986086791216136171849256655188013534822296092364055060674040304788004804544593672526285687598900226564346038343987312581699116022758673392540711148239204857394228673340700202742846996637343250599649419350195639011827693137522815728685226350333870458603629513177181702744912973834073681509658083564918598301675880932348420944442419467051883456599050398233130559744800860300427089316720178717033337125984346598631383241870209962009091181013251264816329103015187786272719519443078024036638302499821461279659768050310023037533234720398567092151958145010298747925018637972911093279333444653246676078924982104846219670068486191477136971948322648820275347482508236051708048373263830250026838819559466803167587043167906122386967260257210553062909267427769010311422380782941436607102381813446753479576672947698669138271187750880411473246163198204706412524290326711260160606890979336952369524084102241737031784909582901208053704626048500168782627304246854246888130476587965480475226745881679556663030884613145128468952193445814541116862215485423915653738697885389365976511100884635671793762819095554058467314564245120060954049434438147021873436087430581886640582334418595750135413334388088910298018032707274288238950853449016595260872655886447293237279560180599273295537759440406132530460786479235719982579701258916832359998066470517027370561233910807458068470198748157100082996234570774083477360799512668241455852170395236551277347460827458370705775542018896720286195386691944515121085004737147597480716787791306993512197380344158837598835419656831618195029711083989307672514608315981818827420971211751852151254806796483055531539158822328036587203905743355174156082096170035309680929055924732390594582741286847790955072068659817566080484553485196241859694723377114112923376000937517457889498319778096655945513257066843903179765167208655370006625569746026490321298948525375537305042521390752050033533178500611174215422369799083359391574081502568642939399776783075488785319212336418540390365478538430247038110868142750553513156017672514440297668018753724875794676885775069407700430056561852900527930163732300430971564288353475616926844638631713898574227821421328434932615457777087450612740687124108952315883129562010220665290618430684006766220784701604945239511382087827525841599380558203037869500509816818283383091343476275263098039123621294139630245387955579887408539559303835632449433264451358271170476941346285116836303590599811050565454860660229552884365840705230587056860295834595146141722624889143610664459163297358704910249120438952426491521392559141893684618317934335689520144998477209758473990773128481876535882927307517876442572078570416384133216617587067573689242288751200478754250088807818364947089034662843810773696651503982483013149467691351859729223564538234402726762832341406317604811893397662826597551227626653183273898568075336935592429475744013385992078384556732475363199423321185742335821408802770504398294572644710391060733986371874340005282270315858170753906304533881922622265253249851860696731929268656485895954680789871692191066832290064893086572793647875124129544266871999808125965682262461168507463974958848025356438591530510725517559128475929595686991983946228980442112302626478870555305159948056133777531137599044478125368129720689822439594565411695550295977722313060694976153601855878132509861510914475423335701991804687946204076880933175869127550947003982776916257137331208283627938781517561935546369473920790532638235439995955797603531769674103716740532960812139635677827768853896392432244516839152180978791343934929632112606256585278879709050222369062647234548784589082483313398174031112611287726450498785697057813977317742795570053661384877017852864269127223294056321924647923914862928896585775506995838831627335104065188150594696205420803736804902259756098096819822228451240279464563977147540958498164426683177646937903906352894460885796992596230044025493750180484935364222031593534910609757522556432836899545692286242389671202045202455011883357300425516861553326190526494333396695292262074365184230049797512728209279591701445103080909050250755555558815883011736644945395678800826451214510120710156012585054854563082000104454922796639537380845318334498671662813744608465824463380825809368536052460196827049851304006142961525589814403297770196618913312647206662130924078146633608346304070455991243945632777192196142738691471573976167420718880165853824350717647882926691983062409037008772711330340826598603132083415361100952265031103143532752477965961984641483894120344114691727223617071342480294962335147368626563047769290356855939254077741283792946017413753747948356085115841378241929370420574980991023598240095694316647315385978129613312432814987078559894215072289584473996455956381563213530201234192408068958582918469507206284816908920488591047126139290178173797370361416386428220917113601907331301288630480500454646135032008689475862467688495314017891150233058623634273775323692232500313237953100085329730948847623073732333517347763162820369500961627874620969160891326040227008852608044176899519845024929715754181947251879210545175042685117116341483120098596690768802844768951819353329794795849755574190415043742825398773351693536708139875225756781234828234352477691893555935427474105715418865806678037362897749200402195427926785545232976513106165352452175802994689975958498809453489792094654771861409891084979420680037541809936207327673463482705508522005845142912386962685231675877699369825804812792454090617952072204030266748736474055602874469038799144832183372602440455852003623543215438753937880609634768920962410567421777516037717750848549472311260239382367903019153062390153919944648921058323268959782712416737560904174136375815481057637229678872836375765833822543331514121970576529080308184478146705555876283225493426341547918596256349939337062668866816762910236414380072012493586998133515398255536852704062114134862774626842294452599750328124312331640197441014349978195886985256358034684819080970870022097667719715681801071867089055941610359279546960558882885305128817684245878601416307058970392938392363366163948878509045141368836402690980364019644330029224526992446667562844798459328061780624441552312340623983346740177469719579012206836118471970525800597406955169916030797309327876663246023771858264774480945682088608987719474282247643219674954365402496053423404285613222364861415119204488321507714739003876639726040590219500670415037816235288431889837368017223964969391713626015151001696766734405093665598866494418623629195175689841087441390636383057252580815664740274479597858296178183290725033942210376585098961174187702015118906363805771608319615946549928607167967463886399107295232460822670666310070546394709829163195427997641224012536562298132940931214850693048940489760717023099545691533441503618152925144633381067743710488625602898393958231494828438895758188254253750932925134670580556346716981711949050599303893326740329673285745759493108368637140568842697691871172480420095554793808685051480637350553829020795341014338368195285892395992840660135521504015173888681724578072803688006467260191682289634334474260226873798320679289305358604351255536322650446793874143061496245264282340971093174986691473188930928591918258378789909176863371281465528311823346477229603243854872577576068015315778123435288882095237775027384453459136516036631284054666198044408107251537208708941187950919720325355046467440823847979877893334950745582729303051038077553736451582200989531768375805659589484569131641749393250330017626145967495346534111733060107255404645136794042081510711391010362047332991871089216966841130356650054236234932011730425049889794458003565365934443267323294553206828249510542346557636402462721674228877281944911037107583179283665503416272251651980015699796329249022078994153163070036876748313964529258043362678143053941213317680273723148611344491201468072302725854225805261106927804422061477203996569319548035261579661270318739594115336289284446023377092600899498617241938931110635008559233752756425413051049514325241618097056379459733813043688991141683321174354930082299773129971462410605144048098085530101764424574299544865514607644559960250882337352625707683127896282936765486846288850636136528239804363179864188173376789751563617089522958597743665883546004487965506841045607811042934232858096952326824317167780705075182959980442082605807109554955567872788653087221267184932333305263915187634855927665977729461998914357998882961415613206094415600714825872679097114349671144828154722502153806391077946738720992145228159825467111900976972443150883513983474381090029677942931604406553951856953630122976231757231349093169852434236047815106522734140501448683057382311568962781679274978258959303566506079626728811371056854280562360240012194390788952629073342989521380349559468501165707150656737714944559268444928680395690794444551485689760990988762572094568612182176960655717903601614898635437288891312791467783208539529765321875756386565541626636377008835285208754154479255756557686787016944185200168658526836383729824151085360795257630877277617608637816944529231831410836008229618842501009230541224266262852408815580027796726425266961435988273456884907543234936173311935943069365098391240247998107257392248966836769262892967586311658522752237946100499393168265222437975149677530193179041207592114744962881372656976341180495244718368782155414682695093156143240755713745237460799091982311951129789125376925367188320879061715608419388360941310586088870403387671699240120107143817611714933442891265424695670447105939416470177641937615186267520258565038593079826769223065791476355532058591578707945696200322902796338142975315463874865362421446712539409822500230045866893666023894414598152762893897157466535427550223936919084363332339493396537015714409630368880813978336283960688008658302315196359899495044761509944181458038073568495539093084752219968007575157371563199059816488809041750697673810586333677683893901676445096346586456432736274840546632945180952719384148644043486236637789968622114024845219535419710128844850839714412091204442088221392569286586055512532403612162725172843571528482475211428105469051356863132013871311820921215600381911265651464337849202170196401830430642232131489208919217202836622408484225161471196197980273739779662901867651663292628111932762671435811651878284923833187789764482781793102002979416457567607866018228564579320375477526531086670814526372772612655982677641807260867185921071694920751365478462455702098089640209782770827075016243649992672581638778262442638201490063956310416007561813449844091970833780201879834541535794377040865332469768290983463870579271945178255787992397671740435911841725385740804910371371269052426777378863629100035145887859483464496524356604417221152765293770479170359983262322658698130766311013860251334894738074155264782177902923170610431362536085622331678189340024061790422867030071500668251077140605275431066157169085650705180150886907510047102055180522963850384404996931577546983272995791482032787789208828031019769367387233948541521655898646562586083707491939014783328338791258608599633773710893780432275891507251650430749519444435650340006603924506152215441712245990175437590686325049855881490104040746937591580715319963474449222534242443284888495959086672878302941373197420578521663787037786688092551316625804540207809831567718813993651799887880579891418853822460260698047819280951090242959371868862575468104513310166425189449792245104999300411959073769605734351363723878853770248091954109199948988771477612687146971045498713440497926819762137591095170585345085916791989742354445567930474147703639839349358840903263175204909472404990740917027645745758377875780859866223345164489282012823925526496037672539639985798635471785910587574096419642437578016223146669109415429700103190678722941011624745621740448257761687168495059863549093014503864178409825721459683831505786803500208551009671358482690618142555423664432431799104643010248650454109232983328758424803061242075122320883817904515913455376517515704323683228647246300740559725313286756348790425638381663054358332815621571045693370851700224174030531177825315323093962044611822965647559331841413971910068871849684648121468835838252262001501626851383745861747314238008996728606662782661537085263327225604121001407291585870406859468468917298043235395108434926040207403657045073020264601264407905499038527725766395592770011864526000972914004950321573552994187736189345554057496134217487667725805953049929310062245674207474591484508848025710214105080431314650369254187936922654133855630648145569594790704052037222175298096818354070826586443829543393819156131561374775215062248504053915277410823598716214107290213374420888676101220744065733483789658944803377576978192286151645042819086533748680293712870098182825972609450888137083218144558201422122142240718376116182060848846552621848201933901517827605703634863399322005590915230109251359594825436750423375017672573877222960086674967052946630884167616637116416475942877020370634220490438830726272991547026124521463948182050126381821940707234246256974454062572627140025619698863614267765002780474098243861264890340912485108835805035524415319404958561264681479189952740367323297770181339019950395511619770408734997105029067064816336579024492053716004349526576250546775807343324454609684731127675060440810873845320586035594543805451178404302670265907697645791722245490775730699566012847659002832311611102442461990887060300767520009563886316834658987394022837147728621340278533529298895408745275994359206927116138346070854658720038028724158780965782628939386806864777419367179150595606164401506000960676003690568694641004822372960893508026895892273441645598975622214485783637372567540386385576318829995893873906662375087929953053603564089149847442849027609303867873119644830849073487105213427426156365438414584148361785878320564681283863348587170661466064211638094261943628843165411909176919932394730734057691410168101110823484228761523653779903370579191499355453980892268393089013378626025662006467392944254591468148672232384216785389188587483654929548056215793443733414678411551483395894701782994310518835858128531472983528141368622213706781719186725875005487930326342511963049413082303295048394588710072344615133583111147247608380949920376192147507446107011417934134371894477519959999648780072879518541194638156557754396163548564560942888692977732375632690357662196541932482449494366585943169091005937185153021491167415843346103130503180612711089797486453977531999205106436156961217169269749911992338092868769684339861796348565183848780919236999311459951110759918135630115943541070401286263690162512847397065944448405068012070820271184657034844794157701631063471750581432000317929216104420745450309855634703579602204060932246655235696287003547253286572635233817455216025864691606707534105836285309233711175496641414243236761830299411398305596088501843398150643060835672254057460470766115450217475828638073496318830290911682375406360415882149165583151812187496831851084141642902248513524755204449221375976385664504134490282883638814217653000493769933337045663796300078273623279127571398806661700252531281605018791061629516870717730927697274544177346749396636720354023791359845690181950719161425156557959770622971807142382973884866836927254861549141569236707221995658211573743273232187233040220960690054153850739592150230918557818961757932824717170262063249563500214140481597647866316281172653921973252759211375367018329450421955909576549477482300819041041492547952084655635661462506048453476783287200867769175014476815937024454355104788712534948001589571026880101223277336688107766888517437256825151379388071112797789183323690768471608863783276859024434908935495298091581287849635820525710608246130221505772020405910691641011156300410022246136966832324651780828246184379686261624794640284232383692038500541889082877654702861764284591327910154577436027792924863682600650490414637614692428247132630195969048712397083897725045579076088601066126527481955282177502104434251670286129123861789126274187122194756730471392357545635896819186556012550676035692858567790449962358388444841642480622426542729362550873106039536703799316571386289876168262448862748557402257618986484845689366574563521556181014789160428282807295040514461907848254906030989262329754115181134193241855118223759994143287576462592703841373103367673615226943186074260820249659408575370042484004497307966459959652534565027428308172176474472209362778117581734397238529031522641182014274240156719313306161402602344741213481880397080907666588631360222329076024077362110469626243023682556961083628527524898751582399966350339953572582458486259381752823063551334844121901764185490303593394830214841376509914009150462004533870688228374960127131479475728997415850002345562095689361139349616233805467677463690371454317554104771288546592048671073125282534763785652428587291001035840958413387696442716207682857348875161893669878376688634747208024873124752264375635535986448151119657277799053822524456237781686119915160483114521005612382240263660045779417312802517176943068451965431186663365455644331382558745638764740106675412687333573263011485776127781397512039046696002602190114700650288085026963432520337115616706527922460886408107926300983600888884651703775549989126681208460414184462837992118769179172903442269858966258950485532204681898173311918671664434375340912675756211670466157645276133898986443422537745493668656936905897756844556949851873951908957268644071675348495849455513962810712726644146082358923626383506399280257947966932719458616448887030581389956700206917775584470784012108384825162964670257854269888623164950394539768422751705736183236163538815091951943362318052700103705754734015976842710177872268202649623184767562243246246177454588661600683124274692072811077254186841332577235918194284658156049991177079534441630184814978155177166819991078603345301399677009387517736148890811382068718906045936071080494414983396948300296824489732763222049502055072346014139519915931568801896565124554875486718456339901697920350269582554818221382616968767158644326640269342435310898755015243957643354075923259005027919614661363905940841396659368081006226566407016474026912547467573999711097925576099545118171160729995632508751783979776797530716376448628878084155775330563276609285190806644935339152584034999962828091387847315678303292115551895922502001642228230447561098782408281322629719084032192931323410980687283687953145352200767396082095132621489928208342471599462483506663835443297136092486229011856503523685112182081998957490027211969497929440329939972667298259638645844775890317115161960944794141618592948034839566194167073731605283330085856386654713509903849567107372195248718250435175655550852817351391467965156756175135703482175966087886846112697985354027620094194130874441521048554093674419849587753596200300105163223312888752239762686810025057592558190413541511964767564628298050499111632042695166278988470172960015196453075063467507729883113522906871196027053884428268475608295745912786451421273454650534040335029384208768784600186787242647925709163002734271602712832435347299609749546410387384645361601909890683046464263302260549343725472056271890305428349768239774457664526533503733578785353091049075678969865451207714148082666346764976798252492028969026623541767304188066877552052520166697592469334255992641391268659904432119657033115486864827354313358205112190698325120315394718437836240846301170458667930988374148115406588235066730992216969985078357066714240941038812759617124810631944355155401605828306050729476292703149814333724182347247943896668598692511851988957994753251896883367287741347408187678860359283924157119065691266811623528666386807734147729239160759714091421084080207564689031805264604175650645857237869117850685199016432344919237724410392707133143070877667522481407325382810800242309981077762819214881157777948928177867802325299583990424366489512399455538590700182978735452524659499201446737370147409276672959013878197135174113896073538734143727730309001870813262051700777743108732353387849228004900432323354652033878582494058228936069392364419255331156199396316117717999674542514134984186679984083853403067634233153056191453871158774234930894853294572704855603127206265070245305500581413523796115446855679724082428382698900319557521795574604954157896355638282129720060999570811881761109501196962985096036345368000365221847585416680111891580586064067134317942377216060355207504020984794589926238501563502365940261268850715142532258035881534885673799841642006650771478000955093720875726841779475031916802414120952701172415740288513665506335315816913489801154109770283155877539924426122605571937926385083264992805457473418514118032921643024303243223116779510415603325407887275899124016743492487010244310558055564604343608151425553751750510693122184411800442723124324371033528449946509946696133538233720759107375246666107934317261589762197762834606825722246016593951039284266598548901608287777615795809972597748173466603006891950040206333498500050943484447503490127299686853025695393399119532255456376461335038642267947984515306339408515093698196961723968310898673494632564096712695142389025660516230949142969876736756242229354687457696129739582398771437992321579902210622073616286138495011184169421241389275039525531484791732710354257436297912307157218540261557143329972309677320547009379516541419090891136533644668451900302048385776915702896236844105460954386363533333359785182222017891563929070574930565583155210165560584622921966215686792112202343238391903465980199861918306586326061232033245104222020672484709702545291553044641577533810054399058792924422969084265062807161624359035445067874417143139628150923823303533423931077907414713414757001966254961254618276671642001126090413228995953402306652132889588103309847046550269330594458161962312732857855507891395589068862889023582284280041503717756655309658303585337499014983709767388779799405336607101422682361028738847250752655751109080859146273294737972581632990902354829600677672889546917116218777316629437401070383533645243512675064044031088300149681951011914696615898538049656442222556534885391705404903651062810830888229197487779047377168834598842653854015307931864343488923275423904886156483566056627506560653181730959452724370183481614704334628637421106368171505007290604209442052874497836231305062633926055390498315026559843702966721732136589452848725582435662319265567344367483269098651997353857379952435292164179979877684473770052514166103322423444037080832838424994067015470369210201178207589586524841045665272028402894325628418504165545536397180228970750400369327793627977523604301988940270517659017020031841320260775752229874560489658303018444095312757871089904056418631551130147411681810770242952270407540090875928266223147157011754783387545253646753237587773887063188242869635486889525093841487037216633895876436445490930168242159744683851023966707084596163801930397646766257490491707862601548841247350863856598208861459101447661517369835054272707721249023504996167867676672153622985229486300719686777879575137117349011144003818229027470215087171815524092097321478673389002946883071350706219823601883013415445817678579584582244436776941373506141006960690451113785706546224919436956076701170371519542137451388154190004258774047368626531629639100984863308698103150044234985992885624741842370631730139163442227551069924649622441342394949475451888120016440993032411877207562866397522750456911606357077671238607537751719266529976020573455491296911879522703612441461350874128546440951076880848757713002460929310146238812390434752151766609504526792245449841776512219231281487923435567780114934207673101875172800032730274932550373609211985141116514747759148911359341478444100708978989315004221636585061028353120130004810019109459985441583401722006513870917534098096536443165125041785317359218610742028097047457315116388373306432636525637243004058761686866217849211824416632950234424570309815223530603686346169142794563282532456947521193262472941689356579556674676415966918033633751026368346199370105906129750866949659023794548860253720803878206897558511091200594644812896795360364160202770887076204931039316769626073179036722477775509647809781767631539030935041855363737083441316842933522554484491612762848637766154106810614189830683422481546730877164897707151077699925897223348640298147244258399642550609622798453642122067566875079051416053291940751661521379696902447828623989391453389969039844123505531071139212973218244895709761756932771679437454501556348437889055227743138367920887159876590642999752062267667862534472668930581921615782410233402133935486574901767406036019684080322446945880051886737280589040131934942806130158314810230066060977125755133921178102167730002025796883003587477873208408657253878569746530160299232386475779492519712953415920017853175152913206808555990644583507875722934719984160610905403725346322697120999149307877716922957644764881850540367650646925984775399964033240837665144680788024641545139641316145998795783022891325208749174945107723337283422891289441125226867021424745905457298303820632574322986650400826675947308607943186970938758395921403409078980244203882892056555113446334948765547111477089798604181953333981834137228225624090696105004724238513699148864273943365913459381458896628638892392381145521105406615336005520334978797573539501162623259650401734340835170013202838272205427230446181528363548728264920634127046033214739667435692597849474569999318200816247466659911690207278996115934889514638579484655891910741156492406446505753980770261201328078930913439158361719246086941798373228773643349884383122120793013963086618825295291172588152289473314108129168536244252216552115681774259360682820401918227904745191226544412664832392940300142438749139289033068401858856627044953715868420924613268284513685647071284965322999874087824087447898213666768255600555032712114981065541800765649768464559693359262561674553394247918493878394131044690723578107922821282136473747226355470188101925086766417470754505297613282950025312619863555752881535175669476303666550034754446311798413821475862581814421102176407607802026947366408579166984412578092466745413332635816277571170953661956876982068567451424372938169884866227998689561647954627203928131750919138022696539684728442973231276656008728123011130972923268287522606498563519668616015190718607629475747321130746755614844462327725117929681562621223858790342842880053901245331887214339624760510699130889307920400598810215986447430474101592868467577411276115207692103359078107284728888382403925366522769176356692111153606473489088884022810617675751482442153258772637413533611644408852263153433294150819434345902800024420952599477227579950530926409196117701900348739650886505461838971082356350566447304263617742490509579680815421592728694056315736656450134747962426096247286201056531946638617142951261299697475247612043715668278012229379233864311825771911124501983712909659422266449405487066113958846776728955801427883783429075760106581353852234876040203434598912867690050472032904171812055796122314238145365345906996794471068832106513534730608154988197426123509135382737597932968672845240002804143406465972461777600968402907847524839304603921659213321575667616371751498424027479183149975195157783848463551718203432225558535743859879834643785033309087564167356783521548622367853546548297871761417250177247405164945165076863230690152718868909875077443445549036199844985000671940601292111867740817534853999484368477804629760256777377505946075014000181172631563074705933794555929089578250031699212055662002836806905980004645909180328366199035375704973169134950609591346190974278520708261321219881396974712966264661717402190020052802960005199208125229672530556371108407448113585901973296700303452701987749191723211451162666461898312405184352687118640107288768526315631126974304624561036384279233735778868339251431769188747919696496512982246550196830639825861092398216504005998403657253395128732365907805975905541285965336434627815337299511339751874346274742335232336582049887645287101651971630967840748125406713414007907007389966035908521415286973245094366126081825581716223334039436906395099993217161825828748908831478626736122484546736220846598241707204398141104636892246956466561738462696200875980800680134622166830888546851382975555741360880364524267898852294298327266578986457349900182023022200892614049566808059161297560631438193623663816037298147994090011968979636447360035367502411243978074801672158216628170920225699359844428757365715241422331899620651094991777587129711425693978199036669146821648509047972517905213059935773051409369656082889597919886735394391880499602781058895462632475455455668343418682667163527366752861907281930609034035866133699028489419389805928994724540613701033102065210497629118682634075398022269731616440182035599058765118661655500537074037885552617141070988060699044193874823804744461636473158671559581535245284059085274942523361972857807609993104939118220789258726786440628822120954032367526963923585274405731711599368176768013256202263790074152476360047792688696454237131906586393685688022313487523994880446273564905694150446154863364010243689224082199685847566842391106986923640902800391626871185172787059777231919925520683743896563158829450172006321668493113781324673257351871372293454468039689580597125109550841100902893935290215229146724829164425490042444547841959570146485783845356414400786949205185907953486614764353512336196444294876613346051918375395675346214620659084478624079741894217026281142930485276844749543067157942810508788240850491324935000881111513158409261033971113653264185091819294723362285720399451789201514539322306717736080340909643095293504703345718162061389600543782335972238908415040612491105478012549277657544239608685217386626696287002083499641014825968241004941898913024232813165257638771439854913409595428559393816380735080204893501741644088047148326064250728758596786446418509246001333449326408590729196840516154213576566378251160330746711147087249924215952443729590117088690652814321245167602179453762390768269421135562097044150686500904905339433105270294510618279764466423691705725280666299944769539151135996385342133453933087226557830491823699222710426554943305242057903290085754743131857865235889276682668534060925397635029007885968260041089840289945897231524273858287305877246485210663085612446839015325652202680068949403605877354186369316449494048923095920843735783292478307633046602889074524307526558487153187882696342244684527244179078119744357236916382295488087105837138584319831118046205593500926184449911558538953056677432018164596913630387215634557780764632538406751096474162095773357381263153931237764377394374809145548473130205783652081117660597501417953094893445177313051870290329004244080017963150741531588745438584707744492750314509507563479013467224604240876525726328506413211892997279793633794461496354432321091635351999854694847061380413165007633056357714527220817093344116835235445077878359203213135202143060872862342604214034455451924036891613974133571432625383153848053130469307707183446521438167219550009575202341166710746324587098702887945934116811416650654187572409777154986395097583016220424214569127189541674249130694108335759018585849762722905497068231905207440139254254757026497157806248161513590201739986881138384201728740131006718806060087738368525841855764691886226487514123046369052695231447236505852381126596721115213210109708062607854118552913059380207265641147320730184336668621805412382860301780431769177871450008893685458067658459752770166157298505779908798276999312529327565563131896554960826898826773044940416495659586396452300922147802688104147744401022775748245567588715103112920423280780459422750605895096915834397195299931389126623400551006198933756631371339880889782493737869913689428414937417314189910217448086681054931590190784187933860681888432829989811206658149899285009071399553563022739696866761869793133495030593508282650763948812494533228697240983674841792785331397426537485721155050624086064506463478088615630634622679271409650440109356506439573326663645315082236690097337130529526769881806035880928765917198525619523672946377240337348903025391748465759524088707820093143605406494719498418059912949546647183562558912979081845890096486530496466343161735761343344230660931410081323165109100884827793562891928907038473441849011265392855590630825682483095852849391564928039760931734217630144680487625296916250232561530599385909128209731530575954385009237566498756924792805388310771845713187232292686053465214951327970646636492653073204419251961580648869803718378877164899266271989306726251718041099397218641971179519817339213182108527471155501650653835971665041630026803652609203589485787563701949992009621795192155827618412798514407852966367192550910598592684313008070348544897609615693922081504743171599203759328831229177182869569027178236851976658365050178973549882484585619991350220990683034808641369762041605723174512126636895266104713598240934602091578997310119798245322305234514053511564571816549089377232456775941028896693701713489005894265822794460906912903301421191929107073143474426519551445047797541888529384430399248330649176378531028697355815971822869545670156464146475223145931188326097618136578960776659866630760467447706724123627013176329045848353496088697167229513993876869379582041301183982097443110821677493806023581678833302117565759052647187785834967868268289066789908322691214098860508346712253910096174224435502547254941271862836098577280908358667946984825738898864650721883773604260869420617105409975106989149541218622339449027093070583279384500456339337211464242962605642541219989320781827274388373623220323970192976368088287596211981820520305916458550177529766563825617646038047588199357246940208897237888139084605093284295436008649005509959462917852284121187782201711251013933790410165868774596091010110376731724958407844791802089266719272378358182617426325440987039423329423796666745314998513970320594996571604360626801701821591399783317684816322756691227677223441702975325479705278779441229422945251112728419127395356517922992934315423286189927401493879434745489708396644768517266694824908501312498256456747886952219655762655224041170069139318138708733340474209293000983108951098932917585597919324642331942110822686930969724042450175322497145822651198314379761109291611430845894377786710424261112745347646768742021395710161981275819111163096879662338386922993094011803269751479187712553860060872836419425246554052208495788315791231281503745310500216134199297712322092553055951167223744814365438759208744752648511497368210032412757008560304973127844083822656408168022464218295908156454594517380411773047927783726737225926235954276983166685534300475783508212114361229184792556757496603280516889675254168272511399692712428152462911212870017830701857673872861421927569611638153649844224506953154951620932555506906028603083102389745467156021373974071655153275278350156236264430636965005548428927473377766685519088778628948050554664478270488149830838750381065230105365421574297020365669270505679244420730621661204104625332115095902678175262902624715248214383295457182801492880573911005488529329738383929694639866935288201731646981381423712261883478428566713486205476148414669599267261969978837682583544580684725842785857108691200222409301703965226259783653673292394787023129505990288809218379725635074274456838840186190079078301473855123444246414624199287092296550768783898531839929529778207554126785160217766818999911625673060363003226924100188482030410006863860249083865398748967977434249812347537608118378401058325291934259127889669588108902131923742569270504488532714807913166365662288315293420471242074446701579036408670185222272187107013329805152919045747529380348189764155712501533425759404657382750958500765211881916449507777367567797824917629547962193010471874185927512999739245726116124182430550749884353904228402769924685510804852716226640598553420475075311082862106408788803514165317549283139611538063113576407164555411075863810260397112879260859349554726748259709819368452154403631533620583271006181016118860124029066987387092450207580095105980793058366178207621487346107082618911824966780495455294160406710232133350332359603306081520568924752052218197675380058722351254636658818581367995969457395003527451432830444439625923779340934863002239459460389968897564616481606218991571261914707962693857998201205388542098404172568296465149535647951008853065031305120750354790982695989406998245366426637750432203598353036039120300013544744657376729159215358916090420034132938083989599263052295485179424454703674821255603680724418205029043710275293023372716417244141623227489885115651561255584259690261067345764325622023322524464644639128989392515261633885950311425342462696701182860958642469532294089098680179937399674605669358198510347356310273126687668155799435183525148592985935510803145178801978508131288370730080566924425250892516164151882027756397046008414120083769958360441100630500712066319959265630609799042446501943664082676508863987916578609304164102995509550181522532708343741321539212631134718355778956316320679776127307571544140424030082908570931447664449233921306442947307424214707550749066532152087578350196235097166342135007332026003850430899542409665204684515541455825978168788706017728150091504567027166679168009406167810364461558910336670182892046089591874213284152722288822721553990507400735203151516326344591917710630031898187926097594681544164197601645041019466364439767123410335182623944750794404375327286826800918178831803164323018213277274208397062412614729320021413156486625782077392522407339953064068012855710590857381431539619704419435364060115227454466825892413011268103702258461243665117673631706631132889131537062380139603973899269341597989496073841784163446744743695034761959602655584149881822802126675869747176812103881969925968583489502523860682030669514010392886724121084554017638407152421817626497685461542013415069018011071256427665926131959974658082736004717351004873814846930782436429575927980445025002836024073795406492464064836197921427712546268740441210238043510846356831415844183568569554523928527020643420789908011028086392822370705792379378120079509235026105253840215893307748783916989073290057920718365665676564693645036437636106291449109675200669862817737743798534884587620721150068581801809175061136278620532787793837059356687871396869363747105837666752664145872593767391531050800160458394875383359570480627821051206589047005733320596427905898653856169633776159792401492278052875350791862857171842203777919413878209404513162745234395033665893779614795750414966019778230021669200940313334578461732880030830375059286988572589699367912568113941755984357551443604054908302106120333857599200659880425289117661152629292908984099004373610155782052022442435792683591973036305363531791267997325152120350441310004368064742856369830252072335902230917092206290753228151982734635549975857061195647069657731256362703791032635104762929592420928256311148651434744419418481371822849878998896810797417321085614658040870682495296014811606901351446545808289903014926350983024475795873203324211216979352481049409223320769751454274023762147650067602886024054632726692507769334438423447151706181864587448016778457096381810277621552505317982568707443816457243025192427725372302337625927939042886348485141958077655126550567081337800927661985063374656749363071976303059961251458094316800699877102704731018441030283077079275172840033339672503046985654639317507119471378997155258140068301855687450468666736044407373218837052081529517226565694771382246133489344472265863058814643181901071583998525017096903630566536454385825365432259072391386516900332463164867733374461773034004294648543320795451497509006951572806659216500294120733084392289908104177130644108844844705738480828580935638397288484322708013355531056237235228328139124276122368131043652113288837744980344806913552295443785795707609663474158869115970284108242034061332671160007330577920895510061579064623379906738233773858534593701998980146069914963681656773517321400118658542288929730369508386812162308835832549276988841372840187118054367110858967101796426882722728285990915471543065678502522679037339601643576449480660307232506937972623122212248879468081067454197662817039522513991485879723379372655666545917876305892442486983975000618059969372739468295266757644111464332827731390280774422576519593189716974983460854684723260620748991005747128168567101310806627739437477251708696854962173153808647346082347948937210516186083162286020955973270201440409204519046548861729776725264905540278922996485503630262025890689236114472770196374108769598598175291445906052393482232975390985754236037471846284457842837884623937640924150696095558342220290355246004589686197722843286977065758635139958696536810859764026256397298071883768521219211823200627699976729696781094486948441630362810293161837624450373693920009809342502727596965197321131727143754049409791474958904776273891576787503646845911063248854525675162651974082769824107928225489883899316131750627421413739746083655370581646938624174405075100629126317779674775481276897972875010916172176434074557267662478897666602739410569862283059454894161149061114911830503400866518333811074582527957903216095413148103086059256278921422482062969387326096928674790879006955762064049347857847499206535456624467029972591791366735173568399775995696724810266391930205971401479421661889570111219487652431391493757372779579219275518704424388761286096340513050421579853179344124705199907656832922882581423644133943313973345484375985882365809517461649800816930241822600475404274765972958387549082784113919401581361508046174585670854636898136696030289132775563729330557134453725401402062288063919719812896294241180815912781278602124161775941831538908377690846557841010623686485743951492241794809682879004930473720986172419329204612377960397438823719682089711560185582700253960471350563001063593594246272789802502532884175369529334289325823216471151732220591017632306272617312293574729242307003819514512132418228261256625227940217409389629760988292620112266972844288011198827296691901201049023907809172418923445008377868935621489554111431512167732731101185590145406306750529923654540913785286124737349395565003744183450843861461330550280362275081090902122099785007513248218680922785553434480757218396497437314741452700988129061090751747247312650844243163539417270731341212548006238628089240137723317626786799889316901584417602569204095788879380169292497929539764692234012283306391336521141807543946862912643921636162400854244735449164822252803369090687136160973571045835943885796870749649232588824730834838078518786712476580168268471924700956468901981626799633434613011847629208936077732793226851109368851759010174899797913545553571877048424131463763385884636339345370694631254288455330695000933466980794095485634104107737615874032319539936323527069814705616588688829822311312786344165352508513244724822620631207838382388888555598506426756255885032194721378865342679799809035022435670246610928270254197811000468126312450680435813593950965128304777361828465871734498999736652957071788519459014422228889180047947237978503545733403042743970889405264133539572388611909585249022933446549543231641821993500561672901626277961986835810169118383768740429961442937636764379924812544372461051348625136961395085899229634759677973573281876164582874051207420956780842082215502727916233160527036059149961092669074666673611247161163355499891615490339660201583646528706249398319649653336457081040245823149153188182891703645267154259345443380632843132611280725881703810280360986410597329023347535621037765856077722114596994146689772009266787977140529110656398110103873235880466521436205441168039993002959983285244074926008283433508853559676311072187308901750809178959532294725704597942761861138937911002357870764014233336971449250671866281684712169764992982575361226090508296131941638054536884896014230003923628385487289550147868698640466522930147325706583692798295232537538251085136910950140465434660420116037676859437112957128643946837583642751244335874149766594838794150446682924910721192607078507927223934593709786100495044002501299700596391266465264731137841005046403080637656434514756927910152824150278997012953216927711540163310309374657990147232314135050699858583814494379936641252392447020926926346785407877755627680613899878039841359304852948431166879513417234697842712552335432732893679530646745199896485939073642832608705711342621345372566258658926604808788249905711877501669586004467142380564951874400134170881858672490515504657193603927842643481567425398594473588783144758741049271567472374102380552691545658742919186394626830101574791582083719905234083383592267153798305197640910090631342073909329399371476948082755391835975303215816059677225085997309875413885111692706971284100031292630811507349157453177460351103893085880186319065897343443648498603735951748513043206514950060868413415259957914782920972324318329048394621327846530463276346820440952296849104517487129747781839966566406220975078249190982157363748702013456599485822959882985819228444126654548409483969620328346931766244886944071612065606805207816709389193547456628888786210498321733224802201238414491958849840318050473344872011377573276160462360067691770543423146465424819672959520484125823273805634296498918494742691686460929505176283876791741252379861953120963697751378107575924088876286102554706546454937205669427548011116971959730515592206106291242327594425136052204052483236576479917865100036708725551136630277521799042532341594523221810467346330058543359004614707377867205072831629406028174204699791029331988361170054942224890168851857325434291666255895269846102358798951697257808898687025136986499215691964593998024001669948270565281280112502917106522948950186840563513098669970663890715893828701792443798639647745040385992854691366168212588323707581068603774273532540282652856052415799641572098742879632894159263742626110548658537152605134424355710729710190773024053821037365192165422744590655542520590112916515189927794364913125052099865994207018386929050087134278276718871967472481954928343259870369692341832956969342903259385101748741872006121506767957192120800227406618152689651303185038313567897793932613854155458557786525483321668434971215608372053161001416583785016821726225612499097566862707925081793253117637092096010077298119778148819859572658796108600594265121565732396819794805044774401244014277377738784377747355631883722223650292301250078543577141044630782071379236887814920570845736383923411192981533005447517351744367269839467980396972849225646888035617217499465382239243543979924932102617624099206578541503316039655016751730399209544480337235092789279789257462172059330592252993535584778318107396645780981052168201600087669418691167706268416275033180316384597788180966125897697114665528550960708130771704114334361519528379514401053494256360380189133244936522433250066800841306233634850614094278588366448060913625780656056300117055436743713901516958342570472223497831512060619529348254431133408749129714371378729807472927647381280379364771578609578631625254982261837990013918609752762590626499883842931693197885010278446253773232320489678914324897124398821119460678395189372404000537895155034564570224250814819509616199470610020141897767753771503121333213547401203080093751663912637316240724462458224531841978365665007338473254023924202129867466021568384489963099008135763817359844156023929134941569423134507702310549414692447971597002804270633235074734863313738647541332260973672210180303229136956881347096127815255426267684631965670445685928695635234250406834170858648311159021822212975099717563502641450893357719935776292906877024598553079647601198902299451854555451203001067517188696092230339949827122866144376555692404250025826689328229785550007835896748777845068528032821323988017006100357278831661652159814891180859175514111006565916391229540277230108325767987107298754000548729898136265084757854485280115589615427314943550233895469646646382186472412675751806898769676965448141052939554924878948128035862071657762355874872045976199326851399129780525853433286848058665893454777250072217239153165621829363525350950363037980489802776555580120511368992787567176599137606123854994291635388959609382688808423675551173461752652596161503781148652900265466225756849728324691722697964834408030991466204078244833729036219652698672621228319445315090744893837250892099896335866855676659995789660141280155793284894746329989660389885282729143365547931637895952285478141912107893371621065017322529288022713565982145285967852695088610480252127808571753695028318687561959844779257891430689406497979175185683000389754138894443066642810620727337699181847646952060985712632300954604695879548645969388156511345604381342449868133089500020391432993598738782413181220777793795800342479900233176114930466483652078436691689174105485959619373591827894528308487068855521075181417007692934708013783345623974545382045009121517292039929144688248900899369717042719739028136312063459264696526561308925846777265668955744582397705420435172631664577215767643254967112741294287008252409801373496202192964752070801067713640368028454371540475943848324188062537431824313184178145422726439688579226073137917508562607772691831346307262445186789129114959861982326726619240108271467982921438947779747069971199480189443937887748933198103214781505596204757656669449342610926354120909346424133586026440660715873504224262547976920667531713927524442544271233461624543443326295428529483856192826442682909537789548108061877203010820906133122002479820458843559247994468893634313154292756336604502185387200522394573950584989930300108864539460202387477592977002038895271025163577072107340306267062850537619008507759266855028056027737202664371386498466074735837639633771164609165504421591888990178713468921110666779406215165710746868706175881921265068211036960433335068173519228175158938406551365046560076576973135904031474375865734822393198071900977373542137899682962314426033928247455471353451055752474466245882113378184148961816278338384496210644747738774841818466010911677570292926374655600585065739281698920827254246110758781706807512528088543439298632157781537749322737898586942076778636365880403768617847425941697128763423707264097708268491879155786871973807827409584041820323424215740685421495936794996174901318373340438573867960177864222968524538558086977424367678677008092141272790009537779620554928851342135943409846816875340820690785548640367152249996824135601253035702527474836779420102817583919557008448297596959436409413258114058288466889631999490407493372591663131548668515505074589355281151101888923232967690292507309114085949407285537629051757664138441850095781491922342421393689543705059216362233368480594282547881390216967240297016368339740721668883628619755345703989140531896378706536935216917949785022553226569470064888492368253151771193826028489059474177001152112663776039352104884979310819703510008364917616829507889237335927669866147414708034097506546767476553194798084700557616977238588580984361654164047165134264887164101960956780045425841170352671648135870858278953037321545946674108814581367398395165931258444142071164390443773770391548650092002384136784483341298089575297485774538007545077347396053604847675955279290684099010417927667356574996245527093011666258664867933963761558917105997293678358235279566268352767291423025865815403252588637206635195563321101201617926047869491183716882185190319809370659828763857327455984779270186386115189010566307954000950795727227481830822094745840610424178177387254535395029115238021861678841306095995193719031634920964056355410240707607483526993040795876945309527195019826283201914531307535018289687938189449147951829074500942687407380828831562079769821369304899499729738267618944766361580011433466283400453444440086689490142900865430168036098331281587021354764261859673870324463023374070973836277226502870654877309618869543961641118127728364964039331138515891276530198733847161695668095678894100459122247221522830273867642179998298079097491436220516692611160378651238835862391969838969836087218690587552324663653643916183015444644010895643113088213118819558883547306783197486249326789685244982479547817369792531267197714080179727167771664661366996505548851037927830828268542409506348595837030826491369258555520438881806939589703689367660584162891092278346845977394465311493009897481676205359305857471295866645107896505527005297475658533307670350885903338543818278840927835651153939031393369529772014990901813928838346829899631947457127416783997709622065431631800296664219904134807475346602028017567153277645920707401303115889854939131447215577358861275341366183974237555657762112058816734932174975043566190207393998660574434103818961345753465076446573808937488967003490515031929932942411784064956118815691026319363995193011533332038024996982222025885080314856381837198591955262848951897602038077994484443564577095665820023303773669544429300446624770861272976327403279745981911558879658644930360562085016399254604528434305670435039619633073143190168254760769250494542320468425703841084356238363035459533889594513138163299734461392752718634756368104098187466734924012328522249686366057837687768500834818810843815198599691666822569309629689665975818774157579219499493954517917309477999825467771406728262996741902475631208135560915699654727012518008849678364853960166918357002473189143954027160118105046900170605357027923113516666967048603258531744751151101951827777679961327170567371846046496258114111221183592676255148634596187341271199842574529278642117256027777897164063773271961966958235687861153538741761580419815732616763972494071828469189419770333082256826826846374468002977158202307568003890771842937409172512555215544866770636445993549380883153342473264638290597183613008222428896299202105421540497431121012289182458275883667243983536844286911280534655617837721599855514626179428808245565372976789826811776598679915453051704012880381586102890687467837426099977257640139784613201310585785766395802906279950628808493176230020738426167657832190607017135345994824926670383868866332554818984288697118153715369339740038446816911899434184282636464038417525129946557045718157225235546523357286577153871060141971449882839771774623638113706126606173872273712627671091152459478000684184681251184833789029589390819618249572793322593841436407103438235046096485267900028144667327503597406919636054194880936769290279687785975326188748641270982545872397038343246137425251688833123428188649696329270058117305527271297949460609426397887535037065237516878719290345350916893390099231896518673574104342741736838252255876960138446350426571224291510276468407920310807479020577328063884179112728248125189246426468037847264027248920889825466192445270618869486843441592031259397253846788884772394937924058701449615625401380841820003045400149406760090425407262796874870521924673783267792342768277801419564610485166186417767094073169690101068734999804575616518840655186382481702262873465874956462041786941349429129156093415101380365431696274885297701715967434122558031747306882790262457620365888007463993907347295626824424453109575078671161707312005730179380539386707860496417690732552300229815166882172359636348507670510910331891447749257133279118096660713342216045080182438814840019942891543675335845354046015951344336522283904161280122670006680444706232204999528011676323342014099420068656386305102609225883955320443933406617172599467964811031198561780763727153760513207887244634013185782431520409557979016108799930702653001369667165452123589856007272448513552646383022194757497546009954968594377067356030127246010334185422452344959905336648618445947787378601623063989886749318149117167206533798105514474482054562855626928134820653567855690200405894924626202704990447050763460682841524679000299632136446621945803069442563171823136702692641615851112931196001084461435204616036598626239181901170949053115267205386168243194693675396166588490412483910075806157407564787097836313296601873928605880994547606298535769510412770599495221456265851134695459290927401126295648748407999420139025883524203124979532553466342143615339516611545676578432246851601701429373244188891054230814004812668018402317926689341557093783733236885052046915100800297153869879795131457145404122922646646206959917744910559310909780763440324509905433706916012430961531117061808139695711549941928649226416823678230884965964469557322673759289008186997026331890736862625963239983276740252521989265776438346759047100966852824074530464536329787579581035937663721929135511531584678329370051495361515450772412705095635860488015202723685304849752910474151257764447152870921267636090108733248105950464201057414669063727832752973528393589413089935833365363484270220888545343051064578098216040443030096965185499905745504532979017966944689450066002324251379417266436975537096875264840015289773198158904127237623697382660161133393364422026260223648021684364828083865207389097453631039212355443349224217846402894842438265597380290504973728821900120047671592999366446086586703344497953802898932491090745773448197002754241833431227193332843110272117996538232460648251877698568802349934027199414972231506927073689207190625365078433072303664734044892789616159955854992764574743904639593147569414991219587082395062423446385319706273747581825447503385339287890710065069038734097136876132709222333386305383671612326836919939168614161860984824737515759559477866110385830365464759720131675530669944284310323692620290480720953730788487840063675306418204457175914787230751502188218267809054296032554554795572917267298711952132284797022008834178608557787160579106916858017126253863145104171665555576667593310174826117628968242134029087664808641589100938762356081244508930772243829853492558653640426634787485809844932773298840743272701533900442171573309042225210694473359131740582096848755013545077413677707472245377231014709305786468174795138889228196420532043303925526976142813017154480164020353590245215730267903438313888635281490408978564630303188466960050867055665252679891864995317202852915156897158047340168736113346097025943415558477690738552381315905419011765255038785034238585021017279880930903741121007547988662331800955242442732690916003661302844607717130908936235196912196642137248736576154828564540730587183049593865759180672187176414420607681593064690129456085953517976775295794960484110854136545256489050089788947966372831400510583730516271430840203407831134033832845131413758454923717039421411597399459280916130907880881059823774891432425768566984804523249568983471803139218750112160709333445246550953290233002478146325880023527979880749406152747265721472240302797146077985075028892209475153784868181820648369522848814691940965425413140660045359728865399808627713200714239906209962829524672670590836483179479028348429740695339474035919376891920546870828849309094444873205155791696570000560586455429504173606960503641745464782737668031429815441045425866577053922165811748166735771658145827063104065608219186837635191127337868568623406152765337006689454768346986692177335362829947878158599696997507322704565719247526042837545076434441764489966893357857386235401172777086439054955765769042286714430705282323813760052106476746294822498853426947945652816758949082267606532618013491731689976344805023171288629338717833464188887521600432140596156096967089424961771012106507374159091707780389918155676768138251675325784174036925908699345164303555987412384358103163447146755196487710886347558551553344715194402008759197601847296006280537394749054572310204856229139082906268648709288698943293086581796636379449495706076565331714548242122740575709489625082260182688221823801399510750302625153714145756511820914952291314035302609569608794636027204036852666427279743440423746145739439513657008710337243211956865364444660530706015761188839030126064965644583320858595743034984127027323840612619871278244024943614787548567738828804505639244611864653111931651863968038544971580712047278092992089549790047820253735260189554712418015150083010960659324875361663034745434508870966024898885179351978376383476897428794180893239255043493220847010640872987203180842940569534911626354008263196851535965880478962203613397772589674122330208255301748545535364801292197922198041471902594778136288080669013421291838831237396281557551183068416953873858189828113724287342755998805382183848444859526090484105473444424234486335968073670285163964700192759423295786247250069281763336468977247498118536494524807447722780085684785693316797092456465762890115844498630336206874522015190971569097959141518525394850008085039770521223300138580850236613585559422728989619091252669889708106384984329358899173573659032564616044172837221258507824659210672157496002283947686504120676377136358354580755527042707645592572410113378426123936541792758128563259722785288325569089314494550652390395163354360336487606475082695525374894393136592624586343052791003094361562627470628812889201142806594126253572821345474556994507148175816029694288962268783777502193981026507874220833404462231392259522353328747478189523324694300929158618427472843104763665811327268706682154500014355726656993392095167265763328785815874507318684632563861110351365391671620598305151536180192402171741959910395473744686098694143962432503505414238879773416582881470428596929738939410558366406067814925810818371849780912383800843695995786725124427176176931004071226229787482726798878795645457358494909851247330113307696116140237682391510448459464833253219668219056796167130777925860434630506633381947756323539308095392352535677792411245762670120036727695029061199366070349299679928825908265728180906073172227095344550413712498942416727558422183126607067591653782022642413991533755578376440385590914208153414433143282369691574168106550363399974574815548711323850910687137926570589389929599899325239808568451967302557140865430750289855494525189828111093318141835767968196751107043859801033211671190864721864688672376974567082443245732376099471206752486004036835214140806897181780537101307055424174282393045242861964428585853568954987340036836750937197161617705449047109451150423544588306663063962137782735466504204374389197567623518442281825332722683128842140068720367934378064900058779480405899488679553429931941470568583597242832930485617888793590632511946299461148206438571494398446100257717859633903700762802308415162344427831203334395823941221376968115890939484548001583804356088856381142334827062686395037466623411842564325613186965874702402074309592562540685890039598815505934145024177358112524233489354296717143247812337270102534146659869358904332209983183292094970159363635327552970438738719148295002374324434249243155739469698361746416943112803211166632765831413618378524121612400247870763577955176430435450374462638985474653871985493841696784242875968861929679971381694375622725830746992317654816778007056052557253871831242619423102488942361266010788748983283715601024006214858155796558694813824948609787365363104238549656527731273506856157341280971785571156938433650059016713930277451980388607024134392600027419506773478845222284189766485760384789397973804238380401081082304560083427142149618461684045602336642086183329722593975080567990718450403511389184086066183930013501534874684960944922169578507334335217824091768761204580081361743845388519810640064254663996167975162205157457825678059269402227797175126235057755469231369127187486312355478401173445712106135171553369228304290930572613734403215367295370147724644120870298130733256397697858139860724705367744059408116768602547523055018076212351902025548259983175132478566413773459936400992114476089844364988847880015202336585717950468556759517401159042890417576325318168707932954513123579491413630709715242966444998018982595534961037102753834634850590678252572532279866158255441781455826360641496803490040431316706754655765125213477468061686938163566365383791310888733407895963804573300684906540628958815637707596704236941055390475361959353945783525056726536533275141167900158924569202543529587252427817146036468201352990800853726764793762094444097807959518121239348078395501378626771675398328499461619787616855036253852395539465745818127274191505837769676149193916713611393890883391760379639819493040050300938211416388873637363703013106329874266898117885562889525440992792691065245987209801697565221512176557367456652549230380852546420156077259423689319392214657760019872523240131198571262286671135196802573150251737740984367201873290620899461191624550817243891180130236670533501549964076740648110318986511294023338524980235029805128819050394159137742747589338535037326155210853145905282623197068857843121517372973683742690996205880549684316739758285519007329663303209020341119285041353297371267502255503373803601993521635511098273346306277385725277215406369259014092201623928683826745414076157787836626217650620985483034566724972632501838835302515793351061073665417197386339759405010566424009207821675640264977093856355497296773425413472143903333547959868785399736429313716413396924496818881097705347094665460894139902504740978699636619310127272070965529858215090636203977073833140587951695673957079593382403530885708253656391719107354492863722553062848119143086627420668202759119876050606133518263229430529940536652732828046238730537565300099673753754168771363634204155282464995211690466117808122782034271114679241078558017153545625006523503441067415081639214292344865415181886964441201386614719307407120965295751644618442266016122099238292959449992478472616507846505834754943047525147679109701145504119517629196532666967954157251014468616512376774928560996818439980911490867806417999628471297556529204105309838926676752645865489765171335175218622230434652516695462884234371671588675412920657700573091609717276129678596615349123002121610978402657900012769618832595237732357265462105225476604974496972955335911070191152051922469507440446941289567497190324565210102575280741190962804176012279439405100591344345462665260358480471566418717939048895484069822626168503033355883977243720785168453115256227951091794426462527489976818558750241316286508372247539944577397508534631278478547908589304968768430984697380881222250543623443100797850418859986867729257501605110271347668843095325610239345560769046367180395179506126930178649659186486627758556253556523490460588845885986956457044064689549561254831052188534076561138466669450012041432000835552845261307707756697502456129837150296797125392489600349963295308817183756224291255158254160521367040531399454603767348339295425315514941007051273878368651758702882600383473753087184194489392391768750869894336713973156124807601437830959520661934496284655351351848011862474222218751312183065860926696462330522807954136538279601826308610314266058048445724658076205886627427435268680397169563248485911780189106550654335543668675634454765676840162624024193159726086121648084718048712564564562766143612441457643071705654187114906537896328707184877459236168394514984819438349720991742935535919297203111172498389883988438169235271758825232377783612020944976418815341530120583509240059416822299165225191650649087034629908954826412338858398024993901949373009412037482520166130916043925858925883030716988983527052357764484817855034241563307969174201990034385118571684447194654728778868008716790106896940369042418028480954188199808768421211736145065603681737508870750063841864137593827792168456178504295439581267329673296982634085292778695052884467372159483006274532939601696052264677081632467268678733917041157923740005098047112506533594101001356450069239242939616671449998307671480128202966461846939734840952615905143249516699579458855890995462193238152891850864991979715125943128331975909097050198185546631819381545849243267956516459662883551455301534752190217048163733066825598339805208013576718707317575373506288324496673812006481538077000106233073216501676281930794246029011540440946681317495107694885562213602424503633623362489020145033470105643114022034026544954711571647764087502629810686695414980140749720734131179230088265551345294385340429433951657405786262012217364411486666866085436798787494795962096893957012308692419539836734006962826702695126188384340784060768860815182929013381307374462360800844645051905321992970355350955350029585312677606990901825674109734661871108178409713323490374661603007256178366968091520818865016875615205036979503023519457617139669740539175562185615701271014962763853616978253648617275149219035613403170424231881667404317357297904111122483907435265414905171320951566507775939632400238577811506184888636259638680010435002218306980814048477260612473929350856835391425086114806486587374142634388784776476609439463046892980926467389988651586712212019818450175105940388760227467188227523517554542214288392413990603597808498644562545009724897418610384183000348497422904340251386670647128023916919314349583536644560293175029361743093876371839205540982903390276258811342407629959646698577026448220583463341729265998055457057096124064678827710059804620118088084852649056686739950061561939720934398522187606126135836471912954094821264477985834801355280042651869621561898717321325723415208594742890431099027473929750979450831953503037781118458006942909351976059689783121443291835334311551505452155057396018701142307505914216346583680638513804734667277086838580128918422318992232003989593590670018554066311544724445867849104401210577180159777683838715958782415052168997189895545218542525478368292866303523295155344690353369895957102003293134323699085703852443651224398681757068943819944475574826945563603432523519018341695764875030291378408911307464682035574357833810976596250427954724838152613268735526281578057688920699279729770246710328763713857413863455965275466457071952250546688569484262947361777485765837047512048637864247292051181079287822389306078597265776495233573743941876997045860206340060653066075461362315299728970793819796601370593706994749339502305224525312585276071569255084738138278460832498484743696607342801684105923149112346203448137073244596680385476217180860826194216986469834688398016351279572083128238883801434408523982762194519399274636528964165859018899765248627182652548400842103262863410339317173925723421288865569462720094603218593945872419013902064239344674105562604829297895547127084791295998982674102901515436431496462213926315107290774769489583814919600904002216287913087032452614473653364171382290851461497935706887300498223214539306264462873991957818731027659635217672620201839821492735534136373944094291043971501611241654658181074983606124972418705599257625578286983313932841559590749967762631610907953338191401157248092143130483233481688364640642866859711807960581823227098096172494633497369478089907001477137579160997780451092352751858417732503106932962225991681696426519412553212602759964460884039536192870423403497847591945317231200647028426491329418163102057073955173275447008539453830791705289320535769711584223993643646501466935376195180076397532326270218571576621658733849434959400728646382724087843067844298503747094647149949448944800925665227315072380767161422931807898144972330835784825406281063818130050067356693519012605802935272445864656909937139561928774268800798875422014886267440141800873450513411947366172900110208137248069590990187282865666074901579176593044003015655906731559876450012844528363109894151305898427736782572610385911546886684712055626994435549424890711791538582144880794045113815530962305113105849103029111568868357020867987696372274948816692927414575151168593314353279301929117126626794458703675047463520838637951414417807445695754442010548469165541737186029473404228123271183256020594452339671736598604458518712626044716787220364345035379808819147666826270239941182834541335562383068841769109946933476062047709443954584116585033110808067922989378578584981604283579027673795014035684460692093179939954970107416689373388992852430637897924553174018967125870487356349137273655700621401462034185863177425187211615782499696662969035474491740068820506239557293631323536313205690073911677407224112425799450754862279869910855241123181468580622435226482334835800659236558734890325277302394317916848439906615188014586359353412179745002144536935063228237809382085845929278317465475501239747515039840497421369950996040399808561574713143530199902484638274714265326101552658616011262587202821469584571405143013652136419202233560858099330528838099304487358089551681597759365995409602608795759399371437007938460241892329447317100469710902160628954398740460910213532193701700086618893016203186480700100796113454312019562859854428307192130594285570963757516914551467137670350406673063649029180949232631230853735346631694616696228971486352918607713062586856290679678690191275868637166214849853111865820034843120788486735063165627391356790669548757211837594851554754896083454836796526743924854389443119399419748502031909247056605155709231121000862204614190170820398707066212976568151513844285988034700139934767163107205225786949681793372907430911058640515873115133513977985915084831248099629319347415708421925042265630895045784655496869155681894230782629520432103846127465564482018300582259859468874572034810732445753460704530197039054765980505161679572071150862593245464763428889990817026292591695896592834929049332427866599044558495517768476732302537831826274986747572544376103210860481836176807050609537181581768743222660375776141129986006705403346288908325210686862596201739797035208882095742817362513180473232474555464739911857236503320792544191924003802024343821276092128312282397745798609189842874899706643970149288980054878137545236348724876841501348851688553031100182372315555468504872698973806846804748630677248555122176140314043365295460503323654570876846114912684908007193774680215244481917873513984500064270760394764391402793490072969641397838702158994326359329300199565193108468523682946131363526679889970378687128847336706080986564301301404865751644211556492046546461898595153268556616996604964935878111616897660600459402245941720780030516549814736598735631880356983948879405358778425821480060667746506402238917177658871162307019081700994363921544903494716388661988591329569137945989129808290842794241862532614606933849272777972096140550891304440735189580823842367057192419817559032942757678294933671221008813234402565748818016322558601555199664518409876838490684684915576509512842954826353589533156901087413268003947099141742021527597039435771057375158889787885265015506500318209495074376275238080458960058068603915467354202200634343067770301501333786423178141074973466785566140973846082027736551187904351793718574285923098245433029035727011565004622937046676545893529508455647042323058223630362995319708485951781209309447388438000160331192515618575521394237430465346068568521547767325762979613844181844335154450445502647937090245167929866441292474632863594244963025247440527079595271537527960259300026981089582747088356643929091496436609303900146373843812972303411225357904474175121282636753177109636759087545200506981912004350327223040516921319505282458500009316374897497102320057768016782168356475658726694978579285871917711608202207791867300332637690792276939150178033040441374530676058623600039572073241324211723894771544902332933350698490110593235799558775451355309587238719976882836718938414038152329619851612894160031056745568989170964409046923001140424268592989613776339975252568475239383529797353745542151036861429285208671459741922841268469151690082748341584903503113216062789586179683086869366954513029030076185532861847827550747856721384316208827050323441138532380920972792051727267062791566355011945265541877427054645454268826325057336343500447845238338318047270707229527621496909100471179111193001702111523525821549939352134207285058087117303686033176219039032764031161740762923973999979058859437996853849531354567071633614037860470658569543255267384081055190736831112280733650673234805554713056689471531162709636209910970345259992917278974819682979148744473613528434537803017455246430983556403524946041319689512805896825712708275408713456287499641509018196923910822183527654352371178765458541024635088482572349852980695030469281593954717006720261407597716006318524610818881112826238381598439540994356402803132558636829993994804869712789434954020672418652981270563730528330536592288147223127567996767788261766673692932211707709012745928461650038510586316203149783288874219753355563102643648917786320362401944668067300567199002721229060622718451788280548231947597027530577248402424053627664782833968721327464109854225765019090260645598881237113402346478840443793170570155630713226727803068656005530695154742346268114027214538326184947599511787963153077731411381753048647766364382146097559500618725849856568434091521501888487591919346353364868692046251281559133078182436400011880776696306201256090228113442141119585594412229019350531146704902560779505883591915891024171230683064392780173538500381827999803175307162231902981986901098262062021570078074867216098618136297860599851255458180648471572783851849212147897025046556984729108693878711762409809789190083893578015488434699745938442204294782786984774664396129848458799202616811909484201591599596037911865748771914390209534574004669433051829641023149780153486189801425828858131620260263858224171018866880299729304173345117793878487299756810990043663561480949042984687798836738675453780364967891873387029463294687701114279059707320397499203066061608194442807841359001949547261749638787732977746701439530486768300900155310013369577783093951020384472379676249264351974684622401557760856520016626984399905757385978432258000647472592119420287069554675760706932112951023625386218159097063089374146036005274584496824932637512490974593187006467423628868581016712966531402629100504812063959895105377836288445984052793570009167642200563604821461700791358729085384514328164794930159026034720680025104826519359705266453824000180538500863195714177898933913777255608804580819147188643044962285866422645801567702390773973624055646199187260403967424393526437655288685515665249690849955577030451926436892084873099696356498690005652838372747324910309299301489901257611110809641289870894901832079725827014022574432753781701397866085634098217846964134150539193828793706850582942739285941431082354905499983429033422968781327015189596813873269044124458350484490387484597905405814366180132233576472236919959603310903830068074779871277828254987600633319976159030253007456025383042763620301296246141683382036450521197063038815124014497395096160404669146051984129919608228443939172005982091246482449753683740097509085433503321474831245945467321932194955733718118536735801522197767461502531871328279276216762534631333486880184551547436297581580282845957517331099807074090365764475023468836789798220290786297848622226261882558020245887023365823813401206661508160155253361078587235827302898726296472094812486640185511562783132714971032345960782434053436398782621308364791943029271434790291247821554203750501731061969800883608006191944538522558161015881246971676201585818413602531314723741170499952801365349140278470855168335168153495325220206763228927932114008711786162198158480048690622247307293567870732014157069664561875275567668115198947986308126130632961150740606312596992333470094215445722905170655592606978808139237689850559294485336096150361109040605602855360630288365419207397125157004386648363242529293888179431052255269127686289335030751958170906072594198679129331949292989313052736954355009925282186880284611664729630421135515290850966517795851829003355238222824702182009243314840967317320529954501155781987468317967107331943617449331256353903476252367164393788443487702426597669105416819417019909713919370793956328656833037438051557046835925501611856613680761052388676102992299264646126710765957486832667491189499066575389511343294650576482122662456555474823495598027229873491442133213329731141652981010657323365419006850023926922341410630852641483074854545481290550493952784095207165345378572532776745975301029800203018063921628004295411445943719743569897142295472227795484472102871867664812772311211338477839404524368560308624030598070555755218169217087456094607158185462100000297880436052433977608358680987701809927973257701918325509551878630754769941812810536641880770060989649181532476487917658238475352748765269702968936565050334342463270383350719535699537112141530521425439979450703536881137475903008016123376602038474235992214726431574261071414669001268839425767757253337158809391522886563889091693653505665894660936415983997362567306745554598489112834268756294232579784435857921731126785864151533179501403232340954824618236562541132786246208419110778371665556172229079203719465439250961687026082844621222359220873644699034650771772280785554111097976669259008259457949428259548106601646801535813365579484484504549574204804524189483911898150908083301029636673600109342963794742108873266659007611921202985105815607999501982940454240390195336369639210971938334046296314724170670967306862433517508829231621464906195572987313814896346965698894176252253415672916435774637529412364985610913046606381332079171938849996410241932133540907246209567355113061228440741675646936842168867781633531243983760022165247613351453769729484052328598852861994703639265863390513409610405568852210672942555282177554671460326292497353559270938497829436299072787477700543851876257685065462995815309557222702477313388418283899610931866385178370257323463431505611456169418272848857463545574572654771093172953466366286836947306576974276030533272538495286902361346321346191609963562473681402266608078533477661653772778079038504367143755831109261659032350916656645866223562857637058984652382570074244112351733064791036881305481099793830975855218746393000103416602504726797569688438549488836070267999037468629052052502127661601307796126857068737610618338215430917579720108108228016724815258696610170893355699313736549859981712170570186218958299349670145490831746274696380985853620191015219008071674330237806707521890813306014630541168810192651987812004425325475679511779770103269943988258873911184851879682876211022332672999508230188321313847158090388900854175713938454474406438717941414739262188122715802687529117975991146500702046246411465769641423131230894934137408419464206818910541716160087434897230819501538512179914515935422412922687811366673917714752238243838800580311258600843999743031856165411356028878407529507516452628334562263860047804423100219678514879134136611564152506611116221601271443544411782304157544608251990353756471072603060105295381116348402653796867913825033044019593342138982327049873510455581752778054856109839492475403902047412799656543703202705829170931876599248388595548703338218485675744788364578507855206366886133774891299605765432454492281358572825098879035866711762842822240150479562056382902458962010077145134415016232990128559600550072724858156224263212092887574597946054735899622227132638130855455507791258825042665295934527462865694476271790948537696485235298145049643142309067905361056492888245580091033656946985210838618373863687236137599077493461339825802891878199467162219592236592179080138237223759008770013305210893001374219662314507416576796273218837173280528974314737895923568722400664350065094062103363890389815389481089884743086506914126420021860882268352980967285377962946223500698333067178897257251683696011803773180290926022266422105610322063582872604946274856585941555681298883999911397911576004072736281670822877221207460171949015059027091870779440132854338317109339522890318617100371800065152159523899928339627122292459471417836862845362584880041444101572318606114896203743513352900948660272913581818986305933569724284266815226190529375224824159964876430811615397187454348937503473977600766925288468497525906879063820838556797819028573844657714441669410468850517974791922813231445928293403971789025673346479739989999699001422013881901946264348072886361201119983297145264035215305761053831745983324286977568553531436568669132521380197210170560721896062933017295397139670833542803031164894801639420230527539049823334120978658044957285964694579558674132971934559178948448650968844594827268887465764066047841249492090781482329261202298526287296699216687607815219078181017563431633186305766623422581310496251706630757010162491468228798120836890213650270009423781730340791844073935591564744133002519268600972181668987990599944916011076928846824799277811197488674272693419008588944645379549661236670802560582839377937130818563948336432475250249515534870610674754916590692535460273097921911798955294936743046252416307914440180442521633812432523380987389785947704124671157724285678520245078087643545086691591771980889889847291362321127518897070763359401981851197836427890314503755775314684918752996450269954635038565617546761000037131157620280546102167788822546844620101352881295749539762145789259456215091661485232457830801374826890123827225382709015883301553630518011393751254438968864600147916885666387799229470566527351775802622011692847781782398589736038648616231693577706402734459802477351014913049745299529338127988987533670996655764761796610927738651518075565571808775978186369302123940784085148014320921562065268314299614083586034462567198614223440174673614285424972967404535369480687005265483966763077892452943238534216149339995473569428255240679255763657455008354172992979758624040232791200376520290203671303627663883827968107541464134490667350921202337833342266175930963656076572916301557584489087352575975040713188596174498449890876933917201834749066140155269542079570439215876569126577196974317664150216920646387204664084702700456324474378403730000333349362100170988034379813576084256233356598744419727209973065827662191171237987537827775857162458128695651065764875692826504056171653736853974346361596514022275653425731495327928981473620260554626948299207329976202020517649773401284154522997962322261995656986852694174977919139549153289313232932886285325098120542548057119261959097342208861064028489974535174912357125053474284668379503292780187044423944286939632988719694915636777768173464586297419631252706482363234302662368088121649415711786547563889408984745725808441801270035017376236594799727219747859450436763253206678703163887907169245820391899002883099163286795478479785526038036130778561071261759922868246349263346189215216035932767695379429472337732401981657835418079489318721216979751205038633368182920025499563751941181679504024152244343192183297159395690619972599730883976703312159653458583089164246446402325407981091733296562476316062873324799103437534488198143749430378062609461137513284630570990318959889097356910712691488532861991985950689361706371145453472756844300579781990307878713207933554029765102855840878794501967071502585980180805561271915589106881864065931830259046349533872048322119529522405590184338722670216396135991919394489148323770001419934546109387471673016927002709460945268556906808862849179851649830923971293010344427705134373633031234559122698927587340120801181826757645059069478742876545299125023593977102936883180119741532683042569415400435342535690351434277237230862993347441050078020671609944137431776926724216902768266862324145987357231763768587557267376883464600492308614058470434040261925616506455674564158531755061598514916181786706167502838705192363638376859490119448360399653534443874735137305081501452860289151014859444644324308097596568940200490662825735786950117936608745678805409854790903892136936127951980554890540567521317720435251469407855448861423050483931250158502179700994923306460198004019041192474009159420517764192568168406280119068293052585244503589681506918977157850629030290504039318893763501627515446180367864395757093533962264503617045097509665112030890297810840334855467035476523203329431013915281811116762215012877432415016975325846028021246668781837871805049220173062371709549486006574156256375697583130751534333145107214729381073650420746021337274268684823599205377254292537611163441564749575805019941020587563696583089608754327355846885222384943482257186175027374657147253269351644861069831353550457664909062657710812128386212495386207515115864096730996795228494676504407066057616316442294675580142936047009945395215249702384987267356213247961285823463777126154573611104147227264453919205923858158497782921787686531996716290975847065050492587667452225012538523214517274449325425047835384861578572359102212867822476691202098294858398630802038373031005444819015113621414933870054527004405311915805747656468889445916754827935231949327231023658168053215243690976098810580874499571712756285459619003142895808360887191798661628267124624822813938256028833100944501602133464284823828576621806383337445095028674535840922946281896459124882626044365605907746600091331772414622637672929466998064083446391158879494654383279127614415886068262280065344788060848611030349276082773350858911623265702550313136145251364053626443482861214467005477564200835851193847455941422256527766320833239772160130523003298069494840094160952142644621850911867025326050536138178511751009625285233428480824135597488150646910683498162282472081646970782125549483360401063989489443384026650457177024597652589793620599763193350369781495886569431178080128629692190151976469464846419216605747048233881983756963723831660620840462745458319207115769677121595604992469259532802217461667464028245604960911580129250666157223878299834221339093565507038558115871758125617080516653200845079697131384509836531157724228304930323268523600381451397820504304494046564584792963657441451274909302743227541522529238641302629622704732794156999222512017264233261123686262819381359175417572771399636385515267503610530714531049206431181647271088735222922426566386538972127060677091134924478472310672457890560098521279468648834071641487315464076750543310189421520004163289890923114783126793870625393797134319493623628386195549811614431012760971969022078245499731253385650728832433214458363641277631420324378305643932696320551050169904762781899547293759139941357773054806626745605732704980859952990966043311922207291944667268303416411520711093688408861832735143114502767082403055886082455122575531623157129650016682966258176559002899842933519255800860646040389516041484241424283612744355155077365718338818488818256960407334817671118086441721233703457295046922748573349435175914982222707273851492091289948851038205089031534128042504762195044755064255590441153122044988657894803185474134533326702825972201939764587959024496339083041519374815424867050625694852256818931476996980715583377293892681470704059444229671277444520332613824714980812864075446954354385724251111162054935710026545749990923163410148345489231169849054729865312185399287656519970808920065960841585904305867629991777571670303680846175479101475073944665752880422136492745225057760141306298688543696854668862328921022940101918864958791175134118560580453154818973000096272160363657987031377208936568542079471235059549305207001791781118246685089401042333536607159474551366704956939724864920765222342760386524104976080248155151227147534372326515569791706224317915101858375844054318719014146678127433862492699148500283519737324613226343966877362095373017098578452450289418537343449769066676036911857257184132739234458396868530212895320551369585626225101802133772742267332806951889348214707075419200212930231012955830575479478230683028835555742855189488791543496940708869494023786356427662649402949284964894536406199363960341954362850254122490394190552952199081029378845100517000041663846081618427470756022672577153208490146393831867766028319865221347194469132318039334461758724413052421073455459480011718362099210522195486527285434231842349282937793325956271374036567571835110680987159447531264144683353113871717455600253205993472062859310202484478431136272702875283162442138745862685678616741781680718197121681850336589007072146095561235088057673582911049658682825500736873303254978790664300751351655120615392492377387974927872791902443876798103064921763643481050577644593923019769328302395112899024945897971016924163915980835877065137548417133188657986064833163744841907477816607847807562281666073375959302152314347894057525678951695441224896992388881961202688661943196326421681427368259119113424859622982059078558576079925314020545189087873218904056010459832888199796648466036610297544043847929629463414592117112497385575830502930415455981065856235662832863284283114579353700895235372028925309357654928477940782794576901472706338363835043432317355232953538020165370064448162983741283236529641922325384083449303296356656924333885926732094748852353918162705386468009284831835355806941176017798764840977562489131450477903575340439606904219096046945795275313967903116500638912543085057665036657923521637867564120080479646332383736989475461091014691006534967049738718071519594898793702851156997271068624357709893916352994107688991502043911279318304497718201312646597282404322312048696970158937725051752288661596913823460991817547750087923320590750814161325345799735632798721524150598781934657484448255684143314147178250814547473034660011888703631348074113591292644975258032049911188854730889515700533751951402876795337897762253834027558476959555040296334535577551045003091232712336847901235171008799279071067201435795253338869671290939700977340772352032314533373021550755011320384248359034950025717113896801728855726136941412204868169039820049413461556400187352124196647729537285077099246741009467905098034241926013395333633261832612925159007089802775831838368157824894574973111740251200188799762643855759373169029217912803673990335858363154488004518839432309075044637416382488329922057277984344089237350791842798861933123437259061399355208008785102301884237248196589520922762664283532458168811628665894717871170459729814660758762560946617267941468661322083076063628780640802760614859776996190705916757468242062008190834789412427115317883458335592697722855958427906438242639219132673305060404600470015200963221313435811520274152722563983873591582403392378441364140878589005140965110584984570979547735246106635594964352621062617873632980684836525684084545562207379962545188215108855364616494811756007618482754118641603247680228316305838186922258473280889404775021294219855122050261422520212298804727895355193289922906557043974029597210169814581501058380051399618731725025402386533113413693186639711656562757906786524225875131082280594888531751733706486978327661968732509154173087575347810910845086821997892114069293374823443839942638078353789411524067671887057925518402078247386793285636390257178586131497366379782681154904637863035932147387273393897106788811091162416882675893809040209845059096498220717488946780126586930054615052905041307617678888426474702214222988990528912104518628795491175986617961085872547170967633505384302146353919053264698905327010219138317187536248978981367388380117716113531030655279547234388808832130153871857432056241403205395470005161907981078683588310137466581553077010493673902950646193099826356435885446947153645815359051144799644944331926903449520352016347495471462063758399698297923321967355315908482775180610412265963722962060124492098412127606999285264845060956603305316434452593359496792367837004000436048522597155421352237538520911556801307712965612635292817011550058058401537929172041363412645092499620370446712458093157219654601713231090307694020521708033816171362480608448138965779152273050787217326369496496724134308082560774019324413127813681016216505865005180465154788130919875313486124736594994597990115773752171807924955967664634911898328863373950372739736137481646085914732501438174984339663093444967462262778548136783624657038293195116092404382513165250930206205650119204967803373058362056017338768542308342467841037639671031485867754816150757765963711732526186834285728714014780421579331957927545836542944451925676822240652703367275405479643816286284166477541284113931772496891389950525007836391697740083812336957082708075502700133061213642600414922689560549996615424138406630725003342908508880009805396193698255171099662165883170063020034406202064061319292091602961772092274853599695630103301534813819365123055441624397948067326630658285839696681849230155894844519745073167166685519674978236615405037079691943124071603541410894788354211325979203812938467780928864507504480701279434870260850989138806650465948976841432262193779488549067644257964607703408272962232598135153506120866897218730876197771391283061579452780899588906622528289722416811255491021421995900525230317820826886758240494215907693567930022887667988589321329056306524395683584570681707006299985387015622396807012718247399690836136512945297329470584092328967247526381205356941919059354811992370993732215630746558158733227912611163478839630134006262504423005403855125309316681441482745734260609496008275301497613143856569272033138023466071393755733196278648702265130570267440225149696348469362966293592551520131871844468979491733713884232616534271170468760226491418996132001397529385108151603159513861897262614873966592989282118934468625327220596445198609011177936889188529876925389682893150019772682401071382929330036408401055098695444473941943026783256620181251776288498029428843703244135006868305259921929067488145274417182247188362518817800669594517310227203231055272533957986458684528713244003965236628632661119014727783944070503267537296197517481680050980628358600143690970199729185601029990395277549181593372271865734864674738572005971092811502407155852900196070301411996238321539971860787875270394636506048824251601852937781875696497843684934247478218993607287458391862493939816887893303291764051100820153545683685799398678512647395336620973015597042362022971428387422968795095895250322296162054686909085940703712453793017762518232927786894072204279209911518154839107909432570055702119829088512537037287513858431966575054622891498134321088058005254432832341661846314999874828336080664934993522530384903455753490000201998637621548764757883290312411382127551332215722015220128742628233611009098175922126873683107473667790423934167969436662916879225700753354056981854674668957200682732206875846032206138405665795870634800821124605315820224586586149044462362700974226973059600132675410129464843640425500454668418926195224781883185680019213388192912670765702825756875720164273813972921248656751784446914486200719232245801654554445201993838062116847038678108636209979121219072819380409971746786611591859123451350215601971772297522331938892386179980830678174594769837735450429699614554250414906182557509404158792185481509557210143968315348751792769139902382437391582259581371930237178259204902238943755495196277250269571402433277552259312896703620076418427402627533128531732166175789425155633818162943713289842286864809737855370087889288604212612605941954901592073293038214717175894128971008341538805575296683338097955629791626136828834593451121025596434918366715539048189398255368024984410562977280396507885459124013530800784595339977232606059767491072648286699268358238351802007695598473739917434986781985033343045821808761242380379215416812979674251646773061992882070360498939406045646736318684533918929899043450477674182446145399148939322426590405268906787983428987515586255103133803418312630476645648519374114642272880352380804959343980209034263690490628823717477749307926769286235417956415161976714246525364913221425914440195076505199521021086264952887843724163715616249493673563046806674854752545895090064572618378791700391349054424511750871170778789581533268427139711396938981089030930398995865086114182666203095404589116648779854606592344430115601619761413149622207165346665789560760088903495558411609399098074099560151869754187492617241724844684408495376162659709336922294259858513501141198365973906415376928539253940811090386238193793113497251525782990089784481755588345962924075638644460417820029110231250038945579785970340000593548436122552381546705689871241463949021069776070521282238849202793821983144248663870603110672809021725622748192925083778519567419448692024049281277511571581089027050477525215870956575964577754575467514702745963608226411426498782012786628077464604462384503970169917755531834532498381392368466963334266811214731201257276972301468493041993693795601082252831483502465769917056550464752849441172694136561604244469887681855700555536414760379000081387614898443845157914988876574086593319213377375915236337985577412561118072054881908933810412378179343153089748497169616960999438917746912609146319117138471348882305052844812368003059151653950348127143667549184066016077174211814517381076915132559927439513081974173649081665283762994667910106841074636136309606060833529431643676927938863195701166914145959675617021169940314348307086048632534843440594497055999460048233026773878592284187056404987824509933489194241584524087879254543296972896290690296571611041023060338806915022124999343431619162662618490510578313360047318766609328934052877891010359312367032184214177591794429671875176347173651103984317252890958894060895269504675815867019838258426543251464243774130772417930264133542544993345311204378094882548709482226165743643893684134779178162818679052024575640806836978871546753270957562396607426953250878295343912290903186857093251927014543199463179337053122042217261948219812341552567212794005945734041987369100028557626509828201487249554134121462175110985162364504203140657312670986394469464551475516205787804500450972958996033573528923945027521950631124429917464837865644818148678801897995235959274137066004557971064979816575426106875182864675401363054399149386367366984098309728556677703449106507059274497379306789841512194138055490040322434045618888585549276228637300504951950156272012728036030717563914452370282703338849573983862587487225921248394187427240766034849360119233222417498562886472761793731336683722415862588828449009982654525410437258814832108248456810643112323623342115158893499336709900091221213353195772291169292942864210714804192299041893536411653306289524793534099150195644527462550376725101128551422412584097102320060891738405445009973277110797858298001822731315375913564645774430797136665246114306420455862486373821716367897368443898688003353328733768856314027497700775771809510220799082429936219074070307448955673850283804426509398965089633026131250353716133231251205660467880128971072871746588864882826198068389192109132749396509854866071130715477542872169556021266099501331462169575672973268052602333651810428605226358360138997915137732989067013127027357178458420275480167793329063777007232104282197990404960217271807257595326010664900294988870138153613396890456712393923827926891873132068569981310462438946860784246237807955356240144623927134718227175980614431668707845733313027274375069113843321090118797762026196613057578777055021667222334223675936097764009179697635647573403360412093065269056599128766779091610586035363770030845124709888470075048160608020762275026786516555803171825152953709670489445223087557558237365036732638532900146689802596435291412480814789206326671708258683065193184614853614024120468143203356738294218204364807444410622772142159549281195042538578261979741756005808399505265972218102277859022278175780936775212013686920504200008648681328513417787713634696289361716961690425781731567950415436947822921347138130760258090175985863852556920219139901316571876634588257605630024299675589418082124370004403341878005409985778497220241128263893768891549335832148454255248223074512625784278374015719746107501776281920053986417682326641151735910755104672170187996447155762306478641494324230998342531927967751536431864421440740863591636497266432155147099203922258152604487045589865706883826049841393733001226590354982389575258027783462258914027625758997931399227852197778470220971798376745675567976439920159436664952223317373915942796205999998314873471243821665369804579341671163533795264612742647587770080443151475327694373258550867595194850494393349238951052955458902361929140039790147898482464884350966788889714912959980012801840912489189358241397748183324354409459069832666846080978276537579169480828291486819455237138576422515083386865972403839782569867604643132452596863414386898079267787038203559483902449142307932638120744040336263657064594997851675962831045145598201085300103930298249569395940370962986535995740645905154213208034011256294608126492953129256009777133409033052012809238818336491040638952907204962093888074412244810218514611222184637617379496440751945584991165186066540626625324148495447288048777945083793070722416392771759331169429233196496048354683030255736743157825594548305924328116312834750843597609378148317183794304707904281379550853105500095218451881149247828398300397251711123634936760330497999743452307242164020608181353796659161692608235788867476744171479315789499263547231711918475396627220411563362909602142572529504621282829610912122417294214847752095493367556946300993974135554095476846360901874539707911781411028395458242114526314138024389230243349604295473667278153179704115975524192483306649970962237288491520014058852142090902801941103882716918120942434708789572514937798013763486371917730191941664883888775954932043157635034830570256236613161273736186720418780521532898845051786186377214638910386356356883203522523977353830719205918992532104292106063035160485337677771114907336192289971219079081539006317153853315686623302945016385656819100983441370142391449889399439241004137952175310719032096987117469010934855220866611444488527046186459990779283442918683805440499708671359325531774183335524699096627000039196376284203427210852526385991055795298588915800122981092407234821492900455190602501049035085479183846661011541277584067687500162212853104942918431822613886975883798581374683200575963404997442654575333573858737344132220452838709724718310705391773971405367310254908202508841472032835583947531823349518370633774539453785496849163690827785446913486590942159665758911049164653935078731136215078399255161523034148784467456234491769960519132650869767392998890990263868545959257553122849804150266118723768076126280151527534795934030837890907224917593552358800014071917739902237959509674734667673251371354138721302370511776407267962799120331700843033775095176088948679499609465695886421285137113938331370911220518642439226908778835726951715724408703569169148514748818136254438248470193282010068358939024212613278879358006173281790191998833340271713849400631762515815304509375253795059940253093752362229219339678706931154473754896927775145929371247155537294755186642128640112408838790924154702854897202373907579778890926856818766450380032482986408660821201069226867847299301663646451304374002888267508805939264887954947228648000207097943201561125773324580193683602591979195461927179275588854893076707672581098391731428613562877363340038936764678334165929565937900543172412542496733819781182389068616545255224527934380409943450156331970289397919771127240446615371991139683220989086510722483251121342461982239427414185494509073223563252415904397052432628861248477737411577955733714972757548749572297414914873606647716301926874784304267436532246999891026035964779929919554150681792823713686072794465693622370557022718651141610127132194793732221832671961129246843266098431476406103450545449700197274126088316494029987268210963734900990147442541474541681092541845463103968071683855935039173675970847682130167824906264642325630593266355873431499701769855774629451314617244008145597694308090330138081218365080746652213692699715657839132866713955254469867419649731369516921393619382884991466582671402598452045871740267056427582284892606091527254565509208465304923838489819974546913049884289857522079381790671125734705268565405453499250680979142457316782483342824355553746490739434749183673013098329266068490460784594146890910114269194084302352958241178664909278774420274701603301973247169688880665752300031279705917677927379330937447236319921585374026142034658464879157388457159548816531635908802163312985792086239577507497205457392464478789624617028229526428680794708394399640344024750224630589705870336350204340601923586376604452562551992119316232855033026290657197355136320933372615223962225079411319320885450660262538762824081154100606289956790665146026318577451533437799646743454097452586968541421297040285960336074432590019393908825018954405012204838978420123569530094869939232575949070181597020703868353615935079646100604272887059236158680871223702298947897729346217813840686152850142778748302556711332873457107171842170536412767738162958739626429602569170389675035268890862968907277201449429780522932447619133870447176866563813124954137201959276185068255981007519492250003155911653368785667734712442491224160492440991629945093434428003587372434609000230031249108290056915878670950022325547908014155285710121838994977251407592222878883621165694555224606992475465637348708262214271034403124544737308721876970719263870601686922799836306012864937601037261963729198379079571771707543934690783630238767366522090557363427194154379262232687696142532495870240541258788235429925322164392069673094324436808954246541896547818322204190166127819610177974641968226761599271640670284049175974696623133886971524903328658771744227597385284953566495841293679211346192967045264860081382681600375496541969685861130205115536826019158363793113275284677049209621075930979485559972711424235553502451154722530190665636696882108916401138314304816759647088586050432107183635521187122968798014104746423679817880566666216871420156530372359444352829002032886915646728906147360994193715845219352931031990252843100540465736544481579459915766317938964438868355975063220251599069196843073717298750007415452045025223995379176701363785177764047768825811969033649131255218711304464455482586934633106880390974667693576814171031815094880947944410903716257151473742931824761251411192403065290616106862347791325642434593214521806924667253125316468826845578296886143462485267959200931698666148804916396103141462026530554561486027564936375566473522645258132399821616496641323987678635506016567919077929830875622439376406703498976721922364729343080146810764753288753528139028452324862834305372282047746064434209654429303738324882058708224093031487641386520073319356989806997369146670302588563842029936834688237837649404998934697105411017897891446083498813110432179104207489501245370408259692489860053902749886065200997284589000357854079005094715735701805772711450897897478021131248415342822782709233178151239774166994740017626658235768062721604526910174177514098223428952768112717347747627402007902463441997625930639996202686119003649463155469076496114594739255039396017638878905742845153650718559365317740036002274873471829323353733928784118914933563328841324607168290774308203155114229644183644092738182999979911811952533577657551188674476074039490566564438365218370816176702946030384455990971765551181724204421845287810566480492669650327627485146121009901679994630076933130063599541545047889469122889402126924101550387558887122328999416725673336867375411876671704871070258571188415848205796270664323261617830226518393476076639980110355417117263872926556864134864964459545912007885136799128785813020562330772818842151481959061911781800202543006818289347298613370343526060608090864297158890894425078790790252708554457717119215329353966236680677067331750208280900058601105786679454457308901158441396263611212919394870379928405075731979807066387634198733036828226323317039102701721923087634346618867806151367680953509987342238606331993747766252813222097798154508786250366255617176513744080711601313498099040057191265555239143409395507296656972849704523031512748418267992691516383603744752780740578206335161056888602779334565774911868905258129508153260567561940129366530014222294738476374789710774617774946425154160776107479786472647579132627931719643978676569426686846868513807250032692862017201201014755987851406877548873531637668428567280071734694481548773259150715549000780688345578530605646400106720985894558650784386181581317176347853152200890712553086385740747517279724942166053120101919735660782495304648937616239455375760281920886040993469929742617126901523885554320715556182250729101451150902822845975963614052939974098622171902199342002697755723872324893531647431711118335717203319073429046903411351683164879978911982964783672186046701623617825873847633540274034467008234873374703929998061816392669967316331583360043333053665238211242991765198043365777600471469213634779706536275806821334319388087422278639821525854255514533556483313731940314598717601864314246828986076801376985097115113064574009025189889898356352524066160982785399070204267415836067753874715882259692916391985511837806029655331835927565376731397198881985238511591043178730114799734301369752214613831296019148578936502161053331305225284620621824733580506728827464213393461363131439058284325013611939503163003493132995411572079983864647937157482054747723250380410692361015431545910939324789473355970052780819815189115360518144395418814044883357188944404455204446874095363786339544299819931030349123416973754563576841538777094022937899810687406113663421496605796928150234099737787924817979167600729356883140950404847027483114832620833971505257960588375455883691907234718615512278684340849864614590168298483159000922990625076287285890043790810811089123752191082684775328696015325010415943598552856095282885514867427729850622755024227841827096254249881511755088149328914479202310885017993906393216338918259512371571970219422893307328244310715259932526850421088492723915977333673978013882758598889225639671016062603636653192309859979460148651703570142028968930712131463729816038265870158464454225985369058991267652601618468610681572943628757489997559155054607382523782510802402356815290780598822172862784648928136426212968157390614159706455286022830981464546893196797975487271166772604121728162768749813136041771206628616227445272158137424629912009904787731457972283815254338740142551135034050605019848106559213315625110063183377856827160577340953312119251876025695853850116423812644550737982077721505243413841768224408027271836173893155833133550759164731617355203788665649576415641133782675592895574229576651561035238374348609897358302089998660251307101858346441728201772884634763799642050958400268127108954914088795596071312864256563765099400631741075031457279996305761500795937560631767957370878959010720363801833356292664364383461462954019115293887028970342999737351104061992069633868671532141767727814586832971667651600176959983418114181573436287922567801592039895831965535358234528309792545731127372221719405983005368050343797480742949769309411104556241324618755184735356216649920720952267522059537079612638740589534816755563045642631099699832084881975072206913026428721415962024674733353534589105977403678719838569036509275606150078232452306968425011102793876208784778500202649726406371484633879475989524567630834283587946447172735569434815427577792312851702294427549169294919312431632387608538259908858669933645866199879214517646849208245060920884111807864794869445248153186297348625300972554845002041802126621846171110413538684911563559623528093807269555397636880844396926380219666246123152151763356482516672406126273749013380796548499782938835111792391441499340823334055360753019089656223377062725952243496049514967130015111665617617345697623396917673774757504991269931650352838474938098306751744942850166699824942989610704402338040182405745847488979390526527777868273767181724760603676917766849946775870255349104539387201994164449676361007596449453627572614976332999948176006878610865329545599644804820350678568959203475303732179257090702377624129675445957454580688758873572471221440228824311302191321970623657213461643108252684140669546652879703168755583916385538812535716532898036128764444036391421519901983349458857719819404765079510224795289834608874832662465251312285864098049414278961019266744879239117719488694361034301536696288136388413652387892217968699613548272989346697119882262897759599257022817179276930845794439630096671780606342239487438106405958176661532010231911399979604779584026879154556148323371294519832855321776120939677504947908401253883709681184433980825263097485771272350862700592171229245830212358584668285352921456626941277148181914624095143584195814216385053462496977996481716444265331741442274038490008489731474633910434981934433331554630509396152502956733175675077291225259294056532393718794316170219004811135248471187145711818146421903506398153153068132687723463338153042296138010177588712829464123455517785783044418025677444060731973504826358791752606031399830618154144102000091713888435637642843210098224828701192424026305500848771571613877529588641925388545517484604115162202884764193888914388357125887363169874107861944756780509300860680241621134690803629073502110952053612874351541290381222769868212848253907285355291337918599906832575605194757431269925895850218366601448293699615136320327122071733073799164317411652486284392872430963039199243480010999619670782168478907729770207106755857338031404736879279451566681392866999493007655725383304197003721650235413066266546789883248932806365641449259715939558275510228841206659564139873306792809036711837347655747739610236579688928537399064421472531172594436473139633419781526508276895735005271245691221515627278506421480260951836760499960514068446329113170110881555348275828055408955848101797088202121633747986566053305688725721341987274909490994928063807208350358769528034414414006742580219864307441029028585990332845211136060107765638855929963604098715111738936226402598875328414266199171527827337549122980820024796023235621517401268587968254932269218169037312375471631148643565517961301590534872836961172490242944558289191747903977808896199887055053456711879629860819119329958775550433425417302632350841226652353062948054705373473217418672260984181790960554642597580879340464218125250315000403983112949365455548347964367434125178901125774057455136120638772395395907583179529635683995005658755070659082728489325519791896491380772051484166715363488308135237251137599206586155687874135141255182150566789626422319224549825111843637093869063827090421496789845369930877220227203222148519314744296261670710270159426643528618772433925379021309510863370818770530000161864580860690823634266580662267918348512180745565253959862465157255436886463876736025691930188870473937617783161763331494717634009511763302094832543580579834917388306628131086195245265608508134056073657338396560486433971288062139531512281220143742748524559366471030915876829321628128953341774795775692191213666177148417770385285271607341300414057247321418844777761949343842328234319989557065238498850314883349974934020502274169459887293576068449015747446032613138490938134924336747425369220842754148948671198224537545372011865870303796353568712873641973735210058365700594164789773584180340494476046636307623519497454947036537210210408655077885903258392815370493723792645891422837466062178906455799348467372768793040034177821662848083347725330627147199588325360072761675749363622073935473147904202003162916093258582777322251815701982899908824049241748563492428593431694009416364154575805932696783508097996462002365409238326771237211958669868398841337892275821772858806133053212239797154095558388527573279352307979281936425472079877380966855255850170082725435755082007523789553179910981266965312780023423193281103917258576337113864562009905619530007745365103283152252003874233552698748197429133140433508619973776924954846251157908960086997700759181073207300314958358652640584096159732900869031395764843363475168214505177296914299917913587958369061453754129998275341613974131916165607516036615034441403442990515209004327697131098017487746197148074429931157695434088628627899846639067297306911517207280944952793660271394378271810297990391858576741829320277040840678371801183806248786665927106977715010076775654022138170179066245385679578580493078451356913268228525864588607487029385564455689395814401113874205697146102356285633801281179939404175339557566723293838628844455449811439935716775615907576095262809875947522094131465975732266527802660147083167430991297746087765505512279927099377805006791931851738251490125907379361605758330978333911796373427049148995906423311304432839872303845510213798265647817428802824351889177101694259611665521036701272242573849395444191546060641146299084057872866944391283731385220829144685310096204220216806407346397857312389097745802359169763822131350815592888181433252642262375085683785816677710132039589985183462616611625075870395040147664698838019111366557972544729933603023105113083119301993235228840598647942200906963479923847448202975818883446584258652040046639805953899084537816650587278619397449881239136250341245326016457807558775368904442748742024077773412836246666848553670247524346727955374922826222371839419151782612216180416343167213548666506806204697792101873125216397880577930307596607259216393823278702887567662488756801722406200132096769616897687684606348653646406341438023280620613376023125894995593276110937063145006741611468134346798332758240682540261729221728143812423239351654429011683872887992417981164217360758897127080289737657377759633399410006645946537121577453615614608949613916082037949547591457401580005453747007881046348862232464943422053206060225208827600864960484378188496590155206559878220586543574385153369446324894344853730944068536993568719989535050618780241183254236110244270433905864145144642762103945775365429444133990935802566571191793327933883883621475236039962887740610984498959677146814612328452413499477636399380733897455119366816686520147567789876216751173285313111206242680507384891585300723950778561938000208292764542760734481902940109937602331585584321712884565214509627073481574186073056135167094706192521281819067633836991706817995474881356498152832860636079625687451855826167431677358171444341543637078842305643500073120300595889181020188601267562752502581787503262867520776040062771537586007200583794423108178147037172355389261304223421298728489504393852232813870831456652531548698632811496050328466644460912099461837757350371641594653733458090283628079842082326526271167513612581686278390847405325329270705723488554022725057098224366036509860207991428116659240368744680817662924477768085982415375175353423988332185390732169815723876489262567856862272324850938087812429578309524882147295710727987017001975383058066815987774314970288505191539222071259948062722480257228064053218846009312814325753817118205975582246222768293897275307872134978587850916445719385865219438040734511467279156011470095841000537420020020369929934390964467441167514202124356167492121878935509137956133419774170170682799925317341491428048597032980842338854553821135020908350454426376987921328488287008997378384962799632917018522359245214711648281389969781343939186843613496106263734917416498640152950199631342113039738755272204952491851691757525722707062569328840476552379673545572702425986904368654979833502519675815334400516892232166463375797047380691126864497542723801045252022663436283384242116938080469590887509926905605469085058909348778096222458671656763645412390076856643658942023335532578850656049343751457574343835178546020222844005561381540698470111197716365739151737698277502467478011112181874662079644014558239089417141162962828964063695060755823394878240957998632524198365717199776341198254473260585132668729070733717008233241541615169544623533605180851026179796547564382363355627726667448706406719018659509254622535288169145251956463280407723502238233402538552174546539935215796743953859098495069199228764072034091276227495587183522924626988688963298089036896628454965765536093403210840183827158454399608827350775602187092114919754258439362995760680412226236641823494075534772057778290603325905322853388548222018746323501760708405635526005811934020296043877735204347791576063717559397687222926499763802470274258688289553240453921959659374791260279325857483667121051393999019755980428481841164888889868887002083395589156478962794662942339530672225843373285387712667176682186898617653665458494894725073834150707285404115265269842117160705456554831641368129234621264835941257477191333972327714730192569072077268194480042520597749569671893999737643373908321899242421494161514576225509021061973867082072000980814364410299263075650922964408068488928733153977374031411024794074705218726125644188343215558568486293510635190647417615383660721100962248717621314055738677958260342628693255260926012742227736261680185806948044110544683925432504642615757873871767386131381666217076571704165355257563733408284606581655233897412098341998790160076942091138683059462470993226925763451874716550616056137895237288131417858156511838869824209604365424590308468000767194582382275868456558996056989726415973845083701691043742615028826977571544224892730674237829735561751497067470092649039873433959514712771894851118397513155664464319302098992703316686031403754044838169899158438194338066656466004784750392781340087568891718614734941107990879628892066648696853180006842566035130752264282193287480144656653973592089872868260521228314971705468552297571932750041271055455142842460329784545789363168337832220521257023488221907817986932661107889012235380862012805163878236620420118682719139254912839005035526276325594412569472435027326839636125463605403238690782105414829270481936135419439764893793194992700770247452001151443200555806948672487366754828968268335376121853878968786239520174695614704733863768647821583689586772749965101220116919828202881375900733135667368506819224127851167036870211737319095971906214413693387399128541894485647617528048782258806170423973749024304621597129560978784531935022048739705109752883875042815013048181437634245067530509063330697164019976166974997973653665954917822346171159687273995343534697806035027803280700469686384594543819124877613004445724300813069830898418096061148676501074442365697892064686594978419319029156845634312719015170541881975874327892145373996908221552232787585946834296881403155768410275069191264472885458847101928236611728570074107345332293003983076000319327047792926012864702806068952868897467799998345687449010811335478948756150914800188319009122813971755640107663663885739163139158376406275026126513801861991107609380187519903091818110145720447914878753315384949290236173318230833459188856817548418380174411617337617538113634907457181590180019616657609036222333672012995180898344703434520061433583306598458614803265950361239747682431497014510769343450124194860723183339432493760927961662218718000603809743652732203451573187844794147151528138502531430435609743194799429444201615921410372220643197128700290931300436489201883513525318711655029019883332327023652610751390343783169252657975295430013839806347289738311456179743364906270907270514676831874381235888856357034934144752127792446555786430666321485508784024184715244209405187505659020515407579267629263281494815886034896938615810739426462523667503662830768890422705282308802266197006960850133392177661247531014609021745859661211310186857886712184302867366288523020102481595165825840424922248781596681903083626887839520602469108621638823543572059246033658035579594370268968759328304712315473391297044377308294595197222088503976338853905438891617305288705319541720668029829925701125946992219743753487635905021844186197103405429720103741612341993898290851586877152061815745792419134878832666739602940111483686554992504181283879401301362885556209440362534020903018842386122226266139294886729766092280449657824698341716939896270525046926469264329766328331147722667821240553798214199908642937003901902836342779872076462610386241986395227155469707834516828747665472245720496853147448407910111352744185472940278756652465250255977490394066750188905610681936067929825511545667449473250235378344054443116381788368631826194292290121854284259805283386776295448489137855494878864568403081827381217670943593885925483378906870305798052006253495081106587926574829774196880565744563605885391724594397867347113395640585390389784796917621815244791960496913560706022898998052917690096056213677504206552432916038291030597411786849065463425799852224870371012248102616549756437899777668064735520617883771536570772110181633966845050791750068084052969762834695692806903755876057264203408881821496681690888685888976137001471616272455307493136366761055334168954797583245578483832896196694204444637881737990326044832282102492105552011138100629188275294176195528580141828741805073045379830515102431233360733723040237252112227065949397058212821308550467922564660475657591086295236779809779485941979637089581162041010706670065199285669189963864506522744694460030444239915656148564158200570793526849366188058054524570475762897587003520690604787921060036402247815242658171480287843699073217065689532538360992742758892612187391149126468149889316615093146116956683349318942547344214572095503197226929597691010343640111670981151815384559625788264745134248879478548095677125458475045697083685502167960177391733319697076106134705032528652326484451298944631980339591121496419097319591677574117034680620548342215094966320658538047822609385279723796270038428953252329022639864243061446046541624247915582691623525668205392117818535768268951421455411376045927589762161949728638529129029118235527505524778152808883920964806265581389545946469718345024915883617407271374295467555187756115879972206724319872559267187931997545121899025573862001095040302483068187640351630451642089076574398631145595617878445100778530303050505371005885529158521987416597192499159115325234192686652963817717371322289542637780859740829762961711836458232682130042626323429472790065663633929660612067086230317760401671133620680493105918163918109904526504647550983640661010715013210964124687458964477306235827943649885308536705233546048667469208874876697025446321396968749805972042723591702060240793867977626404946594726797788633307850881573064341521323219067717388196826960728589772814586042518482142465203662020819224501295817372782253689725202021588238540568814967722693821835859728837648569147585349484710093535501539805219332238852100978905719485785859266368492592884309650446748565220533640948431016026094788654554048727099227986664244927776202603749274746881245592429431990764275493614895453090543965334435889263256440927378224515868224363340191373477041114837924313627701729311782291421687267767684722870277175403155713371517516560194136459075079261400834697276992081597057791215834565449624691966098270203429927292710591190642144405169712077236371901252046734693593254101682388921196256100224804439017972990392291526471543591970310019860552163634121666536041397287798539561875878972830202019963197523698778939371628182714742601902268248500374188989521056955814799322952380659739236491958052586908532902793985252248264124982110964326303451406741582090121814530059964885085775453180792780636853443375410677317421690927753412791456034018215574501779606166895720215749754657031968938742071578836582435052871809991946651701043278907509415104377244444623912605084549827823262897680075302688982082651406846616001981618668608772368266644430440093144325257010134492027946688658395147788766218061293602255080912933029163347293856235030330367678664512745481678918724893693006316016025932858715691203032209036535884224164095219213375632996124052186002329592136953642429435214621931899340664601382680526482063634748240566511062683630489201827893373262354989265568656507197885357908043302149816198439301385922223708178740372026270534598738894476561455777766636473612297812463802313011271313901243193487713773636876002935111021738347670267593959168171097871776072293119555219525499247663537456841766683070819810476702860014128550024893807464052658337555081496064305097825665033852195994297091285328227907765555440040926038775821137313404497527470622999468869317356974140953300381034421851840537690213036541347023600708416441946041171226087603683076098499479412071243252694313483675969833979553140438852221473522024682602402359956171505744941540999322071213568570312181611766661098040388138828437943236251178749370391498099146387477799928043862474358562030004610563832890107444679243109219753007305232471586924664505902997465878621639966878478704538310818448685437811043228188873984013746126445097876002978353942621182448593054966656947389943291136354242482620237746940659316626572509727200766289681300366198971316788574362578987838399835577382434493218361855539657806941176184247464765960749314701560482176557441942187559447812113250569048101995564624237449307714802047516789429423853128606752752390092399114997490223564632574440456195910823053279995106830718932180500070759937293680965815857368518445486319462689413369084138956013006875701307580960998282741144587193019912382100323258976793792817086543069417600344680210907847848787354545214078386061791943924855636134442053524495943531441541123747199598277151292354885070318627137284778747227728866916151917307730258323932946064000966964399210260107767162131035661715639910411558066234992480556814713088184481612171978889638126329345512234607111727576575308955214476633474834190017558789414652756518792735617950043133101717701635740550126937329063084567362459699891854107053284121757861709777702106982315536646145144741379556350593421882933606486901653693116534036191998326793647738834893257459953354285766453321797420204353963118785370062969275918102943564642382785118157594951199209534786241716606164566265326665048583582050178816070654056299365871440935060284410935123423131556989590166145614278228811247423710463984250363081000999174828807096818635069960178402382250788891602345168761359221483960650395995775128568140283338082753517422713319324674489451098986267233716328198046111774028665180952877679470547661283988399596591104430458710683317814840437504740790051777302324081660433135257848339866957750699513897129330493618782114829423175427753953122712475517548323415726341632581856309737192807271541361060859669282321600458908456453116710417546936405400773816684511942050443518448201430048137751437861540504751592382731755186649789673299316453234440912156415587723224357866748479427527049129814600912818810135019342937033539054666134539802559851901935792487037433887824406925811848896768631895089518506420974985254320623472917577465097308222219057158542526755863290545131329631987003727806939422585034351022376190880733495613825646619180299056902022635027053890457291263768318327259900798766401236404678655079524711244908123762584248465371753616042644265084738464186121676320791934083944403361672698824308971249754092136117739222362879551414497093025780150136007663416866722982540611436867488288656922839076949239697957005112270894384541333362096426209288368262968596925279693513290989745238714812278409084270451603360057757935579038986538097719269342312249025986340204399753821999992678597518572263843400854109800078498907374028113105397345903979826152368955774321588574712045377610952852263627108356630382597118015194961739516948027455901917549613218769410717680331335380601011895227850700513754619724909154278628048760625566384619861833381909979107423573219483515299873415579859326799879173682997659247343543137401090479235378182079119439901754635254887360361765509693951026937431064529564564269456213864525650469811047781104192743136043690929826543408460418600346968759902041276563443525323988579395407603509985555653713932183809168466211641871438197653574153072490480344509017824625464071430499788304094545110688453143885978645769687318045066010802640434680179949077044346672245303367065037420033942907765740782373315376288834138252265039714082561608069681700402372270846734293405313845344155186720999567864274420785948066924329519719869455349306900597323499135264026986596072792118992439908251850905378888737401681696753453294809955878538848370496528579445814037424630064439098208870096841740352358199021886921626465541272890478504429803366163606199195760013469271412952185811444739887500324532729254579047622146966035126163189070177172028495467263749840859766977542764959584149032545487247092365163843003697618043064467801862354376610082674159693559571413690100955477886575196154949016423286773769420163665336282172646909561835692120511394529154841202350631041835783734992850057224542765084769539213968937076801075026068211268478307775003347674053628661558191988124162590150075231403645892380346271681953103673521003995027928935139771497311400438653105730276322101423624804382666766225066807870586035649915216229116136606094511145939294516804833424901932955625796280385741051215647153836338168131009572158576167161048671627292189791868911003140627463175999926878861842983689363083332342627627651094847066747132276018718788210896508425516306957201224429909131639633394750009901558606496765334680498732481805349138359228440122053191135984944180306708487294150781719061932161619495564821226897175430753355850732274213990191021378597871500855336823888333201692882338648857026334738172967468647602048329785706971071651208744640129848828377358678706607186266097617098961650036634201922279086972278348762187022389161242863217386057292146557961444303669065324181355293026320877979116230069585321817908059754346885967019146193157626790831759789246037151374938633637798632745402524734605420254225721718853634921600562559422912906058771266889076513191891400437794031336983306458114575412475649718714886630121295955459178564250554402093833009126952519981893571989597802842540218937628094098103534891263642574200776605203042973275799472006155671538762095038041252883168056265008643648429425912372226477276265525006597594888967729823892329429940815726633298209049157248969946801669438622597658535873669205143124478839331676976460944337902371362077541398010192991231093528650299286395451125247843717281583932476762379286062449312652516356580254851219628762794969698948992794247306284641567430245451585504588093315496056351269818121384414024085692517289114722758721575608313194125388516447755226463017667226416131575128194186931476502109715943797440652684768026797818567098174676767401689779429567565405775815087977389360755949128401375655226974977195157945786604543120987525125051626272862512592113184568228577127228058086453650072061782696193759277083925628865784428794712538428608118898202425319366690940259182374348214013241648256115170127293623489569396642946675833054378633870952711426035152526466502799872195763481863477141876957786921448956412840317601816508133828779945392255764524286140063634562535474567133653513768070085613960066973751590613510548941545009401900329680353847041573716160807875982244778472572949285291100057475015181958019173579641726794659949247829180265675744231020578513425952011774383692413690602825310481961964797771980454654130771867993032125065710848785902296964794767974673785524460887793944106741517198619939094587105902230946519202550704947673086889204140174713126890752966594290375732843457078616547399053927106368694178581912309652165812151047253249369215418302769273795520666020697702959581883172307067325975176699746783867444439393297985316412583948563797702965511352963603572848386378102595898299714100370483312689736314345342668177348704967547109143900514628205576810836669684420498636469190981650935710437028029070716356631215961312228259399930437026077048985701627872036586877821600798267878243046503929632955288511198634403120764970912766503040119230563144970278976174163446568301606912545157944571071759745715134796482923852963998894001624668829854535280421707365624202510168735485688178444259878550838179510210858520597897284066209021838408634032096029339758227979727410289640632838418246038566445156382322289103447469815513359879607276120859579936512566459361999997259739937863744497350556734073788714956957408598439614458261282958665960367083104964110697302815239769161747688088355202929087491490179579642143528989339635823478326918060290655446390002362829261261305622358589459516168604674990682304910283315287246891520577596628045081174875668690123336738786881997865776373195641249677115397306884061758966944218353610841896120492103061675244048122789868093046941906384271989479221485308637709807775653726735570016094765760067095679656542240150758082378996003168795804331919159187805036314575940828187284504623361241673931850337269377445753270576629189788128278361467706528196829048270043986340184110853840376919864910259109778287389713468074349447272571586846926180850889508073857734988922694001813397226242697489622093122501147299781655483404967817897716532598129184649659774443884148401827555892717078793547463304093059948689572284430378447984240038595220982697967182337935353566662202551282545093040369683629773608516500998791215149965994990617572823743324778679361036178727966880994382515580202212810151474224024623758158607738538089005493069514435637329443230246907589128913271640118308334949424547163519398320045496824892096308694129596721476814097900352687495789746566441896106858345255659873600694293717955271156710119034310577673948652209876855728969182906487553289656536049760515662068283017062628726823334919033133848914377203967195162994902529353773009374412597786372491199605241778499692659295493602699673027687451275319875014311068071458449532789141967721712604455710769430536580372771700951742455351710109277367882280124468932780889061197702246298602955143832156706743038361499328411076810490032013421908476048870984871619540607342109711290381067573415843340433123430109397369106363589826785194800015363385134360082558604760321847403022830968759584304098429756268737232150356056692514403235847978092751167097086771031095655829556644506968966308379772128700767022528426659518373111655944819697015354885003745192325976338006836808132608555789351667768868233972293641162515581590206857184610172413346989853021601671437096546230225233615071845707391909212026183576759186954654536666458394580028225169221724934525572535209994219211041949953798333215659325743681362742798796350770368734691379848756773675377483292452326842338177157778916661225424051557581246726264863649381104429842560161166100655736350155190138170608414784787065735016578143808988011227070835815216041783092845053910700933958517770502003215708945268054160627516713969238123494299896658197717354465568413509920625022156037860473341056657266772330730636965963632530491828891217034907327381551172428413090455133617711025342368743756665973921800917970913745207374231748649819487167658832385742822017231841638452624604324253225405572452248807672367028053830148270643408409552841840498640772089648948766787630773317452598997242327090459599177564556198159270249939530183722603430476966296853643308868214481734190535668354715805274608517472000823576098709305029977672525176090809778116491585617492245014622711430829740988484028327765543813615999495479126320312395132262211515060670180674730541815220481296895472954256116206996611328859760814034158824355863190002702221862578485049591624742106283703988152822266417134129970093553861658564705012358788303122807212144553097554057758952515523194589779003648738754417732012898560091225959980314293634536245861083308113071615018126164868307106900226594696865763261664733483621749638546912885114603588275004532587916592599223315244302054627721559145736126953996121580455094748803664511122521719415840206892442977498223762680460781026616360878331415181876317678894050000789029704101041802675090962079320024993946659438028301527152772315260265658096809099574428283009800001965643670365698602741081237617908015626070219122057408347876372517702905237340057876960608488410031145581798853831365018231320881381786170855685663735473261436669219403093959442147712606506883816359470173339243444390869898743990056221258218698842137301512056127970075214472453170820368211230930762172761925078078272348746123111257232398197078535834163340298341707226544061902261469730919872060677598292630521525055849298919485408324330852586349501545955383205424530154749601902830648316014434115454330458325625558032603783023631746304240282579150689472715829231078969408422598463531347384656024213443538653763906831941261039586191670100162949339957041777055178650509524215291634189229957521071743636639894249367712498615990174789079300068718729952881581966824377990631964432666071565190298366847855254104277423797332491141640560531847013819133607111410720023225651072827413265357377470314163742361954843495091478750027674081621971687304016083348685409809162260014426076524325051249328524363089057169631889671765084261553800969470559083975063196753819645720626068765385973485696226316281420518700677062759789536768458270009811778607443844596624289138714845379251933815017796987838773791718985068581081841993143821059936840302272621712036122930163457952510190436776704929044465232741186871790845852131690807053274896910281646059873297545967376356548985350675622348040602342432706040319042104453639023452434290260662989869281508576736389764367714177415108513708809603648361217530751019667743036868621063060832876936227414156292034905567911707707667129742618134242122395764794571650464387114224300683195927956756816498238278047954684641282429399333568319794567809942087493919929249120221649838357228403107993304623142542008490422376808526828568337671046352780958080299698190236667686781876140641462282861934161927806911477282570267291754246478686975953262112986648201310132994416136550115519440542483617071213941497110516385021821414452183767643088354329542619075147127134578695134911770477330083425836735673453029386775849706182829919403029468683366069461762379215947922024410229284044321780178302614067304352779040662391822226443315514790143186979881895807964045433382581056811574019824865851423110868991148644509257446104978189940168303769733839014613099200461376606445744826700501374670215654134350984586743747837896637471647649635704987535647455395185106647304971965448682388009789211218417858510962305635075643845704702474594565270389162751518943586788960769745373439788662569036452878102236163717598223261165916002352738487831359160635345361179966983627896009384325006229753912589154933058224017099856181856898086400485303284171394166858999927148313337544219001880538837508580290686838779580422403233126713338145346427673155675506395138293141604371585452777616431563697101318090153133669835166182687553151784307935853444005087565716712774929078142805878728454852184923329353574576331799661854043947980737286091014698845389851749944829251966038865649258618433589997564547417254445998416010427514073901349464805617859267121834589153696803013211857616288366717000015866864915650252222647443247862090516649402917503515667414777029441876592334499080007061606468336062206064458324387335120628687669113944248310967388194187343304172469271415550741411775973234065954266059765535546698212187691569760948410060852902545528889554798229242802146635558848112115957583102039840555980490234950711174767150821172161243516168739477420034640264029606576519150338007032135633151894330063869370349507749435451350287668170918750997857255631346660940616850564805693003783739147075124734375613559756700056850583764589516121615592252878534519677094719520424828898280158215753024434755149826716783352742183450829174102184564919356684022587869068766818428535799422537276991224522057947795990241122226177876611415575461859817753836858917669759230881029191204622971475100095597398647003597257461605190300301599704435467627712940073459341260366676647164649901993773391402325645012522295265756618478941629729033648557404317655540999272014507771967927398960453145565508860692793994375534428001338057555544045732593505816008528053118625814361842795201645703337981062344437562274765523624831781471924872630271650858908176646816068721576993892316601582466057429007286830634299856502736614575293043825820527756873999692838773197066831043743307926542262378334333766476953877356947446571985304316588637250025038901852245053763149882517802232573655822882715718729076657685958416492689680383464406350528133581185524686707745286051446356670750443335348589739524000693821098731472998842162743528481347465031416712102578509519537009614599029169679508239914175155433174320750821491546206865203763627699697674174509432522670888533068307986114686057952800519993513255459177154241726066486480570967755452346915362341023389351380359309045689842418169716307908220048838616985946651215647935087183863535062509685277687286920743988810327148203348684370201244440163872803301632643155757848578108610640895280337287526386325703500795038051378932451113544727443308216621498358357713120913429730887672375995484069183691588240144285917610993544705890960637537543411346181364090424791535183589748128294515101317753171156267744564442319678567200413823612900728576723571217805226293116575417779827545298665900869540483310177405731309345399652907355375979912541216431615160420527051257459148436949648574402523097104231297904344253617675154895971705364549335112278232632750042875788480735920167460896469176482533299999582054598397223287346295210088442116983475496910039964118456595554398329319074605215969169569167490835083889569403036715970871112867228239055334013087346117164782934293199064756342592898764841007753909756224591948018000707382749063892120780812787974629406728800708225325598556438124779069748310951166491721842609392376735695991185840331265135944656858304236315907169491053302912127424703779389175431602513420112622494626935431812160286415475959784646728547968342494903938682810904535262762901728716383876368191788861287077468324363248132644259151807511074762402774855084145066049201511972433134164347370761275600733608955408072338862297400398451307406417089101256473576654225455258716399721193553906455435360145426687752724273339513894530225240844562991549034599323436893205275129644762766356949340600285800079349084636520009711613930872851191207211046091826394132072553099582809869305509884607383068866451670404307877312780302244194973318868636591864446707056407198237891275179138038902876465117996778883906729582813843767377835985241171576502247192977462785894893780129417394370450092750134378711376904443175098263179825139640169608121549407967321978493059586298634506901998672714590996746880137079596433317724233042429537534714163212601103772201545746032357841774729593082112834738285362913947970977487540207322325177555111329511642476187410662685474185683009885239169908614425616929489619993543558879263941707498466934793932282422990406624724062887032647799844080787807572370358697150303851853350249330485848176623258362651089707933804425414869375223178364021087190151701313159362536102703179228588963439486298037288459175703179461399715979368516168114949620991789623349031429298273639015815522133622046661955054908364040383178941321413348305288464141404289389461783539659926138780615371083646775372497747766753086845119232993847274295320886217315381490395291934737419203629010496785186449820758265447239454485580776985217806827012768973996964629138859888700216225228852938462545515305565269941678423290821872839852087632901406861617531308120490121830371053803401742152259070462911007053840787071095711406555626579244142096104519928308526471256823266071086255333766929904893189128433430443089933721230042709354300660494629489445789099674961663753946129137231904170645377563755767479901469859457886787588286171999257153306943148416006388786356845230039353716003345287185513451150094308824913354575284799423993548026959158046938018194708921254968080289340967652308090196626680711580321026942764078225585865904771757085454172826056116538440701669186662118727678940453502516033825583571980557591545242320318178161416861878326371718710808839496425781752952824522455829406203002850750208416682464952175590680567344053418108958518688086916800620414747556992469000741428150921092188251716995249240931792937868988424943597157082434776658010603195439005853524421801210217522003041892679629034838670023946161647347205512064685203104259094043821816689650051761467147119246767267009019584435396956549359986399328304112270237128383464161433167504255440346685796767273213512675791146232103446673208052422176662805881423166799504228857766350648344235205736335937062505699249104226644364733684644791235579811040325164063789152619222159838098762409128356399452450393637369364655091157929276794382613957792344881310202072305346236469316772285490092053119141428647390357729607402500168962645012254459375241296662026806070758981266169416079108245484296281044806100326585101536684987111518659871106778185008605884254384142064161355689808453284480330589050425905320595252127944922743595401733769291879307329358814730148200528245643511975588525653648334109571116750345730626357904388164593967911680801350858361955988627694797136613073237269226432870064399616371327142738677615261049806292761487385944970930896188126816713847755328434498267816610193001458847997936026382805353944126150379311137929694100519467723337212674092613483732625467782547377250254162201079515636014580063004581709709802011389692686724591355460965517005560003687487589649338353758176322791067925640431328900313665578961920270442934869661759591246841455658756041956982976514592560426931213852172907395600741608239832300006787482759331058142455030521277110174995830623267334228775758143503918759456641975169763039343118329784049631333463704760016260534130732849702105668140025115473553888370936579205549614220937599512610409870291875025670136034622967766475212642843166228961140423383804139173949677613938210418086088187369052685159072489234623703865146386903161069650157415845034081676337090815998205404574700778693870800077742783789001439171127698981243039213956694977043818310566421610833162124288534776051463863784589576974002733214560938908248808623794551083260671462992857320151316989324125436328668506518486208358965798398177493854924214335470365699156947475353617616995241985486515494313998694664430041045201778681000492782582466889349495790538027140152980188136309421200551075357123375696517825470129670549893864249315197932643470453041854197407154360222696785835864152123377407215210614173304118340758278682223086085689126074447867100691099079616663496154269960957410693595289021443980632387561849537366760774982060817842344999974115271876797130675192368619398589020898448907885673099515438778844222750691570519857608423585107213627833732703398141777962512039702965610463533306553311997021732834172646158915286262146470198786069750018197390194074993546974552780517818744364866615353370576254611250536327940681372237998515740644284146216527997679177602212699345584332236592696044722556227690724499548458206598048001476902593023683916668236950293732484891355427728666105897887384153933004044688975184066157266637919848804570884360077259600664435393638357826159614983158285871670060101970580998432028372982466692905146522556703264143867421781794838627298210736791147236641640805796046071179600268205179347209376645101445819929594379890993040005034794109186087447507344565936260247763390775132758816646278090857086809624845768030624771358983384295723109255652905540334104761405413655161212115371616997196953856492859363327458792979494246672852820932304559026596896911001408617001132995325245734047161501855751812680489513356392358127943699589180705745607436306789573604515447411007953514926719176456875880018583976237099162676183226333970344246051624035848885197359448123856496634929063736598040467140796679594900286298549822008562451550508512129876812054320924731725480768419947219801705917394349571979471715096051269142302081854761670934658584633907873829146833648056914445719220764612616908502339270402379670452520721749170677013167387762658171078781861648630043405145218552912667643882481402624791926231896803802890065160726413972807198301593862034604824023790056243846218670867521743756443216712351774285918746175447596041558809754542284020912059872890842366725297728064402658176595780230328957814488100665487482845586501364891410959338672712513543616823663786370609554678778368239839948307060896198675032922816319501613451040287370130558632962098001509142244809644141363195900362696313063122922781377027405045462164002493569973346577208679467409630266710522917414543635067256776893654182438156420871815705357606861518589112296006826576723898402203069012512974829066034693686649867178103367781186852416155783021181342745643141565167599941696039935255845248801667044814449890686874165552230968910462569134924723631229360875678164627127787368490652215907413999289938764746104073882649607421554023683186022342239329223618906448669474698161266766140054042988418936166562910648885038442894801487674618257478761182038568875912930465216651004506977676317029236424153976207781514494883630809200026634257610766217856502965477480746535828197679936654628258051911252011991595884801889075509741530380108037521790346613101771804931225620132701798076402429118786993456098823093415647469212992475089496819707027663132364122967407874053403393297264833162976895726920973665915064401389951079606748352940840819065442347948094013997027280564688488942253058304632507478045696198651344198787415338263882708700338855365510383972147487504605166870340845723086428758220216124392337597427531170768499118869740872859996944715260824442998318455761488658263299456427967160329494134576878792894614148933525803498651873669212510209088895818377170581888288223684795452689340989007324145435554306046039781002990124426817774408551732942038351910813464726621051288207902976029362861002950036864003882145854026824604065443413351720619915347695229170695597634389115989496662577164138381252260022128437580671110888825675321162412140527614088677139665124152031091355725558574011829640432120176268383670908544085944397062744488936590375759782023369478418510738159940928630775180419861084753720272769778958328786140934747586875769002046657219843188894562118035667072800389670776806705522848041402701903170343853748164950574702631179474947956505235810012762620235971030827168811647723147089688796695622797269046893722608649468362467205284245660687090889533776847743885223086357959630502444337643552448033702740676913651041700033187305036725610289621151359873927578895650869512417188252774339168321270562724301476845956841451654639641437741141396223721280638241380036619783005867484421929207984279104447120676042044171577238955680070580589761242081195221474910027109734865814256223615376397412275321130580774196968218288121376264018659121071094676868033912656432659768946396298320260831288720619855718278176957085059588049168850943870739275269388165980707328223106474286837837279519904797424434318966519492483748167868398117637850803681948758356326803933476833497302234715331264373719991471339407930928989887291123253145023999639771067798380770973695951828870066434030717632368586449928115068298377966401824990896055216596120754518740856967138273743206483778782731515186821099254846481381826725550763043438116219075065143368617894875681619491521971689913968593734434846998129230108186155224328386474257337962658587255441710106261206939238640405529572318035402511634543986110366770740355947968405314192085238844513957735559207016208827934097011028850659384294189524870653205099347617727401102218467513388185456579096533408355576008611060715937286817230023202721324436474515767894079023455420840573695278614735231029347715837075025880342713832446485840134646346003350408226547280137324607781268064305548483623569313556873196168332931101181487616507866505545728407510863454131510686098086077821075918131448305741871562535305517081184341738272161544738089449671010973732104665453044195695735903328854666534789964126801167077604201213235997311346646923608846769326175268392191042770996629918063443265211223591316656936039288376547576731085086084944079961557229979558897812692207197645669360764422525587423074011664584185153639753149344740420526826367684371102090905230661460144078551821243266860321518410140998166704822893383668851730797655861628575905540982025531914417311195621633665587753021474843802530414568217557273928718345164853312485753372346205450638818540640342508458836618082359927247035747315878648029416072730472667080961051249471901927460164473906723486550722432435525630434708167229793415864885507270270724412455817701393123354140288218172094027304935276343034340385096187965508366098716005212457126293174626553173271380915402855445213849455946326024272306646146379002156400652122916930326041277134171305106104881151250373831250572113912434384808911665797020703702009286302719532229893435695257313099189119253965085456670005306126866321867097028608151306618221188324894754580055638331779804060651445481887077554714946845241073363498754780451039464561631599555892999516440793102181736740129043503429569079095183121691165058168081521726949232252262625332917232973476282016245462287950478933807355881804266886876552272464180370987314316446834139882957210352905865044654619795506022419592184730088832949720833813240623387357845575111921821960784049371060087103987363616974286939858803111869762862763203082051222566133252877654983384033174925378260983023624833983550672269544904600307464462850012957930559609365275068378572448423943190554406630447902493316027626011300268635103602922355816071972866020380725562210741384524291417849127478966266317832068518072542248852436107707946080099128287535131638400455976107289236020742446860378132719596248089508441662325988425370836959354189854170533562890636278307191132084184578415389037080097077305327052944995749952241784424160870223476334228221336652320637123418235826957708894244741347921728033840295610567541015737673592507309530209152823528448574998378649081824425439596390535307454243664693660127747147858890440410087392181601004795063384932446989820310482170291950704871459070461299669471346991983207019872492750436325494830028283394113430950256482772300982106796331600223818638600253910724095883006837778163323353564881285269208357686287155609968633873641928878187705140414598613662806629450723495923526292102440429100323639049484167123551664209056241902493033208853848877853908566305208902976020571289547628523635601733856840039650343058124625417316907355123471025468995609929150045981396294913969187869809469983698930001709792401645315890851725810706255330084609485693369837838692253748089298134409566287194469374445718876318138743342387607013212612808429149397415803931071320343591945328924232426411251636903780074568978691655812578261216915883779184838558238954355979770281832820010547838673692864843632657317199628256554301645952302296627618153937805124729478800051731880452588455917379652293728626257712878576706848172092438560960786699188443482854762468809890087750994098834738850192262997742494167728862381879235587441594164915627599948452244474545431498500132668697367196176729100634801692863128666726387685322830906189580603121729415790895621618883280120087394212359111962124500850616363304466309971404804619275127244455768421526315221326037984328244548984598950562424480383989713127375959621300975574868819751328483012493473542024803337815202059953113128397113157292424843161018445492400622030303773095064014515587943180694686552802129197756990350540810711013276400873468735024326994419934766136232478604014566528830301509700618038840312853071420800852762741463398183630675023816183722166051372331119302648693332836005869255087925293408397222952084518628285611942486717886920126979215961978339254792346954982149027819915575937125032438154290929758431611414193278292421522613971502771136544740937277714057037577078305069959345587475415798000246079352968717382506586283464209667493418681334354342534377088420931815588190553677565846539437660670124365823645013427219656835343719259912498182909374400790668236177869059781156656652678774261386770204673211749573840068555686347375529421914861796719349325629725406855430901389442540449186782746566809166090522289325323790092100115512849509566549468895574699739324007151355405108461561227025283228667556006131441350828006497307835022190967891640769525766390279329413078927916040486464246592965088735738009863985428188673112963806550361067818297898090321795516415637287095031257666399024226157083321276135244276610115486456885909206424923745635603807091471646172809282492512059886393878829188060413406900203527421495008931175210885730172148203522666814018338190491261495576685895337442721350079357136171929813481539731641375947423334276691404349642210097352420044252042649560777598668385123020237266848592309429224156517308508176088949275953034532432156269706624121876568003976196129140159363542566662203828688754034759629050656808070381434864316721045077416463857270460601172942022249213493883169407003694859174491278375577680914815044254294115059718734870030211508074612931707195185495796271195082157138363777280024402096295946376229599386804412904122530718868756889079327680609509886033899693850740316148418284455015524187250583510003842973971196578578211940571237736709368244391438912370406176099926256205290376682453807433184155120622975454694999583924126766677252375485356166147780408535156940713757172908138805536447687159228196425321972555996236422076322543865366481636478650557636553119051641194554979993871922308827123726701227102779867620906739130685580476240684019652973228006261507971424274191732725550116862402889694746950219783568081378433779245824309982284350125534920960166333643897731916823751764604297338882415281650138086771952336364987260952986345458974283532811945216253912786110369922098623150958497194239540226995909379970598552237115491947865151281281693488607800169606795515989293814581258697737848898106660876615189292466131764265092560186465996824994081831575215148347210244738837697704980207432744428417621775343695464045002132488758648147657125329355273501088855556615577473242850608732532947342803865883787783342805799190493486944436300364040474662995331316925267075307703647221342225746943074633528180044468589257805014666098357279591031717550366222555477819911783535097751367594167665971781140731415961735606301728448532168315779868624061947914315585720732088351779512385583014041766550875589852679139815354940863880450167291751482907424732168854574932227418196642944802387448400036526029965089856149769144029055407269609028551058635872523898838902984088401013950372331934214714131175797814525943221302744742885108518680727372092557149704651764427071244338308880892652441217332879606417485056317878746141484443435726499545479342915581160239800172621606705539012473036301687977737261727803785590856887173983969163792273126376560987155001928218980786538737899425105351267270115722189184033901976155917518714737073456188215432492637566247261208818246545340166350881597483138664007734421507933913598087895960378627162806915255988900071388075052511118015061809788409027765895736680442753831612286715600347688283485258060136263341570086789393136560089123852403469304640569414620527365760005529571892141851846925005098600675552258829783514850086620407117626372957558624455368629873326428762820877018782305335140171947672858191959376336467600250503172255434727152614998434511785442870463216602894320408050242347537114564326734049531990981278219048771180156584449245235246144997625915757734388548949556121028230267874671475520837329673086805510446928028569440746525079317350538689583467155256227711868819602874587434446277500284224796607607253388926116785341747499539215016871567403437582894543247100003079232601433178655033590089481986417757140447235587535096980566971109134098678671914361326517979876976701944323272099057308053310127701565753210657450684367094929990209976581133333443228412631783220414075345107113585858862980448243847334631946676836277209803884267413394819055484669982373598266528308284793503075562835213792493020984902092809667395270089924247950852852703854750472321192848165708398475230014666785415641889523582986101096763135508916416077339871410157359022195721096926218567147343138735265272184109279423214553377365505122504712325362877394675798839411627207610776453397023940446685264731548924494306397672574687443542717314786474658021116485015341480008737480129131262935379396306289868205271949852559877859615817449688380074024509811608778623985406186607596023203392662202314916910149399960425962618734016294757235636746655339861363158114105787444650800989246279418337682680317536538217050524785340567747168244021101395461787843912627123187720928248449584269214888580398312214217540740465391224808259636613534170579612477649701660168660179237049984734753659324305629874251861580970162406080790124436879865988024522740467643258281594894053513057805497540523727498231850934459310475892394305280816974886988101732557985093303654825142541334516750832798506292625567214223000467059166872215763562256454432240684795649799588775962156103074773285908769301263321012301458670420996655021710349651264153609531382966307288662692152849162397060296410811028396677397702144866823139521463981402743861639985364816251491137736287484329444095429525002159439164914986526426475292191085732229866234423430692395813911653217879543882593444339851030297529112928172872421869067624759459689530003936585486831743426451135082252185150386486104602742569444944279947090294342347336408673693288820359720885758459990341094041024834207947505924770435152820263744918502848532292648948693353200922506201576118402034152734100739102278976688769118977754265648400241153506886110817774253738898391321884109960625555071505391785794526364838698536058064121084462809234771845965089464508188166297400354522419909634567007219872511132144717498176008431919489858178312343237824959337549507687321838713035101372147177928759470265594025850923341149872073240249694560928153374964410109456477345784575678671901342908854591945992028536402215730338746855763066935122071083225522041064664839980171092104160739479586317509990953596587483334747512710559801241547677832942873136527393954245335789926522186595042960566016245412670356699754815868910907687474767103040806033805908798904000443769533210141361191741804346332516981526109100041012544497056157595973971449092476459263526094476836860943827881836001139118646001350730559538532938304453802731697912879779573828482822511833139989748178760412303654935830796315037870340388238823853511529850070613489300272343894853511205324017852089694610566523146772886372802561327873408111264116732914080418349969624984816726428828437856263357671243448060288103102363481047184424509907433596715376379768144789112360670975324602955791496926984039438326385833466712760266957781330183295893659760660226534225553820676043169320226209586572688347937679517408497407091925783214464462393391839977504187810326676353906024625401644310044951322002963249096385033442593093872592350282957856102371108743392558715169373423742191661369322898996901290562190196433197498422376852221760206621998103836963835167739068368329547897753950813141397724055373012060894130796232657978726497492264949546864507333795185467881018653853683998012112975822991756081256169326097028644272178806611509407587738212827268265188119497929733414329973017800079573140218455018310902304401598172828137429100723693546672195851699521032284701191756298086742195285242349115732946068585304766393022450329741189447751860538373857918257892676435317938978535660484291441286258366015909125918327621820905641146657201667690019457509483527340239092998322004227796983500605405686155004887700951097356475294356731378566048632162303806691717020755060739991848649680553971991775519998564555862126441507283581525192844933936730534274776362066445400188587223789409931197985077755311137735247461175568287623476369110453376865259410324866480340114410010964080365758336115723426513790478069911711901190970589821983806974880642584822353741829294214780184147912003926649054096026895502259542390041230148155728244609718859697409584465984212790756986099636719065858278089409191850878408317019798822164003533095684719766015842491246574778566442119107423251683559483925608778264307319813946150143244957369782241630488264457178545874377949324356477281977357109417368964545626503168025218063309049937789254246507004980494413519922540231004854889314256868641027515636747071060993292047903356210970102933854075951903325909060824743186403380984846475770620728453882607012767632290878873481944350287753867201323713454039638064779827801878492644229194301805823735394085331672988757000678275527065880947164482090088317112177345314113551298320962330188746556033299127951977245594769224007556908573611187928274495440765555154586234232825211874503084078374958191561570830407477949178247487865259021424392295696571428476195301005873612937431408916397202616547887668105296428137974278938093403298981515146660971896461865326507681146916830928794366356966284395022107512485605457267766862423815305044274962165907964450812943906287442750500116924896688203931928819443034455980188146543803744642538581473229723825796224942530062382683676891013142549440219895117153534196114442953144676594894927767065179775327110759252240391746736933837659169426368167601358691115534688758660272718741419553768620751265773052346145447183796295963724909436136027596090808389622752266713703900930048918892055992962935809838547362625552207747676963267560054023442628896589746042973746041098044700225855182377055014880420144342955042678076503151007032777874681189860247292750300852469981260313897974772998878575759071728938649127562763886610596782177597800889887348477249963626297917858514527782169329399549320923306522208895793306535798566200799926081738138660367377844223458873032936832085312002142305834075065026951666326203118909644839756492917550797689991250913797828730692855310999169513331049394046511735028787154975331758246586680308003784723028999850553527935254102846264954766298236952506415481253259876642922365680858930971740528564196683479789829419876257917563808466193005390336624649137211589772920465703853406802083152720384054829348783706881517016767892905576918079366240834339563545368433506423431750440457397564118029091960772357777840395483295571617029776694920115681092670021091290551867729533115584072683010385623101362057470403615260948826430215535608343161396280439489361721448007608090686595237508010995130110784856729136430508469112215938748539679794240190788631248414716699412623149039363679899351634399744227895456457336866600805567633808732462359715959367987047547407914059635595181446289025663416173147335430298444909442665925285129142722144183161044606432533431524903511688811903937715866851595880190254812661910986922614219793472524557263355523348147689909162932345253337962257856674268834341443365577375409172877762462630215819660111240314513563906373558718383670204450075895447850165753962944253690858211946175050054422644466130236277265731946404206914283982158147309188259979134788038457414081733730390622406271849620960907228045258506501218082191613217713795431153479037650878073287628425371799346481987206040439614787319324495079693787321496680294666729616503849558961406020120043912656237502667301907962876895324562433104773613180678051755990219115669944251932321231018822577489347026892512286923020534673366395342550775870765773256075695023361110764431148924822046151790933120290475546367588106798432166006943196565443061867387359286217810548170692883680388771251709554124508333009530772943056279644974312772319988910400840161139784267695248093567794014802208506953430859864050348853043915173360850993333270151037230373055814738500345712709527301542634110825701205042808669758963444677497776500767011155309736415543053015992452444172669457718406344166589791062387664827647746188527346627842054432389765349635070362947324204992298165499173385431203287063459976242162639179266263061622270273718384135414305680895197953260033735970155171445009121189262466021603650097463953860740510532929948032719935025238997914073899779435552168346377070760654184560109054419861768019009957039497146221305927223151917945789772304205882749145903008760157778177923697745263989161617004205371752785584011273497945691483269456663753310884143367849497933755550154671674817027701307214791772225356500864450542622512402864740233583260894688678490694320307615915793887590861320232480872695835382460352854244241063804861722440290537229584052309019433414397770264508348470967665435164975266236786823135256350844856531633853381697312965666848662746160789221095221015608381943901003064293865644506717302049965716493369083986696165555745466544813506550848858394099373238773351882845272518762607936050340172507945518244294955062836385592437427118225217974441032781995129083467041990316384713778550556705235961430211065511048150092123968945671617073384179946855463164506980930566158408010925567840090575298204228716642562125390894871072679795659985348098539910886421467692195317279942144257528488483566784619803881596632799486713390954452292157551542828112507377748631556459372775592677827539511662743362621612215933270652927345327836269101718246737330318638971731222410533554509919981478427498093857303320783616107887785932071419140975534130326314005374016540747750835228417777708622305252776238834000414815058481854793768724691984408516395732882831079011542302056246106900296722305889326185339645286803378558616699985427958445377531071539830028662322012824139034873299953903925694454211871498168937636529343913395173605263653992999070529227337039966484343068724480921560053414417253081917215533871740754075133641740051988419710470294846896663308222174884424534925804265012777843136554059692394770367768280077277799369318068278889247877625690171562225986107205025907619343107730211419459087691756084119120766595491349246166160645620492372103105294395919237388206347261192959346448222325190396153877898886602878388721956614238822729659771792273456079569261036130284522389276649522891829669175316781494507717371293614269671957946209217800570932014542900602900933078067615733661399540449322625547488085202035179339570369464295957169351913445894768210453123933932041715996193817302922613329635034448338556094397324706661169638714946352215929280069428644867295883088485633848834832818080484680508323807719348937824110825151618503050805855295044684597682878497812485611944390732341443873407057062624954344289213413973169526565904442939386307116471937076748188413560542485838279521529277180603706299477658050280871185771881342992451733409083682858045635366770388285030518183004448536607544485903687506171247710548766714807293193626681661973945898257075795807906234566018793450363171413310775639226942170250326696426898981728779179237526913888805257839894658416651089329174543311431504201162078854425889007874568828019885443262604834028104683356081771578587309162812607608000383702419435401106838842534023123252415462319414257024550505246276497372559230622248272791633915405223091384690963387723596958241109920750960726426669024954828015393310112942475048795208241753725679751397837014815883897455945142254601140133194814493973883750124180273362857938551684492260613476882529639299774165126910071144695579030787693554890074229029792683116878335992490886108196633883330801255281605975661194366145674531758060537450850248462613411504812970054149196420080542220332766778212455785005582055417417820763656719947139457201568878672807449409874373217875577268092990915813594066390147775285211108493978109102449877502492564494772634914958421431673653673958178015409015126163877842372404121743778982136423297649941200594612712601704880150367838372499042288177584032442385210409055176554747241790594095157839655190984479707518236832356131141160250856094220286071728345342580452789065147467854961391937387349864612837365538860098317019627128607368460596675273115186907478802058443452286016564467333166252192537598785388342487627646337594882923487335648862295637713730186284938423990477707889826259140116447484176709741735751822168729178845029866965220086609349281575698380261592035513353806903904212986094110553450420266560449696711196551229462924163350643048691232475720067333738299310372127079260840761478434861278870399303130505630901888189028042804035282804998349608657466466674734535133080017233171917524965790354087629223826850114446669830260429925482844801610140878582569458739839599901691019755433958383278624324236247543578326834455293135490326904960653637271252706684971000461952692098036204169503566801329981125905678916444059038050158002862259540487451337470813682226557365964823839215923016932267657481334265274285155514681517170207195604810611266139268877902257614220134303524835599689290794127239574684667611678490403691569220206234376030914726959609686993577561702924145476151254117348891206903962232785500227713485316911925492550354605304555080696496649122125054955939229010878770118034442568850123079343390291458856609713361613779647033051486597528602996743553085314338798809299232057851387736827975584901608833385101162516366317039086639983757844732553628688615055138514954175411130119222992039196570937088505089878939471867642951306449818566415476585898745027780194382032511773927631780576556819911891685885601162523915706124719875889621777340809157319765312531981450169738808438934588272976561244232791892882007604166725182199559282128042827987957007871853786681639387508064285835161322406850124344694188961464930439557402947738042813339148522220893739676742533651003347451224882309550909486606831046404047082070960571995494345633691010944022247356704323636593166660918779644628863643726254565292358176976603455045922079042286307814952069156356240823430393596955992064789627162024026406668454602175826574702917838335865058822258152246449665939829401720866192814819757210829781471155118606950958936408681598678789738802789411409713567667916467330659692876517255356446992106463718507923556379369755425071936701254276285128280164559930063510204815711773917262945175532433385506946189306558948014522467305543203787131047195063215608382173479889014717749304175565849121844361515475554874308187597483447014965215675101988909240458812054766099934452833502020074291538252349626009279520092720091657351421196463174231920527861125526785035825940877351934759807699379465670236615624159720711553969122398728545806111951352186300774970790855671902004499799674458823277853249111478780885103638297751600299364194707945033921970614567828569978491467037380767139042311461290456848859809124926034107972739081124783503741779770378053978882450722154555822953660190642657062823349748765597206944263979033117052006750968207053769837834222187009393148561159716898278040965451197456475347741183476374603163006633476771373183244838202463322200108720348297326418918986714551050757809418687086459026634319393138485330757206456521302913147885849286345758750321749388454330000255098309394263632585904850724967302712755395571871945729900003730903488643836043561609497667914963191521342066762014337565815111236012185601866768891586509612283380248090240906641602391928392323711608566638853332931439803377587243174865830618056001410791575393364187730292456176088930152709657560765253617261899561273411380030384036618173220424297570607434777471224519835823418535919869590293773850203403182315633638014687133459332859151852739425377474591185526982093486483050941640512097919727308552674517942981061402581823779060203459978969970670266713992101139770470902867152890131612032127512410097363268907375231054473568402611986300405501809488939317004602225716487368556930070133762806357546238586492505429152891185789091979311185598355647050792635937026183609929025305565465813264069391623338336834344764430717472887317899107126171336057101515932131791551542956066646134921888056907300194125472647820682336729193145299861867238138814149420451965368478202004399295507291548643751048994569316775329525400944760778626084298496880997030391544628878254918563988046726752533981057192240081374552676278604299729296108344387237047349987033781874815255196750006852996855072852008633675517624331413291423108188222041973639324740231803324108134894493157375235650118521160687557183955473067683007377804897193001381877871168951717423368187448718854840088515908476962339573320387729019203554408576887529429102149618963637830249396375260980528083585050930109472515124091335025146596081317298951926213775184269149971503947895159497711649840136470111457798751831301285907746905096976115720266036730365407919168291704518126882388592685680866799567409873615007472165881932479844434866600729440750356183989153134217001204178384205448180242836384905212895859164288540655523922072836274742508445734119748473578762063914884441870471906499479150466551115844058034413272684173185665558568479999203417443594903205846234223778077971107352430776071270078139756283398245222142890710822810140413220611797947995691157778035703467599881716892501472042416009377972307677777988879661502174665641130410696179124899489190609789822339050802277732363175214850473042126030860242109478860803992924494489890131052743028733139708048943724971866079184159574043520222388991356348477953532261539916452856273948614465520227929698822186410948849739964338125061446615998307812931464386494292365511373014195713296646288748850686207542570545264780784318743510674732505277012197544988273397058569990495186482725791511730956520723306138408721348864661187173012469644680387933916673237197964584634740453722222944351348210862871645733988241654336189977129503936503802871618694446576739967324094682408601273953743647198282099147756088644335205660984450247342109682236675258148022353254791967061467486125702569145949881740789470810882658145518628193189185646896033215347524683756433826998674369749722549433697516713029515434044930465750662329216703564516109465725273350893268966258137119856051983003439776079812394756472310234134692786169910869654752925780128093756236608850478951945668343671221439043628201699065633432978167453753470843505843601288454331714427137448971317134839296658744862681423899030366760002246306281616040849780345474805559489228528365385003100267413196307236420596472927059013634539108824801253935431876696309086501644164991441978782321093955062312551252117158961205412105409701192239881856003031760057782160961116576000671557740180596342183561784468073875957434713783145653644554410122691775608301988899120471696648798496337163482366782973875526232714491427901989024361756083077657383324956383190049598450743214855137805083689138965092004519353152298602204215083276984388307280506425782459747822061406250426796539278114672221021940192595817504955570296011233176801228501601870242444677077359056258578818502766357280933901871868841556658469689665767682851199248114636088437913687151254870004323446094213057857955238211736646968513498229197547160201847005853951478319469468447284277829231217619814530019434595019504504177167714435921210414936995268893892783899385987771186963420294914663308705835076470283400148114463687609398273433402534427377959724809507182767710717032731762237672651678997179713631448905260113789905676265375637949987221406878812921809293526584509151139178907922230588940505799109422387446119000173406991142405444538940595092251367743548915601205786162443488057813327449573629442784809230865420852865300543705959514123451248524063257228668566660895853564124187303661977887168587681296845425476760440992327218395533165606005091143299143903183951543641060373951092163762038040215644870354124885431398841837257774251096412330037016945131794604481364163680079816271934683324563373683958241618964376371865845486493659608707753219947118330716152756506227258844925924573887412142872926884609758621819734148631928302169749774509160967138077516605435959088278346666428473118673960125200896011030110124552432071461282456748849149516517941284958312912738588523955645509577957115887835656700872415922727518975584031371013874991819701629034478388203837181963536492944552439740398347975093584295874117120278769515538570751826875696774669087131492690635124348843086225529850859664132525056150694480516518706747497558708626388709408586564256979291569804022414954697022771389803937561868789820254995012704109079482924882163137697085124361833822432130871533684086846498877359860388876050156066663154732290749781618174853675123847342170341894873908103281110339365487368309655777108175244252410375442478881527731266825712658923979724844309831427469015082391720553725704479335630720923564439490691448849962622570154572276424938758579785902826541236781742286609122783536687166525255350137339598406365263152734230064369940592022821959989041895314992269468322139657356870384754241592370755796736614113369853194043488944378513243040052267917056935065786980139688779057695148261330090108516664926677140378449751272908209672946659493996706023839608207472976625221480929491230595003693956584530562346053330663101139537004967273851263815424399348649221624142778545676810964603186241335599624736008680685739420496154435995431832381979195615820267798248076715237253476097447355566008783085567957703024588962363845808492671867497364301347449497192115078078425616158225292658213440268844280502572960127313310048292856996467569946134483095217912361653466499071856042302671324270555995267809436487086334751585161002226942059654516803812546803143900318148030511924675800387746221096060510262445477928647553548379317472203841595414132194514265755951468867033151024742959069279026690819289542995446289668270598685104571161494007234881965176221523908813464915604826330550779441650055988939427356721405556489475115375604405240046397486002300564304318614749787110823150684018129269578271406642153540857278980972639114785080163582627322844429798071365776812436537875341255836352850264420812625409747243048604408456302252220900253059509700987325038407328850880773161178158267348668364378585940363526756299296222250134433996932151456706986206308097839271572244027339198417277784626655888374923652245727522225362321061628485870441103471781253458503562234943409392544761315975665438972596126142627812798803850942761833001933924016971635104939711599499910402058978621551399580506525991962869443521527706699598136480587488773544428187692557847350712738713572087959217216194460186211734268715782487382691584642978268191594731310364497798369313093059507410770162607806070722148923469856522073549176397608364996586278998447952488784210364702324594064136507363776407522552153972005655037628469925364174293752870571311642187917948247083348528293751382490221003066644538918173847011149370497461159452413255694275059354989952876780794233122037829303437672618369602686098271859788536227840591302083506390957535199128621567791048234624586742083044251770406450422795154615598625034458881954493894662472518990030610122581044602098686008303146514525481873763672823879858840746340305127814458204516494033514405655364569559760161963536103659912768084859828448933274561576654971096700366498587205875448880336153615132945082424891375809899242448045102527628637876512519254607861119074988341426454074931217836225875335234680708688771288617233918754673301079025092131446736277737930004853527549628509425052894641470217675766864821829600357130962986715893592215563048429418133003088526752350576151794154654881775370614547606380860567930663495402987741718749828324795413453238317548965383182372867430587556081601690999539505764304161421798314440114320826807909551222322324936288758144063701787065340417134759738651250101319827196924054869987604481597457985418570362521008627039013061995964874270901510491948297140858176167921977622025036905190272569386372676749922771576115192388425471508566708575187070530392810817170661930185202675824424458863928288120571515886918411488996327744290828936078407757854007886115408021295617554289499207158955330977386353236135674009088613436972367509557360575737710087111042786727330443552154304371212763404483662706886581783421817297087911482233573970627123260975902051202175196560112131936490498154678058157034923874782213406451985041306524687165676710192319790963588074117854569536619939641173423240072523309214478489107042162527565280565971355181667190744287313519952279431058049059512244527809833182894305039517993923005314868285514378614208874975733552652905966575340311584170837537827367129585992621480000221115749331385094197699930707378022503058827453954993437758243366361234978664259044830501126843492350058622792729859847025683420602579402932484822312792302094961926577773851723250832871551435352018356071000643911191617434863362058354952076901209498006833484732162116270354259372048567991819534158337108829614950268895394713468902476101928159994640916502441479582541091280330728333444201005609024722111721488270953604269034385642654831807684269236139101595206525347420543881674069020797061637730595950533562463481991847737885633584108699440396664491540202301247133091057714520803750167739451623374120488517229677589816178910886470579275728667494689543670096184661617185499514038871413286395081526826291965583377305291610713562356649034509040576410589889756302514850288458858700347579629007440041310828605880453477282146897377495925458710955203835168377094568162361889136330290285060485772126688454038888281630099901689655311063889329071800144423927799787038793496653545133300760694710942233608221390031125400328782980925938793168123712939822186127064705080320880672623250631719305704513016057083554643631972813857072140934822868702255509565834089163860757821165593451577278878305598850061245465031460199766715468856993203916760516788949591823722605790185727175374463722627104188944071784868019548338896481218490093171900448305786880991106847516445104871912504683684549452398517534017114140255382846084168164477225596167929199547370767983556888841389878456394197845399217268080763014556685260921568280898276566602080561128875158319073546905718667500644733260624873614360116066225520357792380380409252488390025544616726313663463365510471950588971522776968871204069103929677033919849430667575342878760518037589381519894005177951742774228039936961000936564250517491437798092917665768239304975539519145003273349017587878388301831158630005714402018929290635230754484001783635484697507390175279136442173295647856364708525261037316773388465193578409410206872582865036606310537420953111988419794987874088132872074998668377761543607444812447365556263244212893627696155946878411523397056329231652388639056415917162746732048741773234180478936273918770620878257095930862795383666323866258508814476948717873737524801873099988940633589851893723211096577275151152049044606238349853550135437111478630944875488926418909446781702885690273166201380262667993843264195194476577859700275994424791566891684333351024013672207521843728680329497419489240436916797644418223949203901803310681019058013057050772748509245950814879111775344846296613356453233811200287879200682580069563462097010706539889777604063583995821375745698253882150027945631296486090867369416389873225292008250196621439223942996393272117874595325468605496234092313957825804845900969998356162803171721826951282694075019577043237003302584636884980082470317244594314776657995862337298766776768844690887667899600891267554872565438932801933705259409275884309718075747774889928741171826371257004570983746284802372019986819544665827428420415833892185127081906293285982707222556059068660817759379435997895313214923644574737887256473321391312651372595499412647574554751635458953408099214637789105674849391668488216447801833690981735975258675351637280874714671336467520400601422676403762938673921209929206609792208249382460078647457552918133421358528551305678021653730347897741819713392348030071177965081564759837182541948116846021501604313676410843467823399113215604743731799799585673725902780696002337622162883089645087462536658404379064330434851948431251987250932993374806799212651614871854165659886202790003066090395917875258347578181867511185278028664773835468020713320241407257466694374413231505528980769066969066188190078986320262536908518822883175949985833925518799979066049087694288362570872298637366453565527570368113286161620029167790691085941873150794082125369295071683837322125286488758009689252768396159484801563713357363144328411737671688597797160511323787503498868515623418194798744641843194599623761647504424233656538119752490962646429538458344439185739411340764914301346825533270738800155407249843143110408029549924288733203826293404631830018714996217684766635527723095937757696766684353941126460111670429929331571190291882282275058305559962614697344556097434639697232548880478899007643151410217660831455923314599421005753741207211496342168431621857483122926522035042993152007963544439122014041048687326247034663690943974612790793590449157362939600567346185749922101583294865146908735426302613115811582489881866323668028746404049594240591560344080157528560573087030674759449903617735229059783538646635755379705079626994773351085509165933713701674527236588280685484102169675661228122287187386851261149850764407733093829465225755804979371665233410371490260703785576458727887665164585584157352029504478545829857597810935439441998727096689747528240914515147303482048446406387153041632873762214332048018971429529403125427578204286327590831608504409335345277417821929113015055253999749149948155928874722590762596714584179217006125514161497457905587455008891849598772237105050159458007456871145710329764838837235184947190250778846335193517154216959978453103354432231603114211047505134165984213568665652634311055735247422465421146508059998337859405953934051752020455559170995084066555302168606584069146700117822801903524632825943673446421134408326195866236782409394186268052567878877838787520779251573221462737831269105092581823652123105039531901856161045663388009324442371376851074813573799708326783886332299449871916276345242022023230414187525548877782415275804624888140281504602636658749074237312181744961488412047602963985605026792716420558991044196021851736124300606028475367376678818494142991580532421752044033779195277111674958080029757966250162218383929550978257779679684462761697150137467767266428620169943749536499472309516714775915682434462087004898464633292000553726007911135820948536715152694251883070586681583640399914322955701434836570169774345691640442132613972784296348472447286656446914218785207825350408300831208198052397934704908535700611478032241410019223380835387253967565724943120867552960371966088020959366466408100989823378670337871580180929945053272343530866698870278646158864987996032442789122417816047161422853789876156456095989624637501028317797844812045726115163425809824391316309493954355459878518862054222342729515709430068537898063703472022787549407550406947462609792672653973965759481644218137631373725514598924925925230912970697002124101092069705337022106763161495822044611491231326216111018306652462029003487085090929301298534638529210950867943018580022638343167063167634438712957097390910018871557215489570023901009289355073652994246447649382677863465662113579912190248198542430924414372050861683205555985718876833254302245543430201249161946566819078909423691244652358223315110196023376101625886980871476225195385762103606996645432046439077538185634615306402003667945365846712520721784277577139954118988428505546933722683599567475136962916564825525701122303087137539775489902499753884475314500412074326231537686454626317275264164124800304588029864320098609042742616089617924373859774477226477297162967253289404377681344317234872972500445263433652786587889940711251747569604711920212103606093797153471215019792779846735787076170559108776665102972708890861541607548934196452445917964490251163089328467541736770036201682090398205360294467833046735643643971503429694572051491537254418709283987392524106843960024887360663151321600832493258659587079050218044104812090694993575686707604902968914070375886619484326211847912384132070678976819683109958524140816716077069968053789285163740972315993405885172802469721938362603171700006554212731982549049442690842475775863352949492026312426308180114702519369878608007070113668485429696015594542283966382594588299306613900655038855750364391389627024219190359710339603140286574749564931840339211493705933099177485688381338064775400083859839598348954585507883579791264227353542541524116230254388094900620283151301339350429971044291921849761068575785138364458157044291399279897130760542329332861097461884936930076820650382072861261980986169491172036783450966722295521118320529459783290303900821095592401341609285087780542044989514018253089115874288755380621674878171632918842398165545255515354440350194405264744342332257065409623936846621312939430625878698758942011068921402232208747577705234345818111401411097115561495505247133082280305286460311754196948814368452877434170444962213000428258768942282411444947449381806141631042731033103306059924916561539816023736640612085317672952425970190706766356819018159715693229518975574791664266573592587695742744477926275724622933034703828051181327865780774177848927812029697905461704994701221901204721690223776742774910838976265106153737918859520215286588140994513180379649841623383362181366197205473509358303544726340054006392904591424072915897382532664129317245825739796532396586405923175663501979925545442558760957824434981946000579846447475872132704937846591413037072585775599487040622138395556126444675000528129922845305473108936212598955900608125843699187491251955723360993675572162649800412323662243363740121969128952009161791591209885711959169421323986917271579768410611817222433626968893043910549038414021584984850755196725148242122271782852122468048208400952401921383279511634522097558218278627171437757844939349714107514365707390929880790172074789170627367377785805862343517813054126809079296324780913931604958775460001215042281753257114354549146518266953390076827458034462717353131924879136860305511151909116170791303091437430944668094599134471682391126843362968585833585146546609249770562287322368462738990817535728702241724971162967027150724739870570514065525403757563260520607440552379518759010543987159251796827660020703930737948287988194934560621163771285983128564092754005470635997756772349915342727391120664650605644354410098153557715904799554540688396384137849215263508132082183154450219725950149067155546896917595160934724104597037879808434873075331216375023199430341769362417072946577704706818777282548016432146675741880856031668206023516924807465467234684331035352863523162161959497334074571722986322546910950757731094246832123339590742002962159022774187149141723715437629421504431619513035497058866390699077189524612932157569948273484048294331100174854554425874981809659113392169883199777194117519745068434354690086663348486924547823710102947366127687522851609150683191244483923979244343119732613141153656961267198160904154244098239256141428587270883014431266426161568472073621959364012508132320885403519564632319801918630348876954547870892297371413755758362030200942045537417854513743387808475485458950158932611721381821379656158922800862096798874689334208529493693892963780349145929530323294251239187277296368608347763215286039076311296002762523188547384474699946143812284951702030080105615231058751568261869711362267045204974827297213603172636155545907636271046435754105800443336177048831946706187966126573342678473088115688182096403792877459065213391519336417848660012685263170888329502024706339755620126628280396017996911643904076080507776176464895684805077575245622283151808494425858931384825400732190295381138281169966137266183110272603920705646576903911331354434652791665800643006738316238109724730573750638684639412074625312405395883257114881720246505760515687961172745320565704047175154246238833533575307183388175350003509987408313088845284197081173522202366540271053231980787747691334620240667007508520468579974166821999079956114539222962084897680019757671091506271345584449790299848433200002320461622469406896673978211375649744110177557281536100405863778630614965881260991508732088581980878720700887308657396552504601367447832695621401273357199389071948463230587589596666100831946788217797718449835002571654028488192707043905556464159497632910344113324421022112075817880478178181549781621726766230632310523395341873274968039803671451555343054481819531324294522083414236509498203326768752251470407896295514641425386336467702160729685507919109459138830633187442187380470634596430675550116932175085792836797509365218985163122771754818673459818418610067834288942292712397789912590937845418777583253186562785586585752889660350882380192814591075242758826528723167934749208365761815386569708723242190392723883059564086610782137679054624260009030653922086627039429109576960466980882210243270187023962906160873758579878908323209116789493816802100699767688560938688708836333101022975132972586524512294994705068502870879872997324772493025757789102420680229734043241344256284074600121749883246384565036981926979904254273806906534044533139880483933632164408220999212747446258355924127866048389842251648781813798295234001010182311221567108850120373377231058502806433469458682296609860837266911043746980983100758454643985908078793531544003099008370454160929881963749156396668557950041632373080523099825792702908686254461975312695813778984053393125114386367914757280914467405183378600480230231691549672537087843268337244727064206591169219488692262488637921597484550535929190501366420114341407584001077376496372418526694053014852820220227661796186167561900195113230160581184184357848094380683565670641685444434519758941790380088618261334157800563262035176712580253021343532070880260510996751387284372916793427621022530999059240767529740847255009205359562734782605190609299823998240382425069528223151167839684224238886497594613747891013709718946567363287196320643456256646505811645187260269457250063334104733465969456244404972440559392069951864486856226261986222835873362089145524619417573080181699448489459478528329900240228512208549787198919838445495961875876185053776174742611048855379626887617084609467750189845954700843623601249355003879202771398154934950652799995101802730734433040572239834440312657410116851990906655834472191981575330928069592458854548923190565150920049777775511193453865232385100997656965836213351208497998326149536827952059419894434939042064208981568294505034440107654990949935626298780897560599784750867234387983004162877016066558093214735776017859951367076081521081980510822675009044329942249071989327859292649774970658766819462254167017652487727693644398883974473156952247014964325368680216141334791386160395901936666709547097904560927759428743697737334287826264924176030826348026605460730922322821102099664197630170408959502287826678413825470040291167776122244892205046887673466439883008198137873169851902814742540515036839606074462030444075448387874812304891129609213696123286871558492932185848579812606476655219316121712404295260438156152022287516542349388293065944662686803741583609894883500752861703705946299808824266783027600040472822120214898115720742879416954853074845132758634694465978657717241777734548581639070414236062235971498773231473854598539493153008183226048612767521189307375606057598148876363515937205899107363589615374361180183055186870210934658543915400608233971773288609931169054489504631761280163383094486405500156080418226521685688384157330827642174004744690174211719703179437994862023905734295339660496948233034668139067005569777713273288065567168698456485732550768136292505167110103660365215610677890592025189467743931960221135415616150734169506531241349467377633580408909351204440414453571682739765670480099603670919220557051497356402998006005236925620465558573589733449811465839501114857950244835452858170636627758132596565858618983598756168473770122796501560670724441963213478804363898260037986681404979357757286998235487730335401828833552440920129882736998522612387213489563420013847688448607812535910331631141410152977038572589227962787080610085943610673976288190587160555778429176519867699308333579907500058940827917346761297557779782646239412502419183922306032922544649462358619377425319925309355348012343872416136405299683958082696800788190111620384715220945701716053719297561277633322963970272446794533274484113359314495172484443469340699105198862303181962315145484799840973426580369289961791639929059784029620646606015569957769424930186684446287154651298054410486422364229770592513216852698374939928298512857945537010766486346338282243990576502604283966207660746721205951468064201172502208246319172157219935366873543082154628795959169296646353495094144546002615571005199752729705440043845422514436375721799650052184582174456580570548621473124920746934443129029821649287368783245058952127895036410219486832187750806468498142074709034394114209612274025499832550986990072315581615601567932161143231875999599998745919197504069137111364695985590783123501054259046810803013730441903212110011013262291284803071777133541075225169684964531151756115389315642889042696421271187535994497016586354660482647220319449160316359739864682653738159041251898103952828344827748393330010725084074259208162591678269891437340777039499560667134799103673820115136330558944747827919704049621571831160779362283368852039871667914149032043597470684100024705069170374837626780686559354791129886759335581641247650725186184716047753652052579003655656857943562415245806620862864432606092448247806990723688059865422164504830398440469202413174796111069752192397386500107174759511865663525151463229014489278242530421281125890180627316989860604026276750798432182972801962449957710714242528408974419511665770603926933125788275172558822766562790429090164424741872386050646910264203923441636723933618805298414671333897171381119664772229323928273800976704777731025251373027576191937982182029457671262085049200387984499043257160152655982432237754731664180621228574357822047354079183543938493448804163850726873815285634990394037516741871019901349819140581686917021396198347354304048010777459146574931477724294940105981601958066664952705136226187870397594282772916198926728029456746031549391807566717829279494099908048147110397924710050345492732520184523875700195161237174414251649230753206691839432558961214666894649329314347858344221901112534005322647468151815694095043747929939657013423222014348956347735747726045857242739685312103949922247761015864071431349305018078393231158335491905833947030191017415228832384034037363112487931022911752273206941786416868895650939754941934169987722729559761068002732089366225903973859453244026610401732288927066001936943758162892998805107058482708010002490221578173934983435381327090207674497965703495834579362098916561711059664628284148256101775447941796217758898242546256200844750474595402366843677509627122026741259167749636363846675355966730577317083971251129964784790752712052417468707369131789588976471532353908345456730315014755591984686219828533117516358518003899300236025807872143699168589652613835299042996713314596477472599173959921476224584039591848420887413359869733346509467651474852424665121362190972130807106280194776015636487990237692120805377049021227177339850662755697608571564218268453297258736755263163746771976311217441811153910160653443549649953662406313095050879958168550935976198711100421842446062141313563545721866925181267460570900660454375843737221456790520931263994109569561639760185679327120325562134186305862645839161020179560268688858367177385672805691874193610854780076688087670793350503448416936483642885083658377562224228309144090117105085017065087860761194232687811584859194478032217735809845537888930011331175093326620009629249217966490966458997809573977835644373841594864785606611840177077772389276821060268766370078213541195411200306310868015782206118845521051371427960286798405654220475224500174728640094337399377173690543109177020877366265126069196290333886794974149810074967546981835046528789458511771915371538200549823482299668799641848256270113064520286907217178258563283317690455893476007878297661252510834601642956844433569993704853073098861600267919362410810327425583456831139911787789465647975076359878379999520708198607684308651304369712620394436949009081724128101094597662675581229601931248300054371473185163640608152033843431010161476423533301515153826378595645314416314972605762267952890661075870786017776075452214763842356990265388959756732072289620589435845786818208058655299489740849010100626503629126765513589636678340000001329376574418194025879880049516782448970765734327297872129090839813723172693551601076815699385255360533177005384685325763491087119455415302650419589408391042077593718705767549403208283283337414619014051384333745035958006881859693945503621522854955182321408175528652088585821190533386666228938303268461901805279179929019546877815505078862231102343633638219227120868561876181527799770223228979106109131095892575962080253762741309035379139282445906091570507054122357566589404822366869279756613645739479121761616786368081432476060788056208577786766236290055436498674654036846865144301133207621381768543983405009446559254499597186937569984589231891011667814295729608099393196707881999816821756838256445807910374126394026108958993141739858492585604680435768222918124970369209995707133573514238092874863412030886877121148807201507932641682426159632088655150738760262247657976906099770072700595155639310309977955142872112437421805507509886131216030660527255256427319282010856990001390377571529909575232477039692369575116681346612560318434192926674298356436876846706508378987987830298344844572273634538630524338095109272199672642513513387624194974620120149836794522289391376263121419387672683785581629905122769624460035600134421417563111708044439728224690124747428421248559180731137273402085542821382264912511098481523140428821437575528614660625478540187536398417462237731611316105792201809824099171613562014066964155723240914662134508253972239044922708073650181892674957934845381895864857892266054984321365605965874377480619969923802986858737299422640931567444404850237799323907308161523261647317698487480858757182953399779056890061980800663481650504363872507802298958770169858742849753725527438453393841063120536766851349915412168148955519959901363103816971265373372653139541727770246030563370997803300367834620648453189987367697553802564937876127569788581110209669713097299851110757181534117353351898394004527192918205468096507720687560846346625819996676782884489839013984462253602192010147515456898345159076663920219286679567200404004285692044287402755240528159885061170859900674079136040371245086327375439091960368283733192091159841816061775848838194956434425825810918547983253132193489397618444069153486703933750180095298171001397637111478227237205567796243578624204571990046257959815991419180210585651930053697480715993584130312874801094307046565491440236375955546714575695415117727102508235409499576586308529364399433416241377188360439154149279295162200910633774699569418604522756378666582664290152735112448701226105072864943894421327043866938163191514150381770121446209712858051779869991280608779986211596450896684239578253376587670767366635725702257864241194623587677754707239370348636706796061990550765256664685291214670246618144426951825310319547086970364373517244289874627482408192473166964987983921192237741355574848288736205650269623014529874742503415903129080954569834117667649364773643430756945318132287609686560060136788081453619144833128576374217228273409352255692155359856026176136057951243875924458867203871794675206006805099441377456019350315991452539625805541333957160492588450607805825307515823887607010339989584264117316928101290038250943137918589863358721436638368843631455750101209499590559156288619038050445340179462607086192675768751469936244199696062390676001108771473732684939237841025895991382068806327037621616454830734982224631214947511453994668403616347343951613138254084770415797982217727937509145161453141662362880088171508320512322483679565071830021326551726195928602443056089478900474415456299283572885661527288242334289408572210643432354128435039952762210727820207494393477951977420649646756037867799018515586830197814194419880788510577686934152831959910396266598922988994629752852754981456687006428044433053010277824565089429878233374937790044154922990383663572807745641566625849321435669216453894133045037409865071934236650998195553166855388460000525560120683093236649296122996565944511026293173142495378318867961679851187457571913223260385412538785786747992558431284046191960773669167475243021909314653949000327291235179565328293698321707950376327392306576011365626209240823795684360945849789641132175074509421617110610006563404050011691622013654814118511536956339970314827096017289657900874840872343730359702492731724987213786219448972827287250662101287802227859280872815218478926569103046250001012757131857008835431631456379187994194045694425561348877708575886410688748757902249636136858155319342261851355916752077722204408684886081199106840818882308691848368624634804666778143509670024108880737250739396190185491009462221067732404197088807085844748143264720979111460702074463845326819974268020587652748723007199860232475091267271704138162042268242370732605523786693221248858888724011361961816279617758435377872465080907267668662556674667200725968664977510750416575747426910300996747935970560859008079701319057322735996673406731825373956173362513876072330335948343347218970637527576552768895786779536777380755045449716322171553945430392253701914276044579354883755024854200291692214983349442035742443979871127896777312408538708056706021126778004150958798993594564665012583416613602780602742178977729509941232327903121568921257534167466119765353008264404948232205733927209141981908908495342008423149853755743914757943841273432174076699535797222627080920593481265112427440836360650043031094058402381739441751048428168809588344521613976637654580844230303493524150807953544864406447949019869408406553079751575402629339646010790949468051117947094808718263786495926208323232618741514787768341753837227604290068475858393302779048682981996160975200981134303250004740762239796062423559942793448745527133532562640534930825281750022047191332710601850546808691857634882639454828643108577053741345912591836899824376607476701824741794641064508057501426681311197240174868065545092827320440179200221736059637784490044411452944039555115906641369142091212436254515361608343807651821550584276737789149107243509980929045761029242436658066193845239120789572362346805620053813801650587422492775121300577165371497856622890370946167070411786430179582637413742010507034341967162324454788317753597052659896592536611913450458681801927031383597811955364335987232859924596973678684513904619394502391587524811606039472521729643989748411200701026075437990672135187621164308625429890438223572429093260875131773371869648311759180417783651616734183991106729661751741863789940572610064481060672158638807433088089300052243884351029908990820268962407781032984362089324568295045131381339089855799116534230699151056232558642233486694856920063317871092108067833893017345131468302488185953804706124647675418400962865614259509632331389516367952294774601136192183023164659259425235179993581906188973305999226537607942338440639545948087983295853280849583391137339877676263834040519787496972491975992522055246538326326557942456180361069253199170361735879297464122881788327067416620148179028661353285920111479816416486563756170664190577713377351937676088884796284432335786551292258630627154789714942095044874649956546983497651208707026055104767517154644314789498418425097987906018575175365891250208634642489941328787499784243092999521772678065024748366648436516892805490533937174180723381915926140056184669435352724813516664059097254951222562868922123817365739710587162911018261711180460129071907453200287195095642605388593960382422896717134718074423297499648226776270440717106849364809021758389550661920996642856743923920925536627981924858020794353734359468715278111338756043778534846476903159501045547614747350775373433968246487820495519990834042086646005509757260652422878526165486616593607218299618820801756070168460252376461936048639548027221414922827429169905860753551592924598076717314346872143167542313455452595866603988981980076558790614808672961271781724589332821774608443375900800090231869818635766813682481879501972817829862187520139148310382657394583335872908444633973144957569383750576017832753242317851753662891696241895430967108394074500275570931263615177114767116308895021725674178518722683912291718289825097052519723616568028704540788667731113848776392222817266497536345494526264236190902460842168596861044329087921904944967482042605218857551212349135315900216836341694036766853730247982616429602358932241005565403969711333354389629039664268629608290127403628501776887282435688624404590543821108184658919638758584670692007966873983598563717665243773065846820749597794378519269740057197473917272959481936758529393950214254270030749111983935039651922771784005485895430015480057777399077666684489156198122348528423782699963896710329432284180473994164595659917087375016069402298924963292297347121963433099897543378302411564357995121596596081475531891755317456458609860354420951356464655239604594821179424152307558349240980078481679634630180633151558455076313090987637314262615254256076270643573452657151785218438226260062862404734399849512251697493396601681401156221287381700081948753587793166214731167405536085875343028538407751154581577924526119816091691884598055300242085537394590376098253932393480645028606932842644192163879092066576122661060216323227296127128239876553479775083660034305498079452956198911137055102961700640300347692057836901039769667153088052022867034215316294748794320254612268931065728215054239126814261569716418524272915514362137918286062595468490313899122979434021834077502895549642991248885288197383019616750103197918301192225426473452740601629700311723126402130901336346398346109946636758233404023006777992066578495710650165689443676728507254928092647924094717201790434886295646349363183125725080157646374198898476906578177396370468045077416491008738704131567692750896201147325287685700104672062445766541154385344631884676291043602503955974163302087332349578664416686206572492946009140728875717539217332449216605997431524442174576053554597461680722584437732258099191497080030987250353205658461024627471482600361052117849922837786068129758967329490027480569432524750917326052038554187776044789140654369748023777807495362453550583556575191090359474215164135785466098916262384804697412546852222099087295544772109321278522737647274789783136670024920991814203824015387712546130894259581240163293444005578807430597272791325762505671916256558087553164691442603112964281916391186471852946959520430835112844694513517395387726328030066702291289462616357842257869047755898114641376996120746637771825891327729279705817025263026182641715026621931986894909921178722107248012991788936591614759787673112935285008999028431524924725133211499810213927966208360486976555233223116455740527526571597038019917273391384910852288005570373499830649980664540961584792488800522035345800912246704435311551025195019809356715328665129237576803327416764301356923871653443058481639409703518820034806406693605961708184375202341433075633504840337571936437263755779577483605634602686880276864847193744386576053472854311783503093165509953560065570269086519084973837949318452589486558794000849563666110118780166209095734494504797987003255731251911317128474586625771794279131399983363494231417719746985930221745221703569584273485119938164578466011015138345951840560129171974162440068501730095521150457875903512607970981787220629624203247765451246496275864025238273668841795158792187553942344019374839479027853455444907918779423849617352971177697534973479121286464965364227653456533533033604139487945839976094333281311692952042489389278732313655250100017774180956851689327121924084094699445870330922404659376706840713761855992576943693665466869636647876395994189143821088862684911436032584888394003189169957077973217776620314001296174353366495471871827258889037359072288720472589843880678893295720875810349150980120921032640932114804507031799743759268993174440972105037341594665730275020616595855789474194066847689144508964777246529952472688042777904265262779882108857838718954476536755649268672201574987577691484955532004344384635956962235428921654227110350127249034538796057693822154523130803170565189816930700115552719169788922309150547642390465374472061223921163516125918808086791886580564204055759906350516563127380604689536136123762526146932205370993971444007167583334982052110471262532862203379564423382779644886907590936129357918209408482855394782289441419720449361425680219825314045062847925483349825235106693445938446790039859066833805183344223612270385260946400246380328158306601532433923216761109682496443566120867813089572432063642105565293487156255168537832789335478976669949888423273751295527136358558476274173815816132626721978577080249951602574008019823622658663066096031797032831499539531807549213215480600730159071608246117045271203289688162965819908402569695996619184925721273280955466394005014741467229442771141704684673106153084475293042439856849690769951918948282270189152481887179064653967885420864276408005861128093093119642871398866970300081905046843187362669784544318308688746796782536164180959856665809384560368033049264116037821512909689226688266114441808645959901765756344127078226564034550997955494112014423989757717188073078228335733894152238467963889608448871331330204326469358959849536530350100159952262694779216136738082295454083932241352030538937747691987893541992394355222729216864908485117211409205883773037344159985757650048011188881061624572988696933924442019118946068795287419302416552479797875008290399306102278140547943766968704996750285378150450536856474601549238389862773302438808751241379869391352647517922547813506209404471701310773902420837352761330594692152912330035152752420096843434153800444935190905588846788163177371341642845046729357915026885879815339506676015048755374918787875560927189626689220733351275775235155873231749930854171746288012134471206515278953963152837927556966068456909177624993376870158444798209757330854230855519822342462878007668321649155579494840184689488289359198132804292761185849176218932131725794097594921669926816182289847836185485219735527282771351701483870205256962571997122014086761657696648933031611520195811542764333071307266755241901736036175197148902599645413800429146210808904940986383473340433371939748913744293201323648373220739656851720570567580589238526051963146792510106269105027697066488131185198717563678600117126092102681205402543122337223590355521705491130801415445633524195460366471233446239807389629749468264045607258649342941472288691662266635760017830328048191466959944877060168290838153444526836521850181341760998754488873886228856797988859038446797716264369909322825103808096440595369785518397523864541715076501716249872769609039963366743663291042395124839762948026825441974435049162189915873846060596630179047880700882445166643141375028462548969445731379224141108924104539152145762336041439362041240933524071326047020215824009190467715931984619216054865287909970950440376782801801481143509886039663057538474182068084817610489760464733840881169849454788200137363030909063810212112690654919725135327556310410428415446680051954907560831450551263620231865179305764782296328276030047921363212603385367704422928856354208622443040360845748736336724827086933137832169642720026094664801428284812751753786659960183473745401719841394095688671432308765625674034292353074800376185916033570304393374425125166050157405154518876127669693853107404487883448656985196862753912746722710422562598828928038604483367905405561817619809343220512653459764805074252267735682069086565909123184169097081982888701042849321710920666202008494507749269243866627635218898736731584211283031369859193467140733937091045113620508057921881074978115728695120296303786722729229584552083247327263190585447327188191561091550636400408910274786821826399725730810250765914433685621857968957880787046983594725848396619814516735306023152027386628155159293981914178050153148103700481154137710017696341158456989374566301863145444900513341160523039114055461098858484008198422281379990321222886112567172689119803806465883942101997974880631074917839140736836477858145640458928454364630620486416426627142035475070760592579267236042707790838594822590660724327276478114954998184037773358011858850900049196509187788099936683637993640978945157836717332917629262194764361681053882808166396424655308715757396527827649047746636386787432062824668781532681304715675276325585676728785752429406499895318313763945555604238743842111472022046548503337732109642686597628370326502932533895896077880658655974275118597000400455376693256634408465802151494889689881053775923348430094213293045526713170025051360458281483606595412113176251559265823965993071523044707400640164705523653483691147999968836626316548612863054292239004209516058574753635105850237100725563651331167470843176903295728345738043327128941415268780725311251006897351477998919937258895865865546711930313471610849440255037258186182882392428927433760547719578990838475907924817889231504696129015017120441432100978020378708300956268677170173521745203017312962267112995584384604031123403642111839478972794865512624959406858804483900844340173370275774815110162071732124379751842997399746292322933018955336841147194924165096731214916316109909387237883172035435716850225310774161634296825791143279678519303673368620519811949909703525100442123238228409348921941238437111117886582809844520396596453186346371638712351147708681803863692664368422676435745004800568009579597645425235475445606957689571690660694765967262410416033333482966338163268123801703354132965402204975361897058884237599318115416895611807726742725073089403077857659833900454644058845589072920026846583660500267119973368069925080385442750769517787538321282385113526190740696271643181418433680556369901994800642749937324070298946344123824826383483255083757312416683400898418164108728813104260025940584892952365646958510762296595741832720462073160686499905546259494875706930392596670718667370582317378476771616914025022954495525037131087003034424025916062647315656425431215596093948666960486747665898288424999887888050327544255161258651592880527974076745495780569858650585304388023401828174342615031258352798604573590378992419886991414432726476289162039778388466968186078107037689788633579959038619708684025638776663269130365176669655883822004257127749715257569482411697402766185075574195119177834077972005043912312002418855341773547749969016472012772458713817499457271031444828015185311170930481151951213109942304160030632173341251444488908468045156086931667815221390595813940886967299961273641646829226489026739788953307623687274405255150547947260793898754080253331122143743022378369892708888639119609225044273840223384993743459503606129269710521151797390447496957046768230961492545105783464254417254545930268056927106468529781934769289283979944256899714533447106720933080110269319240996609293810516407734764889232017029265494442886023425422307100164531784564862767781165341155033114243355792839234191654349329396764346562714180159910357943105083830122801840824972572897583645768397633567735109222450993276160699253294330384907937880399395749234556556758425020615236334982417841576970356070928445393465901388512606194075608978900381894916654620765177058791688602380966693765324654915371843586942061515426794083350835632010975102582761146794508722663478587816837196994968559743577572794731542269209796963342109518506948748189302967525465105035837416089358841506341383140130568067076466932416994145887521367146951214820536844239277998681132195496922525407035297187327593760100554445716616451189574194682423389937057170344949750260980964158717380269178923619874632343593803182806666297595118911693944453149189992094336884319467912309146660905997705342065630311041648572831207644815759307138125691215829796714796397904196115641477583919700271864339925251662251903390627548330536529078309260639558406529970420530326027134209749307554650058105241159715465257891468471331685187576977242798416682259913958988092494402722502906652965909879990307397413916233433955994849211102822267701772774242718984488620048287965686955029881767141088788563511730920095242485312345364729026446739626320404970105294395926495745067943988588323228746164660575000991875079842849652503536186185766833932282645424649610620776313613117403534625122713199617521083782129408349664430066589653191926892013413617014593938586007436447926521563003391404641329875479509658323698978685260423529773415584066968655594427080003193616482687841435813991428933101214956637055838812703729718999847162334625693802043814401983148377114934270080899453084332657685717852573633650472930438287300668640490176136365666375871620321804295301528445647584969817471287625351187455755356430505439338068330402061400927494642737750762277731894407749872103578283339721345147790902237954718763267041747282921104450816646640143905852238623645691959257696096648846101382695998328416563322931270798533190404564759657958209708955123599775558651596533256117819717808885845347193959365644214054383982097464814468607846325455138298421918915291231630853891855838589613404994322803282401382505721925290013502730589914648739407202927622034715669009315543768853486137111547765519555913626314948270740123790008698374881089103223624726883030698993225185115896182584856529617482401946458444965121565232096965728690755740274788873052696101634566880755628225017227625860923502703124084574486132797872253270727289173009292814629605224185568843976186396578698002179600477168903013303652505571710993142742377392712201923871450632642045283137093378091562759141938004653726853617349280527436392841797511989216235555766277552952636862182879816901889419064071508967525661432685233411914860789446453599468945697548943177556599080237488104054034074745520848656100812525334191947139140546532908119819512260642033174349300075061677592710024790195790102758216772544119467221496112792266709238152638161982688292926503704539636077061542144134243780092583658993265524011748927380749873678877924737523045508707461229890592887897744107757967874143246743105602406443234071812901202471348862838372226788449941078744069110784183767524955666729049364807078551256178900430415249000448147072519215614182015511067996847271781450738992495364399586162496559087904955612103100342384986144613165637525758310768081680321885700735642228545380079005104895207355440972484225107827517475357588403824181611166803592757119839739179919629215077393251246249605559089116657392692421348998224680612526649365338439051361728049285880293415495157568802449369115800262597286843723870704988819052640221178029771754245320076161420514224699413693971413353852986566753199512739307132875929941268281365008964392252271384541890434060990714624058693550516722029552202203966839710712173877790584909305345993913708847396582259591144227893773017785745312712156198835793872170903828268277574732911767896489038066490746971701791755292403207738014639227905802489942476938270481166828956481185933109898164425962200317006804184000900779152301186713403307112880032802990818394376865169325560204660699566777703247602658429891690491342251596273736235128443350604594583094995668399566544086256174615124343135980763473164353078036339179575455695534973880987042083652374934970836848566975703613728001312369456288762950159279794231779329816383142338279168499874202689303326400968338731425942251074216447126476776302493569605645834591506697471878081114895753299909299955880866903339307961923568280842707683538436548040204610423681638363575139861758804570487133549908645999939678932953442535384563074436520610187166119868041691150184328523975260102166780178288446835099018218959735982983093281081363421247953733459032838457946674573891160631467006619436765473257264717409525284549393159279951616205981342921415055966416791686331469563659525722482400477781990261750784003674681462525896414273566916136107746106011948622296154109088640646434643272461485670172860344547442576684260022507145328626446118685625294089486853358831401829940426219252017369721295913565558787091675093383940302793807553940900720542691540026451114470050394248755077096637277403840741065321025120557595470527351610998177108049219758739923397964036920372092535038769097638763003006126271331719200708724633625589077826517167861448950166945653325158751691122708391647440731312275482076835212472119929113955479098129691407504424154607983204359210056874571188697480523631068685703525855467582680445542534019937477810054491481770585512779673815111254901541106152608850318194362654830711028024977326948909821143496940773889890614539442840288650819402088609295989474596367752940649382756333949211450038266310172326902492716803693677102104325173680531154156993272657690482865618251636578475646980549272844603510918819219071086148319716617944799447607009348184906755245729646179903737484004383707665685072488688284748273455832841687282292906880462549449627254885488794388810539244344471621708672615906712695900978360368488298090721242194091040515890959924808514874869306090270855674664357976782182035046933646321203095398080777834967686298489517687746059414047383001018702959782299548909274293653018323412322496546057723358959708867876314964855442089811208636074645758685948641918615942816516079265907752303304491907760849304548831699816542019302006991353546111546047534818549675788856862619657590808357748233568020456107521986416620454765442906369215226011102372212278514798904009231872191110505825064921360433158810466897765416368138295885117864097693731287719464865816177214585600707591765715897001250983692357726898099611775064416022347553909306174099112537488736570282794097773294081358987064230643323696784797073369060629979223550308960737161361825311468142615497308222052099869813705569118751222335049187728934532912080530963943142787458468472676865566231586336392981108411826999283970799980487349774137393500882027008859638508721776873579378021238747878526079681324154223828788523589845151558609361736777376252309731650528543904401165776104553846012123974593736715900264601710786656064065345924036770617645467085259339312052041147846966540021473946166870191444903069393794868069467563009827849435559702667064278504365504393765230736209980153896961688510351392792494300093127401803500870987331064102162508687241985919039507109055803922525388849618600870939575753545345243730381311831671222188404834533369085142032659610680257452331748736918306782284610414884020519867739866205630508741750143212316912078596488798730574802329186438871924835731376238388515217347964062893947047248989339784419476661111007575136034180512341482007849634933002933074407221084273174478507486297405728560289452444595492010763541114074100780675963305643430339033092491358872172113734533274883584114619898195227730231504742003436791335855750117956997715403811384547056945435031308108951838961848303476556518229070461735833575368398029351655074460769055005034311321573921774684175752650525070526134141955342622540947076043305514763495717422029892849378036371836258939122269967391591175972774674169413405216671596637905781712302621631602676529118966357170953886598095919931703567161499280684503588958071756319268086971171492432453898091392677424164556234663017534395214659027298803812317813762982538283146510584000800074410882950727917927830605604622167503582955615238071129082760126821999823452164438781848216348438868527034385243936921248052155507091758322082694152808222679003174134484984512416579115490010037653116300879156342457363527248315556858677968795360771983050808918564043608303952070707752669126706972020131696781033531129036060992982485677131953569801743800448288511574067595934037933531595112859584649502487049620151344708532258816046882387681075278339305492030045446334590719940722419776738365922233188361854541972193122596283766965196595337410772354929917079286414254424779953075403223179002592857631041333324911293694105195584986116939034375231678886860482857910258918050260737075832628694465562305857096326911168469667968628588732787731163574662395709381265262202020804327640950004591236454679773154130962475459309171139504755617434609816741056709978964681832653336201539353497568658788699076649992105115731049324220811497663003333518055476596442524940951545736495445033639977326643584843527531044214865610842924412688623619610066044603539292580301930816352028506990954318415347401195425877094781773476785004384835605431248769855694357490096466958333523775174592614167586845057457888731352919176588655970868819274381798243885345281505547212252815004395139960191950355655654695665390938195712302522593480909923809941131522009531442460457303500241863290275783316762361767027114904106276659048041741711228638701939652496537188651981329268936296907556808649287244254984733618758783226821813064868334751069545266282161175045043062434019209181666168697162359773921048115168272995294903910058181589514823855662210361945256606371750145371999628992716640560280231482573587023881969446809525739990643679136971566909551065576419038773912213025583071805930104130794781759779511926345664376238882032615001242467727281416284696402846157502171076767996320049787090852455386133868402570837078837686625467985447678995895358516106712678214680816633555957358340212277374853965185695863797297548497576794365931098130822295322604122802460772922635794069209027781999343003410599376011929093040434452267431364370133941427475785917799389038445884552225363344596194192855611454095437859045722312291390732168310973750462755132994286179577488155777738174259329930278032347067036641511977840252133404728574421907115928244637398881983164620432892233860843990531433889360767532317632034865397142091936116273171153833995179851535727396514435976859613754429126944357782543548135632839761426487951365564457543929543939811238982628633386942952644584043540530436186735443156580578423200766021494749408597738492678239925308950621550984056220955411458990221448009612465936591614160610432442359211650871007047941234188350861253459204485741199726461492333722163344011755796017977971074591003267738887651604979410536490105748406726184303981909790912786166901012881162114565634531203986699640283603147271086325793720218056261433737417764707417674276050823041638135343433294711171225336276426708641928642390337997464389454360147677126306701111943635240541916907722721238328606691171499296054063274186357049399101064818321357695023115599479366852226807068511800856208710745665303723354865143664576202087910374204506096501562861411421855723388226478269854537151595616200940925534205467115780208662184975565695707047494856324422716216091493290813756579371784405042494574860936942038049592435273870851935463541370111481225608079002721841828085510147868469528561465761937754288472010334159388173079222073655152534690456852647536349878040913793273477324919850863839126350937730272105824679374894655929965728453656052114687656168474844954093219749917598137159045703136942937421340692492072903652563225157928333895475061782667168018886054202089440264019865658901456068042794627101447586342739957087447928496270717984554680071308071595793294683805143937077488411580097622371048949016874441889715628095959512653749013943069203923322661986937039782153270061108198435870284679180880143814242949534374436589678304779249927130796898318029645213752760929777862833868586183489526918089371422901812400760833293368792704446035808133164196554640911168378913873101206724281280902555050327148274491766939475034261639230928022805985943429832826468493157432667712640891430001120633358159115692327895842663768147761689787310011882602110515781083400872257730213201132735138476404017859676219303491539527106910071927561154412728608053649544381818611214534195451205538936656526810766590344825746483134597138770473960018767916031002220480844782278977611506861451069217285760148723434150756034738690808357249920185450122454247375855401440993593038889064854760269734872854946231760400779645833410557922388115696156882048193675679925823986292500962416024316207197311780142708173332050897374318433335930380141183747373547185168545606649372138558316082583949622029124543641807710617204927325505819363136292103076063363641541711369117759384350138996534624433721608478793531792387595940062593343389071414092871738268233825146275357971746397742074539672559091074500206066848143810720004114478169093080263213902617449750198116322283391092092591542174842137430344127421300078780588022510829410275835419342596854313498056699202369042447485814047177445914945998538634130976574974995795984456541056958746831684854771966847282011513537240793115450788366757007862513783378500209743960469345459876369203554416448279309651282668213654959046596559901312636547464331222573513117873368531438921783893850770487952544039929135475457146413224454317349098488365154266560824393168002224953979395467071180756491032689574082773708527051714670378559042575430554324938828055880751995448869936286297589570731146814464338352118749340423010995425985656368820431835581811468712116062211250145809840883365704392586428281948022999345486185806681955756235868365610505331427423869055924734279872054491268069259722863162524507523496749542375807615814904182600191112465472811439787599205297261143991182366229213662922195634026078672724815341196524086496069485653085495146459843149797679663010219085917012259956511793636431320223632450387147921605696368764483172876204652668259755479835178890746279227651698402597106680830452478988158395419720460690430044039117408666311407877605215295548775426097830745124915006895551167904506925243326181618377470775003076120307485208094107044575526383229501696969257917353575773969452124507243361804273510976856450955043960703773946737282047298085323083355518076329572720813225867152089279400280466982878902593868866069744137784393060704896425246369042547598577001855766207628189660279698681957401517696288449790700339848941965341912654589556015846979997486450695472316684798066902702967333990399464948696300728913859500569615600484048044118905268080659054424995629323133432032299595879070898558305236121929326059339508760916791814396796351265009612756862733584235939177994665847323092434975330151394837013907388580591016083921899156434164841984917679721493513538742900555965311802050003921069332752712851724141370000694041355269263672298245557365255346079764896318148040885223171768486575420614338941257301096823398065377055460848983034217763603949120325842532576108841079184700835059222129335852729576004724926240719113748189145632414981386537002203508953756193192696218011300567030848777011702623926789058278051990464499203510625430136088677230679638705591551660437994632835798683133970221830220198489784121037652280889870416136323627011044567749331650791846073623595360307262708871649519469783798740355427368754938460712888076587014478401749658206010164448723195595897777923084817780023745697690779367823211082130311778061687269413861223555870584443215721416922433789343497412448783869920974409437082845181526648766488003845383109351974378547060854622742160400244077634236996845817089968743798111260187904765768566732177041520440505230282924509646124717643869856234603922724258787310094695747750877845726605774528196453472219326020281489517058505046587193678361103681691778276482764581035367761943719148573985828062169497871405406931681283182766425358017390774638697470405711461792773826488394447066022249692675101837555707759773935693923789004958063829733062612065753538260368656258716379382715106483230687415800785323313955736232781858467656180109410047265623534264687790086022636356741262864087835632418423255649157152491177389914637482716884428571364774078852641876827426719695636313276790454519027763847841608105192817637654940738790962494518772082538878686700402790406987743440757534076633586728151468212681407981146284365323855909593711463894134269535576096140384174610330678635295741122390412709864184017285247001939895441867006890370038051165964386955737472715557893119104090601684005220105541782830388852987185668519057302867734020307704081209306889222033517652345898748775109508951936655924463950083768438963556338899288539263599125147643341301267246924959475004039321221292709549118771271031544928426387392492960265510337826384525571415194754396827740489287893837713060597452945052981980895657798613779007325740054931848107228653675144227112596668331800092570676385243737530390181549103854733668349831536059779552922962409303409498190885223282034627127678001120668567434057178089020103841373201260437216884037393405506775367156061268810804557637782528712829452342427981953739230794604774416875960199627333455447054120816500679928741821539138827693675104597380195201610921859445804584112971061136154466631479449416241837560645862407037267086822273354492898820719338933272319460859148537536387190813900332950058874074396171015871850167079529591898417572887624316473166017771544562594101302254672610647107245382425361510239462283381514720848642637002864141663634574427335128147661969873303038106463272569194394009759774119375217603991162161953446333471352867802933369253324623916810841444608533310827007451605568065946404274745757606211837622613890815803986679015907534715125547354845304074221211362249716921913698076472752525129574035068546120994824710207984407814968355793090029638323432317944514159850647320969970535302341837965034176737542620936671291682111071508698929408967715719123611345856335700214757540080792952097040878037471328329795671911149991194378966807786775841475664593566856539199541390721294228714834772318557200206947228749102964698032217144780889709022254772581958107849039661858419206681903967631839241618311746538606552355500567145915833338636919622587114033608541109803525471253834218750863289172780010165901436339972978486243078951408774147635926283168268878512252250644575205900989813169574844221188649312924104302609990225026654467217877012093511082853041377286712159054612434286780523134786965603689508424811128605287431210272683981457737940119338791886018510696996720602301293166965751029878361303633875167267912526351662176958223172105729432444490486007526358759677039420470528978340193228537717740875974269874641022237825702319156185144834147679128498625759536057089578724201455139948025488846382849928457929346686777586841983198879777482058298908288166306376608757012420353724125167334968885007749908639552332348132146324469852167138079251244494686909713729898301712622975296855804972121841482664101806455981876801158226107361279668885797457789392545832766802220691117632221902215353854934503518896261142747235699895632173781400820348073554964881067476391052027495057702604276771493131841436504413839491198570344580091630330245720340851630721207764351150351118020398180581572428101118207084862839938043565181012793258921169023731569936540846259408778124135147578270810932605671213820325380641666559712238773727494185223434633527906163257344738269690679536853544275533995053205977881641680379162560489983485058019288561076521303860578452397657586896816235227279265389877516727799611706658941421064240953141942122426711543145812195519449787449237383337073934868242675277393503683944457984581639591176159080872304346007241914189749270610037676439054167602573428706623967246632042328013874603622956018117489903243902870341307422014643168122658612859985737087280726090132198751331227484380428532637246985323421751599379681132288652096935359083465251596838391112188696757596377950983536478730808120766474620841910171120349294200431301760909897087599540119234255999191451686250293894954051954081294781276204665679665291827734710190042007752956049269551619772311600129159771552085398259116571368879549843603721908242559645334873259144533549092406006894596549289363043150941348418701870392216259084584453550812031290584985446484646819144980107530639272043402637780962106219083882955926704907232164984498514312670755923835883872434381220276298532886412493693762638302564855724611161793060583685575733356578739645573805518811794701821135654894939496473158738562076183990924155519399129358416066886727318283152097336620522950239147625636993062825482406347890426959508806713125459983573821322494466418991876965316212718938234737120813201649093294521305883007468111629534924334746177259541105342016147334257756295269880326019474208133877501050230258074921397149258054485098086988160220781716649177723342220671983485406152750359893357852339970047581174346292345009535136712704619563685464506979640276875036014307649570463681890996276393526315032125828853251478928559157385115653661726407257391779808769247753898228267840591874845248200295511806143567855303341531269857731267070441987803804932844381186811992691120831222610029008065574425092379140500579284590799133656100128674277261865289746076598226497832668425028332851471746954017874780600648801962351748926637235332284171454255139063199982322808574894890522967598293762425136346853395215877308897055424722369694180692884298562212074813744619482325682120074629077201315284897256293118618902148303678370166279426374989087134103855088528377018039507620815188628245966434452910527320608715789069276189397885829315029682153220958113804281721222813758359302633549147067607112235163338633950370691966836226293683751758752963381846354733553056174226973202643759161325634513314084469670932609546362448651675798647944984141145371638431251039090494927094181002634975908155350844809893893064034056127294887055082784643523648616760695848264492179279145969176727686377123835332149557817847626012353393864484904738584076051408918751553298357152737148828386865843666719308315616453135926482147517456934655549988478810339364873043246729423627935704887867367297343555314125854624055357325528466964320698810319161038791744384448047338822679143687544793094720483530607277731347553313961237147415451535937834194345873158953854425019378978248997125713363232503696342959049831173989099237330515888494634622317287660098267777389224401988089269442735217043411554778406984498028428092186850861818693761567846474152082805094359459535351931714412536441174637802718669933645879355887746599643823907252519777926162530264528190043588846397853635442480114155740014286386401841979682906372041633374555156533052025249892595183153857725906172487931548557440051292416286258857163805044865808436059471943003928572526590542147482229417562237189070927679850508117481159354463461343281029557511015213103486485074095787958940969603679311157339155927882453511976369632422705547266588901765388307991308902535169906815686748470850072053536378813332330709458124910597982405862209957822287990497244231258867976523967540318094761805784716332034541536295909109241699891929515187720336736054285526292238418529435652446784048747764246773760081201461560054940917775319034490647703515460295865098822225295403113752508363487809271340845164988276032901164079498254538610475523559529484048081961896862017486650003701394713812573552044775050771500061767687882910165537011275602978283026710992099961793290736182621293112274574430189377038034960266010462706249623861407518282100791132992798951336583637808690217180732407930017553635154890748913656091092656078102106247305918388824363754078007921671568524708162016371062271420743660776057639792561559261292043415035544129486006674646585499875078142404273637550435432376731950551704790358804048361500158032015452229093826418951655413236715742671575161891391351647081155583528187158389075835329209486775226644878190792301500102136319251385759039985509396670875699757030214347115712966646295862654404575726943398233198330213846808613619999956225748730403220200741690910421228047065386959853105737842141650194092421122347210430942454626759106864507943132631508310694108455058247866208666286635602849276154624481544152670380327184280879499285549088616278655806279862796375339146067362002277861656438166548002190380532225288078708381269177125636991365290102519429077419864621222758653327137889780923639413524260134996204552342740283530638889283203147383595435084725505288958941241144619739734213442832401417906027568633478315926019567735079147510594784185411640331721221470995102480259365822060776692145177585456041945270902163291781984308693268132484051377892006274146763936962366909248298466202041103380760686912095522457895954197464643358931972867324256998006039588912944048940848361948867364925857182558384349460644942550349395042991243673785780594592314233158813929921645471283697476529901438661682682490172804426795917778545612076587632691776658782156829499824654286484243788820438568772928687804417553821222404571518183226604850239247647081562320574109426855001933402813041640136843654685738454953151889686589489437644882440655676769376655449857279315227572036989951680818979370976077679560353733061129408166870845558702185721394376389766512266833813622404110198759793076858090459515500625499301525947516395071282782314216423216846532429633058543324964246062128208899175364916118905015080109645258316275907213495917333392668640663803204027535969577576558985712490932613938701942746998311255079338171497278998194642570980683298205621857664813135308835997722209999974412800850699412087331519488235396145782205412195474738385789678759662538065330161579923327375884355867874286385487912356830945108704800460591528325070751632723986327816225380874394426719763291744858617230722596316026197681436199037807383000081076332420426236403796229227210632870715515310276037384852473022867942257424459366639041894853309212578147610050371490147764132469703797945029751127801826015574294734352863786900651866318153777269266908113160680152640999163517390017158284390573741756241861201714182964044869842066573286788105330803596636948839571836746304850639611895184878422843222391467392383233387857179084212201500304304582695891012102402770426840324770533066654533958355954649073879312880649798001408507434165559079122064543769521050808196202535603018412988707707594018113209799610426738235786140949917603823939602531551082984514709948184777440701240883063412070982052200985272774060355086582896795843943593854541902125336693763463008162124946516990418537106250192190195938730693391145214415163527497067127672033271073599993859885168471256518726321465188817140939289083710783791945924141479771614611479956319033703348235105425543359779020758685536701786912245580088407904881426101033564640032095456217501447317600453937146957900838865374505727181106953401715562519733916609236582771707118070682252673725239856692238697784541105126026436783050424881792565130387474632288742028250617233752625355997653758082307771418279641291298711240814895817527987447514740810503534241167329576146050781627748144023062020512624459879021725436020013851045352937961370011694886293672686691299334659727990946462162485228112512831692173573509063896991108704901677561681414872363172546318019852811667851138986944443610372324936047787192832390075402023016679195759090963562898137935485219318859745197639170480846364071324364462858113047154746739350179784055719645207928993069371778388820826696393765577294742991451445558388960551670658341360987492439399870417979601844675959074183510085549776976799868989705403628829486718493206777726419291758720783334142068892496271575977700110849431019073461869043252004686518141075847412399032654696028747529882655433502367940868731792494020648709665767081134263177468031505610432547006290029396365439999949277049194347404490187088351287584927691502203561624497369581293003335004291033945057874983584346056451714882075626426766892201299827387825133857437622975352759291296810388050591985195789578594422609870109648195882711681988810366939489826586053801715790194460220510105074806338832906466519490490900122841852863149198104724929424764088377190441283268408296219939092302009282158613279487405159781475363934848876244082459679343137653492555186440317927851565032827517506891044261022825919032805577507700273721206060179313365017122098834157106095096286908264409950598462170602224941278224842425998377474964259926550278051691799369906981282791337316529281147482630864631471923355083205395087710327836317751373702990936712232431901918636852618396569644096616306097276837931029376981814447563818770053224954758958379198743539546556626276139851068275665341683582500475249052420365164973497697447717135010060702186558106190815173822784403433311299456190499710387326508101636112704889107071837131792623860382344500566288050045042251766741047608741977967219068609297213539607588470870843704016773131307702280935769764121963786571197015615355908466833105961138832369913550144718780501969402382209812494533162560586599528854761950714740804613607545182833767380719378583462016724133654025662253289218754925545893363781035481966707911879986104882464854408655389895989391442828388877335952044295609768709738064560865597469484398999577089805317437890130316718764955365475619927442622449899573616137658503069382446628283947139753220499428738648487277522621836568012951946827711163577331340000395904549349018682295763708470411861225916819289687446345357892815275900818598162488708117327357209562691395573355087754716352459342355006520756881289352128028355721802419303807755499981314197637913802892301294211644963541879941333968676476915595989375979815911666305281295896087247405247027101461184713664142973801227174946229393585488986354506809289978218167322965099007492746894479182068374122960592397823838772677956375707814898449528744288923837906673639002512722272337325389322427381282554540680788297515485449522901744152817453618762629898977622964168377957489323179680644361446034069328847976470052873457463369387214482282210238014945506774789161829798861205569319676487014907558624262187641362669794192359528889106465018868175003836957306763022196137159954732949688945228089747246125322765903672997190938127916570498559013920462505222824874835217685298117463300598928234122893889161786842567202522981281338994016907056030057998363324328600447930581059015845335326963048475293715821886848195430574456343320903433355488321516735850455368347171238875728610426726840672325194806752997837257919844501933299994936519088507249284610838231324389507393412183643436312014536018575309753448296984220200819585886525065187798093997252489632341712796216785565104840827422783333715962522615921070175435595802473565073987762918384472603607512411727947014437513401061870089346767068001480170639991823598839956493680671335341695626812263465199097286656683339014817343137629004296127110592126924680465645899629689800204676138053679673972801332478953751828075020673981944349315843423205834472563830368199215136539319125662010056073924051822635083038950291139483323334954203243961887387369369745394032938376381542794044771476216906861405963107056629420395808877020133233433675658014494996110867038755658067556766047230778589444274464499075753969187534854736507389152982570722672109728722191477944021356635901840703401782691733648282218832216375987909091927669099289888606051915742359293672572968199672576381478750432961540916904016347160041551268574868804554518649060788254618495335026526623477317341657203355106024295250067678026648197597776566075733990799570295091609251982401433702550953688471070785116054413287703827846540233154402110777943672293712356790509064361301163618349220018402201524024914074344637950242753745634977335698190278523216729152765656072965508212399846413945033476197335724744234523680407084978428801862198204777946547343861554514323445471940277489143991937221741045943993876492400355042826894485652827808970477167723428700124597767213683668805019929555751318092486404821508400034658692164814849260692595841127438726880198061639033370606869821489756214151656048315508540753039624778805948387016027002323929257890247800751924759158230336461406436226006828499727715444012294622039782870216779688392121712859307340107921772063980086906647587697523485790443422889966469790303366882856013254222578992016692779264852568012955992371425777991515241627045257363971702502880079765778782669435034569920661173209731210349368088528567783419694012457160650031514659595162775219688271262777050409908075790928442063416766274979363356393483291762114159384652365287978862020691945512457500677619100987995438472943652505318080181209647216533858102915130325879208702048792890400674767297443687329943629809392182382118856879332932830796903612938653148241854636526518725445187955639581725438121888199955330496623766608772127840507241915210512033711886988123469527269697382741899602618107870870118293745930185797501241858160661011213583338181536059534630153199698103335338173210148159605443737831711973417260794811067957136745138585171867469365466129229470455209746621796828045181504287367748897742047506018614970730977081620945681657985073787728942482012305139606986904011397840326535707895828268189068486369674123890769370008905202289813132262984972269628900251891507403635670304440210398012236366477671351969515088556959130826827759364334018946887130965526680720774717515905998781366267241993014848358322860067876692281907218543643645172706281219784765909025129983572425269038616461963127214637517476488414436456127465729703607127842807530482075913272669588905193824184899655594613656305218653180821195174737939762196624694509336359702677495585160773753109205293013538316253204506716658595339438609925312820333116941600659192524924751382101031162240693199127837216232397481964495937060242073029921497072689187304083342004715169486784180003961363774587019598574662195085350490827688310513496599243924536687631621672343807916823633542505440596129087041848211821179921930288319202779239574391836657369996913977152913771027469029539331151516168671020533473087681668074462728746311516308575095311719058008915374144012445853072929092878474984609394076627248242723065000253766226897984640768461351714167237210036746143441981106913900365410360348666384813483789433102734364241635826057842086366778393569730753134760290824043609103975430061109339649826517246097362305977674697729560933917839187327129738866943743000602277983567361951956067348918841957934751111467584510916895899357959975986522917134218713942962675132909283957782013562180566479418355258330132377430184546907044211414563208523842745003221402840209562819379259086117531897655386071842359437975871805862755436950324516706844253845389079702627586118985238455967093943803859603797006049969922347552881357388153200564990452046317813392985541584117253015494254664874005486894178696795905826120832773480790133438414729278560781731709817085950456876620892194942187995037163076591869745573766773771939354912957229383237657755991510665134616187742923453329025329405986227397542663686709746902773548344715584732256596246178904542577829330797406306254932979914057721858127253019723540993647262487614873099966523401377372616192808433457522364117824439053798344867379674515499510471697754151665445762996770403896082028787539128264372522775706782943306380122716720992228169320558899590335439557218587501842096689644149523410863558764236438558332878153406482755033701682342589935066916396916135682954060642798028871094879649366204642981497908340984981999282559233098180884631195574027417649848529881458179210076765014724487389539268031818675677740089848420896771789937144228452746602091395367143098696636863188623249212883291582159834666384645241665020906313072152628373766410064500299972681269219459708056713156032184414066475391637912536043890349940313585647225670749378680505015353045349962324092257916118699171708560048097759193950217117295714738365548956983395061870802005201813361425610415991563814849274172180890149655690817227983098674589902768333122528103160427174371918470896033899983333187966549690277163364086639034787465338809170935554175679115215590483803157920201649533619085479720345193418037442918154783983918821642485207492251958948532038481478482633262378640797712670074157418370582211400425679402083517167106041825114392063185843962662419461286148317847916847960678537810443310428931335907871214541390245789109795599646543205498094059639691807949830676044561932454875063535218121854806933117038413697155499091978561772570331257799310106744503245946423095970023045201547546221359718455679372954397679943066398522352089396116347022888452059354719726858009412681151130364242004027775330912860813059570508488425374378374287633855541201367518839016368093763908005134979154012250626088138952970219603211305946651367905767052306950690109567271155336396915305287808319872119120580766368590091232700755522433422922057258483320427543426130055973627237460038673003904480530390049140750034268317648314452876889934656281073100354587409101017062085052834150657535805518863375347942261730859694847102919865195238955746131922125482967211057006911970568129271187955472041537586713511537386868790595217671329097590782131069099514830670324004764243088645954787590288056079930586342216515628839930004515304170239966960385801081387665668278814770406811990182743416959489943137883000060390070342490248780456586618992264396326081256941111703519189717786724400736662108833223240942133797830039612153005475311817136166328155413739318310217711800036744756001196077826569774799297171349524653959418662719301006586570749813202270310407153662741108460075572592830075797943288214173440701609716724849452574395487247902464409956985852183255232817161055223455506399673911382052246044523620836771781925438302370990402730800407150159937272994158051713450618387422577359386209005416265681556887737873756099156659141769224099788238493930961450331121129425534333900934968894552667247964499730858299803314272526033926152512338103057405243558378369332428213653020588305665417746721612458175975096344140869127175220989665067751958963403710751466417058762470947847921189627844855737289721304054407402128687227412238010080985367866515914662407804403425016614217023733688142805520848273097269185386325542787164238161850087322646547160411904594897713886360236235822943579080279522329874600417220771070549368451421150545863093784911420795028775001642214513021492328222506279697013694581041973315830729099661649057148077243259558165490642029906448874336781812858695930502197496921242689867798977489583543487114728010010884892000944321359981846650052466265213715121681652916666466088482371966802128823979785077335005494884975170070859377544605908076008613608650999305230719665562674553596901280865147181405070878167502461532620502314998446059221976546003223294855285440436438645703241237190274309573993929042821407980888581224668391508289042146393825662818291722998222689620393042723569740709620532665416379126104339805811790421512353248995937650616531422819578069558240557438222913281784318079068777236370611561614743376110447506694911326005508312267929058814325411840786473377536591680279548208059354832418915719831227952849839937312290893137340259167945104817304306816752198255782761875122953273696417654901419113636005136913138775137536399669220709596619129910581655589884711097935708112411127220573947663517078866429363280336950681191174153094207680436094801580860655381051591216113033254348802188727968404357482471294417222273594481232291723887739309447478361300651262310315841258238551374378445771998913449664343457496203435146895228993554408902577681555590985924073946275243761185102772355054428517817757339122105907080833487221950486222302670012615343432552887419874807485465062507194048678398972422613090572744598058202629938373773543676740388914560998801139584018444742318681264607017292695084959135133827936573586597575684009564294544703827106316873087212453098797366599409828301887274427292747642111390934303924806972626936815172445509990648200459355981019800459245970767780489906818955713280227588588801484586844595619748947226648322326060704078966689676313720665506131548467040365727103874409940560218754406430538554170644257999317076505930125794990810920042727052913820743188811731404900352768942462956553299517175249475849972138998346635443226955495815479692163450449738822492481229673599293634173509728505977534017884951584727821954568658080486792897506096130294909819441534953058718435840238787628978737623629885162000188784425986121993176712770840029386957567392093810232294046913409853998699556922487470557508412580802718914555066418585538082168605399594285233592745094022449025876365599571592168803232729282947139600395709554002139909595205326155749514422092221899698210693767001944608683535548039268453289124493714643254394890485115005744382315836340482097266487947202313170418644318840790346004055536035487349805080238460556565580963415907117724988427853459464614639337369818135266841655365902820134930515439130101627484339527598563112921687085837509795824034863910332569159941225535120952236481797874530554046047899960785265464864621512470826539550427506299498975289398962770921578723590165593876654134702282363432687655665202338179412811857051382612520956094413375650609731998701985439215913523344941329963159397707955860498908662686886733890234437267395843214947483033794299327549034920691748020966687448695219563466577252871961847009351657796540225629439755257814263894460701281478035133232961086800303296070396692781425905826484621135174020905996592985440431812988489497879911931272139922159517157995992589207847147371000845920749838367553204034286959889986872230149218485133102809587717616470462123591369234458175231366020210612890529302868177106690816790087234916535499389781490571291814597225708998676558110194493062825655541731566029749533895907531989599436559912167292198835321827315095554906710904976990555141024938225066397100850013866634175980618634000859178655875707618966440317592699469536943983943713410767709704187258281893736163333946243580917269698035824073499208977521005146447646781795197870319474020377275032817846368653757560715863409327111604403331599049496629133842672682434149888466448610139326735563094381710491673639009310556718310919064674043187212496805858562840938615669394862244626510578194296017052772924916456772038158214654933614310010206860670450101366586610268839182974060669282518098774685038861552774563831843752907807325240638160829598459056426463157181847744976524658446115026347805885809219758057873861108891052066467357774688196973490362764952706197045825850699261729130739582489968762785421988598525731046055359437605222774834103375066597000683437363451930664772548353525346036743575420906101115376169446152828039783826067520006107712587670481274572053039136436629504430509493585474874044409986447467414710413852170102843086175385578978258107327321619036761998835886194299596363045636431304704960141266803510419974326831937134015958236914063509110901015101911901397638061169843343542066169897673884484790092004724789732119898975724012780098437090650779186662869825600922068520647540828217518187671477356848225603784049819602017943455353874395862806245101152675120038295010977127142223002756194415570964127517847769752284754078762277055504328969344131821588226721017928290481018645990054533555578946116761707337764761784580097879221278597531322520429419270376498635168738638386863745333742547594685488889179878445691583530008023769377881350035519119841183279109295957760244617822565564590782372361712998794062801042547472498689982381584240148927502621152346725752370208903545013268318807408974904272293702618436028518511371508017782302097577924885634504180536651183542272012875829993128553607985249693266655405015511522156626576814116803752813684735413172943481399542293678030614212677692671400180827572687474877934040288589985622547850818147721809577259567554810799756641279925233741768642024748547155058727730470143658300455808285569537595697898370473091525693069462213534598332354676452758085043534814869182983106852621643888824138595027804287765567288424302687670056579423107404780537652897998869367882360466144433696089692793973092757796689716317479451721894031736944990203634328986369480932805806217099494980371571196411863410528919636461213565490755024236539552465983523327092488936974911588856577584683934864122818654031021666990430705389929917342137133411998587667828863206020753817309140176254833575010172215468769980651440362723930739836669974155217747433008643682238051692757174305905583271234122687301570594996975340781789277372330761983845985415386147859984582861078208266932205742375757043672748764312531817807613022827206562945290282000970337684465540364291555606233846716115816983312089368841310704560811451478017317865298273968597190400016753825409385888046895283376120859523948288849242029587192720376013180306048463656265006424331209450587538631234698996627379402983378327169855008631760324885366991343492693888377566922031296761624349728870566584951124779319777407610464041971165277397153701229324359252527322432816658294080965101274264743680085799201852350211158798032732708063213507214585195607125958304445507699115285664261725807634658035046311803159149944240563602658355210170569829565056843881812598181026661697467345427614218209813158892468455446100336596300511325199774448269665749716272165449387655075236297124441398084923783354708222795931951096078108936912131148371512539522040007127221339292293102899595602234890089814829188403679528783496323652569741717553600411736755477259180972181088487757523202751158804561463839553555590565780649134338855649282402907534671972986481017379858877279395269877309940841478283944907910133355905437449533033484587066533583449592597493812552298647167024874797176755585141290909975319635712167888669230848760924430257067134264390815862045972249557593915393818548238390948971372235054457697833981100323092570676404745762866262026640376688599791930226413319179321826316056158817715611377698436665126912509623092161224349976843712259251785519967446820330483210102751884216044987691472408411308533895808745916925319103995474124096653127102145353705562385000256870278678163774306383571196179800584426517311232981602340242673621215393063200156003173940299272621126586653312852935819264914147754667819672646272707133271408084985354738974659615217132719125878065066724074751220945315786543401648325396109525221468882228714104104334157622960095272212671288143515468040798912834958885736559424930618984523283164828051679139131205857771690211147580222941947435521687831303815624473651054990253017016329712965218319959588955390889501874517488031713162340898358186342910252290736868820823824283691298616695026095456379985664794932119305017191912448732380159319134717063142786588231390421173051082484583604201722928385790921376115629449743095495578381920015297928947674162392477881053610576716257468299890182718535410327770835168292564789271036746835520456770782400148124757778103460050115579055168946543224857666615181454151362446990757137501070869371884964312715672683331015072849442553082227205763294455149852582535218824069001304239938545337609047058263597281783597911160316202936721150084067761698917209561543370150221311835686261803591893572285889172132631606647321838363200871638664837116977722549844882127486935997063837323603474329830566933544461095641862445159424329784678474298838252948231330837324281146040924339349448628284334790642738942785495430552102762556472284554181895271437091230411556201513986783415277837415881495171604228945912506851509834979256412350474541584426580521838028292842211328292488640634983427660728820142735142324382573102965525469876730067892859016728038176004095124939975772855803854728709210111537673624327050784431354680488095429522161204985286921326598606791145735869580139636450851225861152208018869435834386308802789247236014241275364407370931503566207908122340698503621956553860951637291819529362993298526170860274058710279660662672804883919319370221031243167886819551166634595503899064020257858716780180005150424757738277160220859548522210759249999292837971636858430117065410743768650881643662914590684909771883642362929388374370042048864772414567364647509413277530689982192672542331952563800910459271614648256887476699476163109481024444290961137653776396938825430202594267799236718830117032883427568718703655559914778199096640446470660818202980634737405362594254757056923819212170957598433462171478161888982829476869414912057371324419210888056052372766217125017974565372573114780919323336720617872939958000280421802124574813350061495586792234464904967835113124829698437788444902658973297376768610457922341045504168278895334568010571363735753154328148858327580424553783556015144514059323440297915243643576448923560506114220085295207868485880278788389183217481889652428324997879270363785786730757946875894534906398352582967093638875614197589238068224767615675493822718290677563255332210638470476191144397787670632572799975193110736470675160291804893875206228636519356299240602104070243842073300633760629276397254654392009732003090610179409442725559390590701159049334801131200132580275363926762475014637114509925497093507441254075070612915929878108226788060548140926264051173589650473743477712971672146652752395419237801016583023059877530506445879313362892783481040184630001986129130870927094921936705222723315930019201884148692644689360327522255486427544868670766711495599815774457201384573763242128111964204069334914805102792809782699606985219349284364378622960736546553287885668205885099846918664397418181587527067060693619725691408580131157214033180866779655716449868575472000245874503556658841293766977068636389911373365275436226689792911247644436271149029552712839601343784945937583746214348410677790837132499126749661796709127228622089838217341815751238835633066846724759123343890991780903932697659712022260369829003811875861483022198337148590230560466674240125236360190909384610968914294127253714071408284121012625639512784294685606921217356588051080152812038585115039580342353176661594628598822796169268642860229261465077096984271141664459396146298606940672878894958625991599270688298099404943281183865133205568532025789288866661399844954244338214981676384213535174301703173345847025957805035484046279629524497858277650805786070912409741965068442240011463624029290558390462224472484770061984581421395104296656079839020750067294250107921050947513980525345553074081664856831825460026970760008580040405186454478841088906546217863101945766164224756742278032395450930438511840495770404979498698787007213390352511505313770482436104061515094900890261215862062731196667544465641274279851882909667918388501756281453111474083671670337885982256462292563119433433819007278660684388772414573734487750123154649119025803944684574755840321342189129280106666032189499316309090423681690290108506215020927210921784932532061354981089008854797136374753198739773917374555964256216085082927506454407693330363724350463046152898649860700369848983964672066094697023426010509808709377974170572893750300733619861741499103512594466665697050517648852374799810361581837119611221270985731628655193347187662381243640976977594680249820774035720272868147184985466287611133577017958379578429372514269242515077306980384126908250604558548684617206415840419468681783617281207969299172961439207536013306333546182926458083937962749915815289432842795000904891902512695758732236067426961617401167597145143640555152581236614301657771471023901209854162712152415527394091029506169882847271113667000362676069171278529443853373834639323838828516247269690384976871812574481923500356716834838953906267313057175020847610232019663447062710244071330276221780256175364976942380833097532840152532321640476269498462391558735399092823634754286970110053872731483384771046590414356080384213098615965864151241407792048136943356373565816187221285668975788806770291270635132559873032252441086977606547532323909889770930630037687066055029941588953953811174190665267135037917229779632129955147353079761347514910390511024898847103856410067841992063409098700257662287884187710548840384378846351315592299953698098762477971966399748394275407253538754693885889482610981747874389429395081355011334648557689936446927654096608706415961016235001263553361403045304470837342203348356330592206992289456136093248210434467300648175267027878573835249223797838892635100121276216161720530922103972510169407952518516387187887825808757412626888396755103720458915781943470831498127844259173161798185984917027489567316135902032199362872885519883297059067585251841981239535111496252232608863401525731428750285535139992393448872297537587502196516931795127681469822696306810187629931056947517237294902799697695702160477190844443489257845326723294228797005707317000199108869208518182434849177604697560798848106664196251050687089997474492296502948301999362289867831677592942579786723687850153479959444540098237814250480894752118216331693320502985290855674373654699939526062920217694217801082015382032613463311893882843674108960820186436758378237737047931785804654491794034904431664517564400695498892229904933640236305787410778061168055123027428116047681132021023148738390455653517256500451739741717777272114650818734289847705398695555543776808824465182273516682436496290370904845655163009289520785185106614496674726068226079323577203017925559092879875666410178752032261151812564120651948821963751324546149979931676699136145091582286576185909581804893301792029815078031472887867442899185168400783017072658582997729081747877625659227509960048552883814231615634033650903997300447058140865709620053685304849426258159024151751433589414394891763620588135828132853727536960024024018859797779290784632318606850500984003536565329500516106059129367416411814906517730594456700639969813987081154217172160934653537098942242241233909374900561648222870864745245440931512083078435391279521212040339535356216665457833435180910809484199990471663274266727958347223958649847343059938709127339347471836588772254922159522868565879104774972405180167433489652738680232095538373410557809168213532535820468393008046570840003625032785136725901289349622930253349895028294485881000678145206481074460644480921773997605870828449023649650252030645181185428891757320941555476718900143535222583782925444723348258175878796178458252417302490716327260182229142966427245970850316805635757443234454278965145976782682896360422540469676022761503430361258457228730723341084987216971501596964746180164596257267764990766623278172705228113735581456411197861915688136615501126849407605072714062918863134243956193940426475604244951788868832633503576360249415498010223463948782867367053312350111986388435935751163592724705129041658949562281329863231261124186316880177179331072196778916583848083329353146709659117079238674063635275680603622753635442911221158231291714078838827908410701765833115900865238882811251543483637289218697506243836162597830134446704464273682539515634488801473304500950930535259896051804291713231896317053301699490682970990354857160382926884881388852618737410102664908483495168398617947731169722949193074183951300097346950966766383446421575424774850008200775515566884991524265109425642063239357969351537197788689467431208567593783655000582892922601840289191582830234780995331188147181774283938450502452009047283882311207009072614968532191634600853925329906178277518577509972585067135765265766910459925946180347860034450901698013021892879936551038725537091337059346740775941954505887120206332927262535285815603902155828071504870251792245329560523895844326822141289157293297714083751808376043160852918798290337254163725591263177244459004906066167060590514010961843315437445366821280460601241325015990075365429346910418266159698623821134359872432174592117931856283036328966324614810292018725431837263905705427104864121386341302531748074329603575258934424992552464007270244308703842274070745797954377384045945673203095674971768511193688156085697928149551220950265509550769088134959699200108617995396289816288609163259388910464367139192096903800657899762013045884840782544484747063999819746267882759343920654075065779139335459359541116929193177957264867729590664824617000643020368779187098202545901102120215954154064648143620763621820589736674927839962466404381876089492843056299909538591916118595625579343726604437010896519088413555508612675733840547868909658134099017243497102977683566986364025538171534211185428735898786249277376883273580409555912051598940392885269928492129588582904958175664221302349308745133961514472157299336973857531614978209251360390263627058763207608789929847362391269523027866515585444869955622377826672087251585325051196025089139674115879307358525044363993146107300942280993454882805500645445340003297778466760469646907931304177552547474666280816195218170383247795290079958015547572511473175720337669429754823289470557028392778941187608655612030107927705319397102921476767461423961071814882992886897254802792200418426870589761691933578345649753944078492382677013237600387205853957385988069757555175467013617095949860232036201224654039971695113460911740339825691712193402955543309229839621027533294119667784158775963746551283263080969766313808138588521724952111647658839373490186150161664130435513715292703460303752662165190064955893758684077738846782599833629343180141850904645310854260556122500670725374086917950714976096609836940225031643780087884977449318946461625377091797751046384239983525399698393303816583093111781310932155753721993941531735586745418720951413883605974167079169405006267194605528437475074837374947778206430515203505123189139562228483399698342636298343164945374968764274251526807310444083427510770841348985018516007888005214243214559008930040563637781163657771657019929399248982835479005572731385283670910865396674416846252952854375638697265108541770731467841178504383389076467696708366326771023896484352125700966481254317582618341028389108601376581509959731187129552950606986101473468170820177880116324774253208899692385484880274075583609779288972989430837879294570280121229706141489520227464659830290814418070932493288091579097793570336610589324899561376642981967901051325920719398239234669593879009313954208368667584208267740628181172973762279233626899606279793406172071009726623136191413809490413081436399964955934023569416818945307634062929196524868737104059104700802861780572560173850336587588320951894924081158597971881087870588292877908396342864924591362366151984526113137819086773220745514774901103794081783139390626040354732846486923754576175942134915680345572730583087219745380860514173639877121186423751177069922137072557187975717143150657353038585034824027968320971603584236828586479319261694658536726641735141793184683173629319811930980245884361995117340850387731266490321483832267590090406395492752790937443374090335919201725057366965234642015457478361113451352003081669036096232028007194435953365544739475643115154795621929008113614106832468205435649322716397312322693730339507605720342093952953047774514534861349043782032905970538039891365409707870991547485703390402773605313838679554647493931753036593424102224358635237271826181170577719081700995630777290636161963581231311431459845560256494282666189876479621375952388680238586991413236992917545684615872778696617010093193422311216651976393441820115621758185016068786671191229951743060499386488738864670444801774766669982538057299519419388194891980105497263511622454405534387444159382956542337656577744986632631970439895836575592196635613262396995566147113354925197828177349316127477502152018090748274830695006150873406909533134320170821739961234915918611709178135861421643606867407188887330311774717769341224450296266341220247234346101332630738585621339000345203710550510167644057986898281076173838223033528412316310329667775781786807881443802263018822985134351339652950578168489934267509277111523082845688469013950914632741136002704736277679472199537162647870651820646306479309568328422436652082309852498151112599899008007247929411719802136395367563267040153738857321659981081103898321746415692514056505710472315048393455294721676562600234157060268728797317670003690785635748847829080770106533441465827912805318161414624565156683088817142515639511778449267115966245692046047454741050153670900476354184093428713088899397600946877178823806528018012815953276778981968303989566375826529530766065518362648442961507374749199778245421937488136492691805974670343663067669533780814869828924401869225480446407140929039404119687682769229253578475184144921906631212658620843804444150142461038117439020216311273247873505266602257162407842078878133247101050364448852722611737405206455395676199601858018352053495520268623338356952076818430075208754954151081709087353483580817873891762657825106001589226743441777664956763806222407190925382305946462183744490851841245055012795606335038355636297741143669835107606980082745381349103428331040260858720959787627646870220130238589359978692658281037247506661184540643550164813544206355025390806261390616732583324975304150025481134848614513133543553371997574890664183105109565995834256332680456513606932176469815696491978393437314698475186325679594981694383963238338543856327054124764278115681514507829775874997597411630485985517541059918916003493494826501712664393934725118688492503912361676403018898533396348381160020970744354641424600353558625560899732753338438815313269961141555191122890432852714108822043949163136985818556690991543839520914662404324647709018020410986107162678982010051699165684666905609241057549500843261434272360956104023914004254553760528334678723569179537005127327207486583802168490885014383659922180397121927000467585025914493538628585441050039845827674145635344983592261979788273506529276320003031712537602772928902623942269585221196987391462147852609207373214293158669168060715953437942292170340250030865810370366681987526152920264154434996532241942090042973281480229387563117765457693852498848978748942860795608454562287840059314344994065442168111664501697708514456937596786901189742095165818570521188693043845641477089692153942403857271959425155362152851814040400404745832756860979853057096740624187363814836620004328619736979984717035540428646143989358076028742796548747208094400660989353963726938526623271057605113812823289550100641717823971446090596329954157712870895822057280355857933685557356618409112475767136444000676350029104839213203433531496181567739710036902584560726698641026181319822945536629120661346192383436617716237575621923724277885576504294656082926272655262743378881409562677983555816070899082084588184956021405291105057258757724619603475542313026067783350303569484315912062091542128221907805663771067744564787292033773895567441564232977952907683407460148575413554865522819429307450970859613096720724942176011000748979495752131146541023974183803930339528809617864518170506467666341500877123958480222523495028044544682327164066783153382052599982547864885236722750165563526002169490606949077097658806184980200555289627242899559575037322597061288403605252002269741024653575774007305831572066780500933312586946285722044499603575808651167298063802768151709939003320971464039177595481526211301895610027711342395779901617431509838175525430054328011618115159569794309022099180312733036937013246730504686948192530710616081519468615113029800861977280196694494317091558052431870221269321226812444735367419576205717270934045139702915882362467560699694563499512034204191578105041571207340109532175778673818184965356437898177964657518927340389807066648863852246838839074090741892112133325166984001911506363747959843540464002789645778716319800904314289517684814827036158201715859594065102070922315067142314386621385650600983676797474521032838163901548089343453342462716202583133610665006994891205336133092903966411776379875669149658951043592648191426511081517494113834260576463206670039531009430660771195796889682025752321635050817397179707576165158082723982817191936813623337940287515200539058204234649253539239089061836424086630601359483807201978385690196264544431902345595300575281963739217085302879722733267483850553095771879271835463943407339553557046876851567801674082325500624782426657236814329860596377463466598116730115616217388830768050137752164896926375911096545872055461542611524238280406240981689995248385720530071413975670579434452176122427619335835249211456840152378513296738542608343328179924799131408183232273069528713266784814021518538949989345534354316207069571384843726356983729881935282812271566638062388008702255091615950413314697643345232091511914833405985184686753327795389304677285501345390850525802568104082555167331936357708162327669289151354371918586290684836828832394911918635981004199028120454595111311228746014544114443193182505145979040640383600769790637903858393189216375002286357526170371042906485056476688427926428352052342821292330072203177188166167078217329023471239855900127630071480940358782376582198405320695711949848067704924435903170579979785821202263741997569013998441212455203633784866451371427824989980417685049467587442522948093018620625989528946103000771835180380187167464078422359367684559193465913991601216590851609250321284816439028239602532986937997849881369941263402662579724281716075865699188942907220162362723436817891225975764553241435236533619723792930405693238945129470869098136996597930618487985521558457159133104562495441939497212361402230848430998399304304063067912874024258877117589373025689807329526126128409726140225635635174568928429295804625641055302777749183403180713323749529515629426002499632449012381709536300725629855226534089061868914870617489795801486900675044620875948764781640240399029386769498555765290035722981560249181527135050191799655658809852043244049010787839710662644223317526251239414531651518920581686511346696876412829359912354383370700948645564082780044281780711163333943804026859464287592048953868454623187430923519311259397255133805908956443203002098937248118944862801025096904834987244456441163686942954302521961184972694434539455947521715214667186781387032395592090607886336331559914213788904917153893183078367623915254607118605862938456066385278641144196105787695242989454326044372284527697302548476698420871464653131000846326826102455800179846513027090338885985629872348935915614536330189739878961891928204166205458824447086911846747615684473355372874463768102622661583935700520935521052156750197210182840303797920227370085342050793142915747179843699303395939918334689672250018784842951731748094204932457522425799230314265704508428807000097021095736082668671935801061830984954225529773131789078359970785057465169626166583807247000269859516655877437560081516245629954120548084597296453329563457641715791000793725912023655649149137664074945102733543271323082522358278938861185079637062186910189662457928203612840498014664280041307014629180528970706606776901586583891775115029546135806691139417917617571049502107204091090667207126350246056316304405311951680773000143372752503433067347653695014973081907531043475495849281485217809776759755869417174941965553714840705706282939096301127870755127017980379095381380754540419135165383626376557790066510242180837535080146933908092805198038878191608267498326575717373175350264549928540964097245497421803062657356071718144911016882307660363665556029742113785814010550710890307946904120873169689617250827457245856599959452928129607782116978200744859537689309094885065618397654969896749818677172264790266150026401845278852827251196158015118603408852658557144288643226665241502154540776060249159292799871630170439634746025009103755027696895148978207241138420690348765727551898620755699568507199142155245860516591207470940237128230117304455571298978950165954549468031404615841600067539197038899060688704471392186949332252448379244928466008546177834468776737105583443285293953411431248679329779216327809507978323241923258967645304462326424804003476050229397083599830845369410760195942884945507939505125729778060443436677363095125303964899802841548601078322629970886782721198545979021339576421474163120340441997992535808208220489603461296964500105980686506515451912926692301547263445639729453386846766371490075675161409160730086395681768456234856294811515759577271665071412970361665383992755909412273965100207289461447948459297240380291695374274470886602792011848974976442359244531766330044663018253601635295763886315357435606265124345783209839506425274922816511046029450080323142624822641584760844090881958351670269014399201428472348801795137191050367880385168190706736478120450115390883950795156638343595045297865009584818747471306025540219635026403371636443558238886375493861475008950528327133718837964752530791879190338167418618595021021015030790363271758734650112441306270544160214631531180448457706147843126221218847007299648215105039614026611580560702728963793063855959302821528027835677404842851322452224459926823264748438724919984932162058198906405311988018722438098191474147383156287436035406220869946127969085424310200638039343555356840043090880347773059815263049293501833051892453440283610665910508632131120985305282312125502534035248775631658791793512359885641650773543203166477422982685915768858531193336712430328635469088171943301733480639919031400445916984955551823305368232883232406234661478599896129601426466187332649013395181141066576404949668482075077533486478677790234834742101738657712892501086911148293467520999561048554979275192243903232738595830664093706824952108854896905098711767188549720905793685662421469249115374083052277047691059388543859652483510318024364353831678122426628117059918632645315895788550832155458595816879267181114158069637535425019924982531157722392074964364901398140851112713009967296875848649046184697039141789374571299286888465484708273755328805177291589403164410590890475211333710168989450234760103928568745936399956737851683798938315788478484456603325881294690878004451836931044820602948255078828415815654941530673048547594354567497135286311714979960599421754102161433813181196195485764754732462926580985470368091760923100207754959865061089668141523659127909569341512480779239944881758398623971575803161380950916696949919791699180329972308074154135761719470284298002368582363123108675918049671145320195680449507882335564294077032425129213287220315046004366741438047347689203812295188591095561398352623441060780128003192670267834381978408301744883031444814387767942361278763502395826686683777361353012691965344194338408812913315298931878799281421472406398415575099048063242492685367595913278612970939328681139620290809487221680714080200980979126538471086033393556829024707743538671549746766332861051186295352060199333826216878380182558328526238745541920883627988261766722989290999677403616343374661719826926986226233037220496435431936777138993933393758720544903266238675383507719190865396133514316041423211425250188454433424904954284544327281709208772261548467324630460714257694873422030009250093826951659162235502132671371446404801288850977350583160674801081258520755875261869396860533462926033708612582865431541076311760211917326698717271774973742809333025705075368880188586454124342759696446077017362527082944806479419221530544423071150893457613061120269011081379264067305499611006986767407682208540206727441108322176068971530897013011540074175093777790346205012494404532600489807279049365714965513493213628613363603086302083968482112956068827663285354756031184154005537347113440944042568064709817287420923228174052559879991052586125108394613749178308940437557966230955919305202101083944445378697473699802073830522878351768271474929580496549254954914522158629010988543837798883292785057365679184745107703339243909710306735883485090412795253707281910196588633037078997228285751204684818894654103405294194062853167946240133618872776437097830854553898197141967931682174875016988186382400465447330969257554047439402099961483036244249143096350805266495600022876438944260130477627153713229820017554814478465438808138164218944599658567447137972359620847976207765036987413920710125681164333536429929102986356373646902264083766174237198232685962400489437165660195813552010905043421772269647937263477293707010027974136785420237399793463733837567772845820731138331315743885648075549957327409736451022030859120856235405991793738910943910724266084675872899494807846614935347860376925539542092076651189027699158988298137905055805306735655923069136645957801159545408819407274860812975808474324649839834390128680843241125718831260683117318493277048882698609993364618498292904136483698537601003636706002187795738732559561698076519199076984383470371932913967285828474113733738539156916821631902548631216809636113773963136392807854601343789937013938625505840423984585523645471936353996999216032335966893235067702869467619359660700707786790329943845912177804334684949919680815205156695306731016208252332610580885793355924011764461901519405107123848416407860837592842974213025046900697393137565422629675957925588202823594961344640589387454256187144524955583725365706964213594206773172027649694258465873276835921190772138899712705467606163027199804739772845107929112817927011687134532129474525545086396799896294149590597110476490625704721945259274014299124546616223171679138377780290093864068325932954877523531945440725188869096234506892700284365080074083899355205581301426603213577167559239575787547367864709161245651625661473493928382257488384109001761152039175383644495162812760448859805479768430457771637786667004442641110865805831777617914432255204410931335327629737936704205916711505003857165645700083259660194270903592489650295382194598836757696796142967229693644754068456551434842027631823306700832174204649962908857442726953263975422626611650171719236575601797334785550017269135076945300710738499188742926826835918826490444730873248028777096453819268041428176681558253673074677979602920188921384796071406748360619323920365565806554097436377402730072301351734301326737449089818946056407251853832644036542180656814280981975629066149003623186158620595319485294800887162078970578604987376393539148915321350593759600496961238762664287912690516269166683003777815245144777066624412250708967766779222333476465266400897627654915758690845062237414254362095659162772752764677441148218298009426395730996952665847308742388947417083325333139698876413753239991180115636503015064857267411211195488560128344426360754279588487379728260139441546541882816089360239331288033840869047474735378999567693209312436159361645402114590512808274121812133205311717044398226055364075568396607903151322528577033229128704098111892260345591119260560932718180734315911919710876326707740465590540599908446072285853334138765738773478780297199102129068293973189279159191148811671776706209046495980277044462771781633244728180391603588757275445603856730857232510129620333143821885169433937382525303060992694247732065720043280746796689048824187882065467761125956303184114813520567284476772065706249976903951266799034424154758663317338499970077265061958795702663602069388010330588456257873413184385613935106140224422512188500333444092098624143099571876203502651061939658594102804714587373444793943721128073562913325221450582635807988391893973205586749710703363771802875434921918899730380160645889891426787395355452346064981656458909662951721124805806834892557369127583780044609856874038103392651661115901534064257134484632976908456444103361059601502227203514981652641342309428560990063890497471162960743796954142396025532618130678639009873351637496046698503774400794032532448429060645067492749500408486899440054242403286832599767633839162325388193991644532539875628079983910773677860909052204376404170207489013450504800748789909899993381923292391733807989074009234547577317360763778043780671355373252055302438529025987927690066886526439246768553014816818299125263347629367924619354342568243677484591771434556116344840661083985019813612377455737861188902185344555340034710167602569615616062135362677229331148509256389320247942717913580321405711591872556575034466891409980513173939496324004185529608491891543356336681936443898376919470810242055057926996117124336677682342807264310118062721127397428632761466328804393698439421498033884607258609466532016812143226450681004119402475938842083286634123370701525270743810691701265206571675516967098769554528045010759273410090651889897810710033185016032583448760064426658626094728767568087448294404649890522155441856529479052245568352248642972314411643832558939406397147232779124377262024601248185945002352993464140039817985144304112015888969683850250263108401435610921400792491083567293067116355159302131486322910182964127490086786550192781255016523041724009694491600789271324648534148263108112182469494273098082598289278230367514149595292427461406868740269056310217261167567876974425109689852873627970432038425244410049137031969548326486453833766998235239702738480394710885105467531934205518971213172223091459505919286871156961065397479717510987124072488808328450300088904748302476159132280452289396767709490697277110315220794333906109199595706827974185487706583243095416653166142315859300966216251416577934290732919947526909894531178564029065129393824983778802990068555042184511271705600321148438321842311565238180663571439319414593455179545478750547185042131761935756251566268510766825004492011198482924072089959311874668054589171174369132465950661867389368418231856026601919626781341660472129944867135991174930950892155478559671202216299631533113882323673213919861925225862162597693405987164248015831356586489068974844680765214243112720669563270474381010259701147621438845720749809042470410768756507747205104013418124562844462640020837836512281356041954638929960298002832781770634569792125030558478807250458610788277680718841739797321136883251751077578547355136346460508782261237663191118646967455203567050426871080251648003651729305892576370081189746603387262573769413136156336510353132343361551200627382301765238810709950903301530148569045153302919497685984742085976106136937956854813702738170999296587897880835556114116352735669488602979259380653317288077911848007993217810492728985252723869312925643619096758485093473745571633159924850986982208961956748157877272707831237247703080753134320810500818275199003959737794638909137216070430143435599548313607114898553755702680599648506856105330466988248001779568948403942793683584964879492045988362495627456110925946554217441406469528326047360845249906994680788109692578214306501832741337433351022313891179536984835814182782447316134965629907386249854177318956814895863557569911576769982387944267189039506158968542068106870989525539718174878200925346747743263873312107377781526336291218174278730742589792373367087455830428731069722770279981888943356396221379162298367598946561484124123944899423747935901232650489219363096575968686643490400564892752760776007900735491173194385204681540795630022857711247772101121673398267264184659636311726218314812266036389449317096343622629162050642888573873434480867130810114480747844703465053599569469770638067468959348332661426012632560050483985816530869468623880026652957015839414735416135384095478254945654740216664287040469436090087560876482957536128539841842653192479219793612495401238556199037536830867620774524971580362421023160669583047789460340157415013769300648286029458388833774305350165574791325958114364837193452548255668232315063960513419761642528917391277220589609213463484043742211732155717686875437806454318225954096443452447350496412270683105091539648211217605023028017114152432241876930115293131622116338370934956644739220640500341580799759028193425735800726169361332750981008637761554467551643836639979215939392148679390806462024976280685520014181784430688200297101687092285396401646584068797855380425122209920254425548638556303368030306358126088230245960477736183618345319530328989752412867234355928187804986566315113222629111415568394113828167159952645067354683767908326880301482267541895623508375902317358771994208442800663492930710041281633905962762470060041997592103540525975578548097030130818577942935874210244289199449345161358600699114438833806596890683250703816312885374861611533971179981264334403672267867288025685793485174513232793942118648668298855597261416532076445621513247050310855875971275276683235567895966257470195657230341612589199258897267462981038918187312627455634004602600063865816340312464392407083338006263784508420706528670827351408656219712615838954729516880557600510287275025423933510188764247637633784186742879336265446729963940678742858644410811657179545190591007587195887782804631236022161116383019544505679970391317666581074753907782450621986853818559543794191754524795148665289508831486008898283769585459846260992530638833137733757264003575548696152995919283729528599098908184181138388842529850617985273582135424266020170813542826926932260388669105563959134697974181565831895182171262663470559459943686904134415251123714866463948861051427367466636730183028435280329918321774945182977131722803102829934676561414606998871112236443337303390406781192765677465689019515872975615023976039079765667018986140454338881443418903675798754664557612121120032413089709734326834308200252550135881558453386031187238216417094611568369506300593416581759057862097069459584034241802997145802765064225096625036676310565642107185254120401563823892360611975887803202449444094567144996969925869098578609123944086176620501054312279780457901684907768678672352194588353269803285381107009120544781700325443585047272365877212720693357027470764757713536046968561708392562101286273688472468007667793178150607779620386736478087101685770129358717295451956457538080093135869440639977202478350012766747318055881680061600754670563958079824640751622221643793339769068650392273398517516242701350006526372962058044488382901564343577055646469427309522182267890359821327595251192723709980776724153335391829008026133006766435613320721077570882364639366186597810087657488175176968452365509625308978259781144998965707353164776458883008866476957928780305199770072058399971431071341321494618842062136441558798672498496835263059116762909162752445032516701111706890691230207845638744774012234952380386507024909265987928522563608230809559147647258914457923175754545403169309918544719830285518140366681143094993557587096078954854254674220101216772134025060167006311831219920133709120799368511527883904470820705897448288237854397496330951289255962941093281263115644200564707080749574827685837623767217369959654759208233435400154412862840939359128896416570236917774052252996486880551926007462068959894060449087461400060282652006385968452074520763767542522736992912950194048444966115722099162024649529944172036247579532963697456295067646129272593003957124417105389780286817889826525953310255891110150609880448372961873807199595386825894113392178553308319901613830991236308641543351183452645677160627546835044557526157477742360114920614508071120213757216111381879845864112614835686500592066190047314123757467544311236300689435524711495311064898294617334256071999216474595783331036054008832696703997956328192543314793816038963712216236600008399458374348078953408712262319639486391131277923690484264790824111649644041260914033109083289963413732726488494202864626677826484219133032923142515959053921165457635985259139906844982829138256915046729736571500741472719409754763680775364419098595856202713847988650281761311179416543162864260982414753783390475819680548536339878323543220619102607470274360178403281501271923896185356226112708882132218627200732587139399777340719635327825595610865403639058649103819116754388486667749073786133278991791639149702828384367949150367576487625670314012132494175206506034669542863524018966358311910821608257734675210398039087026035354518226504660516742448134250076324402049389112763244480224831433792555383254106206797432059806852421305552235171871788493958089465619066975427124282277922213633538501214131033126042211963909651944879539123537916415855453102089957641543945744784960821145207746793088604579643290169158665607391355659411694414535753511778425737438046997075565874132232908962151695562659531486905233474518100919596029820683545084628952519879401022864981647587904857966296863493287538684639883144690286818613465150957667064276939032880748669773059580979493778202254134679946633346579333073897286714542688039733084814218333992869937301822332492840711444755850222247387722949338187055314612744989973699714914821617557984072179065799851075992082216100792734358957296588345785168051287553632021423602982300219685293080589380519716063715434195431742949835234882428873224190095422884842269214488990321408159716086921109653680556320962206457617386166321648863151095325737632673570954241469668240712796067409393611563612136583540789667895491854199683935205521166614171379102400986880698365843106896294664157928736451992192668717731562862030730679248385959454952133901014996012801079679640583180292939671085125115842008082106952818744571970669576594121797716245678903967976288918617023696194126097642507081555831746348600114549754111698772144804767596692552375508790864223890168813628481366901291733951315085266481003030755842096900114137603305807028170815336751175457697990265987566985711332267012201678580381082392838895173381726921466271435511644107157066971596940656217569074848126107233464812323162334651967425178363570028614847395254793137087764291799977100200203590249351884972525097730622361265268379423331998349183122224709400287883784177953538348566447414215189057661833843211476846681537458067006340960013844211062883825538378969915416249403210155961475072527693333625446285115896042291426785147754219101712325244971257712993129799752293981061407876678221608871307465090574205304958670280006833647411522912331014764042651497859544280134715410652325032695800797129640469506188469082088098965039134398666736791638283892070926547575351514363792627484669074711615739534791274010092116439854354680133424432559818002556246248325320861366072505408016165679482297264426992063952571046057043891365792905042609427982453785610253782871151666943210302753229746515204793572613578320491512614283406305714608399079583370299806445888270996490095829076163767454676188065058961877950398660179698224498000448462747872950799739138450366335197273736898197602032767933313861324502134654915874057463698275366913631743768558096732566295666018134626869141258063122515689291959833108636678429278441104539527431416117048461034867411035062304513473709074019025947703337370258348977837410808184915201191651036315718770477144643456182835481778579388687932562627796276450034878850483043845382637944388699768006523916782056026444226869852689202334484107629200142679171549549213697804630761790572954384302007657568131692928637862273946125848563866105558580298081462989950141193687572275020451491358691937497406333976920380199705388020081900749903195698672865867642706285184234160911239368729799146504875901336259811229298335455080693850611696774983461882465258533844910897177020617278962791400235989753324969934310195548179815250236218553965190769065404551121462606021758218072587495133076204868786632591537482106787073569978263479836483697440617887609505920420872833314971590880310704053075201996031419956503936914336869120273826794966608701742842484110814407198139910738938536146501773017980817023127767061440674206341489735457569260859701921883042831041946257266621261184304487828684513422149332267695846426558281583241430925956575131924031449623364539259447229681480385270047756592628828282191176416602567685786663833864621101844027493377891869819043406954129128777722584886505663146235666885927093217062349060257193660370701619882452337280346392898368771045160800407450743492691427862518143237104999049356474053280361642690394772671759892114792807165199456968668844686240450529041664014046271472321939285410245793451422200865571379476405354207466877559677376453555394967883685255434825704595469085994148242261406732603235722479922415286715306889268788205243954673868576664894656415654620518414755700523317702451722624817738960195330512859942584421797559295572306629881143902656581167048668167807950622570383961292571106958469768449071433898525575860455724623801133898443599614208773138421073431275850545933525843961739303556953501670312971552753358166006569334415779652346516441785547928670597783599591079071004218500235634057094634307457044242273668769610498981388699726019057294706005206704721214812969814282105293691312914368291279698409494326684204735889300102790507626678722577336590753626167260455198169204334992896381282235370028590443455220491308237875705494619426360303116074327518177576452739348768922569570669381920678161419412553666127169751629336158083001829054149633048751837807361945672438574257881697874515227222370628896728243288635792170714733452904315446723144709693817481917209839363826434207766811588267370144231426248886614153113995024461611727977253538730247658944504273737862746286203277553349234117609814925998813138513142374422137314937426276590045080375568450894979671071584497242231994869933697861559018712144670829092394663147741976755848636774960201969481882234688050154550745642032462263793601576843580503817154665265502525207779903021369664918039574012537438914377896986523682137113911819486856780214253909784486344577901215142768295219058107480184419147244298948493070348938392249121495849892976859484765861929391365423353835038684767590230487999475195138369739999462414109495924400866972317350780570464174560726846950414235787082495274086946569664047705661590052659361428690346647990843003246321489278866497225818338779913219826151944216433441997344970506248739546012149040527534735361394617324311949944601893572792364766616383762627106504903898119133724040510396067955399327800841914779362289105128235598198530540608213164642042658192523971091620366388970567338156437783204598643772556402485244440428173615210457462646400073371840178513423092859370935627606986733666310411624721483230508605692166761364512458303816930999174993015455900727081464469596780348704545973573665190543098191627533904623249559051811523384879019579335274661559261891186908836927282594170209157528453209043059279152574360080627987439080972054558580844174612119496647943727328533429872412057303975983959103191561256712880267291715959267076983118075512479182603278602740177901133313487320700233091116894790816043971533290892738955317571358695626104172397692616369675084171507453803250528193497195117205850406402464424985117273298977804657517607343635086256463057052208486982797836269534849867570843207954421898016582610929228924945086478523595610676803436517637602653047656471843829365403228292374424592965138173244727948629562631238194069240084741968999914018288301559145216883778546762574635837603626726584419189434310450389805929529790280319947220882111790984241044819334249679452919711321550985058602961878144233091179010820852004147123943741340109499254463449109647808258630321557926549353261020230822547334560964205373387341337546828103927489594823772476486411546033711648128968245166460186257693038494870273450480819435654407783517853269921487440919675822335197767075550962086043452487204793699985534365280010936807541323192627417163074709700672724875498725088460528379882645500620852487287522845456863193822488609140230089003374262038890039838851099841063828148138730949020175851057842382119079024600815791077081604734990610975248899904131347035227877640036535655745709981111114958764144513761260108343152070735950127419245122542123715957853335202872643693267025977523350252119912877402857071427471017786220976460035629376368213149984064469400578569145999116853824948197362000928885040390690595369620992403263240136280251677137012810210794121312578447020473940383214566821583689668178826713289239262032250915852926573899089014250379861528365751953385843288476158807056646673780447251877415076163842999194804078230036133572823406627106921290116046572632203552744832332684335091966238690843321049920077347371360526704030612705998022501966681078244031584174271300197915366914644396320511992699960599765173448719195241622675823817290321690120201979551970010285112514417156950311978573757482148513191626393439327454503123238267658363169965730837148464979665827964412480034926454124631255798117122027103295823655792498178836675799835042032471867679639893802424210811428205213909989384678866732110068569293217226916089140491573531802483505565135581394407843242485809071074578913445478310669692360577213814462709397314699409362112293425638087602279169745908031237049405061784102643283172649026422685713123307681871911956338022583330099237156768393677424943105367360763759289025153975409953638822113382404353810284829729993972879427193929238617014468114128317126793582307621150264556571922347653278700728456017386196277942174798757179510937917491970817485063848268544616232662403691272287543999072406840699956945926798725683259098227019493367781976542114909557258965705152469988577844541516822477646248555808486244130791581320331960285352732603377416097593236131242919694243065745963046167764802439012632824459380467543384174511851254243910720153695042183813668556499227137089576034649069208790894276634676559894704260229423649453538163552970996816900573320022043563585270780939600733799848979089701282871713792710694803041261786266557802091986466229704811085294424735323819241743911389818439479561798987933294801165567098539887114154031206713309183543337354333480831502316775222933346504579904512709667519146041744681886796674500643841730858830817977985688196600660511696400073224086976145001758665788093997103680680824099470818281752778139490918021692524179633767489586005110645241476394037984092988143196567700777239410831730025910502775846173075513017787770830456264842800778763672851267938489883755418873690982476346613792714827170223438183053317425426904039487300875903665766761379717877271004015308383680542901842392888461393546042393309738697292912039992695507076596278500650141130828661973974746800613306178976959058498890040532875584659870025295786735473476499481129274159086733408357822229700689734780599626667986951108287527362091618358815177806923808263513386899773208314922213634000425288265460411302858638586579406388297550368220971467189260193296283936533570328651300957887799391265180600653566013810032769126558095215495217138596179964485560773255200431333985076839566744746135142423561316566715454451692400206676774512862743983631649290167544273636988233450737575280143400335473602314927265455957345569131662533809481799177343829132674426154956455428190360189889944652016039124844829256818634365258973852721547486324893387919911019725745518194384837288102922974625534751477023464814311381365470175695226835801306876468699345203273874550631474171035994993444941780853223554580803574222155704815671801697557306508307063668760484538900327089839740697508964368797490375407482596151359622684257025385206914905759916268983545563587988426543307352454714447357237913639569647779143792645077581473069202074074728449860484062129359736283977721690561330076466665441872756497767642818495794278218800600999179136688980127775901928020816598606346384374928823132004810666168747116037271248890191535397430933248124496941328522846345844353196717682140780248272207727191242605588906720458226753282721556713366080699667029223892678353074230117412102300950425684544567953222219071030344504238659997512139379827999257812022835092271314835188520787191507892050546053354650679882402115804532301288530529243929555869280364272796343271630303683047710896082833928614412813215308090547786296556611879029116613863590754514375205644665602459701850785445698138608981699263276052787952150567570093879033617770408999568890654276339199860800647048593829116510968197998562346729942327237499286954882090559429132537134266002541468728582550784501270973764673999140011292061614714991684193424948535662411501434230898636375926653944812806587783212700818521357181393322656536317950288071938536888435895236001170307935703828315690006958652472691875711240908107088895486483224494282926825307688300266824879516528036029613394386718856237096763854283676697566907500391180170227678224089778307628228831596699243563663096729680786770103048785758900452141444827554734898356133805129337470367758672346169133375203388027197680640022598345645983473870000934312523049927126641049584780875511501395096310220142072687835480499848613558624920404288751083757164459894981025962927037274503612979228022558343800854209131293044824571325946224752917789102504012917215824864867476869754886380570169126027410324693269515183516800334127068049121114502937983561604793685393154170150138557941550515125698576038512878763437887192988565555374365706368518943606348452205817802851704998854175858379607669563209029893153201837935595845218318732379175332413325251555416058481073427089203339239758871965440132312797611514178387826891155978846160565580815870164813566861986824911518880879282778159745855235891508435401736131141706525664450789895038608662710507403207235307825987716779569661422455209713153366031679299361098033740530393381920400815007738964810081854991056953857200366292264650328545105598526359660219944023894369290292626306094559439328736454767415919743222388850249349407837844819621258887306413187203303978362720453735979499380874035190636063303647117874002771632613768085374558874031185398548223139124153777542260920499599029875351825402790167403458583053392753126428152371157525870000073132376425837102761195146496250553109509714808394111792346347135286713800732644669846288306391837090880133112945033532803284335697306842016795173086310269719133433536054408699225977222011119541938342371057987280961568540922419252590764862581431448025559338697776280889696857528299655005405206143303250356678847296398320786058834246313880243366317742634024060290871552394703557494885796438818327138290969554885105629812959214123563466937882961736278692957044479463328818636716823383822913570417380436735979955706285503071564249836299448700597334214733236963911402507139980564193208409834797107389250740152764490164956520323050740029549139371484707297691742187700512794159691040811204483141909988737515488942598515959779763814419093400322057979717160764565873050370574936108659142158306458536059824460257982598396527124122731630109466758793728809335124203341967721916377636410207481060708848738183924751827795259780940236052954271236281339049422245261787915879248861012081544492480388933407245801595788870142520536045470241228965341074592948951163200111447943570306287937566956805742097516762947597901436573135991559664884589355979347589491092950465630126906266012821553659178500715187220125345982284132315698825293904728837721659728707266286435990888244903229026630180340993300714411516295512568594061588721549472321473905114921852221643315377088870766328606150321689115825129087010841774266706587588323146305069283878725073658777095320213729072951965155631328454327442499085539857535970495421863138071947795149873586028591505916428446326822795155169180095076756003142933243022093418084160592271515434552585359778515476922043154667025366239494849503727719347426423978208223885537003395624226938648034034147385927177629523889157457005933929804924726749802017912884901754711668020308940468180008617423493741847322418860945015065770898163211150714749259227411111112453822823871419019351572462230015269899029272280551608983801076458978845979738221897561283022868666834209321220706846962478185410827587439686326218933319664902265818858736428493640571293095657018483325980319022441941528602842894285594875539838540199747294356445211343387201673274057190155384123993700901248709064995086200322476985805303281978335728675140829480798661436866254916931736919494931753949282739464325564453322617575157460818959635486854628899050854821762017641682333628022593817787036467498726999806426198330728391044388886034332614288191065608749698793167851932125951027509501695250381471773562632599718512461032257101608208895324825154923351213855824365143539596830833165313070003816672711634195268467805798477812884035249803145327747586781974948372667442750030980042021197361969874384549548506700192194912399578746750968867873262858841493145932818114854534001659164924932079870881672594671364689821726746878939702083910166752628660846575206478901798210121693192001520254410425349511590262970437634670639697787087692558998692132855805407448403760679208691861312026346364065414793769446895607650558319726964913114675117540984004711889050686553835539906865951995659513365034345099957931716374003247166058901900685266916461328779689024459193612818740642224924276689499164643218709390750235672895163903715884246875550847514476703289702087388861297170703009030092531889264943093228439957660924033564420919001782236378443929485012461349112627272949184654394828716887663206394854329482329952930641287323283908214861943262903327149695830478444887710664702841465829817365031925786143904056308994828734805464104186896864870299720932907571969812302137565357986294274036042489187462571237457802151848675479484963802590507225910305418920882824767055916559277348751023219247965515479330822345710733689743586400858857896882510191966102189909146871646884216410468998757620853200829444129235463007515766498246947358277392759492267710347275628208395801249852758772189776050943304269304196466403801643236000064529730850145677527302059917107782841679615346993637941373453936018859837588903389185158906432611129653614558718038895649675313774684985227839594443902716081194390644322887068826196740182294082598107911502787325566500128000805023429132898660307461597337069013875211363747455571139758858188546379875260527093770858731653585372013373290514220939998548285948256646580526966361922530423680565278167255225036327882725741598156352657941152027275849793713672513517317063525945172775155952699722723477622903651295232202726319293609800664393658308766417674746418782501225342129571706135636453244680354164924800313974826869999616344630723617412309908687493545691318431864315979117928521376117077011853368568368265683848298961945741810472721172083559887003631067726811681281452821398019762842477488145293251718791810196466231269054114768828721846855697725406215461300199662907220861925065538814808425793194318341696846604968757752824854676338894843540851910568165359734184663715534453030967536951607290104804047491297699033650325746373242395529476924271708918776548806482056117660227609134384901325307661991146084059731917903405938431602326783534979875137586148078464643533359296948701505532003255940262359919874053134636673951893810920329780328802915237116025666396509107881814795891825704466725052630630123885654749759150055908392165602088497633811873858228587885015710177244409057185894023344099466464152944985498238615036815154643229302028879688831039438789394377219815812720447504990428939819143896002556799266861571827665132305108687679616412276455071860000696107503303692196015748633707776447833240228946123620596762666225698154677028161505426716093150325368686770061262922223920514068916729023791467799450984170019856331922855265804275506642575418554414654208373607244479884231162766863456913344869416710438439703637052643090805277334385121293578293760877483458049716928644274562983258758715899530127268623759678904443374380769372590891752022276165981661858081981947245338491931754798414372888079223303840120110400666162525485083299806954018744128833997914596978577467974020315286862747278433742576707116422495348847812507277680235901258436515263736764271495374235812645526611635985193354212136448654657638653226638804175830410687219349023870016776053724948884822271750002782995012896281989924236517896429097609158391897855249729552054508320534487391363315778819436538640737139719626837379579545617870317131343142350622917779380505206810445560773675007997130525789570653182726720983112678792527103932950238234170579007404284863531450231612273399040342466013326616249673453632422799563127636139853251322494287389770533966235504386819745485933311630999101837435311437424394198647025979055935357038061390006650023037034235644196460294945720362390458298768868818180800995288757359967988587938484657825515889199684763138751693316217856394767925867076448638044940895963266415455216584480508659967058544758627690052664372147038788612782923926050987891643903910575054197917144506054876872646998052166919923376369515305321272697577586563692884718383483939576491851909435893245513575123459218734688555734146178436661591969232375534002080279332358369686923433159834878423590963130120503634605961901050772701990481387178042615950365786754102104225080169811451342081771068100716364120245825862852586112146152348955780796000202877326214382505350026435455893144843166045207823837243272544203569097031153243352886949297908660941089310896103067649791727173528774178105848325998121441219197273553407228493847560855500435868606491969175692797805356318676693854504871433615523594814861134805400889852313538406064266847224302594303342686078651374061013085996554181912590920049264290486128487581574261528712988291110785068232076131336012533370949258015744282818367518006992345773877913266508480789752691819509414945920405746846387304003286343255896205891384728380832128804979458810842064883870834300441248872932849997010483092379964986448130135635268322351962221989252297338104016800597469611964927666215154643639102542272612435742444694236969027037319335779758718960986558013996585927830251836056597485043890734155025834611155209625093247942236139596288539086527514766839461318694497411728723497072017058151171437561210149354858745384941588720143138827817576380238042845648503343053487061637330163874416454272975220150815037852048204206660813556501221756710551647913378212374810132653158614987244306410159485794235320931888930413254407314838842502075899723074091722046411002554997815666892664582815141584902716375568006285957245461213427794823562049432125111240080118059480651608535900527797213055999738486258802041423279047666928025788733060209545504497409880712332136609488415847049815600611437253475055631189041531155395528009723203710220690113835271870707918336450781989843403185956357319111630031938649354598390535598009631731713922782568057159404763694183776545224009445052538564444102334486067143640216994614553683562564429536513396444184299073498671730249202271844472750065242466164135151008583805754421493578274438438353428806527272882080746071981695779711501844798577647620075676904024793661722349183131074402663053373240864718108964689253835271469613034578940115010721530721047416258130983742576761921057046529016868084395134302089881840405427567350561479448640241264785851355308323650438542870251814822966577432020700646978717801100469316948686884003618634538891398443614125181287714908037810234318298927484620379567236275298384617098861747271489506344790074954238742892868306985948858206833608904142890577648961305733020033735581522984178899552029621710075590845977280144736149766723372579413876177629482567663268978667133477287490974271743184696198740528993999103881338059208309569761074398888988881162387706378467571771825608556979568560310936625011069665447917090485580625697230292026282317183007563690231952477047012362493605337843093468348052123428989681357733566624003538863470321796709960191900527078327382812189528247229897988679668549721273149055578171032419967269895681857176884521820131728779966912415220800803063779677112238458593608184980859080783099154224153774692001886100062668004257889624786377971829738117227325391614931990775650957349056995223591258459442928834351902280570453537449296681593667659126879633906842035810807612800721563604369072287806452420546398850156330012861389366070266923580941310772061803168349648209889376992612172832944091893494506510496720398719779503828704397154349056355567248168287173566552858913351471873477936368964096020143439857913310113881209186110485851234114212020271642123445936493508422309385791923404206584585617763125295131440497094216322841584393218852495437525221055794058851600574380447794878717644057632549821858612994266009443995589941063117360071083431822176552636085348654148480997785812399021156396199829666968798243467762958708467068159693850396141692920007051005937323076979190743002990004393163467235188398275445505879506811161198685431370932489588801313549577282520130477454144062819423543315020457330276849002329694303560786639135686268881488307258948433134185836370303492573628922253110924180862203166016137934833615340934531592826719565116317969587206129761835632475480720720225249254454457720500918331175581543697282722382297292686484025909158132723460573726887691218071486977454709734257402802863306504074255214311126711874850117600483723610864927618253627109718237996443090963551529016162631764223917946110856264002802824198775021217047638894470750373368630842461443587920634702249797385359180276160942407510625498048587542408903762994074726818226660512952519646227274079959599885199282391688085990976393515614551544487495738506975730936586515018026193301103520240096845633760032444922262762272595512078609546746683780501218845147235990602374156043895985658982922195616447649452902841425064666138571160862381188893225691640760684359712586352188134730362417152092607972591783689471965296016940067006914868581594904851625125299608884020338330360902418473890633169383055765655110436638801247781118744265581230570075609653336960413207829373940227427167658143911684748696946196086792989482068346559557336614727665533541121733887259382393419095912497190663584177155079869411744708918780525055365066210716739376333555319641930463726228826848145926118000146869189604033301942875962875300021871402379983069242068361219242348090816292794339956094968423076888466743824247822186682875748326125549329840718766800660755802200892779735235819787287550487612232201084304352603708340737589066303820034025709294435484609811736509726758224017901110511467283518435874191769580361858516167172031750011952770768906209303625502404068095462511385479094708337551505207641445026479290860065621818247909808890546219651619391896746528703334320375876641307198085078873506156324954865370259683746962877359315588235624378958875301846515400490881828279473880336856258868587662330119789948981607288387409544528305059703896264089335018837129354200255939674147435730889731136101517017702830731374636748398407878235442778709561071436553067357124657012016812038558155862439106846931851261196550067377574935734567847328389708116304773000317113008270366064834298277993369432946174488170012840578136665148044485090330083853806409334143956576506408608227474211606385521777506510290449940524012641116760497520645642591815851324580552433490425175729696070998933953359632420132955700193106067451302837099261441079752509900651323291429019754858828868467561477813700432801021025057680492454964239943311458843557784424318982036245075496150031471110874735622123012926484915538684886949165463921290679085096190993510075193088256539259237979023175767435040211200924546372269159550552764646834745976871676602930674759503092026031043436358147940293844438029724652760658660849501409034549347671917011031572443651123400225067076160764012190932808464476830666737667571612116230607803442293720977548980433017972049852599678485256911617438215812802810778705166497118870692914873945268557122372794060976916096910112643533572915235509410574512734081183357271044849239187637576176782892691529117947255936695479208034711672574439713466863437067451018512786525533847564557494030653548574885439851529933077937213259508484227750425028562202827420543586250885748844484922841553871968350530758458646789382304340061535812233867695059381399954959292556401034851405673847647888511257672403742521246659369596709128392772870773914124378787567226400790631165520434346880230227895584226912825466201489056850162005328986614388169514446141900285466187129747759766790330473724293318132586381912424355289020859090939893967765466603044384744111010352366891489129522958212114616521058870493399008198833880750865523919365505794581214345909143289589788221460785452280573568365787337492249361504212787833962880703893314770170716859945219837362012904417092637817002364787920518884979502602306483436610786457578781345349250674449897299831697974947990503299693265317692184456502405078217716761737990255052595440067000800067932701987815020350847709449244125862842452545981912653389522295346620809188664494652616469467710553139304919417406528094677385589473991913256343213342211175527633072218528096075834124417799658059986247968316841981169191584292586320988420355658418602008906277323084638556089750493933177146927194831834872558655513133259076939547108698227224754303885479283043428202386221579286065052930597456188531323126949946118323178184705254684437210146205627035224909306487860986551026017406406360658435026348640382967516506954320288236487466557355209763580599375831535279422794019274252195502136945673837889252410826121365983760185439531769191560472367693721870793198145599052382705049643815351694663002666115509695283841101872396404791773344486800718733110645398442378912762279821106773998686444352061460143695919962743971391458304833255045673900702978071233326792973324351118588924010544285224168488628356306544402937167857324164665917577947087138376491720475961795154046219645435441006179087717454223807647608326608677414436520486025846570173667319665676148582914589229792151089456706815402812313093300808579656802364036892192684699916168330571257962859782165292284169537141549363950259036118482240109746467151813269459389387053860939962058171161507334163875036703732004852603752922921317922431423611592399418283356170441363590231102977814653963263605574110233312345157913447951378744892786935917794018895672088499772165293696091574394302830050085098608421238430616824856184417675124623629119417762390373929227481002129089130613398059828593440516800985773843539113158176186979646295790023778357406855218990971985277288809386373553781800475859332708474736993893817453261297421008410745170432884420208113016728362758116297956214694008561963524584568938666193200128265854234261841085905810409801127943874102986615616671088495493849851347126896457898233106617959390768977321265193802589601273788078234531502672656811838169080287241551841856773908228069058651170951834919893977461116117400773394097739527334443118563504461891742709939714470222906045829486982169027710356979719534196604648101505134641200910466887005534650875770459536060501547960996315690817101921402896727407104316160402291371399721049779709939241235641200816350246319192812926148204371702682704270783805202653645001903546554873415606581647335553960728159683340416020024136615420389788579069690658006052916212704225078630433451954500887788765783417832596061892340479771124392283153815751737853127842452648428585559607077277443197623739136076197173172924271443492276895664888291589488909491461407733110490637919279684303860467225836403847256395734698659888590263662470644612202839150361374980383284744172845097636163780857122060030089344184612416529944225910501746994012333904723716735144309169843528275143731026168404018132063106337421925779460096895421770806675879520835178724509133173904231379217697600974735829716230680014587041153330125011184257388982774512795786190851376241478494203956841497136032447150133693315098636442754178784878650959635581509010544395089140772957327911882783314690357330890411992371758264090719283344433635557314974344689393392929584247907643646888204142126859239478280617884954073925804511636117296102671323358119258492872803986149676739145708659503484000167977184783335233231919644514884396463074593130902332252616850694718475560439113117939438511365733907532793582264988759343656115069192379264881048841125179062228903935356035992465817987213402602452740760061991431705261936807114528396978970929680719070366351210012117727273451608213909801218764395864013609142250918976334182402499437818571133842838877109094773044444951123917779140814403117689292793324835609810594570492666099447429555185535430147182798088711982876278538055185915272998995242787600549185868081247462772286098716133042726441028414347754383037307209964303297266434260111880125581133788598697135036734849588678519945848977595536294704249624046421212543038788581052655673638889979058393771623472956895212796677604637948004416165918670080264448189137134291471089626930041905919904615115366683388893397145750666152585440911853363388792668246885582775597960756118913453391713234445794814971792392642160143999999819262218466446237779166535933124056587181675145925919645312430823719801503926178521518631291307321624566534951925616673066032932731791575680541928169866350730904706195037984357402885190457441865585660629063155546987788100663149147690586006346797589124349354994189463672372243120370273717685699109883846058403233440807882305780016012473763573542720256442020622674537553707066822475055619155770418982537540663787344616241137746873903281781192888888061463119303615291730705098289065737419909331908788056036322999287269817737573032607811223117033427958969885183664576359404982370985478667699011129472428039189075047954985994321476734538566613135252110369305264985471949288181694500984420910492541550173203622948441786694315670860563620465617606663189655500203630302732910042121339682684501344199796440266275486346056407584320469890486466243505928781129897617534976511717591699079742605141380165961587582081929455481847614569801941565803186424499456775760366406945100002559199065205805351048244518784962441409726663879263840105933957271024839759675854220103030007877364291408380864863092617483614108099706829504206704591198332916459490842266588609716939259919805007515951639033688677555750162042895979985058841183190298887044246891042920690051422523181305245370069723855142639105885332481580291692952475883198124660368867260455904206948886848629086105859405253401032888001709598113995315829130251542516568141695974427223458461374497443236465742300053754089612747561995967265579416584294994097041170708303037021214370886750319447121941899640475528357596554570062040321430912232555728084778876364197676539835240358319184408708293829192962454068354845444862949764467430760789649952950432943604077627695940270098027233311380676197437486390634225943679730892968646836067032448238636112705129840271886592340054621252742184326290452068464598254355706949644925143151419313418623295986636930481277014684679640565951348448562341873609595121096736482926392280105558465880630650514939389680103574987688748603530246561741554486383562933498682426724851968522494543611099641199434198076486065969197979209229345634800769132678079151019598040198996709835211651250058256249514540821402987548491396772952348177090991068908008996712897005413690620256875645691514246329853131949292211237427597467589314164285709688452881097860482191157224248090654579304665454590835064228426177043180281263293938277355942512346063304591686056035628718605241086953996194636250439934771614608162872723961423844919522343471787581216307883804455421930961468531064379198529943892118985586981393567778299159060911304299236786508215622240493669362766684315570415476767882338421859230595957176449390833011170880011441859448242465316259895640386168474555589827007412890009575318019472977445467683480179069650813663568795024216702213972217066905677875851534329985302198925082263653546119456796085565097337259324694772403085662306326636034437255302941607615040197764023538026359020987065856661689858851410234355423947925802481964084590089899730048247314327426194275771228671820879543004814358365721795428140665580357246185043836501514636255353096114490992581974464574337322621704350261725621307091931394619612013385735585347637705863541756494142385671982845233865821616155315604214646948308633553224281386086787749329411565935108499583343243657634923430194351206726914283099744766912726240579789492947924558378945253220297841496659405841364665306286276885979594237448083377983727744125052503851759382452340105009020786181797607562701218177011976338132020918562991460954742235936341384406062584853760210749495175209379279950985763793376748799166407422530871966600184255769855052891667554332974060757432238145370633367971898068963070708870688019488266828936083437301906703564490590502560556504816471786160643429822708681682896585932254182714235553007559280140249496141373028395339106288386960618892951595696952776073634661974115839519057149388710197996233765613756923700220679622416784003051350378242061838980516164915323423145426143946322616674441704377244871271945851137966904322910832603010906825902790868697714740414522142951976311700114066657218057677505453313342562022756153501713641494630409820955938130462291581149183649158668784340795392905018815956870760894245924807553935603359998502161011843634064139285628008333874884219389025676958514204732219645016491580244566426153861203176545649452112306709649793045157967355402860526800578377939612365906649319626458221822809977390464839270351647031995674031944865450707700295352810795410330777398625018164387952501711946715172347113161902600858984499456228620871942767712221500300954841548266130947838366147581110698358157339007932907652177789991609581682604314692890518134199869464104495471502976562015032371026176374965781986898420295320567393298683000396415066603111288814456584668062960595599222287900777067878057781291225202041620747297374465177340600433881686210118966557180779571574409849358170099395048907555550042164005456964102181682405748395072700371521487775790548483576830204222727459570940460072547910992900812867006853853938746341393470344497190894750969013009072222721487121374800195042018571970265877120840526065658142445997873962414730624528836982382670142949648723306144140722363892939190171076881316919863906289908185681798248345288341649627741025546220156840659956177901280159557556255850601801851507813864157046186157106552637353840871532088421615386223782601585144167635768256822358808678635638110720147460314327810406531775682326038314303615547086038539543243843227115763283596841856047467920322763388268725603864837946779191824475152837153071808140889937432393830254655196483147836884430797536502280064622672663715736511379970867145393907001016316153155356105392437557657877004961299171424738295358077944791749026453842328469700312866787116179036591873863739048830293452566314197238080775199534155142024732645724238072413553522862598519163266921573263701719820848270665178534685767559403435977433398771307800781444268079769528624227897061093350664760647281352822594332773477181104007395882059654018699784217984968645894487631386441412892045201344971912937471747936909141428832012169455754142210608758993192343405089572595345222834329876535095227077876561972949536740191524978463280055836437799109710905066897685660437724856221023697659059629639423841405407023934505902757213589783589919274192725824903832718918445840266425235227824903973647574085797527306396735524778586773907273066187354539013719940369116974603766087062807936816617057846224275398897463747374841004120428409778510374460569133824755376644768664518743972998969682160605519456523212920776484538769222891529864118406204131343597408364966716639101555385674791025942302248847936376951466965941362170787304052402682154979210956974183307843056024957070737002696464710198876408316126715252511956403585616717769104975668998377603827223294768521562686353693112119849991037061360566937729277265284117156521343035086140493306008958443958928841034302178065435924030873397162896241268651328777650680332645536659082620688681833237237397894835536274793602746209304754269321379010156506270396926052532009883456191950799047145102383664510900811850570169802726706543828317830315373320873224565914739236339200009596232187166516814172148577598458656342172986138315631409762145410339109987230886388363774664600436499350960578525095585796698925754764505658211799673075832037816275425216007020802700110922231340919581823731017735533019062869537585418033451499403195410029360636592764491771845037543798349216620171012490066468210908946908066608166814452812794288811380483163773434299962103746998461112250063306820804053893930147442238836378133086738524738548363544330049505199565226019043110506309910486950647474990578433180717009164003758978667884772007406839767006252256075068082053739737859684870408673106459203924939614501517092910864296346622073884708253960813801978366171460421387392091399690816611282099906955720899648486673061276577285577562054007902120883110765827400677397573138706384685490618502907616840657433695090624237970615746960079834761908544821102869138765475732937777070012143547961565559990691213257880771503816507027689907612741668591542327141687435687164582458671689159106417953280657754069895931837900849751311332801737553559816206093785794049075295253936063083757244143676704422183270346319624389985075654620524986335211938550160607479281494986320329282887863845613836956413407692435388586966226578888344480358063701937764432893726661916683133165011985380944080274609954666307731834206041330889882759882630980736078849594071595118119232179076540893597628550867839499241387282122755553633276987134064790000692164522291601161250901611889667743757028452642333781159215159939363448561455462394590602730237766507040689552777563388671691216048111648547871982307726844021222824388286312632279166434678068129190007223618678186532842421355904866066774609960954686764632874989545698948444562213652866967990474223391205302385944366996273173078577112940735165149091308810135578580681325156904074173458211893935625152933717673924723059631905864439447497651722890333829625524900644206838701210311428549604326911900167074207722950909318527003274546833667853225047416730124588972851123693606459242749273663450796128504276793709276565595085561896548819930860321003041068121228326025060908407637514868894869090830036119244559294676231032964608315582364614119462333509309988931126339521658386587859786108173111426339638397642767128554488360030633727374351609797630399473159821534759008474614423792518275540659058929593073841127353514247746460938026373038935222751833540155785191675669550051438242118944172386334638063685036857457334374219756264565130476487366596393076322383457813520319696456712742189088446476645835633950134931230771816665492558952262784963980378094645215299119207538327097419110194007700087133402686528238593924765101865784770865137825703840023704876603314473579965936694723872980802583954486480974758685206563623381229147216321137075797946151032558411022517359391404719363332743992390017643805617605730351608853489491962919635548183744919316385605770796227015179458174001853446076516923912736016813890859553842623549934863401730491628427885069142723226130259755797913173667663114370594094071617298447675749262995369341288246778088090895184329245527422314678764923494307683687455700799867027867485321364093510144886066365322650850863646809199929074109404097070748490698844524506868600149838653661794917100865932369395622300227984954717477243331595198351616536367982422243896264200928017044697242316930966809659660106216074489027207125285766809590586318933633303243209785404813002273983846166534657357307428224586829434059493146666671634862552281324847930242857335279383402977685682151517086326371771677810647369214680663578494864883425922718622245173221809514650542848220796635496744323330399756404390409162093400458888097691799327650343030980397311594917458036097015710622651597711279830694974919082784002581947960980478655851138131494175120662611356832865108351096916319693023664875208502441988938296242360202191146883105235820021336400770517354736574951003229600264490612261073991814005207569644239242230187381789068194138557589447611613521155436697892584927542604889930076312210089120567300516499632621533903014675456930943281989716068372723466525582126546458369889546451113130148933002050268894951341723323801515130240099251266552473419303230848964341458759442604650598386446423401399674900554942309719700727721753879725148228018940384720224470549564395792406690793437745940519861953730947750361949175069013534945767235921554217193571240399329517922488140479747104239455409893241146009874302748580551427795262627538521346989374581658675013693373639929506666039756285326430435944178002840225478546168463507366034246976658651311103446935310707442462611727146893447607187194483189212051866692841054847024538932531782516329954935416396915187393851199805952868915822602487990984571357031932796409841800445955380463065876174609903066952545780035726532086679041853857835261334805461503872684258179819173538478865163633172116806107624021204181892976492219363397511192387714905116275121002544242439601744453737339753343489287080649755836691230916056685771433929546476442354059512238152941169731243159109573919029659294123578447296536421273485312804872591153020777808959068144351423405953377940780563668418421366717297227052410781547164104491616650473294596359447284176083363048506737503709826575530862006103365561110799058920484677653686803406302922786057407758113942176845891216635502663642140316410969950496407770075799712954315791572431290956502093795709948417334255109434121204923427406484167884064217067238956433901501874963487411755492833480234164484963204000200413708530715353947236686568681674849048375838336903313860163624792703526965296600897615041921794834781229474912240519847600559446616325498964761477012573299782161697196024208883283760654011726665589878457257872903267298745559945066435727858473731765969150343353966787683999026194147054408892590626328840520064695678927406684751719215432259275992377798216406230706497208752846609568542103333244367615248515447400397371965057249844106326074096770083850166426121227406748438603717805432489369640128760063375293937759940037638493239513453497148464672499026264846330225622760775582074698662221803190662964979825675946344693843912007295320352368301071657264231108776582414975517319096122013280803634588378471478332824340887577356886890158233297292245115870039258376891141943660171157065608511427868029619295007187830967396279802996994928933710174167860165657093815958719699448067973326590199869605825788326054725148172793959050875521165302820751417821067134273317420295697804485241966582098667043699083420494983345017704204710181298591412525246599246715591807602307672854322851553551011242492585525702061102306681238714452950161646690923065746069701201643204043754216473208126749207307608094117881377455499944208267524423048024712207394787629700531685779053995318306195072684962423464622073637430261073276536492397854471552009570630597855009532768985615802284328015240674178031336295234826811079004949234942475105263534813749296598259323646105972925074274569482681103077539918468322647448288392190450027764471223786994928321516210552238268658309435053408352658494717634982707096375132289597486435468876895843795724108504720057495973462017510652143507217779739041413479605393613004045369533613155438209856506975247955472897616874587614335279104815370063477675776859200914341375318921929739324089718540041463936845485401858917734084640660006966230909410001375603322180805570715678013991001459451578102108010360212404563809197498112039845408832724432910118829128035308053865361478485085390469275400029454040650945130573091609733198569465504220381231380754783338566451044055717080510762986490807304600515843319878575662660504661381441880543655028796490034299649278362052337962795048755483456773871319595213315751070672382919350050931760617382683919615325639816606463558201274315696042685468038116143524881731839591488116021799687905600579495679621995901831662308919925733649296444290510516690158754544082597601095496231009711537997182261889163155868323624557111967045960404790784519327222431356406826204330048536080535332585516917573695990558526511280106451477941359092901248823131230357135042363235092949811332010213230030541751639448710583845106104804041068273271395500260066695618373709622964972288740521593032437562336185295756633689298184066373201901348602825695610861453473308580737262025134868421492299064876085726932700688364589367672706543083044728902728186115550489086105488994365947500175842888140005323626305408736537199457947822075699289856377843221523519911574288964953575050992786758582109749460276332361972400475283236156485548148388066822933482660918402528111272730317322461791430449742107484020952360615265791329826279812606737394861515903447838881672415759036049383220415230577096450218844797402311963797982900753469355173550730836880771398075981205312059131454911257590298034145121967264338214071516130810698373277276676576176626058307045605304486336960778462813767750037472131193384915160776981169568103343020686125340080389293702184697589073712130373978943554072781323305588288284600591821096192447686372281640461487912023862332149606933134436571780560251111840134702804494616230323847205265739398119416564109410788691393859418290045434176323595684925175538320334105719547334779971429266285701325739754288591714547675928251200516467531499774928233545302418413817557307386089841107372223439639006523326304395288342755351472350075894505421352072356742678535188398468803950814408435024225299590925253961376864629691991212684307993815464739739495538616345909604720288283801620910992320796189190270350849622558637895841132437336009417377201967689529930325544135262643838676158072194922151964366572903743461543580692724351773636567762106629149519104174882318435938775292521769145353068096597090762296501325495712287501458642614050587994654771079784280877905029238070418722396916748666001055037144513401106044784261716581436346146196730676760120366806102910223732085218485287212848245110149749251445246035774263229019333005298248469157930763257710195528423489059809790811547547054112390611543778429772302463796234567249105965270946675964785258146710150284524394340015934043274787652812117355312155262516149735365950330884983693038355639416890007480863287850470900540679428697440882258067307529798083786835715503410511531651254767795732747324805243328629813667482433284276424668092317239197955398138483294633743841198599512617424670904519234976015430246023756720248406229997259597184701327750409687317957052388574110168905966892599741027093149942194752944402771140515649091059657140967763732891273138052569235257114627747269911759662316158087185742840855944755213373317886360375920838357925667074003016731339980100127222467250342160886896072021969338504805743241708068041923976647523334087473322179728985873720703205540210072693934536058480999786106963544839346257695014621196051472297812343186919329366739124146227828927466634922604311958587451980727416725841459708074049038991361773799171099205328196926113572912224462555093948596522765308018351417515576970200328593313489407337560925985604174579843617094936207590322856163114467100338182834485998846238812008545971749524053548088044379209356321930373889132314206776125243521961621562079849193785052953810598728202538740370114162974564811894614471602825303788924752199056127274690864007041423771001827751995529639737743373233619626266178793636686735449187670075147002122502730743907256157791680738913544099578525605334577913461552207398557720007857060573803258936431104640785624693582937339430407003715688588031065027971431892363525988130870030854229867980753067128545548270568196655236357483869686806974944356454793200474771863464977338144044368179703198733074017448449690233519641992057568111219872440905769323927267953820376908315846023912590931616499563885746157728006458748989535757291624834477018018356804952856058099436810959230385200187906272032879478687592337111032635953347877135180379770901920753529542685683555943808545968397650245489464443996882103072186582933547121375467394868657610240621959044636985483550280850134370674398481170883729453168434861562071855527468404387579373740459078852777318144875154903818329868047481938955926606154147120685195950718248413624892202482951167194432490136791719370192661069758941744220309432766510574186668642600113626023152440824408505385418358011830056499010029196091992929655779402826490064705276608492515513052393398281846577294846180351024140175640734144952278336199773278327174525835391705237575527368782577236953987779159845378286413249534991889864063236305435749879715941687240611309393578496987277679461652382252249468550971049900582943819233073208680696848835418318341787165611095201789500611004226455509244871144095139251201656381561060139917406537697883480955760946634212954150516812688246806250553648109871447351977916332378120302591968001742477795322520431605631760348105321597066072939669035809985541149372137576573294330184230269118318658848215559865965691422558390561437935657404376606776930626786935970334193726413023941391988521378910800525801153057010910468044976184845263600416350906068699338011212000909650096667056451564163557252444667566754984979691593952816019334992894839175572513737958210872679702439344224246275391962810422522421746689573965192715035022634991042534238244637376611622206809210145517000747138968909810866414230305593035278985237348083476005534209049379577988929115710159459459052303944595964643457257544886156481371805622492456831611662358648251995532247266384996328076710704352203733185851427054363785810726715333942825500505721830886221847374800590543115785700917324888880923765857933706187250495690658517975714789854574778596034678876992181823417987586342253089199884171072164141975200843408773355605266742708232109296139095376780265403413223458875001358198731015598205499779997103542127084759341694143487935169701990741664672493643235686782580770551692693179174741990242398338719892958989375282107797025328507110539004814117709374409616644945279835710265352309523355662650788711614718189594542163574604404398985190403135982038003464761096186275396405335934671948469036992365484291199716200854092083099285247042215784065918550198445279818607271165220569317223702361065813779511453848839895434186788264849671717935595724323816810143433628312848614702364430918236459952610274467427999297908462330754493039820631522032004682346693173119326633523219322487930944024317029457785126715687480488717283075947135934502508016460480686441285761752446112230631178726780063206590877826953329611810977041459749995387756645228194144168000389039568472834713883679367503679714164917949320335010840704635614764356689728144415510956182266407180446541186355760767128240499599688399731156292042089754359304781605805679400224453714502662620710030372387191404519254508998488467593120989749051344029479315757710196370402071372854917253668884615612003862983160771285141245857445663540405291880676809197419722755213656188419903791893129240792619509445925334301711747684054723954246845244922725534487961935281068732035720262824233624530003718998727645655098415278007991095715295821590663604171689714153568882712803801769759638762560161922260699637192192923317879355451119977030498795030988298120822018577437543322147910771340958214130873948298749190829767394002521382147412064254307729276299620855214590554641651608655901088281538170386567513061995729924065470724991639941192470132355945946816001000363886337997264940208719283054557122005547517213102987633433712519266995808669620540721026194290587817067210660392192182565395996706638242475056278918440876831589665499807198608961241669926103185180931826677647739233776086020316263610670615978240485704046418208968850209036462920830007498475560916161485016585921659534813690221343643088748854568961349985927771943183158179343523876949129405928611893171609347639771403996061492023945588985811131002917713047688548784530650317368069282620729392328040356815355209488841177654515885090417057152321213988702615539586563154932299927099882006602292278272037090862172761886937116094296783541032998557816220808453669533237803339711659194923431583295895315639615171643991334186661134185784408881579262993956446144467327845895948174754649631755260625185240304866506471181210012874814835600908909308071526450838847903124088858378205321745562953265475956090901732281506613604702216531276474100239856777654437256126312381788470292962839379841357695282261923117757744170535772394925238959783915793946119254097349133070239967269935721576824366230308861886568310115616631827983446547060905695560319844884650186279881972286325235448965973826068443002825268588432931496680731878911813029982007184513021682754586485899370868692474606228045774592272507263768548002747154899311192459463253691151123418558187903984614748124002987420468106975609805455613427238442452214247740633293374998331094469273708582364994915132280789593386559978247700010696944112054322581975481059284667060735538002045879768296273225898244677384417447651235382637423997022010505030316109349164827504001204372753925108147352206299526197033179815330286669319113755875268183414447723536400588004924273390725840055775018679335090639699212887492564765463810211606012744481468965017247930039518507453649302705979662192128935023945572164007372416112805440444282500277773040866981604632693951205416317235495702807323299957022783937459501499973266313759787442015487903060543335683161054831142073966518743915051367457053622734610871976051475992395466917656137598033939203600736800592462069262524163853443008574659363631027471544059024255282793102889660157599808822866404928085663568699520312585361124734604094780496907354313875474292637851759962006309453918475501820861102762874469406943199654272479690476811340250338368942794050691963114757583521000813694379561496479367176311740354044774962277387273980243881741727836169418948416953454134427097629908591534427200614607851428463478492255633495893381609555512731471465921224392104271791009641366473767185276113946513531011314453567451176202812946145820692135240253572699725593592543523018859030405281150548073701698877597317649680988426970857329782601487092326453638789730464170388281838139480890655895496515440157797551728510488510437371015029073571894255810172668576072928129213206335007475411694206597753511948041179414018347537568296851912965556774212806733965500120488673205110116452710976604608927098835957441092773211819436063556286585124236897699027923755605977463602022170676691121174205857085413449300465780678253787678624541374201600769073047015444955062823193133057985298012366554271482671258009269644079837909255324918376903717440552546731990554412840742367843211410586740266878898987242880832859499887488966363071660949288540342661361915312111263830274868827149644376599683367161704043976397597460665466718801226978058285287869878511833121895873173027156328797093522067586411366431914807175883149472874279371301668800202338117839614241694385071273368562045073914638388601041919984732060130547389549621451030170425559677286053077613658022308859351027561729130156654471704287357804876268713687954087272718402690885581456605579580919086263077792833298247535368331816892522921565448336798279129959059661396317272457805113947807539873446855773245774504456878298029725047891914028241456094992925448317787430795448586132886613797128647471265011501572119126071827146561389382791533948581603961728745386129849495140917517637462886824571636838701040299494923820501198693313971964878307821847629596044522416993137569747399398019234325738302091377817512352431615137457444923840702546101863522241625447192007906841039710320850711311496872146054656769262969072310457506217939097957720670786258372042128990075977698338623383232145233018516298580506362735302026456224365392793288222228571305692093670226453048840390401865784975957195557284687770952353285370908154975009789140087224344561654775632451631028182628617408928066729256971981155262021187219257293237431007534312186435683885542616440917813506093111424072617023743102574323952768557595907636727631594390652363844309929285106496918074467646937302900458779490952749138275357967291792656339771591242100256973503152091326381890380976256570421684607311772585891602480369400079520907774404905833457548378120370974832992565256043056153578532282632691078388271107330303673724143154750756123192020354717373222290260887491246264276521387220398878788003733843358775034238321921423732301814880899702053331543069987735968193620149986677723900939706721530904878786403718149151961863697567771136347490111515977412164273603019272874828799273185535489028329135433402582492202630552607508524591918251456112162779264295944188416882404349231902477772614140978561498493765097093698410678855075890262895711045243812760519204100649281285179101110137128272181776759748027705843663355382576937650075676468245872367975536647978510108532595014343208028477023078985159050822591850623683274544115193799632275305120747336891163010929969308865378525207082749045816805983705055560847360132422312301968087455953557698493542009999427054540706276878853024878437018723944845804655176477777501283200014473736273535416182404690293553719952055678420910436756641333327708998337393491658898848978086875487415505573422850135763452672521786966360264395228959597787802982399704793250485568063670298027131890339598330818303435248904125258347726622870822950216609573114157235734446189953935802964223432078551702189416969195345041225105720583188537671983709184273989995461204049052112523656834968429753659436544732526326081281802309737105100751896519480780853787501312570182938522551977419036483419594779925813037247352380144048030091023403899941240823270308914969710610169757163333743218889035776074942201768336523067210101378734867224401802617274967216410737331201056051348441830071492284175605665657216668030628039298381531693046513425801450490023589143336329724439278559467574395839910389110094517021403952049605710498353286939258432306861799351401958036797068637699080728293643118504529408934225740382329710509132877882410115335022040036069921615992716377659590403087995057292964009777815859604432303762478162480239813132440785356107753829457447005968797550709125482131050874993841744014677270602093276942243496213298934259687656093149708212148887696402358348045306063735677575348108139383963634957034771673462887574611397722183271720190511126467546372665897124275937357791792624933781319401342996718932647889313337759282687962330229868001474821382263381054777289764728959090136239270668403323223196520083648096258776579374227995060350783066872935545214978807258509914090408293572274023438727637306037790557215921351267018812380041907313318105731336030985413102881900910750627948660544469441156667447483153111329447739242005040297129822920520500118090465639911475771004605690657416706813306343921962728522512098574475826608111016026753496594244583774339030660610629881745102225234552322789867275296196114365308299019235137378931612869001594425534748787157818351499478582169430822521358404235183285802659345192172845275352379094335068409069599500848921371077117786714793956175934869930690726837676276497432305998794772608593088776364972473315044593103002172964982074324500269834214806258378363660384317835782163260020720940294458723178209158019040878878970444966444833483447031892915998040351045419253087348761058590876241257849740885141151516331935985939475804796885847179213410531816687590138879500334809604172439887516892419795776131967567667211760166020557634099364711308293092481453810600037678856931439023832179997427629911771363409340170933087545829087060894337193706274197603623350705205297183758152516968707098969388692690706404213479581007263098035181671134281313310363278464358790216494949640243745113334014663981183861008640333982052183304356424061675172351202263965632175742853512549597713226393390691906929535990444449409260932668062112641585570059959152803763016305040286035061962068131835225117023485537138508225398438051278250588462409085577085746348913207100221632375531357879830784576966218970681938783323312528961782787427409210357132562964509128790841354301247097876075281730786829763085403529826074131443748387991320340913453726243809346719922187054365319811252669445829976179464907189026959651435585726989860550579387313302513171379910094767694450009728512891360644584940484164917198698629889836179999791031116414666634932023833545602135989511808975596022380954314406754896450586172952444189535372580811133873910293660503852506378591739699105921794237641391560376694980157554083110135987823613330844993386678840522764147423126595569475369335899536858976555092716402242485030848524258748567411381776675865719429280769583987086267823009295487633121933947278155431116847748572674301012567602892463057592833146758657616951888875051870785073050455632370635683088214276528958752094822844415534903041511094575660051774573532001198312838713248519388405150849882202874948692142603355685210380309681124865750985264425238813702265592755203057369142283440566193101488505603388961827999380979918758075676148627902557196813519181550803559973714287239887093987374439484118854827946342848097271516272133118744590976043148857588086150294177330389070128575179348285237758478910848647103688465455057321276169939895310031703400841879528247574595220816900956920124294101726222331074098995922793324296857800466026141554747565892062646722531770559473723829052430011266919261228357023099067314740874297504201792587636904953704111705164626803189678309135130421971186829076252197601884930515808211389411839002459372928673924872765337231819968135441978600252377573893252938263956809899820061811732701971049715114281774280637458183637439005079840494789200877447185211633903096071182583481855725193392813909696921428307214842136309360825464066625643833604501269596371968056976635831943890241293083328842552339029252337718152371182411290955110205939408944661151903849281835916080721215696786813918121750870975893430988349658744144183520286219654066242001350624475564356529002174333370750244942113845805292577590796581254025937761369846612964584055303875523378765481363007221386976128299621961391516161735896770398190105190756799073283191401287555749664311850458832246663744024359269429650013174578863752620683759893295930364530002882493130879031298164730991736747251633783116830080824583995166118075734721567534953958814828366232232666453699410210959145219869900226272700838342281199880691362754831029012099167103343335573718408782467644728719859002263644242250779379092621221470056218731043004774098164442551090886424190072369749856290036455122844116781470821100444118650106226296715624295246945553381721772576594513297892199031087669910514039371890485399011858118197622859737275166607366728525412562811667236271675452060408158958128944581950382042353122429614618830380617058892233770890604635660847429110014452022767216521257369482982085082094509639531772166812321941190498565503097724687904711509627116594910643752510883021513199750089150406161319987527949218283446140343367257141577797636128276018859786684858684341164463419005315715431952557388298637187281762474563252566260565843823807579559039927335901334979405940824404464160014546248914239611398058746175583895262596015193144240050253744047165568816209787046702828207736267875849287712051069108225768477387742599047233016884127658143261833457962449089914220736465434209973285809794290073049102009284185887229132828536303649209660838374569503439537561870113128390645869275076705112650189597848096767592699891575557420430066193182238497580811417172893794497103011688882979795057331815482601950130704135520519713320546222155792203421696805074526257180040895676674827609976928230979024412156180145473380135918879264555403245086308405208105978750562261938701415944968338093660653903567930252488426092853077534925265527775245000579421953889009881385750049169104002740648470479985875421871572444576446460911028722020762665018860087759747567390889753279800698892903361023862080305470156396893842777799924387640615326502543205453193986686445528713088949901022728345205867917831670342667243462294564430819773477027518844147413658045317647204129318317955956301725386971925774002019975389861518613292336840032549798539492094364547570894241297926797664044723767204283130290468280687374878340557615953344947928954399951685982270447190212738077146072200256785805357573819996151067239191949110667571476404199793070074201102967236559066927825005828022163523821764762253434427607777992206654604574154089132038140577524783621271884991037217713523348125639407538150007198200227455661322405553207154875326048333869359505783742601197811521928563191397150599250637002534002767753098385217199340629739952504124110847033715097552211550675182794887200649125125993962006468281576235878899518805507883510521311785895043218163752954651234410441404295596411713142963540879074064396347614258823530262702732122309732074809253644776174909972957173129281149272226172749488210082453176142331298609076649677533035649778003729645593528573915847511092670409898513442807435013214865875371594564291064949407646653482285815102479611511157197154056510639900384775364301262222262323931382869251723781093487427373292261421149302847132927580456598397337111875198356503760954364702597202200084348029371570897190658891911655637774068020643782882388918532155148235264997562291042895935195783830234857100534393296891632560767005344601273885273672524273183658265007058739633921091806471411770207126557632434138857347407532954452690550401104893003746926840805711573185803603234595131566664153808562340817397300707912406984858251729842175728393954969897158850121264912875646790954337689965572949355764632486505932733222874661946698615049555083803341561230240783449519405680954045857770941024613116647863190863865280885041324585918675658497572315933835495335135171512348884231991521195682980346863102118485383343128413590388878073383167246902098831426395879317068502087726248543255645353270481932229178278407971026438272979899042905103659625888138827272226305229359382259292802851644431176156682825466004282250044162107872605133340722955908027411724285046027851436122272351814667977520777102318327720834458547942460614524037400984329383110976963104092839369721907331180774416251181183106493284562397043953295833069781636091310960906682871776481450749280091808874214035052242891186617294977551453738547690729749403537312844925367800133293439203405149551265239352785432576481390276547970970905589258686677783561862986301394398323064088142199842053088261108853330654948802323186378632630681047133770474388219674300109993428076042105895784275343949988857830595498718965641415774632444599222583346813344681588717557635979428225687034371323045469347560061567453360078348711082649710655224782716291775620639755456463768854576703754362172806261370622378722679605776869292154262185512887037852239111241442528585940082006710293758061919778542986516665018415805027927843001361487392935490201188679757426337831192267419212706635903313289891410072217327252639464369072765609508053521337506914998253546007713149813189929078654235979758365124440939906521343551123098700745309074357060914382544637993113997387315788241180884091074166852108091952543271955988117522117723764593623570756222804044512344166341819401446084907709977414665918012420155430644248088487360079467891561432290601076448654909105508275683149823785315020864705418689740702911058941657712457023157771283236119444369196726014639865581329331717127386518588793898475666519692068980154432459713920472778990572587803834639545722538539238102250593276717233937985935888576010404644727343331694625114618310785763796238244597052747241672262849656252711581434480953097991129305301084351345383767337455734855306823702733788924572286555761580303858290067155445009662119891508493897608843192539938060699009747703797218817603034800417012925132766546971067467451719368919830545739083686234654801935647268371355808257373843885711858332538904105256053655229844910112414682960437731551974014978413027119773756649562703563483432389955281331457704908776837331548689076800539755967779101256003697543900669465946217663361416052525152508150745455201353443465837223636545941637888610654062797191655129840062808077552205977630598499544427270531140314436027899217193896369018240278370203808686212305284607543357742690242604926261384523184990601297238555294559659833019335716008098949663575348845110252293285600149152994076067229749805962828304720012858182087390761893514257075204990458569588897090508100368269801423617146627938733139050585711400541303926479037664430924675483300493112612463072426622988807498298765548315645163812083990605924580775741326450088853306649618845759565729434907457415688482213202303259742641616646902551095963928861855678186192550353218548562887486691057921087933914282583914516439442348153987086375333514697438953119384019791521695247946818074466593060434864067343859410793730494929647888295746127965216718949635488840794563900454897273699963773636515459582216379914698174268629302821830832130106458258218386076563192297121477951940430591732420680630505150902480446692582145704811315796831260500676210404529281010822503120476612688264460676343825607416493597578276019201839886234352977678119242169693629401785108480921862333653328708385425474373466564582489151465137027047272554753570079746522259851415416509039539659987195118612782923359938689364816628094772643293917331199238987333157297197509680349034418403251134182588891669297165628024394451524399633189607096103874336482254876766637664145423203413260345903526150373815714565058842578656713625193694540818107694160503819852167044484817708337287096073890812661019920791602234971181204802873552710309400038247410377353858773098814402185094128481809659903085829163619617895053441404925913940955958056229506706316398945174073009691421852966436003847507373160902614131574974672243341564438099578992614759876448136318120103353018056089542472805442679011726650130243399073634624493810781047405963838728312531310133879751496171934596584967530064350478951991412771591082551078301504135451617991928273741457867421811960862794221080753046430067167690358097975478163436623666093757103736822176288518260058482724897633844049899307234806180585415835569251780371804419263515162060380760457636499384429049341208729126092180752639839042226789468738706684642412212726480691096390720520209668008276018271539598831522471453919384502199399833619924082855173780273512744451342426056864249331808041229142673237177886997970487379630381244483020798452768617054026939029554420456597558053900947452874352963682064894983456082934499332844349771772924332024463132479928430729626313908342754388863542179232160756486481712725258283818840519298648479121800555667908856425943564113455149796883791030472486967487365593444954603530641310805576383473300956727049034377352143823666375557109760371505678412432937549500788925251859933524698224881690577197657199000761583617761996949544313390576615816564538458082364111496635287738208061456185865493745316490209669584960762063515887322307976249671613381464876976097342942430763615290698909143842932598752517869979782158402032461234631269633711281852198011392085819399498802341185981416146110912036230987047827421003351768352969572544601332143604616541679463539009000964612154468010484658533776271362946495417912008104754123822740240671783104423020291946905459263656956689530885262940985664277748435693178012683598097301941426537481985667003879386667879010657352910069048477656185064522614315251294017897203736450298613930293704957184629017913837748470702594215025098831933861678984203980425364562201974595157825484425015380910979825020124777925050990911579626665487534068663047754855370052540431140629673752363188063297012360875742456820442892501629565686319278944429028626976412350367389355976391197010777941447605708195175196188016648289370515264683852443395536000381625795235475260823509528638446115132739286460252520610107230706301579551173926588033012293029564142176864400774965311883219346071989449901167309881179791528611251108197465402258330919408523484981611521421914603825679289511460047885705986838412980385721062266496510266613423082463155431395732405744019696693111431305628532640269002161404741171411460141523558682036179966592707107501163744075102062586325291888186094630976264507017014772212662539990828765135124182520401550051706394069469212518043096104428019911827615185027427431972881971274368610631237458191679413206694199165107388745728084390260411618599315257463263060379227395874200711463540779823713223207711352044094445967771976475936294963413854992549968506206352530928300138099487832499291227555990077816038142115300648283280568454985890141827902348219849656275540239279868008783390758471628112622496933752105933993117951960207427667699781428577644986844094434685248578907469705160501241016921300111252473822574412320984097454692707577427038833784556147568872319161095922122250585409365895149857886316028879742512739352851454365691546629898779492159330416070340586409047719614498148044528859897625510389896104302271679658210064892655803983629168477264557440388283711673376471695218762188328560238551016465606083043209652430275011463048946361171486550001715579451367359004674650128128497094614442954513738888284316224410708432801922380691029721191577566258326464321833159163851718057991193973533087130519932118335739443068803261352787642029824021713523864693489159044722624686144779775618756364618647598043265179713457766693888281911445087564643210808013642116627759081982817896704498766596795099086820852141715238956599853107129876383399243074985965347502670794061742947601861759799882888786780552784181921894551038597553649847074464968788601650065607015197822825195781618764209891588491706313644722132505727016180124659530255936413458444980852509853611117006352979827201926368327219336502276877942215022619896728475807814083263791882221032267031916357332779226005707516327669279911469571455811672397855912369361399042837716196400135056724565316874731607916763224433829703082857421232204034666800832239179433415366271550598283864695464834309004269102884936785422411977469298911552293852125223743100511002787383793305887714166057059260338425880932579073535605459840632508266559422318467740830673511254866904760663926312035083602194097553439562819445313713878441162039236637411318869205282765205889890673195950088214980053981964628712378370000229125483855397423445482390672621409056916602533756167434146504960209192690021548790802005460907038501571611158775620934773740900148828581608341940844190836899949800516168521417463199392188747171892187352117625384719531408172766153021060462514047159423392665901510494419450152203659229025959753628720309588536740165241351178794296990462449726954729922348692549509503304365932083945253257622691784411893047676346575559657145723524879856132865951711488987028496709689729079566432569975899881803897209644960417664074139271200000639937901097231597604610883821905702065396852007034757745610459770870483512081296711509759553319502905507255326773144906457778111907567599045808056590153093031661335843314847934438227882275791276209297050319136309190793800094863248492211524106194564727343688223213988836242314750968760291208850618860188778906663955141668667847927580153159619152951346693475537149349463793764618686650758364100023358567049364876673412480074656945665103826301082895086748271175062903247356674226625368701922442211425795447699955077226916017161042559895734011863706453266567932219409310395714872388940359735792026462002329771667214415108375717540527670730999784090195841054888769309153251023149314016157649685530893127859046337257668631722542274999916577295827433925571125166786399208724075017044855635931087464576323092424276342762062060127637978320516074435655678479529105352167927134426589251794721687480125174129142115857879242475655408299947566311972283663713950197139125999801059778797732285964472658466907189835871771266823443976786328765194921386836460729689485187132516607292148321556825323960809249477079868349664076745685858138728356877487862426799177387592756953913242485355781697303925171886235720428788574102409480688392552016261376518861539354175643217520983942153389655117617615750263039492220344771859872525484232791538834778628568474324788311797653617310718573456744055650760846692900581479439914825009654648407680163726770648289950905561855671709604834702995951525188361299949734857594666344858948002209869365692500567356456922912177056889015379858398120223103828789874258718675454941667850914602396051845210985430056610848779126373565197711503018340181689795217217723152737565175298119613388505162790317337034704959035658669815131441776337862836045014347256973101233137552908467448101833821913624147976566911407424418542190313367792468515615787871390316063794659919320417599730029335914925420416139197790506213514309623162988509250092657179071079572826159732117457005802432996068400532360777242073215557351603859053128049650737965772028945371360883544940429107634935814694013222978003001238171985692737079195239783438523547183180611748815028662221145343409590871205904123359042661392842575041958735995043489158436367687346167816049786988458719245487365452003895350034353817138533377291882488458628324301918551145610135062301494903117554897556516297958323723146880720693728401647967831859462587062759972127834329760869983547376163381513605895389725733254445031380384358505131911456279637726011582514445145136065309830152410969675096895973554329340255151508864709432460282486908288648017591111772694399401280425534577628142315793405806195747039183431974257040718007340198398365843635786448024166708599805485067749009526754424488765894104189449055899498656909220441107548019773884420430039109336797069127926563068656409794960010026616527305825029962210657419091603763913440364440580493224958365730438495328395084796736152683482509169296545418873557273075541816039931710534246226260194149264654435540514154059511032631961414011465507228440623305024614704811615770940044110590685627131425945961122049998960900557801554341599197353964180894195376577836468150829086422317550672808018935211495507806605112687340052254875522461367864377342546382206185079124707252874823025300151339886874856340720699335370511493914980867726678188872994572474236181468622364296162906163212507268700021999745343882012847629560283414267448966642281646243770638363285468256052240646641139016871842857471713073445742030569750908115960992222301244067141301328336224831836010001796345453083126974596049415613903469741343059454631051381645978268706822142282872691219221484667924587593695157525275656629805607683801419457956481619834935690232954123688519557985397514827373403855297696858115612246561555544581410911376798373910500241770524594105788962425547302683377090686088645722958799007062736606322325168274191972521807373785327002088136692061811178297129050129176706181523749117489369270635775578393527851054354898395306462924223188767817026916527946845677593851807890909059653494997589244026116282095075676842360213803025121937227649686776679558069007124646875368188980543945903990187435633505306783465161916459075715846779138475242328810294075618094162707780830168743641952023879557033062658688785259992656181516903458105997921803428790551308930310460397848939743690225101997108295681520703158272918657829810767641147327555834458335555682761498733055703709759925089182306189689691353920677112441089536303051814317370216863200918037725107375131708080797080457324743913373351378905726493736007392134244320733554698310981403594576824762333096143408671912069364569460368695017972792887852907287342041314387903545825423308677873191306976754192976935984167031629638294970249200647507542889761523597663480368664279435867391994910880212195164380045912456279975554335727934137273881439606573797493983692774073358241956461316448999328234954574451578091266205049671016199054908144852805390762123673847991666343041634174270449375410122865424551875734075959917857661053297627173381885024929618845150355755142358539012935687743801010893483922588909243077914341972721835882714892602697455588075351727494699136368167822534957553878665375558728340618704331832761958323907729631858173231027687669011940181470165650007568352019610632502525647927641483888581053063689580825071022945939981709525946179467279758777754901826919909908261881693696241044352864277961681434279035707145699315541363199343971418960131650297681618794973216823500528773612957257100580840010986201443224416934926856650918985399161517864850055133314056249570943519983282363451161521652904393878861160048542617718412633121674541531817206503403679149059733081369050298348468297239807514573712050246203508613011706438249716951921592987484472041007221077370855922849517019694516563701695241793353804996771073803641930519418606500201929395554977052642066311229627697056192550397621452441806379982144353878630628826944323668781884878276678428441754129562731461930696372023090126569546110010554778205091867528528328298777275282860506711458822194792730217166488426297972686870909554610845751466951346823231709499975162437380358697126238603260110805858127966415025991425664683177413289618734814919276472112705277819789444724367120032489616547269061477098627877629979038936093687065099635105385969468368685592822759330144566938035413088836690411937882131050321447759922906943715670096161657051306329526645070633241738682894120768489094246465564109524772033491577689431810167942642056404967649327638121596495495884795220533861596226050304040322347642141668786333731065058460559502797499996793810930598532026317026860844294952010245260104102727838921349468325337380142534743437128158121797845986093931703612977078557221870943975980613429105253611220843135765050561678180104856585628015279582821525772961747978426088825732601092796818432037421069287860826171833226105335931758154387540001129214994092883270700509754725301141662247294011737827818615060262351849108851673004153813175232006310086680456926080865704438938033519838286049534735666523736337895501500325939540188696628775462160449387858286995986562019249712138097756571576113197806705249126955957451306587535368209003164595029278788315998072110368430989930296179157268362827010419815197248811149608418165950870607386296176157015222841900590052020247307317148543532728439145507109192847972394739209302034333444785584782288796885071880537738287684846534026667358540694954169636285806023588307333454724734776921192860238874872581193484598224218923692505514506804353180795868406742201146805253299945582320512586607192976048150827240058566266492185605637477429915744799184820943083945489553613745218185864235916777860048489582501537455969845287211081508584557178732094159615242688023187259518661825337653141930995915277002152172671405628643973892372291903871451431737650807905028200881566662635406057040736362941900241586610181601010340745016370767144179504324509058401643699044074029512326466211445147424399968852455597731052810186914603063480410052201274315621515758202137409049276540033722584495675216608305108720336758719061149701605629017834457970210338471492777001799382909681771604144228792296042979809479237351971908602130064493811683216499975637899071466383428900161278353675084332750855495006057033057551319925139888608426948430519974395527902592912192239906759461776330251794455045556150711502119505461105088313947218269911314513843391466235685500540787567230761217411726453547244931189848581446323060665147484793456659124041501087356699550653528766622767544790491183199130292116290612798731943464850575921681330023906855331797977411518597660775770100728071245668824117886447172882623683694236517404186065222017858593316217966793147117008957885776076875893863930540416792275031182086338860326193387420280139009326659612461869607651093734695037805310365629062934179061352782951999426291771867641731148908302089229641632843392318662042637147995458401235763418811177243486851347539735228451029078564703480184925598759870849925273445674904108189968602892189891020866767157766879515663712339398885183522717813174248429105093844778516254214067101295423521320592302028955656459433777256297451162920535556061722852211870655956384154506582285131617078772230791796524074179711484243445035274560665466547803779739405162634214284590122956702568512435989327288052735360045741256464848181187892690867433427828077775768207572655072588132090820663242385510095790724540664878152103262956304972574777612840725611749588773092779834903544429825568223864292269544214023485908238713915419701341022311477300757381812192445270296025009563206671034092560149943155568997874995312250461047630381463174205677145596031999527108756881502791617253952950353257604208587987428842166577730489906092117165510369769355262758590744163689262599958794084734607958769662469519469847392178232471523959873881842854639160503032482691650797545072854113636483955547373438451253219522001068083971698261262732794178573236692554510937047500964424517591573256332700274679490747191551249130826209238243217549673144920102071257834047491249874539079623292644122599256636917216968136429445740019776490856638283397811347742197095250465396979715450396168678814011667653482121337151458461458296754172862177857287277990576063662232274528942603260760613186013037674349227398871047447599439975090861096767282562977773141078977605966870390676778180954568469205614363623477527022414375463250377053769038288361755789499780868049503349008348450149862010204349788297755050972189332629074152338389990972352893269392049486681785916048108659602460860819993672014414036125737229384517741613942577194552360765714215182357939343343103096849735956323055186335840035854481464928863586437900510354921931134870779770232610440649626266908749856328720571172615454333536456341051819680307442389509596900358642701546188913005363571624558159496274653265929815599746744011128486069729273241391612600105006465199698731946054976291519178259004121004149616730714403880437994624607234171482830346237166080862967219559286492673226925067746536838910972661755015189815891760755558347792331815681070389063884045122330868764159602273657647535713003389973009873630109251533215540606150795826446021526259271687064583282340511220600868139878607153882774009666866974055236208021828984684333836657267431283377201362140235016767402008105986385095826744085369255324728612624117982113926590620270243378534213628618713777185889256381443009891940790516063268519434418973893453288276045960124695056489786930678735946949170439483833129891536668165091999684941333021223837441668972133636797306858947579334207996519584866045712607707322249659585336245634086013989016266985907163044535759810878934884557380430289167437116446464513579342394670436847671157093303114780236022040835427055452344292456264946739213101786337267093470761160991051050340536527629185049732072237875620325893120227589701235866349412692324178983887504856843344696859655007362929797834287190669727158281190972017533122854227832218727454282905902161250708408969909644162950723468410023076610457916953326025186702699097922212860274838987057319418301529666105831973795064160967044728962548641219009571289036456146211376947617169662823870603813027095966385433081955570281320878424081123927903874623082560780086122093107488963378327144133560545878294909444330023730797483771427885004697131172441693784908482548282983431279290025970245058972087129110628030005450427060181307437051524484945009029397388856203930766250960945648696670908347434616174210081521261636161083626541429148830544363271658934895390168234158631266600814165169059298245067493195878207083052685604415150334756868071608161539341055709825497947038882442209040723277550492793545708747343872466449833685407703878505543199516671928088826292097392677530068963097993411820595551302742800548312929947786458160515891263279537357254312375285860091690705729353125759407765960467938258334974814848661330674848198398366954000157261820757198889537465870129074979891361700268286594464104805260950789056699487575161827331094746610369866311357785615459778070655298392560415643628124596950515115564660056178052728153656951821548196334471832323376595026276492012014226586132113548083888945668607046459844550432221209241346001003915308533465149620058911372611962247422600006081888775693312493681846852579779974075340861416182766064631879645439524784478907850892728533097839240154250804365794575131909054488216525889492999243614249695289168591852884208903768787428630065155561929085547149663340431838002591190816821723522533532561483107574458484352064949130840335957910544725903996005987033062408470716755232820081403322930357560663782389766557788505041713528906181240492621203517909037706604991400161506223631531449794119094227659826245935214630478328616774867660858751164345891012687032495594397256920879136462487291940545421579080620356124143258096059023656821798624524323218198889134302270279547248273410896618332535187083930590374503328932014525482748599309231427440200605013364399341862150808178774086201512081573904219859802549665400322969680010928798816055969077794024472948237407336524206513791248093105960958721903825022660088330408456157015480010881454769134747258984214924060309598434938958290846970055141263084993838688769626402579058144841740326684849952376778947320691626793588422716870188183811744083524180838422839577799643716122806160762408966086329920228146605444644834840771577817793576401743235852130599754031859151359826189589174389583706285950964653302947477651647221485180939272541110592058415442727174193871793203957168982708375715343216864434588964177594747867155343502544876995749131327892625949099107644544726159470690375572411331446976009266818618136883718447747365049167373990451459585010536981798220326187958339076137520953570472746000393069642262169573604044924569563809835831333645860875043673977761758885329453741894453379638381390146412006950228547113792840622601326183564004189621740324873342502938363109964280551860691926784827577869569951047053795409453067853010834949003085680755491213454196473655874771408227281847185600033002258389876815755908388442169315392913816291837875685566288841117134962452010106700498689120667920344421890282786002880673518303171805270987456946629142279502278169434899953093735747582864550772863447577736224865104039778000337245528794267536757804445026233974947046575744353520913814580729049725214480485098000031982387563912837080739762614379256616043458562173428049848727831662574733110324673850840395510462622654968036790608524688743641496271263137015285620202179176213783534664248734783954668415818897363636953249001354720996137965320701323672784210936802479696568015294231771770380809119641569598219216579280433529878678716212778395804230623413462467228724934999192337294477217963460368342279601464927326326490184157508103915477027056837894907438245995785539444060412729413251455127093631975914624053144670550275635993025231614045205522952024444053330086490952116907333265907818851542920357209781333682415195311507002046330597390596657898205269439555782861241673378731047110658083675073534886375538062721602605519950248198119270421264067990125049741939136323996814714760588568830648584556687261809757118509542638905250813631741458253148335577589393877922379321494288933985510003985751712703829107307657773833659923858087017376494443783064270656083220949122609503436812377086181217019351467520527876715929951584142940303630838187740044529295022217261856059769071892440168288320094670882320669091629541242458712302116289343588623499205475075595423663854888774025614641379153557977418164349313340150389943677953785544238582500662933181315092179158069995904788334684642705773062963520985679763264690758689358687927447146536840312799665625982182279887420251899376282661240760532933201766821539014795335401615792231603435285707010280224584605349127222574851530874466050307502964875454945781879617381725426108054510545042436800600878537593578543614156592854134310049841465116373892532284867143135495250621145983275628753290223230931608667407429099416600430495656382071243430659694725209902685697137577333593662238940237926836718709693770874345383991950655948610673069504860079117820855133156135507499242998215053534583905999375924571834306877228817190677606408131821464248720083325912902976716709440907124106544370438200532457922418349605821814026474113366992112624791959431437701915228340234144220651641897768232693179801162709033748625766331878584864838827936502179321592436273546663064133432587302546195934070663721066314903041629458718089802484914144391997247471919001990023885509772823340111403497022842559345987491689894709539014377619338283274052703309256214873943120051071354404016536028158828612964277515831005417322119391506483663878293260063002773507706972642138066916617545366843824977414704959078832318668022629376334150249956132854937515849841702777769149664723805385121045423949257441975033983473679355137456614246655299570162674115149646512730127793267564189754480385417955228998455914250190759182723928469907477715537368627341990922198236786596268833397730371290041561217483172585888499653151273585538223253483196384201579377419082161615614846412963154609329756197287352981328250961155421143107394027821192548734592019707034090247790019456261411539462627254826903272932624801688335648795813658721660553407898121100154862992936840430295088867370088086230310225358207486155049407472877299771504890979122321870326140145202302228572128502370865843807982937748993564776698147799613463376490317545143571426890914335161466518946806771886053919136496699587695377970644775400790983054140076670661699337597378535999803190244176039632777241836918058214728561533587247499351349665248092414658897446983193757293603975371717095956356523378063076853621805707745664428412413998153480280891396053071066835628424990559798339864923097718933460378105079466362085929125158103186700016756265673015730790244364141410547629519800224385144913659308015503776919844049694435518844262625209615177562417590106305695678928023744326268464634684348421914641138785731741344012405782646454228719341544030818728250262023201350002748277596048010908963588074843206257586277547719573230501364695558008870519167751928354377058797958944516394166133152087448497617163744034326799591410811063765773413841752239740550921343845469584629137113706000549844970426570512389469937534054253471438649619628989921819562833125378610198632929734825813075775859658788171116725586690484756051024779071281954367022087504177315648130030312110896974036891882025547397574016293608306122257596470170250364024649542014407208870076331746205010231153056759038452490199572378147504765133403330650114586300686265018539663881958084859286008315230707649145615335790683862879175857511114807777881891588634436691313480288616652762538145178791319473682491238779004301673345310954922238424700407729724483291828912900481829923396003477485138770006175268410126238453303364771066614676404172667925739588888986819162100587046198593901458577796073610727916068088739725440174860325302762597530524606968343207615002210378358118197209319473730424375206220257575098971312324050328301840534458329103122371076156148316047938956530697121713284505680022872644588509196669584124569640814276957893973553200809623179898261005708168086297381837078167190864598899005942888770834768529811222449532845824941837509960694673943448037892229812551798201154590311519643838977264245607180489676103189474170769131610051256416192214073866658329092768264270510741735743161051446444445896253620539681307133237963998344565863648632319402905992242330024337199579150445109306279515633105750375066214243227189495802491042229998037805730197743762000008694058383179208290696197365498993158726207404901808272688511179287805259425945367675195792902685730017874899579782504854936840683738096141349320933911145666157297946320585003024942290951647545335705416236125124932322373952594425231145743905574023533843349989995760199846996524318028645429199785492989243138489680596275871900684088917535227919417516969339892815915775458880950745114588707860061971052594756072117730165301634369711466631824596717365683634687829628317918142320448845146301170911404265259792376881328506531804321895770741426523584108867210435301191296105301222688604438355301486315900533096959864781784806517573709305058902608175844326066579561533234591561917666437462812074267752110618484921910822980086203791629596569218067945843789359505219601152855018793364119011277706896983048603220715893908650862685398487206290052033850973136627458467921246938346720163490681982066502326704689793615274538889718661094104821145301143828099434196720924035990629815661439865357206909651688660907338215235890026288279149586187447807861550936779503020620497836979351504505509632516166511243543089951683505175167545482332008275854219866951411474455473385625119411478041935323765142850686598459560524155681606798013216518493565944729372918057534260557310331801718300971141323264151399004928493178864912264995794321009771691718871451730037780912120624750816381184350186555549254061289813883588986406328561770066386567966353396309118584484850359341574483678189120977782445027009675003273234423540704021426157859419758572725551999883106361266992463881223686959327123151431337407243644688125924033834481063424027542561380947461625118461822782375384624812079571938554500216697960802929192049263660794005741626058992374194905115864976810623702000497726241876219917973178865899948045219950770818469904973892101197096622587426080889992450270729581709534225929221351386612657331932670568870320284212751553570194484613293190459579846098848994949241336588231636824592719871239777150640467253508559873395622266580085307229611022222360343231367395242297654516179401672201910524830845129341729433268527153284040172166352363191003679449264330051934797237090957078491358560594594815147239221646238915934769748552998126739771956563494421529502085194819186940707525844365967747149980064898040424629263761499579303395435421129366220890695104298033632450714735153900083425956654692945669704559920744785288897777677332044494525722853860966810412870796415020999576321606357417007853773473416351194331897737024849950868117019489177902300703353561386936291604720105732321809608058989020761428481558255172726469171723516454971462408609678969733870367191253657476344326576963570578870911219555955021599557596439282616010011243094903305789067304962536921331922049551162939448198069175233169999536518941630614326756877277118475475860701567410987033205390093642445140732595335722132851021380689358471067337233112952974428663690011856215874181037166984308186409991237858372914159200299546291576678032026922954207823406980100261990274081405607024491122923601823992250332273279361713455726573569935100644668620271209768095085635316427269395682270521174917087202221918009662201794142274944869088918862193195004960063822708885167666107890094478722190237875647972412306779670605384042582290701865841038873266393960804269887405674847146205933626801426512682761078752652266370396160893554171591701455756547388468498940474372185599603805412566282632102013013941352506237940432063801408041153609305236739478091064426507523066230509183484125149655220872988109537826283445246244551928022443552820924874109096893768044137324677540792317493483591041676828879964382025339017638960483624326141054783289006981283698867677905904013038270490471924269259034034166921301985576103799390622564013502289727031518063242418357479834978796901514530876164168921462652484151924827461909167206992555807679972712015954972656914756616128034369243122686561263538710122723367450374411005008992869462898749541831556453072268010052995051221239527737537165211886851728030975555752346525425902699468164162431896144846164818580127944907569547448176414842671041545048834236168936611385931793813276758180887877382718791684947183198297982202531170294827447141842504530674406305933470617202437121422961549673496881934814516548929233277399178059380918378453432589353926579914420368935606364645392459145826125300623140429459086457928334831094541190226080350248004706002976364869603508210552463910515178038284344955010663398855273034340764272902834432677548758386430687757911739198232731836252881136628047733896302031686164009805624005030078210924272380895185792416536447714106661306367229194388498779877779601930697075923969615276831737517712602574244281841159562464910539283488977776475646903889017966586767876340292493259865578275713629097243296655418096980773261585639593313563900937523150910874013490103132534769050510399301847825597664100421078675065034131091170846149470785229765630977810992692643305585653130381082932160678382814490066825669311502292300679982220181361501989854083115426600622769868767967299442774043781862742669043507972409842373379567255255288619101460184628866660616775866117025194314519900741554618412121282629041060773594215917500395875438997107949948452910561572517573676364327169260433203038660229723896889647270745497531123311428515949044849058876555020375034421948309903370800532000946380591225804584296580864831027404998408171934535700815231766285289023518935965108574980063942882800600773393252936737165382030661030497846310111599758616673547172345604078502860583708531771985642903317303173151877059522170830795321697025955643067231204910910771620721541416930419366259411152434130214215595468860981824274057324179971491422947048622406540083722463435142864731735034427923071023026840477386185000815392022420416898175375728683788905289642850783119171635855888515923613769108952808130122351444090104190376629431930050475075418706233280727076244178157799558630405664258872187745918088205657782232456972211193876284649773954647112910347042825851988208313991950392493652164015633462039318522192899296543508176112949175614698052097628495101121980253243288372767927058777506053720195604314323913865339117963650793934794487370440641225574280222364745897802404554780882866059063788629654025376474686835327847016862935231454038176715329763979382500907456478743382375799609464431048467505774061935058195931521622938944355266905127279835424419498000341518817177906388960231526245773825735765239459689303761668517226115830778506867853952196643270673921422329163748478261318579356307011037345278718522324086371040671957160972575616650175796619445743496285815132927247795803450920632010790608703214620118771013394196937215912917934539368437186300594872084506342144442392726797122537708958511627921271498489297911248202410333718658885946411366352556225487751217645742285509399191506167894156719853818348993388715813632130063533468622414875434212442577402897222925030423257219284580172456712010317438207239985292873102110686270365995887299290627735588172129818287616811188674741885788597337861438566080541787621961288851737211219409715378610394394550776159060780434161202230227568252483187823924971440807987783608969355067076142750700640577131211878676425422702439737533864410998860617759805867504685410204751336654558396583805522458073721765236698611041778766247482483255112000777109169855550359703671402927666523818764687085628957543339960322769012322578936958428584960459541222771822987572148611590879013198524377898417657513779254772070250858338111380089970942431368171307426067913982635467250391596129094889102373489103737088826822973242987189193291843388857863004533272177792604408450373034041959122175155537823712903855560327852169104887928093569650196169010703010344816434110535082748542111753628396444255602100149601041175290720877805001646731953860750747885397105896715563883744523075732996295998553345116716349107157023170652052707031461793839589509963926934129665188571570017042102108834883745736512006911057850356400624147332398969489261933467451099099268763228432893617299451225422243335029434446643551517725056845477168622945375684255580066604852546070852130517255243294740080393927345484166226544696498501963884575177125257811896244748394682039112939210336863078393666471745170018107804370107744003733164892114048057800864870297107840825741942975041555482893485103508830065744976932121006379096795556372738098192120078004164561944428157658803248147596260688978716931819824380819655265190510696312427776255023647176882278249759362387740088828877580931090836265161088220343983382071966011749856647714725681196028617780341201401798386620605968290976758528340124030871383606970578617233223915927324719580131351393235828703855873408760147775963684413981634811434491835442351905384855855939791914904479466330369112709854773598657081056481437374420187107634007582188053731438871847202706859291099860159196301666714163890846892716854468748707813809445525046848155702002656304274602894769896799397357638024303856267195332737838955348077839287157108697151896264035436075353967201215288528981280630327059776602561050958109024784567484565664885111985340314788091067170473165527510988600565175295541635231196343967931346358292711955646793270511169992999255336931921788105739684254013699280074725222698300937713204872392733071295775383727678052829002927576805224077518928427189994675692446652308475981085115687275821063981373115872603915009612953369848387267855880263467336073031991762316362289622207787918916775128603082941573028390992106488383435702659372940430849203317366789672132949520403386835587589500947625225768303621388540025747468679981109206419877744746826941598753779902997865738009180662670107489864955985116889053398701639126710557440754040455999811455566849573579313134504914948340971939106359317421810348612208680146596271757897908031770359473915133431118461850206368696121420780121633580887625532176403975658815466769077687077972170908403191258715263195408197090535901331169561806487240591203891158702142001153155598660795254640452745785151355955769814394599925876571716821203458689858603004326212117946173764942578948506122947222560899933225041999444240845755810608146865716558811022228620314108636711301794407925926764939700944317569880486124893634374574649008436576848501671833260906320456332544953398687802041535579651119873999850987178733562444074830130694641426984702608720600383112474804827907869534271766348099195110105947158834827690502448115167310722941705725102263588843918141384855575823955086821032702263822024379614978182265715628905885660739777817018510706578219909270480372020355579424452976714666409124074828982035560411020188689695662629661494776144283070443643941490310408277674312388090912304341526010823700764492908862687638198497447508751108069004744126008929821690666333510251429433647138839014021756188527028067509164713652407759711541539223674229359668545227209486978572841606284159489044221411851078597571801709024132467211813848342763912540456040185185153036340238928629548603452654946117422903234018652295928406553200372720727124025224249594875059915485967309592252474957905139449161117446283674075217215317460401215449511645384902024663222967784055606195822425915185575377626993781741761357253658047819371330768310106745548756052720984076709988160008379357128001843112765580036898421885831307872467726825459039070749547342892300326228965533917456597165067926981240481326312349626806769634951539403258443091382999947572235054194134046541860295331073804622389531188878531322104174570190798613556633651948454007000281719153846685265522082331520637952935555025327188178988867368954264914953962863862703262123962399744128820907848806925118073580680466687260875958310463265839517646373854728670660450477168955905967932352834853109473987658596283476168417932214830329350293030370580408836257982451761244562020980777238305307567995611765418131361505419197840582570320724186010595478777328836079412154419534282169854319696141790770953245442251759089371232997133463707480462153487537397530939074762909793746359429059874669806719063530411634318136442734986149506138020113717404530581488607494988695609475493255273918634757707668585032707076517366947838333259760179088818033162611660548596276062951473529297670858646882628918100618444901285714958124240882628949551842085877479148338140392923525479562327640367043572782389911144626210837440821132748749652071613263639004479306702837828823014162519258702267775066067451432035150234291038130964666477764007677516796250413061225237947749011073140949315557617602433393191411225878140201721862751288336699440414334534600771087078051443728740475823126967925324959960014847729556592855917852823681260050441312606242946609610214179674685947210558015082377423579274029227592211109169830179604183724890238444023237215866731091492668175557752859168762705202198441806704676335766429236171555480424484742985326296584666668931199128517654922275585009064432565246478926751998861654251635964466629178677428163305436381921076233342514764743323372726319172204577078631145793248797728973296217618997570149698835041368277724942116485621132863777768547668461013095000195225496432978785332885503228001758028562894952963375754386916360683221155829982002439832905913898577983921688595087780718716946520939140019403475062129037799192189467614338259971658553736839779936565847591705295405873593269889910146946446025057479154580000214276212962999550854043284335566722760758729765675215799406930203307396237505482933461287423751456094660233553923001384338858347858750321573952784449976584084206878715717592343154213446889122122744654144408984852078303243419473266020611883676437320396152519663500854168223874220063753299311631866372978044514222334123199183253237523592490997132994766932092738449618115972636473011591727881651025803291856666736407485327351268870621504603154726396723442759300731782165858549853868230274342370843648215296472905095136619367181717142362174202977486395198233235427781499666540460339182077808097065639328079420165132318417302386467902081493687476645773054501820872572059349056997009345670913987567424140643941328672122563901720674112903348756877133912723037071264568852961228893789079949790468150393392164439069262726666384454338012122505994014545422522337448660293808581764854813603194355042356677810565513324605566651613039941313594126680352203780794253666217310741738554041864509253394330892425756347158583060994644336962714265632417723612060566186300904563060420659643173642965336884116895622271825246494126357441166408983195634120680098502210455172254297032266895124471443476659829574232571750907185538867221319649586563870425378879981120135175996821861375702846227968056046087927077612958504492445500995291831164310495387933901885775076624438980041205503514885694964894477680571425632736976602090680222544143897809957639597741544457463177317765605990143296746774236982025231918520150312485083641251335646319676696574950518590178668431795364858907052646126317544415600166324835341951176390593120248351257055385359572731000265670257006072928316259464089303342329318369198777863196183592058596468174699292097274671563782670459839143096908838994082091129288891555597712987215026585392515783119665969190124103719114840771732137816859203237385126318561810759173731690389558093448908263357939417877301329933049564796073498413665822448066601350676320830356618316665496515827216269061571810424170060353763011600780019879810093435867292012923957643659183378744539016896800598515365021543887640276717053146646904868926808119186921505419184151722887016641652257081980605182003136503592797142265314802931307342719681502164496969813551673934778681969692741043900186725797231207799446020097650411507886493702177385250516067784667833202578344110199421336692866004616960280987541492496523239176551326054626927465448178503259390621188503170320773389489490612566402642344264526143965195922157896808559569691573865712035323903979559686337036917812051821910172311507517854069167576387089688660196572760364463022888075404332352210631001269927647678178362840467769927679158890388860334710639070437895523130004156595030359160409442841022135173498523726106746811580412398889200713011266937000960368648787151620325229402162564907528149587859565970259041881139049446052645844377876055938746561764846736884533250041897972849838422659644217933972353665268688441065135200081181799608405801397347187618263683141186958165403408932834629591771598450401301493090290186629336708191074056915270286313965850358449367889899052636834901854294611379642558520721027209438980144199542559899987546812297712470045309764500767368379450507124627972805183793361795125646958166453325018839596856279147957394922313726862133484449681213102210713765648274506916183675215743999456538120917305543895299567004422232718711093335658127174623297579650020051329017768169956387172797837753651534695893780417282908238573557517698899764880487019900857871818499272971258937629977849590335895883854526570064501466366558694784712218214278272389700369127827132056272010797520946090006133346455877714196436389207610650349101180821979707648163760670928773239811111521068253673890622252428029436794506033169858398243079499740239362360917176661027749780028584890846716030613069777945654477817320719651997708199306921160672344227456362619020614865011477628524150785574702034436119573341473585144748907557411137422334795613085245205632302875700780260304269013378762036814424871628701205932277571319556611578481895346793801274363117858960064081275026501989180290244238491030118032396777750736632984011884208321918501330319677342810042862914984558212196860825269064481689128142480486863314851439745392325984949698362247970651882679122590164644700362391834966850302677011627207136111094323604482569374325082585668758263833725067196235088776907956967688890805496571211149387089032731698360999975883940556626403255085120155771315132996021855349243425650199018354524097135479661606122202512044614052081579650650326752143996352155484951044186569140838250837730378009738708483418195654442108626831639474500722884289277931312056292564466370565291187023474940129281941699245096362164991364861263547954114816578620870689586088193587385720107563622586435567636157275228963649808225122933754957987695267127950027588407318854496376996703058441512321268914527775198198001432130569788875862265368008306177665367613603546952098138681008649076203353020086601202428930556045762134821962135798806694098613774368987397582338356067667842585882518285337620455825493236141715932068235616388531034943469625765223025299105721893656804878000249455793612064917255254988287205775846438929299350780176345442797621099267520268103495670294938547220389478448841055013715202182212625391078866129404800578398600087214421344475103566846513986971211934128428263208282848207200867658222156583468444955525307088091639935201618274741299749404880584658526476420365428209007992204854196649662518780856693043570248278588593376525928189513606689879513171795876605504799210520364531780329172398138246687039356655945283667506090758132121064559014242099166510792035237479357003515210352778172116063817916636923332922987641446063756767082206480986113988552731227443333631511246213435704254926563667992192944378763287312976598223907133439948816261548633375880110537409890805330036148523727317650523016140366382641853211603570935326794214664665814450578257644351315134060578520624398661873035547355128476496612986954351955405615270718803099711527741930996237092073966975688704868701756037910430691570784743532800855956205705131843810545284325213178019303581512604029979060240187794257698537036260517970377466879971143606914367070886398526291596740041895620775084573669945626095437161029851506846727714184876438244043188067557581062707290816213829452228705519094600038647974561098463909732684232690439937784813469434199708693420557677217490846472977282387553962978161791941818872909165806081281262132029519374340201204099102732952287951600910995477158953253264155324785045584084224607234760395351479857233043630640077076121005593494323257536524977840713610579592543164840759574539983252628361902983072726867586561837665826214684018497411729787619720488011042358908464062838590904385449835280843502628077998096022121615961755329794851689339812419928381399421710256887083496558252433251308966793312715053471064623037872620405848138548351107352213246781934355690028850370584248431063058417410265419376151961770879294472502984492066117971482656906228323555078721870339391220199401801662917729633777549844404962014849452475551892963461761688809802470846583389022713720734983467377230904995152323616673540590352687057860881598106668986493309236956849855892437720719246758009948782067735956771838811396307346384339664593506475580899070181968041806130340256613114371336468490983675734865682760985832308487406661341269444465471512007577880878801819054292750626300499821092285921732463469180962309807863470628550654004360146321120975930713541211352986803465804099395406319730263052252692134750487672952016110657664663671812115986223116771964641996087383760276061216634515055569706215760631065766567481604853391474530481605525239406952388922340102702090204547421048524526156110707566467400184803337015273765738189130158484382966476814821419421876467170607178430052888475624751908986425616936835566344665700011116561955150633792542317322081357505450944775092981384481400066709260350479731527859290449355422265231787559607707245875363928314858454105247282830413867747180039939770815229309307099308621935037451861587843373589832931313801252477731450589161594675237538363631908263597042546940285399342173526006245805220467380646720690265556633346203943873798940061339684221568125813787439831058746056461531321742906967342474558500946968622162669856413586035317538224826357831096642775319269602199828105939977929254873277352215259360679328233460578463927858851338254107029519053347229166705343055578960760252899250984010716870435712510637849384971272677881276610128847956302743927793410445163936155218571461097507567747215811181698093530252839282759386348018499817928315310228273502375431085082438480619713526556156574239002195840159614204337816861831851027622320525146846402606056115350765590295572856731564752412198186005241821463975067418759863775908245600911529621772145807952545291697064297641385606690670990273147945630189043281570967404616691207241929817510955093046083241761747119954314334105016107459391246317382835346636702777853877225864351643442694704980327944501167058917856516786159162045587151338021684162701263709484551501142040782720508359501516408544557437268960196625626581442589744139857519662090102894478425219853123081188593970087367785129510931720621112811663708811236800001245337966859932752917535992450799935783642726809857531421378500367337190217677569383068769965101083791955548594953894533188537050640345230537204105856881479012350541399202750436168315767774684715572958684306969501798726049312331532794398205961527258012593035012579085998641893071934434641607474939145059651599302654907407983875747518624993778134273270424626908185223691866238877392901584487284774552201567830759710322291610734032515299513040702695484034464137489488775372907808711280554531077216179256599071956133587883320330222948009470981317976969520062746515391110948324923065004784531460292157790380529578370951328606399271386750521190345418624136396156489184723858106880544107810415820569776663186789838207318856217034926339701428422142454508860319065161031471311985772595438511189122832778650970712909598977535188898941448553139691102344871065041684621939944366370110012225616144789517131693744149938989171537478956456033974371417797960151017732950128670634325730757430697954883025171232309093825620514155023260201672084994020275009994789756045222213829520478902606790658510560180716954274884078479691911011514405751483598442163763585391932710295742473842400419656677427655830750887793232431525658103442487334154723046345248651153948352159881965452233822900329349520433551593336290348188298404130429704138180056823253610068251144842930978252592887833539888011473381710999946545711442228020085565941196508372340862323691780677098749119825581126807423205604536028861486991579937487907820331131309963068119895617521832744515509274580360732192712325561756565491114520727943323785436414694364600154525221629344666514683018641975916004306266816451426355402543692592228248720960233948952850478682134097314611360459518716716882405092161706928714408283892802215890095038091728492202041015035643219496464178876681537221313550419906856690864502822939373246263644462338764441523870301128385413149212986915717346766102538131784780682772989964225144650078414690945970774250082282857143034057044217715757207683794429689967070042755913883811430515443389936073883732627968031146588454113930067703276091822683584486832804113049036264689245131821320897807937723674315731988922468831563076478723635663340308846215662224477053279318930942318248427560109520426371297819230092107362245087180610596223595574749086651153189671039210657705379274198171775395417268105101776218349951006904559834031181882268723702819679963125684072848806098612232597283765477084412801470534476353455993536998400242510526426347999665428440749997486670651544839877809838101184743049604409387194918522300129700359512274486137236865199675471867098855551645267215388078398741419279569311651239625016189191134807491500878365332017802170520135263024738736899606130670438052442190080696629654561311597805968924282694395039741366657247198588982821955595709701152058915940882867537029720911604334646053678911066110106209916119419794722122362248722148038462640876633252915102715498166296901740916017598576401366900776901484368020100087456294395666913239325092832709402137222504090085129012246998547410447531668176942453550392278216663111339288174315878572642020610888796957952138536843702303065941406899159017663337637942599579535969359802741540964045644934343865376870898646187658923038153739239886344600611509502297142749890491819674477231973647358225524230652090787029089090964227489265521475347106461411665183110326109495314954440391195472389517475200000180775721673603281408950546675051811148897161240261993694459962640785509669551354981640395879286809218741756688072943741478599088513511336369157598251094992292729913729862864859441325734881988459849982246781569755968316220619347240754422423842285419826513475006508530166419040134607099691864673691754565887609016333286071521790350022946008752358980774030748508758721012508234069050483837025549479111649454877168718944519356293217907757641808901083867719067241038284049815253929732137798371508779951271322399574560825447081850444177984512508796984159234998692884028659648775998737871894439244611584062401933914182242942723360212130623131393566806609567510358684861973402864196132393487910189015286853962980055249851751478357137258320077326374378220582111908079194987646051937549300786722696270785125560985787310299918641344089643541073528249529715716910990479433150387069839071404594450834799587026778514274662960981141410870717393280336412850847232497959826178623017825132832619860241580522495210273610795009123499050060502712823820885137081914004719259705035205536440922893151854075460079818924156739794531150835228454591708327594078260877341281034880773604242423383324120079491449479311184707783555996568637088072224129813422590547580557687715085796562518211989651270998747991063189905093319188993854527452820110986916169075288843904419836348002898569771012679488990908808101951863158876795254165713220164751224197713874049428664377107019995275127711659196355802073630209030809833595664889099644275391139604252529419024164261066051752778769643320382017757692620742451484012530723381515991730480186701046145247369422450368860989970133293914150253730637810526097229411262026383388858268712684584305391820833944291645140204168223210055582835028268117125086462891844299528448764720475339639039797546166930097034176218113957841191052651977424700464904233358660982735419485100960600558573704225245964989938481021400665435862373726425618632280642097729845692400595230091929835521357494856799043596317639802604600758702218435770039045442359016705434431212907015586966925865975367567845267326073713262988727089912136345636753066315440176798405354171831144546546286151257858759965254264850271693316260515529086798913261953800235091732626305584210228479248940621023062584771316473736914086005932004864200209497759876066776988394515469330909702649577533194395422342759298888380664815280408867585332064135395970651069307389075045798430885629996265821834148110211152233515488994317851870568066211018332471587560457659360698830888068852665324467155998026741883980149957231062819569886192138486849060314943514024316682178961199670975743602100345615612282258792728004020918475135802601509414541246920455756376081150035241564729502780956878787202032133196399326809128154365239526950620794899593425375077067532702794279955549308746292968729676318822549577011664042751738255910333749772580984751647514700947385289540288919778270033171355037155897011651980464522689177508697401283764974956253031153611316196440927090680454841398234934077180766710686951152405053217955590115724853693498755720255000123779179783653132695044932931817202540750468226340688061561041010099305596862125982885639264193362162705643958727521167992833526687475718598478278995441444084064805261041272177124266810959197748936598262536052169361501889869867290157473363814723907596238684800965310413731310692110638183514603383794137579009914647965035276354486394126678317656496264182674740781275628455200155853951840074622974571480573427222633602750445601940895994185627298302819447307196388507990909639975829319140644159242121395670462283781350367667288591747558594909221565809228569089476373804411962510979410152518399432124872701243462539037866469309347515290805717936762956250567323557120654921694969033395010152643239912433028840288859292431103118735740992786057620624958846316174111744898026339099178579493023762910979087854357272702380537654993125443298549240745356329714006453224282322858856297521188293385984316690165660719814744066705603461468903837614042131192062727195470259511824262499109327025425216104186267507176777104070059323175885997347539449454708150571565600313886740507047299011137904585695726025399175328015904337457912910781538359886351946754543972825079092641325996434130278333388519130481365581501065092326433822243537666134196073197383102282727064712546372298226361995472036912777856969106826180541701818707498554229712377872545576254113594080359004845852715111826608007318199517856455480258185923461051821258905050713734439878563902561316403528023250020842889649016242151479243974300321270541261442698736935345348875299755745215560741857832573741430413425698095217705892324011350332188196422139161755195713778678303530707483841774687677210311632006984885369285576477640847214705342499002585846878813410972324408539617855858009070624015653717993297804211588308919985912157990360524333886560898221117262562956962178286117364767242210717130393150334061573367348308854204981410601064711731181194321485075297332453858963611129278586910483653925784538836036584353785451935001122226754400173075890955299237786910584913656937652322781996200229981633023626993234093460725919617528170988257288795007468670713577538343087114640250104409223853629871030669221244732610902767503713781530869737706313752158818580182656824665519997674930656633344951698904475050475298476161644449284247135718568815853494300435577115089014766986611609554136489923353779791607169086695481667116161076054769355935910670314345515924861177164850264462565059670342021351286026549286713782942988946512157786395312303312309372867322816277474243508253216085032271578042790302453422859279958041633028492244692802104351065483160809864987047782144244564296526387271401150768170411797184830671424132886685673809906690496863684122366644721523944829658905208360971789333397713084697961452199273191336467720227334624962470491363027629604420208716165941585110510260985106809265972097537086834885967989418628755530508883395701429220635989309611138748521576226360181936613924565807307545881893048530551382014582912484513233712942061014624776503497181657642619822892297146314415122980219120295521382079750936670533489367932314901849560216577069365833516394588349531725426520249646819823523732381455200684176590761433489434066161753074564139694672754716067606921705535659713892989369006691054700915839554274959446012340633980378350548614486486968069770074076598747168271482711454615205221993647141055545513235267492240802060073350988871153663989155176100458499970276000925278292109480955431208744954143548691632201150629329365971046131516286020313021895254402954603777533648622069857516822744404080785549566682700796183404114911259686494890975067702633988729594908726765798191884566917276532447385448416860746929049671945987098708827131076616679708596940963449758087101014254393990993795860971446623704882604858301199171661553149863193791767336736684440805504747832641346684224095605580424022213554291213437803171806503313082458361444062705204657315478147622056658349223525959282947971294823043179829528184671299062845132395384353891951904515592757768701317305354097339175266520767585714677867822950790356917574234590971811884549353978159464934208894823210346971715844108703009744600375018524384177524694911177495331465916999271858104905792969398686009001640513727263182817632364045930557668747445387733260800140723073333455973477560495426588078218177988875040052067107374114127591523403415140407025857795688162460676925427947788180154316498080768916864388982456307401675094703988076541511562019748106044246039230886270475959665444557306196688568364706035152964264996256282564864266395789151302908880930452823121731173339072892548976293686967097822466642072852890361305858909398626131318086222025411115669288595592278278391205547512475057111945226073167178038804760171818726450928563466162207066302435820743577037111726317628815857086977758054880355771902683893055763563493892924129408795313061977187973408735351224745389650027773577023220199808179748675112721521592233383156645827349202864885578077262507372880195227791375343395116007994725170320294315822771029103584420070860017311727068121666058639641364583229710185247288022778746635620808264777897022242767467248158661340398104538031708805254962313628360593402544982253509395819287366110107582424127001306779685027682919270161652533114522203485474400157211377858330480390930547310281968752416210960577367802613758566374583960620802583661151492677850236260452267699677192147333720285259654278466093903700251670379566513210294047311575891968574971751889260180550064493604992988207655897751644106766316375806943493724430601096472555452602749905548350066842433269719297118104285617534747274274410297565491127655125641704615206592951920718484139069178744092588556915053854406917837989208865726890701920910380445901237828148769349437929078794077204475937525142775936563295502056572236593948976507097513697681698668974064888128455437902698080225039053320185776304116928343190412202946141075572199273635814549727843221546146367902261526742255330101285353380336465513606822104694867370748559971522871989570738824776504734458709161669086255888028593955059724946859836507650765509939840062236181881149681423083076073374783636692006932223087134023649642513901959753967921013459994454031708065347257825760617453762512495765093516999925468184981096799122956366107503726138201991265054452859441734072296462335907130187180776934867837070837602468624974029913664026850428632454903698255893397233070554334037021166992841639936048807802679558154439839363244385876232488810659209840906409192483004807651907624898285694531614658007978978875589918578704406787912702954372890516840838242789246384401591510669608085805077154355163182616210760979182272698442371172959773911982695612143273925164416310677815329590424562719730298988050612823696128901463763950956773499535958198627003852089875727632916954841746176672776250705961570220287767626662773897040176689477602764202315804826770309438847232298307529561519619232984099548792344575254935957335095220321623147261468886442067080905137474191015928082297657694890720886941449680164219768805920859152714326662631279782424879050837423598052802491779094232155021136763787503956671789599908396612111312898661124163660152946592009720548383073613674838186043524504350416671350110762097253071177436138888380834814127436657310198378930047826787473308897658702627613932632954395343928776939341798126499440936606171246932794355641396459467828440437985095937005273303337331690667467872736878203641849392901474068058729765448141240837780082298094501217392065682923386093187512378045033974224658070639344304758618932544813068919411222039525760447413935368669805564064485765969524787795454465895384395375396047007324517825470496360380438451456296735786946962455220777656220078685782674642438888315010777787862843516515245491161970078298176780758313242495181351663049819689510808311687653112497951320182215694867642245256441226652937135862863992152257095131547045327656732282392607892958010390552757727697872284296207837217533869569616288139699255505578586461133418981162809864776970896908268761843706647786179686437744875116597063408366823020550222207642318319638925678170808199524278103478980949044516500422780380829489199547474356250840156462430681059874421801165386998008815010160764791058045891739663417005431863093694150848387993110210035961016024587218886700358735214144569417689059838637122527214263609432189614635510689154171877333646327482593805549344990559412474126014268295882249714325556408045036583918761535258589441884079761870738626020781393460712068779181121912077966247290697620415132320001026533324590249356667974283522291545185895762170200773782966065036218073076770769114236436389719179804868994684510873265811099980833986611239803624210870728150684557489618960220504887851679513005556424972310521817212021049072936266543594302670495225875285990418592672679873439465545569393485868090404768831874308986719643591911581066018689130189534659151863025540834664652621772028445527496059246717979146098435508901255292020846555231600897560418964914850756668938393004759531605092556922888816505714070151447723708803665698862264088201741961636391192060595945358917442018107726786024273077915778765593113504092084660830739377047140155669893471592040679051518303090166595978670225267639799807518980632244418926168296330605339513915644900406795869186153250797089934676550016308468568122337094436867698802565557832773770956346917647531044045170428935089013111621144650905072098930691723681170315525124721914136629214852681077352297421623307151505326543939843377907822289125563389328505776268711437456901331148390672522349285234040457177431222765260050911875248575353277064133737859219962080525605282836211961048788718649113953076844015930997074795524948845010707571903329240191924267555775143229771845144576822283216117002339529722572488308426469961312955158683837486085412665367278564970181227089209697416208993097233904033173261773391667621307637626104038900279929035763746598999522722946803797732034356890168013830677754067228601782113494679377885565241498558491327132681703928304216102215242793729428046637997436131805318733765035797986167631138261349795374682577264129929841055025108818267456349943549121803000456881550340136648571455617731599555824769048079512485153863422333662165682076351102254336658707319310156553592331242439967862921619639433952340334511187113976673805270703260890955020003748356820904253376777670465027699850387809514543182387553894842470791844186620061763465371550707168429274236044861754411599142699733911300008321174140961940472339994688772020883676486290665598247804963673256494437220558521426608503003864133757848450677453648178998238923145916274973638721072652162569747927527614356557013114823071726546750075614928942154641113358348096227273288909076265943399072733593395898508438965906778301421398117242354867894628900455921679382071903164604628403646268040900575102525108989001734841927900735664373085018447721598774373675754786473418649851216408386743299238918133157397218102754783181889348094571390380522822733133397356469034125907145304107909980662920849507941467123796531197010012056843328258189254673209716391658242175942836968069928992539544463217314343502019581558239644370965923391534276718987794427671461622871532811735443628955875930543832916303082330733369848838821279632452741379777844310730003402704165406672643746174572329070525145982555740981318900016369441182938331612381451441538441873224919151383763602102114255829963594935521602137304485462468731692165236839164903630705304603299855075957524505708453151075076012534710930600348423570017314683403926213601976683436057402201578784193364542495286908983988117934686861278959960586954839786350313369491493535334918755565230678435178421306082120971039727902809550276626050218388689855602336752198682084886970919925482772351263808805908726994760778347272967063336398687594815188402006424799476281337238051584972315811516753776246452651945552820134366392374236223353350130160249776914490554696026160899193416348615832400867343509911210569894558475641574769726568373767113761487697491642429825733045504324234333780435986499981182048298336237082905844437391179203669293185224460345837797382060316358321036631541439206449982286271234594126622621274005437086527608534822553777133562795652539331074541733504184369361977222608006577790178800201373814513681281206187634045155790907953188441380950914333644077243257092153450243377388489056381800096605602434787795180568929544556557459865941394266211777136761978482388859059587480716072446461516009645897527831068444227030108264484775283942243855044984398858249738856888339867794145843962619842849969108982171914201404227087738334008548652875805539924547479708442382837536706457144533575358964204809901992183734494158035639758606847472899279949318274965925876333200899693299678510681925872655482265462069693656664823151880914363989253149914855888153393585159449664284598409125769058559044044705386348613340368058241811086584058046242825214337012326630683061630050720858460027846215319211437867571347119202492851575471806908970570014549109802417267737381063399487420733877011999864298986415314236629044942506920379390923740532695838357716955032524264215231166190585688283540765356667132597103535491829849866057047437329582943468474685847202060885577525312702915165282041550030813294519298337730403281254891801892913775623017754133169735406866866861966404976160453386808059592911468250580147501155755607682244728753571062946386184894768284565566202166494537904126784923841625869839590435710181662364215996930856725139958840966474491136543941144753530290335275891575595735569878351324957034261680709781325679492582818377824727765864297559003531555347842876150819510885439004716804005850301943358454878931608883385679109705231322620784453668557455361519659891099431302293855459285556727034668911808300822977737538155289044343417650122017632620766641330120194732854720278077276138390083412088830563922880215265233416466941065770442276413071773015383717946656678255112324696830466967244936376877379412899523735980608133821841734262530363005032790285536055683828570848951463473564830637833335796009960056558281407936372173241903293634269990510920358040548589664447769402628077323643502630709196190270409031811994544532842839900368378586797627676890398084750270145803328685132853278457178247975728421687910695482325774970600720963870364526200595316466371315767833555857115268598641647819427523819617537488528468655612753352746735347701682909336342195670872471369720086625103867879312730063505656142794625627148519830873582281444126202214045334550001350066765194429224844026618452648221031944196503179715273778574188064382933821916083293498159269056734886724990671656286309066779561735259888511815104281781543291645636923481134618179711969534924559091425903560857535758846015786685973435494547020018135520542177403012531447852486920775322004122380477026088458802821085416376800585390554529829777229590862122587862481607084054595039305460608333918158387322189105381851406410185200635526294353982271284337444668622744673992982697072938773871376815040938063967414828583329977980726765533122238025073141878187939489052150618666193310070124303130985013024580647543362451619078666631682272846141984440674378306261205694517949431386039837175052763869385238278956290375861232315734943256780108350145626471091988611204033995479751247321495535932813070177047175463955036004383117827953503764791892589764127056357351907792873280707720866747652385850828815645035088015322765124191632289792592182083872661941978409537150152333724349293172117964988717062249230339207424598319910397142640554046210618747183188573564930725610181752166040730658349728199078175262396280779955297886537714949697626957147907680892897952533258766312639888477509161518133013694758119493065785314517015425081005092014580073025234093347954968409862805508381171010611864526645060933076815987904967507238957183803669430249989959910910810984893528619762374439853735223252604882870420974276788812744270891698222885967413973785845801050648666014176309098889089692866152824345683183946350695059025904815573753939447695849619888045553373196812703292667206576893573179944225217943897083411474647578197144427597791313491392533234232050493431992888263735991110055901942499966331670954027928146238848513299733784875390110401125340206721807861180844100418805510995019778705902231396888574381431880572464899949954986436627762565073445989327597435079293432168203684555352132118425916067779084918374263091384368665206538747540208568712022948827139437126185378183968496855707408139090808957042032518594974291684947116981461803201999401142496564003412838643618834612131072129606106328728888790151222197000657888317960898224848273670531569276048789519584516048579032503003197191686823351270421187453136262452321534784999423033903602906940968635112084870293824935033928251953847299320673495453912633130283731799768299593624833891076091132758203913019369216187553567325693729017371911914025409854023285837930627092051650736682394846553296626147709054505376559624618179705193716394181868352273708854916395207535027973204786023167003316420623009392604408306913569352778773113862947576415633487654549655087043369413940435103577682656559693671386623315898282120258646782594776494127624117175291675833881744806500261465078807032638435787533736497906199713775689561525383591551450111508161804513439851626470369254997680726668271998436108926725976261109777916751468384013923742372729483593884687094288733662509014425683634912554109058713416211463078213188828140914822533460143580233979624360776851685248249161429484377227655645205459528278350367381687967852625952444565302698584080638543741978968516762008467677090158734464336360568034279241911962127883422912579371562403421289746825758104449168540092145733315008967219962442950973483993409201528960316258778341016401606935920040546722583869692783136896919197114925366710428531792695313098339611321063356042063871758968993509154568215490225042559297136104500848844393876425461667928528674950587807474920477669415323988698708716833354204757547448711792060523898913390961105863533299757124972794037748448312969328644209411394144859417795075181081574293337434969551641804569919994863521996458388326595900662948974274940868166359451403901827065040227768895908158713858930020427799155413348897766591403340101732429188697639284630878028930346234594545038403733309018199660888597941531614720158848097611740674673399597895937962513812950332562946558969624559670295652388176842869148701903860597954700998343966677170924895365788475143534240025070061852785346379627075122819252542982582976890532681194092493391680441483483441387696323355286234856050496789908233989403156262353478153327278726682846277389256008895041933233705402762910175052597751889038839586278131012649324759245785707418134249709079212422658725309364941959123364734175755124460675351084094507382551176147068033735957311772303752056313320568349828315792605316700237449838766682768637497013580486175913322017592443615156330277743261099286372931609278940404809175147998039642778691901564795699374847195608394044937486423853333974078839230809145789965543394839713752505848452911487627423197680561220337441398326941449352563862078722862348871397104339751168106451193248978903497003793719880780763967187775072557165648610434210375562329769195502339897264339131174988908274494137928599848431064078485588459612894525721590326307280878877117624690562577308855206416676371321911352268876671113234120613166443810027017103252840942057653480981480438138250502044400448527906094716441671550331726851398899913348016362460335637723151483066211003395629841358565796795964161142571877232569614964451676965828750486612381419755261172041095648041613241133444248170359621602719514574544275546688918080514293529809492526019846382702321909954232694921326523321102536943644672778753023345928689546570191653178738643390687414328265420890869207036815227546143574774510366940552653027482022745352439060895550293891869281909459418396447756137731793986093879779591949857341631750476029991904771479446275568251687222075452985199296526559906009575738753483263553115669144587759118901821281550742312734712346570470301301039368817663142127710801596670371728658944421535494442014063311144535285761828834051086554808185648728728225664950868764181693028224284019432823493950355407944222935640360940829867356593425386799159434050510655280011098588799533272177948154320228311198172467506233229825891269761932878422760997447253022400744754220410180739008316621282017148239013098451940076327601604203398696588606659621629490128346812614736764822102564161224671880099331327333776893972555785361823101233930129098959017473355881210952999171827699743583210740155176298782965798710492507145877029783641654366513916115299416674001994944869895508595962873784073630646450978454617167086953647543512775252544637023086221629524894250770876889504620072733913067299847808512524546103195289378152042973179795570341981012012443410050983117357087447015249289491769273527728089935964272656156749928607554429447288024989476195575672949524619744485386184580485122759331832393703270918192880888491168596725807682428157537542170356218843718844090099550134003372855586459349549919610739313832661389568671225405336046957196977417318193821287771613255736077544729844245233722203486175465202656069118384548204239930740138374757210547974285175038101358488887723049233404520334781456469898796709475211392990206613661999543720169533665937938481604122816947412742166000798154103925397702701197805318771434453807219901778638612618009733226132278939229093376706578874571214756933547801546586182452020350559455863132318592248393885048968357892362227666618470953829893218121872490780643805018057303703812107938364435910591007312446395408478354053100733637774602174798641714548240983322295328738479848387195874094841109934419034932898498613433276693907627682715045799539484978930173601764019754679309382824499170330478787127699812492466973530158289536514650533979923178881967374815988753110877720620827308711095524736683761074939801139549871239292802272942249266213407501539149510305756307117141183916287600546810231134765256017133339421320449414301882606332084666449889039546743291214615175679936421827765013363821578015517988774086302936555665643203396210373516472798032590858525834398776077104292187851301967662876540745807752332752979468461907051722405535764617803149165037567727635674422195257301584521841778622481798477503810987955939769998961284255212846705972255922133549727729587283724780391940830502817427996684835692982876905993129056914151440906804469418038575801907595865629751203451800915358202532514718439356997655085725143401991608226003743655874730458137798940767128029906803991569088935856466398138890615319756074148004655014706822161796385938618097851018686677912137873002497523927134941078089225032566476006988227410417681401245354214761857506933210604321226163327988262570627707977371052318676734540856720428696020087877556635477790339432768003887162174102858552391707705837806308389387654660081037268094721156996504683459996447103592952273850577164319769724219851199465334751848750929934202742334642748861460629863331215943392413111740351374022199350781663575304963014487699326053478087020174309083076975607659685987843072328297379648950833997854743295617642484455311958521723551518876538623855314750135317928842826239203012128548498560145001053938395573297215062893221609475923919607637228476029615157319375677966639971777745351061187542863941125093616139403751771850209539234262731611629195220783283401110478213467593297688188593718169732724056375959559464523498247119461804633931052693274185889084478068867595434222463073121080073860967425464873990052794107138211334361474231749229606786518559375970892493625921662706262061866409125069965372694081852227815096634117406472253968979548314133113781619233382613620344590871839772967320681886961017486334277514623087623467531346433296268074985464957796357462515537719475482238883258837694200229536372232149366415528524576745051486452508779935603496896402978508071589811220469790956251388056170591063323640660547416558209482258983776498192480212838759759560494521666141814664051409391949043167848355939778865619362756641613842643536304943533039746956314580023086326531807783480101713517576595987340888114122943395707231066822878508718952677003822645617332666766801033695635263299757027524559444357188772610855937397920586973282481523098401449732825393905117957831122642660942418655284871598459262948365007016554882223751429396721279859523892217945251236417602108340412590242276317749887791362639758888212658885935375431344627505203179063151456601365560215316025139382215423190512751053673209714457675783911126739874892997098384987817487538929916951256671763238451524211158597175021955643226952395111993988726291679763783926352281491726386598188961510430535177735947283070228090661173194495632063973755899370609134539251782451648946404578160262486069193628163576482762969592336068465177807928060920543410246343205048151949598063217253378810435181797099211947227389961802617614030316953822120622311993677985088401257258747080088391157121304802866895431604012420185224716108134581398172608653097456237651328592471865517693522973392403316980345487608594684158410056996005792088021715517651966449760137833507818357997090223854274576108710951445011772682825455182870850162916433252695143351135779165991025320858267095783508999366872721743730276854790464886227541066015411556867644665492248506560610046495988353610238815098298087365781546667654055538650015416775260458505460233689690850631496960637944171424880995438526547270786386012236722245789517556826164630613129097776508692550625859233325993764112838341904990469515457524514450287566721757695469173689579468298799001127175474811349406756773886211911494753345341936963716443871658764907004760594589799997317542617672025345491635113094093797012191334718576893969045307976580600148685483239727984455687521773721706726088161280292860500024918523436048023415648343746670498264116537170502309500284106607873007759389448629877394355433995104083681045089699890989365062826388403943347332542534590649010649918401598063543299736592446013021481590288180493195437193337008615630686684543561647717102983411755586594922100150147470050476762028083123391336178003004051003793066849591914057092876424167936840931303927882987633221976258706265536356000320231697034071032220298254675015171482430496121120551751810941440235972032282483737043910681291414958097657854655535419734071483092538141564416389538207191983696968653056746735588216903198380405928588540741142695797696296885120121043688083466523124093845734711619906823125673649440976198366161779419985140537561615740117744050687649731307613915347783163308100868189614979695549410981338979294219969478513505575273785768817254964578249399815924908508533283801938909579487270533065104075768126834379937421825718555891168585648917577935954054245383165117933260392370637007251144879836556274750719836635497820198774614272583020544996374287259259533587102910397970356681926935679771489781557703876125753126379324741657685335289144527471430453918397299420837459436727850981060748884922889100757830763812702115343395076001019750088035875299608672936568134124250845333626556490112729960238278615983622145991624042001607928569320691676069506731848246373686643872526293202807781191992280210050324739744453801804014602464645734954687238816202131078089460339919807607140180088573792716160418594636715729981195012223758958316211713325585933735689350249585959021937528313704897253410087757339933315853392730783142754150363282448254158830357882526494131863785256320937290692032491780139327061678658233849207714993055955457883878703230168490250905225358047308411361555899506191085900553926697158506199385316387196414557912456760555308893597289365041417013139800437824845332222501084768132093491307725219677554517714269474206063786070347083246422483141062958002540155602094752727016586208302399817464687089717116538217362688990790728916920622176464056922139284398361292273577817151986910329720059144090484630008099954069179625790267280417231393353337418895039477151507686994783025093089334529253395466318079106320324747457922387055978073626720437073053829133523804889649235873491667117942648982255467873944232026320166457148154997344680015613882994405395536568259710561171811966150847935481222933225947741105812796074531695693587740956752297447242723607899844039867421120742215512848282990376269944770894322344199496269290725706669261762852437365421871692647897980686401486879515116445720581263885701048830819736735266745010214853719690648852294427073957708570742185455732137882292699617393281109531489917587975585632357745870353915128858961011786180479248813218188037429865730575598204418991112104234108252676597284149232459988905251632023685620684870142222745622518585904613227692753185255999574952092479276045210733525134956667384667660657724213707415890785916097316817842069346278583668599175367517858614523619651439979187754137147041602936017054183234028681716426885742152228676194236340129299081639418481425581370142688710220499314034835728914082639055383962776399251025264691065258377082970588218315653297010214179625413337269356981306839505370915038078458140061272740015976183652786116792405082646780918181350517526426956756557004285096950545983611355756375419415261600030400326948766978637407100364867443880198445539004094257397104436778272104096265965048207738650990511367779412316130776233542205231246908099363431206172913170964553353904141362078734924250927522755449234716163161292280760369180333697823016694533218824031155166629812255171047417368000701248858509476020062501383386881172038555023320349811800310526231056134592247719898345692284961263633217889999823094176217110196476865396583420285310127707426745734772038383506388844848410779868895582571899402590956919224132301944331372963774197957860408408520568419640172634250255843912935670400006330393331024314958847234046824469540063520213370633646561645528737994959404672235869085890640203954172482319513744492988468213010094423324579581504809118188477333000440061056281067618285427542480846116826875032913122564844588105325243413292281878227201739787350323490141969137369633171044042408379329616069557211389383862887322440802829131395363169672895519446586031038528723627227585243326250377878810961053221618719863281331708646581073103503115868402719870428956889187848825564979757087623126356522628280902987835034336040476627084608293171288358972263217367884712855171358012123795946315771162894595865003954912364151813884703161850893335188546632636749310538242274705301512041237773274701500931289452197975918120210231325683020755744384519568031714785577615509414464646309116346114982649550604832571954505363240727130086163026669979875153823431251106143624566615390789267800113156340199888141680629215935406855055122580505910194207614294794251827755358822849930273788834143195620166884422459678029350542931592575433207064346264587606128850030225178607097376711787093714937161456248250860816754065672036709406516961053889804931326605965084842628953519253056772503286423727924370744227385826065378796591761853219773871518899390362431817441173981937609268838296924114353832901317026489859091677056413277303071818587675033271119697008622973781621960027070232662787970829332816600148079682985182677518465197597519449177431817067223423606953478193068194762312065237040471016948797786260946214569413006627970441859839789538372495571159026321861273531793999082785755277515599413898267163909733053762065581823419418978259151161893040236298632179694664108529908273316312745262580974476218036247004356795576788175955781305844215625212423400424525956743763559576659596603204535799078526569587109283210860528951727627661903338782536447013221900347424496219598097402400230855331343266401716602250828934265190238750962644873114745187055952662829872612506597709473942179242728599759295476528885903348529360855415043156852381678774443195277080739640732067261919095066869164961476102349305517033522068786910619040186261354470833841274170145683762637095442030470574998799532540072931282063868613038265015033288390149654519199487186616083510529739313313738451382561287504566917035896493098155140960452871793100202908846576064114207386681129435662477935400413480150813697819787372994432609910804877225889839089765093672357300450010489243245392836215492631065684763564907548708979274213929138411892553126871347052793121490305037154105296397837394143150444523817004867705117774019380429448867952522006249270423041204676374838524810986561643643793639013467167258697060558960320880368753977869859754064161730058550830164678780285079979359671327639771298431264917777357397381752443807295023212060588374109567816598553967966882126693667745558160197357382405452002079172646573777777595194784012269553427151225398269748612366390258836868343047515866312944913444816099924104237581488561447910943638227459614768997765529082643288815245489609563544206793198482541546153505312605955547591835409099544433789827639671336377712857851975491571986865974621224199450877590897555608594521867313086447729190890768308725768171755271542930568704651943848020360908954544896820935846796672397219309124156123970152942641323861047243565667550151879372610531232893897442308278295891887211720024974040538380063281244422489617326798136798252881539690498892477735389848888616899455753649093034058779145793222833014579725162475575290322097943310014435936491725541281342296358100696380886500679221955558048418077738943334851619372377220071207638120879114254023458931888221346808500915488772089808859087960604133775616449505549741230979249314878714642828648374514935298596167289203448276122383034314646063170558340104832030450246858164510947365034778041062913992213556616080669159033778210867456674588443242148336501083659438743103971483804684246810190493869003733844020733019434619312324876982066068483900037315479414329013751524191091520422275622055299784693359086295997675952202111113691838997223893840998385008714241744042924395905911974730870931068632678309733662874043220825518016636790260567086828013159610022881208277921181964394071668439481371993600935186653866639781651722159369728145775120570188100349446580931749613570924956278986815886455397150755939145440203129979268349833246786570436069362269410903033812366835974823842448146637650798268101239684793949443013114547200509853819299571537654069377480067035223973744247927740904761581459892562699661864403492012891060902403374345518609656595919013923591081154089061289434435010046301632764415633220891717497766982668097948098815038670025313500886736995410575559349994648475806459986121546425977003852701208738648780252311488094143127306399468151234932805487103221560182094995777073616486575278638588442153983191444481757697102990608709864618370074820802876020723631234265825121647719238652338654350213459005235131275049276277274434002811959004217343945270069327689716649195473137721355163867306259519402682116946155886229380115124966494998093675746730122297548751526317076079406301003520194232754340218041393617467303930635939053300496268486679872576293207097566241237311149319512032250290668229944245502621567728741641050983774877028879507076594649421538865323498577685093036733815742944024308466543509914266496341739507557564529822319042500508679044413620408269254376453599391014495714431251909291191432314443993985184639912156431784882700733243172347843722705519478172149365387548350469700729460199050541094238738151228127214738335072713727548199720052067475278373158511213621814763300788275451361404059499374946818655646987633039102258937798913481130186516109317243554317912249875977676513242868202376447282993722087426406684134838334239333143470951194155855299704735134718118853843255955445209872869810832982996823917151392195224969690939958526280674319543707496164023950850801573679375330855853656832158657768646951416862535973256843540371074002355540210693668359522118880311852196851032405477065008089734769335713572377957808593115212296338431881500763422802357172908572984650940244126620364759120241142465293771584466608501002206028940782776907188927788431169334148011168097409994736625884725088161851988519098769392808339630914066482030709386324807598324719526178799784367026369422692459647742074540677400806493287400448341614754207148279157820472946020776739787538419431083331452597869409161489423669278356190909960531701268988686094824208421545906411039771836364110147309060210877165998345083812842541801175960820264781788363959626873179188514144110177606525122642465184897817809166389596674587331749966295104165733807292479094251726682304241511591505992290575429456576309698021225730162118278397344261553041672759197117924092638031896496979333557250160696384004618013885774790377574898424486231587122252059817974350940001441218385191007184309699653238193408746089935843965377441722012701998244860072429955306359601667924392240794963505013465466521473789438126991733085214550090250803927368497399234466786378839967793470102753023132739617571710961156889462678458465228560061671191602194508318069405659132573423478234458149681181574977457723460471540339001691325200745755401590462355173331883679015687244892893593997519014107646790474015014859907101370538233881613533265020565749622839285871650565894420200194364202774560881115971517023673427271319584171858934116376916503678110734364221966645241781891068608499763321853359819151409174765317936499471129872653170276535053709844690551817701899749228448260746913830621825655178588067818256297410375937789790843703723412795953314029891736365798303540464479086285414056656169869132324062736879317179583184351867257791531228441748843816792586625238858741758410251072368194543438240174392428778923131198349467024474632265081925330306323608447953622626897661796129447852712700420381360078474241463537701816431039143011484220497346616693558994446912823623840354047686045302279064075692341950604374405555057267566623911490085185536151674592408077302300294667444470147253623844681656874397805078532393158133628729840876415423016386084122788709460897840527320171564758470613306638594018645592160432449041034643482625786987705979618031979761130750661590718770061545074357640241440008834996050595098793600408546537279052662428784933209581488484391861807068593720451010751910841655154258241910460877765991047445817741817969071371778714248710542345294154932005902409178681629515548943019096494567861485802097271993710172481530449370859047019769920042279953424950516056535338499392668625499386928476372882084969859484322213912815566027887464835200626410440779869666554838089400884422571833004592457269794235619407389653606207791672537359098606662087011524207023833787774423095922488598824248052979592377467426980000009260158953391258791382460213195633629164938580522250241965734942494031542801822994179995000371523998435797151898323984840751069485375511419706081788033520084609470051294489378947241979943650296085757887105140945816672618839718404326897646681365453487811720676850117042012202448100913013841171430251786577623311972334349870297558686190211995411446066663048194501021539628649034852778826372347113032046302874714446074139300514521612073411144055883934388516136566047717108697299318231641054366520490541900114201240741586441321987724998138646841958881433890858320869818730069612301049857933622486004654709369562253148410346031453655011575997183911486455370251069249023576766607488199396788210426748027206758427072739619293506077361268201610650959328682795795928610631680586833448558964059491474163223069162298916653920145160588779493887590746377859894701999445651652230386915770424600983129822010696365399056591003389197656761463424113908825640318599700340957048891447473760150139469658871322232089984926915094860971517998041290488198303071631933443870705715318845500508844594111160651469211861272623886328061165478345242521637741545947035977837764401968295580574720895811586863628737708402956293349628549210070191317280188290911825617331619932463452215883092050563085877917331302266894953266684909901307186972521050186392519021355775196510434730182683495637299034099864953834060838705925689892502354219366173142988161941447592323654183792089724593516431383093203620316603785599980620532625419097140302628350570596955245456507984466278364059973105461866876886486299933508817380321336429319749490785099090408411481241886728337919856974216187569288945798980065113999857350075129846420162249117060270778144291776100785026750543126804414790805686720882058266390703542737161947037185709521056172820304757519091557487092602772541139041077051737383667939659170579376419031280333074451090087698255653613600467430389804194562289067446340400303049973646576683581045119385905994011576731040134609171465012054899730578950987804793700957643807370115688036590713008862655659729859551229000149893572267479886004382996895318957398622503437736641165220880668535214154746842829898553473845177067942271756009039436082232491344697817697309083279785009850320492550900847847417581770195360537107187808071612464010439085241191173830281443531069956748787777077775143181060709551481399007884279544082452370394867237854414764593364329896836519116245114847132949115632354879259654105870012416402322853256407967445557198257889458885382294945322366520111530607397848066187107388338229371598435557874878386010550204684224500248220785835511340840097562661523676291953244165746475673389191091520772505665624767932612562715634792909192161830469544332246515048627083594690867257031541025970822582193965105864212173552040309331144427584939900309611629409500829218511733043381122991868067665302797269876575472996227801715704108163461867867083301844852059903243380674399321706402199343857299386793188547171532168322696150245474002721473674483471246534359076580565606990914749274077390248376590169390123846521070038690146921339393154070556364932715469207201701762212993563779001448481274755789764058804537462321713754824462083791887048031378387496970947105117676205559944978772243927607056585241658465889181017774947955189722985702876084895818695348581934094659643088428814409253778924396421081702634225793953852971404399369932655722995357866964053032372817249288950177315738534853476650484432930374525656919860088255064829740994014518299063574182243792558457335657892532518792467185490695929695287570391369722931580654662680073210211216767108612528554435234819831545552081338799982301695619190263120369013855774336662228305724712844512579314341112617182019836908311627421787402753866901905024079253349909508070413957600211216052481112809629290459576554349518298385402419674617150524054186628598611485850929153289213959846126232208433454775648103898294486055493264258523081571743858604974612181388511873830167620461131071871416343190723311390079850359612057626922887203577810516941707804109790233907005963789252664829177607028937635039568575576338734912876044456704085378436855845149991502719919062330431612717898285042940177416212286964149979250130285907112127590572455247380973331914226398273903482519736337735349470820259040052703226380462995438510627299208850869797574518504712211497308349178506708260021034957215839615564541236569859419035413735328947475205197377191658131749443700272026962016158582037737499018391533856818898529181210461354683098515412604958851841467166469711889652716857610232849028329548353825647754082399678203599821585386172684188321345632479294268797155964299918082600000471356324165133236782564499680002108625905330841841802862764952337047551272645636225044795633601956392406136728368554589916254124094055742022847616722761441032484679809482027264734113148273808891905488707634717199016955033943778495822640862716175039440146034240261667158851297338490131708597015298682353214619926085382994523704346608533744249132110512463229270708387834012543303940285979373360735524152926045752444336538104332882031266104133859140967645852597313576390203116670483811548880647716196870554416238151779699966715465195335213443591568944321620073662252435410896544600110316866235984275260088689626411107820727738129748338948163045571022672806202748447747828309613638453343195335160665319062986029703707844335102958326261271109433414860191124356559994779968171131194834522386867844539987914941677874618038238606773038038725346446843847599343900779524703739996271369499791271581338689452669311226651654869748619078668303158639430676878255244241623038524621226387410530568963161212479527043115047135099366115895329730960149945066545972488221985654858618054574947501064532527310499630660277009472980621693208628827603544888055248884050042981079805068310193657735369883832168806733780135032412929102120882750119514273185819235435066678276914636196592561631223818404849714068605636810292807528697867941708991563307382381124860707675877730364124271607137085424465881678922455932683939058092727028107907728584067772076804389590012318756091426897761913737691530148819871059007683580855913633410366225991169840514032391978636727163985956186022904298644815269895501303671639304265631066311460346836863095197400785878204808450169583701819949675452664852571256471552744134563227468573558485919720148713580143478939737485305746159313910385381496511054834803782567648426491842961119471928435793642553465143417974830527897495049001834152990111607827495487328181121035393326467198388141886984591856136503066161748984587665396576536835925255864908580445962919028578689126657350998592468253344453608881792487850283212866771149357663992675399449125610178301916581145665255486029486533712977048821183066606109658667118451779276026156118859863016447055309773804961003052299255470911438987051582140426343031026030764916221419201406632562519043029900659313973756909150618486238921393448235261896912461078195527453119585358820267004046175262389855995692427099307231140497957449218318973366036055465850903593662492133171134862863424534076798528355713165356233526138313000739738628407040734924629612506105921043647291400273843067764439313649502171680412854049782429096642155957152263803683164403804432359657567989648381204958714651501471484153440174769746514284428776547352329809197957349029591390907352023101849913470786473287803904108600702400805061530088259889057102405700608000717218761658687275248954331557654604729366179488643750805840167529281663376416350693345713203935347634599852740470757239964804462835696321793525324984064460400037139863987058315683873879368121774803303133812801482748971838222412330942051993929228203607069252071960365914134113360828478772066566189762418771168261730925818263878074482336961633302653558502613429413200697683421852187508817287208103069602661041613251183155307964434498164069361398285995064494119170129955397372462700961279608870135537648227884647693126855590750527923408365534907315234767678025701713125580839548028712461974428152485476219832040672969250348199034506226913635190060494213348841490052353724226007781328698756170159772312104304520487323450228174931762421320061107113233634738422264389038757608040818257022030473154102630546582557255044641488767705061200981322989524050223466116475980530913895936580576939870484756059065769350367192843153278943099636927637141436712319323133286031883707641301917734550061460592637400628996173916003292861757411187298240826216586354609073442475697228082474277866002559949879960283829480578578080473981459432900789826966931429195748763475024698228614224865702720106963527698232588357218509717944134893214166250705539291671638492074224260868932096349679262222060389172550534812303375519186499692639154705587134484781914533753821173842792180588658413384802595561376119563349688316802664286631920233601983533685811227551135807434349154885376264588871867195082305781269438586939282140797720276050163152794048929133610243890783726520604681816614679866810519871236635946518240347644930668998536251763078333722803484788936343024998706956035274705342428864519618113321171833659302863917326000426123579563927128764602482749492896799938367062650892845341890341669190304394149925334797081447519317110813205762947096134296036505399350360923336165029630410151985300755809999926176468821126584158326789447422025295027477077959789052085880533325839508774221159453874741440311679254555449244187707576916940123814557208658766999050513539842055560549205948112401155695101632139538214183203768025824611681144222728928568633491734781491519866722829804302132231512235309172916044354468034114345922149437666893079231548535326510477879022252170997318255596477590655064588075385466751062226274586246887395756487021022280952885888036695996772614581022799574600398996338118018819255902358857522481051628552696298747233753567447107013519572463266912433455051885251806105646263494412365683235166600990366759287511043343976622841835268335705893281388012902977899093112357589363115427849182139744185663371577874524330360830341625438407289074544645532387425776160313208713623813635715126776589185687607381207952130546012771870612821638224912848235919901715880807346169317876298957311511474067475667685854286024963230435954261594766340957481813629938048399019677434090893762613537625725448212264531476647767939447226586651558644490278803202742748219982502512893820173163534076474031694464879798517375892734244398755270721667914373713463697569628701011215686873389426505273405215229472740057636463632532249111624104214306936307646095688059851867014559765310919087591727755940252288090596146348168676515886709779915870002373589710197985670190260963855343515411271924602779852561341348699878642877746767483943215759876391663615696691323251409791927118041001011410215721374437805393644539032071428857439347377683273606836464550436075740523098039632072674809993333871116751928281175982770299232586544756082660316360574742509113852456524506083818052199942260654010385713461855816625235141697110503624772184888069948431412348743117224980107418013559849128369598873421216080474728128185267636130266798623808122085401142169530155742310531954463545616193468966113268428686648785959536289093050900811347324473430571654058342707232097081190835503334935932655300489866653055349494622623231876565396360936488275906729415146213677864751980451020478935453792347380284191619117763095827366357992518698504239575349179660519558811560892844166387631034967249356266828959033944932916968880876962467100825257514000331127880990947818815615684882862686903801923785342655486808749278077502044082432764977873399409738888953839816613064343103404675978150606920552381363495366638761298530016419650312944625853699632376303639145548981653414277322966514335693489592344947369927746858770499129732304106881332889424516225765935520437085864121418771785199425892837224285915587306936570466650271069668309401313658992888119475681420453029648833745476621783738369808069464704579065952543086435845552495415318449949421845160012475225526173303823567824107794433382503115090315279210987470861478241765197874437008343367379513960146583251686888985188833906697470865992864052363558289482268375586882703034698264303091525295178194868354169005640186416486094239320296856585774816795333501515546298832919731781494648714048278322866729989339904821590256123867084504672113027699785540937681631758031171174572532758345678261547326816673348383193460118367330364796663838423286164171838385284424543852025411861051876889578788054154565631328420436440430082667198389716296114172230025973823576295738429539826897177794224095227358795145568745519883030215341293747156866756594521023973923116538402521728250237853200285547962217016670538415860784572103426421138731279079024066582148164299237728865704192716756776334717113002006262212512092397048062506398045714110889527339679747804183592543358664443947186583386026696961543345075344846648224311631635076110117414036399269580470771718231091562225523099997733188871453567027437728147203793271786797721311640703189629323457081007524612433582050526278867639049167506711830102587510365805456767399700298257665063594467211176246390209358351079384954193783577834343460286303419373280644918922918343898951878854489918575437837520692133508545994374192805389063809579218616561129406124128822275039448191981733980565478465823706277443943161325095080011546925313809608119059017521792269011196896230803780310265961341030874566293388775073105828880084837126434687614633899964972614086083618250186125346162023831240408101674509514212012245185406130619322681028806531435564462917298117269933880016282723837202814287236044351915991367713624238167682532185897627527786929973459221139088463045316622278861803552777998398221617379650723018080270023660925167100277544864635800654061886572388151253238728822853331015173392626425693539817742784826355587759266410718947713966605661017022237008133285628938918617317877036387212509780675120111073319945729512807227089920356211745009608070859590375723320722269028951277392120182632028280255167759627809277447024347555014154393425972293160077250889604873610373034685839672955229055181325422678434500525267762944153002242454149952885318587568212753166484665869921514655672905161384893799554625660562891582299873662703892748156660431494175988831099086206017846571779786302122148794663692397232472437904416736302511635074473502221982462352989299927409235464269402600042473426321144946580611723863902648271586577035706983695986817862101010051113702128798314489076977262714574943730282401772343068679737470014810307707862560011953259950246901585002730212826704760763768264287074458397441418109855867169023335872984927739157996496599010074235411963991306647754578312162796429698329520474886399398077037821684394826956389318109025364917264030094417853812730061083204403494908606699603326733871890172864542493937918460875119705401123128698699939641022977563596613591284718229938572797525316478253834849039616665292714651203993904069381675024278576521771580934660320099936879713485827544447969124240027796412883766763575615641652167398274357384011767669508442187696222601424550838280635277855297277018536888199258174867980096732266137650317311449215813014742088405209904997657094105332488817784661687986608523332242359498565785296788255050380847617393795271465694243103975745169254500462172813418212537699253558510044926919762670861128742454517541727541023499174803505918364350235278465273101236591214801788469517484307959264445201306099404733780685258101457127996927997103374519768384354506128133534012343959851084872251646068090929380905173979176390846277213692327321759121316451343412421740208656437264421518622691978900888410039817825366344509655632049918895877370708300705049768290945510689211912895740084914204718648613245066320805942469473687889700256069131276279255368551824318050230289105112370139641282215424891568247700648071686304489012075476828041407162753868848757558061484857155711345292056912188126264742566305437186202895029515236097858983998018239193356544547989304786696422715194420211921885553217603271406228988967284358210581588328383297916726912072821660705270849448618991841158013866159194097561219359041867261884195826268330829489942368723974594843119272221579234237591600999754065868523097909082371676165397955690868944601473129950107762472306402445007868790704781587484751008891701799285803708583227550311114105841919944032875132493969646593165878035138193171353510841470528277677765009400443513633251302461893524055270526977562484138626105289360258506458536963886037085674302731185099519864722780160892791400575760674926679369136780245668949994961860221697933841110242838659882360956619252725895698914763249431892299926171168508408353064677490063023347785181270152055243892888034823970236848718166548359041586131855405986797087788200221174374957884783234842390838283747623109345495619060994602555879926350839144626444319822082749158228890724064794771462456503687254759186667732923003634269508217827500426629750650532326957013197856785212233105392640548826387574136006591674221852498917480623565237906916471185009921126254643395711048043975288159512530046107671562592503420913309697867303010783337472144545246847001965323701476799295215339654368743880140234703123214244212726965044686034956773604394243216080499800369317110339336377208523795006756708242582466591587312289245404769843821365739945124007521497690834579469328126711133456361281267687932842741984684493417774624764385369554885890661970257203638170214164539124470907121709746235937265589392748974978168473980135558685927214864561222261218644122850504818128166217857431793794813430064029541495970321400325067156503391567598136650926823712037482740432463852108187882790359098924219644931522335784012389173231201597797935547775485474863460578604308174395524764722463651673155310389245053759292131638361825667670514839698321685855458517101310429288506272880292994361823826486782997710777845568276764094776831779721474693716541517734741615273959114815939915206088024788049000501178892987956953810586103816654241845710557186453762491149209239700307814979290764100406332191872663679176886118070966852098647711677957831117938683792690964338670420547380121103521971073769551484367499737352645870287619139849936330350995246763937997740476519978188291080491420257925156410056808356550133480369542880648704889128255186071397857356006335651817542963768569324287287969804949715018672597898878724522797541967575177618017575969210254019990652342998345092808540901184042148327102791755795966523743774514776862325437018941132805768789152622626402825642670602735800979210671611480981326188500322552172782985959982396127128740957159696792450495194223453158277897655737323073620688437468961066039894951319404794632321842984801117661769033143945992644489903361487309551340434694853774999729952696429120854000814015884524393964527392580163454057643841725637182802646528704972746163611661333889117397302974071098095736253695850161902877952843745071125977874106340947447364821793279504101789239027938450179681566470133160829927326679878663141333501784843284608375752108021706777818251424390202941360971065628601169322822529862555553089520672361814619517084138085441958727069927988899851760039566852667339510841207670161826521608480696679372078984150218359426157788482566317742696184820644150999002235431820447463581519436474063828690939568642610147461156892122386909177557202968075314053981613199239213189559136339822454953328710022028536594068893463834895628334250188836702052054312889281659053409564262931610867122205583460445346072592845363689792749778435133066783297232434687621344644937071235627366547861058842678676873413117567962271892354802562871386016985626351153591932148700101076173886718824670564036695375459426502321757087282355802440266378826224674704627752556722537714405629597539371389177787533232811474552979435958385542220733132485149489731955388254921908265798988491174378292960523510530497773829087967377387022156942304670812095417409631472619602767550367733910616353170101097970953832303143035755702302473576398328524286782954177028207894576464156678301681964464646430243296414426148076150312471243485344245423343002776968913875266307708714315473772571974074561561774186130932420345095144832202100783212168273346873612414552604079750800141807041981361569834365132384358696505226535308268267034877108220657627211384985972829646333303455487841493324264216631748358023068565341662176107193893823831589529208193685228683950585390473395584766835250610345674648047662115101784694117845307246830952335504454514296665870394838021431168515856129538674017748238573901266794743248400791378900402210828747214364406662669041570613030361694065796148333675667903172131528035837219450546729984645401865912837843947876785334320300766291639530774937672629031124119398909529886270880283267069092244146467715392501510248207620714948744420515343601544379517517265409482373449268084110624767779804682099696865898352375450574201857379593754681408639060900837964082256490087783268243645058071097565919162368166361142916258424701397570775835242595552986636550596682129053110420881053769383561713697261230488569010696145352412221267071119661299913379766177473762581019808345162897922416729443110958823835644192281792926190653204848425569681795603737405827923735411162714365072830094468540565466868556660052163878813457761753132984967322312838473865604832880617689563972122627359062142107725678664067801315403309404041630291927565146191506522316399110917878918899524535715539963734449465762291489729000505041036840533717175983588557740917863530357639015651064290139682004081119222976923234123011586184573366538720851215625943499131194774589639672852617895280021085766286421261206125802368597577477688525933701601642116037463507590370042140814748548103983371492358548177541945671880778311334540931496545742207014031779264537919296761039572890572943822779296008092480725705275783762058260831160612387555712613727934174708057635757116768864400630683137197951349918659077975961150435957825262426537573523248175107092821253309414113680895750610993424877566950874550468362802586761897365337990910267619781343952370791665575704187370309833433500337336741575873952352059500616663252040835789477555275335483459947536314042577149146786272751469263648829122107147443860248779081645943252395831721416898376118174333136228876954313111085421010801130639313300981621136323452727016155293730948857635601199464338160297624281086514705110023380085627416328278496715731780319232016124652380874974895547686140143250405817919379869264548125348086631921526430837201796860336105939591753391959066286099767865198063876273968310475151968779550284232977679221666580806144527495388322432476071687288428969223273424711430105989774624953172656256427115572055121715162258893464709143895466039953087255380893914457455527634968001628749072522772818609537700726729350738451517250468063876126238562372228831681918163591313437075346787063241954711713659959835500279309833836983649310777589561980080069195021335144320939458288012810551861283744839051958024772367553189470989008483401341087932906988311750549628871034345088081856726178533401207700018472337119975825246215863266810579123386105537428059350441507941177548142702692213434851889416181934381942111904145923141044071614822079267657428399875194260551489383269167876465358569057272858261117611657317877931993341800281148401160271867650221919432432965043039119676177529698592906652370872320950304287888878477461804576899413701444575283039899302055601837081264837221702965850755502298697762937326273534554917451321673849247014918282205356422486452877499762158967310609900518945931718419255495242395228176744667865171308830948023553502867362813987892706615667929603839179514381637710027944228352712597518009223090598813215662283483890898661271431077533387793371717313609995397063086872841765863748853431241116157376616150394012397400996710957431228101247202199293465210697703200679353963367460961157178805769844769341994371232805879582385439624136796530358127107612717528465282905044236798856878479933116104503714796673667898497905539140465306564407781638656428597428123787149142889362347480018857944148751284377612071353354970052052989501888206743071526955159155779294841488948645214581687469483070727176946582842646589244383506987316624117309627410490274286493270740770508512991739328316436403594944560912187058048366272150823699296111581763171612948634951830240958192406875928256839199898579559514104418879590147350757905233808578618990664904366238902439522312288281302534631542526551677514120164720750901838529013372878028998737460003109916218098488427229474108550092830823638398262919846094129247889259597451008518581380263098291438119739688786957947488177009344007472661477697100599336278005488359753499175197663271465560365921637446057206424725478256647208387112529775786078144146859601159210992048379320540427976723375444854790400638770078186840877902181915946535096522916757090250192232072108403083879628337734958824788113750726241909331737412506485318413470831336895853921972437277823015573986177381429075495030943587342499566103997248639750177504031784382515434782417298113958654014661010386685320161348110376012240878264552083190850354540357601727921058833070954129892540127719952813077261547176712148891045283208131630946752168615600458670720286184031278176682704848349287503941512972277247976503886909606504492773068539082700525882295327978312796909003021952152905719378272182423512803348224908971736711871565281783408220061147388489369880740894448335698761204347908069198971546291196997151612565042137932037358957666293346141002933779604778679556046916905432903855895042789718648448984570352465212792540586425324961456192030976275886100778344671015831008234030541413422640078023553298418758513863097992059360717656344417859819632114558598246228322054397669184368778785743301892753961687181679678717483279965375974064543833329958983974849275340729058896724558242602701521128777551850652102906613527108672425914803100396030365900406683499067572851296933422990651350221361920015499416860699296671986709820317893999109605194931316233501728087521749306878918468086802183060292615773132041316785467477856150461732902137379820485414501130760536548124158488791947178618863608910871718162812073054516870336110279743776393111413428202588237343026396572751833876030184354966945587848479961776418567394083420518335996569772445666261534169502968701639651537392805170425004460835841165130788101169293464123455428760712730258684893040512905156484585502134493553679765121676782039309287457892870840836964034724889333482260355564797460661557559103935653221394998690665198198081165548818544911457740107053733064315759915011026220492214358272232522765095009533206943533765470965197097175650155061877472887859015816007257046161700273715464948134319790277044605873805254365073971788887194480058370260039223127491734309686170695472372689332942841608342919231745680561989714575014780699778296835780643005295937582031960810587044071834270676931375571692078506534757278458881395051127074792234049826013137745360515628614096050464505395305610596729350306580439540447551093977751330266266647220623199656848852551578849107203640811186895734370020581399105764951378919876859012679795260535394023639870198486934119580679519068496958659199921106516446525936487369670521849761576217396633625150481023573024979264995667569807015122713693406526127641277566787744989290865223644253433694718085383192653367723545520411060515320432265706933459570208061867484173504322829779202899098479462918130937107905305172225230821579865490939357496665842666325467846623799702627417478077880979543925617941010681807961677018222295280808158768422738976355080223155651926383965206580675811217144560677933929301202744949646415219039536372225609741817069542060971581622229847203275980844564505021585988670387388078631102657917372892366314335329401588820959554247065594448952242866447199154213562761766900553284032261552062065018725873154625265336891464150966580255086069095951000986279436610909480448786860561548121275702735918751642100676381219339366918001295963919953611211462227108839035018516865835511981449566743723284755177133705626515007721522370606789743761487962857744711956116522056729359529425848474392376321141509552211478772952496856170144344988186183684835160089778871248373453791190770011182540096137473467672512925364367110538391329998861699508407785041805125411934616952922225122389643590853121054523638167320880575061561992596911521740881981863973991962553074633051983521908090345732742133823522399941399815873649994956136256310338054897154250849099193538900403085074972108756771239549877030337273869417852432218631961235915979118334416218791237952860557274003121366434245000777636836100637615006255605029230049809913836435967080071576685986233882182341398964961192421871133355831144886358888036638662931697570765728920145394644514490350339722431748573360900721462140302070379131342921252784021942584943346014999360698474235223211652212060293843252338525720044467203898605499973412692070543287449433851152368045184120294822556032563823084644090168354367519072231233867611286076240252222302410724887863359542612100242323270464039483275293485382388755380530353940848310590126048190382064236419180789309774325058169795983562659625804036805425153762845634717236425201081120340599381042977246116822510574614053417829072406080431263035896835013031841228490624923203046071163384095672644210857238304627981139469556981295127502855614043368678210431141562779123333280175364500728952045390645258139591047928447352127905186894084231127436706388668850182891553053692583980022664231524322516090555837419624862277806529686584070122347308321754333659627734148767064226158496952323132043409050001632472303995608422990946525596089819598653923481921215070006901999746449972026803626808074996765536495825581768958231188182866735568336340995848596044074923479831629121440398104504651719869979059696085988287582666924181642992798054833140816297333576990528613986879737134451189104795338630636538368559216372993568684837396055085370637406998694549250929784023842672077408529204912817480565337509318074022873525228457036381343168904529456160473074490540462391844050874973775445243914518308576148928844187240424845233670147133187829404232491525690083065493633400175874557525221502982107121560952012453435340511317668109617684970881792111289559371711177825212265306064103176926638077245388100381761363424545610296077754508094602023048218295382367426923661321474359991688549148503095110363789171917794561786158777685581011848370310534616021245927230884457864820743815337226834064387270765411485554696625604052906036048398000778181279843943787562815499362388024232353513598646529774326208071536349783312486096669670833854938104852569869724474283987888041715526259273650989860503295007637073680156866148226628743937154454963533301786100811156478684008568566449894452443289887160071924137272763583098945334809325206362052547118456244020977866008152930195582676828320680654434317956118197671174325711162688303975359380255189665788897350833729053400411095235572695456857718634457345917702479146022797467944032100559911782353302640597007036736334838142702577869373503933324601340767338139366818643347027541096778214944057167901070812301909448050930640062838754784213842874769608491069230890277253976755509552811994658436842710942185915671326310489283587378364944586553558055486079323743986446699343494729525882504821031982726293179866934541495398905581734815829390828052207287626493541651587779906931849204431554397753669484043536850219867564804998547112597676905029537575746492421036090014221633983906756027910057632293908061899589596633354144108573526907386305073773547278696392938602858122212570107421159358894875578995523648373444975650780526075514386293213335250409793932086589180059272964868620438678139704636316971548298805892977528565596121175661704776661083569775121334238262251212613027286599753716369998159299556680828368856940947735477199193611190119947198045228981420349665920009805174577140746192313193538777387956263486180156767845600513495564178295898590584615162847192026552711160318756958254098502359006819061620469880323205137226861990443443678278967835865705503495770105574461270713883049122320784850879224846070137203470271484328482478338453462036829507968294534682914721400859392893469612020529569974196391256106667236987368494830881430910676182849816501627344242541768834652642729990703119403243585537168954568018631243876199537135110575732776286440915767798793332002325060255592010059432997679905387829128637743411428432956629570736906013377697692445493207342699283669500684508754108811130266972197592309135005589789354537622938751123297674113445293825151092552013113460049266172749240632920386212891776802017330720419096041842679751601332424639765174724671883759427334979580540476124191528940821304590060769175370954077130727103772514970073069735919318569644660012436178770744160209595339436734196429090252560026960044955606215275664910792837986609328168765910336882562996666038376096876567499525426926341033943569966437130269180273073524089301753879119800707704678905349875546986867199874479219751231276407001800699483017118271323180805500768887713661569102559457558908614844678758137358630621117411092352118950728306488832168698886460637336776402921138323752252499432750606094139499639224529106253194296238831126793419639735865621957139787211560847735346599030015167792703917104286372377451998209917586052635227899513864494251282453152934682640295494205974135757229037948630241479863265272495277247317154059319896956377829029113088525443158876761197888084358978990710888969809137325749265402312528192775568101621443900973086590167496721273795027417106466048829936843458343779641972144123513309039129946239040865185659854203986631615102989866627225679381334735197648774559479829103649371564639636550314809668152336285313897045919794088034914295317085149314884402673861115953174585444073665345841597608929584363510117054071561678076778332862072483106612752371006936213998604150139333519940962024606969709625302644597834301661874564101638460991174755756540075656470789855004671493556171538536324504976714596268961300208688890499974726165275526627503508113501714300707454248984321601017221179526534361560843153914725623058314806421796472581814490822258486728950691459732894516795543884596333153258321295089858785786442993987546684824924993199200810333626369636505481130509661235793322867936846581053595494985213286751508135405908858601459924742987130448693310319338224824116420439336067972630349718406012081195700471732424524546411388449600035622725985946908280779156716992705120449909509501415416307825983577316009514005333285756351454925009944403777682015433020483412555362551774031340584949671642857852556091509370595535424758064882667551789344582283385971579461609962212819905998113655122100872391743890207024824159166977528128196517879513675928703927002189980369187223122793517657155138196175999003474774203462316542369561451234323203865419344781980728068048721609648970663645171875282986767816975915275070979471490225816719826141573009975666583981693320948143956311184247629041287498870105334684266579277404754559755816438223762935524485401729936910114311151254081777313175058266200975532574544753571502486182964898880093103175259282186671052819616018827619969913358353382242026237147113002582754279866118086877728941163884307906577493355660179896999873312185915182026208632435974605632638269837989074893429205675014393648733919021228791833570244182231105318274490438894033356053488911810556261773091600270831668540630090907760077544539273833682865591225741774363586391597921893312284286726505002267267546325040520935891236396526390823898291638970769997793293729131201829982969161343785548650012138641956858394704250102510756103189906138681068472307941328479957341113766764371964181525024584133114517817456068869722883148689267850120290375901628049097988421288496257410313185761791251838604190448852919269892770613213845337059643712109479881930012702314876715996224158462476125753927470440738645448022156166090892384078137966499502149978661850894166774406937026534271439094574096083509892351133327450357470261375634355098783911888131812723523547235347653467274593376826905903554512339910740558318468993059850407645934284813602357690140713881659120353345852391224705379102739891882535974327208321720842657968556810532529635515793708465286448160132734237894077050557388470144491617186681376579203933763255898580451378956031098250510323931251519864606681266598694489656607534947607616484667852761021120851763224021591914858592712702460310764233728668835036026990625719087483931883703674607869936645935941654981926761662060073942225320750725968239198205802391848199590322597065495666446917973780995897222270048412034570231061515343186123673643148613763327364255426158102080368043276191923242695964255830070716414813895581869432156758774658484068574161929500583657125091089519441381070041970507701331612825023336143822850010797024556594637534622983980198161424459015594237642328326575991513130860683710069951296488007730974764657676668756841401877053261288067165034113204736102193681705314253821620220698234447146907644378272303502894978873451222002168213474689910684487525811017828736931594295186205716808476286528432429815841416491955155572685419700057559473229095280681547288018937080026515024853087203354398842017397850425552863457190518378301015229215954956811363698989372087658886573213702749485883529005643065940693881814178488585150888588679638749728648541787211862664884017354074916265433927290460202295957054749228563548139238289489760803231498658166784719181458204627424999362665954405969706388565791777125664602716996023623186572574004912040528718056278749810703895405549292183841807400604674356214883465815787710422553892231194881444165401919334620319852732992881853932249524886694250361023765138873093912420086605808504702657770565935845240688613019516692608025427192370335524874592219377487255471767285381015890293255030771629453612025429047267842417706807237533302570100463941972031128915499811135693464898514074128543764027912411664416206452801252226818962849575430693020849299865582293013386741229846099087967836578538219746595680450154421072606105036678275256189835935636974487922303458810659764631003611062958381410360152661331312140775636108635885302995906729234627519088358194129790656245017149960713927705147683282497690875101014325070091465301354242753445794809488107330599830864965095142770291598426137191368386975777292534100469749289424515531377003292272488845033694160411953248470204840801919916636174310383851565076648740933482215922071120106135652077898521911639946270519214019930709271929548737102661579517979347836732442922318472510435677370879346338353234352609343004580737904549825297055640454252450380165637873984110797499477604390391682262737491615639496038800664773028719560248067195137989628959550664408784113823419355481227354248590072978667057409288050269695312734002579600805821674823022559603379541324544518193990770916884875155378331738386522235979861248314656502502687851470231649918205261316852310943711300118604860907056173853930377840236139261130077473321663043720983638820163206595316987046999099159307346310244370438224399900393089187858613961634046368459324743116801577260434167242503714211172002493269929266761676161026504003850670201267661368575894070888039109606362635486038066856808745856078351671417143650403417521463194880754151868162478735782539365973520025513950210429234369469347812156522270406939379537458971136756209974735826868711628187159994423557024321821262546081161030068536987601008654332435357640565775825701130989657848604527186400364960337216545672593454113661758569475675386453356301140278112458910754821729193893870916377695470439177411896399681585703117915698951893144132811759649966071001663932347440223864189661231426883293335577637450075535625664386724050180889119540578950483772094421788031781370645151449887918265651576993848182430117183883827542264598111948059127252477877716565116086407198987353756044000704257220161506277170146264622918293470745347725015561669502462065739031864849418403534798328386076156042699571305192927380477476067277766846382117767016300163574840647079853120255093347097920617414658642330992727332913883664199342200927420459253613773631970735448257818367422080576876061951922987459726119800283355010989326800832624379391168359475848200758702769475110986773389487087874459271965095858113658829434313361552444346533080085604172003916716338304344408602639751781461024871649762847414905255254469559015776733331832571639249120716453738615523424564564972494047177730391180468125827191428094490869269595163362446220276640503063730566780375971223574232621731382568061864873285219932000647699899819679183914286089234836116541493763712151761792473391284752002067225405751575468492769432504975655951753930974257018771248941991360721929396831829241983427373632448735212240037866265275269300890500367227323192423398965257193650223779275142531087104569199066630579472110152377157430676667931102419957234131672166524518273658776663959366566057753195431612278101150118514380463846497186498576184626696443540365221971742653447158772399049769712451020493585607133164210212761585311952303338179042140130152863578008151252680947160821964754173949509582358887584660677250402787025199661733826801366524058899021864436574002371363842839501412062122988223747523916769703843662248919258339250990654246742220078742342808676176773739295856288105063853687034546295391639330176233224535419882697079683946497149046155854515958361274203424376063378163579437328387086652714184966365872357160964483499582544453690079391397538366397683343853273907513564527427405579386644681281271357853895989191617463167774250162356763736607942640729090816375262220851296882352751034504456965048879701060499999537212566296658954297202263649685833908964791072116230204795104681649823214391036807413916265436718312545903408580146943768042084800555609992076340816094581816146518417882298063786708582223636751045059521657903246648563074279613817233577119172046046347807179340445981234753006638740932454458846558020102442163161957214611051912361251694298931685101799385494864653280157428822905464341140695110646850828468647976236498151818054035132054765283691624179524905390936911920205027924926530826050049730507524945059672550544805598147135977824823885852163294229151868207820120604626813565363708993141609047749816824284354623083715168147702477137358952030889391500452796333999458442442099684533226428916688647767688371498203800228356267604327004969219665206423450695237452868769590147745801777343634490022906303518542617663919893479260186181109892671255776800423678756835668357219363366400245963379902993757255661331381530804474461809351715389338992044308149883069208145386925385392871082796468801645756336299427123557625186022682779789182585569587417330652992250978461405290437360060642256815426362653206267444370601169897071722874772420745448007148673006350483744423045914557837985546987033845205921079780784481213556625913808995290228431864161376402187407198322262339289281032414100189689243964616630764913631452824004820257038996588483378174210731993445083696934793661250565707513266957432912114294510138638224375653410320176286699196460143019858091009553263166363348351024239483251668195908676693585017567621432260016233480013551473911244093359345732062596807116732637526291389185746959440951987885968236373790725452967820560922915293558863270709442007762514587537778477099126967092529683318222514986232222400016867904563124248414604742972787860048667409348833169877680519808568633858186822920249739344195816401674262607729701003814571030007984957629451794562809409545811785899408702611596878166006507692249144236685777771938962463333175776484978899431897456020030610967335761077272175021106136365123396563461413016068498822230611013425078138346335274670552935770849423253821849763019007936714158463102146902365514619966933057300764777576202162943925118533629307880768008172611023274353421147642892101612475379392650410018448544568446043104762124311344008477141889652498841795316552844037551661803660923902014709776395651077476909906160626420268803223539064930326417551089333719777182628984961520216279899227182978068191181436561324184779012323752020764804725311876128114106590287618342185567448946957170528470982381792741888713136612408917494959615046468807808540277938841644768876832776736308060069619038889090516573595805392975621427679665543812999969142549524574764218218794557987872426959271452796001187093040242845686076559783308975454879990874337736133708159229008331149537257911990139968168183471227553307387210689118773823186387479845598153585505728924917323034310357605440105214840482979520912709359039737426651758500688158462897642676504078034862190955631641192191861737199106899241451076805204627066489176889554441552460485244108953140238034997073361095544991802455449255494346306045905038307835971410924275663147881748334756621573418159786735157705357605948851765420598105544447470098194411284934626566661755456703303055450211346546985867359727240761236316364217369537287549745747078592193274282054350407578475213386135026958431245517149934325207268024838332911177445156185973303570202107070569213114022437321695608524662944374075859390055959824746372135070540500848105510262258146217873364024251208921377406712401689232010425807153328976088977831346604728940190807421368677028726376868501835520653652610939764815271335351716159776491973305610855688968001049416094570696788858692821963575723834664024210132541568277508887578882680931792411199242331674112078507271019501932979557494555764981472919794114827066788676743667231274592459147039075601247176870710390030048651985479046120878255994555289182148994270598227904138394866396339450498336193699393092096278702947638178202237025920725620122937857517405109796650143594802381657696956734164406294680748858692152190569419024863429720392395901438291765193339803254112307155618235644838019633711138629745327429048839476871521762953054268612459451625901117684504082672526568295504455342683415195588804063930380063534889245285540367535051807105459927476021971750870621406070969556297728228140028989669098561783125243670325292817602098535872797026181391028262340179952714952895488346396033407892871189646217453962341040733084864150450153392325498713438359043716392219990627639839635326870378003029265082671804800774916236973862503303803907163101301435011175505919948208944447028700413174271499515081498318716992155674117615768698556402737201015192895813875305619554148317623967522478942698305407564397845834044852933687558012790638362553217404440116907529959698623723082526611970062390365520730044926520205030357548026283552530881470749467630603562422024325453688835094874978749806300789724599406852825738331422304620998973989992188365965819931938319737672820200703034806915000008436149292617852754431243480454368340692053267660615317601211381422925304173485972761239094743619257349750019751892601909657759972730586279258722510022330557512648425851480305418136452426137442206509459632436714678818108099072909055475085776733339485479756948845117016462511392373580553046584591026226544668225119848635204112257445786289430153008029158411403072526501810525655594789101410595251032530759107770721032229509080313629766591559068922133027167011346896237568041852778518518194706800550685287087312837711894122284122392290381955980347130516250305181505420230054978748729823838404549139285487283408734812246265199340795487548894429580572007654084135593994259052551989989940407276368063918704120228687589286474487287243186210946046333425859479796601241749040781724453507723523205530759263342081357928886523828322125163127471235530166927866983059558657638145449921943074295098194723075104326418169158830944521099891551872471170000729390635946204851237014283811776663725190467907509547751759223192758417864928674744408529649170016502397528016462187423239804222383211727627224645695722848579504637396815048330514650474762490954303246338032660753283360212208407191379074941972286952228236489500241354396022359359458845497289165513593579541184636976997589070651488611799849765331445628059594663351142338532691560035381480371565411208672842968055168842055520114510970680004761920885184456633460345382613536183525355342093692389341508573698319357702937963777784810829616085933333375415913922690100086665830329939264405878372201827161835881320440204872800238306574214563476049678545393170754442781215894730607784299467027507305447502346755613653476788386819906474680340360145774269663288956675846827236929708051962039306520981669504813976573187218313009912143367502510294636394697779511982835077487430858095743634741323581750315602616422502336608093957298320059742959633318249916506977912312178923124396868752658962583044485602321264938678232888442878642749591917811835868308507660832842429072104667143387916551173451463397251164639871690492720784298812440805305416807746896277485675834055622223894732624000386441282994510562484780885341201633187131465950244988982461122359924315143810689471873759185486070402641375730088429818252442884240760132783301079955690439779340578261395132373624334232570299186118300252599017664291373516259739956564746591745280425179811423401360245228402501289155457223665562500285230216527500953364355350728556771601326414117795148138752785157637590538304776383754275743676949319185313017481011282639726791125526968158502457649809039594158925556647218657779212075562333709627415881752879071015848605681033800808599056509713985321338604767325921694626381262976806280025433585647244442835483093200840288041361089129854021020347355411393964806005760872667742081448290899316256538153866726874850110868508352204445091149552418461457471160201789757089795320058530691148299541642512290602493895344531886366685116185148719056927057213587009074851484313418999953010050004397770682263379026471609158197856649435211549832069829975740610141820434569905497983182659400745248347649778522958365529313259035230495309205357511417916328619635429259317866283801895558575019800838344337063852622378942148596160123754737279843809500005597978315329968610039063087095387617423258435479565240068687000760049699523366080625204429015064429132417140553185603554476354456944909525331696952282170647098644519293020354109358482512109941993549854291375093352340798677172291630198643543741018295377743993052708284186811366557635583951322679334342687061486716901179525265394222110634449349751418546326194604108161596101814396607103468380047267909339180859870942635648809905434712178481339373362145403716900485438540872260288147331207624295581004162619911850501569233491063382996649379358108344672351004210090811580737381782714854534267725397744012167970942610933065460943631738378604869396606813982896815999553225774304094074014467689854512776053753760647207790009319576860229228287718384502663106452878139816484304549586250537958101494289376242577298039012636641088094550585834382327929212015719607878831232315960870298246238887216977061130331286972712813008655304668257745082315102842206586194727487627211209697008649945276578891757774236563962030971104357700992284376309581019569071808599599694151932292053583841875927296819441178985999370925014941772296820335367364325477600681577213695365798053148277565263132671239732674412427626972605278958679447064709614660397672122376369776609042297858208187408816243962533131816985238899593724116395652742381076941822557194887951885357291205175008766309159592016643370354038734498653891184250919856562317488623089564030321173942757863061991004019459424439616400185400561597019585029305312761338374030881718131638207694051642343927350877551392286104357377230827681987361374673986285323177051831910804145163822739669650779751462697093702978088453299128876967602795076650862819947236421211851259761081350759219016375870566271022247025378101124737665954332281014674050379535422922858391843611119578887814914272723515648914146310327752084862815762809388431409645182457154755926843083228753913204591212761335362876092420925013394042893524022859509022514424956422708739515811080418153887850467647920347103077890148993400444082142122162623874336877550503730160120159769092822423079536776842984170918348998352336699633051921445500539463477351506576969269257414106977504300857300041672232516958166122995308526954635037938894102647581747616787894787298028042420319231545024113752833058154975754608189541355334220844267700201141799110461126856039282772022761308566747105049280332607121390850011073738138221823319200583600910762278398638156679701893736050577059016623725656012117880310737328973461819808171005819040593937999744772369637516374784832879290200063249810615505983171107137135850434154603626730443603237115830204609359293620012014268101646043851626763750911813877515757224229756108375903738813398165022673591765190631152975701572405760424394763173219569365470974129608080212426771973431151181132124733857671768156379544675965966537593076979507540392062851912622539749129029933050113340536281380204004646377470517179245299628898339156120578163758924965873546269643938499813769472081801427533796220553501192380802951916528286953118979277637265177136412206672909534191289275668132554690422838211063470778193379783435196830894194158457379978513252192984645155750457785671382302716666404873614181436081210681307618579303674236517302116278516171059212145005845733259696473538799939864841902761585912321814478137320488604055177411899148476137872875938261049351093519699971902180901268558860684374255825188583610813455159204941778042978160699789501540658474970148522133954624608413789642613060486051955574655640213619580905788839978148510868891284256368224471447378965424077041837661691918336468717660010095581834967438296598802868716730360397206361417305648672024067208561150171361856389765062227346989100634147057031981755834304937993470119939836843567406188831247807426923542152990445145527897308997500129610666510453429132900996795033309357520609462523125529904054179864155210432611960974623323602346661178507412579301542726682012269804594398453254392406075724321013582485150498281740974805558985859770112837160045901729710884660008542196653546930805698221715028573792059488891835388577969365460649437652533997618299816813874481379543757746065967097018973148844415402948909743869417491270124291683827964501976128694994651409520099160620176188826692183814218054170034333938938941277262781764021849061776052861516437824878111928343468301151095360701554612727184809331723781704127506947097731936297192789862941973618864828356878178535527006022735342311357023218119762493901304621790981176614776945597139415464459823482971658658421637386383861198529031639609255128944182569462662613833942351877778442303197607198940012787663230229542723772516931986871470066484313828572551287277667058949526809657520046041103662185463252243639873217692696221508195706798684442951876455861045698006016219760021124993823872162430253115148357156375645185274505304208280390850489994653646538307907374151979164763780375223541412255715592774077853028550359667473828962366044516285643622411550177897459474616834184435333322434951613790382796126829727132600448832849780924336640476191849225438369221408868065233497627879858916055266164266643455080088010352033076957269597093993151133045769280066477023414407860686519490164143365677790501216737725030176298790225881225030189797153459539785941805941140279702233681531539104774465766794691446670638654907644233496237879105795050665614287399082188583616345373990095546909656157487370152228412449745154930305617163017088165086623032998926759531698846758870703739520284081749941932389872479926154006700478017347886255573664207502158597904307718902521482891763870347201219007455740225728719770887995842068654254408720715965843285601587711050471845019033419563365987773787243547403210353268416172315035662740628057903266345533619253798847363259140846232904355106918554749645088907957626092307108257698765443715751926425247378769820353895038896663145423519831843833189136900876912542161943807875351697833065785807602990083226212659879914774605894217948573282664744974467066470303371050617862051796710621713570030051457204589600452204724323770794458893211412086691200248919212157772057747920648244600391568372053194276438794470196896345306230799454486370599752297595530265175689295354674039831667455494223243175205350991455003450359530061009350536893824951669581314015994484005160133133777256443400694830208048167645649620004517482832724251868760505126882728149928073376568612804987348726528942902929018732574280022396604937126785128688732376109635179873711756669493631990697336753507017224106585686484873285051450036015306149161985352811651484832929096939937776236160150917414990158821382989489583264232629508696941152723951604457646606801138221204979401481341179745996762507020370149510400526777974926053627986325851340873699586602094392060437400157716541300937416233230960493512077906928935856484765909865860285246712717699713758221068815614202369319963362420825526854389176170684014583217839587743135470517945459989460427355772212499711764736488335759747291021828529922650887890267871829433693928771136355263412960457703574557428066764037269004704270237921719735697461165904998744750825573187888887847288825009057718687413250542400097233437866878596355785112401493932093478845502541096448696750141221469667147826907874100990655274966235212989499221868787950279436843809581448134250351583602838430275422227183245575037608411472402362371970813842378830425885540367465175160620626444013252123398887935726468373671926533100982104843223741861484335881184312664978016312573661351203117444959907966495163838906444531800916533899487583662229851419672132598284888339999506568307786942609668610097685388692106107953359081687463131043809571403597021395316556226405251869502984488223981087780999013746036341621661013457394106022895340790866887634071533422334828843638740526530379449876068417509756917355608344823947914515666158945706540847652342933615326772174342446002956863835367709664528238627629810554331697357136368229021483659835425571643330782574867876020075789452327154421360857985788750672874318229026615164764337236652450760610719638795251152210650639317223239163853427096621796122308840789009887019681803185591188786360155483840574541117877018259129542713311766425623600771720596229140295040659215715017581883110591877996932834837666733429486071247619377540150868269720667467488769104173775001504049160858766555714815368160226318563271916191285069811743023320404311261788190313272325025854795290869265880058882274670923825197040974254128492957821047983478658480748241416940819955173533469939448154322677409442096605957178995068513673038882271162575894438894124302912853973140541116384806662818507338130323336307658783205804091694067021489108400504577647865201378540954716746433132094032078256182302599684150623219998311668719377348390950707511892753226981429737540991836256800323786588463405492908941215757606158809163624577901047754795030114339832703962075879575995952041456952445248847821380098605168762268237340034402356050843770207221521923114721468282466753944096689010039015672463085146123894806927519616952905067352553745361108577672648278184874102527565483949520557541807295266030274186800621257763921280152528077964793387409171153356381515866855486901399841937874148064921922651814287620960576303871572027251256782373656772866647845076394030786803649471570929537273642039488946217189434501870929900997696184579010103040309480434628365063313007668594679348312613112880936705429317916973424353792148729769301779019170154923653559286470932177497990605704840134793582320510559792816062171557009229655515500269784591387560543324789109670522907149986451318822925530394089652384471083122768467934238104422280233824473927461934740658337546688764903773052990987138793422768288671363041711330772742624522573181016041219879710435004890158066990013861569020016151960121803094444326972333876722067025526188505394489654418921409702218697250596708361452383029949106243163141980830329228520361196404901532157846395312681499337077861632524384312838562242560677798764145536466414929855584028955206818461549486399145132552876138500522827794121187206491697551698396745866274496335285054414189949716382241482731703881048646850519166570761939159564230206864594330925739622907906439919411407589141297950129844256710334724517877552853691378065006394921367797545317387634790721020606743966748650655274404667982620389547444688171413767874981330360294541950180532643714232557426016614298421455549599937200215594734349817898220247772462019572795348104256647841228443230018803445039930375112168911768419765698718320633224568246572189837470160985090834858518038006082852197387917989411708425421950460635742481535395433050872098506414568717545509788109535148019780950743706510402927789453963982561455581601659785171274538010396921474298415766504298172106230657573931049141139074663685630354928591561613175655559952477090295219762954332188777290931085164635080315867603189286162980910014765709945141497938601055342879061343618719704154819234706271263448256187980317537531468150301080308351890474739465007411551030670462711420959644165526461054423169724582866728941704488413537594490333757072735921156415024527287249504042280359326489792147803580951657491003297259106337864767377635140540896420088462734641710405645866345263368336880467753572009151231468934673449769331253014243304278707314967753301216396742603666963587129974151718225243065528316982337675987347349482866148313698389106297840339560638095783150297013464341592980011775645878667179264596504608948679292566305942422271545968975845154561084465519154105421935835064330088946027049350995030821194637294102011645164690702972776723567632644894812545121414595492362050697611217595526615308574200916149152489428614423628589048639272109294374798867952107392761792338510718590338858856509459516622544729849331972228955111608004068500790897767821997993832988284348588562466250937632429492450549947898302080840116610990144241821812591360839207068441946080084048305310893480623291827562782347413931544936733709837019875942726820118012853383509835591025741336157277367159992797097482019424628402096519121758860842205188117136401847698020750626525610235514154863002494481736703681125404409867627000157199698025754974600402287292755481165082792755099574295383397261013030595908825691760191197640535372868362240953576066401110872933295602495422151985492983500996971020777982120263313640885921378636814999593089819321938605269835214583495541894082690755795970395014580969801397155791060782375433083579333715860717670280795858604325477197825850213238543198790489548200560599778588293524520516596349677124220042692471015298544246267010380758811669002758345769403663510978784463319262572234428490669145454817686197011768991910879285159103681325404060232814939203223059279014290968034088168379024589622454966655448693890736013588446169428218034922356075866717901828266009265288386320606406669496229574494798920045272124794986258517967632852409959103827494426606558909688152426673120177493012932072993504867047209575050349504823620635394851631490754040812515466259248305196589177293870695490528049240901949590475518810924087855088189602015234960125919778561833258791716452645812027052411238666048236763038096396407456068260095140003331138294820501139261035865529993036286285661307074953641826794872751673440094133601656468883425132014256885394688587492391805485806675349211554716928307182857462251726154819593249996940314844151652223901770034276992416827546384787196968004535925960261238588443758159488734424647179332091290837732457021678642570041600249932213759630428141895175808565718989515521159800312915871971002720628598390987238636154818315784861578983600021685387898150362548294758754650780643166122058428886250145744775680606510880605896393883427066025413248167237637794620078993717887352414822096015709671491317214204194378363294292172128570943399618951789593617494167416946316042292080164046395881414806180720875962432518343386492454626968905879633463453686011175046976631077044783398420579939476915318171233127144680860218935284935496491017734965409028891277171141745609266693855661749775099174111749541540525550703176059810613464383251167141157558843519056937909889909120250649710288922778011234585396800947674135076174309097434527050308820649639818034230321050194433908373679031296070664845836746462321562984390359679107631880251299497434178556554465514729698461146595619901691258631804682432387682947962871953177035095242502801047598500474529883050858980810788753239179348420898779647434659391345026417695327030062138816513261797628740908969174906981530710340932433905558106271838135826060239964228085578417879453109893449371697265888033056999627913460293641009483009345671696188019748990729681324879889223059477392615815721811806711592118858963797223427500285775265229564696622930920250534548183799821465070938181038460361104787415497950033407263251224950553295374344977942929505867907170766551658424278499610253219220869460797553591633777312309899519930372220556028446886276517057911665502755686634366168863443873354036665841287334697533849446239680026817323512879558067988329966694750729686720418500725578523629766722559495278211659712616981720090020999370141320258675697236979650458954028750448631685732853815961891325160958641651974141741626580483939989103250240955834467818274328934862886323346028603689090480155938475126915965333766404904807579849039892550155081289329261270305699526279089761780923307828276815695801413905099768518167697462137158316133499267928723309123237499216418063290912323334149665379106898554767178457434754906134274592232189255135918902292674159624916513914725818559513819135894096779745206210137097305067819872869238213922779805109423443024426180814143867793944889663138360691018806541859739406387139832865362315942533303614821684192600701300179275758713186380940284653464964109555807566487238978622302830970810701871395125024249127582827855876541564278117456182234807689665644597701318357098747988609385496225785429984380415613915437872098088655520135376317133847864239042367749135697988315910947393925694954928828375189456881612128811105463910136595901378238809036128469760919428406330113640896450902817632199706176266317459464182862046333002627204320678935533155560619113044925272509855206806327965732845405746596762944393857702096674352180729089838174168487817993443881677971070120269973906923940835992391805549983593299195961772829419920708109788691149998316842876643343077695641446281414748892322506423310113850566641064644745098248492922388953616600933321209835125739897012658003540646631741272316331946149059178534934837067166385573622624368739303020913126059583960576877531674563825965077058875797045229061684158654786445146722638462338646712903900787729284539020485600773163849900630442809494983789994349568333829926810814241369146973715283800724498337930992802385046537946104768670856565686261333930407260883369655873621780033095102413500220016294877261341475633515973575598483151811089857002688454825519835040692651458801484927577330692506592958078410838967158237748633223366218795297019332248896807104023982976965290232907037209404552953354524071897693445506260621692285705412622649362884079246290317404911278266588308844004429229081566615389065253995864344169348102540212493571802796130888130657145569724655314867739257091003321531445611754666500109610528449616467320401184164575892937527174152949349038798958668315317813672181988421267308292524407167818458933020918159269779980810061043167548904480645092978497465116457890592078557081363419024723976511354175152753507336332012525620006189799378561230579591191201760008467520926279511647718048477263096350085234932178848024238277292544962114868075883669776454354923833673834355741219518165138817988193233980513710049666551479690319619085305025537615214223266806600205613133098405277224599776776372113159541401280205017270929166150311266402680611182350270233731024365413397221323917185368990617983510000012340937009505874721624938519483370298775558830647816310125715551174152233219074946801882495950840886756617763740669840404498459916930684801261392579769972088423497050120519685118832691584570674186695950104630146505133377420433171178053963132133374857270445140670849066763435546489686240908340140288234003628314473563605384292863002591467312172676971617487918467882513927425801474737922713654508103187620094621717064205519141663490042078183040777282478587546066067739923243752074562384612017178979020433015908209589250207333306259965927881721077783617070512827593042521714877420582509131380120879946758108272564818597251201618811503277627769664279132556222401653604049939236702177699147114932098191264691171449262446449055951910025301512939709009192999665719887718584295000812123159226116878486287577466423947055887574504669538664397866064255063131339886925131792616410268889362457507683108631662516287994201430990820221463420505255527096705074522384746636844882219807533146303535650823321992328396912927205644191167429208727745285783437548341829248901751128188039115387298891751655055307557370005473636266912429707673618942192530919940274761915038326627501515049090391086612090629583010439258623814653145371951730263849406440151957244130243715289424938498922519653578641094151727462520981549386376976066465712672509493067798798363432843828455346418916934987700417576114823326972462598045490513473024620809548397640610302117448478273556000640123131060311651241324175931246737410393644415285743358534848629231465596157933737237601591897375130664160385335177594954956439588633547428959577643040469893722646453606870868768827121512065954840079582925020524997045117034375280885395055820795688927179936206529217682590899167445800393109516881953045772605368771275755930509720734124369808852355774456563321071167337554069219128378608667329858681965043356543065239905649171263089758944424939827919307848669530065072217508660674109873547930626837929664720482823210421432277974706791074210766829184224030305511755316500233472107507831899651462812148641016908899077282175716103280965096475911615736652836802133330839657653272294079247639518187851330671969468235474898040785419991595643714844777249712457805030552573195471687518899775779622130316703227110664982276341659182011534199234814777668075320972776547211026266231721125366565653145246010998393988890861557550591168813304844588358159656051458402156364585266826589250308025995322369712952038748046430134648188200674327258586737283245387501370753489314769801883172128799139258753882965387088582661932683216835987092798147974973997689698057266873235838676141629449463335337805384460858490102813227494567918433479771993165082507405159383525559618896618813373353301052404005112782435389835132915587284715480281218272046441832738561754963435139630359258866814930210370817636017950012752720744043715575137752148996869042479346460486693966628120830169840487133707567918300697331491336686655568308876613637802477624207015623288778790552708383456069177467521496931679482085427398297037318694363939043605623532966866868664271557803447271912777944083686443011277162624821811232693071060368727990245090989146144200035162638388597327733589830598251152311616775466638709233280561524084852666512015995795821326325887823820996656312938214914703341044511263389886587844303285694449587304862706994221857869457164108467910499068681143787286433026232431911138913832406052235041028061764605429141574758630887579270650579419110977204902448396183259994012915678939081601176233270307635025177706831175327212222451890787096325708067870873080832839605022645165916790158411381246892072964313650776371301516649029449027993582537167167744842332060464091285659241248665812670431418904482196281847748058034363750119812084606308075090130213266337029634977960836145100796417739019296961566607365801942185192676393100462013768831341090934619218710338031139859486991519491175929617698735042918093952804500780555629440906384110616983970070492509831489460964340513298696273881674452605196831769411050726576401462517150708534400019238079905705559167582314814284367703446516920312453005769840605629648399173055956236529319877569184807035100344799150982995422715451224225419735922216385266480896882071617396267745555340674713960522981404459568012764677999163763281246220010976798247088910674621621644798236161228806176096909250562180439900037431426921422038849969420662034804003723425274647257613010121390204902515984954997665982980488115332988333595716695037803367632638503817011053992209855648207029847668071058221497416818395537752340155763423743938788243367676384872493245621894029834912866432306667354006804792650847513141748642187120138774211686233549714157273639240048161049695320052164868360236301670497436190433876325965485008227178776376203267192954809408112149307448834072955672125658864633228319285913447253752196539675090610656543607185521728559779895403197069301833474183728935294665499266676668873336020394053822598422296604611361193683229183850152834141718531704211954721507043819822105588010950278224865556160338457865579479811301390301369473146312610317375090184679945865129101068759799002135915630770884212858342228154560424040921665807875102140943355464866653985408045591273551829404800759965630236020175097070147738813686277003616720382380837242894806264604382847997723493387330799814595495970115186591044511316086406586518627366110928926881065369005101131695527596596442495412381961803476277073031251966102316593521050287519187464058390375108155345296569978851882806984413162539713876177182684523533348924058466506333261269922083719192615516697600431256188703612484294701176388864806358230888972518064180816905686594983671563536742744155826027304354159680330785637828724743547382837611199773390770952012381042962012809425326356870350470227970726595531529725217275714232913040365973739490778981602442004817389367398965817057774844837093442554622689452676676318910066096821620401204927990277719856378637882949961591315564117392020499426691848195474626308265632342677957445697709600103433267626133232776484766447599459224832573746739155868632122689446663485836707144954137842424035874909231487317655598602307126177517396705596389867810289177326580180992749513748477226334427009717989649893949383553608764893249870920761191747994287357558441366025204287628797874057015462956597211877521351707358063606116555118842774615555523832614123481027617609252279874897604597911655232730937552485786586620076153399867038250369972074904990980710268051141569199271502617556219383042180132235801734225420524385441309677234116150774594318342906539280269413588100973711652682979366768268857218098333998327551892872961030336156623223671406140850048637536981145567510195308852738553079224297131856651809470207303428855994832757908220692308171343223760871832978757541468173716051494755326733290613994272123703077279271497299406280965126003207548848928866706250131082664621658202748118133779133306825819788159416108956207434043840111647105753212712537316240544891290505108822329340629358713777604042713453265828602757025078363644140724547214493629559367978283786486812752033382143279127309762673700855374429463774634330753652310481256426389412362048768130665376970613508671444485502079585468748787618979578091655439066883836652147502000359841839755046369204803342137228437685090076143908223556602179255587294938361045693784697058430775894494450397685138573926956556301136740679484628322523567241242120698782281038399769611401420316069881914761867246475642418136856315211710130887916260056514686307208595571707072337117965525511087571064005465178018068064456897954051813542748620648185223149286644222191935115508960402507090861971289739760900680496257542701641081322483245275320559354130278097101892007251079841776270861783758923259640122691012105028423473042779605922946246070309882089090649151509684813577227865661953824642099103102624865887495960146360726999351309607706232792895124064023441563735669246505358793426387128981471399884605858508516425316227629870702709220779976978314231310330178729367263915860144230376738025463600132421300878806646483478365478108757297595449785509576431557369432159393255434651342230655688662161870436511800767504885870485160768517317764805925937038633895465174116486066660840119003926701443539441543188622312991847108350458090226391754777936797120703016562052085261220195054215987552721377607911522557595324905173489845986679544428233240016166124830312976028585935170293968199267334877368189702973227921169036251890019914822605648769607255202021195138849825890820466323146858669071150353302710290689475786374374517244339779793870860767892195871746571282818604007869200031227606744020495527122805975334966737331225092686889608685206679971940119483536264731890747375486151794853890917831108499516835217715922816136431482785813194784619117010015004010795137421350897994832544164992426891112525752181459295675927565753347754777038381311522981352664261534987345577975767899048444489131433830425204541322283847635511403278155278349100115390638107577351112235825346519159698867147619088540933622319675785533966312998502073974235993951743477843483930587766504390881134211651950231483302650243336284790521589870973935662634221022127276095253155553271421268511779345272761494360729188715255127412948912324969110437666097808826727104255543224113262540377963683877334294187045829379976088118741245954391816754047913900341014168477169477911505678773724706927971701824505309923084965229253747971959934430797816332379324940975813307561577046445538179168280689536454244844486911118941526080180583643572432035793242379470080216681839921689722461117507821456957811372122236409517060152780252410071640343753418870649301501531687057522943577051555656942678597084497521038729396465107071365580330016507434789964414138781665786810408590835264381028232964386960514500060504111216905316083166857744714460432652572462258912837191370385797547264133786327298759277312242641452575531054862325614175123785509911464708452540174989617577110310618840572876910453662374095335572413426561637219764001864055859214617359531460577787727188621916537906855123794621920774786749928153841924819751287580645689919633886610314864493638990181368643486937136870248541135233894297106190300427865744516150703455084889398868333269461941780839006487889506968738130656982258412465302931367688378818013413635155915957948604831391482132594218150772847419196061986250766655330706307287976925720860352579945441803884948630510056987324593384059821614071447064327670061471416165674015358995559381341173821543732295629829796563333951547474440839240019558534174493637433964513138267558596263291655322438112293837008757359190992180848092721519980389744811551153942844138406338195892035701047629905710999117977776686052502455336668295922535782538877074240609263091351923364560950171031339817780553380854326216946377668711722114988778998529006780010247467676511787146147535657343622452473755155846304242106427932505370456640698475723077633954001934482536450310076956076122941242580236486997660054445923920940783247693920614316917783337999594044429204353686337443686883245781979978678153214109705287531942176365503317651743294014172777566598288757553980659896217837417232010008420484502217881619156439063976341271308596027162199120378227451831379065592670613118370899945583735189068118104404390144969798057916175724679681805957944899715111004526104259820481893796535798058628391333114998646752666905736173452794488575059527544620671273786408934526085813888787337106875894830844945832571896018786877788354052871050170603443565722386822853862131474241221130643552993909008360391556716555861806522787290035058558529685533790037753810679386715101189530027072832949462800325876748562381843713705486262835399433055416681330604296871739068939188370500266602133160841658061335585309043672624931577154649412333075435916761253184995646936978636277718333436959216482523205939419981509967337221437373311581771847237629387510185642803518446773447875828544548967705555084884469689151697932033623376088150756943318048661324277280491004213563188239628769981427658019795475936368936965833909278314008805623110150162277447384828755248653417051045305996062665240564208221017546412813382119035486967581278052836563792623715554181479415194030043791350091525276320261130215832762778324830001086667135938025065402724469826173263119908810920398219425934406655514494117637164138357663046506333323641708296099497276656528518004870938365549911455575262790471297425750710530372962441504351442488600579804304601088064293910352384748806073362241893051841440581095328385541208144850855988199391905642022611066515292537899716006296772199761334400527438451480381942659469738923787285376561485168508943629978050974336265306306634687273486791603496903242519889339585128330958543278418056894694321082115237931252742224181212115101286935406772449702150462410957998809533854736322957516179442983958702804583644222579029395016990819170834970812699870481823418423885984862224421174730598620261372700687708460288632956946459830702509527593700089976315096348943231103335300218302256798030662666498969424081136429578339681516534421772547598337404602954472680575498174181347084178225929775782855786578350504213624110889258156282362594840727247651523782476567113555430541042050118433657083665733411811795115562707814210204630582760885974369882661714867749561933530307499680087479219856785037247208384356318889281643872657484264024654058021053317761257025244843369487444548397372504658677371675514919908870105645843602340871382745662868338886213494703367765231634813964149434902121325432920759878567853976187760655825866513246877222545895349738569228999448347031705558957612814910184503302232642887885542963374519455917688063720982759784147295128759391610792947178199414496515535599994320261191310592951983908911714609644531454388869029516226192840069624312157131621721233394498788413562992070873851284772614646013185681487064425743495805856445154186873001565577003447253389924604249988378184153620708963562067389268769274637340976530044510446706141745034981481718831284322433226408450474809011617746049474362723766438551176178363204615461605289387368852481543091271930628033268921368758531556227549986851761246444016631429360603260334193855662265523495856805460486506456824910410311751169455943890642916865540382897898628463294653155413104265383867876901721693581157963993566780150302704139600949193908435028302640447521366294940096418521656026238963041247423109682051652794354352961643355822139004744886937573358681565857325085813724532250736030078868732128175564293862970375033683180262998534230386520130712895119097292219644616311166954004642187948155178260670640000450698564220183391539213962585421169306655761989424354426810884546565946792470373456964906032629391389805355564022097910816135077528141432770418215819396863782480945404590568253296863315066225117720161925122379467679382277451189640348350660173338851677664247923845395892854351759066905073757967316868526433358866229209049068936041425284613242591848954680972944480860319405760386198658957151710955716475803928727077065578224404231941118586903645495299522142902477702641147086920694750438203998529025731378258220335830532886244553701717192505851428231983359764811450438803736599187470471700059654768518212433119715362754147052491010643410903591468904225263111883167118603943612627390814825602061759295494029653035282786479829802141435874623599488938079572722509842319150869556903065302104580242281961495229829778920534761678193096944534447853323981155303741011993106996437773184388842688365631537473049432341967589509766064427888945142128981535702111905549524792311595458063854956090240852624930364869741452019278391832098395331968050478236194210077122583380103927434250234901170358914176812302589790497440385900408075371743456801198413172385034686065696314107230120587866523812935582647026774881928483403908570229224773139106021483060596545035840746850864015105024191487594317184440967057426981663630494514885066511167856668602429666734102088070478358390688472856483124511169096644646431575920883612284006553096311787659463602387920330421262029661489580899311202956019347726477335019632355234860797246240204255373701908305221396509478384346068711841092503653836813293512637344121381639910545079319825141913725675857362430228473611955720548847091146600890597960391499481768592847828788090906880170372620909305927044844785973540743819120623371558978694833618249757546472108238263241294767917962537075524414925503691448700752128934019762307199165477524166638954411466447635936018951765715431278087927394399249916860164939349219432853499007069490634687044502256968807903975121388643479774408414091837419876181374028402009831071889161839690296272353577761458193858727718628426857060423033067839418303510581733657574012538831121582801125556980705300220458863879042696710111880468271782757401011169655541112633493470161633738523944638604886199834469025292632103860943792411021604555033102496886694971891368513706768052958019494081757326734312339703706230432343351181100135622455759769291314637064572422072324268784504074600946326249274547107029570614274519617778876881029694751806281309790355973199274303521425852809649443343210429072324908031000917192477490990100756122675762253339299876205551490113264751996952092682666748960398494005816218712298152204846016090780670268073840924375246613440643605834686561609273470906805621463898383062683061433567266714908457991159150674164254048800138389256409508181398874919636750769414207482780626377174387917041368057480546125587757143224059503982107358802048993869446326541882540159043534467942631364721446338027939972527778013689375718733005646568963134975152690045983306048628683541163961033425643160330565266951601648872185155482562513584146700343999052338548044685226054418561257424509398339643567101964282621477165204095174353227856390366252010655183100135204232414460506211538444426997514232678352095961023903828689033798540687579379244250361845359674542112926453423061652081370178673870443776101105316554872686792200524684313967421151280434222469548813729155212358183029960030625951905178306488595255821382130398990714609327646292619778384767509126544454160848576849804419164198333227599131719359410086148568440572248791160596712649946160682111989082509776901723991870770906758023340622635791085526200743902402936248978085468033908037973382842052397554680113672484373860570519184933803342188100720287755898253346915333333256458838762477669741078248303543481361835343635319808048990335468979050888627626555160357463409757104342878016539877680847912154825810279378218701555361848909043879537946307326931018394524634172972598107100654301955407914505540274511825880373434079052669015898208974983554144877677323767850434580216979856245086063355260796525568854465874106693145197869442151682605980130317958330104887215053540607528015749580033569359842300362883866223252163180271413532651183284044344600776113208953520444110417878153478983879656481934910279534151026277328391125677052396604836475632840489256293117320173175683741333454857237817152592628381484281764895936910418990246602756639428471747834957299166205982070252585760624467885443604778719037927463558259627484835941416238002912090566010901652487107459454342587804308560621574605513568456736437647491469488356943274856773498300343172396050865070475145899811822242155786507873915139019400509306482938780036720025374785638153065781697190184503974006312509725683083444215011992058446204876638248318129646670293769779500683783056098505088394902339385005579980678937074221054803787089965374877063304849907898193450361847366452703714962703730899086627778088019201799207337276742239654526972768506513894247972603200032071843132296219835778943686825401206952668834687743131675436602014881229954625227448537461033006660053555628099576823376297189826077612063156267924141915171007721951371578488560560450858840131172200523721406630034165656114387153748572760377956587960525983999804073713595135243837675267409303691727338766513262731801139288700196197047437276843638473051905168165544947792305976538053434615518754913196426593826122704352198401532372390059495043740703626628651437988100221433744576547808985106374632866158992163104152052943974176288706195706984287355290408449819532485244348643643930161913478289431994694491231396456866271899915439190517952312209428827256941810883427353751528143072853293126381743780159149002244364799260355517165749068592407954233583289052577466343068980312548382222866186565013581638557465360473647994076176203738331454280795821924666282467299322043124673226172998411927947156757918337836264505356022894075236315317558959050572457541708068018762158261508706217301330699577873031920720982809749726935251650319416123344118970563839973021684047743682080737116964376435111982415124130134522436147951207876438558900213903542866312181793915201438509376388578060095965734115322333201846596889845404411929775214989163241273792379223098030978271084057684762148096837015899606808301941052142403064968681372081486979687906228792050893350577083844031787000735447808448395385542162068844026412699899900930882634968127717991732634875987704750055081811980582619667395716982873953676902337732921936007885801179302955823660074861775106041641872761174612057283715975757702533875321626350675138563084444079163858608578169856640314835990554598961594327207899776806428050240980911691463960919153251309883011478411960265182296291971385680262811200265784110305036364382261892724567088550844240911233972771051552724753483418650961989684939502012518682368239300892171824925141940067891642292153156028283545534271556758185130533356574160462055529593225801005438313628805590289003039865238285484643993650054147678514280883823791604804439532456915584300053055038540402398971407523892637326695886516261534770930876931916572577261054594029199676741189524188394165308022386818043782428310138320089321681415395211074128468419141573972156812926327910861231285261496658232125649695497008471423914107610399412224865461851848180806427931335247613121590858812047198922722276509659407441275446500003911354489664272001849559075658033329686693720436113130017061238501060949386650347007720934940316910759255066341777029470748747117247724022609593421386150207540560594857903051832690975181339711398004648825893213820302501290250420405136771255102114293563608773356701028006930655173054042572902975239043759287442197260389206198637817193042580721973946639022937189894750092928160203134018313281512560133704933847416158778961318384383104988938475370335443320969802665705144095694792844368942663920957980973406082571239802769704237687202648118461219066583094932743161515661489338322587413230804742145653353667215806990768604527618571448898124150108715479811029504917024928883789580291533071900782540912610483561776064941572954518276389727340265451389912177029439923241948447622261547500957216632805390689506915210885040529889576879196024005626268669897253744173086876226196239324933385549912519336216919920152525187376875900650524156007419538178413568351068987349085797751430702306707065119141362433865905416749148657526586681238930214522349479770554906487321208845237500852164698475606710134259501636821318250241108737656676624853221097899910184486128203160599640187199401291177054208587144151701717389015521111458870721140534228451301235707649772226480860183881998486387713528433317491232172108794985566823986117171293454124929369418463642066083663106009609909006485365108827584609658037679127144234254135919301185883314579203983497774971360556346973513355301422183252297868119529793730150064823056864480453314085312226431764382271354167022127903785064179000638527936299992421347812230647675346442017705652369588653015017820036650800001145233886544879615891043031423562232505270011146574764162586280340118657143623287780488642800497939696109726257525978342672569581044396696670122562974827036791253453088291895543531058831533077946968486701219155320267082126477231569752735081145715886941223414991355954544658146822471100830313917346716208485247337398929345680015024103921640639376148510215662008872281053648301340921368500059606319723867131813258893011108275384265101756408757803642065419417331067191623061766928960501967491558844520123318409285367644288465460476296655579804285258044383987525955817629588777474604970236933842154464709197536996900546622431440218250209673561613118362371176667038690308043757331109507744144819375614814202379189294387851727881895806842513058964140254869069702873559465643492269022484662671612309403718979181918384582739718135006443680602349821098032121636799774162491007369926176240820547204403027417742189130255167488884483481973504374062228182595975209586101293700738154643803202297421644270657362409111991734419411594353434675219347628053536037727047121299980082385381893107094950693298228534683958350153193836036718313539424014813907133011503178637232888827901757756257085759605723435029507073423709246449106071587073570035814082980763380607989786750506277841570563868477805101678457038851291363918391142391700281933170335976812532670817027018989020165653334521766246573715955073510120508538986477998539239289838903311324703842393319503290067033258911374593464884836336356696726243071290636478078018167842964310881699564653760108904751811263044774534360953748116841708097398190407887788704309723335107204202700918091530985628861380475882124589926494621856737893174839862770621585946593400989072101380012042700744770859851196227067687494864791500372276894920422384979318622028501949030874574098597048154516954788824291211174421300942686012048371465447728464539142615461269478085822967416784698847683724961739589577172107219869197271561476452149478628292090286719829056203260006400091793775030884292251253273701697683278026229933829453767709825265727081562247907510063077112494587605271509191842365146998101061310429483102827219582140883241803311475514817004170980705971788149522455718757144199080008668508669384360189160180836062784465751045916611665918202034005490783190538393014204365667983150209259498728471167710659925632459098713809047187983645342339941280048798242430179968334010525230980132901271689011719857728068027803443991593537768236786059529265379960854411433346304240889309634816411040372409214080394500368843213414426293007806777022379947568669904439849860920049905516538628945935016908053890786799203022704394539824758202574314130623853604184488100597239059596910366787824617190864337671370537927681711857060044131202902146600821807243352234836062497828378795424050345605188153229356324349571565670530921880397915158556242226903949662435292592098669174045288867566039371966024915709459164722561567142514265153311895042086712519926412637244146533182495362596590783938160897635682092146533550712994075184333430187871865240913432164089930735080682669930197501518223512560024402319517768694914110261996825650593897969819284011692882494800632404699999892575157983091120317171265560920285581693228467862669822502321583048395671696840266821775586147592920823008927341017001978960957466709104514442768006796461469179190454586764841629797533543773352191549923760770198703567963859552561085115171108814255339048342692231946963117831525339740431642346215845943126795625435367705576494519371464790437487104038619814172376685549829610271664751231121805161985583399714731527042627882095466101257668260905332339739850924102606797038658499209018449075682403832459972215251940162714223540859749726989613297451905688730055398505646671725524117071631727660333205094064204352717917419244258068690786596607308491657230485824939403953382407111108127429611375624182597803089181540300906819329365756308933472155393608577230756997036020222810646626520705965865908679530078547743719794644239907003095389347100684988595162337567874825227036177382271500655670934941219351612627239644012694493521681580278959165984053542410186025661572052400233579623026655025175648376516030918588400923685113978339992520633953137839234782521216792026312014118199951955624552535766131580521209635657178883789847542781547249311641004079287134884391182875751391765837265404039103145158299953311121364367645206466948963103697521581088059857982222601726339808148520644147823318546666781918284892293022955969945898806960112850703588903144766390119592089823619915737336258842772121032031751140656046162617926398527245813416412116130952243244297486127249475214461078006987380244258464446921781746909424299026848604759946488937106857632631904037958489249520876694474439763253941395304538352133663647659563123874897442120010561381225723243545740870963702833521511625511692619008671604260186326263006741850670841191465851472568364361101864182601992918525689791021245522865004432130001521499217210954557576203976466179000880549193541126619820355325406606663410896066357879084899915962821552211337814633501551671052815711821030437513345755929703223137909391820379437130244465583790474243696536781319062077384816816708156247370940541122836970672693180594165608762391430203066145758040227218709054756001037217128997181923854098975550482094011378728289306237371850347317408526106657677744002679129912153021182677925282219365007574754800485157404437391195156797855668332700934778582492088057029249324873374858799882084389263217121710690338647344843388813207690719123115290939781699125540961886201727542071602896088665607434544420282165896267184946732563338695227033566413915310021258003085449171367693645896773420422001020712621579774755881244928859601838396073131243856608791398067017008517069480020288330234902594876424808463878363729327323554639075211336120843289828018588825245579878592028563437028302087710038847716587333787296844061463181166442519995624412596036503522357600956379650167706391942711234814965152562249964071742741378655829086096718295998836585486340488414000583910875924629063008732909691787911719961286188755575279961994843052337681913778285806982266011583673174025237118174111950781855453147023313478574693944585529245468340352143990183488681908479700256841051279410054072317261544690488370298841277937466082579860538354884456676507421168891341752372628897265190162208499299454037583086627231353915182140225042882239327982760407297280673380420705937217188066315885802029604542463824188869542555070904610520776384734678769016409145543911058410181439979527461525695406358084088986082000328991610205148464154608070657380930818319865448918368872065112192111417770760873655261540940487831698619675763628299941984235434106142650337274337946549702948833516392444649627914457106225258094688513772611402284870386542360685114983090985546883937303795076788660943315410599203089572576220080288544608042821554143222940352456481337819341392630241603293703941799439546884523259841302140455868391579028963566840312325342232171369957139747893996311491736489020359064093298401065999739096108340790474373919090149733221196392082677550153040524673244944170248028199602634043191540226137359729138185934519067668810872123608971111649027941608696549558482163456967128190403839919194750296497079534920294542232130930862212449861733816803019375897017783635874192077394819301861790344750200573741751914694269490582835296991251170874575238607841889147837031378985227572873596371738245033822304120126710313041365332122444738687133532632701485637008661167772567753055888441319616360786881269737872521319496158066979179969201505255001643979869546388634450254164196787704819842352105513833414289216236660906341738662433552740198087565660220405804291981350682477315779194543255587155712572405617526025456627734236035439206369551627259690282648856797571792866593745031036419538270680927552662890097953012484973464711962327544611772022947341346363393413353851026124110452304399717204174815329950657086939159799781459157290634269884753845530137333147281601985981942455087659650043891380429575323222879773902381733303305761108071481585285633802860248214101840974370514717129548859308289680919777059388116484628469827281375063213464664843037718493513145515744439562339987353075354841684427640744169139306366250876088023183566073066357395119034032117803137631968786731924260610821143692682024912171224660886412264123231867635255307975152072533530314615433593503267062828688903166534713275460871532135455268202632192618446149502472956651971138012151196793541128654921615958869603919632611840928544254646373560991919080731824107379395416841322748129138086208510666014531267549617415465803641608709569606093827411776890052173857040632806658134281453607635848503324991932385613585449759904161696614658259138859247293008196932604831485505692012024072607193320231341318138275148170005856024561548054581230901791638390184594617877050215886787810618138719125854125133438585167910149864281762494687973966220847075421117861558943716922029260922121991526822809046970567046702893948335474136850651388488003304346177805776950967070533856026347105235936424354455695577288143008227579561196595890953522299430919219614479575051176981817528620119881095886432741743019652786933316908280481263168352451492243226745722987048587231428003483425332720681405895622133204565834352275690314103012308928872613784250437263480998064695472217576850298473925245197821752159036880563952111637145835630373343785042394967915957369047068987264354051177545059827389294127662330766085729443840515474780293784198833622687587528587209109950684371307645005140638913086552704141054355634809702194965390671714780506005306186091026302396078043932964356455264442565827281762191032549046157894601493222343342057107359205098612770838181482232814630101843966267710451911717401745384009941237939326478645127959462280940195526677745740098294358980124612809506185550592443988315197606186509105090533386349260889165883302445194595062037594999647594742963309388053288490732212057297710897545976884159744867961381835755771678198432606174550333246028008115347594649485051782751176756692719683918140966039795820453001439049074147527855710755148739747190759813666123184927181153584910784384080575267768433618912885233464544601779634575732861460192177824606289430930210954886217952177385596838303019483574387535015609538948239106324366046788289192162438652393878436395350008870011416498040186352478531152727715814243472347513265988756876375836580821309640905363141134461789424031599627157105014011790874391958625531156868921325758080375410442225065344208804755476878871043220501209148091394461623988577508684186878681915930687793150060363672765322210755139371252994689450023270138788879481133298404383943770686330307614972713568937191565183615263381668996617784569169917202726454303719982152840788435186106032489612488030168895921146952823668706482589225342847113571803842569016005984494533165054249793952738522690657146325362482039560705583530134936606523512540244987077614409900687866529414022619241720775585052328079904623098907082688998406739319656368810209742842177846061626977922122834875749727654163559897598217676566687612159021698445274684008928809006770396749621670628737892818160432616451812124046602449990584087867513057930656384880961256111630458715836906099386308508314657267231143239387422780765121809676210613776795608826053848435512733903902719879104298102042664740304995432304402765041492942342256312480993913145985583711178182164873036150926325324256137754359147911734570174223338645599198471891838525393620233278316026300986931303738872886440251654224454469917246592594693926449531557651874279293523357909589329166739741634752452401949308208968547751475752240971060888819644096213476978388007528195563493663138819224171306958483720900018005349646812134044155952963829144680186200075597258707110839230108215618911744479497181577583311263917128101547506222180334484473922104231696021077243354910440185932985211927677087587523888890405036021723147896534879569835312568095443320329736446619514926987452958742821600724505343334969039841191752244645988552053073076304217465736854208422921579625386434444716705090240538726340856787156348516852815110387817307291966110744153286413796129715404758986001557725890897240194001036789542628191302651561519218982345199536152860209058185998476528956290446590508460200433960848457860499096204712700975469835342265318482835707785949039500090699800945430976189791064317956129439005568745260121313903520485640665150156983736519495693306651550563032678195839494918924812778057118379243879222297961807923879086754235751104400608863695549995749712077761538461957369534360246750468243680150818507109552666472066984616030026559836877148847527566029852863887564238576445372427883649211569183903095024636904471124057446902203065510376887002809714856318547056039996533455077939019892083803247637350797879608313662503846981456654605108060485470891131959734436132837798592748928271984949440582391763266103185692970902637167862524097190515568143544589630994899287147423182435177598731981602083160615464969440389175490722127309407761218725005057778260130738769401538880126142445499937999678911977775165115789160405713684551632498732059797828441086798895302530041557651545337438498935815666216168016028154350260534186824387774889733898092658814382350027971108602702672926873705819048822311950096209690079970304066625963652395760791659327683110895135990994876317363417822039129379970456458826458942035403870447657001663280781864404869352819844107498839357038715046272601075981021983663415762293962081976215038979380312946281363195154266612917843828715362623579793441576686405784226430003140871807250718440688735276568810485556481125045815305744704720044542653278681849674875846358420862189354769279067397394253832978450713693504544377469982634003380707493111861832991074970649754432012736889185191104641492328311938462563281219238672155975777767250604943728079840184781119046247022314914823425399389066147074582343905085357442743508637763661411116406192876642073831461257499495784169861533785894547240184610073243516011528664634582366486776693961975479300821678054792034066657703399891089078539351776966628151609164590951306207324161655135476429574477378381980952938540774478351503000682998945515870010894654609426397294457441908350010075956890834822503121363228552039687196926787968916051800409966717070822614098250085601980718021915570156725200480557239743554024037527146129377932376635959249900067986094387914433796029015523238694582974152099293639356916422982445595618816313987526905898711817784717147872998632945520338117649200771879076981576635642800124544252403735356006540565133622852302811636036203143950971269657950168483863419189785332640598932781270769753510011045783582115148279777729073582261722220335076756387582096083471198437002488877626654508395860681873213620214627845316688644777178109925589100805502816015773676640692238064376272084255517996580539600674482637899427418343416447888057633221427616339599946005783182711515286102158974022137136198851378869649378474480091688016174715835923918388429401111911781914642233203232907422514747086267770001044180892602791180035829887803787381736165389852468950109919784920776098308490950075268108569480589811217036030494970012803339336259141057200729323415136187533712134046680697038321209453876618494813070562877480426396717701156471898595080863323087454912279123770330593982788414842741904265125980760718479042344555340833675148752810478818672119348717414660184970017215124168786869612041316194407073863191609316818299103099653373054122984137527090806982812124779415710013989680103068731934036301459050507172266869922314061358163300377911938367222622594818951081709842128194978727395554585663384689073136390080515068837509317519604608334466733953158224059083622220089943268180025282051993512186607035166508043970358082187207346498814673529136198453791290070128724917059626421570911387349331535865479824644328084456556780213664291043592609128300003817917040148651936897144106332575414546078623794030686694609139222715958356643627728968730982299960278147829886062672873755275025097984484952001050348459816985946025767623408253187489321976194970335406512756895630577823118450229152773900886657656890930121435856682342967978726825682984278820085726204054228938550007918836203227062885878434129893557119497250373581951317511417845886242343016855891125828050260336404102968635441789418153183231880403620300783903858413089405126216228015543070692836195038903978599942816031748282936520183301285585857192850562167017747136749420840128991321579683314542220086134440899195603778075944105661150895995400994563942200343139192138929845239090083626020756272023937721049335903236211943784699790985353130914940927344886037608765710238060212935139968638377155035435588657330950032797983309841058745340815382559484200880383376030110229036670807747530332712088056754904285883585813685289524465010693437466206950765966884645320994866054109082474670637906002283276705923644479081561716653135607871695826773142431634532241348765561711889077006181810862196596658543949467661760095058902649774875213691925536854182672339424201884492169880882258294591122317860322826249029576914410324397219456316784555694915655568745345235615491821517174901611613954737022309886714060895210349715113176621763107671964044525651255520532584287230008919353874329781079826887752267595034499006007992432639520820155715908408762977177804163055704952895750359023407710497337317816721592974896499960302065190220115923620949216060352364832803025248181715376878287908332928876288546782708955098713107722650256947811058504496164887317353027572734553644516808612576411466181703733264227266854999471283802514228555229779720774156754854428756834179974587861670734322418490636077210106861209289375286039761352977672535881218102595252339557369134060956916186373166552960564638721452070218725788158912793230018524606763209502995200759224590727949644675634428042860250977997321054798911932213958708876029639317664046953781956861331288254786815481577573699330048542415251225010381904276844956411137068080406902215737657712922702915036871203835277422574605250625202331856516723855584524494354614375132248710974437526470378490395475929013366020765789469970024780660259600783572140152067465597418220952018582154204875424855694866119672694531365871720435414739543511948394229434936897297207664310512008159908868896920496307485258060793784640131971229179318532739845997756627528798293320548681921001214170088141350438043825107535059172705503555723641710934241848746696057126333120703037582237921115528470944477635411544307561662682948336386988146611021118622615132678862031364401562243589598321009620133816170278387673353762538852238587318647121065144329540331840610364077232040845399895931859896299448800569645368180647242867937576758487120893457546850407593059295412501145758816700475952271567809903107831549316815280280628895869576306363810618513927252418536077576414524987342168467378710804867364406385987993907103970308965015508882846746441779999592509252281905118474315633694850265323433970783320865543525935960488519177296144167879033600962979960344390739014013368964863147355379235441078704049336105848734083161489050110341720859580003294168288961161594998122548491542717213430942050122374799823078163878706856489916290866785200451904475028087201762643975004808164896342257880842028529453441929376782819548941501782996159952213976176612882165085930153401947243210380058286747985076163396809376906689835998454137195009666447609289773996971105776645879593814093396927377772527668083164229925181271985810390190287232049423634781862970096141857864375969448706867218702989974797002859804602155384957080205151799521227908884758766975919636331649397934161540224069307745829591092546752453112738656850014290760718781904064982140182694845175558042146181843919679810274003372463905836777637520840671638327577759117235926420668538975613829703275941660769665843185690593329895357410320931037254863157621157035736826285215529111850957288640620748363512358873985323797621857999774139973044311436880409330079283572991528413351765262731275477420754936132439710596430358249270185953489451159568844704708504521321167130860087727059182187699532220026281848681856383926256543455026120502279672311250199216324789608969891540019522309357100546642879262616444719689633642259933346648805298173901740156394911019525923180966625800296718120216821862558223443710603724998289058673715048890240612454045196286559603402604197555860354948975917051054247524340883816796541317240227279216861349188701940490712242420285261924719266345354460506344783737377176478099127400246232769521307679099373641017145553880315252858944495292360914384629481377036855249208553075620728077008028752208924000789715626593700210132896983943620568120072592951836888829575844639290673775891545759346753133304318866623568534162730376987001483213695217877917885427308799271529563660561335962829254649069404655041497357751397279892982381918449284484619995554516476389316598852330575638408190189640939716586383393140317210248630598800057217682186924800579925199196863862771730516164232952770031039976522136496148726741599452705912692831858755138741320474326506073751151410776885643612886211686610102648534806337972843046834957436367176539663685702393393132801645528445621011780173222486939718705650785380321446734128802160431102704391815458620132769922390050634493053324085356576767739706743036736799073665262901556070329404557288650871353638590840084358273219933455350125081651147106483541570104788438185852783588008046275257622280644266032714025382454335741626072788432699278705444793503763956375217504971081014012363078194749586950429218305583597457260451150089602224947759527301497764263623984121635160878429177250515760825443605112511466623922966365376114667788743059076466731152622298147802160852442779560931768706195050540813180099221599770478627770060944748711174100983828323000923080016236599054730620600531711296938683524904665436414536301433327404361572063657072460744525323289504722210443772481560038361920706069751551816628299620511317951224015664380103112306317054738118143741129044507357268979789783027044481993000386108691788542147875058957268319704336038586950625198700721692319027095354200876042790232947720280152386508547576841224257983644010020303269127587199852897898385612222444168429215731509980635885674366851457064413735971379470300953241745094342716089303423912692838838831943412907659771188443965154812372094248595112480756424598055499598380303430305664898340943780025730048624284329522236814275604761935116478184384736527245355963481651694640995029909364788552354256147362285857830222361078125615776358895358365592144333077356652938936424563868615330816451294738634026830631230398582555965605649270217761859644749231622410233625627100270459905778311840505586097211813590291423069404507019653750151726578252891562352265207140775662579089128967186719438194433508755659005355661763931719423904371062562149067757477860204739882937851121368298595596010795127521493199639910242137762284330918345672677242887217583258250946879169119062840476171023618325311595668132412348852955804815346159778673043495365635706293226294300529867742008582905285960973989364776784446669933937575954864127452817325454424082707715286780988531490139283300434925037894175282047675844492169391454802565540032693916842293151413145855280835179891718888393795084624218649201701343348265788639049129941876756528034420135464493735413925318524487076425709711772744913158745701788827244808147039924702382885865674704671185940524092217051185640889511552343095880287659360035972087946554160359127853226786253420391794923838044954798079494418096459434084446565362893488426448727309690998283249661757060839824099747305797434840670762846750451593311641073865243580507283723766793966522256786772427690110808770159597790859059804580112842890146709707120737525701724594021411689280271807834416364937067247762549982728689012302893789952827272231620259771139311260876589218062448515624278242337770963545903179323219887693211973767489747383259455053189659404163767855374375607169308154116992030469674889613180315002610946222896578201922161732342088192786349049301850992250606306534178329279536553471741340674872863779004560738362132013333884946736051197216368429707136259291350209208964228411197833242156184774805589544201833002777543569764685082339588832112285645789506757940585457333424145033535134711432982004026047988601686330048739578561013641181360881821062259599059799577986784100110077960915019533900379028007948671444761974700613928251212064069882644783522208581856101630053010952730076706501449629800804368511456739483999844817901141144970722804839270771207669496398410873979037645817024458026349037380676269968388749785012706362007015901000643404156974465527442061208968385023714596750879655529575974247400705887275389513056973160664555620737448886292739977080438681498030934131934850142600809077600374098074462516878426589127143719110294605899692327729300248869780820313936722738268199153282099771647668250025466399457191139848980233872532048485740792641375346724378190284417273429349615833405072074965713868317466673364496224200860191047042697793546353526756653991938341958057103915436520404094531843014575541971934048400637245977252912005102646260085824412431873543689786334207581092660000643216950300025494500866662829172739677485533415888604268687014859988370042321055718389252986985642491133668618802959056750052385436283856638342680775655011153507431030717056444202648300540134550923502528084475750320101756955641803210656103345342069737079324530735109755799124601055977354968323894138485601935172263908780883144626042263185414996429166814416182366112585778000095653851199109296159380188504051850157236188751480430432636820839761948496883355448577675262170777288925715501507663710200182139204460414201371293326711040693496516541242418080955413869625442496815269341069840605073000630171391989524522107746050843993107542421121836619547141100738486823187504787563652817288316534186371351601848591525212008908382384230383287049635565216668014605334064038330583196185709147972035231502244212051657687520143335510933472179782739919922963980344589945967468931158375962690909886046411493879402419739347490084814464955839508954923737277670252973686932181547895197995433046864997026177877852675222327145408411917662384568778206720749465580106534229837413706085440808474649572461822094937926691015596323309193516774795805897087428827904092261736161162216860209949670704978411477155817987033384780329674269376442394890935217123523638407871125670318933198931563092078042468907132271679002796496479454248105580292125161296345808883285876884640485536468369523503259893149024563447728119674174623409466227094040584266027980262285634113628304563223660277704460500555040900528865162444707843192630362180136096077328535570931584447366787637961449564387063550988405196213130491781071998444946442296900949647250093755572517136541376122238257939478850825295078080729944559420949173652756225547408934079721364916118157416733101380616545096522296076668000084116641931289380244636908411185198555370553260230007628168105313584134515760158645835451429585939697983958223596833108702798179460058646161744346244723710940742695906680036948383153951653232640675120666527946952055645350800621446828426659444014671042876228334120150305052401045504741030153792451341142444868645079108182140927695522088825491075856101855540949438183648200979479873368226746790940719807583297585534732929445955638287720540214772599751014786028777715821044427753463015800650394414721831658378431604672851342051651960348573165089202103186870644534725823432688168047473102663761163105130709044058829139681607158986729950107849396267535127537161369218003396371742983493450734146455314786496803319894174336060588728052263334855615784313369875451777114990134190988045293760091812034718403263255020117498034473990360231207281388230935575397971002238830132619572303666662445792758932645768887003700523675308156312626655953448590350809079623957163261396172798888550200383739463298289062307240086204082439448280647564648470703513975102876781706283538699855524435960957659284897614614810807026550064307655847029469209042642349649961933207896078421488498484290798059052046913590657299704554720381885554486585583830033678880641155364667130005202707553726651499983402909404789376623481256139567116232514890891869126336472641544388113647055112840404695574617474089778528278632473540860645374202397102592712316186345379090537596463335989145581803888634514772622927443636222568344234868757371688144698367429253644779871978132399133136467788084181192468331339917828137743704178247133404347400064717992143602603640852486627719659574180496368096624626159249260917575872636361825914922192713520673574282257429978175077116650981260751346815031304474919899510742562688897192871080666750758964264696754668967485729464458082131407186831687196316228435818499127551035959615022805201141922930383522602069449063019598845903446868964445941423887304814076496119225344364435710519288723299783080195622180788962977634837532178156981810023193143259670676233908807308258260631486404976679656193936551085441728222632837254020351463996360977155069976847419856295536852378949050965763011150014006340319286857221224268203352741748204079141410296506031598299147225982663034756301220993964284130727104997406549742092021632410127909306464347330339114644367222878107426334503014770776895756814716953665655851347946696861248117214177897855418990565432148093224437040878753729355061301483976262208558457423316736273780539265962251771552079396290282114223869467133201281404870184734650295120489438162731026438600776839348467648925217911942238934015805392667723010372817338221962060803033578909936152732264307351266175360888542348680640455517500926743362648100337053780248324586984777727501011608485726019640101821851630020538136773583785251779146792366197765031680321422509651067878821901986914042647128478483645006159831330699529193960903821736309994640332811812511355111025136910844445151996381751862787443417634045732077177998644172832403733561903134226090341039865752834380371516936486496925993333887368029439304542146560925656943158055963997914079033459279994430186136399596738939757270459478735929308948116274310338031809596259963172880394603465178934954673471498984680947071085701892813382756987454712988302082805206130692109419997929128089301557552045349722424697016284037377883857056202422397190209812072741551142158014439143435455072660620667912667229140231432549571565521312689249807757046138950447219906835999901588463010295819741647051364644401439362977305442370564690375807073586802903896306142262810193461303975549294988967371260130393279300607598743429928594113995216499226566182712599532126473608575996502145711558340474774137258326509819807719360604166006531413668171603587031445914628737177261478140958604634099956464162765486610258203461776416183440593883001645154761399657105644257515190643798585549898765140493502770062906343406592591993207293484972942595461583228704803011373865699222455512904008829970954259353629081697866319862374934997308666910175310018270323745272158436087209079945021309263560318771019523284531743613750224816925359037679109818949745516108493888753131368762233725888740865946752972322938238714772419321285760828661392699875517094943832509913562459264247827141911438385956975642976193188873950989050352918760077434720330890546748426083253851634699027674671787680925512345776914802697705736947882688588947649137264728383523430546400108118869788278901403480995048084642447333310296429588550458117674562486669332975383554704475783666048367296732873318497671408208124106689205520960153406815217563992382368241067665198096448030836942853384386552297624328675851747983326979033302332063101172351359568076012504027661251023303264537262336431938061334128963800150675949446954405018768210702475223934052263842700315330730085931561615766878216177442874461920141815412685172161883051209830459824082127491275360247711357775574105679344913737935416260526220962700176896549863915173080868029828082574746388511019479653425432326537419184964054714608039692929355869963303151452354772695787449596004314937706206235763299587715376908248344550136322449653954886894953772413138551230782740190107869376677573643939552753042626109084693276839803620760157645244074973733910703622486419970144188993026946196476524696482258292285905320816481136919643421817437250046713692240315157837222118729937695191823875091607031080807775228063600102699884647684281625091815550612078224695760463780146912418263729903350822327350999613980186220854807430623343059524101029107966180141254183921246261217620378019820169949614954931553952694868156742580601950685283760724633184901163857819885729510067915044385100270302011013075401162053074505212362657840551783254538087773966375507787167222930780084848636711211033986472670200619018472658102547436218617111176835021317206188692466786231393155230413441271742454834835777426362028986488786937968108515032498842033906730977999884953065360094736409400944882872927149520248215524946424492907238446724768302182849940757206338018958492548153807483516314928834847217231447071087182219709445651219944987812139634036255553478061267789017706914796910252478844187455134059979643908210474962499284279626205681556688103967426575188380935911393683844945340439166468798501518706810893303812834745805745104512642518798115272869286413258318868442432601833250119025336923509788901888565367040278949796473737613388420228918677666193771091576287790007493412388032134135510440141529496094498067880543589716502814856159870037821345141421581718848153983573069697013697802114396445032947638735372052839418169872326917533441033900168581081438647296912537792661389921069209628262065217562259316113797395520064047335279708920430395434443331121936211491899965535054411663357339487973710417452832249712881310738436204424866670212917616895693925304883865701520785757951401970268308564651446788832247108906438505912301380540924701344265524732076035056448170794213903611450939699078401493237797937653466516540665687717954277420316735156356784650919571578986121145990882212301120843691941190794953328649458897470121964742984373504152133185170484162030656305803505712431714049326994218906728868706831460367825817936590524271686275639114192767397441106318722833742578916650327007846459328512895191177652323662708505789639922693649091117977400097234067391701381065884722617777520271597289867799660396175119317543323615365695910412253839584488860057610315343947014942674039166136393509416509686898253964008358117830847556762055906344270311295340593185873724112263584184639872804874402123643162322568738861798517443727528033623578873218396367247687641509655000460666412115640188032239132999372526223080447755532686013743849236519269236496087647209337836074036242767371092367861076519770112973235841479657076672489963609527795835869875685992768262168000316081590444867515389522440943820755382268750794209275168694647507655058948388910115102317115158850792426349825705384342460053977956046449709435999837654860927840756561708131549052212017928822349087318155530061258114101806796810596457655340144022454384335847566464756173917750238995635924413355795332847957253757540652236767058730699903209217114993045870572076414397451360693689596321420688077957371048939987498926026291411846489753989426103713837426208725104118071480685240898223153301769056965643010118473581922352118337428793105074312962126542752197533981799844346667419133078723708460946845727632765613332108823417141901188941408976450511298838623482418280244716508517530828477253245294631560368422346945392135763316705740057982069837724950417451100164988740866058430894037061533205528366375592540046985119098933025704929938820004163359029967515256900376433214539160695629959000332230250993335971419989563275573943456211421929097662973971444651061056529799363261477668494535923530397726885281709208598497939740490915290082981568899696405673297478867009479387743776564852292677547861891476829918956184641408910255344798066321238041807270982835114908559787245693144266605543081944788250423864135540248651821978367712366125060168500752117681096966209435715534723191829046899447239167333205564592485649635679454139162069942816606737568720326733355923018266933833023475174386717144151105268624215544842651724810693346433152054721465233372722218578355718033694935413498715306222944945903036532218644480586426470015775857424895796293955519676807950052748263826899836819085536690383084094730481004067766585157879790145577254986392031906681110291910825358199957065079276838674584432629183104603433639372977204661551319733567900400933159099195350067148481326709084191095110340752517698366979859833649061031074355153450863767203747311448592153648145088235105653002494087045079956997089588082019608803591555500586337331440583121621968847178366310697444729436991235637330439464411662555009561167888017790753899704024720018428411737996354069751075293731272930417239622871055783579357134803403466330728981076139683085075289877485462037351311673931822898462764268790463445437955654618122103355499062391537544551644245167846695911409184398612822735843132026262608431692817538990022663380641430621522159198519767182943906941652548115336143094767625220913365996149951605419969166723817690995458706917258136719464871519778598047091478501035996161741028774061419504793117253412432278582694387312959408566679054246331776010575411362237231098059684255363053588358343529794540614383921926528813088669845730605898127986569373800657830926754379302670342880580960255567753330488284756857492454900180105313601053205102721988758311299670126353159871399597640661098009346892263554280074841227057122616154404503820986836548056980962302914520281289445350591241735169286769190490603686384477303378355805643938207364878848383615337917438149264644515408886726045869367779771056954992105466744209290661021719245987135378916229131047583206556072943300926647102012674062870470455452760362567928486351986490661075007419276113289397448565452210439531691638975048083435068045250473662823364107127976114367300197526052971070531986433367599096480354857068674297960062827822623171789593509821307946345502723552138518797788891577873945432856211423396811178410719128607614085496961885114484372608576515994637020942326414468586199173269759139903884387873489155424724917821370960557899082800780627134782352891203550529822266762008187284605014265928641918921683279737660693060912686039652770050295120317493126716283641993256609431491898311831732298874108726951307328256944205360103555616919726736484639299153177539588911873142003696304452810030518303076268859820056460039478691524433291570523249191758738983672197084501090822380550531160424659945038551104259079110944974274398102781381981174290819032653883737156720515693463490598198425306925105782425930905222059450885476516557547077577555576625069055475256365374588722186929901682621051790389614971509688707019551878375817872760732115181895614525642797429107327820386624380175260757948483362125786519858273735532750092990231441177075123299243167901686784701313093778459747080007448836428702137321936906380866358960049753844370541416359882602402580074637461078056079320574722175110664881279447168712981823870536893400992366757827332233126734289891870145004722747780089809271798701662813663008710678596115394418376833644228999691363771291902762362290241885068505701963090354497476504334091194876398654100176850303081864310933495797247060760644109484961355244988651785654355354752348285154077554226953879479001137700471450639613107347080839215131310006839432385312891488309184194234831045650404809260590877715488846296730763525720637219254762936234295485737226073584355352762520135701508870901273886830791980479428793856700966553955316831813768396773055540989724222612255660271508114349744231841883483401567013583054106574983462276018161494842270571371300546187949124446303558194233911323017696203518466233792644524445226110947891988513375810948088554205114761907596744011263821837441959510609635938070499762136345477680920015199686992650315974122053032871298881073892456968779660775448764272789883625643718487000903050058334890912156739810806864323516094477237702548336401761121960091113684184624154451599320314932971646092408738924540166074412541402097289024192382146883361801033155483151202337295987817093011557148186281477632879377252603052934032815750530890623173519620542751896925000452169991125874917861095869484996926579684500167950368277910053919717827077508856771201334183031644292310373364810594518525333545759959677595286337366505950830104924539534309432087110506692034912479467668101551981350018999947838974081649960059748781917558184104961264579806812183034409124482242627379421278678813584432221132440473957294907945790280289308422909805972393973942095149349310141785352878213038536987790780889168698107760253199322751500982475711890361148423413303841922317217865917590699349274698647373993849172246941172857615756212351363798265546397532599032156266327852112689412201739785415061086246933292184675466319248883749819579337363418764840352883753794311072311037809185496010097645602341904673094904651870705464889190068636638668357232988876868092078495580497264455433855958644881313859945292597725944851158962217759170572996823437786358310186554532924639951122254489524860538488081561504700900964876089040663471620065895388503498918336007918524578988213337095845935790106397193364100677834880220071131263551043587226175888733632216273200347828279334420697301580567264356504267173277908774987056374997615616386175117508493215788154888086104727969415265498811986231203974559800227992758911796716172121700883353796275175670560226388504410996722404234745192621397982975017458980126782744082652921887421468021749767967410467218489120622073214376058351347294454180688678600381944904898020668491929929314227111100030795889932777629511717393890026005089738299071998752892055580541033468694158089772016696201597277052236216106523855825045173636939109732665814288377154419830264545031292141549522839243423963868447979612150226397292575035903877063892693516968244402750055894223688204565755196934156048554021994028060490526983710235951421192392326256302533707438365151369408671065755744920904877135383657245406081343752532935074724869318094658466328206590329312751823289043796221974331860753974404956753101671097529430111171866263035670683239302545222678223937550892919367722406041392742131624140725417412121058506134177743277980645002963709540168507216147407108143227104920843270763549206443204104183298156425213262766557284766817422680580449585838641123342678161918778825435944973281382726407838070635503308331831233336189090410963271906235214738238837675705113070817330114117035815375543752624184348104116893102034917866027491102896959158873564556031816427329576472379292190327504045391264250666074840792908017899256235933830677833898741784010128769439220814273367003042573562777927013104424531036720004805990313184756925796039307227062710088627966822488025600941179346858269001425428739118469348582170765635466084082146749548202067001046502150280110237012844756839155215816250943293502335322066792594531662059095291754244074074890599737012505352805117777662345488861603684035992656883976271080563984290936095740812861396775069661353318948375196336470341321729709182517621017836973228843405793027413667737271989816479982215453874923558183146467511780843939421928788733342478123721722395165283232660188370272257234981185653142227136783308750479415685825511447094267649531422765672731822392195572683633128449446410362461332868819915146373075921508246226141649966222210832898165347258588014284378419786332060630407115649149242588366040831680125590173760408582679614759475402535036500654348896387169471540614267941561538706536399205520820454777450084940092644098275908140151508444488337772032682018573216304433329740126558458839467150441410150736171380195379518592166887249838057153945710902887074317989602880483715880030617627644557949009680088399182955909564911916836089588676680830178856393843792997225041613493315427522840415372254234705179149450424285607874446303263728020013157462838209480959794502336517223946337753497191079578073141950214308464856584075140394519921129967421532747546003274686148867980560014233262719957197226337069549811475370023992878966974572906143687410151488190001010741181279223287692564599847521107096279503475992279147799246390110472786143278891773991544467290459232843067771451698999350382790626285521021992738492044135584005426639129973864194069887033759952414382030427231697588236539215997017533535298981465224228204277583999800074995260201850781747114596435534874876155397078481909568558123162859953906075889369338495322027244211508283601433045191883686613281096033230281793376686908038941425738993364708936614644591643760243320949902689516843993372862335282365305370185827763241212092939738681624791111984787672474251330929079204354451456820175635978974323049570899037932882522302166300718750177305420872934644142701256175246286011254341945233396228133383675584240176720473190214468165491687841043630314164858769664922110130415847390949347877434319967179028553486690415480883625952151498229420683065789619725613699401391199432982488446925117675373790159751064357923689201019728515316227312020274293321560527946097903964746728528815221784627465109044858180784076798549537493879397097335022018349951826981584275274370284365318775089236243316033709888083498801684951148729473478905657078089928164863059582165470589117414615146377690225912800182694619798499850154527523289779325139909711461845050331053505101897636921405135199444744401303519454389676436715403474931641369651092635805684263705406423373892832596022677471571256026257055676051426372996029968630579327547101693292925105335584833287115734288844212294249275160846042027969397039548762343195924121807058706237096486141579762224473752018124558268405174616636656078991655447767536713843963263700455868842595878347384886564811518617600751218320499713463198698902380737942462320632821208427409919374027526452649741229203149606736325201980820739905018598186739915006498870575581922756614337573446146523728045819654664786826610445155909372093981328564265303900723853025710034626713720303063806050106010878947680575910538263471363165993616206515170737501563697100558792986400305740762046392201333400484433129935670555393760854274600017509192659994354644219680401408377951979703001114977072411464853531548750659544759217964415272136962122621524585952410488531983321116514898732161613066893871861595013259882336672467089537522647418458485858849119172126076187426867868321681046626339610832743548726655133850954359637930060996015650258600857870979024067439305667454478190007765929595577132987852942315298733770406504251866861511546225224212686792676561082134234097960132115837704638335196919642481318951990029654897804163009228116593234062481408490268116575037782357864359464527110296563817159292394972624200776286685215106293816664031406390013180935382514436654910556422982959145422821175771691483656599539629211452866435179986807209550002308048205182395361427692844050364325226337389765388380063760359122393321055892464113560128604907177343512315673143787263272051139710378048183694268866789415897903677837238619154847502268264301818403088704115542159360370571115732529118122339631507100644720305019121411065328843001641772835180657067613726777494359856646156870053525701101095229467058613106797304387041015486231894948051721182408251877084286915871486817191784202906773549620379067923128061189517979352419048164873231267076459430014957347930731867678442639704291477425870193835501528094926654920466487900774788782964767565419141654154463763899813724594766236343121887678110645031791564421071160410636768149259569542706319380132927391892852921764945822409951488738340142676837937588892354144506349969676071262473314461016800442106408716789066184686763888973216795330829363011311250128088142435456101765952105876655298646710697122391353365175578691519379813402626286653374563313038841105460888852090868662800378417411481670932706479748277107363061396191651324846677602231712660316482035004745603764235180287819215726314874757254093867073607380748921565591827146560199503987913889883490313381750683898761418219484042679483955871240624527196489036221049385853477591675302971197873179908643004995708108090822452766298142268108108665301451138177943124384699376657565546188590652061420799129075358770494415214723047018067219985668857938084993991528772396268675961017269294256204973888360286999313719354173888440448781507194673272625722271601703515402247079493476179947461243799392157819993650240729474154002510853969668693227125112022951470590890874074696323126763835820929715221465451438391536741853705761844916578016541745329456935344847885030780867368682927229355656489204356549026312270484321726325385953805405912321213038729633512398463691274281384100050050284685770224613613982733923010650468485947932726581891453092643169111633325925280125781800549500426712473814716553952830859830923921393620755130787377382728047891078291950783008983391859380909631706142736032527086914333668075356674254816866125723458905875166395160818034613074026751629645370259287533624356639141029425486848777900403376757152646735710446289161736047912150031739733637076644220979728985112773087537526644388961415279320352890911319274433830335428845269749655648410754967733926170264023175830700307961342917949647746545326252843576791829470758228618604457663664844038289090060982493279033784798970490426866500565391604891302089495800466634427710386641061447254001488674731113634143409608965556525715370935439664175001656222533875919002589778581905823234539305789320732451102088680185753562587194217272930485580442875340988629839566005576606962327171600611596813130101161446143265684042883557489599340230168711855512818302446011156246300544681648543464481685723575407115154015976861428985725217984573008840269614368813497681089238746127392011600277004921821735608803688786300463901384702400092640552185313959594874868024282058361882153346314121530852333669674026388185035770205468681731703623932531500044043470367171204240048991150691673116258090217563552640447900157891215562141503176765181765043316574242945189745244746288142377516176234575166518429578110212909104320863862165962307047405005860389074556027566535013792054043225660907979894883093336226380456871345393846595628457186331818813867691397437402463157437398955536801356036140908513813099406615487586113996670853531055126734984104665884464807015638036101633597207453794680126209867639233448613801390724673841069435032491609994274140926042482340088127841694998988395529075603404388529923013027096045246051437777600550235389294366710043739560012936021684507185006672882934288917057842991210268910719367542585178221990562024806635512809919753237404439336415618246960018780131384678658001346051726168627717030264240735143203147382939249223316301535378401874420666036155890564920350498628379387673426993584616372017417940992957151075003037450588152020188265430048652953691105024101182357857158477644076462303016958291738155994320284836549016870845229155235817464377011932464098908833030861113577125442802510180379843299798471825009937679578461001023748033620471152740106003737707054964819418146284914527615131331481170551254134421582579110564435664549976769785272495885462967949457777021070459053105518236553429806788259759041252851380459066991051506593291090257024591885686675738488684452980703843400906516156191466635870531923053879096232148636356000495910792826783261419332498188566507792729436639773252260207208857671180397666148413341286347825432941165293823664754676195695184010616687142731895526665530258132382745174445628362143196168469206602212926093404182588760154223070496262055080719545671766939883571790953543041330875015992845074220340557837287347515968076171936965441017129582822710841973276114573764246041808625806920177617627633156341466666125640633816099433860405917568585842736915741512758333876256648398570183094871942188617375233955299635392453425986795311316000358075157346044377904638392276582547544612427510726790437333531415095208382197980865831618019792780943017954077302426651498833145890913403384540353242622166712501260015660156265183373342152979152313416272771731706289801315201896099299584158781505119185008378780555690783634453423506612875163537709168278782050482924864827816652076459167100217309865470815007961385948999962114317816334800152326340689804559488124927369445001114831580234224104935913469337911281079957138501782642907760834390028839926192778118409646696621573947127520195744460988975551777487484084505361878698332630335949445082907089730983412458756198918697983993744377825158236212257244132241562518034055543400608234499836487180013765140961944201497569182636837242153279712626711655145953000601297017841933783597618196096584405939097490168994456705417017614511504615629567683094748636441389723853329833709880212504719307734623831794705250630479055180105064427511804623903593932764105400669078034879670889418310680736779035575240603030724715971063737807339660004014412010190595711898189681545845160073694632322215741940655379550741775560504948672831212797064344285293301339491227519844656970283209690604067368970605256623409729619546482239493939221680785459571235827605797409553878137834535852307443224534846245281130282438644802444618151083460926078807998119065998226925638972368457065771593411582898509211547231123519790494478366439164002685233355462786126010770892093768753628468923742077677746457076053000799711332666868723245885515628228974500910863792054040865574796136272083125509444264153822917011167990457241746740655402448179461868088729892488522642003297004223650896882037845248066767514643797159104261244722256197582698057001674678017753922544026191003673493713155831691493832964767292399654319892360773088088918004003511503674229967827331602894537748801561834923358911811857976020618360844554078290818765260000844579211281383090652144813727599463927684016152679770622411017277037786744955552710336158098999882470685487069942326124987207451802470953337069545031081648830723926034608222688037339017553058589535516677732417276025412031305724805350321972227215842018451811297938560773338713405762752623014817368696567642084697998734660958029386400480283713329721617429521225388873881206817135101231923669099299490478480485570136602408073067167445278951378997215114984048047677543722179140017220886043498054716399858987358638901320349713882001668572602132834927280768779347928775207153636177173883695131433749883521263117385415898737399709306758518142900964310016570159036676169782437286063272629202258568079454060858645863791002638821941271239605170039670457839084645978270790316891100367564718217338482669314763529245320160173132629170258050180771027058912218069516184186590371446558005976483592665592030623681621843019538239677752646790688696269058883549371225820631710627124019058514008177634431340110352538690719373237923120482030655551113031815214312718325571715902062299548841383019400876012314568084464590762650550294855825592720746288784542768612822397940637892630351426168371287746755368976176333160476051383070465212419033957861977344191431180166912538858246850825611478190031425982491665869465293231598891624573519407131250316656900385916935715780669213970054433932513277100317566702636073245695734179199173854031395078754812076733700789130629763479924304948705597858092398673672869487515221221750966165605104630027801310449847124696889317698489269128199157244581396906346262882453879160459143905699063729206552332603403733954001644472648933330570790046321174193241664254113907063198696460711775095383884491079090233885105906700142492042486727373103266560499735789354471020805625607870363424613049066148528242897362505249963627805243465711912679843016984493056771605811692796002637793306816828805014772568887373691552260156473457133857414876741493042025320780756208802318622304400761187544177454330443548651188586047925001373035015914562907748809342178539660187068791810178508888770300550199953075581919525398032409080737708429794285690018234169011076866669030969796909183634306946197729688549131477788844535309369493930144757102555064321620295385558020329355539962919097513398656167531553855744720299731229539196181417010306928872303922911127694085097018329505904861497418751321360777013879253143531705877506670601922400487571344797635490637104335756919011406584070346280074781961815861479841182889434845981242043122228372413516514174162444999032289314096952612409596705717063179642177144625280920759092308011113464017377385145497329362164324333887390311411956350519731363259708439909228889338939558048228826580713732787010998017279661457210346579861021755815940709814391274173706709294609864521165114570944353171862847258210031680908883920807171318043868632401321705454245458837231930490271058004648478094182929254115399918697131250419351945155345318187225513760365805222701477307931028605752576412585434249841542509586495279985928305029617414093494298450819116521530023243652994772170179612104522285172607965112652855365269235217561001968785639611909606892057115132175326782897650365743318864320134635713090179792250458242312715949578745003040478615250905462927469432351495656071736549659743003387829532191420451630250426433000806885045118967328018368110034055299037263995693449986360762075579289078257691540654838092702418437041346775707248284760863473010054141508545457517255830795159644256056065323509275549559893482190553687234520358140885444554319854651281811684537458131932528285188454326668191661433904485444555203674873783634348968967849626348069187498038480410433181940994803555295611184314856003344105350828128788582862709048247251840030929494114612804321850376173431181315218915679139281657227551127701965651616186011160091766061017672782069577525293318527537786535363958987084790585001030988361608537621984018084505787796107385441289509515459836333189534724489593715786007860119355058892089321827258558604662590991667084944758589395404641623541108560588548219713621244627763925056150561525262634116862692620654250932617757043376288128893292786631713607301199580332086374850317278349785504261669732973396683234312176303875894713827323484648219848881159214475343388058530523567084509102840122911830068732821315714693721346966506567018957440732958948365265543735457181920916142258832916757532325701588565826623178884823527954545412253315196086855605550573693545133457969268493766137014288963710923151256327959217280814904516543609065438032102891362175957198510300981768038014531647407596998731211879032634510140214994682406164987154513471499500942266486377712166456753919059913352963187731112783446293786790596199971435946680912942285283431663696845702389959983545068623464069949585592015058976662372286756317504084499004535680555244409737601078043146745993412010843016712709710577947680829455650349802680176397762551265295938984693547901414164602439112014980946424525751648863990139541943874100883399947002119105883479396107718067062435824811078873431056993348331087726182631030663329175767162781015117843496429294208087094760494461382779984737360072825983877102459312386396261452393822720472456981451829830685174897247250576308068760930707322073181073438063108106798133155179665036282614427151770065879143436516605706548039967860054265511666975184473201980562638039343720261459171250920090242733174526704933265376381492423552696849149322876815366956163381849480891298704207608803362123023363723666702637114131286189071191394674308797884486035584903031212564757006237332715900713846269325714032722581305218510967921686507411769505999167942497488456697234347865784977760967953571878155561033377459269911515887101852215294607660645885764756239605634509827564599411576089386842232189672918371603622461202875054713045517370457039464536649378927227156714035861429016165704258429908707260454754510253348803038500069376908244459775203594589814083129810842017709492162959246154249726343122989376908514454838053016193256291663076874188997013138824200136290683419050673364098910655999879315861984267605327249482552133010106264103913361471784341379442700708315793339005609307972950674713053223401123286850255718660391974815597884612322653293552306346089602808007936085751288565944110075798288805336732131338789248179107153347028509796872787726845006821582571726094932376811575824212182342774431803824447726617391465407225243171739791923758122041154281214253993120316214265355824807300718033927114974681279551263247532676838849185603506225038600485631603080580361636930138587292138481127523535852428354573073564675856638157807479778457086304697753900069824126097205492045549563676543966074624165780069456653380051987138878839934839204229080027593535796341832183819451619363471460424539755939175928310573528491660539560608184839684053953152886753547912702846288590712717754907228030931608295802673829386822832374411815246033277474817394030884923458268324134280328100670720389242986687240432867850550951928409882753961913168417567943974865917368075322670651314326938826659401034108300139810288688494732664570048676265888576025532387979622391215464872124738811311721874381803817333222051991621991956303558784744226532213435739682337471778311162085181502281899832818851164657977883244490655979407187896820773454392501741753744110023902959886336424416940809352695516983358055325585279821742084003995948136381879445367677874623919440410990474230421350210047082588817777824585023134807340501775554567960595548633196682533314907102219120529495877253858227399211320363220524982295882898606124905324464459607975830997217352167630903509721335296180323172596153337937158500277071470902435791601602370053006627546009598066010579407293226230579601096245061491172844357556913244269508900664882278463827539320110431368183322368655406679280417373697039802636093825543434201242973999621099332380602209231381840981011066690310303592861261510393775307930782176903189792063916078650637585385426438833513291242486270723594252069896429485097530050688306585083244655413014904722329467209576307524224599848617745968436022171132493036282159264237470811062891071366335220932960771653342887641178303216510521153595228831934612141437230530236061928969660737378510478003506753660877476672657027310177837238210716752072868339607110934898810722306474031859014128773478455345050070624789566866416245587520678793862199827834191030072376089986114597587983188819067904430640502287804265380977647414978371940248436901610880984715778055417354860312851252113160894211593144103331240263510970766938604712377352162934055703283515738950657734029864398551762949240819494519694915290371421635456295708994617843089539482299141329446192629480693177321507355509302249352981633165608044751239595925433883312730978188386184105839312505663069123616139844487776612262767194383200624423916592486069376298031369241353378092174950417289494252025361655256219979588508246105977030714043421793455968843490577682510872854029632255760886934829756073860355081653767147208983855902443173170917686465385861685671358337237572175288286466913623597615877726902468383199109372434922840976120775447999289534164298747572558121337055158045885225777045351239558167894367717905284638361344333285052679770993780389428949319088459586258396244388681427384268007727401172584136652147696350544207961886589792229825237622311034158794994097616993650077396338629633655157563083206815182976930655963546143034847169991893330846312729728087046751394670906374368946967489462519402398732688090110044770915959118432589253712363205612428517264035272951413055271910118952801037061653506359232160550987233849344119289365303520004375978947827067089004826735267792121526443650007547620591398947064156418550952988281461216476857727373899809274808862354196139235955581979705692165507015302547156062291966069804576190697970539851718423873161371587843223535236069089681433140953836274616915789996975209982041287532553835497897621210868882743256970489151231295828058829210432318447256839396225453383065307581827366787249183206423438421377804028547747043664397460327158301165678591665167829013435147192710869742247443827796543064617034018839100814860478520078073959951586236988195495329994824145860211767659826917601386729544546415617520209131327640844674736408508660980099483603263063991131823734934168695445694382185428316456580161770683239803053357155595117418076860032396447445617573226169227652975966273245534445961334917947703008260704090286306376777506384403131909312692975953561354857223613877101770036113292425503518724014452582148318639767045949919414691568177700730225654105270987830907091484401767483285701893624188331071391820717342221790462097894213996425444825794823290282148947960394515577731201598008474984292442125842978968283983668113844513951672058095839703985620569625317728563111276694414952808329943095427407319004267940658683926480048283887384898486105815247721027503419318272614345521978524777774728086328266771482493766440905688267071892655717893155939334055996825988326138364856535748491518568472257267080818094006504160584554621458282088884712797073088296845592987598537885385605989405333852066312555338041680151439861486055697670812187882307598068579645548762474948925373595334369510127563339446510104290285417104490118301244023873995806497738482367425927878670762099367285324342678813024533192958104423559964993082074127025084088153775608389004205350399542254075425129181905706408117199004045791301865213422744723725213336114453970829993831546790657846402711444130201926937519156641152416208312992771456051253028521679191523277559257013189424244697858977734387937140470328358840112048956908242159169506022909659738556831442368957734182087186026597553256912333912033245564736461376855517883096766544538094997529429317015158093409512244315773477321139699496351957744399937317826876601638518548035001456814646807331401968685918626514137543648246854823861869488646230050562887304572441298022136659712040076939460488151056920606133873396495520888213295350540042920738286093644733602628281636586652571209158917012475201153123435217577774718319643756652573227218928394800463367816547851538692557067986030953380884622162979604708865941870839480534890647054369586570444563741313506092150382239355829284714141044500501107877732621051117901834388888408296928323685359081842146389672842086119034140348445643326582611647336078860773468409884682197822669911128504446249234191995653396226139484689006778083221396334010692492652235128026934667664179726530055588110119192441190409093193361421645926783716287431894189540627566097631340886386696417903968344967162213723691518778297593229776356786006563227302621203285803525954336600004572949841718114250500305324639986537214304911681798570242328210007097973575577008895371384958070259995072338399403265753800038437548473543150425086362038606748480772577879324223665669843373353239940454689686070343607381005917079350986787183993801757764744543232853219443343276214477661313708829112265342610387780866407122501634594965007843997928645423848047175855984946294229721545615632503281915689309126253963197649101332975047187916016038157617831103679479884083473452695707557381528808956681135379821172175846305064114715849308450501996163807980818777437010769512098633116456344507201116945771953471531757377809375642651224588321370084925430532411882042992753929178288199838980285248144621974983989966700015743978999079808986501424282048329290636745783733962077198918093986775975080140742440366080101113700711601158074882640493100735328213410677681115391295677120643059997694909714150255817585620717004990158572624426491480909215027921318174366632635335738826565156986109149294276339056058319062574834965449411199002182056452359214188885395899965005707261537794695211410524814259660550923287389186308211713991064284207400233501821043872602369910119918030947678442769497148226989645017997423674946410141433377580297048049385278454460401427070050566604558463667769997178823883671985655167701598291474000043809751274478591058726932598121629596378705617166092215962134233875326061292239286394706996844759258616249746517136495311844496129081942739826777241107281725265865567313727122201247829202453419356056121171301026621269349959052411095102166925061277134936191732355520044414766309422717904712746117063035760461980711744529348569373183034299651943168457902543093611605158651339245870492966491174730807021867810686122294899199818047958120758823007730251510446714586563037085880441979065093649652621397287327088999258259700436339605438746802031364198924371708716966096905227716254256495386054174141927310656975467454194908037220399319200967869203540832268621746015053518908925079570427464870201912582683375494412532863830215097725494324044651617927951552972003788380465302294136896095693045254598043929978771588070655421941165808877710555101248801695155366470843673761417751610071616216155189613253815541450314347741503146494226175784744530385323380878893847879624401746451318994431535850589245014306827973678062206785604402614646091571877581519363896685848780303064296876855142606370046275827513542126190080743576124058501665908382285132218177218603866076163155763354143198959198503814218811121390634109910661385326106563935377041832096539886593149158444544068252901394394710506003407355290276613682491732894522960313823266724453866782377550637104562122831770007992831196668770008726210134535761079058243394964394669278058430115995970688403090349562149365748622143264763218264286443321827486823496207867833075875631119250542463280788225667861021003680020504985714650619004882848309890371703136486218186424813731735093100309301038020541073543416533967514213083163993766024827199771165979571588167329394235852088231222112229917492031298723414561379712765625663001225030923571792143901954715614241113927825395525837834629273798191756341530352940854689342843248314622894625016957508956091207520257172809309488005884151106113731729882152695500594982311022392134121947184964802572913138035441025337677503968328902612580593925063410168866063784442510905934949892578718075911534136391034781688722166100718293710061245531016519460457619225265918736012763653169873422294692158576666691444086964944591431075079602606655385425861067965513298526799314423460793406525723104909049854008995465426572967340765161460149794200242364104472661501262046672047173860289450070282936896733620472160874277828039251257406881104964477984887237219964681648266935399445375215940202312621485433888887304742424390891615667331994875987269339414538521531034597084343701432933236004483665318075891624079601602714909651126516620390996025462403215844673298712479022955016849007079230540609762259003253335707054791621923153778448550703233443428666692659751625722809567366597567452319730367880664831630859031246539001875013933962734243144459494671677749765205407763661489875591270373165091312452740868803975052150534414905146093055023350787795675857948243983543231792568921150697114191859013460647444278595774643915491652742079768396147572137159093477990011825217200840227577513829615867024029024355452661562845436875353721770076158246671313910546062914447457686045914438460247273141783629542206361464793878228678377263663102287341338616856281852381210675948007756490223370621403649272042469690947491905588957395786790941566733656755860705098205014495127501789195952934529457699616567703113599416737565507070655963330913638530111180405043181890416848043492890000789129487346100761976244080967654134214365421692741321099635414916434652857039057033284853995990321859111341178571577072959131402519014774597929678571288926233277146269997553806280131863635749120441407795250395403421969043888209560608367019305941952624559168177275713708372170843554091222403516768848891883651647119484371140705886119316026096820038600577399364826541903310747288684282054697549913273709361966555241875194744992797249334966448773756904992418555947102233592261572981746429820666521870725243742621155248885349538515636702661915918290564190859678269454163127517060794454590698246213009143460356208045924050508239158578364205936282539115552979497138940398141183969305283671748723376275290914953730230682808092821959029691951043540168302193982134691283547511059841339148340712132447682260309486040500210727372661296536175921818405424189282905896153945668117644158958856202874368786752522698205095415428900563724488637958989906402724580468333113461201062447891160442240349261188165873322993372713897243676971619860290247086498793631160169141785164037069578910676201618206646515190298945418851693666636473388659920742205816703578107456845129954946040333770781984228675200801562068460398843400463684712156036704601444958681342507674276053795485905246083522828074459347625767886086410701326178129156233294940914274740321825480038498661393480815048061837780841927053944547893795137211157942966179218383605900820964977436513105719953682712078957897172951269811655717917515878749718845411920113173767638074082246051744531588673530401193913517325732297240113457512874627562427164416676487958096155313657587066922935317131454242980985659685692419828933184616027565250013110245018978364249217890828603499870521233909074809555981997147567049465241032827341556858366222683448119930964499825557057900501522779514562192661754764626439326586730690914004377366702568396107547450126248587869413907359465714754515764913722899983160912998932295878681563994517823136459397339587489560000950764259354588152596168938916013644727560800787091116535440446596213645677604362731082295211021743242832817578190187683440337449206051572620264293486503850369586924023692794705352314618907750516072875376411494308378116366014463985770121611988621732953568433354302479532540489173288650911852940702582487922635775121079336070133558595606858793455831346140164464064935086334396012087258880265897316238845275975840624241189327889867560857003571998137973183240848712390782575831539673770857165114681765788145378972108862703114001816064922749475736695418348254876368327323941994518387830311453139240519472734650857059115519204305328009726722179793398845127773356400245585485169833624583196917941174980102376279707446712647887225152159554077478272319019680630041001340682777016834626269434834119888452987365075845863332532434408799602667588072519980096434656788842137343219374939076871874068489215650225384844498795835274965195344572350631441254815549134864174184545068560786967861516834946337835105257192828265360797646596226575837683242491685630146965350169243854622719373753255170161808999883991433476802086904728053855167107569007641504392483798181482424597844802172628490290116278629135588433304613313611789652107845637117588042938580692657329847825201717402377072973076099389243816869171672384903005870830633374532172413485653500566287497083845930493089751430788766659917872969464272674109323948673679071533634776583124051527213395385076728436887818844414519286685743319152352655505944935029840284667175837179109948180779260465495893336461713903598821418996812096661864353714899254331204111369902433472611888942362799841722362259685169598701433137942043535765857880993439575004115612090932063945233235456859409711775192240793901031380762023209872203200859788194655731294597026173980207831421233778627269317242113089846826706573225925918509553557385511060714357123951869410373279778165452994237445599334996795473400170606804478310817251579284889581338485878334465077556308896144824000374402764939609286138082214634560094065443879555569554972809026952459217244156297815840236510267492063798098553390059241986702880569210224876921124951027532988539339059080956101375958857861632569040882433965103172502455161064052652599544810501267511679164030162948045686185330649019313447257054170447259645023097543044348748923974508504514724949897585413672467909762301850064654908646751772046011050759073629371902832630228722694775615012249000634214498034433655379029726844707579745135380995648745611636766380356280154382449964336732309332920581821825923799429725144788694475755160529112420609369028961751585852254711074518915101408754017683261779511346740229014229882515802004553209737185916738957651520354205101525723851517401973257876678872537909375168288865511130686032292367990775207260850557561444760707441949153980677597717808141778714847023229979583393343011360058489720844359834919609057731023169195491773961678862401847275861780967179721198223434211643808456614966451825014881358130122298474493538322131527354695943819035894172680886218676779302020558275106466824449092072533161483354370495862728768882340363900014231419857491173385994321317697119265477177916161840057527507935241954929342367019871115554921308667115577896146514728206150577055970896220011647265466387460990410614281034168371312137672079022331691336348633192595824290180086356461609524960960804847687796284774545620142744356321014148258920022503370286178060816787086020430768766568068816075789228162407372470385714863525305901729434161462669481214895573661183742429553897834826598902236638761219016938853677079391263535377666425154552527112587738147885367596711515808847583941029694504515246862057958990697757079326007699752818407255244020584617089589142544340664386456364819457809506890273101012518714223005875215599508903051374953186605568188333060217198553909508395244919902440481336832794370350391714957757208121599605686174583755194138228293975938059255674170594530153653713276321161184280688020514878192527531811398845787935106263129101725331849578140517768733840502179323557417018657744755888007867529643420400516859571573279270284254471720978672292702422308888891958028197767186226798508069299386665533458793235835004935284731301772099877629568804303177123882433222348046391307638769863035362377364241204234543047319048102564922819533565341862390522383121386291148110980257350126035220373834820590823589929440196058410773246255334464601075953647271366490882568020484458477157675718834897351673321965411575906398987799026591524327397607326440011032302635995005064521314689582897859104281023299801080672724463182960906380013440496324968967590950629466132619934731800232337087790169474294575270385608790186077280299503270035934237207578226849668341114887293519910139444179301503048123797451378985914748957476695931809820300819512383891195332486034294123868081810031017201284064409910211722603262989469130817717661794094676517576988679318564461687545384332412165238276599103851256479476310046838372786633651170101717948650173012225419218345552783980730404411187915494841499169240483673122332145902244356779945144304189611293923733883091912657751430168924700114755324753884057020477670033421158385498938513908248492552173567833564743367627616247896709401053085457171765447209224683431167277816698098921170356134781288251941781927420608950437909480676157335812083993632459452456821487518875226028898538659834487832123116956643491281045433323469775791014155809225473473366468518681700016347115358784105393977427339878543120514856178185338518592615060987207407786655667220041543516919558795969448019798760771345097558673501089295606413952797747152215827128848998455183021469561605538611559098063852738288594028058361916303269305729508772021654274454439817021065822337353302514163370278192145834152530958584800449530013742730591017617337045441034674905838263436554328228184352587189184267027908501063724734232390260934342813809902738668579102882633106310927483490689114471746683485885533370219347181374369753343094345850447403652000680189197880916359422824663041850437609056954538032578503588116510609438010426683064350777599769053632558767942511182733025163371993244262761444081932483365832237125127814378707739870434489097174803546855694290908881611584106846158140453841513925476849066437414621854305147486925191120853970826118792098527821664556189552729262507114720745863618287756904984479429241448364205922615756014561824458434729280367412314393578197342389243752945905891368687874735055898858359398556588580459255265400693558143504785874363068749327238095445488573888784201334074451062449611013657316058315172821617946637267006619968766432699453085565941577133100316780716526644484136627299683866398009884223033716410857236646494409172765041022960409023632747110068207885512466998409536088865407298600225168616613219145925429856735088241793074652427726797616465092301870052027373691043545411812216136998048024574408833187129234466349847535583769566994022618662512640596558982766806579671003446889268879334021039574567344112748648317247644052417660544257514157574472788302325641705660248909409700648685043357656777987332597436577969691093589560496209547264632309434198005875621468094953264049270633985787821009955641510238615014721219070651188779796615374396800387317030495020324126700878368043958504059074255667741979356781115473819107093365552949586053382814331779522695721264678964756500565698776952550818757809388677016163422228630744727714414174573801535548225779246197931353075332948665125376708712536012290739998734390432179137893535028001422802686000073658541670440541930545458808303837892218195861208567595891499590516945367317225617108742438792742201170581490681622492326626113323344634180704878872865607054262778730140456741302581806558231913612999357352762988615640332866416271047712246171000225561657661905353845335160431922474911797881321509669734726043981627882551935008035931138076179778303894689948621594119928704520221830416200361964044190753369588216680615556344353377500140836673291532972761703489647649562775345415740243447578445147014526658858651484124338958543428311717275096974655199573064097771252117712282521241572680205588283009875006904117082308476052814627614016879345694587562868058523365767411081861540989750219911009368837814971780093215894606134868116624711601410381346099031052985802180665813803003813946160693148588745190888520492017831512699595563650635490597165059222936096537187629834839167958325648047902254396757836089500067294656681000767392714395633691312280868428870291746460125475098431756811557745625020792933222682787494493410576981722873451250482329753459115108841188307054064148894256797965871042999193228516016366268409091701988062001518141443260275060996872160785233614952441974139661927695569618578546713290167265599315506879854139580862367181736767862544222790756913787272694073502036501054588568342190638034068783860608999309093377856798477754581223149771435178435218791943840766343923351826598370003536984306853764737921411349502019019262241060748014775687752470005276854132070903146146009616196386829670058212550561447511833381237028925060761345480933629100879567245421225294936258468314300371006300996491359527875468368431567999794028684419817907718338787039065732886313832848096842865493207044672530495840217977414714356722459949500033981039936764785890687991289233606199325735837427316035855983301175979449734132212275933797192672314713703824517771351481908072300555389219122217861893659551588309400109473050127642510255689110067847123717804601301426201976392298108626143026506095271426588935762757903788038530623183573266164455428747535578398480634660699818147531581692295504653909404932958692840370023427073009380301127482627253534570809984206559673163648008689492905441615247728686207297820396765499590688273328798670181849742321031300948522586746662998667463833078716575695673899534611259918578174818756093734892515474441235318638657178041820046424868381804220592792498736477120235957251662695125408540594603619638428512097813123425148920221554139131098904782586841142727709096243669001203955569221929485732709875520748611080099783646655004002814594078270027807826904377679652709154663822469615814436109099971728419949035641280287630743973212691067303931658285496399796759437346177515016207062727373479550329915371522110715945289975571574943791272194413242636461107567742927179187695060951306024554532208661356258042822032025918125254475603463771807168787558356231865286602881108462449331783569202035107269322417127023691336898204605202645138685783492312407712579825794216542784667511353856042208591433625003579614138511613550827216821894936119193393105628077603974456340101239601412055060506600357248516840551059959802697636435492805346344640420582428535906547304716109810257418959228648164434023883415139781766061440925329200339055325605036390768343918615578164587115382863044904518467859640820906495558256042473505441910614749908285738226997421882543565632091408707763494117563256454042793488079192831769662648536604100403931095021761209251038732246460264103423664840852929235156826851528745554537310601434777993814418829118390863043994536993468781632347023298837827658608376902400859006401080540377495470443535943889230838453868128611492194866446981343474039647459721660064978471205640739919335416403542659673987426965355618364083260566999208168164592094712472151485238967185206000454166814505119630085434570782704864466505127653372696942485623090786061972510384555455918886146144932541482659714726204778468809417597974115881197883238113453947099137490572257002343540530168775134624309031201717972679426292378326724523922398523821909598803597387144929037624502121944558554060261876878488210546924084187240150350172520681144220399152973251416205655297812699209011598176175204064181782165064551712550877190510818258096764244456188886680369721903559661942711791928032849406724435804728188488504655152501472267605800005307418351464057228798189496861042796999650745739511945594053801613472174758836056640227155507846598120611726888347491986046757609292005698978632471513084662280591234006042402693279689854107432548769729504116199947604341561097490033669388449381646121730101395367717426766966295698196260637421814032564256766688251090161966684709592529400430578802038675192292690064599319474934530856346822412996051082230111008790197554395106635678046781889910226920637798155684454123047666377882319116191058850737963726359007034053743889019830657047133324525391702563480582934060166601305875276507711275384097964302896886830640198810737183943492706944131271263575670985067652542926439197848149332644252205034384454717108170276513090686518657445597185761002059965535304048621168124591671554889448964304122966103983003709447041124894021036560281924414972824260888607870286023570734876955397162121259543887083532854983439708240006458437412391766218551533591711487208210818949273616043930463351149246038201511815850884892264874316246011867094346525843023596933745070382889706043463521421982310548255850090045118925920476282798886458558295694391587377767961318071319066594556801077196171845303775308186392547612894457475458409357980063979857689066279263170324251970196693431543534052675530249352362894175308314932362989513517118346258279820421337645841534086008830008009545616838056166875386286217930845423139235726936417694547189065236840591322311040904278860405402719014668224469331388777277273631019302288930677662261565812828492561632962996071724381339483760964974869744932068641843477365931622594837418367094728290817503756798619464448913341541428944407387985998368394452698659410781623932921072452848974463910605400868381203066424526034821644053315684886490830740724711590342653897420422916201344213111707265580194346209980911976764551217399120831460571803613878879638861920022816779933593857105625918254295737684680842547629033604513343273422410406264113590370395592728602022746014011830487604524926099813303949183477048543661277008184889681096520798571799195356461593013192470227479921532767204464365131103639263867148684320987624477733586634322162530156108512992209498215441828971174953380341238806896850054321935845136119093909432799203917950881301011675019470362521004726087791721643152006753769793365205305755978077314088733722985853414841566427230312049992087661979923548067189109316938450047684984614677262149683321892804197263520135112513930992365825343235063864742270037284206883726894826943024333957657880323432641363638395138631617394685807798579595865983523433858877272327221366960542274505841679144069213656654033177227968149264222345855000536238689433446763891140019069060258327564401232635621620915836967229960346369700645724242314544718485177954759457416102414886190365672518989469137293127945695045574893254096916452682142691570386637979688097594622489170771431237474160914495430766797910632361992379318471917866477425720102329696078757842733743786876077832749617092810390272631329784749948286616477595325359093100521553078134793167065631275697654223543896560305889766795036737994304760929398519230973604946090021306228945001294728048407748465543674386354932234981975826782330439920174103810583790776696010157288094711040402473606559026774053075774510466521883733725452982818689152789175810624803287726483510256968873399850530648769568172794928089841736999190338981214738321406045292162517495461324837007839905555289063561186512121304428720218614062889947663300175992407993034481373507477353401619588921484770639607200043003944882606991237816518980080118820580696772404993535373145557539903856813686913266017215841792758761467242035189837082641867619898064836466336161278429205376657842512903102616961255461079168303627482693415660834550018650628669767061298613247116902662621700694642452672500448312781298186346420536633674497417195098884332184991477933507278848164170227070421070364726789560528449280102633298736291561099458493977804982026280141755233218140555930633573243147828695483770316324988658107844732131552536849375307155382210479082141715324454839396298476300055774967551806810847619051925515074998722032775284029410084540844718224527923378426787667605828907810432082707527326619559043590235627183579166771238142060348343123929929677941044547410822868502948783473687070072019619560507598868505526188681540540387045112053720075071223868293415205935917434574010300899121930883451561938189727116675152094949249897011977265521744898044953930496391866327389209284544644796909014296169656687175632398146169467857306477281345029501045886066223000725164521441961796932509220095817735785680465679419182576879629023092612438082254187661112886104202460627736162973582631819944551495118569019745916654606995230961196756958893129043644459945025363460517719718115554809342925604386718977803025307152484362062828204638462526337549864509388943633082256730685000482733251318753133765914577643423716807635652277199198286236224389745907659757772379001535624242921211235599290031720482353578611820083892330128775262904777864123013174235508697093955908324198547012239164438737197113334739962791981284813016615132045620072685747702744154190184939739037662635681673886294015088898057193586986817190706531376512756903338308564745170631864323926185697118376495743920991969593953945258225655172924121985526672156548440157032002114735820308834691015861981386784305618807897878996587915635410867870917398902245875013958493406996131686314732949792456480661001838094300492250826188729773793505927847964373664172251492829742024156969737765952046165426861980232349076978848809018540702230094405643002792250977387930772497936599153121524535905713558179293571619606182662389319956814373273001832538488027383810761921548932105170598304310197238694714768667446190684776966159616348325449068139593013980097210047309282139121340631498949464099084053620649468593883981200904612354228590491936101165637852367000935140109796659507537888464831035371878742111068085008298980936410118371392702162888324626443344050106527636878705222923373089115211226372080525138186583383070834167936655848041185532668821974291231068454291251108457953336388517459832613737614699162067830929416443841026157849916526614340369956912171478864571375995961558672652143497103685810024310966605119165211881299449107628523555089655029811019244347598954153416907685483246645165438395400668582442816754553697171710038062928320289804801593440519330100537816847747857045706057068845570704623973590623977158125107659695054322987178520622723854718026925710318405569849925750684729426118934749404460008554315669680984018443699727926078394818411807679830167218510948202702248093012337502279401569449146826838124765419435674182401235947205486606586389130921112629156466945880884859462671603340959948947555869613295576221678971695783152946597720012295400024782828436355999373353574937013163946579919813357281469344564654886497105031683422460994539637853307859336226278067791620903653831975245823317567622738614650286163697118427270658259699566957723583462432197459037288647375735503553688653801624708987982460635845540686699833879340450442931178580728023539855318216667346328271743772263814092083012803720199325827399845175773788943117175125670143241325731669095302223805200369632310051549070821451824815221550435875746004967691266065990670743077750244143311873379073150464850967446957178615241337763192621847473209808184021430947928426607523095127211446151787933460048909850750522525922961534629970129674940003072771224161192611337869651646585732974882900469995448321378922580218568427843080217832697717680492637272007308736612089235239330152325327161756242499126754440233319976295215802948432748370488301914967821112988839384742729041189342441030092110689375420060882780269794649145964579895245454269686408271295959197325736950456649664741584062349952371350002684398000722559598713038783218959769857569913988421819349120413697415852372398205642086691100506518343113479842963746556215109306883282458481659276423739096217801155611326764501007238307450870040720637635177753651034990030197685225348985264722160761955364240519587429068358957941474889087362872219532401138520627242022070218232293512470868406139068393446328486312209917248098575494199689705823883832496327744570538264171491921087129788070708531866102020249854956936488479033425668241647761953433301690165565272180207761113286220057660265103696175525167342820022543359874928164927001268813736208181232765711784191873299454644649859598768178686496479961549721439284571356925142443615695767174338651631777245750135588367535169245806438266874987530940413026567201194486498747427113745424628314216271541303425295498771234338245525915031223432874344851246663223840586000913525744121811280884321668076386329415481809315485331155476863271213421090290429434286239115730642755603519930531511979025622887547563344469223280350105315516004442545225464408458377151830355663243506708471741784201871967611686076734357766587322025698816961319261608149010872387551062655957412000928469437647094178458535161422307875161875378014994268716062229470500249251340082804895528155215855861958667830085310679299172966470992347744119538789256668420713393916162745663796836103948376147199311128020039392126500053923030761988067866412427197749450565027331064324770207806912591617807630492518381192500363821260903832816565994713685901414377213691010968252443220255966116139124289399000255649363547907905536409238235905637103260484129570641221601295973678433007809823042948635175853045288934445770516010958176244291343988630546149146033149296120591778888546627721493559147611382896980092654680223520586029288587458018012550142311368067292607938422424447363183893674081043640668652223616653394616128280568603863059510621610777744490148997904200907446126246759926562888523232179159608622451339976153605021382380189803855309366853223851900725944542800707673295047864838526704086502368676481038743936522815008743950098338070667160030015780601621986724970361573082705269906661872041105536456058582004953528724675071899503381122523519587339927593528315065408617508473429915634033849282675791173039255172750872652477256054218331993602703479121989058681545658054170163385527733363964988654639293445204413352341790453024796834449629562316107959876930469103583555105803624888491502023527929499224982073410924313903921268397290116537030771061258681825832524325016078461045828060689876965798065538660487769355224915462613322293673540213379384709870718545910441813739735442839051118279569680306713592554384651867533442932345543424278969722090882739147303711869436217800691442661505364464625881835485898295179659562049635685040644413059016758862955965115452030216692908908912910765500366731580240042988019637556126998800974990719366960070416709767408828059967954188969362485946756811274836458820297004730050965447487106784330845728248278471669248987987766560052576656987980198257779706317451481156720943261682345586664170498193501765254740482618705987900606417992339311815703537390197284420793313123080437304624067051076564761047606052381400475867657751071005192117639566285334588751761003158775540311200662055100513396874333417060512109410798624725344693067151901355927469037090131925779796094804387041494761766886067153831325221107495812062013537839424273259965621165273222172338322221116831841125565219722723460725898556711403733540927110899650445598854319303386450944739582971688619007946435822204909507813593270052569886191523778277679222570579482678183320334838515518253241056060322373213477398625812462400478152890336261540042291409379055003337155258157299006292319574294394339000950481630972615075825141452137043260689119447254720902518914493471902663637513532889052269004866246119384396487860440983946701901843967654182274994036561267316372423948197036132778517536620054910210606094350471263813335881148773304863829551188267194331354896747258975857860605341493875020423383378496623871273006719183319702194620488624666829363140497689170928707302159521872598095834509093115545701646331840607508388603533311941115080881946858999425972876073757734662354295275669708718927516274580367503948547963831245165276234557991842707006038631363728202729602143420240276347038160328433527896929843841396219813735454894020272200507120865520398776290438417812893115496426301904745074918225724631310599996755414646423560984342555571616939390953818132359457224122670263651658772053842894819103108368703705342535838330716980032403648776526939077046788450301050098552808802274386449675878979186084808470689166574618024072587488310377646867828034245453710257332933217193002352746925558652630641230201372042552061463747164199974023905456673060351626417096524181879600925081126267716350434427146002782122259492414708142662104455084770239894502201398028988922073741688747725889408978698074701234745566298352680005718965928401636685169065653829173941207555880885771452784194606156333263017420876679653346545255283262980097286009991918273944607495714302188179898224378196818695700007503375389550523211814133632684571104154685453894845155392807806891156757349588805899761976808673052618435656431340309433770496555268725117617873814892274878204328976716815884388457792656051249040929235983328616072517086128011923728397166407087326815960350540110936690088096115055375836268599877166600947816899021218851725539916605557872840097456014456333855233993378693765930718875872648883611838884169814292770875775699416534014482343828347256908173482471628014945754129226258763527213732923106137015852273775666526325896109334476478803293271194730225231414723305525121984653174047736383419425252337868533183999851720375501520934817136236520921723025276601655261131719265172374649021628026637365966751098958521782987671715750018446326876566837390133309084363741547363042745371153328557561327576744011231133923972265639126989516811311254683679275788279640345677305217954635279095322711049972394621935107736483427059458776816154516997735872574907625711563752087180284156823430985423521672834430624169680525048778157542820440460684395779792677981536447283882590737165563727378048118857756051698195072644200612470237080063733078057904562538050829119727152666601821268502146290568685366352414063381492434069003120859328326830856537696108015557977718491674670803608757289230193416016647392701827116952922941790750148664284450567743851593471114433249302154111844760119788468847587472104388286976097123229078946193643912958024931600518418238636732760556892109791382560464639368334984340134206409093437152315453522975467672547362220516452896184267275188164025777211986718928432757423266628285971519095917451677904091016082207179915932316057925519742221241512686337748080553280921516667224466538011181485876594852619153639039541584848958293831143592280598126544863158543356006805246947696752210740178021944687681208072825635916837233269009367012162498186760158023655233007219502146743342399949578689355277503297997785932304651779817301361263334460219410907798778553321479841721606154284986025553346174365079918666658168647295022272489184092762042467332300782195975352806755237408686028388563617099156315491950013460031699104060095383991580722135688934002422617508478178890356723214188015616457753196310359370496623612653844280493132725336409786259644206980667733525838145795097220342545982931648355556592826316932545974800786667258334827472247416982256943363473043533607732888729720627917550409294383925360119118647003074992455597170482832466081350208805498962975718815339910655838000226400991972773365857493006335114981459323075159540172179384813569191571234918437399608302637257083319973701519158782988893200008138696824028770776246945742738182515529451743872262901825206085933809677026915342163763644002709721037914818377927979538980198479181983326064596343742925769839724860396788240050105604318691246457179509328792729981574191803567131000251276848416299111069685548696685329557670740690781678877077397876601093791428395325896670440723449248682196796022434956171914806538381725465246903754571608817480948717466053504330687678171702084879896398581653817912768649366504978274097438710201600816028148791568450509734448459157428561771871051916683102806553019882501234250224901813846361624534020170483372507150210907232668240200799297622203242017860083538327638870631904836113821707974591234054780573574149664258309991758064013760787370321699693993280222856120884798004459128263692974409614158825117302727744073342968704193509583693658313590049463762440823210297954981683499859120662486897511637763297825260547235795185512824919219752700828879597907344507674401307893604015549200372124640522497237996709061152528121960515567151357150558414327104521543294103437607758727838604063164946806528934148370707077370205085454868314780167593857804045638931563922232721202135895335795837775926847988705622534309966071297669249836123670298757255914758214886598464541437885340025017147395102977843544035806449979190172287731203035588729265618313357633689344232143921708658689625746775401926493887909547973090905691621535470493407453052984680088508067468135216420749008814736733871055087875915453266157637733194938683312886088851422049372082312361550251231595258883980379495049487599148333352033219862835757658173702241463128443987908680327903862218095630434200616814705370711578882729244596374303960923311946676763042556969352896957643001970642095083306226552048492051285550644228203370893438837896007117247251481558055331974417125675295387660912985093954714343214418214894916810016605492501169243317643706271612552804930855107867157237227184165031681754324592403626794617376155631815564084520599782565628329591659993433106328173111524617062586046798540953504487138569396783557266216082993707818185841585022396609581342603028758703741612686055952428335606567463272076533655250212887541924942256530347620399351594053129074629273142866388047620362478158644055581902392505309769033215048308109902232195156409242011672128079366934550837187164334466844210884182785429562146465190437684851477213695738025726033574655900101401500992546246683245331525780696499203637055534109544043595580086592307926765011257652237638418782735342706879400263257194114792694724446348166440011817709576200618124199740212990672567354736287569358116990980946987731674232371000107771510291898934307077634796115679459618814648532992907683957284322728841168928621909794261366632298955785821235172198745431365066902382709494351132009262592705831007112777911905903409288693552992769506531326062778617483009370178690327551179440783646100030338446938485134114131925738264278194209497175784467769350322458446374214427100117880075965524189582083452462477953456113186272181436876362494998368860135282998998541593169794553689136486686886182079243729248766994389057017136975625461665670071110296869749575407116423381287354459666383586111619412666977987681833172258715739469973555390487870605697480987799860335799855842827744371701400882806649652723529422078463879097976896628941548120535735241493928668297459449487120892554825498170290878663275555137384178742702718969433965006169200969995347298988137342967542483641445414198510828398996085729359719373117177586978374216674475198172035819697491222913043738733245132270920458167775054781014959075506066099231055971316705597644868742215050957173479944384374737308097528050666653995382603440485993435987433234051349161013514860108149663177844202838428149480201019232028389500445699963892867456147735055516223577588667886768130727278816406422564895640127468117859359543652280734504058491037000457975327725798244421800849409498276603049780421759868666599512758371060606273108101963448028097892830853838986827054494128060628114255780224334207898383218114191437301342255984830765796554834164945104032679411373928421778905364740726971752347934624507184825128169566695484529000083880742553149002477644895362226865011592364030680837189298640943528774957368978615609603688316564906136044220194170139634002914156390107639539572868491197394850883877631078293649169093928737321575053979038561583354652012968468634571985310345031337531285747671392654033116085020879201546743148073581471708710795184136461844585675136273344959002177696773804539231247603103988491764577981260977944288125430114810674915884898165599254700134510391396657324604111341688934941537360047987556007156728692506038512865409877833791664335513681091287273769562312864914456212178816442284024822340405402461649542900271503656846834779274905355372683019233998997232904229012290632674131676584976061895349289237552075009333966720701028520886389826470222938093610235885634416326564085459257416156212387432178682138248137264904969300713666935463563305347670922582974667735820874328031677107397444979189827362640598964653434498992063718746286796566835602572868266168461144467651217672865726618680879183408285927149306636775181679933416063253500569066354840529987340635896063026284214468528947809471654519305970924208837037695542159411715146638378650002322989778685458953281421187574460800037092304910240997715748892633279059751546478758925407524501147477104055244838811646577152643042771727813835369959572795676611833478337414714234288932408590329030534007540563050772730707334140211818907916631663980012919357763592059657858288256517296406163082280333876391507729840733296668487167027575042234277193356753547320667027414780051749973095845298266077536613379263326096592105522375970474955176938640734689620362868936456366449911493580442339111602805955449912711013430779146985621247610782204075917080620338976000196937200162695107461664944296829485834990601702860466689635920105086792068635151333523452664961232037369810938735375146251441319784681339086871461794744415327869251303781797452435296069558725020015611054271768265259662785488948200790828539487253369531705868158773229948658972634986134702956796619870557989917286094191208056766426873123778848198507355749276218902925453465262359553631029578633386822243492334203235622508030152303062865953072868878422449306815678707550917475700111058770503273748388712031456088786969793349762250385090858887427455973806035566968101253743369062608661461535377465886781099934222687443493817151967490859003478006185533903757102273686665124045183609183676823671817808974442579877327261694305371529420963622577410650229985569580367752333813782035057246058686413272180095979977826405935609056857400493135944388022286907334265668790289695973759905817733038559271141988299764414776941653267338599310259153438552385224293839175727067139422545164710800479118875392899540615236833043101457361963109924357918926695413847449651402474299792590598142205837149009662807397874849238592207537690363872445002073148775833981008402566080125597789995723692716372366936442047189072590578821242451590470894719047866687602305485371295469435409558163971693493096784508963360021176805289837239438902966292061389844533126985678800295832366570773204108705300928337862120660240760209405935440365527370457030027169132236652503987834566759988001336923238147002835989782394689571101753872152916573486087147546941561875400968736345929046015207399931110790953265429680112714211054947788460239397003868378312328108016599377211827330139113690372265290900181015003099875079847124267864444304646271216633311621807269638922496942896837269718690739791334250443487370874332927420348110642603318721223379731052645804236850084785267160809917689778269016969545811399248667027188189573953803555357193662088350900416426699846032923509462832452926130973735391945500463036468876753035466481311183203490216933599506219562207190427463108657954157368937641252740034563303782946905519070295684913800932257589926512794575567603049419548339599752172860610300929205184538114363621426743882765265882604810175954880779902967941197641778268017284515918792504870316676150932908918818943194194455612555855449403621466758307179685793684540775655413406479266208755944812701485791981789354229586424723854228190037980584186143594203083954008885554084027388946070880761196538422592346360688036345504366047536957836835436950888470840866507628593439959667011526318123666102030343808925242205755708585859710436966653697952137937698420963502036212061891631239316795258080711735244499028088713322192059130954637513706473573194361682290196056750214999972016965401833101227699462177664683563817808407341341431257390729827706811656436729173743308830249878189498091540071568413660866193644703692015010150592902668689060392340603279577396266912854079719618658457969054277875125658929345994389195301164536272777538455888742779730071839393252084423921902949082359309200072148405135277931553272151249540494208365389267005487870085596887387613699647334153971585903701758328351932522390375689090508647777299075490400789182647905709370073779646774359624444542040909751645228896871481293159838294704048514140472996332011153347946852217046563855531885832974433534005101362320305302764950684560952404455094680881518514776662747063973755894294369498000665359688621485104268976301052581313413611558163936126061620555732624628665911382348805832152211291984569129616477891778803130616775238815794425055745807572476568176684563167599722698947643208099783789423806609990322535371154566762998873141151384284538386489924207107979877228339345033420898293316211265681908097154212527454965636706689177329478970964033952405547530522419372073132198223199340499543210250038886722484746542155788482155021786215002894505031435025232692684262432095954480492344213058551328238583059173053680826020430308846431753191652575922652348939095395046618621880344879283623944254913477567976257609594119372355143786203709283779962124386528894954729390243673958271908643891897440694705668531932342714478134140452219824059323781053021498776761600774661341354332594568905333788600501944982265842618075140317175799513860963223790417459680382730238745731174482378193450790375187410249920320875949362823260835726916366178416744856632803536639409079114637550108522866198008019567109032270039466262599581413823901019691522570040795822798773497548359857538698751667534014739353630940560926757798632409404462157481673048397584548501241184680982955644331815780854419911703800758909286764877813951566703626650626574962166635375569837275539310688116252511656997061920808696601955548561192384750584616470040073606092709574509323213547002794535715008329539733035350701353777793912122315064366058467852843218019408898300489473814204127441711670964175690154834971943184755585606044490268927948388194182660079930808549121879083591373001083529056758045259840388513936639503214125311151443694509674296746799904027728192269535390247085538665375907486886364636870490071338037709654286192193768498844882932802214993636900047327672921199326745726330245735125541971483696966656142938174967783706959777646462214386107631977367594893617015868626332244414085384754781044110075068597850709374711711316814099837773670642161066731226890214220597705808444420174154214869611428173028875596749150317509719159164925785880605140994537868716773221361985634925035167708924846547655634117010477350069238145631862982159913545306093277787092386662658882442579539154558100827753009862581393500273696594699906562970829963763843973642725057450251836905666141178041958184862983469951385415802705808175853138454186566042319486268583503451879952286333405159906564498230633144576740004353564358788414479805231662262474393759761654899986962410417362235923995745242293668684117601223280397842587042262505104029314273959709948823131920967364272323105149397712410996687569130782137055117646618734570600412351648408882765137740561039927237800384651677719258343406475607771258014802308712916614915466780807985838153420803436056167746196936782680989033071547211203463052027464210921757832194888720203119604523774703658759702700428505143540496540612693363396508706910506672529678833588517880547462402165555346074460152571490282140599730636001368665988502277148425001927876914874381512290529475146498882147504994965027472512234688764721128457676959149786027791193244873415119818058199941212921691055054091529123016677739457060542471830274105211002478994449522312881351039361667040793005508553255990383092305955067023564678044888113586198426590587142620777634495950103304908942644698463413974679500174692595384870552603078783541697771536806249248861615317286729404435104902929826043178037275670162738837760770032355142711831813037177349658054478163578529089697991320857614247513166745146722357351053626725008774931591264206962111609894272801020239474618699562053964521680764815345326863604938661762331023943416983768766259467775398653924961631220791916882212424069954642569341507369252353884428308682459847897721384685706840927097962832837069632198608749056548406705948371820569902211571359902101388145846651643118415970708615609462152209323524427857429955896600511644928891316193995526898958515355568017464292590952500407202800007679737592172964339797242781757626675604663255299269555664891022425412090862258027852155733478075082334518368689575049948635163384580870308618412032663225327225643201650030058014448850126238257647362352051874758239394570635515737999167437529378790635149848996328713173490883091305040985952388855652960705844039396506658745672852407848319887033212786564092404083602614648004932123514018349809601264988242046743573127986034466028951982433326124314345643464897319749296193930695211548545398804314776493959841700571187626303191490533614576467879940075854331037415709195438317047205219834934487850337148215969581123353471637713163942408557198407182283993834221597080805976884700129278047326250761006292721238816279805800605410335998693711440991436109099101633992879552474068400288925105148094724279896263839630766459126874783183607227252796797583027494334498244796576640385587428283443147380646291449635474886677353848037951967174637936740619973707892119198990908067907192494901312152156094485319785834718849817779347875668437229863261596511904215825031206149562436501550667300902234601322635744480523008034069667304130017521358980218965418195852245017372485014346194152960419740482264276401503873812231279040475007085837000555061729069952535131919155312946099564609936675041124837226139152734483325573889783424420412322248592412918986186169352968116260708645847872067972059553390016899051856483194311356409217349118566242620723669000482259175607972173978232417166171106495846266894220463763318009006872310773138155501571941455682959731054283363490473056324027972821959903406470803683568567086538532180483030255661094230939252429628448988281246066188297117642713287220656705332669797839900206048181559817456443484904724819409272797878024044561594959452722189036120993320786986683220183868336748396859043843873115368946088475012763463958854984600902104950123407071801308147413231030244405691726141513568954182627182918761653100645923638922438517512339572094235428913149379305827693582352464370431062826233239960586996402056309906706521049304162307277741109418127303939959103072216322415787093632712186857716929420067409346573426179893138509089174643302323028396318608115331448729018275809927348818215402307136548574205519342284013719256304359331030121868471225265539114877164717625854716865096427228383132183548555759212293991530367363099152838396922618068212905328616866481565026059457231789140934447900261979977678651819161937600845644351771249926147868167863455788000396159585401766474620452272405607510849039458254920906448974823786892472715516974654026833943588515235975969120917367287996324926585308641296301371428071347345451505239041471721315226549879525985813506529055725550691974527060200074304812442457778949254272059549791348939044942465025247568368649285127218672752738399583436233507949673929370582851640141800612773274311874460636748942266212353591692267518407495771505677446045595138124672579238205929072732302799854568501034564739210238796968693929484620557686834665139257990014924371715406918694803417405910986269675012636387002177730021870592449309268179058383459845234809314421866779936956589625820482692838613245598923553757401229768650607262876086511332952767551855823950984980296285264011840275856134474681843061463696162920884398277873577558671038675093735274028835936306047157433577917745100374156710216876563601709574269756270889832983863720308914034014659309013345473018505560583987726338112451127915963129678102994315870227330820657632626554205930624703067928334381957815063868628385058431125459025505850490922868546791998460391685589052325236393497472428288702947216259607005443060318104289593730556358379916538162718400083190524929007808534448119653246657336154405526758777984005466283346647267786260028916654974213852067130402286001678696456064468797845511567562754650183544308076932674126363769769563024297751591822775376332618124055976211809116982262518272852184394392273790530040476090243342118276695747827077455320425114954080710991753006250760349936995191610049950806612816905465846919436568706638052078124568147685444853331033622348588733962120853251884906673039323786486402263747560846537484671281121888346727468364652124100953228673753054210759466616918763595132412471802669586121776963610276438014419448730700655022553588519288798016705400083484628820940894486985631032675217623472785122679741404682745308534822991099136122780482764355751184886765769812943228064036012125005044213436934669634788381699286005597895124132832383104055651201514688109214386516751473040491125708812901747076608972520005248207627022306890953567868480687470123394518198819160616573308665494851565232918973456902382400401729551600133568833291622403659896728652886226870069774546136143592968498947647148165779170897091869162220496882292214910484490632557927243707394038784244010363420137509072055820756737835312610951688029290649088363481696780350727308406149258510113291619952038400908185814747405884486953245673764743741266485743091648251377979335768603069834627520857932870958039862414408114734205932727668387019343143638008788025787264636165839268267323954066463925997205918326937919828376591185360330442802366921996868564451537881709788075914549368012924581628451886022402152710297274228972354482376295151511269423615089890921849570030949306599735666391505141705485775744109902486473487979302137373475732912658949213456013972689776926623552803195173987110883487068864544692915569325038571179163470248061852971247151831699592138020180368723968280583030326460247507969149293149509232330402216229112570489710345001209560862585250133239376735263650074597614728920627871580505433454122031090946712046859493099448081547026296831875900665591073174473272969822637535793679556616164458303643418427397557166664111512487797163297118991535317918390298006267479379326683163189946504589417416951274941844433908329361982486163537999242364263102895698272592763739195523635291215958359354630051710245457029899796701815585974805903482601015514183956104521896244810995840992462644638811242063104307272316939929021056974682620019251136932054750987939200133113798111524977986510190156404698342587949301884984355962365451225903577460586837785548376212217998971289731535901362675127192183762865732490894567876147692189266034993802084865555966136296198693817785712486197545973754857637702572744312100589304233674222382503010401933439519267589578820756878102308185176741867439733531140966192724660438475321418976794751455922621017483986246271122367677489310267717116786527977674266411583868343328636969518998495803997335411474355536650448945528891220987184716990741245250451638220897768973185016813772326414699061808037337598276021378484290646759939615864386154714286522878570258144184937091249832460149438124439521137845137582578795359680079596126341921611567835901716563173060473991716105632866594043063364177723536392918387415691162200432079293340587506065536030437645693528418950043884234671368312257668964991531384913651383717913911604732723328700120937794770823356232346471535669315470081926211680238842746913739866371777373975712118334402798523249762597138436489148239702826936170891021334699865797769764406554044296663314218672143320305717030516091195524147366659625987898893024638145036299226512260064133032504306296059030010252244387117089231943160613837864792080198773559014406930923475838094201419540158111577439617272301022520978871835097177959675467712648551663335869577106959680250739209746442870448757580844476199186332767216141646976271889112474426437214250047483696487546507657948888478487655561185978810771244465142138327147033807059896461692080208901872719931837437183122913572420962160780914544677017770296159984706052727009860320497586594751449349604934084513431237415606520262787017194637751229274431885569855452574822578959867332735576376435632895411278079998246957547479070798574208901490942318542294779157683397757846718410252055268964570867573075888282814053457512002847292476866334882936876541285411167721959500590774964111873502527213040091378952868086615130825743573987707742873624895197458739669486969986682419215565768149128645005609049986802869364991050694237879564203498143305502953515842478911134827407032625240048620960065096315926283704312054554221024020589306096156807158347831227408028928314208669641171989177798034566480169468660145654655137592865022872318968027734389423706677455236395829201086129860560663206643544381415800813217165377619938629230052363728784901955852695693592707643071464402553050178254997390747265486369142526599657360112596981472960662333733649136872592380374645160328807073257192116754817065627441150982358695488070367206506115541256665713078330945855774691162184261490449639562512172017500414532890610504780237908190120851397204415509766123546457447419860476795305106366216828224279033916190454846319421475368930905694882353258108233804867739854599917939704157886881707021796539846093370965993621153998809754731615326838575604612967023944332615410644618549005324706372933765392280782369450076880954077215242231803148184279731243339569798457490094493383536056851152273904934680522238373649817420292592484184246470017640221486229088306732550023379580521260838592989771281275347334754465057847580692647171601018072176961789080828928387053859990910916932605681169008312253816939455454775761856349157903552247706355694713786942103004030124445511998713496832262022385357559462523645166634598873563077427995342982228034044044630651785994610819097092084499651903127871273369109158772222430168645226194254418368894090561736686663258630326589782080513298238611665434525452722563737763842722356112117437320917070181090042611924977050513754676470309760833646907316873972084578182087513654444003140559150766994263126050946223648973362748355102935345548133576113113544749002360981595635806350953794849187887500428095049764101422924741264422526012533619802690222369763299338424946916052585723715682523823167975443779510130212605166244247081048792261813084930139589316406161643154265712363072793210682093672313199392101874543180687811000777363744694595993749708694082074125438161469021817286277723738664142575536291192937465850828597183522688897059237991227337774312720309079219386767616128475648272656182505765150268900801848876222668032064545276532882892232991661392704234425053252380493106489495567533325596100829070154396430457335567259159867863958748981010759873904006833246039563163106088767243193430918829834485441344556421527002095210063878013806058542608130112560410648871074872581358954215207261254411450969819538018983469929429118293710897815895990872500265925419931768767903239220652787937564445423410820414841020535121309187620358749560865441559276253267009189489085795554277161413699227873401871699752690342401949435379372063211141251122042255492075162357784124731956455680287085970708336193554011643491353749873053222823621517566581452663121413649713292177904179865367795284188983389879661150720346174340262502668889266649995013404494437683743353254390548279891919404739762734627092857598650717540726966805920768033734037981106297865720798557267921302954248838470659860716708985690195778550685340917028969259400261236635831941390740486535952904974327163777790842923984189605303722890855888220580187429959479898472760762730674432766224928873184479440202415455079974659083668316013623309855715595954368843732899833625326372664213445429262957557861101932919379056677652782238695785623790169590871625191138915821577914896759417494318408340699846639080072907814284550536265059465792446230327940595182021907148769468928997684524030498761736329890311117391532929714700006908595724850129736451254192270767172506294485884397898496938575483190138745174324052665757208310553624413968642507428784636794363576351185460550176032142363150103819523002245713673382942965990065460447879854390255579581152388132586325779269872352416778919097675942956200269136686459588392611190447584319732313579770614323170469085251786357380413766279040701102080123249962323369483406950137315432229644614646798086989151413494286525662815802172206218475772910614624165340099891511399731376280443957719665314149276079198797887029581785871557414683380004728435865892436727192446750544480851353818590109507249688840507468584572606680122422860711193798579999965525558797997211536625448866565912410894671863118078597497045553623255020208630301687304313038762223719434794964206118468541041481880289133052166763504829982302587555945141684700065620322001086142639403451718857597522168920675936264875275568270599031787995448845722820942400182596794833487820772463644946099002267150490567071533404685281887473830218116438296484758983193453987241871214146734477720371088933030985358155457022729509829360181980519072786970728199855530319681614936273236302852470794450945040581615881751179754184120118496784160276116612795884661269880975516194032676608460477228284993904770530626033098494170933776649919997404966118601650070963103642961326780641959430593386451079727865647142546264481799741243312016737797318628218932077213046967335120907227038231403880457028234288587586469670949338420214766270036736149284893459846902951352545001057046771296244280515978788214294424039018864021453691417432820336909565020408923125367880949261581439575261859659462415239094614303538376060762869408906804278370302469980917188408531777580796707125291301633309349096509607118675647261955318018270265809612422477673314312266257640808058447438927897875397949300980218590985438652348656654014185479083355010730597253163018791451768247925882443654738717840182263405917056347322419087212603405580571344874703692785298143563488718586422974528003220597549249561988245941118224070274004806499071237408595399120192054431778916256926932271025116240174643850300048900018541620788348800372753066176098550355930608747765188979402156355566335660023808132169369136700144158262319403490823117858986878427093222024735520420178702691469538843813773908082833945243722362544526628256961331550064191136791255344186643406459653230700504109670471618927949197457569482652392774061132336202022889169305862321594311144359045363834039624411494984570252961924096006333237668594914808797653100584282343715609077142597435365700778552061042209592655930591985899160173442873747869541665472488898399165894401697257435790870675743302443694148022748254106994836351061187768375662975851605078256255587351091779103167568181125437658729982250198114159490864385994141111000300789504059223583577900399132563018862443071355391469737333590148766183882308199659737400859822957907358632852426616302246600763819882454637913715831732490675791641995636660509078896943506734563970479339746955586161950213895128197735986854261652568479648011406475174686466340701586931990249019883670014728546237809092504090916241805344889907884031290506230328935188216917156561668093741010850309839774477557182875122360451845042288457149879164962566437889577909514704916969151379295052993961797926933279475584675753972982058488913461837212160820259892985256727716674575361451961158396931503505166681721092670923501395339281142398971220357277720921721332285791677251412877120108507242565111334195285065358472580664000249046612838848886400101409846535864299389961248318367818039536842338137560357399480650566204421506021717267376409057541734440619231365017493762548944148707213799109740850663497947960395434523777781975572414180181939390169468461811710568104604530055091052766268541993949324306195139537388274177984461135922198669315289012969908802916065634875709468742263185526481354961031232184244184249985718556266571851359344916638639742130129097634485048879091491012880432236334089442811570054214602145980805008140669087907977001407031534096172057387527419278222717577748778724984982420726281265351088248590800458801064566340037512547753317608087713958278835453620383586229165807585235999612174203233610993108942662193429739140853006793161033132741971319906074295624213563171060651850704953415297856561366192885667649095453493060011307362210247450982374229977374644675510172534575627718240595083350121441971640920840173370307663609304694999134143863421650716756238928706448102697831377786220559281484863327676475994578934448868455611289524316595601568077249877581254333459227311280407136433844505482710734030051387259183030713675049517999615888220111895324935093321336803562865625484395500127351867583955445890909674631708277322208495574214540598488145286448908790146868463997252986558291260012292725675242182538228194926340832467588104022950409494497611887836126253993919858920954074674371660217618447523694541314505301265203660058377272536108820872219173352145056364512801103570467473360590965609762433023511387139498165136881206505451787832842759678789129670127287036226413984823657098211043116804663549057789023802188865869843746054100163724748023161197167409368910786134985159824192523544347621796271175418051515766217049896241825450511922670158252205011047689859178317459208953234384226034485382684923845305014584254717189965660059148800769850835046540128119582163992870065379980025452325739285365112842106499839737960588699495529681579363800862948977851962354957116917932737532961452416148819649157607754135602648707272159204484396529866283380444100041596282666182270466118816630335728674014310466184731001282971719432490177663604746708242733931398203243140219298838118672754839064860526290942310145816909334626971805669257855467885640539673462525634106433451832388790387635943229236599914274189516208108772022611762399282473463861131985972738258626935305560632016534469073356632129777855767561626198234596053642364982793806163243568697738867140105101801156182071190711431162302385551910441373370382751487385381279664162613026541816852257761081229738691437918792036026394747827363702394865433607380171720223233995642123671052798902842366689595655944296218803627302457670325253978263725502563955127063153665456335454352300140359042352251695171673700537204731971091599174878238893264715010869832272968327872211222838377843246644543950057358801296086949861796904395156492022815969643937016284445441260758393582650108049726505422282319206320596484352064970696244201624081917825522344211577835958025236099190888731887419395139897637084523993242562585840811554464460209669481473381744766869825819368079315408921508760098061972174704838709331864943417629056984868572525862108705226743118352887387077410912308337895176373709387182401263253698436377074146751305057091291141430375673008095853841528213878084827649143966958963448769719663234631596456080618558228605567819539874265630733832016117625854768135029270962013106775356952926218700613749568484071618622252268304658343885717505908463950727796124342942365048638720095043290072755412433673922238865854479010695824175629582741885487252620886532667302421548602234314145703645335987877737357185582520984724978337105202060834164631430986530234463880523057277484201426083258661892828119319241697697274278702805976328067316566255958343312100996370331356280109322241530541929002243166999559774338072758970737780707287334815191466904260282183601795373581142300835816577891388341607372317724694935050333246437713385292923473830282775218326552439283775727525913760015950462348728816968573991005815740608969886148592681159581797056422772956473211384679619500898519231167726174717201363392116958505851905016474231473889194696589445967173333699250558082854871797209099004362606860157047753808738865799048238361472644373493937200997309637065646280510725029994825635855288576482701593414382396656302414565820768778966688408627397948481765535628283091981096862629081901057339396030342132264621851824338103412282164617334811216259241020842167257261369732987140605882047732344481972987744316503634799307431857498283625469599133799648014758851695456756396088625549851890751114757000412716627401230412843004590729449523614700590646147091152299871212314921704156248745065765741597370261148720605840969665559946095582408998802309746073132500544317719835703627044743489557216423705182647222355476606943437163267910549861965331275164956970407810371242024145608204930163058356717591331401985797919442448174495544107130300403433759321867345240923326363144123926990880781179327554992540501829559387605927328806547210462338755160156467928046947890322816420528107596620608556538767808242198303398823494510531779790595145111086815105574640159989826195167945625902893002246902800230513295927127294281762493569281826046608931636405768771032368309542835717269252627137795895034115629536639541492753888118423880566235999350326475916854082355487741525488694690689557583548960741929173338820578306049091799863228845407352835482430137820489685267639216859603772879041842023568942815278570186535656611049266747124633377346317724593940028211002555747163540436610147573787290377562651994009431582488291766157354073477250650624422825198552511550745633023508098690227625808584648878575290529361206668188130155567987917963915142342511720183247153105924299174310761019929388236947120112763532375068178742886133266116940450605637187967159382152042069325875487803002678922087603847113285387097854440273834266555212029949372554766589584924068581646066421135133906420423993670586333110611549604765100516321282679197808449034314626042217660636246204688288506644355062637208012557896093122895098589307092884860828940731778566964459314424287408987347724337195775594313879608942793175152884821211607037724627152883672255909573078719074076829140343792635763082520672828366669237929414775770148527066361113939150291149143577807810352571554833174080913489331094324935896428339083293211802863760841464696680143862015876579853035885765214446080708803306599582311438985101992837151861663604085816616534559482298250512740308452496065977739014139828852236359033792998350570482592458745432234582315043529515481640317757976597126378905774666271315363419292244934592410365173305553094819225512839100521313701082039685972298501373968878732974524717488748211535316653466699246822580014433614101777270658507928522378616501520528446555789015665604538714309811499486889621116009008178125843609963516780599246185600919687573095105985471274850580927824195913935926753714412951123954762197408766596924890478605817514012267780215025570456913228804165287405933957737510573161881527653490504520137698772589417288615504110628959424799131046435981558254495445741158714994795642294334966690182393681148808895642317369236560074979508009567330540195563834784271964163106059507799445151603824705611449287639638818291143744271340510161644793458808230667129932711997646805135871094451388098604004516096954865922986107539112462077764638597196638728264092631675894495599275501789651133581316538538603037618825673574334407634115488162139252494242306905547034453319053335981013688661785976199148004434426897321258792762026095911980120416129453038432447169840431589116404480257393658915063897466541630204673655495680350081256453744491669530748356353260768445641478086151832298395931419394597427227873736004363660002636430461670251339089147347682952228136550491655266276374340652902973854703876102645565650905298847196803691392945544344551257292405098867972374913118291206845478350166226251440076335777194069848402911272346629319524492076422041890083367770987140117246426596210630627505028357294575026435520949881917206479194162215366083801545272380318073652214942034817220263089138492820071601713426856510128379406581956955486981053580776622186161634264057306630717930571550951302083483795426113183439732444919503028802730309104570469469021176097586806627540271536546137976101161391174063234016489723664569253122599951894115543449265223998635664964199305989007192837033022941051029781990888321815968884154869166052912555421637359901215351422617885689443240457072909533147304873008410112291241480536853103367108286004936498767995970316743752085497054859351657967044450492674885356964962345833504110036062482941655841041862849416577014500699237959977004600997974693127399108337872068029267201236812789315087810651963453212877152398965734708953122515758560891668405324802478270759299813506753671621246036632988785374994249607410434975373548498170293785517965846935097784132328248626081187169822489158219178276983698683988693313258876414983962701580301063515643349536200429325589729063761371240065763498400219696548698988548497836259327499534150420363409633209897566918699298843732193624087509960326948276246440249857616427235134294841616377746776436370090442475635044614339340614082471255726867305802417642947574169846558092609274512067730210653939178348693138215966044708107264860782844079321337507654126271392350632235099901115267613302703780485036064715524669334851006053586195852312724267943663272319109088817208196913470467531756620617940701931366608606349268045105948036596336349396760285805538880087464680551037950824370089915763998984839225332320626354112916923253242248356074958791635511077968921706476948369926122935024533584199190931542053153355363367765052727646455823972935428930084131668365312647260036561794999768223917721577493834988631965588207543144174180340522562625092994475873809374764450315549333075806625389425568589810456552286536823480555570573072281702140582433058558189360864867033549073263324714659307190294611940605660612645763792554640392803257731770206882506620829704949380301366430814767814996878881260872896801663120676702241205451415168824584890770760123936439999342263526506536780534237418772288641545379918509363784359308897674016016204852088507152058887167757887780686735911688109042709527347806859376030936709397076101013876002069284453435523314229113350186374323138835500674935018324709733356411905704154930191064680315521943225422917848955229709310876796779134320758995655610434442822677959678139268086216855629717741104427272193160624588971543942904624832458683940879761519149909714270511736353459153063974675114922172190078885183153051921654497695225903160776596305439837434240190399817616308340743933091814942734543439509802771474014848347344880566598881918220136513763375659106153661891929783843828927928843751031162892757151658378854569066251447504557587848401645386674323645044080552435705074611290009292244024554479370911266438850990543290936547535122466084462246991673718713753760308873704671417504052012351349056416649710878681497609698315947256883592881597139366726242454677774797309851329649725566000640546748093288926101235219673697602344239474120100083991682408704135092774805967452180077639969513405924724921089030106544009986782320817670382203471026194964907223926021871144808492710311038377911239792599544921475372905074843171555181418575660464076811833499660271750476939231374510275014584756299573753688083056309361929765902439899542079219146275583444426718682280045690931677923675582006319779178187642206925540716773209759897855668100470782601879958595488582655211262238646733474216678994473346692259755613873574251682745651569474555692949971126254774972156479998430195774037540438713759159156188474602686044235904040474842731652635366039271863507046095906836758185598492178981734744073084797675164620072511723207706362204973772096407625711635376381363150455319500971485448704313161983374539999283591193151025358714514256724281555368071651915695138666988688773598544286135163944230788636792094589118424704613177094176432188395297125724024607653998611958674964708153602990382126729286976486320544458439021862948267530717312642378688246783300564716597393804575521547519440865500568692721176836320296664064609056514430090785734927614217207694136810895937851457477695553305584838233326561754987670456192090011586617968669567566450913459612530359483676563226096471463009555074974686181709415945945834398801757263387516491669552338539275885850612766733025326725709583249081023903555588086103872514326921323148777411381882466952073757211150727322296785032314919610825758452545729712179865987951210675253583119016596430623077101254795139059360503292215994748383439797174814870891234109603355312879422689698075371611138232495829693525700631375044628348953530480397807976839466130131074775959191309340698729733140625427693048081370365111517258420751723734562598871443344836923833094529858877788489225956539591093155915674744059051910090596931268931041463821065250337369334132767290556690935875161787983731666179684486770208038132874208649926959110199560675069369454284196169729005959331608567120861660473697447945109664811198628331398442175906367513052153144650845647067038956197253659158701581574193160087709001267133020701033779126274488085740045868615885643285321005446163348045696172075876564567155090289516548110374633314003862987986649940664299157157166472055789681966512366643437975446871858428858689697006153779347164759568659794879162273700720026667873719385476125349313006010851618935962699304309682057682005850014224796334631923417889082018773695692608114336426503127936953291887524959921010621832274859106409349515056655026658874531797834205639784387955638925673762442015731025820310879119925896402709920660839512450131815947262722044515148609798042401035279743307893217296908827800028494797765699269945954556825618610563719910169202989701705755573297813445599547966522145509401403090699742201657482248095050133064297226687187393093539883811438086360100692031190120014313339641074489110113861767812347819349266284609238176519445082833830327470961963532237408912875900813846137147957746770192811342567528505047046702911392178539175225931865425000299468892292501604206320916109572353747135269269740081734516240198423817539619294389432227414547722911939841817201849169402939962326812203557309320485979663747240226199602675912928457083498013174093242350031030772989548909921943998748173704338624566976653916614801617911267127983541003512625289846413720344702133696404162181270449323470524066920877309191000579603943299134140369521565164931995801436076334742519763619764141000824947424966607221107349620330345161095056604631984017911738885863896744369793454039478068376726142742715909646080652226407071903743845923501640062342395057564834696723506606361112498348926046995077065749034869584312286051711601272698577386488372552877939739473142717920371023528521483803492662724593219418169137276176989111373223579355021030788033864029821264172883335389737856990243299434189798177190087276988087056289355168476474762109370791105743144795347602160194546010105447135798328872977714493487458682647883946851118854076964018907636236433619141289452191621770269691172656863766605590360763865026084969615002523609493560967544605359334749213151741047339363256135183089754741906536000784408062845881857508749776042217239691602393518290780778688902085316924239971485018418821282169109570592426052192320677954229841486974257247615590458228402959264407709649344518335503850199286665750724658446280669238951811850087789681376540854799088042944882000718028255090492199783348588527379573063532691327387854229798558035291842781622624413830372369145811346178785878164743482431681034774732034504911705444826693243407704986057052770964174500817960560506550058663240297711175225495235494962657030673549785014219115882829846634477958079365581600486971121444850750310342728438165103899069381159813988764927311528428984860583026854479808544549814022519399736123195282378462644924075025884078258800777468105372337818864077051703221051778534669631180845613102314157344065776947809006666121194173543023145031277168991526911768185408626830741010572992442067373187811074720079413931782343271657394596363902077685723338754940909850408331500654445892883199955130963735223717165091194837864322114326675537499480275438460724093930820588323430293941705901806094689738319691765098569988171005338205394910965599699456733248361738176298973292887440611593878352371019565095821667936945825922263124592242892846481118016691006854092592508447324654888937059520254760296514194729272973935195796743362132525307959442566591622652123261487541514335423764406613417193708265425653483170442819393651220372213592012945991794543868107937773257379806730137783496905989570917663670094893553423948643802971861641315027836488863087871790742748446085493651304966032202515725345367331053548246573157092221785799172698045961598214911932257139964445596467423105788168453814084581514600995748913097208795652983164697048470901744864776855349649290283650167151298920106922440269995999005009634026382620001948910020568445132760826438509246674109779373736113301525693279041782701038744912026386718583150319474960645634407371587905923444343688111102654966271236634538769857420424198795512723071987647344713900062314064917342952250734584956093698680345449364295648083432563925869607166138840960682039761181675681009107520062574929690646596823126674102373682891081778281890129426499245688716832962158274315942612513572554701942888064368685786794294332813493395326053217191683077722758109560010446553480900004256213898150777048332364424059132876921772481688126580784871943335021576250350971979983825222596119688955967461581853744091916242022045970689153042584977264009511656512660572196343316506853178451348823988308048743316770592327996855960108925922898334873580873578979970373430640783445341869218281939617207328186528956108345601027550469214837915714737309205366217025955184550617006626198555543512165656268408289117022485550714826122934124513632790823814496305520257096406905220872276960704319700180867088402904621628574225749566574119364196431774791338283216539757612684097334200739286928966840065387607042970125941052122375506153315513153591744613345045509279507864379485527961339997140533889421138879034120415891405238631865141581192101009332637859577341830377802868017695189406511664938924734418833633959842565125016465457693085186598821006525230498958431948743558186471778301218113900677026849781132265155169324833616555496701973903637980719389477083176111675237175590862944139696552529962383578903461376074051082238936109645459505122891170989863581811029481664901147380977079533120026897428723620373984369921221582048266427233183144145391943841747465863050841807972355320504158905943601494690535860314641916411483251120794535823523600509155788350588002806504957050290853805431612566859868882226391556856791869786780961010207882683480017026111188627103303382520994505287931588800823505907517884797444657614233417459586053169817799461230477266769548016040281936142596669842376076276390737748088750516495676209583428842153756811906131653224199550816886278406493865695024926475939333989731215957122298803654806612908928934765558414675515255994428134447592656144580306255541709931707047016110883987645735978348560597927339220249845822626941381729627434348959552055194328321235119418241143297836344113263488756281390452991584456089545467962341651665001361262752319638510389377624659382344549618300045099834452196666776600259401941895586553027371620383196505226090856518336412430302282338133953133425761964006925653594377907690059945765833777711724352060680026225110859038915717265638085684311062634321008679790678871992803163395549164752721886707653727248290858239354266396567217710041921659081184748984981560414331970705904266625666449097426747666372996524564156187221599458546285986666974605153038996577448913115230125977417417333883207556424068206154349664628217302264979352935291179553880514827480501849685212357010018563241406297456899750817849661302836057954547470435667598470808590044518807797052186830739922491535004010659364670113592272937015247235701131232900190908786021981338810894867274858219296592491369251245439582164628768375965863184742286820125606618497112296281023753073279546528735342169316079123596701827966644805565062363066941127786005072512497189980617596103277527630317187887053086063244914482126467070016434609648484905495620435588674939374288886946182018385064951269498194827458828101154649361390994307859350388205323746832737616914561404029087149794885113368152173823856012660720170075635074171887256830863172590333317402280490597998596259474020426833437788138519326811242239958672333964779596951008353950588725091121389710150244399842952536066272340967107755605439710259321007089601840645050512513711249332332860333498066614139905426893979730237233157487997213214027866006833706914982162626311533826882717155324121429748486644248963736371340195696653620164124668831466190863528682152202816636401279278533409720698534791403788788261242591812689290622029818251901013495598248067615142492476983902040092205487707658514579788616260229720454010320871299997038385809927825206537505177142343052715807573506278273131793092939115205490275272930264261605398908484629514442830484157809017623117063504298553684199079474589857372786224661765307854651131268634841789466849676734080727539545429659173621955665692677587075376566879885701584185591341485110831377850111651444957491519577375566261373963553139787757099048541195683598402979399587319332751401672486163904729119424162502456469913657056790420731666961677059913267736933196530415554542605473238217513309021626181901728563459333638802992695582195587874492973451777355679220824828561389014551407375348360122262241679424799290308736672586896932362402890811959968743435402321350081005387899298534960960574997245916106265565355294954808213224489657875489548885187504264536856266230795809834279370793005143844457328866975049712026526894957261101386035410532300304887715301420195559498908627899515482220776755394906013683065211693631157855773421961901660868172972782885260180597305915849859861903214105901412050841202721849162565280553345783414882422252638519336051565578538042468790669904343883267515034798110100193466662506810462496740766808912369502627271443461837630406998054588295802066883999511738210447157844434532314907602033927283058680815361446326446996778477451856269471432109052259382129971908197460949375673007305063780871132694256765051139336689604066323623749073706802554551855042233166275690479162993847777254689926055424504308162797455567189204087213257907321597793652058485134469107764227508776181643555810723782760196682566465172384263924404648228691563682217615713044548369549803098592915959592842285353281381157589472822111785509642811693552652926694299175696901449073881529110737750856755817874092392508528056943692934448307938779815118161598377830536835591717480652076884140055555596786795970442104030761286072725164306580890594521216449971274875864550309161543585191206172000224540248125621233775158140075929550147435571482740973805579828177505325127777641674162706560934800631291580758895545435361269578002078388840735950821319489020323346924823586073883430376474386009865909904327891239448768855294570197141080420746796508894423927734747033659726233646814416728941985515417526561428053622773564269613744160086061930475033233824238514484844764403722704665820386498641213213406195948650052719699879081728675059097560590051240246749507447077071565941272033439815546984575205072075548749363699708564064108794514166201412784939145611997853785181464350595006518794236974966802719287414218077285943482986297841803534491828690664680149401541930479712475621867939222227674688397315290326884931571340530458451602585845184935513946133101235710078611210421326693126809236594122362012008099554692940954131120514569516590693067633653946444301272243530912295142274314274822753299890471561197358069886361921191945014241486392503737625794003107469657557332549558957723861640938149502769592687557523581496927854794341170177112266536684158949600470011286558082356606332503814467246443544399224291525837908075249876015584614911566747350690904307366326693181095379780577350825338597982638777628795663647089287900842183888360900181545261420860332132080300112401427578328830478309806426897236881027743531432021802036626617253317785669918061958700494846515737876620522775151516460808804976802756502605723147086173906559834329328969454752992392230654490642855518892399717173891831050032433539613543761596614505929759003468482938098546102142421765009175572592877993911983810631079064111072179268650823034879644837969119727545528351378892286780644323486144662412743431897534528116345152337805032299350486154775637813034405104981203542318382753898210396728543818384709190199826404557875855902786446644339240191808329784818757994954429533448635478013907474430459655646079361933689196250702759388567443026645678878919034779407833601568850840903868381720399821239780670431537869087945407319830125160058830893005779383004113151999462382692169042765464526324949466601853072049068126149817487481560806275997188336237092398555796820167595613160471781363426433215240974990570386383847713101122390468186213506345832944296811741470612430081541663622345813978696907783962178124921976233376105361927540383573146433493099535561007020216433248811011903986411015364506044301178707077031132614655026803232428116564842543343708515795728082787867122974163145709529142000775153578058420269248570187946068176182598019943166238334016774311872598165527905769655434325733121199642892968855914492202808627633616869832639023701827868501253497065153864744162363964517574048718874627757058645363064829881533151850666795673432985406686391796660448411482371112971573688330513863770602429515754539014061809723102757508285709832076687877095907351268070824042623291275487924450314258732480127356656787850143242643159790120967793177034305156592700105828851584133442688184182225103681884913720681599609097155400223488460122645610964269002419585683303630786939604848609165783696709964268419539103147776573257975188607330409628977542029264557919754451795442854429458870370379448275263960798600755842712728689220001547317483914692653865922490519597568674958590252984746181125168755464012835274689000312632950833236925988049037017717202465269929210642416072419060621560663117360845050993291110067319693738225714154354867918682169957219879531706576703825692593861710628784466328755695604032923177491381593793387097373221905058274482190811051164603909735768398526956891537337943781117583954002210650602768822707581710699129950320759828414011875823732684042352320325765443554354478520291018138849868420674508116760529223771148312078977936619130547172223262831109774788610916619151849832202505623009971742714902505415037235882494660188175933431957291722242440883854077414937775433849785953609788044055069663733266535121893250742323595263836349580653813716569066846360309865778261375812151292899352317869739222064236598332870098375289225939706661090753033458894078809304584091982319442783412399525693982325531718831308571847816673119116701079461873421011599454742997420543979996131929064151904830477223033063198534996953906909408007564046554946196818107345216994400427305866154752826791627927551874557099128661629404229370512580703302043529221886568449675018488760991470773753303090322994620902803875677153841123458527211316384558034301726970548684880951916827234462799555291188921128743028173929296378250602801205862263143532266334023313108518701487702942061007876158103101895153420435861781165064114194397987362257105502554273629566474645095999997748417743107812362346013719988709838858473377552984058428728668074864550781012280515804751215319814277138416924092433307060351924698856051861957298956781887334623528365066011091699318712873885434587374723506869560654520807554385108764064244649640223365816995404350655875154658516167207194420713175622632916375588509573279622446529127078052735495840510408393957020625213947788923662656703822700602868942686303485712974108099448373978160023971502060016772504223030908642693748947612444097409380563273991185461716016328169412405888846943367053865898007678737353642111471361152146834754510540729937789481070938920663264382732540226813352857649197403084502793714051231681070433877133060828855664642336374108062976748913855798115457793376968462192226153469900689823480569843678434661074545166113364656083324695203046209882756629175204388673740319247567049662767628182706987288895701977038073983523225464903825272360719164433179119699880887580240172429014506930127005274788192400659008118581686253970105712238389311411764732915667226769850080058797380237755744559243878306252614912521618005152582939837828683642621804489697290376845622691792058545653968695300767390041136502334937544164139648358451695559914323285695538276958032591832957625746898289265937512464667507167237439197792908268839672291757174876850574550375238589653363314149693004980533866506723319456245122410403772470362345366992232087247379504385724348433995042582792917364683825641308828386492203901176671388918358397366484144150104588147865572257616725086335282373836902191779490823968280615333241198847478196351847755307482952760936678294654983762346185704687737183064587465110403036024953430362246346372906996569945584381537485304204441481508394588085897370955093595292075679028736725231529495730250968184250706274456950589741340055087889497156695575232853387564107482235917658142774914057421270740086333107902566234444092683033489094921681660518278175928134596318221169808910227224799142157223626852311905691080468037396345664509874880606038177010167628159288943744389808723546492356853369866282523649563332363278167649316856343343981748913058893747610587148784988703528374215642700747014338923925478035167044589540111888641044868024425814628288842929478042428222685215470295329729777747299872299813710854048460723990402711286546595949787619563507887274709364268791066355021254749622799622106667250705475060932499732956393619920286673648624797035950059814584729372188948412083185886486790770642308069218482534014278752970342876192891646380937158836345692342880928377423170877922581740662214135117238358603196370127579827109888219862293813552206734500263804991140025881626678324886471742234868215228805770635402223949617777143072444145781065041123761613845235914471131901914581832669472124450675238228248636387040816830778616332866209697983078455258904554094265407530848411718320730131430579716654581922218044129982466072402638084009480038099519690765992751075188051657343759573980694844160185062708405627236206653830210443528853488483138524068827600632181957894782963822313214559002349212048639250967284526856555868582962023241946829524016773061947965847133491152216653357617017225178256008799317260815371808500429031382582732834956547213888171812582272060093527324459665137593321611865352055396264970226552875109167363379758002498053601870012353809547876453512846785220632618287926902107953103771704685666693901544255462876256950284950240128297024422966269339597789226610092799926068782144237786644032824818110187813392323406992739953601754213777272625039809316938707670577238620873987407200144991903647895945950660089765087401485341562913670950888761786065982589458142068864400782058195356560543072630913713566543210026984936708447604238417633208369421832563687126274153126173251016010216020196872213727618383048498262903290252390387243611107416848857506136682732517158582043267843962668821335404287919835026329902996117828177319079761939266163178289987768384163700185549789023988405347324915466724187297631517195528609558339385504223233271859839319225517201782871782696496211745645032121491944526977526550067368751117405797586466429256909163040027774849420603731964532645154905396050871854943756947666064012168252995258743544547265203919032102049635368790541580673367146910840520308004745105466690636588033245439928284062897401550147942414189422294223226390447539080345189341023030072615732649668734760258320668839719487304541148135555279318955698577986594046245300214136875560576478281354775858531922135150197785793918710632648342705569721284008213526429717956059876312382292785217963479463846213986245685897432667081828582950095286935697491902458677099201537544628551743102141764692299278876387952534309058012094361572717839452595387654613410679064183069861688694888730972043653714188188181788435165738088351351071693302729714816682513239154646150399166474330039459627325754137369750002052317959910908328234443303526142328208848326663545533106725812831619979021904173332841991124136409145732165285465721214875111582978964661436842502480859955555573170394558937215763903631910653570908986116573838711228590991340946238210373650861852429792946911481929890609416768632224506727966606557510518980782065703760718947884327852516454422585313777022259498274738048502346507611158508487056386358766756146507294233693223386632031683071714824697955676794367565758592549243139818185491161040228765665348925774443205490986387881237524737988949252342270329710260835752143966966492902341163494704192559879677998095873388857416335624079799533581346516467891516851675716787839117351094142979270918309837215875690011422439376689951112278805811763249641846790080136861541088258694340936797619588509704864648329744233476317604124960986858638661484271845850925535211367345644967185201053802629474046028074524371876927188911818687267344327220451215550123657371588047248290794640428015794370150255716846631819016617023006332741680051647748302403569718961741825339952210126086545499892094247519038754772512716528442042762268718394453586680478948275460302979214311110354715120203478266029767096390753073994032487348844976044213492798020832600663884619269112548748925422081669577785639549578329781204063617249796162727159714798554200735977897853863653270040333138022012102862575344664740295078846703830617267412215281678533825318210824829659069777156124500636167004855924127496748474135230575512504217652705472941598240772558552044326063442243466077019892666226039245294389598781715682456735163737886792667619314590970282377391123066925935422128937270474760622119026290625069751175838735174978603549605557544634999066084324943740573319470552645001666345201578775886381282705234811256030042860939640548528610973742915685426601111511900507467275059349984031021448797691607648664050944969900023381339950253815573741020459571051726545183555539761866919730621957185880330681332735976565009529495925245042121148808268819848305259856999346431847712246797691826470471902504175786911372829763928153627251830941353557822903847342913691530309035807562351354464023296550494341440509731484879577018440684493660767117960734673168965837809355083365928195315427715104538795389462243044133400585345492046244687895312222007212561800931072579813555782264278427624580491058694450948836205058135831286934996416508601750586472602515392747020227851986708212101941900422612393471503675860230024622439584983067377421695383540548187258177172380079602428751959845135370634431020725922499048793932754631666927036074837964091044800724259380835159507661979559951935274362186491859192232583949504496999491895285805506372111433208448698229431813972680609195755695949933863123737307179552119211540737606210793683874282693517527596886087363051149133068197051653920091899859024843623465864842831969082338821284520366759774247379531297372519459628390473923033041386845539126706348027259090345093608024585632553764270892422180380096877510487299147731580892255277265960835546100298796864823269325740592127070070771240107279356465096463917468903227207030725427121746573770581884784004179907508027481213743644189511158199818417215961229938158376933540692298102422118773255637736065070705712702183929791017661083614556831240107535860843815607975426539938760513988634823249908757178101739422252089024364776389795604049024348487543968347582752420916693847445078106083212989254690230302028640289860244996205597987471229926238732688108642390414507155626769319329940396395140121305918086758671626873935083082247029439176115322930289468615744103527399998338254482997985284144105689542913375327887987071975984224535834093461833499153425095658352411392555126397785484787565856979669546531742400523000471220628019293835512604262942782911483845864190970657990016939703115347554374909852443021354622648038151987676225021708855803256323201235431352230880682465474792128196835549601247776904421493366073496031018672165684520778395861806184347764112482346196171906949968127495604336870635365128291463202480338554205035331207472538414574059037285110277141084716704819296140532227704571729173805010159681932962894005950950115633184922122399780532529609804586562611271915252677381068569757427907999829821277368094080212831270734097545857892895385271717466795207951440153307243016462700142930580202035535353133149898257010520031774047345298444695512008840242928966787189417334056345800849354597643073897776704342737041592417200949921500133409644342811278167450722474327033909094693870482060386637242151943020686183591487160106517401148571219173979797342741288173704280071972247764281898644352993658457101717400267019077642932788488989717460911563364558236658522804138785617080816888014657099464093467142132072856299585866264169847021977976029810348134469063658352282158673110983817007756966417211271563667105010562381364190896506787328659328613160584823540684413826572192740897419654783441118889187025711753755997917176952631749064163618808131091117269830278347029097349210143512640238549404758599954353169762627766719675032492684002939870563330044138530045441195734368413931847760811600743698917797547945043165980636461682355387924562917451024677948249581136988019444329967314733793205663425081707906387901750711054570651973339062617603412147865960205872427212353258129417395170246299171259802904905259541187862699871881900564122249429845118303776273851514291437746251813791494143935758825975542040922911209291443664463298514308693550176022592096269420764493796672933719869625197187609991660692264621592527364190115045779700288214026651197800443838883565463587619828399346303069329734239342433818488042402877192523127244163555971426505773300160892845519183602676214917849959532722501346611955165314448108950418596600862747932462078608807071599251043475240078937794108053652583372739754382188097573522586586264856504147544349086185166441581382079855043852473295693196684189245074212768547973848686964305534471517039060794323829305653257934494894326586536597880031258729121808967058520641009270199146091572467064033982790545970183688767066556063470806867143395946596593605621770293056308469254953049476212171615247090895734305667514611419771353296512864259916102159944568161250486411159777426462605844548158832751627398447946987022243081288944590820970911364592793090259883761372687819647549129853819933052519910423604906243309488990122888529392740533955069656311756051255411929792360871637947872840852565890262453633176367138682029726305779255088071887830476704610633958594228872039669198301867940797089277092410407552548276623693722323077976711434304082220306413300999769576524163911582187495616100078209825719352399357702872126586703086137726509740591713805965510952859117055141513028502428929527829788307422801220591969025215714040536583873352017734186992157462711717092125897023137539607932674151018572067708345561241624826811921281599237903944929682153821170227923448223291104629584701301616527693595607927655801416984371567522321584756182165051157172860228595886714588248541343832249696326361222121802261029893103085390004250898485792764255360064465732079894870968215080081580839738266831867658561418140338139197284977937393927652701826728905735146149039454285853254012404882883322647026693315676625088729622667122360361106330744878203649598695408043635714129103311184231318161978523571423824101407742364032712740153659886757644142899650491058363315082762631438098579951730201162753809048895114829447359646587377321720281961162387752844939362042631950903400270491358954462988130859476649727283892637937798830491603556790135785976866867806755838788387604204033234890174989705702308627585356783318912656993402926436538873080795178232507247356756275462461147545582076167488018949180197798691589069926258097661605503060657536930829631143676010897326889026842724298100212891003558513124087272884362243408595255674829445428093421918564163092979496886416235504131573923780079445321426831543945555005694753758331461535392905691616225524800294569219232435844967740466650412343611672594825771896807949058717198422244096943612412885798800830035899678303440587441896502550035069355510120754837283159625889527431329903046663079054206176141456598611313647990344738271450435955196694322660805782247844413219053738459526543458616629037743330573654232577238094205240178389629175241557895081285333240831803210613323605468264741670842032030055794969756732532550479279334856303034618166885606062484361474252880986908579481526959128758823613852408686370020847181530730111284400745201167626034911145404802978365875908839061592179246947325925406808983116284832850102794913780295855897078364134941633995498062175070184645381184295860434589757703708750893481448234397865842810821547418095533171561431022689263486749880137542591659729335870361349685759474021704901859097835434780528455680541383530640756340103555681687497438838307972551610043283302035839241499876146870142992957144027573256629500411851412818773963011013731236695497625234618484201045593532365310437329257528228908127773857374467792226989959825293087953331907747497991990119265191967905914180706910804172147095885764040480574515327719832796937088285641269534129885557008961137133213552328963884150646257371645085206030775149755463866993191515407937225628668416602278397385329456307034038098172823225727994119187639222747542934157678652915595169745613912806503307070699616114873641893729555793743796698276600454143684346860252450377075740020045710619264327980117882245992724802125997844282114443932304328508971399182808496401524309193448603855114340379708302638540910283939889846473923682280345165084310774322657293954773696837371272896837820017625062041749608914283866811656089680117086521376050972000584703994055871736282247986660094053221252888822602502611665140999677271323631679376238141560691468104257714308104999365699782682783577032003111641072306527606954317671198379887020742084204694101281389298126401578589174312758836357251670677813416534075123365008364171958261514005694947782957528986131169183981267095710193490765073452619193042838555991763170659664565725422273462013245555254470187910988649456504061561479503948590979135660233155832857025200350819645533653119076404191543226284754915722706217016658852608893609508452018887398478481721044563549362125430875443167575818046503091116012469061680176706969210399599649883686117363453170185872008476514648404865373522980827765163501687356870621915537877549139073161214489449136543653310466802104537032195668651362719908655341362170986548848137618962580247713792459782647696361494034928244441113929218742787049711403700216506391208889545161561389124937591305631525078376822755123108483004946075375148322692376788659327629065571792992024619789161061574085530165725549618603563485668485837366544528535775545279266029685135972743026431770936558526960580593056759505266237923791883887029058986476925130524554577012449170795597356147136329275347260158803338446369473448561475806226379017219946204302140463117602505525016319233224050832279290426916105141996250806346977692124640439928045550161571756501927795039070149885895661866353075526757757783098490747327690373508564441282512131830061221676682469487848026387677465942645904694757337721009278053480939067564860762809859961728182792970086153417543606988401413318465988835466021863780255873181438007650240305270187947432380187388986126665444117463012433268451251187479389627973140366396929120041039114783023302490864543583337980716777215432770487263647746917733638203922001049381774543811554496008324667294445942518409287986246340333318436385662515015807193377199134917989821609141612767921046277826904752356141741879611585728958441528675670625673003374652874684046111794674908638083076697111351270934929347771287842679720337466513622846519563746974896981418561040296553855479564170942533696633151658974622712969007558794966887842046298488674288325064636902742517437326602919199370158334164578634921624198550123173980772398398176172427068782016030480257662055530079071249339865145648812606709687750706683972719278061311806000648874637494417410048071958573162581257208713225621900846937412771661980332355440316167512875076963261025510398618282118750076480061881463485405579371294748032275407809761135313397075326974286295110820772666055593844874095449585537919735012718414387770177684481433216965103090882256936256074621986219951281269355124767956608706705422371063261671398002386495099359199492355110306935750324352613624359138176388600757648069936879953156248590755023506589827262980380573802761451110289496209565194570009057590984965360304612996322562465502099584668368499684029080988079257398300252896387054778107030494407384370644282299554772057900199694838859847537424187084126750868500672464681744617278681184888527463747383598136702992142347411376115109306828189398852922545398383117712294504804046657626028001301537346904461892855850937624683582033421813448745338610555360302841768483092828638895484361654950945021918039581948494675843602896072278026128474091238890444031335513667221596348246566801787910796402026770782932845532458387501668999848895101993784124639844332090597717236961706009903198238064611836089936214747918247830729768520121057901155106311650860900693568694307235894924291030721854593497349500623800193719760535422401647886790065116959350364856807853720921036048788543435979986814248263866529012901098798482972613583093136301239927163589653785595381031030270293275238855006128992269851308594929154268996031003419049516467065509110334615123264068444747860762196106714794640330290607832675861827494101456542298181769233334085001923704344821168110421071024159210565487751773297411570643118110304860645131616720412630309794413949264479984282833766756258149001690487742934928267172919830514139356026553589919348040402762154068417528697503704143071830933551824987370717759466921258875251977981382961629390342236088327610939428582376872933179294665387004006350914677900423665659557893443970894485127028240206710472580566218683022644035790921315281681322952514840489286898739276331171606248707419892619500456812770854261909265055354727985227565945609500782371349504989422814356299656685672806454346497698255727253186680843574294116111526352294192254546110539460301473668780919005181262838958945259940540143824504938484069506223232083987404282242190560484046234324855970034908073691298268960348494426518306686514696707939085719019918623351043054855775926123609413793501746931178037153125616146325953069899225364598097654045254629830990636831049373785138191796566339428202215074276725747409476008664217760664296622461407655800558932851680172211542081811710884486482537429500937846476918190441639978156391622265351459411107672879081832639032597130444139545581363280788294223228165200184265684257859350077290552858592541260759647758212647204876021624365882674909658970769750269677141646933650794795966465592243215375635552442035281323456585783150536310353515427738891320096015593984982628109587977591358523445149362225495331830140236486452312081014618185669337924902757204641536737280072987705328433202016057494426823390877153288299124416921398551696471101393856699185427955418614669557954774450202639125918256513523779237851377320262662180576640203236394191573684880662262422530631141244138947815714267595056662232878091889846077444313925736057371627506079555102006329163114322775001858918960492419516885039842915619024434381314132778797919376864120166788054255126505593750959310967391490106608123848455139479089669014287650785638222520342925750699200880233764971152803250210305689461740503739932524112190905834237221113765069659695137509405342911657473947816163347990392194766851258099644480164126389871613084720587286976775156686922310904554030256654283031977443558608371062894666658502057875135433600996998306850181348385535756903473755875424605597966325787062519777700079831103362424089490149501136262121027946714456332076119009260280107302142527892926585157623531704410440733056395126787772431878929474159599458570807217628355222826416843682339838481998047548055940253494528950328028045726421950949221059508118688519169482485883062615776473180067542575768147758458936641496153277080775245098228890106201131596205542254392086318153242345281844443381815112434702245086882329828066929258516295831199979324103578287384188852306477011597213426601389211374703739570923574313508968742886331331225537222912634273830895195074843285583422688631542841371268170496611098917548650679926115271356816251946584274104872225348336282804162829684397363422826962486507206071549479878485367051684162716451018170354963341937179322299966495534325558894677667514909970145174073880282465685321299674574526067168191000074169817857093369847989729194461641244324120851766242127924737143987042666944141226129543679975193929954248840089313426952388933379616739070304029535843394632600224189807084564165393017610831047112465180770075487083508468686425706038527603248014867950588202969149718915560781730235192433225013272328978060243247004487049351510360261133037324888996475212621946281621205295092309903760828944539970212236926416777498427215343718830672354796673683228615642459938977394813092360347210167347951545495971827862684201580584495710536706745759041773089484767172053956202586914096465444295575386141027322210495759596766002325794326680571550662173096039864029542147175818514020798830116540731721617147061013481670222245003533040324743844978141350656185554026004256942080883192756057883192845539899931216071510937472285981781411171743255737954119015298835123232429548840122120684568291964190688044199329708302099661467677381196880968001779297425597206551873790343526173726629991617122533357757343292649943891444872073631487418234008831816331497829819124900855492046874078143681131995778222437010071201947946710395248636661478288363750434890973981283745626776632873709819853828482794087158571768463681988232560582230754508832224633090889439845834143713101307971459894547096154695951452509005862142342939716726921085645215001770855104926371716150260056570540943575868931424851131938700933145822923485360055982067964421426692932219050695274132225592789956969685261116948172656398178749675972797384739541204215231790002911001121376862179161990888009026226351556192605964934449517384234137784877010136528245473076889756482541402955092132139361492677151229718146153738647049999900883630296326378802592658658985919435249865240902206786614680311164638676857411745833957711655558372487179311092787584939595883200766810670662627012035196803291272371311938576018812212593056809046442477200638460323007994799946406569094444228474436780286674958190408358467644985188989147773716941015685219786965534665082960727011472202036473531759838726089706165607803036709862647853080194388714624379765102122214921842253506027514159243243146177759566351959856919214127164575803128242079303524079829370775814620408855769333997475721325901105157529893839961136894565540579740577078671876907243225183784434362169035216977554409137228041306270395532807328209650035391975830453081784459567353693412765085765259110412126597405884108079212397651756086699118613642827866517762103341479556478739320283959684218992765671527278394189920106897719155049055832932387735227687848874631147565853987326307940751014901391098610830781794386643148201522458474137819590508876922661428398104739305937158068995835086876699584102807824987449728782652727890208589568049346866805980159597484671747305379206638989173075692437111669781764589010985985321584881092692833106824549311766244303079178334367659907736802885227023401379496070766088689031306491390263383553224773636980574155666845379455736450560645317246646290807396378467649951440522385568155711539861490453760860265974049633809934777017928492777569769826252421610406499857484853652820137214350685332815412851355158164800209213515778290801354917940687917762411974760269019092099888746060787415864462547507880302013977085583220568745385715305053117951600307994714531996003146725720813591610683154415279305417270155236577757977353461815721503351842248002383903023855338015155177046185502601123800707096687304093972302383884290138898001549005220142694975817403512177040457821755582259181494305310725582625145651825519258004276718158578226074362548146418585910469466094482827901392108507128302672414689338480751572763790144047266025008234210746967800123796040843196366433541888354409054634619022556232730511199475072542709913497758888380618771850162125936334911316826977927024675776571769492195712806240360319502020822292420122266892506804275571973903808020435646558445113589160900230480628792053495533698858164002797227163866591358742264060174489143495012091547202391958855722095087415335468267092650854413846346367733842774816603855382506731548113746094018709775743664423227726094069786915536871162369364680716478090452879962664206479876814804644060403055201644219918435100476699209022974591346587729912279038364454681048341107439482173132581806162010416305713888384190997081114259417613192407409377989263235264776592280606911242147066686901061693924852642854232962581390947788029229330161471578724389088720415833239857387961046361555145068744641432340541480651616490777199838400092836864778076000648158550240433912813459612795565105817989566470443075316350018280991344384201201148212509696769674147915182415890782814799484523411117498150350675739797345294178060132480366406250868745793104815100524447199334553841690123350033446631973347137065072210072909306507986582443770327353158507025768671707985911887929707099073596439389502305033186346050760738446928068668580005145343235449968298447038189763545118454296038190380389185025183622989485055495241350728683985350297633834729154062074433719430896443328153879237073541528163363348476595968647884708053454996665951539087686434065538638406341621456731552791735023436243441121148090376829195257234170585875189790790602566100684419148914755206232610141565067430044305429131615908649468766920004238660272410706309433804040739704882920459606262905614996333297880561355229987720907865803346489319408181840481761383769924277779266228882169086775763305153429119865199214520283868902358910277694561318980720268472274376282317432289233639786287284436950433644228379599168767745060016030795312427518100328484472670338851895354916872554253906125084844361014488324591573815848020810538398620716212464984993077821273944059462910423343411961397246171346951100808310154118831426520025232136533984486412486173334303678677893304131838562473463896274097268141916709938368664503039376708101895203202753893030959992612317929119399917618509877210528677292512763315901638439696691555323837710178407201705084619233618607622188581568263767393418467470666955253868920851044767065881067578136709393460617300692183721515312567513587865040907535770422545910433417395724509073173096977552287822426491172102391311135902388872234167909968198700417252435126501904561539789969607570408803950546544233797826379109216273604673172363295087586788957333621609764576747649736056112377981652307891176297404659714690777160788102141134975446701691264461761744206212786138440344041265340112599366902780811022904680362485524961541548446732864924707964317603893143131806744180095941921614572072933127203889586988706591005770814633663072480642487412616073659300286677312815258956383029574626170967716843226760570288085343129697006177944003833648836982307409539961051900940639336963665742217636087549057601273613106073904049899795727553451996865493148549413438606318896231745289959076227731664224684545364230383420871804205287739348377229186297059300578904875005169072455816234265152762016677363288436115623118075261022067049263553931904248361906342586980106499011853281218091715112485890973027639053219543212781070603947216314549468047143057769039609185643233779831350755325444469489838298895331191252387797275329877296136741956366134928187958250012341992818802237543828067113982773627742599308717812655478609523438306276649076534725616551407832906728135764772918396073216643220877983446125796250005342169372006080613513326507774799839771972570431642473203429422119424809754323079839321907962748589535464338491306906921850935407367815056134525292864046501573476959652940831189272193303420111058941090709777828175071235984212721687727474796275716735127310335659456205971992093574028205104140891207075410848917206486074564153870506827758169289864415419098947257920774067186764118799909585466093704458232560966378260101592023092597551821424249560308862518757141849961056322724325138251605769448170989766744455622596832888767189973731126089403688236188019106145289985723853941899713211488793125252753549145992193344394401891882071095170727871730173594937375976861797016775200362120514631685822063859160025507879603054234079830614196339753452419369241598753514102482706910309882870358156175909870647918120127064984020081212700951881278331743905759089846849722559925069938878755296691110190717937647586802366762158517004181412779997242253840193803315039535802622815126827095632971165816834292215676865370252077186519162271895164866718332486283791641155908055203572574307376551272153000757106639899037567917581116672997531090560161989193771323085092082535032803399819018322829164759447526490897272009627242193587711039760339298060396540459694295903310151695540162653604411514655585700754449636751570882313897168689417573556704750977779572012125664118927911120254360605429709785756509163589389380172074334249629230507741411839708091711769594533457913260833336983188645687980678939957575683223382165072904690224218824329725450146340918354316676436983751732585397912576401036856867407751242985788850111413199343006463630990674349060355847171199842696118183005332622453564543054849604210392402994792859466632763449917804302815212381582659059215247359816064519387500407202798831117386333583819095095226552135117280798285639820869726580269421514523240650997680647266714542911809935759282762158417647107970757458768735294537764662270824881212968881475157774435172465315972608453580960972913881423168641827149438488762562911180275012190421639783397466873498913579353475443710069045207321356980375039379248149829138922915568752698736031309732171927019561088014019686446331842498495539725830060766549254717752331796447988324165544606893593371079218306196482410834422188436174563007378018297665755208261732318851892008227894226116465635723496938527350882135855721481905093624735934160521289911824318663812102448851524248139435808131127042136810124878996101623563938610605432098838584314378803373130514091134574047966053660143320136891331140986825350938360382269176236463037818727103298869418271466548225283676845119265809153154866566718266460817630408760995739670782977635842257114058424757361641508368896127731679328195161456673919658889648751740423541554293649010576983775322163016451239977125730132329217795393051729620270783817079603662818546163092096410047155803425689351231734435323933061206227969005975453263058581177296567507444586641656606494811091889526042065767951268198969611513888555267181808026651232780097671896858990560657458115164219436442683577239221869143999475686262510651511712327248514233776522248919706438190366109998605890150066402821901568064891456482690427254575586347358714601113178625757708518165288708242554738646604032297586314655791459211970556967112370307405810908201365621602243797489795639720052598361879104182617713866788561809615996718943790516767331190398471389427157132623477163016230607826243508939621882924063424798027675979623947525140098731510715366577596950601654054243533475514965831655048303703852383477662649587433104439533846967278752981643527439333525743370085745399731236949821377436048172301343931319460451633561973216962996121506913925012862341593131452470985176229818387662221369846266872802021603410014302533954559666864035452014566463605563239115656658834373036867917660170287801983505124556782827910543851333301035880118432439492555493901461580724272400838548975212660549477904241075712294040385992089822112848546457367542505392819951798859437542784607499638233795840669002680786431974558979305000756736985622801686825696585057021065074250112126302447201414574357538433638908341569163019657584144052721443180606460488474768240786896215211895100445122873822803577402004232350226883526937130071999376914451690464756325068693566174451273380579522499496534090862599520592681853834013191871907297513809129274792828742954552983926792960959040821450140040427493141741631772293973777788515868688784482051009004243652833479957782282732878879668061229264294142901026615421002536258589193795130468762072409134085526273077815113967890371866870137498494870586108864052296844111558702897596578969774090098822947970957777466812572646582079928899640931440321915188231144794852672695023258300250415715513379973921350950698031876246829620194800348487740667127868742895150996179592144905858758279639898459387286936958924742981459760972864861317946867258982890954993661567689136995754304535557941374541564434819277624258963293072493977969502157847961823106834444352164284634562962870758469882037237635780947451172889634934143200427932133856247180618049483914157686172765338590462596689972316705161631357046598802323362027922472576995880371262026326914340742247954393622339380852862721260081931484070673100621477533474486459843147826591233946412866809339458457644867722947915634567256728544517790201148255698403882602522713370453847923509913669831319722803410438445063134983081078248971386631258778818906064017329554994857686184791674737873573220597067569069304955168725834033055528159888277328352372056314759655404419595668210274416992905840333233992236650796567839420791627346824300332072091791380335715094834836049925322560523062794548199767155994930651895866362199892012019997479139842732440944809380890458290977546466245055793467453837325703782228326555616646716679706195160224737203875829535840898921085934194087135483444025883030343506260882919323849955983913065378531272444906885398687251746401551095199437899835945945609659357123060143741889296782854108481451862912990216768915953424862792956329790431739507057696811358050786118813381498273637179132597402389244254897491707294709244047764016208965287545483537706370548746894006189694373912910012416710793088378357641497808639352758826671519058800525981615046285157100577396345810558193422707100517900226191510904766178613523557470807982328934580114348731812105060631236812688443736996691406003727732556218495258640684188422897302036164877378597158774061884942439373242022768840757098048455089453482244068592924358041397524585428598963098975238383390573194621559418430830017105052521315200662359332730926972412304085826665331337097081284232126630377654704779785568474468030553215868040580449003259794647723479553162421548728469828590537578554682319834612423401383921202476444356902369944999662917801372728354054965314491162620108642101109854397133953702895990341088914969791571556627274623531456602494252808388466228607730455986250280838889161647766633580330811552371334070888958674683585017673302446573619671099803384264143538989483872492478267527232151118019932193979357508346210538897635640451199097318737221490187278059152713820481547690396404778554207261582540487966041711938021895128499808698902657630562485369756317865992281511442891780949934559076983360357646945794509514412981551274591192001203847417061147893957600324893444032718066761872472410731619364825925581435712103090673856165731216510322651760366315368437242960085084505578831876578187459240545763497416577026762086621096004677544960444577518689767428534371263983381437966580264498041157519825474846936585318903108369629118988182418401421447572389939473864175891362592166169245140678091938917406107278534510582525960861316217427287575474805542687688727101683376337385464708015529756086341156956428809554126725376951380863784480035286888976353454925978196710192015846932987227597655589438593144010493861705499583550023802940798990112556086806157520818010405169930142151942425651338151313046873707536677084961871704373783594304357601378543299414738791073812555197595291478812111338868844832798306336616615500066746456866501908680417460215981837016345294551886042600360989171417581097976909922056113063010268148467675623121859951868158969865903106349241894392702828430113809434842626937705432032305267179527172529039605542326689719779093401794027291194064777840377835891348866206358428794134074932776201625880565500287725257847234711631066081514467998878783616497903784128546077031569656617174851481299518860730299875350087737841194544631836591342511097344150312987501125866173461872594642186593526466302834461596407054708664786521205273022026548809364399752363932321387557283731960773433573070361714632253005352361803000192181630745987268916680192141702895072893584384327099400563949761903381140294695590892784312329999130757127984487205820538275370354450200080862053276274181424883244619941119522390993052006328476523184669720605872519500296379617695379405178921185897486790723612408948906531321400143604906385202894288120107721444602087291205702014258274779433121847166332191822483281789932919774679264421955519075837619513931344829115338995927000849911623567967448899864250094094832404587158956719792091264050345788626127002251384199613358929377989806492365368883260459609905757885406067939968107210982639113463671932879030848182137345692584480765925938594430709534390613619892624708011127827277130801035100560868466433177278307792626143185524704326251214855173904304189094225790875354136516446599521467376087972876451294110662328137800630863838674774076587900699118304585253069446571481341711921865391943559522536704920867502175554718222619794055153799382316174460412510384684743510942532413878540114530229464891312965908058960596919843572418947243824503007543413281519245905236702194184047650894768496207112589052957997222283579197074206168105765281407207001024248971561267722397943741010054999923144541945447851563000310608247005151821732716172225102909707687072492011746960635591230406935810148921237001924963758882301470548271016770349547096936443572075223457291023091880047428305691139730385017165966769020585478640092743475124448704045979958665962347866425011635187688671342005551825358408680274545535191080720955945398845126262130035832726551225743446797984295497030699899502205197123042045807758966846226392485568860525500571445882795811722604357181784069202857116315785830414180903171540009275468615977181411111341177476864821319869118948223137381825031465333741417574319606436578172827289623470163286264142851736968299764624433327998245990513546252579018420284773091325759200259530391327880660028559224290961363683276789400115557235340499005382859771923436965759026306840011775384998022481710669378708983015950534419502492941366469619467964953756416631959037214515942234671261346640086518109629351914471633958070222422682939799395095323815840560888810063404521035264654732626771828245396484695215651413851245498193171981319671978316884307872563451219293954797496560301851174762543163435582005131143082420450877606963317080295767527705866182222308018305326649602113306820781916674863191719007357586701444993689873957010687961032722904379597581150161635792029094270930251185479020763042671409645913378238126638716639230929686212923429365888170547061275700268993465163022821873465364079785243889769318109392647467200896154879945339215617154781791707117784348690756942877923783695173795414749069236489776930287645105645475070403941913341390162961119025796555497990299257699667118489383371418714255253104916274267190617768240412106934122797929267226660402117581371858789758943714526098554201629969431624305055041587576426888108210869901528082624114441538812413816382748650597268486424172332524702283072310760083891626017804419844687016218098629119615599556323559604186745984347291063402876170803536213201916572764500971548988467646373971407068125587343150048181760270100314872758091913487624801640954510541441859606204815524489997963160580104394166302881054713380912074668890643917317375427070078251890571201724769368705376977743437460457689318986742533693804202584998466212798861442693082578935555221828849563848622132875780216582337936290968765162668544732727925961253337692898334182370134819868399465375112288492612045867575810273052802840957748851543068683068027810501799208183982687723090905346194756335232960012638147752531404421976157516546583217501289833356788269533022595976169896678585962764571969797682758972279935193853970800109795942677957632120577545872832196101428167918337603850153485774526359179775285984646876786946116739309608518723750374932996539506613945170199617875647839144831583537426202871288545654209116591260908677036809407827177004807557046549265042410199116292103671533883175834858017975443845371945278571274496253550671737741907077963062099756039913430096867436940838448022583667595033713883868853354167588781981113083311598062443939901264550918246420956906214736821327066591292145232779449442247240102145172606194849782854540597752431927250022429182871006126944762847332525322882206160985330676936558202390400727635274416815457031053133186331023209364719878663844273382177333763086489917523610425799370305322929752282493229107588331774369518404067641026110521303388896961259101381236460108310523526425855527104174137326098096610306920303156152213006443303335775488328514242875510003517558392449533574098898150596191389759222173420979584634173632292582643860452237496100075940073238363937899785481991594167320174410700269362804019728725169145138681569536667188440335031655665080033149546480292753289249551395322195408802667230205958000278335240281540269082410953035872789552107321564947992010714535610971420742053295817339319994609582355575599848740238415897525494427962159121858770631946931757639892132821140242097847277296280961284581021654923824198385665804853237144079928995522225308948250347185748903408853376948164127043348017023644845656158594136782475751287544835973220554376818062078847528049878943884914983087620254192248767233304936592699274302866245611425643088040990115622932540778572769007205896059338855796666256426360331888641368395482734597375448821942096086350227746051451319903009724576735658118881789900161354786684109237753089870065027240342474293965170300146551749420950186829148651699282662701240658137726569396724075389518848821334303353734834808513474044961228793675487564663220290775768786953974588634346983865750529185414166129944732144419194788792108586026041617003741042175220946244025044912428770680694681799764840174397764507485075869604945677189239548984506964556744729545387351799625187656393868759795833032840186421258194195830716987413936429425527018710973126468408844097684763065498790151181748791098444210554950303964971384236261027341232099216110664956348963042497063445813196948883795850571245552813941329663519554607682260286486659026055977430362841631760596392068605597153709967110805422056371918459166938953898226439091082334650953244077474802844394631478855638757433647867155915249886364042910657210441810672983918318248027142496415472378791893706673303084105258663478066842523901359892262777619117052216672001535616624697602276954707907109119490460395501541752769096970322009079066592529479418364455998086852282885685947367653710538676265883743538399015759836663159524798571511772079768530689656676793826581218244264668609828198233161396692852968213502671650989845886939694022859950946893447086148746400606845728094713643433626732615501302106422805088817368394386902525266300346182530162180489945162517452095173624053654525420698636196397307978641777651033688897472133225430940312672131860539014520079787437767110678879478044277248302132824470979268422799063718094125190849460185134469949503509918147164967938636422608833693268100346892200029997489610628802804402244888769840479095963278987615180097578879013344817268762159775022184555803054447293269472540736293577594323799302397815804483565904259124663399764012147546413100511242760036999333947074378018278969743801707087808931589278711601683199831681126793079218866426849588223771926216296880424020490086680479189619091704256995668935579503887447023033332957878674151224462457862844714474700403693603731883011193673673329287870147511991094496708020067306363818119723789446418458002909355337118808129572663113634880568620179121419147703228808973083585366320339033156568996983228070857231740477521891157138203626713378336056542012489981743809924996093727572053129461471120671263550944953816367105963617262519246858327733042078013015520999424686595139361976741046095231028410058988427303193913533039495269013362366494483494646301132686183690890657688168631258357814797918388806546804557440437624928023395011110644855286160713686798986832797180901828485583016549620204312018769487608280706795925185611991934496579967642798865797249901238962014798061906789640530913354643138228774975672472125488520948652243453765271247458280926067976819693344698444816479677338971147240258865966377017911523817968186975598622114924649311260587415243589902938150645619555752996254693830798071499594783726927684636518935662844989669505043017348576580871008304773109849198537325758788922342370358728671313977725036453822403674307765421932476584314788217289374629001136879352376030045681495045974741937061431392101057657931086420712381605332813669439227331607555336952223633034404875256821782181758575500548422869308676967910805180684311666028709487321700546708261401263493136312626902630043309760393377817728779610415550333605750231830363841573900296848844991215531636677847888876957124492703540133019975541458509843471467116830923551195240767778780968052681606759375752703791237184140587514593376006019444543425952057534725312437364150224495049510403744505634530067990296154348987188012291766997156656481751208812845912593184791089254357626653777555399508519020579014863577437036588111623561504972977342207996419444331726761444056527852171063890953738976440967211462138849757255921319570209313337277811742544017973987115885645541234887164562441598105715777319619058760076657949138137681658946832648402305850476427369759097182457208999769378088585592958331939498399503493508806925081311747198630917066384135114128768459127447961688068953218518221380216938922551122170067069713547540739650890901338418921271650167471245890074656672553314301043514687057672656013672223407508969563617141331346917562331031313715669685794491302347032499030956015497032340505512027783485513917606780150328289653611190404662687392404444846563756750443767972674251070771473192067224372272928535164764535851328886520707567725978691784262754035149553776932234385833082259944260766255360389405670106389470037921255031826193043966236065775782477213924201761504610518709194274369837480822724822902754415671105296318935143129612315574178500314954691111725299291069025734397699633354082525790981363522824184090776243964017807750931643378894107865070585584590989716400567191026514953358325254780618061763777200874203343804723177632926194714526874573470346612831225712218396147127703495752447671232488983027825672955644777667853288538907331336055676994737328087079672508557096257965129350234791971659967314157641672657513741439156882948068592669526790954958761807463936734368604351561212993287260505447186000244106959309742802754535288928901022997602123860348697712671670952354420174503486600232303578874074977585588132719639060659478823276585309293034426923895572945731361370159867158771137473241729576780304381559819549837176652938160506061244571227403280983227839730473327540227891910974056102403145138562771927595388208523671692750114944146032572921866111734047178006047224382059907881739961726214494079486798933442005038595319107459599219059419819762838549482134845591545398542531578610660081645822551191110691179633593256195778016259701699106685031837151652678414870639568556048599576385098457707903783011390890030064838110757757984414123857900877694194576593964912877249423210708366800310633056902619659043358386588888406095952961638723095482724350164707181323141034812633157840747445739880228544770494144584610617451321102080234256962622871864141220294109856521153476902113834286057831865689776110457257553074686565444468361984895027544196067270220167656191316334414518503922584092825804145631188980548591777487544989571225270593732438657940728108953114510731048406249365466638152389599410906984237592243384722603560079969663107970460982718443422401155669197351849684422002965232423390532587461944730443914216609958541432784174412931713991159416694878013595922302783466508804738417368379981474992031076401040017280484910573452526216145654619076951880799301035781997053552746217112405632662998828138094363112861387576738601147145018552902581936209539576768790084374944559731126743523073051432639077001392708462221709467966488626603253537617942657100411043017610074261746112385808189313896492179809898052892148685105349013170893483594549025872336151868009698361577651360161336482823060284958694793603009100570381136388458026708533123032656923211021485116422617360794298994948734849587157836079814847929469023089087247795545576907029291286589186129884222746792357301795934518390030695309760597142901240182601357296629699679054785388460364126171297999342937678205553902254475145046170453785805455185660516481699723778566269657446137037258165135536378533106560509338646253547779428167588578337300699503635056250570824913759080441119274927781334769669380992258611742445625863562572546621512602178459729741218253589136592293084652636896434231483292204414864124847035577437615600389172725288023844564180339333642793948296579443708613731671069840378462246369405988311380006307558760359864463407730878891809597249201878966146986745346126660098113681271771373349802833210822803630509532312919702683344712322864740108836526472166942515776018261900864786440176687319363797548355635602500065717872069329589367599706754880873033843925284932748718206256858688703986520929080383347615079572928996699539517975903933456856981056138735402197681316719979794030919446414823887645905279272213627054765682890447266725666502020304715404698986859073266372614217614514485995522072819827995960509009840831391469763328717804294453246296056395765829832654152497970907792724834144251114349258199303558828652829371890546596024333576507542396260316059756211675717074825382340875652624664564950524350398750120386637047474187231761364358561095858047662034640687669887560612346973062952669272382455972527203674761932117133776648796166072987487715597742196227141023869396059306711569943642234979006454720278868911494021354903384109902892862288185777770790076115570079179296300012332912778815609823123270221813798716915197394529561418185264354650844595738322619988519918832231145183161196034864681685103369130193098122940629745695390477400095823122031375344434604570772596949363413304115302961614777035924754184194595227242289220526598329627531066645582579503193152243508020099641395322774370072908099344550943641642934162757846939761599430117039786003159707589449675717583501544623881229717010566720752031433975009291032599103086116103405518278925838910895420193281251804208602755257976982896751765773380406019412979677589907285051177186636017215168914112876080174940199791157217774956334554646906285838493321947404489222405641466992554200766121810534235338183253645903203336914640350226224498864199088869418478560943926588750748788439497481091519128689407691493283113667307529331836550578271230294213087410254084718483965208251679697491094590659371182065051831827520046320299397524678614033655110443809969468679938139764213761535303717445434109280247486049890660630054821486196833006368210801573662363155924698509474193569200067084464293146758637804360905462893175325571963526208932654025195561941673931585318505358916714208727112481588775137158941262861375708553171904581896601441351511138262519714634973092032803863987156981284165177834020025056422235781029002805726603108579758330377989149993181867098912020030826849913131265700309617380969428356022858377726669490517568966757627217096096974609591248999799907488950795687373428678586973248793079259739179053509191209498275359562707672300621232866668368194534713111969697671541445181828508647080842546337996366449605264881745356220225973791756664750103665796052905477773101248461408267172539444129983174494038184261563215973856402261143691074650741742040263998826521033815523566110043031407172600523825001343280185492483249467738744649889973233372064672225204294614591159098671873711976053631673844420248929012105487693738578941609039101018150110680436911387863671477194100579095830386104177156797410691091715818929985600340620675603255439659707790348518221173014353891118682892176517615465428646404061291881837408254918361197260370860906436605052136639874856917835839777364491424599456441102766656667639551797049906604981099168734592727980932625820329240733274941717447441624021196593340506193248076403960136462373001172006220469110503313188157988161294953149770577852767980482214931624020686194560202770485931400671578563153597716511480913555485177096078912475934801869214346158446538387146426104884520725679348979434976618135234068465918341658677707183330201197101712023891484707154451250755277697022209361719929135873091943396122511895151668427659836279969440481851405758999286118665149252827127829104675697957872708290479067833859631458935189255475128121403876529287800095745395858751055324681054812751614329418613548361879550948702747820450821328843432744635736498469294155095445781767992869046282209269094214131745765677973860703873815530842492204458259066491874158038396768831148084208521235825073974992371529525789924905835133116481473458777923434672110384320394963233403115393581572212454167013253937696294713450085926135921842733276251861207580385265150077456177149718314040322143493167504087672495098633266200909016185364559722924766701678284675289571302673014429798091560890457495327935689971299093572949477379375383381415897305022077982845070965592566942810148713765658682229975239957170794572741712839776739650821231401643724798551672967498826154333548389337540759355195513302533000095569495509504322783603720295145866079372646777938550749123677894975263552888629273045966661107060749910811041515984491635643449043224009830931327568016707805948410995433490384025938666368988859399608127889898612643631563990134384300327438920889336994216889168213717465471109552502281864828416496947300746050339589023578455475438885848975013392382316727352051327363733456657915468820379652905105085948885201430217733356053380805568248749765923671669735891322805542683941521136665135778940398143546973612616699464517944784369243483774292514361293005771712185342047926084122663034984127506020374286879040755950802264889568111865921420806505226584210434441191731134959279777678681397042050305155247208355704803500886113890490476813440613807676649156682353941140190408822016580788583553868366657212058133262290541111585765166033904722731006824036185699375951612657874596255181061603488110476289818024984294917068973977696853261864477463271582972973086813315780403216289857065833394183754047997871641174558355964150862300238231904587765089171724250486847966387221423804174810607765311654161594576114759391808134481556881205301437881965462403190898680992969882008409576581523960754815082722524284579050230884786548591447053500991265537495031224079115107369408784527707319652591289566780514664900052677263040028188813656864953565133195176625966727708695457447478274703036959913159801336013851572434325541123300115866716190516222429547246790192346310444275896346593181457567207841508593009042595469455519080238807321446696486531405255648848015689183387605493658043752455940203374643953223830472878796107599919282818781153941684107288202585823165235787929414448439352774768189824642599786247434552538214573185043794629332247463020543430824297393717778372141590985264291459841306957330628357071792671273583512461730217660065160661982000773436473139569874831457116589237803941693666910607950314757228118729612210232132084397474731206084951517083761702139529274059368502483490706971477566574537396529823454787924987087887050998831031936592004025190474471484013467146313634046516987388925933136733432911509324520476921089099318072389980229549595887101836622795528754930063965681164197378725172539349354928677200481606874612727994916086064116080358545966603838914538891890580064743133348395849013527945753587068761993472974618794158196587739629955978432724559276698848465172792781415675989486470010281122903370438309808750406525781232014076682130219325353322799023364527481205977496593168836612304973144721273846661266297876111699694983610692683935479659804234001854458843818890284507168414358928867445689332210468809014300120931413223373532758455731067526513184473534128772934377897452627422330392613110290450835722792802030126484212526171189683123045172038764097655368974305337813329007544094881586340124586691072466882598523861142880466234746388478367544994173337712214672230512820514624189395968167238555283752561679389750491732548107058709733795679590568689328320631941162922451970414509797154236443230089145758675714884641475453678320609826593448004424472779230156605796606754497221243526731074743648573697838405420699185415641822752564497080382199066459399474307850062309497421186692578588287386536455645882134938005029823953269705400271758184320328986856149426733560017847490331426307546980878281480061486273309560473958818979158248719137958757352571008622392884508236727416741842635727360954664229963398401091653254008793551504748001344403894852535798842342999456696677383482202038323032085343194474013073987929977125749629928751220342847341530601836257530704712065740204728418091372662942889345188211211004928843540828681854105707860505672652270005386709808944404637102104109238829712072068441026547488965264699218024182930608918374301777774046255544674665188468899971344847615774972897822447479353616930253523788998805637691556584186749777540651306426083803706653937874487967814886176834870132970325154039673383024442501293418896063823647739019591896414357587580856764061570206713884848898453114413519447331777964760531001022981213560370518892530126647930358076914953669724719400880023345764998735886077743945801200262685915957407313662749441239251835831738419306745511805117892561750945016862001836917439289236145215458223413697231860300626590625267100995108577419558134140740754558064786190230076349763777511063577642615103748164410356778869843714211002884176682636632545299921554903881604872994218053196679883168546402357635689103499490651277215063075726537701598610933813011985265763500380977686782936300013438393898890983052019259321512460364393760570829531955762336745660331836717294918792765630283533659458276048662198253189086023635872887597696339135449516165182270857291505705649041242819299058879251198825185421932349733686857469751373186008406670174373633727166427636273528512803835959636085229028205038739932822129884684873495830544944924720528034970001123054993986541687595713778153138444444279568778606618794658125182202817212421890834853966341782274877400974615989181139003051937216250762657151191511853042517572821496908474791097394115795395008784286194467159041202076278926795171013959854718021695108483363757483996499541744381650680683270035454415111257557798465222581444966818723611282478944813655817505162775256020277480309199871816251575669096410008111944832595265653210715719886413472074874526513109607549301801750497561860682372291600003676090649562807314430623609533049557527774311197772768497694030119154321834178455200630397445025959757292107251574902254602957326815022034883613386693529295588449002015281225574120509378474253575644911950237446907873638295575432067345985983887524343268093061966496472031192562683132937639613709188681259377621308479508276767943498750525604285681100492555353664605624364950008704023360168757379320782287385954747381747425105601629838277636911026037336440196028737914347788748096998924657134792803688788141588657675743492111291707374238766230651588551327741656088962967174888910222244186552063406269282510264651707525753913806702709374011417941490009471314920000648860418850678486803116086678860146182204728096730667103571406399441086288644407250748377824566302003937780734343538815191736599665102638865198939612169901674837190733326674695081883733441944201176018042167172788732810908439703028355655265657217083088626357481235580537018195980202441523347270240667224868852639483848342453035047931642082798472115567904374861854934321816650041368191826623186586944315665647634846415466027527517414753072028322621563787528960581487845410971920588318648797426946513183593143666066004378747164186496674405351951101586086455202148056729965931399458567356763350808730709458591280773958304300236591376500817215249795533458920273522644049246176893765937831915718151388722556828722367337131414158958024972877217399818038039049356150606806947348377756954298947841213208761263429607663543722730314844295337937712648587074739974010691383423897292768585216049972903392954231153290386807171714973620411909769371715754313227290915321585830314652014647590697750188544858389823971284737308823350465255438542977471953073480156617779462886019872238516931641428097613773852508569840034590968156355642369441068705256468025651679173058353874375497488413599950510195070070760139282589191608359657371045346826580207559245713429494219198526684130029352134651168343215863143819447282198811650701384634716429642755686623646046198540500284040074870724512840175681392918355293690617530446095898146125901711301816236870148723623143350760998264534604595629441358881836061268036229744472539756297007788919125462781620592450057931396797167245139058601382999767378315261779740777240498012295735626240136305796599005920492625203205166125836129732099875344463296834251670768763302525835227335802042055863495100290033454632188694218918760192614297537029562822847901190722462653819752970647880254573472540487200537890143224552151044277965675957102413985544473405991723826867002104123425743397566797853938539809474356541866372494491594632642373090600832226539220964527421143283152710739102313875416285409039300254156645225125134759027929292480383420741405726100149066210513168552026985681717151352064616283401122774753648943319379284470859966731879031306982583129310482815834516942209154507355891580617653304360551986289352255080151519495496040331535757649840252524153402948918518551865592325365076500785793148055691726654205052651342994862228974068007351091819420462840623357713504183721575536351238418578009939544331614102590159325610878599821636829977737698838048649592811508296412955362513934391914331300144797833001765624593668917769726152604210549274091156134224836300643585972234563530009125625794207557047519944203327838701848737975081056138223888535989917249705663889006064034931186419322461067937929070730219126856747291919961056564827734738613566171984020908683454496584022822793748649741624360994061285435142126882585529015303621451616801263913971832051669914745949914402492873943744627919614809004322620121844324038902489192834868785070087858137873142244620473571929887985332048840289124121056332039446387619835978301820366815995735033367104762558912796591608481021687824015233792173960494117004778274945552455269609338477389094442496361667134888415151250272165359067710933964135720567454665767652828167300129482494258932093321674277165933774452667254053778547501731000817996237697077326630835656945941358107768440133667538061819555626292354648215124249701952022726163713417764455765366871964887219013989326032411592631555848497688983481750514479863080963330868644713036592038957628011248169305573984249421297550412754724186637015576070376556657804276285835855169552057699793394461021810900355642672641719080411680141984911213691218341968028133915475759187617462126041893669095923867305744308657887589549886659860037738163410142410552032256463990782338184446446460815780628060425995289870057474342274212234427688617168521856433323155339890444224009117973764216693883129699161919898121703166114730272091653718986088006534477143869154611877178598008442062715026631848367605717970565823901112778169575665582765011244387144003958842906364833704931498029064973274580615349623749575219855758519785904774581954005569702373784105104470037127610306116545178844079275156123291884943474607909568414538236732843110606392952251168290246953377356961618999774738931598524211794136843352827070250355668369468866803365766483456193034566186360238023928513083231226715828437635768395125952162134384508235057494182725858888039017960358635551275461712628033812582230077852774593609992037615068656021124922162025092561336131646346488512685366389236225217259188007009317820373530972375206990475409639210240124308470085587447711103874840849038596758292448988426554025712004617357514542141056903191001394724449784616563958173296472807396801713153350977815455205607766122546298087045938487424270190476971729722702218389988044004671996737450586426439842249745374325127780080132304265406280848706760151418293444192352072375531580727344595268227789236391553437137767931589451766604109958304963684834279755865477842307025582181184272604099254776782959290207325308113401794349984846581520730013569692052716311783777274827249750633878554637479478047989851749268566470530780980921068486298508665798886199658135663269136877537693505647402380562489679856336734831246368476303203777801863033716019428774101828732222661614992877899618105878558922679851303841054918498282747971314634046548743373473562064801522614954942524070637777995490402607471840300003415327673665341090675806891969669617176707155932188988966419734506642109502119347845786703414628318898417307209755897979033599622051599297443681349447901373862932947548918109132751041423424111152132821125669954608026713665897311348990422638169315379224995668982708017289352997442905564602312720508648187890161092359439202729664737494885200448746193227591009916112631696793886895307760544620770586058577351147336034366820033893788066552857125572699336719382934616723809094211556480674399839791061799564395987687249399469784695938232050347103056852027433759096211155144284665417271135686576424829555794271221892342672614342722086833552915482797980600084660973608028332708554923283947051084598446706182225291732247903320378450556300041090008299666344193282737292444354762792952629050024114931954820374277273724747802517077655966358858438238087375011823399995335901599566397075274294728192448981216339653984307160027301468529027093973738051298908416886377570194061632760205419155331916670251826773835502331535095477459744482674827481209076322442003440297199319962318701814326731917249760897672127928381021219712345963689230514804896369981710900763651809176354061327050764702083428116999531931332482980489854417800557017470414259896591865123883956892894005148947925538981480180591618935495910586603641858349066080056599304663660684902129230910076864340675973293826355527829094304663468242838206912527119615670983927636300118066993022100263529563841528928751076921606929432206350310442531057022825091416197789903528432907018125462412407313560896555247456424966101962256719198588600028603235422645300710329149616060723533148701453545445114325631723241615471764481032100533127397835002784378318235627382924540401848006396964378973971865909245218278831112007156680417833397832482398661964447339217907394353494214305420452035389702121272819981474483515749139846358581900091464532907954613513086340682671451220706830738086609444541538798861281261584823173876604882519044065953310218269911181138908718072893766173095976597975139337306010981163454424231387462061979547914676818356797457321880046951908865109448794778716608689690807940516094102692411030838778737138204975003084518933899094958608537203702197715266066101434256815955168237803317309643139076371355568465084956993270127719172608025108866261562519148089124349594081286316418933468828064596322338730279694899118599621044194756954104125874099214746535109537406709302511460309803338085500459989899551749348293994570156427425087540099529832108899910460203338337968688323873637932033425002339529079080919257048823915182115173671012248775648269243388322703287833854096504262495963990448771317895763071887900546323356701654615448192027361417034524597494900359114619964017592896640207534971200376609640079942991118492427671232982377256209357778527239831000014027100822614381933099331131033873507206900042467246282454082239152263890143662114557932611569152855815662156968830721470364055425809751436567608855795453913865529808979383506163696962950274425221937050981691012804074361418452856320555802114424408467393584801307839359886441074828783814259944536626859477649713006257875028761830407864226244644596381033393282833714667008456500456012831675408588506104810472018272999762211244996573493240885630576443808273461506011616193047019284026847422444116446243404312853000034825460173470097876747751992959548869802538831660655967996540450657101987166405128168360690585934024525232083785425828367722267594281730345512638851409986104939447128671239737175476953079775554920377339759600555676095892183244158328138301205661829326464153654273634192208799086954067623128214768311626204468172188624631474568188047249614734675183720369049397134738440560293056679584338053857285231015391908340929781716883260405997208884182286284318144476438359254717348824536030486703853680363681500751559932209066755628513870791119473732998481080095662357376144338964386422521198870097094363046374682715229770801851015404029856848707887700205977444125811234283974809493432435329411159707869051982108314133143606646692518028143535532633132100761622741904779301662330119142708142648947243774987149089337707373217859576843026388545402077179971451512020137161696386682116189370924980119309347010101658588334671471490363865529610979052849449937796668522566054970374818557803255571940793084835441634367419481819588958188562491733616657702578978280835719192957845508134226945331137945515699815106814791941504668485027083306049484474391374266765391252206649577697380235933767105243678270072448203511103416875445777036501979671168437360847315859411261991497785334964667590243479302537954941672557835729413773602837090222356120881555545628955601012606263426343740055730770244589682487156843255002046259641178314633038472492998276905749847229287101582209259585362461586148022072476026849310500123506011583694957121738129577347437816266156925476116489137514151438134961296784111502140990725459557168558546844549105431537798579990015371168666483914556431978831719095825662301934610632569398098374353169825064672661055459573951531237959499868854319415085344668511704635692186903316221506691703669903209711269759612505297820808603301731207088141500485729223290216624304723050430212380792344603559995904897389233013434941438805671194421635135698823443082901344917666174559919539584652649228842282428844238286990356957186484881991979812327050648845331799124647954812101775814848587209166418254004186688746612658802411515771779817966432589698866502352528339340257832188049506190345763070391284016836977767725513910957011318084101733653264110708136244895389934858070876894142560840950067098601106065336815127780817536293427021625767988881631839494985264715219833973932177393141642299013431183438415513604039600485101759121345208371330872520379505800460505400545342006836479742094123684499652411576225283435546465265619760512663667409060356178670963905141519659712037518994524911562862114709867798583346608866279547767080418905390455518514030025977480990519703816323382527048932745041133941836682094770856826185153594398587265493090783815254740314658799230921508291134263665447322855767977836655657818198496176849874209201641643396722236580707372033717499689152176818169337545314365256541954225654958719593191115950581482391954623063985293285148254257645825478675112150403266941220116736776500681443033542279483047844096763200781958325026533721647402052233875065522080310141926136351292537055204787751753510087477777935329861432987365378933519694000547917208602794602336489339432495011539262406586094010662795152161136293346931665878254494537665319198155448189232595466954712427299067673505923531926936044758233685833080891344719460664595693121292555420182326523933917531396363612032731190634011131045485843776626273812657453577138496390681970176611779934554360276147415333084610433886037432841208441512130178708253745856921885636567600792605000472274405208768247518093320098096952531114756777275415166127880206973988886129302388300706859579145329067041418246921478246781734335487265549722738187614482248138397810927433380496722836580961356304962178206220449258731335377494113705736926197717840948452074279820778281217388610449234566480591820138481525788286241804473377732097776229182114688187283291908522846379566883639041392780894873996396621401952130871014819990004005494477129304821268039465082919704031156884888083975411751902492697031061779865336621253408178212076631176429644345772108629677736188397552514481107791352179837657681750470574097789131687849180291274896160050737353675495121307970332783241377199752599034760574183641588815517487232307254198913247833101274184651745635047090789781052007783311495759922882660525159784560001602797234503169862721095695794032482711042344613520310705307471438511624098922693819520697077995423536850964547982961465585595375070268811302117297980188976351008047215335028714752150483762696032347608765806470881703129694806567446376815863238167718183175931712332914665664113233008497587766885428328228825398956487271273828402960682802503826436500665112138976755363604966832532566971481223581963163952898746827467861745303415423212692237515342247504627505089978111549137529310396039993397132838310455129174348094658509618058817213776567559332050032290937492617994102958939473734990687561531877239995123131751030917083664641739405433185775329662451333403483634760585023423808738316606138679027561233241189318396617951348436435086360541300730497813344693173972938744034445943260782279465673282384733214821895351016785032024501130795316472322758966824178543044943244833959514679886669516756829960348928293824800519031862828163995627908255564446334528732041482117462948969573433862877887444754897795041087189762222316684310005152592714578941009529815903322434887406683077128942022946731604774494764596422757988126906483258539541631049145578426407988076854741369765598030408693291276233476421802396200857302650953987419456631053832068581353913168145389303740650523949329884772091699107924082652941395595245006734248129510138227589814796687945186787285739904641015701574220639761753332723312452353628159610244058691845371999466406817629099365377333431256732124506738031521540795106850513918593486936987358916743626134926276318964654838698897242201957677867309073003652944221733392998554656965411916205202567009960122832628787742004859679745313638884418440616777719739454036777444967033422691399215647967342614689354440964514586746306277843950716653792682551159997601881175150363738197008279540547733754549679871447127984816607511978475414071883685089451091373323205506346218188023094188308285693602433850545814832043806776153048122215363056519251519234458832308068330613424626531035168425594455246322855425757602761555396370388899478625713392015254249975614326340027329346916661356414774936994429783847533344793703147842312539554609162050098639839935202632173496503885290298343556657466190331058885473906866564626448123342548460003209806733085932082130539792516441370761321496371316774847860552298976565985313684868942251561282757562076849893351296231699882441178567890954777294864588684691372293955875328718692175483491898786603473863980371122943308974695302669439801252998400412124980521041898478215650891945863626318410275582014467757298829800700207569841253972023162384017614642831229918094494859525074725736128569359088822864481909077061905657688980466963635600669505485601050470482774641917444527403804274136263546606921066968220897347725778572870408950750127614437837977009028685420116876249780291236068055986356426999457345560841091989237339943994262050588230368124949797038824130644367188241770445758674448834681315181000126209747981745580718793461838344877640813671761826820564814970945612770167560328509898565768219161421645817739288835903957282023932019589144155255274061067138270914074252738162977600836575366194236755103090704277693658980124258710789507241177081673147387086076919357778826739935770404125880035943968608470539967997410529807175203761012052363325653667242134832009222080286809856368895801907832160318393827118374061715362415183549817279135917110638265062314154325521989691358697474940568261433430607291469348327381238744298854831002713239450648208015223005862613314703742223524454915638174302953914116158524012534097459812111437380390253877808095225770811093606323580373416049423791098937244054095951652283918932468340177677527215874632262109313067536008566206806068352130961113862869569942530376609711368325691744269041363422963317310484348914315771696045779081189667405702282975702250490780211156169890216545605107085637689055484445459953264245236669596954035080189860157163068696086474482431866549861236510132966074723617883177526022540341877653015122174383270317899340869831958448679445353992063604130874654656939252294356832954766077519486099073126121118673631170758152416127619323701664212553468974734316538356969032854789681405084736801822351174268179373049705107771838457213631427679609373107394985011441307304302345091389306349805144869352183565708786491138163681680956344770205941604215815592137266595067822726332201216058912082125794220850092899912864143905590541502898710076231219075212348526250801208625499356936506211769560792487002739302309185517065885562571380266107375521450482236858136658334627081198236155502617530824237862120059517472587067752073178939635998203375120446915495608885870212465817949937528762549376388515482638604863008658359126615147015704104954542291794443887885788046000460512192627966965168260322049877743386972618573830051939980992013528231311283285463499254130667299353395189556210199005236711082872867451116835394256178565119640773438385971524215262263355565268982988878095848525212882071189064355735420575668111217014067383061775866545649923256446107401768086582844371726705350946939972527407433295316340793067134783022529156330766461038895012480191474758416870083685658018747000737736267515470741614621699190930873641421102859401663562950069325235262543082515124049720529947737020678717571748928238516966997117296599819508921926046796584699702742790976652614189492452756497418285302213582528895245916925362778489053778580540102539266641166377393197190377789480018983535113594348739698615530890389279457478306958487847672517751364079368969541132494685050215059609009621613246539218108409488254266612755068974296755899551039882171392879603812135317037705658993444577035878601562645930710066045476551689848528850781205420374270251942930449272086218181196812491349884904973269451252107592231596432795734142885947720891567816656372761715560104341177285872314627555789064957455207242877715120626817036687651803817110934068335543588800850736694407065747173638943454458861044604576525864615915181840254391416622898688586834484474204528459204647489310366345998460827479078625856946463366900445623204602623624999415708399820304791954205481546574518735901176590792721148691977487916350707483155895722778095774276344301048238220086146115357796497918945162061982443176824955715469966179477564423700523529764792932352747806175297552323959801779750729240656802470808841696293977302432527365676666139281363237974197908623731626443835632341314089256627495450973913305331936935267433261683290868313887302970904587248695005340570184247777879759596816706382880038936812585497710158141124407234814755434909503611529482358901398931521287046835783612812095937948236799288457572260312761339473283241528908425637553795759049275757392851141120268354788816518941905680163571897826763554296322195555005444141751442421814311330319038762345948732119240553785481621727127374867727013086431916698561503205752965239810502296982612017005872098491518601060417753774006714847626536124019876327387739141791781594548814894795420897883043541228232444367310553263965643293039605950605028777286729480031331895071906475971056787464074507141083973261002482128993971472754970805231534343370111423612805375195617506846118437949275551834796326803990721702942254429178320574010645180913728542942957530444724177236363738218045776495458668583658682019536451956195299736453414014448325610214054480732885094660377465922176210339976264486803226074409111561974036799338775482379182213555050739433741789904158982503113452893652423895552298222951712564026824670165163476689018309109060791050637585823871792000090297069157486264110301428915614529667422039872596974075309677047789485765477342649735208471659390693649707673002347283269820015352965645583747631594752754242985443195352716517680760510622728505666459667388854461073368599310003720934387026977912323087799966408970743043525625459689727214834220553078380721644192215528081547950649350352340133037196464579255326011816080394838225642297116556960849526391764085189443577951025650970231452858654801228692401623333115370580847654861830636315098378484312527158422883448358599720540850399684838464938952443192266663507573516340600016645029638112820238620511878715534898508141052767282948974504828136627056089123828903625440466029490175324220863624474902808246020409866765989716172494012544177754637439012112217684397452988894100035108279473677572772843634957173057743520032316329275174834163983837736398382341940700578422319719836858523518465437453753719599528535306511025144931895897793435830620508497386540103437718368739963857207620533060496620864601426458803666493552438848897339955232240877164889971775318681807865286671379916586546048316476377920543342611424997208326192580078481375398075927941301796241283189240678470664572802754530184385844268972916001909986176584909763416691637588065639512884516142696323039986331132530523454516527294848105756681026811235129008715157259139722994368223894405719562167476645454026035546872785909996376752066917805570956263881728580792031655096047291694705400433107388695384749886464692204983303037707522594511157297737394435590074563286309472676048539805513817460495427011096406477417509588732470334923990966892057916311869008753996769798279169421515694660002988265525214849572682982907105244905768539706787286096974358838723629254879072320872423257509424777379520096831710920386454693122197462041953366387726797176735669876456556454053351525412920747161180392694666454006859946303058384314452381977103293636333384185123062313015589990925117963958610409060032253815654385678672214925014556240023932405250308302428251466580064605943925789069370547757489037930693614017595510079026015752398543028470630845741106911869444664470152219180605829486694758448951348121239489354162470021545179666649890493390141181765791171535083338640630228975832186485208375070117264642475487555149378479012939737830420696265726895412554235372724886797100069258329904257455925768382305340054184032494009064062159605230332906742030989011736470607419373554237588457771203567062210520477461987610776564257764266877269652946239737446917395531673394644291559903278397053404132762316390599951579101238309176173457054523227744376162549810273837439808965977932456133290463397664203550994046974077867106754316073438832689956279826397388518674154829084944071871342615876729113525711716982859428789622406980797135504031320465226016418871449626965250560178265770533670158600097372727479535339305482307663514846253186943302982698614526411888102964032044889862351712105764928262430954293377752177758425235621338435252114295429531006693134113299708900160300778956876261331535200499247480434795161668625421586929149285243784534640535940866245832420285989981181489436704787703895222874045289564648356959665434112050135360973754512206556780337745338836038314302757283172985901667048065599908502102286546184094357138008725167277634912725806290927615688597883613157112614018889883606085166360869777631791985852790253683131658105896115699463375458897437792996943155355378342309736919445811543333628512579905173141224974256462106174392657952372455049793046219186863769602535067866943118463273191249500830329046173696832871710810824340059755915889888812338604072962575769102099606509127028909490879742573768762051066705553214127609693311234288335290436906621300438709751429714434436953368856678465572476372426007489903828795825594291978358940132658847243139023353745648084957675086269805647515201458933706042436936377493623047169381264199904961592876143093921108861845164313115716382147602199210007156050816460196270544358249408129292055582565328307442705257838249528509465659600167456665762627432531865094507337238173249236633667634187727810664190122929907630834828655938621686618666956856572163286219610772579910227074514468362485963507557985253560355124438638840893810122054779197360716691035933596537394482995919038114621949974322052127014344612736693610110089530633992647612650942147941088367616513593794373964382773889163762538022385064261284343730808712523198727272139907344594554084899588843142370760341413905493332064436003979311995926518654298159939346851455143266587797250094358582494189437526187990223118585350437100076433904656386218985952164039285165872099470048309395672666608283896305541573023563840031480681550733082093625792536330851224250719207290263368404653480687636989275727839533650540226425207254412873365103581288455217542957194788141789323189490005939435649044679941368684041743218859232487989679574023565891971597625912296461333715220940758254868485434192138455524488066976415470937558030826007712348347566451123126727527081414241472262561140531785310993046255353216660846164660552658181300503714062848696869491340264570114856811363509259207307581303614034070558614197215019317207200055015762735820721091491076254043196873190028659886109223708172644879977906950788573253212948880675238020735785726137402582434535337848602944684777391894963266658662068398497714558103888680474246848941403540513913144444780140805642942773943143849255106953207581504443558162024213862377638343073470304564473984600093531423009428639071428452584758068893210895433954697598022648583953531549654507814339476730814501185413841608916697770393447218024167024721495915559606508901200558095915681850666312644691003300593740478250285405444989681777358294759743815034508623725272290441883627197280515079076369267313179807668613407958065372118567685541099664499042574927338609682699137670723530458492791005227206651310214056948993575202995021485366265488282828919792884042681238256045402313158687073708407482779653444912853391074805057382570286227813094908216742439801850745869222352647284139080348853980965589516405642148937515463553451958978736602378871643104970588321908395213470628679162063633432442915448583741631707095323693431504396283468604625215790266239709063351121653563969889186106325337245380026619724277739979772463028494398251749650104254739752900778230149717742989444429951737662961662515379074994729896319109059435380466931287287063881074499318177305367722419420668916079782436174451225873991260140983348617581951222639853028066755286107039304032462314492434387034940403275880796114169220835558718617517021195250591242169661708608487810034440800528726938289602416123731421648821073427119482454804560363619048509409265349201315366106270383369249066057536202949872675577092322285413103796487996331583218183320103703193003044000230798957847486842389093772613248898377358263255179103017049058242865436741506485265402915223494103948002943485988080088168667090058922207707217485205634733923341486703908188887952179275637869745192189488909279813734367991634824856507088945729994961115880684850361003360527525799455169829813957966022394920271489898807214398281675296024837836952702496928540981729677316078576949867530545423414913148038459863226291967928390643295869727167182777333177386464778806457851235236705795166667628294865372717185585955668237788825808954813428844662074057035300572411617942159432837820384127271574348090487701966728921155726392318205044260836007434059127356491273701735844249515873008679900234422465902243641133276146220757813643151706019334349303850834629099322618001792328447844447438796142892391233952538740550719486107738834073170711617389217068185759957432438283777015322301270014416676073567381286139377032609166135625673929469088909254940936798863923005915468372880717702880461006071401230501057818226112193685153577630833251810899423589439597679645403235075361628575950478078247485715895691818214012843790632503408437768965858193151864770229339922655207360446722001577583797324087811898244241112481240613724942947411671947200399479609908053558803024380938783388066183063755547378081199740307182717952991538469886151440358844904979800513126978707613731642404050160099987093999536363317640576730192264297016271609111688355739578672771815037316434385531172303363924266116456334116382883882953337754365346847374673639406469967672380406727600082317974456155550806247248248894328114449492444387603441006845213515590960701232654857083282553506758473587997151373205429602740797716619631922419853036196407154662132862823217397514955974810474382511587080434984610198677912403841367127479740644084115921134098374593970241465107723719954489575072132711238108349899412957202675223729249621204529947122998084992598981534016521003670624203220158689091756974536483102476450903716656808764132019834576844160912983078805238645154204858393115062859286430826780437824182853202124151689621462443603663388147433358267756845287437600849290464720763741017079563760290081528685642976882904711696496089397000550648570859495282750727798270168424131678450347325115642740579046523348948541313219189391789247961306525685649237948086248145448132302453418040148035941656554009701547407625474921816045839166230970041707051802422017151275769723018881783188893299739629850754621559250580575435875509686512217707514385620356155976010285486750781933776111318913519187737144997547781485956524066013569628752014195284553174832376845706615328842136200682302411227547174127850079845432763273549493285828074346114414068061076399117254673102219931730152250328300856476726238508912400576351315507504942390682305552148565994655896246333551265188194600340120753660081367590629262286284352459673041924565597516539529025593504385895168638799518455586591101752350613373151219772948773175997655054825493604317765045769889046453354441057680503878636341966112728381561381844522741124599585418576507850090433243823286611733603091247712508941009998734897000445219281194661700393541692475979536344242653127723340943864117909284180158255855715862818732861553532207896073034955100873794147258969237429758274182641128720987449281525770356360325741424094537155177637987584328101782615175082250283558227922501912596620169386520203381020738595103622003064932502646160153743870193106129881357050562841030172861071224964443929387897944112828212115021878010499214081357920778269636502961544903152016277207850638245951515233473479466855212445161838522825797854478326694050592714945250190917437177039599236353440909997530954142664103567634505005144118375205875989853396902602461658443248879565787841011568204649014297582777356520911743727455742048753848613106620110386393520709763345804249228776397275486006393870351118883117079309504841210712335055736081049166698941201153428414418358699292896121467654828178859703475025967907843768254986716398218898224442565513892486063025434214746347472162383932173167179825542060449699429798288981564608945810306266358192642517110612723507049257918184705587134450920055814962757249082842623050738241595834560703791050051549713372569418742917178498470353247298706504884723944079947581117216128654154618259513110008641629237174091205977835299224461078849027263019357856119733653435606750752708857678200583717171361626169356471703963722511072646956204197543602068411048849848838006681022188332686570050800606891026337114602603731443731964067380281723550203693071313130724002099820795982492003770470391642914982628839205912647924762388686968804655805982689352837801165485716372729996425648804537550429003216939179526928599288743514797317370254331247620636668864163133519047894621355556322767794393968743479206596487021490721632656592516034459318253377780708906986020639899563439132126795497063243775701816999213521673425926748746289318005968628938183579411669938729386245562330176820145717013585319695429629464604129043638073090190308009589149468081978400972189023845587080842292318600621014227898781395685370066681716410917013341406285317525404909943571367314298570865155621033681246901596223253355942365772407888633951054927212388013569543459408827757815131745602117919670593330631313729564158123779231164131378948711779631804208098928136677380132048876460109435120046578569162746650378716708235805463997389629063936708091171065930551604125301785021842994552403956349432467072730384514502371844331586594177254574558486435472786212564175988469507683181817663658399303053599968778083385557753528267949593361684786011811100881564541214117865964293169415750527976571220452830996463890015424376044473502100285454299730948566507565530078951039385388953106089118380764655583412162158503744399713839164199368307136779302845646051516108198664171827222978845187890511832081358962156057184177030410553772511611613122650246278504500402932755698635247399597506087989419518692269520342401927659278880571782899253959617425710532002401295400129435348311073047945839793781947814585292328781841108573753283141207320084985538518270545814429981040531272789711315015248881399676578807607608992787257245544032415707508473296717848864291357663487000029365067955683220034617155820589191292735220066473077378839869830610217797528129824663051412188804883175254531908879044449696434357972637242866300693369750191373238938781002167784341049915217454285445651377731986270014539027399403462494002609106064823135317319172805599594098290280883756325519360315856385194642620219127152791470983074186689383934347548487134566996488255039232174040402409280524262588931132826077285405349505542541308302447285370641901989062678303647520182764649084612301352163074043404921321415296556723516050021513989016849897375370366401412956743494111589782717196629062295569784764942258589410932911861470623377604601465035684435508712875101494682377211998675956566861058690690966229311800342969256792355706582483035761190064788037510263407962369398440948747544697913018457140969655576030547953045292085791542052459001126148228426463312144591934053590608811643053926107130655810895491760570937969559192598359065956298812583161644838819549166892570237667874730072899904664722828509602609284233641225899158149954146343760598076458210438039250956641787472839947305952019982383786469588256964429964784192896740608871707397164485936244219051097415650293755223603846191135496840895342084756424032202117593409379862768939842682547801012800823906170786428214409545651217348859965816754746336321306173974034143950897633852321063829465297682578143180630843842189300036993945000287362828309228960244313406238911106356942936557071740678227581768858118756412616505806948604335385610094331032110007798091009549584307777212751777551125253816496852975571920958087910349258657886029345397356003769158955709768575048099828150124409576605084992974663813598055319874928476006675986379264557992802783421792783638849373652592170275115199832827034387686359522020513111366983236269729468991615801446928261382372655764069540883368699211003867021776151842365064891578987171380079227760332333853510916118588571915705105180500636155387925081431308772083716798779467532961677271958479420907015540786003783670808721715421821902446966565955643729927819083120991516640318372134069613164134634178035374736425899308551737667463232709554476060946491469370889390971962345211572523310916871069668221330273497418593859367574046728531539989010552304255473419867824010476227301928723585773258611897495673981156041867818987960063755523357461860338000049803867214485257581142696241201531647477425522405832492842211305364002108338774052842846615629294782916083909178238017203247353570685197043158058544165932533292592810582084876017299758093702067584569577144915549208828088146550316472864594814268643832050643848029612908033273661907927767431930771025575311946340630656696052699761309793017312103769312191491121090140804534318163283229106746486743252407285600611830647403386977451577904250315187071116140343667961054782139309370275300380082194405754510776800487228001543247591533487460718525660919642663318397022715941698429309456198163708461690512074277537655314070261897211843085073796520217269791806307463923540025784386812205134296016833753353896905377615892233398274067725917836188138940703648652894835897698430726805884877350554876496360539391430063104776383094544439089475452407919760434502538892398097702241910384418632279116430903824923584300317355776546484439910878937693549567706710449407843955181367874984334911166953432529092694063850055395593335069654596964293741055119086888839660242371221619899250192915062189055280542682654478183336741197420374467038164461175615211936072934605535664073724750414808212684029028454310394455128266825012282408570821175677039236337590066613249674146454722775700026174961080805292721224778873962272349468823713319277504581664073728408575103579981722821138281207089783282915569438518464423330469334336006426450185618853980973964748959445971754474125525170919042995543572992960807809870961317608282410289500002297191770246449007054527090132192778708851357724234567273384449490441384049042838103332733579121923085294500071838412335708427184130629441391145370467507776056502046819160842959064722629471128104886377898730513712622159187261028547736738982474143775540013512348406369976751573665466885053481259624001615470194318307158282180894308932772839495834533878089722018089476689283920282538357524481720855694268889253900917979950118069626361418273156159837933509841399133058611582702810991204220435017495998104320882411609857204355043183783609439888366536232513987290514702264268556833458908044451446586272344022236226453655444143804817164236661091119105287576156942652853652643005504390714626765085458736990289185382455203892154667503001590440987238010399271932372927756752366351644793215673131769662725816820691927257750587567974322740695129025953492061454275745049494010276547725280983295408398234453455285341591041036503299596648052045611076387062965568315738989002172097056215507988810743407477585698684426257861016276050788745419393953110734098799925522107477994550781337959576385490477059865231309142089430730482158754709337323454696939131807978975112991053990626706838848978798815029461032983474979205667992324699988884421424331511311823534907682406918966557371689656283233298475150162544461171641369176816584475907856258964698294722722355690750167072202692575769249349205139660406903212987131214214971031181851346017338789867905344925118339685676717565051725966626740647351570236675488431205867161057948420341882183181405115835714163155693621351246874699335152445396762578030080765779446081379577001177596803548264822405613701711759055688398521893833149564831286619538863239883676473440271342337035994082217696298787997530066586197982669692039219304278225540701016684939068930553574533895571554207353881737245845235323576919831832605174003642262665335723123317945817668608532166717328893427593927023086395997776721961423586037302140283863350688393334040343661124689509628604778131277191059135893884746920794122919960785633962155922650738846015965700018547919763933231376076623127258281953735682449500157134304024961782796203831013051676839839353062245260872608918551246173820701961940974862732980418133058618250706089185592252957135908599979261688837096073962399542227745556058463374560940035071868107203464800324133724152572489190184382341158312743092238818730700469770614381550763594804850025600124080823395674738742191355426425837404225955270603738038904537261284264375430087043741622863237497487009736988500446412576741465543443394826457588692230591139292172074220355176081874112567346515328337200826446350367047778373665619645478486500947679149723479914147336846640558790115520847742596773183066294624397127614101390416144294237994220464327832218119267660711610827429028431723274329385692032425105372725259319249739326009273225917988542022485460850925616464986145641170704760713615646884810266737753804610717365778727446254764447802564037819402913952993617167849728194765347518923089713711171223668604314388925932778459657350417363865202797704795720886003487914391644462083077156990762495996036216547165915424159497473733498351627548496966983387894890891063544369076134835337502721928376985011707331127365937755636780763213842554877738001986940189612670727639848999566910839301965420359867376820256949367590502220544011187775152010063422698584650137397226344604524453423955149366512689564979695668264539553216544741660815188367322583208371427832477364869122305831437844664796022235800864487662626955335245941941398022355856583558785498327421167651712985561250694502315093853910425246638523387083068100985837216158442636188789845750968557397573280629623735381777123783201114673308619346752181168831503340696304258007546276525911960773987745871414138831341257144730619780140378970769630127747625587680825419478117336131240870556043176407343340645790808068244190349991419285256010252167351231567362323429194287246520639936640229189160643536067066687408550258199496484444951985662650406198258954040596352085553907169195206916917652234132717223148951586658907632954503880806301574423544653135581370780875625890906735736084894562531063862010241132225598619214743117158740859899548443619400318804953812649936731930396489786231091126234900466209284110831375497323976880347395154664152950085269961898246098125580033931781204231814196891614003831146751504262168505929553455511423774408453937287367984655120845881033300449393550601351085424814192780070444716418495094543350479280757922162790927225722453748424224808732731872819725892385662416540189459828411023087036201982235366344901934397670358471289363404961363436404086846650356891662357677868848448340049145499967470679912574105449303736517081994943638592123963239069841405272351579617698876194270628609824301751471066286003037088089948124752172526860358691077540936156293510624180363380973386081123340589260352145405294879960276425174449789084841613561953857240863692949117624286832887686543584910135768383988620414662948327706019370270204151050655719391379216549783349141638728888939670576961557011775552989467110571311715293619130092263970293853977797486501163953506189191149387664365757014894260313825456010876713968721147406351718014802401324035042342697731966133842742766839174426315247055737867050122164617872909428346673590352592753447770636710811339237225432382554607650055193691816174466681414949512226575966444876728503577901627481855783992997944668818130280426058119782315224484400408017307271607509722707947078539871596284830416781682327140104147778867205437229310139989148555140978471173539984353755053091501388646683903183553348478570131417461093667620200537341414119925153249620140685642314490320675834945075502058097896813705384098193898253198997219215159494184917689041607625409539964950270972059392923191416682049445179186208947951991656759324938481298999147030247256137988546271492461352139604372299033909514199953938359397321724159968162035076385294548583411674847515204798954145421964572436391532952440064393296800128900146430824852541259469843076010348143970389338835970840369680001814119149257439119001972789354674693425612114302094967285560729922466764940678437399106055040278513505049879757348194396086221690587643767980241585015621135152299457701547549220414856399835592909242067703332603472326466090658264164744502645700134654549223293769936889219698411388923218049398548104975075231754403522857233497925388478356695444060621423800925369107962002483401965667616840136423338962417898366140904000828921323002852204264335010184440276750021171316689658933444868869650034876093212816726910725661652539936702647947691716710162003470451905611609632948960410594899750022001677060285610139003014976440090812513115301742216241137135897864809851558289564747398994307229272963391760640409901512959445420783438084009082779755976820145599353683473534285331296001338127311121244203840608521348062143720200724799270903791039615928781155333750526733740197697200977287356567129225858306857498483190586518067101181307798215812868314026734864482015981935266196856316128648832316427863967447727976118623407202569950230850782253675126588208660129502646092208133616997740964326103995495893620954971735579403534298305557573371248296732169569823514965935171918214122819956594921303264706452809173605705395333373812749757082871701825163269700885240756914080505674559709952367604504351590643752614485713297184399468340625097778637493487576461594718235248902852916573830051864742413162061128517329870723713901207989984974455725977859001730592468608774560951923202079199385813477656040215457569362115416382069200738505272134101990783014557875521199056278460200600722476151385325247259021518556526911029120495499566820144846633037955640968324768572755634718097836829414258494852770869290760371390293382445290913729643013965180431207200192162947475500635508002396336434143176133082823209572781554665611452408218058443461664395756283471321928648647112454387532972795259348004575855712259094903095507987275268289197048591868714058171799496609833628607666690197054594719092719454653082065143340128509885174402343999700034639873436524399952179386780993292821610913356853055247326843474395437867033802145463864597668115063768163057673453091603941130829431962863244708838077817772638884011481205089118393619740284471644648783964329387633944881458799780581867999777350057176385643693691536143866457687212614154120446598784678680630851126738150321009725961967339639034774052887000650158282719795027901007423652523607736923273237892208969232009522961203575453792435668141773081703966140162302140597494996469084860437800995500622396333183987326912092295198271896751222058541778224956212168762812833998964061184097717261626976607951676105095421080732607320939035895282138682468004329451349353131802565647441175103583429055520783244392209680756335412552555815354572043109229595699443195261356386563052663090473517988344958955617784598942081163712702874732557043004938693089481998169208008691639006100458668829134210692249054271323738938118281159750899615240885999345231340213791041683460107736976541814281151367306685349310817388985566144027552629310900108159100333129904495847656525486009237105351312208531122977909010501472430568575331405404132181206774763127409301498541838174055261481183152764078755664164204228692238992041412506296459549732218848352192368344905657945167882864674578428433755679005975354648526195418940944385486081413819587027460295141394521900746100539447291509039481667398385829334715041278373897852112379226554722162253972867901206766256325024236851331742737172104055920341097781197801772266464041888481325181381593923206006293670787073443805127786230581195639870914222730182519861203175833421503599967874634285690933898326912670540987324202177187474294632685757559424236895011862608345482168551150743103135654146027215170627009465938381870741907408537265491937659514050364549207737353922013438189092335402560129305915961929555760480256208663379764763727292117387908892205415473271462894754833703351886751004931811061567637729168665942481939190812120152748547225835934618463452549290641453873926550264921869026918109106486956931208047881744807177120074950391459865782149135851291982932620526284046240965331707317980002686870843032800525928307111425203177170921214663574039410830763634639872291293214346830570381582267656118471655989881137406439273630814140849203090184961529423145813249969310808461065205518346993409408082629233533971045660521036521970883262528671406292288531799949739997921580096835366237615228765998182217981983669361033160719528990227166957894962873655278246840734338276928160646692992857382310775798382567713482145372697017455235251897075633145537497962209688761168758195502030070846458230441705304090929572895565250732152928245422485290996660965025010238542195724832218418984415954190498748296744063432428357956116517304195474572476870838047272598241386549307065688230354961660074324904633233463897534535062245965389029770454544947407750085344086454562165588281108242169034973577225347600823827602000617279898533501293461150746182567896059826515939951154049135124215070812027614602679585961589247968920809630546290345133529391460701105959924169427775928103392222372207448755632845045655446055576244719959556190157035601452255920658349069411759654266893836990950853659400948324380524408595425402139674183417678759194773812271309064880429362792158166153106288043136601844388914850083200126563967761812803950583383766169765388084462662066129763122424233200544676058748106554558498290958529579905943916887178667618798261286811731429423768634474259734186051456666460603792338085447177099933575065398064562528499821302917884658774917163892939181931017665186285127795128312436896911879702005424848131787923786243911621709268150665937369532863645788080120315431648490117604788505808382635133617170168572482592379435197456035494300538458758672824967275080822723493779761204050536185437291646929309413116518053253344449487999338354391127482881595452737567433185895089639200900188104670986324455014482547896443603638042720662237667581446331165820487879876489648326502612375115279431268218857616126268656976044259654598865154909085910987676378684178327441332778651599417748235121783663496129747771496813075981718581544568989632949386112497255608140047437834417940438047870578701388728986368358103066540906546180684493523330794814974624325165327991984629787866660670078889363071307416756956874900736067391017861034717413115613244638157654075356377022224352254959305823258038492909101378710720754418167126865808341282817340698985240521254407419589526556643961053453373752892778443465385804582001867855706112599523303746496415372858899026462437172657226029898644587329827208816389047495753556730733552846858705777904591942347700941607587470889153147671713873727126866258628737022469683656345195316620223827406521769956595581592715144463369179281188384270685976015569630441072842788477515773036453407484322141370684924883878120725655065315029762873877232406594716404941408232285922362114419424201126115103045524747813444623646836531185440179473916850674857668235344609775406385311647508079322843375375187562573007883519273659506830217717240374255064642512722695977898248412559647913158781481734809552766937309462823394859938350896855769120938694910852078592320029425244300564751155755579371265255163903427096487793373359022921034857782875126047322385763945859281798085349976884519143204956628735361964967958454463096285813569480649498366356321210002852631350942832527435030311600282460648232926565919248063365791945643277617713963317105067459001932219763694930459622734587678534102136877243543133182642973301344302230273992503100191967196049654739598643631763198417013760075210606290310238294014900913493489612468113423605863261219636200046977645662347367731647153324516676212270228164429074542239236906077508304252813871159908779193127418193074711142161281233559126632684368690437908908145756012060578206233676227286651014630131560686661008043255502199611405664962533874999809036325006062530302751515928888929893307417811284130381128762247196035555069005731892119222913594565804735462905876552585552692532406574726992077780615199752019678657495762542628882405981581168138046915097075001695849403685317168464794993084306929307980253949685715179394973706781507917534375720477714241969307839447956784069590342559413900447044454391493178733243444512772707423363519838651451167836627661502774676493403377523737603767192431242249384311597779900527421642870057408000664797973890018999015620009242445308394011667194090896988625689800556586132101104430762900075769317222371886461637113460177372417456984844265460489733318824991500086911232593954181584347841532475632111204908952277510680546722946413838890174883872673535864244134558544048041360957735070096890858615571281036753023862538695831121496125125383634958184379304173225248337071117339725782447403298738633223159504538103896346852355289392337494843168199252376204843066695278103021372937521474267139949148574257318260549029918066627340418718171940921455403227906086725030258876221956256610437362569840918024083783749497188341384760342616215760093419986755987060506243396497477067582411206702731749036359820343619905608809848786342817176994786176340771062930583978408053194793022456700446426515827394683994735489176831660588505954854347542738611464998132260709922290648999436181066378733432099767763237918560964059135608591119291813993021278580032255116974860021357756546581378762817087290722365194981875251026905864682602948239305393085347776317522904211298582954268820947855574415361836114836478227538284635275276969455959569466587216888624561516336930903271512143811114202756190981130973794462916567026766131403695530700723315623686178260979895060424362174178759691738964993198711296616666629920800118926287200349551361637990674158424770400624451295298954728285380555305495944649235162232542295059978228143051179502874906050395035109899143420634577864593102760432064959875409846415856983851376469704868742818138257310721140809058301857615286243760715386232984240174969519523209663173254405760011641483432877445639139514586008953240332998708207820294784662797823008895379598347492087253769171471707876811141108368420269240952714408248663280951738370002716305355501237490764027353501858126185014917397046852594307662755695168055771524166021791265795481225714109519965982739600285808892765945933163962620510766683557710096778103136402497914232751517908547749141298465480347902952924033135897407694313822223859179019859932189605007356576021671035917132998488131510467823202434414457790550926434178171102606356744034318145836222301009383224425870739225836062607665732029773785033692909343625456788326898480749371887528343474604243749136907768304732226590015379867562151103945718211755388975515240979572766613620361593372568450022127375438796412932363647315139029886034952877985423999104874001679231318535466563895250422813316546342552970149748060202916558258545143377869420274473495938087857227272994763357362645485209328248545502168216254664737384801500436610938964527479687016626119162397879804025463351049960424589120881574178901548126152182340247222139146929107868296493508317691495709897188115322971873305250844826868341276918856282995318034671675115645685263834166729008353033953016805740724886522856048038553383815955812126715601071926168796327666405742207880243884354372327455100492856124220370719749125194360230982890246428277656139222182766976333313184458998552103329806040950198574249880982300591774243434999432991351228156743893567807885558569336331818646417050000308265453417830283380857663177589930489290793411966260637543581056774122485996509388085920239886845179940284860819109742478510800358595278214643365526213281210532421358021953630716025223695593590626818348068693045886976143847274088312605831094709461746001389012426064602580421305865828821707073660843310190170828415807162331644427586689145575578056475066451343772034277039975732484373321022876667237762822836915848444205171362675454129827763941255498058389527529147553146132306126642688228133179772803943826000386605980386782250889899292821190584240376975011518033526282750118638407503350484008070481312138932485614420918236144167091830671454983747213616703428600842907004199819803161675810473970332559282469424368798321660928325962867161523955256661528067269572182720426389143929994472546547249373378610366367569848128735648224878371291295658027617032483735901937431635807466283699673464449655817146369637567541815150445581916368385199413889709036824027226017864174183289562597452638604904865635148495384491704175205724351759732884950908571672608267639940618817266460746992987102774296895255410234801918517918251760276467269229782988666238442682798639591023550808041475254623443832740113030103184624522418540173988370788035190686566885127869960756353712319189158079194053414157595314772589584944447893594991367783025877114385666818615154189917776271801433052519092856794026388502162467702667778055920838615484514079778985617464735810938112095610086082790427311237926004554410499375255584442623400799138108179794588251239352801845758650628890429089892295844805175961373356495369717524514266741498429786785350916211731973811893760769112447201829991961056196472995472265944841573442080143026627137622947392458857816498545381640613016496556708138378055855702553976347038965594286253530733534672642989103987539899986821904730797567339150099570868818818232585553988430674565195869922760828372542229455956195588994868644610145710325847882604865818646453166639897895373801374192164959518758330029304410103767381761795586316639141373939428024168320641812655958277929668231042489373347265055918599787916532213947538159396456947255976820579244268511054319050427753092057174241914178686805039770192010102569267947737364616337758240218708211798770607963637997248343054457192350530036282655064785858740706334447691782528431499725641810656605022649102376944975375724765171493031168231581400371205294937997442409620349186623594143421058263708506910752926763667199799986518298015629204084908490157066653421293157775635025451401800293122256463462179777040960841608536645028811732073969713892180569373061993277272784409214935377259181073742585823544954365739573175495057785706384304189896858660298352881262110514634442074620203393598035740601047780119340239458521887941754540613790770302998140120618216807656261584777068197121458120683111940407242765234752385301562269649688501497961338168138067164241445002737802106619061981741677434170892173484840478364515468138085842148660905607164120046447979254406417945285720474328466173240936855560574046867691973112838570986297041309371024466163345681301753225233251394065783937949714560011426179339448951127594940782653302138166748620072800446676201318392746614021005607699944261063087480992993458955913321188078140170452685349710856967560677026626137472174544191603989539709779597455358166608066946368875246420764387458979988641383507364797476898357756292914443781480529838233223666914461995781475319811495592673484491388490953318958068876407174261285727880508482303282173027418683984424705616456387150922826221632259470589341125264447952445149528221188687617666570118263875918295629381868502853513545781258052761490960735812126148170039339766491191707025772466299955906240945048833483717763516675589900797734568889160905702003434031032946711156696466095231044488758652922054360339226909206377639428806044468371673190291239645487960602135008158247864034120467834363365586625498065378699617781914551561142580562038324219742776615693159961345387431318991927022382347693931662323646957536913677218649281334745574055425562366793714707859993450430050588270862662869616491973817400711643284315822863216133662733005178092563092693520890804311906188305834296541946163851368517198854778718973957163092845335330541935573433329713280126601817082888485659139876964024626007085748062954835204565467498709533416123683601601556225945879379122526397840281162593178405114759159322326199012842555217430400186648754373836922330228616205978656303489734060799506257647547007289749229960702733000243850464741236621780536560603700154631611383451116925797880663472255937408426705219860492349701200882883333195304573024249142682133667434886562524856673491187454432618612162326020959869417611641675691146842443498520399075667552630994374004355579891027346323837935356372332283636933959416475989813675744831016342751866159504626678647326551111307518010028639904299974310843128054450902778828855247234562943151768835757268178157612462400302163396198203099125623774002964068984984641897027178168539260959052478294131728149556782002587694860597248451193546545344716096606697236233083162397501781349082693749771873040001758542448935417730345230048118885226220930499581024354130164615406158726077525493675162247876413805797027057697342940332959098879879108772974801005247230671953999518027647126577578171655852370527521766174009384284577977351884260789403293281817013981983329425190059671102433210106621963573122016330588921398326824231346071091455329079063740313992011155524619423576276675440940073210835265116152784740510126060444861270736420031486433680154585020626857145508874327955228493755121060099466903506886966190952932208304705561311755719372159543559483283904283859665040318401287802166755697990404005969591336504343816573419995359820353762198468130386914006898799267010368688478059106207070179866891300323193577179927707830814130151922045138945828743351946056862945456400201665242572058297766302145636462848844020876139034145601066436978297603846731844614042129884456486212576423779917396129358364543553061912266516630156910455481745288213613911522301985421723669023362856861291992801577347579192589556914363827339283305095246020391091804122724606694955069272338265389297466304721920866941859919117814852017160102566579257078137122330728377900187877814439410449486168332337127804144022983735738834006536277759503170955344262516300837553319638171130411839243126207702660382068521833069270416120906460437688166233538131547465125604405901005315740603617585995795269181125275798143754656921541713959785245677755987633226128760026032174307435907878666155315001458829172057183911753039503560883224598072174654054485131508421713413882499077374844782273862029682910926849645030895667499020462781392841696693947521060934399326116505260913366634420859628371852194340771595586845998692654426789185308193773757886171198303173203553127443923493729073508377696770448370288322064607275560214126297713415967708945391582872343865279920098282243970543726560631528363481621292252175139988446750308807262495423306763692455528058240759899662066725889877554658325627655471371365300990547658559449759318380969444165732133659322452324108039494900711443086930502190768335978494494691382916637291316625281891944308564953096482906245338691820311086186660073094166791416197279588653368165873119657184269378626057317788259996317171231570508563002313880111820073473998461960942826010106132713497698171642166137707104972628872191415842055196649041134620635941388547568871161285915090306811695101967722607780944726821983451167862403775905277178885337834341570481899024006420823927381721527400780675974416972471622469007669263256069010319135589910606744301898400937774600566891748959067481702664698816911206267146317225620332711529468855687205267765189445021592918757411041506147769293989142410247088138127853173480868912523835153220862562414933910568014547338341461479621774572100223833718312812370550942753768547641886244829621037463126611655528617256698231361864989862375774971862946395458548182947144356782593050073144091354203454628590997668908415210317872045520954661893848551114379839307017132119719501685312431080415747445092191240515735648080933359182189442567371466661693897445756130644640514177730397247748452001980432100985967954918343181269906432363495577653596810597618620007400733630501457887396276638814338878072938176506363815557893714209250838181673432315850611085884025314024301749618070741089251018399630150117648385017535085031489495751852468887666541839015843847317134319792431344894177886179250922897092022024563165400362045169177963057411594267691825193816538261934341208802281785785135556496523020666945503435793457155628782818717396952375053407832110050601486791055230561204241369002947596345587656998829150405017520522962110407895728567647638006975117529187654819452723236564398055035537410530352967346742637871229003148636926362091286868240143043890656798879791509382717686429532941737191425861177676680842674529034296584566941668811251282566857482884759370758850265608703205819741053325719952452048405463621687550993094994457686119692736297983189876122815099009856443668323082088693849932456990724546858302414012232489740807313428673800872092307699067459804377062776331608071361514351935243503525476653760193610045591117844141247860670817333428434972751249511725552503161549940533081617998111923243275044493639308092426844850557511199151282998913238993928472192608112955321681508320624015126292403630857159344335443187244933896397101400690535596886925508800743217389051018044047851952328291427250376894401445019112017533295241817818751404961339479594740637817906034602999188460842763470213118243645464470472889603774085614837600668439128739694190803930947019363202970830051318462388792809989454108373793757750634549953239271078641917251779539447981671246492236129286134614648938091562984000204370282406114194592134968343889291469050589828549353180000478061433400656645424523604204131631174745268404921937051879336751231207008972225018472264402282091521686306443694449621799944501149815681285716467710714293645151148169760414313377559891778607929007515018383549421575545565812851855169596923550234906860127627032706136062056578452315274060362831379605761362894332692658571741203925245025878380959694075551240528639980743654413293136974832069492701011135880891129725100621367391691590390881701424627011358404986060202680031748079143717883138439860435942083735062789200239679933877345930447814759402618812656897083287905295743062033025524225554620888361102712068068280671466008854428017197607908504168129216664051937913598149163730516521619005944441397742559413927511219397431396017751938106571453863676767630577759586931875895889893486895046546054797361543020520457581370014745956505992959481789521463073833979868730728906729634524105294247609892434291159247743094016230958787992438041438328445936482276147780089660280535177397495210131590576897768634133427616472797633258384255515654259935806941449689530643076706798205609327976150936899548971619730873605379012550925050960293444541903953479826557276772435098265146498927920506081369358280971765971089011061919396164513388699229635462153601076606378370245805333561516151753249045603827650640941327368749101900237998400483658614125374640031258569771595730250405247166188247756087996314931523657062100858036853926387025731712692440663140095390323876517758356887070622056539110624610038217298548407929466672120002653224094342825757793828762869327856936916255095214568788746728967074003632692800911171953752344567822324251342465326115755972607177020396319506211951541181628730248095981837622141646002308286024851570956486391090309288583313664821283532453350941268778589527628626811058931063187391494013611772082625186769733001376612127680354788069078851660455627067429951897270217879144671908803334831579876012149532656243107669961722373747446381303284501398287356957156501360901633600999511754630318911949371180028433311579852076730374714423827381525168530321527632780092147572189491696677262718022351128498739718126029085315922623761395318846722501562980242215554694910771511331864741772640309852906959165281276362076722169413394999190412724518069724693677897285021674339332997470524348118657154892683186769863085959465414711523648500632107714571033519979793539064557458389054296069529082383739434003662404881292639272087778299524548607641989562877043554186399681172774944385541354003855711717438865025852802259044429134228070334546572159486083590414738175061687537739268106110390465327923847331394378964735652396397638317407859833349417169804716284886880826857183875194292599367736820401197694524764327814416753253467570368088640059650447200461657086959791800173813534144395604258093421153883994803161990937877923962247955142443300622468644848800932826394739912559552628636624832194136382567012869229342632796706531270751394695316289993784224561464865343577726496599488852691094393461358715462307954970846797176387953596026135191560584547478497187862514355023396654263946981076849636704533895470081198931111176635250191632453435818034091158466018896789077467820116139537366596394272977410684626887419327944945333273822619034198170905193292688104084052035876045055881987694349306337408113525037655466215595773467231134134455486838097330832420613412006101248644551195689545710224266382541691926281423687761597802050081849309974694519003195931145294440413768136677933294455791955436828844501942015954341559652942296443499236996443597997061169435525598003239266105930782787050753140812087595920837460312332677959384595192524650767647460645351791030256474143545457966932301740938087627940426994563907594542372044272484902064435206477711385559580850167148303432429117354727115478837722727519023799459630264799737798168544382512595384494281422878357904940879727653204531892246273456978938942345192348425100742620867162850112507431317953178496447591942294412158610363409700481341481837801964666970129467766037833076274358084758176733356323177321584367268220160557269674287258766819616820679407082921951698639701844235047602908686021554421231670305011094662144433518178273688349013273761083090929979864713789702127602312732167112426829405750640640122796374218997316789579655248999001200272809241818513639424241049764266755251114655787897704484029999337141693578284245813282613730936725715890807106727098034185825768906545192297149929683113025250868583103425460479919986172529589939751596950197242357505437996729664009751901389379032926619602476808551884286382829576368831393154587199085086434808482912507360726429190137091173152598278024610457444427913804219126417023138479478543019931083761039306602672992946983001717736120736081772976780999314206537615353927503785972771654049328645586760264856154231667033011227599493836189646455294967973266843419340711505315956189147157051808301178528656202100242705814537546376637200717230167228973414811960386275646494056009172588421759988811218280825979561518233265137111115494600401348656944099950263863448761027495253939617218677005517838454246151148293937575771072381318176776046414063853237727539293388338307612893630923621063209853059175490136646788967944147674197656735945378849430113328890758326702484285948355603609447241701225011728802132642787778240974161921888175267294343390362455913398316263804909853141439097971450768011311614892065262524872254156891768051419998704789747703697049362910549634172619247698092960384351530115808050195634154046618823607794556424590555111517010576944535341569683457005293107961841008149908028293256336635269823946988252284539546049656851042348256335573390191989452334503712922284546332316784391614301465013726910466134139523919965113114088875999274104211916235611431968559522342546245109101711983710280129027566902836366587445724269198526934284940293394882614775632378595099025363694157435147270520810858253917144961187118093901881937067497014131481518978323833725184780140218158218340659656379545598910303908167393987599002823777477894515856650495709563936837622705305350673703603048088897367602794925565944201287851443169963262519782613042749343589280312463216900815829795942606323629733238494151360013326097858571276819231172084793681552501276790686694394199946528709416191232753935295505709484791180988512336837233834913634960695647584517911733509717636088063980660350076898461428738004584257554476327893413264648904190395137361238748388317373286415135683518733397444808398690945987057046025995791641379882899244938367460824411689304438318859190982677227549868405714622450419704188243498467866925999553115636727120130128787158958891052589154467452185233461067258892300926150688000129673323364439944589970661930456204709993394244820639613976476957094591102872724106939177280268679520964214707600604960911679793160158748466364168164027637319334069364448127846810917039514657671306395411826127047252650763775753680318401716129201836059665085545879103677613785231385722934498225628483842300006948063179708830505580414151203842115428696211529842617589186300678919706156999300926000339370232882329209543417741226133584775535799370969714329208934742980326911847435670552675786815474050767739669571468701724942900810347539284896379049421825537646521810541704936159780592965778420704095088597394961021851910230210395181750923984394722880991886701881254900464044646383301441862418389524823297788573521034480743698854714671367112965406216977538015374749167004228549693823387803086596290976596767311921387185213195381127459912739822503402431986561134172352481311877784903233924211088115946190462325224343489620907085231684341222466431336857559419969948776443989555362555727478880585584870522259157521530613500834062908835336986455972309989859069794166180145160670617269932994941368097725871897790231938493863945113507791150544823786782720538683686899394298786187757425645428026630640263782980803299369949452557066873777430137048812708821789251738782523176093047699969577097815039053577312250275739351259228451200732423484851585272906439768253824276475458136177239359162509261763161945234137374199014734919122801780564558944734795607467329871618820545469214154222022810868307783197991197325087382124124584825981961906047463418275802286861800738733283833962263684892438850319118142597956036344912840365117298828021484919710448313570435819649382394114122670915574820942914295414511950537474141014769358073574266544025566731427094446375306500994975746987626650789609445067604502321525373587855021979142256557552376721177669876816972529115938889824967463891707889119046983113564493125279373071870757711614950190661921613569989807521790474547275956859063216417530018543828580118540528075913393135543127386366538643717179311770884505558912547621538265644434098115947332813185518747352502271652728244602514668130223639700065290796648790906386940315135687203057589998669338652941560831475885718112187831194056008937541237568409586604986020218443934774930467213486827565119574326848967737531308936444802062198405579514561167634708330985822719450114335167356942426671359900323127524432675329832019219006407201953270020223537146450199887230497841476944432850872809763302198513217093464606989391604703757337224936656679581128401527061949857774434170977741886732122141423340970282656729191360837895576774747103087980830591983773256233186721137291259568314942350273343670790433528252445646038541092397450201088436747442764786509450801475030161921011566297517461018835508100743635185305679489901953589153846002188838438466695184970499327493647408382838064702084329770850332493842927546257983231880821015108460735615065043117696539053026064816719629948110568518943529676318597662792260876072021775919636806052548527456507680105888928537126896415783319592632880824001086019396270785596258304312750813787314704586936330391527331472161358893928826581088392610619451404384901730199591440610105882892879832234819811630456002315361279456893423354193278062762775818435973945885218775843446625053403697480909451585784694076270597693887936561129006563900416681841434602229069490638514087107205884352390429223464982989947625870965100349444564479416516868853503468153080425583246560581141724447939333494713688229145784777736335834393119087228393083917589471707578753896133471042787628800894359577497727605677121996204508051188901365985243571803542013614061832145237748702668610309831554020957713616114620419093700739834144879477046444138395293355051744541529363245549206211662370863885889438444963294161208259789244002878205845410351031216241634864299423023066783626569062273664144927904328274285374449962196481327230031666429866714884109423854360114989824120732579039776346738499046699148077940285221938459222475434946696251564388255032725768335797762999662622051375466295337463256754919521994064910397189264325943199550896290333635704752832117004412624664379776114197838772000292758892134468830330737879616999066951199300070008501034895924526670117980194241812713578319024872643820067861913908725149236389423828721128563881381581281224527408246318751543270885136886936928272761092243914023155799987186764589107930257089051881218054745652033991131510052804763002228565597535024335400853198283207530427111538489345550257222040310043317261904917739155258147505080199256973770104817903666439081215716795578896764252662033386363972292721523184033697199960984605941236787047176622848007252959305971539841054184489514494983002459911236020065080719678077812772694206711497366789292152416050499359582229616052831022608636685691503121342302184281889951861484905709417234811720390213097946991551749871861819501486394364126386225948061066894982396498101309729940372784370899932819480998255863210737683584606430973919468210002771672819817304466639434283301940805194867213825859090451572227584715921794125738975249934264063249945663699117807895845719919950225642638108702576030372738338034977044757500423786497816368709941480428251259973912576789018790908569794946968978224011792958088924972998532692645748371991604297730601817408312819781649838334088481231672697894531694945891437036547063393996599917681465328138918451311892268548857037995036376238295490188856378601635007279846175552623819668328521873410954394392647074812034571509537735253814724263999741263521587992597168771129722683788940467785485547483054354846553465674793421939403232997200722314444504787055232587831387387306571900812627731743283882737915299465106305120008459911641862798288116745934402528154466218611087585938189849188386341641840643475208097002851640927851110144579605505749839444724464774458144589946776670952899102624538146494854661839141873202827925379596307650905033894995838011120267839743410048158191360072698201898850649862835191346604283949413303599382840449970944666049609741766887197450261842852112885806110873546453105301478183507661742754663443475908151478576729125192287676933018673310890222729543287671532635339802763546550147004773278093545547251879226385855287748604365025380459500629861503337953691188863569427647493085975079771679479990429964400048417720048706457324784210763669204406380364891548079479142478634204528014944337432877860737284014861468167438307662154788045930324484739646377703976644577699526834636480624820329713453226301078734531597268744445501076038324934282044885935783134770857432386833792048748579315706565745655369310009261515724776740425409219073064879938214105679151256244156272889776547326461877868227296900420259322010628597244588003092186464256639983287871195770245606098103053981709360117486468722347943913562253095118138321690665273766014024954071764405757898865960941953015436244815456562175383487718759769702479832311307353473617776845947987639487921953384712024477338775802663461423526051900103746834228849252294796466556848079026510359269573329032476153606390181131422492138503324808227588697660047859603355750313131858763580819032029972639868284311965994539768309817910907470623201966231598732450523854471547932290628022997386765545033787855939795266091158145075638229146192115340665245734056759227286493990561334708338334715271601412217592423495011164841805733325138385800357516788138090797170166083538781882348350045911047944943267779300420657137737855217866208150736991396141704788712928713252315716056863411445952571612765697722626344565308857915945205699339266245469447643690339893766128221633860823404643253027738533722696713120393806771944642138061608345675379134541703261005577614685262823424469829019466871548913802859342958758285757254619111246709652603167061588012356373581555576028987937216137482050842196574328361111031968309487703871869944622127754994770387914938346437066653775542234708682095658625992925860283146782241907906306956164695466754915377408948806072081332266005914034027296334019831554290917656401629301819955113513813012903018632232595812251817371052975562556159879942543548324654235100535101549406228656771503686887669489513023404806112837580033468050909622440689161237599276777315202807530167080130021421543469164170076658096393406441700055901335327463898785750644435215459245675772178383796559399746744058389419305412046180940835739616426503429597475810161020004174273179767875985092863142535442189972671626294725378800722087551644596931798088851246206670675770767360952647945836339107381887357630538422919632283543520667376765033169672778508609477222990329449479965370942465671782928753034006844390761805421933298635795131866153705156860994840582331347310121154813056302687161826333958995715919448483567356844742905979325831793584312535803226756511405797610941834176117741579498297075712125124659239668342570138126572110772067544493953689559087457194110872180177767916036449874921966504751857449956736550293609005916311476167804222388512577237381436039679160480899169716873277607630649965636460751820381828243871017232140953827595503373692261238085147639407077428257982325138512738634370938559726390057674397077853823881103862367395554842998585819125301051014012818063682388091401577866356948383078326777680560249344751827078309696201058440853122831585157560276431945405202671465052440230055312892049556944936118192062725292232183542962205171555632049459098776843363621539614696735437457555544776384170452735116160536242899120869486325026713755633773633104928321851737896216866665555478454531251043811367045526729585684576409319402887455980788350677684446086012408812923316988279261859120612987197012142454546216386968518385796612505638508798123464101623715399995200228153231384999585437331073744725844467532686714460072137593262554285707390175078294719552556254917250670048733405148133877066447154500748037010911837902574738692713860328998007767338896352985621136194240560117036931872219061498222522996489841052926096434795325952998482951178873290139893468826218052230823780957152180674949832986453604656936859075864416029676321673248625699875939015625068633643351621859093036535521476427845573196587980281813348389779017120230057993087411083069273847584634365049813764636997911399710262393545185909864709444714796184955872143494322890223166764492701022110465462924049075771080605944452569440364960594624379847928297254886999529584882639088701179073897667446134618034698730842718177365893565226891618700706577382993040671791028358024892869074212343792785606243294157116349824495684507649181128060864950710319545933130578563705202597201491275791673759162037442797661318783801600182884503221397915358365815105491468698897210460860762348054874651250933779016056373652301826978903765235057026278430214098774879574037339297561219753823116929500477695360013021832616603747561024192583282277064529083164831178929388893082803189048012171469270260220461360433716164725503515248882069237174159451190195474651254302493267956218348547433712830099956546661219621736960868368697026366967203698950431074337513443761661942771389666202890787030238076074266592986811429621243506096277281560674039520315196590739888076045015821111439655205237610710408078178540765600536064905306851765709941659591723122345982609473170708312693800151641336063309047831088578169313409879120411959988646766713455313296389504419076897448517315593263972785362513167319969786033412630233374194423394878279944170867526696394423809452294114399512244826920481733382378282272785804215255235359915226806091930819865226568437309228433812251304928799476240880693920379883989354988769473313202670932029208352453778779586774353518541325516174432904150401837784171690407456462024525636270392263574557062447847479699630430660660174851517003395992980781093797630727127947598252235603508533895000784641799208045442597899028545694575658958733015254025802027028904665911828797398119360264461017442798934226711559699100728543309192667823442705455768581372558767127758586812255760799091774517462007519647987944935576085616675173746067242677592657248116329558070339460925508206932021978699027298465716706673902691552339922608207675366115099950220003603661709784969016577987766310404451371542416140142439529348013339127557405112410400528214127192320750086953688210458102632060318807375431200627705661764858782160076832044981117053988258352436411758741329164703436626668210208429533995577169953657896442965874216340850033510136130972246547338881296680061917047307600258215144132229781213641143674985387174479452986447162589287618111371978947728829564425902689537651416104799161385570225051515392653743511827399412352935754200593011371912822845391792973844193944095191605326052588044664241692860068764960455860648662432006503469814309680765017487419954673035265134255101091483220434837748072022678190812591237889935845517382709969104733141536906759467505514075451277305001885342972468809119803335799371052655000457470247525628217411540071690772068756899975047555295366747007793155092844154111101659871796915824225923015913800672877259318121820101838407197399280626178097037551365200391967784812118643519181476360815708051955349455978645718804255883581527635532063934439663512210588528989942017261087644572394324644920664106346767804024328291691157233286137577206239501495613400299985457387844410019265804186516811247977183483941448502267052537649351194323575954510402147391069744621851525430311943170294859734422317481965195609170988593371361396315217238240831082402986701638892424947242266207806113960121973321848367681320055567896636318376439352847911665158174900527716271667025364667659552907222441918148368978948135376583003351480759084079232058842535397332048039726392174700980727867961061707890314152057192968104008512525954694121522367718222358063234681608367849565597973474354554720537419730330988014192712773219303166829763581967316535111453282375989035067574556877318357839740769851351089025123855740433305219590706886426413109062120840818828059835726703537813628084107664658392796307004939792971802164958952471847640642567792430564399191514786900280843603114631641932245908292764189486450279831376830037034081662282653238966219471175318522964592143333845146987583642510280540832957186498251816320360386568256717224619469131797120724929045157741573875867173197670251527492362878283815407259783200297579720255438063424927651154531633895683576496145309206695230619771815948333224314381141448336738672945569195801077732301982966231029164135027105851154462196903835189978859005790639443155097542295806594130409478271774118239422649108041043121471662669750584065795186502261807270822433594498465454332088046827452361694527631046976215353888744469967546345316598027086211179775347102787106469253825144123152064387734261021125206469133525414978124763549245765577155733377885412322530273254490776159527825971901142417811560332799933765351073215326039901122615022359714593162498595089636973412746168188304034579979424294512798333694491472388599703162642733116725666150335551835708893151782854314546375171328533704894282540340251255266690170303059520645871154860773816089056637089146150997294172229101727228233610870498374058550065496675029286513005382387699283845305518859776863742741279255529411036286889723141868530521424858645542251686650861940813609381407413167776578694107687041661366147299823023029964913912059440243482262338351778138426973479548086178922726461983157621409225529735021507699141392080392031109042555058014792584707939584850493019650566587725433682662662186207674775622734413305083687673601390878988466277214942985105191461689476444221435357486720365228594953750827110761208678802423240218903469080337563075562887642219383619769728400152348849823947602551236398793756351546359894002280470052566106514844791408736237207239314316643865399872213204423946844599112539607037499685174337889556378255886072650495163530225901493694188362518497948715343605143888036382954857789018233687174984004851560239837803969612974943642322189926841578494071943208204282195130712688378319049374649499751204267179602557878877368503885329389322490053679683977813120494783223133738253034475384235354840394937373110440464044096834685065539379993801347282020017160097597599836503050619155141635914058507287734453966326205948357221922006374639459627896024527279449558845416733648621937822885032361572996514538612828112855180054936564430334956135991603294237144555386164705068972070900615722671880760685747261200885684238034578110467196025769741940493212896665700095774823901942502338696814513615890356660020648963323508549252829811929000028969881383915139908180180271103754124620383741018688959780693079164892695327870215765293154118854162912785476610611388651597307084158660798840107603575779036380878570854847090820970064067133627786849009718606974961917006582927880601043789813964361994527244888657377519981225761128875591169076736713698097680832007578476846025007472687958698570370101402726492891005690577085145419517372827214307786935980864876568945813087353299611369455848337005442517225936720094684747528172109773067683186863898620944933435940155536328079237560426083362820987437384117464443000150325763389621495300921296087837882650503107005949582335265006276633285575380867640519396214563456611320659666324316034182538598514322735633983095681627050190979509613120602334680063086398671877809321638667719199814133159408250965157548177195583702682249616492406732040554345177156447356961926721069633834253283508044581317129939336265089378082941368283222076397463967970269513944644092074809465085984897074423120503495630236294535177070707354800514612411220339274519640269659853781956271777265684632095762810977452824353829002920491719007657433317553775087238496277338865979745965843577711683417129459151098069079898839528512061087257306135346108994277904306851821115169450925430641470633506884882837561774151371181844963478694869616000393472050381498938746147696774845442728297221097518624473995862246262570968417639606168288804637340485339405909737189428622597330606135745780453270139536866940444355582932898327344563000600575909037583160374563904292253083926914441176857251851540623399073485309542314124016079736240262463844709750256512819893178459853076320442052716927277983132109675286815730358778794036483165390444109649143611340636666466581982945993011504149735617355537275243557770594965841600492560968195452440516375866952403118940045725783073791935756561281117210644740768137956307763628834265798550125653741756099574736667750242914853236985705799389131660757904883457014398193052285125832250937658007433819669990655887505703760536804514451900318779778807309970966443071449759598479854931936347963368262039948534953435807880416625136643619352998703384491091575851739649870062760178184301560014352015500845477925519013588493628541067914313828911739496499005804107510301487687698047755390085804631354842242499854267143938618932296426333623923989256689319720092268794431197567643084423047724153132158046039473980739279536975502266083972177716410338561905618783098118656803916283523635373196440597373306849277791897633239896412883453861844013131782511557426188047734036990272134090999049061908206067269833061483997844734605933087827307235459343694021458911757630498538104919185181100163355385576572747389385553376774616931975666626862421584829612985057533993884794411959136150306760625645710875299564866227753269367881027183506267782127040987027568024810351634082652972189306579106660294287472350363329693404213586490450083429581912225760504983559196018830437637656028811476692009179693683769225425890118871897178682635319466439113489271509896865223786727250916140127013359035564207121263579817483899035436917692110056953950126806793249626321514168844406380976751733739752608099603167951373302275639042365875486829860698826177260827366731979644317016011745350162949139632289035617588925015977669729157503551978226074721867808079911431310676963418764049600804755091620544956927574757247698072066872576926880101308344242904329951849139177659171146519685476816631080083012044338589313413801885141323418958617854510635689536988843884974623713892711494766716749977375610835596298994184455527522918896379467755064475932427910792311283149870423197525405082956626957957006152551399846372209275878183699459095917197493047168907619835554163423460940021988709074231026179144186681043277216678902388993633203764341141375428798578585354545428945954333630851583620948329794458018628695078794056164804005966188196845561846130262486565670501052878268599634546847412997539212411641253953170620572166500453985658000508522421988860720832549318570805005582194374889323738285243946155814574205543299765066259519607331967546042620123931861320739296907991871679923688542873380912501149208828080058943042926955533743892230400711660842923523030981357559864651315582299828044969072750918551046929187288185202975692034274572477196947344614957116450991401234118108723898708977407027883643812893408944260202804742546594852367387437107838803173012531512062837570492030435890681807101616510749307902265039479816878377536268783554566608861705837575352128533354004757917221716114763073965041823558228733102489818518254309360339904030449059315476237785832314915067815084390718636342033826772069390438721254281108158020912690886240041633497292508985546172028902555985989664548909997387119454933947366191872574591617974758396821466530431706818845666020275575445375719824214917730195570836309608393973762943719172631231159619659973039566088398581970795661518835453989928920157891733388802089871851849278428332209800945765132098458585785077220607934320868072494208806745725079150359255385725334492544455279752865428189603275870993770459806735106597129062548729306501327524538615876288241792459155005968903168542118374274700028957257734227216109896246548125862668255695166489088830586758092639735183659816178235421127552509550120000291795145548394863186423646222164300642644289580364932111767948148869449806914477273328085049817014288777683329784955877583763795472018876113464541195121951675735860642789477497229249105963090846624177328807031475002510523720882371341838981569676454722643972012991504441699752767661915602476587740007624299119630477932751387392605085468170092323056100812362964302466047614267988530264718493220289965342551011330514339504050324291448652308620716186181450494042334685360292874768206041208245581831978127827790820967481911752865441171043284556717016518909329396661751747972800944886754573634522058524576800535173967881070960902035534173199749513433142608335644600938093422946549872043902078054161828848900183586439984737970321306769235613781162506947582371161586412634295327297093765364969724743176752392968078533973483137417221445314122191862511445837818416038689471936194554087299661155191347012783255236177445977268072216456217803115095813432277617936391411205346401265864201515333280663040455240231348802241668216030197469421783349120462679639236026714361444682100961547431832498033952960709518812137092804065385377055960796439815763668129404460465931537351751158656880023952809662840851239898049189732857082892237452727050321979989626430657856864415101359105779126430069191695364489941430416380470888789130554947252256081255859975826318338781978990843410437443758814953963833017968068325718456154837358629088230493213985246107227910074029254548520403216265961802540246828876976969045698916485790416566973365249757550226949178988850928675845526578758783273059660359365240237212084469813762407933840839532753902666425069769987022347183204853111707173723867773002174122054139624189050363066863276642069236339757315707489913414113393362505152479462606745876102219602882420904626833218440205953809353166415550301729950682223534358768656263491613532481599897962378703217081827264357800224455630109898416858675468734803907278743881750676313660407817172021300818566891618191617026821276061343018226950633628305298263297593779719851468599844972395030441644025052189084849264926765521506807619498109820439978083458804524083589356497142751096946781506168418151550926196837933153636784105629673729929632458853290747237014722980490579523118380844610563147458947568611428337378195086354107004401353934835601574796689478034839605101346640467081575865740447937477472594112357178072476237299554965787120957268031960947087739345545331448868075481845643601138558308836319866901621840154588104303630784576980863597308956464274688906610032009824676327258576668295047955897917967098087521556463597540078766169164993573857116998582966497705459798524745363964518288455957648565383695797867322814413348417491623264398661419190531195652848717465744757203289084148958706806052361370984236216690723985974648495637072254690367364519425612758946353313285286118135963042401073042264236617889214599169876563928273878199549045380903689550323358891527973408246087785172958159633722473647759748302965295749516358909058126952748975783142246342945174996560905485969125933556775681204491325883664084757514562530545075318106404690250862241759387931134141420538332788123509601650493221272513060503029401481210660457188198575266557213887451208751315323901648222124948696727330587996857588825157718200175839787153368206209474829574591451718607656116009637850218119222111028273397434519595694686611136851048254896703878286185256135981396151810479903783431175667733803686574583165751812229154507172942403825731954834360769345686450375837983368200337443232952163221929918308973272817215985834125303718114248556501866700432880627850609148306535598582954309084658365744482455134150964200499541043436221473700818098757317761898946819184150261164084093711100562784579014123791707130660178008035479436814879180558808494811713120280817450160371245522752698981969237200116045238693665088171075939747530366955190094517591580286522865300980171534968683127980920879403575062972788344743537206025069654454665730272435735601199721872902402460279449909712982458529705019190714416750791577249651866675356487292238355466172630976841336467106519999935852504713420142685135232135996821879684982418924983032541779730114812510980266587651973949042573535927824113585506257978414469929367466540651455634410351978610376078628250347068355889670618331278148701534844894979097881549442931139362644606740087600974046591219083409777027296000094351499222921539457192494687661877062420045825037666112025842748258610560266897355765922141818143909655996761441372202477101267655353327542228532577265840203997848230715306566622243064489653339779977672005794967005035702718496960196045539401860629229828325551293165205870526970050531156802477611657335483828620754746190600185971584214909446815239636423061624706063682694078882104080491455755478733289292766619871538282290140942700483637702787914572156223551420077975408013408323127387328141411367067037764574349114880707312390620226643945498784030794720421787624012013392170645268544530685411177517441822997745312740306391670793256651475058184789550392434799383127969862294409597110915456448634834420977864481061621215370661168174331686813975295358309631009328132424276459548099346559865196566844710746058448864499003378382013474085193812227530781572095408702549272074511700575787530448070054827734652572311828440874108017106349378885998610715073235849341889976445982357064353936504946468929904284477907331435832038590156515454538370473193380766618328732611700537362498824804325598544534380787705413674494464187258035676767135512564907281458249886416001959265993629525828143555505476325991279730018377842526356369603977438064988024306041367654940793682395002094141790584864507737481073472604022746794410629125986985230338519625788199322487588488814149737254893134713724658811339416418266476438958464269199887196543322458870759977999516739510321834383022314297776844703911741822969656883612208111228800050493367819971767273990997623561289207642445450200475569396121406227764350138619317625645943085755322210076889674681986590852236400912851852333990781991483038976248588142535574492014691867479968133105122739385559039630145480451945034968607170822905872419320853373222665847186897631193945405167884344169535361866382356153251559430495082742682090814241860839581384927847456933029450720299813973477488386797346125225534943126732091027624511048080700314706105345180312314814721852904154628608567367811054133399868219326234145514891559902515758565267771126765884576316411155595537911185035276378993965881726477594684548889413992301337489004593524061202937956665518922150239294689445900861624393320115923622757079766258245364455032571584687388676054842782100825327047020333045867138292815286800598230141635178421581269282776504737501172182481558287928870587840785261372327380351905389941096039830378081236609351031555721954184988155619272039652939914233363837895685770386051676365729343517305273049608531247439334661944789513068801837452534386427629384366299685120957530197443761672562743887610208379337664630296264167301853356166611770288597272937857389151436519221179895173278966732589819150119681823088455095715726402977144954436518416522733911023244181480203265441972792351013641375689251378225358595816851274014904907955963783955434406500945468033965711693552011468101306307497482855244746689379501233822008266193215544808477871000640179222663637537374051221516143062602699183435629449822694885507472547204654927575139742264660987968406943571308192368034612319962443441937998792669387287003733724231096988946304815445496091350237770057245546959004619133324922552344146245517649795437656250414361109064540925964014000072376496832598752323479477500220602377221153972461427887165828715438526362439228179146073196240642416529267520048481094775049803662294299753103073150914237955392844644316531695516028197991673126678814626976907648846721635131071721515836549226534736383450509838706034627173188116273535222776033725060032431488075051799867145348811177852191446712923880261301533863627013213216990698373608389940603260455988244815500032910753277935882129344358081428238313467991727605870467316748094473081240470781384077202387720761451162915397039596599559917251016048679922396742346159635447386432091837989677029451428515245012817259654602524321517701415651057883810424267244616857462151931551663555823482415807395433687665016305348601726694434793834581217954636490400740221284852936093305828733104537505621684065901211269261593301784865701123934925888108742885837732612518654519977089823882524699912820030163462889415151402544644089921674280569448044147881362700473865813474121106179598235340169802918975652699942257329143093127008629545979847496144681719328498109668134605281487526699597599413589801164192838835657296279674234038350826114707622646243049832984558603951705487562341797382168149149362390763423231999727047789687166885790671084260368955085267229809455347770669503088261624473937713121712007777223709829755318170414777547938667590307449571811315730514509456792166874576448755061132175953508465156722280834357852140385887763085994780672857976983259727059336976151738222096629653386664447512087057514309842712510192542579461772469952684692611618468802138876140786816106139877550392404282457193977544328451975369641419420477873420745993711432108068635765572780878686946410507011448658743185351154104989109194451313691200931599753859937539274160844276985712495840749631470489269058320492688260390165456103732260469052055933931724165581633444024282931498288165963650398006753101349973711536674215595521923526356134735207888322522981851062393682051869180720607861458730447985236525295508192619941875762668872861245542952875683510893594536005044206406572322582000861024657391572412328775117460524311661166287837795694237134298645166738933237948742588748176549893778393439097101579541782105955525116333987669844079773356062662337259796342359389266875485362825443769847223063201211636490587661386142158238074908473892056842365040183408820716644715847708794619751569750926423732404089780294906951296442298765982011061036059300085373230685542514117107859454912974715183206480015274976368045210681913396432496820628092289445394330059855593582921081309519696430420283502754061780817730982470661690673190239947726821049709037921369935804694710719395903506618520012332650252248256196900749890155746664181732463166226871431038616854320584430504524650439322892425198722787481725407171846903900046690225738233725980589817214408529718886980951438290008663375779916377443377674455639259072935033199626514260109782823780908659205601637345150708175562423890506951017510500748356008497295980784213751337829648664984122578682983494293563802668122018694152990770080063538725764615237059433166259661074311086042626339454539041986632160999087585499854885473648386746187651841405338486217809554201823750843663798553131746287902127251700448882872896797122159872377375478312784011233972813600479788538703453778666406572996297942933486666561476873206895071990853188904100438658675516586648189733879945743771501130041851607209547083655747109271726797962019189142767644201833468365815177416594022590011217699243533798254461784089536047310689605561625947872572586610263553023711204578188028983882770092787476059312667566936585794475129969226219589631152790654845037480559283170399154569908299705955575981157720819136883400951467920154374933599901319583026315259518005150551296106325631397817509280791470457645372335868057407564782273829847356511997833354661561104209854688785854522471464203093868144406815694807119626139870386012417065227507824352541417073499845273717848084790897398414779621921216851062463609277624460275315307299166497912495242463122145422189688469212536002342937635310139356305269446751250457164067297426998399023818728370475451850208515774952582147881015300068903783681829075739435025825656144477736624316723716402613308131346078248623648530857730059033872582528397125519363335825180696285095265095755068380464858925614332167786787307081577037228325529566802206516912192750327028593286563006162011528213190392272561040099246608485681331931074933240461378708525913567885775081218194458889350376088653823114443863211719858559123262784102197725722986709587610923875074061963497230100934575247242049031713728640662022161871038450218272489711656062914916278036639065762172640172996216147036345287823971601087810774643153333917441883154486522879705275358162432333522924427433197951339956266626428259626117760038959218398205387554719374999709793628099792894276834568339470970011897859929221563886064428340679770761507359031207227294059980937927138402060902942060594626117332934700559593774289463857582016648859817976176210756147530458376257482128987950817007373518636762426464767472167835286962812864527786300823209639164088280292180844584016209429774596676278118479142106006605515711399741697807017224175473503460169020286857088868030900509619521638139464490280740234854028144702051313801337066595138971809186857132186113761726986456290282911972977741958501562918395594270787082581484326900957102517265533849257738167471812423647479983559880485336617561307123935136809047056329468541415759293382149508640553053707448981861126560994116001339494877348823210168950815690394258904242764408454861008945674636862602586859321180535208397682016831067862658002680691674111196889779538376646707135932790420007606093646668073511776314033359408252781616708887096594158160110488420727112598179181106290667037774661491503345654358813594115271356271840709622482842077633894332661375201711813108429831382836088591450613695461380118940954629680755861473909256215183626351326952108731181836271010470546123122498184076969124559217678776406568766198619091147858758670067327033907404997277314175782470617111822422640572151184993777036847521084134386670982586363009053535006104194490307074737901414573916816274226907821596688493734575673637315493830345388382449652319616859492387775520174833583284750719573947061027007047932521507655580882549836317120044497759573919162564512219361935537919357903862209709586276456730112270830418264511756297563896716939103160911235627912678894723005962332962072242436900208623570389522923153414263478027456178603770714389977184835004947162057353153918063994668877916769273204041563984052371894342215275222657519892948028597270540822299453825898557248584296452375067319620587313207586605220910645813776542927864908272905483228406410326291688484672210465901483731341180393438001423619329138510150097845962343137315966830689156071550258453208724459838008913591878366210611356592198882996396602320094229388195368811568943308702391251677861121034571030707633729139371308454433700664735917519113911409639338328926574206337686546832104527733477732542675782477861056130398316585890772846457815540692804148247562357222965871109111230150840433739336049140444427235882612343961203099729370348835799156035874111897456701561271127732308345050220691239492083367897006129353808726155672820267809306989007318621965392711406360302214618662352533366845910674182696778224424128895321016866922334520891690730788284994158582286305672392527179521964421063553229590020341091618488471356655018789297327944992775736083209381076545479861351101416674327368868226551538140421807137441736494373635124293800164416557924147553202759197582216582426056268039008799567423053662489203757012080294758013819816954889209852415731945213350810770518603380345430068458594563366300419640801823945080984200341151576493777467655197788179800712933793389418670867660911313476516034686627738244914940284621370406704771804988502044639466820277480531632729796186644331343047362127744758692409874069062905958651383418986120487555841059332405789091807012055137482073350954572728090730666702891363747536565925151736406807173528329788992205557724690461369545829329881172271014889159066102686991012409535502871732701179001888906233658707898365057892592448446782343137666255029455976703453956718211378745677947337514123891654078363576478398045834707623136929412689814794071593734663898586635696705847647666417015442843762113698084058739781176494064463242714137851998183914738477639393995535526104497519169761396031849309052611915679923450325300990532709885144243667981277305134134454067313039641598546250870114942444142736075378263420079701273635949765217486339977545902692665036182650411962147571558053253291937063188201389990872262101770057331975149699940905250140655271986310448772785260931326895506063250641161463041410421867226282693585498020583886833264861889606008419444261293944990892728866625799931410731433935435045856996748540678092992201479778012895623479738595422734160557779700227089293156173702699601579258847314262903206741024068192518751521532117035014313050894093316227616996159044416569481409556678750212312551015839639854893924371204551231873155076060416095036400740067739264927384344592963781815565618856384149507144395229191905492711879158286572897207977854705646784972219652624268581671252370128608749821986723262301468431185585609229507160420212380511318738668959032738117307218125903974856854225423045218168306202112786065762941027571242689071595665911531403099117456331736439134427407684718692512873496429710267655793033150936348782375899478447696107352601517474560526836938924540290459532783461538577374965232918462357776305241295755385764304784893633116767675380049820253556775466290937492289032072532868846304871509590702089918026987611401316631590957344636204827822270629769339819230558059954519075222483551007832948745571865122304887148741117458614090250224805931657152012734364613902152548651414866955381698766196482616510713079716397487972589391646058496865813798385505904855133528399552245863670162783910950472849259164127711116330096584373003860035349499042438215495467553970023468639448806957186816399780495904876975125350329034976283024876976817502944084798121411674749714730357440867415264050008248792531316410798590783654661765142713627685524304101971610018865314118001408100951261039566318809446192862572990278843633417128659151624969587186058680912314234177315079919671555078073841746738253718693689733853568318461464644962167566052056694800858202273383128138189681651519046066356022983014962689232739024142182130203473633436026469894236289769094911053788125852385012553559630972390658047416888710184221479700699410009205051215225160879970411845746313411773952798912406339921243161352580022124355409136183371339585562185394632011565954816616840130969261084976663760942884169971475877456017063681177799958290747301974242148376883058835188683268403785170126349779974614516079634992504892147790514570138569979287904256185071925817343067514918655779014286593700247754650613458388068702100469829078433024080775454447774559357709067376669520452807268431787165754164170542022863228948696790383772128896928161447013054562711514357285600259296146858505807210169223083851314220184388286007166365072147289447275172237743916423596992378000283360394910849457273438157200121325719120561831701017005778659172452666153860227595147115812204886073798261347983817892902954529037664364734490116333191415455916107318290738041635228747006084559735941002720091091942354535211503969490288849377735688070835737191313802141053150852808154261279293735431153789309259878578200528455642604534310182774854985854269289184368011418895847755670980284594853362691973640359279376739017476628851748138250053480012089969869002747344299077414006117062945191242366908807590208011534419204523942705126695944541047895488563438111672635996753156936248434436681114648403886350098519673903452612669390184840298569714915182510383575629663716316575783386417184446051780687236500637244614994733570502361243818442799430608512583070912860421936974129106860467802519108800969694849636499140037033168320742918389879224463644863543243596454208346324010201308071597493123805643144908399046607206662406710394268739885668961062274070956572593552065178080468251835193694414102295591005054970765940320404509380614161526506189543429867879314854766575126469747234083583476035443089488131656719035537709204660607130452166164401509272526342444199672931203716478463308792125437687837772870985184455174669802727458283316743562500212548724789135924914607346553649669719003721175271860293823182248175472298691220078546581179638226521872090089027457696092288397396273501562222497633937207289446340752457198758359739247518951964621746364504809863198483690258289697035118868389921206229344786993204659131498588009580203589427241137041509041403036663450551116602107491135966355309343325459347987112904208051122633983464966682583418910811607369571592148601580351811438397320783802681314813026125487028461278941131471034133036270030483180980560063741770984426162014996963138846389204914301945151690120941474158668476533355096889581105119962964806710108451216407446298959950734747138201956020233283167807775019565328334809470850386633310367393923869644334869183160490504030948949694536431566847535066184037656441587604811740376612849377789469114994559975606110434371838522345524251200248594322523194317847635536891289597121122776864988740563612688628470216218204411067245317626585954090640407236992736571197300827586898767326567707489697701082684770752587896568269288027886536642756894612795964094637308878389151209766895936178095062283657488471623957145378722936999536002454773873521237602450738316532943847196151743873991127478159628128952604075188974499742396913276736952507277961894044366916306858259600105123710067752272229372303919333912337819675167210056579877912495057695231679311635040744747680770227908714126568756020952910234493072340349917333249607778036251449796301606385489094300704399667196189149212939721900074316084663101144028983769355055630536689370143198324399543336279185828483031299499497845776922157697272011658132806056368748517696508413237509737459215201755660178593900746541895046664900644314376077497975970370696492870798429870074528022168533376632466504466565755636852317363971023332597421748950323150869318771140566779735381378036452686872933430404172688238521929357194955975579332766926664089312561176971458296513342896748221960951683504231455940043881424624922708913818447485761922877635088370085985347290298534428118923397761714628069181229764486370121166241506177439364221108702298051490551057286948774204544197398568881428555912042717619989903011509898385434104365426829122233259521022884802998345270264470620325476483431601185680043056807394851358088894463918185351638560261542128822996061050007150665064895327338226272016602569605460561029035765630759057266061565849851995730148973949196915355552827637621153831690906801715946088391089516424777083574236232116828280399613242668991735595872055718235548280787512728429213643179204155764142570876614094236509767706702258603338591910250306547616067595883209336530207867308461844169070640463863169980670883641428163957518151927637177946858963163938326597044977498752397010482168338489967207614459319428025639059431260174895621469457347251786659620231631926227501629893526163406254585761194567336122954939236905302831797926330886569430870599018145177623786380321725456181608216091569237188121100365420520870747729037908141250401197868040862367274098617485979119318543707704789481054224645338060376476957376578707373297555485320838023980197508771846816746709639789612305023927982424535143124072437457688633981153799787158896299630439937414765077874528486626701466626702499869079202702792553631422240933847390133094973187491552385941955503266829393959085038828327202123006127896731666413733715209257016733800260852932394789027715368370451616812213452661174703985994921077250517459103688458373684769325757495737367699313704552601052956418683154956285884994251992779472940160289671210198756482427804436781604625007370773797438643809827762536386188319200365946155897500579451481835040035746993352809505048349322518764028738601427409431545822650372065937163528348787082149923631504183871267999750701525750100207561678846201106715105588511723789180977003395707980464389751291065222919863595879224873121059189840255382845832455393213845309306259561937405765302373296968650691481492742575351861280682026275352687184646317255689154136377775150915346136275846761763845511983953308309560990154447815058132388854412683916733557313154455956885480344431561449312376079342087993907454465096319550545341969271483784728705102988053169132223549933336249982039703108990211319329372398199747319525779511317388478644240456326168984347099897486490556449373632548506997062984736896676090502320137993579522273268864383738090600768407371455551415869340404993904931012225830469721924437415919338892127751261140114674938575709583626915927237117947431384833588189261690445625607682780803481416491717984129137766299730637360486479939764850970741904439583200653928278749454032661634561745900445208620837081606894277587532337249027687060446327250389001081477139218919734871604845690651242285254662997944808541212660141024839456733726702037598536212079658108490271820727475325900445774887362362882571860397784014164123804235557662588004009600627254379434461920780227928325952701708042350473358367916747006735548030269833464689568207063986431011214016996092422345619189803873865948593538006130251042406688271326519554587289701386252985697121649722301937634783066481616131861391943048936561981018123922050814525423626066627321860928056670232202889657755952336610585189634899409421710440832227388396759687594880837919817596122996832651827626331947414280239728593003737976558812881531214695488538696261593995175343368955435993306542352919113162988986323775247883980997946571212154515782341136808757392486539465059850944083693341304639754914989470016920134491955235850539450073440297539774218866250713237941000486538883806283661946492235283190886860996699852441967368247267493157510388926497876198614789653526696206112795695543402013839458085414906894780190898348741125939929935258660031317427735153193362087167782586045326982527656621892288372703208091595762848547794668759027433994111701002630211685154134843679508036214412516106641307958366156971030927006274389365025591181608215683986847913238884913289328169162134210456943442322304501667705348132650428773536922567635666884487165744468604844001481623027249727417637582989493379687411362567406181033038420311108655865158250278438756852191472833030160707486883739844937452950346868920183544329766223206970569570735866793730903592879307893603535352074352424218259973189451661017174894650647085946174111336543623774870656876898146435585483503540638603525227041217313861111201951537676298111441939108602137519376274250102682478725269996243390231555270732249318872030266242224639684796551192430455350027694963187731957796085014779558896713097605447879381570584365126339717810593393227064805117375354355356276132118969422620914440756382326873431576996593006738134465217541407454209813708000609828826852628225778213005407114893504577701814963578185866425245814741184363048328983612306419577857071438843661847612813064991049884266842485183423352972896741304661831340562095368743074071341667075995336429668087511738698255992544657969291896036433074511688602794872497651975471703503691248615077149196705423738256492321842304548838989238031648994418781317819502514562245708956392793624947835501095720728113666526467086587412865894402344266743583694572499735017054821232865955556740502955472614879202104091180111736109310398039060741363220472800837977983237365144445772456949725736529565613663087650595603274199153883872981614468311073712557452224829319719534110110688855390418610612425327821056639929591635707795056968131517234633247470063219811792599214307544486054067164160161763784932709804069947322102653043419248640672662151621619522995479316039926587504185624004217059209550359646706746202750135483908475635449965014068680605215904660268828981958140849842668605313496929541035436791211459701170905732526703370686892612433841349519076056509297062767166992312315091767222521875351809384726916263947586581346969771488809908786592105816219430955245903677737658407944921340390427857324648452083970083529237072683125510932512424093448818430112085323237829578508280618870849655305730783910085386636825050975400789634026490043733054953827575966401960815299455345768299407427651360202780026628737726504996610633883421838188046023169123856275893695952055838183218080786405714601394725363958214302113343784205231186946868366990001477165477424235727129333139593997557594593532795499324789280107631297582375805244254532118210291442365850283478439314073092127548846210411193371561251363972848077594326781703835429273081929195460801176823185560062141176319957447765890037651438640783180275807626982603162069952111730322127823313260864644369220462961883206653866439164648902115892647697588786696800648720891409403744734504347183120401675932077734976730499197423021816334188085414848286870041213929924904234309536670465842759670188584762170870668677358764671347144398893607319772629117366057377196581890053174923407585273254380346502861681930140474797591542921065528039538746100108924795233301168188513177134025171212254498169590221396201920902277492526812222909293745556866771350351110768093217749507810388475074659751981529423353107888691799614919900387403492547291659309201263047443892833424368743451381383511676176920541555669291089141286613183229997847882824529870132707985372101466160962527315884968194168752888401552088695241398369393256365470984280089441394956602163014366245359381957771113507453679821024616228891757418126568950550125497971330060076585571717018909131283956700266652673287058391705359171180177196635605912030616438242929078183633519883610638730441130264011662821537138776162232205669822483969506716879052976157201926834882657130978923387557429810275333931568835393116684532610588216879269985762128375747518489078188761908334672090022912793626652136483596524360518818066620784630092463208537652448465165669304318424671982321471862268961714163142487854304962029555773192443022849374798008052981858311785167524209568212623383845258487422043279855529599026022902602230152956127101784313878979656832439331920796523849284652120684830209600221110226288420028648637568688694162012501061971829586344394366737154050516227599320146915704894716617184403949529472124829556094238723081261617739104870526959161257684271334264653399753345549543483515543342511765289446956935781512124041630850542588547141938954386437099572281617318138299713040937831419198660930133926948194165687459354496287338933741512204959427623085805724184250889428539032750197235619428544027875961999141965952227588457489620551508208634698384114229726858025189588109175509729027947819647466616701407023693520177760590643278843800035242617076814771505288286081019050334826310015295994364102844176826625877192485082333203339775881687850490744767637688519905505278304980207782890660576374265183741965306725713787951966120768346802858703298068059026908028008670073054645656224072937926425193334788604686745632858786833474213317095903914775006205352711288529117346196548114989143878633912628963507718203226845045091753180964535636934964183859949146572268425891565472287714751347622872021892203329120018576308647447718659538241890153507043211151516323633926325267751343447045150143046176475574171789209649953706704541149475111835552492438623350155577568404047212857291098931133213443251223905282866393532212446491345287232323376384898275796273610206961372567274509395302773293896931763481941700789622230603475528187194694334584219043294387322620182162023622956823442423382027718280806219722311369368376478344037919403925211092159292715698935346280041777844034841807995040736260855980306274423659065516650443270961586307983276196481078453853426839246442866357962437821997781383662150853443517514694267016316345172214835236578079814771904059433719370370791677028496120648802285849438119284283851517341519873649981724558220598217537551548945375975266747450168919804080452850698187631384781065593381466630908460006343866157253972864545305842832337819650657762901246961071115912021965848666514400024455705217235233776181028930388175575693251283369723456986656412531459548677457841741431301935808920059794525831104003503915960857096894270207117435333402229841613915069726945095106404216068240591389101349318317742350349402148841301052323813368431234331440018968600860953625259387664841193045738173030324163348735268592698646057841846980934636566220369014819583775520120942004642766566096165962765301405722999145903586767781372790327747362911323391267911993428138112360142023192284772678123956619305829986896731698702207389509445260534040310115229586327456864880794507439784451830160403599629963559233568710695425791630639991997194248645192921502681001714696534600987031168505284044611450029698898527002454411393199543235958973269758152685924494041280865952890514623219826811294401938397465456501855117816474935237550590901558209134777922623434040573865535240005548002491404868771131136725106996118914197999407098628221134749945445746261542794885231338341239301508110586701329064360789318534814180170466312306686448775246986458408813455183802671486636398687513816579711120144817983624642629808428998996939168443074572767792063779465297824747808127066733460596956219833037987877878310488075437569872218522278860736471072369864314821019801026566504835636956150300065317823346541938472045448636821309393086941077120770698931916825139497628802080327265560290432104429985752818361938249245201437955613863278387562773010204300034030489060870358652012081260514548147148179454144596949146436541747666264031083816994725823582697015467012673378007181887369812347224476094177390935679225726323340258601526092165330205277309563442262068060516722130829465849650308411798707759152229495261169319099079658894505217512557128205647240895850691653057782668305775939537389703935107919554357798452250629668015172549231713449238130236645150627943220525706128023778801920177001785010478737571156526085718456696301904315939924952258660005985546205143432171880031775134993506409486225606840188930153282679635870486255618110858577639088857795400967865860695573017493619877707387503861567384772295397942762547834630686847818493792036409057758193147894937666983297541906135055761182042337203287754849478248532813531794515806809255263219048804589702791444378808651193321812260540828433494235670009056551189458762358331837473565430797863363337485592461354975038644585463662296262158778551066013176356348383677694648421722935919842050112599382567424024481190196075306477674797667215516593048026588233845749645166571637169461616606665460117398211484343022785445263874599746786913885153051367301704213133877185797797975086077612532322931188176467988461516420156338491674664384575669417861643052232186337864552825488073803424086033531876936251646867720203090048678507510818103619596251795600504896050886820182821638798436577671366856879544094215447597598087654936179846056920550547560487521786340970453369493908065413904479274236085263826492445357928696568567335786005118971314829942913631647778202580274935596988582168858018673551608815097405218567729828330074797002581322535076490261444700446603181090090385402816603996083826191838422574853535115328487338144277930535007098800967727591176670920608162344309365626240650832288389426823118052305814567244982014703189868049131550113199758295228189545928290338854944642001304180151206119141463722866147229093338352555818666818971855235766770758414097308569040814605768263814842818644047097871731672574644875748602884566511056299952726212071526703527975046353010345809057021905810440417450576622172864860851392394554134962181435920461413611380531035476814663489334771367429818178613975649799679410754280277941213185665634322000786065297997245080454310884190602561757335905164856155081024321858254798722893132326621221930100708840084429717737668119108372447586397256179570875454804755704977446349525518644495199566942253915574815786167527451886292329944298303259829994589903738852389003221259002522715983115264915662827325498614865938314586787039800385933684876186119911614599388836906311944350066485552813922299542637750687697593131344078153151485604596336164066111694719020072407373313316486848490423925629548765875838662313398935982775790942274141245339819193189592886154370413732596326899637442108161973318719569727933733181362149710373123905693359119270506784417204548295764658279870080339972513269907977818459279447340983105950549773850876522268777897770437789039292737737353556777687483567424527078625656334247278799967470361217127340013677467140460936631003173861523134874233317997628443194250108086122382366829547799847251046390254663032712462961891708895546808641871842601463929522089717112425342100936684611166308106174785278692020851967046821792754616615731365659318751722774635749496491223559469151352031971775262755339782853324454265642707112475803926048342086802699944290031738267228858840045332264043580289187672251384785881208279303050837230234220568728390021465146367351923560622841660309613194333586676162594331038161002100782407457719483652504279888852565876586062383013001540789100125923596628750985201986826182018887217851313479862883771820623448237943161792627154835951958067755265903385504494312246458157835671341337183235683140661391707580427155135844564548092643055565230325342869605049102058533524918153813191776067268010422703994539786396973907360329128613632047557237348614357156802511967804800534993225849537036168793814449891740899797110363714274250144383928933914172452417555628069906138890586603801124499082082781114676213958777826366296345079217631188390837819754661870983489689447251621512886964267125562536189467446650614514783016115124568803637402467469235311915011591531075114281661505091343234894760272244238216255625562345307809649889892865619117222158719945435716568060293329497164958828391078419816363479654877081114376340985393312016337325449442163285836204034649673881591700304533654671478611064606202774426249904046289158564336837934258307744705030638492285485147755874312171305570133369587114919793866846532682662332377572704200025958924081423031576242852871103044009982332817171907287176053188982317240554653047553378907533234301048192804569017392544629986950313425353625008675597301276306476987235099651720573428746626187139539978328129912525954621351503170095309101953849761260474419703142811814294987625547753365917280399502720817221675953289371550888425707749091143242008223740404772067178332728790459470022472595380297271259833663390968434791523147314724514308719539640228228667858405478261000378202602738203019046511914507019739163404798730908942982551772663562999182434716234423659959871855854434062819828453333041510997009178607846680736282688498924797626324112025261284035635702870015483339763817433852826007001000176544983891976715350118645881462698828821933375105850970056585300005309466207813916203964845600168278547221639583001110798833280735964380331186178298735439345063826318338835840561564606873379344430222971054950580107322185994218586890310888643615578957532086751335385555516401925333954351017407848827503391361525174059919389633247968264705775192147066220478806884436473478457619880764971555817673135885242527256187500493683647976017201400840522039577469981183448585210524621108660569615707700368770830133178362185148827920500523397895670663536097642165361795511222609492426917116690305916125804373148278582338320147729014790222103484386570464516916408510905626308066941538060521018039715683547359564914315788947252437687453684621477412545082840932737108731057994358132741337186114206056864481530875570008061413260688569494890520172606324640074527778482983219476683022208599168115967198970588426747343386089356776581535908718254175830058509869550278424262150473706948041491663339600235983243903376358342526023727519662578196122983374015770748596770231405357579045350713495591286710754515375160317128995330466683749918137334129431921678950305916870950599654389325184672993551216844834444476802573345667312756129759578909274561439828133146890584433325399833006111252406344715676964868102709535464883805066760721924688524531766251137381515030828789443976019196266729128444036938270846790643890906616443105840162679563709295083994499023250819982954628755902741822045663704316113186741706675673508366262212898503473313804771357578383859218674913205539792214463570053870147666148952072897836176629039856160424930660827840669042656041584208535044280149307613967878728195500010589617986275616881896800319934887207692938606297471902155171795282506074702924965896421799201535531563354979589765637314807758609589370955810088063779816440323352334911432194182343891921614853748088369949479474812234574822913512951597355667435064907215024397307052503845933649240027705618884999887132917359745686699623448446204235061183599740222553455910172026297052949292548500832284602296329853833005098046235616902354512315847774352029882418131478391353391367855213513534605184220413758614293753831818458714744162149095121104427418929626042783795877133742537031717378337987312283204576173359769321602091444526423490631298187976565856940366167340794730721874313595309561008339051105970087492206302069510156185610760578699212718276889871053832495134964154345456387478920203351991372748729111166510121150920883563603081824610046404786031859357955858423236789745833112353416009637886474266088193347356945547752083945063622225266263498220659022440363968335091850244442497335498850637102686139616567378168080362148432309353683903324139338067757042518774895224160494200307448898018677000216417381130487770464044273026957899053468403425314585186338629694366966719351147438294823232999141176269831723505304744337154034029939064585135404381886500348512604780824235869940218462252722953106537147315301773525440858737869101975076166496193623269898874461188610067415424986570468297815946813128398629267854705109326001822303016127128133697751450638643876687363348273274087424771848115543494516596892029024864675204675791215059373772396174138963733578677914243467679777508188586305202620150625839666345482104003277293286640536043731975464632824129373221454850360163121506412202294701498308091389953749798295331445000680147351753040626388569638516207799280583003432119987774527771714715895909560127855346278755922786380457182354649270104205516112474657344292566596223629564258477200643784034875238080901458639101591733451153612398648587279716295471095428407844407708553884262682887608686621817757302112578290308822294993590413585035939220712042963943317131185760896153890115266880860823234191220693296920870574071901844110620573436376644249941187574011003469224888351799029568056870408923944185637971361763136881624735020577026273250423092118759210022153493964248571987330327233953106767501897635938993050854133988785387310317757019813672510197307707774902653092364015806618654930358061026675567191775828796536151626096021971712677101086192369999157214548312370453482594967322695850272514145116585075436065606432576857947521253321595846807687064721457766719020520179608954081234545049359013974512273889182963824357540800678699564013750734891689656991024173809612431316819238277046889174741304677140344629790799900697664030711290835327825756869342311892326705668223210597181488603668392684474826584970109228185611558272625991532785823969452316434511987742331883093214641682206296857578264689100003084812014428871595563578063412321472670014841073368346514071341090729196153541697228269168902411985004409150718330477828030590864483989051637059054428183533617088258555175204527997236645917256734143547388829155604668557665944367455414436799233744790998954933853375502671707329586608949529645469239403484299532329825765032253029854545890584212860672339514688308463632201027003756051361702795788652822119405725787678768855707015723739141961812517533119549689621683533033606151533800136375524940702461242769922890561130764261338876342477367086891292380664547258341255600408235858344426404890018796140053546178759815319009754436426296790412651434920208754442619882727763093779387600519340227280262367316897058812852619586534964578044198739181747454213895525629797503734218491054990815433310200366430715215318946686929346964905415296738950671622543381519523923802973172087263299510609954339064689944363400682480772747500703944980437392199222213635266638877807189036629670716659027827898633250523316781871372230919535627436685875041047579418875941597409957621410698149756942581236834856106742572676945017256455955059460106053417045319489039598216362407378727891091164660331535022972856287316673150393829843729216001850427797406526266256569638987173196302009909605170042805119538095512424213107397109291251017576741336973965724602063707451817017121199994056139409036196259368896000886871509982737728273185245203637856891770472644522548900435485350391810308853484220515895853896810989481424871491031597307678300566686487095188278861882902643329854170085196359090438194212984616998373874682853547026130227384618069610735372049742138018119309054735441271869918589588422982931180383477455890091613943732636894409008505591579330977016111717907389014761272225722332073165935264861294147490127942753234278675007539718397872675233489454580768183831293361254584314868953599655577820284142156626064682389929510679804210310295192294956414237675651334546997855270375168288293185123117274895709907017644155218024414494904112958729170100039636634783167410014152753465161104423568210630458097049535071260858433901905930709203564532040555487123069533496140398153123872706545337750240745807969283962262448934836594392106361749196051700784691683144989389154572547304627208928086836649969819060880956016138558064910572282351543730614937265625012958704828252516573679672284559442205847815189946933950405983646422075722394117304086180661358874925473687069397059031051482541771443406155278483921769303277097847086092108098770031847820033915808918468753529271682241924744415552165883174577292444883785980979231998823882808046858903311502985660174598124298429822355746459406605791484871749667854410055458171536381977834592036502772687789952336460727437090955275837876799123202068262499253659501867576914775097975436091298748849174515334434598882566484624893440694748050925671571819375353725415435904783158309013962150541403057375691915388601714256923550942113370771930981501458330447247009414559854850855117413796357803614704929597978825133719208819659841003625081441481397619435432984063046867218129778891137895384293143069739235106743180892713767380212508979577055697711481579897771421346259963396940183638208003139310304825091082936254661707273313519608063186019917782362531647638671493162801821653774615111846948522242488754881814123268918144031732129944022983789818603637762392731116297163085813118946944887388586223233762240924335984379131762095200516798150531087375307737821300288458802339824243273117072070795919587289418897944635438928848404424920093737207056023476225998092818161853657003770182731478207585205659390847305694457670864811026409899682089282357772990783673748193679374006630655666506922217729230499607971816758338369777265331163544180001557976667419550705719699566669843321405058638534691234380892034514689499260291027784966636846995479531616605258870587689516179530411574526235224722031948926803999000761055464322968784300160141896926221850984794403524424036799576940098295051372517112277857432489638801212146544244465631466272011147749116852805659227361573147413269712928049566651058188970281247393401063632208940747362738695587355234490654776364430338688602920141803915188447199338530847693926761722262385222303283936602732432687283478821982838970685656351783471498716648265629414053469787359994000347767674301777303325256748278702419444220834303607278772403410754547878394393461251774342031214624167984992130241396460322054499408085561777632908185561953638912749118396223204507460147461245543867898928733048220613407664749233028305450502798045979657865440064931834713021028207361756095705697091245107519403672863571705918672592280187512914368705603106186293782142208068908044883471974673240170595915532128769196914137804930589046617564877236241545631467435819499104697222740429901516373045992405172573587291063763747677851176160609047823588944964266746890713773818333350341683001164836354370081290513077266838734654439607005869530631237294393438483351768221852970479835044925298532881404927143140113090774978398699900774214550762437458999686199691196952676859188309032660424923999763263376485334117033818393738543289142816154803121091002576997198321729828252324462465824046445563311036025584350650371403453934215469536471173568531991304621981570131956754010509932874651822430855397042901157623624539092136693340839060085644517239663807401240874037171375587052234103072122462599462681497977910561411425849482268022068971610737184673847686591771376753641103439548616733075336190316109422185460441526226107303589793997798872772849341088791280283179330354538932040837590307290276062200786897550758409644099479712267607687655523897649176463459733714057375912402421162259653342914377447227889837249880236028916944700699555033930334299648448627222018373915517533641784121869601834006031237988414047849699182948151937915420930691422835260571325647804748799215801382068761316148661727700371078247479799828254968602755584212508627249694436158217981091584609435058406216213984402229618679586720435052424523948755734578490471338622486157338793187019870795472711517907889889877590182940288503313990558430402860822770966502295242036054046907550702459530447259952471151532605245536459760750845263626812377731542519630715567009033863223774367562175071853298111996044426504123829796901755209384387235837510519294032912768951205006771883568438133058633393950386329555097656554912542939117799287298834123678822115309874100838300656672473588184984985064963241176936227450415985165982879301406177830012882395657059761090285820637601850343077210291903555438273048399029247476212848181652912996891320458495252775531478994427414039464334498848870188415918749732517453127628399051054151540791723160351178103048422630166236193102664338981243072269815750948597742281883455887216409789171171102819168580094238878650955290723163508028579065350263108868964696286785232214007388413901519595893382802311881714030661242334151421818203983277189894332330654759680223564779378397014922545789774351599981498448214061013280822492429533682375870275946589035499613335134343244783498491132624373718888142445460233458990149968180862768348313920660509187554282471797653871983698981235351540416027907785445829238848194127390612811759881460129617107198066869700577144652866735141936577469498094393299747010809572645361332622421675612920466297096052021103483591989238123797189005580034905100638530508434846966837384818760793753629319173499622754130483486210680969423812380397391607434969484761730364922945100337751422792716704948482824975797119223231125895378362067631659232271760576990256832323280222839461349598988676125977540626204302385570182699444646653472222526792427566036846743390267372261580450909895111733084560831990499130698013944783013861020662837469725902414654558927768610183699263190777253478735728711520594322751752117947876139888518752181859260226953329213186775476121657603463895308354615203706742431545113022244055468696593370076208520803616427481670961588100545947740611063933701927784788465902646736200168029282263938629537877187906603605517152275449261886864162629709463463617110112205703289463333117740876384484768564588719305731926693692548804232968437603285367414905208839339890169366700048252124316472630280275356031260589102856284215431906432354895711445902781519549719370271285169446536150851535549400105062776076459973765932127850857362691318227155301461295933226030703625816950790112449550717378881557671273986128862822258154552560452046469256383765168797372989398292226139976376976149831535096258224721385394859048442198593231868063874109882991617304838083633103133868710695406328601253534283681408554343585579811501191599581668652892006416375255054321563546466986935140905202161588338977455678597232809673864144760458838846907083944049432084233031758646926018989255112578421826420731366381435268456338657263088179443643925133556858600813284717363264591350001986543986354452009306884543786527361043817313475296774298857462511502641796607769596622793130997809063025268882435804937178255520244217401623720422914506397803715646198165028750145135274689911197270520633368262427082902560576736993334444579939248155481387252306638447258027358028261064414697680071165299581779719596784001129252821675133627771994102436850937343705784973216883918231195113280555680348608640122261926445280492300894774812465862468425880196852513173327459031161106912272743214203923346755690823501606343493243575016734895019316036654698635141437242817404330094019386771757927852764696326282207438989821105431301588858672614914606082687547532164029048425611588636753381520268613864754986738928575832023143077300854192926396449232376490981548054820778083747342379358053303215102809071124767246448715611468605987781695905169844218326316550889872904101456574749932674336449420762567378073962457137202749048877210924653579697995212481949152072778250224983485797770829906851802214017217225136322106043484819080170346935639057176872734292123957776207990994089452065364942967051648103386947934151283377015660500822226878673833976839993814547875467015267763884059913810584130155068869017894294833633735855111211515283292455746291043852607094856659187069182464449220765022756963324372966606613790734389562336873378956610792323605586225988727907377039899239114586651182474612397240020823291392875274357653573941873202147336084711183458957314230866706593436895309852126337044134167404640439126755508984307581254490737439820898654103865733910036435774278844184909360850267681334013340710114886162158474866463290542879537851249592497956410794809730505721112847874260398110661089916871707117423588114394618352831424159306757961752239921234816402344142508645382257364213299365138021959395394024128499256161403767084751410386891882702808307555454683475140758507574031145797045263038720720688988260715889245267283368906986323077562361658747918409686826449723256551732333432205601291996564265556654502764978552030130627456121997763706491250963804610837510762622326421038682422492931775994420510164422750747314809061418024593792583020809306369593315996024130680988194103770807417144656199448834432641233472366889298930007403095375499105238539765254288796407558301624356987894836489408260244713837046529354299821916375981299024022826132904995949163578777863528011721476277762086979091178838947675017796436564348156604183119466837731912979474249610837992995634232996872691497949586023733641967103173399977203537570285075882248353851865786657106031785906268807462554403472994927755506217830299913312586821388566915778421736841599628664989121324054596019265826083444979948623302241158413453229988989374355427379731631339924871760974938720555288621785177234997250865610106003636646446212940534286927811892463994258440233630636014088395255890325449929065995441392647367537616685269867292382220096286334951479593013297108088837969227302100032086365767445705464377388028945887399532616898824603069423995491046951695728448048964600997164861473163986541250047665340405373095906853525078207886692726011030872155554583012055895244022476684944140231211903689896889869252076735520072613191890948376950560616508549737002907328366966839436967318872541800599295306921029875981459405320079934948538455433417933433841736150165002422370123239513244521194430343580969853542920120175456661815902012942278261476590501465998996095255424154189422082524761025693855033006814935936731625509138912148799744145135473693832165483771351798766277770594438982264449318927760057272870922773767766956224136399213227679360772257609276811207186523781876932549230375796229511973327930772588355680029867107104164654714374775700274343753821030734132277466515571281496749914280474597802056622542594380288546833340274079752348607838400858904897193793520043736717160249161948252384258126131033258399415899553711150325285091058464677929342874167503918798098066634407114792428269458064985250634497513001511789075841576865890917490407446840824255625167961650887438082840293085222303120127355589801604353628670547621545467429642353039443314131820122136786377235237956237525109455758100538582854184689125706219656535508012551273619533702462708946207745388065830917931187645678817110073043720793233209048556917833984720459449990187251424414854335159328027689953213147947217644751957629426733335161468241544456530548536569422289795548812868874123193214285368565913989897768702534749204263058948425579278854642994138925424114411185994715600193144348027210663887391356826766610539232997034813813242063626651994562325443679918036374108643430800764236334611943704002919814173932403019464996761013379581801372449428492801439777886741392974655469028562255060587414347399394528729994640070095699031456618595336044843218023051364633008111919187726184869012065283252587873844687479365728002794221951281551964135321758897539902409581311645230829118915577340302385795792738087516816143121443169266774984756433670174590851598987802424553457573382361535460942316982501741874146926560021935386823569188381621168041905399523398270210517890715196516441457139247278148692800006988230385368062797548682659698389932787064746914473945099708745924279863388148592274435352388516206939987257307622072124039539212258282196795013650279953008492898479675693286460014956227414011738952746725638228007130793608706833854150796645945140784918051502089677189141383835518908303696229700175132738419198827723126434662410519544575097675005685296299274441313027255047058648960378970593881638533555266381584374811638712575083788461819885915667592475981664049637352480051764806894893524233985467097515395113583428315337838424206260824491655348752783994288285282285813666408567200690710830874902103716241375601556796197644374498137796474145141143153995468815766196947797491054512147584971542800762696697701753980222507213632935083479424482852317182036652343566304100778953570057282415732441171502491576820772766926150936562774016618777513925789321462080086527237250043239210368903472395528321043173346238873564951236294390441582476215882368641648762869689165442899426040874992251843638467843329706265447375878508803938718407005016889126718890731631822825072690539407018530086906775362208913094578793005361126335694227884209334326879177761794281262120572887559013542942835686760060999688524213302432321948037933564801701660872806612467002370076590964758248026907592172746093834769708252429593557061562547495171080682484580257091799676091239572259233145832221969851105820140338901934129821869344846375693261649502577179468285460704402996136300390882040315912306672984152580144686070350860518375849865075104769898233989815604953431150111387457559488676234004319713640454434075988615362648887331207940470475228121177574464966996048268521708451951460538913326722373549788537304037034787229369517360166093897837286483823565196248633959289756964654497722051950799300223737757188947829155219037217700802271314966943630144810187505937863810155839340695912551587920012286004302559528886161800972290345785460331281176066017493305165064157594673759763679238334711875911329009540708755209855743791017827319241063775628403500525953937164653688103041476841958505507195642141803978179648892883342097348531300570248949340338664240380183366510068222473318076213132576791908262266941997206218426848577609820480616531986760276945455811776962701497232225485442504948360128793526428176656322334170836423119692215388309977890194786498090006884267733785602240179395376454645428510070235897705142873008485546625140955119802077886005914633474046978814561440054075370883755090198527924491198496798852105418592512668242610370264018495550671863984712597762848052666534055332468400487452516504662197919668520427505826274606279119845022318651695761384656811458232443854064389963327395975393049821776255155177840554138436995606258650982999671225454021418956459232005614747039793648265205834138583364465935088235037429861244244762673390294149287893675270451390981685177274102453276533989845302689521076808767447441491290084592693732656499664227145323582585577642744840731550678999567130588293546830774068359166263963326686938850533032110471268269004347769664133988117750060502634306983912299412363345018361781235434003708672513921939843920976692475936447111263871893251529478943150384971690321336648813089387620028183340152008683609539938132218528390271820780664443390232592444241997314144996915504072196226503551905872212495003291101726963872946973883648955025541462789208221950955116095919498207794712465138040043464693834510101033911279295983949193175919928515937393276907815639098586396982111067589679357462371111263686510494410633288069757985437189215784930936451074911447556150300916430191724185551243152578376281715479174563201898083142726144987600250914469762739005121837069883374778853930077610711814217399120926943336326460275933367631981569477472454021190288900113694885548156183473723175628815565195739270749780453325316741986426012048795896871659847520538485233205362973318259327938260505456459986163522675841947334599768098264375695842699310439518001518821929335953553915280213141661351819863209545834683446772782101736365219945798914316661665570098157934761249898081644261411219813278702126309613712604474073774236285399670581176561802388498334441679596917956645626380083363946427106277310441311291875298853417548751170711589995185585079376842931106410076106549617499316454877030874115265954112973046012278248618676933514320619864233739152888187647611020931537781408262198413001955359566245724200860966719923771524734267594176657091811330389767159306832638914648856047270261642781003133942988129987251870732959713525379632092363487787737234235390888238368911947354481582094646081854722838651498098224520159694892259680810159805456506232942051554751010839249351568314034445214469247482459179581480974575779938079851425858272102852438120393593337544401761219772306474191207189625601251063130498253588738778289651397179169997303510963304218146126279924236214814466530322422499316023253941895910637083216611329157643456614346566321326879458292030860087491892341462319237556435726304585687682017920774802658506395778700977951994708667746011142130209202752036489802908549653212945005074325112718834623675511924827159651993380230198413905747187811605497973799408538909646995139670642483334157371741759362835184362559295116546603726806685469045188588232866497842160777271999239238248152811706942273731164947518262804242109171330186568614585217596274258530215118249512653035936788457784338271135428974887101003707753599019670920738745037505723607022163277256676386135823462330965326898290231046105588993271744487462109051992726382259697722444083176584671311229826700345102905139771206975865461306572902514872706816126946826518591111412150256480336217860591080020070212705489687700837037719675554288966585237639159132673186949515103358650347084694558266359425025380020007382764416416732861376208220933359694180104069478165755130236768953554593626845732590911002028842967004382032023625909448445361564674726204709155911825194310777370869540597438633784551957645995594843681461941606125917479354727215669454540746764746121502456182464203914933061048647793532069603178864633985667239568492900862199695912222686705610132967787912624315010519976718091203144052519814416557636314593904036358200036928346099691969760048591764047235293275382405210886423690488705048611194882250025986436803985241286687697051287077177176881064215259349528288565437323916008041050661346481305349744687524879143187620994673143164423805499741260097562417671032727331728411678763206399147794906480051163044880548997889315384821131599124069700544994657062592102088053728818359800941390926242308030266170181640434542421083727956550361910041326577335990281594246614682412829121852270262611650717334246738694349604066180947600258449769437290740238967634840398226119939487295655452726602929971066876367121029129110825938299449760620005614465884659990346736143930971636819335535599879683392115335588141015364271329588272825807201151660850531003194024707490593144591915653374922045145229857306471658479093708566689676706099372014019057968830665854651694171134841026616161203998246390248849139811756500262740559683424277079696591040608988527026648373520641182325537584633810209466875596982814023442286931289836206907496554694030908042240525797764227814465518281776137369764547978813798058229662082101461823724070665938342044761137591480391384653298837159076835365196719768217968651007142369343498306219841401558400797303423345442552611344591637054631336197844032940993629251524167910849007016393306027668454282164689920853060892552524707945972704889577847830078235845919667723259017285140454176558371192271706302396057344351296740688256729446783017220958435929436570727140315020634712363550192236348131831151912792151038522010150454517900120325446877776456029704221675230140326255146284737242853451498390237751867127535422805999339164342871024825585393707417126042753202151905073187589531422469568185110269207746775796679952659685426976110111789533632362430585946447071016536449980876181698545064247128542677301416647982742309474080079126625367860700054816465517957944105183389953174312760720428390364425170003229916335114454194313380919326044741013525312771631189609306668691489085608153673049804572475241414698920217065903444911265457510981921650922209316762167770169742923936846594348337272837631176843491476510172331058801266977631912359973157189626074034764473464695837913379843166217174869311806976512200906918092958759249317230726484781123617367423108184764282751892730514567492941100459261496538155612178319086177367066680626709026896089585671994639819656537035266773040989562684769620660466260025986482380846531037569916048060767766653289814793841408104298243509786780475718125330599181013500919436355951505733660916945331771181042392622347197963074066603108122126759648560629857215405714546906999860198832351298707496892275976066858916376851065505147434614715668259512693172562230479471357758243538271080069087020246419014946973025691128183126371022489259458409034312557142582964237868312444711790987962779892661881053737710297514606325948677932813251338890319839291128530898931788212939219153407599151297988621474411344649077568766675444453360470462384052175826953035926385735957668975702511334136462570655611457176701091405726622073118617211214916794241326206326363415250100843771450063440228364817121872081871977608687811666354911306891214375518910688343482678094652507759731370676967729921657077403247139269916982425767301249196592545554875662322482544712592372703468434305273828829066578548789186944533509082804812517120453999440069953655123681825953608352071609201086872692942645217552609264966092289610878853664849964626883779676574660680302262944515494963090128723349795171102402229330950344459295990718579434767007272489550357165250142660078706782494701656288816978752388325802332190566317461639295536888502178415169272410829175793778761465179674185138382547540684738015144345788648962254346876207077477243465959877303708599977517691488196531449699173012051598011510243100159637130503795548831481558234376938248927746678272233627206826618520589444434284721843662835964526485719912324867856300258399616092583850137629622715169849570537400467913629580684373659321806130866169995505424523513940685395565135522771198827567684492430213842127180397250548309148734774633636748409840959378229122938747748820496354153570999227583784091490061165888709858011000709775604906404053572168277527296241322026947956248814846886294644061478240950768529359761395988827934197156383307230754658951093608110472150684554718465697401802979637565589007418481386945351406973562954162203061543804346589512802984302793778464817423460125054233915565914266829788686847647941470765330951931266740734098440325787000798585551312132106935514518161626150925520027892995482406113603148384647605052055430454431652843402556707419201535924365417500835969917581317251930643333521195739915813688441574044772379519309581465536521760851141400276339903912529979096164449201121096170931923758364517040058951805136806982212642300555316454012198183340368487974656260496763184403079787313080777605770516629548748674734696249622381386494539903676953018906946929544435639511996066441590592631619792193945154512000944061248518105861553033625402207190024430049152053891512029757401729132588444731867861877036014989037153553479532703324449309473697244246677870869257856688745365517168083119694539348648068834341674689719199756285284029706650371446749528553936662277808308153227237522016863938438595471239797343671377152305554272699399529932830484697688018906329666026049550183754966331439048276080426327319918562259781511250212796047402057806172227008546770603399134126074684495549286561270557262152627314750505034333179826573968726058791824209110189426574993899848540193009874301028238457971332306108731587024001918754677508327864435959335852117018490479270184524653665033237666637473273672483868504372346385108381966585562878471779410580440200923981265312860457466208180747426318006530674527214228301209568702075029488324212205889658663895794267059033224390929723677390038796460455260815608681035475182761321395852947314788921713954661781510839088581368344481658741671547011118466543266194884172627783904288301224036176600431686700459633956854727594833927910718970286548320763113814879657758640467940268756321523357786238008877817883354500415267437733242886233635387507860101570346925198130060147685903321805360926698802704591095791520202972627761469809484322558556021348926638705233884888560051066213155449918839770318011289870432294039171341198348958215402378003749664149319016805862361927197373763384601928702453967315707331193440651028838314965334519067414425588009668512179317712405677226820620399126360161439956971040591652044470726860499835289197901036712530967431314355173761506115076266354793706599246218484287046635259622872666837790985455625365127089749246989214866506542728577908408794298990072329877913048325916917438681549513409832719995826047121048071379430414835629188849814718586631447389003422885589355260603123660013986509671858516127643928166267275214842139192785939114459560452765200460349380786803761852329418996684774372265600934672929938261831350148597016778958708840462422788397059324513967628878415777962776982001723600299607935476338152053653383729050609424274303671999272859500191485997581999263292899130073906184147397737545835108973649177345389873831337500687199594668840715664082344421387052231968255817964441908032220558049243118556822220583358382596523482863704131936441278283646327110157630433680476967576084408673752896946939551866480417959705391817586463615214278433385673878361809892198735568914951965145059816011929061865896193368245468413280594350398340636917847998365335328925622163988185247589744897272037403854496511899780478995652741646280693551061490114124029423981071997141451900331143922569904882657003544873475508771032506406866899648912457066101697438205499624597781118249701768910155002495815726691775314152813606015887752692393359548868371549251748412894656028240540262143185204490167186177123914183033349997925350260018842947868206763558663448515659960366889122586919604052665278847042499414654685867432239476528550502943146834907252927560265528969898214202153659703551576883562835766926368418694875691188821390955331991154183115630604122768495004082786832102183476463668587915702201430982493184267642288193185944569130825111827795541440348541616656839547318091114377548742677084253730408249704273762388986862261421538186913717163950649684233391453193224702689289277915962182545500027097604325494240988936601537982997232918792186027665471661588893116914701630246353297231223340549146661969394698531105610080024958937138657342685306079907420047870512557021042892474889489047406406378102696300682901583368259310204981892659977235688569551670087745835062977832834207416196902503872179446772225683269481236148757119054569372408020209479476911315491100014467613578600663887898427020320772991819814037528160666137826198617304462227547082716389868615654788957645762947517948542954556647363476237029649824449099817049632871187553087526165566865645405323430314213240568027784143496771098787468211841322979889492193676257636934326107986478238379639816169202676281829341381717231464737485254127321086675524290759567702397077668827589197791463281756853841017043824591508865473471910352044711921324297849654027913339996672317403224472198576296964137252304164911458412189354339012593131039594999097421470088581275578197707312176300472848352847746977084583175061900741845245706929949059177556421148384904365033527723350761797005631006993444863728828112389956158963133681448414667742947914534003459724097632879985378835605942963012821637037411066580568213494479878910760690559571809847307392053412369899684368406861568089792870301386509004335455523896088611738687686660178386151296182932968696904864259467845660880161697987715433559800809561126777468738639994756878247836805030631440704800005647575200351469262648162239120380689550134182129096168190040561707257330287617770673334345615934279391883070424285890278815533475561298207155422323993801086523338934232034016556177230616638437660857112559972510049431055162673420426089970900203062375577926031108477947510600923490146680433746572427422587130684599630051159285667153578013276197703510189831971817838480645787049213425586647256874158585792838171710983288859228444265076508673206866629121725167618357352703540931639819767036630003629799178551362632130378689976526228850293627072529646336187535734521955078343672778993392282553414060900830343280059807199281803456615060049035755803426613931638083611697928477567207087353515830138100658126199435223318878300711746006763951666000059937568129413987036679367311085993671464025018983201991134275549598386282585752426498686468383438814077621791249262072714647597759619027427564359279876333489215276772988185916333996775387734703045606745484205698739796985446956520656814422155755735116587810329677660532931022326159350621434747195004775588880502042360519516133980761426071150854739579674698671429320935125382868751568653792431248985964214704055352642019085289575773879303602842224584343676391496386621079110433159038065916995921605527649799403271012081039468995892366746059158813634720245843934919992783379266971374614996356130561939701231043782791934109142526540452805736767374517928156363663097841127183763634118777924415740846076229813122599940675141132891270808779516575894748897081468784374191133396810681785608542910402573005017305056360448317453840058521244655832588069299490862576615340877146664459002252217076036973894523093029095444880108250509033621736906928505374437726612755265195171979748241497972926340685524773240839126199277994128221360525874621827121584358017000634730650344778377700070719557760281024511559524659577937567458022874357389536918109461465467221858750211243638877662373086783476158087670667522333836909812048290371710349131990608936699208983377813660215312198925686858181488901757872549467405595960977663819882598772567554705022706378057141338464459239854360397273065074948500991444490939151376093048916999209980566709326305834535851000262844497762230286392738320324333681258701887819612886481649657758837892234622469781072941249321833440800185060861421831624084852476885048910535031860059363118260164113492421706477523715347044664176338689203647179098534639104596211466512320101348035993229946846756094405016116253024910081414141712553420326862495327661681689746699665594121862645625999533477749463910500640837143359745682546609086883159338025290791554804229882914312461718367610572645684685788052062881001707655960144089194820857905251280817422069121751118464675095755259496818440083121467346851700068307825954964616344623922157424299092173827675334238362221324286260830073427321140985513205123187960190779804202952251691277253907037639426621508183768931633217699626375373773647912413250469004412875127511565727633173507942338918603337082848089356069932125105940691585403770331239923871082195930674935881504449866987325460458064251472589014676765918686429030188308080942648728359510428426761007211838729879936912156902241173828742480755846578753459036619389924236417211759984107159324844280351275561519096422883649929383799568690526353734791567323041089251588097649786474733063535290079809052757528787283159104113766406910388849461492488408736028590449614892305668709629886120913226949653866164559626600578190210031485052766764851105652277784477496188026938627374499308234635806079317408899990671756805620094495289622835148519924672110494855923160432462642128692693651855068107527757888972600513051311164608220175788590756955387395587012061354588976354118215232527754374437508882627243522742765731377400275550035694154257725504344768168559647362168014143677562161089895054079575006182336134885601136195112721466848515724287738390573745564674369422775536803899609937172445352659247938144070596718316323946638010183867497704279713222571444389671612588578697696906324190636764667631038757582957276101912793588077072205502751723997346899963855924783319118239787091213864234092136572168204961320867805726293559040479852000798669078782913423413009504935448822153448455963261712392531794019855597293499745192334426748899562321541527156254970449207957384495034324867436996875667837893440925817121098949036182503371316022559220485547592167641688900566250160026865067956187146975996320332322980840787873163851492181565433007171405919273724762755764931402147579330446152021968435900924009416849962045033188292944260302008403476099545220121052437118377875043855381182956287483343259577132423514787101983007106956002449433732639808948971573848997444661428220726046635159758151948568506791083244368335662147472993248820014835168054744532501537718133659092398311776970355745074445183492990803145221111412220289502376614165357527745048141223196432844432536155935460785362871803392507919235144762448481024230169164637974616314257228378718787283339282121959861011852119916860420914338444398037975835711236548533482912521391351576741309509205403236554721601729662762572582232075321318730584695943361666604726102433137144877324167900026229217656422829604021545633801079953773979038601161891034857779508424133415338413546186226385674517271134782516730736992990424464269255981816398571461943643652728468297997873963670019887182615909922002861137289818859243728986266999084100095464748427302654141905627739456776824230519254955962540115564588752609136572154253201673699998322409872325580311219649240518976352077953764686402386824602662836301195086339926688971039270800030689427863034692035848497962488798713501264167492767141258057725967060493852382649883475643271592742651591821801576065493205411459441501957854117115785630455276208592692415071975468972822158883415007980136505803882770555631469856954917723598549888178280299239269684589122523464899724785935759285280413011705295988536831953795156559320647370492906698974010224522288129570509861935475482605751998035568686350862499337204380519267618294186209635989705029791286599887706785465373161614154417428589755957249207472519208021619391040132698512460667274116255304214054122136831503233409151001111492817825022450619326933656658185800345651588314261282479331165043886349200880043043338749807206176232859892349959096919155309042771058641366596079386447653615170551968099183743369328364729849011595822761799176189739779664988236875494857921322450321002836159190721963001408994871366829001809944216830085643783166487802647362078888114151363640615247099559444972489014374798452423040488990023405164386683464948957014994026704221653584438338946504615396862594014897535843284815683157061935265022581346965728600605048984027579902309582363591305564896787374117111750985838101619949826645676294107226269534613846808940503905195412569926195715801955060524319172210436946326798730699212600912097716591840600173917473503588352323342199867373531548009084235376111763637774831920004813145538384391090826808241454851081859154864585863728335486043785310098179091400360838664726362559756164024638646945812191664084893026242137091175490147583053868909893092615922758677868036393511798294187483839140249123394792795158639500522931241302492397038374781564336970528373626775178525726274388504647892518038534481368333116907145290289766040500409341019397587975645144671676276863641417679710390675445566848138783413033462591567371279008902740129579977121464448272799003853049106079659708389516067342350731295958264816112281112998656920897819763115774063399559023627339043144127917175458685251788202891979765314293239990285691177481358849345695392617648387309618112787765135112862911940059566492935988217166069894666503551480262899530998259196332781068904162200943494650968305894262018602983928450489497793164200996363445670435826009133487976184192841848259074071674586962328151738055537710116540633293454106130150264097682863218710688434507816116813365513273155170617621855588121582430755822462965119045321884703828926899290246118594112505360617865004105943272881060685063849632114231081192253103409486377923873739427455865478862169681754201226522924723088968868438674907254093647212748840274201970337917070431939093326978160512406882055499923805083015052614477897515754700954610421151149867236173918669207873865468292444319860561782903798709946456248868117859887530678735819118610034968409271806505485226720768757798814132993292261923352450570856086417102363714745928871390666891114543830524941117278628060660140119720308666131509263976789401391487167808304705272648822846666012793282975406402227208013001558112175307345314671847515501249658677025371851016254111029874800197531532758789069036298753465568148343570244647955557677250595096866586009512163437233981467179159975340973733062098314660467567473252044987525210143612849061986364286648724198436629499117646296999922369007399359704466136125096194943769553608606656754253035247565784491902165345092471360235146494502478512542920845017007340717032567004457279987822777826176371412838535948402905859798965277589179660286084438718143037726747649615892867030343170388016653740723194670386490741842303409154353017364246096606845683852038780500000965162082065538458720146852697702508834550873932670551795609623450277626329409306665341154873048673759209555851792185046770964508814041582581707008745244310562379594070058754093665583304372220600863798942811320220753999865238184491831049826348884427003142912700627376631249779396887411855468957561870603795924582932992156764136124490607201104747335966487442920096602013906420320474559387326033183121262497823046416469197122786509007690284697806012678581845855022268500097565387745583871688723510836286331691991693627771877130999598834692223475203602427358971566678448067532233833273203979348376491802967320899692469895712677486176734773760492737156886157624266164443465276687733289558943825863843589823724600979458091173841089289398966538634132004330708202843061522631647606865996582175430843660677678959818102462720761688755514095901598321203159737904405302982977563031088919537790675892707052371553059940610554486596254849362938095504538718163466442464639985031068311101563025964586739668361738485137276169636967885854187368949380043026569016180615757601823056363925982683634809504871978117468501276415753172114647709904601308298797905681085527674937143197821918041905799459929882734688923772001795329372562253219623347220415495005776187586258977881786212903738199205934814130028673084269427079712977425044569408455288230550788338450604206217288305309649265383688532543288572594870360921936481941346203674619018823210873646547526587019706249539666379787953187585019170704261334321602901472087421788336331383573120446406527152359318794817993206578682023191264693206831124429973304364734237716314655623442993880735950166960019947986379874153410951077428935747869755850463892570031882098760357944983457330156415688346136207455382104371787893577604538427443212620179592120981393216164563796266304657834628320560883491331069063663722696026870151508457259504000863979862152183779389167430152291663557961161125367293302192679997703735430706836375593496025611252511378869384282774857829505766786732769994264157974400425922450184091614344019170123698340924997950718153365383692558613224981432690492241023090797453692110997599081726779793404149265170130820961260640867510527790906287603819667573416448701257924692499674109765615977971653282966202603005134748216678757516054616732337512535056509897870250056048169889176428435098525261396039214245301179374405579440448831969890213956285781489381497591133585490486228345957010800377057400500923062280114217503634350115266572139149069461303246751885452778338630818979985360263020136097870997641751139587688761085188235519820862666193542778616430736085163246388828897531487881446475551098030296438024474227236079480795625130380790867170198160037125951548288738088451176321301176709773612382070999517077825936446359244890809739126301937473896828262569060650497123862388095416091424179822587065067572538324182894948476607128763504610000039977654721265927953215388375656832720142257027475101134931726554148579716544342410444496837556773279582527495892374368127052685611895402860173603034608988850715553230261966668332411713057293937476637712795762398162796984873581594868112693184771457912032908012867128797250396505132864731060947235200739881619455701142579242485553206482476619169195637430780652706549450027836779503056779280578156366934602586464577218651086756594580218320870453936280388668021171537977045937797589515920527058283830815446316268580433432009554634562833141873041895920761034977790371432967338519936187519271235497640456986495302286362429928383912026701996404306417093928392440935271872436317440854653296140016874940527553548623718358788214768913412975820468751096488813035547095705640959029800199104045298807500718064064626832802362068076300861858144579081445453470819134314192383362452880407735055187654791359819485938760730717713608671755926377872521243242475861524420210071447835362158308990530796868312241179940874505252927161029073663039927695116456848118218467764277823956263860017226417770414724460941196604825394840448257318745482569340405899231157711084073271938221104201279881120617997448906270712748125492568241824988804972949714306791792075199356569460758198945097100485698113292684559193166874860694899410499650116281097061013773482949528788526303992438225287136476803866413266946881029306321004904722964536052064799385173071543717913237312869444657640826614408443785431151654669635095138005175765697388117618340884651769098883550251446435143424421961265349815108184181359705976104724205060885638353881420128447693084675788364747924060273230776707615429265807938037707385991390610269561857188646619625927383310495520331430415503340662534239549563874049167732496745530463787299386940929966246337995133279643238899672778544103427753495781473715019291707833870552399269034631037052239407744292431658265187499771597905296613740792994416786919533089935854258163996095536824845839736782276484246933062517447460957382080212111198215188457947854440586724007557215373116998327362137970274477799354897865936225041819130496714491889671122842621865774103880963483445689580325256004121287169847003269539284567177829197499730540537418860023397341930069508314979631296046445371097787019921167946578802156554479750993909283617890114039221319641950110388937189946251442809401410509124596532297132965718538978234341641660669778828001364401245701988903393252704830269497569708447338294825935080926374441702691902801599514823105970995482909672413920366198061565402979861026208965062626793856582903736677270694422583722105082251646871811274615338271437308152217150485745067600772733513008061206297098842106856969758984608120787723893437519491904099186523110929548918497242822452355265965663714993777775283280102049515772681903255268040778207161716485019658332722898736035966149143872812003820106200805403413866255128618445840370215710492770685835066430287856268274815698109190117908517949289952119033711672211656811935965199792646076775922422017828989002301201209910661332377893168720331102712908867975015366017029081127236701042237543456751932289079699242214305620879913531572506495265741304257139334446929798683631994984370798100151702961490882387960434019047165805854151721307212058348804078059863904657545513119605507130588271183803445116595261002573612054091757252580020684265481731445686170362571693217729886713957323970106148113531096901489012837470021565997354597314330860033321347717144168816618163187306246100389828539687481565840583010619317570084438259113705277289170490007607093695665048572696532649210743128369108821959144153117035113019340676618310016223052008371629997234369366437865153195295821549055331836748554011162864442370476552216552068634694396612693135173912450656972551935442880472538830409960592185753606388573782122809480532097894224818186741887796303869354164452570487292772304608473805305779587921875988097975592511698110493035481991518307123148847740861230491952200026410987556208641530836496304143758126365244711346895876626777284991138130342350922916470585698726917506543429777165855022287869432657239888817355842707050505414326762483925405686638935918116221920234904872447492941931972681900522698829544822445603386697623311284807270550947893415582270396713366669516024653840207652608356009531451620281197260018622292872247449386044670524573709072060166278665271454348496569198065700215644418731740758456097783994772396998336307556778049897492533904688701017166629862818257516233469457064299775360577664039915218716815710462669241822288109803268420996525372442223363115882593661440128202465940887416633760681003477821194499932128251491599124149742318727623030190148620077786113058686131289659612067183613792095874469460565611867048654883727917053514770194530524375383992458285527230593554675856786019358417743516300454729901860104286125901776333991369364485748902591652813498740522781289245876147804906650688076050513572787966513658744604119418454152819389623418286694719510865287348183219016843602510304368063940803547679470184111245969049858049528888253890545645390871021620439202016615330412663805882944857566759452846924412537097716959987000033731801192761685053262396817756133635668287375340831557643213500432043259140798068462192539304862761692823231956893083295473282857154219982573223501191486939892634496114980024107684568540486448208534578270573538209046095028004976932080644697520687572559266031791730268144814704950081734878182735864446124752863815901353984127917906273025074419509645250959889768841637615924270002235927707648264244850338634891734135548522042171520045719835734345688139443170123782881681045259589469335256248605856051686263632922970775928770403690194111912698647427365163315416292107040542889458961330214139259329176514037323559226064471726200117226256774290976258500259637930714012492062965559481355988576000406536897221258847548038390705588650540053718014965092764612510127020213291937481001051846314561074306213907707953973243309943618865635037082555173833150542068132402883114655511815931039465477091746619016591034043065732680922456239011300118654888247098565546013214181142939003084298978391237251098506439632831267699862415100508461372269452830084017421082848062927759467537584894062308597194301391847619593149389314650969978625600429820241127989942058367503529805495644919792593465779289053487409591838511757353828479495000648705993681380269226306821055979064958786151772469146920599361903554406240893588053868665488336398474325549325237550711252320100077689363019138416553221812572006765139108289959533855651984007670361161287996444001763583024720603647613770105787411437425823141449779898493426684741017854694540658344268534089233054243434170407519979751615814444105566322666012100645010469833480656066421693822863523145371001318751016987350314064811909122924939355684492982856461594330918173524678905421241504502530735806108062289369166801861182606558194850772195476472219946239537756944128056845771470527683019577962944855761287556682739557000655093903021725063473113426513057423972061513505353162782331544899850429299665582218877088043947545870981711019822155589702936804306588661320854536384973332028518937396817861249676096695374822728010625550863233254526651213582205910592997002119645571164342525095072719173525816037612042753356585661674613479139780232830723107748500850653580694909445020928566562843003813605982568649689857152301129050901093883792955294873903042000545939061839356142909268552414575239550049104778417480771825936397792450502483543491832883682799630153193590815707764831006843019609463142392121924382241097623092428971878345774500377953278375104616705788340101978515797852011682711162272724898980263632402577283888007384938665446693538260771399353698266859807568128033812269034029446999985678561345977265232871827445299450362557076461937536489456889494086882581997965237919724203814414092911129529120609138976113246743340558085120629392201210855899188521506520001487677633015515074025221753133920528066817218905460195917758842751679211438856998227037383517667961457324961808640186901849357867936687921462676361553996193817260577822312125380167688195015485332637264699174976945247056599680884138730190968174475003257159779544248212794485903206706105046723219446069387135545674947488926996727898569193343377887197504679150315946531999547523818403037049071648225425292866512537859212227663988099188356857292758514603550896325963651839442669111107521806944647895522997260452391678196691914582982196071030903775753151208066258312567460605385930300859405453094095391146901491702015766591234473056383568946006801518199672448356496000259041911547723817382412558550087114294974514779893470703967010763069064822405366892634314028723064365928004712955458890193069713845614930601387001130163147360004419079548982458679878813174699350087916505385306020169072168097168175384403353870987225671956015752883129596587595542082006138440718171979791126760833429389351662494950462423635170556160660503646427330715753741748233694629832687844539588503882639135899951323662401348361191715439094697875776377971382736403603892710337434690784542352316194586443359577805589922678500572554367836809964572992430217480471950940006216012890112635417014112462061533456354357431718041790114102140457699288963015212884025689357444998115545829236513329369255238269836938856298305586610082792708261703653954223152908338042529387868323529539498119486379812734694360826986078451858837466490676544081727110546048139202398415857277977510325329010254244953994978142155581341408481318946999163395606754585897859610403329111342389964936300111874263233035272496584705309605350883981416745273548920331458092974351345365676683276006292257268421833601076492196541249011176860846280744381142466205960505013581815994791494215069538485297649132645848033486839484668340656668424570566439061575556626731926984437865439778413993618386369236629619957424728606787948021791116061854691935264079259466108773588755256136652667777072964245256958760094903354554748387085560107279989178523445547573724242735986181826619863468223528490047512204475518103202790259215043188452839060723914418679904650138566408164920725221803707276538068384551577132998956385663899057445733180849975209133684830151464638628553322322113179500655063808140902490325273540014769923051307810442027897541693220739984575374779311438479575200848432653300610687564536967240134310224323149853338689945771163201686136811983069882053478575833250395395721303535407621719438086131030508110084935028071562682207303401174992081912060945470428389584169022689517595612037781875526926353701943552318272980997210503821329329621305033388381896556295317787253359677064992763775327599152574323636647649555580806005194622949764898203457642647998745133261216994862798544108218700774187090762144677066446955979379157640149148966543233294789982349698525098902697515602632638715615303970020170287407579872255514437402221312498791830396578332776339590198676689533493472015466170852077841749573345890423832049443710701955850817663175705037765191659901101467448848420445909093854890447398715921782276802334781913673685539800205644240701688353983067440870332472202961012836194434446868899670884102807025167116824048091432331320609379050484546309608378889197715788925440781064666835320299125206309781797347108277028627920453205273549367019617606716627543992005316191040999121455803316382884091870015180990443061837965775191045908849735136633392670333506972193886713133354893947386819014720563724570607498334734666876662382223183346940638537211814399354027026277607388394418434724976987797528416867703501417138471006211517729389135407855806721702863929527260645703518898800820205705719423144975427401696621897454611198160140035110821431506378776318438121025416345001419694053518356269008525601264578966129613802276093531996421693877294149305245725541682447647895004735442918221980438333914139965314910345215896625248083267130516371956450787154954353181085613108409806139820234197604598385839608419796242961777891310198319949964907301582831229280107887978663157064143156735228231419836894842789274073686051787883535116931542472787124998229435767697641250883517808485532100506297377865438727434070840012551249442272727713882184477771611323027908571608276300656452101974424572585372215631535292253469187768571769489641095747141399894952379761203156903135713719274833261050898410746773595043845786316037809307501126683237166895775468868165594625526545834746808808228374984071324477510069785400384140377670781349955716188426307033387921795903500998173440622998423296041411667498910203157929764611974153349314115768330983138995720120507874453967509132306049648744922135800249164904211949331457587642478456087159219822382758052873441247408245166596533151546931964753075377925588554299565808715405545769857580226333615600006194775689557349093506659257746545952806696525071934174968856827713774295272011021654719969306148374627025671353784670683004050824420393467112878022266032440702749556261168393333263542522498937663373754473264454033085724829185017605326715376013229269562180284058670138397693933633641102484241310978539277535732651662679515692758325549380614641720556253591241679667814756588220364837083438827843942579006101803736134194910898057609609677490732663802353905532448385881371427106141399646700088591156521270032676205807823652527820139667507172412847331983736647308549340810088897967321586375630640185561394891716585503346739322604685220087031759282325007427127847410322333546833032445086180090014390646186393843090297162647597985193611478327699168091706710669799454091433201493132767855502570415948364110912344805168254490951153041831634900415372760379035260424318348766850085022725616354218320518810931808446257758840637501882834937048739052575176456723957693820000561905458952869811572680364628881522367437682221529049791938542480753474410975071358579861043513117690500702068197296393897076163836126819104039535669878319114480283965840322791231874516529542001533813102219143509568420123338677103509436718637533029360639061015622279335658758412151790777813414617614917894991900931460440574441533628515875370226519251855491543096401417717839268708710194002568683562924757955948567386740570438423284057251917206017501889160596564490935390505572530589487396030193564033426805645394433208617491436292049794405039548854971612427142214341639763726706331025680701096813000801060164730377893045838687578139198755123145177092384774522962559831078901168156550482075823434577250341047126891577324457392568785473405989147667839624240406251009631991101500824786230836348604693329087469949517445930221535912939261315280897965585641482337367055230825314679223968692674047412871587950052966922469331961188891101899820185990820069147993597665825197592920503680459611794009084603297982655513616905787688029252848756535026307909997466652725661328062855362576501332703804180919010790411061385885867591004431940822775527559940423964602053710324356642811352755750026510787240632475921074824620119257731374821756739042003454861044251436674676213214957582002882584946731251204633793568741617305580959471838311855692606155948723144012209196121799447916216671387728605078473335418850788223993939425848223432366559664103489687925119881116495540478839086720288913225140563172159028462744440938900321886946748787427764941910237032489124045382289432886282081608795422089626695669648392375788482707718162017837436847475781288802513489751373549795286249564574262651421676274416247177940245873390352295213330283771336672740471854401049730224246520305563087452184820363147333735441122349195969384090269072975214948240745383419266208344737534021011581954033462485740947496144697111638194049492740743957235917155385551356716952986899438480882460157760041374887401264806924533186911244358757495968841879822211281572440345361219026501940645747310363496462818114963010985152130419685836880018068213334736695821897957836391300423148463197424435901690051937261735746800152949687407874270786882458556831135312611399181971429015725124100405051854162777717093855769731893984225780097371328310439815144673118799671868135949090748011373866908580422393178289173413398944967838098574401769682917864999863427728867158209302411532980937217872771749266873583912124218885356355516008391018929169133509214905368623940049722964426831574906148660959686061913683947229717314221297428891313566168339482425765812230968448826692184032518685361556120641997332754314302433159878246262606081253055172856022931064772825316874433652314238863514470198582352232694448877544609076850289360262215004711585039635018088025406848756825919988885090928884662591872916091930691314720118293987501376403888940347647712928058851972206996057674410924117237243531269108873411466251145257931916204650217816550741028463674754804539582398157584359236546961324057404394559065320725104155872735399595890554556099278542620592335591355888523745755076467262033905401398379126534890452900709318492894545356623028140100354981040782502699919305672615305586622421124597885015770893006810986143292962950164029235712861397077461639656412183557973354497436470701621403836931527625029577930883690725733241623994160130055456615787804479454416368610665972895320002034929618868743331754674740670593166225153881045096637568719452167153296393724068261333387646219033408475342731352574518049198811824567126707062837942161351700175658066132824874055360212585615641336216640721557034100702957010313583575781598522507867619612504308999452620850253362562286525118614866823123572070713749796053219068031895930494856922835281524227997790845659107658551560023813313314828505309154275218114600108241800272847098111225219732918888319871461172482474004552615790399011963528633741798703740191307236768910087799137368418532973535894453610878997629983736981336485792514517097132349788648898668255872244165170452760639988805786226150910094196238848049626086346688752399075314026133306449521392246933589196525579458493182090664777639237568569541766456677382399762122757927261578136073627354871240168051431054165785878876173722818740750305441009809817951840180376037723602254751629047704437371137760343374020708460396206726599307495842481188751568253385915702629539064931340739680095967511848292183724969446425730647660318919638995934170557410599692663511572962526683667231438662717885089654954124703246786577978047382271531306073606384842097826098828315741868581360236225518630806697506835825156881394545666416015427730429785992913874674087944392807057689494410213415608352340310695305286460945722781602936703731349291164006272498229461974085294647785794293748230485011703482009471491781531903565341404528433593820980690416372667581237489812076058765120262396081777410960157136887381144584524376862208583922557300818557894411787542362158965181364384704687030152528789362274252602610151706393490471923669823947929744917205686537816624528823684443090791178280972123871333181304694780368575474131782168885396062421982745905219977016782862516178384829204212417599591312470673034071456086336371732456835631085705404415984103859206246568324355822152649741815755931875701777913003519906473593680538786579318306039150256466914204118232546699437401897701853666820080334483153516310797033595478812472528625876106954169059896065104721647059445587320450972143656637943411084378209733858762374370309137550269557861173330369411246306910848263558070006659206507795127087317786913820665883177986133442165725048085568890134581545856082732390837888652125409038007748199566081128151349317043870016594424226983109048092193761085649254600521494493884845617329343823909592564500860398452710865171705520168003402367285219259777677874928349207373564677411499384001181237462459229931420890499071204647425999206918617578571525086417354277722980313775036301344093086240503385341902692727575996939118476397534308371830556900795814665965576553813499914601754146298156075975289729619190371403605344561515264464500166926862558801253394086887615658211754400594453122975797118267487598026464048918473132099715047078323686571503283864447734377854865234185832584495258710296868537369165425093185386766404587711918567008966457509885446516737694905403763048488254376580703207472184770324643581837620634335307449439687335581895708343643922010681716730842156276700733267630129582073733750040678439984898594338730469495317180582694399678906765125236164581924707699053373934475259805780476675939125173200449795667608379665121807884676787323262580727055373064523786213344203067569662529160687203015963681098183566019215304407212102393338735249629007149058563717856874923916869077797285120401942071099117481841148298784727213968052982150529037290651896726066075393706734304295409401885995610579982692523408707043560845295106155116246207060761807814256165792762220277844249115541343486298869756180617032345255327002236418656640441823371064565990583080192181987808611735158269457359975409210163367139951479033822410924766574405679499298866572024714939680476857449485442628755749910039623005572709866764439285746577667268947871887258429001235030760823282434099382946382936952283458409647188810072229472385128935478610700906832671571343261100960925462099745527534637637246447220413535372112224897149289386118377784514316057163486608353050361055969103706074983024827352080568626609355803809706388688086968986166461530140134541423177313098543953137120441365205397229569486820091857883856013651925687748596703419453675909354387431496784675534021618660275644296304230072948899415097407786539375642837192240374503791478681253483856338836191626429395197367965131321751585452088071718651619599459757297904231835412533925247749189147197844883188647021514087568897867498394861239048969869335905148743451108202688872321808790330181849959122015931155532672411107238242489926319042398020963768264671503541019009025741614975642595412326427792865700936198871833984495200987258144135866415568622892934534277430502798772727980535431909094052098150130234721251827197926031222337604924865215447994778953194508275552793584458874444421356611207977965681973052272066853124424491445356439481954910026993967366371442330679099188632067781561840448200508647884674584375483068108975245393163502225552505536564890433962463494881817329893800906039251250168750250941445843582740103309865413791591165920592430566741480557025864542152825841593330828683100427945559861550951696419746862049710896923890314800718740508679054672425140744747330153007878831003691309104460296426989663493919149414049249264693405749488384631525870283389101842910447085764607925480034644564571157061396160418600731978474109860111409787900841083603688690440377106265566157693540643581965939057075396718666941531261130540092284518731395736327441633832012274812639288296095236638832989850706880483087458428479160913472922302195761267433774937416840411402764245445248249621882673792043605382587497832136875977677158403885490189074658030598044113159514170623179127446331782861126107004176515909772183494368552321418795139212424529152242592260641864672931072322728587893273502695194503306609520019393975194243002416550067171030163806815189452508394891568140966332848244813325308572665532130279772927489031936789132358252860064451419779234004152199424249100164410103250398731935767029200154519132969987112384554031503998717570198809501709405465780077055414922349144992123768341212317061742854208708105453079542782435609507224262225381050064146694618060630134147627078059359218223533032572170267926129604565874282777944311896084430522936025996321562517523224557607461398633794964324166124512045945885993219088826869705303840439168921048688822243876728824745928393364013733215625651420507957307578074051472283820442250471721611503899434453611065251929778453948661327536282476812267197109890208716271488685762616578001863373655554818456888129773739611678096432026197093365413989886123841523642582578063156147910028385707924441490952327734721768754893063297961253300705119219130522724372425559002006706814433025619790445031362980052000277114864149461478575351220854937778529335738480553388435871924677618194914377613447505921957311116539317252548333694913671107495182115031483949745913339877236171196212956643412567956712543259211637127662758741636834276940351256800507504740177569989317391400633772486334716684911339556507779913403942521276317690838410044349473914088318365451637571452799419171902358101478140259971652513891249116266813366010064176801492729323701960526045205021074574610622329963772065188446024364200934561126688476993492158014193154386106271216987976234820158923807199772599211083053651120985962478077202314273360181051105997821537624530577696737244747695231826035081442700807110906647036261643051727032751763857305767012969157876782867643517503257027738959038103346252091800039983655332549121804686058302565144147561208957052535442421824762308029299886059882013289569719425343234552343824422116044956972985634097747778694047347293525792002619337612101254046454625129287822348849134677065066102784088646462287169172721970345443940549324926022947613944294198475645736747025451645116653584570209554204757481766277620716965073212311176636326960290044507750635634111931846235200427277904809858838117452935697436008439441518595212268792120682131854568640619905236738573286726008695167639373697317002435858303574715511505994970708155326337137924897720689939444631855893486138395529152532052116226711503180362279165829532009406956868990466218259145595013479298748308489524647346773213221695481435276503238426904142442357241729253290350563002008065697544502134507637588222874977866257188078000393461871661144557448682492748788881217381216592750861643910825838751255832354110683635447755534409917538327834414080091031946370840540615305827528095754423052839337249823881488431487123495508980571253180618970099879930402237823374223063565683434785553823219355294476676185053833164204182897938801576570246475775000084703328543726932435749014852791325412234368901420724546868265234471721223920875268449397879017606245364825204894557439131644357061387059388475532894284392613712550436197813310775267729766524318355595614054908761727176645110865469108960090362197715373440456183633635688761226646813570026043237414930017731069700856763771095493651441194929718571333578634419061430048041419354349840697902865090636387335233089588118425153404529199262537443198105249872418920983249993217768185429479975007251784622018210805601293724298394313359329517006306415760690480010764196867657851465698335122147530230188150868261844677422436860540609100660747807724311602675180629640864967941455201880736319339261012166797494349775829747158037429820564582916803171369241790362176723235782120010056086811249067673963606535168934347421901002706336300477104235410697536062120166764895069804812087427517437411795541872949986013389593886490497150946178417582430446172089552759730683119209551227948456597622389661268837634151757881487766011354135184163095062818414026826383262233261118677816002141004329668112170075150605106733653829873273696987612689312680639878116838820387691860335982912479923086686126657790971871903688345823282745651620472722193586961001155664378606725694314659815738379122633290236724694150957553522944373143749851896548761275093573162413609741036938630732372539963546640705813504955185571568690529623755893186145866629687400663153548264154108627664689294484827503875119988392602871117979990622748838517131739454730817970311948463155101139258342915287029955717160246030087911106453650021287909424545336343056149146350641425588238678478908074599167723883996986452049571744775248683167410660120531239279253432190910533672581635345398963569112679803015405881473680603143809928245705674439325439343216745247830649426942799188442967394336994926949916600440469904248774476938577004532507629103407595476747185211094910540136606579218272748494351529987494258593827037454300213993354398651488350634158731580686122911840411201017365674082444344520168447893275331469869848822084681185561029522942420168367024946272924031766846754499717979366424705993715245194813754347362904765556531379362167537860001134478617361240981820746244498313762706230603261840323615941162665356151972329006645196414645929011831844789603534796549197400907261585505588674250666928262800123403600758263412014622222409835244858608051821673560621615386142555507943478232122518327099466041725137207168633156351361937139276524797516466257465532232554116723358501571794700631192856647104443079893090765464093463465773641213080473466837886676968131448221540246768374392536039692744403346321066348042005519759302990488177198698868888324385873577178310233642268718203824330884831652678987940017816274232358617002734810807628465108716132593820124842348357619443618274946731668617301114112617303122346246924288401127872078532545954489275819607195640123917923439475645062804060103007943658838063256298657628682593863724478310776662602676125160808024450776867300797846798744939758980941789149330649994413775603178991927786469553255045771083369741631432519972596337682578499909496594902178876966879430923155304387289957015046753718042219156450935792278837420039337162595956137853592687848256016587904949070226547540894128818955936442844828195874217100165859056633547871476323418096251483453092636524638328349854835864593200271693881757880207276856881929881838664378499694129510138994428243349195493683826411030083162452212939824511018811480993960905548230611135742481425356367788429179294436407836947467787038529571626783955667528245768746020134333830216781734542409546053083582878647582717367720932220785978118448722032441220999605442555947865494936799838816583445262713732257576791407674031153677337486315863821008408733671043299118743031744350303991554102952735515572247873848566829229439441836952833331167541339445011738561856782207854271625150257540891164502604541637142484202786939102900332424390826406772056844761627740577574527779868923679826960460042399406908061193603807736695334411474589369647166210950962965003548826961215487068642873707155320295758304186706779769241046237473317864868712053169811841352028408046996568191176173772417377030983550320965412644683888053619333844781790827743660578954189870159892201702389049540246981370955978002989597757967433515520772006901842459079883126612203848570638708552852922731121711499108008873126477324190044111180082343861698303193778809592021371950897786240563714510649568698208114730148013532047884197963902434034554553048446667210967803220889666127988746021236243889792408322696571957240066626501494919790668825512707824411086962855737390854049289148359063063917583599947043928265113167721024219902733162735789071328303375085357166886747944222334352664916314629953801205913115670734422930315694392776013706529293813679379030231675043947185342304654258440060728553530317905564480476776840562481040944844769827273589597633848021286840546396255253243755446998738446483156501156870539342023789205226921110421717287847034129586988802168544125938133156752796860802204013411491622519763455520829680801968555980038582855971207454583025953269387074517625495517086782446974804668461532988814269924667073841572250050769103820812073504951109840753952958241511159305503130584484528243649139511377060613171520642591016844541789404117996205011653608514164608110830362081010930875273469649994526023452487079089797764291960489162365437865449842941428493412364179686865546480525148154292755105848999527152679266611412793263817806451177667646728050807263670943248867767297187249187344133480699333723769330249786047713280679880069506471682720484165476719163543965106851107465418898514604817268979586019031853773858179474127564794580652249734855556599022914823298169617152226417029687717863996415022977489254228842825265592996521278892237419938837330508032763583660179020224227565414904636980983758301074130464841717173869461659687581334805043921066477538973691713384143023079063071833628876222505587901603247248233268632132031688343098365104516480591143312387899240375230623262466088659828564996434857504426994713206621162198570796035936745899134308173539440127435654023514283227038801239486971511352916560965778676097699321129759177414242368586207384458124251589975514744417183757646236152991367410868152134426712654501850901875355133718144876014696950947537762580387280828737290547488254929863925356586112719898073839511557831504530175697721836097586724688960856527962513440549725842996953225965228196031719061024847161995855997826719518285152099802233080035442758543329687664368611010057791932597594824627710164124488991142511372310632941566973124451516674284671331040328362944047138524632876205683506475235727552996039295386955170677713323070173315814577250662250350859229933065692813373661597466587823453991650411346998537725520017164111155805045356729544789546601298197564086564073291060841952520463874415164440580402482456448679780993864979410760971834817773580364425575639901167139942245625834503506681809825442777448711606134372368582159457555399762200850948360179849319181508752964617888078926723217523227860009774997329038792745220527832855807470692875659309448686471380260076308960968115419962717966014023684187328974116577934979818636126271430847270061874773645766433897297939965728580019655423525425168839226264338848105131644261056110874198102799923112740324980172648368627683546248949655246551408514063886887870446004957658042053122244103923240706022622638864084878441890248599559106005627448767526080125884487379876429764101243458852025401372600064743315980122834655778078507128960181254491755156151934961183753533280214530158278786070131094360517616473154092416665156435720751091609649355235997993672912791609348987028973825279672902199358654035407127007583388496866294791546081879346901627454490865235692709391553011497703738712223330983165210747900411183557319830696567111202914276851199971167149523915149726573479423688979971622346179868622419798351317245131295767519507951913404264433876758994984867372836677934881264328582776983161473944664307553168768975840343099951114145001042429341300255180513277343105873104986884555143349691664941004040743998579424162891320813809343473279953292263487960516605108288213536202986601122855032726851111946254541083565321125804077105030330689881738837728282054981326796774028182588028055331556372231272384185259503694134936522936070816211111888091972180416757652512913892759516192318406503436933201558444317643984296878251653661463355712419915212438531781155630185554758976889217565721129725971775266749006385662805537887254872293600436936484588472577050958273772588452635236960101224305706377677928240797629578843379015120422368182887344685816139337303462374110551667690822397119847887390818725213181050448668772176260832671936816692485721059124052035944962899975039396106627737641889523495442475870499375052487013461759981103054517416116407673257650370237357914734726416946409271414994562699584991460957511387120150295711202392764574805212763292051035821875341266973910491935682750061374779501242870350303304073671067936009973491426463930528682851677464402659684773457358285223966101465538586010049554278932345594719937732304233036080106015540503677960141058537787612687056626721060957655020132243001328805760556996462456629830431142184064620405047136690851959469306429154049677294798716852402983462231791918477927515123267590096263463490460039315423326624725261461771751969245311617290524512234559370826238632687651298025196473267687676333110120251586261986931430993547300144857929083236908585409485990582514090288038451845355150697907879248865829217081436899996602988982209763842063727745200360441151878685543637046650231909650358419891593344637481266827792612138583317308172837626054058530086641556002045334772714226477268790381682045669828297609274823262331961800720089587988541248088211259996217693168220839464343233388694069357556272870174585997407714224545316263295386086452881163452154238086430137742093086527832707378367813210724462410044512661411884286268292188057733979581043238345042018631229156574300302924534460794554935580342526553736758831179201775165837213187080353930285008199312585004417275317068708361844119729890901980799678673545279850915827915895820814604448727632914760179583693350200945179214373950355255517948238079816256534933051308265792423579573179146661583924044627570908014241463884619806357926212271311565093419989526321367815326444543069027923706677434969196947508880004514360642723337594926028680769616784239243675894693077681506940668563512097529252377428453018266061686942907531041390965927365512746258002774663406989368089326480272462476254883015668111058595713580203816612879443640350657791667323410682127838135757230638473481169211146146970167468187181603359026656527650790465490927666501026962336771457960469497605150588102176680295368927199662730541498107227318507104428526535339009402521719239635033192394377462755696732583770811643657796922247712981715472862065407857606811765418311243378245750442375984853602377935803054717475655715001575011902576262527293001049710620424975012895263793792664182905745416730261953277091979166290792410093396586007689059680172980462539150477828639772923535037990130931416382910121033743725029120030277096572928034909583539191768368593516000101398166163393900392685308983839885329600774464422752533041471669891664700453083879647272799330750066465681207606422026287645421534769600276746518847672664518903172949773314493197502941336757711994462545190371014448354988461652859423051172208631980819310703635478101676903780720429438321261609922800266211679110254909847023988425300639399725745830749650672015002154834819604432360856237992436805617406629669019349646310063210453907916541239215125684623763145936418155903840032065433834591348938522902677616074072824949648778827332952363410985249236246853118635616970848559669116682304958338442522063779885028635665930701546428682713851183307190283154649555262926357592357767134723040121032689405955567442993150540210916175794142116204124046279743021147490772866781428815675908717520313554901888981348057575270806255081616046737813981165928041125005352149021267313919983144197803647349738990033611076744460682308907412660794519625140793471834639455411426782762949272562193118875998546451609585191982102205402060841571434331496356721725642189328696976977736902061840769699451593781465027238800896360151689958621345001481582489233560090547355224718272086585877791377944466372169282178894055988201452432593621165730379281426540444721525931293576532729817682623799768760873707039795261439481638003903180004642353681389086176202313689374594267862667115028772720863016921928586776852847126523085704884267756752722156539422197348568628015245120361770150185108264734488607611007033575107241954681631951038274550814160449322316222231016138176417653863593925994462602028581878274782050680189571799000954595021257026938006496284775285559833115673227373449992716493275212010083614538187481909578825788391692704943537683278510390939633001613749847465570622004866643158874370391980200160224977471713595227504943760895053950323989416844784424358595120759522952853154677358903589448672139493349442175189263663776013169044256657397995714711869821941392575396117234119774153885833088043813325851066236724269446918530323081894527853576567139139330321997616962444987148526720787316369868367117513823346574366470085727423191707608225085763394091691954071684953262731024644690116394737962770816507681624260173184187539777964675315232842219449228513898242989419546736478697211775168287422029950239772089169333264530201554212433277122235726504404377240036200129930860684278069155667102821959284028067318058490473987437511319380119415618926279026316709973295612958206877529579694110873762048529124178810900061184940853592467475733898640014860700716725197795806337740854957021473914027797235533796880356798202915362073329614454426456583262056098472015564695431361770808727413831456716232673806463029621610482356368793123350210842508612738899435148488632730355449667229273898260202955465116913000383467597203214921464726117001859703586758304961523747993488748983012048410398732582020131104288965572348672989922192761755961027275460120112694448999584949041107242692941497647774079469728124531916128536961843094833636557896658834113400042612390822701163932629913516983327446001431388145772447343441244609346374066656885473344693425358499868934307544476770805386488322614516658015137584660281507116138358853588739891638592028798963142828822249236368217059638951277278923247977735751601494662555090756989996200110376875861983883813104352922278459661156786795915792814773920660780844713665585912486854245611900650161547479951959216268711243652029037958926117820011254838928456127804963095970891035464570582988428811111601201931516391268806446557982028743367631756105026509370532267842622634485720122502431865710398288020239705343305400265988621962174059269511918837019946125597091743840122044081681589695423612181293297285413391874819502924959750279738150745240878778425200901156734531981866478698767764545238885837299493436572800781081472259732869405101985914663539719213921076673499334657376472860673578390745943034006288502136312690159506232391303229281329966494325136239551115054208115824709396148947127263143769358032426121284078131663730190138454628151995325266668089006593466041748769431912899109567207511522613306092148801438276176129973671968433318719439494735719746156355443922765607962208718652194420583900557452098682049198557379125724952889614747551772944019840050107063276420984109859604536337267769426106590842208793355970261106563784790093039029783958898729799679338965478498131514777120209225460971592101688709565427741065218190486402561669551941062327205833146133791060132619859003248692790887653583596121365983902658804883641309698679274114549994870951284747735109252563641814241618973079498118752809346445833867215437069368408508200549288867657175611071053782599250636780777261055293428058690942756374437693454275265748149166273477595026443311953097279554288916076470638515068212942568786934353703643276402702257542530996177941966405597516161106463047657529214617067957256257579755812557635040593302392519389322518716059722521870688838204795979270837038976446170681236433150126384981280912184117750929646342871229620071675668512327539117265314181518681389619263439953199510577621834392309433064389490807927128078754748470796500047904163680309586580869655349562652010901010714844916504513486915286255412588643914446948070327808435082755701152469196270487598163158998616654739900176881178861955595985134922162846343417086759423908591261190487065571686001236887506465323384651746738046909066317489707313648540375777878833886618673331002515697221894500778680340600002091890312522798054422020002137812014442305037200883631814486568548808577759258460934680453870998160679228813390872456867987329665343749387799504286620542275852513391666508770570558042214644957140914109095997551748393477301984004174401415366825088146513976536906340490192880838451867422733725345614700119091394128436722637219189968130712883180395072776809173257667473343630391397841005906357453890657717778127822848049216359211769545035783121460542819581805779435346902981860828931719183368779943466779529194429970744555911484456523855509566893311646052250910491452633347885110444444472826824958250416733877652338183824622253715788903464430521478849117568563347150260808898716529336034082534860840902351783439254309666715853498923451120284902785695440494598843666239710831706492175913701462372502452634200404212657629917634869375905647034418040639429814151138639604729312559036769385682375882048675877500622851722397614834410476386785527394086632944089044586969070994069310796351492601900291083444753928656286273161106814877772133298223142966994390171280175128252730521968749833056418372954901853368426831267647627798416240711900049128209869681000519700062055588574459513108367774866910087142747415231042070667705070848701687283836001800475110459350125472813157486112704347132379461924170534697512346266924693010463050013279442983545226245427876914098341196481885734466484383728984972682504871574772280914938222971792376247156923741215817436687921815741670443800432753477041258652922418351121723410961370396271404744610690552011057553057667972231800045074699734505355382558236368761847787752129946008010914888781129390229888363017343424358686729385006933840912016189510751650712868596478520983640735050020481791675841904814112998275078790084144633570601340295573398048201481808431740317480500077096470423533323266254936303585158994741171861514903571736659268561595349629417226858361761168848305255626106907664016275224889739400189293204819505381076758752798183635905816627907225143430527420375073490755047944069992699844515767950982559308072020577255562564127084519177523411435168859418905134561670896587039407634972868879866789201958573477690008308403488865636322306087738991126186861441687778168581884406885406807487467985756016673807746184411351379774237407298402541548431821261277109563355027369993415382175084731018382265914239987465409213135563883398058346750301966423721089222035464762726392893635779235173187112245830706921555302326055704663808980902649125009384298098157129366732285414000137099773264099424732085404179535611655607776317108655808103626963768386741560130738353395327681529246187541689905942748705978884753163396574148504442567186878666908813136709730354343157465454206348183996805803927533122645062031352974781410697959859947110425359034072357181845318810599384334206992124146593298371541427279797172677049448108821936246334839264828917048122360571333020261580380589526931429292981806299105378081316133015859676753573000641502804693182371758304771554797515198338369837524895314444654595947067965087363222958732871518204729620157245890583851905047857931296691862997320565926023862302616638441023139828783337968759856193472923817201329931353651313192026686998818672303414710784357246754907093468448518104498166094716159732726725084267459540501985190331339851347409281427133249107318094685135944486339788698835425031576914111207488518471230542169269410957067808358336787335634729160810319271062281486736310288412955652675192325830801861489397913741552876999554320359162260275282442443701363912556585956203466683759244884850627504247458826213045897917607530244602738015214049021212541622081440421103760969908212410050066466128636415946558001303956462926127978371583490612764424901994740868140830521643525310420531033471798746293101244755927495017308141565884855488724751213517549769758804182486240749631603984364943917893764289268270564443627224590190983613765696473964610661232019419388959846478272643221257378508300905292997014535233143732540526872754410838310466283370655631386382236051377037072850439051134018695236938411167203694513194969376696142855010921024256800798196481388111694139857483169847862127082121136379949007576791549916615506003580475604165141327466659386059962258164416673627989066137743926165162708421380841826788564012921928092358419421660383254966757069533405759208196999024667677118766209941486101208060093335896953555120819254697005437461877140699517677570933614854711290506575973385589951499533575157855083145387094914877405310490731774875759992578382991642550684203807634061315707857990881685790123318598474286522603705742064487593230729128960371659156062391196433800653187455695088799952613545430819060109411826166635639104229870741583429364386700827872485615343983455482138239582914951860522727141709622975641471619699602592291695591815955471639685591867799587420975035482111810668779741853514944537451596402943959314513013977955209624039883084138925487478333763152579257714356425393723502777214291994855451707591096004152144122140433063695689522689162647946022331854534521594277482388393213277984144571514804789059771115936601951332470841285372442365523431704411238116054630271617815775002762329297095608126896757131408589066630911411235133253667299692747680059603062734053537055757665382429862585354389796359252633367701495506195758149634652754902626921493240142809522118184128405011126227352087809026322025049550130662168629500610281008206737780059081978273106007871015015295743703367632320650981112996330521537106197370459973325939926057955079057398475250277199840767308228550766307361165424549411347500297888044432447469348494247197347267257954106067066806477811254459455232854604050200701572691117683569225532334746589118193971443754116059201582634449108495960536410166073238295135098336135869539838746973458589703632631589112928356214992564699236582561377705990826521081234829082524445626891901793344349351858932311262618563080374344098730431804591249801597397473651001773208531247469816736713503564558417597667268658509228432585104395890149427158049308580042746346170777083684809924562211338412774268145744227693020854008149354745069947675573927347906130988667527497752529722651421536406271178227678898433602039852858693998645309118434776118494981798436045131073137556201607239944423141511041161099233514904169264245946653142978905340971788107470991043812342462683864574080385389562867135677278562566571402400971436805097101458415262272123882808462587327426725988990984380213369643824693311926369968537309929468245529044595742853538210388101747751052446695310713683787950065446282366797106579649977804870807389978435198984165709850345430669790205932976839241878947831662947498404544361894239369500581245427495276157166936541174669845559182049720615464003771704404601558655123259006922761003409611214336654284289232837069738775212567504815913103767540103211628288703744068127166684473529770875355665971785202728693956883445262830387070584964229724014731825390577289992989159921928099271891050258036885081407016218382413356599516485594994101974291205359201210846987089113896741529603985034403790557379092344726659275442112475312554680699626618772490829653185557492145714669829949491689804432697650845664531775954452557942501505756101758958040770744862905168805259784239311074478564704214446547289147971946212761714997941481688220294643172407066957356475693097183300744540068178731194827347179891883199804488523296283329902033340276376067814220952252869371794024655353844618241131150858479606124768174295003441687176386176997031459734127609335347706964347275595477192134305779714098022659566554789263099685179770416802853564251836863602047609993580232802451921035893169440603240358859707150648530846291850913966758735366247249083791821103509545283553257483362975184680886625695384318210747432339226700764738892534611325414791205179981181879313140539402987825306403790153676290207796914640822667500648984886151074291800663309636139695980558797785199627246058423308369847486947762173522943930602195580255295915164231483782838295696588952453204745998832768012037298200471571795399821982779170565188628687622699144750930469751557885909709230545807027956683837918333570938836000264587520962652717417920945977666016238282311852111090416505776030904960699654887120571902732638509108388582969724110604080905863117068958731677357306269249178939906518561330005682512522901808179099879903686274576469914857202183416608583626552272837339153330457310909285655179591999012458782276670173051850772140371301522127093981504290171774162884748589554299559678591424040174313212358412191207233195372578502183309146461627251861710996681068937623941142705308674000889273055620398734105153778907244838948602727202904236582520921500886546935603658209123415589893572006909856451700552307665740533453032398331851173071397859550837368520129396679994495852911504653254130159156950187111732907133723619855820071836558892530028442217563376801723431772710688121501498123293817924786507440480210717780281853843213847552373777287100821926212343529423620123440765631685148932358762250315185863619344244297928962389392102621303055884895815017031741927049006783683884935781658103014699407673511896438063298186110442743882606544230163253640135528503441596599060196234890313705551783413241114335167201012691574146938284701226383210232283864758068416981222862088909365321565779338174964857721093667210322555583460136446447632761517024165938267871341511768127424119306997603085365941134093165602084276589390359322264686495181208088578585136325913890199706140288639258905851631282732850160030132323174476157132864087446158018966978835255839347376277400732372505661373488461921543308958471214660461805450392032696929141797259495412646569505894170525795585862882331464548069420028055234382165002785667202009887064565045270858089073331071014160283833555778445577820425162801593797027197434173988516674020746226419751099203603086786550253650975766035495369333031974918959373833317102828449560589451922824576339997244063910215262216032175167075743304377871517200153654459069799824810520387506490880790449060579873510941024499620814146016123158191883974720921638776307270571369367927966162474929482981682334118605433862992034456725058925048517314812416837797902791177689848515196863536351584798918304984323749103528401951922594414828285341005392347720300575023073391836231482660993835503350820934784496999837026713400877011360947566208494974037838404638063857742340270546588511091069533036449976273097798869364435309754115370206131035800223854203232493461219486839892106326015932982592039328888882624532279486104621356607962949097216149211174553293090249373291869350977032735903691413141740880952809395206771160209583271560844556535308566516470090728687219651650590250380500782846490989839960523184221298188663793710185053864908432957589353489545178345319962493989759928077332480328520556534329786851620401456014603602138150137972226167291608231319863876196114038523689577710904630787244350690737943569389811987003898128478896202846261911020710010957056928180522425394406816137395770868915243572534892612283659521027624403190010309945446521600398530687911308606433075362768926462647765485860919991125231869690642002968784867390012166133668004341510316599213349939370662868317567203380648792690376273023974947022744034697157933799718605894703270866034900849229991413449777170588760158096794333817351425152450730977127601872579226487515457876318445420080311396096467179855123249871579800237337117344242006949731204178379019407747340772885807006953949269006660397436941125436440676745243552878404771079156519639238351112557554982603530094375974396863652585893840437691610347464251478190154824997986693039195061056311985489978353189473861254474538675525735103646471710335587504922058922217935096671488264607543192890506277871623508065327750216308713566939677870512299891472212103625068187905670881736517002873691985648976395903705787560398243400922222876214984848218735831268588846889967901717344189929677232407224655849239514670529616262393636615173352278448499403358761742983215905580608169122742392066507103558403495965187038096608261267182529524503147025104846456775867708438618518994240926959706822152354493144124523481696335245897666006372455924630451023262683748832505569443163399294770404843486584753492057309362144920769945656219868092916241911973726449630074341404374246268881428123136598100666497973539935451761890170517520451713143557931339140615856936066984556162644653847146517158028452873645228908580970861344150840029018711342938925608610790998268525451109997780323289969303398059809715129688353346796291128033143902957008870511917444055371124989970780526134406231051996155788227626286165828851432818188260022146663332020470059783118105522665929290188026389494301146223815854009223599764296308193688587617355846582389950241983878929025903476368197185102711918541481448091304998381094199200439784313863818368805748910755137078666965220661027015979192471585823684020825872860068597218525598159645487363159808943746911713157091077995865018742387776544745219653653060849824114864930573542443103891153045559880901095750919310859486570071751388802606221620572898268509309452686955692071876591341018124713661032506311229114730584875113992838994041106880110384907348860390119270990339558494054050273729582260725304151689733543769772020014420887230927692126572434835601388882123469049599732234856366103621427688464007533814312341855267330548818293073450064032548132305154866777752525467663385852491611812531889776873163004480826187226070990877433427345761355003281782928590691927310486929264878359563268127201245249669105981255970528053285587616109040459761779261779730096655440812197169918706285349710886445791610024293259594175773389808597771095062391845722173992305122039697863226511410870227457965860415388405536415395770476310493057341016865025436286082262483340364447814384487736443740698302198339616898361561232289546304199516671586049861668878324180351443787573755940047773530401416171138028207065869734670892925458721491000753273833327988006145042285998439150361158358952366713504520246498509219294914106356635744659870274992808619229178902063102855108426712427897185540567101437368242321538047751592361791770638010135178190532742586079503117883520273534827744976144592042459587532003473047020299792418004107614564112484312764320129515625971003772676498800139271411479384672811088238780388230388820070157453999671137087069852275576068301045186716397241122201425720907328672819832938662112893826503787704324910513233420044370341104938002619141510834967572955879534754289194916160829460209315030204977067167277581633244378434301235501026196166538978414330518777252620073335362379874339028117635179733924298043123113382988682700358101729479142408624609545246875696866313012766068171233643821096778544351106036125218730270502436677990507271396454046669239985959291746751592165461802914157383749218704258670256380262452499165040445938887930756172829678876454589854231112704720963854949942502304550762074794314479166970118960947250133689286091743440362758574537547315717444803278175357360554591911785600186657322348302355603376966255343830023104781820734610856138515752219951949966720429658112239449787756636862514065784031082987312585573231534047670249533801784462403262125736205772657293681527305601613913596461966947032474129321207814289178516276067949411171859731262211905118197977672201950850646984561733257769712228162473425744287178398175848331975158575339589687126215434073561910408246256365517853240532902410905667352319735315080385378466130073541674527002533557336339665058851790078870396297331953661471919484606902251404544870194228608932053591264837384386527242810675462770627845085028550957967356228925755555710282596984310621152061547113661898893501728310099095994848542180066982626616816511437007949678502840745568670278205670316780403231829690768254028651629622386505893303970273295712095462908848845342643945490843061469430157663735310569397466642823178200998299780961749436938699959238936142171302028522903527350469305893107280783013802845534787027783730248983239040215372429804291399190540385282704085523957959018713204327182580050086478164702069135203049481328486422841754901687760391590097847692863205156259554739247708104404211877805314251340818870039798439531721053933740746612971851407668124507596679151693851012423316277969311052839361320224879104338911019104893201511550445569577828678356496316968946589484721443992048552949793808112561080352899826817435036338978380895944139296020509981248603588884854363289584571862400423600175201770932194555401136949741576809451129756537011514316388947926688353296169145072276792849055747756187507670639114744768982667031039991246640943256805059408858904116253645041530565927577779022116564778896664787633402616470656703934198988026988096709557055072894554526845087498189500211274970797816988013806251874199236014087770737904162847048596768000398708506036817578239425815967024022371438577604559384695979665829718926685591866842944407945006650762207134560843987191465275788476737342040426045706689723655554112327278291925678941290283293100094138692834703198250600316661270071423281349956935786226480465538661856152278863595203112438613833081211145389617352554184687755567742504840589900225541919706399115050250195456287365630534344360869221869433667235945473091812333294936041567908569681851323709484488693745584464151654629380084038082827751964103961217992154659122713253664228441567682871374209747928218499057895722212738797645494872757811896279121842692168458121200435268854034813087831961875445917685074811354937635945241041844657611773243609941139502932736146647026010317966768413408985567458531906072282182736283544204389187629904936559176909293869515043813713902633768795756071311330339537534959017509667707785241318683450064010486397049954498585483985753988659671097750058073881959547604766868306660580935778889533027688348586396859586294751695729254711759152898418347739537782931396087108605167745676796927493740600465461177327309318046162339096434216231922003152250652895696218316197607878182270680038270125336911053298375687345106010894876339804916758949426834739166153489691415350332366833586410069361081555942131838524847787706676063889699560911115838552206804403047284229716408407910353831299284297798043613456025642071167623368663349932602258374731098617817959296239894520860560125863261104542045392718228988748465732061226588139841832038874980782783548129800179974213409242538076909428751314397512936788646206803822261367329561245264957801771487266314581315345035655081196741886388185760684887360241630268084665048310586394767622682878054902007102206168660476022432098517624448766599102264700682426012379102262034425197535269905105068317121585411991204223465589827735843643609878832618039162895597441286659185082458550895764242414889623820217743276955647409286201677900155908116120477642947894965060175117074604143127542753025437400293886339776526456370689917874605997249582316726015166159175423899663275249771933446666874615541080162824273072773365925355078137267636549781482524757626490398383721643801957681258982084396736832729634560717738253535810135278858208350015112624130076909314816555284728470852410883080230127345416794050165160388462670995119298953553247418522999356775739106425974084281413665585901608271204963194686493211465634209825591162805265860735760263977008135339551758416774125142100105135459231292445685905073320965761380039647327684895267453351920978066160751816286490436579929508157228046107586267541114299796416306010283726783182539302999204054911622848527538877282251159825036744910082626264866558597379010098045375776001415627041073429322717815249166858407872628048450355798417752773964012526466501789241335941357721021268533158981622030135500008612865401659109465697388002201673880405172044369843095906796246754542669135278312714022985243390426194573622310272229464216379499922083678208176988563772281288974925711574494342156329268802498004613546493686712113332306099580700484776571332445383800179079318439813489667712904163748443474897047568698174950361300151855403603427633521744708295396502225650011280816853464447103653005526053870940671239264887675261469379728172830165355964407099359104305813744927598219623262768928758782656404015152505396894763304563382476252045247282598988933212412264036395477685358980328584513945706751556944030969035077118778403030409268117987884571816578265621986665241064528386639895207823362922455424511772993455730803102926561864368477178832701315266787606808108596416747601186460516256578050468253249976300019383548827907840488292639949909805031190488089059590039045904258364729898069256374353649224287356277387714811101688849443349281933310630576026561212124536767419558149783216604761993050288262727533171684037556000468789310479558964698193958969983888429585801200544762489856497233557378694177159514225693823896531455767302323661967705454725410023698252345076477481896026869381561617389197249826430689625298879928030634620931384660720120946449302152802346882499269761634251877540380405739227216249825771176546331456589029605630981398740752522754873529934006665884734258292982945753656141952108585911324832176245430014410287608062045095249860173988648642085170738529316540861269274050143120203568623951405839385732018387546018265056351799382130135517132249127811135117808141753425080098639584641732612121140952410730917618844117001619302030015616470733751737528902315645891437949639434224874630385958126560827341991577370153520590430841661374705421257745761149986552277856920938768908729846283071506205109877156522341356768946094871066825661458462711263350607713781327230171855638547139960136077580577170875371538164131010941980379885256595903300423792504776267692755261851307141739778589909415349306088211111674733750681121909467951752170540220947291316068503986607648893086930034997099573434158234956407979911737792837644400344530867079140547601533400913281799674609594091070808127867220010739590149777121184454266967838826866942419645620737715074128838943949833905224508073362284500883724252867990804069090999545629396262482196752937251969873968444868992037547703697951263792009076639981734300297826089641516039585713023629641966053650817711571148378195714216517845673865182523434927889022820400011563252599089787675519026451591969560145106553018336464498736289762977181262490566005705770943462652195800024582863552911874256399311666694026415284299594369195233409464676671011237266203950872999960476159207065118381474915447078917338018010028024010007846647624579678569207479026936603238749906139435982794282354788581088897423386028087700884495383026393372945706430752804727239444406087385818732651696882701683518232494270263491471515075189136068813512257784418362547349890046659842988932179313074778749370757266299426866346184743336238879394771537584138363131383458552480033399953853410161727816466037450123222830304359317595938936261448100783512252254239084949871140784736299982953778143589994718034145674665182987860288770434153505159852231846056156665950713516731450771481182637526375099667639699542531692037684992013189818334952945683622698207239989695002466059736064381638261137462269445524714009052413109768705104515645760083327408566854392351980114328504687616191913852541718619346047364875854748881750428076183177189002266074334494828153723478458837192868794945861949101326320181686918766926808384535325544221841831344043754881150378846629189181729888083973835203592556378435522696653509998463057884824668946039684751256792946724975983385522297568480639197916902251457709656114193577456056609636730602219675759872183671903332193047137304197906316796011763438673752157673452813523290906252981131346168744717762311156515504227275441490999200366706619951385963231795516864250568954405443878184407116047267550511918671610886118112165571067660300465694014369385401465005067517306906517901492808723839216863941593081563214120176477626180812576641632309461432225568689025168106010267629039880930954933586488255718239673063674399881345809923177694029858120709135086133864216683232771722072906574823494032177238682620890358626268316798215528951690899081214677686935083429679227197900497743842926067486330585276662100056065255651901807240478797363384597042217404671447057718599153700876362316396389010271504031855863762860628331949855915267628812903632880932669247273426216948514256192030472725628652455996239688913770093112493926947711077670105922804818819600380701015860686756256423860564818462480531740390540617593497607932622830965294708541798653003540437673255857055022243114199021391858742837183753621804217444736742837531554970675464680014264559578202267882814639560503453389539247112686366881498702265018531608668798190480818030149848276633034679865904640099311098132033419503789818199747282747293976060494582731377772976174462362021284626843907582073414492232378958801463332072987779296120202275699502442905570060718638355211173268773739102982639442578873850287253635844620748081444312214845265402253127214354499261436395759447241646554548544720297977296485967835601879323580084548670995759950883777146513693543001813356312243567543816441772413060797984869604982546203232825235446055631869562142118314928423724961849026268994350928735307278612783803690386965495688762197733612940776275761486531676058076406327426455595768480559377346621147800455969768710445179315641775372369733686863830804350462471376023471879282014996344741102107098591792941163093285387110368236724766069648153855640064311924994317316251123062950957827019352417828584363378637838671037837552611733469158534176157566169751800826530145847663651126275079133048128832261629895521130401843215039436907346599497790717501271160558696334245472013386943684220919034660636897571786489292572485959764216613383682414202467958187813827425234863721497447943995310169875849167572135732528555347987338931788299765276162646198798195256427092694518649936990720670009177634331426320518509208972236169473957837819246476522606624437738791484779346184714623942180453327186458457273461425966612599743394397279527980536393004377111850835293624811452585165199057385714036332876567889766771433294792618645328909463245100435331128080690719171866223831860111347105263285192814190661428946421836985558277507660310833336876362902209694805276198475510989264177176290197093312549025957853224485024106419974584964346971451436259424919731055155575837394804941367386704301874197475631127446189979003753843917647045445409880680340639511572062653881537377422053355494076131833348013112522434553145494588325735590273188015613427170478638401167946679933890314632185813529622824447650919349072009620854874918079363689248053679176681825222716690463758588926222665052449312393583118318555882900077988286700088557341068376044562901204535384854377773799670336080292446629070114007347390002076864563575595077215584508599831401547337858809819502822147453753893965551267581932952156958548287305629230564261446260815165955016461998632054387246363543030491154969646916855252698520856057394018356559711814558275172847907109069260559295131748792647413712375573543610239045896637493766682124952945482297218344860739848441501594405474913429456501478419467665472950150910491311151123693289249417993490362081165740781937425148220229721626543491280302405365774823033362701847378813395645873091084539467704107044680643717599384988606483363191252091261262598688085502691050480776669994256902332284786974137647092160210927928812224603497300627841100851536995497363610164661543789221217122132602704856842308869727488399868638511314010264830003728221053698370768257441137494539060712482633771146327840690777330976612648865384486689424868839126196360055265425442477367449895452694857513521008989977673602278914152450854886369617220716946348379940598450573517745379487247427860311765708645658955930072656824314357729865240744058886090492915616126115824025690980929849409143224699640909499367521466668053219994515087053255488737411313527681744610823108266121939113746886100448541346801583511642635429220938974345549971307529591967992371836656672559020240904659538482414366864291882893476533742191839852747714923696736653389736784894395561237619431556334637338249501345392812933000110150316862077273674631110219184570367946633894279403599006917643966923827885880844866149760396640134617524427884359861092452378498414850823884742011551441245204365475182092073503830681160747908744669008230385599727578750094798784688620736645412352810363544292235393581663264857003152548409415740400986053050384682843530000519315788631679691669733268176417579994993129419620076562150428588544629791778200934611509740195829313401008891221581967618295147532320136777809991625337203494856812540434334514289034676663205651934344995889457741802484624478849728832155053054483385325316291077180075745532786327934460587111964191055249987726497598398833127727055084755934463331465483219607766508579836235793935860760064387010639485213931287310935263896481063963667444542493962796984415839689519019252193200848054308910909839631044970399830937616886141585450068115931990655184231210614848327529450116593978342930822187425218426665880032100907027196174666784722845427070113359862249388873294777910245914343438717525589927192830234387652973175973652459545773397549690408909012444965520005476933132449700682999043554244405998259048438707380201680979927000684624529755193986941999271890182967772076476251396687614929430792832128761716788982266376913892617759994867118688703968323420677736805410220312099708512230664614393293442855337944596284796676725471405524733020732607060463747325307452788489296861603990604753053588314248240270020727957177849495560223008521249168421485210310069126445383990274393422975111428473583127255890484533140448427151428522655481112167366076853810010418481251855866343126987556683952749144348909505137016816963242637296942393742732674559827257985306048882831516508098026312850680699409466689385821000349372206942545631584051360600357801939948238438791317701532088565966281018748693716797452188066887954826143971378693205884399905188467869569344430229353969504916740888795013685384820979825557967870893450421983505849308618602273237344549959302492541429401929721315763669887829160971146730916431023234419441725684248339130935505642822570381830258829987209389869683321826166017963833308677167289785678978679537769793315076184003014943474572072296973785834266018796076336139726907750303119283252197091412078216473761313669824932687922688740187197130330739259048162532313973209897851530574113172654599539301633735906778681527711846333799919995530526906456606931877493843067777480720026476448792914993320941793772625836795663964456001112364625295408564336168500990342439298950178696599583135488624706116205865987766353521663539186190511657043764755573523755244858243803676689428185275800425298647093263111940242514693765375019074148297087319146012833527675154275293792363829022966326312805743129981135064955082271620781042927618531277777591647298578141960442868790423430584903349435044744721309877686574968934106595451094698290914469364041361577164932163800842186606945705902323127294072436934041502407183195165190415652861850149370470702814467735662653988833725270694413069975576955204713438475258099319839551017617067626996810131062808280584013112832996595782523957064557175943318485098218833732990994659377455225056243598518705632732663605076234447361491110617441549869828978744117477408048689412845179305242771239335431520422269606211876031256384775095015864870023705252125749840937819822767304617742618203740917266122184734505643275531734657456376210062938550836163756164379501324405952630069363871309176185863111574075458943314712091156173778006572951011397711365800552886352485063707856668514026421331705235447665584775065735409645691289248124479373442293758719205583368095216990291366110043653313976743186562434558602933080512323051002513171718458323501154562533785722305786130727438371667656574678084929344911016725731227711180684882540958727446265262491887920924090019083959622906427731833777953449861170623629475695196197531282507101487072849939772160896348577134175149832063948380130848232942096223740003658517858577429809358462486278281980704821654905711808252809928806635635891135735552662213193312036265066283500213680631489777571367634151145720596659613900415677999862373767855402244968469083149196884315418523052741227779607435966997159732893522086110403884363951046388070298739404364464186167068065451521372375860428920264285920884251579282002432576167371716480250703039743585842558751684196069476894960244877144044071496141562179427111952598109584828897191792164333052437476235939018432312425258551962791736903468583796181994492360778797929115153806075916351299315128801561329258837748457232606918080031789063949656097112380404966696202503683194196505136899345678904514099464029309537672479438186933915189597211515278363835565650056686494563940555255965142349455863831548130393570080783859267582662117173075820694071216121757225456442488520668956733647935351792790753117686769791245336965625355849863068479139162576600499527297340820523433040054998182788699185619837916030542678193087165173126618371705093781122787516063387611030426274842275610233326907872063953444433429702365916952089157422041424623158443408300465188499604570009525823240888261062882673882095713733721293616131224000346350542452642147524965583821558398611924858394343498583461221668623928906003995634691735081418146045171906293909663927523524158116287066777804454832328323283797032671831692461333449948622563832738249829279604408406073690217803077086801097068762745752623637859343784780421619861814907783400084350501344760866949649210154101879325817502932805401288284846152967379697357315491371260063975852556424120558933664074355222923783335796476762594315829725053201042191399563504779736472792206077147302268905685747468198919869463878493744628130378517095927386093565554275978243174923827800230508762557226080726179193100264193225869165531685135124535715469412278922396783182751327134458050831985747626129963700767461456368783620890825768737568253407004487399842480864838624285483687262607181456002735034260045632113355253765661170404341706617120232141153580156869117136029885929052335002203012091470889515931215760051622678560669510251057993590954182072622627596908733319440735588287423036880117676777077555000698728642945957082364854182749240539242821552632355632560721219871714015557083932770457724616433420677103808122644326442147491646810673011312564295145966182556087385834873822191310950692471408140187028346942997498368198624408716153477069064892000489172134024264262496700004826758139730550345921051951274060439632586194740861980579571715754152433965382205692627057201466066926543796026378818025448552385505037545815597012111732989007697479825700094631255940875310848445390547547688297031274819011641294431715680412980047687691128767821419799805018268864256404729750807520347574086921094204189326169482418057569835356929536713420030611352041326859087389051053190205164835579942057610983190500055456606509348962099886844512331021725199623079846125160144425311740255581802591241504998680115260801359404404607661898810464741159423133512507314471627394500336106777829411084705894774718038487403967462587062520444574172185634769707184675551978806918685467757298903531537954273699919768411718249316617442590239934091398279307338222242094532838884103699995315530051371263078915940009425703727743535118627250689633274269660582833086051782655492552016740286568241762678197188974996834254384411041002889318411662819597289356664974697004982313680470559769470351956562456542171885328411667767678809711203028662053832413547774513354462015019426946022397813989296499154369609811219262074904092782890089266382897244922164182349735538607980702258625180630993015070291257403934009402100109119898519974170400611806477458725619271044009648338055354468448460906063508473442025733437233732698150709415829532408588533728546263586855320821435650481151547722687176361874004516144717436880757337518929831937032045853025513997265100879612359880959705414234534375150925400839092155582343448664294037966329078060586437205746715489914513896757510933015353516530400979716293588955882506101895660746975338052979764574699987871582285369545467176117867406938602177779768035160000007472651764467657846944874715423396262063777022067998658953155807757860219884274576312107314807941794447749838833560729510590373027173065992868470164457364022568214259680400465517580348892709058186152327090068592822607640175496622266352439964407341203455554048360435217937507143337292001221537928199279393146349748513241649086293111999527978072734434465117428922509301476027267807877614195190123991973658581010716246548769076789780211192473805911773320349579081772853916313840114513737888080201692260504633579957999638569642857902919560364256237554132466911483211396969779136994416057193892898502574638234237950126172708435670997198935404025034737653322579468289749491573945002289377145675862453050442038281052379919895631136552959779281063099390144898278862853658609453280108005091130309853902653806490154546444981915447457746594118163015508628206738158066642420245769324170406435647234132534713644967029111912812260915777754827732535778316629955827513955421124064089998416321365281267427062320661504027528981738430561115840191400559035834712365536864814522493859889481938008300142850350984319512555513749188581794729733666745029390470347289593048889150352039415858054210153635878363012376515367942383754750924364970784023371345153605790559433900196549648829948112573801834504909418577254472154446902961484461204114691816820078175265911152002090163591272043479900328835666374658974847809065859269091822440195343527981616009099098687671884617080145333713060609044489031501691080719208091605474349279662429657107328645358286318899771491393186937504648271915745502780090424879852317555278794296795268070416616322211548327232602812983865660545020351986468923872361330962610439481837145843501862150906364158139121732343567804672430815581751380057065603651879212679775455344284188158517732797796927734028144107441781247863572084831266512687763843471336623256209501697645300432213285316006164197703026374941041111111294878847521570105624671645207730559956245307410744083864407310739788336921521599605016282383114565052618803400228757608227095896883574067214555747175432680976911917341439173758078768204882099169965065538037874211663110630043588648635551305337260456253837464451529127513105682351807480004608451787803123110135021876636286526633459662310074758255404719654319102904776656817857447245055465190425702057453070794733241032138901859372982511888752065349473845171808726989721549978044650913690435460600188023486560919256946101067965969496312297950310447326182807886263482953484620356790219847107605622262609605125036282133614763839389191581776040751520450398795426156725403535974966924100793709906077659822294446779945514834920955999841514795776081703445368896706618209085287665546055820370229367635509494323583396773749115137604937878284128820380785848178746539079037560311294557746865459278834758280174625424147139911619459444508464472859555284718633536613147022669739502856689752500681781037150427994961347701329176370434201463194697204158958917779788150623225685632689117876569269715134953600176901184420432605735732220429278896244072567323235227613032027942736516732847123000109178909435125269592464634270761129112294590257126650377105197556311396223318718946073788832106927621062396542653151726890746656530413305071616648101028698149600695196458763411337388771738363314124811884663453547336791626330753696027351343604843292953123228551097160128631169508842538422593668603273497354718703513516878630935494554313696946163444078668419697138443931832420239446551663383156177278729293160701286036430648007374947423334256844889436129066732256475308810615447470912950701114440956429984474371839917832361014312976116981472974279393356827056812117475898795533365614516785659642477314906420297357056233602348061662720526419002911627608323038176346371369739678099640661228717307580929531905269540492626380402789873954564757290387307839835166910862665297269323627060334416823187222050612911298656647634366659115410755918206893452597887111990673523878576178758889060864436010003821558385911209123742477864043864400198785262200723184677047488024961767833308765260179160859742979343007924460578687110021719986830045555981022815672844219755837013984235903901345993738676860395913135929188276274084244836830886997869669012525943345357583659692293259299519367926974891489505150313763073834728311509592654132108489325581268976933209155877458058812939714807108528669217059535178422339723372495313414034633259023511829731617827264862242734914955658977287119703963695832049707816639959821534673860392466177495223487989420572962703574279496010144809361897885195261777503526282750939392096982791064880306517158867353649769609435669182884217197265844437937247054953079372886846007433969087702129245467971391946522764447950903687154303504288303757493123234257076622406696323550907124922153815272327324031858326020875682922711017384005431722338238600376028638381448783391002944930867486206534105300638139930077368463601830518698645550096077943844502600574590758644038537836064847855635367211116714098685102642406372761852784037246937830599538352457749122960086289109021652685535242698958686694115636920466490353979439322727126935031264773918792727576436559608416608350928037973777055639962106998016387717353326793291365291407527681114058436095019550733046053203388495641920547833706806460665462905509094216734843033396320713534832085170306421158293577598053802480549484205646868325043494676409567850858221004222744528841543075122435299730299860419760731757826308449229887526023668034316160871656289448238283435585624719612132874597843378167518333327995063209162227496673539582682991056741780087132680804262183110469610244938585101492920715527509810791301293806929428168503026066226505432879790189972240138519810412308124898781574180144932247820242659530614977658096895210137288984248805102459614160409012475326145288542343616419525510478482602224293613182523171612552274192801584880886459409644225049441975910341672266196960696053535352463766325970589295531167912152481412582627600985502153491182537277486329308593289873140206405311136832382305045979479128587561652160902413663467921602399129409028120451436814534797567961443075843676961381236222663230865939333207363017196621560393033894063967245199200068177845371725827950827877523923577215384010823058642513225011920501599348397349205292226054055735676523690550432792389721307488771546708436643526593790205685916269643135220064672049494977525323373184569408016973299247421424936139515178710195657905462741799186230929850448862993231446087810854758073915419643072321743890237172108958929948694962041022425441776044576302379530941021999782029796197769730642139095122133268429459389834287189369351584525862330015683105719206721768542141323525955973048793165668166895789945752192949008559254061305727668693317641307682109848902060946088413593768219946929828426027835408362322426921685578409372108042968999680372168219363414240389761216188254539172431462885337687017618947692751913352482689950792405443049916797059355685317659067399859386549749989476715766144694272377556500348786735820067795404534418099645837295594988866868259529639430447872054726732822388803302167939063284902694379369426121627571019083739387337962018131969950222833847653444491707190061677315577488270121827675052112877579233675825097763449810998770373764522425124882494685781947697045268140074945226775683485003023102264697370165676956583303409675250822929135992476672138061552562262240368017285917926138695957037466306344515838906723500192064092785811272338867621531133715205053559528962499752831063652605255007125280849599856372205875546524022756845063768601775690521484537808280477129544195009570281308620444559304180739809754371040887291046721027623877751657014659528671181105147153752935626986247482762257288788683934187021495630834630455512060580933005700093056291500046140893423154671912625114526223476347006655597732930804608315346374990580794960766105662066565510713354517347230155887608848399538333410722617074997617551535155653860546920776164690266648899486373960077569636372234033315856749485157745474324524852251841540365189095140494927277848304711917299503183267874639532350969994349206452418208468802884151509769371461314509204697721914202520348272770477605529258552045461860720739360978649268577837857326306557244060392685359624217962133841472922666070657166880763473563469435319134625063151112997956980735027865758716514145468499476896447040852714462112792173157517232606250146162745137643242105801531825870758608778686808601074475982620178372722807154885959737940882787596441795491741066853688769723445575059600242020311959138744133137600852995219897813166404201481792016472215271594142174848131993707559999661668182254029761355153690673175997452712105628488911444173747157726514163592186462751895651061708374696140189560637494471269133508452456676770215373284170643677131287632607585027668765592982257239943477016966593336404462618068886384557312695377561182822682912737056884599487847130840261474093965645127952363270977390047082562235816187749695742134938444735670325054928813062846717659500214030449142585983065880566520474130672241461932742336390730552814358991978673961327378925128858329630923728378823519967970348837849677084632340291839168241361909418595791847947354513519222881408663525412089977910533860427406077076301399846115894968188193322846475578041576098633552420863648017314908525396477238409486603270986329474712475824526348332350454840555683146087740787395563905400100954386289990435710771619886527035504410596144408606189044587522627953380319626896531251612264333379236894623882966039012752943564309382042256383172482868386557828502530631663704292159085850369965375800000255278161585305521600882189598321188560582090937836988040553926165229211042174410756881573721437330806034267091751457037936407863461314468600343139218468989801791563569674027216328752506599436357351209757392595774840262910316717971527772665130761244899410899219365848118559700842145334418054525592109506393281372198044845563760900813017820819678181997986142664347766341738740862551684996158629953095742033358720371395792937190030669760140028103560058112912500118469470618539414169886538339660854437114171473486275503907388207147137578796417392894885719195183547907654511758441174730535600392300490210014294302056374230868208835659674300675756075071507096911324563083457094305520748437003934115049598972476649382478452623268979687136939836332228395117011342149442437911821428700855229580393085328996406076160681300012278568166971958438725359188373340536706276700707757391275086400711389884688510228418757752666798112946489683379167880223045355116360984026213155069250465009169026129793932479340098018578005787753071645724109233204527872113076282785269761073903816877599814424774271702474682938613583416998405870297870171847272680393900946514972059916002706889996343156166798198139126502989921885975336236478815798861939800730224591619934632838106996635252662263215722002316377913263304375422830235740234045048476121893329049664384818809183080619640350506652597858015366002465972888411465054274566826414922700300958865721164412798452413006129297468618721376716452922967578421852348751436238754595310844809310222698072653668043342086887878672284030479956703047372554818005273889107934069884449343098739649042487910474036046466947976574833886582288440486211675902006372519268199894868708015250438776829383835715710927072897506517695281518743678468505164186314875142273267068891895784524181356021499963390300822425443831721461147168641256938774045284484418948162971690856465985598004112509876429529864783868339591102356108478205293151969886983887406709623429529859563801680658212105038768467965593754238882579395789646508826535947649508498226759586191698669086274590712643685978724387420787047800226146373928642275463520365205442005401006536217596774464721702156247251123963745700221390260418492514511311026035486492561270801761429971600665503249555492465380584786943176927175251385702754472694821858588816502287633662762236480331497956875487669622915896706508353624369596748032128397522929257306849145902362034287295138189085122557791439255041746039457308620337542666343903239542503652742021548712211866625895529860675364387210081006085539235211776749789276400157720205818336448505679355789310326194132446268385834439428783074278672056823447876669783391510049293914873030478115412348495331314460174882251927099684891191921931467887949357734904415938479865075457932323859935799823977387743984378462407473206404571856131753351361804477063617401824934335523594530314723361519827115608075534969083472381911233093856504414594384864864185310944458699756055797735687855140571127684866502395835964535288170439014958856361011229673121753800087165353763685564896546516751433946193654344477783126257482260293352947808131197726848835861858902430126521448897188337694960529238668902318781177407923642751700943648000301669648702964067739750069710650693945521637739171296871293826755207934049618960500834357044612440627743060027486014852301392053257683632663540802143437725160757104637991459983444877880667799504010193703510345172035029921708707685025426336315342606248421221857666106015400424440625367921507285025780868089305103138960449494562732734431816750615848801013165340879239717489477220009406540242485253532928039751394795051710837366289052186865930209845999283564014201173451583617268417927052216678441471119481523717865231164100758823366756729149311772994997023762291493932986005713045122808456567097382479607281000217555027393247488483252238685429077219522212284685618104371436500109681992643809430585441450887497975300511992486319578944712867864258598144166500432275277688309452561884850140540173230442095739053486858229273948502532427903820096517872885199047977655227257046985398176633183289492961567309641402409032062493558069722301293600676291433049556262229140550767053408664426672898769984841358133748153059790282633543443174679436135511180888965200825212446882024862032736303495927873019271966112529682721889038817868603354701662339522490422107750280627591455454110660315864351254277082745274297297688054091771858029569930940388947247503142320033650830389892723052995007851966656067564708786020326329962684012936421524212108311101101070582570618286690062440688479778692701915176283901441454918845759302619595014157463831241065254164881861679521477159383376073063994512481042438482539481484017139729659004165749524999683481754947198919615836062785599132466650353801915251498987275300807545957303426377866403196343495680714050953236868437983651816387578587157136632690079407387730718744385800782683872601270469367063538488706645111317977327576380982946674185557554045157122485373798512265285487838551678261232531008601366197219642928965772878941862835951227246252784239348432416103196639975804721486492323468991875370893070550886290100844868077410615543388996732244892819628679826447069898594066405842135650568216346409159283781031059443429581301779154894475538485135665664488455809225384104345107861301995482471097626702388572776242238594616544485957935506427940921670078390420600502243478703737871060581536276711760196476279872169944225609879647887274551037993371174174870109073679400705230217494619376106392051935489196821636768503257339829000178182710317363058388746696709821860731783290588816977052919089110591480840328098954551937201014483330524142005011704816975269775034292782842778247507239923915600028370579016949335307045609220308354373650661319586044153591969592909179832920757406736080667193528817238407747845984246294002547290895458612158922261691564589645903902591348393243678282734100024396158175751915919204755856827797002010565945186798011508804033903534488737850928121887369501808053657887133018377322648742592826252087491414017747907418062526331794330392167619360612533377660585808197648400957748840028712020241396765662195219652108832120978399510654604471973320049280662825969448026860394788763189362004986701968229111926362032953150721611209224559897679390362102847950167221779727063903799849360820440970106129701598913594760885325904839378425124923166061143854091185452689720909960856440138199989593312752737997457759135234381315063489606982436794377503626701980070938411685398001196491641601195718471892301610069623192708257762134162680611793379327720536419203135076970466751685567623207167384953251031607782165532506410744972363301638479713420632257691883442152998441672342447278550407065196048533421560948597358860720167004854817400906995947999389878630658148661889738969319533803665478591171090808167729565080141441007921000574457471636896090995887785516183387910195369225099534014735358112160610562021816264349181737565207802807475714819350027762817828105211636197036077709095040153081628044576084491403906021554648516402540986088287396615985679349823096801249586183266672760548965646705177111902473974387308386667045249296272318792655890496886984110842903022842582797968217801336106204861217102273262592071974546340568821941437849934242268627260113082609164227642594375555074193751532335087514514189741426405696475944016327907237309944660033435761262189673585137932282210857597158350071403834367419059100696728839682859578565207258010084193016141636132295988670990887209246490062623594197125382773022422732064251387454535674847222401745546489609865750309822068029244150195782387228362433873711071397741489985028089576093575358305892349548265984230769073794196944718282897690529622902698095598178149161558426532327789025218502327852499661863989300723763107323749341191324195744296573114244614671681801350584663313767236005146568502485562328219343156391477747835534627362342563892763539636945253189495345406934334483874004118447856081608973208901746977521808317927433254583236098414496283680938250320137846964248777526073105488728578162069786755992722196907915147426274355524699815769337225199831899589514375960046849862055844299621940936632663562910771456612159159561166612179339981618388989987165713474318970499104331954975740392173697396972650136272970107778193773802438789030806264114312210534860164659023003390287179536329766451766802313807772828971387829554205990304142531084881563617841196321301406946306228908342383615387722987525982925596125119448207054010167070528974177366390543704316406711218759162912990983812988176454188652464462298325565171552649185017848230670344013230652947437793360667848080497445436293922365922658207281423812402914518055355009714979569803532067413211203764215731377400499949593780259490976137050635631325747464129604790540619481678157845515772841670924574042213872850600875513407769916184480854706156600920680942564181444743818987728972412391107991702030383695895908172988890630240369265804284586805401975660443092990598388564203280552091064110874795236191469292505317754189730714908666935060002647909341081198109835949964356501296821615782647397871626616709198609766750037475056737774888571729203225410927351794565848314352362434571419507026923857619719322865147588260812906863347154701469335869239096845805796457952162561257378026386700324028680637885019855130153463525779909499741913646086187080019295374494708747349799290849703185263622360923766448649068741484155449999163063471492395932110918741297551304741011280964096276050701171951145920744677898537003337535122505096325986055631661376627895230178383839819244060483467636311408568035903470285948801023367322539960475656234946314816630580943001613097347477481386606610027908864955483882167809868885109206494628415650616597734251844093546974660886908433217460058266254916385712036829558233512961741755662198193467996536612945350296284556900827068794570323782705993686857995457875481692204961714993059297014953673247324272456156471914055966101062247900210454092171937725563000116750959185288215197881272289064383003577910037866408472395685649212617165872066277748430854226916465251111364259113771374519375032841082733949776955453399228191159794230654238433061495190327089175956308812793281649429662085008320909417165343700150606144467683774293557942509515204658941146954461202834647240176306685133759647299206917933803222717094231387199600287137708239925466600120748199308991140471412917728115536064563392325957228852110907414344102733252360456471122793906277993585534113068986195302265549114114764503623336835712947067788712508308066451206916415891754628910483986606139690208200991139811518807282756363663843139014942207151369014624043238434161881394632833990154892847439682161514146213224047282598658299474859273881749020250651729400458978766124443043980244436140975597459696864665091433316964216030687352475116994898109778350636828795836181153529089911787178648606395763685962389980739069941100322415900195953164523866794690391427953247813349006288052087267520854062475183716275468212269320030300334666902096544258582746385874738402117816052029671297455557994835600882014881147802459305927182312237823635520912933360973262494696308486055841715124581969128824139718766503701448837414510791778390039005645780502474679981619166830923847652704829645715052882291790225716911205543027072873125659040679537210059130375506691103060616576425770195570456699851512721247753152906420501420883173513292020631924339357712014385913298309122188867586392105680286006046510615888806070289168601174591650250374555175219102021502583334691727124491043922596466367800538595246612243825441472616061109935733190762516868375510207040135055117525582327855286120008960261591029421462657242715918270610008605130070556218765776733983754300279847240104337530203159022606093399959229376390052521230529887605499840692281598280035521446675435583850655079841059913378866309952736799362105825353289940807671959138662206282833442204502324695916869590239331462683569412246080638084838109381019380447945915491250319278365950897456003291100673883698922250639769278251001752182141409098977663956996118316200517064642674367833420051622603987795683226962605632380083493897525842202879232024878217907679470587347682157385075144850241498800993704612813547853094491651868148163259557752616086117601489048501321101778573209135873150159522819179488921830301097205117649140148745938996049295088838894572360270803891372497116159211010070346028350652164240408447085064886378610179802741067039152265938013639659548982832330212970125453963849238949110516052134846563999560155210154476613342200621348741230143945598851793906541692309260109452745564391371769479551063720650523914382218391209080931711673857004582185948039059019145612435630881061386007929090027054271223540000656134998271303424742019397876460537663309582222381463820079077457340308373705344715087574617339747533773163009379063320323535689369162768036384236271768576758616810915600087023082718304429686966615366139996428093480402885943124693828161610123642338648188845673829866854765442973880236529430454958049616796877225373969626102516508737342708325005125256024249171125906147001829891950097211999554512331738448491555627076185472233937592781937866489351918973861065408800330192001543842059934217372298133212021375868999096560825864837819292269374435093752871398493270985197744702017143161147008713014674297822915751487942036208168458758730747731580764326586825135873145761175863643764946692756252444298703999849958108894701614100461933231971744537303056063349114497353780291258960822999130678607201938289695049689851711192525151992955817223352495125625333011275235364628621731203090076952904771355491201533979484142955524980615714404560768555015799425880618097790232766158442366061489901387518619283002617731310804281161037154536622758373286250250803936237352885843634229392706337005783384897285845107451293358622675269814990153422504112859065954028091604110551402882812247649348485169951724782921411022840573714821596804825492816393879957387721744885129543407596254240754659430599580934303770051820721439643976290475678219093960525857089895453097872208028458158585691471410940842434407573054451074501548997327864525343866153243996784883532404053468892382120080364275698669085819105257084700833936736707580896490919627716808244707060879978546687469524878984476207703729191666632122958182801476556408812612929371014150814297149490466542523262824046877753519885507451693424572697175241670912161262347101069541726445450985098847703129992074677167811771983801353277558680649396721088187217289654793030714202223977947561708894632690778148333971075524747129449196237909645810456947188917019793970052607536630150450089410380400455394679677862999597709361885298061405106791995035474520076276275847885450070459665039836582537254332375271963389691953015926857644809698898764172185313504056648104913876472238083209269811245454557831686293364389975642727029899875031929035296437606770139884305778488453871319841787599336886067888894703924095539140917739310663917872499524406348887015401044596322449801571412110492926700918230536661338127656614926683332915740330591113412584812199098844985610396687261254952460229044490202035011769674413145416722756109341597548538927918634557168875969338708001485297391789479828164626515931479513648521537409233482142460144710433668307085198334984856784904177093684885539604405694382179250404637225345876679006902722553532641299150368111735025368250962637452246016769131019440132017121501087806619481507429174321783062358996687864771070884488815074617292999176539565605113891627055773277590689748795091183642636113699222922556170499175878186470552255471927274647520499549847574394727490226978708677532874941097529898310352914063501522824430051626225801257313976809391181807444410949657551549683197171004359778839249068180842026386019609643712246731126129766673396053250455855466126857915598841034165109341672564289762824184625833537709361131797893810110668258764879750723702782801389893048554951147608024709683934634055511918580864013850558503547075943005364118016373631349263313367621112352286522394915568851051153798273355774165501608566317966087397891708950797515860838221898866617838303075528122662240165326954679928065378800186150851094327181000985982608546243198253479071189901147664649767581568068556928055872679616466898280142525824449297250994088647050322775185930799397543623617978096571921719131906548185179133213410790500307739030400400058281399098169883821731762651795648438467667924858662217545534251749135839432805299215565790405606479158445999436525416951834115077885571353412460318879345788297112360402045073166843945208839274371849447121548999418905578150214917170790578058410415479109172004901246517642162611798534820698572415291891320286701462434621297436532176112496409970610215630751194595348219084312560437357101368887652588819849286098119732305632730415311535271935524959088971354215543683909261405799631401640896053923952946392867214968039933063614396401810578204852525474177499745636235780475260127969967651217814717394573788089798951242808224887236652530351474485555020855090394861462280747669789863521526721630607981574278515867818694120640161690051470255646672159741459155139366634493552980897144512539320129564282572097553115721795336682637550398693337519688536416699665788750656771863027705460192205483634940824180148446023204897634609653170271289095126820023170219804507243277541659951727541493938789036240751698174013096235771608599223612695480584901201086458120988342650139395835809049188311365811551642619278479609404952802854260175491784737776708299951867637471486508587365603343182272286073656976446887550539937328180688774111740350882456570674209568373152951255500673905746099808778643913481711695680082903516759456195849626498154221245543544415514544985372458020063915965351879352453997552141197324916794895561379743873202385543355908986919033416818320067039193277401336685292241386802418322240592855946876362731378753740037991277863151353321019415665541930755395803966792217859661380298589535589417912073626944449831677644507261182770799680757291876059500426549007088343189472809379020342916109399641516816113575054848878797690770141178278703191074992266567588924812219326697140578812073202686477323846009481988822645963053324931181465257512032435653437522939670288654445578054824379031813544477369027318411995906900644322274930840102294537113702283698738437665493015493944059085290701282483187967822059603942436596120800651951360316301527856158005185428995703903324695098598067696324683290317597129439945647734063477634901032329097568278610171053709276766627284038369498097486166094515001730497171177808701666294861649392637182490347614899393031915952667511989446711184432523519987530189221264167729517784622976480120564874297023036533926548850491763285475255891757655016554187365739322364795233123759702710086511928154358480057433413316776220689221948073241279952715211212410218367711148112220291078594128923417226265593310389415474841558043396066119626952807600660148281594765053956270223978504535042289051972389801155789775471937532931044457660034747107775322225206301617968775631083416421087555290378760002407036291564597250950125459525014663897928534239520032849328203664270356569032161114098696965129175691386963030364830085042698289006522238992033945935478977998261433938793234035034843810921197120036504788250849913800614830341509080688872848486257712974974570924489194402121901075617909975820296430338273553358231468569017551383231694091874862004808868157391415456055090616537581580749859351029979767312513839787512255864462346329372620812063973762868202927731093574818154523349986940713127183879856731831145755469811950393943770441734076359696088343781627835673306909485945877975304549935909416255357580283325947881570141479071992737393665135054646795819386354838950712497001705956512504120802845609959390209842821274534375078209249772773867244962022698599648855146962960301397216647846259130520419854247826923694814510287370747635552024920224631365088816008694332421896103092109072174358818134917780339182412890343042343181278573959165675613444911885376355267056586695652202684278674999468937237871327409333486449663099416744432938395186431757678441992703331743141724616844424344420013011169081283783077726152593423688816295235323322036960253558309578232893049156937993836473380057518195755647979607302087743530577639639257697539491847626521445388621631515060990583228718974848983168662127628758449711647890219178390123158760837548339709525548226274595246860116207316618053035061704579011820648582787328662227195754307197306840332511965819337206084815063619708816512954713932280136272052789408192861025505812303854779847790855929033662924490188618406165591461262902488370186689660400649370092997640779573433005238336709071378277492897527197785736653302040975398207900438192332594891466758245963607174455268124197424401377721974026328262162065998551362814911256310554391637388052443324055165755485675684809407859673129391890851176556952045922599700723170164323465497747226050984547373274461492726935172263999959240149815140927235509582927395227771328610151365752893918988263264395776126553595819314282913157832992676830322787354040553130178488106538435159537168419977438497321135484466684523861230554723354151009896598907044783761381356122206509940101266867081364139607280510429970255945256605624686066682139047384669018054624970386847132197050692360032773237570106530435282459493400717921784833169003218801814459476243544765571385718098918553737175125940696736495275833045224174665874962770585907783161923241078285560195426076845158970076163885976055371841492445456438976393692598343618434417271752680483309342279782493287990551899063852706325127549617725038627145470151322899335425466239913483058280311410660141409720017573388114442707411476649656323035624909509182290253585231909599214552849111144694802989899940729487078571793108656567279727345579093498719175937488020628255365601841379550104326202702913775779189314240728323712875608043253706734966125466619660413148862762182577000158706321550105987250257359994818079064403000753560548502340419824135710612036818480474557294565680617387847002355775732115810558661308864864892650757780006001799210856359019960311935904436863877627133891850998636038355347591737214154236453983614867037839510202027183662659655644381031810818403789504980508355145660241378188040782664222715126104316215821764228807383936310817275431022613958213718961216960846322350335627892015764436295855440198002808533330800780089090645104461273450126228976312346296659798373308293011026762706869615029231770290231269797465804837326806922641605371976502720431474372792152795345567321656768478953922636189534665649671007893167164082950450097716758186466191427010917816698853709378548906262542564614889301443027387702127058256156931725911389411698690575588015419559601450183217092894922615832860765755089619835708219853872204011536800024186181853809530068626986372290872479795154503983916223358638205724904173497191762880394966243963120217606893876994816988786660714724687306935860350616091694712573072984500060321178868376186666084884419373742884591675317920725923153371340038091639507532167412615817264122590049620120946767342339907369920626652918627497025683766918638406921160689521286662552157516882636241677405967318729814089754360798240876293229887775878095571862890957238335273392690706888395957132483276761691693178195072210990648846723066695215681587906279428401516775477805564410227890103940216475890603002567603861087985590259162350599636564024024893634778454962971127216587860725565072085892136715437884691370961520098036457679463154218712043274272964985290834783389896640675832298073478297904210867390069292946602638103286451480441926198316503341384388557039107665606340535731384188722351915756939579463683598345658229148826215831673395978302997298578488074631142743290090935882389072953768400490570059797413969954260899387189626057570330629105661238808182068568250032846641318423109847178586522141583272696303250665350712064065374142921144415831022443204554589362434706478661170015267630623453858879038321858471553107010998491485133019959221254228522273002320549819316002946297623046056341338812624063644305933161834042848169015639588105278010153955490758102562554704475494770129865498870121617053569748176901111199542361395839458565346497919913715202781958435950841223793492162866731689456122409147618528498620412901072872313060019919001439550173360460080322132337969887160171473396719699770146064517882344917232060636453631751097476642191835695985109916075357284410168822684403927964987563943027803175198534962117380086094924026328892411360425561413401205062718185841424418729574311934734230911185127319479021041038180041070577928366758385352220426210648991641985329607348394797940361319747396760486672530204662672787392656421962772355455491088348206552700764558357459970614083442783560378301382536034181999408313918206856053678484786570659109975197801274978293060425264895699515287244554784781155241246717595933452782304355864065473687508699504621213846261117251015617547209901964887625637397983090610450510019983528400008746791138614484142889018932233788776024205601227000950136955948104496976007459340771605225088876332991588601843992327976571981654427337809172493464557647693760875879670529411116638141488166975516966079478635442433486116661283827068704337648508133314355009692702559825146458986895128031653815559205245154307556065666833226476929617095347395542052414185016039851976160793984989162134236507974303706832821210100945228457410655098163147027569166627251817326874391605945543134709491356724827627605586532972428619092494700419500647202487591290215104092629894793131551847633727314964578608224025113007441462446996056182129338903727996203477697387572478498887786433049016274434723752564149994849736713031961958871069816529009679874702973697085091169836445744540475834116086814630015534048585510114799721694537682955727223193788692220592898338135176549370416094328176805667201956302365475789812657044794787456799582022708110248144251613336066523855161100047612324686952868439404313758410322073878902339597789014365140780757597829109418141622775799461768010911822031250862798019616355431280216384203181724361813010148715282159038535134720342485470694176181775331225403154442872354246892982942296531859747385826488154665253953068993627000566331306108050888076827463438213450771080667296835386553178353646630869204217470700795946617251369252228376865403349661694192042089330359571177455566570202177325504351762189845520032813813283103479960975059574802621502629960933771812208229987322117545879092758597215785301902812793529601339221169958293362890898019933426888694699680261678584167826966119656803004367944734889365617331049771172554330081975642870452760940213900527270611139251699673476338552136288241581887747392835195530934311730386335395751839951364053506953047508585906598892314523496234496458415828357479594648056847956943042397376907288032427692175686183962660368213874937597489481547824530970043072494030719577649948186077298317535643344244117956336066706691669623414504696841920646498877231992924544978200855976114464274894607653482806211926413496107483961441608320837388216639986479525133375840946311116388703597790694655241101859868215507412410934312610988372637673836496492602628082526988120702797064726713603495599782095243517848193468495555134625288856415737840698500959447669406744543362088411318267860159248004576401722491393231904730298256639388009867062834878447173875329260540419186655055814928984077591131358750171656477779297735928242285338225202089943233396329070253678962170399854662443795725455832465030452457228441487379079221524957482431977508585226827231830197384985547188911127478610499093529423781521656033419176147822184905199337326755016414903553613303157972724305548690756090049597387333882412874490567619702869909326821839770572148643326060210511053682201290203789356800916077636223317534496289871367005830305959270872055523996489780798173039953729606126520546572255688032242547618724109530197534568719344884841082340336978612687428344982694497870417151895376933846754748067042995557440326125328725809699967244989004575420447709314612197996747017714654633687543909435397097820743286098603321745844785830159904327630986784853704468274904869775557086924464107362993837619934919597550619794915481421834769211840011734932481154562447973629709681263977448048156009830833911640749796554290801544955804992047621232111553669182090926433208484056751107838454347588261240310604785460605414152916599622473510555855687924923524131639847390098575334803744718910006453065314053867288192039378715202933420282917960747527230817773256667079354348594023009313803222430245700580771694553144013569904979153382118532610893265585031891780080529076246045384885890154218537608680968677682316613649309118500025487140030591921552012243957387373213026545850605952409585970842733616908831687644405222395682061663285292316222103718855778262792703714836346879458118150606749633270910244558675651170293921467663801250165546119585120486571756747424427471947873613046898724741682889527089982108605883944934651681713332112963198246342100757089300449777709986267740201319334339450361718279081182547838233198459915237389282260026569324294426735722759580082269926594529027956599553989235364697520502793568130312126906358011441353472514648584837736849902715776583942105067148788580356286162088605734709021491140975821889765239537356546265718979053536343637154451480363112975890642494496820823549248561321707473207465276461552474502400766065522086810857101644179510551008173042698823825785141883695763266191345607135935718807872582590526693644080983222544787813189091151901133228085138417239440384458914691676915901913744742224589389072622809175767696411322637238878167597267912826970551588638327949653502062373044664879360602121537849317881242069967438154180131518447005332928407236186607871428206916232244435510208198992885852784076837515377216226796400763898501318063280600241890601727447562632846731753343934046804435030943812736599712708309224475908514682011188346110263923048045852426755802927758576082718400216277775749858388026199544856377705487149141828731111490220572181154963271771309061001944369397063574100545736457033550754667604911164690649694617109700299431168476905130493673036402457546266394854293743268112329670701595146815797783665454032606408640372482426992462722908467478064750221472237158962486158618613359564266331306614167224234015000676604771700023750283949636051739519409217794665154450125772132571032111365925134492620358857982275592001804640631059187606407884146384592730901122085361285646593161072240732694937904648439421396371860639230080785743783476306990683362844640233619801483068636544561401869921469648956838021764547224103075315268584779485340937544488614793289955252187347092677254351239543245018337203014327184959044834884450376879819481868523200083864450201012603530130451143766089615699177085318753750594831441418741517463073276022038034436478051156790794670490324514773432396211186006039073797721353469739060954991822723953163854928290702360956699005500434048115786454578882509199029814154270064766403856312200651961519258936784850989164117893832226160240587076496228319593631383803541203965075989635703094115103997542225452216267781588192109359660083927152925409498592857162472377993269613014099888086514711749890407444527296949003816503501117233838892427006901489864185418993210974836194954565974710492939267409274564981656856935423836402013375429089063503552933708947777899886935970787362071231850761269512158799677698062087924919142128435336150071884075461797934738395757534037106634203456154854643111845332125670779544540699859374616916103339201982337290475257990993014309674191432269974492936360833088048129050564831724335369177019289791905853876239521483311884593003153663407601760977521863069489465744432343058821410020883935255257340729015599824657064850014078317776123377097969341989723661386634991010145003414735250070702462930088296329926742991435111152522920200433556317953384631977960183283304869264289834856402513977848258608349437198054038836779369903739950860889768810836524862252233740388214746590454275826213853420080278942936151402594344330140556341886731010517732258124251317696804669080226330875940274094608116771431298049617492962552631379928756191605021096926079374367811810544846285725116143424908280039148622189048427500387715628870792819766296644577726355732895662673432057259919913625381569757862362699254811449148870107861456534603460441084496691326600663205951618745756141114576106283592224726854166331908598669864967463054121600728742666702594151737223467401677053868816147534014938684279482930406424512952838483262854570747799732608633217871972397298045388513770702958301709932930114508212130523403291930965632526370049760587325688361403960839367754786910312655841686683650721677359521770743634048680332925062656015090724004803000926583504612149932314022489397855242763394299384214881607422933321392820326871574789917235251509407043559431571302851529667019759902665216241979856863842681006584305781988235647050620339253066824896111340067220926097438851325939091900365137260360175455901208776046269301293143131778909655373930828892877396969637464812397937481523445132371703963250146754183894856548371889112748991794961960544665722011535140914763726276866467195653575878515995532523248928231311096078988815709319695651124893733769059631554393904205331217144723942265788340371512760034539616584607435236029682281581490056008576765223354447247124476922329648116952928092929489138765281183081275947364741242734043450631839073603891472396269398753773461879862309413637314191705202328449319113470151214386903894462141641005342613040596674151223757546617980481278981772270897604555771106946436818815703332541153889351492020483353064699393141984936191776810894342592354591223279682579575598506179846325066221968024838552897939023733246444692432170703008338837287453712026773009858736992917182290168845047804962420258096952615428136320283768097845237316236239120275870889966140953041147814873735770851121317175339289044399458638220475774837382280020320654342677857258384368034782226059907249072378003101545843128971776774175451378155263614981127613044120175513015354499204724336308428559647564725754938455261308104655991680685208175924575808568708372341763410258219228233887156110373908095450769468830690850247163004018143096954524899576013337091106700021493944446724032864338562527254922192433088021767104412213012738087472196340152933985208468945665644458322499230304494172545473330742539695638873786049688926493307881567870340380244391008671570164977979523326219731195460498578852288895637491303198121605827668311495355436878092972672744720691354018888502714381753761354738482188235129477291433962202418502482456128719780973164101309041848236929126638712102275342256731996339740354603948085309274406222493863670730707500335769907447438014606934696355769731990126711853297815841242365493544190582228172443175259985218313764040357218393795030599394677070354527042426602957012060702701337973621190756740756287406816522593242486957645086658510731028271762580707715884903082824687652410511210208085960075365952759247825971243803739202584964852539965274091208289991943813787729340594718671635833599596165143724944286583564411775611510856279338392844630339108142872201257443514156558869992942349081932081242285304562471860076000165942337304965262975635840301950761314282989413766489109202828858615181644335050632904967927123879671672386076999511486003845944477080510395199585208257720568628006379064106917557595475448267138087675968571972557773897816987526146912886774405411405902488923914777134897295726982639745013963594344991986290570193574649681414897984545259928289301659904535741749711505656327110986197750349815833189486750710198364671513921415843091509408638648846472446419061990833387743977310206964808379125607786833703197885457195514715456116279229853751159809256300617154799174767770054101950346619840211655047334386207529920141322598086950508758918210137352780019371248725266176142708892917665040541686369331173172770828877578190133799062861357454123427942831144699300942349531878722347489666780945580643230848386282341875044758333424405409625405506603288746370811578545537117373085777835544718570660829188690728323154109272564798751296107792921722179355626917458832263214503010445338289445351338518169531773368214219744919696427359122409020976680011137261786010340222732918357830818847428098381618057440180521595818648745729836438304802881262705672980526986358090286775235134746802372697325845405351339709287898464751815998853374152718442113288800636043123638614423021808256123906719739718012363737810966828403990893311088932203870679157592088387039030342649863904968149923212299872758114536561640719402813338401693330971230279165929093660793639403884176340761389159891394535402416439723782786002842417728297616917274123223809201505032687387234831059830562391128644077397058981966858228558563402128324571476728328180313161972420946444058517357255524763000867951360968344204361855107759264347686927355087874990126507571776552646269043164243691375793746728288006552947685487716507225234609012320724070598190951509821281305767831144418751593536280003304358338773443272493097452944999955218052426862220184556422032986972903419188553100461565302132791702799017222394863288152728987869005468219880278135678247454301946093432007782610585042720643119240421398076307514417412360655272329750667413605147541399907975514466282452784312167472840374131471034021894756964550655075454103728373322276547822184142892184069187080712241508367294257921406390515258858422519048265632279585040455196460268676308655317131011301302257711104184289792826177427001012730895444419292353004156675162166704418107845187150113920819113397396016565163894232069638863156621048596647989526363059747657308987666311668384242422020662210320936412947092272996010424201018741776504020264771772183610281527754572377514895337946128598708248397693761416312723385014187272602685829278722371426286206947397573483739501330611036290667714688076666095688095732543457988202142143930250509063201923045934805691216273628862953454853018045045876963392416375401163062960949563938089437716454630999587075158237638610223609972839305148375037721743780277377542765060924805863733074344699754759442799224493491796422760046735287146672687370220291335729733165781693673429202447391544710976869358620027790635756090671749449446866829071823595502819931085581409734843354266527748170845410366437308161580894328757349870655721591052699417940941156103926215459101856379676527168995764201093609887459589411741248321112678287373281771141315965570533528363035318291197810908814521690345806781614943514226213762172857075746469096515594885182271425822458401279553877174411954870257973507936740126661551551511248340842677090241660069979194979820757221124712232867253446181669394046416322586582171935182886170351461897271945191313439683697668131709884646406387315876709970007229825983192852727308608134872815833330178850425623566369279120015587221374334897765862001856856580119976390252513704473041340843921021702392087126651489948721962723325002456205230246975556844904530263786710217481651389575325683921299478239553514850169390777397830586952375639663601148896082283388186166452714993545453184681222929929892328408896259025987811934986462136470872120787091767608278280696472861450024487093259198483607190908745423422845483691091409924969012251674204318145187632349833896465500839702942024206490685403339022336384934278340108776827947007566520751054833014925132977364131824403919861087126169093794763528525127402133735599758560192047029956493302025083594749350186176042168020562402259525507909522463094919890410833683547544065567804435529623777282168872264422827288541020478187627827887776780305499709671064057308587612389756409383138759837666170996282162735121167375118427375284588889429614456439305386711460551549415548773373827463367476351511238219825591320805161143981484833037386056246680638307746941162642934624243761352931682788483933808922435436002167249043413448470639711780611664414056915912329755626438902906537381874745495331068757090938660201681401088678794556153111750790975886716736789613876297709239703217410558805750520890662435980297663539604036333631508804991349801898235867936796713777592260741324912507276622270256346910040938537944555262703219519106695130018370889155200585606348508429105348576049354721021649521711075677674562386665327373705117022290098895439834997948775506971821037811144264919958197949311481797948520340338700255004323820856713597330376227929748846132547631724530010933451633781195089434624932289263294053515132441690924782253827146559202100556844065093179946787553334238416281062902508913831413705306411604364423283487036345468548388746253608809079267336372553394166177629371666070080258779074672849498047093274697762242315728428663864826625770099086893743876079173747479348361235399879647007634094534235658892071862981254142589569043894766615366544848348254500326516981337418424316673411966666815366125091038504399213825176586196288063983930116980152328581667187719928664110518396655864995566231490142257892310116897445890887396860843369672370653586356344346355591611800747326983416088370921999048520403810877816379217334112014987500910526023866192308978923564599506085314838476865615316452037047804387978917573462555892583567326043491179170748047288353535638185857542107036290656104498189349698545977704534321421007653323874067526826897916378944752337005395115991338037002821670435929071881938921869471021454906331002954881049011056463841527990301602922819427304876458007250458599306889251129844106722116424618672311650028911997432870493394657545462569202750552036356179674775955530284937208364496784939097879135082019220984731069975784121240015941636026497589691697523540848155608976510727341159070069451465047540743170660156936462386797073678870426123635035851919045242555316913152073659856460374436379150914620617279496119355159993827778303552953673742101302685584753504702167640521168004220622795089147527487857963237542558965962972513711713552511661251209678028562860460857496885846459150294981306775133812132456407515519514759554791431952743374842581458149148677005387850168200733978991821437500462797357555906850914904244720600778334211914231641505346057229952927538472921758198703039517105295903025893793703644276746625134737683048609211683402666528769035699703640516944101471538994099817293781066711786149880911443539558165338529973307540154633017904546162065593220206655762898098354829340135037872164883720178387340348766363963428199809466843163776472368350578565987999290776017784571829178053406440316520952310229259592560902231279499451854556639057209725788453202946349900156228403668954391114246834028995953606604917679203493411632039291303344937012106429716863075209279252396590730848380036245349348033552345255973051799471628066520001050508698135808500774206168126633603152471388625583757844007055187893765336343018492035653369660931779947229572107515213100215213509070200249526044690599743605029083418378986536458421589734844921008679982935630822237468456625660461916880302151904862447232753957875237096470674523098861277390291283174838116827689278089153794848414279657271653336680191263523709512721543752788251252837030049054204366400837754014062148022297410476314366713383954505126249079173739218478113565003032187035430865451638782130511022053027694696084528363084800131959739958253062639514184840786465911422859656291044420372409499967996829549371382566214660329951754329399198719837820842001684074736609524413489322077958512088871589067146205190886433210915105049423264723710737609056411753383860419965586454781964224401612283428954564739869918529348161753600904529415984200538864091729936739779540353561933296805069648566858925380134375162107351706125742323945457115272194811576864888257531205607159069162062097538270700004576323247157739577860641817913037159651257088876416967050577280932030074149697494586831745826859512003388652726434769834815265647387708992068368292361210955465322775782351706514506283154297356092854082805381082101607966015975588726709556793331939716975352410871428696359746061860274183159754712212349082472792225459713506162546486491472202209169708875041230655932173609395947432065045069445658032411911941642292235447970258327667870590970556663068320297901036623420157816720664989103166055792937332428425927165110370007817764869099699862976341686161209955207014951691549642094311776456580454456414017041124198971470421908790942596914771885464494056043501268565057042342066863883580437809445404156556796718823211646062093203193740813404870847974823654497572858257787933195263351220040241157893244762665511204617170925840903377126048792144416951717087341494262745510929884066673036674134777543205106982666765063405318403690167346325372616323129278526735550242330224460662350652736475990166300795321376757149755340462217681444958153225025087920202297662197912414011107952136014735293535576091695097531885824345291729199715218779096409499605529905136310169305214345874568387079942842022212256979832698582124549462258406029677674497874847355280289960756339733486050790939300979506286440635828375324114492475257690075637415010000207107193430859687024611496126564421650256884291105143071446627134268773622486417923033142642342056002165089869239890991500685399403456189441152844394116712720559018017323686130241611799620756423263497297667042805879842674963721017591564758059712734709153373082815729791794952556252910216385204033309285384112659709574074631212908506397952697172414188884688747824643831316509394971448541419803701356815371024798154625723528220281981804132631983990499003003944933855324112415747482808001277461458659081670667477399643116969674084817713731227669152542432430893078471355084149079855028223303126137579026613284618204110226003097520774383482908881952075072125663218233275867543820751415849867980019664396328402348651550692583283360830478350605152198817417296653363357648478720737434168274007151280667514939929805347266906274625608133027835825374156908969471657797908575260906188659501638495006758284038513518247734022459139834841311337182418811577075291231581457408217632160778346295862230786930349435392711373325217092486009264180075304362292668248330758102188153378097431967787060664329063668123397668524737281174803673981189863074210249228199993731945606052427101253787018126982333235084029609530768357410973126619778168764370485795273235707629055805165995231458310308204345114945857658035975221733063021525633354507634685149765839219517130831660909360601003409671847774574049288616383302305993790826112974907283363487782821210861489431076990055280319320164172919753994854434317210292339497349831582093351107691041042628722014693867346270717635877414202523778237740416054414096718015389020421570149732965617167111422479319157839090101640577106829837478086519226195978004271370143035056476985935342248410373988280102043829151364706411060777599952329576524587490126485382949615363548000579270195300925884318201578259517517016059579166179609261022783166469001229343467134845811433389486055323731151787044879789595294008816663867917378461613834182055649510600064806989424468080715590781383899638475310460601310835267064685096833368262460489256154004564249162419398515325068342513926698113403608556160563986861886924659473525100668271272591847122110360618454519384877747047440005868328771128271827520728352688362579784201038782256894830533811467281981996835449735460154405973902757032860319176211087527993347535122333088725347054193818721239953587196096595780098976919402286673603245040254556187804833362074389189522246470445907467757411196730973607114398209234164950824339995935798100370374820382889945362800142317048354103236649614630295580475490376767647261323966653594421119271559614427203863478173384259026089505247132522373996873476687417668249729392055631093061194504834179682783353874343834956933268254435823638646544043466685672777844032307774506510711645388007237733251489114085060736731631829984871759459617123992480593941547272641454960141236193018605791712795780904601556606151064526313959187472314987566270444106736659198807558085227564552664749603724258843844767756101775342917744388743643064309009115087432961650102292943395766554817543480125200025904078118290719992235919367652626226551746898887550467804403459942710907372337139922853052679930690427493634167472975869321455290692936878329212824149185088308847726746334548261374233411680396781252975403953558901923145675622278523156522632078974170286352513866606665055240310338263057960889606850419972503699809545892048662788618832285508946998854515771340700284224580405709750293624960380311217108120703889764903740161797890207523043807876061061250199948725481368913633781367954948072737109324022115959428111287969322224971728937084767243932747228523984503673014939867844598289042192126533959425239264882920101648417345073957971553582604375591031489042865330352555421789899092091564551425308435569049352662593045632052014221783764633390690359406810805333518463426006064645183122661543188196665121743027713746150228577747602135004617827219954659846743377593750921056632725205195205384041571175759812412125138825090716131545825258356705165825574588824052856395246362403032604515396218611426629930468104981270108989291094117317367795344720613745851211156961852771613273648732556445573311618077828980327250351275993479589989089407413933252401150957505948619994897535851980492003335129477345214398536567625070889040996047508142420761551883991663444789367788943282391871994459341606699647840698261832003062637502100276993229300761362264127980640011705025286582062390377402458620401457564812941709141482421059291324075233726174385139880815630680273379492932329319572381687410174050854553721263590970219518399957414979480671515162515275758380588207150513146315612767771696440303902072015787166371659354199730650932073232052798943264868651065043498316075200736600972439968356330513191320504821567210181414148111522322284382616893665366246568368874789232574228107315304450661008094191055097857028107283590130147698752573037001037478347774844980836979422133013794396190117230508262871652223493055099064960372543453182319298777741462915010572503986858838384141619763405054172584233963681490645077492365848240891258346601383110539775105871958050066186057255300551745477920056120677021711472735330958264872804541589038380196182009891752677951195654312109811605907525528000596339527400934939170313917328433487926392546385279073098253631364528027568346305224703991535978648459898938671621203102370293089867561828519700471728313692137675308402227338969103250910664593987673462521257702744618186026129909660733957381524892933140751608081826989163843068314803814729003606607733110225434750895346639501450799706003237457010295076611804470371984125776336965106509311691266833023184346130205685062947266912765167316503095888530154988338966063623659557800107124838182176482793324715382223964733576914275262128857487181630180938776203924736752556346545811470455821464903550759915362349280368762087628630063642584913501724534531931284169520444636517910686519308192808728920186110252667804381688012799604181309155917940689014552625870964021927752140369114063617613591897449333628959006304458153264743048549469971200315830181701121061945334826621353293931886502048550491725741385289980854097903905697657434965514029416202230928716687052034276470936361464750194350218093298610407615715055769578832999060282853947716708344665551938170084355860402762713283954882214127926286691569101396970957447487080632640643898151064454655172819025512615517872727015639411727236576021784892138260104763917336310822918494267416645031961939444417035956399163124251731090132114970514149646561002991472465616173929808801322660886850706342474460817391558398164753769684115264147052363833919877945774337633203947974517227061443742634603752796257637563926482093779763171185545267570469956575949914735498038611704278279104073025250388266967376274924693925357528144013560686186838491888728401341342112005686750020621614805689697441875079520182821613273818708053382370416942074480292778353659488840402190859170877776985838065255579245616474168992438462939624276891283374993643317699314059241160955065527139562410606327826731046949662584226018132943338251209880421399378044189877653641130506128845780520842410219003635786309178881954102174266165425323836235747894724955084677011353178355208451686079696161720231931243866612859062162899283660697105097148430514513700577027314490938816476512880199794879764399405127123419439087127790211012122682203947883543317785834348117345062033045651030909362362085585244882502625938544507262768995051226342119236001304045630091229306615161729032210707015154715330333897653127755457312866271826141867362939303932755267228745314380775023445166094831297039150957559983662036617409928035987586094248349404451800465770206811998595446873548777261242000236381173197815106752284228947720704064200355684519289748839343545502021407089637858613372898168124153645242102937412166836703930644929065267535670856222928261066829505120332249290130449345247958263215073868083782063912015488260551322743257907477412529991152812169114717240546269078784133333031147699884520086460114708447665782875603885033312229022438205497526964260595627048205730716988069768587685660810318955972910137597488818743369960445329759644693422052309297901828462497012597651513677042740704149935403777958328648861423420300890070855413475684294016697136420497115416307241745189009075470376493524456953336328312558879331750685885245652577965015635816354552784533643997956060912707051099879218090144193297370224656991110799653319107660827290633152632052075897669048747623275117118585361500890946168142167768674168163947888509304605964136898015557148077843836515504558590521469158180477302842404977818467919330320575387968074734861370183414421310406291566271959735100577030977676662441124281699403851081089346421195464954811570569297272768521533789831697330597794246470255900951568932949870708519528921255654741142530143242203309489849159990641911108940176020158554909115695995440501373258386559760537106060729383641709608815161535204771577531314170713864033487710588301124000367009921803331047335659667002550822905682626796813741105583154426363725112507932452577647326729688013460560243680257308849417844089782464072257785273628660127748979232570072619971012097503352220233923096313403370714893196373729088062619219083889405525526900053851107911877137598366476171885151431920996181291165360963427004259476760576088519378994335802762832705575403139138463491036662291876180995593340035699019766655190532260565299929486462198379615776275536197413214238789343709126165032594475200190048810472775157639395550019542373450557805252182614351556828676559077065228346304134693401084295622051002430037436684916303798005599499386950975651179532192848382196699712953335811637337743382121743489366324305111655687838297635576183919837279210062736499010133930726217637249973224463941965047784528974646811860339440908242906629063285453481995099194855171435130318828213707070055875202765936200261185446867840308677182032329118789045891577297531425150293145530105697825055649180967541412360140754350918520400845271168618943675371813633559941749919694920295245757274687628936123310807024275295018893877479841184949333583794913832442130186981891568923315916031464281022064456759581652161734065130752749287465068637936810673174373908888570867243464162932912066408811022809008834304371180094436511521628671841315073971558095118111169072728964254795476032819988980356016580536375985705402806642982823127184512621502750847034723831575568101037519511631313521894119517754716509331735786188391794547127767262753458375713705796062246635814296656686807564701784315507416857803117309225799210250314400958927215762042966677056273440662507615120988448445414574739482032173442808767511513985199045089174759936711411032828609245625165870556040430704441037525170023958955946660343967410052314330298335732628294357375298921573234620903915945890087867617776909542768710195471800850874178519377277119447855889797362378984118526800823441629593004106740091826856138538422516171283425718971417039366478956701644219324725056770126904218152322023518383154187331340964764429153300661626863067989427844153464881126553026533301032528715225004392084093133372444005080309702951395257032534119242446611602787532139851708965863960520168225772599256954633707810869175398698986751823972835512282722387764991546371227819552346250461952613441221694956024278469551107174620070757243936913548493030683263240421057162687622865838880089188383717916829284248498743901234389275020048827551753579736085379599306184454573008825667054110121628177215620902747605179261050559319749909811919623816099428682937258898178036220819381224495219286738838005337597129793261136734663026895331932608708798337506147525119128054190072401771094831182241325480342001209712329865018792811634528296722855122571807385466269507122504076705092660436257939275341073342996295646145620128618965954497125706606630522323146661794680591156495964943063650270542205436845632158283730894279723944158679436012958389391023954690714225350111567930737039031491597279514839075617775368754807714604926930247761901053869877291967734112414737562732915485736643209501989890407616438358506652872820252779574611223248388239207361739244565989781138705205728475345345705153755357354791591920527012834980722682488657872273349176963459169051376478432425736512908223404495579627576953542532926638966215336308397441303938273128803733217976248929288711703611503440024931378215300418112419617010275702964895821340724707551390234550725427971901343189366832734781006574696420187143787322617630309049177347997917842713319100668913160315236831286430275882788579717182454007973184387087025063107524721228857411319886295312717915526396408322631118297914029523817191408285818640993694941196209905032733333474960263863546290530889729718879895012012595946707109121149559685677394661795897986490197972872367443009397756558119286491067703261883803237845006463307469937570807971419217085378587449586507423705874647325599321697674644470923113401699549286511607230560744849258077097019582166793185549354299319139212287546224573620534197690029518116070231399885650636707952667050408745696653130449158976502791797900970424067964503876491977469454796982436698591861607185557608817863626882541711067657680794425706172352264624965925790444592363874509956890210739821153199421783003041261690040779248953812846933189444899666208420425955148025540726577532725015977642846177399662850854684595653416945761518682168228844066439694025570182008759662489374963141728569665036510977707641875080415582799715185576469666489703723644902781868108650955315476521906549459306622643175068248778621154687172811161311830585619873219000820244491660178849135292490266843228077309011750000779037879748448263924382049902217400779958759141154830685919224486176059134437574775032381357184506209223108334399616371931789202322315529682342226166162086772599369257926123460379083630145471993697156155220187454257677365233775898411169892969528946068798751731994744560706339746255893677065026185132649605962650352285889009188959110558710582105728755008926420088824102445977927380962968700834074534212648592802258852903272944504180655578247797835809775642823899298241270966635861355270499183589438206416791547528138216741782102235705437540982879446165894842035120238499795738794111431055371599944561969480187584636746139675620092908176989479920186811239508430322845251616161717884596493107306597217160115819286707282386834023398978494944646214804291242009229113135682617060070767264937295916847902075750382048019348651725373576755177976095870520702484842333125916188074847890874081531093246328495856376641917351572483988118077655852287962517211870549771322771707648927403603371039751489698218407924608719370045494606604474654759565270568470206452267370849469312737202454422506249911215979451800034619218451818947734085554140117551108918254584414032236769097856607078121603979039569973278418850717719839544585769235951173995202271589822509518113140259674028872632255943843077026997283067829653576801254139405803417777930325514957148093652544775799605689785874700175775574872282295724668669138283452266917273292367911256411508831356184969878448443635990710916617866794593422294176290697281473112899897373765457765943454646935818958787496101610169592751990735008331667054763714965715284621886357364729699733248941560262584315634082961214825453809413225301561297203444610713280283444618774558433929089293089593690542322420585280718905701648664495781159497906094433498731179483069458285089086413716270138990024055733411817434835992947108532098659613554040454481881983731461782773705384997587234932220273853907796130924581372399044392584611968221622135097024794015621852489550666861411657144393543711274517392193767372932481663714492745739418471738311564530960417169920283559787426885280693743209396412688564085305528799719653521200024178176188486104339246491722927094916848593281060660300624058980996281876822558235849187842977063553493431640062730047836657278464148709295514286901682591008729736214797555065573235604254045697419187644154379143798572721406350126987579214036125485257625865356711233488663896280334874666684682226633360638972521251059157534888817191492924611295498913849771476061356591163781641210382735437344295283798208085326142661584640749257810662268626468522299850631777874098316224812645488646816445210105544486851467406737071334933168486540612328605571644655484629142775595801894014039674172023321141277090680264904628449188241918133587795277066982854029008678757038238258754746779038551087646952394165755541102168769699137932213298721531470727204804279539111696887966672805723309792171026661304425499461194104902782926677977687271707031874896446608231238620721359597166788761438537298276517774057887635326055984736054231040232211789768001442220206595912203109498653431520457023908812954537161660490925139513554089731143597916736838849352929823474731015780857783066259847284145903041994746243145794806449544067791766572484461042932502874100645967818566781379978522135866343669880904584929070229417174687985573241375591539161077509539245072531826525732731142001408567516870511824971421559361634056136408769189124267428157029394277429237572149013542144120821290499730654842310848754712054218107572836792964010826909057022711820235984734438640431571499953325110930941200832880828004065086438435466155348628336618669059488450918425733318535338417711163704441016565088696850672332950106408061795127113917892364871513242967768516689459076742115893579566391598619627326583339103962611848875737129022590223113996392495536603121361895535254619479930531147960783018373695116715705377597923850778334025396047896119389371612004223296320271323047184869861369720900869962332425053028576101434946527189614076278864548440125816551214270740117861014702052307935147761369047555278981923796368008258192864812245581154664296973701330294207943280939940664557129649441771532559384047338542296700877229774880627299681711113127621501242027021217306732769722260937861729652998479302372833431931610181478719985631068998129989648424111078796606499059944278412076655359923300037125042375471937850508255077968491619411222304570008771024467388600909033831796959175450728619566169902025700485154299511070799547073683256715161654600350084331621525500553752620251216839980013282057080268816011438364535780744239169906768311445834723343521437381947140692399273183329276933706898913620069515748579543669870809874053991235955935430509743858788840215880867752860428555095338296258126208910092472274906938781764780804307461770448551084792739503942776405821167452427968812383913006856857281088202463251682027613083962293673194418360728034854620840547770380690005130573070237076529782789973701731722910699889047699824734408035313895788575407656204557893874043340356102414181109675382278939345614225035731045275916859118885231000346742286839780617174200657252739225635074619229944472382474378184797498628045681044276930676923216666639966479511177771953415871158759237348580667782388143736495238257766575929506944735102737139349386416387584547058306595553446823418507670718801357687254084515608706596315219344980243448155935329418485983984686206695123565341421319885737422677735948246246165063301071507887811595683324148589101556942294316060871638845171697522260693988555253724937855210185910634872116510603584706343414619820544869883784263593440009573989698044299961282118416840148319034540957741987796937969000136527880864852615594689309825122973437464290391399700024824147562344081684797216747859353801043530536550352160740549668267953696606386426164156710955508029939033298556595838844490009695473856261957011202037128089118457829920518526576607340884417798526039952821342076798982064291399541436762263736336489250720035654087037449557659206768635463439400157073976830366549115362141483202211238517444370078295453188679588780306613187141180070056106416221104612315062922261485690801803928870356836076215235106343099017568685607617906702832003618444972199314539529237796731501524652263519790305456885020364467878138477125820477058935910117172869312496868154817917932924375917923394118564479429961920291945791621919062049142421602901534492616419207493048322596118263968390817011190964110288541649933221277306393392769879327161523560457293680229884735313347319023454527372598308826266296920906305932842906073616696891346051384672889955450264304449312150246120587709429648653268090034056806380554920720108108086280545343620095385191623650178955409193420127582199434917735380645893580956607978664949217999275999603033438941028525067332694472523255109216455834287494006567321932251259284911304993660986807120245054950670484053177262823971165909343126709140494567451224085128049637997824609663073626620697425497113949140761164656980144229243782389237201294770465585219419655520142217795581427246640431774580084420560607799703254707315045012726600874199370537197199614474564870826310515961153564024450558829295842503157953732676479707889112134132928141820545807927353230038606711307845328240592094157386525540662489692813689486984710334061336274152365397176421993397931996752854209791212614046351830379466942949574662884180919914906289079968252403565622391646669797244763995096163168760655751475180480726141738785016808207798250450557278655300982615650049908496933459099243144603528615136970183835982300827166359720741265007119906694749458476477879768603858854857383189538159119120353051291191573124174396130042564308995880218921691818550922753495215640740038323183647454366542493776670694924724993634289139873541512667691077769942119425440164975851196394253948639073192242397352364948032025339491007989716283582190719299711366991988167236974876280700222858691917747926163044109960066357190718458335100115986868502492333722542453551385216036778686310141484999403506348996443127306685770086088569865883370641240434290586011701933620082720285535225919430538571612266852485685789731055193533525730326659906120080259116682478671124238131506974387979076313935468146355322559001710469768979547769935237193950687486898124478769205079587448554475257341754770018816677467410733403521129047876940881122566748878685009541406101008698754348154062137590792160177195425556656729980019984891334818796901900236394978087493066340989657061729255060198710284280698113717244503222770545437329396012494089684930315837158871412779547998536583823074602569636468162351847822828572728410321422613409534655758597252886974577351108667010131289801820658380806129139707394403142676280600342626293578504723074804668961797984499157041674147058824052972059686014077819833431188491467100417022978037189302092734737570762912018462781811753999361153906981814416143215092721152809070491700801405423519694022910966052876386385683522115196333606287802156762800367084451541491220113006903361436187944274392855162547392515740213763044647632384328271131197184728526827872504303765350978327453120916700377142980183338341596102455689630383291304437746882300363436361117763029548151645874714455766455775914657418802722199436681881110935605259833658466400771829567410025611142645219539306295763131703596654718651301080791091595444468859412961785105016045337230219138453129862808388790667612650739948501096333922269881772698735284788414302335533150623037627670753577865096231228532426246116756698739007446418752888097830646041360754271661412652763715199332664944636460448874286990601700589545739153753825796489506768108362264651765824894317541671894278482824459015814286897188486942873503437108138459051430377982573949358005619356056542325203948985780094792197950748532043079574533172249841605915547512102655110243414405078645311527650745111292971721303060105800806560164686463453114847988184632914271998359211345853932207940556721319711296459309027047899694478713061545548862496223568497371290738285146233445840597333556765937395724307733918210892972966852098220781264570303545816084251199103684553648283596163833558363434056451334222868694989887594174154221418921785892311723753559268482747408830897841660415483535740400497928419410778234559358413336869565040926587284130056196651336166515809022471590342855637614613478138687427429775146150572187236132076363660034694380940628526730844298458472980280093452324520389504791009748922518324086156905443726257033977051500988566975788093550284638245425867680435044461368870886749895384924673106517961414438740816083137650421824613369830340536496802815578514699838667079714317000092981266326822025873741885286863994971316043205025888620347981464620526702779656985289964366816371233900496945511392964186322307530812993157197040023848592729827529254044700730562802949383522402144129649151199940808135290623453814306515902537059231283254241173186518649333352323693663862997923533863804744237161330388199115955317314363985790529831659569490258389272246752975423804850838289652985229574482810814910350092523424855200964534589610121051302312325713781246635815440867872066045664666572839937278233033635573591549755619058304940092192587957972127798180417674930563133614504884245964802230579875626427757741923252953642037907222817387157625939962282300087463335298646655822686868067375009946702687992795562093072009237141565320138845800420682049438560340764810272395630252905215348711552096004450469310537578285139394174823543842126608417024050040271694854372804088323757933126004043889720845923070877050967510475718067875670855661852155209536116498463128485506716935815123030909720915739302686979809393188158754171208949685052958307373274837082878399766524895764239108149402797887481383722458726378115616726464636871545659247483142417654619425145330524922391312639804778906003070711202430877172074165001752092259881577284173410029479466610664723378027109996711166412774517879967098896487691993016539890071668013363109495674238633068698092484095991157217221742795383072797725534647998893086908655153668858572141447822478750853428549478348494853116250072976287659361479532037135411754243246786783626904231771803939450643379837004541271831595761353380776256543518658187880920177597426394471759198896637127493581699616164449977805219041153706241971650554357018802224622393980848465388499892712409363518412115411231006968504622476575000288326773050200390204393453874151623689841505413905956108539127023939510054915256949927440173883218162947878359015378140760698824565389056242356566059530662416926172438961685469164493466337504217137638557934756894039935576694201005615691310156977775238702690993233720725029210402575238540542122160567856056999947717677758881181376733457846717581641468503998322338999410397764057330632924619112433836859184225942157234852852552296871918694928861935800705112434302524466001223730186044824282676818448658375629681243819244872876577512825441515639581998412580560845152614124361032469993230742071925801974475603191882657224984731762236449272759388245001571890708404079195535753353424180403487201024048398448816602116292877270621879302341328344623352078536141763667215703481186169357051730561370954371100491770794787861618054682718359373483251329539927983796833288547687765933278249880219362865772154784952174940277674156640245485642797870775475088917696519263592804448080942162588510614990601329552760202115244653623572172984629299677019432661556059253444715947324650052809364111866538736003149729846286090712552498987246951992923454613523129696251708806969460489315938970652217313529701945283769545818836744312216576802560922446883410345971222914906873067717648114326345879839338481725176608927040033332894161933309778249313067970653122377510664643160782599547316391687104884747323817097536872619818247302421379994640542302378279549025650734539412442276841466166990958282300015445354870258412957274930404387884158517069847295763152634877612253959630934418604137583125787303175765929826695762733780067100041390305963543466730813562524348963764534059377470158078592309601253184724597862615417854921920251025252543173515500499774907408336182555802411612012049273300708748493854668551045018959024596974889675462640175550963189145067954591466683428970143538924394345035700951910229799461196014627269406434633429486615134934126359519044233738823986146852987131039641313119797088691990271886940704467329180626219929782266752229119841690525224150431709241805729451096906997361374303033849503240916684956340801558949057280574620312283869258487560379518076932665223103183232181274286562547996347666044172129284496783253399129896939077684893275463423251251281488839068909672425663826352907324662988916324242589355208529276159001486197622450722975818799047317402173627095989642054298230378899677876874254792892768070639388643572228524473641391124707228239889078931194679123297891522164304561355200163036773568300834288698056589599057226552447729804894238899008020426357595401911555588322176219613050977059734216415544882344612154164222066878856694295657748526443301893281124920710217370143643313826601709420369689636896781687171947714588775178724024045189473728618589342142014819305066015493991259122894237941212984314973454991355934976259668072317531311088786342597373226289141016951927012638660938766522046024227688729519553804161375261947409178300545750212595120970979092224368029516997696247938012619990058685830167167517431100212847869407811671397893939329931723977793246754217385858368652163377957518322909784325959073015135414749403738609264631712473531801402711082390247229973301636692181119102710660670256402454595956860193249016518677658244782820580713052698897332758061768465170320592750354610148143298606546063881287156167267144773433989438257047284305618436748326705742662285843086699827181077952456939296223907234487394397900960207995998798884328693603076327518994378727547651103618127805325400543775672422666751342805388356528630625427482989702434226908790316794166782391525284856219051538477860973651384607352159637287439838018849858516967492818650331505379639927602488561011299759931780222203926229747346276498745136922533522883852529332500135299610228691471456408860759179959190865043590533999079797018299071188780309094703155948433319727887692448587585259830455110273827553936898478233089072419856516436415308392391103374451754435108202622899228064491636001663628566136935963146406868099049320508273485317856294616123409492799852696716459626751268224655110821344287715681174798089202775844120334685735214641327896117425763395234279261024823418818003602774225047217295599622899758571024332849887956460787915063772249808111907144482421437870011393212391980293673854190631617861811519827587043444480529916573964858064315462637676150609530911240165155906932634671582058347843065631845755089080391614721798020583961431997701293192162222660013791105867948713489710596532483062199039841860525963959770603706496934099177717890542116439925580980286573271451414324621809428592525832316043221109303935476733156792883022541996187426403890244049384325245689195785988990929373693527424123746835256201880749779632670963350602198339700941801079809331774058308330575140598419473630948911545574309799914233733308006789214688038516286484705122538566295077993815216082940346818367197469261571885064359923630238935660240234410237983326107552265178096949794653185826580177127878429588483494762426375601228978460622051017643187329132877047034825217559401327171012597693502242463357585701271919143984843901989131501669589346949843400325665896397175947381386375982577318737691320078005474300968012100956784299712136843967323721050242503340346989686444965457646863982856423577331247242570267630466052402678918759310420354549715077930649119185776093796668022838671083014883725098919159974378623109611530003507185394784425119281512281696274531719038840944155606212568328877245606867021075452071859652552475519110066095327873807009408954187956617611231934278099135456280104074239464742076397456784431439334640529979918956646700591741143074996828813264317130147577473487584707331840870054813893148546367135286514901573078107401797230839804604905432431469736674799084158463266593621612690149600176009230405761185211906194359607367152291928382627043373748554698122582612911683640889516117909594965305004023535638882977221025128683992458205485876966349428404017771790754914910200837467775790075194703772014303609239120704529363733258601263298951413791037879534774093476022857793026023887907885699710135585598138837093336169268256520567487729842191531515432785233708466039925124972704550647249120530371528700750538665570301829503438946990862386677643089420074959849930658351137775598267949787608179816872781611094028434968236957665536863311085637017396895718549279665904419433514657485912588488540388318402087570315991405293399592563075625695020462552171795911224067627224764657216234153839733578987056981119460948852323044397320232040347996289674664557809961988792492402444138423907489813741430993347060480902683982158939107281685903894272849365123671950601169006023191692530958878593415882018766204208969971352732000765506213098129336455053995891916320548643911819706886787739540287296743132419787967034080326503858802894516024052776443777585722173578504022682596898004065907168753919243210737875273241024373281364082818136997240185626766180618331452888150370049070920295721941819779358370598985346647243014396686121887842801650883479075890912571626770536848039797642538965420546257381398745495067597591475907220643227470044993820014093951456718539458199756369073409036172922090996802377268132448133515454752628536863282701915852751786870708482991605824215879183447507778701961861286295093993074942757469523436823185324756681157841341802965428944130873792634334198701184395478994835442781727682411556593148608677618449089198928405504252118020371325639615288267808652884605250549356550951795025299437337915588853268314357857967924375719067227585404475657378159447312961071249151682886605814257519377719000578848385137318514075443266081400604518842429489683716349415572570181023525081902671531559288061109205657926374192995072730377064923914357512048157245537710398401861273248759398428165146946670582026402987307129382179356321403682477681695601431141503116614106476391183222431466837542847870995460232761266651229503096583686692258940089348214532918589363324139491710598425665527966188929174889607590519280219830358116167569967357840558068693582592270673918152613036790845209158745704077559164845617837819953938361351801740348935406503340048358116611703179464416154543213513915296672640371277007054434478749817134120482737820840946414254893473602194567718381313578480415515919924147936908796170737616932829048699094735089277932822452593076653506526576423381397721382588701247242304277981455422954548085713141425800282585971168883389940197188262818530563554866724089194299750331352301425511915214217724773950768544355059096946515568616852433764491429433146258407306010455769460113370906834907554527299259905754266136083274057484880941082213007241341694795527744400391986903999543310205119322685503907256593565806922782018669805957999151530694907375384177815266449287949987466861552016650273522304960516837367640501304141287203724893415052848761508911907780217518572155414475848312989047171666514119241198460274534125864074922498771263501266471903532418973848597944889629500652939641536656812324397640078533647982640176567839239911336174352797456213191724621902745601068769914932858683450757719152311729430452411574270404914659061749037221871171974940708931493076338282145411728272117814015138943496319711866934286013398997229488076627610123321072015488550133645583238926937880858067075493838673332979116017231983185434447828805651274722262177512151084991791404591624043100933142513892505065215911263208443327116052913934167302046595464018139061660811142673329575169712337308811495865145845681448459729207600882510000267431573993882276202569137737614244298529297208610193709254405837171977037717666759471670030968643418726000995953033661318963376884331823295971875634077767908666122617391397937213677411884349537798863748134089283093379531128440993015440958044620529912847646069170578767594163166708126473832919730383725100057084423551051458334862087611005252009082168948452629230319308532643939795547450819012776059269442340349440095352873167059445272310382210108041397884911218979935894835065718811891864580694063847932971226104234792590296580600779813462770754011805112909939395195730242056962405258940131216144548193438465434678492338344611732190109110396082012899915302991613952739500265081251044780378887674613577544967998326399866802201586566524986093370547112294656303378513829249907750612871358325506043834180221018457474198797363584649369691093698334557518124875992241983037646072091384665474269407951544109236052845274198504967895888545326129102106479722048718969541957542218243163815283024382943598512912738038863743999157248158899940091541005422481280486656082870881605025825229460049736045909189160712700567508516960512292027819364089594322687076346441281838858135692907438592536975865296790900119587706385745612866325530285294504423230046956333354799876119891057150829670702078760941604016388181628479829673742501532749324487377348483289559251264324737888954721706518731906441456659062951666684134962433219528787641337348252154821240581378293034671995821594903127299494759222441576645103653776842683330692230627990881331228272206297763026029936568686030851871139137035188015290745556877693066576040424577363439388235316027428997051734517887577187372941042665435028386383959102524941529070432470630286885791495567355195441011832228004281399347160749362441320474239143820085537706711421468846512415744326439765490596725510946927715826835712584678833131836411311966581464738194453096998684695919273521273135685770225191676771112189053062394199570071445077317164850212307664910505388597454781061494017114670891836251699555582743870978695846338822133227005773851516772800850467717809600393992580368689615783023238579054065429130979707221391428551453725924238228577580793089059118124008530668299017287408975142950918671039007951032084988215372225375685938457606274275894404187303372501475390396158051347244385380521796808039443196142192323800902944758782556375676834986498375977968574882461811389498146306389655999906125358689103514257075495435566144144949933918221628045194299456949233093639663054246541192571961103225092053012632529885585246397071470856139574620786799403818544368679661866563795135493033110771179386141840960788568347326170771152101140611989179096474609771419565565764104604104717309516378610528703695260880928700113538821243619715996047018173051602383139130334749199814499853082160913520025370289384226932641031715191864811957728070458818422737312480691070168386089046238379876198603512312512562550984870284660660281621773774408416296771756849729793921584418607439656241239651180255406078501512117537700516582603941728482679963781158230778291007781228947754331205546031942666713836251413967626344287401052181085533578078518616862500785702320737026637902630365603943597189448613648269484995608017101067314740321979541152542267648724584873845684149288512581192550419955708905273813594868643237430158624191111389961608133717794024163846736440473375420288499575935582594837005875037251111535717461023287535958108479972963361000995551402923993852295638071405171335287923731058286811146653046319225053957495575899312183469829848277909741250784693481904306821886093280300502745657579238976776850381541740354526383853916108271902544956059687331429891385042659664901714891437401199500921544518975793782393067551782993158005331841988228047001520986203579980203132278210472400515191272115138601279764450779603448156289694947585462791697869725273079855434337857952977252504210313858663906062580579836355292711132399362205276489650391086900726602465493003160216815629064952111064202351795327123310903783132184057526222522993405805446452268744732474745227692734639852745413711059289322847745796689669126247815394562707991360005347082125209443966883054711741750483862983832493378129373262683677590326911867046361398694855845537974385697462644563130097103902011289079104334804830927861123082182513839318622775577127278675239223986119666002385211463811418146729701971222769579459293709278709003708083713362755739967238445531837107143810875436111061910563108848481031205916035893082144916081769891959123686029516610732703119646249532385065882059937368607891577594602557335728481357016104213817354324723972695122583354903890788409711573542376019673176884139863586036178350480762943711092966183772556303614390843655453193673179047330256132507267997004104760699294658095169321130956727344376101299785427200528216227438353016455974481514240790388861618039021212061522197468766182619891190065114991186370531169119663592858620026419000571341972089803524269059698346164016560364180085540642877643975512152431487287231876876471144163178680470923116835600631031036923046163496494920586274359706387910126824465953748567980758704069179093993091364119301023057170068118241143607183541871549572128633727828444128836631448321698182140410852217151299905906822086904452782788779837365295428521608781282399744107163801152710746388381183343642109203380594846128031330039760381958198959635369602521310746181352128092375993338715761118384581184475194305825846658906055821833367938762493711691845299463009018093504514840093254127694532199381047609883814903862847847263015763454673705977477384808189663119890362667596934588696146121249790281920925305562262106460311083223284628220983203281838844695674763467274318658734809005648007666977566836622468169791965810108532916031251436819258764964176513157795000035450006044648322098791438916927293747330531639619525260002416917794433925519769856866059551445901399829874933027567404157861236455233789468002534954472779128884797428836355218301096634514837127487706840865202750340339714250411428225111794399937342334118369070956011087999127877477975305809749997671119049221558451770149382900331845595579065456417814180277239518219214864180580938083910243994091430444222856731571182141011910311638749080929371121284494994198930239096280839217779847104613366921447435348160107963791411566286995735563598266543174766888460146957490202674941534467594568139126194641299313175472611189045438561901824528696433134183031105992668514247038102062240502817727744347483357863075733154362778248823064027610632140817213622796149276286620915172014847412995105377556171380669568006049115910666568287893751462675497308698711649584147338992759133521494232317786370409203483517246358898654363355110232498302503974526097048470900834999667153013263457894605239869293530681344125333847778380077814384278165760544368972212588534373430926154700129385439748288024905046092812925952385828146530213548465745102946743930245515186024862951719474865551384074389728928663020218196109699610696784659654221692926596188028961472190071487536587065410212829003050874599917661814204711494215030375736985149024424151452772729516049349741535396094121183610383496991948577011500877682374045323116605555536582368888221450473218776300140812961525385599487863856784634357643426262314083021323697965636880688719421364023582264403467294455500780385054612342057904436155796445733987560226386478274368125895991558548844094944812716385910497915124077659598614599863520009584162279868155904465037603772779406221819764538068207143746881825082856963771194035529652242992785518650938327102882843751420123353192042364827563984716239667389407436111783531808590060117545085117770630180442029843968694648417106620467343086643109571202789514857604172920948118683200985991768180612922348016141976174179274094442146074411626476229444189851601543774652074772484147611804610561522954453306079796164675460242219534359568473759774594858115553208314060564645735494614587214310710297958133612927974027448908247744547162984753386537151098416334782476548689419096644915060457076704078417120689796166192371872074087730477041400287151296263267433783971137948413496910586153428619160055290144686591862121494553673664937346614632056762910854291760598719298933798024265805314603378840325358862849830408383411352909834078990247648110024025426167772830845048068928358594423036807105049919472979142625556698335655965653741855733841669709547378181200915171467167897705000954889436197044024719415782641312703189452908344619843473443540967070543620296480647327312913187065164813167909139580349014092494211826849845683687109133855528211397747302444397990294578830853954683063078184384375977562651365293600961670722473384761792791221793260025828436983562007994007289867029211614648168000620882976651752833709506814620692123473903519716242596031799968841623753457648099222766754401545286493231768961526839954885982999432096514478819695961783126968680941041806037730536473624058991189822770228610384094539756428402885418761970067978741955850528609339743059985972031106636750062548137370890728232653415420254741601697816481831054897997048445843935128145645413198350885600762833778679260276144199128569625244699253368400856591493714549933121528913681733383089512492008495702443362740435240145623118946918385730286810195772134557479877551703281684589553842522211221907610155707196401395785539175890768503433294914588039686305983986098229669352653477409610293947604587945408346473838288299099441483148973533031670658999345123517537238126513572014463941575763713008827549249240161194254279216599615112750565338749954241599919963929017734945037115558348050186747548891782983888454548239905301041690704543810540374958581630616676648166524929003574171292470761930463630013745901021092828042942595381557263643450562625078768437373105451326835649227983835701275468454664924483199064336570406101156146272819641088715865398542980406605784385061758631644313784938899321846793903708302749598157158670674101591181081278703578478014472195884916781622058357006622289783344401668638035030214846456117238261758863561976064820393206526787348858816651921459659854221175496145074912571097921826308703737529112546950225371174368955690364434540338498498073416236648727527721965349584837724018135943312924635550066025188314087088251918336716793110634619850825961120454818214159993389104765982115534312753449814662691964973972878183958506649173918516058040157715253455087306257787234283966876362364779522234843321565417516023264164183885700422939095522943083679979479892638866877932594724476446104152229302381553219023788977880516875700132147451078319799924206571104978293514951301477257109767410643823170368899733476954175481513507944730265602543894523017455841027287842128271517314779940049515111058556871619513603453888457203165884954670591372071659210544077927718356249492062984391285642733198461662053906182694988037728105688754259646764580320174101557344903529394366771925547278327740784391207952922385886999777772891011551133420364453922127567122243408272082534775150516026657550442814204270001267503116898208365463953448021499157723952691980959595884772167554435472095373030594894742106587213729483070160435934997378802963042399335160714237144161833833215954524115483296842309958004913300599104980115283951974731965224565868883280872400428180355798441092138506734391659939821692524164556335180777124716380729988220423820421133417793480961895633380299321235728386831692376439376311295320233683535066914316069310300656974118750146972615709329647364274753531228844870590621836138483481971165999545168190567807875833131512554812911585490019841113024671439403628309311219495962337038059801752061587091194198412339862273005618354639162898938471919693552971110136528704936071951677034692993314089246360520471498245513516684464272489578029376322342911709869498135736658428831411454449576405836450834460994153080352252697056518151173120687327596326472564721482122703635717517644362477796133978530419656674864149364686837243411714943766368589495095168284856418908475926004536594241931675058720077055639031883534610658542389130075448357025669517452808034578969733135710530068196412948350172513299110626934477151029301919310201648884934785077608475153099412060831631350057977304376215940876510739172228360346913877479799839736189954086176533798490339331275618389002487799056757229966965657711333304809203466635554280740652095079766941299613654111031842528547481453713462572796160254773138062142326903201475334608707594273071122206372509755266294071051482010789931540749505381738997885525744279994070127959036345979407661706578563049471658975498262357562932087127885200872040068704195573787468112234742455062532262646891026992667662307612236802368821360202949473468666584256344787944824036715616848684089446323136304833883539976797324401068620928184609027340761337824151468466921310917748062858465541203682812919491765418358120025272027610316411349555789505314639339987833818608251901289043169807247957407243968700089197836162492715390455617875220415980446368806052497443479769787592602396278046450485228348049698846952636644531876374727658089791770488232653428337154141162597472792611755483420387769252782674035409283877941903234864411616101653779872987501001320571750920702788629414676654390567399540200404511796103373206960336475701058222864416490756667131225871811812456894684650769068793715285204872805743951528060733690936186473496934493006859202793207419824669668587054372258672142511321172776706788390144690503739560460788586865693863956627985509979409671144660751419510797585215298963429092635100149341636178501193110474099998057583688681000743087950860388576014226553614762849143129432326447556557486630058606648973022319273647700304322540988187607294392210630869303189525479724724626043672831361602596346476064354376429568910851823734829874545622705805779031293603845363575019078545290437812659592707718081757604625683763421859439254176630677459617369367600568380691093649095074654679354296639266802841645010178914992801125659973888882718669378034914172471441587242966774174607493735505329691287092333107054960254212879801113620861473120575573974508522913151754478460051316375820741031078279899561638350860387773342792880696957544212090042330019497566014994012404962747037875486796455452213907239109970992360538536263019254519605676872608100809946347502653294862197494331062322219967554594581396665408579255522961570741266578855306038375161541545725574231249286878524003211988381140507470544266942653410936969730236476074452534960605601312667436626408636980637319157667263833712796666493972339353566298611274383176480658912294069018733276881212228207749085247918105035548367795480028978356694780207755384824976086808720315580144456518609223237419650808979950021839019168793609985646812894776174573116921831929182479467671480844618624628361620027550255904622111559133911974747014557869422779073955414099441286480835396123298952881363399858760931035411670689429344705502190360329950332927238725691638874322194692629439617670247478956554396651091687040808343769651285452930959577099249353297313144888165948470212871276193287287838040327251529066029958086009711363994845643984998516628426615994425979072808649572257271038323361929325696404821344120456505187078694992569935039784885595237507003069940981569129834324050055430779329693883895001903937404528379352861280417624326001591285191450884362867878544028303740136537153700479010711912528310171425016103696912235414431146260282011699003010455207760664760967116664930987532264715613800162177153425623115858131980710626807725768988036263356546944384833988309732358104999366083587512521469956054166756013960557746455121099769008521563615808883734920668086540362475802576953772109135394938678415926899876977579081267673983861400099105023961070494344371402859475857524113120421977846218684657722910834479512788951749896681423243556822318516019011481203040570354855165359135871280897771177149160529236372337476907318268631103179954388748202119281757887294088755260915864261039085259095522204769813110668049033318421538815159622223293109348623440103566359876345162192695819150451429610025028973868062814954705030525993681074113995367223209574758554097362592589880356182024777237222592623174293607640443949078880994212609926581955040216120268103643703786510726234326512183623387079761995292336292370136020082785284634938826359147048638726331848869535690301670989453112742193017119552278152309329465175158817908786059430063052725713231209063996756257958269069823336786002245347465101156181365664104773900426248938817420873253816361668707936310435386275834084578098022886284546908035991844185784376420959748459646864899549286254959413517063393362669134054180447278599644942352050953759356846306366702300118422598871430847084905180591568149660016367299734494258880403867765819325563639066104764840307332302086487563063939877852438996296534272526112167546199130727207548899871000038618593862389587241266920741026540265862233389328888059933455721733872564223828605474275364576597462082959019513197622019154555742733288113786766780839829687251922755710621182068059689578617677319262433121941286983956141270479601311491239364383574333967018187134391488252728169644173243601022144240507775860616605195375508320392841489966276184323590619429119878611912605926041048279546744488349301218225474143250882983021294910717427272986276722451482287378646894136897610278156670301914589233572295887966728587871172479152696852113032781901381066096695036392486114287661375636322135461122493482424951652137985101642101516732896831069605113614557690445307210389401301540789699268176785029028667747492981800500624927334428083623351208568181295755597076743830471912729940401615664294637301457675037653910823916261262039454666664830051994804260423043433882849649908157210537041029038025338208774063806412790102020183335251916522595129908558062584583873559576585296556968179886234899478337412260500637209969813113239298854585780352213591093832037018760633316099384178937278102844981945849278082447136675334340599999812395521931933618248660691434572373774394687146971221024413471594729759449341828724397656427515934164241844287792204347816285149841042469245076423120668884473316347517277184967813064163402088173372657149962072042877649058744661798658959272019127624500817434706623897259756247646064007017417572030535760001135708599286868944541636845797145294449160788958227831621150520984777581665070415604232790509878252781506119568066129134766344599779074472758030152310293982698587574875424700128248523831907764450156192711922744325664433995992450244105785410145064974062213629957403345681255896242723344166636845958612983866086288216435271587180665981535475870627105902381849767178171825376060077343517428609527071591325446906643657016905524402661644939669723446359382553331459920122812303466286712617377755938237143044520859300309222896224925744117565394226751484405970984784410609607625141240553678813840724015640260984265686753164226065409359509057426399595350677149618388407387445822617686619344038222236976532397259116630282510491172991930844501870536405819508811491881742552331406169253560233756211006654506745733738212717541668121628391356145175448260995095879357659224412112025993539298924574729685554424942071191799930987390073010864794442845976393986492076138398060120099584581535116834394744791705834226356273211450901993567969504038959858532056704076195684338721429798721180093872950550314088103313007769995757762837228760140896115521178839120898876273599802965931210474117673491773937249702770193916942444656515160290333539439102137148067440183260215729672276624824754777566395533211154570595324070488166116642219827329079135079446746701276770780189282007649825840801976211516461072702362405225919211519319186619966206893406321233041513099284514165619995338913011198479756627119357790401884673911161023070581086562394329516384227894106025019332352545209509969148137100164760598246191955640759513499357008059031805524177599875216121106630923150885836281723667504667229082946045391349070363292614301616992123747722391700197248176401730437510743114540263394773584394901857829273484032850983444131821964969483523787716613557055495033609052527026662849160978995542936375486777680628186073066700332208456876110168699357630551693002997035044466330425642133575619463936940377336529482569037160509655475157975734809608431277109815755091702341248086444970927877737139595490971073468637472331252023713385624759751793276884008685546356785388955604818726372744687152662190945192055264260258883436647511316293089648493133861059722061783033902878815556096074427491101291519898492053562551080602401015582660379825386416175320867201200319969168881837705104065907061522347842937571189093733411795816322196843273518336590874892283694065670762928629859323304306346210356006922237076095768372310742226913943932546619837822109146033379994974454588432595266040974853527508542548103412380728512640538282825767542533535393790663703803704786113601169387245815961998684002184257460976602623368282671782469679182637660928492869133015574225951446194453359630736414140578294585881891581333646965362960944645700951707311401156042158941729640601962769405593770399809610835107707740396936205424336220154210986315492626418162941606863531586240315276627880794334068828100826714827046727642004531646211601633300342608840291079071196277738681425243494328052791510149132886893285914854877632575026568335069709249047935035767500010430860208034394471862267434057371244556454592327366195745236749934519262477124704277105098901379842028273788863243319964802739468463930705411746326293618554156679913364921440001285921772657653156056494417934500815146958916429914144931731604055751627798899275790747295730440351687488176703732597797370340090528011491445866382529235643425823361370376060088844647149175475506826422945071970510758786280741243355524642663982366173531901400677437542804747656264878818544508229866031890304949296907761363682042023212466956760918313753928087491695496534000785419346603568483407884323390283944549174348552031418559026524167662442158782949493129846897233485099520013692558158057896487067225479630960584070725453118639256550117250183006039299353996470908360181233746659907864062400511705967909696073586435654094437035106229397414912546037913486982422690863620857177977259669793434845160472498232594009430198807586967405332270634731048889307629981735670966350174099069883544930907174938955941247946963019127020897955392004208472533284409786787833226872272670765679883696501719767019661936748232738325709689332308668200832528081918290622510710987526226099635581560416736742138422614912466504350269190396400609532906096960721182970267545979653997202839322894250691203964609611686280652469408120645032436031301908758465873414725075741123292888104581189647173816267282274181737793768109158606392280048447775333151452015596723616261454366830226422669978269440361831955233672001010398363233096805634144331213163688694260335699630704991977314636536973047159019486620431740099789658921740568620660583650618852131571517949994517709156606775646763286084593224980617231281307908173076729971535357406640242481460741010485625560155929351311892568207657651609972426276519744092385889548899307308694132475544805010068514076288053531722191884379385564734784722183334754668603944019351900698416365104082642152650208518286135100813480117683265332619045113415233883848089997353911336708060212866166022858590038271426511220278162764940459822319041261787981020825704754905782515746624081634317701872807521871563317820394923693042920040056464016418677406136223052327666498204123180670470138528659036204640917549245933583818041013562443154903778389014084994012390553662076535509086466323625175562707667398929363610973374626768233207902376619571326009032902532996519699120408669615744516962203504932843774528099662294244042544228419329352534253115783726032504792704055554966338044858610725836383701137517714529990958501413130924868074656037847526569617739110390854170418996865491120485320646494529125123392575973078010731095802119958182938251187943333703997030065886457502062380186249313251018741247646608308697488736521618646613682095597931985912639951996102904271535679041823455304598032987300829531494149172083254792715227902587576431830324544634962756352795323599690016955362624445050432100109738973981891366707704753430938372532176698012366802901910469395632665450802261572893847701056352807968046877479359957438180965626982172462655386840840116151824488626824816041326316434073840704064532018413249435177328260525705602030737351655744600312675208590307934290695531686225331889630249009233721373781366004934797267929073827575068606407657790887927287980018474971654800058179955085109878693781343422548764413215406002714752273983309836802638136506578700335060413429903131664273821403365461138043607644805964173198431237339613179229982813302142949724728654724421307057807822486514186506747353488658400545571083447827282335068032764644455567321954681677983833688376366661670344317330097272487062512105387473999324094134862747729230815215975882890383570493283513904051606173313309146319640430269625809186790614654686525717554081028271441683662000573661913146638799516254402590437823303730439734102043901077125850122580456938387133258062404012766375278914096601181489528956050917313002812204308695357595680735141832006055529413584968991326621515095320777372016845070416672163624985948510818628618252522369434779503098089211662651068148151251096558882817485857416090981929578168755806437395886610926200085420246565414301060779908950929180188250699392653869822828517391725878754752537310762505648842611968919374916028754797995506035406125815357557902289672895795260064645561759398898605450039377098053014071860862617266471652329573629824569492912493102335221978018347938288073518301524908154289724769578517014152138964096088985411235456613784911030401280357083035298280004372425228603683150676249284272667449963438614796934348710436509138631645688453109141318843302130920011405944882810055444518379818453746209373059153835646169926912333283603069524562746566159819788492381588057619009932256046954124133406200546531626810864965967774280284971803718791141295926337586901364454886823677322724835074531092316598679376437820685593999382465951383725840343834361857174492487641710010347626417138720123549793793423716274167697373862017875690572797944072217434966244030919683975182007714661486393190665460371202100701418511117396538453008949603821704481129135200604109735012574309717609988861197206671060250392701288418853537879551533876673860817636889246977745246502261696050794251625602732013817853010964305227291143924729406941474336381973502820796518316460530344082529158300609536288719470374492809815285651914217855696174906020403464093656524011025184141313414472816525914768137253605895335814016870349985945479092102778542296471188983242576902392417050955844549044941597931959370174657400012424897045616000124250282289106360792629941777657292964995485629717968057799871192107426434960952882957164125762707029688776789591764193843759889297934161165655236129819180924537779089201182062114785719522672901434692799975661694431095908584399251854026880505779372693290210819173122867172802774799148098394436611739471101893483109025004276656924953730303285730551997907248464694036018158647560564915663824279520783660604577671005456871909585703809832038814918163634226034927490060420227561483047441350258456519307094614655211992053762243328082181581880914308594998753838727521937905250167896051005306020910650538303861985005667028782680306578910427027079741819771160759451333984261176728775232396096194919078145571290499748391398933484839995390856880216036094359452775570978750466076384396665223030381008881906974737495944325774885973030872427284906065926137067214751838131303847398487155050392116357498948666189173457638433610095551132372368668495947337441396459376852884220724429251117099624238274218598109937619766785351975340326699266145117185207740222421147616619382740299859191519286373524830808727416490216848619811040594195140562510281360514662936456898167222998640381563519391318632007660484035218551435641773770079493067996565317286473484602236089820290121259939934374963288796782244898815151714665388897489707727236531134626123005776911640283418562528742776294541014121106554166319356218999055065449018449001991513450334934489543269786106822636987640483631125661368408331121779710793114082657618556286369189357438520731724558434423889687421882963669594342469340999147478289964690831256852540077321079897493405566397061642547272566650679327955348677992800810733216731165910938882399837160253883705278120961111803167598628882757450855002142520042864092255362356305375770308142511658191437315968524935810756178038847017502283614056495507985957971547091956862735591403895463910344970835328308393528926751901315203560108404304750203249543371930751598890164480402730772125398539476590709705118882313376011591731347998725354884565981176524500363240482319777217484853471434579207919411154310973046456744528250583824268752078591027372623474114115070977736637253933337916016665629586553223047331929659223870861561761147481172892641698238234811200668930616186563024954882331613182415094254101202102741904667164194584417096184841103937517635022911670997691535181943755748115206561161044288574399056618475515330096891742560856767263088909323257680546063081191547572761367105565237630768947193955569296106609304434499328713413202261098930211530920921041466982790934249372347336174851421955783068674587281875750726242474970480958622606041085292966168640139615853222411467735919547314302898442354884683101618977993833619800738912140486873872571315684706828452205810237021392872206779933163926072290627081484291649326977109969363600374459072197599604326685786070477219446847077038030536861888844457121520845859797494989093216478096638804997582550844667480776943524169908198806308958534357842250618259737259814569657521756544789680465897954591299578771365425888389191847309648208067559870520462997909861986930568026583459389498870036270299205030921025084657823386512753464346314332628557218081074222333092190219815999384430734887274810371012365652662583086059723352898407237312946905860499615872228172043527344351139958195076019045038601653208209981375093384656491754498044065497435291811409996541240262182702326873312863213087256047897229692487290172365299586340213499856598201223285228450481946939792982658514564811412029370281580090370335443360504918430345620358627954694513910534300776073169279611082749885473797168451386961542741672084895393371759589424394492830776338006406693871576477611881388928166294813349615836466407712889991459540540281815065250596510007612592835090472833510605957788497911050839101857843795154456043507371717665812476387673604117577521063273007589215731267102660996635734366151777436672675755041494848958370147130887437185846969556005336787470390309618617213119331957517744004573520781612934973118208554981510671311804724114387369899318031428747432383814215930394816300676052785167219142111964156376047109591631480674470390212771736950764936362915718302748100526952006555834210695284603060320752975389941892552117526220631220576701141171567114517903157047463509362949526351550550488118310873312102281522901591411651593281852634830369365113545078084571420509898660204018739058116992063551536485407318782833933216761993092305277674881832184372146387583667074515358947827613994907130614494415876961263460748148452054345732727233098451608158933792050458163039544674906462945398127196058030881861915297538877209765732067086299922898695680846248708345094503085260014856596666184539470970994106636571729924751577764833663261911203654115542278651639127460678796476157628157319377429900962764707121935036951049649394642734314600496486452548154534061298026246899137797333951810121482070922260199765573341503825033629136836429075715007987229112198214897081203402443260266778732505552396478767316490696070895394916850457513012263397248150094644997683209958193395650134674588064612818603462614864852323079334405704663787476396022943089500422407297911118710307060094943758532151523734199844626958117885019454868661576319788689866436402475071009031248124489907749726341438033883738899026942174150925748146281928708260140035221774300586103014719019703637092513261575714508343162903668577825796119916633641504137933944293047835381235546791662254269653265505385867803384910657896339664212301168013135044657949770156247593528632783386820563705368260764930723859677558616561478116825045133688746241050104944845238011629766568872942144629198033844824960822584965653104144380559412601423639060949634442477237016820393402557135002516964175607025700772857527313289716696845615965423412773622287448724029987312766523908925073908485683128744933840314907008060293452793920178050157464712497690496646363046375287377102565302848465658235674089358976582766654831457451512991559290467763662083745320716248116184314960944994505856678639396896017412722379375407246246244919415585127147237811296602509712633112363908056699726071494307647536717386556729777130189958702722445687254724497414716353686919935966248244432763006994014516513192881897009022612876437293671439770624762813500470136968054970713734779689090993086278762368489347548263336933307363661885759388017190187758898077442118352033586311003598003884318922548152428102283371821476199981755798583090971389408077026410387865090704819758437636719080685460521810137700808264455957123183894142143251571625230100915899326026000322517422999744601104525879899014415563244244431254267312117854431765395860657486517055153851673787693423289380487378870634873158427890728646696551060792854292290499359076422210928473392270332939052707957845874354232092381113741986136595885564203700696028814368224178227868857683362031144292023562239504546366759785081335664330672918279751441322732389227042973493496393166412158874241428204714902116412888256932009927679223697536779381192846556489673076215747677640683295470142853099368612090158149781367388587454860568293113876436566515372356261643602138420453677927397882943054191221274170535026109529082213094892978675287368155586558864664789604576749013300271471894631679610017747423194618595324519995851698540454784564883421935702740575744773792846563107429996873247509364689389101963866004057829162068270094635722475622167765470691224056371424809935398838786714639572665160674866505274722666350467673135597803678146592567655619704785180438769129641688673038522682588453890987786093805184361125849726050125560500920555598356911291343619302240625574066636049835886640602042809716499850269490968028627400591589602063838265970969765879207464789871305679649047859895930253141900196928859021061708742484279785080796474167567143852709402424188425603193760079110639641169318629530243593019546082823900397662948243522693705027650180631877346720825583259290653886736312681911870508878519897331131115501573901575854210128992237348673730815258495447288750459360113982300334804550448719262380031179869240430136502334746390103926984073655790351409993869248411651862936317847236536182382620178371465052286934756287471078995875928621388718774949231015919583435042391628117526801469827954185025914236502746725407049199854520826471218525752090422136942512922508151633024784017875036366962212969198590219817640653001168666795785339703032109988514609121404610158364563465367736734485160807260998484612820336286725600201252507228683576657440958856317979314932834366117586422204422451266869789366743631340813897923003616086101997824310927319689947552936558857474819618045177099936965290352974382163433558069398977002524843433540206029297253941978299984349721292596012449898004146103970124296304863614158009830639665565747079670423054068287266359334162843396071436459603964969011812103341860693770641954853051233435337013884385257856489612522366687371681455529857651324079259086939138990767689205276173263831627171366399435019932380924576258557660910883107222911161744257816992398616672851913431408806857083495480683971408611498500173638312070025779529045093266647043649003636991637434432498533441818603594091856530956299485078480740672661271967458950487559946810745238261036772206387967584866633433595869745045078538846253118241719237032469835969959707464251704186776906886030152006715034126308230447778626041110704708939720201443818243593576363468687199386224395890591287473445517126229559852466040077807220001784828537917460772783897532034319575582551600896737762495713453345862048030412410031023242537710845792098858746532694053005681816366725439767878998609848892704411623063597713976459192943351232744520541974795642111466498376355891075695277329295425262828451195722339120254436180405416610557095621503229604559522393025779638483708947493632709793717283089050455737723039830985418691905826383616612127021427388352774645251076863026243021925593046023544509273442953987985985028188127850567215870524960225914142659493079317800002247076872833874624325784569270378265634864400046960512096961201108111176980710175592907696568483262918698318847918843747866380927246946491716437459806041837623664682762211652163048316595408858462798904199349154371827284382643749358615034129603463355456227993480591154102707183706192569305489998317382300718999969758099502429635369749662844096051454808031889394888500194039110714891619191627624235350063039263611089135748194889078290507668561349778910213118592544468435261045276996186627013964720108099334696491359018549296025332929973184905152903459201671331085887888503351064294040764555934595335200557309504974244359994666144362023560500653452054995658612993363061209858443702418724837488601777842518234145039483304350893320068713441239201726807347504783884167748665137490093738119588603274317047275366368397044500759348265900918730486524834188936359904727237604726551410985426223271153219964682739244146082694768225102284533996946583907448836334078629848274721730462105575423522074459096412847509583676610908350563170306749082519394209151096981404345293380360414638618406365952397124621038803910899286756910362055720960912447814347438606615536410287758060278574997491633468075898291937346219601340275703197641724868408403274756009048835152694490269594760360985747772301033935723846398215456175472793829010265764828640189325329738047921451257649951572287960468329700180812826848367123188353216608616000358137194852005510175664041563807467026894462495689473840844014883895043935647735129073634528327548903706543726140996148671363587949797797277362691777531100326205577141503664455686085642347518472297327845042335509076253016417182290496858569908868598721575286866881837379665135718852555586052844402751970069477387068475539722129906074518593154518106055836548811029902701872521923686258423355438061989649630488678850587323227758604548440519974272205497225009148799259165362709344511804936969755116401448937424931061782165858778609977195594326197327513734006031558981290943615466942322438735104120638253089365412115758658262632915121856614872391540651141708274469197519188195662926836335302666476931567524905488961728256927268492305057315765535175557028250074373664048374646942036396769726209196217906504360817957972077867906585138976318290858139341830630673634034898221000397552319799144633785397002864549923677493745751837278295082223872178883637627563168946365116436793272018687473196402349473166852139359476876537451893309774661801950050329731598938986501949888852257015427047886795216795408299044061516600657259738884402630315881498340217641948089520800073892667105752186301668966255785316695972776753012502459259641280155889148111597602122883353252563923945349263477711720389821600938869476709480926143458814391120055342292288769863599472861047433265424404024766816407364000013590250940577875070608762493555451296342961424207432047240715171082715325679458513900875128921220719849840939476789984500055044271444643866071830519778064303826456345072927341002939599595243983010786623181936283848221320621379037447303174774079440631937131776184717169662023153862874252674746355083369955421730781686209995451758936530770256141170934301166064327765428827564022634227107279007277156172854957523072593454102091494514478015205311411457726501869885955062773807909297290305380613501632366464364643610013053018498121642165814198947728890179704413278807762517003380700542486194035971195212877774745345062001400009316469753708796386345738684753347971588159337876194119407430775225350071544487527462637070826484541806357276285307490098220991405092412791456342830230704884418597950842981233017776892993702743550206949858093867135012722231007281849923660642596490264898510069378718578886999989448532727880959944835510599176118071006938070295941615737282100813389670418722913690765058895115090024012322173245846365824469385962018027680792790437086923839887104700248201870613639483221779012089038909305920362910264075658407412906432094296064719842380337473546190358228646490883140667102473337853631161217084698179606513293463048455733540129455219923794770521911734396720571412029803378211169448312092433812640046127030920582248737073460658145219362804753283180068911982317294183324065695947656394421850466456456257268756279082877490477674261799218640173783876314798194576219246674887347595308610136258510111189394213062174966604845541643816512890424038050178055848293656217538409147554065619404609680793053061520567578737079291593222482699671910151218978597149583371622107025998930309590931268420133931773083809102516099971657908810400960883955544495600008285251778141713168810499479951233081148591297077246166530431094920103877011991573367486703466752723008851793963494313380053572472770547748398582794619456642385316123324941720725357326828814323349128292777311369669736067868211426659874177650345210494683666326881175994158862018682256143497921870726729190399339902855014123439062279729015312305455752435990667827418269363344966904612393761434206135852353085517610010895753211946256447240088232464705013243812876685939237451689704639234723698031868775463418332414861623119885034153068591132647114625613486888720041506811271328080029387386919293783543931168833177599315350887957638610819955405281916096329360632474150612452200216641411855163089763025912955800130488746473209176030614076986938280796702208926843505665725985176121567490885369517571959310176215159536676524810370666277350329190203414886778313801582553131023763636782015176785662293960279636780390474362156616177059171197971686445307379344317771446955172957909028615666615569027895868232756617435245601107293243373101867297284719637225989453626611882474196591800225840847518668940693577047839209789213020716326961996532335146509942979557799424267458087517944354801600576273869376181877187074866011588017692761491348775133833172678850057048381147997368474685096856812836202253239507318948799593389362434635820654389503504630818488195561471133917366062758389412494947167373358621857032407121999117184818555267411207820646723901118953264474710097075548420987364654284778359869673528950834856476570321474327834742162939513638885742459422255872173824317306686839232485896885099733110487163214722362852630065363189206961770619611315623072391256810937611683787902771866831165366335840855174535045291186464874240770523014231568864793663233501450861604006836727348129011905927650411949736711776503770884910174460462939015446771909660822933672842664819856470213297852212118503112179853944573012473047656956762892645744497487314531757950615844495461311837988544361381896095837661799548948025909251441225642913653323718116938348348774990356363286105070278318735893230752382212523761437762046922141443248132233198534816819569279933414990216527137748028383210152509292855307011761283922806971314494805663494153415902882147657046959536642005033142355727930538272439897702329322521442403137786651220880170483226240930751374618019248394775468533427396936373401838667832509543933943157195333786152790589305568683301121545781179094129491329614693057741826502170418301724456363073896845291006195636766343667062045621710532089678273589985283387998004549012949654363816094724377436688357775546225344740768761546490472031389028152515904560293543149860956776271655821932220721912836601629272616528697835188934884167935260211665113666031222339899910674019668705352851433386427135117973802194165792542655532748615681907231404908420035035094579049410959610621983427492375044084130807459737193233002257085870343228766694403325747457460518885670034277610455724336094936976579400837247137928418778289340369020239226685138648200191378427312986077354229090137108059824558213296170775555006292696518796089991775338882968958952498976047125153832096410287380556318147370492609699513385042134054638828239531895676836268519058804137343559746029565400156867359318111086736195996801995732266755793621745074291724513135167619649754784053604588858250105679671925826941258692465928356379701725156558340921348992281862508798410845070735698766373720055172300509134430386112042893476248612923861140653886190545083048648263221909480462108500738508704156216067708489206955761221148417753368739250757730231728961223638550644106599999877269440452627562707927586180421576806511978460629076332895893495983839244036087819378544394423171945330505782974561004257000688383998547798232410348211183694296527881714493048332970867444590901921110634649193877460342225080420016010703205813044505591093184331440924112530469641376574401176128367485437999004718947969917798634867431129255072954002950861521247723418302048855328200115909994894179287659085364645031992807987297556625379037681553926985029384023802463189633638375567030458715844674759120063136846719692322359661554465290486845625761905493470536446972838680182389872343416280472560879808108558932124785772353401820701102914319123831382497846256322146477138180931018470610032443307395042178355341686404883965970848222178187667949206065962940512467495474417102182819437133022892520232199388389391160185154817627525277215204633981243604824593743443594952256407790309646852879228484298162896980487048866545368865622334977408849657780811402222084889494458339932113297131608004564805351311778386255969198828037383196340669044521778585652550352116868020616559504766770838979677778878596605884721773837379795837661583257163898932189958407431801379609699407077170630320512358189381886643646529860594414110354148481875817946589976283384308541278313821860505252374623115634752208281396059165724802271092810011517421189512999813402152621296181781264849246338112360163323177021527210624144149749935199587701446577516606006786285517044595807217083974104906165827808210199847973244110340876432143290474090146456156152214025919813592323938937135464520531096809094668332954050680790952967728224649476900194517973760423011878327058411416527076284793835602086408770187486699504956973167499577948670695894924828583636006457459739239193220495160904216674588341417590375384353866977143586811324372227597148074477882909115260381703734981758810098466676705615141993430777845762806678950420810598770663500322735884489025588219992507768729759301380090931725429786131167066516094018767695467421964730220596070399503188620486538943608737797336824488640621189837635458006856248992918231942008772334815398420706124338538362857938056335354894248515967157891374033971194793276428057389566523052226328267720046587073076465599469939265006706548705655578552253081290978607387738085349486660713542134999422889297207663868305446702005237645209937764319973714304950095691240718297188893355117694403215225333294870124431212508379844103239152165743339161463099265657554842734054221941774225197784421560576380290990319268480104626732976101292467946823934364434713385182657625374830063772927615665116885821240914931268328227597776910256595099168724858569137421029156739633679690298371143774566761061273268596196863445213125317950337357914218189261407745129460736491872108160238682894420161104577933511014473135399130047228954313089733003256960439062309449530684600185424223371179666800943464395798232892932361672486535941998710054969153382449864653980595412312511201099040061117298858713804361009298300195350203217528319335088488071335679520881660441258915230768070825358401246140775947018608054776377249126677131635579494958733859941449609948476841333398313266515988241823715680644124710040901075702812124742461833837475015176666380118457753025019442166186301749813846878614732532506183011623423589646227328205710744057220284919270516572701425574000777882906207866125647897365616817753583567960688974509418629148516780714706153955736472819372080263504195855092635122081455388513835505802197805285794819696368798528018095523361667850237801195108214326562930022947077406461928788400571317243494145209638807629674383804588770388041061262047976977744460223286462659328243843623622507450397762305706108078029335495395042566006331430284351247114490306421808894592864967455331277273360627993607717742143200450898637105392732669835579929953174212297941288747787402536907980698180597404348809251591309321497189320140311375828204445319020280905006684575117399684397355242303245468476299550806612130933668698770811353182799665097377338208338060312218343490065129033022374257319971445002778330321816653291979031574411182246956529734079561106086790290888763734403185515398790483458872090044963950195699355430663851975188569926989800321029075033987108732502961512764826688014196719422657645767210667075080961635537108599195007120558663799480678471354277450764581044648642479480970429809538630743959184068851330290390978259862649654941253501277563092307200926651338408668914648018328696073940642967105085518082716554643615593108429028794099332033271757996440646985039600322035958300472608139832036166314777625196110450713454471424590826396964872320113476330372145557542332696165628939172133697895939305709631816027671807836935153918432016028646405093628290958690254724132186650948471481295971333512726603011623349136771592335794475625738451717345531814121591517290755515209202941415551327061649050920844470484942438944165275319247067602234940822737826376701962387645322721114596808187628043511821136559805978129854277430306281259985740450537744555525400695257586471809620682650778331599376593688449708986006145601947762001649122019789910865122709711717704591914182605324527481002306407351035352643929971708489109282365440338858989414843084755401138345865415953319487210621648204741780499290697197757311391644275280282136189021282083579621265611640182299357841111180123053461929517483017499386601194079461988038529125778237910363210699302872002154837679909664927575150686597399464827584611217649023253773477531202338002478157934144585640341919971493103400991798321009997508793580714889182998627912949241528354406262677036481156630724975616827412672870546991101484997128391630066729488475426967386622704635777604077156878177724290392417800069263293775100012734675021895671213826207429992816165390070265971442592668217585167721896933646844573945512520795525454973754884313655324127491990191877135518710358883241973126386560882820470345757226618207101376843393647052192196946959502547807859304106657622633094337897739077997365972760788839785359984195296703311945844939661081747275831310138869762723346134499328558194649004655378363026995203844881196594462569958097943057258668242839427495720738823521239246634249007853378939257584360796659505947640129240821236568808755244859806559250855734418475615003358324393357359161392934047261961451558091190200212337729471559444837765936074147274035186305105357779484985202537639560323209865134734537181853339349964378233623447687749882809763539545092103708363096098966453137308353444247528262891299866857941127031657346363496831508944694784839999950412878831232020278694060008087066799921336092657028827574616939305173208834753867343807758275526575036810473957762319608615834378400324087879627282433706871337734851771692712763575556379113693822760609920066315115965663340654236408680849437307231829156690916759813032238930995607609115681047385711264502447439433268089319838095802265226125805144614841861745770292003775027084104971012267108208180609117867594123632242564344801934744426696157692156002601808902964355848386907670134844240753664243519173358615206646695188568151820595290088045882098684871470189423516101433614900936266976835491237485027117036883923716184287720145928214670639694573959066220154157355749687003447511626654203701970227846463095965154890484280058382191555171481120699569381773829750451491098415815278966860264484016752979553489860989731681177082911644081630941648490089118679277154482108036289737373184651417028794774303147512692785386710050904942481772979228003196867305648588363189752484832603293098840647476234760913003487978352754208233398040369458012325067648625115358899082522842885791685275248110219748595000925053893013400723529316658352368625062773597563277148551571720368107767218747492281897455019858826247817597194902224798440237177543270315554365567133529327154146722527994788773741680799556366764838118053856842093865341815216078234230899383220850992613553769975054583738516297967629660276856945957324312619660146738514252401072334538979909944949043123935112109885569912100395008377307483789108124032456157176117679553786327621501442623884695080476235745632041214395456167135431039146924368968197170870293562832782943484644118454290014030751206072582170140791326828136709401626127599724517350361185858780828297387267814799287161464640035278867600080422263342894039308744395587498539107676755686403622021402289358734580083385361496834900581102405608802083760498253020723541930933648396186624051599018522656767904369519410012268239431078916032856829969796866002927034878140061684503938334702874131918139130769995068002783649515811828302690567463335028603319647144183975473723415390977076155559221509114827524607938893515180328796169414956781943929272274438993395808159643281633024033274891479731381075216905423459036529209293939632726683762978719179362569516476389593186237851968399592127412170795781034674354788581933472170865865068329618552652227036461549448247678425583543674934298433555719715815302215592501795546786994844776553180317991543406849611392274473481139121332345460795363571658755370918073735619033719732044474089895369496650645172730330270439291402712851068649225207084628244972738670375605545765704447751474750745362576307596367154165451565455739661481187009353470710118988830558906010541860568008566604673480258631992229811406648937144705209566403695708751079710679516860237472502374492481750776001966749177473033193783627904155463591593810880586195912696718296191332248541924434078812037218738523263271693875379162167127153151151889235900785086402846036596401576210547819539630851207290693657023226798005809477755521922407542426703541246114731993343490553221580727674932590660630245481488763593146746031804663993598241486461663618502135867397693353422109555037080328946366735572513408050083660031063680425513371000169962033869442368048341812791148977381186252347780050672345529827618466035012257889162839192503143893824746423458327740222125184739413488134643955599369785409362530054837875108956070060039902445304363447842371513517868194421548714090714029260453887651073620457650109952559493825005024972804299510371702745748357524537370622183075996107245884150117443911749124032204042818935027983429387550604267189784246614881001540911380890045499931558190114140520151466122591192926054904533470366498613242030551040215261304338411641433489564100653304160304989494586442532501859959962750482896935209638894661548076680182335373351508216362798970307205834847662631378738401489848824626278664647174642643633273170880667763500866711585893479111639133561244021915004992565230763570541775861373530591802588498821512978156190472503668973197975111299985019767574113860377367113725855011329588591535222280701285893222735020899435406292334243794121599375594317890191339069191968347024985646328295888563198393072440680209797576748878786340419255609414791185497846165333052153550978176503696820144274037424206832838239008664701458056743750278998068878682230739367773581896116923013600815585784853957441734964700430420358749049186046066886363283986182474274286806647469916964770017221611843902240646699444345184798682048705216126862411828917090548990272019860677748784802869362155487694113688305674171064418480594343470062549840181706396089035107061066541399651868483593630836030610955364841376512719276013783932625047582318377183589652890573206981939287284610026776205060683697989664224803735880623339609501508380535972668798583894293927340088217903967401348420214806943202881407456290070597879861013649261183150676751887404490990552108706767385859711975647666617260863340278787158730621203999259038677043819511016881294556906869488618905644714670607987769879029596582717977189059597238703914752237097933379914822897820359241167279758024652194008703076191213896832871436507677196029383962862979251432632730821112716323481758337236124008840200515319325915856618384467270647281217597876747378930148621254465454397843220637120079378476516408658222733763354437495156097680525214322628768152712053170355847524327142094531944128428319697239552811167699779170747539704012102365911309345861093673571549433570253078010608849606627887168303763155889971642662063378111156123717984156553867804255588119926595006466471650234640143549024286581308119187502451513621415163457757510412088826104103596936510077118637842436276713860482339290803316440999363364156664393482122247834144588999925431622186049363561344474385836932070919490445478778990166529607629055089418561012316812029351186479212285769998807884248221023675805091171929531145211880000763336164275330434541089356705061602319401428479757429445526071023369410665057376842564614695199525417684647761421172457279160778967807153166367668969265426278106002615943187819200985671813307680810142958511813299499183806052835931506174282679937622643458968260857548445987919196892943805514020549274625186187454240966346609255214974904766634546733755171658492191663822628386281617795537456992502310944026013254738206242391183918206740948414056276506624214419339725142995664012454936469541153760220009923650051932106294635338108041123122451835340237855794140129274940756472581010209225272189482395986617950831995912825523865746114671207171292948558275231301944165227960126415379737619065710008240249716080912100263196585461285133760900009781215948209038429001113479095515414039221917482992038858693744409269193858143434973199088889791192449584713736303308634986312574366121518091997812235013125037066721483608747770015901668337563481830242065824291007019086108464281029398371815190788972511969245382655572559686096566635365023826223182259955203863458478614356039255258071537590768779157396566764130804624969764569487129800881125185128910927882196459778965887982755009696660948060774723422757649751156757495399591766186952775673844024092065035355827415070312475912685873835687614429435163362959133149057631848487729389353006937962074037152767066741907639518552168720406272645781455483356714746563387163503078493190444539994607989433958144944024840012271663847036119453635051662256659092001256588532990061963690677142300834872517184961431009947638056627922383840335494006246640546348376787372236955538740981434899418044103691319673354898010814699724605819632883772618982276130407829542678238481569430661081319105405439385972721715270149690964958600024207679295825275342768169662315681508723704353127087693821173573774253235371205737673679431570043025664762374546482707143666676473803554157462481262964559186257781490925963268118798711292864706596251838672236739860322576101095538618044203363973548705553556508171457953844060739411159429783802424569702107593602024981103065821892231079866300345391685626028874067016309432483011135873077051885490562271040845791179978254314110922607902370436913674724769842364227601326649021889876562665317600655151379372045243434035516796525583578447811496564185663147500015247640998554823995309035117042388679890689796081946086215529418529707539947057961137906992719223384270422985742220567366247240338164542663509781622963357278726423624748248997458640428043582251673913749335081702909854523078025524109054580832728620472307802404121608407651397422393306955438066564377984269675861199563024522154381627629462319538914572996058540513685761148746561564250304767837702278551109444530353289844174370028964903387159202009208609637798986099840658253747406451704905409517066727955100735085502172540103072085334007732374575955151469173059756531155150274555417516634661382576991294460074235799102115629027396380345737562876226861068534040046800977286385654816255760510099520768591063351425772980218069260444370485925850822803126920917129573928954026358587552932347023232826436318348547965498201049177009894864501564759185707970873245559608740843441250571950636824470259129431168453270711926009239321743333043388350250177158960718376600657795083277565443844942209244464297166812566337036472751814572275375124483837015474869911953131955339244292427699954810196389961612325134336142716410450899917510960495454064335322515013190806435823341708406684084647902961444869511754328780515598303507225878700444088163026890104893937006399561570113215843445710456867625305883791128314833628063406863146718586568055976373146408599851078484767613209341698205089809293516814603735429198449956180195125696829505602410317888944770887145818029919935246983932304988093294634427371655966976402849630231757003596021239240234886520255848890626539430292066902798019664621196143722911025823441519553318649027981375759049927973647040883664515189611189859180924706264385477394144482121357818359532332269515751186492984079821726615310545246634272634624213471085048163937534785978266031924652316397507673276413562649129207420298619281469166272507308982069739379531078722538438801214283146960183355953696434104145246871353797474987483903586200393631645182505168680425607475651992476794412083372433667293748775847989902508065608194410802036946746754684330361331370261987206984246668493406557318337639966828069985814318724517486504288833621935702992947206242369199637632477476821593643713674735177590716403600614872619885128410927179383009172788295562948471845752571789415162038039298293755662743852992126820368412225829089533271101892230306405352477935465258357951807490215246334176073862585239987075317413057912423755839329956907465618311864058528575368558933226965168729687485509947418565186703537918280432648620630201663836251382405838283975344552956948434398701629526256361082575241459564843517625588087593814485618083410303515592539757178896704458906066913288423991197592550898037996974025871803336566540457161711079136126213970606192449202159046196987964236283781520034795790589424696284065341794096362085487716267945007477460686486975983983368018606127161968834973705910151304745160511539968327249060423233799819323909071640022593378154620258020820376637361676944095084304299619240535070796547996005709368035809946030549380453624046221516530039081302317455743294103556060808347347337619842809969986417528810029187428249522582093567862495625082777614824589146827848730672215156604556021598420669839916303352514287676011974009269138565817189869149990683733152991304254350078956951208468101760877553787953558099983181644950163190099005361496852842116563569192096990996788657849210966419287857599055874479186428262052667668310487366077705676377641756059294492615919256250206793467275454645994790579397584205270043284642792376514250382971226395318936152630243555335790564297305941511009087445164228970164256428681286940558130276853053548922538352933825684371341757154982119727722010192748047803141546519625365647070044793150129736009664723822500506566790774210481331132262057246824919705476255457830333103394385794636331379034329873360411141004614832282840330630482853015460700414753147047416346388066038322504346341677799143919130776083091639211527329522035506336503019068723803096224062625541407027344590050236788423962751835457474422141893084614916393559911154971362038291367794146587111269196637126875923944794714164190101152522727128596141348863528714491293725293618351503008530451134293904806414526108754769722696876929790337733627969674679611968866212057549943993953883314675996106849340957542248872583335443221964337695818727526581280968701163582015092508900782400117091824177694441392851733169900217736897778988313750345523023304368812532688611616067545128963627341028009288412654292585512167304878785711146337729992732168659791025618576480798090627848205978547521681540001443658111029099931421657204762723387836203816440275793665465588292193429478377059420237983040032085262366797662232524474974007326577595248488944252763757326531822144647597480890645083831949157078053950844901422723555328429089517829170090823198130272572514172993781706703464077179618917755244149799817704566489389122856850789922647235488996431256082795140215097047435200690046345860577597980944874993000895347549092497685294635846134914802396370102311682446437975390122627021376010965495704127557273492478305812876587279719055856104205262858104243997566092046430616297968540091649307740394945212717184617302080466703281043911334722933865258340628889147407986077714146514489819219856384185559977646995906585565231072410211257022086235826438721597957693847376100073749926740203530918019433157388080971134719644045636937646672597245945546628488046137954044938125648726655861627554001343783920935507637950281490935534736415763350994467511542594946087139688980603342186160185233080428128578988203415484851081685609410937045101861009803203682929237557190493276206065343822319615360505784752015012712816188945695416705134370101445265579292623652328324574821367215570423289365592562957431748250730447813089058323968664394485742283918654485279834944967305694598170647394210842225791829757500146653786411676887599187178404067941399338993612194406798180833671550120463783828579612223570493475239233883961694679970278157606963448426283563231381554593944377922636529909945436678776100354606601980833530293135882303298250651351376649433038337312520444067367231193374236231457242660574032191526926888816702698792572644188302413154261746586072859961841490452657317202273176596501057470082671518081025202073961977913001627825742591490915223801668813556885404533832878218888923729339787482212072007540289767521078647861750093570775033066099159282069501628393823591871665038976948558431210170306631441680458747300066842764441877462366602455747152654724577223306086709430150525639505688531944798697089124939886724501055128068248251403778309861255083459101872690255650362328699143053610518330859204068913949728479566027165290090183037066074855865389153443276738879606834228305816954122585903100806441594974510495528314456740677799814235637969070604678475847322798930812843371503478068070046613030592988442670630648061239068473428858088176350964341102335027999902774975777611924436159306541473186583611604522851383706585870358922606685824620848124301750569672276202013113490789194373933799717657516726398864648869459316498098196786515920692780920856334570024367079414096313641726760321445577250718595014659420588694992399340499288504698003809058437263635194321962252509505119485129630527817774506044583654752386041257921194186370179805696988065739615034973414121418873143376288040484084694897574088861157825804076214923123566747146192976253920487782860328350603153167916483217657115794547473008778595246998885064429769111272416087471993641385268651890236106313419884400924557147410482690232529146112771328530001295425666032377582671804877813347144279915609417418208680327702386693787050080822223669545244151513675375377885200081420045159007685797954139209411614888619217099750516052092019553173249241852554589571575667291381924106083848673310267310052040483550893244054777449325971565838371277076092407245009345673270044543191795985136852936379929436139323679938332146518804223351082525736057599967271059102962821269410684190981774542566880255282763422453570564069056148457856786149211841140368035100746199813753711090596958488563872496161729435587195951929647551444257424861962767077539228765941104200552156785711249435324175522669575397720295146549144008940685868641214154814747900281527783720157726531373823129896382474413680671690075410389112045632197983809701580916722487658017716520318511262748099240148598414815623478785271963327526946648190241988441106325182412920381204614974521805035531975386502807774215781997002145276668228742563275423532817417271104614618013465909520681197532074344035361308325848996809224067002505628646172381004136233890361044953141622197461615193429315496891732642455338150795925934853989878533962118804802078113930438349405941119160646885643066470633818693091645915853480837419804508592119112164512977624518853028611901764259067549796158464960851028619764356245503391853541231532272604785443051909591549217099482230873436859228356110465936997810880135545911786109678582351698553823794572833714450553292304560856010964235693904204189429023649837956758247896688698027223867344739553170225529159642089106691529740070347852754494860752812478268913887086122725630127804151601617582697349369889592375837690687463678792109849377970830990304678806515976990868919717853403969507165517186581814070859975297878220191894927341731344111202981334113991082963656436641573815085470419852394234552063318213421078178735246253675386229409108110647021818384753382942988785135947606025635315556036298035973942775119886697591595457294049901664709086874430249653937791432442160959615373140955789841582515297057304875168138921749186057001711691476481899140371717643873884882551747054852121267364669078800823674999160371967410715164910487524721846599681438451820714875999565642415478647870378128628172748959925768059498485463354242706062890691128102649302206395566274211089222680633657243965276716028819346991178593020544699543406630507536199161057187420296766115079711034427515023587488719101785493818853629580861698161737761901051380268734615239827811756942362724790011397796358840515571059601139073687794389438950855901755756926947170910313218070942893245068338902481422724089977952758517905150500859303606421151246550311515498497858033499180928902790441714221587782094696219883534648963063318791606924367542864316833499107733240894769329765353431900473160978072174122139511383736089708615586175992907411275951003725082422173956502757042991628907843023644633566972715964604284473228491559032861599557410966196952669063745920390848037717465341755521063998074578441213755304543852009274201048629366458861422603905775725492094009502945363208626125080375141903756480473266939620118353246146133057760350793384948428801507993801787712158424333942102876645982847067651833407931330800684475155814645457474320994869201281058498283331447217980099335614553633561842944779852916026026325139304637211360830554620960551247839186679011725283880361694059865185816760028760616377257707529334631909993430767487584575738680068337241547266982807252083567989490890032759177640778888961327745696395885292839724058705598411176426761709105061899445045252477430255857618864881006847565898220038573979356129986088812766491845199886712193213273558093838341008291289430997660619670245237616894910075441638574869742053665349175561496499829280564441817755300610737856754455036897036033936521735250550619498903008704283155807983441910711888897225244343979134936267427895702934075875041827574348195349491449531406317831649378418092971990254162564705271972796689968095641660019374593933490924451264900597830953348416943767972713784730999312286497317233085233598950325811474357728730765204893157202013882591964720692484997109661250464907225222624921545856562005145180732918933818046484035091210871544354503031100485124453555664991216907523358713951373908463535840712406417311164319623943620391642127616613747113342462326299434238110440809739648920412891081971257395786931067713204770751767616260161605156588187943203524598601440232146571253908021843010017253956259537520148004589063854915825576943031633133240466887246857929674432361998809027457743011261308441860826544510884344548640406480288668890479784701504935693641510237301821660084390538645868889690479403493166914964335106802132674921068776960364955731678408875409962044038967210672493965360402266798037006192668535469949665679912065093093406380430495002531441495312102276549117349212835472179932158415362539336532076966785444427906623830380380619178107194688247674474255854799668180548057296142949773446921575788974933648037797498062224154625375958246052490873281543122909743488661282476019141836245908523899571458970958677569396960323762156009926387514300910719629741331055174440963819345209969663529585046294471704302015336081121662747092538093366600881452130055872478633244285101846541936056259154058683511814907909532676179864390248510736088560502626611332331529018447955359184249428672647481062224888559802093741423818129460737546527559202363067437115387829617702226931258942765526514371984769319632569584016765728233442578137454521306851022012522238845068377491453157189350787134472853899114845676119518440112648936922579480813885528345666302499940057798170036062983632595427199672243682661368329241289528756338743554463166369210743808156822315591643333316575020786432445984918089721838885151678318979539697257918197240516264000339250021235302646172940271286577735125564194026413632484109027986701402771328115412309626787875269934540208480126027980588314340212021546253623787925643692268980528709932153209738752886692079121941426406554475118432716657913695441092216004339386505441526712053540675169922557525373615464342992851097401455764455183248159364593404798889205022401324444237860798967687555711154734255937879403704560917830416791173469752481340268677435175756899696898834984833441963951430099164576545887322238176588994808068347900996848317673427704896057654353979174735552302485111119152224778435955698785367397702182473577672116334812166437077863429608438495149837757554820652364961723643791154150285121444949218897464225055364871611790962446043510446118752114600743242487918019967047634392448374232607855249774077278518700076541873609494954876218692933277601399323469386583987992369256673082228415267016196072973430451780114329294561574319269322484633070056581155843259092456995558833765538318303124518401814779902267558820284287665595847497374174811003389538185870966285065835520515668865565128595513766217994602638590627839108726803543011226695979467276055159775004739908859585563822798668294994516259216413870336165706757754524413918601552710154660698523807520956028855875559080770968774270010404164854269930571210481700073832020745372285954489260360243175744539340123525872425231409559113571768598889118758124509279660719730763917738428616428894743261122697346093383921314528449472146760848552493417109671244377285682580964828267227471035716661740124589710388990634879291428568279696760812840185033718936114390579822421842998587489227390134660655903560733629069216353143260018991271689008646050326139815290711740266054149259775315344640570960526543180834458223914188547102540099887426396712446381434634777064706657350459506193579509429297774751342881243170478292033614527719656242089055912592295777802781067098536363464930500577660790960399815603322247478263206832144970350510366766504653172672019677557967814291309997924115263449028473663994009192031149434939835487458077202297863533688310017132054272226933357165382750705137338570650841350087115630608286187027090320475504369749696870022127626536385939955921902178573228718435627581142542084209614964883498612552991016812780265953000918045495864262906981958597405431234956985012930987780512817639311526942451600641335326724929866064670473632238979093755681613272986573557930557584944380007816042740719948904237317362471587491949986626772132031786674359601052746399848667678590180988182304341098255317634601344929429477868843235292496417513098978389003316994325865287514031113344932226834781986355013394750859486029536115878644606470684440836759022714284564535286498212276755780192867122217904487635294959600657646984712737013937968668097054418256169516749448825759052328333983867457679893369680992735584740985534770202944489251014014123551125988413318355648971924147214254384077000884326400902964993178659180003329550020008551066994117126288740641505410401463660448838714404641346595963276846945945660372918346593411492051607536989875884593136304955378386948223922132142582628308685189873870799474457953887778792655818927107195056078907795125836872671148432152108420808887123455195853405249593513776883467456224382014065023205364065173369646887736406112735055370175037542352862075587185847306347169083707123081129416255588275685874397542388043379812639097876730699272855433837895407784370370420665730681445994256696502117521806840241779783796181742785452417386384965721833231619168378447215671758059063327564225330403647745723905069899286750243497379540741621670608297296693841857732118668977733740715330667631352850773145503385021846882647760517232691157548948688680318537408761216028964770182051763304574467997695225403530335662473124409149583553305126333685550785183067229189865346027512595992340015432277718209610172415959274019790815414042287671690376450222882434822871341131401230399078304001906126163230733438552334330808078420787444665284723952961861238670774474891770511101392523442691186464668234131206023095601703705537662705391202645028133419184032505095474710092118837823180846216555202653752279717631745856710739803150726980172162075822765969809100537163490835594693111415686177288815340793267839842884018332462096707212608421550334627868321874572963839502381302972716350292339827850872449803694215168000980038368411609904251189352729436394117316542957560728393146714004758833103860076989863062759550861150774432480690191237696478207317578289211045189453848013056737284991362734072253734178474244815849850295266343741041755078818906763318659299341010721430622327731454349502109514799694623868603893690485431214473321470086943614357228566958590701051676099486852168712653770957156870628995330064915647980208583834825958098531318649418936116817478453109239856126538841216097194015112857447795146226340135421544309663261185354847880279175805036730282079376982791861768587369956787031800544839334789117067496928821657286087287675709385067160153451815215434387919891913950157732544946755157083547357619165717809542325316720887205752742570723844226995269283891168051480305244464706963178781054176144181220230065487993465809243906221349380453441804946218475936624551207979595139045058506372066023406491235949484434524325441787454964570889536097743186303186653069702939318067807173291672308850618813003985248367678681551324483734125908578836557106291950632749624279268202763591361323305679980705117083176195106020245720662292208835266155469104428545388206180943876480191307646120857967852398644808316780486981187435168152839250456601969592718474210680292066135002262853610495373299191193958876452656883350512353349391145939404718089155212994982663587638336242914250207496746986747772255171351631570962018185307633866366740783042582814892286573606420860548075203671287138867445478540533639213409379443296133463847499028993081683760027381123799683278674468827130755404625599308599052306289395715121583251720459241989846785718646622419592604493800972202339218633229921001415824784393125357213141507828005159767647058054889757688009109058235831136592783413720161177462972821894292823053567229149401491126770000131869914423934016686607855547486677246321025433942069418199442871544990277643359895476022330700712611668137418618175165026752996927496839311456995493593712972398008108870546239635614974757157911440741279279430470462302338413730311792390959036475144962483901779773533803494679673731513626137220419833942034571920449597838463394460622126683028634592898596415447561733902346201593099614215927537346114218351406997624174723502806396328908168476006628260182782038254933843679079164662961944660700096883484282664379911287535137462496335837369141630797334133037329608281003254182251049902469767787716397290230540654172152482027014295305390249896139357667001284165990218463122664617474125780550035643514043684754723097370153647394072179896027625935874090863433784930025468822369744236837273050952884602741732300498823184569410370120540952156526344090285546608572312518519539650990386104749211643860018414512312097401366774633685461209666226199520842432218984417741984988695658635014617215916012786134803391196811460342056467047738852001342188065292287001442238148902143091860636430733330994331283441021294751577648500981390524837350957974482398697464529563663723709880567233705518679485674523977813158667158196371220602274498812402431253404187777261242565352427674869066468913922683918313703744171380194829348411411896175594357804817106872629466545932782965790568535427515424838166712155660156484323402993955239392839388611333225328684908867602940993219970477804854537043119174277874063924092318150250875827788517437006711291828243838835563807415237061025405276000803327876741848057927181416250082845544800505860140449887186347217578039779451340087068594279432971269369422499160710169523220099839966035800797904582926804008046818730948979748469637200233477708803013585067766334302798149806469406128342750037207020700053867645104422854568594295516605243289616190193279852162115893554532888240740751863430461395724499556421978690707062645470289424911658657272033311600261534670495246552001532499271223515361251127997313008041734971482558104989737039184855766596675971788777973983908897007804587323604417270622498930854953519949192276651534307628178328863929168565763083126383828388670801599780517728702056943358774477753064006045415030257941298164536116472599929208036309329733014380953245953458706645863975126847250860076585303327203985920486603448808888299383272838215407318479274456750192228662082549346840646951891214450157096397450392519248922485898559167912708349784998472302094025350297050908275718677739453801415935086902044226630371672380324868709933959628386296470213826658574041324024646373902801584622596409910358811339453739844359443984419273524573691592938334045041525967829891309772947952240348322925399730492483858167114316362381124154719045966244122070346043559034598718910932852568023813297012622816643520813478895454242538000968919601793338400194501068864805262672588031484257445056045287393285668717486872201505407436548622399495962480194821864030124758299371047653029986863301538793751830720440094413446592988233565601861206912275733475406473278235534090105827631838006581760029232362971324597225341345429609043389983504562303835112657453691367996742490440228128617333123467867782656202732233732908859273754199911705776322739665036479882456278719961521781254958644943691036975904424454837280698117620086571766476768182161784215872335248207287360274732744831653824667393570968342380067086717489883183705472981921296762580060828120022297947189274285162139744464438744526553179499962766575527468588561989767186833312554798139654560646036161676114616799079405381039219571901728102911951572443435793033890562664036974898489391714118746031043450770718001435126311282639336346838015685767632285083315686460163042289872934446070345657684197544659193526533613174701433338753692580439250404347494838949570284572541365641746953145948653193797596438176661278912591166937792657512892745051970838061146010088558539932962000639224535036622014540271298350409840041765784777168730493140629021849592982343185059133613023456810407504504382910603193492692708142948528462016649824249610094084595629789420769968422693226541080630777606998952818967396766364436052074253375560678697076071187355116882175147863555572826774814614390791487164346071173958649825324700052481445804035312177911799284331610198044839927519861648832913287012996429723052628954637858713792497404643798811667621604765354324303160434683157794119264804533085582709403138705659199876866213511646038399902721362186475982050680395371803867451731400585828572596044221395690410201019487702895812297457000374670128751983767371900795709497713286794829341496041346512088301412610223989524244149990083816708993134947812250814688566503748144151201808003001574807449548127144181636617288080675241813839425988925539463062369972632921741944214645112572147998280734415675498929807073219718509146326942084799193041879450017976594245901930555185132527079055137461158576784321087692779632372620966164234095140857445943185987424659229347974879607689984069867368222407483966642572699939374758605908685044988138708064019658587408358853369065429511741987560942904072598839020405008016380060765133346670689946228941057058356312398116911892446499688003107135851456361107976094136230073205138133988184640829973690668890155348467021304313090225786290388779393625700132510573180533313881427288522906369910554782919866281751831304118436311314922668837887545299127807371594925276560323653203490631098209682785824498048856930902223220242523759882002097028011968575258995985112126354759938246662611396940716578705611974860150325373217717053641334109460800698339195594907551059284984950039607627441846582556663787445458936797086030979307201563118056329831202234988877694936564209838885392445113152123677484812931019537876930527549173789581896823664731242924409391780947585182617346161075749931537436875408836622629896865738138432875542293903022500749468553006073018187402369073057320729218833858341480132052532506650479765335888510486560957013229507688190421697806830453243220329412180559320662240998631335675089927327774358725042066468325525500414332067281531491296784906159528892864946507152270886001846018884523916503607208246449729444532280753527900976136808232942707227672391120496801732686888897373048501614254376857962535802469480969271052466399173380297414523675409760210567892810897277554177915973209792008977030867109033349779656798219300084466703285960394747528798885920432583093326244473682134002202480331016915353729093424161849178324082346955269989316609540901952028033224890809427110687592044012760799847370650761276961242081967196898001095770714894387829201193408082517075969319463045020617013548106127200695941872371498756854938683384070261020221597556663263624924473108548370238659200962096061045948154598407541899211927644970469116605214220499417122880205319428425848821077144371154614804937827244305863619424113350201908493376045779502419396606031264385952713086897566590164172184734027859468881115115475866912245402758569065361848428049867589043228687611849988989941827943513552085714425434798511358925528774452120185564298875119099010264066861235656294206543550881361371135824524452350230620819747919242587867226146853550088493024783744418783191355325172529709265220053827916285286127141655944508468502477830327692766173777052774127685966451164287558341358292584107606193097112958262325294416845111547740689407921822107194413146320284462190089683594538697755848276510810810977597743179686685199050411395239363250126699162053165027745638573658396683917255568800906809195500139910093546040980741033858757385481020920959672438997040487699644300614977548313609242911456972865381259939822462933094585669647206484032388925273812097083240138881711533205302678218721181486482718539610842850586193717371146826743250820232647074013642358170343718485376537682692451078816157510430915436326580470384018614216833415389866853338217346131028250856340389577462755487284565622866355413767421794205614085127517506321961587780801283882357696946444436540548813900240639427062616946999482213864798922987481742107141268713670882341987422778268777249873607098438488287867400760371503254866965520484460644939811213706438988923075231263189299280271638946062923583060383694093577932918794484238075735734804573632778371571159703194336577735528530514727571743148149936525548737835390668315992118565014243709546518647132886966075251338243215154212871933931580813928435101397618726676677271932887564264701600460615358742679392543971391076788288013535682885310869325693744975976308123069074055813886582621380494042582110692257453331766592939143485438283884214114541066860077978635761799183635999979792069154774101562201846781816336201822059975254372594732236183502684552597968304944516912838240658044927488676756284768753971843114630802493119395844238068316148967923853826305318276816184090165983331327107083431815381248857567222689998947155445850585091542135573888815697665770081868523615198173694016938808019155650165604092707435906670016211386178824148851241590412463777554307516890411710447935377892443556963935388451227557352374968220221686118451914625613065794566194649765388702490090535593164785989461380760521923216784702729369776444470495967640419877534891937026221497142265687846755969302612235491916634920145365413046415363891783015318379281224124510578428326887220936102118960830371717160736061318984520513878326565187840827599508123818659787614089248299776298386801664000817273523668861289846335478330673402942366464819242725441538187223692451640746261990344942612179791876683895568049321782147120446964916926301694087201871512434973589141817049821517787911942484402489898353560030861235056511874937411754440242449436095926971435836837456484420624191761976742892559173622070523048772217608364402045680659610844351275114631282303358909070353956088282791118892719465711303943633688335202697355133062781279638582959640434459096053813687850933803417100820272216120952248835027755402561115270034820368927279267130290706752947643919801061170578211564928850422242273360906519472448165160538937800216126029325046179221339352009816514143749443740099748818535817953271023830756051243162519319154655796715835406231870809391830475829967680555350562501026130516050343515589454160327954621022708963516437625491373480204638129231606796285935513369498808413358642091980917791049718325974292772556560440455977048581736690916874189873907544131644914972607644220630982879447877231079300026991361311004698759526447685423795080450105411052816746529074217823975988121676361289254690762476859356335685329976159116401707352483433325025030116966490074787349566338220992095575210771868289559386852801892861496876707908052538053822413118594330931234096856811981313444681909551391275072341575831032749535809454640706130082132504666549858577146818089783918756416483865289580686397748009426753081910707543319913215161040220479687592033443046208396164671456224691356149325011434405411241862107041960469977699404421644576525021361229959292221909681550248206672739130280214097642972050298225462084446517803355083761460756525838992176808202463937574356014080841789037605716280401422733504743197223570793154735995575410805898171971449610247801281422171464264978107552075296776758252772329297528716921199856301226987009543538827461562072085807189478310476567797614734816100993559256651619387116931800485279680284103003696488820949195493507374295671867338213673154723123485510737024250115428201702493997353669265139476368874058249197074558133775379374013377767199390626717361612003876076377735090927709770272279485375483733475172358618572195516347095992182329430435532626056679245174239978189763913842513392977194093509554504668155410506816292960621460508055311683439313158775719682310153527406998029763024612791020649882514828120732767627361520736009406732483974404014799842895420855159457575074142613115037903938290951215811768681803701529544631011007805047006802322655563834496153835195335503252441138445890688499355662802909280328056719824207453508177923992616541046222929636149401476316175583218309812021704700960523512707528983982008339799422279208362321054127147060087622093049949524370819216729991006745357840425255906571039587709619887338249677386846457713338480790961518696036713783794713188372963424066602155326128813311027578198499551381433265572143169852001544110997340732662361986164916397719707226000528201146678204126066704317624638651602755823427414843001250819026004559415758376916610116698244829802271930025838156992036184595363071646138661143881253463164628196974380689374750415041365072651949910742350986436084122205175998309435631829043996959824272222119808548015747189310561329564645216873998031383736007593431573491383200727701390397133410425972118977880604054901992043939561059638026724545729879464776805601430096375672923466594008865312948011831719539084962015639980440977928515393795203868620891153875906858243440005949500365245632296939604935178353490722373679433893949129716833388730489858901123087227397617792573940609856607629715700707527623665520400751111723339723122878389799123024075512852872107000054031800463203142887514961268498800087825505170025005485316145180429775715893604382306484349106605876227673151746177772423248410346904818358548267302919557324668984350973066322842050428201052603646375093631951105723234398246104029520944514320779995851963007654026032052730407058230362766831577372500004459732390963245828344046053809917876291217733489335568943525121219655282395496951498159799951861004253591546578411949807231549242530907149544686073060602483466637342632419961205693538118523383994481373678642397514020776518440107674275318609097058538089675475254745323356987554303619078625520076138084764702738014635399787781993834130784304766542792776941557814425788100853879478201119514620945519827064598423077094021869219522670063897290762684219085569754661364185342851660792919215466580929033752134497307887473610044769237323969328853574807439103045599982700427404343023464054869745783154543233138341072059235252512254120331675949628022369436099171570698110156259965845657930596585635207289351287755190985278161566772335904645385247559185726786861212135352902077252326500982803330032834557388327274513843200111763517339257713483754962821467811202206537884927397876326106683128240991950601054255687085764974540380323964256725838075493521495619655765114495740807005102553711120005231756539552195778792713756281818727226695881632962886572446453837587393640965529884397795581817223450351752387109801631052320136087749050369879989645515327892987434162034496622827174975692790456686909002631512555542769839037361800097372550531815111881729364891371315185442725011403880320119860949226952213071744631884016336022407161338773853705504909250232601186222507866645623658287000310300445721943152301665309309395053058358642652819549186419058645032090572078060962548447214372494047434086857435852251138603570517009986395216171675462478294887079344863970732903923360381872146187450355628992496491219608191513782576054266972374854866366083684727353685993088834602957512880764331564194862679133019048283189627155021073467640408232264459916082822334065510916016791233846763598894402840097624269220285435903441496622534480375003460006458600735346412909937302763985129382395526004045308932553738704071563585265772196271555494648544647866380109027636343762771053070276805563761311725192932010149464976266653872533176374122930853161402442923909981364697101674429451200097661126643457832502118282801909186701295221055738371748086811145596066598010999536526794143003784128914130761129116073315227232635681878629988331451103349928971177790058601945584569017541318024817142316340586334451616585263841350965669310203479294236375231636233934122993563642540494241952365264253183163744073619297671981134659810134766924346883998369527510965091666533731008442949155256921390936141598994795760214874361638147724031978985493218067143631629453640866558116781522234652472982104437055623719418643226769470011378388854492486958892967285961249637720551808023421338282001098160167246640223389086155948874637688495598190698625985804689253658467144534998226125585627109949910904816836268649240456611842988799664045587391881634287380688747824261343330155528310179854571664282392666620266342315087652958030794485034277776167206296490200677256850839744936092565870455686775153546344442804104943933047820568776344102130805703252264855523266321613751520684391957353725556816131638821846026956776363755352059360064674266276585132438947020044973759130723853296383189956793390142373331065060005814786773191636071183603099243497675687222251135475702565026245619838633835146591335565510443278761878718073788136802538828500190558545489324832178382952631102714466839163565989734155910988210447169407063962710505508946523114194684394521201265136495610149549224753953081901741137891480522081956935782638777858656210164153125327816718428923144703426243792515010762507221561539368230767654928648233555191610821232594380501604406989231721135402817374035888801874828208804777567903819258348312196282790940067406219130547183965107773990865043622633903117773186387510588846660415094840550172420627647842325127000586816770089911479827841969079465654030899559812155689994800604198135464562015864874697368592602130241805781467639772331622002466680800654515076534347818258922707983663470110634470134453541309123366491558316216998005200847035195604108437347120221385191840696070271402407408637018355843471372001257642332399984762902898432736828675506056020093563332907438399561814056405457946430733983034247568554160309915589252501858122653197195737142598412831022655601304427959355680139367491586169860844352853302226568272987674573363041367909937414797744514466573372030343811429009516561635602790454667732805719586809990364367544692597006296844982043838546514106712670407850700285226998137741872255616144778847088834859216805515382533470568123016167969385572250352476424678036169772241341714617967922191379270119505799045522977387956081906861219371409975282856365829599698273791815011917061563618057206304525789777366838858179918588590986545520939832347584371434119543766264876055711149270157100924797029410024278849714481311286122096173039042704165191172091416328613364702561229160570249004073737998774963784307628917543687896246083958998167623160720046321372680847993597964084681558412700738838089225672451970014967371543428845502082307044137914994563083462586438863118664967567168469537592242730420883310281441629483842289091598519232274141724409561913831339467513561745123501130357850514822345471523153934140789318479749431607820724173273237110691831717716931717410241115459241037592190883178522717431071954227335831940686055439819975138093788135736156804612860702311290586188258983410849867315761736949031741150241663604260564025849634767522399004889214375476661836805007640117621470003406954905243424045706792500834238606329832959808774971318878110902725455209009141226959710976713946258339031667727791003287980549752635185418685662660455304294222939932302463976426526949523517496501138300042589261911106379207341590323094420292845648456209844404474628300148286698046935892424066340689898848346986517090993357760241284905841129142371627786780955813490930889312889545442366394231501776870818355573489081440510347596106510088316663349865834298320965739929118950156397712561602578902069835626388032163808830667936582682735626365350697049510262792090995132905001982667468344647201107232153489238828106251408772219639773335297382351368400373889802793941038196781337440524575783192403488297216082170767088607583712529393524859206246146926247347435491211915472584308329459779100579460372820626810248242297619949346135807915585894181242897199097444809557896017083385821248156039541581561211354254225403743500525797141337622202441112626775691338932095029305990453582814414070990941907906297432494745831249909604136154822645976987867037444172159719635460193946729952724414461738837982084317812042726777251143972124957046252275489067064351770647984549792651607547679006479189167210933534796103061522419205491050116202529299829036275812071507289683671863440931941425005218427363066513870300889582708326925762109382648138435111704256166275909464328562503302682486624581528093193724007161003393908576556744702204470295704359008497004583843789790125831974382963170305253218682145717877235518066128203070493151999322160895458490626818842049839193962914828372362612198743247540777271601349089545932256065713832736657011714136055731943459386737994471646354847959293701956916239680062593629537259004016947534575308464453617884164826188829860219231549321016147661524249642663122831132271582668685274206977535369742728943584624198761206097402383247902327095202980737671210541125274270626210600628951309457843583208126991019223953490865878509982955654074865099758692038832568374275375057056452286462420083088567802072502144675748443933387077886322502597915600803961450573306302068749670786752142546464708095517447868667964608916130501083188069374594166381531223620050599021975889066587234484993554321523146161836454728130438606945675413183803349454402986647464965138802324541677754938462882248945721350087869701180797349015864136976343925490255862793572807487726401977446978649976435625428260243955080404390950026645823241051110409056172055009109441683822180481323350707028549031712084062713063460959776964769526861299334688724538535846130818441947987283785503976712105335534578302926220727639178865556562860397318239907558519573063697624459185749535727282191730528539961317489738657449579922232022621806034959725118198526718536088374978273097729902885880235166278743012971846350640284403704079303734440249807506818528618164065176452066665074087819642630723815548307058832162432636790873569073394321822684761515186445132827312763754413345249232040892266668821374370432670156232552324342416157213110238413859312127888476571972896990358342221512716905952253044448962072056195997966458251453366670986520747332251648619728345746109852628112946929131014847137600531793875942890037692480198519905839096610049331132011447036736620130006277695785227474631735860133614710171442153646714188865604032317798760025203547195277426605947987444094765665060186938151400236619352449026914254632504467607547433667931346936246474328834575166833919981000054381303971487454349470924672704763808125728831117496304624894311765247596447859616453671089443930165237760057741800795234384286879807179594477665176819332127135205789129650813096528893232370583488275845615614680901181097566081527165447743717560948274059977151174258565122705408411905071761336548847967128002325039002253494282338719347413024356662322121432968664396264068349430165341770213142754033998898414007953469466538581721993203343458065512897120134842554401299470961927785662357942966510129657895077981238091636504892772813465597330585426914888349036981516833499494823243292118379869051311212085794099539405203005749738268851811522201791642311621201680288307191116054985772601506678678575662526671144794850817970183391198319357157823722623481575897558958231464455231002980152399172607135736207061684364878324092236042463783685023789329907997278775099835573498676004190704731674750869286630481899786865376603758621726807168569873347392133568490457108709289594379148747527518725962958690688344532079959265564383157462130386466665542962310631392139679124019492452588872605967648933069572152414901259595483663460222009520393273574903811107871736498383282648693538822564744404539711154967006873533606781608793587246472177902523264950705209925159840478245215472275866147774947196446020878797185438996801985812426205688571152830529613731100496050947249020272743747748034294903859044160074598353311799042114649894142733759203673180736481948703741455562403097141554058933586400257037722258460827377868466476753830093720788135776077072717978937028294328808860975154920090542484990582736578689818234716397509603295924627794616974630390713681549114051810843684356628483060338002117022721260052200612504642296986077909645273139594428333656887278176920350711491393205956527399191412301230831435907042650663856010654732192787696320328308600710802559080665999778271698834143897245253698648076050250325527358895828511154343373911859162420388182571649567493361169108732111400081110167743673685109902070019450136224642941732358591440422732431075175474614650156665481449715136911894414505968740865893766639576982456259715182181749495845359842860946711507868771186072518350500197144668671043175585065500851260813271710057895530623139856822349357707221029282869224013649032355330269702143391608599618918850767208513458171773055286503094877175924160248237959733653469812391190001770633531331540687723024027613626366125256724312907573268937342684041244059649321897503164639252764633418429835331104887427309481070497023074184790573700692571782735639085193400989966754164967906219131475771954095959406618946713152651570757243443144968182281941308566772057251925823495964529144711802490422995864172123056376305683654633750786709524294201070977691661887601899393341889734187249328640513863225929940243412823535589901384163482246617078110212169104236048249076964828383402761133758054079045848802842351883847642626192181141362259428909870232490145422233168695064381614650447195473357406843078500815244267124719251475501235780487781933520136212909200092627770999397307183729208787979576536136770645243216494122870495727420505963781790599825728534603876348206860263596105388121238320722092394477997482926371308680068613522827107545429402814893598321578278273075697271029607426582931972035175604205799873659732119539858631255594735681687304174394087764423480542584809059150582582123728883877944375479443136380672194326546101225452613103261332804644882509958913468660672640570279133741697568699612641555224405282882464914462032166207129541140003498755267732646626539217427299119908989902333070296194665706574411813022994578433871335994093380440711615090517637257424448485697638098036998118275048561591690746956565157057806481923351254803652639360642593390154215567174301179307003774966831577370245011282379079208536738918397951629146491198141205461267669881153657765995608662633242183453810328973673837297841231419480575789942306966060343364458366155705011205092110657317259201465751800641697784324714404801808060054681670075989532224023079958987944521963784301356030378324802053606002708399006898825215464805432708875177662743815858890650476990136846694075090830194136882529725872659792615644363959040608856812992046866545947683853162297325936451515710841661473379077690532700891208653877179174185299592715303664298689417965567904070497059537623647139886657721546018793945236085687727854134500758666730904571271663002044144114739011988758209902029159540198165410087103901562961950648273488202766888272414604066883055149396921032247505052561024622107169851871776237469227271870989993325575267839810892433645648672160208674975277774293155910406447170756102027532167565558371120060149957365035881950223246582485753570534564073888354389284929114124999593276560938627196430975836649210042381330781313289404053907004944302874957239402426033120714154577302500586899585056324354463689799697776514721585029899188408998692401637170559835215621149407076586726499020986962955409596726687738422945568667024205108263530032087910168435079000564386920306575493223396805862382341245584451694780544330945841302930059619269862692702825011173257644064011474863937156906062322935810862509682566728356949341598858455938363175408521296997755432108794924121794081654258143815267471175008899868283421000444791736515129210249770520972355216356610715606235788959744827693949149397456077967955907250619071273207088834861694153887311947434133424152734221274673508478833207453927387595346385364404745698278207492904743982395663237844063834126976145609132820815571582247645103260869212279688912224622788577771823425814164874375912231413221073901871377006396822842366960460658606313778395781861296256259042360520895260311025395524226478156733569545536437081652322637989803776253120922703723986745389399276377458685257892885421531826807674489812786824791421688158267906811637727347125025808298603795164801355569699710342077371141792977240701267532840686756862025753102931647417864698812428873787348142332240771228030538108600255337090745954838482928457645606831601900378720469065557101082460913393104861757427413694977659157864384474771010641477673214496542498910823075319367042024871298101656796061362874961135965983875870682418066545105316162545821142930396935246723773544601576931745730882598473509494442504664897293375375947941029868465001685548266503689280677756751363098564883571877715838601805742524173321402098000143372242093747453104562936692241884319382468639885334110504870984012108272222288270526821755697100724933676998365446368302833863317614840005793439862469198768313823469331200194939630117128386336885533359413269054586808561417445682554826511578629284445654759678834928202464136050337020666608349745748887231083257803426196084793110900099733921364024506432062902658274936089402299231382128205295739700361579778536589292200281411775857537283602564543283010996258690166390316407370140828175260203534971520427836822474959275528081770664320404527535713688752897227791115808978973465233957633668059024552475290569889632557154831806509714914290646935150120846010336551080608013035059998683998906572812525222067203388856991031411972572335278377855696817606995203257751696355492137374618406108752324093717487056454339789881026613050200058976322105093344394142789379613213082279380775331985815443062731339594295860517278094820651969143224815426116481741069695666129848536373270322511593235155898984240781394890355733641849861487855756472150021343535454734337230157310741580010438395760348476831948761323845137608037381493569140639571605059956997446672625320359853558955454518301812060245582904103160675767860334464474119811469842877076606263290636535360885885471029193945240752019661868904879917593247406528085279907785588200984293102602642845450921532255356944782493279771978124652218265365826437961924977983075542256881168247286803288461649321588232954247268769851145453031438690245225695200563990951339338473680179711186823280080142110153436281173369236545286459241139321124187781351430908399543319106070536714469649436858445160906174512003064440534821468496304331348601060417148023095050588485369364714980040225641357339872697332325296216387701991747066958202756773318383053890374377857228826988414263854072128919012151307127109030403148666108655756829499719340038682796549036719024924613431445890498650191210567696111209192186192036471730161683825100022196238613512361001874029586424787087023366291062981132055375008833869043522754709931242476444938610933891525108258390540508622478362673509113283851658957704845390462801170648347826368582274952643089625014753059517742805397907012123124008606726030608410031254531347079192735154082603590168537606764345395636863691671435968125491977379541064198106642697241680389645339281614806449759164953068893001222328312770434461950102343031640793544458976366671265167735002923775080699963233546611790546094938561553091079856867185129752561820848855550360518371743736948461322952423748799549415618836897150125852181157039861392123378899807899905963130175051409618623846989530007282793209078105293248383324634413298521338777997157986353328540554445077853604878043734956292347222328558391068011502053912646685716966430879297578256993317724253241428660082449706441914275399151694848717338455702840551970363523948278146737355239662284215796862605506866293199507235252684978009984471911080419960830336712845013363723638314245596031738170903642560456010963043239547446103346947872940966228167340699260271814294451519816843419030543375181612540279307464712120946511491229637273944661714466585490786162011265160434217066054826642151882613854721139689973493448131898631022752066261573212276662691001263202238491855734727171269239146269015862746862557088742445543352310501080238090120001386957146576515098747333634130366078316464459276197062117814694807073900079761801858882037058057071373251819729016014156570493630237733987666071077912563811949718796316175805449649596060661265396412735860168112880404870235837305532276718185331546055585062934613075227368540853416740178080290425776782455811520868141893595796677093612888980048450672580235155740448019908949021474095419446753246674215947143536271808872066662486413401915827887908437423754794158539986168830835705307443224980844133639938003012062669300468942849156114581188848017118568970105398739615856059333755351192324438212488779046264323367860763608249913330478469379255722586479831432200112181979126492615303553251872797253128073480871279951206238231694059441765329608821154613764214350081066041933879616897483742633806407287198084216507614677763013358822241989466268028972064395692104738498520761565475264324470544843607809593645740983030068233423018282650889431580379240003362188755197410084166049832568689197345432228878500832093074057757952076291557698783176091176610619214387804836087042532128481934070620315842864076363400853670009308209548603205097529132467356504420908234651023043801682681191743975240834931427651330155921176877811158589995477581813816074125178129605625054635915017894195234364657742711305917535805708805470650270078798755149891850431218090869121152886675453817254516599188356115257971131240961110329140928528362088053798344526535042455396119656253902949500389758290384883803404907575678640758447045284027316517713563812860817829577290842014724642143565654493926905436607414537730811228465409445794301441611573015630644395636219883987025067597697595890945573204202496456559284347718331835778824220342619421937080497581939193647508749398911943396194363265112230517980687890878442635216559193016652319501760094688349047876504714460864503086468333677323172572848601921153233101056902480194881394347511316936087056472867686630513062742881077649146824219287977596631089202606482150361630759106920637148846009477025336968255962479210122947363563513554942125124495885519720443837029593691694122250070943286033769042697133902425664631885201251539601800783520920850158742797898468790979531175527238865014342757894637458140190070138083515247595577866071018140146641322060962925053987435111021770997028557611061445339354850429314868940290446205623866685425149195455090454287584965467818039513887821015897346343759395974112229179798238268220224528049225498204557329139921707895438499447060182810382388680879559841916031172623975391665843671021767168685715793929757504932253281180750454033908746447239687701285959420731502453290263938599330635002854303639973087883200354473159468109260104455065744609075869878056420117582190859077153281161347482891568442496467401355907308000034486487675619362756924498015461995459798883774292377915803642000695145660364836537714289095412830698388119361570780937894397610543639257888780490224995131793823068194627309531743136142899702209224399175712411387898760937190003077734177705944363341601821538336927978099942540364221326835582787848818682925776857820317938371289824774373571091887948376967734524206445773907822176440882046247161851870974143138368288297733358714656123228372097411902141072291359399999882083522780475062493006392272378284975417952287471449876420229305862868511235300262984292719737117041303535790795115981764075995340334259357930928075269411234316256840159425858765803269698973104331145998151109670491958812045988993413855207965972385409997651139460500548843168902203916804078792052367527245767509813187545505852564096518128025432855916018494316756226943240897808082354887614884099223631492977866431291188148245136399557099363625505503371561711840868632925953671214565893295317766834663973763862227855674745106855861687797835433046395189615282255590437642231991301814331639109072383019932738141610184214973133128659102635151762716225109986326938108630584660815057682249108506351047088212194950568811648986499247051720526772150524388749742316763612851926374505115031826635491033547854623564946199135952893504139238155936178609219391378410555824329638167703390533206322804683558820984910196875482039363040439543616348926957703330076892120049028099486705319554357078624600336923271036342585723050952193002710253029428624100644536756087231622195636963530779996438580802599974996464539154585408940075189524636784467199371547811850587605847785558965179742932591991659074928499629704714561821770884040163870259435192867795684249167531383360998836067273500502184128837675249520501498768120715005404738585449566378583517977656407134026252927794284842235794592633448811330092258556237538605537890702403235449845827176904303393132793454298518440122929070284263245945382938505379332331188234400521226328440051889679784877889792263244763364263814837395039010829562236531876930097010409290760438000673288771336286236891197107947004928863981840882171266273320631331815611058259107531965162735998929131036498679939641404336751804206459582030868562515113275861889963744601622448197115974224621762311172326107554720065629248793557277038642367394782648576518779663259139583308343251992440304647914143265238426457214489582520649235496836597123253412062767675471301174573950102510714463120594374025539463702631414490081021690513084183029647294509411326390817647315099659158648495247641354087926165598439321487148084844498923207839870039397602559036686721539993153280516002351968243089814858620636024975123747281101512338350883943565448895025331856597500433200200575001118883140186680321761706530224678588466496645740950861801876359403526688191220177590995846876478499827523454086775552286567660913470014895151159164162986214425343457827047706748494315587967653300551505495109655155003827284363512045095715286851344174638638050205546066888898621471079559632285102260493405873253263963570427879989285670026185741897390440666432829215627488516317313092326256012749091800475200101318106796823209986004130092585464644795566506217845452512509067664505405568638860597003726659444699375087475134270863387701551894962179613400724613559457815334735718936571575609475061233319919460125557183342556180818640611004473584731859546954818366505646377867346758314238089830783121393723687366177967553406312783790755801636722576630993491694671948849560024583787581727930919720194349072445018635566900532289449875576303741349051282260618084594146798686657630597258783592688829470856309448246033365251692376483062362276237017472277940639901127718344014322123336563203450044642858785667460100809384140996389709231703115495187695731802181368315822488632136191947073210613729191121549147254156352203267398665197531379268037558919452959998300724808856840823227353298566176264334196983795858960764024780850441140560647396276187720438730323721568180487314584851388541698133106002123530134366077846187269626832181588126313019258595018027119895678237840043913463788285570953107427889758770328277494820965668254139348570388282431039823520484538894966401225543012790983829721300613539781275488372734535975824729986209572070242419467074631619175450151350445103307431502904798786418557330330863941404574931894011970272523827340684736302429722499773215769592458527550133758664814269720229096629093849325971112576983221985208829363451920791372510258236721581904303058154042491554509725187518654717962555293142134886420845192240188879232122880142413343896801674904781306639963603112621793275869624241402705809922907548570283467375505538751785410233026568586653057716542194501013266334669828077957721488552175952039369206008569730058668129683381341558740668549810934077419172950594851875548411165236426559507337978190461743652110696361044501257039167994726040497230680188930237618293412237514350312179386648367611575576264805834480086910256551801555563495491272280991437224291575208311235712989375160982341110614059149226960600452677649272895121338547679566144839641128471249797961913316215757753457112881224763827543093396425550237791414181190292718332948563488651058222655124823605337294301709945458472979453600635452111257564297553796817288831100532714866537006507996577578576594340322040179374086748666506210875908427243675698638612536574493605978532424614926448987980590636655335407740567043591215152096148226097216030273830877430101494566621952987214265905408077264797693689916595131944562946685921516458941405012916384695991893406602796143592138894623317238365681751807561941865499984474731711742737594626619672710069863980937078796039253561049025387768383645685480661329599759974721585740477507867256467387381325992507529082173821224358667024241605520475275747803162295079189516115017957360214528701462504908034165886127034257718665501042865804465855311415838006644902359233155416713866073104747093174309555095731683676365288150514473542252824227998675655994563839253724547475960357548748339548713326770272356173454293624899097218151862799697578634442291376704822508075495659142049050927632697459385270076101218207178990819392474919164011664826365062881631639492191629038194125106479179355216132504357898513962876646088240882409313506273622718525193360960418817875109793809882037623411471766463193101672438100689549084186351905464838419144903821020757621342468220055740956841665099395978969621946654889316670601114027536083244647629319691110876200520506235255415192811328431853580951223023239579600217266362536228937926677288403482671116504870210432054834170707551448425440700583391450243029970040063624832060819564369578749971632665622063987866534238718604793278559768737118056128863529532898530879788273984678162604159512865657860398722505524766940481655693395107587189226442217832375870553247087081157886705546550295310938638710544812568529033976794226330210859739011485290170270405366440155134641786341652122095900486982727393697105542491321689005482515352582980728220223809656845881558166057491887089051739358730876790435909514068130549581898241945277597700427651416846665260688694605149502585330494360494750744541772601160587452667985350309591921944558483513120059446757534726734700736984926439465444221434567203610674260733521595986832268496818223178072099278374713426723278433600555917772347441757004473045903142303049789038588701618271243615175371936087119941109151244523966404984112295056377657408919056690322945167816294941764007171120965146386025067181943058271649535592789004285327080503506943412919708448098514419007719333747300927483216211407439534847390842549239706935354830822952231712828225878496575171247775380435865063936578781745882285610585607410291454859659960817116390012201705162636904269144703775145601078040820681556026938158722122751386448927959346645124039904272000784298231185491512966481011606948187115643062699201088388973926743290692738364368026786754132496126750530434339213886829155544543997161567676240077751353345413204565589230743453272142158823693018222093353997930397866361857331002347440627715569936259889761494336098938191000158314534500238609486768042414042466366384767756423235960536430841883202753305955296007717576253635385543992114329315173825829960992398750503628976555512636903496253246591566732337576335297399456541141460481352129984285280432874430986216336899772955984951569680107835416457070798561909288496765933364327859736703674440897229108062713673515434962421881844514770660823376180142144545578399168192670456761962655657179032462138706942312735053052066973199890328420645390451933146687669010827511043839856047256285546985336208678076553092075449191571587715713852799554519160047298607271826082450313603026853583584918676733906925621219847878753456168019129413227785989171994320545613698736466999352209389917154349281096325298964131643054133841750084916138166183029515497400512032166911354774009713761451980352495742989885222607049354740547523329157791189815490835613630225538853156685627970495710779466719598904802644548963416006199390535754650103862800811467318170295806232052410264594880884058269331111058617413375809724884034907712852965998449049275885437992660149197006489629573225932131368088688614645181116765195708877782674542010701462240431164749346223036389085825374061117216008741365671356355162536504877484907046260710691069138794182416062238914570195812603359170132493589510382967811756301498561890200235701871910662817258228348985501238132164554657344320613499917895550200513290734944434600876087519944340696065835259056691631050166013483418585146857883458634756792366998366211666251912432042218934759811048432317784292978692386866185843952330345868508246039491231300153363672015459171652455797424345011859613341607716527295192564998990413955360100835065994059296235429483198749858712831878221293265538842643553020869344227977931841548145259138783842513261850656842725674106768680418273663510268097955754062851610835552268766923460247511906734623406187013060731558333523636397369881121700009354154438180700406791001936055634099969176907218916501272326558627732099363664571169367910645745774697651015954958225202126715259335488120067830364678198926949150284851010930843600384592017259850711310480539458322460335033059003429982319578175604356251193691948036975608641125344621883881873819787127820789310151078499073055666444004913185183804305557653451731712406481966786015967450348468254092525771000304127476229571941808488442436786017217432575497495892803918012965005445492064603175265553395823592901120241530843316275057302620554807183531571272664195077527190086238351025120016807715880620263835661091460337830811321015191694530648299128943655483877147211337636007975741415345054282002954582984410883968408493276165258511355072545896035589617648906157315538315019680915523396692603865405136381645510780100216070334348793488358219238841011900611279281594437444514930270041896874021923987491831403914111971474959702406638769799930121118365050262153188223345527882837869947602296819564411188550668184741844762908330854773579784755206614955593982553383035441013113398596842713477516504393959930791914374053989769526007816763725861495601750429746085752217258131385218303164492731723569526965403058679807805555711733498658013605336339947720832088070095606627355076513680000614485150143919099601729122155751473686397560100864634053231884438261941741613060449029353735873123789526100006119201817610600756578435216269049013815150928119937501319602396318149602728329646264084291265463140229968738753471231335045199600427725295044188014508367823237117505802143306137540731998399070298604853379594391600007931284556341214626274001993092020940569185776663260383819871162278738393224994105197046778034225380460884061674427865835249256823345437127605110026185877641126583120814825114780718510262582848650410831714842270829755077149997376781243107707808486401101984354919091983926626926982612595581891451925335058170933032335609305206345390436659955354390642738952754876084262069208341750114206533503350633620364774838351576438492955353108668519456197946586872225022321038684899140613442900631528126083853407825654301179264276409492462902494011737543132609358186209431545956637240397625844249255202663132643535413167596903109029118733511045411566654966295037533709458471365313094473590803815771561496944885998138846860190319891139990920076996060283867232220962920885607356686467568865342861695873905484089714874644391983250786842076861561211424317300595645894087972612968278719644797181665868119831535496899571963154738845118558650881358638976096230063374984881043731112262813322507444452497267688167729216145023234537896761691242526558072545323877652215541588819650751193181438824543531163595520493118006538631207885718508194713816329017689855761147532190851478719077883724787661770245416867373848699950352257666825455257746547068882703171818852716637016066587722317600056645593312351259919945043784158640093362370090574746864924879210637406384612314062539011684918028378954232000014112154904044145184848419940377395181797755980210766954951016096216328665694242303808146119259030768719780270431533337630650287655621846421602390120406763841863185046375083612252403992503514822383021107386820837419307315039562685054507407878320962790049481348179669752327115699673538516208505345492356554648921546921643018945304597874939236294983474933377776139054284048162844417919040123937117643955631845388234792950898182561391256075445661422007857261600338947947467435676225473565084158405457508630560338820294210267948140993586680427318241356386564282794056782664021289766806328269255215925329727383013458216724884783938650735445850980260606996250331129746107498123761957130325199296393612744968331856883747562668574878326006996559072990695753048172951295454867360000517486879942884886853379189762827845682196492827803420385214845344596868757124283761613637542664586112740523035945888195615611988802376600430803616627672507532596293582648234639367526497120698946387068025830121818586862210790992394473654507022384383672764641201576018468590230184098990150147708248072473630479340556752715817165432072490058817382862085241324209940659109810723177479188506117078160290362336693377049555528460395460506998905716301593382818000685085211532331450498440539580490068347779447942220051269488742576431068299707107218137057271691652255363305083091999544346169862110951549178342590266234804985605078405059199290591561648253297323734108973488406770451397594074498473416892222167597118194360773446120725326304897043442499618411913628615203342679395254896492720558083056284686233627685038368072999248459211200946572642205797929125949912392895375264216605530648357920132779086228610550385795328360224343001429735797329347855591661303356868427436468103222711081968353899098725603628752554613567220307141846445934290471168004028464003163987689315129903290405593476001918104967282515422478104756417142702183417338072696040628481961605845609965283073861532075373713395161386559619068582439314948844736886646624974226557518300895500874755979522959810039150766851603813643999660321345934502952766199101366462360367895897594843729806646504129230468503925031401549241872136661814090331672919796670279345790120581376403018224495142040910773871554730488596997178824656862870621872256792447470323067745238561945277999083898323351724994071129975947790099910693574386346561246116731435210177716584115636949394801389058585583373139438563747441435451034543520066214560203656637448397999807648434810102224078783684912043139933835614463982280594099116354500684783484805096934128069622416405945450943271039553259772522708552169941352566867200475182464085100296403334725401390770349442623216445653154985185792009774289895590133280034358137286272445411955834629333431886428908791513561016839735927014153436676775468672545972884191248817658406658124314591455939302055444455397006406452909892810295887395692661568992027467864445803011444625874468039451149405207160197511312610298300938287155966004686080183728216908885084010748640993176802479423845662860561410279736511433732646541541476649979456480009542453077857210837384645586958271829708544183012567419723968916323790968218739561671775642474406163054491159718135550912367228405227229336430923119700138582446538223113297276736160588905169820446780879285038548041637994114492204495837209919672380398725009645334683779353402139888836022238156726252457100673987564345583744684629664734734592454284888612524602161132052286221779925712076896132835907500957947500577594865507578048554839555191000205986122065696655412172629243623450948801798890734269714818078984382641994526149192256857233479631067018925088825171928995041291103355780347982201435780149784828916249908579799396361503100136507224093657707202657376362008142707875984521468016469632093615169161852878668657314742475027960510018578511492971446061847006185495495592451465855285008198112516193779701183993060264868545157607886362672646026503601358796937814726370021565820745094919352647907739902891659052322018897407950887962135853691275306790065124270620332979556829706276987299426504578180546570329920984913763453415495884442443614995631391014706330826628109090199671267880749255619782920014493974949715841929213099729406808057633132101534854435958580183646715926254370158880413015556472601986416877840003863305094547054008291822559355753127625375701339466798324863433719126528544380273049973742155148091126485311544882531351936954145330599576443171676376747278373317483100034551557936672255620362683787707818102012082626240333684046678695409326627103023681203347888696987972768738034231764077501748700138733191683735250732607494953288073623559254050972335226021779464634615962495364215204599306399416438893610589909025402018228670904839402474223510444622629058586030863662046459555328889477442902252090282732303323027365522549109933496169340935505006677971800962146909951865910628974577192537561373937422173325391518091169170095994931965960995852885024282755427161954626157484448221898342326455960391150098485124392094607299523692846967550696651048382054568294814778166833852151660305366475981544079931839696699227106324359625169815435341476627679907830082275584950692122104315691653811602711568513558469916622901733887896289015567864094744119906077104723212898436562678802490010289607054393570400093090681035750940060653658049761765825978524312395812391202933905929095713371287651135525082084426161017189844554028668874677876824333780011295849682173656250060225252457272674895727620348892323568379684566953664961878451040214258498246449936274840819183145427521572724719072911398034697864382606230707376388827611624034831098775774299673079802997114629223774926287940272442950911367683535551512015995239841778422263028470448517671800346457029061742599370564390724076870288555825515887772858713888111383793110019118885967958653014231937264635702788614003039195751661817409244086421587699407619737397738127874494056384236874997600001625158263162128913086920764215579086242712762108497097021593441828230508502584394728218892965043471191782332961361532695331148201862271707150257743599834266583136850069834485577989358944685049335819075301152120841866446478869364232568851534364923646104625778114082091453252210283482192182113449958734730010580630307352255193386031028840433046074455763557990832937008949318822496381609567874389924189030102477712289119273190896505994230716322839387358984723197607616443674501499934486502974122790252571193609211096098644497359200680125357304422138242284055305641218958692545174639206257497145939451229937657626786156640416215412710369216485274781895464605235259075261181114093994617958495017919314562056490468416831025232254138420752315123311674944608480904520894610184162783053443075576168342628881703961645494599692483687833924745485137823702179742872321038039278017484765149839065084416727776379382509190186597649446799113926292303690030133333620391717197793941133134930955991339136669363106947740421443047998267288789025954019756478223409089273539933944465351050464990752897611329494908397686698279446255474737161327373780539900034525683523008729804745237927839142598541610850912264961821315800439538032111901102913536839214758301165493934239812851274801547985138137868484575075234651463727177936331434601119722939875676076637353483481118297792391088239380657844222994073314216351168833604386336531082837886015398760027371703903373463183336729674385683288115726862054852630291535237025441828892897508974941291276941936034394881670831462219839202943218080521119912183513048903181436269785363169757856863363892917302913290723886004884859807802448352280182146600486388929095670185213540110019197039153657609120791438895921212161440249213715600103537921001483070682866729997966573692817618748073881416271053168279862951987172360667809028146703477940984797815212661010829413397451363577819013291460018769278923611032886922610979647432873619234722818806119714060693166287185801880044165913385642539525029817477456093551060334719995457122617733605588302216906700211818024435079894803772334444038678807800454854778986593339270496624896832741566477238679971197568645978921114937583859301321010782997153754395041892155722174678061278649132791036890019674004088950479437002082590644876460253907648932686082839584872204585516536234206320725876539891150148931790450280538699815020382586241417573226797239396259673349185405855737147830608539813675946376662127381236416661351700075239130131139947806697505343464565061724831952445593772840192505270031609153191701792739994566779393420262401170273758615500259411276599284913555376027795898233407068614817113115069923036754029068095130969001674011934860281419293098231189073585956799234579594136559811080792161886759918530678619690593027389103647199443593941200139771305246260953599131998300396485767650308943729451681120961639692789418959291841550874340928289850324638468885267891771539086174725166603885951146351071675035340398065590865910996902336114565924073996250132699177311199683014362209579808362892090962843052944254261678129707191985559451458958239834906860600030153409904751984364967311408674065224586695790143624481738894793771922988565697037083506321244239994882027824565916376052233723865407458209281374420429407001386650862464718223561918044491314807294917720604223108413605656776689109831351440354771752060226438126038404031500661179977908165380515522106264374385700377626187701170701304725419401238829449119910806200382094009769802775212802671003565289313496632056860797765602128496862025618459377552758654612623150270256719156197658133586719300990574049516218756020181934549811048619203438092685321395976459438410325242134724043948560609705026808796443636690919103829526715198535911644992768287697777772303383181850809564746831139875433732791579140088585425871695014619845363252775989968630009072499003842918351620482590045525491372544480770684916192442646319468739564351020334618132982922719216696850822075869121696375771943822194140718642925893214152608857463828375124073556031594826141359965550910142059426751816796720570541657831735047987952598551872515836001315142709736600284899598630201580855035991471962144637376358496842132654991797431992269882210685937644281299186981525118067247815451294613465170048043888820837418802362715047837679378219126432957543704200215771825129163989003439680495734890668091520338917916609280819543238665355079124128144395697084507907922065493865047797082422102809045061722910593624043172324602902684612927484037339885951561439051290589052683972146171891395677689608143749390874711973048072235724738746820325234519401401976982231858433208088094647916228195874892483647720251545585717963222753391490696983608808073984582951997094960061820474390390397894052788463934770563505335950159410651997238422977152373734074465377211527671343885589206529365226831866065739396879757752131946573033700842018624970879981496808317329418965490402835811163063456606698582933851494578393284513387509378565168179223788236752281917952700321885637089967951425550217571925232805910097420336503013066524495930983268073162002801735923444224303202047818336116529788073925402565923170231667878767056499499850311291072599591002522899023374543232394474418329602997404938955845114633820258220610941268100650388334739399026968499535819295099878933853743995242818000975064020457045255982621361816364083981077719442311727925022233227307381304571476588039490249593620829460086252010149454900231334608965158631285079667400394482263482005956292060935817079861706961671240494333126815668064391152053519370727535951326955811518252157432900118374416505902767778703458744816564394141937487622556223881010275401406386300562782560465438209507654406185157044138277345004377290901891402442358701688506013247750239888902125741953277277726419574789926263889740880184814946448091036368575801769947641968300564205045962396056760935905059977849366563867461700134821339827557891184984604469001740577047667823431980214958778218003619565388319550579225069805114946408161011904211573219282175038737258472226447023805635957926509962556356850626468936110140443720496038487587746962840084220631987879371937900227910584326263638514774803561980547247474731266434721150939884672099866673085309580514784071006879303215281186510597269550908882239229012136667183455006627968479617065071513986107367598418166518309746798137971158586070185378916602256526978053187978923459843530516920110613350351338414270791153293950654450913306071699579709953180898423454422112679069992642864906716851551375542695282596082057056794704178135038690967799216203016170019003728508909958400767049825576782639638805078257080653736815542028856389568000399075243669237706566379671459403927552654709485602173789176572407698592743769800277915455504319755771544146537976392874904446915673554640405953881139667646815563541498127421855916265656851991136409903940193372436735648120561383180335770174965742054770986441707556129426228588760658177033331176813002026704374703646699233602283634543791951382631055104021862994679230139481476838604049794899089236444473995878490725878073966351381273426880859495924661252759644450537502946624994328955778894152667933074189031576439454442458223197194245942110375971063750496538816770969293592794194769183545262160959659768435988889465360381705471393048201765582458527099117316646473084884206441814886656049017856708753720070682401645549330406751003853695877979499604392734844259833448869208023476781525066328936157896733917250008826607507536254061449014167109128127572659838829119290208182804840264661118431023155983441172768040992711713097643676164876976714945152092376333695880519702876770994504877200457924113089388405740974961593958574030518458686692255824627119188456822433964831343078952412700760486893758644503351643902385432793935979100378686619785386479942260116515498962890411065226572607762890611037861677493293025520876401208971689914746270603693340496975031617893232162444124184076091418766754521218917376786732655166599698764610732777189435312081067188879895534521422645665508753819596170490086770679046460128102367503019003516978317583140856895096580292037606649780728929466313831697036596314379863996346005088623114434344259674019317910427681924477496716715423775188139208603178192598969715913460887882035724144977239560169203272796099491663040687450336364329772968144037164785973980306139513591535823033878442542197654033846741934242632890261399614895794465244442961366935168597395172902114904302173168281459537175753635815805932975336025455941548682795419392737146233952718484285458159190356104270142507093396898634315760342698686930126833820894049419363732929493022416983718924586036126007729898083300013938003025094897423815885214421630649166359813426993865202357870573538626347466171722919534938804709315207109654113658878100664626061033135931576439291445454181138615985290303553472007998153063624403935756501094765793779565525602368779068916802653729483818760810309020472499271536583095464896136621099020303187859725423700043048225351135040401690760720231425131603018011527318989427543995026068347431937933796827220595107361524110678890531155266924800516871938307620342683226542921956605975604996938617452543305982536363723248901901800502763564384668978658196557198503226761729218644983604775076087521588718402531697231034669344865957925229795757412758824140841108094869739377162687474756227425944250627894517859412823997696183826159650553425468378443940448249024879479425176403655895034039945158542824991350966621520453181950858276672630298638602993062611718570057726802529616419370587534051402933470762226626755387898480867836786478633606887589222864922749324692259462046233889721667302584199455877187643209084612321302007740934717926432229263775548420137496240885020011348427040829353736474525935522640302692507285973311006362777320060071843345202922957473326653544856900788043806105990360675170552382456131390179320640222092889617639546191843977913056127165904197111187096033375755264802499207716399621584943841891367534690322978190568989977487367323281424852849130240218912918909559213535424357069822935025000914072554874722664718644741301408561548481839658563970769257449561088012857637905306869876778925696782809086280780028168280195654401762728207973922159633718041594743746669848662893506592815057870624272437253319111595686498805631114395685164949812616575417109542465080226494743593247680285865382622791450874964150700332156763859641851041718359286114613959087933939345361862580229466394951088397252441430472230534490912051505664157830369031731153384858508312198115162025883256276440453007780457749249656366438436174874437773025676244341392297561094577107425095968655794803065358673207172817878493111886250310617123676337292865615280142794674542579854239683385442628680535482014765692129852550170793632773349651267616912781180581977503168222359443465730826373013544418705556678142354526236742512752022671132066339519702208353111011660359899618239992262803582820517342067584195815993229919573447234756287344346082657471920231095522476550393961280358019109765096211511990281419140367824723336086289299635013853977090962258300011012829242145066434563404238294500631046891868612999405308731438413696028734565608466907303801342784907056407409378420807594274344928907437997405347793602914461355820577098748488760024646198876951663633519518446980423416551977124302544321028634416128224919178693819743042736916680898981191413328387239651260155725776920994614931478883819241078165534821512005714002809938977607418896231111111658966964204033979327875852801720752411890026758475119886956587329811525165570381762901225467989862261268719796466610690342067070313794588178253862540159249828093330746230201550422140005151667753385976207670799545860911139052960057451988870336061676110959460162826411096094730562235369245254837702042596669704171998391809459621023729448364129974110503005596187008823459215731824117277029338015886438760556592418977575324302471880100407894285264996573527670063580421656807492869220466785948657822699993848041533831258291607456815515832142842729166471219810255493705797265279937130775708449602211213238966814285207658147083739049112086085334186452501701930089936594272512710623645227717115818259042951992738006039817463203864875969195970694923389278949719644395507601416410716807939398331424705967497105304161652717925930785803709080411058796222795489730319545097643994480926173191059118799349757892795337025590086567436020077924345493086407056754484286264518652693521602954729119783528463445229766098562321972366040300570336914656007619347442458537873053329190332478380384351219835757063181836776699958954869603463814054620524764319907374286546284447812117806229972318569179039853028907099742872432269823466011981165074544462636572097736891843388736243813656797121266499584318135044260364322311870060944231152857946240521285059466830250275868900783604487479878316041195754109242186551991403143561803611469938994484940068512586390147495324491870704099202773906062009040040307879940302965630601535565271610425339662243306104669945595415710626274197210765026969939372728360092934191631955197474727402054441741276522089295861871863154102920376557634905248211295367824899055671341166733367499390405405429736709824705477434666893808909421035539778122999542997925132924189918066757559921887008245418553789798815418036119395855707645718902303146429343005230785989996408543791562730826556549527476076443361305141115254621745325441612671968092307883293961660385666431776941714193786394748393895087806471479563694207690625616700113918112177523450442562137852435404936513162142241052607375906049090556050232834931160783502812746610602507024718193475412520062123570403612146542164200764630778069710907812549351790649182209182572813874607642907133937286992394787465326497873261041645440868754275743023263360126919184983800222329756413629294169851344693774689767767023176970983610112001310492976534287901301022269360966498859160747884379060562694430758124235864353316025575874949951504924892049608222930748551232352238585295210420315259657733433016039749855404763325547179455103575310879466052227985505366695268372948683020123459883801554764767763493973682286702676114157689581930920031555271824798640115060965646010551410239179853821119896054373882105344322626687743490059049926219628312009624454273549149892050656506402011093363961963513946673632360624043923942669208207319766481680938388695790166572421355679690798404033638888342822802539788121012081222712870062072826889546883394279382005514345015445615256770210576772627541342540786523218614265027972437565781293775373784434054909904051674023907320443163849593301858262001690376174680414029045169243974772308062868394112697575214217474766393776896981056698191594431140396084453963646813680052041582579892074437460175278113888905250428657353636263963648752993773960984849531405257826541067096581437483384431395874473279483738797515477176368032271249741717946412926508357791867887648756732056590694427487495219983148176807023470231013330119794440719083564725366135271150169605586939939100816886639145769448617449417147775276695073206118270802912378639637451550558731378096511845609470506757186085008468001942558989332617815909539970886413086967008891836222930980791432077096444262239757857624889092678011853747112405720652629805919193944299207950227306879638087639326141705425689002697201915063620075923170097809836370071710529111666463375096017336982242164304003081848159551510118635310682040401929317888432644262468673401319538437455485867795374611310361230227496424283942097107088487634013891028964925958844494807954624227367538495257349671535195610646568502978735293395625363621403492216396691441351968263682951616265450378277989128456547403402508598622877495444477521646053643990649387577501102808211598963712869484944587595658921398381362684798992296099097383217866912780985972294253162748840633618928912307291877095371308836744580991556642282556301895608140338434525729388012934359867340098166039694942897061438857452783420314916940755936791607496955743841216260128218749142309035456834782691601681890166871854939786989444440175387214927166334697820786731561686469824195032503502775698650883633872634877584434015553816351789182885881428101091071727553998319515235145389306056051098415138519025027149053324947203952698668595034748339100516826449588941997206325114061698281825220113411722399560392551912231918008523203803561012979020685525265359016961761840927669837758845751608515926668032501481862974033673496734106970592202353884256451501536826497112954629382506416072525674658937877991811540483653914428373112882925468970085200597311157808479342519836537168572043087648116603473211257857175522736492356534394457926441197930104793524656494716097088834648744428278865967709274745969806068951503991272515188049838014916208238579505401158778806824841764279117073536178580618064386707633838635730948540780659695393149323661004127748903675703826538763551632981938565215304291159358914523171165207028429811841102691565965730620951618749904134623340913531514796805509725393626540736190380704652261477709371091480388023114543483000926221333773712213850229465487068024557098334989331423669722495741153099664015687242994479374122225179350901883262048352397124381171462810126562251421292730755916269542355098194933503526852035722210253124874760417483385962883551507413113437864186981062168391458960804747495668494103915729736851040220623273535420024862232737881401625375112788596283732377097305914798967199762641179177600300105958651159081210398333014196786530249802571663024074556110666878147550968166305377620793241003829833596848691589354979858671911861421861754338544113119961238692042429564551737617288765166816136085287096527984603093559003204756165668347684230402708736300802065418238797769742021936787528336005833497091519937859033893211447490612873006072997444808162206563385491848242714981252167141793497639905466213364794282145862472318928839745274240618805473535086717473916176307049535268257763946979311442755531091750527011826830573983158982297418230258569478232119123137613985009582736931519621573983892362359608808527899843457401865577384135122574556847937316124518063394285837213625996215168820406658305919870095034178043550920853738662529246833515717776740306617645963849496587786906452241266838440815593098527589856956280158734540272101425404116590759203586025906185216646234875078525354967923587450431323374665012549748407559816766812225364219579030866199707920524344112630106796399014801349761453047991047253765504596523448623315546272037534747402005829945313687090417648053090304822380648911439919989748716024777755941535706011577229453025596630065830211093453792034831030501146263580311892922159139168698432879277197827665287669102073620372700370701991668328928257103264580864246947820471271002222844903844034057579034374698812499352734831318014235585749870879667315235293331445656029327967511934876345681919521095048593631434852765261716044888737318539302385257324992292561071939783533938872679743629977717283131500923941910399740235064332608819892249703699261455625443314758752663925406984441286812221948346686220899054417441506130269088828827335839615024312874503412402513699598621047880641990257892891142237611702838000784390553996822314736446313405246621872327070655707532516411839386851110328184842687152887468454363549737326113438445681779059691923558970116728518455120757285752986376259795526161036516426722491752976901750782169371392338044439931631864928827718786116861867729246822514980854244950238904377034676657142832092034066548605067971570128070953113846204315724211601286909549477650977398378849796844502439886810947250753560075531863358013028514843716737110437035600888362988839267190943395519362767204451294032539703353833015669356865603018178815566226892553838123935189248915101044199031717682860062825043708184115868311694753176721301372869515607673123028752019008155785440658158950638739025449155437452910905249645189445221017951578641925341265278844554348719647078291499016785004478391939375793949883596264648484496935079672467406667395205172033578459767185396182712575054985890269712079083371543120462004340270916875678293271155305251996984628409155688755484799479191193778271311139946122511212836102076496367937873434702228516780666774014408057444657393187505912925037240893238807467346963344047707891860358488683041254097821785202273181002008128832943744126656353123281767039256961309853011404436928186153017224039275188032431786645308301073147437528333669644640133036742308665271666146086682605002309946764892439466043541172260407679814459665175261407766139451433560053977951675717748650479600801743226543254696681597630242615034479460945853942363297437694030773329134436033826686346941976152272182984571544844424351158508302948411047747702230300195221518237382812052486703992958563225378624539610116585436344288285608385526161634088389227828243070517578134056507791243670834316890770293102536431927073086013978675210224511416471028494110533892113867664860134521822525636308118541928266722618869219545799084754809125241960853494906071144554164436432522019335589915986909401941771626939593284096581754848146597575686743496131214990069225896206114324531654301480052125443359482822617588078997389154771945652901688426626470277415692743750636118438934449993026957574807618831500583471144315544565295429519927373069776940804879767382089212522789462113815623173553035434581496191354700542937906721163137584187454934018654046482121969748073419342546910698824738050879188806640318118325988850000071945518881442476916082073626072314143009015920355279624780918165385537592765395049860253023841810487963894346135943935135331520255639286658006520670082971647103519734316294493771051124195608591653778375820677408017224018793430439349532707899484312566849800336146510531241945088005406906491408911508349689586325663158797707367002681112724651650721920541495004513506543111039526034277877321180984270749801717508336191838232288068001561894442467124188730480076232685709249167207262316855902738729299976881568354725990579431252566873544488423670872820620867810144605047956347031293706967704272336574545038111808028978275914915944252351379593216214384253476484426961913364677336842473683532195116123430710692176331398691712303597593530370497398573587476896339742711790207377581562042103285915702578288982763147475191582523186955113759589450343046802386193873750103747161270029937605383077409565316663067288976919536962895213388361387462448854823801094065062478047876060457551839892790597317069095624750448567954426263517834971196543997466625025455079143597752262673292327981501172395287125079103144601609201583393717690094025383529453315594867975784483069817801110918762352340847052200679218795651010124732089771799507093073035976617386399124535455657450091877656269891838449182659939686832540466887114582683459909779782794043380218101941104099198932097575332765281550480048991164821685172648386588827145691695040560179208758289005890154749574752719824635510022114997799123825208699715652640653274457531448627755435596518308795597818598185279345143795914590667347109353050206286105738561039918981863189663396855662858578575881551543604946410084359122721172196029508608151238970817919853381003138486036668123732817551667659669988526080931550609187901639468827491057131990539920274002041558967708276957268559708163169047747265283774902612105595284017766336301935163194320367909597510330808931286007644228776904496451458758459068448759719533798515659355325252284983034211527264583605255347376541678158615826054200055165227636710851353693880653705761710993075061091184113672299656945995573950418430331490536888555954939928605059418170711613181375845837384842818985455231772039002141562613329686064514366698473206621299353907479891181586183076282547412419319691927086086928353280204454109820475014179960503614194527026617362511216557656747526296413015753793541439162587471008558917890157547160251421771209210151719362019826121999946623770665271642077577648958921163283200498722194735103968941668900267259777875222499084463342858700707364442891205520719373913281636292846157412298845360285193295380059331025252803736464224935173435137101543619540942656673897380480698391747811672780852551705170611785521408817454985989513526172612887151054472052589695045568023560475128660832270598279778138702245604840752554316654391613108526051608815985161750214543482984464060640876315580356710097362874662708008720656242084219664010418220706564504268179040768376343293106550275600426085515882783490387797314682914704547557360182889090352415671794904672454910128721204983397836239196779034178510861590636483583345211467638761127597033634066079696746149365044047486079323394802733147156899877417720226772003467444012541384496278240453865736855149225178420577698291626869354517091007505229169758543306528033240988159385160624295166507620682509543110976264635842434922629597116698406013164703141971153157665066775058061341458473268443973960878026287602197226132839796276863287291502340183829166403339964589097253991309024874342880642996405750342617739201204583902562310601640068851989337522588036353657735438025975230014610367044378982083792712907542433910261156057897551373202231613554028650755663498127758229873363432255255975487270703215340475870891519202637222420973666623219989104220749368194674604082507683336789193261801702806761249679246798537748099548937236660672931841623392802541472503454487804022896601327597393436682281721836211253627766194639136655497565707912704808927874274174441178129012629626911734431670108456909569935422680151357346600257116555645652518545948034802763522884462024235286580903665648180467603356009572440010123340751158653046220981198538694727611314369738275686065602457794218476086608907384328411575057694595833638314207570983114818007043058859123097857379771391297067242699774837592815070519169180961136523124246667957400980481680493982143063706796641446463215377031065267774545910458453308106170661269457464048333915281058832546289829920380415045918520115826563345886903149708533635979496858383448462262983637161270582721444800446187675926493489625027291605070308773099250180688420032046274774743254876053857795718626593694862525390107561021361486614797378879042105579532231080251663046863434416456421749130922479764820674610939683176016033838226348051859374036675549009517655693920957937024014282649805186329323619095365961798462109120756150728371143094851717421126409498375036564401619976109276781814174897553981677840570300160189818896433950308696289741323503259262793344942539219762471944994468618365775419532635866463189152285188935071744958075955483689546146119252958239765365176046174863519881398382933283384603278430084905031392790667112073988435286031502465582077766079719228046116556748601779306101523682071594065858476142433961601888257382220799849745241382959319286939425516775177355452047201381398007032922608510623157927317571003183015175438904698677820853732214902358251846011247034707390201271069955123544068271252119489392970539869495106813585194785379368340321969218186732701922948257183510910152667722053849638899461930041241686558001285177457039120844788997676374221046669056484295799659195520940857032358442193807473848905803162967528930578335234615957927172127140800114737509593513380537914759430743213948556369030632444461182891703553567885865423345466441135785784743410399964043449975903991432766130086424969104626199836874544786520316426193352728644721480558129872714105861857069435597329755853233910770154930097488664582159556577027249207418430908906993990069108137105668911580340070234042683562850585240079231075256548568900639007620571834139414458247796029325874259113459753124433259366536709873841163195624031741318465145885961635865721384820478662242182522141149322042233689459837142919928172064250965228716606471316984295493451658909135912903708796915937692264041042546732110631747892648376318670171332984262606969664617530990543356042006930220732997835681115306039622070488791446364207657209567119342626629086257416233002392907540634873884959639592453495346049005920689609019236656240818086539404433755189761756010979009726526771863296181837495828776431181772659435117350530619161533696943371653089715905238390430230134546411607732559666635750717579597913811471008308206557436588752133476719196937356017686571314931869596716361260449864920653551238014747377882857206642862198357294539069464100024904098002503529577933525995813785852358402265560543795206951199934610867391641505487253783392025769097728278383871247375308318860274694527972374588874931406712178011303373323864222268207618599496355078791249563940995222645607576332670308584015149039057237930500459300704213428759868108193318264918522200469936074772779667346286595668682377479651594301849670388138932557543453675406285344695327035577825638707294241210719034425797022810661772165186270416124252768504509627282419803075817757455575773381128983820053995470536657904801581111672684627417893852453706445967813882302155638144671104644587882995762401461408250308779364600091840441148076261920523079987251736592397841247554014687996447034593727426411513270738104894800440885219997336974047280800709020013767797129014155117101614551805595790825761332938623779312015909845226228903102392765752757580350319138190545573936645186332245868137293938782533218577322375193574390487731818835130207158082103530813194508168716113708561228284472859673691222524171879598364778134086354170738641610161150715306257523926303873759876656313774816520897582260760779774025123466851123966614500525268035119367346749981036575315279843730677822799366470221022976758493195900723716428568402773369292217072696918665622441705170743957390602564239960401042497463228995024423064697963189078115868976405685022478574128652693295365190969775730616589307554335289870017734440308979438341633236724224721250804655059007833077174066718221834955887365336236973387123284505579161169400886284861140666908949991567052145287144828079191900256382061468100255782101885654385278495634859798697669462517911828590776249493379057125382759091512549478964727767011420792350539838326556914448749871140123736303592645159432973962484626545582397251095337650981087968258614030145699134737673495040747244464074628196621208492408738204520554212676936055703948082564002337211154573041748832282614117524524241459100398062810907138197440607117545165374322069053191321324492358356133272624561912851133091595463465352957252563477886087210831724117771220897331188411280373748959992193872525893608510805233862794266788883664155903604479707848897449713125943016329196387354892439965845085376604116882248762366392819109782984419105315911885803456349283896663309413583911334366217715564699013936175236646679702608171803420720849121945889417568026863437326802498558200979949467975239388129206367211557024547282731407363311178567283988392614342327349181368226380874889327031616288699773630114451577656939746331505097713302855829273259438289350166114994136799602538762227153257295173202397359717620990049634824861224826923269444340478719891512855372815794896339565775113334088308819815693258240240853606491811491618164827532756802778047159170279979712924794104757840463038485426991630335708906281526456214041423136544587194587347281867934002840686174260573303815879827322422940133631129508638056811816379158619061711348187143558066858780141667197937499033851341500325603944641839204045731719356090359865411751361616410333769729057803642951413440080398888713003221165708260860322338339667350459864932543759668113083352462666672639637819251863897941299053035245024283915834467760420401448856299040616503618569060689391016466442790544176384790126487156742298524650769459451311429512143237762086645081108485522125426114570823865949695323582044140567976693894990244462182337898898507480449554011339506005234305738298194084532822883718085218132087924005859914291688358216177922901891561133081481778029628595753044683332121645606449588597265143575680774834379901809462937628270831057756218401666552724413410771469146987155135123467092579125113561995412625563733078607574036821983689122246579304286981535026863226153370073989518158027222901589954013945105988192991178310087526160858451403571483340873889795134755856974516017845637324061332630276289838554606734483784294908417161601519873692999825129530087031832758979611584348547253389469001221270585453737333190251858829081238595310808201545838214347086112990709468606540406650792445976628158706521485991289362337852111926180339976787837795947827672830395704925318105734409189563307631789996642311920210466349540060836626116209301416211853642079900662951565418815825692707823377201563190536095366261698595210408892264370888428621248897812793821375407935256192078540813288401617392127257298558424447072454118120054984945241423242890611395731156548658112643377377620296672093657336858368607271236065795099754553881955943563373969087268342886954903184303480667988321972495023019022165250742030472131316264523288992522810337152920614010307520517624795190927249003554826961086409283721831537349959543038748670447081283247176308160545386477586786913951504749416617228541920123716527277822653301161573904397084194882609030389270890532781025887771548189170833515835144586496472531885547553454676414763358630048869506242174993621306173481520114536757962251424207613875331062839944517653570798395610680617957044902985581439816670433785583232117079859123970192166316218431901110904282672409471760289691666574103937711130785956791537342062612449222069008307503049470926356712104540006089497962429757264042316002157900955274885161706010660682071356078049887818070883711208804692903691016323632688621864767858858574604203772228565293903624742362546219634816769409813860519976815912040793373036185549529904261310906782759458841513651438210817084620489691006508767164346764415572474681364356141628023128803490807523321219355773159617228404775650011726086704999497845718518559380428660800452368556122671666965160891045338793339570928196572561660252854410099093942738633426173250863834811921538807416760703751907861885104328403384351275643350490787341753987353723749929605458802504346010465570753351815712668932312161546293201380333815925445614948442939751154660325059536789650396643352615000584517953473524253431058752939726309994917464985832660961372320124218237067840010140952045682353440580488572832950971611330103820529808585731013231820383541406960040716601488553884118164591228716327919726004056362094218021449349334911397005624055158771422896645169915047721222610258152185077139915914500344776262500042839740279496015382716554356464001698170998434130985657929159929631058626157581361235721111842411049348086815643719098145253703009581039667878744740626209074530363070712625724291579121746362693982095911568860839374221794934129638861288199849097494309417427827443012211255760210507894747119841129194044855020893995916050211470735358495777838069585531102405277891383602334121279670801224603214495103927299872044237410507913813507679841412938946124224212134696955999162072199546677072970969203654638577612749645707343269746691473106470511121425912038874328621733409731795210720473973490996117174330984245000811056713042494019658629556879169017830829215295659247162177480450139561521239033537225630481912130427171559385842422413391419824616350089122220193483353972619441977323833593440671668262956276037402631250873118370518750638826700001927787895260734619948485884149337663444088134983691903612756784303470209989227432200999566983651158403109267187700136496735799499075434455643644064377545485125563663100149246986487685682328431825185959679641615419850683372714023013769666923842177895046136786413294311724340408951938201053264250220732992369824923052928024409903294233124954529904394253485481531657128448263879922236720138611254314405869422796762538658929714537975931975516608481608867818019663687696091811916575944023407454537521050615590513077624378028994838767653861120103930978556862980047198276379488463229006071277636364405672972701048746535864131053614759036688006931877084874729327885360824512945111565569754747510373303790254947414506251290810308532171784598457085066464854835063430618324726100580675346548520449000858655760915636867384325352701533869467179188131104950129602626560395298768702318135276376474807254223316296925299623894198554915066106461919382874877944270222569640120574177160622176113278063481613443702974463671099414653738491399742403864825847077346837749604974289406386049009686892011590125401133614286577986900121490729678449898260188991922855333045823683884959820267127569016773821789806540042334108386905163423272957208483777685651458235238335698931257023445520719846874944268567946371698883828948916547180770941109564329739998896807191807851219729648071329893062866966555051438604174204221753522009759375063822796009638606098012127233518777927659673884547677510405577268989987125233113018961185451246772166105090203233891116744901528738234715757508856758583135772177213496724991123151272913833736820677270236667866550212648169120548398305585862471823564997990528517202395742598785747148660640435675494654266420759600790445414916513427181831267023850255180707367567125964147928780790125531977918514880023591977930119153494679660807047423132349967974901502706004231592450415445500980113525789572423598440534488040268576222849004984014664894192313258418480101559125639096505544639365091098305938302809929163886663278936157206283817525601423926457259830950039167925800241703828473129743828156857692821723004804032405029987011483257315018930221302521144442333234399970947230620112061841548907654357838031673446751499900620104912254295187878319363366592417699894880480590174987504027057389313578156585995649113226389295366217551783835602941822424077225646760865078165620932881762842939034733150112961787534205143107502760772636092828669774102872585824631485359612828145841518260934237830414911691820076019193174444871201715068405556164184424112427746157542095718208950633595104774359877748895351274079451669217508510615722464826085162015280282674406815517022651647453943434593908604292202161751231028673693928745954110464514791969042665502400715957069001853179753789254535154708642582705541411824384198203132873432615756681182771988541812562436492853531026850415342019042040518859349795767461230562984292995508188034091196067172150101333149234506692311619706731758237529038545651426614550304282080050644007174819342441168228549638622330237724801780003193068134373251318281685486251319670574448646188533813711621708765406685622199416502011504055134994571622061951498375916749170901342473917232625780892792520812144414596210805433920142726513223284283433890998873002369204993726447050453317467605775041844137506590593397333003086548562705674737411727593329188163092813673135673914594820687065841151470017496721679484515805573727026382290876595308103050812377225822304630897332488152827056454271505935991364546889983633819505655180391982095938243743711462831892953340292681124132127821934106354721036669145608103513307590898725628463954522769823775715475061038612965359812864144693669933980481526739351897287805052756488565401689717160516165135906821224357232242412834711002465786501508769280365978240204435297250113864025207004740374724464978090837166169801034737211570058315817478045736149597860495909744857220322176821343068073264156603562572380529133764268607804940453121575914186913789162384602652581432020377006512217296319450305318778421397290838054584421073330572417189286540614028261162383664021898936027402791776567639076130786951446007523075040717945567963802464595648414383413457170602152899288405639139136564766623821718989706742884377398465672752147294558448079735221900742358226877149303690239194189508829523501724504662836126366965083899171130618899493640777761620403995339580447111891690326115712564104803204645351979223511974906331746172054854228284997023389484193913261077591539901284024885256381921907415085483711244957530092920472708677539086955481206079562180515531082373383557190911922205584282930964610523697897014614894398337470922539314993445778595538416067109609747980912136662830937098972005794689533792798137895290368753065876521735315003042553247407846862903157497996200166752346181308212855541199059078756788224857943962883877484813842155303356026546965511216492812077380263120475910932864722048889256164853639583848477210875242942003186244559413941650643468250267012179927552817396064132061051709644213416014335241956613516287717348629644364796899313008225916162645799556166964928852535236542785528378716722113479009259950826231868055012649781930235455849631000581631137811252071290850323232404401686926278185309544045350554775065014670276939090169671140431720562680617337933685605843871764526449281139579607920065183574949166475839995309709613129908184176334091846931613793130777581902007341175774149684999461558638256016572648343664775825972006549108975929378480058915974767239824690506024325462500086167839200496787484269122872506414325477669140507694152829725449079602423028620848807670996875839939029011311616313079468863031997500648797620324080323021737429495169579721186161632333492465523993322008384745211316698090530343419661859842834445236725255954051199433986931993374700377205488526340262074938593117574271852250767029583472659917351993699610708390953211923911488583364641821434124174771201232254998371307289369704724478308564782200707140438558894702838297909393396121829971332142561237081860422111858942453443937741474185331480874054413614760559498971399703035515096876229252256983100226122681646341356081213354221263139724762265421410236420162900369571269382801282602601553265909344237967541394019203037208436456207322045772877955391538372051518742205967813498588745644642136476372557239143707762715503481729552910469952763379498900635572911979625335215865255846321078117603148510252073590396517549886005151484614079048177977737088293609939594496094028342227035963036731476873929232802860831970217491639543244606348221962141644715386220969820466749587535172957490368261511475220018715221473617763764907299962036366776402720348039368421307744377639419726804698669144150564305485901424937684508673074355259259725431387757321892074460969651978338172729705318362006171963355120556404881666072078642466293447527313727399397991451847485811707701293171746591589211852627440792256192459552975373076218149863609125791138335409654652092085443796432060574223108842094308297921900137388698202044729290194248238936452612159286046665553389425324071168463456539984219917679766901820533935920578288218505558344381023612336855359968530541084756623892737941994920154230861341776256757410589072818975656336780739324661819821201392043141425847157472888074140893150593596004728028442008651125400363972243464659298787431577336687576321829038950119802970404444345063595158848504735014074447605786329154003172111807672479702085024818461993004114737867196461109764031951046397186102626907332716443145420769920621857606088567491571077041228297233940997848469603935872958850881116354339400188238241460448911091193471175500482705299802810786283169892771563177206425177374249816234657876174831947605772771916438608132922773197124034520320008109426325562188829016747200015406898486643758690695069316093777767651310839843709354417483871629786756992571272837254612529197109606892866747120780864969506765938413975404545059414965028552242644185141687612284096445313785746203995747026587222482397485653555471639265194447911836062011548679237982822427400625875452282428057969395796407338532687468761846860508727752155213049578954953377907731738709387102678235719395157400419790254671037527878386810796397150457910474138086575559622646296756267204942770473974403966085174621313895731892291036157041349626851544845939177147132140074607673750076111398832487512305353634179604405503454147091705880054179029806177793720004702752462254249463515852095812690704568620394671774432243288123842538116777570155497512527694546933251761958796769751258932307181371614592815265436146459151289961146167965266920555139606285201731421802420160267043153228205611291665496704682599547634158367652317335355984746632519627889346051713624106502819099581930361103595438449167472874852359665550046638740377621646737102079646787364473184227486281600010034077664052441333944391915079287582766728950949416437839904661829245631395867674379165672333427589230287116733112680064474222579184361864603482013680572666828609882864623637429358059728281888881854647121362677966350050450290315260470575042152153585923046660286470069967909145953554000952249843649537428446807658338242127083926184549628614026058048587287785146846501299564662500242199700165088480604654782898315792669132363042053411448046171915675082241413842571917131034950688750725424411233361973489488173836705957456773302280360436702546729985430241462560196313743848300194960689126930475797058835137546572311698439103513671180625980338360031354129361824562321390590078915209414274360518520116248909940847914773904559978848182286941330742003477725861116340229130203902724381417638624480865457289083409806961822778286015290548471580386632559845346940091025960197776306181495048313713225683773319515359172212416872687796195876482622794617662857262784847997587704455673637033991756979842578000772168664592589337662366239598045907832831772809600663826410116535964127433553101384425607780079710961667891425226525289256839372906071094468458627410991493518650604888159751955176296879985962176659595174498611743094758480586957317048868398726982818685458284592231032480904697331602106221808185290008037822807886183477256035484474391344710687531865237858237965657417917940437579235043080089554565320582378602615225087343850495736165936615868156237112564376991565362276521544264981873252601105155902800256612900723216322577523732883221337399754805521032692129367703473691864015464110166979468129908081394212811519988588403996281727044823841646504010707295402444146789814254585167927068305885978801283658381740137751230849236737136066821501311010569248363018162243382273767131751168291624256945908475371161190631182555595165657874936896082645542488858235479459654224226063754252103829270269203596624554750546303134602251475862759550473672075207997408010996435452957741761962171119558120905827704619596711904264096700438338688835259301042997539855183631080717606559778322464595404809144246831671641762797569876822857933840704626904952123909290135565357372122713629080122512314883578804022477756096253727690741699781929534587865808064230415982288898091164307386427794437554973907064024260506789561344843784548015076344652333377529198457892273605710121940676991850041367397555199301840440685028605419658765900076332251491125026648834457507808685148012797891243793198101481120104755993051124205871314424559391986260463371174805199161106635360527349505307665141678409114871785369317959924679936841517016819290651576602742234397092656415026073006926610792199159579991393795880358064345777040055692594581445000609821777123322355578932176544669219520193169966395199552620455984071755214623667614777076385040191058055209604704391950466093065553196125833653218982324410969955929689569832404555516750369647399338947706671219003018213106807386708434129359864073879686342321256041345599389211754871920352552950821117586887566350695951756051352864994298556195099967792799583745622118775886736891572706515711202327257995581546906751024374840008539898756107795267233709464817213889615121350719224979715073874336522581590434766807467662722667572985978655287674804209382834447164497555035234863348790311981596806941550110221427025522265056988808676635984046678479502754779199117557752876601957318935246764105215018534201397951505982964123948601271269783089677248715374016121819712884999112331688326711222321929821532157716713802267730520099430663875552607254451500084378413677155840454819631439035421303202514895238591638866614090675828081627338778273046966774842619876292517865794153822168987117872766240790531924703815661416860732828694930197405110576639101394156282976177764518375607729392329762157942471642780944380619162345419521485471850339311866518784684171178892714830648605221382760373433717389768955448982633944766867462939367847043751802794543630813470902624819938780106914328034292583195419705896618220721291549466520306423235765792295762163280541125703842053870437483555441731909253175326196479408569720525571572295009594030258808127250077737786027450534719809980291667583066469712192583243657040995311656864706200307048524531163021168138132667171031711865665020421395648067073648113541144665537013896926656150031537008123329579767270732439190891059032810307299899429307794816318580222374784111320357230889825877666419451147254563322239243707395877903235625527551828929751587639325785901506061478795743186299165970339483497606228628657139286412216826294982011751494741653792113032891573377656379609663556154242930681974315592193857354140946133952744743097475624450267330526983232203812288800075345449255980442301482280084430807572549559299174402150497792388643841068848886768938943421266573444059168669905532292008074114522771439066325602732049264386717773273487159278303904031317040176621028110201763737298911394331997977602082193127776360303151406726494316615747509026390885262185914335769361553323137647687239272038740241927828152529143959666765778341628579859607377476272093136910164155327474859426968895601078998999383327565865561551836149675651892001277176475924756155446086056870707113472648023139875648221872995859537471130995916697887785025725392952568142207343714258556693878780907351808984674337604507016872053074373594610407528214517337464095988068285987133518142699729784007544308662538339018779176347836558683496284798947626715794272993224921404283382303143082837620317330736909150938183514750134535901058858745266883873254684770869944175910970099044998958478422322832018454886745966240293053468461367068339097103182194863885755760047046955457362767125252815433421738150848165033702192417708681112248004190584820701450119907793054776767029201889918167207625194397066095706387585542966044116027584025014123012470020768748309895111877376969622820722387479280971821409657689082927443446851815377827198602910518823923705346238536351805362051675141062590669595541875654125656302568475382816236236557338723586057736449137958973816278632270368210522555821546964702890103885530089512073736347760582543990353259283673651532515553115440810848410380142283070306043431814745297522504741285613258146737125920112896193016074580190053176862665625091084664876729112979132399067933163235407328883750699887784531801437251709944291843936740327202505045234239253948526034461457942105491671631164614788455722488357032123017362644375122586156291457659157521934214095959104306595663248512375042788021237277030745706107570677213193438560423470373987571443902439895862311110763452995610812992185294703610347493705823129489782015070791831170620016028513533830366191552446460885048961375262871077864442627087212701678215538137117595122313118781500282125349027404970693045612940690103854110587451629719835640412934670056793417525237796387657597039160513562716180696130409239499196324557763476536683973621569033924966192924461181780295211467634427779680386531235362114199131579160131070274748279068303559241194866258656764913388711582842356217965044225911667987480849644949538354676350975075673132574053288327516730505073961662095198255402848366235089498459924870995077675629418860511409303305331851558543507847651951271770168916001661138969059094377221450699345594158784663228344377467430828963630398519609161764449888691200868216412338456406664916586568457863532820981432288652196025950164139220955164596478453434762885567832275584353859891762413640015999228412277270399630302338975619150434974164853646940318707586964377245179726397926740554960766791186275720549528700985469251411498715292781923566250565660771863263226848552159835917671380520150744365987307604423606933445356321531156955210057727239171969319027942343764471175985958422182103566857579987131027753209072115915257789522795690114882967825249345070646616970636028800803793676337957917893719431851027412162926427729185616829514155548900658697474858680912726989657373865819410907514593431671293217552839094178582290863844704213157315844266111044614004241234964812458760950638544222706963554550446534406975116330742433170695687401992040636532807237635328408266608137121013144643491695120411426124119279563837415799079474809929297531243966269083654963433999373787499131157573043307258280831380406364064370906942561832706590808004435131556556536668757837839923635412839551629040132011816332567001450141617897823828284702767905003740455618594239811939825933029869823955873081781599230616927818791457291236366658278950825610169805796873195046040954978917607220244454083800305105827453548504417030656592547084674363643910096134954725662832650090656503605017607667696265079023999853432737179244396915591945128018763615875670270821534108130832751794348845825250597590020570479083349668531012180057996138400462858320864091557987905064994980604764880957503557601816540279360474961784360960535197781164181276014047860884168554766501555261664667299291034676515699541332754260625817249794341520207834312739586615317484534031968155377746811974961809475134163042119198444552989283088359198096860722459322964848273442279272555776325336963418265749679374757704512820456723594258542555004108395517099460195348178533749544647833318518553380426760614217232749699717967743675179121635306612135864096209926863091638990348150125747335952693570497934039158528930291033784435866594502638121612528159098120466614245013986216225791522440775900983544435921218608121594423459818940723054152269866271403254262896929041155974377332497454933240665658168666587174539464460821244600479151377234509869705806588302943741474167192348983497177006693871735726457903978323349292727961000682018911450920773625679713043752377484081485693697518178756550886245669746479728577657690531896190449018766586208294816679232557010450418312019362289936312241795426252392716438084204534570434616543928357933757661703523301324792530009818956418823065644789851397936403857717696041704217720437879222051411985989632029353041281683888345807269885412473385615360149356844167980257098436266186702876044183137433890618025714218805345819975494941593699626466732473846073841372286442277542724458070449682712065673865250309852379899676295350768152073147681521528097137627846569200976291185021759256159215583237056226659113637937392263487783645909026553675408907677197305018600084627708759736944649732505926532777476251865013070835025205178826537030220667055832861026285739903056106770412641674481480485241596000003282578276681011032157718891273848341259268340864821038649983522095010031350290218640930969904719743680572975369820974007052382783890538956289067205708076615741308481816515955658935729885137906112583919108856941032990873910972294991215641298325100187054259062851895883639659366473364256810552238863082406173646228621248908419038701829752861287817467962058889267482137979984326974443588798383111508479686192985582951781305207439495284502778435353213780426887571364935316322248383668162254261735603601248965725681298519174062745764642138475109613453561442246679960071342327476518395034771231984538306318493783018949031948455145558470954300602692262318225123846195300260708134806734288201932911407149036535745917572830761787906248051911519791282994998996183012187452215831417466461305209138587475116765692911866180976124116128655840360082548966085230533842420938599164596753960510460901979717077925891368885453299890649332616894927550037121569329098353598904409035286340992886555617567197991143045438569992799945455326376938056845691482574404176562496996681908549660191905651297388122574824591848152103291809316847951925059030493493026267836107134217750547639018330628037318268173999431377856000028316449774015178677595647901122707388618410706901110003933640054141707088202312404811038035322798750373013904427482806605850290843558325285742147852672544821338172130351683081075765259430760567416701285271846715179228994001272766337699361380105998588624276419367579086103004385601306243913651963207168656905384801343560381538882874450117155829586762334752478697363807000653439959750911674328291077878002941381619400824821110000084167187390394767271582899869253099885587274445146737571236284424019330528293367682125836493919656308426125033127972120838283382974094931681365893364045994385222080947886869840419930334980188361833663192647019103014330765948591700254195681823457194144105725855023403626723100151926437103905153486779980511919495934052964793703622974500672976432616314675555751526323099417837461861043065663421083783920989337189519183034273957810765169945946262978149284127734113057323123566367428398325835517038795158134995262642218531385842881389488402731211195549189777750552654485478175216417499265898230823650568838097125094139886121541397090657150496579278725959464729701597807205192757512619100671736163331559033869801318354683424967282850769586336324041215587537821293711277070722650605868236653304335164189243113570743328443921435655378096549130368969477229544470856189537403278383969523590368619317770057412616230879947123070029748713851689642466573964114027780243063619175880972497043698965953008423815307623864823747720970061365662233509513565569681233404340879626634606955406876824744718752646800675385827369739602465309905210413141916523178958790621144976761907297289579104312171174513088875551667782805085693968010070147077610263708892539709932763611496485576801461908996548493611148053282970907655300114578814760590025726455567241142932607867376226528511849260528100066942927445438401318787439612792984664011758976516597855353766467650240938866613139212572347238341615175175277570848257756287226516286198426443651873978562221117134022451783994453536192680510514568413609071844354768529850727104320118692448801147167777808333668763231937099470569602506260969403309089712782991775711332926515183474033377726245839789840016042171720277300615111131447248912027722545898921917911766888002019717235580338226383929847835616726432943188356032173490446721901671244571819856302596302012504206962250659773602609092128755329065159756464918456162175435140799866130865530476093696875446307789511774083326768254899513172714466905594490794594431181873935943835732329316344693096275707355310404360088853148011461844834620722861170836518653393819710264950136792218546652803965180434662376664619699237857312755003582017526170907942775447726766787662955400073471600991033454551979658512832005359740212640407401117849974140240021835627483154686138565798816427767451410836515563883431901568905783267818412496647785039190319696165819517827887933540585123562073322310136398573633286648132326002844482400280885377808959536635334973606398121081828782253697327576886566645693540854225750921826169089243457040993531219444057840165632369837697304402754085849514800135027002776137604012612218682140542132765029702593134889783332949657508369043056752104035243366093483285350392870883208274798864475624457469849879331863227931442487429619646124940761727499057102826170354082792953713000569502665185736783189916559819762347250413091836331988766587917825292825702870013343563063059562694276240083788682832603996293415758861361441916389585489443398303317448446490936636493439314701243865213020587069496042282360735532926251937363413794518509030336499070444224344451727099506302861845393276548635379754100157857374440704838974785218374544229307369051026318308028116742215654021195889516569068312461126499189623858073884686661142600826145175199039638246138664881578697836589644091350500826215392915988648102030887704067058365542360882848157712120843139792774816959583797382018361281873177820451856852369327199614996628542128149477892662570063314572450239312678667501874046447883162992298830861026497038913886727747988308970884229901184661690676938096515557845997196762511187662400573504441686483456958973662489169149226937748423973330000462796730066559662355062218945485833381512235626028177837603457703697713318719106202772681809710389205429608605627987002164990228254178318042247409340093252505791743215227969746569364465116265828120341944264484479933811554551290719193318845275745880570056378739892618871340002284794730111186894296235489201185171138532534717866294166116937388562832652610318402514668076037251769693532013527567015830195912043525839546566557840611316472837354191003313688519310210411651601920137184786677579578163083992181843279180909475383755473507249106342667045023146311676548315888593554330421846792663905854760824958236151160756498396834493997279394933385720807264108959314435027637294410974179607022900849245834023144726976810730503639421119561256853689839744790546088503719672504679821373669320103432217457538946651343978621133902360842318057861249228788488537373192772108990322024019403653438844149798757401646688269950444120849836580403773392180797803071512875671089903050738508249574439191233051726237755534503739317753245088351319559784261487733058238680325558085564391769878304809279052298488773024848211292010152316239256393896687584002787375273242574064419628987676080355539880529209363848383570576680631061461455862793885352087957375978144965461136034401548891096002189362150566208587282907620743792139113176930508798322173846493254739011659249275026113457862758504452454612325558088554229616419951850487384990196063030233420257406189988973525629779436343007733402174098430486141587924106553400270279959482677868189641846206271500238069287189206139814956917357684026741943632848761290637150599960481548404941407722617109072965714367791866885641388632078376880588861705518440293900839894543575121128253697582621667123712952981993624309723802393338993194725023521084966034424518032717842669723504508694089200236432507473322708303767959901247078077127836798592060431261660776408761269046020946061225701618800072671254371707328660841976799123186090570416376604294900184613829318066256486946399644420435008060380150485280065035147057045503138081923641091482682583354060887655582634603950019430557554764804779098993344704068414514352182794535096813916625280986353262822633001402642632507170777395391637044888746855953579904572037153961730358209691152805448009988740931584929950875695995503137091133021569078682558965528808794073760779196970603117058451432182202282222117484010129052333986516755847173760052696460736960044974093936189505426409971237750546062142245500251247799374714969551857679530429375420864557803273777186759591135895238953388441091603035736470509196506407018660302792004213871288463725546963272443062566917872647534604323899634500382575655896755188032331338680671753542703790125129625227940218341162100180831320524251588469043487596788461547426314259014414911685299250677347511209377810375027734733964875965969540215555974284806291042627337666919772965820713987976617647172674882075138294810831232348955684143471575426798606653508017043145600861731658562899214951912616154055362677799159438006693746577990015795978099012312887429841788778243042116993013567666848541064514130842981824974528045979920884983646557611143852126719817905451846206038808983052031235053691079204546332997761504121629896174517095783448708874861349089782058508366524654056277224201423494842680632963409613223759075967702899911516178329851394120005001588615349387607865222690414741576972921183102017494522116599074840754139198218807710081959443970024944635124804860543092024347342965193206332289552722760497871568246244419665764164470762701230994990600598666084923454591235470064536477291664207215495952936339707306640351580316920698193369608466652302842044329449304625625213813250748696802266909964471912805124018381081832600332734998209295653800462524730280945457361527047186763214615750466637110159483691442223844468330240726949604319581314253643012534851877250648331326275641488196713261448334259230513733005297665898104814347500144283325042121694702497700727441986560656462460131400756814761829241288463333775234003172493849222079173747635881229884066503900172802205229743779173126520268495431018451859530980009422761602167922151349143231140220472665146800194396599669966910505766575189966333503968862554708145526285485691306216472193423483337167399467195440585424799581181554309322305577557853577114099942533652880206580248898824079902433722037750084047049306384600837802429716135187141990236253042441769519068633279149689859067189819386293136285978945876651201136433483738487966370152870909329526975880826444718527062229091114461834712370634616079654568847400314635860163488163763432625760523600142108312849232866378126554131458961601397007315015763168534782204924954159853014463466620573958174864778753738476556771878683017726482700401966187127833842430460148078068375423526128930168281176967541181776669222603573883568857490731221659255064582432356845614298556766317679505412059028144040595818259385957848953829794265355075366663265462091183154568416389712354039217109059694533172823422290626116113444617217744717610022174823984379318443221929727964800443215098454620515573342588994055849780297312686381525676304741025601571038194716955794328476364537328048134196848968224604098084588984669503499636328636755113842393129600924627250354686945766786872448786693269415192311094935596952306843012289957867355095664350283572802962290963829905448702444876907414502159457911878162184398158743484857944920247116628427108897555648588495933127328303508447576074818749294074609072871827932091388647352661185655688077617659970504261042487044924863100212140585343290774853571548109050026714624156922009651813554485430233298855413757618216371391515829089235258745617425800757636478338742851333041790132354238564431364364543869004390474348712496411149804620254096054408303609470726354334471862858857706512105416407962647053681660240691670851696669792832270681895495844373524840130989941643778968963459291721000812644902487051271365457694737833755660059808434388052552097345654830389745529959852737935693374489130296477606800966968216834797106874649709430862843979563763655579340447835087670970847096908676635572141987220480268934843028246565505122260646845123615472155768916065040553597281019502501258038806323205005520626626905442484579350050723705972554926707030674462043257685982215394574867838518361243626407915619097351935994405236329855200324513441596953560913652048722500811059037898445558227044358551709160966056720891413183751788978445498468873121566701083755195035056202146626663207321450196151357264887836578842196475091119560434363968641371621079644451386284278720917377258972041766442868589988469969614515254469176755030095740348600272669611102556851739334487077832873254536969822375852854502477238038955052265229581743239320966426655250183360435510484404412652254992792425747058998612610133078584564106002373618532937907650498644538027007081059195877973069310781056459217502392140695588126094687924865470984960513300288184917223341896399209938801212118536780906073870205859802197562884785589671493876448923638918520978879579099873475191416102561240941289747669304168956893832412558599774620566607390177880692193869729049484429292843747127230443100956799352457661966617886949280450291582167132114356504177808132089508063202304329757482280527009650692288304257268589377537588684997706771660617413974514141293390338554620065399530193430612311318568746483269064508801861633522959478368864109189509786896055782199920950438708891587892936397024611151996373508910920678717746149200743707043098564594814089797406690175318572768888874627776022542353855598663862356317948805029330480771939215157175234435255353467917540064464003432131415641172178637343060591749417373615151835959667910452240562396601806132718543728023856204671244322802622852173358337423669379166865796596392508311018120471809979023050249848612297935407230920508352941200358459327228950823364772288389552704509088864905908011887247535935813967280901757416863539366296532541823849684906172721235108330638733571603530682901275400281105884081883565889951938661678200603844183082718888068577121929148677185129552756390957546763126266711240927505611908818768009146051810808522259686278649846193047410611079730020209616723685073278749812240065905904395970363761128690023159030286092905865574083867794828892838569694573286627044983126500687210653369027839725218823530187634126962099393479062392738298267554212638006281467931739057670766744428216691203378447504388606931794254458170545115097472552939360043703907221689006973498539646578281549151342986066655647367492483824173279111102692220640695536641226055853639959662719253067162980788079008083581591680365515589825411743220677622511095768512824505554646656783384255853956892883939808187592152233799845237796502475809678739157024524682488056763688297327951402565334396581865284069952892578316857518619688435356161959789213000992407776121676943856255881594016938574013069311509661142988299579570529363910855801727752470190318058610456951570588722881719011442980232576465293609729439423571051797572912939143756320748988526871035249996544992970920349498578100584468908201294149116857612959366862726637581043766218188962768603366664238631925927355979385731651980224181554185417791601007996550355373674604221455773619079891471354081795502618945209892168162961532369986287304242953842398861450952223306045281684760408617760674550337915652949972549795265989992523543271779534022442468107129476110621862260827412463130993609256268879854849129269339019824576613228438930402775729225487453988083954019106125458497274552427144212743408631835088884159051496293837788184261008999314980518316678203204747437393932423625778399606612752784158714939627163966631605491897265109999799585859734796474931571499027034456331381215779455791723428216999238689824655472947304436776938804991789032687791394521335452485747822402105843055723471444312287058350745178015419980925062444683927316279439107563177330777106666354267214567732201205624547466562792422525575760271340479956459777333451359654711507796410557717320409504599961353679377177033862382567048058337437203914569483145532947540336763906147878275111163236427408934099372794270558988701288390523791053589746629590006561944378222346003875524013710998600175426498271689291483150125430212303306559146911078825082694124721747495667660422455489104132640591734941690509239518474611656596648166307303724606029398672522415782554861322575367841670194305523591419195989956957994133219799304912675482297707039524655447550958250435918721233855589150908712288684488880906071281818992638002070443787600087921750568807651514440671257078866363533634019484053496712609332183292683574905648999404308009327063052173558538552999906317397050791998091701485454326519522100723237618026615123450662238032123323515378500424559854201490148388908331020867678065380444372466232458084931172628178156995632367409706333448870880853873424889325189005369570325374550849440919877507560533492061046369981696609329769435255482052662337333713667354872612396151796627746290011947103494313491368960472842773169265942021167077968107345040625166788945752624448837711489693592372484566783505389738799701920399844610263830944222830082322304333115210043311265639853457498845113372776287725641442807040826534717647534619842452839910633282064669551582886616995048752385990198053131253372952343756926534435352227997888380923194906395998504196897784753908084430826617660560655146463213887444236086451876440103686099237076121873835522608769850330940128347140536362264697492346769968295779927597289055966191115178795857329683098724630971376897998209057153285798413391953893143991947303437703103860426788285162748253585526992343282961005656824222448494344388730494424321418475599129572782198515586697296125386515588296222580808768506630987851792324682101730110208602809581777804651581144060329855718949142880017618140364883589415946617082983651705721223320503388528632187706164594899907882547765330263883155601013226288655926058078295901024849628490987383553619669222230902918379679525145482251999215541000293940838541970060780531161009949317160619349624330076930314968520754232674505894764107643262760944446490534814092614596327467738472972740218310912681236723090001293854808681297789867632317348829228602764651592089624675177561726317648553615563999840819181593584396833414028214850010119968851770811493554900290432510561655304156763311195228488306785850987172640094046543069918033846480037483522001371485719821640187876762315043713916557162265533164961618938806363771124216960309343785843736592857880254245334996522850516665515387773355001214651156186445848806767470642613037734667948956963324344438788491112778213182033876893056415400874703417838544205689981652679113002227558228466220191286556568815046947953649631162483705064163297245406113102084371813048753551976135017899838816713173807691421231573419394867786153262214044285340748114851437897094640745848504361474472411324941532152217722881703506779400639788479949774036143684592688204598419008132846048954084815886327649631334088249220304544396008022811999039256270170915098682478018048053933265102228351217178042112998621612770235295051244126613253852439896580535147359499398451325884870700279168549002001854830062851318908720703942491225498517685414922242146475782882360495591554403103997502100941801671181395627947605951671433945756046877678935842387034456388678708751602522654075849039423602575535760824558747609384875358981478396409366063604882692322718906035111223996405426208285959922989395230840702083562813287455209766792866149648215903744282148454021786399391679322286370778227207445124597777139683734293271978263534212098724982500493688547765294893632358374808264376749812560617440752486607037415903799509977101334883547470385570808059673607903584828298159737540911012916566854549116297355427999553530811500563465893678499770273052071738441257756890262721188155319702392301520089525633557196394224885784238571603561043531676754897312362160458047742287324547025739371836826970470262387671944563203197024180114657969176109658133749854156633913464733217882800308201320519111138063968600653942829859844332395492363229426366534760349231196763267494596133781335158777311494743016904640971473574620757793297586411745928639170826743448524436538940286118916138476931998857403826191754489915387556412263814640002817406989073391431917541536638101539941197346707793152617590258687944885651204487543640015628107049404602900303962799267133487669474989200532240325589670739877944484341665668011867268441117617952064958681291266938049497993684237267611239897306805591462424777168904679991021589888919913276151023011984055898526723687455131628387079449959568953670018361334246480848236151237821077328762188944326249928370705663616263303350218303936218058817885217413241472904529873308051360692639959964391025667587658435435032611704697890698423169723840063034753065228173339164753534374948614445371497208679857470225540130817310520061353695298071026956603052449497799463715178962027368675862958835181034987834861996948853527028774576146604390055665638527565877955605210540119515774815276514064118945663446119935062345950763953504637943821154539289258047801221782717774449579993164083533325773429299809845481847183534269755689098758693533956362129408431021020241416316543466776216243445143873428778132629909085067241444431990705211500504050807730366783407488462347359190162208247243620964096379144967127143817803302630247778620956879567668461515235985532383926240009383605302035532959918817377047786593460026021578428652871773795153673798565979390870445623175515612506906230093933717976804435867953856350967964247613990658394246751703151368981835226081472408436863134170496026291163902586139622383338273439492714414339182608938365564917691626114578065838097707062446612348473733002378763356475844202083634411113489967964349403794298931488199013672533456829701119331642240169784519274521075076533669148828496617682240127178209353049358913269687669366627321569781962823861920872075718911529042843709150541504351942186647387277765116099120310480378480141147173756791913241237923372166503001993362329625778179828589414038036853302072122407145510992796550816848016618150048300561114518468364924699316160580684688713898437729675216167975074591189064357015979207836219141132166613763581446089624447726955745241553791435648886144783777041970564305330083225325155570009648734813772024241794787258510210749112842997493017437555054709926118304667485435645685913715965543656965749375373747589404128593369029178060770525650143172664475297785958349039406603785375260028292689644681742394085480271287257483664164631314225911940782687651018652540966651059574671198128535979469214904960864271419846353255821521279626160380464379095713187609643944817502531129586601033967175345524431366952769360045224176869686550738921196815762077334934119234839074802384123638304951988028819419702285013966333939984444850955499727259292963870490427517788184761827411230813593044186354541508665852039046150373008161067810875062549157138879228074625219422243591934385858698206095905491821111006208741622127418959719597843531681797008918735836661400881201838030084249698323194675550167710109834843747000188355699301367350806057044362584879342048765643838364171995960467249929183564853680679519785875487457796532710554792572038910509621168019174688723366149297025410148682945755148895528351959071900849117291628997375162747796024186201922493139805732473437949510212644427399260402168335509296871927419252736817144272373261441441709625318999794135082060863915656359096100688255282890062834368723613803885120666943499722080762559937733695390911626418978903708799256184129138966085027883465219615382799472372719517186552716893830428080393861381601622589026706053767443162899854024336962457649992667007337684011063075828435875136561211684114044555314848388148990453733138400864865201199545638168525595011219712310811396352315305773616116062984679872762629665564549258260588006271312653889201357354793530904251028845727150854358931723168203350609071248729694630690135277705445554358690220579871789854965283270661857532458786488595231023470920898364606210720715396201087301842170753467385098618425330334555292182534852981851892956552026397019530109474758156409435653726726065835406136332754922830430479934086584146960171920029258273689709986354163071197884383856321138778911760445617710955323258768873701080290348756879325567504607381260208815940739337714889003006103151646004074064323486224478182539688059950981349725234434395034523899703211272032275881750615186730765108496059434104814484102454486151995863323211829728070697481657886404968850653051655356788486781194169869209854897367909216974253924796692886084186323168075935080492881969513451608091614281745534203643830291201797609178152242020823333494026849602344492447880437453259515812952595071442951354826561293825041496682882306746964539204194679427585064581915279679819030844011649144195235539490066654836833451906566108655364165163364182538016790826601333370129984693123250268517987498264590088374630135256021145928604503869250968549987338321351069546042312940205131490724525565417270574880599472216096082265537035195251286952616880100459887464397115472842885720598653127961089527789170402265991923992334174834298579910791816531520758834933167830494506313424733689051421497218161558209701189970766920487850811140258756190653848447833193284013577587847049050620110127519770925835055187854009401419737092877928853451650653566754242100812120902483487186613971089955289429303062279085956484569785313975399825453914355283623437392261961602265601666777413587820138906906469782685070665704238149456762443942880847531375112086059041801791533017447711419647713797162591399195345858426810338112207641059081987034843542677165688525922348984990857068113608523747172936063474551941749132986193862121377885268380397901102807910859242518706061320749911299434941471990066512764600258977694482521549198586387042656069596664644816282035906473151780855503915773760728721714106984256162244338486814336859587041350218083168765514762994363563135499801855682914028773936938457516913367679429882628328214390121276107298312684867601099226601976995375931975300769953470595557899676256176357906282927892149409668421347080589968461743626938673383566443138896264932374706336076781828504932799975517071893898365638528702239501123964823066926010934398206308040333562553090574395170722269700133369201980633928054399248048098151480137360532410755598261190668487397587922917482655853895472089000819759896309802726456014269851520019237590816857608789417850010795890085813210524067822350112463871001056855743030701336755661148684246694635991862650571761663354945752527229272537908635259196874842496083738913924101772812782308063188773669200834843606752407307243629844592366528583904604513015119378108870862568676704962155527655118459660300471132733325298146436554721472721393064270124203520658163392051052666160243664265840003218558627358786165585409944242268762450035207520607820263518917895872181014464592986860017959715889220608990048952039758497065652427857761745423733956857212407487879391513985821495169558767402434563020503974144886481335819571352808353424256988031532084085190771680948387217879305391266380114316993173911095887087161799334841046423797257847881818689772514616351900838178528615838637480686069059984085524199228946081668115139386758583372872160129536522449364527708789364059247772280061664652884278240304611380895083765425260954419042242608485816083800851642013793959555110996480221744413047096605205878333129495550446503413583008248522681963699934751288412507814175478435651296488370293416941494420795463564714466581155329113775725875623310351004040469815295859209249685366469988676937013890995185848751239164534947853307575284099395491514544527167164619199376184628815245297856933280036088318003529828450752036265199153374079974408816597877719993111083415117922468535330835483682967930982361224506623396922663156535736384204132332236974736583002356051892134849914464747673833456971759363080326668524405588327193750139934257263878690760791126249283541673631439961126624035836141657755799768748513612388523539528263124329009780536453725621884006179700931937367422562643073525641470252023316896304657596683009612693053252211558682907811420480227293795384046556157743429413571127603311788274911182958050759098909390701353353897943340434883429555277583451157346502457499795261894426335930760899489681229979971828549698912506800560071531362405248854532161517224131857097113468377889918665488735347815396381592098510022738437801244092093658547173473969966534414093633343466921231178218570777227686000091208238027294694917034591137200109543534979795290879516185710845540574145465266641245246406597786645051358300583674670782121952228242672390320097231281903179331148095666190285454719927976594615374002517402229028806010209070983165228392568622680613314405506641088968448908615840953187840228132671570231330314667399673308492237416292500104191655251404523725837736548158025857351403365272985027442454072796265702087398163806160238681928254107796963009864873141280671662826910777722016221352793451662100908664474727881965302547190804347053747016519001090106995862873916602089710137431089150604866491893374302873831355269782927725823877040839102764587936566767846949840868057644251087172351938659251717392296654982621985512238618191583634634180108378258617428127919097016109896315799596107922263519347656530110155783331560455062875501925831218384268887621549264798598880219292986102235967085172957228994830948133785921187793120522124941484269762628953820136574051183357013099395835572264914269678862131969521758297915586752768048514525771986545107735143854418580414336793596088876193652946939922351692214279954820390547463301160854378273800290960212590611624338132825493717993121393520507911029533376749457874383589759005370323495879437008886903814930749107129429282495131638413818326550219786327208953713756982616452971058339874072351539138809041252044912708813441539061218162360133671034746039599658398537197978969182568825562760466030581572983140584373385903866448716031902626620499154656330379282539220734150732788034735618970025283605680915933464859468908529847634725013640417736499371472977165146091368252079629404736199924042219763529491975844886888950365584606632617751136508646416239666165784043691130051242590268129355949593162224852105457990047117786118649589899708882954915215661906899231510543869167618457701325368930288808276592815548490115259651259074338252789060801726310235029914517354832921669113063240602267059052155550321981926787767853434735641121810634379776861206717481235440778864295060456699083175488761234264786651212019164966792781063562088801388589038128748012922075322477151268435682754699897937963564934166178792490608487835508034708939727866500075837999065608342597953418406368879967652546134640689520763077141901977755074554501416159415828805382691020935386178669790994071708493327491556721092800929821772809241345848409800743615213909871494949791644016384977110926554504895278861546862187901924574570048133549070923528400761953938906871297406779659509339764191606425539910537396956639755983736895739552610247211524501325723985223306818040833583494636707572490157298348456697558274770232465654415180863246992935066216196084162038536342356662836384477804406037195494577221585060468669719445963309906493690799893080533435797459275716114141926725285029781842991100165035727671925399702842828033603346985717575369080353664099148924658916722882043658385472377228245377189236586004246922722326589447860896208624905102150607111604453990749027285390242689512412597590310589986612100174157199834087569553392979816755831095839771925613704104944446351116708734889816482704006906650886961806574440354757061226859785136839986474124139778117579798681858641008811020364421956123309875727191864668463490197540028352626155250825528591749658421921838248268383995486964609446755996387750392545449448010706225443002471652959879959688882176550493787211269894363585406975698888657804151716485254818692177931032204262203035441441260812088050333278450043652875982401801781600441468790606625826648794744755015446103452040030265747227625642544731166014340071763678623016231569655599704500427494406535544475620887557068008875855833107511703724810920994775081194728769251239083113957742344716923638643156282579790926094050055386286947058097425580669919939286571133617829777294271991860167888301751841207341683939643923018684206318794679748252227488853205993106409487991540410015354416820479776227702315847612631840567728662276112183510531844633680676810193680169962706361536514233853780589513419681349412423712175993035426101743195861099060240916866346607385619178841762742089489074719520118233243451326483918162802610399713048566199736998203523737853790283299422470967382757696001455779661094970823415238883935711825512552544997276846745697637982991571810609883914312114133073355791968860089090822047685798865348165661928984404180647460579823167220912640323455871080699381403827776105777882449661960588970772342478249698783225770839405993812819673441690994009417699985109607124192070886382769373372111825323143455231872188370298878234571946286023916806824581536620015776703989411103276915115240102558527169170815714189800837728165073303249228810484561855088310721518522160784346004756640809757924351936869296536466639703398311785937453032720018613001797930029971706215285691569120593498457795294167861775067641461142597478066076161785925072460715417466650417537522647652180239544514506719846689848118503271650324749285562278054094047600404739475289538828818384194673656402526036437261141420819515023368578325336223808525480350679592576231327461983561811695832547155701065248960640765237171396452126513805218399454993183570231188865937012247221923074161484724630709305375763038922722454280198824989616189211421683508775347413269960300566527203126780344238943242407398277890263202622065365616399630851354114513565858314331406659718463571346834157513665765170011560514994199765303159033400949871883235231768830345155814665751609273280458667789551939787951117600400197115042111373409780305193477732096711357219139587293086879762299558721636225837393836571948541689893033632752304281248004842914855716750937018327657053741844701650768305201455633505260116344555940463119311057553824736432645559867859642348321607229869860149370194668670712222055696594723674109222994109807967563719344787291135594003668824183163331815710335980032907947416036653527498984065914521088378743488027323452629126171768727506751564543091230354226896793984125855207825537859760994631028096332319395578330664184231614786406888938907143526239943514467254774886115788192716467367699987684421338605622924626891534922284643358699018552059149450525544673432632283798415441955140010561273136745398777515926237099100080294530891913614213044171627732848238567575079297564040342854256775977239064031802845311073875486785083199367804946027488938200420653159570423248440335951191482874263515855437156838822086080707215441214695450821215926735744633030979019596847572650573953299070516841157214521307150386759951504784313460668302387097738382891748964621747247548759017921228094007911054444445978491578676958410936386223305692494525845239034510692394025300936131920026647640996048915521801609340720856472201129741361567604011662885497829934736004737160106229041485123161989498476871878258135876676410122142951686569783395400096391765650704936130238248458142827972279072649876982834779950017927815800396148439313265260472219440265415541837471568075378290395642525389078439420637570743335603979221205654816980516066263774691033036856272376799547806046916636469621675983680685685068825074302925301554957084200985385632461634859447637127276153768273459551137625185733436535788817983414262379364684474269621289555636770392073355139490829063004658093837811932872372499949301967022155989259812798868414271577086786398544774725568719062954262504881670609657962411692252182453898523287794618107543691379642614480380832146591610713400549188878186121556439340525765577980092963726953607538767493580829870002441735706724401710023348231264773210161063679519223170916149400655636923737795497946482989427469145068120349625547660795673023986693597776539154536548344012828601701646299558493715151550457479090838022515613272818849343607979281557351726668580696135499512633684597462041678752582926156720865342571982399792111326723508405178216347120836601414731036497626524840850220045766901798481279609759122473510730248960293599060292352474065645812007187689348342949265159112925500600666994276692386476816690346195251633065364615472602370886507633227225310304134490327192643495807814206612499576620767542879731393549369911734826989955219723945830128559544219315378067550175838688725540978165753983238310245380076129412441806236227187990001323926440400044785432709553940013252869873325639971817658371220492464551958115707599293925019622062896533305626940511168159063231680508442256933638956169148031671131779312710815059879400203708158944829249269594872672282146822519505943567289038447259929073617196911988418090751997660395326076137672002709172554443857304584030870548236002482878728518443214120609787634733417187495798254826977513563056345515648234759968067266899931404604127238000701927590915811577691833829764966161867184708971050879204655127430439706179363626063046679273828821344072580359707424401459409696460349647425853240880504766439848046920217235281016862267074275000808271286469817568069494588035372913967541282866151339703603859260822575065757806468019915681624581551625712797293485140927673543793250800820331742181083005478956069022522374090353869669160297078936457915126743405859425692320085869936007842601364891645931601790428670916532180883839152611859454353867466768704676033470407675305513140217141293195287562684855646926970237057556387700723833378558857564196538179861432441845266069020341897044572922344794821928030086572757682454617257025628122541619359094453850301674940010947244978993480243162506832264627407352311162131829728234907811219174401514202331638338773451678744832124220667406603004820990008706664833624451975508792420800515310473518497182285465402305632003679796178018916842056975329729090523498763431603331540036371659461235130099059890765304252631409966618266747287829696450905812742018610077088340653577127396857620814917293189020552526576787930552803273474705595503126259823804296464329986192862690566029226266617031093392368792921287993429824742022199176378133156284602189703428063203550084200284463746771159332180747558929178836484698388197076448455442686613441389483926388205006460787981779259712345805528716451493687590503636950294779407584042803828661775117519611602502615278306202524966774185498551363051407201101133489821159799029726286256876076539017056100592786332187683932297145067184521331057575343204464610121483470366638900648827702528864142469061018071245245855043195274149711097399503758434476552416579445044371165743420878106323903458329001957252652118825149822052653208063152020562900808290697860789624805939536527110251942026376694418747365782481540462131200630428818711978787821708290732725218379390143988848437519760356196488796901608571640627418034205195579759230611461213566352779521127932704750304467181939891099437761230848029990472020402548952587602859715869995115673685799781778666842990933993114453532165192353046988990470279354501928202590451009189699713600731050370422546156331848548006069460285773336537540961828238607927837357340062864749772347954386907299303443677113951576168724115264491945009175459916473325090176591575279438660483031140553213007269817000017892221915839429034576370815053663166562042298809285796761487358062487494442013641805049343486474559731687685501710951991958641709161344162940023404374824427256150950771343995651465385542425878145225893243320283519625124439831130050779771515935565572512285039493048928563795389733008570309839120336994096933192635367112988017896946979394496104895331207361297083855924442137524595695392711117156894430270800203687046427144356352593151457037008745407232077103256284376396582435946136562535440979794544583812541653906507676777979123023908736644844095009710738858966205724559753263471965363809611922378449701756237113422204377591412878838714596368404514844211252179223554213421828206012527167788572551529855961291818821579341865024386304890632787339741785592806071094495024526925762658614500236411504586306789396951449966666019769153909960648612920067687664767532812483125261769380991728193966281456349888795867230985220049057197653854416513331545537754353949541488129101593735879430363624518581505212907407224967251083659453239118774389291089455985240323864782055191613468230800465678118672757895327327242890035096089532438031631207760456235279082612832953880207709226899883367025874962586559165711263269255600619304824030858405907904361179767193448295202590540714331822449241260800971489612886310835451861091412027538513186559772765249199844230767406917937905212622448568273922393708647302662075484592866149182732598521496864292042131248359392473457252129456422102055650240472919969269093659123021025116777353280354186013184467814766914992242710487289802344159639447272844612798074382115025514624158098741975667182464143024577145692293307441432276105404347646788425895089830990561953680805749062285573665268528367930046952157094651269909310565323467948209022534307137402025499192365909471083299841680712448511122876097501818654688675641891286882522548336331735774907932880138748258867680014583471781719988329874065830077499955811956945710041632134910190384848559419401389449339470157672643985984025163392644101059161697750033288164034748567064413408900641621113434493090984829877564966516106201878461433476876928490841023153531276951226209930488997032736281041958937590391034337546108400942640958192594229601817658945072325010053227094987478286011319967082087883313682773137409301862312009916737691445892823373185892851027097814439847965559539317342366304085873131621461298143391700408380557428301267033684140342771152024164041093463230514468612669587453908938080092835173847549114090800079173493209314909208104263910042413158033538896851596226297127630085029056800016752785316895811422025313021374224227703809330421893275975917954400984072026289474617881001841474899177009923109818840650645487427022230913577979045592275499015461480964975542899591605168791357834904714645255053467800109805397427738114601396672175038443978471506990113769352450954886680352826308942194218143544084449505144601914256807254808704186592846252388851911323743782999629126878800573264964602043609994834796696598473504237857959602141585180495701162267785408566612819350642872762569149427822283837953809662509603617884640166679483833582732173880497210858253936288828433652537052732140916529798799708787889649834898831795885723494604556166226025593764757773106720590563772879430770208889139130581088425724289108074801115612006962081906352693688962443118722889684187570310015974720130523382035666426263762394646114690159793666351053900276362535618913138109470262152842785311630252901696204527510879904456268126675826143789838409727708804804199276295223309539395110045557974296589910043239035326307749343293718528809851388731709013529269971692050147772413986509475918525278501658948752591686934378591410886704721913622771339822171584016767060112030319302269294003706250994999731926407541588027029798476883453469388072877839464139092210560294908824060090334294995062800847972455171609218989104457110051567727457391560451580950178688320849636793280316795386970391660859675478729393871920106090800178437794856775562856517976157286920576761953390597475360801315090404302738708164340807525338588234843754344419086314560956086265518023738555896705734108232485669410156035347319918743145274432034271694877403113927188709879831548142124138102592409144555093427027365586869184646806080783196832812315398222518498558600749496845787762691444931037551178777378189091778357873491982033163140236420460913679764437436971796867647111372984513270463477165358452131191565118567948628991758863575288494182326620767227533377568124105056111043793903045093721687035280151311673425186911016735056630623822662939447991769711998032600777774428940144904371896641767467113157364710928347352104724596837199078999654331815905374674090651814573393685013798889099171620118714195768997136949804117322766294325046913151373585079267158459685608744689126197556042823077501205538739440543848334400933917569024026879087771372530654249759363590908694399726497200619412997932475731462926054428084339706193807040029087848204072818387182005490253137981197028637963019412876733141457846137101289735150723386704730430024195429926991231810945171733401072833166685594022239470901199860759781035762432316597324871731170185085643233735410287331746883375834260704671262119347673702380126922237822152699672689618871062481237776937002202956246935318270333285009984242506191889718769954163201410763545890758800827456225022819833650588788266415388526480985445010058487084657682026944848063709760681728436318705593567705829309096576100332090414121552219594992248114641879067404686524423056745138235750094973921602343080414578826281306314496292954557438644486779426118036774137935105371081615723115289563411285211577188971047076182733238333383378481226977626064194407943607289731854915380740587412119450150760082537463525610939669365793930950353271956714723733024373883804364736830993083339980194766321239740408949910907369834704004035662379448624680205963594388150276296150317679472864410641901431643534357385773362145024245576375393372049279864304920324677663057956043643933307135481086369104475931355459338661990816864943765010172130978130888859041257012637586648534502324360990464643320173767160945572137359689396490271070317099144640062694593650737600852035099411558543151887816194786801802906357643599468214351120385854755639038802857841321632848023037037751093528894527825758736052071664829077553688421597355634723885467161365475603633381985597965870034272082867539996665846938979964504065874902222434363656558003390124096772336930278402013937728794270465325807363181070975095403023995749691184961540920697592211085648382317647650973387834678614569374179012283407362949795080555760325353912268050395446705554264554293176085935077454064738388023955530570113260849887031219023747596320755948936584629477423828861332049220779402261331153943324271703826910325442231996707921962982035922596374976887489673203132647833480161496303413964693091170485173853215720630533878688175549003273394960733166268690783165704796527112623631099893480216606918094544003495065967463353823502011968779049553642845808821471133490874956027092264127043756761485032301596203863129415455383272607638273979042381550673120491513237467858200919600702483812298217276666566774974025684254999785072696117119918791413693468102864196264170093672064482045743991448855297664374854209933513883662495367116874101870094621670373895436339993308264355259557254946452708803773418068254633812477866947693247845624297549303102309310951673198574038618607947514816710334373944158247644520012516930582530902023970435226087063441840306146676855893074511158077610909892732114999880067943761626769755766131289273265526750188545962701351961866301175410960057013030538679283721350761594233401893770510770923434482340998061550150159604205129473169200927397774820625478808902180314074729480148368120081615681212908108299990768319271852402769673892844309853317988719343742069051227511287152496266950386965502561532421387995563875257165536231233170310519664898280558926060444956168457592937289838200491541282908641075512057391259632608740714806118288084233160751782916528719334800073202280631664982013660996297056281782316988811509143073506098806557341904414957270280369532505297359644568065380765259006660907713169169922929876740431297011396042368067786239506880308542628967043368051153400975292901198568628818688720696402642168519062530022910055304400586507897182194225854977737694735463184805421637095401462931457720325564786822126185106425017641441995255947762848436495357702952787157402101201379265729153244348671201170015671789660172615416757491716491187151133384346457469108236538831064381184739307497056688281844024890661134353940212683949126567606933599057511835890248265249125974491788934576354584873560620824736524525290635616108029740570051343606924225748909675230956761250525658425731044866252632201711041815189879727433596949912720448708324379317534184228057688429675920722901090204806507720151543182813840168638404312636826108453133892515678561502224935382464232898678010178281620616283372115890706343028583778502394338581593679436637678785490962467733054730549096611650970805646499311507560376523863092246365898371915616344218479459845113768446027222501854830728706117773121600738492720659309988769062906067341159049059733755597867571097620197142840672992915565355236929535760861747657028807543736388239872583775801183786877568568093216287959703185972660992194160260359428625656342121556245690134941358680561820653751755301778402130137539940342907941815266828512080963875122869223915481003291832608556394109159778653779138859174036455614726778450047565861860257656541677645234502826487466920062643745992211059087514599458507259499991771749315750840302226704543586510881145106029392748557628283604314626442325750554571479639780229936301444138998184349560374716942307610012857398982675053556415685484986959076881878775047732684797772187498494839631292980193928401977710255909228956187056211913212322952554183934810992417651265272800880224352320939004225246908362041818059024490640718756564464246156918079553555315746344347424000841658359778670480281254985118772052160891470608141262877177716532706289860022805825987380154318047256214078746654049106984181060174169954693302962758855206846460467637706349944070477073716868812116220449352522529348505807024357786212918021478619171562952450349413940742224482770832486247373437570299402513150488869115346500728219341066356292114811014972618404775547335078023025883725510400210713227009681758171321868570402475751562846372811434271912365262870305564964178119640336368908022326648533646042033954605338729059962714087106070562794419325574836981789421501750005036839153437918172449094089005769720980394556369796629067749303458288225585051443708194630776514319331600958848867558948149093155540683571671378471163052257632519087850954252550074164071190096077404839918424919820279505031664249313602253889960404037186892340542355999327663079448173775968196690791891979892625818228300275162342751949910460655506052718453599638706418850169096714146516183704475380376308945385117306759623495889943088912806636164825743322232224147600509464098479907212229415697511976797246588801051051796268628554088276677029474220030521605160145130202589400744115908157361383595963372557256250657022082005688371832409372599777868905558706159201398010695308178548099013129458449951609045557019496978119577696069085917096760779324547333946702903560574975891227307631014642151271166541643613143495047281706912663258909473344261510868387788771285541848783018749277293049969322422584877700403566897217213673486935838316661366440871891459608689049915318897488984412943295593425872269313316037031202582939707347228787223014638168745022411451454285631842943671705658002815170638291476682141536669232574602915485041375593612332821046134110582671400249633853194020404334238359553734897015511015922451068940292127417947682213475469737377534057022885279456322694379676913757234201104564037682479682805127446485167684689251977003791721038011244107419855381159047536484309325163209778261920201812034545253694645567177928617726035791193604813027348715478144334667953525588404768765242669796405931975553297496835494414748636909870501054655055328016758736064384868589228425665384828440157166769542511014444746745778752411728584285822959528792014602030070331757915973314229547884673485632014479370715223161102515755180144340010777633437948115260264291594374375067681539043730393798799917563750184687966009152979685170999668293736441888361937224800147033302263465348061212740036489788556825406524069282917960456784852050561176521837551854115387913727656335592652184328097852339815432719866227121280358348803213042129501828152377497986057498855074760693776420536532264295020984633187896996409700477230168012002539752622673129324574471900240482768220094769204920793450334368825240801349339878542517998258161789871700639248791983610506746371047302798658308337523733592301248284689460944615743714615528449779649301518551344086536782274239557921305477879075894420536475797735513875908495797479308395410825148907532070761473710472359566060216535090897918889209445720646019305393319341041021996678610223883740940873973471993615733893547785068200627903579785523906913276055259380408009766118669483270269125691037722123977046786273252823364173748777518589093471383499612735904067082799921849601734938547332827485480025423518728963155812714478859822789905616443957058328285825613840453071131928242277659952432951090112030152998295926728748962954064019092047466326807938638551673020683256826701155540018764391002833633286684054089247594386116839938788298875413994653946309909493138383815287399929939256286647618106985684787993619523435668613046463608196670737386406380440567200888919841799717777804826788394993664654615057434028253793273061640250357621094374975860860471224568657229181176564006993946883092792903294910284943161634105319520439724342345315231128458685956914852129761348140767959075827616241946696953526658865787612922279384538227651203356242509651219912581078412126149492276383289746570613217641340577936837620817699032270217752639183324778555914055061973354722175489728867194223735187664952764761772111450642985520907620000096571192900656699300812975290294577661450189779051958383847419922703610989735311259158895203725299894685532234516724418764376893859319518134346813144011130436767918648615352557245157130545887653353157328466252966856491302416254515365233670741329632600397580934431216091491587797226820787340002812980540423989572926888122291097940315667366530235448519071796332727239761007265127593667723381731999725660058640798078431657403360371851617732406635026956855236079955278892621969829322873372548648619526126272260362115870643798826484970199642065541431284046379373263308178404844559321007892551321986202885015889301805105852879485530308530610818656107498757739139007368615136699066094776244673421540786086576133747231210398840236100925810033632543147291754147214166083025051925906905877494233810504403795662763009870446330516318171597610933238265149104260442872526899991308285075158283557363610139031487193331741628354586163542008261342763550895544111676538209956699341549094152244935948056976786746013325781913069635036401755884373488671552224015521472619249269708272110226791716700041006317775008209045636407225270172006967791254561174822240637955574132833962771147559708475030483961034861721120017362945043121884953088039909265777053470110225213950861495512258261432088872656388167142774634807209565934988533301326502339160568319795454481247854585142597133450535265724448559997338329149251977040471627668422558541604465450911063528550679988396058962572968955379294983364819380808763937670086202377634769267224816754901448187351297191134681784272681127283209677119656969605957841167621716406338681948124671995898676268340054506600195981114667079165439820018760027388637678704169766545701264159352470849634267783377813577973613084582378734837043803152538812095800628857441694154591468714948031630199895256396458220693726302436496594910170624727018444144627635700219196071124020077011738892088447429904902932829756533717169045685375679839423164583391778951296145850086261874745296105107607354858024380046734472429103950531471764888346528075018558543407171292682042030137883204133309009525908638589589394236222734879774885465527408058929789228969650697767153588164727791500236039003130394841005887716666822362258583233538566641547379750959033635545346961972613956399411207473282554819848499692186645255394104247958976864732331324219176514092090181640028273959223598587299909531367927949103809973903248952366891960079893342848096063759270606938179023215085663929579158181941760806347774921946333413574904549516180081638359613169698555501124469555595856632950075017894016000300263605102248834919672249533958536521236232420363575177228920117596255781097162200612784354020033587533766561063296670308710795348969404233781324251582670086506660701791195838209895944976883788089678632746930740504939499859411982412075040599710314206339626576476843086313762844251821239496694104376535329990355430095780994640600822520063496818778705572759093961468501876027631904029470270655371826151651750606200497403503564709153407242989136153942964200791170362494624865243505710207249687969054655958112484667950799701211565345455793956369537330448045022532387389020922104809523107906494876949165100059456439211807220754176315249123055616777243445098676365311023510666912811422675854135257175419575736260608316231371322614667781657489995120812893368345873404891016141928210741910778008456539601648516339846214319974057564672861648161629233300566680566492981544451150190800382451979910461483492071662968501500036561758436709190910355130091096837004033463493665518281999051496091268241274363648601151010910518905427034702025971236542752081522319582337126750933044592595423607514757435494437619768919959184741054044907443483026617887757632325481592014325309689055788328933859571965196773716700991309299256087581829734225629625007358886979308778441436919593508171715056921147807154493387416069194947273453939989852329633924733324963032627074541268338901572422689515489414829088887027623200785383005724144433363939767838968687082148200182523872455609294291310698213546126634244889192916543873891596349999835471619391399203763810937264431420462864041032262422140399382348093028057504983991420351218667355446343430579274745749623466657828922082899766491079307410156898207881674151594892703122518092782555333998939973743861485962670671209914293267997559785225838770626121771989543473878556794204221994120560618288801760041835322681364368386425180521547302194751948897915941276909372467014740933133816327484869286414803407233527859581121502178334934289029104118907996770632460107190078186997913713539344753604947371642852657220496670907434755843800112077762751408409986749560927602550748870434830832763329864118626876921848880788142444990964247145717163074073560154916427793893790514293020130591320832504352895324242093072376915269165401424996375069238551913558581168283810082092480343955697012509154156859909788674430848864223631487103425054385239389097016703204642035684000039242731355166903760013095885290253536252180894733330020084502570879556335643775099146581592143290746207726287500840824231262993190267547420110806979056302156108326380793756133847037067271308137223253359068433470053976341650936310823676505471558276173274723355663153301241860081385996876651556698704433284645029691835566266967754216141831866621571760465237176078459283080471628129111726226833071176249614336593817027142055615063088770687131760084131383958505922204078115191597717462474463870724327938695126495887669718851869766393979979135936931123627171671271670565554377418192405144174937520368006068103312585135814600848124741920069679127457479938900853006931811290253054952641061814797317096841606453444150769468126422423451921746073247592593711955346237957170161468428078310959980677771319262037096798221435239653687934200042542279792458981806064635711228983852509748529668352721921724517279672415246881191230388619617624312329973980825058128218832643846278462880594432907105337384267150466745395110242588643178131909496584905379827525074055875898206341081005750582119066930195477100368094616299807342580110874409298919997510687742092296966879793846188587037673173382069070900502019982787223922779654337138592162977195154367068694748842548337290450595962158843755512395865890290696616849659275247673194930695631037238309981789828956437787266081758606423950680612778049016932724006589430989752245206745278589654536150690818261846480840058305408576093110429933450236103848105507186629723962765526400825762600531587255321547972120321934139916760306220558338790770394367574991167875169128585708466686556044198559205674789355124296449166669836902362584401144431328957637425221125888591481076447582084741423137345612238964000512689992602892488795784382906115355626669955010488347073253113687128381357077105344855745762108550182019201531232651852796829989254040161674190896151613374776531822503687033014790999617567344289906757484983086637003006653081981338591415815055035977434116034355115392787855831498915136065104241665566160502807400740175861835101347636379258936690457709127200090395130354399527615333332783874026583341610598700577638014959150641918344207053716419153353160084247564669894999308481155653196056025216190490856125899329521794448087073488938212760992062736514649416815864406295369251764258524875332170397451781069276098941604327899313505259843332486738206276928223660480666496849411187756126057506941090843437369182227353053932172676431121139794417512644745835904588130780011371100572167769408969421988914370579102821480514949803000688692954905390648815175793236927415488701288185448115778280970967624748468812153768665330500682794318193230456594953399543414439042525994647199122518428243973931973963991005720573172280867311112836180176474285574564821894163878555367268464871941624313012355476278416097750849487117158573796595590854987595329396366696418327679479506951521172484074975050787578341722781073514962558208968604385430242864850969190646749937286737418521873891640517803433363666823067770169742373421364446143481134916765563907270394665334725134793538015789708450076896277361276791074081430122935967734402090040094684111912829330713380214254981507971653898175231003267473336717023778801539261880259753995968030993926746497848276055998701173322720868915947052930430741407049964860969855604560933958944393205813676667894762275782785898980459826266052596025256930226956647092726676445373728461261580315640988709070981763985206253965295677862608316386528328521361167445406431805694748777902994048986994328432801188954924905049306584787454856506632130233817435163179248136782119988903927594693777442997724808926791263406115399444571495444989855256013304623790648930860407241769703082852474952976216835762408072436342176740779150552913844208066413684865845119322923389274634513476350980335721939831278743867062273311576677258782593697357082924966450857977852981092867527401317551265716346973412360960808769937291839731752104096058257777014424915618157681869910429009753107576199731291459484003978700394553034942192746955174804512504745448946928759904642518312858281718252464440249133515896574193722675800420612942257815834703534621862458973322609043298202071253833861735665719081434633609179914451924184886204167624947482276410127145022044814095237218271481025505086522995626742360990362838506190940448510199033008177642483181735898328473135144233591732541925327763709664726958852513526709344868412153327195496185763309425573889682119456588363339604109253510866997880368423807536673423636152432108486295605691357859590606127216687454660442727559577058209923317426020832604065704104260666067858610532954473560410040362572634850595212413450269483424294158180091910501449068694858319013367909101389896697705422496430803523372595158736674346604969636739575280686038274590427905059914051062119005852642907872081389815830125821483226113575908895028431716094396375969852382732082112092145949613400958695167453137714559905843767594787954850029069720859614201083316157635973845582003048218869647496035988401720822612689586149251908576474534496144133196889399622255015465878689207301800426175074194757384834635275918330155988200867608275489173606626757614832892252531983236761543333715782827727881754883070135627847148908215234285929537414983732000890317435621864594358589448507910609658844767909430397260649450827254732555965399835761598270521176146279663934501007084699981033174821862830593780576609639052564840451981885877237165998864008576973836812694142895030405488983363860074283300988335779525183346493491904023066033549246560183557992887114331369889734437319546311772081310157331594046457729886149827222012597528292297201408884268896384007388780709600737261192423509675542782407866045724512453391430426301905512673371290691765926895367921316079128973495927878855673352098156837222583285228689346532877321259124111308602887666811839728396721878000316642197155231367009267603649368450698687362295207887655193384563690748845135900206371538685294699890842783520458956714360516956868892959296791375761564567746593768582222759500802614468367025746193661089844431584194244727392522350632538007262905331508503685171159422301611676338255337416265573800566365177708336987404623418814259052140230886186868563875353406469495679004372247191577207729300293719812585002234705636956062520560289255481490447339934586758958990242408933539616362459960499712871296080944876872834907661127598484403751835107904092451875359567170851562136676212852373376500625089849231767016349015883173674677075720280404404769232074377277339065319990304612557909951679602771773573104222965600059284867020732187593976883847532733996183182736963765635769816021322843347715990060568979218405018871177400034346671174848870199638068708544766562580382614643745765569477130617968857883363232486629807163038323570566350025860151012516466246389307228194513357444535398992980188076461185947490716976635426650637428085414198820985561261146450627073559523321441025253419923369714397463729121629013571805242683168195928041162500451277398200457963733813102633298095343953056185879680145601749278098552352646783122173175785335850950522289764334972595240797334274298452820249140740372236279229005994024901747743210303624770893845203666272223312750344747088691045247079131409595622264263999698675654075660655337429303922338656499685580695050718344991962017326556589519750682888576601440934414894336038806810134610987508900348387919391460234754718840231647126186348332131223967872085747308602190630564405649792489907833868445541970268305197603336335221717413211155332171697836545472903470462832679777546171316627768190422521624487970463369284418746698194134514820039492181388375104073064925268497548181591582211146123341480616631656548533493861386878961046283179220211042073693457630170266337829488295070426023894244128455220427191039858810216003238208831172872810898061726799167984296014691289319754979839972754708487303999923146234348273305400644982333569312783008804597582814317988508625084551179110248215733921347746063287104548505261210777461594986202002499908338906687487847467616133599441640422531170935745948694858926227145444761922236084305560630407021773218614802215361118585012999849476252550617233172837935024736605840025758711726768235008110004254601507756363284868873513250452280345280819795214142872107634221052489182171220260434725517654866103512714518324217814038848968751873600856955810076105584662569450249161346932122179735258518996755708253912848232829872969549208973465465940908476931638918270042644522991117535872745628207591513292977802004942475328322222073089284082890749237158258796857753925581679044998110949066205370772615331596782297639665827199905879046561826242623736196866044091585993395562622968027412892999103184692736588281613255754511796223248611420431709930290767365734414212360332157295409833882222376068734862547772679550715138956923555318716480517015890703434942327318805068661682241362511904284376916820406290622764447726927340156375005437595220737374721833788006947099085828532376942488057884833452347546580963504618141501073910989492802995036244687824131059391762222574330159762494414787514330791649497375921982931253691014629338265999005448996610310976329778898660954894523441328470955160104548869611919534150653799173371196747003138745902011253161871456905291869158161223496701892817452096587559767208437297838928141554949312809648272068218286963410790297216724265486623911094925146400289607614748096869206964712757461422104624202941770230934262560738377149668428589937576477457781257974404340851906911404617468075224778954997467898609464157378039742652000226351617004455470646136901087808627571778999261517064606612567736074520311381332221036805035034367143580907935851923449356472645927637200490809206019925358301287941640548477434971626903449469960720567382107732243016293305113064721792970062445172482352167618761303521297748862587088854735632867786189426308728218594077355192853710854489222537125782627248471059145074101881956645311265334326823767309214694912129507762014460417040748259207740999090494682869310512886306693611802593245337541472845406820291450035218993556496021330592083998291383484706744141820350851316607039286332861279282719542529081885323389488328306699497339357597766063003786435624926814045402737845415504297026620799330760955948703941897034518288201122448850344245382595978251809370440148967903658199197703008278106119868832874401883988754298446950454443528683412839078128178896272836543712264220849838707981071394555899922938159158393191901204375434860604999305559617985070388274342798404071320771380560048293533339989964105847965259998267448822140959248248079358526937290212023677580512582900653158574628268902105731633029353148370763047578318433343381969231889403036575171708090424261771973578778040685605016145510947372076701907139510973579127223616933063388018303937079822216864119520030111380068886341159876286406586710269046879517590827653854340462365194964296950439638165030562583133257909310155157704118994916106307022593042997661644873456056205057200753900421275886675616897830312097151500561198899336600968668899409030285350796677038668621040221062135319103829056944675767116779736085266135533334615014766683739222302447442438979832661193718347345326434666933793433060143880891800644817182916077455726634283533962856812327305743349012205985657413321139062761097322121777179649452286423126560309847173405832006947916041439459899600655189327881525413770334379847664678706258017068670286434941989018970201824405532845285331205305686785043937057067229290763107611561486504241925143428401138445536402792718794836771538892309578397363260196689707761721262016434304963142479296764749223511007283230420354018877508096516123715799769170906547038426041249095384970195061917701034296682081124646793086908900960586276241773745405009130659106004117909184129731754885587233906868519433833264942585397961623907193228417623114913445158259697329859435240477217234060888667567925648211837244790164677301474636913247408216517782124464844890588329694608950810954238330694712255790031401450096088062836980731944915325095541238569627788112748490710834710319041380709553912099559523199496939186115056496441247616136821029950895699988661264993889761513178267683758050211356148924755833739403549860379606654318889394214680360666650818685139152774614367468407131727235501918463783816912488226698070498201181103241145884288456535436765342477785625903856860874786790588696127030357832866770801304789167658442798494219587300734039279066052409011188495071025859809060283105555945220820726749487009062151635992430839163295419453219441253923659308695553416308115460045347091622143819720413374094637427929701508893462036990709739340269570736289842389941213695602354207253315730989744430984549527466787145483384374711418782056214148403517075388392030508552586804104713584119604331093458298752141963086634208874545450781371275979240117834571387420337372142753610868497092969645924173700310564843010250996557287643359029198730736261739774101282133272080118309624294524196357078635540532246506236744571716412931142347390782749419713794062525571152427163743635790536361224453946228895836042549879837346158412460199484027736769746840373433137139390394536950828468103271451639749167756453640958956213961660193670306687348705156949990296932190395332698650072799879555232165520962536742648658305412381141030175137726696877622437956665461314425036508023001440881789197181457083884600553156911172612700396983015788349562568523893886281626741023235625552652095957412721207302706795198242435357726045867214405264613700495045100739442766948346462226936966607693399183948119278699372299286714229334963566091268415530305184272795527247318658651753733948996309652375895822496300240087884410819646024330836340017465964960911754342458047659384445569960482943645407034100896499738177993215030698066961416540800084133354037082533251165749556496009306814224057186508272798688582395749174782434114185458789722685410140943016954801722329633829037982270785102512623165044739852412719268063297284485402719075051108941226075237014392488862420325202020765307182990444356971647751583722837471507652077545894759228483927871977449484671382253540694042524397198420473372255994028607612195312213958415557474299014500154588962408806822341963674590855882286858463439953112915253165206904826795147844789155172392131635817684724085173456488224937853684846432763265341314592106430421594590528145191049302589615575865121645184428723113778798138991423308131983240455296771261554598514866992509578686892712476787696182274988145399914453176495813991250842912692615545399264542492256239271091657370166160573241538459222462574634103032601430105755208212899534915144647944297268370646857283622709704058683808268639779564300069547598405254496747152406977966626267760944921702033540953199834331492209002378549510943121261895707811226676917353377398053567572114181994522697572374405310833753367056013244455051705741652645483378821077859195323065681720554747155850942800102727017050275046375849911532581304161261371278971919090408816184830155694765180579633363938431516163478912172603747567004898476505806875972557658089339494452581282091612507591605923013382006291708939374985574347919060459313633162529456905795646895043397326045535779977321906028148237854230043706371377080832897232586557688710970129480590737732796001598363307313587821047486242250713186156790839348333352856009323022561462360206419953847039447205276989216324163288406854742675880367393398399678916102368082920481704097145515525481514152747311811523181340225190630052283200287961984510146889183798555813017263663480337518032629045588825076489471210315227026144239066963667321144751682824049776578471886852572616789932959257093628861367068809218270243220848964021722409350048179212442084512993997050956671622416227182478181547666173674681730005441923230757463067921399817075472237720558840364163463579338108254708191272164044172614571882128960857833467714583977793838869718823615262608188992993612107362877074086886554952801953335035467225386143508867438336533880362523273688134705443049759627376448223793645992740900334339108925535411074763303539922764021258233586575787780744673492185771293544690646027585287351953822220145035202865814002181125948742609476452138829178870320246234557746766595441544695550190980012342192933469917861407323274865669297126105096341350771623240176788819198891264253336408043379204878424521437958912938240307932153376910294801305999222495622066420679091625873416486291645177030654553448123765487555328784272701998535043789348577384912021736246522651944608633322552162729502308516520429835256367319866590928231837201857236651057518047532354712693368748750447990278679110849414917549604373308514303187639238386962729614800415365246828783364693016455782380907936650513765149976495224463823570712850997989433502770248998562207214306287633642582331919828249389336671618224677176967294834700242916137632088496155780688072257482044859389465018747846848079003534149949734633570712310609739532579157238577950784977748314792199086529436676053708582713274398208187405583745681111776518040338176939480559850125158069010074355569705721899528365487498407514107198970025977060560820249401908881012746909604552407200516091712530309962642370918935229305553700590599141379469277667179198820336476412824561416678025529667889032582441015071831386036710107558756453961541519853404270276611477456177969023924535132687967643498902785482027283038388614618436187676340565270107863901433787292528520087057173534063613541947987009467570073747039884579886555905584882921232933855222953869901117003640754438681228699303763719408686930174598700623683227594199803284027773963353426703467849372631362050687488272224888619484246373494291897427117002545685414998632186430805964336644437138114408873002950019677441024313317085247144153097914600580363446024263374426963540888520448633143603302167674387757302652085670660294843765933173822175126177410821982882781109161592666587731822858513493460469001564531921565728350334158989523316856190499239531729170611212599293339118656952026348355905189353397621767326611995560997615282011960581553811372530251381422777805381728584210158371390762848455656238956401726283478418255354809099428195112012242948542435827082385291555688229211988619139984403231091886065516111747986197794712959571626206158204331329507743955910868760125683581868948421942952700732646035814747022638318821748080510629601333252433477083675322210292895596947086076131370667865799120375303730552309503917070121426967107027901053859245449864735949326411073066400319612140219291260899906672793514203501479046727277319961520618108959410428395861938651552860974522214246508593143705544950562356243058350732110844139526462115665355553703534349299198309600994404442414391339178901336144223959399010404124969201977432045441480879947933052271549639872763654721988949562002272767613230545090965615055627315576947481318762653228764776993612210048317444227761180848554912170423049585116110879489247464251740670096318165476586987713397297546552865015114839549230533352548650076076782925590797567860810679283859748582536497541575262394643575854342181350284639658243531133868495041690812501551412289945795204803063260170782398761662553124533757507164930749696567997368553983866198182947823109299022365654695227522154199685230183001704681212382935715128634670090390274824100048192623656720674865921023965780272016475945442635183514834513056713681086535139894748700532525217375868491349193312887563646169714532074674193370362239728482977253863773802715822527026931500901981146483057162958665470534866099327024567077146485054526507471958644070550548273447785549381849645202567822437882111917584263513510800520573025574449730193522130092197203758433151711823751423181123928035853659658023123841093434901589365091880135705539093551858974915369331263215598444477741999400098262485934084168313860385078840586906656474820109448607966012973081498078955829745741335268230265403195208414137695327899761404676877854203485384686571990394100911752622238338843478449058552522435615853690667992233013032553080226629502658479853404890759868459652237073166445816702868160963369769108727831107400299388961426182280744891601480619871917941808979804727610581354883607030114611268430306615798119809927686816520557259366608068970427074326021692987120304832120648267387267340155503681285519536355428396546885803766219138778253650534612679564817648757772758713008456622023711606551506580116317693167691861217244876311936739777316428814470155791342863358656116964195787515799421977991388332332967509295541640624460388683542832916727904474084904652971131141589616839358467756651245907419800789349197452040109529540823368872794713568088612630149669396174864878568709509950820610749809959943877541736870514657531450155790498787940159256698211854953677178024774087033358737073650188884783856125554935644913387082780274388279641373437437227672662258685878375208628379232842878269030770711277647925227934178082389253234382665515216803817488506671326660586102418994475060772420727686919068202486130920411293229870572955795242030226639567859607753722014682891268242607664773931789550027958407587099080874895192746408238437804686752638278547477927359818744816895706572230926458413025938733006852525208910716840584983659804626710497792960754069345887613120773313908495487850841428043731876881782307232793558754504059142864050382372110754293199324995331144978929026297599871068391701962118340623244523871922756398848707977867183677782068483922730260571749923091146005224654772240379809687625905269335890498893992938500187807953672576528074240303519661654262923701389763491843575143719956814732536906582864112997248463496461882567387118134204678266696428232499166059840878878644291334415936755229891555088059598298834929262332311019538192231037997340742028762366930878439430743800739635290330187666487809504830871486395275307287468560841508306127348461744536468805102928508516592010175026830586793372651539524715927156400043120513443127966122381717639042372782193049864820795823685541341886863601640118360305554874803946683972961892492519764151468135955339229904931240362027282196468416686798357415548195119523280248688578906260289802293580029850718600220896909999592259668548711813006955453688347602131114082724101462506909019771357853933467360435820678639016920671032580397907755248805721359907640901018270607659852985549919605903537468342936299535471372771659399012323348199861365403060599806509376883910431869473067031232716946402760235478244109278161162751574465138370269794282953661293801937187210019421572351563840073157214499988838184691549211629723514002659424747625911217901025325371760342251625105609625271009898643998742877283383914284783314626334400637569169776430278325260911428713036919221276878863167684199942563349261830045377387099482203591152675103060906497399730497150959636043855752359065300124867476237437261087960602819910739917333797026088067583402605413189583961691746413455212904618282449772119633964485573217126733379700870585713459771327502230315740013557321054815802179668302499673205475049745997387900618070356160897402392733908601676104714005312522125105934212606548578800988804097496258336770307541327130373898804061335185665154995222517240093609990813793860183149743794104042664103344462917749009101418779881784885268076083762019962839109950207830139148094096937623169271559797849641502805100135630639686712148057144142050184662249183145143427634909691219662835820390683245181691406901455299695147622930483574967630904738817051136007845566482418292343850095512674644978440693009140598548500788379616022292163841079660574064083010753300090508003255446263379281657723692646846469094516870472551606872868032523819323581206894736452267288228010429562997750394430757588582623015066833477425913941213276665372203540703517291876435390169339444114386673939960485486955555755797273652592647851694407226105355749651981595653992785084480185678869905548653692369415222683296653675665946900273797361215530130977026848778112244282554233398951288412594653525472873616166742646315476672780980217173609121001030734003858535597979758212774701046875056613120571528141618175968379029489956885267244421433753474448085968421363539596849104139222480027992721551099240478469019928625970871188329112960013281487919423493805787560599377105791351393128186685060520039038535624845098646750046256538371795969884396658843737169341941497173743402517254734943914978554956074588309297640681703901868430527719242407966893818297251424641819066441160278380948157535657527589616203354519216388620795354553555205452415426005969441294473668760691963258469427718831845534810986256662206010283393598780318918103139146636690638675143147317670153049685098937670377364426897309740524664075589376801763885921860357937008357578516763502624186232163647994884691356349954919499417602120453130310546532383954750657145174524250095069752414124907221422341429038314670715901786891721055514695510430873197893077119752147534149485119284597905238796335272397146896228894129416405482374259248247357371940083164366541040056118884492818008426662562632288343138416850363876525446901064457150430952290458331033673831178547137790690013644629465429531317373513220506967818377455551149327444188045677664613813260598146341339134495274002425510161893802427012891126153118427294373689272125907596840082582926253657638712623990334657013918720108097880282942854653227931230145016029237513061079338453568817519272096789685430153408664557688305400818923113390912457311195494666109033621502057457466607370023017921409330303512988115519103377992153464317072475793773067797252637248537904795989858617609681101426542704718135891871828701253462528156159994745251763933580229369280529670801379526629487014733603216723071408116174229846852626183548875664564498292134399441197799811956191788885730898939676754745062816417569157235601332930220597886836351250496927039587174793715641242626220018914705699461102747401112008203886161533581987413462293316068217074325250292165471236359098681973213297340587737858554520650194360823853045310450780960274431729071431710218524748592886893435406558336928853825576454997630604082973748646517906274610486970793865891342350275990258018940935472242612146101003747984333680814035346764402547915320759362265907256515039697769842295021221404375067213993118320727121586531877430628763901279934382237219075272586785975800770388842736864692363484029664078393581564675681086202450593030854278495566191397372218520196561461976021334872335140543792902243704326711113805746501778931860287361930783771664970570467604823359843412060057226033353777495704514574477155211083128084580157807660961878668823300143708242120711822520112938248696227686044248733196072061545485617234761882418007255531203091864026238902228493460288228131217975131802836028236641701334253631563663528039415384109723721244297129330724602105236688036648052523583136137128859876599131671156332156567412460766783736040913012097980350462580615301511629053354426311017217169686807986839263830741681284762124910228313828508605691977244974986802136794581647021746596176997369661583583565591222265719888501840960112151098066891895608771223807649271516496054071761749115771421571314827018469331285370413712027631355149018047857178754120102161990023843947943321900633437051981042596187964285301966155824734568401781236381095438324498745735925398105370828743412060682424698287116730179196641433463622718356777834389601678124718426644138813485002075304132547814353536180874326364906353741505075676591357047099083573974714962237439338164136834568809762845446641933570574133720671529532692458062774633665174067085900600384167511979365394988383715758974862374187729597359012505548527655631945698315522982338837335844858993512821040942698476321269844839179746733998471150645512008889499684755681095962178945218774264374334287098451667658854109587225876385144431701494856352715425276347566597841151567347667089995952396477564509631570242976305943915204281597898428849246993818844698626428786410266567322355552271625005464631256629271301030448803117736851325549990183087143754010869205629033804143841058496864939531859308052090738541675645597286018587701737935462654779985281760055352318579086740717994725870124650283447587791967748638430468902540397052561461651003687354833278282950647692413058471986429513905182845336505736019839294120506576344436783955475720363372381764378396248881149068748092064134437652954859181305115346626191464141285381660724574635347172050081745461729592761181778551288137665527131580295093111113094310344636796652258988295744003199052616134407712254498133957745424073501691203066313321657273713698847033770644691501946293168608542871600652222720133828181453212050221224576997247135320303522858858035808312471416308419472816944612294903413690248693503746944108623096090657496584381763160054419633640175803461380328336882821159443948412509733640232441139447860621296935900278522378660439053765387847703954605758609750262307157081393304675747235581306477431964639080520628237179175102239903469433612836047835228812926795687100210717233559657775725657743411647399143984287609127044874814514451879662057599596252299025238910977087773829428561277213975416977594440712336470952037265778983009011209201207424182970688499154090226131986479586137151686730327927345726460108640018272656948373034823998127733479435839207296351308162826300844629694412021632188876809276347680366661412420797148913983119432072219754402950978453772965577004864858531040262009439925519609913865570056884659966821907891731677677419166423103815931807599839368217320860437473488314629645314516252391833704281580377538234034042203691860240966297176136078116558318026006015056162040886769653713192237346979847910201893159962917045055444827508774826369596501813213783140191041264520978194615173664597512619453219182232303120609091048306479072329762952377662216039610679468650226019804284660935372163508107969475470448690989211172113186988067425131522082647107272092097440667652408811962842876320499273098985211900940988612392901927879667087733034871559202832557170145916964654208216944047821148572128021518609020903009640934679263873049074827042375536521065271059143718418376134632631809148443431100231391217972139264354628300230291427505177360214690319633857020753595886675815591216448822179189993585020889201002247381868450158166530897607121766793441181028384413366194303681663478582901378717913825715345807087031670618873680092284268164838967509176986389111904042026865860482141293320391396102571556909715783123810434220133878683768384881831397195599039569307494192716959386213722475879815810011400037323564961519153309352908378669817910023434668998372887336328523132238088337865165108772522592276881090434320895495889390490887021768335712616146547189698293521749420578032041799717737108383390071839777446640488765692250785058073093967548190403406031703429361765255482089496133441123252822275100944440048566273034982434311302570912745119357964130415352824595882313520762333806937609383731047393598088771961456108790207560521330178602668275354499990055926216406174615393024269498129098576230135626823220898669037650721040483193475291945628335119743404218128856367604484017529712228703134954669490785080749271192323610636091227904556371585778995158916484797496839676987155107292169852181767012843775361667621295415016560987014314112228566089215488602338139368863018140608096580910949743699439293925653177526517333591527846671521190318529697566103903371906349655945233057140945692999190200775645577108701927643724686361953263102655712156212964965259079574264685390702063765875883180817266889063608167204923540980432264893459775560476804334186656715473491526660249526532097972080241264958043269322188292907750432158794210768038104392475211137844508295379279202781718392208812888384061147681193079252571961308748300114797897804010946925842015378698257987587501947470058647810082585506905731630202726363480063708485985135269926417247271282270952474272239407279597686389217540978110524706981438736178172336380915120076779440896371151083083261213787752060553088715588557950614328640200641556384252517270293667143135917285063882367833854418603621552442061983053727854730719556119791683410312307957916968479568833328028651773117398541982211458671970402773235174575028574182410372889084478135795309391958157124153488723939261846539798484737584498736773988051840287849856209444110258909237878659482950639743975661538624387323046381958343660542322371139861658138980525146745088002474416485681470010427311240227488394750492476831807974563616341053761271398445041958158724818635353133752089807140645602915349393338882203761481154307757036031634674869901144004619914332213358269360936622568181015115560715207858432035849910917187363998579381713104701335556380456266049053565834362190805176681435025682424102383977130070509271791619185097463006315647458158240675520584224158595252284313116669967364723004886526207384664174402112912663738962514948985520015091699736246420041031754557628637479772700512368437874588986739006329224164349699766122984836790804876073667377204724317887860494940301117198736081967526060376436815383545402041166337423102839304292521724197449218323284144411111160779888906144832380544394240655481882726637963629780744314498347800835429542063059390161431854795478362703411878689960806933024734824956782003130084063648598816717546464860387711569744029113908066062129105223823477669912453400061357370976841002600329361729004258507692373711201968445149934541184580403539292490461471111069296353870060472125856223288451526477176728811468398716341582715574409838755025393910235764864846462106418377103902650125829711337682951987471375015867421275098229540056944809253694346203851301522388798433685710724090713532800050587713779717905656027893827208239485918404980047420591931873390721087077528623290848627477837027620096002540585117089735435622885784057610204583630131404846306571636451781675981150674976864239889747827961110508937390731827502220330584883228411687850040789772768865773651365106065164453875132841421183183114036929545516788335333338414260783471896953710363578104617734948872565877394781994775685699125151175511462621271883336121522630006825557173314952981329784071844787676733350697685907016616948376004677128766208695540766821765995632710260633693829911449764405367016632566765592261495122398214650575903742078015320251593850405372868258106321489451843637189280823764370268639101026779826382024906727452662287866485081461378497570447780893540734231812661881501824615271913084565906479326688909384533059150087417320319140651820773633770314545272761695377687414214696394906344206868784769058189961137786051775799524135938087416725731077550777033366833720453154577733184615208686321512678911956986556308992953831131891565476924677035748207712971234106834521825436241853180322094134761701060862893570640541926147750862957388447222867436491628398538675612174088385501737701487826123825626319442730504894503370281283243176933555965764214371239229650831452942448697027084986681024541136564398903836614936061052845217985008530994514623643992851358764684898865984082421663769868663801735025231375850738028619378620879140514818626075139421051308008251111578827549219181000895484561964965443192852967328964446170244299010214671889760378706606880960647659311162976806141674036817346635372539342778438394709486103199479634162617496026812503502683614588968319269448276443937832218624138383074307176190009344953374719313763320153174440269402609938530031561663340837451683340232565279935293163830181070473666284035388322600855567079254797957845094596531213761659189651845561544386095157833229937283714695871763404825420680181264101111617426695278828677221677032100468468549851294940394393124698103952256854665877908563706223102622819446284548030669643531034458569804615842338998626130406232848371513836543312820582590905271410662446927623950747009952148341240926039401078377813980386122315705764255415901989394362338747413589491193179875161636384160585001318122356727689371039130993627387953461237272774140110137163026096048372143569047817039637646358339131421650128500190722053262154108974871073765129528376077790035445861466529032304864237631263065448460608540150976753197203338708254644327109001911562203191610403831627905072187328490706688317032363833617285539484830516567967762965279243031108811773646025118628503751258018277551009157605186906734517928086050378255509153288866774921155235870617247268960460632749548314227192944887921381101245327534656384729531660662963655238844346466286802544900054579328083418902942494588101121781286066061528911649968119441418177424088476060906843274747102256711267350733459235292633108265021574496400653298444353115319169512133440939248618538937427585677295684626432466419390808670080873319911130556334816272659458314272126969747398461539988961250494843992093254781193679207023905268034006403491588553176751355348248236442595668804713625171654376127064882260147286633753053306997503155183427401880707365069027948251702921586836332871172668342694766287108624843811805845653093104563679632468624725859666621597605148108638418722032533748599265235485325841996143784585216833127724680105938374257511103622512016703894929432283422394689899677981310809451579015815931297494349024626032512900993006055565831196460508001158193017501576870702618885543847724573452980891784920654560053468911527193676866945051958165806171404050411171411376688806785232758328108285857990259588795640733967422227505524487393128018937137646436689335637906433639146537474925457098226699704796576561047805258651144797455696453444334408487897501523725142850092145371141112029198132212887873606652186961049414296866744686199029105797432871076126699281032729830186474877175671921548772074100112135238214711237160474310791966183588004087240786463720291219913271110273005040927018008454300454894057187576364847513944622769445014453670690983441841272394778417895531894621317627468720058462587999493035000761065479584350537438571786508200698859918558274583084594435628439183302649079330174816933762157522470436910054914506903856847924245994643565818810004964907891942455128473116301556379942827737556007629334443958929738876869625268947311375771153063460601472547404851006487151102338992362103819002320621212024767536875597925876833982896307904545461339454302888096719135413852285471485753883770388913097132099586952853726559570836976326382450205326768162697647163996497471989750454219623463844501982343665240659906169807417308457435890725676569799704518041926291707219762411125908483698765813879895363672051770538123419081397380397371299054231274410369950295149884714199739457224052716253290039243137672189326341149653309891142654006351241843112244017529198807525367116686385384580588283257349257469101349643949435369539517841229439922553216452025127830777464670416015342385476903716083109864998774945715582929399701152812768775434488502961076749432785633411548674599689549253480576277716654167823966385055864956882550575428003207149982273523553130808589046661841819055747937850118536587509812610790677608309261328047502404148801019762632678184951074385527391760637328173625369390395163048091003765688840094586913996366897177448246278130642728122120519192142262852956447297328741103896527481916990700278512791093977591338261630544503159589263392287225653724254553330309783299187544918379867511076642350512487545338981935099248130523355083936694723722676039040761313466031084976982694853037399291069374741008158258214785212244092188179049717687467847224601965088467600743613926020727028212600571206269703450624646770880496365896250224320779011492066047620796990570068243059931171522257095535932517777025230415572822365934410253534811466470585711564560561596111045905990221508495633919295043324645231936419475328933880270611938139409929028414694255987633545572520943805543206067378245650428381264946934069664302524931617693578406034128235108107469504471322239839121668497176358948755366223298982457210135528953708159267360472384204299453045199614753195334148522351632805145160583062958641042565984343131206812194604856364392579113826364042156529127517903546247443428391989326220088394979628317004763275285057912154966245234690801904179399562908778383635199724304217702145803228751451135693607521132387698867033598506972732883483308397576063807942591549489406872595385263741094309762459377642317362381746671123985656884804991305248316709328570248264619738576174200732232708348263648319977159719053555251805758020251939702238254519303717808950124139474602206248738651589080693789669093912835632545247118633224200580539705582189111764724189250502752516566879101862352899808290145590900414177436925123027861344205505105130821424142173455988984969735201651031073817201023992962412528833036615762023225704655925029619966778425818566807964996336330392798712853768661952393785494857497840410158878234670304265989349327562043263583948499137764596347179445840562726408009742450262389669006071148576596987130434872938735107200876392294844325281777053247829661105995619796051950207311757448558096477805003290244506261599499686329643229998019385909077629399120608594235125011068901338757533845785482976082818371321440429766289436614625530627495659246844241840144851196274400025015128125158128065095023142172090157733115338167823032732918832631164950491346093532370214344764748292134878582243273308692382030060345103533627259330370697528806598522612587819623922482057753631920536394688108528062759839643300012503224983410026599400935676262469161803601558455205265982463793742830028754689908072962609235855719071209313609574885767997549173312463998306533164281639316070594307720791056405699375161176818144092788833695229820058615872202997497386648525286677863240837956464472430463288469888512579998828681448385252305316488443926857921276783238369847879690694371975308581910987779560941097797171049060058686074204936526641433134817469295221478105938727355219601429228036624430336916850824059167487866450857532554177580047532917981082814181563226505528634538435259299091802026876181479344911259613510607117092360661375688194729134737540864702926328238515680922526286256094498584101141534522540207611190946720753582927545416925429584742983204967062323513272093774958098715821656332397005448208959836797723859063872568785883640990818274052431910169018411081503515571136207690020737802633231001859389046580044229809266951883455318996814004981270835051931861255316125068389610891196881419958197869054224949346437285916436964429376696327620172645626500203909713600600217618470552344750173167839318779365907705591068122773433485245837049451583236976930875121662732358433950765510128044772493852199421656161778950671163948819126464673198319396797474054332638455174318101175820284622814290360552182244154564637611078557502742459182595062051387749735938940126903383355162344271657512713509184984649672950135477477037216205159780614841647930035357514523439099436237844547888616249480616004429134524187003170277093300280619082769956082951866712378354819344375952727309033548985350797109818530326654387897026223189658112884080135103398924294063304169645604132311312816840560971163415315470346943383082610507590092069285775607466970757828227832193330101255273841487153033850393196894754552506854002471198974597056590133859649819220114188026279502585853394879773191874541434389166011277558507121853766595557687562643137106954452679200961981931927367891433310935376472539567741302063961317254574264230398204759229456632630584675962179018620205286179476444926117893864106062109967687005472278832510391558109533790207714965532818683968090726464396166038933015498764779143458656770242929637700034342056985337125055894328524831166959035458361028498922087663011607768172359520134630293216745644195918383644259707278264080700909032344993101643317082162294966376327132984034635769455757820234668775028444545742548807650489342467131749741267048496959294765754995452611913459140832640638326231685517854139677470594275242374832270085368629351208367382099048495224315071656237473813757910477580726927334336189667709918486872424698000181180231756814813379077634719073849366841533477698687015465580530864977269339877168514496479544299361405400607469266622169519374127296520823815324897869979309718841257887645606555666382203913728254188814556582865292427878736886223201243445309569183298739613638364912625239407319557428394388524467061413929023198286643495010823853613164818344227253647065283683329028152331065612376423617725050368515769557057440469662306229538818422632993500484694515023872839138551706690987294806373979293896319312094288924717608839038333817393140079859594980092000944533090605935469492439226198376587310105587665860964212678223051516196980847606840124142448117669290273500725102781129236276166996930601355124781387740692792367546602485082867582716437728153073443505143039056346681858860656886657463278847287566591453771934111607401902873819754768772405651391220568869684991542107969176841392291724938728740087090782243453834113129330252925023292837499981277953004334911413494834979621379923916964594413870957007772269081073914029209590315596825537192479446128353951089524401588841571317154381409373948551504920938693628625263767972332605587474639949615473610132153585775708535260119470821019320125990301389494791464111825934814509811605117666554853528693897502820689590096698571133438325242275699800607148009172291126190704969098481252769439050167550712835055375815603649654299355784809942613567509762763520046008475307425228778508696199467760535480891623935435093830549878609199216833228790834720957320976005421048584106639540550747283228610866887403055437743846757155103696763983608385783711064314984547018117672268879985214665461898507509845635307164593342413285854882688863177203757331122706650114928064336890985120628436462499884671622845187734834639920293151576193372875263053743631289077165564476066735023218240750054689654048685033408970654505962280787661355739519531297282175736115138721662283462126008032459414569989849232031681965231967925247757979435586460783798751302856346845808213472671337752825214179567197255258925140995979212507610711062687662731817359047075568617662485190821842831147201096185077932511740884689852986191212185285899801934647193410194807521340803476499631584814905377841739409101862119084101724170301009793810877867265991985200506693015630904139571673351596695434214436327608325983425072911379662515476070388317183034579452164563039960759438104153654850193308364028358697848028439125087558170050188204346948172002235485709820698134329811566137555549089944859651679317976271573179779627807111549159251703984426656505385647300257259607225795423715452050654420167293046924895230293467421882567915182536778747780928663696269856195964506534280234622653312633917579417212468653403698198233330887290741337212556366014952630305600647364613138291901809314070458742119723768138400471966096858049001778462093943202676303624084619369505416096001731999376782249265588226022814017925832922265373438014958739254746269780546910620678820055225582215664366919998012210692525132125280981060156027873825664307002614468549572813758235024813436758265813265152580614608585498930320457614702252890517096995238062668382777008311859624728486932271926270874573682731037483398935871618654694764715097942454715134272653057584873917255117984107519192540274216786043699096909288973538929975213978209751976356872892107590602393442111985479962365794558330048688929150526612565636049742839565902529949528939396250561302673842292412781995548329873556532917045898290476477693191815101059141044909893202088457108554103376656810927908481928376995722686302718686046661983441379615605331035667052668543260215356337351331966699330730913306646993308768920072634041466655513960270158103837674084258391944524308480994445131553463565176200446242672418798261695931173936847001920522857597137713243288130256639314392819497711032892106157490017950590154874776555354093494748890165324199481550542670151249084533848254216049919837868004797669921943055323994467828782487028138192954056749696679902618081014684705867707264912659971864356868679914047599864823309774698376237576079250305716281136037997523043602161865280916097724719002835864335322313214807868725286532617215508945566801904548443678091956978770806531417511775299698095289598796071262382838041360892597918017674410367275072174717680047691078955116020702126573376253922649080936848789127506322450792503853619234440679395907121805552710152010764170957481513148955540341828787909692408438395518130406405223691471213374014252880559802927529573474854075584793152973373162644223041259808191818406548232880141720654962301317195350233727013956132859165938711373847684614400968735933140645136056775846803915116611633315512919666188595109448910810980034751356506077593932507706785446387564304786047085696103585391014098253267620240679937482166488723831693928195085833321924485062990087183885232900523034841252595515055996689702536390578515730272528103425276862123543856599054040373505490100117513150227459390347043257006772657735460614424688014774685757016589260344087112470942760030569040633036880805221379548383132751640425345926139984206852119727444497394032295816803902880161451771313910217025863984329209314641446546719732641823955230449813757852251324329967225108450687594201554850167883232008079447271100837704608913936746202694218582939625259994345606375282046891784347936770012897955255516459947161862965088243845797568309770410272542240574643918836713667066707547018650077381262349077693088635147974476563417125071024897451819348638140596329957866842118921769814989902722347749114573983223141725584418599459847935811062488496442444129897072848980974905946455646204892660400814081712889040524259115193042615900241362375502994967494006718745047303476353435531410171704087082323427811494369201951079753039975874914197451278215188219860255210170196441336464634655861786443261559516006052965700055308780596078294838914254175084665834556384948518308279125649326922903836725631571145791684107644632972189763240357607036323150415846567747287967091845886868165236748657745978316909287989465295012973585596791237830203387271654764356844171204049176209509963949832301434403576382226805645744357235546115747169862894056149538541466366944141702172339806231950046994486914624398017711939430016687055872036434594858347543647762009190481717436132348585965987819755527298614370514636237304828393453110338644109471413293922380469253639194197758611030622213547481972209957677500934373866272219174469687973853941540424007063392560521937096299675481859730632627691829962879817795192852510501039035278371878330441605167323773895815698034197918877314848750891352045455460883808807909301315720318367958425497517472077938321515388089652862913341882992365179867228708510061114141125587683355613211688419918565391617426968409057813835646371274731711948121946672118388181918738081734882297764891055213877043366022214898975241525408084455874270648974610056872228941136073362347534998091546100978231491165398112517726115740836160121272805722167876694143123187818569724130171611417616120459461403327908905320261531484612057867339723546496977698950903032714843016296309839031811421777179636076680917069788372045561146322901459375189008998538015042897951948675633922658118444704286615946033513851979754402904277682458851242465575688163726424221401484564910561066826969942982981660682360662811263811230335483050720679351093385340454069175132805367215622296447606623057383095282270515583070054752086621370217080725238614620639652659077006342007329590776284360398182351872893559103845551184720296670477058664770072416421228644074577185117764949522757903720525540247977036189356783444223409867198529756254170825981632586813702799290819028665374784289310194480345844130675089542888413970781503808204792237757555142957879897435036147061236052327309567969439693317373570424813990021780607232185656809090100784665589913996141316653346761830983005060261864504943689227939741470897866607316799283111487773084127317056475492158645187534187451762096061105566975881730303263772896064910040748736412712549074058213206652438757270445542916726234269469639085657102800950564436123117401219379369054953718915646446466452610178980945707119960430100670725000485899025035494630856704637580460806657822449028295524569877026168270636590540657146844221421087647674733492183167161073534970502360917750408689891072469757990000052053993037857649078278527159376828015018873850890561136285957346951664891433338129508786641606183359794677119863076546005537121611076016479742155720156672799416311593216278338747653449343743610666803992732840875656001157138771115595138435399701212002227527422834163213229174136053356708229137068907872990275194597920863654764634234223839880199859991382308162967769911173914463678329343493626636470278690474025315278333985192102936733062579520534486941620595698491863927969019460142547677874949037327300760862113748582045359742964390363142346789848487760388734717733950571172790176861653388472682645142345378716356301885533533486620878788290911713348372928358564769865260226310351386838305105336142914173164362594115296056212080642963219446973598755297849167048032492764731590590400651824328729535877422323029724113558641857476466911608066317682476391894986407929840867856628431330974214716734378909166774374702219285834289664821978427149397798718350877603401297579529734629354193232564082168918066487357855386765094976186022098080216606587637003446687670863804688438512452406152687695389356959425781460113871772511906021754754436510568802609186124281539721934781310462416940656158683691773419033774236004520044408883251876305575950002566332577373990983664202651336537818651718427517212605851842786819650475598477223564033356613337455567799630686622798469843366413635751924510903566762216756997871574441351104854148024992114457990906783683454418609164215483583532994643839276529011188559345465250871262479650716619368675519574122777669638742129036044404592338368702605023010799121599579274944046744998224504795080365915672578826681735814887421792118820398475935336875001876089125320047083500827115939228407843797740666783129898343862339084479653717895048609114495384919939587022800451995003400039560333325254767527553784677862115119206131876611568243289188946608752814945111849497342113170880292264072455668310699427682407213505155047305152108138077842653536208288759235256692043950852779406398599021308641661350548521612575627557197599432524938244740395499362742341411842013923401822745239042435807124097785453615597454001952084081529817037816873255792035571721369355628610993783374045091481854469517136906445267253480220783670764398845563267406215203302557470041197423484727251202005131044565096039723646676659457018591143440326346644609794587365561915118998818327310362564909746907872105065524271961314641497234738462589365846889894093835581588222285328644473154107782879699678007270686284394360465627607214928174038707051971478208506572832425945995702134354148878641205337682142372524304265567337695323950428588821743943187714574100768955642439015674982807865310175885213506073007080028381825192588133484427806456289001465751456107557863830321741599957556307398543955893576553491357088890602979716141443873039977703407129987758843264944615876601160315621300165125853199419143189335859035043617875627510714734945593219403190159372808382572561776403705251589097124259444498261324070838040744020458324547394527503320788121991135133464625679628846673295437465945254745762211367142567401031544723801533568510732351322029265253881737761088852696730154431736770675793402684486610520217538343391090525068157537938172357119539268306428413398506032445958737233242633043576978010512205682961576014556907334724539038615800407939382243465086716699075595932174281935950132458925131808702748217841915724026144253132894328201844615817110605976981545514451918963190770138080575336636174132374699402839242140292508790129349588395213673053919846482208302375104614941206025103175119458605112550195274890556512247841715687874409024033423706369095096630265068084986777499088926781384423924063005676206150344739098854468620085450837282121654935860572239906287857761659498341194411511745167832740119694413572182567743761321131426945127893054495656407422725780996562533041227399340810033092838091838142962950634151976049916549487230818256231928224911880179216212319178251314115322586517862448257791960376833674129535167515144479135083429289329495086415034415393960495814114816305573924373784445610349326760319753947088383454800841747242369401339083110833230606146054828393858935012318780776058030796180805567567672416345818632737769747576345214969941412328496518333242401748851615969421561427844411057214903648582839323239634173829331198179811403940090306463276309923833549448662688589533097137405729304378895029249510197079048811019355291689974160327487789504251285244985416354934013469577321000000837936327784249736104853902069202632737695988003056094405708122797773349236029480144136117489680036859474792363348965856225532494340580914691330293429904537198639134306533934651713265940073845999995523524274348277121328391860745410062552273878849659631686737601647439029083598720596186769224348722729688185129416286542810442864202774393387869881041052673649563476846384867139170820138236591607645318904549532051021575536128564571562220743313429806647761440592940678555009755554838884769929366272782445758850940209010846401048495215179691609068972432622156821741092526349280634714782750513873443623176478321946278840993036231115265155082088096315151829415829541236439116150867890928675637638515740148552942798861504856937622760364618776293462198815704549995289806004108652454113423022861057619200704932342352390151313461708638105468753040369816544916852064067846335224502665651051356884551704128022316818587577026805115318488386129388662321195853112530899650026050187822170166433206332433714525275743373630834821378950008232194196833802054128544520713466492203925964150292086704968335580603144016453340352211494917093637572293078996876744429394197797706748803960480657334066894698214483423909692664293769858596699784636664659353401351185487724162717095775560901587097162356893323955499576266958552970092328981983035678345774927275659705514084138621715353453874932189318619554818742903809757678329256500958864360284541587273300819122392700833488246837033443952346342362941754545997454589528087358388441114209414026805190772097772991464242466668743099106174941737662174883021717145395779665035301569624011981942774360335120709935608414037937698038102288259055918084309928018441549045785220593055870500407487852048419083353774297269757230539327148287193098015488123065912110850529451395871065100547639407858893094477573359123014518367301961925622678945075605987631332337835876910019857443181220002093705167928377306720702371107660316515194524906441635113020713980225850503958517049981416732867687492906868031099808398023099647110049385250947473784117840645769464043829115441794428105229001745105653858791160378830229020797619344017706299753753070734570137192434181484930143794144098600229729716443090958426164773368928188894741238839313200558432823433875641899823216701966095671742458697191291777128092173856615451613917248037879577920151528993301161580166774837642771833977327451324211352165298823940677249680606823045469154387180890312154713503309699925101500368809093502176505436939142396611928869005781792937982351207455683124796836294273370734987936535394571057751112767253897293028075294919519606090418511672694405558834407316146748601335757582142195798000570983280859245348575538883124566729560686296797034892794900732142470062150522956207124092616831267942777918877109251688707065932810243804970304936203799373945637978955079601207112538102753294450179549223755246273534555340346482290008738013492162698054281602588399646571566389209247528286748853880713721667651505902900666442374074966131786516207778861499804447738459790067354171810631953209095559062152202368637409683222323831268817487936330764829154990386389490073180007675561897037806165084643288765719552447844265479102722151915312917837977226228972017884604215630171763201158919693459582135636232316167542898569591772001270591524033646846424377281285547749772867598171518543581692322351921602820644626219265777106646713669032804639833884327167446918952360699406524434914307363232489163744892449100657860515496872580821404679200516744896401056109314519699276591204189582373446997087757497604380177065013752777541724321467257416338143214575543505155000680373217713495961648062646862638379695844029457175152643630768111144721535186479294228070606525034707855049459917354421780701552024139974541162555139517446331388814614874481887150515818866679235169758456524161930797129213366579799511950138984338462625953216034943116375066223136570793247311946006120264361450618807470102300301092555377976764135139078688128681851335244620997640605187199613926341509197365030387926292404331898931060865795476580086102235919727487486787775027952060525204129863992175480560530696868995858742603776247332632219342666531349805775983674178724069736881208144261011533232519351029830258370058260898489727499079129582450903532023862672886824331557010727025319094182349180002583468661657346024312990608152767003159279043203275602011237721592816065266955525968991949300943129025283320333620868963553068342690431044821687185932859310203273259216918163111107821782273890396218680989758011773035927111565064217469436225661917096704293542820434992350662022692838070589102188958869934284701465589329903284197022687152507600540441804085603594703621985638628291576068415861063844639946651333596843918431328250230929203124557654973747126608502622147471844554618393332155967940499937995330318074745942311690786301993361546271144712528021095851037072118860593111617174150123513665186082234951158195896987131372862506032609573752292443795503659567180615975803258751054625887810056750572019199170497390519520452399907070445945609650872563547662702377140103197171123277650281431500516101690679209506156266574223695261735645902398670946716192077125902749145976684955937144356949429002739636057445129376816169455273244215122007214852959427296936009345044846812428850722504382205592864861386109278121821631627209064365098172222224346797852365489646703348742276472241022326815326277973521185695753199811773301337434296525717964251089293417512307880727548109861917002633367981234848340890944441095612935397596384688332152163403332789205940224867140093934895480398983887885083348338163883692982787015076004259425026117243680105948006823700781337608168299565502717132272832928198523234396601585554419113123847288489621031550336962220003466715661324301030072878131490394506878506122459412338980303396025184837480883245616878039330672487187825664467722854296507391260696296690950756283487350421155461459084011402657282230662940696543609756825672245471816354631518674508005800269157542397352933295784896394568340211730784349765153529937171597016816533185825614996131333606249283782374571027623665943979482864377165750749116018101270394309115686709378209146566970092459136517664629889405489536661500329446505511808657435094120202571400506748446449321486850132400684905626807760210304866753123576681815803750213805773145957999604712105425203213335344583676145192169342462832578271143906836106490278282359623713272164070650117052028776703521737163026621469029111891782567610857996116622677406442675553700130381126258233821690328735083275177904746884172043057623895989026492158865991764096838411200687172748005205761845509046674713096309988581035766315746328498842472534025035889189851751691874405057941690578635691883655690086723708193965711403646169086423411019467454321124454204071970389705350278084469534744992297593453484535175248316588018369711576703628847230337503593533185067271383046086764447352784766334116200821625775383371590036135970583288320469568164488284451699078503879777684839628269806493690265914692578728299218644385750911969116171811590478779226703238766981785593753568391942529331702313797230129048981801573114587413800426057760205430942620132901173333444053244500390421254791220338047017644149163090249208365837825659406794467065374943431137537889730111598458569540331962169570819647871775589947550314361122281097690755723982838858414813388772569337958467012779276719924666769527474472295454332273746603626345867127837010070725051245190863411502583362717252072834404991496804218440014129126584611521801166023626101088302989421187902408268993157251346529841654264864816811612529359650619719976968444626821240320336881482567325240773590185959589660609298920993986778579713277750603439004187959266369519948188358486063067235500876375982748382489287243103540928069648951435945045882186605316582670129596061273701954686291850973126174318406915897256432240413301621742199140995563230135050736354068747308234680895479806417403393078810076454090242461711645125287511970140005436606598367395808810295283906594447404398478049518875248499941814836471953286021502283975693394681054439714496022731978041987406822159068305012180017095161047430372007854207428911313221694468582068767834572170253069067630562572371271390528965707796253437867430453011679435781806960156753521401622179976237215838089477047759422172918127930023879157077669056869773776066170227972223492257437424765991894218142833580920593556281202772447054135798905126563321984393679434894526067969320949180718984372005405137622141364716106818690582673751148149828461122544346207148640067241334775774404045963969100438178683331277840386923504713856360361071148729168391771963566004682337533755027783556059660486152750946274668004078815921337319853507125159893977703337495798159566183073047491340239925181874737047565067949777452096614136928256001615381757161338304788068824976509554015788254491832122557358649802346030501976525038331204529591808988132086951753976863725862367818511048754136538674969916498359586513400794879493204558669365563521569429847553052931962897456842884136669722346758361485667215072363167250053186524036336074411801098366516969739322868804102348802120007778965684730125709505006791015940334575454070013723762759105411864531721886950760996515005982974659585004079279134207170440217354105587393181367275988194895581755278650523883693722342818778403955519312469676352585188219321949237264205504065694562791268144524853902367199675102714567922415538437330187483538705769663010801599021211948095981033819510784463877086947829447519515254136012662164555554634323419736800115630639861415560995739884443446072589264464459406172658978550243896013552165192394687835118078838467887986455755336229474680551812995132332114218681602326809864595538799768161861490293960683580002068884449162554989525718458764120077600340555073222503477042962981088738250387461619991954064183708564480621754193538274258453954530389288623053566252204534632700239861727682268672715563967925971878807160695454212086861508486260841147321020279243636865215188069871481599904380933296915429316934922115302437792544838461156026674479482765298702521078589760599313283583734159624029365034063635446233459187050554013565160646011632589380505137253772681858342076260283124572423746858441287144509970572456597907818385110775612784201769153038572743310163072563801504071133755034587657507936664107574800263467689388052995655473126662687527637253619222178605368070695681241562906273541193317981139135752909182345151497108947190535165082898972118400924064770340744333650339641337161861467078471261787403637449311094570072873684415440313637638214920800009167987026180964767707617859785337208334538279685214065511664054097438924696581677209545619006462809443741645233630000311365596683189583240804799727033845010972164414988518241460886739043899009504469677670827719093130762648361328587614533056786115133396242679563477670561118248563162208333973803347145458839024650340965767227838402406449636928289682129706397610092842019351693234189327753372938301311299330363082443885280156151309323790626257987350725351502952086617477653705918743558481037003955450476419915099532240284243299953312934361121351079239959472706760170408818534602312619209788823704590891421492470803491004309624067456730360427323734566644128024051767254213321200229999346307783329801236488415567864920338740112518006061482395297908970433086253010475965289256019474478671661135702049663795785239816018103691389335737509742565662820807772307785172989712753612447848309464272704657311037255961276191836259456665942614679219419568965692811859433785667637109274645975511208878997070459124557588863039422075809868889178070509701182286474113013384355748867929466742812675297551001037146881564402408107956899729858315718000877165876828078788400889008694245857885569887668611776483805301059151317724173855291092697945325203868614493339144823891108704707403016286891964960151487097710044610155130877796815386222439980320965505869228670807627689474292096290880676021701064240622757921635753659248904448932083300148031969014788976641980815237419972996214360374566991512210096353813428374793546305955313724054080024130853733545312772672913575720940889298080920084324220232766772158767727897983328065954853137951735186792309048885246146771078696348509279351139963163426760226342800075451913379586095215232242928267254896480098636324992806861655787055191549572559716474100130660732900506656788044551314558155099921587667597564380003288927450585389407435312642826824301501289487906746030943315799099231190600272382827919344753928761393637555611859387824387302908381893091655590595384191872177872907542400054807612018970289520855957307273536224053107422988531111347210175040988134929823609595726732271353190332787419411200870000904235951430318536272244423089408304562813857234120714091370920335714808548595641877078732464445283222840319215786708399121672830456416981276227642936720285506942764355686475380294917618484119622010682850938083408930341989569556358713752404957300234820999280843750374240529886060402330581254894412456255940234263285649762193454268341089155938860296000189509378419476374174728262298588823691803959015511254761316643318656314797259391490236771154574485724786775530437197517351122186941088747453111232174764115769507620636019238998092440959138480734356919227828970351723400326879863315786934928231041428696792865906652950883746154805795954486351006251277636345059216469335577653996013691667868000762372727185982811823357284906642133252260453789639057598880312913598704619453833432326588528074528584614511468364111179530767317536592040641614239496259438298584045795572125005754701486272710123834677842037228308690301942170737285212434766194454672962602924690525140101718028424772984434895120280883093785143279763471820615390929069135221975292319921991149134823953394711414882497040468211017795874326318189075780698844550745511820605967993865773019679431434653367733811754524129235925534707867444279674212050709166923969045917079755338517125057081841922441232348942373110307626410270180557844472333462585766930026460231355963677483310373832621056365985357370683517236205113384157367750022702798885368969964096950045924587307350223175631628761474200568146190723361055980143832112662960885678510483795383018607258378499750082567035327171743255063106213022713582996538787809915645643139171020353912709391812569450495629568253891833448518616762444291256982420290530547306896627974398311044384719469202505974729287341120360346658863006677847073323532019268854315933924413990448899039311108417584793792344444416514127707127923735541573426468747008379632109518698735399633583899467811798774143272928304617297547773866810986961295569040969670640913532603025795916688473119109394744051203148765538063048761366685214308308032447526560836352923035990031217844605337466142792992431891917523743945959492291121596799289149708637777674287217230728997775814281056766875562837913992102674352321004623287566289591026933747991156196135305410985942910490712646958290640910966457713526384477688936750618639863572068251579332515619845615510705950510809001040070541554711124186372625860117539601434739226278575550629495944395996613254939108799734483579213576592932418974975809634094722741766046472967981807542098287104393335749877680088112880383375360577386959615004049742323458404045472377956251668781508733812503410786261045664733412685180080572856962059121984387673169867054330636631103195817763419403401753946757826746134884551564582501050133789102442678759680282504037922364613211603204572230970658912020960220909228766995805597710319951232908747696456849975304589821824271301337183601949870505654190516336441023972155056692007381646038546201469686481960845993363915000073894968044171912724885520523530366631708383199483723456044228393023147132002687618092050099413621797846486187723012622678075685815327235209847907061051219019797326712117027429999835756794088426464681652557460841981529618057296160270259174490807362305262673118115363976957327844665556834480551302109068570904412095555133952779448817013247334056194746596414157971601267782633585552824577365523976566367765459263356697240894683227661379585789859497182740993118287648137118254735027664976372529963490439815079119045794043777747370931892092166848425015430207213698975709190978022216928863249557640888021837164288914517658704967971483184220123876532113474534149038435053301067061809534993450315627270279381678521016113043912329207100468475982641757050563886670893523293874476410261177216516763267224109345666455629357876049586889343703476762494900353480398069295456909859222205420524898462211368139142652756216796017878342729093091395799196106833713512118950382112502444532808270116129686813342735141151514181807904973553243016001274909552797901291559490058712512682068271422225089416723074161638841098938913017371960252375157902822355573674866061770382333019253786096417551241702964844204868018986419822222173887266042888348745263444744971431681519430641751718116291840892070784708802585100628411728451594536163716817396302469731365832838078117758606534789034173728731284874033160601988993506604625482773827686344710723138670598967377863415139232964796589972978287943909855258264015946202855051796666731730464779115116128827788656304730502494179884186630240934398381219497281238382878839517654511340839307088522571368789413039666161436391499251261047283032020441116799159853197237726103147866197274219374263238592379914702330460586122805723137352331598225815967591235127208316581317994186557780076998373927015756809985852189718844173498432024174378077701592197227400566804784288150327430330471947449226331234895557113276387712670633718581120705649998249386609060926612508365401267713550717514687807550669660704214214344306110520942828211846985723331871115489261273213011637094331161249415277588893687201179497370350441203104660680487681557486339100316745337438618889658949917319578146615725660949670833558923590657869130504822174908475557920022681080188929456655980757824596850392370436288243338694633468096877685023383240340512939923702432160828599090087388344482184053277546230036814766755497627725089489746409514733887560262051617680063914434708337300880237529302443113750646653168615326054670892002702295452189144648727633637457470562290280331663371983290338111599730829559223831069775821447073026168372971596114249179830063273966966913253880390142921993490691134734181859337575075467864535128380668092709891973013531243258025183021924059282852257240160864894324184508015470704633126736562448639616630844414585604716018307130620311524189086363954548262657467399307892241154143691048629140330790006937637742130062020593739599166444885799312877508457339028421825730648893956098186623302162157612910011558433657012009424992954483675342212088688466400485505278366474967837578885769745784442756200144664271648285197081891221196969537902282518987989288631568928158487011891843227352769185244703117748786789103209260247208824352705405206372990346739821786756246520998500874111621642592006294637390507189355217386552047674917946676216176968204053607328698401192152104898102275029520339004188841975517072589148738557469270456428829894752248560488452004847755892212217685507076377931889693204584187853427650113333568162994813184373924965113293353410520388713375352728457711876753909194875742144154628815061232355944046539333802650186442535046577932027304126680541934245886477230110322796548228266104235580519659338742082200136477002879775175279550053306434910635340250432425296624009214663701587404372470387560224869526031283941836626474051599434533858229566926312079941598327747551742732396800135041812665408644725409572378513203369161615532083179688194738720462588470033005004355752645194125035823788730546295708408883084213742021384903029653651937313484050240771249057111831530877642373061267321090581816476644780531936550789272561091695015216332364139867074387013574013014431584411655899770062449554685590243676222271764357990373704826381463658965786847875633222378033277272006153323973071490105889381163148301473639143117890099541434306186225060377668429847282158702372796940733705846428781922904025281581187318243606303419886480228854173019172658354841244739973829318588493434159853932520089618017287844366399573612309649263188338530264891343003745134513436829733262607354740125053373507581883038690280231489028753451313339632549414011154722812711183764025299987184415365115217309035207206619211928642139861527390760070645380917435947868874025949703450916460691483877610653690699675672039553090421586368421492784454876750001452798829313161423815501662582334563873455705241152297750119156615359430723268812216653921891919883771237040582024216239894271326888896520704494920872508529727933390232451006790785145252246820612925277212292648370276300097100919698285279302699294847816258743283156346898621699062487007252339301178292887334594992197097787417807956926099478691793651294931053992884797724588434076964160935029092803917743509965264533248335625321100721999531935659091779671884811641022383811607098964821924161389535255715524560553836636917635128615178217714548561988273057772740664426766383175382261597281714164637207543982695134564667048153428272829676046260008530172437817582699137295223109360661767237408595807330284311382163466800086062368034572737476569783385536438342026149347639163390243473828900749834867341414343709836297572082305356693447017964167602802376155567972988596538325786497089271336114320956913519732102423531394229652849237203749695243255598885891161750236473472926591712242798360978893497068257446082732522654659664486278921824413210451120699322823721469018079859570265861763715457424805718801096577961707935750025953889360191286407937983702573287105198169545808362159508186664963480042877564482759454856466429598781927507666723528650998641442260860464975284684225150248442634517027182281692492869850499695653610892275889563975294146855560627028874793711667057540645300003185476669578894634013589366810842202429319366265173708543931713164551460215983051896669331393131463536137509402351147948777066188148567374700220322413089341602068443782543609364970479713227862057432246258140944711639466246990118097818526120463683771487371720976532401373825411690014104201849925783206268395331394294973168591389534090011382910241780081594040411516687495051347354133238167774513615991177837650975537452201721390072031478922213852824548658577669289193190119417529213518724387285023691062347584504935825737711653929558542997961314451419514013954895749579878759959103304991463451484507219155317182047452161483070685640524455495240207723208894680558785669477278430262411891252828870114090541648836650910539360615385115252043820274251165147641359086376807193314081603674803635519450217777108963116533390311713440776774165872519412555370861274196509285697391317469901313475585347001354982351059778383800952271667205587111994598852229949077397928935947831590577296536457914530608704519235226949445349818677858635128318336826489176855976972312030571185219107556296260007291824317308918346705117675924462894079152841955292368365082332786431869806089007839373630438612839329666252814507589145354416313431794540710635100268013048243137448416464425124628511775651694219662676745546737637166171873785985837570953682041355150005521805389405092143739882361280032033034964470774765843525511007521971833216440530909080067872630381730213768911381313162069699114677670612768585276285981787417867436825543273930070519367718681494392197611088143934554713864860713909807387230658698678608641114215437877583029029021762561231703822504409929914686461103362646456018270491785057209065167325386512541520525146896102351200969500723651519676922445983392660049121543755663962824101251228586785612811866179066230764222886633003125906887736891213021016156499245130301897277112100005055227123974908956050297080204149161167610863019741002571474507828559393652583748533749881949343416758173535266765361981129444994575602253845433560424221625828347127362284635376105078535341598625555346956140448536729774450816221374381130509716823056045373023849221547606834520473632502594778489175066916511846309263661727785647066241662136710608800618281678500031887172042504728759889793812369050062874279860702197370410547551954017361295055916964715417948766379153908908816306746799996130497552317922103689663378664315692445265339842007144258905054376269161910631789075856192744758006310512355394536121874213110729086869811225329734693873262837136262253574113269865901213699701846128729013222986646674483963163522359642149391174359483376170594268883225062568838651352662791192905659113057804152524234326958329036583025163067040341717781331032193062248915257453430714709573974848506230819145830659118395922399021074813112626587388636009712716713407603651309328932709581447150276086096606761403991359675077989513199152958900821196071526394254441015713557240351151004182782164001944959543198502725985842987174837445602347719288396358176823496633549313582504977076296636162699030604351445736611257716553847558658951634526091468228591538685799056132834900344891275774386933688068401029657745391251153413787253806446749040289286038826559393362083048408758053560977890783199880950258707830497470585284786343808659860419834665387967542339999811478991737373856351966047866471580131984670410363429483842669643829702199831546961994531749670908138346310650393843136325580266674924638597125514380351172981566009728948878332014620048306511306467580390948768947843630852935880624001551684177749888213339449113728128905122170981613384782118619654415839054014647515918974887272754366557999339784048738477798667028802125340751211332456444409436185899892615550275934017820183427495105449682355009447054337869567978011093809405396979175413434319240568531122909647089602929787613630794582841150102788473155981308544704897765614112915114665630417498706199683892324622089545284522127524059004761850635677834563997584873984892866514577807935724964089033697332975301383398003483591411061709579408272308372719251516413096059787274818573259095384463663877464806701383281914697698110128271824936998120180905522325150059493844825483721685991341218531407735728861183342567654609991809119087151211238292966721768818843227218883613923154722394891884975360348211957922959750078430247013210038483953121010924962736831050745689119691561784833456837264630414867807722637273079570879267284486820661887415542035721608369916046957047827338262164303398646332590202029646580209574411224590966060121204947794164581004311262383947923818396337026867210810236014683964946281035699000082457399883556466554114990318304262803126523400422797607960393250844544800298722393440304339278412953393007253618679268984875848469621342821504384974023634370393451970073238736184438125073387967562405902375729082269097524647888288424593496379097849627018435959826916872374538668872570064254147122162105798456609471813423245021306458940175131934940615214167791949503073040445048595989983251032687059132511516192147672890503129260642262149448441438872412823245035202545589310113095412431893587240801763644311079702785653017343490825453372091154589121452651175244587263112787814361730789065075054630577911524516838887561314834882962712944890090946952067277004405460878072071537956611053133667050916867437109126557836661015191706694004105585467771068631491738703614138314787750299771931640928764241642073343312019586175269821594782133414926083262360131108208374795136275192833989932918632176869908988550668228654637186218113570317110778736156194828765048795362089864969577511167923832443142389942302052283436789201604894336551637969686136813712311498359491416239516660761408612605384568628311596421066952470919959597647540227830106966817466869723598520597155334909977573363379285230257611056606735374607798189170267297092814368209743458401437973237534504203436359550240912196672756423073729497458662701498797786736495289985356584728083719094423157608877671956744124168562537674576031645203732129132148667330808172748885987532499318254258058632211734407535278880550988335990630244005492241281418161897049831927972671173576636117537667405543138210470652471042652556028708394692698616530017333880717289250790743226741501372266946140777690874553478752102580498334638776971657720728660602103884804089424580923697968688535282403060194239752212840014302217922911464007191874766815205841206180539510854542372798262364003195476303869127098167424145504144176370022684462091149053844084158115183309149912683449402788324949903942546922077868848372277482045187792625831384675589502338447662190747647822179284686430216711888664371519004840300650164780953490476720330963345493303959097463792769481714453764587271394733826461725851433927719432778535874479529428705392728496346678134368993762909903812956287031767468745839600985278845242466146121375094526608246927514592955716745041163162027354654615338753606083946122481322824492311937558787625180292778435003067949127176604116172955836049001349006816494565105638775366692957287963242800017470888021446240795845915666000657198943186712223444475618623847076121920074964631796767938441172322160283909765272798160347666802601785812527076787635725751576180036522322082778258512637900659072440735419792558794958980032167618361960228002947170256710932884307640623182160045305375492492782305910767628930588851194407397538151842857785740116997526330573666527114752449484359466435129969981541518545133176629577810604102955275958625791413964483802839373289626367123515059290735048389752661431242820558378659649441898025936343996112890577837083459670070939264262167152763783416880563166174440372939979676454404212417794363941588949171560702545593330108274788050678238691296672420477917144433348229074268966267043503251491462642507067390058989629446794321294528375354149621579535136324209383685274856298425055046826782940038234085217771841270039253205804730059888628619387912180460587017613856119872448638485879960481853350925859877989661771243062768004337652747582495073684908250219758460686382996225995550499956084760640054941548029030365282789020446908498340020481547555140117672975362035180086963250676557123283230983452349600558242920721887937291938353079643302303982957916099776197524946556146494239312409675159265224547674291164830022639818058983425716459007949864840697472832014922133248954666566610310216812612571230308550959018474844191020669976971789526132492020418417516557247110433550928334677232742191526276646936193800778611814078431734808425617033197735723726483891732525161598999372507093244217311258833062324223680399719147659225275270202039348742905266601919286276038058089449735212441492917870148271453258198066169491634124857814329903747482900037085997164456160615016363709053757462738935908501623340526003946063812000579648350730859754767424623266403402288592789521616425869033335343367423589210817410423784902550604347644162533438991957403000338955842969473266835935600863692357018456348286857500036613941943918788484882289829983554925479857393710891890547960147028212862848203476262009498049722683240337920708276813083251818420754401333493343280448940027486414524215049684932215666031748721472652159927121337416372123352368062012105617234906170280765405628369791496472376386475745532057884713486292680445380689959410077386745788433109605960617069485840056913035396541176994768724787562648566090489405002177664765708795225577475697947389036192145467826664676957830454132453832277459361871095891246393770005260751358055582046693960625628658548353007494769931307824592179945347225053217850154791443891730129774547091054873160420284962689308347846736391405757158215606853805675381352975606210890254879067431497883958451211080598183342007777791520443243932539251852585582841150370630408068284455060286936628352746569507378627188601863998309029794816828692893370115432707674059906074350860720772537009028850484562383159215475965639114017966734876021767195805564411021426800370727713540681770534268646851098714910563118583454238700429198118374587194186550977618890248252065196295867894208820914615831065188951562618816941061299361457510470562588463540853974652921591489267815371236100246901850602447763106018522565778888782131201680146532911265722560747452264822112621319276209284078655270122445508251335977447041657484652891053393438517372059425181128345989476028970879491902243555378152601247692974490066612333203369910279604874124800318408173156762734626571175392891659764311447038634773868908747004515124277704853431732637193406151201237976056499113996574969524620581808855483983030374363074708964336915881537410337748421680424170271399986136473128257254334434736298405093634180392153481703888177834052525092191275877121924265196320562487443544473500834879042075941137492211326363633151253107188156843428279577509987272900713531175541496594806226247854465448592837874481860892295332031958098936283497002813897411534171504902738488896409415368443887281260221099239163820495911846549096072783523479915548489211461980872269686890171115436350421053619045285378406642442347394433956454605641087163657606641265004570067899073511375207240198128008591099172038255330728834620966305284460056915007494865401851211703593350618121519394517992349550072732572430346670689787627475413278101438524977607246135581953699551677586374236896755907131673151063888481497393765947020766108204447192061817920373553986112510358148229442868137770282167528401981963343892179403891805413994399961555225012525612194090861361479758204978099854167663818154887782692812304881343842891457438330439701085704782409984456779588481148840486038126358328724573575359873964665522514087653494116277106917081401304864599458805567200828298935346054649286041072158609217963366425449663679470306988923014040020880528371755178859507313513313811645957777839478426470910530097399629494631034326322342636253015654528896179815257036304268549536515496006143507314187611149800069469668270350144203804995322278352115738795096262969892234833206133049994111316249806003651773555368581693817632506742473822573947549078573279065859291520990923589684393261284373073545979146490966325423085535496554238463066111655669667703357958552909697356000930758770928325754546132590797524760443347172548974753245764361605210109121620384753476965017371027285328373818432799741410786171157994079100065333227463936330823649922108880341043036810977150739725210150487725080831215167103500119574164696778358803899099332273396373977207225718239418811298684007681266550852678558236363539699413918494923366465465181019595380988578949839978472755100355932534460943725479704212202846004020691214701758385309796503806887989918344806858056893196735025023074972351861781655135256944234866996369166981018652430452932733327972678946857356318001011038167897842686432267299414698662400110489145570799780513479433014524432552212013286598195498732251305872532238652761460796440551832658874823084616427544458296936637696635001497484251546860033601474309341084199931120964296471145468236075301577805967865188290871177373009394003967798878976761752100328821584063117364531160885884764621589010014042435520450727718574102318686689002587851505269639784430370640985359505739439931516126613881128937420992772842107514428831109038781265855329215229606368760448226487265915497398068422774897753824995778807013172400617581390960212688854550253294505469124922699959450475488430741167193739721448663353476832598743999220417869068594595354018215111519523341610386209221450528967071808139128772309768367061687932420729406314875272539186955452563757051197036976770215363549484386720289946832494378688791978548507031225176420008704639110809141622844407522980290866180341461402168655957606436706052971649340622940120920460970455569755625131482969270879722060043989147450321644973341675019686226035710279278317311769090302267298470005869985224120536475687497804671732344622965052372152665246370401109134309947547152425524464028252048319306463924509839755210472540752755822006529483610073828280178796321197529814565338771537900022912951580460010362528187628503095149694455920431850261049659862749689455992743463220696756093334542755559012350268676132571358929575389153727375125276862414020196456822558910919484722794674753961672591645411367009401608517367593999517385165045968362633880040938705456700533541738841955684958731547117475135221388964570473338372912000991239718688461791527916472934667459050624451993541424599435877108165562371779959464406406343621185235624851385687319883899226183282203019621341940914124183135049366111596974612481416949763671535565459045084063832803433213991685371406803705361937886840807868533075727707109174699011566885676227053762993342630644136814666948018317616395918944685707822032656080074951759812973615044947809939647815669546104168173723128891257651894850076797874357910078439866100240257296206665818429025081325033538677345267953390816299372078369940299423889138302415022300948712713369525377491711153337878286413789383568314521655694892227968534034722229681147211981560993798466692397579174302422252963098041557103852894715848165296911394451398100728371669959371801794682299809236089989396153939552248005790889564730051527016149471715306219796892189692210277253252596529699958642643776658989934574847984949809281631089815419805284015170657602473683712007720172200783184896614004937025236101093929138571673188512572112998785674813833150908920229853243718754462633449120627825743441695806687521462839817293503287444134445799092132711912414015515927409667813499523844924563226627836501993350882290045349743449869082391617094445564670463637761407367154687345387515141340460969914295798016874853004419179020628355618652783868363281979705764447551751294052516215536070295339612556892520419336177967111124735625388331020920225787369476844485101505848804869719540384829189868155116992046730961252208764687158843850993193732801942141665303379601226284791357690932979176857620856081792449742637789584095582558090995626589020671278832536985482721334613196827250746510533842796184023617688382181250401858965092952788468583989187106614098383397929505934515845345835507326514943666125148241383274584469795551603676421906448330728898801627314895539686217728756574049094253126814100076099719004694411141387626533178611229196064943804704897463450548051839969980335582852808437732703201804697252160039051008342327090069675545964486608746916900045085689865206716789099268790983570522766455189535514651014429128875558554776930024329259947393868120452695364097763262928369681297613710290859367169647006274327219192300930328254842453124882755830475666990940291491889059752444085009377153955301472377828650680195337996321514390851730427332801061724803000135180658957932136017136798251019338958764598695921978765464132943542616360707942509588572677878840429519848127035978999773281185222595061601567327361322985810564859115171925368711833407596271733389291680484841307041746232251007807367277354988204650819143347605189240189044688508548053273878255331958707899571899744831019204180904767380444076430279796181475694189886741163258707423733511545593585721210252246009116932859208739958952345879748642891862145216942054644149194278200227486433550689684059320726948630814912629905762492261387396399096076808669604358182767306648888614422767045545856577192022470835425063120759962483615835637967060161317378110492053490042165360819783480685315301248065433042890142847655990084251002057968472769220200586508288039168036402387341251952722552455835529388462469860706003068006264585455140195624206842307413441784924133456847990353455791116262472253227244392754284348767065752852714064688019617845898342832167028141912807777436881137438933351222176281538110181680541892955865789921305318803822176550037067801712851838076986724963570851570871130590809445836039424563505830107348920860177997685713326211243894887635628312857422003652530647899369115356228422316576751544330012774523206890968852111184850142351386213409145946431190892597864528991393926112102726933988135437075141348610790163697389187499558565435042706163577004217946914890324819785952223599289469639605911505121057436237045393164016192999459634602017657025111309055518076787903746569862498064085330511423817123756659342351292109710353335273079626097116435198912883425504568893048892260791823432343740799553869865119753613339780881656917495471020352294912835565744793148726676417084433831188710432653399338495896675925695780580701021459069490264112077885501708841074149013227338977473016302440775626325735254306392392038959232888889302729334812009592478357743311965084430659248187621734900324984435451033649885985840301529925358384947773703325440907175114398108231774270292447938740176618441712788919133896223538233703630323747676055526834169640029667178961993153899400182553435277587962112476281958993540455327440769185592416792666182233257738220862429470784183693444525991769957592755698194319396392970519085080299200012247677216980404811473520050616721670485510263811449356711218530979390205390135215505247793218958100682449797029666193576336432638906700827850180254110453077171663176018929122068812869263735947177865832158809610599580183791934329287631013291299842872100276409006913125386104377609069247502842188686016386994413656607144695540504723945279043880212770907925983031200467022216089368515350796068945213217879366279472715459165074453475362410119541815397338172403410964258368614431132583965060934856138437748637483333684056488456399140320343987200924160154962904930193220762981131539813211378126121016276374480412127166109689262218628711215478780490008548005893602998755483393509464251916330316525760337002322783096962436870918583981937245119944122294029033388062442935025212004178629572356049735636115288448592547287131762162398098268498425204975374505662018786139549051149463529750947475578466923841100578744024365040691322493070319118327262311556911066835998872854173972208197175392766816325165706831945574023365711165826894608691137255836637043505182692409482924289575741714380800824715682166224362264524355099390396892902206723279510214093949609317049310484845952088482299930936649420387174735517178767544909517131722140547776357083407472228935837522168410513415760015089343500339200750889345786747160569834526418210305492445731181506820995554739216886949362860770732340805416682336660609098438793710312771869990213429795403022095762086233225536562600664938438234760014235854853378106772765750104007759168220508859185525031479837070933735923927254960211472527337327812025827090682407250766999275419169130757925965580347496963575156483184578244896614920141262213011617735532636689069004930301881912206150185124393968399155180064996778214892436779052940723701506828852168991583141098681994109600136936430673121170115223683607614733372068941591580614624480329774957427382168847104812878708707637940132026655497886634292812662484674922294427680428355757826617137556077680280371997325544441484668633593454696682432489451553019889286981298439058263940662241720295434842050747020681941351148691898910383331162195563692835678780145160605603039844525372675452314345281598819154198284310689268588459866571185897455898438997555573114510618632451194542756151304092207276782805882617464670919244920701019846992177031668596733910898316102640835384417594797659281120452206489119911888969281783884264591688980778218104623837928385283925632526067171267566504126988165772818192468537397797612324093840317090874552514391654675123193123702525613715319395585160793882520097104412025205520349942544852638653332311005468664246671620248791070019023201732441723006639726106671179945699108059333281832800662537112210933756341849700500654645865223490990448723113448903166708292243150363805635888111925223554318140327673737129057296289158449007093540343763044552886668234728580409179116359953888427315628579323764094763923820550285730610263166263062025454979440596494652885134123825158768029684855757665726249674541900173912214918996633928208434839670932974685306453220716845133022372151321547280216280127142105502729927411553679802127701768162533784012949466977056969003618897056384506603213423637203563366242382608439979540242511381182582859060346201287988366529466409311770636282450385901296935441057234598852328877827668138614487662153049890762919014959024175483955866428162022872128026712127410423260439574042452452477514169130176556957662069174761111467342734652402239268903731670519452080786982751931664997181014680229070039467362488639689143045018464926486354296647253774058991441440492486750860711987912418895246889459976737425938312491677887018611417763504597921685430754548214751823315072888496442530255786841272634789325873049348438102360510662702290599734266826750529806017597327373029692083654006064499445791887549716642602190158687646683351547267265174798588630053432004764547151914304268407991378432064823753883327467725749906276064286817959129783091257592509541355370274250677644090273466511323004400299047207926752419974895227809958323848875284644249820870349131449213563900304531150654573203663693141870355296510259466914734291858181675915672286960164634827058544169238900594741753477502653100256664580441654467331326955503185865152091825449776602794739710993644241292742889390097238158074734128764779930476965536289552402595452461519859156343440043258387595315089077758833306594251632539778004878196737226105071587954265601688990978635305562952628530577122763906937925967710329849053522912786319861906963404497755694434793380428016092951044433216307616282178666402255259429978248567975537706499773790669373711662919794015405038329793657279676705475983632514013188732052392980465949213964122716314376513783568310022630394375427638269788343491600197596922715374173133498158773398983566417819787838395084032579015935088400345304748613244979800334087139279199416143887597142834313403725044444312343916206932076507243397296550778299410923654683131597020470645179397509003841183799962045076542688810562689093458370764470525403937830918952348840550289575072730413310571903142940868220532152551583318641326135055343872325128965578558046353051415831537521775865144882309740691972566711190582921657498123949904014677061380749323262673058688152835161103979076046999642949316066813481204151038075204988496787365200691600741761479411831138245418929668798542254712608539577636894466992505368751515854837168578509174615938934076214837005172295269343708915344053109246479436456879476132632252733809061674196923459189550206813064527721040583527939350026790899465148435065706901129023480793227507690247617752543543839827176423511348899324930832296255265524903712778201458438109868706109968044056094065867911247021864534712166145440975893979317827516931827327065028572223415938458400997172261210269904469101647374103048065972393948544857238138417712213711474329389752383374105381482614908914180637569923381820676812140996528070691550603186378324219236631800127693441577919894419908143361963872809146865194499565417250083163189134630604594679307185601330665038132815658970722773946303022636927157305001098125745552910334686672783802722628701138880276556118030845350014719523970058454735410063165103229864902270003496094676807992702428932778181327265645504752916677967369798463998045993214884647998825336682613825279338234329158647955332007500963616463084363037564478230896856949985686515258998953185769190442412541189230529076913573876432342507761227170204279111636984722765714934918725581417423052775726726737428507986914425020592590537533250215639427556401784828104059837614010244147157669398640906451533758498150280140790169870234722764508638208746799664862703492391928880648494132713807903203822009740145813069596336241782427022868258217143966519932198424261095019876854180146197703203829330556526825110751297076956779974728345673889791262999802542088221719897917776364509844428534392599321104403848834684708137412981239143230067247820488222558023466070860419613695969796986881177921061230282401794460999451962342584970208831955731195581728982376721156477629314921499351413436741956652072423119246006560677305590000908526736329268934416529753542555855716085866115922573788499457522356083687182850108359809834192478247324809829133768694230038635802960903060673695571803014730152678221535080327019658898716147162544455895530081945526079758730255424815597400923803438091537038229281459100327725461247384173897278195068921127822441337692644378031378296284540938034303670573146978113277321637017609427991741572928738440093793017508157983073554481066993526141775689901828600938232714222129421337889076914906991861366968997149877288952033004598665057316837701436828690060259820483288459625781390095591366285233249993752702106815575206718118561027646891185398758792211373493509889292434740505009828751128911473445911636403878725451808292761849043809387315929112512783924943150803137829742004201778519821879860743224475837787490676661299203251155492031787989715682063064436612466121892075205047655328920095291353167189506928836083030128902840505577576811378450163907650927396717042843450090819462971291383666087052570271605829294430057640706402814574482099154445316842002568061029446851629036630058167837231179342591161853101652702236120319071981904366587720003096238622197477910674758903998593946890118452770724026123742465593946623215679069908944581714718897132727217183419528868934299422646417384482096882142602522486821105005649290304310891359186112227338347800382232340615945709331490938292545769874596027205268309381815533187008628379541631932192782424090027311603755479538043478348856714550759482134340241862170645847105928676462493462810900348299354438816688491895253492379023138435282439288616453826023569711641104946135012851542060255807424773387076328779846154310254291277294810140376363733603740539834673450823624044792760624710895349036913300804805848389854084168164801020506750002017652046679058344239667950267345274220072969068097130465979106549991620888898157267449135463509786505251964027152592135852968509317490435038447682890044550061840347819075865036267230092356939811930070965745546534490748601551267559674442514721891413122019842413091503773928810380642637656657331043406584815305717785120157732234341961659031286243398854145848715285905664764592461672796403244887552208340778121998979758797547200807890776668986855460615744189324864128433695293232043228806194462491120920295855332707694255853805890033110085210126128704727881617583888490378433325475726229672337255245201864049131341579012629713492150656854747020947054679547449951027112698238232830700664498136524822630474184077175069367775339521688760864504528894020902311255784357258129207162576941285062324983901017903812282200951043490376089095274093918048521508478878704956816685214928273009150281584833290803523318518810390698171452041052084483151095860824482301197088810469135149961767603722270638987692872703643050085133809955848850419150450974113840806213713791486881409001935914875374134433066978819244777326027626461244611495281895300101633384757705546505193536072191049370493524223797141810300027135023524945054410367887468880601772968781733504402546191099090909598453474409940168156109759100682824564693073405458354190220993302572567741757324801505642862708770936873413047693217520807084769921107928980713025723442318169924621741670350263654481227141339774457740612580127923975963166298237520245757675382210635247107736199610835780513378485614157128777461472936390425495713709745945376901082296770908932834251923449033795877226996209607958474719863896297586761600892284509449913228946462674375196730589466429965651604202588653360854473923798079047012538729013833842484988930651671587158393134237633596524953275286171621129191105209979339422431874630120442011981532921858496655801137448237008313121417180378775555176458358165622088719961224299432683210588050666687084251751530418856742132720948859911143108764334370116500901187174861939633129373914454213367777276425710695543697630685271888713155828819490542932584820478023629825392564550788527250827714364100362673325949826553415748164140248651110888615694450683862538757658176198536813973474936770802891120605592739911770675229178412020204924364652635395100530635022209689154642751882065198663132069269906076311910199658024710214800245897633908392339895888166315913408282027505724553675072049850672116622334175986890061194492098340787839718477066436774823129719882519565170265420606167660739890406782782785528752561568216539171391602914839599985252996817970823263759672108257125481921812293826195171272298872802588211385112179084590744971279572985620540158359332892457616088844662163274496102964628967924994328880903681247289748510271681256443333971370313263781460711424608799277551674341284187185941067759831868904487118855859342947565884090425559096625242776989274309339749041265270432989869131812965326586110348365711435508317051910678278594977567414034128431123193380044733195084972088774552761515023149758279357866193323708821496303559173046851050907100651823590632107163603374656089858014361970567147477429556752166298730359249976552027920030641548238122640951239270436359862221583160021771763930274553296976679929316257718203242958125236102870283258116388007344003436193347112350835316874096133772693099924275561553427510272653044321179357705126182627006253553685775121366845026939018191671469518920562603935333749413265750443648657902151081374990821868044991249166471439060143805783254407769249606688605340134248843077313661502076247612947354802172471851344559221662563231412303449921290192698117383165521158422725146092897369996345739818230472140969532928251276300047704852413071980656183347590779606211899528819381481045216845774157977635759195219507909140714911177616023205484600844812168586773564411948853866557964590045106131957477720845365970178332738685950545359195749425052580773409535882826241622043801420326944902086391352898282715058043144463404090204988857909086814176176634867813368658082092388666531879456800545039367842917908483905334083454527862728829816338204104989148185303364824817383348240124757812194629694331454130755782532274637664775732585120883774177302838965090106408886481981921918085908556869450108804517813948262998831178527325504583942886335692968235625365570667175451184371235488554629228675796713890137720354300155006069474006726142292400724400035609011698058449785518131986008825229282263258467314642015107947395290094955716541171493560355727394603965698806255151002692455056950832495063415980941381283125382912472499711394428957156629411593400759884978842081953651700666556946262929391544901223420378068634425648692926466303396322559414548551176052147412473234070979992555995694384074604958164306978908443128244257104572730793430913502409471340424959318528940958635308611161460255135060532614718808802547510104781176293796527495477076161822491469066092209265638045142269485472165173370826295523275476890397560141919765573099292852369642795328459668107360414516821980860318209382368125329237807269830296057962924390975090210781947671933583452602551501337972005283814428503058367303605231502893156884836688000436520392648630456712842961254911659259871089781058985056331655018448199305336599463334776904854857385475522711021280155577020384082546345390185028184699008081888028914254636649167792691767064742374970781244860273744612312431206698509618832946808109197378730813709699379212307163930620358045873145930941436172804388051155792158629092084938661352691562375684618709283570778326551754008786363038330640566612846874683778248042511914062211414914113294891065899601419644103392146833768220321102865051733926216454036026503177137471770474253693231756269868643289801152675181916486561371838707308941394478605454931694139067515999142995435914757131054849764973874691097580657420630034180212571652314489584764458650843819556043734359179022646496994299887160778011024386857796777379177624364006516329830009817205436175188032740309102128127827780902538927696889227523254536861456516078758119708374706551007334113436312460261653818172230254330092059582511647959425424314757270143767713668904762629169906162332258575648786340474456745473445849818658616377023964362067808046248967236340481620812828712100822816998060385284492016434706771105952135149183505476329520286905656892883898765841749763937799016094586282155654767604329614713159821774950986073193261321075302301415432058449494872562140546042675004055188129800407391899868025345019590047723080582943990176592797158224788034708172935601770021201317259787731273146294740985579641907516658881921073195177438123565661473135012517077956077001065683317286104304259300126731142948474692862724999389142041357145556314437938766117166126359220623646905271558724327518281017176192976086423697215260890370134115258821300628303293859485862570019034830831063114044213580118248379387013548714730160151334932398138385083596036681204958108593593560228402831856021733136342156358174132807041121408414844939020759728052860269235655141489041884281277519059880291066138616329086671856504660744689501973302546641594011815714342483986845457091761258779093125365614545247473049162862075211899174283535865680943568194361604631330517319491059072887634108014877101621494393923557255462058755564355664222406928249205971588355831307804601821466622238866085618823327529075013320398750627635414634744430393025113226684842944226290565620615852099153589945213764414957255283987455765902717191194699852444245050793263340742755557955778598546660478940956615610076038228939066017469707386529016566817009863863788617219938866390142121122855535768895550724877694447293187035709119752592860180870538105043616971214462433625691576179647494323818998990954905339645064777771450909076775299726772384562301758205548185273903921327933066697327576619590024994010429339909723122589576111171739935376074461934202436115698524536141939473228684150375512922738281528473567433575682237836314406226411683002323528483682773285559007286908668334726818344061235316139354851003380368980481485635586464593651106287567190340218052001549146599939223689434927274156972482761636089137828819298646475460982200123661402430719429894272260653591928147277759526553272523382713669389564163762655905451968823559729760690090387526353676821368319847712124310760529559143059326175672974782003639437766439785167562170840245666491855654387422153306677943054429052088187385707441152281758177575098148370441444570399351227274167355021628826748631020835831642146866660290302690628656752270694268732262251915922223694949422330324429788417786319471894736964781670217377611820525557403867994446488149780291184848581401772534205392991599283586121917342426862769316212108317028385967555899695745768479218645196323810940552328508013745951225743089106977636534923296346856714822543551156247325338017100496953988460341170542288608923032297130915854561763293376758291637696348535297908950019682893968327612240629727271793748653238934137377702670123722317296879245620146955583486933173775125239572705911381156427554552442370861959997717524449651568620414976286818721568030450478713046061651376903163609586434139802952531121454298957822020014992978791210465134945882935098816446604673553185788715549653626414560798778535646510429653209459393051361994950926817749383452789683590092958102023810559865817563294205277476854532372277648834325352955627942182788033625705963682209087643924607491350837149883137309047916539277516951769892631221554521590454046726656882227147426054962524775603132725179692344525888902099508651941780155832059016787078521687730866217636769083456927135808395955087475657553596811048807191797828096703491081309015176003998333848268597106316466593014008417218861039995481830864534079271526448286532265801210909795832598751908717728241334182477199106656548813257635459471466444308402652018136730901040119139263181959894792604126739588739544916510994945263272754146263653185080997237797873111655774582909172263157485165582892765502160389970162669225528424783204689259229978377123445341327655250577115737379294707338193276995070887043977102565726825793816011428438087848820014781356885172728039966056170314138566669319103306597389535703975064383858829809141798216786862485217023703822808380044341377100643905112196252917806990507778348649744786054839856715283800248334329795650396286246962720168883190110861251329229754385123281789160705790810759014514272734137194241366344488393000551751044714020526914081456458675714824936454650059863568936382127504864496254816558153243263172681768102788957784244520318078196381435067748625244139253100545115581275275125749125056547665233748523322504734618815076845230826361879321969255617867627406452692979987367402923263260206898745080840590817078744557010877981063698553110297627667500617500497956106906896657665569711354931370257786699612523842982227349493758447726021224269732336068097076930459250840978145012043016035140524741551922628759291960881753007811984673178809807942138290954173802954743450803680020213334893301868752112131565896274187671442422029407650218507574665306643130462371382602561699445888812176376039500365701177794216655154254058574861634385356556065556784868856709823342723169315932788394859861030451870013443302387824646195151996151696607495280475217742199390591989378783606434650301158932190801655239516740576695167395656575146438842835943428859778426198248596044071454499923141408413878004802686107580705745588869852802024749709472317366659110911207298506239462559042336741023971344596776564414314465807428001571074995130706155844618948805889851232848393096028913492280029498727621430280094432423438675136335240195487358548069215889987672491441369222718309076172627322761120479357029566117873447462933305863396023561233745059819096359174054510516526848475861353057602535322829046641784913652898135908815228271931919316794955037868733750655707702834945388473002827395834221395315484628020799976928324128273244056503551003905344475134932215959475989679384531410925852662727602294575689193614690687518280499888380633573577699845530255512478490939882981238285944943132300086253934766664150780460048217836143455511240663592249371029875742855899952944094865262978397578487966950438221646189505757708237415247020632193637251941332991600363833776315242224400679656123939079312142367746427790890295066036172090519717420236113303864826358786229932336493612765130884148386141814654646723838009410228814699657697024269097246989741987419890270000524736000650645337457759036242415068927441117462263226918004431163948122188868312154882571016126292357648466848871713722554592865176032402259014159294202697287624950432537325211187552579652359868046068601686049848149138835339819857967706878328388300030099345155361874875681586163402198181110538697181804124849658204961122582623317929760984272172653583168374932751867420745232226740095526793145904781518638555866266097086612262300453584093341797628849238262691528196418691060197988552262782304525410673201405499484279168194800229460209385943527403963592107906228576061784258024826781595866046003690837127636004503682140720939050646677846373614189331226707934037977566065623270096986412102401202024886181380062658294980931997970375950139139786547684679504965042565383240960454609486588080359030233858652319776438047893959398787032462108155691559831371057252796914654801372881057481184094876330543847916957452474572939643810120435493788906771759739889160857224534949445110280332315019025684331575403436375101598149736229808165090423878067864890124623027782223720464435289036974438372257689248812878546956063479020542922341973456753169373687782196996005591949274644267648166976529630102399253909641942610949071141114666361699150598593572082483849984571659146689266104311062234551266761871542251206485328267989773937134034827557065341249514065604423651686731626879564370763971738006534936311979530481406357165948278074974485716391788353487763615499888005235257986434735025845501078639254565409468533918376493504353270770773711475265413585694736063324823524613322240267998236521423045512382463804651763905427158956959303949283496765127319305757085725765796602420429745368978630723822923433787253962369911848397813339004722601753919103467050912152610985648269510869847239602092037070365369141698141444006318697554772732471971892518930339875009051652844606106792175166804857551019941688774124981123876997102662304444831200273233296687896698667390674922541557941955363817280951907389679172757494738821681804676465573353929365688541258137776145072408769000205126407467743265140800770643788219546781182795946121882045497612834380381074016226118107687114156750286983827134673641886717350026254533337287116018730540691067362619685168547193087825220159383412152707462359290221708356806521421096916511083867097937944264589888518702675109102139612149032663340458663843937978582783162893338098039231480552769879511409521527530195159509885951673379183808907405240962444145969973006562366226984781058767653480957862630847172344635781787768051879718947891735486562094949602091720366719864985035150120273741457716948555624416153584192648860464730136301646675574672471238572092067545576070327360074138835819527505440006647042075489152519101418158923997200971642176761635426252008461551036188427796638703200243703293256574370550340520286934288987696724064245956707559469640014249266169620015826334231744390213770170278963867529821937274259193065849173169375065414049356341404668261490250981501547857135018993956719033346655442921567766771126074189139943209368286152175691162386392755859185322845214475478748590140620155074493841014710303587675748003054146666055290742217324589036125579058584623357809345614661999005844161896356700476527025879300060783487937011739865245541391270157073115708464361725871057422740472890834769675462252727715494224085857885472693126987138260087195305477969203357993560430866311483484472950189813031827393859053477168656372776227802534211517914852976198416161838648351934822818985085080483531746370603994698487161281775497984171184028360977473325043060296317894439602125051619138588748027550803312972239217422901551000468738249774801680730371628810732194918764746606282635560759200658786822997823285022646571533308914403112924075960802775359366659130451117152724543894944111469863134367086735889951869563188682847068400568163291294203040981664265264160715373871980369209538741079374819778550487971640081291464936153918618573315251714505016038243831455132267924611132024544006788096464126465458814208883265830207280829675432931766646460050415825854402669071439699289028024399346310640583065744115744062996633037618922045343805272916189856544959857502284705837942658608867558720208768369603824495516387592597695990035444956120542955643433287186998491831076399304340975911160203041027618356349035384591599473655791326555502444043940686325552903573579400853110517541152876404936993217349743023837594432446951314910536794269008723537296481529522170207757998152733377496915590260500879271594093838702067219699180624405798889613570386978050724135161164146891026660799459213970118748600036982263435809441873421809593150144422118134963286512151035455295533805204553412405365065996601921510688919998447157221829835645815985229751765398024402470814602847369694287898441505713226720043625218812702324277081947213714875372402064871848517828404162399465803496410102905304516025308073876311571311817678220202433922996704476750970210545836874016157989925669999484984115744740896806626578566462073985867547254347893442263924525388680269184730013457693614445897055849551010799201131282586646750453916883774270053504589806465144364086296867198299353183588007115731580958066343824222860709126171527898164763626001885730370730881650714737309931798640030434312606210399236449774888193432284268174407787245184310406448457316430922378678892124838800863684919886721806840045771143538286804100849618910060045811115174926478853986416348828608356825315129598743223728766445824568429173819712657319048149724236449866818936501708644535840678108508184005312082709685761439477032488557634472628512343638413891644307349572680740054084450541422444484181992621555220637209698303056870055496607929889264708146876602660837281007272342048206146295720065336119991732726070235652526691741033077372724470649065699067611968229512076274451665843509521716662791704188681347954157350137407019538519050388240214809478854573223845360012735552068051077646532171701640533920782012187825598564508996407211749980540572864814562703562033753426551252753354007681459931394233278409593250265949670578744875860926946515830668976769199863682954370962858960617437357888420127196658360899485075655590828852404859572986345131505907893991520987736696618993876198077632321655181509613974355891420417316496976225433795191024860640019469201269038113451480722923590453529413478533862140563537111506257335397295643131819551578943731192830770434703981456230197834619029691477436750785957940024350528256602169757470071333826379481805824033124332608394837250726987161742166358633584424850458293544435546846658875837396727656325157520664619067199232603218553685905250574687252096017655868517739966934355870915102266704802579569630087925414996246875621942932757689842939835554184004302386535896880951953414542556191131779231135966205826183627033556175625275056578767644688563122257140666154508991513387119882249539109693448149397277186039062924172689470316220441144380612246454033761824464561652203828502834711148605485049235824469795549009503268480746185029813948363659979146933039181124718092679390170742219193564899254304336388430925645235899773930525323694979810552367457602409228727062606280121382467374163719346637791537913670500946524691384704302114958586898272475875869524379227465837559851155705810616661425484838341976610325309668658127953003956264546847618438005565423587114801584485584934724353633526191890741076670965364249132976622393641731091491069052409588681290623457707025655578244156254829217581708811534612251305400375479191072700554067474803467166765235215058692101974107916579958465663228771409877098127794817953704685703634150623118925667723282744394856315209041272648418387456315283956967153353203038507574473210599672048581326557994801486977395937468830058949639890237597211474518512154674479778457045348428576029860249371141721370668490881296103405627854607148072390520072349686668268249280142381466934862622076077674374386699393511425280059623882177800607018122963389409801224007368252826273198051455347906896629467835232846423637179705289884882290236400874908213322143794509170327222620108939003215745667306807760563291218511850164550375810854458728365553723279504407127397120116603265299021153699043502793096404850849055005557054392102988369138192898731278118197883185207071909095635772866401391686995302272161776873889157250165616977038324920669778117523004445008171685151250391950228469341699723233282651449363926540737329848815915687846788122805707528236510633461192357420826612541504421329711694605675020694421527589577099365273652196452122751308929382153275862552089364021534934224651913143744015843853717448541142333298279398556444079250652404797583409611165142393178670247008403456058456295471394233324022486148600018834702191218633490634263310526590099305694018329107028861259464570164710605544853958008278771375822484105334853472172784976429248955994212819685305789327706074144940084569387776763854023324642812696410033148839483707920553413846297966780436312232290595737543047116340520377894980507743729902515219872762778065976356603053327450653005713607631799528220751594740474266640638568045151279285035566401053382065733789887886674803845278797449822054158341505076057166741856538266039740574330566638911466293600877161359441955333253826328897983452845071864503192366840415351211652120879142592276315750841845199278554054648624445902142558998907337377729116835063264961738349690842255976278948483136249717945247446670568959376394003815024477524620251774377557696720977022882529017744067445764529040871296512822492490675500083905326978455773667874233100791112267729859016549380368867786518374797215033739413909389858284548948750483859068847030882814093674688748794757460354009825692835785222214293520507674470779915129250493558842029336667056072856578582403355994624357623546803084753336241746397529319915736395905740083879206063846032870603106390114100680210760725950668443728201644315874458201312278381479729333465979554949123998138238817256889948548115480350524044301222515366149170361779214497333315411861437644098127047747922893132187228998282362969859582441998005040973898181121617843877161375198271805110842279458110413316593157185124696874053271661258174806887929991945823783786942617047805477890106386964100799948527666733413369172237293207842152820339985308857045037242611050014695675344459731184779967321143330189986090536990305640332302061102691827936184253020302308430427224072947375408614426068598247940602487407341690980208356321348304946070584150903137794575980463275215610716549966474314804043460856084277860598114328168980086829599454159321285593108040192613770669412536648984156791255828340148717783244185274417440597737036749340542814056803000717743951987722827113675075130505051874992577392204549458713852410934609977742597084490312766981250347665597041630152042565914404182654144395098752936549103330733495546474816696330926815515916875791583670475655878865247141589380828988590668023120384478661729095466965341820459024791159908099302709424255686704937905448333182853837659838189824899540277771085817485573156014906598693772111132293427026010509544990464693795749882811703370480371003241954669440558519707461602685560950257866206240406501817357935594286570900015384284013459179903263496219740257759087742202585544171108706131699025786096740290756530188203813717499722979352708276714343090481550430143864685426495382842145012407939165007035172445134671771853096619878052115058158764623902597389625186571625230093522574093637714221914776323368869219920637832953701787946856170082411276479286789285016663662095776477903091055428260222393629406118593485357713615983484690840862524442548237574866698883829888519656120317327012305287333004917706605382412575828535370009842219281253269591385881147687476194908763285295180098010192762277840805855821897454294615137226799100816271410283632908851002349026783280743343307817771769605797087321469953611695077656076430009847983955667214333320558702826131598866035252935957635553190790216014572024230388651533204400797425200459516922678504181886331590868580793911775159656456238999636656774268786312536209848672829608348967326654598959391419322505646299806593500975195603332987230810267566714439426259583958420633260901214445861655561381036088601926796921666154835291273988960419324044767426404260200953834023522439646599135616643112501725822846061992388012323165629511065970180626533704360180336768330523162125041617061506118555398606510596972976949326049619783054520171325048140992086266049639839849973958013984403149776049609450705477111532713743764909088035905135731093255629402430395997642567159258923634540244549031301232009429768241311864539711796955751955275136612345078449619698286487725679521478209858661558419937310251666772599169251016569780249473176256798476991604573410158905888344863471698058621094493178182108576328094488810740802102883944165388651816604003346405210826406044516067483231029766774061868099161469024118642053734436065494333893801888090794159163023512288294696864881960022742705978838825481932243514898191230680788090767486939629314487931262404225065299596837562594904903160494428460811346454817760845924368597920995806821838521379487112095297038952637473131927107120848395338428912565688498609826934500653023884761541855935909796689348444527148989677933760507585550576776050249466730127123135972045623808213892413518672635897111763706000837513765221087799161494133464376483367758393911784154269069654789523923133615934010635634815161402563526347362154567323086722149124279768096433266764714306599054885055497868683844932495359190429711476274913115839682086107088144299941544411074546896648790271987970348206725899357787860620927986506548581630533542270525390289673713738070265730432089176480027216039352160417882820930892045087173369675586236315651384344715330122638024594711194514086014685226571705019892924771151754140053659818477228208614889119459087820152145458942202272869177390683617516304262350346364824547346365118834562107685932398118702295142888180851913089488006905530291205228467390548166461023797640121592052066754991652561645129892861108614225915020346375734464384909954447554600379444281148322847677976344295032031163102954478061930987630071502017607707405428137270937193956783452097081637065314028739282298992184851917163398112400164686834993883622370239435947101714017420004539608865873406309592037252464911558103441758524703784024446727167368862168435976045376471269068679302982279247315746231451692503273334849954214717170198327862085645771638560084976268531996790459894651033420658968460426414933794046065572258546568307355182235203619521873213954027880313410024607363377551200063895073598021461972499239241222271154107601716385861189722951204771974479230678136394202351560925772777134433548140325659226469570304052560872912029199133703022715954147777122182496535201910355458443494074611274794929381470366903944258636161104179468856588670544402396094047064049588776957524951415130130101973220913238630567004681370459044290354839589228393114454453317586204392546215272122649071276189112739132891264292758212330139618196069571100406211831449470589661027218553756135954969673925640143716498511824654000355425595352133161706810733472736052664431027127808030849274762462928703509553130657950906555995212923641843849121066996459025257787112606652099514414692312375115422405300838708916329970791808044538098375199464920704224679631087321885252557764061609007529422430664097163303319463472710117313768320921120500522941242461245044328308342657565740779204842725149029029180206458364304162244627040883481390956165609210226836645985822899159466551472772164360751629814629145753599220677543438709404936436758556673117492686562689723665234695846004961205679203867230034722024249535458447066560487215886694892730131797452436212444567967829148580312369063095353743910232873336549189433379324840581883562358889440159517616157982697803412149203875991920196607863816537867532237015528976751290203936926528470502824162592848683096091512942935522878208978501646480928112429316035611813936042571564142589793806021652404032722548626136069946171276764906945421744591639244595277080791390133574898268627695328522003590393066578937480146240409774340802642364022780086660071283691417097760441832315853251774578616425469580770536382344592271599569223926103636332382506221257851097181653234884940586987236005481196560802552556343578698743595455591712589524604583693715935261875597198593365812716493802123662692451326043790036473924468813378200491289339349035858697829816127945041015372062540100905121538546046028020542177723855445335189366182258575206731478204672149399852027859341375366263036725418576935902644798617579513406535066750669669946767395491290173383784532735544586105444014926766816181936442538091708060667102745015727053280315368742843169948555769764264260538777604404335849545925829854177807424913793768044341441514263645239171755599945520611117717426209683616974648274414798215836033417164469013878308247876825585263436947111361625746563207257912992093073095154226789503614126882697327597586136134368538704091978299607533595698064209229916568421046427378034234632818816137498246178341156940973765540737973663086277133021495153927735334963685040354560367167908682977179412383069953135303415194337154818158796105653748287932853007529730075198482942303355942842512517470702401903184704534706344966859894934546800006779196498818719527189662982349297456037376317136041152800199202026072010008542566231514450580766240034328922289195323761561625513331564267107803343432798011709373135940774687700728920183337153455905135449689675099322349103674943013985836124775976062628615620744797883259763602582119613888977742440501922284321687669923625535127101624840236303587926962081398878747412961581111940801818050928492860186906098835463658947411255121468030530264467380364989633854852206466146393028212222373824355086904235221356013289762920477332689824955573933517186255403763087724441074828887090380484496062609896878080164225917639610203051503031489457084886359685169340709103491096083766828919002111404667380821367750984427766998051793007220867265305525346171640860332676727800962926727701886057837329866569825321785897953377504323427455351829339851064908585293765865639556060457605596389646978481675980371973857920619563963390623160706421734561748127275850495215646436700141135523385925094383438594806218733944730689735069004502888278959194731939064707433705872021882058213066601566954636994473841277340463911826925869515572603564406438158312939314207972603370822793080213886051194346076293155088903291289496474906415492105748317511102955772467602616272559869517291289939573612093121160565128019804923326768364949897341783865087602938790862608904497496581657345145289093673051881303628514895691823271012766899579451640822427070677474490968232895873889141405237816544344359095008507267346224669722605195943267890198963843300857477694156875311725588928509862138988913993083629504789133991263190225153217568167528967714636224481314869442806169609136183861509838162413847778597633655414039283129711002551326014306501291519172353033381383505239583792561533938537630198317176288457308067653321473993254428483565729141077995792737251325152153821491551327059128063371760416575107272277840254575131151892628938947331552067786399597563288933852030686802600405031144172190374047710682502391555531281560882377155018267667613137773784477506520048926749568821479602707522253501869706471897236817697393475911501372272066344581890837867198665694968096323076810469165126511195255761847830970752555574534326231325403897401972321283838437985954411511530971850784429803703902683978680703436965998091838321089754176116080335645086009466674587024516746241618372972876429200818127468973673008175177651580459883541734460219895865881851201220415225709228293923376341063912020073641001622524592024510274916916635465777254479336937082888107903073209769619061299357796643632781669587717123456841793646933474341726866448052709484087441640331380894084013886922480232027435881293013611905639492923341137638009892284857867519253535537291840775538155508791999050839324994974731684321810689961845019371891080937226698983856256401204200463633613592861236772263905462533463989908967016445348916758265468590095277379745510722930270165216048349930493082831311349486329566211755490484109351084724963833457128495640074981141537467489163324382470165965616185119521472268336411983334890652413417438077908361748267363735055670468664519199203996522802818366455401927984464122445709109262840134190675563793275755834068780124908957378041403741665252895146382745035918335956126250420392082855440978340782354439270790925762720360118424128139288009651764500236529251391980177043938532401169397384628655680982475846068161592827310088345822577503348425219388653331349972907617394316307792964087430939588862045895251210325774683721850571711354941014396948048168128990184462023458572470399099709469040931229130468875403400692668423116013205712381337274530384059741664501248625165050085773822533956827708654362307424318443476531247599857338052163214993475611672311352606956310200928944460113844281541796384446511319972897641579212758825368264774247393362160567510560819901423593763990941195686666931858539311007187900144172303929217494505340111328229524386495138871914939156086441738645800417144786031640223383548974793764103419648309904568107815590667678763383373694539910456577290111360463909740641728979398603908492646063664125099963722295742008303461993369760262828684783658693402066909348220558946236738701421299678882883450663764163352093480511274246187267919057469999218879606411705121566476623882943856618157149056133783001736441103680542239739862790600234929578603662990756506160247795868016925073443025810439828936457409845670937177190296457714495823504182341372350872096526315651666932240131523910635343894789707557907769131034730784138719845266355291678861755646786392851728488427602845012392649461661926212987243601292283744758904522564618372438268494428937992915960466565333181429977153909916166818581809030917272317248400723396218865418320814105190546496232881706618097596274175174432214102051388447175339564767658453989535667602518547582935488018768312050730117250874728637344119343240034155520339075447224760352784811249429050001118382625285720872752677080142206870558272335417493595342799956976202705035993998215420245533976288421970445579261604806488868033684850452356021255899766665670968172016325914395669954564472929531406101512129397018457469449585994728468675035952399467395224941891835457994704959967011961315156148852281800950462893546036897386887358368626921573200738697717765842267627259723285116007077403332736476707671371085998362283073920604459914679144450307558879596658631832749264478134998244471100286157295831136825542227269510931967975975869195231227152870195612964880159418953830009343694143143819181890855224255236267746421933098763004052990926866828030555995130691167335199927731970670843786355969355802337408252803354379559158649530222531686328033066883200019458286218946286130559532841339872325720404554944660149712475525657187912438458720144536851173460725437849129109587220238364855404417642905445735520213085984653006693867800587308793821988493759899865929373386024182689365618706115798681681225965158466194319115555213175748024421525691314100318011838237589472300141359509379491324924421595096195749191101703995618231872334362817542299609220093241370687373554984844953850335730746762946416294140830381106977337776013915964056901034054389719736912109541859553651080411287179743630738046777425299758754586883936274945433275849940564927444728573570334235831688966452928862473379193115014678788034688793323300159162111753277648562723561405427649685237275670564016569192268546247984535315319627288177166774136121288754548317272827990012417013661032352152578126703532969081125271111073575954573291150315854236243205224010562102275900286183572738864075942073738942682244894119507625160273821160632430774409891464048941801527575221534923449437562906218328181705374731600217824680714018102264467198822164973904390782302293026191594675542366760795567067180660736081592104931255056607572529188774330427297431651469387384081944225362427106909214014518442812723470911648939686908847488864849378837220886518426836915206044350098313610534976429806444497654060862672328932809226235448035879155832637981370296595040628834848834265959369490797634773438826227618980610698138930114222870438493151143066944399440975397234943070748975848618523165320507922795532976833472192938810079551402097102889545337848991817098450133584289946566756444211474420989298092779735436509858669463989622575965237497398465456327232067404132620669547371888897558703020594107489712977458365641656685785553867519643794322356965282736952410482716287046372600196756116703643208799218331002373627857819898027991467906115400253609434375315337792606599877192229917610871258740533449909936635739431205327663206085585462183135233982816932885158457627276754967371687835404965577879267302943302654761618977463622230630101748495585491215765803942982950575906969023908197335290919634987560224818325320039024138756574356101360116879807166623411329301433421976760597444658016479014998360059384517079611801922430096968373005006545176460808012806253111319293744563520569919958268128586965737994995055585404979138096529569115202608622702660475529939106632032172711445072067105887015785592634104011372121656156856661411736462113180598997744285716102710466152305812349358172306131901107808822002501183912034158906250356610762197241551447218978081202172637489428369316082815739059053720199619329172617425525789712697613830049872525241257590584870585781914670696936986490915888544995692632027292567122233271853815103938808475117702982340343356580394488790468985278786455549135437392130524371056236094547235060672526809293253348737969814976015496385637400701595646876013062389810893171587008483491708409272126612167722419442821625628207542526546779749334563518011931976487945894017621204909211913704834026565419108299336511743943017877615729860829706976799290130075354063036159554838606045710665624111271659587653939412110571933013304147905031138541171022575799705201459687177988428182916094511465491879113346826216584157530190647293482678971727544242512546305285213405491011538407210472328775016614534142786247375344235838063327383813813825819396313533181640226808422005281906180473296973411593976273979472141420737762757887243448202936784369218589688761692357910857346516246566306985895433404231029236680779134973541221271916949651045713016025478528524505292292937227335604321034166551448843716872957079823751869172494967962085220373181512503633191558615006964900661536552430241485223724737131173810699723240313495536726536027891633724334843782357020590955951005292600550568161321998856314989365329933908998946484143070483178629434429593993858125032748472831686073006417069827426447675545892316488659679975877541170421580591416038019816051697931262256560946313422058811503848166267295576371509953220579293881144122362065743861621520892675986074820199568962023903263725284602217017022843860428711741245649894833570101655456995305597153040158818178842281402297365178885819054336939209992857371033518796857027299099309631981882281776483374784385918388414331010716452330135478532813724201580482057715182019089114591790353939069248434579540157046741550657125042428578592397330289197406514767308993191164109991562959383269558071009971726233030593681754223761582067336401537625481489010374466435707116526261819601734112493234812144152549859525256996189080863073947764360541001582770066695725319100990025075097788597977902249930500347657890803322452692067981745064413400736714584678898572690363067105138085048016293015373071819371169859678424340147671094488952069500424183243330744876930220457292079290863243774117497091044681468249463857846480565835518804248125675699196969944778438204499831250567459357787090026219187679587622188896368961726485881633880619048196476598281853183474613210076535555370190504758729973303508325646116419150090292437289682477008192096365286754858838873078376607032842157791923616169990115782840580755085563264531124312541929619660918359248837735904626544600769569109429948949153690356244539222182419289323884865309728728259958356808454019389445641646450766989510172539977080439857790855933217765278808726593252847645621123704033311872255819551440018725265530584689794193254363096534830738439161010029479971879239404434742844533493393445044314193258959005274314053829535336420767286581168401570359767928459984279821525248816505812553327603983590765106286374909050228659711221174340741031504159443086123498603577708274857557914592265845918374600954997038645795242624373474382828303088579139959009680797757681625928866357819932391313358198512126362107401014860626134302674127664755619235035336857668487855103287012949713202966929284809420137644233174788471986381843659185062256902165100582768422274654275706341807197201069093137166514240190108482902439536250420324216288210622083224932838943353583102638232364031583930906586030363139930244285028346884147673564258566417529639811355141454783326844419229576407890775638442918385365888299486752144320534126256143714441548027411130973723928436015777755352210133928981692378776979490946201412233900961943387473585361480606557249955219407852688316316827038866499766010137152913373353721329220407341695381693205158802210059953075604777371326643832904636547242011083254727645007017674845620579383711957960308156426542662584638407177835687158067413193240436070609934038610831522167483405061994272700109983542359999070400223279222983037198049077823641968649505314922333181212349654710731055770543096145423278732554867285186028885275641704394668123387681884910574050058173980664225073253572252690344100803790753291679448780251420336531512117950355354945950875083380152876135515680581289158621346935259980977836521534490402812649031826321537685376169499562116986756301862565883879363895615874064159250283992970699192292115558241008367589871077286456848146575086599594687991557059755692543099834859628902390772089970817567462395434102896744578468144049559130939458392231407723371252658323138969402973451092177482876622931587158453895420520364320716889864236106348552824453468236756504732049176820678603764176958625987476305898557115957838340263198988555755383069506801658509626636444437221242547853777224078942766650870143179947678979566851720041791728319192778464922133757111005382188030894718862835262632099801707417097107567453469534556043024229538807798091494626954147893582586792829511266204640499673141540914576782495997967778771839619599073470727959600384580298766633375638330398326823043282446698303104909419543166215829111824115205742049990848239324515797473096503878891200552064088168441307458183202038128002217610458462141486888948640041452216424811616946484741984684419981273499566962493259925566316033675723755032412816843172029507873635053533880609083626349859792820779189724091331537600771135090011216859278748700973353126461959907853980282952876223056748356532111177524878534567049417410485342221625808808861524729881654269139856246051462402236150827514721665549659427860331507985865277183142505723836940342964406269608062051448613462872922015377084520157309602857330963042524881785079958567176331427902202755118199857014799683578878689816969123851367996301826354138981186807736087585809540801358495501985279419680532829115062074372028522165761588161551063997712557171298766744379899719255482333862007531984209976346354660909672903883333471535601545674276894564914536589260869379701486209981113262816863589390410946416964096554814504058431944921238928054865966390231287344368692973005057015634085934273793578774995809669317755999577680257107298019484640637375473981547795576736524449362975489667477019163799178653341039779452237370575911764703784515957912399721870394824850775456709824284033227144421360075903040505572460165007749485403052861608101841418913795844830991030034225212477347081746290036181380866055831698277755278773961075317102227002365626154416023708936075452254578751705779859466959515316306041081752638378912954454329919749244116816571193802990261829340091303167600680317467161140485779890457623493176657742557072460506416808489988022105878548222709831756724732251012932685966497253984445089293245498276322317584182029789892205437373165009028652409680054271582067312614721117243358530201004049787804937273162606717900331546171132257121780828433729662826925266053560138515788578827579001005751198091539236367367966463854280173773455443597375530876632800215108527479015414098757832611699930909030125484096776585523902077870790977143912550210349834441198162482676859971982756239765701707744678220950273339668402466036691739829947670520496205978395561016330596009693072479112705916825942192445141236313034626149501321774409688776710837275996927689946905804896630529567980350547114604236068478579703250421373795698778614198590162570438659656544106627100478026698344879494948640452847281239735435777216469220315911588466022382466231074909243957149813337723644514846908615650261987670450983272944499486222638802812442202839281161668291054269199898922877069570816580166732908270367607090484817000832724200467969927316759137493154557194693703475353032637092700825586552410722390480216363238928966510803020016004711817791070925445624610386048443411249235482328932262298963948008829827778647415770301262922332454378230218158946826575575182065551885627654286052192251369720744875428997253717493028593881559835931800693674713108260815760689069524800649483889613809484766046937737997884628365730835978832783406478544350902264607092928402901327527944558810760402505631890478661366838621862334465914639452162967666500965320577730622027584673810814011436070957824997203490878652943778515071185711194235831337769849378638728074528286734426489476397950703248134900573928000238348537391286837965350677849539185669379932138324533431492397776493040174216412825635860845803241133228027010783463705930467587023695845533354890882953558101607745851338528499190324737483486033642956591988652465041318716434269871233202837482463199586211864860519484800722467654565830434669857092946932654373700553879061141151863128198541623984992446331730220562141298208706949995035874599620841784853604182116790365962658595114974457093419669273257844884571628445047315346814109247158200775841779481290857479160303244697163245512492745605354516756493564934701485614357594804185843720261731155277478514701960927226440942344043945582885552533187817086443496469155756369767051556182864644774282178312084752853624802475126130139466768675713548768036398019034695814360915839834974917962712985358207057592740107146090444769554604301047273829832033696238508412980304777525018867568417508509219928497475508243060631044472725535139633932009512881522249895868359754287891945951337334102904509910487433900253863065951039518824381491574250928719233740676749505322845918387154792284584301903295403222077786548449825970593004097426394063614763908517086799114620164602955871019979300565810279829651812283569503855929071983710417345064604623789760776937562401051115541345076634138343515585212914224108833062341758584906195366470767155636836904005577990912857775218851132338232547332743872832073651753559497123010907038995530252379591656413798968562586682648895280360573009442735561805136535278101181809672845291800452308054042220053104643842004018689429788201456784373401918707361371471488444813548245981590041858026725936556115242596844831044271119493718569583007156375767336981770256611430196377455166316007294580633836974911616164182533963144121439580512122015203486354961329113708965002144744778147070320639592567726177397990927701445520281821421720853279215787557475687544602336646918284557909313736199834404699052114550475549776339125479772039709414558521044531732117793941725568649376861117170859139359099629014936009845160292649208212049771744013377756325894939761558902366504830898996479620280933213935132145514736298236056479492488003308064964588496679694507077379225022072677897476047988947395989611748096433792415867463786305840992599501397796453289416284342527093421426627744615936288713042735367109039444028552831582562748895640318495966073765064048197807849576532957632285888860131967247757298872714182688347761781683656943134366242066631752324022661739122910693838754789240006429748415910235769279824599424773114058338447076270152490070641361708551487712873668563164285122953093805298300509526129501337275842555101618910394311252884487735704722944960156864932143839879012421759966330123473923798841417731348952575508276595531043948210981712126857546627581462101564809438952083497477079569372091727580683235936483178190790734784311284557959076976455004901088284811325950180528120709450543189483207555979738670147999564732270975129527826632165654555004594451675633880952256114979176379596897831432915904772944463786431782570281218132661572501318237389876289786139958972574933153677610640426625222236008837716389068206195847887382421281928283037766076883502979890383669699621296378304913816743286182077545839931867400989582162684598879133790839082095255094930681383261373670593186099377437594801324169890765015891066986976655238502357374626133281152051718594261274275735887272485815801954910303259360297927686078612223833484177996358583836133084805934494337094501479180603969342480560019671343795508130314808844573172360171457541895689096052087128712595813539258232193584030564837084963640960955579278336764550446746456970184014935289854637834855791235791868340667331506934402934236627102159277544824340185835591626345712570775931670625654347445332320350667606339632637318396303373120106344515971456252523626423959533778986457675972474797845666531089425626095228350674328761745900085039517160747274235408385275978296256837654988052195133539609239144815756572817916527541378184579849025149972794640413401244144725506203441634602438167597985594162323988834269828297370348127597322721409338606258628878827582969580475418862038845193758915962850364696016593338035368467305428824206935891908614919235198495110127246234321541664608358511763661893055615740010566090972422601252963824950772734443951435097647047009192098852712684703024096679171461230675019173867702641210587355769998164840721589698827023650812694479023832347570782791424822376178679166128022942431411622536504658588633362108826809684629790694356261162089614245182290967376743539482751822530949186231488845316167321223992350070412005149164376148938910186506118373448766515194095212819442041757356368406719274970866564267833111436981619900257354708550652038727270583400670270013863772539690733526615140465889548063850353105907569295062418101814256230614382872298770510924307312117624206881784220382487313578424884928915338928055740358327971452875054558891586547876314203415397760999645611170450899175331165186915241351985474621565189887102112098800530775285814651463983672075566813888007346403376680275877033473601546690986107697002138444278103844785814775464548453348549630618807515800063922416334608436774256601946626852981330178929515394311918493315226614858301416106572347235729129252722233715995435919944433098912840450848721884535917424575238376381623477459106046214560259417180653639077799734543647455982569642723569807305365667159225534590315506812814883636064631286585418315887035611976742026395381555518430801944812700084530557000951882030199247905685890144667491550218344481233228508870193426723969468714328206105757101623284380174067071941700675930521739878761062231126462001984076411547497232726218303642783766186367562109204986566970912642404527087662531307260688828190799087386085624554951341393072191832504813120497431778290213226797046281357004236231487426952774187710779817211645037722231138518380740448069342960752151540222193680926944450563105416937153693882649214875372444544034554388998374726505244876412995797275338129342928478412433787165958033908412609123237567648249497045388805035160411648570237862970383721305608526229075095656631626748092090899739116666653083599733347806332996675855606673041561898023726741605112558137075005222659368690369854098198687984488697934308318548452171640264665587663430693808885001170395715742372495302909891964136624433706278248281477815644541612633647842959868794513401437853380248831154093632636892310182171340770389859198962490980365363806826363637299561072386248131779471858052500382951536047540419980993417558868001485197117165546183010038732212257414222023497543803490173463689566457898351691309897787717071177971440102334575760195251831259794586154225453512686388929036230396077712671435281636342031318855456290148455535026607293076941944836070291722881196192854259498398479856208746681003420672118993377644433418853585664843744654551184407164202389565713837916745810316941794735699016974631094430271200725759002235930955199537167536257937083332037746232418754722293609292386427073027412850393955558000589249865266748744618922572048889161015941440060773620349259768718157433997579803499230818925705040922074023748186715665940367203749544599673525093970400253983516015576270757028771577769493247366638582737738482636490428146931669706616338118130748981320595784162651342128017612904915986419394609594851625460713879106250738211217646623591980173200376606893679782134847848285937604787660682782526922588490794021383214675799060420624557785284257443246580062944671064843145446651659969868721475807211850885357875132912241450852622654633848140356273666496578297792026783733747145138966844803169545409800367843563496103398800038614730323365266666702470148924862826970078112181372429174577582565870176969396388412986149331727474614006609770661398551431671998435238018959973831471585690165141216166810665106876712385667749625856669797240847307080343383115515075444058322799332301150138838435060610003094324449360526016699899219347243316056341721424113592351381222638052565053746603281832409867905848532631137967859532887469692383387156319097667021732356206373429525669091571159561801547145209846027974952796861160902681489641780459886987221432620709558411978391821512705815501493344313907400244513702181563111373100819598270804155651030707263208222025763118481951275326714564118847718119048551645407992583047855107792619596929845603666993511521508143375052588847738002909311888356330433081764811594923129334089736688720220475076634066460987647122845747522873773952490965958474850423206620014852637348330423697702675868400779239686235421311058655303501812193526465780488346811139623032935266619960271695439816296942854910295296618174162881594791254549999239690703229009044411038127994518390672767500876759230970005339745353312275722072984121113072884980378536381243726201832148537993569896268796188242871644866327799160903211538709958151640148306612367697536248954947011061943205622232744933633382326390946525334225370169757753562617515093520610697156366359587904824512000712509403087605974129087726700724130267206144611817504949257355197693910892066197916531283569512356437129537057410512984521085775611399480813876497321790013077839368452428149326414019882163034686363292559974390728168089184608018721599488781096381046573238993863785361072461517924151646439605378675288294815505151912516435372131635814647415465958683331895213861305417668156326775494315387044035531442311859090514959552611942271356078224951143036190422008396530731538042354954515383556481025876546371977448876759783134846793634150855258617795961741739640040698957576075005830697415216772517951321211258458728377682510677638089015980166428121354104323881985519987140289654838224476716569905090035643331709730199052102688887011746527915460206355922281850093916955595093167548069159218549811043518883254543766663903548043470007950838824160519586670306629476241188770524140626269028889655019360522713429956531677456110544900930960583803943935209935127080997230055531714315568833072041011619927139523326361821433988607921520438822635137054080620878428115819251039590034965885204355406359926919031554063889610296433128638468248557920418280785869557016264323465119838186245041145681199645730348900287067039218631991988972276834950789040923061597581884391008846583592294340899992314859827647528872943561542245805649605953694416300989006874859437152757460226679893802584670083907482679414254935661199737370676113996261692072913628844630687641822828539361039506483889069217027636189608741101246667302066561488754634029690850714243145997450613874641555533552166920643611014218497567296196524556321904290511463049911414245354173596803927842098948436280396226875251930999461536080213119434419957971709390645347443155186682809830277156707265223333246152713555118699255649082046218824649107737514671246473464681304382034440930584794158547299931432638789047202969484768783944150525797648551716291066291330819102424638232919056442549555849139419377201182986398781871662880356807698873009527344811056055509388285259233421018371746240848538142495918825698801039784609578283442143424116620914894374232735073925994627171984524717270703820881237213470580477333075326612412779517769936604029321722265405054014544999582559467898270309981977052273555987581106614272786922721351406547139389702722897423365223417230301899819374610897951834389323970955553297902123767432054996951000988323613928941742539862161078647001442503240137041656704633044097856004986110444302000297754077293056712436592100734340366510452084477135546921056344187676525554991789520117514867822781769744391701748509011921733968091518736578894733014837792633245385759071434157419446719507775355606723311869344746076371680449913430056391989640000533260248922951696050757071883887637711544039460851554013364215431067715338982999954865632554578122431312453478043395635646243322240905982768054870133926202252927324311827817472546518262437797846125079338167809888910534908653705870411408071298661362459909993992780977470702607021177504354512454112028738401516888651398737643979091329343380497644057037862961222468634078740660668388506234576562869102252901206752027803701085503596393890003816426920792132858373114631140681010142874915250127711732753937216970016243222129273854293862718648082670810370404405856710440175041573539551134972026801242662611989482312789253042050841940138403607636941365176723581647179664326705811481307985538959928484708365030200312220478688673857125577125995182400973207966842036526066070603095915872663751061149315210249247022558298830023543734197730208534981914734274107622440762708350294046570968612554624900277770661170242808730442456752737130874557048387722322328357754505781466037940590046141679502140329500346527889711449000368692170534876842758229932044362202747559034023842287183544073208509677356705398275216629251570233234003145847269352001057953275436084079783554550143262897456327038212377383225243661185706922817106934609463111289871413042246564759440022431381939234441253521876072511906419699496011463453927291735276495655052156812518672239123284013661677667808920077732857795522956667961194534394190039649424581889538311065372420879277429754591527752744220210586712788879129538776017519953396954631387319145670916556668587674479476948490313642948729048486552965685794244517027477306908543468118536195760698991380299542085861177096618156636786515382849922683872556073635558856586120703583342514701965678710316270655823432192955659667287026581350352190400913677231485729511017155786738726806129459600759731032056911282001574209081358992331234746424233964523097790706306430453221199774822769647421398397659767440473364134700595622036909038141826245063665008555996676597452118838284782644477933710731537524363504403823207295225183368573496930516150273451857138906933319173465665382124329640791292880484919510004839065604996374272811333845195029750554821694185279190940064544952247315451078434216314665764640498583720868485160131041932435104504806318789931802391119066665193980827027799735460167103972971159030572432634814906769669289925598618930613439615648247914886884244178348144489840635818167009409771748818684080587425630148519289196926789992080424679358982766249383159345412448960686506456636806591548209238807112079736935171293245936549804721054541860131904997629709503288351413227123495149846600769158441686323346109963494220593589940152228203820250183473105482631814523085721484275965932556420861661460025135095641461346245004561034258261158450567557709534169020339400546037231079237844447838612966471462049549158843528570312292910869205840854414491843801071894357757991971867481705090909463182652320477795536191222579197245673862831929080574023436608096485134779846533092134572785424726695900647497450795660874280597964452153839713059592132352552825071024209865613872374952042016656111768799170008029644910676471124762779248581767774932749995346440960900274130866985155854460905191294070001647542417057823663654505156072993325754182940092750993118554790980090746562088160260009500301135651248720672616186467520820605338916684297470372397413768293197303740014166392445108043760433669437140557158944706862759963238913602286347781225898890641772815883491645784805564799964597844851395412941540395447497694979010166526191062865743814116315589775804211198249821689460749396032549515665762992605375416892841393380602308722166204406531548237292335285325094636495446206844030454301589511580996866053671592842191889780876642948574717171746135211279356160412706038907036806833142655419917699846936352290399648021358488441975384491027159949817655398915729342889603010016503075845473159484533586567508032851030257336488809189204732402070142388370758195855380171440899439316757380547616243319184074773740016352655057840731695812122285042248732683499287346794468879345544579890039801461746069863712281864273107868010060632656496992787661349534457775689810801847486707916091836561690400270233202015850913833128458866069466798714149509526544602909543504925791646488123714853582136426513714131167833347022499334781037850229299601794917307516693503913343002563846944376119859579444258116427080340664047306481798861935047647176013376384981791771666105055608364307778044181247313104615992342739969010763910921091084044224012847653999468897343082814664643583111092009692964120081479766444991226636369014379593910213653434817146325449286056146393595768560111897456230512680408273835707616802263782542328573549225225515589849285778265210128422268242093839644386760982293145557303111266501180613442965656184054863141581595276268086673691097924262370704933678737059440182556665527259201333383291261836812648162359847793899478327095056171267362436735710447730447729152100693746637878678421356794335358848285015289442509085612454144116492897591528222887774048445234808714023726930618459859056671653845929831596359006489297383212253276743938295200390355901229267320091760181119148057154400169232506471222193297688809768432976532833848524841653576055302265202272135290363509918655423193924651002876205368959017536132077587001983943361966572025302560030677372172369546258785787276081943796718365784315586489483338152090030046289648888905267738867702447546972958024832737430706340935059075136109208951397361647782339552419967067750971742725658809580512919075948762675911661948124211285307676537693223754196019395755038014135846470405488601891342187117673031504785376156570426327404032983892218838639008418652636831445516872287827095792467981429224871511381640536173053584541229134664305928990638282277331050393321438651410331112068978775577541686710287336682668547375890378418271253762586728201311772625417907263526670776747708369688408145664173533107119017967220645653321462920368271230292727773894150654441400734609059223568032867621661293535986761409876384419993302782591677713493399648691441573994498418412754689504083703374569889213820109667967027113255164796287643524900569992304084815461753008246277643210499143675389428813740423041224754581354287457164521244510702611148816024562666213231582639199104334803832196674087811696435864106864726130666871385071730302221861354789893287683569125104337128854294233593917882221477218263294446061825595812897591220116481278996203974770156658972921219704392216197532706797265540959053497827494987449619823529680247635630185684259352875580177946734137528769119944084757685832601904267037549540707604901858358902348060397029197058837171106379338201721816707364953961817747287680459319756972428234891003180095910773251628450829231810007955840241181976960593652149947056657289416606537274209883476024326709683453666989185157440117534173122003722008892075715279470019525243764585171190636888591544706948391261095777600923021268391061275872805059291798309503102809865146075153607260220180900656604035366725987891100316985866740290325418181842817205599668747951869412799358899938498489416388059403301548229875575303301225411273025007422118084091624600294068681501109247473987354379389161470712671038829328696313214663554344769194704466446464866097700592444322464537442847720884096763008300509451891951874344172569732785631734626939391424961704229667681614106684541868384626910107633431284307207009345062652338110157027837246091066825334490128935696101090835793202046581313266842697379116359085531410849063095834242275145257834124381990254480492929542479487033309184469270370619838693735284479234025501251591228387865035123910599118902058321847137152352697666843105622248726065419009654365127517685403602398264739513611502107739109201186105738931836170843485887143477311268334505315202439956548117518869586787040269377766411224352011850450254719635501335961302116875206387208777799661003336755655595360974702013790394953771388683895093237759851912516759629898698475343478000051131845888953326933200395508162991556477244108046131961252964205083018640340353992013057310160335709220747496707570935565533670262588396458855689274691990270921921093282018482819880825761810622189574937715905228278675480183691218479756129563985682331025300837651366616271558384398975400195502999541734818033125346869558826177980121003336505000561469039052057683189126975355212333354914334412937334073543263760825324812675081947746157904378662165529491127310190695103965771405079673928695753400894292162134053520153464045915790528612865951023692748337640361445885523302948146885792365198576569022940980220500811441845035669712217888691623671359153875351155571863707265455719425526042393868949982188702097710148102360679255299510707066940214411619850511969480587266109185340773741869384326149486049137342805590004005667528177731762023371976557126730547258267454995107373407410753833646027575931859450911828785018314279003923476513339561290530139537694663099491072718627094548788323657110983977113619717425480188263061498410603372836830478593577590853355360227140095629367464261318224857900968241222151471045102072980440384078337215718962800367092448114421179190724534571187855661180592547171465827655998286856502257886691088350702420264147023992754759469529698556574682882188955305688075225096852124264042313664543104772556986736792152365593664051477526304304268674281049057191196149667639760508095377616767316799594349607737976948756003007154046115467926975150069666693702624111612620170664533237053179692009121825378963667497354893851518147117724415881425322055758403725822267917630373280211409789970582388131712879124894606282661299933015946632939830094015388629062057318074502415491294638420996189284126522813382332123063985576698577699856815252154653159404934168441756661990543185170914691506619612922133746828410142538424420052036151283186580314293970552404949439801635115257601103828490965003790284789030344267178985458921021984055800802495337167393077335297963998583933378697227529512033991959448401571680571841534028001412254721536419200586274746090043691903913838083275321335535946931690841992225075199499652632435045143055968898792641709684815813712099165781390055015044884375728999514115646702273751788076751524230551608001055757701858273301915417942264059114859853490678208823731970586442814765424011186816868230137451353985736306722680274028510909449126424507190529349426220107015062438705863638239850900633312795548043554897573926738100574590699393888779640256541043775495333773256306773721186529094603166490086477807167764757489803123371236377480849141704314072241689750686352808228118262656731356536232167154190046126492150110523457061072264486725010865438901947908898251147418632384932171272283305742855013710673409942262902589580405573706600932127749475710573663665934254520440451030168808386845784407780411921185966770483938284920511518499971363568738371798432383214512510379866716154371037610392431018118425704015808377112927126983580574402709827926659737637976812933184821995968649163088297828494685612126599543221092341237235789799765660472123095372000068145763809287021673212135230951627251695941195632838133596202505886758625496580764651065278033468728568988655927497380289004251398615564086399529089076404388766344486021780323919305043381145953399021156712594309252359183885491531602678191416668651835162125893207181618558951364165794388280226578315015444615318209303360637162333900735344934851431428990661394751270485774621896020157592693508855870744558974920243922826274805920392341452579608305302157510284351148959068919696849875372714262226140049980279447545915192367097061043515713250880392573030851803276072974348168095830589637253156350080248465951735327305871339864316211992036339601328189494333352016290785275124997606042602556311709942387560066208948640524302454022819599672869625463678750202409443439789537343002838065868593951949626347620354683397550160937980665977942419851968465940226495032841339418659513569782332692208539531066798608284702809533789379942284551597397416407011296538884180526631549805139633172950500303264022062022485843319923294109617856664517468585901211078605988246651349392815859463530684357957694603624388743715723328840624642004803501422892647570912862118457802255383077559298142913290709542318564296869022738314270912563213131544056355611575683688887478550205059768140730074516136767915985621416385552938864085742115704425477639489279307175774806371492493810758761016438553347295377792069299096253183552348675549301272785914660886977949323962248119688479078076848489150094085546723369551887242925839491574147547254663403577672967562455263815885494074945356566566959125726238324175228044094144502004804202192105476647044827400692065882357739013134762640334649595423318773349040957459460497025437074645887045340314631842467416557098066864959477387432590576509996244906783287246763127802930127807063017017586167847130183470810945068603294114687882721312445113481084596581966335784222977515174273252143036917486726261864083205441019205526530107229430712520734835060995985533163263745077953958260435922148394143893964925493165037587175892728838075583658363304716257482509944941390191111244174776873481655379906672169316815755473130494642272305983101223425419324316956653136204165042348147068687511786728477904985885711356803889590619011744826472154516290171712639304260605081096178856241841038205051724868531917450673369218558597655021500195119755368574675242481166339191277823087535563275926838449331215517880605120724174239127206946010729399195949270497773510873399461230420279507779960845957597508276913816997775414930601286091391386663259123680367455956060417087489256342739439228757102697211622453579778583853217647814500486838714760528623681223837002474348823065992106536705528286908382871143986222807654074776108045491677926735314998398262174513631821228249505547579171493982108156955968745893644510122943880066576703627250856496183821072501215321217468901262044430245508144849987391819053260154795202848521541377452216748648076491574158364619763979882994981742762940760498387350677238008181725990883030970625914986935807963364338222361164513121113039567257205942189739020703351029994136660703075158619600531934220160806928640460269295083983436360475054092949951610093593704617515582474210017715667926703349658670676697657661475697053780203167968694875001838665757066200239376636531865245494558746271655913371729725010663408133767801307988437211893858916938059014934181731541412222725305254266197291876489187304370930595834337820611579794194089656044011240252252872178147538997729691059307137765135824462363160892696671828549160520364595077512180302683059706090409964500772267983815745042382955899330032035426714434066523345977194897708752923348511822391461807119948348012302843749880608348544594987716532073210387959627816600414322144147063382881142635924943529816740614885343908518692697440478414970484965757270319255222329185908138163536811839444987279248489291982187841597706263349019168354202871671447156283168738674565450112782734397246742726046997996404602472850961609837678326572706685629262477250638150755017131304844780457873293194522728319129344970760550456116238213395126120366544376006296167690553378691532397821854884705240455400986132370974183854551956361416853530183642372806533707432975812714413731581907664152986542658118735576343323779024543392556077052637612648194024297702063310469496048193267062255036403150011946674570613451013050178529915082188855277431404347170283153642082418753264203822009950808113496306305844305285034491744015439304444136368441958004165759139867681148973827937581045963784678446409518346197196829171806604395014813964945868623389830303506498913225001522655029742078589684071106610735006475556161668466406039616803793053298974551263501658232567835660363391313712016558887272118575929110856657206527509778425207164635779211664490037976931725923985933042269014239028154278531877786517914166928032423355982313821287888225709684880346767847597255836927567096570994993110483931074690869101519667521434318785649327448063766751305836383766202509213355043133015048772703339789422789952437543080273778876319946202734121088305223379314456552346646004087842870221826080085930169088861356526285718952331910495508263947845751821553071377961142952259283067870165818746759661419455727460057012012201512661162566045543186520662154589243404385989178465264240512607876798285267077216686023951227621132306630303997809622677700275639408989495575276470562632995463375960737919463373608140929999258550754034639361696336729614260018477245764713888302960988422361406867967815115934317842237871979093200794925515599613069589569668875127135650088017764294362639647336052716597407694681762467339745158031328231673604443440525247902882147796491090909563872273045050044082838159808990413934131126664402003477755704575398522900931556997112211772839583437426567439580155938022738294472559878453858695946226763247402298862965114012930631655665393939422591936306684504319327990554099693335002130529679505485127301324994947614437453844547831612795347803959573356256796848590902484155095377799592612406106752537506829735178115152033703317292715795014375652789711213313221419659679642885430045111287253113120510890232940894532457352037499851865027966400640426835564817989725522051793633497014114577561557692173716255069913382291439295491080614935476810424759124052390231542653062258104400282143305420573909747580525984271646257731631142090942946150437922752983603415482251038295551421291681672861665725723454119667621467486661394121156544714215102156386389540723465310915751645858921291742224967756959853559143505808924148731739562054033869285326352413905046508965141919616540413345563003161992928444851913342425341433052303145520728476073843338497209289802063641607682088912607382134233794931553711180833392606874817169171794837341404916827612494084148739935886255574311793614865155956291792976491887731583739635707711200114862845891842188453284466900226167853477431976506607566896122655311508387273850623646326011142534735571049939688538427634162907524514064309638677638235097705990030845598228566376950216646457803514030192058626915674565765203765091908301365365933339023974988183951897453252153623763745614713900034674192937927069929039813955295422511571692758651114040517153550276978884828168447092722996846779154950929817755717972400331357723252180079253053891601038509217418820693268308867771187423830622790696635528306558107337950802185025248598283019057301756592446342284111789552756297942266340925358828423404290632475478348193763754583389253599528074386405843691724640161803969887912785010614319826073518398881343653192366344939993799372141265462842503090853821280700577092552772972461508807871785101920305757963967351028117993595958891397776735297509257948797234524532764446081974265595883726478920147821814966286451902319595497810382984461824257784821263936874827708193051569204440603421200319585757027938688476112511523189969648855276217400493218200909258372947188327726817546364158258247843179427126071733204229728583220530044932222202853417618825937840789307601060615799427505876225835785904396843051825872513852707193746975142581526351605736823057184345419600460570452715655888792990705366754283891579456640380471440669012790848958054534808704550238312908029283603006441730628947678920445268278885699403731031773746151449527619453350460238244884076625997693551918225193096236323276325443093754666971131808022932672927191714190839476951148031521617727606562255635767678104443860628313990590316446970961203491449849838438608104981958372504737826195023034755069146519569048778421778968860858731872610267666755988342412068201248684238485662421253252956728879381596551964655830549482905580460063882151028887178742473806813840427093589299448270596317800739330170829648701413137880285537482660964617053434184962401351109623892366032020356853625506353916809791833103512776095188301417164041723450262805697871290869301492721870480581054790477449322733914662558587198854967516320662666191814188501448603135384742236005978643137134727929967305784942230484002592332408912241995016431425444131330265134334110747090956915592978594105436980542741446747829317666505334914837800426467799026453039833197828408162266444817652817752475820488413135852622619442390989303109221449836419972393708592424390728565212323552072752102945620618548340835422239098921132177305930149836512463194734100373359145797549412660945535241852760110434634046137035294977145478523951267307712044924228978866506614180638655509076523350686546504308453189889968444951428350137483611424018460492889562257896436876102183551351142033149514711741740091035360322576528558686569310695467904278980247617591396219082959907437564810861497853299103651618269755282920903071964137711536444809929062193849558141321004282084995183064852884114172862483411897258643269247920049447042303081101857013599962062078179234055370702791497802743438525860816623982453481136846561396595608032909911793870596209520189019903073835426605740413397648968256670022029598781724215802266599809977709611775282458555817701888018325955178924639610987633666848834717469657280095602630067921285256190712967301700283113366205014054026825317672818446263209650128205258020175745543206820038406929197055470330632239985325436182372004459499380801814278278836413183063415500587440873116242301603113945100588202632709279029743140438324811856007092299245051955734683307757664112237508049900964867473576798784643145023573969506741683318756577119165131902448896109789509590084951948511412002379978658975430704727666481043671796822397215307752128006616754138618860282495995217823526875975647927162243527769428481079266236766926218065841799663520485940934009742187173906131978746611529284742686430509705566597151689434257665643693085574471959541047490104318602222560357358128665163985122186889632161350367322644294944750046050476269273757978973014992033464903443564234995388747130948121531706340627091289216424790892637488877949955986039419443157951532060788196942421616945205267829853070577906872537507831954539628177179753220600646513592241352773866429735913638486125772220402620576989379601057436681406323667785027105520583068014577927436210051005376279778410400632988996774624786003472483224129242330098828452399761360279941848790996079171968424127234649137539233360281908299820740921670402602743543706352388372901878816857527044423343399920592856232753260818167692735537402992003019181795642838699199070467018000595328217002495937696408561519010123018521561306264045249073271865064835424063181546553816832932858863893848141104623231222283434334782959925971455694966655359611935223478849628535891753067994863654121267659167129696442334852902218267400526472892186953167883962919530018176042929783005416075269630480197305356609290515171067658705261635354101604821669946399314529721626380303072643240431772664341448921253183646332484665574933791947043255454559774071213645797698994566534484968960288827676406156253416974579677093059981240402142459862132072405969330495332100180178482640130973934692810143249444680896307595107256640443972033198562059071196565749771362104325298494960141829806007739610517590566628185102305456466066711011678785174706756478900233171321432920101437607391463480747057165024401293130724186427155677708186950588631563380529156191089156651828345109170677172838630039035976718066989021984579261054731237762057487562839196661024899107882049626592218404490718613545544297084317325136320613704603056379189914232027202011264194186318644694628149918213663642117114733918663823226811593350262236952175715558313522485787213229752472774428715511917951320472424914904701808091109382018740164612218094559431353585215894959700111137415948481687855104614549436907404777854048449002265168308287222619309844405969193888932588657218504922099531312070267390896229703883623052518545846029366475830468623769062164973426413149040162320387879164891654238731374500521729608436686609921362091037658426523719270835757895315031833214209488364013497887867613663203427517831627172116220169388505139293278701565863582677216012289515490116425122530324734638963447851581950149764635156452448415286170507868273922493864668641636331181993245973619580169901526398223397705703982576121405039345213094377654688146023200200694831258868389336229197860081126889802940435506884562426337164127234532122747181810703131626385968694362286462654350745821705984339230275174465364426698628839752206013091603942546495106473579631701640343582420202750585996212884432747114793793287975716629540350960733092607379662238478995328759187532307047285260822885462143223629949595517674935042376417471337878943944860925679470695348228979477905187324506518006390501368836305304128156817177577264398584770338652967487206864392843720917209998202123754144674274500145034954843754709454213803871614765385400634530353879731601578276805676219899195325902641546915891939516569983972780917243211050554739865419094715491261936119749954036693487927823788902303351215019978263195165438008064232267615862855314494422840469808306624762885133019612466263568908535624520323155444482610622657193432941720619857154305059411396105208111282354036699170006279393367723934356241750489238832007839109404980605420129540969293741933711452118779326240177554904040474839981127115624800085036629183758007306181416313241212290936423011562281937996908024006955968563896205444027828173967486749935218569556591496098630289521021642878187043503085032407721525411453900435006424753267399753455946380563702803955751863965747604425430976841698436626418544504436309457599139440752843911874079143805948867441697151420125973844183766954903041091277085353701444817980653272262949856283466891391937181085015772365222310967971212289258431138888402921783590860877830248042617309773196584026302442349319094219133970926191725053966293045296575774116283920923468265556019794417018917523264413672379659608632893965709905308865886783704459236146201755801394718083333199259366396623378553288638867059650063017774273306643420045958355473637054032794359895618295993405994009067789300464742056953986190544641481454190355783723930276995778443099035413631160906652222532576847765877076390495979225204099131589569851159200431400907678749648559566964626939078784847650556195973575104313688796222828052087616296742326778165860853010508478477623845144764404321302103388687222298280795471918623758302109933759137290272354575834253269470438630280288646410092260705791552400982727111674843120925070621175702317937140115043483362050492131217282928836876078711939407315980364338105882848408343809732645960420944246363419311173781232530353257541165017852287443883399018062820347664075969843595697384005738942085119403849589410201397868550728316211844697787615733043594584072603502950142595427494952389136470824158344863728403333237744733838283190129815563940546334875401879836930125668407323800388696976179034876747630549816100384343112840753372388436000474407938389545835757410494706595144434659002981652099840953267750294566919140906501131397905270274849473943669364467582463398533108212654518967704652514785070647056703134638975920767978483311013268687797172560226240307950341230597146374682251519206588778760458703384572554364535887530948615315974173605832880924527070344452686609273250483008519972501696271395779746992978500789609963119257667648240848523595106287650900859019383364250827678103808838041286967866073381593188033374116767803876276252452649882238769593575911936684204532807194400610003972817785891155311977548250054231496981277486201791358559524792169342963982131176432268352408479481584458196710092009025646284862017945667481527468393929628659155306976717306666040664965040335461818935777272646531105513078449539785527273507765704936492383436220394261542021450192506194568730829233482909147361351717525266152796729889297993475779071998857663878948053398146100675533985986446467717985083236859724154700553268369119782280224072544518073375839316211345487076985984298260619284604752810551499153053541467964351054185843771024793595809371307662795709553972509307018472824955042764146490178398728272577909169690585991281918623649023875604870222265032280549957439784043221207768233254436422756888731598918523281353324130218110683673351330422559584043837957314905591481846121629815697504705570788375423662685836016908167781553567187830212708951076888715756172104509269107527827173287392655192836037269256813211282250073685971744668061107510860261881885166305065987120958080567849987412555568710479087698731249359079874376993357851288759649678299922959875437788353039407730583599963132326835030599690732020400654047000567090136690263926025661178324982925688870192020247458766673663510325282534312491481635878968911595830295674064819221778294808732776546066999854634200566819596178816120303001641482450596588147868539066189355022199644683079685015548205079521369244497093692303699253261336296156159875662110674754794559905065708866272118223536073050607659996575455337891932073569310711945720160476998580248717231561868075795008063742654122393866886690897571988876308582484405056025728325453078846964262101653544482523678435350101461799689665062165885225573926760519819442659731801820888676339511884630984339143386102683990753346300441639831714970024497611474284956857996746103175688049425144117668553077040469959208068632379344660033863658213191861557972694202638559712329912882262278392533776905738333426436604512732367929314192112012708263217730612317660738287842063264276987003149713118129613913971235533409336069021279111711974708084518098940622502827390483414312518170299909411115968096662676295867693700438454665363643032357447447056820140032525033896238970488631246339465543723127531303466179151014582186123821892678083126280501867072038044613608868259817581127444448029067975748667875832483342840926061996221267172171382699105601159956916076028114863966590157005468772914365629392716335643159336980620355658973114862275278059997473483980015584793649062300356329218164328122459956746008738144517863271087532522275557612605904809865338255411726037378344685640352878143582474194895736890452230822264501622008561834860128662484506585589423834933315635775441437955102519677312603773547545648467385550746570043804792070439448197227046251244004232444315356548855806954889234890707540637837378832148707052533428137238412611347242981086594848413288317664291276911001909882430446481645830493709163505820854387311936857385963087445299806605764153424122588955621774120775170435617294852864305287994553355097763179284966057502744604695427364030643035486975436763840322115428025562024288916611683308492682885282559012951880540458032353391653399152632438963422039480617567057588882308608752323959863537655770865644654858749478863280600169337145809023144637418876925062468502434128205003762382018811272416514928833847628967907343332990588131877661890747655447789717276083601906764326007004587747922694301429998242068272162987531868768917222734311326960987485236564116285093355120909712889574774262592775854285318302119498835642170129759868408229272919258438384854616698626539074423966906934744931906544256989104492383389698729474161133986913169143637718967240043062006798145499196817248738377860833609906297825282154313869992859999071965682858434727716441400747442068150201078493040484516712937349907385935388922621891159040684190576743519369050014406730083425413652337012462408461596688898481135045311789290876335701198396214416613501954607689356341700298833881388534076232856621090377354709053532278222615881311729372886687717222209859300054771524005121677285772384226882600735521546504622505616992821073775436890411517944383007154342917135795031417060441616940732114439219526507723537942035525693440671877731929154779734306521218700695821610572833093873034225845514498505974809440500531602775649292666630846440152743696743760997141403762707877985030519966800574749850127971934297471410143355706033389883185930565775137266675141793460896448817187095317203227202994184771643754159606457482516242681515404673329762795072767399355506539354836137415460941005487945761875497836877150646445170426506054910357218986364604597818203851998336278406404744743644645374305866844271486956282920607161209983840612341596085082605920539485072876924233588228894153055962306785528560396580683725188665788979221836111578943276141001356853400692545612818204715983239718997016362434658815689187306389582770374903521227915970001599382712746466276237002720361132294699335556928321142336715115459947557644665107394949455670406589571937983859024957412029027174732553060325344688502637480235346569949479940649183034073350992724510461531475513435485340162305540875588230641114035560135869738055903991626837450977648642935908417340425823719406153134630232167544838181496079407103731840396043856999524255054762146005570673786006569497004270788020046058497193843637169894978355687228281389933246314277469415171214265771364480682300527040379532367910709088556832035222242395343085137086987911090213669665945263521696228384814722815190419728316381902005234886521204675364414843680041920700587577107196354921305748016286926990622697671494411278538036968045282731616758287057712738621306072939696414595404270507008718163646820390288532019171565640212559825781390055781718353130696804235577994197637371075295277693513449104551964635036567556266846065356442175854863743547176086665685245310779532795680062727496984673563344001054422425253305333975365234111322639443754686795682882514951066473363886983529966065724839648110977216365902904559078283085385002085603520412160565563794757901425201352321257105170516792344204328496321503387893303371471105259465101825834323475115365124914212433043603962886061494719879642826301096877208148032185766343238178561510945763396831588875328581716068123495226087468181225307160566497460586923193714553591114511187303110471153989308887348397335998071668769836917757786480787004679381037080170099495604145274219765959679760641480918662976625813679489179602275793640459420421160068071852426690744475724576852988661240545756097127381437684855749657997561494074854291365295861452391483170328379107364604349488238364504925851270190587581301551518531657120948787491467650908504483620738492759046754449430295867635064625937099509814937527774354062965366858753104420517421060741727774879937143301284081804680402200809258857124661947164910027362149918151498408976282197833452892569914041789594662033605327727227815061676932112935274612352665726619051040598516626041838881928323386235069466871017549262634966523583532077123580995636349569527284322480883247179332629566154161073413787526538093148504725322578938327443382334081797605573372841444649141424306455756022478726740442518475868373351741395267114667771478052140323500251109499331552613970730866774896554554590114982593565399683993166941179925367881146467116838047874640403603156938022049884277508676209529942255186527483447979966777343215002685503027878528130818269669439613765818156546360884830945232473906685899813317239554244110116701813084280118318932374961054542086977907337067074941769578681083372997932823080392642872277939221388679907865840634521017188187544882447279187343373135423790772485058730708948855694116929835239796072861465477496068012261532382567595647830014041576204190251868449110544284250042529610873342306830398004737596304860855667000112822103702142834652227090329464504875894637742350007815284749827020685367753010250739609121721765086405332642479290897959107631490004151392657401058379448921030322707511334876724849476055706010501626591490731101992137832536275892561716121072137927563998493110999267324469080880859732256687114046926276664557934342337558397600911183087162052549135407642990795429007415421270921344353088367955048709913975721488720970746850870812746006116605932339434193774549392721402680641799004790992954835504275045056606437460535681007176708513000335258991579926196740691441960804165768770399013925098436149191669988639376116843938115663696438729675472842466401686116920595350159827669919140212089704235343549138812107484090576555645950037849759435411476910500722915478645061078388298929540238389869610045939186441211808390785519951541901886530931232434761257628562160670956416525136221144046807080509922045117441344235160719501510001089362652136535907677305374212633220892356749767084285946253400724831488739958074269086337318097464007645317628156990924831840431106368843555599234946071280301627832410354529095553730876863221091866887920467553729003871220356464518659732843117486262931030422684353180468465982515019220569885085125379067081034581763397460807742339036484335059019459189100207228983850161991671826447005512778699493770548280782754383848697078396258133261739642936057990191998676902082204694861926510054455857331057534719859919978419536719287324454094578117609872877284925647779235563859868943995815106220456785266484874543834114995100964094216035408492443271389225361056649089234317311231094217317772812764339165841354101262119790388348903779366318744684881367415827399359316301763133437006228544242845644434773150788954034274501853595697297923613420697412567772610395650863821621446139728382207595675833338459489925527735897004007910887255169322633531586299794373756598574768098226492841743805148425474486720524570661304858486924376824343514098486498489637701207175845125585524650837932007157566024705637006974254556917597514375287741143159117615194004820952973306830985327785873269197784434197283360463004384111050038579131046368080145687608374376251934852573536368006558800615321672511184818297352147714646699138455312734857254092530634544170685825820160732403870422481352273903233392821205130563439159595960053778812361693671269380524672530985858200026269421935637275627380759942402200585252873865131163728723476351582522288237074428885585803754209161861738499534414978937815839573854151656979817829831504135423844255186901061502283016522223422715136503211081634729441986604454939273161158628488609378529948474750053063108148101651390442770378906369544268365671637649911399824316162523635273549089657078439259225504813281993178868769223436772356127270247086510931987363485298396813495814442316789552888041319414355764155154139270430830736713887692053208306990848089719160390511049767883892843219529717734761293381120965789579332031273735621893480418606473712147460366511703903924329526603452393444739242757232822452351008594886891723263661243193092483582068968474425225522098060400253174418666841234478941240565629500875551144976369591612879891829274216379142076675569728191789695422750853170315085008738850860207945906116534521937626068221897956670583502783324117283608080325133706636447990222477394723410990978496451848904773682126867519562995624653256070807202823473458909020718754632048866494195784194381194995167127939167864185731662879548167784548647407415484536812965401276426469433244749972766432387626489311667123772141459193941806866255154498119682221262383557905744073383349597207983734693277830537233554745414207227171035391856726455143428866469583565983853831975974088364198027050043728289022785268505359423514954535523008770439093370013126831233796784232891770362426913722920430817035609239460627745415826465248672576338828214103435301892723842828371968500256443254789088865253444771968443343969237069201109629790422779490407896716686328598700164763644221509541911197053851743954929185761270635075068598162077493921643853359262949166657619219195690860122877264628295037754229354171686971858382959130235425935916347473297694319937985256091913586591918888571939259627382337648530868922642462503475347808203244543165300528119834894389440140148616724115623764830313910899981635873698678796605187983617278158911845897273610595231537024346742337300853223067360568488309309697337213740382833826683165798087835203781767468904044635265643962742751137346845047823249627769174758578229818536695380138617225215723781697874596939105524665892123262561102167480728590809998098886242990628302968585668467060468148352446993309204598804073378699297481466024062906228885788572365832130087096343662976754660311567321804389856173666251668975703736496058835688605031596492149027869472740535226651314284098816929234759800663046035476186022330604599785487584285650911700885115354434291956742415232402532641143230551067160866859244759982733420222528206440737369821016064249622764649870516026448101739580438462105396248564240727532405084285129781955693326865640201970844246959696871907717288231423898611997617926730280734737605952947918990871240621139019978488741280436892043342283811471504313862699360151123874337874866120688477242577097646769234317798174347059471713824110716268143634230428987023799424308900615097309518827763784382451924019762309539411081115799274887913066515411170865366387808080407574345888021128485658287314271913609893683852557602092305540764197180590186915452093605873368717398352878400814303506126970697797894728896691485719346943669990364279992279681002901418582495730662674301440288418765809428942258856888995113477277456809566392258170865459197723105896695951910231425952577169681621881211437298178525480804852341358654826234931580150539245342096229509334162887801314979925229701200757150881864270927962067194523212448635885730047220691287539060230960116606945912897163569735440891774375623725429769227262866686837048705260937538069992285124120849207221113143895071600987049094588909575567677045437978418933931756163595352087664429561201621490640130743091352512941675547087157654872410229476838541731058909726136131992853602579543492160599985865790021575934307897693754642614206996403015125308689678489695489865174540730012974978669156231038041764674822402350298531548853704265094861994078973809978635166968334880753238799079658934054191977293533467847416455995838788776861095363118643002675936225106890190430049911634717512000138074735104743258010757411296062165551788708320614240771616165106342549678997023786374074724453751187375619154421229333034811611784694244163417898233777558993344017592647206260087366542160753394452527468638378286276268073618563415635071562754104798742935666962062231440609203894102367137444464042623824799705604250765057378639789414843902701017481969488397256899264245615215367463632289548335761695752414050790446534450513443721025687580049407689320204886677600178598497881565738707385513726926974585414730522410630395158906529563950989293855092684430706331884501135136441688545683109950992268862835712971078053754068971849187038071715754318022839057567459268924261343657601294455673269528553026398718897914648097410155578273927396356355844487999550738726821642966870517261763716486622214574981877562120093513088929397032248166375405514813015270698686803711865314409192366294256314479647972396857568721550464169831710544271068128914613855433775276647565545937931975774244383273552372922495613220527742834890707221280603979596831051371418312751294830701158052232262976702121155770863912949667543817333292364185076643040624663496742253355908564786846849674667640981599822889423827614040868807857171240000461347770723085107484019429627731752898523858813796590722292081957702960306059853054080231260818821606830751863429543243795415557598948216637907036034736235011547161619607237847263551732895997196354687230553745962763826203528534930694167953577077358876355432376426401130449720391887912362846833845946679925742312401608695179465755530607712849598709736155772947620573527871805182643503633373448269401433969401641363056647627082821032481945462052360503667857798266105878697088405757398067628966873738692207986034609150329127585020608002890494330424768014179554426665185221607301731957363063548743071785340663254773945976570963805352231857343142525669321337450071148752571912899800903099581602095163573306993564783094694980656695923157720900521993038644469150698547728218726261781097148921779441934352194570182920274468728731312468642618867042915821814127292828526504904280538619742678590315129539315560832330808337417634133410763568401915714144158314726363505313308773676714967731329102867434486313963880053041774896884781626910748280225851387306303435856160626907377615807193363896860690857466800048741299983837712336043772976212986809030112865484927658537862391386607751077921766677760602653554023123873491297562437101208723276856699174935346496832927874868300453855713487058460312283642092693985391753974560596971479947624495411710438494639536700384159744529151676569347302777988401218891082186536176818102236253484885269026720763606578818995109189413499344108242729849718780263529341226088851901665058220377020747605915555677360596684853554641883536987139684816139003845301004353869432774441957620748122372538387044449774142212595289297204942275382894290325956971373887048426165941266957399579660266505937062983518708934758581321132945293875149109995060284314877790743031913118538477643223928522748185674373107321720129160790538788952333417585490636548148158010796281030526379788002562023882159696758222903707312700611801033126263912115400499675476627476796228884559167449997793014222820890160307054990828694429327816466577674039732654498531085689323566548053036433274379302562269950376752239359149701865299452285443493246049240778665296357187456767564676509832372908219504629019013094971508791415562866187093003255248384909783077164455521800622181115738129114832933526141859076968898524060117433198029572811771118991912700727315487285647810060731131276206769607145435476382539273981482696060541768495918213796530186569885712990417161799554611233163394451242184474742162551621367229036243723672060460557893881903201278702028934130168540303320340453047253997942705996341952373584777631640403258684102352926808731164471234470095217227080541931629254682148987802648698841541357164135438765241341060350893012787968385807416688938193749652852829741883619382552489338308993488955468910521017065001405919392079939633940473596157765327443900601611328417483477825640540825772816414598487405598525539080912236298425089656682201989212928940042978784596330899193852437972817957335044695762478403988867949408247014510478609717054914615274930897203986798562832875061085331355028949897671751176727816873478304664639156320211278213262909001095547005049666277736686578430754788746823586596084521234983862142592881574521873392197003573448791891656203443432396286937812031753386800238708366506453488472547078300768474319538317570533077633443932457443307052990521932919725480569975473271774767158488480780274777229763645394718982008645318359822598187999349663236433543795265367640214460733356032468646408881387673849316777472204250103952443039264852366574675969480795366431021305428476819354376295809840232461351388196159429036060636015112914750994297299604178824242120900324914157130155508362366398214130134976048435348568600816507409763662164980977380121209746230290853216331878501105593984311255353838242321503426668022788801027076233565657385511888691347629239237868491436835989736753853487264498617586121803366559445033875906099743539477335283181960446714295865272652044651052126137356574760646143523338644296956099585986758288051072268345810389068887329846581483092824907737874978649056763978432119509141604751298237079686393882097392988095969262195925065173462049574102908421545047413656285687709393918642979567271408073433734832785981854802562748010825880584106380916359624457136301355114694026318814246946190462514926182846920206101773178483454567269590382782649047597011334225285325312951332444954603776726192314160723370548956110018774317317496414177226247195471815303975126176639657871455830854558119157577802453990494492769965717046811789348814962807393708185089457041784542541160150574738733109708673766492542017694825704010182924370728866191813098845825610566330380207187916880564950309473246146288228859968667702803287119169102939579059148427053207129684315633488208974218418533325013935010315108936788289944815366475826656418856905811810190731023571763147877465432250084471803563593164228660780580265236427242039044969133285813387891085528521351859969851230282028280822949890048564272086963827630193724944506153617485688779225981717031859994239968493219088817362754695866735634585025086465087242444474999501842634017208499221435730160440563228534253945020976833474820207617125070962928016406348906767905341177748364512909839682341272413139623074053690776370464504703300730995487364062408799157002901153444282530291121283672055916980452539784485494622230984470241054429917024813327238809563272423697457658653098784910588832133955922661942142029147370836421844048613637025185312009718910502796929465342338044504084470823182859603171066564305776337520131174001789376833993270570234872196341541054606934900902464525064596552305840892353905428676269545443928022622601746801234899580062465820759388347018973199573722422550260993481444925261213992751541707534881810546824784922795255695151206266278037205883180104963110812187410528556359568182366785052439260644435514071514169874702962903725965847967130217639143207073455454901058414911552646058731351549938600303362989794085973428194022191997243813551744582793584397299055937469299985135971706381584910949936915273774903362782194953843359595217987313795164916703959090573323612346119084933500854278719227496489446747830792783079178855240289255921222108687419376389089947045595414004350911499205020216902918707300946178725198410125953956562982652051259430535896418114961344049738515625415604137918608565260386911468784943523686856961392707322154964823704718769909892737691775999082900008675218981247432192118664894131093690777162440388728834268707440609545464767176491476649252833507233671490076221587247446525206081762360992382759100034866195882090218426853581795687049929331436497037227534729170824734975887802315613865206929666075705060604331383241227430177121351155062218195671228872686579550216608580784724498497747074122895979701629368198465464996563469942210201716171584061766748118060732936166450998776580263942998563173130577704789360033653579733826812045886689640235734476427264196626167868321645828517710142601275294020243605989127142928562437297222824060017999332648304137453331503385910154884389833838334200033727146908128918209794164935032927154295326345671925101421054523644652513998380176619860166037656525602950627370646603157053605103415449678214427379706313453312228581126384851418324043358066193969065479980864258401336160342024993094441700770015251513732099042952281108218407150531622460641523729405720254721323366448655722856559259122540966347367347715251754192522504725235566243844096881416934584332579048262932760543672648167458542650149645475585672521161313667710099642801382705769814653163620503116053237048103474073091900808516595089321653387430303386735571771808799955484361040611125725571931337978089409785623537582672858455708721246222031780329432995540939033668338930697568928067967749660769288245671070840084082326141947412932147373825026420900227503580532957242988185448891088433600740530904476059987963949304654873275463678678353025581171546546825136720887355767828485178463946859442422679134681907469175026689931217585656568665241309045888039637460916230095045140750710263774986536596308896180323324645641633299197327012803946650918448990572112790339899507418103684018771288304915367179397907678284189235544823453847575524089899518316291182325448518889386552274355001462522845472757961604314366457332186237939928432507726211005305688543318521707667966352191777411381844061893741865157837788076493322100492640449486132524235296294650841381686814723725774627753044418959308367654165117128906999128569329992888720679664725120024653464221991205422220647604793308224238363780737147408257913287037751833332099443554302750822069834252300089871291720785523041888813490471385890840737589842588844762350375488724283777918643437989990065457479564082129998934764282921340578336283399558633851314957869384977541968921991768637145000729031547982483198509215096057884821632830836198492061788883536846005580161337324789383915361226863464744869435923932569955969234526274082070626226399179792635363492746934362902053795698429541507070377076502709206924869679840593748180357721337771230386905124447388506013064914939824057491551538865023642229023360100158916429749576520866276645204286985475874271942611357905732895291644338129753808963184785136066296128473567240095422266838336308836280265807295385720983310948151516351192094296558779870402482043438076629087098747358230712389222024749487815983372614065367566681099159003623836418124108462372206893903931761845273615053563594055503150388292282564157046445471905222642919833941405617869332077625074153305200622093724473584730196158158763984899600341496351917876876287484001518318783890983289862731657156484912301473410498650629615491493519188265761169295926278096008123321506762003472634171732611466531400150451519408730434504341748801132748826892540099836350070446883756029907323984034092651757916928754783080294931812516867702825071945339418338811313270845364437735500067910108921566843460271890472814947106010983131206258231920804414567860680364250713322120580296427733862685753443510862277394993852002592793143927562181932020707336186049822868697543753371236090461987998354170697624862495927222285820569497528446779130499958656584391404845341760572846412444345828286624843671590260431246509744521775898664469601223803203895174585280427729286134500431563787593302924189246902436999045324282779341519493182440059605818075299742346762231646608736197654643881071295645276511448375260085397584411423856353923845281103868971634856936200845935531766767629792922814871723521686370446774586982003363434234191870033648947059429843433465947096299749032241793521096733186484627435973078469344548890746897500509120343018655321070600261379132844811947828903421508350910153009968591074299725207613929011556992769074694393404733190089970022394797370059092503458266787012887471481147467106553296335801638769731138527725714451522421968308092248398454894077292909740010577195423518741146351061453686005586548725694926149276625752721947817742907278368478522861619642597475953251059906376848343907492203026759056835346764219151554794298957660648915716266541771129675879359712360055156998508642585504937724218401174149725428555069196089516613441226973622367701339771307082638209824543088609617379799278928949442473929011660426976565912367983987063293780984064949165131650769360815985905689562284934808322614877879630805625197269762313014773576752128654664167998300978535972398206005679608468235696950911019423516386348140157188512694097067435227963682691678470678331977944413237657360007994241363784100898811951754158260575850936650771804337526828821722172778805957163217770318382159414766406956572628951992056268309108522717924573189106871044932678919689599204236391196895376422738709774809967837428966105566007618263409894855522507083338712521686362097186349444589653357275902306330626720517682040010826010469036800298015332050355324583284519508373921245572069002356209697313610593074987865901694442390564672759577849224557673020528254675844842625137100621396102540676568468299698553072242337535920110837329552564815252680332773209685523469712624560368709892779127845095378571874125650652338303351895991765510772621449430964067302613641927655247705003572356625546897513542559195535841510690347363316216233987518518864501092341416163662256977258828202973921894266461646594667554096608794713247436804659808462313519522758772163915500678441740833953940144318509348335557587693021855281388269219286389747211003183836675103909100516791711033101441588171528346720210300262335232281877480849114573599800480523949361630653965367513803134826052641806874620580497104592492064457361417768349560692461766555570880475574866442272228302055975464130509943671800046219877644355081125909741545018028628171260089297887122739153045036481274657104348754956166560517996037182712699456134477993187845797020752632504396096408487322318607142200821185794387496302302085228797322739935154534744726535445670622109485405655774542966029597665693180166912415348109309675462356445167406268267092624546403530055824933831146345150523733673643558676480427066960032766626551851951686118616963076350848551883995774653750650377152962040821076224217469831452703526454238969085740669143637608741748812437213390878894804844304162280530999166791079052161275607359386607058788450102374259832363757585595879990078294178253324194727308108681176605379271741834442716116670294192398292743003257523017557670725533194330397889650976382756524748127636677809468400259294794333700791261430489986650893125763468741469736896646247883728157738205299005300603435692942931818938111144975881233229775796330303005449191015520041068868286030091155056246563964180992249601184289244765235007834478912920815619925161121244626327517011075307358173552839918921235031684740522321595349884078862732503345807777981434653020910984129380204640279439738623646559853174917941931473129596751419514272700547599951488109828456185762633636609408094492804001191300817623005239577929821207120443055945465524984820345930571020645143468557165253967422026814625980906530897891680052528935620563177469931198553601714440366771587180096729300719678964536154402926749774790566895835771339928548914325143325912177756587897894895343257681420660588281045465460604526512183051288451164298455108846544694167379574273914286868658235043085696979247333558596393431069435793601111021672111470264011229210478360429149937265737611392261599873774286409932871667270309605862353007478351043572830351955976315359551115333630470545797694594714857316640619321242919697686827227585393094236169864949426707436731265452171682859054303919926243260542974814726429583700838956216144456172744971989594690741344076014235370603521257600866271766697179375399672426041899956634653215832898131667842008139363993312974596551152741755947514308546877483512631794276315659570935631593606662063742803148969991856413376974164200721345298868300052328449666698676697357730018032905227458426575738538083816461383608310747821772578366377317361006213325834260563292164867142213055551659737426867119155752588743696982045195501843380335499503640644976574379584952737655797639624042281608832860708512626832135360845076779907357899886937548639130414802691713740173053853141605893462261890190717987419036838925706739958721711010420659307380807500535993052990974399012027982094316472859345848721315308395543084975897020739070009904725527308732449212009165614034948304966382131653794143446788282510514820060964787709786931457854066851792636024748044804826423149271310239141461887223842328037676998703395607788922364067068573708678812815673308833100504062313691770044830810260768575661613339562746784545727632478650745209531361291672706437090328179158834178092980153215700637738887324392222879598696553681628009374530589112401246591827029490878777939020909810944601780687705298915128443704320246825041287622231656461399435622142917999220895056696687267977050448129880563011345052206487360205813628901546495512971079496318395852192706901246195285248547379597203203372402174814735050957540592057570253094380885034312766739328897471003312190683339412471590614866425056971518913174420761489250576571229619974636411644158711048152048348002136298747361293816008069511861554511055141766604848157777172338586777607718384387699109426761894473145646252645083530141105053243872403443301995863686906569960698882377580538099757490100057236735987945576152092142043322832390984186970591604171882555154676366405784357378871783884208516355965419553655324435248057363431516282206665010856472520374201763198161952026560201205687722597059987852056370722228064011559147409867383109110127559111055055475534141128132023203344508832903012493376798349320251802985786365794126865037740986782453374853817595807001931298563950827709045040787814807818595534047578724664056895468664539921755906638144358085578402911206086185532546227976929003304465685329330058034475122639105558489377415941926111466300458998121258031173449604899541161314033762367655932831952248681342458680137399385785127490585125918185258267534513201143774023639645072005389388755780298113587023201004025004923533591135814240891652507785417040422327724744797517647221263919281488882560448301863723847892064850882847561503299606261099146462794455327749827809332953338838816196367774594141355839528012096658324642521382343153883256465191674996605685707627560950660839660729591117177006761242987248835013840186953675455080558057673834600813002224676331012818364838809487411325862796846036531182021411584435880484725132688703899840006682461368492981314038864540272184785247716956122730311305352274131515583316187743880355138230431211970760636714714936607694218612754450104833672536495472162018831593605267200033493838678525738090068044800090457341608279992506235900549324332909289634519558540427523031649007806837990317722132502822751450340456966783992569289242702259864384689767703675756202930392064125763688543854630567139470949716067369047841205510198966927610324733294539371277278568991858320563002584122769066297888323975715816163744149324361659504304833255325206359406380750108927563574208916397131554868493361206986018316562226919626548895789165609446613374563205467702961165030032027932391895387094732896266280346040488969325340676556456728900930154001696525704423142095290850847181200872867051968429934428894088848241257429664177776683933614114422106766256907717796682615873428974384507507229747491306242188226863666667178740391218241551572321481420088633311614323426210065134904803890560372486578253561303149306581038237007779966615426282321273885558549378171515525940401144118588199705978319138889476712091823120449355573395836879108826153929155576200569604751979158087817549180401570495739144166455242139037797844218933894516675066806392154336973821088680813297230914097628620775532171001743385029996886662727469232661242481933440969337393687100488270025397624778286896300003203927295080017340341324397202548974781661439423183794133365070769528738364479351787066733340138572928637056105409748983493753538778282130911566340837636108827157394731937671098092156587085736132388010476275575736217751406489681201049485784888573602395305279805670413651265009384776475423738282421648908187124810509267122582780336088641736878098326124009056473097383523476944416483934124862671886385774923638603468255051373737933590542094028042159887561523361700909448952226659757037318159471469405573651268088856528908672289967077029416587438714521224143041311882590775839340855228455393269083827294389278050138523186693213918466794277732742131219328632351842622221501317762379519282524734511056460886536541983905884582800146967278221058187646315084494124027730547321732198869366804594365380432344856418883862005774824050897278359996079470046865383345725938257264862819003299472480496225698297878697636707267949169772152237815781467765250207128412449351894647335406252929373195136569414779253370159138907968298201502284149782863215941209458819941086160057346908867422910072514223104458971660411104725401356068406863506394880434996806310123924200688179635138812222218438577198437895328090518680882280092412187581268825044781183955650284534599397600858933551285021405105968568879920838095526289748260575204173572097946316596460511851560070161209617642596888330066281466610441151094993912742627964242428256342321661280747405410094131544897544225419267695427178508069668695350761592841168151748861757457013644227445234288215759121799112535614999789554727946438176604922438274155114680127660330854291663547530440681136687877809951880529007712720193845646626133872156557299612053327423430003524367335293614854267318589856928101051005114070650901022663696588816952150629820010304475883579059869252423992976014274083077825769635162299341963860070584117066240597221319404617034055302394538835330994366235847473441846415173596032393151697532706023896576568456707321326964354587677746180475312385487240178931908151281037346531964146068712479213502882461813295475057433818399945580214750415051923979766456686132063899161724418578404084767766083147956634137284523720268393501657702562722029461860363927489178014321418063107153864910455925512991727873276640827783772023732573386922601664796863913205005732605547834191292909656730226618142400555489905992279733712074829531683051498413572414693132204916361819376601302547317052200209865782085436220829841923878913364531362552142436534552466395532553659052627881367740484088812560140990210784152590001178264185101801304988357410886654966673333055409245029185663403864223473844083486857801889098906980833833137953935561044607275710823120565048454048625842684153189028036859698024786944087754466425735965349586778975718256512841852797755939680881987914133554645886300579223294678235473541890718646271761251407635752412576252208967356901226772357584977331828372202797001017575773338967343793475428196399350974749425472800186910883688384965391333905809355393721847614345656693851628604067927771696580862719872448158459511734614627218701889681903732406283452409782541062430642584202295965573713195643198018280657336026082300971399289623641244108271416558723451620109857962126450809560661497799403530731950313315071280780890280508805925824521849450448216556192864970892144534679083203611256244804730009360937944897883932704901419866282762291954511218643044439034660093180336592614150015638872540919230941270172471382910097196478982131427383187324678543855718866630405420430852852643017043346712844432679242035457189117030923411630263184792819262085599346784641460467227221212401132949332311240206969808474547697516985485543787167320110411031610233305766484724629419119389940282487700761175869527253997536945028777961511520047061755489346564122954539495255247542551896342058811127531791976945865320485698971323113902879543347297764567827178681927818651422438199835015005823026822317755040249511635833411219912479858135706602639446593673592989618966774116230695341752120337699461913601843275674981035645627040142199187217127191773442753296518364049296447884788661856831413217495246094673365216947883669713818803921253315540073546969467063529389732241162287345048312637006120205478905737946672546181821629122230848872456583061266311365874972448927296656454395425770971320837906379394206250619758887898024945975787503613909505038639523335993877753275382192656188645253951630307618275468946844760173176591083083531504774803793211485156321919972812803613571528204530101693779600138787448520513123725044003442995285020737265457459869029513203880314943745063583706357393323504529936444504971327729935808330788880082389841364878243776279428035868996264226044854581770175385611860603525781273044969031017555154804194693257547432566351787550165148432811573761601700428740531396436054228471863979858973986103021895434341330621329244080006494266945564487121640294804909623834525962655035362903120343905105353289048473808971069328873804238133907133463991946989581899263231013629998385390873565226952708549154946126809884853497312327411444316418180970019196858518681287465359534616782564827649240847692690890912295057344045051397533968552935307147881881219843168666814166092762160456417168639382234975603725799021181649358599817415014313214041611540485946996051693066551448029507138599594638479831573300386628692519667331964722328377268901077851641211846408559816290239815634031120585044140749578448651659106314354024583468921422924081795751711328829819499689064672809671987572433255035942362191605381933982772593790819145589101793249358856507470965127162085734696196754944769912649861000453722503762441576055287227992615736687845306404926647267618846646701879388346784802191841535691529072148591822001052706920722994188751521946873710273580866875079325738874936790603729994366238373719518315160491329869158060671058594719137305441496163537393090697204895620506890113953769556478122079424810249185423740703206792992937476630457963852103696126222222665097202752928288801018110194365064717617508910732114933805912740488979531861457277036824967632473848679057519600790496677404981261190921884765606831295893413019427181710882540184539799748198659010266705328875551781126064946784844522903619373811704982558611874028785257701096176135048716650968377481742496236628683004136809322672220798367589134264470787442332572008435131593521862390505956783002972258887822221442789577602936440491329943367020796520645766493378611540621397795890400010460671431602796752327713996702116220540960456980337829169133751528717017955381354645227626787647115861062328555032502653267388361434101845966914032525140435439987567390306831596813087473514059744848330762524207587769423217552445169152756046593967481989806073534515347728996091495230217969325752147505736735905533213626596915935460524125849854495565380798799195011860192641878014911394448087882275928365999063797573659613206786710820735544432582550637301654071528263216675092656517629090855124465823414667802610361339959321919484810861711424514561398024846302218959931513735341154230377254998438972162257118818611788012343952811448942430629631720780892494643202325062093926789321826292549680364318236389719918697554455197523700923879490397887154406099531944892799258785853457708793050677657255966285997665352298016377197561778843912232516556193079141388950313380233556500416160274014835437956279786354737498742380921913810790525196614406543753742981290836080241857252140457332829247802246719756621542197990449863879600829117025083721088905102162652777672797098336221448713446419888698193752750951481460388938658807944929299398239212515903662338227102645509787672865398485815785935915910194021391367355321199824626852468325285559989185250975762828179572652937064268367393033193152282642090160187967076687783519643644023261320964001512764977749912716755427222319215793127974025877389632627976716418870150302049901310773602860702654199101733294074202815452347423751828114158590010976684668382690248746749946815824702558843157774784177842365840627679760073674337730807202145951951496030912589258784111308051547072380233704139298881178581320217302436573850314721802929358935290072107845094725388928355794242888341430992176785040988984624373120176631830102469288898122500322633524397642793347228435193207008786907179159329950084245599519907159325830075966137762785978758963721007644529708439993627145858080398836048245936576477508836640222566686329076071371003391873117327494340345422704265879695119512202424192560999066393781223457114304481300056648852051695357740045811038940204300838524394506621580397831615275544812957232734680510983916324750825943230404984990997997544344452731779033934341020276005798945403022859911690367577066789173343818788023131110150522285736389819780680647843019448886602858129165423691553503686023491133957375186936200257419789573151393485443182604652851249566918629157554036278986771584839687540615100354589282038483402634059429329056864409384122435336555924861355793702940980644150846048436062255344916640715986108739030364991416887013368714268117407389575211859989654583936890632452341150172797636148614581924272500998223265460330956331414476619932261020198455010737125625957373527439023971912562605292671185411412786212936750926742487928238791972493673842735593761359228880445325872316884751425409119548649085492199297199820260298092241411110125049376696345130151256872735011034122940282456306694336665226691022392085376614961350149038585547939672072372976593674561968323509245808979535611710734626169330218501965206475396867597244762208156208157950318511533313073171977325652907058496043968439688584776688640725640527593951719941254616246957287859014900636161212552636107544704095920710438088813225847302340936490985623531084951773273735227798153455342749175280690254362799778403295543521130239074272819512128713114372652697844984762437455467382120864963494848275778345188571159771294988172112737645781326846995490301682567807222579370301359480910723232247296603161282838428825016292526193672128001850988126351987932984691246964654569936815217596873050669225651171898506692291495453231150190750910143520668200162232019478843114229601429361595605107698501891130964169951142226324989738325664681677454108535985308364392341889062831608689104622156341093765403739201546007408631092925799326177507736346105668823375633365363823902075851244306624695129384471914803762627090834894909463268199321092924340378965406538551877276381184180468598152000487401520260429008937190943361712401784735160354769647925913054029407078316178789188096051306273631761689659274773734568046310871831159397283552429641617058263450219492808410486684793930995072205595632615585452515657755375732554015265485495227549702661717609048397292624364038634443097387750826680337689712994566220060504553284227498199362547953070386279328081003411765669611294589827470066995722248115870390516946089241831665426183718570384107751905589893500662768077602113638678963678487656143230439549961439162885776527968714205356586954689253660467671697727415949654599603335794958258395784773844361343468587435838030062178786783478126577501415873627567778495376973957565404389753634419061029197081696535198683932527760795686972818983258874050635933397855887846923192943066413261181064498602432439692354054191852207069033302722105751913822478479804838642398313606628049493224709355174158304234552151754614186744689957998177411404118828281868621185299331251557035949046309267478029848306060448131242220507642899221497840652323147176285140656871446515197762229960892273416233283989108524667570274751067328554300742649983150322027667357409549339818209719567195847874891755008177461215015312099932896669377130169403994381690464594915777158773053165740588094720934929777722958070021059974060774482775130652790952476610250543033043095828014225712623101778438237704059731457481078386067361207409153074551003197488003213512125455360137260828820319806211768373412816094453483329780921834899587177597642065596991868167059562995520463216574181219407986583622477430009259503422145080635555853757588720465565773115612802277949405009268993950976409289495705295980270646380091570349285024379335168406478255752894252683418208149189724659290107223356270444044357312211262528813546695123827367244851901299498312493111260766748573890429019138322033135838593347020036677349135853283795388591131173098363938000111612935228163530261489839665490059684691170845424763024495462153392715490710803792174844172907890272764321911968811590440313029344737921947782850503593335213012493273025365204994168892919212781259616722838326543840487689193604104463062129581545221823311150291271113805913957019781351813633242344180901348829614553951549969462277536015594565907828585369198325761743949814304634743517508174822230940933282753806423692229527864685729790992334933263610262880576169500992336423682857554916758341154545033415666227330269193516758991849387939396098346086576354962932806297792261146251914786255973600596425288311635898537757083514932693763839106118445038185590231250071366056875001967487857632565943120855211725223062090622005442104296260238292807084167386852453209985922150552085703273242045065959547604804056658164496533164407703524867228050624306672334337341723861727457514614994826429853767105493496901927755083908265042418612698177697249591521053196777079555730511596145685259080217645654591384104305921602189873727861470713925101488327054959550987481529783704027677299233356353354511970916433178730958512354277126991325036545994106788208511679732214320235796772131339129464208865496709217598045296874593785394636077544596188808897524719106247859265878260238198198859382635571553989731790580277627010005119384758677901953473005542397338425084040368445643185220059435612786667993133626886769623169713026096241159974384570273070369318526664952142691489012177976446367481080799707991275557864381823720253024850434832187826108252712751924289165322093269568863143002928867215632546476008249122364014404758366920166476647903215575475958643175414726062121308959859787186754651246292433175943489117157044056124646440035418302909995697276315483968798241754278922286879291813818580634050000029494836278823984908735948761442337159540385288430256405871152019653825075041609949136827581957250813563550503383425228229044664633968233515837736467920123629210051297610053497427958904117009729724256058306834923472551176234452066824982562078183270352045706504150803794639397975856791803802555482664881123172027303228886389131996422189225087405001456678229224443178885227548180375242845345023464001138202390440849112657234084068843745561195333916451937816195379404723270379733168029501233199526164116792521611499908995063531151797700334026075913538432877871487225230984243914862527466646228001622837787636617325774729338867840957746452216945570488853072265989370720364027031815004491316333211926682113407666984815287126908343709262587151779663462846198431153979994560996485665717753333869095902001360014657595197375469529495953243859217070064926863369670590226686336735923879264471637098454042494434530118697977242805316529919752175054849898167990305144056539133015255557668706078687447622583199548113923818875805219833283665245670029321269334365614048520092389753114843784286357195095141038019974280943275246088496199775196838512428044787303664414380619356558770583791105625175587912912829689866870370332699190782545985584536275793794181892862907890231654310064758404873111834352859368799142300652197358784057927671628503523277318813739002206471434676148625787509463359995964095399705096627153618089998443793179277696384131287227479094692762297018729627271491140989335720915774140851365645883018768076536131311533070495235169317187799274366615675115960994393171259456380678696784116145014841406272995215941166955346644643650901148149051969307205410332388002320062225446952317882944756849156686820801399024374953388497490679625883977535376516581433439343100098243060837706816954029462653210019144265054438538962779807026305086380461714904272752453956134891124725712970576630767907745411458266688872906974516566039327526324099182128135823385308679247397724640799619709538207276848608189869783959615478022101073562279701471233984098513353033776410646877331530647102863088286159315832752878750731490733257190998135763497911146682605818219907542154686804614524848521820445906541115451046001526384688229313873992874748670723592491546825735403922864582928808142647986719873271877046057927321194069369066365106019691723541410363071124413159608432278225489678163246628752608341036502026794260401411373799246389956962317168836990582714307738653490602466032388685282426527868680932603407108557679543884131727723715234911838034160183941831242592224356229151515207436328565057499451968819877146986276364427597942505313083563698624922831798345859767764842212052474195886488285632273232620781636784408133548554562920153159110708717489824271725118026418548104060459913152159503032837172281995003978759864986640552450542166334242254142664436373726770411730979875899911439531775023827905909865336002845128608190005231842378123261078235026687457336985467460669589156398734622187863844705062872427532270076238082797196404081847248198314623523402255147743622707072105613318620174200087526875477977656641608253917719521250612986173999864705802244756422182420296006393463901961121990359736101858140101382419427023846282505427462176841584577711350591492256045136919716359922711551290606244640582231616279184964878822945568624319860416679653885742466018103998665130095561780580126420189949715029685915640816532617405269003890621882405519333704327322841955175980670955039632222847850610742062029614768215044859088220273488946472610019800649390648328971206397621963595331228965794575019226004910840948574018405182987236649832568072086991824135637265086971114144142340431549930513380328247478270671952404480201484391028310315793740446805153167762524556808010526993585168922870127958741157416957894317628568796338521273128575058902087498470005542320610831262719577797255013372193692978480981773795525719539667580963847304213145264180009431786195137156911315885709371654505088185559063025548968096549489076245858265127912924040561486536126380702483132651619991116764182150761230841787790720377969774847007318077457584154727373673677384941718068234813545611185579082284750111301065518815572618196349529726160033737616943287679372378241959817207550713344302834923351079051918726657240575187322155239628779312622836478424108614272517806331382827430119219407942568721094145777497101323048531070683608304819671269633473948141070232677312873890561821901554495618900161645233756180409509460717563617123033559067945886930557570117482707055936250122110313011800642424442458422917243202731451393106808072912128604773662894487757108441138757030097884827094693854606195867007088378540406697017974237768703635777337654683268630381808083286054909445776823353504359826059621455164198047798078455147432889371797164916857150757893736096900470380046605756467954148265409610888092489095329822646603829914175408516426915125443538621899216793400212716453026060798056459220272414341087565136327420957876004766670848598465818339096646922615214935216410397772538972933420794479440623901675599645792910995626197245390775731360073115523402747405976069143485330285387545094946365984796889174124689457949385464765697537967397640232566969781964073098046838590242758705247318729081161856102853803365884591378444235373214658920841464333894752427050054821018140711216865622271832799138067129423712482839785332447595329081826015711689049149751316420609275582485758466273850651340555860147062225072008399649494353532650821569203142518358506260750480231015794806312952228142160777098681748731973892838290499322037250807584952579924600337952276483259261433689971787359522023869165551285250924633668408037454061881847567037796124391924135141391272567393578926858439903396484880394666715998089541592271009674308521308883703106882958946239723596340329898003250145578986976521426684395628923330153662317215289297795017174727285040890423273148813890826773882116916990147231440210110661151378110293352303608009441832534125820281232231495393408338267459957518741819938344501275556842302940157644275588024084373781292321391552916169574677196886004835581641876205360453929402783551720394391724576192184870068780849798006307563794840820364552989464950243969199454277045592067029882062670124059907879894206046685427913142511079022443640214917412525341906673082034470330179578362940527678904358898469298929028577333489105851055360475690794282272803348161542810718375417548880569604337053268500297013380392912752009309694220831054420182334236237829778278549002156288836018989879133373156134156924647284905117764434463849731059304979491245048000242972432645401851518293115522089372406378205982289007398266104816783832685085899702609269338405032915763153475170429777079128432270633682170934402725033391578488194507150389707167410624043823036735276920144392089417653713126581818639014967960011462312441425740861414275293774985797056721831035777265803093874129572894934024176775674848773129028888385148861937807485474970760285729927493466798504843522546092336395608791343651612271541143016813403650837242430997580777354279779086608206706397149689168930023749320462034452000941276273640613521896767837526886599350752628473224865887274366161900449389958454297380129716316928279134068414980982895785759597808971938166701760275699574577892328737205031968149092820131079944606386257916539844559914824061736813292495660530840410754093312750034605443178856266564036653152897559199485538716922841676832543449347350469799295489107180121893252610620118273323658558820747826884982861794899437553406533354303268253834556722091915105163561756191717300923697407731106985650140916110624130712766404736101584205510590797294454734215419226618768649333440982665001871664082533573521959119746101528866766090248671041050498895814051623800413356322296721022025308893897188980261007736738104469005324013165518210615132346179103609257937388512420620967695970759539884059780646232251720494570431145250921411027492017055753030704674927777202230147474856254193822042057386421685578547252664415582123376458414920972940959785901860297616760744064980402788091212944833164938585346205522054876167955438239821586893121384994194850780384082384099317696362037531715215132933531758803865733489163147012865302365727857790095695712931993178152209380178925685628517048822657477241722024214238776838020596056223232370396479985178421537139597194594862235225299305051866299148298578675776046595042672952234771221747414736147687303147041020759463613770102467053227517612119275400960241933788578440633573468954189233637623480703159108606185888632929456097806104068112052170893260203765528041483956042054605514622223242618743025100973462310933396055858981897535304586706987655651378306517093977745811524131527144800957549749380612391482338271671371348783326386744010422603556172767104470902333364907392296924641208087193466990398401636342185880523294847234300927590559489073404898925674895449000707584103689307014134807399592215587722996842342524938010703402860643475164700956772524606606390878309092301828885436473046209230627934751106185209576314673713450441808791429875742066660559798588680032067266273306744988886042894262394143434080801756258286322355845259742410750487322053719881560500455760422312101163280491941228659683244316618662796871959906488163355795403216299870447918723533659907723293860017463670018326182304994077172436244313330072474446363231636819380235750734068422399105232663606897494925643586110260077493437408421127529526345003013150888405630844726947785603934484779254006344667731012091796200440525117251820087294719627185948524635122187262910987850995016423543538695529238063072826689480070814209167271384554563361897857150391198994786533577395186370358864275913985157941440470900992830932614391561759666889602219185108712380897332088003719710945883481477827554585849442930934445902344706220977749432329588182237438602104022969549651717669186469974808182229278551033661969647682700089372175262093811026933543875620515965358418468220076950894469996248941924161262724113414669939194419472503107474136363014894571211804855115238181406336939032322633159324278176848894070203280115986129143913553211891846400932007724190879573197101725841467639772738056663790706861764837633099900579293586086039244451656415554577690295595252122820603728994210315620826156308683054230701507279575385580292126753433547793961873742491651946174546056586314966974137003975830621533548279347583468782089884401918549004682397417203437867760699147059049795139910216596270709101858035037553691618383732866529413105657345962061794102112771078025178004387191225076046749797137905774184735086514264224519728460341574860815859276541984233394236148642420826710131377509466014647227676267526292542694883235231568963184847592357299281163274714361058648800508983370118425758952966201111326278083124203469063702304886131307000897004255053476554391086689826379938876216095189172913439936678485590935526827590755050684892750753939756926561817717373075345234280899389649826944421234614509465543321486010610254242637029682514251678300611457815901808545142875836863424025532934143891181289614902009987787790794184930927145716602359640764723549590587241765860436700762718506314081299970518952861462401018722758409795311267518998150118627978327185852709608397153266461982301342045150767536937855140625011298553065069894173537804404443967818416372871752923908308353492084379944606007710199701220810765127556770390760562825398886296328248588281315050843254178318099965648323933040458793971973423635379138551434963685593204339980447478499896657432692507559918704885063228803044737990776398495743391754687652078251327277488247504358903113397552368137317148126031526102005571073091242611199298837583758250691340202745130039161562962320609461370151999649350509557382553855365464319609346725504583403943255779784305322282139640391577518373649955626282114983285557738526932283622522998196927616104959754751238881602605162235373113194892296734344417821541142770190979969255578875869263367348136357362886875875539762066854556715475430688046658342634872008372984555055425695638870531389432868716064009980137122826858130794470798952722662806831817403391577781867647423988749587621968318121319290539637803552429397983591844165263182511554324646472979164688782582626987056205757759619818819340478876704002647779316148081542695627663501670435557484247717390156216460994398225346278521127348888063522947171557283367042389259992781369282891296385263469467994390874669717664321924391937535611588341570249525898473164298645294236940560512548239992102857332298773274979513760136277372072196497142241027268677107838049540853238399970376149690197567589427765775718749670023147894992063806237005132470998240415106541162722476266592329444467203290657305959366598046961403708521016665368642648948281443590404670074598520898175751759264089166348385093917787238485169144402877377937776797130190147064316277800808528833212522297792467953550609201053945124605418854813219608346519370417990909452472555317052321230180603783089493743664720890900468750502421499710904042140281967181541686014050198815537302217641150900582019559200340065456520964996951467386431612398325736409775550675031315795792391718594662229131415624777904639258217019793605689349367856276154129038641183503630024001278968019972447781947809187378573670008446210190430186785939766742875611150695391102328345510614570296702666627333320176606679157002925802524012724095963369805711867079255411956940770108246203566973206332349950440897611010924376981655417280456266411932946986351802643637018214498591447308611382307480284359779085158600653622691912254806168903675521129675958110721916469359566842918851278395271374673421833666559463502769310266635520092480923673397287308194733682657392359328942705228432790752106460724505931346886203766625887934714252924080258018540828646412567253365919622010135508231605455728674802016491277898698531792172807261262518729418878410844714178356755462927409340569998070770172147432864230562529801634005245682097352173609988696875731775502923069054061574293851881668959442943157152363048901301478254250946344029935656422525102556664408216083311731033068381957823066437829220539281957555168645376104594956878349781254289616016465889014175923124396793904588868466300126643531590692798170647064174744365296247240571629932733520546106606680875982374229659800109821837704609971178484802868549819450781379549751675392104404943186933947944924278870824851967875315940072025069559712776887898543141412335847701890992681942204825673420108334224226802350517364877353901068631573071006216723738086896400871370015740031252118880446920181744347878003070490639997681397476750975891999856617885424966799233320799665755621156061576515101271345805318280555971472794483224499144330473911771483837431373260622421539187960316381842153029957233409693627454242010616770098667766656001223977242986546932452572627852250880078543176641307056435547203173038017539279794423078774178980716498268482874917062188664377016852532672434194541956312833222759560463994916436203714699304987503130956084137460213518570598033782182911377341255346022488776263259187980671258033185501504693070560916824219024176078283913698940046703126178537734861910368229517334376333330326141062296536611435345186797138112930862452822844809164437078461112428699590313846825391437339720470771631791028754422877646538163824741327921480061700231943145888751034640117885877563044868437914572778491505802729106905595793796176566651332751187472760632560579453582448492997383225765717188940283990684464908820135684322243557784313323597795491076177797239940392837126616654035908919455811177785447267213923257943800163715576618316905170120169850616862775037019739551902982610747857409807758194191219684800022520906287615327077332710621658130247524151969892705536883147222086337641172103138389687233441858015240385732976982834705305662729416864548502469406929783644841642838170924551350957768110554460912802385143957764740078921440933463685735635958929542265626276127669372233369261578865158630468273000372290852403707596096170339443142680735051949732695526682223533632287491289521804866098411447173491220631185142532680217982952357619101702404724324804484852934410347366781780330429616247997223044031434492173678122691677106212933314603265613769043756591245799070980346990600827134999189351996088618692543666705825370458843430808058794110749769740352147459584824260838369586340894688819867041473890422257936609175439201337267844106252631413928381329113892244463858215229690971225025828694456675180268354860262332503697113748586314055655627667655595180257670420831424100325988143362228511544899886006399626413357039392931966031970227471176273809281117971315312162185763907031193208393291139524774896630287640084829647850565494055661803902451384765670782937222226381098439024081015812871809742934692759891557444270962445751152978582319162922822876530978577413812784332143500083244303855129243779042182472911338012305926320281869571376832453145749457780170330473252475080681063508434247111620808373115234313890791274202806814736482032537030373125642669568715796591193913425900264526910680818001871250535569719549184830526088480702550154780703636548764242149093401152851762855966318007478796164397129732405193276875415689027023219928607923558333092734416690929752235846172423044148921699878308007728590699958029446143817692192940160316903573421241127565952579402670607822469979679237728911179167038829819649448776183051788121220029635019193240631547572038460301954640319270653315685726208349007951375515353395592470430596099407843728557001943512523052290385447178622826776469167922046574596480600613652412734865742065664066435065020909754117522256160315514680576937153416243098252137976374160671994060092704868614195882898509511985845038203583137159698136120989437347946699556864621096028833999235605628384845699458614892268124821699883665565279464679360731505367210848754010160070984607470085585608777051167685302068446866133416789524597317576627977104800504036418952146439446202507230110080114629084372040627249343907209299153281886073918921757009444849751716277350428051820380842980655813207493386536833350860661391932143307933095911524654207375938134229904149637062154104682702744404419834604345188760900062471662241558090873600977781149770605291618817977091373557981796363303326151976790071695027577227644295812149830257794873752768660753301243028860075030147162042488339247913298469308930831392906697442542642819594719657079618845213212001373320437581066600659019305938094159519231331056541315032706211645785760944643046145947584466600347317138440793027111341293795950539789710564948556247415045964527583932701247658944840291091398102710852402757522679903166601082916189976414001221018830900443772675806180103116887960508961184706868609590976003507872214432474690949375822385054355505591053668478417757607932461604244650255673221993343848458170043915216494797686041111591655413553096022298455236236766796129715500947988344818015210861481676739553822482854879172287776940057961837041939050743276255614997311872475158796800211737042302980368324847594345783646479854354928869342879553527479885575631928846303869170684646136930317102632875725506030744198022743897491606914847253159428669603591935975130102341690920673756042613276425988853549889857956498537244076395860253527691943716329411323484765570940011579082012966822591527650268164465425273643530949385354115423732023754244667185979948457100960181287661001650115071065344793852171230844135042640162042440086041379181795438815852597138768935767094490568324160309029453490046723719312653957167492669427337510862275680482095512554034699270313339752853399704776448800644012749498134525621938941815689874649626692256103762900648910046960072785737444184678420261644140033446463448400276728094110699909254815790910209950539304072690823436062192078996965483874185207018560512904566052272797575250605677061010095940048713397943397729621648844760529783198878331163882369572320995250665822894924882880009929873426547453128366865422489466131452979688173540908516046290719808599444990018319648900905067345223083162226620752826792248804482864939451798054344022907781761869726306773365459609988552110766609901842116377760768847662594837230521863149602934417450342683499272902763299518302441214459563447670577308389549477835003363610332047308114249912874546108038126707192234848731051147388585721107923023106504750385547741100411035063802169140469698464164073701327658569869330660702988099424409237529599491159140993148955690199890696041335268833170286443812274441829742524436764034587158673801997848276654306714511648852168124509953164848016018183798414333737700646889236556056254458870907245240700972785805084650316528160833130094168732218736954849662686226291851709097292085442707973445354933365347095003975002298296225853443689453631554396193733873065064783309830760514668500772805441041654800580473142322418998522373136199024345033279838943293481449978632223209253373229574765032695737663083363567475360821025044329544066897241723813041608640217994205291900228727411836609977552961383073070917292781388203590930875575935699531175447390404956607272229273175154987517465508803984996999706737000197597635124006510664585766029998356365700327288538688754332562113409355864390738462872731864485235685586301451266389350123670436713141970774776963626751069774543404015783099471616728312563871126908372713900920810452400333853361764432195886286996212060678325359721746301166198028601249010863201728389101752192620538953549035174426829817795428909810981786491750614700990706487846917068869881979298420315168974533224829774154754834755917650899275766373082214116236413321007013075448794575981539250285740806108168202082212406859680769174026252555342134136253276232107326774932427471408172906046295314174628112933179887589475818776254820480347010429373374391983876172317579427874749100708280450488305503128100165240662289864644021318571820810898042729693556101031133886227712161604066532001644157349898659464318678764756498867085094837505541671519311114715543397113988123560798644545272621654797792757794713369758837339767680740286213147721337455960264815672026200679065748899530080308861436202371651198009313638338938176991351533256400298313689250545505675420677276972660225353182945196837292944191466958080935964113047727100708988128189957888159047451579972372551999234377366311751038071115875347453060259114611526623853101687629569639837862749966873516579771351578351834511659126578961646231930477143188816245122425890713058026608354490511629796586143669032364957989669947027689972989232626706970428697806983699885844320311347604366667938732807774082816633333520071878527885157782973489103751172221686213417130019523827263180439301241261501581669819682436816055723549432694595276842466823316914453949626405699654889663368137619741016446622686583386950556266022703862610302570817328505311137960355941901555724098143530538605740635103262551303571606813002816121912198659614600827951105127579371873692661388500859738504328201555941927616293374648276302673100222022517157067934574551597141137987554012293591966469097483994264159840911011552919290615455369797297440892237880425655836911311765285811803489821827347853362414701035371678268513892094366283676329927695744728039513259517303690326428149196090532373488462431075043149650809360596177698199609423818051526088038101898494581071449908178886240475663425884472176483010403343349487552317332547621202762850840474536591437907112600981018011071250321329947871020810881953328570422926263384363982568210621937009087675364075481622586695861177694786301387195147148594008978268677722301725389792278336111474219840214346272140369432465357596962872358170053571690730490844199995718076172189293940074978015575021972770609063468460897463644996095551520561820122070557510422863204484561394628362458577848777272829873313996823930041570426315011103163937735013509307449102726999425459565423102807414696067200766939485202230605106338235310425966070837793846242511597419385864830184028012588842031303496593256212253177671775116957432920473106509954738448988880798527673318761229216870559158660749421849114319092755230035363554770962268436757916962812763610743072447026888105988433383544259888535541119555591880299670386655140992076697241376286033073061219252014113457482058721575181885008883073783628125547432368693281757650062073182043052946525290167914215390905483655458946171768074306989989198672428472277816375909074015778861853240469752041292132849494790189231271842162024734075144528820258703377503945180493670423847395701308514999156568667463223810487039630161498542872681650141640843286331969350276681188120176288309514885185310743423010304988132970755991516878773362492333848023372862935590069045584709531739640031224265150946002557919811339241862636811340372461321717384728072333569306048974922836163232348307228890667430619371113595745550435278156447911639371323817532803342579457241826479087003631989170458243987649307326533652268842716267719911263988278347376184638249238735907048558113093473565817918498006110461527478154514543215362326209028475367885127241196979738250947572132521959393649316533917534253570582370803033288631957368525149300007020308939486320064366947359407028050970548681092985763103624355723068115542204537841636775904987421920461583835903699733667829426917549968686948287176325215581037813101611195429187847829090987290837820227374989918258015410062213131026739682925054846210942431856063947491817961911798075616585546672260677824217080228991506246701495519781923517952742673561964241085539159328388398351359024046686742492173565653822696668207028857838428992679192859762876218252715911119422508224017852754668564421604518489907331659930546259946438190102497846927971772982002867768558718628901516467729570986416683219042485600657074466103034040586769278088756705975277593223900233130641133850606839653906234414295775682428102112193775118707352565291281239107855049076991266721380278961098573679931531876471122648630388885176283741925258449586042404848723364145467679805895325019958590051096186023320550018397318828195479305653784208581854364095175684602989984276625530187410989782595912818667224724617404215970331190198223796578573659365534969442621479709605039139547553026551983847545136376866224790951346060214712106114316053128182980023693620196687961379851877857544152900915097689876547086296842777401772436053373053796300763617669904693648285024391612777217925709742197041954072333824555737777513091075287293485125248788804179874980768948274209859500659256363784391668442298478165899369553008750693653469779446742165878540840046867426202595304477107598913983980296775941500411894010350082645818488512732220499217943604418518133268357517196670734053895102083633084153230519284455485843990077906785452405837040016070638935047669370548511298342838455357601698984394495068289312641644489480945740216263967454995489045040783631372960582966369900002822966156623390987490562847895826370794202711156389013626781081603833323857561978225113233160116472854458248346974962002557751592379770156433736587026664962648738943437805807410673792807661594842564209667401549099114218305701251882834893372356998976347549984320370906312192164098934888280642603982537851160881095342465830778600490343792115272396928974570779419179397143607183191097335076323050595173524011492196783525319473623778878569065668941536068699778544115328782761319967633804177991844667946332430894161438753400763929636274738943587057361612377148437139144208879363556141203553083260845244094707932358757946830271152534762549003909561085585599616300559997989232881720346226836416949921964057160096518850001791586795105255616345944590466100343455967519691027330693352434831294426693175680721593641018609628235142006493367467882336111791269374738157807798358936598526451151327656861142379356768180563952091246790131855553553288552645201518873109475218393426039401089637515661000067463700871012971836490963109747641710318180668445157287512166842619026800965138546236950621965049168858575275671632068232880455109022377532857577911147179741279949222063180281781171608858714411466931216577879353360834279890808491773511895390481883060774066223068688270815506987375328886614799216719492803550181585346163708495448674679031981199748410715097885309420426048331293906076529985113199811345823563612055867361592077761960262877594591756015796337184302082384197150670612268818437924183620224090663646486069024556766928791690361538307165030438206793048517112863583817246752037233174858130158313994135491156475119607848654195906944515441887205491170542659854987916393626221874384928834586728549992332440881656945818625492650834078743625472021237641970931724147442853367987330067520080898026724136698139805713972017149672439496237020285873354950029348069951942047921410487985862249275320178883449900660608844090922196516408667878960225723546865135289782378759644750897113750920880034759529538950796792746467418616522203308693203278015124064610059206855306308130837308744014298824347610047089504169240188039599257215885226926177248062736959680097526099620601975984254679074711591192999115825949993570239285201811692527630508228654147743798727518591580715237024982659572300602289248536819207669239842116627124528762515700985726396254650901809144095202526682583889932415825630344568674563990817391634279809418382326638426478340713063990138168352606092469056220199613189199097993090907205234645253885266563054890540004260130578634734046472325860436197613850629870739181677432691207075959421854932721171706691392363211789901520126139612315459484091693419456140133639457297218481865559916085479037312977309078280045053119179751152996547189923070507453042820425571931595979335126591427987920130643233451454880037894993189500159469659655487492093687904032102957271756972397176863065515803728199518785956884938303757138008533414977155502166084146831148139266536270102165577766142546948600867182571930053130868598657773340146290027465374468982359953298131594870373199462365226875040904678999727326479130899410719423606134089301793801747438055012574840354966159211634917715563911413678488404617725096503368147267980154561652894459517750746727248951511787935696257982456104614132832315058785408716799183816509208140725497753225237710020751911680992549642231660638690821682465109318200050194351657183808708825301353453471403000871470596613123545876677906064983305359618296840035172131438905942707554318610611100491766548309896127338762704630067195786603847233815550889664515447258411926672367623405471501981069678282297586216015400461015028064758280512320031810286286715553754535371392348411691268509662873417523017087013549137663086590086053053339629396418504370306205826933007608926329548893465930387883788010188753531331725683558217616592311108846499691999893081754916503181127891299980625206232811115565743855603697398067081786157151869772399271314831044680337396600500851413179233214890851131517638711169449574223240936636067509649478730341906201109119457947579340236020974821267587678389771319020625396624319432254754162024026823024166700092197203413318220712885421445485478335361486863507569572779895735261307372027552755361628465524011450827903919069487635328683205212077350786440410189364818161357747717184033432973084485127746649691532046671532294058011873774029442650044205732849873375508840371069967447179681334609720564134101149945922858337546105456694104080036206505249933382693755696614643517714039608870740843512013912500181801737912479866003840825590850207614632577209590253781489647413730536879519369096671885168374427734415903232049864352922526332612006074382433102171363231724197745670041832427016448865883857430330824121205392733652981931283530852576221640528256294734362281432165556395098635830537912706154308151653651414568748382740681092682574404893162812805653192708044049492929201496120919822302409795057531314377376127927573758773766554535858422794113178567198242039563876213631233650800040910984826701172014066040940889121902480395087891309500833022497563954581540412981093562833545025956425823002355299116983070185951229364182689090150591989111035932835565648912257282124272091750822599078610996111324821442270137678616526391233147095170437719243856972448766291943250018675222600525713937371833519032330983723478528593259843940522513610526739151235089200840345570843939914018452501597134315665260489835071582520888362755597847164679487529145600524375423767117414286661200535655394588437187574663076633427704911454832127007893351332737814409636732327067686513858778808712675505334406042652887007861823895166410495956980586347680145089627037195073200965159457689569014143695497667419710967329233327218679971370692698373271393250296566366189768992966099675864366931918969547562895043036237234259511607571498189552655763205043579739911362738596953704526718877916061364595078249713749337174327474858871265216121212897529665982705321210953134857364720024107539377942196077696503412634860195664561732294768131032795198603264032504689286644956075302447731496044515555909530139378897811962956224728546135295659491282368241861697435874654153539250165679732671153318974744275289975986114192545984259151712216678582988550399228223491119609571637061845741053601318285489821913396759979034985295412189356826343908268790867716891525447729993367173161645600419825396627001892329161455154159587512493418964487061213435222382466838978323548351838408192494732856752347112779573354886589516996928404145409680451130428982048939337934378837448109309902741343321636378373345653239719390686315232933958076892902909302521587075068424949746975176087552707551228572387005272795388288762856579807214652696216318971791603748761016427244648484121572560899484011222775406903321243424234451791788998512745419371624532545421374796918534117724270440406291921671658519587122451225714388480604417890295684531794443220406174326413411473697814806783457419481214558036681212898366974728988557110914594750607006619388969189886990447690306766320628358556360296339501268454440553378225737700322365126590635231629966933057782935021301147728945218362081470103307284211637642628978179056233330562164703646784605603289117486816467380836026640507054877088475739319699851244878914054343539884963770968623105205123155340038720972077080201037382674955793914502504523732577537544622908184208553131604065199431898888081143881370045615848631235934615868852563713109580934734252458749137249578419087772713652129960607898615421509709151191690997461873764880680046722275486297557521769466203047438161315551788302387585022757387476658571052555901229727901660125238482247289928229095696244903585822732699141990760624733087550897019476811061306040827254678696819582755996585343890007551390138684985371391512240632504664246367365483489095558425025837273172867271925566237908708821306507274583887921406463173595782768160025372051037663646819992718022222066836532253357760794378642497776081596267845921201286514435279547731510112718228176876498551375975567947912095183475072304388688404629807943315704904776981210256796444184930487052395970542385448125037793232411562819972136043458945524644341043937974639284155522065392534807032111590180852291230118730150554133182511031635015131096984195892815873682776822122961230992122388541886823536511209994715630392098270807694770287864879170424530720950436703911315089925608335529129539573944378550816119362492859690273314347253455854108647498576118113104945303168102291459055052579348501983671603914730883305389451581802534806212140750614116377749303462069911196509801245750354743602648792053137567676636242643922266036311346305643010944542690556170287746509159862943771475917089680456060716696450556058959066897458081341001237311799204933684260597557901812623573115113976071777207536120220769056513339856371886927468744557682495315601939361263395976819868413893192825739816192858548630785444362383583086406284169145134041176260389086157232438172211870983152134700428594513058901758396634638249637851307603240986893815551409034258786678233672615809346211324193024720779407713889722216470411227443249110312127240695566684101773748307459455190960879981577772628152911829163818499109747018564737937958455621217542561644713173248035772651836482232007982079918924125291271670291395029202114624072227002098811679035349690683030543552174271991601853840570163298732564242876829810402769259526081390204131499534524535352040230897855308698041196049259520946894034148984452790695172696867591494258305199999730706896627525506237611331359216923475716050296966929283569382582548426768785565785001113207727482480484276966060348810207263346809320215831610144822396508580305022793916017039274240718858329122256112658502698240451678449978987766121501023981237550256334298785885362592244359921999410975709754840180911155801917995181208442341533806530896436133308554106073524319684206703190322248807543994441696851647547009128536714036283911168913785710673760717231303673093111617157626039824131359765361997225473034416197114846503724697622843829633702041654816532825754178327120379882987249723858566388310415332895616312906760388280244799909318939816950140220520146478247936417049474545582428902627328721880771394915376621403964330671450827781593362904931169156513536960844271090470824169448150460879707259560447036896202179438800787190583982988003283779970463414245118427661679656693164149815883412873210162940143183564432600699296973479586769538955769664383357037018053287316465622373362568650609778225808660782005225037021838418032083048335495763168259713493813298842022858450728145534606115836154888996071133597810860021071750886014630960259839883741072602244050810651754135272445137194727457470351995306189154988238354613356237445323328287002554878114545151339841740129628786591060219535641092299220384275979704531335786844112698400281337713436264832387880707085487457232136700577666385666093131761481905265399523154782584595743478737264626810231193597666668333523473967692640215157026093499112212562746989029466723689178458023218582985865853309432814676763092617837342830686576311181803212888650963268049680097256426974223178137511593090897539314155389823721401866542969357789921087822453519633080208916419816156523781725091371132823056812679430468316610768822775056615284286469003657709307538708993704139495007453293482284268084400808939295423128839569821569198146867716800280574571071713213165132365350446720484605512117931349708472845359212673671517926027112137671990072902682050547203090483689781955093399207424074949543040577270410451990011227332887716068736208443557225166545136599590249107268015635663388563112407376940320920450232163729054701532106814170371366816024856813543784578230510903518734669081381364984100041269553467100969815231445490144769679758937131657375251765213347893960830647475809466401867254317094910199902924805613121075604760429994960310298770279672120712473252452917051525782657034447145640077732962896643701028489401549620832486182649636428403521454877560151711578843592329363799755921076094277814734075613134722564938848305857228690560795783712314933997332344010077015866580952554494811789182021014329944384631077654805266937369041715543666178691882410026749945292744898832299819440258006299222785713643032943488294682535552610001971412675385369914671240716403033427149459330369343462325384577707991964345564289693167901579538007729318081882410568566780204721618119285211288424550505572219695489100993560837716746437764135893070180082301385203137583811135592363674901352464436703950875361416451814004954807422973365795117122134490808901143468247076602775429303587927888900761160553574488332255010197687317407289737098824507084372251888803945663285905843161075431147261029958946122248509261400318739911796771549532660486803223112464274602583780036162993294714355163151364910526247369631362974654753847922752766515767554212798151798822704333441930177172725691108324873439762448291412696948252298878259248492136884344814344782639272174739092390096476226847182848030851953298842870490211923328500496440077239165874765103640575917629800321615563409075053966008638383432554516445910978395509221220563972930510528430974923377551473417712743418554669391837625515447318889740545491010438817682913759170149863246899412880120488346529727508330805177439783204837820133133285945600103028166017711857883001750329810788961625569434989028502949348536746082611202692466479910605650818374500134605352304988184157534871663434752691580262349212916768202604850151027527853268783911411799753276366803769688572657472824908554911963173785720686466258097475350457004749429907672351963246180567635183596808273391457458295099750742639139288797667186047012769678245195323405263448360372774933905903719091152937421585800022317129852809680354682023729392078463526735885227852503053377645297090578302514528364889433686111396258198863538842840883756778482635994967573320021377221901288337497597364961214644633845541265510440217140667651145889320846388208550654182048327623112017172401218447472233879365120943625513650016982853762983088949433541314950032724533541155132311186699230051174949828984628151772277306762610232317925935711183966366476360331106461411391344729885622672694629889781807966366621468804874487760495524101804599362885230995774353573125330279759076572135231434318989726588521402012077371524945474081122361716575428629186080192551324591117785116726282203813502040982212761521144927805449261168211873555397318251266510036984689361553332303680822624345690733715202537741418424973748541819288041152305577159184877455048670872024873590899094377824199357308811083628035654752215292278270205516712155509321913880135664348152400191776436839269037533055381052103657726195429944846689337674536749546095097152724464622069927937133080872843286700516431137703905918766694106872489772488316656732576356676834513711010718682808784960456863198443658838491060550442357335195390460108296502005450396724186697452755638309520789372753025477453006454838263262761006159517979469330748077254291828187973278058874598282158091734239029486261411958766158198209963349153750564737960031436931663638844808665363072190212354330069699941338402697213363512968184280370794211158116927668974587027630184902998436151808330109691361478221020671838925341856189161202808495796617624052665245012441768012335063242989042528922922774427720148913336449234410877898836646893131700776186240614687883159295108620251764257618278020381195224846352201496986770312620877971812468432373382093384573473474648022454024225239209105439997233035055611868885461446887872783238288595465085145031225104139618076666525614962263773798080540302216370959833120562916612397352834173930829423713790791314731302960840392789031053360211814052524447487565278507946002201670975316904520524123748315693395757807581432232729848201424118099131503755182528204140567878237121863379690730913092283020569625451823563730455857512442456619965883700301357947417402229597766174130401859154288309698763185064391688616345120751619691888308619864095431361058149193259200388435945463882118897630147108510079691782849048616073934707143736127700911317105891889220523600529995302440900499054181429098553558792211000696596279373115573123468136954082196347403903781966495087039570996680075515037434083487855795115772891182490370973456541021480465229515445774262906925450680154779273338185700140608134398273652490264936926109521275645552453268552052418641951794864294296098642441199118457151504688320075556914908420021097805444877636892861448463506561278750407295502857483775131762324931173702305713801013681582513520810527907462704748335054653888070974618087164500054785045004828736912866489924278108593686692266023238796352017529418328214153089828566963703134898371662875614245723475872297597906847146859628920154561858851026806904720725637933147596164159786080511885880646174222058361239897383315089139222055148318700346785855002437547307307814263129453656752726711802040219183954516117154612426284953779029252530347507263518541322785579336740111296572378211054183355804740845181033429658118972786009970791954811474094733739121774536532191726681754986302429327034303508178742643685462362842074174576725143730330408053720119507754225949811619274170455698342603658960172039823606601986771372754756343450373320488089783668642757665843222529941504818848648833087723111448040223427907279905556885379709092580787887443278486764848500561677372958560451493086136352129778332598163465100970862999688476125236643051729318140005275686633677058720422114581173809759517436573501036914277814740804734493006469065558750778300536544001720686794367037112522565977723365844614471940849084641323214004088400352284976301217268537651766086537167335834292618379847246498401398134648560214382028680582524978552233262329455225236163980647957745304485788516263629986552401174986791865638214208988345764553799064209569159342521507333376612248818640901502694969901374196756223447234417189121316937553325744202129928630207794057881685435772462892321864057468311521406804733353437301047347128482330905258298588146034603059809234719487910698329156693002578552467962636891924054876971363972767431381009120256518264279083277427988413108245295176192969611623120121178237001142570383752287995953038221858245657472004477489532399573335814170654677052456040974496836688301293090058386012185698228602786262566571079559544900458593144662618173155742712843467744933020812091921069074331458565397116560169311899581135800613837472138179289344495325699091287813121304138900638250229187226537610336968995698118565466899017186884996620529700807423803186116844825290560253859798991407393434524846027048789754006047658505325461434354382331217389360673734682247295757093059745842572135483732420031281876252058110514905474298174588449425666894515770283920209744421970699759520994813189739405277265756561940557427543221315605914841224760851167652184361902302870267667218376146624270443469017422679682849999251482969640504492548071108786838391308428674175785883127993501832587548048418355659685327166817727043521601875391990567597914796988925103611055738719532733848665316551934900669399889729267028452138679506764210188787451392409322274413721066721952440574738999669777112194421763055433126421136536268068649827606842470773995346429652035006398364953282510654158044423720723736924227357391516514165582674430801297790368156213289974551110805749093831406918510837693100473385611084079010900316425642834189867970065013053153990251841045542357419438024820992218168579178606234042811090501757225761382404014236210080334028216308771479974209091865129961638717447144670224294395264566300361345455279871039731194946296380442665840219941730020658258577215809861292825512055274724307222533695696962915411244720145957020063802469796796983814256600371832817944033983978187660348110040654429287735122788339141952696743575718730851284098219800514950410861747145206501158713850998834216331414555883058085305039606964088189231070953389153874701483924417187255528988924963578528507864747957692592436810208833297318592386235022330865580315477375005881737785983118178216433795714375624942145628026329973854973257794581610239133385554427716863330954743862376620244877228987214748215825859788634756054868299417870680366872069799945985326270683431450394235717011602966228928602562265864445657335365939448672420140249865748926798537224203925476441912411579236628715752804320512166454714104772771955796863192426791614583737729125910569292065891041272040793367275075571751276662201776340914580605247636585741212524850593642322868955813429945772561998755444818019889912899376182323557670387507549887778097615505116426963464697747475132871837009001229640883855220815576261684688967519126809737749891915559085328465200399363256567860726507022368553638917905958763477847227029874793275213745855118757462100083638968091697062060943696723246675320505532862227281312695152597301071161795532113617706485228166130157739644565411048099140730077319762679575119514915783023552872778959844064418950652713901029843730240571523796361409787517493619184290959083250662467800363379792158661010548219745719182494884654425890453188342165095303394316985809704630197544624370754331061539143307684508090872228874541726501236543912827049984298519063133713905467025385974148594484490308579334494301837041348436209345218434300412644407202169167297581622153145049267562876691851355251236843846680234739042854376335707125155686816658381772326315206764844384512914726735627412397086647395957177691134542740993539896676056065535393725810810488521652648209918192251517858483380215848515385164958084922129569509935783360212193312941852082297071837724212615187529848727031490783629154764386214568056843034849290943505201815841436361927105050552633577249105470856197318502208282572691661275602041756086662128923924082998208934594310743728095052193693150754395373557615857141759792589803082160353178173942237345327747261527466587819795710004439293384331867801479001500785777648163779272005520278499038245749367424294710823615046718770312691924175148285661623323252641082992467755128307559196147218723970911843783751190937293868585048127917695141842057600200778804183595580016177651235093720495963937081362683945929789950272772161977160599632730342212674550413960030303119058881718226776378874375225529232566937702149318834756189014688899436898307340392501301096686026665469980906640516669470949856109274638266012983740654481178369382873688977646789345453523335483131218954335832454351695573240603807632628997704642214386924200032041566914851063171714850667300026682557793552770791401685928924038725365373247205655141159972932518178737614268953171766613734719304561492629725637128850181920060936271805216143272214280667483551526286503780021253570874199179682240548255427404954718733324234051672510841849730087959187174096068402911923115223217910299563117329570270840672351921345539144370174136442734497937027816706772134276729112222987861995367717232566952467694231591624619708707353933941978335806895339561765867955986516653708831063977101783764952385709507629102215130069828330179182478950228624051518784533556491725973845019065422939926809139451387130597978595651302745941120929683629384969347581469557813971424262229678315897058106549669707821875527998366898044474173617886245001366287070115182426247968465098801178538159203455712381515717507309253343370445966629924104762006960543380495194324232961291671814151054141119181003206640485429724471867606094857567838237951972489649201507457102770048990729134219086001112091852807331291013355232022936924278844632677611883710555688795279756511218580406782861590429266415371547007863726970387079952109615988953344277668113740507904369190503357682467616956821547168529837672240031999296171872670210258994136230577141086165353049747793506782202585596138023487236303677312018742222904331198180655854785171525338114939118989143313207930350739686938730479530243784276722806461565800419116362635496393467000015114791018003029545978135232053422094280290437775305839296114503215616746271521663584862099228369228816709023073407960844228008359907642074989425440754036199132004519551716126008923626333248931285134628434978262199156340277491049790788519320213082061040796419647078093957090028781485470129653471368441646883427490789562458268154910600969503391907918677362868222308211871071016099276101634247992649777983832369926380923901704677058768310106023714292558400055975370119365005987859090345318945780273236587756162060194983013951213511137943079252336140931918030710764493954216295632497740521743013772192329463640448213908810097853761864562293075807143342407008361670900345620054138414692664852527208845389692867764619852938583157449230961999109357532991756424727401525841512941502227917588354057191193483412867664039732541626077783440341612991624342872679080036435181672085663043253105480360090493671785106786229763018346598946028602299803623570627416834387905970568885151598998342269797153752658276317550965066066133876309972080610747444774544957307062280744798974494168188002016212050286841829662847421598559142039665747584285841528320887850424230093993688772244655171618387530647627616923875950666654309885071274233042005570352151138237594887594425398240823348275748329565795473149865782292109338612417277425180804776645068026136996630453830247443896440415151147608094777879121222303178339369614482776523914679184726087111960175055193457228963023420048594497279235488228929920169617509477056382630815653694476212506354146476288478577270888236834648471362686538638743044473955968412246491044287589827079943025828981011942985552388952458356601721933193475262511995872109635422847093930128915657379859760273664101914911694108943948881523254965321997172157488393762231004756619168618778440893228987502820361858840408948855771210389815791536351042521342170971468375746160468447094895776351283234100052296244288883384532707243510925013252481944093674921177157832940696946598989397847928426889761319525926272675132971939792399776868591279995395162341703933049808590840943640209428441766496367224657253334859833034036533551593011028318021090158844211775050102898911348721874884916829108454913601046015311210528305058224848458941790636295561202120979823807298179138809058173712311851626070185649031103179292145427276364448685433443339590257870282358909175973701410081993752675484530164187131172691865234910676486026736816912282155215374689746588577455675375751771677220379689103937564809483475745282646697839082015472312720658817133670513709008447563795347124562850426321625947538118922444832242180338523451882443947366231431713471363176171550347954503890546319747827829333254098128621756929409718201005068898098275926208107415697797975286778057709921742454385088231268183222095902307994660376889210754454120957891412751485624018882895977647173300673078818360721272124369702840420125563640061248812713531266050069583450422267048579329039545095273217378656483848337461881741884600158530012469207096946298552453316038110567319957329237445557997233594316605422181525004306326634906838679228774921985726246163289327558741796662943832824931111999782120251335032736205794750313099847100721079408845911659520407348377011907519237617260541438598404638053409101583025213127951339462167183025008765032699142285328636840912346066250208868965554068280313888078669422002232153217813975468316113854782116734253993659109465800793036824005956228365511739902857984528292501717145978631873490690933107240965881812549121808572128521353314692223441680092832279395861886733906622409315028441751321180100885958365466887232499603063308264214298479723231231613780501384460326846081851129963301880865187602248923168003695193011995474530885037927156008399869800472717852640085159713243925910253292115760070921158086591182693855258549645450472265720207276584278703327001620127682764163981936867838975226158349041615160487498531319272409890412913782838419533753036169421960658895188471052842581943552010269532871555344471787561843533027593911589163226025811729987757329180002158080102170008939197559606873911058885384130105569476752767874315511245969116454926217359947584293488297286171770925605941185154210180444778339021207881657857859183884011500841970479003419572888302213929243782204879900916931076310462761007000229907864686453848850290007949665040501671049820861435918830964241755384561046363924850407332613124251784363068384756920130522939704013772226629517962686770541507774290140404158291595000718466713467335573558559134482357278800044643416418312337834919993405969207794780739801484911854133212986071702719464330685826987505793153406377763895144096181218688539673965570291982562022391224588078449668593594716705418665792031284916034160092488531595967385147922306551318897633950755586943663243703101835174715612806591055848069788680335952476725293524673602207587214449848482060633417707008747648165753201694032371933199021789439046414850617615802533792124233959298139671068293242256915768987548141507781954486803118897340720426626745918970773228499166802226928501051455699559976780513650721104697902523489021655976895515125377785374680438807903995087891922415677279945809629411846141237507023764031039178240303794855850297731766649744303540030100315137429680257584414085043241862369210295639095688449749389151180389899080138486118799686028562780953347145722494883704352581031301935743312385170940801159987255692181533726492437175092997371397866742646769064520311189087651459586107628964688438076756831871380998862565414538080790392193138625421144826896335628076735479987606693828522709948002221974666805485270546115005465549377894709753370030020236584062096779568206132021534134651172549746790090452871911240746586086866545443867663301552197109466707891411305893930230280501374774894212590181443441412109388951709021253444238873460158001914324953075376243236418100877321843042496553439046870963984007371567856803394923349306810058583213857603990948727254130236970474314391978964232689966991392732272657407481636406904734582297589468323592493103154047569062352740420256422766612418171986934895603097808259324776176307757262575251589002493928634701299296549193444834082973962354756193672625861009186043194363132515671888054237038916729162396436751626761386764363741339248988731505842167391707651788288183033646832026540472585427512595883476819822033366948599141358379786699338440738034195498494432505523655236776416485992582325340066303896108054162635331549675210145481638096110152742471308281531244210694745408163700650882330405065929718537561657364838666053610916203869304178066369192606154434474904656925417410869169069829369404280481767863667456536244128600002053999528864101487216836105650295313252353325542350338784564605814641567877169906827467007827758015350231192740001277446611270700411573986971905808199741515336844503196806229468640936825483928530417751588657014079587775458858616800334349288945189035440572828225360188365311861278870858636908809909243133850149968664074375598903201110320955713310112982878775381624698856769126212794215105468449279498806311548788313821911760068855214992713132293914092806823124547072390187945434528707452146618098155457885952142687186382486749313772865413582314386554069935374752318440098448964276462231231781257576197486699416101479368848694906705232121551614032522754229817567348705092173420470081730941826329881527424934395639739614166433514264359834834111278126323709021825094596888350972486035682729985614770753243437855606128289073768737365929137909098043068509122264853557401890764442114298186778453346416966517492562796863898102630171875116054785649841901512388737525759022184859696540357663926724501260710470447153997359287073382882887703386140002371413959803089066578822675042393191812612212293176073512161164808267289335044327643655742603911734736939847127840321602775624315803243939532509976669973570009467670852728221530921690793461139132386315487799887380993446428374569961556747504335068306570308294352519492560504105383638587652419941210665879895808313464872739584490887754597117384084397423858022402447359218737737084612940086244258310542027201327991063888238860170640153027515785361063350362922608565492785648394479339480131763717886815367831727110277350189101453739178772196375613489210564974607588824235147766683895804397645882971514594617221866793667356368895978799299906484596548569983092688447341193278791106907160448909698162820118841251440041638928621745433636889225887860634570197194330708715577985962374208064428167386117231796638154729147736904272645336372284921668218640368195554464332880412960595673337863677932414041023469520664457641004214930459276106746414117764172439508435124565896039619428899956635404823487182894606352479972512664211002995395952418002226076312830379352695809156182881876055369961354686023053065163502870247215699482517888702652534387536863134516985554534696286154137079242312236356295829049901842686131433680954125211541152346995195862929973631607923086890347039060888143028010685023772469069438876733608665954753010822890865060983303152684813332682173351158574310140449717526622618224535759489641252611693354504711543169974037078318672534389833371514792268661361205165957430434834877645035512547333227956158755838300484760497987046570393239097318128421096015014324517485637116617854535378451997383301894189113785110354237630234494646391231869612266130290397669676806760135636004754524342599715391202270867836137410460489068325233703652446267493490371222274705983477717670565957775517682186447743637509953956049988076397248718852593833624249958210170482163074994705560745070982300015405325352366313225674659919421361391451989246086983648203500615722890898054846155482054465893768407230287363716714529410492303687238375497368227002976899840622026225914214939323827233591463299703856082268199183976953578998914730590650949628821162113678554020927080679984068559765151043595415641832369961259865388853319303140334954799934003890969517697211190326603105406424087942305343926137834025748230753893294608880427643706866019350787336073813053816606836202218629714619315951641866674722837373275050825253568626538425886058037578304077572472590629949248461251248441870074685167701968887452615540478074933162257793770057864673958593062112266910977059342931358126923654692223076823736558776746831164671566135014889599421193318082330703007943931038924676358268144666448778867148838976983929585248152147060513228348588304644118134876506110604128840341859468985324592441114234513658882637654947815168960922660264090964168981316582544582004461183860500968381041541376749300670627255077419768562788783055152278762427669242242796469941746185062660894803310394388121816658406937859490472467783369863229648306757387924187608648928300685379382078288931937012676301907513683668922839415772209094568847943431944315117750960876880832708106284027067163126959281909743249720440785257678161081393725726095340376568040340214667067408039735726430934073523473234375024408063589434463686589771330263142902054355679829519076657166274000021257128905193736975598113642427349013412865115345493641285413858380365667633031305990741572847036034307022250813406177405778240778894129261951689440108261751454656293595054861622593518927030758470932479908811073376748226691142000855919132814195940987367933170953512940310651183400633082318219131950994402930847928826905931398847807632984297603899620651124352008260353097223766308979259609334454726187590479220641989985858471278614964249344635017119104328746519004415087761113127651523205330756912967077813293409677927309242599503527700143463478473443989054441953557550681514369022293183271272291598246285608997345503468338498854487554728509000416060769768862729173859089807432895148206882575586636131113881274822561538182322629021262519148656124700656053747099410341188291848075253912714155651756423929495776096328169070596395361678892666720889252671588474898641341407461711767018704187946617155808255704681289980161768244608671421706101320889370370009362465222584046078228433804956010291391192431505501728361830368780113661970183059599912296510617283101978207715583792356554811889241514716889353295835107874980284392697194069578458719055679283737771739157323796621611914779495322500392735911830797214767560757749018986420613721286740737750463497548799876050360978785876315979534578954842681238132089993498675819756491342160801164336907370214293863258585564681261116724730628451295848420369175396248620403558073429053635115554057787694878759149139525023316198950178296759144668950926331323972113821930004113718538914979895917735985268115998906635168117645615012339075729779636956133305270334591751987449346237438890458293163371987202955838887503829384622624378960437532090704448286120563703117160766179710380492239910869836634105718329903260733353321383886669457176448811366181420372529590661749723406937960319094442876303275525783840692623289379788539597723059932702383499107399451702756252317430831400846705697942141462246072382753320053774673755824340274420503365109806948204917344044003426769395272914893850328964413320254399949635584831023352239356042329132352309814523112647161546225677303253447954880149779826285450600282407528876310670025961308103062259871166944676511837899806327583706627148158012747230257642223019180527739604704708270395634442821058622198795738923719956707846313091926863561434673603656887175642776275299764751693688244114886179621085019143191352297162067033583631690821352845940140183482098126967310691232606273828889201506614159040815996333915440280531127460482554059256847644799110569212144930853855555156939431982111863992970224988040021039612808136973992804227979657459988652774157333444537794917261386681456375407978806464207522983785840878761054969683363371318279786004066810988965676002186445021562333398755151362394278375466901468429351924135761468267260360804228420202209623408692556678151898528754195249881800532721125055521921563242634212729035587620458137516328521065021834619465175155133401241240634889662359291103200038277837271174326833167066436877220761042077570230327568953047311721070318495496841001189819995342844797909805115679224450321317782392430807352248752840164290836289561325759933785879463214503152622837099928271758586320617636768051915630793582608013713762754974613851696655933604662594365003577835766057698711386584189008142187470255217429569979082425380292175801198855118692357641519798481074414183515232473065384584818141792939424046300495324909692759606379071870930602970449502689856009329941968367845598365733363624752571409814497016755011107232629470878663023018171931347217235041850808189163966708649986470835361058695373777501242560434829729795535492813486739152283713226036936991123761067557380686869400810139995261647335950974094612281211447706327906069643850308584492371746839857202110246320819914814834535870363903389942755129969360803542975729163504004946299874084017627397487981927969936710351169904692435075117149384103923309249401215595539769616466766228233571857157244312700944118297340444685129123170104875916239629953820379114494287196388708318162943748856045862818027478963825376298341763568313286083636537663942345585870613945807111733004356850158562193146189870211047143999010693258305368533670121669204485057456629783902885233399352462516924906633654204843973079032061688003970770632997625910904916649685865326412912292559496821446575056128011120617939590857940993288460752856599681695488556401443562642536210753530032572146849496286058460262804819482486989216351367964529001404786452327967549502958911062718049157027510129095018614091927045511337863930499925586285663745125400907635501440456035745380330348220962388765857201870334253978808079194030576723006577805716084465859583083222084119450490641360561930959384997091796422796825907753385270890183452163834569011923343085519992539079817917654495687902101915446472131953136251399901990396748003415338425874203440707074307053277724987480053719967457458666295203352251603000074370133437632326872589331890355160663238509497851608371562398825898440197161352413257872930465307499640487884921665592644905989951651110090687680754566015249549918300660253175786335479499383749371769978363763997473421685223437922649900844913967236803694698626028021758938683605191683588952662561677070224866298551403683051028391833275727297847512722686176239311456764738689374331073021020579686369740191058007924008012981124854346466734864037004069917891819810910428758042574672919788043173320549597761061722010158103939174952250489025432921300850837184702629172426413410352599766005351868993255326141966582035364955435614393423130146941326220087720463995769990903661142682047410013880822094401762264533751872919211798975427436576266114629406326847343297245105600007774001624244413241613729661122666011240880679764714728370851912014982159080543985575682890890288782798850069519128333740668519141368710118878544327488468258765947987611505362916176750678548385080380553039233992334749976943200874807343147264021949827805659460575329368193460694426179995069046897076686236248138702000301607790706293131566202753160139408514979080995358803433405208119052161261452883581636048885497297521196804757710481413289213416146998937026618034972082410319454747984342787479808026164496386606533860864250882977810123149454641225993299297023984139918762017721952508197367590513482168551776413136206783015111133144906149268710821368394411739248449642007147303956171904914188053030188406855729466812825423664291422291403427914198554319059325761515974944267961882013353011672641178313983204123682039715652488012479682454443597281637606992432899699307065160274990709169495200963840019198402400766070482495410504930032170856715510977431515767301103356658297292184278526374957695912881268792167775987114132198487027870855065425348666088618026378864691625356100799789151977275055874660332986353660205186239548241037397554467854136094005275190537206221558585432456410179392131399832584256624578080104857608693809634480857506771544733033671265341097243293653996835690055188561137375183100031214422877723072770665991529670715487211372891743628345038589677875941312330980367786481991262820092095271559453193125921469794755236813224412690930904536473301281851124503954966171163980535406304261965297008752509704449722609809782434298013147949330386475510943177234146072825890372890815036082383435863895922538500396670701516636535111000226113963086427094665096166942752977203499003913494062006107026170950674462365334255710339484883478034126190528723167260980563748179250795636201395177696773762481290283034112362341872403847572435864587713204229885682143001566986793776544792555165473446556009474514350573191793312359294677514706132721189621076738112678152547277934658918338738149665420728018244901862916537851697267637348181383770065503835690323216617487368814794820507275135475421724899088887327689914362657713822241402166117184691681928679872445856720666531620072781136329529772604181454415390498733324400105972174023290168037166566710377486064636876817686976034865702938984254840282100994053885239330615393499368871699446541047328666492654687979836787063851445137655441772463130332913001752659088776989318741578252468334121238627616896336682084320245701861482632465116556788977201930207529756714524655000110250574636362827946747067616176105024159056739105048972299829353750167178601021565705856926555516969550587809228031464439143163438546928231440653842043018803268294937008222592759314758155036495418084439659662188212137601028276873244843941768471306912814460000623058972028571684502244950964533036174728533302397056364080065014250721038806751622364034504181976248675804509033315449385927578188474710147059611451627329478683150648090692449968393933459831379389789423158996756990260739188429320394693322153573389496786951522398445198646166302696631729206879653158605331195937348873269732568204924966518507188854939568275716441833340041985494461706754820711239232725476677104940550375390454376001289210514182576354555064087877712980507058442234120669960162951471081922575887695300001502048139616324575023304042126984737110065745281852221361415549721015402489606666401493312058569539476347922449735090232745362320522615742233914389776687556856905332831673976931401415646276889297297770480901703104463226000459186396424979379508619514961467677125545797132198674229683523292839639709764952872800151298714939146912253665119882208943931095245583651812899806357689788312801215501790480322476772612520959386415021426169780466964523660000426135579557506748297691106944573816997643779920298300560843289715754087928972379640942036615196578585469774943229576149531827082968030704639572450727123933886319006330463871536367732276189695200650548532100291782828852923534199315339959887348033286471842533970620038006484298546219820854701882648079351297193925313722618515979364364263492376492169804620696623730315149110825108148690098792231376264819489235009329077409296018362138509797994818312225649194413748857119914257519797390089473650196751258116780871614790516222683615061175755352732162279660368494038637949216943130081088034988286198832427655153553544004133932155588100384245837121960236865742355476266852006251263297087934996534353909807213118577421424040048615536330913333249484201772833969153885118278233479669620104714801852552072913991457810227150645996073292055853671735783472569727116160300627684234174770096934313859898589697919897840566239318032733425973187327375949298588221501015290819505379478304513566515069609634567409368353262485777526198945021469315359858676107490204614917670062123062841856168608106279400940201287659466512821500675748197860582522044458582146371298315983182017468767209081092467819680081392234459963984259638949963217326178019679774125208586729160748621018716132460240640356623634999576061298414543527847605561428298846190755516862606731462872142449569695578775792642045389959686851634337736553341482431194819562169523036823196216871482640884698384394180296667414003669037607860803186920480001637206096158155952477771469090041508135419174878538694992285637305172221234758067525202031756247178716336625906317741856094637160544094425922735081772471497410584625176207451600912436587753816073337796547511970728880262451755760209737719118517105448149744751020089977653556663366924220365796768270475608711278551742823830699583217706650130292725691145383535287731295558648653369722906160948919649634456461715510167991508014910547729575297411532771915857733167108705425764249684123762002750513866462168322822144835560631492839165271810251164682289878969774667183602293168649106602246122308004774243389757927788831015548075378541237853051809060039308886205939162348732719992182755564961585062926862028226261269314566291731987725396190155774993913562018085152874942014469148296204077574082659382650334717477195973269444548749416211440241709103733942539087481901138040684156449995838506015620439523623820851473977188528978077296418992503995548426409198028367549247935780815907572693004854655698411470181766075676183989769949241331315763076035065388414282207952844208336343840207541896634079909549679309172660969610318238670405736386810875266554537591005503004027161686249988766044857694960063606750216254115003109036309087574381387994969377365005400361559151698970105331661912232878903874106539494670169553780354394484337632087063714190382375535637030621429955469669717243360988671965792410730449691242561221577897917960201612228589505948755993779130341089506454517723851413998420201855700556040663480067688721149714609325804234964455629851033732079329934553229809937742851559676268125832441803056370233278198719102094767427355047128149986061909426747811960867167571592632322508979942769937548250218144025643671780412441431133138207227562043449048047025902374843768574591061584381894468413582299910429485586535276563362298234860153611702367634082803576322221655918682688916248371984280805530413958747892606938958526085100305821538863722444756942880019737280491764552670695518760129839421909906762147313767663910271781484611719830786601539360134257223492917678010282663717801849281035611235512221672417159507461338287949370847571021801083654752429607420540259564475060190885314217642444561491579043711586755571604553997811600351045477377813873877226974967168021094317970301533327754534068819133452320455641389256666424322283851702146979153068385868623249173558651297921253377168483760800416242867821360626781072102048854212162909480542843196395710368174610236034651724700099423997563526749780007693917196214586404035175655806596365910605686465214049023036574409691576221793393801223085467389944075083927776489565603004355268962323997039661492842862250109290060057973403799585539456773448063451956292777709025700987119216014541203579847495254895889907337742651999780618499424051541464828447689902155853661768797626131652809083334190711943910515576156749269636833104693725749673134480361330345466648392790275600199093276302822254050056131821406262215815680814866157372948357822300116106910993339261322344703291299686479272236533191973342121912370161193515724090036799446337465307262804659506275129867267134042499900531889020507759643221427286155143634314770909122656852754965240372698924606307745715904945545683730168881541732904382545885593839081822497472360316243468964289608472687811670678469322059994882837944968273588046369441344969674366406333645445488863606078987893750283726029530479900672361822645367481976792116181097788265537047278842753455270154636091469788158724868517201220830918720299110443228266502176690437319233806648147723274208455764433900246917296902740051009122721176813744919548839077378325252446206244194709734578663726064298794073531130150741360369746241775511495107333947980817151204399733520488660285147835632242129454736264688532043389998090525421476231718665510614487440237387450782925882817020166732467796776676788097586770205192771965896170382203806626371584682408608818645209489517374231417316102596228538489861718201712342611318356718655564802527515790834088648940806719292864537308730172874125493462623863823289304318037315343176782245531172285433673378244739425729680710853029482673341959237382054989193346365433898421917428286861303159690276065873592998242568418954673808385479834579008920264261399939462411986450745031140671544458414731848440850236161714805380712385660394549199675217436232451533306953616514141309400942889983023053742529347207949641053391305411660754740774622529952059048495444034110956681681458264696416805686405570889698013649051330302115586771487151627531048188647132825060389543146309054838909130381733646793900799229186079521459155968289512088086478323010572994380679269621908884062950048063590456259671773355318818605372926454519200379278482537981294658660612424135303133270575728819768344314223421609386632393882428157004791001544416457915562526034364153548868353794453857074840018552608000201537803393738042687453639482738886083011221521932292085010187690223088847359047351104911958132860120794380946086009224529998927060163921543532519518405366548230524310812978307110330435999410452071177645692287164539000429687526640890612340889331378040483682542166846848869227859229632130887834737324845293267361646303975597223871332224408744875815097556510778573249836405853908686284196819779547392173857248417541840712608551545603397277405805514377327088848450821204631303554680744972274281679706423027296878064892297302754878389843560567786407837950945057178756243073771005556432707423225062199524287037063813571722096374744084434754154927600538490598962085917040957369945704240806358168126770219489827077557963760285534734078907255289373147609368635051489217412631983885854417120805619445839285739252308718645900921980725552062148230788311239426410228725341459247737248233895924748174169710141912334301441542163036293734672861525804982674086062531756864214005790263010602927215559654462298986533764525126694189394020489874944549935053710818836303640498134062188551030954381223938333510939437672778902667772993172266081355855870560777318558372064928125153177157310654088402695886266511066553574151939662675583968586625352886962786893352294751808010060592981622867203027091224258136370942342130610238560915988077688122015093706340653626131252149400299183568920086891336231019795363863587506528123554182301247355266692015204221751994577860155303217135176769536719766089017853379116225341256366050935767368912506249520516376200507304545526682882213548101030898079376766944041323951363828888040668541890598024927355121528897544243415673207242375069993928239338258406754295508948403988699277035059351047212300348895355719700871780034186379265730983282799461613250726474678199849003310650181907210213864234486318611741983355675064694481632017413536804429652363569691473809221926383629623431247593307062670954339218439805565210985553927782105387118192165538875688404638213285144207340490816074893920603668191639586319330131051821380229790120813376834767032698430981135887318381313287735544496525478680780341698622324173689162733103869057465259236602362443861416207234029327039364650526698675101719929934553413196217347032092336629494463665477939855150841700583418238448023361004237016110388219986365267657782268784990212417433242286805782712960712872063047388804197119190162200163590534835536161070842403081686263062731515055704771047014187593764214700262277858498160292606889682034625818453471643809369347920021831525259915097575306856065082310204462854576440533104591302514225168228038496513755940308262992817460450783761305491496650893310372621981928602374470923321475602809922867388748101440794447626472600931013984677841011003354158807373033958560280612916646365450017551219033550053059750548917280097204118905469470793696142348402939299490868767412651722788012747805354983286020293457381741557462307320680001291203860719699448784621917658951066100755460839831361033757201869284586874821504540289326171704542458113034907295474978431795574520517087835703045007495338026829206911162544939006521219297684773169523438087925743654953985687585004344316234594444465993718548937616899750106967558734095271201633248837427478884466359053147665161004529018366795298896107199377707958290305825960092081688431308461133729566789445955849278091155976097960769729792961835106416392347329193677161056589662377636645315043116616344374186971082491093385238184527690553672863458417295119498856722590582326612682323952603673669239266169579194289498205531300275098584148213820909354948968350875785559491984513805456662339553604842982695658064049588305225786242740106126736176550967185545054125621222982091075755726103339652238652345156056224738173262301865148573226680952951894684080093230399701698377980606235134935646095962674982966603073336394359066684086250436155145019638360226211825878032611132607001594885185173494855316915634293248364390097452878493453065245938656944920005335684525420782821891930815496114152806052710437841376940707225799584606320888266384536425334393347979740504296074416748724592950850510778270677447013455658969159722902275690898365822981940083753551679834415244084171318591933424378767472900485074789745280358332262737658599300979115723148881896734599163276087332286640031549838696648431419476394288059207527070403637335037293622303395119030264178531214078100204835043569057356700989232902978923408574815790727669545625885929519070586366054657376361779014793197265630961618504640025302536676575777302066963914181226218597134889122163177264218201620236226126297276292396117336601470790621039592089051913269663944700980531681041678763576058891319486168618561764609446906285186399139815458460783902665932837808464663624708719754539444571992069909325294753325729782866518955413229623211568449618439766764570022119699539099368684657604523361177086582388592137080637485595716229449678488197346620979358076153791633496496212483199360824442494473119335991426530720350784767383530527375827311715202794012821483444050661653512872260779515288995628597697649570645744712716094046960952515229734463867994759404342256901580627215217354901142776922074517522085936077364189311805334442490600486083092457430419798537463955660325573638239660820957515323583394492165011310738015915335119823051841458430264913595573973548932126532100066508787461458406803273884167738071371200098475478565274063579706176722908136354510707117463840946619170498198665172026319659602805953977466862569518208700196571527641940599127975328011334668289254259112797274876643543091907159106027704271234412283151770811745396714099288702618980943272668437367155031122516057497710108072243134644322489253912195093473213833492304182753035012587995591947454030529180707594096503005857156735067685396771101463397952335952707842114823811973521807000522633202597212821668963291585218108273350862766401837712305340928909606426861495984821454376696584392164842690055111469192242782401939543314811491871496499283731934231815041137002809302398411322947500970195979225758284903601714888648901419993235985871149870255736071673918456029954594958968453833392069352236800077576249178182314018993080926088014708374310926276222877780525377014896401970233987719249168709919963328729710095849695768847641597778102037322466493155421505285193232441733157728002818738851828822166413902727598781485676258661584721638697837609369709904508030726496499206023375488455337094884419257920038783380196593034667271574948507580158118848163033743624403443293751947229537807623685879274972512851942717070546494544820121676399265297655617023067289075416258410681887478949994344336199267360578770198956274706287712312142449199937809520771241126364659237701567200209154770727845807796332276419934412419023393950094747750796417881088927264550195793458312020160480601904941515649122642214918980377073648250780550312709136922075793275699531353369559120648047104427740668943854174075741672008358863728199480528217723925838695370154388851768927718005433918342454698388506443725179593895834919665825166062831646098111634171469392135935305477910743104790237877024275254983969660343432327909210558137692669927232023192781633942878757816856561664439497446307396349282717043662084588309160351502674044182842246576147459752759209267131662129872488559958553915695215518211209910864369462534958927193698477651269573358442653691346351879773370239374206181554923955957679754083966307193661789221505223201639456895869308432735496574569154397792811479268303325871242384523113641263104753338729911607912803060168162912123056282426241950577851613136067260606570222240668562420621954776734787180595567449937298522536696517222070891742725016442752223996739241384338978511318982345208137464642986684583147103538010064467537203993250669524101862050815598139936119745192909823495496939202654400278405958501385345869622305836476261857369971324007347716428411674737689207217912822580090292883590768526699286276632882708645376470405400172920285062915233895831089162533607407205231855494657424484927969001926824272986963273731227628934361671050423181702878899737676867105527391316975889373205001380040606581605537522669324786041295124000516931546597808439913863438120526278296802926738428886014051764029022783137941079833219746176975664105783456513902087100420220176320219512391075308065993860040664033058489837752338822711208156950739606943468384766921446508033985055401533908517807913159670675355317219462765807000070937572756154311079661011256430083279495634002920732611766960598411138965392594311957872738443808133956189445828641521449617190513814395367224837592315257704580920882789988460782312571368584421144201242157813083311044799592877679153393920528930388142580294968616190306230570840280111292402073265711014361877628363095556187992223607446166822524880847152213036195703143102511873499283385421961647229005713961583176459063455071485811322944297607248050788136610538120479290488781274998690632570447563024591848321194454526047119669243339025846376566929186533657232194314102231955162400925966157080262644703842811419500025099430141344885704925576517891614042594600952096848924251364933052230137818237687013672900301363544056524149718083953589626118942005952748143119247801379940475906795901603582387170403960104964130107139215579769219628859118419811222982276106915992803140196170833402103767549428856218390685185280682416184022670130704796180039913260085774118465655348147262616576462553736836411719635075039879733152278032872194088284468649673481684011535137520889939273841424528314753778226522885978399013220986486483141741381737451488636035894033802833057008222252371996655509680812554212697040375662142561228788309730668588751199582589931716010368306001911164176306080726354770356840690234623417656977517427668051215937781275473216502394969247483558972534545852703182197802213126168989142895731350281087828852452819446887259822137896727441076455946317104190062635126900711315979429817673878685887248343965583171138781630486771458742508817378434618086914889375282413394654911098185138184103734033870260823085943629322951837635951549049340633533831228262576284264739087538157207163292229143778122492705662872865794729228977047357648362408538422928803885529989470731385469278382434442300545305201169091712940389833666804597840488624371696517952196030891257076551107948267374190912169607647814351511976266865567123808799827975507177832313312468026314492219239181364232228325561616400467005906532694131129531193594704752433542470753811948624589597202291296358511688742276730529522973639688597260741021554941432330730704472309736712948267478531202060745094277841951238151284239012047978708582237819158639682942168810514987820454366862992386302970376242127395049588334691589968716589305013597490716050424522429808894733804946521802243411846692585710156386893954180402456346144157863941154431826609300754553382829295061240074450320906051897211155474524274136100119734689319765858267460280119994135690608429180403351545515881685044426478659108171869494646460700751173133758452823512306844543410101746986613739435306430820062524052000697177136700659853376243590911813521003686885513813343731866017466391183381792567692654383611483506118568404543398431002679774586741746415833529354928621292066355474826017179277166043873153866091036910529304282184547095918510714271050405338263862397374313250451811369378007171606655505230723816970028978820723931094245847775881723708568175836602336664992910701135788440066232825026687640837352496737898238732372544070133846561636823994237707838473849765708503520471321845389848832919164903328850153198557538485933138655502336440855432983403811164543097315125173981449203289638974386286035187852394542678705115555419497986396716653637053067491250315900156859552200447732952308242709607778905167924203123824966570701937133241511918313628773828666302019857743528708587774877200405925587278024095480664782769723995201458221305793433651895433612135494032410133958945070610874161565541399935425606567804160484846213833397232326650584695825957101516475076527902852851287121359783188682744364889950606517670415985038930262372990291805063024444352506866273384231805548852378552598563287344869076157199054997732040941693496816878925804917049094933231991748565023891013192457958741800820905413336243277547064963205823666073300801305624144663594872769588284270910813684927374094941724291171869232983734735671894741595928675192797732591368417746590539421963152544895991699010044639752602556402810676566405628118842835772674119909417129521031474776434669748245372684030383046869416876852924684389783518743094433896983898561996124186087911441992099085866065106099331989334561564832372050231249614304577369106985815696562687314992894419667649993249254578411447850289832127141693805767677469171689250241697594293805704750035579599231359381348710666812043017854856578225875982574762509840039797690842637556462053886850061321762877167755923170929170954414247717747246989290642447032199425407361450218006593052468482184818121702999881750194427397882714437834766256748266974988559488338839791541998771201217817646745976643966596683576783848340905770458348675405046289302385536067475416958125453159483074737464213945733583007153603894778258697568892272177389082452673809135423529659271192226685631503744449140359757963715033306173261977080245359402588349464380283855909189261532320529389668006290039499289402661823814802335059547717850847983017062929907377586433416224185197841931496791646233319238643228828327436239359607110306052941668636208929802548197312436225281153782449413374762790182250081555168964885903030816702509743013646108485463445762045528119797957510611907841774411354577373889541040314596277658528622760395860005185456725498906195343685321974290677756957096819730074522951241758098096735356664107820084896298010115492806781756599510760315956362694926227790432954645973586139936014942952964222531540843114779087425628489587685861445035426511988912333886267191536193952927089052455787494548946747844036882707281413803623428399759661563535146550793959524178502397585044734099771746997425100089423843129516991435850891429386941994782809638562982245043702427656240840055370606811132497376372819750690551130491524279780277245189119713046479612956304150630894517724842921166702005757617187683214331776355807233323401605368413266795788904295764299363580070905537005504459985248885112947265411341390430263753322546898392867056664874136349152482379908332748437397302387268349978340015671918670373372434542964446735163331957531133427666426657384228644448685512573607537737978238799815782485367223061900813025235483584321215034166037969364709031357742618230194619582653237633550228899832448296640594247524879749433358216674789898407175158286593355915475416584358382552354912545925726126451495777993677265918426288198618862161128783314965822469423201643084885315419346962821921689954705331120043454718138499166400254461016642441974514069969815514937919099252954074814545769473334174894733566636243849089972897692168465253562533787033724625170262886748897709760753435703913334960703752948491608618709340924624560103208512326636944313081632122018536953967198985594656156545360453924214462020838086172564382551075472933386723640353371002652800597477981146734350026513254231199103031032213208127108597267810948616341390804561554855781505642555936738388722320002413785868771298854527548535423759385328002402331418842651025148712628271624600436678673593867743977667017299203012821152387901554064707065329872248433457841408462595574219591265311847919092875311433466608883762306794214811173173490446555469108714177782796318366327772237713298698419093651631001384894439459036406563390709451106442371300239771378377725926200808673381751711868660506007007661872121566647639394377855850711955229862281905903821543262157489469566297849800249389823040251228557914106166915988313557202462915967730742254176581422947289275469833781417484226558434599238962276835230961128847067963082725733452224285172725206949603080394205581954101669303207287280299938024284239648849010726514557576130448659802186210003349952851144467703395104268668798626603510684815802824248130552381420225840072057491962021001374994017202324589946530815058283365271551849795430434648591327221344645261005722866731388857706358563398654888020960056440575239602951037064302845907376349143611576361985709396721603560389444183559940570637902727036388963482461832255365735974730526008137031235538880396446283497703997199508283589475287011198870354046041708601898010334613205502426684289346579044418589375966608607041264307941589651649199464313751597625488274913299672653924668990271086647278698591695980614779736555281677539826444929174416803684438153680792048293017623844111395608440793546825486918594593977167903432851902158855776128638941166264856351622970965576425041897289135608732606214902981369483975900357852821078863083658475823115954419270829257474328604875282507814260708381965368117973854550113321986596693231098254456561626621548444111977478472230494087774247794867198193250972877885799937144515289675391320781191485673481881916808776231341479909314752455092877308527873285713313629678775440533770357692822365691169458501425601019899423618926918313588947488698649610170672663643340719278190937273236278373354792684359860999646506547863484235556223181831268046371652592081532697166359299399598546049934434198956653543181829201197751882927410733290663288635665930133423913971519710079002678693233335872705808617355886427474160650001932082205089146483638427608321723466093625104424917550157473272458225176353162554076129187531902877982863550922135605905424262856871850697666710554423703231890135834743456235009656799918169454819627959187611410634865579252075201821375964360703007638813807562713304188009403711783469091535169359655560499638178956283524921883340352400743633165673677465038915020397628635028850998091794876055756101237349556005356191064047311932320789940541138152831888936126141589936282624035516897880782200813430757038751566936608599615502665745850062394505952042875737599255523686572281816326198050981907113025821063042399184922565737957086270195719876977261331201112702377732245602354676695091819791843739925000739121596480181981450017196350997211531105571872214333133284672050023724953288515191058453930568980305645164778202977702002150720032593507887336598644857524253173005314641554740347527492830028681802729509209886032420719561449472046839885247561225038050177555397695647575789827438382024294251990193534883821963526577301371826353119786379242930632979123760780576814646979499043465239416313856541612595177731422964101441533665188987572553654788595441046112837910673452289318655299181796926160286766678348022054449661774249141795144402223492291544044918378950593957966919090441402211601571575149387974871087619965937991181985234002605651044954884334819950064097521530004137513483474302142184915301662437093489997413758144611005033149706641645265053335093295911731286380833204420047587747751184825265172752328338076551621333995617662266236903343889929076893303088373093606194253920391068671167103095162197659056597356488438631036232641809203053067484577180593217399823330911383948999399055763147502258764274507613783678419510028220521036652850894088500765551538248336745489448202377913967166034451883371386871194068161458329359803193047422206931881729080235893415348460976504476208866317724226075203474437918219095594659516969508934925392002023933790512472788769355970182253942426141848655469065117733212195792828146877688701029953656988757576089327981827849301206464067016644999770395013766683362231748027348539131105038330930472876563752386304677674823153205338540415630263877158579291499108115801578510236967539257483415909708177262735236203618657435527925409195914290309291531723103904384959443169252050774942229296071385259666605237412870696520332493179878499106957008313968759418866237957296116690412050774275418572920568148408131978628744303582616455891007508608303724797204059429871557024485136620261881503777429622124264831033852622581812811554334552018783864332437645997816714013039699686411833736866848448604040854761802690366514985377357889442877223240922451502942317708268551412909052866380805796888887690396032989072393902459142770286005566522731204487336589510326742194046223819978128712014442400256469265484497965387371897270605382973712573892846352722121528042227304315106799905727185688150090901841183682839092013583261422149899467006201932051418725069982121157503135246321771083672963403345566569137166407026488520417945848657955280069793044956102881748679612868551541216569766744332147301169269437474616934554977321730853277365263518539965982826950185767097675949033673956933086858925937195884844216257281420695074260348884991282540651945751699737140610573477789655292208617272723519440003633274450578453148015581795733863506248835098720386454609201853844949929252758276411030828873212930101695051659936188932317974820515741543553885903404067069851546870531881405386995512166591690081993854157127355710087260024303851907955490500865765820953669235427872860115494181752335112396330308128903673490576273465231187174423214617383115805923530221934293627770779265696825880980360765964604989837543952121439005251604428483952857282719346182381077813111424026368216335395238409472103444722422991735421136776710481787971367857143928152453406129241169665007906175872243653765307440065488832521328257769144989597686625514314567044857363328912577101375783467135852079744598185562636387642399243511597246279569918566353281836612373654464999803851808782111825220253451938191573453677699226837024849671824700568707155222441201651473367770223099084149275723243924871640600207623128960912384749399337476529439622307770986698191501151953951639475477662189606170618659660853330823195944414817150606073898541435249834365509041239989608073260559135417093928697521247988128074567429038335815567008219225463004073243520324835096865935920685912177000706410327653210180444430109659387548897351187551682401328689081844704345415621089339999333017121035760132707692992108098881592199083272792246833873469439921446311647462074526605880430199135482331680631561526251334853515738915431547587881850388591054700757587115859579459351974903838139770691384487856219383888839274636098386429456254855198078558316523636640556735980780416315781956201097364744388178629882134028645085686047513747373441793147972921608292411564007336507904914724988481692841842098705552393763608894121500510360559371505949579785075478697290714136495109195424478862075144066203730760690794233256133391579177540452621341787264981592877422995563157263829885049475520697412101330130032243294753425962643016406528180145793671269279854992648497342611479501706048601478027510329341291791461759173023680364301610312054570447234579616020149590865824035844660887694014687056988506601837563548226658477162411555179733929039004247673791205926371701483592057156412008664293647472687615831221141745484605200140753331151451551833026842542639691041441572055226691006829110045929259619107126444425055122942727988540022059526106399855753446861502493107121260544917451678473004404907014519241280068187747658625177598528816419463836851498126242835535288299885719651899554043182127042060702338421853674068048440653036878139041825659754215975238520358211738217734576891249539330983349144704891343475169055437223355116233774652913494141313027029821194414111596272561756664198983988498004714647159217762899410861035231927458093724055574473578127182789039005900508493460766801433987822041412582460623719879176228266086111666172079930878095853094747994311339313575195243361927579943942990453011993264627476605131655430202107674993959341582801432947828454769630139299331228333176816096533819937599196190991362858123978618907256995385129044462928524729321601951335901794673968030516622970443758984103746696070607053645024294805775619892469643127339639960135490561683315872876079730614718813959760554258034825913203748399666737848594108976901123191746022488381194828491168540088816192053844481042105230699737680006369342300452755467347868378250359903214750205064711464184217603599040400249207080653842798708444496822652105191087683167514112915932638741241191215973263262112966302975714189340931420119832745284004082799034551428241051011379444606835694429654605125473922339870610203598496809920325951772123072932095132790933346097525888712211426765639878655101252467777711084269220705433068688119165512505282458478117340706401175772733720124635442930154606946435249589281700293804848568571549721293709154458218634211840041950251366170630735231882497079636925381894559736272680159601487611601513277336394273510353049274404799869375340836862801214197699525657552125267750930694887590761896428811541061902439201304162755808928636514149335207835354121730025624917823452502591521392908212980356906246837646131510532792333348979294501184704382451856757102801542346776033467380617764772893710882487075749354213130189917858393463744998412018764422651973016204655229434173716721112002432846479920167862019145639763765711728108156811626335422031167649882471941074461555242784829870900046714210186465075344586447693920627425532947841791440562217825206813063646977229556194579950616682512602641657551618746185163806191909671784686471008246217234654951024565781388843000406601968016178956135829032670959191336451239986052017837408141770676235354605543498595323553232250380136072244512464092584784132694018903326448079755266737496322600085066021420286545919297717116818466185069239223984635632167422912812605962901004927707792551360023460970553459892159735388603469552332357857004322314144820214115985641430684654983254121109105066607772360794246589066896335348698064089833615026482404109101598587450106377028792957688316516853726643955775611381462525912622974808587402631502677684066110931930263602311961859730783578633118185377753950684442241470500665801513899219439564248557261867054148224717111844790499761947132174959497776945620281329149253011519753141607134608782699986082307464836805084182272272154262283949377746183957213646100171957477547855605368680878991634740825467246069672583363321580114760964351333577193624574046690125217830296124214308053934415985766297271354756167828075397820343944683382303508044662276816671028118883574795263957326775891762924834180560865380983337222102146773498806330260867487191986666326126778570569914352254647117988707906442736354176423262914858426026020657304294900653656041806118171766664607604806383119296199515335928242574137708972863916436859924597742558683366156434870391192825879176189924108924788462860868581989847309392206895285248638905059965415084662894391648670529417280342479752619390853145444456456444930946082661094346426621726568356539381426717136636060725952783393489906620549899302910308372481676021184450559329716033802516822214838498490328132582543719369263942414762353516177892935544090844682735980361801126353772509530393952055287330617218556788045203677442580912634009495613106212715116233912949602593290948784341390928090843338359591413073415194174675230041800006253039510515490075523561754605609689476330867856134830166082593208250029876260489366675108433756728894421947716985288450931943194882122240583167514398847299757963177148521276637296670048349025424322784152132534003857679098392343387346505677494483670628712951583698545172579801462059083630547077527525708464390629767423879484310361588813349316297524508135600888815163730382817175050257185848705086772102862864466832953584185969223190675393598627916308058921491550849893844115425262458625983219617858845955612321259826351648498556821802948158414036527053358152742057968183642000920036648671192335074920610648301415913432345100755958308648232809757707104565725971114489000861686746137099421345631704051333675637293463245852139973410562338061249968044038827784761337458402164264545231107103532620254852533419647729776316525688332497805394838048308073088265020447714519290062324038309193799083135722147990586249695850817545149291041624062130450195723383471773835117410390692365250065284417299323673639255742556287957122668306417545009567146065555807249603862044892227738835010054121579021560498126229288981081820374884020680311778922638474553870115500150647923036240895763135387028340171776825518136429762455929963812587132806205024795036639885056616407261780823304146827133007629940298763835444962617907372266178618234159361159308915890118293767628869494440196370566876500830521027317191570039192907282357963086353375568607016908128591750445478524939788750277761243938001389610807085534315736735673465967204267526703285395476825663801195223987387255515387786680533078680897472030085851096645212406449257953604570231343867674311717515302998681784623675150701750324871771589386352012816777913428758785420188380862452687916262621223091318465579984954757816068966781844949496598730842467706901339153511451652212156921751850610705550605359742269165482807072280896684674477634433621568370379571938014197126207413810022371007051162182955932820641050066506140321580659003772730530912161246501832963816993482319267840782010385056560164715817369489394207346416479880753766855002675514311600705291914324801049906442955538002052446147218681316998515440958391671484715829682329165449921277982309687935110988938352233583409985788296427912784276576902508178393221544685045157694454606553809750401451667135225752493667176470667182934684084342651475530519512644590885848610229018601731446012944712464854891952430213049558788249555445400283929395738874713686195191518805692375915574220624588578891528151030496497389375381642254574838371958172834064061581616084900188270176841121111426019879104149757401610595073802939912787802819596099465518290811052005516483293664101626328278490854203826962585838660695675014739422712915088391164172921542306398215455221049098490484871268772093481589720970582057940132285117617715844116102823758416795889280979200871176482272126347220456953003052553435299067116300158326373440503383704740666975120478832451308564116861506242335786288935043128336036599125317242932427732399709360882664695296725310847644322567805939861675282113079968955438274070919111627160564409166151463204835737908529882678294518586033902138412032018650669403035774800500190142320927117978524443939676268163464277150788775564128377674410901824555464234362255853407773314182452943744128730083890656154678888953739140221421090745594545509609410450958915253083810517438785300238581380966006414738079561513920786070598201461350963123638439204210805946807000153032007428994438716665541060745250136575334419136247493726256010281354368930059748307038644297558924543252981346244394509776683934313434807154480603990471421139007517066766337581139560824186683622924867918761464538222383486830458794707855910829597889708103695500717558225765409799215005973913507776542130115485034268688204721646955244939696119732252507739326600667964305617334368063278096828509648752522113974253869702822767494311311167443999123594472841507926228216222479684245130464661124641169688463124468179866518203181623029303842367642052434778714598690047495094488791829080910109043866644019104783848518839173748648416492414958862765456397789383545607608044538700114978196398989718623439650391356005583971726370617543415993606720830436797227699877803994796210276567100408917199268574942674617333663246050940648733248548650011380326860764580062218183337564070992192110718104477229569379838074298086297644607257094165570564307473710135648777001652659616911363396846815037770230743165987987966622123933223471976424847543468236194023754629031904833012521648561158486730976418324937342902181947945916014248187051690314703986675470364103708759907903708300913380576916993939672648987483616290966404300386338647964560232342901171420634501808316573733704149926627150637364071919860179815158927369629836522011672477085710354327882970715948901515468916167252709170548251524823141192174211846989720135712098003099072469580067288974417876856611750767222228977217299255675716072788622640487656459127973486183526558923732064457767463456773406061372109382177666190812501605105871431798465760806290613047644045103767167549259580967510744445511009667177843645241151458579436955480988990254341253422304512363846328703209155341667626927355785892260087158062931430997553271102416452901302071473754360784632711651113306744764453212858848756671995592799394386552453574630332616746184657636547746454314621036761118703557369122708104180542410364105184914068922292381221637874548439394418512253926996095455803126660046185014333015881332668550663624032648207399041689602531863665788078971770179965827764116624985599416615457159780578436015862230751519959643256000364562011135806407500922471942901430782609765956275785707253853039237623605073843119274579590549842639307267209374152254353691409875640853774747071005961873065735630291744394420404707874718575182722386895349187473562484236157209074319146412383724851234813355008813834676040573223507488533480879360901043739317434281302706706159921056300416835223784305975382154690843296628654126853563074061246127018187608175863870953285400172841851013280143152675590864145310493764907298617083077493756000344174402295634174570822851130636515943316335516260099351035937810970949410782907733146331258380054903224430556253491589132041226977811681140229620464578909290998713264994817636569701895455891980722533771335219599179788773816510318024208460605873320687635261033080250329891889513826542206780654698066638686163972190031490906477360015216964833965482852645982735442490261138902359701283178774307945809342969461700092318129353468149445471550973291187703786317817228020786751245433531114787656859644843810805621345721407514180765803494060794572900202881679491678608204401761508564520768710519012042347591469189641155656068828438710923330053278892803360465281107322602507782802205041650944806274289570913131704848076447826240135880994888924365791025676416724793137007920414829172755090794773400670092955079248017553823172912726507516296645643647076235474938815045895427038075575201053211911991814359302467129539726498965086890948916330261496139746675548135077429120948473849619544407788531375121033315612419500404867821191346165476729649704423702828008825144684774257202282938831688249302753456860947487527634795577752039870208373175751936851086742456234101938069716994934243739378096092955048955601323809491521765880453322885633336258187682514599953112511064699365097417367753578980621799759421580109359552459449734497873294476188367967130012765207720453407354872664684524498242679482402926317437733506476951970585602353070842254432025857617184761616211418649302494097168086887027103778389113679607710973181766388546755770083451846955032861499150428107968712874598071750839544884165573844789399530576852046681126002160508822204205484741202564746369572493048677477673555378769977476485184804235729229285133370225739229308793515735819941202375279436661409926416455085717802212503389531006870044549456002587556577140462404793012244013704647059096668358249713481905606684874308911043551859941799690799645831600960818435965867884226183085870988917028679560003375414571541129957849304026073817103394435111509459425833194800847691835291891254115492288927460246630944199908212137464824828993516030108178947332660950916769548279830130070780661858175702375690528592256442551124479228130478959388951253796768288792442694040858288559637145401661409344513502455191770273447313139237255080603592978639669792719518494555414367905634264621751761207619177218858315294760504717669782789184957085266135449352794148211158243615196269869366392286597702462692407848920155998867212868272611449616049691458896762862777917901300049662817735551796085588320408886641813660178975371229067466826265521876093841663192921717607136488827881538008232039392923661139993224026123271577023477873169442705450610973443898458590146745273595687785942037514636526241996618407541764365995861512709943247204903105193918259631235166556929322111162046363886372539017956973080869062392475467288933959764395226149224235019490939472457859885100436481176274186665087878945545419602477573505184221278422265827606453314642721650586610434599284412981740882675698579285221627192592341478013545388284661747252379812852095033961176024441309173733745301038907780618690315259767762280308381122404826969443708003336768249352540736779927762323338701285623439784385338535699336371611005078844214835140548077700126467581142902244789347846032717086330600792381929565966622071857262270553061781494441152420540227042698120875971822185055722330491689517296801354235151386186036797448665647801845266558338190411730538607455904697739260632754773135569805970132440048758512627432216454059758744903317815702307598762600545712053268223319965071929324205294516248363442835393329836426172016285492562657238720160818538672098630117764332709695820570269745917315632841224290983708592403058338660604318227089305575806263797688494626886332222834101266972806533417862447804308372133771828476843896357944228516689599648131811880092139314659207720131909134291956856954799207166027877561665626618265231488403030634615151444988688696551074662275068204987505681007686294629269798501140076754502330131512970398034778697739051837020790054628262132894120141693930110419455906652437356682363435029346280626448155266775224926169558777361084508498385184890617471165932540681764332938897303943382915153885749520837199063529540343823957933034647949835292536710059837445444725492909312821764246048473826914034865201956250005153101131521011367247031395745295614613551403511448962288528873307673757567128365270298616352543873755528709002893461744436247282455757079451529028488767952445957627525585292145578593150833622128996288759592066731389844781115528863064101637698487319039791770839453828508268666550914456640276213428928467011703603934502171976322544043284787724021252610177609896961165964965021404511259272409594062338408171370641918793144071710487169285093201000738068851968461027863839364462696746503459597465971460193117321117720948602404931540753062837500585570985914048282042817039192914977909533456315330178733619749830884630895381165517044259100549029360930501720401034528462508667747113304351057579175249823526377036082262978906982340879223574315183848047151516041863668913425624879957185115625708354264986094886242301513524729363799236917289572598011015317045665662656948824512945125003092264583367361043842292172183006928049626178171120975931418593316480612666979255265201641832069452918197135535351534086885796556837794397061220520454195843123357609536673202204688928092578582043726337597507736803822305968275802197902637688390808795068424232559322678771342210418001326423360221991514691764513912472347195055194104856202696905774759848131496510630077004394446053776456159558777007619795320982175754229934576128477063993726557876165735990383077765243080744148025864876434654496670090368208963388077498054439969299720443860853554037004023531383438757183931946889306700749060328418486487601804746343358221191040795062319470682419280194554266390118851880891282686442776807376804890614206146252008009322423608723358059176755973642421345783667193922702702457141242560649969636089396639251062383354657855411754313983361983723596217651825655391817100748787832027595024401097393810447340131133350655600075471488720187518702056296959064275305900257732503364614834925273702814833563233672483791632841797152913447947553786101433950732074352720010502816749599283235437713359185745698482719877749267751610666977428421744054873791123459645580413357852251563373563438873759133179536920717643354270342052676866446176690664698339005512206099708294131086938020594780658045229889531862571091035980881426104862273772808604247272214913396273457718754954445271507249370943176178653699776333073610678993595185845044956438411821390483397945620204972219189853283033890893833119011142760722309737681012675062282565213341996820912444799846289613796455040160742932827354300615107004857328033882058676697127886643371058242504751352603309388355500749425239198740076167713205204166394627201196091627648654064547142569767317673303117544865248670955654512620178678982756707323188845990759128532426332903667862964174771217867458332209653407885089360491885000039422255952469592504764171147571080458134696897385020583015883027127883029047281649829188075730029689449265727651834081590686003694127607198676264176564409176294586230294389673426637271358847357314184309742676647745608331519401325788891278842225194627927374797416638444274887982999594432292886620360637831708222512921480902319054120987230199263782283248348636571981148873944937178102520264046195051365026262507910289241303919108225497782499178384705675500715921191402727450604714557138075727514566221286863997380585694281085290098957349418450226529674407064442253170034804525087870231632866143277192726864286830117900821325629439763651452349342381230079072774022646729270167873646448645114273990396463049536305395655264202321396203433856443579544044136148890893942393337823844261506816531542335433760776431743185124499167861322406632090353027862667067507798833146318461538965915715485890055866112770861762836449649699815018369212808013799380212463491985027167516654377156061922846021179129098468443442494128225236663441366066953032779547127564273442663999143617858890721520604899393003863827947906719550530505035155260623501517317375348678919456809317354475581535326409815899936930048666968905102093397470616300782281695287460071987650469645861281223861902732851800868942073852814164401462133664166897350204153008543403203078038302643229452518943563168060154622396397179416882276917630198634455402787606714856419004171550019361987986005345036564134484502477169636360615567379466356069508155382355769224737528684241306103675674688159644638671149069956296151007271248731812345197125878472446456357350951201163904336017124782952582306501095700526743459734223807376379715229758385370937060019656712613270630487940348148467013899537177992224899736843929092376595292572160839022770948361627047817883805386441589609294453762719247283543406495444007684921559639429020613804541904295711094617770562599041605604718279185681048709778468178564711359438838101877733145577592007942887062818050613734524546864159322650235873321705369340494500383614688119795116900265603080780815976680477504694131597824932213831245612793386576217700952661756741580060003927848983815268755367113936619824313212500885465165120234511683892421306335935553431309365656074529848497273819161306137948534462641571974544660329457100627792593182874262856678764188299766516476803711258287821486033976741600518058324655217507388619413206233989015423151258646261099368555101925294662021592197199191226299549619959654812722175069405563772366386327402191148086851969288192107906985917967002310881792326895215919024347615653578614489275919615241703457531937691702309277927809750860209754058186308315977419910631391334525905445173377870847470382299309305886888387778676933052033023285190947672794713730822392485772830806189514692198621854528531278308016439464351217773237420204096594941945623205198872261962629995874316386476175076935032887470665751766858498718204037815758131967892163456760151567397057860673974153146809600463318596145415188859144298543254293575128226586468589674514721609348544037572968872689365404831456219798201039044828690721628739829356073670592683783650998242721396820735743548766093544406009932898001464278756016913798505697051313278521868090194828641387173285105560862738233862995493943295353846419646093302186353891668314920766522001817250479588393844966325799812755071774922992123579758282902899748193101436342739522692157590438529417619078213010747938903335297480717118199206844141703351367711567135235974694001631662905241037784191743156636111134852142397683888296813413291362814086461447429178432105881361124365142229612721310315859472930982885570980606429968838359224137396693784546583151994261331122482227449232644752470766288918013345221471828436214222455614338907936560580272173944569186338155727348486016425053552214063615433742517143637137229074715902516664634409657274715172643435827014209146763397710522990244743548416986480653712672109088049984743215362569545343158781481227230674008209288716481784752695378899164943965476126738664339899490680684373328233860045242689978253614540915714354523661881494560611396202307372307708209205159587665927607642476496596856280006988192930481956640547014556409900826373912413472715607280647623010642137582182655445679758915884459175892235603801589010959603455322136733966763821961145986780179078364012603584705111848868767980490411808288748294811717983820415782998425437545291822742125417353814514537171335686640681180475912955405206449088821760592359572470102764034493017082482651864721679739172007350881317571689262831486285931440295994320661562766661864942388453922564013665579870575096730505433915324199240374341143714574082900227616648234118624406536133988615593653027438465224381619453398513230903509135627232061409019858873126724179480004165245423552149556398574802430226821298423542246839976211799949515885248485962863675543862497868977091051772253564445295987405548588116858592568666574920198834263407192817068643561606227161114334353587042918669276097888654283582884677212876483136144024260902510898841088859107287213161527586475386173368567046219975524546577451188268998623518206036621085425549743399922232708651696816183785528812191194099918030348191363243348585705742265328755710172376316852061845079994577644378896740708329832450092811334031682352797587410441813610853158629731331832425994210861516114187352348176584099563824061494772608964824085547518266076995856615029508082100219026207947564927114166139873425920565269535301764300337400196914052530518263628492885066004441061485934336081317544666090823657776882819997969982496865573930519195073805889990515642028822377148934497833796141170667316238796420254043467173734333742667281530054627451353359925776755822149182935517253062203444895779171677346923420088886237167674352417249839414642846761671549853199087361549005795347843593460765819765169622400963471311070162063214164940376111951989811291065441447732391619612156368016650547529154803361128150168948551977963135366081370052635040036852873937898488974791527703263419950146149766422916334998155284353277651408605886564202047784695830524861937823952009218645463260954177539202365466083353326015244224940492898261878203687490750027518660161173141656714578275896657210674750456062948598643239449827182818760879500680331632201061504569697693632771345191704988925548300877886371880565675573186313960534011977157892617065806578939911102385576557365887178347249684515040716496269183791429053573518982535355678537125293361678399862556171678540105460372196045013501412211638392279770510098747613132709823166690131341988026168716413445901340149011671216330170140234504316848189981598665852712188122319557592805571635867789663147728084955134619760825669325216668901055657507687839128773393175035701457288170271612931146596371923418283422175922021731226509247792544921392965881166511681756076206470706682396583919601512377058590530522485869159758133556823806230883583491796673837587187070786121140255171213972701301416287851234986463781686325484676215607363550575199386237724216138498172588054454014241375087243679323247000808236882194978276793402888794419157043286627681262990669984533181004969537386760356976665310019235717864875051566357906298800781509927389605048269834575178345128113082054919551961784885634043391962427273493573159214890924570313171231861853089736778557387115225138339778022212403306191389295512803852095105062407883828758218354943932675673067847203359886956576318239938260887166788278038290709168345134118481828250940408113757266342505150870421839010782556234145796891573268437563140242643159670376434089992875494706191819721883650276986787667795610078243607410924319099016312198164851992656441008981928001936030062230273729406411887702818065833507700774102847140063273840786951888648398822624767170938651703868893427545173643028032920932490703769603098468274518298449421667340873698166387291214206552599737413917910889051588921195126234816668736651998028063751833057221372389515896313214024186644826831675796460031675401198515501790750345134362616089837213889634330959061003656611811424767495535923642396861045869778505937119563874938023239475607803427820870398450262255005092984899749135474580339561828751823702139709721146305740531149166651145504803744664584016565261021896527022315317578546789278121432070999747238964400059282597798136210328175709098548239173058085359161062432011760760394666592133765029914274541060412653464572904051927616474023520846971818598109071676687362051218702839619816836311102697272735539064656978757706880718967009789381889478530786650751186935471204640875663402841118889086826914332834315508871717629125302984874506121000362719494867283268908228937516165424979311467252184862582985954043979428894936133928223780571408146089174751886860709494691018531870784789657959137302570044592820868432294023678934307522921371851621267059187572222927214124303341074632958280009827186709333762143772535766746149020096001653564219887017146013553407659341794320221210557341181197584048310974860167446846470500354343623743415804924017883373609582289106149318977429383151521383662286321993002302274845428537888089122722238799437606972979864810258601045474226220678931855308022430728216522271592699950345518473836133510164226356393124252579074712903888316611181602645681009567078856822721919736478309231724179428730787376409137389749577543068197103210958299122256666322503015124986851744464479560880195341270797305652446072426294307792645436712186995723200360018546066557263097897723436648732864726154734824919291670408133552057812760775088009635704215852116378793270138400500769207967495060989117817463740706583136659128989129389547786053393881408441951652733146614788587922743615117531375480728637072918618197595965891684390375402556589170901822884686351029997708169876723046226167892797786238054410311669795389537144913004084585403987801580326840001228089963410020899773527989125963565639192552133969320675654009602598011940747562445911397404514470152020271693958090097141588570572773033507204884133224166060707675601343513601082591785263947705103166049235906659982519896324801064494448174970930037648639630785272910335953959125635000963715782763050763640153989166954757646382228489941459631463211231515039510348948808112222038706262293992939000293661006825759675257690597929967001292456765492977324029221003596715470531976963910440282694678801931402037089254522615712428712026772750048833289568237338933406841278348660973514487830849830826403192867573653176489363469850006765406732109443338626528669939614822699391066820442284452316804568810051751305895860450976620533414399612966230078398866206114054115427548911318911445420049285627410224471051580067330376517847578596889079262295593905792172019208082948110401955770192143967522555742513623114781366003179974652485284500327368684385836136814196513831946275907716272890962733927583251060594055291504056880181040224624022541593119068125576736401124359916764055808770367662302085007744303980565022982536027220673365790544048653605974979956948519287735715884402192433009600399177402590388484248386876603370165321853320197237550675743147594747728497609956542224591448267639806355267574599979211837959979285686451842380754660137116214413112691678936191224944207405218681274980818205087110578438249151550574727600715842538564711797103112990435114010682186489518425521924230573343143307768839625924598693768267315490318038102137542669771711870838689376627001109725543473743632825554254082957243997903354120719595467710548870638132925229096468831652507208133973453173864886608530471565135316229532473890816434939824266389520202889854360506472165594965220540817692502111478578888744584259702120037438525071978222887714876227532231020290156702150804272051031972107261136844391496455961038918532473578781810426227205539631252852013256896257955570641960851659212775753606042717971938135603930166561438545523556723719436667678627971460900926933677395592078577941585962477455831108788846857052766669576788531339812253213043592752568388981227142813230463133176067981832235991845650103464935221149206795660839773721050031431776042217531948191792286685709512460912769176026253014149139851493790272048944394257283705983417174940682092388835447535570484679052400274394678500483496910331558870340456612295129378756683231199347197593024129932163158784869106657612309036821349524154497758934128026804906058877532389346395199561646931612397731486717997522676911386530823486834963992936107431088868452489134586268643760523866933659205063811294736675572270435253918304565626042779269346627137007411283399837468017239356846690753253101417887133581590939716058422288322816496299262916017305614093105846266099614546217097217133309073119453393529482387314425899168072239766613488765668764393393398825770822471491458147236395888107423205360691231700234040492133627451041671625777756585322904716801608883588496306989036001653705785447755707915888949383191537324310764002175235103345201577273562457635923064504309690361965749007490618722089193769435374340652049771585452107324112094217779172578370468791261346833817771740603631193989040218653508372751283262349291812253309836478830045544616718790546538935400010775123239339225894352305783311165681073186176310355950434893931193900172526376451908265078644800012436903759231745618518618962923437048077729677778875735544487758541741076370135737860628047221083924676753127201996744926529673901022046669451979574655039087886731895194350222902481370689626351023332733795375259085531472086147964520777180608054034255206782979968480336432754819534978117382417336977365956200601539809033596833592704491003179712240469396387775187679691045320590822009399084257040706827602738271975131646625063139720805217403397167539309266308167260693407184843991431652896677371843300565749408531022906014997575641387974912247261912581788363585150651623593069310137923732289833832464590809829040564175007552100210089414681145050911812607513099933698703044820690697113123932676451667816030509849367198134133309473272826059627107183404760631072011401219312615539423432667659466348307968038528952235464743143104542367684795614208053765723464421782926233499758017085672022918321791246488754323291134516426984708078997444975754626390059806157082978960404641911939335585801616666258272023401528326536594425154188595452491599269421727844880263997605042189349545903243700547991535462056830988235219844163041035483073805711086745501736866099889552941155489039950736880911087672609185167169700064856353847606288924545864742490789141908673512271096758587876287731181933601711489851843869642509626194719776519874199113750168966675524047253186822634004013310936452763324367509345351275158312832960438150817391643567437844968384261782277566164072444890912555767839714625722921121482856961450685702886012542905938252735204267102021561464235269224787753464492968190782405339926192652853920992003454862467835129107109091892036146850145054662110754448155476387628909803484981781349925034407708429480176759030801795282863465160643298782619736955398340187434565158016549383984198127595989406881963159294503719010735068011979320621428143198198623679699016672142718877092668800360559191416393432037494890631512737226462551691990192018795597952011423983916078426175915823697714694629373757284125167349565989591057970020753608455002231766505068572418407244550702929641692358553165133292615350781476630938788581178914031091723223016033377268606471660107648927040332926014810769599314303631044557958011634583709605082316142389304582343183255644833784581263724333252711744264384455872893436137669949586497331371886000232339005654593371640619986777203073573160878192611333590480936678592365614838945651348068003177359030195492651775365518058708540517180750893201854706406544569274913512117046882775008674397942892617774165775671725723945249710940954284315576043222448578510939247236174691996874877563637937597959825189847314565117360491443910412574523027753408642392776938808280714981581192175877203861486780264076508982030664773714861552915965313782034558136965428115157979849233854764090276026503335142581872986559412040020168351410530082086278805670300379650454091427805285265602237901493347643215430892228199050135858797042443243407242558032943108378749835339247707036505322689197686738105715325533245323757445468136891723165079066057399459631282144051289675212157926927927238854639851816286452644842726417072720579197017900198063784667388107066695072850566161969757707383423506332388511094994265324652846728665975140380573752111684685727294187955356088262230903917649171671450255398332908729200862074492406839855618599008932661961707400501349837583428764193881961386778245931134388778497285177208548301618809785462195549164733125161008849034692270745623380001117770327366455609535406018147559731963267204725869495019455648780699184344376124310059939125866411050993838910967985891833276823242991876103271598269771432683268831845140607423322521644095941604686555093815592362366587926639609945251427539628070210021430335061923978225428811405045196579528317128597580694557299015878891142407904232557894743128150794133123032166231415467898102263584220506298414214378663259697439558117983366328731874498799802325920511627585434428643742754250794971650045852200964522691599643172159766408102470291543458077725201819851320464740870052552004997232631011602349472449315653406704005941743814234441013480133474909817857189742419007632583148215892548280232552104129853777623122031431887474277366164752465492895440688752566801004105635978287242826561264464620738339963749346970231014859022851962553813959444099859156965348707093045313894711684824367001965909967421977131543241216805705862826299593431662775975508805427116887988873369995973944257364565345913908655256726304371334748884891192611673546834675183439958178177577191834707938060070009566228908711473597750782170893459071363330819543202440483044968009846007963665154974039348399556149174352558774145421786454165764061690285860358420884333578388764942101945179638087924034612755466203468421844692872125532600884008720728998854841772639834658456232476959211946699120812661849286936271328007033208522768680264942604163592065539746738486491312143831958303755320553436530362408490283455460859952516111799234152396822378070389721780628630088862555810994886254109491196640381010836717323213087921718466192377792319056276756610565882858386951686330323369428063743931444347032651719072480001344164383517006103170167739783721411436711599035513680663833701746631302747027478731323017573496882020108676757051863658253333368691812934214732090025773468172640600308560049750390772220909890086201868593318768461866692201572607574601551895428307018757672038573106593506057527003570763467885950241380851659014412992449057008991260390170146473519135307154484113497739693959334349188679902559286213525870990684601552240294544010009328452413341880278842751227815668037421164158349248003466834699482357361923329151987327777751229541559406102872136053928194688453249557760269038214698163169520420963400874294064079405028305813558797845594854831317177227063836689680096714694385581742467011387231188644138400889806075929207408458459866858408172253204023989392922881672559326372353051056077177920518792549224000419137601288033047813251985944049124104678635231255705348310311824206661104360554552033032170899743212486683264950494205776068441283449179643607179400143751669672376090452652929720227864857920958357330046874351007124691510784579723621885847385754755051469259432931985353363504725032285721974829521446301826956312403991723603329435733868650261867549478584863098467164664654614951718491676721419922483681367641058491423445122604701483736956074641204476333751933840340598067235489824699057455962074957524266571989909408860707788870775400427615577512101331463722919498244615446637095057118782318886902977532059411923227654125207820669784327422862479393052959855535383701295181661658772548916200336141134174179215497265279514772649517026073362772293094667097006900391506337236643396322112250809255148029081066571962675370808751926272487683174667676801250189417783104706543400189147052103159516587298935743278473472949549626899652498135400497282476029593482528350413002102534516085289376559372035892490780476642521583581912885845323023190303451592746776199941184428840318756537097083746664044487860359980765484816707657022506379784954419421884680770141708617521490880040108381946251690947292439512262888534435660969713781940744546055974069197938727758678148531811545767758308744754197326272461728120558990690753707191349356098641413435836026386547869625063829463640849988390799840036837215409178805382996115948040511267121342816794784865086974047858062689186102360742748395270984439196988421478524174472526617008602195419893979155292207109472446387808901306712642377894625268271866017982092844431165872916763525568433086418536575336863320647823562833659837825069346554935723612640914725078597740161654672839817694239099914627918281137402671390284736007724057381138262498647133408693405543008654684238009370828151367009671502407544982836759932019358583311374299542061433190555220526667409364921980937175827192457699388381323167156193819724172996806561734782992621166131043031432995551066106680461626913109272797397026004847769935989207122188934491719771850433489674269711393476906678321701221361112215316136842881507334347932909948651127534683185220855058891152509120619303495176732764124781997782881022628342050294849539556016461476337646061046879277883803964767716089636655359138454239456899692136405340214191474385153060224402843720734890921449113731245752375184718399510594894682032725314343269224975302430492276247990109324952720744992213052632305211556198176147996153757461801027051355350541200978545251072974401790493259106930421256899354860934885188329577249031336594425494378666131293061688603499943385542728096491962238876340866371344178835099372488668802410676453906427493357978265058051089901453723288921442242516107216010474039785609796352753291412903311066001616357864633885797766425319830302910230201852376628657642691055989488283864793265137330013933418689885914391915901662526594371805188902071140171477128632883910806981798663299631843028841532440868668641261258946503615224287026436205134643745177485984385568295713177705625522838485804787441122270867184202136958985080832690358274892271945818781603537590619640599671776352297637741775951994190689613002004377547452081713701425647791544650949882864458175119051690482570441789686428947852891554764313511345862922655404187517307213869657097254454575217585378545753299236219757860835553506255001641241755043944715814228935375299773340889280631822623273509396891710326867920474338001152367394211081593797717413230104556792069768601891727978735085009858144648679282500179434430459624947266501085250371195176060647578728122939530131176300791788532616301059753545177705173285488137232269932976959379868958401209846357250146097041535561599756431703038875982666127822474501674794975982311503950739456527838128845594968861098602793283027733195279910932880640134845882830481499499147928077913766920274779091017983323082065685110333379735674409326341371144762960594686730569330393573109525042024909597696091608546344007142973287950666713688980009915932031795216595143816607843953265917078711585254019350995000951789342633138698737148227979688793375694180637005059760071779701677986358728755029147797256372432440416294844049395123379975978361140240623112067567218542416709408539198609523874024030717710215018592471478390672808324818354173416731643605428370279736246968492926377296257578832859416246799110355968482746276259862266974629255043708810706580757463000942338502299829553940327076082889239398796506869470962529428989484450601897339667413826764212886677388098236303858784616508662785116998881399162598226353862893421141976382918833108126992535745612991139196391766438944482756957287429009151172167538282156679428144006266180809234057990066961339607062113626390685384512139084479285851491101169836627763751503624598800562384015623116075847107054734596781786043261327842282114345897393002772252065681166592522931417269158255989233015190658157527905223689972732084893236886987618770886446671022590004438174847961581354474057248513128784822221615050561297362879153331639211790437942301419512162538265853886001929286753735862444890041897311893075668081391253935363224192605556043744530940861998412994937134216023039860741117956473719894553687601839117764667479703427448069766042203423342286365715662141944952199564130961753138857633352469778199876631330619190542238416498276727706562211958945457224914627935019343146634416778916486708807670999307172207757449222277895168146701406910349498181723524561728630562336950414950872431949166957643600386816065725702182146851457079852599733523868311274418778952475778485780976468936607746605139595460461068730677099166170911058057384913543055699621922938417503581592261055771501643919551721542004167575652516829086329413191354985394363721354196819070967761998189307912401123417930998810358593976154940489137737241654865756457502759417320779217539566936435996906623045666752050603756123437732471709300242577856989552846079064670126503017358971713992978960267492343363403533353419644074811876597735426589344121024259051606754944602545412639673815575712113288952275733740956260204812048768928799449196011455634981557439090931286950084540226000168584668528802799058473670974630449681081966269742090437966092290540203470273434495347162166730967582598729639264228103266059806347978436008384808280895400287290960764550400219082720008172893190758869129592032011354841812716795403484388646322254598651940033111084239813907250819589439061049528565226611330896046599492667428522687682946479356709995597965896631174806394340614002413118820716808249516518954485454815701421844240461852432274248800873965040274619517044364050671407341358721342020568741060969070448980981370252278926107484343513289324782564200774892217580442374804093188074397422044706273999668363799642606444119922179609889820906931330446351633951078640454585208022862246292746945647109577596844763855356243190668233429663249367133321259336865309711041178419003891535357951880621034246779242086343313531480937583022999412365824328722215781219657157503961901498247176525065745784203372260372565231281982510548636682481868498768707275028858381529170665114676697304466330151314183271474707552881306985390550309354360801465901239528402492956145535933136283902581418418733458780362388310521424817372962696764808090244733156380795476898352778512488444170987103271264123821400760633561109758980435420291083796198926256358448799769093805825965569981478300965101358828514071936248859246884774964981312999782546679697536329215074985161529732083137806409900103964737407269622216892060557602338253782668245101816829727160883769810743311362853896848071754355594800090980998047250162046427755860779886314656996581956409552079955336987464240285347945413931569194248347407577898351636343166144045303555026250371449262757837918348834094057226896579284178421039974254227814890487926262168745589164459605443751349437672862332361602185088447869145462150475820302623199844810239930283163534433524182641374153956433410354225187443926515301753870525217830584934889323027673262110994777262124543808370623596422026229848378747116337851939686956178098245442138413676577253831696340135415364579571775427519120441880341893048754533451278474134774064523411664291253023616425141956780649494441239513819806160184550011343365838302071952667976586290683747093200358715738439125224719059920399973016967041283015610621370674944894484389531243306242268847408149175818480758346216102812902773593076573008778529805082995536136507045204851686079478458437011150195129991483435121072599988417475546132585532371450785898632375840996714133194491161893691107667209065092326985711165357494273830674998905210340785791249443491772877986484232755409553355724252800979394202585835187905618660446972557318647502946800505301268733365725798573565924673969161952944362753065133473607931093898110799098819537064140838365417544405399579900736557108573819786738356357714813029250115043966736421528477227331879570119858439289281977448355969475940071681615242929369436258702662282377250891546735397702287102843255374011874641499562694580851487407351938399355579633551857052478210655836863601907331749889017193184153612388074515003781052260939332580992937452150837540315075647376553155612487182590257141776095024121011920782877415278502503790301849986833382381759998629210932654626004010038153016941330296750195829389878513758762790446348135961312440554577647749212469058820311315043097288833862362586631847611130558582910589881800659906089526348612519842040305096036340813579974729236809839027443600739080203467706479863525330512912135906229592065053560497592775683267958209418207057785239351114758539076037456441946104002795598366216508001471319941263757897956488167131955336581786016965556505464863584112555497647093069409283966315575920309600713804873535865519743920592087173386041639848320512540047349812959695024297367824858206362448642739931569652183742718333854848218153097886285449065815073443292151115100239085554529347026028124813102164775966901145195884209429191508407405920814962180821389823484493566259711009839474521850914592092782355361503428233134153987178135598279786246342808933994537476557064668222481545230937576861078650202731995217480798930372547250361412605564888308397247586121425242747944815109037796843908594942428915551826196670961017760357948415460229002929013615409843832815875215467792549194523463151695270318561672359447973581309297748232748415679964823848813502813585709297963816441970048124624393446072200077103308603562056381134525493275527369512010574210367400844438806902910618553388142130226838234573529778086626338631860565554026138954209434199766924721348788014107416718183633114513216194024414114073347020457361578425093524301126259107223794806993587454950568045347312263182497548099635408835411861715393771467564919103300715331785460048599559060594051240158337415283521967227886212377345007800611070686368652971718029594687306255966223339472938717193956016413197862279051682296977444471066047435314190481544664186500711997507810766418678459247401108000362434302697488954403121189425894530393064702556579432184531503104119441898766963475163002843666148766192674215386703615838268236071804593643556944871828380816354064404269451600309271076550182808686669715451496506186489142959489181683973076327664555257263686417761822597112948938863673696191344345550014987485461518106698942541195550470994490042290497734769322748151160856837216283189825322839207438337535311268168020867973250570300081620098577763696597136909493530748847614769869020684864616295625772823694545234261726118591880758032675382426300639187025370195029723606725912864581549976260486970353320468300881365756436002179880371717846683674083258261862559448293734552586735784935310351387621009286502843912673573258405273242592818355117459435908620602525850987982150407021829807970916996431305674677593231655929856108415714293750547980547166727893911782464783211761148006994488283961362453317337589579302968654125610720220649313304661343983184165579204088141898679109765630976753022138353929811129049649900252745483330408578767328237465073397999015243416377797279773963608319117012896136520945269331567803345457318297590375099674835908526628330427455221542710293362344419550722391304471604541309080206525286182796788329872549881808988897151115139661497438873669371811728194775028166852447039176047070724915608513722582305977128830162346233002895246755374860130008370415147073913429567503041714727409112353400005634965091241752821433711571196364770946736066381363411706968788589595248165941819955908492548898563169156280558124667413312995571050821240861565968360013039165183296367270207764887707336314769238249860896050977888334322656739823349237703097371589666707050662935016830582136195975413430494331937522253378658729452687287653812188854960691600627773380657396434407573275366443316319304789853635391747523291825456002355836300025059255932724593393633360867463726588731970695651296493122784660093260586074279930978373383074210253764006969929052757636616501507914294521996709027255682710878287631793859694354570760529605635136081570294450012733283445924315266299014621114707710858691465782713439281304956678450018396441844825920038607626125724630942354530643212861531245813578088151652906643258054218174947440210441235550528811187398501416711571111648882207335169591747566568237559631415452490249748440102167704819722994291690430707288566679750813220043873737386294208894465039848554420542543675129708063750134243390077544066985752282170130238190482812612128599645171738072571900968266159200771686116035838452453210294445735295868720633635996414834413382890180287875963035999894198608575889794897666389064070970244055367540687104587774209449509865294256622588148847998029974325232723241012443198589342479036741152060977360389519500139333760874070321858691478203052447144886032381117519349780504002361043192671500165859181909202156858805132174337352243976017971288994146584501011432565808609310061383383693175122942445712611638007439852049768698095173939147276368137355692610962555553421456586280369015160511166136666235474953950372490372560554377430774336630840150046372309717515734473691544729251094467214693215072646140041929318849236526608834053831282688433998724128290926039646497912761461278505880799994328845533344131147748596211530004746202688542028234223741174414196428638144334867757733982630051757035238992054986210359296029737306122410741069316830737774507151349237661041551388188480352567709326901550638469513270642457301717785528473129900320154749033318851707713930094871208451049716940156776939470337219707828119937236350293629244202415805979168768121313560721595047883457052943791729780266454525897954823051502878480971710422479007477065959267291170414145896586724742195046924447887223089832330245258496272185955165638405363393244361291426655939707755580454456265295975491660006854515037023110007656787014845568267749799255578431267149178218093387300072772588407087826688213141722677882666637073170227798939626977615468675984672869873179689828169186120822015339113554645003087473881614069498738091391850005737048321278498660862854790056192799412652440086014866012746136551725637022303165651887312007072036014941324065143265904877962684821025337994462698986270809695236918435638489250112453174819702693148546983329327676217202707369680962868948457740718354278357699102220371212558501949292138851319041681031401656073389449955408225487798873544454088672083187943133153353383359530378002687741937049635866946811986258003452170841244142531112805599531426487769871675210771554287091102649799392237702201055689124798455543745784072614507846175319801401904614808017842831480736751432482425483498586085372463106099905304433184509605925838303225181014741562207354127840208405378637858474354008824627659986923174083737148340218392732764439275976987401985538638341275868547465188892102515184451260361476852876904238479515260209880804100689825587210683088286361549827378661176673200858650588978263079631587819798638080399051732819483774167404965877664070066651487071452336674548456703837457258815430348827703370298257897909000600285270992695146139569034986792738897144956717943947247249783486123652766130543657030835142365941545640245937474561166759964019569038836738849141813046171172983953194443495305787125859773436876302857827509443896584691662988108915754634141312656982978300298528170510278458842017391181741410099984541356505546860984645906455750285624799231788693907929189401156659348179941327748405771438000196349348738762502556201835137376119467988140305082170091624936764761394729943039689432917187519341719032577229950361049353258646144528427100606578781922802022832848314668984647242434134044918237142940928735859961530666850755939584864268400082060732273277872358582837320304767587964324683964432668100724569055178745611888840356118766100871149169751986701805854598148221297753149240394314780956780335481032439802746866921403071217292191697794821818312816774313497187544023251824346930271294450996997877742038194332446438307098019998303939782547834230592182193091935291333481660515721266476712335088201246638509450721298420487057505552044524735960053050210860256096943519793061841875250774267311646098006724297563535197214710228294952222880355963507940396696793979939840408555670462513488543371017325583724612310389562621682468836864761764461956737085644772215772560555449443245350791451515796037549773251634816492557474348322688914472543480983398927747225453296795830836096275586333290095459887634545344498932694689186070600041864700010343310080614692105149913859258644727950812727534173574116855990851578552777418837202122746815027022405552015511577539515756788697308014229163865776453655155011659393319793597554476878230292476609087702568245856604062293702229397577102733768026577571018193442672489681911284144875506207554024500095258929680167895427433113404975009315197297435740475643548288625547539383301766221577492985573971766283702186135850600369013667589029411308266490750019275416742097666517720898021192781990640426290105939921932402979066749733150077751578603133927944583243627415905242137782467896292342979312303413024059941523756811648486652629278667551228753699762684113303886432921901434984159708802543542246316465101890823803093772558895407584396596644101607635733812795658404718034694321313909329927780558300844432361211249863643718903100535713787624730595958285657531923712736404208914511271696876014846210014479799702414456233004625477733451865800140783999092409201302415881798121289718956497967766388852844666561584690191976954239672445658153725493583430287333876274962452945225110783479271465516495301041563226735907271599626458362616234131727559341780517186840665760263090867910828463733686402838354860123789101303568843840022568662337300987157052290197937574753070695667730156298487000947675597417327384473512471333005564063736287739649974161486897046345028203800086620446799192833539320032087335527129292976969028063727483978853783593840075247427127196003528714265759849466257971442781069313594705659290408165119737157508957675256072436027982367363937224218597039638338173263321817823123651620947815919959913223487249363349608923456940543158288195973632426396938393867674645480451950380159788281071173908998652187048116995877536440977270325720132515537221195000040824264940499778456914686256116364828503865814255064440763818504274340947618130204319823742406553619530703275545801003365175738773393659149593934884558027526357503598789312391074454526577323441767002404954803816381913033352243923109463001139140238523260829983397051808291816844194727579556923447508153572199359988751579584044254204257389243804199667385755429543139101233324773987287002772649918040195436856408455198273266468899735255788931085924696608495319346690866688905258226994361194109556052639509791678366229556964752826810684832793496875813246491079845953401719949889957886344798149544008580431742256964340355313677786871666044098240003794409709992320276796138036105610321152872070253749395365956435766003013905062910023061102411092164121438317194394809389894398199816641443205391691770751568318463225401433894648160695486701312360494129924741739115323719672921266899168136899451382640884015554294394844163118611162627203688110904153951510345426870694832928226346517999037376287451198430426015478349338360909957385219714346075406394722484866464754984994801581131089509198113023977716849748107204351419267651875278028268537131631109012159763297882363294639106955587900160819233140833178314854907373874178076704556523930305019164101943182968672580491767392285175297193474249687366769852275175443100840126154876106083110388586283718339769107480693529940567409802553931812439796577557455518323165280029279160652225213761271156930934367206920229226381295217107057422158486999873523807134655383614972433665835734568511494039691863308542829898796904889088349596847582650623302771821628232038680734391930205447384504851681674191055717680623544487115101863325147932951636056363724783044895113561799971566780186255794125414261010516214756543294911056372466889753244638471506211001118297422432704647733440178113230792523284096292796822531231922100586125836010475768953931420556535000842407014678614436429455751506395340455397227314602654540224270074334254023475654233076289642336651230612079639784185327899977390625390862246618835719911494297152404168996114198099829217536512112665769399522324182563505165545406428353963338463678453967719240011491982756257049596851636400307912675550791699613664010365517955846049337576799270207077639223737420270761467716185892681099279382966699951349087373041942984510034700867295161291749115587073432569438324410268224455458550974451507476329365012979398860846091355200671927792530903042843469398437414918848208068234310850280241436189154611588417195888869265966460896579094192770571811030691951323965023679228573402172002423151456748332610228925670300985781825845631100329611838234058814733475095115141709364680860310509183537102424612250599685780531832180040637625717455758386843636683892798639937262885311842000590149867776462454355913591770698759262920602482749469012887370786297385190435819413736024186745672718178968558581982027502083436886060572311843653518816673992285562408591921009644835320445665766407432090460216567037428661764902388143240801232274241373745050626878645702117163301407048507134296115110825856742648909767693721486107685219849807806648028612763441142286958718364510548664245921864807115977714189425490837716307496288875088478969955240313765994383378408334820965502543969873908234128404298270602976914103534501778428840605754606924701423174161810046697482054906912305107425491081341767518780875111236647473603549192523585538663339454835197971308176613461515905246105649490877932372965735136830849673518048470586393860194832921583613093457972614554554419697411908394023206040392846775504351659201932276012784987573230971745441178519236596908197558107034870400637995865664587655602272364229104422340795304437920475004835294926467931531654115589287335239513158238467671208994603488184358664746936066559658836702152670188008389674501426478276428166692526136136979456377400005420256304542013543533086467028513073435766064463178550562923153388138962818379666660991809840104388604861697380511307308969699566902364545644895238555670428270450588008932649460386628484197036014273105414712511770736158731437833948972321791502067443315918295717414125764514843317541715888731869287975564632519545446163426696833774361061383596575564363421022417663558324130392056954005157015354667597694758771994413311130274960585432934810996083320441555652215585961443036875913935565017478157371453625379726996912843606061979845964552025598874084912604562024252450651268676388901744542871089081168222727544857871486690117350733774755288311144919066654575240900162981529580333644512379090063083295840050509756685064416431186209166127714818701318560550528364589966604136544894013397732336850520306096504800740028694983636202663849654770944735515687679788349019260204886413493954892357136460401409774558815966842926765004735822080569346391095649443784361528828783674197827177330684045430092805710191725429977074846325927870664747479473830589664492736185911046777850669017283417848000819661678913254595585310413787387304456049153451579874838888203866331442244634706915209048883380251818538362480718791237159329477649801196204229845491102147634305454993042600789885574363038894104055632068219232385569045328524786524949450268144569934006723898113428160406332566285211233570677194990008149738133221734758089356901501896615194932465265407264361242391900643359456152097729902947697394616798247704139089215378967661786734378203988854160061687450201033330864008344441427999334202112609296225083535082101580918657367350027359149588261811749135130262335750173763599042129271911172690826763120487306450260228890903600081263766013059642907938064105225298550336686587346621956433527482188497924512949043587430324394222406340967014482860178495515412320225787943030737067932112035386735491470479843138630587261030947606982551024552051528336314961607468107520056516171960085790254830075712243358955256401345167096202258096730872795069843899419635086464616413686977894478802319291668254567082844593608026388152461530310306317021511762219509164118509857940795492977472300474949590242587023595665489443078796135073993413777049903039690002088574907795064660829234821777142098640990526986656821554381271677554578811907638100406720199230624332634517548388986204508178178803818016336455689146422066196219610329861962668364187358401595321500318890197710061125952489647993147828730314072822844781338608722597817718493774798105371791123283000754944529291533607665021660470007765413981887750009685453477376098289362261144672968578182352146873762085265901237176154586289990188982337828335275996835336607181595004796947232833441119965238413684794727517946856919490202407309570385735690587293961711612190180411014667665473627114584327860497198348718722659645817476538003989836814772262418752027341921179898138032720079190422761856903788060469137463821334904925571824705533081891191140864881038598940849114903098652043475597952198450619231227201696162431569990557568705018904903969995316699246297817396929026936722473618177960647206687231132124381855478442722442234803506523825131678399699204704208310775081124762368610005603303791055121988857018342654225979315858883312365166062965581717206474615828404683929512482425941941935335967754623012001524734318486744119683428874718442046226074964359044836167068823667627857317427172148241492092310023532636186580273704664359631634954980840848841871690142347401805238174811088859100080662602871311893920020124984460909094783479933908422918115584804950198857836847454504542435293696250725977487656693409462283446395323944121588576697762400847938790506163500180288236355731362387793091954351109830246054498324937005939059706099703316719118342393226828345559715943507189730312176712426534623688537351701755154030150296540978076722349841203490341794685705332358405089086055335312979519555364820818574514749700732978328549565716524601612596534300721821945263200853133658537845484615499357620957502075188622876668252991075568424105095923457585381414210891229645804130890549232108681901334941421317886717181519362957154151677188840611437410358645242215861892883753346975130086652309165269873944404392010012217284519290373908423284089225452668934776377478883022946298262674998401408382172612661996034213626076217101004128812304796058964974653005188435867329273910007061616362799944067869342968091031807430329059060343651379796069562165952391370891615030133450343892114819543735325924875905742743624304148028423910366603478179713306381752367675270605245324329645712867778319486842245329499433005674137271236904805931173729197321247866456890112067832145291830046546723837493440279761466966414406051202006562159441720382889331007979897661674729940944406233405801645110326266087476424890550697224747014402012129485469669073857591047750672627261719208860955900007712751746845487375824539953477808664398326178057902113879955727429747166646964083839873912176407628302961959191692945141861835268181025124178696113744428016656540716095268611675967479575024740308441423058342846041609533612401464481349245923775058612950625379384314009513657354163918680780789464705848988335480638303725078515975511589522118934107727332889499087996272468205484166895252748314078714851445218087726829416527593630401905324460690156084498448416054398132089935054263098692232541071286911190683392552228275278563140498148875262863997739433921647462868662605917906456117692606836668288183126194947082058123688631693544493003793463251665833304337691510117797549309318102657328333369261918296622367674807099700637809034478673713747154342169848419097005937890553783051903385115306442065859034847372364704098602031041829600445275691869307428241313204319678702691514549630459098048287600894692862755194908077545170151646928581522015388424800480684700136878069958418778175929403924717453510450304526004750619841942115889602704153485881514889796279379852371661844249530796305677205544936597022898940349358401482553537991915239359358843276126933504961775496012097045234395759210281536563600967191051484561742644548840854015503714538308117717952830657659052054403620956421875898682666697656568908046396540662985591947419906725996017453905273404124523065694006143111952083875299098251789219836627155675906722998219523529417679202955431130258043549029184658335990801257618866665294158258021250998579228691969062443088261252602778474861074912556646442304569888337350042988163767497581534332394269609102444918942798663604014405994479170962449162580532319822823313763839327434020829349786437620012402889264399961795330628087495252031594215027314680080954023424680615132879076081864854596226381621322480408164735335658983427711138171238432114556676592739154700631780222843161436962808061041855378296398706684084658999701861941539674300043236599981404832495124823644284048669739238824176565469422574908264396990441561778988316358379772871837706429991971779048051910966905861198404015851063848178032299853442378885232926792979515642517206956447972843228589057951728465674104502008707506425645406085472330953756116873101941384349205360499886060155732699332845561752972523158518369744861466005772754575382918776734103661823779754976269322719029729587325560024783436298845324909127670119757596383206248276365009812906807329839788722139225231128208272586606020383265497566837096680650833661277101177904383491805881411978160595741639826607286947788436682721647089011678777053200580447841683197062963366354165104060254638602136488184969137579883831271084711687076051709989554076353712976454431389742154697830709591176926894577597629306024619713232606879166388992596689906039558407553406834344258834297112673834676571423510303244127893963878074103452019333870366410159421731240562526082083700434640922380666673846653627614585682025267693838848902698995563840073931535500179402776302640094439014702550324553031833993838924903919455727230595466602843118370661951752383051378244359365039673000976782244652366826387495242259329375787420822845288181891965159646861681351342858130999578867501797135447974763918699386992394334106705875219522785837514274857619481287964969745948243626230874803757527574931303049233115112444971337617654053116597275392410615411018098749027280673979282423668252559057474872279988247038399053888025036765456324998093380435987269940758168416184121086499707488000091710857530959228410496238809619454068422038283824248679303618705415536425656042514543609141565343532752733825665756990181000850992354063140697959811327810345339127250569396212322104404439761605249203362167443955490686216379660178961968248589222786553460686684415852470692151817263973907522018199842091482196135220613288386415103180834588643536690552751972117429353326439340551637502355630983547118274616105112639081957516213786104442461262909582967586183988848672009413325400656441137689444293303867183494865181759530085287378441730590376189903616832730921078214340492683970521936095313738880560178966271628339714344913617964251608634726609849180943587626529171983419971744342379867698104546085149594932699852330671932713234519163860200052727519619349758655361820912953634835686149792359931533939256706782676402401969594326392644835170937536024844656525580522955731887425200857402134124020467818131649602843434650619847723612414422671682482420154478586582843277789819930088344881309179374158247090527551282656851624716895258596890652498819541296751354234468315713672179867637407233821221225843177433379512580527185223299702116335349500611893773206544441087855207126306483835581126550242345319299091686293215970740991872337539956434454906930401035241335253940705365679762501299476404912570923224484874858066607188499115505799696679576704287618693471552496376831048426718153300944431844073680182256587811053116551721429322751132782808492594681512227352350068414040945455216694515591017955477766756962404389499914022827886555343307683593594927592354564389236800913523027481035325782410053599697748857096176551820253757704257752591197969354327583614598229162257156042479913005376566846225918991352742983135442011893009203502150611006941107329343790117559850721969772557836945938293338216485157028932661549197578694158128904656869980946292791277482556948886903881795910878861084366733130134424538822791233819313133809000462542881112135465862699743339831170426030804346343775126215705307303534586429068322449548418770271001981496978909053046730254480347801684850266702282457370824639123636727865760703312390585491980596842854993455670935030810756269607684819497508262775725395757265579553028682177770960091413076864099749262406654890639870441117359934427683845203798788481915472551482154087366903139110680282166953705891238372846929320191441859238751062609083108587149790652946168370386660958613015244841814246082957494338316803130436374797174177414193758871314188421840484979288492704696402114502379325104977961500249600411165514080466360077541241338687781612165618731354589921275420333975232306968645468360688140141794050066117010400282210858805590293892865470432189948715426554135164449047949259483088630188336590255576992226584851006629942689187281406177732961335677493872984018672353859026724801663920367466632201089663515090025456123728052169648005351908824315855260155415661438022207529601398200916080545639372169179877519096102955400943990609125967799953112662700514737419842127108194326140538589731373704767861528463970312335221269509853378748382135974239923065931823639191871560631423585708013118669519572152566804511267205020901132442637403091155865784464441546033987154279490858233478471774017815646146106704139440850548211407847008467154927400224730216437901434326333110405368923646550633016794255973316763524583043643560529803279926335193461861912535795512198955774882312026224994894328933509345827125434422752521585889600946400544461198640734986019011193916857291543163147246077563694969731921083401663741345841502218462522133512926765282799832393528399512440967359561396350917931045193530686633558880457686459688636662073524847454505940791431151917095222770817267893852801980972902096427293486345171195931948991252877654600471303712275903321191786128100710513831006250812384196531883693049209556404133054841528134103534195060340416646373830644035826074475261393228665085961016816361644093039272996346150520163673932082957618661544122717949696602542215446597785692353237965301372325150792456730863045785779239551238061438728652172825252755235403465487814567530237851717211073967123156177210186709933295524053902022201587107883198403186295235497417062836982182721111727313285137636008649770030790704703925952364200064962224438582788008170131301454099409644553336439532063185235153981167543926285938170308832096088161654636767065874264661856235079517323566442760675011297445708426124293779274981176589752651907965030412499421917613417270177791184323430156936823959398702587273484381337558126376248996859888464138638741478488319103924528014009975941404598474275583004338758637955073334338844797395520576376642951274081369750243213329438510728655294109640929671099408883534691465372065481185966938578934117923210213267661853274532637113694722323292959297944063009202117317715870643904515777110631736638958415767049626392654966531139013384214224909976939117009509573098570112554016963754857816233593016255508169438731041570619091271934298287064277228789769376226790982311857929454320921484809146777441470551538681216905310196050137862431152471561073339677085441653731174373076823932783766308477834815756059966643647807131162957418852579586864907320405321805020659538337090486521377578319018765828278612551155444443284311482030203207339060390636037033582638875741235761331873858093701640818890086995410106616202162565483961947984373241975173642988142368003783808081035099631592896844682611198363343199805818060416073144187725961114097739077684757560703919531439127489467966800501106412696902692248262267983454462359798749562508717137063961915007183852008289530133355327962269604383422628389587791467958521572919062561975401182399830090888031506139564373845556146871269372611090192344294422952331829419289675277091149795582012097840644897067807524180394513884912111984800312441743448349913836410246952130549729528600447030219475734780977096330269749691968671154642469683918799040151875863000078605686399169250702402766618738606836584069264160826265790388973738189712407395555492964899461521966470121766440373659942683878044994082665307722843517659756060993272408349410878766611071496231154838453041628358463939292357932234417440680053144330791304341997225921565536401038221591092685677965671576451855832421457168321082368043054251901713413298390425021161105192734840536919675045294909187894219592807949270500835038646052125367049322435900398752382274438496669010106349135722436877021777810870081743307012176884989823876281870035984876598318991375663720878582672168635462647321144254137645701001420582221115214828451468675690704616820994913054606150408165395774158739649852481875032795338105202311848659662987584162469051833693680875870899609846367044223882367404988894187219698199804283034942630178472975189596585021726522631635258952224077970369146986294782631888640670454385130808545923404766306974090935566156216394072497445962441497795479342250904366444226297315362802598358262340036122433782086644401236502981244853399779271570348895693623295729831067821376577583535043920990808890640233505428482361582249085688396220297982472230825499669024442577489745651891076521310641447618911188876905185991452085643947300818282896764947731029488118993975501788013999396633658938949447131885757102124758879336223897266538869402205809628756875104114528502636885317553133645354444085637841314876502151668964728033882622860744387587514668900832908249100813082172551641280141994233944480494883937775564857422716942590887841664480367369330060048860231648552620949872952667571097084329792898027664816701485368160789564496325365225433167972813005440978744968292063127439602513164924720065346360448875144668626260102743720244780375220368843461900932112793866223316832940727722815855990914611579188840258097503264211780872020796216508049368555467318087913439960857923338038122334285878070364912201968859746771488421128079694209305588341205149628013013739552652000736220625411632211506295291003755169303356731177006772780226819673004590247363669811448250844234386144683078967002710057906607636057786409246035159140142162169973198556157352922262555008083828289717944719688025381346232517694408005997931835847739416671644353963170915786230181048573003251950673661281876026553457184182105565919612977892001188294297720115995749968236694564056397859436057793181490134681443553509147857931083186367496139557383626434295398576721998173260431122102470150819469990677428399667006727828180013826999662106727052049054066774780772044847350788561204867037522083271314153396321894697237824025569416081142350326010447297015857785466343057186605252869200696538080802223104397165385653957266621828365422393382624122471804659158854921738739100211499074471327131487324023204158773982110362608208713705767071851242653922290789991204233260536968213120430965700916299206604937715204809452230075129233216457470778617863625022415144848370232077802115810436812819455734722409313575038875375913503797007808486928313131850268928652804878962475916382063839155640850482493877369563904941132660171828660071503398570066277995896617769525757967402289535768903843658738877478487851023234214565997912328676356968730910490790213154216476958955506244648020375734250385479028594329488632760034392656237779206200879278782736100690974835349496371853817178479163568271686921968007005991917000601492656225656461970365278364712820495930774072464991575764477674396353417821452242810290485084014172107017135962407572541051606676995643244797912871653436375799852952359966211758484968594405418517424320731083896181892316411558247701608700489938005169895413846673184788353585086177782930020713993750618282005300009212126990856858631088649205293007237932843313087024914071143248117743390154034395891520955510538196986123479690596983442791178511570469981123989053958831111203315807989987805784138287566934292471921751994912727961940221933084860510317647531843926560454302992241756227253399057607033617901746910661959671574494483078587760690615734157029813656179220230893763335134331753937874388631861767905635156180867229959775577528925077950615073807006234733595901467882515015049172707973068499267848285230368510434211594207107992248240260065000341093784539434755498265134677680054258109756626714606883448272752597188930386200009509190943982017064906392456358106336920274768929124614370886356230893058778159735813226590190584295968262791174789435941237565609374558949763687690657902920249569415060877127644234196958777311069948633697351627554418746384095679467933507379039664717116523816800710133585038980146039005071091383568051431645905473055710998048541978810634173144861135278391971938019514477386671401229044949946094590325008062038325727016695265115997763030279475765153602492640610783711989418474141194577462460496975601891335599314527587766655385247465324546858853242605918288151210197592747120206964137571065179738969726690741170384948970259475049333533757892566054692767526699682331308050816459388767355211882830989661751633663566505143839072841031310869918755516782982857644400335168486812182427046025626044612604651057346451127144348683871240824058903217146628012240843848889002181079401140318557577895149786970461968235052365550430287474386146744445059954017553305210762972088848551296245642259411114849171070026636448372028725340109846756906305162087250174818898862781847944254041802724592549324589640726391791755277130883720516286013993038996994364935842923078725556774358752370308928832533916341976334889274706640530594943620932601606249849882697742833863717696106530481443526575851137802415677254707995703745392492290320943007762055632393616908472004503035087355305408318503610060285139793570412965705760658558531054945213935961910505692328114666828292747838938151002372621735944976160655529648639965467205493885819250300104433423454751223589790620752461765953556006120935637547962372078178139970690259849001996892711069073179184670253705925659478223252073619207140628143161564501947676138141062417038313819960834798504486386417474041373046400109480832908766083752871753283678343352800443113519120253048683135040547359977379003609033471845843134642381431830814168941365592224147523011750936531068703455029334010321517740097594214182264665674716984054200579673895037771170912272831252036582476426238166016064802702358475439040378819457494104405958659756518208101987281961437794179858622829989008495602441567282338573931836247691658665798781394155848083207532930028517028371771038358680128628017876134253828828673830638668428031364763433432397879771042123398666020590165833455851351230439438900857728066772501722506688904231084843729161037375040709678662746821439908014718765198396080807241060157303491102773638448109972807687118464887098573764254232682801126716110379629015519767860373864772380155362196249710367084075496751410637166931105860139566378440377152885084356496657114049458238341189785021344277519660581643371537481783289995668853812893125289394612194565252864464452178118026956297188462685264149416590134099707715870516791904036380843303888477760809553886978024255035216398959096484490865497626633765596601240083029946739324811982002006262822265238812775035681449634458969190932547908236739333047816308880444368386572130847794988454358850390273688496365704867709478563961994072706062797111089557028313529620633371351750023744255553421135145511830683747707120528570297808569762633420571159336989669212645674831161047815571138998465178851995536731598485240210120175156400423357782159623501631554065588702621916804971606755908278946432856937874616922104613728160357860406840102086397401499319087203982402512862712582318717435155295071957501199763724556535123953793357471861782227493531994302661301671524751002778737478724831531349474471675380474847615187205179081678185499228849418486105526257803852363875143102286782568570706821745079141273368303007849803695817525566972325910258867243127534813175618190046923023543611095675050383643472661139517505342323112118726362169104042926445449554250424045596271514779754956582131326909070084251230204690802911535858162808237501811234001310051975491866271425630579464999723868762801172344403160039581624872634239818778558016982755528299082971943767796629172323389478388645439758833808554543438064438584646307522774187507351811347756933386709006438703120020650531362583960405163271998397024157049999830553812582777619089798473302414294862157594511111568639794619014771939613300414757004268873447914878453272944091950597921967557885114971316797726723559726776785448571750940227496022787590473132093134213764116982358620041188288342971657579579975203335242413063454585476513171341074008306511890839163143049561141013786085496688792991260491937463169172547686615566158571700777984939337417674230272343884044704965616745112620844844286105187363210803305476279341062200606834686965770151291713776276722538244997471572588511686622217451599416001595153734378913630483088624206812949484487138600480625967508324056251001775113007045834213058034020934006472503605179258216291306532891575453840415792059426110186230885658615990965166216070924371919345630894247292629215105232460872962089733059504568627600144519218734371507914252080624941360015538278855616953757760726184898243441514784405409698222989968095748307832827718992621437010604205443289820684367664563598411013553672272915297945613680458351760454382673788896612939690392318187499717483605117877499201378351402329737272573173271279209879699020636603533230096362053711363863938535620094347303784909691361202681250239948136954284922757007629013621030910968693930882035388705332279697031764603090634198178828181298521356135526803758139006093907725092646182782444323067488914271972450173054400786032526978662446773912151901539583541863857954773541218897167670231138353931694220804997338867397899715871865090983380537756556375833135428858291882174543829104648412655930594716500926440662704173440738628184600076672010656430635471030850209762127893360962662828628156191736052431523381402279753093475639185301259462503112290220441691110136773970947728728714305535706513523507956676241630912648505367639446575011867639472696513701569700120845829304283739880867995452233017731127028945258746529929351773819588183280300351341594184222411773291556191964355649883837064807219764982032592319978459747447823978912111819255625410622236944019985913304734640408345645426871338045008097700521029835573681634561170593092968746015175611690636187894035193964437988173999002621544151265740029837755428298205829834953149091062060628091363747398399814885072870393205844159271522878914472273380344604508988501516303381131658607066243131201323254703257843702836478905407607544477695013613818123327612393817274446084631074618091105742830296621130905904359153753957018857256053987376808107983402988034557180162470910464842874740803009529120483512063196531443383413823293344046057978453633846556671311491569420684221451137259242219425618352453677081738801533228347767590549818720793833928443538551978449590675559709270349198726129859396498167996975322329769766726238635189361823416515256670046096225273500612988947757236733034483836044027026909486501777309331312529737897349192109649035427916278197702745416788397266016620609719493066751780790484665947281859405043736381389507937519556933762350528435107466715466693600428282234161040366104035641227971275559757426451811324029510758557491625462629447914832008576032468582943418727335867689433199744622692270299179040024978737140604694634355976832908514963335536874693384503383739651705650824997327973986307440109445142618696175577709353450586776617943384818288681993317003160603822178898688819428589225099724929079495116543461407356683420300576688491102611103492187309706054938799880976543139347027660134794426915054787977634245424067021739239506483151917777661043200115151455933874471797132013994800105615847498635176561595546149073285383752935227289871734990338490793688806544618456148828133065833066624049318935356241310811320119925443031165546621206233060057370856419875955160154855907519496945446631860232924962387580968354269942511961338477978515489288147564120207244920805116663746020516732493598681262554397939985325027576090207955598225128160130925400565400980864507442479054007592280468814677099312836912904670672061192676313018453188600247399752406740319694344337516630039847645471706156950612382000638644505103102293340472758102011504363497661174221776622244572019719721469388940867506018146039923393536789276578330195041182181316442434843457272917858685340392545448860213500494930404929903788573542208926959767032126024481188150656579373483969042737685716381005827960958814516456125039617086793040202456992847246856746907707716730103236014218343544107726487645438952594476947392130690657237556942104418381520192104111342575488782300840143738807832491310949071526211900722753662079533060178199861381234913265946857028090347648012638817825586039981806301770900085140183881672876532028403468000097422758102764612806840457643150505625899265418043306141663310527272876344578155396969632420368572829956262341561480474749535919818001137002640141023344665359195651572712194205476968086913157770783297080011985559304565861442723916729704703613544603192089971461616275637194014324614033024256367649303166484465767209804715889723382444956351240395630137367365516680805918739500135097726186201760064566988837349181180346000296155770904935485527542178456547284060014004283561510861758190993926994498156509964680178925272503105676925044699877070073970970940719911001485015797992663791467439042051165526605165993170163373911163516817182806232837205694260493427257530426964655909201313660639497302816775007907862674799787289712452147677415349874937910311711427905536462907400001272090641085143431956714540858075869879162652178028289432705997073666416102362763901193233512225222372078696437365639198031508528794047110697929918019762117122189556197139567159619653118055837284210924749056122925985069897150047948384808643880441394499971337977599219836930562407954396451287379125668542952844863421355300341175992283920374581936872727657912680631392804029728363958506544390547937139398193673220458198905702389616604548162364724980370401049087885683635874921758711649239063082894000906333988739462570134633929439601087883584843351847616023901393625676197211709699159390960848267762214542217680793315263995397822039059770578193317581556627853158302711424274590663095228810365957327338212989357245578649410503303184838489713692253337621126357864460313135909513268309984627326914111714380177590766173319725817843256376526803842763379798192680532596825493505705467977721731393816474946982727335194584668533590602479098652075333536451582240007956598873553747009247602191484762182821285241210126682133920562208454286110736537119424412917136281486040343782986449070227313632427953660337361823931230222791434974505694833501433686213196757368778513838561840843613944108369845956139980424391397291992461155807710146275055380402919520297813865231281234621061590042487674193934586708643199377226534658361722022837851242320375892520253767895398462173481978442777975498494227076717466938378907041183204496396983252043341290831963602635098657567479738215445775624527612732672563739663796019253869335610120992574850488533183984786890551686033885634710834621419344191335211978996888086297036887708145148137250005010842978300620870906656884662877072478719217908127294826143440794365219214199459991816544144506319147577461731281223596689145795705642201851752423012254700116268554452265820579379443448693663357180473200567295062488449671902015737950819097720684589519334318897602503535917288767204647227364681952504439572621005680223364304247916936668345561112528125819459805979154615892018468530131581657518707774508222274893680928946522693879724748401293036011253854017991922016773383372196423084428833319520270315469685450190253249841880968946274247239795521018766017562963361324724618344048340818861733136632269190139902156024896847369374933462890433770392341032169726132502500299300861493837150754122142826908342263299194437392070031621397643893015624997838074197248512277862570281442760648396594393939661755560605713275387439836503407341606134432241235143936344144281610693386955385129092650805146246248344431393723611311184907727990321782583348156395332156452871085153861076106854049273385178233553872753910549064030522679708067488789293213923746234020583295352187414537776270833583968316292913955394627623021442957797181713837611991115132276047184450915834850334949430827637807490314285022352902302226772970547369466305132730802544592335978985467082804689988411699957047471125145696631062493687059122387931765108573412344801201081737649772820911944212167626762710278705939548776298043202122357412112010799400438861305435254306741557401625035131430521901164705932809255648897740451490469373479804991588278254302308150248487220656331885409855683493989837203960463546637663055910856734218502176773979451565744527107954735563382504394051447945606179649938944899238379883576042838037287638851605563787057587646060718421222897163421678446892546156964162359143310681232628990270975245903677512733413698334629492497382107913050677375450671465772048889682717295254329719373334507494330271692523092807852399491449915397355964618025023605618595151486802390274534435845947673404199333749489289168457414431371155027050588126903322487690033039951990154536482146008317237138519724969706906146267679618516360325807402040808275527605685464720501916809385972145021339912973426853826654119643415808138038616646333834410048762503935994073104527434103657482103754176845276514754048999360277485684192723621317376343896919796910733691981600393108678993940014244789198312717375731395434735663055525915232652461646650156931004422528027934444598332085241957419358810983496742310129302551789084106818205161363489160452391624457801473565937965838444445926472718872716949884134208766982489731021731384940455045974816619139829734473441664045176445578247092577876399358301250042179028032758916658516948404701289268615482290562150556612375535747171724968201328498494633934844036107622806547122121081460360442926334476763907556011517636096215641889624772957063922576724438491599590772238374293196005174558316271277207576748521348142155124678625575054435624382220309997198364049880232859101038745506475654740364718073879200607238117599019347317507387096601738822195964785756411717361621970511641955793183330704057866865912786283221142284657061019893973503464304458918430375235638966666915227313616846579689196393604495899137238708725013215549209798427941133973072005677394333231515197910279062377318093509759414113133347853690863392690643659412735980443848704632197765561464746352078742912798413224016787623771090488634733457463901361581873167723409837998875008357225483768584067222085440794173172113268522630546112449169483009721128410574396371308578261073177549381942065298946353764521252379395033547683617235923601200819020963467340005836405015850589820382473715566600751218075034955656847534782619296894501275446009289483293288541941777093248043929757055574947501897370347245796306296601658184556211982456481969550180459213311827638881296542529919101072615141784848531634687155886007103701914146107627577518331205458911970349970008720142702535360906214049712995041633844305684375860444012338456260072818592488649933849420013673199281929474716325347947897873064241976922638900835807565542729886958018826655658052407487277737212693655963836013318048352861267502840883042933272686877856832449851130744482942057645014355296066065114749617087232732865947004376623777479992496344154138933124387156873516193156758512918929548147432015121627428916311273598694668618754112898826941089855794012172768146136040459799085281838538833233854391428426886370485465444873971968795506595397385739256180170945716315546081354535159558143433350415939654833393939856822741629126545931377642108043417462159623275035444305365568071510684171798370121447411012332538445531130817134188478550004102534065841942971981207851196518303175543551128500840653121453031498966391502955846516449225169482699790326526459840095347248421783526675613179010564769406045278776434943262885005253041982117847280897510489277910042778320166658310119968070663746894267724722981815421655756615573356079471364805904781121525363197189448935485596379434990275066453082678756113715984656307295696871637787265966100518396743111326632139941081560806928741261593579266104909455559507927793292076290641150769974133716705972733116993154419637599977722427874523245076617660016230249459081048656027991458738202700715031241676380701451682154501357965510415153248360458219318138384278085721696136750354427656323373959908870528699200385584242086271178854007081559577880276518198814936189874336772739906949859803048875260776492800221613145259918183032059772976030527139111308531393435559452241462937515800339532073849543015475872558652660934579454815134066391521543106507291966078757838901857814233906091686493823645602427150371865110597062655784894112687841123340811564506473715310574344029721037077503910069116223375295093447550607908440101899618489648433279677853515532181929132300231624750753434539165824123873645593521556349274740979534379103672621303641059492643388630844646575726502645350275012121953444027110522056324000944908044730932673913436154544720946987416467048342549425941187838856431977626238832468396343197590939009198170728798040021691216684073249879060740691510433868398725483496125601534375911553905922092362496073108281581778691525614465980777026268342082124968748570285880622622746568765172523063428959401214313716619136781060540550858138690424340498084416423844526119017877096602491778561064079153514463436704740470413854602551881007082731626189487643822098701316927756096292927934875797703210500611367617679297820653471618543476199208202866705437978057041558906608158033878318923607789485251776841827553663168320595972056533455993426047767634440448075351180390446256652404682487842742571584724590477082046220946260700622979182790833915144047478833003202305347681931071711292367822121995157484929056215374179248373329173825221562151468053080328636418310534258025276391065160883521087921425586366439282053589727932564295518651896527102387865191029486358614453689196574742055017206699906367788378581624808227273753671297418597279166069765951954490818950467578917144381690008825547290876280680970989586799359086047174145877348857031975461667783565554698329392646738843175371483650864510823046405244758962034311023434587596595579663212381873612736037517120972936898386223830243824208244920038986154275490648155062921348399763897213471718536489550606849059104829949367896578562507687040582525267203996360026221018021938542275634250416563501618223806906303401968914522152743110527734548304624058906485738044605610421909110487882302796813484632526500437861733302385067732327090696863144142527397624919492483114754888610680720557800809436914306721934414979635354071196666801590616568297895849350835751491554124538598330821181683560822484416566474113892649751780879239219677821154278079278890391532052525973709113187191359955477724798040571219521437802473548006551480655781252491179152612541401967726186802231807299948390777425856003089215617674162516673761517141784816024716732059929521332037607426306153991161315994240887567251478339147051489405920659750892602158079652853324310155457315292386746293229246939331621475695857964535849112632868467061505030485208314084075862359394815593309632629864668010274219139269143143965170690285078539202370608537300126483288678495266710489124998741728718949808798170786247845768730296908336247907951992019490105175988968813822286603944700553679152663615343036824737378336583060804034810891321802047259130111186327133365736161414294987406426114509781983467465655938046651007757839254609883946510297532170658171866657338870022865040441926242804140917453381118649844863724224578347407613297201985861987175215796142133725346469291852188803935690285997857525634976937128280990613518408499980108914107560244019418089678203413349189545340617810351688328133654276920571492001390582043651811584634338806684935662581953194196375096851987357396507758823812563682862971236994887987435374618617651863724335089248470711293716347975397827712826413318485168817714353177053291269346722398431369816451261288310419713320338201633070384405031785699464107889759026274280487628319559679455886454639605811741388687514342771884909938392696801510258505142646316899376336717128531617572741569809165216442081632818128905486571380559101773196063161641841647225945497798080429727062368203100112644536628710375459195120083938995520610497179631348409905116141062741889566571177908988326129661445775907860775941484796884050094864520972258459803006250261818173803720718337316412901222555401603941497520725982824755619965007843422179562325613107233171455368175871333522296562795682694224417503504915988830595264306490029957483868369430932190099550282386986981856371022113033923484919429457724720718145655195665054061020752160075835505976276460715070862840776675013367251083860449933105736566372174054704556296755642444273070471168643741164653776956032316388297367834002752672847114385620692297887981356419930585812165394511690289799632411860571168584965749492826054665730154398054760164038951215550349248384662559937445122358607714273920192815395837768615413760285030837781461559638289520746052232136629145011791117059655736667652538099722117621085891132428262711786606735117189183727319884219493544310940395816082898306285775184131865559215062162056385940952842615262128684076573404418192276705504285835242374723030871786098438156239169824276615430506180726727225995858544235878237705302826109268997752617958928446463987719836949374750287796263011087728879894244600376259200610439253099649621566267219752962248736096628889994638096363850147681947811417082912429680795253722900842135447329226875517303734778555101611929608897384756667879406996260101097249056673530446492096057718450627650404636452148367800109492531571190304853795387916040704955638426639810849633121278625712790355308970215334901152970984316301698599467277051111841553243660380175858639459778304548915514724835787926353494656444135961298104553851551246818195296946274430362981985071419905855806468442404975683937974419336425086996014111278806907234773793409027309597552235994621431188414585107002054754408873995108961575647788223512224150903542344883699210063816900641290916459657842443219107594503387340687885371125090739671535416741773391807515144824238505301950905686597419303119226091169861859656218832934899162050733454949482583985307952352220857315486121600877142653454795625085935433318063701073503607012871131517984320978596631693293904532163071737776401938487575899832021806180206307049954852155108392559225702099287550755906513522473406181435052297494320704131835995893613417051429428980830272196179606894185529250352186304150353654403991215175416534130273827270860879122802584423754800285951875543926882059328900547704667270813373101376376849315127780736493318385563499273440226679862756190727707765599409648254731500129710146896151987753162302788302663513346504526273093341010571757476352470459031895557524520733699549222024005371335074725340787578228383462762123182979639251425788816859404738655611427600882307850841439769185859964597348297690390929085115753331760396865334641485301640862762026332439707957401035118699189277290554553902277634998296031115223657748286814729654785732334168987226706253559846460588491908020320882676259192644837106102097649004825311353840127533635238900638281091102793909531690219328176477342177108976587509577381039442218512955109330341520753219686711488616369807067212920479050212933910119181548828369834181749088686524280324303461777216549660195117739729544847337759507112629523639605548285966086484243647567947483080863057774172568563314642612268574024423742923480880674129270405660929214650399211739087469718316082727135287582485093503898481311569476007707316092611808928116747282667670770548053913855326809444530955446095376646042915174443386034533468957667486470008256372631069318145181531511629908566765040466742200921203378173523381067983108677766294598943544461404627698018029048768426065662339028885652966062340700966719447017906104597738218652976521887357464111174714555885955913337199557314481400125492582957001236146037640183583705679545366739711828383110114483235026471851115659339916695070528953669497222020874812167663145737522082929285396934596550257943523623248154664628445396010076882220589985372393744724802116814398855911124860205045703340726949297411367627793768511741232325522338481696040233975238786066508769247493968162555886034076811193097874299290625239531798414330603367136108020871200308008164295359368687866324343068236933285528147156766824164506529777950362093600392335025418101856669206103152563844318720084645181264847592869058143499391582015191731540517246966423692489215270127596813274034693966435064839474440528348678465954933721762300073237433922149353932062147369288033287365725230568081457707561386117361632802237431808540254034477914654814832461068746748427031152807020155455035742372812368132109306118692405477410641791430617834107616349059593405326325608982681287716274893978368747686531518637341309486361090816004831791833780112803061236661124110358564655134862926920809450026897656195265194982543434681690534217775546990420302096116119520211366962381215461929432296003213847206234797715059968961625025735576075121678156060697905263503853252565075530981172042433283051171179810703231288714420829206058647603789539396730721450873859659151838606874327767240649282493918042206488618902601673629653747433883761646912199605992745760128591701000965793656853005268723902678381236198103311925552737100857235356293394969757205293373423493348101476370756165723540082455275611856198787739986776744277336426295925235634632747695100648316957867195081395395722419015591951771065729699067877242843724207415469195401957569508084552793201039311214668107103501061541583532305182087378995130381941353590044877864299806294703040535182841685534771010243669908196783559507266512357971553462520941000914307056760188550272395634864098783094270222350805844099059755409538851509708789182643228578386866019324602702017822464647389728465100608232996920573852730324784889715562735976487392869903599381861267144190023483673202317315832954700105316581541041933747838263480510309765205571806332690046693745961152878908707018405786334588197510114829493024455657922897606377655454746118692273108942652774136990859278576814138294931823861044531089549193263415536055105152158914411385507415766373043578283752699363111338143961446470381354958285904484994194032166856034363195551680812000404310246083605251567302778789576601126219301178069227118219770985878313467151581147829219788775667058438433365976910306500762110952118259252629163442506093234425661443270220882504618613508129612186596241134493414546650240634394431159639875995450136070334250776518723686804464370056430795871806342220164475730535953113321629197569971607506133211681835819045814433278195243276735052114222162030773511092444101742277031005670803956709275351997208308788637559779673333162782482192027245994674631983419238282649205870531654470709482415090421638386189128496126279501302554536264367931450624533450362963088206393444229053004056260435131883429073469039499855574948420697240200461177974797982007134980788392279608000829194348502957708817404876448605770889640584066465532146089989021577611336561838688549603519168309651200639137372950907440000506015911268875089624499064312471780006909538729383921875918220942890833018760420171666374503819248158859646599794026677457231983968686242960286091526101302216545967860899921137465982372444652718001740937664013425188204541343944087451525655374022962630326151212800775241027471022653609380884057350127138335359037419316049345904690099587726900115265720290083774056849079964098804290357130908990657007446082190579314230877661144881303408256822109202358213131956713551238432108014018398116922775214968559392595848072362559503826098226447047892412955292786160279162246629971085673319176466059623201778442199598930405614441484766857084592533817003501163805653740110356717116712979521192854119977073788440336490952984222110994962858357988666972195946842138759915531491936267292933967035171666003265522118607720164792702060109443213980441327762231384305085049330860046300905660121045069371829949838102750072727434552178255909898263407697409647684391640190467073210106046557206876933142687961099700791000762199811485862475898264684311806317013313424833876106716146197820694697139627656366507717927121792767310822529987809504586237278981637916763340074804352241104152606534528471529364891687534771240788836183409676670511444715448740367439935316607766163430187753763978328643557297813372159240693494995712440528305809573934694686575737747005474937130550763123513978222386943904883278238949669100816982733454253670025721695307543492028242771194115595490481061663428507617913306956640007638709716474533976074050436086079735687517303759540229883035441051620969731492075112333885262444929391293367303463536764236371712933544409723647446613305305474815170924759162113135014815208782600280662577354919295939909571827994307079323497639563146620444039648098630978584135695707454225355617574323663885550299595729910662968624380915934698220182236379414421431225682318400065747142583185214125954688368064982808871194545033434954052336720885724415040479980129002932058637809651729847171890275620658802163279484624334192183397250168606748502517799329707821899288779524107360687480269473393942810475874991888763555468232487519405035252036593556828947092497140025434651926881863997063248671062598155950548435103644383755924505162697922806893696229297883163540439315430888841579010481851434073642667381739808324533775972840859063875651173740094628057698867523134532852091512417000029300413860491399064959895486838117466914648414499679313769471906806730248304471832829395796738951821591419662774050995023616677346324984679453427614450379360396932916478593201321220306417897730537964888733595029682540236705681849098576493448776561426816425474608789009130033831989022939409437718555157125858115224072445741795719607480062999357759916633370077136330483910911914460222552010526133287049629703704666210082337270865818934400402814174504151362481139736563379775669936105776972955142948398410926163904453545737800641030801769229615452674356608822833520891051765451942212955931915121642123787731745681890520951633874429688356563745466057562533283398874121514359737091528915581838074589550538289130813975559653275338495934022414410828912172809569519565752664509893372318731799306238743065483602043704336199133661931280182388768126097884952378574660962690710039977223334643314339261049666062931221128849171735256598582982825470143314812384731437313120926813051436227231236554086536303018988607956926750193921503226027933090369323225543886633430703912705973355449459083860504031354186562077083148514114333493091520715144972799166004591067282385309691960033372686687592771695235516549504285647823041819650599368406616297940138078026297602031975986239353445270264810158603547919015225832906840774974162721387189960640367125846508543268541276218153129502428866966765114610380950593741288511562352376281448162461222296436894544851676290952300435070586098892327996168283214396094582049027968600532600467215082003663513681974658192392816110545477012598955215114821370468410737401751528468330977255538223860058171544243610848282749629072174249193227032241998271995013020323110889939413825912985914259374718798407961503696984561648672384095437734379384976093318675360828231387359321756625859218935573617045411776453530790392457713899226612449816999552518002577754819805432316487636849730574769344577767469098988633841791304390604277206282967887436162218626470943757346693154146636371586407461081670261651644572264025448473486977773201100833245465262994788760503736622293187141784340832839266380395791570258384356016404764149821291509211692318361167051480050365758938543920632858799922173488590678904480716035619549444221732068210773245760174725424207426969777048645010869270718264941449377901773641182415883526597496100396169032605929911768809149468732302151611080679610843758799537770685597381148439420346995583492005273865898758796293763196680677509610211032836374064884069330325902023778329982444334611856242351933934284546769741932852435072493829900187372974625669130753406028696067382561918290511968458635761508160405903183803914700292995371360392549404248148302501065613441440452591851985631098312005722956300071779923675208045727311613939981613352590598962911782008250653375978539961440994229699890157940481286570239734636628956273183832455029704942739327597761894786651646202073105571091623443837636236349140242882425839971155304862946496726286614585006702880931605189317224822182409207338918989272030166630783314153449224918390198965176927143627030065821434232325760873491230060573756741246571716762045300462422213557412629910211112664415606815087611735866428687511265692448238313249319039514804874392167897924951979334553687763457897746544698389170395982285468251357948148342377903989937989472177962733124907426391394117079047248978013830509483750497942938138974178958987107192814335740440477379823250774795870990781103181040783390523854933185735758886856916477607159473027462553596478108468501366334326696149425957720668512465216345908525247446041591264309477467775821326252462775061112790929289747024909452710029376405528979190528172401173998358798529459354419889386574717268608820466957388368621508702868990433709441086408467055302566430186367494235600427592584129486143540595606184131532690970289341947393555852660258121214344505343623301906329088845986338627756396870639059908224123444929391630569723043697964678119480998217826689450880383454457408602076817217879424791084655859666801487038313556340717230801450513711046767570411168182224413908007960197463651043774886935515613183123685480332498809699873183702231410266757132352553162851478937924265943152391045604186935788930263950232847181037515953149990599292964304300066946674545515898306470541464023229508366471493258545178995658588101162239299980094381580512504097077658769902391933786682982652960826575337549127171843378906086375752078990680442503030703344296511878710221160109063251882125525009676934640782913503573200449151501585232324377400782654156279594032909654023704714653486902050524931361507759988069668438407109955935202418034384212316304587968938912190603540052411842127823581748867577685043609395136274911522899576211152176716529881622291063428631431240127904934107652008786309724439230003144619332043857512254620054853684157708593553564302871961880513952690364513206852552227501087221845943648218962508232529642352117389050207527480417683374489148571066848368124878252389560975631082116503559389303166361065450604542836158468882078069104742306352719487293166292366410964218251254351078895197520472525490967692250721926795915287953013397917057495279000610964642636620975468833743360845731902471942289124778455463745468625376201084909131765516091116712892690873753123838552373820384964521682329551967491432231721315342865378637868566247916711356090066752160017771794184665789315492960187842057171247701055847106053032475796268063804090223621346241214548537811248619108061111089990135068752751481012506482247377982129920005198220713776822987913809413814619249191569204978700066542684562846685556530350975705220815617188188001174972697972798121152118901523444612551365524396062863643094012129168118806467838199067041235250190119959846359319004974553263597812578664136126152632630082456475707924785200242937176717317608042054409812818476594581755602792633789621108805818473377628181879376080373149671648434307335445567172916848825002757861891146738306353049838288732965563259305274132641342803521854748943253471874815606136741496648667364601367686369778187819990644756592676675020806481476640359095049308169086822731964110935207950295840453973536920962883471884306774958275790553963372626667096493216018457703727142806134171628505614225953496325777601610051318768825720715231850494108933924565101545290889844210731191116812356832293846533159829063473363635304556910221288122910909687024136528122426868151261467119208978998986424165680433463951987532295091005943212687088220160752595311658373891005239125810911796393162245553589213202409218227006095212197031679506048992232392372410100726765585569421769507666371965649355208862298935910682996485342885200931783712008427901674219888034909287626437713481673843090695718712317966227314800082047181669141611677541390705308614531721652450917128261952758960693347068654267993227760116326407361089248000001671377346207356862431512537358142519701788765180749463549955625813798635120455514271042222101723757763891408211796057924582229945913678565747724717193565356183031736845072636660793014092517133673225465094825669358981119769305413748516492935929304911615596489609102000351595071316579157579652203850000714441840438334932939043835433883473199141783305858678859762292350191358474014818913161810643030560473157828956955760757979055310439493294342441681498376628185120805148509492728233858625261213252800345854429263985389070738777682602211437564053567625505543281513507610282117407539197635844867945495343350347807759929353252159046584275464223576594073066601003106006737519362294944687356020909988971717551373948375314992776135519423395028667212749943250427147836777467933541996569447380792467575994360502034401006806320997353200423411852694176897817106396747661976720364618846940220912348898186023296139905381754061418287264617247301640583793625795900362302644001445272267390890865883028566053584692905234848836275746867667815123302714230170955286880793882249167498078202159944308667818865334183079207014007246985531286431106698073294343734923975378772244329430293672869595666380795098001579733565904327382174730618605176010876404854981712447420649458912095413661861540555947194685760299861777547641079419297468076025233632909213046875522895700857813055858141300492687544419202066445561089382626335315951422141871674419382955008579464649593676210973852658065708837841383028213071996421655336581807082541861077245170146498599057336541323023420576215460657637799636444818624005903723797696431070152507380346315965716477685189295452606871385729609362448298014278307832576466933589932040129901099945055696317971464373978797846746119958906712502329110284625830886262772788248901117393065805303919212966205468658323784159741422246592202499558680348395443677610582677826337258541793638643864723509198656784815318806228188803223331237206363877428414886326151825264282898697095126216603222879016143396480945536919890375758004703556058831130168797186846246379612349788936393788950971181612934854535581197123466518033062215466714532968101763990838108485778971482841071786272985990843901119096992102833182156842096702979839184948983670999213199236336463723465527376287946754871106949393238945689458109296679662150480239207981880488382430866505800651125882695030866299964772816815031459414296661199848440702243559892301927915389960133197229624229182536825104406342546674078622269077720863069040812766558654067244213914277369422611871039852271182587926483474211914752417517279728747346336073940228150921567734459431944559773819253641668102759874934195688267744825908258420847673088581592518424505428564436942393868836495584437285803669359436609924359317405441547375516501900833452460808394925548780472231791323459989530831890208950431902460317884762702459434501586539934742054996346065187048377228110962337898789900823876395716529433994437148238317952527923619266802856350063947047545600383427510989391766700642518844672334987311919225993347651013465539468333135343398436973969939529248182508249495446648536274774640052758612970208604328466832484363341788440215395337575101164411796615686624608167672394986091012149262145391714478885390397922010436837363635047450228439360443166687576140172943400507969047440263211839617743898336409172142018312025561840133373458405788092916449511886213290789151253854011268053491770146621102326388398760872175303626170737048825565074293210615236853422937410494374668418018482376952865236652399800319061061384277448771758196741274606980840850611778971414684455667564396408088304614820872045825485933147091859189292260067913670363730320595656293516760224162320272139234889963609626849186584598631927773616789001390757267839864376624608602231195505860850177798117457793429219534124951058716489527766878141725350526310404101490275360317604470324825538097019576205425858465684336317943476667178124176570798376673164973746339606150647865667609866265692091145074073450642198942104768025412175715657626417005387508549762145465155050514123929535494238108370330349854022453006601781546068592062631247207276011576457768787966013388563246830055907148035009797883906844433162280556402248737690067291828842174730367272545943545089382766357037750565556170694171868420418723752329733154543327211853529676216425222473672735995369012463665743378725935482409309290830150174541371983089471482728877864859396370416719918034036162626563070443963356131185748945318656443093571188128409703687702746529477933531668000559131036945292737988208981478093021568908450302949026727426283434915578951009176409818871171989492074450248806243894211440383146206913945714578936689182033847874297343677255680925194069077246715797446105064532547353044955973388721391226999878587784446857258075152752058507964933236455582826308138635853207126965565494762308096139550813310038206532507855050759051023009109768318814302040217762415804338455091890569634437396571634388221389806750528306635034850212195068411196564797913682926356778144751507372568316717895663390309912941706374834529831580086086059456834798300547028918033997905309874848879521233203971432596281153163698910550597345352800193936615466729206576636624402789268599758119911093955401983444594125516999590017330532336714615504442325766861987290912087349381490046150551762063629756283291318653146993179558677646205013903418011082341298985086145664731540381807762638756190747117164347188696479915235607894901458163050983485729698722629497150413232698929019868949242081685810474511464786738057138930814388349830721687988178473006841672785419439584994541399372738945801579577626077451810285069762810260995357538331329727843220153085366097639219993626928765899117851014583968401894570700606724002217957343154613272639170039409619472461425073406595126487782254092351403630541867970848035983084008440863629462579356106114830997056799551496661882750374348744559198796881288943248592206648607828754569621085881245003026244222645308043803886607619399890394037940302288723376770723940123788067252034125582520089941354884044171960402772451851217197873760488639212890698381193234270456882752630002323823300119227872943010461995549058951792068187311064071138453686222536690843687758330661988553973682075183379071922015670327459363512046036522608250703768085876985750600797257997376362816551109751620996474671073262110480840152300892575572685814362023365263819850276310740786133996526872533886890106923537043084672871265769440115650034892466464102452161236539570732313269574253956478043282070277797643512751196761755015689334617404413822756832451458753177343998481411749314100961752562227889239016475019666982932811142978695027855451169477168768925584207534614362694652723777092691373240472055598730490657380932756800798039228205753360274983076394257195079668689831453872161546147440638422884752633282789381954635091096189645733181558389901219630635786642938950252201428007149012990007789577610045345668648210876977328914618778961775037969264788045276179851690452739942847772160044289866601787613672106656398572622092436172057909892899631478843838048546582031793622767357848211178130073892218500854564384275514236371885573971180264147651931516349176724863884788551145160899184712143671651858421017488055360562288139451787001253639399774573711125602818228307476753668066290740160718224594258654431839391043984700494696158376023052363655664244388776702247714273941899215058450393151545798903672624700691599897963832245178414580853619206529015748484452803029813394061929388144924990756437225666697141551487593107375821723202031950578288856286769427646612312976055216504166087625430280372617291031745559580690519452895859292061172844508241265007530794208521246985186621938221464174708037761020961361807207516782012320465522852023286430951598408282309569367068693001066947165513155520550613471821863476375949819800986807875859871353486224912569909488301407261146162118004539832453911479936847830360752239783419374509917540882669347856041705055387032516517422899211538293910865376318351708228131689346006114783328087487440779655776077335064842214870384230561627172885684372915582862321222077119285645918177523088348029485507340204575253368998468197166613879882616805471063516416939467203433864711088611000116533225948136366109833807488541281832182244882819334368094197241106988783822967227041473494043076285206267246545972300170205780773357500640714204713406028292495447324887052643155733231996122468858811480363769327465153551192451284087728549355809927656957748586852336875681352470742435135316471455582051867660125473486620318891278009175371010771959495961945392076001797709935017239778954530318474846453883993024298218926767804773498626449840513636583115829819086845929826679649072617899247541320559897896342185862450940447051348089084760476864258802203223950893160145530176753515982534328266476465840161083814699236984189773268858450750068636331278585569890498443330015831178507077012989821871923535865438185287821851361030015552506426980004761325179247695977072832075226699562805837390895647380406840537515535664123669947204144413719469890631712129069634831810297189938491470816563866457878251978348791063697945492908786335280719832557086416571530738817838424518091571530369515133395713210420319665360025547922516028513071560371201090889439672532212163060155179633780676331869843813041970709741869424505195845903067937296182545698873743356048968520967468044578012180561955600517742952500668903532019149819145232589342070973338021107481482697481800428653952281087798432183797497202093291025333117824677667954634735445117700960716261259775234874816544567536762097201086191221947090682962766527390471272628056436740419357806284564815170104010269892116389888620045115446263701827602936830995279321065799166212025587459590321338618326263316788661611558131360140281086391388350394927335502321398337309027173277259112233790953045130525494740935613048510177324157067881957308473053776913031514176438020958693152823575840722746180809304063066847513973032112536896179885082975162193794855010830010447390373276193619143499047688644595995459909886031909738070243506114485149451506567658551572336868809429049971672561738693742195040698746636590227415832004205319096084788337307866096390333157788525702721381084013758698297295842786983855758081061196921706158185151273356318259289529092651367466489783184188679222122226204703246047862257463839569310589173607068837526306843395581528492931215789952614507290776210476947978822405370362072348936720532122330655335934998047212231131295490374518412037471728572851925813456778638967907132884828705582147424478560308113177978985952872427295363486086387618616720555290126969867382399781018608727350328324021679852420884373366798522838837361342257852701961539501163305149551295276391384219950519694201787203028831088433017982937019530546305811815109776536354411506169931320955185341778536241511459006946204780579217231139561688905102184323502155786004785647675991409057090615416399549651803103381832594099586942032069899191776643310581363658046567669169487162109634213157954109172934982088022311291915531667224527298014511751339153221877350757721365825700889789671090022707572714978273814116828097182455174643988907035755727492937352067027447522505859807624423970662994702227324622796722219100902758244967649464787383323696915193833859953761948930938999646577838275300305556410642326556465430240714815331444867282053907495362568580765908049031127442652469432972553070282604266614895526940413161027958638656428164335941827531215852814874515763991224608757365435843467961505756074486639206075179233937529223748990053605033299937853262383579112918363817372743435632410086228546447140983162005138967673779915653753989033434260466472328913535367668000995972836666813160603313320370158416494842317975038438701409451690195535146303033412442503521934127931295977762609137907957588739824872841084285145393171844120977068643524347739582180698852319412545264459876747305997027055333030087292681858489328098349285879627388090727643348785082830941214939603753367208450348466985510513531480485776928348513194548519774005936071836910460646094564258085385334548707408928416218036741769776708241816269849597310657867161337506377038405028089265664176572366435582554516812170903060439940834612515257891015745981809269432755138375019201796187699064162526342877313785439503683474913873469993827372555085062518326113704693353782417362926120047903201990083830555987376673013429027059084338747768663655302941129270298725606774420940620317116039327267022107684223864957480846118853744943554069280603264254178420283917335428254561607423819348407932838823847057632949271057394595279066185202364850993304703329566032574963858985853458282679314664863811538530581326548197222625228133254221903560427832432528120172712105528844496978214961739993849617839113929496295699095596580834978979313462097374352590887635925403807657240602703547695855456732668101605517144334371417722355431896906533429101561759094216611317270057280371087813195016703589813549004817835269648330221445785014644273327996280912038813567938166908158590521631269660225764728020111165535448550400445481271087856392133726705679056711149421148603351930607591689682136776026086563398677464552392954842224250741340997032153663534191128600897559133387494530792816611046746608410410814092667793768546803772712462985121279326669142356100771130235551740131978176038253952494922109839635060616319415049053450586345584950719526586787714250842591090868745017411439069727809467418979109450640721138900873438360500132435090987157392799984644383004771846656156864648249201768685231675331490857425329833257372719569004797920943648661798544015839657806036427126286656350606482880309806457160145328443515380213370246987219456583859083187742810502196726357528431228350008484529301965290581609876903851566959200636308820026243455797198810076636319353912651406681858569394834061074629647438178475899657327672619365955436418245910209742216286448491219587923590492406652708134916210629209461282262007088964854680627069706446665021732662457134443550680302641029182208107431822541465730841257222634251943684280217715231121534482774488064136681685042067396217580433289789454471966682962788329021372742148916920079918945248106287607852746179979373788290755779363489252640560318967391884810715237793108055703166105360010334494054765158059288159631093171689890704073470012931207844657645839409831351723924473793583669739823158119563356863554930039799832679977837588501531312506541968686487035929982630026277167420940831736936746213402354767415322899093301337395679303375135404765908158539763198370843323827969544268299961435722576903185073235121944626811627961953027899787489650440734289006028333373851500697122896759512754234643746485214860842739607441272962064741928843144909447937954955911573857681342485071984979860695945771916870033816611811164812155927517246562102703000165858348669271782576660747509082645355030665686976478519403100430208695841725957083035325491689868361213510622891426542743768537868232836780455922411798384704793638548242032386585537921296844508593879938581413073926915358286774296511581179965254257426553887634590427505125482153261509112936656469555276357705017402177646443094814235254783904521057605612084699195352578457832673087239379447356022757308174866085269995473547175604779450828501495510393350861472897193195707221634096868639607168452980182577731803639014001632107242297245619494014338320824593452968666365554421973720946605929632422383554219512762811659018618089039212759857873347856738367424648644197523272426969025347509274082190445939324896789795965018354966356682295247875860087363683359097974783548195601375766829265141589743090680647261219782836306439419872163578283096987376895903673108568251670228626843216173002416504669986042913849658338591424731039855526852208603713775035201364537885535868711330515203776895716218687990639172870574465099410628582272337195341376136952755790480468373330564056122453269716536313050901170229316550782138765149005643805532499222954403894694834983699453718562091667631437755391855517816728870245136423075006854652199719581395415991218802806013815321147666701881731844614050354453561426903290024415028765888330101322779766706993541235801214416580774293194802194576422459461788077278611231216917982995402345113597093443814755870952202634156316822157759902612055617453858136766818423918633084841031400937278794131356024813603358483644936335274070111234014782181052286817169486427729858567928595984396924515908910406781749844454421449475837346823112487362848957864671307062438047689332028753850565961183594055178403187937729072441125184569501836127088307109166076954579196715560470688385846730856603639961571502317766386734929739862627423470832193758940135348178905446770515956626632454937990195417035753562951319463495392873938850894526031839561356411711374532936909488080562544712215530309684677394942167437055823647622831812004910682307151603395902662023276699709776512140034046355467763805591869881240687547576204400205938247613628543067720096551316377208801618215518462070143951901868610459405413050052396204823153708015422609558049154382119619094357454506530772229117126688523895836488849693611721844879792366473971020189993630010778179762371004073058109201218772912536842905898316882180542808527005497829223594499779699024149715813493024917206209002708127444740902659351881399920772187332924575820194956772994161146984964223485583962095259801269324180262740255158109479479430561708869084174714476034700592392208217716054591450330454534023309722843355421247526443566319809395654013790059485496643345087858218206977602716866216658091166321092823932305884785409982089932481800060910338376900432051912143376127838052144690504210025497804494296830158010214052116378178678459178926874331881176387553789743990077411765631292474177826036790475317696392531408876700996920631577067562485678904084019651222836591309875179963809994813601578224948052104140046143712413878926226933968134570983210915158161339513925451320437355114174590952425222918442787669922750088297087612260290204040446029045556339776394904894929459389717394010934396605222966601339404661736451720015049588542771038536786485085614483202882662332725734156267227165456791232218112587959173182756850010749441688508577799057026957490314455496089319631345443751048139425895234022649901903539778365073169738717668801400127605277049942462997776612048641755108910314864015473567970277580018526683167202831284780171562379718414737289819878006089026316253434984238291708763839821066098328707852478145136763473037478382760087971232403613636778339316010537056561455700440271516313923165334137072801189115922203506954907323323620745984868226037013597168553850062992461072932411405790003735763407284572005555376600566128715087101404304422069667653421499244514776474903454517831222697162402114526559099740795831659125990372264200028133551112319051965323280534730511038014842784428893134166587164268342761667502243917923335395059428313555575660980164029269990484795033984413645951146004900726016344976569773516144028764613582566922947497819406882578648959701127718682673283557069384575444631228304243492779156370735452517866181067347720772044890655162664420982770243566349885575673946558842449770039289727158892126039732448039218497897757095619063580299326188475361655330234621908957607409494539072711298001090259006493420996943506937387936237114153127058206547156336275416452042709613622045495181221989402183331898562497840299380896935060985560694280804532245863923387938904369096955474193127341597632182056771488226633783578875517687572530036685305943451857055448393172220241102552393379492833951882190311916753287567649901959934938226281341768090715220987859934194230090263684064160234075208760908737473313788200256596450542195212398301665565112341819292698252445853769847137196068149074080623399977222370629018355603246954198553034757506481654942517848464837147505851795319893175399511826989411153922975731327512782358733814262115804604426235395067922042547395276340299932570523683048535944043498371846722890349859186528997054800785388358507562516282629355148338775654256123521043558225443082730060831820067967166798185958699405696868067284908159342853101112897876755649735406053855841366679366390854538439404754269202129522424564917866540064633031744977861532882769720203973676933264054585084418305110346440352253299068959288600041333666789257568418160737420846870000595550135177967206580918909911344185217552850515224663606844162572423863594254938769634800541127805514090706793304411968210020068081897974539711861870240492168299534951380076135902913836836450241260252903342183608758864609941241511500891218113303364837223222883038536007688467640789486639068312530290010100710719261689024089425921617451109932946459320394740103496289388484854118729121282368343335789477312766477524908739494756328889081059232094039555709868695406493382291984088581697626858235914797956249653872333791893013696924954793536187342474619166538226296433676734989221967645805538908353092602399244404127119165313676565180529203417813294076822202069970045655376777992019119088391767367065813962159523175348806632596994711485764856440392364094643312146611039455241626710070495049645436671472708076029751746058273723694599279884563675890110586534664241656729920806709013088609570179787421966133440875606635066125978491578976424509054767698542283738428302611244526323446329921182758444427999947538645127087462599119056256564242872054453423345796029901753108433651028415035542247155413279740705461980619462027378105566824984497027741894849376038237142968691404952291316177414103523968010596585364247630913016581677794537782872941033694071890837665423032554483231621223731037572001607156335281118919183649497706537792579528679286052388687484481127078933584240709785349384715940745394036927527594962980962158781968222271728890721096864173403596264338865785473570137662784444051604982265705042354290377168192215882606494142859389294951795881214928230029484505353518756385245264160335591300195800446305554747448733952419187325629410974527196955734816866235819695781872303260350226871898482262459749102891499027774656258795739249608257011425744219266564263498296109435267916454902619339631317270395325988067381671358589234481367251007566997358649862113579364468383954283838236781305009641760857552566286261699591721186118910608661468530564985889161022584261180069746079406469466088872927994082599763157770112879694638802439463546364720409954220025549418783715510598169746309741255847010925889267566818465959600855908999449730204010368779662314198051174789634065745608461595698660164602244875985972587251007873598193113511206385991900299249861887294971857223491236170744158165814498621137695032188101025785381910472680785534644730889739925146004108716007873988232471773770526020508735781378060294241866287144153798841348175665497180526569587834220376501255866321946193395417121869233673895390878791237600575639920386804347808325010204876131299453606998843646790895822347398463606247971004081414819750334896938290689490266440856692172744850376783248819266171254329830161006384175196589522710788259042426469506812503525233703128095640767906722014551581296100976462679755432634116505586665641693533956474058309260493224664439691522397917175242434464251371548552290237168496246890156907032659304214518803372113524651533486192045517766316940265495944719046393826167933954166225368852600689311503132616833204189695330949477779062530999342103527168299487146962987303816855503904695058060173621468914052523353866705251405891297572020609579257025937725846164609930431247846842579512674952224882603840145695697357463472303637456775522352681946383044659292718513874113394446241198871668253735464643829767809974697495324785444537338898797339326873875435909278165709847797002801007210780964704736968310953280960781452056976213355984531151721999098219227524459696080461157508829082231259428561276589842708850153405514381216931448573468750440839247591147616967758077741668686539523072732811831753790368325092697665883434053728779401995184256187526058939874705527881694016923774086152118155227400100555680254449861525880783547337561727602455888021173581436668481363321044220739445990131489577886553286782056607681481797524531721613457860740108087949674782310080773325814897734555704966063440895502134991671892149422334952281886861117518515085953723897269491769760749761346434317334438799780528812006783182848483330442838963620482861753583283268029393369751561880744614842873697728450132654615968570218613196359321502532012975704882527864271364394415865847278416457831406590316890531171971341768275530293522347401008268760379478452814987504449463502909552268855360047349880092554602235486586783807760358140711342080383874662790920902201763798610381330225074264680329091731514885324870341942365464023574740768437842866965678385606647252072620084884298486188864025280394042757295215453638818500778951531880912777868458569045698410285204428200461346802273317736884691249582863909574757711277730117048100453326705242701244000433947332459301524934893069205811223240701328984551198742413421377653589807308905665611147983268266777159905853324819242407007289273963907835846172428868731362668598683367610411617637245603445145123587027314909825320801250869476153529496653712806022972375417967246358630490386671755602731376913483531908428551778100582810346929037652958281474541971198347599344494786049950148519188992763262835433362649657344153628130618180342717372648302843574228175253171629913516523257319241563025184731495211623614966760748393135427414819455497428204754406656852913743577343175934881305062231495428096722859369742623415467074409593923381575784292092715922115533622348692866993186167852009543975260932712497356276878101330756233945017015754132156270770366251184750410590460955339335861930090991461995606441459131222207170589813706253139815443779315276043745782251824857587120238268479973981196035582904103659521898310972033420007123123017264500661653456399638041117835317657222128955122214697554188405547559855894523498766771174989108598406000016109833219792733796796787375292822753351311322493571989500052926397653655034858836231189586915073614549882663107986883473762638761624208883686764031731647112000740175729242767200183483675666993693217636010660616967618121908730415764994220123249075297991133561589315037911236973872189582867314211314357723330133985804388775675904341443946707740663227577597014402115372313629150071746771590603166718119702536099673595007041525849450982881080202487790841299180934224412619051313447884676164356752684429435369546842199900845363526863356520492890225483863092291184870234300385565677238033986716412606633108775346948807935665823381180514575920010673502910088910972972811494409760944401429025047277445417872066606684688457546262451595621936010936904267409220379574244911952974385595860937387565591362911588879683863439540704050242030403336401239747349555603465156384718655885916033839846335363555793833276586869125613081708619881038663616739404973833395702228669590946316981942187197083021271817041028321781766233967191141747679836912415354798364698841385973675624254506854964734303522418594304167087038660313646280982863774868246624639614244251664988108224492881027386981358981559413024978467818348306097761167611950756596910460604580037521601273806422355311233424023954631668456827433493669396557293770488461110155820930760244057679269502735999264976049918658312542740117207137928410600550802542551075137300337691419415174766869840650351305338491612593996520021383461857315198666118527742312926929248046333371320157188182827493586047134604650662907834281682100087087804785440084698193577517465759009696593043457214587396403333334545883661123933521172647909744659768126430674064179291454422816385294375685494429479829891617474887677576188349256055541599501710957560459716690948506080863368272780331900716140170212853473402340079447788666381346735695610017324495759168390271246680116421585241622648913836271366211511674045341858663569788788289363700409130200132997041517243166063574149690759848840596722696826082792422199817153734442578818280227899314779647312118313047000328373547831640900412443694891235593690642528294754179464526312717999402617228731202307374824286891054763841825309385436460835542873564033315087447489495150117042920381221086101077309612973072072005048541825620873852724214398572463677726829149246393348657342554481438262797074282464454462773894252266860563882676250250993810914502039168688860055034817276455220743193515770671301206254541496745976382361150186343932864701480131294591301981260556492188109796123254572029173976492786723084852657297417092795647113162423533124017621052361696391983354131038801290055938637086478134650684213585598089234909340382743051361942520912201333190192625317283144860777206734600829740959094549352785968740899628684192853491307888954807338596614069777524548597128692254832552856125842350616742510386142033055715923389242641915111517103234190752698934352326560191238868302557599481549164559117100818979968092318402526801680515668869521402411846339417447334238938040422699675301210201396330497520618497719205626714081478007983177012718887974983955805338460572367753305567549743842871028185981176363844360218703787943650778645878913968561637400695017065149035086909398884049567341802516441256026939808502874490746205811945697614398570845894537936721965092350404260793536342975305880360913091160765121969084383328774592711194315427566185059444089330456907411039717418987724208222285027043232864585912614150687743999473340097653469943521794138781595266379305121938756234859457885944360382784000319063707956533903891728957801458956640343355248674197555592369954165990104278442183188513402745324940025629472907076270030162852537930209840650836138458968314502855029550750772108114140951033468786538697713393456785774953278441622250218964326247910512674460605448835430448586289782933560406242444981137757239586602282032217411930600490620399343968092960042848508911456106956828674931355806580010570718197285109738119347633823481709644480417819234139470253210263519527389091099550228088376899511300503551807527155416351189555252806656408080157266175181793031545863573448241618296790396323510856868078589623094903181469821547231052808638498369704823431722806857155350490864938008565356817924846745915962229945922062226104745507472436531189396101946637914963368427541287658038752962237301017116686184417813797187634554105717622223853902434998494115653625739348608549465898381538450683584782315075173674444017987741112670067242132251002877539083777241136688887095554020709590391474486688337994964081642000591739656676910093438856936068045992702471942082498340808333295969156603908217135813507021422419234466580577086432568475389526607122602738613400365781434760360883869795587633939828154824068765410598000477424380039538264868109140421103921675616977204313489293265782867551737825515504559865148648146534738946048088029320203170652206894616534339181052112254227292512512690940867679651987017208485657479393879984442714079158331649590875163287450398297653222436320643157629666861782679849645343717550221007470432884521899393107138233799719586642669627050520765770377029974012578998443251831988222308707343686914979564343979729721990308189214695058529761880903888836872884979926076344656792340720794223836662069646525129911874583828697366393478532786256290878432416077719004951699557334495220646537121480576646558053207600481234594520099789632304606820838803142120054230492189407792704607139594472071620659967136528859218106402720235265507341477300093780041114919284479782101050499883100229827102589986027618118329552973032490916976203538072073435968543975545817417082415771318109702155249078458200556626402443198583674974637562272952724289762107191664250475540008159226700487441081447202771395138235853924130507191880613017638582379554912973679249305008668696542842087389914089334280494728546166577793458981604331543600635063666572640077113223112346977320660174889261072776261079488987534977255040804483203132775043092327200111827426217414952009953417853854913058565388800287797531249403296607355717065545868817092211986689180285614834745949732311320710959855989880645565254160221218690282385243627086808602823376274388469849183777173615801770204251247367838176114079657244501927832673203692033888555938656209841071431126814768711596512216665651466019051127256921924116972736100611991697343178079808095441234372730175043756806713925842405691879157104167520280608964218650241962537771194028822128497448986482285255958668266041127025467356149517491141938802085023875238797713209146702321967766951672819115095671362164802167323724660197542784453517375670918865549134171061475782164401285296835905747936365939928756276504625887404634234290698489633136932219404298594276845361156928818477901069972612840048663185576071371531966840257826551395352420299823863995726858882276622924759626043481135481639098926459989553352499344544543864312911163578601143454698524281129765017667507619125627204068253438305899564114609171895039094721021830507358917704255865065085828127449147912479230868820936090535566928289851063428266742472696918506294897411476018210136976244525746623345520759437021496514127096473338189704315716649173447220354192515145906316502333590749270436424889916484135934005967509984583766734198128000481028609868673788565598874313278110775744610715656948562622681866163101954408544337141186802621221006613480772151666690016895109749985388473737204552415876070900230488546886673499368009744184689724065053499477213099138277386715993258152873132383883018878601516009449126317222148497082126929504617290053550334640032274435084341436176746771016489043128273269423402790465290390556490682022959877205731092001101876451461810495359149977458861711196560579577388742533130913152326563489279519594813054811897807538672383574360071010650874394780090093867644779653179659760962036869081630131190505740989055430799022787682539109954195512914278950688521649728269720618821926801204267321943270837718587021132749506835695700804674084042930982087010881867599185009980848685608794066148868671524258287116942408387949721687438081633872341966852958238366552801086651329511246843259086559343357860573325859435079451709995169707166883822054569547336924147467392211789458871846776555733873474095535448430687999354746773622859421236052625461829343872800839803493441020516924137574634415321264161493482766728931809364275686440002876651448799577521643926593637770205693260421441440664982843082487847174589944698640112064525608133392981683090716493541480626763759582836015564332541075975697298281095210934310027229268210091371962186217359633669961746992987656031400119875608751945375988004366415907877630548460517560031226517410659598331467659196199237647189639575856913075013427136891607440186665121206090785557767966499164654163259001191380427702618536948774129969136907552503035670724472228456165510216146679945235062361855346964340373253687564206231657203863118115426154320027814768920738942679846050298043954779042995043608360616771005022697362605851741883972398919663732858273738348151691030666515194420530645355514946323713545869348601575068821529738529355006420971050458151363680550623622525952083339319736986824893889964923160947917207115857586762612092617964328265294526329869326918015189461617530828656493231488892520437220037102526295588619049251727190156671783147992518643483012688366175742824101338337774507977404557086579284336169763867396440467670470041080083496580734432723418568049444637041335109746159410645127801083162846082562242510812433925393260389575276530797175239841839654067729166327366414197696875115422282632712770273847973232297810704797345591046788014563009605124433142351040080487159090032596869334896518622120147235362407191910067793657110366013342050841100220603168389330659424857110642978950682435912320070009139503633830840321661993925511821598231042712416968676859070096289803813803513930344362893826781435553695076412448100611483798276754405023004980709363398049320904727029910486826181453296326030452348228853939700113943502546298358392108353736956463040684035822518062542060234384492193031710889684223105051114799572964260873068745046138592601090000395933939140979534717801208582884854135429920998871931068582845622744533885490359117271036566191152242790055343393758913081651468746583376746597262179572426608537302632457563456358985183041180756444901594689429321529091053098680179676051460253014941386491988154182422654916539639955268289344485692741023777320118247919227690661590258606170519438725701480107845436592906394180476544254112209196333150718100545320768415139833459508160995837487842794887889556295505636157708471114543589279421998167962914768038881599491985946143057236491926966888846270436527764526296302953344564614687860612440841785093181066011308094662665346835701822922479067022870355991303136297602642734504496018711631775724738713751102680486453913062037810900416740903612166103908317277441977465779959683907903916072072228231703554864309653676616408217117387357243144025304953577841939816702564453930358995066374094415628525526487104981948654248248534593641016987308951449142015717018972158225965434527401623077621195494770137836753614827269838470523162497303523883677844240234673367058053129793530612848290153459010918388035672091621871351734271713332759737115483159324961658350942128109155796205195000908308938036520800992577674611847224981625470584930878733752234919096142920444846884992328574735425573981424412406415688115223293183876529424025177642850106934195355822480302301330824262808805018769731974703009056630885854778587321414971763821624877328805258456608509492485384972736922673529380226511418480831924166119229949223613175350009861240147052291122373399437478674632282276787450269703895502194234828890902760881356098868796424498151547911115574703138911432079826132428963329804160652409379983880274518139531825065815378572101636457716999606803367905424854146084749887739748107123257987651499247717935505286260727004285344988130157581914021959788561281225121410915920186283903371111040612598174036502069735166230647081104501243132433363996843131914163890761491589842216354321912187184606831517603971493542010727220047200127466710910246126047195129194468485463529317403255925260226872841913693546380816813474177483015720297632911118704762418201683167906198668990174595663051868860708275291359103460275520970202308412984773653236083606330164213244546205903020749957116989694187915607835768094635003995345375606069018608507635614071372211507963849587991719756346003152622430996843963463605065955693522796201992908390808513271887243099345445840019139642557994979757549292809181784218023051180588242432539598301212201196376175601503177829710860605709749556625681042033018163610317627346274117549027468884243496504808040656990470040529276196949287294501730700056843545079184569325557938787604052356426030165561231401910980064803476268550224439822967383199974016834150434341359315975603954963154678385344323396631534732807441379307884152670590002603529963146543112140528995220825952538148375633478202812701230491387546730075868612502736640250613073454141976408326767459148552870024791509913901495373533817187623898596550838043675621747509590674448546253009504985707609951633014191697377344206797671045122320477316109636532161768513621198487832463226321364740780476074946541457697557949926406918867581680277536935845813966057710776472094919472450939185248623121171779852707773377890945372069834549229597837299765123574672172194744325641249742514289397904234859194195949829655700670955210117747921478334912316775271466889919729206131507908418767871476196560937678853131967203972220959680607248610357626467158201001771757518114760422482930108614690357329460419141777220232846574123198565376334189017971772249907795889211211521190744330060407999583459600175438034598221185304363134060469863261804460072748651891570452610047227495057132893353167489820520193348318694303175522676307225977910113601378077613717827181076362087397167175797843676164796199712689583230109822632184315943997929396910510721889613665312970436889968784525009137435831919407923285469518276008220446777586167876674597171604627371211372898643163202742349535128001177295322435317620034482065698155944736194436953784339113602876073571491178265805104904895889633635945381135755430665915946358194509191520447362039708428455457781203059525810770610008794486624790118832029089915633974896848852585111145489551052365378034454520648856566879582778255203977098080172605822705781647679372284021560268587886980689641177306450154679030681886989748285836846610419769633719725992924104502189499524859068227964507850513137898943366592030450189541937020540571652927729873791193279793332235722511322393716560648431688254989087997604525834166881327987703550529551441724876135535638178757665657095407428533923002454613309901377043582184087306060527168215243070185012864890285073372086508246418611941523134582329635189135390010610023237965716038537650990145837993610924476275365296731945714228432022561508228012296215752601390114775221747099542689539583728987777134322331148404178696127011185868926891536072975688976063615180257273572242861717029834117718831158696316469116008965128236770657154402240824628582968352217574924893762874452735801119221569526104773190536252542021589000837641844348271745941992345914118619003980973645641467711337552265907261510318225168141849470477659444646358723245393951723723613022042188187963764480519552551729593917659796021115855330902745188494210161360097542110615148668215773227257867093367977299861099142388050652360193085870260816596522837160465491895593401852293117188205611494165355345088113408251788845792091536676331978839966602887628617565267020717545354555559544759483972432419452085681246054516840829855100779345050473894984221189645772849966066363046621195302345489599002132294301454285468638701750059393942195379930816050243344970623630018169903955306715950923926550027987069952754016485182635910414689128801883582106241300846291465033583493126517747527385465442300396873757170432546669524442664451057046479784926067823877994395016394921069344313555063181931557775409823283256547347383204299494473532424291311420576421358274366746704235289412121118826050212547128148610619728615593982161132867438936413617549859597100415312458221725539012989252149064995019623175454903850426459092657620539986438646112692975420669119027546587473751768424095461540050224053548450812338027084118203113596420255272628820479372995293508326163033500283271860989479052077807491612504983615581148063815800441348719101939056749142572265402403582924856163695350785745682887545323833091772761557865017584860355565161930699675939419602404547098184925736373999443537280845579769519058984407006969111271743771777007413442660120821298746921591783682479642262080699307690342104967853225796686739532923719836499579105694579068261409303199387477987347152447795577276701596678408504200072273257391345053072722372361493567270191658376657230150705607926267289012653233150997954897076883602821748471372723089666832368260736668151611836584058119490569471130233273020200780546655498885654242845105358563151775762803533690585705572364295165414407384044726608691396434744523908087556329328899863105204329617128092266514303070200591685038593905267984330269685305094702365842235079453687950416000641922732230573855948264320631742635616426677783949601185467003063942107553091522499855376304329038614507879580193225656540206661572973719444458774285989821117310856636084353572961255654024578863947860553453166391157642659661986696981726292937986595933724496463797813229699494467655807374242598412791100338975089240976636191377022171351453543814630512547371553846058658586988294398703754824009769914414911949832418825527344419843457990676603665037763573484620553463531173129752308125279942655902039480086204529696282875230952530880840076810118582999211873624772575695583698797690754713898923830181543079154320220962647981351032778681344786358012853594035845975036239836795860297486458018720294719664664816959279992106509057768332824655702265700262612285453593611799894337664204127215378216399754496344288526393361240816704315741081386315322688597584897026903859572340582966661097678073175644039194922614556550365948830528666473594532786167685322172295821736877775665196437268245531167664805919742030089816515160783291195548984305077344423723849142436242947738079043015298922122975501753801410538452315375497419565924042407120383978693156884944974075456642939010994821897341931569936607881776811985973962181893555318886492425813175980646136913042236238432897005946768160357561791025676672650387574020805197597121378953314922988608613120262439407739859274893929349899959038549700895304541946694714594491140333836178970135794740433736608608586087767587074233211887538219999913712956273041226472479389544703989512181718455132822182929149844222140752362378008587296083306460051168504212573194599531908073445728126413920125418055957645687938797783597878340225763769516373616424321056686061776575703514135307277833891814493198413772192380533187296966356186238607157094817460639175599607515478339775229759784884116578608954499636231398414171079441108196717525772190485648541433145938998923547458168078900509056946948281586007272996007448259389589939530393312501895755591226998868381738500142250226952977251902177376742993268811867923868777118161214518676528123806485579210745552807518169089211153798914300727083143069433659509708545961452687289700826567330522220997656355450824666552115448022638287212424884415923485798495034908078721881756830693990586417648174549610192716961346564850157665359672562865705954794337876603525583940440170138669973468828310561633645401093130422175887727941473973675806248272526337523025732513655059801878448668257317336462537291317870326875369104673520724810665027996382854863275159502413657286767080993152217777125787898133423577193622718828321341892115116887802345027072951839921043900301120215640062747607223525253065982023576752453853865039292261926711089495040094675113341693462909388484601277741549572443874184684490012035126567640525498287804199219768660372469431227408935314246618615590490493415812914420996075396750037431191113603889790056119056170513142680705425555134195125208444231459223513059069183186329630898367035821544586492688519338901968087252849141714316608359768596081344213387010133650666700218580331923433328033746012881856634441434628860827494237803427127670817810227813176651285649245442244521295947040346429048321736938035104713289204886274725679309560243395172111551309233580468648085557960334843295662064757803472965391335433563406592589858379723730081716579305698968012266605075602833040982542055038308837629819825043606799658471265067857036010993591537729515151453820605004139034168006418342907339968251047096421535568862596818702890328066267763190734620642941848688148331378842233515546732131341028909841388729852152611604165692045350245691094934844741512481434544060749560688546286471499246808139558528628283446345707519030584064728084192034172033719425191629462625414241628871234686364220606336450535497364429497312933366902930805834481266818245497923645662732597645491613710579751023114423378208905390881961415694106168437626121342477540857790250616067229501717273083611624055903208942555291515588744968105221825757652161619455010167095171007651325894029925324485982604753651327673759833463698850001375966291689378234310183876065784686814343677905806078951735380140149955081468878240219869756844658949647774907969799217156581246220071215856691004079190626421941736465713288194240866107764968285146098167520391859211411302257057274694854989681888088839266663555338828078031639545446558287882065697505845427643014888644765307301550771791832160237884035710976637715067637035127912935784991953459147996842937377351391919711665903341016194479252415746555642037670948643877781479829630546034434670034786611206545048593925041810502190445634625529991738848332785945612466962444986743120440521631876570243498079147949197115137994177619431668903334561434364148386495119802559892558916847031069109743529972755168934835940221149407853871837289290050606256879596919554699190298130481966913724593056797178298639232975009912704724878603783363743674163682524194268617716493827156977273260204531432212870949160086824593043459788971327823487541456617431369307298044128367586717050593947633069659304702839584387608075409585434028853896423898888253049205753753742824022351360404690706784566019313469427077369486259837203597083156584733226944539074057330504563957406728165743551647578049634602827117820674473218155114092881466094391620124414176090466958242161604854324533135197918739093105362372633936240001466208948712983843454663014555256981802360879674115732534645852001765501493116456087670160915352372491948880489094244906635307466079849875937230942739432091323186821238507857206901529319713744824673195466500570196772881240106157619935633526040931161871533773414370284137123362309445380361669704884734395274513339012459785821360128227670389626351488147104517841994079143492099422401410372241485066688519209148699244110779853671801872698157984595659426389677529655912974681394417776633881781811016517285835021463842834764776915385164233460686967155275886650692628305963516636327040288737232555852244820155541240097541792919779326668528316631163512976488462183651350420880627443192823995068313015762191901688192100251122348731449246150285791140719381021690889095621392359304928396194107968649072613981039781749016291008179798884828272447433054184178241407425233311770364518048720663548046667013760110041094618494768462748222520945095075805250784857939013647029550927682562182772254908184263106636858129451982653635886453175629928728922448390374113918892798982189205545418498731659067625770818639187659263433412276412747855193404104466373597044443041409701479579261562021294768797887686310636027157752743062415806207038117141093408044409733612431132809987066501158405811267218897566993230469303435369481626518305412837445271850007594627707453456891152575320936830148656575574885869803299073714258545582875622737975845636199865857802271775496394170482014607149449611424213824557434004723753860025025376242913692224382348090009304788104814770086703474560088232992194124505408752906766081774616816824549236273563800269528678124590191492739018538822382616130161628928435288552398104632833363516859079868873694356870815937410144419413048335785715921852371330826631395748400342903771353985746620423011218786422183454378296056492290448580355394779164170618358258274888367510369460676438952002493979633078091986906628054469298673425721398063416061628717645925145155610270440466762273176067251311641544626402333024294248241246605326292983809564023722390116811007672415429867591682007801973171307054422680055568781507025929468711538685006332768952215249315623198089806931269888339869764127732967376951402924768894067158774401991988887967719347537618303129426665654970767563566171858725803416948573971470709163284873106080984817676691408296990672122870106200653884823993230732027380776508322652212550898252480012326873574732298394779243817728393415385157753130950573754883583365570363505267551109240088882846083937526155884942632300969753694723205163439751703057469805626071100902556884943406637196662576688308468332013718842604958527970605758424881656150402237134284362422265057340464388988311732453149018389648877110769629931083599112636386415787361250603916489877769755973984557139675940755482130643500371772897195481814309770480926684923389440804545165907489996929811884459109003341147467160163470505003328688058122039934450780736032655571486547705703437384463707567238252168686409826040459072645319014157922665134230205892969750115693860394963279835888539407768542662211042240218706589191969253440314069238059794470329785545604486151408178380264181707476633971786141671002270557975902201157908401844939590790108226030548736195115231963401621879163813213773469504251884495115809430743696250478839921601456759014558062889224207027342644423976904967754332113566189481780010038152294827158752614272013214974727566061394358858761536719330279040403400726996841770767138721145876110720883533713349334384891219598036168844696883864760705578772999197859290056890977622695470144182556361558426501009847333788143766791348932101085892345924670349896317709846302908299242566342131408810805148889325769242203711209191195747666365591561201842353735327765826250031871808640316199105101247327924190620755442247062312419127254572062416072773576674126717477319255469772414532968856395755320802000801381070433202198239815217090536104479353173446582887813451693980038193759231076477611225736211458342166762240300897467371039093377528444888113866270021095363154939665185105652025435556373914787995876468308545183121281078086149246070876123229051002687323598532086585482390793122695980591406719961168640028045557908615133298687388953158498718686989045779950646435417687328826317980664295142123274638419077522092258972916760548657275343876936629857370309600968704372066464336449376744593698936737050467097677674986948846957739092433565908422341035100906960439699106825272519276183959824689615882810801305882958197031631450288319308528517030498695982105015694116462105873752329799798294946579502065669842478813584903456972609670062671152957097417043300615586355862554870107645584832678124473357807379990265694625869011743809674681641947795615813678783604540179910606044375075987355803694666094044320964630037537391513312249265256988562308756707688890331012754620852666934502693457965989382472179550049135002083660916287184497874476387378795450165069750517410334999485122502263548646826501119393571881848819586909257398917106422566350367389915874238359472648658877851688773701868045795229261194880802884109388946870708584808156563867796129399891600646945307913914060982067667400083268548602880062795200588066939471333835951365715531747037507032006328552383443429537490902437127947874246831447219402106735836381759284078366118518061932749157328207437975609603244297329831694735323417638711607581342786704914271523233170685923934941401308997621463434810179838718784908683410436274569049748618624489394539649765681007069035467303430066038436742080500164152527312620089037056356241627484932112594208817435566908760674131419628566201885307590287034954677238277171766998843865705373076137374676398096576171271005017583096550254553867349440617135103985650973784293781284824977020301806694061847173732128136092289038078911309092769581782804480268405959107341710243663713292618022255588866821861443493053744762352706710970331437343403715719047579624972537303016620257465820856092789160298587847525577356665535232294287990988239524532182595801674928795259212014287390179994134569176518844264925860811331803594295570248366732691515049723609608286569672038810418308810463494173413896354097663860127160902216089777229658509729333711535602396818060249888402615214782130535799229225257590231888326740722072669795438075913358602916630475337149205897221993527699590500353204183667566577758606909276260791650744852240251285765336222349960770936495401730065221044425362804476510730011590381711639854202673077428882620979375255503403133129240156818456687020201050434354151483298051026430903759408490012571879975780644357774513517646717568980931116992049610192941812684429276355137805798611578403446317786256162431188391963912483576122293972884250089208333981406872597388092439883797254256813374519915025874664594589369320077473763683321914184162988198681189138916724776518147006579896709027352464337894421151970419672180222977341900760222284918616049315855137085668417224442636558150280551422896524420333462762546296664672406808866703291220936131545337879376715039447215039299269197418447683313525978340378072575048195222599072797814152182185527487589706712574317740683418912240684377178051715185706716746005415445095246202386253584919902904245214680976148021849704454891505413512368396706213456288192667747766635262050486695328204405005573472924847141763892707258462748892150563324319422414052075287017850209514527060077644750218819096344742871195780240341473741627801568304803960189866881425439486976648160057588341427200192517082802739446487928871706231608022477237322760364280578407429648686423634738555859164595320103554470994006035340493997673772231283038051427878911754545649034699333691557351367519552031220269943132764538837542973348381881217247050323494471908054327558231212386239104319072284131981119327966263105870375443285422387855774703607138362693694944487071189841852416832353697691806563863520945241654028450708949831334878463223589319102694447016761109885622405440506590400532162031293939741271719758675974782583057897626474418584512891757050543985359353186113634935400239446728157560258053715610783066940394020532243918266924407844899735596951961836474024473746475280399295740643476387167749162416449740140352453968733591190469683158606411636172826249032207597929255267969193997369876134021594879795011651920709156512987853183676649076220246174034605401838113978526765417973257425799876424723218645504419787157843626731488588682558450756588434290064131531571566930972135581806909939912240320138057046790983495407991277535670372506956519676344354425751394990874460544811510182276510738104784872476721239301120924471061607340696589701060133246222154612013080252990048924867910398590374819281330395697687889410546279811633183644059592588148915529400468616051462016953231043625206038350543967135316938227170819280709401733603479620861505108477943360569783339785774514473051923103063506265187751441816809245772837081537299660680958547430325320667480492821904537670154081374907401994149113927388959824145343749567505267853024670983268133543960646598643681787329824535709919252906615471207401228967853082472811725834792051387154541931838525773257906497052176403370202618883424014110706690255673103062183278523768478044588452877511961099203034909091936495826490043971818862791506550823529492199651775519450437119959982963759250144886789354036254832900741859363060548327550021931032973327933939767677634121809998213928511192979567360072017176013876449528162974472202396601476262165265285047165900456406033145207090008099432178201449615939358368779884609578172472059398304159687790047055812413594034603281246628743864615882555849708736444323451160316531291210657151323266935147714192415121394120244742797392813462480764911239014769464099500704753152844242442328388686096289691815369383927848872033294288063161137652014013720612811974451576622189465469164542606403495309584835760022370265613336613384075257904468551455910797470380949265716240986498542926162840706276944316889191045032724226841675123553790507575879708607229134090158800124542075188546438395611163252285917725758620945182594650113324055537268843951633903356801325362809375848397203012525098771923291532711798220150121718745399168259125386299642769263166262530148205563556915730092468845568807595255111069037015021686537866188867077500239467748772652081864878686535972583837564075791224837577978270988320620096114723364505577626135129566036649799508688533266198365206182656185276898270847162311060075633993957076420864914032490232920543818184650016084773569733740631503197201004086284144625112399225664018437127439710219421132643878247127240556685174068985045260355155232135891140320933158695814759950229446932034008425437474964991061485736963524885847804682634811438974430155720857985417018143029718834962103524835464087119057443559428146926166754239042085312532841588325453617699127361800017234121015972722447067027696424517516765824582220413341614790107515190360078220936717216508258344596454602635899500840016755842828709451087471497297595457309786751955663129896363180410480082958211426349724706087289748604731737560055297960808689948509904404857908386893945340609318296019638950612578487376740619101215472341903892986306162226527715957301710183977149167416258653939350248537937184288430626194252698904816288832875377640089508481526939676943855194039427950957357847785674931675423279609492859767186370071747728520376309141620869082048302526906072714410321996065734877291147940365714888920860568578865336725384509232571427346021315935024885584491977353898228633994584922408343991208332896517316703098732732448772709722002353273347521096279435652949160660341483550780637004864414929381845980673352535723171440679837780382471929102814025210784730051005674288210005307068729960484702044172841108351620786399580913759634117213978755356748786522836135710927447499806208335226690287743942835255300021546686806625984568629751268731363249267486282258215218665571455863859475784104932440450195392027630415494762428566580527746441783589470970622052265071208117001991260759107507509376777468667028196566953601615265026225405231432543140322192368167666821993341831335827874642354795874691354117472685860928964584208305795824929021198367646392963808419414701746450443996058958607454689553676111651600145856527267430657507552537903743694239374446814090551624720753215076242417859346721158092322039440097316888291180565765249843917772048132170720475420517018081693248949986451118905150606141760005194574648957720361002265794576381574624054689565166032017423528502134337202165929286702949665266059419879163812469280681159035446694730760745878489227340419059946402656465502808078370443694664505356550667028325589932523949013647902347424607386141252234965075811926067321203902630553161555185169485819251124705569000525076163120173529533078794861677326094531164073531441202394304882950446692899127318272409175454106608715678446253195290109898144147881743949468446306414289563173302944577174989694743055162049673927548022665024841760525826183293521314116742453204793547614048310454512990037998421296568405793159839591323676721912899115336370845228226559450714773732967465656504750867765164719378955578097772340092874516837458738646192586276422442916635867483000942586016268730796700196995423062645749826656466796482630251601750559388591890180338593068682305163255381352762919190544041219753974688197005057894074115549028029724092042056095164442109854253868996489514571127747057447059990048967536053867555537323825734227955468302683130797177786839237958224583560599860696297867143010063191477883819757420557501999102283078137324730295068079861494448715174946579932743740629049392499451243171372129538281990258988358552081784480547465480419982227459557212766662334510472116164322531060448436700290041372017730417372957301813433743033733427751382245829289629838040467292193726066441771447880825844034936872704045960526143933403242968498947630948943580514834884651555240247860461815008971185200195063810687100648619648671041349829707220514605504188474994935905502451858200484613177941013547248439267963592560804380917878494718498811906657461867793526891426831245762801220705531299763868606584672556494721889920906649077258213127505385437330327286978578150648767266560345701869200809399007689625537173742507026527403911151430828093277242684608576280234919721697356217144772714172235547785508395458515295235632306129307525949415758154170611186222988907228991420450098429469490468333621050501678999433768468117973573859377105365329735963753565312969045948215822203294844210636915905791053372189032493392135287822274937266830369916493443085337570542357807830798540985323171584943161024976627825166882896063554639122126319670154021698369817633374932729457021753826231507730547382659351931063622789231315586413255099130018478771974046483556487370551456951959580646315761064253726116060671180678081123862944975363286447263859490246907085798039459051744826148141027944343327228387676647330691382478809603943500395521841630031393910562286572115649907760270392156918322920649717589633369648407197423778974918627565160610377415602533319723835572352753754546282871661662743942271151864818632260750953204389405562461358536431030653137278783635207349273819889182179471308993534579036513326941528749832202407985023415204423680946749018080824473010235307471337175061352424226476254975337055787686217270401904888822575155561237313924524986060716391175301593218728849642901349397496833460798110376508671609680920521356240438123361827070041411713139626585057423782230963443537310765822622666396413669435874909848657032900600906308132972394383911781509544569889499627448568161519973232991258343851999915254183771539977757326610705215262580171864134327092792044623870355686227536888441903934021936887823176241617452785090000891094560115441202404909984389543658375921499009433107158748241597683813135432845659677508003379223799060866984913820080069640039960068083011505773906165974262792643375110294073113932139975256702316600666338605132760705943401165507171610771815800897803972582833546972717361712480417930576866742019530838580923385362686645365662312673763781967608792165498897111657987076974819731858830811575013516593764596425919652207714675835680391740817602883789029022907583562616286458360647318938487860215361743664508201183508092939501859345848191484446045199335796043595804912760706578325234424676773458302873070088526864798322973026721446325990908667776852502224069546228719960572885501286798252318227154980999474330636911955583488748685351494354174248774280455154152479450922107291719485055202588079612154414938076095858858349836345661117480087358300808368452451690666780850448893461301237056440286622986970849532887244955708778066649794329730948044119155775593694473280783650489917329600045088527812928839570381946333835885241160412814975742414926911718897610021215359621754083505228909740780601556366009620883610596012255168524897702931598615758227738533644485685797070814612339235570563489440988511257484647806251907792027623935417401116638063894854030872602740031323848485102589206962671058686024263309155898422667035670656584516810049676101602811475623662082900342924341248839989073883045961459203590501237606468982495783705265111093888477550861544393317241726843972936879641423290782699052220362990295979340503807857387724207938002559168959692212195779287357759764578602986367408402510764924772697954280007958825503937103972436643514689154573007669757681456609403648182251594718602592134783643109173455756387495261161717673060508953371381817224274770441840218989160085809065225083723111166815627236008664023546769806772216450774601581363627675829847356929787148278827080784631357458896096169415114202777873720740226668451053391992143286053780249232433159765169697456890452509773397990979115131281029585827626866830204013837334002613128152943260425347153755923076788205928956386096576203325589560740623407336026809885748345714752250783248444518401501960088630109483194574848761063655769032900348209816793678378143084096597815153715636893047730087187752289653960966579961776683978170915780249726039322535999936642992894050996293357833243107187126535320231294369666066107341750166606989969542176106074839850988011289452699005488146703436210000385573083308082153203597304269205776897141329742087245651435646747251941143851011235916134753395391411502195581046732253233733754276051478908524496495728509852039614461355620915663768566962396126937955423647947670438267204377938140202550576644838683457985332307244300329400702898827333870227358447529484586220568251038672715884472528168481973787448402773127157781914344665636191935809417565785614256457220244746041183629393933174482516111676179018280956840682377497636256051511937315088880272163432065075706805138175968346516201089389550686195173726216970088672031463890059458755518963545597309713477779881370008277819519997090861134981468981630120267410073937209604978577180390442958304908334004131274531178407529722586105195803992252139436622653975299057643105814214520431458214816147970301631403664910263370459024470706742367102555068167619884775852515040150417593730114346176528480830792896202553970401144726026184639316028086382044481743212046647822371543092863275081364911497749330105273885173942674265765928244368388850937776710198513583086630465270355089277890761199026768659447824363693345557239089766500018959679660429483402869233557233549281054696755883805253498155583051100337742039825939418073389872966142154306114118734013474610728006459674178568938755624288307771706793160049434129681981252790077042546233946806493054219969051248099962223792120402389241506961663559467560532659950312530466679491620353947490844634233232967407961561950648504864034578152297160204065954997184921304270679753025259613070734357551700660444752424727390681295743075295020772281921774289639614223155108153283812858206112709761116525502589540351666612589687799013910333539328998737252402858184082348206022564844725830494101741950972180769337523163171657801082950450022552752844217068770277749131073630978168540598495858725800448483722758634737769894964508511126762587357257868694184271446389906030559079087156103195018695948710354488037832804373961001670162482789976730561483933988462581379024671410892909453497036559667897325394189489496083842835726300900887756208383243810527505003968784675610087014165489196122313968307822104162917380476030080403365093221922946958315466027736898398000023943318330171656635831183186546141126428588754011236533312274080837640440917240028067501016705138979110854686976163917096411687862576345137469540256177326007914182375999095259625613881320914466440531163833208046307571225043665090995235756025280316325152274146003198669442282488648178468759183662376241240611466215992978605201153257173262633650737506327888702240721499112291186989769451306124629162523552127341596117259013813219912218662944214084060997675392275561000939426652125011678961836207124474294553703838088178356670549015631523260152934935548474483287938168714727477504260841216155807744338110003181383694528007300766951200862346974840062598720426076595876471234327367161248870674491538194571103975259974737859249184685136150687878432234822894879837472379126220708728449187679044355258040024149940332585833943135563355125600509329846230731467169936693229036361506891885275128399620802261150939341934156118638366241534430585829520274473086300836159665435238165805327518012514881292419561246143396382696798030906866550405110088126510472134144700017535668397406594235416872628316941283929041243339865392695071569694988580443734101267385429907535924724693458173737777551892741916533904761341375013460453463856875151425981276785214173067033237954168352617210859601050269769591769307628233405904249054249136217346859636822275044644128290384092408894120529980479755344564535993644052029942341359291036682757773245737137218352547916585325831210515959258618682928311536202696369807993990769606760921072805062002696132211631388250237216589180642462753601467416989435253311807131423354145363467527986742259615770529272558305774537971501890489646640960953019521815131814029992594124393059645027864318984368765191152572073631529817442926198741191975081289935111345160526369553080843707155181515136621944890073620889529017225793637175782312851232769166806774074285427882946656398380562908315517179059370968595265203853847673120640270604565858086197285266002009493368423057552118208080699717081067005349475596559744918123484051182133666735150912853410588983932860967154926012430631472364354431485152065523039061541731192778635109654532913039945703128499321769071328895682892181876796923682863340021903924332057779226937561775692960967862323224389547579117360673360193104536705556845116098846805905266335613366841339025930600949784287139329802099561410001133663331900163227696347489045363717073168459300887317466022970769963851402112359047618766502944732805161643803256699813629722584297812541145947993111618528131443775738817151744582326659407320876739562047687108398532699532614643751101406709508412495648934961107395840719564922475581749170690206982238664509618331345045238236024291144680827107814626484943278608318914955981279400875561413052309208937309890835745349934585469673124552630650679934248588085700743140003677582995430422218796546494554759592702797451320218415545868568426847932462195014240258856331340457795164689968590758908528380389236988804698194427718978919674827127374005575265573885855706815125714540345025760739088580646620835599792754075554961750203853085267839387788741356608597546121825099062071270965877172715156594035594693048457130062319938851819649535494621058593905860496359226346579874157116355605610527481494860532445580285459155675758716390626364467756409615293062385693319824310107996618477636584169744905689501497662722162744506229117347475470123847588605304682846267008039783936210851992325371944485267038834255740651380049792066698711873416257579923636298684095382793055914358398123993761093552510794237375158192988635267537099181682424634467170799926716721220230837421175442184198394787633446256751676353422147919121277559367443829450665974221224650978744728700452641902192988925841200843818837570425753257880071020636429953770256225499866024899644199898597208813841953581465576123049315390175920745633364966671603636295120675318427525404014891296233065654080622602844354840280164986337714755251166209624430297742522188482931588682713640730942125718249988699313037104383210390440094412013065806688457107161305364098183135513553304040545466654512816778541847393716978359481804633817510787069895314733294332164650406325452710003235626928298245218535549341385762524621249096515110185214596970033225249730234441722039664998679170922687412407367345895110799477107390283849031972140451151049660211959701106807998327780791959515684822958237688845346456189936004697098964496814496137899283066961978325580929026405302775088176798592224232523176492742118909907654926458466267438065264615887603751619392172814674764902388502207620461420652408308754442907320472065555139702561323532793690313913030149646942243229309745750898582149698842691580756993065006949161940352515755413618192716815935446930492347017610292878164453863541022705781555479268471172802411906739835424678971314141642894636224698079454595445185747780747871198818202539891672711620665888834816951530560689973084878272904145505093387843932853081174660845330016574265079317715897943470546993986220305529475038231558740392561735616193112274399263331526639646323343243445972663848794763185261732969071422983393578284004352994138537500756089463439721419917202247866776061595040019463290799438509722095630138632254079859900769897679946241712621607916643837080086167314494745573261093091642594012685934686549038323711921358425931715956311880818165394847066514589166087506021677257543323633216203822246209390052322048014139786288773085495683948136544280942789765675600222250905970501622817701232581067870941818100755278313671010711781773612468660305527029756205587000814874134865218239855785452823330201036798451787580491759002370546858515851406289176097199782396067105600475174865211127877655010733918554787764656564685734868916981611882015800169668759939698305303605178447503760587727686965591183287320655518757589463880553326405219599981994098950177776822965902713567801859342153913449910000044702585100919132040945337968111086606209069965580237552609241690133097299071169517141833781891824527387191087461259958062689952734634771910441594328717995570166432880315561991402249461833771049124254867712173147771703991922002760002119914797853113005475263143615940410283444031608099864126772505842621581188302544978420836002834969609604548115531395628748475482673629528733130211479659665671754357318141899090124577629304831100973900369318835958036271169089235297624082908653341645111830886326107318198198354255016531707084200378594614092784957894140572044259435060844766251625533463302609970119331780544683764725088222976613316646948435559736868448394178479853443841205702562076007259155039130246885395619707498375420846551551747225214417931300537045259675913254371234113521800204825228425582252824541410120913869438912058423908832323502540514795242140312406663891231648714062480244043900447167624669551190042389390093882170300789204892609140991530636653668544315091141957881330768129334054051942373554454378407119797033306905854212708119140611132007043907287029121720672697555293826491338949514398015008707514614390000322490069470153887131783447029656264010384824243054833344194596625486302284499186189476157687209097519152734681888096698069305032805519884789088217992589640128619578135077547661061295805502824410034121643285290546467743891731780670450029818504639219380923688810907924045745354217276594053997336327344497377483780618262123658296917119135830778323121170082449934019620021342376666690344494433152351445922343477633531567610565077619364851342356425986669923044223582941946989549486714423228407642894758410688175862789956035245305124344723442690404238892435905682208303782000478384888820275257550378865180261936940097931910006418000649022350681952857461748631025343848505180733653112410191225383983694126806725870035521020151682565178311860032488141743287857265087933444254086707451537410334662723181012825892764336183107649577394674527631432401891133192839791271009909762008819519048762472920286706136675824224949784005925470215414604292073323595236898565236533255858438761254241166556734320923839181929568946187681353204405600544550256105433626407416040320548117593134239729283475878132276614556018396480086695931715388620720195591331029316707508463358716574213787526849439229213110673321322442325076822415491377155422675367658914276108187033437288446976476645287820492247835928853414962751552792586966519591495256304011652267423066763636562265620621003191959081440349521841208166560599061928020985372963571314610272978913484240747530344893715181337017366896889836068885378970752038082254071824098577022125461112090584806025952286074423090984358710654819426486093952559003685628794923359851963956910156441713314330455205872107813594156547948866707550241615203272305775500328958517508449234245569094766883706677887119209000545895796740362002946459106777865935911932896097148541793884319601530730214043979880528311864771251488391699970746094585210661164272552401293275241492516068434770767999448221489598820608028999714281821680178246112730934586443574432707099173962815290977380671015484711756149760715329271054728126280659722342260636915648166381050452351615460792398520719942149190415194438477795697112194070721335230313093883495113001567075767267235203661827660364297426078394870472976648113484095104484007119850854557480072702013674332225597354066374351138595293371603008198952515777280241521796181199800536006820797984467410489388366750655347479483393573564257529417728133175740002333633983077506103809310582026032670552787999192156852868001568161145889790359867391065804118354658156381698115249310414797239473451549505296137035364392715897768955216877362724162726907343972965542752571244548767461747619206189044836178678753130261032064226904927020658236047779062447037597876870532659714283062721015545771341310219778674528595209560995319302148543134121518325536845471211172773268854414046352215735087048258055761349866256653080993428202678583486016657174183474627653125582800298339089135525153086552595490561347752654646816300447306449213980525231469144075615801787437459786704643237321695128432929758401812834393865949057193495505576538465403798518452784793502440082269762776166511591309499267856874801967272826923936663629881768481575682150099850538043560755812186060877073675227884010347185158627252774919935551740781622210493892566143419331847256014022122512520169942265180596444428705254086425980637411722479826503597864461259364418123972837230456317472269399174977841206725719825756532572895933891919720314231823955018578252479354091432302682432128500019502396754974839652920206959360075781297902296974262358516814682394568910324313118067108341650695336767006141532430423527225889585447059426477031839344687935742241902410842554463779745695055206866360240917543447111426389623375510190159973733913455506326024785261802704281132120488746166457543673964406952336468911706663925026356336009483267147495844882321102077562017915215765035085874186378105225403457991170903417908645637772368041264838083111247868292332303412342724160730906410911708663707644142344353347444095369033801926792055182342925050468313242680494910351701793696087311515765135218706467086251995544683633486014706100491701470260500448294800030793614503760396980884823106075926785685617237424222108203493819283552732368166281346622716767246061882488423058625037027511341271250665413805976328075232832186393098449495006529855765270962063835743846753740063091953271508013034933042620654528145527918379533416482476258293449724248282272625925971388923608630010402120997877363109543649190470223958022485101381498857710720066015865245993006278642248494203196498686375539831149574674339913789881599582381333332938047850056953564505565141471560246382462276496858501351560899589150493350044580111054698421724530727767269923730332664745715656319210666325219597588427678023114139690745634518914911456696133378315687658232743535820053420642507059380137832288644181904750535512333730058969440776171356695679734769127079012149245389457691147877154679982793983548711439676446597386213933652909455413364273342327826771918922828606223789507979812915660664875801104596334945245327641361672730504195568851774359766549199014404000739699670451178586758389852261148662195680538410575527541360084945532427631509175721527986948073666248555473878262176448617977202044115347676030975094211348534837609553545180113380289080927072899889753027130861503164843336981506791826385298368377572288779246003755429432522441252838278550918001761040634328428847513548332339583855849578146287958772366790584422314925423701656875843264304977192346238841303753537490371922646563621809573495663654273365143956852147301028990061714166291854742091233679789272968740319392206914246367123940074307647534296569304857246208208471196266079761681794903853860876679373107595625710829275067873152393433735783238501594000490567582602101341292341768264221524685025455222412567299486298491021048901279018523968817302030746885056050610624292714788900766990843296525412921718823203292036133029658957467789830598657631495037076932776641218289262794604076975282959885116725116763463321195850756007715655772926420484709645733789082138311616100388780775515192514668144184843813867095286720877351968833110713420786016135058787889175653196164737990811708899705202185602761841462590193477366819266187276948860237773113226068066326146354510557514249565927236431671299979118078200472763190804156838836645224899533327693826834013427691941772278477071867495231606784778423084298721653969678202415057751184517680481367289429197244655355367438188863891648041149565837124090552312530933162311971348904471553200920198695410021992402167364183693229971032756346317444028809990155382514462161748714237390899234129923180234521663580171812178385184099372279056769163241302124415533250554488910969110238985058877287382509525365587273321036396595423324324771310219836067485308445223009299138487764008873362441825835538996353520437419660222017653115747317335834851320507367017367457451288559993197803535607806649944853718157262517629220420381200971624825231234820876311576661960582231530074673465638116952496480854092111364792350675632027051413878231090394472211274427127601123865485557534338982099792906344736243001529604502125629490197575976535447527487016553600062311815662413540516930570668133420404324464022885652268663375358285982731346900576739558544602626355439247797877859856208914831865099634553638985697110658755912246130921141293173084996372346899922763714660746202017235317259090624462800425918092007220831599388353113849104801739273250068927116365864896304979470759142648088877770233289571491890748612945772342326728693717574166097983322008836952036392601964724202824036229876091414593387671827208038389541498104755138632575096637985053989399203479387847573484374309643038444737342080786136436270180937060025570496533030756187054352964360060254406374385344646332415793741202599985876297049155491083557339481267555181925060572293883370683946852717664470095536842077680275147849705938067192771102618426795968935857079259365147607099682901903597866542141790213163827276951515722615518748145524375292293239186277281078135562100813111891321777218854515116912577124824043450998206599659186392927935633628529159515567362150919846474048461844722944419526103089971944095443232836067862798270160732989658599139263481291135326462212445948766414288823569572032053096689506685780048071586595251438098741316498263546790472178059284026237115638565531853808879287607097361097695894416616734451012504084968373627330369044395737393314919525561009857702662375312374595723726713904790064839024226708869959884420771864241651157852335328995977374842923962166492798722934200475409346908996997716657634419648882260231041152414807730477539451498958643507108249544034334089517131997987209308848990033862374334528655014108194844336474750490857331797491827925424308223317080183557334490032651743475842308127288475339924140370184880024880631398092932241495705879151637192817583621431320949390114865755297541541756246375187422996488246572490856252966609164729002649373478487850451581734747276251564974187585452696288161609353989302820002880086376950127199987452201432131303975849639504215311919265795092921487674570194533147776171913350272178094512056106576479199129246040926461399370688291374561900968405111425950159092118589814542094432371122956295637411693893528319663461837018726560734750310075969811781899363973546373306556103446133492472828546935787232831978788078536632225332965818463435114592425301505959753867824157987081875483190807176768331780662404921427946061101422826609628841861563137140996318697693093299171695390482529294071452664229100675376590037025511060848938542762160647906889925385343150130390766925091579510148332165998030436929210517388834779573781101062259349887985628506973788483472508445011093522468861166954882531758070521790020060431050398514674098707934583509964969441154232917771855644477509727181212449840096334032334524969746668536459953191684218858193705330265157778655669111928588104081499196119957773027172122322580874421973323867642390910962656765174030648910361402122716908041815133462649838662157920676858667597711655364088918653789307999529322773646682393128636600930136766689404847401804324672947681334212853977668069328598568297475283124435073335386989158179542174303783363262168183397076411168952319705574149696918771565156826552132506832623012697579249153840742021394379454670588734165267283200095960823896821443134949948793740316622858811091899624385478919093817134121889789072860162906683101307734344001990463546211518050130883611254485788774576201341380396533469458490169299077019572717610408427149076050711090623000203917818206778388593471670064652069842349929286063009263365930740575055074627978938668602500100012209349538373276211771131663120624890086006847825787359476754561644933720133337406659571724269115273817888206902449371081484628747039067826853073996646544301750773907441066110283196569674971986590346470712594514196195497947574212076589500408089250799912297865610898468938266131131647045916233847734928545850637696128022025629098481436859127860591704318304571303296435557403563371995071873218486106519433184706441773479945200810991099429264245584856057351463250942569117064268398022137060557045628158059230409865565584682769066664055756866094272680904633644203681896460245974450266861608961431003662101543861372940078246420296030059764227891157766642815488332990566337569313642020557728723459734278251309590480656233106360061171460548623326609949147496414890167645446919899362287408879963787087628986901907157105925892116913227473492597451043916606606376754069466142554755337331789227042321555820166961410526854767794717759597343969243775967597828496919482990817350253966350068031471746726860966951573299878000407176820760433717370881668683179845612899798796722978507860071644669076329522286494272956915540514057303247318551289316653913722286872845704435926328598929856178044457334040987928671070383059659641927401348877105726060125086753734840688315081429427109644683216563592986852492121911774402110457237170619445144829080274017713319790901397403757177655869864782140116805237021284127312217377139507834928312083950910617838457598267177711983798997569601102333099309136178536162433302204880150246562925393242980297139385947940071601204033389906287882745375243642454820662947327581215123660525945097013114923402394498603389652609076646987725009667461795553259467002639487069295878341318095430542947320224753962812058106170062809462625087253666456239645199598909478685505785095456890034683056721267331384922141882995601516263378400459728369401357054543585374397923882842884081934555397452609768902459164452899819856150721012962934634122151798893310534775017296802694901083556727901657937611284125214377258517515562490892053812650930603629142147613239014188096136741323253907176217602318621128341672717078120233564467950291832457579326104403663244709088656651386285438995475699213649816537847720120423170962299275447162266382841674195715103169198746545858736200696794246010973472978067362134584453771792896868254563458702250475088581090321101945548530369958941560267036185183675829772331271867807530439674161017099204486371939251021053459160003384739207186274476794455776135956704330402385784021632342181337462412058061371330995802044621774697375464933038155703975219316697769447497933949301507739728223220994691644639506273767206565857333857399927355262337058487979753175640628887166135301558454489456232435778079958140928537911750160260334765155232310097984095186725299713073920378048696326630674067346238586229842712720913151499145581913825872781245119284592962710798500063805414052086662393226091328176493125629166838360659453146972265896195143707798810477383551447905431924786299835259411390227855702087687283494640909761877335623146578556245363954404133460970673767178408343034085093209670717450355872430992241747416426806857470166588832506815918576042827320303158612260911778726173408102589106508383994020246144749760904022610388473140464233835868378913456220522603199279135955922638018200580676654130009177663871180777668084967373299299188478724420012085259251515523168085645411780328403543400492954463271005529052358527666655193634332197916210841792922605418644067216180901957718909727921663254823832042583194169621055993961891478027201014065306745572627181271462363859584001846097330811103109265763063224903538873733080946950124446558044858253697352859122426670976977750728323354672966907184236571016470760163249379023352027421455267280397464377787573045347930465800516099197708838694668660207087423363013764161918359806379258773107183720180205465077523083819386759319050693907799211124780643042365905171432744613601364521039353871885181692560875338582239908290710322987028646720350126578910333213406070241119778658311676323733148229733579160374493663284603732990261050883437388177003796122698379893844137291558991579767440106527187641016197937667800493672248963330527699662336309717494333562572986751221040950360582872951315785535752072912930027685080302525740615007023566661427426505135411670362736210704440632565921681685289972919092747595788044538503490097539307455705626866409311934175410808845464376926677172183317344723878793585912625237599272056835032460514725475410637463342367371412827408730903231849333473691192981570706336526388333890231477648632343238621805300407622120429433080197230808297122554505582364748521912639745392295055119271180419926701726530139008946790426119014786922785441850133974939169071631469893893606706394123747022638277817328614512159948923240190114874758760898455886619341382789633611541025357811373412308069986404905545544659024532545632367896586291239036849167682600962572449460703029284556022623984435916494318714815321908670882480137907917558610941301962353381969453002942081378022977365535408259828405226812373831456939048638183614923615951724849776643476480494269051242808980477932374820274750223313289895434506658197120857161965429994031784056333203392543375409554228432090711438876344898298614615031236547324941451378582930673932841674614282294330888293166369811470640911119294384085356854217849088855567922319075554062836853309145707098187705821779846200804460414703937035316007399989617872830476170099797333216336185541821946670658003886481379063746942277898543114214826415636300837206963816924098701648603357096540487101962670730107443527720152020368502900227733868507538664771364804667778371302784931805494894744957959908151451317980142398438870939088950919951063052987179963788225831234039741559384330156235629162802946590793918405064049027861421340177956700698608020060700960583859273012396182038171895281315662447300255068956106147051808128016946149564203002994639675650817958157835827105268312633640129620335610018238567095497273078599286692189489204401826763718338958163016408793697323151692549234866352577946449182664105838440610117239474012754147399327419622718400003551954462852006760821879629535327922010589842900941812495808233614161898392572488627851935035493506451774752472358608863283194873446296664054391269220061229676460331812455842885611650106206295008468120179012961683421498410484287865431167303225487722035213965955980514979287706896884236434300557920227034043297909899873658020292905148348732069002162517191132682694500191728440573373694571836695525072338298306714867900359758936045678316274922786824464302945840573417567550178093931782400702965919121649555172746082775003584186811576086151028253210813874392249240608278514321715008360278928859723470639716943587931175231498811382883428586892550780966689049955702638887117419237831498834516516848160763907896222418558133701298717540112753431367813525450329733783941664923226527755733931635198681302475372007150609110343794915854135776014450325093987267236125686569705073208311774539918367739502325011383777123244440981632162736750666243775091109748728249762504945050009177646853787722795716375869051225972807379729274848480808288421241463195745795500169803167343884499167731504889660055944362644743966301687129960707940127263225197523180918639589813232064924623863127830880565885199332529445620748898899713300805517238207773274645536654010936921187186370664691166392054626639341626833693335235319768881971188142135559715762813414734404695546547013272890169704723126553392481010152587342187039043886627611530114326336859836092471272794354633964692232118757955313930483839998307436883878437343550040343207265197643155915924565110820360566334051982228019734827591374281820698599079945713636466956641920276822544108536240094674417234350722398663494022357376698221144036778767617108580897434813509167144390074222439844313245672078463081811804974573575988894745551253002050913678102630734163362258136802098450253053328951997895172868286528667444828999588856997251065911302916177186456439935395646857444344190530807387288239891046300904008649398007648266148069419164793911583438454100062345723266684789953139511164346081052295187966480536748741139114139825899852008225603937476273030329501147359432137590590256210835811895638886842944315118021677782283617801821615988264240075254376896988600042957982099203434698752505445543350795128948756585410708089233930325246502920587854096904663590319647703523919304818157350414334722659701805924318493108171440390704077367415162151629985987125532481762171259273035412948965794922344018714175018696840339376242959746481760245448284915900100389856750849983054640060564007806284470404883663917800350285525168404223206416816161609076956370733759621135438622908945910636926278058041811879209569037569022816274309063357104669800654981595706809261224422396790668225793614183867135160256357564687818285459754705571540922050615454301536469101773547059544964487377427713977568290990802174939124409283419504810871804769148885925054092066137517121516024219025090114618725163565895621776286362330835414635472686943743222292676681521339382683765299015349319341498004175178420441713145539731268943478371296757433639859630133241484166575061427657607523475905719366834671030840480447127887044188601600882952907813163435458981367750322001212937546731691129987823410408770672963300107994253296980913264448558002024228927986188108470341434095421700770823000283977993269612795561061473436708464630030692752009638456660809745507706744784257659946591258095090743359192455463411180935927392147982203807962177376921178830826343148293649872775081813091685488005755948663763720074824971916989048395238187583122608774565778969953055445025472903201229163983480735942457542823144632299309851647198623269415076999321518470367064244022102679913706791739576734488706629529942241306580968301597178552010435117853479522569013137503628324204742330006496940844750330611422242443170595524408417856450534527362138067860850941682071140688189543853564422672286516949344374458632304922282335994896236179546178519458393877518528500428480794921139678092630546430499065914991987716803960508569861806890219424215335242985801993433487068484959535507359477965404027683540079610353447505451944240520363956448063357362737241003521940844529214693886974715387391549717943056467031714054374450169132596613622508925999813764795461472960312094783650676793021902987057003631533850941522834522033663097960095266732114474553082977384887749471587290426795183504536352863246241556707386941085298373986384098135445286538021884426827356320970232963573016209647300773913353001476966106044173720948658894111748295746663964517805926640354663619241860893688705004182402184949434014854960518552318871183494240679007163251971594280567276330796753776824119977636961994617256380004923895711245588677532195795222704119620117484599865141451095857889038140816173905447840723525192105203376028522600405029215176360377667769363338052989440969486307256529994964218565273927269165292127424129229771323941951007452999667473704896161545150633038341983231221503379380372818825401832449814353691754248210861335883755959660761884552679722800520512010253459537744214510613691708994790749497437142324765314885183807582954594171942326301387659423507967139334171467842868578116564776188252963649727056392868393304003661349114110169696180122581837344481195118601564223044392495054638014553286005326475797617661247229014828071692952519726977047847203012269875942345294312465811331110738760473084091275286185337745905766474365936383658799093393474413334215783347906422623017519149391607580477723792999592114584203834835745447675029512867574502556443636311940897541797898896827665012132424903447615521959621996060428491551538667136959314668914866404157173196813280302890426070073802184650376958062648672438314629293316870853874560243788165854126844331432932372048741838040461057168731838540274108197723120532878274142263641536857639748200161511430095496875589683719604728692294033259855619121254151459632246926945781574675632886713796340238802121115045767674692685302855447531029875995764110857963992185296251898658037266660953723631861766922525607662239858122349655852590167200262453788372892747331978520691813410796407435455286908512862287771312117340260564132901121290096964537515016882555108152435981879778709754825029384258943653122423629404345275108982116795203662973215936857512712551346412756768162719702927049027745381336808272551951570623275719356802433574949749026587970632725653826546857554489543134353590022561743598775277563199219440306646242059855812172523316076831960914475540210563458360014015040670933323452634107143326096724052193759018101896328968886593816354458040573471267293538979618949516778319417054100888040197749151227601500313746557023019180593500288566186601137003705913519168260745094903435990515956836328765274844376516393257704369066733235473194233308480885180588883742591034418124540945202548603649670407732434520836091870247245260405690610343159857706185977663262216314104828935136259522022101640144744109312554307847516830355153649693788936927715438851725226750922115132752561683975148851376002774771816694047283047926465309632818974347199179577276750545987240325573372521065098166447337958746367122310112243670233190243007704749164828303912671284575431928060448588802665401583462459051787130569164977191291721031470186413555962892395308050761423205033222382707620041696542961116442721622699434811305568972119547708536432096175429090966050365186198104075396193760112839839766617082887534698623572720283593296493885064902671242590769588666173446548989377647374199537891527942424793204600441771804787664475214248221675694726384492473616164767979123064663860057431130110539468628144787314549473603092947481180314097744089245821991541547879180122805665547559403271398544489189921506418801721063925212304225202495803132269877927067369951664298782950330057028548540756308003190637689631806020882090729275912273461133244333701678621012106368946990952864814540950653699561126897310888299871844420966637426978339594910239983438816258258999363089905319970408826136486075493729620601446682493370028425664297761483373343636960647624889352556755181698349908052365703404940160559498414562765968560471277474080460851858709697163788124484666478890980014866134650842278761381563256400350230990782027475499004939246009377892940949131160169438499634938976585637768503583943853071253450233292598693357013438350973843349868021234098280327768327740851576188862779514873844954723530127348483163109932549308696851592514012273794221585488296177392567120690340287666680754730649799246542522770316048314057168390450050312605937150190504079938162887988119757715578423116713887464954488733310745768748177431618287566606627355482046013871204182350897167215222934241213903153722686421120549761048009831342600767519446336472321416992152121214681865288793947468908374144437951358525229948985271374326651913402320167787397201344309517357893278192293515104776331625163027791057849505096339375747327666268204848851757259798495406603475638069238565616531020958246055319012921910730944226405804097722800012575201202339699877216996168513087539329128969631482435671239217921521417298329744281812268172219126200097770145464872566251643451259407765454714080756898040903390540956774117826534993135077665311198547690109048846687318431034732666111315830313634653173947564623879291853812949044962479265826144107062230124116563007865730909557978884017441735170167454494482222489056382345191356774691543358843008505741899900248262835642764683756480343099393478032826013313987643048115108471303648271267099413921847013116980106643063704745087106541883678034988895136734511787005745221032780298067501846358412131746574540915678635374521829380977972532240409863461599843591125289722737877407884254599658564501236495067721683249404431230489035977687355542918735720102356591681519501489628564246970724526276529450104223468342980117347723157176581280468259089569849925391271856145048740662514504209558219188751239376761910585743337805319336570222285505663610700734235043156267356735781459377558336549324704458813903783284321924689666770991862542878622387095099776995195406668798982781096783857108955805924936856339175177930260399559248928069501321701207554065486502811396867643212945643683274321770389364649639092282797640731811904806612648467750393700559132984131823710265317302100731921450691256091258721915786020879310425907628842454890419607935686721489742485988469636351514895441591204005517855098459631543378176921428122065241556275288480168293996588383332768629069631148271776661031708312370103480427260773482558554904817305023626639960599775649325562003646537245401908518981784504251019653184124279993525413555348425272435904394235884091367775844900124052231304770547709810402188647075492282780669682135746117021281796707715855080085962984650339384631408095150309496915806002615805764239124566472975857983972391543654510763907163113454147323445685576722505519549695085693949471265552827936667415625456808169364019241017829226668773202670695282058822934715814473521209288775594624325502425942002431066183919686542563136094260089321014450237176051922411155782908507396943461023789945108606906461705880127334657666817158300915000699806887667386316667226207186143703800009522874162275923386712507681329859426280821257438561814097884509775757858093957930812829276022916671685332734390591615312827991738798192066096217654440587096552099053533614799410259302917222534228822278541627057738072587016386688609701493471899328935526501788137336132208937885798074666638125481951952996284185713074226836040800840711251809393777964859683127301406907602123879016598900317434395778171343293619967312222409693880660116138865689929637307698372073353142425553008495005843907522087424330651585845877512202676995147174479800603008504866894121402650394023598647150391769575534924970791163114385739144491738580330881439370114934934208837012893034746990125895006457635706308706633798051236364718602159980734363505961676355021594322895959670316429614805510142974669042292007966010504933052072195000767444730813526375079377621106168073849056171570688052055209328113126275431343802178033063787917628392387216314040138487306002793332759226698039000560318096872574901403271854787228860118464861825225091570659221027558765594377650353721091601595430674361247238099563534826814824646608142617099860329526963338131626588437357352641733717704025800972344854992841818724174040871547882092355492330703667191604855695273234582939256063919788214223331978869136254728777367854931390929043702869100543980664790171224266399694750567518608638808656385841523564487195614860151307381366806181033493878243536981043728826352929764904147329192805050736377939303384533832746009989007044914182518889436363652725288814776300371215380696181105139759956533013495902611842684829566320427428193406348602405151351506468479823762999770886748536839069699841207082057224823046720679790678328615167889422410748613052781729137482887473297825321815131344055952503375043945969385642812974628856992206056977755912051712129089256630261382479658054842423749582861415706282629661564784094264424397439568611868464914122382934222359511950652918783901756271653399264487601923158869346468963571341333517879636981219271723601951039367108443163539979361204575734055716768971470157841949368953995172462824650560705171240234236692481086200450120124853374534458680123124212524097311063680015461954977548741753350275628945169660220089410922317876856881788694077390988363063445903914283581966641923723917701191283649012225522049551163411710594518897426411742946758347550340045112154123969547898231259705812114239222744296673700434862467688944192570497950787318440003957389864497612720220598651818058341473224120510549652680319633702887126145504941301749344032999086433359850235662967328477937206597542196268852721872592409205411463776558727987200277287956288538812439000922071323296910980380581019243840068117646014539773720591333861406464676730249089768095245030611672324687729130441535620605040616291981584353850795424451003324276579530137216640205833615067891472089958068422348321034076446201717217289202619376169698217613593571189707337018759557561326409227256747496897527114550193641833973888944334612535534219661025556910587469532707020937122136877397541737746770641792501325903906068024509247688343169543250715356660014390731844046797971737327148089687355974583038261899575757579003766549566459937895589730778685496861893366264880860655152144228867373024543001111337276577886664536148331793980758625678373254039625285587478074981578384471976448293334887781637461095543147401089138430173104913261744039464049916503934212330619950243041401129718974028986230126544021441561302147496963839454716982379092181113983039140752228153432579151790537820533140603489851910155415417481027070495318427978679664681517935632925462990634119264277712193931961274204565743420526008009374348088026354800453520788736474171984550223976382855131323714566047964890402559948464132688149754212580943696987077822079623645390861958290759897596793772456516178322489746029188462381630127342967169878891227930884707858646568409046083468403760252510884798248557415484255322502342596221742419870605618039880947542993999960873620367148403146887233844724036508618565047770728981623778523398275579039395089515714206410513554899289218144378442526184417145064389786127001907870698666175888196240211206775320236699214894679051557635023643976101205566887677576250541784496932539914111476251927063095155776763360708586343779886235364103024610829856313751745884523454930911851840171621041870038373994159302307186425895821118157658085355768295917595125896501021838997890696416534273765095283989109081026384830109477778087992180714246311594117613506296044200889630101220582737690765335923585057992142578849692689530612544751561898591359915091714493782325940355173104342226551288290921592122682014613101346462973367989212756433380404440687106421166049322775014788521632132456339243836533310634235922144729222274894758329094019140263986555345479168528561878935885682731146829414707758119031801155373645440810733534979660871102912868141932680091473314181891859278507090045530643349253970478966831815236781606750709349207424095988047711315836772651485386277097959775529642829288104349084774035648912080163466946486853092043878264045056995319607956338065303529616721737795024845694544195542716160028071870771830784418147138379161707591456541876950376153288410321846879358106567765420051531928146245759135148018578945326191798961110228020021878120557011168822675218312583961613069828819067356818375041417772827095692447677401872722192727989710994856275874807011173913275689362641685392692153401328232257749183307972741871799828067140167110271489246905427190036913485023192047005017097832884144020037815147798199062062668889556136440358062992660293130208631933591857816554912350503019353292305272186694245079841244061016827815369020244745037100856226187631652635367665192305572261586564906585439912989354164584462328067368329960799122664490017388548042562640594019632762138133235674632846515953670762765033639668180434450754603746912652503743599981870482884070090219208521791416428042426606772302562623476893419948698166287941871767888558742005380737534478264915571955305146900299422812309868336134093646389734192841174200871900504657424081769763060113178645329651208725317623563422818897270484218302837728553226412230503849810332928568086744077679207240352655517619035916006881460066031973695099453074272694968459709990375947545877041857284879218183869774883665474147763295516850880032494001171153321384232967984161529781208361123581451059246094615024244063675996179503407979028975612848302463061977946825429872895361496700216196396068710543248938271883744364368140348114620687997223682315176040136939013254789680594940380039229676163723911511346361374394449367254593730860038626514726239574935726588223590716151242337344686354707700027369774739774952115978490336622192773429614275873669925192144229501247865067231636327201055199356481458303141303181154973803560237650072502926830229190696491392045480220326815609789005725704771160288166795507976841297492842094641368017331408072045539104884761836468500632488533540143702637263544384490357807383815641985108995081492462595199452636655075076937682424740050471284497980413105028078832390680146655744420587756463778306812355403039149698419667904736511161099972813991234979672439942260180768557798023119063950335418311326940656336401748770927918318124696913257169415861988141816226720072159803743529747564466460421584393703773487940035926415752516604761876157305400629462222882401009578053727841425360239035433383757995887221229887290825821702932367750470816922891838932325897143607383016285820054064500394994758259423918261790276817747495882932455271875908171721468262164664685962198897207784405710427878164666640338840375826678850019429936152863339854675366882709829821761487172696398456139318829149868304908930614167419683857493371200793706742051883918053937712016030033240084672725864891268136911321286049328043148620300314067692628402025818940658758363818422350571641970283757458897251322155698505171855605162215236141578118497354774114972042561381695490896522699579596928659364926698783230882499813428941800459760636376936169985632388858409086597088536540767080144082575258361435365496015595982074965215537823771037822671040697485496837770062120224456731871237658893778284877015624662931641518767175780259608442963345573282964022546845963087263647135704175601781633798389104531548806200401761010043626607520706244945925018501133628848119406627540743602922249422444779431876220847979969373968291367873194178988388473972527252739988440308874882469799261203230298866684665202736823680127225695859357364033503692215023088517538325615951347667941564658749407541966718588270866426667261370485355810074890566559821531833612845558021035724825894060402426219010821823921112730001242316517116537984625000748045880288960934444197940624658169426176476317689947158973849169629642118412659431894240948530546089221598790502121682598978166280883025061818873416973323352640270368873713254009705674252170960632460809057391523628369034364173892688323810966119934648391665187789896653948023059508756658968450918849407920033002959039404666140020074335751428389956418766117202378967134885092175344473526209226891553773737922046676389917947839156921230911843915944696835850930700088046265512587825833693650811302609767897831860856158092782142223921640077168686797113756298211664997273047654733531154426359027100689140090304721150195993094237180721509825945304247555156767619202009822364359629729677694297858067660067056717334771479872369142805874961079160585452574047473453660171591502624275581240440880542001643821919493450911635079142013307741468449850666112025868696595979822939905412058337372147941930790360122817304413882267333487468093856754662170671774976813615752370623703856215935356596371468592705169442931551366817245507816643532025378533993249571764119889694630916144404791170754781013645505570075222528855862376160869576901935215154855109711436319997542466692429078862988402296806773396442156456537200368640776377787337418597929288606974651460186265544963396281230994053060726500157185767629438143932433252504466078912403831178022399440750604933805965130202652724738456832137623143744123955354522687066244699036704326683652788271292737829488298514762925485319419249896532471211988026220532372630680143627903596223487032688290886383108267473907202995051719192516862616454317254629449069093815770942888058511854846818553378933337867200283494591651660248482732237175989154137507072227445225731845728486606296602496975498290727808569030285902239284466445253704131052466177653774012059524363820820648968126643759529699683385806823747659698444205610328672231462696175266658504423096329556218974032019341186200671451964860953192904523772805451490595999328414384324672851903583606808686545896715273083021936061506085723087377532351231046512457320076495100080877815277424721461487184065979224185550795131951523626757669739000614949718345575505329736166742389616415615289983717011769219876487448499369241902759989765815320571676138908386698894751126736619333382276521006562393495066594591231072446545978397240399352860165131766731011749563951597413970730205553978696924930981294220771227582922267867553789361380173381052775123464170507740996860339305930502938147462336725215215742199973587819749527440762531392128319221966908419915077949296260006078964120598323539606573849743531435052718068290199591601234789452516526604505005281709596114653384904699556472739005889384864113653975789560284428400977572452776326115552937878013705886948954176100448350316595340185607784137124396662423862651828425728350992865358369784951318401178117062592597865640971989807722041050970052562864795350336535587852175814210586336941047240122505678819883620444582312746677114583458882533863186315315341276631483207275675229150875299875152439772286658417055459235302998017089308190887385937965580622137060505134496239419879941890106057725607420504900607827064669885261871067569137056912519062049754266011579154069373939459409863284568552352671604218144456682073396602103984932471413243591805060927240666193820436771809022134415062552066719858369062415447240966095863955687364762080272461382975323749726592145257428448528728542666940233091252204427534889022516881001861834656686966224178028411093032661822718400113356642026936998752130476366479432135948469907603618508979231049836441622480207842539803321896630052350555802571853349191191697227389917570081295780193045383085644104919543721935478262685900396632674010363309145047728099175019583397890816193833730558987466611609788228038519094031406776741937025925021398911254751966900306479218015222292548219081553493947361708972324707744488217708471094461950971784265995481739708150247251520334449529669228811118966428665896167245385947597078380270820158940454822747634658960304193991191860409251063816870953646629571129045592790166822492380777601671961232706741598095664410967951807225012858656270553579252183780377489629487682601615341554953060496795245497741379628482276027172841432784155640454229279855406408074490588428638591166210207787930080952351154418759247670965384709685602395041619731049277034131313565337008925100054185523611085375188657925971676702548645879838868713000863738595713325161577093859977719694072845265118784422347384100552590934177177149124956559706575163338300343787895666311115937916432778238567831450969700603746802148873872326017599484020188286729579949812950750872175607874828147020793303132693969971911097465965488190341812614211935951128480439298292833384892424515687177310676301412187370880277588157713679865623359122099100145328119593865896025905649007123915031428547849975043216659723551381902891474158760200341237712539165123478730378370859090809606079402939908997374374892780075489387912410855909006643986848893830772454467889448698595622290523713346521941643423702438099245900642340966536705762512108612761511170748220965982290929222089753041929950905231075443328436262582044502759929713133369350675724933730296818257934642201141744615229172391518945714387902053722183603147730625309841867537162646456019327673203736034583411616883472746489603553712188261876756015292363017555633681831098263847378509928250820904642980809119991993608814656753538389893427978949433651340284645065965382360469459473377637962268029232739459560075685845551583750696108319417238030404229445752247671231347346446291767151737482788567895578932213916786001466107916226946584279578473720299899299717443958080199461866452462926146992433279897113561656027207690773867353607101569396016316141932413481882757723232407774976324488238945380565274485868216759070575511629490531569159992635673325060552187637294588976805698241689785586031323652479678713213466750873052586238006621561445544668583808440378188995893934120426323269957709432502502107504630902974868005497006886382660817940544809717026627189314662712119006334784749105830319348684028363656863923573387637641263609610089879557847169074002621095311738537540380115984745664361457559538558039016156382345915856709148094224272305045108989363838647649760062931168637996766585037006398724928976920253597535475536974653563151533704106598596007610962930946271642182221223927187099572992411877084750469515047507090805736451389965743581137520226217091032840447486731164132023197504457175148730935187053299889745434264332230653335028064528251177208437519272687653067656760600640142965278435315000693831930127792244180433574809549246682174522875588941218864321847499718741715628751870042309286693799992461818727834875904165837817230998544614115456548986992264519971807855134787914081456511788324699097825536288447132961733634575777066677444816910588992134202914869490854645479897695484107528600476531380078563073954214697901540167115425136262844871143543419931342571405984840104744977145949895087785688745139670418551752768427821235614623914216166460192297260484966587547683432090990206962801554874499154115652929958091023870711777414360711832434369485371413510562693617705938239034397136210879097322412646506831641327269181014197107178716710700549462582013357440884254137433680079035434129770476640544092291883399865225105235017753274182393941816649802550116534032909390076358328199416553196676309998539577401304667145032818460081658132299495325694721520631413319092962065716222612987625822150052764097363630853054820684883882865319030162794165827953090053847032226073481791582458056413817869281467272694732656871932366427201104473135389090220179329670994717036686312984274749892416373423697653448593614760633689297906752812869007566017343777809505943455874370041313800281366935808337705762666653269938069424467587372416970389144099135253816849517085087865145796025916568770028551804868169717170254063173836132604432697971430739035809169446836868374074702944169492640727039589778766292145805766366142858294599678100722057092655760957676011097599326893448617241232726003849398456583405854746121059536241221773162681941125304876412689005016060965638050458785773020399142539192331688176868425150787832182030798208064038638738722413880632218215585843791115565810017106059540780322387282964788516397173415246731199767832712566263979704708122601629777568824411906451879774179721269187650803708430034401185091148494387178252775695739809463154143768744099388333550177601240165887956183826060539589172804535506753343707993670119901234003687362035730648785525429838997915662926974804064280569828332586974149804501086385050736926913800780202561870193378375931208214814858912858640219203243130047831198708076129493561231996114930557667328694115644044561340801378901377321670111570222507930122101312144677633887096949899853198882960266091437649994448607701903607238739550437711576238877263999338590257770082330205716284284340854324887310453863187922964694713279261577255142307749794367128467768035976624154761551368842766006298393240932525638461567615729225461738082613860922245311633222252495780365530376664359517739936203541218301469773949539758849415988357871210541914938262309072476547515071056561690941354488917826367611951004462577590368909236392213203865588533372706085950647342229013029178695150049968339901490676195000947100392654354232042251060551064537362209473239112127606122359936634943224823316502298101511481740187967711305163634898596944811616687472012009047461936251234672469445976279645315627409679808303451849071711773402869877089680297546849697226429546001800432636124035029526035569390092120926459380654593556448086612097032218934490693776050068094916629389561658647821946761624969971305220093224643478244584242230481859172660144584419359131001346276492421113971831247781475728745892173797841501211069971934440571476010891930925282828189972376990573142325896376661666378853554121202789580870538318811200514311265227732099141362202672240983642015211646842261212884258455770048833969154849908173972425519894214490159465882048592748727696192556120619192571011478792220015707785051404737215506875071931929616870297423516676199968562358257864068023308399058003959241816916530133310486965526209510432309708269030141788304707981300475447257044278905844674996519505876918161102851960856294998619653514554419040573383274960966026467010732793152006496712764752694826106054697567557774202658120532450429698608011987385955741331560410550951503445153560458169552598459885850364853285291488131870295019613328228640372304190813841193513083385272418557140698155245287590698771487212116684749881674925643225578939033285734400289686669595442817325142487647666538919773201535269423056123019712247187842220866421872669165077640358054398922393403031911774350566057608629637527174736350283726674747377995408140989370457687610972817358577513936468638056741087800704847474177002129166875359172928713839319766953499547295408817221408952709663287820544980781981499084316035542586759587484599514519097507034127263200258661045766184665881149502761931057320314860362792432586224124178929297463837742740542023016538322194162701006647969082550147990625012281655763790567709913183177059820215521779078628730785515562093062337467247002069647781913500688636945909945145594333238831074871689142689346252121944200895800605579821723044526179635418999341207645754599603855517955535838822755173537957178799546649526681959057863532096111720192112123897646678464348387605399622031579691780835235459096622436278485778414795824108109827103548278793775838883698622637960367325937084919023273883723466885300269666348206360595005509953892738873931540037276306791241000617984195815525665976177015073536272888347261839111415947753286484080779162972145838407953449382352300778212183597157287591982092709064712685335232450156760274558613957684691135357074157236946712532416833416969246071892509764586502720601341163436231453847676992024943469841735511171066700488155856048097951476551248703111145918656152291681972343235345908620045017502467008536251339750489245610378255317231204261422899060563458349645257520619069484578681222665102041347773510639035299372612890758476432121353006356368307711052150540699063335606494263178903886267219463604149595887229048483481895095366279112068088792339793535451571154089075333348123866811917031069106883302337496532705261423380136495860539807404490142967150015696379652809394580057947063500272023641018758771198562872619121225842941209742315407882071505733722845222972637739540864090261700210647702346134444412497486217604207935808836275286717711277516172329237288043166491296657727825443146524936134568576951440116192898368238893305388965616462497041185099422326407951759332511695909129449361903363287468507057156683393577253632575985099051896275275175828454171241029428551842472087111596051556841019810812002587478634276786381197118282926814342549066568807251615773569170075766564369238959964784372262604168537174767333117906798859749889455119283176478808421544408356071034998790928516505600643235812986574007085814524755558645148423664635486776192072774609985661865732357884677143832968514922732288569108693569028524030959124550801321429866123139390890785712971245734069855043442121993219045561924812276201462956441937561068831187403733443871115669014106432105910855675244447926515414581069378192840244854526878920185586335652145161381140101755775799814913112568039812690489088263266300597235995392681589065514553051594693865533863990772941625722946173889840624203244927657002014225741721225400432120105258084655505426435557535517089758098805109512894172223427762685560371329724275957383841051040650080691648299690866573235411924474547324741253548846026833629484255621934399199134187402085217613331243400359129502696311702733142501657324575937219890695818068779269634683723719758623853871709144836874056631590448450789120365960496131297863256595497946769811080107826347863877174013102675008174860084749741026016115370433485572211556613244584380485424611177271548205088505755582678639873548753888444829185088483986324073709490047152922800591515387683959878489446530963513346202912000368279989285172234529632407231160849081648249863600762911415171924343565371483971650939560188398340166683140787868073267336704852619212455947266609300972164617672311542331493653165027506997655793431413465109398462121379495033467731000183887524887790996273987332555097816159043432356590807236413945329148727882565093883584545715928411926337554992140567900876064724395474777388334798886389093610419255509510208735219578926077673278667147749568741407581222623600286821557999718515215786917058063891864338474125277363510769904474959660495557698833236007857284930505141444012965684029798517050971565198201372703163059712220066092757361922472662398304538319531736404499446465967376310096889412456176119148060083953214071102329319529822105654867957260616841286580834126530607092039567877969223008348243645609022310390900295481990398601418707475964694910062665978758352653256430781262793996714531913295807482208282943208158986619244679459434575393906446882226438066982941345481201281812156431789826150983316498506580257493613188865178613521010600488337514040800047114851262447587224001524982359158251307850161709277922509864976220049040303654608839039334500768770152093164512158486086514330766716537764331198530034332059493098781474830327602763205959449838896667248927619054309907214059661179899308775526797745492852324821624574565063785940745560823726565958249923206303407119810603343863339976673840776058192619143119605549867745054652737070727501653507587675586989019146013092492694477634520261271791028214965312662485590285049572343326850545189750451253900623706246762807178444323254139457507444780381452773462206842293127583176471886509079327091273357137543524224849149150654165389267763117770493023208979422161804791312026825711931872169095831266151138041786974191448563469240172326254116451459469165721150235837152692628636203992640811005104938968316136764621676527364699559088427726499477970410552574700358028529171153531818870720992065961676713389157017248816987759433568754800566103214392537118745608866537732795287825651705528654273498524229155445047901961978962467660829136715401639557687211144248029230002093490374724716036579080547718416090575241728785556997257037243946349540327534446282099206041704764493356525946914969197585066589579424121625654516790889324482626329777432634659843467158610593345425010962224619121105422562376549931853093489702710740489580175144100027278530250174305564024589400483724720943708330745276174888611436461256012624038386861627526642663475438333649771744492479581894913378736096954797659342278389100130670877840502887205786810672565686295722250551294755688744585438472248741073820631689953490528291871702614818532158397139673186192820658716269362818995659963345485612160339430506402610984489717890217101464786758057528511741446669016222863246187002644849546732888152362585274471648937070440901723154521231259440303324270124953445259877654080483545724613905008304353566575013712175087469410318606965430947836635744657643633543363149796681692567946274763060988197752392178502680300106470093402537478840310293985496351074376433059401239284611638420914268520960126725185701381062825467110935090868049548700408854773772812501392444667932104700291100811546238726745263972077045680409842972426396070088439385048954194701961762328938493507446513741526974160016495823812203460039453696462449486288944039393348893269532706873445799758198765815568047072422313582135984283312099761735885617025243120883634961478122935723591350713105343764261450011209160598536589951612064007291071167920915599330312461868191908312730318853694223005635092592940912342475392974967760952261198520855009657755295040072817454279353554421687930909985532342326236455242372918114255571005469354076932979536031924506411239832885723004262733946438523667605979738967458031274190560305272692215882630063308804929813064085209159384352893175897660994306139800127635613465012167531152329786197404713642454110227195544744565854810354338356896764228952619543126595494600549328000394906957974043059620994864758435217716180788778297101141292325443110442425720402525185369987156459052365653722444174385846548293612303948765682008029856952328103753548914365620132203063747979722504604483521234392110962918061541707319618702914574785109062207146679897676125418342545150822377342623322455440128723707194813231464495057361882991554934735320793008687797362826678328415415416597890410007877704081504309784036331182810467856525901423261030722046746191624976414369187508808380470217730620179801583033757532689169458849223439674530648363884898768328973160545631878300248036159440649692265647553761214132825124819360412808724583446270967484037584324065961536964426316815105740486314901567507509084179934173171703096132233269148508222294566525203658781918866945489733393796145595049350066988766420241159367451681559655059302792152004198811096284468549884765291821112076891058498059316849389213501284151177880714141674959154728789771260325284423231196975961016921291102208819535814425459592143013098175026870415875620207962905711739877358541140007971333926427918774579872311985990023890621395918029310479049461443340341089975517194678293910408092629567929585767843588912642704621102351709553050701849758957158311374630274462623138181876725391910850270533693701755343507051609652114286400000114114476076657192108649439032499011730609784532663752040255983008906050575406113553669385860995330363491025983719942990963641547066505657230494973490319052992577448978605391492627395369075595320599216843395077052864242496397281466388067915336762989799065444492884134338709783061462189292138229464317770444172654416493808315125692534282232641753619042054115198090549828068893420958203733096177294878548849953862626639863797267851387365478128978042842481981193233192738640001213017409347141544467663814388143582790411948344728860672000201887466764219885010276528621335961173231809712174626438046405381546849570001878185393959137491799463606425948611664795857099931188093810263348699094187004322155766091414051214287665714767442084146222210579943865038937573304611272486007383509261415023647412378640929619034686005495440440584199453381821624985466167021615539568450898973126073733309061778021052001863181627807404279743772208205736230153511911777569786238036682041055081134340351080057784413759520881281281813839977093380770214828301988350736882025298077380896439027416104643982481351527704483914715589290258512365351226169712792889593920847187462298101026599898808622572655394436302634626172576736835181111592225131949889755174879611514418561714304170315842641979979092494991862369728342757843537065625819937651014854492397778743807308015086414961638820137967884685138323266379561108310184324862192473194279558932507471738367560715476366621415731104713124796949431933082433674233372127602288866873887766672217441105765467184281833787632816572744316050066350191517624627130486975211123152424959168236165490730361810770119921153078658362726852394231582068606803497963521596413323503302389049691527144871510665224981342027052754585195474822733374868136322085313896641385417654464089047416240191647978093105578203621373093712278664197839361021603328146660725116051389052788603616590776690085440614338083654468311711596579408754258650518453521591410497276749942828758651768439380252058038110320448617426208479490457337950077330295317769216410521692033161985390391657141342648152972071769686225266909365757015859496610418313745639358578651202125080915499016815075229143171826714848316393721034629453511038171447630335437011365737805921645475297424083463821331389213645033223485651568693246405552516913833346682045205006412308323402159276438223872065458774451571435596437733218667888622100335760272490816392496383019434792971431287226098925271129563266678040542567436937628509443529869528276692364468745861520957430535398016624096619725782542502884587620947007775403748385851342124971914829816884500740623241140756403882273708353400060073848513456628681360231901507659263394761027840935786448203573451930787616106739355882805932955116926001451851394525816858591951039221983422974467555545551659593726862221051496539838321237227254232921497023859312610138444742933154750028831237393917113639896027085958491989477337333216864394948251607980900642373487217858838770459290386010903372942424634524264207144764055528513347175690585594061782584090990728959178228538068124871603344138185193297811157848972446408405742593486403338976962966912503153350019375667994849929049118894225601472887093907711176817163207628908911406381802938316551374683358565505754255703734864655947554169201015019496649473497312357521466765916302894861825637373823826400710724409406309453844430114371499864909676827787675333375890966589718087952960014962735175448056504490521447263870539306011196209434757609588443615949996374007791646920405454762388894068803856383969172099676961681926063010174354960516669634127890930261726143509369585604237578350943100236161864264757225789205331425822002814581655212739631811394171244761466956655527379796305485710134437155202960629447752767784268008037110162371574710320306998510936236800007868553094594031656778848495151613967106998833813199402495286765316681887335412992655365803556933259893108787568446582900642547341820767383070076687008632859927261094437180001695642237659185005133193292940633930625478109735847791132832627600368274579399062246983843700316099165561329997283995758700545837115862842925237401021274956983093338264484946247254533933292004489405102021526044698969845089323288818937254441962587713146834205769830590989330799729904326741049979913277370966149349346888194163000696892876225738607255501843506764861351595470033123847979326155160779335458981861431518601644086056315778240635643727455457755195087507787860439527009182655574970329614038379510485344547317687483033613666945784899603604681868802220214718634469278249487867297262593680112209639761026562165481182019624303959163121316974102073606398428367794203931139153234521808410538044422370249518863091456447426737840501719220025224221291217270143081944157733327497084101266562180507566565189978035754413142290367869752653226471365126557875580553634240364114784589389992157932206164094092912532252584069846021476720555855362950546979328651834790801321167941257191185065177907332649501339629871169922904403984261312038010934633490906251287804618675575918864202544713058927957333458324719092054932863568001562244459198785540983644181080449464819676576393493231549635764506218656361678618203318726093995573457433582858561345637188467655066933297759212095734411650742939002757075792003890265613852248600361334798332994109814334962926305919969980500963770069653056982189474746509335715048732645155339748511407208006436851701277404988066666844125245717539328400090886416588354746058332938988096546786461229838829563145866019397958795896947434742793345340724276388080318617198198834381380460964109967877037428811695289391228514253491018213905305732501223513818134413905213797803369182178526704874476427124563489219136485513705278793121170002407756881325747507763357198584956611388605916873939729620690326345908119908723377740007082442865415036740359340202731224880190497436525522696399595738946307062028699412977097195973174393865558545467737554301168585970228624792205201971618223956927104007583961716923858692491955536891877959710489547742003940240106088082596384379906388914210185635645316443235652476410957823801133262663069844381102253516410198497702244743913024529464023946522224865371780142045263718742630355579675744493266529440337930642141905787000115103433107458182986793478777694558732875056759995340449860834634668558988260224749332241027709858999835427602778298952254969928153686175659412351037527099760461743661033523552225699459729982268408702817558945929396732943115299672859672982889735809515407511299544136273466062441212124995587281084779823796013750592230543873365459853487888558327194559148114714532596436161717802086525290871203566112796718410299392457570494040354363589042748274074678499803808025563428527279645952756670585367434876405066615864189015801590565025708536692507309037663041496440598242446521893285807104251357310968675050572891236311423931078559973178609842105738194965682264358166071512172872383619008896544930659234160039249467942131142156235890750214790102890272319015378808760530982557441300234687760115977439059751165547554033852217492591921133874828494728211828948566041056770442208085376100102437712975911970317005001200712084106209897288115508118853868686146894169504363497939392640127509915835525497319578734895341130156509697954823444576927722514609691034881605457144741438798917273016575175509151779055318018751491140237733213345399584570261657351605386749363772856590124818316671417112884388069138102094961212727045226665035827867960719049955624239719840523986869715693639611090345266427374172819856649389508646308618548131652466994552529929360403290674539901315435306451952229365778807705128710231211922045450550799493455677837971911841422774114716456460283820588575263343744738609423786330626981151104828890813823942044161438020119002392730647216626489290243018851147004213146314258206904735191276860071920722078277423072849466860640095922933316693639786421457905266669893092575095864922738245618230104394948973967244908192083143376985430646842618047496805020954224308276804688946181220257501656766224293226066903051626584574931638677434566732287351012218601467014366358554376577212956510655545776193001301299051781271012463724246228467893827256974178696774696402037582459068809755089734308788761674367361763964761019883167046364823714426547281130500710008505867994005033690834984778645578259939075129157875502315272675536438455526564464834949085560473748060415152809703671984665153525961610568736283727148247211225037653900469236173016270256804045470551079579683164505588176233990098265692173149006343006401459845908416452616962976854181388624946619075256037374370103172636254559249314035155068819380595308964519028072004093667366895472534681163699343924961274232014677580631036702392330081282490561392664673531400827176432293708970546918060377139712320015675219903220542438422926476922063169310085419706541410415358903694272443403666820101471571566691656463644748063958879324684154706201184249825396167897013524792606699350470299271599935143733560023946967899021829459726396532819893178739816816253954786428549308692115751683165246814709560328621777096445511691585237119056197183000655290392213502965085975609021243869621557409910545639992318769630183455017606075179736823586040750981562346721315280147812756656435781594639676691176155042309502244437125671511279955230507563080571149707548500381187627788056118517797765747801188317455083050502708272275199776992361705838416334753529072100163905365548010155034883081162257144717725997886521647195170169490763735099208950740534843765778653389178734962506172145125113894690857534104270759103850725742111122798703129144076770655442590813969925285185601930235817297411889102745629572257373648511679441057128653168016220689156950378518459578522866255328182577155027899756719125636390704142305132229659197249981178329658006704953954463805973463141080024038515745193858171264433442725988888941100717021566367873134098011513565395618792495025717820433271381452918958459125596229600372637982520440231794711208862241294725059907679710818742295280456377182546017936607304010443626273812416198929354689764384444425025043203289120884919606707931913050933036983691756907520368589065923734641118112447798061302026776901648527669195332190569331375396145071543505981350598342921464131883782500303212988569967963270830737714739021488965745132802545623930553661608771952828073695114222746374421094658371871207085747830236057788901312504171946193463057908654595840170224277461922495980931864509506146986676118043339053432936119575733744972477433110435247353806286577651399290662110388880882930956267769758474327836041496223464865216524949116650945669676581628939241150328333421225216624362641541191124199588519461731604868660212409413334467514170874854610339403372008217473584370738594944918203635467075248779725317972815319964156170635709673665727590281839104476119313831268708142294284744776682977311551923488900052347677225896561150918190616085550509318602006768167646269797472809384327268785222232505482290406013418966899796995094148587133476751425084982359039550082572342469185938554528658532811906147215642518573586108037280538774281349385470202710061035133516570722326792480554990543103010318697137744667979478006860005090003688545617956863548686740252182288382437673438120095224407864069982522202567380419962146149267049289300850838752767749418423838438031928945495561781127701099140195431481567548263171889675717902245618423059746370897611338041923142601562135639151011626419142526033375907434030203685518253974060890390516040908720304689220143043675853364961687953575400773323716394518027282888349081698401989578632621955246476925743596934030049121394893288600648648288151737078537079145278478587467786910790459364554282699565134384166456813218023538447769949085494722088911564757983929655573881598351593450724212364114448410164267825585466911946136234894945833218290511728689792706026414849491428369512436921876217189060407154437919467796265209833727297955542310512955393986326556183874929368398857595849493281964404825415130514238128257766248000657703499948168950579376767030097005227905454793200143484329184551459122664060255474723633251834033421556580125590375601814151382910353779153368587516174322875971577375103831895978318076300990541807618270755585431559606596185080994331539143910909984349974236569405534921563296447515938351901396142014096020236493645927465823113751223299864099522473672843418060221871652060103988849491571300990748563082708567084833576905292756613246691710952172271415390656716115909553490763179347889877064003988217627501702173468472261050559393704606048221560156883289757653836376106704289693757644780072414402142937031934604079679475906176046025970964051017025565176314393438445155103592983052039298383915185605276439260905826087057668459577968040044500511814828887980194086301820413293190020808232880999407910335394143578335603973518074085589910033913034906199746109858335090952099837484223448013102515234812470225577704975290248598832025646657839790812051074585983701417457171721830404137823915859563166938498393600687226510427981982662149669448561769501945248169352866158690700180896556737003250729386157024674792997245395451662253154214986768940883121984279879314416047784193633531520561856119129116024955762630436513368346736548803717821793936549714765199528714311371239567723401999914678841082268999295688886294941293284443588787937568168071704072993487514911721736288572893857843706690880780248511789638355438004804996339510910695273363869930382998857975850633481243937088361044560983623094094735983738821537124054911915548231845380234394190421987518165190127535245914949510272932780446893124593127785948531082592695336917868233753075954139952504274843966786569508958497069860238376342953902644965398090153710555331551319448673149123538831685400438596912476212790640941953671424939188004665079554258252712712652965590695647822620914577387475961180718276742705718484995989550100167786279259785452227724203917959125579387269896330466800633626594420344346382708195823599338433884585576673823723313843812262529574862254955674183915207021231229238601091699878186981346948155919883594384642267575704110909309573946529890958832296856406638662430401767564231492433664273159237985182891546888027096566945834873607622586713940843259169609978177373468278578734164378577381263515511068880874296945358170415032377184853854277664374756832558208439184175175272248094907098236929157494514298424677704151200818172322499486386400408209447886155715490878843761777773330803647288574758619901967521077106309767118474432386774729836898562203661416984808924291779160630017758263669172770562722154901204729987079169276937816174149676447226064999283575720958935483442146901849153822627758013591445688596873652289940109127064552031372405374863237984214283538444771063180901465685228245224484439176517818440379919589812821880651568929684034971972607003144314052973097149573578182890691934482141344406947434853827397127866968537953268266118899611869935328414414058441695473196111070275006108371854621805676385150531270690458399911016007249935969703775751105183667276641577151130630249738949840238438948614239695779785528240510369270738386143869938117779844124596610328187374483780470503709234917537319162829572198309790454658745126095932133480800450687685713027970978828588205342686652693243332470891846325580654172648363755224310428369105108444609804419060546318440354598241072253912930451753036918896351487319941321577345423838733913798616904905300009966342378885008503570063527157896435807110105838338531836069433895698790846757595885701690699658276254464457351459247486015538512624162951280763962083152424399686983855814057671367748891475853322887925142917563736531022856256581182398808387703744066223534548850046192280708971170061042322699643363583830922180067287063929625673685182898972063933981909973502797949350517658326707106319888472444384376643190659430296765057371402411306517107372892029223482284293461965884504641810613520760438124899240216631519627839829348924595202368098709466733765713949130529984874797273285841423234687863508813356855088040264807507627761999005535614758682025378903153686007987780316836661149766000939979752200910699984420219210001405268991030208396939914984059122106947150420393285530082244408459796466709977899405955337308687096943012406093050227807048357832184248297091789862729379062813916246282168879059457332828285159724292736237175739271113605900094790170586553660028016038081787226795631876513763962433671904670733972956472184115144707354398706796015201439238055643324420784237623169702088717851440733730580596808551674990809188712025965632308626197656390075232535542436857683690652453045200130165170345030967589423239086532722913166219186993436338321039028017169432954296874675589269617567902597183371538844899759700998507481399131626045961306065630807446000955099570297976344477252783953074406412638767069171575019642276313953085345173095994070566170060740069778759900208125076398080837730125564973748273799703015649163471007726137082609639931928465859518130444439407001740510002079518968682344836628321064308387061127707657113621903988661024090554279519327725794527225430426815740302004361067874851732666612909055159036031510842284670885142862963712080555121041262499615839775500518022320314013005658840079160455552069499052386290976176184471132801224216526833935988668313284877129802224292591109690973689461317505887494551198203193804095743571487602373088037278226462333096697741353492288128555629036061395907097647840420204149753900074922610275791071495289085500100851176189606640550681422886760705492752898997686913415194273328684911008647953128290693231251135794605263647096565641911158816926891640182670294728247189745943061014368556689845243073206851269392138639298246888479824008814764814436094145575110016524614076490180212537313884178252024874892567962265134192786221094218860579123719061959788523121256861378294505666500246227032614787688582475155819895769535931775621404377943002896813349131694094732956179924172480143536985738837924607258752741041442667675817549961564975494507734753165337345974888881657985629487808473923688816578851335441256190682388170765696615630703468296802978136855912809429221471657920398031019213567204811700561173049338666398650150062986654466410116554176556408946786802940568180216031733762999624395324395648255390302449418337429037127407981596074303225539592023315701389156829510439143274113655183312299193646937823318747678463918344941588844612058560379246826285794784755951459065410395329899357763651950988230334204671422625416865694523729117339664522665533004087868860946650319466315236295193757865144555394292253684271038080850509171614470608579601878086799120960928666962657941781256556324894603271275827775371201935114928261062342327661547885574824776065771186041274167843011796650177056451225011928977199583766988966628512782581541320677720539488448183047270456961499416517568514167636188121191541477108926945219105154564078137309557087727718691454443522715825013016168500079266288975127936670721685638910944786760788129436395267207435081669948923862013456008681207331387193245973695529562274392842723739872357894346713937151121383216733983781225415561794458636599270844114545340612931778567832554514177385047739914527083296992577608010988089943602068221158642264789237985101766266462743838732043263269893566545841868372893242295226046427968052976719815738996008866737894668296608924247421512572383327859284965852257042792674262227491028739459779605828761215264256909471542619750679682472515366043668552458243083753812279850385395134676912983296464513441542972580966799754015619015575549683485904184858288634498611773887514787607085250434706382124944255783948711296011105679866163975848035184875792429643277333527169636933127744551468965149382931799884665687849881137638038069172156317173055885926644514888003910145543449464331503708769755771467647219462408763415709075501103190558625897771334901891599066805599798983217295406204725447699498356441031293773725012477695346464431114681580617508493704164845289415130489963033421680770422652466593419569395184032159911682382072414171815281300796396361492678379878238950354362672678970695789867359440246444550288048372204285345834081123607827995128506516391762133506901666784544194755503868928161810467008293451455027757096033658121694199735666995155506645015693792812893086533615432262479449453500925749988378839903341684388844074842293119108083888545660685560787741961745573539820039901041039071468139801149309719536985828614252937337459852620588202492831515577928231638234620253230999860077638315593329498510176283192793514553589876738899021752945253357017383566707575247009647465061424633214886535945264359669773638002764989933445956591066286994326522385214325093751209927356247907071968082034456930188065441141842580320275724295033117769128061316635137254631904177981644223558735622363978775785484734266581732952122604838030096643155665576410906886970325964585775918051295682298530971638396943731940182922201167218696052917400690405581323469736448069937238404554238261986914206003883698522194466841984562368693544709083687398503144472912452570086048301890440703685650054384638193643941298605516092808202417904686373646625560207085382707163145246394746994429485658139468394326851232140351924522955677150530454571485159376053783294013728377613370316191384176917138141923548867800760503773653968985500329704355541565540000174606940484193665058245131735545419484046527960131163830333236448026694051435759496322233000986478072458869936103170833795812736816073280129190002616138106805283097849541219643126415232411397685051809618779129139586169222059535852982868202120069831389990646500019651706020007272793953786593123168210956431579859059036855454970033684424456508943674208172650683635595513420621293914754558085573957260861592089846387309640074018125027547629256138303721793129936621168444600750758302095533585751089902711854154020159991771560465319262237718841776458039303357294108835951544285299131163830338217980549851665450684833860821292642420057662675588686019808001540562095552237335338246245079001504559228463542665482639811613010715879340930160504022567385052670086366571578766761895367797315351929590125736469189915745562342793809085432673661289949387219854645884664891525237416975645547819436002008350738554110631587496278597423244116307340622548518160425443808023611822673656396222143936944867807380889621226708796965106561678361953484223075529447775070018684992029744480870743704343115765256512140856010141047607231124643135660133980775606582296598182603640861769468629162113897065349466933168713238672057931565257086984558566643586262627382215230263948309610662616399381823560416459198504626846278493464228344722412110756382735268983523265860351535640641317808678103028923548495516337047546448453886445012641610004410555800232941299301038801338212790720652861905246257591467102536563289033398179506903225717299512890825168652877392624256028212319483998110997193706274767164957186490091727288688041085391898682951466323202296741306276457237990529145156345360009084782098568142442620002820735911593637283437961912528645714277961298277695299887477502779713569617331203602093724437411719779003352504101168027263428652557419134893566468213480505798562839845063934623806233264319357260791231693651433194999282451412559159814104754781589461247763933242693333485612905902277820340686133674711139045652651347546031917941945032777615163275257345935894299400847961231963905354493650842450726189953523644567160515106119286883186360500271457715168070614668212049360735252137124951829614162881627187892366630455965753994376408769567968896943861417254749610051516770362621391031279026911167471666080112310531607526304356509185955432191053001671583641822892522770431346641641243577440203009551969096258939697471963816991291434783889292591646231167907893869677610441023708896890987227979967698167780772968996622800481501842804772169174821365259320175729239106709849916961718769498609500104819545993879827403178384944590174755015811866994159413749387834065565373890536899577781687672714934983182443052440120141586531869103726595826594305758015897172579361678976783095525621849708548599897341450621494160593295019894741548044882408537266305971446466300464388298040183836647271706750170383728217582850725960805619775304651701154562410298428634567827476656449204261748645627804552425182980690831310686550915051795094039249203239083716472172136016122434262596805770590349235312913129671341268720834856680561850897847040283110560936919131512047024822937636757178745070426136744938659235656162940589761681309766773542048390404236857770173971240724459600983519518197958803094517843049317649398790762911319469909697864128518535790233899487300018874694717040988582820204960460910933248453124131717227401372497522670757223497772791436902491505389094597838920584532026497018128319760483780627289980098311050041415494117804919132031588735150175097810657274570049222678321039110431731813291938209742012482107966518228053454655482160155790028874309960314656924279253337637167983350459483246750698952011689410696274481244584008117280033740750729927441951923883802376750490630243754622644212985995565860033211739705744578212521688100953315177085741245394843826957944279745139810749351320744773001811681946354136075287223197304932285451224299339932473652125511464670908737056875606295844505187884948316898059582759925317686626493816044816559782061722264155243237327396330760111904571081193584978604841695439635684805866260012177369525644186143017782251816213645565667263920508576797326922085246010116934112628204295363163504798137708605806196251162568233565810728230930256910507603810150724802391089509213956123941857666271734841997872399562462930824981240030168463758461117774891156732860326500315419226388023429571450465301905861975163909287555727362489603042922209858243463809954096177580760282000525063821334207273183305964755814983382955062250641914302346432331918877971967337359908191536444935413986032780228597187879858538969692048924434214250854824782820473509267239589897012739506691797506140689308152702677745638903218337545924652040034441739019430137486327328609537754674623503970459616165089698711958533554361598566981638234299598846562439068363129643565385512289513925701708457846996124900911553134714585439675350737175407999856733976550074375315822682561248111620258129274681790269398758730599862481592440964911885727048015979009967035863903281825368203422425429955033178724013117345750413425668202852367688728069527210922591772659818994299799727806096914172573831993621440955286687691838579880937642085490075635730983663804269535299190716349430581382973919208439402928491327733302414172087017587046930278498831241236642166069373366638845837791929501282127696191812017166250580397730195642097171495359586751421366415118468861886271272118578291897902309149186860847691160343991448804457982379379954856548767829925784247844494271972163409250192060002723091574652696524977221300060910122079489397467725035880606648148139466843671622453810246627194826932058116554534539034808897808064926781761298082011684883612270488693004893570355576968278086157264790801713719694815190666559748368960127994324388471361263240891851204209673257089307137746470474403717295680820696362102063824498887891183579485779543159127908575532740597331467979108855604012999253596046019089519286963789677572969834158194377962914514941668295555490777937387480540138609141580752513186204588393842579154103473091865710149443849374726920760697496657962945770121920937062900329631790274056101427557326652864320692976545709795824550781134319047012025530085757741393850558763941643939444187520748602194018694537729473893210769475272410877526243150605814453916109499287373807280390518782246195648703829751038613449726985164043540750028586894922756873335189555603536097003990373139977415323353023395216551604388111187123869463065573186327227211673276079371611383481821072277746395552842888305477975545678416975078776250460009364263710416867697147129074270228288749946048951695212049215125842923094841847195076775610898867856541723223710662626077983122057088159946595117694373315530399752762749550805932527673747342903387030274942034687829398594781421736310951095141502439862971117291756339085644860595153390982466790716254384841350926038862306726900360795562887217260781705319374963457488860370862282475091861596920556429924801842382462610479152913154305561420074127833833947065970861310270083148102563056240289820653703218463655633764153181218486130690608734914136114818249989023086362412600506245680354449724217416972677427142080730747028883187870338154053536785084835294175914854820850215761399950331452757461883846640610013877857915270928342946055341795519020683949919357489288165040509740738968090689017925458023244009781015373842676455972559308967194394044849486487419869366798550565468850444507693905175574751518585552197782416722375203696379263131150693565717351644242686688975988440228124122714122074097506175645117104986572255743956816377576278594537005252257879126034773736257410890688340256508688915798644777610303557120209821234755723303654487057239203673015273505314453246595594116543145373310007381237762256531940769510797803148435761553265913955918950988812669960629894373196040090480337894191839929396032841243182282077608717210038849750633846103759092071385717421920117249709966491456205309973643078520892404780343204524520474126018506834068902572712650231043839322439567470745805258759597727143637858798416532661599109723366144207812056282673954937288327874622245859462777369921804496945178548840462964674773336895382660958480219997988837995126771762190647934561745541912563979037469004403141267157442317638169848327985508949563214130509665942066602126155479327799317542346688043520354082189636613184752740344412422760793290536439196292480784825497685869719379307570058816061082277247548655113133517779547125220226850296762467128110400446004794617120457195572508641340113262195935576517904887552299887121749608686461651980068442933340760173760570557982936897487641977765445171766943036018028217439776214981939312815555345796274291465435566863084052373992234359304652113214944552567551253927629626389323368153569788959830193451998589829174159266420559574368617963372854050084211218967852998229128239246658194093790017643523184785667550342791181442267438549409322239216102144769576194300292187317955028741811888422537463624000497016322322858599786502824247221494672098450403115549850569133398752293300136185878077586862088386065600996561751331571734679582737368918238761543997097561197557017541097169031649263911914444371462638766611605605321788789964441065396612784351782652159951914412235922953480072615412074519524511456768776421489925621486040334945627334480517084910814342483957762010644547876609459937794486905121446263978812168524496875080819664776031328229075154253289334739089728872426580704934138730494994786493464800756931340395138859241761665369523352454154068131426705007344914719053523621559882777699644346421874370903731386357848971087923663752811376228975497560741159902593057380523942716038962052630986735588824086090230720088847129331048557969498873912563109717578659230292536959842170000259357560845195299253181013147681020082347755790977802584392944604108628702590327358132068867563516155747982150458784744099592005519680465675125698790872536716747094955074880852562589391964482338466220489123585328734499948023305678594995540453582269206272012552678489545002256917230684211810174872582159955003168850563944967297342044793931153312900496692953813321345851383992966927097797903212144283403749132466789875768110060483389743744297318584999743950388795486360186145509106441722923985678700441325221420616427294545382113529537198193607250620330168159504377874949628642183438129955402362905856499367621370445004280270022853730821036286004572099341300299691171799533782620152071290460453467169571950996834249029734992363228449508652719767848974082437961132395258440890401161370705367817012770679100492128010035140852440162866123383026688197422781957957462766745789427874894642607143071403922910141628509699292135819636836042394591430225388245116850564522801933075942898412373966036375437400180499559371125855859167542816313860554446077781737912779153945461771229417811856342995250775875569370779607507265343150313477377426661575667367600632802857722841150139092969307326661222252654173700667093257345702275636056586957914049488903916444612629947262088636957240521817460864240755131508758136960614161719309885157693529788865540477157690471074632410569334101806290382115963870161160131213725209408422632053709400199139581245991941651457111798529072511467456153944479731177491344092579924972954064682778552141298300753424812501850774410526574451301683823647936357780157835093773307811583454908382405075894247946590751684110077222045560865990951929293220260727833236234983436498135320698628571592246953318133559225482555790380079205534012379264186272661999468083482617387563052589641056638014823278034836597074774707703168283459376641834296217556059649646970493950646041382909238822986596227587573591029187338423052542068710100467048711831777339289087454022461160279457192731635401753138066181495613669153172444667588262511864107807989545548219228704644182974427829111643361932644685240638982581905707143637393798979389677721316454385044175485140696628037761786775340171742407035070645456504236305992754010522206821677947366768425381406455797662639994189818101910113905102465880606078587772085534198970661391255699236669894748742719717744076661824654426698396196900871375891526770164795002724655630919356024714816009725043308068769614235702366387189769228351954052518860827158123938184734770477858103877647718528736907526501193310754871105050417090225644675749433367419031840975366783532560920746477142404912853973993528759140893835557524680579728467533985429923759025486854300715901350685387199271872080826268625462535160655145365272767396023711882890808810967071397558515416187564376080677474806977982910677896713208035157732771372640177980253431224724110449533090193511522646327541691413479514950131799231691947944209124690483076047089658988302562369906021288477306518425449754182225143919481285743422570550779082837719322476463480394325981813540391737864587809246638338020721005208464311149223105162066591886702130162921648357486903361613931828825138413023130010482578801224771074729215533957311397252404942169181483013636370768810127551603730794552481825618336176341033537601799845646896939695320986794689535992062233070935325237606002899510216567046804612572970921607188163425560802560626282673384601476606773977714274436239830964836007181662687037092587136875535249966805808980158996484590457987571942729387354928033181872756653521870200864315461887547271086109052439711533458153093980638531310568691777083704219799431392385990245630728170250002046552926090222644447048896171187547015608878272990339384037015214312429347817980806374637641980183075192098116220533900281449821574516020197840184006504009678373431316098021104288816810175560495274864324388021565108946124175054502258037721549278614341070780094445064908121539044206210516529187752233541817079283143949705566200707595908001400686182257331761350191146255212795821615105511191831629539616126658008091459956659851779977339472363122502024709811555012921156391892539344326885628913520356136693478277130000716411733589197534685587404121197304164220338074875269555367494581559148702379699025472522794570506352999783084606988508025977627449667040358890918014911111967265616874493399798769797407611217777689663738871119947322021897341210722076067292200031024998892547990820307233644204522619445124006859187289399677538178489085864921164659563246716199982074729349109414589291255734303047352826491422403482260729026930817330347756832964782329754571188403868465056135719317187834679917169069882387660663791540571356937713427361771710131853102107326675712900635200157124559768515509132870812656030135769459226220308324713838296164584665966391833470305287815808488751647784559254176987286874494538864681273695553541220605338114301021460597035917840663384985458785963935371242554848470220751477050122962002981087409760314236640880470718648281305915449580933472826448573786066131057591237356422911675684323968370005050275545068687564488522800285199995811633751629403322075876006085427204042824223236088165382415096443565545679066878276918672025195677143356211012370524654149061274159548772184095931778091179131805533152243913063810140164919821736872306408033650311779640768588874959238270980401647738548545795557828628169007423594223415854282145549613947286413096471629685298919967618201931936062142667989398831778566779730571845793883084136707502927286769028034497953194259862514884127177607206883255100594828294707696063007121606843355984914535693120202638359756542092867843599465779002429532337996784387422861142206177354707037076697026423691008457766649216297955028715029145052365621031912326503289052679619108569439776144897497114097685289606831808908078424196349147070956145327886805727293635725838712261356837074274799157809460280832247327455658260814675816022157581814116149288289573532839579464522043198778373728773958549005419880937579461282350951749494751759720569024019788846108419344054757084056963554358819876901671286469036918885054922914799165298526971965387034637693653725776409097356687081735722096575505574987904950597601774857615052627629499674759366508849095787773077351354297335437079164668011193760986205153083704607188674823682647290224837576418213091144195273290459040569710314553676257627878132223273969358045438938454326540960449886017316511200220119469493228342177067660737913864041316951998334312251918695010133096244623566875169103361060382282589722013049072981312999261683305292523463718163903241438469765041698122098458463495993392029677134849488507679310717029089293149889509568691224937575689654593061311119823546230741632914574122520223703750055531485351185215124110176426044537328469027063926205143259367708985803637029742158454608939943379993555984053490529782103571808693304382919496626205569145272881103390316182007280269870890417338598515603352411782918281643840803646099245053411943077315526100484994276888126854845429665363567521023227688483294527011569595726901426578538614455232013296654565979162471587598520515287179085748527244030412894667424086252061980936932124287423787407611675132493203209585866466208014891991854099192487720299151316031610404728369083717727272268667935491286137945757946533858927739503313186861171615674178224707776357847651851593583123812230239089616771552464361760866105341835877766770244039968587211698315750194446466806412407520123810247675644994904446356225981493091730550585127909024208937269965265171032655027999262675849523194339575586492305222767588881059699060583877700882073698930084998608171791196586723170749789159075004489056223986104364815276284502403594920687425028853522143427202267506682452431845486970025582698766832604514582135102911845460244224826829978710514776172938652170526144928426079058727496953136845619815795937419296612928380476164500358706764158591697383188458737865676631409648379838275105370340338759873597749386994813412555483264887323957117636661013853086959738005982525019897918090017076366075094691945779511867988530819554762464085708865098190196476437804770885378351326268624357141802156190296214411052642556522731954279868828154263786178411110275526504583786404418905153300815151781821433205582898809226574180406256682858903176563436073724378685235202466462593695924377247224476805764272696498603584947548501622808462245265862281763567453985252188912875968562906788304082700493298150889852399972884057240096679785284380913760973477025854992748682719371274692803190979653940309236890355864848931058716894710164255297645787229816133533712248163563511250302964428923060468226810005130391855692992610845135152299691231954351397981601533193473219681656161104732335711327528539467661332621807266498107776285341502390465913620584753896518361268851618362024219321778752454915568937942302275617639859258558682233042175894703945064179637617670914616490520241733330903398778861917640735164748612834331479940348660970239533871730389997704245233043932344843631185144987831241600702208715447305857809923297538483933360751624911628167442922890467234498569894080503529196191803736239770486356106369786292468707066318888869993197399995854544935108517766860785125616442773343531566720245462228549926487705103885900347425657728220261210115019256645974925947222211751871129502384899758864369315885612811060283449094365115458125911650551649050870499830018654424284395770048437600274800444992566836212674809885472543680994835610347127077642658005861578204432275201804263053371117445788536593393292984619837248341756685233161856174532675223630480476865832346225429019789370759813930315633633323253457896574857276527253006896249611640180867688872441548848600663957540729995892860717026097418053907375130978778083401936296197273002214155485034554698040912227520549029877664920818019989216614710574107544033021000911244291937638446339203287475517023340734510884978688810267265181288567912764231355150570857123175540995475494602176097688295727138659747270802626012290702026847829620608755480043921910425537992995200397229130091720723771695861792368726474263337172329388036322548849846203681703857675345039030680678789532342224201873053601507106535229360933650647418852523379734645622900700115663645263954939975928793717607704959714495860761535585709196957544522012448358060772342817585442961337122349050077744432358850711091774751069344678572097243295608061405526813283522804893441706301206626413129026786368986044459150843398195862109088657857773138641112833434611383836281707620963175759928227800836689946471162968176918212616530802618863551015907463158355660786595537774990880249722177349598202904307042431575259775242138610439355559569134708316241079677090981710734471578488856355745119309940978466240334365710617126811311307851367382884986059666431634672365172076553496252517340276609734918116517432434490546697596553152072309797454699733018167316469172164507524904349652138586162041280057822506249305720483614288881751902829941269973217040478705899780375024656897874388060752728782775582580428908805288916213004290645967673666386526784037060516457467921875173668775371816135905529916436965158606769694896486925443304376142762334283462652399200479629066841704260716219383658827974988987134171939889929430227677008482015074844824783314440250938262910384241602596960726659985946862455705275529014244362788811016494384538001848657380076190094505696590112943565643836713739881884994165414845070358060737394576865420425585038263018162660232592686095091262082671200529729640019289911345257959386407718577647770005199231162720446030713849301626551437447314500100917756425543610425365211219520992118440969934302861532728605650159626463658028783995702121291358067241201050143501676230218924322526761300346131645991013389427365761924265977814837298863675788201226669311501933710857456497395778908071407630989905708394601620106782487184169461248834905983834513650244232523588060623250504338611623286669118415672680945758772415168112523632508596503780932019099171623496358814196531604682813133386750491938508982745235827648996528013479529233204149396984505925723327757083695414201645096976123335184088520473483054941274790506222562792217737701653667941983917293396844388727099585225751039637917496308942151230925535063816670570005061457261980598327288049738439182030970509725085481159667776361153828087280656943098843902728519733240650686846963615588630789547284450895388154963466636375234330731413580206998162384444186381674413742050366229129446646256542937982092084993122088624657088610186282646664500415328995401059829784564890788981966455346246152971851887121314686064038662615295523338304468621118983414696178510258934094022719338447032873022278076993267507016909072346070936048415250747969646777962546812268778162584409821470197156438861647602092496711173565352141450786213704571627897088656307071593455247272239142882948797175515746081514773441836173674921294489115007115548812710482833287759938655585752880959240639912369018874893897784385833185472240023208608605580275745248198606345840933908114946974065982624075808048257438014597869696341582230494804331822263666216181458871508353244635481308545709178603590336956370225293227260875871833781178058216880151963074260983903635788294837257732354067844131522463287538215753715973020404143843492415144448928276795906218770155838911954674833954020861762319562469795895627389838062513050860022527244785235561125427732225223374084590044851243327491936729186615087989843961371479977769439442986135628530195945326760537065762099615928727978384089260071427469771181707576083305319498370915013029340467568302020218699142186666694130917502111712712040836777450851038422421266016217707106396437873400139879541253599820136301670743476876124620115699040598800537199595362289761740049051625526823123920992983690222590297858996853451638647572760102646085616479825552702384363077188576200343654961674572473783698447894856894328558556523354462485668417845044607685193728864095262761591756819052407835039355266783286617360235517613246170023383521181609245282710036520849913507692185467624958962751527225162504795433439434394903631957158578027526583130295407880870355596118866651544506932462807303275321152674129170646023316193101691169517485133210963862006122232141226641510331253146822167674023872979214937107340573474990070563049757355504171010509516539304840438806977456386280555863441512036990128445702520013403955616549197902500662267551286862581133039654181693062512623752566402585576115348718717995514357732251924521142160940331199667591806329293935758834736832712380946247765655924337836067208090888388052760827650754669404085643065828744656289670540328870393744845569284426014329421110410382964165170991949421472709041875782086406536548320661178400155397469658867926575741573925553614495995527220812693774304246718340537589177356418804420654400789084846649179355278087027099183087685960212957878296738354539085362070964864463998858338850252424993573290066718195648516038299031624199898610459236111434792855813121771331173183497116421977999688361767741185285515659149213348018087442741669110700661733297696971260440974812112255706832055923091282462493143246376042336040067467708071651118110075860232748928035192367953559518563107893585515585712452286693770748070639501416761852276944957065130328179209488779744149035346892372181660910890595736002745815042857225715116254961293245242374009074342462610834851931578359512784902334543480638153891783098907898774113546047174201276341830559855164822054752810979392434562851394072457636189938157761905942397832906851812353324144132805574897422794280786195427086431987383297520484638853308035389973389782782984661938696677114349901313950251045976259142197657662486629732642224902676310749581474047509925366381427787358207656846449324931619085110704091004570351166508758497793968371713956644845228919634916064157407284827121771084904934581192491778618081922247408403601854811861361116145799386410852935031109229559623212196296709414387818701714050114041465994577202294496482146262444572318886911257964826894982164631602142674641225872240219062332329929437469670762006727380234840178708874241150567825560395711767940683806515951508833842987157350792783073719541650224683596154753580949676972415378089357302882241605786794880049096491331447904545945764809131354717877372266335583546228706689474099602574908025695536895652599616074918158561472203657657856557044159537750457006333176374057154080097673836388519337889767987106851569280944931666190937512792850109622652647016403134977075848892659861918552194729498004713184156972198058071130649017421507371012723238348761497714554637349579090642459910310544640922047587318961551032066316111673966084686268883010321072459942720558336168735878629645035451575780939664027473286194691045755232861457077844577501659436374155555519673025132618748175846123111299826262910983371045650488229730087443758578943275363284604462565180976750620424713930446664487814477726440312600052631106172837315050997275531420221095745358013539659713749585347474389545661814866862121342287217349915299411555349384771278722082765544559397080960537057276751645442059886057425376967555639257083777803977710850457110404692267839913964557875998671054507461225217601291863085701277923998637642099761004104097354789652988459165108582614815525702897682707454477402860605245999042765603834844997661848148810416005098387712591991567583535311124887083007958900827997820929049005319393943871768101565152328878868068355085569868471335446067700106731848940477843312169464811740515475276377418315613821806837401245148792127519905050082597124228442060129690884532295232710971910718463709649145325867583264370740988954450236164468945745880112319377225541996477959835299570756640499524964331116773313651126046076599149752176959370596236500771453953997044020263426332486892342427473019360617215459476898756401423604638166881271902979836532371903265886937323099405580944521535739850319074840487227428798105687780021315229177217649643250561199041125310433254449082767836084473709099702839248178914090911168961184409554065170476737109947776037116760693865465183155836820649076459602447453363958045739531972305836551575987537297253990769066454289144722468559385668278187385816754449669753181729748218008346696244947914302972230095124448463421373104269052513041272676925249508678766535590724868155245923108998628989169200375785883631225507030950039878705036696796661191634397287826865936411383972169407316184163221604412928638380202825295715067815649182273806518105817069533461119622921994750758410931436330080303866284773930441794557861037843399295658348150899639048298405861130404235107627118288889222476021738338596009407486960122415169543925183861818647127117637958171392033250031406751521829163960555143363985225901828078193157269598699408116463339315388498986300889408285675366252113608975105577890421258012937184959811058717003942176852881905768504854850473847319054751868509932659870617914324637251325347002681623421120204723386171501392583097155428971998428243635185167445537947233314493345930293399403568417720733521840052336831255656137769350711181962904678696166083172395955268867120119008790248534886658009300431132008232708117032822709963731078921465977205331647842811880632238577229819685017223490483582563204305871970927881978998408981732984290985300047752774011836350150414550919490819741978711268534058463215916977082402707399443688414390335505306607761829346157210970541822983913475181776308311037565232626144422266039221997466502766028798493948093455399125325566043137436160282835628526676748124399804351615100098238401274022170565496391895050257300575101248899771984913571769195420476282076417553638766380962118788977347593604870711803323111887538571648376057756506730995144289684701468845385653762286360680369237598606350533306036367661571571538868066262299621006953231860722593622795394170136288524138206557595317664865026908270302303715470754042052593848616465875290412231099901018517727124770476581040746020065482314114684228430088611444934413009205783777566100198177653903955763404148043747274984689388100447729412615196505323690951980489410382805555754331385903749015316423814621031958811318804533279454828575726390597562617612781628925031788809152319303093364439824586275904636161199572053535733051947162627392653361613854868944707450786762137208963246609022481630235502415539127318274610932399875931057320948395537194283166887241506534187520266405724507840595426995332188260192190587938335992342592246865276378490062955381895751980326842907060188295782468498642812457879563667050718875733807072250926100476348017686227042622450055801969519848674415476272108043251951221886512202716910379819810138098661001527471085723959412798626232853133222966608961410740269572375776930168858517115746341970521739312456276956508245902789052982989342011920959544975237981341719202781053061627516455805458440028501039253002680509978655256947691145219927184476649763081790420603862423878531287703736428440735263370283364804493525725756208715758460500881632537641849420458674602382732817383148354569343174646037310711999387951052195108256954606829311247285133244314197550904931435614374156514517700710362632463002492671506888080425159993737205191563687094194903099468657198775245232551305976421985030223418737418466977973288395154392419481984874279232182088627016806856322573829530912614680405887484138211839874078394150148064495698559099389081048706775228867630137977377672075341929276971216654973827425795014171899999975667952961006596033630101540563939324793495079208094647249718744424938231986757692802434810699289022804941552261359550858827132846021349756918493449929976395469900552222646971400227619872099055593689716774225053015345618976004409102798446009007343767500673457538113186043672248659630869102206000925911675659107017116976653920150496247834758330057330923217431909820592087283806930010834637152423700529630922598426268838809545224593888464495336916277519627774928659384191705405114334744583978106486353340040573437201929426832366557664247916221396465229315679165985275652503837089236891205822886667894563574464821681753871507772041841990267698589831932511275911500574996507738030359708912099685700800539463820034945164214955638944850010457763884479874572337017888276665449901884309816718219589644324343936185480997585361131474286587750078703652396314325134424189572001135704703885175469374667456942550939266961000391965534250316234265864436943086287409651422964722069882245829573997776976841565472555397416795950741550700962283359172243129421784672535818148128344268010613975116367119404690142962008554489252174996614803323928114024296785692478801761069597702456180898546318401031031698134401224888280055465263764631945139490743112566526034576846930407275804658006866848080209056998923899799000482827700918937100231965467596068669913192958382545336874895597000591346345636207650049906174113063302196291003684494497564625134026964285258152064189400064362366556756798941677363700594161457105527877746156003407461120395219684784748563607526070177012936788862262982067000242090011270647658982997708169475436740769970263932593906898564003201625546854695607649558039061633643745313783534690952190238600114920125920069246131428991716781418436682866765870690466679257028229772692653034002247370823974861290784180373033252718507720999506928228302467072281438249536810558511114417991394189313708140982319695124873801408318231663078147829670550125892661158713531519781328984567852152344990940624646537820791281656424106970437483562795986375018840660068294601503690610868733061893974842410080102186369678297932383976915442945479430413454465437670518195812710064084705382049550741835096396929846439806518862747602253923681664724681860047534400116117930622259691334701523118150959470604066269924592019729418836537225523538042660628121072726858753756274461555598973177902089198974577906744313952917388939103511834220965752672853012763412330952590022979814006337757164109179793112249269646634038800607223070028486026259711398329059206133078518535723700747885325473070861366112777775168910871476009058784643347332490153973642143431229692026617060680620909922511350501861690882480286817635583961405146527681447872630008555528791457190601359019918755627002195070346900412550222235949900461165090236452176559014768261928716441498570182358198270081637000146543661135426976372160686674182853345970845671661864773714195083642356431884605273186464221373834707650322384759071319584680609850915625418265720806298948631595087002044239003983834310510404279727607785874229996019931608639133663199729704700563508744485698146953732214710222085346004891895510981551627609821676169062264195601463490055799604315353393991553531036113932866396349401302241594572866158383023478374159098640183493227793948969414037402385121733356988180368283262847003610910160471189293345652166309219366821031954724814465721105229807815990274208013539202397445661581092428223191336605076325496231287558206294795652908993357165355002706215696688805732447738661073256422584149366507915453275418593059361938842177230813469684281330447188099180289158316665897362520871266596996705910957584351305230640236492222835903972351309155187662362566599359319560206221608108210297263743853703882101687486644341254292593980917927602105277493193878620207541297777928985138529405870540005600461649499660563167289699534528137930071398365304829831474147821005507622104182243801273870734338381485252829055331036796941267652795425499648900640673057755106775279722021498086165854192715139859073384750323402748052657886311788029264918345835528569021248192879664565360426013148608910610265328751015346591142217948877858442447512191831065953834897525452554267523753962279092893238728818414045995456483264634493466085360473355236684047681904842107874078336707281632260081237464220504008593736094995286813511025111681396405916563206520019539884844285620088284841642076608957815593435052866408962569412190265423547797039767116860850942075029561409637771763070241633676833693069807080868771416069628381188347340658021255923358455321204966871894263865448812592013602320290224654637088212008595287988572053653600654006757383289169727669346593237324024630502354618752683906380522232448050333165166136054148595848895312178085698228030138639552090302279558694855824076867543368514817966378469314317594424154155370581130832417302474557603266956960856446575928275931879027867953287877863105287813806756760183015231556674765596800281273774974794207293865462278102057884283565692458387072050288128560353062107869884407821351391501362681075499575451658649754564276185861338256872214747860495155086214741300068859732569225329061206471516180801978558779686274829524054672230308797634994020786752768385604214418848126693082319132018530043020336836498252043552051967729642174065238243852838001032721534241815919660891649108585168829850245147818514433996182090264652487626555252240866996834488022269619146889163888736940368220168550480555700191012117795371199636102879567651713164242918003627049897387245966364790461520443681426639734498003149272878903377303388290687760688238805311384331998130039449617834494540981744337600821135033146031103378859656950773225236920272111997450902066838917426479438703049895220454068409030286420954246654567976012875700247050001965008848137563171924476183806266259049270235382752691710983968938081041792664939009926460195477276707323366415187180079390995109944387151610162281860108029023223976136815107416384553434800993920982132285345094999708481544341146730553214497177798666831974437624534299057020245936784431570281579467491431281298983883852198487957463901179956354373687607308802272180799014293598153304756861550099658984709422613777581478399938153731336000211766651588411235953172224963444992527863513414459482467152807851825734454718495814112970209708750719471869188416937789173525853865492637501282828222751450432205507746454581397831322018113491130486138758518905665010254708752603212270176375616149186575443250346158366509043565060109830731513616084517099377969779089095193732316346435205673980838900289555708055557011095397572340552972787220645363781340362585604365216000518339984118369920831906078126840366209315122864554651245379711764536727222747755108043648970255585211087591097359270094212638331012860979222695296407069462189643214959965879381735047814562446173506233977209395526059022050241650980057480709033413384903727719063790492716812531090075879249142872253722485636283537683582987529121206207851419594696853810237137395959674478176181605564604626610892020444806330688183319648827093047174660342969302540406284390625061100135325799559145575050970403208426449719600736984101072548549432913105738467167639698432530967271700059080741939994608111517149245735685302186833094092297547457201667438549951930978341849939006033201707481830394544130319924054948665306561622630830001547974079235283491529625874699207731661346778289762357502132771394062032685124979191291859365398953828061561789711840911898279904650627164467683840827757293381207069530274042076741036622454393633284607250002453039717334933453630821314537054666866924682879046281724316951139942076269758862047475204963593719172189360571269549871874129773106753912141450401850027687531566699015540575263339716315392820088314040938461854763784916759969899714269016262841385468202705484768403624414068637222287318237430468802844289822451556766574920968807811331435604291922079320315072542489842586214565179034836531179040245526580889897157672591068626078753596796705327857534938643071848863534591451787054377984832675894969355557072883847342110859233782293411979960268027969661912258812543017603302487665104570068616456927970270778462389148822570441338227733683405264769552083919314966297123195007273192250435310234278586829507711370047992388214177944985217945923952869854475484216727809784235252608371401216387699730424308933413292107946864809193301244676635471637602092464579528069076103582447903093859760405696202472354833627543618352917401778308236840210009345211202968196840073204135224122916681133858666124320313804980526519772058103842892496579216724445086565191882946864799896059494277715488821229057466341774430744285509842226733367487251988711219449141676213224155382549349388642174362038137727196448090953408384660790154508468092019243909198480864864885734714527213495916179012986696424914579931761791934466805584252756758353255996904885846463598179491353914155074769857186700664055631784280000442508364374654150039942226088891070174563473724828526627737023274865630101884702761332196233173119493279772971626186291822065720524252236194198659006955019856084981504684514816877693979109293245129014621961011052337880499003250540554142639556517191110640892997785423880242992161966292322560527990397313686509320587275605162341425532115677546023945753928886668746366873064312101535409334124769216629737936920133059177798962407772806702267365845240313164006117413927156233838309697101504997145864042108829602551477785311810513352203146010055982564789553099575707346173303618837953898263046333597489640657896165724827008918669550490810150352179791833083617761296139686440352026707145168788897589344686279709449719865253118250061318940348790453086626992779652786362857300617635292976760043046058206265636585142385090984033260912208744558637764281181926111425747355053975326020132356612941384333981128184673682913811027162271873595983843618883104614661089956963890387181119604092518357235205906879943183751605398094973725316951844026459109543616573821693836287493817995262621973896926563703905271968812661159206248744235947281188223088505265319873663571210758760711181978895678025042020046799044005494752478702050804020904362595457899925023082282910775180983256664814332692967803522451985023429931919950475652162228792879461910777505513746715444826082143963992442935989126669546468044479540163423584098867198483272174037179894166156178691155539764626888863751278015392799300523294092018622857165326270322168444052531793778603220254307285256575067859537880878723697793282577145858155068893709852306206475584876730220179222764011382321632710494066574722882721599038509742699567252562660667081393102611611415336231416345682527908913543285666878753096297114334892354508169000960570267436261002788437555001320936822818104068288577173667546862477868264385137818460525418194134296188718226587539223657714025084768532320541161997495821004707606870709047764088849849327956908635911370462093742710366723633343297055077556835341652564756380335045108336892537863413258967726294731355861041326869733605792706980429874141458113570332365328019148162702513954094033144667491185862703087471697902356901828507142887777980417454318415080360937048829505553060027850961895372716247119758061410904311965491896318770023690789517743442339162840343741816313393400841720828379054173048776467945726596114059956302316585369621819225301238912621115333541696055398150060759356870324257787145264110905948902329949488066383377417191897824274454833792692072584353292820527179321127044566269388350052114956963480942010741016766657342824084663649452989523593415772905431879288351824228232633035839439287308958448070651389556915833960692546947827680041347664562614941152289501835521849374092941096047088972326055626488334628149632923102492770955185765648455270108180588186226394178868593839997735979582419686218221098691101191172305199816472584878887137420371177328847432173397091788559960990692158654420420336848523364846201780222890211215806976320807275642925235226414882479379488435738036333835113107095098744533523888248930342570719108743774553767983065092476359821933221770675665072554833677947665724289984682211048585169198544374522939403863796668150076576554760922583721967915005322580085392856861297262149485014735508455112307207482805200037388475098412731072583993152105517313105933103100895013899245716290075176569320500067265479644170962964300059495474916855924600224017530343482263545768968635099605521507660176186026154186903909306053717204872043235469617863996893846378526337158374581022000460103987210864912444680170316210184316563366739812693747501511377644981869080473168938795510345285794067705089297736108056048311865991483765577768062930026604428266454886146245504859708108399735080712692982257837989283842587815195459841079664122450769020583874471056954437629608549168835188539964419418509839028983369317933910840161721316013834596906928272161943878291654100655304516412703793170126599047647994368616440457019184387169559983136884610694691184036659725118193014129936360572989077480865289879505078152449030585186916066743162654564485747972817890264195511607790308056258105130382372992003835760514993346682396997666855185846255116509878206411084160211952197630982082904296142379768432544398390251803762712480623718801223639770273546896724289016608870227112667761870723268065750978376844772889898587828608600169847797609328445069539353117257050480115959938734343480738730931042766844432129188411523022979459109726916741943790174621964902125848713597079380086854092228072011372769272827173483224050723764473499231938651888317928913713326854971320022672915961981410505004860713605003600124512252062491091394678142314163026123410731017658803017959561622570570042840351026363328904664977459943155185772198028008315854343494919159528734321831911713434045023431154030356262969627049909050409399328214014197798584582484906267785553467240078651385572997293186229517202101686747996640501954005697297364692969389706891276402966804905792841447266628370187667884415020660116316452847046789271024505082312271466535473246914764843964351718355053104248158314649402265404637084582639751065715434118531581383206951968740969910573353689447649927237903554709898281348682726115290524836271118560368342488593137681947835657290249696720838510019219037920701907059157796671046039276306909358983758739870189451463804696450563250856541550655635334299490488271217435835071237248612779198859526638130013962840123948992010239215428476534141570988169847508535461293683335564263214861803154487529536307020339559304612926839340832257119245458567677847858906583293932254139330274889304213205999808494267254936370491285319074393103694287839805626755322902105006337373623475881526074670876310570713056633416152410298424356808410849656757611751830111748414331490998378988720598857093447830983264560232655009163237587292733096434524073618953859196553770242944332883977268865765700817219126699627402567446517556694064164513335289177009279756135381449812657897740394821378710602865518625433263341651125022398957032311852097857661416673893792864925052833898498140665436500434696230072145742240526800120337000845729968834491535783208679991652621267228231182493750941381113733844047405728650753309021179943327792230960865433457185351320315042959016254477597021998614934233987347659858931298548323017834441563453524622502711635309157920785508375580877153566272225602223611254745486253877708756922018769828735288399745427646565497008011942164641797221639452070968294599357801884118980750579053155787068277232698174048071596294943594145243107138595385254172141158418601010781768807273207524458319684914102846880492248374707577596971758959221312028540797552638991598729429737330913969789930342968326773425752873931986500384618916388203040271308886110872646488866500060716145255129099651868251243885544343932093122664128424370946533847271854826780089782479270865287679300873051788381693762153466730782724090102539392585955138605927557861201163037398903859443633695105917440278734626516747337297423133600063846865403797568401505084236039818014689510620861224951507031972430712717848838582576534410589436294761279894932272629596477316638226018415385378872101291772276484633992946751870607918226684131431009647637891763163970482009076676634190008186693061415182044491339772344678445764433485624143799638649089321486260062264323442537839516378453140859038920560546778196783019470343044449328937390446459919715373866021569341553952472906235431456639282051444100456432615835317731490467702744020201853410021136524055370654459300239425061642603948232225573523736374798195095026885304490289690663629096265333086207724426179914080051908527366466169809176279538921913710977167867836951114956627403574674506260839964434659255206289857516759165379753942886829797063027344779149714047513998380248615028809062074841975353540443071212498772288672477052420777943629132411159005640931356055012760851749192923731860523385411624126339820621337422207327017216293459637462821195666170713254617310331053275357620396573172065130532405489707393714275996081565007657647246447677624543451821279174298124609038516008564665813182020170987267141859095246300351001819474783776441065077364954150836148047762617227681654655435282455483316936529254539189660259876369214222599262818499135355366819342892026899071877922904972463982437080738393280545115731799785184424853550632592043954415367566286914663966302695251246211953014857266342449911647900021738153178335833331360329974357702173381652641212359872786774897372140215180825484778203505818186474301237335065395752840707171098262312183712631153360575017489524433350450939201373383695178368260900784075784414258726682229840505251996858650927690352929863453711577788933079497086587767924117025441489563877134833968118159597414321597715994671191251186502344780694603551340144311108360637515178687665779022847559335186684148291209259816569206795167831771917973773038670542987548621172409695662665402136118304152394032791079128002485628984138554151813439055469451212305007086353371730035842868340512577190049626139388357044009740251806539622626484054057094820981839612662436755370783666746422735584270381273620498284130287665164442766247385690200103617487297413513096595687652323844292597277689548458021919251192937035874323894504928171724311804538084275188896449681542448291945136998076510710870814239468896017135921810874522838217506054719831923665059786987375177289044996811037222146729926078563962760181587566387024969176128710325112894076304744044155650820229341506908369049522075830401340070391502296114510772722742848867781390420933212878557862672931956588691270228266595545091603409932615124420810899056462721750980893228881894553758833965577076630059906884601459221119079061756906353347717256604594813973006016897581885428575692423971678806096323178833670647690917070555028259909090791341446946376799865904090917726498562896394222956389642130808211790695556061292333515098721387235672451007368047069762779827161245460032627072511960942920168109200402276501097143540855938539800941618144961272334882143470175360920931136160019926202302518329562584152986582386295552196068336220878216800359132369379968604891292453020358341911212648346914294411513046041595570754206004029690982840230158167685769263772341625667391737922259286881791578092065534016438857419890606164408470217386859052981775923246049304798965545265292173692326990454562580246383850103534643142868628443984400107667696866691811926621539389364813602376920237257844442578294064009574628825092380078619477249072014961553187571451076009876097006824224391693921450164841718101801719899597297947503106906794777956708568874250441724191442496972881563315478766700635887328772277015015815012063349686258142104597807372796151642375334884213400578217064600496229809239884508674890297093290276344050956498690595983772306050285772426994861920640275572825838608570054094067642668344662920969846046034046671313168541197418185345481476788169890956667049954361592295662055055253080009704268197009554865098370849612201922413736839726187225430516057893114922856561869734681011756078939858519708799862633743972381950390120646137419102488103646901707223108529623783287786345437697152278137166596239037987303361627533853395962668880065117425908060357354439618543572561413150160282913016961905404181742720265350518613144619653196787077487084308725631688309027492380676686915177668089711265177943657205591133374173202419047563935833596521001988070263847104049692509663062457085478845918046232461212406193640245485952275090297265104791391439614554814607459602282529250966429109147162337872529757544951990969211931799290643568297031801387926340753600330639244760346753915268820286350677220754076219850577845947322901370209837227389029744726792264104456876188654963968402429147135587628722795947757870567393615622772293210360593355005962442290066585821862098900488976665796430630848517844733534268005571665158407501533500878265773279766397283088043218101426296394746826246244968284134582938377222192111887610017206620652046175344147771439907713386429317274600890904489686103632820352081120231966332116430513885531219384847643936867639771342198519730850916869187917171909710482086671468358340312931718860804120488459565572537062951440284483956423968746124390812146458601870657631356120386653934946802767104439424524887517051055760561109159904837020680196160607847514632723408342678902486192504557872488265937813156630409348974069389322650099266448744529311474209501077825849120575257820537931252057580841713176961839204130275649799476468093755973004678314211716685930256907535975430298114275321082377465092904649905376484944089834324107558395265366648227909028050860313730641161768844727254769048606155474094084612516266588531636429208761947335006934136839377911902118370576353271205509313362606083708004035103130371416480540579515415630963103883330559266773834109406504471371276858269953800740734183092394712147708466131899108376696615596254926944255657360890772936783971506265837234547178705829144505663098742069282982321749529711364286494768363836149504129720322866930256652568432954851874214449156386101392952014352018735393782863145520298505561805339928788979063692337170262481760140008848976492251556355838212370145704897971794408581276863477589640940118544098746939001759887658677992295753364654490823079792835827438597734692551672304554439044840747802240301682772424252463407953698947557119430872432077149570436417524839612794762728788390041340580203532770398073608234090928584754091594008000697565741949630808757143800110556881577086831397111678728905202032380919650622654922747246940475321237319072816496894117742618685781800551271579745833724856739244343817566090337616881514731923819826221903639938551801339103714790120159854431299232643677466015681350956470499288770758433321233323628321177364520357500110852833789658951532654721058928316393126567593802342367503112166528244120551174789278990004179769112801415750272111614661074877708899927618178443922772638102685719418555612929608027971730861024266430245864289140690655290560991517100511738632331711958451491835627626621866092108070221710754282006781745385346293505737931950417565346717083639468804853826217352817280344452996198185320055243080291369948903709848067570909701318478000726418029439945642450542460659618233894340497156555652616279528548825041753765679663870329889870060419480431385435768601237538015156956087689650661700476230066366627023340592537402115520689728693021563337862307561833004014687737048137353980038388760197648680995827107735980472883001882982256077421565500911079505233545980841854657557021671535781290156756650629680645859089613253694877557147784483371647437384789995405997401127531231449100187175237037588467757791913458594890329649436563538638557432058160075717352200988294637573045079914887917230729114935475810400832622472948521964614781777092191689814157021006224013196248648216457043823789754332733887737546261911229612672809828033243050928664422429787543392929877252823480199042963721034415352182535962530619410929378839621398491578374897556192189588118863038077425040279584888085309861734550685523742325490541498403005111780461635736591834726236652814275080073658055928543938701297372302815673558261086223892070421453110680006644077311490860660297949973990228558912997182241499123762961963540338381340421976614134745197086663948792013019252458464937677438047114947910407219846868767888359298600543758545375835214190578121012792817922601548437182021240781793755028122794729179855725105556875410241152701181935811516834520971769042001142986845786445725902423507489476975299737836864544418525462817652596258691867531126039276031131517725736544753109512488609829392486260501020376779073796504993094234738894393570420587131201452000392320878371699244729734478890954777168875938501191861022644519622726607475306909086619435173941946182753438213034307766264205968709131604744324311380131657939559128123035181527602141650110267768320290350435980591103156495223339874599867363248074833734342679238696752611752897632931885951616373224405550269030505310954052719292243116312264417280696317110034472753160498739758117734926558824383068129306465295541096450131606600479104033651963776289735908601986306172677317034477198007640254219439061070970702599115145304804492426294888642620477325114239201885544859780496070041395449015771683214180935088644374293318924042799657596024576562832505828406774035780911880945439302494421039667684551586049474699179445134334907387666276544181516291013816220361243755156702803957968450287841819681553249078820092286613595504173205414614553558523292051253323190605898853414629509025696837152593382141985311843806551908549002722444489242193570641561949132535067169875039041581153080338443806177710768682474968026567811824803941358925488572580182280172944660153159460072348256370045078455709900561971117915980588169587590373416014977063791750280490430705130609599349068957484586391210770063657226316762783889285847799505061139093584499098679642139257281710073766643144346052875571207341272579465828767507037334442773652869604211565933364032777812693091953581630913360560599218519334469650423024260134753839841738955794974333284682869328394699752690077522337391461213562830360126483727531744839684052653477625688964848110304428014252029024427034498588938598283193639981777688969890861791144389357496789377725933250255492839433566695007731916260745723792388857333989744656142609200954700246200636407670991276633572083741201592712765127233423882675800926654744800638519637732779294440904847135550689196502353277323134226557731315434635912845213132956490339807256688221764999519197107227151371441028521954155120737321620109468264095962378799999229573960645260527444652217177236221048463791397905726504182093170208461638754868722636462028428639451418959517601626160595489727308335767578510057384491367228798948316879306793507916684079874885027359464016699624133817660323036313942336729032527426576768332307196670596897154748555751153747310676958823004231916168417199235924235876254137306088212675574811880453221599803316026439381659352754383846227006643009970787927546536525510019243991828203440067528241917933645521305559615861084848008007845317959152805885339105404117830988355544648031357034139254567436820956940996779829066043997491361736850798288198557856423481634336740800878954696401811074389955590135525557996330852418030399839126961185653395092876712241827809944791640723699969153559306468424124460134670202120696375229505692945756322017897924453201094663689220968343303995009824655482636138733173907254114697838791984005376560030737187781023517588003690398864842509943294609644869832844332142530151702371895810045724382515318182576525347476418407242418532400914996544119753192616329698943155606266576281049525088040334070657418799446242058731880321400525569638663232015181775502873050082096955850343737574940664835710675384824705144763442720270301774980184961473127169022267556588233825865509712541797354686372226467435777868959981576876344929276018388353427960846714993067178779013291535673567166744885801517337412621670028508806838601091336458348942334667094390825433076029130010036698424843550652201205924170157573315553416496204329782366990028584683824449225840843053399341462465603060882701864953860215201656075849524752683764727712216502245791979691334786177504979041846642014915639429798770015314270553891741464831312234764203324543107618304896397279958946909600837401069115840619082461226036702101300525187519187325168460205479285934436790224472995191552577405891920863120345134572756735308161012303051706979783559742574344185446781163075374113248691628530471638005997111006719280940538347045506208972020922049054626213538187976471366001921622607923746976193236757669154848396512216020145411453381755362551058377020656545244090384064273197653440614013733351360912549918018005901857261008691793693361441991224360795380638373116743746107906213433766869194677558117172499065405587146362677346606511737879321892946792229383162532318085066064815063620724282809621380256891480078740573265352303064553972749283541832393696917547531320697257729846966087009649790683881102292539948431014618176804710040537670753232482487256214420681509092103980267030757103281568074679836141770726094944541932726682088494173594017852079163616498072000178848360947446719903979927751830476260277910281447214066670325961114828391369563387698847780403895510937233278506778335681106482975100259084536441861188311276854894290769366124381776818087966301647225404153932042926425782499533782226616817739030495968183879214742711572148100160040228204314184045602403721583727183487127998490071097259780648337122258594182726494894708623231238043316019367171882160331926480254596604452063953935408633733536936714002216221121589099303527016003990087236986951805089170744515946302603851107858488427961365319990272981379604555697947452686546650792491610534440006553234826253749377039456050342850935316612613036320976174773580360054149080670330575032004154251796077636378796760027364553071089042541155327807018589769416589460436900343144782940609712650913485346890878770513064447103029808208374595321943715838198161644022658370525621437824299816379549215439105462978783406506322101485965814267638674210279125969982596644629109282405168431497549005887155344697586832755484743546629149614279085662398697246475124346983828946212102792177416297291960750971488514789115833736745490084068560759892055897072437981852411827139700296758077837895966759008267204529239064778889726437492797760571201185940678356166608626061158799400557759930859311821508416442747099767909693424809163378253724161392608034995634887759685769921025436594007515375949101790727236289576799605217627801695884425641083572997207789144268882652612807857932767940674183199696045793967272475474545084082616408970246458060915538711023906802248555180402035103900916146483231512022946853044683879429367009905358414829298832721418759006219938214879019531783168177707549564415319764173083291852291439733916724745749959585448788321955014832457289669788829442222934535044830400052160142186003293905214969459725712534058672135101584499373603767766103066287913583431625179815646911250165165894183708139442719639421464226174005884086455783416307993604250138192029038054901708764782256958503442579520951840917015417792258629761542244252197973791474614825720663998249229627728659438265520487338368289561783192223029625793081250003474799427473595358686534730215991407801063332307645488104647045646118944428104644635382419279087666547300317224969544635339810831535563388152356714470462579405400494006888700978802658176827518875665256009503352355957515822546125845229962875083745823174450642503239704573330530578053340324221095995358950160503587182441397921226955793385001415070994206236915380081130592610390216262354151656046123105056763392734073015431012811977022678430028922825927772792659626366768606932498403250863117097332044387782114672429850369713495350206540615304230279015673780433209406388848212362196824140842059427913348032505515270000032942688549117406296034262822006678279595710816116622102110376438126965878751087033904034731969029844408278920527234133268145009179899965182737127315671701695387721771183166054485964061386530537133297919152930870439949139589713914851208863015016532102693545973495417766799693055805645877240265313623339437788866345436863675549641781564832844986122191897169307670167124035061002025660459445318074759786189515244699551685108014470151412349823351309293618233894222442961372565395005561462775267506670356180339428595095766570969497843973421069727694213418168497403826063899896835171658234942142947259422652563682069000012706365119044629856416856762936229704187000486816061259240456141644992615685242409993179469268846293717902814338054542382418656174435602418440635549932580821315910144861111599008061852255327703565104131151051354399539984332285283244166157242313324606504940658794748162311695673441486680243423769854639122988086847953967690432711576299976737203956712305165786288097866999208460079153091875351042626984720516749548539443457817323286672900008421034531076018816406611409357224599780848299349144946492843857116598791213739749145955025418773444141263790389113670049729004084574857270395234051834093823061008677619343083945192300715569747005406083399340800580375403279070463749752069553000835514414335211902521433818701189068972401187861137082598118659734719246162071719720672633745774736417261117943134733366660524235562733067533000085524448827925570373760143020787633108586130591519045702851354497237608199435906426740405482233679543975452517131898917272171413144929621042657107715439958899415216376896543927905491857591005490749622777583698017616119277892295960955220941686845671942701462108935845302554616140323117869205828374690059531098520392385817775921888531672023043759780225256811115920883739433232634398269531316287084804828451885164556339496545468807841256035737202667514342787986401511429105976169047554772334946306166327927180274403390606859034339943356513139539491895981273121712394880838989460606741540313411248794375270467945140176979917149918294332906669984384183035198554884772733251073760067008198321528445477537764772363627808845131521553953150236796137128683982278040905304586965912272821105069385540455655076092430155554921360740519785926162450377927329408192847330466816409003949859370056341744251133816884616487315317244340431473614937435196953188855461169591728960374457437791228556640964399897910549469056515398880685014837544683723693898188842866694774842682592636715295496853501560492712013151430679766028263719114028799692875236469318270530557057672010772465922459700573081387570416128863111278394126529906206464463932810045562516472999074880336114684904335534103234257420802250966302267718137638291493753257261474082679375617061697780638821354961445081039252729112118652464758306829279489163783477039182896330407203815309430920763952526319029060225570142363346842936951132530732205704551750040328372796940335846208740394887427853532271024542088828722805894553596505709634664931666756736362976920473536963339897981137770995944919139045785509446020089613482115663149889072359840439650768264159914534860303776617420868053766957668960955551634226980545105870775167122332647602545854383341990110628330211360368009266880146862919115367263665634425647652612255466881850635651368149927560516306748175988344410864629829801311474820505992707645515271633895089222093036150322857411377801802770946766093317105369819482804067960877935778950277395542526448200716158169104118104149974243626060156549756125820553841507645715128750763600297511692874847367238704069501246509457387261610167069516280825814084824363984217068624742815444036435934043111560437614769752655561917925686717283345267253611159891058794765426754836355937502845665456640160693795238695150797264993283716625465909313584192901165018704687196102158705551146870851197361084421534179445786404376382018636520713011495000703346566941157164554623193517611391439621614830975512233766567337348908075788306785450044127261380969245596516933104612975530643480437745663950835401622761515138037426911747024571014479715444025826189802578908072889214509751478299935771367299810135274379125473338671651241747295309123721038670294287876504954399645188623665603101738038199927556979399059797264587309842334678367685410647622480652812808738215545937893964319087776057581704327569803263171824848230482893787037033422045684407054601118343552944718743396674856894692895292241818557130099148119374575412002679407810349816816560661840896337215863969122958655204730793409832609154524887726276386426305993730415161053175392185729611172321945312723934607621259271212879653607003878904871983576849844694568893776406593413925716030679222532479627744612080945684136748307667604773541473997546173910785528708415002245380871061698770396865526060565696673875476284543492703466623767169495688406242720786080458977754559066966607927424883118661444165492659651181412683853114126736874435277790247511910825104520447997245515226229315713082064512854412844117058999233674566434099367899342731033923035761177343004186427646292249152543429122740240443382175660859355086910321157237898247012182929101479482279451469983849993708020268201368678913487371692166673767832455169083326936536348780700174522082480177454052722488030381972395571949639720685625996801582683109172922582946601087766108087105038678661486683589745875567492457432379746885155141321284220946319806215886441689208933271189859486458101020474747175777207264017320042201726741813385576946405670198581491703972566982198665745228847593897754493325628155500008857357566465490296888094252385928104435964468268537074287207775662273416854189860986687036444808384175610878599694512485269466988403505015861299060055648270451826076432446300165234005449600392188771044391435156364790701211595470700563383275560722401733189281185411120952000983578118647086532149943084131000473874816671594129508161006352734914083373864222566989692805742332228410189801046482144256613481639141936765549168579004883857502832653451178255811924270984575222397850658431179337283631379412065279500875656028958795939921168509849082591504723325131543583149659113640961943267286399910053913263020125592146553582926215439460365626613134323842541730039784875557373142095491038804439226039324563542287949162028006330799484832817233518020237711485444977924157209577222521326930696796467012037937841378343197429592241434924041971430191954970761518815524841752373645127232117129291234116819358928752302243705455754784833304927684014880275116025495965595167879137700385389675550772346098748897768893120780751934554525904551194523495139438166302516324345606474979595946675099033500572105263247175161231133169145043017419123833862910234294005964832690739380337350666445120945377881460272459202013403483267957309668015054890216454833075522954215667047371856510040722047032713484602247275459514779407425611787855114090284895019059132678665104335821159276859725759351744611561900367872507946705737574257578493858878457084468220056626047212551106549176111757658435698053774084074505420527987532246386990202122517149023344302615902099140804221342153184431089922750790201309600967134811429664175866271172026040986348864978707434332933093493313747898433405723784299164846286860408749346934780797170303735384811827142619699231700097961099155461374190761677203883176562187902339903311666037808569592201779093465745315417029069015715231066552111927197707954915693934928003276402593778833208000511211650352416188317162553006371115000573564806969880263279929864966564632816591036078999985640966064172146067221018115341147856583873545160455400158517127114214163992684506487051799391279276672390304618570157803895992849329625711114191346642254311203600912275344557314456475133659571886609701175848802199711449916869311825075683894332305538924690811177167241924960020083496604829999019077861031738247688410991940955392348407952966292548996882843036884700211232375711792905370073664672900291139283725618445292092417541645404462852030238350554228855074893468499758581475817818132892561501998059348382264735391169062307065991511277027857447230935186631218371547258957114023598668033882896808246026625578623227105424357680271575075675670726615041658009724710431796594450841002841393350938213634831163339619194969564230889957166059429527351207970802007249693550185420240236814908580164395177591917030248026235172253674262325515114203939460377426187301493877926227746803711304159995301026753014129246551982479850885280190454700135356103775108626070342858147057534691986330316681817279168293288024989338213041379264469334479193530988440871746433121187629126051260367530863833858073688929150547934070701520212764511889187726949686416271804004334527326828321662860181055874374373379398054377588510369424238258534247909656875547819364540992488426678333121879407292266395268396258155436096330912478574954630750041423833617662058216526881621051407806811487743695799821391046443889733432681559532255052963471788314238647670234317152054925691254968735163292053168976735514950847980837801615516463790712782046131345218121490284162595259014158961364628403590509655720450559850808414522687811989486730424190737968488379301197279857823899522684717398643791960110784475048703884396624156117818195301889988917530813023778939609970245238493621489247527831991396587845273399409544700249571809507102163345900106088083328233346562756837629404051120528771054493837780271019010330593409802644669275702366242751954961628399722936203324581503577860478968282177443835488000875627021352494449832126757950129867576361224015371963642831987586098373016763068905843522876547544966398567746382937882489814708168614659080001613207778023221218612966584002932404121762965921755728711345496188768583868510664290170060356069180186432615050534455314148674498698970601397922547749180347531460944804046673170607387496994720151382270331341105493826171353924242744823355176426778106165400497104189067585189175052707651690392115196516666010448472010667950843522733474108593261486477653552613496788035819029099122772934486103756941773463187369902448013222267792414501943458144504301281033795473359842914648288722958526961820543163900093412821487995836363860104863301641737671136527650787865583337271299586647467113630651972371874367509510537139866499393777529551027082789397139483134021972572400761266952908062705337224728896072365245933641447170585881280128838984964294435241309577265063175539357131909796276134747424108720970006244054617545055503995770461995642615619266178212969939533846686563274576579836243361063454349644382463404673024260127508393946425800187849158012374047493835158547785677130741692333723661209638990977211070002583683147825508499200189328833300406104324178141475554567003146467529830577629271180368148140241325134450569908000175981606383930289094171405252799806833167835102077062458147020640970140026636733285412241490622362328042894735965469673210432866069739833288462072054072383825558335408876807190592416193171351109895000932777699713280362802545317723378068741644605820055612564313884670672141254984757983515100874359516396786830199514660266413649826103116188175109989470896261992129653414573954203594951047458215569558324716547889816446794701645176051210016559637834366966160773465751928537312063497681997499271774003767883030393025822571441829110454430139200965919410952751718300230216552553666590025244817360910593363973576997658037389214834982589357767312871882201286337482284300418231081787791197443160818479983089517652604057870711509205431165347802731929253943242235165251164013931847524598533746433246596107439735083470535416051106689437447165541074484169422462662294314628832595812282814837118441157189406178985718420056062203732750323625056322071864622490142750994388748821604546544811892397518522706471717739368531008844772494247519213006650610453083397579819500473682323614745896200379744073728783684795963895817507087790371042358877361435516765789362764673844662241569564027945514899432471765379842288929619099709627142964079139806385343217813116023848799483584842191027666715229179291363842303414721645685982601273241362687449782284084675500043370486645788120377798753369425777305802572624335734377984356287847978419975321552634711526194254274590390300906177445773325909165335886708826412877470523258842232436342437744660112266083704257424671226377244259135349346519435881171026017776869419385468822660001577254421656869232705966476443982783794134683280762069044114278157863843392401446508370758281584632280856063616465615353756265886211509891418105674692400836595609607036392656118450695368240852961791977572822150394680915153107832496820938935071433029547735090846756999851852045181627649891468176525205083659623566082444433057162952810458534951778951566186730800150708069081287903001250819448562919629647380831456668677303062659017842720572398301950938210522660542432531765527521295821979513062889084365964620208371459988103883200999612034257781710242505060459264737705344675830436106714146214305057477567454548310362746186213932503520747837964697541642155209005989512099488034812079144295862045698937773118387591440538770471193065967160575662016647233390651810005278340011391908624446188337183237454261581688022172547686162134109865111648954536598658338855747074957332170863105523418941818106591689103059060829623056981174813943501931809075428553933428241193777963841801105785531436193026485353865788281088702349272970957991104035493383200597736928167159041893228199585966427825516589949453134163700083642291230948836734209296063433930937951008549595150602092119965210299737773474678201152500954999997516479361256064576996054214950439676635773974987182533151653507007595701812539242877202679239683323778966577820615652739265993401840124070409654469043463155093382869660986812498630465213683507643733001518998013510503120910876767775677047762080682769956000684916681962977689591584604445739408727259196096954924657551291515428800213026957832325435341002943832789451668762890652445791646128451775740216653641380776609049071743311772494301671660011915474645760408685891155230113329911119562926139997931030553430736512100956054358107305043739412577984963475545681558489995997431538031119975346012060385609337595981699447363597840404297405964222591481871843929483239095177773969384292118507614972475640173841825693711982202413737486471591493071430368883785360943681055203219296257242300551636609949914227097245612774077057838018804447634521315811409490598145499440064207425566784234119919522898549803522091503318904867416190077170889540164476702935003100348852338412620874976977338471914344680249719892477688140089770096197620549903765129227214106796492273292363847507098136320005295381535287982635188514594980820081869681784408597652100580399972503700024044790244493627341896565473197687891158785648912293568644938482619006097630253036892434584653626740312031512373504185866562652331068417514436095836123094873448744470557796116860403446773747279208532604854908271913265411707533762658762393144413274507987271720039480323468746102661791554545166841678312651985993010955109499088907150524607847098860134451759198997344812762956810255179174530287921820828940695580251552135778512437594448833225499578425193471142327284050888759817233873172077699277521316353587466243011800964576603331838668114635409773785059340179503786201547499812483824066014251813541618928319727044748415210642388036376503248098325057151481445486399052828665478325095033415776676674640123584007786770210563666216494738778589515312845513917108381668236519105343220021601042720868051709886102587494549248685779551113966744272593554436098140665346599245858529408654505365619423420648644555223966578505796836392031966013842843840720417911936821258952034984647547164763418518027885588714272201894948356585246918049283571883321652976068704238746545207781912310854981082620456889541795183595398698238800233673832636064112987359523846311724040895390673827865070415138052913358221303832161942095646254432681659699109461830467055606562378995917636985029851122101297106144605758239747171939941153466608028006646120191985883918328658729627680654656142117945859784683716562874222172781442945558985883008535965357904384007567332974011834624367551826225479388340329479206115020828552722995071479644633776009997220335623254082837752554824696496589501002825697239111298428928138888331920770715028135483478060182502757888448314896995793503189757621586293882663465940939628801856360674125747475813353927408743472859701988074023709183866071986816620900379571827824671260340915624160502943453715796266993803201166202946237938700961463413094255505722717739569758647510876959773313923115102995348971054586449084040516533142737303665808770233172813615852839712001787251150285101537260833913053113178754373597349551562127788444463699545435134773005096022980396371133162974310174233136853844937426028168640239009317391655184604926042275747631238274715941782118754119799364408427140039074679584080641958134651582652440687230847771401399662789843326951641835907522045664977448970559833791499705262713447137669837985128961307705619020098703390059354919568638597885882043124264734707777524366523639371787150743539901013394240871512575875803796723753841307807226052351231120398398238029099339333225692792155348497028131878743949080171154609004045096621780892169030990828764634405850183548720978046300774923678150788203677706216585385984474580596270858990886464524717412457602078154197561097194517246953559263205325894528488794637569044912621741700661580965175534247976650850414221912181669596560495354959746874011914664235856229449399094515808877343942362038319528259056170322789159610623369639197353126296248702584202296511578328307480173433940013912933021232912584972631291107508092860010434444245799018912815557359149488687598147407244554455789275180198977254675799392691297385137359993377550110768660801517576309631782158071495329786864718597622831013890881978488617435619626855422530735883741074091140880418969928770773693354592476790830461871087573901880399756160651816065928708422379404933653626843765893519991875155433148373718896722416458461245473360561520715778359071941539693617300979956252475367171341658027626579519000665349636418031753041536321754790014672785426991323518086857642915126734547726729780735146294172866515976013983283939060899446327018162825056536353081148248573299159914969015748419147600922705932016723467036478427619639489833680983800041266423509806536976948982438040331235530993346541232186219737816797451555061985234559474927656504320601173095148172630276583896100226740311736506656681611675783034215124533645003724784363109083499964189848361748563534659482903508047566084559011378702438856515932829373259921078147628937953310058176026021944854715555467996553971488844560075215864745067145264247147596657707767724408047699464026683660794224406545334786060906143940295082454841168938613749537806237999941023938770860197497567942702671214845544233139428071195735050296962150705630174981989872576732639214551510809027165816790864368407970427939964012347807288312603980185562854762550148788121583385495719484589643426086207816467312797586862652551981820380161204418843985306212894655285362401920551265035612212438817745606757744589657303020855325760323758924724705264722695150818631979516429539328399480168313581852259710932187690224051727320942953487627669461772753002918630878195800530481672492254372647557037396098843505970596622500251625478247014644539405767270231778929369478556179284694239534378855713947389146577183432894092880128283937814786374924965091765940504678716956772752938468084401185124618486123768204028142078453963975015973788316133318042268656442682425629695269298936959197935305989230348760507107474981901066429104450097836935163906415321224508764892957481000846483532014472840320562389769138659158044616527250352189610785355896145905978820018780976753056652758356011684359354002444160943793377259740697755224105665218996563843214151774102671056330001072135960343423312862114594329986549139088254026582004623283588354975788928852902067906893568376626548973648018689371451859591179809162451627712223081701244887512881062255894540700685189392719404798065467653818886610211158796614727281151344016678103498176228315364875629309750693491003274838827635348839478827673589862222806211147754681197573172213459631167695405489106587451893863410316033727202607302683777936726196064993803157325869831192494853735841282998784013062290452298145849285995137071380083231128077053994956284494714838527705639720673046283558224385532363535686164775501534224762619330968756744184413848959576600417254741433008239323018444254330538872760410284471673541853425069077591914278461836542908786911958577309675344121636745379456976005665643274772110965087335771126013083393476366360628639669825232097145958660801938552227357874807092818055551726538053168650277225667257331521323707428985092786726189928416890892866063886444380517128022476892766962613811529887354909748424031164282836886688914621778551658952579238126810523332257698012881180791412940684442598818553504614149063850727834937016854960365262630109195219125994431750291483825524073983500213055429293678671563394551169096660856636520867633258449739225914860663981555799172959545974472112373457961061924050819800098005042525550997672634472486007698055658942006079732652283135321838199034110174496946225130091571340289221066272717223416950470060999302611751765565626957887159987651951037528407125105168223642564096878510474869784727620255317109203730360103574835338235481731516252315403751944372369027710393266503201529885114469455438309131955637381709291122711040475873268239212711891842779981449074846182805672991293106334025704921480657118831236535469309635255483327832178561991672163231013816567617616393208414755797672779356305200533011848180212536818272739923822721635761798715639519644859426778756526266955910426125955375612367710808471107818096244966468026065535476863601683774437411767164530002138156076378863991908015004275927132308634739397568683443584731341873078941181482679413986213976771537659037464746317064719060029163422135391796635092095867220726732352604814804792912061640230549969902627743596432460816919785259893172101299197159031892310353362517424561519902873207477728953485088417250460123571595835720702704853187352044611167207665086941155309463338379112397520890257804660688015319861790140040485619735528246086026672077709167503841914304991843107046928803442833078340194717350876593227490026190829132960416661395332722301948406302358913542354498725532829853444957033443053252477157784105088940704481702028491119849779595461656281484902650532525556574210899613540539561298162163833971756681328337105666126128858045763522608329147091991745274174298258959186877917889433204625135057035561852839263359372696627282370210037754074254354362737453871937497380649619789230738544969517982276975068807628011954392678430476541811764599553717898415764480256825938301382240121988419765739001596954279773824612737712031037982439388464447207233864259365949478060037662901019368705049927616655064489232964434800930519377023334261551108786682945480427305780857470759803200077175850440592739639618123719169622851390895003927913455781944586212712857478798882727608701264356787149822237662617076593324766608989793121541055968011224095890024032561511001826211482365095122896051176154647643670432022328573808593827215627778208392820385695746088410210224048098929798373522019961491284067592281053063992435924626917720335184058860564592296978545547064055954499468177685700170678709302397195039309842529999012509251579109826732305477737199368689883304701716443949595178635453850264809249101014537963565475198289463816334848485971392900956032253179321632353665362885950580364663858634558946572235672088663702487722806037486555812391435588004913278549731584547740518358120632242245986783239500539873749831837104981108508440846724111129660120867472690204776305834169401885007048375710599929634512752759190740305015080222258654676358949417777982337062679357075550930949153134471825325915583539391810080300205216040205942681087155030792435455337272526464489589702112734846614755586878440807523204760705233666746126283922190770324647538149921286486727199039884264282270910742496066492175849716966283130153537805351605816867945228713214694777064598477199397593559735046664698768413163654856010429553973479992544591805885858512578000153408978903787129026296949953350042630286369329418822860761305921868242391902663579254354234262235246274730941241983627080219696566506067220833890512290860263333992783623449170226394105951775150922131108382086160165442871060174367192839745808262376497513760154835429039923478331195508819213063339633752442034086026575103871948646921279585700615967149300552453215771174362692837409141223715547815749821578066964658887696658894379633363925341636261418584689453469718399267655328738524171591912211156705880455361916579939152464477351161985084770817905006941322723722613079685284220786661560358422097519353698163318022804083149182807350173185578638725616267917110324751091199476475411417563864926923266831427910694098388719909539042595346584351138132643666971756484023698728181852067640359900548267480313215131009814916830978453821265727328657112333152481536121949896019481038785129163193844202864120511775959868655545636606355931027358736287342955743131632310496247045527482448046798293059632232072528551470481720707001513161500496820891082059894097325835721054432731227014489964594781306287982280252601894889049264517288144165039708381358952349085206134836903961210039578973816367260826656001216042565549648202315684409874797821977493047989234538674740751282657517193652644242939112778945675604827229156136768032709821730498303644560290839848746714693205901765175292184114709120047360002635348677427431747923034865564642500589592917759825741356647871161929197963168881490930601089284987527553001463648175634080999205521675809608377044242244316033276089216146039860310365576063671127063726971642815484667183125325446003221775484988987642827264893635621371876335353569571283924230259986888199512300186988934216637581584070614375453556705801504524291026624611154235260998895800341526824621142918115378191111637176161244040672616569663462468326535292650305520294945958418172604012750153416198676372207810164631741235640654329610854534026386910404120783949221636512666877104213854655827533866151157718679548683666014825700427879183897008607024508052725228228575274497660024457693057028883618034179724826857421442450684376933268986072724890335439308053391357979857361548877031060289956992722905552403811347719963665573622927176667149507429644527646392531329188493273810066086308528681890039955848438269399218767206681697078021914332984993312887937461329410130451679863143920135425343018319662933742175036849658603980818384321870124823314334100312435405479039101186970882182567101861860686485992829439608654370071587682503333563207867206680389021959030702344076082274776711072402874200849603790585802281064645678149139027279918672112135613542632711852985102572210382659132596653884294827872203748901520837419198927613299245408997518699766649640410585601119586960678613202827003217623625587897144920423720958262180167396444950040874472539746447336367705399245522291819841367613318077591216205188195383218463330605998345702390855252547878168486958749462375577238727849812106307164630556800851727430468730198102916876040865741061691781914577980424591603125225666349351832479151867870216186750844904399176392730587726429148214775612857041332761717725194655920004551790330259207132198988854117974302129241639321347998998177613217090547713998504162600817699705151690092600862235618831061732327345255468029503356332299218324384657520506866106146398124749086304151436479952730682899867713050492526293040907730087867182851854405239815331342234111179399339948659436354550970739396335891419820293785111034039609758592656652460174285358808698557314056856582763621114213046129371002477396857001217936960060219470459233760714943946841667910417964067358242814390372181581074363580294056825419306749677388519253256041786579140565617160337437555529462729429744009227473866502215053090501652307401832473354803006446538006561563414090567152401780102081805030338825442509337794619952361852178467049556996286964594460493797076873537619610199954343300351107502487341067027609353055305424301491585261824531407389684017045890780662086593417520218869441257676484347608456967448887217908104187989951659277212066122814958272235119498366488280942091937917015134037858627970523905731177855643024153521560412380731516334923946425710006182762184109881575599346487363443037006205361019802502575164111007235723806817359077554472982458337664020017861398948904559660924389344862796427020064672754043909722882374023995670887791204915463521612362043539468846813527768703577029969405060872978781530309593629041880651855543511080814524871600866064868557608902314519291741389988419718261067095562457145568254040616652936252366496367075309767626251547712076845467095717361997054138767947993015704233039874048871375707706529913050505659343927855364628421781592767998758341284665451530071974678276038868475793819011012974186830963960848359717027653357486776049504683686108943008487260723906491361134692568549481606557798109301980251855784862846246306789287727880084756007536353986873920679292196498055819672800915177194420154386201943176211431342749139583360067652646985487127637683140442603907498828939063577650890538131333350283539407956369656383693041188098809244678438714060733054148498437532233847362630678195930333115529159459182158653136690420796537847669420961568053496437955593173303441765360989012334927597450759188696505400847621708685279654508138661555912432448377625431174165973255156463168102700818427440831476679487973627821213622545647628608144719572171579934342243332532958194668564516216331970009550599835105215767158830593005077187258898292541445353961247885157911358557610756145694033327115157898094231210918684814750558670047144798424422211545929261948615280684697295593646780052093606777489066629832294772364861946247695566792112420741918934715475113741764026963960587357091306503362031133573557829545924834366125499511199444967333771046969613654398751650737454165545035134371958562389633715509288364665651995124963028576608613211673748169124724922744150416881589082295572719529707700306474084972990272233460148854741659265931076805163253857845509710541005227730510990816573784129389166692921761439966651132542074760252612382299983945331062322464056114537152204565507981826975032847353410221280366480144200832647656590280331701931247156905305955036171605812391289139801862028552214555296154088509413955644918751059673170035195694585938347642083160781787816343839727889133778764932611428942045819094240867010031644787495679198275445511406499004461681474940408149258197671235927566921264017740201050450585239859603875761384989312918155293979863752038614356621698532689171961114167214896954375652987262155379512439227354521241604332047136059839881492019675856623574960507883245532592964749916803952688629682462632366180030467360659305892580384164837187011385521679423236715564532599315614820772132117132401212927935301971720647370704644699769283005751198420331434811518751530014040129600104010258145770826509688894583063169317372019615289847324073471873215494633168696074684448855924134934669976111548831416743892180696591393524046400434792983661687726693499639044123129858824164070757862115385983176215006184805637520558404541924396253017717010733348248560389992773389620181971393991999751402214758941273172871120695438779849789682454896233838350553051496102021401228707781156503070007128187690615685375227969577529260983064720767982565951263609183936278610719088287438773249897408924804358296693513669322057415013303954921588844736024621236108676732652946366868337261236161259107445530999607265362909842589355891038822322372541777307278286832489372859805809011697306200722599881609699586481620349319144711407773844806256983361178777556116561169797341755590024754845100670621628466059804208203860777520687377719448874993969541713851850812644727747811698002782150007221282538218773035904430068717944941200117987650348144023103416364433361920557204850303793276054223979372900864392240712476479732101445888455949643132202112698677317088626189881190733804138790094072176111426020051086379504794386189962162385833291079188849618352077618330131235690267517105314714277205914103058156464790784891247139753037402904044439762001497135778015248816831273461611010845295373880392693814295563029699175686503965309418243922127008169743284583521160639389946060673556129660920267835263429729690457480930579241136663049472347929422704982583768918112162421087175902480314397580476105497748222852593066855927496691407907342985943621729809102755603355092863755105537840677755544894232238383371030523614200034825895991571094497211916153802078600642239693450797214732922244699185351487972951397295033385233690449645739220247806013656470893185601886860120779844463438507469425550703872150437623756176940317586834473992347822019402484620957793701425802815118001744623340832040127171574025369279229741398267968223814092839695041194553582404150435350609287900796507972301146599141738705052498434737900188084625871749760101967411500954719825065138908553721593819858196790100560272507543282915323984647840848115429244865215755984275191294997413333160028002606140150032727435339805428973520122676497284604544506063013733990517930561563305134771102017851985220193992893576564959303806830755314869891832929957231474390649525873099632306062957001559797443288224865554258302751428420974384263507871700610959128996921036767913626285139878696004186621617727231646356463746967442417019647981269853178088191478291026556515423072069135377248624148965318434429535663688222036233313606499096141262518548679406315216733277219499944383618530441035743147560490108484653015272386162666670577903671663653173583648031093157109144104052433110093169821751804134762908904870834515046934252573268998332176039288910782592993108279288548646370071549676576423516597075994600128777099897601865673205628548628057755428118304588801504700217138650352935818724430719329879817361482625366939218739101623221409751538223976011571449655213063628076396725868607426480190300518459208929558231346357201539849527807386490958751106122755539296478480142380770273793894096712434331147712717930520322521816583111084569440426802493381031192126835487850189355545311661791039314764124679933370275825494143711031301438096319272968514863824175378710930524178969869473948722367554543039276592259361041740682037341957043177733509589646986213617074949034586768642284718507375669402613531031479154962452650224417400807972589406502186315099788132556486138726564233191537711008913503028698364087878137648621626099612207880391531376317618607320071843816488094524800497945502539777409271846727535896910426825336948246594022164809102855610539083717491377854453779359444761405736941336036948872299706774350019175221797650407176980418701559582269564449576543030918787107340216279472975743233771496487616303926753073009365437154629120353729271829515539858145394567860953660402862312044001876052169388352580552306900967408491898179117786884874347966870639162825986210767390230037623456084584157044430927660076237338649214524755804102186988231028340277028140982203507382246823690871111230606488675335473136427705718027580395318988919513173637320707028406031291057199870888675119187837856340695875247172800101191215656151049391006629832193658316295123347231609543708276687783654494722519232284857484993164426854445869578019383495718859078235390721227254015780662848118345435660646066386637456514679733811077474877281196711380630113597115266324213527206071642962161676452536342730738876693479622203289569659892510140846772512917672418786196343930970797643857378188431105038645996663606431278761541542102056746629066107446885368409673047399867905900406256864351734813345013653184940003761513459988199528114616913529530991779170039800697930068147705808062664672808325879773934796137498036308202326225494066781346229864831154429922247057853538510094834954489945985719872681992131280833442331941575036001948856567403436242011505785621294732069736029080272951329734512970675916928453492778055404256061887380520889703437797619189318477810778175726395090506414398332159524174770801913940336842175226334645880685942697021905152062566685529567526937405665634190448359683187760584070045291152125173150798692785052818094431334339667533220392331859651077970598818872278443596558280657004623764260570528270002892659585973495941239910121431786412610427576850431180287621775383148527766133287546721816107678813203853002660559239441068347164287028720821206415779639907340657129026000366610361234738741409409409891216776822919173926953555261275238842364778255827253253530301552260187272729093127081316198403591178001300499145769820469406511115294390319506421435991691479651680279916008076587777753833797827239052020659606032519323517792277434856526163317688008686729298791627188266644786660606582767318581214704434826506407250545259220924347543372528195314874533003057092088484073882154120775639884441490274243482095604836314252419065446521893990753812967605746991932791335392683846888128377520633312325671013566974214903701075219488384515778001812906019488246355268714778358140938733045905524057544753605318311012527364640459559841496818683501224792623710452768555208243452983424016892168975446078469122691437099826943053565726862193418293205234934172500071314368748704684139904000660650426390559027511605434834334620988819517558877705551686207368788669366257207682439178105562199556538103988237061833360613760789970724307844296774840825215885813092599059601636392086335377412561310676398833160508998944418601741775428942783093191120103663683304717784335022046946469070421978969986880312128400349367770142988655856922100769743527835444411466386892211953680896828700280425490103597797100698691980576350129471617726248560179988972901710369163170258551016240474092161453805115675671474169103660657904374781347850206632060965197797650820655356086169646664792262888218761443047796891969559215238405061586236089447985523291321975603514640068727128317682690020713314015903784642159271811314166771191333783324089695878111679594093817132919970431860810053062713044064987573648640149874606324061014202405965661126401249431957257773432761147134340005193022363501728904113966177662390044289829699886035203117360035416947875790308767345254673994587453860564748380822462897759289573562972312431986356456818996271051973431305691424340270056373171884818496834778350875825512695231341745508541224796948778795217534581259149941268150660654135390992037771167273684929584483572453225782179536096052324354099228825675193123975184660369728983470686245515853038447311672818012433716181539274824741776501057874021592465292972078428013898136452536974144451477830025741231537837589411702782362838647026115669337626084886049503206241270499133396357694061010919900075843815543359503981918021971623448866849847815779835871594550252071405381565458127779615520256446354761235105700215862269013411255617334615113361244212771667416085249026228493332222178563047763519443916385958778420582674381249487944252090400187628116665395017847612809558185228411213702842090543674254421084586290515614594466047070201632572087878486950965718977283515384830191157779018315949637346859394507199680021477769655293324695499652569074647121213070690563949354983274282726274676918942170972638366828488722042197949314404077552145221963836480745548487174001124019449508080347690519222348553395661953328079672982877324594116044273218583291963968384665373905840694491019680284803443979301812684163482130136784969597104362753037608602164781663628111341778931810462420630207906938224609495631659914245328297337296465770883425242627968534283448530713964393523276749093781996899587010147265355248035302834127057375376041724576225713971001323416973127132306171933970939782852925690676691460560778017940288377987734643471531839135098497422616622299418407286688350959317644867397490130600068036160768501158211292326187186537962429087667090074289205966133593798507248239759109919503824663222573725192413857038960879547600160481943542117437081315977465054654301097195025802708797469950040346824765762272253757596285958233477616319170531732102530225889642195918694918025377246810061859279107593981740820964057579355298858206198061689187169824423193068409515643684688374425618607758369995901037863222370111650109013723386996854717381139457773728325222084312704967895891997291728910595175499354112763567065417717774584105497717931518005162374631891093620100757898915229806214152439230964001135055902432390816246963627000651704009353966844486254709757969682163468132370225396441919688734436183713666861915139124049939918653099250917915607171158350402404296478757004386694029489932457897763733613881996837581171038025893725970282206756524504203506501602186584405047343643514430838412349699882621677593964233631749825608086989951575311392212324188873990822025635668843221370924573581124212240192665536033795555379731928628040533272670235986395415802532699007616082065145961670005663916364205313049070468662247202128184927264348980393355166555334868466711450899458110676810670574102665923252043015087648774081645914359233257999287417317869668371533509758384002231410465175175358916095409518212115134253457536975971718043301467659739663678706440868786011101930200849709925225294768403452408387133112917785754748143647627852352607250383559094543006439940424490180892199720720561239855583987497786254951980244031058801890007514611786560772086684444392290528301914669135203919425131102322853833183507555812015925446050142353468358141441354723336657225354458817528992417388310918455108732274814265513457765448050947973140969780816359921109924418003306495391523022099118715644138436088819560081745901826818290268693335554262857788181486225185175547262837427357170526996245443232587405209525652002230058774545873917175099520295101985281742786717441331872112800110021150007141987716951113837304626303864758466807865888855666643488956073714576471014975315994185994557418550633937407469719421028620055343484654188736000856000764336663451817704114924105844956559258416580077393654514853616318962224679784282799411879786251458339355348464482983211266771290369805230194314260073970535157912247569443182484896815806546390175908661209974222189936599319890672536932153180599782206942643532074779531603233722109238136641150410419119775377371087914993887614433509251474394857727165686602054473650535078315404062630062552081211541707481222867396567545679079499818814021750690403414821901598111595515665748543276425554071458204562531390671069952832650128818141775314696827057910157379466754338781702759971342831001844180725843620952303994258943354247455550173150451928049137859333694627662403931231942423329983819590011102431912852156890040345922364921011805096283981348352619824859988563630409161914726998506441073178127293425096426811733268432596597895271550028489148707360808641211408683246294179170411660907876924044203626540523247200458259999765761731972375147786922065477174303990338087757498425700178698861739647557862121118070386475788886725039431896395123026099885570154747466671256417265288423195449119654978798466005986940664919187169741970205265474381598878291664400984671944602168306052846168382996106197142682164447263219387642700665928473369116560482665388631527281376282105759730178976464078097429625610422195211091400992286048060305417539740072542565613987336487712640197611989016912111987268591541060338113920059608138000044647992419073876743891291880314388373995615339289123976932581821164623607775369761239338335051486140698995702271034603379317889795001082047142609566985313896227324874404718334806722509056198327686814700485481065467259834548729863384589415835504746765426134184952745238382955258032565598678203349452572126733981961217526662542200079472306365158025217974349887731383809712807432828607363596200807795612644689394993952965778934072303689923456746018097065974212909208252526379342918883294327067098304846307957846509800980960962031786943365798532288513184465155120679012830141093340662705716740386632653418150082742841751530786804080225283471486455205514565639130789496447386080521716859284543377479595282132426329281324709449565321248249165330122541340357629433080942484569007033495324556472983883845718813518123370263612247184699626844884053006902873945585091235906569748379395513567390552536670467712406882762302395992362904257568288166358121739910509270481948519872812783764368860662108381290663195807835553723817269407319662736667546916616386012288681386912799725616723810476914645578416843701944966980434762136211553372510012667102704646681661727806543382643701566077384337329323151514634876318850289049075438212317229612935805187428470144861917514466310179079983171846909934946617542058743098915070919410068157292818884497158800916918612152429822756437035902909827630092538057256171651468571650617511117187739091723676053879437142417398642518862317593247747568998756466497080700968535372452033535773462539616535671142643069775133089627336375337375739943540970377485077385525447198726898903900090056664040972605139118145652349354483613942316844610453208931383355455029755772711680673852942263145474378780971705131028771896155613725857699799167021814238392813942228895005373033678066177706727697942903418943133085267285195665055155623418453153275881108443160537782647291874361380673375654598884381528581504917321615366572735336121366108825168149125178231836009515825933460059839062818404656779959996861661149221976386855453667553418610994502156737371026945755144232126230797147626282319122533990880615460356319722044267600544297700469067622074547059380213364393411999080981863635432033433327281946375809141797181001772800810516835155122618478530142815652548601374980645196698480721556329639615035212089412311187345296457523268874569488957664136458655291003513509160525106309712547454503003248078328744657633608102567625439342823099676465374038432561557079018441535184286710390131530532554697896081844680757542620090657492091157293497398949077303009469049890634671581874589747628597513836358648472350046659386543771263579015375201335235870019342166179201456631329901737793045083606432033542604266693805884477424297584516159718642347828305617158068332298638689362651799457015725396904158984415478354472805117664474148807638213720876798111155674279400573799379046123329282373695010272857010104809650144147378271350042925862707041863748662054379565366575007043937085133041292418758087612316567572881631897822987856352362049788551894216126899264936486200993951593195210463459019881548491135852993469097073412125847475251067929002435088165380921874076278173530692817686454485478205386123092441124298172824476246500270847153368375524985557502127177003659655776493613936068091476726666734908725832084065368227551162769724657251795152281755816562158404145979914071527960608980272980050631922763770750186482207996961426743958587865233726960000084381520419339380019640854241058561436575714264617167244952616288622804625732544372900878609959976874652474783299617915536818110955576442328775265129234626862632910676008297821298004915894650788731768906103956199736680594650600592326860431231756436744851268498566834134223906938514255695492882668897064018472429653240951313186707327436272884304998785818185809556155949537818577290814198478293709312476756985599158019056167826598610088598825878995876993116755842084726958616678398302816693787022532761810386325165805358405919092325326203193562102638690566085186421017631335733246345753357171548810886404850868981675758791304962286393504665562552536228636916626404965771463019918262266516554113594212240675059354050795455248501123089068918573838485419500866364630577074687291458201562698189231048911981210965553275823631111173060708231717885224887075383561213845185966471502163055846171104031762123718884886703467764276124689105632507848393684097415487699676614373711116236840495263936485593100520655668311036571471394031298393031789960734397225692995774767843579142676722078370283236335580040742603910624001149508328322123153764382198336526539313084325403696757967306355924002108551961367943172973473341199980620697252772610281050423153170768072448776144583471378454724307734173535654479451851810939035364559607047543698383284288231447151196408238030305879396164167387357411485257031496769763669803243616563610135977327193755987805544166576003539952633998753214664876913104097254385829678036615806974533999722603067749352520405789405897868599578055901234641124502701923856207798918203422866789798446676460473545752067097520221160352218275899042821055265858862809495420761585138516265870629135343242314516906241295442161250414331613691456234375941027252696348981656032161061242584258235650336310145249711864017255389849686284705044297802406132596442197613906697566826567318066988749122170173389765780270852122840822137912959907011089756127448096650361268263391547906364976392516044222029991121590827201626648821485851135572033174332561604087831497572303358235407901822447354106439124405038277744627496807339090761130680951108394874289406741770664732120778309889816994477115278453641742367898487494489965301253542307932548964929936945629303516723480598606189055720755017554171911804462541625064116681470292138788535013459127021049623119515050943698164768405096497557793686872576721300882592328017457984120696394485541377913254107370625081329947534712740658448697226473760374886150108192188295292162681165478792252294846638822147614080416257905228183261224112105267753105906001062592247189196438120923667848761534259260448446017176928034391773365982585180432906513194979542951303550950259123816553749658557369966981103972670716137473765506661185409089906704594604702811653265146454528152714111904705826457080067533692541516014326821222123858973012614178610772785493920250490205637589010663479621742855106547767865557502081467474728960044908092709407905202117029595901902470823856569815965640861937509643733118927778711885208546531822570325162427911079862114416063135235605740944575613753120194605866654622858790185672769709560844530634852503473674977811524478724094459550355809490411663790370159975844432690007401205196297511247899139551302600933396245072093711833464767465140215520713205838143694329208229597974149962491173632918448445363920384899613004119631813953426501862950492343001457413245321160533865102654083422742347619075168586021638103160714176547346846545744981049231589404922633987715186970569234920060418514925310139612940977670113548668062429902509739856979102851457630827020363700531622972459686412142375500840959176397253086816483461580095239389870199801117295768108447546594061017278428464147350174631406727839052376396787322910513168219816452599402765955670588647807931987448982307307837213003133677983449764619676796188896744871649787631983154800511997754862739173691148166826643800309896187179427389456603920370303914661321499265161744959793790092401928143565209189317433802174942763803337943934376523455052458398194911967843474725485392595972535730141381060578665776748990627996554287580564096475989868514207611759440780909583635380221635010756309815944175154292530565987029539324390727645581083190871644249356560610132951535297698306197504563083037380703775761502968859427246127378154402482853701459808219070385643696482859219473421815110211614649180880387281998310328443712408121099388645456579665025227659600102591771028450255638067254528987030492699314313467909126709814052237904398877047718871604116446437347724298528904130349638837676860289884874502695878903914478855929386504335356254381380946334792479137506479712051797803195251002463124223980237134185887437787884148646832499114522652831341121694168410261406618752030206458805957843061470909305947165187254395285282518326210845582300387529957221560916649861126745618991724238839547953723101541894209580296399582308462796339463417430623818772541939464747539732857901364128186586492938928097660876425349301576135956830854927794780001388466385024665732746337777725524267151616390813246753951674587558970353582440118850322808657394750518022989237778987972574045010517582786863354960204480115697910083948370530226680178889386614965498429702388085079660175504829592668375348263639532735430586923607766959084211836743579782264421206384032631181351504809774338149896382867346043804151432720003448363097690718176986598693955497980871687103589453852695255737359449998047376557188005483869333579681205215683396789259121685128256285163425483548873317646318155775244540888375516595663615674486753295837743972693757776818980243196652853744631553883852259560869684154250207565012770820099914367861068591309183828222832632845562432743243272982411343711786443801371127961903921492892375934605581937246446125918819507712917650242539475257765642578751306792383683222921291137256021026890534941989275696149901278994353529176381400761861613960792802236895541154921344392950371697994804982105245272425007944926497532272828946656611330925068176947545223110697786669782014030685313409909397744837115869036215217534441324757620780025934451422908231380540230340199155232386266231352834345030033123398220931284200798808375660638982018874540570262891509433716548145771850049484042241583908477637350485685017034107035218052919967270765615056167482431329856019373352295153717007433266955737533061742967564574913570868294743715350371356510465272539651759100386005390617898929594133453633078128004941277163793664665483698089081362971792755746532943533081311351926696413288833070002770570553772496724233459679493687541840893129309187207622592861633917316000245108430271812706428586720595840566434544898516336992179526048713872979549118538440013463174685784712776592342251776785809231931445053730009859228739025629110839860199655938629918210695530331819218699866297740074777253076780114925710079590414574489341291658351739841194040634521420822727616935902551241300232056262742134652120848219054927462153196991480433298651094081961942975122375070666788694238079651026866684338177733456049919023247346996552659120321728377196486555363912795558936696853426034736604961023424856366790080172550370952639703566885900444518427380267033656546850040162377292788315049716352594951018246172143965593258034363345148624941078196350095360067380983200463695515754034169747643463967622208855976664957154473808692228284030638824320595285625324172974975049381395395814919416983095481043824127476029978308671129536367110670613800496124638805153758100212768591035170035090847609268099725001447308520474810006530129328828414213861904790668665581089316909477366663467539576557357350142636764359003473495256565341620250663439984011612901825399516349215673813841969161496623404295275803720075516083132830905734690649638500862584361629904161936089619631113522439930886776814695880315332488443592903020973928773602456436178393269423395731122556928492143025515707478231506148152588081671326601683607808906897721410805575978300383248041418113404324710390017126771304939649966042358988550213342706929809478697494857874481094580707710201325265924099692320283985702691760420194406461040192138845136562521413716563254367784624380271458536814394550948386097621725753157400246079349208809648103870895963460703453813003304078759823169391678030771700691401638189251223806515356233085381159072643973822702166491652028345526792974180879237587059678577698027508926566050184741578351956742239592852016828519214144847692169937643446244190407778422154247376746983216587108583131245610876995736426491981980898242708615444013152699680740016894799901375392863291634704660836250092177462920487053848064262040812475037722524804644572493749979136100468426763895857325847760149183750361714926245213746808399216162570775915762897169759885907724990330961164370678415425396336433069141726863024906645110538529105112388104039756982897492808279731295024654388488398778010287356936458187297145506899468159715574310452826333903458069035456296964016548860913085953060711564732007517635369378216743493193633558173473616744044386893085876836553566140998031046209033684011976352211709319837239206192355863844461789717767215951571094377259430960881539501118454725888196147022822405551993599350748127284991673287100799348400907093303617569980283320156771251442052947464703568406100018202529246326086235208916167535971672051410751691569604338209668454832159183044658639174495054546174217017399176289564959297144847204680860310737632671801472336174566615209096121423455614345128334062528744496751577129023722225948619324082142723984800884431352784658234854598893695175961419386503403567226979698938314996842682260712190853038323634206849858761673980718873651297377100319387721090509121664593163907618182474631013492115825588369240603632614713868582081481453835594908046947822371601094849365014568570045946062698192943589626413343168580600348386657835365138792359817983682548485545237645672248174757243970167391747744354793676833341037397138696026317599154482391051558132654535916094447710400720765166132371967122076054018815856453569319483325640791296630785526164745010974903646953808772417038303546117307488093944975857072955692150602680582455402066099739523943354285613646539864943858376188113505844228213753714025395954833450216503307742743276989342014885357299589480553715923215338096903469878095859305723915079979402148716702344868676217723810570567225056185805716506592337330931610223046811795121789124399112364469482857238837043446161495595766664010056485528796961916849944086685542026094690353859008804363966627743444629923401581316824903801189094953314585005771157079566782110561123953559676639634346714936418073742821613592927494551447818165881148951841626808726806809365711807883494745452367445340953316887425128680613157672340182581371326570480771093309815686222173538090090627341690798004644370690139731214107506069546499405047760094907795040735024326889438126083745308837860980346397445429422189002625444087568988180618299341009806115970054609279515372420514682988149205296203789185849906711760248046100402666763712569419119113574194261239926148443444260816317529690852465814168172331416231268116380570147340077079252356347922655676362026880227620370635826347799144916893928420749921761050561328221022708354616409304688930618450046794949892717962501691447774309512746747086177156858523042999255176002136302057845362782801525130458569426335181183571654684133442165962320455239769856637814234896190000670555281267605254892474592606582599857695047419658765073817023359023877283184529928905749256754915148948599992077568749595011246776442381937107573038629880322279155134629803163023620234134649666569369781146060159464756870945271555469633204154495643797295106052069384880265825400550912020294304606198582660896095909121766291141581824522009125527767335385724027662906458271203949509750849677419357734691282378303888707617220617740046530847456737021137954360717351046324584368910959940572947844375791770023063074549659128950185025672427709103702597970011356217031488874975622157308390897631471149186403974325822674624337542158667078603000996197884052449817564551456021916001797305418859365689032393306179562804821651040065813143546440735091769230800324169889525180250550108308676427077655040145898998242347891317683822424135044387931636807465744398274041484427664769846873162689970745948353581560589779167138856692426218145761746549712278072898029620421160758410487332149431212986595428828481938331048296767819247836930035932013662771578448977128182033317738238134860632438203147022615346532337618503944082446322668139735128770092249097936852938885065642887410910666323070064541231820137293526479478473651945285118531128571710706854372975602330148312151843459661833169141982274783434558519083210947708378474361170459890274270199735283719196514132749323531183323267260250923178622325633102051973860471288047285906839789140123468550376613193380897294494202117346743830867647197633846460376558215452326184196349638297235533777560784610367393096766623067897187699877099766596355745809903321303721795755113763486080480604225919524516278987694772892943844674211542664526353467773630749224143989434371834807099464391226115773607637384537013475793092856075496593476465128418198430093318941488936262474272536731189606353095897593741415385233941071665223976750918841313431880518257115217345910978611704044270919093250940423565216742170028773108393283624960634787310547900354626247928387696324415852549303909312506608139682630238943443151042018944575445414138324276851658167803697836818371505675532008461904326846950444488364032395863470206502384647417432384304828224725390994527729175203322941471060669533643237765952775223955967270905622323448403626921850630310957633900766540507504970061928875355460172915997500140274479744431789136825490725298167166428270486447990872467489327980447782117155083445033998575522346655584640291378075319851095658923864838265354169867746182832429426112268739412881928588274963426787348851217325180515352451673074969681954966247284273938165945297059913263466955970416418919482812289176973331868608801235617758216787864519733449794107081733729841784626339655450737472014205528765335522754493353942359649721574659670763396961277396342905664607844245562277140156013655048660666197334002941567824479645805959548817242854506794045815387548701274538063032507819601575091068516521037049544209760153903690044297924842662560913827346490238378104078104611953894028738318064157069035754040262305384137472096207388110270214605453556592721177844031316001733472664922603143788092593195609469263527831201022417266913017914103741268062161278084008950427842955464803218346393029187990726766931081981100235840339418078905886685804167092977410232428572153713895369503201750341684171208769557704970888574046572871379732690682342944786682141965942137668426205705518833417097413678695975162697604213990345004425970731231362091067771252731715506960595087861711573819011867549603325068267191127586690322434728904261240115427537955018422481216790800746126119249547444219000888558428137305675063685361718336868535724796886171897387166845407540436004944135033692082873067444564817571791291939115798454487218099298496115682051621411252732108217782173605701455528223123331795062685903353240141646606542175952843498434066102868414610510834156466164174774979148428710069447230271236556485167603326055073983926241835246037318212060526711941914640492102081183528798523136110465730663152698356702035385288130410282428292665181049345499249493375627687788038148242126000350468888835492537917895870934580403997021182864813794886781054761092185973832427806556974590422748480368407373656954261892658107166774273432860990294846275570174195292802613296398333763515926853160643998015586820671903704247523475506475676624686885232921190152198741680348224844997475640851857993850697844790455022260609612506550807526657377340114686976402298558461685907738503370807457532835705148512328281054039933116782539709350509234820541377260867884142855533702804035653183085124978627014108877173452695238496563414677074304589914848596955223532540582951665044311287859850633117317706799687048744914999106983778817116495727243117448168479612938545472278738623682394462253247362024302417519332516891530493471928429358294583478422726920001508852090898474373591852073634718378211926029753169619329452296423116738224920956365390169642266057501231292364123401919355157504468587654101073069895627157095246666619830511977610274737617391427215625353777193467603532955979474495962547918711818606734497042763800270605776038460046626710168041843849743565184811938164788561744597233443022813192115644868655333219154843527164029511296537606837264957100777265543541223913212729404903694028132250855149517197854780447786805525116841442263361353287612404976950049245492149916776506791320188920108020185881675483197636889039108901211991177806762211676326977180074074578775737691557296394481425376865822561190262354569323017622030880063275019453608915494170003515361736351121071076352053278314768816357157664164329980494069214688949032110373311349081327958278236624868283299867857637401444133959544647580879466487106981823915552501476308255521785827584555483142941133954347196781156655833571515760185196609924383022828185943152304958750200468877375145782537786278383085232819301083631082936420288328736922399356937531497052269347791819887199263803210675004716651542009737463614622220028806859102630800372220181463398900168338644435430337199946150615392495376861689863366959387769385149557136587972323996908557974500984430265399299143356762296418074608708434625631321096791235656885666225875605947257683833803758949467408709634298751820062687193755229544246878500130540155265284152209533235319557112046206588213352214865690033543045091131109365663545872681840240163695337768904932706959650712816240795775250941677253361781373382269203301531163377252870844273364772609345842893299881563150475962105413090132428551107917479984260677412464714683492510710125988913849848836888314073516008668587815259990759404120995879182585146372577245327569735268872860304094223384611447154590330468986958152893526729724359147220846027523593614009627094503114421156597153237726735085596369502382821502557690670937729236555319654822454359133885550041385270105860409377317418044035442098216776736553901272229667338959543743129594028503865663886851084540190472082099678744019104547040417059860924923592165150358896797588879453144044819075580631125100595222521626359848044609486583759952915083081932911843482667197519827218863319872437585405447294677598414927436671661865299305075454635156458843771401002609777139702266905816759211052891838483031289780936583883193220615687529774381104799481391516108573954372195796324332358388550352774431443691132347058271927638877443979614460614911441690846776341965574188462082151816297118155213448236163730287187382108782733296357210810494382188320837548668889731645642444023865798829717268588767862526404523391551380735498400618578768802863187371473374860055002146705977068984876975745759963470143062734847761179761741287002633680639626625825781420222747607967794873712662603119873339515423003637699896339272698830494937445936704582840881928766346157276621972103478536831850051392753366988215557577408773703226668462335319971706067394384133014377266938859217910230241510176436039653482498136460601678109313001638777989605115872080843734408777214438332052491758085002750316731797038081639921097320902146236519106010339368230040552417722441602444285295612830430864603193522524942511864865133929989209327875535259968898169946703948814332301220028221993084456050654183295102207972328317656836702627355924242808671653124856623761547894688278922848467578201370943102359047974535354199955268861760358260366797055607476313784771613328774424442946554265674285645856813345579570377905003995131843535831637791204354991358045767688005762995368575736498107657795576316759279982179456558906314310964580811801007981438517617071359317409892096113222899227709431105476413224876860232050362786808365556148017352513041714547073646805648060500771198282542019920433256111798779668324301203074812144932833967830590237324774037796785793356534496201071369800128207904012854957752913424916724725819825548016293025929582622669952931911158836966086826179826006079048560092417118137869142201789284361944843029521862143226885833074611140466450551727713081193829173719227887767270236336234464856147670789380061063551319598023569053640249040548290440825711137227564304534189545038267308977313830066161050919161988767963062701636598856600632690392858440663952809507498987607389013347491159742960900825774971784498179953400591792422763418976725925364004256531999836778348197280579462848448621064675184759082508967253200778129347954000546629865899826446181193441568686549621589629201658080876291280743892238209487843452334718092790228783864628971535161968144737670099364723565610828249211903171404213799179423094713328688348602738250602379814691632248832548844460931305262723513607321871921801881097574184307262493448400344498676789624168899127289716944775292913728403861507926329406623617149243306175800830096277069348538397202151901711019834562477371240713938822547966644954357590370201559365504737135911408874582254305553967407551905621760711412653453468665675499344984539595118934870087311974341664099678418558137971867805562043013163963733645356351277565143608909232574333983279407326202635627617759275158358881222020668060699556336572609260016920697005804945480727597204280685946867342906441144087308150152051417827672413721311695975214279101292960805886550613383504551649758851332096488027544915018350304573384490234766777738906143546308360239744205625684010085526162878393537889862156342178699382092966049991705916946201485631546102414473265695555432938964723674540728355844763403717544278018789984054537677824105618007387719414070289208350796660345535050176925569168151368604390340999137100796394246172508770812223187416936627747994169995705134038616242302213995490828495546758319487920683241123727631007425295274811377109534242982970138572573039650735331427149769462675846779032644621471382191188345074956548411941618906735399542594230157182223536362750151352357445518415415030524728126150987630416107608057965064427885313655349527657556758257621249011348863908872726772682576630951184928457939195829584580339386575061527281374396137785079782224634587513528948386204007181617961589432602670082683821132678358492020223054133306516518671544396635408962776758289666010854252100834652063334665452101560283850667434600588010367060517345890596728338241602479674498351897853273511270519115430947338600852313841220425624405245123268002683092159483972722473025683242867155861035809674875016270705138687088993518405227225902971763587325301818323987948859329417718715834764677455240101721861876765090413254864897471606749243595744232374762410906119221855796283653744238898634137990914258822726510842099250248311225081510562868002027964344956520261199058010431830183257950165196039952796922802402399455458958639442154947748340363325566046191318544345305045728080558959832786460984107871213491146725719263184082808777580857962402913090783193353325492875863492353939823856597010856291472905789909787716512287729213479206780510219564851009792821554198149676525295860964112287523532343580315069574289665556178684400734265255301699746336949431453568587478194346297073664400722852415747959266057973264387186600125959060961104459376910499489011636843470749022995563754353926422693224450484034977799491945585147110617017267664802569691749136268332986567243353468995136984862540753133180339070651585911278747582616006411903637464101467476436719970621017911194785459558889455265948129204157184017965709255575498727295430767396838693460232170577918248478108843318242771358875305627417644837669830732943932910711821992129825907905643310014391524035766027351549354501573831134589073990500682373364538564224528743821567917831468034036926970846104938952837105462764391065498768020488456445077777977369435771144267696073915729232064231902167111563965457352841497993455251377833686977464869958515153859044349190840698456607823992848195709392979087543695228083554541549831796154459685826433437882528000057117440681978502115998361114448858133553550188524611589107426583415209908453548891940944259588965501553938864375125349763833605933729754274504272681358560438550007029957796779391487618853834401730881439829957904228991902043123729093402182564792345409864163093648884770160087786630700230891611452203300516961899563531385096974673740322194846152755096837925124783240015574274045874387593023658186542026810825324546920851929836157491114406291556592445274494532981552176675819718279610863602445609777934287612911792884304743732771187406151093932589311000699577967592366953332873349408586538034689080737640369946832471675663777172489148293318379005302149991902745711721727422373320927720313849956116056982020050928049577225607920675369275929707082203683529689019040855183633139799612943369823516577808907824394609567272211595993771291950351502267624086087277094661564350259061240363948101837457225123355724205305565235756722280227550203137047359916924279604309383229055628325468807585400564914923456778208260145526447351300373663466379914833466506404828703333604964295501813040487103263719379532574917227396517889005107934666397152906848325832758336275162041046937304847164795830844982919886720913229616197051964402324748429982783779229205276703669066981326526434106846379189312631244824693938016050943114983809527966399541146407033072233753424264161237113802420689331504688365641161122837689187027807423427538326060773914923617867721387778992776394062601175677779781475548491853921100965646859315027801507095903085823897411547957999569520458224794415512356461557206290547714317602221009298067550732612545015030297194236062680123169893808623670328336822806919389179092247096539491719158986257090322554779493070870369945266855360725985616360575375046307807071551066634081744693978347429224895239677984261082066497446905753438957155561494778492257945951593053308398804047459257115246224591556744368901221434804446932653564805574518399973482328888838670278969980136804237144577296959763039548766917778014765487736015215629481184132239380790694845079600547085000073499568435198059832593837324758973076355156715078034716940908833648091452071027941946796768879349778374437759169380888353817667723698995403232082603293890517749756912952853061261593435795251558790302694836694989101697231846287133970190030194454680688378168739564995977437303720120421210911400140388120398491869401238768175152288295278095991164324832589228439322932285819348753903714623876467820372986732808934877212247907306007529789745439683242264005118701700454800354858237610245914254217048556886822626627012671951389346973013742099632487786267628882322367248799148711912930020693081938572149500386546033562461912919699600937967898582369570733724137627707104239980779069670625582071062368821457108294379884505839307694393627187373297491746519540229420656844074964525968891156934544893678339251643334597609736268578109254793948321162340578598416329595007612128241077202848217066237933405090249663557719996286390959153870656415272261321485241082932946027281599638089026934922745621975429689393056653652726855444558848570993259728690467903516872393188867065869558746695980172060215537257980238476856556168639398209778237852079268752204428596647031940259702735404264825480938664825511419290559623983143528629146661372735109052622041225788523518445598324533393503226404604449447962288245936985987312400807935430778772797396566444640327755240560394421851715399914290969844543123935070311527747172037124969282680661626032766490517542012941734421239342372719529222638972893975299770172909627303417424254248061881067105043486408663073871989619885488973709009773575860234033269694205405715962504906848240677467384915989385483412409852165835747561336313963273206998872852509670987020080179566409309066462837314228543201886382449825088495389590452245457664907467956603292772379742771033661072265181016840668556532451080751777854397189546284498291000781997684767193174874751423785853777904676978475536934786933579577412981626737530074581079651702931235622554446677297751707232568432690392272849510320636883432565700806955204897533902527075296549054679230290028622509139111171659398487880494347305693246334364736475127910816983283179567199225480085901087387985070828834796726349929885299529608495230888115489187948301874664547722592953818040839205859133809000951953189688783068410326257029990752420462211979795799026193261358342039096181713835987794222995374819934574087959411769542016433994482378566787470499637299986193890544743771016255687504526694783072708473262717250953942659588252760167337056122604195888974125893417602553537050470048609412985825134445333113718756070230055647617498222168723154179191054887257181119037925585680964605351849146995754036138165607717460940223213249939374251625168511884945991151794681418753993421750288834489379750161087119035251172555739964052311522881883129128658517118076465650205427766710292243641858871408937579324168660127282336140248050637878586758649415303499234947197268104416638480243440657409740596309522052750538145896764265621987988227254854503198147842884394667787778501341872518199492879695716043295441929896135391678582022597356432731005474765408207543896279559543792663801690013452219394520340841467777889002077495425386598116740966357418207386119981558142271685186417132596272719373878758056296526545306457323262283653093759927503893585288178923664234401455057800589713962704307909973525811158198127727532093819481013822475395023728174461438735205146660490503938521666121094401453529492596608014630603034562753273381601954799432246458410028261377154340609376850889239225757790263517545903353628391831869569033288094781227161193022947924473737707122170861804851529591752178503254325318086213916101565415855443476280617932028246089549977166246167228399251019875476471728054411308746593728971272531757730516814428594470637503489570032794635657562737124429067327948142982356312323313506996054525912474848294652804116796143136384755472796119212540319056450106007073756582358894864475075861660082055518410175265330530874071900738382745717500626832621772181855828106421173857780039297522900198822016724932817126862572356595251344751940591736758908540867355889645713201924853090773170415072012880248419227772838323644108426657650382684571356956374937153467469486850394883499526731944592402225870548062262815226015328851191025643366650332686245232378832834166561551826362551040185254073650651031641311219653573895976158733177335415680695872954703060351902637895492301343351075611367043657048511109259827044786687807278276811737780360404971403162417126163527086730022371315511932167922950944398137548239325613091313208970158230793430441141951755245050968134476382876327158938750290723785507377226996608115795774517856653651409197162997765666046792083740051451023049160175560661340698284959577931403455186548122013953176537529772323603429404404466325780835050355090638785916049413998259307716832546657092154286444711968472799431410626717049041416350102713581696993750655889957195330895298471340112640844415900488168720518970698144574293842578197529491584970783600720115588035447568934515664779481235115492123500405917002810568079502662572501015354665884716289443905764639330973316640689490756725542062313063498095145722943708955008507585925329731894802319700796743479240000157870908559550296498112455217906639494522619152393294473203108200672257770705056551408910029842786179184537765169208313648449171545807735429066896807525958449915263632151250807364268395111790148892563061150251865950723872964400494543599093036664330678578535744744947084835791872101469370807798384163147887290040916952603143149096097791194983594342890114800888080283829970428183881873925284612808459452273973228961338515413141110196502720455886711185505165663432837760890348618777748526864314074777763980007250829648133312921691357424676667890683230310495517841503562692657487104641709850717578722437466510865782541605262654606856206050745895421616260343227823816909069865068304723968769319689993248388928367163516941305848773358526741621689244648251599765854669221744204068852061749234598976839120497370095446520330169402764246449183310994062229818549519944512990669821041121561963189991641121221528523595436854447799758253014139137233880968012773766888298546162686809762601063243765555578950936731502596154126250986055738253988724009921312874023319512672734317774826184809368519631013482739373731934491338206530871866538913865542883017480336482195714648231068661410293745161506226216748882202168602998578134090658510800620703252391081788545880739200382894462790566045715810816851709592922649651025157135495726920341787132257316946241446405666461898849842242418477243402155244258385829543916377410485888852146965028909946466136050458652581963751428718337782199409527503368097441996151623922793408626506304529079355156285635144144788474258736872549768163510484736848695463490422432513854677116157965768203115149233259589583041658315605254693647816465997559841847731916619858210541024496721917857839008709955731730262654021235212189266551837516966822826093771414682415731872852016309302588592618860328623463448315609562621431375105833792787986911711738622143860818938403586402081882460574475837957723271349741275119041759966850341222470072219280767416947269830515269724837807682475537666342362994048224412836637016480309897062734883791332438018122928414346888540194940841843626307547247003833120768250498828805773876133737302803097515386508158711679760161231526411892253756856914418875219913658375387398675835721523967429188370391998190642248125638215688228003553459230650834825608859809677952902127787057418534245114161487287761778083522115192051301277723851566386072805120676231265430727701721880730641029664586794922975169367781318315659176668682725304908327568861991011658947378867472894246394130857641220984584065954491416355710697073166073576389289295977390412662815574836517132230869451085790329470788625733582339586988775943664469239462548676749665605396153853099948644191007137902735975176686928397161359578016331626688955706889922986400714580206387008746364965552519729441902523625121361165978866127377415888384902068223386389962659837595268106576887902385691905894007262280934888696041130321083538123119479802060106764567978133127997842808132095202491113526162986937116753387454297302895698288446952426423358784055623699730866198607691347979632463531203025978715963016527074591460733032484601667522694483754218374433301392733419752068832478126754674234854194042553128452364155173491397639604222795811151652837402094458762101467044380350370158309944135840984075720813712576345956416867363395634548984291443411296887894507446980862665921154121864489063669071072760371446185532288628146134677478791690636505461846076632726509935319220424805198344052804923861505189978876559403524464441516284666987363692904837549085078953167036836885054374864664075999981614549374872717900669985999048595745183176620234456694794058042035133451079647379688653329795915403208259456652177793035263676336653154402216119103364028729258974086459725283587178322670323165268972070125732452339984836894723029261800945729374166569095432380927391889178065406526045895011850936385821294146908377211613879571867444291142892230836751005237769532973580818509064604087781034460533730768655510362661767984851165681616047450825620437074714367150170021824261946869788646959613073010462026934931998958282264547649996311275246811571279469977521941080696508856757427821624521697474937368549690516281885200278794823623254701257805058596388662772378745116331477489595154828428632976929488139433637258032626830871439624241580943740338580535230128086548314274194780855880759517818398358046859518460697530528180781252580046534686230022880517724683288834040511941866665434747210542592034075677368915859424695749421599269200765183577872023428357312564095914079754930452380660794415657034599025631144997694607125928556968811080226789048608138644442017311738660777389788787020093530986770806098100070838949230432656530654386401620854625530090029550653122966914546271015760403089685448157296180333261626680766062298408810665812223561998948303762173440821336358715198943517883182407359005499857365035841846129878595028815751224720683925833989399725149988194949415845893830037755220728004453185533926983365683800955649494651525633099460024577507724463341759754065552667119481162415641749701898425630870023777139336816536605356713443855395464019762425030954162333600327082712481603650267816000542830293206274838750587840258053897124815909317646551233881857235889015973775602206317377285886626733564832368670623036138464411492449035937710927152414283848682427006006051897317249656726586339856682116295923360238932761866639419617797501942102406495668719740065908540513346850956972731267556211975789491348082525760075526956880821872980001216348859460733530753376311715975015309592929316454048599199271725105355292324308357917644646193887612032856017949934228545686652927628703641883076434800222811586403269599248915761375875020383843430820335888441479724097009046897241163741089730392489429909206754742580495440506406295779403989100744647917701536269592228441947500081238970201886976721389474553727708657540769822384459848455056210678571967828349099056966511603072672078755371988411236303588985572489269639794851998057223989782228217514793705210051511320481242882238941382975782890300937497328523216213125692353180441938837340914331480051801222919317646862092069697538941873666215188459425486798175415042428503108131792101632762861277492962725321684992497976080149454579349225754577522450945898477248445289713640206489023553934167189952879657652538846528577369104401103071350018654652146664497402225375159620367760528302125265636163700731919134760350159956649242034761821744144708488095144440810057002616249272865404838197150711957146781508002639336134766340355135166510566884600976771486257461733487935913777588280466264633257506504256752014623895281521184434912795046318143237468445244396491035718361756810606035418916044300009920398949096948464110188136221701755085775617965182101315888911500542307015389570701500031464319586500750411916881908354589763502636926084760300174402309772078335689771859117921161791570574910940637126270523425129931711993293327184202255945035364299612638451834277117042907477462419691852731392380390659389384193860141425265466627132881060818672667352836484718638076089493954258764297273641281978426708107085302867704174169923580396426908284495210093723416017290973362476514831753401793702378448293825418264524097863883517956521268597611361283327686331999290022892802738090992153350955192687190608409367362335046479066633112695937315943784304632030620174242708470525372111803343459334947651541460027831988315527397667950237570129224074205979406900827877495816906207287044673609794796600257799758688296248000343183383853263939539880204313860558819985797015904196831028869409819133679267029225905537750097043272332523716795238470263635698272217185514984378614610077701191200329560180780420380837276126086379193690358239249892572145234808445189277359032190618425852150449453592222234469840365881721868860163334121046464959295913844771019774032105426145915870432953282893172495088414432779795527462884451816172796080362058672851826053887288634199858413328563205994820727648333825830911896873320269813426749788773613416461866669885218628761178208518910845669755102989708917118717720341745629252930907329567752876851486046203177878743893129794767837233410489755828605237920735823920119187764271195420850108364918666549546369478711558459579112561185452297207116867747414125297179361481410925184805337880277786647658036328202208658780311470671526361022958637568583519265618435579711151012343570733639639172639834978034243739077529456593656472230951416559490173420144269889281077737574743207860562318029517276370958529548184050930124223262468507892718537590220882478492638442418058028721055083068454778758044235251885235604559501249767736554567348310481010733977065165827204291803068526431666208851885715880529258016673601540642233796715700607807530829741162632609424140869806518065228870493361424095982794912851193541973840515581202776753032954317132277945143407424587869332356621469685536364152825471337484530054782213954350593468347084896171825248870589398338438826926439222000910278955362481242682995442666042270022752731107962198883684125438331528556804214657602847586358664281681263557027813162568084401334363053524374352993431478249144771720012593911611100818074397321170005132386860912742908101141962956401253790515943043605648223143515255063130861259044360585678733550881952365581122506789744666037051962313527463116004254803477198389875547281806970665631123294795355716690747199122357673540890808980488533745113595538541255742761700832100620075426824166121384451426629841554945752623842613869192412928211773238852920251201885868031252744229450704490910194077506074763416812759159947360024051347833968209237277220582639676708679708963358156460251079983117368894149742779321080652337208154075640714101724527659546856516139914468134339349521872902402847411921843504070736282251053199118605583720899323017691045001578138392427051318566972088837230222636595247971299706186521206438460056321292108924099428486592486886173183176374945814272200862397942900599795398711765720234529863087423046184183318395482012640605335351615430297743991582123585172642619569328509327281214972359133305207240259901040630547131729156851168347628278141991187426377007030779004748188421020688290336787357026420998135820275340750145300373857291395228592363906399817838894840703610579047270920665653498204976204262492166594737167451623705959324855937448910312799880721220849109152653185735311306084930361652250987268799661059649686521121365701462583146559184667615524908589386391119860487230943372894264716781909957242580123048547433613970888254528064109981827654593568798255043166846494667548507433243200910206833485070950262019523344559796665522287364747130312338332371200135252559249761872914021811907183180900502186102263815968284479681037215338417878702419669238149221149072908630529054754944106670602531801759361317925929267985962026724056613144218456968283751863966222954318061803962408886140485793802361072130766805222534498319553381783209299456549796098676366352807809780104223443441204859111942610573302578255635743130741231879553163734350489811717440651353886941657834474936055831924528409502881735903886085810408727628141040337907299687046198186557512787784048738777922634712360285396348060807649016743722360568051714773267951833655418416538962154380818165183539693827162316240581102299948717257394537748896851849443843570930801600752063202874277705124869291499220589278230169809373023257955558769065978062821886581997190277310036321602922903679186591829461908135904221621399425859998959504627605414909388360086688600669186830934728941859260841483740876916287475555104092198988250418975342640321113422918459849826527077362776909732788763876742974414459972271348700591327590615792528948686469384125395064867701298066055375319453964515801204491792852518207878892959535799698779680555187899920745210270466171618222663142098733415306410118724374740115595437681031087291277960350009443379977016987541964645211664859670540038775350705941696494289422327092182938916585797531597980568722884514778142421832054102260808123242536711218291941578612884871697753193639774546290115967211604119676818278067648921541981065742010074200145422470408543662825064586099525892072094201258061308041450247279733469347802141041326612361231044680088490080409643613870315427832606444643857874979303122670415801457904508136717947813312367909487469312687883528174938723271753635058685228863959982854043615098208204819602561181618676132842693943439315711505981552969334684426711264931902637367754165642406031758118071189032255648859911602153358017186270074400044464330381036218156133287358611616726722647187252512287363698839857487706281423365536189113817752730740692489867322640810385450258503078865949841731635245257858345860744197929788757729345385639371377873424914496725814763836425497450083323319057466967122637224353786480080433907658310373090980028099118975612110251121826167672033501971958663272214498761402090759294405658951815937475123837686737753891694642885744475514149256536118484049396525749309544391162762099853608422908827984992914853338585624541670459562388082829573696584730275149326663894882181382315794507136497997281812023918932248803555157583321191048224948887315219261973981789456581890428392964338690937296155082668495261311620646480362792713901581296919909194676478550249792705481590066355118561607156776686818647784015022223776398154787914336639345512515033409844498585526046244417657982460157856142084526102872530458279873693773243828711542861569682690760514481751137810109831441512209880476097429047193413477799325206167818686063470967242127920497788363509798752854211416754757412017863317473478509525501376786020479645341012852321985424185410070073851412539503352288166655547782804640186528641266041453527044188922014718721803014297667222490724543476409553713371713884622848597322154744235539277255467345542817297101585266231796369875132413820783820735639378407432373521748773853748576059854591360842194166168044225251113574038737674258219420620757898798789686997936993597039687646113995118264242007069854202709389050501901690629952620623027779235572687707691402065329369491182662435918602058454411019402418425652300734893998631259786054176417091893311134348242174101963067915395847141614542561956320184233631593315896485335749527102704401373581523630713242460270523718776702462291012041939328615383794886042432936689209823822174690364525859650576078170051168910299165043760564126073231826893377184209264700641791893309103505724417545206330831209230895477062193782532613430226689736311950046399759097149056678435381928081591079127501210931497266524427537680539497123546086418635567274630121079465923011743753628751330564590750675026234332109762207644886719656150413266779050470265136813778107819146671202082975411656497051266079709938755857544885516805570325568312060683173729123943418674443586285178232689629747909416952492748545142852556757673172012928365167399855316135785255791495108118978691316037573337167556337031488126896939094079738546164188599066959028534402812246030617500204724464938157904116279800266323039804607960437661019678244785554423290557088319838603583361243761466887970349864793416962268622093121686880860758234190910736435257379742338728340409911832541753511478208067410177345641398071614690376833969856262409524447807783100523817461761526304324178697823969738136059759894218023022929117233746819122788411485238528674193041171739510632772748909651378106130910677690579429583489326029485703412930346013816092156649263218483911811604340838955857455479877163748608554764296933561137843661901600970574928588475401709200689332955217098330231387476183309697376241376833336465225720643340562891319531798237905654371877368268282688752421056700157846331769310738524927065102285705918572441957302493735874209760550252960356135102111837907144774944641637716350297721581213391550599933993328829185775743972613627210551006508763854193009588415163606011095392419130867514287444056972063757306948328451567694829701924450558299877075453001241242120214698724158969997946189065856805518870971180930836008625013904372506444565994413339115517878404296526410160808635421224359684142345503783619505915189538303663982477038645494907561580817751481166886007651806441257810287244275349659238202135293203611176104658754706818563243716360408506118322322404546365676997685852997532239880068263813725956445102469884885567987946136468217043182118661838288571712785058302774529764334531445816994260298826827274598972051230098851434528387514563583038661157795106893935135327755847185724910077684162936150840709494381733023638410214587519708235702236723343795820444410039702697359334894034900316013229169652830198072117150724361020930813197878084304798482242914741576141180649332221333176897518203688940433840436657182763675992801898561723724207356755726964785494339114606412724117193839008188566898926293133222519924399075961236884093566480433595487640526785989033630692774039432403946072137931030870964523743154389128437084503186024697099183939236470940178658646093260699670806484635955833347863794729555872283485279950060898420511470080222332842046319378684075945841373685645095345022999937156721511520517629455345219445633418584247516644117696435938167641541609400985461094170830420508670900141635683763042300582687601825408167618517766303544619704194756103807733152907415627510748727286485298209532438312717767020458584862930339526974856282002900896619430353639987326066313571416554698658678116925111454850604836145037052743840720578039667605594376982267372160572682022378950108667463535404321063200891059709807300402526377146162803752900079729027522525686548690468672975405494822340726698060132295383251987007934407515229430444926365553058282681113592404822567621274960703200714268489295743617142454084133389913665122622639564380500346359204313106656895968049135524673934741571187601599720697777950288654268010222296681882543984914024289631659607660927236837780744960072478047210175434692066670888677475489646157977705823228590183650172866757849171376055903540268725486472425969631032463195033062659011597164480189942648980294255614982150243355452169047352530467525107203323295455360656798734883145290095214628429868947821889194816304572589841380726331795539103139652790256313443699537569663706523968726418629992564406987843439433722731284049749096841169487567173948829058171705019641107133286547346290190930502959559628115803993849772660485493444756224045892804283837113333280343740923402770171790558253958780384832238017496339882540018977415567507420827721317240870529782126362989342349253044802985727642487144196472114141550629226294386747736519668423341795969094247627129586833167384629004634287001818031366631463024987608912334379576428252153779021190566959037747777979506838456420303483469347721299231523372311860347646362050845254338453770434218041484440351352604624325263568138272873693311176482642105020706128198033752647048242276417881907553095550590634528108175838917094744646320561423460998811078761148909793221143852806179133511239565068484832628568220596874460082698960083982106415662949440244294924080400497275433129272317472113083298220671861103994116103663020110644563699408561208247744807405954068797796697074481532306095262640058686187328888993839095115283487807388766118083080891589678133084601431999646751281668171885048315581163175366570587325853954016631122069425776368521158858340782989829208078166526257073603667465515344106645376635823555478856473160985199026142920357432311626092172714111720793623186612203310652459551160584815997395794685569211401436454672977961829790313735606511783144286896771351154228616495120666257421921443873262270437746242735895528679868213419301382939747157661227085800486338724963400687143514859284107648428222891621313642094459536367231772899925601697487101718101730917746227339826849753448078307354045472020320886118826487994122772380553068772005876753955619910485463870220573705062089110617202392106086982600249566024580325487654880282431392112314390499208148357386437133038222640232747921072959619044601247064232210587233170561806638501334508622667687716961343426018461778793875453742934438520793245622186055135457560959777813743557426534045318104335445703624666399014979100162119609368303524902364496033414771329482621834785065512117391025523732078302432557371852810161375634330351314998102631613592714451293908246941689092515245890882034748091710078372143039019403080431321000757721812278034466184647387748921289471633658170042721821925014634583439341797606956662392370077344382014355479354241483749883116280879201579660715181384356159638791490720984195887256618039669720269180734747340312318962172371306041411442016861555624560860629553216065033709974292261603240841220493090791431061215392763565270246832079169128420739006942916764808948348060571827131293782185384784833640372603966715844970774645592834308193306489972971439016121912011399641285138389793776621364493702041162360267626643133687421112018800944660766379296740802415212200315517161432276362331561671384704761107904135533872846610427029482495200540779297958112086637452533550679935092913403032347040257632424649210038373795345780233201956498039667192017189346678782737300290724811536066320581144709794455821091353416984887824716183900885978470543036168467451501126977340285769567681895863434137569243891970405810697353892508315852440186235588649392064631871542208595195322524481631431001018164666058179903620437304299569431790660570893922057160949980870134677407775296805251364365492772762520844542998298126936234997375514152432898091260059111701325452353374628306443604115641804682533518569139320740820027246600144455681514371914324622850557369495562269586741769680799212559043611392045896467521215853409507607927345446131976693652048763374379062630584854429807763825841207499739593866135020801277851211553961150909556586763804077001869439068736170422065457694531326626854291128862461684426743282056906828917755296916090162273926703994688444168755353208006066885317811592392336447081287932965152167810639280284390609553321864420269709052625742218630100983868246782799731484091169028497130784618450924520785777461858536593767784299034080451465178559365899278473087240409429052111164799840586058231159958431128600825255806897439729065299825262864787926563717221026167832587367022064530013236092262619068371775452657033366531412760296535890467449736926168368441001172228036732440490987966298988351854948677276867374567595552524897320088900351989200866366429816692720472251539498382371577936037054397353322095324412084427102954133949698470206130151236522482638585684077970763085450309554229459086733542159735551836861084833127832587367432797438233037939697253485639699770527184639885535133741373915859249713696695542681352507628416944545836195043257446723783169204439803185560541894969644725966366281636449257172888772449711144504726567699677826361772873171942878719613943828858537320755865480392450684632940405898415403795962955648064663427256303341298013654730574110586164373625225538705643200652553671475406936740284455979577977048783277597514527677553544998295312468157997298727857765620343523546002912638312552439978121145676796955670204373686513667745896166674630163253912195827377939846610033984255278331741522478608136868381942980595610144395613320074364990959793893773595661237921691294812471411428036883228681443599441201267799110946445944029717070999219293851577441853328785875682325877298163409694051314773134597065763796717530144977527945380668109155975042101826827577828423328705272867543265030045863611426206288977833354753980213335334248336069781960143236529832031184164729052901911375584751956445382251882669278630008584790113548034878709567807999390093126857633033864553291262209019382276345761948317605494216608272634650088161998805808704971608368183350191057143963319184803489962593363081923551519264498532002516162857270226049967075683856414972894992956003733895011112705771833974604961740429308701169541554736395650296184125405218877786723224752499115930059118423251434355803496532487229095012717375520959949792225657724843182386040123760269401052098699950547606143024712117936782404998635759803575414890094825228688206137705103963190288731929830938512529912412144127050168114946221459543757745139966635508004914079870854624944458716506176010157900524173144071371752167083029130087511825085507086740071253754452732373250181493908445058775441172457048444681494507819986854091264249637526781408510276381847016089087818850163345555294743736405974955094752559620188290388024506810813851420029786763835607930232455056743423668602989285246436708152870732827333205790226151340459639012023218285278377636496590756953196755106176072533158454279154423890580980269847309397367064935208597959209126510933205979553258278117107353445413376379635188354567446501064087658332568383585285019137926557717550161820810840216607726972232895140824252024390949032418496333880223079297380018930789129223006764627855643917854165181473851761241254915866775132296990963186801687057726771327255614841688141595492285617779266909655041081647718812505931845907199548970919235632827538768654439558762384473091628257910433022712200906664912516479059516510458482336668628632345456079514742276859926602919429092081636058975060134405939208364989414716646124908685661263654736854280875159815023609202087914110181777440178904134239496629078430612190536586792998405056306246387119333771359211044728737871210800345539268305261820237983788661160260233353173737675294241716903754002299687203436040602692422169842698164979269654460156419560255421690188718978267563381921980307713984360477126762024500546476835151669108451219048060397268419576316242612088980081547470600908240801034914511452955133450035801476588769868070056688082558285940652057878997739703930823984667273441350121785281722949785119276269189839544643993844375389895605778594163377173294329446459953789971815120623961753603652317158853856845300794543983719983095589160809252910320354618987106549406504645301916705295091665600141959792950250828445814157505968310844312795707679098111383895306230174998744810347490369276394558815650376844546425329761640559624560998824531113951249876071041590286500969697788077317426706599275081519868258617075970155331837983941671851490769391328782115814034670932293736677015445236961211048144473350016689484910790200529904522553196225934814669713114249936010124456012665744619665339648100640580228740969055477745607867152397561003378368106254845640712960019165409673317817534423941646067771926746902472162437376042631998218991928092909243431143615428839834022246302836968936168983915840341468620495046607880973795561810349947575899053659376977536785883409283706012221618352387050235855918501635706015460142628913380798676379365031822666969243958657550878876679589150177950488855715867741897722118345431330776653685586247471415808805947654204492934166045339125457705334317765932323824864368783857885796031992806410330969924187731112135575116440968861250487412118050628628754693475831563089015367240220665405820641322289329552014458263110800854311906719611943301671807377371317997984137222338844450149834614493860939460260938459118599778603654313188413409478472983231986483174761659687686496124010488606016597174872749925883602516226775948110315688703451843161178397539491426708318996578139418708974332197732838623192579565909128546718926994006283637052043210328425778328015214574221582515440941973358785364797375822880152036583923749813573814702629528547755991404781069833881135280102174239842026390437847536689474292764724429240880708770665038693382269913927331168653000670525512443657907744285216670246305792118925232845609191816874881402196023299378650061917193511483876087509404186218618567154932777459893829154454855339491286392104379397860544489120359769410359593293466389283451469894771245364770520961512142522479326160698382192411147380345565267986256995914167081952402158661855696428579164983146207335000613903124863460761854761623103362751067079269842126175340335071519486822116750553389504823839417123303032216094952084942807295582579760016361326379770719188622397862530670507317267828793858282860023688948530797710131506897888631777008215372415717504689385912987786928683484740056462692116362515706027139719980619277460132030062328027026044366860730333746458322207169970500434565313379893558376211018323837480027830900482695391402738813064952391528077360324479753630326446816054023022084850831827812360429253726939816107187998362801996047702947532422927861400919015430651139948144695104844362759837826181297770364568482322971679831292159576959171492634125017067234798328449829096217630231317929373371573674704916971985718887845534312833285558963040023253393364223436567255089876429397481023500915153343690034368578818817724177015586660674224504798804237834112523236080795381805738687858098886133963158876180058802207850354656050205931117953131562794101236237301505156032600444568856563387005729124805611069168049403071678071311537175325458283988592344416486551481644232157283126540530309000325243452823294610627312655164922606380638963386323455819784878323258579238092329728030700829199586970162774122591025383928253849564374747600765911939132853954221710927489964440695896975045882361945591250744222022520979380705891010885455711331978045138062677112314285316368063552863459251946897101279322648952657847994518871439148202004918437376821517735378865035930090109444898280579477307988923671959133886081218095241320932479416297210636967474013886960023697335001965914235806240731091343650739245705875726223316551591503421191064706650037259046933469555642693985354435642722821622577232034802047114791894074814902131324186056830277992000675138359681532472485293539964588629654683221575977183797619169349356789882602177899350180570005952338392863058982787382695871618576346651256295322239733421220234646220881832734498793749730517114390622244027804906276836873006650898750262322701183160483619309685958220002634442408243621939077535766635675106452115622801104415775132925108450019730548357238463933783699352435168058281498373852028217139153011747726629521936434428018287212977612791222355646135691415802545113821983101890008899385628477496250515586247152673284779907967245639526081560485650964735271079511361008792293858854353913239565136225485121900152704102374462623845472257093387186643661429595782713378727932441688137432308593787353132101663277815833167432354321351513364527080487587943050110926604268015920265261648415105951209596423626529189460382588470547753930755831646807050379315185794785280159610662296971609326494329297418884035664963842954441723842532982527849305169020194397899851289384476376961346092599657442118373443641113459382550425983635937775772322531570373598865362862072143546951776988954418781131330498858186289561388086832513294352714529668090131403201803114568512218725431275916686222839835469705131808055346733213499799092937370332678891839317702672578866418174112600724225718481346824597600934230206702263489134870469112058164050261076214221789159489581800251463284482317571845261030731429420432986892807753060877096963448667475589055891851189627702501500865129947664753458177294186912889272186946592590315691304452213664777476521932756567603414696542353944307078843439311350403011258578559877401533428950778398097961114752214469775660514030055312056692780622338668129694972553320510691752773665359964044512339761838919968509839945746558106348800086104592084429865856782592716798938705206150942424837023191327086529310836440149817624808325171436213788832498498700756918875768024031902417503950560614360942974421071395336558542310208923995100496290809734969179795160504225463806972685965195473677663724802316270701922082472047338421440868446463320131167373823404061759089201070386771897180496809978588842343636374137014971970289784542719404054663122520827800406451931040044985487221243585565320459938589835123735098174143591940959086460991769480827524402192011062694324936490806788109210700847076653828918287069086495448618424506029727903395931376042408660730411593816583637294933364895083936548078705975858388631821115055816729972558035087844765706739573859395795209976449786344859198484269446037860404909430248653076624601189254007132830298353759856871514658746610066983815228227358453645157587510633893372632825177825318203000518951472341642865446828728030912064705889935827396903817587069341245614839048032439400756144439479666967835491464638862737280952393604002628804838232966727174000833127796370207571809965653603480628944490682392366644142244773013722623847422034502692432100521598577119805055913252226701845049343899074313949667071757818190373415771321540285129013902855656968759247148531326172997748885837754566147989321625244871359853034900212256971719468070355530705237627032506136166888425555738465505922427214383191627754880606297018242185098888138613035680741388374406092709306805405368186595246103103897532147732308809771307886952700275587939003373642592952629806330777687585199651639450417577117291200582665729856602771811734843089400809755363671951874899931607467238947433781169470754994898897039975749385533643321153114126042756882419316093808738062770091347447615749298514674563686000754046548346792133284095193914314855842209255325177722358861520683627389511985924001227821475100663945527069544513392727882460405499294399648532823751755928031366259131528827906197284881893583645791683291676893305979729027745296225044960310616300876252702955910731335042577728119863977602989331170142040663855985771536010522319619608133156508349124326355651118750540058744589530825631835482691698843873476526843275770935747543151659766648956365323672979183201360574468565382396844415556015400797839244714076130250768430134462068455047182900316166567243073193018265906324264204620638646599915863462065088783789837971462065040728186648244420928778578106465451043279341461825336658311718565365478251456434973287601702068239205223056012478003602188904145752559053936758087650877158942752087053152433860152761949062423667837789195198493055991584283024463453590175847936871089016186236082664975342275369984628827043381201297439829759052778368534563111743179114651052595942466628799599893451685925486032498821184749698558286140038123032598291972144402776792470386138887596633131930106697174800220380667932349597021960110682403821327221129148535834367026967647513204065489150238519989449456456768958556744818021558847189141875006309527515227740597926841570433892170029438922792756705624281318616672897104594393853570676790584747183792510533474834648694721019656731659252017820275755325116325618893079738197993538622102049534103847352065103565311484949723179697198155433792382838032382920315859039074117549489475302607071636445039950555337175013426955504982303037277372240887765426516317752304533672660184509824687288219313438464732561850400537855415632490217246437245330117255681913297538657112874496002526318547964537464196844738019308371662765632227575963513451566092268125927574010501705649977030291754959581331917156402674634339619693838015205663860037350286766868294296609148529017640171181897570900459292276055268625064099816342706386876619247329210029645235534225354610108265977199761673523377243565725033189542748586623347158615524404002989063760040399868058337032045550351050287603596527732182773358103759903670221736266197582779415893052345812181097390198530885684748337193992224740352229209427081517660592811243419472700608326703478473869176921575815313293287472803103601867052743405139717660760493877095801197984880268325590441865413098652564071024864500537266242729887651440151664724007110954705867789273895189421310042677672733816493970445620467524143605656704240282736274795508851286560409957298686693824909943865273167947342731556476416720653847403404367855962793510390252539330804994006044895262085002119087414278051772886907313500187655441657343156625196186846228996463567902242053255379008521360749626798777186434375014275076916975346205182420651223141926491576577052555501548237116831527466218650552226755419276512736580948603746673859931964162530038030030039195375150877089588870052883932766149059900479239967644034026137295941135483361656403003589001615343575710879376924954190080199663452040675523538311369711811732116588558835112560672247367937103307457403551840578386147031417851179498168717547999961076863864019844789094032056714353279461493673699153798493352915388607702642585461673670773528514458455091012061138079393309901828237262408568325839473116086892680967446234010253679018111682745831900101845007338209741494421291689048064080341167164761401764562991769224965570219527938129120046987199490484956082803606327718454257663819782423804438980269523117553445706328356944169997438104004911839601929155610168773984842342237853695835019385355664483205551141111986771927436641457831591336673931041270271961364303643961506920007318043248142793791195364910135919984969273508061377588061956495794934236315340755251387204867742598528237502142259364598098494550875391964220263350239040254653509268268682592056480967498808854484646538934380314610420482778417266301202327087679652035437691170545134732284761063674098797943039503758437681499122575467995464298809167831398355836602721605834300041459446614492329998147777049744140085626044528345005425990629678623239728566907433392032257050398608262380839958306861692990825069633146498445087242684612690685318051677546281229644809402910098309913752683977282917834378017705677295499963345785754322140657399206560986738849497298744072871850335197307055717509051535098339925168306529712888520400766076998767757399898232950828231203688275960566757160523823558077335358655413486179266391622041826923070272788848027891921519393024745888423840018993844309706967208020438189562107358065480916550540359255906797984811795645881332318578782446320374471869140225364857592404036302110728952776502033521721754902425777595885136376736579946551887950867007107732268248337795637953985542260764729815236346235615754177083499031422716978070366875562339969373880463899912780859945963722862506084390427489414156012628137539008960697876337940351182504016458758544767238932434354489536316089353628736540487690502807714914309358595845025759313493008031074389491500879182340973293679306673334457042378858424528226556044868039951956772640230936170166499045317631731273063436840563352318199544772003360635482308216874918112194821097914277937535862705471661283258262511084200764014172029393645815702114769046801081089550007285618829686901560278261843997955793889469467500457023636885323836916150691316376819745363175352866399273277643382801766890745140235700285454324015421848523777436791971095290318637961397720051205076784356521659395605030233270903139643977841630119927799457420475097123620019660434329526999772942391329640585680291382707322416393983925802678511509601237007715231746125584247110063611462747350728173946473692425846712953001182797828567955288742254447136354357166022871562859731513057560757528962979719442208510334964244993343361585339571178042671135723775627621913338896827943410070809645479947161099727909746386846836244774202765222794426178929742541160607948785012834812374597432113339947107916351798466264417538787588255620912741246672375035946201721589827487656638755307143954684289682311959707741968038657140094504621550644276084781653790508946879159542215589964507452159863321511379683109487496183755503999144785289149420431990667338749107604246609924657106104395929765372611901582818904194949546302118505995862943377023704135367830624789643385351655051104427014769475027176973771804924939421730441965502290650141400043487461129731806462664151413251566022756266928639106791786439552849788531458342125758361957335914658820534237916429072559783230853803778512871658299678189236859205309798400112932209982435018392196793501867328140771448422405940111551683409991134156281804706964905304131244988966119833216573307236694733384705864771958157741137303244299896166517029428090725009080731994482814419658313198570616959411421290894668800709105079797673993725698198072361152824618985709011324829931304951526209100543026946795499914029406879164936450838775002083462641168337945034750939931068175409306612494776145361501739806573230986522365203387352442904530771638576751839429569850623430538910124271588660583600663884866644759379293196446094712931947043596289345971527058563028353776985177629322246770076570160536432381012276595928177251441436802724817211743339762483426238006095960396250170176662495304644718725095585997070053578150118061656459070801728151205570477773526872763060190831318646987138058930281122255204926336932645018316234568836577493064105559126356552535904571175289541589261699825488562154557845724522595047249986875172555686882509493598171947183839111427744473034078222776652821911829312570727741132900338692715268115352654488383475297653659745425808746422555219645828140836346318554875133757269578872094274981599330984663275744327070774982039104559864855311358757591097739280759741686374998904230264993921299680682914188447303889962169809094963137270450234319877158392214763031465589857870905402358299662675283511600704423016662207381058163828590144626089165703776058080293494032880981586616472521017487430853598115891675847316686970485486860303259819409873115371119301037011141137823559300619960246888874491566913345402389568762786927397781845515034946322084780134552757630270329797450675653043326788505012918558234676241146090708203687531536766984214087770776138511406787016446758809908242769804307399186608546758348991661743900859825815691747372506326765798706744908837842448157567543152035616782506549026665942167658327163241215820105337003447270125288684706635188160115520409297249214549893487444000824155453705807547295364150337914920992300222055297706299400703292887787410639018787579998714766314103006235938947532638019843666832638032880534133080618915978926420228765059724649252600323293323828558444706608996981697014541305039245756036959394565887801032256363803589833310802421276696169193221437878206875949985285663173573642562505483042237850470778853850652552980487654028965198845087451052076086316066882504541219108970931457157810368082621175880990095080140840051668890193118460989165087851263444897911786070487897774257943367787890336313483902050319584165191261824824967723780525622892424337931312217419259749233845065823978078217724495385041416022811072378863535295159685645231474299005364157912917551682468218630283413489762526357048630681092454660015625551447788863892400008910536083639549392165505940625046898705195557013618118157066368629630182550565455101800793271689562007396750902129330137377582707593240083402951748414021462737741233030686837430697811164394067130025941768783895004620053030860569623438062162753638009705376025567675642976074689200638153219757400051784589680891239562694156223782516745606140522492946647183502191339141910892275175033573605156184493052377656081835001420968654163596275095175151146167442607164551439947128113223894033566330857177414411190800573614924547605858812509767858074600043010161023028844438561119000440046627164009060878919311199925133350418612801454582313112152229696016742550836346023597072812370723801690889725883093477658369181654813738246279161922234301189438284709642366926135352136314971708996486224015523390069271961097133581985412481573811710166964233834287602191082333541952232250770698685947281917266170870614033583704402366651739055471309721735478391857256928451314383073105110163171514823667048757703345344722851141968483982578307620393904281321099164729802940485539705216638400723745928184753690268233469445848492345967984137769188563991990255789732408536383406937787966599559305367050284960350224300563779368197356721680788216902628825826783630675898266424869811430804114280598577075881096503832717250981013229270750351809956449779448048974074906269074558212353393810840553851741728265941226097752014676175798483588243969888027888236560613315206552576805240484755439852327510648770992354998247493820641034249522578120198474256387942096608724875823245388927967029592193480279994272895516441343765172783292207670536449280805452848654914750611834803193921209633415475376395665642209342394525198357376220109069050123401775987403283640014340892864987294481593225541198404919798752453438042906286031163821759295535170727875482469929929695929548764868555035360440543831453012738849753238003682304179731155380362492921240620367020505542853777311878596223547304540507802175779244522153732225419562869081765401607390091316927814451925365689673789522234428169221698351844248987971718809926286441105929337404097285366265387008755934087652109777206045188678663564207957259350640965409828579325349129891563938009071016917856687813552037348840631622146725858462866435195106463152660429085259841332853549802185043823651003426732127179508456349733718906527461581144755494993189664578258047471858920151386488231886937193795454635420705439777453562920922359559307443537633615310333225115256830711634276362785949154521036383409247780756292687386791506165376604146135605497580131149683985732461347346069963149665409789024305279645619193353918792318342096298429741321039646453715020167561013395731211647600142596475782660568004042945575643207329975815513051350735062909581806903036986889061878797363707032118430727660369581665726369023661736617595422411463821879757259913635564010847591747263972499341990546288115352181731829753930075122953140697513462753447221551814552178817041831024577702500099016366822577790109052765001882628103803314032136727483440991408264396996562239521982991771475941022915669451238204049900156282120790788524252215435548886175337376802181088606198488460736934517667913111937490734014498275126473933251620431958701189285575448752940660593043149533945971314070240930135468622935812644852644833205252363179388831518296578506108933652222395245755988864377241250195396590329678536586550415441391020201986614575573089120168362827309674738040684553306394150546377451104195980792388266741749417354512551144227947515934132292339017223022915897126576184663881802046126702611766228719445734913465915593992204368773155091118436340048315089897258549700616638520208251118096475023828541094945256477627873245323369278963778181181222477928794216539761238425475216976916958601737857767824848278798476219948832122021664435341347342644635436933453883684936753902473150828198917820332400053737596807609071679935886876985004021958542042448868522565911487818050506782468258210952280406399336233209346508731282118036697073673865000027200702371689452969201300489751393208156676821332704017401621658299077837224001108281074895400402158862740402190036693871556028955162088001327852246968180982637121707121832381737360900309208932465605629431584643585019924923674819852317005980800569663073948466563693970138854586283759187914725175800550926497558790614171450342340472259848335727867753507582938251050376268574665143900091974217891259668976909194016494790370408573419963370756095303195355472571056151920637449305750746428465260497530079972776666092963735408046898168040390471113846800381791273985332895236331209865623084969298002166165455065345526782189788043743064017251757926832745117318924757727932238085925866932361747541128304058104503277954202952239236425869289623041190073200613153603461474119576589125175910932737241941662417736743801922763747573865119011327326327866611360991372870312678595711590906128836501567280466977403915493560094028018167851742412745418397398357800590899339454214589558408083778639117440963435869898655139684232190515006789002156868752563657021810591760816571775008735242890285805715709398061702024902031040698085081035293705352174170945330157482163540032645140010977302471666741149486529586857008560689776297814043831686086202556287508120831500206804895894858062936719190216466394053787802598358222672975841910382529997998390803895002145483364647722743733598968996798983035156788639125372590621169907862505464059542540366465959270733159159909683263377850340560183404899695728153324679675134198419548685643350843970774514295398289382344254627697726425712767774413133318730168112845503810899469173403419113509632724537543822488231861495542093084907159757483478535384432106018308235532245013992192568072201513087719380734601493779133502722883776648167781579617332817029930090805442559739906683863197028758419181207523740143359898654764398422709149058745454963164830982869495539150127870949105784387542650744347953073642069974495700389218115719378524740740883546757331935107169603992890418279707690427681219164300039996535756417838946783929917297282602579142572774152535310821174162648395628556844467085697394125872066086326994811066482327105317594119863400774011621240881533985229206878485270967737856177237117395409447094605221210504654874457283923356157556278598311909957726786049142018112887205657846810273043390565700604087151319132215920004012821991833071330910022247971966961938400346000236047544572173617465286560808107576692170105046813313879576936486319984686065388799302870517720301028264322699342571741758264488325186336141055992304886009162156036777653644622915895975903008887419675013397381630490353096556216604062356263062129444701672531229648714233606446288457391604312478948328736526596072359179505932523945427502083355267007755638838885184515934291587591578165360530461040571437999169294578809286403137527763858210378217646449597600455884363721043764756075979390208785846319749048478487375778233377304830191239690524560764797094664613271195000492487246893272101700029927661597318815435766449364345967068070395636442854096626315331917606507622277817135849916590608028050368963502038882698234603485262670319665740992656112633330828103318513616015445592443470390587470167138964084793071988580926860597104437638781324887579240971465613980755701859901437503705605859543982227882309389458280814952502890273547576050158619550133019462201123429904816623066549484322896069838796435919749812183187335931274074485536636454354466275180807393255054058489765538493391997500608232959235730694722662667364436279839401881550520138835875148330818621693056359064302923221633421163238107273986882735946117444038992517065634533199604032943000274344892348899439827147574172431154416798483332665201183489191881148750841211788394721683444185957729360475717174005184644449691206041164413556448660975628690778974205109714607395289266164533918107036816221686635616084662045910699390823992319842068515810659348524103232520686674807716997952687897900525689162575320767052684934343773830898637400167989006008656171886877662086079110976269823501981688632471842463027865351634091598909393375921184353539077592097477312163224953487960566031045310734477267740983933528348286982342768618087462779424684959130848848902109154891549495550866555764009922635986851362438766178582640488055669312163977852822451724081026808875133651698293574232131863469964610272028112482666805963143864155459641842489723183106235265325215025704801142079789441268482077722021187014109552616184729185780586351693575312568096629847874428046893544287098605424527232888148930207391549481851968203541880966693119919380019055062431808655133283198645177564461383340490490776936923421045968439833961482315734402637835564452337265150637331318824466384297231783094990295500914492257496553743923303567058923924636621178945217008307410996348959239085649989542585131840154114772720153804232507629323516342075181505364131425880827399776825640520655418955841271277921122367464718564688680065695921386639955762503370088526132031675503131904222423776788563052630024520308989957711154446465876469262090357667057504661015258787433685821652814083489129817703919051735279152520882356533242008191593179724321944894511424653358498886723753891369610933814578100082670342337420709864439236329470071134524579926450629663327916835955546320805012791089471945215140066989420746570965549809388940717301645667569625421439406349339452196000537027807364481180669435581546017243233499049046775720147068682598463355200972452861219899269567584543281622107406940598350302312214722814040042061160468421054865790330823250537378505600651779430942413486776239568690085637162736501752400144079096979849486429861344860713961932043417411294556150342871901479680719076521295155676515771953119683099426183521713299974697531554385477843566220403345161895000359846217984933438823816362464047117199477612288839747978189246031863308719009948404095846962737890340928527695353179224928402045331189415426889279158784496852695395028458423796278904054627494237315205109322057134022036303520130743135252914325358416836084087821799382410637542551089261658633024975378854645091268744222376961295151272150772811528553066898922429383502443019471900069587576724836553919577913277980717726916618081386675793945038936854431289902108892758778599164563694148364811853007748847999588511864903786947971087516173260328553203483505480495339232419688167406769243370091749210616651940763308982194580013733534015643079339023813005171480691353327302000369973153868443455324436213575002198944889289213456859745025305785803546548099244973316442699295504542313179459300118752868192893966891862273796752270892518671574423912737147297798390566782436357991103617398009130413290469319753738062463177173331729942921450230268661960195021955990995788807246474947389122115891689961321475181112080519809887394973715500767827170025821053327017141402088899232511257465253792510220740977757048499838259845223989439351141699435569721020603793170379292301615153492593636218978807213133495603055887693349580121076109716228141985451297337502873830490034476643797819600511830400048590433027047257102892395134843060527494781091002312871629755422899465908219826377807273599793246462772709838410672085575146738648362220671324293545500614030549179094826593814918260772233062574186539632848769791251744492786256072837068851420219946102160955810100842197890996032912232262105651743695663413325499702774493520378437216889836239424449124050043035679815092600540295010637900977458404325351100528763946956800055274356078096337445270321118119576628498036469340038141781436008045614109403760877216268660860197922079756168759190548847747776438523244806228046704942287385977119671348107565135257892269293789816773615416358124844241758027679405552213176670941669438179384025248483789366339837280259011878244147608023038078506521653079336454190657860452545456610527486786429183031856698613643169240402815891497742501918785574181250296803946274238676873909455089434273566891160035672784570788650799180055917836813547043667940992352681002162535707836542950322607364360021658352195323225038053374285265117312434225452918309451080976312609211460852543263305598709776056574049356280220310999990953544317764439268716445225039020197260226301548663034276536727740004303439390342634569913505319260744185549231777443522345003173736540207642394548439147255101145340534698885159442537170333331140925107285350961934538810858026339913321441595369435767981710301789406916856584435223393824922479826764001204023106052393757100343775161791122773808208282283006446320122249570262049473738277468396273807053219709781821097753832394375366381766646776942968200811917448855932083597922738097856570664049918892268823814862226470271334324238441094574517203729301281802745662748999626473466630381421620562860914583587850028681623329855955191447795055664410565130700511890910991947314088953863313818066161801625668173824664066566920646057380130363822762316908994652312253993450945439475524820406967272382692813225638987654192731133084655863920312792151728806727356767565595084648860787742782546823751827979212465071117241645747295000064107756861086648331858901582149097814849029489977061664003400687225501254941844174805283725923027465566299056437350467078445242326208130243252231314152787962910479627730395564076576194950512061518688657679762159870885644671520600377440932601681352920835595975653090788588102592511388213063361784640329083356996545492736372122419137287507718359687943927665286316033773324770286839209708932223513231080586817029935643546762025809614371321584211082857175053849357561837315378673935876870733230381288802236058824203734404115544445063847436192433743663194602165356021869373844093630491325171853306599058657698885129119057082274016102066470347104057668598080668579508739884746838887252840683866253497437564972159630614261098181117542852879423744720587471259300144224767421742455485741835499958237713040425956521376676756829902526808152376515413080088401566834760116254038281291790598404542570569168894442090826948550025766720702854956844339681475986286541784306316346005169679518517990464874266183695548011505589944837984304944083294082750918009696499073292796507994682788822987575872424053944879581791305715325131088942398616510444314200385156491730090789804183115035048324066108000015150485348295374584620352041355635102977574930238314879943978746983979795192593430458299325024675123040565129871504559285952343029598210924320516891382389918521755426290403388694979930558817201840796317678865065159776302979439722554217300934361275291205561208076502427355583900183610097493750691949180875938591087797452275182286249870854509181636058270709523252493620720615107116373670915991236754463352151654561876978013988211215551175757504689241552996396714176540061466209669555795193265240680876129487085377351863275530147142066575154805330314234633847843300569630651715904559759500342871540743638481813335236628754501353553811030822366929280930474931961021675916832358677190097901702168526192417257960142015864890511529345321909596652598082558861946531424234655828927021566595459973380326273606567014506082266478578258264241285790702518746904196705465286025208159399012998105612729117802187482744125614718063122974935844548551496015059924101879953906176603282283433124319002679651199822307178306322572034438165706334072589565354612748810910954462348147102640762061046283325025498203971553334556355639322253316427671632213261051686428856088909704664341086771095992932430619643360269788211256889118053430449851908406989926700313251370862736866318899810254631652450964467585690543376373660076689647139981309207368625151631156709164570933190646150267976568547931847510517790977108881617322716446604199659106131685117399536271961029379773145238854182592571423245115191468624507527987052538770462824579900080331011855240852914184558390485134193245351903392031992442251199727906757329471893138767710280724909299653964077515331024884340175518208554466694771161307898008632511258657141664839473147203933270095078156115577841351081122922830247300495610702229633679749932351648430128890055224684017405946592783721198784972394888290102485702920231085678025871915266260147968948632457476617409881704721144589779080554495797191001225256311282153193868050980655181578901018016791299493092408395882126714067280238768994448986098234168809903214421364939346307083254308388619043606854720691813469698767955322818842850972067475021515548749121226215896980594240660997361908645503648830248391184065639475533510377974329398847739153784490581513209669570835664324069913719431737239866913625012316548834704177190143757426655683780708210010787806872576936518549008581205844812979506383758928604903746406725191214842446123710057008775757212650677831379810474736550377295567343904884915271820216006749498347572295539063518066980150519797747975635811577709010186290512121406657084478913793565328211586425944894598213519231188879742201965775811552022426322455100201887948875285019475286427966064671841951090399529867806508041883585967753615435435794206346300964207855840183659718117639994469438823748878219171903951910155657169816060703473964327952044287987276765761363471695128337212880768002502045802118118311940713804819266646847301673461188388811938138160000086429669093893843362017326205625246129589941472322012053571322532717685182788569804892052729777898378419832019616693434583444471975585021308108416741601548383302482998033481763871320643310777713405064235100011048492212157045410481713792813724519082868698811411115743899707358948475256055207123035353508366642775797749930435821658241963943945329121350855359558277570686711533811114628303174998158587199729272000994769383783478897532693564735543121588721330005907867671806233722359764646609567378933219533717801099192946436857243886029783535443131709750422112562726027251009931042402029467016611773721090054856443578741935251527492373802063674722013802470670781246192918626794350637581346091345086393509326402884300366560809575987193483707505315587398267674438873989967947586698978398730455687694238103373677851120017742551966635752892137137806115908815514626246012872521401281039437114463180026041691592233745214276606115065180772790639208842690859377088528609518131286564729078939418940867205702446709520672781995186569000707366209305302125656373188830250096719963751666281883263641320166438854691212424793886018752896150384776515013818289352992683023049561193318432735793628182076536886133288272877334204298051100648037078289408429995242657273029847873469974905974338099664396631556268579830080502959137538980724131862237245674839937586712509326881432337764274446190745328250335828321328984903522270178943950465930395245456410986786395415861605535107327521400647936552567034254940562545929432476393859428844960599072262976276622509372216378955152137747432931543844949680801043704737788456835633497597986095371155973632726064094571869246830189240261837238751595145161840608218159502410602412125271310434822243098093914807044519374373203973854581681723552676234235556076241932471554309004504795832971556022569265319238911970851859593047550731508915875628567617042599852755719387393698247327435806510596262720824646506712379241901876824169199419087939267989220553012067080609862694167465168822325316874021419506373906939311760502424649295664969978306025852436605103145157668454506321266872717665618638916183667186520280453850953165743661479326160749105776745797200322501389713069402145999800803221023130678952031096319182972700399348183240030364689861390823722075295139864840307823619920766786650458475960815171823704242428112339795380111954143125648269969063435571513254127783540800293054977178640595377569976773041508075457081054280389973808500793569470300082587086303775245597708013573013262151421075328825492116676256659371455395782994151178705766979631454511154786474062671088331645935222309474622983411391512020444631929694808430624103727558298840018885530312437995359475523555809669594074983401767141941514315251017969150247517183004433724097546282286428927204084021672697444399091878081648013180743041503485897344318709975182187508548771255306685200548503346238939513761799079796829979374329284134791309477682977362598143633766706856009305482988623754170315968063486507990865205278232528749710309475360680129089334916008830450075354734165409112887543719813465085520794145895382628751876420870402659511574660222816363388650761552780869534824345729265412402755855316063541119678498148148179728052225250370380007654992119793100377621725583755663285184024544815904056020974523850858007522758847353222046849428431901293904351719686461116090251458472143947100590431902135103977710092772305835508129269175794948025416945089141392141655080566569082320095515158452132539200764049176646813137990003011122234120805758148217305359445185313854542917399750624114908393937724514931730501836262789205245709791907865304779040575955870058083411249320068133087683600352290185553031723964562184494268395611015537129761595050121703478547588243792964788968371897664930114729908946439041922182249460953187133248914984357173052435805157545567148364730412252616224284819665210430549813795272948850737339969153967254023727470875056503301375829981264050212708771860793404137466296834437960718787838411947971417991581821942132461912369725644405906206822803850825316853689868525913912246276683133477951250414456191865510445725202393501323116290177130414968461974411697694526429214814172713348839135212690269541724219403119864007972284315813936901102457177695547187391669918808414986693796604748209967555779213605554031387318574266810756190585630057346738168119833904405192379769298953877094487657505481631076514859159465436691498898571763609526081204769117406699744486308559501035921620621366525575788415927817235719113187630308530750922259078243997600375729370625144776794868450822441091733077652522667109973470030258291557972568125610210110312254704965138439614034018172441548220022186892402496412018988257991665184151628943415312972149722421215633853199448659795867187967680339464698762131273260608763251761702486957940824598801066651289781550353026355129145834346652653315039303872022273433769992206452030914914077668350069110239084679376986603308130003618406469404760758282185603548234524303197823339696090042647420699293233982955121564424656145889694228401358295888953940125539316105885325279190172971024801255948972405921013348505273997841166464922065821722174805250029788618335666438041382236501895669163734656717156172731146919324773140748473510869334731256101160674970232982339647141959915944736182256024978464365283170675480142927150570249519460978162972151415463980653718324672857314867922345013020780961163877288755876669044098305889940612172745880120458656963702548931215422584363560919043274148657456207505439771261224550814075658182516383687156812317651813628273619892505547378501320714935731296501306340382147635829576814383602181696513578889593940358988604835932536881709608945287740134870345165242864572330569901275670423781077891866624221946314825016993692631075949154931356142135308996872824283211530839342922888222241276259443737957378650577915027294526530047624205146522294128297673596601099078742883603947719155222927933325162906914383178764212656884283431708692499413072789495050177699841111032772743726535382987787193876590677838359815622929914363479149081230408172261613144724412650198986808341030939737986324633639174434187793072410428929766522905010888731081222759417532270402049600043928256256556228965017486311010146647952556431380317177901041993160852090141395438994017612860269221431939280666990813760385422171382146815720604544252037762425620180605555914625268651438267139373680627480925202715521566618323107923395596907066373220549482295947085235171155086027717550717425790390171077675363340694337762279897036384727903572149274907660272170234466222693270045465014146316516883624016817079687298506868731222741713318717015466690614465980966102115214661584398710899016663570461784256147925901535360624811153100466286481060667762057547117650332697969808765559991561222346522695526756864960412567904222824883256065384139211728819546724444554636166260741774594388163119739598748159183332929742698711895132873693344100303432440976041351124730286759047028043585645167939025516952692246312258068265770033093579821152572323642566805975371027687367350323894454617918623823253550332188004885771705439839323550826106397508595461636048483000473744019605575589809551529010929871774473058548387249553240041621442623458834523740460660583109795601062590791999563319848434859673028687024488869926716031901108892953426612489952525784071230902141299379012592728014276605857415253315357701252080104345742392383644933794264459061834547817426205694020869392028557332365695517535446133293529727227056740334776369790877749154636325114152361269871804097544830387262652634380928464289268251014385310785774224203055333137760160830588017605858532646021897476873156075333932780938736003279679782945050185197302080890764978345050442859659476939977207773585022925749162377400976559627600739598215881807175141600660750807083692311147629745140955643080301228811665876811857908088302423627880432440052625309468068706725079610967504559688002053227468901053519370947874329863288891889741498529897887365867079145404946447480531856503985799179153239653945424904247687976110562080745741090871203970872830701480221310089238509652010144391561452216289044599045837361588329975992055289484470629635704024519764106443125641351784407355009326705691254543034319429856754820252874362151940884777511081102364925169826185098633547783668301424568331640676679864254985274680709982159811852365337293560255183585066295790155427785527996590327361495678848742803231340250250905719772517611224532834870662495150013628977660947309761865717846876856374260149822673245818841334650699261674722796737090737769932272275747936816771972517648823343858704008786466653810030696055437358706930204462419132011294189547644093930183079950761749122185535139609609007594292206329294000889088380068791040682804655561283008959152661313341536244363297243301740190941009766979727439521174634115824728610841217338410903092558324304202045383166635027516366779365310464968359402696603999645320390195945756868726141175744153094680224550105270644670078845117543421987085694370853213516991605140956688376120229706734176894586235174954847742504097321157565855736125140994785198696272549161479141856113851298106013881100006132088181392466696348764421837496920712301526642383383906052594489739539968072854998090959463964062666513541896885878359782960105169815134393268402777805698673050327660389525827522613830183333497636755008535943515911255092886307747248910873386730936169754244568604974288096822676391108161974852656343715560011107341596294851882705079910529350296365901010374077975451139932895493637258806162532277038060248062296999595201104396737099597622988874940187526173463855628173601624862030711399425945687020716468379723913002427625732943572461950645138215551553144814420094144882609095842143759360335329541278740137637640806337398555486014763944258485311048613557004026323002502650251495500437857810232731156189729007252203046194202665485274512214001230708952704785451346647794149998884568583614015536077590493966767769824199353025238596697835689964024392127924162797415624368444229598863375336132622819086271166528670026243000348104630932013421547681757035470931623851804776368493838059462239454505518454112109713834518641248434675268024020947508106981339012977379998993612098598846271948998754105659095048557519671099129048581017760677585100062608690685346692550272089044732382366992842059426900409917803811518334231366908967428940125066768332162509363602142027089819386247939890010171686563347787290849814416147294502209244377470837791851171728821669999928823872986025721432789671172300343728022657730545243684817629094789869021173531472156940631308096572807320087092213370282351332085268128954193006901657708254083403500005058370652110363592541126789058749023738180848386595916111338614015638598796095149521645586314663163467052006830172501206372109046464516637311490136129311643690063828121502343904332998690625556709093409151028827189421674833701686689544544516841543838142085587713160527677228697409750138270060711587247431532404202215160317956883457489002881258843932792432531733586205039125836650287249243711468361559331860470968439857518231731013311362309721828672770807347376930086867611222946611395130680217763689117296313389422635796732414280647907108287711509126463684036915121158779437688192603388517448853231713850931255262094712361811281280571454565331326343647726210460864365521701866640552689763017898421327507239103586350378314453032093208373229020157495834823471010099406342391779462136531003432667729015390428885845156365709537520468763351999297120524053522557834331608837429359558039493999549608306554730920333620714737575201130818393285175465900972454912419882764320908044667982278863451552161712502642424139679916492846126439128572687038856103616693585602536029251184617161403393307391541947857543340827565983274891373583554946739328540787031378606947289479815049187469758670739432691665167386820046079242498720058393456922412624779893742594299884259746777166292171665241433911025174633106696874383315394035695693173731046773757872442305385681827546329613972040755701692033403658594013780389477681875035146696643260354138176440438753949504026475709966133312288905766658660323951615454827358709383630358943967223209224137226939518905589789036716358371154906724967819415004688210819267712813093914675207740939032748899411293610782050684632258450199242065380057744277785183236023917622024647651216807445108653077483398325406317484347121993755772382732655283500424041735699215293960915761485598606496149601611447396763535345508363565103200124727527568480494415816989258846501204343071837613000999303214645235718726063807387923577387559939178250621243239553739958679510258272974067057442565851516276428806229990036356185856781814611102854579454390978533680930019465191332134519933130073207733958231912029726813355542393364884354438333934734534399061204869375830602911938242636345088141105538862959909817600310041093132328716837129374805839990389887289565536787654228676308019622359519369203496011287481429212059189305801825679860697670566540392055039068917071753931160077910380572198164767766897867662036187081542322917941550862101197198789873944791971910871227423101385024867926351199298015566208284864858434012140990173361786783294515477164557341099759296741691615848274480275046177672440661118075758317709980765519782389546925742552555911510746609320173850722294739275111946749657873985718893706003249888544919922336302653051237155550121529634988791152562144874428389784171972328777096080209926649794560769820478291246169218467823951589990504556938815545420437316440170914587608013757176179011222715907611336379495961143026893473267882029156988393591171254931940471252828527170598024736598130983009348772933095186901685622200686104180607586165805280323082428505854417767231602739013498578645142366311474186760964630518679866228208459185875275587412089148001120593416369644934402919785909658900434661107450001886541863991934162453692765959689917858054889362733935476506028144423422710813800295607721762088618887803548632608925941551093147944623117918395281433653904363830601759958421047779349842920889974224029519969892432699165145190944693820154590849168924710574855603780966638793278760255792990793871312118777736463617443970794211278484806970442013532497013765061820199223923781472626551608011246813233897079398667475825739568179390962868538960183333942273905762406419523661649421378782378434895260386331727925806256219734960953786908921090896798882746900229044224177048026377840305571002392783972237566883880085619660671456969573792699873175334974936880832406148525739502909149431678458436601667355843665070514694038505314018013606328250444156933346928295261682780605678805969622168341535888509382032476009074876043713385650356836083837617349480350471205808792761587896666201228447456306421296204686417520307691805554106396780730335011650328527730971411797409852332446499554369834181152201385983601913068079982613436146016283023706703634587523269741608308847658275055778494111311272446130519641949838314237926031449018002748201168865938514100482400849764809948729634450375277410258127539484104899803827785282623464961918040328889688112317206822216244146467507617934236411502126540830483100763940810599463732904449720443170947992625931594273111301479913239718922702995594970648534205343199415653157609263783304962841240461392801558656912591910077637628042961731533688519539006069670125119121569056488732196030910888773389291129583672151360310227194455982443168834595446196438151719219418720787300063705413891234134814066552794833659966812023798194237288962405249846934500895754112088148406453108910047981041426050736330593353301182450806369959210395409931266893704198879093427582109937830337586424903601948821422577837181408026593152215594427312503444216003162990593836360168368915092500389643919521300004360785785388823532831254876125607643057879761263611738972239772993530430774737155302174050133787021394634934246133432483924501760252759118270435136085350652160731112642495882471291061481144486174892797655456904688031970917037964220411806052799654407573526853871765744561420409208003027926380392615439078786850640694104000372593291408400829779076447491044674742712967462928705720569888684811767903552545437858755462323603608500862003732182847560578628479278471841660777986637507509193207619813626350795483090369422286763459297834533602262114925683636345860966251845449496592199418078667235627475205084686115564807719691183448693671647658597466776937217650113178849338397638248943660579130687236187105233259870265230347083839181087361076907974370437132384755420628759524993658063974555736535577762944344969299084634311943263708621072169006610209092255286857351520381616508066719606373737562087422651013625593220413124713845438431864963408162449080705929688362363327984499416730217733763022934338234033914235323867649462559552165491042204424442032776830913343224559237620676347214392902998513976038253318204444240120041618193827127414490823403604652539427808230679817855379813394380478021905787231053232599146666477080663038538627032975077077331747611641316374488486448646892580685132760494112661732111516078808160536302448901844693753698936823930988011689042582441454575092628335602540035098698244076969586813929712628490731854022247913767428115942381389162742902619539428623227151706176963686174385957310944086662193812714357884394485103493580037013503464953888995503911590093123285650073791698744452337662911899290264438174529631580902563010465706218018256495680245286089774769716116235409453533716859039841412383705786367815512890601887011739998613697350823214892795290019115223575310166635211323182595272169638557521406986851264771875427259252883557694116495941449857381169448139783417118874667711042032573909480713151222696549456214162685308339230641984337069410963347083692153541777036089426838905674553954896102482604436486950733344695811428286089634709310881834661435973250720815794583015457077844610016013571381119145053363717300650085839844900339018798631416816050840256217937452592680300400692408899027695952787243308907273655317425036089920065505069981062454442461552587217812149517571010776097414209676908815676980248323136218182484570569077121401844693655327227649423956511930241954375851952931905907769146165288330665971265225703780447420082457585747005510628333755407542710335134975098278061037403961030871374561552985323946585366716822451697781832397304890474992582471500107872564741633050866633888453948094979306361731352488082031580471078251836504543421443959581127884932719255724178260328212332487973481091902100535144867722399884415675723800038930399275935508197632950710430318422406055767863686988216839901945761575588243800645006032488666699817844303468170921358032883699996605836975589580908458646394492072953145133944009788861791221945342646927450027292028157050735600658335094425157594793302666461325152037735520801463855965939042955724946046817674360270937066144918488495794499382249243566828590920795103898525060433345179917704922079905657685288687671641604960963689132000690645921611179726687123976230115682334750430310654706328196132215850983228821858445629686290980106175134405114882780586234422874608484327930130063696184613329056035000210531990036116439772991537932151360809217588163299025254722512056292841170382952913872519004650312515612671376740308098066775457462923338909331279282091380031144766359480379831529418470342454300757464099489246745017189040765170579616519063550992318820034380579262564121314873013765425603750301124763261471003508577044151921902691758914838036345024105919507233578234183875282052796466355563802062612331540357972902091027346346670880064060396927927324310454191454848803143929600694493034621220836297917493534394430044585613259072756907653332629561386475721627325521667541157972803663694103246740042146059205159753895736848992547074937134836594786762679872801499766227882190825384409694444820065842439247461514693958000137377048244502928075251491514080540829703368675642722762552661217004981028322091784841225041576294367530252558599294048296327092612202065286876606599584996692020091855511144165039538651976445721385822840685809873524180765703633528737723586625957675563128283090697827587310254979378010346026050465553759209685519698626340042058865829642713181672518942607175516310597560109330873127731257932533213666240684627167298599464212621808918103291492695185863772525659785554970957385668143159079581926025009009515696356914420135032142813287392644149626735284253650568452837111188233296317838537945812011552237767027619167450610458919788734852764510131016773698704131188194029427106514388695458602813703358127684788013999481176351294629449591581701877828657779798193745540097486585293992112589919926598481702422117981182478770149012784823940240057330757977969159400553822829374170293027250799614100467890979821853602412838076519021759207608500966111324020799469941236662344108424224370938605723730354265521324850990867492747963134968962627653898752770607043640602637684386241049692411053499131252574881663125920922926972457356404975679723553305577751513982722513096625155246529836105641254903687428995574668382862648069156765950945185210110952506727068717967110222303834363108021184425888430315044575279766544772587599708061665072023587559317863216348876264247383885344732565214511552329115439884591003079455727891504524136720801230891660024867234762941744444735440207096056055877766207695714454621841192264562001959245677587200743537050646408907164112650301728039087104856930253169351943872047684921742628949282067514811140672979201389829419274451359157424905450750903090088800506537459297184919749631354674253444511928626678763270733631243190278966946012990089297200823919142508994773096713688407839337003844806720745094971924028746940979933476657098048801426944641475602947787710116603060072659967934224524390246547295725572339288070480215182638913591064977213359279632225350476362110538737356739915589120341975160378399330812999220264891476358519136907229172897756152984091077507599927430976619067861684643346813811447256695311886513022670689379286832265626876068870367857737700688125381201500782538983228982659036255020424267395434619425050055210550175338496910225814221449002590135476613847706890154773538956124094831242532019525217220877349383201062835948634607450386845108467395828856179821654067920043553899886582528693485154744166115101365072107616975174138370031659649535334661827855254684969971808308202208663055286801004706170599462182516422295092683828694331280388876223720418364196987784181169286529102427404605837762651614793395316004661290972570004755752676783895723741207182753272309550708655014934132440586932860998062319287667346490847826586160711170964412547704241915168011040274921039971943754773757164019791401082074897366008761739287609718000980933662305166056591316701921641569858818391520600322341780438163950946990159250094417848013296133177410476988836681865902254201524730984692339419128095650260613479234873753491617945090222002823912019773987087350450400271795024182531865534161492792926052632821925228999023618191962662848168164617762171030383886084160136374048708739214053963621293507674343278132237115571446946052228237300827837892693803472494628911797856519744366486773575271990267057860574245792118871285154539385540447887140921859959999854419694263930352616342989278545718241244759017104535512690595948033970193651864931343721587514009498483404944924273336860855574537193679811295838440377079210983638370090342990109940046000758261455588635301468453900750987808846210415100182756978667511316063234918138420090328732698947463934283915599248051948826470044312746968364473857454367012633915676921154554903044384222044977040155075786735931512171563634529781725757059519078748454965965292197810053879990586821983856161251327842285337693124628050529146975296460731571612263891969583820008845001692965704099561505656265650463395860288886768656153326407853305944801378968959987020025133145481354254542844341346404357669975098016257642579054675767823774332681705646768633209310427062553095931376347389039730607487405826564044809860286538094656683566364839016679705910602106269726450807392385564994447544570792542017583000925187988600663499154674629666795708871085931252121006004184606589117644073310132649275909547734189872097708899634329599269506438699202996558202595256715145429814575068017174275858482542928185501924795528497881613760622442736979566373562878070897611060781017392962760552917345221684410812526925714749225269713130470025642269153810689396365097747848261461432094276713093537110231276594265583757902551523993146664408899072188013847571223850826861539964782167194381032338167430670385085156980427244049458106344240840388782512950522645930407542678851186395127183866206916102027982190130626359734167500666116408750123839452024370677024254156953184606280992501561438063618396849251166921541865030071376631224297846307878675824290435292201802434219791193949603745794163997280759407534547820014538117608159004143518514510116838082841384059396013837283935900457782490382425661209749608263421132245517465376779151989823663868182483377796875972742407513911366887769153634375830546712286237919167605168467814880499027992081326728817053452731333382828636691012042615072619374637114639757667674947265097516549839279396071182284611931307968365229207500488870506117623220403331533255173554343735520997674247631249808969329368665881317329109703589043661408445554767097022479355606051895051675382445956582255079368549311529154661376569669412928000306047831881017307714571637984217285627929367216728152128547481179968551938718539990382170020830813375141399515460635544812721315550205206111599199637966101013488354946768036319266101013505661046534440342019492933526463451319880535051248073282068835714789198887133400433036776462181800349471981804726776831565940532973093691183175924250544782553887461029210695099401346720800317692945684565749992129090431949665135567642671916253076360593683920587477638954178348689927640062905527945568309993025893602779253087537206754437791741327714391009879536823980963836657597992849841921125087695900726896657141944760225123026393720748855400827989251332757264859432676641456067067987690649283638426571872605237224328899586129865977891416006372640943693494158503844742349902786991422796250966095819606249038342475081827270674660374221636650154489558635717193375734654146006873876562985476244155771291594550620727895001172158070643231642227691831365687966372080821004557705911546994474317052977685145868012517121311323237322653091613566202733479927973596765866712429406492252061927612674939345606619086345518741357375369637361357099724395807423994310987504207571987749773519288233147335003307847326607824336650676531206178545163444085914060343109375484224285326621180759909368102055849713003411246835863290098988210617184898893532749276550016257694533847005380184627904761398029242858960620215697791182744156095800017424748069830896164437720210740422259322754352652574088517606651197191032508057008742868691853568739377995375593101960498901784287078042443369374444719590642128221661731364105512304305791725482748457560419857031675521444004527598242906901135591598024788795020784156097151730420014157017063271587425097634312543362705134205476199562640654385056979361122097210418127546970351116355020636777071531515325121942695168537452578205705046280052426991785157120430569704488513759978183020708223017280706799843875109982358090140762262524613642395871420485148632306999001495443644395938864777117209798931125269522319259789987474496274287690296396971564460029851525629738122531588973492328472735397987116573358631283170038502248033124886562308668984520748567420050971016462537802790485558167212602174008051900230171489194240236746245117861434947098622873057629368927263618801560110597829456011562183265512518132377493352494681751908132127006875446314863875347616499319537471208729945559325876801711986346777320124609100236611197661049815736004804463642414893764591817201232590094444593800618883817402831825989486570410027006463182266011205190484148364659433339815312697072398145813061564619559015842696615635973899144364592295114498255535700207228341029751209330913926582589266810030065447895949439367167901413658299672567349149229551710669801577542201799907458043455272700022121066119305610673402025892580604812582222285101758467513191814558644467784491040553356527782319653472704895018148739742908396736213225031795530320880646073619263785993072354221332192897530196168995763410464664848468586632294369366125418512905470449731973171537451274197324951000477614294170539755993364740661428299759920304238505064286024869934678270573029401288400196295275523226415841936932060146275972008904121656296749104897254266789366700379529108801846944721859400466260339786844215385899693798146326164068116300410889843711897985453466395428238372454947054702415837210266221825683824829148102509908972238056316086097190727862991838518075521361713041835704692821778253321725429736114538959832586921772432410789215152142824403855894699812398024895601167741707671357895665982502008681943654512979446230806254490145440917513002088970593443538834881554160366604245672906275644464545457697227030587361008228809957237109829841919000950620888384321232673252542722221424301667316083805481729648019619883258905029206392843276797604771155501611885563594881579127955648656729973069867619327170345735915859127658854537962088758734259029647998879623382310516719422550452157957778526833351896254057354070444685798199510370880033105975284671229844931941048890066234418117948610502311164124150260994013264100684482153261600629256980097256147550458585194168934643219751658498583249858074019312983668862091710445573466853460581322649797691004894226571112918390281917518375604659654811244955462934664607267940884567534986917122941971464580560733849386083822595973278695265050156252625091482171782128204889518557760451806110718322949471432270323710891354704504170522651876646041944626561715417405817915021479094356334450083016466741751916187462930384104026840101526865137826094515664983622216128075143476908265378122382242534993576806102208905086462733071014923978523985625624095213209722592995923125652073391505572886851282195111260096672419830275532724421352500344631132115915369269878892255071147423282488261455361210200560647163053701750613480628905312453314610293645431914428633327634650911413810518164730575120977511746642612991939131168653240488239871950014789405527922588980101782270479119709182319811592521292127883956006163251452599801097167753579959712381082086050427929057916289050280001632906094992993534087061262596472355588033172740975300907934881450387343556165459726933552120991525503629195514519078217247635588978097084553313491247474752595400713732363361428029201043111501498408852114693618616180225647117304332840354958718876179192980625493374564102242003615420393554074874258926515421675577373465795841635153258855955769537998525434536008830666459516412567907408153894842139327446394363297560517050948665878236942700106776790853755318756501180600745669278022857629951406064262571923074716188126727465116909647856557319115331049453940801779191289689128343135743354699023445996494932531772473155561643875703930166522338656601785154549929292077951709863912025627235247267590601574023816373782593231637342398399799077264046837582129773049385238647092804929877729691829032746955216014874704413295626345361101552222863859460600887125050223369821223006366942913252586918403921055849531113775880383479635778628770676034237622832622396544221575986840118691248939668685200301426902326802822171493488564241138733703826404056251015677561804688579782807361668235652282628461799488832085672841852533472049868035151276140140980504958858166726372452739705047341455629772349937984018155799448231302622788045796297398470634625750714324132697295393588212867917469049047680823511981154231761606147904255198073633940199150983446667214341553300802583237443353832841959549895638728980190547031629575262878750675948742231527825906775369008600618756437949711784210159148730913497044919520425143150369564677171720835552466525909365212541837185366390532921716939933243498745454592088856783484009326723123319262364376642034211560378994091692992925027938677079868646812382207625452975131331662387702910061732256061842234141179402705931861979780557570189359776734991933174737449039863857153811368824427724434343397321633738862396637607196719587371703710509273147426609065547098336757924060378316940894204100615756508658089282465846615618837204317090145450958672402102200053165426205082659562067350015344067705124113703159844702112210748021417032216648612510340654447277978758668758262386943495434658045325191231299021777697776875202067952989530179941964141633925211581862550727666192987269618868168313346109794003310629313407085879303703394340542717933105471893142401659037889950587500306317956528980752513983183636875727633836816003687248877855543528337424235564426202647798201481446806537785708163607976399480507644471247388560246472932957539553707458210812905844943378315768570512374852822784195594427197648320676816446266444914746123429185184228046628252842808664054637243575010338222909747308890528250295911853927434443403993298509954285713390032274389270180728584089490767919380129888444216547610419212255220659721341332403049438495706938755506633758160271199759561664013733541604608002585854583790828219168307628325840430627493916042666006745201329292609302327941875653541577272895536873168270987353798642376324190513925045656111472064132049896376114639106473271989616130787884309836181232871743861310966122578566232418966498786696603241667335586428514032485481304110618737964588739733919111825638757537827764979787321034736957589441461866793544784162624135086142165751865257709436511867109768070698580788226584945885555554116229041461798263034176948123909592760022134254171871422338278046537790537280576875824153608257245475607317594162803326497253463132714907366255044731995318819980812596790458697385318541429759488735252248878689093696036870741018086705724866384764674766231673207596252656162670315808550444790673701984950986404835731714899663648736708554025487601413057671907845373276217865380469344968905272855276105691463247148583475417872478431565664087626298424419734684749739042435526064342879546183527859698464985875389887449270580903305309929855276836173370518791107124730735760241534406710578234324194592356472038961934979141490466605940642740561894023414707128479375776524852279969003425615333936584704017648178897931585505310205654064951861529428069775632561382979829091204602187207385429710931415724416483379627182831091607238442412260213315933489625241800837551418733736243745792700511728057370661475574664117304571281645581137952406089679814148307728768932282823034836510364834854640722098500618643899622168429447849652758427075338882681289403842926159383287770999564806384861986006282121865666989866596037546426964847751622721807085997366948270474551875883058984335631162436554928227531372689762150365437988203559753553348905035424139502387223801877776166359118756788881148845132817209341223644601801396116447310949567061082558770174607957091230745515353745732016770878267513923484911227963000972164994690373027801899544585324100082511128455790375498789839369283647645347601716524643532696315764912958201443554501919109684486850701143480982079074325312494126016363141449911561972164858282048739971389695446305370265895247116338203711856857864627694890066045234036216549792101878802425213155710684558400288290259353213444167026707469700744453159329637400063469919580265046823968290968134807676994307074069704696165792226637567165416563453584078575287295886612595196732725765253683955744620777780999801663673907556973894945978320157865165931906888464695758868764176007433885043985284632551680364529373930883439014245775968451028902486924431329017700906284890405143054076727957475646917724998563711623229884698856625699340063663328144569562482338640698476650048370655949026061007309410003923154679320282994127526077935214187983970826025990500536273292763109492904872240421053290295462256660202650323267509928514854465768654129830903176688778038047298297765188862028359876319601795637202705259286098281051587431897606284684604336944844874849075053328991052523337086072111210216953563719860613858384182383791688566522756869435432539086739634159732545421769716911720445094889377003006069143696190639322092104680345387219634502822611722867086506392014170678238954643164568499576710945766691519952930833970820778074166105103994035467830204931894505092646735541724621273042411265747354259447000378306185231872412580458458586969835260128829403039998232781929718409025832601141927323304190206586580754185788761559036602996255331809183901456578969651191165582103962010796160891738308723725545470669243977939789501326215633980847351972266454615528508333548329053503245663744882806615433693968985316854634648762228784209474688085684055670412885485821347554459702167671854197253582958551673092111903817340760189232107316879477092795547748846610448688659974789855279834442476216990098831347472833569731053399479100261857501896054755095087261459122177818281022497528170945673934229388116216063745663118660675374143729629269160332075697440363503569299290115910127987883607598092871843382693857334246822802967597907164317713952038481950380505414862824940945306957220291922952677385392258776822443803556669358532486520574303069970300051782636685714692893848580530746773456777814649658112020206317191728006736897425851229028385393695845012860260165838323183398237126637728032306397283008420233209844717771075437707821020342469959020229209730431231940055519137768341184549692449722266507761492101883310928634763784053599726244613685419001191013905821103138658851446039802043852765476934282937899414327141614365239931235589066625230875345528472256579821440978682903552621877881314171114120548075071117524703230730824305286849853944265895134631479662428254548800362301804741330439704580026993662766677034829518980191262501613938708083191348025943542248100427952950508785023722948600345461301115503020682359695764320690739260096460529728587535638675703210046138094505161313140403279106914659068555133543662371119956174332922033873174140426542860477306171820871540042300304438419931260247544231405529435648400223521615405279331371905134927703705420853672267777174279324619690779272153895886987669655360166189157716498402323249852455270600966541448030916153240707400956183388382350372043914204442766122412956617072497913950411469138774665144963108582389303970153655537482028515579875367455540046418719832305805033819718152003026453504461741044066688874389103054677732723427987948275338916955329407901412287751906574776961483171249980704383996329136393758585724104341020363315216882803775838926734943538462526824731084178439327089154875407143771511721794126933124246100413730015538670350638308601852090726804535767777131569615175108585183366562359683073591816803426868043631578943177063845958537819592023095901150847744295431339221271276480491689655007197475892026309590433554067812868922512209390397816657296206957764256967057495432768643028917664329886087220162459303592170301098860500527217794712223596024945185998059400951756848068110693566029448856602940381570718390540067975625766871588103471262331279974463726287743059208104310318663372494471273245476822370035883688048721163710327957432912884255774324767809191043786153111903245575916489490372546690512908378042004397267846680038051913098570044425483112383944592504366397376693530251890843764376733268566058673066539310149072348729930208609941214986592213335496837408113476278929251760656890246785420478649771653422783266410132163502252206612881342976791156348391157833275672645712850600831160301859899684984425133178715576771564739721868928041837439565857974836502553549740850041097009744509732741346240073919781860934939871812365950975171553959512299089444820634709334853172320380423619631591021250118360778131958759815183132030424084657110642979499329760736675412071181031712427515082051069699550686306461799994789109471978459530768643931465758299078336046483964262173160108475056630520294484600727225068109484662135175226148623190103469794199327458795036870887006199137743407299345315633493178830558358529432211200449568013931316771228458552985335382378284662244101480843860167540654819847910725805678323115585616135460862764345320018124575192173388239830811512606736477803915925290346628145905324101861382936899847081153668227348548163451891279389231011428678313222191692022077340640079151780191385796863399729758962409083251487731963809313686626161591958348017088861906516068823161607871738165260346871279831120359953677646411526953647213696940717708302119470696823265846588514353890773710138671146436038291253535844824782453567597460108741938431826341920709614742871431299482320795501315075706611010385226001706529442778882627786373128138314418880959606600215558745043485522961879769191997967248249653612669432871294669397770285151136045249328966498256698016426787708727368319459294749203387107432272558034295972251553824145288352385642391150046181034326815026184336248695030170249892793634741319044608633550145901956773804597008971658247056118104266983427716809070129811844997306676257997810742147938698496813317575839284770854789275383106636491401508810076481740211001684337725060888961488562660090939219362313391744677760442857581804838359276243579296858097005256444096214489304268312383221970149196352607565906291165975516068508482136934789066558427958862660478438254412967041017024181070944926288803629812109451643117213596974893731867679750931101429618997151670362336903841941522756409247606092417593748081100665602896425845639409565913748656124706787675457444111128024161472897632054937159488065683439198331670375258169485830731854916962616707732311931180730362655571664889965292808481607824047994402368004860901488685230304412662102206066513846873009123006512040563817334974908985182455110002261986116616481525431753417191230813432973708572710784654972806815550272266642405455733459876070680208010626283993229957995187929867871073086354056002862289556863741695159713490081757824842959277535784572485478055977096720153492434616083422955824461552859686401125413483746272748909264786957125897373954613953571448824982767955839638208228841574833452662238830206328401947194245726029978250687612555953310469926946720344015311554028811550372553344003679432711761161089595005879244183327083142331726286840129790336677611436363483619411316594267047192099576540246250527763872595317366035485544753649860729228148589699849917038385107961197528431520769825442619749167034839317500295403210551895585243989863980433033869142902608377682233815204975817147597478980631798182539456886024660456078442900681334638408494444001047598564326363907946595251579719950980057440459286244099154024095161860958820441076932816244053283251333690695508070641102296903581895444808681494780071672507049769640930010352089039382602687064414344420118853156772925443137862898212772017145949420413562794160087754965926070262275559501758960931572745222172243951691712230967150102650342412093858074648055563222885173694369968940554372568302105132509401958129253740032352146924765166635669965177351813781581946715129103766676209218630451257026250705279698055788259310430365679667885977529726871422905991495122371287438489370838274069223149132388927252413383139166403824399485884702901170441411256417536982970798284482478002766489519904817225858630493903929727917934427951168946663079448277794971871825462745780346130558308523355271301775780959378489816720452495462939700059017417913966904439549619075259670322423691782094746930433870180324893560355859832386831579522416311767130398666649395825676620762138069666487665826955401736241627405874513074262448243817200445965724250634662130516651702571113232840889760628166527199289732070876079776776129180562371079124425828741919701376835075420518866582796936857031595914525141508712740900421550488813451419872056533958200194646194247910242408653038805996348720273791507149441928278769630523396031070695181089233541002903561915777914815733436638317725767149652930656889085375506763028190901523771972220619456809205397537746328451353812058147150751818787292896583650002821850817338920439784037365917688781649505009537124527600392330705034680702219499464308085840114812772758723961987964937316094774169358488151369864837222675190591229698098628160800761837721513210686862953977486262646900981622927182280713206151511918214294087207737193832246164580536573360584528088756928601814126595049630243536898038069071939471638188796525761579727585931837728518375144614746165622091213863752403537738251377779090474293302217636534106793743107201287045610227884312698323850903905639171253728737436953553538563337331190607881604927509937937000463185287194139088172082074445872641246906575378309075584667281943870298348205525017951204216243077988890391274392251219035331573642197039709519510935686290170728312273322464711966807587488228902765991718552244440381314863346598574679499939053406244944574209624324552796927063281646619300756421772881653544336563866491799873701863024370363858325599434032813310736243162358493478370754060248485321406747604387291829527317389020989649027918445774538303808534274559509842573646734883561933924301642401432581883630206109066438615989060484982446723892830017929119494677804856452125492722486822227246715623464709666578766124082857409609188628533879476123351645224296654205840862520781036495757235153104281694614229208403341391964867423907935029423379110003335969555359321873359758454218769061970641930895583214696450866857817560926862905589720782268510343806322881710844957455965612795112281377695554720313591920026023124398348839967633605454402093899192749783325999087148423373920365573439027992163455260944381343612804328001119672756321857224416571580841617712252542302188813002271601145430917934382824643052589500997622896766213422419639667678884975035672454933989531046243972828599825773012855781486347125501608270364077155018110209446286486801970343098791753409958690464547701359548529131673740202448606631602799878993149497263491343334303204476667767283866523367672994396924975866954167538460038630810829288601353251201035384287196884720596340447219906946766773679765096996740479961431886944718725924969822917076170212703017108698342138547806100290601553996761494057403205977913186924888142607568607495384868165994815876099255867694728121419802374361177057788995729180721789363707756125536080710031329368557846112001832183564440518938993271442563281933906608578983092063288658084842977997598502733201107618113250215812254147385568740320903441292060336695723580273794278454680492631583731009609491245328248714078590157446199022141124534221145932503489524652695259516930480121208599231540870016521367800703548489731454175938661187807276496876354640096997618230835723166743964681227239760681968792665054333268534474583992159505609944662584290402715403624634423889219701311155233145633190425429146928445929995007568692865909907805075026761948858740760721483721760629130022423789674762854047922014239835597776472483899700220457158106588974436281749803850070448929014107625421188630453473616992902984988528222952477472559948410258502915564537086794741650381406090097033949405575948704426886919229595555201833972767589895668490897842716880702420103920871276972779975635480983571003229415499057520469534621030532776791820346481693054680030224422787686021716071038340348810264897138258953051076770533703640072795526660394752490151104526914828698726275608207599522037708033985521794234866434997809116500957560906939694229445960042260957558943381699823193813691184308798094143317572085290046054502609481262006206236525049553428947485904610060149544950687195639174174249970438359755920312825248184344331870072764596314219916447070052893745177779781609978707501875998976404878061275593150766725184385931017204133386096732428164687396218390625833744340464286417270202945545425182916527011334900142872941378009947058924906446195618338473081924106323048311499339002992483407190964409757552002709444547904349106301248235049430015417032889262675950505651603550419219524197078722176977587625564193774713018042142078562249605933871843519342886350918309290227371363093199830704062089356432699873952661109399247424321455258516331644094793466326305977838362195761953810090508961021913042182252809224904088781694907509079293131680881626977517977337604004414142591113848000849472651949449041142886604068150789213352623422837370767880249544002831755672749625463482400962590993248851594809455238193731646125733951366204707613678668824127935454691112567770566957820723768065687524479308889313742133153460529181978582400271159247437372992475553599173154670521261099963222433837135215111524005401317467618058431460324980034896324752006555970932505691025123557248708731479164407788989585236473799565867620631997963718543245283164431269043118720599754814019859249457745506913789027686646093221468447390795302093133662881796137235621144050981140618477575750359453246898390870477236653115212546268568485965048201555674323630125928101460665863252936607990644046599457566104731273246678687589690785501399399299336353826009014095376771385960057109386834089622278761744922320369111884456679021831038970881411647213391923411050632763839915049789986015225200506748144539283997761702541302446323306431425175862945382049894799300202159643155770023517317150609201144172135510210163495302289556665008363884049645040501641077124619276521144228924763399063207816801006929616406763351886051272846067822370812781376830573531415364589110159919464176340614531651373487958788198427471741069401508234134459009122509777218924238349644567725172176447520644253172346054799741655452525796025125371492523584201391465335407349939708364653399694104103039136519299819739453187978469023052572046843245438600756013770064572987415325249326369248415113264334424372098427040082277595571100572068723175827577395476356181696526362812558050148017268711122680872216997500890656844813209770576147456635550398560807657234728174982837310971159598828707310973047793125776660647830357665996902913589952902225337634106685520897059118284581094744701984132442697423353452524337310671969679572602273682494650502798815832051577679856450740233766208273462633426126354885335557778599991307891347808713762438681593615065751549840434289309431123600811816927616119226872766598530550962727715245213970218589039485439327171404364990879493945717613021070830087941554474439423867900751326395632702938783626312562606657840151797090821748681161213640727802578116173121870331616521011094765848188356044332079207592791670052848825551451198062039793350722481776091163792143161600587070015423078553535567163304645919957447427123296520703549264442791586280834681230463158941336103784062631571054690165727349375550023568055170479628013626625829473319507108828296487476393318065459450096499731054461113195142230309254637434392774160803206179369930220420649280583191240963489257683407997490015072384455712900839502207549372507209205398639177598184458972141370539658039522678838288520506338613827798869565619293223806213744543625977222108097395973761246134562750692755815158871138021686565584707181774227399561885709452933194255563413591183768538371104228178404729861373702620929824201767706641739412932013603620186908711919635008387734306777284569185009524305185688023799852009571887811109533418436968450076060362353533189273753744950003456319388188165888379872220800581313698423355866271465726473155017073291905022367291594221144589166532383466225019897889804485480901602516348304073873867696766157353608061117348610812767573042384809437484261891316252073365749990360188102289359477041045105872732887953547077936887972119723433595431053530937799148774040381730957079700005759909869435526413944232791727987114823103230096312208736145294773120198043126833550643281112641962940132304487647852810884116893067001004340808987086917070353666661755732717369592795947449255262207360388009500603679079241275457605850020397195386894604176619689032480630190702068325648589109266420428840437173221958547972919756045551745104163133976860909051775234095263453340146166138043333127647298322339095940563521193546316649263441928817854913058946065161260164760629254653460329228659398566529733799374865007088391638760416472857056159101744363806663244570333131145523988589568626384884737770787187002681879589840636178200455715001662878000291521694734011030639921865033054411466585999174106817499653327406474233706495972828069613889245583194238081628120643396909765518023274276391261111107364807622443013365104409113269677806006933819672863562738560866723994034304464970520138483186468543505974699905605820187411868269977774195015979117719347042074673031131812706616244023515364553437824108665244230397254223016414450147259705757340590141219813384501512867366262852671334854814402407712731555088562835003176652749830981998365671583970992130570882776364759352802309178094560310388423450642451754008364776699165732492633476226708462033170719699658910922959788704524314387339611902516095931222415920642588381160546890682675999111526340097860089352534010485177159440465698650132704894354967037633044322127442106570938618034983890759968301968599170245199462057253798174260003381461287374666767301516883692832566881262993232908890452839296678181940184738899909052987392500991571711088696863866792614248917211577220418379635980827342128377043445777394983026543638578363438363622391679565188946537569175611157604859552610749287166052045064476483692968931524343641643192485951121667857535485831011469290097632367287184311030298181896436852326873748299443121961677491788071057234113980199932126947257832353836211687027180449796322412581331046858253549228263841473093268318393427220053363289546347192488585340261022772852515484983037496143526031796156083081986895587872751188314448788524740010459249864505653052228344287791309833962607007440741904700866049662671078949899170058442575185222340926646102920003292142971898104228218289627947162025281163943500594631652548803659519940604931963436297601337954434711529885641036828895346215577308743757040527716281969643428739111361230621622696413264847381714461235969934770572415480127684633133404234015918721427443135029950210361339558007171303664240152142106585256893859758029590276911144684189285116642561397421928984264702161447989799539709722468196598470246668445794698260268021524070121109672557109870402309144718466367491421164808570644018933165081941724940111628277536984301351031797800294456999786438172570996129893096244835966480092775251328722155850315638832314717008381992126101250425988836810805367860489747327684554714203176570017495363330213555050358837578972410412152258953746634334825612560282103419450141803829627396696777262309958566371411561664494621939183028229299337446578101261581692527396691163392938006921691235416353251138381921479141676932525996877748126262906249383110379330752706124783880371145796560276518465061061539869187371312667887685073047159774671119771087655426090577201961556313792811946889326243642202593374218913419372490022366817578952911934519335370385727251272146036972353926363608178146103323867728998240840928380295423575050636871879236214790577101843330021160120601453329400104508425612106914650094193491289948223315871499398513220379507429899625408102313393527731179682123738988041833742537144963047631229977520214336658457009210685432457907026780462634892296968830581920232627805640820909998748942792416279539406869627178615331279897922014205566624309816723735833267083140516356126632865058873963337507887205513612705528589448590526088278812899347982385785450352119613193531434392263914754856635700574806316843068639675573585231404554196611492234973301409710787834370983763225430462540097148886565114596869400485628829667703283393387744348941626102346444382159662040733127307784315449139322884295143078756038713169548956976123242878001921404353255991666123112309588624023501572185229588869398347514945935522033315898177828358301527785558351915623856603894555937366184063748640988545686253785230977409608599319037116889349389413718763904876721152984254836640897484066977806395102562926877589590123426546715079299166113905389132399205271866293782377629693391208533844295010979886339241951708493849613638621124465153434372022484063509165193387730930693986513101643143843170876360578978065831172702688218474596072895083734122942552318933762263643889251556532517850791767745431068360137430350948443580384977511007055024271996403743809315921251877397259899475602188006258498035542298342239683970683207339446681523586201450808236840616696995651973160296076374760937298073452588080471425828637577478293450773930484961189976139138778467395837418607362473710632327963988540599930403105005151354651598913413625979573507921998113156838758708808896484901793244192979272049989259250460596477633312924627237157245861564723089361703588653553518793537191235805436762916327343950984440323261912045075230946915826184243368542360711351022675137981401450934128532267899070658442976450582381661549513234197262792098041022480514568850058158371859865104558303389158236441105224982800531827436618687055228620384116483155295077913388121833241213431244196958645152040543920830613227393975778128369242985300347739943477025736312974077936167910535278710576684458762919265804318094220490380037734474073420811266659389583229162572424080726151501955381337042560239885158894770215908118128775922752342398458417961926267563264579450680767670015998217270173480974132804567792693471370159616499802573244983876846089435063087664551235842339847839539625075770822987386979198222570775625685859214464878152449134518833306397569187976899207335018516514283886912673483487688896116744671620361045740761453459150763610096093405755462822697022190943579358883463497273885177834234049529305640103823582053325608276459102018553342281239154490125996635022993241970061325779219800856974406580028225844325611417633122162657547960615223292538757510780336703431352433376707880093619829916496872253188815637144513179964088922002765389143796937921317920506515620282119831685179698953782059816685686162138831171675209038262372346464006089403341308860404687438183450808242712171013436576191195555263203249095385376790138360714508078246452608523398146659000945193924475469496387867069655587105492486346772006840206587420682452118148268487948051441977644227896777546115456873494347082295127131562354308809492267561512312514590625308116801923993040928793572832852433586440696789673678289160981564272641554237790434986196734147179265349817137728943618983367961388634920872434657150380545778527665688289997437701635784941295411300010179800742785126477077865198422077251616413197657717692021842807406061532056160995544561136588769019958149668336989092452430928089479845494516262885571449047758163636634634161038810565399495468696749258907120663174349895024955932156615657831350171621940137604164245288922294681617682075993576380790325425879860672044606794278942905367574334545853064775084844979690525329618585554618029858047094106045508690506171252609565637368046714725703917728805392098944044186204698751110096636208029835855390329900961890244357041918809796656030403675291635067185066916913296472290359215538534360177362046505245514593073612219353795386584823129251184709478157938000700533690153069284670118828704055244919155367355199856486839011436512700486840010820589940549046884604286789281779921185008580076694574706267632349482262061748190363617036428592557864162679864942821880836849538809124321523019460272534793176511355359134486902931353180061676603022724726346367391046137960339829091516778783322251709813620527491641309842504099277422365216050061180695287309020266285143360979192229374002138493680030439264015712920378103302164423063266572361770163818809045352881546640485031170023823977662601766894367314495974766116192474855503209914170388581814403385690846070038480010585020839348247158651911746869496267594097003932688266249371140676472368467767105599779118136407932217402118829081907118377705078484479529363240351383879897710364723194933115810404963986222911746801623099358951142740911207538952508334845570439978623702282242381699431394554478858371353934183998124189215396297839279791314530714883478171749752860890322380860534684127058485123293338708031658185436081473036856487630163450655510095137197716062985545631726145076557271931182194796657184212970693592268744165471355967859926687704156728616462697867849308444094040479122800765096870850281942257692928858928461707063185449303641200212683268489284299252764830713245780191697538015500703765794330431678095888238107294250608071005320262568818713938611498659782994590854201262533038586142849509126454151650637743143543677249682863297758157303254077621411323929191111225020997343706262957276679358786639118671698809381552668901685953100444154207943351893372938316053259291486508475354977487894369443449838442502437792155524549917093002649993998214014835571621561942712765359431484070578693475285538963716535218188096525827481584828584962079123069670447363551394854365902772377445345013231974596742549293460435084284140211175548418569678635593713062356413623332185442305466189496828059286239852601108844682437584329211474805773301742935772784004551660880746076825855811528765965661854854207564989739254714232733614869432215937794904409311892815353389096423069933343467634163569703783736482366962545506921126514174718120399130320204130505156896570544211360596741730185413450082322067593364383269655826518292425791574167597556702031763421809685309094165653801133106410101584379337871722919462635688328549312770905922676191822431417091213952886604399951142193910067950197490984632452994733171699212787318735510022072606542117473522329785806929783195849579750674348413364892748458875970096588872599761590748430930066210444392325508485550457305993423204821626828549995691984641642930984631285414149879391175109950580661800623042237551995913459329669740350539172506104715455935851267043964034076779979725862120637212096594723677124886063847798500660324617687224912256827988225806213317810793434254306725971591750523355793736565154113643111041890723045011444719730745234542891793484578634359766158256821637549890754329437242919348303064202714763028005583778455548287384940693914511574191765843748057191076557129082066128957573178426448911045236530672619462329570478098825840763736794651827242539705389593397366667224959794081496036228532130009718716421736502634501387436536289116203529836438029910216161082400151688609822252697988223846930147206912856359480544335023959433285588437061777533057967929464496515937076358236551748712430164221946889745226201912319062957747673338002313130908228288365660637853207836424450351351819994665592041586855871062644058128142529753530349088460753633164891919243947818629643022642456830565234013843900473437638904297687331820496802316732919706907199438808778198962295492528725530431218700431272914906528503610092139849948303421842755786702535101342171933401769114397364030160510511199685244798611315005879195437326502021068909106911469709603803126271000031722113212905652254996227958773079439913027089999834033516187399235190735396492042847584326063480458070263544675249822727113780611825972201533802184621196996782519192837613650178208618522253047827888211410460251958486192031822959851044747563335091621025134262433356790176437703585066854641299864423232631366576849918546096330222551572394769073627936439291327717176872431619507432331211300293484072255094383530531751498865483281633222656116192515903899631732214595421112072295357344323743525154380749443687992828958804369617332274407117066655409059100068636329329942197251833407230803042103843966082045678178994445929276136115109375578287639240659709430405448355863740600743652248389303937458964116417285953819337031615558297116823128706768068815949207274950422242756601556518303757179102990722716619575535035488648405004030834380653355312885284784532617491593549916251672059770005746201784829035845493908474006528361142834141839837723865649825911554314467887350420299423080137269553507832575297087487303240724123532242679718133763450146960035511915016461719590490230942433302011829165122512675020815695235496840028811030311595794442553929855693750967740998102905489262323800252670934960319647133309633351788661135493061156827363398879151188111824389093534056419458528201760296787980905374535850460392208089633288474641127581292591496393572690000434325942697990954504210517677255312979694986917525061061192198334563964373100609760440153120794474260930472198221109418918534622251131500312291109026089450840424050868697055894446993959874522008882538408142009196206465490682696600801834664059406477933405865631577617947910449011907635756668119232269015986133335912663723397137216738447782198228853598234710745454426667249122734847049058944066934629476266508182543918686719278252288410671868702044534963231901052190362429070069501398798793776614103858772505557991974832841650199322888090016528599276301150914196224157825988079133509132135495804036790033510727560119387308360400906283089001243208735918716678719207050616497552204346821810086905768355000416565713997642066208417485165144516569489825529938955125522114207407407911732464855733378696731690801359978453701945621558359846506171047991323355761053530657365096054875251537391835764656814233840401936923382715559859323919371089314119173598543182440206731989645984210645756930286996644015487065803227140844423425946234466580595823552249634730039196360420839236574554851833525300369521624386641727351597014536027679660297239736116215921089448956302665729151643265935532383860077289273625122771746598448126655056890237544368477572332366322760632499523652850272934674214173780830091065890399656505735366542286918291557621993023643835539745145683183200220738733116141924703978798230454566436311625964858339085118022672558728992222559094739759719433024703770867452228188145432683715186751498820774372821907091770228997653702875885032639664609170408222941130354439769561308058189369418867242928406780250725763801616366837829021184743022934767398918014869842493421933826536407571292991660295705257733069821672936779130596703407784765710839621814683710135643324603742420416009622798059172862181758279976613942209703270617050488173649952743014721969782332427415298402277862945418042397423458109164265699515240400762585647728188436168057483731877877901966564820371581413776683476652721203815854559655575083923587730090847728572013128882948452223101650941084073887377308463390188830589532918131198259385288134046637026715396342723124664262595870035382964172668249317337953025801456921189584103098338394563779075201473775148056802637100995883470136989418527134793951332750960663110665624542949813526460123699626807252846190981821863779705619156698696941058296557115790639355582579099858361780006144283819774239790263548280842753069940221563839701645721864931056014248144297813046564500248857327084949656272126443202912015288824310843686788694692270637808073147680163751859866630083624761061008648989489868813645157772531556792861336404759701770895402972473464726609495826110763688952961067596527346150924474899194891852046682399439226817621461996359521548423739911610807428885179896623661221814935511689790897538767862279833060524361056096868619572176527297960693086829928390655363982129200642164551679879179775421409291590720218951543965898148805433759419695458404593316728847500565400687686683614194905475497249172724128564277944610209503456548992956159247203941695416963477206127150468123585190219766485351062308002913194751567639761888181608153384871377586009743224079028964177150974729784209181321492887134746343880827453804480067894414120070694274251172348309263469907929374226961713820090604365097406976933776909473872822764598535406457006042491502598449848053388487445986515775134698888357735911827895543116432726411914404282262850705947634648041258465385766836220061413508919994506149101864134159390961010452305196032499032775332797377536281024180729261596809960309204245215241236421002112404298882355857681923139769254284188565708048222540216950396568038189510923756774616258346085021043250468995460884345104997912870205002183699415609829619778960053715423402298605942167400815350736083126300136224654509217460116049686162121379747901851528994023621751730459150132512697481991621095366859927657793882001987091274703195980489960362912606059961011422392927669978335037341638557271562126430214315919282024726934705502034713504575762001102124696718634820127665190400680455064744915220284719033591736128831814551159880431971984083950206586380340488714541716439227427631067930398231320662934910130302543899439777634179495779369793806098174038327971679678323147042330131825969621790687569487791930364582878072463326125598575913507437501988843631316540539991433313781712566449256613111296351514317960873043824325127957570628758166514607805938265178355660275376479644501421186364658577768425102093380305857111727166160464281352690263513177859525154535450711643783715442865925220589479005292277244892840908478397929681976644813641557702769340678064312828612621968717796803201708957316533424201068423071679761507188308358890922418411876439558375802758678287910298738294175882393430320001030895325189104543961985359576675902371848013933377377270274256634246083514927983751095612741207439945642549609376342131216027207143108630804406060257696636236630185853643168289653361714347243097031198138355660445278656810255509317714432027904825394401530202689061128159672420932382715306975860120627693969996322265444105506877420971381473322568050476122617105133382531155692727969034953936831627723165269713715041688560885806519797323651203314507369946736785725002551098581173065878188856996360518270220726635799040080022803863033213036448991420396061710554014077261856734978710594448009085378923932519053197448676120229227808241046337195296243060922395170563472893299964372567583128754904346262083918717317961225835606790768184938751501044578683475785078416072952902543366847292074924570041922745362304670143183726933766515845707305135479643100005233872034601126931303086614486619525136707806846740703408667818524524974678122930094501615123322433971226608941237776112081075294081045137396695426363671236556507269286467032526542452175213431769949877005445129165033298323552240481474997062097015405231897757787702974461880171060727668617529219495367508026529428732608349120110774161000844589864450877547967711793116544978172671415781696053440175135154361685518713358637621404979228342470589005722310190648288751799526051098686442806857187218992040252882879446857779045225109582679336814538214419815749619403446402569872415782561418053700248577801139018821928547455806153632357438404853726299547000121875511839229998185722219941533499562982523356648825057226931702778201153205099942577466021458037120108590677866113690261153727980180269372623001686934055554673976903242679666844412092721879123586187579630753449220447995183356342119706226820179897653150399942973794777718108632314964053656315862443263189247321901591719932087677100013077928997124541764627417869871524455032034723814502554855223298985217994995361609360135427121595796114813653981442209209358910022765219838613075055821809993557697654286652413222166866198312395724106227537064511454091007122232918092827273839979301660174877635563064116165385424229580728489878267972218199971340060448097634848058906663725380783433165300963251839805847066663349545116739403738910889837682643264346121443310398735181481630629671849752817779984436285140684351635687455465501643229338926722505176904121139974957921840871416409973508800841201505710610283484766165220888472259177728906894294563260936055687927190684183992100188140600790981279367534525565969136356510202437147427208277969598522633408857615971368948573106992177777742243052251811053024668876409631370105450547494475825482748375091239534777922070203471770147193994402734646915681176741459991403157200110310796564146805646928217417074861931746425352311040629828697017201727254008708314187219182206397620066961511194900161493912876518420393305228816953772967894165032175697154497982669925303794776736457294471133987639736243425781921109157609811110655102276826731997572458542195588354274734203575483657213906289820634567223137380129132093217723924794158375349372303626299674723257871444909714035740956457058384869510663152326117605019462310524812417425068057462896310511298379464224064890255195294876956229167169165742440698753873539048027643552496095060639807002977451383152831519004346757844803335029740581097039011209748104896740274547414325587402480942015219146911547892281169881649583586902906157821352867286985881256146712436209547128512183733481702348602168812918913190128691197143786660625247926334934193195151574726901327229915802682510614989437931755819242175287159760726987974890079977793958285730305059449976917945671560966083733471952296002831706294292977813099798345408676098706560976805907648871746888253929636082592790412481901373292920889858026348285502119682485269546374969109350835829217037644938245870095785488614992853904045152920586697494670816803806146581841074869124081091120430925697907951055930516979931337874141188155776735743547785562599939580944011065997980634413262198622815299149022527872848420306669897687416586673544417234465454802122767340839503668862146522585530140867387922565796286857401691620542247432528225715409024964163352369918299962134093769093521675095324965549777376814168770204688598597468996163972352850995315586872368648643049310557746920744638051472697214077348679924894621475943482422509971121250910857516366198830726048763233688063562351529242998661952791546814434876507808601433102695333730202208600644574298009122857763807435963939060266456763730007282642002272327107422599969976940894696220819113915057300953576754883939024532292412984134799940345454416273854053542857435315871649937069677337152803636230348179515802229079171863165690038461207262417076534016579503215061076354394187376232867477685647585529107151754740841364578977758944514288612682383653075603877752453948705799148989199004485978067896519362148740882740526218408550568840533407889835232252617593199644979810889896678957333407247212782629644685077311273466960692819689121967274692791446197497235220049158604741313797206406785188284704446614502080591700630733978459479003922894713396021994307449360846756846709366479255838421932144739742113862479048296972431947764960970334971138511260131871965476782672699225044258759616327261598680845090132440022387445192267305977717056765017532566190967706315704105587367729500386716464222294322166225951956712399524871466227719571439693019948156741696636210243994218170014675992302161695423638246519157844834776865839413174445337026135753222869189424964175916634352656046047035529209027559685765609598488867967793474602774742706715162760681095490336223009411076423008179465276808864993626093599005445692351745603576901762857758956757374105683738883330102015695629317180648166602019316619713020730309277325198074808141973424180523522344923447675000999518296300870273596351624305686867873581132055900548616373206231396952971677451665109133836233223146810950857632760801301025655994299312807377380272712162254711656363131378635378990562916916250448899308029947290417751523911080206463128425452428170567387809139441043416733838282425527671257991564980946952334333952820588823491798577628376645698846278508070439929251435126242855867531648120981520067530103591317739411725517718738841015329738059278646000731151110071227513904073705307082579628092042806892890060159117940527123917976057841171714353581870562106367472528529641502251217515875311215957017628340691116397739578726101713796961972923545831092245319680405386455666723805872566573341922582566682556958954667802630087344637542739735952760329613749013856148791594992329447909053524931233659968194451918866954340780663061463328906717189930367429687043041574549157211767750945752189506640246860488344943335167475636803903516604509012015119684930049467969650098881158489293603714801644891653636350914776575491324041630204038417661375303480299475920444009887976789168346219252441385866795953964060230553224156600931965997364565650139559049702775072318088285177845822442594814165078987394706414722528086831101863110217284007954544112516016614809232459466491321091730889736837067622385699876704297365383186229058487617979253517709117624431986171797671847174554582721313890988615042930055981420326663568579781009400067536723700072953677136109031166816314304664380702163085391322272224304552499966530499146523276827735026626047204582417198172711755483734705981074047115304639169146535600365280364511246159099939696929939642638342227137627424996105938993591087466993654970950075953795297828402396684234176522348911924226497170591260985087970176120360470635458374771581080967146602733826221908652715499415043875644917934410090107122032855552999030220891482042485680287623560217204594572751130093645849449843926993469321549293903087162179032449178554244396118062599992657900779568265920638934247591128176002614436696625788487435325388502501649053652517666380074231153063408672426194336316024377534233939103277072981081661865201409539643222326958258550250072885853838149032288468930302371650673039520158681510940763730997494302348623645425733148501012222982853042139031269867422433068303252685628132389861053026644120369286918391631155911317761311167134206471178522551176149146767510544012380498275760689419384378705988070037420083139965940323262809063888612612636190956427506414050088895071382388486190996874169253907705748240514697501995496821702955927872449027805293432467716503382091974676690827942486226025417494506832370720968208443137607844088790449623134837346259457618612070598200095514776359833030012354885375572007749061044177916859431991175189503246500109435587623590331269719909535008722403787617727278726129396677330192572690500896850294528221039934733341524060577501183697037172096315170424426873178705763196727401456565982999737998623506277619352168711390602790615079514378093092584972218670183182653071155774205566723487447484212232248526837848775475977278635074870670514692506362906820689253944437109420396163758329392484135002857702034554509705810978883762746219723508014373890985578291002617701083453928375425508200147654464352054718498710639951640639652626664828904705988637850674309835724376225702113686158502828206657377186651427541241020206390925154241889603577068748426169876442024480475686932440065405330932980909373022508063112349014358627339925508977832816705942368404712253551099492904074764103303472484441362228534872749175312715854038167852837185596729573432902068312415189865301358537482725390045284891947517573451265550874073699402068953303984956203193065600527260587948864249929380298460699038878848908629789951326223958407881764256079033153121112653940820308974128214772168482617910958420706025496893906188525871860823101012492125340060022537494237227026726978479703792485928546171185962535056132177263919934497084064195111616583533939913535808173416906004746054363294328787923825659188692025313750474763570605042204746790268926211069387914653008342297056710152456598413448178280850802902405051974193961858573330049047910222600369702918543766701652709746619230614231501238112443217744005261422586086298578942557990320410669386620911188130004796871946654265424514776705242701356961223675296735187292969083595352621720285711934156683349675617451870812405682604122124358889866436932705467144031221309128101612619371563235228672694424020636806923690479238505437065301701935782447910007866407759566954829387963515397751231916704451514859799944383536428901263908319413971308414424059728396347186522432988399442699702233670726046248122906072949415634214368501475004128177426505231377862657431858060992351504279423546297329453849782009979464931968499177351276244457573155957308052410718081620235227401517661639780738017147716578140632087194245104704898215768824459114106047469414405522410228329181987071014829817726042851009071909723077209069975990847613200919771759926745732829079216515569023503995500045412864186416255078113937683736526464901840029113556143695506844272911769976853871745290773647867502560692734924672797880041857208644327677053510416998104740385466219696622314386756857391333233797837927369283150824952487860797363445031200917208825525465374206068987393456300048248061867707909930569655456946573714312613311730969489130895714163531722486312271078178877143858993695926053360899307986010447616989523309944807942526359851521253328557685060055824365514005030613597924743671823597217960774860555565068364413756802411356743793297513197804631750550749965037737848645039083636540306687120535588258039759481797621444732002846421338494461178404642427202547553752047716800398662091621137929540052857748660872006604641437710143664504379940648400055545524930496634534337212473501227359458382020744609380865730231310441968301026943767065483623353110484268115071443004818075762688705998428157908613570957904839185573556202607031924956457566722057847147441973227467174058648144878060480598289062320711171464693052837833090960651740019889850567619145093344480697313119438103448467180926683872403998752220242796691612165294488396880728345947246273419696295830639161651323843525118917608200837132572417265795394541842076755640716036403205539037413410871163375943691803074328953344255138560787528211271936781684402892210611524903535629734953138758637373642940283588688200407985192360727044783602304459892308562000315476331329810210687746766259751299153542900410928974709421030185722422901778893616927306264715032080920116186982143391904117487348650677401431465578660721082773409306594661502031667376192419245881944859272386808704251120776193014471480968003835896087923308608035146693814017953929407387110659064469720610433318757897705848811017125135476077801608134743462958247542927212200046314598820828557064149328097708684012278017428519550998960439361269238362522880564513294323669946792039629966386716974922214113623466191304075979111532243745680768873261572822564705780702426831287933280959316354520318684154515345590415090352736548205802172738595219392614084809651220365830403807917316885181623397345183268044176470994846778178818174321019199669813951873254041602549703988778910721217276096948638737074313502897882876497697445314298672433960855865183848225469564849571905963836713668177172463199723984803887272572465827837138730620875880524375600958362339115243837049505392962507212099997051199716939604634853132455187809552701169746683020634250760100551094114379367017554129993111988302986496146841256275720145125457049732812615567613852235542037657743244052574691763482093297395504064974746976450946837711471568153770517191137927747950359244428460628730457160619195899459917169663059712570403917135710212040469062469005606499384245510117588970287564936181529034502523409532256446891584925543543240999742674719837922757526639939452272026471977983786610041047830472904467668704896652056665791601270869420088070330433768709008416908171206085932386727021723469316138388134984433168144462246994691991733210623454817576895148798744337839629837822166181274400977226939167821533801549499331748446757441552492870856212862077860744723343568610893568528143317923925400017210182572681410527682761775393519878969919631349835593480258299905020272338819676139469611332483658536574845048024149750801360425049486158145422845551023693636799451308367348744916871250951131165040979254630766648427749332469217752738338409729519375238196276421928239873876119988569394106596099515995318637091656977761446393282936978682222413188383900498247224174361697936605618693410339095744369498799782942699802348894596937047480278725967999755742900429050177178177061373555386894982898675119019376099159368154518150332170661806946918947319062640430230521795483310394413120974208002346063959726737774880546137568501227653096848080246230061315853019493435553927486207522114227038884541544221976851869784354854664593794824959560901184737396852694178295575907160879434770260289424277723353505884691155723460632005479469432684653980242682603093475599333935744060494538747701099459647749565560354586015797653972778050423022788105065129948197550696466029983318960298537620299336932757335990637659905284866996794010346152460261549615502215454022307378530104939972929390601208276012766811930857653181244221727753531027368865457129817452810007564985237287657119904044854970141048877166362559513247892376569571552558633470442252250956417613675873211560718507201004014847253626976873327599241648440324679054520583362934371402933337584181893468135994675928665761033578064456001770335855681166808182901923943993110713542464577621019821404785809455791014900143567019004198207281819838872877185575553713874063819472905155719492382370123887923732464904805448975850149749985918127739108343244188229323702962615147245654788860583009713772535677766659526497163893584659035747949817799959494756000190896167656031008368706427970821983084203665750495360729169870587987403103405780745537760622548681959416668860517326482102512659233107755170029571668145105039533500799166024384343535948927552125634920022099083180144398382423304216636683539473898690933090647655106817776808813309000776067155192130285508614158757901177296333158890000635492787350332748428797225166881262379465058929000123262100517661402356837607865850761577435937084470113183980394981129390626041011484793923601193293002598496670636465897941491437238192937673530321414514484364402351648381389284917646075913310543076378178418290436040881061302552719276536174722164803985328693445805478724312989883594554481327277019771563988214956647581749171241267861802071149119820784391424485689214804528270223222469415188727610383208861642906036494346645824999901941093825685240505513022655939681569290122492449229654450376244180922658457531785965559406164589908405235139723483769076926905775685319493158508857202196589046213375101560768990625584913986547303138952648819452469992503250622479077361328392366242897618001612250955933120445817854478382149926611507162285774142028560031108684831154266365083507968192634886682769899760039489096062508262999233925603326537721533382307787977916863126341125826638976172736620797902670100761535414122033781369540270716796037254436460578921562935575115117033137361529957806731367221771965129921640162832094454195233114208016922639755862969160071740604105950723232445210328315938433699698161497459768678966857814776201583741678762341877180488106874884175716584390949438280660227698378164502780012282746305861674357465605583425971979087188133656951776680830304980361582669345679377421953934244936769579430016932422153341014741076201419152913965093422011830500621784541013002839680011339335811551290607190428284035778788037656930312491045877572738871273493860836551485707908368325006222166203799571442296926299804514924890906728700167438681015369841943219124499443580203094940811162085531023322676900522863102627650734284413005938597771978035188548631300518862201125389577996708766600093177250957685017477358012563442436168717502776302153886333124646038273087017241402848984384231797599982535747731928909682877628121237287960073500023060080641469081367786151923570361452013289405746055710325295187889299511358519609722448411089923485936862106169588497432093078137182278276635413772010281348811868151931530141988037981159521688993950849739053395555358237911473452836918369444458666100172274407811761678708343625555102665801494096565341621819795427132718806801305499217532701976924564510280849556034910378543750559416074389506656546168019106102846315835102107865303946433381194423830921029476005216283329613316283801764767769439471534399533364566923794124066226148843689006409038298442970192029519450016327230190221197566239832111828597432533311139484303870926835381919092004307374702860924477996171084055135277250483833419945026806991056674469740278539653893336066979146557639036861271451420614829719366485823160456329682696246842313276556740571158675140882689641655905507712009538998922946792111935375127752395425546231411090823701149564365098713580844686712982454185248331952173163733237380640458141267387508516371330801820013237859656442197021011232190950942242419500703939170748616679415313308765218053440172682478063691887099567833770134198991706158470500373118904348162174304461611438368482964193045136088945304852581483809757236874764399592963108738915935530074198550225653343967065203377760079592945325669463687074858907279431670061549916742126000208635544797845349938882293330604396323721440693294806276341224900847334425179134272075851083747353440762574503721482623270846232020678899651595998364175580365563664120457911091829632593154727911584774018702771627205436764926135071709619494274649171594002042235763614911126275073756201470302383426284934235621809435258476219620894760148004412962597672261364482599711507430492537295406274920181492935939464688983806631408669232614144713631099398550445021992727362338125139087215931891065773516520139514624886657795086708097896217689831463774161720776578605078709775471658468360856703616561574030415113352122696576835763176034687726218680556339975198705218528574246445334313574893801160978029742066247854593078752609869234343993211797413142348171085581453300542615667674311936647183009603924709063732262501507896044977957639544741626906988335732337063246575247274992246724618182583149061904879331316549387430653341691832032327815964506337704502939554849589712909475839508513869976753223252132011208110901658076917375770364623113344455990565540511740735412144705708566203113422551889458654104978982173171012869084544763708779171446215974493601308947810304602679327823732824556509989542055104989567064707423327168076320833924363365780549796268603875255217178069592827960291685192439406151964675376092094008204180361045715989650957532036775393208478238249121549117175904568289207040239871133217995225304828084195269294177698643155420815894657723332885281551864875353449957268418403136500910762752059897883912834691523392587159247570820147896481471647993743098244825282588771492543728112010712081526708720742852085897598917258851164448342308804248544795926973576347433409854866506078062383419079141495582741139428413186496762239807175902789875392077316771458271121959270206819263273492099601489516488784542148165690459330708545639777353999602890012361686750269314877940411540123402346951291008849087021259048391143960957903456262770321512526017782203932532239392133754664638876248013974466162138569060277211437607186822463335407221186941296414953888823455203501229598733487776658570001582543370586003717038434150787236462553756749831835753193422427323074555557359192752741275078753103540758963112194923854041664884044207293209817315043838928809972042388405282695748470969107449020656618287626794867481820978250541135289202407370730200285116683352607818379852696870281981671234587540017893951561480769733534727603343879573894493086395069358769021547501469067061079912765407761338114836865747972993638813087560316960496713918725045768321532687868844629283856133595810048846255353671023298298066713771173974108994547649338979079972346286871749723200663801131297421341677339620778321963781157053518031997648658401888342994769650168345839598200344375121241793058936167024021381458650836612200114880009292121421742482225917558172470776813373222226878363146043267929407339096488016724883837199481691672968284239511691515251883337423989189188269835384041938676135462131560588925437690527416803226169312938686608279172595219551505529404881615991707468371507831513894976606000309722678697705586147517769636796333466237454328620923389330233071533027385177826455842764032985216411587675068434878447938895168139766987817098223047730580599138832838441035903623989526917236280247283338384935115229667175653941395129091524887614784352667991310563836279193509670953696866128942317268827944612911564965844226882681384274040864101469369571253272946648776154107929698500062522081357877909995270251638371368477335225287609231977339039023319781693291541110912699585495370494900822965612664609392527045507329266262977707454267083207583304311276817930234780167708629704624938286794934517955652954157885038387760068203034717296786232709619870408528873614290048784125405501378039146236340688908433369489304948769024017653224908383203664734946073830415380767138442498895444805792933896463477198672840505253876112124806937049402124992721961971663135564099822787168014240154004696162459994669540238547099462309732607980272461544280135050900857735860471747883709156778379194260551569593841452535860316656377622731208467994259956634579393144786002119246961508912660977880460089220940819314743445143830729620882571622187886242653546298746601014243781847542171848309943457671702771576860130854539082822512276209976708994370118247319569241514923902816179863728591894224697633078063015134571603961196361778083706224802961382655619393377636104168979062715813278861351771214621041908207874486100139577407269351860443198837355748426017284205891976121154325293193503476155618325634162627392523755828672257570340108430158948144417871676651811542665204169662243579878668039517892972081436202209318337729400816076170325852724165041422542682540689361362689145028794384560814800188588455790057691605789329697627569428108234752750947903675980189444951537135512102157698924599038082028297812541318102881733060831580510881828690374825680109906292113868568447877689333775313892731324237028951665279817854738405652253652320090494052974234421927678577652002109789954805466632898967533293808319561309750803917695043910282589437520048795203103964299099310272925276161016324429669653464854395491867811471454793440333584611491386400919102138799285987196709961007062362796164208037446712122400413525525923036593120553906048051531387609671453334455118413751585502452987625334691582281895829054351886709388252431220976239785496797593739580582854008029675773590631200402491308557296700438288444447563726788339880667777694306782823595654794369715696654583117702985808186684795709290325526467328226825206062836901827080462525251473899759779046331407493127448584234970257151182143164971406957446020201343306912077440227659610722972762928578496597983449611690828766345124502463326161328943901142761780734617348792698289155177511300906137637139708953244211716378336503012106063223712542337918676611059758744414246074708883082740793179506407710045613068975568948199560291464732270070259024693201210756250903404650163683745150477816479725385346658788214924119923800211864305445745838655567439839055945137352121077812263186685514993803376428589281852610417160315149665817596839489437737103097197311074716470832441393075827137148646851865253431392180241694441723474891034559827552767707253238226841496165778543106585512793620239440461560808715344305382393097939114805830043956601339366022897938525925273837732080865571713045760639122180671593882772282412178655165927225992478836730572960511523884256287564853927154784366446519264614909205751236894023915766471517040703920120127740431482902736301094421380143985900783311279101473442178377462157220060913126668333939989910908607404294791980449306165208900353154924525376440494481673946572519739806034339881449840782752045080692340576158321295471326477359775071049095036230839993778075581712114208318021208520845054341370691566129275693206101629291270978874735212630987366446600180227826634641262748633098567075505607461660314603929150253218297328622546933134515839313890860907293264626256922433481052553215669006407358495279870311781441588112216158814479442311053129033137831212801190462341559123564694571003205101112294655613564206609743249357184336032657807662940949214821119700389369425950132651069489791724262343082401012740912548970939828093579867936436548899845357210433748144036983987237135254618350643358417686249701671762165562638637902780750831922841739113513681549331367398930724550412748161808306031390199677168546800629518000299155114435989690090339592091607923401364610698719959294255600728380415826507167844972969834817543830337708773682240473614378196841683962307608640264909210929388847933837353332580857787707854236695859119467220874808905321834970608305996144894761710680278782385069692401064008950378009530397331579778692700002400961637971129874611892903152897277728246015502155085715655447109286947924751431635172259139584938088650298011341374171423328181378349894427786470907396546742600409382471404734494068593426754746013207241420072990788475954064747031282140349480601873542676770372686579818801088842594921012339678724121575564653130694745633266089864881155848406333372617082485779002705001077210581137781086291849380801119214686785066533436247579208939531879649434556297059221123234600859761746420049442033361541863135086621292013739600580471080969400401617361407855724697352190775014804317906078234530822814169614485161204867612077304297880673245064183388886263380258484767644400291740500721313900584722921846389868797564205426954487389484870027235447597451676696523097141988336683166376041723932376393274194445676161281861378525363144033978982892137640052202291258106802757976402578268328676842249079183834338654388616287752319778441082609229767674105322370226263008569076876508982664959159874125538833062520836230062929556969876209589058858372195460564951289009052303337164523285659336718324185776743346637362988554240360304067500263361558186001102606761343216158143474245712367094519297748992633642508801567217460665552491296214424228710697384292885700618676959412121810145189591512555284218579670459043791761940753771111377249922768593955591603734894224835680466049389952137143591079675852640796879980333087302900463594904675548421580443300294864823462168724248129082849869288535045321662609446851552376076135105573977607381192704641183694501653476446279904321490105030901062541109174772272777865611789329198482638922383454551585000184094249892693646810026085133707996665093272383057813491130739255347448705815986185251943073894040557336369265784210962633446627780840406783271704330154933602660278028348407095332200239559800332482415571193445997167634320717110005516377611916427102434847779442158648066456513970363046712851884706811565846208646638097596967663443173196827303361197536243534470204489897882231083686890648549709537376540279030230203175113506380891542604067242425370262136449614156970673078472733500537066975741318923691231596408001142078951843964999616920969049540774772877805566424580965548048293230554702878989645335709081766640856775921693931438038039216263088889809841836288472716491550980876212578323119417928539422234775225033713277204203362205780726962521079081620225303226003491489536612550747540842932227277618847865454049015015725561419654685276516485280431442166229753576238297641269756837397675286906106051790775474909952505092841274579012990979947772430303808966311446556374803216229921585676935649293222058541865703171010961098478612483348131488329893318632228772286464973513370272581003268947794719237502699793785635887951608298501783567293390327252977321751973890867740045494863902765185878555420152040996718365773363904552264674813982207781408112206035262804775881020747409858973167151868979185436381723671845616013748188141390557615926616421714914540698500053358211408787024479792106160062250783923089825546382020580080248232936104414965731840213657382676101948854730930406396973218859473052200963758633482017664585754024662746959911382229818567044690066946133781303829613926860944527267848089580266259297348723923473348604999505374474642797303711409926503570610475348544218057302589864042484457801030891470769008659987068613671474683012494946160808085033387639615855287546606301512888327492505191361068902364825129631872842328193527671678632368138298187099316886161271385181713660687379063766525298197956042782197924557430293852134433100359359727529160121939056059724495529684555215558997071555143094227419573977195170711943908451286285103809805027855774280822233268235384742042476153866518751053935512411975146642858275031242406236568337226926865493632348326777142434104540850215673845460155125432798373778232381140204366362054762027208850255726474556655385279756456445604125787777339599965116425060342725846127668168478072911230379319801468267708757648725551415581655169898036808865858591173632475913135843813601844295534710833055105163517773220365785931300877422953694562041257964580260462758653517414878471694736051618535176451569081649200790649209653592615819280136448286438377031570112883364895097586450767601072518315997838356835731954707249265133066443547655822946289119798638269752717785196543724953692629392701456397040811118627429902444243225367945412223741141855961564589645988792321778650515318927661745369594785603864581688265448778446535147895190094319295006720265787956797639281260783291632646581462697428367193267420035791723114249064909494430305441255472714713801061405674652941202484860659316888129723823568806579157063319694565863240327417344716073581042060628725626225635264863697251444047347436489146095248840677363348793837492913241313813954139375070717943493568097780675749079453058733260657641095887233865190986003451576923595826730892200091573689620756332040070506491464300506575962746035864112643511082236147610260965107967240179351502084264571067863667354204973412260693090450132862857100491085180937833142148501591131448322634771481835836039881026697213724744409598116328972828438816072700728093850280393930575581640946430552162497607322757941912092342404774203242743181750199246588109951093256429799015036604119308786819362616610513505298310328403744500018596396805518436366367343255652464899225092323651869426765749409525680171670760607500148328304066997535958083549185476363071936598533159421299581657835406915156245839756572857839627199772309575809704727423626655139283762766345803360069155172307642083101966516125646276086124879929821804287635831068723368407176789240772102533966651635366644281060886964509347515464132768174753073844021288090816542579152774183072251154603732919473320024766381130117721273729324127151294758759643539302825427318385671066115460905372088336775723929663054426930220523374621881602483034435494474281536398592770912305332464097806300606399984215507364068549094375114659045750724568658692742188557893890503812160232869281322512825190296376984102627174259076048942874016544606499822291757977966696309411581924517206041484616158375856034658848736578564167044390576412463842258745694137004877657442298238338359328877390626569912256262119423336257491532930680494879870621782994425395190564115602705118408727438322576152490445748822805732325952699377837919402445580203437782272729086115122316331715836080580624510828879947355880971588380647938074006311181355391608934807686857827869638129034194648363034403418928307780175816714781704982796411839230099329162102500900797861434432799426410622089555966320818234866561878297530591688859516258049112101411303357029415350426702698753296549535679831583503849649720405484654590425122725865791902870780482150029393559127226947440929251666970480141389075386475702852111099248003129376310678008646646604644846577547918489317129175545810631392521371195556295190107038963484676650962722163799028042092108164414798589072130346471148268268646022466811001091984482450909193868701777194435967346649632296676890279379445321769433897319806918625784336595385811007018829834020570678920451915795635770011711444890349744115505788455813039911145547620784583457458444539819709142354818801007580947837292531684563558545539712618232875205362011098075242231363136428264132856143646321344370107589708093756877986895594200211298273947986988437417788863965134196169873180408028860850988799368878753130369478682245479262527193368733662151277653086986844257037959113824726348879363363638071035452758099575776470661280346201323643743492880753214870959815224595805882100816661818042520168261716715390987230532106979922373745795389237677142663624540484974451505710518356610210320786489222683986156065896322688401333822614791948791264583162794161690541895723886199052607675136687937572301671555980796180683306089130172488493300157820796435955358105412062015691331345966542567216915313879791244014095475396777578671315669935209252966579213544480869305266442155072104056030024961611686257231574666994038564835205661348950728211682550840431905344250920830400528742209030829485232777448986659837713505015018296643664897657643545267981796404547887773375152803009983932722649663092458432943769442281861164592748824086474386606714805022409399775222776708843061844564031694927109465820446105582290739784764114327133693097923170281979938965694600801453393063431787437899288143708374133821289623740849518711704919938867504831059985989760383413119629311228117595403215159056543812244672132091119847241135694827473033827876917762666800706011177555023613980049778022942972584301626434193361123358917188901074594008823211964318573293772432250530146827548395645379913261528470827948562580451203328197085415495224098734768794801150515262184927754456913256059221817467692380985901807609723188144802357868352315707174723537892506872257845557516948150564063039312813390174643530680828554927644977900618406993852469404152740776109370513046778596046597027747993010802523812439351819100260579975172703381514636909595194573882823050103181838312185122000803399208466233164188257183642185721263236329416784809635969871644646448699905154823094265569023153589322906374526088963149496271982760616759978107394185109657214771527642261228525232759004018933802478162751456063082269746314247129614594661507705245819934050924998258433869346067329953026282486121359919041671253385929882157364448344221352262167658840308714427701562946647030073511576494153778390427778423849602951870339074571271420500224170501493589523119984644455830338751210661694062296326350463366514341107399700135167256674299928797227057066119471731040647268366613097728117545805151661619461217127324358937571986351334426361666200808197017194019242156978744562093336022205661769184945502817219876431469461341314624931480471626801291650457880786613817574893654653384152806745045946190409686103204641859065430972768304337130554358332709478192704199672023929555040123050950164560093029796047852189350286965248305974566915198447131369775713387341892584868048776005451625657238188431274548695581646833050281385689197217564844354800946864030032637613092686585298843924523176434329722447242792165674295621115432775877092311521714526192139173095941133017284226025471098567887045028955270938505385287070236129442762961262508977471316294698374120379550779333080133263070350145301436857552918683321250362247469666966777865841276190898641051182708027912721956844435410693480177006612688423739774862590106104516471978578051940917148243176434661632127833977087639633668428986231362446119388951024212568176836930884101719300826861662560205657877658636013244107963293481236092072852324771084702079323384222004928524863197341910461741050095740373628054795181137934233388006243008419719567021885146324559666751076392457138544495537512725887896506203780275033006227280267507888936527762242021343998846466955131920248011307858116086105797454033205899674102850740071656699131636237619611043102768406348629309022383910647588919799592187974866145142824937003774926837277694802958774096788644193732255106926878099640820448471658744358987951793220605161796364355406625707934473904182282665736271771932438265418476562098345161475923324651042050870525386694703845540352961543755093722784478772359562265768111027809637529262617328286949833781301099219520882645157454833366249071927491819853509482716492957990748406787101939938493487421465802459392492149811706848767173945678157768166083852296776000494222357944745794368315847088402743659659233653776159233478970511931243262117472026326327003411332590635665992050622328674252776370090491678700895064220646603583966917332264773417910050740653085053561950265624919906683843712436673876264392944020479850514752851943600262257602394788731776579007217925510189418108645798408905743911762434774074516495120396756417872394750892766559718140591751071871722234714595427393953325768622781129150745282365821016119654616220133949820140411659698267848664732446657716067415657008709397825592680147467768739425128416600850499861933007037516393109091227531042140322783629319012603746079064863460491344133177091016147771158075368805663780068836827805584200095106308209671542139488893734070775366054519730904150250838569450248189577477391471295111345538592903180711687407606455749449851270814717917311168873260608940060134380687729896295784773755950827812076592091435036690343786155882267657622655420422627348601121426196910215527423809467192567537580011806478569787274717326507540449049576129652728955911265800901961255791321271049816485160172741473443207858446206783699985961797383949942653938493844221729602178779578375395910980507645581998383683788510790446102531306082523952759724977461559575797871087332921267642611445694796190807333438429550737898732649556960659532549634079597266162291092658915668349875920183327589348185917757368881995145485195356743253713123791289790873239628048353749864478869784032314329599645167023396051072382204527778269600221402519793355657185852836560868028504738615737541461568161578964581067644037882481339699387755575732946693608177258900986585722159968958222187311907439127238362058801344950777250200975950320833358373438192957046834126085106135040189991611615398438433409024034326542947744873391702719506156107981641471261386606580203788536247059009113200581214773503723591139276168782226076824803657184641416740387089563013624414520433492643569140219257715331194938814677155915126036953361669966269393066928215534618125176080588720181996056405939462646119973016501494142054985179526113111968610930221026988555418419473632207801101272706406886542578543062032160775020529010389695482473659116253052096502253742380931574683937048060971857989431351700454187859134043907470911411531002679262244668524794302265735593211238613273362952647556099675332780954207384600180812022867374707905268222260431023384480252888214702656845244793724730197468582836738058011039449868565205747948035810787842394220968391628315148088408296594716868285784610545604641219707716909915989535945849730876980994924495962910536324375791236581778254839109599479689575146540740823061418748219100653956418688449563106530086626853401352509397928262103409228499878059519708233552403976222991583921799644887205011393387451990966630593482866631595361393135484657769027671569065687699507470516787226966452338064772076257458263094669796269047736576232000859659055139095237110696986672307248086569368129413427272152088070844349833033497237650359136519444443789255470184913852947162549322293850928494890242099194689467919716927553860391870972852460906122521454037645206133573305914020330287511859288871556799869060674175337380256321717646846166745510625940232743432944196119581535008159659990462037938385099395403935168522313626760655974696920986464050067699513989186384061081573803323204539687542830548303332109917350525368326963261068161496512902370208058297561434503993019840620416616067751041434419168516467493594867699483185218086845753583355548471694229927754805537715318306794549304754377264872885175630955378093370251090691142122788475355809034029661949649786660196651972323461123005352911451601802907474559505605366838993521093779111714697182885516885073591731392177227270341330103544013860063578657389040563499067074451360228044228414139288131835300714101326798746190509506599511949377534165880342195341006336999943581227681215468733207634524208849125869192200297684445155932608803282853659011001705489327160217514909400590958107251182126290742744124016809897501720904889122722715284606819359801473603405853979605025714066163725328757323995020624954609623339257590030307997555107407411246747379257375686708174392827318824726399654378507105064620983855087927334945703930590953459448856352289871494773462011676289018254064779144349627398001455642215816501859188197294398275449014608862727576508153146725649541124981867996374481437057121499426067224462263214317178909859824439284385147093915497583388896614605561056068512394311660946528601207956072946096788257464858856467300385788266498099017242035409226113895767588057960440933614810242584970295656090211984894347379498142681874430779358054114175314651815012644592674454240423264423284468083437175225821328436005793687902340678741836592583596432708601565381582164140693995738223915571586542010985803912222993031596590063814838577031546153731949954460407825032604724561729708875507826846175757712561650250224758855143108777549400784929995796180994519253116003101925523966947452517315112723196013389522521785128598058406658697837684678082182346660682429274741254231659152162174825825118479326298586899876419597860000325375036024458336146657177573929668842552704795682744992072763496655062392096360717045354783996372902951383054432166857641385657852896820068038007966795486793260958172740168585956057488323976731284327645086377019175248402870162903252879780407676062700058789329324692538943551103776006009536679332018154912700281804340096373108173017756178720861644712654137040918448521182488604841130834058894805357577357975149409440044421215546035097974889350647291752971300819144460943362734567095089212590066505886126205917877568256639284552652594013782530147300014526404207647652012415840542360239993454955903962204357309345781882454026561408939017665789249199268727223464018545279435063617339464179979412317191096905333119604244815050379391806131374212114175862584415375113258285960191961905255888634725657538097724739494866079774057089313496318580274619003603855216790201185870801031932412546826267263336399599546309724565512054039705383376394510744787440562265142187049119201265358850261655812586507385292353828571830211992119802716786904918406769869900212817926845971690171450637440403421141795571096450351780084910801917317093701607527062550339362555135815274753425512979769922121591962207995622596037695499438693475723518811268957089256000671042340492576665454744711945214409705297583761907745952018692633822022754964242578907938199628563619116079718592989559732087681864559976189345978591605375322732034164283349690929064924365277793585166571363588355173091748693784901655206531133726100751384618253850233371910217901828950381301428644780329367370066594874411391018052580409989571307406272217421692855122384345857386037948538441931851123877723295354207796179582718176701183281627651227736894955202015974731134675063340191155153615512286753139301780658583339118846274953491246855529940049479535895839124922372038158487165818951412613996297721366415249968571395876871344875593412142717300843601980494646235195624048851433676043700740762593973199185982165709893239379949818782405652100739362009783804359843501189378352476030414194693797657738376581191059897614528238527154402149039636101553511800772483815458457250570251715913381698091732428059964611251562924447806321346354253550320030059356242743852631275789409286486768348374925794296019291324075069336970254625417153654159368860313801480177556914742072597104913400554608024388705960319962771190784187903298969878350251265260200672207191585293594906057056740929778117988197642414482824698664764412834951373324928044137490898336023217795503710907279133681077971101013201373901176150483872574415813627590454991716957654447266010146636886166387246543690773835081712024771364749899906049285163353214766596949583850299780861206180002101150327495297836302710425434237563166409616777816097966536275862345298536426563912101790928453842026898249806864284319380810346688888269340818470417687470785678802765514581563917044085151407417840408677431855587739931474313522414614936114038799143743323901417745135338288794267029263238348635507582270394562380118529633492010509446476393516019208091465969602459314866949031384671636144021982526302228415474854444124765545324092097917539332066929780076638168682631708402633933489659907949879144704901586347951709052657356801704325381372959834593158828271672128893441072798074361842629072751332678838974861010746385753996800306337947077732060075803550838085769771102712454571909917765666108731475467383957288251424282685350709675477863989110942952172720312237727303622463151885187311038854587378191185423125340797205638949718131056735619862338267393298925653901587528406818098659631112106320463626660990194850787341897434819164394055791647113441185395336288420747702151757027735056017997201286565699423796960464802417624863429776807166828915430599123931896551738671912388562219798585170028396844979457043753819669872561786457456554369845525564196401577737060708186408339979025019954285362689574323412139270686171083751267467070039229704839631363961474926867452935690992400206125088928185690532678727383118822343225616566606881317996826834797757960606092553786036356007132148085635423195671806200294765899418466497722189601130419965968843933242656586046944687248296247691467608131041039548960564935629309524603693531174261820737053515056712139217280671729165209091330007247417204347828228137609893437283808715322849439836238422688918293693399038452439664980622695989729737462027578143079555083525799991967350248886063974949432731616162858271679663070899845205719634771245673395804885966704921676889037067922278831012916305763346613851643641013056577685240026180493108236656093804884315034157302073465982507841658012116936616985317000463225103644827377117274404757992327983994078392403821521152695764329195061386448201145210113152482551392487149179443016561400730914651012490315401776534725564630462529857749656068653903322272756916265228896946788382514674882969374465101189060756778219672864957160189903430861313903182008776903708421702850752399094319579953876704866222655520156568631884330529535890388057819153172447170489514383275525570236082705315819001446359124574516837899876355587685140877511740169226080443027872209352097541768414420647043272768357945607578248255453377876296726661992305896902498013231687150426980475033060695364294559343096792829630673600827009126533404703185067099852935799402542525325837629091928491078290759335282261834242148299488755607338263104288492501510727008908521905832405339367744225377565130794369330871113537130731678941856905509227353329524301191077321908437137843283308683632516324934953263573580375414106988481147966307738516974086111298154159266581514725474256841652602034540956400432073605651419161128087077499476373832060742036642406760434978621333101403208854129694459876397921631847189586294408812641851067953078171668968712107924968252448042999480433179100071457603785194480772982718017575846730701939961713205233505651350319491505842162597711672549919759152645755168625830370476989951280947724372791279579196252619612188938314870979817347223157740989642247803290461080679141349099275590185214944760993415717542316701983927938534808710759612836268016749900809120293282554563408126864217866544477174136520362809075670341267366567321585299473299385889737995882814485935067782035011627694985266201689768437070236318420234646813832924543424951645596935551643282852836419702683767205581915535111215342835117580535179016031085275828254946475468644685135569963805639762660382497062983287620194865009459276444531741623388390625014235368029135632523466254508557545840274286614405347672010194281992115051934313525351393121759100383241833882372224514591560368506851337917500021417777704937992834554223986761526875468212551095518738839602830012153768384946638419290254762471745350117724006728653854232367745618288412547246572072239967925634887011704485436196534601494155872102327573684882270937969187450017030351791919511138022309988879299163625411359934129796768880908535553230011014658687496263881365113732835081466292510805106303744021883703951258111145297710414333099146725304084539636613090900316951185400303697018683619944802209392296282990778353498583058419887392437995736065774029859432108937554319301847547292458353838154922960998905288714556530277302292314860409285531424279201799820432462942560602923863963001457688505196487014173382581188988898725473791908328560843663492157086299389075635174194996909507367289525951179480736462270419462896164879605739899505854866202623131118007252257796746200651194102924715887466162960529054173479160568546535096623303602642729257051901849120407275242963513572723722139472535962387079212110721351083516645380314151700966808460894503747666916444045849822252129062693828399788189636011552037831670335867484252944398687009613588603728444816379932338420435493918984687694124770554924122217116058506282576660427897131650200118387771428783236711377834189213998810230377513020170335550032828274322478828195805060651377409898939990590324955804607075699385048796219841123756891853908162021288382542126540052066106099774523839706726563024296470224019857687058180269875705058372311613729382155183363852451066274151095197758276985046284305358770490809629493507337241756219957088273433158873185507405661719081343065445407751848748826824089065184534054269163850483301203007368601022260760629514274745541206409500322969106009456124385068053916737455637471277255723587547603953198305074386491593551019332434458136950550094686647278330398457699136873668454478791979365028050958637139267273635925045586862092730996939959779032177559454749776418404774959224495818359903401629049589587815507645048686439858524859380071205243339353254797483617817542550553776459983083734828038252188690154866741872900410053954687900752887942457061611234745686211371816198678131993359753470357001217790296403567025690741910834272050178051769868529066212414484103439892406642635344322513358663515253502537654863966539282619218217201249424981079429725225755580766726903692680428737345452773902383511165833312439379312689797261575430384694833837884916666949964420587269339243520798896278172040953028430878067791666891834287470778104540121221544494859569858565462435779425705377093369480879740042291612852592440587936459794653033793489067015787098043029667003851637972362176389718277288646501688491225078106250363399133148788415590256815120301217984701095648776282336728148918570200048923001546108384647235123430577798725402838657202489862603014098305359164669531178305860000369641423316839358545940819916236583822140060814747591994666453540761170002500435533561426738279048773115830476601280164140180231663622052270467405600763028934377724587787303974723460440322029470385311904143799705465633142352293505591651397430619179370356547538684963453875954324752708120377901831768506919961216619792988236595229885071979035838633949199374918631474032797515226576153213573824859565287422335166327280703783465960981450622774466922324465287805886941070050497282623539593396232664442696690738613761900218116512487751054599121335439945661586593027331252376861114253661727952029349607064649004297510180552552652345247341908203919615912246920132886457206489587231435746806351883336474323889637784326314820209481917399480396677161614325029096676433855317642037655411549173643459504298315063440796088337594938419466194727279406458065331569802959291020636295537685933738174154867719447021414325620009774350362051558716626384581373261933711071658991389844905697439854963673958901140749860962450362378320853829721337822138337374873593447470065280249043147352784880168701280566238251834329810376274273430111093000669939863972645462831264862513938700384608191069062289661554902875843201377345165735833022917125812936851822030231129104389529068397497751233202168375179079796456041557012059804583544242831977728194656936094974904175940499755835817814547242888002125318505854021730500617282152153073752631393743334024480744544114603446581362438313192932796336634203959539809873473641608431983461390257774583170213072838680155067524349895228876595993762412461257683168703021595980557941182191979303636798458486924467442722044292469023885896154004619538919649941613097036999158878087867746046363797909298116392640751021357718548731162689823749367975696696429751514942619949923404031787652099163554417926271751969135094237980330125300808662086023018681519920777328540978236832320480492124893343076965310614032311331499582811513427568264941026324439792013528261543108721331866669696475834455186265115180243350149983287050247721436549751298205022475701150170388972637968208634521047719526027631975851134546502048705532870392017022660368687165471662900936468286425251048093501987888390837409474489152027562461292661146374177246373395841217313765290847088737503197104552137243654400594932516882767390735055922450163758224432995585311734859909226600181199316026444661090142085335797332960209036651677651406767010325104387740612295579409209909256411019136048569612982505919022565264771464734786707268179718224443813165748985259065235472180438534536912154213778137354009494794874393673329613191161921229462863350517714595427024147750758484645260222007655953536917318428031516424445742547660992491464562553105612950930251545172288522185809498632280451695458649270679394605220122296573862918681663176899640029595110924360324218713703718254498993916900421219645049854192691398292592949468171514751296563410781920845204626782054593458078302096995797549422298458206685089066413655578216187851083533530785333364239238723404387758835798561303809296589504102773029643449643926989926892885884110512884556702905442799047217987616064822389237791650609427835288816129472533084448856790510163019949032867006498050910034522504917743235591196964301936947544471017449054972157478078512643229596750366356789879498086439057243484272087934931417853164405402194957429372780519408455813819210450526268683068556237466026725336451691914553994659129791683721537118326812732599044208619600055446419791966467191576750750326213195472713819729980491092093787177263615374202679756807000545425608382985164926023660235477275584494813703405171435851880012410728070990627478035860856143350079127923508822879290871904665984895186716146254148922898563388939138699443740354061960975279151941046664381301971721366671623940552409680598703446380894934376430901174482499994269496401543258340489728705759667908501113637941849350899944851525456072018837889012902143535936307478903199527276784611872338688180057557069806206929699110846952109318155985478211587970625727786933673498157173572774498856301276601632585286530572216012143996288598740595502592295896429971884484546068411329282255352659320159253383385747662322770238290614348031565721916373628390205814814970331802931061710731295868685636424486388426898261349680341339714572569351211586840275386861334742564450617492767324732146515709417384219101990309542789234453915015655773024888955854729570146574500454134747960740303594662462771812481408365719175833183877440641890852370351941880785787487241804814896804028397178965468679863050490396457331505832300883959584515660085029417121078370553675985654820920931713050718471667394650997337893881856605335773292470015254051825301379646860489235589807523277612349302029875980344920791475924212785709979214306492950694346309300203767979398629292433568270922964487825619393253254813749010261878508140235096025873849107750599910916640150043298608824035015500803195605359243035778992625283060683473491036333511382772566473061687352486480387268384706842309928645821278621412003919731273417985384928627325409737969067288596518084127836378445510858192203149542247978501847896219822061497089971711404479618291848305808056600172424247797757263536987628941966039643432892211095502328508564619328624285469661322554818223571599726798928164922988184938497725597296232031759979849603124209914563249532312701451389734059950161194538200301502432909290138861974648139965734968421263450758114535021310946931772085794643086496948812329351340968278806309620307885278933066598539214078656155954673178931674033906215791156312041609446296488703568473367686653877361861296918488903247702909701157951771533115964550376216835928573899382546154678365564801698084326527999984227886529442940882994862816472941361873848842342661246464023868780969669176347336669633473411281305980486695288687393397254821453643182058601903092239716336728278913534314884007335692994205581483245227247093629433150111962419491965424679420336404794982318008371104045119131461175400694241561720185057273137512532322890814301254958307618921586985909351629247114902789728708960326726234623170357404811385400339647811658758389851741155095000311028523429391630540464578890948130287246328168427813045978154072855131567539274501980645670235048415969576185259508885008632906236091503390462159314792860101399097776642555416713447620664217352730740417281187193141668897334529152356038482430343316191270889039594804874084717913530108957348702543776801991069481795083855047131872892015403180179695441020665599214612789294007049056644046617818389602167906422879768233000481977052335456598427132466248693127413051431882303952856311344165496151875313010245805000719458320631427860639235772868016649300332277473968434049878526221222492139537188656118142968388053349563947460237064476858460148220432327835765921994752032986286317553171190670808090387743231293834407948522287726204271323206142686432290187019225981045627594307767176081090367474932255527489672103765728402719198459685047514053367801671732685916922451456260067979957546178080167966612583745368999243358091576785456758769643266966469387285705872888006815182924976069009837483140979915216812422805628210409956419655257579862691534993717732722482246671132648738392152841184787579771757136483546154131624504663029314025375471098051127495515022990651608401246734761076706168391013771345673158973492582767386522674183669682567617588121357380239437489383935975347961092938113491055911567467354763577755850683391292678316586666317806878794303833211839330852124397050629558929106106962832948564306766941816610394714655170369937480791379283699153053544006507900902502277914052344210556451371060710700497808796599611068213078185543326774458384243941805726901765908219234155194946657003880912837582464307310446765738373694911793066531711325918815450658056619796824353831015427224742522435379828777289133855639992248159489943797108797127470049633078868077342184306207537849704228972627281859800230520025969673233970578218546098563316985894983839611385287096895130348196214111178439327970023705297000589080521226734971708634900220440584490856931634288432730060778003234220155703271563726922296337686131148848769072913721732157810572521429166052457954002562019180084318640586304621082727774381186812146736314323455516799819839842858666026298878942845325171209296375061610078772303964175623817408305215559493659963116135593974726544037958711159479533445266460123878609231073237078732962906474216335913113252476682568690572377354824749207613042197489723987689379342857489245847308127897931691771054669463789731565906275349175217137993488778858678956539515252009020637099087844099696802902513387719451482816139244219273115788878277653184295463649568935784158678835039205645361346801422645261830374518962251049756271871432590307296062530429474636692052681425429060580764690742251180326762364458414340616562680679614097927965182038196413171150247728187013902044036024239891345731968923179247766148311798043556427474059762567743158067655927810512830135634447661095524160393365411915442497646411915516048113027629042661315382932550082016808138503255227621371829269902586068002046058840406152660371661230667869874384078535586314876863901084348910153830012980543871983540262242722959255862109722038085192454422074706105034208647269775737053471962912814267441259036922087595379252497417890990899191804656389580172168255383104912055510693241363792009568553666624179718713678783506995414792499700406759252346098000626847459998502325548255588522599777382460453907516472052895785363717137773149301225524129884357375757529120854904832601097389428544816128740012536344699634285271718632518244685886817871997066651476136620119231013658124546851150774700762072504484999862930663229994534083285456714804630739554735813887709016832917946527615653842738995982099103827357468597728304276721630739550158572469007264804377696120763363456125131356049538041379575678828263633998096104857733644905447221179184704238947654378461504630584933212582855582172043284455888773932355188147744788383733636705777421213318480605562286555736125797557640849449021505808588693297034347885282282019047708671273467596006540264760349929031766620710418583017615655411942849113956308570225884984336628066849426412464023925361099068741678484411155512674062066997737866651257237714002883927692603876726944812283267554186462227669543062492837727196616539747012253929763286614636755636238438248296325929880442985474094422821650906607232654596689052641231833764840888569252433460622135435867684407189409694515824232802980669868666540540681012583901776348787115103871213629628585318475044926532377693071340039357395559100091672939249548507764254093285894569923521440726617900339508796922464693978795644481167526721623234369650982040716479086755509836695123313229882298878559468496691983834880148885245970530245061378140569847308387513441918869281067970174621931027591512752481875726418947239982833147224043643545774166445118969546500842269044625134224809279180903603845881469150115442956597883742501159382229500480935021160634495293037265292786905324093853152371800732359023816158545718012614513558774917365415169638478873674771142588621927887460014773044774995572522470446704296651181263232485162377281188485373168296841295181810820052346731779508943771122657270384647728977073720520638945457182489265111156454942415258002745133065311851790899639493031091526479782939260481201631642159550500307094417052528348083214785478186876508899404049520986671163911909261318729032858529141148150375432996169826869223743961843198903146999448812176984389695583977986355185085783805778028662195423784191908986076960239769755954959313449719811576660598634248404916495112111747578958586841652713961024203305313119235227607855945931622598358364252111237367229150723326799051762570269867332676968370837440426182327783351419009214599590571110390402240235389848805915079737345687002503838864738271128245218375223664265657380884059636733430292070052229485226091393683993491177264025418168176222811903253674970156869147903516986600041231000799146578770183771275895070931441876605458099088063451854184736126933136919895584855256115568399072672995775437304424044285818788790306737313139635021958593705630685732226574232011982255677844042692309957162051753396546700900245380825590753856623865001749539764564969291861796332182660367561003996764151880947796190337061222914350721886519445020358895267376575976634813457444800135345916768849124079466369934900733062315487588498213628711758043632035887801835956738267473980800993029581668075759544399330172702351886648784475388452927251155825726918499220396643954871886845931521853840974836866415822737305241309614913031710329259073423032311991777375052131995076841330248440203086391496509161933813956430200317966351247069323057506287314726023196399163560556685914290309015989527945391861257840407910105219576382334959090865115482704362867388927233854387374537687040733182028172077786959555891344750696932973268063790236704668874437720497711296350828659565067912012874994068500997471584194053783884235314356390816971764401690782430073634473786082790635779359606712130808634237500830209427351073754694120510827015216535897890527058475850044068429951305467968478039361934689583838039161360153216374764896961652893944227787257310364718636364852992111782070485530942055220323618378172876447054394221728341690754158494777456965880992601334896252516097331328376798863554684663794898660853835490696228348675967652893369981503270443463106583275183246917446794856072250647145131141532184659870613330025861683919367882394530729243869992768727930049526938550338736540034053853769916612934466597783633762569451961431288402238644534861781413002799958942181730675966675238382195491824020112303045042322019217113158513384007977268880166889902042628391961695604225406085305987075945204008319050180643073774860565076410519789174009535656491465235581683115940103263237206260987707849395841881725279444162183565490256286586604413088477734589039057888009784164040627143650854319020629451128439143391553200908721492879819804671826563196631026636362067154830252347948981153780111551865217240851581303154948322423421349510429226291607634725980827134769881749650625138835164690037656734175066918301949587422160975044562434992219210214776623359027013490635218424984372839343278393006892044649581608824627261175859157692164164176517495840764494402563547834536771908948214888665635716874686174989279473521741136475065635734833467570947424692260168021776168160115896639970439300573786938083954920096364324470202579591333526795009226997920173803233835278042605138959982876822364158312089973797947354204993920518672445763878177858221817954971702061678677893464105282151526097157437965260815447466814035398040346448451578331108100597066389338971254265025132067713636815102126194773493605423570499168498807398827681754993856702619038296962373823553962286044349361923357879603199114022378361661670549806261369380082556926676551113599420511370356337765162624076474125011224795844237400858891044409414685662596094385249047343914428794051287738324083583745667603112555977572741038226220368899449516961227776628823333780982121675887439211500627637221998569923969908546294480180899551432705052402631957415865742462619208502254884186720969868447564235226385319628494067028236825736227866970577619234390004279103700985848855972819592371722544122409669175513896720501604588416230118128588752542960296968893505538997551754727870820526290172434655027717224743366727910073751188726875594309917764376341249572105052909586138159971479577802112495938415043647648729737745598360733961245824981245669278371015952981966982153254403735556493844692127199226089455528481662417425520518739635808279454201676984499655540028105521459575915310143925213079097690188699182716084252117728351841328612263299763341968417026753001920638259660921959429702312084384951672994051430340491819568088453161075617422116234181482523055868230004350190973718498911215619075298060085653789356213632995737888196204471730147540835396929103952275100809091564239416630546052699819667262323239236407796465366516860740471183545485756369917244898882448829392616112107176999660407965531977204395888468276386227172940742397809847940849057090894471030253509278015667276845200215897188567851111932052867239438459027848521272098914385132840190999948309521336638097415465135383213132613101415040770379038829291881762237161695045886092458962343221175192331784005184216371751837032627174863590866363768229720793760045432756119440441776432209650563342046187113549496003342466217071395728325506639189173685189074313035885815969649818931093121511274921953587522485499632758751633180680240005585029228858055209026953795423384865726860326987542728285093137179311006583429971097976442962410562335152610472518570294961204686959383542002040955574197950441609586452767501619286577441102505971316479704606255510584810296500324392680844457377183070886479236002279060325604969014466113185261094088521971419780870198112905800531384626332708547829549624798211577997779445049889837280819558260200162976092962927751863388316140456892895584220862289129110155592755461015530514257398990462949189808062306981803424690958516785333414669973231467524801650494581816851482189170367464932169545443905878818912469878377205496633054696674949531608866626855143013573576301155477116345958696251078540334575210259668459361318134659983633571492096546887600635735287724741648185467151285092934876356955545996654220893412793413013513987735767026994539017707373368302149251297975084326106590608578533675330068343466375676767937744433355795516884671083348353303275467121671460081379303390939168773394946018584088190774367671339149192754572562796397303221782048639184513620088976045234921449948047701854372567546923499057219180564793925143997186866597037519883128816205516695055577101285173614304522312113093592246476568863569703750796494397824731065821111585723604652642392153676976853082706302793465116506454748645139779659862309028647117326990045661892585176517948395648235057879057356350497968869537978426705383007753333814692114108110027120234363060826453150946330329715149709304076235870001933952800035663942108138067112409078463048557068898932042988269261024335913519216013643146113982930399007785269277179747457392123849457134063695892128369517853888449206375389309628685784784489973044536217941557226432906912342205205217126114959807550740307831929039418412570185227978745123676772632624490711646661660299884845596841361444340095791613787758865194579788190231661883683222647209204205239258475789849596418973541238792510892391947206388236836088399077090880452466174033721562699821609794493046927159374866180859766668305116433864764354007004891917642471970483715869335571179274797107559250408918059472861408925966817266616176372443534574902268172333843793485399777049260801186076095972176925255320068650946809685170866924755078065144981259536039607799708843099191395479774865056437832598044699377565628100085384439688197283609123451858596135529865945201080309735162034379405596046344123711975226464675762681214727937729576334171594349169927279784626007114385648272508337198075061835215964694537182397695472299557077411856031916336835579639625178839803703872656947536659986191336572751728225948089472939084802003408224424343732495001954858218005198926952253747948987115010880114069865402636113948916710143336990690094599336316700080541814630768501051159179862509740717516179851703003466172455067290227513370836833117421739255672608060882153373977613611803857801774431360762005392816656072438562491818873291779782688744408693032721590698774573594364015253412841646800153064135818656885347168850139394274624938964994671653027321550323762726596914230116475940562634999801004534768667190920054410916211122276867026190538109972194377067326801129136909270086984390152827263853588364014901085908028524688017452345347378514182640011192227662575892961206324387586318585571627915812243487955120272116785357955112506395371634948749314911175133415026107999743215269857689508464529014599167860629449186563273782766272021361192441570822901410696736698928967923468371323849954263752710963616560928022462559145097623496119025427487006660189210041141362032644617594701012591865275691542685770690617962113508670694437048535229170739943508739817587863307931574365308865820455128323889528263011523565311530012653272827974275573795777343449334235630569503006490906683972439210701502603252149303392816504242303554921231535741131077211414886186605180310252955935989308847921087909030519902573864453356219294175709255148150670583045405687550387588519263460028584251788703325530683171037624479628862441520624200367931726323276299159330560107794059818489128407117620865226757916289076090342491735243749306097447772830111598741508107511680022397400065940095143015745603839305736368929614037850994635458900999065260165336625600165833041026558955961956619815025819425807086857375013841409150091480776730041152978226145302671534440792764660968006591325747953291709540288875654362979966979786117387147901812537279804983944641084589717425308399663534221535910125436574135682589097583693429655318539428958519397698966535939026562881745596985205948901722717016496886528881320324347874643924381746381517892839205639962414329001268395460973277970806427079609121568751394741099676025774613317530381710736072414602279529176297583822330499490070429274626069648315520774633181885870349153686339311063392499999570659505452959058516464139698794322298309304236336568904892087277509768274401587127427377949052406479101800854174248006460901734632589712514382343963600830564567278088965164106309823298987408671211257130629461220880774493887085979306954388298450275283021111268310920165156173188967080159188710458741517257113696797825744747156518372927104026203366610319973768669483474399267578466797151395817084487589523025492745980232396095622897713713067407998035863513718701699988236030037662244303690442124260685056224292967837751479062165028088566446284222906086336647307789798058273563057578900937242658131941986120505677930915211750559259015730505114489535426216045680273008743623698683754547052094148771419939146856061950201415483546690621978976767858172434840182184485197463225804765127993897016515741276966394985902396412079233139376961189147665669982818850518485270707485284831110855481759856261535772455637942925980810391892408826171640078429025445396412639505613670178015564798116202779945384058703223153941529944337132363505582907830283051913848666255392408537892386847485577983719476694617062897752290559143068602171523086944260739142659063071008951933915072832781908057547745708258070495394309385303646968963924739856279952036538505713378013921024610253401135710035762170137209629439724915005810199394969199391439552146657168026575384068287766557452482183308761156827583303247001622161264598778044554012650275238739628854702673231862865669169086708786314507864894561162746396559088111841007117031072589782826523699647426404340941846770552667830411737908297697947436239057389302216434896066484629983545996282683679606531501661639283555585621206380138696074496592670612786390284706208357576124976076017764836943512841374455060328842391373875552348006030391704392428144979527155064843864093356907247036744298873612432286874085239547031943011660838279449263918030835670751123524499188789448680226669289809883985791272049356904198958601556078638743678280990955399072421868925986794179512257742473721789344346807266188569654876234870099082104801400182068014291050924060766047302642378548223023880837363692272822266941361919740335637715450819611180974261592902256120280331249025605476061461697338029676694939510237321106617786577960228903931336793281337775486219790004058695909879199012938562278972478666274137134813630868849376578243799685994656623301470146133623948355279144333671841804301622969282374966691459956490896915671389472995601384043826820130331285416826569508557323101767718168372522647084811702491925378442568313282602760248684226305009034815486427808131020029402047755721950099646234538536688803278674911446899261117099925390327175313210557549357642481547703738809773690380435332338058935260957180872412721388148479553939741441300804875531757364778187234887077686878703716695163225835012665973584547075203075672064245142974773707730119720402287555730399292220470833997884781807921086717033105165310203545207071939393429132008709973379761210221337828187408291416747405656461233946349733738076944553540080536369914127237678573785306971729520403579809586511058909198043599368616028223042583134892780417801501038481132331924156714029303911065672129478586466029898948183576403196399000481210727527297271892178546980487547561450012978046414964968417044854447728055818923853496388676638115310192869161272439802273879359699710998466779218268611290119257602138634479560174610745318538118199384561748466341594367439505864561687209140893392078830576147654770271239705425905201888415263549938032229302159099309470701736040910929841441322721191392701459206098355522060640524075874760851385129622061882167800452637991284991932436536461486862675391424386797117689447664120274902961390184357900430275851683464851102333463269827478994072274235332652565803036584453822473272568299336494502168668787645152079191852953505098178369993725983942824642029108026450096231291843352339710815039913549400737589289974181467725852548796432026315257977292458475827671692354082658129907163681842131160061417322659397471456677649748763815920655336897582899525240824943616743261298484441913758898415610221927530510802627484925374506225219318514278703151104248432704608111614533644390466390595344967452702945996691716411562703684326148355095576408189369567883961333937598812510318113747862741613508913622753321727872944491210976038467900863125905340545038444563883311857120753516331455371446126026550495888658821372572616537889424095733008205911258897075692772003100995890805825107295306457016746789065973894565671126150221505738963488295751368159012914613429172994710974372020043392792358696336339678883831507162651698468252674993280465550218157626586943842116129839524447442493240196149360676793083636752782684268296967617228870749305513333168301054238180789899662654167032712306227766134948631276242542729718905639821500556193524627801133414271566070961874467180882517038784233956152647001071013046963943949655218577746096609803838195142976610176782389434947694207261242349613633465583313417242146632050755607194829022682575737257068921563106562463145288359168396168684166681134788458237842706955763453143842994164913840158262061510550577076086228170439151432723498572575419872828587184757528137279082424857634001953111800295123790682590328471652176205375461763012451082328953861969211081648103126411623632801450876969416052481056800972564412922463712156408169733554827134941658603814043749253602551770828582771068215226930251477946870668246324484545237369044628785696985306158215589761720118982162579613709411066923468213421617967029992494941184026366972538981805692001214682672295870488284007374876888122514008310918096940418478501487076803804083835910059510377352077634869612336781613174386492866848062007811025081982053283030254530373663991500656187691266461130592320548162465440831158934189050751973815976110287512069350461251871084519812401762716570657568017259985993281392293409330631589039499961161206254633757164071697314526595676043854136471014551165041845856474983947031180581164375962429154177124370722408681387825841681384111699120581610076097781378244610927036079634713398009551749314665213484294182061578421599292767855339212945888481346575214344889073874683903005212642927157518053527806922295303613486035358598783945802457111507935322477820737572497788320235700095922505170419167670804010270385438148201956212067998387258827781440719314165338164802163372683146587020828385930056746491798827055789808585914624562905389754206495372877418668434703223282094980468757640996998883779293129014826203007215114005147381751650600666909029339763136208112323105048386383490062789759182730363475663125470800422842380013548222297425063568247513561346306607125021357820974304068841606494300853995301474925682467975379352268207764784493000357990875679252305730430511773776374387192747726022811268979887591799462363722451087780550482607992495708906175362598207013172356429238588473898618098338451176937872799757214865360691594510070423205077160215711274061199685935962450935590559311891541155935948210776096376895767389191552968922085220647919025191505209304915024696724789568984472590439178208945041077280029457913046066892532325097279604655803607760995543590642378093105345684106295411562780356036651057352782735071731529850676069261182293047210252579931374030885509299738911699467559585666403215658748821581379094023557874514858799866621083475616133821846270400979275627945807825009571322053494654897167107453084914843119031291383026686276099178832840607554744168064756218152958090477341288587470211988211665842544949722896266188007714466221323510151127856836306140701027386059766140634414923584956116559286006535465627916357923596401442026331705135085299585722596457686587048880534522548122996194154337373918629855869851353118483095068651638386802747167690680630327734051695372964193258578316374512068153420026149807473741001799972082983139530908425887630389912564487405648819051348832151916912108248240153061914189259040239573504163121308595369453940343747991323644061723736255748250846604252735085607723400494189177063015458340738792591478885120849088028230201858604008590591223882561059456164469074510350556565210666588924847352412995741795561598799851921638206596920362795368089917930230566157165067040268505343853301926530022340693334943010765511450212357197025379517064225151870511784968827067004783057554129289561487657644940249428540675128832228483904002025169402474772018692461931563458473910184307379930216810928796827806752852315398790326447113243881450047377388398094899431018402455633844042190754315579148384034309239293190217272241467796860265874180651886273031185559350406384155247721093273182664650623303088123331681190227093001581909729873421799273630571859249493167601192805129429407502715310909947913811481586820274203324692759305837130405485397945395617258996544563872715137149935109590516078139369326648101962555725239649917117025576706731206916161696325192505467939462869738909415732031949356668647479044561314857620194266472625234939146119969145925308420662463366151427668234049701715122563646624780131334380530887148209448932329041736197488501685877933916849402651265859654273844348831789032138962384084917857170322111480616165765409333420769536999688979928419311027557612306727108583534193123346086984272310012081785504850309044882007436830994166342104505850667985500624907900238604035738094793184991711773072983247686254900345928625689719610086545153888409892263068641363923967761904004806329381815217453160390637928248112573079996448189294487502003256669546813481138603230932886590743702084309717953108281630507692246386355369507892226657164217616546142317844179009652500510774110310880950716798159381122483660016921643415654690078739315568388775921305266392146436293307697726026694535099901736196551307836019618765308723039879046014977221148733223255645898385504842108715585691060655621464288478193653048546343287099873195032326391284365347711350995693492408086199151877747972135240387908205833716708485468995898984650570131155724381206051952775654181386917879806290835183088394857896107547500170408000055286260256245734700526253617135996187375064801857888709190621381989619458483160095164809121941724279328951958367773377033119338263152236130001654169473232644553864395633671748951744929412939522971934928768157519228132587378116003255641530500039662932044243722065947899142564376883798481419580813499915185809385314730706538576727157481732725554511183845783220422450653456151431475703065988661598121351363926411242196473944267461958062385375132451362664943918774297833541071910829424319653272874686999849541524316606612079958252269571983313459290888360706493818964218530075787848780316443769028785393782286878268026500508961118148389343980853813421683560428334268854659323043644522269624786055726980503053056112890189591897280222819516246930539579172916296684733945793182813118897683500837475719329634929407321656898389121727803518421542591535288914049634477347499328306653692120930293109210646181742532505378921850797542221001271532640143895560948107905776514558108183841161646247498791856181464243611380497121463189787645146405476643707386605198753243945801981142878549673149550061916342225630435808743533584785603945374222626502003443269767244903432198727392387553886556070958148299978415956308061812781201843931189903311538985480100400132836069385106362501581291949916787697169315407905708373288944984909920705259192374592299686188327992229084319886139669607505664142051343289171522644138070964726764391774856536767860065607165801456857384361848603613835446680639441848483619046517093700208256776015874741346388961437690511245901883136391514055164110185617456487679669993411418680526609672882804250680479917647244153309059930974628897640251341812977226290166222612094452850848644346316138824252339055885677273620635440590910825501034638578932767522398190279237981342695449548281923789518071603228771527926832531119904244153944494274787436809524538370829097407511132670635871044814953365704052127789952363459825000403630100261485468037272711918709185052060490419737218230804417041200080604182046261801429005576094626214651380861148786100988647221053545612247412416873777903600262527260055465638106519516499360034122953753658632098530824530113754284486384933182664675226338146259688632849144560051510286184281225815792823009235148137280939184027691453662205225519296943360359219353500595194491404288658468844644602471997575942280526968589628637867178463421890181171218458376407563202666495720081611415696647557868074454179501375184198111300018225908336216873818361968469080631708247652407690678110507100503771646637212315854678258084083945979933348102854512014183057818859696016578362412227901109425902642210832298713883665098734833917381552070921699959450403497747462487633934230066657369263477866528425063841790112272348014944573334983360426700179522182173869969054989649971795717332218200047722541467263968166174581937664904099835453743548984511168242635883244731434616641325868056880516905743619591333944266931943663857520645665844593827604347843008190862377111181346091028953170704993764746953140932346647699006893631652449546047865659981938030965109139798155531991960086523312030106919998749077761004067156875309041682472739577247411192246104680070501966039821717690919028147474439797243953774040599336942088777598975523130234789796425542796357429302608808685795121423509566711218428446092325375005436379356179821468209876125875314855614662734517781589738360973692760179604785262838695448903757327414830635840850167731644692390447059584553775967659779921382620276831555756418958996431910540040328431165682132012554170887849877663516101731358423365382511249697253992447041886150060983541349787745484121005868474471168894012978828397396137533031007222515863501518344015218513865999575117528911265185273151426092657467523739153881396198473012060263504268954949508377842827089499963697549911254831838746645874746134142186958292145815395542624521099331626831170061685639071925719213889601223603725795323021951694967825601770054980253258814647299977538301391719643430861298084733831464471413420430068920205504908338403077884989008647515072157709622526021261677497239265745529085855911679945013398707640350986203778960746633568519623720100906498337057652267202127442974674841522225410464176826817485758510243793380928049806104023786676516176208167994428873507393125541250799345087501322591602304248160289404066547157337154929578458180459046366033784952552752436847543929121718866301224477253644624152714849056446560423327385130062578357750788830108093643100478882241375157590160017723868697406726507306327017085027109400811100602737249085316220503541978590288632751212393902085012412363762385902141686553369229030566563361042550759639457108149567753268933364455031962743497009333157038758074166283509257330460835797263498345611533995071110923883786694110240436782758108927118856434941255335664255921787458767515422438844069137120530848698881973821592111707052761947411613367313425906385413656482691709836452254685581278289426345986729488922355526970338165455043877110313973927859613902084251781529735840657146894052061770892344848253508536096562282569554957943464407212548011927699580302614903103925072072499238006179464478371674539037041458637469215054897336922858646161344505547707825793653594367441813815938383785301784752549462688040259994976124979377269179855818382165860664383124614760488712490397385381033655408342145391041926469350787120440549004797491352732961826315827542490606695156972726691753863085520675372315976058070484109875155677668185843848976045854716020043152863451439385866009185421559159216116142307534846349557842973806044009274035460280252008039655726424132768385388879351894261014753835092305280410729290354227704052003849322535617043959577866646806321711158345277163823961061113691084848410191451549733016033999762884663075985254033705882223839467477363476883840602829854414730068707540994377120428555600111946588500203005021891086895328641433206030570250608608822839224546965165922030318746831300086949468524547357977216060699009899106405296766603846850941473609038495124468603448915938647454771536015041723181971489537774199783905385554091845292697612091717408625258144132419994482145492656751443450516186821846704416889149247720486821259013675608458815533209709097127135351963746864570706435438544065060398887136136147855066862031473261818816855696847916310422063052022353178580427508968308105757104868384252346288386463521243597227847507817924208112675541903661007365434365607383070794375795882337713976226778497189767098620117376249225643578910393372397916721685326038508866887216428010113017713725154934606157715122708797488407452777356345054350361656040331189539638569188477550232991840678576423081788096898293084903886225706598827060505052900989563390300457174750322295729796555054110121541800650773066156188200655567209083030951379915939604528337779050250285520615228817983980363868188404282111771588409788080772428917018257338236531221410150399759949909886985489119224431954981308052757861878199757370661026286580557657589964777068665800526150551951041625421527820041202182071774435443245101905701207043928264488588866015609473062698000291263568147339886287459894625850298568864336212760968559988193216604938418050495138301516471732526225888743427129282443338422479808257646496142793353175454079086153514550788205447995037430255817801709638183319448106232117017826647103309511547641495714390052160624009150737118989767028695129181095418264361133701588816473802133604820896401249755168413312915252811617334887874812647475930386335120196519911329091044326541249438264005545567512928499732324757244216678429792416678548070437400423303486205953457080119172859678805137751188115294558550116657721670577865817675379551255555896994312633798742507729707521910797238138795053412993636776548141125207644729807510360240833262409045535830207010507981598220529668735877217917652463550352915143443217592844798017208137337773591119255502071615572418315685100849746407655075330382175125094344068771578769927847213435518983804216924049522943152963745141250240789657858729346379461509059787210621920651269798599788321375374117781214459913449756182806598534289241554902689245599912000074534963069516011546049066347102604644135547973531333616478475167488355101095174720412853606811664277752858278035723503659788371172536056277247951688233053691655070059497784659934127932786753612949595357218765074820816225710277624581407176945308953333601795434234154360282808286268264433709031464943902608455226990758895088653534318862460831493026416182189693556087874878358232245199095017593610364034726824359145970937868292793858216981221421287880403485417621298603120245015547857976483205866369470181286311845758871820364324885914180295665145523393656289752213676564439017912355619749463336342945070443939926364926239401194963527967934099573533357352801178703470102383969107948711942030737727323539096070144782345163316535249367125136609465588265919547744762667368920092515807283594878904352274532292926206381901086674903391386934008186060567464820167313541993820426623578090597898121334077588671320162552756864599676671663997063755609508632704257067535542412842340919055527251923818292585875314398135317577766263456891569537614288731279650727654864232759513495649612995987043182167521396909898064000980485114419735456835926126735417685778660745024024928896473753659154081157980745708765677593966016335746797004308950301130161262946858022925969573483080910980461859661862532599230966744042794201153010068678567497389806792226757112679430740615447349815956777982911945700506846424157136283881841162971518019463508451796185317017781427574836283859440417768619530935503204640968018728730831568331077687887904671447582153237084845124949375229962062153554074137911247559026286064567349304086550321101245822999093959988774996730306647708334095821969076507783888672833191787290829579101043767139526450777934062489041142313792052667509741564618447470491109546846809093142195819678441093024350718909821039081664858844531173887134316821739983640710548821648933205094322913922179198015068239528618567389543992410900204744287640563010864197357514549681968222525437891761481144937821554200524910755128533931354339364937807023064499502674113187248655693986456867616212092456570816798913084471024350682669263278136356269994462913457639574134456019275121911047455492231598712900059436235486746643714400358948830920934679308899500838989781650597206958357507573364788660041765140201299402116225103370180703920268830413262360977034818772430941477239005801478603005036787311884461210770030003543539853350577757410903672536629351502425181852308205698325287983426317688725341493258309925693698213640142712038918054694310328061446444010423854030117880713026195378456003713766638414498233038347875808241972234744575681298243008433588932800330058421012854890547529771392537581668897342783427868662102424270106147864546342435054987299878154151466372802721746743284850874785500727364834509959461216986820999897171960643577559694342270899955503542132833005407215296512187981174947255744757800989743223149961614397317852373431595380801612077714053026918909849799293128583019212791574453101730395859008809178044092226312471028942487782139757836093092488207412417537002086228171655827163053187774105156218661301366695493408275089348468669909123937046927757194382657658841087126161135425636827525220705395468458104593512442650708018309377385262408443491583278725418730168350702636487036336997333832711724445914834408352104775985418136839976897237262395347630327540808938611279317196593547191939514685507300354889327679666566708766603341780811458519922881449009062710115120133498345184823845333966684384934101078560233018325245154505499007237517564555534757980275149858702780032656771126377040458874224748964992379603219245082755946709261058420751782741649805182596208256401792041913879110843235073200116159176168407896783272867663009305044709058663927131403077823635797793568821277559998205041374677229352453249182859678445789375841839991077353468677212476231914391646215857536049368244595778594634852498514313902364232985126560909558312707034893245911446472247819054411946506142395624740774197614256186607988585660887670329156671553996271234735946067771516181167356178422869350100077888226429398293252010316690817412921089630402430093369161346063714647818436910890908622379234232432551898308922589041296835695410023908379742595902411099555498749436667489417403406755635666643157400844546655678929688911969011302866319554744451067651385644780152143462259761868980347746763761737773490955206198948722052524861814028419427616938452082053171996793196900686137939457210402768326556072165119490624626716558095575194558931546946054688049904296634048172975314426710099055344472764982729962966082302766930170983099841255249909222761711200535797218729908993286237435969064987784577799057428675904814244686028452811186744260821669489991646493190955812326235672188761127681681988831158501569501827678329210623206252487318939572141510403207290875240732922213125525297457778990240390168252146653915533052613877842397882225653110883967147962983113728384332855768231867077069445934306271107546498054401879281977804161538960190357128916871900393613970305598801673401356410381061264535082770979836721281614256076699031554337427038981595618033536003151764845288195495683487903105769835390400599637053646652315883438413448803437699031621411094331503327747559252137941480905074390994870721177868241986171891412409478462939756865138519655802486382211698646200363244111980551922342846341641043552267259210796261170830795564981488493966611488672697371485132538147439748543012809750512372245100486369260006815964951105596633911318684980239475463268300748496944381456058832972071891649645186072741288253062673490367554278739364506360880265726050625623020103412512786779746092702542782936381646214613025045831535385618815349497997025239632098864698042823803387981927085126560335859098826136743870168468710567566348787169673993887507658090495367358330207864333156284656845344506252827127512834169716145573102644621305214686789512580057315630551264094908155580412447732176632532619336015484852687163609378425272930861048216046411051087333547803811886249697121544247165588033156985138326909911966685642915879910376563686012445016310286173353101341674979777077729924518561627667349292996823951876135590878326931619040050662668653825901070188595548479393883735465624231828580625396473279434509972694833616374330245811415332826347085274221599181395010588264974886937040744299299514385395887896469691884287393009646487996844873567061090925459590211130323793638244644849953875945345041739951892454311364415410098865656014685216774306102744071531573190067386856796477608201985658901807037268973968053104273367034522869275041551290243452940197430928705581474469179776515730449915345690507274991842973588686711457299248342769697375803656400564794439189283504188158803625228426136608195423050422650070943105327106391617152570970347005692971814979562612309618760728649319318103849058904562463349003950606404495384416378643546222072329408419107832858063268323182054270684831972405670829634699326021960045673182386694862142711418011770388713231766827123974281388186242900686603092616111743544343019171051983598154804008378190994046714416635889332265426656726778143842747422099082897385009853874498655006543181054554176567251015495921923667345836820327409730655219543013208556752688795795916393667045333231999644058269785976132638275651670841527969844212611633197239282516171542590396746452018615341308021325621227583105833597520333873518316550206589122975507277111417593638746625635122899338560942481256349125987539314598238705663252866257750896785390761098103955767857818219889234018611820156318863256582517257953122681426764499272542065295387932037371010483787860859969029336310887689362615434857566484607805658532184345596427778649332481657496403401991132103486067419602153637350841880989633567218167954338615973761390440600049911819857103930243162731396249785585845915352455265824258678585785270369928418998220795429037419887115533471911073254584022449967488307710935460128039150903891003652452946006275261910698213433262628152678726206876613000650106129265883037883375853575039265599622972681486187183910210106864839266122023050515138004709316039961727875716204756151888339583351975735498832040164199208411801019043258361518845541967720007867376626653684163204973752174555775827766439424632535119609660620997202912146394691605576421466434196730519079467367655281829644714590248532136555020923578112347652654339514501108910752622643590932269786136451684410717057020345310878875272968891242325004522694797853277144775941126733972866879005574298682047112677582070603396928598598807430666881022450628323761904788546881833294035563278033065101718559488059880911299228879887465434961621094312721861862172179168166238794443142536409912456992465379175505995433040892904571691664536236611554512110334677707469263653262817067488860013185751543005628749087762276044229178229630883492482722183929897279691540293125424039542988172093282915974833378232246716095769930839719694105871776923572051644223013354186069139204721299388313377667720626206250864751883564584953849593637614963462478960781200962239536028856810909194204745719298957229563598468790252578564466233231957343634376363427882787588911238019339962645280942042268308576386255782035537305854602433956045563696765992328972794305798368237837690398945484840700758608369115621542605046938139146159589133378110659576493137426179835139573547492407582485313232809962503902418650316040770953057055044957488123844067685854348633250751108140853966480556490262850948849948260820577989215005955935126045990464794858093771563829563739616211251593993620262758667192580156316182757210466448178645324243656998529050869813529321935889718810667343757695585333519660636699534490859820099686857728391157195576924017095734592165427620700609618979904000319563712532461437538548280681972418624623978078670510336678940658639950114883278928856014010018384381871447072359152283193268360492545478653943895436122232346961192553685549406918533328357074522000261436527234316887652003173231355960729902893225743280681833296338893205873452767509915305176015518077129117040369878647808705694068730513623001965869871912182305445247225142494771394521260909968356718104086715734133913189463482703650339421239959626699123532926098749830006718365107451104937498632965081670619327729192712349379566981622997613910820422724858301828138847234033358307305096230327275210265720164538856025998652755257360668171516943885561128188654197553308226855216068826469797641210442650009242939781830655654125972397204802161314116903474431833882900371142381294066239052888726620962400668020749084780601490123900218553701928132343766704706499220381393054354783296195437958585720329140300987202639798759232253961063443618121166382318851542454802023589420334741789298801577630959312118915430028172079558870738787798491904417337010578127272475674714181714129952630919387284373808435137409566313393431807083928783417428510438093690467754406674702308833040104574676775260951708883400513799272901114292188460320784162683421585489360851258414720465820291559959494492725836919733542356732575593043668836685129958809562198220062140662223263018424098069874585461467284010301298431255717242122606548695345571418161503992171485201122368338139259784968076081121541291609296214002656724990726630670526214345720981469694346534536535945071442061693495682933881094451721542287264571706181193686893929619595702548739944042288084749774454149318707484411559403935391899760661268542425978865814023417683509380547016665471759208853405397709145299178840551028093088518267866306514188218637534717495260100716078028817312156339807469334283809893338989135462252363512154934047921343999551023813752594253910500623140689054327413761513051322680945847479882535356691809079591804677423289639876209870697027528672870929406254305028036543142916655859475561466893001920444305305018949663475017729510760676836949879379325801064238065283632167308100258359419777369513842667068581517949799156359603983905358741297809623422195154459741222104649077836077878819699591955656822139777966717494432208591074046659452607113296109942510876949817373479724375293338608139256775455706370138985407026135299996497014977594539738980147848358573110737219445842424283507492076508208176161003358651053306007994496823678367394225441496399230043563736185387048779541813587876056575410460182975591197844028812977759701919209212562112326551156736251227290452642728637925455642676559546381274550057115825093430098811001427582105502183062123403219426081599565426312797774465759089024252232044249810308575866278103672041831454563500714062997272360115449912122024275180471994526280013750587130619509141684296804962857275449431460713545318978689501396929842711727719820232504231165511600019991671573283874086291919137416679019922537435420835109554728579405571155765197869279556849474782869932922505015838520840245849306722139185932356620094517375410723527805128649905789871811576016058113965896755191774760327780193435469392808713377082901331357541409911719983461480519810857540254642305591356262578829311369485518205425546403274375816224787926907812774951699381707603999878405009087440590069756760959590629224770374150002179309537639258395514533348459754985392681474494362688953127083755522303822644553491466187971031131974719315341784748186103750079276107340394040350039134909927897980182385619547434538319064195256782842573931940765842542061214714141241505341713366237167638321495774371704961485951109945138748314533929150574498856385170075740084183037736109742046787870435233029622079905760514271614965426241429329168124931132805591998403509050796898589786825401349604750632425569232506741648692395138222329132590465659845508900507975909603540393216488508990066850753316391226958637091024868125570048927599947096341881807479310356993028618050500116812856699188008625851540859564820475377023550911453080153043620839041574671545172733024229721839788090087206519089317591890677363428033512599935272038873917861476225026935993628267988956776089763132374674714048170603648900321097340821341405140970319740292555632632893180818088973859783009996570660162763376785936941004395881543885327359227293944166548927852032235664291223124252126885153846398478698690524972709774076370946343618920873004952621064507717135446117709394252647452791083516178873315713061855701488397892142761355884748397365220988052202276073009413893563573766953527355633795184805761368570815202744607197981072124161803747934650473880826557301768801043782521825431297149422770074620334874362537302064328324869002181266700948455996972433033418861613989791326377845815911221552089505436564767499020677446676987519630393575498436218965894511367461196914182629291333574847196795125082444230280383781683976256101743008856498073159703361826724173398137190293416882435432692270008761389127724843742487901869944675598081477249341440754126349767166494938342257237868258716402348040603482986504652821649441083623783097075169964232578125859343396400918106547312258962972479943942816293067550492254410878687140068220145013854193610322651297920115396919640323364098806374300908302216343165112670490870983187413581839515433330451376107061172783032074319324042236370941370147554583762380137397407044068072466853219194507001357199015455775595630367197963361519276419843839468426761684239710924482845824886337071870657929613037811121554315453870839142925867488595560833482618247844284673310798830362938588906591632075997445430908434960720850676287419423964646293157226991050231051588907157919326512427536905392269575034620300414651349332500986016899172729462408810698145380218938883922223887073820268802602224948111989158342761579113738732179697721813726641205318826464739005860744898849734056240494163614364342698107575448841405401288958398184367520292161491756393835062209099833212807195894534612397199780832138172823035707781797890805090489212541690391881365356171339994313466312014714744897284607172568541819165398519021042640373362972798261331466111347804818969772074394603214376575906224800521340117197367376525674767188390700279673420502693358818323544581943096170328249121248812209551565779499775854465062911076783569086582770342882270651237203184745706583501362259674029112401531948474270315123635586945517023491055008431138561437931922029305147998449825851388819851243398563941370183886554454232942180880898522252944483111032300455191929855717973284694424678344313575787812189775504081252819614865568374043167855600660711526429028518393009972656883731960540874094556340964008769646758723888554964177571515991663460672940400611881709763138313489062239041031186746362898243627972780393419884356828059150667323182970328411493445163459081723241657339095372386343893853185154018381896742796059202178011548082570194773339595867379313801784545069612331725097317525558328782629382884000764630679602801230652446053867239087449876296742611125146325349567947396431150831470851072607177624340491539331513561694309150000786509750452389074621429624707644466004263172619226193672282321005893831742058586062971304464397907525069161830595586717612085541855623309470804111202400998230458040014534699349673005858976971090409867170588204991068102453747124385786174502271177633747491954849070109795606083515061096510859100532636091825778845104373807522872802835802153415587999321187262090969550439323341677049301538627605523654392802549820391606636138749408164501179235824677889335271692000832846092406054441626755679782043131478111731563476955053706869604911128193759798142619703978276186884100001778325977693728134832337895894679302155505603372277953395088165862253809946123762503336999277015467123549514733481226802584728811819963246962817839120484067207301176895995537074152480386262006456070020631645446231624962497546898682644773137177425322806627738072921310322792928896661223626405708164366506858396531014073085249117098029185975255687933918714439027380257052197042381678336957283104802996049027623153162378555010105147954748492791389389914708489289807589082683494876534241737800136091257292052476590870831883509125290475219996891865320178492395359713565068547887069378139951191956207796399820901843103274265756632173107311224557836849716377444484266412793088770748364049021904713256806493742707293451269078475022055418259637171073553274318471513688742606294846024806349792935852708138993083437096001136402696682066729338665416215748999978144932277238375903329659560270364385323882071860637177011030842373911032020112690327947044588304728032883372621674055669303074341162993377491594861524282873859925916097374613305484728015867533976378520946758732344379001371996848150602513134902480221753865948046770672635775835064302227338997960712855105510544781307980349713930640929015655275839973819252711671386654048977183208152757148024916664119049806566390100717291776233578378495100353147392021401497249346555956506149095290456203595119640992830716852677753920777356472762773081233334412899047986711171493125362057781046602051945804197003269845257979937413520915246334085121025721243896888330182747903993232617100132297776525668915399327752768865587930604314368986131703915289160277358437893477102435294996502043901177222937072732709202993618165748538216338044145500696932888723844847000682237195433360249360189008137560643869956794570736109372958130969795509813643109989648040387423685411362419711598826701249259746415863185776232101163342805411539039277840414281439126361827767256377995811996668790122037581263780852933824091604899577046578397877751515745322409398646399421515401468598684228325809187866180490089818707441937262359026469372394035622818953616597102785871721063938079879190836919157527747457771201333342343150906678302903320966665639633127580299229977485026925324970130231148334643914621771735505212983625986709833691104737808854329759068109801275755825607046806116794116715542886827665634502024064196403916501093648495845237197045753105812628655500602494971501944066980217492036681806508852548540210093122790780816345554638356222785742241340997938213289723334352182443263002656958420717541134090876534047466402596398072449926114791682674897210304263463733059184096290772726799039272334912583691371796264636623515349362388390921088073944079837223660037437854309463932145150811743954644724191235611453101227203307858434337289885689105188063017796327700979860231558420848332280014468344016886357718976644722312786548550807655254317940542155095201373350886717282174620411385248333872661067127746838380425231930266774945587088686504245658842723952858092911461949796338374941202835054930222948925366280971173843551834283387038755038297108226748820343910054331976654525584922148193542865963172832159341335620437793322252471075573856232567391683452639573685261974662381449409197457117684858229885456274490919978764127656191520574269107069023414343393545931422263470380064937571086337423536268221146013853725859132993243485809379800099472915622536479368566508236199779530711999992924902891562631225186122102492813809681008346065853096924440479395758589051687425098665637697708617011714976416746936416970130219908737506024982463569395230712098072736058368539902368107679819996740272847874393088236929890635197825809548859722573657776522141438452520170981133669083267327017502896091590610424536671939716179590850361528987066327894257092442405349711190190914318054832963161798016082809444452994487950993933046999404095025871339683006871604082229398279219230024807552346113379972060385241024383461897544481425682331875495200031177752197737371902924226215800625389459786237261949352787426477558152602498255086541968255924505679362615851474442834940135559949042771500950710303715084659991005442300919728248729493781325476096415846807294283640202040915472441508613922768043332781156131293740822311664730776161727869388561871781560917945452280238871146796328065720279460040483329318435071205457925924248331859934898877170944368710099582881007631516925287654864378596271954843712406999759648908311864100556564841502319092042962577577653990978677043832260640647421269269300426522549644797544505742422230872196898780614844574349590543238737348870143459213211349669438279928579749556882887424814797680620150708747461850741877976857839946299470274830225710307612722293553855877865516229523041842974324759242013934798101300922983367060178710857030779824070057399427457883240684294783561200604958224792016810137997390425635639235963276253071010399614689540420703575645006245292044767009243488004022786780276015028049756271659646152051358385275831121834183482047398852409268924679634122148884040098504227272530957516174233635481530998229987433706018181655771783635853660590157356557842964068718759266483921799847394524920014431403087594429320107374589598274311267746313644510786883122804462147277216891386311549048607302136644096930343799560717146180584032003390945201852808496129811803556549191174817551757093147288869870397718124497623544954070793501249067239585003084092526948472264214023141058621859782961061268936049525517370903227497890513742727892306438078780692198375802258481200690179198878054815751613129325013839088996668106674710208700133339570597517316840813311455462425957406399623193089130136904788765484147757990680662753613594278851446601815533958800787252221260361021881008164448533582469219996258023278762231620060093773632258109229791253768486589907064274198950036528874132637444585051359865385112745254924263930834492689869208018361181614836902861737450560838988011330597109525957503404980116409633353773313918005817424016891010963332506764295807317439725962090869070457042869111586784618386476446168311711133235458559214673142359776314657612756464332854002312599380909997503123836034645579858781916641420805093896908098655584031233739506297648271858169594952766869280388723692185001945634197402458605241815199975624196056724031529478412492725285338241728395373122746518178811641619563772049234828891423059163386931502732551151058276341241467992595741701855991264255962524848898397005629448244436285458473134218673454111745177376458281708633971281211224360648239759236280018029251329957873428750480944727677206594939812354400555506547549251305372677645720649972620931712397303028798102536765981705754305967728525872109637157004446314035727617801396159410307632274204357089014848534867759354710554295848976382206879435550815673852521208055539235577475024298152889940493370145491496580880845408400966040925279631712642468510153043599651189499473675186326571966665234160902471582317739244546603840156208646001630113604031845880461845146182704628544099478037596156803256833698068517672280071945849747039008083772183193300314829607328571559889698999586299488687340490460568571860176693084824097698732863495366182570122885773771181430244905396013064660583950450444896747888664397195775593492032607922921624819509722890710189654951493197921965437841733916924702980021550757316893905006387478902515837258092981664508986579426507151703798932527946249413721917836448848132493306212471676909463702317362838271822898627349590104014260195590326765170514626835714332671007507681803180463871380327753757514005497455557769260308132437197691032300757859808871030041536151840121893218818475291632277270497576214947241170012159957454466074171293672682832633496897287621031662125113140948276438979047801779611119868352416929341356338484786904291102483485592003887733667066482509774263969761563367586674409371749271492409487211186950275623326898151794797748383037771414520853765806555663858597892651203856983706987480438043703413996015343705243001008184670219484398779835054366785862436256449466879706545273441941130291339527863317536257484445394844515791952347709464041701167456469118050844626115083877069649549305275112481052308430098145038983430017243614256675935640286490368568864969471393460734170894169801038177481565838906900738294388841940409808210658625051452519082882371436499154677422379653100372752623514717935051528843342213482174189979338164097919284846595899600090742621868795690443772242512600588116207196250964129309888711089032905079431592428952268085991541535353872761955463124636007186765589567013067070630361852866231420602678529113704588509494094825946201037657408095110412439683618920666263447183391179288841400136683529095380390751661936914835122514435964754136095083661255785820665407644350052505617016424577367003308729929460214698390109832504921416063742417092750559882571716096743930221560750882975908224975908190374561363262654309978118783600995365212132155198323113128101483664851271847910806351583015276816495144133214850706678881873305084922246798741504633680037425573545894442435102616632852755941868638095520552135341919521830808602610203347232627543393525963852850124687497244936821663511873117539005983148382463878341106009606233897384654570315847753314342634152868380878656793953725606288199526342900678136863484641852662895047491451398723036177158126605701190052960228536715396363064915901619287237941054656582537984996622336500467525429173060450998046667534313833975711170178878704178684716135472769442048398054860003759211518812709500553549870561518580164616029701779241953931028233890669352827751165722564959592040212383125405374984607834842549216519888544278423986219777749952930139779617987273255801541396111184218250729602458169279630075557406745202071017452771813332814878840157272198525271888002957798148215147763806253792474283850136095769660675351264299692661748328478719627703710468259728433112103158488835879747914015378917092011514601264539794451520353249310930342348559230906659267714114343852918769255725942094260879049332135334631435518349435282878960992573928152605567151236275843996564331114541529217514079700739342523801286247839139226988007302202604505330899646990644104623614979699336570988552899890404636922870239135895469441997099166953274099771335412702048450356236856958812529456683713898146374057223516347757957662442539630799008874359196992292254811907736540148120770801059806058831862782708367943329102587546209561050884623645680588209928496692409245185963938386926347477291879967793004790434032246636218024320225113409985979405833665497142672435865675090455074631071586486304421362666269916290915103716124248444007177529352781633908542703340430593382155144117965538625577205871599042196063754028841497971839628110238180215549515226593396981271638866154194025946564019189907506248588533911750391385612956009307260089076727356870339792150787954972805485424121729587175704710499707530754098261316113975838822250336099880320915105692365144408232993319773598124378178457682655564826435716627201017873549529521355707029829285226470457617793289609830539097952621912512606789864796136912534143133890956782820311534859053279901865623868931422717221321821579590854957380226945680114181015147283064903831829352193307790003088658650449689823655024196845959726181462363872983460075374438377071475957323857056190631568565597961040175044900836668399038473881878550773182050656063505807425753032922746624644365336310352332161724184036403263864875630729726051546873202322398104283491991300991593265564395067766780634567345209232236641711127144160292409979155045516442201236256165418547392892763617062824684223600963769167352187436972357189674623821159575979513661657609163444648364796488370776565560983312366457373020666731573439189120396754991961518286600668722528562117211734398409221794777888604391834190968717725959174441709058475258292764890822800041917098153282172353337161859671844818909458967185383547475258850386032284400201046312092478000791868550124934893962720655110530587226567446390282265172529409866363995219774699909613000822729013578437852851067759984684451961969907441424896898908772625164990419864856295478415185070034613455224775288882544073715276383306604782829128341023556110746808963925538652062900224684929478872202422446372564199629902120666826293770475072457279708237237442193467771711666673881833113704232095870355729016523500843978023421264861714258683705738230631077289158107752599822734612590668934217153208777807548814822785195425779031563399346151316526913077287615956080393744134034198689487410669730011954427463313931044959078067368550597347224826826009521341689940313751811123067521560120023143800879558435543303908301586106899028088962063885554589467449304923454398847260055259604382567831662175479134362128401529909845279378926804823949215025112644159515516045641364366483852001222373140234762362926322320277727981257682820027019136704682804147389156453660386437757916720114193214208623237730131216160925882117951978982507985756481507279884138677723533320638204924393484306670275878435495552030567464765272190776789158973292555859860330486595012189709456630809989648980215414540487051043385130469615847975936075553063636314806297164022223735732218474934636649047855795968536301956433742218568168060711325932057369399624497586878105855017542406368530643619928600160204409468039331092541838948128998969550315703389274079217857536097135301131219513859783172422522022801408598126299643998669090941004649148433242115193883541652362273810396061895466328462249673086054073458203589557371244991685223535620001297265590213606085739249429344001726182178564843031680415972170221829569133517306284424155312013508274134445892061872491607494761734799410697202405273082127140202254969499028817406074782003739772389103304076428996839879127781338778406880925680546740433085342536143974156672970886423622252354558741310180302456747105915474051279004329524882618764487323351340314455863174952316426155041496542133363416237158763007373423813710010400439024470252677306373569076547251251135463199263661901237721697056518364179939592509122169753826855952554120715151689340528503105197867549194201725419191235625130978816242065977776506485058816639212999156493490344908260279850544947014686140968683984415739456098547430327233895848252960412563593079162963292990954400802817159856749707448046763822831581785185069427557380608995061846459709440944950843514658112179114602679727229986973431810684090437687640456700241871916089665341749738725818118121860080629880961716067480832107769847674973207715036633624681175252507885917024860336706367491832445113804252920218902195967078380863859104332030318856841451539743974955092521630180578456586216566442019303999380576918427800840485891285482398098633281145949536075255208253402923055246984939801199159208838534812574432895004462470799376880682341476559748120003614394239045345094684314927681211658057395691218445591365206390241087951014746490159645779139101711649194809594769341616167351072450774488320495880674241949861293738778868423348093575834674160385757225904822743954469203895688600077458499945204920622053896885303236225638077875577104715730977634310031776293254224593682837120044933254506975209772618613061099587393745409343816998412392847477842989347559714789840753429750117973808130829778107147716606829702971196428146332219137333412936368779986015176975901625028141353202485401383484906254469582414081566011593774589345269494026029073979087478627729777398215581833827658650753122953820952633974331451014201255722993272367816473777899366269647872524756166576829563793677895326102115408226958855366418394372371270454221486642950099014182539676977287353738161671586394018111499595199661119413593731929624543123517363155088994242916725824980464865116026182171469884003004621723453319626702347127880738893612371227307295962854057240487922743369161901639333759492438640862053717758380019676937583697724435033404404902818905705885222975401130509184869007667153555572441848078459443296495874306477526803207870658310763255140495633443356657963642960879453491784269203985833266861329762994891543310573760137950965031760184811818050851204976787812268781925657655200681365299398132864174857419498440627135563938865326573474348761822309109339654831758561349106222733809343784981688853630682684607832645650037876967871972463002242735505248314817450772498703997194983165640305902392522386125314211706378892828498288514656753404189550062166127578060739380731198886700126565872009889993886005495990730301309813556598016967965423697103492488064087094461682768751289297922251785216742062717012643935793142093601046048167900763505300970907905118436327693788244808207443739645151231921801966968076316952444433278819994055896963406989480319264763370170094511806414116098831758064540675534965209825138328231007686136940755068577889148519522625990022373045232640199601204749341939176025617590186952741908074748698744635379981188901943079674095821828720958114819885687943430464291298635845134246087666053045713680505421175633475412662002416668156819290425983907390208576077896516652648755174025685291321110132708759464178951518629518908380702160787184259498626808579799567647624238726574304083352396978496096299208141176878076734439791398151766341874606248682776073635963027955196055739574473493607718225481415484809848471893512269945802131443235497635945877911375388636128241118596821862134517291036254295376380311219215049067025556282625300481255855565409412524831456936383303124517249136700950153412443794624299234004496550686618607959492059910739862100769263637191969810823016073067153568747101715115015997344956269485830172089450084262368110124044875817644877044841519153964758062121825305062168970459458877755687480717600465441832269037306359484337357829566982521386317419325588326065336343436890002182709880823888129666316148907989903840156752659211898059070119662278266399341242431805814233905168192889739344053959278133775204323429296921062331768949236194017076433233716873121946777413047901273168512436844737083010711968500766786774805961136069635225057512149916120178683849597525281525084181254352232209543581521609144132687528800818043969413619899194649840200370557406912460517251404667239618092022755772574069465093069258660759839038508959449897726224256381681358970190081962459669970497380775874247514533026843705870770606701706513015787927736122036936512634412317354217687402536819580879555169970166630717849816987418361418445781102830639526228017172526467238913450720461980798485253403640892469879462461858970992956325322770686405302757638299004965799549566879476923225899160109855323783809785969190610764070594996106601479075219433724224913490071849420896610274681097857071888387832123122099222103272338572028143803427936002903155636274338006245170506578514374204702880742951534402006344774136349509316480151591162346993110502032058803145594786132377931219855134302239166183462166446830204743003706696531615787427455850316392319255570393600354171948743516596141694927845515934629081665999329222459304029258439864363109721965234541108794761449872361352897057671274458384289785890410693434490898454310764991787070271384675583759901747579974059252426804233250285004521211322349882397467458916379896012649321301533011541078031942462959836558528639763444087960926003842452441587443927565283087319069932942793319203413585640549987939358372979723787840332017667885224682674258905512673083566105964895190068403361522787242396069259713682307129150286211844033760105186899752436942025642107276674510426969697586449083021941039992925368534397627531745316635355047184316371376388653175354275684549357238507525736250657737333443747951323453359263894801126784675811775333654284900800630750081911909678524559992256297473194320881473872691193730044864241392939452255662331988146990487984750153317128640094625055710580273093339917953738997594912256219901188555722236942826260128442142714741342121946805273220841995013497092032994062573886369445401612557010949153697439811690887660851632972385810604715622414388291778245965309600484241123395454306526537679585841370467995645846733101393083168841427416578189416215314351670905366427295871088900077253486194802630557950804563584627957401765808846499395500629669768516836506783825363981199524108131400495622674817755228640318738763362927415299583941712433572192930291582024767467583686540611067451469314845926011875761240421763229164599320023224845845377055839784827085311697713800624966235196909116585330925671625702467728784048638064609122466488262497921983019618896428364559476872907950014698400643794481083129221037704435418456254977203113276139076562689719795547473359710809244804292408829632354586931638478311866849210040569678992291917855324145976989551440027629462803861620912984130884450828713624958535874072451097662021780668707536716958661181386774980143790903751089339360909791516918580246867427215042391959627448269088784133124240284772293226009957182729134486888190462312032100945260448732619607885207947089182278190357967934827152927234769729303886137035011722066038767193769899415146851836635689847079870776029651527111524761561598640958435876966288763639745796369286002874384637088219770513174642274054907908349716615362672110934604809458156145479214408195708489148608031366124630961114984717647908273237854532990551151400170605924963184561866457543474341488370013732152412266103754951877451795758171120166070907061306849634523590840803627171861999249846500113917047724495261714477369188253486015761441313415591938342428098902431375692707312630479980947476356129813864728277830205666644471852680023236080797680950930561664671561571700623764514621278601218839080607115960791610901178057100406612144238045485239254992977740984368119283300797371977778051055468678153731526577680233342785213477874378337000447813659859146726144288976379309620232410187939409719259164172296449272235683952918271796543701847247041680202824060096051905828513635853016792668101392921163864555560762414221888163118296685522519296955379409647306189448435972841131975885947815470762925827612274374084856968033223854338873546215904552504770549073514138671555937437492891248164319258932281029692062140690994453242964425999834417274223849119649915693411881546340450428596262414183107167925676237974481973086456329257675815332764830808067137307218773655803205055979727703938019342485228341361166072475344480456181425654136687361978381597965460043615431100146014996145799532767202242535679173042524478935632244960163238996140323421439197740341386763796264223956320156581257892886345449614443793958401262997042314882742773066332928204766875029054737310886036332118420527786308435150950353620850310859351744901609659379426674808802916725686081601117489748630080210422210220064709088535879685165154604263124701609953043293426963107649655038125767971133879109572539167382285086103160996317015334406044713360663541596181216184695448546846177260608369325342523342841325082036592738480937581223123527229659815324461114694074143182436389745671121789539820551597691735868528281691598869216629521304804887129336944068266391952838567924990558119462811400522943693703073668865315147057078584634231586684629532854724131040526925821135387472804266439454613732586451012454711597322391921844482886281475574492507256706358890061942189478044817654291343808116418778944698608327924403279327209521608301994919787162920167426918529567559876894902086695630356545423729562046513697819488656475805222938539474093406519921415272542979820369991420459233292482186271749235301072630481267558509654958746746703969239232509389822404214856757706723636735498526878389871724634700635036366011534358303997560573808252301160344787032073802861295901793957972593622049688257346924461852164673238073762206250079347643173727874121851068749375881841726912127041908510611695633785536133334136489134407575666695398649035058733894740022102606107795028406503839610750971724532690707622612487848108676760815454452289556209845181559221051992820448332620095764153057757755757442490513387110958856801488120045768224901280782405751022454282288829715866818023414689210138090180961092394034178275420929634286839528653001323789610092172519171037353319013812269610787848033720551524646465061079008560194229415411870263418454025072762937717605320252876240604773784500532307816795902136278044677450126113818013619774318982649036746559035513456389598218552932664897034732561318927377951950890211237032971625907900502082067211347196113897162956911499594125577290882398378285096773395480297527106819390136009674504277395047392127586323647921680034273198945412202288815674349004227106271835535989953101240700250300198738904261376930431770583467750292037563081028926546630147456407204818910829995903992839258554856794352650874137443873837250470639622302505716725675505141427444361638038376869989053312336566367372643715086234684400253670115746274930708498339448723101249674385857224724431514916900208219084938458482694739396965730931182910929149812046708269894976682369587491677090388378259651445246904529814165065449439215492697704207675519996708518807414146594327322117461492637220267769047975742986216023053365147536659779884883046884964375491483200777165413935629115283540410618802773906452228411770180819969951936866913829439373123182679170551230983876351814172857849058340832157354454543797726697250103338157770680610329439032842921842492355223274729336754819749195858693511408476840277799079936117663291669408336004155661048916527376336577475891501658807728662827668704967861760337066889883240181419656015837275923940523973665330301823842527821404397301028648320406596540973580513842792961167358696773287004245539269933642180539989147635312752615591738479503983094889129640711803627138596880351902660314844984949627934768939278887593689465855688823549797167337342822167161383267917149696773236227471663590038080660674595953970947252133053376386998388482178484271184260333571762803455435309889278172709324955165035376375131099853485927977604247598498011818106773006792530720979620171924111295827328909189773164911551954318237300494021436626981027041983496513876822664650087911144884332534380108206996681198525285955103768332726848992862848894365662267677459928830169616753969745253276613239052560812344041676609412155487566808659820741579307781157958986463193513204233785686007405688730238960737297680315283265568736814920401028518123567800696085628563625660198330465322908539173320767933126042719280911644067280102933624404155922939117929551441400889334136635938958291759645537761236536912335890034100300129062512710164932259756378165842507545577067980215320956059429196676349089484839334401573008698453754945505869771281838718925578465812395280874524618072215066856554691018192245482066502524882556881114892955563978417241182772564404744806565627852492811112878150858095015571812033516218252994048498497023772934257353213988380203147613220393593637838698935239579953010083031809354969768746333219914133844471174793039622953399849866151499788106200876228616838998841658448758888548921012224167346103766654939074214058026623175797287150482661142460116300918611165723037539745996057067775603155115690297177006579900505444555856583457516455334497304674396331411539420762300076242532510368567118097279227009807580720486933745199607585825164099904608037099357001259694846690221279556914899975774548189191334386827500029616555883017280861415478815687215864999380407072561184749614686168264285963623145923445147746263447672001616517070894357565394817396881026230663289129605470391365516671519956631352305927732636699726627224090579339139786999061764865253915996870229899571106677648185532599586721056890265799462158703547514213028542346964037529854190632385745072697561336189345240659932119189888995901103150723045753949986139036810527362709892595911119358375534028437281227411809834214023354838013467335678114851425404936166234610807944808045335624548334959174463195707605577367701064421781520790376063182631923197659290031372785787717151129870640754415079021789537053706511626702448286420731827841594265214347685271018603114370378245836000919000554195393105595396464576355644671248039123337910174237692611096546872867928516655409921218332254852338398994178813321972462454550835738150099643849025105910359819650861131457320896011385377070399395956740661875672381851549585993737382427160944737012761795016091071195233384259335464905656553524470316640482883148355953087675175063085826518146933058960654522253147903780071033638839090504386901929492652296974279133319495359308303525693544294504094793501305550817069688975931208213486012185092751466885364465960262106679876039496565966254813107968830868924224051834453592751976647536759829080633275819181066421609021829736807916708420947287372379174646595932773473741157383277396951324476644958221598581701296512680898617961541995505550104250711237662669493909904889448735005876470046769620842932452153187566051585554943723559811953254712849585235338790992566889964450033343089008164942368677738950152150737818174010965636813471057211428021887777471554480062891677309901504278822421792973967017131049464261073336556181109767077385925834454747672513218939744659862096618988174909525488676771104325707430260817941705014729817143420800370428017828433680843009404436733889472220727085924975470932342987022133056062143410337333379003022064213751651043779608870669119886647750453310368309606661608349839066107380000313713294509794715266169992475639120569317307002347108318819102753129167443410511561901235313523517864489432588210323126463363961208992408795042135560626870780554696235891197215599763989049880887126610607265778886536409179266765048396877673497021862724009933737470467828038399173024771682987936874639986655865169784888089913536942305399493645051466206053823839864211607522516373134809485119780223790154064580196508156638831379822792304947094015059314552618835365642805460837079505850745457645022229590114886333560515012516843652232551563863236722234957163082156965197843271622016765015893528835398544659881344032355018362385325346201386128019298984092028161430040770058419222607322201645097586627100773792483581098581178490011569652828098516369008415052670457730679312568949792733348909747189046114302419953688037569650837721921299912754490935157265053850896859811729225225070503364160082790552594994812583577742731901487514253743485770972650081802641676099922988247782680380877282094910442924799708853115407879038479070428004231432620899620418038770714995615967424008367244062712936980827975521624136573535836471937633448990279333218015842756249985014572268722047279207782979998060649877260197520107428066120390556188393756040960895623478511099955013018784496377963839750413217415369110190543542693174445445295764103802110273761965356594514529784494358216272853327638732835100560471057525213238552299085032147344103432992612493469510794934498913567624218628190851910342613197485137724576357589627424589804656365471497004942518257095667406548290922319526622704552726527427297326895806743887930493978762981525319359314438142651018709318977078403325539127567787442780063947255148060106929434430727623358959068583838319393478780417028371183026835793396255113896199418128149773317291941837162818312520502260392267510342611782816840621259639143432807366936626905215793870070599029488934110263121756593289432644610810705561456685088379423853007537701302163977768865429578369488836239287299765405850620091065488876395037243071999664231090164243531319317214382126505612997467313700416219879036082767241531224081126000124277906827155324193158900555384933415866728140614107207826469598801565877275673120828583381214305741113285787480728887238821263457783091199106088313895583173474764326013395724161121670954198156751333126620953952447303816608631269137491283444982427526239409932455285607267409317576270565269564712261886286588270011686174999222868238504450563589962372411453914271743206499223639334023715613735206399938881555604712148346832608276281456579979808358626526587370298492173017220324434192617592134320398714262460155119579278913423904882786952995432242628125606811526901331048322078669702827274218544385499899509970589321682584791713532636435898219736794459584639781178060267923774733119779810652509134992006517838088796696957129499804405973042243349734839793401444559181820265685937120231885846113043390147059717735909753130885739399667988059191855384162804364600291736073153296676633553424228022440248236425912463890378983087292323880020393856851581123932074572159074911117892703615203152097342654946663313330464617668358935405204438057044160615074500929557483507695155615136731749387215025548337821376912260317625405866642752142258584771377235422486311714632213880240252677334072460336721400836515477253752385470040111484205307001416771762883250786739217418868622724839276499691819636790917132808294361453274477209447686223050830619538653283022473739286060382013760990008904039390171592148305937901059591391197359398672292841299017955335067252017251431238944137564981437292819038457320511151517841334048576880093833634668719937894495199789405039441638568627680627708458629977572083814195757553461667021477806868342698464163135063471644660387203699878967786033560092083361598458921238308216439361734172786670050966646791740303171352012519839406253365054932661724576066969704639657562238478006422205367031145588680857597150861841654791628673827874816197989111799850434385081538735766799391711280161624252928669933284205422689182853250323874437354796429161675472722112889109576335280055630988811113235744864396768141125300823475000253154153300856471166767729090508689827004796386143633641630144539503375269819825096267398084211725881637787065238729725846695015478391000120223830724511367837800208721922745151713051075290839120028933452647195656379821664992333479484076914330335692306932739188285119862513325485617322899413859734256945649328246567474562882405024697358108598983990093276806905547813197592584030467236691624618658394486456064730390098593343776223100959347276970083783797948884741294431314066148718905014203100591939774699659067706564043499326601949372561790987372621804404318784234168462726390502179840057930991944390449827167614733320965174784806964877245826481382542726739696239886506714949831747653205436996969955463663593774412797036318783742371156308972526185935827588838398925134678548723262082210349870546404958566338949772826828432613457692674234189314000338699702933754082768338098110467486054464452899676355524103531752094893497409318240053009461047805327309544479060332119633770982451214838580950208446250469177248645196438677413526520085993583253138764142454750734927834962320433093616821836105167258553448237215416973950142038788385373405377347377441680301552978655169950932664356172848728716628080892546395824065244684750694660937431540100608744642817264334916486676535519381651029608548830530240790844481005040625844939680814408351723929866163468804815509829565822185017260930061093049486824244659581707244853549484050545517831899418710449835030984115134267495451455817062806353911136201740793926417408979995814348664144129596410494040702095907579875908625276408244023261384897935188315541296502203043866892868954048683738930930593504348235545061753100839875318260787612340138352628001859882216078346704498878854217752580885475483889971179143729856316601417047194843396595519105699271467184410922775168143140648478013019743465848847278419599415996957664033838025936999200635490937940974883598960356867471826511386756100644445636980084493122371400563885364486019828671761883109919239784031192864715330799611666467306188108049166526985076127531533596582340327420231122538086989273339515087531445452297323441665423345819153153146541169075491223801710426635748818630504891286877259918485894068391595945381720606021811897788788037378990135992862688869402263808193558335534690166326483402212160178595577863922417285999038491968865627117833342913919181409355108365245385863694861667366836518121360062499489843897440325636429050482621937381828000968513673718191934789136908595825646070128960961530975537340714831431712768806725354636254648882926226320391203998671664815098162523266847313489918261322396983637429891824420878612368667227726591066801998169494616446654275503634096603803384106752036230876021581060173551614519985313130419898131235981318563356242278280780565071044296106759307537982771524640548610034930928351632796598074042924413261787875691293393340849497846628138055910522773775873092858934339111927967661369052504461150535123988337939952173605016470642221316063713786674061395538618047289313832335320834153891994062236763965593639942733434645791254113643849241667187529569674698873184687704275828391218141592112463274283913566971636516461252084298489474059503282286641689944246467462833855150614578466483956133107215068457867235106428399980817269469753304303942295967710888525209635525473489813074748180342523497000385659125300677052262075864989721474384083707104678840531593697890548997623965424279423162263346324378751517716323112663181059238807017823654651247922909777451364179801321662576010046236033794936408670859316900220184697630504481903783317946794561327450482305457345747663733922501246427974154468199339104164128055827093334965463217476253755590642374080142598564541828243615832467874680725485696834269229422846835111946866539254000462458432168657445685479911297738656531695559419614902599218025684111199500169389941078393236453881889586332148756533030946191256702409459285087551592584863078142284289330467192172927667699525168818502570072915651292389570927094211189303391632195122385041848649576541514649841969237393685518950721482602054169426272178773163143771548831108106795561311465716952716070920343641558777602644094050921163458407845811375968606145950210652072801569632892824089648588445157815581504108191010768108568173026218347513209177314622447182695156126341567207680426198511515621814753481525299112894290778847049177014682643921516765779330773261065622790889978735007279952568638856217484670610115602908278499521226752779753816914699481640475993522384418181071045735521808119220963812925291337810842506136786454471696994286888094693610893784085480238647203050243906201321299540720283098283913406759284735117630814204365697662019878555243098909564588392587984242592212795866114417803048270301818874085473080053351858762152985321077156763114549014789482356158918747248367092387769310335709477299880710872247104187089716270346723152958191131288975939875002018445951081573343837900611627164206941529062654994624632947600840449918633872963294752083726299753918721320734218370819680275527829640041964037824347407804351723956090334047078231455704712726009810400681805152984525515516815063907749282658739996750181846727091717843273405882086547149007811933136652042238573393539760889073000634402678097299212363892325791144449021796641193572594442218941361634614122175222745595833697721897113595057421343728651077634651975142779780674361926737819720728120074774169088737298762571980507301105422879308829801674019143427799043888574638622135986656285975933685910715583580347056352667317851259361143694750988123268006580337107954802466370832244157087683391724857998469455177512340088506005570371882274590902857978474028096878856417902501495258876950317876332997211775174271044052242984738443638524559120031283377718110564834528498165976708823663463264531119837111352765114951309044817536539376624935618519023456728614104068977479934535306700818689012255640871902173700557967368684480380347429692955649728423676461823521818360211411834605622927916511582038350070319337549522045549384291982168220072929251981779848377140340396407469434691110078733581206734662480993088482848020852232433386809146978659307822552032700274793117625063221417865013984253041206297170699569592648186819289070595699601417124304897067730951632649854957690489547602445162841737031901259492283302395740659473844608630521464772764941439467791346706232259623396806597309236458665153775627628619600088354988209915784076005576578954203737160866345067648199867315664554774605990393677087958022175172708452517750476326473901346686041047557692276448193874803064396101002915524038065377617914467959984310186821450659798548102785771942141138122853130861704187430178350964198012899623691177457816161864506397594328588484951141226440351612623353175539308978154736184972384772856966032755603313757114299042465159746161671127930176784491174494199510919836347540335867298430397723094405888465142210374864672455990513695177062952254733197055806743725632212716471048650231762269252011842081960317260383104405964637786858134583675670117927568420197250779355757289552490762766702691174556841980361506227539805345103951309949807908269485684553208086914366393773180876479319699915160917514483679386158854823034229311820756358554318679771250554373098028272238346439236719683450949084302813107094910536751888494368853529739287549343302709865084621091602934555116795140299207710641850432904249293349794545512063929524266203792296898845537734587407391348613522193220726424556032495505491278216802902410740726754481914458236420688751037578133230619467779023818623076558573901866123728035096898562544161427419273905615115835472210405253406985588207546025163196936886554740868182833433227078898012397859048190428392607802933203522447232850155275008639498901392332729806054011651259867319503128814570758306229844200740872524554247009365937709166921708722661236074555026592494658868211520178325786045419878375230091093669514630359347487778769588113036567765027982811574543194850291795188457938201366054102201917441601757628435662726378934449958004772508094523311075941938421213656783156075180428571653452843631371538051987184469911568986183617251457293707864046289206355145996955519081357785508959688308035597313929214790556182302874327361916039313973192281479127893170910380499068027297926595994359527984240956502221939387786907721039230275373095873192289718598780881308185499649996777796153056804347921626770786643638109836112244812334040586165023858097055360814374721078038350117212703798532991345162403069721786091031882645989902510313011555695426229688924019121420512280500404461956812838530948691404717195310023896688666467289541053352596728339150265935620410757524064861542744309382756264028428950229178984907976374991869493638393827924699611008657049990836381260205359566519501477231058298677086756150082317713376372587809214461541906599666857750710066580143051919150131862954127867251705990992149338048992016030445903670217997392811958743555569630628127907491066482743856184506726913947832118131142881906045060756370648471878053520728150855374318959522483452679896336145022141046086249347326951048592869694385981725280169977491094865789188215063332606166790443728637373776255465167917742649046979267352836785455322590953476721925632534599651910768489859928404285604735059696538936526884746479772941325302104431889602310552043620419030624724911373968211837874223544195683694093939977387172796386170141230321899812716079382148152146002061842731589164289111995990077836057358378757775836922310003184347244874459721573155792221978707943834450556346046020889207193017898025074741236685525617784005497728389981144977064366216433596278653787825187138361152240543431601197927847663768155123080182717758866550670704030198318337979274284610756188075492848768980613214343368146992060765217445405753263125386178095056114657386146438789227143481347088248914874735760117369723571753613108329580380917021064030855740119062662709634430474010717717610073855980820949222075567042532659527921914624503925783250044665910036077210628010046990450839899443311874332253255622859259101904469553489380364283665080852383297550278326204203954711208558694237459203182992908432617289249605053251368911173326276634005040689568417509706319707242492690601549817150807084520728023027456938805034319338356049831000140799081895092836892484462353128008550357411498229330624627704937149086307231149464718902385141743585084690343959695718587208483142040283141260244434935518893340176696857128746994721542594331034194487088634944619476360090271069011140333890030954051129900974143276998312558559585814183632430650340129045708873815647825199388888912228302760895498555999789171374924911008865251714012916486970708081454977759837829430628346061321290628101556676435133100473959818601487855406633671507376790984937417592090600084388657655676402059117713369630155220973510653243682481131682746234699393487338157043341346596283310414115420064623552748215101188114312540091359556417460920480121196733578572881267993182949735409680307452023436571670363567885156138510832718400982253844731001130939410607693704308540102827016841894058911367446188631554061807144522509452404204390915592323608822008531050506359771352866417608030249985866668537545140348519732680335415707296525528426979851836352342749881569150023410997150794704890597522772381631644849594793721321119913098360213622372317212196895244270996868605704880538611766598325360386612636654835069241962643747214361114685859492910852801965524390192499884442204050072752789808019964763563275227678499840962247594544599548256873559010049790015579008308145986571225248407037414992719814294594037150240924051896776221267664571678009285389841557209500757309502980649494050806139202283445649502275909625090943825855587994951701038372158690549943222123565962919639257793555882559198083775472371877998972988410141716365897478973684029146780486574499249699534250440171867132174172152972681395155342319601195189562364709685827047591881687164449770129512220920188290387151132673763049693695920556449787612905862723962800376976652012439382530904711134296910349532303269655426380638614313930086513881736560548878374314782336536952580849119994450900922290200573602321704788622545866675090871817540823668214008794117298627785106691709117516827242960015709936596511771375817774468399388785902495852027126431778678107666206137585708951216388597278793087087828872622407465675909458956565436265012813003125088226370562450821869471934455113967296681583994789359650307033397188966655441965739423824251304922641311974228582042275824896552898555652022514978297651401212761317903773621255318949825694313269344947153353061664899195637433894362760226424184871152809311331215480259093843763261944492130346238656078050954205884818741333790250071889595397173016585054413032648810078157526238655245735682031441355299696380157719482398826611443883678884648735896992443551737499960221204078690274465783544525240765025557545731759752088602604569572018479058060813219614038014124859446474663759468455979734637113396480616968417359148054912245227846743636681239081991766318782573996793149821221367424582020994748135313734370374203700195734666466182578322593442170036275646975705130208698158203580949324357408642065173390481266013988949078759775981388512943676798417202438004139919701762449233760470172423891573505766353197720584291990189031702915316761690927351547326136519501132068467408045792242035721992143367438664562549917518119150952541923336182904746688486681071581747813430381303387818870129574873036802557000445842011744750302629271425116949442286322613958345324516087246212944342604910320013618167732383999380725133663514194576088307285565901431476400543585488606051685666867715374065825264801371349331910489420702150721982586645078614266492682016805355428407968371929763472581335709813591487387675363461767769841514165255659121312818780162606424213387818221192565500970609178211355395176436480563449522848575943193451968096940689655238414873616085151355862549706619355814018775540604795547887131501544151036436646347837035644019817326456020087566034419201441367123619519847576767737069281590263626058153220192798170155548158579545614023990164367058357913176124959725111256317750490941127674249433794606105056917104637026935488860710938310960058889469292778565335384793055767216665946573481499074905394399566001630917063524295910530487563517644413342425527362960040339927127362688030956044958201291082696490241639491167310469441980066775611552165739705730713721828780816554923949193460747888067400346953483688921591368987218282538658278506526817823236295999937756645566266764110196933448971056901070648518009996406027127963940646776015520325496332127101472396766522167209371259014053005448464336508971659805474120721872262684411814974622682190003045311721136738285135646453606685442647455889775365509982991691006478422562983769274133952086598974610654162996163819986562374965183868748298222608509236679043243212590262337515506379313258179878131840196861583159066612267135586402009045907437470280606328009394382230527354691051169762968824662108254762329501991728306595992629195116319104655289413548815240442514854662352880590735158040847572038830085877695080937862782497840127403656697815196501840645320422001474711018576493156261150437574090623218619423780973426903557415132324621823361905223236042892650580283586008192903866170030443931258830594919331445886213003399393507300941009436443987515419113255566591880265198561969072825481794503728128743072151792665259110855707086800909705272503251448124956148566393331652681184381736842265078811460340934197041439622521614838805011038042084237076807522397182014484865082436203438596313765673628787268180797273463763927789966201868689824966101068264068199246314823485999782925820870013047314765122740854545866743007627863120347971727943827718444525857246298560406222117337666353920808480664648950564545473221475163052912121526835994014564702908126110215217830411473971860313952749774891040797381078826346863205873310054580692045884991801455689557742714911799128484011499775101600074167054584863546471436279632812794718870332287458008798045485120317469447065946928649055831829938379862204814484026848020280212383454876313474242137888447548274229019436997714963981166617555537939152593612610427995200348985317873364127566817120434812976055961403918300231812348295054036563112675531644005534827501468733311259270937640488472398048215290734979895026496988800066127814231068985324046752214276896930893525570341478179581107003584112484933355887689101386291531730060187188230549302173900640267024347907802380044610406980959444704396866579157326058259802789341369079645276250853542705779453790631260961597333205647393002306125840216253454119995129682802816026437587744726989778455917328683538855948241044584691895742914584564513370252174288505793259881513630726450801945781746515493848658373447703242925666990829457716496620194995674567075451032100561939969423721827125156000605342592533687313521742508575259033580566766787006155740030235161316350228685572783288625497015137259383158451451493881762905295668316571361706800961604777708473716715989528711017663467254537273889553857202476951887145632499053298303350647267754469568602058713625458771667024620679667612453189013682090991925225505139458056041174283640894745124186303186767642192524237495488268088127437263898141580878070045320104365902309155494532655063085107657358079233476812598984379193095536961360256835584354843687210634325781972343068809817902675221410866411396169170249446226932132629561144220906090939972569850725841533790492264967807676252199808260069783983583595838943729361481437823386763531735992201297570712681047704959583556632447285454487343477842590014078648593193793655392497445225439393737428108165759686159686410521835784861762286386492320469967506948347984789839704874560517582546512888755104515548738405332807084143747446580885209000590980555250680509585108800807932317618623650757409243544369990863513835901909927904323120613914863685998813969139446564678563432585368642029910235393872963497572311628221606783831711791204099049920691814468275284875679713551437422715337924925640985672813415931853179750339972469590082319043247248366995223315203051914899008013720627048640624246461542635242510637054082482862829771381921739702688707607673916464489351430089144395135704787811988157517955070887304687776591676867969721045277741678476813383060791239131071349670037634494441840386728724090788087931994048598552591508758199041168463434465845157348654281591842027630912953085850413325416684692740313471225294304035895972344926358261110577791275882127734556944947290665473987373294129396939227349590181658714182833048422268306395299853159676774828951850007614500459586936977934690413912435236519022584113397837668538209715058595628579148725141884337127785738997681857835632878463729821456477781717577906847194193138349409113876253026382378114996613261582886339100728619588679657242341663571478752075501155988563068515582752326494904922372398245677457675462944014919647835013793423849263892110226220058480513443953800463408219016291548268796140827343105439478531204919152341616545140579263987544651339716707861716157980181987800877014305681042281166889678992593757848701060697881069416807407681885135515621062747150993244331066458381070168177702906196190305545040539052530145910276153642146021234451835721921777191262464202474812166778841048841705028456013344802700345544569107017304215003104160917484387907373174864694382942174094698981455332382801050047692941885544233950107077651364520479907945009607840812096134130250232597108259652001765730165961779964635996051045208333297525149346503817490357019196810324860010928012702350755320812244566706625527039441232367205015978862955779349447911674236394169405053583101408838843103498746410620527152214815502166943909158538844440768156580784209853210902257222212830357892591135984979128231507817334809609848225470784365290371385818019646058727295990893550621421120071112875807169357677791471750515915500103930943406478997568572428097277587969260830359524959215806370238419356428515413484941593910176125113819480445491193542938966830931220699249470759428865768299071599470392478343287639470343616299264931183310128267763218338145624582505429611864730185816094312499226338501766862233911722058309442832700859392164463240676140610085700197861715726827842257564147953167094148623711869237650095464140946930497530915777289018564983037237991842639433399138462936696415995878051543816228292840471470552409547979813672463143860514489368071639768368274556950932158141396872244694627151945143229886474051814314851727996155079585146653484732122774022427259843927381282703570909467923527197509814946112937454824792775239340438646015414314222176312824742826653684510996417035555280747892138794711496932209522009849681474244601902826666617638190673969679662376895371430291505986381817480195583997723349910281513263370589571052869153799893619189966605353817597273741612455712872029690706221584927148483201595954743575071383599387118659699159237889330145056196195096091869792104413064994699812276665205641072596667922557822148071517749771847123212473262297340768601557569135419208417768155042483665760369170392442606710880406164545975056368165657473909645658118101536181181434053391857162262065332546172934097838917585092302199868135753373014025407444095712088136481536020509338736515946499098908431374214926445109704156056144539445399772813863571040273947523703110681377202113098051729762670872533772971549040528555543027924151635291179634990892890054849463792854070918751702024008507810671822201674494961455013312474581043970957725061218084719893110864679812782698955316956848442433701656350186074188396259040654155618100049765912317980152198661926223370829533959542754360058860253185138537809845988140353861552248559017750960020428344560615855116431603690224619527649778442984247828545847361830539954445120675497076940120796948696802236036707435639014446158735447556917793682339982562131169421760033304892095382229759442822901986932250592231114726326157582999840111189491756165346957712369305922721919650370695779476367611774025524589563280400138924502813289902778408148621066307162063428268928997183210966061228451734622603288303864498605225606952693855878009650093382379257479112944596682164599846032918311794649444282320432136907800713456277589848331124195703442326892858719990857629975081695803954712076266052098511140635887444464720387713247577572298442674746814035921186921538513595858280648729650115854662589660287798064114050547154512768988129876043513589492727020215874059054619111338614831707752799146809310129748970976445020021619197138999992868715097340266191046817690424163893110671645202902460669998720123123726975033260147136779171549773669390993601988299937622652743504333389536907760243882565756662110907868483269528507504879648460187471253751749648615146129571437106052973648941985169283490080628957720819261983732114173170286597279958213977033037893204749807606222079440297444236206189371012612142134350785644844830757638967369895721473811434534883170725384172007292912896907201098395059845328064075923343933180486857774924427583045273687489422914239630336840816643478538312055968564610659822168804983664590092420416965811683643433807262587675869786479634206772547059140445998185663509527996354115355288988024108035279908392294418034374140615929504286046399946822952343888380151535192665060524877185933234815793855466069377575131520716871140437445164612993018590451149501983504930265511231093102850217522620891430672023158007080184339436589035978639708205139908733787437838876439823528944069726820679774709964254984518018006383375873350196884735807688862936047931949899654399408033585859135096210685170366918051500256452199817260330692717594290614043714998921809586989637055355285691763403663100506138824224590562218175386795228266590805416909495022401235742167558092586507370776374260661749973357968234719062273274972644126642400841527251164495074650102248039861951765072642882493904809809170466402417240583568977143892166385893595621035130815233620696738792553933799798041319971171970540718752224619627423456406148835205330509150521915436058107069391690400421587914734165588932755521577152758133566638103725073009267135000015431273892584587752995165473508685506029226302549670030316513985584225659899149846943910114916888141596592941461721221246743396125168863324759693322766426886338474210577172898434238801709389248520672335405739603055072537826301067027297183073728728209725306076766125759856721290422603789606380865363176265526474248735586801650795542172368270172466713572736767558303428431593930038002330392850231311737091929312153242339995379442969860041595974901728578318924175058862268223694894549911840747855919350890025604671111486434930256161491828313315918348452441959831639386468755228023849829766147914601216147260627978373510256562457713794855801780768906837521794632401463154155777085091484601758121978036909572899364018322691483496408863368900943063084882834551268889906931744961054749371999846537680058403689175359262250870149339729472209727487965795422466092028890468770413887671555444033901758291416362388890212163954100316336756409157324829993792657898186295139952311803438894757424084903295333083915362064531511369556589482935003130800986078010497570323136981605210004483564333383096144058354478618538792843164671968761004949235364400069715825746442551226962238122843531361449692454836007041920469654101465551940773161543861342934849427604358271800624732785857194718314903989597510763132986242919731192686501511161941349670991856130483422791169437857615230042612445398681420584929304506434979159662755374462720512008632725014851743401736068732971690106655314687372728787648079575490895610194456710939875808432980928478805555608904660286161821635817765118168312996572415137388979449575532459777958406503476505631355642153096438983511981920848350713368467920763694494749078627427839735455538177087287217497476144698742320620105385835902763927597187550354381645315658559195871966181848250803551929755546495135091577452326490162483830622327648185803791848192088438608952368735301141154814124953354700732302548819054497767125561214864331493086532447535298635382851502557600526071195436301964492582014746082606110118706652206778953994921820366062330825007272219151132592309280270279997510264923088692220198210480483058512611776377822105239774145121839723416037571678647913742495502182164660040271057936336744454306815273749130192293494841207223944716407302651163531303538470302245805485854346911339835255172774409813436107605608266035556084078307458684480287793776358913413576680859109105165926692384502985380678924220477403031890953973682900392738724503979710435460243057448535851670907876383331961274080060752714435109022633023919513523150453841266620636816378152720046019828818401387383789661366753842318246313041979504944057945956728327725721935378768438802160987841424571645948608815749725039815023882802941851846982950902825489007417789897519945885490596359296282257208456223494522985499742664457291969724410211794273860363208721006518507458635472929765131252416723219255894309213013226122863458259986380614426777667049171906663577448118883043544225199205372014942941323712147716266696973408974053561353327924440082496651407768094289868471689495667720927794824302178937289885637740827326904138659167504542416173345769631275646215444545241193697900921867293188725663648491857772630052533225641997659570670524720089716569177833087621915952393243821218322205673335839283127676322263497400954227390155924002692586927297602272007793479470341834134399335357712473735329932383808686092200354403687390864574753568386703036770791386577984084058786771622904325514986796029467812568126451158699945751043264932356282165655173951291205865301511646823674048432962887019099628623368325660581624653865470284171218040547054490340366635728314569412362347130860387811678369387142074669818938110778365760166015525752983222475527103605882217754120576052383370222655566174248620796549964960327986843568771219390072995453088488415823523769622831553297077369117405411196015475601353970545703707763559971769786430397731646376822650752090107105806981744318931667322840486515077639810192134692979313606783283891660302924751326123185213186727634833636557384310654193618986006510597620465760979616182408274667871103938376766450327749242055713316607651234468194614128558562577923848710826113573510279944389844087081022456265705646372841555801308882688949273289048452884818360170765147910001104798407410661364753751738488280169371471937505547152329100693690134696790241228452913010129197582070879811523621549437139263634277580950328294865288609889763447716492136232227582647719643611109538073299658678343025160320335978069496301046245456962286889136726146996226935059265073330697126274306191833055726424335208574677935846761083202058044977979749123375134129077397260304604033175795495774033668607407013574447725396327212862535695149519081863266780505203648593849839278436196666627104995748548701034943659013803242277685571091148721189855478889479961607258583179088262202862674765326962046033328130178850786464134671566796601327159786050532017634823197875622069264728575346462072855620966722870024907359783664023916439698818920833874618187890076893572300381090713099017154361524788224743236110421405260500205510963626117999735531437318274377234285378320139004643010676555307212588013830855699038888658233912936862328676250998546728804382594615059794407574481377768226662557240270481115894472158430222336225727336133038023318921926630137115381338927307793287421419676666642700883295435217378151854266663923913741876202864324586062227598013773251364804737072521659603128505318871654943345081531098287866096463371890206966547393828768974411038607464560882075891365726268523490249670442624172428818455831015352900084956997537939928967378106220467800256598872864662612454403706571807296002974724147868913699701092638475372715061149943017566711453143721393848982790733923075639775079883589891113760020306471453013774280649252497278507259862584113319485890837751610473675132177792403824463978662964951270735996884395592881499231376141523950166743375452094930615205761627827586685133561473141438544043448872930117741410040922209922522154237071428576998929915780696605972956990300294162612062502351185761011579448146949296427347949227767163092067702302490388353857141813963905795657348551083672230227125702421859009733761471030812851695755361767486177125713276589599166704493221006824995857028572821867457529085356347857445942774773688608394736332008844174480507747871404696010570318187073123838024907620187207342937223378219513459490930835794421511117629794583311767404287672650877085288141937613112247130565071821415479738411848538103064599768373417922878313752218587747189950204671498306746607285339125826309730318603040965419649233101518606226300784268873703555009617963105275202063342290440578280693042133985418686788125228096244509475570299525576351899237314885104016824046838258358325338919755993880213251135805145456758187200364394654408495086674529813651002024018620319440231809721012342511403706451331835379446680894758401031724483276688716122771266696603279525311731445465837947817213228806295739527790405218492318571529067669218283577737941247254334407421705975769428863362345860846169198252373216638556417160508473177504431852935075710827226235298255336486673354373204589402160345528372679087613879659812528861933155105108865271058533984002504337575257827635922139218984383332061689499929092322641511725863233767195732395564797321769088926414136819811551375989410925544198218637314145005774431061852684672436254511172958275761215222187622987381063959051526677282126730695378188281234830637951678724194560440893790891574233011892775464051842390643411802891470113888272120190309829160395853279737195673572435240549625848246730383343945362483652070550520760153579448190718850818218207152640956055332915134508608508471891958844534690982610050160617862515029087216670573462667092084291166313970481477034647034428078018688615940008430291642383613882201422581646112028525228985439701787273620695486394393987017142837003576014874121202991555769044295857609390930655782301496745115888051214955677288806232416643014893552457279766072641721094853787103109302585815888175499520411320397192391381050772268937857029048148560950620391309373486984518895802708077546889084320223693836365564464311376063110788466957770204474926744394678929326823386607877849511845266697706573028291375327634466080867342260312697270259611875425329030628875186045955878289463181164792330114314105585658989604478363029882141178802276397379764478014363338052211377220854185291068685051442284302655862607454193210718566935448396756816872016426416698619045874810222411388904199457447428287106346885633578973235749518859794968762962221645422655879741532077505268571232934399554783726151431494966652769019356029020016425051118901856539112512258355391833523442565499924435977824064195915737634367285818012235902444843596739658089368143407206378428920419329840956949114623559301730823423726946519743338794574045004275574839459709848901213820326482525378486033165664568839821763975404903480393730127033476158862496893799398689106573278699686883234745251029486684064233740367420163425242837154800148526110451001917546904860367823390699819140543332601562827751472546511552150615598981790763948034814259767629925647084334994233818414436637687003273007440423642960777555821177262336521239952380504781167883938223669759973434836341473465586316579772024280492880054528214773153057176480328846058321813155079750100267548461780755113648109153987784937003704899795115088127863244986784775911245211563996600682445029009310553799020709796831380630983426964017275863451582615359777245064996496351374195654657526028573883299859988421416484262503299746830128443406621480362358427826220195994913799171734171940761400812978091934479670690750172810072809359182250913537307219114447842755464785416681598449069124212590434558397606201524946892221238720292589964135305159975406324514868250115836061423963416510614104138288947033018208465064321990152208104707762545682228226152669210453716681584667455594013356756489382092550879167738109116613698291113084778594113715466239632042770139604274483636490335333914962871788283944823434747221287497503500836596489304897800539009068166321184549716279821354898250012809318062331200246137601698294780648756962576425959032466453642217436607673817569869466861721149266813917660443782541553557613336959629770781386761042859441034785401577373208866087533428227223416542934313237462366319462437858267663361847154993928175341036597004151511897107362372595578836463293251729175875106800379899810459998394958216446605939089227882080230840061921572113928178275081690316213087203618982043378520286048494371118665350035204145676057445381283642852606223630547109429293476256669598089506100250465108050793694489807078941661126682794127333964936678810060144604119228307665455082006677046678245738902426287139320802212813669438933867536104146356704242092530844397249341419944667869706110951544442167278557360754131470684262341672304425317247963391997592990761737366673697720577123125897290081757207526035812699901979686516731801723223352840735730996590992000401159246740635441204273432963482434764725704412377578421544238536312777570095200408826889876931269472012148039072993174579490607638967254111720518466716452967949884136800113058242855902658800522035138922385950855621708113059600129032107060860325024949597445723632546305486002437923728751746512434038798187897984561500044302001003551078851297529427387682157506416998564032643624364181235033836847967125573287287170779814394941746692038626355213522013892359502209329720646077171189892457496331088325075738760637058562564820488249471441589706779743644851610619822170526413389052569574598184720987566710150145172272953370846290636973784993847398898219057222348019312918936090663967710061794827662595380924162526327456926808277844630090406476536781282913433369046971499852645881498984594815464142269882742750764451686017539936141063175571015668797091624947917785857902443437914509861600682969701204425373630030388593976588883641965406870183252157972912369381672154602793785251069831272644590468000293154801127439789773652056020522439785912667932138243562939136884895580888957936563055591894924600638022330845731893680279186603748374949353023589087459217930280403756400822620237180529818227615739501895397437341256789620224640200241947393697896642098077684933351712607720231179930069287951906600048611345240100575238534754041650552434493418218338207397188778360155469533025646000938148752875880118072811041955191614225955483800928871110397353502057325719522577750210539610358590402515227988249132616214800013480118960696710879901637689907244788122843760367382689457383552020127138842295422481020725122822607100220008573017018911890380388700523658050997148564227791822158420345852450380672511175763283635368891073960374482409509284801219444065051219493777359250316336305049860240212713874006288439168162957250552266909569828183173820099338379975724521369971729364439257873773077527492989617975467350585170469753292793650694360146968005207729165318602246035041794237057376408896235176090857253552104813684131307757377328201315003086967262241079933061165717854663556689937905948174257182812583234556298826806276275262073279576594864119630609986894279147262752238776630318652756426022292529093885538459074458535722400190876403487938165220182703937024193994006512416938045254952925500142514830752660150069389203111909147992749379336377239182894749328075091012683136789066253973465422336584149586951375861901080285441744870536817868072723472171729250095072492022453123255124438264819515025698050512025125008843703253960266411238828954333721465040232406941517263224118260058882315531033248236810885207023227649377578402544404702330839088464956476249561406561577026800974500403015631902236955804214579169486409929562003672329696451093539306615901138698405297406156237332794889383171115492554919317773303145709228475725160605446879364761377204573054459452806291422458602004345796130415444076473653952688903571559756319159087390062074641611269812135551184301269602792533443839507902547641056503249596268489551827336310439632103144133573580876524453589594573850671584524182807265684055387846259911054436587429231764029582169503055822206894033601463482754487025132905272544994601081209141278710426012790321904800586931823191047802296840912208251017076104007890675728888538943798790981654973947322445106523411845529897957663893501683316292064627314989299703557048633124775203305087155751211870021197181736222672661110446366101291796776456661196894660468300876633497222866067625489132805958196961734048762562143480311252023072584657760907498732689411364178339366556070989828820790791136551868996415477013947350791488698813200531403502108805180116364019320456242128513806688251039477963458857490674598474573328787437303087479870034042147886335271693068754835202807119155177745997967652153288641744831782341023575503008702035743190029667223134008299620531512030884000964025096657639381633050366545836840206543602424934968047556603311408142848545429372882564343711210013199501130322513037043897020825641718282987631567386284412948144167582471198311586398382248263046544191137807623588525213339516432812635592847799619678814282810076776301842544848761772057972988286838115771942674372653745181764039049926953763146228494899172104562906820966425184739015653187240465073272949760654877499151842974200425049828761314883996776008753454669228768399476893471538291804768045047402253229939296102531863079132080262402752195937523694623118002372829665390640449609312478771718503596478951428764061638535900891127589649289229400350739550614344104520876412001917955340336533777545500343450116585476972092572910712491528177516802282845179663939368578152512009282968460033200784836208052044405113231939239252030839008854313060471879537608234923869859379893308284077213596141763693290970723528183743101937630887623503338954948988324469350005478450397779955816211391839922396899356095472202750074648929049923339752724784689502319667022220507172288574865449963607416485978239453708427046584632615307077594487981882206655034432157010836875783818107433618332507678103518318601841954165720387397060400943924764249852455009846289864284098053719298341806271580230804517675693017326673971922278563840789127320481677869006587472767558843272578173220627368362659146216175708446774083095415890537515449649351376089343784743789605121254487477883110434884466815370130655279043355696901467630538205142325632339270848213352945685238758765341977455111130402767474034099961396278699697455999135623326198410301249777040482995423992622149002831674384366752544362129345384244720721998716204879759862342007988985067165841197547452001921622593461010415852668446187822053662692272814136938496083076434595439590674236093994994258875069481409884122031215366717462960753512458865874297067541379958935954602264005152013335812726560256829874767504203100122853841008846205745796360647871176323682412838085443104860041888424273130322106498753944993480371499232977742234608660881519625225237120295899192181841655963918882182884713040551809689919675094132516936441582085250110968275721980413250852912961957386740744128735617409951405380327769064376757379001979719018976883318190876454596456568304560097484094700280222035493013258215362044114839774559946058723784051027746840710343589548040240695910026261407212714397428094070847675809802151172184959446419016317160884930583979123058358248802162945978518447616879349303682128946878630550597304217381415333190118665547083571431922704993070718549593183969000438553261714389385096866798813692988292937880744493348740512334226581389962689771282824541264721983325870710394345032963780649764741283866703146684632957798255158031412084365875574897495378474304579242054377246365954731469068922952932046876606625763032193912429277409910516822211329633990657924668017399901633940216333903863086032784508631594846503665809974108956957190855405061418839310784669760296354924166991767313734319044551893712675225594760456433304398376576510388267175662145741637740542981193162747973326717672299511621773044447012112727998085084846477724174654587910756371532341532686481886967155036889978421531118113181981745905951752109193450874799302013054988918640089863251432685759470164678328360897979590933407472519621459061619377695636734252477001986851936925457799299449621806972211153184317996748070770070767056926867140044313437729633538880281292126560983585935113221570560317739421776384478236715355583108732057377800251210859742821328581767555101330739987124245625274980912385871625683618308502569054145220612342373758219450711022536583109379794082294786595504647204679955361864964771571769666026681799530624263612711337362267378349605719354586738181516738643871961890194198273360044855976782329062481887788167835467901700390197435563448111760050467662212636189905142242729522620292191334752538016387652017665211790201933819154034047529694728561532200691061405649235746817821049008653668739456058799293986471681440957906973714465034863557561826079972982121391811170788304856252744982469013364796799833947019425436951891499237707698032339193224539988471602351039186872643111625561402843446610164877101167279334562707533271586288309418331806183440299860392935975113336164630435665893688095216996774685899871627101566903916408436833144200647071774810784631013287283364019452863623019737786045871183084955660733055558342915372941883301848528343579729830674289785594068517172378705198544745981274570308840122426387075904173287867694698513546431277485096642238176438830521482733344823554471964952024804058519370989247710167950308436651430863703542419820236102051667091965233352516230156752440034317094938513821126386782404499339941772044720125258311000178787685435145430849266091799436251764526017497933987054989852481789929073699924470512808940323320353056932795484460459782034389101816139629814054642987548780230504189154591982106124253725472845443979764882601627231929579510214077387739531688963645736080748914266750529397252358899924161123581946397355530272183042084910888987575109654627210142256408376269433865718953811881636275500079451555182271779401460483265725222330648185108853879098337389450903569928471569250010346814181648096737548188043333352743441610662444862819302845890958055981854989168024641514689061826681727219140608932961327745387628332113608039288938380271037774647152613225269702091461502059236679054594580264207886857586171704409276101606243990811354552037255051340747481769209648199641306688107424396497978071754134949578353808841787329467489161422878266738375863941524484196283126449820170701185110596758905585619268101696981648965167251018280767354142345081660261831427604404844307607036698007222776775641095570597506866893750631463473250090862339979988305084814946052377800464565008454709676606767465579445995153087992168531024879012798178829629198753354865938012681236800277201542827737868826255172535506052128097010519869681549876591048938976652065458562036702219960784544971291220456757526519366148852242596800321892922794978588992034127056351346295525187120148183147928056231278164736492173034988113612959222803906256133324595156871971228596345096304334279905743831908590495385652177360236584821054959208527643493644291267300410636323899483424996433682473452790576586364271700349099544578304075403982519638156724474907848660036333228752008122821555336709907738661235820016294248327837291074369387854911003512755923781480816323035754312364224726103506501773737417829791381851092913021484509705713135204631758460322964819277334362816581587103527527448014414495426183094766992593373942725862612594840219218104645507078980298234079091071301863376075668311195837084979094577101642151920495376146153442276527699817851209667228086027110614088777056011911174684003409545233681487082856855156121124774443697267436937021814274967074610676804249505736633069477086164356276888191439266661918015114500222188558215815700553342825516926664835951073373659424886801867734491364493562713579022366344702993549596462146744560260542831446323488890976327766731995993514474194243105406931444711872319715238501387970310257001389514296338896608617696078102369941497239798135042237222829970636512844842561688795270352633483532097147491226402739060469090078548556088708550804116099605646442556691667838209601022999603873253133503669906101947662444269520672283227185596884140545078805932088623862088535615617779788644280095493265733722917766230229741817082670908640083890750820527254108943195249255668844105872260419375998804797707128456465321276364446063595645184589998692781402659932236139523139030382883211008469647290321104195889602160778582707685308580556492109451179183456236107013134526525320432076438620905659272273355208883436581177647408364043269083529171758581432910122888142429181944711051163847265982274030330159841848322285343720898904217712388150752632533912150667726763022384807277169517485776024395410303708706868460641499672429261939784550942223810875962332573855879314496546860953621898421709122237127563112350505202273732236185699589953660924304335992279123952291544385645471397377921338299601672317257275352553977082786992155243416446341082703494006430661038062196904782097755112641151028958420741278193231433332028638116053656273615492326651021639520612469428841278719573938555286675852693188058542947014698814584109804911593034349673205489137806422415290133162080558812546157844863210421999142223729662455085770747999488750205697391784889003649981859714599762105398709448981845679154663181006927999724272511806976435475904551023477752984622062099040427010036658522429481176252446170391880061934538423323109131314589208214734265951064465302524860764432390284002610944813296659847572387412436035471819628724553928588182442866562972953688132899200628277351526836514950496091708764169079053793003991078610957404791359665828469382412394905363556976204949228348840982857007922952216515513735609752662054426869622830590052671155984686140211839724457584910211953459003958502722886500517947863912472190552077455339304069324592375619343315186618609223556896285786525795071349576617862536063061779166338406920812172108746937155416572077061190511678252642506019859589846672875021091266986073218541544488970253583231041404105928667999288028068929158647192552278387627881338786930232354042495366838473007382202340186099585481905226533581014536846273980988671035934858551295405226759972471774391717838685855576225305965873594205199355691520248174335872604077740062101952948124558201643074098815812817653201721796116731326060053156485143148595922555646872883923427360259765514354608177301492955775515302430932462006861260776722990863840810464819603585674400668892143982325088557893399795298259267804577606189168662971942273296582521944307577899159078282157229839934234456747026427556190409218843311548474835965435942921430568164276300382496988454283562812050850270905508045027579229877731373018315062332306735100699655247429153896490782984491004904534865707571433333626811853766525813447146799336389386530579924929654874795176836549416194999186276526986686758266662271395605102071389531239369863614021051437470277369240012264072275049214603040606472297874828303999260443050601136746446768852439811211033884743867267760987195626489038085781752909180730937680827144217496242161677013805934236223922736492739953951988073736849019619740089192949822811074940777223432446544388311740594055375177690100805140600888401056585773445496575606622355079804928333712127824769123435909029369060031936329171670910781266050479259890571703133292999585037765703763213143463408707985588221678030895599398529634222066092454751589731933353941666518341432698080835684168385992511055309188833329079615454638013261993622863721760328760940813066997062156478699258595934832494219429504739938840516290170329107094240196748991078173178936355640944495851267476817637625916573234996193777732821148079741111626186091945980520695287490234465602093596415069514494247471086272534422611450493085753697623665861554038343874265754115446191434556322597128678337006243963074412863163246791420422539179714015626783796236677559658431517880551002472096733124979077535370503281136037666119612153871853231615933445847048023341692946601977544029610418071327717962755430431097577963252400735983301808901783951592483198806411361649032335389131542138623738273960186527591440894256136237463367137568201409201233388425660765658405107080687501518178279661885374284493840085213010944776507227982368800358146793213092937583847861330617979148416195236049596826388141096137085321356324182574446746913273083338646662316753983210643406518181013571088484975064547820434276566031174967489874722787708026302798689614736381255302206032286927134504949816396342067912961035840533133908385182110703669968815973763468409624348862927729846888607125169456440200372041912561459368417092000136303984216629740067981211284037113417504322534436869745752504886233992314213905381773689968845073600651559863427180521286451186172652689184679451025298524977488767711818231462213392380268699537310046215768695339293574105589940219766638648430660231659086737756131258961938834469985128404172017787380032775001764408116929842320882505091083035908926811627884184865911658145055205700019015340223554343856901627566202174071813022947168220640931150899737234083465277113803862864100880556768925188663502035951024312483092248008973088119077066794468249972141293200323947729624268926528455225762419604960967005445356281557813765624324433798872539598282064064974265409672563246084729976009681071447285724873693408332761462656721958839587989145814378879328036956945624525889146419002762160172878794674958025256921733407860817360037542015924696490352438901121900959223499133652885465489891896861073342373938316087095700032670519113301594527237473137157506995455452612693851149694836060450750122597469058862450638155595168563014509422800417130515870511144528023560017327958586457634684515849957048664694191271800540609102995985519897489911486560387365775146440750595327983343948150291638914010994983494536955376987104692480678907800057298841998615001538574854184392712263602593694143469868386116492488324843084797998850941252134590877613488000293609379209626385073288539636992113767941608089055764182741478245367650423550568226446669018662288662047955045384660850747954297261711171196991709247363507601191521878844696450945045370437784213972946957052495060213363855370095396410127182188732628851536806716429338216532452906173765056113689363894896349436629872286085225950281073983331857545840026766970500079476115637527279060352855088486699953761793713112977765221878435707906516520891577789149798424599273842440002566006278844040327401008753590120885270243086939714139316193541374874453678377535849505901733973183153850749894882621039609926475817659087404175068918341423841674522429666760115261216705615476309534320759527119668418023550736586062091150093064546351921365608973266935212966188864804580093358531345024051256738794682337516903740799186828477436263868339350783314343446514820648018035011517523289931902085554364572971434011396431635439304004628611601180003279692432262279275494713945859724064403285274205058786928965962099369936950142139946294505946741943073830086622282728462408999378239282985248517072010342513356835280273860829832155074039241239925450217516785582344969782969515536955728924467371998307164214643476880696462380149541904753263209382024068893054087316646499807525696745489771015791304833894349100309970478000144984161227330996866091925787295670021072857947825987737679148215716071098109888581825315910715272334139162469449454308302416775631415102568140638074698654837924677137569238681236644290279642233147582837586521234486258875623358608508600851217431652008150007052671597367408290926887590119538841075660150527528153348072888682530118617866903247938857339616673478066781713257142062645338927365752699523672539363155188960910806462681499474969990816181968748564898333494951574411029041619379566396088021986571311710384266014662192734912772127796755052997652163200205881334313339459815445432988408874513892933004523208548522670237159719361193875793363596793607978622994045438944441253648431687350986795917716988614248947136625208638713530002768156945031673449287477590126901789943527186516326898893153210110279664927524799914615388744665379345763462010423504973382152515644805589528738432072371213176546709211883205971624223947986071607073318036978602924648807263211035189770828034813397686180725244040748465558042621804185700065344699921335779262045700605986296549214849736192241594434422867773427932960500872777691480358880790076328364204182325338117102639414055038354489112979309185509002327481352974596266058812920272291414444772279639178447857334577216327615161934748302418970700226777034138879861598546538268726401771451639017474408585881083706617872511948889530866922917989465132568117127519769238521002605704326850382944213098153162154321695952078333806312921235204042422131884914749227462209678933058661728308756093305520059628959882298138167079475009554628196269727776661335993510702371619487605251371970564538821513879145198746491121339227958301049771931606637266056865301126744361311796469589377487123680845602248774451092036027126268507025299338048760362926873109796807302105389815832832086602042379616819343191109643663765944770322102019895487011572935798472420634507807447527730693017965370025768277642658052714965919488469276683347418227160099465920565818919198398551667266650438343831864838502638473922044580830166438200990537769236667679667913100952733935895603617356608264351567891225409244891625436591496324910981022628496755746544067832988292752084225404006396745558131605944408037174880138262159518540092863546943495773539757193965067882917457098872212709790232305578631716335991955555757190898567473178296050386617573532239960884627555440971708812157621891637270604895644772059419793831738631660161241162262663062658949570875809571581244272492680024152874404011432228531314213691754915908259222692936498851474687051275836474649357051993080989300301796928888966284371031076593396752885227370829336291315197630173671767959782816583488077295981876391788475948361825571390657560333156091457324762964587583400051191473221279480214053512209708011015998253493714243213812580758791412267264206853477167727516138153789286997055896979689788398097025013105782251980922266904915592979092903586957617179500996891004789190132601170935194436298956338445948574303937227334142243138706161762077581799809961657195546739004711984395597556183804570243936085801522386814856832469720944860756403379415048315067603865578762159554704248205034602829706368103211591866233539153199768152913874688256277628048614858249137426685935832492129210968782730578115312952234255142623994037922689343140800696944850900326862749923400078360105537437016412463052496060700624938180332273820730423542683101081273696338052224591436500451743549927007580680601876732303773096046865962759779249438891411848766454305476330649763706539508438785655672630218624065066515584232003494258821849899582347724910215412441873730175603023924111743069034431292303079936654961553843158011246404203499745087004515433639973089555819821836640182768626365569273086988601413075847062917165552765123227890101185536987133322339616043587217710168242762136256353340545801692775554437485237999051615930791582359985181071380436205485253482375568569967931700095529665981378198822730133267233330107872733623639059004206546041220873310772095040259914148371638397693727914662786654210054053183974559996762068875028745887932002446027896434124160925873035779891093289373151255591069212682647841522521122622572713422940380275710695445613938476183713728855789267248693497008983132325323902704303565533272753249486915302472180764622879668113954408495696233820240709632328446750133444103350013997096243054171698724770737502219447591883529230200042376261071662810591181626464409895818670774636599066432009352359696030907543314368262596029074344331372516059555878173160047571112755133373731762329998970317000194148431533625418544351983799947128909925711193560908171491966332241087168694898904910935574123910968453018778701911541677282287519564772715558866739587667733217555490966297540212413621466279615113174041278337307882033148265141605028922872120666234842998023627627069687765058781147564578381808870444463884018049682838000430081127607210208146350926568682163303327184183913189836039987899117134027031437043289408338920737132577167624287693032263919906700126560705769589988995649844795099588578662888969914642178884243402069623660016140955066235033410652499465505232046227941217119587810800679638501790762117637696684453865359642179346976577513426640014129323807663574904410927280603596578142116946724254448347496681592747228956925115364204841130233491930375069591084292275923742416464062349535515093765945481910549120791698637225749928422115498409587914098432324763783256872940058690532374339933072127722067973429355000624898146791324645392582961901049344095600471335040917458555683902842520356037996953894360780188561008314932004731698646297348910374919506381181366646443360036701447157905747178557992698224033053385297790387990656412316148417019729861175434108998397684599619963206710946489826524961959946963539342174239028603937458440390233510934880216292602348609870651569880721607648889092056887668988071448341785916606507922177623363947659727024141882935362988120524872880796130197133635774123661295225775576321502016415821831456187295747715739879582618162031034709034362671079065675979414996754596032578819320466093616351236222384823103374009985517115511296859837663153454456106260986702800943026266190144579898354248754278175041812152813552757286570439308485124327876056931418889386768083466285695360651213525803941252872598279214583928315786251976160169181795266985209402747451273533483184477549501264163761125854035087613078819952236743512441715971197088433768605099528851728159274909351854908282435956471417196352609758626148752465439226451793420456014715996219403406319695909110591086543403116744596657666869067976249348985322028331787190752891470964028060364331852342145566258291178535923577297859187345527289937216841455858459608962712446718496692697753943462592271610882469051227590183076349607005667965563291899952070766175296331552707049831588157922715232776809033551360329411107660449922754544909052226462508094382337047365745346753831351418282029840336962470531029943303215626093249572632996415012670956508123680144429062005308289916055201738592420835201300494620586370927944513703215509307112722108103626129113954564992048105620920181325685079946223215803643289348875840543111710151741632363036203850907784163933290569972370838659818940565957688446185607311530920469376899719170791780625500824031111436453479265201058857517243103807605329375315900449984937960270711340309863702192290537914780314262313039370167424461208928109877853995689253351976923407453032336582617360280172953366260824605646534498580476800923256168480714112810303648578220562740806494830283111138017229169106826292976473636561580535431259371203541051363321658166817504074426361649953530330961422877206774918152383439122790478144529922823965624762577338610590351131765800572972777741197333679427859133975040219741668800974104263502651075747349768165393914615490256567973544502169778205546192443557363241763204258564846073902982538717439434857290354658468107920565447155310129755671180536746182604716558873168488818281670476307526845186713414515376629377342295407505627536167374699616385492485821146280302444179575532700763546072743185955401937728389808884869079300557582660567942616646911539196085069928684619181914615756365578304073147597027260804632647092249531794114606761233313263177673383798348605751798419168611988587317116248885445997092472361191693655728474262601823686149495171262809065067115155512442941770280038773062209541796879522114885230389417576434280941891878534085661468842390625614659650802994091565492423673340921129498810597766111342156227697445523753174548775154028492354599632845776214517515806761525018627687378300624109503421898908479886350368361295721253161482341863555581483847906874546684789837634123959335338991116452046759094758389641511868280419301071976950165013704350909549163738520788440639972033005856795978088339976774128837598901660756339604218216751306038071455584933180721261404229158829038772296252013695117891589593332767378765962697663006752789895674431101338691802444909600006640829815653963876839691018605769105042887142907393121708651444140887934762867202990491529859923962673051598562821205521152321768400321372329360806047180476233395622997453747689970198139942645773744183428561326411683892790983512511732685923863413605536844840450189824809008908073772494930512266869419095804762799988192799737015907409582761372731269616671752856462732768902064763115302647300012387794005632151361018845055211317356282778360386023872747725933513317437440616955603478482541599132265608341479720622870210997802071502216609957135090854629049266804443167528940451109353740313340574929964764424503392279389239983174541052015845913944455460882505770085303498776718986995354977085583131240743936631896931517848729246880488230355439004612159963916689022316384373881507195083381817224362451625234806537110058144949118098254073520480899718131988694570850152937458569403309430542905193635362627647036677071138067521306261712024463747052052881619651871764815942164236960903706500696262372136560916779967615484191401293808238475753972555082066759415255860857030236242935284505757611315160123151624140917963511893891231413402600880189415166514108481028713607595575051470614782003849394363780459529350392155246471229793227249298125466642690037770398917469865232718740151368110465093328623884719029166838432300155443854132213087020857537125780893049019645710445597383195998222475532508570557341557207572005357380039721953670182488479400389320845054926017866302110669670490920776767483351230647559857928439173925908767470272429594384259352667249691986175647633975264907951993389048458019687550398601959419904534706927116516239267029526704572761936336786744410158507830360837887450731363688663489539523150108395759885098985368067537092542603854739757728735032281220396009434697302192278170134865325659763421813691870038099700763178066221153982177760698409242409301945814327657466920354288018418087890616909919384353102537362383186683686307625035248555593654319798855852454539743904515940944650160445123018722105054386177673192416821418605877143826120657773055123476933822814503300339619558609884309152068224074506072230443269458323173648047913116324129454929079195866721164983672522049558336047992923599274210793332536200727571032163118865659783912469907037065192894266995019575697225357323492682365447253554453245015618724278339142867685897569836282014006516054646989579740985249000302609943741046643147854102983837051391393982638849220465983790672263002497695144567829165535933560022243193420935235549275956716403375865385981227340711263734728223992261479699693035169243344992962695874935675127308141054914916820271328281811698917918635961092033993356183332124980058996219584936782783586483570104877338191981238918061936282163971617418324832292628945384162403774105804773857683619531067795224019323598740686638988575306715823402337841825181964773497183912660064726958769036178583854281267583330492990461176139641658197883580667033610835243530314454020610950729676989270706498692720529135965745401298116902219686177326177346189110785099387827888158196301341639982554417314319447264107557312327879112827200994908966634502848533713345082481691807993124511210708657672633087680993619587191952545107238019231973607079357081071147734536485328329014320317770459833948393065040285945335774591496335501154906079559006435951827675046760754866825678160472510988603031127587164471736196276359267715243005279735947038439940972409651945366139751253350300889003044669960723893079864593655950398648814528244156533429079569376523982899223212715609668548984569112710381175054063479507454595877358469073676520783367302131956284640601435406072886863622444819664523998330606476308285274464827719201946869052475893591760275579507343765374725931635060250015343305429772307524274232812864381340291250158370520313475767516426878144580212858471991248384017723157474390213701271441423255538068750792175588860048328873565293317718167005146253013577885400752501279460963281078091899045202720092777846659302790522228952554175588153640830474239476817179313995480793780136455346097262475112344229241004622742756521197715797233950138299009393553155697641745112651074434828980778209840053893542391674410056412807006502667558724074813768341917596616827012106790029232380394225333468963720547548236721072288948879366506018702936531263244954780517349266691393163060822322153178600423274057253107163449522915027672329629859560358669823940513166416097904468258369986136755027092642382238919634915250702603369811185913614188272212621375189338230674354538130947404248824126121821268919832902236292678860313224872105005415376117749959999061018249474046393284629281878544027274344432302643960667982054775802007083641498558068330801506010553779707218079324994958187483197726388488271790706827226878939876343101260583517609236652910485312710276444770424753067577511329894346382900742300104616516277872299909812469542326170577890857737541590544332890715264856247220901780202567653092968156981499899417094825104803908294364486190887105583340068210908268828771029896379790366137030266892114825392517182919503749048230476467474283493014445235238870350113271623312246415924042592133279816903920618488623590041765250029709454639837062658593339189747313104083163553092743561790190440742233315006479684929732084872743368821247407121568489256799472595970349608316992294910074681040868100098368891857974091555344267934802057177844488740741348193290243841068725377262857378636327836160656176877604037532102543834788042341266598238374976815408768353195203235558770839632819501932895087718238510768604388276900087011491316309311963655291032776410240877179610419704055769411124565693151862049459249257911245239689834879833014079316866669245225439749221691386594906635952053797114027483327125318187378036783584313132625678374188734547423722630342022220607690528294910449702983775808948920801025280187979197101185885407398274725152159941225880944346193325204695141410920043552498007686237525174610927931690982250918948431848519386185941634318067797488476969122712683406283024711275925351763790247235881640268462398239289868646171282565140935123043957528959748994504239680547873896548677234288158574195876857642955886748468801667033492883658962397977607342276306874024486046573995841919596802617386652268466451240494959515526563560717601349172137988905041030238357572940067931628928772728697023570477394982719486325612665051173660659666940466605409246035938255365534108797409633541765608081185876869778126544181736133781204311315312423521683850142920296538361333632372298002870610370753744088741914689235144047229336111802443782372735578011997667402560382275324285945774750860401902632564516850156524905888830964171306295375219558576561556420627704957926098803152444035421667496515029191900846684180173703790105790439145610144031866012900847136779378182232807247589920060423303244829092573129032578921970581246293855825890493098145875745547686758282831078897458771942653969969231312104693070292257533385465075940751265646949760139997656826801835367382999080229715853350962190316657746241687768141366277489521777482273937061094896177321702641315325536162478246331834605699749537562361068229967342606066552758023737482923307347375168012649956966593737421141374935617644877745239384357652207328124169141097621479135189188131301916600391552103065002892464431038741946065263677991179559265673670280641111487944877711203100132023820942522500420282655828010442128594016695362344393755706514359401464656011827374927199831531319107824788042341343286925368679020815531896674644172736567257041693838788928898692736649378110002637306658448228395269265813342386373294530765886736025354985534160148773663489857572501211753156231743311716171339367031590824760159754659412263229366935732682592232605673938271261062634984095545432653022601507706831831458506315382406511031861214935020186167598039324163753736199934988078969485252864914492002573090959189228325366555068539763238513831433600675021845968150141029377254455751801600469409504415101496804603080058148860841809732467398734252702984821680224329017962172071182202817613287550315900337759898041002713464168785782321165445077725572714060425380436480228852239869307761337032868850542204625357008282673619688845820217962575828188319559074937718323464817051410081350275103447584140774380943346236817172783493247637592950629612749654041005626526811005512948837117496422831036686715536011063109528221420074375226786231470622827215255775159019630509688466407335348532693191206677185560446337661293615840181769785626893719718210316291640012129230829806262062707789724496340052693207611241941588567217471112683710469257072185261049328637923618047827736899799490759339425900482253684241463063891053442085157418150202748802942698861244217057137812685989013079464781950396526810061189631677073852400926070878894095137536351101266274889348888578451262749272736070566437490327620788455189202536150061120191066689327966547253410803848385439181548695805835839225027695951743118564198005223429496923754015831684748835320293389327287171484617184167869997481196448892745241645679527099767448844021480240593075271067971316582837345892449415429914041447424760571989532045719252935950257035999522664795085945190158121618780181075245201972466086318990011677321688137916653377349570119542094497926756322634309168589318096976637164390607177566599951290990008929440434684905381038604734147798261843576783701401605313733928646678901798591263725038498398077688191861340180079911580907147823959172874402552813255966974433850467943659232544801443218015321675361071430401674051675367052774357292360432321494945347746484741852478406480699053402773103841492532492316571831828658493236717299766910010440355576974775857800554835356008362703576771796964436841702229033623026537397194364033391186481050713644556030656843113791458516050742699639078510771603035598695362717204058544075777808931738026473850748209020247521937733671549266344358087499061776841470751998533241286239828860156448264238135759514184616565912266393919347666822434687681304586071814990519311653716645121502676923034123531585238068788372469103146740512836590482118710705636960420762738325812947562133909511064896825296663848342332867392955905080005202717597486082004053321745926608519628559047832481102006228461859297475372079949465224741913973277180427756239949945808151545365598221583897721514886171669908267605885155625940351065012922903196887428327307979176182719607047946419520532792482028707636467692410120431970510930276726565095467433726742058816349726143295602207811658048438001165182057414157508484166460212332955790791895990814956884060081516361517073132190286436195734411162209510180299160548571327735571585871202370401607244168321052662583707051240687481571221008072298720650493681041580451637049428307518881324129202323238988958380658542434154575297763208607579926323896890535166738076876157342283962478861074438924946772256414562028515676005780382599148966395454750150061274190688471596230632028830748289491965101937878336922755148370085665992592815501575812207988539418710861319870645228381964107680570090872894200673116696010220614855272936104701546381571341787136947673649781400956781507200726674525317755390498678966125252945428446080128484683679205275636292636187504656278278347380047771379268799256761431550633610317137654340638802259551692825146907487576427298765359725565248737063567367562131545625428821867460052386459677508124429786346774255509738015899996380966465961655869832816134090245003579037265674082353667557365927883932816095624859989882300859441594667640343132762748660566714385440088844058381916770567654894881322320516169417645235165814973725695103404328184559836742790897853422906079496053052785847216829917065958399098549846303614069014674146179419589969357853232625207071455750654783574819122271999751970251517393012719752395310709431600670978216935442852688497699135890631523286726592798413915819594796763901846724238811929651240993758514612908585629853816742940522878350481046550692012690843222749182463535984383919131807430683265242805354535000043898169984814539444147078411566280210839917983956535891385415966528568732305824490969305762956058552183825957061204512592463685594385184262448313699354527331618036450056181380476448573913648740005194419370834528845685435366650073804441983751035891273226196978812110197254822205994079237891119421701601744971474717742158204348686544601166538113735634546716127791719101456514403466710673755227815000919601847246954337407324141141780368507396585779589123638720818469385880897341239158047124338624317994041367487918790612176220298157438128270888338008042434613038823211906958432528503600628050064489400569355341826522595348031425006144598899823564803424192997311170960881329190258385973108593583573012212485756917782419666510034142215856603572668395052964202471515644568049392246031116063673744310955510011157620370918054075460005401954084122555275564145082470775144310141207840263107723632310972780035649140453818194778161493828195630340217658194155283474623283050587611186889766401018598895649404700550945646279653871028013644770811231412918416507153838718744814019333979500099732546214625061799553653836639696519533060609118200212507831041826900664697482974487482900274513383714304666285780948688467142420027231453733936049779017613444782059980493747764647579050583906318172498584268467717888445297496094034816023742519966483653951412991111167353434514382650356125461645276868449761802338338318180673157523883519055621383575902284997335648825285878089377493826327972554838679571001835677850859518995740038584981402073301524780235396000856526936159893390640864072067431793627873614539304925038824697414289610586625163011673333353859481396703048761639293070739800186771642416686741239276066165575960532993090845112418924871661610314408308710371501644931103398067582652452462835284593152106103389758814792784260698557413238340126831250808170733134939448533163466288993501708567808816427861709626424058402275119931795332689519839246962981372674862981445288564770662354953481641275471805120961829574304783145624107474191483825107860899063193243940109925735524272168470756194888147573695786677696932998892425785081186728370115020900447715064180148566522741758244408981203057476772703566595817237288716465740485831142112456619890864659269036521438474867362514367658604842098893963709632053260909795782717805717485473271276549744108685042723696228207185159073478701935498057126873525170720857238571586793234802593127756981116109377224813837706037428797979348067015159003139665196119626972983079105669307088455164771692142132319889875085027415724093979328298694064686241914683544675371143795134987757438586999239241066638552653707968487585562761836515370984801778564890655426727160671634471715524687985435848310893697020776124591582680189420384153211301781582718256261386969808406362797699206656542020963792491157116976448370537609231988132358188274568996235489558495481012649917575716155096414683072783272725050513251805762101647443403258489985163653758954173449117687738121223460114207608182997772943850871979382412369962822400049257552806223122038147367110749348350377634497671562181553543601574331238384933882856284053589842055169312876334431175415537933140308284650397494713326323656450450681725106553980393945982280680187312781355362565781502643771702535555685078225024833770427757351240045212478704569961025798782235901720565117312103183087634426648369554742190982145391518314395018940014838148624223512236421196056586676293075661905483846643894179459133940442915276823786827434890705087758421207780317419432720372082876765282595728091635204691445890961207940286948974290793488359732411993290523072033351615622009990509206434834445061639033857564572929199810352712007379714077100767335574452923944867399027306220828318762268132258683468118195774901663811194404072378223369509577883138183313651888104665670079136263833703930284400371118805321763085737152370681425934934963520378675410237027047333385249574028506798928125741107445651143436960147563429384881087041684433962958472101395024321854298148497841611783891578434044646311168809381961608798914466772135893122217861249978384886092661301476486214939395013283931310590156525140449203241046927857465051492654721395504998554267786308839788187171849379808549735215036465106112022823979974596253729640340661302873919879737370235284641875324277277175598914321342947978963602888218643409582811376238235915554613368453559839647035550446068859305436893057115330424065268699996207728806661680178139180864798639605772795081840695236531912260235992856918608919254760218268688682018432912106302989392463627459305111394490890915219656456138501725629636148811111742772004816857087066410804096285988382292805525996261574022769058206166403384336672176836076725881023403626285075583094474125994535100570660133748615416435319695539642312473841934214455353238072080995698852581464464874455699366543456832382253934300381148290235654236922254914612851361394107537356143243343136411227022865898603256779321564557978333165412636450706430181657765201795357825102570576506947552416540261006334168286671188440385064679488527273038997570662948401637114530412309155165418025147875026554639309068133775909324886590394599038204893527779755937316167365788324112832617683081514307631684885829130806133528158982320665581062507775295729688157120148434414828839506872980325927102151947507139725777909568031530466786359182226548618876308713912969220936268645524795331335216684319610651034322896742637187824166978248690714894945108785528493985743553690776659506291708752627049226268911557163240361217249375868794566028495691132082223501423537852517510936698796168868165572993973428602005135689809751169399128760999112287222793644018716224547559507649912602117878720531833456887868154403111389817682665142564294269287898565651634522464333821689243130306620122844702366603469368200109840489462244213057119667693774792423408313856911243149878242271046298313556870384297017476207138976933676783179813161983764075559275325106238000597141066552829059861450594019599312417901758662821186294562084032157372670883534657442823053282838250933139182167832071524113925378602366062782273192068176613495347798114246282067709445435634752207343095212200065224044067166171231560902253589920782075020132948131435097922974014515803146821450872747784762305318697363432854163334877727241291623072908299170606675077259104815454968405005876146165901642858700116923178300846634296416628515984737926311345228731065835700092877834137044668031235986028868498340803453097520318271559341439915331634356908381914167719494437940819579496631714439115675126915232213170247314407740992819143082164776923393916813973845149456312794764903659934013713497473832005346685560225466540739217835103311695042295112660597046924053166130246956562994016091355544130364479489600900795106497894959341311969211696266161630171515606569156144064173094114042633815160860126285002019735910971181382048582438577383161682712850108918938737302201885604971178408509230201314339057559586891385960381900837006405564538273700663522013435301342082231966383929743491353258877266022504513199077667752797137975857287750549019447675037816437998331621253190568072317838662177437886093844059867851127994308634080670166772152879356301649248491090732724167413776918692730267049013745559543191578339469498847654003034815627743333415799177418813902406992256100631953127624384949339413449033897356394582655466949089743606900387107767115571845897825823198347597510559564028872417570945803392587163334771986151342194153829447585746208191360861117519341406586610374987176383868863129293146669788941148789277101935936531016754911808757769730663124192770472218416083833838571453745634790014495214658536273846496052040222146312032853938466657388297386077785102302044512215656041705240038755043828081757555896984284986193646034549182239594489081933012274494578246436542842015877717261499905355308189661435328948592509210615829655225457644476317942280966254210475601495156682576011331740864455211668138389025893808803256602503584537076128331049545157049758915483589553476647179195519678453992287199657458791183529366514152171770715586587593598538020019430834772975981676473145472010998809275409574066495097658155304692966197153550869018617961026597563745391961120434913661889854504898075894025151804651956284497432213088440319968591939871647672610888673715082125127062047753924991888837884603422403374183407929733688128262849685990465895976054737436128624514374221421121920205224831511381524264241945086780150419356799134910805993508455759795446796380314380041400416113743778502704528996839963776048553587913012843395803069556152624698228221426372582767445759060892829535456841550488029789627887341970062203462785003690739252272404816070404510627910620967709679226955114175545945614070352347274767234584666093134876576720737744649587726206822808903634097517321636227863809284796966604027231391434974235956793969346253733155635137957532501128513551425419378126366072289314864010229841483472407324260550915739489854051001227454321572207319454129215075333529237030627171437103972780827727627739969849906760299622377523251572779651875066984468944773174413599873052573747551986039024198760740072519163846118807910221235553843194828301973558878652328203732793774815616654827774706295177354506605071960040399110674901646506338972003380936339596325134373388988227000908499927894774701067523859585662866114206669562202429951261952906466243811192333945636708487934554370462157911547884228404171687519865715712119450814347981301748827457750509326261965554400316664669462908914346821124869147517052699400112659746236162508824596230988087359662424128275475289184044106409991906326931576213053998845002474422637030744572577129775381284159775789505657997238754498127170720837150872790978052692984648777929685872533006091344366510207928935634342243664185092999165792949802691949881751641726667912657668793620622880631885450625276871647908969658188614730211253674411453885778670589594111314138377134565259100128164576298814004798214898028904176454008231842046023816338281218805240756843661994503218466145238513656197836528757444646086879430669204880324387413304390158750387130986337906497759543052607695659229522923193035730179992120224387873882408416882591004327654740900531009610555894193070402153423693088375287988508479532648236573661689214654944992899192498699353383826912250551581633420150234227040970129455116359527737886846974007382176385465307101865979792762524090856592117514766677637924192273204961968140398462497374898158710021584671856481082692038137023554355151398053260364560706173183515549396075539591566892328302470834585730272697341202826850519693976554398831748557699331588919660648498916710083139270440773819721639254418852446183252741312091003275757342725343591089122934914915612041458424103406923197630660780666962160865894867554038469640260804492278831870382918277600581344808989380400077943783183331370742424782644608829070947123829260647349831479462533310551864559521441330573741355376152199058433701283707298091808589092504791680856552531199277005486861797860182074054822762833778761028310450667449030075301770343871085427602516189586065052559993373362398429164194810510826490169951195198711590886929069288951364335448388109069989138779487270477534973834682224853543278845581411864160318018838847415262831344704542916067131632387514209499164314939367617393642956923396353256029774113295425197998827347067742961900863873441462145256630747300142198234903374743025295594945695705000274939664018377501053098407927476251993175322747935009110023693941770697950395230306726548225082373237595446143157741915209345033644894420065342854766271292079938241416451790019380962152500239652848209143833193798463654603123378551021784176660897933551910679842505222844012368070140667572520196319238703524225283546702615836280453913684996800202850566744660253321744151487907411572728268873526124881593606477915909286644673826041202822724797804354952273914372808850627278902657230720301780003811129295066151494170109516805785758796119644891209349065048536677519391124478207932303564909839648330665951621944532773723878383746771797675362737260544515157853165450134546340752763028162670518902159460206025908386105530525559406319153724699363670172974331413032003535740928363824060447184727575057887381599794290740178965317671571482007044035255759820531085685962685975398330608442769650080311967734719718614895624655883883743822011147640779936185910264973018112057193280050140654187167207599681676445004654374984995526900649659806329178627756451016850085815429402082367646408145460527492688618751541920213882578508881897649763086991952216161741578365103301611801017691148176757568602825729248376618389040622630390093238509150134352065826376839446655641586826543886060269110261351264832499645847505294458822683642313178002740882502322248474288809421619987493452701198290678893175870634820523005041932239811205636254263125526505835399078726156988076577537821154985865454106411627532103896851032645634388445282607278205767276106863293832870969326635998780506481347880910788341111943888615982031793558465617661997950746065960892885076703817300863941688665583100516442110741840633918041012204332021317526699032044165082379229431339641645994391073908124492227546899954615874328010542572126811149055188174469340768566724456397178402991728123225547956489123894160489678428593137864207966244882247460373532866705321433131131317388294160610131217370684447230704114726102512658997984468496514950128891766416591266055255508164249342586702045664148219792904943014067591666976446220759751123019544553789962020403144900481630607533783858384553387681262561379595645846445722572594982591266560854014549377812366050181518703714209719173760136819836286693724497244319674248195683080387209251541692706004795925155071652833124806190937795668626817231061512620526833187824568639885034897911575481024088181396665549194575577226854373047618073655061389279346775987204419383309019701265150007600397108713989237527589564015901285351933952398742801541596213136119423493342392235600519255741230538476495888832433355259124905348743690870501327777142678449878558887003495356429910696660968793681072698716582171088609420237715007163824586903205004462744754807784409253063803021042676984644425163948558247501028405983667756836328445526433993665422512867775002502325587059648212933250842020245048544048841532888678363604904983254171092734601188138982018755807906430878431979382682172709185337325368329936970241124986419774684509356307832720215017384276896660141421952816163074395752986255391267925448501148389072318642266543989764414273838914634232658677590638422207121453578351632246688570023236049925387402400276964914844958060019234925823573851546448919293657403914907467249269936330356727837368260166077237221083428469518453137913073247341958295835847826905161635674429895270284809376271040647112688669241085750667618846255613015159324925375664004515201425303663386560280412667381270204798407597603012663794870019797089211046704988446303617169188644318388981139629089150366510098932273754247851790736371212653739086876568280319336460732428038533923268925625343337708295191983416766217861462170994918480517714865314358682213102709260095656284994166999006810131087771808680716536535753464120497936790747095655486577760551633266259140886289909100730982543488591697310255897034514930772288031823513301284501381177510174762624399346985340989380370754438933777645297034845858391205260447711260788549193154176009701784345802653254033238006101501917591136030120055025725752266963862846291484883334673063423168148355311245987255381511417249738690104357310558936566372789123953958350918786174713077603980093925226647085268644828998787331189728646048053585698693303438133928170533824813512962536286911331015753905732172192738136036793984062651224661064047481669659828511804671840880840324442681096636399082701808002885912433883522603267520789735800627202904751370925918450382776922390054884368367989034980250288761154458455591106847706053789312738510072163327203810724825671680868698303437719011099659789390787854410436764598838244560020601581943077906097581220063475094350753232850768410971948599108990673397464694481996883074727774204801612115267164928014515379424916149777836720525484789900767215178008853994632575457198506090288023283844201744320766546833219778539389846978619846780207817379699763133087097250346263481630638206731721652706060894210486962628397423770383999568599008536548327343389567457000140653510134622702155347383537181052324501979802674641500596819336995479592399864773242056953848645865708868362836282343272920115991398450989842463885362765963829878785664809752303482834082579029265385267528903423055259541916494652408354232715985604170799401574099001319208093936474482090883708273424326115198406241527917868961747048605449602830772806909982140401781487739650586932702242381390062685418236172879137935223567264292495512546313127175996189488664596188173386795242311468187410746897283152220590822471736299598421365799875771232136906127839936068691292848150209643409281621399929738142828606402260761727658540679579184390898797248017820172263523301484544831423807857174974942340846241400233726103087863622670527681508500108002465289624486746723033324191239848295331350054797372635939006897789143943503445661341882221495008974567971467888713737081189887277149812577130099940353135553876499295441986648953623217020211487876854626041943192869190846117303702721793402710804018941805850142608801043470843390484981794825565680676769265601828277297465909791807268187241438261553193640726253529483849630332111704390633752806731123079346383560185340885285667538279021426658183234992784431309295112771566763234722494812531917003600852024448651632008181879039288109300978668738089573607094242250537025477347417934932914957818874378653993211919997712477929454349250227354705995948048284775285424085351999859949118921018325402021897994078492708884643345265969400046903166894853328411962768377803665673253304064895750096905322522326395088765576672265660366256412727552044037428159303440901211269808926590981066733513457960426589082347564895698006419190569872077044818063010867931373457763763823964269056023008894757784326849421078650917593525607250542570704741400576198994508628288008858120107826212500773184161709534484166408851533198764889797486282160669055825806501155089791193501152867342999864188330486226537520822713823820402111555818596570106749849852897562178068270229062385801439266745091039463320080464389853706661543469494796170878620158637542928862446580866429401895361280210441837307064341337707482178899864741965418224468932357252274182589524656012073718239393502314979473924439216686032028186008185770044796214375978939155860651696153728395209358137940057385441799512876608047821893286630773240327506081949176755518422028989132006052046165710778266422252900253347500701635965984150716061668263475863692673435481120052933726412702720910994986391509528804293282860452759204806636945382512238901281483739569938384275551348273888039634033916338829227975153125040701684763709259172729185032094882341758153830078797060972678229153191175682008549954901430045287889582573212445917729208789906749887405229915386079815501756286952214820055756794639900545124300162793367878815358985749363412737720830375043830830613797186115025688350621409927229098187933269033823262644287531161515756670038024395975688917824544734129663436977176675366388912049485846644664157749277176923372030458483757149307489108042677007026457374620945845421392013984337118247113655796967639501012530668481072336680733978124626494808892328454293624698965203397855139538836398701031151016028668095726964560382719179351727467339592531174885867472734279337242978262366589765115652103880023555230033767660472857877647365519617334556703125511964943955917691314318911542572156751720622807946969783245105883083937780907936567751294207923117733600191963087126642381112853385985390346307537707884099936453089849413764590257037144458893963245475688455085113593925804284371788296621186610471209943408155053293706291648976133339958785612047644987621072860010355250495280864650541688729302655331951507807453392351577536551012045655390377666838744530815376530789120651554210643172457828855657855289846602296807218260951989224273227729114951801912540414063154841066301909743305529336576676256187433054262059644238180162241386092590930606475414960174402464200562542496000727879505900235253773635691469109691871022499009063913381709135490654223303793291065782053491523959533457498722555984377898952332560154846376931777316311026386312776598164455448154669281228093130801566592841085003382074299491449341182895226821448873372489044337618839818356622635127665284371002084606333984978260250727245590071411989432703920197640149657757447834834051820821469873115123762361802348619961211305159269437447072059262738226127057406581858533308018587649085887523525753507413254403639691203912655366813741191643007737998933916654003507212536743564906290772255318619924718675223665977968188765511812083330654821824590970885640344056380129832949922434110145682320911779638987176298566798303862503409953073846043423529106728066963911498807964911152476544583220214986528217850665280536564015483681108850385964604172832833501053100063772930463775220734203760116160793567265619341666642706535643588751181231017211608922869144133941417305237691421398294632495115224787079595902861062454910652786795574413288569494581155284370102535447969021741382186962076854196632104601917336542216648822010908946462504121291084750545731778623274869783533858533933629840602485787711988701068937734517856456607403762787467006876375778647116465183504307587484314606520119922644586829231431738220180006998039936804277098441735428965944196341552490707398954073695815800891928903270474572797413439907141950976608564574515933337895573465852604686749797898779454072284034132722167101223698267418493777321667112749879482628723091937766907586277461405281652672195658552853896367596313923925725756896443076718719461593284218534044089434481954654434953716953986470994574669536806662693401880053170133077902619216167530828471925711425270933999535910609556339139996411533053128062273012739184654540213790371042967020336132557998727996667337463854402380352978879947899070031120108835740351748399205689562605551325203342517273381329939017104031318442303355687614074175458685321151969582412266461182832088801501534593261326723032569181027169101359161123049032173827007500418526400157616142765102296615715857536857301535512929468937376337236492978508251139675434201645526329421892741839584137307738238968358430942814913535523620005094541170594178720332892815863603285978723977873041692746984267879368413913127413082997802725826739616468040820427060552002886606482808436388153998848562150784948184294607955648325016685159840354468871544150053174926268885463298797510953081918860931192873915338517786102456160959450855127450660592729944623514949979484672127793143471327683946415635749667895634563042745076173566808069770434194859688874254103760354885842555005236715728300427438479277468673504422619742793614565403269035921722087831766520850612942648780240994700298526012057404145242758519801586549887077006503653451514062450936940124346326046369945462746564094572304828592383047225381696177543800563322295644186494413388144296461081176270318435368629874135350486821223806977626399765794485369288112210273857109377707807672195896488744061977370949875385624738494649910301105888054931607804855344983978061109507997815158179306146373536988220994595529100946854083666476713426920522887758307803925864116962580308951561877020700875615386764061555337831095627815775895875760940452835565555605109853710233321728900741069649038203147995596803772454104560587432763814043578139282773903996478360597041667194556221190448751994942204828515759518930359795053119530581846288508349204417202048126557846446348351527828661770702560771601631135441209353637025851584951132769872549654386872322012284190139514063271015039378344709073504286854172818445339484598819151913386611401839461656998281067466576877409913726201344128278582479702476138095811505454083905456740875083342888505238413341318192088812054031043375454471175838522921613032749799081996915034154496658598502488457678307302693071639206969590723032235001119723581245225545049851186315095943405766584979581901650951278792219019948573674324224250124845175295161210400695810681412342078190762259173795230030079669118564457091756187087574453187505656617632181384036349647775494928251577635336092282438927231777212021341797892946041802115947095074279635141919670536248421562875659688481574217781355807911240605889726719725326777747694660139536155088329399742619325129442010097902807116324785904948403996643302973916519235537888765546111094388362804677732779007374848396998885662923804354978382851774472383365966309370762130266464243097959737110780079007462365224096845734948964772316855287648834764479960750963832970787288101201908630892688139379240323070465417594833415778068387005420183452442195809857900200341667331703263023937842882565418972286256314962455930150079065443115896029615324496282110929677836624074284565476815115310080713469899973324492047975129790930171031598890445349735736178645273119260549918262937760677559694219698620997275946586116132749394226855071064751191285449167984375405813891715406916783157526742817571517529708020644549718206396600318208831435300076750173113377853106456617497127461293132809654730991335161508818334427219994495690754995083418364653836969704153640215341096004286143213438212773626394147499780470925130565543881843613564256702465971329931277393451201672801136167983778086409487363668590944978431533007314825860438614451569590679956089818647225334234907296790684072981881349108273566858081720970880002876364460256379335457475249932990938092579265553690996925654099548551157824038322838442199468771661384751357655123420798039616480596586133075081185399770306799748868153585025018003097892340606872376763856726031662261354120406842999831946983944648476971746006377118107669622307673483966640265075732331676553635371517838996259967921440903062373220340978597816989484522495864262170645413506380618912240926422212901252880196722847580847142947791223952787285498880384154295188570589735845540709747533890716039001034410328216096373237034563465310712550438211202243946377633168040364678906047440318946242184921280630658031936734509347992242678862325850486517333607840143953153575025454674053207154253831225707005135827263672107471187287142663718320874680987006283966478753556331946041903337849735678776129270475820607312088353243244298958571005422053980844573320270427867195139531056772155626432403623095537717174428506346105442239872687289766288123203785209347517852517692594630242679697789496480658795646107330411545803672806067431681665169287788212517204497912020983479888269411123942555240802774881399534455830060689923486640163631033170641375071386339914393916168894579673690117355751281681247103561576989836362893020802979463452019827152119620539654066482801895955567680861675126685224210016959327555774123360346462516285658133794751478570785985396921967413386415918645954607633179013137712110274330535751331451367683084464192810045515463551252450880036029791218365029052413175594101204152089699877927435855035184976984550537435868448452994334126795407643670735065620450686834204312159910192023308926824430382644941784365513525257501789018699939034021576316933459191350788431212892961032319354024587873708775182226933936023437410391663652302538840204347836658483261932650091216176732504692747818041052338508183163807955316673100747728607817168576089229503610801618982425808829970271613715999087773711758304249364902177303481741839378272765866074290970597799066890888795266596152468239347065664909320180292614523982420133938550305893698933512205698203823773813239589220089342087749570035342299677710269805482804625612390461744413947959494230563339421305670555895460651798897106097374196181417527842717525976252948562657050568408754352155842197125172041872000223314845104899114225528679895330809199984322653078829914415541824526415639727625367467792089702082031177787567903113416970480711668192143391661196612127399146394388272446974183526426600157536297242332636418583833932663290783328741990589614662150146340291638948139512334753353246248484804852669953319448018593947568615535420917388550758088873341268627690808020146157745835414620620069440929283183671909406484102936619173237898832951181153474779591252697285229425585611547333779655776305150395834132793068341287566859618681982804596982659436623527532144617398416836829231708563618369492675637551101417078598894218622232409159981124358008591918243603733192178249836135868612073649947436913085227486581893232747054709001416175405698073613500695282894315599579862620330570267726910463133074840055849108957314510562244704229719345817372667348757234783485064873064172016414870309245632766794087341779450331037637809418259768375329376509410371806618459817767561994382194706026057605667342722681463355607924930859876432388467367968770239809427755201151515214345583156731510640615471937731119080800277392443967116143720546744969660892109276929111937569738321956987581420404760552597476686791407773693659627445890112403874058590464302523649769420184992490614336929756510648216266877315498757853107132850995058203585419235551810455128722649041241538792260255801241596941441805700815581181903594037717032839184734476415675373204396297230688235192784325103742970791476047308646680251618434899415776183269653983252062476567018623619490069937910367928299366677801352627013301424060376141191475203780453007587033632690218529728900745036301971332367689423373153341793724961107756688611463414968131492851431245202682621942831831452700077371363064161760528806548111802733330961306394764619365206835932162979756941750556970022574837700904932053854035853169080653924862923048604232856945033674869635750057883157977866216678561307901608228682731269404264568157786268592618032139434876933410015060049733717478897610403684541429986318107058584876545645217481353421771448440009398768373212405048765122961719924307211702336321682175449884776768350073009876390764536196658361369172171111600072803304368344785392936390046504668099565361507353965901883296591917889507467849220141575792060487203740061312221654347105306589660261898905116643996972605019958997975703680213640088094481347108225853399999681657522494616732634027423434961202746942741256393744577889669065837970366121402052118076865642662576829581944055689399870102919042030070807298536810842622567610037976387583102227367830719393598862175638560135739631034811288625119910751149890380244163740703941749986604107287605341864478748723814953067145494792359775151906056347752834953875704089514847152876259909538185548862355258348371553750153727171391492442011135907542210688911024929410058028457260549012996276431602087247450182220568363306226821948755295487999576595994869494622917927271779353861324218485169454970969879955865948514164778881025424213048735368273402468737886061661476406662847000558720711646138172788235856652937498669917109903577188021177204367669103968503893414872736803068136783948618237504381656319581533939771992765435653601677226457811170167745515413550966839481513066457754199796580150473933160129226250005383585794260149588029895260682636164416588807503509931612785447455374012186347798643069585337998325589951362783264235983313338926025525153177894652775578748862146711106816158169002599416183417675251634556679922947989701768654204874817514516868922440415945408612298288829510446211735073488365855113525037662160486113873416487481088979013587263191503822203777838858110982141758816467853832338282668728808494444300695522070293303557575390926372557810265973552547344019288607042552609780361461827110860906154685953472079325739096045288127561833500567615372920934641116308558511101011926440880913715512339348661811859009835924120536124826729995439275261758124803241042275706991766016706722953160560106189069170000185178108870418184586678720734491904802679814036027445561074698823402063013766617545796455278815839899952399353091460463592528782930718694354757677234310754793744566011047736275316535121277978780438446823303416727958054201142595187774392022366742686251256338220964113535694619563828747319370624353368814104041254923024989411931491856852608918291408423180264796676685990207610338896181217208326607284534735765073049051574735671197290016318652013587379247996058666951618270850453032414968533705325095368978927635139403591491596144815943984255119662677303605087733040979298392892947782666735342723027711023223665513397635977623228028696535498537013148382163584051814965319989075829921687944777772538379368668131110116911391949897228994763973607977494160966156470984053945089882370410760712545953194675345311287539943569871392564215089328816756084562649060980247873918043188581363564671539752526454831236906360243356958421860964550081222319195442859639154626271685393839416832391810065771853000373193596334802671577649455016179271298557472621439591245252662360488504007268126232613513627269688721939419194063128833273165034360635972910010540904296218156172913580341152372263255347650822619188091682086853976966291391216270017140639241969798715058810724529051511784838427007076700669398823264624483775852807843957376326978892042026747843180330239060999898408351614911897224160854401009222426965029237757271550293764911843856133995118691459369591705815470972218848062588659937845113621742611876902298384998644103928131778301442864530233949516940828169017513363322329990744119697439528252142411559945306277023631929506046966796532826611874490593051579375435215126200345829614789509366230644998792142778335389533801991101958655617107039605374236581648641129183530179211522475657834671548696764051312511466249942194515019057319109569335537701109690905941309749639168703079956769078300532431535273864770942329569286196501440048543874293170976691838060010524431149228149521004110363669693033848838841048287662572373596225727137626084200040929456593615892221143255740269265753837168440579297473284593692179552529351155939329957179991349991259179322441250938549856226162897735093419273769089350739881383608969142878598034754894351648382178815689797568046911045558777925733610596769788077698598955905440924292575934466151664232374489708539043655801586298617737354179781727023261733022383646170003103802169534867916924475792024639066776884644486902428571767787501198125601228276060588117860570892404159498269665194796778064443445662877029263221252844183832915934385999690382478789577232949098861086440027838587819990996337397095507571370627202778833362664820037021704887542138208962023260958746348745367053870731463591259921790723670645872185785472758127182401044545766628831411407580889509823009613589078763873973508563332212378698353735174583847151050808410564990794686476281163394348293309980023703182752644549716452117243219129680373445772750427563480988459339403847120442463457558373093153379345558423593877407067247773907867633274681720552546655511112508444868918026567330217563997080700068041158326550399003029535975883383021099638777147890888336770134249285600179435860152458275668748387237117760489325384309736121878250656933812378618873233530775964424163354484543685691507116772342296948994302499886875108192268762691972979862271068648739084918078187734014626377033384844029075899042994511929777283548284939271271282201539625386396833279869893073502440021037967570007554191202108644820167426465250667143242525804313626752247041912029785060195087945235111733074465854821930478329473893911811686184070893219946416096313222998733733528733378469237068773101972202545785067447509434732622674682035483100272237757062808231398435071464451605136333752444054423988276146098504165245425491848485589735399003066819540121914413733718161113663876148097790466579009604118215684911484183707052179094042619867501613523153389837781848998821282201292803977862482120919640584852716807067369541136115808572126749938339957040281890274962702067879729890567378893389130812373225783119497034172144081326647542481317033023099253967888639164110507408959334090259968893068540429794225490888028955187472897826661422207849796598778611145188157996581690013712533648236045554910057904647313301291150821603466277068321077994438323873975252776197647268940657473050258125757872825002958485209015304788914833360346308903216305701952249734633118965804810090438238203492656510226379083726136633233356853249125105569195703231523891574263743854030090426523552935702000028726233239977033563903929231373405907213365169642374930338959969361858364892878389457468289177068946479275664952788006683428565231509346814396606922371956497382089323704136213359459617222102604448227639297178823097654893679878278268532615627306145338808303944514250318033493517686952058903785662459314552315181990364296141680397885745802544859886986897793398141373914791060486656944802315019887169153153308236172645164493083538633928776119676937985475573631744052329251192873671899254801524251599299721420491709866674726977410674078039755274868349513168949773413054673035528563795020445402462990584092796210130422801480262003890680041169014387754380865522764576038606787599055181090305535409433959908646497229710490325323659458250450170931073055179208406933147200858965534860018985744715609831626049999790024334152820574300731825849728313140322548406824371212813114719325771304606294107550448822953321318283509820914711691888258582453277154872555052005388885621492684898994402463729066505531777713217365104750122457459173378588795335108956310975026067312393771418937533642737818805171018531015295596425243571281672758623187458980747262266175055516530414549338356191893637688031722666790959813876159213440615430324112648829465578756612591946876073859452371338234507123082489332560304892120055871816288854694585267956978461541366916995046760800086092531409802448128815200521845066318188916459447741972569116843103525781973282828282596025189628210024697606051974569703353855609884230813501294134379809784561923026887378737316921660185067696989655231613145838967030489277141611124467919265108428725199799451635152833736228750248780250424972237458379639071630123578890257876083905895924842004687543558613843549922521232544340241335965842089039953462674191881663691578915138615032592505145540205568975152048133130457954354368370375413297364408603439585086492516056110914271658163007703385114777283518831923164096606061503584106647213474467505817080146055797344129780351999394987330043701811890062745893979918292508449243011053911110430397338008545484268523006303355578637053944911701922280793359269382378606481443150101229029937972533627357671268310641624186879159644954582788395317300410627623334903688832839732009368265235944891610110823004436691112922047502131181604296296459039249287772884264177336545165389957792919911111285805214341935182338477046448475021466520413555385992711977576577190245257479078530599688439046976228558750912178603447109376876026417477308155501549499295394037932196632159991925693441212804313111343508069013662300611395713003386215304991241984328211192039292525517354694492051042506779886616709718170917475828048995580686595239724397983842706314848939161167901215608569975803835141659973308927474084519189530866586142876063970513099899005098673836402340232789340809388994180697228612161186397511068335778285396723630386190996177072790704724928370609364298338899637052033872734938776417719064453047181323986252128777073630179886295456977010404007704154149696259936837870086764069944518503142457701412321585329622389121707304038580780198926092640041539044576987869939028495445155836502028235534987101914854231823771578733062127195583828831720390207339607784748744992716364957699968771681415797602693486287791051613801337390903400903331054873234191898799330648669026305579484866368663359471985485792320257421568059211609455930723668681205136732371755843670838666598480831915481247463857525551150095228132823020106638086168180074217640542086613410877473958029673410255281079009989265131090478695466461747767124083495572088121243531324756020117442941467440507498651000267457609680555285887371192971151725767579976783179513315471576370395609356571891750081112802294456291898567352393494172653039041254341601483632261195888643832034670568892905791885872314088250233916343455459476233683944234920771336041556596558374942126001775701487570099693634145021815689742990618583971334723123495001626604445153441556361355424734456208863000564554370111951871312584736165592455733637831111072314461698586818719477968936347005215742536135446781567558309899398554416461786613347103422734280824650312743159544980598279750445215481788347860060653369510814905591013063349946109484819488148875499941941904697801529118403537373224759264661092047293473493830907559583299085800195441675773725146355866182279618795205463849688160339357060075707851242123286912814480243818187134930485585552843432816342970541685422132284485577593765958804137357502109273669239785739941809657217434750590049013914829598648746459030439528876768128035174820389993262155799970820984020870356844657217425227055039874988704375551686325204848453860085636256062717636542844222915980085725876533429356429079113241753148303120359740368222377606571403193972953467545545918554568452926425375161887488991602699893004769220873332364625243118748841653686160275794687737441022922652088215520404677945672529912304422442741316653024555120162811551132116344925395966090732032656120329483377021148666480513126158648712296446699410123501449805784431356026767717161394156698445254106627137168682382800405609481531112690044776784454022941739681205222975227199056035921478061185093271643698545268830591295430022902472817850453813874146660928141012989870937298891543296384943707850579358254606555347111910645961653717372714977340142800517315377827354032454211482331747064710030171774548397024657875718625723955255579569315252583678086932630084560945915597754236501733601123180893758803209447569239282408419435246516018946505089577777337425749132851202956847906153953155933911531461885835215470376631976578247086914849968129923445957344527838541397918292877028349998842999571484761792267637117872228082155109101618540797314328756995694569446626235770739014841416270090106033512948825850607658687505479080421240451350376025349554775294017317457222947102911580416029833446733469615810860069416953670602767467471115979076841110374209981919812225564221892879655030964567715499600143759994815251642499343621667627518018369219777881045737551970824686288672996069179222720231037639938057901358836793776313499461029201645567684383979130157705153175218336871378308563759898443010902097933936948007987419810220574812551967814949754509027381068153285636142987449186747523006051075027456243848959775881026500912745724795020081496454272202789881470312803826148156768669353516268032150634121584984452593380533008213614335532317671549174249153441879784938597941984118622554217129288278007366374172415228938789056363196454633835749938653153144827905271192147996851178703657961352639148685742855255996214796227125682914443083212875107170847669915572016557664227401958586565017590583452849250294672995467386277086608450830602131946510737755298219089763150793444664435469033901468228302206558104280701985837155823514910033812404367770911651181028992041563105481650390248394505297361239389115011805264277746798659545332139914120802505152010958908482055961417284633939712618147610669292984952848418658807238026972208626807754317981919883457847560120671253154296135088195827186720228756657682688525606379440390305594075898592204042574020852272539716049672441500356437169463004725834579191970371062094408501767744526150013540237258902193084708948650210872286993293627944010705050833986885453895311980740962808260576027025166675349873405115554595068658271471370910143233280609159202925867616793792094334489346014991049365063966173564443386025021783855728086045755519411728993186799804867420790110141501971387870686898835172011545484527602326297749490895237384034312099098392113610242700752116474412190809423755347341624293365029785932861020897526468709764430771546594942202567837593504949499513115443350923194619352756386982270135955703497762892019903618914501463991757199350189637402500488919689264516065607807086338714760288923018853878273934908080610529507612682255282759549625322131977854861463267557232083902271562369888450212385833954809164576502287727812504363253472874787963862069866430956418290596146750838745120735250045742473205172727357413714529662597799545429345864851499398702142613518673574686415248611831348679928701079123023415997984586847924134788692342491332886376844704226776262720531090635546569678721145572418564512427427506304903976715977500786331114671387201589816085710800475801594310708152808912203920963118594771526172761320672736886267670836122117952085501188693432174231553314085655322349326339822963199151479932325264816584546227683635818753766209895184775174719458417321094484529871137667641843038238075591813995378635540297570259972605749307658484313124209205935093169807755002866802221357846389303745015627225017768857671094774519825738952331039717754970662604848165386876641691056970405695322083556779413310881368361933612819949615790378012400723304110853254786584869378417745653148885599419493430260859318474477985745464225772200065726629397768661440768450929880335974237468621218398920741987227760695289615580984315552834645227397058874508118119834242075186101919529415495082689507638763650752621600947742790668106925550337278828299864956162333052869374369467598596474396405192751992269010041495196162167332523724321382320418539413292091591551781207562059582014657028844629198870365453510739382368444139262164606632078882342171101625136985745221554381963848265516738646594961597681274856724365602531689106362440681193985196907404142443055412339409099991961661190481024762685287384938824315639348357972756166272633211587814821673902490528466004267190588705951243339850214393542080348721653357428184976939751556941733672340053515800339116583423790235993757527034501218345544668965289583460265851463218039985063223893094252770023407551240906598840497073590441069726860230588008799604305791066842139048753638999165535474776936132053406969673853648293142804823319136503361848521939593257686845690723138432421833703337084231242953986967295824267848562061754213357385681784209179209329152972864695743436181494057071996486555431073743409755741240162200249686590572995083972286577597950183465207858533366958091006146776286984471628536865242349213921775403544338207189777442512132017059145652756414772079227915284086526708893479654109512855688910460326445135722704666207188576118298970788229637576617960819409968650714863193084413113595181726945802349064835880861610005795284370252034558702103732991011550172032100904556432560763115765193850287617257322042805276016437542605562382821484082966996398078998594435932307502235396659330930153399199696496408989895168403498883120850447120169023998758072857256556299153705696121427013174156410080645684811235820326841304304725121911827997834426989958109231200954006698330326291219258309625221103705052720270143813674827048579264920398949617518121381113056006490909334197870090142349630138024513309107900132125297584424733286947856278596417204626104153011953473448650655608613814962407882786565758880617952491520024179169494767110107784604358673696371303595651046890773525117273511447829587631310646035933721413880315701687509567807156065775601752432306024144707332649052152546127272830420234239184588353748883042476470845079754488433335457372148029339745066370858237375040909860051148531320726162578263150550951327264972866414664394176806053306078146978521676106802203614924669891453974943069248381934215712057073303834663861035040560751014174202731458210503784222716591994698515005643357843704621936862527916711637102715458559346155210714995743776348402791358203777755410009377843292066133093279393281730630444494959299587626250828313168304278210203566967662501797590453136064268185812442119620274885275330398959533793018906913172882526504337044315753962148648405518624505645371430826081545568648551152715239379911751043814799430458514671158857147767521367282182162773524119307208831095525374347442207629906219514003767144051471197420119753331902302529032105486956248134972191557130665804005880418557057900830798224216852274141121477254852562687000209543908031748261008968094980435858322129103722098709869367015626599017596182828545975071242727297176822495575711747766069905883737025378997255508982176095168194926679514083575006216374691826024536993986410608594824257068221723001871786314791620682891155877900079377949583331361127847688577280980108148675807415100613120315521174553195305884825254589679423670966076818908280723629864225639997008515859526870749320646047754796893566285431662636059016527947085999377719500558326618611721082754283774836325747572976003268424589987362459831887506564102182818912290292851679491600446529487651197507612585694011652807100473925273915483407512652784702118773466868473401999099254189019442161927564932473764323285543742800989714482927276029902804003449347373794837422012034637861356014781518818346202253550322959761138110143871556238751275177779350456880733719420469623949612502402616257982139174381238656178304681011056311855689082074578580831683581702769384876632784455222738230670628011846556975566951354601942756431518762606096652167651967819788599709316140251714024807671597566088194984305443694879376281282436542738251911887465805684547553167029613982792729146482667047822128561935110249036011332804029513797114823310141146436694134153181533226170063572538575550772136973926923058252881654026356005097400949671145398782419538884436842801615676578388524554560111225298677880730853684346899654559797361113715114217217629403758272436553220010928737195917922644593707656127830282566424436741427261773181722034844826914796383545818424989606027778693992196020335234554063303812430070137160079532682106261779928455171018726443034834884477155103958216965658491344853661542846318003187579134705244618779232119133709950094411125748354439416083829902896959989893457050593628774358071475927738728298877315115562419650210967596375244463318428490714321069208363230101401630412179319644825442724347138844723844873788286699737292937833151488380903918564502483454354143123516495391502916495581801344457040607124093195393699045807168805221562439010256236453712873861461421282014674103447948050970253235361443694520725520662827680559435187189874302772888636981679697602609431210481485507266978613846245406267596787795508786379963029181744957519562167305626916806365395796746255193461941982667673040391834286513600205939919156014095498205380140416537490624984568319013894064551995378072158043807897412908998092941576727706833519185007560077735721335061226518686286459309692003697775841624034787141932023498663715774026829516600869962992416511861267526037757723919771853975671144894573245503806789211306621721427792942607793687924169042202566260330233670066460930060333100678256118729955404932677207272597462429035672368672705253673699470167338345914766048922234139228265021734200800812386543008950863831760563070259713821304665980990007579046926269069364934261084153731311510330643257198130901860360855478375864787227102791149114388189686259989414856751348902477378659698498557152996910584734091558009145628867387331525519068813298106247552561508895485324100243408009608056612579281541347936237824253573911144145825000836932125640838684850368164906216756205738602427701238813814073850573098916345896639815927413410163161535987178874840708753148954474638236623839084850364797918075226610879735742442806483427433676958568656441440872819359555545606047799021976219066930986929352819359808538839399544120057729761209692494655539257123800363422960608490642853190116884267458084146015688060103766349554616378573915351538701275128619724879537832798641535064083130858684215006169382426039123729413755063581801721245808420735374483915911568406957705159678532169987112768214832953874507658247036820183567619504921467180055084910243607713817576838994286767166594892803027404756532812674495700615665222803401120031977889357197156756087156044579481728441681750561889144301752117101618124254217352027626275692582175068191455044355917687837359878839894572780848632939289273035577932286100431696853522541671706559607231435914731997843279342402803383675947862885887724947880902310123738722129060955052501081938585678933845361982544803580004897802635130160196481008239293634659028833736500381898751681056867360073533772734812555598305187747898340171751377866160054022446314321498884031504528461190229975869585129249235160278245836598820346356051753208605062042499305431623056421139211897774099767643201281691639466636917635349634575060757707236027669123475604113499455944537498174786494551921037616911198042180224204512083360003996419482533979006100519845554715850610886371736696004556186414842609453884883405528920897336512548571651592564616926522621014241467411555675383654055617741786250458902292716822997955225846037158859994919116923891018924825247738189488898714006472981045189451763133118032960085590770440929646063525905749597761179586926245470882243591469394603046158642119469407143412902610129020376755901109366005661901450590441961878292437346907447114888320489680962887450226184975337298568620493061370023890961387947179624985042198288760424433667183276304056121208798284078768392295440676062699677800210828988396109226356386066651218452248385838324266784255165209678689495829171429462247287698146305292181872747978253476516654051113807856783775900049108461148639384254996138605134877670332655658932065069523955702794882798497256842733636398922486409253461808150299419956778770130634257798420918699872059685253213152876795486780128771988689839002000533512471978615464143802064595025085101348930773166380966987279691319592789606435941061962057003211736876129153415870441247573170833720553396643028183535241103600790128576755077767950123074061868245943003614475827010897733692114989777768260008345380013364684235214595167346116838729000253461434903553970111639008889939680285646363062664212072978702512978990159940694619814828739232758453958112432606868674599323976129633397177564504583213045653480039545863966251666176428450539003507431786625777456728666356499486402926889731276238333074153646174215006588371771649866112788087031611108144392783573048871098462772580618065352240545722851627841451319764265824160619310020276565889628254169785862150678249263629040737646816336884165326910692325041937157303484288286243754006160796748004574061783045310718362601222918253602147980508539156141658746888434109285836872178618288771112825268323776563918245856845755026551799992239846032582854839597768945007912421677794801952746822053159915731885122488751773345174536745528383840298323555285305864157997648343439478346134016676125728298648406905243172163143563057797399567924908251821287216034725269592316118126527151363011660864642831973241237703557228085638951832437912024455035204478727822032150729920032478226045000317800743670321072535428387768332905088938229475294222171365346216528262833603769376057673053435187769038005930853338765283602636232538305144073032849708168345962217615405386144450063116788009346047768149142913623981974124491778508629698540014854427475041504632827697456916536103356914854905198174512095973362847058054518492221607454055423503723212835455490404229724567053344338337436622104359767290571678196511843403729280500601995300214539240784794555182035082288456769121953895620084091719151071010150413560581157687165785223341001361108140245577889428003694781978858249093862215694639610154738063832784371153955512420284632990013495477657594808045211580770314698426074251923424431019786267498213505195158385802715601309907940451575422400802414874599814408390616579236582790985763575710020128232225012777538185313374249478139595013211132003358879003682651039187333510728626221339247480015542376813550898889338674102158874831762691634691186640478649690320641174714122858265119332342416039423241953930418877312724089244150287998740131233460809883244071049128393908948812264737428016795747512464845076493510438353813686668574992382026612096735497470254551205750263769606472602029295108081758312869474695616708741701088583576696612350723262854331245030229645114828385649755460636818828881490886653075061688852026621354675153444777430208072882315370770105768435674977508673101689237856514520079173380577684820352242750921850719926325308191166516709920483539924109454415340756194098487497523863487581548452066443294926704455313091449840739104191179531983006744825960896268811569028142974691608658089084064654035268044333885762219723922538762857682497212590658739195992612103631044240722132593502036542460923673300978656979049647688916773845355020996336959734376162833176348869022123593166258911708066512141445460738282364885996836386840293393716123467553757335672673711257097448258494896305538862569120234690719302216123242977903515707661550104970609064987333011882265001670867895734960329243634934557178346041810444205893730761324247032363375260287752189248199185348939786127703937801853948375558672393022507561781900028985583454109080529990496669266024123586710798123417544320717983532618372783898518499033691284261086431627214263594051251362265550480299044726980144287884201010417872377992937096177301166311734432514039086894388307738148354816730307629039027673447326185599104367409699288029260766162011526651910131254590073878961221402930192554156388796478079129331285391530856343062842723161120437389775810011423692039517698839405736483373274680438747707811551814485174670993656466372409483570345986179944867465163055338380043785329612500471186897633093333150715190565889062512940561809421091488685070048553999588540585984716792187499281014012060348923976005246336837473794713592673422095868131550647359126446453111568343848310547176699593386010677451799417207044227462645243509080783810794880826720202285760423930862132894662355743327774925720233085701598131613761467259369143794258551433161129400197773853261473827840701452448905916223517785317713433690706922222652179709202732494683925975165577608577884813966435466622804690371961953532100358953779061649918081498335649739513456761617851361915325413555238831800701202532002880824449948317999872142395979380496976453682804761039059414709306017677588839645542463182997279328510074903331383103111075566739686443126534136535944361567290377400743555356571271036399813165860955182609498981392251109147020457856014957314241493179910633724975219811421543914675412728142382432559136175095144332755461430846305601206163726890592292935107010742552162909506025172547296697866330412884485547058050352457502257358943458523804174451681946450593554396736736776438708753644272960897514481729852008650586215412884332960227976234876607859972927903193021112677490336419614939776218090185841933022229532582418688953955233611330816997836245520678901496435371690504089724438490422355483943334051493949375372353235453303421118124387923462102036758982026280186221382228673403215411693706638474411210135269052033663243925449279479447863870793605956634060805522758857836941764996896690367044567846097582558566543135349166135647901459233793143294082451949823764716762710227270538291418792434539417048693095279271836880475737133284586449374496762636308057289974642910226972965940330540644839949434080150792294210471551495125915137994394922928395885096283536632125973107326515225035245329676828265914558318649777222716928976812068808673904677063126127382029957662300437640459303268083407236932590604041984111430736234476946986165384493935164822596416336218767412240994767922248099260584930774071959387623320257275921514334872647648380976984635817771176416391880276571422158093493186658139837521113859776078670080413727962446226015779157133500201628018307605730924511827977050249880861457290400633672698235206805160156830099881253723293122192971270920241493837368177055564585864707799582745719705081021320420125790950422370773791531147379106155043729618602496092618492476086693484028856860702249594227843644288442374246077069248847849116327754432973878689148619851292849355024301880088310499711390920747613405510400238909723197842825299229762166387571717583212995011166495905548929611603019499808639355044452226972232010807007249837874980223009999476704676543241093737605266020772573603376703561377338158411545040537920923086332074264575102952071262469064235097893112962255650998845606999961112609406295149479675420828854600208851638077287581183678492654503133423382025854644905771712708493759526612053550853935065506823254878610687099940650801924681182261674805591822264609472675068075175084346654275876264567265979854575230478274603948691297745373668739481015979801200144647080618671829159208063867764113421193409257337961272001839850400250139325561465526956234369583816435306019150123384972395404076014450243892782126157770178500621065740343603429438222015570635924949557181033009621362297521809685402555237395730558474524190876043890900321389349467554392645914330684019845298613574948225346395838200505304963368567323792732801935538092297992139343363120011123972819705912795111107059840156229190902742411818669300577064739455358709821678963629009846905913504432995911917113851723958255237494737679687671868011051634515258411685682293681673862713768578751430469107273431085190969057319106956531554078824252845258192056177042164384544700989135651652522830091148572524023280163745191776533992139822397484049397996154535945160762189931723789539446686105150772638229911137604119422722697265710033371715194665642193258656551976363469426616785290948425216601165145902604006345116041190079490339602657153483474337740049039660628326508545065305006884217957647414627414544625651618051242300273857021734297274471091319509841637329729746599764891266262957183496165066104371300398423240380051697808887827163569277463646660614163011629788384026043372735063064721318749067140664616403250295408051961946464981773184086876259702407313088319315437268192667917668811368775301645829463744618336235589236012380629225097196218955554661798063853784358584884962312649164291010934240531825451171577026655681178093378756516879548444740965194660511680060614166089690935967558584275666465068751939161293829563301896640144709016289065155675665996183872973962358613897386416194161727783644632196541608839235732987097952960663426898048829946768738244571425638124877501694059641773690627754281380322979862879344450965340954550815783877636986084926474987505917658091263957104171609240121532888212697456578356459537727910847901595766145609675404092163325075978589243825730445325533797253980483472804902303242899056941778363259290753817787886878230253848380155520910007165242589795286917032448456279377813526382410560899244297448402612434798982036595591759137383547806585497402126019606575490072274808295242087127615889846607026858198484376804871049837481089401658970092312150613888750019041885748519376044692986993394687077959487809414968390447366149903177453681266560954881608589798041120275572009942147026961289713005664095066965715214136423204454065013562997571056663058764114952672076722365816766641977846461405844756914430977947848073478320687106536100274045558281634349917987064764214846065592315477930516963295426035243937250216188446911284721953021320113991339162354892118958452027205461722724612922747876973420260864831936584120983247185440915137511900380180803592185921699326666705943462469014673265894979501549486546099331887769410102266926547422215021967325088828886325674559749347945335579413367324735445255822720220070444432809992590249358831875492719900806536665482069565077231838570625373378190995050669074893562941732297589417014563900844432841659733697548651567051360808479056387327418043942636766909957060035849246263149799358632629624313123580550465666005383133120585904406578119471820053206993379433931134041455476564368081659039167543799897812587065862016850856485217057629782491845138486534170608886302011665961223784625058889180839034078480068474387623591489196676402431547882536460278218962950113458499730409820108040436601361462409067722249796314948502800277145598568332367551830360959662843597308373713267432262837004913822662669390498644752720881289828279351791666841230750837382884452237220585699762075859897015669908232993543191773208551700159892052460963882294715005501677335967808020742427434972492712736707973872991420474829991392030014083647652380653516404023724322632221918096407525541276086117075320849835753241039928478739006351553648174035021564315062992508209399757019170706085919113188884159966092781630374052715336102631350022631649446607088555128096707761211947634405138609691946472424948201946697684436272580658957644079873344639334923177681710588682686401018590811712644939796948534996800062700109698736443218951382463421297906903555718045293365334609795029338282577327157904583767226068955146167180215611291049808330863497993650793550244136913319244359593071248455111568984515408454855556715245534724674150940110415858098772475238644095094942894283819473184408491397951150868565482946551182378598330811460836036667993555789889858970559820562940221146245439664406376906572749547434871978213410263608377748035738320137785868906078838526014184104734111345355206111614073558929852165932493250734123108384279505267009285987886801339999977923678731842642997323510899887389329139974585618338062619866527227639890053158687960027048425129832237322680528167340061795522219031468348771802857612337817911256302307230605233440581165101645257535382495077757072895984176370587413449472272799880237358212610332428016971095318140738616020848589984717519615174168945490291545827208802835877376061428888073730994665951296455892504248837143239499745602287498212756514226614886552452421116109840963244354099034018277376724834252611557054238748742966719191537668098080578856920578269643092937762010802114219214996207270323787539723310317154313542322520967862500947247552326027241640297773333135987609497338059107230382475176623406518024649527699402030520471667764049423479137251769185890670239149580982526642071514965071590633389200550057831585405475456675685475881658708973306791658214287019007600892347897908821213566232649076705157817345957166388513610647199205887761295972862937149538723954583119412214646516924216131581488009996472269041536611129900058044129171807372525205264316284253067967290293252146778035099828680093306916601779430130423950111433057659120207865818060993202502588277022763107294092958021367620191916790974985361940161798390677663787315102587462442045325230140521285704493187267864452303664802777909883864449366683637447112333964994195536894599299303853629456606198764934167799694688924516831882328388138765097910895422879060196626944555612153764191483653563366494197002673330833866702234593019445542764648415108928941941154039715595010542954256565359946305750400408699179313601316545765911965952971037030727331337150295551700696040093476426706243743171929136909568083732901645666923764739786225124627871079445356450126186787201786412359972444556639167793788898768620768063240189788629302072392112077024075611612088432742892398914913764612979647682330350109285242419213210179910362231552908203589036309771279501854176699632564252817184657493286157547725770547760487061389306290389875165293506995024216244422780816120367937822872596579302729927692657823502646495716526638506318287719246457991180953402625555133033782222182306714260317313946094359532310523988007228296118053155768651224373184903513603839454369540463634333208999096238352375629013399477464622516732838965571492530922952661673665520171164374493210095740974590988519672775416653142514002646525044243300670006567125133981719927800661420228639602194397527656439791380064952413034206411676621152667253622717764606881175228084227884908262898035744244542503116934091975197187934090601973237041441199202588793415671393529752966614477062710661218242202745078365248481518945058917592069354274907340811297879490390289990783735666044149465663656538767513776833895886434936551047033664682183523781721697089626831574425193654371863923345316724802797164400081593339677194345300074625334065725724084353790803827110674345742130348158637061976128479907212870709929094759688908568857084675224817949095126137786397437485555703916441580277522032670452725944949768887192428322476293429167973973301496110080502454636787962120601921280199834512154968267186849308865369641661664006900388923575647622072167798862851498598253688517000293599608802738477507740597387530977537057972274936976617007605004699638699140114558770309891153950548876821841080840586919538085546098921967817613431210026040196503364954362718500418013013210867314493301675374156892391064375095854694582943841503169752031224943089477997582794469585902459950329287540087501819482515233454844940604420857507906585221064851030708409889630460792917081967899463242477138519459746556896450050297083679315654885224006256662565961321100101130658565624249295621352661299462911018622371125595223480010001492989713251960515741922869202158417334893885950481034770794216542007088688613666409992140866168862864517085319474707482173136325679912794294194294364999922378880861859762730457478015243806625959382978845777624950302471750079208726804983889353802375882633449024299019545165011647002397026641186688983718326107856797143172982897238884960766876844621485160692983021664668724365898079980748655840241328656711714651967196601629920631343869539526455984903508399580399855871058855693184044576106511034224569849239924506390677393504967189887295772219827697265226990891162014828484867111286431524786446301770498260642813990042000751982532262669329742403843228100791553155961823340934541471659179602597171824131147372896596196458991892768349747606944101314650503320093315990092715939570174117628695073834650260089859090335552062628797363429501888809102797255654258944635336755214233449344956715614280990003471090143430361952364931188971506087231210405261616718348692896541549922991647857928640548420423719221583826313173276997035692087713719544258084995386387626470619203808511164111248127540088212895924956421538849464896946879536590809348007351950496881874888774246535043886348774502919315101808234849531250571437420470209328292518998976404659612336784596194989184861819464183456562946690938956023191848160143701780674689296600761339258815152425616800245722134298727022867366329593660504063106931491619596253699257378938653062519355213485332491836516416798311200115531227172913812454123651395016557283410901330921845664320823000200934960272902250617833643236872657400713405166724629230296586535507637189718196846540613961252477691406859704051063770515637366984587423603790378388598548089143264822735859024448814363109632409420256472828840876865230063960120890148984918033486726304165029665263549025875547376757230832979912815810947276953854903040703848824118483088729580311980654453379258925451601866428915413992530348120876190309271691705850147781182799731644357246028245743783832050228998513409453099410021289810175349885833197824540034373539802380272136509699663782359518466110874482099463337932603178103930287129090022342080867081562698363114180109762349634593549835917914529443482545364532204095412517734885924159315492011885205930731689135169676010749744971903274672678323758115814535934877979198417640758619356696863237126474349142197246342084051923758552448588079676215573889523536715914959307283689416821813792153786807453429896181210520129133490577835648978905144192239435012647124617165654931424351594755742678144945933292755159523577675993532553788921611914296429203945668059799996492994041871067991380067432491705777641229173827885481570668323465450383554654556358538897741041310182240042865963996765736024989478295283237977393751426574839474203397344076541899883919454144241054808700351554437234203261227098655613953229824204534009446127024872467785485658156480241144122143934328359564353167574630027109094292620970888940654042018977901915348657820805167279884218187868341354847651675746113916709647471639292519553917958175422157488822931918079139859565188868330235717970146823971457894704720399193747628532422799439310833363638481213433407736656431754989773085239202121508170579718214816266920375866807094205066556250771913521330863786610233108877002402173396931781331514413474388118553650727670477351706357640876133773319397926327078631614399700788400178590644927556382794154570577229352551942790434698250929285490029417210886909054829563684905610445094945437602110379800615110802872459411814074631819946946109616589743894245546803801582762405469552149668552436712854980800443998048976621021618812449068602380982611542637281016563849414103946539684319412488515906090124044785536710029004399266443689833722504086509298057000205052650129228312747958760716715328477058326256052513390458808333668740242775285023852228661729216816335021156361206762929025580650500280394811255966050522441118925600182670846620632476102573329094361822840024159604671673671049456320154094661062429526337894293465345957069529634093484355314872340581835327658176992915008446920447187783800915392851875710508974794944992955802465577344128664548439730352195270710739491967806839626688527652703616591592983383294412078870479436297071668260285179489585608249328537518137035801999856372773426569239706463811663700767408380167984476720339664712736942217973326018523179931441236490244608395530865053571031260884459488257390421750802653730268478873767469662612170490259919970079411485965680365565510653011499098674750708545774610943282271268164212095153537127044675369679033787634657466832392853703956060959790282015701799729090436966164416665056909709030274937476404097440472539828475197933081511160446258134258294651496835869622045916966584933146970310595058495837757559314386037437771586652887150324828599473552786547710585371833957745201325881044542809816151532570329994236938789571746862977794544054957096975979412471350936943502616173183084661787338610007330729351028842539589540552776868004495786579882455556790668130142617805998112818099109766002832707789488889471932912022396750015437060484993463536609458849396391132270358854957932048178430354615091648921760893310583110761500308335101866975952516300220345955429963426600680525603612437139131806838902618563847860699565184855013101258858667315149611474300126854532485341932918034180387279994144759844928354440236184338221670067051342823960197274673450525189465847019159972707326300632371705764283991896474554364448500650681904165407025337332071042632638085812284673597888159432515222979770243692956199614427907922389655070526089741363674050685235379952527452366875861207210491119203824505279489960349941082577205189936060609832341247672506450345020973558583706740132281831864342910246042382673132519978146360931195414949596695974811429610778695781137128284612479182505427753056025345443836825882909725320211121053054746319143023742064263882791328179988587053482200500680427173355714800674616224774822729628141478567915782479919069273818141045916492548050528404247088069779539706844460483018156161799103849800549762013987265580090088021113826811767974733008370626148909455391945285767023192348030132271744903721526658915803513131251096746160917395086489369826581399679677629238595511703413966697809758356045197895507742165138380510047269245619948407181525857119210830838772348154949764244555619367420545825602175184326961342054578199972943342476073372179461633419746311924641481129728448732432348647751055874848997378308617287672734376554109182725502718051588314730427789498434158928677606250524104744632064368679922757932640277616704282384763998997043382156539766036007592299836596023455434946703530808586300030100310266402517397015472720462912799620399590890424251864201172928089915809397811860222578724801981556698143480014952623595726724584884179574486659666662997496282954939657189710023065570619379171069430649806756145321024206776666372040579665117535412284430326581497399380490792771339422325303553864130482201482532903492005408719850352680832357912303743140756815181661344343482222520946396039703164920949405608918740118550448149586232345979754148437617261717327018771485275617811248537673499673652282314294349239999027699024541491576671828811803955505072376188514555113402714723224852940192650517041124652727904457671100420317263453802442231831896578116640752882975223267884717123691737956250064049750077470433382777999140102822193294467250959771083560583752746952354292053064526807140272706237469926212977878835293235243442028410769630034397388510472810509395994760840827961957780799263889487209115378985148700013353248202191668419137504156803992540182422754853456979608357941461720019038703529274480599393356150983733815682548349433349315566686126404454532570174639206606343691824475320018917791634913131437940473530590478135894705466877846067283237365499656107158176021374239813515124417180639372028032885073726342699780162724740692241337190290527578795552541641411634412646635706452617480027156988876138541205251307019864770153348845891480640769419056879151313616698166016517924369755647200268179785205110595427891368422439439946935297847446300706936142334382007904704867949768573847633948955809420484968761971611639624867244504676715526966895788777698987922941562011099952639999560387777044479528697619426829943315973983838172686551138766026153118767393622460048739512704839725106483331809196327908972180878067495324977534912135552666468225286686289282389363381603059496161504884702074087414720397769348613789046869698692455492390885534845942955537781997333278853291594718658595065078062371648322082630833078582909501838212078114388914238833016439403508113162737683671801634356496155593428764379607152169752697847748956561590164324033034763281105596772303300798504556435582399574317359663394023556380472603866252165447226703506190539572895344366645442155071247243802519069984873514106987611423594207788297954564844455617115251138760218118135691217158939960783568670389772491356507068212103765997217376321802972874727298651985521259775410832196468189379670450177783769985348510436607869447537926186765651931210576969805808325429811162015918971443907476185546054852073824263046343551974709275843345655403786306915968588958144580284637924273156615783203292675229718940309004185159496851776199271128886777404284860118313964205965556989001767363003515776150614776712047346417430754016380129193218563925223665277364322022121776654682563901285750594261281096973379099726980318485215099159022315132663152143307945383502372975486696993548136197240034259719075918628720117327838439375021383592407575936123173609348054258900464189883507657947228507441061379424257260036952390561863641652692114594891247448263605345635962805858182998681618931595613500702754859266482623015549876106073049477116149063730541431894465629579303282698232489743250048301904889424779372777790077428575783931768644939927610544214570140098971532383394989272258276175713359681891155303882132738218092737074893578812513527271145826257978182338479723454237029089073758995735039807836969218771016901497011452787306187972967200940490232396198324218765792779959389676462919381768523214502791776337362205220562481867878996388283940653592109694999728987228011574276118853230213237726685871701345694718321228215769928331755452662891320094751075695287314862052898803026402998888356789860648822449799823924104867213540431483166803765482655834710083415675472329245642696989420955016725794486401716474761046477952211433121713293990035182865193079587195604768764714029340547437579668070955352774373939173365581121129261787604896299123425732157438281127275226366954953287337958975923765071050498068947082164632381697815330425041332054116689823010377675285050738732926150913341611534352156827426777176866272781776532929002023083544525425271637176009754256698927767153354515621231034320332889279380896240781045642956074815858320491253945287607767561290266664386339002982044026936643041507274101559155813524323709668072049165977224459543153520873165893102779294626708707746136179874352739892924536157388941551019511131983579055594703259062545875750089446119535072542870658846886025482594210804713649391974407537463968058103418633817497326057080645418503903628267846204764815037985447956271057510105101253143590311859609205036626735767004647065614662274686967165010305533081654526402114228588720896565140034717544498803350309473038044420545131239628948547550909685508467108045920549246646171069384688361340691416230106145524650304148047932966570346172784996173913750538607460012719185667672691467192594521226586775824200509299781382041232955139189362559824328903555593312251546943660420972326408831815743593245997861092640694168938314996613038952141862592375647081658275023322897257865387723634702248540175048175775828703993742020920957033912093596256190801733858172737147546105138258518194759886908883219397920470331318115285742549913025534016058742813356394325415950636193717391152760595398828382919627208144160786394830379762897438982613240039005737292385768799957302807056001109576979518995249342937532699671156913058469715915641852148087273246716405865268141951120800259057654503245301390107368764486155186337284173777114853549344829969356622883340242892111919937353714200483790207235256947929689254184717720006299977797927346177127245869782170579582885423949421021348101786838071204401921218423849032167603717134697997071651123956634092105471616007373861164335696912724115042334032683570281348793226472435195387567003201734617494136581788555605373504178389744022417354309321954468354447817273091706938119806077083492576001815438541033283027931367474928855911281453605910128413638138225875007087364707284408474507448655973584850643485901163366580446598725250942758184840085085239378652288774837388977127067979322914448334031351950684974854628348049411989977834696685490241802879957926756167636946295923122463333909602689457123600062588829142566695715286146831174667202597813751521898040903537591521993594845340379544566175712903910763355420325291087775739584805528386254157832996970759306818098867354085610375965447460671111147578231118134002516692080716992916190242992686038963726425471992422272350860233513534562175999349713331527314111933109648361387302240884024597505581868419245042190441390617557119638398247296799860025230486113752988873598826479503929717687132845420522031763050216253471416397534289613787025196907901713298832218667074442066373157151670145105219947496772009960844545696230226350420227747043315739456295147092592520009328848145905995136961663194013927888659434634476437217317288801402264090627592797649282129630280477384099147240132708129259181562568065072597987628605192773304242020925895144944934129311343528182009008130301723625988412956888287150300940542326631691831493476726630810311399378067514199737077244128157274353417602518859074257487460348206139052298475271401191975457408545252718496679446256291505413076549718182376397491905283777243507531289229367190909650030925794968311585780781858446323247317989531841747467350921601210386752330367856822738099763692276669110781405426390285634409527495076581645033921853256576503625007765348450329627381951772878136956455539675844345315136521032102959151572398635294614045151363945284143492159776731869714218427512160244629575322798347044652257618006904900593987840075885350195898823678210350819891432122302116891870214615820456166235137267545670864621683977849857647876267418273353125897968934926923747022747901284272301738633580605763172603886947574074856585813658469841790508598785761373990944296446967810813025467562971396886553447236035298001720802923696595149814948680290720337592579805995283865135883654307738448578470023770955233823220925071728137753041792429768305734451323439020695293458872561958320028909992536373381370910690900218149205628400828947735185535324573487770330833835126374681222801309976569446502258021918793557297216354547891003938767749209912635895391152646053634050493438413308096506691155587618018132994840853234821188199665440409810823222080866164796070541069522218667075130352391946864123146817593573571085936004950674861088882114677117373818172198463259082021780015610712427245267107831698495567589779943840208745039514079162892063936822117260349653151935323957949618189200595529522635917101903338564198907868441328168763381280006002577433623364118131839995226136545920468920747495977233663256349457689487441866434195873647381157765948768154377051999058282645903153008601638276440887710047235710530105191094674431431430434615363124698852799825665404356513091912986244727413417132796553203116522577584980793731413983180449405479592502055017342410841067804196736276917153366282102862915060799496589457019539007222331696799290137342861912281754060163097249549595196093241518691648308767116325643806626645294856377259291360934901559523127738490444642132481490295930227053652672061198847834559810458417337134674328958610040445253241413635198267247237507453302449782872047676137403001167527545421153070272020847195604155892310400014429695848644183921505066219193070896414381377230285955842189572184530855261077941027040091550042231150184406420511217271666717579253919751636704472531860044858558758003218908949182390222362945666353058045987570265386457242715379814061817358382490162230758845518705628316526680136365241279747565116685774414381564959834313557550062600463959705960573748794292099737731981123635375890580672382145273923670533935542364983151346932102146483758667495199775458285615551626281045289070220453651273540593611749049374860365828431254129448003459924351661464322011612665050166243250229697804994618259458473377492262594961304744581077352705374669154747494820595202217137449399336464961212409869789325497333555045250505896039040431637277334635749099806387401606944144833916431059678759052422461087482879857140748956067731995543276605125373642241272005967025215338825353445932918483131897749683076856159627308509294569058100295322317557262301522462785015031600101016606034994089035621123964993120923320579835324045277229544987780856297950878389758681355806524197221057159658033639212606265569342448517282583461542526138875041612119173628613275020207149802066326949508231399113781690970375851583109185384288663749227972121776145360221719851077111277359941543267134356584939228204791118688374247903898935242981207627683522968745560629573869061627970186760015692807136815839329620977571173885054288217981879624497600387421060113952802385096812081175866062251866102597472853542607640831071118299191185919595873815719986049792051264378638299850038896351998530583561247385528525304588053240488150040202174887583928639820072648016686163493562992325005139434245072200117073390873368661115671435398248827582514029102603822296387195076660779581898783726919366367925675190174023217625016375532915891559458988149983462181818365283887168653457496119554944885342458548138296551379778894945814015235877195202780241198820091836259497491562533105301504426531919261600938002900852801542583107888812343110345413288547430547701992583624633219245123316090695154820662051782867344764601563817797399183114159910196001780813938117300043834691224521747138732996738687806864237215689629853859610366604234579962008153595135876681322347339056976083114694186576621331970654384687384182685706252233338235447650008053947668510279042238747531261645805447606704935788827089258412716445531354933407213326100140771148106442008770339228832806704126369108766833700231987294972702967474583466040438547456673202032810955215051997798127469347913030715306180156376869076461066930567506505717926368364594519838198404584364612413127949742104868523923619612749764217382553587131536912425711527336228728650939041125961715835976853370038974178565499301617801542403715672787038328590241352056615919262302437790816213729264560752562247236965056815211123895644393255483519071593986663608877339351509710129559319185815035537472614979608437325523609733392697146098720692207032502228427818628447795546915849417432646584532221085818197454221891080036872119975636122081764792873154669543336258901412632488778864432912255782458569816304343801288573865921621302766581908112441092016169707673924654547794953775775270055839127727299403313672509459048451430935094632674468384283314033293103754803336711588058118294250261399732166526786948575381406800024054524455064368495186694186142021726806840375112756711360437239460957640180786986701319061975236098372433399228728931364789873892058914773144718931751147107147698328339046513882475744495586528250339277035591205911935297044822300329003207725920410548777641114242687981185779259192309947859733903234918820485973401033714472799491604270487154914910247581051497273092117768483905560584042392844689176072649219044954981138665858709409004434564593662265307495402876617224873691495090581406527527308488186302128595754790942929626033884578724770052230315778666229498290490657215092845121948747307575556074849185057332848976152000416041077612724772261240761478437293021327087425502777856350632392588468161296874379063575944003278416121854948171099168954459063992602914346111931326935400742222164713695588271855149451439860157193980534512341987008124116525666711712868168647841743049585395300167933706183752162697531198698789417575446194033769882868520500018543400101162222257726374221963424125687338561390590137984820149875731778514636891062167842978120820074792471387659594153505738273863860704527740883048894139828284079158502286507203138023937907997826447236630425649372585341011143722034223082639236268688444170454981455434605018987490024590594155496626968470318663930233977311759093501488994031023825428892051490069351080508617480824982354528474404997888866940350075223929251270939865566695987720190199701625239771575499301278755674173389108654473918971218713616675954881844685823693379614383320702673312289030589766123951307023284965758972290370298044560485964384383608705634057852265411153166904073504628448006996644540018282668894648580705042738311196706111054397221770565314474158503976878367155279998338524538722704419674255638088002446983080344064834703190659895623690164704253288749129813153018461427038651612778040656171680374238419410743749661089497935269436518760148555023432266837457291949665608517466562188624260620969489171907281747638693283078721555908429012178060916230578350122009777925057257119133936282759054662167976505254430479856007214440226199133356028440101053675509539615614894936066623648089594150401778282234724548563446657351440548530929460742839554734868319853341436394723921219391116267639173102202518383795358753310808228808371894477468190987867264366685790195110428961950271947131600675791880998732346935237906640352255312489464568814666178109621718205940675456573307754399973792799326104771100065567888363724861211800762648025704344313246806666692694877438088823910800193853955685692895177023829996691097809633836709341188403771781939538281297156141038217785671446496931093748656681290817975626259834808787596761122523837088734172404334853897575103618528339175148487131703947445014756423401865885861847661973705514337246578510176681899634913518093442789808245765973875660751522966912480211464059458777507301077736148603376934423168494159813688136787512510446878408474787465889624361430055694847988208912420635484137664283103542829988878720929860487968172685198337499581356221698032780374477776829107072015423764559353332682641579310272426124764290349472841608689186730933092153108528398825236128691065318573658669378948057177730289624831542023955841935239183375377639646789889721205778775502735019156509321172467859529278539593198747196728487576286397990088435429475424916574490489646859887339251216224794825155730401160395765586366231058529418549128852473612189734925260515141455462810124221374268370901016461160451569959467041622278744580890249345644672341865060341995668658125140635144982983422890977074874238968365772868152552158774493732931641638166027509288945600587957361534643306361390318835028231587921652771358500774480973877327253557684561605159672482359946548176243245239334922632845428715508515349809267852819704673958855798944092532365033652709538618989969932621298498771501513656793460615618843028587879558212345169858807874830290999400958646954532339377621461327117921102841989300008236369010469158867138809015512061396076270112593592523897602701906742199922385144999984223648590597169879577574082860138029474728404292790247411123693050564660480946135400507338139767095575889660490551291746146052189999570413617598056511259249413926247639776102251005543747139234544901964489648516735854435723849942895989137594481681822837495717523466936370107087230679776309629474626145043598018557955767336862601408237684045687152491392485836563274458777574427346844069859320021869089945710994148652782201061077031253894753376705121192649121678020233886491808772192543271983663781766050212611372295799995919404066693696092458757701758539251666821357250600279773347959733257387183410779684477895568001701222463594177149803345424900558051252833902004257532272410125992132152316436880131418601685496025570968429914950688779923480435854938511558255126176761394683080955974635465579040089097885792811050961241476109991553800950513154739501983972226583187822536505426445520386825227451690263097489550847054608666669137026997818166809202262147664412370824272422226956318431152716000805032501379501409569598408208915069567141213926285767903900553131524035664081404666176157262875105891508752383395052657624085337906623631171885330324001212314234607201572589667276558199194098812717289610355330139607576176682478360383261844811702365437224445492680374621448492594738589853445875328327692874509748717741097602355326413081107585313501553030602760387652877699765283145691090880496809688003646853708329027318390653854048686696358744085400565126202863307182176050402506775113495164672137651387792104713712312667558780821500781439225051837562876748628470521610794105168374203148191305650745385978375302241643459843735911343383849278221556679090425947714858028713434884500212501216102312973248821317580233659160692432647334053617474030509096628470365523026812702794432719269436698390272986687128152094582175616903003188934648467700264569515340374891976004322828340065567439803154859233327565592055176875066333434028958520601137095097125745924308784464505738200232178404764487178742685856868367686696293235166588680583889946412011329251947505827195775895787381628460207645282884417616043166030855394212803354367288262957528202153984692649264178288597659507909566586199900572438815717658225958797716062479277316699863336845912623545937470426070555713523070006301348227953224765231167265044603006466455536238556707082690152700830936670219381951584626695655907465721615931708174916819820735606709774504692603991619488967952023894044314862815340577551979447234572144319534735945134505688225785513129315877099551497090954979423121644540696527566829445399946225895580670692134310166681167600136286098053251139628752318014664703260344014016522411837148834369836325600493102491660808164113124218097737309117944818622902555236449878213793535066027042175747015934065404443056447662144263427369904870635325695910346693917271054914340521115210680525186563958760337468317791206622142529844251358507653648075781905609575956212026657323078696462519819423368737758901617870711919173139672875597233074459388586179911974061039910619268300235540468463291137552575020810209013907790880358565533367004740576954829142975440393015125995846135062000581997705814323416024153497552503928883029488693295404240446437362971805856318940227545484130154523635334341892489538214217783035463386118978725417684974674805093677010561427726347201997494502766012193127070879493981721665593248233026669470487302414396841256621819203497039219916480715548581894756254917629469052859843265808894708216892711805201313780322545572931331641943329175326935403642089982843846999529568260752291386397138019751938168074006504904468696126387238822888370554801245512301329039360425698528269297023473157387902881535047341872162611429836205378536066593197958623435014522816930447350826662585795740502050846277861565949462220795639828357272242230446893572039485452144023926376511781795417379038464931725131667670964946325691786413364856578292604631273541194436069764338996618562029590069318525006283396932377919909855192680483758081406881279658810310705016576431405807239641707126423447902644387302712938568021229329740035761447880485507068905120830365992620396656267820351456148088379145109646559309895271441840680592776553264805799449164204479190860421880440521435353528430272414861585879641949965496949834690478732784393109035841532256994154490886459559765079508490523455162612933935048681067436551138754630331660234801568065347158450608839475897164579975008539795848303558305019930156001916630346950291968318408620541195352120405162153154755510933699997495041033309454262687118014792647440403939292853844256995669145620467493730767562625123985380797464964754224738349527037387300251446065435718364548578287907592713681220036645530885027708322786797463050981838990623544935282100080243560501363250509646208578790914166915327591531152671963218087655449695319461437747457326637254868727238511525999280065553587424373824760722127955576728299970198911550258933008064206719525655069796361444738922019274857320913191364546518366016493745169156376746437061624292392381716419453737214440807611730983034678220997003303568444299673716610272328933972847787566004141624905666467908957163991027450979405691436715744517535226821887597103808603593253531156104154148161329046288769501447559467673969714318813191349809683885511055775256166188055505182397143075535602758539940669236185309953980813429796771043625514492061748306124572261524100628947329555956569380098789483464183655970677099221637415304282293606573429776060454868153587045451045267067682153901006090849610365077153550696226584162186765039560739600603474489310880405796051279260489723473155152603921677880355417754091669072221002911751365572530994628115810256816416093990896769904570744849984416998926047747411338259327650638264448270523634065650511054356201038709833034615622942570272379058236842753390170755492609254698210814137299702821466198741260309625163705128466578593413631920694277063076215174725327889461876896970105382688463081705574490269358187395312112268984811537390958120284875238154932994195813653616666953354937875093203918586755220583641452776461014061518956039894887870882791078751182202711988281318087647758694584528581389813148203448706736425803430797299784494114641055074517520761531517251072511972972291321101163995620991226362467655530418277409208369796853492086433074457961348776407912656922276795085111778176263653012788346497908900950852561491892899086705665716799190454220037550800484087194577391358630544673909167623381383844195821285634451201377889512672685372600345292396423056593850492086633969739425527988275390209375734044833719714085984394104432148552493667392405892309955946948898855899752409614728668477297289381940878507185794191821682018067538253122489835358457536559102060539375739438689290454710129212763380141796968487728210291003987092423420937555908079614116972220782771650471263445855922838127785465994464959194585853144578405342434051772235927808581110474879307999810910233965128584805182288429595617743406423744360070485692249384907013693877633231946144226588679526302191548850190124969859452488186966638256869431349675545473493238065562267737278187571454625720609496782855542397176770410061344699208476001620622905639915298274056241633878950035496757304791200011015199335975978012080629481224177637176377875395602543001275806976325606634587063810291485922751943177576179272121981866190437293660402041931130636166024482937353258494392393692789186605693899128893518455391616940446479725948095758052897036857795974278037688079317347844935817723851212638669504000789323482369378811562235265809392168479093829376134523184984036019860863407227849546755202069188393850399831676883186645565408811842911525253357166846604411184577132740167849608683931710797840204372463529112987372154067041774032715551378351480756598814685961869574251211379007477001729441360298026853030587844876320275897486382623092341263528757806940024503233770992252844864962318465434153294984828329065791721932290955988650724939274276767746112826402750738356244852297717395965428400883918404167579899669697166789215844219293122503232245666649679728114141204922472029469842182011929725452059181020411132824526582724829247773398166222890410667288287439681089587917908392118039386069784334987011541289233179671852597283954829179554432957637866654296654553123906403236032637139998968463765123933204758568337207326370327128958907504940658181220817293856864822599045806116729736013037675251021579292961357119976483070854016984673571961615912605120086443635992651722459638861122935470215648863594494135028474082585214915368005333899413596091299113352426850361977781404136753864171252199879300556346289508318701685832781911358912785147048727994846891205945565997593924537762050152074831238867233853787909117531595611180209380882123490803011484468489482918655063310628138194873548009356499873391079138836613751663356414377016249090060932298638987696709653591248204703631503914515802590039084548813434804998096884901379539583579113076995912404753983418017327105074879153749860303943090990178383286595065906632916255674557686274868201564901524574580921542992530664113778871838090369659439408125084621888107864798811664936449090475604397468275547351511856258618016988727861723393790460656202256026737160807113735137089319895223443689841356592347375532665913806856498056534609105256833057350093118029255658466488470955584144920259843102726609366814073586843167094597732142993352035267962625629933235983850458854536919537400391213385918034810030426179537074799543666894560857278661567676417290161802869689703339602839025276568414722427361125517840025894310475580838263075203522058339691927311603610913714129182700906321717460335396263669983920828625982307285279662332119157085324839202330179728170226366962761803610796727506234653188056139628401740908345559022628243659787237381215725971902687037129014515317532104805964125168078099782914789289374135010987923183895247262570196765251307946599532486890411935890789287092094862081439232182555088626468908186230389200206436249868703610998834639721563589841449289145320943492424132641610400890085132651927651852770243202871426091801143415544703594285322651036615028108217921652510518738221376250647357342312833414506166901203040238958308211104541651031789704288996532057720157939030131763665504622887660998121615804085042754012227733670716606422508853996982472776025935217846608086341382373539156442030321783398252433429691971050163706362487903687074756460602039275081740876454675049799516372275262465652430498969052783018838198995646834483744729437742515426979430461140270342251423204517079009503823714035084446208808102997376904416722119606744740988469334551288928764771463971088438558408028178533612885807001038204105754809639875212468746386545664523309418774660624269482609593500209624953331130918690930686020930113058710475089012854967964619421864434992881745757981675083651352120679657904394694094145841031546623985483150087577933873747739444235497935762354770932404960598097987500754490841938072181199604571212395390965384162292631482108756171712030956201010774924621837197329456379191578972595323684377848152484400182004740443206756549595140999347375908574079087998531338891060820924347507909939454293329998570842082471749432347868947932887158123414915630720016945367298044527942324634226340035218296978595518695938561891412726016554207125221627427809963460528996029644782366442520741711478360616782186319758778453413467341334549765389897562348791755971645587072209947994309815819977566025964188093107779458749923788209659491550683558332234560660085940372549050892275583022606383882350409618094161839582392417385610384786292110117797310339263352071759664743758341556803127328734839725763995979724623982056017747293101021324096793603070254938930723696337056371853250776077596218747471445400020966308864560225417422842115679892148449352476289939894183329123683472236437174078568181227015359736679099885707963659250352284108677284292643587055915783315857632905993668030763841820729968751036828779078876497526819198308397180701645043188224462243807538633497894398941486207193661711308409549026105136476137414431802925768314618950889169285952555736262551461442422815131110311835765632424825155671236364578405115867379551226803265351493733972308737670260872242588817537928315067521032894191749961121905426093472699825081833339684048993768219010870134681341725574803847819572992123531343148080495276489180548654422628048642608439680059712953083589554755428130965222967529375517302144590994099697019189619846367963723978657288603388614715222597156004889318984163581520528848605261719265492311940265935215953904995916946949523393861098566325097883687936765879882748749517744273128296883723990934980101075593586521195152840574302712950225546775800764423878048724062917034756406715429203596677690542434592117004477287313493074269784278597243736256806034601491642808372938044947275097553958946267970312250436108472703884675518961984457776747761265143559667565460382674603500077172452753731280031748791966101833126772241792559015087202530305209039092736423614201495670662996200559805431866192708828853164598395559187495218126513196389952164758465870138212252231931215816991863363209912659997577283764723717023753524497887238651747374567448412263428901516682541804928354964385053337713054827905779657157721218323160070978682196726524567434825732305965587086953411249799937257784585918316046958979141410102242322828758178727251319897253002280197481507660007630358067179465224111083250041048458984875729997806676088670890484033393389479332354471038819905682598823611892111748289524246891027808861276206840908261622589198359700036072006462656851471694876226927913637884680928537104807261193829788306008625042425747952127517765303752831021033993370589239531769329231765002591161628741384837625925138734952944687214738607216255709139680356399650784750861884637650245200593087216993509240584230106677831540852702767326985735491642910146204421306066168733178259335036715496669205012259997385755752570620256874945675906219972407868885957364171949161628796593191123702566650706650505789191845173145874369914839991238717116373586858059386700741804525527710588181029876598126668948889532373909937579112208130107720873050876391681114230225868126248816166589081635242049490060516872885482725230382399730716264237953062987438698320078170674090845126608870464383000560536386613646286959360934096206171830582590785570312947991001608044220895565861067658811270599146309375795952654360133054073055216970332664547138821024291587791755214749784209269191860404207162634037116860969910570147154143353564993556840628953262236679021970570497050679553913735058334853052212419252571042982696260429908889895236519794554195873670709750635720732134860215161845505905293700210191862528433625751725400784268072377668646003729771503285429140619134990592829885214835966601933743805436876948831426122148642455930259864026611920980055189261620000323955770561054713184282879953248337080263101411838208391080535783970729681113312233381140762066325567459081469460579804312450024512428427190485694567225124481255904791180294957128825437777812061564203235705896046210211467461407208377694437805317668768788001330860099985464464321315882533471063012109496807289444323911103107981805808025115327009665471554599025461232865304576079338122863293689361810006876849377229083375651419783729807102392842658680460017943716793901680873389214892005838902580345313641920209730940357597874117699560741446182316845208752752493178818736836030185039519625574297234918369888259969699202723237517941452239784685972347226174600545615245919022245516005919353229724308517071688951177509576167930262944793786012869686014677282789160599549812072203637725860766080585807162594561588717650345256128211320206920536758351847864720763608476315719432754676071644461750627888925189889523340415209397491768003775606091742247219757193956207683214074552255244083913153980236886489397676520570974145569764481465858620554868662467146493689817058052483096526982181937051604415512484973822231502055129845063787279569513257264977871137101543287116850252368766930006286287415069300306511430993611300569112919440355562765722352892578668743010069836413314533066537001124910717263645524851983865085156256338333127431629484207292314975925277707657246198703821735013130603154442993218481866704249088404780189036899831219865573886609433671700675426629697816630247645177751279342326406453069718868196071309728702431602222609343594610893931225490744543858329885168024372437027451573485496721153400039651701650684763526232546471800648752884954103368157623330356036510190858104737597706768309197059392244356199206871270856910723750138124550669442861024832138173591131999462451754643455417665265176463877210591552991078012907212901369074175798671220284432152442341160246448670023763993921775005488494532240794330045899207908248835515836125587906349161713977706978369964549006102356047813547209414290925415247696707107572001855512314129202858308625687876173262964823402942427890134893459330298835766777877097090723236418277334153763100954976487665888820289426653779754101185330572814787805076723339487716465156330671359460223792308814413453054418523886617350700710254568206463401858065413091426934205129512105282531746052634014118766080546831655702468850105907259267627275252821087262192372668925337295181131947302322381902716446399848670047075161872723619815880576127313518176638831108889995692692095386815537596232727427736239868211422697434515187346389316919893735671373831937240806655496549321552812669689074496394910787271289572101655361710650206204002759655811724417661613025340749143170668656293262642193638732265296438493716622083342267940652433544936672839754975384966249640475315264333719367529980858910049041661045466441771927118848536666673755041619025073606883549287845047676470960211469181553610358511076126090525802367770057626338407516517516760567786194454448296269726323622291079780668986040905992844704181805286753319656071073403038654210512547363473455843346594694469996450710884680687915492151055212593325077845698125744735336128170628588648872783719704827559361642645062416819228780698203927574671580487635341504605469390386636988192090112574788173888042370231557180362172671787618861334136754874878083090593109016296733192371465313435985787760692625877216374012264084133845198729166030826024562673009825050896896607797380445168909600918721246712570359259763262802632412575622398510556005791810640075833696802655251352338172281104998495124113564979923387559225444152663682033602136602062332762270463923451152190979089812474596707764806835974797116723331635273330106740325859968266744709716737909268124660244024370514199733044701526384067792084643473677723881137758673220267074448702989319058074754741516619918462052044264670950403906509032115897452270460836217068240342157101324728331000876397505231929853383483405065771928133298668703673582046344908595101278734972618289224925990271055630158099938977708488081641741766555551304239485421857984865909930351491018712066232601151673871796382095445573693463432897481872545722599141248803898022253888640871382541797965813016176451993881271144753400723384625958266494575404794906587884397264448870640660974883142679885812440002512701975697420032785240953452904735767514342689923403290320480341942221934568092720759773610359966962272930541675129603399195098775866086616131382240339208189777077225372624852520128007190044172448724245491375557715980279546330515692735715227276872345971306294894532834157687002617135561928697231707315933193597682421418644052940240187004714464028574842738376010349315196126980292390543508143249648306875975180490744789250401242774095609717961203767383085806494620981692723639019295501470122369863371192750265364383326159767959949576978151185957577865656743322903907554850446954717252314888361743852603490213902167887029425761939816899370527945289424064914295150129456413301044564795750103849664452323306623877651341593986653626889038593727598322019130279453177444002458640253004704660677755066127759098230508228486152131304763874148964513321153493325692228438711552436910671760766775710125799968652364285772228986278812583323430093127508248160360631316083725270807944182732359887282223759370351264245736331376601650723544461723952367519656987079122661322945829014194501046895348991180765958807654240823705025240662317793894964237080715325443965751488106730462682652423450272268856496048459244181769505131082606498862252421814536550037335533877873717892105476876183292512847987463937568025206293704049714663661818350603980881812413256873806198581991633416455821413965244364744423334437531619137790580107344603717339055817647511035302624047279078227493742396121577682030441821822443508037242447194635405923433446830418583518232309566070961347603235121436398939684208572235609793024743329248200600740221731061869303157410580283874286634149643314658495934639209330887920458050488310257774906766460439691933709843483163645124620827755716625348961983670144819699918477192768304227128586297829635047247155599477310866852644251837961031820119217430276678867112659261543756470806400011620934145341849913232098820963258237938809073297202386117634345948861702747656701941630750500847832283002270281180013601033818760252651006641709502263232656719017202963710845582505293295311037797615515673011570794200205819191047909684147714969462460709157389474878455672579147368193977921005537305950843429210361933534707393704598552314847537545033386176139793920465935022705587853192484056001619915586085842125318709592526367786060034357748278349522246199752647049109202211997285423069767956625655622051215420835232942242710386996696123825650401857484590014098109711682679597265017855474064158624397269725960637947655931386891504994913847294797375826738298675939619857108964622022204708161234608689409656685413032378366227030846887304125244216101014545761373732263763370521620918860996417701998611885433176099903675755823447174619375184307235640874939652259688932362519382808769927908534935811353817703570835479537318690948357893775345398838378121210763276480953044609821940838441679062826824483828369687972595523703674137078070192652817194314867965875562990876783031586096754433303966997531587363192705840950246835530668502208409212285638840590282214819763771020449273454423937884348723487631092705811771355886601779384615615154622176537994569898431343405434484805084911571166320871589748418461858495341219506574189155911820067735246683648839713911284798560202091393543592444403334108847827930830460065738638315659588579131311680056961785156728089960162626291106709034227592146041969441524400832127350527793962703303513110882440942231884734488656004382867932249012599500254669094347575769596337775177911533593051187817733820452417125569340206796412375162729653387791739358049683475386774097358357872899117524353952148474009490611981415378456516447911883106908744057782594542919504783105252488368522516806296899587330238747077621486299520806817420976470598918709837901471132520310539824248849697398537057284669184276148088326674925725071875589334803773478784486649809929009120065307895580841697415811793930499947643479414600545710600117122731028815477758558555954819627100816329600036597265646573515592227588453819805970551471637219757008805890339530426326402231492202449626416358903676812416553481834344871114123357684597323059752803821926395383094589741947027389097036161445592628054854262297226484767744989517160922436676092300582192397944237554971394636304266180461188921445782374657529535255013465773725885948064460894728624453428372210465494484826957099952476683885021292186253680449597322180748370805839136283872484213765748665453157774636275523990612016704813225693673897347829540846860539077581013439417566604394216201305911027304781754807424943894209394724310149153192386237112638327538637758510180342672660549346299451961086227597994363616386390071442864557319848192994238002790846585906557568705747179092958487799280988766745788322756090192839270462400824263982737283845611367016070269506224105554450308966817830254424290563360573410131469699320664022773990985027179537759239157472584489019540173141649786999525005583142429186184322136166073387884544126171510735233274868165910084198135583701094569828478151357683929954981054626911192893266489933935783967619734213948771812060535462180745974140977836126364867974773699282827304310523051821478060668875829749637065782021385781254151655934062514123680629884767110612430175536405713488218886399682119910472611732529270022480319882482378896319889659960845612340404708055525167059032366954062328949540351149948241521779152982920929444725936243218073879376636530567660022134399861816473228415885815074856808806263767350574081031383511494540607295974357058403433117098404034978761746385310440911847203405139379464537334425576203872473230921820152134039292632506061371098837750236863723928364863693687400381601102280185147347114067000916019601598114262389869856399332504520303122067498809850467709382262914746472339260012023003927753216136466628911210119297138450150183011450405834984884207722205918038118746510766671131201323721596368099830737062863969984597304027304623943178124414216942493019551995960342669185880933367505242302280485083576017586424808257632658031686099401133738023430366721452557937206333478246331600630830430453011600248476013421519557000849819616928579130911500763567660559855269660036940314319145156256840158420956602519873599008390353475839232407452394400660774050305008972185433115246267878023301455973065544408542519862180172124172858039686973383568966300331446456534670916330850803207567743410198965909354620884761625747284810393888324478895825481991350998699699757224646708565980640904047010039130089812816117122841675737942246453633268581511295448130552107776645534945688163535255243112124823050667083912308895325521624014368284508463912071604423308688387283968966148673070017353703479790071426541739640105708568509375829966332471612200635591853326047501051316710908984628137252472058133834558665131814700414833176760355850596437438025302704665030400258912743562112557182664676412665123285380963693266338593795572768128265687851076587039033627615896946849490928132879306461184848204257645608066340746473463488846962432852537049030459899406667543601537769749648632759923669396276592016057212837584654883284615422339149552334566504850717915220158781522644427743640801223591353313193890794583461771287283920411365489794031417455168669839191321619826631029071915715697386029644371789958519999062097840687741519534882106796230924655526977144414323030082583299674765315716879436920750376589922658406291176863374452289737773112398122404655419595656551440359582885906517834084249570565175255422725465768943310007342608507528548496439835442659352302697714673471154596239844196701615500913004253352414596100759487294586144616969787478228520089946023618896294058799224494425313793551084030632126422336894011031491892223344248133208957443097006674597281438366224270197206255968377909715381417250918007814624090193085378895711502250632747433912753947726546465067044901245276806891173614628088144734323941034756881405858317672434138950005207682378123811917498060747136465263853208081593380800768963525760516030663486422911349393410511396235907933483595735108953384948672215677389470531730297594776333807513510667975028185267686051070514146556392022968862298695807826621991418479996170656340252744835604951895219221889475058206168185779384371446140959195301155207790705934429442888940172880984166771668310266189472112463899799102323915269806336905192464597256599302676588180153358454348759379897113171793835293349886264794114737199382291751146428147366850568391050153229140567869365470963422623985850614721928041890510172785704373572353945043861650296697573660964710600425388453488591639637203005880934014696571397734316125457710557550146423277130195588286094106855307700189252553211021751174069817379497320174539579525881680247532779649108658033527638977130641017032369979676996133642818946106184741629351433267232698980433108276040727611934934250438873699808997854467971123359409215688824416405932435746171794004930980047062703831561813837169671020684563316294713024596402753423170469866661433281724194903305743604758900520027347054440321253992726585070056729882801752130381893255775899236297695855252219858366602187601977413352132771551019560563245382292028750136800947586899413178038465524756413200771338655316486186620966251875751737670779495574130684306366466089766350615969922986511999616639147123683798197956299914442828691300681260272721923876681300394421098605120505815185322392659666308155852708132671714967053580631743512684432335905828079906548562682781652092636624970484620086023462210938613121172783741985991383784196067679776962352744855537344930817625861734741503585937716487292485856749906804542406315096241272434130761642886666839857092891380778360430832196911043007509985134021487981438439201645409418465302927494013448736478209406277835604558224936467131305024936912467252687838353192828357956402261833543671958602199774134063690913023517796103710568215671043177181708660322386867757128336828793085777710939974896470014754449184142084664747618663890818429875624674666947856305998282758266327966651056823392322608925762606927738822606790108775434081749585886892629977942180609550923919817790319658968303238156420532649059013435699796191137025142122311502965652246013035279484065283896405522266349342163639600742564626721367845173898237357609576744970151124032175951968267391520637161755906380413900047889535027202511001401805482042169761489555224848866598800260564151630391773224449783610382590785200823395992740312126372667509872884037080582318279604858517733291902879289142363483051100805841020035694898440466032351233486067848340692845709958084360701265102318007088019341832212362121579557830067729144947551554720935439904454236035129832764790946858185510288912263876243471098700203438774750798349932215808199363427562656809301442428267642256548738562498411095304202184225088152967276288055553795774863484911669209720348702806383199125870512794239624747240506732649036010076278922451538668576599759046859507623014890259379674005317132746327613916912729051103700447639465373255754869618975837283813041307157417699931081884904874139033965012138915700498183721012919773626468204080819904745909622353623826481268225865142537099734966938307558284972241751369101766350448312283170518231386212659296908098606900533427619471683615591334673445270213439465638940587761001320924774821246028034134070752101035766683901347198092849632638826419909269937827612178364992322463620787112668344983064369473246642342671976200227629687556410732863154846836422489233163405005752478712006495522655471353005941619060578377818228924953285494642101517220741020643642435661909645903051337797283067532036616483407674846740156782430706421473728769979432851163973454048975306308295402906225820107346889120412391930955046810153128669838416637661850710354544484990283237690123693187346666586536119066650323635578954110810287947927972053311485041458681687482002011236919815194535564952874360341250526759658206436792130354144434195302202056577972881965829387257049554373122381955859003972165389318590738881663454871027099831785034398606256382972266398760830785527855194352508812128190946229217475569994511374598786493172797331746822525182711676954480209001559706433581279419376346643500579900134458496991413522719083199992726006279525993965631388690323131680414001574069888518493269463513378098495383174334931878645420757330660841651076946972623673598113633482699844337882795829509613129619678156890547941813509060986588353097283490219892265985478458604248602525909273936541555752472123896159368967015462019398027172625520893344080992299609685447857606981678223981386526558098784900923410957355217907621972371319239756848157310104724258262867564052736440789684594807069976457083021893476217733034783581077303364100179951828571024885460478244498113471558615016736604494041614619665261243499355771549846922161757728594211622390489023307604287934837450491229810116126677432050091303664497876103680620278933238857988801852040326787278367539494911744156205268730941452795130724336551196163328738846683307581600407621466596015839219455895728143601310341275169038425569757108176979730802025585107958335020229982852534201984885595158918187012104588476088118643297151954913841879206105783225451610707612385417657803398410523867489037948844234587706847141180485143789429135543854165509409910288525782880389288169777045024290149664442954632176960402207826147634461524977258288138643203481454873210941132793446500007927208486569768220988561511496004386660017171427546549384403884495354559687299104077512084541247175217191742936742338300422758843474712118364501102191511320350608821156100953262033605786796334798585152169568376173784556005598783439188286458101913916036786345512782620430195539732835923985346673347354036894453911088067936933939806072057213508670180635747993693987882894713442198970700556133828729996370124645660647650393694902788458667617554651176090997824509290066458113999665821099119432166947865091933459667558911548652419485354810269959350321555493185786666630171889286946215092959862145798793104779711238642352677062843292573525644182237955251553454775630202095512077917248675073621822438120122786471715997881843783317481845690754486787778673018070528099989896279606611569092045872451872103270764860259731042532515109543838720155242802341401441740147034095933645314717672370711208983091110220866703000639100154047831086587892867135013881554802104552570577906587588459596025670603405985487560007957946521098050340953501873108572101871931305681618840995227432396871993220778403813025447117481321066062123485415988447367365774337940888513253645191900063478731966202981515925785218736744966912315377779379243497386666066488440582382974690674039585437897151194552885956705936184685679847331864436237437723538869511663658334945988937083946161374547623827750480939500094895907586668112990981676362070560406475291669821715917041573034634188938337906119245868959642295816367561428753937531095602021563271829396405501369379653202650838138013109060382267966867526284606394481292930890696791089480056752393070939972583039808393278613312189044288008768877552918944891886287593172317225524359876723089960906424774104492486056595850685284706643756354208102656426301567797613041255526971338256910535946290062205347559290392605614602138109988010769366641973531772113064477300708488122678911246097943368038308197446177659076777584156234769798387255739115940755422483020982279260075105806732652524190129585210662781215167730473813229371393631780528458992801983458240454110204102147142547102032270178438009263040096372149439776718133681695662529828295508131588008398076588780843325612483941020518904567648293539047396939710017455591377740660122046763362146227760031850050437587278799582643566600477634198106175498566248567280232205392876003581349307189382464688164347401715850128085488353899466209536814623289166677556973470758256792813475282602175582873321103386801601295255429431116406183872777529497048833476037382802265028502538125432240395917430904519503551736077337382470455152290129797116651738244666988264141056423885575318081003388106714667534712178195135010875614840117784747711345930678131133438025285637411033531091427423164830595818288590206864341115447954074158754726160015399644751199138832008157807977920501209635746791450575094823528487215750774042425327028369359345111984199156025109994376089770733099525112125209782370891151829035379058025595056386318562142989005669639531272835521712777822209251876493000625945301908261374086605968726302335107079587869430125664909628380446566078431233207275788930203533345469353315858410765972769477620035518946217494829179812448549374438033589917622405917571357963110389336374921661620324023112420389428089476151616169281860143403433282868663240919198027188573596003106949225476980490761986253130339528923458114580080067208665946834574216678242697468477377700751526856926478971051587102328785183341477730411404752699819191727866224705418024238840738433983157851251726914412110757320912697061844963016310126290908971956046531274430268085919026205953595924036563639135448464120996513031437307915331043658217373509822971619780764214069932521726283531105231823587744051235706119515067131761631189222074350852148105238818615197735994036079375370532758005905069180175221741580493405524740341199034605969490957110252741275192703284833851805773676699339966075847264649574576287329340057523960616025748874109975250169691553673178149458055503621597331401466238724435149356325836326138539666357862324206315796062704151370291146545997732251327151708851173898461172580444152100175469463737982204666789355706488604032176048747161224112536975073903707942689526685093634000812232407439483165312025266660625774236702135251128760839665732722193807626674581930580387489937007800583055844103928499904398730277289464381129941792567702573145859825379139380632231564453933469563804683472855811027269589979363606281747063096212895189221281762583112955352539023089437423176258282291496095427461719482999451132804285825854572492503196961339505323906177215425000999300186944172823729789047798373880882245621126720151784930860699158852772645412445564640258402061743842827722851686875318127809650316076018331647854815888399250381315938615053045840176647137962308285348531909704684006994131387856542143176638389462442158387238069890178287890782894207337672436091643221319185894539133653837778725152884791835778466747483659997536794244182393626840551797885509636302525408745116039245821277464982920945275787571215900270251817549505537177020073758338054700125134193373685745376028702120394784600895277535557848802441766072222909921354242789871075793426207077424146094215086623655454342590060031668872542275394171748536701620893383793040050403297029458421168203993872350270812140142988684819636600342324709897215356737782940065276773183592452364129773752518003133013070167658012889849228537898257699951113598112786018688109561457341134128428598400849180932480330703932067560015892618517319388828352527985600755617962521449931510641021197264141447711348980747107171644944399593413857985966428160513126063311931968876333764357685265076872728082328230540630237284294469486227034855581095913756251346089508480992893330302183293942611141290344620228090182026446232996261189929651190814927612857681574977390296012541479225563425893488635040383121323029719743100078632123298035672271232280649567063214479555784506456574576334376607379523824817656775823547025701259134800612236884565033854745667338178846372224233915222357949025165307502953698015474060903648882297845834934051526499269561736230737224555799065197002067506507865146160060506521522033746430289063994536053085201625122954661278148745715634761483156315809222460272447276986174865932219933410614194902907727684085505322063452334083531351654931650123126167990939461940059473157486198420513925518522355628069618144674807206189391056341959527441181889115502465497222103179199594269806155879593847367200051734258324032114697640009950599125516800759985855400036786746498249409399040505450693262560561284211043391808667331571366772451865224552111010193441451788000133812876472548582177185659398197832698931860847628878424102604359218924687533405038602498348267716955682976266229456111649473444936249824852545479637021884491797099147630004634311020409876446009232634347824182687858247032067117683691957729770463443925991461485034410948790781630595960104204313486076376562127129169936181394655399417390923127158637989639008170727601991201296311242925273179020968167316607048048887767052670279540748679654480753404063142010839703515188017272257611502689572060043266537783793687165550490109136729160607748944183357854783536301130975850038623930636575233729504035186835182059223532634377712594003204798531396563766051853956910375339983830157553317225251738528640400080598738263021679647566118673527026511638223437876462768623903886067557016433065220625845945725553171496061822224014209757043575943024584726180824853489263278134985133153463207243493157570135837026594330789608053175724808830641827084511140442941004079905634363938303036645363385855352433380075227682286832266487039760538772277619875316701923967902953367034441636374647673811668552184628169509326016723320419227079196381519497830941317303492222277683736528068017804432823090294215959478750423782344751360444652852604991502638166093750363617190701575169676838367357222224266602046135327358060730052363968230532000063520206789740176781356335072216898739293121841576061552698044895695643879816622123745142432490889095654214863310171502361847706616383026290857737452844084990219604120594712984959612094961296177579808942624183365771640039941570383567027487911504410624171809186225594871226581819810526763758354724893661323764381520684473627061309712851649038133874881026049331979782514511802245667563156969595357848934203536915898207601780740373760716569102874187520694242750132019476545200190196903807784104069771612292415809673369636572700799651808192547281434660370153915498163076225007617500693358783848300582587607406486445012182501935077516912933654870058728368853337330457324325611786169577032352499505799532163598140591839006840938208704908436761103976746813373975426938111804936945151258303479047151549663264401457382064256304433001481709618435562696713808525028427111593131862788591045458522728133511822357338211041582087170910029137814805452631450662866542486523347381288526490040053716910028983568244302206506631592963184498493104250351045356021524338536070921375216809094801491569403976408854162462695408234742067109658712049715289367554974836647171439819697249841897880479013878889759517389499308114165542849428195491214937827030680437382853824199595006381619890902288659831435874548681030923048260168846951644613817762243575193358922968725966287649127298156058740914287154475365696415249933206583003353277092490716138929644198321879432591289637786662786812769022903820008340719206437048783899553633874796404837074998060378146011337760201087064314062131823610295590277625321484935233577605684052856792557975716951124822644665633737777903280519819038574073447150177852123234351580009548698576200936719657939129169851704192654434471091438467854074389696413587050892034596041418960449691131995359070197638665768952971725239002357799666864012765334102031347654891988775401299348135527005132357576251785616102007526110951529916882669754311991554320360116867978022518675830737223353851475504798464024462248498486249408031830113345156795974531019433551635173448003912945457681633831867353335048912331144744281291736264514210094977934823735477438269703411169642646104576813309595413131018472912370188881252308531534687821387689943238436086400795507329466354735534917807262392833532463360159568946628795714942399974276558007919310068199011832208064127700339466800976712644196944155975554391858464384752551177331596688901025270825068643743827463236137890491342875025827759541059666886890364381086449518913788556367536177616522413079574144086541274290026317833907704881057510516521708077002226376724556379269825986051714182267771758468504857579870274365622189937917551330136403077125754604244563889706192542554728049408544743331651615894004556751051725668291770178880057619941015089206089683337158133389326518887695981846127650417100403524191454732067042765994377718648003287828204938451293452689472750222022507553131110998952338094223683311236451441175031194337052802591927417189167554052501030329576573050978460612412081859465060758578462627239578975649812156328559965150587606522049586949895959710706501193480676360720250105431222559803987793571070352947226307982654224305725642067506139403394791885461813145858077017707254532721817345223645853514222771512117246997098987663013322707321596953131263619034992100312133819446610744478580112273409662190722455882826213829087685713998011915540012455369965741776965360121404619520974361482968559152078481714095196429937012746814796442931199141724953515405170326638894297508674532413327577386047560882806070932995031387268219886817408055377982171438608987555142032057641124368999191696839504772195151523081164738179012552304244619947040577200698939242557194280931631980253103736131974131909332322710764757935963774944620673652640140535222077902240699989614203728029382721843845827134784736716122087365446136990005611859423282100515295960096775384179569999022692054223235831898758391870779641209575359779754829031341137374714398132912294382542960952340363706746378391376619072268555590624792875684661558693808893831818867248080996564562646394654038111824771376570715213038847080042795331752903012179926338989209526749412939560085357668301730136452476454561033558662366266571624480847765370433399282716197588204252782937845704270171766207189068768141576658471440045780907113194014078401400674294721013718674232007540733802895041846800239642807537679869951339438176182243540565059351646120153675057690814913396383461732180985578766502490876290685868818522219858782897705452361532876865139189914438520495166766542148017892779377212464458515121538817255045722815409249731216208507689493306249054465841471436561577151058320677616490103652731954102487674325111673234239652958618748915581139004900823533307007997289993626622596547523465770009114197882990500954014587287326318394487839518741915604871683456183251901420741875597306986616477936363804033125851723366040568273010311586002709723895126797273929458672298085949492113417542226145643370058968012642139134233896897221075105663652648324798832744503357595398165364655121991002840842727848188549795050501262855709675990543482870133244767700149619932975294740629819588977289142681324710297031948443777952346237459885196000344085441820211486165750223708775712587890128688982194182809728954724328400522952434990975452536421750717692950712342621494107628444804029340287060577146801415319194703691127578035592723563917420086897373524649090457811494975008060870979332950975103109348457748285606689425980280923689947090202850665833606221933832341496131377769161124649193697507357389305595357719761592653142117500238632681881277862071429524938793709180534041516213815256705995796767157049818832592167155702267621686783321437400745475099845012330138270134541318781991860937433193820901949127778593066598436310703814071687601374652947027515500310687452123340269899190127140730338817788946267108839758019875493415195181619907102736567253356404459439031391664980927935609681802280702739619343718802598949253101050729921182165605593025544906654800545883089285976232623321979160967954410886894378463994438458176685927334044764268956912287397945852958448241571124697353490733717688293949258567656234156855168028622065413046026261221999976124284731730293185200175326507238151898003452778303953096892209946747484930664022472719834230993381063207408385730582158173306581593386917252933185610109574765879758265259477139151243616904774071695908789354409793590296958730048134065765666784623655733862853005907785203235387132959769635840843923764360927872873809382329821079310872383353683528288786264085274857605826211037946757586673202354041600766049008398776454057574799724374408023544379219120056165362514281242495769937451005490724817663512030590497485386633117669210427241681631491864249332507907279219524103419270158234004850798229988508796758477886779289947776815256683275900787000452073663226062874904425110610241205883890637291698967865870832126343522764424599353290316816773218101103238635658706644492280656176352465815560742934767308259313566435645996921735887489561775113966809568485427104815703454671243264132022039861291657208374337511040694632714602536656881429876682723098471233688755110259466258676100023539622347055947726658249084996752527288235129397039075559490848138995941998057131147175049069555702384149386191325654704267110274735496630683493762156006638455021900829735476298379746560261760836089879041026838555149162671925544457364283459918997797268277339387631897170338181215206972382625439528590138390134730690060351693640400134288575677796788171195971789199968320751022645683153221191267837924223969791317902432097889408103618221210906491630398652179710701504009245271867732134514319483952847612829619500770711247048747109977363911508951168962976653076921986955701737406870121487357334540002865141624275109273615039220778332721271173591175117847429563703501917930652913582695843378667639534237059318837493429100875638573478057292210591747524295963024384928111060057663282680203128785531871135987664486533376177565967830911724825908196600059835038138257482677313031854714552589011745766656493710629517846018081850502399778480937183974275001820006696777477768082570760972972197430195418886674981008452543154080212994266667835911910758670654207602046753150595219670724731664055741993112770583080158369836708063151206268699805455063489700053775649567406093754462397409334067950684896077402711144504708758841306647543172436031078443138827884941608692954694042147983757065167519589212880555148561456375979767954461888180754852174472559729889711751447842784477151935298191132598599108846828474027575878555626413216418290728002143940901290882831821128349857937535873026593129159616213832929521951503715364939305581697160177741858367368825376811690185792212218786362554602480825274983870240827634353987879464551213317372520447415483213668605480956963550093146439697928969658831504035420959290678088486138594971186833525581150268005765494073149904740337751438404590847992942781979804260904871875194278188287639789224721757693509354697958819443697600645013110858552529053127278937256678277150940375295999845922096057419941361160673543420227313678106097642930068380335388729772980700315691554747005541152863298411329149506901675469133560340068721862936534077874887403670534966149761082127792256906412097934684399603579256827965003967280603775630289506223226179407071681927086992480745901241334069767977917373929608419407508404271491545232117631852351427867727981152295006317178567074070784704306677391975740801792202361342632096249984570333446415674268904514035852296005568232216990661955876476946120965061501645030478753722591388544796366683547979943029427093571614259797197784256034782796095717374792667021238836685710492371628512441081428127440959105785527618193969043610907749025844992120117989171728219159131429218526188311723079158969739861709092941366073561972107537114899401783159769537551855555613216348921684064528548058166677809929952630887665735424663948350260772031516423717859935706953243981361688175416474593771110791382418378411767029066393764185775732100525748758751442511612232219120269187863526297190254975163589929935068502505857581596003683264071290750264873634678434889038992538526785581222129261263765095733725849020553702506189323951632230529296247122400774352506888718981173441922768265821646422746070333407775960497056318410048675933873559665118240913049426763273457610166309426976746966179708187560257999456895511376668507547603385715964763974534047128510837423463600919289778941732014275840160232696376767640583366500876953650238518715016854854113598533350310733727010638795052172511732135573123716637888064221712406330888546581457706970765129640175708933806492988368380294676053042025594320491780749667421948676384664632600296580581697950546920201000046484333940912161270111302532433068627112957289648890198413994672436636921799946041996511139209152705204887323919261791352583526376989688395285437986676055633574068804587704544314525463697398008065468983944878989160794735513188753370611410449427817923563214813451187258257757466824962930599383177490639524779234978533678673472504916814092101844259591258999745093214037927287322224809783842760293483289339579336399858316752883948579754734841977058807746150845881037313446740239730022407651933270075704597047006307631247686796508531727978398023344935159638239060288825075573426807971392819465190977360597909091520462324712555001220043613496991395271873771859804097378799895864006000997390395480620207181865887328470310925396377095729595864504193423887034486715462636879014918596572630792463547488808757308077605112541548258469556798358674107283719554170651781046777080686443401219139043464322127838139842396641495614748944950109527788096462047704588495298672715622430688188116400606558883364821809565576299692097825634621095630208767320291733552996235817813600844556077630373332138013740452486549010636907555510484216005364971017759014870622436552458781961134251694212011910600739083830950360880916165190505744703340542020765247624635774043505460491985791772880929916568383748451860812279149064131516586064238823319526525585825167916826903544369410193264405714806378590701977895063226886509516976645170419354850405481099134893229222392537618401466402976046342592781244150619302368118377124500521896737233062155829635098965923939855530831955946348692214165363108394975744154335365678369163304313804312323824094625119742493849621089497035731353422454673762759773250092932728327508128458965713282528612074755428704291815306204259983397003511555152517202043105612303485294651812920118030943893450003227824003219177475537479538159936232933988921575586635474234266241949142017296425586204602512100283512723459159691283980045293926541982807488817578215762942965788123135789944999636522766808542598029567055096770968043363846591155224452780483710172834031503716897307032397546272239754374686984709668186911900991461077156571937438350453872705462850041772227049008336892955249347577773232408384475416740293829084675662443040643300017493379181285908715903273781856503238843352986066721898843698851790186596188349934999389563389318779160554283371836263864584295868427623305374744109926843509529985525421436443845236146362642458464442196901938909553732030532362431205504008977669305462672247612631014792299152051643987660106410623326975668578489816912636599687151014249091555604891706685449466807636626846301701043995832517292812233255759566084501855565911003939504273618730351552832623851163680658611892238256822807733362506791947083688835097696556194282511393974368688018886829256032364084230206779441663669042307045555509579347119049894020459000261826895811832678724228062992600156437071339293119657706436857980388108379873309583837239794020873484985034500074594436834232465892285997234849311124599371860957891508529349282255556972434066256555885277446150926340551849487295724409298888787804222018097842708076359978487275867845914876701798377424436375094255570869673222586690829084235111986240231355666548298422746394936129037017639604599872724166367909541313335019410641450717261792753272699914879614971626337380775731316829248054305574287642462494197327076071533358623097230337027301833178335995821534896869084794901560669057943986252574469948471774495452027596400229286098853222718057569893703298295494395028846834520486208793508860053585444250040906733072714044473143264298104727365321932323310949181228383487826219539795441905191469212261039285167354152854068085084539719407598278052437175092116120528108561772120113088908126617519449866936503368776554596883140374580310448892596256854113130457366912147918541788779968760725172166641294936151552694297529324320141007543536871717120904095753960757964551725151025922177578010164513659930432383293689683223999750615105316281886358578137728473138655907601584526240404331362050745309724355897921424844122836655901750848866330242871957958225780252613630236219627771327321177310074677057528223528254639977731856988359646932734529782121119232342738563411896086933157326834818674488722458797406792194624604493816647453744788612491408252838409291547351523913662054873871660368868008734525742452507432083226139533473985710456806256841691763981804021872610661606197522593729171513703397801166397453692100384599703912600428658983126040071852456080028235320684303659678770936537289326175538102910511171607076298310674687338124081634158139076428123271820193716373095006745175836444819752024187614161575799526134596868671632459030235855406243457090209725026586297148718731171711837417672897144629927889680077920084139985760444178612443872419603109873935130830431003369636470753471512140868679240806304668991286195374503897936059816315754770711084349633413324824749428304970418070961738807050971206644279163264793181428584294184930756322485480259139376707898881885420785436878996462358056200343993831254283169957405629814917730751250907239192328031148479313331616781375865759208154378148451285634422454477311761839996066445098727815349753924160370483376482416917779124927584416029830895003402914499890100582612086812817517514231849944890802988719343970599861456265371594066028184057425055976158399057314879406743917901360292736060684485903629495786318871838510563465334758890875908222134227121182343087090140639144449247523352667487656500259086648573052027434531392063058700959744138229505638502925823339704499538128313817852412446963386400081026692987117578428389518544699448573557107079917404394913280938984259850809178999064902690226140642195594889427261794756987512047555376343834896192994650120928050844215544814006332593563837664419431460302598733545955045480816494925898709644815951772579845356320809999628800359023591794155098625626410398357068273713640933717075573429714233122278712603349572777360519025466146090648283185457596672042523260039016311743674265078167064646293769708185643944920103223478483556423411241131585681831225646830029755062405723894913422367345799136031024933419656237877767903303467116915236077683449960440974086265274162171772428419251598576605902590034212487061407106472023330341838146475949804305832609933649125855716033502576474992946646921283613145243757190990382792728885844637529178921522924052588832090543658837503092140194614660717716414198271613505645528605821545228159332160659374469529015275006146860864903463205786722824599240514323260368394404602420144998223916124992213397230188539597982483289285995883115299836825832646258506588553530304569447137832918325887716381792708410267085645028700026602051065481352220458166037400900611204758947786038677750879768525387092136325722689938052726958942918869135060260096191423775341616481635900629489272485988063090278886105455923772816105157215102490017789529113722476572157632490184965826585408828684894860325551984442138393292951653150627812230921182108776170067957786215750547463692220236501578364333486251067800161562145850760208118798957533484588318340026563441159087225747801539571884381536480472405882866035937434735762650174287314056800379321124003069661410991188931751419575191289101427472828383178564522109250051183430292299420113708624008933381711856944141747721006536957093336500197360657230238872225549066308911106374627057925305909884951199320525766012196246146718968517195126627554135221544226474674915824851992266474627527396578986990419276046402669530186965635009043755505886914084089939133766356895072734279684383919989537010666970871414505064091252402595305546787750430081140128206800355070637409089331142043516513365022007173539777289029604868372046361486540702404976013422448745594377477540347608890755224912176230022763492546599949448168356848515036550728459044798588332980324536064258084047498365802542617876619053763210601053134640658629275322615219755260624032524894847399671896851563501755336311601014892299685429856579149171708951452510680588910407406496311528483358017759136493476826838576667246541462097696541204543991008889193786884223529878362182084916273731629721123038369491706581924239160657871663592458307736476828026298140165890674935599539016115095046161329077747266158393977160969109366884614288223615627166542950606116141271069900930821620425140862214771855506883870021066011534319620743350861497655005123040517763562605112733121222813950070951441197332572290243994325682237040310143749719508387807709410123457372969988611909201635718602004319540645427358378866935492697727069355420243867570994721847251763830458252763218259826645851601577085281772213090852085374175958868047498353513723905319335994595723033690395750156929363047478933432947020006282366516605055113174144456570956255314528167730095049976997645915580727304966648318551545896133413354803143682447294137059436804052539857220999347726730433613602696408830703613554281037168869609430728046030698420709080068082025374342994184822192368089285115985815584494857889428389103528547406137566225624973411944793751026397804876377199280720388558256476513278975008428437428625354783555120388788837095255591369952140419318562772431081343488448794313728797101283455239715089763174351673706657781473150597846527308180378716559788864018191203386908141879326805216787072234784487335524500873586750680108598827661977219076852155681938397691715548144786437932047742959575642864575717683425612684012590376191650030818327428623397584108580817618922249789784139145737159335856007839403395016584485001773284230392944075201266939833707498825236444219803318541144923842320274898608822195891060421867113864192800989224287814675755281155073154647543726539134189069647180825246937447741663251978507508511980349464425219614453941626141943737337989184845056557127089693501100936299121405653486607967820921309497811767254241077503980390021418244964661741671694812621388011776266138448571369310465123956776032886701122209768612693728425889093539122608427035779569404871491163251232799191257810822248226922141821425712973535036411983024612532271335641940306144009247184479420185165823436208492239657246787646840097659631056092805055079152211817924881287790413617698190614136700258682191077364185065260775006346290704760602985971599660166649914275406393434114529293936843500820562688467244576135624945840936187617910369167441626082639664760541384967422532389918000356362872461146306102984443089329423827646968238282155520775213189899868678983258552769315251877310916002605890663823254989566683135281364922619149778721966682448529579117083850925214158798833075659995427129746648549075105308247426627739156934564432108426941706886228299459221509669525563900695214442546430059461525115922045063293598728466780386644925152325258881937071632437239742819367480680652228821691582863659986407678756517668454676323429435493177129566587593201079424033206430445456104462064971552462803923880387646469084608138250494593222290818822110802481249115878880410458620588950183452247423214794252573609462910737383750817273940828936853695077954204630918212056925322977581970507864016977520958580522619059617863226131734197328249809558901952324818332074396389281018247220613189142877540953864066422630715349735355386184259980166249154143332235796864442661130061970549468558909980771885580773208782827180320021294310688320687968300897784268934338594723832462370020955818463801479422172953641189054828321495754890952320674293976558167652797796853691445372468982412942852160896994795341687717476994868624925812374304878471699787485411798534435953047027730306443720669851966907710107142063110546321094663747595807822542116213060061618221172971044513673110475523099571176049762903297581201462456671150714026916724753128218519753282141188521550895670565687891859734111347602690832995025238696993213658956194618004706658992745156943587979655837448575314078792028903312305802988446130731421214695723899648184340760997581187534661454380692090641477406490818761958228692596751035888532991029079249488703364047035165695438579145858154729017478346531049370070906909783042458574022608500390763234296933909502564618032620948210844844700889630119144451652811284018077373368054054417649069347786490216930923643913492356083408377999627113443730411652974604805082781925650453574677316722245028039702195120901503266696044551018993566014443890355422405634907313317412374702848463015178427764326689863590447311645131925372111744785190627389588047304832829017178098826645269751995541977721478638783983870231901104546141821259315501071016114721793779627135490290304867818172992032775363340703907566388393417590153529280458194506600444885664370565419936137846679206008683589434796670304028751235049176086617030001725410201451850698425735704385933902921698706713238997865765614867133760584750193365691435892921695523586801257564508760470048083733936190433717247830339330523909099179171958199183881526665474065160936075932946624690432479699521456665738661717082390655694093118003412484527181197436835846326587227454734446267804561350493653250668820647249475214719828603035084954480920668969504342932759743024445955647215213194565290982747585039449756948183907075078384932262579401752725265015244743358226901758436614170547994422072110494494631972292358249298370858164066095574025164295978698566183758864985775750704185188913806341110988432895106083273896273027145625210108600500422706185072626097396117027529248718935929741423051559231194900535882392096297303000103888033100322769805142350197524797998249064427670282142058081947114537929081074411290895700596105961379354613300781873483436990744891400017368403523887665681633425384304916931471458605331221404791692386482176146666698184910013447603372872022653965466127469498662028928187729768458861353177577563474577983405661258585046734491603694260918632598499674112702067229528583568759319160056414563078795420584282834854276489417509622643689906305222387718542734749444846070184078675888013029347889836515601208610640165130096483520776875078897338402405378040995942040049297677792433081454978132227128460860151627008366812478102590933168782800946295479932353132948083351881388750018152283225538486841652943067055905328352132800270387732871544269811150514772734303868444997764374988874337280468388236998294693668975102787399933917482780608946668111710183301716890105460886900026783723191307045735509730574595837411670702923980331643161570153693458950011851422346861655459439601439628329925944825928688631974994567159182755165259459109760627763360718878396119544477624939595408797357132176255342939941094280112474016798437877292196485407460823246450127144959334821276404546058666219518408556489652779087761574111696285498672296090314026122844243789302986371032889455254517493444208357051403188838862928291346589762977614693477854635352534257005283016615187423982038917614795193167639650087673362162023700923211495000477997019438986076459237760813355267980630482427043571819535477200601467049794439729150223240939793599302632160079502155920747262282291477611458729728599777734619808826177902740973710501403119579660356642151738008905465946272604175799827242324493412485898478686479650682414443177341076057363339923522529137138931935562599530584162281180619589997468067610504306759739070537303078985242572926997043149615155753210928688615140956334120910113931941698660192191948428149084347561845188136644687476410175524784989027000610175349387421968388470526482667986560548560198250951072595111960096895611243686989520069144505960221198946776012294647152923583147697668722269192631053344915695330638302360645292180376818106159409383501211171000700672020586480886778858191530804761054400368901334393397521668081270674114158826269632216231738405673263685673621415861289586673699357937343329809681276233055956935441932815256532964756008725873946404037405445550278000105189319308810978943978654485348968261321569519490637358958317739992501665071430530859504436819669208513809239865459446735996099593852037803558777728652459846045202696893100243049736256585072554454388509129338451642248550115983333945134308350635092944282443408159464510863544624756117858711165093819756458894662324172662996333800791703387147704889093619742544703012968495505710158248192213498280970542122346299184067121217595148332975136348369397373837574299653221264613610139922160289871072512238403003085080066877117296302888112795124659625917131959425231650555957857384713434624381807191463515924660075178675777934591733365571265444214034096287900724253931309315353991977552715511638828968201318247299652316112820489544765420096308610679286866479342899162472802865174814399322004773470505866806766868422987496645174288516039982904222576717451521433523468372337229840782143936507617042535065141673944740367570381404185096829855592233078155161782609383647413783888956683701312771907454583541020549091694769562073723602591377388562533000205190416994505567736358590857579920619562704681841665793943526167086886346067443091752429017619208929906943150766908045434293018634615448104722799937444136228454365053863345759768668512685216600310605924321437479461772010733260531289372703542590740176142670647461805569572761966944804918133792004567162148085147979947955689347348784111625835247893284821194227177461466038298231545746068758464365190194414688987398754817021622270677344082952459346023125191312889615477619317853212267125988263486180865608979782243639360859206923033205516859354377475139220326048962877540058655838747028323019048462436604942360179935004053525090358601337105994512818608190288560798844986787737591962879107008042602654182129081393060848689376948398266921721476844457679114079006595958690044036952180990665911903855172294325032436625815707999779930166104851155242653515925201145474912032414368975959133402996330828007964643734037111565416592562614872673580009637621316242085091732953737107206283877360344008998076875983108896752556352345029823347396080455529090903047407210544367033516186564589724457093231517599510159957681842040787304788536874861089767397973161224084039973739341463244533984650759005466221205696046308618767666660044665643384814762876829211237601713462227219453309125779377799113058229591108470339821925619619753965774994702718935668192829939257683939454039008038189884028350481925798817368860402789226779105539675513637708093867806007275981185735162876791865520558115077965897957110383456005445086129482001501413915816821204338995465147615540209842379238491112684779692017356956015873371766936066854062753028699138585702359381166938044401221538909808698855033652040545282182028931716807878293534637814326362251402429454084048114569604819014015670920330787495805220322208172226755420698009700121453643527741395262580681441151761376503255687082788009489568341505372136120636720294287257537015344513761083615616310181096798256598051736591642664785233874797464838149537002886119623569714398769785721722882880460099187507266088505206375319007105821630272400249016098021496300004172605790618982705571527307202148830960651268265275946213121393148041011522100325814688967937048958171812170875731616098833900818463713880458366736891875003426737384726534522123166391341567827011766258270969171994111879170252118936644159469294919660483922322418517127460605779775654253969845913198863655505765293762900358766429339579581204957322771215136116870870544666449380356516742671265318069793490271061776083264721065150489133229343953236391311937933268410873751258634644609739041246136080656414253576708191595712505028057904860094263692303954531358511128148442868338333065170607155530855656560420619263404226709246574383552593828081203424793296351051744755977216365755608696890624054310835643403627824134811874061458532383783425093608953950492273832604968161844389915853208484184403001706772709966294104017462385577649321285669564081356113329155581623393463760777469133090357775637253179890514537586504592897744086097423468856353565159259613506703366263662717592697949671923591178885311058267328625933456692277511522442443336625804518822004860932615869392095540946560071057302992544024109191008538777242529683821703239873712439065466372207783439209256856102418333793205457585142171215999245252413734949773172254184372976014325699503465429537811508226712257618364537582797098094785377349643603166185888578700093404596719824580449740855465480596553574374793793136245400680445594944157534765578222469052025369970078935879424645339675625788959840642053912615161799927761640266695864169087440974857953736829822739785521040682611235015674986548608538880662068017293541537593064439561053373304180625802010550627625923099686906444507219522750163695846701408716535030674981515029672037954715230641979783902871861847008824356651698138613148567241201596591141742565718970377086282709271039666284374252736706021534344296284395375764859398707462057512929625339607528276828955430671201050554450484840700088089289040962210481443448760784610028923195652530243956475712334459802186446579255107643400481074733196968792134972286945897877872633971470499215973214894646264454241815785880919589778425116396828260770277886760192369881609939654291660467269753519456208583458567494845833125908855630177487964038885145751566477988035537998351397977491584363563801224817986570492303252217540392157065247276789888764624316141277733707480665248706873751864528158685737287515755384443898386146501693999256599716851769962021401780766543400014779816799838889214342003392930586247041387965422676488644899768736733635392435106223438859161281037466833713226420099771104404149590048702938193919860305678862302134820751144044540478490984833357359052281669330920106398386251563876483892136388090334958848639751082075339435710929016932122063964799666246284785713485614143726586169484858357366639764949797912293443287065796887429083315197391062275863564959243499788354031776727374059436676742741226303571264748735763211785553043874673884197575396015089489925663154235321266388174543714242066994258871279327409335997267877171895484184377453153468980578988532832328646290384529130285047883388057791401420839246853316692843190979464101936678489308960088462401474911173795029090220228748885323604387956106236541850737143381536954877845616202559164655146837864241090130992727497086903802532862414141889914993949240786486285393585374704362617012855914485251875747120410147579033831004473586849274956195327160833691901282489131991710580430046765579674605289012231180825058985710767343441657346765001430279417742068647086362349683906891760980614523239379108149927753086381613066198246258778811081912539667933798554143415602669144510632429410401103539645696299145505246905277270041476775381927794921555783449327509584294860617873594821910570609989435991989889374271060880244692015744494143395797180786115425058794512971616877212800870620481826498242961112522471112251333379255868954004204843197532770363200202988242792324535767648501037194337255775317191751577935014840513066453024588634703993540038172446538109872843508043690762172024847158608848939061056380845128919351128525991099389519299561499649394130827332524567403670318866631211558658500537428349464563079944666353093398204564967818912198975034772125064169021828474225409121645170982861119858448207915447519238517158252751556873021673103299872294773846951860441358422299577759105185637644732711060907708560882985638619309287454436937337746963108913646564352574092856620375590302681791952032018393306579846186961031081956558211041635855871676626921486506339966154153827888238479795078372916676299147248400395426343956448174817360305190637103478266331659188253594183230840388791823252421408451322310275825118366902252324656987450102600489951896647408103130095192592649147074642052483795420146114565251901256329890201792434685467037854228168227836295364023538949931489520250496254502330932114319691119917409066286178479681833779903830610134169187905617652532200226808152348442446206253081887962799133737300253196512391624433310910381052270962490568028914505205205683396293924475664745798304201699243919785123425054517880199437857158205686141648524422453825558915784047931120175491062166378356649127841996906095291474452032567889820969555264662375462401975163427423090671489961481181371462472947474330419306451441307507960750754428673375135806658262553548172745010443161223550446965129961860702573569450311165015511363013437322816134405421159173527944890088422222788958066159266862959143580138813965183256374456508218712808465683966570913040363978372366230597904172272862456873189924653210559995654769486268798944356353670476278367557507742204240530463293145291094890486415755644792705229947140547524952991315469284911381397453050134071318733225792755488907286765342017788403760070599425871003156409741956537158853381511379782790351973292330934434031001339418027312463768786097914316290137718073734021529408711787104735569004525833249948129438926434812374841165164984121397535697824255580298574766183000388739935204306603369964614716206337030493456373764249604761666002991155863030123565725297213445887006593388469161366360360404884756522706751166766182483297240227454623026321051616613656035697471578802622704877951044058836202618281202831299673078418127512610475112609801116926537182687112460361591553384207779071368894006174602088822992595009107354450419323129015378249547644777958926657995689297825123677552197197534423968256579120916729767211220155266486268601678502242760225717399975725117341178733192090007073121841347198817688670880887890285503771533898359018850849671793991737254109079990366354336530665002424399146897052945089731365941653427110041932456311815768777024441635583406156880195688860867842380140078684186553335513880790084597386752232536131885272201713288000594017154870307570140243488809811081247084871854653974849444350934457526604467178703905993653359945142392476472076191851836829683635127034478008851051472556282990735748978386000815646792888322879362308871337701060395017312914658501941456321389647507545844892371571446862405677068067768686230300669020021870892186353812106758776286413639671303665043848891164658346011674354389149245605878221471376777303159723275063849285510341227695486120081100295702443168549171221387311737831902655461875572882822980744877706128233357555584271457422773546325626965221087695400618204671763899030273938434413556807000839791178684686248978109929015438633178918316987134286516897386943278594549481711897611928038990792064359714268673794217396678647328228908980931695444758987227170181947104767996469808559561948633252269011598910274990422561447320341565757838609656067711214027995962108775343212817897706755460223336112428219892163047537296845419134171916084990966474055084792733567451571079879112476278079533380042317189130461200005079307347937834689358693647457176801818446106401765851807396342668237340620376004611597794225118723924423572387921560605891520989061017585819103330835633494001269646551417519990209724601117853927303664218475325876718199930999438006887201076192198985093768777206592698202480158466140910610275602934507822290595370877684052208486093983449651595846460025308588329523059512170593735302920182193016226221037294238990084973592949539950460780315547260623329881212241580067242129141277878166776742962308817295565166252261846166001531286780935163285972226314668657348989561936951245726254789346564176833064315498493258111650674384360184950910236135009964306747437484048281881470011299787111522426172792091912363969004649184005651968684105868007526671766777416902114466475314725428297614476780329166407446740087561556479944140739592690817826496591929970799391091929476829299473463900227199300300559522015634719253015761995795630176453293877341307209427710382899039805746395334573871977870940210222565231280988648410704565482357589970104225847480875123025390096575894060938435769390555348675462278037224940794175734936842892321279994817626433476448217910713160184081346255778099798005932490380435793997610371300261929109392821954364236567176356145169775987528599536388536472954002421117369517393345454631729133100176584722583978895743154253638503355661037006108391872414401253341586471099270072136628097313677685343726267208119156906709758728360863974469067832646677710779531241871727106739091020280459345546338989492074256126666395261741972552482942085036920238973045093425115094033223122887691144460596785405779634562237376926364387851055910092561970797058548312433525309933187972134667256273820740276711203624355449639423704342189542587545719954962528758698290644249232754377563254278462523799025036286815229333328517566442250620473093316978781267692391148015224062118410357794897439043374638930402407943796807581977292306415312768066471820512327112713918599069086565243254056982765857253440994725763876316437780918609693849499229441704670839324873459590440430696808066481083239549799929693093625167547857785817518406407725865998663624891683130391873606965152862140674807450349239511416031793126234622722052504954473717636184541235124835268968533023820133099912715345580089983314695640572478200781008122979561691010695340802036767586129408694144682727013055947729399963030737021453488335405332787955338192440874607399489938963083734642198303111319686564304355181720725300187525724669920389946145309337835551543164705097421125764154307302231731109059091002393255677051989613969312826983620576228626134553709427640341491324211464500011683724810075908440114023533241652167861411001201920363131668896337324876870299565104293390284269491928097788672008454522015504608802126168551479402042310009424951692919763801645118136951218997876999062293580768882632019399476541042797919165661500727007061170467610747363702684923617782450659921100275022156448295669822881365488166413854977619222118369079639406910853082139951028298712592196284419704906967713254500501940322465945685990790524259178225516269253349056743525734428689939835707500692079876083611095551169910664660831915045986145961204905038748046088248201125848367239543196343029145531844939517385424801723625172104043698904983238570583989875938763743629432380714422266251942357622373336481709776763868160865144575807664687223485810274172700967675062287670720087211231478638224213597415869163196248086203018133072725341700769889103261998311490284398736482943935807388259311361684463851063596994997323167658367983844832384283906176712268191629414687063061418884640202313411878927967725373855572977602177436886177804969116764382793670528193508233104994557778896826108519036073660063636933174369917129782638526357907900817741270194599591576995817343033866974408228660866984507159568370621526125766744027314736688906860650996832933097228496804278183755691436143538810706536841009865689963166693325810681238942686392383797346745556535937585784352525826131185987319406099487025039028748508684415483336576485279155122133567252161560262630302199202051242412675535219091816216418981372927377546317736474943089713572211654690819782174662530679319537284668394258063925241852950902967830945161627810013758798533190527981718220164360609108205469360952533374592539741270695125734447139292566177932027404668425869493919343707656495269864759270165287231482907665260969827130271972978665027170539211057806854401541798543280742434046077843384837955616117538908585733919248331740129838435468990744345351705911070520700680733180416927856039527024483273391573605767380945957592014425344491549763044612495352315165959543713926028588339356018840637404875653169556822634414573129504631922122783100602536634525655147355368700493247126459353522646843167441361787374109910646697210839440033690249528200639909561693160609554311501499603072353294802712231422088825064870615012104894569895208669983196478006652576637907418559923233462314546347901763218193744578697160827365367961377198490953366751172602358834939894249718241326716853951236085660278017416942942202522755007744789168701145848636989160325744820628801830964448262934583728603113547524207069101281390069163437957164678060467938911182291026477650234346753706342912379015218840213779712914275940263251093807238115336671135409600761266933948727239603093087125384494524017017664361252889740766921799500153969308324142966386782216028974078877518644624225160540474124229878282282015435687098246624073081474469595059512324609970603673924244178547567790013047521823427187058816774774991474722436613624761225531408534838358070932757505518786197345936151846518089100708997132278181567163667614252566333291169124893727061600449609184151398612860577443605479290450223573242042069552391842523089425681258667398637481493156304071741715859996069752173482669689404194618442636212402203596171978389007735015903232056510471840933812947695836529325631468637236951889100796565335985734117551626487134867938831505514246450303746954463216000333113093407514562740161803154835286777054488187814370506448650026267506620212011126882836638206128781452811293937633368589104363240718366798522060025105705563536622933398675423806617787074631799156455149842970038548898086461807436221067140838234902402554214235290383873798128278427444134811693487518003667512245857505002909046777818449294108738153828706261466740245583633182283919340085644951136381887906490566084303705789024370939989454830099077970585251844359162921911477371498059830525356007699561381553839527132004272895349157801311375238556479800236242795863650045674914118498288332729549932596299675019227395100715620519920116659733974939437903690327980638368828255684242841627822282658395669628215390644372650911237331173653978273190647469869058108097740055782374554073404389823530481310584253870864576766899494018909419370561968074425503359479147363201924885385124194945868200388375352300534452838164628636138517722595777484541260398602792874763927257969950239621304387604306744914327743016742552767705743853237651826487226357089202326649655492774653308971512150119877450060879483927237700952500312342063602407513970462331253715539064586722473036664691372273041871943941836474838367646478062153491358306342161123627566482445692800827267220359148324178696580548903210506442152304586842049586572898046780988045968572490632695751410050755543096407892409634352894448001299053222553365154375228910082630398313454860165626476130173998175848776849448282287893779149230723509556452333994842056768916727285117036305202067419970975258232900775903631080997864695925851064588638429941111317771012502134008407871377258929958262092446827019202362558181180318066437137123745633248557645025374185445401741223245538756044684623809330252303901145347182094511943922453650988751008048580574206519850961650508610497999424239746245983216873731746808102120016929473938251098528010983614418192350815147186732908889860630997310017421307842327489979650048151523647180903799682999996505312381868494703819401072703231165593900951433105725796445621461923726798015383443494087235417843139297051065743415138034587571825564879464493631370790292375926327940739704036917971062978204753763966578439125049215812214582624328624105178321210245943471386805462970280132420510534143687483003849533007478997753777642686846321558505920235405508613002406586756890810809789586856712230745303032244100236636975642577446952265179924401459625568208485280015839814901118098337357738539230878409459874224341948042365808168502443589766218341541239421310721692473175490372283385243779559540312794185391077450004375838321553713706325255483788753486718686619298566709453852893919413687337254399452007989090630586119130231866079587048347953568559999937385819042303266267128733348362129420353474822163303990245417625275222300839332059882089690552996976677047653009986368326464395611600804609498881783512429348387232938997339277618669132339710664340179823136621295283113381602772516411857209985919777822791268908085641566007427909957345916413358693304223047758746409450093290882212164125166241202724322848878183699736679587503329830224792514609238499254980264105943948694012575343827561337506264709012024711312546032581523082504540211976344161504620617875644024491538795660163689209617795564378053571592487867811204904348373407059837300007270867632231626779603249634072858868990840642125890920173673332076539998515436152801924078662665864149113917332566342060478614506932541719402741413503708332988928100108509183108002986732036651569816035167970431665658585412039520899478324002480821761787788265084287375253411423654221088794403785044964071503010249012066907828443711896216411798218136363533601184068624250987914502155454224677389923804757292117336034787312775493903150225578452415876746105443845012930459270674348817661506371149293462238046820581032339195741410819701337308532258277344515810850002239572415357566031598686688488831099317072804161192392017928575279978587143079040713390651513345946416851907946283411556632550277332747021357175664817493725162683478067150027560022915584650234749192577457043312552578048215159501666801866179184447958303121695316236053556107139081150566529550082834753676108327189889618934763872884425520725464871835428777275955370125190332853809307888898511986832502247499467310021903703360830372762439274207775491419965224028473007376129572941458629485056971675014162949481121875262152123592141030300907563711678530526057819553095569270958324180293469329631247585092371058411522343073695613870640416125002048971654537996121490615242949446933305927666908346435608380100918673651247112051762038745558283932185487055067352217074565067421247289728763741077328669877118665414789732673839483904937049597308411356153718440207017224736652230436777195080173657538661543772251003611984528796383333671982500571088759881107921215683679175078441058789562563895707140405497176486542557886737725968262307973484743688535390956155443653728713351006445953580897486869840991879670535779148079332431831682360173087799236807465879252662057103555611699272054369609872049279594064765601485795360280594945375191306511358214342618081407575349100811839067144554069370632972745422034507996194108552444818806359655988554214690255074440666977141415174300015136444280122089565474217759245956678336720336306354335207188650621588348437204744759495317592939182220205284305608248089164515784079858166886886912825241057940170361436158350827147674243793427756481916778931992988728280993045229965053566026494594824770650927059461320475917187209101013605458792319073084086890666646312552372525403838135119202379021076687670144845164419769662810489600242131577222288520042244468662524714512953565853587094813286657092549700632926090723796620999734988903074774118167923856917319061448342511716278056827665883343449068973880424826605362244011271761479236023310263806863989621515575197492479954179236583799036125565906787063116008723888761694565946328579622432759179485748207572764364843447574442134528242500717886495756089232471418231177195713580501224544974440362479037490445902446120849909406127863890051692979164802751567130931401280814681017354001616388311935230757833504964695640905871170286228423066291204483503231537162700504529736620339330833929408313610016064979997211370113938344534974998935208796651600286216501743930818770082234123816384998379362201322217269395583814885680784126509850746182348858495642308966650594642742828840022286631213111945722873306364832195571012797355309021275907007617832788834141711646860110169070568322140596558732674594214568914163282725388918751200051823667500029936397229555334225334168209930574804475302427957153626168178118415582885951207158558707014910853124697841759696423082600540297734209683773967245426749667899840270862216464389665084757976488741286106994777501983098063424385936501789752439076672557677797747444423281652989322215546429527199611321169693475715492075988748901733203186150955980930369725920421406148737167548036761128537120907511155279578830193026534741206699231821540767312977043881904371990776920678497100676981093522562337265036517256568646214127110537002465417968762581636611952165601780628764216165539857607724252127259311107208600329597825668943883210537046639618881083925686162575415178661937892161046041173090264965546123856237067386321109829593495034270402070613883112949080901194142351604482884215991704837023667081899767607504619182074273047864618853169075494941046964579614412777639397453240542753218243295831197077917271523662358782701416463697129984398406463348182610698112016194211256739920126088334225297459432197612234229611316592869463399086885627177441330474320031698534944628990870415985426607010323097213315775869221791136315806721780585299493885037530188338560081513303011368843372777064426932410908733448402693036313651123529446886117876828955248134530795991469238423914719926043372315724605449593564540197421813023080823933888261340346908799682189485800021939214186557034237316580681506663133809654655973047302629080875979017198102937206528476383346520924849230766586765341891039119192251674175133331543680950899477522799952843138042966279640889405643220570421670674244083773095384091084510508880458808400256814605557489052670222635037913081396160881344456735777952913740385479096307944373335478342961677205833827956114319313052219257207890908639448126834338047183949757946250126270028330687664208688419769021366591182871840927438830493762852188635926576742095806026964852333612963067998809878356450793813676606286394885061710710233987219855447098456626370385783996585474274214319563764957211738342215640224217030368740414831317515724615790062256579438413352749347311116725587422663172800064846658602543729254445061483568170636583105749090661560898044473400248087551406402320383719136903200775739293464077710753800243257800214863552973677986075321127011663623265369262147670792343069494886431873999339026965604634645806290260649654145270318155240859785533557853985019499791371820622843961163823833658359645624721957749243176507099598935350124482221657561883940917666214587218399944945165232484662748929979152920594647153455834097756376336666614099995405511045148376157796442511968770516234983893303143229870689548875685259630424753109038977704896638204659513506866720895377620098138441905777164283966299004494696562469884327430977429292758428149988851462398459338566029710379393972291087673203015898499649845092541304215037074119847878466936424784021752676785381860648175794286894909645932933252587632028577764935829277168214631142196555028256549958393338340811816420717610153259268203455088763970152194712932325504423422370115543038190482132822016851839168582693869915387627981316322925775592837365713736273428016259800865138058562847069465816112341184075379709094689181142119092681460283234464881365843141514203273146802646715945255769590902873082341629347339801745268078886370857590526913464632314188212299592018234983946556506687550657585458380230775204706460177060883560335759418483302455722920731954563004433291776920125372037110400998609120754813277628458737300505663871478715289926969907168224470677502759415408932180926877951565872496543297337234632540126068978614571242412287614052683188564991973669999505810251293766337856610134902628007098098023889734254657145368917296858177600006514455473444196385468428882216521491797784061142273079813218369690660707606814601207325073450152627515542074421786260560144285043524690980393512324470568664298606918195015008608053424323978946541270324850586292745485828787574314772776544911980047101874214223340489719513237017739362581938716297013332208571340419844660309730167786495127266052470548847251134750121785230243553259798996831463476152377490592320210456306183131794880009359454325924901081825445498481364315741735435186894534694714423065094942838937649330240628530696682605394790927099174947554762974143582986733716553632915046823216429075266882931834074075682894689240494148328952092547180309235824494978466795855920937682394057684875814353860748427349994211872389779836622081455573289156879968273565462472715062816186042313053273096970436423697058256435323336346840729361101299948768909005755734288365414431146843812759190776447686390718200008775489850709026922295906535797638356166774618730501994139633991155541382481524415751216437493838521017691146413376324465075721011411853546606794125377786658967639568942135523716357789239186935643654172376042073035021384304446531407027440292155985369878285512656113796956554231974914896703186945783682961937541828636863182478312283505753613335220634332505136373769326026902885078549788565427132465877994586577459578336028401142779439431655824312313003549580504346290737444937543259111429891978182982540790307978001215816114299835924337470727042034174460168167560808242318086882407680527924235259463561588457325671725978380195659284592603514462707426290582149197575322270424916711728478322559800148825864528908891966506404116836230167679156436546956054347527107023693970189954960818587321656893928693376002951998375756886395469773922905360758520496924868134235417430363186578985396697226199667488878626653911145801222467926478630080005794759931388658747054089999401967866884721985098257621241032622297525925777537433618288925391268052694635854305194268713694782846299517585654079634903776911335308187857468821081025466694726188588117116088865121244417221667723293819560209259612884305804453789149854128026943871777746447062558264496454692860356861241248214306452770957066472357339567566795040945815364972342964053860851765016449174349791416799675121130696723302440329061184788065927523947363654942594938582090404423620369092996184302539291830523166243193469159733646235365082602874346059595706832265611360553824413607361829659498864181143149337289463887769193723261215325366606061616913720210485317069792958115980955703908197684875022365342590110297842332977673160029840966604674015885483525959364337348910039922912304717810024743045649726828336134960110283997806080661268324908017423516382488474888314267351232909021471889556731800167385371572731279614064699918414911728258571560279229887012689469214742157539583357517821791833080711548815545257547458301876314698867126653161262271079013707137106566645692979848296065433440905286031248360117256867081553129940983365000647579716007503521064204431681728940875441758528342611947984490530514861536995802150020390040622615919636163656587883732801394738357496238179532416513543594983176562821045230438770609105714262607605981725421837609902474969887499241857021407169456050518225776742921730339239302273205254993744192908876941977238392761112937118813046405015087543522632798616760612020480747256897324862979587854683871583139838448733860666231794393395886768369082633182511369816687402902666869644553473902133735539804146274473352503701943875510911677727488442121528597026685548264598206815888075561742044556394315651647262092799683670762673037760253570451767245751967822616781540361854612151022361608408410670652623949206298294420831886644121107162158802922097838770824885459745875444576492379053573812464644317583400245960533641009859746772058637249363857139201242489528304581702676143525949651898016644333815471331154138987039659324763407232015237989465437365405618564808478094876316464815455787846774124325102193568375143292487534657074908511992785606666026836699718995611426744641335925441755892677407609619742754034128721484087339437438824118407414859307219177354633197906878932746136586669970432337743045060910145438793176631708786120112154357242528725400371535414040661568991791982210088240203915319087207214610182789877177736185995628954198857263167970918382364892279679070691166981306418674202677282998366247907718273107550294814280682788806243591404379325718117402536549571129135328496752264535092401865598951977572187608893786721664848488667668306782011519102993598962351491625657510612541291663128921587320761886835035198660988348851094662368895976199445188301508010997245950251816323591926112880392529550939184899653170003293798472909435006832688076729860592952248279517165735063085616882093441142359023458369981419784647736202431586600102821639768285681079826709338052600427675730217601490582398633720285535967444701046412917062773151873484805913788286760026369462786045723917011633285941346021156951372585720289299706664590126412716578497354179670189227553036615742254175576280407225226736631779293312909394357692278644981942438032083328598722477677127728146888850987565868713336474072542552788849837730680157823160044826946465035733620939366665948596720802207533731376894758410399878024906544697612693598330062296341273860131453014391364409475253541158264874328242312940756167860359233229058363419266851591636938806211646581380089245067723587912333962609510371761734706117348761425283269663959202228553695260760951660817218743322666313441886111152098623470009875049761191575205688872473545714542913924525455876173970373568451536040769899028876944580508657113050727138815502745568349532559124441519893942855945432849260452958285101242708989171929366471643512654008213423483237252360338428176248149225624984025569042572011604628503482576387669074893369901873514434693666739790823671020670526878682960212164878897246196223559411451419139802615493731630514528272968123419952370555158919087123368877123109855801548280154232654757183022729047291129076606372428880828746078276397877960187770784631367192817199570196902709888066640925566099673708029354332663881800027402315712172389791361601323211275618558133838305302416560653271828261481090196222482267761158209691757302068231057153314638154755466705623416496665595308899563005052746831426243758377975141846999317072929638214886653225534678903045985368457698416488368912045275769508970777424584837185823872248471262334124569987459474864111472584953325602759731017650723742375841690252318216766328865033429127324925540645049225444432736703663850035588946727385549907971025877107945030960667315830134036926521557717602281545425344455059908789577563872595152702942977873368327270148445034053709670734948827939221898725683423091123013190680694772511053132742917423256532476245334821182609288118830353133675712153506785819194657251205774584294120279691626539847239818842205709617741328775738639086655081926614311128131579502880788367760242637789885597794517913125187558972931158482223729615540834613463105346375747785131323181220877349154571311755374909632093455246146053392236758025650995130720327941501299934420687328239658013585138322521327071960240825929376644294281061582444275596174463604798352323105536006357023497913868520305952609872192970855310040752645879599575123494607641215576954481080774652497207810644402806254380453623408006488073278525728907214863687409324142009370742215509260958693966889153841151666365184761742332342299719672028415642130602328183942325208057269361159217569695521162226399487039272232620578563667595237940050980820683323161276148762387813859733014516521448239071580655729340955596308377788835283110585259594013538301430268350106324577700211418866553632752090261230797012837505953662998150555746825345366750619419388347568509196268762404146946945772908915269774977668324262542253925139543422496080678029995796713425862699782023788361360315059014909612923629271034740002920979370550020869542767227486980814619833658373355147576226314623021919196437833084152917708442159380503826147465230041970452677652365352782270202408180913252975107401067167407216029038037015060132497850331921325323249723089232491922971095333917268577564653775669403780031680331028652198757663241735059306515583069913404635615011864995268092193898731493409031639975644589501526985282954098782879377434313105784441402685416742183387781234505055981935530593694457140407899745409009406415183660680270446612338446513641832031951543348966041349573883933251774065509433913632082482312162139559429289182024920130109381666958220970295597849654825984006137218271532190282834894014138600414438801464645294918030707544013496482563776888250962624837806917681268561072632129662641231231338165797858124107546686171961345720067292820624527521743792572077375918857705263190539177865730863792256847884530784094395902230027438291775263095153651085466153769516183914108028083600026668026918559240016498908047742208463951813848590450179617072703325736304548696730074220177816244080052721923830452285867357225687430383061817649856254695455221650480636308163007551550938632697971655086409883867186160300685085091078181058988496797946740300522361389734616929682410090156660188385969884849996015192489309198451751910547645606126320327175238070877541334551785175184461699268187958564376928006437851420069336157631012063046045143554715368568459627814391172182837698232787147931427702763723138134136474784016844706083673012593647291296926508790669403712079529555158761459908645467667135827761018251686135562421728391604600065133836984982449062439498159068174821305270273994592097134906714754904890326492435374766947838905453874753851729376869009755398746441291590193672138595625965155039062301343108567144515280199669401812284578397190360547606833767371871628518307812311054126519046463024845975204458217316281480992634372134758381851239079124316192691099336039814485067810930485972737145393525027138046689922697837618289323747991874092420932411763447095018473283893217830072293667449674642466230334728921318106461838497931840868639580410009810989925101924904114133546205931929599419617645847272411778472322651484721588039544099592367528989740132939503704190523525647544384645588706421472536310390751424443303479505991925676032855473061458767200235592964138181856841613373536876040387239543960799964567605500026222167574639527966637395262447274620516246290528106399230251908525636564945665981270705558127231743776625528646322933595934305165365428069437880824705793167855630192231928242930485005430234158048419556349457151009852706190118833156708096839022596366913742721837583772487828324652808909096314723964720013814279996267924779642249176705793931709425550186659718112739055056166089263411104247282741522248445597597075990076354944471555797224249708414808891699148931985061659212402651812677240324905499958349201711058887005147584795657665937367516547974073996808149443970854668344118632505978868713551287459654743850989080697921218609596442876611317762203505081355620212814317679476018895365964807842523783081710470139494913501080463293994315550337251809029234068327561023249890054979463772411919036728557486022919714451302102319417676789997115805154788618869117444589993461111411796563276181720420587091408756326965016800650277168114350821916872861130849081910587861056099211622456410581783111793641602706771923023297000419428828492000868845037904278214542479334636923453611880589344648269804603867203666198948894215592870443301713984649206344841082359635469252890774413813751093577237232160082734760534371637032439953705885610223314992426708456513110901833940309554881309403952007893461818869548524290332491809770857993125873299219360488275866294997829117759484591701093945279430063225347748629914971476209066073804202179373432256190898572673537781920772891776340267598671347191221036766926646328585127292342575040782761878419185673666161743791673133761834056267369525373883608152876282961880625034450147932031371346050401566002890314662606596839771855409374963520401502717051609660175324846371707767935054113585686018825915782386412968458950884543083800978190501935525346012237197857440904139669887017907917238056039733480450603397135933466939062578543845591330202840211278968806237879605662998703808132296295405315156324858913048131465524044144095779333294499718517459602922213398497471168512931233046858089160831296354343781760501374996199461776964378961325982258120195530746069647654721857431515051073625781130928483145863620637110110983079588761799510779001033178057796582170710044222854407809431993542993719402013493042640832293508523485626408304418143101962469397996494746458831844032532850359111699324981302348118395262727942357777186341845553870463192943763401289542058277633257781868094959105013084628665895528523806621270254000824805951926503854644152507211222028719238433982303313300374446561247370237000381393533436761119924146106635724522656846830043559936111750032464279339711226712633208803179071420455352142405099216278912349513308418224623971688981440137749501635487063485471223165800902467610748072157689653438442628988005538308776517207119868736634428483856081594574491181143808687499092771627542410182703992688278188328463925738315960915325676815818850854892837499311417546852564376815191545712522360411690165696292874020392280639394882826712912219657335510135944944920767381966179456013069927027477567670712924544824348499137999956282757088076076147947593901936180266230667563475097534019526741637965465704814750091290293639693930543746782898785768638769480289188667728890591042668702955251320844216675266202319913331901444745966012705040203753175199301953809522069968509516342837130049208519638543045018021546810825780665072964999548994953084609698718895471413370468966335986842846930773512202096951048768441716742342291511541477012034827517748549371570927749573463250073516636130089321112236423081801787820402550753148360237000447276104179580042081380816767125301587711644052633630671054188485671539045992196773214734349754217914498510652956389372876226678993924819901139417254653289779923867245818434426671817485944462757582399215985723368299831534409551511928464040599362151184436435172285205071243416956841228497225107374157138213481045398068205483580104453189890973810918098571533423344158106185191351765865880111286670999758827121731656795726722385353049010407137717685348643740467981127324109216266111658040827088510283464705702960018446715336800136609116844837817299769822182945934697886086835408740948409939441568664044175205279675668989575461433563882950326049295468755893091330932177801696778639359194639350294761882332089188876306138091908728197450695489088843733504569155394959306434655373986289802980802444074775452094925138621084587896823666493221376116310974951437017799729699602231318725905944440259238650033687242536199059670175213392101436990122590615202432522740472633925323898572661672083531431579222828019677231995779747851471264302413170601574816895352370972169691191705070135659158550469793469474278860859811762772021509121404669858574181466455427509324677929571110805384453441176152321122973904616152872910910291984193079796821151744321259086260693327926069345249519082030403901546466622740296312068408268122668672978536741290119907445800948245395787268268168857028845330819405433405558374055500759447468600448683495460924442308752140957738390710225510619553864074082734929624696530143004669197001738648518686537387876300657651228767805183218487468121354991987798285829226042287632489053558686174238129918850956196293932274651245214477403114788736691648622794432195780139994483536917429571079336551785095113323698180245961305690781465257994449670347443237017076423668288724404687726940488792354811696710691146383071709311127993268798571129218571677410336660304380116532772800500219306107537283694553309522968507220949545032263674477986879601678508133154158370570785620622202140666961619215579767200620623288745170757988624235332277022912578311043067644626127643213997212876798934895323987459641559671129357143705085337829575863862620188419096328105038948522486060213728067432031436649690584034836488846311745626162164401159804004276721954123366229336261849471581565315918114127242317472803877341598408253696855458813868577943262544163095286534526839193451962656383440106980774628836982107010794702945411826175962722747492170713144259441478496799949384952514695601385131219371927612023559823113536883091129274166383563704205987928070615113301457992889125870735564141995688823246210155066850686519873289237251923961677416766717134476842359330964357085159110260286937778171702979150452561285154401234431413885806486202377998470987064135014725466765245632419900862485456965814676650968524549089997630155921203978429822210290026843584524123619561661875660103177995987894059733599625605592639475509969782134833291297726277828700608518198156564151901473248283656480849659084704935322401512498956762321994784050318868909130538637678382494269623162439621906538817436879379153829281585198176214150446537050537609795812003614172704009340310371495719813798133323483931321240357900455654014804481396068740526027232179131873305431886852154650889737667860697015704173901995590822863852279423155241239656997755444228873743817425299578368618571351435640957444451425737746667697656016804074169220340058663187008662365351223528450112503013412759935347386040212339048167524458297369965064188771970755211420649440658269695815186575758990150845250599773819416169402307853179439539676007026448670491002154691261844898487575524982405958074105288290896836530799103289784074940949114655519186027865426273339731361157503759638043466964805041610186138367488000367225823195733528153504386492313526082544645035164378388599106987071343220496873891676227660864812339107809171296128045649089736766118243481529088483069539639792644692189233040868184706597786488041920606491046674210981072600865524782114504287527098538764152638475233174350483025262936053988508517686301540935173408708901364261053444362730300545849789823359575919543963497523562054775104292568021376579838943349933497302876789217812880736956728241993330854538986031295787672613001747646865949985189420003498906380490613525467174661383989317037638204566898156683120369003533436871574768127435291136315741303128068418579798633548738332851548090469841566644014061101096280358567224930468613103416640563632532958735660532021364024788876864954680804901624862280064422947003719876949219009315105367191272624637970722954405749563762660218775299740481063767880632975948704829429249222589546578021514963277815903997404514238190288608691558400979901372535855927516612137839235107755865518358169854811568065347426285322879546265953233232475640781235474114341542257165148140551092405479469015723758289943748333219739655333642597531309723687633963484518139281561414907561984357254387251769794646809271439317164826996622112954887754597239422050180703856757650201636024802625823697667956893687836483924424333939956776758336040967828679737515508734416981565134047973546662579988709167764173657017453285051443019427830229309838685816161769630760624627710622584288527567875148208756896860375917830177728966265306685200250986683627064000891965324852716677156888832376526930456044437682272580919462588932054147745154042451854333818457245272843063097865502060424631320458838851006968471781660237094012678155051229257487459780235112429927436796074056096620230273118062212858176741606908338569378179070824696578976978798565638975843750857285021609874632859865665977906059385470970823366775113384287094701166213342470826098430960651537311389559016859561344909165447123930062803136550194748924353314312447414763299153022620033540347614634813009362042459841830827942392542761203024596572227515185680412448931190993594173969003164047972269051895685288350604630934540658772545071618311044308393005568180785845868215540108342094393777071787952364749205023333614903132755937934304684206772685871424108338387749511898666734240064116588679714879720747239842889648406410734357910066831557221652773064677034539436543146616748588421832239462397165957272348299314691398799951872143603049898288842758246635749082720231689466991994744762776687549295458039685400509000037516530768272000648003469099289926563444875826087529682873580569261864017335587376149763126323238998345395349532378292168261208721073073205574535893945744073713030404223493475270773570800475419724969468664736699896461262828562619086029716081219955047555794154316980267811990001562203276833304811757378947843280361683485956252605965569745727405027830566453533400037842936106480684437752906078260161181980660889503128440400162308045304061416228802374349385265116351585755646026081236191644942251200753301992301522331467667619383752555189442574424263766416714605512453415761832951644477251197762580411553485635857033187271253517863332226857644967962548376982463865789783356190633445089734212790447871171488176789059384708773586613122724941400488041341929173464653932031036354036557130296454815965724586276030490918716675178391314313797176560567671123465156165360050148069113270224451983981430428412061684161481944178190460786451482738232857747536116101147960835382153499439187558770012812872048076318744589162071435953996523607529994060961383683244043272558094794831126211868314197829629635358827945539606689984132300669091882754138773620131204069541770892631374922779320154431955692052958902339373778310075688589676500935422303481093438941508702237438194029680839508036994390258666781140446316864855252803065800625754497700114101923576967373518142613837083259587758553980038954643825872952942555784823459847501247405132290041040614704355507470245163961938931774307009730603741059438830992774027329538479941575823205613417680604904924319721500285615092063739272433144181028029723029144494604732101574370285793475553779174492713185793506383259201678304645889283993463273561095976917758594646347443709489694047368108515397534911659498499914511190475846021227106879781405986426291066040779715720047484295826194831211054637398360809105953047449226045251477151050206696090730483741284560120156555965134945058725658870371903384592938902679686268831887739655607656299604471670634499804424476345494193139597954792582767674286097646007109170312714650795446379304129373604328783393718140554332679668998567890304276510270790267539493884591992394303148635830477171309057879106110212672006265444291972644996774233848897625547574164981624489926577746448986653126429234650473021230624067684534879550782259948445633887767670881706177338569049044965933533190104664451977409376438966947201412755335673913809865107228556496938952507434724400905895316864254487313749597485717927766294123781608333383210331434933161471738880018900523877221927578260607794413092726996210344275456851536210363531830864541555714801921207277875211454419779428163733890791897430362542377928951840037742154537041453708563064514064827317968977469992157963806610544302369001508490681645912083085473165402099864313477873589036673178591822494623936962456740151388528023558927092982366945208739432349721083979903909853845968062201439689822015952558754879481192722741883993701357667383143212652810834965887731726601102540248561205284347872871346111333586569345305999088600628100191607480291488841138246674019468549278435147832564426896443027203051388992570501797931724554225743943558665223646401180070538516410284550476798973863006307627109318423612142843702731808325260938025896301305207155631411332978918756258005453892882470320306753662294726387893934058126152253118165278149806414640294283088567260468019588780151976549871005684184791013910844146777269106759406056249187274394907653004675076657650754789775479672827796956583305166285949775045206577416346356505489694828684144624018732410705997169959664974582030834934857763510084734106062637684216816767346890831252555684188972321899229255116927173037959200765766210093913687421957720585510734189670029817527496441648790703472728239297011948967171304979733829660479697289613535613862759754287642579266537629482884379023720885871443317077922636759156035135894328300501860800077859474899198308010139395745999819076039491325583416855922946068908362012632136389576001013727628151512289314007518775305262865480564242157430795070833359847430062373080644525745904119489022591575340486768594169038890261370406082146302550126137090853328278048978883861547486757638918300887786468001370304901846719098212286950149902849532882943772722856578398390463101222485320595246622194509321427521352018348090838408686844752216270809810587950189963378583838397962398043547755924281886316762788897180993742999336461285181030955675548037942193886916555715020002115630157191388402862825243557758005306600781261461913738899999327226438785847695656246838759877736448848430147554499815529839114203763255507705228545851427058587507617701789567206191401532038115587916518009875546561545862148574477961930757870673851923376443390535748628101197854139701998362640652740230825840653729821327301129350891061235203978840176333691776649833633958250028258904231776758732219271092380513607141818220691330572375245529488842764324555972865216620645063948492529264172383708954974761176568300688138061555071259071689595352981214279314508857597296357709110952625157003957223221010336729428612034012093259543915601384486920027934704366246943993029819025442722444704267900672212094143412429071367509235645027576001031179692711175311316628167947666195972586506254208430111548611831675861497034529759763804695023877727056658364426121889878253108962700388622685971079492506659021185815352056829646005032574292778008084950863770427614794034613865524065801551014968124099197571925332457470926831304404932589152719531157212646626207821292536237467848160518631950869196686528077078694354618617741092758240451291206488921800714452857165929923394182557561692905842970498758550082938469203971604903411652961426532753061981595591645003269378615946443904205899715462629551360621953295478861318006370869181630360436816782745864966169531220297072491171583019344163042295276222221672636667973159206164030495539144264048536968285895183502252732172874716472745916419891193793378467588833495467380374638269896940387842411143455843253127273475847145769040809459129942365706549697409902109306742239341433343082778732727231558856350232194399425133945744564517500933380781617859424217480985516391852566464470277701134989144090560337084734312693420015486166397916644599821762762770610039206644706949625307983025138096138501894501872653905344464446408561478725722436741684319189228529015306384728003956167340032021702514089802654763803794006108836430839094550092440102776109554904209701540592497995215519108394374861420755539374117545334113182317096564810638210592216833691918613578042852874035335751154899442922151602200565510492366114217664714573512439690362513669215934349044689355244661539135326966685294616705028964873142283033321162927128166077948276167026323339752782901336995795463772013999347499004732806841467407539752361552132612329814194936260393348294489944347510200558206426890404137827704448257562361194043325315628503334023983415732656472910238552256086083305927816808265404484556172210774655156826257331001938138450566741634266692311430338290849506029442148843510269159495356141086131454430297048694419418382914522611682904487680222539880977209607374973311961553960737032162920466047356138517273281340009050876039792062070263106730978340739972115259227511189663819585346966097387138817991214604868552163925199970906366122896601377444025487412220059468173832359710105940618254162035942634151135271396644590874385969184795254734644482456393337701888669848297166156140804799599787081054808835838485195796739290191925141880396202580138928775628805116280511473697050381315843423116365299332964718076576437977584858423162921733779527165111673731079335785233384413444070970679555370536315266819472223518026618707819177442771717105072120055580604661146157189322799866130678659133241962292598511420806824106388127567272257368349774984602444872897197365910343182967941231946226690117572156776787418489596379392470203217808097595878999113183188513029214794875765799441190682435336378192073698941456705379660948964921159765139565051798331096633590066947723050135733202940111415819705401761138163625429286795411469284061384808344676885233564615403239494429901926691145156773398730848730315788059531027240383014004991350023906498004920918361600904900476224397231164494595859415072747870852960497910031644713664926658000293163821355794138927653474453715373080344838656738127141045863574352473177895600519775848126977653782678921402287579479082232862269207954415045255663249742463323367189791406051863702922973573865941029592997214098249341084054544025269498609387538899422458829295919424758391678455058303319116596166403981502904846351304126027008194083971268365921859242174429324128133526478566923764592559315320233760700516231145221771633790389281961655605054246752617785220767715916702549425598943838465516034991132822125889300635874485420484948942557654438273626789681578969766181580862757696714272401759915420602587638860184956671703410066572172354746504182154010539468340860081092168634767213114598701751866583634315189107637932884156130754406270409586994119687418441461503497103193217488332062700594269386788154209222790976922255991284090153787873891478401552481210441578841388319809776459519290236574343658937626441827786491967259563797454641097800187774737104132154355726443033340454939575079053625657036720059573814636586529149137474737752517634903195302784517262269755630712890360921838032905477412697100796414998358975391171746336589752353338959990712135834188110048572302963850707630565920680171654927656300102013917960716538383818369408724548521082294292040564199710313629158354627339454605066585773346589238207716620845786974282952439571273259167299435396920024699201431862168711033961668305590386717154098247759805079335579541705050633117608260773410848157802005962879469304173186146125930274537227817826141113053152891864852951167658353532991402683620094867723486840316782749355537208723676590712106825968042700107355635268762502052200522564449244082786084291887630815333958346987689917162121961603843255248135158812850274620803263574704430349637235462943706827742484726027631512232578810772003786258083211435669508593375199683119054649124254633003871117015771786550349875973187428604939548424334484865309820172615933225711485935404817397341523590465571838526722890768871560060188752745149128879001493999878228809344000664043669437649892286836673439559948448954985132231591106147358644890972511701576528364247931978189982378040233235303944196967770221249190105761086089549588140858371012727465303586610634386752512313307502897845024264715324054601180801032475499663059342120769509320697493598955857223131986350132071623224936074806431717435890305291565341593348747662432136057601341877162356363717407022720242536164838030071157397822103552976189272275523161736473952724826695533577231530512879953336625921735736504648527348614357151787205083204370400993524688919258774251723108519208903397368535091757920310718433060353392104561353572523524362409077241404645777050693767978952757879855691727336365652488188114974672979554692229299550646625820973849664250498893030499785020109059300931079171165244341104711939571981369606272155790257584363427383438991736083740801604355460773155323898780897965190392448897998212275536790243774059821697218788771561481248652615518870773648603290779377341680305648428110649804180785723958930258726818984558339594159153173597593944911629209097231533901275863147191461295992370798293904804986436271196672509482135653926501832774826219407934764100565273241536474425860052126549534465007451545133986137788668999232031800713678911901618254125495976934618293624824541590739523292946190211532617383796299779376801588070386981397525565004486969145977440863966666100832352424236872462522545505665190967845201272911832945590636664146640073062009519837398106596930432035076320526324713085285777314173752905928958484812193522959919129540604918713964040714165688825739039864798659966487667842837708173282292675765342530723346524935714675615062387715075635013403174732349183006292475434888263486339037167637147484754694917317296469308142290086238804780421159279249411991674303444155680735375908548903494700665717142336116865693553700423601824784088062509240316140061376711059638515536178877789179063988340501134069782953149825829763035254684361101058314057752669766924553236688560699940023932131740615522056390032154240401650619477960765650669490613019948771742131485989842367826764481347258206297366026257766977909145515608112802543142953060857060551414135445218153513039962237209749434699729862716990072765321707186149007745681239903384965905171489538234563786667328898753788231390216580792259697006278049113326350203465481115218301305767308040317366271184730164777215622728546649453352013266956682938321340053564396703769536042810297714961965492474764927540245153229886291643195426634127881869810953325423960959981641700634563708160736672198672440824054218280697188786238405054102346296849421863885044844815580332230059062176101136571394719846131233500551422845071549005165326070758105416523131262647450842176877114928358104864657495540915561744415785705026019400482756370923141615656737977361572810642320159350399976612318705037988916717653698788744178084087860066008246042519514436131753203746905269896137494946661760199973871199358937884566785718060275502958296745452794189852302542869794406061713928111529207467326558376041239618116444910522320019110400008583284806799415481346566209998517383623542393927657629832344553227999361336385379777622149852610727171207741295985606710673750916172260151750511596591920872000663231928936046408448039245576552195907419404107403570195346018578468185759397965209516249057927147129251175759201762658080680639674050056844227835238586484227250565437774846809565126522302681345792666662932092158924093674352916579453575854183759594135387909660124625223148403117014690690933432538712626836453368692850083667206998859275463606099659240659005733080610338373500131668141076049388543560888399894690588723353722420374919740047541279162580952139698966951817550889833671488314306603146382490265900057508213982774668607918921742895566944809335665510406070662165714041548713427172626322831763542365427679658783081754740843101506436239641904176617786455039823405169205494294263965081858761026360345056099323776680693044304008149113446202173788651257511487148657257085970523122967793602995734022614136808789082245784007271677523137771400821606437156252103711782658236888778028023525366006235549006339295070645770161824667243422743213511569584030859234153909111646951454834039779246573610667251098715205203452424336051879088601620685390103966300326769216937553492892916181492877984172382059788190477870833991057726712606393078193153684124811765079775390641777218205178257176035496138082540644917600896017060255053009490338584727198362452644847406033496093705904594116870917578766579088352989652139339489929172860757023895241057278000398760040244975418364178113747529317113405112921022788678797924027906281158101013225614642131667447678464688539704264411408669809923943402513395356706029262048824555397339587235578226157498854414388046305871456295659001462035422538630160695756234399595950657404362689266186681710338763572103569895199562254421787158877837770599788104975130569393731979924106987488848777633261033942942197890646966789620599334812649381312894569128165992354951505139376032547532394729106565168969755476986573221318436583170508102543939533639626235038916685565957786076748209985962638602971361110744837415801004367947675533336095260429741687334162571466743235392793591445347972727372174638452786578717188465721415431838275610634080764608479821786524459643641542717562618081027388644960065908422308004784251412664468971015237254292032890788967188841285504337545084001653307086570109738806710958475280312367717651696766505827375591408335730365927446681489892098533419149006623645483487103611555460937567801107381474700087857670403760738567101844856593772986540470957589174800697781337938016474348939655805181740740875628844819798209126809832505088118853551331707662558425055496997674126839617038313711300737174239303243570791569282808410152569942379644660450466764421066871291095844951869632071687736977273369412860572794617238569420015603132196760336673768158431187316330008437267509897464679513288603545048141221122695978395107431725087790337873256513388130739913635249195634035688669290532868886985399187424158776834415422664568873553706708635589739701130333858290007109026552306465433994533716429832798626358118317117271814154407749815957404772040084335208638311375290641404435368713633846708519586062890153299708866166994051758895124564354588731678457115411018702057429920794255024525655180952924399491614186082896575859148061233589550530426912110727756140533369746579950800882263610469319022136561109116420016339754879629791749698864208167022751684680263009157313286143740035144036765725827317336511635670889644380137262795470976748927476705701849897204208582279421939492984986012001350843585801459640949506052465926519640134385922248669556467650575742061666266782741981965730069353043244929376349770449909313226099431311804828276586920099437590329116127750515189391182849131317085480897749611801884851513194930334744249308667330689713322831635861804690978379358104887236749064306647315965780044201330622649721066598373161203697422213919950740138214473199157939663609892388921219014233851018628202084385006443746083463411630379863721887519198965385902930938117829535791094608560359913639729550366878491537342621506805369139025983760104051503916338237724480781919183618039208714786314526414770635021027754443706876854716174726663739530570499148369485765469169423824368494005935054981491753854186671493594482894371367094428656844768823866812697354100741189413470114009595557439216981893274292938298204608225198156113748651354056318205512208701483660144371313584405078287213014999510748862761983612216156482473540483861165194953120221187820779166043546644748777242269048990110134493675818565847150547067101323227499074845706573852383854850106140812552418667801798074784778285691849935878027413174602368826047462816694457162623874855197272826445431427139590131722873935308003396343890443070145116952190925162862381407998988350179910287996279277482433477622020820706941993374020119959251426054989043004829753382095240733664446565841648527854488398714702316870634361779882251437399917582848840335827838431364377155237652886073729549898017190267578431020985857714667171756308519664907016829512138263997510617263376373621052952558238160511118379116482944515176839788541807878908861916544900147481804416313376749516778977789059263328098464900968707506328520659858318263205998866465707709309172089013126727728049173403257767764356840180510193104784628507392936324545735692794537946960220107458322617379733648469160501926420305901391240672542161600787433470234510503638039767342151276831769253509889354396780577804642461943854217651460986328947747707043332864498574430625880381899375715653220257815806568361149407697686362085989125856232774056953312111498222714804461335454520276788354580884494256645835302853864441373278120646747480130171077098608904988397755703697148246651097583743116537699459394819288211298254390607635764499260995556108525989943441877238674056595753420602240324405777923309174794176705261613479421393776829497597029048731666935765198004276809733640050403348329104460419570546131459133350311060035608389513021176134301804039594768760058687040116829411857834243852064027267487494980893918029515301421669939773697852937636977441864758667171476490281720270831821548374654617792752456202828721171265168876150441069458009980210361618384344860686536253392660037015634247945297192693573867411151529543920535563647044729121941176076581959208981245702072018078859571932541696179210637782252375173786323669504027768065468655769307706527077047342511696338830686933367692442806921861267448552376775885561512557106374402566935033827237203250050615101775387557515936251164133740524881490865905843420463081315672150844067068148639995392506784489134451023964580894022818256955267054640674913330933017310751097990193235303319562254108914463854939155399645808470112123072651422961981256468675149093325352875126578068792179067682790790461788533890114147099867785011113388261012461775318481066374539019048316474993608280769715883963860449650204705566059175265575654262284201215511058622211075303915763335203937415776699410555807305245292044361672447848152282242213050329323422994896530454422912475513035094724524745080549638931918041668353813807661734472718213675502170237417743888649686697282139647971187555562464479027026742446182158783040076972240131933640914381251423527589621474200085788492813418361821020133831714358058390026322043321831818536074932597819767636207093423057449055683662869481060579006832503082229905817057191408112277328526038966532355777083129747190408378814514267286301786801868879561567106742456407708369134383322960474861676052391104938461391435115478099259810757729462526598237250381884731295642435891975081749222548184818836537785419821198460204917818218719587182227305293693968890510754513309174154634163898964565559129526343006087131438854247433845524573545274737480616527529644397971582817722103331102267280343749705386088093037245097493697044986962786072023627568314601486795369433775071640525568600689085495832176013288034778301096679666250718523658829908215517564456480327352351385075841884047224211882095617979666363224253594601537321503617911274938792419811776661560572341986475136054336222050585936562793218054541609978690053555346006535048391155089194242016639901877837639801180116896823234047730104250222685120300720187166969240742528390340723459258148502931147911450440926705995112878657937114170306676434634860210738859088365594361444528670179913261030436545383878735951184968231272405343105659845722717846250384076318742021486772852622081132249737097114208089081271110437117048546380129011741379070511410931725238519871782668467864159362493093000277750884062849148247585396307170199159785109436066614163921687837164810217770998123322462471654308073094584981938546053876164836189581031791098402242709264398407716385120517984596656661010812197351480337247963766875642884565770596811402350013124246254087045357507950571920210150662265993805180786467222514586547670672154038167122842634561209043414059151375863127417232771515400736745689995271213710785594408487994387181181105340142886776514172606034544718124769807303441890491667307013836144779790919718427759543141125217922772057475685815005706400447825967594854812118880867269095369436134406853719477707156018175530117215067825100147177173999685913504926330519322979302175269888435773681552666925426989739082897405326275613880760798646051349324196189317764485935679704752475777979757728122199311600487561466692241295424555952225482086751960399529554632616015832849139091647896656371110428558190437323661975332060709273608012986887785059855213938209371647728355426049267357907982985179258359503382277137450075581454409352299660402016982227910337589117682139075466474418166804991451739689674032266282171930215108940248979214433404586026213401384857929599432667977842954380462833163865376932252010115223269475631710073924686608754039543601489124281687347206987455086488471110169965111919538260423461597363791449315773636362466510275142974257682378599433009606969511162654351033082942682593376831462571841168399426970327605499686761243610933809779970361544367137011734197302231159441552400711751517317592765895389560065941467060633825363482722768844526374901692327149859984121322385170379269557617608897554821602778436657716746304085092031077366651032825436684421562829129113423973883148183107578236160510397978394094499152288877053174615405105233758459712395430185392659402950001327414656956537281659035746794725931692675880106552639705624692117680911372589108956493057497287978245680849569699972275385884391051027712112044557135530490100227944632240967400618023451391587794783374532326663244618306066860589232336039578469979403229114861022543750185320704813653597869920104212100600498928123962097403727482936425964770455347032480593829403984703943848305180612785277840392684357003475266035790406384394788187801777936745949123811577492322763737767914880816558473480809616091388132280306154699127354453655320054037907766379328175977261684068199667094365861269373377145541631748747174288435924826056380971645798784170588255517027070457417556657247029886978836115707239866456633670752090635774361449861873479598822171284881942025393605013083680202028323154128893129954841988304231730509537410322295166789143925606273089904631293915570913628161836804090772405870399809231391919886330860171155887162580784289560503065765038282651066063565309090564955532912786150365185562629328072501780418687228532507473016517168767888164140134818073309850424120079994505091719105216215661695144261338124690402336192085113919963156349426345113947052823559096607328354882830236961588030384340606867825962592566638865890156686856058276238407117927935691541227325251424304536711051872653991330268778848552544016319021843603685129095299047098994082480044820222166995183464956173205392951471960875722418237980451036369519648516143190083958198954746814890742384690240567223985969258121313500895545888966706168750076664326871847212150939124055855478844425097078731946607435839960015970588316484093009945541025339240409159465580678687384787583179520204186393602144908512067991103887767564010951267739893314182624971630568322649287533338260600302190859534606754741526776221223886357890609184274187857163240770174135184575110519293483536690649707014630188442588432765593903799182019470192509104577367814974075232366386414411332506214005631327201115523062066106039583295857852212503163175022732779062267460693449662460263017981646243813618544582589405129852139904860392407047839290932252662458502784265322398681198933678800397229585123441590072626871242786413376256519258671873383210923397321667189043727287148896796741752965220227338449042225018660274635574057875577338788402134144865097323858462499148195427082104836186238806598655530595578298024564189125333416744234056822697835062347297386769960025089052334653948291303935933750272800693077935601756999144480396385028343318826031764067609175876549986171784916227841662027215036543412773670379855895737066861162422576692858719394758597004822119406418876822360331543457209535495217659283196314572951363224187979912757019336985860293443090191119366613435836190113909876534604273488900171147909866929758609555126648528101880074390448482311858727626338785264913022673721495703168712007086619317033248479176958720511933151308634447013405380377321691401579758700789840357403314170397970134063422145961737276174296429716078182805081990428586427174413378102947854606083279430126662619966493983830963835966182242997772611551337645432563015801041333312665776603775422251845811982943400598960119312940529939081416239578205127004406502712606998432814558825169872942466912138856434806555249556771347115803110454497466703365953633920367204377668081120536382564913098776216495230406163332626024734359309465300266968515741569161043540596003012341608441392228785884857342862325291201247743279901075055091361425552582690048392392401397436790826666334889438191404100241600324922367249407375462781544180516619984855271176061213414937225740400179070288480380359507815023207972583332861553879595905402342384760634834841252361587389486909146800925106220922531140528779130830139984914772064642573007051075273405098460273620463185747884428869590961261940495524274478946428177871771458774446289430661852958471792034431515601023843549319959413427567670347012777966602678462023544331272350528151297092639826098921590017905512887754062497650164364073894028650358046695795324153145318418635372732904647348022923266757533508092054484616238457681623739006671462024528062511466539458867257740054039402202851162905809811331598626740303468747609308078324065113670285755849846426993250590107776166689539430510845505510385650077195698727335951484425227601001789873540362293515490787774416312877692301305871599232454477896720552104010865530231721492386695639636279966282267331503830641566577924420943460401798081641079329380330871325845225817192178933573812708269167504733881716042953973309614507502390522133101009042870699978015270924864008982319838485175978618253475789265166669265226257880328882054007680117027081901737016000958275206200940577372440548298201085657314259416186421727490765994251128392521932218530111156994117136406572468913457332993046124114143943244340513313714617092156084701954995311422766719173331521165064212009261251302624718558426116011463955807339283641814726043003465058562042828115299840809919535480875580489969889658749408171939396590067987695909559747026337389416530404949373188297254874962385313448071925861498828097981414553512154721542067923691846085309894300419477397182713850492850846925479846961410026007015092256199687679936738755928993906819689279414140775839870822199166946037996428760084681805467443433729879599509490617331742424978086877805633941827862445317416195255273434198602828415924299202505306116714782019637645652290860508500595431712358775145553785448623897635774642596843375861353259828235933703050157462194890576000397629754264896896850654432803222417066519978321892389228078381321718483435380978011242954564349276320589403275437490323153193214884787092201992553574319465820762634872182055425654297016205341532369055410263646856089292870488241216292479330215020908405193040855252819156152961509940282587130074327554622453881618946722134743709380167664219035051322501858948978298259147389648812557560998608497986989776503077358422993627985117894201667695982569105958774436058255874312514935609432560331562287400114378226646741542866506837515996332558762906228314246956108795574719435832287104537328459873173321745128425239145436440582966241054499192659312589683829691721050712912152524626917229484456765163067300960990585945090558544994444282975516726550700475404627574340553629757476291185363888516566612976481444089710760596675482450692099268349856342737760688161509122098859082064582180807472158943945080652599414980601701261672487914358135182966778768130577896308480141186253845434208177546565894793405527477449545037564763612983116413580243876727444326012806133353315537519861677218996081303536369047398236569115162529453431682879162044241930632467576999599109547756949379251290575744628482018420070610793488801338376361249583360209059658490642605234390461551445870027645570196707178498305949674626970448651406792046593559461911604214551492744585389448384534268158859707690958600100281538718366123044805990270553250711032364925555355115130203694609538779354030349362349431553362019779344468611842744645037035545517471381973511785078775260343340321292873619529161898884614686984792364406381016265585608502336005807259644878850948420776533492919269534893100652550050962492519145155205663092878152291585139035083591218019241923686450037317152921730825404304704835454848361605090772809443523899126062431496433462949681341362424005271020267339044816168027070376994853311112335328488086845968617140611172243928342342241704649547950679660916197247705970087208971720811549641747073504936278672093030929065601566229078880812626647713591730517457833476081969976758631358886693355790506908181745581961442562415345546430911828580516506079543995690976504178182991990894317474917414571476956137574080647813460347933465117819571500291130359033867940181495772685825054417787262576294076025397755470062735943247609251634970588001125192654835310228661143869096760137456842053676411678193454957456875325782619211951016776241451775056280308844519763176003754397430987844571174484577397528921264818988069657542761352119956182160199602918646883886027226412716419995415353021409766225626161338801738077131945461993366843318501155106971416452097944975203207351459265314236962690505983231490600852707493421072295031673092187528266554260625822407290914789815752833755008788862009901346641108372384207814769398624773946571088922654208838246411670135318854641951058947450539598227643181755670796953863532758247392901824677761770482633592004709963408541291378990480265100722864659901836795092776963154236645512767003513832878915979872503839097859814904214431581822087872952928885873287235274705530084755103783274551134193877472307183677917736577205072739986871472219764173879794939407883417041038814009505561222537307735160928001278127560684457942752590642342926574029059848468560341079011699862529284603884200649513151754781800764939304565450792552619509551394024686943648468853538264980657909602191114660484329607585346924930359466922481157073635247952117649184416382561721155113017849313310702422498891532721886076013961804165125775737796458191573262419744684330481430820046683492878241533494988773946633283467276056412755924774377710363333160736759090113261867176698228509657898220179974693098868110153148181229415949469205880684742832544262805175356083205191073537809055879161788600586906394721255267354868154190395058373788727101844551798664327046315954791043095580513834519047420962935871080079313421996266281691371214925991883936038918800427442303856799103977682615118358290593022366499452487117373253844039000135762554480539281131430734502666621776035069549127865857539256600138266619359899126878660293656724689234336092276766984977223810910912179981977662265797556933603886748754696673017980151879276843368470222919184700270551668941559265791874411591533021869368243163847897591957727128845870162270068741722475695228245221131913723646658338924960865196451477234783366830069446006145323292936868505155250641555827197651279598381890973357549794042341426549304547606657952966350069944429242981036641684225447211895141101254711064421193579244032975381593163586911083831398701962905728399392092271326208916547000790579657909012778044748308212557434977538717165131103807295266283209399641775994232841706131003060139433937180074008781649960808025882668538492471347629915664604435685227507153261118338683739425470657743337353025626336407728893338046314198590874335020782775358343264462827175978839379477409049235674434651992776923956073759184411890475575497792703864608529621482816861107005592646740978916731350359022649070377195333563653988704029518554413605999997779507741774784874267478636323036589829859325251718346955945741308117365431798431773789078912862631424054711405149376975576977461004435075998976697406599907733659187414828739469406544859232269438263570197858786173938701940621691794212352598962870111463939314510348867884636020566213941346378166348665047634971769639047988661821078917868716341944249447944453079465664445074458749515551825498727731940646933700657032582491528931790548519044438794137986363607334616621859301571390471110129539765439785705368273465933383898135299986872187861001645800697275953358391819764679074665709593568126048017740507672220540790477229951115108082144523435752557399351620664691767962296312556439099025170687660865871742570830136701438023630308367484106185101131136761488647750079580264995176300463646051667773395524867784537444298209581856475877682558595350323174645455929263160300812149476855277279457229026939938591732194843188042624779848613756923279161298936209618389596069244536048605508988224853227620082372021823866142562576866018466218257631280622357512391740928440639345086698526047185550369772954634397699356687078006905140411675480829005002306238471393648199850918033753088745632444325429285997268196008385236777570040031035309876071853167417545541417588435408240901029143623764067142704620097600524571477888270097748907558409393346011142334069479878450228793028810344727306748430351029375217408485425200811187462106166084840613780495390134440754733530296928632705040480024378708084415396182468818985837221633264818934902629288062068385124647913870218326115067904032175653396225671298163898787904677627182577610642245519411041436960723540294493978706165811442903762636377843713414397307458176902578863073167847673962799950170791935292960830225010167872945139186519794631505965428401066516014192396672790757380269902985493263721368690552111919992472257589575417180742321253031113137920503882503988393141655678450251298274808776489039304487917933842951497139279582400828518997447523264158172283089997383474596853964282184095612899795396015528720330273409470287818698924738427801916740456087352447966041479404597027582832048302193581981641380714342335984991792733309679365327644001338534710414685622622549355339420303996582143559321700884052676396351148745170983758886555611627358321344243539637109052003319574956948485051557598301509354517367147242798550087575861553017363903737093042582694445535562483763868382956428501906365348443712759860903761639362699717161222684957567944962504832514574786595737944003686880260554861153951395801008262374899858975263441803274935011275073942850139143245082937386243818427466675286559259346300734213032479254154224880614232290805252649754272844503325944180741803941062740530506933555049275455666669322220956611237494135345015863809195527559833370440224219131975925115210043647698075485843146130007267524111243515836140106909756835450302352037557032193049917319451659686013085799023845197704529686159784789682633231604878490865933097463110282655489535932438272587568126427783716459954167486496035330149819374195903861630841554666971407468842102599314785101933703407123568952190829013619631962375879113801903955495196639083632817618691120802408599613745949690385107259475424264616482796717222227690848780127032302508855989293346930702899098580047083959919611021310375104521674705410156508151345686998430671789191425465146215773629124134192972755885540573898673708723819740997621099589257472435322600810993990115744044438090670015649668165105368251525420661888477881693710514029906259007335447162669312532614670894094920962127224772654207691615477482731466983977437515269025572441184204142732681736656288558473712953055469836738205404203759268494843244761231894337693397105879905831539538292251320937303266736741838908589562928149197311188664009860258823047059792916365833807424939142893424237110826798737471942793653304969856674402951123922199456079737028481445497493657866244994279439397119287739483898787360240014353848743542217635797284181604085899813413437347784532078347036359545933888673748333296728862320115324051254586214307580735633163470760244844631741944710901158143417278772858699332123794748445779127392809178467350826051402440646798707038206320313014506202728310899929530410649645282440195004882304935755415316898185098187574735068964466713877522424810254893551539325347080756039550527041645232198364939333925721937923284609048628185643778581252476899471117823097244432839254129281449451342855914227316252833080040241839160590872703542363841375378528124232766394695779791446229971356173646509279423830653145127323929286669979502581318769466938516263933807774274280143784227480217170621032771651351011346241556038929188229838338658382316690326907809631204929386402416601223565288452480636835570282941820876683939701776555825236923356735714993090235049240134008198701653541736967651940978292796702866106213045342041453354933043229498636669031651482567433007688753325713967996879726540291261488489353672631978020389361292264705254108750166831751140185340862237545443851142230576272016085968429034445857894887894956079554968535705102359861637457006679003958090465335059033714648572178588648671832923289272334634870918750385205897478439388700685471557190146657400426809185761502068355499067066621926218316580899312488675960389264561725065606157159172226121642997723181864319691864341555276127808523123927456080560295700458226558630178169499012592391266032528097705266738288211704274364538020374390590266892497725558006227765915378702125667127027415985685662620540036302143202997876767896345034181979339218773469682547365363007651862763253023354506240541766198434557386306284880479342300883671490552599751574245795379974857555707070141023919751370150080006436024097116487400070102786676488076859676696037320094812719829804547081725963075521220415904383607491641231251052032217886688538711790479054973486220569772509861358357704351774382901273712031417510465414866265350121063518264645897643934430633092023110317823185684603001449612546656311841028661188400722139626236022233695372671227481314711696185978134613068390797815982942349591367908882623134945445435868088580287106839213760152921090386605977611828736013753273167007773040127319683452334007510255746786796103193390123599836228275418312982409145891347263771284404847368513432752920653053001808933508148345024925843122884682566468435044559973487377999107044802905087054031204242282799200135020815601985265681840076965475031053715369228347291424659488037459247634005977068247142334467226512126283062194300748415743678858491875065846952825720133317979668369591021949312783175805666565722889578551996622263291113135157769874759217647569724268778558160325881667026873656964355317596057017715127578514807334134290634142073015585410718121340177653671314430829672835990154118121107084445921292561739467789066558426521190768170056883293046150439484613287807995607208043811962606721312499131253926435882446678874220892579668747930284786110602541762693894840955091227947343632882312698117562743976561740133172511837604218812622166140777414214069067563458230496709643198435764040751449402852113305582829012224189593575271368010949416388044891243944302111020748603619733415125768184344606853313013166982850145344400676296518551502863081669811971226670124391455695596154125806606602740258043463586902555724315930348434840309171257369873204321407883841412723246043057822565855693932424693731695292414627034540733421028027081636605483373132355841213995840508114501331482687896421782146094803571945306756483102931943829386634312520920545014474898506232395009708350195632410450969312746625291736577325259830279861934658077504989887524869354797262514022458654784812959403912011671821000259089732990473526090134152630164990415093565054646072709120391027657023157353509614551390512667292354753764602140513063965954009649579219804923845629469743502891017632964079946493591261665142800080680611492275106476505073222270664383822443213101969373683492521618747531035062720843526108020190406239588702282909967183442918594223546975848891136792360907779338767499482386137353301268925829074481938998453987765238071592579534527843527182363008454460917748302195373646895955690340570066355437084578800865308592625963969862175083544027738849166801153906789618646391942887281300684252578607759240777872078135595447995004461166630611142446431975817637511474712633901622406899572275649822524428302987089772228136885067905623645279588052405837606656514189327212314439371716241870417617548872478134041908657420148303929100832942051413327111526590409563015296207665175207556689037810866266590240420820779058878577580412537593305562607879000758460743640091707181365899642024033074131398522165780184461276096197308047453001149397588590346268012189847236546951153924821738015290974815838433403733630014171131975495613263905580439196371157254761088960670958599144316367533926517332520480665314090981488814086382171066471037970048843597683744159919710243710484028734541725204612002813910586440554232844413019476652662286346500786849774092941071036686952673171622726729702546836928973676992569312479471464594847028384039989186600187955009804573711483073626120211191120807125111007816357541020116505620766411267277457775040870443263009903806491778899939813288090282490663568048556857296214746933051355048591879632314858011902882280119363072006281811347457032637264185762046756641554256569147918697292862174775732975190891610298074820064021941303859119293876533197892406619472833868325814746482339139090454320677471071932779879003759825874225410440566481783445663106587685746653778241014203494895863500449908584380142834240406178191232690231324906408759308644621014608653161540344946965761755504945306643146908408079117440568741090658853510220193988001009618123696913879842437042820365583086817709913271501254867519473971292106958185721473514767748103015040491595719428135014803737707618266662321771760412161889868405500874689802076836953690328812718058487208706630132451365158857002688004940697362160505283781228608438169843749193688812974556206995646501158266181308730843296634184727201869984182366792587976175089840369673171681547733742645923923499469344144612603461988109837618754485122117705329111770638079526200827838105800916774560891477419291540171966720484208866138162854429422580334487030996437982670169379238140504082854176939993658191970158138330197153683163946919505485162309436727539247560126539244866432928281601611256777740431016566565233437940508917617578798858663888658691716730753378501589193422839577571134519889649588926720960840010782234625239554985948806100450284716828422077727803909362276116569339241058848310967473442546896979826812270320162798445561729661722137915893681723001618452125827593976024917868411986678099401298765931473496726346311949022882320632267207962896730670078545734720272934579999083203440876649897297891107808033352111358977724458423120857993437190113463771753313581039946645552867470179652110123909022343095228856091680023697789549913153800063111597888639567734549354143018739993785421154248805629857766689801814018630289914446847554241734927704205072104069820014347349229738091597883552550891715045894683612730057759494145603722946583519163094642705723565535208687821639537765364144827236269073987217825804871974464792586086148823581322443028629467667453359833578617554713017038963842391136239451789624858073079049365337435501532836373654277559174935977566947176071139253660394245293725561865458233694759291068863154376668681190357118387644923876022091087432922661584393371565633605436006650338521143116976464377017821556450714657154532910595830326400737415946721638731836278540804445168829371560068036189555774880105986119767306229135100447920681866170465014860951784992952920066903487805579350808776793606314004036364262588616355199095788751463350393929130475339061968004519404176763360725721275394077601938946684555622687172442381382982285534358304700824842013634144766488457034955760249174986780636662790147181789881971223934153236184814921635746507273196042303348077296744966095776665221834636578569206358614165424612600784389964811446758899457389357679911644462957207829388172123552101363882283173544563130273615262818732723836043087993691384976610503713781869484386243967061463058202534852635095701679999776221971318793764732124718869658711214753077409142160058310356746664071544334445173667052146099925088596658480904524586418786874175455793266043750727022093809372973533764191309933531572988855578018947288506316493206247030121768841151253514540451639282095925585679362944331075571017087902428614827039860945598280080965324306672343383377156531495399904433787577660107082906524457293187872850169575628476625363871718153477476004926709445664164461629464694174613479330040388435482909773937029976005614232641638627157012519585771674155591388471772147626101331320381895975969822193699863464658666066218380912050571978377104503023920351908280623282649910225695871718463495818322724335986295013769156431356606949401695498391573506313985419790506070320079742069930482996443432937596255638741418929002359436826311904558909574036056830094231730288323043942789884771215006923476166985400185848990038162845768234849317016966063105391873189579745184965165274349418943839805457911694164875746773545834905651365409427147580359480942538334912385824059501122058412502214475395165998320796429999806070904872354044634452139522875417171279834243515523383320938697166226002787999960595413938617905573618401683251100641368523766776632600120742498212996637600127657757432574683814007471237094897973854149974636397290516870225358251558379610663146196541005075731853153197434705441395297596322916830410553356033599829916039851088964147131262727673655465340476418191548935949961028538197927728273647537404189360908648601847744591386429537474802437298583931887557447907111971811775395731794236438227965270760403928170824271597587583050402570904012891307787923027922471822134409923065150210334607485093524331940972771937436929924135859588429150841525653714882876458394343395061445675309870193400408761715106622364857273928280283099478254490472119265095476358608887565082843237971203622153278458182335878031802357896809352752016294857442721355773897840600621323373529091798215333212961010703466559033358070099775913383610759328350959316831377640893524462417493489542325161076801857533577458730935616774762908580057897148760510430068460896436270460796010738962083155009424270208979008400657626138362806724131337038351971299988256025264476847922488123709461447634507775660428624246427552477523697400570318171073710255075208905114705893955470530748318991883396204101916305167276248348073577316942890266552331386696011927962611206254005107908598534726008112777951078594677627866360533952383110767702685443825534586292305427714546629680095848644960270499582742245666937792308387298924429127939453164283310840736867855659444580825309417882849151787534092063779560677744682543206636075377053531248027393739909008380726175922401296200483109915470040274306476414371621739256708369565447622532229397330706360882491966266391964536492020088075760225222541823427279230472500754609645918139328399176318860168963273292083991502645173116103435494209375120172015389281185584658376597246162431840838183167180911714782019081755844323876442504134743973220863733748676238626532262982260082882710367247513421986157629870067890556588057023319772275885715971590442870546107900726445648699312173120162434672475788781832550664158134300822867806392883657682326443755041640569739053608299380215542389368800611137272778876112503979134152696443651182128816391588020251585587633895666858667316240805608808098938562315464802792370460040712457377670490496849079003250258343232938575238877549762801893319857436498500467717742259647795313816756056685196164699817927200237090135378138472423032603275442659261935997101836925623874060331866608627320787068327163188567686194764331280186682096604081991171477993615051960224708619972270520109581703626603092134247256577041409966124905891065407763334998587904912039778393017714954946730812639689188380441451563630912752006400084516326033430062326679310114425085427062819811619842889725345787397613671385261230189168474906786566758394156462993283942386464815281818201733056134698960516162143940071232540905031910274939189618358073552630349383697040154474026107369979451179159299384012402299665288660088005154830702522665552628425376027954550439655230324727150959483878996152738135712313377350220545305894453795475856606877623722621774031964086028932402553747905929546851259588882828454947319617399396455456220754280680199108379073981852003814530030980274108786777624266029700407825207764490227222074806049070702741741801156053598696724361422201179329914775103499363033208055244974629068739877275763885536591171032067951255800968473512779906724095113228403056815151213528106724383834631772668860562016453245285376467887167513574477161239515195672235139348394744773766533561752391823426017136738368553761733810246132812173209481692437446403514258508308021020191752137926295035194851163248736763082336410138511797198344608568181558120230611983279529724944978362438932505696212325802335754127357771973413897184048459397680044455997726083378632828919641736560646052981327713921447536621249757531637208108624948434530777867450878415352829558402071940784831285570197378659227072396151054087838522186399697537585063735760244124199547491960898470527498687968278126793842481205037892019949996772694176456502257039256708676618177593875503558557581004477340890643867376680476638746634074544949803777750035884023843747193911998440611019780877099756465301681163510228893885774779798677834315168041755776641927953559479114865012207200183723456190706181044550603028665907515328189944424364661933605387469782592150783217325443843704496675631002042479345135033853133250898183640464000861701183036962963647298745419770319485983079036526179026439339916201785422160388999469687742254832877477159756218998281204592629334796164729106597028475867062246194222355509455704138073361686958568688367202771269547660881500116529017688264488104482302018774761513683287431605801006926972813610834271945887817003342830489080428726470547810085357546248275529988586709150506906705410633196477175632344192865288447020902813335215295681561162893611118073285898697043638905136612083552116604294407545858042749723838590003563376337299277974905903876306938254400791517434730400518650892410399948606727320934753326846743809391304278398537305593436838548332849655828991210684075994220863333855283612720807331833789898511156549537441499010565937143105541045673615375769034652425075413560266009250437017868500848446411622470741695063341107743438988016666523157394209451556689229057698861374557193628417600217055705483555925637780023069019373707303119925467144996614242201919139342109249737483236213151221265478739907301472180919007152376745558836516374368716863046437031576062233178264862540413323103584422332383808006472152960752687858265648958610605253667529376668048920095973458479707564187987130502380008064791804778600274716461782227306863382500368065097096414930684470636381371490673150927755014655192930615720405741902880878671753172667573208277050368057027344881173916216520511640081752740950928200230528458843175755091923058514369305573561530952186579191995945157893124811764267910079205627491939760489630354358834392593420215127470003629276033107777593172340416403383298330442636328202436653578840276515112709867051555264051190632184208593100527042623850601549960649408338215088444390658730851635457843846900857497001380373250777816630457519009330097082697106698234777858552337471117172044202529890881372101283770362320146789513220268773015783874747053299741053214166886007936173099060963862766054202538510585042011925603436497524350040768041218164967088750213596408357124745713584745329794955988204020461654406311322957182769495472229284556310897604437509205958688536021835313027711333196604188468168960554191287542578618617610522008241230156208011473818058989040382809598889624848782542011086384447463002392115827402291193324430558427071825864415702082751871336943307030247018409976023909447791270588536149175374362898265105375556675243113332249576326743524869954679567064884147181275568885525191286717136640951985732466087840614438911376862448618807101096438167940311879088815759154717120314933311006365390756210574072010477004896470109967649420499460067059664406600422012808022855198502950119284521748522155472286265523292961813376928808352480453952724402264909233173803585968173091755762750695447994277207050987206236557188088821150277427203903105715770345966729349295969220603105595595658332253418748502340567993648518050036350562511355166679820659756653754992462815715876371122369496973542336741249111518251295611095322422496792116667347115766912130719017922352147335707372493825370046110341338767712686144602056532582758365725235912796491048055918743558090814506844706797411968252667706637313358048676761494816596581564608335747795819472472197834716296697208621640319317615246488788348482914970281342169028755090266759406668337262190696625451837318625512875324654524442949074573657117330273723624904318451468360339453641968543308038870395383961708550586855537716328177623231366544383476212608946685406843536149846414837993847209874449070139954133296501216374869152932370768994796793106792960640540078555072473619473464231237194276140857814954624408403167503419773355437921940153159559308915269639112270194042516214382870331316091422805442455583930403871946909266068132811916967335453668591471237612856964107075015086126056018584301099493610505101678304919218266713950037045097857255521428967264349270548902388626183914357589529186882829815000545877188232728959436895464906499897902625798256046818555842419223519691763768501830470693503332875906337154413441345864712108544927756409770891842350920064544382984840676436990579219197765352158809872126280824592378949719005452580976134382527390428875126418012374888830400895344811427981398650150601501544457896922521663006261981108826190341509109809488452627119454332088834439647960978310493076983198355919039706350316827528418725444079661645121344341396987496306780348259925835460193400740348846054477605160430918478331793523509314382730450631138161405740453058546342436044119611943651421631330953502308500508380382720297311471653022539890366372628372548976508657569192917560109475062343886636241725375958402268273590070237885254493614666952492521285602824956604032117138805256198641111684590288682568183343214314497691732742940450470406125404360683776607075041860782767302580834085408304382881080116466391193064556548237718285673118980955243202493870491641343013655725395396875047573679799719871094143542035769511186049619766105891980857380284379726526820799149682402713928021896397297590945298699260101708580702684590622219187325822168676784566095487853872909940342209901412678465505689770359821683350805733903017267375632566012469038730371465001570418102385947726183467348150706525979778075084477961088274092953312321258616039462749301392805970467003351592076803534641607367403187755770702191697795962012043278642237940748763961503832873137922308341972148842465406498736315569028061397387403642282283370072484910097359265374241566514819601300246804040253350842982114160569926893756952136785396870831648740398346452608790987419822105507175649724645796499876844711383937351448927821881812127433524256493961852697807015213277183040293811692566337180715552328038894661919237985593753104597928123040041582594624409814680037808177463189809993113811612041949670549400957075773837977145515043721186905338165319263454065330367422962929612612822871936836852252555283981913989770081916209009696981668032420537947664817272328537179395597162644214805704259569701859598107765742760191697799109946744017026319575818966702546851706703155227583575643046792772169034586393586712874030305125104962274207457799608585187870488206269559294366791767645312956486652595084554836188723375347669466386982040206090294731209667749615251668198252311457669888036944837624676243997441515628473193206164355130170123407077765207749377815077500040348395782271121697964604796741703424328919126816765010446888214014226552144027467796387237984423877466205769191971971476888741907444911700161392245728107481359474749790278497828525937763721423977759971267967394312000489307480683736291714797671134482841511857869063734371590500270621256514694259902436796990937258987874170535547555055548055378376588328542952339092211564530690851311961287353289300985300206242588255059848341517397221117069321957517362065442376391084344205043725615975875389896105016032299112132097998039389937086971588464159684967878937976123780791229606231278300377070088687259858426549970806268921422245083105022652331114895388570797108781315259486572843346171271923023132300271376991751979510615772151037834350579275416877195841951902352597067348634180962032459987230543488666436654276117718098525591271073088717215081150759432907946189656595435991887318499896481536435197674075047875353721771916985817105795850707325901777667488206340753951194178811810539314359542880444261660849893619584946330696288502151093827258600784509915891831766970418209473563320919652251680358080415960038748191489028391873647534466569781846293166852761166448657317934588883062138913366165457915047087624793085104538983116804759908121378691569009316498787171311583499399920200675641400865472935366324696307370468779585115749508626525764237984285904162415419877876569669874847657293173766851401757397375308744347203017575652398257716476449241318682117638309267751026559156289925258018445963246910013299251366536804195520293744083158098393316473690898804445989433495430604957328202414402731521829747342361222798351846598942467490049799631293504396946181948942776299937730359214897815740675146762071131207651798529872957200083231230937430191391496718776524846612607038652741093323111154625006610590184757748402793929756337358567306307364867320822587152067556850374441523160120366290869029913956618516597168132962308795056856239292863336639845214398389850822243701637019184018897331503547689632394713602777934339646427383164979934235405524585329939782833547034900011966546731853632440642230694052404250319514493830654966052093535715381381651317628100861330877633003945199174912868206271747999121015394083440754655865462342254207343793227357833574059730892125826037444126919174313209802164709818105650839354457497374101303478758090844116982796028469596332488479283489046052826968636891530327884282740632869069799399483125185895343602816574498578378714525416970196286944250035047905714910323672170311121343573089061507847929740388040967924485856469601142200137586182035565049717014847509085540749461393966979446441486734963656869492950729804310166128118239192754047463334039088655348689503641423302042384831229824173839402587469009989869201947302006520360154306807107775137461180734906622540950724465619440677910442303779756937386579305845302403312324018840162269155774274501207478844227180407476998149026646677193316184582346163048517943336889800488316563114606015131212050671757528992882491590324257883308534258195091908578121372095740624605858589643805636357059771186481973831377981961871646608113404872531060485522864604840836660753393595341749349839389782889067689331041155130697895740761647674849847739542186798046015233518721516051587227070862622236711284210566077492050958706051390103438906611832511533867496541347045546362991877142192443546471893919694430833459679720671416335200481945884269513667081248802314790189930983374460464902817194797096769796057210484917042107267143456064553081836667507428115760065033272070951061286986004520496868752496040641447409003283065456063390310036967534416356539507356866662649117690051901544126892194798956319877706549176559924229694821491390081043173061532167007215978729335636784500484797618721934873447894281779308772794370224729191929757726452316322087174010734647454752514027179521622376313898843850939388554825111358134472769130985257824028756332054434827517175294354169515976110348906858699964550907022606034737673682156880838308345034156055227013794823179242480858632760851620753051463258318080990053097981297778519119613756039853251880714127764715040989104518096056885107918358780918475657741618305106165531633995113859490600719350196046212876199496875601511381086153262536849100435118447045379334390927688268439008848015371469384007227179846662197030233290263053842762842455036425429359587518015300870949279859036373598655455018410626483884519721725706179146781260120046495408249042052470704351963427154583512880407918207871956682506692391119843392441716357678346163526164536876110676075193046525049908932150187967459785581590021788731299202615244001143595609949248144270753572393862339971312754892624003253479434319439724909541561885759739959704656582065869827681245475812166413103609399775993101282715278953506333142637811942823448919989956356078536525879620665167350015221965528028573536351430691044865118380731505335962098574202962679518247761265851311395733515251373774093236595581268524923808982686059843821602386001389085971916156618162949589368596013023613011819413727271445941139914861293614636497015664309415151049600186397825634872782304454526588212269256876719192612183000513543832111913464134096929511192100671098753630244008312786265613411037100182270504154335125698921150933294192489919087482850062380496713557001807155373483823552480992909900876062472136320100574218528702029694190998034296090890855673098771622715394222198523693568314948524309285767625994542942934560191963684405609341635291538440221120309015966666075799439102432282741418606043890611973079522657404248981642707203475512101171678338427410160065605428578130939886843689694991800668705268214749699770218071159961161732487923499968572258352229566417333212184106000240059176688985435316917835668126297578274155776453428635241914197153822720305310184872138919799762414239350047842944009982196874531851064495552424184801061419377707563650274041524339076066938526179140017364556017771334053785379461465671018617437107550795591818512232495691068862613106310807133220471140865946114003087864859028078598811614821208638913181187002497702511365736678442482407242426116406971416643543268263424355405227821813214425747026692956487239064282755711648542323423560075415752978318323382857045659942706934788109766281074891660026013043175353436029483082026618825392846926459746021243199966231557496468194322985224996365120338425928082772037229242607138271643969329123672310565242706175005678964208439465088059609383320084498656778288049540707529472880724652768580199678420920522938036932185358910247791636715915026296527746612758412249248923289939097878400940209663068887244365130635083198555468217547500822223323447808510081498360301926416589625924156559904590020007875858475021921186512391422008579375069727138114386578357494159490794626225694645304950924162396503588167931624673918759359538465921446195244223660157897638939897170465608192935978133611314756508354240790218368987339574048485569295786287140703823557447927690045399191669808155393649034172917058056784227601775094192241724382218991579004079171262457725199489113600839169449909486888300993025486144461262616971995593790117885156381076600996750360991638766541646731563478260118689082533925029092971746989955770541131140142639251906817446850316711305119345247252923500353552937460902322343260851834355750278707894582074032273919257110845445792303008076493205764885704216993393487533260417137701417004645450404946470843283021142298938109050238372123710273219768579630630676164138552236981383138242781471264093095759334770348306056854238852672884344191968901000952787536660149274185165854289182623002253338458827606408102445288241345172621683736722082731506790721192469412436041249546898165274517514392426560657457649773508887053978911756274383596660188263557903639710208020106714308973299333250656820757393988417359353824042201695041471477560820384648247322803454034734495270661563229445990286676440215059498519520340519243639090708267959971617828039695079856537362320869912437423963528774656641944558736338281240045142404066729710439267660264188294925857474470787566977062604456662244075356144993468617142465599514596696069971428210832094567603218565586703216639687149475641215581592932643367914714276947782758123095195214806190766594696907608298384978706716477585785341768656171541933803357255478335086256727750990934558633069967527762104012108456069395523537926816039834708495823139161646650815207856207269691408149713633787059054953397442432472112688277744846214462743638848636822571100653800012395354177040967119584565060593429335276914213600057187554307751998058710000276401001973000710512785512742513544902487382290774583390131897500259394856935118534459199380031162558826116618520089859101121412775580388043631283971872443877058604067369528867257818580964434790158624763763575445609008851389370689727344682230533871118627528570097862210659987421880897150307689993810073973818067555559285272546691273292194818169952600901708573062784037514304149043117205456728008623523755069881506318638582300287463379941666191233547823354818135112359914763198360452034916959623605084669523112187769036540424524350389559228560041561958444890772643973535590573126831627417853711050108155644791185262321324735992168898734842277921244788486788219871210483189522360029717996765329510073361958076728676342219137886438813325550731124352741889482845283814063781139735535922910015113411183741326676373195609120568169651718251510297200203133821297210148396594431835444164544307770751843804625129411623609076588989848528392552855554810714727918187964252488669828980268506261060608744188839997340058309607740289793531829838295115974858298209178258682759896626509318991576915863161051744707979782430199739763859969019798384174855525843205057134168530697928034773886008427378069646883592871869617807884042065451959572851541721721659737750423757367349100443415718429716764287042067755558317235654614912066010228153670550899457073716358641121285876021962515496665780428050205237202282678843627601846104298072310409595830766425060011076801105922811177085967166633050530656984390013503221758697466720415806809842812089940539953867524097387980328580505858033829867556345671282178253153990730914882647278373912169745225340498363470055572369020912479380213347813620701224581268341273794095177210857857606933370916335093041088818186035449629197518243467642353938156201656601242910868356366852342870657496387347143536151414221388502838603584845287781215459103436771176121062077725431728555227346693188423357579893976858389850912850043103112431910477616049146612050946586349667872859740495509323248979358293606223805965058234197337783878990177695918789346820753578275895412086512249531995453165985291284572739077974830712028031423962833148359911324921740040193691626316501401579072781896526825876190800828177830287801800055518946571973221086327321566488436037043318139301331620041880760731179873403257117776971522685342229206128657852749509449168070594543585556131008907571630541826098651715355991346697287024021017206380879514740988333544862235291392341204552599093243775342743152949566855118881202165739903128105763792837218443725945861557773785084734255280634741164685463237450389544049548831344265956944656371700105387272827070801560460548002189110723320777613690077783368002643684156968045070063504086771561043031379298002724155610770767752530557485182206893245578955755782815491506874920373073844334692271222052444266755998915302058847626192068567530745905210349896048338450453553047896520899382430083273114999079825566021069364807363738212739577693146429359530599335693778948043730449287981410235838997289772464385252310935623938893746274186791247278645350382424749598237314478565954504129403855935104219531802877355318283733318633176869176613212588052102349643240047773329727129079495951996013615340960193136305114633623123730589039784059943150761124072806539256325042685088854269310196655215598429153669578745102513860180523161755588721398986375637508214994658562675879983004951592014139862805010416360026496111721463764141417442673191905926117221455480254172209301778838759221938020722100572257984860584558603240470850088942803591791008580198253943853994513695065039822861762078820334088789787335473744054549741474033562679439239987814246218263247820157990526975477229051070207129435590755875394826046082689791004388299322174528596509531912509955207265570780306743430674859009088945588734668280539743296341993666963110890130196742143954586259172562454558223521303323020910815873908072798582570743463793570719223577522787152758034437757723207782271993844599486200922899069790997033445974659103294925822252503253619313413488550191116757998382395270476141812330289360328741314112680146405511345462811581194836916701992326007451106432554012153410721065834507028331111903697388285558861508997238080847237949085195177590534853016427068756553307224588029717635639940950288730674229908446236652956727348430851457136631029485004619458773720022549686681957745348671480756200181627381856169273337628284650791773481914066364621882113308257081621130435912443518643188713633559587005159007482481538230896743888138578265204845952142659213116370067288264966034042590943648223822611476907951127509349384600197021303908482534674203767295109412030673501034891215177025571332442936784636845109364111232935344818528145458317049597444846367080821071992229405658803530379074755506953518156059203167499412464380303430214281853467968986303392120166618706577610198757245476823345196489145219965216845074478710237685530305461702554327372828526941057151848099184413155037010392219687022261313763458955313108900529858195318651680044953200321227697507355167954909466666776234735619451586950364903540886548196937014384876032850682769775342570774077966972995808193279472786807477843570643810322804532258659185070486704492297610753536593408455869909008091808482295842458354931100531149650405211321426405385422781291802955971685911920490675021286985463192816309676549920429826811539334937294612514155296576678092621390311862303567018668253859720952507161776365755910284242105266333413606601466681281372864512373455001785041266558298240124202225373437590922994848098750114755776687280909782364206807168225068560241927652239757431668312708266517780787046376300834418663127822524455140539033375349447116879423991486900285782813370496950708798449477721355634375021209357187314102828778598638935900557433418768459957762068479915583209789873674902806686823177356052972402522256014968473323737544223889704491538250448318598168404971734266169815447965368241169572957118047464480254635728308650751292455736515723804113188636388303913471705810369272604358278463069527006351218030930355646425696305331460763296668438235806674141596697299936872896530456529496782373052232908024378550958722618378809278756711895028365118874411080437646524141185278576160182734248240455701694075715731717974175938039584441899459699300283452966142833698031484366117767383838163946923576860038210167949231202927080297489693814914523331170971280333010871335262517841276502446295052446981974865056776453054508397234709681970279901946520351724051135951059699455685576193456414665797135197124214025459181262311267320126404279353980318254660322819817499834094656858207286307205503136893326052350901239233577187934117651022245575044931242955649477534016110002683493611079578431546722954534817783029813687340359631601896995026356658330357812522112597187200135694562683747737477512371962062277926074061552095089038075613996037801043913558157738205417168039973258709947382267472121696488443743138036295474543249806964243747473671596830359423785751286276715837060919023208793834975779400793392168509723006817217963957269481551950786035551507990415924365983275886180744796216273738373806684260467791396186479217571844621512039884225373967246957807295147992891901610686386979207153603054890388066267196708100516624293431989118637523117996920452901638974100660477212914543819933808758488369943077026331691423329730812770402345231073202045434314700196366842842482433147731238832631480583590667933448402741078615462731339016656664125937644964208350789079912576634986196342683161942855216338271484238188637476618146510361492997131556986303103734389641650645546460353690988648301214038457343861750848627482861015493212444499067193231275054539756054592667100054271462026220972294448941274517059161506484280175742019151946435806862698957747750255070514118174462772285096521950199181440802989879582780209703066352666471464042800372266693700248232196439936058720703193314063058965433079002000650620638000287650795207528740738244598041652876372747130181214090090864603652428749546490026969389019662369559202326621588866609660344503270103672524577354631177226346653720816076940111705111611718854064755885918449265398081481681303008888568446401774926512061114392746333737089198032566086867520891191697647653046601109870519282826926646914109624970127133529280130688467718946407962732731145590492692746052796454488173027902385261038591513476219268623494382370079150883099876926133504503546825569623111315405288398412391436744066347804972783612417498792722939508579756186697716264444607670138487536518591402682620036499024978064444842614775872644468933211729347492843300715102940964312711666872457931485521265739972449617637654745807445928902289443827175956587898433562112414304031831358352096341517085417447298150003273807736058446917426255300577307952471370575274377491435140096616221914799741616476524993712715777140783542361541284852968144934581689218152250297321532761423385219918988655050523051514294338524562540784775450047659150835293135128847853596904403276122683419580269124882257664992372736745861486452095611809618845179617680844642217080823589217998496205786034001446964587435088126504385125872257067749782933586720082228624947198261452353917427717415593363729507976513117213796671222284321437178951426868087943214318549730930165133431811756803488377539626933287273622387218318490251221102406475375732865981962080149827962722050081580244858638722167830206732933832593848806473644632796940039290417305397994134687681429060847935714806448273494176618975180225440534164969943258864314467173070948308076400898960839229855873789009565843594073800530603164967791922053643990932867461033512033288116198633750211068097294777503677349132295543095122075700109000666682170778582289014383965911632286868113406577619888956889778647548934201475226479110927372893470953031487437628502825100398477299507746420790771415310212760618907648608040656324887986325569100535405200482535829382631480029519404994953321828556052340519717154603239371216572523585548587061474775189490876412244299145888016606492775516036902857702470351183741356009041182905454302018231693161407132419970474524535955267241408210545881969038753179245483704670100711184220321860287665483353262300402975523765971744244116223916327924401558411608195658755771930831502943882935780145563881623843023645399112357055596137283416829876053745123645213515423550386138641175859318551267725507690103411507362569509010293587968915639459677423522677750577405309587992877636156916718173749475949971316492841991426102593498620075365045294961138643413258721832439622159097204860092783776590193427600266994627240166084276174584658389684676269451883863907773109419462012527148092625746758013181391724895887674136242216127652994253115946043653988807456597747339852122551576903602601079032339029552409955367713229363969875178607169234609461418420291207052671605516336889245917997518106389804251602322277991836304895847326508258914289832582082824730881945545581611505383342648331982688710206104800688058627760689421786003609729856972788403808317416722560682709128562633157314738059145316715992337114096066128233986412243077103764802926468973689931021883464132259706740327842269696785545081020402399439409165471861582340163293682702213932039685265361230875481844174358781622395431517113896789542725475577358089893518496650986285787775246937437449666997460827310556369791130962280331059371613157078162497535614929808061042083201476272152032662771243764063694568668597150808585373753489299453664569536353023589513054331841637089423096933523731074688846789424089144303542295032751075289734515184102132072320273942660090847479447044586960773918068749140219375839828770472808048298022971206232134732708025444431046221039037817286753493443424138804122527592848481416216061878353129610016923893772086817121666047702515676854096232594838937118646609823571258356220673934433320858860070016497817110673791424817272047598520768151202745402978824256815314168518282392129993612330207751792323703564077262140402446744681975774651786942563195727427481159728206562414622134399820430348699223554811548645393312737965381453224030366955897356279681598442567823162654447786446409398139706647984725321667411674603588858210491654626655241992201714553152320098631777230683299246735346577779469771925981193527453951461378710481720270322809922726358520131697146515177526182094050526216823532996903969704108901650928422060495514242327434682970334986591283151832648412085392320206723118812861772037416723405449674846762384303676179716096343921601052501686404669616148498771275440308226877851079952889488331738572201745808002957906008072285468167464308049775244334660207900827845978535088564478122193180112654686215092535934313357177839538195671176978786525117112826523216159194986675620417749594970938029057697210886406255272506440291679327079468506709694551032949193735921043783743444203984983509234984285278269894244418469746103847915375472315113795333129317915411919368442283976390997969217144156275316474580165975337798871348376989337100305538126349082713117413733007469918052403878708398477401938271790929871651020628665954164493904327563021690388958076567345632966131006675316987113034627549669643467693567839157977452778654379285645184060513191036229096152784197351308325240996460779670514347478460499383384143482232682247195803873364703260883215085043184839638988977531769590675889186764925616036138844024455541211937512176130039705492680090435571268194991589633253670717390760049316126126945654820040578259091232875507776626643660818060910196279879970966635611000750653862780652723501542239207153597769665104504990101272775292235955518187329557562535034224285059327307320286270688481365164252876796494376986404332830237124825434645538863940096332854571710833362609406590012509117042194410717550131777102647166729107243428268035469017516605714894862073426529968421480730974634087469800599134252675736379261262700807352321334521075511144734601093619703921264451368796388531506975874908196895294208678407632963448403098994247452622600204823759090764445896243426429688128390597324929794325005447279455423278819278703478618279995947366563504024283548997557241325991493202789055850746112066601993235634449123890080160767740150504398259695274006287409411316830357449065900013647827553862914822283997581859870867143523738902891955639174683987415227410295327859060309568240768331183616928020158676696137033406765807088005288020916160259118460740661769693058144964888693131246316128928599031480284008579803449781702817226062910404913414827212555882507978387022370557062475559973724311839576801706964217946450200049007537166367185008254954190554073153807199755693049286042254035928150857653570501672507684902089844675463413903617463661647871367347082534459141245531959145030194718404745487698494952218661114027680194511197719354327768637963767325680823639455329850377021442396851751246203568859479902701793827002792313244830339342680065179679433861031793015896474515046345893857755903829233607441380617174815337868568510021892582987515901702452707999559683218572791106507389115179987428009609008434674146450976268624560156943510070732404512266703671178489177369396936145933189795490118315618030635864348998200911209104798137193324014468029098343175482450432561235426712280577933532916621808205364291511032514060873761879889143713073608837770781072841336426492390132408685315364351840089821227937783137941988469703682421054483307336551189034249322926594986084205998160720506670173147799937510703385934510266522885168270225469428455281238992768409755668329983649954611905859413805731313205238396127723757626425444462941828900020027130082836895654225389440658610109521391878340760309434121165153122471129055731238241113478495432956662691894163569964771212231791992448439557801844903141515552488848532317618821247793771367025857874824491649095153252286734013560850831483780338859941081603971242231331913643256755350177230822324969587495160209687466630106485292040097915767833126851077764590857483578404827882378769110657942533659236399229220853704659187900815339149137747644787659164364914853642907498399156080601567111445035532507810608533761641651044103410950927556659725741263653754465533160332593406209103973661890057691661593741503127944431305639816480810595315423575809897817114478426284943542811366203936023218186843035103721058020331165286597185812375622558159338476442390597759510395327464110506359949246364091065427260218145822247776649140000117491519140478732296398461403152145793841106778787237430996588445177277719064928471416816725369608854450242705843056788524957603569476994707336069676827524700777876311875506595292376822866422072826118510335427602242793983526485433898494161555549853470806133941787956998267250946255484494100465329439512647815247856931299004796892390891334495904619367487010323438681918020405370747198135038581332701232145407472368081602240826993177282405508453722186191237303448710467625217297801175899161573269558064622519889735306544667149528580245632702419915934540582130628545115226972714059610874498324857617905705761988317313208841020377584942361561311985412302003511441507344478630677968086056769940531455511383057894114369518759726201177919812503882860798045934557029479890558351613084411533318882464486890259992302004263828620142787738286217421648946749104737768550492018470629709581363895749296303148165870587592121532715340430569200494889276069273018110380974156572356490154391786372313200195597322128595109979086132423323878495270688103157482155580947221152716878309100609666003133506094219384357160529398439580593129268703790495905700104286123008639735303483903645256916932434238246867603421244058238004932876534841371942745942066581894098793511189831473690160803881621329743412160343920497297178176352176984184428498657177446446555259784141634923717515101349757724568028707853702821562027636264720684528711195843886491753694312765782976612604276060517642907390665529391717781951319680534668114709446702569744097521172864833993909580721142447103750619352524767552344294817216539230096133632307028807498131660861304199221817880037244691901535756784619259203971416937013114707230470179588950297606548968156133162773762738880435312927522026215645797274072637349920174880055348113745304712649630789216820351519214351734578837838002034666444983790419302517490625173784104178966196727529648474125693204960024184786685262109100449088692918244032244741575962728598278302502615563256564794687007284115448000037915918657151777582846850106229387402844382128606098158671206128272144944399340979570530416074170254703499299795636696236675938540803662141947432827852403411490557255647513257128525278165868217132018676485043039702184259643729236063888042368468313875553956057767099914917115490999877361191983503829894345648212664387788716689672502839899360585626149095766218369981647432139364396044848144575070977367602878689028164448979795744934537022157657059852013896753535244475807430853897036081933960916963316132889239402147954759498316655363137135309487206307530114594887366307101633331892347815223958321494581904750418097164827322596124577486658759336632752969245601803155638181138855974428942841154965508851309290471328077692766264966991496384361077872866992265420778081096758813955881266616857340580733848824180449550025198478957565886522776190887880509843291025217018286085251007434743437786886437868295302894422251714920400932670929275161456520080890488078252734996510659992511568219198765632767652468394018416735232272766459672695253449325061969556952801006847633157753573209590763701888638631858965111797644310845955309822684826696891891298967731963027533731005164330204074700497708536735947503351746819486035657654640593099023160979972856575221466003294535742677899737569224244728008522359120828831963438303210882582921568630799769569085203273702800667727639478278584412246182973433091447580897494015197360553678150676536241835179763916749190149003452738342528827791313028235979072776962942569406008398217570200117123541121406312597835799127882947116871978506153964913762541177160585454776991537346836179374670708356846832118532411991120291246484481720505313398353410407834658511925789035599462595281725703485417581507617674843766087145331126987735070355147502399357311207882481312865396873696798999427642263683975024859614999105658897748413839717491962250467042383397259381098381967497331780548046106194832750069772129801931826770445149715681393639040184693218104375489971242597267251872972388672160172949233880721644004433528264701867433316022268962674600434524620366477823213997579968721647532052704120192046148716063722798557185252333203749107636492586698545733229424146590550092315164176089574268248283045407350607136956845887709573437459688692340453971088596705697321489502741878046309159112466053628929842159031647208690173845562701242291681735906128190791258640001236983182027184963599371512452247263522443934832523722326584951611711443295083320954333719585346342246864925898745360122502412341049880529528079762245246726383216678522897724678759301893204050703219446851288362976029603587445233773419484131931213867574417339588628574521126956493636350272292906051639575108174841195714087627646930272867909930662190578911493517138118008748563363308258662236077600613413915507103347226964161345815768212610949847974753687555512564241779688399270160792563587613426455541712371529713609826145137328940974992745580435867032135243960349048257888038946550257008071407054804092504421871483545164245778008588022131083785395372845010801615032043114371993351767485769299519040356751459476606900299525156123642131134283890522447790203966702723848345433669950699077774526783786174809657756534788079648626711581603680294809753911040238541693243679036003585921354485324224457987845188229892361799665429496881834280768686072562949208326262222842004425771123012485978780910863889692790564587408463139920802973522210933584944248343187653167898913231585816829280071907614103445650236018628453959636735928064249566547332213885084149006228791016695350478181882340469725466667235802957508789977707123956614175309553361853087535732296125053098776508476764781052214588067574623842877946344366005062810668444394562852227304681573286610348363997300536693688525783919245316287920194822151316952722652658305762983512788873298374992731781806434606359997916750749632996051765650820309884932520842104007027994904180403867999159195595388177320239768551048397936343829544379405191772085943811254172723148175917087854419398457247484901032038625967815099860327637907925008616225822137171088425848605251180710151142114148905094675647175382201307115615400833095361340680629591107898176309145717071074397034322068704673858112436225420204401148451467962178462963728516959641725617468987884399230087897984494304364118454477033447374169038535402242483029655346649520089017944194998277217714344851642217327058061008081903486299916705529322104739296613270961215121200387781288009964499941602486454615409907373078356115557072763799771178449183938692490378429772467465118469208314189687942531402694085500044032433087546969412028792453838081745323987352518133724745047796672424479628360599883964606597751874557636414235823611958011959632839700990910563722928520229788664435395932819467322122367463625624790754055529024377492648458152779429861223601426428700175215427356502199718668830251746015022474644195589663240326640302029344599199746678929671819857210146363065187492746811500319249765264743654364214524855647011186520073506809094168645939681022994723246456827938286685661152972420496779560679333789275401702450280330287835744598619304552259218022226674721793213709092420233671626486916596738981204203741458710325654297380371438362603679698466068274701296043756261552491394794724230263543227957741743224674718305757453206687451097196118873916864543188284577718473078451788870699472438711864322909488684460614546511819676148174349017629436088182528040399376143775084554141044510596380826477201869358110625279741135983870087067690607316428715874766573823795591602685812742345144055068836305184036240747980779381258141086938677972699932023912929364985386384374406602497596079747562016521414008211820517225207000247909683955703330220003106074823771409013005199094698461019208475130402482092385290610806235355804582884768063432232360394974473898065838795016350251669145233946815145705201020930113736905101135341104154534891491204322379764882023596826646945505241075133848776999872387965655020115578133932233729998890971388557877139547070296521717494953816313390852195535044494963277330189844491023563252352164076973457773796768515443845749684584669179462825238634420623863851932840972834594546461903191442153486323163758882528033504479352815740791365830496888265582767129766470929495667396815988057494727512636276035773189126832929338756333315549688494153041717698484623418988166541554688842795385729704139902640947757674359243875283510489127119314180151127606153289795188608826714194827366831625898864618411947046562484537148133828805900700327602390165384440748001780979612454439664772638375696672306195884932863134464313814430199511698610359805107184430026244861813840477186662856997216688030959866143964381059644854503874683812555764359906298454987627737467973858165881679133316153460476602611731107672711745170848151305827312467118024828338074072265062807933108003233084290659234049681466491953389562423628236954625116281329864818466602080673824136124857132278244982474706984852028324113566539295996886637649108166552452118759809006565024372836148845387779604743939570641878314114088826161279913871512389582502847342491509254658418835574360899261036864153878347648087387870128362130661246601375978612233793488885944086234644717264698120042065474066186827695780979724027833007776595361010740664955439069530842323914059446076891969751204124379101080985506251662549749895304414495444650776106026102815247828806806668272180857797918733276476427166368214747401034644601507478458479710690106706053380791226982090400112193651266057726807578973863156916712512745531842714030010752964523380396334600865876036348812250293406249220556639660748044928732631092983458095145651743721671366283177659018943904082112595350863841114259832161593573698034259121712184097395434136670364850650615187775936611386610471888571108457140633715045957964375860437299206081875998806189475869845999893752078118568266729429413354618009256555741896722714911334787432516854937676281758931564701850538254912859115259417861765558089803838540607067781420909334834026650979236790297865184262346094491909717928673541251983790376373764321611607198355485489192544126349885125109108697550383274965424493016981411733373228586578888908613164354402539097042191099771516684186049760575995179054026176225161970137650573397108259255273818349996272259744698965752103897524898947626641872602432411925906728600067717078015196170664633949023369318584750849361185689325373032499766824834749187236583591411650777411493985331345318830238281509545858607152247949060899829457181223230249806810632024221328162314130115862397980874428530261995875970311849328515585923970461756264151528550927038844807981038386250619823897227222193289962877351172661399446148043614500641378614098516650488536987076581532591015124185916900214741321988802473819180075388646506682006554832348748416399514252717896753083893537608388736199507592754999948731194880300338607694621710395686436208226399820281244186756024825321918910171607198697868787769223454292000533106050838410718265740627595766726093140510177059788144124993594882128113833148450149099488910320951938922681764975778801052230578405338561631480024870584089666043236986907343265000468034899407348998651282425540090380437833475560035585836715471800903076423339145419658992003587771062886791796357478679470383574984053107360731145025583979305113417865702079382163520274381211400575191844925379585747706879782519475146565354810760600388031814661634215481388975493482503935252061492508101158970441858063376906212613846723696202438246480425180497164033471643138466440033218351897700696814991645947980254480343943098037369368038232872374692201699120010390651253256354495268665180595010232200250218228507785423388982326740481928759596383418763179068336395717913263081916247614310607529906535618611879264515190874574227862947065829721329114615652448580659442596372393895245037273239787918301407157905532859528855964784894727903163545252416514494196805391153592215455265081098570722387111437495392379175317473418262753616540630635673267548042377454386456144833400633291112475739051043394380900268369439165787628874342054043010442507021349036661064486214020424918571831144063760374885093262851574435943718381435454226013308297893116421402255255216784921351147081649445798205692331990352114655069588476158742001107102727082570064971719396847083833496186253168666586478900602650365369438925174860192287431545072279277330514472163521183021359977511661234438508777831449259846578390855684032466124842200636628111686966250984365496822389185355692513375327683595799122582479525551974531765090071630269648836698943173496315780530574816471094666095190225694423125389517955924066349324797939705132781759618965044260796529287374581801292822591131629028586426030683112191186250041879019128193904970124834471228727342963885684073554352238919812656821527431357750456902833246178542489374766231581946076436521809745792164458633804737478045362963821866618281768890037472407280489615421061313914152315710161745927020376399822486796848535151417699903760497814149748703132821501894911845460396426597364330134469104445323935326547479582763478039918795273594693645877352585829274940115279409272869962028565549037999168202185565555863650427549140133433884214550593283675085038662581604140745763524718270410141440000124114318237732267752017902562453601668516535522680735459898039124371046626365846435774439550143252346065059468643381014783383991591640076951395325139005889302352774341528481001859263486136787565814373005130225619025140578780356441441649533241765202705764332086445354701948178572245865494428171744209760159975862194863247612352814344950584744207667981383567749549127684240710520480717662765124652400805066735438807598809334235168179419863365817489296548334264562645201705786711850845501921526091810789070956611683275901264323116978193596147183188170256211641032531082236407467282673990553025654116911604785028417856949876041540685189943140790223317809089460111572110064876053300793673510745448955646245687050722289688859672273500335581326615649432077920666150593154438421069129787322726520258005729514407259349436285795099930569772226035759016078999145465657887561386206624217598237799945998078891560807116728413264262506593972576173447121379842302469539512157036451547190160819159060491551166891953389234002544492421593766974747146811509487227662762920498156734189952999352817796070183720740843404795087765186468171813755186238092152710920337496522202453265451017636318208672178017750474835524312755692192174161147932174947466461656269386728234480811017731431904904766543958555988455311023888567119873898356480069246802927853890914707481414341421574399368949140490704530069658389930075426977049835314452743837057381612331089589179446111127711845877033354594706458801420597895814797939291800495885624998601705607810240258089001342760997031432151981472946851682428928228365996060055530508786056460871774254217768572972401627338241796031849088058878739245992615352293022871767363219136591858861963056520926993093004954726652796666936972943257212411250653623116682321988322293031191625752874419209007549492805314176378813691264314877088518521129435517246811393992425627508604012343728895045556793998743132794436669399639716152188869434019085964533818986523807730445821322883688811888910177839586639453258246573576868198600869461623363930920598642667522833495609234356065445775644508392794364914581528728237116864982122759059920765695233914467465678439603546120211704711912031591151369678458026636390539348167661379023767870858802959557164673770604109002330508796805047909680185320354172047274681979218751639930843634347005134197545273932771652611626915237135131632151720050580551729823929403040981434682819191494947669419963871661314143940511621300889699061399646953129869779497906064621861559280821333126633487716925122170376197447557761257891457787921019933640168842335929716200094682193400215156682613349694537310640318208237340923227566039117633418587551081417812686700509448509045727423820277835471705252092908393028230159051502379194882011014223958543584945609196129135334789018754984876373314836506763207473170253591742645649052110057470964376547923953001786947764864144562653659622014692064776026146400866734893171774533491633486288770772816707125722183929477533446376595448838495050102204508379359362438187540996831900938715828350078121685670574947278766071273376720836772273478607768835318215431777527606514907758071043734114942672225817191636661538175562279691594868011323192917459409221899588391818385927135700039066638220362138241105458482017026060206563846366748822066190600423961905872184717022233873070397552978674744536207082906896559042628997298595791874822547536044292007492781648027183528057443318565718988439056077348829315912453725109598113240873872237129808457793968395570277952741900388068382674676481132101416015423086168440044118405870807825633065756932787805049986921269501265430825877864271012251215046428820857774568820327477797747915252498895355389361909553247261805042092701776892387518462284775026054130247401416097625350955467783759301239311351879004950683674241495063763077192608615283813060696197701607555945134429281853127953384160738471824571977442590477352120568031945685277178120880294128058559869003071161248942065362571330746922357983651166259903451294659801026263891246991815791536386425633521886611398777465468709197502937855860418000061636647938019312106710788770144098710641542564861960411801081009704964066158145780305289142593927828898765835797802257661844017969200600742977768236428921745422605430902060376292438354926102555092301589664100912603958366952828787355210078139336387535340593986728638786850862216245966639889118768608157980045488864049603681099194695671396172093252144806720095213567738949586801041000721526930555183180373849201962636551940899365532311029632880883198141540946824480428228394040698589001839007250770158220886876881524315069280359371155532907114685288410016471615207076015478270835931915729129208737421900385403072680728281104785315591437292842037727241925886735592474675046819603117605872586760682411994959607557101016346439391232218528290798277222343965136466143135635943329740043865076925178522532547351115628253914592130309168022257499135099930454053430739049529714172956131016616530043425311537965351621857854009642506835291486353616861092451256631062572200918746436395466978517527558982898427338324455925268139469231380011894779948818885631118757486216507768642744316521265401890576115226717312979370346400558417915170981077992606378020104082416676611959714655811918186197412396006206520405663851420585602618508573256053791768825381517138994544872903224284225128578752074343662450775064641023988502926598934962516358515219314444626048604158068038553648119360903960644069735891500635892345536687013975111663482145306519635632448540351179353715355144780756553492784879630944602040078453981819228336650781133263799776895407866799691818678836470071489357047509532468033840016866853000734200638692365730374016900296358595995580145618179218975404656297934978458604611819666100389505750922494225967965311971984210553003226571688021898559257625032092907549662882617997679574776041020420255481892126360320488143779725538655609281341751718148243813541164314016396824287089100924159329466274655229809216136150373582439119657349234740658231680846446048392718639340788746569695078157446303748339797036500381534201635307900773000073141218235714589447259888150831149954586559093253537776440648559141999521594637713934476087320641256794073108659487133077524319112259988674075140238087991983581669645223572865184151696719999959605829957235900154634766247974511743945565436969242420350810141652891876226631559598856653577980403558825354732178139703642206315669401827105082846758732901050605049853752681844653725531157133327639707278661219333324873312947490546250645406086864572637532712709929369372003044360221086276796609577212950541183947356832422447556987032891945050741959491866890656698066714143957801323102387917577720746631818082621883550056420568412530378622191906144123617047168016013376913579096139391122751270547868078449047540712269856874888278284950828277042046880627886869831042079306636708877382011656727269641666113556613360300523327174875376962918572509277499527215091775173802105363927938800534252629709273341668880431922813880807852885449176018817101443191330732967161959093388041584832312023292062256546659471320935104702295323654897746897049185266596729100654894922716427253846075268366089044933550259370943916511670094248641427792259250935912375504660464053924571663863476760203410699161629661734727363854581932184000873532128276095809764760420103976550610612551219007055700387304755517578680542411581864319842780103363736793828806936120096552021317363716394782372861052069162047630517660254973541522603827390185888811398467909928125094937372523318948497095846041040456877840207611148491723062802112960307182085387062341243595579026031724308423053980161003098156424338169266869799357091154535724338007050082600278973508372140349709462776698463583523238881941197233629035399887486314276238481911629196722580162462871568444795815187889160564359660834041687124841988412175234813547678408323216244695383073348759564755765279618628619693854307500324811315510562760409907119150120407362259605189683765607209401029848375157107456488579120589469540516718963534936412583262241658266535573170032562455212438477014467081158948945567796244274729530993452881744062354077893789795562135490075079747643776016026425967528861557201503354348782085047195392497248365445075769725297387561544978389177808770420219748373182679559734880353409394777798753295821666548151898964003639783744202243604876954457017244169067395430169493425308161322428364361887689984697705439037060701232325528096388630129159930592809643237996729275172934651810937005947634704001511282555662639860255155984072260308193676649111998219063625921237499804630992910876788090823684159065402785014438496267725990067896469273079069349271564867152349357135800064007925395040993660818826201333220638245319787665181152310237365776218178165447020338493708267911884008570103137245078805215172770833296988282160992540356984730244460463927668485409326172637729160153631196021873623490689048383822525656775801183431442733257207781057664104350657249367927028627267848923867091950538715651625421074281183651691189809296949542150030489307594428223397881577978489897646864572282238617321787303947430376044225212068288832086583478313381482691270400813014610886853747695084726726062067793695473309713997486343740206108620241225808531998836388254463642145592506725796100196772274301697965092663716748808270512519650495422854213991085224828542559697930305365054677501546268285000778895539777861541273923776454300464160219340499033716579574099644695116322999297858338759561138352164378654381679588490334122798949268559667080377706975351578351875472721325284462265561971335749908999142305460336350312986860998889470088402255489623717933064045999568735468049864004771592997090733633737969628073356934499906619150193295745638035621184086432557591676105913545618640782887345201958861877950546375182569551172341245520981904103306474372153858255991764397535155401535875302921675558944420395177929981786358846017712377599135151474801496417758913874286286720219761795195261262956378597282383217062492398281457842800383474453384626699720851637595424037358995167932627339028012225443309728376769309618226556179364267772277099471281191540477090003824632308950795131256769784319412524566447022749185197943880949705063870274773459534403535784399463062917311998191486437422337283596513381174457927173602961995656965741369155678513278207232014124720690368135387948419694245515001367113154746643258556919796856078977878659716295686938266218896568638859112106279221096514056419763664342545269739789809192806172036874214485250573126667136680751976514400874706894786243405974572445765236377185453641661502278766432329771233770345083449717603354760178736207871665757919997471265307184145407316892510708368928594133037413769369280499697852471607846852969024733427243116363832618228411082395862446069493647569137329437472839807774422638835434055245129092103265047728431014485204934444597288852257239970142155184065642538658255825906997837506854295215539098007021450067770527404663212122867271495116051438103442164556037805176785618203785606736875195656718982030651255175761516268991313831797243835706939393170621150863767492036344354034626862994617832041390914749980587528198264755444359393927348306706092412712188484017366266163615878566319357266560194716232214802429502853325514634641088370283942026417317092504922116986154685909409230372959230608515972541772792461947413721021036019613730027692304619461058702325291610749766992870656138112994695269119857147160696266215456258872325389812168972946065651894077447814138784978539700422198324159459373867443187663807236372766021128171207156827594053673790448666959447467551143127634384790077097774546219483692595400124977469852196508128618930445668689881232840525273169748573521590231797568815768349441024199753890409333046414993350335885202195340905139479687503840347387668195707448769216011480126410883294962922286236682415620663500233092561988293368366148505827540954495150817540114879358919206833393935853441890343811520805969819656853989362580288133524524911143995934189957298079967078911603712977006385490060004366625224168086732114085235917432384836871495685715920884105949454017889144674013378202140719764374166148039763308361739765067110177718926373470210756128566306258880348044147659376255705029815008174249362047039145820411818694093153291098418556114057936529697798710253005566981942801760669888478293599324579511666229027063426707102471005943555416013409449041557050057741956211625859976434149899510175027535196126821225501138944078597005691945918925456444443895772422186285980810792683056331940465121231764972994542952872565114416979244367141854172417003752271300757457686049071681028619257932665839720421132680723488556835886830799675722022888641868186487234040019509354004035283008718000031177389581646181870532010742686709901857506935647085210359098484887466622276156971471725241257675424357964794494692888924313617199904899759490994259495329754054512653513590328451772416543346102144455021206206821146665749344181826103889734632349919360634224065663680739831597744488170159866264316142161106682256505617222550298554322439453192230238207636823299910199998277113927148061818464040821322155275988698918741637914635525981538141396144431973925500288174444763988741217067891308890608824696087941201940881685032580523473541887776677844122031953259602646292949467888932829215213199129397279473000612596120350474386456457867627849238692356435179852754983231100211910684450803472856904774487747894893842064968573820226825057062251799423015842888407517453070615412053855915320648611839715398091101911348785954160455561396144965145362768471833559882753347216794510451231646180558719567009120330039813155889689136964261336464883611473898891278689862958200661001413948146199959184504118161894460025882406225253200847420847968340201844356158933986686027045441233495727934806120429912481537966643444907646411051164266747007501459358097680833058894514585354592243006088300133882995336559631949357954585679581708672848992417967588760970123249239742308709601942989400498623990774502354528912236676363742717410444939771648718408834937602645139323871907507701181756497095771826734356167928905767181552458657481724520499051441954879496178787517473065478555166324188236244874046822852787718147704532162582449229010283233983004973792317933878263928444627274458698767639270972210788392893901379521109629278448884600919459541147621999156230363204015381115275186194945396494924428685071388405500874573956887612763489958365091136558130464225916613039054947208663844831223902589076397746067200273624298947402135427941675902671739250770878620420394587830348580828045248914108042984400946945140292857706506732186018110912210537821240805261702804452349563174755891012353391544656961382131552357014244004195632651082232230925733215244645810079183311862692142864163257475824832455169958079925008783626318040247126629320956237720398709898268975898466282862284668302998995458622499496331792577366522893103474292401771258540069747275437410619004087298480864464971709156550258643193986432596686368174314596532104091730552959699747154026085919768782350564626952416426148846772656595060125213076002209903627165357830891493711620610660700279739793792433375539877996199544975658006394886205098563593998073284192251489686357249448143469817845513448612070207003379579615370669571354261842041169210628559353611638836274721777011850123624914255231613947441261117702918004276053490678603964046895708410549926992908230497340966624825068271993618745066122285021429455325103705532396768898006667447343312286019011782913949599331972923650768898843514245992007559748289693885303034531137830960262447018527866994261837644274262209184406378986661088305108850706007812555282711571709680889379740503727094608106949895845780354186836325328057642409046872784889241023877836348160554954355310037550654122194749934053680795609394443492938029357608049755791594982193513394096981600956549946507610862072329419318746231770487040022837066135410909399019012616491811514521235725472539030587113156669887500308683950940861802202524704446693245787551748410304673146282562745742302931626280934850083910789020394956401986829070899558334872021051977619507432831609611255566251306290148393992661999094256382487324338688066366546901662313244468044342693924545826478237416957186815460203179775756817656157607627620655183940815180821646866134875496710606571935156641368451690320556445719826317046856725961093355615191435239006055600847328306882052123176412574616990868148707739858362451517407864762005965816567687428932186482509068669301201331606784421367577582178085813185712217521373236815131794608684599857499301108926471616344515767114517630314041124085386296081802904510878471834336484955871702888431492559770647791710856778398626061992656284683260617698106980078185479089827449392761772091248047783426195803703234407243855012262764120906244555107449461347236296129074590903771482395921997651054989094350453985394597818222234260817630969074929881829860755202350634527202776026733329088145262647317206756398620032861556844901045694444270825661979019231901760428638276424247412201341277062793801114192526201390011111601359231200249643494781553554695666447209425066328690115622919600123258827456970929750048661246412591095034198501543257098647948353352544525274924209004309129386959159264174610953728233184452636101908019795515222378421617036222355227557656088291298352396967244115281734100323122657166343146047875147163642321422056743841777511109789135957928635023200191020086944870494709375128047200332588847550988244644464826824580169336262853340654027217029563513524050685574465989220769990856267615861441737252224269529917069896298564092184932217917046358185048068213658268457803579940130247757975793304951703908331261263955067828064314003857754936411695096845940583134419029887949509884356431929382191208180928845056929159081705798213300837387835061420306909516318790594033244364013511656630944340920485500505414335989780977099741349645461462102602601534396890470596765225513989635498703987871431912109329558064322541163192249612862581661641878391409081020772350901387576673284555497935967805066956322680998334227376937158435953615159231144964907462962335623299803956637044859794667268901159312607762567544095698827959302812466430434540951794041111274311112460137798201688116263192528760542031119039624522751902188159692566420282934177544202031610404014641498125635750405333336109224102470054192097792932790987974080080216174521803952313741959252816545529922604699219590397422030376972476426910841719627701832077865221206945280631283660353290978026396031944996299336851952138033442876915181675327309201520683057043693333771381831515647333332309089205167034441332136942080855056995831937424017705843859468881003525352403695283970159121078896599481554757641491743737248345935843062270423771179288229821657363733307925432924084603364642003529390162139390572335824043227813606766056778689625975623566153669670992494184497109776752206355291268864198543636054564752648486807001269877947091250503219947523574850164296855901472838457687022572811224722404476281135860964057860913569783640848111733364605527283330015009668130454594821005518961418250840592581364793475435163068773280025062718917593677604969656912522440276061577153000953296012981282174641719508548902404467645140187544102873440584132166135583791527599699049244613158201737448070015075225922185814699978775537385288479348000857358067486775749190765574634339524207513304473412262895395957879924709754640050759150692725881444119020097491374529971863973192429239243036431973503334175057862139731102807940062325739336386987747274971883132805645867705740273302646174714086982791830361496001501327768307904913696572871240144005871706130111077921457208789375434027869803575262841266174411849437157570523692441862416873143160562221496789407626162388881164459500993382340668801113759205909312027922164185350121309799460709538531336910408603612967873297932576429620585498784961358213524744866591089513992488517081204055044351089155446892587287294988271875171846428652792014520942756381430707047482586265221736955195828544253105555901681606667973619519670579344450063786766173001206026169527280637500478230269424257933073473843146479620838460572078888377307032606588939482312009196083018477022772873799533584548196191509487775246350224138292983267328547349674894459902175384832885407012658497176082844448027075592487700466905142772187825904073487661288571262706756975699422117099241147232726705804050708876362946684872095303027086776758161343094642524366710417212124379579316362659610229998071199808027977724035601559159288281103112786415091709777829173030677864650963049886864418448568235835479396940345922598914831120633608205453278857917004983541425464513455947639349511031133625584457208127015808829552789629406317191725180039670819676823193901496491334698072569651539692218061947628618551445270198029600612498833146840647855272994910603636345697511293150938511197174516352402871415129697286331789615502761718469174330251431369567657698994347401909787198986991366484689355649391872800803913844808502314651293267027205620650912889117792631293019102294994083139886970268659589776264771873210908309980269809293448130714196174998693349467029216512836841099192159654458122544201678568262435249948205879305611686392830786970189559401450228295301162968281961740398354586166207964407396539410356556453151903567786571734749423532412203977753028041956164285929132699234124546307659540080740501003477164157262785253124909756754200764598819098292086228611189930541435053036895035320974969948094566257086371225297316990173337476988652574736279319939478103719756477680671424017709386955830310584213049295795775577707436170003100207735830834517927399876495881922199712259004883280802400315163640132596949439034315402093196464572157892290287074023775720404650248222814564720256160481218033424809023590317485943126687513074749372278099426328167419624628513609497876797486322102815340367738502949833391469979829699907801276059041158994894790954904795982896489202929114453947546972756404539435041146894557385028049687765257526672984582371874265834926318564036308167932335097187858354532256827950290770438537818906883833717795044641296269545588974110249331389200559008887434940260965160257283151201240397792977836141924828833114261949801075709642394092711354448364816317799208850799039674485610484536981772210180295788013154199063912179857393837246101912232448673777950516094100454673788204627167293905725366216646312048343854140827058707250810400156904367876364871266341084000616307273752750495862975774008161925510319310674989630813060554712556227994623896426214398219746150572664169054012058893323939483935327770572278012688219617783935963125190698143589204557358151948962173817987008623718308782068871315948059632968707485004387846247886002640746633809690060474296487692512957642332374435679889636044186427011178484553686175266826522274289675190526577706315395531217983619709579805520863051582050094401980095623167116289895345853849649739288574747644791702303791604201424267050617041463503347513673947524225576608313076526277279113207572347440060200218490629316628768513653174406234325946523153491397719320732708368489443627373779819993985628216799270842540710869902969931490262059395407174040392440183341015136480034663505627373080849286832150809714124817168152587757841599942529541392900269910419607283061011880993076310441277319756751094451689427292528689333507066925239643136921763250934111715884886455729166297802181954402161105657951308792615199243278786487686745074928097770467475149191439394903286584410673541016410122466974102118148676725435842794904537866287306722098386845443681423528532600233692112822414423840430162881102798131654168804873603817040862707293093372843893355148045078473218399318554994254176128011195523606945305991877793175006909315051831947362410077331494185956939507380694110758729249902269547373661737549713340100706722151579493438790021606146514522192464584105084419618749437948251787243124604447675628714915180304589779407619279707498099518759938032274691916777975463991969897030338468507777587584480178960169279491622160660042076076545305747151410103348992613517137869448940090072953337386070776381094082911981625415138983717588103672412873888145855302759122246587165408331760888788756147237584657444953174539480887112160174141319790364450220660922548357654934617125940872729633849003290800330350998769720658964551971570909886397323426775778884211457346489359560164633487833251842858553077416014159304249088714311819374495283663837388632130123443151918754717732746136295642099468319058500061212480241808159263803260799833694161278939398884315557817359992998939260047789491405786477811864529454619845572258435924382956194222193682494420561000860007305964974780194109437512923976063879984281078474547497568734586388493418319524315691777794179526651072920530636279268924189757693534762440953080613445413876403969064285020326714084781478090893388995279383049180612812174587411650964629087728114830652636067936765607115206056562051966248268389678088319361994139057276619960554070642149573699051521784754042496559671090364076289186620546611873944594753003949883022487863419131028385199305035404888827123193899793911805588266513212193027116338096442092941436303685384031382094038719780527549672682868052758099418293425170161679302048496428884315986242022158694728929780558547738014660224188993768901982864429174433345770633162034471591809566002468051322092139918381479387189240473928800713627912226986628611354483947012195269822220621351029796994598506133015662471092153265242062554602037066501432542306773543196153774543628801828053213730529791280989126666702954071878036312616823267679953278230433049520704834810364111546354096797514605747945086961464911541153893203969798127091032183521031319680292872806479987602870293462897655366586960921715190809002096798106074887651878609223957482002215307141474852685111496377337247628532388337422130335158186746487218344333074138972034471383614354478941165055132376276732365369859926871736512732712370187444695069539373889214425506887847222201218182704515587830727745057010715569664710766965232972536675653854760557160103534439832939046311385532648835847758743266971773546973263749377970379226384677742460889626242364786971554828931770856233759066239069176452774808360975335473857561114168434419181595834681343785810854811808141626938392086465550132507706241349057630896780498665787474718250662431667478244172111326204024037457695258176482187550504334644632856755073498192972322932113259103730461908464995056867458630246892577735932385835987079884679799332376334948915899708121696357392817101591443543632587269265393280661484236933823233821284618661212446803114290586929261720517194390980448724553654774211144576722461436551877445969533318585685142034831536314435685563046844042677533818855380815295904173136331165929161886404620594994101599262518676067369503143325106624579407593013613899266514471134700159774030510439964904223719510582374464413565972357044986964728922685064073768930962948766559740511040315175639924476820359765283940631154243765536968889392876103500185156637169973571902808178381120415312095497783679785755317357968841506533484772607040938628127176049827799844619628628352338924314643352628640038113441854061363636439477093870306803553316135819633326398670935340811966047679895273236924366548262061480321037658446156214569228635792377251450108880206457257282730866969749459833694531985087780529574108354517884252408739981352979131837709064575491703779966720246560918677697259687111674986041241292687101079158374162851214872572395641517410242027574256543450080203806982036130588447422421392096151355846590920981612171105157212143783781873752870629856273397290707526341325067687360020396568414631321035363590294895862102730658433599907999467474398065581908163519931061491965848890771547096056772432275456385484006370694599971670778546477651948910257515149099248920046960751978265188843586628717995982650120280534674974152744468585320694343666331936723290885371304708431236609544887838953070304179693992547894372166397833772419514532161740890882003180254003363953343609227101822584679678399461153200377824706747601430504769116200099905397862779405812445993828573320735300951089187857925357931833212143003592789500690645477748863269310013333754469937122773860871144970120677304863919918921005593637024563548610880397720567428544260355320088005429108834063004879987059525845166358624327651222308930896097953426405306010238236353217658011877993197670574744129919842781252291389494079094190418737982696960156381770799320274493737089618373125594472965107279117210538169615475399364869949282798366853395058106748819164666061305518805546291941153899526856679215367437960259624366811626460914902250935490940707178967030473965586688230016477070354693378057787356298089850172803440885382550215090528207890311312263616808955415457458857851924293872731631627481685148011229902083103380523022358897194596262310771367191253446265867234981883195197823652452486273301986845315596478072685397983417240072471267430535403826745737709745264642308516773466915739663400586139963666406343155217005392128950359192057534470896184351543403813746978541106348907852215725142269264644312960695311481375440272190844328126216911619275859839799199450855098660922295614257014778368713422149565871887995831295915613527786390279532430760811157756789060299112035965688152814261354157925787679979749547673892558447214207821253432235809901808048825859173493571650932090049456920091954133155002770697171023214965286411064996991727112198136577248526610393985901102194812856400091871379428875491083999260205205768710384190350951564683136553468235357869109355900291842160965453895474158999159372890159786186938535235429211827398689479791982717532261313816456333537901315675063207325844357345482850378020140476389663949074108537129038294339490994018545204078656954115311385589580668800042716765332196584354131622685154321924617675241062154110426162120888786345511169125149062720469859461519419454456221111104516759728602207568261200910176837415520115271152565913454150251421503866356478821911658409021344072041012299892795095216188651272506731979569148263437683099858154618531519369360091846035646766234478310845360925303679744880783318074733593134961190697018666623153235933417279741493888806248296167814477688783174083279850071258573660949431917547464441373403086810623768108540885115582317089366662043254370754857336109206174329460120957462201771291856501036743456582829918172827574891535838477859396185544025101404438171803091423028620193083532908299566687260246905424844848830473676290277035173349083299528171797669651493060926439384319756184535961936340664054337004266392656081861343387841714710250564371245081229755511152564240164302612456774102432604403141268027005392306717491780689529717106269250170013059448129312279328063013667330054668169200578776361077531150746486747037226797212746270826966019681862179056389415160754692765069110654994392932368131260148545373790275267435675104196740493766813285341589031985605544116901362661139546787651762666022350352574063618142871395004496480968158865479351397492338262444695975837489721957227490911584352608182639962798475002537055721527367144103314422173212643163796848559274369789682900816609617261363400418317720033415619088289071964966489925882606294295006643751216479061661269768166758551225011484686718321387081194403032572987251218358872754146568396849238598269055575797871695110717998222083219785355035843847040499268954221518157865389089610212600343857156801028011797968850218652910766093652896594782081030807322689439243834610675448273606309006397350042322544522845411568151827185656516360237438795194432374511489647364845389517133198965103291030753679702025346944484763969254970431589797361272964242288859104581047409358802158642069174318502694639134095832574116784165186496030129246978922266206110054047838405367493626382660862590152710429368160357015320026460603287120994569831222443279115205209291995697636537229185248970016995403974837407831026019231236036792643539036058691570068359993306607616009916733037911100390259101232654126851030651659955928778318331884556003386440580381899921040647672282336995487354101259143713092781798019644659653562887475028485369028220003876286111973750709413997490974718706938269222952370745324845978547998253753053132386296024753540032608758694360746922152431340543677067669438296417757287561305421498954635987927475980301406609510726780986937078528141212871422567778831142883058422824916320823970270643531160492017186268621702287066696192877747456442830974590490705565484695421714467945192593139714263852383092546591042607198906428940736930999075635679132810211953618212746199064261742280516440190922869665536149076928480654312810410797280970078553523243230048718105423492420572809344480451075441617892279036195522384428234185574387588129541857061443915303968367932438479864717142196530204243318582625154135919070119842440189238793212995403504230363083788833943977037805247999874828660363727893468650050768447140787429075005992423591923896937102923589580495072014390205302669626245846760445061402410320780752659382210222191821855050742502411337206432655685458349236952615089928678721713874077894441009017604787117358961297176680324559296787605827705595359028501293925522709658752421279963167359743095804926228550795457551802296882137989643702198542608342098972611488216632919031783671804174862106702648939159807077740712103084240137327371783407604764314156687619457704722883148757309501213730272089125455708081166581747143899197605952447626031638559584359220498323098131366457525898841769234172604074192712675618591518166129778093082570572206057839194265192404784548278901251201208800114052438261452675577997788737316273091148877744238672999205238983425490182411998540775078138198618300814111877674806119302914317227002496344447827468053553585798640493159388924963721425748024469377897568143030733097241986145003130727883414637715402889423527690905153647934845149670721034399660039993600211009096942244556927857958639365484697477642753229418323443540827179628883595366411975893287062012789200346279256120573643832881625462207530127259664175046299055289241280043797237744919989267221811437373753760199338882312790295864832952401365453678906115837265267104451233832376308734553947463698957986915066963984332462852427994038082686855279602096096367030507721270163504597203267399878993382702185711697835258380604381764430758257382575095042945727341968758296178564616977934436666854421930675867675147370576106878384991476896452901342918439404975891043000474942542243592025507370364460905753160903174121220646044736240283261436614387028828542981630236993885678562399217294312167728387318273502690910504814010841948312751120910260145532384302260165513353325389099063573442555141576089660050733930445879474859813080563975713329584633985755369825221768140533625923823194706811377883912709186956666046328182324507140133724948961284604883032094311104093715723776076960246340706306709294856238345664033173129559493692488010073804039362486402863937613931679460684445782763026023275041449781997092961758966760578575796261986405121019980351467202694271549254642692213662607713562297470393160300085497161739883036699861251937103191676511048759613754558469211760210211786590491846366686613906447443125628881851481000780511769773855054863133898309093480352640703034927231171137207696367391485347357203626985595015788624013829164143471639047417376765195153455403704658216215527994396505841656771848528607740535091747460065759817304126864453195144338320226933206368990439092255398780391069860582114996075823529413489569359482972331421583920701696894440126630348804053239398344724874933739073317073881090784887095550630179642568861722508893568184406988952619638841327466586059924181372241295907343948180506669722945396599565395467328539918360420088767694919806401240857443642340257673458056135563635006086968060197173917913560612999924276065618903307052387844817926513271522285729380573565056267081278055421270441302049488712208358649603138329361842360972474689466652952854765206104249101607459412382939266276674129406742916980302962922130901265823164768901354208648694563353236101035904844098778935283554264942219638799401946097234185339946100930421288748300810065246719294163819820619580805444841390806743623004510961401593459521684813082785358168557684891255994538997589752426256820020342576131814832790132593847497472880820934822207575129277286884297331779004601026260995130713740536904900500450687964463190059429547841670253173378764675735886638089866760037010305787236792292826720270795585048545311002118501048013783123930532642979207558542901558435106313957095483124670181594540875364932590866518461697150627672581720366504026668153222540825075818418004196338738172289248543187268553786035235655291220779308042520693822604197794868160257475356726067370593923798804543288429024936953474993526693275392351703288898294707495907680594884579384755689712546236152877265074031988009996649084757952904956868463420741335649328040944511204489080690012314351598928691034032166754369666884868527858346039944360136148603307414611323495491710787267940403016484492943910830319327830034433326339039516975549793091062803412158171326369997017146349413069435335644646695769418261523199279701616336264195723979096681582101328069912312394317423188125304883514890557634409128607335934849922951993146855183244156070317793368816748168752146233096145809763864660999739664425371612561443069466605289601559204441574219977413784089987037216163217901745166555903224369750371631060318855254265649977920315315774283547595301554712548756842106401847604984688203101770152771125562480048917183193876093489021187724371944812727593504929350750626816496651095193023838951522504406882384290873015971139412420513355308499909280811680356366705851241612371513459062746338495591919016468973640930350436584802644581302418065735594398166988012050269595428507622706025622519665537116997309457032824931728624143208802886815290162245786370733062370191699413637945798282961723853043884444196199079613968356030382179635257849454143312140015317150260614441856200295560187135097302781166241136397973116107722292854937656660791131608696102702341897519146064204013167017649536292739630857662016750052753628157377948228608767969628235584671353215395044490610361420016877307258233964404061185505294528863054698971160115353826631926999213793639103636464507182445080369622314049922879174617918046334959030948878070394763580686633681104842034910240568867969873599627552424756613197047344724666761686601249325305110990824994732238036660277082342882216528426275922317814876473564016210696111535902303400699907421468132860051059066698287110315946679463889764831019955720407853175780682869653752246935007427408521914096980819675152115057294317826282090240942701178112601998091474533617156824759545392981749749806760451838957482703632736111175027954753282923894855098344863035245646830537672422471591981054783215352016499766754079093285402530674152616105559401349230740792325832799255457547233226473651651432162164421539925452636126814671068248531001847410569711744859810240089269858137927749852111252086052018624887542378932741258744074150161319871071068466196080373052583155963957122782268834243924970094749883708206918234274042962885759785851891682373910946890556310265414039973557004146158510139385343709634185312804452302155065329903160411163678734576284321558615495440844331947705191451581054524077499538334075512246228245622266711345738062707589607576691635019522085344455397420990947127239189222732198862771035736396258812364330210540322468251189425149540030191503040913811700838967575694231694516801996201209810706491755486067340407033726316660360761251635504501658982928358669901802895333909067628673337314399591288240919138398515979546418446813190690405686809506190023429199589645140652710570153331493570594584099030068374224846866769075612632740477856758769607783239902507978349668398117822055082126011447297677719616140162591946286927468231485524008507289937142516824387162881807230655720866426060863673182704499730996132377877001119993493225167355036963943082772758486318618300326250291376704737315549413144017016132241839751847916234525305120576326515790112201493750023608867590140574692022719845932743366568861563643883818956684724724244965812752376262599047055543750415380786432994113828696788431257413156527705473546018638688552396895915837878224589500935764305313016021099221380215209138988015512321813323720899511973221514343812383867651513278922914576917864595659032391303054506948747627655886551564900695727269085386994155858162912706206477718637788628041610276893036696023474984267358472224457009166804803402855521044517519544730846121023224018262459277632879499485742104580932294634942241299832884903771611792606673241192181320833099903552534553215194258294841362188828224146283214162635406083205616396770840821247839772188880499491510287815593347454988579914836238708874424524592871794831924787035198954444924080807872404938147053123764433934983903601735231738472564131808760228821191876869706430459580848634570002744379786428864510652616240124900155976677227371277553851699662184292789932177048526738418206155094253619994856530059124989070364959135276385760947057775070980510922717109433154431542790042068385649768636052423599307144198349767755133252811923335230178561414334618735849535549990639648957438226767262244013764013188806890588120947707905697567418932846163129309994236495234713105150355888708226368262126393643660298575923482530521624259035938069999896731007300751615781896682858556417037426276102157212734427650639324232607464038635590379725556101746937467720319782048783552566504032387069065697889852564043558915737678791446060228265059029029296495505423480681910904673111485565410672518081801586906789207524412888509613982917100576046998988749075103680882645796242607693101899760648872883485769939628478805629075264269893807993207275586512604541797484127314875215241807557054090446099646181266305767370462846710486218975401009314990203759653869856876832575845299177321142277657668645866256938727384018206574902641265410973841371543495565925458220281753802610555479972309356430447664606538799048886289150977703214904654636415985249613833618869868291781815263034286189206398174970369055624145670079002868867261553264467289436292601733084690011104378490111152890904351683602545222545781557841808056473036786706325839436581517491711715819850832283396721983393182328225447456084177157515524099030359347517083995561378928907389990860498676173675944879800338313329474331852495717059397152031335306863601018011505444870450854407318627466879979465158816134766920017314835605094505652584838542779210258778226228937573117341397038538082777784265861365668229007090028432588114678999267227411131234408229137067539220372111728496780492525837332347338042549855306506132687021454327232111452741423407949406081304659243514590558396537429900427139503179525357093014947993714472255756381301573018688573054387457327117265070823000320496654917049480838584046882911518522353005865743786406195325258970939396376679126051299034660067499983035418553183288226152570830969558062422582666384974475428745137849641713915880040489295481897459140545051545487608304388175242647027384399610115597788724987517669761604333730465355229100223136860193633535400608393121358424685317067613397196671597790105492360791289399536203378187856609268211312689605145512439237852229442981639999155017490816445356712761118902090815297372702039609005866084947125752177699859658815373887274002906884673242671398085571904847231361601993791999855970606687331523173281984329786597674895492072480233028947766309450622304639350338223053282574942108351483395315163958778675525037189427817414653932235139589223759512819861944954649656776489379948628226792101589846957490513071152679346073385160665264296042590967794605322202535153788093740409398471205255408406788146197185228618196868706579158463839364492907406857818135537557964691406132761709167822477501719223936492611278723117580070977569342414671570926542027070923404304541807229959340004924221844489860913610102065012636294483037595369511884329505209271532734665315587287531727622344772023489868897805426077126734337340958473113173236884342993206734035094801308917651997862722663994011702751016555186394137572983158261458801549796554780626931154468434030423728921170307033874334175671472781550755720511057412715405344372061385597677345645358831023882679127222414730285504244230001865606902394911717898349918912518707286804274948783530611223580326043558468614818395501171716011933841301770516081557767665519131200238053940652821897226646761064145776248671974690355171170573457587995334031518826655819663033501902377486554867796453529095085878631296217290996661778591646630926338236906723428569590660167336848275452741894059666967297987394118884933570310976582721502917116869201488271175042037207936499701596522564598184094774629782105061570811973456687212546116260800506820867434106603316642313622208640185237892118703029207322968376439276362444923751200791946550254430670063709931695409402373140992623142982466030500132169526601566215444424909497023158688507827811846707415417075453731738016668820963078955657464551518667024921628953102209430927653311279942292529805515480725151969876473151103445705348846911738046211717948661963661917903137698238666069337019026473786155266638653193487198517335382193711280564885863282713582432974679049446367727905536819326257505477608719343668783862131015982555027794334025385132316042712861925227879876369587700186337602123168656009366911287563373600224430580100178111942300692683240984986575584985515849546381744966496058529823298882657845938672730827396878796282878318313315726290835671852165867541253128362059382645957764517983044324616483762797307376114463595052704193997482761725897926595216815379283725190409289206448242799692315266150911017593213238313354572917041288615135866500788134812316095386395395728408031349800477651418786190566829445403756200778334596319017059411665565658786542303976051787797254690796031139223117687135256177243418964736449414263930483443927013328044563360755326952098375793404175707677381399016357591846127911783487336743144533935685071248769682398505373629651805737640673332616346041712459455492976276874210147287030141783272309938013568204940996067597880738676481559269644671267790938247676288422856745534916507598287332051289031480602631243086374167378881093228788219448692088277410272300587922392342355323586343419007804906844349351129197901307160327503235153155583080204384066245956957529655687302510913903395260731264109503004427437309617069616802913099652822071187694902599153512932904496435609724564279805603966231646556188491282778015598990051591331249932612667941689236656710231268254599864686881641851534112615822907697937892039069728559536137013504414627424158718662307486619394227565613262168445397309871784124085003734720982186199284950392180799736943595831978337419573136366400612388750380300818290225756160300313950196438065633925282550531647318480892598391658632409965551355320677493074996598805209010553200208918078871583513077051400746184399525044334742181694239413557622254077563586103762129584649636059518707807089831314110455763157560097391007068108167303969316920963861508885659348902469183155252747046766536604396035309682173195859676646760411319661535248714909130806229020900360830780774687256794105278888844443131515238134517523613928662419175355856552721174296572626276121868402845650761838292575355619308938954178724353634311957981593882655243020275414720472118892825110035453636260866970591173286152624881760960821694159753244276287531912657294550016510631586132828366758520266448990673006927528125888204284937483543637742944554216864280410151150372601609573925572901303457744229868583047321835135052655050135435090845996702554788048895787513823153720358497854684650732007646827478401013999313136947203680176206221495697247991285783244756291385102655224534486767205761688170567858358754798472077056603110904394475262654255192820597112369367752157059672497762056219370247879272378772644640285537183279326796008064953204657764734150544358288270676488126506115607784500772724153075936293179515854382289113593558797321478026844868677530282241355187356087585770187722242041760348165565072040079795266447912787792870950243984770959491108705734804556801828243475048133355662146980791971405204178866372737559261545889365295934864565427956350436304943483386855662616191370802873855932523959085587461962127547415445994081699493674380427655428119487514795800376647037471603927027906668938351950374352114875813671391892344538990890704130555683921924892841391760276490351086833831474799208728192332971959167895901463111162356008740090608582198465512257770650541086441688256990372084412334978171953118496670828371875529986142799897215870721341495054312883453811493389464062033539488634824311627469120055121987248470052299255831939702072593995608528332654140333784673911497289822265026900850895064091210538213079368391840488316984509975346342916837199011058534953217113048000207052154968503762426833669637942755974307966208379507392723492486192636153723530913416527745850009071346735190738280012884745789117632254129356599499994692599868864725892547181220606013946734482626241827820302978801464793999539891825483499811391875815262665048810047911563751930082721388719177563696413888221779187209332528983949524728254543148277240537257860486422948463614331695834264369500346865844955827542636529825665737496445402486239123766563585516737043838837506506246763083217885690945125251678727811753092034858100579396428662875151752375636082528550554688429279284167390855759411805225517697547181142686070495936384657073785718844068711782429935663492586787766096231339017697091590944009549672714458545297227774964086707691848829117821061683641502062759571947495432074314893283347860474245494896286776579012414493472907190735234853616785350821822624757277698797833840575392468535021181635445209420791934983734305813766091622922905912263102403814848014121348781516388026110286642220136049342758870714349367463540666920655330769313186859383158644543990431607992343603626969113523432866509547440554076829378671877722533210403601134320930957325757795355585099842432761802193367800916072701717870126625613488841721943281462783804061121429500789619429209835060370098402701261670883867241786353243542232279219989709053543734100235313687523925103005864195838223316984641661481121766185204574673990619417308558591456620371064901363985200022586292925252386034717519302290597971801475621123583716691947853155183635611600736607151967592038305158845992787955605418464961285247196717128486780329925576599047064037724919063927888184728805688281426229799792411977634066024148386807454094483865338877529231701493658327569779459840639830711270401577059009955093429962880059736851186771782654035659737453587230162852172665900765694385868951178809034888774754823581375333937079188069733370271271063852537949828814048465298735726569311149550755418673670324675608096009756970451649705723635137753339234252533838063162122610336314715856586471189902686316117269159843966630559063747465229148645131806825976893211691514280936855699039156923040322808922930114672915946287118406004575936686579246949735494000722063422184064246791577093293249620023128120485075372235101394161217622456373897031703947961983313259699523882766659889824504597435397492274340552724590046855110746660089017672775076555710001323871213345743567259621705414196633993199550415699678709442687371656863829412869075560944732470026932009745631245327011050912649271156536707085401517201022744737329379573965169434484763363720251409546272849416862974970206644464075732546005991380996267487799911699698676511558116339424662804955419591759465061387567126543312502651204616065620559485345209515707150878234050530524600429092308575480972616781391238854031850571325551778411197559691306337411454974113747139599462810142438097707853238743423869101321240505281335538102607720058373231363774908458835119856070065181387440141215596437045007906304673049938796074527498589393382812970771051939702365607216522238250254202105573224535495455820568798818905880131092308927620863318090891844754703757887736088043858004364473313650087026226015801946268630505819955882815156376536374843563797601218327022588519708899489292787604988835121462913210356059578830415440811808763487985235764687689487802108538993009314312743323051577585070897666502154896322946144364314761402193930322426337143083401687642753157158083125950888429840113058262026213150848474498897138742329692728913862104610530259786145824404692679423725410348361846924061514937304805094426373200801826776956473444380676222161078258866682546294440304634307413028635388697373613667015405562824389485370484744512917011665377800565724473312207164564183252710829180540741965701239900160544516827448929919423813413122420996725169858362999783083118633198019489761947798500132027347976132306239875834617556549224095227595578194504537272548917035159257638512597706224676404494574913407101994041998451156033643541995378621268146848834963466282591504685517698475969287297240375913564564049469814955672944545648303079567956098034333747723383467073369606543714198060371960121540649024183999823935707440614716817672484326684530136982253546283822255761843082593355138745946831279036903064093987944280606050863241249823076091545308522958840309638764780784778971885630389649740107143898879150608927506234328686634427807774776328122768553834508850870353071466411866141305626568841149750363904290450502556295004446272082062985443675258686713602151309146597657521124463085022326606435857046897161730571931326854782292137192927896886745737006639305680700549183546742773643296435681393430642684667394822416457073386095697374950890252854598513249618009256612970253866103746363856054120547950304275443213125948407370284647328170791484507797217493668151500311155637926115723041601331418131672294013419865950261714688081916850157145859589299263948502204708810555252504518863710083287281515299165606120409931969043428762346108345901957890079224985306084217732677544277776458767557632691235555714128215465748439196605217087429939910004903584371394920575168650456394105832827219571032086785992496146726972076225344747896173469561626118409374482678951315645813054592599770298663888251750684530532738210650368315389000211465570030158941673461693395998876635903627326548638530826997909544135790618355035027823740010165276307894462419216538497496542258097506737390758037831038162487339435329652440873984484875604902024608377057846337514168716097994610517683399032271300790709087940264557549160212921296962823607418707019360733217030379182758686939314812879320305443651964822254211349020818801885599015042290773828835088671568466151199948917137753265511052727788714643535222117342131605150315742883312655990159863727391908037932706331203725610600574353485067266483300120273512487060648916033743054155127520457996105699906766541046844448881884561342904717623813011145786388490268103337175049039934992442083332139821579384532020774724491452799378809062760728299045953730241603394883157530579330874414699171186059359145543568280844588960229218004024992425924163933413008738175681038527304746397128038202322931350254156213215195193916373936449227670489019756552283002649521302816216954879989267482801124311767241345526153773661803283410198126521845417494242530990930845375858454985187610123785001145593840689410290577144876691745400023073217544510249661767791315370658731719010549686047242238109364863011228693032183649965175524265028054472352679992614249479837377569363343485585756389954247025386918012505623914163037729678146704917524262331440221409400388663700056891338103335533127927667487551964922076016608363619028929031405842053350117954934229327233382580369267166295122247933836867657646247742715189314970035962386281557153137442975264891329862616309461409168456852360361560439005598109400986844750304753708988584296520892228519418088904583329311416305985806615488891893532442633985304009226976782268653037553151088416093077309095632764785054840560753215086378598164873573758029228980021234374660184820397260274116671141612634003203069062556609669772044401810847552900865437128231750885702418639991881026427700867538558293129545490061719664108795225527129867964026019644374752820396269460557304848133212405637465846622363321941616075655570499826992761263705658207611046602430528703486456963469148862055662611203308146490977919429472833259539930244242514160198465694937121054781691963943128532960599761228021388496656981262969379303689713186187083735990985373707122046906450970674432227394210410565615464924546851430785372972562981604302427430910060700717790859239906711986828863198343130935129365989097050533673634103639969297287880218586998843672802316888889514192219653176810114868087401570998285369955682747104769133348824441371935001609987151348114017677223890428308255071094220595303200803872713424472115639137145544581857979852762867063907505844117462662826825590451631116504290845478855270833921714563117887259067819996712206519428463182465384050946667091570829655814877528891999851835173815064785103125488930472583087286711704043325074975764841611257865089315133495147107335877602381334801394047817209266671859722048355025195149016479132364441311938465001520287926137877498001598725258797960148936437999383452426285059336256905737169667508019565529944005903921478444800911598059520597719523094588489355966309654619812096224030389978581422382248482379028596517745462312366403242855874116142420068208957038773913417993798665513726169753220382905088733341355072258943187012684194727973448454287144360365406072700055783348703889371699302818754138180018654678627585937878389911057501812422874600086397784730141047643706296523987985476652128773558859960509199273417723511345829012336148630005387206700642439669624380659365548864015526596126617174060916146806503499931724897534506194367849034602732550327632575085690703502294550657882623384771205346181496800691050632412492229588151270606044641415061669622041778196110263836117591652348671176023796601360821300968744286358724916493719513436018032132474054535616899998452067223900142781697210430364224372214574708445609205063996840735674661616213493360897895201327987667258502712480664809138447220772326505361875600953874724920222123291641135451272756425242515154304519453393702439103253259961771934831112907953866141277812418814897879141526997598211807775626752583805676312143713182811779044091319097182413837869657475404614520655393932246757134105344748226426003947719799745492404287307083206658762309626821752223879872516384612968860528356983730834116396089995508856204447216566575823562553629975203542250098810424121336705266455504861502231300586601508396470899242571561593726372888708435640612245857804253818617757016388444539244447452668645585857062454709957339425579818996880729748705317017716958803392528114774698375120929503331502959221718578347431056640595066952572159377542013726219434143212536690699699768178123859617125871147640523066850354721251875192830589471326702758195722203646656527545072165062143711321763676821653920022027004961393242479548656163974910160126633160198982617863615865648924638047786895227180193311717912175997861149714497478033832069590302294128206051661343269274968953862413900167598182048720843008874449455593279918934531961999195525425645818834066324426682129984154504662688991601629552863314748916924054186695636497341146045749132839058058055170566668781938139634064204301873906877287218259892504846454350959941638216187768839300284683155513231293386746869238845888154692439090014050259085119861566564791807246663618700218269431876580025820477515273840206746804965038247627442931396334993063300385041900257281398141830412944758056274936459972278502525152844413718116484358622560808881707268477419532759766747864563571836265923741615755644558421829001337366914696369740344845859799146752645072939823634514623262203469460938916433828277501277238303162599986408298795082901054647854849681989139553718620096739550446591799985945693426084819405156921047729436589597408696711462816535808620097252124858906126473656306228894111946409761770679421534485098372807229435581747170007916488151538998641544080852672320292372624388513616249015760165578508885582737179622729304962255524082624789547111834947786569158094465795687987670822848569014463076359231172776216996909542165616238654167709382068728470693252707975113277583449725547291309932372969581854882527690721577432244253997125759066591740312967779598251894166963582852660429946890282145979805506385686843849169539205966332078166051564554313780205027769815009505084007286369537540553013049802141332372369808245830399609657450561859883762432349338984378853963142192364384179673456284393024819732760990488178157507152226564594735999000767962165248137828598058326943374841203279629988051111223273003874182664559327967753673939256020407237903355112498102363857165137452162603039874997405334392245869144213313628326915621567633090680489559298497423545620553862005860996743152371017840714926116223688633143482833882069206308460192593768632339003491095052613501827971526295215729831595235577113372863122248527536217132436172198332336682490146691427361514936198964100002420911456601083877237824163136193798105025517611796812227680416965267978435141937631175224104558193855598890838320394854813908139073429705282471538699532953037996543995600070813795053651143440862650184814876067096461983406352183306897845866162615664585357778843796165963133042329204105362898902050700132788137692272563633699834332952217581571013795142291310524572688105829386710406948244005041611623827496848653573384329599330945977046956528731994617883283650344529103150707488826897116021110702087523114452836134448221275289774558775093299473202169553025044520488211635216491310377669186386500698151443547777741433097508383557583564937067282952316489682551806111795050536480968410125561164368239951760579674328782951078172901588958416291248425389468757902906762053850529937361554336510715179355019963722725543254536617414888866786621814343229606997040433947528364660275846393305842269647237616071589933276294756251707799943987940887709492966028483568485917449495869603313802973938897917792786694026760339736459350618122188412141328981633024906765577744118244008553648024196368535442765520858103556690174544112544512260588725713800248916100168213828563775904925125262170542685099396286179763455339921376804717467811949032613075008658237322682224598772567990194049720858033863049851750584431932680350860312371251035577660533499819860106917364778638218924870459462598479918642890193470764000709547446549833003337827306322053858282621356459423342546492442318504009242702277297827643141320424826853189383257964340761958345417304258394962171590788109799684267026441317263853647018189305880457593181655835690884715842443097533793029134756503911489018554866413688473080967533528438164293526502895765184897999357624301807361335841739461839143512570714129803760456076219896026592461480678364336103903628032163068707924668943471374349079770097261907275730157697492016316906140026500128087104381402329409355135456062854075281153114284819360899036134869823313992051881709916273429379203033893358699775094846641243572497414882468734161118789645257000762578834668497839012226751285127398768682966001287187022154643354827279657659662312576769146643531855833034768504732629632030884410089808565410648405496124158948853270714991072666056565650834677783150687793112655100994735280939266093308561174433682343835108362878823425462720050751479307886505139486190208447837384086009239955911634334458108176149783754202596530486506393505251048814003880950606480150158663989550346614744619505197280325151820178983253754868535107394216120426240408858987487536919713639294822293401593322554025303365274166899239115150478707899326206098034557149185863105928767499663806107019500264385235685599208132162433172762269578615004653734203433165682920629029685332901338528802419545324202753905852302765122328071749585995900331004697284494596649212233099541306260708987043085462280894820864845368783118854982543611664746680394317957885915683171514294550177435505899257631095058125084529045045715010880120899601707340906545037436767310569926496383886649488691036799533649710663160589293649864648238094788432779431982963309661919577602491509544622567718805177436518537765764003567846868216098889670884023358447978332685993841073203439718006994775112106871279059861989013132122730267829125390955461568446019117495915782901345686783334723174098402964344308656209711955218436782065484045688080301247519686181066564656755156330579639853547464620497108662213277627119915483180468850731291293225919121032852437095610070763171000945887565683281098470136235949729650513398324915520115527296615198445830923700836112003874237861868618301311855443190913217406672226260155379680284113099570780717184219733120276681511044906595214081649597024820790395429751219812787924640813991605349997205157903528145174566081110922622609576670551452358661472130483036914445138358728542498039163205928496638656810729826439764236381703174610127587758496658539173147772990589883963474308718222201285888097614113749516241889121698782925821546804939305372519087275943603963930536283631571848626789670383479868924511733959620371684500601316147977026302680753547191919193973058569509487668827409000436172045539372265968546864832463135416765760144870910380388192666806054476256830498966794706249153830111607072854208034965288235830624686850867739157459269572846948738254389391427563754403643247703605383252351374899219250488254219623276464904112676888660004259599000063343105893705840806892212739534775348904510816724056915169227486428755185019514927960451448133994276340156435302982790427770542121043046494524012608491518294322699173157662768286806205638573401327087042517178168105872749205584499489739205709635240284177559305816095250882854320619462266491686886198788042986258158170467232047781986546380248533794520517202463560653954219220006096589585909220210391687970470757695855827242158491848042575855339285716617980583756620265583172568510237116661887023521351542216174003347501847829401218672459630779089548334961025756919581650118075361845360736254992830153564430400867506537976506841942677241353109384176033187686465689173990614437690569628209865957965635349742838389485799013601397074145495404090000259645264598090374619616737886566293226303876913121955576815300251775403277204856170080097087204200384651691401892478934183907565832043781646134266430736533907887415093618692663993632873579940506147027255434787530462537253678703087726478359182440426749961698404030981495486455022883683524911282220183021652989035834617523782325510424741646814929072900086563161338689156570914159362122396299647462132402900700010832343819698623988086156216377023074919494364194160183935982736798233527707753050928901728647617043773837503765438252066142774723031197790935142085666683139015828443995090554539272824095149016976108610313245326624069942333162946420174810157409023490212838075793337624163240893362190796439703610457021296059713785352995921747983693591013538475213298121874225414169899576985784218891335402526637726966096769332417009590093379302683900682932708798781373136172472684035010494143268433633400822403913888868125112111615708908276474361834946906505063423922011187905154738354315225925737574698438277427898160475246689646261540826057305894997825904419865545801551080094109166948829471539487294673341950679371104790144025780259081960874739545493133348212311737465008518907050210467587844583799772733907837456320485522602151234094358119288569257410212657231338231207631684590440445421024672482208799954385381960474732248024340440309370796231815579947883863451377356417150400816332935426407178156743185000358236839725268831634305700335414836308448930939931892084738405883142390798753623479861420322185191898733017967025070016028564835967850533438334429972188293781260105084766345531284664119454286996951303053329533730868618993988555757332709837330177451004473690487499638137404851665699753544811661256252875943108730625012406584739743500179307891344880178392991544681968493159146545796831363678885740828728119948503938179869969406197236924675910449135370648073978786722245910286832674557799503860623181308031760141353770142122134220163154445089800284556459962937486888098888529058081923212463165116485411662902367477058227803827555253146787413976778190965292361493172472459825053899602412074102862941288793933246273136380177408242907088877183857749751661996310708616980962349231751474745127055645687749913180877324953085466580958301166750087700049040680960324730236458552200936438770116265668953786468227680243996160727206072406399846656301594832002354177933269422437854291379418286232266888245458589817355514893682813295496731582748545907642221616884175508192761032461300570241028687331624327371298114522513952438360016503751700382521305200238788635150496718713195911229415602212911721604795824691455277290269614913686855922368743272982317707816337493238654469054500003925328696412563275729670536165354540137480248572999001199539676520467415688998913963339929792274409950502535599189124229582686446519631019721182800632885542644445576605351347682677689473424155979881913941771008328096910544969045444791324382562015281197078309900336305986298867589854286693219799617077314028244248500132370522395398598596376767286268942162225103505697080880110986465120453651871293789691924349688636422076092432582505875189460583366206235398990617493917353442439560065769672773119655064089411352880857321166220952938677770029938794716117879521721275205911552727660803283557052786968262497365966028016509090888822137939466284636816186563280691073009508309643734072747300758864336187483086131374429188489283237100584999213547410572804886164837281403220423109267230466012608631769530545308465029977563663354154105744257918920043090078838234888808676618536588460221703391109680568451024525279951451035710923717971356232936010281520717205086331478206509629070971775617761828404864789643489313094969789622401017272477802176198583583180526265409465311318542104706769959357676189013411805981454163244404350865148518330682036539200491662905885455467614860042048611036271446331596449240728009058511666341479105001200444723547275045737352639936973733945485714143993183865538338943820334508589643089366002224920093181228410255423674511503618926485495088154663512237579835361582632225891658591977562786378676474091354978024956771778875341967657075419969701719436755698129186181980291588970598418816800038498569357647249467060620616218354884942201046117225910693327125979255610985028769855430951304163934230056713433841629847368629461339925647759930846505573643833344691675849387883434072355320160025461274046755630213208130260252164435620671325655800008495572828419494016837678088491466207935771681128580038671333482374792520808403481899978769747389972745215488333710688692179573883619151618424885278218003525255235415400910548360938281240052978890174235708355927099506709881668926438237943964598924636049824737768238111525815812595178928242559260244247184168786983339026559942716443846037184408977506638776815726646339628998277096243087279319306269195293621994395264115856323618971538543676698579989843940747017080135516048967666295390843204908281739761540838708268814486595457628521427333522203106343329519829145498003694307072903123058016764841369131138465928196766760606008331979852410221406849820971900151920868648835735381915789932091985138034113281922440215179153235689224182144026311272689835532372903109470963538473368856439734766539040497297968896122423883749744142409711443110349275914614868062406054442267141327184553972806227989750259621530825528596077671201646810055195268915498913594693068366072938374468027047827888074094720540964270174696923210400020925305309330971004903489507802707434064973266405324579148070002832437333314754573021289688994863058075043621668186389684358729333822688805544155946305909271261880266533418419298538757125816219096776736354797758705963669109953453684034099275119077503874773245086602165295684788474180490900250434921762442608765029485473853987209987846816326700386315378068569926386992436320140408675539004660440745458606609392560340790760632515908500279792012776644953869462972852127916345529730054962804444436635987216881076917022492339331536134444481685706788661986288212865818688617512354376553901652131476790841900233614172765854787326652850533586910795465790795065626321104831144329273656997836355840797281340055462494979079075099254558393769251927441649955567954177872112959456530753837447859852909629724057142627986600387276606665201000143312379270345350323843643306074399563604653932009370293853074269101492149760864155547772348808518059213374494648898823810176209268494055629178731323147275146260807047026968562044455706907663822816185805252748145994719073608075609685368773683321658244256809895074965741809614388371580053821070306386580788468559922096965814455455037941821987773578688165790238050437173860607492309550000404222480384664225630005086475778298377637029816956594983381337294027511246875084035705367316743258796041291801433763277361659098194454339050071295890900766648054197580456827339588631857472439620520151025771406766571267255204024245036256743474640061169120037917168824380060936119635250421560027819050723744940147537916967528752030918755037202755539912312833514713514741672026655590443148685400378185972310483516274773203879559285826735915570611124185465576676819972994144341594206163879348781209779988517433486464789676164599076860300022021648277105237129098315527198964052607839729285604485974151778358958324655331942055539284564216125359973582242969942376950966873683716183808269735441791238101464972071586053679207365928723870373552661960788672554978452256700247064321947941873734030948668105548297220770617429641269442900251270332588913600035165761162995935605679239265057210135399048774277266912846005920906291223976442757759307156380541392441354254149751971523197226188067188396589265218669144216368438221960109654756441432022917662133588873860528004106572457515394896319512341473703408385275718076143726424960740710002890651763201296210338141067019340117789347387929673356830248854618901623348212449968801973106229470690858148006110632417337069127171163771520455513059723818449301070544963032973849877721816227432609208954909266250266236177568328347465269508734345875761757067745433702673937122717500630214865479315542315620013442852018584010516901346904376374586549400756609548384966917730631527133683638427365804714169421435529896074743391345939471689440379885082415980562698624833488856077466385173284217636430312312672167692287774296548876497065126619050572826148754857880173479305743770522909564495875713616286654351739016318572769669549296931444139008975038153029996409665219291052518915569030773765797705483459829339314959179728951098619982475320012307650143900933383303362588625926433888254240866901579946502177984984037183396308479889399870162744590859265011556525942014115361640501051670180678847673306085004499911172228772763763454034006962513778644091410962843167977446859484736267747853175796544195446927924498407441304203243252039536698802821898595327301342766419283390942760369517788666347058348076567427968003714888839858549707423454184209448317869347120852590073690519542092482320791132425520389495444700893184307889412197440112514571277764373735616538446019588001482909042975399072711367672864857926469571788742438078928889482702909202130874814101339940499478178557034672779893240644319655840538383281042116968730573240823886188874271783879045922863997202330281111196527195148819653096748020770634152594402945564952463209653415443776489677650144283912723789780554571969390647535048406097784595447253554857812127650060667185478479819381354460034001753117138945608511333240833140072683235059665297826785613072856939757679807788782800231940758412597295723887078783370200984418600118631422996765730454823109749239057738515084347531485875108120264185838287740499671076662448535146273622728304757868239382146436108255017551753568376468899284075378349813835259954052315541923651240771080807878224962791933807507420534168445820626774711003296526546110922776305597843029873300590325056173339331368696256531585503264550905969295129521454227556713017800299656178059418670125426818596468085809496061243352211050384740434584310256330307659601548929838580579581441170915111864485228657436967231862263383944558110549426133821572098563285607043356302862546077894263083834848639912918183239569362082013423307258119894470940070512832616291161708853527686341219934359856514637206957065556396499078488321640095941765661397856749440253608279348383213198951082540510734420949175496311565940790728496724604778496393002583500543429561623748074261384060192738351779648540588073809754183557420105841971677983205728976347624128768047919320886120053615596801400039694187286868638119220263166542902826925169264582392687818654957208104888213545734316612615523638604696925359033316641307374311556521693711046324369026423263892763231033154034915731020105426468749660736871572825810437957784686862563637206009527453215550782429046153959374310900847700786767892160753691874342682590046857210749235954787016180673196338742899023566065758527742910551801444542891109735194569411880221831461123668849563062177076178487701582448612768031402193504351600086082903064123376185990089638207248112131626841564860376254867868239098561417988127597263813086166221023321601597694314503611802907477998676374628771579225929839748878562046433701122531155361321497816811096692403408512650009292097437172029156249137008069808625037133064562859048204870717955158968522835037711353318748394370187477258657596425793850089398315117440765393285074166712835173695542862375834229313868798706983514592246779185569713384558354794243934207799045268607375675428649230475396704123706326742718450814166238769785602380044042436859900205803818836758495218809913512712174181163564644561263390842180633654298614211305629684930812388311305083705509723691808018249804649901598150504324607381352209855640413605247003837489183006925805551142306332456361540440883042008722261679109004381069481438863165730729613813135869165295325135318527963237566674933361501607064911014711200906187273071874922110358904836982202016895131155082716568062582374789936492712853730797155683165137129158666682784113469864262979287471079539843824967761016372253041170744492687642374083252070156947194770536697818210458936917365441778451979414710162894515520124725524379728462977429205250104799398482995943534306516613359334571236229401508254192449153733749313920789108469108724074042494141178194388707074279230724683584877209800815220576887499775725721508140212086339307015080739810065981010477406223422174970332500066644301018100186717437743371725524147383803307347469577205093689079187287198907347410121030947596392905906486836887451007726477451602165556113473816164452793862089005736187530077194088031713001523877184831401024101630449080205703500949251150288008920770274607085870606709713274789104108943587900894816136219912289351801410837790660618659495575529164183351365334760813661701934933831713853525758517341084308017071394300388527945036927418894383079322631142484422913773540772184452480812461372351201645448478420364647193405357741386246920298538574375535844993911653916448098179718270260946252006465248450292771836388508605455763456638562373111102936786211111595557205447731609181555946379556988256737738835592439334202108775962396489394186178700575849145751171488783201332378559238168274655990911719893203222205118132751007243679176962419967605380781283092795261966106016319016687028679076177197249600614737106627388126216109761663967637158316912934774788863386048005709863526547695196929367937539651198375155412867623421304025547656190672734761093970189253380601511506559048206291387343908487979035358590064445969998272418882443316491601803205090763329871135936904122681260633141430250033314181779446467926154324967206493807867240750568700010709212059106861864907441010614672510170418686816452014190863789483734801373978586314100736572767773564520987580259357008236965940467818104167492800581941588919132983694811469132160751327826742642816989164168339113454592260495305822387237557191466845599897387942891797889923451268049297546508730246665222294943514250777001259169455468977642956052573773956974875625310205124759707870878749387114493507710605811497724514915640139864577395666049888789994094556021123459398790351121107421468998010240371525965695022268045566023942955758627863328637111464942777794280836279634477233749080183685361171214934692380649368420439317823414529131663920864840475067398367090036014915403809148065921421120266986498197981676069553241662696105558141304732364151196351535210234922218844747981857731803252147981746561486832150358969115818848960927222224482741951395520204963424936487147637116981490779112394344026171330765802094025461245793152488111901999406554446450415529686648767480281941919639022612500755266024070529546219788270543524199500812461033546939840487389930722043160339029219798899203801523410287945411281791540198203848423838745775689441249810069891728825312459814900060083406182409462407021177937504508564530391278211694303887288278410197932937067441483726298244039298362484600203692139417473337822792389611079817999911233792757977908391184249626772787035578673678847284445346604999543678606097212334094787209955241961755767427138994404580070381925962488584811798690949553771643399879386375412276396489482004179959378526633625797638312304700955421122430599697948425165276875640861829589176801954095660387030616249241896905275272088109462964629821958866126232801283371841377959957131102513614543060032015976982561619799982438286976976552037252801623178647518583169450178090910160553470054381391082813820470859277319919705970811357842086388856024108189742779735543253444857311446235553256127550172714732104481144725150269311489025575708743191217368725416333445752136345703317268813051410954568992187276677040090429418750359288369166301082809295007221634283987425097298405489559234979070070254596241444318835354398649849135675574246760952922524677530950003373943657845644583337173192711972511070652887026578886113164614712680592303701458324029768056185888693853119205121989644688061599540796968486377648102196077736625141614685932134419952814267793556943214426399027414595696382829308950176959357029228750250011600119999623644965830500871496120249185453364409037234937251153274957517023682494384941277600843299063555418296396143287371672508798314826997012405142962589456142653951465577662810119983552422068752291208989515354697038661780587222505208713143411984816746172462705272338860550727884888629612706442420347472420891416171490290790552602635685549119367122946489863367197377743540137976628671898335729931269866738754399776125827750060622571895526457432679251427148126641503877010527143149255155922969140177137156684473668013654834058942798154162217448370739161155435772309794669506224943955274643427255710704133171643366579208241828700550192803813547615940725629011728026974947480226732656855915984802591066320592558788062649308594173073294290044147030563642675907254078484128308080101703885251381565401008017719835509750298133317207623827704997444783515797572978128167397335511448855320650684811712038747474186179894067821326907420590079522864994021358969801083626275010229169730996219949696249343751988480144815290221118303634010788157256519356939227550766331149494725701689781197346692248077724978653583415824517005816066767865758820996175378233313526678040251724298027753546327827473651749499828550307755502549589700719596640332645269593986895540308418867121608551321806427763024539614062864161539037640030516215395684640940934459786491936385538375851330488721587543199538904402807240941865685123593306263236015297968758412727349572976061708302654499138526783503337867585301680780294816490706538789279659679641714096569303209638300250085454538603960267504554298494964867451320806322363239305218628441087203136279024100268582123740955833654650786136608225141274289272355388111345363126466031675440670279829743312345723986283003647912734151777673411243063396922408093943520079089175474699488909375553386764470235992722862325335155270175928528152739991854341340862627400858452962008624545362293377006740918992960457222050967256205547375526990146477994286139461651840613497570492394567417712375869160115442255036168257733395492849120558171535763134146984288978731222241172712024029295681888999918904199464137734710474424203093691308406025070283079821212593236305779195315970872736139751047094561371051167123985911977829985858009396031798110115725865143057469834567567622684600036150881895836417790965055909252298265671720365084367392881677076231978816958501299155610057767673542954430495755981543774060509992705909412165030128710278387650600659899266311447951495198433542743492813848720481355211860041711285918815250453529196324352173575549658935410325550845910478886998874069207104685082541262235081408820294660291413996162722366677598114378668441536830282281383230069800411681565922828156392627509564060929134529509311489617770075864794669272951478622744205323531746814768944812551927753356125066934905186754659927467289257537009410287767002792220938802869400131248921961321591226454943914378179178453930756632198622689739216916214863376334527916501042809953058442107657100685431549529805911863521990386201054881750593836933333139312947796804530632531336190311682560593420024267987801872101101799095763080433514167413199052700125194798050757937376331696781073835156915098691703940023760633536742829767676433160577786283628714612479899387500499922116351662245623901582703524159178149257416359280441827940283911512310868075134178508799167237183578975905714004164557242504540928967289062816681577234121263730320311292051359917403174385848174716313348340591158015024138980409927170415090913691841907002524356388061235165414957177395795944174429047620032658047633547152225673830187808194827661679899565853332547865066508453649278162705962639214728011681895344914484938607348834753507239846749559323471425734798882019577218308086231961710988852388628273822719948320655054843101518258245143153944735945934645429200215808476389163427821332000847889670309865499569621803517143721416969244095311250036846261210957574647424088910689157837978276538968382584871146506702654894528140323626446810987919526121444786846132831311432368545487700263136000625235251246502203775104166262741664023705027219104078183471412946660253466826862645640248087436620571968324247095527042629850139576429892958345733401937242699097425722362664783193794492452070218514505171889136378399741460002441331986520099066624949641614962118137617142260828116584781559038938817540193984257730963631399535100119835667261023068459791029714215981573706763744456042903881234902986811064101718246180936659687535966725674577201294431989984608020314455204126395811267468971436253333591210238644772907074145341420895298944376364804380185067625958572586225940138629699623980199487190787456726377362204246592599233329972650036403432220845224561445238194182257482380768631573039389817676428492629601799570713027490957099742723814207453391294062783739580123447995836488152057720605271466267216484319216234171124333663468616552417883902194831016922423398042873591280170667004802091394153747233275163758894305074979184406982443831267640759959736878835923400129907307073942439853785022989041578541433919390326576370621703286319882424568419288833747463920796690823274046837852802668648317618975164124368961866366713525716895091242249301560329871397921882903977703612878415357973253909188248317538205172981060238847094132049289726943435378611527747125464449725233975071577195911232846778256973195155215118786697916662353088537521267691299854197368446968263323721250081601767665673851776060508221273573947961960374945108204841389746499689431623573766749627000826490693910258286379043600645902883515733900357904699942743678080915501970841796296920090606562965524029438322580830963472112300156947898839413862435078280747910311506410237544701228167022871015644371698360002513321062783389348786141494047984642023063010770975421257332833603470191117658628983547275556065581213230195875691713765235922828678749064556642852470488503739315197857186918915894307541202123916685820464321137272319906809304221404760832968368482970461945205024704996458374047210567112970674962936221465210384653769876590108380416531324656136725474498648202341208578325249439848549008713667650064710784096245778947788057199328494200457817991400211378156402756133468253489498378075508209082685195913830074092933513757882906040189729094889657499112818053722137141939437203951757164264781899154007467307304833975018034611592104293157855335825553961338522194502122710926748171374665062882473719736843410030629568819223511895852532852235948314490135498904490752021006190806622218820183900772037781191185156342570112285644224642198641276188666118990931948690391801878682116303708283040269651742826212592530891030310892481290192572780644311451651648642583136587667008098191229187268704672856236838499290225819536376321547016991978620811462873293955400530402151153302637960453920086138300730404171757358188423408798318882057002807427217192776120322303850686733771414155732288757590308005531012327348249214366263922211152830970291646318539210549902073069513208416133599772753600182286850652951182111841042509467808497466162721814323190232329307415650292029371496164991109928868025404155931447177246735180172463174852549269255322406844873388907221073332406135217430785641420503922053313034223369176088573545444070583788495862097137550500472324592358282914891979265415104161765839290600959826950737321042951743596687477858668257619922146304707082763710715550148882942422318279534982518282397982912553413071789431655483577362491487981186738811625684159270569993613335410127112066021717135425600505027895236525142479207366924079535990204623947126967808769704591977075606595488893759989185585191609685559586942277956172576221684084443509353128787419226411435742275305643101721589882523616672368630721698773920152697337405521369636160980217234692392076855477837168505496048262161179926996129977486584955858305618801415414616014995877592120712182441278066476242018497165705417499398289065027119432523032419358163276724406497389460391139614228890942561870408252825167266189264747232718953880528848125556005883786323319186891819947762836279926234273228212870122870997784240945288784460522929118755367684548270990004142850710633476018366247670933286262365912724273819510137288940555531445160604826500453533719567719642107153201781940769288406057910937880443647738123486066696563638505041554353358975948440454982047238044647871470015328195033713572884310603409617440764655248029990674504162244076236848677259681268612489865859590597191821518522850139716660022777754182135230479548238737096423162757526205892748092248892933524902762042314611709502661649439022343965348334831801703872155987470965276353374524734352248655993615337460500814181076065171221218360093413961286280020497089371340978407007047113578401085608293923395533751714837608617301260777881867587343890068062821068045079952919925447814842125222946738132680914208662363487694547234760941417106943776209396785075509125220803568687211620816392656989167017148046312116110367912436098842599518533698907665308844160220828548502853606583976829144119136519934788450624028590055392906558368912322044676932720583725442067149186367362277637032797570306047933936653486340951471897934079044484813749007983771438042654525014978549633530355268051486010929120647618869817346570909332837449715657597728122834313273604686978955131483589858128998454160105346201236365188411082093576709473180458929546596881588606651121164219828754343160484920321914632195027505183556594153540407169294686231739460191001256453949568717278664736118368129843286859090578116409894073634289642850917514744059841266687710332271875424617176265219835711844670769672390478607050696062113289090593207951683847291797746476499816424543541687558864233658086481770651235212518383843036790895018127612163131865135730041248057846975327071653382414731358078472662953473182988929315850855840192634167817834382580441712140088738595682701453936854818315921737008315865319077371917524671861298396902081072136412598905444756493859680685432042212952257880578565523839289210389616487376146493601760635641597144694336240726778023543521268714087827550404173697508595915726603525171535136915083669039628125658524441201191886107654830857157657080992479236309482893451588429741346930942034458207859951839078821269492802018596118475178675612267183702996062356639355031417319950135179688843528754219100194901345402874024048886885544901099534565345167332839827216613535007719022972732094180525225203657279143592714262307504120059889713744656662920305970426807638841211797243544385424155034157595535378512444689948827255896507484373816727049352338383983676649470380459558255053564461609536555522762299774691581217713949770524872255237780439179932768008557693715820557147632287472724406034674025121843736831707437208663902468989443871401294539762283340447253489556571593278541188624573881443234935742047721058868508723895687189737297154721635138431750205021449299902898814964421110695860546876996176504768607406231186304812254209413143921758133036085802887067854528066813559730482784279994616645157230188929517204625485751515568590524622545580855425997182055813020216252845260164918505731541645935109696881070468209122605574524531576890848948575029520892372889314050965985540869645124830995360339474853314425094117265019049289395990865623930758207650928341691602385351664452483090717261261004981139479146639338680999016843763701450369426257037201882541854311406832301524538739794571627801999255051762010181120561709895053067301995410744010811478211421675889885844151717604744380234106605525895238496512149132920198055674131306111226011567390274709196557776218255887849338765477472983590338833071378275766402882813388852801251722702784867165374111777087896711140362967780258594160135641039116243525703911975113755562268131888726157654673045874990286783508295336916972806012597572376686879324996664351529008423960075740521707096579496818260828678158314682685485772722398796889932717406743885743149542127734306801480799263179534517030906454348050440716253988828935025663246685473146439075729390170491717045616138432534493990959538685145815488185962339319397159184395604997538934027966117606674693584782873849177731445903746944790276355246075895905335372590029986803307187990664384971609925671176075052473038483878379512025615164139022067162786627560595808574453358288736272216207639012533967901592576642396002514222965419805069411223695205843916603955812311411427320377186646417810164930964231277359296675849660143476052152735799163077864112589678098147867769138595114635479056875243242011221617025618876508364626040382733188092936684070137908572180388886392225871563003838142153262170843407647162766195491570540277214340731355877484417936891556929858728847173056743738831340052745431670436206219238530331828796554043266882858197793092494577129474303360372111419023410938583399228180639979713518738250064022805314342675083817373527408253044809019806211451293499111360306116341844208155105116757650390535139259872165767330190104290769347230149752704113862218519253644506658153768775584849599773533535946892303835024067425048305837789975638591572002725964676570173812222214318508050167934069908326232314499192124387736000862018918981380450431458052699234970633869593739435867869631279193153171938139557785002591661758390800037353114754136403653416511657605098286050349085424649740423333762023878473403564320863968153584238122007826089386943716669293962391844109195156671473573897113515205493747903484585280375410807007701746525117598040631762385522753766771743535001907817549472853153839347537819247952840832372552574121588554258320441241459631601222823799267722591062556060945764422182215258382652981640597061164003581266919391982872210286578885727058115632703691602115415619974119358992668420047060277028934025366556826115190833952229101151939480327623737738197256901694948737970658403454675514388814167766229481593360276864644219375904264970967043471090754425238436959305791106397476960811525824861261128927951965327584829139999054870607978445140430384338754380237185962431325140245691647082556684815565600972598211984965838123820243028509749236567289998877656975876175880380131654330757894421295132843374177507544199406167659450562725567061658156587780654532946012081252229097554684346189355178760370276320465063734712104294988047982901444045700199452558687752605409729094369139406662922709540165768081024556820681547694750855552706255390395816549049435846896790159753310745101607825567903477901630618015359331099729543330994199302180472926685340491192604980854889668458700401360359206149666616568068247739093477551163987291038377753888388047201484979495094694187481087327320600528530791762327418950541193878123821928420392895787772238556224170220847680753421770820633240419182286994559939815318153682617176665545658105063861182844955412313234053591758725091105210894583326315592084631223885471673494733021596197451690681186123853744098952679710735177267303329688210244945647264812705354126226473509534966786912841926060008329464807376539813795341853398783802502122069229907055285706237375279123084657191511285656161179363140426149338134537830004881544140340341438374247443992945827856869298555395397842968486107486817762098899183286692646363638465987701145105960240545007406640731092100569205606577706857334283357229361081651464036219169165839219361566863389850425189342364677224573062407628624530285468462544193549568207020880664040070770598308932078614338757108269522863951066097526591564839386266897457675435931773936444573992474236736579978073976945687122436479636284163234886851896466129008776746402299834736971581647847546945567315856314679529380927874285908522978290793983820188575609514557101358740087764698769460269399018795265398476678526486569970103449099989802719586045686305465305289203401820313983524113094512758344901471025875225478299418161864326667237092054901978033267506228325079588279383492328302099208837928338950133443086916719033253691479849018232988831846077744262012073762126315497015846917876164390883012099446455363926703970724055695043248931895811783562596042135868656662182537454579934847737185593769944272376725891331349008146371066163562569829512305475519877223069090166186012030183445453084755008747239576736527554220051025127237814830262526430536036648317430256114077741311987836646309370532820541576064809000458281194327972607839769452053688068560484061311302686076322437323025015672289764435706303927410677975586570252754537916166215563765185739984062922950903179416792175437980430846311764953323964339791995378438728531873808203836892667770242828447149971781371255312786481458288457407581341323146783387170872969280399902942541356536248306643115689380362159046373650089635629326267481347124172545297601846410559716396906443552107586978061146293775126026904373564365172119243440070661619756101044358737891771616903215731178804555278029253295482513105238030376285997977073752734326963229073482789173149869431122695624543315410917278179293771413043714657947701387753384767014938366018825420488926271075884948092473132153860237250485757108432621259334307700563970954668058034059828227908175574815098416684994945848243609690719008227059422502098949497505121744943147529686922277733065754298004144166134404293718214849934479665303997663678129459991100524393059688532430515189569927374350756734917519520693829976521794775997389397737028598757880338331644391098290241667835474053741697152361411518876726734461152746739952589085052221195908802485847400691953437946726594945806929769545017045705621311246507074748465099111021804043889681402017358904273013617382855471164679456309096366244332194802757218324581335575677851488275319006189094916911312174752221426875375484771616633982029966159511486283921485728681067331588384957263609988199820961962684160506017467867456423623966130304342124670335257246539568658618788132059041154738508563699122791709700606873403132793314389591096634426610857758522982757832890808604236111283958185534074402028081218006855892332154778954852947192252198408957659507585994931669157120933166619566690063604900255498427815908974581812540933700453358600655176366662337227101081907506372440390491341736884056015559294681723805307357072415804557377661913541390196279757073457162543228391691396000422181705165584585227356613475593261860165471450918011991636664180024958055229887967487533640367312170507273202580764192443317618660984747130757871356830719155971603838838420634660862714850797564757418470368944514133871722348623376329987782628971900483274510844386290486437948540735451565414582051026153575328527776340827999183975464456432596350666086349076549745080310325729147730446359725656375832295325449190607817418607060725271156308781681846852812281442100191423226284772087781546755465694238626762696828766335082811484748647718450760684114692376720885506462731462570041561506586234281034995661055158246262863990424451232028410916234232251402202461501557305567637416499737247877382050352594378492340117348331510550373954288436415017217575836443512711515868659618012661059398063860289648592634882950535794778367713467920726474068521328917923040423887171311026205320491381429111393138852789554710352655432531255301734162556035906384585099250940237151972778003039928794534508152486279575096321873929231955148618854459598309338263039544504908753349541414719735517775936288621318514614500277555606522076970379805048213090804028317561614174375097805215456150081998645898885791343895389597847702650209659803720228145514179735367167445214929799664058684551247084213626981689389441592375775023627330830650024650706791614741000792907314406162170148065103050472058896030523206377362420206910448110567889336491448750039450737783892500690846094426138998474428183663242825080298738186103411924489885903416146743670840967058333961576848458279462725800019836922052937943970859730069430007218487829880002896642504683174087147327846973654681758192273043024472265146536744334632451643668803875918135956136924329111510602283502385146188053495779112217948008360660938826101749870169643676867138218148729278447533448568951034875269463463672415172130044719626212706119479812083380131533844017089934008789409867008523568804589798619375843492544091397538476532032206815135131455182365601506229374866310391240192389899145536527821881610551512035578170487498850855841451038771041431330398213674565795452134213872762565801857554215097870232108553829596584333069501881069442855545053985697219212458239142334604558472816751735578963196829856358010287041699217065874570906385547383498722522086969642918064955045144564834744060891962688520162135326996592178924959191826763601565842731783931454397298608726511544770984858929760065127876142924966340188044694262274411004109464538422618832120107755657663172108987751100320901941698852237359811230020389720264526814406761476729061474876954723706419450344150357251780564154585951789739810192868779258118837334602634826419175944881557750026651804656118797497101732021596778725166429816205806620795333042595744256889114151572308131662674465866190541622483622901546657874074307401297995097096047779226293970452217735915297778813636805211805693972600405051820513344982985817957072433818277353231199023264154926003082046560366109626148841603733330663821459344821340502810171579737741462230373860534732125956910952754174550039095724213566987799877646874561698502066719997170282285448921050557276603762635055807391712308182830740496751433701315771653298419489197976304727567227036656023597153738459559910651340634739750337232977560187129400192909175331845323654969100747580090066898708942253153983714243725437029609135222461608873010187125647909155661628411867994951847674973172045224668954518029722096067420854411611376136110244697437772332722799705945522305484402006310443909616237109185352237478303497151442161455076844038824769078780681725272700205165387515103866246624405811059194789130662535187057651507548132789419256095943469727714427980911071931916208463058042301573215492439639223421297700390085407887313841566956183892557989601999723381903186634968985038739396521707656309437566578007510670068937888272186066963737098721759051272649523355068750396486438125322603895204673203546124728122594719472145187735076747816222231429208300096729985458895984992468625443230793208364839214210455613727057231952942364028711698173844357491400101183912498590527740146213513883882832910973169336573621960550481254555818845152548478391906150818879430013550949259659922770533481601152883498659535477005226794608705338001247010874106151228502538799538315980502484557824421132902043871463466557202032291035528699701672001690688572335434168140671459026281219476345144781042831488281820244131767252498978647170945567590030344665494132024114202504718904213401320731911879026776609638288711531367790124990400580363433106359641139951649449696269879692636551779636727885285051939977290727428310876575267618145066965060081792457728062739703635416638387044820712389677690387549148657208498817598574941792705785003984692396097718575579927397429755204797875833577430141593166434124827165790409508713586657307804429575778755166199076481168393241474064703912680531514947829653626900504534769571019333407544969309478202907866329877216756528366788813340413181991926630854522385932166123370811597245869286225791521972493031161200685759020722375813908785277873215836473057568356647141554570949397222110783657306858817066099413536958994002931839433508379742296302220192708402225942773188974409529542801559173230504357909813312304371247643566384111398107668505005306465098477953158367248848889062820328414408468967220714842320699033297643006814670891048813794677705897740070881245265472074732765530380102893997845201290735365753359666480665355794128803690806815464545614710030765005958446690011032089295060167406914091151728701215043113348393353492052802113843088030892227479549508433484798971315410177790438889917482874168250780517150638203965185030180502806391508346707747160625795386880368414882804931460736084257448315887728689745902612281042215532501378823246219040039264766964871988396111178834341263084758020799103975541929343755924946737302011488994249721658340627065998833509373087300767814374485074805296838085028102730466601250785498741292845978923992916757062018810162593383466445673427162990284560938799342239878321333000702252853323039474008318536448343012572305593258748593362983037528480120231828559642309818388726015897288261485863514562868275511704883840552615525334255955228061694010193213684608958502506695326707596015455089368304649509776317440869168246146407899623137093284318899041544468389169379245651702385467147817492134834984143377729665163962767564470920805301612660695059043903680217487621077842683276454577273991877814968774164759628794222189638066574978346448911430047283006241336880825750725297130543388931419255146405194710352990283341175073429090437609941775256902162475709840404306144655539990856733308149566051343888843479033118788771277246281144867452252461958922506187660018974999764741533680710810522536087520815235005980232120686923664267702196604340632324546349065083777322375238183638853795501630889723606679778256107229142758717947310823035315885680138135829776259073306652631418728762215416055280613872439947734787632923794879466809949537377701434857437109397219180091454812723041547736293863210567547261932089854370883413539268897880611854337991743321175838396663751888896213276935938232835642852456397019871783052448817943286754393726941102586394501721873539401261242816997286091804133297461626765526566183967015657169456883656454640169248142005405559712991406346475947296009755357163499634166077964762716510819335446963196819007500141171674873155294260751291077608362585917039887551133790850172941122885419270675763482715189158771032124296336199418995101748763340180726591076937549602278661478185075843454279710988392382673248774031171910294460811061299721652136398622502618722167903436457820966628768580306105067975108355329992296044182527401023317568004703036700651207274561144405158985011761315474571314836921510933840492101049011691350422882615493009079156884121666189066452645875846622504481293121909165389313180790411654093408037145820199675405224731469159018176030759209518868259723835022263284288325654937725498334464740420406509644436348508464833642171239713875037418732793640730322658272654292689021222174689244959643161447640996829049743989680252860738398261875257923350050959800964399561583243742950911771370268707259280249583322937909798871851880517485217175113571345171274702712072946125857263299558264527942833893090206480592894189460211063455961244533659807952644106456353913047585467799295256275167219072564493371155957156400977448369258771938715743786956014372872461443925582337117242416951136137767204404120492187453863387826716521150615691606740349433730570943722817357216107992773140232529324840975595233588923174400148407968094341611933111061293403865348825615399730898629730579248777005531141267764162827245781542118620273431064726720636439689758848832742557494272706337230754132669262221466371903570142490906705234141797837898036546219755001848585591285751144258379462458134557080028170617571766392733440546560554840264237424543584612796669910676506381828848868259596279547268025041064601106746128078044595577632273617741041657106341326728058438999170734715560707256344153319400732109138827923617591040540237889157293773578765990128674955643409789647945894841328464484888251108308560175240866715138988774569988674967974350420949834912671831839035148060635984183433533604363532612710865092016754650875160634251118657926260370816850010762645289021965939765153779673549666616112014762822564145350774342342150683613431953344032372366056037837497876814060136947910879912995952714288519098230313305029595189500704273664335344069165633100916118562708924976536996076013824491977731876917948479831742776101098742469497837272234058304201107800153981011622320558294722309839920281724346606786673398801813857641080427773608754961557435774447480148391438565196059803778506536338384789228776921917573167638251914164191979286635287737489655747436599707327534528031452872492428181992504352445333699935998939368696454596646814763404937929945390616719160764203347014175928425242149635494440981579919894244788417334146586429759383061711705747282497233254374444018282747069469212959410557220791879897043249971040114281017258396039723284548658524368451087667521589821522169470442430763736749646452830495657955910121095041936309291595111427386295323895207808016354711908931173612346363069102764510349800972907241619577799906895363722746962818628232511869198370821961543443924559832725241355026779994107963553309376841573656946319238187867111757236155375237389111566001334539840024075627374787326178005248356631708613296277291618949680630186616042220732421106985613508924293180628671623244973273252283132233029554536473075266273212892226096391759034357563841938287945250969458701668338238221612957975707280721966420264627259718826257913174628374072469948745045933818968970993324405893764532076067526870926513849122659124980029384889500699674507217526965326424881826888507029344762485355823759661062058045797469015760108145349079529105858185862668920664347806694963790734623194083893940685323421665109527479891722845041687531694450093845050383707128422892427687533306297297339097254312179009282842282782401774667187867782583338843479701525257908705155483622915104493655439590142048451088241051967615189868647304237288483964935972753491408338740497291804944017659584600730835024508808494836111124015590267118742307359993781834456305206684123490857962596511087762870547358528420251075605819526858818551466454865504198191781307670155813180543157055513951451035782134234445425287726205497451578452846798180914675522777186002138172137942263038489695714479006799205524589552192469183022882855521819735830054738889089182108238944379567769924024551164248069329740476298627053577752603822741612274546457212144032282798444643945448228977079093256294734755293580215544737159534163238970050488582157714198573314251553714461778642592023115238985536216686176601980650844046020267523196919951852234892930725983049616289350595924493136409041174855626596482253404047392928827570249211865673589611617666901460874980917021931524244951812185223345649132975430912952431115247424526557151789856848953425104419211183462805265992066909375218304949165768211595569774998562183916210382640861869691694388677675289066867068783269296388065106021968281792915652661453421060265259251979524129968248327263848758562807891654259740329821995146139115342680953488361916256583711186308193217579140078217906647634033601097172390603947873470367481985458103453416010052946000039347166591702207499088192028835315794401261419788491381172344694538576126725225611191824121346624041021033362753002247338849375578196040272181191718558174847066549901211129419551667234613706356495902499319581628295330118427578243100997708253987796098586878177084440128498385275234864951081641508779928087563875941710403474419274480383266911978362597179177184405376833327018056596518770813831133562074261931956805838791223769721063848576424414356021530489905034279337261661299913204028473788631661418445444193851101801631382383989898073496728470272157129328959350018432066522722596111993737867431222117596721081641253762234989696330033694751434977613190330734390744262091852302452545000849720094904314912223158791653547716105417884916227043363638211933064926286304348039836838926384480329747472395405955676728234989860539678167897403588974013370961649109661341899464239403287836695379920311190208987334938554701620952919226234447872905974052379329136879990389242427223407055717808192253434065752659036273463112829377547735374356613882071153706677264765043029304756358726996243006432146756060178952629440212183710858668226199151086264972860033184125499091690502914851217538204770338123106481481608873679472953208460814764247919007900441450483692584976302674430268425268809445433517994480878508266205619000374507844957600679056326785585185608760315383656904425210952306967852808421390948498709307651139409654034899649040133876024882514311393494749470113588323299866335758696439487538986500579454343595047498752639617330260470140259678908052295459657465083352023777120931147066715905495441510807249092038163908325295768225685539156872096426178436005299297750343796676220368354631066588087732453450607774265159101385075356075411523168404007016240630038900531317579426240378054214688541689976516850607345259255988643657377211116395174592100665388336360747102471374712423610814834705108566896237042515104296340976392187615057483978009787478515983942503668324725826948922167009757740016480965396462877179000114116358005782588527908234479124778247007276288181624611191572274513184757942435252263584977782577956302240181223232702801180197228475270630880902175627369551201882329490453697460122555319924731641239579683353912672951569565104360626660232111212791504574902011943912354348461471835917775442201889447796866765571201437796824233809761601491129474722262281511415973769200316204689273325564541487784826854590212578034051384599069212774409256434521162693109536145586049731328462602719199969890850520591327186270518650874529917544139443253929683839112227240523188499418047852254319329446152254538116521605937888578855776555404275791009517652731289964471926382915722787504814435648444001167798993599597468661495351601143029531036862886979866456130764954075635686798804127775292857890545323167584673685747284404928303831040165470813701269447886122437173983297141614699819076925149301363284308931340003948216412758685014136846097967345662839585930150195041123504870099474885195104035262675099574405339333813440461927495117519709349718582261203103605832310051542057539754976081072003265179916894601979952755809210585182940885894928314905238068671909195340045477636878400328079387037941333060674619681670115493331066890798928878348075723939241012935498750765617212011876275494946935477278218469848835514365309781840504027067820011752451681151083989506208929541624629358141921906970528636957187847299227437659003489759841398827789925040142997821808127031430536385292903416974206840085990988277312478105797801938469311525309023050711244331887016496804680787687308269047695856175519479005246665944134759244655198322321271846419639672459639369335075522472900270111093163434013351200786390480245821619069536315200576231558372583406730002949015426587978843845451062960714925043911981281909085775454262461169920564240755863754911917588722303348145422326672376353206880295115820323665784737109889561965507267534436762022742167981401031343580844649512201546076465588653551174140232961214886193417405309868836228251333429481509800779118645880470992771579938290838027626012506390797153225793779005725560966323260986552515888482565794669267871863402298656025829334785078884940274680730313297497396231408958383573919263537388154659117178413037085660249163756769769634513430196174448630303617391429527704812184281125038315503590745294293054400215179967398986766548113877812434084506573073118543280445484983075880874595484962773006708849924761169694973592960896168560609213042068439203895084428619767348610399811579039414232001040775553432433336035719873314864773453672285119854126535663805602069188829532112275411228840785648127283878082070932450618448292776039531466111921672169999022277945517023452620591500828842622314299517358585721957509868400171453393462459441654132098422776217903378448228245707294273960106673123151221151201491572144256939374890771815250156483867838556401659621666123887124358979960871274455191992416147611247689902064184088108087806080963904243519734831923903510844236701242706328864037300604003423223293135735690921193056782187104476265077520461725741115343986213365313176695876821129672156308290412607143789622806279268035382203880023355441693661633894175986595348975886675805449928864967252489543868586653400288547870769947039965042739117752999210513611807036841121106351349543685726290871869776482554695198876700365031705837855957779567564511191403028937730223011887620455691034449089287093869528283284945680953531457254118941719194113997379174956374319367627497576261063688264684571520289219082598729652088513847906523751020724481018796913849503210282928641965598165600921015857366319620634795878079729808800859524555320058419911040328304387130591830562949791398754326045524840162815803763377609685363216955243353758605063605905809593470144105330828683374261360286044674583927051584118003825508669201750190631310140322766954195627441364625869091340218145260784042874085883273891013626478216162695903370889125849994933753107813035622801870201807598398153785802183085492231261382301233979663508868203099898468838330044628049696778134770391364906538755042980030000907600521111092348758843458659874955135427299290071377993199273902992345805627421399150696340746677032151141123264949196372851051049480650684299095254899011750342170290133799013610338395029552490093153369210437891544112514851919511410106765212023376967106903361431999867761992122124425586618513157255591304732452906377708144891466359087874107463197052424921965261507388069656168887858345840729079545026478140562292202137865902713901639603306284986439782104212295465748185233777986284672635984047308812912435926476749399680020445107551642115919414452984328173555506164968518095547760522143499418391184609506590034537818676656429430008039900957797710361094579111708814931367712375234540727413543301159197635339256984076333845667973849887323885815628647158203414930878522483596255030355563124314942390172364229274434099151182255315659584762420174147098891476732370241732571552979150398510200875349141392309769110470808505224403327206591354011213544098952102560801171217232148830564479280112267702430137447391297505736297988216919835269161974941228266313141152572706569146703110668779286755851536089444900244925224047989279795790645175713297079794101375484273810496492927294419843510671514259330803797801694676892593857552943115879697316453805487518251380928463773310249864083497343722739803005536837814137479514909272640060718505959629609004185555020693013491297235913094126405127524675898552062262424199464288127442965672395593820415063702352520063674825489085013922035388979809790027921010303131021760904661249054915847845987978842581408720163328909651880496922539381403795838820779928210821862982624419983285655788474256325539582905263944471084545078155030751479860253557744083965990225826080091617593703224584086158629487610605538342634166246258112819062655260502450606533595407142796498671711715319182089260334116801246862331067077759534610824363153966246674235921272151421768086018093755860660855623728784240046646978330264314315014940907138666940586726600303492132542735007850511818658841018170466630310916919475447130722488574642408703669865639746102079754511004782658766922849829799813232903134855682871194511261233399238665054750957380136475862507173168853594798739364376334376267020366092836069897663304183474488039341543861978560581572061838184136175960516937250504811473858035029113510616834199932784233729398171028730736110072256689414107566979545531948891150581705043327657246988876520495038218665787012095599912908518025116519671746673348353592809545174753044888989466439223253540489061537053301528671604614273243553361835523388385880026363593662991413756169524986719370767252632109835699593125539319264505247006582479931370915080546626411423278929309454165581307379707042521429780222808420883141596438343112833538524490264525045074238307147856154053583526507517689750460568684717617828791855423361494174678535415913265323625712093682414046117210090915844260834869176439471384546535350447950628839400922229433432475400405959976733710351019955481127355761765851025128069137035903649976838723338236151728337376115976212509140498536662091690594145222602213313106101126897341319083502861031354933474695800980914541931806733133343070418433189593310949551444476012892746812587276897703044760811835469318378668993585863634910318366927687398518411679849588250549052839467237096365498818165428809490970952429776933172687896025179432637464945864877636367249128938129021697353018114695855144522539899665610847469185187552659973517873212946195408471813997672306106911602281094493350402373652530266684093316151311343307220622598722383065641171918721077182772226132754359701958489477875759168867485839281227350328639881320537813478448621507162582102706846273554006297260500469934148544261313452605122144471935576463172378823957484430843843360726535285042614674325616311868592790298759227730702835950666305836994757360364774456181886460183777028230851862930934545906741218750635937525656983046517539390050613124022542856360936349920592745632902589898759096420109775475515635179034002093714223856554519889644262012778693526426826207897847633089992862521550748247213356180013435203510516658679959488086387077033542132496887523800445426587376859285104713643744417644891295306276928797333967067666500434889226448318621057774378842819970127641880368291107529774244422288847784523753325554836721809964964831435101553345712803611117761312256239174289207380237379982092991646490910965161798481974419536519741804714905147546180143229654720268336420508403621499658708656512488722306876548651818121349838286691061889947053383085212031268448086470320946154492781666394335715502526660637301577797971006427504086181933427896909437081872944343317278131594482679952416590734370523931515570443922980473006283457145139853246456856294720235864771532177773409342302353634403919130025054436917121475771239201626835426036291976108704732302576001892260841257242597790757123404092482828815234121290379339337206714420200589987063753215908724013334628668671215786678902414340231298682166617037301682751351186371825088882864918772035232717421146325576485982141846521451488694290546579523214506208873553685843423368054172256435559033519154709413586810419674596322966826113967573348296031091918646104956622378757908464624475269597231638122844621113617477003404140620518121502546506755797814282870065560099178988000792340666934529212243350559174503938230535714772924767979427566095017297318027422549305161392587097542273288990911868194228905987612419493374727626459894300248245824549288947009809222891607315687901110252399768205488200007009367788572321904225839348574946709957799540539329834166200661309814798732509820607648459516372119343375771461169673484897941434590365167711135135758265820593636556424815909574235974330983947358706379506328098685648173661667938287375183069978398396807687578585444900683678620495604218114890381140471737557350331293149691600540983682233887248246448560375102507520845578362130011544496667351802937710781237515144980723592253483098417168648655942268036840489088160348628922024681404610183306225217378152962965098161063268530527093666144579316438693500322491551086130218258023105672705615894306234620429027305751189720536168788198864542941993952481784855088720615853970736550166879031342189720522082389145856208498508613122841164468009657190687830229588669289525142591676984173638906990930616048542716315199244034193154496811283497821364935306515043180560693393718046622467282193155967724748676029698875669038668161491077808129368517441428083325511898263648984037067363841358316660922605345032187967811617237528777827046092613337544949954559833449044872570120836226731346562011204267936511573630110230734686931534528720132764461779914135158609418536339167981287997632585753792809941312733662922643057408027195654710874999882470720771782911285539686823639767692286074075369615113115197441596794329260463643533348925768695653235116579835031222221473665818174078441779513566108717995128846272458016719830535430540553191290729843021831631417407517678068326532811484054757192590472673550026928786560919954337148035030407884285819611145437618079747520900200379607223691803201481991326730625122525230449956387667076293319970943514469713624777556330584001389394008170870829426065823565490151385725561159792263439443372466200474700998053439768656727868572792522649371961037139801566720281166799720038367386712242005296240464125822998350230040223771056292692958110584990855295833760485664973382484997485110915031871041007002939874838226997923115062485392477447787992145850592285257308553809351164135161833998171383827344162617420815035411638922771269368465839135369266411221494588106946945994668570410598419638466825011129300379422958698373303429334959381745287066989432253086067199940753818258699253143834929688622832610318178149999143359761846874154046307580022713931772757235182037341641965982041423370353082780442579964496590020947865181944126334496521279089026083085997177624770282987876546825040779742642177447734658193857605197660339698650511594053195470339534328721691261047255988092349156149111922696123384608320810190018519160520541946455610950879214041623735686586940760477885801442243165850421751190188551667659936218180508106227040836099254711800042098564300902553927545726812393883124105301458171349102375256588772468920950128113666486979559794682192859512691398519765216086728887109506608031929586009792258796612466345094749326806766685699950365309889836547184455902825587345467371805036769439284846966736355706159472760160481828275372788230658043339074470018826043542561125738368743488566564467303521621302605252804474156104699826656732834728916229808541465825682713363081096120379001893531283467720260632760369063156001518513014900652032474180258196512799755836499613406429240019403834175489986387051296317252427376964967638342079878077193408413152937492962588915728492867018923218207559481123776902429508910973535649703471836195678054333524635810398754990176702774373010542477757499224314406873485398422479348377208251165103059522399293380127267888666778891989468905824024358366982050043583971294822004691871337000875507255077162344851048104788375655204052561531252925217566107898774823588310765966262913177285780084385878908167228937147118225890460356725993081649102996632699107313698338799588008686828760427911861243551835004832293946480441844564959822945652425096770478177039417879918578990507754809891652110823427753547777183183281690899773422675282988887652222204757798156735686117214627751540702478614653866302598705500816364992748054256028941848967024174678077094437864064022354260072634276338595088744479932752989287826262538565549750123409277849232270821918809132225680484975501336243874944493957883196132819526045137680985832628330813641271739217291959223942302009045978637264263558141985676020660945571454323469287822931850036782888027665725301930350684608208449706076693874413043859027977513367027180669255395229493216569312875912792062549100780121210181812175566138615359414597814902228821273084638389090107806835664400045527168332367520251853449047417339716696961010607054486244820551867813909206231402983487017925643377636293500750640169286450445753385339120273315075328467173009111760598627090743328621429968842879110387118371867091853016788040671320262624007344280840113335444595434965528089372595220549491679398184256552417432547990047535395607384735147838322027104456361669406539151857724877632148723662167363239694947150807158965966110144568788892712776275674260091982803442311870567139154235525145877525605198397050719238210806444694629598501431251581539667497433233012076143021104241605805458979936202509278472585927506323521283286209974453554571163886093790601292375261693196598474932549620787172822112204620937637539087754258686147305717025515702663763876398022163336902078505002936797121688350079914542809620817347819341056422986969160680749785892202892972693939232809521216842642714713332892965980921966134576698547973174825871432264846639219812999939537579667159645129578314480373079290740049705831846682539248710077046377284538360167241031247962535044385643025437175537074807877656899661560145440775843703027323750725958616879501658692950106252908586466967047595397120825230330916604152690851509575469357160135370623912638068729590760622699380862110278224033023818924833259351179592838436726834507683836949919762301770630936537129354634539745928988168720797073471791369492159076006892634720146634830382435382813859775270823156229387106013226028775139523047137555674033858429915101623977835810982481165311797802438897859512313895949902798304003306176168402201654554839217414534227125209883797389301967452378149439622717522459428400581328437347535635095427074326237466657685456882298434903797378411118624060812189862646561000700818897634954105111563195914920971725780520526108524079883250410171952628270986476399478094290221909094124975231604369496995528243325021606321707802099746002538819708979026031398862481975171381706943865610626643321159023781365992076736115815357408596550824544249195501008804349763209766066922211622519242542688078513408226316775186892527354581554488772383412636557493937837372152807284566842204186834238859044182373768929410578272640817213086399474530215251914082554211070550332658472845980975875176983567729032427056464916694375863484266252387103433954020024886712878328628192204100730722271764151870392983571422904790041358996462945854337628971268237950336773943021853296261429091298698005051014620290470677912448941056072824520314083265408668226806183749257738836263634401425867248185551061926810989501070582805879083421909909642363032887902326021535485352891084497220034822130605477837087252944542356570887724067417357058941166536163361083153500211121679975323598896032768705787325666025897137739897641720395600044977057280298575697273444739005417300821437552900746487151082035136957035385079485412805266717201161792020368642366779047708005818235560200046359483094684901569487925025331574016964704300879838446058109757109347939674390538007502936267286472145195195227607222303229892376472393698615185409467512641887108236678864000023761718768601497758450454652663334028046532705083971408716007719576160853084982069456484535472253898314375337186795647193862598889734453994394668557463453391310877374027480194732894586055317430876229916285323223459604775056522726790604554453089186069535916997362836482432910029092432623741187890309334181615408811556094336834532634372844551091163206533991550794280032635373785746521200179482636986892130747306694090581547520249280085210669395405984316999881040426149116924292961881508764049998155797154009278675987916405483634450199105558533451027414841270031028849639757366118568971269814861761333658721558492133713577834867025718767421566822265675200786232292108990710797207173241276143321118052575849043393594594608899052379861089536590534295339536743480550717783716618851694446332093217554639751681146342059246983792955802628565363105790640998776111327172029073177189789415745595746376816018120331735259662066977996549957557008028266285187900097279287297026850623357378057993188283912396684290709660957299869834391184373629677016389174231489784507688378476116570818593538946425016477488246495760457724062056643546016684164520769103403571832222184098121161035222233823851452805419434233067409043923608477327552855754992212229026715367273316967728371703984228557539029898033990045123681874106994493688453098305406618508738087962781621366229384129211548458182043742657663485653317897132119538790174431469507834790085193523073218027824363666209866484023773466704314042768423159351348220791812183577990466872763785740109613918094146437034347520349677781265694933222700427274989341078891329196969674184727625497558994037063787183846198599074318078816020245182107137985396251424013366327691980178757523266400002367899552788604461705118636241436142330942152356820661466587531685977529026281299834200828315855019806437566681921864790747559622028785305576233724239990129587838219405352029131086106662012502204883963208062896697193382228702555977459093343475714317799852383063976999151286815972355246443920498884336483632193554667279318930990012698113841188625621107697610303251052777157326184380045308880995649584839230300501046379875778077383934189340960623723626534886290299062644865754443854144446420807676105908772477677606370239341667197892696536999638051312204110299099385653048177443507562991250778825211573924975865357445485332130533094245551794435472253990333245187509804367417120889427614813577981276861785985536777457795739259674598258317422084379514183392713771273770502032771571144276289494596378726145074232322363117065804348738577479172886121727545438756632524067815089452409387088595005942157435037883240194475906760786380002661660719151882934224156722328391970817132523219435616346589385913684010888532775506556782577721138330609343578743142287527858196719922515550953674841375293729778064710993231517125148979550936197396927520724721313011625587189393404173716132461616405447522393220312228747092670589152605286971838431024195242999768676422215277924503406220941899890401472637816364690410311665066640498601423901355957175613974192828721248187845633526195593536386190083627986573096135754276875979292137195242477844359473643110882521257173091069376046302306005266741960020692532691685126790205254313214746846859893157961558034271483949794297461237153691256575416061189005676696977451834175863032640875526100827887547006029911481691019135966985102244766932770455638636254676489371286395578012681729933606535830808521601071277031371780370171908775709655979941522137357334685121894402969949504425311286360968773171882734028434589808109126485632434984393489819187986117312559483720724980752894104654932727857309466456316641365794180462805087408933227556907215393155195404952137751883885728024418836321232524290200336331105562957774032539349648350542556833853389598183305597687057312250036412637189878843098041162109631991350562732029284912202826940555462508046079919056967002914563695582268136530000641927369552940481731670685759204360355426491646015917808241376545769946841730535452880336044476351772177259775455082449988779508849621422288752715646964482535755407371572647102223083392624714138034833088062699980533200001201004796766685584605145660966505920572632221692059483078315312412550487599175064961786887573887854893867123885678727964301624223139070707002915983456556931064317210461579165860946270694517743132807702586504412596403181831481057625641115203476201010357718108695228197176796502129212737269920857536098309708503580949278678118647628708390934374144613892407965234686863632509796885172178627865888931717125118156202633756501859170546810741028989768723288335919377513201396895573105310444382935317356730795725589090500720398282726086115185286636376985234520425888421117143367990292365799482265367384415822401098941482516877138957709946080517967436934090698823118488675986420656827435738588037475851995019702139272917170620123030172915834643714926942871247209862584591597210392904130400532424401178679239447959020727875813854188385355201179041986212179504423350125301222042526158613078584985539596043675558012809676039531520140882102334252449587239798677372980962716557394249975446770573298327965830867349916517689639847025764174469790272013261906448659511866748908697478221793371304455519338617974835568448512677503859589266189873842865469599529803324438366690815706836043103486825966374765467452227228640492737046002806292684707952446628582988858512383085454799629379455967903523351747712371192394367586246939158614238158819199297538217583799193948853990587343576395341110652119121196979456160488793648790027464233580911335343722442830131336130662485556556313476076990558443008159771475530418061646072953104889694529163207981503314327405471790123590060419923267575483920097452283676122234404072194269805225241596326049570639793577018753692819102119782088419645502316197534418104350509816506842057150454411151419783059178434506987625309010355250978480706275191638629301200013687067659545588344191301621637531454153628630873671388067941085894990763502327211425712267141005356972730925126750568987209448433132646912522116699978906135364570397266181300371805876919815296723458219790372095324242659253969661379575525147842848448296071977353087774593083381199298520839882237132869716428294169018917408140376549342708661223950688501491138904477202096066894296693358573912115221918039291815402873244622323750301074938811199856366177772738627714348919935679378651206457712556963453899031720827920813380383055014065043718962355708735715714469102886703990914489412211040444506741122331613437108040537900441524538072337407523326114350610147394074583089149696659872718324475216260236718360314970120506914829697310830679418332613837628774005718998887433466611023073329624960618328069219231840277633399920355078936183767976789665216140723635297347531348882295397849252000150355768275683995084691464249966553551176500102197923339630730195250158842817229476890747529083697441483062531913192642170738973127759954747645690094005261079998099880806058127877462644751680610051691194372161682428876680005087299828357754773708385266154882480106854746160651710521619783114718561543300912497710676185455182154449164784269128973833541937213219173842879736347210259536949685853856850198041506034327160647564381439859549132466063506205327182511129925680767264359434349279914734047507041588839591238374646713569471945223320571120776500454135788719197788005554881689799061376978308380245415924818629657069461196523725864679293198537506696138118849948465290323276256834509089800787411894871288569841840192273932038964865158767521589670568885841184018259011263436744061516338178324245871356676667167235486594766021443266546880427300759370907971288052846063922958192911694348771298911663652191111854064601392343333259881467839369989481441268016530857030795080083618938252056236712880372148332537918785504427332026524592763358206332577813264237196272611106935130784849460972310700181515992553437652412555443150904482626123811661820316010526433261733388422151768404630838459170301653987235978166424843565851837161595440545795933389549794306807920280501050546056133179206303697771157822966666905437599801072455705589162949944709916507581274292216782026831888841035663906522421562620217556596131247998080435886155500526177813592890413245428198543097429071384374857576599480136881602963056181223074938084954574025412770080676186698157368241997355663519060611407062157166898604784694493458775451941962663819353707674022285641044101973608821789166452392574924285566366763074548881925284341148783510589362166215367348134473059975326352607575023284312949995079647099784470852681264971058592722878204330451426156765348168191772532213627828263081726079138740670460882325732862565438100547863890738248868757863749459011446242103655242809249225110501501150948604928264043322859654749017483252309624069684232543195470405612698612435505782897062236099844963262551133077745975129878925326083649397028873548040533243882074404027496942702909896653958362934496769540919723156817635325929973888969140218210043011100614797075489288872451356037932390433629749996430122758952010917481024755951224224585974379605357457171952128148489139692598441117812705794479069350358682205595611254236424002840217211604510954756363903099015601197288112966684232619624425869406994154465667308742235065082567330421771722036980596796982668828577438935861996905998633384651944401983506107611549561055147132499649576008688926680902542078997510580735635003307049479610281628192968272708735834611320984893268955059200259786779053006984050000731860929742445421967845427116231389783763405264603563823644516671336057223181480688118709484762810930361021624715184013881951917883276952146817594274791641081565407839974918429454273254743758577370646187982056470891144850208922316571386271730391317067474248093887397128739138592680966755525903083454275781232194554782717527683483981332861066291145442340658003413284971114537027808861808923809406976661396792005502893108987198604714115764602053280967668995574456100747695157370403135301489878991351094804578174218335798808076272154969031098662764094037000076876094666638611048007301080441199136254129457504585282943317267413703083571833252774846745025506057023919555255362249814782039036257604140289099601297486737923794143013775075308192952309664176522789060361158827617517672566346503219097671286832173940582929304513775443297238730011264343900599746504705618393457122564710356211882055523119002908152259275228269026516907245968352521661360876611975880726219950483564628046711224882851461171809519689540697199552354247522073737327488991688521597778017742028837920722829357934809052415302410464113333703757576542007687019632728877630311112231806759676406553809625881303683708363720303509583145140575641935458381996575111672074409018339063009085246283595586709802602567177080728936956763330114243311926501206203712530640984065551664733346104262539970438659552529492252718670147571107629124229832369580731028231791065342750886920330629195496863149526159533276790974410005826865325071086184338782109562668979865168380461193090129042326695868738185617239726516030114179863536187344924719626859746116109165862933965652958110292296492632303343612549248652419414803623070542550926814864322436661773569140673442977456342100745618477430694997675529193750540766029901327292339972696316368162997702269124354938901482634540434161106576081399486970345997515238061575615604561292756064475054763727906712309663309769671794411680790135889604867642785021057878206174929698993985217417634521871101232689107692329052504967081438899852549278174210564389279397092529200954274745470049172897718971485630301474079677352129905302230342649385477731722856474843851742970517727239753378019536855104800851539434752630257434845636557706346078911539197243052744238286531316968224403902737846861060572588573752104697856888173646642888358492709095702141349230608023154583268905805678416737911069003999649990752590426965216585310790494745773845802640232025595952912731928842141856016130872347945329684977125853938405881255519672659206165592158095850806076626413244460658942789576505912014863397877050359556255681784167520920264974739764595777989191721503831423355071878425479116198905380348702884504709506607592342985869024548946685422943053417948585511348582197195284130002923708514325264344551407216632000129678167022986599334199421003173852613966163080259941080074170025872551751084346243635368071105269560666329594567752641136321683349190152211284223457719802143517677824812040500697027030512845663836572640455072802638799384044572745204150755037022483974801045593598067467509598810564591667883472923242873570043289097979987222624336662616965565911625109125025744615038628823700026470265015971876220713007959547422166218517256212341373949324506828263502405088508699379569615174903610337955162562994646425880494507694261398514997398033634493637248902467645007373551668756807547353945819004861314352733448358765664458258424917273932592917508252828339828683932593595541231790722272188486221535036434049780625181719335013765559750386510046309728070063741408592251066391602385768727407053752749796583353209361545804705623525697820708792083032583176128851207173188025438675579310482356552416033138918260599036771494870883312291899400406492889860085050987896836659053648757019267815762985300790588709801769397091705057362207544779203127031780048016473369978519764021028170713510193484073621795978569478916672064686113413975601217081114596534093299570640770262811725796598821337275378727343473612264855561683542718327487977614169767985184971375398598465311045972693725508590729355782172248769782438453215771418201606857138020224362082781149648456831569060890121580655164965790859513488787855791412217404565158036727826699407895812997282243211922839806357004654887492359305121117579862321368537206781004545454393476600339908790388363134909909058256294550108850339219305801560927430174841606132548191991641850084473211794673769830038620827493291533900295070349303264050146329889156656264325656081221315513682409070716666077085002271180890962712423049103021562532273890992070257869747675380543595442821368651227735029590571037325545228098645476368420465847388836995402661767876539358007321638549292869363836772641283146713762691486042478114317895701367777673491807874206212307705997279811666735411174179255777704329042166272508814829603948398303865810856894499051618684920363364891920985224340254245439291948232774944510457821260826156429296778925481994075323446311786079437763633492399263936320865990642266452943804606206146323629674620890926947539030818417591375114486963535078841624910167623800967073144286669274616452961647756382521723226419411873405634843507271667064476261245396962459851848133943375856146467205611445423297789911794620537591068305217165902387395715858635023213979718274661520666822874259616646316031348913944203717899365358953196357767329187361707498721113912111907180126161467189822389731221535379193124871515303952034424885392353486830814706504624980826717155778674464091936258286773853460012020779184226523120367333560238674047994023267621648069272713124711171846640501824288663758856629019369717146405925575797449778509045723635875010049650761186823571987697011069995457919428331733324031204618593977276026770802646227736288522718559465581158644938146257131399536991025953455867486247616564573564066078732094208753094768429087781730024826869030512935151646296601923174876299163220617862352610746739572997551248681545665977690028928787068115356757135651077781224302811688320964670592384004984616688003235712037049386974340526476074442000412676449015359320976738571815957321347949492313795839391269407579616472177370457997480282871532584634720779261843346999493445279736160867733976024681564856105431192649127514484237213676067437210848399633871012492798680039657416204464203693102727087579284036363234688011696427187524851277004889854570992154889933989245582473422168417627288152532747357282975780969773397755748612451549278917241423328380420835761273005850152326650369103332871847213818441847875161415794754569773912873125298808832972188183494542516158039153784317144654176375431895674733688084367902515941642628788303685567866882707972367889829821777717528233350978912879199273750119074756974401882013110824512389647498672367401483122488545226353630470979272590081462255924567189394351957414403460159149619686368193232789597558386056161045268122438235003874794244360558676172500911906075336080395839211057533000107770164492148198316264496624583209334371004358109981928020730566403275386217765554438271935468639994803059568048975647097192051657063110922334822999687661883334310522883562596316068115714682671968551781490750172660380210314600742732972131278702209106643400400616706035159166218212990992025317295501227374872212507770758338372224114477120732033243899795764460142025980804960461756698484773613893143014869305278186027551662354358637663824939391376090136798517876127553025181876285154935477084451612080393391517832742303693291136695727258124031088107521566329669843772918794838205821084220505538387335460938569853415448340897632134321612810767420838439977577808594513402834245485088704495271252077188078882157107257818789323611896290193376681524236673429724922826792364784113134395220231459076115444903040420602673195441840642083485889149077595639149537884815541101552532002131354024813701138933525986776369912191357230376027769712068778312213758149137729430938566842627456937109306074896597579033512980233034604433316101456737570333788273687957792334534212211227878735926506203794542726765119299620613203888845831507450295230064031417576628417703432838220714769196996026717359973838157598045616503861369904455809632754213746331408421632118334333638640728641242612369809835533491722492525878467363479494723430028457859944646373141292006983331232112121582955004867098681890093463139313692374115042056593086806966365421958962193687386110731548772771764968283786877644868809997733081107343265889128041746567334755119949132072453522311789991842330843396288797663935814889472667103048824800283653873389474959934107309784790498150626662579373228204531248190211553015943192666617312576442704846983453621148790368705841476547565088588723177060065582643652522041672765579046896862691345806297642380096308587129373940730204740286349449955171636605372103174596063126440258012127645997125546610296174003963449307442171868446235762814480386468389627403785940257410127127445738656988760366571913910865819747120280969218451803262328548722946749405165260774520776251729957188477978778173829079037957847763311059344791095355062959252198362465115764288012359715965170153361919675461436559293737276989549916030978519049458831063927780669043583814021393768168746429809027335558438433157302728979891300036928324787600219092872655790046939742653155705410780637452338526300006386436431160214800142128078117371026340211853961346994427906669331317939550804522727846253379361412889441900626508241945161227499506358537806163307339678482807903591000793876767142798786009725882478574625720719989051547801739992714733942409911626069241568122136920868150813771292954447871492593900718667761179230437694322731142079213116372131599516817576883406256359934069475870109140098012733349807595720157175385443949023849011702368970798668978903329128795260430244094771629941521593887198671586370583976489478045578745945446853038305080397273182229108561109016390193251330408289029394305469847942692185740332168775456896757487593609695110283136331290934129088426678346048001998002235600686414983470622490571407391818331438758726802605608228823039739803273366272280929877460775011653909237408565712858960958566881145784037122703012614273334255390278447140443787075162103517431648215063273708669916519579985705865036922543859880569862751659337436754827147477011922597989892334904259656734358964408745921001181491327146296906699714571521438425422351369877393529468638507480178168111720027552268746668312722857713238488081580936768312115937124291664338812684827287879810597236952240587039359271709166950095664547800143131810363693749497298226064282528449254672164987867050718044868823579524142631830291751693492182673021625843410910286694956479621479060980356917344237111301680354030016457863549419145850511024169616878737081239090448188192176357488252063783143432910754314034479272102876587185762565046649789078855167353894388405768645685730012984257161244328144155578876334186728266656580241854257096329213235819528499962258020317169900527372797362670038244350558728359844371558079893490858519196454866599002016009694132931312941047660866242789552218253980246887640223621920205272494522010183294823351526541607312765800704220846404323729291644094821368808356813550483821284754778772252998039335930256235358765480147293202212102885884218310336184787235391061648157463532475153713967827846214086896742891661462372412164257620412401879952853464309509170010071237511915859590030925316314025808367147390969603919196291138556237750434346282607423422339741915243676721364704480672379926115813599703660761401307875888891866973067035020326293942039328664475962326108065624543792193838218488045663615279800770918699117574045364935359354811867680486365869064358411851042614054137656892544737511461376722236897898329891618235996265330046813303339586157927788077389122292067210129611032144845699044352466258727308909817087136689245117457297318456884247570623284352383369761464901748851103248575088802547468455689783566984916812741544557531865515324269154342183065545746168236337015256447284312300608231375797678304180241026010504315216535163731162877918932914293073132476833924183194973656133419364058866152637019132905505675161736264269073058504289366186459015421046410528984410848733234095059650397204931957902269761146837019665416895914062801789955453156063905777216080285008721375154886426079829684326952622622748305287049830643412780804852879386103383425499224672782223305767055915017234249755839489171876633155207701160786006805027648079006137567887989936356454208760592918266693603888809706052123768469701396008967153368965136692055728067226299504140220009450039086452845983261240807702987563677955400588042017976321056090893798961879625644026024398943597501167162185972087252570194785759051590664220427848672544602032308467671601783654044279751088840061839734233013478603590892852883273362669810559766042845060866804341414412134190789630256303479826949918914689710516074612412553933362439477739803913345542130369254021887637550310676026517713428877366698685507954522471589424755954098079258033163207291194061508081061882145050275436420702643229708411060995857816510584677869136181053702933392355157361348633840053762875152290453126872190366979832728519515562724757463659155678527777827856337265320323533281845808937965267190289267887900032313650304782852609646419718200060174591318113747536385998878986057078383457746780946664666717089639796927872267384582812890238579194146995583429619766533850764705507710729768194214853222651087774165291224438009698393298116032673421475937310871912218162372585941488987672201246141767468216969147513883478703997793291987913222591054610776475071766685408827753362711637293410255791588947159069783142911585801192217768986203207343363554757545057714750974204746971824819670845232189914036481284304662852066000344908307568681095356317689293242546322589974372154662632467716282985413631381129394869739725613229376179451343203808024503754225015772292223959363437541084769538233016509636211261986233093992018538491890282343148766438972998639838052617374196794879005000549590503454961588013806593902423570219914771234737990255177659023314912950595920092949733243032285922913762633752609718789174301498231088553024326549106265452168395808859993353198342403600694054817047707031668365179821131684376523415365456264127993936783928327637303906471266166561745901654172145013786009801172513883784573163565635830917923722623978876089680711900485208024342002287000173114320594577480361353007368852476975044389371497611863329903304769265775372846759876361882441736514785645508684620945534689172983435438367055263042937495123695291593238337419772589346077535403163802195310652180233729875599023666801376775953230207685401328538854255314964624987548235845010840676154362199664103460872126272866553393616676656678082536243858754996151668945218250772210876107294691298020791853213424081312113179032500066367723838584959796288178318971409260100652343325670017847319064846057563911470394518475188341693541153903626712454855682089048856090178170262719058480695397118604429483412620890111818687240398574129551491566669686685453471021510915751629933134050270327912479106896405641513794478916431998790417145797962806554972750187654680174591933644007433985038401759572176399124586753046075231537817381263510448038525858766367854670834815839812450117103775689828753100328103765039441465427706253837996150046065831551229966157782155160044139131916580387678838643030716243985891019460343878846381619643619435187357720617637847348414328069445970035529546931453862308586044069411309018608765455346859111327851634992358534310527201089139021726791716219968793780084783169774422089666860394259897432160071741660026407848165873392385409292667594769219005314398567381584531703225270771971470271283573880004694237211638877040306003929488688017378066695986735180361692233494337873935209527339446184563200683775291204674026203122081351566063845266680362904494131232527359172292491799421722363958408623433633463588186086107809310903440037758875448143268514858276381215918104720294766404806551887854839686710702320544491167636863466895600621559083193510498408802865053085701541133468912420956637259777680753045810998599725707615996587583196968704878627892312290088013627233673492970488503472516314894267485497839502583342253099690509053650771448036202036365374908196448470041537805769112946827630497497123217160176895989908755075329048336532106732490277062515530863853042441013309908760096017279742126509681156999183735295218354797766351504095046751097009207451783158643951326696361238993222308625260853811962005296213216572810158889697084821459800344912456222268922112741252635038783064355340111023676144816642680061247912024430963114619238952392800368015010415700542780769777733631363555257679255540316453367003472942660018741933737062757471799149715233525952411964257410770655350253964995332188424440001373416638047157456612150584346029118438209297980045084544176792130821198579268102892684298256596924032832031333109565346415646370788523134410540635966057883962720114015291848888542705778385698765701963707362393840248648671158723945649270159698518868755698806511381015675018718530547443796505751562235354421519733072682441476005438100402073713411452535011589345575201597190803296886419865474312927246076312581453020549150769988990383548268972145919035117062953184383584695067276369465359723869029072830681354971462486398555588571567064832430534540883767234595593148586470812229298066584947315996605356843094707258643031836754209612184295728449292879522853900424600679146912817883237309968932009741989036969719998706579820688588387978792877573953687506954070498329958454470953261990647381931616401093576258918928416574875814973707189402532043237754174391789652750490145223053000078993916377324061380427693291976834855375924324150520273368529441584193212506448036024329823166633487284640296281230545706994461584417232317977984261521669548684426372716911084501059518276974769747187276225782408167751130081474691364018879878591893733002293539917924025276666206534081229901801887447410912523329131062497546303791705324844129991409362490466841808202894160900396429369667430896555783417932894179211887503948731644405355046268941044719856405299366850100337371392220924718453009936564497848170123171625030862613449222265373200084109810974021873915727373003323780959182023168479638348963950513477871900267313745110691723200574745995947022590867640190712861818099561432461147355731736992933470880075757528393108528205631145931904957566080302874778452485151044657780780462552593115582002121786970237135859012538481427620142976832909705021146761148280627752834811429706982879421238385783163404888265099872735969182938656577941468075692950162977881108369307680719693483914605388322813214344517066022193753082554356738662176958052452817402527692011923375271739081564963532408064590953531003692410317867190046043978270771349613095833881454615650024570927438816434653188513804040293515478501070470924040207560227423762914480324517246480473706595101405818239642831766191657701537072200087097126188774250747404285163687402685771495510546865567462979274614370527341801319005625218359679052542943396816551321026993218189196261004165625065505293867462452162450499816658042022272143560341505540322836215151940900077509943548429439463090287243822387607112293181060697324478192587630988872394531466200907042790854650875441023882066402430795618280382647199793842595023999495410130411544175663026918745372675788878041878943002206358903911988178642080401645737345107400186724105259472829830133785597726875363960346006561009885886484622730978639064179190638947884197456648416668416675228496661305819993726945932400884781429631960742062224967976089633562472719504504399072484825854812050429814423837742741119433569543279421522430385688152574108233779352650967434185714819469284760675965821016260356614941948427015121712307728897026310378628283703693983496056556323775119740510167931448496479133157120861509784458838399432594972126968517628255809374765936970811713995175480391546557191237079790138127004561618450346487157914158513205334580503102660443926461751894750757125209902637593096866421486698069155032746386418498067605468364008445582903555208901192074508687610921200918197629046448680173232160926551201422896867771401934466468714434211507792784719796853680539486011427881693719080483759455385208446189955688085901635175632309721686448500350215868274160223732366569265968760619717674123022033857415988154562709108338444412418486693511018440982573483596752917264999287184224612113022657555365443314206813125978245681722022796269094957051538066634821281973995593684172928218011006878762824497277621457329991389130119205009925805404661276680681094180407761793847933682014910964135343714470323183418540572482937561119947024342617564532368897570481003507109833540877417330094667004014893216595287407623616033676477512382097541430012030019151751114851044816810432161657823484475437055325816363138796728035441446364410744772598535337194420054280099431755748970488158114222290380526204139718450518205660169055425960908131903364327261760867113761871438215138840134749301984240203954070504090635813039586209897523638435149196203823289831924011658623641392113844726499087528094761955026001264876517179431421632953300246796648354738132516462825616709579592946903316063544789362704207635708613585720070499426704386004249158792374343108576471106651422259328906097011181846294693351914479704347802246090342589119825722246648503836342768782947417201306489731334308686798928412498624579853944751155585469484984201742900536759679518543146257459816151829975236714671391450351354301399612015599045125253110041604269712528298792092942147914211794808202864187811176657014409059799177568225079049529999996164022327107054334312754146976984695132486530579573914575017424989843648354285977640564063757488341856279426496825216493957520283568800065297015957515087489701707605037388921146509966031610339710772245656144463910440919636578409528281848741988367159155310753468237382162758123170644360752651889603771793220841393113277745543202017030541495036778638521199819103376666696393827157785032308789651101531528815189964144163533284007908230323470338045619199423978438259080806434446067763971662263438595791457267048081254648502475711837713796498093376227125728065063667102149836206117990680516768669940008683122723569317204855577426806065460922784235234010572211774796920939914196044584795347544223528425040421484132994960712871056060752854880803031373061353771698823376397018677961413379310479608104577990703363637980000134406503778749575890169033874345193202618044513150204155876119797708926593153183926062169218883922732342656505679165829833769357993553203713252819426032440105153254796856263351364529840990948191382618105676709950327971199405718324204363466069253962144141196282210318680069210355586222181752199885748364231305017141118631661275481340619352518762483379072311877357902561771139987732184091559376451521121024209476431947156306496256633764146600502924816813151377455624373456114713566963798248220574796564509308957299765625297177017860744730634813452187362837964209162608169273795668567751662315174928256497655698962084343030195460104561542085874199754806952043360232419957724015378812771740400486186046693416937274659965499684534129187486861255300949306837635645812602482027478715336251917740243358441491825794442911078249943624214290895733127035423054358034486472153125617021387418508880329047346536543347410584467210466615054397079237265034737660117860627909731634049239470655800115097305074344385931502285261766191116871601750851379474710236999916094824681885686684030044627856485779756900170526660978953450318788575290130642027419562190647701687062419539096894117938690368894256523186123574171062334084844320618332127704019814701384958226023709781246664611638606366832756059382653078051937159422257981233633863825251413923955082066840672073485436755831093449551122662151764334365343840016620922487937354643069952992484314856132193832852860733002620126806967117137868793295703324339835295430947211964111201778671337569427983126783059151702146673108355595707435884277101029330915712987572362839460862837186955842659503951641058858145120041041593004112437695464368557121531220707523665694834580088336873460018023590524517587595414225854680335562775364948420700230868210851579260035806265644770013479017324994181704023005255220624414807421227585501106902236405506767912201056524526855261230383588485574778386060239850078057961829756024918078655950886605763138274615584694356003390228974964841995151353132227636664753452226647011863054386426037777438470044984125924588578965818320668134775950663278890774913146342542418261496807011588115976571427066298838559462448205671673718957187720141583829643967774206012264212686532037598608300330835759414055342293039998822301001470902069070059340673313127128872448215197124025976234266976284384337728101284927878395272999338228814432113585610654430490848599517640931442573806985479491338873512070532134438511218385519554068870517130520338906525561492440164436154121132077050401072723147958974161717890684560813404978212065618353562772145107052357799817065566694059726226076208663217163704545706117145902885930573588791040268194107702754860546293726792296000893318265472563829905541567819217369677368415886717090312199311619511105898529544904288758243322154552152508106314566329513499107837695503432889478565246452410586394949284719987421433613887544748498495762745106078083578395023261977728435848736828354139372769899544455667849692900385557314818703028993935357963271731184478373277899984687673852808457032673055087608252471455875462223029249424057670879532024092280260322595480434446574682190070081022617696800875395312043635392089144255409047774083795434781434852444086640939757060771593166735523208095177174629649166810854342348372449565328603251341377997290886478097900596515041160209870646256043295526051568774486044061528192020261592325973834626409980917532588692154260549380856065677230722825204691860346292626652330028205147710617415985473081089101596497573993340840929932254649363556889750758810010531781696326763035287049542296000185223066815470954665532418781044741600711114668182222121811253564066705536551865163148833075672546373947867002407285868272637136882104468542458785924080460890894178695837978136714079714697416241991142553859941460839883709659960145336071183261723535657458678060002943276274070538479134390249355029392878733274337580472598939464270877354294339219372825246827224137873879923730270928359156622333954759239322357807241455053207068021309661582659845457949694653548321024259971708016374005044564128126631715441744082579076753635314607942879021071643072344586149348566645899367913462525363934734782881027937181279708672889501172969199415628725837712714809437722712910742640031871645687894591689630002900692133670209422437241134548859507972167400134694144275282246487253902549779934940156764456621303923292821764028183433865369453226494103253282830578185752904749255290153989849197631174739033816954430698715604568291085148795443746037956206589086046440781477261145294388226157557164555461095859937652792784807496566145360790615595095749560862627367580355305917142925974708462338676708735447172634470572440355592285561948773189104694799271388262615070287521149681359927279710605094944101458856458864826283580721705519210189854415325239577556454755047333633372733554684344433508089818216092315018636781946195479703720582100283564407395614027951566832831449918222873687521425505070350410078185528404037853318687754300421379611700407052800756608111356861834224813768259180848045519003549713260220534939261844261114741742377238885608032118838716206312796736134085985760398062730568612151423301478048492300506489652598504527017634397099543562263329218712971900406094380245626346046571317262671217157451912881544625586570421282446770039283129056894943584014640479165486982053504295720566164563760374168474480942772676967657812338464895429785784840095207424333316609342766322542186000675393572539936412920592964591452069739001288199269089752609702730263590983962667601918284845597444644688505711767870308308424579765684348059038607648608277229858909074003712030191109782194216807794300021164650603883412593243825659414026491613429615134192952805198816546472961105234765298582134288976017604465117334983168235061650992875723149829844672913892850090001725026839689772153565296963854233270537116758475371689340118809620125928580964216462173384747224560579799192510040691462793606658357284851185384983884133339902825946627551016082049445638269848788631647414887579493354686677795354218062577106831762815269338063976165708848960405794950903900431320288368561820831003028578433795227114688819785822140196771232180544675119091301970394963776508813194358192374973409656545613607075460467984199538889936219971094443127995634427451325213310098018297066012535411139916945838383202999806755862550395055638137287724027773928986259843793058661556407327815707113089380142054290164041433993828910680855457270548472703605598287504325902532194311200227829775191127943559651720760816083034185257248009091965330094052646596388056181660964291552768792222727151874701984815833737952311233182089339388543727968692158916928773643462708809286988388953978619458918228838136337330395639584154332391160415997227713298076731270696608692398633914100722198872708080393867272800217531209353369418773446952771929299397613423944029188836524167849252039191154255132254665120344139300076299881421331541067031205376864085617641787063711192657349880130463642051279044976592010063004921141045021926973103711901019692216807588618780163055969260088039438340346331418086359732719744927322037086750513550866243490157300460406825298803562841759299828385622199879301861007749462866009473587837572119131697688003660849012992420684150256347129716862372652215337456839150614908903084286593085115518016032068659844226461486612796295372905889911158223389672797155206677484904268978607049604567912636982526351478788776175654394215852818909550243753256489945301596762184065750758449908619768629410338609279690168422443030331334942778408082984086899111750870731710448466834500107048522606053167140998199215581251752637249154996154415411961851981321502618294285228852462364251774106670800486778028062356845820589323219565910261005370994227290341076351815739650420726785300786081733860690771292073961215588203160849928091267206469625953329196911338386829284458236216097022402603308740217318937702097613112867199476442925095236146289954604712067823132618696733216659404758441755026382919887557715467138423495306715226749733185714976435943365959187183563915875280102911920758055777577476920797727977457214811590840007842812115259302528272896112277403529741776131669520851485107062177220241365983752646771127199767554654444172897092675533697056137221059073026779413931819458233645065181067834677405299279251800791891130023584594724551402511747217762892279037695750337847502699855000455732467267568716314796227559653649901371887825703916878802745124447293560284278175855002295261750389824318951226310533255336745768009248507607496543192144125726684555759910698231547186331025991014413691566789756467828612184712289416688574619173867635259537909642704142142535849769501563850165715099677123544144540184015219653536355958663130726630052046225994657546380585180379642571792814188528893876842342224037825110176631162520840574999957219915350238465694522328258511224461940989725566679814787004451655029945756662039781754434224656807871196279112635332950562045367962122984677818249072180185953349613724058313204298480595939225507507076211446449319691808407044690632998744236633053734129241850016069265990946288403916787197621513536372050902959449796251473782784428323772082986351992426915029212907903646740897606268108412629029113349206808477282158293594591114003037825216329243709624739314559825006285373273471390171531838782463535326198680920467142027268407666244889842633006280020921731737403258339305035518774552505862632709047326283598621029937041737744827841310754847405711602346057901335323746840526551874704716688711224891542745625926421386226802204917794343177194204184586801364237376421473586439290960263789772944592524981754114561331588314774271044280515012228659314901495256231868000847541641225396263223689524518121879361786385703185959003763023410268946073933086186080419316781449841127785902901979091081406663652868262171208765263073727482045570625384024273901387913097197277268111570312606410935678078635612962278973987462003598522124575116985647054114504774340373516589936840702701338041408251051625329146696963097346716562421478944863914592304966416249608128279438648191308578024244374359543046032681467963439130876280820753340240433181243500304950785662050973719498726784634172759572364279677887751874126678380546853833914005733723475162332857496822204551909517347479959706126387235319824747603893784733900069895444850668477462204703083067512829502408557624512771208454615905923917791508641018772660588783696131673255946771398876040496382630058779834965075274279922464852647625869445132052000478868448684752203218013823121023735797587761855256693646508070418689417352813673883911139786979165007809442294846069088881905339424205585191604831477083130397101829331338731204692014021585521622842691815499762808396091583050007435073707414405164927294640460039767971582369335819202253942760360237952233876971453672594877352334936495003286630761738630693929749643198947163210463373398043970013131872401923272340568941081913977421051137583054829014027762156253886091014753860504948222749007053015507570451310554103213924318414861472879971668215915338112073824168782083945253848166497498760432619394849653404271697318654068353711979011813559006668341891061160104745600649229003666174396090627657831868675348204031388743590141402980596255660236439318646128643033452643847733101177416829011475739769996011722757881255581842923616504812788708720294502008585588591246656829198952909354259701278326636170347607852368614170721351001198790932397642035816083410264853775543702853925466502630526743977752231087174368061651758547720868583001034431803269576195625619434327298128833673194621473812339531431965261704816130962980878183488737750318818134669705751958266276220677889027677252615567356067636950429433305325695041031783064444438513477869954164842362661994210612324223234801238925193938293664256581896500837227947958562644789851728514190150611866196998940460518478258736113445185763849500914309148582039322368097751615040044977684805540486567407572942203612218257108848693748602506871049728587284360423054290362818226266092128858474767371821158248738278580128099859782801180639619260210795117898437068475431959986566194018456342417753035201372052174134367306170119435232400254608329202963550339142835833358711449555976720872121812033727308524530916607099148365915937939500106438196343713084047074915169549593058757682831180387811217428190207838565554146999989734097974718948003641960984290413567352010962528718225672131795834909479605119175773635562660826676812135136007796291380676902226561277106291468200763272806747255082381043649327340260197769342197595377676140156218872043446058054520423393866184066322213335514265185746004260317450365208964621616741735028043392195253337401109689440262428041357673331888658141178237274362295798697888374962705464542519807895348272561317537893456086710823773398269244923824023874233021071174216669374992369008890822417073608463575278811715533014263445862529147911755675685393351196089456225994505127612709568920748323491801307165643833784497000991464185960692096078306881489216676685711033966132255073907574634979634941684380052756117859525746356616436987142870031218681426495783642859763730965421952773582323842561005798053046323310987320554175475858232759080697580833194309610058213558842749288240938495768942116913663254784498072052147138650483414131119257889456900484020550558888746972073491003555807591760076818929182339736261578177507417648678836877181473222014484811123113673688946237866915678332201780341016520388079620365740147435146709025944187117985736249122367011891490289475931115425871533074869882683231359001048162924454831679901551335569316236757148964275714472224983823530941386910114489356180659703342265421071310127477898547306218093524985309634361578692073936229021656830444843182819113167445416128734474761722958006876690079925217505769272558567450280693357621850901573531399596952417601616520143688733089177349218149823604826570099089756754463787631588094834396355786289314443849970756723212528609407123258201323048984210854869307834688593682163425636486918664502801945846952580798960633807984030171347550363090974554041229255376683040636293699749386650353960408263119398377490051775599181757522750369039505143563259964330713007912255575779283459067041790424041173332836155778382384594244627309235482277522886197188970771062910010212736527779379122860483807092042471301050754169972680368044557628707848136212701813423449002616641028907066752389212311248967994275189343941681143595899105740655510380505415898593473273371208759428012489479899117184672856742547628456292986652803155027903633412193348381884886235777480217099372844917359340633755759698113632427283830409979943877557139668551105945242753554919735461740987789261308535364846032600945323174269479650551342558732532563776782846889035920431929036640217011626605965448452329588866115829933791126255011490781284264698320263311484466200992860736711055827171900205466934041409560274989927543462500593326883235583069442054453481118949274899835897280568296841038668772634406724723906122011837037466366312113274901587079779920935294539671256850539136982534871203821676654676206761299425615931927125165293470459900552763613408985564622086778902658358181913079225181911510642798915556640148143407488046171439247542911387090116564827633444092250679373866131954547788420544682060664680873920600013964770721565522634143956607279117002331145004694862472433580955393433781246426109042278646527958953695136076659646146954525845403470875674506368025953082069424318515470594890238740140362605807203038643621212130519295328850917901256226164174856108322981145393785801466715258966748371178090821433575703839172681631783109568339591584595356234601622965319625515466348684812358167790541559186422851850695890001025126138436114941626490830011586646500475625142438918226378955915981077978828096838574875931680151999847381640818765885681524525298594030207895705139845298301794681234886940266562330642479706735577413532620833219728017603912463695015479587848354694333002244405697189035427209907856716933855854861201009820067079621410644811474768416358870596770976337672818515850534751404473390148473638254941065900404111928670126246432957155302695578324625253314995709331077140911945279455292598524698201044590037086861516208500254518149287359159224392885676495371629067449830127260725254490486288266202990206345372987210497406547767577977235155115774620627382674193242877729475705968345106185588978796021568583565677781100471473619924363021785447972695324393638225716872478444794551219364862207551682017161053850936706025129925934105043351181420839039618655877034278798790670160809324464275086371386222278430107077126445070430694152530884629182148726978035218753713259658045739432479814457901807388289149244711759714020065387951639776571393887303009684799257334097982700676851565681510851246757693639105880690065943676174936882136261223917011460162659188773395990061171225578711533085469103314873359603510996655403407492469956283375427933916648363928276386184745675617278778783814680381996897736838142083960556845898556468776054752313502079025542561353644990146007150583435746466104518022251473551966418506559966214193030039383080856921262110908794246204347700365672332495843754231509419034708422162969447103855774753220584399295162423980404297380405617007983338354609474692035582236990349904122802158765794455032175622555769811601867818017249440836762374461193007951077892828174990239335202244689178933403314176582718129495320689692681166748520654489236932499619768716182526609364110877479861398273648568393092631226561727742883344893181991584883028162021655121668288138532707102614678712630610146538722775613997575656557669938080284657532721516310324666403833615290096625324732655803505005252691682086621190121414603114219117254911642976650060519282810373556745327282683700932974342247189343594960928793614802387987963909279728140450049228119307987219082638685208777084692971742675689364146177974177152901319752251089960270302129780296302861891622481479764257921144097321367420009096364021552486547444638013198367626059261518513942723005039224308925432374347559960436115599886240288411101348684062211116750728198057005346190435443408806830923434779237388924775510024006286980653091585675521813110238673038959276472595491417143235135396224346840584668904234707789971865087522342367760080236964268993060033621144098856022135603345387774124840806076623641788584473505005076462038790263100710066594458324702521788883914800618179630910115525632855735036316050854457130626177623090510268601530366257949875239731566912761091492628604829532229326880905712898949309833926845086804553429229451811361478336631011097311936486607643698917036814628704536544443650392876636505550030611487151535560545416883665814070261786370048892680112853057743142569862887734418232222336783155014890143297104364491779536921478532495685368306539662331318233711007192106796618005148059619389362533399149073788463574566180917865522296508351237550051936701861009342186111322990663629616209418846801235452193429443610602844863931802123970980461886492145693239587965798480720648723055669665161894764222532550628316928384238354609554030529402623511290997375649052295417948849148658401688541647748912425596730135963309493215456772183183264629636555594883004279052538367694521208748188100362710453672648128379646593838842394338578332065953622218644947048597845124816384072710209402852282867901772170553990499690666022041334842884901004616776621363857777188875504709800123833260026418318314241905268640969127705146927713556937290551220491883708866569825452319171520264476147019988761563543233589788375542132303350067519447425638791209076340416204965975809069307902526415272959293489300125834745932040112316660312863015158375023419488537713662223236247293330688283795024837330042015395846509264117329975803535150081438379028756706943377206146233320487434080297467857777366634358414440315484243132902462857345723651179178751114707808395637038856102768562373793772487930757827019131097286250459283901708695247244369002697069820612253294300050586253733277591793991436693655089177871719383556946969399320971141624061754887511633277701430802311957333196547200390784368797076665380981592396247782820971139832195319767084629144028460982058762492043931224080659119949915447060928904057875751113378824664032269076750399212653751618085386687671619593205820717729125848098553147867442573924763044727981239561656629142160935138902982223885251079776867852758493776883389932408209285817083734070910010440045313453443936320759816073277327094141399203281262069803834140600795800361276510262142913100071095409884091874273983041048356721686787571787685254896494717987415126056687208277615934604475435270707060165745018280557032252681635246423494809488644336327595143775818180439122994500496054547402629538677637266433143852496008494025623331557291770156261214959221857576180616130727223350253479553479623968896910537073320093018477305930065699777513354722091325636285047475420991647254283745249424950540799051204821326178401928191386586234623102692165662809366671444066837082412985540966019707456683985886724594842051403471189416915022942331167223554450724781410764524047351359362559004512620546774190968463065016870613254278211524605976544549613838405536315200517174713261696173358110696523674584845253147522117595048345187270623503650971627062075522398218967296633143748967827758205976824113508678687288654082701424823476436604924462033440126578189658455751463870205946882897178219357486226582525593974799320598336124365129004330254794157474593895108391111937296805995626901435541448712925552259486367370046873346061244936990150869602459897092186149045893918858846286033372489828270181934145474166003731170575074502798316790724656646686141472653003259837376957247627570092837117167182716830808226221566514107541439260589348829290521788617922693719542957141711211945353943832100437512903251028393194069359175418497745122591571863571858742768653297518069619137405569324448100051053323949726194324205356580241749472352475081978462015725418305371533714716876547827782625565017555431744822124459782877856773293370638418221802625528946954960517246161675090471524836818231172394354777765058670883710180884495320168327959081300366975049049767333924281611932554405724696750386651545408325447912081705498678170708043906767139618511424360844594127734742121982152584410419094845528813403490479130966545431087253518557037950963572729090146149269887022564677480063777795283305819016649216088011067009629980322238578497850488072556285068594663227672788266167533987225531517891703767943720430208611904583359870934498183671523795807055118817336322875618633449525368150885568812932399200768788375588390324977444383949131022537910978061913303917919668266883397135491907658145029609182384349574050705388315629207182572709483957973197949463602319355618845124407629272247992759912198554441456035861442365917612291268769707964941988278482684801161920047756333236438544605341131192267132819357636727800364533607337744967763652007456115462973670044174955767260057018216088091360995301703641069445710438685840772185319135713571913069173459940083444158529528086814254815542929447634719246109669771612571476380505295538460495203474969347112511821752300399824644784043628744953899296511622564845894157034342955758909418308300273980584105710315633107817494405308517732927023736442465927433683422936075017981026452605233876471590544730417683962929091302501877393517022018811736939574042599376957463161008027844420271586895147446349902265350167928872382523257244863993797030128702502700486424825374706081717009886376801363564985548653356660146885839025452162455979646263063641833867539775738752463496136482305100019827155877221962448972198199949223139083547178231973447979709140097681252483981704060692319796047709256951234300367056542084655396972092053709116078005768976121150422784130784349628564269786859855442725671264564266812316791801407777794095603045558405603504702026248820896120212749063224984743202502917656747394765317077580632690874721125381156412271260592949970489547320475112696680180530552879463906058627452316801204605346837387695068560912979754095268149189214111651613963251238224181939745041739330904237163253507211724495749288058793539425064071077777903365909917390338482793567150592442477346801633032374907017073684683416845034214326220468439633153501288262588614214765735713813236690336075795696522428741154454674466904757795255860294042566374226036153740612918033152075762537268827367217723991376901408858351160620309481886552581930313178390255969811851036779998027396196639432813766031657339529858787366136157948740439611452569978124812508220501621846169591772469359110408172521260227264677354677009875007302962326428250985386111660869238662283652125510109932654898570390153912660476075929598519725989817802597488217345083419592305079553834179134756104753332567919931182474277923170503625256409353334198454057863384259666522275760356974170923571273871454281317977170027995462829986067837061395444717207287470455252727302128505733012806900771531859885229767072866423110286042290466434973774315413110851297883215090217628443923227054770409636186617289146740392312351828365968372424434499273168380592015382935419684247907805024197522688665512927685508987570581646558033135541979599205839177260522716075634211191280770205025801913268416747662921516363089964032661541553554029499945873554440704223802554389905521432076563164713946660042473682356528451134597897141683291350717142672355822904891006209439097851331148049312629276206767776239344643938223867659674482198415778347143822982719825621891885657225446456171207417040383803304851704944106131369332425952788679426903685899028158941075658123176550216588749042607014840781375149895558594274204680631618592560032624986837058918948708447602246949982684897099503304386365312737949105391057897347850553285481992274790348740481440018746866948870576036247345394359138201768744836247696324540328808738829006497063203446611867223707779192881756832720248719356040449425977908844262867990896857012063729958573897815971810857244258829907741624347999368577382940263196269860702090672159533313096532906235475151385822522278234126106353555499356614230168829476022921840882291445753099339881633126407359947941772413808754710900052040045890514998770250453835233270068943671565023568787935990423158391911165024697866538145047318545067191371951028445100678578596979354838945266247783043853128381036899893920044443914196032913398477926371524388985644524565530966784574097290597786577950326192261921682834661694436540197971440912119217172544277259760306157918948550115628467295341089186225094153672595439150181995974845357001954883623879794791221711600090134286562501557315856857310075375227116784355103642556294162265536498628309842753129280564877173711814705161990516766591092040039475251219355290262189556383190134253553467754255599330895376393224717218240542395777906963327879386637530051849141676897608377856871734025574106460639850649060737688561767561117102877439061454501823492575507706507005326197091289989301390857825985640686414180064149257438196925482089086087330215605996823296516623463961625187461258894252141041149661401251861607878635729005519345882438896121244805580458475772079531310506133460924776902239554791792181091340748572083690455475187849058150861614587797954728924285972286694903314353775325026955343489232488129140826760732983900298206176773089471457444227884620236823011579243898843094018114053438481082303892027545264788215392701369364137956902535411623519015286441989060087444229581541653632784426066058822908715598091916223012950879137514480606264610984080545443590141385977329728057612108325416256073534717918799838774248964141265487571382743707155859959216012961037334196747655325401427678689970279446174883557566811412529096553471258845774180324620027174087981589313113517445725571793708145984279400801112987943979389884712563636329565072765231788746999865204811244173760519187371623709624144710568522168200417574175438706234360431524109611210331283613595436032050588820469302918923735868892824101335434925668667540151430875409575037820258497030636488500841573467793951545964286083621162448099998244635341134138997612322748697173219386252385301018005264824326108198639846559289643156585432155105695130578302411894651494076635403377294966726312603499440694285877653768487947137007334852834298423397896567959185794386316547185731238852477069392665314683762217316112202839626825781028562848333234225128295786809374011117843558966006907357168284346953371877123847797388556821327667092280876941178978322835034346173198147676769097701480112232039763140334585966270319974750807832265106190060973343899480284265995977215493728675053657465751652976729550338066589336160621971008179456464221784796769465776071669391760831454344927750039345359021632670383364765345940202864941056726083289378879296018822082916806818998472010713677982297812026800818311071544408640851788735004308289148439091248212686126153718619440461657967291450583486738526608960335449112629591279497292039407339763103175177201437878921271456274616261144878721232925626406917687684938917726138366507214839633349209855146412019813864269586884403942263132515354718334327983541242504024753017264525893988819595487588799124585201854800594383181819697910227423249633678694113746569114191262655445938811053715958872918216827870479957447114906052427614780044459175269715093626399955931253278061162624262703133779146950012339835903523068699671515107652894363418298064042808091556825673717276321441989240552183739177279017965453810546721581369733997727291015243211462761959133001719406359009371495518629090797162989020926304513893078654352871027254600488764109228542751802401202903302046854441040010083007831619446104394735716141046940369798365499423459752275210942973290308515317931343212971257788905040719535896030819524204643133032730893378674958907083265824557977771956678074608073069902417139023740158183826147146414755054301545578652016688525813684371464679347499296359725998607025921273160970731354549924406367401372720471696795553369191138559082397602160033842332627910704178124805234302805382676390564985896706864760416728099583865184137966445152851783537614402219186550609729488204803389068890004322019345531476552014188394561634480843158706011528155069017895889697854848531093144825058149581857909366885119957145651535056270336815191195786027963680577324989669087517379208789264467500927773220695490699455354254634719526601286528339927914994141948581642367443616915201677090834454451148253569659138234876285651142099838925948196300844223940529180034776819096970687940709361782843108231410619836116453538781045516203360690131848188498322689724521708276007097131179317164108691798319058144376996875915316552986976718219221666899972441344337321755567813801554053717374103513304686364273305628065690532494439544631213642743974977827131045543436906775966055936984851232469075014434412130295027953116657135526932657325448879445750361579470365432198948660164578708643522709253097866800610666103076536913959814147899085880714756800550030825655684587041911765531472021556933586174177629375501377361436470799421712991508254677484546575871166817893695669657854405870422824505853348954344106367381568869821471403208913721352308767984741188647454764285929706607520611984875685676004300724939826783956645686762100963714478911951358882926363810407070114403265394459212705622587126459177747538352483621857224900909635865668293333204043698038901666961093185234739422393496844917751801231131710410456494744173398426883125844104289883181663551889445064811333086093394618659202878883867301533800179987401347409917866191440548343200880235322501800359362761183474689829466846326085321851400732219435112514984813729297931729659229084656695419567787519389406126549225647210552042622093856174946076312369812925539063007999281768905512134919251265039360517662351777013788915385062926737707664558166352410777921330159463900524911276161877045787133076194950184408939844828644032935007022783405457965747785509403523938101462932132288175094423440644698164578759603417163588565070602552712675413927562785868600185691983922447225239154618640385188281722537182177765002823732578291342149373813269814923804738470794567397976610994034023768906356127905612810915876929025427677970491255783277812640046926315584178474700474710397089433807886116279677491288761416932529167880237148489118389368807750476070702893976677957244214346459927652427034639467269445181352179985741107077710866613827320426122097227485528323466123976884099311251120042754874881433152467880729491686764670716621038477234045816071745335167773535407588245630344069536429248952513979566720362993438923166144870631890502381062207671705930098638845465638838189985113108797537924526243561050822958808649003728579743893633161941623345362941928506676177415572074335549578866039324659324425526789410969297361788870337825485304709251232555436691071145504125416730724866526325530083803096130806622790587992149437293688300606013614441208298233108856604859960003500476127494455999388382679344326028527197075872802797884571864558105554027680519936333846542352052178388172601391335150654703651375189525124492594744348303221237444167092365327296705026338866909991980390037003240809240847190919140162499602120753345908176851957641402933105660140219380373679947408548021935986870467433412738900255191519317129126915798774919924559935656107430859902297651866944342293241780224624366066503416915546956208045998118810152532718149272338024434730012707915529764725032399036900702311558379484589464798455345353311273117559997499887361551143320990178644522489590529940547127779293139029648264622818459914668805503691108832198677169625682048943288615336986088728208218360124729713699254464950077481089037388830131014328926802808511955273431543142999511064135224156034670631041850043216800403737656046494611410749671373470933473179733730803654010595080008596457305066519116666867879803890527157768413179124915874625139381439859607019589662403807249993226568529817915898974450631613055188694912682796669800984385895235622817055034566794500509108526090483187706210894348321351559607580461422179930585460662729834698332790350797227041018259234064674756616719664654218908073947915291243693568899463258732198273653793182628014174762622554008998292998054391811368059721326184370257249547487749152067795024879523531335830006979409859671096218671644280236217515867806671015986752770047561571414600125766015755550068478960721361553665139061725469358361155539152724772975869249585854990679887974729774134687137208722027831569059225476639299171266614331298644881748551981546193045465797231235133563896517773511914517277105736998140879118777469685991009202973871601218202052145321317474903222813388021807882926836059436054989570879009013710316271560863418885766782905918525339001706245849250397095609651946136748982009946934562752942629615020552811556014998000141945802968857035456302246172052993158834818274728747596121697445950071858444440251107319622372532286742135649264218512985039975915127478952138997087563503726023972410559296187490059777117871059771579078156137766970715389462011751756948390545844290847863656828613414501248465834813972950516750978752510152539991588759420506538004988576994210460481590732567681848902653823194895144459411374467226495951817564906969295445153927186402127395389877814487453910047259559615221567259045146916264717009637069766215826599671319046734323750225136994733847141990797920461805475297980119501020944791464428144177910301894522219947992173330908185727639529210721696759524027878658770310798527946600045773995925081817943747657524658900908339844550618569048355227361437067058013152036666569129345042494256200312589445584991288968234038532136113873950537503372125435167666469709039094599064378506110898348591020484388252516139206840430731262421377844815768763745009700416583001522660500543112488912749389568374390432913045604330411757103186069935756944465397974106761352254177939885839958978444968888365288161619819924297101398340701379868366932515868558925126724837545476415417796415356950145346877595467892929835104036115654226562959190764759796603595674238111408738481728719518514512894816936940416862979679163606701262270202095098780294177399303880349428246820176317898087636506804627511222197132556265183792728016231427774055076226983031289070382696770726460854220565415799468443929688016514010081332235839058277615433846496690086007466226008756401246187159554471232580168300728653184205596022834181259729525883454970767052381240727955897948519965051329248058043476684587015062389893998643903428050595628914454873456877149706840518800292621013758152801135274009878986306170651666459766335360717992150987559073453582702678100743999780671137919869812767316528352457188477325201788104964238043544643463705539269647237230034981049511949963467834607747588149095203761599023090143115439379026737611234327748581160067794360886294836033160442257293103621514901474315873786248351795228109364210493504230388555655309196103660966953986978413354328060389602115984177545702732863666245385860209559288812478674901345479693519408507799184882668129123106844051443062765009407729419013113810534753154181274006151954254932906544057905264895767126853210726559747220185145866753736240422532662567684947865338866676822849454232070152315624706460402441716013000062825701607907270728488809459887826144703047748692231192912261784049806924962380028451322770174855857313631218676465479651825959911240836593129167888447902500902604518316801153911468722965162146037913499386076513885200075321719632141195528819534276978340386338841178577646198891725666926707105944500496984881541088111064408929407205660314746128616801368914411198553742973532757041369699046556562396726399830513630294338516879105304351836098531470073357168834992608158703806287831307290209363587316194293287537398851615345758392954300900091291387811892220451555440483011941334151232302864702377198226652979962264438943903028046040474693072855811523181448642133947099366981823933674673544712345800902357932710558652628380691520098408646326947206757103404842137677261082428298467506076710186418081214416246924488429823478332531538174139621529189235977462908853085840531029969887367046834768292927467631223975448606262796836215047242151352325890446706138157019958802961704686219557223948408704574467025723093734512272838951807579521873134235765892964907698850499363490401946639947293825680223867835561602853091440427702511342370980202696890277963915147341380090569598968920028805522354525477925613652925550973398779136230420433918356561244641388561692056265478765059898194855112108202612349178045039346794123451226536193620492434791941746024165900255802305529230996163922822137771217202876820624225784870513021923861991155394482378970562630476205009776445521599163668491353376265679287151735623263728675148387570224540614983889709893773972888534211261709576701634660554399832451426182439925267874658866223573401434883471698606879319265177985942822124505859752885435365773114698536889532751740831396775562033100567038656159038555162313088182981453778523004829306029351232876866402550238553351804252116205212626447892350371401783500808089798830580723151490385023625443584777646812016473556746739220067383471276703333303533731959394611429380352087341447206448857174529949659636833220631076722948966829877162969983842112841289520684665138831472674225425890984052668333441941326355076339527005848289650429093171172579340305908997371480450512517004489097724790680888092574629155880175068487716716425987200679904063347069830120874841634381326780973377064176134154503715702143274321721345166285213659773896795882917088469165078118089352149014616292198506516170388644961755359281729845119598016968111356680147261828094668441532526663207951154309896064595322204463041736297675318252548608563162872447128309827898448168125874300594373122829099348262902152558062532959220462999263067832663284997344865733407564729154878851031614394110157326966774097442094840375260953535854369048253845822031371171871873290762392776673762383016103455978503074709283480876946958558030178138834863194463389549561532473748463277064917265682224289233083797137172227440161134657884285934288524005179787648123881109831665976325210869707915161922972468661256022858204333019729721201535515380110351288490183129766260241712377600247021971298963907492306441753037563277240697855636605808588793756117092746046702082671025575726017220069268356524175077770308992069460618862744329197722285418630893199838169712499249307121295425582192335819011192108783375916824460411571642233030206291168716245362210866475327830592245388931569123655253766778734589321622205378184099595191129604750404757848953441529399277931778363101436723738378098523222054647881159936356464149262157516234360183883700842766233725480402433435112421782162042804424020099952438102016251860345782708540787913953234634579213411887197986144235597619717907830472512152418674702533888513964638164907047241359013201463201964581951750731066588472777137804037216440796300492608980910572134028582340726672715121533043539660370848646070221959371128311712335690650942943604982802902197781937332254711897710371366358579555577552976708699872288894232176979610083951399747299446007921262666516399076752242990188793307220482895446533029172675999379172385721129030983251110083114871422109703639116817980870047067642624993447936454807493481081135962998112499375424164083496529491341819880794675860039895533614137249667371590864512909920215345196197143269850279684258859952852610021920405991883495041618504517864515584194225735659475214052546333055654860337839324573133423770988977661017609829896727572384190905436085406100702224657235837683454874810676260021078512675196396590877189640409778749711897324607318475780718359643606979326320184868022537506361683824723523434905277826070863518184950541070827765328037022640583988323868482948789317110145417762311006422599067852267450054186536595331734916447416538452277349245252793551846903272604349694426408872576638575706471889928322741288989688646964625744509342469584720171082819567562786208130894785744718457909139893983236407399279830434397266796899003834569220190290726520446402377442619239784793198654530135497749181012110498733040571789632290077625318294413427616951995824148933714516248052300012747987124683219368593985524294331569068382292251924339212915883008037158676633152844468979503996592250413313574618067270041025416686732886024963770380447828753857238220458835273970965249801249761313651502911379788707557546340894620663976974804028325443129045758872403080734276970472947679620940442718019179840861373729091704697909183539159408333462605138900860547866534113289981140620492049275693608619421135985899002212645337448879970762052644553392229134814893327280008872461895859509281331170749344607726934361682641168371198321179704846852808236951361375667446730555609176740123207664330375076106318769498545246209999236640735355014959765370522635049925405407666224860595872233534852249610763750051561261541257796703594124659500818688632416571768087831874337041566200123554707887675997964051572099409216715222277426551451034284996498185029506956885190632328493845798967714585936973604381234649536354011553672502144394544681736748344241188336786114676644179921889180676159518375775532270333281227793533885081276436625457221348045853678424101126794377776195440950953259264989133921602717328049207017731152040665246731553382176267285452566604573727018964855201153162374472565747478354329828064878073492509959458500022571208608555237316169115430292142052096644745505136531473879170719629047180478305953367331406105110882700146590736625699335819892718928374083759964982484004869412975204822331204194855252294173583279135017516551611799675742690323760023287175989276913342829769610965248168630317955648915008868552412334145853743022881648325063202897997592076515630810719511144450357952729271241308604977962014405660052926475752368492925973458859841983962991142985883185550962839989044587705680098752010649810544311528013983463204364332418638141496115275745257374365887105518168629218492218823496930780142925049120759342415909606673756797744926970869572936922687732113037180957748488714413010602643881035480607031031737788739974637385820622798146602647590029745384629625906438281270838638042715074321425984391859258467988524635155531137485300100805549414303728477709944592966779255402645443017977062092406420784143723034236333677257361987516790959162066104751243880734500191094743497264677976888955027334553675099190337965630609813388635596172169911536723258938254333013113043566142764410972908087055662760249413230819149801399061781920511463250908151286224382112442692927622729445197542909785663070517809265158673599711788173959755369292205593798345065300773457386970010836613019701593742185182151790374252354773553212143769863056698220164349432311800048595566273072534477673374033915185409037452061909717475682315715966496470036470438767446642375402835588967049819431215199530627011812752604756136099048350555888024525436905334472998900185694325415012559743226558131844455535407632107568343977801120516626806795189306717487892902456949977488164059815833509618768353075879490443119032210170942279751889514529457945107520018817163337309169270560057749960536644059984729096407160370699740627925765959800594260917842458386609489487364892914739801414064373907559673464537550606117971588372987583641718829922236306290054456891596973789200130449657872712622698234278461021664494481103803931542313851472369266563414514871612096017784258932895446532701837857051231611017124474535710248345197940598560086273007539060840993622390225680012016621959988601221930894518888194126463636232868522392286741663055863233074608501854167611272077354942095404544535568276782814881691647041033276765048047912332629744626109809918256449545088570281786182137343469922605463931794639668029322178667348846932375151772283064471078994221587042847217774024487557915024753236367643650788377492006542341650939228982051050531400948699883389884600193542027009859821132618076540268534455954542304812442593780339258330089345083355907012283844186847815236261501452610418458754721115422782648243160352326656000041263476885236505109956171874298467197326722973151723530580726538381023505539143653543615804300747063160609496346361416447911112181307422095526373676130690613418993263765149882805348393481945312542932203950729420529143589748818066721362618750149829293577274806896055264250974280924043174525206713978816683942147599545024882884659880751456457482429252715344800771134280690592114824012494963555766057847826659914460404697925110254008907632697148814745190155208956156061201209125777882044229609728735908323737960767383788342638022124398170268393425560028846845035828898607624617775224669672784215848771544191503809382571889951768846747325706511345954942373606337893064352036469536705295123575552659131600322962362317861469708470371462152805035186608434299119300376641713267697316635490362084056571741385814272987689504329681007012828898980800809380423854277217804050705039362148777223394882534492284688493715297624655274585847576751941324432977875182724512367442573663823585142059878390479928898686149683764144908440590084604265856042289593165133679178698175780835659267634138711687462462437486604818930510363159472390477497166993348157489281229146984672197929611263003152502877986447444638508738210924598900964035600574304757486366824984076949633107375644834676572957403895434311403692483153644621574853276322745985187775380410171727806449344015760771725714621303568253260665546212779066011528223008194508149835691871676234742415044859292584083693582353665990240404889883328244724471890318131258499791371202488944192609321874471196682152188970204942901917402276761701824052508192989268898190475358528381351310835413060759462374968690372036969713416190554311462996319309087090726568733369339858189307727554161400144555505682071131307885025124921095459687167228693932013640616477197637777641977703706446137945017428575016413543400041993204324849152482247735406395289944980260733929940572671954358094677833155257564175919233153186382920501137082454608603196143737784510248912834624798033405778228400038513646000521620311687583219783994297556329189700191375805523686903248141522044630351026315815066330236371329572712402475952200837894329784081101695554655192013589775258060890138029368707098812768152878894587987274254475382940578599939627769311686106741891714451756763819918680304807250252395532813372968788188063069593749384737949013819046024596014637046825036227718135968952356142355159535380042856047242730998373126712919581193596991882563881034949718469192640535131351090141374634322451356129575858399144938614164383306986533860001039699855636810334722672988385340114556593944789497534880240415831785356486053002843436621035547315352341594990478291626816140492720034964536014957546859679521005380982415581724323359538426193232167596141444051783577968302928610448793811311627793247197738882826471310030710226117687256748388627030781200849379931292171181517916907762725340998305805367931046779898817051781851060170508025349615209993786565523070812266201130309144675378636311243595193461076191954997550373554651210618874448368270537557973646069844578428341580273969135629176323435738549946318231374283340136289486721561985129085391470889874338410479942152975773015809010438018319518081332864823615617149603240179878318632923643255370106481855245923991211806015789941275326962079714301084659513023541169992485143397853696079708153838830631106213414370030613227820912648309085943172155251736564238624024131885674255982738730288728172849089363333554391946225942491456626496535599722799755600009401777468855561359526588930408775013874474346667866639448831355592633751109121666989480252834257457072127002891966263037809730463953109280135309914796694273147262513538074888090580663907984329492060000608340026203970695179555816265275121248954439125896903952438039179407524272665486766821093859458061294840946116099200023957191417674129421884787102564301972345344060876998555746430751430765823365094572584414146621051350414760407217122952745233257407845893866980649460814547825586414052862391433484317389818210853866089357800499394690965253607058120192099813868388511095352151492881785604513231249538501832294176702858073147186353360855616829755862796432432423754162186347687967430329978582477303011531470030574103659819954495303842953639798684030530274202599727156879574459864448203071236177766736721039011617969834140293444086483031321148402490706472619381953252496291981173013105954683101391614284928284675222343994960939675107486537963493015266665176440479091500723186564536144909764858218410891787769950827022969001958976564045182677713361248640957588180753546467024374053850355948276028930981647319862955752721347143788521433450513332149002617991112483272614541712746849715819711909428604243240451658621654877521962811841837268720316659945257040175885526989690656243508267087099086265286012910632050783455633994702849310098498960153779342367440908860407059672723647351462978332257610031325444330009868817512371565802624829887718023856290228015231288057367425399434794093121440668326724959023034194130287090276101011154379548423968663414077319209507599220166020007023082378086775339222244902200771024335354996363310413736944816046601444512464685352871778512316377879315177654574231992374298241314896598504817691310480366518710561403455871404212527474003084239803006107811164561988403008744981179148247609144445537857906278827604837798062455290783063743677871418217904832469155326109121592918520899887314646046824509050600279624392091668759791086761794203882675455230146350461897136346488262331225510268899807692418581605691674615695002763626333006090159354152228778848524145692162718135537546964616874965532919247434121565206604413445673395098730704889940644004759005134241682316895248663702546227035359469564883724560058869684635295453346082336623448902227425673286903027264483478477890587834663247777100563139777746593038339856574040475849018517379624271164994709758216321964757270585317919870614674288600666430644846049168219662741938841439658148519437200679512944497415591309512348271288122115039267787207656862346738075564109573212298784563585830922971394921450343890959967926539852807613849418997184334424990269228548586569646227856728285807145278032386931254050187442684607273508880505941025469416058351653650896764760264086490816690247571272323109613074572444971543273476727666660603473587914349820640271489359133272244938347261875282048939401895624156993854266729654013903089753994732709977146497901632250410598502235563433186391798465961927418939003149351444803885539067846389201929665950793519483402098084543526176165434217725011568777846163436627876758579895159505485553576374421990002464265430236414599511501744982150193022169031056784387271160763432735322078848929618268689435221932534891491605086911900768113343376501037392175334759423110543713317166424845400193838498706803593892758391835184061964834996055907321221030241266648807731820103636174340612932720551068970444362231022574124587787875318238120777207093437371571701218366837186329082205004169001769102232918155273892379212314468729074451153657907328940740175779744623682958493191130052532101488805703878928285154370697974088333519062801058084903105969234808942283456743467510828077029624884861170772070572998622005524261990944866733526268150735730400498883114814990092896191709585816779044346076763760136658013388389313117334241726668272105012333527745906125494316369489892347149410712963187193384721184095933389928640794143780238892206486294265752633329564376593410961916251994949279758279464915186768489316582496251667654102653201138863040299307264324492551483287082434819868130290387866900567179863960876747123929343994908647551562245709260450257887251133801278317806126134614402515366105481383347681693351538531090257096793440602285848998003130114010447018007822611687991812102456390891372918265722191840175538586752752822859799054260811056631136925864051660407421847575801287238941393159323037552719833316348023469138297452874387555472536765225114589724058904317341217437204391950155305386233966432070819693144116276583390933861550403035385580945168533034915547105181696101099548831933955018276847102841994999848179196854694646597033280109878594258321210690069858763580562490006602743861530720601465093012921327531692853726374860983523446128475621934329084340160561216509044559031790219802597303497067473337695374056532513560530616931370159911786461111526355936144678935979825628738948661203529810349127968478837799719456539124963278457038581916806598066571472770995348466098715684066041295688872251125682270609835839590544359040482782770760924586969473719156256032769189793493924232152188322863899709005101673896860169262499526331600339055678661889165463000144378055689469050990435674123563836679932816297839893296762534190441925038914366844597946964739249171499620019093569134109330138243659953068255317726047214619699645952019379522079754489074025243159021112430897636086738028601330865613147031148207771162881950533705380312013032986184387533469192873470453414062506170781934707464466533913266848864245349385914043248189725710458744515927165455736011554232568271100876738354107782383383241189204017415466923554302874347380725343657156066001959321848117861316772322529925747374669957106423087565178598470751669658705168162010670333857856246388689061181945550856261451525608532750788650623330419118956060341506845755576406234529043783661239093669089767267961832524765048235839998587504320238455058054051135604569660771456719014468521376631975589561174935674856141718329340043932976570192774910652482212111127893058602674766996958908198628276205119529982369716056058105475270100798526941649110670880210548537634030873411968116240028373466659097066620492493915264953918999997407929974331974708568099585777978750036978047104938940866506095442158806268991486582148498406897639624002336135761175215772527312427815379756703073898257653716068151203415035103245304178873227001175492059967366047765672634437368475420832886811986787910504816979587840032856679449544772072258091117244908699060204376230648382252833440114228217305476915631067727578212550001523878398613175165482422264221146161012169784752548273011771227931072684777309930922782991265847145894780522383053047955448709320065203405075657539256263380771773145966482167960874614214506868505915880606778598441342557533878176619153837529355323905959892426636287996648650400347946308001291179899368259225752145831641060231953439036327629300129324487502615272049994661396576821297674339888337492719560347474087119469989164887675812939738997346478842629317815592803972542132816310711348493176624113222815002855939517372244107574018853116118232713737962336429223948314188092177826590387902603549946873710505296281319792082562986665153270817555555605983863062436274008725563982702883761526118083823075240625645459468714430167241524089094314006627128951621477425515276974235997351313866506791999693856874112748133414885779886329282714971716625609607536940183608642323558371925785616905086554668854513149145131067197938444453721357370564887295708297512033056485730439667539490986617613437652310585528268595349578083127270962660886138674547801189120426690595704996250126305834808592211895023286503546590107577279282616455509459506930450002589259828461960087698462281246623231076256659183448190139400384634476806671612062367896808097510009282846542991595469031294043356794416073066354357983656586591778271668107616551912389552895856395626161706074116473978865905215788106984050884402143194139365905715554755371669593676095802773806892155637446761213106536825922305523913232954220547894065538158864562491544042111432844912198821386290847453937839392664007940614047308667000371527964864446863006290829230400181595109307715318180675269251041669824683317955785946420337010839283307425322406373046165575386688723810359102404960151694804689227916934667334331372227083725316099183880503185348633771149311794414439438112783266998764709629533728083598073686346717176027277118866434555226741123968911403359509246592240800302457640848922654539735790389305873698083953199412797524317293271649876534001939847656178767486676171861805840486574794325276478228060366838098765736907010644141094549029301808604400878301638884540795302833771863733800797449745105681209395071394733358408858392608481363141474881203485673199986025805007290920381255509961770408907030774187839955810859799708909905114481262685759914137124880204309996462787996277818311039449213184441080043852983809552153307708791599006572533084258908752127856658177068534606362376203507128657384629208429538429375351998312666137431744188773705908266870083044862012445226953742699043824895787201948065269127879398092605848025339946768549842060361777605945513506909889288447881029010165515167756318942928245361526505206108643793518809604460946517939625314569317831101844542043985152460662601254061130647547612621700543084039826770032602206674691008234290476339347388397538620251283296443818608251636882404382938484031080241480200088818043372048406518007886819378841818561250199022978253866797135689587558110759360358324431089789643488881116764824273090846432683317817660755190935563014975190520565258842081506546633432076004489348173060533621826316331786470087581924126639701246150680451264174941687281153853531461280232766325702146069080452893747785594303681653330360322426888019779380548017346288737852317459643244158871248771370512206571375368655986460219811960803627219717671150904661844665770893478783297779088545065228279345060286772144953746390873575103100169030961717177298070701567221149432087041996863387364724223648364332946723342335219717542087872162756633792409528998299983463518064960433090047828711648986069622901690625043182303998834689420522132670490077686868337801771442538364268382516931848165330491075733832072670153801045425299916466643070241937324945277742523405165841394467763113362728027443274712946894585374226281590850611214434262733161932528244188227033688423003714185809530824247792325332264189770663518110418773057681010082086701488381436832846062732463934899825932365401288836696139115208985541547855665825551791674149208277940285883166716842108197955798593771142991723973485172558462098654903515739109415076658688040943610571276383525155434999891606215883080422814965810745016854564380169974854069832776617102329356309682264057447586046558887605153043418226006623635664522554493758522599449501613797441646186421273877993147026463725785819560807984334724145286101784876821505320115562987366898755564103338649833627318119729368947084527678042279149157538404497492145525921026851053194747240288041168136156230212504786457414889169897849354450472855367355189094157692506605631099403049407359365758613476328052619496495009392210564901664430835819480578400408451988932527896126435183532342144317167771984159133396618681137031714922658769019120546357518344395238707658789348432792106125044963671493908354568640950487949535115683015697930888096295535067270565681923826664044739973846483568004277982161815358372085421597154138780126521313682019400287616545495648033462483710068891288158604588619149130775526091419184224094895092838448386828078306803571198011721214440676074255500874162792969554886090552642334592265464888073906052215501839782196444215163425114111328456564390551375565421142915843522212568464438264191687913696905072362753071552254269451358965965595755398235519042293918480588751986605712503593936715953582371662371346742847585773154884551892304635640047146548544998935085906308755702685129125172452383998518460695095595710649772811295656444407727675845406638239154987321169656002362406140121922007652417665233615487561290073377660868621456590439030480124207781126229311858827560822692329150167847112179150697428377883652052694088936883476213498586910103365988081621569787990184150301158248568361349220022038764091043258134163626332590445173935496742514170270864576663731607810533883640497074682268561201830143831014072881271600386679404822144128834750308624516343224650810338672257540510034377971674099931180846693844201687848196173008459908673965141987407116576324942333236857819819478880523814047364072050169122357319551428447841860170611805203762978992824408744343622884888720625466041721503062059532887423373275992660785436166181130771162457983404621820323303409646360193423956206750491015078085909474121481481057440187873980032701289162336378251634507973509580888483908987456390749335387583107585255552823125082687326124782977057715407114324446603540115646374335041423693926000705039448593113362358101692953349252442314760764873256354438326041216714385559876300979537184529356928760907037552505704248456910763631412225241366262489231029466719430176733324404486257524970327786218072167748436393066593832755056373634525104058905870248625970766745812621523908070563166832724928490700998981069061500454222582259598361652240698733987032089677242293301518979419554395731376351735378132949080309481940369298343809090409788306359275625602825490452826701652029335251458786698459307548585139630661331709787706751978429785159422277490749865428299305764930328279089902451675970550317190596145820657463557199606624369061507850303915301758303062147947546756663724395762282406192945724746598423400236428848285950828313936491431113212835960299946482280355754942062890383210379033877260799195843786364963290948698515678473293995581634860631732286649479737765372135694013265643308764816862533491213233196575597259153278066156285804078932854976480191708714495892321196392365711296142239045601238925267368990693515756866954718292839511818946777474080018759525391302463493263023088122636166576429578030767393632110913520842682701272955620893480274327821927841957435632789613767492677959356108247210192332380124704229795603781522932276204445708993405661827127234946278185362090600947962206006058502885124753423189489446380506713821984472918550821657846241477139158445463930642539241651177365545291885472501207747406015622541589251673676923645152117142290768055375894065700418207660366977685417239682660388095106410952129589386307033307860229984951304020195364410135431831699277887500835210851623380973313484424576318862983700089639037604996068538697241391260833893652791375169029370258816472751440998723711651765881098860356000456109922609807254791447774427536545699043822178071749657436131326461334361363435423243907592842842071693561755844659204230765451001332135322254043483132368473065523750787269067025061592924515069724360294244547344233594548758720078309229153318425759312897178158065320500016608623973527535057317649423006481128354444854008751934867268903277566268313677714882755044933377152367991212533799521881023249855930854971278924634457265147473772757256928468404907727220677277242571941361688315016685481654973415233244801068752080739343160669779957402970663013511378327346938687359930925329030804929146368761624174546878024825173847282709435814303004242849547035384897614794826145301127848128684570969670447972382572597633510922233181270565667377533609189506894090764644232137384090218171273783982998871396036784206644332316640065578286771398303536444939600642818702243226654776120850272283690520432833736643519270757300967890194210413328488512565772875790517582824521842707465196266804678305729767263491861523215628690668441972076356822327721914226903537237417590452749370788850182952820169312261012593095442428533280797281537271466026239403088858321627074194550563046208734355044284686917867996587818470029546304176492144243657376379609180442868887033116635785300757240887704846345795905153060932957317827579372576711515808939606399378989136578602510144234269110022801089734658924530875598979062257265303003112116446613244939452274639276198265015459123436545265155404122246353918259504062363224940808807037432761235207640514658042559705635712686779251873185959444947868039724413380459938814264683039886988604591392219897176525137803325218957487074224382529631570364923736309134766750957624671099093457631031115168666439923169312187534962174847742161072870450860530850766431666642694335743376357549271240556944731762810280399610609099378446170065582266317695437605797801600989760416610185303437614722003371532780905663086789394563814304314357555539407912393590223525061753284076116851381526743178970801887220066587171163472367236741860147846936081469839542858132764690770395319003416838698205462481543648921692338105387339754219568121568656310483554551615278107361138527027406272755144924997095670039182251777126027778782709288259284704733349368686224716432883427164222862262994961748796553608307397112038085209523828800007372282543425720986850970586738134806904612641326594328950190660475655976530598309610342107593556550419278849467339234721328157540505711201836512066674117471051025232576619787936196363567604225053711371129192124526893332204852177621249574444683270110630848431940849113238300097298559879550681498462611941895231751442486786266721701057956851232375266512849441782111105400717292291713813204155218116215940880341220450597727671526671062527021184581749313966066298944519268520053525246368149540958154583772101676781607367547678046405870796806404157542916731325100842594452500858278860201279442772220280593710247638510760105211015143197171631913289538953536006241676559582270217349822382578998975656978155736500124039508241192616688957735876345989572244600725028759936075828848029149585827685006579247865135233743502074019427606311576494053716893543636786444493683948273272018039302363843676169486031935694272632352876302705768546018890809736092809507238761276125981035475670864502400645823189460545369646488033660754720262257452972829055511273093985133719583214399581015952529338724824567044612807391596130144292026935177166601536958828918534171376504625140789575862260128154803055354239007835924829831779635786494334306884506515046000121368344717294194566527988991992048335913533314746155187612284961992850996010307709439231831638469450297095429204888515769470359411923794267586500742553785822478590995036475416111642056957634540223530141296934335927842338775489258658771873175639385300727395883964285949353416506276597282418993876299797211082666020242238249886860241791174298202040128993189306984194571913403656981259905053889083265629480252992352128736126200309266677839650747538771241592772212096282375978692756230343924351500274930128114003787660849419469638183305509162258004152795395928917726859935182325425322193366723104602238486234241248244049609418402295031698096593286088858221747584996889283262209374472087470082821747642004765874196905886556973175340354822514516726567901078269214250196745236654717630693990272292007042840381571401858612932404052213113456606395482910827350598604992048684184775639418633375349135628026178413738441128685771203820342038574999991203703295648361404758753984466474433525734599897976228585366911024248004684464151070763267309513523837840194822632568338969044230081547104970139638639578569891249809454631387874234220187527704901457143071548450419194252353321099376722488162505143286877441811077719119306128743059220182341772359032592937178470148883339457058447424129899084389466658615215573953648802643691811021708440835594296810773013011208194945862518244837898427731544040658982625568446031713280601305762192065197804254811326176215218841832409191684954894953009704912944610039935453533618744670775090254045001823397029428394264874432504636788703086410287074261935691683697551527691885400596462220791039604435335670630977904598210019913945627064140200754005930984177297466720439494268687784534200007385844948132809801523316607221372270119040100482804461648498606430974057925401704125372016611915319508887152763453216519663014316082429667586952969251816573276926245552317120725259255256786302696160900433307593845855949800111299194927700941476626915210589585546147656148923168499889204480036423622626390049107050305053259193744391163553142491945448527754991908434934970356630711511618115482558686546005804485565558545156031571464444056868784355762459518463368303311436359263473121936250826733964447107409607852622626036728354522590641797008831909272800399857817383126094035293130403155467991305204704168785507121189924837772451449462895152985976512702820712492217052949145478661782482775007878481205830336311358739386877217558366157328596876936465298616821329720435551179778284038875886492054082932038093437236881829208150115150329346790912985112218721116907187459377648085026938538679811357173918063124844990226502005600008557013492066144936061904722297761375578875314697951982893086950911978062679594437245298195819598226668923788740135645433503146347570355029932768903613142607385376053608357126531518561382910181895391240520831758604527410324514614638858908457780156802695492030653127185157388050575351421710495560778086320189532865506436000926275405334728963326109770714880521309671323989908009522483407751369414896520005068250097938501409234503028093437851589892337867469618948817708788125104387042760639434021984147066501941862639946837167388625839771060702160243379241400562526373402963691322610606656275276889534499460721422255121435083845074703256569493275600488312448012024522383090695545809015098851169578988970107683370200867573304171588034153486427012384634196637471473563120706446443513816748632444171195244117774944850354969908992603198743466857781925552309379552688554954467953781124779555251842935198476040704627924755271100282675244626945287724018750073288148162815816445543985756905919864745618769284588174285926198534924651884679847217493987735633100762001402590471454960600195719918785022234914058705185394644117596061574080087852835809820947886560354879953365741523454500619520236956286105249031360383052224629033518852764464190768289337492452186917411559889649954491128889462160866307610858103622272582490123561526838293792948087336159343529302940951615682016886841313263450539814227443722737418661858996942505765058205885582499466713842515073579321940199023201735190135459477408586561864803726377582702093120036118643657308163844283126435762122709212086765971201644799254891147483502506235948241415042163296081301420887769969036786812316344763990376003284134257239842204131776941058945503831245257540247342505659538754083586098346214750309154612359906802894922408064321974540439146122251837590137997319327907526945970936901900194974862993183912624651368730347630385552522471978874245595769512534775790527201379614823478293268107193476188020425952669172291812353658061326346922493868280266500710107855133337789821062301304468263211803264839273158457978166858382592961283772315182419742406432086993811135158378827373684554370055882928988833623710504367826057193275208653704915713546941706937918881929894797880866790720013011205834296019089389152739828355975522398769128290777790391768300899243600406987185384561604778597976987553638124589404164001680565319697793905061111732039826428470211146196795506144568254341685642595895344399782780275213687826301966431027628642182181236642077652186343490023787926375310025307622364822595980612633254043021258051995615879843466042448651119579600201861693455863555604067638481506552644139668471835597725219200368819158092477836795899776102184193693354756018132708674088258760386155226522576670452724464338970599629768625220809022391231875733213342297053467460840199841176340631849811898885665998227959835189000749894552263903774759252140215719813563972551193023530708966366259532172692559089324276412154991998116380629412195197793692519893878231102780359122260562036895609218123423023917194119114816112693778769529412830699540199328208654734548254748816059741269143717279123139072361635171515333199519777010755703730055448849406610447374451188096183639408451714670129485909472458402934072244692098946577217389211867302287699565809776347166496361641809596268127141861595650438705403723142482037995073445105352216524040682275160616081804895370165744120404629727400293118340206056992617317748687194143904368977657501122697830694704455489809527738191275825661587794679915321987895396265209929144227086915076789685560105321588110059919750687565545203519505644337388874970894534719354396312910608988588813512107321083633637586659912321981996266128452674493785067779075755370966022324129240125500629660760072314174668876951133699988363505700611002081372205863021605473875910301729899120541970100971340379236286380356338306478857223451612865106913592418759122387675882870786775427724748154332109584167063900203960811082623570941386226970503124752076943324879153821561230406511233279091869112992642420524996896152612090862160750024024677642106503496294177902471349398155169752693199801733458206945330569592934148712479332013513338399026478453378638747230304417602103945355788890004975312496359524012539073945926528420379381181192038062942889314554708740731389050040630303306209081598590804482012297685052412272299676841976637018557879993112568868123887695890186461640516475705149142153481502057282738294010215308408456067896388723823474143235610920129126482240203816338231670721696073867066969615752747977283557137655673059693184536392588277571801905428118691970159708591919620738274108186193922429751505375831247864653128944613108678166181246703960304698340921536187108006903212374026595156585402037347247175255045392098883812944872373664798735039476210783890357482369616567724925839563884818767395045813540016421193923570673281124843701393428244996597443827567201054058401546132019544849881399767639105822570214661508539727134044187107554550522808956900574285362775780621207898693778780121366517511212427961549599998566744649667971486713662118685828196003328024685497842127211040597595548790668272729218633979889174505104345961443521572394853171849037677997514648608884417695266117867608541926093037231891052319601069702416963637420037498835897938920382830363824162866250063596251659804769256180368747937137820390819131428684464379439747914090921208532741567072574584015102282353131360992012944962717389479188731068859898846498690913741022337405892628521784082239039081616824640520484221645441337628526733028844040047019731391787803461938007764271522276825066027777723931856957447370523450512622632308314408955862825363698562677725435400866826723537399808987547162682692587269685954952306971820897671624468833236511049570209315395227688874029247092376528845404515419277353686576816801664739213311020263565463281885098566879496012852425943964025008257200990416202965646539760050453548726422335811746690021276712001464934021867629842403864442811818340261905748808767580834315152895643838431556137488206577222016803370688151534381599109790089692942883045092503016803300558050068837829317122164519940201312124663970864938932636296491476889364086196175234906223162961227281430000062049640004447280356550012377155571748334810800193728901852972843987700019768783391871202276849029785876933071094471932390640848396744914759529343308308501635628366103228052026260045903281658766316657544658084898995335794172745859428093016756728932786763294055913535766723134648456881975024428085492042188913554666535360657367867133601069450396744561759739238027762595206792263707747701202975043985920879407754024877444189183560861683795739095799249842960412443366719726658570946051016381768533069846699306298868237999039396623189948746375213280678118732606327901837428773417664864725639815863286426918604966427062338855702424495796262448677127392435680968654436061344501711451501662181384285679363685959076552180026785937772206909320249328105910718647390975876275925579028393594222461529692550010673294029888183623261048016663712919357885620445060248772123554947514471164542147081072420200491642977083305520678422353114093945621308176552964195667397824610877321292310264010754518097472485842592581127709095501642015480063266316713089937751787369962457765725348579260141231593647640956106616480775391978318186486374290887659658047149582650784049642048121259068794452668333563631622905628571794383163019113538193145173480646554194475904544931378827297996932898040042321076547174333529012365516075764798767047963281376122882199870912877523526700570638390644220176787908327203134236910873041219682327973930295207853520545231315801980476043951857683474924850389956293603680502767434101000865745560415154337636864668565760588560487273934775309712095596093337179714928719223067826764356644380274048499464548048181599420454684978223154658128151410148619770931584206425595509568760154371475330716598376170855615973422196172390349786741143839267715979447632389327962961109269289144189530590644811795517501752842621955457061216207120849232669360469898505409149711561816412202351132365713613505886030618559310964188658535615595300364249167772204266702342684081394156003134646751609496130336047985588296545315388510335304145399048369759924528710542456725665729092612921124195171233463196607259564865363208276077383229959424405938338692140476655013898248548535137519715969291229773787879077985487678758693942335140262400295451913919177976027825064072000558591161821017874918333037514223938294266866722595758805588189555817828173168595455646242767862207964259521630801728152055102451505980909921428733904737047283602643869639265683285822348413608494868418465108548487394204204402166982904453514366709439779151168390923432963122849381584449734891143468533833655910615157371321472613833120859148810121899970464667376594037836307030359238802409950511816570770681873812522098373766096046006989255016784533279329513225629782725341875151695004676496589359602728195797446499834285469847363196714342310345376600843668401494883128056632641854532777964962818267398638098943192148804328638107187655419234798483590060693757859720217827571441461016524545328376305371803804864028433213841630698550493890908818929365099888161268563318069991101806548981295325673822339931846603264163048582882315820867132819080530408045558064859305810927661445611901014049281447260465303760294812781484007161823876256294082513061104636428936487748769677483709147818906433727791542264780146979395889682730769206220087090629422435269826199449171506332445370351344280561147466565248238155242437312990826408660933693702767873049812697056336995175042934306685465503871353874112088995243441590058270830151564662696880282690330953706530684339289206957870079062634396095165457944777780274776011818864323963573841076980350577181849493042460815222803342750954304248761788114555612462420537483394000593405427072643172086007139702727543107562970317653903799572159240421981728406931970815245533832378691149033660632128198409410075638316353653224236395217271685610570713849353823229689961428334310883322354217931885170957315751934826827440064388045499594058972328178511778779920467624975205991503511398761391534895653325849709105548009434129769078894843723364181578679132183947099502814695646363259089616644516242179535912124136509440720208173528447143961709065139509893670443239812372860397542291700402648443451645532850584398945454317987544700885899295375884651360522970278682041850514288323062119020930699102455820452488456396895807136311524756959112007153932878631255082293130671459121120668389740618481758891278236457944993485229204491808919063297427060994974575947381740046734801026855104382347847799663689663206807693112784322581251307517676905668502529566156215353845363038713035140279837255384676620134122302233042307632633303737764698878104714523743037550471068065515975766286079838398565812869537898119186036238790996393344280867232988193325675363816733401049256622859315042712375253196121872704261457172633718929920860560511518229373621380317821051204995609964803463026541214304508097538944720871618654103185208034139420518999099134193442273838009534584482056895485854588072174880338055338087749061033880519817935006328230855837657861138390038578338649117863265548286899601913500455373557096193119039002618263729008013245194240882391720538170898661584977094558905303056968894887686837618111023469116118561252756890261232658712500670582243465323229212833840423594123094296034863420510066566369277580709453659271707350062431150904997280421232807210378646065840145461638380581875569397270494317256142140087217394286084850261458959089666498437713870152002058481945398719168706356903185597542405071094052077525041079858074568319062378404623917735097537572860979441059614716512508564062303286282485368757346372248683398401367628684841877196580718591313071232942023918337891403552065922026292017976638140471642736198709557222666489142554254010742164478648211511934378172244710528776237014721529310027098780971204384304573042030268884291018412420202249885124906493906405690891376885856200423423846953857273888104404537335267522211004288012194428918444412526512449052086167318106684840920745002900455431763499165663789886471415434836050126752623238480342367075894019166967930851940917144658385047621773608406845113248157993739641830953242935847192332637194435741621178898392234591880980448009402046928850783459045691421577133575169670485714635588338534757537326132660667949740079321266783938069933658785733585119417283714614112084077901899134382116058628102702132248828746258016713849313531520455580900428704017941687396410341904166394405559974713592696821842830500077124520310934120794080554513346098075797927198838446766755608575671622148013793915230930408188948733975041556417794698702484907644125731337237171579817739279737200413865677853833839575255585958085370482085397387097328316248094167357194809876207627378885384431550532774998835193333136602988404808889268797501136732716016333915243284636918983466936108492361882801674187026050198908203338282236307821993758274279385021234987644168270799931074997325460938416180115810866040230955804611976389779360436764115344133411624282106371153384929337334580536013551373055947962554586001036027881867896129014542519658636460660546003337574837542689683693070631710328951078040577246643934371532947479086786755854810709300131253925861198736177046935185348974295605909249053379152759196509781389699482628111838665139604255598267064134564624959685292930330879352021505838473866456409146126314528150166186789195635596915424755654855903678651592449420038480736481872898690099855012872756373576790669188531170140492331090034488325706802983972043784646789787116006634218044400746720371633905568422446654719874086360025807957300724756437217715230345573062468177399755198338297881654180810190248709555431570841218220484843281119162279870993046650330689014883100160655048639522255291643364929307459541969564665500974080459867674595355951485380595537126389899010499574455852415650831015610423022880227910452744865294110919251198577177351071563455679710383520305672715135189367558407250661220724786261312827469311828627408727279514994314835310705393111083879874076701861154706096571764683742991605036453130737912591820457704638704301916588068085476590357494485181735144939333329156477917767420730525380419591625525876402718883071077569513085381386579548868883338358256628536783806559838306105286748443623130077226955904836623951571044776935056681267364347090004893991051475967783395499062029248575081650800706653492236806843943129674701847170164089607488643112378351807251215123608517474434500512039653511547792949250403472750038134050412542451915504735431803307914037343313184327190041824626664895856671087428591436908515490149789977467197434495914896473299552782947960666371765756051669835263697688361588335704000817279566180468305446249872118421097088418634293532575434841359295397488855149436405173308590750085228887819391284312205137171517275227018383712113301897209244597097432597118614969946855664850240320677578088242356882116243799484582166451853542735094007464575050921685457220265032477476622552525370763683786802366187847918218113637169887241652319246351700477422096955821805694251704954426247258697498327918759187316775135757102212259493784797653187723872887801066574875975082597814129175184372709841165230205953808542733615146279233103478948490298991829851455121595991830951362881635518004696620923537445245391909465554918756196823986078409149523554877816149659395700802069713338938254683880376868392526412287435939742046652752589962105527445571084024616270027783098460796392377969142386039100207311858411847290810074122415030912000263712482264355719940904185105968613297941470450339306144411595415400543909272927409344152875973926090679070582159925617253191086370344102369837343820119887190549532837427754465759886989003888714011296888373661521567820681183944244212082333967375319769488430428865763481428312966537607956480827206928644182819874793143795209373147267950991481801552485425509732287234853344121547472208063189764659138178971738793774066568753472228721584193171695276945794636132555216320587709115296907916086700331320588696744556233810338130241644328592971640799859695765487380994199586363075410880589386244627764210086985071718450962555391392754193393549394591156574964408181128410616760561484423850192660464913730715935937725887685952469707932926823333850454130551574890969510131618941320466185357549847476120237990386439804539009537978133537174926947619520916525321864483938350673482896868551375657202832510235771861397538138881769642881904760229127845438675407186036484179629796669609401627095706978555704347704189534728302519566802868592736956767663492766842306918325014635349755632774687787508149066096633376871227427359036668934558667296318599816214433584690264891321107931287208711400198366097956238831825032863934019579837185459896946030361201266499555770431626246807509387026125172597638442908810611425197721805189228768680839321281813656123339786285923277242371910454531971611943054145706050468434683918395039895966036996608720928993368087455830177431657740598675522004138710071942093107134085057015241754621845066894749792209115986708153954496631703259654437468813975170814079410734712989674206877624601309164513552438733860005807111508779543557341751735593193233024682693510914225515534573804302885495031123618821056937661513092207089090086548189982526027211170172782220110724731101687208625528922051654157012579313688638168967203021706750156384377417413298734488525696344868789187278100792433586618352748371494501018720443410040352650890506099824375077272030159614636474870790036515821267450772497849569306008202263290301773645894919047460651219020348219879365704337759331756254452489898976856959540444364630497419057911682265301181335366287941556738652214444798178354150530985552048468832959648478895558396023344535922194032394798307943974718549169608310878353611799837484268343505295886751523355893922129856546682709552219034622145729680143246996527940744867587005644599838262564848234026403335812844129142735985461968020905486821803148184357634294879207167391924286921471444498885213422363010850077780944910581360157661970640871999391555242246795274602069541531313539782789655250187666740257647305073382650128511582496119899332694827327339727048801235933321803373769447233071584998263781366939414340732984011667475312056359563367180481745249336882743013708545065195867263301041803402057708535797438768664328416372969954039154198342632484821939050233035523373649491003438042593942875795030730466027654563684804489955136391353097791113006643280428398934257273662364036406645605692098242148109392525135479101601307803548297015116758761338658234470221529498492411105026614672257095255741908619836818953847499875429889709561612893254519316880421452159131257537536125940873325292092401659146128128130663864098740131007618263238089178203311642987904517524317783232645465119673989648000459624855227384107206362581062204221568358363592340676130573015477262167338841238546975792170078573075264738129623440706977807905640678574886661642654659371914854738340732782514145468210480705326234020628229812141176212554906823700495272653449488119410543558058391233411800818423611446426169246016819191454671059427953964692460384337730208185959221889190878979006216811932489897210992275565986254425107304082601745297180452263675698225661181431297227864087529377829959390979492261110193144569126599904041533663950668107577403805368059780696866078609129190314489083967515596332107269312607351465163060641964689863991301395590865549952489633366120024386052899460223513515142395914992907209171187563678466626628601379469726738743439405365353175043317952339778280913989366989880557229693411096984191319327574400873361383887397455221114922215730199670017038238660384348103613169680736137361799024513216100893536960726715734469387188414288358000815439370683506016851771356881717963452028279385419020543630347418684365939378887075710514017180459341618300223592377312348243899347192293666126334341498102460882273830794785650991046215394921005789654656629033252065323702704901285664160416944067645026793591354230184178214461438261097173464368029902993534955648700251250652595532652043604165995219163025581335612220374067143387134973980315833918173274620906421405877294646435479019869343255836181733304528019114112835262131904342783081611846863820832545830575327330211849660110825046247225654297921379205575376203053438958402371622819341980816318036445241986407093116889097899642099118293781740918776561824844516376188893144297249756284217642831446086292678636165406650901794766807381931730458627838683688373753070624273660633549535204988664282801246933144888515789576870228988152029205569878731236031040430307478737695425436325429181872472486662822832614804084893941525857513970603452951821203742446479329972346591650562543415311216726994346805431373580635226103125994684458989841255290902435571157762899983002053045853021808187678886256022708964077823655825257870876802119814991089500986685045086342948133110110184386566620109812029697802215865978202139136576862318382705566062437113111468784907390417771631889937625020384416231320709569067342354899434632463538840433444718132461526399537392777356291218690018247721385261758031899583039323717148037018864085263580954881877957469777288901481561091316809493534188980518687530867427583770864135469863863719408454241366348188934887446583940798157646346323739295836850371667848374336656750336278080116133025828109845618223740401250096368711795638213247235741648898613445925496013652631732396189886523198841070136599486416197273444269431931942450783126997610743476391822298884024299691816589496737056038294926513695910042697519230641280833502977250422896872608971525823033622167451666469321948048363397964416326926274115993260616287431261862462112302683574441512828240842883310679832502469719561344497182217205873825643835782490405653630083725042948424521955146013731473256335352916198741641599460558917763178961522390243499489686309531761827279644524243040103860210987333486039628141807694815253471626026469430685241623049325641785583300486799216491372678985081040681575132565963235829360220536713048409647990010100042454019863513239760049430301871394993053001993891502441302638887153648707930464439633049361275322556350647436271064323504431331549122005505917774222326894919005980480303614891605413921891576608074389204602637138520011073354772994877984062947878388335020163765627372132543720237140148725473938118502101024911940243813846272035158263654688070624428102153127982796013777594067944883930465197444447823053281147179419678840716707467672784127914257116562088784312625487538359156208802610211238030990994553005250877741268213739001196515123765707522860255274742626927182029944238306903735948505840046832549873374605329478555162410303758656382631767249818984393910489369374262849108165591063291769015152177209858810067825615371674405646393020221030231988330340732118524665261342485043446968665953095065900439339662597605103383342680100191324173215829493023140355666591140278680947966792772870435884237469100207160831551757336355313727782132138101523249823795381512007490780255946204981884448230820234087031027215762594111566982739833829055731433138731625111232188966533940078517409816202321068037732795029078510732445036658396792809311847031286298581943061637106365086153939235048869499032520720348897593357781793242992538829834793140774279386660642630712086322815274740336120804759073491061109993476457086572515352788324223814227939734494862585273721297181419307978850781648742756095554102204882635018193112331187659298935271582720800082391169285229821219813772800821209136048199665395162509089623180610951566698530149229718855602159483628082052672675630076051264525634330740052335276909155254220463601094100119654139299145762344419078128603223863656802680988565311073082606275251443065726762245024821009170458140980152807764138712558213172951612330917589938481848308959936435918552880714436916157446982444975627654013528597327772046906026299040621441529826373921168609055184213106134378984310338514638648819187454418910753048463176965725252124165390278697415833660676597136251162046309561149375610313003088808612804876264370217284650337248615190492386463056897278989133141385525928122324399493912082266173006463195636846799879127119914713466901776156525919195211939869886826625634172668747464886901224373198025139124919714072815372964229009583723445424829385665785830822417767098314320379538035881317940251799976169011453622182107035689035350230709866517269164579116022692075996752832354402998741231656904747856008344204118175546084803057630306625313290269406049391015245481223417428957850095720619445615560887874971455782979363923573324683018150998232222366009601447776550313681858104103357086388813100858664975698063696195874425210911339392288271501089541771617867290458301552406446148326127585002218063777318947582522245262210409067560528708176743401404493827650257053057955397675561502276550592166056367889563540676977871807976918308840547687321777627091782209923089054805975017089710659765956337341476602136634239407418254799243661323943841838983372579964065445453307392326452453565960402493636600014876787420253120029968558659324353671159510295463945037210622202078771853688980916921539138612170626480932647834893843759964357872103997386858951992660836618933260917646912666295596830314680247119308407007988642276990671471085220706420127847576555883546140475235964702966963233587600878680596034232334371550732142393701158150028259741914999784444300492076257321265968954346703866423796304757845903014332243692660995419687258795268809771186568899671202654304410295232566618082557859740813166862194755593572554115052857346583633631770242785146111816645372053516693059358756942272431193981336070357737975784263972000177342850743968869283908607620527368660766248104525448325208250509757324852983654890182627021418679396764902196639490320562072063907049393809453213285897493435977582553737404578434022303556757736068719995266178066567855039243440581532851278528939912920300265474826813111975447942244129936975106606067179911965669894569438914553098597003246357031186255217594465626159304107556103846103622165658249540206361984474117316636084088229075598607240208783686388388499462607721909495359019643351548293174567761467750541861671475212762147682964932380959624098591409946877842426293675633924826711964050942953949939222832506757751838963986428924804286242613476084178869267501034080867208380757969890401420080506403244533742859647198292562822132979037660312154249891379998400370811605971498960729401151396372125495392341842963404652095137552994171090953513166488780358013529251766752383012332547019984345646071527372862546091797913995565587321026994212153345528078356157725661438439389200443673280978412320571941518270658214189054687290167489140834497845284719224205650937932035608534282257781881845213832530594776308516894745783265101279738146787635099956243953788384252290500807130507687716223966321705818600665119840908257478789034850016962753008484845818043872038217791153760486293701068382237932051062133497430785810815274515297189420561777923869638955067476604940154876560146464875912476071368118439155655615527729868710750847633316691735153444459563701094015379536998985405324897992405473328513902025535058328521403078918717027666086311309338564494794324326056231862010827626664147105797605166409143454051387539362726699781240603821188236027681338913862224123681492832935195426725885649618571650428306927833689951496470044979090051307408301062532203791509347964167485164823968048803533134064008095813880544556464107854252961093879565357358261106513816287486189917553979596383284042504527525010180804364296286551100909966414722313596719965877301182135242630434166094001957300864038791836000926528096826488026517176740998076349971411394029546061718731030431091470275806291686103788100218615846541975619183297445697894255537444175966765498815672656944848309958171783834968381293337291434586684196495298886650017990279352553415823983657007707440097122668358240644692487720409843866193750389335246478944868978099645772532544615962255799241523906099983012812511814238079823640741084153843216930351292494984940067919317220343200484102165218094437211791189801248989167321892204974141723723548176946718691925485971429672022338300433825285176792362811019883757425678133768416111751253626440481178578894236607162649970752328226217782256462531094929125324965340831773529699675368188040719865354342443444123797715935995354973580379367646739757046368777717013232518994771829874321281221895669667371990758815361051551061994818758967264318991920345373493024471467635488493638644552633770117714117649747322748189653691393519601844717279759905200848888518372766552218331013139783890415540890781022616264962255195942576389661750723658381884970403220284740291360319609567182663108664359763932776813867707460709615242098487375845339986410302846536176329289102593541045522990260817090549760396707723494730362883474600610616954086443994342205751448507439976832505971412168452754410349709982096774097325522422645941510955463906881448156881835792010457213810116664396677589440952631088995803676677528327150799774754370706637330257972986929421635976786930027351903157999415246243994454710539429122620983746101335599786046705542785758024596996463651992797102792783435627530737433795830958322827821342366202588385268352142026613672553568549779734004561266019241901382977742361729629142043319419403078212675568283426861082057232785909819988613322620741899523826548267521755047217480902664200137862561560185769060700455814868030430226546153154305147387716000890373638225755091196325383748247425821287650170986209029069036657495622764236655821241188767575593889157766237646912838472962219041934473236549523752563129146594024117426920024985044802870408263426569546610398960297681450319164766076843814549911145571644852852864892022890797289916588845436979893091538952694652159521771605611799037304071378604341039829961897772595403443686814821742486202711795758481394422842825987083616039971582656545810746166918778706538907925369259874060623908206430021739727300158382253070173779447976478637146509298481747395392808842852851562795275516302456398772080937718770759946085303904559734146358689210719459122951167663109440162730594415723156374020048619336355776963860467356424644572521025975699814286456650976093728205305273205522307568137384870807917511871462526759809075008998315136492500706319075274387051597598775888940643510287247244389730595045399625746909701742182770670715392151560669736824474084724677894046136855357001092427365226619671703110282490967529524402283236611188307359412881828359164093315654138627641571776295087233176296142912466331647412429795246794544110313529545082446995819571991915927232874291485551524412040827185248354681932454275854947129975765341385760233735873928351596420405354766564113526640130220553929235071541566774989052984868822764520044129501684931902434092861410528879142690878648691585683681545514257352097955763820568800119630221323845889943078422122986447113630322453763048634029864483724870086098634852725239342678708365048022557965928321466376861760584613875636405887431167874575260197725118091421128289158805494597465515642625447894971954062406109330701150700373118609391694680134647587676672156571065487904215730140670237992395408934901641429272681669384409657540754068639475553549399641542992327940992056418439066314950379782393776557309317480388429873045395470749022092004948799536901244303703793845700029589777055057895955038165980763412423963986283948536453952505605091319381662990060871022054374467411839226488589728390074666047188193045689025473452227001436104012546494213951929683995809423287848921091898307898877445903077100196426944907577645507416290067058431914536631586667942492772396825706436543116494354833162638272821420915532285140156299324019057040770982987714694425067037130684460088456612444070556417310790770865930769391924953820709906481645824201394256085978525944535765264111604568517135297206486978921055829966578728940746809005246620949197975494522627953607506671401219709102784603909802078707703048496341652783737610152206204415385888255365610355032436141305891321358673313681641195644046245595827419739239308450706054130710011805094735606259449842838156679508469530003489515228924288757564286055374616493691495816486440900692058315579822162800725186130448081566212980452020976543831860780091369129104573639267953886230163152308268432934585578358957355850148812007914627339794185902293237531580115111206734771720317222206444776991328393668941820715239784433404183418305647105014014518054955414655227137772144240715290192713913389200519962259023870478666493939471697032989178586832311242351875512437950702726071929662074159676006770722211094862866874698638453839825807047120257876608393063109461815466356126829026110458538144051756663474016637807583785209318209098663889415016673060584745720995834781044373100329634015461260829624513763253264093693800780619779713870472426756095337490433053369753633246493318672074298532287648945340889723173968172738701261977445044022274464670458847315962111688810315088240580228297880311926529289284605732334342877057278775846226577592939233273606559556899233080071048425912163847013010674366999583704755663748589271088065708029220483093509843370377207449529768404182482625083039475580623275843976696598549574636457332106890048071022575822509338848220737782525293580024192313256420238237378522600055057175433044183073135047104578807521122837564271176379662497588233755853287850436998461511138142856791267972658603850583284351040399208985803939734873299525846735299596258703350074162836778899943253362422942143985068856715515708773545969695835683789636814450638264817716195852985641550833318451883191268930539525779671174969196969191236228647395387695051366759227623730126369132408404629462315129507293412351031132992421605794330875825851910075964234643293468110565735552384450795190550410668827182555652381945111829032463964951744295032042719630154336465683049591982858347665185939119086158464166529193963947999657666939125542637294446764538105533679611748198273398263846268649249066366557313386978985775708889424436791219112195146038555533405833003585756857094412321184158124716180162712676943722572807118110422078458402157387060765733609065586070229189476325989611139500215705398516095013599147543448349066157059853559674916221792068542206906237051328249899505296522176983198819007844355783938897172804748976634437582943397774621541699089240540341237587218379267608381624868616310757132209920457907300961380872208559655984473194562146066115031622443749271796964237986366978574292940151644308727642246899010428177700020134443464820473240424560749295996911783323674388121090170352080956210557265063377410562006884181248213216696395489513280087146566138476283997622142927058135449843941417325917529099759550539160818073997137101106549309843403157205621701884211550016436269820188058628540603068463352703604268895754209851955283501184599786891359130002383194836100788627315220651838258853529005031415449524534347517308287075102563721363407625214468687660370662550760142978403744003916037455579922135060171493044569532240113363869047992280307407480983748165171713569102236036935796186458791100261306519498793525762982287528531490243724822158178394149213123267968395305589787309938004600626883950517921386001493241562565618443387057738137360570688303839809975232428066898977611877995824670603278160720259254516881159877927668670031771621938467472304268184630684158443550235676981071507850291260822438352286379470367264338105192994872993161935178326308333982864241226715035287178386128008261684878483244643212201486728165201157018652773419558720196875349343632068799543445539195224624011461710537615981469211603356960019467892760957218555191269380564212347310458676227224825828878638549010093542085943467929256725067209360285539845396227944436152164890380209636361575671080007908353219757861022533606828317590493923383444890498939358636690317445029340313524312026255205490376515774111351063811529331574098496786926148009416374131175605115109373171685997108053695588453512758285935363282408411961634448584331233591526068038936358663830055257995016109773578003395289873943869538556992289210090983825410326177707955361286376544370304255984100772972196307422201051697505567968500022318371752767519327874308607316346106953472496786319926913136714468114748660974277616016955246276343983663938053299146053291471486216846213899393394997292968474492029995631863099224683250061488449457923472610749933484470932946278719132738769583483882096664556816441231969274377228057414612962132961965127364441200864497558415293874117974113792618262941789793399569124204468706059300607032781687942728835645163641712434707273448698799246316126791117948761255038598047889701524995677584004950655940337635718732811180727311548588975234831030210392100366259261411868271493516339456842936208870734892939878212658266451593021854508762658764198976020144140287058043659385661856626724265996022254704706965111379509050366346045636885064706400457113875980531665684869020444091810761242927378624807845454168636472632380173518613617572290079699239670940506616984292677410916085711735730038298122779363424803811675772973034188116276381632103856349948106309861493538773637393305564808765175575933404829630813376297798639769596012855308192201236355067986486414591214432812090109001640310116479412675188762691675330362856319398933424175052417266589479107609747211692013464091715757216568646874884816193542941544445903355729219017032694057306724580815444249919402792340807275187697737439392572280214799622465311944705293321564961691801909816413668995221379563982249766697771019621772329008068511324579933922909037086344322460732605147361237979327865410970652405216507522648449921875053017902038283989747991891939858890071728728607340991961437146451334630331079542903177417155956444217261649698329586985340785820426788449758481988229840114717266591989383945544749515132129496469086065368258391167652602493493324764214024197610308457498041436273683522931630594835862329158789129640598888314898095935989501693163977429526944212049578350507342560148053441732446287765981413634009755221741443951143411210837325305207362138130297624761469965030821349725673827485027356229775359624284254509240997342465657973573480759321372679691114631418279764541290221248581538575709600047735801059442777013552182566300900525648063034292925894805906213865882983074717673441265011768972802427105964801085017569758617316568061507785613865695051832657927466911736862697672168780574664373755148857046675968467256580726487589028820336152350805198002523633212874132053233196668418027462834094612580587396345020563402671300306514677697971084712345712190560450979967617786754813483652038608560429898563183871949671848418122797015273497693796638912227645272311461890590004340292738273079451918139821368970508458383898981833217101326783984112576459883704784743466460739148319596592436477711028307004010289526193675372271410945807830162110265571290940993671486253412847826614372448220118651585798524763596761174439987909430202613068551431371098162633012524246425000505346486417812894129136727392185322976744539128391513293001746359352492217706452379576878564790531789291784473756358793240901284381870765069310291149725081216084508912162494819080225702713661432631070204953037087742883184313539179509453739000112178768802434393554682983973718943940956708005228079462598848378132461038440231018496045211366351647579032368918168720293957237993772281578785488545724674406532346229956576891829138960790475785082119682844519807855300137240364997003303970177174557739990205667566946994858743320375499920041350448839652258400429720351851685676733964123911753583630872107972905769165170461427156794243651484906441487626664099045959636120191615717556010055347080348835105939191737209864299838882305444126089607381806648781723096801289475866102571060648932566009346846982718758830967094398270406410964286030378298335657547808237023923441243705158303514343647686814992427630208434357987909939131360374299290904279543829501622195129632562151057990020670954869943562431981188166627145634439317129593214323924491531558382888127552990322912514752954625889663994028926165150914310890958081128419581875189375797634029531070323861211085607615501001575295199716332234711099514958215852526601651883575372352039079799510091218915990273942871231892605992841848890553446907098989426840484013556972998755053981808273330613739112580328656630583361915946895279641236724180026351418550372234442455791160166952958748725143992997447729072427955255972618531643520206281440036620401962676685837240807301217748907881070874027129735852128540327587661139489649177249593150865302266373298835871884737116462438030340341326749128299015843337441652256371037246030935903648941348785275970988830407567381190377387987722324123928219044608076063526145433212542634216675549149071474864481735321526307784883366679140639131424321901691252122341190715396976491284464412464526228550506860412858029272625277313257483272474606792349047713268555995844071220675770621632957542031079964270653929067047993548292417261075819434584603645978956769891489744615090392174530169236229629803858317060736374453696622073999614088434130919580953352002835580212965115932738775608559449323400688341581554948258908033579292418989423464078138044451015527910466871546446780663774880877271137645244261185420973770425230977690653491422022760922445591385151840601590585213686906564549294287529772117249633300066094703260853227431168902043466678403227079045820025355605388536428891213492652756067860218834965836255072870226354208904542560187656600472123432198342017904822009129761168365523244443537795392621000275462821770401675157890737824549131947707182878267769864153564207175476221116230784101107647749086404903798710593506131516588851447689632003109898004693610571002444090448227730846832907181856871305685071925954578866283007020819331811371211772604236946621612313914339715745744750244489985356697914195353331718023120321421473284637634391223942202776471429692774018860962865617834359466836568706420577200441413891565296372352864179966300686281504202134362767726252514665422842489421629505181776639990627892817120457491261855519855559465907291764727964627110959507345215098265824516031108460839223866182963628814646745957937590565141952421629713140125176893447345133222415239383907825721096754496137585842179905266410607178863693461557407153226806865404098410711591500815026041446172094818666534440246552914220741259423276441984384026296357535518674124101861038496466397782831872593487108709215380705359564403718194324065054873768056542180789900644691164770268018185517920085083108166500148717112821024700078418739207272445712709859203228104823288190612931466354202020023574095205386360626421117521582285759442067448251679460391731479666499320567950456633913147984028569801183516602086761437590542635071128872330449197619026096125955847234111820026044221113543217812601457316171845612913936743988716364460890585153460904406413538618243923407718394748713308723227091263657695045314608302255298987732791746862908162915861980461648043255272169137941832570922296393241307137041458722527251892678921962560737813050107767484410292967327804190623712784066639804622703529432362105976332322251602645546731237127149304819832048558085363617704346308117859842350815924864447052708679577708046928829396262765227994253736951122773390002916752160484231159226307577018472666897674339423047916237478376172505368916822538665585017388406009016233826592211368765178711232078767432648683442817015369299460702783667895476615125821391631779463068289623621746372775245349388951538338849356457697955891724711729299034524349156070003592657168828037796313761817925267848776305167674973131707179721150454318284846870441987110151569142224793631801142644526679661307445195955932855257360902866512272657234411269888910730930635300872715670399132785128957605464865776676546251004455801517253628009214751412533527561518834409055968549334137703653282210234307983006079027972234002786709289226672188799979661603923220237314428195263997242521168218251697744058746749458953449173586270357644483884780064554040778156690419117180438802126169569282116384807692120875655260428008913735654797927170259080478319588228172505931943479999035779897890658602592833599789339819481545803840589706066047720897399530925764859909168725842174296333796056606712383207653464676583331084138031540018225814350626073550102335200166356736228923944211581549150096538257575272558074781510113144252831069261286479152879407016986728930923560251331730960363553597901640058681615514971934455108227012491915362452675644158728682567580367103071805089031520923646780466334237852337145791094930753044093086294447410483020107862307720531835220267844876860660704252072138965231974454540670589458197653186316845475476177197134942026425013649706901138174584931465936163552179340984729483805435724913916461904668521779589740875744276305616850778552053531411167550964908287646984338948913837055960287910416892587757824008136503507695086535296684848649114097237563320627893262344956021305453534501855703053624759885388608030104799825899749475099408832574631152608824024039823862030480984834740009543056213789334021253518914215054327787857569131799474733872683741926706124723010554368851295379809193674510373511645132744947126006272699821245550862046804299368508641318615252498219972104030827764193878612548083981138625957371206060282561330433421299712991596349153066074514037400519724537192875606576706314611565940373858863170910108457176642236894590353789319936189858199629690256322868466010155581710552059336659179691787514825142954382706431882766598763941912797141992892337033522350940765500173779414030450977051055176387353403180520835061263993582244751774431627161440922114197230382076418779614364722884144844350111043979994930899351940090881450509139989060562733061055100412836528536028687900256942175039527711758028574120082818065202742672137002075063213304799793620445221417671586388103529640759738758292535098352216049996568476246512532539635259061898687110057307491341409073363350276085200723473043684870155760291283900208374938024380552042391043901198859871523203572187571594315823138250514992393993440402335918364784161258199134063685373225426647047263928176752088514444434575475999672620198964351616131016213197073786001624974035675542590359828704569242451625871521668032298499074985197794387058561030875371028099210690311841115811572735307833189904339968332208932862889953706672349348997626920170830358596565160489162938267238663583027535103043905836575972971144809163635315565150536580724505314738302538720736588140622302384777858486832837596100255718471599427299485808141803891877523174157950551325721662519228532652309481059067549654526760487873889689218586752357821386606092016185978535227588946605983621721039006575569242955795681472633280428410939343996283989957279064261009860008185242522775066875983565124360288082211195013306965705853481068243766681610269726715778767418017518835428642891878743330463543703954617790262761685939315819558465092407468825639096962506959847982953861605307050135491479875434885496956934142972116241216369219452064642046773666603664365644448647974053851881395016558095955641399243748218611827072270019766263987973443074217158479904936859475291505620577619429070475242397774786923178614240662825119700753263264296816766132065664938560543527902088600213515030632797589406343147863827172718490239636020973079078267676843392448613018906593756493514769484331591588341498121347949336994456184760756404385259331394204436320898803150187191344429971325533115359878444754581695677900978299715547846886348104739979046738065227999250881246987420556272927995843878308368485154634796412543992636620242713693825154704318577846335887652280155852042682565193274196355302466260152626363319994754782069439554941022544424393101077587949647160901580626660877001679320192025591000895698704587032940156971795560728546506730202092227802537359926390495629292130746577314025593926855432704643747843549310580681969595102458692815555167033231011326556074747995744732707765214465170138780875353369339716776657840572552377326022100225524939729157751087534148637207584621188496289512451882584181981503465376325503996336835170640571311794560906116609081230629784482346485389148263052290755518247336292075520472667403254424097787191950109206229002271128122226563816080521824885608854838312801404369621334594696139488957618816489790098632903202458511047718296420113220580229270065674844303210192338831200766675869380749220732490703288776580130855181913270837713996571302227924937722143976219615924597700849891442118292630210518010987846521040822132515325623478390874931934373187195680589825822588066992554204346138047019764911428702886661165174042727729460827233297468672995765466647002940797768354199967606780199404638284943660980031071503488805990128921297028540747918114935011434667206374734163827101890852284621282434025160343889677401181237039139923567423096668596996774914463759658182695043745221186803180378854750837517729900656736566580866748183586658269035573962768833717126893782567049642656401936207878869815846886784053056388167876906940313946796762590698542190241651089377793929519045715480981935003173416137898606048253544852725002665167874626796722813870305843924133984197000194317537768932337974624641746840732747956429019535803841920131812123247649002418930826746216674362441867367598798292286705601465739198343872630993967405486844272736217053586155121570508095450853228310920137409806259037911225233812909491377241921085528277226318171898351634657218828664578725463875106043805532554866733844378972392638201961273874189130907761507738222922186970597197208659252420256636981792357700144039193856544471921302107245641139121547062627587000080583248574634390089199337150526748663047637282998610442373657565226548238533372142842614123503218730043642281406022737411454886691771131216153335807316264267832586172846494555294495916762382220826882058057276441313245193623542367587729532051995480077061937785779913035195818172240248108188721254980910840573693234306415166547043645659173982760271886072927106952698241916321621846347084637969633632827758986929728917454393520027936463113623697266505801161029693194610942932630847383692735508951305350869901620554437912389215930425455607650988870577854329969696550569776769272206497440230851257399150692832525242152434084966603356086448998739936835996549316410686560740019383586258536312214258467059093956950165580304257332554163437559257208175228010817329971366171991733147922971654481156978081433139557383564286910512655384402813272011367985266356794539555512442908333244736180093140928379286982428535933561829159402785966199584814262985068511810535109544782402328271834940800232431157514204458363580842953104998144467534054868312793617943992728838289643593821861227219703783135977736215567196101819087369323045658564646413875117307527138195934662648269025783408872839641446616716836005458482264754080534104584331693815401964394911474080053152274905935694102758101078095655261941658482508614317819409093313703033421009076924570507535271448884181916156575253080656525330377541550296536808161114520516058992168312333606421853670288303514810484080387734368207405355580672319920941518300869534156002125985502652811676632822264369779057761825026834567079826923653685696849477858923612269448117462349534031781823277024580888956089715641772007480114052830898179524836775793027973010287925051262819718673547453967668855227940723117992706750287185545281494640266825517150087593202809390510919944409427201612020055508192829906893648017040160727145400470325362891967149017833479053292558934775389457875323368888031460671462766847094286105068974080781763635639718659819578993471712727914972134636896372816233501765948286453109854534297137211574208215804372549197029033819888761339342139578689933624565164225798212097634232916436469037811276661556462748517754228661519029521627493707593440438178372452916716731652132267855010934101464427537355636954747258679758078891807766021242527734277101465756084564479205003331131950590652925512639679922746654341886983801503681655212932810819226624835201171210160191432958351366990940632938455084260454845279725655327798368668698492372159025800412196163531542539638969596448807923213780547253778643946593213021077016498594639192397956935644180402574846509137511619894497717093599944678910964749414475507161962879999970886724387974213792339609783911372399631086237122881844125413467947443150035078271280599557558725136010936918275866458728055077382669009675943386478266560198275633957920907825699824303173499171248868774292289021618568946276816264078460181872561488649267946814518307386275407113902235946552027490642380173513794811443313138497335212186532103344479341750147492694705836903205664324284454798175712796921455322678459319601792696399301538464784298157574382171582352379152170395068378045339621621665567376661409210282190887820775054663810468070709759778580514970432048457689302091628938923751042216505587923947540269927762000406958236983357376904527438342663380177769042224086507081662650993361617574517629756500897803904989291594992778415112696092092355886314960710284975289407617759955444448631962710268224696653834628825050237664892059867911006380701214312025651952623523839409784318099268842076451557109588210131666552301148528602251829671317798655861735074636558903914892764385748440112422479638372207748421475095559078622326414412608911573260669787671461475974441475822549119200851431741213081232674907346663467272788178543544571365792805403015110923160393655539293715691480368625620925775526375505285401184234024273964437284519552428288595323952474189117472011764441140498386961772231277335982555924934788419979296553507582376322629315415854718525180007538641998853401400166497381239731880825383990486986975487759216040601398511336248532876126726427862774000692162745267949628195310953737394423061562103508520546486277978841150705162306659987141743606575699586378273983642814159262140342988460170675336971624914714522708681030379205782686385870673083184781230357114598723657043861246846142320123117720396446733417729813841870526167686520790445603027926659066740831159100541431697956916714908428327125128483855697090308757617763916532041496880080126716253901910735637239475160815945679123972220816401048622162370230714768595030096849715553316778861539501697758346182230581259779245999736141328452575964077375907787666612566559202646387528113920576827673671635664664781534785018280474700473578915960294342496153258522490041283482488181780854067361378108680796814182891381336335648321788110863567541101464401602744880684495670017850667340202565081133137464012715574036375468505303839410166620421818073903013244008559760963075721029128484990072129679644806984498261139687717236605979633858119994185815571886190078904001339854259283193523819831583016663911674581792096292237863537686273781249067869111437337192651386574042351231800587088667742407712324545612214900581433888205071234416893895429599239110399206377453405419496461190618817263488056229486276174369366602308157943122524179956444174880918000107667431092922117597404189916729294408826900713411566383194956886068982501696344798642442961102433636779896061291593133522507360239812376370757336356622213921544231947636333288026270924062616630375753751139018070801308130385923032198850368207082004014602458880108174696074595532100013427254032910446359994352409411289191362707222891416207543589216593165296107779849099357083544231310529057848792470616592289584811903748365865272345026996763681071509157861728267910947180818815082095750919101895714568485810890094230952663507772808120018799262916511764618077106487809332423143816320430133467825547957704765781221191402249054697284866945345779733660853898140404915976971659556456685531631313209734606915278705670169326801400925376219995103456933700997890133411773317932281056143767850748717775391247197246277421293025300077919883539330537603964285779879138132833310286135992251558351202577068627869408689531825849307738523911954868581168649415637904087246593291567891525997014635753052297596391731535721489691600866009928912143473382451485065028715485708688920155532830134896931092176739458613566967806317174126032481264896743502714499563549174417150611646253374446551188326638753340903451063458214498823429890197054396837325294908094629444235856352728017386958207249957570595237491805709308569918806707006954551858241409502196044694322938746897012935275885123465719412959492570716172509353433198363036361613201368422417553384868308214917454925599246282789555331689769798193686657462842634793695881149962646387682773653582218982709807490720973369971359970741714533630424602422618243476989897647339577996807131887639996385040726464790760739571487625318354195569083175694922734306319477486777773396052330681470781129131201091959418811511403930567705657113429316877967214572978271723187347192519291707367272844069450313696199862962149291841722378607434204802879023656421079872926661124024864964472280759733591688170386577262889207956908711565384724931306278574828306475525170726872941347555299305321650193253636694318244892304565843459062591412940567151329719399842789193309977574117925750882761003382107970741678568037812821601221676058866152953275801547609829224916125777209144946182119627351998878527429481208123533016209409329067910825974117226363588741083543275140761468141806312014866048177122457644590288562341875947006735077010040887454956515023268020911915249085722926585255760538528820637655066640639864868060037298038763997372030878208059968172897967185940357882375611582028673675280674708883620287783688877640118979424824437690467492843032736175342022375305448539338421250999639441234340693426402703189142995842757130317657566337607354505906111072028643254571098719591959514115465397345437327191485480759505687075697748537631405624607316161336228475461789328098345456762607483280630883625839958227511827833732940768808944837673995218498119465312737387682407233989611228391308518084791064337927319325997851058143417300383289203134310049497288396221638352006902688721874907364661741006751385370899090963549008196533006971409449962003479552543763031414393733412081368932121121908399719825958651589255114367115064413791298273445112903027564683826143381412798284099840655542780091159952669212289611574021684032684655779762492613976222631555865484729881074652349840745634843130550567098981392831787167238157561675649999508106387170631681635692509303328559411332772060316523518130973381565277504439674702597282527410095684385114262964495963628378351551209680858526298835963106936758678470369078733767092446635281134687044269683479323585286582465661961244825328036236712762121539346014658958275685845647447325335709302883260428574167808200374003249268356909570123392480509843079522206319620924016290404277109337079597024156799889826812860833581068910669168577279611497678827212956798183436681380749904007508473260968435195018215741117915378843100069033187567320833434497811511854796115150049144552649306216420025517434861750131538439239777414102118491464892088138828901473924691585388725921989569622033893760285099631568368875217382349575866053637246126403622967986020288436118132232013426453991819846876869786315969041986729351746187290965384786374776826356060358637803541524292169140890211315971786796049736768317291437933896107304684715410129038514758388059864110325460471622506493031820370661457408211660757800705051842832172448116694897994129609959415559673749175702183553795776551856158614024763460822784919306715060340332182008059493103876007077536072217795988043366983158743129355167158198492362553253317703943796011835800038625966502547888765561997949653039685926190931251068199844233415169225962394309871771698453883763526013813054093270837321182019934329850064610451326731611241481909851950203338538303140483991660960634832242212060721465330199982065781563820450642874385535133207010950397688910104391542717929169988731177459445981720847945499736212195823143743666512758815442969380169036532988695199642335312483083666382571867577900553195120132313444903651940156385287246888062020723033898116912056954715372138302156712598142550773269745644110384624666220098873974523116240225575724166030803890897961290105384711343534371445049218282090117157720496131266679227790985099120465850244224720077084725698867837081123366691224836994573514609348334159920428358910966133291364429977565129057078384696232076032594948275855755048992606583955322523123851690804837656992497259419863300306844822052995936543854554477035791157838942004628565414686978003443234637692955829911898907751925727243136317997918840589464994491157826775645470745734021149113370762841276095613038245720811766827258707817595009263506083072507290115532960213602198590484478075750642600496289253785050418212205524319816349009993367755751494208991748690673009255479499938586307398253098414415150433234372210209152245895397753551538959722147228512925282188256193133885419890986202424296774660488527405015271046192209247512678455339308538234893389852781524997231483218591961384533518727020478172892255267259398540633978961184453802690286943164320733176969938724434749171366334897834015295626883373658718757230951019064254922028985944539418990610338080397977041489622383135748923827114436255860238089326469756869418475515270927022362246423016903544819528237524049670599083002263421917775540199491634237299700874051275883198377439871646223100974710978605921913694744986683682967069694999069956501546692575338054181458296913496084442896090656177662701699380342818131912362863064110806595587026549934984599053487747580077615037910066816508432759412156124755160965013699437979672313868851716613012250141856306012002805698230983081849321701845625051399708381459286519971369867101333820592072863649744586409653888555649901132558532783811135485973304926786883598430022042304150689327236691818586895019617664960903186982895923409614634405633991059369761401766435751774265261677102977379642220396528570087560597090377310942209994507187434187174208245703483040720060060496505083978183279905803290899134430289688728740768982311844485171611040746734821330751062008098061924619064261313211494495683108401268704744119459378298754792475349108908191376104859703105619259529758602420823566219860141331367667175289551070560046775121365963154017133225543999512536540175522335787043398675326840120291606878752727886167399836320618834597716785416083587393459093154533444460065357639627075193908499888793794864032066042214975778372052704975739780961427209581185326861180000448389913317289910631780029656546035413490555782645682366388304322147519446406988173606876491057902975927683483516281501576567444624813294411097112109394156674886121222747993696259423931214491692510144183761050439795760232402411371290384834023818562698376365897582633415423420850549217391753955685835172849232496017591829816976355176721674857483325490403817631186279773429367555878129462042814565518335344492403532295786592481534491491667641166816269359904046357666479530288653507303889108041104624958853797900702785500726612098987089028630625963820907314239724762693045039449427871826716843209939533303156627668355811204359437065439924510713185889648545771794192518998324645237191760399482930894795601924579393018448725874365840179505975807672767310596110620524607763993561145456015230359047090732325047271857185235377725553951422218786320808444042314955012178586685701994155337865594761160710748383333482881429517425954232554554967504601646428673490791273173669684219955991405380046325820027151948346774583562761380795304121404955299188740481073319236327608467735354466091074695034438933205532327434247259482738830205843955375027326299976010912941282569310839079835448804706994890516824588269198745907187749984758129430598829639238042298024145666543448242833855446996941428851902978179922260530758976371614627506786129313966443928455730718741206190369379782292343330904827211221903887600789304646919971254599413715337209174864330385812767709519018275064617143068489047547837993208638781785380553551051622839334987705460664877081190063676707231265591674207400297647889644417863686673866823030601539315578133726942060963673594612008065459730340315236265867530608257483824045930361615772320880257829044667337678513934256840071528001025107772376493807271253562212214629177455118969088481288917183254458701486482463605765263514993770648853777570206930739159586129734013974495186332125247157833873209677210239461168558364148942383456684469652304767210519525181448130185179149591379064421459886240333789837937591892093529352268469445638250595981852451992875793056510976831537300747426278033414645471447626406634566218472058855202318981771806106617984639604792685376361818729513796736450771519220523357707457495050623645430674382884084940981128760287555422248088989660033029959998483699539223206859094180117951408565985225919418802201220369315717826466815912129823582551484402162510182657270245864174352250203196093328004518293174622545148344217727105727944396817457051482005336852768623590483660494260623402847685233378952837779309896434161359682007373381108917401501907235305313819744745095293335810787598384620731326298246825545215348337565999341246215843878857367602674819998247393237726655464568496747508526667358699168357026643154732965000382691028782473447439745575078196748592220095505640557238909630568243433196737334967650927229838462189917816785069898758503438343560795791438730425354409193954930043729228069452574767053337885492398823599459726952638937347702075333385455200279796526207620777066334548709060825489184660411507135753918257610921215440682599432540321530533679894747440772912594498730388363904352539325981543663659247980157796892363746544577095467186158024884598224486338060210325950346993049595005074005096637854257731721315626047866956318889858794693459922616948431672622848379361992576323499809971638088619009256829338387970367585761354232831046739121713202969789195166827314703043936355752349986062185866634004273215867463619516241883231097957879908009844534897340543459197739154650904777254783630633584646674735530273670509021715846576938557979002395432030445616569992703080578122105590769741968589256670302795647904767225672479499787274682863468263369824682265140540424757382066725060772696124850393623531711076377584159425656153674157762209740408631574606838231718818599278490249957094961173968737690937130616800835102979683371133813644786224660653808814539891465058949597408878683467482759370354377731838720486183157356686942599601833680836651587432411929487907493234180499686497966563731063299860170019292757563083868726655691691507431060320106365104393321747963891130209493832286334909358772993523777436432764463108844033391143322535994674895722210619537947949474310020864464019375181521619242519940971051012526355047543293594569188321432659508638445887715856976961129608239748872488568257387150568611977171483147309122108365503717223805511734241547383856163817450348443236629103328534935781293976295805509533992895371280633548863161295283144009585325575078427504904551221841241765528995129650715965296890055827226986451738487902450828018246304481633965447897129711620613380599435862469445756381664604361415799802156007217253020481140342129612279942476803585747962426045594473064971299797030444835300553375339762730878750293919186999346503678179556820373530022230476359066970363895086272945214762855371733142391405789549153271537704522723441468837445493232601261199149464573654046375021766449612107221231582296284867192647290733619682290512865287342810531878409755435194692407533498923473524292235844399203579163318954102222122934756227527514557122272228363850454023471893987485141601875352937585310487819887846322458124242330861009374313199456950628944069447474894133730301666860267691217669921447839645781889062984772002404044397542938439724284346733555565527390403617717402646433265316671910555949259108991665635106715906285955154700925087201277678385448732186221355816354211173583200029884950630167322041167577918081573650593250889759084528364048570585385578336954825663120757355334563069996977012757240503156485029872664810702504274930235917648511638114647919663399740362969711921813743828213941452189907779029372267861101528916811014954585621013838123659760097187033566778299249205398810378666878473870147115880035457393977758789183997222609760232582905263007139544020532921544119004123620685079032128868156763111918363917210449765397562887220100769974540572918328577351311224044311772822993454974232583549117519483636758184323337948107816540822619310085503221215339231513363376433887222204209637284684722235977862861817040086989821045971427960831241746296630215365683136733897513604483770872683011526264004860859787072726697674925593887918546498926332765910803017212274633668929414373260075586457212177638513336469176622340419145540046663836703243801253980845331165939846319970077551229629336578126322509792098878616225731462182107701596488133669528584645227643665600416955797750998046726684849126805260087092749685215471516385678209946864187278873777757862577821800982980122127336617315963360497511401440730079981065449431125747932246437673962763885599235637196095104971280171523718890893581944061740619490423932762959168180355325697512144736818909709023542417500032024288394904508059483443977581547613109376405260275517133544848538355344259437886281454326365336489174823423079598461152359838060347696886514172452536672347557765947579580443169118958594397049406176289900502738373851098112315207461468524947081613216232463827754211487014977069801190811137186743753991888079598173899888489941607978669485705941423684906316486316168933728799810893432851629933693656947369756423284380719189398839084097293152169371443965728776885443015574348494316496644157155575170760656012367078054871721655920477725314837153841360300242599553691441123865730778613883652260440398445775492756267915871992807408366993214573266704028369454378978672303367989704456467955753167384258737730330085532339392050431649663059627732774861415838314472322725774130749177834370802529549807374633351894382973100387407240457033244904181750052293710249689572976587415377015568400295081582963574954199432406639868204987155440216796975844304073514357031651038933706513209987925540242964222771789265781780208573511788341596568955031533569273137614191096641215362896943464357641030106082545375732168943334778975898166547038308395497988756690891939043754071201064051386633385616092370613388487508161983105024595019898534409392450952213399505120439565225700160894356015224360422718257933624812726278798796759615074799208532645809550858257939548650268825958501368673849481190837242191104522669378290793455066032504037007946841064959626250262896386727674026071853493608137393187663347332024091253216782468375557615805781421665847825930879078948353438238256249612095796150549370147544712466526633851916139373442704463545000002052084521012661988195239072688393560744035481207040350636955534457378763003245450583936730369884997501060465377335473909603349633055158586899330044579701518706708061931425506338205570799040822103966234779082873917258342395528713136894837912504581314007642933612400423445409782165162544253030261787948577693493904835169936408111663111254073227929152785582229994998062587983635389740000224737611734320801431507732005447610750452828603519992124056944225720674425009880579997626023544598658762022091854022117125395608554121138749948409080792270177634033177744132643728032162728078693026692809182861796550854155567175494818105417635629991760534086260436262796844923720398846562964532375911714307322447333438937718282498585821687009419068115164512807026279384991338400728527724351876761663675944692544714024799432875197208820064570004094872635185205429135386810228665874175085065097370196477464046032755505138845270771315989148931803305100940344526385126170944262511183678576746134948075295907769441426374606658305600786887715547018487059134869556567073665337152643743237708166275102023140483372284117038377541132721159738984433997048284538668890850053374987355301067119648237378297201880749137988776935917857327648655730991145903090342584540421764565898333196028689420730819161474848377847736001819238772490851961957400910922433499144161274227196839705787994229613692570532075627933537786067565565470154963938253886687857238272975227182933949661407285620648088121551007229244554480732079516406404480542082672792307718860893441427325363389121062349946186956266209644895446539009610307421520775600158493002502061735961658320463668062258731798773769504961941801271646742264804062233383612811563572990195871772235748146284346113768746421880612760631008231056155256759238240873956351503344538817032633430426547585274317933197619545368311712298345229440593663865469310765825174041117615310657096026794812899914551045817693736667759386673525741546091181097939424884556648733155802469823964446679608270579990367732569171936671496551080725534057315246978121699777638069882192123112398749840311469458683730476853525130468004280804265566768380991602060319640844190143402851887459673784773751716268602264321315221590284498983521282536990782717399605127146774847283131646981194838207352315085705862592962918764225722005151695790774413823253169680595051570634751370548284459180857299973606217456729374729540483577933714121895783229333782304580071347040141857321320126412162170941384158948129784104967260455680960620433965139301470650075569038304163391164459391719304134655049431758676644891587793159962700615859498486154003995621894015428187076028022826885236373749847726815827126765550412164122705689937101210502226100226532755202154886189899922741374974370415412746750736950708605058954567626597929364653768080846743678378439273668434190648359324253410930920596783706239816097815659585768663666711450165272581603027674916760394611240835385072888429320770494157661754568780881434527849820404549720797695346680223746957160532223043623122634435755087437806262456750074351114510479193276298035172608597625118415871499434707390503043608957474906558332984244125025651528675918115048681803755105997111603630408514174797686639885100492311400877575319432855882989432633511566845738815973623806302881952680391631694449798871512612319975120962769172768195427524579346677506912669092209565953463145770003877881555538245933695343919212912419852853455640346259498594573474186388622996772730479722291631910757442243349624968747793152574499617899833637851963562050072469018353705063024367680440162095157182653486078862575973236288099064920697586506374221646948091433073297555459239340967815847864127116779479221485213355249174473873018834700460422728251448862802707355429642378508922527224876185197377243210719136967839309740751700307718960586530245951066213202529597173341180212943209990576441606848865062461773287306979671459877180199676906035909471103417052358053886673331777380244112703950874106061425442770334572460853835451000257069936079868416890158484686991841769254364938321829895069683371452432097596628251191442977255182493064128201575929291686341507908849784428936239926641211780006854363716478825323443392258791088878778273321785758673922812282786313728853933591807906219860863293534031100997007993776498728732066147029957252743471654125328306742433457169526991398005331492271824206223905564631235655389702181952905218889375037796973236061987146310650853133342602409541338365439867557194700720394012302164842636510662274426910169089807271020314323589995593818373114661812531827522447786701651780662610350788159212058459393325550046368804506074245367401702337584275143326690664219020850399952544488042214457689770739865230546654649067115799860991296911779988157341497801537564581995368292865650264221138278588555127605970238003940934096847822208928355091415903280320821850644952775090751119339858887843673932728646298445416948111377597628969868304161535552008888441707247364399645012664345789333322866988707792887426040343433323092840532150430349202330401380025294433110272205108586229559986158142481704383432244561850265645054355518510264055869872485694834961728119804728967158313243645948576946202840740441517267546978596632880585776166928689563737346486564228985648576668410296012949647440089841993568339055180020247227728042783316722116384146485798452611599688496904038567634666084763573876958608355427717490698142823129195195464540353301850569001940232805382698345640296955364784696891033172007780109045275603588785009500980524798068603218622948685289460840800932631485880725014346545086013352667424573169359397886367445344700924604906650725160073465360080946073275317913086824891172812515708945557354043910733534056788297799601005382235547461227112076937123648160324864986868330075573682515248712653628331764437393464530225238397988281615083926961182251789457800168405527485656870713901922059937293114271713358586473943666259765306583527661988093712730848537157362094111643851206682112121805460556747043321842815682699226565097069002292939763225683842040681307434896480323222207704284294449376853782856048276444266706389389759687374176942738063346670226625928224788681238168624599859877710897008736667043476732335109531097509344789214212102635603226113050664054145447633739515992052558588655253833978560351392665662205504307046135968801611042584042814183895947334964261184660006950353962352988749808145494998082232259032581383057358641096256521256529017950640943594254134171454775938454572698098308740648339637726616473741222194957656139532085710796839724685988597319618203510181345754141284418346809340276948390409173264903101690097282727556043567225591815221202696777788123685162217279267853861455934033197273336030098112769933544236976706506447495110587840802321292803909071967551778628226291714353089838956271369452341806445462887611297861444096214065028683925103001396145962319994298511877331250617563323684070910702034391324980232344828911088358524107628656458648861094907428544877648651339393799261678786284808407533424114781080779399182281157671592476979631881912130994384850615728044555020398823861116653188967281777351251989415120684556885270960756220854673114455374171188035380065620333433043221820596922158064988899131506051303620607752696147563781282020256938266549707308152256239445393899321371033705056292947329166352402281585690523261710731323022273999775547332333646625136508769457813909260850061516086668332245031587960260170922746559599553312218027906168417103745492084961541367319246962380645358111342751752605083733011196222889692229967379878460682040053270112090429658514921015495325422813473376064532387896522380494985108368253411547742481787132805822662089283446053171668141285709244518413116728415349450545592573581881034142000855176642535035727668729799731509938742229716474353007990801770422966048434715930976986543719021530373494850119049759683665668972914499799946939156625205217543562419153464676061545226436142735903770463502494966989129588131835474852658018741225012485565911141640781496535970304273916373246341217486967158605707974474774976504702970109050570767904170403217211987613644988785673009960871328671199930287554729959007301829372498244842035497941614108322464587166613926816566822129230599573239488892574716194763715530289823553067614130882821347967107272846376528091666485768126755048124093002470053190388116797482402771386159096391910381468866976781845757130570073304834353902073997905927250611006307343678452730430451957354124022863607833596900079905467324069080372030975791407720061990263095455076813875702284813427856859629201351560109828403752971001238808309958667206130898673162931661412945275833463271415653668338379338412800553867072270083454340228140068314065039848169260941198925015003611421294664356942418622145046050365254732632657496118457816455698861062353371716354639437973104383376354010344214521079075503269862556502855618176900204216910201133902471669176270647277654060337739089878080140021352050964740887062895249152092997407554332607450573340557791668137153911542006774918217195329430265628922731122943675107024291100011582683738490775210432624036566202256535398268583348215052878502995182365911090036454670733652187974525677888177844920987660647390322931261400837032797301079067346015409094792671118413780205016379193806530956521087869319600737997744239064018531612316419659089439863720819200830893784800237883234412654305917284070738287637399748933081263011589758950007721909626432643284239615938403767575812812930330057411422574475203241136228766715224622565623193236708209561690412312069386293429493727263672352086251901875445208822625957964942112122620411100077824974194557853370952940820083095195322116393808316754261953449698785903981984890577299405594324404799354879667713847941827807110603997493121703157194572293672075921934570533496235025632022178099861118759074442280020218161476934390116879868545784914230665979364242944574078747450024825849308241166118016786758671919102352347989023996208248484138966144959898735275210283584332126576249711528486307783954945541291236908428587530137352506090195960905247336468310565131562005529453093079396968558743097331306701952542714505190109591367109673974779060193624101772710214920113805150232268415109123925322427159772533340694860274846279893705635873961048203303658785184370983049534916426851685390006421064750932574507248209517003437645042570032764110210341985559114119686977116130792839285430466323478975407718676383374734607509117683889807545843526856617657585827658112832261002805249656857896055426794131845484554558624666522023523790414522977283464112192184437131737783744401308055385068918110005342844919025785137260609964231817025225765327519852654870661833918575001207738035633227464907859840567304131490106654259558160916279932616078916740275528897508682308150379440307530280343148620928284214304992678508046202738861061461802667563725420668619914852047307803490368663341877943615337551214272116950537476365376112323327923641252494529291795201262704292511765768784016825293574642639498252835563213984453846100102699886535240472045906623346401546463130610813896524343641172895622399565935979385774247887402377665243920876065779175456381836963746885143442351825038375182050518164802822777953316867306960342047529909987032912085087641184298248767066346600527023679398006895811582705750139290651147249465696595380322611695257103931521291145230453323205144407922129802506295941653406455816426208980722642140732787202250964291938682427547152711331118843136856518802374109584639327250236464997786211286815084417708480831288616058284530118879555375604158274114317083971141814585294860243427972091605056277114395569299787808361181772500501116646490041693778593028922930364405060110356119155155009350747751625517873091560906261537426636225373074201888246231183228450062541345811066030793749108254496639991923130834170284307135009591457374523933758818697549109533197563749734230121759099652502367138652374593850221761871318207378484766691877985465177999958220551906313646923577826151314047305606797448201056720854303970205641711376570955829174826609517975004035456426856923215258876397065542268717190734622301944532330191419000431939046374385235427490850712090070345201168052172032982629794375158209821757068246290706133028140673333282128299203254391274407298791766322504405373342020722230988510051851511466230247757653490969755729423604549594392885570889741249216922653430864698365615093197738621295156301414337830879461098507080774337517616658598604128385171245208581592788569363188803040092005010307311904982747388417475866957234211716198296647484513967742985099696084092365916420402585067270463642157930881278239681833240194220009552214707562712878749220513278966561205220614966173623467229526198306097059017852729972312795916081880854124172269348719116805424319209067537114073635552461168149463952656019236577892777728010430445492863741949734413059717647632002605089934866032426935750388884686147833986445662670760984047508444279289637957253795198056660046008181224404570726089543023759507190867145858060784894985497115137239556697458238499328997302111237825007866848545282841711781576588616786786666373255592843983788257413320097040958452395916316805147273684998104918618005504329265998029486477716764456321078402328074996310485461342296806292232582114881246808090115509297435510682177023834572166369418714807730846052825348322422658796596974350198845893910603060084423427335059888119610405672671133111914959360255740544897480281367585660008947903036990711415361053297078885085265647318451256986986478503980107682268665562313203370928532677773861267119722662687545929021449312721696881932744326073554265267626891175695487233211045918760063742615482498227741937906463532047127164584333342600107872479732129895353077770449840156559552711360119772818150361401753741273529022486347045945300655980538476842117492338965284340743067523706518598874513911938216740106699670718322913178865847289961090442553106207235162627841237812185892051426604649758988527647051752244045956701187122902679692319833632100647341564114064115653923364686645003667109657224511442364221180110527008848469524776567749859696578528840986712677594759866717119172622232965202011628744132920660009824871406585868917110610717494020199998759407837419978099060513566595318084089297255760438034709110023185592532085010561674635912644212912232320979981597620641637242195411188205860606072722063203767948930429568895824071819693897014407357742924736368558525710679717191462156676013222421883987731292802663452071806620546225815416736843372574438948313508287925185721684475583229398205295215245404677915199084107656609050126103531318404028204695316415017384082063725628618805975669022116348893670405686494849860041164013754996529439805502263644584707904777939409308883718054447989785914948266618028533445086334275063404411109864656857759117317818041248895872832945750847370586951293792048020841054443265161952807243619838603056250576360606414905747322020877729491948178516486265706419492815184202548731334803043615986576308894637323230595242893001553598175800610935215743108661309864747281486790702331926112269389028180940772022166123346165461519858445807491092619771699658297305580327165302471030710649509327972021119214881639740478729749879788449799637317922134706818018606375562721893242343843296755424436515566718249196988078291459839484937331723985296061048898793573833218236342187536354376879150961777489395683984379494509437679939034105889518060300729919822880793874097467068602250300242001716570237751597115588569589547017330509505542257859933372341381403714700011452546332267911435371938804269134228027563780627930567792395944576109967176539707546639358669590590974194261795717645586498957335647076255619250867670004234237069155996976264108009580942671859253957499091531800545629818922520281739190401974603957851129538082141553640724252631893093986510148102533224476408238581682708564649890363602456687343513591401602814696111930372435452553849376504736021078016119009271295931330155025870798545223588526616992366943219820567713704261803881113018924890470473239074590031691028734724435267698712428181357421856388009099399736013714501613833503926526689384107545381992230368239201636123705609308314924219852160835440636532736843681723268809495690355439973036730374165346498203032740270846365066765922561807803083995790504715126686117763405487346050231467235803538520666702941151656246082316730267308948380973867678898588519928098949667845064690762444136174775546765732311240970791486347500419795028197298458911664109247064059730125418332686465342093315421651681268710523642532014232681264253508083606354959683173677135351959450224819953423178906165377120322979090075024054810486118442606681866301476527461134514528469711811371045789334788317522806538886487771832487982892519158933706188876537177205085497056965714579915558395249426206896170309512414797020333500094779874173739800874080360057755874725220803585680457112131618160209017499429979579342375953903774797881220306285749462260907768143101425661718187565845005295080678604659347980860904368345185587824795811120238957883421381017418290306523337542642673019756193462959037715356726237337198918757278989765395677156385647744453845374185345480090343640401598468482836497750911955146739804865386593745885841819851608860830618668959814162325552648269824542548625934576279888658351227859932375009390612164010890068413335811194936733347222173498957067351362147012923675565713094322466588479388246504308048238763001439469466096854706254779407445479748290888068316931961609243671873327158182708487008422332577544344316368946383860466684527797994573202556615877272106630103367937188545835594203887192242761071048969374437596975097461495038222466009019161742575237772864329577129610376126912379278703124652112212817388605621919290861049708757464971041267192275454770439178529849842284356611016170690956639010410125467352054640174405453483270765106264783098565614784398206915725728267848473585381865144685775830344291756958538374345832414291120344534524394188973856885646862616273836039296801584574721165313734046934693558695158757874955587500164001425959190273944278489469781688223958468104207522017886082792644437893387632525623719058205755935308022844854651657162821669323336652362000525952017111993196959564967856727886793281850105587077258108626995422173419470620258909044125366310267312278347519830897281054968999717457934633294822858129751206889071263181825960134068623592931155574895000584094597633369602452462596538989119543950255099620511003940028201653757851831611493597037577697049066732331644619065274898607526890709506322548132392155649317628835812590535768247117881732869176498514530420301819998272027012653844600365836691556657803669990018834740068628039480423385756427119722604392503049536788677937646530143307187787324529547702142207555559368502715767191279013901008402173711308000970750071303231441180567092308930217954139686615069516896860443939492546106625518282754875105590409333550263105749128304769108834772991220071273539014458052171568535159723391682508872606646517408938189686111407766114866611515888002441924558157040046952523887630228677790047939519944103961040239868338954196674633354088870813702875677448820061841175348892319171504970378705673484783548961543925364322492980350570289394576275559999218396438058914583747549126889750164997348408981417252784865515304226006155719961178332321307385835506095856015454476102610019682361711434856426484586925734108443553696086714477410068441300875685794682023752516690484153566281384550060449633432679619167131176457696005416059526083166459758674181572899468627252496533994512906658692060985864370750972216856143797508452681052997389520111942675605666829500898253338287666337924658045791920532737272348629950723252435928745547532512663229576233462475876804250111309112725171056826095610356387598208125898630119162396586057054858282913730777910221535251120225686407804382980504203919921835339019967592421589801802515147063296961088194187315483483984075453776710307869208902922348840159222999165201449198309791062983182168645013947042307189800297406395422583085854434188074491623925028933150427084506864449554702892250670488636969571819028698412721002061532350436113412465739413778066155993034903463682254912327665214525264759227882867629010794599084840531811531215619428580930145282738174528171879595803958382612456824741926223962108497385835328561272313816191526937659100747631303440146963478367564015807652118923119891905438989995266224234189794963390711508483184164559967843084404488625166167988431768838274637859960734441116999154791640175632687637401820327937416677678158608591696925496465186098783129407217820697421910221193765192183321006048365385279447075352777972869242158958400072532940224469099882128532068976541944515435874835430481253861245169511180131331213795472594561591883064666961120882044451601123048492731828648866175626466052162099990101700710303002180723201222414693427312531886457908076965725929153825460482003089288602111402067182973161899906151578106859202585292474404090864619642510847717781921696255587027963064412294947588078207868622446385241684221417494547559741937995920297952230050362925037767813133141930227127500919565733556826221702643476045890751377336364775487278399743138179120918729849404825118492896904293877677095655135234062619681083610903618828370212532577928751359407661580488762641481189116911930992476647478308518100002858350784426835251024738373598359204639025948411444082998247114411920519065364228994452129574203336472981324933522053552255388765495723358915286874475948675756491358127068741314979276532480962990901284929932381643730359636260716157556398467413746752327634567618763077470458252225235138567933015079711683597571074055174903479457308675650968429334989725836640316931031302013634034395868894608131752623496667607882232045046857096370190930591432729389161346199393525184433078039854277904140248947536381930330665203996757662723806983936295341053423218609903432192495656418834673377545614435653840716268475423131279114333538891858240660258787935007477270848129698259913998931156183785113213990579258897762226014775629756857906865210284407777800044405277434227653575561740279597355466305636452988158933863916730980485907697485449760999085410452452627103630235481549771503284391819597173122362423276139702850368775951878258538517086875837122774396445907248666683350376836804199052226745480205567984980774322456158913541062419939216773162857703211139853872203879144669027991554003007895730148098715338182206000027344857669172714728917750952701864046179377712522789800876436703062584002262331373464806262317596542639342828399341299445244228190357176869090471440917511062784297208711416740133917024865386899206176968731767364802689762646455024216362697272060171749301469480523123822103860906884665161066745425153869972356981440486184664390177754265333445324671841845171852343574756204309112452274569847290796282000755291289108411460466214988768226367750164021915295898448255463046567853092467491517002683843592682968291675502030491953824301859199823643804569730333413558915191677466920465704417285771525002054216803034576702773262818789036111561843189113820325303404128602819871233453232754267216463706029418655748843856272073033074803509732484707505155949398110259832984706561266344023548521598684564080098402508709488640789618035169924592213523039165185049599737687276826072615049643946929954284561305838061600920782705032980109039757464370860067015309163618410523835792106404299118115983889932530235113284129676822558772458581347450666818112360166395256787122296888303843398745793914847600896803155539357561398872209133254424461621540024775339412698518414070049231039911524196183829044494327221603387435937676836831292498362248430513734428819760028746212405185626582355657287718742572026534756000519284416761979156094853778748693805977713475351840383562854861736277090165276676398587769540640881525592316809742555952321429634087478007957238405835584805670244037545157703199845873942634163503906756206989835480192205052294293569831880055317493184507201361535707782895023827633469570038244894365269907744493692961641763396890587912427736383978486925199885907442919459025615124536677371689656252266231949166550817982018244904074055556362208982478191880564858847558928411675637394884352172093794526408149363494294616958320035012227656766318053930910066677100773884677598637091748137911345171256434240906028813309762713886771856135200950383900559703554350370555298773840587768682458473518989691697258317296680099879100318006287679123975712451134868430612680828844023739596572342589668586219569294693196740881309632868317102265957206102068956931853316029161670591428698710276882093663164794183365891054748301516107938770818387635616814502769914313239725935093590139718979654016601722460925907732216386673966977035991917295268995724341674050514481605870022207094455112682985733890653120911810658851450580776419705858672122030673386565768355767650230475679874786671284690398751197869183488133028233819381338663422991191237870520401392201591155980226836396278033652696667887962306616333274090780255348445119340137993667637702509182716305252393649086840358393242175563851145574994328401322866047191296839637725805903568519529728467549377495243639500819779026083126670014243318059791914029258851797809437000975511367222824993929562515459064551473051053254984444657708854942418511875015778768077300939132972125086180204373610332534386002851978721986682269042530233588040667856437660891399519486312194430361181050885418517489826798551661765344454484718462722929594834235604540874620500710081097226907870494305175388778543614588410170237533693449688562837609432753263442146414177767988993167386236494126370963636087683379846557370343227915353074087073027910121023561229151747640381302405396100722539685867284140084115207859084060062061524433645289548461551201403960440083691752685004681934638639795749720199455499259096184539460831694201443711421296187719125893033570451648779334847974766683143728552690672902966184102663580913523682087454332394700544539876784311394646872284701322424041998224886051245757218810132696209204785369246065499088495965463316468559853652316462106621192455769279081277623934359917893693720141876837187789807598497503186009407740963047140037099769502717490165211287300708482474837168357033847241098386969011786113398913948549132784679594333397740768633955365888235687884039397317860138505421211909342559790514535721393651731056278057046462442627681618841650849042020223960685682559317267942216692315762753522396079588575532114799058572196752447289094308677250459217989692012852351105867536629161775740658713243155375895590512683418907425700605634621896359092447927332185528250127072414050557017112889410143897997558619126729045451568597462726720878086410832245085832236951547196307107299879023825800253569102010209908350425564615686417440336374555417113426304929860646080110547582112527553803107617445899189597181068483301519652665897970960947626655270660557481440069126744222130752446399366984472409916768598695472321566396460813556689904303348570360268402490452315208646578271705663205753234547686244190517310656382233963850368138041611758752121861253098532831441780024663737151590772345816385866887350336558344507111021855526611484970314724439583515340752702580332175107734700659962927765585970661021259321676768543562488160475321101480625649777386915294813681415847988875994897759309385718445321386999357688318495079853308022663987409787545012562059307142819295930408852056979542765433462241116150871461458889624518329220301345631319010494269017791471866873694831666111291710392733699748950342172038824587585927018980487012382478866645873031723683816353271086593708218589586974217157424748039278481622737377111708079409083791513935452205428704509485125967567076916588339368968094714000840140787314605756244762395483982948113262924639477441117444850193258386210392326171382734505020172090037358551905988781353986177495041635212047204148980682307647233042995485203901536092429948953072336175442825060778378092148767802800680851156855640900339151608605324260105988152068735119028476969169628935376323192332568468315946004580064293556961918767044975424623564714394299507983412922416276965135642286836928563818712436730515621490738603271219315330727135357035960409983069428555524056563208998023862176788942164304675474932921660754180407809933982184408726211164395462442858103498328171165973515242434388225837737080813723015186512971969532300786319785337411276557870521705133225788262583517643924106256343797233737086743114049149877446924755527025926088696406064217076278928859553294625943817721178059576672847870939359834730903678745782209747522837600856459017148305549681933346120165768946054659739156498659426273106421463157476222767937350187960541515260229549624852822763298289078667100006810729649637587337844560151355820058430796326329334251533827239762270885416100646386073810394375445538635537875216208960918473654605420379025459313801793654582394264822695243151205387473553987165681702395869775679787387257690152257672995649260070468673047085842856575287814577255076526395205411886543685980428220543985942226896732342485140061235938646278169242678095514585987386861588881516820707635014243425566073058135559433958007862924965000325116486749233396229624566843990184488106726832089084156622664890096745859040365138480700769158488314168634336452714515859793829233807289215718180312549826010047170970470587264706603869184743140277541640488945042727332033113497171799647780176167376772636925395178557678556243454497890699583593568062852765219922272141860697349968215613691949363575566469243091923641568033451305918898658954934657938044378017427280370884454434806448522413189983481174342455443535564792044038942531462102744232062192597926354251231800918150024395146351964921328877229584913869008866703420637944440004671941043662830161757175853457488077818371459294954558952154394938128107449711461850477347148090296182299796731361294451939572585094029906556493816189197037108617266983353306466442141587603831720693003731160570477537956925175671528628076225648456702455661680764622954974487710500334628284579398436391090436631138468715956349974384534419982389747290006972910692909808932493120745115433410894812961182506602392019474968015799985115797937431791809771382951566484442114368508623299276922967950868059298990024211793318653638256123361101639937422917376591889785079756116912447498884503277109795721878740231722786138715319901830558344800840915579449672781649848350651533660610179922749419934553811385712013652181474666504749865634633820624035068888727846498638694189107024697329449069179656867351253549024462321851752200620826974688386835580120219413545458918673773757716884514629615094424600789194139044464461993363815354694794561640588646561482069912622196855607804513384629192394030759572126763529677505101946643421991040595161825846975217566813935407489939647312429153740376818847343317467248279736503804685282637339712937587075949627795438524177579777284569654127076610398692551299912410025132851992249586965386151350798111921191360751618308539838647117861622939687649337834029744146833781995075139978478026269682211325836420751071666196267096297753065979973494521173395975828954632557946354772898395271473985134948817387841370412636653065751962269990269178766462812179025660615546498327060450386826204489427157876393604387926619300970612356075075475950561965457501447936514513289996702568307734608221117321388349668685999404703480786067771999609048960846359980678078001444305328946183467023305365456131745625971211509460278137198106820100417497857376599556130928858690540415238431728040548025916414396085324663027286336919358759086154532059117200208136829391330524387390870485843171683956522250869076480381548130143147250106666235340995080840887322604800967192061905538245737117780796490804447102291582952544132985931654505787686180192962054574676227564951149002143772019440721869994703357958318897730131644700071818032676640876829176763920296392447130377879757760579802716463831893037657910870824995791017353766187712490982214334697613563801743473072812871588221219858537518732882610215834768025931739399781293796255473920378631628843104187518200758873268261715370101959672888468382279895915071081207650142939111497120206995945465542734897012039049398170073154125012833140020270354428789142333688760116746975613172940146580288806639201367724378353237258157725926812218572016371675457507480633587921600648693864841677964026949753629011760806759158133799623808662758172472167632765052695219165362144974573586103588310820450321933326843028251540260354021681068221014782077224235077599451653991060420410510297251473186986463547176542151387088816775964932898765421901804015079229067687229909030195163862281283054276258066913296577423425151297749892589850181649560062970519434247249861579521095385862269644471964338225253182247992180879163553272519548589405715858105433533338888677018226006172740209936537322311423809691179279555036188764186508227839068580534470230683160381079797445997546474499392815313900500866744080440786786981466251172756817373321498403384178552088478025302042903595812823806278422765335308665786047633809622514182841426290124868782233046397680529757926707240533987806942541700168964150201515068151207884096257248985737600616254997524919953051238074583577937467236439519215997272047362845210534420736257586862712128039994458210662617230264382905665826798211719066653562582606718481409254588785494002042261695621146090885889044115068904199370842008073639146759119257892657303183935939435550028801375543449675449860128915507982764000401302315391837467496505131095886295166652288970526476872817130979786984651257634767450370123641221001057620490178465051161356975198417893707381895573271965116990457031012588360771178966523490646699985319045307314832960181476499419186287835513930285877048045360275181109095530125118750909015837663700111561036817966187437365474740666108986792409136658160969276290181478199420540538841812494996955955845483691846112189547597948540232467187832605207764737778225816024455682423490043938570853777975737083190767023523392689495600689202220138481291111487198838130706734868756029781159410905954893228812552022793434099943387777210800364203773620706362697311340996495290314747471013601892434479715485176842223005409089314761907749536679078868115790905630436748646802804042203213187159992123754578431859781446213386110399922767185382503937102874664703531773540343214842057335360362762352844113781473215616381861410536257789547202679091344953456643155871725655324711352450484542752423678257854929636600793771397808574549333085740338278381739912779491697321990481503583366620389611059439583273868744718490511694925321575387124976114780231324674954336630858327129145365956687584384571991806920688157380196447314080351332401228622330506833483194746680923441076973421919029479804284999762881892854210958722648046290418183773439535877097860105275389365890977211492699162120346636865488881620084485263870875456515626455487433139231868521650258025437281894400750141068596306724859798525646138555635689616636334296737656150872337975331348940753961700937676173170668044991560809207029250611601113907743786444640561337824347674032894718280329224064245922360855825705244905504700841381973039533328589095155076873631296377208238109748604913004682861637042972666450866417671234344496285822255264536266748933790079679675732623298167031798521055980617000495655400567144135100772860674754067339640032184348082610863092914494512556005410318640907341413671672770642327071745432338162564016539796036135510758579609433193099862012556749601355845868452038508167639983065851151744266732952565677791674378377301782997074128412918058718087987320775701574731917670541091862394327789970773826483773153433321936761009176817976167687881030619469732688813928398124467909405086516341232619060922761686077823698246157994454461278767941503574292378993998429229954704610243715599315777953633040587098636884376848679324601789172744560210617980806793002260344947273515368032139723284223351512688024563224308797982981375571679637737526115686269742192218479358643664039862141801608017261773283035518856058323689639146258856292220102567290122402717681794692444220614921490723812187763608074176855526967086653584140553224233103881905098037663938830478292427779482433743701476357168177138471204103137685619039396873771443914961490662949719123704102264235914977634799068237817835323112618535004025294143212587896592994100685352124191386565723510187901719222790993834224083819606013675221476555756351261424047875884450248423804386723031060038362352699699375399368457253212812576282143508141530898417488173506502223127607182018563678789786250882204430818539878557218455207175545456103288235937017958900668619216246246147906054625596998276412602252411126106855952007534883668115804451761048289876870623296652634970422702469730708310832088905247676913527490884853524110643518108003298903289477170965923187855460221070603525056869352010821817080582619743944599269665330334808643202853360231453011898068233015997698843554664385226235634970386329218727230163117854876097128225314971130932411017287598725243479628629284237518551546043368481531552501356201223218483281238177826190609797035385382616007092448561108343557094298627469167922529675172027183848582241068858081348949411022422015338039859395334647109190436394559830523528430820054856082323339515124346944216379830831945430717888930796047775122823947204759103418168037149977944437816198648225776852163878435994059743635842035211498374762411080065334594347297581075046823190376235773278943378900205634453308040986459314834135811139016464886058012781434069527700195872879046103106209777211587874302103899684405393678201988358721860640691120855715897770153314517739464965438827525805486385480839882846655376972964591669060754779427394011289979186766842437442929408372378465575097134008199026784475437291921711757120640403338149369612413488464047790474235163860685669103892642192553904307009564782102941657422379491497688966119836386734278670472458292234907063885890341481640700743794126950180884488012426494566454419994191685084239865317419210276030284285776330600822496471870870433188001810950087297864836884293035259092152571654797322826375915429557938158964570360912016143626436453180931595236966535014603936871648646511916150911234419227898280539851731231006929751065104507397554812909112449258682037078570837431781832056544564173202180526407667614245975433054031403874526577976082687537362421666290748871229911060981550036022870511531732769157931726604091872301330726008264202098540217569028526841858119094237036931688159235085533786947129578022889996124984737236441266485397677988255318225193253730429305530031979042534940524184882296051521448337197883558512189357794762999294169200349887729143583245526769381843201887859720882641207570955691480587718138844231352562764112666019470333910588205735141513137427511056082378464814615030316094257140576791942375197368067740259175513226945534841921457190671147330259957251697345532610321632615190938863242414388511797129876385034081063460910598014352902716169198510808507602673968743122684819777832791106889622120732824018853152808249099714923144143517919623985457679051664754942553785591020996869301812237230353710747152407148674414193983189307500465141507355907157834622860177936947918688143238437084446530892857203331482057208065636100562702850574066687694368737102457662967359184945370870746151398396739361803766242299178008904765215176737828393082785148755869231522304738350967622257820526696684665526822121951956194083015936467881565983440613689133748482008154626698672576905417210751297881614087293125660877086759071641877051778953695521308825182445184949883291909327743919782718784760135089987394382199502025602743669447923468132683141034538689699912350811787292376157712268220106990423521353957535150936120643305009681925881274114369956770141729363774620227746813221667465451785900842524190412644427384227916861388513075108449191137925063669570728639872891821099433446251813449076259122760303470617741575542295783617933611839002004177079610229465123065659647253149437534103051780397459869192626860031287892520600378186852868328991599156481514295883521887649967703634401490354747052136318048620065269361499209361647931991518627657229116858136422985415769936319424730352273191790593351814302296092546160579572521102932298962524621826667151199636121178640645885975586738665619245157493632769107253004459513444149609299180344433148997704811731352418461979857794183738853678090037798909599888802027796557758762159868060138766669887383908515968208495858779555358931393118228220494787414071401873112271450394341733979088360350033118219205971193664431076732320611086098849524055919962061867152054914019130693263183838646511672805992673125932457464884882338774739286172993392413418705404210262934135144340833985557387571337596677031007387034559038896658219287173132972504668924842490253765438260516089655121240257702739853999834589900707460780281125288721943262731458183948417380195763855604505350311221600579647515234302727410768137920995334946085465181260219648566633170995319991572016642207520005613969042029499935028867738242026101232971665417155799255413445976452619224617487123662991019862739606743170426090291476120143674277162768432278818530481455371921529076430020920842293452759093394957939019495159204296444436404897902678374259066669381526327489398581412002823982934938011380553152742117983717691592994752712992282791781108111716038089651478959701365424428292090576551034267968876921278919371547921521340663643361700691416481483935127281451690544735207821113975791752000380786278452161939132431285889209318925121405202543855282490192181885541945794115951234456701137699219717629626540234937844662800346843775141489294123205610068726767615317728904424201331257898559094042459818122225729449912460737821499706011160545161228695100629748898980575779476267117966591198234468857989314852844236925091434183645958596074507947315936133462340924756096210494820984091874848610005616697660918826122667059680029977184526123765703193037777620913838630314531539250297250323829780695817638498564514051805145641871611645696795619428322592675575561787510388261253012307323990746353257436917422601147038161532536158621228407138274946856947661919808790119829152161109487003895390336855355725196705841609632982783015880714049739783270427093850489097788946533564422284809326216691049633070672712693748941019491438613739842304890233814897779678723626636140061266938195251292480082140897044197967999602139679821968692636511319090970438038751284059872956892759001355440414161522704096588429589532287246631111463264629524020040879268329644050363468069602854245776150264941880631858385677677163259256263231744384156783573057446615175621237660869160401284861061678533541317703838114124629831951019646655172898127984360409663208451798200228353142888773234207686074958581542664691904027597263739660475827178252183993515632579819757492852549550567231278058577994906761591671770377887336345220277651274718590050435339566400768998869855822600031751859426787398269343031041167789249997771289726673347244105579406679023259702316861687859301943466916303944950698928071492320977772141891562319523176124784475457264725438979844676054497153387985881839479864137104700177951422286327089423386561109154017918087843209873784481933869852297409425626554477590994095521950172720761285699426823611758682422366709755644286909809015840515858725943130485777784445220277023658040419028162430590257494601038891856916711398835868886944496657745783730657226656494975166434538702458030796640335552544379630847642911973536709932044500934682776102359369195474895010655583135399906389023387497184968811077611525318605601199364658255501473274164891707883440681025547630688471441840715552100403664908682751281648954985852858192392354851187150505475842128100921650727333166374005724956398589992635295180058902208793572721671492849713429871494930314694608023408963560895397565646558347216958002441038208467741002424173890498719977454515782645793505732524804815352150113972188822743006457848863747165078645096263322534212116918730417184744576897329318677637391299750828570676829032026550744959607871053737670312680228223292069252068784883668498092611414129512803126019627036926042569917748844807767384215760706920221846990542813499847931674579200556319330783487823214889680128399954090422184679519029378722820912037644515583102920099361451401585514627321048269616456500702923850720499630222276114827274669871138216728624739274751213614503922454065743138936719380646827453712058427870277733724702898931296354335095495169695906343898356987250526981861218613576907952469715066545434872273521083365891251336837124249701043649081433325749413324866503199880765187361291910559170780603914125241173691924403372542625580276241909049044009688397016442126394087121059365941807624790268847279292072847701434351868512020842753072245632873694962303320036311241359058174472390320902171997285959538890272578235705851554230179171060234969836539789520928316860154810569756206637194979906432047843391053250806409836823656100781992213653252713211025856186318788575656671365989989472634882818648486788660777735063876918452818901035248088291228073122295060308836955456061006810203149561664698650798175074084874436524166175105302426166381535073647079512154027609725486072933952097627974552973355102970194496249816998745266003505311985810476549138619533755030904869318264085181200988930601203045833777881396118457403890144109029352199365375268153586909956831108958641726455215115331623588083637720419266657801243221979009471471100292387246960987456861799185417553767215437045009631493171846491852006928870665058121908995782389132043383020408290086209563344243517227164253334109991835275029892333690591948569682149325533958479167733930329907982092421707041165365981606699724432951222689255085365443821522842750348144638312865870056876399893116210183008297687508486153485294063775505788327923123409639825099829495639358668834699105685412376822994982190284248998661940302489506761052944897526843374884620302377969225156482219685033707001982023908460122595369864439414608417013076076532681156430694403115803511923274543421214210599283386219396023880023033276434691101610901670465175493798488127078853157678528372145649646435166223072168624939022337452888900082395916308779266242369691753350818439888851208873401615705701798402959018751953044081267257758915848042488525260426487341263442930009187087326490853380121923614104400068250237122652107514388584855134450385145618887685808459194552300758186168820731762693711073556746536543907588130508530761922080068467507702718031841667515403201878812686862116935635582082190176472091780614150354210964541937924643648149701213020471270697861215041457732152343108280461468559397393245882724290458932755516702293918926259051765996577193201813679202411860673262916122144278411954092577828325077346521635728834993513649706098498864400768802541366051341304615883299744825418839455927878434375716033799113010961619310555476273639298036742283478959723501587194879106786163392614235685886766840830915000820783002291456158739285810072210442448904075678879374319585419584784541967568968236053384778970760719695495980841540508255369515272243084095919492571467494232191502489546805891743034822056490940937122258533196765822639216814214149410760897633035796646502041650434124687187429936609712981381480563878519592758433233575639094543689055685525371309510842447134121645769791824941854161042315402453683474251371557822788777071024339419775264299199532260554114889247707123339697226757393705182896680377435445776698926826172599594016743782973342255445955872311910832687506295673344236479292013523561090294519354833450263286147842156320720385106255699871234701035392765215732594682306406997479551867654859345847801858035548590136636446360078025578316732706973990527262729683522750786212254590229946638751150065502020880424539889263407372521921511205530165001895172158899396545562430467172478275339183433049499843157151176635361886813115063710933409174999792172857906115960030493041191420623358985885929568229279605990033339608492252887541898556148893458525313757960869198129283342642480209351598911591242059207889799636872309282909080155000673107675291056247653146745298857472068871858745943807939825619246102372658861856608893591176687331435690269255365739321510400903165994069378912637188228304353253712614159530424770545925384306986822147575140356469552814885809688836454466425029286097758399209474210648194261348588930862203654541429353675275175652771949171500952750587215209883728324028166845692289133571799743735451055206204605212959810463965412341479413343374474922931347392594835438213619698178888663549074295179013163484109609024418391292271231345371944589311587161152164868114285893141297695823443724262961339506886360121158740510937284654545768050260418802791980611003117807471483042628947733180353714291630297011827640759130187794236606860791971196195288752806693281957519122666537268253240646742988754985202973646958175424213662925629023194225083009943433835989613667059934592829274762428957985994961813717926201007058078735597273798329346544757617508271452343068522502655327194432285541508585181363197258128349882696774569956698624650744936674160782048652287682340491749070770459811703618353417079588685417461947421152101793123548554862922591151349526240147913821206830232314591192181091749903159908619691085008722728048482652176608439860427848874806581882818983837621848357942783126993210209218819220264628747123539405805404955709966995841090118768342011527817312815798237367497946051767154507111734275733269440614886062128988019334770036174020276165128896183716036379959067913093752083219238585310715713066472207338749298704122168788063080594364023256899053924217354565381555848195805102956567714721184956674557166347049413282371186894551678552098413901595577202633934302693806426654263945803498365768657012222871984183994884725175564456759722738528028981287938476458072314247674765686428839225020270359664751783049736435053679277940379637340444209604000988603653333523682373349308717465822842417046701392277957306789543438065796837400084213747554457208374647410273774113638985366896472596613737503428195475780854666244177755656414580267222673612626060060358500311421837396215031996329000159723253754218140040707292424081548477593719100778901200164607305611987022115112820627561533006520115608940243046799421149801246897515215428182609851025390658569027404668315722195137450743867804116952879650055292265570149512305738347821853184579274712249707596775098433250778584305826663072897230007111682433772883584428739002917339003572001655013741899790772664663405797898834394282033925638127217078737587290231017313448090755414503360072970614864313697311989040450186692619797197572153911918576746290684370489354006423198567995170958259431630054926604270674175911127410504623156672273330814309875475196431159985085165284075742023015402042757562646596590695621056195996871459245458107834679370043337308908995372134560213761480789936468700147066702719464459623224898507180600010855503494577893022197765151120797261889455400614091596080799874213252452509866001289916884090544525798373380701355721096443135606166170344173920652497103709036389843869654801133643274171930996722447911020167240001166257415412289884820634413534491755770701811769158992285095662474198745881045675907183321129986402989589410726219705895108725817687791137511699091872246974401679966568256675806789346362401634028049294563164362548344411742754593124456565729037499943313783296632175906366497176694745364886717315255242774370075013231563541745665700362555354867658082790035991952007413751801770972544452536117181921581001905605626621780178451968708470243274938625653028787525915899508682959008164586697494038467340684617911888575269295777285717245476115029262661068383710457763238264883160807717612394387444894122004387403693015724757530432314713696051459409652669436577874574215248565781047264179199497853266587036160547879435493887617122610377046765111343119007520221585962904932649493536541191803310532758304773751476034265538765871441625226475529579560109351358204902430910256346170249866406415989114786447068272977684219577883173851528909041634039927189337188397983347986058605282252737029189454243133373540106393894499395606352389303083601160107429212140934032201351854238526217770785126385219834190069628991489075847783529086043449297157556642290862241106981347258452164875364200677580471608550842242937800530024265007709141455190157726674089045404490412554737500086657068397293789881624757498216765361506926084667078799459602265647036874681318928509807106639154765136561451508838971077243458611257294229615408896189246592413857440654185400171443825019137707200918064105913322856663695674626870060651821045809201660697799033114350972006366141548239831453479916297202616359726696655349726411729799586274739497990793207111286445257045516740663631329296762245320607585046958686958475186382441355308851964320495242206682748159234167822150399677711673684765700115877772540216900768398966755674242090290471444076975767385743683049963648349906624672311420529737834604352394702715800858185559520418521931225853410535357352173199501602493707480806792519372501034296758296996850155734818563301539895223156441534257088048902929358608124600806225410510758059577020937613240420824768172245424385209208772721620775787736179578866483298517218077202771069227934424538640848049551027172812016700242951396121704256304131534064863417216792066567934975617124092991233850953135620820684339761077020418181121933748049309404897668116967841939591973709900306300983921832347346473406272002902517290690178009936588973960642990372104977536779238006658050501558251250385332558025519944195402466739041017186712376509800112087880401683163814399754962654732073618680948434582589039983736457796430090906962430535676240362178194500745421369236455940293432100679902819658553809086320035845755362320447557765389846239408523451825644212607346603924398280571274688427998627732813909426886240691884182592399713482420560810585153500393491856435666655179064948708253607935808195249195035989927595137191774815574368135748352188050708315061396704874983005062281074273505859472725239109927954332151195099642444827199068966813563995332449116152368466857214441146680998189015969213789992102069267564210728487836337621494546562105207366030790400671610714997938680286908706054395234812257689462998887593975890409524060903636825639249874203089465644876466404833437798300941569469978551360420327079959933587720811971716484852476609764818091652949948137568581435495388698144273413573137035614234859600293191814394981145583231191183340519715362802651092356967788495553981719571983977532330780029817884911963550450678793570355096914215246450063236228580154876376237825455747316933395496096081622504646864982606506843179837285671821921448980968301322397497387012995991817091342740580685627339264392733411692416369846621041428128406113377630883348934830918592394911394081813069935054474054390483576068651837015612946734509662018313024289169935969824755204499947096684998368457374544195627793753579925675607244645086278070314414026931308748198936022084466397991896998864673099229659651589187206204659765692913991081023888525593934017783704347075264539765380514741667637742159943313082501302093775253127706682015811535452130505833442783461800673456041637280538911917049645614133774022982650456104995883760377992062782433186800977307708659929274779897074573477867091785290035964309382171500882103987072579583510398357977011756809799332852713390561940776893203996969856213283900938244036772422604436727897100859334182936174419817044246052424625699848119200806936524169284132949876353755926074925974388229165920472206951975359871195406463291416607852237984618328276630384396730178275390528237861708581185620810969663104029295918986018737836010899952300731664110822330102926692416941185883535738388445239795086529675912606471742658969841107753752212152559347981153528031656705486634101640527486899852134656977127802431507399188713590450453778643189261007460305148042516679772802203474089864563820527980629976921216380778452039711244844430005775474631935352127201261242018867713633790292546970919318781178352583388103981503221391618129463674253358994983342030408281582397246629768448149874336771278519186089203929062183278604832244391686819059798864458664785578531648894987180518452338968504698614484470206913062327397149840420035394531205123499076522093938012895680175811900747459041075165087819281707396975955249867905543309308219698526867179216581513618837045546906225700558700829034063187033305672559833757907717518023520501384014360289726791160451479874185138052417644920567222381755013510622131816142042621762197689400951916475054774708181477151543646779377019474849679219185559062726452520512121440956574704132308002097088023256487362083426532020181625976678996473406185749342319535343477208060568398589818147229267736169660024333095057964035975714310164010319609205300007223375091915910890744809555983583198255529802590960964666774743292816256120660536614850117546298928691075822923101251172605935076558605706753660482288824871783695229722752459885880671036882922323284716149877981133900241870683210976298839265333135134523687959596395732618340334485473144430362386536399996259208883960071321106293396196766941975066511519103033230320241818590466610085992977680242035914816173061191772695250792551735791462570303555067831245179259416010280502746419980688770639312117827268680558716608319028677577236870596852554861665621281821311656398132139094590328114638360513516858469653495812601589512358285060793091305450396334013587323192167681030972527833382610212074888238842684543128510932095616766647669730665719534634027367280461039060075135481300147347973343644014012484537746333481317406367048227231640792072690240929856432439036880800789458525206480001439816746146850227932325816117777104158323287850670946720224347796733857830891074845162902453133013206216452696350681958798579531348486355456328898665526313962735008538784364825705479005894707267779744015400735382902200188435724943805567736208291673213778679962291110037542228441249776870826372016825463535540886069123843801564742754227689492308584186047187788663645342655170838868281125198567331132676394677844700080819991431110767053814892436993187764946129278961038515946897783228028706019038882687877986400652293045490993682585622400543249197483810419979070896590213137601902681334674780989445582386895749631828012188080421440071689447622405287869795522518512883980899138925960571447807650565744346002299660853091326920935704348769422006553306267186080779188683714432360120203098314775448471213503489599765037251085923081858939320052018132887840850497330032689817976701014567798322373056109737134692951855097583866524848756036978383033407525443642003693627430102184079583386127420288705965249889943278221775988792264340888212028265925334169709735190559856011602553424135071926348905788448466109668840383146884352287747857310657169863812127675615041125563514678816724230505602474949451107756964769318781448672914887174665120276156801975868922545014627885042180158277128134731019378744027510412605651213656300828312569462068392068301443423428204386648746811235387105547601018528427189220289113414319942993299624400435545630628687420675376390343493519969989442528286368067349653293410362906302843056514520568780465947771719547037452310241615180518138699806212996944674853361873210599951444382362525527625724961556212004642816371457301034453248688135381013295945150239599913224737226713851902221345443162864167195394414528568311723501706423612425987038740217801866983828686308311108314469237340343024208094510670612142815468324809018776782220851163869112817426734338221231843803564848280240761765724491041097202113689914787883337901947187718352389068036631170992287071944683793807150601240432441574116302908256157223012190576781512400349867915284849447717439396318938515700686390392890540131131306762414995265142410447647821551980483427062771864560763226761464926533883319328450241658875451782190525407608616995113931830330199797046962930747422441915234838200025325011989154566684240471849372450805413922866127946862436051149325884563882127956165347638238508875916217397080257676589340013366576180089172462908425128300995789844435421757205204445830467678678682197490491573950103331657676086701480732311188167435056273348484925531539780721331639474199225320091587955584962096831703353135195556613941621358914839585858406113799436029232213733905873711884563923837258969415236126846861932654729483341635651830981287182430587730106330100311896290123046330421121242142128399205634629111314818558997496208643112272631489844743687632182008352095442378560317693697133465543103128361136276468656730474584081245934016055635726285955882940845113459521647856615155488358355329704001887483409374657488893392914154299599399863895648568971085737559959081499702516893394127236807200355464201224937466692408537324750803037948283452619682378030038362072796625468419582297026751184667065831183233385961405032680846835460403596718282679265627728877538979474928433776925082162706261281030496571711409958106573863557948939556568649280790836404838234408456657500806679391371529341390574556502916971355442915273529147176990483783427845439737435299243752530563234177559502331511812070893625681999536495816970321681585015436265088901546924880539701505474797686399319098639139708167114312203576538951256051358937625979518224993059914663569411325024099614811559753851765128759429645143360473689105455510052778525102025051938337468720614475444964695999330511949739490647600029144260734289902377346002103423295640226685283225147031171701623376854720394269795983662400563194488983876735142660349673668508015262255129091242389355808783020118046351140295521320214817832220572749785888754967319287865658246029903632809052110538638937723230783226118235525067703916759465432676053027356904232005551427028124020585514800810049168687095055864545627682177789074862295228429252468153725773495365627035465133446360297980379034230301981613058363183174389254936837950796261968160215497826687011168285317946060163019261941152696254062473918254879597402544313617360479649972505565181829770269084876608691520995881107815880112770510787438301084491994164391307585375024934587529733220809208372259171853482384843056680292261322176963136359643070069284353939797058698064062073037893581598520504763929331165164509524711159020107774323139778666802369572883895540212913402032514744078636013276541322583291029009752216548399821078424195459570066085692916503285034990663534153550277142804617987221114151121151871211304878808451752879551801583217789737488119491501262425743814343517327743978478026079666821896630520864278499711032313027379964687364250325763147511433999264655303056205469230838323347630748360723206073912704205276811871335146254484861810460022533404675189558700020048096898065943836580468587913748455694363923258064974726453340850997596377036296671574748244252204882565462689676033929870479246565571720869774339566235687797418461197879206004325112563307273897192675258811355221116108354695461266722138725423586345685869716454012452777366553767983751752448380123008628519969454226100720375348725923406890939717933938900926517982752906056794784777994186874075849993926862165961662775458033988325172572822571737325094772096502695772771447475125210318018035735105908047087520217199051674962874013423685190517680463937152051740205495252589858688315117434365053759193706019305050936443822462443496679207692848018517699660754562769292206581273687867342779215430577240061771747746551353444288009996343302572300876692157314204787321052794881481500828156593187005188444802596303738178842335531767972513519984556551899975188319803353011255724167852201742335157211387929656320310430540448793042165251330403382006758844094269063854060479664133184405021743066826377971067912070138616443715126222595796171531933398636690884972758128216761275321998350651296481544579899120389737914287336525950016426711170375674068478834191142246471220531071566098875832670431859821257524233596474512426796869473620196955483697387833343634203384347476298310552886596968549115362002911468254553570367820903419293330680005807707626098566349952614089931668685694665957475172081232743057876159282695978895859759987003537607544373499387563952247906381724505813895114166829931090789744803130048028102654095185623580407152598994689374222909835979115681630446960838763268420173836243066670546789472364004032925699055305370005947097939586825872654892265830450601873646284792868493308928557562543936973729763807582452255608225691401512604714061398298050191484150919982670427568837809106152485360328310068594358936001603703134499287028323155427551131679573795454584580259571788282976854176752013626331060086824408758019884567274436034246157679088976142312930362556648180684509939172673654995447146235388908779669224367524475570133601977146645083121760524156150476536290481612953121661328036476229365543627506797168127297944542034073810721536717863363474592985828729163368800040533332031460126428396448673201106924364209435828714456675881966225833415806845310906381389635643664254298522041329624906965955501763341474855666895236360254635492801108549444850910316560157649863380299286679883313906861316267998578614517485323799886245656737046047284446255265716313256159589902934082490075474486415907210128704131970496221594781009161596016593843235933029362559963634721227037059094758130478777252715575639812251409708223934718916178974133416042922963368821810083506071204406635450804425501905390203000457390976327350902032326020776403754625771621664451249318374141078352023252519884872686192443822480560734194079412270067439531837408956271548478420596858324423101815110519156251418185412013558965211082574704648670353774391672618832987611116115753954969879741934761943198572058717794822867474133147368578073322325865066992647231136774039293162462389300396974240726064801238755574521596588930298649914996399060385067402063625742038821496159023951063698056934395366932222011199671091683127389302303926059252544305935347554235837855224201091264858651611380991093947917110799145007384676829614957123231488367662633095141367216067240226529744497626258932815400387940587634316506991214256054414725493659992718889049925715585095360728930930749333971137936330928119422910429350797877011827451783802804582734604404993759043275755232618772906888155755686807918061796969923087849488468664887418431242793161002137555969113509249035273872453555717123783189553934106631580426936843208566733028326402466990178571819601990644359509905539124902613738719066162738579046304723138978455411556487851078818719280888947119109685169908419957534275487758675949902530009163582069494433223054885387364607800335648353273284868099789717410797854485344988211944311801963882362897860294723585272041928928780143993605284014235807117783488190327259206050398560461255957721676800796176879640531656601117809700506933577749792427249449836669627412000911119646763189736582610222915818990958778450046496735757947234022348415216145962222724316394810234917042703289558181911639240285757718151182942369632131931309863030643715903599945061228095210766987603218247374617874878891796492107787057547586614516612759251189273675734666096756588502233895721373846980318832022174312301812688884817747281681899664503039626889378901494160138867810121158608386045450935429478653605000526384493664639728529902309202249079686267199589874751466939036852703329585098797166057233779272336250856613957103715534378292965494595851264473366220102791274714701759335779394541402915717540731390673184997853291676223968016751480651496500685456809747510304328506247088061653927358259916579507636089675891885340641638645892340287370681837487699932423781052749992471244070399716900888295256822068663656526702994856926578203985586515039586860962271892410307851300266063431206325807935002471439637183095698352042967183107217275783930729779528552142261650751677743530206769349180419654144784224372830746910292570809255042822892214860858467713618778864664421071047814668438137941867394918300875166694796933967361472112770620690909404711434602478217361958794299893159079889808385647901157778185072803828334661380019771226353888409242426205002183406651349500760133322837797157823347071518101907822836152482051336332670191644732856633590552124258879865449341692252948885978783260039131479905075897416875816773908215210557571329020817646604318913113661514906388596375985959805820426488927794975400754003427280838828315166748920647399741113187230603397524853321335290643372249827022507775225935110212797774389074768591094919846704565817146746346917305575463391236100987259375724274631850461072506409932653513825219867348831147026840636326961553273206516963446655443575669288046774095213894641677260065769981297821931452107402571687736951574218726804202432533077940600363424384205487950128457426955308391796857104845728196731034324430365707953248149147696858573395833402538226469659136101724152673130556118705294554790186029121829154924691629568583903994367818722901075092685363991543246003227703050721242018720676823180895839899615591714994480347869957830815701232945329118505811851567769761860470816804799915150139174195947088552073474574639544438845237890511998026724934977809189133396385195735759051519287683379569934083486536778823076191443782908170748854950450379767143907994570830721294186416221615567833886014685512000217648949552760115208005002645739699251586362710870680907698030991278442575694277484725535422103261644796438065821603307738780261285464555226963301557091883414188653929800602643446812688061894529378386409543458850123828652460841300023965458255156612151752881677140408294910240696031739880654899010083327694218254383540166078758243154902638425920567563026042512204205006946463700318914565881323238451857664327157150039393990768423244352838350359815834619539425202234930313201274328740189763667945277388360455855349651032944022346245084462258137833311111738214604768804008891062543304501271996094901323333900600012384531462496696816737731845567301840728960652118990627699464733393900467604372491127517203630379725221415556349934038241766395015738584185583260022688141885376220878970112233566012139417253593868917154951172722039404959614716952931510923786283432286147645179971868109261268716853852684237218219737146370187939982557945694676087690657957133893320083901739007883648797233062931208397119872333631995100615017214052192094136805539538986860915079420664112774166306987918840055826806352903852526469197140240763492604054761988263720815300535267729480821058596177870817539975334361380311906842125322147779972527332449616048968545722875156062074980501402472315057729645911514504831313830686964892969054760552437162690375620810557204780767269691180395106556785710792299653773612141856328573703508651959211950005967083903241342091793615448405629757634398976938100180032458578000884960773120065853692808490737086832685852627988989712317683361840923783317287402440585014566850157169676589385020594351819706793075571785211119884679220554459539310452254497297508015635701293420766134994894218259723867239693177892049614629442443006470220559491395735518933468160663654452889348149381495700906795022090879852678470196268763930731327155402144271609840453962881485896668254258947349022745975592829412799160909267976249241857056104794889538378196410349425375958582910568655389187675936159954571793306385909062677320525906126039034829850654324889178452631838768407514638626881162160153968058668701659621760976031122568858192043237992910002089285569048464868777729507581440366345230999576937972444525093593568535865891168759275115680955348230836062357542586017703924677933370063071837039981821296482615894428407880963634106720701170529693173359552229817158899307720977703802857913157680363980778891989422961724500266745834945974637928069675700932160267761568616545596538014483912649322309330297910463238924906346887503300554273060884300287111543074368172892687265257608287816985250372358923948933191602852286484260875020510114615140865097561243682133195658265170274037681998216960885958667593972577806191591539500276434811782432744028354706914966040595131041679738884445954009565615674559324980908174703653358814792916282609708286915905252853394632759753946621526937903514364071416095987688219990502750706918691448839985236536189215328017764080775645334112046031187092162101264916531135112241237439280719410954597962764280664346995555059889736234431887273003346073233432837481183680373536015061722161625601752591693751911778816903972260504493153627384717827959700741512833681256322500106845746755046846829915502094287402771806509555112623531345639230635169543170873913326355056844947052831603502403578555028186579481932998164788172126277013819799249585030172288060949919189852388997629911005968390782777243238495904687606058637301536087353887296969036818178167376470833877739615043718825004538796326836743452790653381196995541079340328325085336352439344301280965924473679646478539467255599440064830781619594543674127442872765965401181894388165763872733707126625679065889743658259415710784732861345849026611328465124279996283842581297170369863019578553012531739585466992373547578595106110621943558922207881143240542868393878235216031880128796670080577787453625661959562617477033307444537599809260437638930712335629265304080854904401426521730277384355730448996951559795942763107635691039545012461245815637239615765702994925867529841120760223827214934593070626443707683126315617371263602801914582228420510713895753737449972650165959669354162778035879319483667483892326121201354296377814214865472432852731440197648738308483970358731414061624875370910609486119607866967792199764379709127563609286121517283568911295878052522121343586714336960320860532520221142193874859733392346853444620846662586970821210264570692011668748149927139605111976244811160980312755144962461729138178043630083890516709026125483380694681069368040005007878365592176690267530749286970444854900503381768929393858423717844797200643927042057956324907257575991580499096144795427789992722847636602486588211660358773468240847651577258453028779997760591808851273836924096359563421337846721175780565235824386078517558805747051210027177480711062979555104898097523252785391041458587221027664048890488784798229426811505695993656082483851668315613181881390502931233340401264606747186976405947525837970022976250161016118157350256865337591363846830018006094039735939988046712010315901257469706152706036050371267410306601642110607254824671761515347006110322977913024507184514984497608008251817713549940759444136873548040975409548755734184623587944262560748362001047510174998178177442029242632722172849010960434116501444352104363310914864546443967624188883231824875635230108802761141340463505742250382004996344610093752001287544942864706747172309870594140155956731766326501763776478583968052468619048463930472479278416253263586183085289171578776536932813819977215905548606530414600655664045370474460243519223782601492487941066977071811277362379844067166692663456035624727518921851200530362951641062264837363683218330454343054801903825994020539569419480946506080410760662720064526371647927225471422795823867916828357928193520298575915716589805468495798758943685359954822578119485054713758355209174568433641890154044842710157175384654148577945116259489140589996773225583138587499318617424318646788384567844599070881096292164490568876860571947686849266643915870880393314209240296587962907521332415964971058505855403369708239018877997399393972682441874544199242936296653492895390580207000926890292503567704775119036002599439232551391329894560839371242970036231506720414447140393406816679585182236115335325024784742597740638135810278189889371926697479370663374787233496441572101248791378592454765060664195349505058446974772153457526917944360625266284480466867498720337545481615431834936574600893984260282271588850296039214770153914477941347539713372662511141522423756776497193705883251684748852388270211806189679878681705143571359076717149885365124952666123269808156476069161572562604222379312439750040962677138611508323312374643290094473902884970230862801551647978188722560644837576226477856763320387978446827149877750198023314159758174257535869962018179246415201722049561294350212132559830370920156602885669047888489079614101582224617487368627368617426206793737962313658619203269689084029982816998732002040651736385214976058710783655453775509967506840146075973028398649910779249022571916951279773328257725848921606629803826765073353699763042372051541772550448211517824574560709560355810213228833662081836595412584980947892855631373196330084920824355042394291492711457290735111288018184762498460494053726975669575994117711779476439225835174756004029049025261652620440418967022924155102933585506600868733081596474671855970001386996184115532940241586546496561108025206030327828598821783536764624378116093953552294976971233829608925115851308469025075740845529541429183273996804204754569299198413535847176241407104645379925287340540245436330385906792460743677010677640280391755942260358340709741926141058249846354603555922721263555833406543595844397687441171472877128852067853288586949761969083905607819136240870281674778813450473337057948978420343701323654876312992526191776582262885285073784675760449036820797521427668311520280144600845974061138835304541644642611273701780850347288636608445240745044742364528459166283062658375940841174856335527742716361459141928846570524783777052942527743451453478804938126273370281475955656445927340955054659966924915068426533648247437670583808846661027870133189747556391476776054500133866390575506007283308347252563805197174598222253721138049760761762081410915157009347485705837732768659165324132551371888299563979926112959326927880260677152080631522463100185047433324812937726711892301987557442144066493202678617593399718548359429265260885275571383198504490973005898879417020649997240713560206997559224493904916306871016173428825106616126490151718379309094388916231445500161135423244247416321462867437871971641856699367405114367036086271755292840202458375321371925152546631518161648884353238860987138882101625543955452660227874755646256512355343621868754953738634180311038569494899085997760949194491546614157392623982629548571969352980755010626019845259133271589769124009492638907267357547533781151836032039119533352275728407847589790704444610074249854189059854906900758190703371151854440911121280315242239849228012525891489578593403212372593367255060075376964900098666248732113697345355299426412273833970352328652147613998996419221220831760021149030804560896900793691720343507243583762051283166568633002507715152756822377670807730809369538115810757691278859481451212706260721319480571899666218224133057177629691044361998881273595673150593502039041474562776682117188742392718404392253469384726255668223696429699457844271330441660667975910373952163689265851133153618897175971502291034993927227762765809989070297845829698110024942140663543431541993214078345815931329002754364704195499148490063786229016272428283192464613890730273386241644820693704014962801914625132655409756022052106612999916371389913600194840598732934266588232068432019939903182166284579082321604650469300921532064560480058996307910679001095626567136045001102364688083801012124754773144648025925675062558016627632218383144665106024208338660170908504248580657819187613009891774355742883839677272612406749781990983374891922281697941093933362441424289873880011895529382992949167491480921355840891266290362492543896127111275543700535142905577110222084357354820720260232777759892408666757317695665174687229335700935165094800696510832168131285292610971424585067952140623453040840041496730443196464653845074596949421180292053859961542862690603410423841864451245163739620872985417352064202884580407194222256740265911377695994185089300839796385991087715999949008101679337123987697882306606461341324547588917008119453365043647399776163283957166804418087744123926304396345010335862789749188634768029405653451039177445162703023402108144098005757081370753481305869886765038733655664763795707851036022141817661320245376872684008621423772866443550627861336918812130388445242054914864616084647605181132379259312421518960967505139673383216715203531729501360903145115771575280983472478191908871784097986310835119262228004042382146620237047392563581680617705608365016152797414244280457871010806652352029531864770556364650665286320769739935206881572560140555659274478741772969974204548137524151513907882426543575585030925783339401237543597241976308387979377063005190058648336825519283544716001138647020158951259733472159079161934884771764817433486256030681397506796854619471194938979351705997437497088978429613605617596627589768736018822580995044377685502394842615485110572870221242900202544339679421041613422508626074499171791978861014712951804760106605618440465005571022941782656241351276306217040836663626544635757958565192433135344126830683376358604630950382337712979752162222793655189230979890198756250649956633204206400306917852694171323807291294995599980612988952442008464955018828538732698842865258711914902195450603675661266761080867292406078503581765849008749082543162462557754717454461616414946224602796877505159844367420255410327261064176450827090047544448976936784896869280502490204741823779185680814487305687215418828795586680792079869497406171160756755904670965100499951799782481662207013375168364941167251735005001133212469857878704428977141028490076299608288882474745731165298352103811499189342912308889336918969932286088236171648913503615585760071647387731425633501057151895629387441244568822021020010691490428045559983787430459541405352291282417001320718780733065417034069857865469874647945343902243289750758170540019979503577276036188346692699909473196980974417929702886258775511635411688803229088160231749437197273848673118342476040693761543391403607134196165101145852072662965661389571196228127144116706001354789109041363691402148138714068266629128667164098808910349561656647871099397788329147037153441958975182965820350606818617169673079660538099710693543385191184210459604682770253170166229918250129458831159234425346254648213588243304419701927286907359308288013789765478228777290141399275102524503496847686846925882034114450464071737340295825043825142738054139368694368745755899583594293103050473669532638337821043645111630191385420787221963087591756670032379193381867563435959902528070372485657370660296771352437321950001954753975569254687349080079716065637241492751713934351495045460277888566654244691725072714463914259225295046522392833489341338943498349548769519011570215782464890912477820001620901317628523236540337642440379520374605505935149254356414169401890745097598892599632540216814754585381212565234940973091141440426920175166681408580207190009263202306129131542714092858714308883989522463606765123636258852012296407716469461516632848877969489309868437737642582402136530397719521584702473601853122846452710141350003315767917507634976012311810290725522926385377399215933799481074446252530888064962017491232502237344473711665386965074813888111541940717885074658115896282177403839928052914151820215339519126718801211107565888414518113098409299495615481888457522101065600600105943963549561981953791860297788648292761297422783700708474837536136236106979389900957414213726503799825925537823414126677159245045152367119238057963213984495989452899121962908644021401284181203860498608756541462055503933952088531543742186967484942665538254405438553081102561516277219634736803438138469843313489575370674758285726173870529636815591997948059841760872887628667854811794875636847206445496204155469736456202102592303829667905028646190899398994447474059861405499746009845371014404883108190606450605597453991406979874347387633738386554851174510284561014528402728863032692224912701451235347149134350122020235194471785602276278543195180702160322734284198151249081169193502954193053933056651804538200791685125258873646302677613550599465976343496168629615132915497244233041618537480525786797527139861218182631936831778795122375044826560494928928579857655330243925397925844770379343396841009065997194893698786355526783342821018226682559218920676284337942185923483746804294855383870701629696561575461806603289694273827124942661611813280418730053269176330313901643830199180825369621992225722251058840627839166818958965577760696936156163257893409805242890530464814879803226535435649771803486025248251220700134549167758518638281909743826532442128172043592070653851595294759413584275336088096800531884712627646668420984771687518633644091390554543986341627515619446604252387263467542220451437724403886023150839460522353629727735813274644010073221688384589985512066649372553993736455809160786395611828165029678587201981324627316406002164849070672719409757127451671266643120754389246692876252210732740226877980420760564228158018439635150839320843181970403998014677490134857279439731289064451825529489422716209982390583742830290484745286589647016592971448907850235519708661350219515021794642344320554273998541622124717931226380627748258433333409843131850933777323429674777242554368071407186189935802732943269637335353815771927418385357002785263608352977514265307352598193027026485496828027288539911978353085529139677495906415836856838608078719239438936567846548967568299535535312962213629162028053335157934131006650173840551501801858415464068473094288828422845568269905831824039256533317543026122246004140892654578102056322650169937192388184579488269771727122461340540700318469826140945611850489254563608916058674799518371436034291832307063229165312895221579618718805174356461957254145655357514651753697890431616504912554294397824004308364404630990535328464782345573774642680576524530081411333018927039173342608232940490439333898257779105196080748287158956776726489584643979378182634948697707047233979500749405015503324349379830732763575536703103731232088793887367537989402210399886880156186015032613981849838140248917518706662412329382345528052371250020325523636765509813238178655249051978848691126626681751484674730223008340513720582666541979514025129234170273984164818923245877821991294278514191473823948494786952729099916746090129515119500430146879607439718161493358265719674908536168947127392529774646608449332024485787297610799104521353099817852427209618156110857980696742497183866833637170404490404062861956876403749281442879887685555693485462544761722187738234529450705189030194755088893997446954988706163951544388057856344841321235611615354716633574645623419452401905165744236650956852321729154872476185390630181611179071063877260997618196322188451615542761066361011962160743051685763149554032840558818622456574588997382143760014350016723065922898486895284376732390429061352387438801984543820740976244459154873557353018026364604266018584342215990749728380389197986909364789244355830836985976010402345983151369094464274701379765115009351846803440139961428664162866741034500484800548323853958811808482381444049505242399423639745341983448781085389480159209083522700547419037649472866539000266012290998447920722818620964752146054748074529425366120124029734002100276388623874232831955503932521628259866936422483277368744924898000838914891339696858163644004844183668431435436308049483175684427144283239582240127367220115880991496345388522265506092165111504033201734017262850539902342029379453748844958632296340069598496295971532913725476581235328409880878897490117679830909957158194311122722719460482895910940446650793179018140447593600453220386377743009625056356707872344473627416690403275277315971041584797127735102230451536148980812059418808928317636820671359642683542527995782547503697722396819013848003630979409471243953832461097870776413403149182883522193404472345957516663933050567423224456566024897957361701054049421884559432226218472924517952589333569101115238524774613240700716715788065505927710869484976445551494202916699197152721819682905891893021705192913459015799486635700159851127678822097139066641260799066393392133258579895665655223945634467945423519988887321683936148358376611908301543824153393425762720326099759617429458290003906365497407697648565162050364820849182767060202327499454396498611543607810266250774936987562995992380858815202008441127138805740733905979056562604445407789383561367228021929801831622184243948433576805519254650883219133840029482332885412023349587373679666311723019804400379226298652459925512888380014175350187125950829337077187654498751401356877596200048978570143967493445064327247571180913482464712953699194043455990361203112698525357969057325934660271427401552993596859637293784858399143311368701509055412222207479371379270814823698927921589702567513618481319574718408987148785660326426715136156841168650537976957224112222410518606939499298366818932210331856803481559120549477026157995014875177019579049819177720528778176975919127705649772567105712995771313083526884258610713902245986475644635159608749320394284880356153109042470163588841050780044648995028842465131345831616951593503680331610000751994395360567023197845767685246202360134469245561950879067816823077766332507524557937258415026517374641169605863810603791150609999718560562036936505321910475763678128380751491775525006253715183134072348396964738059841239560662230051741577838011421211888276222188183483329175402855116094873085179630923608063683147988040399521253914071099613454860087488241932456335164101173843649539833298000293409130309685298490571015728952642058769365602569087496545455805758555966880779313374994062035611375032139179990386921431205400127698560789465047217729156594077952888488002760317406182171176056694580433607323801866719001059835456366032878016221854780710369183532856867429050352399396027301801383889477699908888306660005132793159839026166001503562261015969354430769183288435748185966554900669660314149607192519418858662007980114780632800397935086115167892895307917989890492637129104194262461772998866422671121370839779399336775405631666390903447422225044181619184959413437593685703462549110394870308250129336476335490974957792612993919618906649187752534727162927376273458701158947784873237983666437060230219364991534951152165614409710673314272060660104223539731686421057948336350127951638178909499022421052272045027579214237081364781828057100123992656743406756370416228772815353943773972709153373857935140062985548334083968339958992479486778116349647052022657998481556243583389572354195276623172977603295186390688786526546120920724517001717124121549374607966213551862182503888824482560323259154490494929187678925636915179633296807190908985957055547250257212945646952281358340515475322213456051836753345695075586842025220480414088834341577516548458544165790881252422027016816734458097605391869748003555341854212454603823739050821190134488502647088557753707323896281487605263028875590126434703391601197312306488963574594199791553598144008267860332477934729502231228434020168438321267921763384200502678018933661575050250398919802416825820522853207685580522023360889798144291601814936143852857024514098922938023461178058327938430744084255719346460132375618569380922835499539538278775759403628193135498480343625075631414344326198671296315198388014779549744030251651731332132145639583660155937932497521376335716817034505663332851017716591218983947798063441280006534370955408880112755293830698069448874020091215666075063822332825815676918603724965704885829179273567653457119915086966580723401643324104644417352371042839375625419342546626814351298460917991259307801161193959719984397706951474594280410052538319227464784938982367609946980376701799652713855258901903897643030207981466619999723412732687517888863703350213192998678372193500670759875633224899027870943008916893680679014020920810990695658837636384737723008652762227553929396981309560001365168893265777325065422258678335665377228586303585947591634151342561840234264480887522418159239273152375913642437808081702300491936288693073961465794143218604989030179636063314091831612261829359900879627450057350578196552786469437020833316689120906100390406020410073636648175151234780704487414122554499333834214223066090479258996186439242219763836373858081782637343981642110912189952262003085876026654611450561813204810685953343165411867765832408776686683148838829662065940414265590462586761278235954293125664227495635520816235685948358124655646446442229334769125252750646845896849055081505197381845541684117316849618949961764632077533561333895398535725180282243433853001584663834571567747978883201481692783983835256156394907829841862864263472389440469784502205806406300291228801074603056334292825606943584802946868300363312898760596933642262230774919115612939659686491127266568244683048185382030164951825278473498387808942094200522510083641700634447510276358635702657768078200296128678360170028037070438751800318916251424351022480523235095944433652212472943456364439528058196008768100520382713565058504156296165828290603956988039704969241233823759540430196008803864804144835675547887271784505546132426066844400373855700717059145888181908656336608650489568251292506586873801055211907361029597667895554654460038973884401629332549655890566581281187335289767896526585383658429672839781350023336230904455550629816334473710227281391938948959397921385060797362739489372201562495986059260892305915644926549736761363853796331691539715167306337341838019150908418686473291727976889398191723840864673614489711394164568954139740662241581626088155708102210479157773739423706410466086388578881853523841692270476859534001357656706949685415165231648891455380632698013870294445170614059259890537836335943731480145818229167790913986090851846694351223810586773249267562529691382230987808781347945690194750719407347933239736538164434951882799399365474633391464134729210087188521111319355769849217358368848840531294842292813551291231863750936584750836911332448115971099436066644274073020830114664816108564403421547059945706352345910791478256161058666226309192720292874099684027649875427438714671456702502301095327842107703232563297956408934951958046666332778649559573402930232003966620673805853199544099485816579267170874375707235543025733448639583920694304894403250451143674218487895502549083247662413563586015870362740185109682009647956239198233023644717143930095251984786142514357750720439838350280650131897872839396267106712079643503077261927020879006623926271284283655927050746702479914215078307041355071508572122153001534367749840218499447307785134985922750327980769995979806102528656480026051191997436254616935430411199522846359183355402763922772220735740997601467710254958348553574105044293098540759278515765672281778416370817441125636381921996084204038698072886726103736853060069017652248381250650031075738739005106007221588754948552778325289899271308841793685381816237114156775622908048398477034213467934913203822711148994139798011142084193956863277152015551912359380045402052714024009975728776287601075605211216641648509505466338130704908460653289559051931743922687010282646206089595459462894900626571170885128184469216583258804870881555494385299795448938923052328751941841593991683802846743894501277756198203098046268308128955864290101144622453799988412898739654745960132704462572392244941054915806362041915903274658599715679013020353858192479541616947116153584674391082531819694048756699271635060305066233991455017826106230960983241734141722294422523990752982984771384745891940612581313184133468258308601003723428654060167928978882733184393185132272447282778833502566793720003513255688637318987501722493784947038517947889502718272580699642132812489952108008480648583841370726949766402111604165462222737522902512183143427122550057473743048156399926684955235712987363559071162959385553554809084311441205660716613478624460711981127058028458087566161135886490680279712704344954543851845726575536233371661379876506493866676161672862412746078819584364956951681528131867641488951877229901098870449359336143607996086204096464053384708082740332348386291055635727256409577159069367567445401336817950797710790654067136932817079262025672937256301052438248925346437640109066926686613193291939044983429003847779978181177810581691220596478614113185819815513286956663846294132329472304607271501494196734343844045908083791848509325341400722619365439035566041218371253120348331698025798725597210338967666271055994125168739556389399571451185439270697722310765000187617174576103054264285340042551445150938533820831148414419065012064484902416597912382153621186310831033969173023729227735863654502299621407032374860069619724557185478199603313358350852331505204265412717797879354500210978517601833366866380284499798606250552105258550510337452101140919051453448265322669203287615263588339725133943620474720526012579137669257587206282212203543423016220261553004642740186203213347235865748150177779745513630728973364391914532161814566070195323211984656282005020720701121459327696339500566686588501558603344928734443683704281349430801284575037536605372194384509278339329195772126577316970881467758208366111801856921594438263221115327255803871479476896657975709742645105121692941893761962940033903008313764490542860230435541782603697303481805784527607903736032464846380946085563103790295592114932172921187382963507952870209620412407071757390735112683347549237144006085020140432687532626429314211801698774183941841762939213599928041418579122609968021666197148049233474897717551343012042092003076157137600635467996160246650856072636250880717288381551120573854530412331201635538710369203503409833945671521093674206856621537125356645484562669748251431239518622212405962993831093338382721118554501399960642588101938873898295619681074120472102721239391454219923481340766186943489987016672497489962135535905499829861727137393515951913734141404152248117105175172724944750547536811123266860299194121459825358744563480955044027531822530031870448770203788651456952209667451641591610401949840873714388960620292129530899778241643901987519251232220197020488905645596164197716331838764170382640620729746392961728148195615211172602403960125457825916841470385775173411362298151660288313704071126240754951221591834108191954537780535959211803044221117773238268264145351991132652713414765446084639537503307376044500519767948985518139577050163219747266129410989054978425591436136102495382530197516009897775909663105816624489021785068722614529319590154872910865005221686417096325106140345506376871015849264341669172242401047436515438324018648109236690889308920378207088811988965125330253320846172093389206985978566318657216475520319534623969890364536555766044944201003457269794210294056419892613189680825744411580692291581982020384631251640263324186859235268540762813645083861181295829204378183841098129373703791487366760052476803207258257683456513942333593192313392567580730576438910291897995433790589287882609927186573087753577604807482621009743848009241209636035040739625214544372167181758749932046503654099090840634421540212032355639135609762553562197063164102656850031505305085323937948204629591582550770792970623760094411851276500991638983334149781085910397651932152455040149525989633223634543412442744024408353212060472566258265697220543448576429849694001972429151691372549066020691363365896861871816869210682714851996293740568727071046320505359244057824486558914628322370908489677389143707240914274545868693943351857236269595173594391474206278390799102895577611528627896544306846476635938737422615510598058413055408714760411575522580400308684975729632396955290989135596179040854550721020738820750890438897171034354886899461236909772889861250980898306645414941750923593190043695934794885009605214033293793984477359573303953312196142636708669882479112494279609309876997868274704203045176000419027282615105532263401332130652240900162290801242060224785432056480649607754615417762904923478499663608390929115048707286353846277461378606279566503784642461256400603892582180628931058239681481147100772445524006996515076811302992768962053030544285689118155562537680584529193258226852448899796020041994690800524244645469994260625966455156024563137288247569594566592102586069639001921734973826347560625391124262555961317286591804218539474360002290673645417623972018918845167822652787631687597607942554651859020773243288526825249974694836673660386758083578760018387309735264712236338903428571206807032669343641327472277404444735044421792820812430530259674424904381888506731029703803342522399277329006989265654193866868860909151380894049110001081634959616327718911800628460429614421391782409019799568740007268001905395835227606093704787337747759175632171425941030562266954658789210126170041317040712991597967621085349906969715042205512300734462767309610998214199911729916269098904257833109772837245316858523235934258296252215032631700974515442987151253045623695131823189272133896763567884305511828146503795948693838195256330294927735916903979909636180812256501851839707469154606541489341933075064511008730677554995035433515248461315304450183007736749204690001325371612691202905946213506949840215535981297829391380421613439964702683060803293075735436124097678000719453562944093214143774340553646211939217400558324247176735044987255771339587595447856853992965601753330465099002009311625377669625481822096173352948751069738695289643805520547403240489135375097332528723829560226429843200378019207478008357853078945730655411112625337072482565911146433097577290882299322546295528241249361895676331626266320517853676100262246886092527640704430605748849547167063446275091750279716886455168258203871284400166491464881893187492282282608439073125106083338721301085097853243383543143904892606816062897041555856389461857181177375906972230662799026396419864797748105982311320698830499887195427266333653548036104194546809408598409235095457974815113439072115059391478063727275489484185307352447562288980378243656167250551090940497739987066598016157325586002397280859169006591159957502826536303741840621374313578151880381906834991600719269113721859437520763306611302384391153005131534952802383575631059816042797160582130207716655805702232687830418035346786831199455046321126082630287135356973642292431765721959042538888926212516331846516533652889576177004614913713253485140462489360297409215594348001355968270857228195011860861030091148295231732328623913180930720777059414859250367822637295148969260052894990366467866188041306470689067994152152995024076879373809453727154032755098274166182830173410520308566669326524879671535611333984620630411658563865499357478858151220081077544374386198154180269461987200740541400211220856446350867966272605334301818207781260879031757898035827974553736482488080214943661467292073716636998481217431675545315722657374959945070997142101081472222623745164806051910828718184701446197412139423214873587104396154677927564162874559857109382072233086150434969928689315975259633008912000704409401884592406149379450424153957583194957759456670641550227047678088102517998375279074215042655158781721315754645748195642651867207802717301201976491626093194682254163367266155924182343168088827597611793686894892554067320854896225935722635022574089688645611941163293661787139901017360907170337354454615257334371737071447584494989107573229493484651741845380368427380028889432656147142970341465805596928586873824346898755298933543972019776649572718358434026554574935552419402968672504954914627499857049976163494395788049056468378479203451460028625179118885828498446194018731569125744270094417058020635405690731732893122768543653455811047963193803080641347606078055851160550387690827330048585968479069219632389510003032888623999324811393191815311624421647091284424834905829135415192168674643421154418657596064447042713922353937642484808211147090381893927974578297834293460418795175998388247974240036145757285470166720044757311875213881500247799878927126298637077251015964829246849983098727275161564767953519835013519847004301992049013416093236614367966417269550270412937199948470177596084925393482511552369342766504085549891530304013116032544220778245912592964455171353276193511322279057825187557758509020024325754237901939115274710509102767106259841599153062684019594471426866964621094290169391695196270496527257819261100892881655034880373613470938570894881891180032655261074614339034786170241310987696373740835616105188891527563750597330834868715009084598344084812388454422783096485581747025843725088220869607730551914384875547105344715506134386856816962907652020237576087544515852390275743544881906196400021227775167144513696155330201368733860425014925202295712754090743307961290988928638887884808827510568243693427476035358136718838831151081311862674449295666003617988259266739127931076747942289580475325425862539793925861655299320320745254975168835845483335272538357100224121563930211023738329881247756147812436846751545706649905149180761293655863255968847809752919836334439429322906785840216220724207295008028106992972872655226720405536987908232739099050227177765386656632695806556158170109692002888724244653381813787119315570166892297994490296813202271435335161528959983286814483110388400494512404129693597590270240383596148178767041397977690492709290450311339508444190373253990442919006671746285931506697758989132229802695663823245746496276886288245049587025273856569122162880983453671565142478161945392946083454271866804208533228619063403852483186870606705321362577269698115533160831668338137652828221573550903925495328244021329983098463978853900683137880445307451819723618160009538727731542088408178813228392820168872579124443730317349262396714721753459966826913533535848803993758468529092940568266407317684454280812589417122935251874175886668311085543849175860063657508009966023197001598942719994084133765138048110991571710035239854063328036583917899639671701464125399248552211870050982795405545628721487613775972495123943336792125239713113753055051298683344673691176005372510093687234110531749320841948649428785683553833751274228528444117842311757512802008935573790908493681190203661454009800042622106005438775019766549537496697018637183760702454570372727564508348241903221036344262574195911744423134176749368068237636409812894208799956420697106777223083051545500817445178051109773708674009830003206701620146829458309053740617638415263551713845734180199006408193527109524819960315305899065661071252260271243751570591032941812137919660533264867956000269906809720976899125092351952826877256756184313102311923118229988623223819589116252531687638087516219092728998404382409091302399541496376114589714655112899074483592065610735985873518041492679540791229032126759709120501642183004991502901422105788947519182122282033043192998587631418723339114563429532529074790745868114364986099498446940246549334143571846430248501945069750822534649237907899715596889123388736669905617912436800914097649032895441913310305739735882432269736837444670935252646719198341412519095398323617614763953899243819639813829260204893757694418348906692282644246503087191726859032407375821791412903243181003690332065936943157206656939890300214212283461008060946615327651188810607758651061222948153694765903193231450671725525696168180603870829199698304353054961544394923609637570857146508377277308353963100941659982230148481115098400722766912886925519772193559667284031907545960515455821993489244061544881319770569399555205543289462440259422519382817751090444026605119190537707488983666069896950745695967277117948349659975845678947881690857826578551608896270053858867155017717579161875719221845436560532403661580708215362278812482182507072325198317296489559887691355586601511722426290135822439469083099975176733592515418414135449154743129023615845561761848697476356920008725126288591745334238292292048140056848828934447142425007663561067963099932195959317641787097122679483195491068792914886411226990731106878585251675150737239289253697615511642846712683524618948321758845996717166848861851336389899799841632541436479205635080016901049632040506542774674259666396267867624430669612981161727733607840829153592212167426985151634551120671224650674449412210228794776509066124763581472829083358652471010531208394400147219114527962972951703041007896998072794916220703294755394140663039119158983056279247930203805757903383775101841865907922021752262319481936369937342746847759826114224771280268331516657640234198193491045157681406714069478023882312344706422976358526369530950307966325338977959144959694756060075406092513580820454533165261487661166441682682735821351390722927366453234828655929141144703214679198197390103784407060497919876225749382660870615444824848964107950081864906448599054126511684729430897914151646933342334716798665026454944032073143046488494201359720666384421539445214932786799963682365463700388364861585974476169527261791854699183181559841566122707643852015710090603062950304913169276826134791569619714355033103936011013006741446205906790588034642400812258985689127604710939327650688078594131668984691398293597438063820917403083492473794768149620485371415848138208296999084132432037965809118185324461558496949763822618840195534630099690158341666837739388466986697182010625742263026684768969145476499227022574343815623800007573932816630351034702647385094110933545828957299392964949926036353797663266429449307389166190843475573306429517409866952300294750080678843414310637292118816996604354100645799662717981823855384758870233720959218602891992964429520606112930359944637844807374864124634019078690180275203353781462009667427414458172178057864419272345435017369068486257730853210592318612293897278384541663873634384683009941669353229628065860145603511633918660029575627657518765642208295485831014300502321057098186408773467715664225056352756803629678559702726446882407087806096097579444550716283563621364357885173863399059014135712202867465594651764179954615362947177350033351950220206947650305096579725602370234156972383553710560720239212276718370157603387792012886371264814699487566526895006447961534813353680760038333624482735259243251742245910479187336922019707518181692039514674372266563531124624598851105184282454597922109518162600527409468518258037271580486637079566452213473103046151730683619428960220697229684967932537200618672186739369576853025149902331553278815857836927531337328800609179876561039171917143382309002369169868748107645151813654536616963770956025744340946310728830625852840459594895995686005351094757833404816573840075646718252840274247663148823635051002192384238739602150632145591359686265742473165240397063512288466803255242402944370440420284976432106049729472629928809222566306606154267984709637801625829684247381595027023911034926234531324561050226660287113106250234267273711609969580683152719411215829458826680496734023492763837610932606512651283035064922464759037355372048396071102047608084440780478635289664574086564779868633968123079824593738812208618872352026031783116786579993781568420394141405174468143565873927112851371733100548872189982385172380358923005025432388307450946191441775954112751887207542493424079033700190695898470129820856684767108441463838328554774467089788839554147489199534739813557861597415086621030017036232693842267632544028667665134688606664671931257802938304889539581596894568331036602535953745847224722583048563293036106224184892775004798366871273662004152925989630981775313669450334102719948977303565159094761336834013861266913543263222692953862361354187688942334671118052399383245362638330539667493706814544261018803751565316879694639513628188329983394784699369617685267810617760528351630323739567497814373484324050118004105787883890358101664438539902370917251713114307971710806814453858551016323533601497956311120073300603678218637217466708207612927038935711938032945985260895913274666094168224308247475824427253217477275373566424814523983701732573742450212919310654473113905249881183765148290872404276291518349758381891569854286862834068168291150431535777347443171272212945685557902473279480676559499399374390254279958518194309193465363282898786536974612138430467734265441826266483829133542127515109948735316930828383765570900145665602191003415098747919674737151443267891631157251111168676732110982083304854343863185263476509980235001658694106258098015694968342506971811282892495551080148470177607544639122097467527411512405703147159486907123688812949616629836523889608910029494660394116258950431788905246414807468323055984293677805101022279231294320563373637907048917855398899167109259040196018472669976625750443403824446310376195228772731533187972889577010837825782679574384906807215218334957383708698449033054283455397828539546469520620767670760639402507478942447109964658896369901818750690767558983248818780010431768721796359885984021452161352343410288801077256800257364074874913209232295632950746080865005627166528806155093435310113800112804935459174425492310822757261862948977142805491617906546081125817436286592733849596555458486068121155649365774011867341051802462581089662010224642626243016510896322450345259947906193114222389903507102925872698991912981588383473505819412138804485618785754383952635280376442283492149304203028696591851490705675231501116791456613010753907677478624012121445896388369149719586317834437132942586590814586560103546714532983800611935663065080895569472036742042684472549287086222859684769385311235032997073112888277866621574280607390584716111760906864600018796521049663522822360060343463371170023516663118224795737507991103680065864647524543041310353494944496976165156614126393540017714929743418576613860734960618784042438553497451418816254975358995437842279639790471469027586198462604219588075046159879852566561751463014422654967994745685419719501461433743750436032266604554893028730884321830214383605585760035410185883933354249252396736508046747823996031495004890863233776375909276944430377344257944754476081603511810989611244694889276928905778914038057037711618468078291616198526843778421985674087644025327340642813879757797859841987556490219413975902102612450848678801271743738020285020233942421474724284504839440856322892034393122251903254250091200093810582249526529593755722667764977125648936563276285736334605679037320705380359899349285744881309537589586039519073587775383476472676959402967795651030862719377453251409174144514187681324404840322037179901613783101392897681527138662798035116261522815634535155021961380072340570867315185859839946785978377480891259064945814966300451098255667695761338654092798481076709127074451064492118976847201372917028307596898908677988312626312575713043060978914157115078182417150098814636582497294182800811038505189057300827975649030188997325319076121218419091264660977883157003691629933082958806955393574524948012785376985176088611514162138598297486258705085259567003026506733141263698535426707127419704947562701203164899045868109613446454512640812896285110386456299574451088183800895746320910781037842820634438437457230612157197217610963214374470697005732807667751118079798599382683863216799250791422617815228623484459950756477803948081021827355126850662145863893426156025370522786149937398281966264629004311332366107672274169348872389715097744091392999468857674354471482653685524128333737677927233872059692046049301442750226295084846998624058814380039105667164232306779530933862885895143372864100316621368386733879026122421794313081060931477895137826193790505883554612585160317409869653325687110203583045568992544769472269776952372075898782357363294882610563338101018700308040201317325693588500019835071253876458343243424974381278843994562876547022531521086700410889134447707814121402884536550050044510037949425807737121094292709727709031002093622015421484345906583471950420165012203857908177748880279115336504266260984169010101311171439476768890125390768474154056452199496186988362140536864988242355660693255709724376416202233894788128473509181404551814425725891820362360405944366730563544282299110803160502581402953299453571118367242249019979258910681811723309238122913707728893738400030650106160851973968244115118774533651847537803280115708012183620484154882040602755623444341130824854292336548323204001116298767444646344201786493656129922770461223779857935476257166366032470643498443419885764791296825782137314645244152411894353752475053473393343208280774871374116361321705116828697198213222003036546822530572558581063033794825037682623140789954182060011136468051488632499787015419476768433525917553820982636312250337118114407509272233954321150727192533716984692250830150468339577249861220321146102519052267025288385604407408216239363690463994981155976137050293058828596611876110818890325888645697227334603312727670753320183527458653635147900465183031332717970850755105768927472463916443525128303797105091661312886999601387409878671983539183482585981164723801108735075924772831972832850703204119254831649272324361172141231545287011024513476018811416606362463953904085077493549884727957566614670381106239432335509916631888716755689971697416067252163208287405668168353042516826896071600090725535731345364559863028440177059139351595771479969747833647530827469672178284785887767036514187088794208693843079255656161810362862692510868051982168998503425257526454180188750768328421286357599221506684402398889513768956896017381922193795658481513207496038785861611785666013448606064461109876254066034539186636961190687463444349912371864304945232182146257375254987780436614302483830600159956106736042598025351152437184046079812595541013043944483125549494178704013964310145295304308612859008098232536964852327013285805540732484649715467611148568678070106616882223558959379141047144504649321967730123152295767991775205535425733070229927046970363069741447350487382443512267934584497989358379282763391187931807942794758377467506899256936510299439211635684357107300997434248626096727602767410417563820308225183887984605671542081460714930960692638447507603748857499106084917300129631969635211447689269179547991119565719945014876288781634174778335178387362155751411993256244955690665900858389661037268289498211051009145421716521769448895618776555852363406844592831240738910038555424568222298476492498522719121573713369669208305162784543047150071468452565541544702790731627047243764254837692941875017865317992200981159679798979128783923782093372130716741045905642519765998036095412067097235579717156715188636819536494345620829455301815086948025591777508757000278349682744038099220580878516262541751080465879197167541792816872754385911598022615831585409445477958839628279845282493629654882478043149359625834622046879080465623515623811574630131312139441385685669424882655132654916056150906369522427724614213782154145243065267127644009770028603573259633663224535277154488872270090844308886601768382145850434493515909318152553834402616197462947905190995114988408143896342821616234084313837514423711461589357157515571665744431899635542949225219503078565413285496732900381037441587426930969729688670562122524422749905365493131077123608437861201260319478992627553873604878238825017038966992926115544755213328026136058430626227198724511782706348942300110625889427282752152856239649605621561502706409271024223980751687344758092505029164709979905203366280652480464551179364767963195822956109356385705033437983599453355108247415558004400006253418715375229339295107261529756849330150155017634034448661900949974170427621392764536944851914380332897035580633775528845802881084061601107956821315762896665607412361883662121265928125871342698118117557344451029494699957396119291730366417383627792716701447978091934434212439737003796739447002203988780630358826211966708599896520552099664261228142443873612389951622024582315560494312465950823480305139950312274711750873697156598783969236566082265267117850316165584832906809928478408736275940363654318328885716313210350737607794636959398696494681958748020875609081447960783749902393941338803494287397393679096621217520623044428986823077927978743818157473065728380403586710739038030165931081967673210208247468553582931594713132107462388778462324813364830770424161917409921733706895724888045004817348836043387834629789465734757855703760617426426536648835312315063137007823438809734992370237609241379488413354669578456819176441865730630143138377947959542073838143101749843642245742441808126624538245954959326403553510359573604765927037745182928006672445834428687846484123257734786745629761226736163540871331775929994822556902381259297189761328864811526885398603071590209992017028400172791576082495322671593157954604621142029078201646324430187738901061711880549336895282540236016167752648237069152634609976692062576206185780160508148542544795391476914474417347917570440247956566577651197187729940493511357886507241301293034908946461049488204049980444524266738849053298259535222294430752867213445689756212859888786437468220045020945930003603006566437928645679470139198220664485884254236984748047089050076633072158879441682023342772449570059465478400378319520512680243106533445503547041056395998744051524067801921154438310301619378979278816096484838124460702613112078851125302949315793123948485850277705522852168320915489155275680081467583604186655579142730324822853761519607019927426284540990442522092702695792700355410191305976549305232795577418921323517763883163641269405877970632353044531049503360120711813846617795725999510912215077145459921406992619484704498488355246382041426890133592046316928619574175466263916668540636023685680488084993552111415039487052041826920853031380379435098190883181896894781732994911432795938075408350179215167478464067184264776984382987639530713726647977208381748945094299966377534099719855436849448689830040387440048624030178196506668791050959437827588643504918362094659713489588178633297367692404222387221715882847542610870838072535783708525575119556673435254638270048749258785453741306134098416199680223904225184551420341945447668121551421808376504034215243736299043067378771157636683996127386181534077892094579848791478532163394451227762850106456346788408964849581812449097651379898965547136352242565033750686815605104630002968023047547111571190792544237037277110841491380352509751473995184928293787696133305830338146694077937810262960396895074079182803774709273412886025471043131472566175911179599659923791490703738319906764516329477973771745672115548949441110997410991885570646730348148730746597549220903472671591835110690604966004471289754507663499767760206968519297059768397099295116795574547835820013548913363729882404312869587501659589825603645507953702940535680850393680147189554368200562004193553888338910391792795801828187031562370259444673798489346740170549708359452853857530101369914280675510578694731315802635247980618423281869222110110248601594884236326807847902985649017538244712480266365009289536737483039217561710934009246918558133906355942900246063762427654010361990759753019528183350443865076962090486353802811982824036619408780976619517312664921834725296344086127114477930057961928916351701301428245271729459740064657523340486255078281272696560699018589036334122344390742403524787393925541785016080396541275553328876132154258144991614648134702495905447841476036393652088859992128333538952720919191046529234087800357298356627140882066009008063818062262269094266047311086259213486652045618732112100655308530212826440938022862884875843410463863090337036274186187561260280056194887282316132047122107365497344081016013733156256019327815387833694411293322248108104125049795878474541192217333818352069079680085983479689955680565709740866696855090060740463057705238793556029516886535834747637213290269789389525131500750393335698166089779731762224803489927401859777119389532465948891181813415147774863002615731006308342200916741994696890959674924265712932745852202249434444817573051370771991114395796543232477875481714781722876608701414411784824021070243609030681390015680129014832574022809761410331574690509869999040697927760680814213984426062588510584432790560004948687361536441487019006368432070093589507752838008697713530479161127586210184495216420890047328813673247766676455042232469470095902085261831530259440940235435025402711998694948381803266352974291727687589905506144560970675445190409806043544915687022390636091707267427017695945148039388545555335523619199943951582690339065227032061723668182261477858885430637043705429754853584240449749471578141302358396139279717705810805091826969683031440146567471064670730771842300638460125738535107522749076942277672599668048686968589137147730973429032030279542591186947263183924078385923411842852291090078274238920495847730672540547609445348881255611657603740299575386608884016383657020539754281234547148719429845451372143903842905296119164362283142758814968609403156174640539263836332239665917490566684757662073657471282539456109029326140201824139740187747621564166626592598011110674751876982458227965627467438897458601915181954136875316316995987440981677280793344194992136366832381336377706593723815847961378821822419827755705626174479140500051375974308678635311760179942491578763519225925071938664079440695374814082062923347523668173373286733433369065233541293327246203890534714228205648570965300012816101309942122102861700567184265460525490382738373224970345386357286949027201649816403152139365616217462682543210048548777613316063996620439337269110296981251947030569936783803919395283992945932109090615800401202776551887827629820600151230377711374014297990605448843300950757130587306201241855422899422528537679687502179950055499801206743417836955775952541797867846617128058201641083110469560743863118160335864083872797504240134520537538134138452826883366091383781020815593430754523095264061206122918349274513636330813474474340007248420009200258207684826428490184110055714912359081377738638663406391535743507144205797164230221005315464531061774959527531117571138501982377138587500679325038192536402059075125767632437325613304168443725173226912057027308766791759828679120710246309239527920004774516588203665815412904974141782771322414266741808254803123265306743002968667804032748108188190125797417303045836386294374641141757597794465818450244828166280093262019293148232259765892706179942031149403572511083752436176988416680714213042824131255049742050792943311939097950314513227441601991259766171511173895704575879561758330550263968376506404003735115695701945034326589745023974888187612606786412919546287751611750257402333731414519602966966202159234183721872508744560166943197983205289557070375468512924597374043086570526085438381512021031759460140609801424527801754402901012057855934775006493674172967249653748748505716222813420358693968346936680433128102495816212585423385787524132562806717368519074521923017722946838169331998999245439172930448185849742921915784071265440082927638814329782669912571305423655517700658207847343483594068886221941135864200910007946081346724815049061833567483471733038429306858921701627671794705767429686634147500616324517012593355308860947596840635058145691710341237297820848598330153516991287202800959020448701771659922397064100063575410011278942644709066591886259877787828368092032331907577799976244341558668316685769312803161357017104373983945831213205268581111065791497378343579966717050160541050630048658688087050544101213824264708300483946335828167843205292660525250216958737458691511019564025097468770880870540310625765877693300276424861155279906445992083999780657076283631995844389490934634762280000618523464250632282014373372464721003071172537143635848178106510274986764598215023031337086215925270406035563998981391822391363936953396312171334202738374698357393380966269304666545565338394522065357065372623309735361987916714181191036461626553902290109453277601187081977573516387823035432035943195873307676497630797274557663948153467324918765645253195254760326478956979469483280779551261594884103090438275502339092044900972478780105011745525732279537589894054840230112547521663117360340073235545936318918883575234269449025741918174038986802827766131384870282976636144400349209994795472560338644413659554947533778940330526296471043018133572819112579158374604575920211132978075290717110498967520407346629328526301178142372783681331659375782129996074450217160366432013218577338699161573780509600994241901047628205971084528705550743918636888012757067112060350987085011043431330065579200378867854432777623995695872899622738826476846514441602583229631067113107638118071652657756220754284363396334651846953530962826174429036769036277143478907226937734284345170187184929441912855274762180565270924558497370873401170354568913574813253471054476171978839519274132938578019648610691299099062062712372907290105309925040156244892679040720879255396174925836669279285320914904836510884996434005971648833919757715610690172522404700204657987194748132574468972925076030976912386127085302184625984530558408354833987468665383327738835690285625071213542171644590975702741961233790585966083546047156116723651997691372053272800768854036220430765773595744562403383886532147870892546027800857252775590355442693322181462228695577602028560661981861093607573326058711944187815762773753137793554972675193763131675579093129556734666092661355406340266754460140411903251773950153187680459338242696091926258318155818400139275755506737836396909577055070979318616752693802245674618729850475229867840552586899660496969171093355588043676019859897011561023418347306712831994574919004074450073172798642116464304396516489543620914216126499539320918846154509675578027108509496293253633290398420103265989089092955811771685510847433656465977903136358034173387519651560730666747893593655059479372484278364846694461060590769102944336920203638514187606623600660874373979500127382756183718388783596909570781138413646004242025370725702497403379762269146229512132402287352610002761832480255226875420957729904397231288640764163130863395297573011039381332397777098749678315840976167672757423260403347267001258590033764800995380369424016453898702485338168332174476455535525636573164399923928241446428081735787447393215891812943132581208590928444884317540594602020590119815441995874848879984790066519841584775020910172473816864287951939435120370416111106915331608374836922684621876531705565212414877585125099914672474944102836686863919218993928720176917397226833322676837621259770226966716853041533307115101305674902180082550548800475917481316907648806224173692436826320059304949958488966337407753013687204657133257495640141901278721863898916230116366652504930587994398099359030176488724407694313969487689207139965719938249612647656048919615279791008334454340442471840526052657852142396709823141605315582531582326278550012600493649600220500533168507252159917128055787521975368091689054534326112662368228836071722514852924059107973970427557833851238215215716323134174274402958104421148172961883836313996728525224740768524532403059216525813574334035765342376831551360900282647114532551184802799341954160640430218033204673465837219673485014231564799946540242790727653466746228480881978451991382248510334228159756788412125380769657010197854512565486352779495632971681934574347033880111113838468332826014029466973145617031765802693912380764992990974266787274348980463368463096947928354796218779037587037799410441858787719315441371586024650496129752091949575228158608855065467468144766767979148758975294877385682544662439571573694572686560026554268006049158771311107624565179908393689777883184849842932942387084760739268290811190066369010858928356151348423878016491230939719407494119231732069460165830420360297817650272230149578463398534387621301725424551794975394813752194552024385876530734392851339169841462840623837558245582531874256502854422323742179848677379174538397568034190251011453372628165912079123235364554256347273602669214026221607015693697101668472985885613019197928288662497834185607192069548775656056470090112511638814128151988066986990348308592983270465254546090537572232371895475409754635736201242401941544515215159264582680008731476993513950380523954910190063183614289426408185776169973534925625254758516682710562825356007551290749640448047621256964657729467455092734319047730591856630123538427960134586871009042497831356566832181998162103502685034822304855725121942859888034855963698774612409216488640522757709829908054527686463606940666078882845213547101204605442066035943883040371097369148705796240197973331031053674400649301910503826317318769226431039900444464860790847717249126667326147581713453353272400932498059519506846590738294330803429588541684941322355732695896267416363297042734793082512120685037781978408598666858840345417609074485249552248351902260099257771710373792039028058242761290672015118501533575569687966566131966052921855943291311748563452890488296760665518284492480822286803888659292400234815991821275661044509891050812086112112878386846042157309697419092208479824228194909427235856705247427766765229242009312089335885449624633534717643668299639161728261740796529700543195078683109843711982617418874901709328430565890331188810189637638970046579798302844112911015906236853200062391101406636530634460439224240288477737053743746736524591665879429106278861911637639938679108210563121545504657499294295123898069998131188269761397284450053667489466102612818160192183747373520618555798890577406649876263133246346184088954664857813371382409781107245392211037649293081678819795247615763229811623596740141189656247636528079819228300879483186540207496414888811033355252341353522420224958959021234452655829359992553258932751787132876430616446054702043292105147798179181504009290552270984679640285238434586846407951221483568418299132394365354371258833347127780730727718228091782176921030297807286957496490716848069576463754404913344525383376981990278696465504266014290999736950181813703969650601316208063247639846805005193702738255179664728274750896873489263939379919899055068288115393609677772417566066764732175913264745636835044732666204660150439085911479393522304079762056905226756880596506205522649070985867879962086460644571693138358109417968379301569046651934605744874554757150169157536822628635672583639226009037225862566953781972452322932503757582487186656953749435743114305030328709638313544536491547856608258480936314686531343945585021876344851282350402445400983703164442048281926510382207503036889941220512708754179884604654590741590388545561917525296872412667113651733654745222458813104953362433848265151039984570268853315893379817906916829739533242817138123910240681016198547993689399084064474725631666699733799574311894402322743886640546760540639562024586964237847031397419924960417722818782691444208866013325478220832897555614747260870237359108743867463598732325116516171152668528103270465118210239976906553847841530563329392103945718072270085229669064690132204344960192408721017899278250975174714208459340752382734455001086451836974895154597524740598752920820451132686239718572207855359605289667638772990400631271324421132466159456402166162076352214682335453548663607275148617656862004528049080074192962555154324640200738362835414567502209484072180675317134386482414960277451282409031564421309502894086799994952666618929088569662586110230526931834922382535109786333015186253290984352014097673279810246545138032512155361574252807879963587065073712386298974771644186654228188779076210581673971227452822543995279621746045826234609469215657134550521784446716471223919779853506424998677027445828022214553377756171681921105983948077657433652416529572366967605249428245659191204982167636587605222905232312996251500381408843965341958684481857395125537224475628784948066214321521180496290735833582388094221160504607371910365747998972213345734268575330782864448356162851896238184891627876075897531562574639261419696329301312060562699670256977664882970490371945149709277350910731987438912740847775633640786188195568319113884534620264140851497753281470221400366271830113462954672402836789469421013666998363217543159100544263378322450945796610008005479496500446008979863897869412675806072931804024043012650821903081831864259828248860410301453948475473660240636572844716836696226903201572250453403648980295947718010307383207323504730660013985829804734142836514792093243548112949442952093128981875787309920090834140575957837541766002746968875727665802540548243994005943118665345564449889752748556647540883541893741610536061330061621190294212441101644145439072390423087548801415735071899685568820994085128369048626826498382647486171284287014579022600786948223527362427899528435100794115482208804957733836739100785384348954406360008328983965067796717169998259836520046907246218468565979264300741149163864143998573628105835508771826560245932331833972606463825529524607428939362379685972449504740416766230609111745700310179225202145658220864206896493029113498607287285048514625333056713359228021419526897963834749458578516225334729279151197915842225116044024446924307696017311573826418908634916449237081656757421561787314314227864786882455828044200838004697520922993966899698523618621627480439195549335257498898544002817696416031583426323025587395398102703354417919773326341398963728450985636318578149738864409159039478465182588247940636012673498505021114780614545272567323016835460758317707701770910045252487837527175926020800919430096480066980329864057140570935770305966888534411548095733612007542247476336972214549114375120821621633490938527226420170639329080497556307813992298735026910992983343958952945738013384817566296750424819667131019783770325091249620825306630647273414891712324514874689785949732163818469798390331385107417557935272035035385203920183724335289638623712559758819069224319788833646238884843792143214044256785729064762389896254882253204407682703488513067458750910715856853624823511776119900538406913623403683537868121381710607027582042910859381935495996621765337385108178145299302405451571573070831668809408228839446308580096968127255327195100464909309070079401024586145212146542286894024756470817211388296194661233294175280394936946597877673342478783385105362999972241169305555935911024019300668023654209968330104988615636603440363981705399553216550332563284252704359773658522279618861998625565636458217130836041213621551548710712653285952861476929344392457619633359805365772125730876887981374413859987400222938857680058848504431605188019740604512462915541130926012946166230302567840585563578283982468077988650387943416213373905390169061593153098973429958648279180765678840368859689012301713594201836810268922566698783121650242547133114946942639422355585122177948099993417224450344942163801791238830639442642218979926265284215395890391824878860357326228237327914258007534563382155897152580858703782638901246512522040318183070893685718382865330467170366447240455795300471421414822976239953991540437104450337509734558653517404586179037372143978157907004696411142901753053299346714632626977370163725131904789264582470442921974375801283621837012986037289345553878588713334540262601796002075966015527308441169392028295834614183718762100694130954842962595242393931891574041072919291010633002779248074847769477178725051529637666458890921780857869378561760242312091749375619649654340329614446929259803005184429074943233828469246429108151956058592515270112614308634229811223544999251881336438883749666536704400086960710659522107945732163713057775391397242064662599828456614234007769378517212311939640179464683918122115293937591340951377634397819192435097876048853387188833922852386012571590474419764540426520471503298336465067732532386101094840365874175047933296147078276105436890897659490003388906793598699289495441435091852437254186856506444466496916570977999830904950800674740913426857430757117059289232036250318186538417422394080279235078908431266032221522512904758484945332634061893418876240238815539602838572049349401981557285423236691177062682353655136456614562558110380842508660758171853156730894875939874842962489001427206317295475417445479364184967113176018578817204942125507378750459927356032537891041997840552173018099463028392004481714471994545054683493667385264235059048414559003142599748789084221757509624569132265643353912844955248763707883141083577013940981382399055047855761417079510519987798815668289663430999173417506209108316584485424178858640551486707125163487511962052803117088045709565519592803183525174928255519734356533721359910757200310173561177622779955783719910840509291152054274875914728300218478071761112495402645562416065874462183654952806606377319671320300433681376039598556086115795712032959668689572911919237320783377139670448963007859246457584953154464553870984771764432145533240386227484319644697816705931014737749139516266979754913011039648456037195857435563654904311566823099937566668639498648543193347439230044294588809025892484684108361395140996506506341933336168238826631781601630978983447245443710124645572733684932856008986169185816440873398793914685988847405700205295923434955623272874106324682310813542955980345444038925043558389540310590822288934378345910971139123638228721030054095616276048779593036708533258332094373537495843560955831130394188765580655365973226664889422431237639647773083728529239766412883233785244513587181346356955738809028896716888895410126549829024621717149952190966451740581493620417405777242187909533787155586351336015889484566436250339519914521203088538158090190815152020764246976949410964003566076401074343088150785625427097974055759705558090053940405493123358669444284199540141235889200403816407836933667674150829326540355169887075345980826002744217809944002593473132205122304168829302434686815976151460682957288693630949407844851476178983236796772426135626713549623659506749873717581262860858321170700116629002060955510825418579621464296645039324333792702199251961941631019877142112937522311505250923260494234256762799452140748089434877058561086407738296403163466611846470121065255515580039002943932308494167973330681852375786409143361297056397667827738572152975638160393633378063249324737493192422917181436647070464354582481150163087693923226447484288615855159249427429264501670725915095463886704953934560345439485636393172344519542346517693259383086527494018894546225244807717228332088764449958181489283228842068710476982391891186033513053344475696381600161346861976825226457549082876559533620774533366318024144798532474912535311544701915750886988066397641978568754714512929972781808213666737589450525171431857884765137697232918335965804697681527707893001829898300290810898550470245376253421569015216032688744508349338389887390735334825300860833016471082417607453392693306137928656524789249686047861925629115175857281608352963528517839484622455479495307684074476054789755998006458730032098445870487853903651505953575485999258899531917127060686849017191126404398366147180610083657329535877293007026858089642320799025414480725198221499922973808820966868219424804157335987633702352445435189486725780032461547432133359795690419328637106454750157400313544617747178755405941208351519155235443357791361478780976968753363383552169930573337325134430540932734749426629976029490368817803416266407543534240721858125876240433284381270973193805019281423770054614916946985436546731748711447064966309904677207567540849266026554896759425977771011978613995241021441220129243669615411675554957160711456026767893090386892908847334223354736290210791403783474290647186533659965056407247839337439420764645660036357651840164300978905097048144173774732242836241788934368495697808537885282201191431258944534944933812485896977519480951926227658410805422071771587429330944802084814698533582018756078918943785554219584834445032791398226032404787883248233660854430683840713494312260361246946042443727688711472791470534674972029031000244104994638795453640900936643078118580431280869179780497362281223353916423248312518948250112562447555935107388525304483226167311218719576698801392771560545370226632148159879286333542158543017748602934764451354026993628442770573905642779487349812468031934023810104136674974198849400713445349307977081387761495134997270932871803828663107216310693850125188656727663447590061389089159380921334488059950234530445138959380261347487675676815332980904770909934484111169385135974675393995907353442843799980023586520381908256370633470065446009165855739092459929996006816330790798398276734808175848704869422471341558377731805982165859585498461714729093340296954815020195877362265909489325083839924079693341913158862598698719622370626233764514479259585611954538535655019837911013378145261876610117540437170796014855590611640465060510894198059818417714020201797526735565082645711544594126403988747119691781642059509353680409066783002717273854387878430662582920302440053488776433469823335720669993128066473637942244363992816163233879601814726742246983222337631792491756353880483581998969559246686993957168742773686133161166846973503581672129230295471802748184098946569645966286104560945182403976511666046008510938751062553685443691203790317867310219062461391922253778087337732234315621180855230051770592900600773174359641771527085886175272857516939562383222135927291095422943349656035225999131827594596281383353507218608378984879824633881169070555852666493111936625590341170945205199689952736554256824129258028864424964271834995307431343000876858071760350495056934140786182837315413380503473477820299538379838606958818339858313182306124337171682442541372726862193738821237647251268822848178199848318015965181685309895035075247860809627064430465653377472516979462106405588817038717142451079002435469870790656915084961015363810188296044440895690185699124516441889942782915935678871731781658383798853283273077312455299316642075304234385231943621709494291976252818053508954185132331838236125353055613881727568455982208491142318163711900840490378508000530502742881643704432758392270611759202069617863568391833277030379792554519031324538000283847823466924548623834487348847685288756411941790355801811735412397061485472843899247431577928895256053336835465547674479811451281185540459687469086143730972010361090225261163796981157523296917458849228249416049393202905768764502225028436192590972869939407492365707203164288380853937214156037943187642703232912310105781422020212542137856684909798612775948440270246662274992386659673267193541314187593459541535939412424683764946076800235163868857023564343579962450790671467038873308635864643274889914169583528580571262968917770375331528600731248898220681537178011291789621698405540932906917659542455899458604866904560025277097633812036559774497509247467344579282420473089893633169493797375920731631867737728963514892681605026903006150123862975988609252572620543811493029192422337432121231884826183190407493687215447163363001603661026972515690130423634969949693658646058213914960532766735458901450298148868040483369861447594582591035087241163857699012377424477975698321977635890984129005508103599035666574275573670288682805322219691109807850450714830530625391629061253581049003537904506512395368179954674905795220742506113969739524647441013129876401629302245580361121917899970367208163996809688266461621939942096166722981895016085280912258892048185440234467862513715380224652373899664343371744406377375541057647886601733359160309129676032754450714970219698666709529820937315566981041740127326540698590258564677067977745402327489509859739520548952118384435594704627757770479241546887925406784725971887515033300337864083000068950544133254813268326102686679954967735642046319325672847207051871896392821466469967226724932618667707624088408371393955427027341240421395204650188672312956991288041650048647891846510221168921205238086642892047626482133368924946761460334233218492697398400436998905859941222341003642236450147127698528327114532249154233599264753894545567493262212933918301467504576184525963868928873812575617276784224956781245819712379052219790137975958252254334265310536516690928131625358155424375885414731204703844141305421247392710524042598929729228417199733999732364498112892937967803768167847692765368618515691964766173526441455481149241628154179488689488267994015004361829941196474279785361811707693391196521583005418456527048183018056598756079316851345974202940554357253652045818694920658584228851953020774174135922587628643436849383702694799280313642525640704747280138952620601609871361406984281873378666451738363285475506308279227022801234505703602248164002388279640819732807956486881295135029476001357619682566004937310489178133064737505936471892341362701203979122167391260128988479394571621076430236384978134126466409604295014251183036285249982733603937870691979044157366493754196267243351335450687402880936754948853853110249221404467918954897286090871975307009809377391835746585911863076540447626558277207640720705713800266713098554843003945604642474251943149322279181732950017152533335980207627190129754391056292686423031146388298542710309916543686029932176381922642728485322477592755185116220824811114712155718988645483549648463242198655069139397941996064776096481057664263215100406360386684365490209975937009265508625756478708965972523265878005851203057129756435106944405857449178019844488185338974171724411575061184813936838180937165839679704140767398816657527164859105847931653432691045447577827483236131299302453920403642099604399035093454984528698506034631074773524677044681274394876110668068168789003776150090878609959489516771256674032595315785180555539183582448640210375431459060758290595061150372481896515443886743150810244619734096517418319427026692150760242730550858092960299342484856985278835040539872475823177481270016334082375959457385667469215244326862553657273517269135909699262678140675868864551737708910918612001732238149418088467590442278826226249160073996115343769376490473039724040623566715428874847807057981212815789518632692668120250038963928293818913295072141578297851364714109649882895022507069894473481499035234077500153000932045510561602070432944572473412294082361853216943352651836542229118211262341967127279784865451184083461967599451891196504650467172754017179112230189681174058590991539840789763958240891861297941006962984110945106946053420077399365196183103527972721673739931088153687489809448127809944377075949680719330911994631084600732759372847732516292516288465827295159836526396317618012488040720957662007008073234188881887110881373701495742495979570051272139917757002439855641120015560771201133472096107984392348245660151497409765603550873333763533044828995759083223378834214040947671130127396871382347899808854296291601939438717415758418643614417363688496164632772408950054992484708559069840009369124734635517401797629649554828058135042202832483254784867232491130220054400194774669289539767150371972437913999562666114061465132691434701134657394341110076007842287086689468834173032189142600026521226705961826644238569412708073537830522112008631358827768116499639284580147435765244314499067290592931370818102393173207105196507782892667842754724402049932855109297112852399857252055652105516576176107544671045224365883136862362115346134100918373558342326879341474040333531430660243927550145668699568544129846145564035159019991091551051710899322129343822275090315451038702342647439563972448144914245611154482370355230866641184936450830000022358546333303595430240518478358154668107321099254184742957048245560133961293460076431820352134051386414128622951341745336530620621217449592478153526191988440339425306837151414612866462835974797630034512746099522277618309556580047020900948571205383062498963711536409302211693845536618629558431234346216708902646527379866624056090333963699679114981605136936334836092377269798201502264430756793935219415322175973652443053356231499659389286586429778614358638948524324763549248609469626272893522720282148246641059987279372647044744252415932223887771766116035856851520526712440611093816271666314749136065516264914122942758344797497039863761983477681169425678571438509844130314895092635773490809621602563384408714088186697835707513904708016678940775106610528814466332449020406725362556079252486470012902808407003924955118185320269532878923190710174165975503050713423439619140445293214411773883857842179986914160124979694726876669894203756930328622721372056642781499951591996840061483261511767441673781087866683989884798571362341734342730456624955327141720610865013549797435274813793096343035059703663526524913847426075262541129468465636625118975064433741278035646276093067257010372121198579324797211965839637222864514539810378835338899211959568606940415185735681104565601625162457733020432116308017758393275690521485186836125087259618671377995122403095599850120891162563079135055432125341575461348865071762383777008412947080163072440955758219430229957213268285606604234377532197555818636089053957028508156177504726894815627302999433477040390131629018559442953576001578817933720527837781476831125351764967837282105804340429923343259313016235925024959025542854826270374566555775758735350587820630036831934276489321361399460912515570289660787892620617985343108223677402463530182020131768882871614969659976526160057580675761803708741447353360379713432103686664684133167788611023516509086835332430268388448042139781591437552001694151935753825599353368096929431158211622562030283531689267959730705388626971170735225165072894762355936693930367232971984031814453902960188705043910175048186051287431282448521455263092938941268626123207232719868797090539606701481144134268022129969686014404869024952260304085133721610328150260820231785672125635098889001401313175582514373106899370820991647536248935972993553308092525107817743548661025203576290973259020010738662821827142158413844110646747513377131301118747242638211129977374271728826698716740433572616969518821558532899533611691622812556074660835317310125241868204935628107946709523258871615472136313251550870852956205864418487676648941789997343047570373988307129836821195663506378016603355784329714302617104319015133833262763275301719229882634370745497860928558121851627223681224954020850015918516536554079043712039773316134618380513652128340778210273538321345208559441495401072465018563246295451467582590930036577593377706761919487223182690038496499488641804576878940951116106566693381120978723375755560232657600028035509478296379629823378682491588786364880129259723641158552652906782054198666506991672301772808437466687944083821337893540314530645431531381871285896526439763945852985033710949434253374967863914520487389962607945783556868479312474924899643617218417453689044715790868141167059412566575624995937479636140834769838078844399388377665821296638402119649095663106213973257335302227627856430605018293308708060918625227272716087736909602394867258089466511819886810531715369081712397601372821823585824754624853054785310298690826522972203202556825694273900888331077508691083040557379862401517104321377366616816250873235385579592650790033469885329126302028824181217514176792979830562786451232706937901245775390845184759631459430803373595995749090124769427326893190996087416501689321378100183946101060573869869955816135918569073486233897986889307375454506923624767237761568353490675482876448926902825041237793309742118684300814594834923423152416912123342963487997429479102325854312982538501196315314772517495160427537391284110447144458692431382081362968355697845375330728471866980611391428135541679205671661253194651914660241890972366656350515559735428142296931050018187681253494351949210699955872528873693498210670940225336771995676296322606604494421007338154813710089753790374182635503982769581247498756891834313690389876384941506846054348305154871072269255900252481628045368171546274506378173949126754474905129306853365929781457115390923019575883039951573252404304337349539431225015386751392223909205815822990829293320230938133061719670784120656601718650731964113301300708086682504452890573166549350713595916328660382135812818829895889572958292049133469395281802876970428320365684059103286546603565543945183270696090623911178439267148467502579190835535943353227037642904736316328099597521764450750538110968844698193937453962659126572347838524593669527305793091858867709282391633929101750733781154963019784831670891576036088167951874084763933132610071212151746005635470057303983185349551617979242666444957031948419037584597580470064370844739809147952754167696125545446093227379375433801282793325894960888038797308295892192868074403450439884761763368820391487082921116808595689151676733844596659329191556761541092735035510827156680640458182128687671125420509356893185771280058491604210211701062115082237034208590410694328755151596038694876868281655433644879452522109181857890571257473471635414536733451632910829087671076360157125114543158024700916879972681116748379164291725282441389372482339274167115311043856774242275610196336347358129901740690059296151519830381983697274433734018913335909436067239568019461969390293935272805095489650790426349247076004210311579606506166776735529677624387016399023615474200341684179623019919715788936389017688499342798802805300138148248983603852566015197636260370461345899765491916121862429821536100688607969160913010570366626187563597929574054300039467792621345528212138906371354227878327025952844847717852648462173712780339695683734310405873401927324108689738636759681402420802225549956217490122771573667368335332987304860159800634913285597174669180155747275166821361608131929488128935507389052505565040469339732752697595182192139520000486110351495896129461155608502304800375164989162077999159449776556947659670527698398593818000423152781833497105652891892518346642648046610950774883280341351358874915640493908372805878561661799158850707052337631863916012790257053220916069688036472152305636336859642141593879547827882545932830954115214473135235729162529753876803686850328918381451165965590093186221858804755317417017896533401149539173481381657637376078361982995575384459828713851370206730601155734882176389538426014389810773466129354801407436785539237629760634894029921929956234684726271699728257500586292804306098993915857061555897427205191753703129661385986413226134883531788525065797132032582777498758803418547451450773070963898000621043243689916810704764479238455926699038232994749976562021051547860053126909306178727843662521980500203879124743808132123254896563607555845977397108556913932016067553381259558352320365659531739756576220426614819486347058109639464780819992497921337631913636487690369195210077713508976642216999457113402714945836377981106257592733141930722980400006984250557307908101828076433929030857512130812182371723168841926071116896094374190845009027929584921501801219979581297812633544596939624813257773071748960418605661010283134834620566504748223429306615299009733192233638209876697225200356774219501463544513807522338858051359386847898315867923367696853658745917812139792816725767735284937519703236739384297716003028154082876054781801941483031478877909361285689835728270296499896856452473483143945836596553141952768974050653509627630862715472345673550633193176703128703212393745258903962983466125931292023168169224663183075469259605560794176390263857346099166785133086396164968743376721236444504185140541159296718176770107373494587289748124808438689343045804266496067820718125312322919731279276291926184418069244713883079641946601598764609806089560735480742448692896777174256439442069493329163487320320666049162234222145130748005540912110793476525757312656391158622728470731713275056954440168240274305421588584451369702798927107457511820833394261893026000163223180267263142869004361171035687840341501848092671879334033193711809265523696423102758503731550822147597997432935534900378261729041479056193148435446444428897564928156227833771914673569083080633785021508046375541057276253855644994613812895927177457639307624539277187908448170631594862621962523289095114644209312914097312165068243590183150100616238374438452895224020938815979993892738585514461012557650799418021309687789868518338619758900943035066146167171567855571772448475606893003581000667816055156067694484057735355725336596559917054241600969653574529744913631871499749584210110678367282535240874832375939125520328426667522535380965386360526403007236892496214654657746903259135232941869289969569096150851575651062078379977164876024543162334775438895290559150962727567143397039107661558528504248487625693231790178452878605534616407692344481415114276680800265204367897085885241780062566282558313789265130369007930488907257338357216643494707649415365485125765159999000228874066376732776635198712963516379500554254977685120330222836505520014734398711766746000852888116704724391975386586420845775117306157135572660565936702068751773075084147338616932627157768506014979712934688340444096880231923146099389697299479484133361089454548609015518148753846598275909187772295441100748259488450232655818570171322827462570656350678092917484453617751131587209956075704314281064787203904398615434139460767712232313718933375362490350335264122418532819180065325899953439943747974330333138987726757115548898107913725821508726040382369112299745001396233800536231355161977807976139964201453532477427752434471324230403291364601571649290628085378243999263927820303710633287494430746245412763077085902271751761020713032499962319877168058806269147649885094292961225130071497660007084868545806126266593956785592082401283907861055216008463896257777015667531823423387920388614657028135539651941993400489375091350558372266142565329875953206862380343673499716221786779303905124657725507233644807209265718008522973572729873048434051837587973919849638779946418547729989450599610781999405848856983335072633899504667756574066716551547104490519698284003994170493482469559627606106142927244750579200413482285709068546389999391004404554535401212456054002737921775843441024792066614651529295097037399319350259798092983046904892127834923595794061376444453055857153794705943974908821434831744052521032192660702051720521786493820901074525035333703636654087130736649390316301855151917977153451620544466056742511677849964376051749808794689544668906041923403078008972259991724793064464822288078949557691623825084829856210274361615761692513320584571966004222249029961384812458658197551175437706686566058668463515981945940283399896939189659813569618092232096723277286137588921501886995174802410735461340694773354813369059645579432297085277501478463461125443693550310972011086351213643508484893120951145357591244714006797736740443069256737627078824471968127610169525273868127648782341501493981941672350415160789211923595204248194523132931806089107441538891945551524291739783643652738465202178187799457992580395313798582144288928994300484070286996046965615641742037984170328760480669870088651656845707186219068042356026308273097508444183764259687910319766778414101239512422129881266488693255836281540014891987368501507227444800621940000569004350516395002579601532810346363840477690031627224597145188283378524654380921554113593600411528184624546008150001916131472772114418966846414324429253613480311988673909027385297339360986998522521169083597854297245097723912872871382034239117796391557496666500498507209157789256060385007682017193460641027281724234658610102055419279022134253010092807753090988653147057887022999336236835473412480103967272511633641403673010822520864955138337794084076148165218424248328034373753685026518183503985817045111926690229866826929939552200429244775549315319306189688579656741815047462243927979692452173379307321700167543966205082787509256730711613379352999920832892987119859162991206562513336185265993487096801832026001323415357879858794209249190107444423609570125368917665350497899494549026653992762974520205606954601535573027098612276289966664708655168852867239637484348748442314804279807828263866415939396837123258634828331868120052713751559407313883969729842154693873199190685877250555573638467820403289247316797186649387496535446552991089634792698685195240268008804328737060579400108248230249991700063225137354443917406219049340106904189877926513691367336306893818159225961962973443217402647044800796818576378056327645010098987282557289333816134316000676691157956071238248351993155488145472454354526713196016134330957794796267662969514515175554762443040606256530279801583094628423370459009659749420314094358701097435944940657065030197539399875461030167425955337801489897180115912459792251665546898716438143932647407689909202302690787281419823835843630271759885378258962982867202531099757574347482391569658463834167472177080095956360114873137469431292062040653642253438008650767315696910861708826640518124672504600737318287253647742945078378890493436808952749045515684565807218435888409419847666273732007980930927603194827981277034629247736199733114571591172146590250242101878111653158923648163386822684124067457262704136685325954511679465039541322242623507181885195951621473753663126504976875139152997785096102231284952516840723878089932062720610120001488304662940928041425309568453212591658054845866614855002805904106470571352060682265006922264572012899832852130361325248260012838454787089709737066356243996820068566110304905023703337718047082359652974234021636382440004743254117260577771022944721302209018685732631153147661592779942391431480959617344480991415598602457986539078144555600367694471516831105669541689396651669598333221778075010754662245478742201032364222124096298903684749494359385392282686135731488556159530679210961395703524255207495514892187645779424969904883443050410900960078841629891275495795850287712745650659356754689432746635766800098938108387519513229434461080059321627728748710652263337469468200090900903913598336765291720794152490997777253017085290160204117590110864631883076731591372496200086402228970676080919109206484057135192394637128240430342357165363143613872454251200470826171008700277035679501470232603985427116588099763274742023329301227852155422713647933943508628059806797494250971593920025511813730951732237474724586633362862186466297219551170077945317332877151469040626770655199666359272812508280446071617532518617490591817587766726575042467544038850557235887267203438850003426471554489332232953062587557714722724700751047023127146714052546964798499352370888165104059608720863836180182987370999607088149164376896342096589769557579660855787681752288347055586683950337714872446591443742212519930706962965193338555347692972864392752930593965119180464194179832245173101673919268906322064646891178649407654428055747741063817586744897518596029336876450864066399912540448402751910591440255301715636785582525808050908391312393539221740985863264364155752349719342617601001723987934834398244108107416211187871128618042076313887777425236029767160419092247150801296170405814061779610508472002173840319513272614740460087854697363635484143901742284101224158840602511405556137085416608148041967508108365028954371933699210332877965644727882085595515919931837625688636163448009934947882419987447807999500112248225180589291408466043763782954334772377137379675057494234448298324285212712017645438591153120440361386930344800435807279680210063882059349126510640500655282026243419922811629332632490748935553472360311690095711828523459748074110656473658548514543927490385620781865956345411948510037691855839607099073147719386242361895395339475716386909460089711871340173014474528152175687164969121673308669925707917263170070483414935194521957072744927128912418292917303531713043069743149624118835004336323020218177108117848645348577461353760089321275962374568441303993069513082236058638056434374696355120950406964959076718322268090083189587863046970589826909775944287768894914381619312078230484806219434283538725991473480938481212389249743511887702326563083168028552918012773595072015993984056545358600244082571129027508553785757148096345032599084061430760473174680362923833983751580631350136011468640925953174028616930218520959450906575197406666414165797638643485880919887145007234595274408204470676319316640736496636882798256324518689430539882562945934654897758967261831679968570219918550741791296491105719276992548122386364536245027237934474508418298885544353414378609117535393858792156410537631086632150938082049820771479395051876385181958048686679417200060892787845128558400668906215768002614629831394211027748549355995405245135087746145631404314242529948488817989288652888199279455664800779974989859061212363473103631477262996849683948565183857032691126886250826024616766140499024609363617168630524976667011653410304832461328479462489018667680500953960438781977621189179606318467654008667447252836615594587688279032033854392319850604573093982281977240802134205228019918253569815395513031755451068790479798839479954086019294263820184010563032376249262767192796240853090674972967416277856311241901262501966277865065023969597207583254038731743965592506105034015206422504893127755975191294853727681282744908661296631685774948130267952094393412596338614702473012314504466575152147778048788248220606217356903389183635352343124245802478394605327383631842970596076973254461425938540051840654198096879117348621058900813437480230725846881021198052022907678576076276196315764692758937013278392298815886801420994439598392689892914863063102206818837588328113415595095572640919874305405182826019765571093680700678370556660216972720956700894958683882149054699536735798078158102897939523956427701026362429629768111475444798535462250302063261507545027319011226453105257184047306941143631691339791129953860963328755997171375170405292498518722704629831170732563921351732675863729742118660667304142708250509865327866534540476889424177496064045236622430431395101986106856451853874774865955606051566606434487195361659626997532213665728988848363700639813550066036325681936649011842459351905864302826686184148476180704358971501980552363716374249126851673832399920193528015903033349036584785463882646382188921496797271760067689386070608085389224974804692476837459939042936057031218644044149216852326950396923908333013476399471452808635764165627144196829568243146611456646980629660880651717970765614943977878016647210371311327507155661586433436149004814613423016670320775658112579449375502894542812433342085674142484920443525187391993732869388074907999113488602467171852389148193779016020953601243763138735966917086298296015327100886860782296255924005471493188063956688131407697490080940490365703156719413177202246145705588156574893115070514697648010622230230877731675360454883351976060973788367836675583787637460714145819177555818676772402879194477594410997327278754231577187513179928609863382956883302099716445171740675888855580194813320952178979004659489365994310588809282893519997347953296844603148371985561834517243295482255366593840060767220039551369790587264502141155899161286675984491721152137177281233595089292581551281294850001354722833280929644870541723883406700128714052054843922899765809931108919291222426688121882122333723186661830052758864311810265770725326390929572005658130301063684587176571636003166855417650652800394347610397000245627244086907573902016878539405461405097188966245943552550390116817200779076003138697594392037006333576461681841186109058106273919599457918641475758319653497214374716190324010176081158014188268548183407856660857176468154816968538225958690931015857059433530278494403737155250438553046930179345584639459231181673862246587743280503991767348526031282191043083643781938018777702357921686140220901799811701669635247302710993550319417525427185778726314640199643591379567675040567107428165401757710358137964638734016540647806527362222020303714615471529033682970997392785046555402896321321781040981528489988025289836741521930576702754861824860038984880585742806382660837152050696444611721076837705803423565341657719648334474501832981025137007368665624157940518253340605670486919390284080563415202538099587855532139307804083981648223968733362908417554482733960053621404799338752706811450036901689100112264116197107934814713218440508894785407108795618015461484717697278040973700262893809181420008380544889578218183278938894690630039763612408622281246502705035309544119174231934107185239071404718033996853138562868132882167058438179010588561924004499478550624285237460298086180546416363990251818881410660107196404312576740862212433401378116964249629900861482375623251261110068824852082961531823835240831878787560506617270722857469043828246269910801066985391276738425734714417280676757509762167601750156396541979316228860205796064075027933800661781250622055814076711717133977628570264972558272910435356742126127152880898146508504994726719480004421176555214415747981349573279855454481569791026109301579199013229824060326299562404102323524499340187178959657947647401327060688341648763966237936588000791950197923908951455892341143074296281977405908645724251823158954316127491058333065528030538785224607096271719422394043904416713112216043105985599841620383158324063213967004817136335934614555143645343775406373544324740284750179307257963171766518697819888784112159808392690153303232207521008704173272896560751434162884932981899955189648751063167955449239133116173797323220390725646039139972486196913802336545222144344374320378492612784843190848046297051296389541360578736159228263061374456007378393157497114416981484360679813150030385752868694180438712740158712122722567311667578032685156209022712277560388215373892560560130492674999099741835638228405455910805379007832982537366270894534099383380864778441896434541213233232079179779830015868491576882675060294243389965913334133077516589646524084331945471040876299508202455974312421412984574159084696747405033051139259083644144644574204742245626011365553454428928940458942477463553474761243167162064962175829917660081781571847019129243464020147506621332391414641974925851180753791685527004047783076643358944736460493020098031011816928935151120840588998874608262874780641669145803453716070688945819458258714154281833490923418662790918571976481170143283387549261667159233405425099061375795699411631256939813317405409896676258044002047707479461507854729794190593505685460718771974453381867716712318083048850334682195571515773116836053012396116109498295205737036152512783394979379589830437455522055864736874883474516669285056573018053331752495335089424056434141224026949723565587343753062462374683143048368136035067353527377092419454025096936021539188369888225996492304196125863800101494336536499893492186428706280001082961708984796853809968166680129560779323414539173817541576510238184041069265743283249808579974062023688157042709529192174555243767779447813215358664170093044633460270063410520266017553813189520122855430464762709751743206709174503193121434311178394548910264899362257136613210525360272820927823049877307764389378755646731628365856304463312406378283029809848884453844405785370427720299470496278487189614402945610557652592982911355761371034941924225088233097910765175304392579061363396028947641872200026807221065499385384390605264062698906312809921243736183558944422986831645864946596369779821178248657816820059975342469633124891552381851364978489424763034231484105827978300730618367014355466735013208794692395725354726182360563748452703777151795225028309907986822181898963172460297156293012642836078241374905614349706337075495599260965097659185523388134746911388188472038150656985276869662000411391561196442627161333211749781073674427034775703022344629967015034858893244718506083714087456846830309693000883374067023513065990178241314857915799057859877483172086323453891516778102097411124345115286666594617081360494631786871063469188445718024288909339160127204403125860391787488472004411651971268706785023577781017159979726706601130096288925934223392705910228104406179030171408614574866531700758887244010471802804838728662286225993244965479793398971537649653777430902959917653788081234722441904409646284317348613489393299243449077994139157176993700746922630518719529223133888243769768305995839120765160355870574078893154248417293173258582977972505133946326497793147749871753974243036095888473128281633147600651372931560944694738848470417384948059172978265387144442300018078682632546975600521913475382987859551517498952198577441377975475555729265778700929830350611189246635545810925425957862590883682983406900097180808178494173159057081998962654217162900133767195513571028841937790121525080963504501562390028529213204146862171494033132096796235472660838885917700524134140705053551995171813666978595908176237559556301236661363374832941496319183733865016444208835231834235253353840383639427015260096180090939835379389631958397732131140355589160284201075093337361090965564974849635250309436865739462524811507109653378804117101433076385028356220842886705931276710157000897283616533591337906577829092237609089232900766062297457988238829385574314303115971577608378213558912262184109674343182567444819343705263100962361341482256761336510696539359615173023910897899835924212919977737806176559087134491319474804644328945584798230119266570647378305865363934784715193739852802465237236390451392536930110260609692373873165658363252335190959856700019851031662240192102505480552041493923821986165708883901320537296278613614058477125931315589303859739394749828895060809055938069936834158142290545574778232898236681706578721089544602327168847868175883642171007202515384012709748887851019420554822933486485467566255494515276060375926102277055522777712398034685415286182160432051625492169901819392862281466293250497922219097258620686858619191190596757527422261928634646409582507492397525518448749032490271936516444890401574899797547155455232042165131413603806506716503015462780224036872610174282257641009729116103839278648603608520950984260438847809828518955198085574451792585174038158576961801656467366933375706408649185358883372975438181621591117075513494629003159691122574846409808553461812088317612422172765106724734320645475065113157326999985432388482367035282624775698684873689256042406801529922973582521177998332589115459862698377294544745091186986398976164408297301285836981923064726286442773366728083215624746874578928939150857838372451123317327626883708018119812413213226458962325071549627893160109874441234873065655015099419026463511471671680580123872256662058453232540522061775301026886424724043508908203527507234618647643574329434017075362000529067573431739805833688251936483966735461354210347769653905537185750820227046753989911713939512336911960607917044109520307338208460234739516189040543245889222435641494226681777067132490320050386992892291898615408230532057683605333630097587954511901613872788422513634812538698507999879695048651436432514240914421193294946394428482615685603213814821772573958904267019212274302732525148677569800214330522765195808348091784443206826159596207922528272012009185566556747402407837602025620539931526555127643053555515065224932113315659356305512975722842537435427927267897587365018349797608626966805272008283809277253564230583305161778206793958171840275550159970114609164222656652639293891323282540685444110811769294364710561421529164741622669130207375037042431948399659060766492925628259542780392679078856178115837296761347317224283212728583151472681277067872025951235111343915457367735204168839581052666285864798807263863501616941607336510205821606624037796031868498516125553579825523173291015855215090154510679841334332830481949124813383555971481145098477101654916156573571340178997318615009655559061544324454574710478811529137263520520541104827754817307289377365799178790325516875946394553848166226865262239627154087382547787020849957068123758130538756310421374963002701540130013411838915405130984221978674913767099726109643347972542478757798061506030057270897172594290721402969124774912030398351814861127357274159438361205649736541510761807374472984137013698752325597525275204622767396090976945153238440972225460756700369962524440964849088618571940605574657450606802735722780187112135009053514076008640269028714895590880504684151981508745175835698203208961320891817426577475319826482072896547744914620267347793960189671042799300851765067836054191430762921287553533766340245500316361511915423546641161160483270484862132591708252198067498192716627305419948360872500881895819610616970149937350232282254637874029805020020119199913456340238320248061775234806540126140964071784109094530597684646097033555684810625618467685577147318680360495737403126067855792826938202511297997912658469885661579789545378536114166901895181239701281470393641632967345408882722718751884459807931324349514931502635434467938831492802478188770388793346966078773031466539242831162513943501004248842756891191933851073694727664823129711428895688436842382475275522620087157625206536292870382307364479821575791308978765661822993274293085826222505570961656654059860259042685422658610052277288703856852857744486121464566901586631342215998176149953683328092540766532149669885973093947608020016645027094130645024391560557992827411964198700593679447746353008252694749350324112048849878158547300897012777845634751625816049771113177284914130852079727550321964704116358222608029211153068588005050039845123592456673709670623779895331230934804073112193627381388634539467474423831543323062372611684411687016615623446385899170458020119694134033792633095974985562560517601407620278100667919113821568916691494718947786896086623642248866572649495375305044763109128794402566975057910939568027375393056020629760639948354013212789908913235737437591891339973347595044536648984455078415273293533122977270870487217537958330506423340322399803247246728972082167647358243942785506109270513191229148312150253612968435895113541949986721028591994298528261704636513689590868652021095405033654869797491496086075711451314465356170190094753498667825854741786306873531978064360269746377358082305685234756019882339396773019125012934206772408522971685764921164246959964725408858795064806416481476785483083445659931065339257769640109347240631169175828896182516409158594973664152008852288639074340234442046542490825886494758774360542381512552802022304273973827034519962699251118831197537056879099546107217680153846745123825519089169259895246036123347267863341066631010557524937579247298843091191605518635689603608899213350696222236029811964276218318307913665308771291340850011746720678657194403769279549389152578275501988219468490573260008763484789754412076683911963191684540589326302933616773718227771151512928550397094500186928404528112510105232283471602127544153404305149962932466560326422615486595414981350178019158330830062124846273066807976449872847276744761509539241051052311373473294400632853767945976642575417131607537867827174881672818674803757876399022061054587576589508155191710681449152180685798120022659196119880330396403050354430269722981771265708191075685912058349479817544554352973939457863725123506094944173091802120369949867373916061133064770582721942176981158414739147140536652927129536497387028344210553332250853189856074891844290872988579581541604460800546884402771860468104127793641614864440804827888793014594099624117896830603371098850460767786159583129535730419498575838291037786012175828491314379710830757305043572262533138066329296935040146280497252952655904483521516085566855107573323902259781863630089934577115291209964628782220310481513960464307072067102354634544189795350184324241528159482633260026957700891698000692365307279934559135053095908501255077886057801998631461005507026673065292824846288333308632403386299457586323692477694438478071566422842881141464571252002135208599273700368128195460514180078075183432693367529165665937115837569716417288591175177799051899959778426286624043160786643735011482621379744007647187155883007329511726494744313763352021234398896287600281509659862735470382690341361860540923525961335085976632307021360253638020636223047038235965807795846562350661296040449147518784470713282870706172079414210613250098516978358697609084659421757386231857988315118218569530344177923425820246163263282797712067142251332600399202876462760095855165311510677950982668406376611086297651265702933880721303022221175696537893103268399444603770878216434846648271706386542272381472996769298681209970574012418422911837440653629693681782966549250029006546924938317262730140140388951566799846227188007335530723722299330377276398758687599567787999126218247478911580391447928884620199484126825475867361300707161379762088426658790879782968885472517215378051016898718488501021765046118631789797303650671059705359306577230249015900828265839638571539711054590034903631770755243876834311260966674190250270375972786895789769360749026167335021608366637322468600478850603660701174878064836398153863862968371497958592596441659536493912109890438031806484949336732513092616758770532609095129141061232718071316432817886102554147605735473094538456415809200198275592214389748390569782522034389305995727995148948285383997804012538830896761713958354113200897252976737327213792686742054947555300417419171834389057700244676996814789326322033550463975518559222964106205492518340728633294876223381817898580049051352605933135428502325474333707756071487275892223970542437298544120210905721293852543950028165715862306455014145764162222598019157377608262586404462944439423885997214099028426142183642481840820332184706796482990718830276017417165297400346431692159443060877560170901865965310879346052922558804926208053687843316827990700057458519523650418463827960542020139810190505756949839402861973775822233265918365968443646741718022210125748429973892032577891352385125215760720116550775143988862767457149707120721032183334710848690480695567919000183013146345426175887226393100452067492222899484461375152378944129593775545152575657413504085582251868284431112707279831804782446953701611121146511411368717048785995775253601828202048732546530437956314002537183075626781006320543183174167499992030711025308196952374456274362273267809950254035999939980024395870289426406836487456155769559527675158365529384083295600362264338519044121950801666252457588712672373990307052996041160881231861856480643161735929061929036085706823497066300742094417860150293641661297642374438345207871371170241004143315245251712246788996861801725346543442750043380472726746413102154246826761373709257351356824338330658283867846728270000039124416928387836373947286643770354016313984354641576833437492106012153050488797053935183829205668810859344555831485715217691164380915746101770741901683918060320006611827873575137599969860066360094374662356386651675619387862566659768390868586005798122586848186178476316929586704978075199552000665209839919508525446766478686663154042517719966812827041085819178753272505324670987849705277691240650912932732032785328451193775498916581388774181719072047209288147245548795545720024891875034487804918652556097499771989737553660422586100709432523620887445387444131357063779636949574053481568053272709067518816678227150953079751366416930692411206693295368064413172544961319575053744885023950113377178903990963001486871453301524095037107723674343118077072331870818660882713652318691171298744728979754428542599911147981541501119109936946233106641428253307831480809750998963244181275762423327635605419015474222515811522713072647567990051801440983435198440554725405714674367001965264362354341825102167667121750533451945728456156531876432613286167757353876964549610897467822890509596699011981009452842720771829965061193503005774789173738298362980336548268361802809928720827147980281840989284785073478474172348588501278232066891843995849744115996768882862263938388517172900753402746724201863513000437128672833090579826203719915131366852642565950507589601079497425147510562393550241205978427344434041444724887969708886496575907271776266655012567463389395709234315609583630867159009739674246679107523759573450373368611538991850464038385975152772105127081589241447179274586712392097527131958311425871738700096898731762919040433653429105972429571228146490490364973514134836670615031742816416771972101855464004636288913598808713206245532053427138388581485490780612784916368109228160739030777539285947695440681259186297730740320643939784291348585401229634164817436264845004347236086753197677868477956522215182582286124409918821819873345376310882517155986186879527611159360633243573316522283173356827150286872403455948879819656667016277208162210438111931817687812201341424229411669454748843111618232495828101443338258679030683293931364100795744150095222128236374807860297850705183650238208523472738163047206999583440178308207416356412352407211369899084127637286853652282705775843395010121389058367676421819023724933294287609682084897869552860680336276623227040385113899667658067439205113385161266679432820984059010851318092167094706763527568165556575162605700480887751893468713315609734576655893597075525690772340099629021733035147299205915713084621285244290135792191343615126863487930239810537157478809288848029970252966578557741968544803750660610075062707226566654002155024212198320020750244182603216880468096940081615966770963994202798414234121246431360283994784430200194728405424995583792833793233090262273418512158304867645184252070403651249394699194000955529178674605073972818526387859872262716480204984658857211872114760177141042363455678184296553801479015799444217186878685233073917073797893680105894320856467712043803801830629632883586786376311013519130586997598369897682082520895777915459755522184278605899363838143103501387697776865601896960648300668420081822541733503304287252752346963100112377608197213304456269800945144278903034941504461952255557443627557276924345914702238821837928390111647330327579786956127276533141552553285205666237802947384689414166666381351891794553469598258444724360494067188917180187997359349357950740972123009597660440028000529495330284171828312107145425271866528363113413400123927418432681268178188521303191297983680442933840315293553120139564797738277707336909548104452112950152518356629499198533499017097709200762015001559371584020666092024778008620428478359968730610918435468401910249663334725038581388351376492451526308125872621405336303442454232949784793095246196541878289789431551391139859749810350646312509507090238608732265026898447386774646975705228414691088115408443402791028066777602798979577399173378493424567508207886323979708660954706750409459851916338914044081372111800918790313406929247998285676837089577342612181774469131848196239505154762018475062520921625231445714298396335962398836296185407037368896421579541584225298536715658311445221065163556484112875851712229007744440654011863605227670896313418233934551123763176625894086190201777631359763986805694896923913016498346349592091272699188865822549916999646587649130810119236609814543999817826969713337831457374425348177953357122330340162300015654086492079399143429384129169535554914670933455238638628165571581987896739457250551934008330581379022163944508135785833640393572593689475302214650140537679751961171798084602553775628023461148828766431192665007323823161076986577246575734014047934002020733388701837728350576118870292804665146949789195982856439818084116784008116655004766275838085460319232046201652457478540725992047120439392791270701211276642037055241329166339234098812513222566744262857629088009253864937837406065085597778774040194025529601811211926762577609835020747460822318278859246986894819802262733587384590938276823289486200460541365415210216885274935299554404001737272895569416909410134510922896468338739436192796269962232512528090211214570380426363942356770102212252950299098888914087663673613210984939512385439380355970970678814587938707403451752133068293248370594319592913696372656847453953575058602948924686479141682273860824003983203128146866593852023833527120737579449893892008468618601314860351310568799152850895956466032144093311164723497778701914769896185099776922678023984879356849176081445052748603197674346678508806746600304392780889586020809272523441848355080764579709122141098101747989391077377015078582618092383925628790416453244182143225148730425913184391218981446391722714555369529000137725507282320786994269547577201718750265273288377160668424069789889526068943768404227339436506926277847063588384477843041542351551321667680221420279214674234432604174878942016291752149948739366358921171790467099801852334812224029649018806194572337141145012677799586296207376406098741465714666978959219113169781347956166985160649204714508892399929686406974645107727933658846537813185733925667358296882642432008934043339650339766675291220346407392016141967963549473740401528188388856811316221814164031459513904460418064929976734203262397869228534056606252031235972254262770229959351477958561107198472593183040054037609535737255698246940457279935094566478338211593910428967843054083214120325597905040358292037137355400910150043663407200658948968268712276703219105122091048523429628604414272666643491024821196812272319652698344085675752369700281748079978002978931064758995717984746297859757051144878579862859206248944138323617742152711502870040068170983153739594062155927640698046592949849420852976697050383917530181993374544716361288564328006587782055695444516347613456637553754173505049863536940895698175324745335935695486471235264226446401228380666178706765074905871056630897720131329019695196990588523185815090037384064671620627715623641503302331610764378465829346852825003200220631040192218833483470952797729327328340705727398417337072107586059690066813850268396142974541591962006914839140459037335495701827967611952162740766950627325083563626752733307780205482139314849713084524434472222855908377538316028079472627404293029560339812278263870092635708938047743115333916653802502268769580684272707435724933942282390360339307090117649163140494136201268919532739788091204238668345162703457384170365449462500173923760884436464185986791281157283795307495604992200295992089620311946474661899901540737393236473717220067734371021693225765280447982534733941542793742878181106236903293249909131701355430763369906978332562787951215308392607923569554306192083340459070555741397318212047263181645578537853538390077147803805518258016055086334571357089077946666727639721942141876748627497422285992173032907797092304937581119825869393349964358514591965408297451408357145239281724810921111549552684372209600945086142765993671529632340043430735156843529004616182209864876456683689344350580103784267231274687749253709329787493890230420619651027315436531714994650695422482515478620020145621529287775555992194948555846958211762022044004856284346997992444534017052664106304791921733399785627617973106875440014827099969598735830507471412260798107007464068578127375971798440171971775848898888804969376511409516869605244815089605762785145460736740759622558325295183849309782785162445130463881293338488615036710898633880324628627707880822277413454450595463951166478483153664569690360595947449777824542058338773986485641029304804841874351665014907231086881362418189894471581993951225389513532326620886861111166133873079169215647960644438038122875469553697785706656848664398373344343768369941976618589559990018618927949595266868520590986702134077122714816255146236737681974608557873859280738763532046784039787773516807490387247738170016612853700864049849022569230717994834494698370070194779061697165992088525830639061525917157536684841143458650900465065974751100196023075369635959128900148329431924645913847593138110876069865961083466815957365988898868475645162651511032309067210956641185576733327753631519206972357606898790384591635363901127247862345472697311836353273720166331689819608173163003006338509732879204809505300613388197255789625252990657313588685927984560842373910143091330545461166918828423863508167804481964057673020444573078536713628817955757511215499989364990052497211032789337351112251712118943614938244694478973300326348376145272752002428664616721335635758150272094574381424942868321439932697974660890338686451677559457031023873008760007699267239655292212773295350870407831623322306543657788131861386057381132019387745939579782151559924001737334898293239160404541411180588537774377991573940877265161727399628384528289169168070910772512562434874112301099801481687452812485897830698552611631946335304192222360555479287728157628652861856648697827916515321317538282411657009321484847499190248825117748931268837895618073132166249447673210257110005429654472128084846183499674540991985248888285289916988358394300647334974927066806529102052982274771521150054727672788902640376836712127294904809833632561008189216886247597039840600796989499812225955013012069980445608829121664721621146819149639671151515909752644152927188379005047423749519666958459514891099235207900362564246877055049817949360945314332695136897824523042312274095311247224786412264033365374114414106815052541167857469262318809264443319546778993978713393832488067798697981221654539418303850887855004421202414065540414624830710962265714247087571059411982593401243882298594355662996307821519984626400566428352205349941870507915847153577460479255760737807064322707066676295364785960846175901901753916780952023811196325202838588598181824741944343686316012700048109089305212415773778846168716127064588210846716893014669159095093284519458146888345618863930459363611712040643331863306825315267592271324837332155138003394950106954836562818238433851566461816950656624307995310693370347872121064241379439391980729706548269244213015379926243701653143798360122155297846635159812615642062941036382454089820145404566992408770142834812704906655192768798974708951445863646040233046697972848876216775075679580160073845582903044996373820830085475316421099791725885867501962637383466467545867797987517463567010789547290439705891431547302369986060239247818986648645206366849855706804008848064667018490369420409806207354716305607173431309742037609254913508811195893357424328634609275298319555211665722607105286024684417613632442224634935005284543593049526922594877584914879630774887700042095374558467717815213381527120480376694088621730142401523687097114801605673349767698553468979195814201178097876031870066593763739075546871799535964356652090263871631205144944577501890364039244926027536284699249244197658777437200806345269537922927493629714746713325759435092262770030407077250783467291378682156707867093893929575116034152171531381726508706741692668479680259355023416059616880618082411915960986930882723004389957038589665240058788920667143821248594988128204285114341667225671103789953718646887168020331158473379184303825345290686707114094184181556977371270361742770090789814210884869944590630999389857176354301023521391776342952869868619879399162321158942297324130617101169139834832938504604674042975612109419489635613710876712923295603818517467209863796168424431222467797610442698135294417260578356801443334283067438646037360589728858781390693454485027428547469329820296579749581451256946653487773072286612854519219498690585208836335467791530824132069144607876683194543656001454322220772890037520669643753726689790698318909545775499955562083978314901421122443585139178781573126431548279242362935429611005135115588854855138856861637896212817438337677202258351938365773664543346004205816657687753019521963426616509598399467279963495636720912136947728518728449915338347787406314066982944268276053462214025109305100196361746354051588762859247265179117755737083888159950837950807414743434339777981929608772671483393567628950029235407862405513933555634609754041801447893108929892984649189866630808923881751811786857203694077864065917456519053997585896818626063745509736171898289455633808842491757091670797672002666603602562002373451415675145491371668760852329401551189498124133443405426532248858389533098981300723149183615873234341193887585270539262677599875336108356073876312286008289362634551469706692037188249132543827355608530954006378897662671143178789395989319038481285280119088059981715973457826024441958727827191189739372000119335948049864786568635783843309889078651779719910757088843850765373075609193807652982522243741620157865813032366150166383292744020201763976305284615644251224195520254069163010043340098696875279856710638287679982247006207585254806142606224522142143153384445291701975038366344781413772240353436068196731918788944891729296723344181069576125357362830388739800854937449403435131884274637800151616878219137121788434040883106076137330110724966926507874310193416339144176244653383312716672933659745654304894799196971425762522752142205358300373609089800148085617755399730248724553436493780232110188412993890642466732831401726203543039871797871207184696840176141610167092196886049928678367070740691283547507982115327937295295988708956421726301528440859713170187564121066506909514595902383578158792689710651710003405943842984528099909254570814640669202771681511494915217980232561166822356202622848812654852010184768110195955080672354008250325728246415885186300607018506972979327761032942222029591842315685556496485846599820802112159110957768353558470197025865334018870799830406775463749886948367435923652459901147921926053565459450041835185647754838875809382313917191747235125134198507804756618465129889771362730414952698446085592018814543620807628002009065855191116402254936550334435753823767541187178524302676924522157032466330545777182279614026332867779835872335551013227241113112658352904479674336026649601294647613237725641060996096343109750683402940541072140704813536790251852502555100887684324940365707876874410968862773270761508969394033896091534393278761105703466541768449009472328305257013619043242168749761381395065778367241574811078568997127415753171429217162906750028502064314022275740424586089482890839444567496302561297059235302682446934095717781948742668032762078455376596154399702888107329294929051741056711617494446190334659139080315486897476254184917663016232463081343408902118807033243275034914667832768825795733909121450365105635091336652526867658811491413450202950757932563311924965499054779146883042498638229003509163426782182958114677175927558245464272941514332052352466464366044617439506675300500098556423707485266292597193991307308545742123901139440506594615950786039803995270019560082021765071363741785875481301279557288527076672522371968609974760380764924241306159542853093609462830754669136056393212300342273047073566602486939643961383345920105096661494778761876956449124786272330468901663894297717228005142302483385027101581845889100031388600874374683670459648794273787776001159265658753413300140074315701606671013091849127497627697806474286306442287834057503411506621463587572058108183283901895937570697719154002852579329233823088299295014262867134081887988657055417766030502324360974589447671591277768308951073882883687860454842621156481792294281477417517734115510822578990266329379121870959128199707091144562425525486049225220820895831054780563649239926854654921005250157036335529984456832545074224531627765510310731682083617343390423473889720476626833565339133159807920764211985676549123365729604530218654940883459083287782625715356758719230243248179873563805952690493671298690398293227191763801011218001688151640653922557173839416700094035581648868040891796664622961663665204625066088442271844886389336475584752873168128299671994829444091224713178230569440179572865681828473732190328234089076828108492960092299711005842832508003933698435484679257386612306568302333489606763593946635966854834268822165360040010044525995721315407670234140529748016986590528110122978708410203623980863863789280028214912944888596118644931085431692113960637514888327354602489979431381562676180145626426055486234147109311850458821290230025999276663236854804160788079089071430840979610347955929996790416752541302781420992446078123176774937046252075650501540155037115785653180713630419795688385357636560606783586273834509969270301588959310372509191849817846145867613492671389144355108480692372785671011486105355948758146722624162191532738970102925241320808642069052834781404707153296444644970629855820152216930888940074895415370862606796757202921661587971783645947710194068412779676850476033754363676538022010488306089248058643504356148817683517403245895572244501028751953944927287595129919380442310484044802044376114171758987676305471504217743090997570446031254069397763870290056103605051636002755523336270648412324971810753869057534260800580341638780283023017509241971167497218369304763626305501651214622768526140275304235396882652975409177475865164663504421940989521103637164460771578454877523646057825908827332849379462944776694876552795773072157363017083613607365154202759102417623938825477580414952807077208783237216790259862504297094968434976597269954216595068328247942024512452430029838156313936148619483216751465724066696080173650769817397111727588391028863484350856915760167221911802944608381193870453259368602489354868816257093189389427200161571691693419439182105856726436667094622435268051650311247082230409901132080019779466643558495124534980517772746485003053716271117366105717407787980924517682471423113596268993305736709829583774290161467691021801564920986821157904771058078640510566634495777643577239239724497698308768823350240857357795958620565794850146475066726882494734368217104911921144250242607198860867923946827398749453204888475653666610443480625042381242177723780700708630905864772549273398040323940681585454464901022509703906515008314467056919606483896415760870154624399556731437112144566288142127911789670669781859112378746837868413359604113566504518037776698294983616770255957186762852214675319703035597964824969199861251639622583408783245251579707785893255674383141484247175668493712824494640605434875154673718125556387558060395227495802374715049277240389226517719325653740629621501855166664557226510937010944532866982774962425621073593417936779647120290505113785642062932776793475622742625270000068992115257935621594554032991171551093706425225001692928890342732537439209424450580135031671577684017553742872900344522361501642935963733034148351836575719275930529339928165762933154925466939672723265552380180253436900200817032975139687179109977215255515165983176350814754070062632413166080197477950485408102136175949373765141432806113440190971849607161106052440073396123089221126063659074535353979484869403111968612828099556810996165514652525234010893437317374380569592195463200262145472814075579151722866911009601545209876919495892581999375115279241504929184662549410271491141894608558199259446795452234561502519382144074531789426626259427140229175570713799172850140620417930083500923654521885065238235744768944559259137031225009046898099143102630185365955527018980847813633883384041370979828020517104398995267726475390813925461068493044333942274968668233433568955995076531589611038084848512202777250043654528885804994944177648464920753055228019436369269265075371938508889361411397333752884089116965150192626906848823347851047089750737769660459979352305050070343199487135121573922703614393259526461642299781055582457152931620830675598562203791402593977346610642301569339734020406960702125331449754793786806408864700904223947634041252076656683155598668560780261651647652813069411982210455877058120296719400978566305809374003493885573469256768271737937801721156110297966668368158241379542910644800101137151169846445241956800167230843493040875751074105383625293910563731319245850489989378862797940760925959537661401753843369766444933296337495850098290996164657706455222813416794661078032897210135096096696530440643298568291031151341143796917619822305429223095831639743850101359409179471566563067508615793632814400175065400042057004825324934019170246097176568960989875901647948096141828564259991462377391665782297815384526639892929469814761050716309313716899321636742729338603622519242269080613306817353237279210034332915257226807333557758242021264458245020259825272629020334255480730534504278784114310172611294726513298080703505002818644710645601771658560929203909581110003889509335446526181312936937767130615799819587835294353788877363030026583921228616441276459821190395751589166171204674030148668908836799489543453823712348853391109604311379984401906615048068844697949573518323227767163814164282441576713041592395971275650628727140441309950061401644704627111536418679148873339976168348326459665169496188877748555740735438726288547525625017594900640517801178539771435861391428445551117312539994849560916714049659748030601468982451419618260673825832341651999895782393886466805917087267773910933858682546880864445057423855746546432058382346918985562017846403279058161375984435868000210834732505160814926351578300035553251690586705566904261844296811649207544854901682185943456223007603462116862519117998034374338037791807977244222415384119746869515342454318166040495483411924161085445604144334349893502147602379620934237399507045643931420605730719831583940555949779703716664630205021152769347330818390493091502335255471614720408380647304606927754072416363142600924213419698867704307846722123683437163462573248651647769497929503695069634763343872927934393254189295955001659429370857910728661813168831088175534004927419915144103432891077424274094057138837237901853276573354110365819325784258002238761094043731787751630245476606020255259135999482397726089335518704139412218560117425348124050551823239060690148612403411987585843785719414055228015185838504411450865036424068719547266287528997884202095149180186006294443494909087210468116359167084077273008532465297357868346332818433681454088383448578013901719173898938694840534595085379362475090284567367779097018697684759823964965907631644153453322724069734091805796526600254203583288825235969713681129819516721156492797654847964225131557608279780797506527046625958786785819687559652223611386768389153380247215501270495471258057990255592642037615872486725403942240249865085327492625068454665158674570794360994664197516973024815802700679662982826881485639974062743404499737990052806788374715495223817509456692510333265411102085271541087039558911684697142343472228890600326913766101800142861983241834711713663891545501303360350553528235161789196153754968438570338278336040838522052519500043963927443450683581899881399881173388235855619857767838013819894839364076323654680369821379356002793960883807050406725254324642874777295529887528508797913541353452746899611596420653428571538040587344721730460435982107689318912200235109110158495713156719009576017397464715307444832065856321697313490230468244560832984418229200665916950273915875938702386242590420060055667118218835709738732405558234846968565490618234184550512893355463178214778523877692967754646138552079397329734705902435246244748323591336384802592470731971952857936894298461770084371404057664597675448936121714172387239493479604275562584781448829665280436908130659275069774935400211112332693321788868271701851469942324504758309661880291840257296142437474717420792596503493723832221703572628643183740577948947214926819264711564190035747236836046575077130897886455702325620812978661993357769417524548931164704266452916436755000836199728429403973357713265458981451979618356494449452744658814414312626426204470192476278331591075810913677091697342544876611593945230677383680318632559802394884795274789326315646728182358623639688588187950389002867319263837706686532209066740190328637260596540787872016501838286027831319768196995825545232449771582568490948879871303877393662224916520644157965508238698755501160169695954919592998222447490896015107740393517504556240256949910556756972625703959323687437197030182522353068069538689989310636843280473346289614704243440638031709888113111440416006375167438505971598068038906246860274785895028652290337654873327744956093705044752114045768054361807703476004785141945895851850737820703039827470942808660703024467228938396141129349089979771032524603725367320365314979704649615869284879875814408161199595910068972313092833383235717490190565880759226492411162227083845853967207801397443579838243931836206954811228179244647481094771651035573543955906412540960764509435421429242031486077561631770415603582084568453398186775537145322609878318305963811808624672321377821485238467906889973683457264861914413067031404519131166057096751616061016113550763376186307338976017120634370848577873172974439383762350907419157701659474414096927430743793864122389706289572892366884271843252589064371529402690359839117186491106555281427266363477797891105524390046475930967133663098793283805348429636613124909986799577629947243509097511535552231680450552766284481212071740214597271052258087098771959148914095043320331882166653227095737927287734224069627455976346635361317168258049549535902188499547458971885148830072792147009769589081509699719310687406265972768723503013950295222255495432310140433574663335029403716085793845539024483645972091936858477013202717587428741359597702980823477590660031034562480782904726478005839833233049440622368441030525497901829247791401568302390310097336769126790518374008785272546267381936453471555367665705077782032192771850751951864826030439636748194609774462371205843240762019875529784416039503957415968876967773845736181593948547199096823831041767385146409129630183359735397231054882605039566146775340970796605394683679494237691168588301731045081547646038259010789686091666533595195591900324489300505279481530913662381337037975098650338384300458170193639301858354141895474281666846321702493072775120242441947356490603006449518687249685646444599332520959815267649292897245204540735236007042343667863730522722348737782533095647592045495138143410909037599600888244093424368704686292589077739723416460193334501078268799239629296175301934250184316145440246453152351157911553664201720563332604348667064817818577329816668665664760533649791173211556110237464491666456461864578252117399129752421765521231421089635608327626919324238829942049343939177207793822286717204591208578323171225806107356101835144519574700031600247996988422663568263442575828086885005106411293396953937059094306898056640510384720838832314939341077070863377788617478782710475117295746526965083249588884277836956997325524671291708677806365091498835950779819402969678628541583754139004904555589073309703924826985106968618041955687666642154071703234470101878224504738827877855149224086322832231961354875236409713780632502376051949347646066795016357596565467551054846279038734161866344298856636894130147609364195350395638666374518720520927712585832191693380259986992582991910359454276578322518761534374037992209944060698359885441816277723258534650848378631194247459035892070903156567776945570314077558871992316842138808585883639084233405565001779950372179945862668347253606900163961479135010715142387167702915114620832523484507559314957478973467568468474240970802518352654463416914762712578898053053284602670314742801184879249638189858338282501715898397081748355742918745189957761642440873533420741641258284049228096648049238462895462046841591758297869816682179178136127328741245650535186701503831113929338601138778473237058818390575686479523363300023793508949864608551927819179422997920858563386425089970624497584427649404028832072800086555901425737688428764478203264890685340869974803313520911976839089055438408418344936389719204689931871444238784841624429970073150044819641904212751160009247482369591782355032036107351296712239148122423391455457868788213803042091285117929852499042113739844332618746224174137437141348573215737558474311648295575531890229553884832750018718194506624538405645188818810543411358603236512727359725276616205620157250749352866063866265247912486860764552515764060199255558936561086450154746093713794077076991110889563401994541573712049522415138099619711153897258023183483566547931725573925510128819078340699855388385064650556731453787932051841808956215583873595625448138707265253690657114783642566693725571377063682535651874146435904099357662950733118890029460334190912581223869299574192436496180053955680732042939072875582792726158448353353058892771322869189174918777092075024758931826070868495844084002562807333004714096734388630889995347289468338552315933124098585994753991424575003089796523881273588709470592928134052727649814781744106489250754483499011536955211479409778605595961352514751948733560245519453281629808045414852641185042667998216944560405439464091351709298122111706049793317852807952387357335088138706893432444621573927317050221029144719992447705997709997931934850044315459821383988142039947337832285838338191352866240142339739523096875315200592585939225465688219802264763336069353518463486374770448734841985425150088537617636668354776008096626885700140591173371972543150962085698848415967104195373894100777785323641728334989544449362728830496511081313169496786657520488361760727540559339726447027362099014711577731604835617051592002876450701738141831696920398156526484821838740121962336438557434562443320330961913026501844490071615780675302285098376258097672118180561074420271915569254405825363302822287369867572656813536302914321370639436372586108609534175733397128748057341065716995009182612769487967065961715667130950718394207381554632816650795426360335680595282699653363748950758801101191457408155443817584353595326458841713143181545063895370602114730077549869340301592018049044827767907726812933316630066346859185947733785218529671576229344697893639250230386388320210697393898686237138735069849089787510336878482118826346731727304874235218008888735316016570459519794688601116632829638340187744946110232175525518813705032737855472013149247684036434573743554593419480100833378806486984716194512676065006316452881596055533968440110455423657972705725905417821161256608136353890145285053976385381353583663843082862510034149556818848403388995767404372378255035670544230113320103861408898108789954966273591622322034213397788640152415744638580343639967479772401124903925789598467453274633157630964467467197835379338535289587739229531816953112090058427861740471931811712274541427455103912263160137673331230462060653212254578402501763462675922431397767940696293169831296604414200636845019210362317867678536298427942756097282969893799860338621328439564914430276557539361866517105652279767633966013951144372571724434106064778327379342273548412774907495788674118388425485970652336065921557653403714960365303067974311851220367513420197722292551776898183117501565457480482888893376727785392600544207076074598098047938172155825878277221343606258348778337600551743772056655039249493028766906379039233077720954164318974496214380836308376880412456697112071928273404541947816009942672092620394746745192156006530828636978599600066853205182517006679778171672162737415040349447894127659065863647602719827051273532137574027827477213720008117484152003005191773206659622185432432749014534124245111299048171998200872146413491318221272841776122981143941319773005847357183273136021205653615471929911852795085244415451409724244245706176830868346358669252345144874437124698195506517359875868560667040578216837384758386903787993867857781104972137403106839170931652652059840055328344214271995644905389677781509281659918063398188684825121656809535333583617552430609301965376366586138468167464092448905214756425589137902258118579095291328549888467685820072670305226591006885254134352303853566547928933755024831221413595790242157030593031273133178963272803028066455775703589212710272504005138435262171594436240118437709458152874639366048103464854914040672640356473439841072611417695221013979006704163663056324302918037853011839195249356656348570809143305620133157709365978087547988763373420799309559072276295767172729449381168729358560216082214594664927072146309648650311006914703251898411872858696411424545587915544686616079886264851163124781560092420668521282518998023002620965808042129166899277399373952504610456613440067544729809323954453689622135095056676836937945187483780052027087682858770391903222332826302156754339046105397002299176572464236538162108229295886968305286929448826176198407040063596842459134396880260252574054109348200004259625575110884592110612295210714463396941663661625713722164383115588895408074995240239799419177700271563168769788535247577506382492812083332429567699214447951107485290994148196817823622577983889085861176440133078239208473949611020464025958837314878207099484863940834278321001690518961838474002864590637552705768945867164382464216989294393581298275673716050726313601609049613096377686752258561404494256884506129856256723300120231472452601217952139030347248617868932292314196901062139581453238764879363333926128084580563780925360746912134554917666470324509545284972691528292449527996190026618526492480921604213035479230364627719027627143819430636789059076449156936819037795147268602429268235166757520085139745781089220425302781593151376449216709094924320691221372617903451586602820939277329223176658006206511843125565060517270409296135001151391237185563201481702553502760221352132255191222485660832663853570275233546890860254930489651892572265084320302129550783928312471679487683367288337891320186310863527044699272451402219220276506350734495134812084875346873784709845286039428006650278457492056382270082610735443010012879524260672152478769732064176451315728039269532527806252791379850169596553066522216874543335365394303843633774550592566896106454128908333128028737061199706269514239501743748387400222142812828903849538568158315350134189779891663616587032758756833335185123982566961205615765867039688044855124948150323569739146693585834584963897726939079706017551884266258690306823920593033931969152070605296207735303478710672717291475097320486934147684200170243828217022482192999927472127550448958485868634101546888506161998486444284935924892440136213203038054127775010459535600204555211313165585548154717656084435840457794358279126237093332480315192629389928221374797568738965532492689104685786307006852451201167935701233788893270889755040065596602893209253010253678278616532015927479409127205604466647981479898924242271450277963656900292424348514770747356484720533585900247712269876666629239312925159999405836149667123837856663864536091753408826355119883563998817977308881225682780791976393691120447612546107598434868983162492896386006246422229104461932982928662476423806836347016183081478946758338821458169874508696098655876503206524007773089179229859157408232805864939994690873477219703215433375205230032444922264174652883260453947450344952559021035308440805356445618634287118834234750036898978483760097022607087928004853095419635303520912535193767816840983719624794346658565696260713549864641551547446822032543884745519231878303599483774028782069596490729268640102900976988318898495458473684988642281880906475159721455262137436203998741733662863964525038201751315797978494890921763765518038577792354030057022121701208145678753625389746516019438102702335909271386854524958979880517547619690490324363164254173656400018280675002574148070670708311383341987646309573628463262934793721232049605395286292441225522385734292706036315730689607243519985602989526266867981267983323381552504348387566799551662658170921485269371515724330026252765941628812547730346219318056360576695181927684212053028855901780102716531048820728121980371359929136252878325950632554727963110868944248636850831002977123167884364634228402262815663650713720546969809358000336243144407995323461206393814419741574521777788832066494868278655822338304384402407440348573844502633024986328223064493814323601140849457076904586683816257378006793391248143719757907435942431395208308384856043997984610877143144343246427730417844774598531844824197579926928314921896637499846755228612993143027726661488575498937127272083678622932290097402169618411770326348487216718289354339714130064047837180517063682037277262130072242428819351600798540942128726165069973632687436782940002293030168996275040973001635737085901043243718116568492251906177020878550460751249740697805721498555750750804426069721247507136383028976111055427239548426005413583675090064929422009408023079469776205651029612270116795249106728497677135317774881384242807895853032677987519354249115430791054274685678184158041083665830122378655522228626266561642438239062212471087694999106121283448089572354051590351134374444250147330330371613637713698306216647735300665606360800468919883460731543715997522854684513842950464280275039648199264450288810875524750373338962424196705339033947424675833896604060655475317811390008015151382127257228667288397642701080618596927014072759947690879595492988764364478600896348949851147781890170136015229622097096729734806308393915774697891731112261685900487244923461478223613207604222146260963739377659689807731411883126685698024070334524437767244137433916906694165864595216238176833950244716724012538412219751141701279403505169638140420085293357437854488851327334196448575139623078811710111915985519910799459847586682277883454993089279568139449660968199792697331623022983766638767641346060989848705124297104899228130822855670193702922423587794479741936300421249814759806869977111703808815026060477035298373270282706109824498978297710380993303993815022507193866619190146459580171691791190624576530728519431594305872029298177442811713423522636863846940957250585634602064819510870634445674272534182291501513894905708569224279107262762833751605075878032838163070607098555390806252779362299850455883027160504990231139709956753005103185935978034417131164404115077934955666096635899850735671975239962021392448195342401439284577286571639372867650849965678056159439293483477256349324760228158564653810366442304655759268468189325577667406721260685846480531892742724420566459079488562482340828359800871348080077128407042013597499276722077276487916829043200176027885125205931190027758779867494136915965836245785775996472781152958571436673259118559213625571150937300946396723998550009560166941279131689866243671567559381686598874243380874031119095861283369761181785932302934684677286131189816499503322299247404499429679170703645357524697709362059041493870399721299648990425004384326104865838860427265066601319105896630484807535042483095675886893256393567939713211309081038991707834340550003563755380397468644052060360664793062353040915558791905572966336464765992439695303217321276085896427618050532708536277334501857176958609072088170397424121487900290569806639260580325374530051170881627434836621192546071232225656484092272081823671499664866074581551023337517267045486235282545804334962553725607335527008418339092657500156703005892475444841640923634949578863913611668086124825147979383313868408130560654388103857905450413315849496150890080338208426549134203553124643541028584461990624265731170887461292206486902739806878865516601404458448973039792711283814568073831426357006619320457200269682325090669048137850405572713879421807721548747820653880065858468443246543895932062153729099456921482134182856040192582238030482020469864988147509179695134733024360120964924331677885739860385365671232369310548786755479261864811808821144520607037773825090963464225871499330418803145991681053972966579162940353228725930569190961194290086702749953769289062815902704315619529691687917264782092523427812269934057962694245462485151036955182710194868224739633107234817967711222283770438366663678031866907472139167809395153685761729334638923807249697786463641383136434543815358486951381922274347157173658719476370454798680263977033265030080293450323032305849043741676651472507528069441033083646066364186895122041858214500753107416407713430527527654013444790972545690678587776153271224082361147306710243646522953920156200775362678262169779929692914506107846059961913520426090537039169022803959339874408754244482096407580580507782736106899034084004977416761940782982246739977052650388542987738700784222819360612640398622020761358926171673103832078326304958202517765479984051533846813122318615660565116111574515585853498876409591585454358543823243242795706772916620909145533266837060981009063796616800419952577431856118253548826944517425141760539136755606256089854945993080635532655337384378881050288851144049727838150930699395899330933400873635991878474253532422923347893871848494624049378129195383520496917278811171360513571353078941072023703479350020124928110529137286899476230577843630409083331618242523998189020367434755874423492130043967025129553978466520580672460503804501455573791203500244004676218785492514235207779327381402556495808250452822824224575075073597768972185460226411862499849465312150086843033476136020142715257448676702976984474313992701314916744100046244188983126536233900125894034400381564624545028357926057337328442272691419871121839420725300158935230345525952161992862560589212719753022161997316646900451094451298455168601953779318132506254114549148707603212740034727654583659722370050443567038989669620551781147346670854205216999809067742839138964705366875194252507288748979977221691713516963722457020519767641668427127809273488678701081472270235916147589248832844088843803420006844614266421391266702612653976997211611921314820143897477930683219610104321563960337423226528065144133341176088954992256374446801967160989028964297455401965724977750509872794682283314912298415229140000749315972093719372106563298788311255810141211798540564982118001429950091853317250149871238364733605776049768831666273013059561378636540731612296924028668396721843886903091556080334869678694634166765660525279262321283475162897376383875526394680278488297934776584273979397979624603320088803057215226520631710340904351102469526073486786157731282957463565096499950041218738314942742911112247693077087473120518908777418116224243394407696917794432794474469785594194175734905418793062691700660395483929956047073850763006379152593266533471415279543917995656210407704418249230388082892038013529749711009913923900843366062589324640130294375308027657422631167101962780045462243105996302200538495502824776946572246155618795064442245522011607251971655397895152120635397442022679606369899645207212182604909366158277725805228097732517606289774007150840185268056343100582639225873580222189470540236333145517536236013178619118826805033916244987762312404236254891888045364875914335267412008714024673484889971178988900792181371527629209852420046172822097807257162859189475788460373598412820256932571560754667645821004756635771691553456112794373614370548888837242160990813193809623336121031843211883148384045462444430121641976630377234153945891505162631627715532252535902483338709514925886431103444802278939793537889233049004539350916436083378617372053700814596656256677515820322260139050062778645797250386582870954684258866193217275634016489541618872804642976749333816455633561338444418499964714895741460775272543142298828782334034869174382741178337444696425892354265244301932257205043235192681052857068163158635035483987875127649924457747486622029261958022943546404390906760531252750981296632922917413827922322906833650005734861383753297823636854351824381597216113792966047829096002140436956268986250653486845467591078673107691641000278885676618936327813659498616907857259481217061977405643183028739774119269153739127554596779102002738755450709152108715684519198924112558418962619718829310855230242924947924940311833026896512569322837263429780314434602157626929122604149147307004115466503676622690189156331497105102285877348219185168578941421210973373444749969044019968790385799144113007864717386657724674708018845142528304371605436583602710534156519797051379098136666752588844875214307837018749398464687722019954023839742186567307399447707905309870593907194833723480650578659394464490209457463043146147657200080293528969427273695266732429207585118771130740304286108573911480880436414989355534041096759206509054909489167095534025500750211962045726333632889114767898029564360078962136117880279523856187091326484047465461015832018460357136461615077086496892765302908276315679724678822786496429883604303412617906470497466505203201019095607042349201279089647245529776318034635313578143159508833540991137172642072340713408029140319256358424720506418245836182753690046995793648703410501650356452110517392412861496885723898226213053977892978536868029004600868092191322322901110865793977542286332078469978133087275735625160601338830156179849857886747219500098596818223344269520594311924499105880526350547896744524105324014718652561687113886173316170754446292857840254436395941143075535289049521779598659196963327674658079252000040346812681554372691908583131697034916859427013135307576392272086064197095882338329724182944788884895578347878765211568752512542337223469815784363022039086819774766432285800747744841538123264805530683325063783119435347365605743327727484420695149542858721948676341949971430816155830870674507205245957132311998303525479107507622819441095594216700561694864457398246308009217542023966070620122990606526973607284981040412740218402169129079659428468112872930568847499731526837845541809195187253158488772151811580307434558359139735031706505609614415217277683505913074320794351649278151844193531531068769308057867641538851102589503267249713838239418864629473167628244962663179915277214971798557001458512969711815635612386555311269987354409979077746718537997343967178780101674637499246203287420004487695929949664375533622939138364596712120898105155251095503834212860946952781905958195460675439925235387064751146477741217747979984906316145732155246776022814012834915857752472685528208143568718761585409801454254103713072116321450446544548814196071618810771153716409194270220285048652117020258427434358798244108622156812118647994326203014000718675221952038833399958498015560688179899792006584847113073005725181699104953087573286392371204793322781429840740205298235518117399201900299583767991488993605462540289304783825461916052928138853873148591198184791101258423134705620816017658395123854176550583578415677068501618361857670887576682872844513907816139261584740434373595245807492604521649983446918684114724660703285336891001998230927356270411288543330351588777843253711289456104589429142770206982770872196916596546629952231968311112433812217093451617840256413100213425960133680561094784127030382556731950053785365142994978224287119193545623103558057389768674873950168612625369995034815237918281622873060691366102217456585664093241240923313444614442111630884258703052559836705431154929429280976186410498300345381292220755805295871421973298749757817147861424464403676276125099101432692126046162752361672822729257039851703215149774965246592529215063200238803622358590388524723159431479988009718487582509980691390805242729492236142368971291945569707915064171842396846094804406770727585647286522227672038031787570040798419008846801151335337039605938194842575909834341639182388098248774985915977909860426734799418883578378320502997666085457743633444555495557861489939672408948511865730288553639272139048130441747219889298145780694969823589816661882527231131183401510733043500897576546553780105694890774691938286257937064493570050942141332346710575145744292338978474229026283649501980774355765518947955480586805146035609400696467143519003269327542517226573740862667603005341740904539695009820325296552569433375845854326250361915050994849735099000771348313309301094493043803740186332694112702489013868389473486416177297355939341511780179179452798307587949112495578297282886519682171068434629207131130564654534101363844944857625002651026380587739717499110761825303209282291244590409130408688302514487801858067387518437213833779994621177483076990371447938897804539951425303681350174287248756752147483711719498927758993722636863879641718954569611399253572917954322412275458125480637540109536137554040629942506096542016263626447381906959732885374773839174618356164178408714312254375854630840075978451288588093959488030483470798668265490294353659861285199531571350651155546729163221546640962163051611135694405296258743442345872264425773781923233931290658519149722186858195059765987013528953526341784789352496646262092699794974194363404943553225965743356983963049834105896208903994468334044517580668520482790630205353384452369505743056035810136827526610807296160591029434771390162774960479874589703389249210783501889844863645580488728292776666153949026141840634603841740966921553268588206239801928380033871049483632175364597331305498922386745134857427506282086806474219360741633657281128890856821276633229057542185987938208597773590593269022910395686236649564093207603346729539294625899613408740740679864991846810295860383773732572545108304728582931113156090202854339893245244123977562378517795911960310766151569050321982772121081981923356894023359099515685210368375055771928328774890918776314039859843461327987998466424042951966581193763420751883536608294168990277203342248176884201091208805661907540870839403361378124778606636043707562463178803407086928091012724007658659270614630986862275056112735105582147138199522026429312985044836811954982909982065562423605769563370175945418624933721498375147882501238833394189093723750569351664917899284626797699433562727999165207565890922960428337030334482346848849544043332483119103957910338803283992402013992675309483833838213174737594080804707492710785273997645485356806238367883145988855006832894498773342364132079980031759802648524082704509832673987106509352492181947081526744208773668699215490575560656844470160428102481100639720251208748426002398530912365383264997986406533061884803759961989476990735466199585285070667642809456375614683280340290952669273578217534476397383228196445463940953479500359416662682750714503702473458799160023969189842241054961734152054767668766990029987483367550959915833777777138811303308114144446502007691565362202767070031825950938607092104300210030996519825616880774982300584356322562685722506202094984364168810318113033054803254533461800349794832058285452644618438651735502279938168347685740250599267241323600562035870213701917648830083455753709568453253601933619273766453781056356525283281848711948881728405412882676333237082893703213608225424509817528421467719497209384363980182058239788823160401279598242642993685203460161087437840093651443448125649480270870507050760662365426879565338976215808339514289817946314462909342812323471757996559152303837620360487732246465811692824833917096050436167184702262772849555604747091444132625678370665658269015920704921414378210933008900828973441532005505364976542491822954374034149774852953096969338220181349686755163182486276329567926291185841841408062051008730500380994480641400126495477497363906809476095128355684916840975742065990091956216729765044831460877967858472787265893551007027810110371646982338658061176834478938602715272560390419148855676880290491482386699640555933686752193853466888237380667502482285042725043669827108093503749710253938457323417347472023648166795866780517799734030862476621717526093768129836008607723547856656012461081175774352388161589733499383507535807589977585815803228008753947121240729188323333627984310192877720295917542724807703102217572483300204854945358231324859574750547070483346690975781555240992545549231645208475276163181734325590316003614561342630384163973476792898472267154681458886178356958232016986747282161512750780915924221157748413179791343563672135416823262844021261644825945441541787745665025858380601155135229887119641817329230478411300297906688983270282841281696126479735457815369508782370064484907648804141204314010253601339404877473143730124863458803481215711835825101595808487486877504987574666385543170223334213379087859026320411807993398719151001036932588560875270361769800183769741796361285535678435528482379988745123991057258347004489466853225052437426221077484535296843139003117156381089877599145601378651540500025421226564675986948830975610248628416022195521524675535949795781829242864806025694059925896939294136121979066681207636928844399610268249895102061642136310204945879222726247067574969849296764843728056590351631106518688104664089646535176875003229961188581475320686011380720516124359446764115529499237646029393873929160272927729523440966936494511414745322743681644849101673703076957371042012894105182372249478365410787919601533035599396613397262129438266085584370490435853059877834785897373043299271268753099737799808393219077926895144221031117754898470514956834918690087249490164596691142405907714908029936583408014733802877022618171277094261492923469223825205930319624632225942938115675906287430078716168356068807552509340976169524729772255665871870993752165483718497366450417580510166677608733412091229862896187886804198754839774179678479933731845684988663799046835765529244546753426444407354566397281880883541373838025488906421065114917399271831587733538244636040738946840815395639294551253371796245875061537650795654982498180530792182890192634792511974055886215162785498231247071017528556099444213849321261035718662413626678752909458907244633335837254732580398846463417392176501084061873945711158261257376059831080676391471933745735900587283113883318675653226039596867629016016927011141123326159699311221948706862581051279947613397067675175904816447789483769510122244346751531249512635613632544846416098232459766890380769205128018239327258958416754555114444452394698828442896569671687369851502683700138173929256305329057966940935596031087756517888818738135129256765926824274165466444044489750936279106838687923621976308572031542338533521510744239144845707545932034489136580872807647674839448873067146204460912159114618763712452224780410416648369508029511707000873030465770463690013740315754164845938336517649238929311601419014416804858876461882599088993670925920021122914431392144059377263648454175736787122261077280678136843076002920788312028105424397222307512497751573887167414059755458916482558319208242355894382383951561443129267059698864925995886322241556242173649509457350051266103374045848646142286334643570808156148358256410257760535406748800660782605315303864719590292909816194447336957140762950733814428774228679472900022757574335778700899141612934645808176291542768135428123141295040217202777336519927393899339976253528175670727106302102061505798613990962143677110804799452804392167526086469241694700033733810054886550416150042966881788928667122530811284351651191595499190116307682421715210034243111310143412228700880612452631973307438793506182386739693338237920635457137298043466416231562454537295905866079813787475737783292119216269237072286141116396405130593844356342721948176823098128717658261653147983702634447307371019061274619143764697247577718692334555988624950280168762706673823947607914179077861145228700054033277539946342638617093641487511233516166906000278646184422905636684614902024358652153194642874357121870503098452947333207362238507286808932744204233002060254851632782573464924119656549488492585781344231918277264640248896986443140523901819775995857527137826367288562964545781191997007596011406434882872451911431862662202685813308570889178820199609741726898624014523410406244318593878575537323006474601174590197329033114645244332858950269122065154080563265697175386579421112556639679123955408204660922350419019407191025366980179180330031989128772912952241313738015919498816468990831603078915590742517066877290250041805173885703140006033215921595869415742984144400853255890329151495871899181683513407453144308886854873672900013491193842624429054522329342957786432691201316957237778159544741975231412745929139709422624393493361411675538910637398723602802395617136013141761659360747835127229681833904208520293558586347232000045511675390372257746606098668528955095262401242824689306677952240854163187194932114403574215631403804867896498922234345206482156114992217030290797067360738430676155056409407105796405169973524917726673626040290471394621063114103392619698488547300263193636754237632913115029347467238740760530960141211123549720007149853126927684234654213756182202431509155256630908500876411834822316689757385984944199378588704172479216970940427713725795193992756511454186477429664486396118715751952336584823001537104212886050268763506264434533483037542286639081002079070883509069589083741651072519293776788024448499764070700776110639102085300911255578972292576082040058136175281346675530558099640871606804371634615269537084004441419033820835951947094210704728201526291661240178121326887750412322134857261062098098298745037991323329808760849754985057927284701574970837511351979758637373283151061454655301715797358007673522435097975264374564224439863701586953257839532795237561657520672889444238226950097001392732565669935752769348114098043511965555993994189139530145038105574888806365334980425314437736094087762535333791997818039938878127235892458694742802772181238032138337062319852506666278373333300886885776305622828002724487386690186020634623952583804525799678664124629106268697629001577362948576809462681388081933019826669929685493110257913613599991039404691695210055130997369689199618478635627661174255998895630619491165742266723158292136625679102400225501779652118070470378139596973430962868272612044001864844709497579876421241073759417671588753959219002968598729764121457299549907459697526973511831877240927217849249223984788512408250844002653666119480538289857915971676593285439941625189269469936102793046338683620165478532165168685663091276657448843582735159467657080955628911910953552983310822340699860087599365718913992412821872184791915595193215313377699367833945573665411737043301238882320508857010302063052945278285489035943412745532312473239960781136561221755422387715251223517670876300541349817842502040777814571401016606279212708808274901502933041994820676510984468498682212289526518593478848418515608714093880484497534649395645386880845904144820938840588397281723185164396735479228092710935635172623950786045484266533323638041625140753546238061458245154677467039637008054554982950725655367352477865343683762866919690688909154951227585551343477113819424760264088428826698151839288031563052798814443442849898098084854160035547351774831653497152907736292552549032486992583240943400180407669216913545039032159343754615885025066188107228577704087346053530952071281726845503170717347920635722378838100880493464291592891540403681252407957228034379160744677948246775723014008972361642635818034995972401160390660783584596789352073552871422740459280125325811558783295948980040899587824087987345089065906424534355054994363096473173592910736926569886132467836715502784041677070817886709484578564522150964189991338922647451286062043078782121294623073988847312403388604271848350903748226635857400002312922478911738515965727379504677543599049798404218375613850619691686584295233818840067691242577518928659874961830496005683646228585972729796913389532266478765818933046701634906647075249540413180681691247892292851362627260056950775973380994118996535723420544091386905852847542184728620717685351143466591096918593343508255105550388139391599028962307897238255237253421651613859499252056682377813855221420096682123324556441837154994611905578204761765503907604867417930226102975388858208394848642875158953894356124180760205053430100749221226384168071525058450926954564295418262379851196534791181095027117250114936251829472572380455493120689095729108090123830999638656697353698793671159939462303326269095561374499358133491721257245580222530669800413461801663668041311261488995768044564578695210402897504691607571542241908775294458248155345002614179190273307029743065137817724360693603075462313686085359443808204737494152687062921043563102925488724612077910229205135849316879387212731073195583824015120614142533311899081232355497342439310996631477543969082063087729221795204245789820104127729998057700359006428450178317491890736287275958390322597935076333209565738152452394819036212371725456972975704251719918642002872408560916542291099462863537532277438214576895357352171900842724231117834246520006264135781873042773874214835857364215117515610259937667642445778102206310677437656736971236375685533422446969247520458166443502865106845380136097312973467316869495633624748798519556723772653096451327693145140359233896860981201326210410459130763052701430754673523971266374925389838809048269094891169055203219570681678357903140267438520428702602879569256528171743829402206744230830944379077523996939014171652813922482544878308575230916163989294194336979644776108923549486414144326921972059991342824252040723653551385294797516579828510289001983619591970723819197019703155021693349111646950636948807642719897981269166410005599830759990979397923337483712254234813006100475722467931683572749982070626386784679465087261886171519996432964564234588061233974952644842430826176967503932932960790392620106400122362888528460210517368110093786060582257967487114840707160036982358351688818393793345468073627826012643234514001224774963488964046506160889257779842349660445139813696675851463866362691831005122352879272872383402465316119836315000595931719939570009382917190871661860314252313916282599753336750656884326458328829709042969870367031111830537138894435449512435540056939148737831927654569154108727090203619426525692933012524366986741234990263986177329975525907323233554523363052471672529325098724181423531085276841557802867059253171005919302430001007384509520262064332601272594495242392992492459211499298639380953617680147938430372631782367250207601713664266688393065627533555149659785672958537771352177702027746007351203030440640938825327604957403857130447055016895763835983765182840861978791445611484282095050863359424716778815984768797687568236605511639002915438886397184865067540235722188787889763519667760287620995519531922161358432404521290008822200735536715719426839012619691169538126320692573249476038190715095394395880607430750714836889595340935554936810723305199122340338301951819915083311006382675904760087399700042314105891469779021868279230711005021170299241281614496972830366624093942664152045250618434782012487732350491067995978075729289517520402600319048166890674000521971131482728261290176610146223800339077702355423079259076362652098523268808655750727331365029177746339213452894066300421975469326108851528593088082437650901753241153663330149026246599353540349052400059328110679108253069830149859585675081667700763449053503253643992970764681068034150743667652562990026205966163577566633847962788389088652778175146709766011928205098046062057390114520332308919169959197569976983114216771703907768685060564309257420007858737850573895341880631457592125380501114880578824691819890412354578503033933033766304941264513490036336261191749699864313899960309403198807603151543567637762932017501485886544155116516967772608328428171858954218918035024385697186009066258510520748992546027898021927499296399608727161971224915739309344583970424018878877443658435814165193855182852241692182349645885339390413003409105185324731268799117692613290726406547444048817688236657560160991368014162155676584082200705362523113293074560758295143018161616420624966266897660901426460496501206683614540945739086024117917126631089297492517496230312156981069859315725223755620960245215637101714812370962989898770013971944501260356193808305164872746528622235671998152119781660468862839180826102813445667220523538416609654133027040633366145685718885251779660985907795164587397898620689881365162775352660106009173573771654799663000535202688799484951630159217066516942280771021562472247032346026911071306980145826512310320788310970722965453572283530038081837249236952756961850499167496982708302341194129141399142152296531563722002903568125080153014963607416897346629104686399998940819768140946893124195041194416796269240919357582158056814491435136790073250461408319222958379131451128483874838299182628381996081904094749812761915450558328382313911503112199668808619048167830503376912279845664093005325394799885264881177643288027522931840272240801813092466280817750084133624672055201390573246850065884786591160952279091849854843073697822370016179692847490951185531491806554506730027668903718120204921805058903120528857862074546317185777484520816943888140399578734229342047754819336540229808931141762907772438097591258524667256658218546374520543483347852895137226640859840090039828312713362246195286725085442307956239473759594244945685647523239806524595443967303596087196790985974357573495187439894827921085555313116918285228932519225870701849252383189500673743710017662065932070902015257713401246093737977218866147318633061349408735807307587893747785637743580747836607171124486054898156457748712572862838257564598016832209529912538732046602420961465545069799002593207349527179310213606712938588969591092447371363992410800912013376833952897562874936395931191805294486469464491742523471220208096416530823760780352901419730021620625830207823910566174104040132665253123336087896585020896821129289586013133880617951080431169469661905427033908629615804599910216342096959309594468146452601636891545572855651751457223178876779212870590999632015838997727596472741424866929601625604102030847284079802132826372778490505956222327816104392860928553975089852039669994939992452367522788164005894064659436950218629239822618533073730733116698757080165256147005545879906188098440566334393946530609677367973133349431879321896053171943840797199873497154714427058102548818042197327301393133112959069379696940231872581498681472040673738333528646157865960500164316361913614492026601876776257857607776806372726772907233015324539762846491153224422106675168221963580560183664720955895104140439467337444883850166068242972509628549152402473701336121700837707487216414732045035905375947939659385565245579287685270372855455056977995843326662106239289895433619366975309376255422734967970379460234965474859596037425193297775608792510234653765865358869452857647911741512111973304621849945789752863739636771216387828098792871649057620468767412618208342970098390706371380424842894386908857393237830462638232491544053656538330972426369134683365989836923759794600103782276700351373781653233102700787145026429522753903884487427639904235235788164146202473424166150889428976127451091742380734117805657186681762599938084658017127684871416803748559392147629761374135128689063762817685026652440941542582886172730341658311530881637824987373231256454329957333788690997401110066849589755482999947480771192884793414126225984294647749695138477071312757919581822752796790279325388361458857612012991080604513071920637675284497948763165509757997641034210121097083196601015955291786465263120472695957304338369730990358730963670748256778775897343904623585396173476328174999158477977085740079655796355478667576892576765093758289921552747421913505453957284314276772033209031527030172306561800157851283965203659931346080115467317060525630338681403211663732782822326525651187813011325071849348189232807458863940821169724879743676410093771826118823008166678220161421913633456029086004369744943904936113548051230565770384716824342611028350367457102701187716097682512995188603741319482164729754941133173598882794154323504739873295927323607363471492753860889492897315309198636544457562254888519237986247559389607524899970184351356096811079959973818255919081285957697282824460625048712420778874965752835457539130533919037837136836200302798391350598030124274959100895796238877147288394512826404872717778343005766241773536032350453318063951078413513908833854314416172979640372805473630107541766075424978742716098050794769509043745628610845987783844818032137884217608157097832293698259812703167377705225961244318349522986118887675364914913471646689537398754503308802858351045105181546982670031236248947075246462338841929343644820595289720972279119571357296948863097109092351729074615372448162480149205857123787251976234429891523563878439601386340673946099688005711527043483716937119082517014347731630340879198182215852667535575477346940726732147480616832591876433477835719211753441295695209622386210372195974681841048865443913313231760378194140293736107470312569824692507985210870882038198564258265085776663264899855522353903055663604009381182442207202674102795815078726155018875553307912494612023783988711283638638398464892413033488161431704217770621278802634812697419238455509946708832761786277217836007264641564468367956968074004401103496854008482489738759060547003475467110572544975996014558838442979774543163520913722674283512241591925286239352370004610347217911544075991869420816644470494619670990107254519731602154788604929179235969996282111705551188591946639774014138724756124801263415879368895805752937612102377963601307601176465485004684442491666152339090976109915457836982440918547160328376748921138870752235797364437960414294410901476779357228702238184351011839580485618560404964934687040702920774572963046791383275554389923673676019824186535405750135725911540136747833765619090138407139647612731842365849066889716816234982247757981287712444029913706490390404586881648407154888948771936870303103733075281072506144300114351372196132683003894916644164022427063861052289486707258789685341159425781603598200249285154051240998560572953775469161205651547915471038656808204866327625191237363942223339790651516764590660480753360409256170849868139575943536717029585058227750772074723995848481473949352103597594049518951474869250920978554249450820636351066915053355388000202738718145951442632881821148266593192203580691082193119946646320905650281961930036531497747099631993430925252852770642817740024821426308280254612581120762091584861282687301283772584045811262736333722562721261901906159664403936991705581037960953709040126246876106704208509813797102389924742205516212100016293053470333152277963741004275247647562622238853899435951278339876073191039896944014633620235600612471596614472016560107949560097747521068583086987084555758229018159973437344474822025363002805420160668666370626377342850873817347041987207292121966424539491452353716824020484003915528573865819073750354971451498390236930339942631636707293918010027459788282850299506366920688131286389473413141316026154760402244053912823449531193660231001264493647009578185225444932767725614169419958235929546991048659413492779590092445952218722339172459870966727753208438723887414851483139878715583670065872517681660291746127769868676309996078958845356305041043561442676353068499185241488796555568977981415189560649167616653912266218671984340009260728339454715734828581318296846899653355196732904050302662075881854379114916919494233308989600689467403977464792946239245102996254459948977753035754373061251231949552515200409512328163885661080530304819965515058424864723355961376401134425902627164266401824144323056758348797902857282371770959307000359044504213059026652044511921686228421907557555846440606136110710942987512976205918881163267670765878078091233024958777059138404093504277946406418483602408638055208026130552589561286767576941703888019136177373054082887245439903769129899096673503967998352267745124931972486898534101199341976332073780797978232106765723841603731538318727814802354105212959166488402885717398771428645896474357135597635862087105865949962902834598098305224490116558086161694692748707416852923504055039548360487730390217089182451603253192824117303847339314805080532748902089670911572004142271627055531243914833288656513398513001756824624749336764658616140030714549796422023121994732994929284894894896755449685191244228334470546454461340057960265419756052409749987702663185058944626755806860524139515127716071178769157661553567776160976740325584388481147301431269087030721188313385998911269482907474891495758025468177759995436270313791996273054957980300828163090226083977296007111825609971716721357666485134960367034272297595437397445137336470959958585300035061818577751011459151904408398690123362067750052566857009599565592566391860866982988920774130069648741288512230656868536808657227396134219142831668783609070560307639769375364467602389927173074159535068153714982074793188209391271145308540975139344294310631416798532941564875609932815680093628020769683603074866705882873690645002529395165411449791251708577941291681556092094797463035145187608867510753683135863053576901117368016025010046592377442058586908437468518611756982518373641856219413279526312520233645915991600866503491420849793627200355227957251778256170588955242562906644851531114676368945877927727579923519354840370006982684936864906774428159738972374759460383196282681634122049676369053414192368860330021682902489450171600047681506216089147653635693933449161397076135408010892113661361525651301680090676333940896633359432828305749302833920800517966620128673187521140912911579964616148605398795439915057616033925372765602959119848016682153432146361818332262380912466350814083654505238545835510934713082933661958742845607197406620049012091309033031669269482278252839714642404551860501971321413384938382261036255946404678902204347202192915243852686887101047007777338965242104289587712374043290289680265456674622218871295344514073866710946591163492527082859974275700444905773549513940617080775844567029888240156979765104571487084207777597012818690414315134205454912155604584163719540727157926906191940929963154143411070502966631379219247807698189722978329930661242760490514434394700625586567259073963511007645557450506816627824248478787238046762327988736230885612939955564306246883922998742636387443195222721385927019720372446707239082347859818617387435360226821446777708466140137818239255153961991145559561059839473632958646603291635505577755732494491439767695014621919138155409219745405615921918251016041316490824126745394642066912366370435726901324071011379241006020318923550250337757822922188763071398081742198343638704011686685894238790589647459206689952908479893271115088033130884221542486154975253118904454674385910554401780593497886141774898647748650784463910854260465326350342757512001254926788042824881802397892287413109130854203227657922079898941476367607487515393616560210736092320076040940766679047392196178041698423124044113913412103758680093773491068029810987932872413344950434936893111999317369118528958623946301751566591377132623101431008966455556571743859770849079883022052140251304041951815331975702672460511677699567689697424270111422120409139356536178580153490582418403992295576303857410914423417380585737762359975017421937066740197655061727212967018627211914075563252230286927328174869924818362147621244336173311861830938241737728898243152949962138495136846567560670997733345388387266918560875958178655002888879354648499466283785818051492229805385592708497665013240691937472094874803793613800228626418961212506661199560219978995401335459524311696548121476832553773455077347127585909182638725470935713773842034778385945335847150230976676177135229169271849946204814661980400935838944224656439305313507715865603559755665583668165701417706339783028827842530121618955489763433909053344794080151796279063246966231333491026674654800672284803129186103815310574938199403839497577793788618181777689191315005812217930096072283203380271840043245422928741266543649150904568242407808614527989917440293808675100990727970229354407813091138947709346341828068896141660690322062816112915911549535298898700906246987422134132747577912859527754743806338819016312214395774691339241218543252816484271484761063283741040607125816365978123499808926953668337161259182865044089600174034814779163627346851209143455523213932685143231414212119760611738293707893371414594556539569901333447696959318580174641386508273882600019857684599815280063888876073571144246965817966195995149425827438562425812409270018011474466598840676025563725170557741323094698974076532955137391449158864053389042884829020782067823582697629988290343998600014133238358194200778970738649893909066929379406847459273426999869563456195548271093561559700835050854701379890406003114290490596628743290326130739699170379892578393040156384306911815671828147868905615778036189809158848239742580881063744736822983412790210768934864383116482819332013605645473524888565930887213018898180868410894484340936004027586735660702419859561426623850090590602700256739581797627135932812205259531444926697760825498952727885845059586968455542886212434113502227808931057744920189333083191816970229374631304282963846307038982327873299779589233213356669694577611151514813301720022624643936058172381748177227290634515179763957320444461496866179028997204082940029904520673438525994579751186435223779410768687548858403697121349023641967388966490087981132121145811252281545719546479217786839668083724519586731861481966700412305189969928389123080195352915177213846242710667102561147322042402175697390148852293739792787009213831396220437696830717858615420534775850605159528447201552823116927457331440984731374423089481330346893252256325261414639376983506351726404005470673439603979975794831486214183116473800248787194864392271786263922681198463617418696587552196332936703679929271900699388305856267287272776194312732052558077457956599169552954936006260284263337612797738214740453447031137357224120994968345515509389176558368017611912155411274717092676634148344541310715130307085537341963592860118542604771499027648910717740688279946561188629132330292108005037150578821722294959993001319957065497130883090100779829940346019901010638071381798563468827216373280340060527532128560376734409103148508923418939358959040123613127486974752125213297708173894919338229488463321886586437579925081290424497321362579976994952239079991162540346339006688629023506929254161562053490408879183397411407543756089988329104058424292458623547785221169162123194418707257431662863096564660192161895180691859373250886041576994343599164971300487110268655663742359409402299370690051520114878531978615211069326069121021586553648753958782549441852731194531139884281048561007324224174422437542793328207774040579837101463654568830002812341103292716719404937638440228605590773019941835316020452945083268242571052310380305064951798205508960447632231373918832158457666754824618255779567619815382950400873579805183494059008391573936965942442130815659079691292089344230702665751257561797476959545702605859850536414868218168570783264694264750877617935249329941000461268811984090986648419836270237476361677468189852028021393618784880495207842193038022955826424690806941765984686140469182003286929599204358772593219850369627834425312349711875902675892278287829882519927833015125946658263301452487481517276775450515886702077015226788321166911972652111704820024869113365335834387712150057144829321369337470679112999761072829987135814420470390080231444248927342831719021893986418048165056390478516466306881889532451872692186086081338160350832735994597850098535546812101993537359360316811902003868697786026167539669065081025634150304806699139297952925595228484497533816055071427882221402610121132693817182978683402366553632915666296334772841491460077857406643849102295611312736120549604226583922477272357599885147771929613459427887663927380658030397472600635669123349814404111989501206432590142367759386520896109880027311601496837669058969471705914131610915773595015306120243235934910220667812166433010863337560836063535513650058868472233694512977864924099962177082790613684045399541158048748605950433114065924069664025875664096523836126657581533727873990753261383340561363263540233780518162210863084006051754691446412301013355875528347332172890622134908481688187516057829947455354057901671157171336972622470255776059580441727231978378093726830386918781319755584058514776009423005268733044106818403619019188910226140776734151762597876127576960400735742419451760760856502242650692016587691631977546271233328834017137756599236910009125683161276845817287197863494225148233293685342258061961984450116010338957472358390704008057393602103072692256080073585440353333996094990688025612238341704015006864155305109278131895167085674671852866259367539619033837474189022794411933336960279249489038680339752113063546914676466676295585356852591194022052242286948960233416368663990508616753204171373629332481513588212845656888844503867904417680114640929566409953863832300395015787044312374478272135687989881303734643218614706404705240945535908418555127866407657428446975100420373127271558478666965470696425748884237272011103369448927992784833191311065642506701022592465228228663672893930066676998089966422886237070077815458802334911031502292606508857622410474753556374386379952111585533798963285663736634960543141089073811212158224341539675350988697784637757982389398108300746419459773802459185447726338795932979187328296524790352334338361858558373935369238122609107721196565191095004704745830536288859722426889227356851446973641130030787240511690451955284027619779043682777085884965821503090017907240708746801010472483130709332100367960185435541220598001722989484646150206644646832303060380467199032892342668107077144026270635157995783332000064601255435370245591258657795509693257333629482614250130274769327034220984692766279422795574194680879213894326038883883387554655259840594412870032374519149585032649293337736864121515727155598572214889388331968407698590335125881060480034395469168804233611346107420646085064199376901022621741035758350273687237918169113367722806322554523854201941157869427075569920418780835390287537336371205586039731726679106124321075011482628885394440002296651066350918991286568345928620958843861664439334067656881851514870305259568137995823104336867791659122139585429306108184644706215076397729387971902585294630733013928491456826820338187205793193080028137725611227438405566399975517752449728040169050384921340962793444317625297553249796765631199122222023922880488733569626832027680621147193765550204035187114503284325566942802528993176602023485825484646983240589541999408778725412649165329298247971343519824500177479294111600042125715004775040177210361802784966403409936797821308235840530930640345095853391549512615369419113704566225728123885545951401726654297273780311293028528065892717744355185480303538789686038126144126767135037026901809338207780528808289851249540772807863962822403190048953105617100831106085427709303208768068182311012775957062272756229348125245040979242066446768329574160458533585542994941669802374066227844632294905817023736329167565224010652179988705115414513848172408158136067175823945936145416239974897613110671599056687712842202940688060860177089855454466536972342425304480289630913209972648760888060189456735980276970420729170563682196055100448532019555130057841850199168446956180956794638183673869890485412734028324235095539073367158367420001368224767548718348616097594048544633271880244127159251919244989920945332392426516136949592779615934935681449037589343491992838707796787261984374243639020787407121551455778321557374421967332878046637107085514878077061604022072778448362821853866181763821753311470511021685992261078354221382220025805357887403981981209635237957055814585442411964078974016275084484940270405017082751638614608145445762467892423341140918154284047432332095539098794507115778581484675589572192256708110904944511448444443940812237933185083585859091249979721701540191977809442743362925859740166406140823494113778160735437899605575370183743836607335156094573005119806837875047763180173444860529021206388635421801119677429728500971053598048687129292883674833587643574348912247904999471258159403305821502930864096187156132849972773779909290275672467280802160405039811288481214374450192932616521136957083273820533266894367137859619793691364153687792916991550777967822026513274999438981132113767029474439337990764501981246262594191705019610389241344842439719585462920671161674567375905877979672042218222409858675097564627315034440803861775830463720635854002099796573322545461447625018322923187876219924202430484983497568156724817042242372942120226537206011897120173742309266727980404045311841608606788278048419235025548191776317342188907389051261283875967348187400953290235949731295688271752538442344574589599780807043301778230015672074374570936567843397131765735268197417557014061698481709006214834874575649805086833448938868615694397824211687938830672091155272499561566884431022585090860596149603517690136762901191661713954302625003296245004016912724086540965960298330158089672552251398945601648382004898378263951449411162153238009200669660994699491178294704997279937745655079135969052586560853669342236761114828800267448801510175479368372535752887413867338878258269686693460971977911736372129745628403685560231634222213230317970551242376296482170769957126524866231384604532034958241964116074505222948278109936728267963404459914579254960627741892537796582838246937607372785327428106378572854254805438480680308738873076652312891565527228352665687221164601067999658010262574992507187004909302783646640567285056692821592205669942389758005564142261657061418034762750873797725510940113808590795871705826146211865257724355927056853541115018941266086922360509747621780581814221231216821043222783379006710455606315425274727665939994428120082523091595357135525516821931077123845943627565429799555595632651025458078734387860002399933109344884272768794375741311300614809549310140463263418652702564520491350066438233812316553792808910845984860285353916928473240067563156083302562058046423340454865996217535971483743747346428909675224915494286061335871642979189680315926175596323153410750419192407703430962069178255287458946633123044469781225237722504060106756975358136285480640231816687682269208828395864583228534361411951607404262546348642867652656009546015240688051727617244895505202413319214466789987160128799478430658008656394184119050669190924370547893710312886196672272981168452787197371892512594192651243489780817514477476787045196344003742369145909907915182989070103475022986542874484645292111519498852244909718883529034046408743468578189840217684704830959701622191859603473100377303333400622307570440301117173355726959645351488345403750422290338683043307682597992992012653153471399583767992907882198738278583168370085548471614167957884807276838174210707623143374709443533638909442701299922342522600562447271164455978253956799527451696471656126841798646926051530986397999746388987831985110845934143889386429278848087245949455309535663349160084548246646915591505518517301892204555815605701097076742480623362028636099896939445202198642857116059488186951244722175876991876262325264771509628567271378197952694162811742858976957043824555183478967197471348533164563578391849636128605597676897029969535581646929237112536215895893260452142300949347530356251916914525615985302731137295298008170688752681533073569609875835571869500503608915315114573767512229393636901841942756143129249410413686030285250877176600288619077180485585434079860403430283843152654593016115986223979932380307951880505571784828090322163670552148020846244473302797322787647179513182186571493136933829858291004617663776212181799076018042958071671101304771733407765611850445404456651436280152136549752474993123123485258147226306391135527691231807440340190781063173266936788480436281627526873939260054114903118587351741359250210533792705065344551992081366381328423663881249826081376825555525283029525384925966080446834558634022182697343220315838548430602275747076888728095734105366927664804992510575711848590101648938810060994222811497897134958762066866318561854472085815042291164666784021448820973771400496105537749799414493471294367255710694489564736463623930092327018717539550407546640697161858155881799682975108488733929655336544810123648728002478133123954490040352809248975259504212413675239996616006745464485764784796908845795669818332122464251104497846469524403709001237827410607757668072819419781556867041615928060754224540222242020574270100212395428774692060010028714241172950901324349968650068780724049123345832635784858588404005837958163261190173882332476303394047374331457773793467648570330204224896987753603851468003662105814324831083386046760904363399740350118775738548856819212727767518232041378514025965598098042499380985063225967246574235980920431540322142866176431513692525015584004252879465617563119088942272871065033880367535378157665291530233910110766903686914430040585850184965078157541945323484684550857654042076993658018092127783711719960853136727465823925865199202648468643994660509827529771016917610799382572774890142594231360617417810908561059721860221286180026302725931781557552569931270313068725478287400052746062738099853045753978846461594216986790715919894131358098739142361236051151383438231453814558051938022543517873466099693643509569976636489088609558014799840794383943164734299755052568917405275529008381025990241326954774474778045716733854690893626262068582440618717709007692117034776821605606129187149941985983348523653034053564965748067239870825963755479715838342331477296786735071200676134931078339582484935619589492314386966026583750492722527494897052761589480665855601096304913399157479363452552744010219544218691359936397113118998555490663580072706652999741775144836892388529450483929599141022626359575812991404121804774253961520081499134560339848629475549889676379350163656257844757071340038497886192322928010511646766526333675430331575203734634618951856413896439828918729785935606291824973769029121042589817723777131397942901343586859037765345661968657769072477937218715490780124393116640521650978757881855304986864173084862326081491171055824892519529879234330935728401291191452118864635212533693052097102500182814621142633045636925550210913696491500531303941941313444188793360314997072564665152300805725630896194919928572887236798853769816951711564816851528904755410273168880447105277753579779827837287570685495449579996170859795568618406086454550731836425693430553059262425458778925232851770055609601213754977944387318903181545366513600062568362662272016020639564416553721350278107369044995392648977215289951451911809327883142982842397275180731978486488678015743670910785816310211332517739929564971547866428736274263786008973682267967014302204968507883948036292291145033793628982428337310113417260944648379871977562744786163018001467026299311643541131683267008623173203445565279277373842221472432408662612422220428448396603502593247055576662688879273933070518040014438506189440366089960706350966468067562452632563845750649631370433703772099573280588774366312030111539871570608063752412112681497759700663741961861580552342805006948367293028606779881543467093202971391732930750128646521334196850195130791244063811792553817954317465329661287655245746202643461598757691991849806095675035531651586813750660528292322925772587625981760300819803427738915117096243962194192397314568458165196923948869984789695505223920280523446615041474896265377039021746750567397007057090192743018232254324984398481522936926393775903911627281007321810436360500528748867413652174139474449161372676746150958359799983340259975203832257436936181451103964532043595912280834266738355693985871980337270089338739716216575953170913381370245540196591895439890716153332150254586584961434721566755822504595839399887320431936866304624646153619513138068477076646109662153609716541436045429546361578738865366110959166898182283053377120660244493508061546757975748096433691253721496751285108584677987400222238241009214692866660942478991595544215135086897749141974893186611178908781713813590701675931690681687787309333220608865659907355958698759833294990271802681974969996759244799233002956684785141702051439349574940970197921709641811223044338693253325178068752585705745877535312939744848877966672775432350158571805126527206080264278693130902306708601303830550948100635104867895065688566442623687246371278752333200899414788013156806850946154714070313096215508884191944475068051460942809330292253779532995416047934808665980730244651890347784204542272041659038486889621885966011156073685567753926846458149275911174943378061806826405806748459967478956475834370317164401831993355819886300380832593559656253462000418151857228622612034356851852441052599247222867909240909721749337426976782029576393662349622217930018716174446208976628401865449534022832940999321427981997840631236385359330762909661624322540879102475177943344862022984737024337168943634732631348749330165201355245991355251377220484625215405611534145509470643798324149382873527387678046980777838401905337560938109934829395329634181221655276313225728069741365527199579375615310331574135576037186342784156533784964696949943518487453823380733669934681481015353167126808441855108562577425859638814878187783230511299620756718090458487726021824253618114554425163743344696249331101202397418413071681682609040340650187276174925384906936217639275766710636638828437433067615961133229334061672808006287477866797866866263838109782179844318299741620867700543479173926403055210099207039867358814634054762734970423167113056955461556408878692496759632769285580721958760156973505326165752771249236119325100586459315520375870713919901755626314999684332197473507577393235170541671506922534462165105539799780054983063569190861516629553478610208665185023751569981341561098187230163670826304035542585965620870163101412809372803138032042418784569723723055958670382232364227828617673621963095754162367184034621152812111534236504509232365190061609148107256904442315711901535605885365211400896097545015493428850063391674874488374300653458516665526769597228799967663226373653257258871279079975758821451803672523914019655663660935788114538467729941621042698260981834222391731952904285786697085250945947603185772453757473146170656928622660473503040031364953044190881627626132994182598593445235420669347633070231953395423513369162853077841176243589174624627729427153054216825901424910543637426808525537735276707010248148794099836500732036089453278562815370833412020416858626443200790160862130681824090035966681146869895658472028210264159569989533110887849009521398358645478500542706534996160347065524249895567974403031086513031565865534961480504267976580534072420646526039205170291104161124049791937335865384069908564236386597650882444248604818576582837574435818946546893416468614270111619164787398924219095888516399915747685673867153628651603018962030890545689619736659002703329689745719098050690672585099208989886234648971885771314191323180587307534405358775012744430721783241826496975803667166283167974654136147140940153829422341917257157627318558955303010385043529389026524871131967683384813573772518434142779434497659450002435850227993335666126424671457085332629739866009990634938136627829704255977705293084922231583680831109323877851538597847722504876685789680452244823148505279408612329598540464549857037386227878002335909002277712497597377318661628468115074738054741572336827998178428473905224507187167550255971600667712431822812205599468214778021237850145588471151907133427770350286286840297111864839299860127264579518968980881698142547703289774695440280655407806806285455024130956895371126376237965116980910985105837552535259074321132783867777522338299500686693210532989194578272746870831479181989751966496941493948226438242109890461780297245168478523876527543914806782977788704431262530375583679917467516058262088722322735024767605149692135837996717366326797090831632977939665055611769260091544193502796667728212753968557296585684914844855077287615689802086156877817484459700480878568554119872405355783202391251721902279995005664342821974723560205894201520668184872788053641141663071457352904643093652779460516644645460620289658361991068931383966005538619007500999044067469509183577088494641269080820105309224575478672187054430746643639799158675030225484295089652535774967874608329178518204678979013272662154991840588934884208764099315874014438177382702575823763282624981002388684161215975888476747653710942130262427120811838328240909160929780216275561133579820635220724338309940247206271124226559299867451539767950061984312126872471494346167417999656730545420167179793983213834597546005064767045505334279018348062218467304391667022552346717179084320214547218443156739048863867643611819115394795072652097345942450172138824344107283688835087780508722689253620664888715538050195692903207917557812765122357355614922747234964035339967605973459387674165857763657892220000319314871665982510208782132251082414997762158836950329063269013655712957161838866778373032200103177303179801500876168080071193505147260955890011509117501137304512343632420806650870899962396575204062745260433596901173777063346526359222515212150242032332337555174199129994256271049627184374464384110200337363613038657195081083306840034619217447497918063528838211420701522769452444331548396438491337221613200669426332018604340367075147012203309019322027615683746632575357515774565381973983231740963876997678376147627594352379558652853970593207914391337345171416774292444860517375826185471034270728862751107493336229952629227058439722162332526839304034116831252498168680142539301085153890722955052135763664547085382188671389261247413301655261615112741550346897018119579170233417244873557097228282148862319973814375849159411021475172940467631864789772279061751073806943144716565527889600455665334028269401597956177001831585031076686908048412726827630633424101849594038458074251001843684395454513459522935831045421304922276177870676947948006497440019028320584639936483280474056156469716357569725458244334571770370453572682329327254061455951336729960534454811682090684551039710960733886266555504767425192777490803693232924191644978781647174044677372670628800724621233137143631598532980778852557436466383709995112267502712135353926391054184660558843251999178685924625476283729870896204929061516082940929522495664952299782257480069897777053835236670190558223802628809597036932340412167520392552132791640263074394903367436992773963072112457683425666557689648917956224473056092540486654077621002638213181347525729169195989375727636126062948969832288865992494153201727870488357926201193185652614465984942867955821667483936842458615249797594152299158519793199358052761915689844682624997578679628360721600274513445280624828134984750018798280860338641584780327000074826258807237368063398579968459875244324490361897318728133173985382193509068132784785145803248998386723302648701875841715695964692959315209912463676010080401968494068167897499744383615314810817894474323907260317679817194426761829714951280916312160716649450326602399866139301249726113295990129384654335268800958087707804915904623267448076704797357281728055570953658177654175739224742894432503734847084413308788893449646187718555176343691776572379997486085840481376674489383249867512686291881450262936564796035093010949550413171555305023633035995769690075713320682680875034284756303905081597673797068527273793779383872624862673662638287609936637080909880653352474021535445685954383871802222809925816094016566426582163522384330074092262264276632106421212319785923494457369680083960340576535428757161028847823649523786550034054793636555158459297664129331875410517132556754213633250529198026908692862719940281678966512554671043811245057836953484060008709822432672917116127188232493177135934615966854110236605271170346642225162390315434001494150421991570396021798752221834360762902566233308399094476293702577801060298958850330759927250750540179562679096427916468230472263409446035568771440847366895481782957098078128882154733440987925035339584831507622969052263186431077144254621875607485680762292781096499083381907925487010130960145593240586103956767372803559540965596026368821183343952291473118181508070592546884985935925508513376509759105169713848322180436060916239056001431215550672680578245762192970579087128473522150063403178610707657149527992064505620082641039677772886812697328451011853157720441502107023148607359388513311455274826265950865354139436549764983098734868489232226330203909815223228522403448465433359891190919084194015648992358696418146741006035907704830703286174710571847337685582445253771365791074005125118838670714417345424283713915285934704905256006807900312481803492007148066246172408349666869213270849545162920400876686424919848852653803375941378506951232316344007965051401765722258292547601798173070867900279703502977462329760563728241460420630839123368331309884353089063143721683815139730555536364301421421625224048313322974983183119660339778123980575536735092312764205436360024877521199040350808765206923158340142231093582981739933897158675750532575678999548803734219122359399181375509232908214261540327415839541893498020115950691174679998386672707515979842342929899450558867549640310764509670507064012033797813865043209032991486672243335908892662290273343217682591876701328725250295287742343494259853825559352508915641408229970619668787866644438280022883437043169168453793936361248332495207227978081487776931759161293722499269917405055695456178433458830151290767665707832799983479631059501110036179517312745773865307289043601036207998872141032071809224315116742520235935262823248470481475594557488313792538519066222375041678627232712608249715348955443115109759565123674912534697636363724774017129286759381358833604134783614170123022789159166815649596804012791595639444529879790284292147915027111388633479716183069495630659855072288026926968861008168442729074733453664519685397062535417580452845734643156429299231494203509708046392181853569463166373932748694701791314846087996164392613701904163232912116155122497731815812221463218085837471267062371915232424213752186583691052951019690556997563209150376407058950831445312941095412983418134820512586612048726996862335893324724226055270781359061527069460087946417290365745480084554112731418290620666075627016116730955412941663557363749078994993508956834720016985137918458280587203434581826749881016675222172364629487768114010321299255999311221066903555990153419607484378592897881333825276616422449823950807850085548341543470933829227397008009768887164242866549138551034401148337927027877482066041300194749433133101030616852873539842703441096061051618254831335266205805268104306669461422428718152263170278064403400556009592577205116960258810477240284279947755074733706034617991797449579054805079352324016408135653657792889916631836696474615252439186797451585497609689641439413645972202008630857407212095048618829662986453066222864734636794267700951832851644408866152319380247178247346851299344692654935398695841059448477926984315296454220881734490545771035986817495970546496292267821175898754295610129275347140741950846188264402346183282672467298778061894198374555201244234072763379628810878746434952701064309190963363969525672834142812998988506192490419123711221304440825804665984476108279100600427257995611479149305278386606992953422054774694655379045781579207001887142646719568147652708474309714748075393521484493875977638920566798891792896551008416031991834945277067903889882096936736429740706979658091443536699923255766775592750271577176936674288809063565902605462304913574640682081563891210893185426998590919233565230261733520871883587309509926648907757053705002454633948285824967140003971800334949133582467286811598643723957859041196892117118952787558314517981207177121078422528241339228457322812563633607696387585673728936191824282461733268806648971478071112251345770774133125484484156256421617290937971351877980455324184926661269744818605996582617430359125591256465617792265975310543236262462050586464702969645064422169848305269712024828284013002629801127846439366063808929867219986474814023052800458514711979895473679631166163611851432051528981527361770540495350066032666814258435382977793900352422493824518936391740627202087788898586429705655834765893377013094127790434160864265531853126403396163283300207488073998511051536457011293192365753595002379968574232969382319967131633576512479809505916200627968686522706389494865484457948839228674025985691786985011273761040052813834962459199750254855047070564052128513727075152717704861663430675064542526696524330084184726877072051522925213651610180742674135009195533936596749687340645794761972204741852527183785743907969374653644800005476914239420392407412554382957233132579488449663347154677061568115057195424342720563664312028672546992525291967953812922404456354740151807220736628951644028872296588306846996641903097725465217884250607791354837447899275174469041911047990853759283475072284713099635793644037185438612063640984912309273884845529031470531812899150680995013484089383496127733813963645882899594556302053582527050590754696588019137465281248083683180415503217925756602927730995510455868296405516022359433052275044430216241137420386269105746804384907632861163740337413450064269409385022939180350619975602052817549040426306182884189842144253388105823014209027728834276423281783356588048839336035715718447074386336953976266069774311827392083174633347185642082489094273810348273929936465015283507341474390505650764419274937925074678300233210152444821924235444195098685262365908886646126426961045197542287457095766663214915317868171018722830919004334608292300794046513824831006447947637834976826522680427468457541235750284989774281376844057584078287488456201909781095675502959130713743261704826511293551731923690748726357933259856718973188156466167481366196443925773185390102527496555857331210976695408859171487279539405462857236809707331879341143864928295078685867273777151007319669477929128101862166191538290505477477009480677620963215334586915166578698136767921167693717841571235067739621421217730987124284923210592984773318835072462734263365430323738380057075987623077557537534380798189321692333087569382643859303052423313966752963613379650436737932264689050078574499787153410677933853580677649937648617004050933917529449533342133987528720165790512690236457233678496174846735128762056041091800879770672199007576448554718592528058468591474942434473173572104783818448832867444948368656854954554431093209497415511184276206889915441016060996792464203099284067876994839949618230483281965195422275539039714549500764567051777985305714815542861018069140911197432612118062013670308709973656617902385265760348412083886211220803042397717681372872126166408091864714916014089201334113945220395949900542429999139246317898009488608609763935801034739216878698049417034887237147851725884231852214681108530189456730158221131909603974811161780273556372292521822054161333934854020684984254030742718890277620064137635085324271868994672062505859099189415197860237326404860608858094842031778987753915122744443639610475167090897040045123750863105548677397713852775604176692943671814982320896540007898361293297384383678201539936788182585045189908859356323816016090694313464172025186076758764349721070311004388987333645757059093352999762152273682452077215509983490445358275617658419140388728344162977595451047580626827276271232431757972359054915850566728206792748572097695036944706468728483940371691226984044695245824376761037347674319845196143494760720117702618313146226514478879628496823486017318666615986405001647536292337252559428108743634334077181228851382124258919733817819351077921044666605312454258631430216592680297317876190129732584910657877693310835722170029849481918547507000198843203556808031525334864791259846339465218766116406961090238641398816837172149675333143424929001166114652890064798004916361940298522393207782753353851702621063750657660045204394355036910286743593500340402099946989055217006725734108525883629430500033875919736257524583947971559432883058551746532118591277115455787418357625710058590370583310517084961830680236305107342092902226283241257941774485455427688367340840077952795258639447280401991973534031041972771260299537127341299390636815602966713089818047277085299745111011470222868854261944859255456891012269031826060496421922454970578838177203595149329280566823820207517553968843313055214994869741311189927049699115280485020585932638974966767393694041663461649042320538287133945484296409436249914715802673824806323808717682293072411977560895942652231414959374301696052235860351401653555598076402352785336440389756981013246397377144391469196068999786649738332120513804359242504632875609637694216278232206167616975316082466543266932215322131175241697313914580447240563949025801863172047425489580006322511020230444949387449679048607232910265611393975762189871795713901498451010472586727539244549622980691829999683657519919961431230913892146265038553421457323778405565834268640016911427664204363060779778217636099645110023328686412248634533250588179585794340818252368984499417314447522133048519445147248885062936242311610818720828473556145056762028771153386537951718903319522945837983194670812523037595149706770834610383971230629132934532844820486389776929748044734394185727352478595483954445797612445288251565118465809355573557913673324349379475158940379486477471473149754868378965437033024063305258723873854796934741158062427965708013234221078496515362193818581148064898686936595475052667574462850357549527498978387011418486655229243614371268614532520632177945956425184791593309508203490299937722118562844518099221001569785020549904002200301572560471154490522650540839084232234707431909206443356953756014230052187579017395386357741936725037636466631363267255518627622227670590000200770364206316371561463395569608257040062087337277022490946341554220185422031015649838779130530389725452849706307184581584904223093011653834226822869696881660627347889866764417808000774213641975604903779729155292988835135543910799364674920295150148448860587194900486296968640586809759035593140600352395145965667327986966327047491043296316003069410191238399653288573729401662852315439325628040930026099025797146631441544037816513728017575836189716914843983562594155245254197496405267716136416856465666824367311618992888806658302119218590572640389625419521253081221856807015037087028639105892838104358824130227619196879310427007854563612878292301924417006611397967321169223170305117435471797810444831921472245877687830672763678180683822119579171432714174138067987615301175770767747309782339538947315335191961775731371203381810144660252887389632751439159164913310933035100188724428039045037226107828078487801581525013124224645504381027136090918934769437959693590583527864828292026114804846981348718219994681934279637111919149161907178821700020744088612782281341499607568859994789309628781545248172747260947571196106635805288183341678255172997160990305926806977660015469903754114117849233174230835158041492853929010565094975408221831711013332281121141411368747650976970982934919303665452891392783689841191937233585470088945590090079945354321725343649971855123779054090056679455482241991728095983924042493151676405474326185902540159611197231107058638711863595149366309289749009351577965721702643489469026453279220909195881898358169424190182745230430591450893710593260635924573014651597352669311767056524599328724392246090424997350521978138335867347126316038208754952278908218482790461582173745410486983614677144428411564557114845446271191737906190569330813103426033919686874450869299639785257243008720185925040235094581821683535540964937460323502351758297655341105283736597893121979341038827047558714555175744036106962806389755154777704528441791391167499996655662782025456979679233273101445900495772844309142609158181958752981267139245293669298837934958413260179001256816989307068573184633713648630956965032029700563346166689991312764173033904045106722611663858713593341518051850893413363002130657712614809557751838663987380000978111492787819698573859851354384265063245871645397171954535100035381436044082080464602163496411502823036494804836690522118279595686549160234383296238271198882749902337357490850455379501332815752949121755517705623102004409083286499434613214574464177041011632966397884287036772162640846123977901148094880055855838419365951462200369776876014584969946118293648499428605848260073174931629864405723032551528280078882616869892347497393255555825980763847861121779649885736371172458987542005702082925614480651229262314193439203445206729109480429665224581120341195643887965424626880156473872185453935495505029846084066312324385945923703031936904400495893600676311597676345052231010973479406266281807155866588344089574808726314072912124645645366023662344924615378062913834937161723758449588850560679193016462842413305753962529612760001565321743386434778203709148694635833105818674015353434204170050781329718664402368190474873159364524677775130351074562199305496675524715415114034808586252180601328973386821069970296250369323073043300523267094484446403443100246809644143171416961751784281296807557036588401966475310417849589250255838137576234248182536762714858549419595633775405009866713757861624875065587337249915968627560208440193375584021119688317062545691473466350739385683049584452774429260081232557241416238983489140097400339474177935371523549889387282484717755019212275758309468255628518737702804264298255029064150401596745194760542566696997899785198825995690973642110817254547639395327419564395776332848545663681360422260174640701355969408349041770502845772257898585397361393518514969471477264630315697370660526355498842948250626124974360587329643159060252515739639998845102656193058860622481138833600491260594932945134176149737844410265291054402231401866061552971762150623468576235998440024366212982119329207519242254173338506085112536340128243515042719078515285273837137807035373568569293677060347907947756047509937994531961180458205626271626694469630019679046965336871512471438845506072046076445007440344231679478774625624556775858036442484732579942946093459498642842572391834674626202746887145076558882776435917936550809796473225110702747845186077762420908342599853923650433983145575956609541472301557581806194763695363552224146787882157066830927390727834774265435959837389644923363545705103082874174699897656781047613348729068842312683399905119024329337440255240576441213324710591446646223124129740519757616005156091458063070167271967281402181128517142862228406100501248227679633237889702868496853093206912654284675495587662732584372701191067143266442874073661460094760562970643322394650289133001382770640620319528591291664592007464157302537721905530239561483590424726002391533609626981105444814225049882546640500105525930882263354272230906285801669111462725738338128487360964181308723166956060882415165639617717825645835110296688134136642305169824739843199565042725117124177395751243946305510005598862761143177907513350751204715169299941866772024726986295955937422795933815808301116314710768259413321054245413849591382807436613375872367340276029894194527547341864817892923776622879129328321387087243177296509557491899977215368763856950576608626243665074593121370376422898285796020294528763967950748804472779447726794621136659195757082721281209187298389952205984760699788669516392802992227709549038677743345099406975739938429998813526064289048339654211601564710342907346744362783777977257622922062973466638879673861063239923119618943106554581702235291050623571392903310110428295754926877658767081099562300287087866997566114411465655529706275174808537395914215599826627824251955376322212988143324930143069421414782869219987303412479452699830078360610429183045656929071413921814239166257178987893408629611764271474109493999832327943878706320344479137615970544907133394368552628587671365184766434628041096348866932171703736176777954240365005032538506464126006467961609830144782022775520361526031576108570738628021312948416994270817570458134564113033695586766724246054596473568126634514165981867987896867180522233415077948227515583151660113528835104663264189902942507659311766139853112551876127517546702519983507682196467144613782157657508322510798819731519655402825464124270803120309729221860153433779384861861561377838047958003720906229474629834352372246929798324201258113106271863341779311255427288191640863177831176608203977788060801531804129758004961493147170778156435639936729823381714236422857809391502333536797731878965864113765643871817909964950463093081543232115368504282273690304091328880770728881224490457448728697527329926749596463301371754778743822374081147341121601251821137925031820336444529140202028579017265441407287266730545449767813125325297417724682042289214933612139496548553565681215254766228100643320263750473479849093037049680430629386737425447266123858085090491859775612613092607237412775027245870106104336761159749630947150189925114472260164104753412708855764569221411044974641474193514580528850203973673057295367408559582183877018223622658954962799565404988046741052622017894991286763281593899024704653112742320007262334105426348520557670194335337856873979751324001553052631278002535405509680594523284672665287317563809027841779311462125572102040858919573973880767781187382357419063011966126368984909429502694530501325227615806833505081181572522702709520634310030099599090504662502367767748848548642209063457385255459736057527245788245647110682727999225844443889750078439258376544119357522233609618238257650043913820333637994471761139043117441490113892791507818582208012419255180970548761920819216012643859552704550072859799715584855852159223217559918069914918382072964587554786404437288881319201879276176801803282758891706439212794118362931852003718555827635183124135882691409037560322571854140199384196479625880005351731225898612473702082002794359254884010726881198830756437855946264644425883969253403060469701841475055684094064958573121182962014562151549194985383994914131454815231195141251948515542608441580360637456882017924433396769247769802204103777120015741490061986114264115791623559101415836281761438117440737373405661574482638427877714857983506525111015233500236140753479598615043874509776153398575702745533066318517529104454417176726505017072674982018085925377828796031616874652688029171614642044270461460738653427352799796133119551273073249528498450960110835339684475003534355539025037004024296961725818594680364532040466152766330467581864855703259443470864118843829250819099775832503160032760985812993033517804190624218323689454599927746556388261271116125793228617923985438077296300353327932030062155418329395952614095906013170415018352779844972388222684003490311597095189761383521733883471642433759493618613325252232265708259395660256238534005444993674513881879901360720459706287493390578299364355736113767019848415352872345790336107247257294001542352409441323090153159239381703081717739933278889686558472245520398892211661178995309928076266724113933811811913102234569880083668338564943057200474324145528676270506266907724239386932024254514320451668576270647044202908653004143972899220062557390709249717600462100143835962525682935733824987238108043322312313037548875583651398711901771279362021491843787205435619337763241065363635376492055106642529698243925348476003282062449198193348607247301487867655677034381095597120717545147184411442549773342666293944273483532830977065403191054301223500710388970558459918591438051333443186843932359791288627340738643606126037004167092393253297627720658234485236844981595011786007771891237904102813831374702758122700027498985973418073517753915450142669781642975088239142823108450242240825837653736230844267999949820624015647365918461525824392362468314858988533208741030947396315697831047168139808831466800789371542959632070495641977034894459932762954513762450595784297356278206194684066565731630533318376061258260138890930139812691712442885147700684254343407645244692964396032184039216209068395967654607063265895356301358877696709953193227826701693348981186049022558901909702497067853833043150475297150834895866531157018461027032049109277635668777950797439846244641952994576278356881483883881046674721683028193163890091790705142829896448906402526793613795832020820275992074920970699038518085650350492405401610059493760431650350794316334073798253364471927997281083296436841215455308717324878341615188409327459771574377151398034793998957922865392024530380967463676140213171808185674401767308223482296948471010966925580983720413011499040219509009862846438431326435475010625559818473603909512781312282232573834040451350548117177523105819249256272703245715158090835358122481447906275233515120196577610954229203994925546284667836043418659620308472131736944262576295787550264518021029579187634025280280488493444116160452804495988318286332311180065297443048214217353239866657979764319323367472447239785968262809097722199531173654545985814373183244224190838368480578395311069486919209012759143742400011038179189745701653154007008678666132718668631089625414076348990940487151002984624367056422769180477532705236641116542914156518725712791822843129544665389368738923717554663734842773036334311644114273101483542360318462483831809917744834872332884006489301742395750141730517499583347133806643925533154062784325733412846858358051169957555878368620485969536172728145468923091641226599789960463420151578482041118988961470059377679359798006253391744463949951129132328570740482558413076198142184485583189143421363556414744391619797024009102331499543682580512898901351348547232870541379756473461564479954389406171306887183395843554378111815447699454901143412336761775213367833982487439070636676857142653095223670689111175611543303492091520719333999748497310028065165387847932686802016292662390658865559628724822910726765011539968233573018260445674289236001143569427985400775788097437635967525398451959886290047456472357423381377507501558552795666588503760131513115810601313737911835829281471204112778534418753656800613513780612974561257259713977184794556967005803288847550125554299648572078498721041926788994231487164175248053777432259627518009629545488604098617506048266691045861183864163219728094979575526432399004718270627213078784132470657495256437298337637242270779158612026516404352756755902238192646755389561236723882532853498955323040157878398789361092668184665763341313267684278025784183666332253845145772445520024391782457328203090867080176945949719875802360369054947381697332774240781403619159132958778494623901737564953643891223738909920258844832757561678671914091941378007628605527607117781478765142352864128436239942397891763656779212660629204475210520264697704803993172284667238311893436118472393949451644542122672100410493273375039751830241390116943852172374020122790697694008468960006840610021977977454189150729712441822616934294192032962556165023633261672834684862652244132282958580779743838476499463506396891248635485497611948620724527468233373981810361856002052555061161550598635779305602765622135999921898153847526043643165223251083231007264859036111230115800694667261724789091798338720484484067928370652636076442014856269683947102381550775090443595199003492740440822907755347361830849622183138489390469015232646329638187339413265892257173570558584918481457018408423760951430302474925822769657522833272333023728952087212674659374490465431294974035068900014826313214117761069887705083479826645817771869317737824687139774430151843990992038334361279456929452751550252670975383609900221040443107702126283932308002625934081339211445972325244393052446030276742140972309134144989005001451115896207412262197053409017193831050946622586522560474362572137441733889683711645549530396613870039275232140544313118403206848881956775317592280155812186861135064741843341454816029778758361896548335269771133896831706987250957431990858068901228989328347192984061050027267915690229274258444997312952867956973361356554365501196786451283932011106533085850460508194969947657315589534586018859955817259975597594842068571646978009583324457242406145942884106757224917785275088872565118291065098557705481794139705008209948129911708149294152604170999307590159328001435726090885494748648213954878100325635172298701908184153392359619579685380083214549465989507277967443397748681250689324465980432107146895798198006359532509839099764698687350954133106370171594869760740536740553590683528587569482340217686157952766931676699703442163303629264022233119598218658107549519966974974228739417055468916214888965485326865056558747676533462319732903279378065439706712650090257676533228198254097247439753495635888926197400901634662803706617086067598655144052656090885161370425990250265337136588854522266417603707349705531248461393866891622908755448155131241560005108675045069293106941535322390959631092026284955623022432938346031848810482076103181155293197128568821508863092989904989896622251400513519405008855280050810081557150593306476111531415376977023568796557407949700096633405542095272747320389264692436980657212606348849768526043245817415871882625428873575444238005942467614780631218365510724983478845785422778389969764477625530978758411253688695026566732890166354701425037312275357402144938860252730160558715300626673930480140929135834124996160672623259624343181364336688628650285883331255725864674094769971374768083633454359700071837799240137640312442372417355023756840068886338932636528829119106246671806466085803046750656434887110865635151368854502481324577662376441419263598279078773518860984910623979524582299681937996185341907046993547032859920109135873265135798055806308527364274436688878058699809315689579793914452796500837612946829237943535122934244212260971445001281480023858272898383469428515838342570731369293005593059543755583605621475591242515702062072560684931830391261226439640725142971980708527337033934124945397643913058573550375308443019159539132954365060304554181387738284539989661028531798585063665023911720945336363717510386174737552398213704678092081438637327914122881705742931631163677422572626706461394921061354462027580708176859350101621456347748725662336585393009729319903002979560239428165666525612386574189675882503617033472760965983577195532095697998617891083625886878702655382665874738616130142641230078799402535215458695025591504707499326224433662518616480510167246617785058361768973160391754992132248123711818337335349033074120966096541930248892120363592314861985586149511617610718564295734275680926353194119635681481222072170302907552072111251320759075783490787141003638651452836196496870532189918037204919213826719425322394441201081753578958998646690550089203943400804093255621178467225844466369699341253695426133275230298540132352532089488606345659667078125187767056296784594839595052965666411452179569406048178877709310585617080497193592367868990779322797744361103388810573810097796771844819401014344816276433929211217467143702040666534451154251667301419758638134080828309387376055163239263059105047288562964342474424474277924211804905532314436938339892829694830967114823563844800730590805712818020701895752897934459410435284549820788086958479908047140035498185196122801260609931338310545365623327555927526079042648571027238926705802602124702282121035681450125067701038923931030067819364621320657316765466893076378895892329327757928108538359039106558949223724960349486668467437876169598662003236562818668943223195466407893996589672981875967518283646580650600983215115719752411047806823384179539181279689566181750468228302679023853567489953160075419054681770981826299624724686676977856154928243379610332201013734596259138533634136571413179819022142623237651970359930319698389853594484023174154575722508266894985754434244894790497746704876920262960271091864680032551241089246361852038804786344070832408930829611753238854381090879431396946896477244015861423731502880181672092647982423497124512502016081418093518890540876528578357723696781010269968628169372634716208838928745871472485467014404486898535452877698817614541882285486721831382761388294403068410052648498377095676899080080896974931583139207705799056816739152592381265611399043006916944321394092500706024951347698675780492472997677984426704642343126731849277363303526734237073622604208741978287641180005312186889870473286123240484535634394109882997258808182338233413755388998695819091484377319552054940447085153703191191697359695943103799565625168041257322906515016287679513150702174145378028835749647619224110005784882327083771400643442034121435726488740050907316416370663591573971074656461936092389560565384396177967753216490786514076791309397251176070771911529971135919726811588866928239977952947882652030196034675838631866218516224728616268303584054037162816698277924168594144642863572752932975683123328864679487662444423352436323705682765938706935556436992278709975475483622458168569855882955805437679452939255217453020271483549778043247209012778509375985287180123949642875972178574825566794617951873813975778296719680495398586501017397325948246634805953624373529065481640807842424340808859505254924702446773199220858274090563782874665138314328580610235885513948907902313162074875582234931945435010561763713198224095754911741940391735213058935042527477499963836229549996238472504543393586057797600724379544770075712344561545448719439157121740037168174851850137895347820668647032431699524761838797039031968945279763452755089518741528632077611555017534454158103387944967636009631171944460808663791508509441790972587311474143159974020108030763585773786325150020890540634248283515414898707294466510269004770068325815895989206706889146385073055643055618570529580529057843133348079667122358499549841456565656107831821291514148348652341624286451458299065928319907147113536942473056894878368769470964923005158573614923428075334515647603229744888547723912206011384146893665131121851421513253817029648948407746530985022717438153383742877024848518160384965835442738464992033242483341908123954175673759830942782811378415607472913282632226655887564084024210394595513817181994595615669072524700846515875716640641559401947976130934507717917406557325233765839616408774666031592686767428988067610195889002863055231114860436826419557976068301605645896843727073691522875241628984816941658721108209244034876973778700913599159085019800127812810997437677086809313621324542717220534592345445175754171335183560329641895582155813328033280121143842189879517075934077815163100169090322918928389843421257430538048581117855957055182893415540236104326430728819230231431506267462899303517837043976043660250529590278856739332251115442516122077754870124432634831981746542742849185038204707561795159061200403527611728031794362078250919471886138782546276941791682490351112537900650333861567607248028312444395130193404766667627178727549053410025646241367380433726515591234043163054705874423534837908885173787723770701376795596344175201368205747797439365630903867404064333851088041760086652191225534627238509186411843277263590832379466007636713150727298095113126951188834715750378208992825371548943898657008213668134387678170666797535643791838523584949563924250959456910167920011108006338956769132131750528824914693483263829098395762899173051187672100059582729646360187050737146340870184932266338556360003033829641407384160856672998508852360515052584718038890351779291545283364818268005749937871467101321384615013613280202894474076422483231834156183144839858319906613935472117535637260716699766206610334943379001222500741760756089100020409223427643637530101624205326750309782692181996499307606872409480041525063131295143550424753433788669803078617396099959486829216003761865211254500783597007165235282069999022336829425345175518522703342496930140406660675735661022898314090261962717919818517715781648252118134569352080292200650925636154639554737900848591568592470367892862143271616984259040538483986518512309234458754062070512105654937289894643582731083028946986193415187153597613229404692523641900735217808070008422806910878308720064873242152478767507581530592335066299991494244392497554366228194086574772284474864234293235271544476356435477269591819251409137923590100485107579596587724961787528402517186088389902640351989519947181004526112245547476582208545791166077995621233929037376255120894679860304195649136898448553721091230154440323725500330238614919490296258179186544356101786966917703368520337825985149035271705687573731734039285320836089318780003367063264381720808248683068898710508738644910101273603840187301167158835804746469235169774069687986893106217602961373885402178452125245255554920298261210942563382729458277447045906497164955113678662158595012454234565119256194979300365788573568552711783339542090065893352898343312578434191905570311369303509406803195097167376309171527153602108422713125798877911255694085876599009443433682240332271102494583347491853694792212378716859096654434700423468702502628726327857127770368270349168718565632342089899681948757446426606062028453604638256405915462083940962412360186613176324786336644252963781941797359628999990039933805620329568752258610297461122817649803712162092455419877210130684915433727987049151363080713461098810167643815955101614926288518504560199087275298091557902877303728088949389406809211357377942543997953256227194713788756486805964280299940272299209110533036179090697876202036537536617042090925248847228223884040165245721058838328619134207020571137679203770330966953022089552671278682209735769305387716854467308904784187389765964330788026312112677056263321025343804675035853280182252301149175841130980385687636423746667848350461453151385488703229231289807547191339709549118059524822594971038303934296212424662930597312254864656703353956827903936529380535368915915951363833914394531772374950853803645894624185143808846079498828245970987497995662046353617898176212984266429738323617972856312164143192721451260602440600883617006514594607863936684104362816935632568876223094700536849946805420066493915420080568927319059532451398293296055401407700130703805502984138947942493230819440773899537064894591245019396723898544742367841843896175579747556276476079608043940911152919095501895286855143600223785515960904002454582723109067897842061719847109968248785707499165963402652651160044760629258568404991048637781778937000868851390983531597938149640332808275869643847406796490116448764838537444901816502565874716856528513447114068690760108645746638402113889959970432882743261379315113957049562483162072487910134188352157700333952643266775903433598129342855015180254962960697759330499041821737178695451541077752997378338820672255095639513753790216736230711723743303065341280612035435993065255150627858007661574650189552812387215391931434123781720721774700921554220966414262141877766759811818341023328852352587594859731725225903951430499594817609248680679623688743361625535749352023055731338805658782276171957165961097345949784594619726595662414133266502579722931031491967413084980887386147879827069356683880924398004571131939294091433151844328023564945526356284246105246864932026520339696703972807997610085734810826272264521412345782854164365699292395756572649282178098361760838594027831153251995128740329736479490118460011138367015610151106253248422504846660998301218503656326087054561187212936669949389481081220174495334843783138423579825938589708205824200358732672730392708512021251977229348010267826078943213551006377948314276162799686279286260691749274719599924081056059031653726809213782795541141432174052197544925395859528872586117423624448314773875889370936370174479869676407660165289443234715136047068927479752833288951475391909003961693738437519716612495840385145474645082195809183876472585258956662688310719199205560016642738913934999905893554871465734866141730623883521023882447779268490125236498870007430238743807485296219947236092845850687001709794324638967068428558159807264788450766571549838532574990172331826887220889884688079688348575959985517268142832591584519828791894222400925704252484011022824525231694934959385129090884281868946030019809637915620975864211377212591355061016341237466261285861215414323782880558592746427852229576417646382926138574263314171948686995781680403939227342071336889329410660426514527385942445675691969751017276100436825679264589052219309875177806908867834297200308056015105736729161477390319972115796260789139530684204833756273231025689272949410534121603874402174311203662538386181345104632999201476488642500617285294912832845664405512057408051176824725467187543236283911089934952720033215309555165924258193243073659154435269219065532335983046205266355971453672089037796614596823847144758347672647395114866325643775231709221376925321684500637508870325552419506074682065598105565066282331934387390418790945375177541040466393294038317882389515368071948273632012538414785752405580282498921734226015404494260416901092003973022644079460862654368405375601305810999845523229936660538080184197207245621576079582987023746213751088013997691561755868371079583837952644564091347307685495567808034461691976471343158840747468478426662134518910106317222573049599907006741733852034827956069795226986452447839751748022192681708683377678187123841303993732137584596595057413443421645481088701982616519690564541135658253598173307939580000615753847827456469459685232062317156436215844382812393252678023852439572981463177496434237134444887518986478556836741189640718544666236369047476000195941822723262993473212963728062865606471965406935324689902965717540775140500899317120466737314949957131869946821164380379808433524388819462253171714640878416370324896787599844615902958018793145566183277901911996400255008983295509262061749596374503275946684377528307722293722555002479678269179411640718895280648251675611621441050692721412466368813598865289127002018481546617597687905776878977139617084533044256372770461771810925458775404673344524849614235528427222478042113522442404761508020805933845041771035836338514267200013974571732013404865400911418779392799074119126150846917099469953626793570555518967169756266638266300488071653359361978546159322195304389824060150445743875381138281871584545360504940606925301134680298023880989465655472912176028144909434598623387182530382922166239360472690017643931736576974550305535795411173329955902208085840270862832741952673600171475950202356749609949896774312091989172944905515104481670914285888454063377903684559666354262803603355252788844358513124709503739222792075432480240188403883938735614903182935064647723693603495255277678771542426110794440430694305271448957041079854378777670312981900171532310067575935262272552368394061442899762569190711328969206262387744426992778489904728926460407707622519182976630064350234791795317731023993073510013564597875336739678000277228123339723808644068930386242779608772420784283230965943938768204330564414902732407917185905829057440971449816205793917636929340568255062615413446624530457049389084354039937911529019769016607078428870113182869756447961003201545342692200758051116453241958005088416583294729626189713256076293408383729542297434106239816249651364454409207865673631477442065724486487064630026672072746344312194185599382049109375391317575876303146380242242845427357841501126889201507520481330283500472840411001548464328013433060957373468016137521008343211505511507049787616320374322585489433621562339269219768684187348857525308789807662553502273629893160452305595976609489745389273892642560168331340157089156789302310339007206942058719529901220233727935532211041979310648877896553192591885271422985978492286295367922608418628719880220740671451880837392347843717755269848069344912858157454018295010278865303545533324014428083015593040344070382579151514553536112222778742576404127692806976240483901174773674027117583256449237193750053375445870716834687969272989334898183954829188452515842157861628402871084508783208496420775521954334458139502533887356468903611126005497519436013250949224276179415774847707004737703940332780385861643577392002369897314880609620482986063670225402260145736535986065772875563319206927754809994221564953809076179235965276651182669358320485908149686360590431829336277225168692275609456209839541396875401999007238062481906053063701322651685591363230817817337589600033952557328218831713549178472892715912619457836107114260994236817541304770731082925615603031698909699105066696613062928283050006873853674881837227851616292333007127677775775581230762972636097432964021618664243433532339339058226448185466632403470419757582509223133811115533355968680187900182454931365262190003610494854142711800232019971032731327246105703453708405169464067110523915946634366106241243645930327969963379494111656034699725997408154143416008691146498544599811904287334862125540751078843539358003913077127759320944805143950891911170026951432355753596222858436013535787388412762831176390085165875920381907826233660730426490356803313517207989384483468481278306581248801424492351667019016077584650785670925557534984185292608129006233384679695116297849135447538274429859472041767138044398262657650967255616734207988889204921532193533477641945439368592080876961558808664071770558300883403037533301553630553488777408606054029008266087904114875767146024319415361783019192138189712287701070043284600235504663644713754349953167743354804382804564432065515253046611493826866428962967571719524979992554573968334490464072290466218298113432299649781336047400646738688291521453780844067901379223777962025087161849744859155264461358377467837031920016213754668014079420203991134445413787567294538178189220200312033252972418774438195450095504302148560088071632620452481338464888196787850487477577950444222622943282614284954031097688015355377455505599608388685853417512239921118888146734338952239773403933177179272412796426007135110742149664805847308340126024559089712944888292798697049002217816659050604603377398324645174269555040171967468877383125277266163337705556879909793549638084270615831804042626837556757629396480622842785807777621160458249665820715752517051516961452299709193310910156849019911116322460059653443859175558961286729241250242369867613054188847994633969813736735769113153816350428270558359077330670260587741886449762245187530909382547157241272896489861586811347155547927327355307274341354990933322090592326537466485470075316904886271392478041215328369843926477572851715579392120753334671311410080007158276477619909401233528723971383335092874571436386575079114388623553554156007104706879167024847186592361458602897693165460959871230496494392790521682308684009764969194750560984896632333607270571354753476590464518507134078237102667805231981129876767928410913400445701093781016878083564917359873534881197387081976403279927656640496174532551503286660284207771945878303560418800939950689568286796734969986771510951432903237723735515760693981593439954244154504149450625797174821770981544474270754573536529159084780309919759132189254479444653325886600141796379505685911422330988532191532156742247669884768267955071473660655809547543388370957110098145802882040368457549302398866905665597455420387106551080890657424728824416312448098313159296117524045717639782238994474213381636953373326531677165299748126267469616118489488160540249629255805672558926554707351616268494110060066607297580387818337445427698634988575786546302124331004906038449250395736167895657972845521122166297601390755984461020306740543158408005681905740750816872830034635757287535975115241801894509976511234400457854811709166791410715825590771054143083530412084181593105536642604753889080470456931936140939614359725657424596547310159800881023674380233749761231296329540193856491410090341045139636295967595248798769518964716096468573110382539104228066921471024899228311135711205903448760170245845728128938116841050845341753628178980270524312575350422994694098946234564699940519764573912736670385733104480489286099950592041810796681412957679810790113037013241723344936843362220644803199846020827569178968417433220955649933090012716871632098153166072002304761527413800215002598530702724259493324520879746480667393058174840884303362265719551850830421374392219657193829675201713084085654564763336025831233102813174846810051285548758252097856438888384223047706460887357111280283357426203116304971038839196812143945701169166538882364631925241822623960295730952336464779039912743275817582388681864133290180139912557432368591414012635833170462808378366422500053901022038975920916088236410318922523968200614331239841027572817057158756624434565903716538699068527042304940889819608434020096383172374569451063749337102103002434636144532265253630492322464880856604411097032088389914697137745585475186896982087122547501638455557492077442111381271676101047143997044149170868278296491828932141126880971090691433815699310094181502916348523877211388769750928176807526930907110760514713798082419248395390805212883775345507738965913380354639463327899103119592152546622444543600995383285083423468068561304035174322012193795085861018475909344907875562556019108146084418265178598843137957801162096940240047925962286046453044147797159749374437231357775498012752773249859987445374349876395487417289619217202782370606256513444963513144278866854853976531138921221583116164300297231849486709565997130994800302249098478587418301547129447184299814374822807079093203529406183861946663183377414916841067161413226857848474836634293561141136349069384541453886957449173497765887982791444438280642388619921680249632728942500009515962367832067912168707800594749615465258979387882244681431387432911189327421331587521861586604293956128654441086692265489784100596302211363686060339273360044895615591667236986385444880373587110550626740389477081945378403679209968984929108086557068290631713853799270088908887879253160412701674771218667865937253329879467723707694725664617972516888985691154908294014231427212789797884108715480735755811455531705262531098628716730217901812898119070831727643285372627847413659361413543489382609223867207064473611541345705182644745201859059139165069059826492597622232571643841256250185337030212008248818810745681309383577193605909160114451372300231869299527859781249019393399118100669765420486317178053042208900335378712498836963896242126436615638488556680627550691490244167618826851963881209206091260703755649346891202996966785385171547907946500911337694440965615743405387892359738333265533634955867884335196522968683919167811963201466830197088291012628856775475453838145249850639355304905205911871414779258161801191323267549238538776046379895111939344115390598173855092696076765722760856171435292541978141197184980218256800094502258425804949594153046046831445798878366862388385884005599368543503198101168919310249695444058514212681304294959873990488619478826600914132504228994354118194971939490585341004923498248101289665766116498150803481248193567890319788462902173526194523668666140602990114633713815255141889588905155688979590739225567577175419535281147196304695393419320107297491563334716397658665950467559319374411823685720397505197718796617785736189406578426431112580882825948680138659652667451651514287217687999550658016667048265020055268638571051599019860233276917515457588575073359710624308376021515736504848986047674502263905061673872524980604193415900099444075062803141161431596364691377818310047294565709895880558361634060214548256928996326805118105063801359313909126240146728701524251934456650277655757730774624908982629342632894828575201558040496099879353919250614140952610720996755702381351690439904844923026314327536664114953501073451002491404318862399400236093800767165520658930671824477795766783103409826962329954993166596187310538236098341871730602774323109245889529158123769175451437397903963479110010458488603235227361414928220528812044065925795791885393426772092613489092151023666984452773746490784196878069452572035976904999205395585943963739961979706366945262256342345474060728608788470524499874851893152126394519122086702100010084150390402450673378335582657276494356274432541122408093882453345762591725866669941316530154293863595285370349717815882686856342382274292003223280908425601422702205565343928633810139691040284816104980072860964218257556945711791126606903406758524114832352685205712410337370900792062430857782695817651231060117746512320945607235602504781016139526421053098442792570272842596585569327980608027971659000212868000096844891172690645898985248708589655192649276331222328537863699710363880447956306141894010832709074479872311149477503945769146742577625668422620222778681669428059207483072703025250328906919760907487185587354602784786581928209836673021966009132982061309606347760486933680920752924161802244988024144788284303909889653256043436788796399536155048830747205758102864598439420139182173803998507085899130635399660452663784453611053395668146658702705671839394880480043352166355235624739850175110349609756950693050315692005689663589261725762721600789832880543036244278988011034848091860790667334858800223492103194715292993418038541242894153336695161449566754433570046087099645842567658675287923459727647678527085833608083426053691187568265440587975664396343388501139272733361729371640684095823258609674013883117645247725616341222646170019252532383502609010489821002048782030711161697796789255115228030872756538622751250794647365699881723686030939209757955228716963735858271090231725948870240638508266429841403261119871030442506187315939958418462525557399234091623306581924868380005789578462729199237490410071071255054115991820654558751402920150920881577120244164355838967772538556818406915525313299822132332675388717514730016006428432578436573853214735602569868198966062523101876871879362901343652999810910457408000495854102884356454320343547093886575447118571576203383341487206639671161511789558705465701752651059528298842364550225251050225345829519916874797773726636021698723796563583386456155313611605565734113812738480228500460404662722276378762435738258921509924084601071331423318473989795026677849330835551565727254018293123812678092807764191391659673868162188159640954257601389797485068967664926321208651407526776275438430872389358557222920081516061440100747105968443567256122062227635871771224833906918838349597605481884280326927942294029276243531316972458905946407884324653530718470047847244293215960594686919859056692422925911780790949893012915955740025139100158129469474082775787518500263076452155902723676361857684540947026047143195727962129647118422748906007530149809007246667216609161031928449976689280216290659307961222092934686891848277756517032724859427248486606767921415859120126749445095821218112135931853444413034759044131363481187465930170219600158449057509831102291323141936942222287793304612280265567278474022549749241950101500993998525411813116236313425307843889094635581675216969925510922565544089988490118053433716488775498312875782004306716443671514931613279978443489964252327630375585983622620395958357612693878065421834428108973568405138555329258595837822014294901446296266840048366760085319695438847172030546517422879761293528046541660840298993035351615597336444167829382686489324780685499599047156938858066131697282861965999440662543949443395003055814988166124187969198807162532319107721372877285965088169468577980891531400334802358544306567052346438275022218324112783440339730875192905471076852886108498991893385124464551031010440021630280936392118780287144423546162552241654247166039394412916998444578068816154022167213648374946159651063813377035693732512452745117564137028509144029176982229758532920062710895929396941312685072504464936674734123111644064157184562254557426599158784865492447619511758667270761252707303171193677353957864805521426686292657846181085770228589507598342092856654078157515754052496593072009179627504167089985422460295302573746877933045020419477989012529778470890333317623499744659876139538637383024583324701093259179706833482858544722255057249079540636977819447054534824113361117641357956610712063182004840948009258115803348474066237647937308865215032606919282952159118908601321089445486530065232541584718308723168126860734254563855561882207531079719705849620309285753755405071795032099538421078740136203924938605869546966503350756819985990856585542130434416678947820366442167869647545572138813423513374304738048461562168308092935223096773758239019444440612987153470743355078607547330636932339367297607890159919293840560514017777235011471861993231961779740791553789973307604820221577832249508203301970569710491079931179269197923116829716483523177068638979805761059187937856170061135745362944420798274513687407106161074276629943978824752436478228690248128064980184963977489656553153247141635277344802706949475073132628040100812398403992135400301762298114986170564178706550578269064437746855008966677670843644804028664966167310125470236823396355645918482867461616957816040681494028279295885673926958303760416345269919404604250147605130915281005412524422555793406492942868406797156891978893756377430960950911244775929478561162398433898095119520040657491764257054319819652313179271087186118674562921467015861059745941633917010564761234458724546197697806387758992711694536662268262044532518801910260490870260235239335931889921611806392115058043875413967476897836936018772519220458578905058522755469778236826358489699327339276386377617589636272659724270329379963928927730044878239325865704142476603492824605826332792378914420904297223151382740713435760515485859537668137457166669361135911228519229392418679178600292982718565686991457719673709015769629996595342594298458312267001951938456329930613885219803985423450001456485903967090414207917115324519310773789719155786616959620273085435955268205449717894214066324182474508259760415088562573444917825300081947468235148738874149977252913072267031105295185578629504941598936948725625756114972665835806166649297096698535520430495694082008540465805908372635436975294350335223234128018780125519792470464210058206646229839841446206802133796595548876659417147358604235399575166889258149807294738621649579834399417651615563959648646559898640470147311613463666756018959894491121483047902274116806650085334475706306492069773823179047207133849076424680981204022459400071356704180744340492936886727526237243937290920732893243349728746792142031705598913117557349076464390249507349510496824381847703486943911341792446454060548106544531605355642163523545879809682444085079948187124627418200939184179209166082609145478857329756330393448823306916849637194582537229642650988168755889766950926793789155953759637644418737704264773115275733683570015208014378673790832805695315702041797376291083316727932604524696949826198740440478771304659344130982973793782046054977585081199316719523500908178816628600085368374733367484634881152437038438565083074345698625583057163179223529714092540267216668339201647710348766851402271408204558354883802856755580087560144671555526339205335057935658685454842958789263867297840855532107017770471478048865334561363016995041501719889858919842089059012873244294004601886834152062492263896894600169080752961716768668194649360008292459134347399312302541839316140617186130548129054815044353647856174579718427433784923418806810567472676080220443471746691103606731916045903681413748737300230489479510849589997322257789788021348447134348675361291870613548163537290094952184752183894472606169797032605651575117204348420279229458725094584663490057880010681895298090501632425655373059931928033909406188659733614841210430786668088538677600044412266149592765903698744848420638188913683892617283916923351821401322495411793605909844893168651772676752590165799570719018915520812704745614949156467453209078375995387426438264679763455444516466309820548656283393696640833934818896444174554797663896117610358972656628408688230889137712137252263712663566967566362844485088719384450767101546120356708301193630999799388777685467417752609465993208362503209226899116841024474340311775107726595793803477040278549453533704006373645321549344304393593121846229090249269825768671982872513525371178974300510514192522277060966305289230908738335074610925827021417746263426847447475551839622153158889498345512032728334701465172514669232494078537070204169888287626519564726431366592891859553300312306997800509034788890692492911421648618084834995152806744420280979197536786698444422879927312597651003767267035987073482167029845521316082268561330576117052115283563076210519256296522826771747489683324338134057817441059593716659859008336543508071007666596713923730451582702628721163810419866636425748961976066012232564268427303047800456653311518359648367616081379091123861120301265062847208875527569619004675471540598896884345406162927433301989963799191451562381421582249085973214435015450700741787374335828806759579322341386184311877847265247778612456485987454419341136621491732493061123438286418930927666300956587062686002267629683930074151725368310220905357146939200355041070326582207032254885590309732021467631881265142810771743167775632090277340275204417112321070341061689162278986678522226388224530994550505585781157847005119043776981039620305070702411284875652666396793087040902050280388963168171316551827924784303255152076052873741128641750729908185880862797123663028083534765975686798139566865759214208251436781268068054260948951105194616286231625780519095351195316180956892080955509030385442289755966678431485774457185032652056140166868874727196513726877999123451214100228133329118875984596186326064957223835986525511305257835311883816547365642298033282232320856909835400682527852738941545538122130572312971815737371175717152781712184228012398635347777703024451663031253792232283709554659096897146660136254486294952578622794275974798162353033712540880578452894081904660449142338643814434863468655989443500510708649962654295699102140676445465920123373067659863579563760259852187263825159318104440632708954443069192045704026887470743526273034015846515013813728997771038121193823772678555601449483721962675329726856239624577505012956731938750032166676014358512383144633758552678779449469987028796793068050444754070100123304884829976979260844268663417516388295037473683176059199327488224549397163021676101746336780412991213347409094875375682322412122810176617890362810403081447375665795225458837182877620944056083961255668068560076750773219853669308212770148120048940569810400895688896968456395800686340348801839997167805461376263261872436992256003802459266982583711587020629593040084343160334077600604731143827628244843136840640730189894371128399530340871825934407215943111990973812058429433149618774419616592966413969906756384827342780415702192785461907301696011938960472786803980429615417486619571986608765082011864568022581946336948959310972758920833439122395348021615702861424489784850164654033701264178553704351742445592260604916289999033988364171956978570809434488044214781992442424360152471643799095331645311406261965510831050715887542181235337084715091333675675083186319165548401854777103516490846536753884890296379301746490721335628967205788546491301834708881527347443556130561802183678255146738683508493462123485227539235779625926403304163505675894679959848382330767780857617276363864435271918759411088709190579727504821273255519246746427513952570959207593690801245357594284293457005085578059545270174947981118959972481576453370255236618957229293124252074866625634703933371628683487562831849807320375948225767379645573138437506299480365249010904923774419929810848794430213255834977044927536171176362606871953608646664193889064215562323402500135504500816715842616771989329743867459765398832303155017473367539223770069522943011718930471526459921160216987502012763038924932097721693910210457376342871276142615223469416599494315237796695038957827844458654332494840512810310198514215105841523991844772981056242627485060517525796866613727684099550778473522352236885027177016403348434065466671441485379939967551031103325281728386275381871089552622664693315875840093650427634599992549100850251684882780336122977843845299533496678129668460577440557640390242773346805207432724651237694404522048154994371740405102295596687420520091541780711930824699609484738341180449597999798195776144055397232170945753319589713494838755606968014278044480454770581608051361454116708914367524903664493454113049893520631521798200113736383588976864419359583295392429703831699837094791720631861577489487699506635979106698431799600217365346143502305043807294927808817264038594207482056895437139859534009004345164393806015394314640104401057372397643196900122470196342723778046067385926829660458217333137539092552345035213365304968860732780694594868279095814616461225021993482601320454096720939741583240925593687547957881500293022040197453450836915297860530432843993759308160837781038076804010881766879994657016620514680298066572050499239866128965547196712351291411727744590735599057275492318164392382764349158537645004308365518024691976352532926765981507919259072843034761622244947732100176104366817824477811004437149713167407158337647799976040095685637013384032044189482120219889502881687942487700729628906911475539814531769056980485867693839580003205953472434349487431495121885855169638424597430654721707276862308394604924625777372953056398878812136970195158453267298748727265399909389795721591824747380863817712139963089744339756066672287283405602576252188691177983051364407112865018250229343508727013535624716159001459700756687033003881297970820774799301494766694421500441381328905617362001860687598338506176080570526956025849738663868280462387560978396274467111584115484705811521101533956977114184897742713353347650776541338717020063815829070474383974540757630144858393263475268734892641125688870570693900736891735295824991212342603146501249308255759693007381192320863745137821945761692796608849969506430551501431332960388479668475152710267781570642305982339760224635089919375669213996060675730536684553385623127690516124368532920415141643966789898383068046562714733177673301849123364651699805486484234685983650393767655273754877984045420875080412606316382493010467323586757938418149647236828248667808661863079516119562110394771782999973751769553341880523461418546609812900314487929859451482893888823846807574250293992473196377373796197106857103031076888219506932631430605628498174770084450100046292077845320892205560307302909885248985935312067441408708391150485537637966287501518854308684786159396868762413501642643651098870206430543379725983998101382863588629080382786136511869852978906070790273613990104660860197131669445890039476498800988563056053842068442881502181480849286264968855601980731587936691668057260905241327853564684522875570947454262068749524180656437002300619959201796039706812646971307018397946498263420499660270871248753763762747146722416264830891843032089739173257992990519065148145880499885623191655271422687535938504068396148323893289589208359699320118651306528851196751941013932009495632002697414626793021323795066885545190191866236802444594410712651143637033139555919060965303093120218331109623319656460304224241860474696693431129355293885597936553580538863555965472683543035829587205846781318966263029171826264156285932624993679638253462414742144475556010988530478104274735152005881237936497044621311101549295437947197123903040969898405963817467097300883637278011988402568859239157318501576190790784249616090917788403032512937706144606329606421486352024024268158276693136649688200292427695599962463204389117813771338648023272231598541430842152658257380796916023439410056211657054463227085075954057933453923523365517412262113890598139891705465274881448971941171621129620148569435606354193807964692386097463103675059885889624115105917334852394482003087678139916685734687721676733709674502478224519000175957277615279966654970191784514282731206384093709978295162339412574937225261228244041757869694704662341105306238888546552433008438344527373948184554204641066622634609420237260170055134292663169167248939416578205032097568604877839284447778543449714631403523117719428057282074048564338609151379759272573536418382824307533332939447938903399932128167227005524137453701960675175122212241635654981522764966538291847615456085598312398207011683863386145881875838096199739648388281438970887522438642825791076084457314211727520052944582070575608613341406044893040654053156468521919600913707039393996768902590784867121705987287430074029829552067662981099873813087336726068906059660947768790263429219273299840399525155086722416014751520812000230190180952438347996256646776138992886368358448744811797856482240304869893080223181630339050672541552158224806934106536223622529371605501637715604990763317596974431932504814289805321878440594801555525266636176138778113242279952608855621410368883147664614919413493040063360707511275101158576995449812489025267522106018385624699714564525371398832227392372476690595425788667906149368358081395628197910334793243762208302426554943995905790745755639046773489618124342784792625161513521511864346215120415033246262390510464339377749370846694175574542170124349051132562120945986217004776048487232015776128962826274326661469218063364483737992159775950319744607988295365630467776443663436339818716530250777998336636051707442162493896300465517402071626065789888195254781398916014134899578037631272847825733256820102355944684632601615985851547319398530678241515683622193781483255914577641157497572922543254764446554633218735644942685433247488857615812590290161485630880117074130874214517110918601873397920257767652048385598590579699908825131726527750642926998318391534525355247387699701316368774263422621233246954137296269563501832416942555360801804978345395935963919198471342528783880018902065646407981928626314859977794861076015122423719931435813078333979767021782015351860812803128180403683286993777186142189881273011282166658211235827572699076416356632504282919133292033576884165691470954443287775488431182530461767297944139466543729645597118329391695140159528174342076416535597246108981062385961250925510443196943606167052634720636729478427116822627602162532017655551775867877477868246072571539603010429902134102340003340989066869297354325330374818490261451050632936619690847094784223815004020114756758483246713630354693690988574840556845179067005954384174158263994943973037116519894986174112642837577691554498581907097902332717794879944220640696916792735119953185305473579174359631056921985128881460015202712780820891726897215948898516650408661022608186235775809725309270163301918922754990366537132440962112997862834291786790383731636583517410805171080755790006102451894751038089988829960825177317956049777799210124901976965911059757854753466580766140672568514746375203205024141593580901377052506960408631865624499085424515688712699010462637756719523043160343416159422761867849072398080702161604658867027372882610283342315035464087279124224771495499428400100234983229639221161094843519292750435726350256576503759058562647515260263646556851118537908622190862608880497692529508905742298376565503384454105497518575458117903076818420411496067364356274539905942318083708778003775051436922772615840608107872844257138012466267740734710490929115865356728950731504297616064209660390939762291431963438556288154715430541392852938176943182946660521830424506364746033747299174133503677946345137593308751255515875397672498709431800884746643428386855483394305252857016084699300296125046552708336854772711186221563711765996812259841638036265112819544730982897188441356163592863080129013636921991545077933020545640927902001554304619761101579128264283224632924583076977750020211767906768358452535960506174623731291492330636115778409336450002033316540896551056167691920308359082396094769801281518918346406460492343101070178834401822620611242897659052309362152629477985169215394722094461111335289010502985864316088209650918644924978807051793842327147073270092334935791235702778347786827425386108573804693487162348659955085305608641832639593990859643559301055169517197354710654689085874123111842898412773784122221858664537770532548442443467589844568065233052342181229782012032389580698050582173762587017299369660766277822624448812117262094019412852637299532510013836795776911642252082532463971018417691703590705000781834603148534913879511487524177992073846721128755053444343958391016031910291385831240012466987883594024121371899506758694705693142045355991115093197602955009685260622792828233107353390097652927568236131160667419298707716289376348393379971531083090174655304963317889279221512873990251791639339079434329698628350010470275376431677866098681412576926629696282795745957827914076847569456716880337204001386597319498196675113297143811977585630783968374878892233955606753912811512363743806551525181304183625164753947016474967336859342696054396955154228186691560779208910628153869031074521540284663579904828815241415091362433092781098849210718303879712500125130370693659716131281972978618178876042097977948437918002971075689299050644688632075265302487471497720008586733232637986534699320586667725318399768546283791453855449917251035706324163078402005387959474062095636695037100872368968522814445622745571468587090256017102809367431943285479496720791264276196188692182760307327009554631026797521592382898153042740279141089699567403209170301632035644452004474412024761964976285137179724191814337146453874775127545782877544807836901092014915642446496055394510323678252915884645328478635099297284872380980170266962563903592659908857609689957293802073014543869755587517246677810140908930885276953361097934031263216597143154573440199362463550538566436720410816188339026538940039058136030700733043871896841512693391889572313208899512199038308934989765489226923490774155495123384558483214813330925698976127871810737432618685182149407895654409472863548068412807021306570285491024581321368894057652426047015542930570756046739950305734693789457093896872614100870980030224190650642737404809863229047334132250337288085403165189083170884112707065524444989717909670415805104291182858622171286154662693473085846508008583321262324981330692201736229923937629220019186123132966360415192350933270084649809862924052588619802277502317063861802360827152138324645965203107628736386902176897181913278813435346414974275715488403140043793693651938510915889428493147418581486947708660170324051708635817662430179675132562363000055331190238791732657936011080116582462187293814821861265617744632908651162474470620105342663920311373136673973320132993400940938541192208110578061609830548639367428822013652485178879502631221932087299245609123988725035729807389750705285726672625062023387187931874193636001748547776190203615082618209511032019198672484020966211800277646386915022371113818997865376482455770045938541915882034807592507989509774687846443993419213568171404194848769235283476427446696612393029940482120263643852979797148465757693075198558765171575647411647101071254087120371228219067177585775808389375137556034358543609456050608015931489257749539815145190399776855459681761478351717820467193297130730187981884225386489720531271551459636816756318498606981055570652111931806460339063630952643260292976464205819621892573311934124040244440030874918510935052838415214064509698481299018093750271501785294303572623210860347886392926610074376241790259913086040484356344922987448479789592569112520116859304186946733006536564292403073054553808412958344995970376400248870185750674518818147598925219517670708115988597277013986112690364972979769285136919161099504048106827259179235810844739370782996221750313849372318596591809721356786788177953181580690140996975376034757764708082154740861342396999685881354945126686420320790581654939529265066327966139347367979111539605216378959739105004892852540031820935779165325506078242624850642889562335843720371335230597505932174432614971982063059093966128328250223469831013527449240192774824865416969169150843088481072098174475190047138401867357385953336405918931901651863443194092369947731877319991767090436130643592994733452797921402671002621257284272932317922459941939078418079009335714142030509334245881559769627651492713788657079274922843038387297449481810666122616009936675714728527344871906202495174347419030361136155534413494083759852970254351779800643033606094009389243907134331842078500811000164911648277956549540995519229292759300091508290860009833567445374662878104645050467581224447139209375817269293357226835560284487805274311121484567656249398622488353375117078593954359275767762164865480140668587430931774156750037119138580709029139399562115246939521324591137643137519877930564282303667119040183586775493518844262086606430767559675485021386381962050132850953924160692628698861948776977942806262953375126364120514069921700734586447781268079605607003740279102953342210069925777988411288330743757517432283761892941857626977870202109004216912481059133882207319811196099479966399791623904055043496829287737212895400038236238814443070167370072456503396379695423234964045135984465063929483571549910896708385984521976712413657753898051912938314738641123315265989334616246979232226299182238124348813042252835003392515295851446938317423802738417315691223470543710909273185618196131400360219197999204342364051343198294153700269254751939806425893259744126476459662367257268170642527141091496784480844530167182323224825368341698771842565671835063436890264986665906527065422774001498180680427226309012954892551361735209234158920106185458158709216263644042208274713944886433209001182194569002511848768819806880173748965804100585364596726913598055069758838902559907844852777589042239558486890039234277410370157573101353891170043778520327203262615583576353440472204671439804811729827509828102578776066273549896986416745613713227982787429153006983398866420509726855997988533315047590995338772602036412260823528158144376107013596603589812773696957848524084713856928620480976103820279115910304922304799030667697359497488567995637443977733301755668171954614386687638644305260288452950779518043066504069615668104709097402814576475491113085607716784205070596475377517570826853578260705337853723924149514151090645432686386616944852660452492887272350958992330865968804039854001286701903235691263350141303495520565461055101811125378402260861303895136029025818730364854324577407991703496618126151115981179330750478737128133038860486457486890113283749911349245687760394934515848157168341568313824059381267310449719402850617366817430494880075919674103108445012920573077749103877952796404128706664087044375571385778571652568015692179786657658208363872913493808078212184443547156825205766141535675856200393428016437951581277153131716435800475053079025966740751682529196644625476860530267574618139914965178365625190484079597564333023550284495788228175079034004573791235470379740575585396603559862906282822392944361002031960408800417454020958644345838515054514186832514444470471913681396538944302743240804681159334559382316156100943048420644285936062966810365011912535536885323992119298530331193365572430737350463471066005797271816555248891303956874333335097017649660048121181529219109688063338997417005689827930355739678777842887652268615487458622118198856096071221840412498581482475056478477479877580071344955778626738101236425877698813468259851409628761978614172769369784903754413141957149417428810823213419640870517097622419224463973626649005910902654529903907204222210210302011325487034973652221188820910041426528506272760198182501297237128127734027909473136225036938385897914412506750707478090476849673565470876619113773168002347577853756661473281936045929371256418792519406600829515122821812114203610652306281495179287147148355370395951952199876594849495915326030932401102602875044449445391147640892437580733861885435602641262233242199899436341525472568518840521755462002798160816705336321935671465299147016636498463623197481553405883523242135158126388169682052815988596342003426633064751015251646249987016554300443407262510658957494910041609647063213842286935041222223648906099998100694934111504614436137616713736795812264537935299150369175589272558632845204468437894976239541650195408214342902966339756271497275074235375642908909180265505392131041857868306396656548587563285151260360224107573857406864376216513057995799240722139210453408997384023066664570692665356599877331257634847448017933925692618207964703440031228510404309757246391489431750517565793146776192379155900380577193816924349329532866807307208865439006129966617842720367864177983726874551801367167616616007592217978259817781891249653990021125452830543970265438634548798414972777755768230999715892942253358565037536202479914056212699230159978721521151870413843181404313109834512896726909919315741298526324652093574290025090969205179444848912276802912777393790944945591256865678255389412299875473186656672469918021072140919013126945622124109120804788203093727984546138785581800680304221101216747764168444622047792011203620618978372606409867037884463167808643292564075190585253675042620954291031840077241391521264859400293543333582820843037315405269793278789664131902398213120129291066861725339575351975095588562132791376452728168586012744639448839312016307412015213399146046895496265160427272266441892503869558112714807935002311534512620895006281975778167242076780798498703583422832388162006389338209716831519456290418850256288004408600921539653862865762219056578058190582205116990115303723453016265786820653859131965215942976355225171541522486857531043224323049115426431270859337368548590670005708386567273236836113884804391110084002830177982457997071935600469925848708758615457951654777269051051500075765702278918074250775085493752255562090474910841809402347804519579981160296883159073409522626274230072646211200713089696819590272847917066078318966575890124091679200739917136646208752067235673163234396794003146170822065422571591432037803823464563649001984589643966219954305503122574373801647682630586401554719592681866253251310692791812460298163099134305054933994452328067074121630682402781765118041946311511629928182550214055588801229576129951126638344042006683395006920562814165053826264175975751119390312731149866824058175451857151845951610786072016841218670035826624461696812976449562707311368760843092897432790366752577990001119768312369874892367895850592085910790164951066476412367957293521415454496780947826943271854796425248946537261786938305003543664451152781509652006620179926550425126506797679369873865797454745207408320894241957022523985230142073209305695090073684809259557591293736540870806927284662347726472887310317796618709607069768802831103359530545645658808529780056748203065300936049966866367506463609850487409711293504246555026498648538628704946235154056352500320034619984048052383938949310243615015715722817843932706327048594883769941141774248475702014919984616793708253460982761149767789519344851326319477415690135487458282827961654732258953606683391398306673865541077111542790250875700289077691349261162500377758902901434250305059645974799403442806820242597797605138281213412258134413771311028595450643744025657252963300520110216381321490972601183302413175629904615865071238416010343126385874557274765063082280496456474376822092302658338094220634516952040473310819704049881600863296253190657880936409766261693583614671991183665693074909606313993101621135463201531263191500839361245685690382425581770111323235505524586031192572229668114776489185912731913166067069481957542034541655485182114267713218212116707993972903902650966874874549139964707146222602844794445589435991979324074367818303502626098905773108210379893926545992205262828220557375058915451073247208464690783174370198954687646699533101761307855847880647601285864304701146611499638937703057479371768234634607679389745303737255097385058558081331139033397835604008034339061786275431619571274828656707525722948878502907268063613256642833693555724451485466038813570912398272299450101091875166257683613625510873257674189967424714047366821142651026387472867316200754813617470774439395247239553013857628244896499926679003283186424889426748587111909384258877367854578623231511533043444400392484364451799063759343505109621889670563950655809589022231523595502474430060401649217480428779906526959890765600012165727692758960778806400303807749682304701111850154578276899881889498030137445529415292340533096303221121792357681007064803922930547213879236355689308600927470831073911529553349065670147245657682089962326666747443700495880696134038925367469593935356748935490125399541818900264682634746402100537079057641973973717739436607476110669755465235911528395573753794037859380027025685722879860398646972962649498575437797295644501611522195586228816953625532125195268808731118328941910996295455879629832926877583252497437403144947310431329179645083884328720503300705181771843662614354263693158718771424493614318363978229255604815737155579565693780395550383302162198122932767620566110999826582666843005510139474205740051461193627924847825516729788205158458242212448521859531742021704550776089294788165259871069749153853675356581935229797010013875779708003971386180705166644962539501010582084562184159056662376547473893303415520293047359950500905855749404649253919083799361279372289945656574089285780055479054108821414395466314432547884624639164973840395379508806013180174835006796423663118812917741443533075673064269567866679274493985325014403000813124038946853559494224354001733555680389480236108999211123281229942434894340182556653592291038287994580764126350722518411513429823634418152417993778723478042622475699900252003198190246029360187316976652834074341348551770404746397275897477267263392994023671452879372034940643555543048927635663340326961506220864412709579468051849058704341815139581660413255666434306894036754790862347293149696089103912994019262352774426000670597871525918672454803644976511961879942771415680633496860518094045976095403700479178360454732926131379608105843786008193069144999411970673250541665430292833882150607975554815322258113026678069916945300773151273410038914198573539791196178586864692829389389601350662631741370375305654197406046168343281767343712075245592973107331359213979376153468111663281992344628957959831373321418091938330025853872535007577220056293705872728834809718650402475680343154968627599832689527059346550911636470268904158113424289246848550487782017894193317822757046672931810809498734512448486108670393535898166908187805859990848483677439684816824335986611003341649904154564805171482456235045470187982289403289956287345467033126579805315129878236851862123445469845419079805298482628689283053196842297430126088880654782774772643291660381604109647555867631657080034406583008004118919155012475466193456383896764000337449556072818145792390655251336292747057552146976901189224476890884537815095181608019631567137840050640481232023205270545054148698781786453651964844396555289052861988429753788071180350002877942963235530830559887978139453224580788887882703933887833266202591174036878599976672207962137568146022870366706132668553974753520756220382644208991056205916892469217835190043782234995192393851141895748127025015313937851622389308405941786735387006133458842793445252737415117730070504121685156479609872603865576373480565120383913797973159080011213864618414902455404851562605190906631130026317012606819965652353583893562804982091574177720460354936736445994471733706550575431746560321856213362894410402100370021726374376211616167680444140396181821344702285432914597195265552712533634512995652458953275575978792427548248492904703822403125367712098887962958429043661934645057776170563424738292240748873906704422220376902891371571083596083427008009547440652699719364546259959454571934585118147079635854018534464582351517442583589465403052518646917374557009928766795130606751393544669830951151779005443750116216051666911367598384913327334579224890210806871024429918986700308833652537394145378952466676889436850426241739822222957181962241071150940910555725278841329842158672748188306869808454775499719877493383422549114796280402318938063520046036602832542135113321991283315422417534508680509407027429821056140583097368343659250972085000995801931617703802366076271324518098430988889170755440397836747927560844287682400942147440454282567146538857384172759015532243872283030537633957707137509162663834714322858695314005903468617755446687503628033372408930865853166479494526258517011833347591859138563375220010015687037687855364484473867179426160079190007007518354080710565605554283159828168409530314287809248898774981896187917706770266551436234321102445743489069957124844516965767993966289210313955269360467566166542046545168241076101265317512552407917865147686202834710916144492985042724682776190263851331974044916613416278201969433885940513395229152889557878700143083027078488882335244656619290315732270527854973906534484408142628092727697719047059328925060834156290933006890634571588808020150200101252903545760459608148654895154809754451803271429820661896337245104270623945062554377550527271511721921641611114993263019977863271204445673672315306239154858228754701164429758799034614666237296487572536472064957686924593259845989235721861812798666918563834661917065920208968080546354348310755263858654148789296597845868965614613491642540677885606700775464827903980999209580391226018768386343886831121142250493207621490560250216372144234782626785306368895309203309700575566620808037783271704226621132213866239230577033563264247276759351412916467347716900155078660748499526310095836170908381462311398931714105429341459732098756196018142536085083951619394936361698083115080589363718955396881696142584514944060458308985165262426247313327259913846766485477689384694315437259518969434064308897464227214837525988227559245991338586703922052140849273247248269125021433081010415719993607626730034358933978118421546424630387056310410158422714856847198640395923190608189468045232421733928654543742566720346863072394081782111932171017900943390111993049280413888216953361266103344432838526504773079311114182201464733597476146082337522849062515601670332748217815819572689839705980547182412016178268593291565470960617845528207713130260832533380843665073292509003163053560036307067996155159932006781643281390110625901898201650154751964819142853671803208002324309033211917119478058439097159404177937609413858304284464540138022843246755487743522416043850051967165691129462453690001225644839174979587754843096295865087185351378927867040058005814136206466206257376947906222308422402127468648946462092600054899898988331145175215817490453630588533383060269001345486631114940600061933681213694453460823135140626111908324005525158055905957362034893432729611240294135691205639042880603827821457560270545602226173179238810860028731264416096186789766848846851734563729688058489854949758820807064272436890355722848374899684809712882035506148654326570511770365231190629681890058481997825612247832358286848856059533998298656316607356272435638410275571704183012886910680938569608803632583731977403208388723467088993125204877330117565139341641953567126738093095059844204726369799952018001352828624806251679794770090040049257652870928491618537597092627793724188981414027091906625628170698173119100937126073715222756669934388960326135665173291142305277708897565656362708179812645440589622333009262925790235507885206413443318850368814467660277461060541204019873007455120738209553060046973958500635126663633232853301716351129255314823973798668196762733633015784148913697063647163386823940556839047396839711890597728251617028681871338075079792978670298765469295469758583782610134438289594192574794655995011244159954073940006139030375353155854187325050386667925054645342493444669165913400640557547150512851228055018894613641183828301558292689912549134521675913698537647242447643169658295833151912697273253639017861015190965272944975712933601364751428150065416766241161254005264993291243257431441689475503291417016411931186113390870897281473850785682969031627227288805308177482034240482313376509267648783966404031336915811656596553460463486815131094864414708554142749112580126682032346719166494781124681918949140050938444412543003187704423837432425428216994979793894819727419500953481033902444516629866220202711434691646851317475401934324859540211042484718804542397829007891004257011262164522425431941947478766493291836693493214085127429627712557146599486154737395543851315030957363125303809257441971911083093898374596423543686675549825075871181922534446574443790255710288119977000574000484679266476326323058557635828098234655652425214017966823907815162844057207242552111951033371432056112756841359057971445113723601381416120074162570616366633554021337601300654184855945882381720584048264898596354439852421957004708499946500040064106193208083617752585667000393689672063119027928246074733447922604315157897830549615172387690094355918555015518224955066023637702936985621525464026955010834054813563762220116973838006938566638262942836528253471511016469281377127709336291476690943630382764159233901155704499878276231768418738728063854298729502627801682788886028935997097162645380636130546283566258999140704314032696896905911914463869479949465407492199962318337343651963448408710900426580259747776748707046293946099561217401538241995530723878948037380828024370903168431175506772846664174521686238425507453416815697524947610488683755226997753665968126844982888282474061789588023186600771025703296266895797998295697328650811257908518356547998437042620753158142462429012908357131715850969486214710928320841013592358578437666309629065463597895523882649072308716487583869876884366757103975751033013314217083697704343017041298521890968961086857889080571721092117115516742256084123294706272918713664996751251409320014006254249550783840903397992412865732214477490000863343582414435497576119736305185295529713917263228272465528626408995693574301566346784441707891393439053333729121450390611400313532629474749600905894058011797017109163087888211161958114122633753151684571027933917788464303987769016330723096194587692376599636928103486283220146796018722202500602554827083805394521597219085259554216793343932587992411771595851383860726873264259968426637678813268496435610360718074808009082539268425072316681582065491302071604223772922672331184517967034907209745156739674157709715476093575004829243400009995967608805666703642344055500394818990270127747714599448420963390090106696424746944809985935540038520992750316418933428778828467022420109376246547489124581001564765243367316685882120948832914809326417361470229764526109284081321685713078311152478538637900455100621497695391988591458847892115064401407921326286106063241180773113460214783248954267932716874803509073771078711746396159419739861385395955753506602283879812979843770120773128588553192491053362403702891601753998081631731906298536231445068556254614881507302087050823291638099733392395819968670490002288731196848021058559950924117930493067108036906109598858889199147938820131094188008639590292287801282200559257266367054725243290514315704318682894483396567826506652320006635134976840134254649559318987505730706975757444070270803804348000475669048969090530515427795902161473220684792218900836448341639161581167134009064542650059674672490367194873951145215407409954032736016400077549503274182857038007158045084044162196537743348483345880425171336722843926163970700362450684163165835505556219604211535886936803827102565610713912462976005983372706990137072835546267413492091582646403476818289402190721756463124229101078872211532313290116068202343517866960516976472070518345483398358105509920411723415829498344030690293297011380939314267844861279173404635808244293223499753384244660172713700914466152836509893008781152268784146685531313944824341832692411729575329483862316674717312389705100284976290593050054647894378408554097788177073743080225698245535085428195075331467102346241183172970368334889204209073825597001377959157077526751995094661649509850778529998884073823349058892211394745833189098757582808060460818935514080247841404929405283864322929203390360292218330222386965918965821866913246688381090536639547843432180593355260590564136604014155938115433150572242576960052601280491891191235519537637306223372504083286294075015027261835713308221159024947164703000682682456437302346062663906769001097048209642846430874294177373023264809521326510316398493320682781973800801196058936997207155868952980805510469911392873065599623235829553454334617907408793494311829687018269588976894681658401112656332066435707045004921646569686343455017008254652669864682794078262181317333896698210213520456742290473268250418541037226620714784475988166622182398844980291557521027530301956275162996012032042999673627142675516038652570977905231377962314546118111686826241452935745026672142749511273745916554431627372410673573163389536026891184765424747053640544680310828936475410704143474142675306311306246398307002526890818062423338648952942768777707573024999484665107482210033318783292522077762271626885536834550412515158036469910546280512644376468684387657300345326442583585655146023639561189894378476306686990756242904860967084991395286510321849431399881180517252833953297603673944455086403398713886876099583845388172286631875308494311326189508029385857232310976582906725329798624817699236406492508778493317185014627175547533215132169564539467759403898354824024221193928278031800833857345224062560945534902336486313923552618511159287498271370095211013950258518370465495159052387536930725601332707102835133548481793416272694888768260119592245129281901650190653672616589140355129710289391205958727067217626259219790276974949114389646639704647745017036236090053861469577522854922319280095653943854993631833468942337867852645439093917111930972947809136951617525720588518322227475917365144896136476817264542569300163681886608939251711521951367509502158996762213825167447213749000256215859273176749917764915916939316680265190879863113878383796959785928856059482454897649788848512650653421936807767355232991848873010148486127766601850528843200283666260764423985495809644403414017852620360478253946869349501220330420868814860718874169163990972093848394566718883345030787728865008621602404314236830806328409905315806916086302235303033914823617265645862211905726951436586062289786517624648531897141748436313743337623918800354792528266259670634564603851127095385915900948163103736173803225455746471393831298309682864836949586011763231753076514416612692359491374261837597716640255980477174411209959956288953443267942628526113694856163139064311954184278804150144616503495500896477499855288170194989749887862566786686320562304539800802581054523976568115857431164584941241849011800175872041685007359844982778581202366237335996925968861594342301147859648437141443461259528889337599654175383919490609416055904999286629170310496301221359938973602292179456578489438813942016922553243179552049437602994018259418093973329052144764619151013270887967092640912446573922101641884166592128403772445368512465348073285070515565570048300659485849154160901718862982408422731393923506657176841009616277001045693321716302967024074292654389286516121542670652545208677838725340931888656817028862344792428653636000105882528574210844925206622312866502996357955732265116219575394580380593025684254532374915027042197203050549650656246849837235585515286187774637274311618060671758370717749319728169433297133278214396713383397317783825822815648964925122688269529852652871024334268235747339462780684582509314717171688182134718696239218747033211791123761824203540798861997552048029981798099239673393582802012429326760493894720992392908339429836149954787039363496472333254729700555604797967362845442838081073621144566002011598427085955534502232247216974609606349045601225548687894620177556771369971134527218902138927689341586327437045630169412449436783354402738484046555031278469268854943914696427249818387894845718781826850837766869715103279759492212547936630106135356914565011981766272546015756324626093686856836672163885195228497399311418660504494487625619160488494969925669779709059324516090743377144223455893911964440552532279213758625339562263013299630583249978225093861040969104795596305451804807364521140719164346730173938665081720378265156682804998615043654753978912346965258150346816127867992016988825238210401200112884862500574476484455234498192128324810356904839044647932068314097206888333897766757840219851076209435503091198163341796490410788270728475468496746869874756179506364967195426866697280292489283926607626358055754532662873993119044713582618211245174860776896098045714010413628246057187052559298237099917918313801793288236216825400404274280147982949427607083704848076215370294434224410088624633422013868584944327936117580524996721625391238408980254408093524593471122255102847944161855807455464755132452054479059910533078725433766771636817806703786232257915609787813445688001210757740127873428019864824540155723288934655510583646066178876812874665516027257527388964713303071506225828528150316274749985416933120369471725572229120867301915234588875707366326679404651055717516532857252543268973558071853837578985496585660233291315857245386515392958337836593200647231608362389180565159482240925715329800832675426992754569899063535893412678501388792944863435266483589327251756538264333176199168226121313226762137379001363680640708863253997390222163497158770632445260917681584010387685201264648622649341428195518027720193185707108740350555455184083965744661651844657163296886540164169951933545956741716824669699380395086378835759919142627737537187457083198184609969745654831191749706229626414509256436818054667900290474274217100812161815838306847753991328620703779755068866600264112744711121470245854984626677434793495177979573027430757865695468892346667795662524354344681363034065279694051285970915923257009651463174300018713812923843317424871136261192489658033834699673197363927724138724255267600156737563843902380997598679729201194908024952567697486229557674801795500364634293423092784850311160827625330142809990825059710746390655191179789118628826904597081990520665330828888202893708348659264576106910352432372592020510281277552382146019604828888395043674251034199135751627056626136439383712848426948572197378218576233979794107990979793305515434136448303949937464629599227216723368614432793056608730604372451281097102643571802606753422572352661733546706294333041571000502760211064522962682258799793746764090199007851756652894188794349123665989267597917935456013892611971151396980339729795636141032208458423772055535975142124200523461970837871858404457204742991850342570776715576926469857234060597447479220951242984890849286053024033204698600712718982064135676993498080897410716967829086804167451108000115862644802739562843230403262845994820153734157051619275405904519122851318110251150666598611880286480939694688743913672089204321320694620629129480646570885768911622077610574580602293003053922534035249290284167133332374741704826210306473625569682550071183738145402430919241862437141787095302967333519092612632259252235582456935535518245568885709095640111441304299101653939503514509563999369225514605616785797489501566635259785342614166721318377936914364309989874021667110851189752676864969989128354835922433639697004789627714504683737612868624595508258608649117064391804849062511906400182435843139580973594635912468132855691332083224620492372399036422512320487205523270099661283232980711525174785842398583208906169685375351410369130685306041988247266146880232949795893259246643527546259995859924523810660937030234921535547414812007183442050966338023445651985926269547433895740063817842353288064051119776502789242003855204635013151096532554940150892292342111945600280499640395102170857649818065802980488335345506352615913867372048207566727629030208636647547927759073588243641056981165136092163330010145780326934281283936705749779011003077782119284399594234185418987509355637000411516039385311702849356751134532739588283529406629583916143399191555346769945851624727883841913156369808520999674374629883405116841253560208093829897906652451610616890162952324034517133579379564187116572244694941732899874901626310341363426632072857406178363905161742750764001847367614046495143830911608089346788997036319489883435049049220677433609910059758744102549958648734717979014400115679641559213512186357569433070818670899961381423766272164862624620068218684581035108231033492711975915014244846200701004330408165266014065289797128053632093736880711320845844523440133072564482847776856816402353646764594777657006391944858965113236804663778170713540745890795290979376763540274333423864722848672042815776695359023600571440227792538321309873572602029662145089428382206502287793833068341637320054076031573718707365273569463665216258299378335569349864580646190324864832173509428260417128179543759611525615233434193688383649137649171901979670127858207382204443710750163996582070553240460265650756608574646997815765959465320300453555768850088259115432213103565267475087032726176267139415609782055927034168201516475294047573422709093431580767382157232958554336732906410165706445598183251026749328800306608521490534839020975748788664673778600893994043316242948529134394967157568820985958644990973612483751372937847654099017258188083758048486298993008572451513959549111841406979747066189627023465486982779186779349047721760468809716235087592959801154992197950409419187376948803118183557676283336972516962223898061997002571993577618078484815970622000664349753696833216543700578495568926373511301904826292708675015183606609180929968916946109266677004102117271137569139203629010603237899326423699071914973501109658533856648607932526924773338788005953318144282561285681186684671804911850054949364157017385402154111232270357906482174366957516544688758028323402298739176207456931895798800883508001629535127776520228823352515855163216001195728259051512880486187704723145351405807508051066185217726128985881113696747937033711057069832786044009626065060472484625416287635606835204147988216914848360572830488488137919353950628252594906222192219597543333232680421307871707250987122840479583717560923758373709089914704429486604563833681392828476678969598743723403926858126020499407296254200559591066464813213526770447467091890915922922209716011187857869086681409073176024221773666513988554765810712873594634544375036249522383985982390408600324056115641718196803694213619763937267474434241246827323967478665062572119198477045143066060674705334605870206864717109520022999929560335577087488227039359295304332829421815924587776441105626878635185742140894168250717039306799792474311755034264966836679489243587264454286259714253804525344556019118350273154766560070294317490906578296676096495288179022988037921718655053034483718961973577014095750020567069005230048940821871198106273279379210283188826569165530859291834436486441020815423775222830527780155846495940729829033395315265989806220639064806045183328318943399943230645259596345055054098808857619495496180379649902665159874691475076813250931659179086672769037926271928757203500297131435218627417591348815408762918047825584519171156594331041090141279463875807386269264447290204825211742895863998263793782231466568528545945663477622473086763227420158151483089881279975611487818436426920338472891542064145036415408101226223119987296094646226403313720360949331773216598336672016240994571253213591411736965739803484652063295431482334027758826634618679884312673827321891491995360179706777775345054511656253845365297016605510230233799754951010848222221919024167668014991881822405510424264720739386311353359787324228932532891747678509489967280086477338748270384982467873630531102748525009398572676165135008325945756881301805113333300514014124553844141937345280695304211150516564293361541910778191058726268638040485653432912752596338706341752640157501435578292778929531695253161036035226968950835418585477578621530878278222315625646356385533392801495008950243503686343574080001957601332188265763851190206458056238437108277728128678546428403892361667405820411433219983545228268141667528395645289571603774719023257776257433050666532652629917937464042528294278820547388513605994400057006955871259698119282619242835013942955908508106116550809108649479369834346795745316205321051566283098192395471669082940212961387225843517825207206532665564313455531579600640411889190127825810621666593451002344570762263675832932807150552136373108683444716213444859933937352433277328255756277900890952404424963090940673282780242311383266890734984074964997282491276129452146290978878174116609832124380840482756779157266293241943635138518219522418438742579643322651422439068818872378695209373317465783577203501054092403049984111448011197705067683974894477810932280969967475762273839268424466189967278070314080796985745936656441124622128839381343467715789352382017398729456336806722257759639040798419742009962023532399597844605904085832212433945419185823404862303671954946244552501384193672885160417441519488061533647228268444074892826218530938941459083202089702404997843254171540631433343222214860953548498351299833708250366703669222412584329104037668237963815291829319524515855884924245802434218623779311754503472937550698125452693863169075715461790460689723395179199054695042787949978253504016013923560817181230695736849479303367116145316756842780135488422370080547696252203672421499221358932356252925687238607386175025326346431505605012888228900033263166068591852301030786202223441691142179305718252538860521669698493038162396347938648691165055232291859261419982813323339310602436143376364993541725593544534576938357981753344390298994173357627516056796655187306645535468685802114117667353411146883612359886515733955949451052557680791595301957603847982138908174993810533030415685995570595262195337834391826096138145795534036052170043386426689650137826150748294170317104768360793858502210072140670408042437417472216327533836663957596915920073137242356805824896587029625782627661526873914494987098618642048835042057637584499810628543564969292153946213060613730055473872933383798116826050916400484692169706655827382249399914224096531237211971993039336074569085885115669805966613587351467176771636757754232677788794337827249925809146651807634925035836920571476926364104738909727349875175830790198552006275391468619498292292117889095862224186779978052469468990931474973286323780322827111804124966988464527414354316538044774749473426980765388577494801988467080886919169570522426779867155614635752507183140754610039999401299053042801418464958541178021414199939975769623137452692377779800736126960397659064838518244924141541360629804924774874888953855326756316678529736433980042859261247133628003824177537292536968143055277403361433453561130074744312583316080571533908495609506691466726542204234900714563070260856455613974754433852190192395751323383921151715481242525857586395089395605088423630501998626953517290162901453387051913920866326942942497028160398011322466758623633892170508470809333920620799606712361386073245487396403150207971753665669014465242660057711416809104421420542965873439286897010837563875918708753920782587187230090068202721060481448688982598840423178185554070569397767379975959906325897506746147949350770658479957734991622062900961083476759055758723006875046084410793010004402202930931009636593767616557673405320967447332730666018266553285347720233770370875487805271081280723839654925043591417632202005422519701492276346609055715851462299013518638659953902364900897595704040656261233326174025893499827862161896565992022087673207692856808742374962666307089350343446131791286971008810312989362659867472309457351986876884290969680502072196619403925949720778890598828080177282059318972412149425213653371741369918682558617209246266793177964463431823059005762811693775011191638773767144207011438733477286571332317865176986843683506387513530862979932521238785287972141762718718436289699398319703634605594342791951988455387312072307279069061441137812590085366810512915047454947220022240168162162271452007378222651788973546007585668195799898354426624744146972562150041448636106815227321049547214423898574079514078954488220153262732851816172937445314476706943436275389449797292127079211690145688442182398396839333502590482880841578536147151741359229599673180309928147372717457287147540222050267335870468378464551479269536749308211325643991315580007151656126392408113557851784674278701101818792868069209774584246588425843376099762474459518338386627476487970138738277693701336898049443604715489174854613527602708061251483537740813773122233857249777819691718896999659392529458432770213255189755938636460174113745278060221516525850559231248577392363291228242697243719333973831571035499442529971609549990985997351611500034753854379003304960361875716401096826962105713290018462054923365317803734493891342856938044806089841330237426866948856396932575340384663024888407509357114460167073153045066187073726797097075786102009650324588775347738584511365682151546212186535410265548353972102537601411008575273286077983612445373137276739577688358925288384300737059179139696027945768137574098197440205822102307587406571644620337390615799516262846765132331436275966448177612704517315393777438108873231892039617342359853954155716493070112377617988014646077275237480226611673907276054265128389213072639537479642501816177894567620546645346908235698571390357707146881548919089891182797091087565280208925605744498311812082952321989083540927619988711811434055444045374639856902752927922946263924720468224701381067686944313209182737806192640837256488085360573319062706689612061223567224781117457433849575696626720897577235672404752047554127886500850793831121550671756859920245219480647659398026105710419329172396629785044985651233728823470067411246283062108461708198742239536779747021123610369873941800699006304158774038304612577787592176600720534708320978770353227251865940153669795438278090003899609539227421367566247843797920273887085075169467363649861693066894044215817119628224703217490606766361477476955088244349687106763102226573593667823854974057052118250392727653206720343037836820688157019702392858748972520129770454776807444798054223517352519178041587065043123521301643221407750018370218442050653214226750287841534533368434685416881801166334088697730913632432559914348671569940361300947376262096602685123081667277593138754857207482089251549444846583451099366481721251270108860882282334481070777945169438084917588196797057343822885663209742979048425400266585631853775396970397852268735507561994792498008787720622839471381662506605222538650211729204299811478492080181482044304994652943260329326217496910520132271336349041276099454063223998414703823141452680238856596618824386509045580948687194032771837551745990875844580758517264133725505673248344410056289280326570324560574696804144074467849472196480850142096196387832028696451476830756191911530427116189511264197613671574041014520428617160623294718325869744382507333810059938403948723501949290001937793129205964542794832037299378270896026357017638604448451552654483001924608006474738811266208519626318591226121482452557475454719547724282644499375239926200678189841946541426345066292979501146109909846364303353586362654717429528666007428911450475374450504998766248244569323739255519408909995775038364601511990585625891795842901968716220784836467686599602922510243928762207773007963013959793530813770056657432947765747286406717546785713475244773826887829753994958615089916884644016915256945434881522905605104800811706944259108634964313689311121654197949653152119914363532942250332123635362325786029428190115808728404644050869427285483601783870902984034203655252233574190958061903589798367522277651376584781897415595452734681178352945886078351084881366749439510136591218734454149178587105638133044836415289165281082786597955472730432377755431283159358627698200239741423978402407251917263280125419452708234936442142699309506073221795785931268245424491948783103892501277410558619012467641222169728914816673485171004976760277904993550510091216499577467914082693980279120669242901825877512614131491743276877664571551439548549711960906804071947144021650955620766601721743193588015773747760856934546459415383046402898270359303843762968129340654140316177537176325301688592060426953585358325021279018722692258154900609171647700875303819162036236596765590010999655883467736860853571753307380190809701221884964791122943822946929280211919687694586744462100513354574293218063675263576541326572686858351244227395704114716380134562489750855345306707606578884432817086618333083214192999367372882683370209690324509130140331683379930269550123393403270024079456933932027178348800660814531267680770195476103414109645762707100302975320159160354021322605710299874951675741216984530458963619141139155205330034899702572686085702501099904675596553793176430220719899917914792231088414902181987539314994794753740447468868637939223147050658359456831426723304207442308473266494106276052384110247427881552002053488413396244564727412846603768935200627928622533857320853019795235091518360740475561211120948521027748899990561679906454435681168774311340156736879790281634002194827686992997356604777108587757159419238954503502709642052907362580280923337722062821650297897149057586348757819402875778179262822231143685931216428752964588070734028456701332467017973880389927068158235048299659228984080016171473108624101479691725965442986276721534318989956118840216701389355689295443448581129137802615644786665123573691871295132027037889119944603302015669843255193811901036246236434196917529301422430504504021702203028499694395947626639654178080814212904680698406687507233877143225342702117698293902435498624618013445434536999511361645926123103525275910165978584877914066000598314675629910044664212458656312413503493107558134762456796239723654719431621596467260507880853047859526137549738560158776793795567624474227753606970364078858830422290771297326608442126831367382044578647393146602186195507925880209726265622185298145198738269215224974353157886106716004263698745200096581667555152521282956783019192729457043673501160623100167262769133567649822626087245754224344917204963740257361540066196818159684302736187783414384243443035618513223451999162113264099324448534322342246434450155985762834326524699057762864673156921350371692017904649328667260710733031059896575901858620024088740346070027416933298533136645707219054384868771341974028019073503903008907601545034937785251215273035332532796992128920010358087797182959817595306293566584831452924133834990711271464159960892987182284946437924644404909222480894774715073958358075410348118007288427657824523485892743034499621201793158876864807026859920399204182569620233385934507402015172262585686364294933199201217343780898207246583334818265558033039895579640657870381618027533917319311981904710128444739425008920487850304069655418819649625636165381524595559346335701641128561360807649259249753618752359637122106754579305348148718337841356166115580045928485151366920810499112127149357028973665635792632930469122654951937847588514987438957717302810717069292650763995845325217422022621351652165801497691858420498317778618090402092712932483803714369097398126983804052479132310022423507483792426764082873037601920774561215312346835200944765914165146368892801135617569683084479600957214758467367235961184880943651969925609403624995370411041813430895084708204346974652634453323416980921137367563832013937836850707753842606939057211657561457243497182333206611706883464989737339296090935050604448802800254014128876212177390758757607628216390817387062170931197962122170871542577461794813570594059283158705239424711663974171411054855491244529180541601828171396919558333862315011765811136056351788746377988304920140769952873886585365378096174468373891074767065459702875039278182937994100904947028103388653139606400333051288473250065987573997499086148688902331384895225882210034217472712530638259747055400522717092905737971889167107679221240360256756909152713088459394187566554053039312445530464293134679723329052482988809617722004372315063699699993966358085959057294128616478983713827563856301782709357809308047373524658102013437509995388759839282929370237611017852180465075212100901703166290945230978300063111810760215776621066622016100445557207563357758853008490883746290204887023404468588466097077663809634191175634070249622962931774449573943043051508768124460788432803187559826315776334752161304334131154115689298430577943154840461248645246213421528518134890396176954644063750147337295252200401327049568880695136258225947512408737616555234455068511728729666660222849751194037274863559382955763958103653255527604140543673317017055291232915285529347586470688443952832919433171461254152628578812632599401497945265556788054278908566669418857179874189471127572300232566464829365852435896680150080646003336554677003074191427881278265964980670484246460111801071723278769904814065933225231426118944728397369154531660199083592640972629523887188850292443176016939753399744168249489332902002234120298433945541069708477337995135305341703597265025596074029554609201047474064078519780850376976460809502996934908754819518669364927989182719306803324573220599550731689019618222777957591455914521543959462248127341526937433032480253519427621562128430186764908135396785094759115951793810191048722556581816183240134944106213794224021789719676544787685504148038909128874748278506252981613475988414231003018067121310341646127213600165495734992147940909926568977583786182983437290005329680065702274627680952918416229112571025514406144599638934145583872390183125114295885710912333767352666427229386326241735207638251655409370973759075505665855249362049141388684714448973324763556901835432400411359807320397476944147400317672896743634753278154021275664027069782696854660359875620926824262537693687653062679060276173177547729358401762210327483566535969646190962988625450823085908400360304220194943900640139000717952100061679152911319947663703331370159716704346091419951210661332578657473956376416569737140535921432980862788396664482213635388742663679433857979929392659512176265690274371766463468077441940357896530505732185457885065312510964340699272072166824606208158580487044493500705209708790098215173182501560056995253648735699932519783019851750519110530713483513205750423700422927104410100608357171104874906319840419808826932259873913029965546309671386554410891305291215676274772131207501683712376043611311803406508767810585485499413279592795904282078691086539466296918463286156884488478621148467630064833435704835656326683897335584852800116720705981203123582545669573352705278773300165454096216947255662182040258506693028727683526677989792634521300047609879420480244402623034108654858427435977738540235174821994417420035973837223146510217275877330415110007666817444840401826807520149136387225251795625480994959471260383299778568741180478838484177612164563864612365474404947307993104631875524191478130880672449946961191630733442794884434984496930012185675070066381048040017177490252359645390280931180790554041850226660531565839223409193256189736952449338193281023163287483996629698204610694924727341268148438398574444697334842586291328277547148605055219010684055370830994697384938171733073398055530118943642531330032714483847485087734391780633447377555192876232579522298860830568125697728693745521782467744940856189415380867422503981484144617332906280353514720836166552446571000831132059455286750743195582176565831510430936433773697721649782272184975670083070807638010829693365243709491798891317140306662620224300350365232160788893646388663445121612973062821770642935372597560564335311154671057151828956881281087310098864063307997222623321487341556678244371981535627596797834369069786405454739036239007819311924287117692252195650329858911805966348506960058719334209346644127144367564351139882895334094888299281095641460721395745834984373607511725937422890468615736787161096060229661820363039061695913338792543916343764643900504929401885050334170663007960479122295511683777601587013956490282270225236380805890392425640909379608091979984490391012327233443465456285764606442810228312389787331082112667924703640402440077678585408526435480988584406182269141679126900109515027613302112284244246559718952377822206919286339378859104722401302080462415471092785977864137870121687465728991443029255630906955621066600759160700471817737824017781146473382293885730482463940696491390412050443886353562838170851702700294283631720219815694738421457055434449173824945019523561927449241137477935218620253985155807856723312811688497235816135122742501094746056274495784605984361546314866979554666109641785537084083422194822188943809369547322245071134151922993224920222141480843149450063875365272496432073712337320598362026245683991436080242163449870905034618798726385252931300597279819860432784737521651572634436166835597193574355671299757235375788708747981017851507837916013266247599027492280504765058538210482051581093446373722798272592491783983678757470845755461055593817815027845278258959531456020148722167833668244793989773749488582118397443350520941880145378169781227924331921481210035188754245446069899154513618633370785126838835930616521742335255027739519077516699107296827515698955045489980718503586797394759369008079326515479488732115956083462652624759781549338771466231164013288287157658690585672756758824966250208228518043856212465848925731813961337974447030762541266700926604932914080770350552757933886150008123283207763150744693357606551930192490769452852063547183719714823194412090044705560711063666551766360643798375836833957793712164035920456683319361984712584878981888037441204952096740328206488134051271375411910385592980646725822471353292082820081615684924511240902423249698531703339303785831509691063607718350550967345575796857168702648556789373144954569306247732966343363557396151732197261591587493902468710525193215826448548056594519759290434010584342223728596186120090198037466189509300351091512725158051203070317157714190331499071159469058863145350240543113286250759233827250797226649518349603959261781595572626143694813105217240022278408287236432537010040236589443249883473077337706342069676399976325311662727357853195141404372304199178411438148273548999550053141239186026156634484535131091631813477811092631958404424194482212043905135031694216838662057265339590408667362586395287265555180504435555960373231660474715206512490079479760898797214486686355346060870386929828902543521961195277925438944389255475852777969002722546276776039167758734246836181756496997987173409732561775120787733702737302065660613639406118220735902788751834937946322837736397980787866197998982118878750958134344200945841771537635424289889183477002635154964901299906420536984610903100942971307305684795128177736193277791064724870407041761493753671135125879670026502332312019412629804656200986683441587327711206161404157713597121832779981398313483553383305657978605432275654232351623983734936819501237892003336297900741332425430864824394042014368117305330423804754083290367148871894072568891641987134832625850604613958815490791579847749334872900570944842101453935570066712311385162307795556443043863018590739281295557343548028299675546231442383458936038849931624281590674502700585657452992154856968794677391130626002659980454056623618659369414290419172817798116951822962882844819014398834660910937956755146234447491039834149956339537833623134886408089141658719810150633129495271072298550631670545513929552188551208398299972374716414035921581535672396173004938947022490023671216355190947432968470708716685227960360478333121764714816805567754083158630285515439121402417012680794663789533503641707312257915275390462228872571218360734590455692801155078076528585430628734936259086797768294901587038377697473002520695825342846127388509134112973872912228634931251459877421862571254983888548346153489836230783087180902274976598084413909781670073284546842437627866675385276271488836715943202417494316825810044541942459168003298591400703229925504611547160795176389736890914956645950946051588359436976837544338670359299464643070506748718720789564246408107685763444506488403112565467604672424945323954437763725679767820710432756774590842925540079509955832574085855802171118594133563806251088864107958957123933210030547575954976903345413380903833983568255863312159258720192968582383889620928739950705819041202846806040059830173487750160503160597114184335435604311241598873515653034059965599824369400504727331873897190683823298195218230587062421729658668121528134956601915793337700919414869988884610161555424924464218713484304166943081817987651128875125540691025694553245294564447655799897693366994851254340328868020841531827484949938424659302364031753800356839416164376725348340130241866109358920501551540754433543235042816500778259782657031607595279571841830981051482306613960218461349068362670190514200004706807192832177956788999531852114946749765811637381466062290781279681014043040191959793786979276429473553978134215913556007606847164818775500327325517363163623552401446763128647483881967479646292420814308223205729775937743540830032927118891500743364392779610917730453774880529559505335632153603058041323170803372335638670050110284027138915691420033563165373776394171115265556054219301875540092435693589815472868239997486287122849365108637503713722453491362523552796411045140289926925896582247495904130887657718682895090483454182460323816135608243049117565138194544602521475186169635509560836151051695099693337938340997926182592856240340798608654900138225965558286959443454539918900562467351125059526376332851437464758929825581503839294917111481442722330622522327983410273357727524272596569586569432462911682153368020289988586329196416653745667806603468860370226198462240437174390346971917273376683598823906058810436347855815709657293937850009524127012131457543905449293753832884873505917018392747256528058863755978565655562597118310505115534868259942687953364551738368419377263693534752288505795104710837098243104041887345058878502623437630466770010299210111130122893043136587547959760751044422641983001852211357713511653951308674800590099776527458242571543483859858525734616711978026921505035243724035669336520119079867517575382825667312372285280567635289209065826343073882327722995527678928194815499161164578763205390071877543127479775567993440578378043592050074149168436398583130389332473798235003442044940354921374307096375576264216336826599910933593051395525931829138018711883838072014398258682396600588625934204810463503250361364133133538149448205308331779086761330966338615572923819084786604431354707343104471346649037642109973253432163809813577206348326248963928804422120890739953104327962844559370204579664869017922285693792903347921791650000410041153888934475305457180497180231456406697777811827563514920566714528659566172380468761846489004937771950686517461344492489771964418179808360553861460499604009960110440157723953684199375345977975044408268157926981782087659914306441253515990064733469876055720137265348870576595558742479860451268564170288938352316313548886433314520581095445768878784787200075345197874768655096294637703285367656502230197879183869994949569484532169837183785519363795268668318190296148086690111288057741228591160031043722914409515180618233129617031381614687024734243235103525894520653789594223575705213800168580903424786133895660298356983217768633235173605030603262154768846490311029919537180319776638401040145106036562476684495911490669648066574868651954556620215831738967682922322678548138116003608172559095316542996427512784210476267301718068721210992947610947331271331295582477052201541504578824141498733045733832039694229362283894885032178206122117920813728587606298272307453476888516212251302794802621012157039203040395325304288935620880549207640819686078666452388092323969355208542298540911537114234936987433243912258038734355493697800504484702385638580786740614187171535563533271674617103524295400526490757604525485385315170030289981089586245651037997080802506019567115738826260659699829833343550397981746929446869028516577123240778042677830932202421503544693469114149679207521593477848179190923612383131953298136851430378264960480302455766459326692230333630872766829926023379046659868295365326400170101063946654964218541215737086771555830813749936227587754970059352451032222919969580679017270005120116482121224758506991150127934657110748580122931817999222088424324193332369523253759558494183393246004763040050798750491130618265514713979594336791013981617088943687722342477544968322666725818430704890857676423237547330688685976710021668955128551599990757997375124325311680008410034711819804751165146910751637211094958041527499448532338481528226850349008991801747712942281172340797004675899506893586332657222774318597064256441377389836023803084881341587568173723380854682517534716669756969118372604789557253485227212215181776988461915373928748689925667389168230099844869784402245155251767474785786752129320191651575572804409442077674922782017660318168743803436122003428261776578561170372112460467734854684958456456892701068025798383442961594646753589561271189797959074692224191853201794726871929866192937689308638863660232151382325167000936677499332246939585013238861207282510995390140989894090750496770414210286445759521025355008262930861751049629716852737696117570728041066128171435966595315308901288190259932458882614712401760935434939479875195305920682786109733641313108690213639056501482044266853682446999041801557947046566253405470386511637881248152605776612723290938143916997221083699987633209899654963277325715090315188426464304156175795358307814017459244571775069926920987536931910721359402044473305895697962229146753188197855862716782261358856297175432094605725849855866868712039730951652523855903175036556786565572611142615643505307438432746609253718839852611651760774486533961859175616439373854700618473732559433413411319659483211322708081146137690933078275401988465546146263584538729773805931686348117782986140808099668259090153319367243912945743310873065443480811643303061424478089888371787789523498276485051820754497491196135311652995669094346530759525807501161621850239958753578347746815722363771160557373396022513582152814198255947918700376239491197784618758009987764597993987074813797304654479094296628561966912794002393742599007648576689281128876005153172424924182895041553712806082058568878250160285136857524565124528489235431848463679890278674660629264237849921400262465060546912822792487202466922591619116187902304546040046114250927011070069692019690244747693320784586353121726039522990643195130795428609981711896175989022889372805127675273476884708287633515504267491255163636849738808391983553272515609121361037760642249381869084954222674697572513040324252203630287160088865496359680751430635618264836614117658858193691782336134279428619226869536559961288336075295571845871379923663312131832305634875811102627272132008299009182953647189012169925282814336270101671571889008509274498141361037290462294791888117423827269680975851029036513835965397591947470959974212374550130468116676220531703881636503635817427512908580517004506504751734186170893800850841467590031218112294351335242091476541503884802031542927175385385573695345445619857672153617404082748601658728702936030142510957892981502653135329399223323045958846743650525899067824168758308617900841829346627517552502642222398211853667214124510306424788735911062650699349692807103970749420838915736446628038997194545796717765722900653268370616263664074519518145410363275625566832878607167385952766599562501193562499991664640753716292259750097979687821190970544534669785051269568692338892743646878416010237634957139508668210388161253738940080872192262385420309449603989718274214511797555959405847393422152788512814847325051821508165175503819348269104333887645698103594499122383960091266937489944166815115420362512331072752401689212532433690200358041817217581357378660841194061841993375726914525298048646621210207513097019699954889045678269865619408273100548482987203849587893826084395964857057666612877692524773163472375938312778331511467793689802141766809681763822249030724766587830262870001218470787467250967482077789584448023055926617259295657439361826216430781711497517201058711817411595024476690606419639992357836717165613175774219123396370592403048611636270601587319313865749082758476316563005900360072669707431596307051428893843827795657097048304820460410077640617481425883637920414142259698080536566497915269380731938744761866904657078934494642307492161116308410265331956902065461788913414062011647194088829178967443638094870007731316278623515366902045625037773277957174326980139398012938163309724343957342554685472796278985684171020136037032980355540677786624405801321878218387812384527924304445456020794980219941266070958617022253417444500510241645120689719553550800209275878290978551055837919772126838825556265214708582821968582729801692433218878306859476031114854201747019704203525676716602869897482625439884450756615879993668882414822195066610588715198102104851685466430947931394989534497570252636073735654027275147275464540525928950858465111607809780207533476416926611130570765616421048414026004461394292832551847879745354787563406526262812860062478245450961814067066426201166144039605696488433481855820662582884643783269091930813341924635106039378254817869792589714169955049192826729891169257028892338443474833470737957868790482325674071617625037376735091420853138654839623823275855914752860296733555871632806333630042535074976339470383993417524878895064059919080105554083950416692100930702206549477238591719650686801162811041540401992842055719225990483279765313001337484372015649274252584198778941292300712252546365084040107835762972112307008273342075960701126245263443437570144103235142914878328046196255022498843213820288029549759862252201597352084538220930156553534131173017720117832415983817841993204243536360557706895412415669308351481913015782194089921916534090632626628807806349614782643083211398824570409411384813002857125293674259038732645302738571601360893606201036419643182554141286838744999316524239447040857391797817611611727589715981896772825116492675370436444129211811246720444206527388978964367008149470746728368092841826757716854234109315696484114484663903508562246876273654961050001960553990017360911748012536313772861968735990067887082895268399226523129804951603435009032508488034904424934565499961832829827528320630451058482192114325577004609532984733382911056883751648044204113123172460331652865053569019590069621026481674609201761664379756014293905983180421660753546817074112800577006303672042872930757496076658107079312824887788877963750385682642870465772702800980350358565966113631185905935230499313436178351146985550339129345881207098722780909848282908827775263616975727149554665272118437141806690110972030740969377881892870124424937616656147235834414123052959515375980814113034050308731517822422397868701527504812054697408796357464814558053645436746899381363947064992533608284344501542411016285253150394335338140972466213771621557068263152494696964684608114333185808931761246209683307590584879123568482457428229248754886262185488136677065062441793119276009216106783516077912094409299509937457046052443046177120725694240958652698663357412082449464564841510519618366161982972433320579697578048041486303944704481804395172050904329956758503547653293800012105405069153560910406489390245858701330347549585116447114892501758633252923563425335325896383967985751541329346776430997327209416917298793628686823023822523791316208008799516249507757606433464796711273595808408698076379727541350019859616249912710382353069991232265324531354114693107106640879406524676458110255779891197534504655486356570995545285051855182628253509997829527495438416366624705420040168715544152084820687784867562747703441298650764406713417293290654780039182083723570325025656786057445305495294953408321543058690490461375361147016263725574725123689396800378524367683403015040609442966417520735110700286222555506818467145220380334134560987214875902123012112588624758294952646152321783528132526954051392312989232845576492108785993875407328598111472111976879650281103345793937812874532815245161156353601741082023372724006526258422599601969342941352807177540430579580415189338514982041794984499201254163816435443583209201146454442724854399940819562406028584742761414022615086991258984225827099722329736252512758289902435915279660737284765750006732329500061286768680847640001963348044975721004878442608522415980721010668531457314228088388952699009703146483998656824684346170491174832398561345957322503545549506669191199693987367171197617162170591983485089446598734598703762638880247335906715569851440501162424741390271094930484052825379617682783330221065580326540471640252239347603981467020338063666691334456425681272380625149296754416955992205626334836555290730103239471410919553067235918781989693013821284579928494181976930252269111219805381149667676765949645113081062763163221432166360301368242041860292497147752572584323323308196346856709684693159526223581547423792656544577462846401754759292317768423353115466771078006188275783244566675528718617852016377268352536991277253122878053233246472668383696208734162237521138167524430027229407943704374627319639980746186348496651401749391217558371923220540865174520656482071203421381717209386010575746372614922314687535104340685585285857447682113088709250777038119794964153830243077486378889366943246524054825759457312029576923002006881446534863322679234392847186740469169716376289263700646933512334585323273206810264054276869077196875577620748814745850333686537720883668123932510673631105328290698914601151008421371399085329110987995403974633804836078417426003630085753598608135497754012211817658773133605297461990240932938347468196212493369868969490883582863611124079877346794757748801512301153833724777840608202861299447202272271842422812487702542907322827406724304225240141188891166475193674170811018415606461909944421131022091783190903076149671089149661626598289825685320504643235359589099681504336760487774428657866391355082796125423146481139625785006488578577324523442543212903546196524615873956751380741253315868807283589874212818288829229035817264328719468221132041810045316588010337804688106681865250148840888718912824241564732842370433584912136012764429101441662662680559043101141338243956631069750168219469149726492184386961006571685130103090487928316329686794375061227010706227544200212199797646985363280103064958274925539700399384239417834007109635081523362689884051428820019368854561216012681176173537188096890426672234349872887336403338536499830535538940870972397889907327531270320934208709449465781726042077145195035057753983886180339493994887352796017190785497638437201374735933762786285972579983364593614639851811794284195043641966612244614738337466101422968690893299007105600393601349117170424525608931083920340292184802972579036147997215499672682302567438392751302389161682370039261526533780346582499372759485632682049624443320561000612866324348423787672481502360629450271758011172028498737891845855039827567444514298444021838000218584490815831816222304303158038436240026945575529010739200691436348879680668658013141039025946777319879739608875982949330559051200453485262563331910953737205700791551878035961061118017976919215003281026134730763013265539221286073311614788776449194801684980667427427417430483908336973529936427727467995732798708007234446885205819148266352795411414995041488767454929732562813513974403801187005944420327905619959905454450202473562720211205217738678250619019950713125867922541070954838469581030547082641349774073457601572299804113879418340863159651252547521861630904485767298688928182267413399628442231869407718846879429503425983218779722923255022850072623301866507378835572165567582856357247267070266648114736702823270645348887762914325309939670003273843819129631434581790346764858937796260206373366304897216878964816268314726656774398095612367426036447845025835083321769929038771326725989422938235932889575630371003506884253244149185133263622865620286988153261321217457718621228565692799479665023693300777262112289515583122534102895710474477514454876066751912834856451073717586492846844646644692465013781641667304162337017699876757270538236573294927699776873154987560788964407299128145770648205801574301774912879129752560266604243986038074011163041047051720313994088477563614089553246986952455442132760212112878558978552679760868954002825399584851362398026708942151574612023334192771133215644925451176274442698081778160763848509785349890252058176594003769596500768824683951455003119120686866750724365758720396681603206078879388309527829300495254755767020931152857433565120310884901351592808668950392130546240604185265337502197380801067339344022295403549558407904822005666768505686657422915321305072379578211689339768006801418198539027904448663760983688361191728724233020779140556301521382873998190315043742569316632652570848856433942749823007845460992343810134765464161822833827732678692652064491629608481353547439395798815568833472632010345459121563334032130451801639561134957627445401089365910211805010248459594217545274566192724603341300613407080364869796204161029971241119911265603926962481443412122532411726410616443387046127778840114139172834439841642899740182783268587944821359178325718329704889207827707480203849949541414409347669255948666887010188197349361980696887580393999438297538273012276636343730000916286695646469447063900538325055205661907643920830438339480978439361775777712168071508552686667446368664131422552008936883876077307467166158257874444877208813036440822172985052873628218482281422246836340560247582060658090218450128484794400425830193907255053623862233461606298368300616386976644131770003540483426450233111571963893438649922936308033922860058275747495454124416269432134147495602256742535976748391609217054681054388097196217999621209771354785025299318634348645133336817084797795698014950705357600016349093265424215182399868975138398382761934430249298329333187820075159033512159694952880914148050028745221396063374273296898719181279791661374562978561359610046978126945671751755155506038010623792661769894047959980011543343660095516069379797215655101983809353041844112391422844239600085851844319133311225748669005796270863899118670302741593672950605070091699790594384749515323271631741838985032126784941287678802034667286017817113209321857309641838395987175480620009192875306654195355616781104521618204444044911075692930648642820486033147857179500036685175072980229351752135490657366543338807626027683919674941615682862234132742947753768206590169620581630281882327256766315007791635142107938117076284421945657149628590805984519105253895518368222630754874824249562177577861632230536595696938413572615256551761170223216836985725673552823735292231174660175800675041574563802984061531243411024751966312322876096403754198316804591664494832181558237644615024399966929091043545688427531732920727138709760486380235499586007291611610834935058886350033085082580924022128205120761136995493035090540574681928966501813505913589843230533269116031630454454309660639525390730637683221406320890528515923824460815025465206691791223997977169619242645677970346634976045110743488284864496324177078130581907384147889152525002479085868449844508858935865039997459262318578104168127575837983111746263489221997372274391419988594060082855515228847696886515383790997430425936782404852708059608104019419491432269214773559431752151562817244493827593276037192257742555356069895981198420001120419163298535335173418693795080636648867054684604449547669807438729814732687070917377302876309975349902102251465157336055636552938284325021845503124362113396418013750465300153381946319837024686855443488303409978493048696032187383151955565500974075128224756584098510491827525256514477418951779340650135209210554643050870621313058335190410253587641010355373225199092219919761651100946609190808731669986763731134774759875258680686128014182198712998264173096360551822254237126336001674701372141915128257334087314836199873508570760727409907694057148593054696070279384877377787309756661034223400406980040421350013290736570249627104123493282116628142049161173933072689029531233449403089025502085328185742015613506570256909489297153816868781634493706924390509472482876317084875969997334948380135116617665152851795054412480645907828450993911749282606258197486093995493015097001706689536332650652523705676223574628426160201959498375252759888398139610704287424769451407328218935740674322593111681490680130782397090976235816861889856083499611348160067122606889178594727331142221122339596612171155266266405555536876234861317489998913258044271736810511103546627111802009171732708752229892539927670714918919548899886414811511657107859737512343408164538600608294391974532493321508640320533869218574032405633461206187324474788238597335585194785007008873435162339851218001766060584538188832584881208912975434366622894464562581546503922424866449534203584710638210343065664051407862586410904613246507883119605864403570514681334729130777092272037577218342689504305444332907254145615286023386570062890977357157991682435437152987537145087467077496428978575387128938780758150227866062314059145725203038048005086080000094626242084908728498580881192070653646681579267579718448920079071184700440187589969966456711173328358619770809236722650496817887071130720099311059392635857036983592862238613295195576580968426784387358730135277403620423589485832378103465042224634519470256804111041032591838605655128489984092036980624303248157738882283033461434551229552622528338935355118811889783232612816486059770190106325806287653714317707066332810024009406890863092389341496619893761956938106794893271882859483986762734595624742840900736933198955688037208199911261896645252478191969715898916499588221022858160507234763447517656356596672716108903974634437432396038513033572519501908023481747963053566535240238019782085581632028481581962686919027127457637262215240319934488385216937763755846426022082449965741671721497781369642344672011591028171180403225675041985816237746795741151183060226918123033015937032196827820213254314067600746322624599873076911095816433216471907816556085246064507668902334700938649067979658364612411570374001473193573619239020565841263051038486402971708908924362609210245129199357242342345786963986500111070571353451640819663167161083952312607458408451911648978929493262188051282235145458087899088883998358249950736399160977195609041843391148969476874845152377067473862818172867757862448518694882289319478478679995163329117962226651495649053907896377084968486074664871721329923937631549251704720487984308316706169392012669097758838358475922809967280970831123999767860825143414363880429703568343943064270002019497541423214401819882904451647404636024696434634901321866927716679989146388066320346094261361501500983313648505453446046309180131317879644549414610260332386765765367908185952279832943548480095199821925595829573360807881976083464587112970648446664539019224571864266656262621073407231892668994794085569465760705551034471712696863513522397092346330908254149226595799774813497741522513828371911711362386347983931072835544605128018723106406330195282389328701378505121344981760792498938401365141737948252437797872304576991258949886888554525952569653767682461721460085536614498605299804340915482257792694308929481445096637182517196515582674343612307433538042255129542669073869896842626852792707574613027217117619586481688333829311294855193020759070344178413863642904602618023918376612407696804914633478316791590242077537366648814185022454094073351963639112592152559210785227052195138553745078652491348077453103763058005972758844572318375642544510942850715927728599496747864583690839028580470773297426498367528927312900915651999816329795663803530339993945681382307278442613543562740197059113586839769492230334969942839974722451696952953840955528918537537489879940446958762174337278445971240474595700768458061970432901922257953940544809435977393301772452689014372934506727717391535098395407873862452081365813623538834545699058086738086272509676860322821452319363695520926535329809591910154680173934002970972254998178891581985533833045605453879319987025638643937611196812693254314950443555878063169120880050027184614343214301215556073067756859201016409967580986854960122180327113942375318007923034102628393565919633554965749454424252503660546168698100149836472535382113628694735391321056229161124397182451691398039196355252267933932262795074668453650137785545635659335073680094091571450920891512571330320429127612783189177841624796247364871767059142990503156305817876093326699647147404134740436672372337592117031388062467397293613158750615482442112566625546327268755635479690730014704236413199098999193332303076075091304802170852009645591623712038972138913122001733553948809110974818900036146467864202517051686779328611019649612930625874873254222889858592767456878548801375457012417522498797006202772899625290382232524891533530579074271191889014001350690424678145657051123261942286045501646646824455031414917976992898434684410702147127783810400457311696604817170703566771030934612426927172149586213158484621851122684465782786227344328498450925787662108501861459079747545368102932290179943974275262768391650012579479793909650743243383468208915516257635570696093636953113917237046118758979923555750600731954302700024028917791641595455934852850673751431591726601693944579438948431304521472615534655742663075536234179779400638830268566095217855619160662299588870638316940613060642905700372085360833853602941523603377154379937995163449265027837884309049796442713812226638501957699731026234896038842155455741452937741140240975367684932935975001837709861164121674961018861796595136404417589618887646345996785957312872352622861798275765132784258725401736015132215690385530005295387972287917043760194203797986077408353935450440530992210323276995310068163835737232946268850951686030809318636609694708392277641853980047033096377538631892009165259399916066555787576279450407368067619649833964160031076514889740262530557042654644111824993710694406218388056707509192516162904192905716905980808759108034290311326167164792423958647358938115213045893419828921915436771818516153224260176703219836451014621883358405461243591549129189032342960342662545556332176357971352066245513446682220846204580780939784895461681397371038938685365322232024815219339321531684412942533157451934547021096967973640751649235212387454928589454030020729951567361980392672591283850286704341770970313108694205878151913848601944763609184658643006435869249394428180657349889494180162399215312041847576863803658332079809685728930396275470226093659512689181853107485223640183427072169200668126160704669749055885788842624162200788248913225534869433683909355781622649372849027090950725327353831736207141671501490500782692889070127688777371363783643521828971164499986580095432069854068198844240015387213128643440249741687981410379782683523066013697864938542564899509376267845653566471925585506063921056215012522993302833708998982369386920910256403837930770886541677279790030320715479737554827071041905355861311383967726136230933804614663728288001659038714421437787947440953233063813907443148649987080327625020106544188228194833647093399695659963841306274726805172496376313314894065127333206072206573645610950176378056737529285756648709893942829509700622249018207832944745705123315151178940382191830643759036591269408217697705461174989103893549476705098389626899143663598520475490805651225902551763906166200572546744178672034176115510893404871327336182215004285367045188729754881295384674587450811431040949037722394267950864674937781266828802163774068759292314196824507408307651373969566605393501412210189888798064760217480834489631405336422828966380345224873018609015021917603532166549550252389051871853290950747109101206102603281736334946056507480547204545844446583504229351225419871876991330721218967528226061510901146731914281540290848733334559724080095387376028924935346896390439932087705353988885359628343798541503999677105009782827368340283461508818038000055774612092107851743093439834697228556168176001095716886476994207089415657901270427641884155420746144500335695248200767728473190837825853862983435464606568033005478583847984658117880057346057488646657071272747089681666161821992196565517349286487722284267739352540977230582533279117341243870016629141152455400403139143418981935416816122017578133076640691027993925644381526808932606972748868046072420645328580902554684165877338813441890451663489807115545074622053778456700879926864078710586440310287272883530654764573578671849166988378133344819644582218446269325324308903651386672696755738709263081060367942653402830507977441891358236762444230547136926158255624762691746675416303559028193574974827368634333760945415817114441588796979739949200651773079985232398260491445092131881956636089145185915619397842203460400128252024640458152191689136640718864653427708389017127382274432313437670298959441484627366929965638203271545610503059199441869592518834047314759417582792017995871105784533814022125642023948721519952088365044117432324647764673343558743815890759009647091973261363598253633503416788454814513940302190471495057000889289744797771865894501325223118166823980649616658427312274145252200677311643742934922214303575335933794216036400683617226252362501748454233980813868672665609292524127384385173661260481510446173568531225075449893854509170387592389263307099807142322522419443959636486531372460899266296864549344050720857446585545995618593770047485334017339662300950712938046690628635967072967843576495525587207968068791161929209833509018880061033857109759773996865452349163975747027438591030122793485081109292891555265874409387382774993291920076698798899467468584698139435103058374374145441864095832594633606539245561740188920775926444821098760022862982467857658016978518460472872616799238132043652710137189612861053960030922480815165039615005741684891076321785363583201866116838225823101541346458503854879214617447966474558160460814744918074599497375716370663201493464120786412847001651796708096945339569149660656679850984340488852518087838656608092722573363407962439533395085749514751986505577195488783971047430798103261454124299465697192678227597052585527034208246831863991987909115214735787227940845663721045226320002907729085343361974580702157654875126741470105310264402362026672414495659128041502388732357577572223455554380320354523885442943796318923762670950023751355912289703447667261532917166256603956829088562532840053745304704122482613447051057534354404811819614326856626660097272727966871849260143992444065284699127506721913306729397892472439210284526121809675754362787781666175711859096760200359028181626952626290535544819473232076102664878618434128998721142972649030708268630524098951233531345078121783211614844882925369194825983859728732084860041741273641285499865677088026161300118332720831308599745217252103134061589208038955551667431949716149146983006876768429135749039367432928468829219295535359210736466019486973113835553578438533737174450782436712788136181937792449174889363243398265431840896709749263629669379607846739982837647097428591315317711234873367411994761568355606735685280102191328184512522978890867186460876502787285183265785052529099085510028846866640605358549039078969981369825172750683747069738181251534631151933026787040617403524256868063837264330154681383523401933906962176554760633681258831801589650459436162671981555483108202415435728404745597265078075942272390368063345613661703934099402878105837029362788204545287657712228534903549983246187367969656473643466352495404523975338332660639679774560336479493495560154910000950534385549913847987924605227801772550317648005056097838086039683488209283351268846498079190971247529523845898833879411652912210294435013853923262237862000336722141947537214974905388487881590207810760948499516784331985840237105354444506263025743035005564792927124196797236315640108045454562257591272325989690547145045227731568376537741845173260973585862114139799308454304752190548274227931424727218852438730950151869092304274233356124395029545946488263045525915807965743932562012258576834856659219970883670777000666285993498161313599120283916284115733208131273704792095899583603021921380790838145035032250862135419407271220228462380072158599856576149538222062947342961933356627623378344814076456681090773931235439538402099032616421457866458265469732300418702558247091611014241051501325278169369276556219542587284469909937563477339531554907148555450086817188644862876570761872393636270940804001554049293623201944969546554997768256734410025143610491575590139963744252333454962470402738885575747456869757362701809015728531435447196786922245056642334542692976035471877175571598943294494811384341983885028750825102660142142054503043530717066425349008625429283118990230072811556022303531081764725064294957301142600281127595644022121041963919639833877264340458893188536099675081931362276725803827990858282837821675387794836871701327142370766611082705993669329691069461098022329034827494658299744205364024230075339541177195200708294575807256283187619104116158622549547098834156802699630352519285797923931320430420594982587212345516691299705233000962216350884171903639232012009173346897114148608019634742148008462091012209289263507332282287663040034228763820971271159817088396203842237777711193686492392306097503438938527325730346627624245777672006417168644384799282502991426316755026927318123432621714001000606626604759876287755065664525120280009973772217591166103326990261793347513284274139483946115053936213896317353837474713495871197435722842070408255048029299934882067095267222444282763204466812647447706328973291424805724862522191471717459760776182214893377882557413501465658947197406805235825221945271979023131223775257262107033561537079999806457707783411993030474588733985300627173639214293552434534579623322199158108739735233725430770274762349284587162406766668632994078195421124503082815336161038463495311926587936917512612314579199022209920835372881894397094256403250464282459010838821379465173596441221356243046360867710377910445440890364302356383735673383106494888766951483173243864561865935946079526366418739461916873131486917600691131178934817633601784694570585413993563971788564327785512562730796158913421992918255507082466166555795724293741626113596571191508497292594342281128549022232915147186178685856828630738248078621470776600154658600634379467566183691788632837289653102222973382105549423991847194782175945919295856309349759946362774867975668392118112506937120155541301633374079718829696219425566613989948832647434987144422414455114395200694475525763141758675061615648404367090950675521122788661296565934828790635992962407828133156847958127225263765031904305281855407368313170640755837243079549372465048123235879287678710849147320564910929990141289712709298031925463872865079129514735042587458596188304019512348643508710040868349338021728537036625824134946433396745736071972193527027812865577558694902565355741921633903096848698298752702793887251937316715491376528956653879063595893899250394482880091836210028121190831184380152515133639188346529988069657294056255836079776914100199344294558666123604321398511591319607874568011691827498257281087089492295210976328917081341614945904443410403021111650725664571772213750408510086651433101154072110298360433703528239520005158297434741918904084393774737986031490020644993204260949496345446888413321898730890183290487984783363577549710332489470641399989553454110004994619142544102631959912011336268944726653651859153897987120879412017534010937503232914218674976513775619099466971655439677044149978673773667168008708902081225617235987181938874406499275772738450377889733764232211163630467498904907490305553057986517948242996705237754559103723251566919944466190837750838942637885108269548931760908150493752300949180118449370560543358804096955628021602370073401525708951122647436413340297735050599898248575269160468325905356628821760211216544772638278919708236338131835690140917230981633636793834256523500800569783703326400794512868843210727312348571229986831638035213020701600203734174146468417867916941052142884518813078461573815672521000851191258562916262823940269917922357218672669096771233445968462114933245451374352620629206245566797959177665960219103764945900108174590917823899904527072569599808505438116064821890907623958851269825301944546176884679172148563455701733591064487784292908925580364459387037207932220774360771388427895801580328432654685823335788828242873555218106077805383892284146607740701531508485323062483442221595367188655105185587693301111265730711488999163416083104016760433243235438070521123903558047132170211794458174712448283566026690077496438274966853767151469677369171628467556603193404479076340181238891377013987580189849037280293159596421351336121039411477570049324081434579367637460120337233624927862956980129846073475168020842548394231220227240242996586176045833730674687938897410726641836839345092732406194139199259092856763179373231225612131679116684414100599584477963681601656602761286432294439863222954037540428888503273240788368481779788487008421966081878375161319372697165618914721927759537522870414966508748194966773680171764950441938415090916111501726270445588012418573144772643366113487062118269339144511717439574508472577231831436509302654380196276445780124556895012847447867463499566022856923577177280090917224681563639202195695393580152930199617466618502384948133937244387399595054868241362161541718257614441840394039475552789833765406578705707643375976321112873272617697322884566625768976823198123683468140240946355998435992468275983576521909967176512888872873827124547571537183255991364404600332921136685624210184404382206162464536701293074024207396245760943900092103525839433785441585580816928389145169579136587218041753238713755530426497134414391987857223442863366617387422871321999333214029616556232658075260223094319180153657345020986464047525664269835104631026026119749242969340558946546712684115481453683045213037304361124505824235330933695686214287569407795681529531662740111066749507386421674696060438877976161617398269839567573264798365359111699841756892188099216823623217104513073593477254503735305979793392538420083890661355451033639102531726825320539694594718674079235952511963347216613092442529796490669347788598488141258628386455483450279603903327438696223030694177749632735018438628196525638442269287408758566172413672171173731289651968307904203048900397774146186023981366753650387762606691994396099531370320036718354419176867418601720169047985131916544381980094677718974803992531554792580642567525274034869587771620537893574118226863905419014676955935277031303446769961969591938495585546056028706492570845533325954773259451598516653867308005848118959465249296162158881496022076826702609244101613495453422409481449698953598270266535379395422483721917290095120605924863465219794615424396400680822431491871517409225252303830702232929765981166728822352539861570014625229931409877119836858661117651216267395472948794231792030189168396514732212500420323999809724643694339256458522558455723419397992529233541375118004694900461864938468712155368819817298973207031771737762399136733597596615856706423385143970315051551514818016309206241671142021666674752798006975698271045577583771100489361269662150902643951775722145182853481158494168041001815186032570909116395715411054857771469141495896347235884542986099661828558820318096824432173027607076014540570652957015408124403142752905849116933622348269340290817187864251747573887297145882763327216012269136463664270506460008149006939897677435748963884956663580350604693684573059211380591130790629924880247653796242487259538481395851644780454247612616999340327897281678067445301015539722944495342273648614791346797964587684390383909685423829969068365666577580734632536784131787986531399841956649033361941546564413431105317948101354196446236162684958527381913354583964059623636528128339010503433413606289621657086073832258100598972223736748214809695009560726379013963669935134345507727777254968838665580469741034582681476040367680994145359781578441928768581451424529631457486674244451500537609892152030317906508149539933923069964204539454529828176769695855673162173747925657717208313307697719726584368134692453207759544028187590770990599629106507887863909862651137483906727926547481939659275339248591197595372536931019532888384940393934183172288435791491463933667720073053124735402107563688085402972916576395999285998329909418902447470273350971861284456880051229319538368644023327876245081514186277831794378007474739526853575126398269286400106345310454065452805820556233530374914556741803973391227653868953674228904606798346431575563577735122551109505348238099612537756535680051497205214130073078937080360484511990062490397142373603637991839230959062500206836904386097512338181406055741449349557022923449984603254681634212186793381968016982194793988063347663891177834660287695260915973636781726075076394586756224340285520819855676836882197373247098805110266126914510261277594750933910076444384532890367301856948938201556005584763777596216444351790705195539793324805247878532855101829020600307735991439644730017635902312442307253179867140097071832617124878137287655423544463618906577822126820326293195316274221722929384169947060322624404374646924225005475703380433236899598879884361283755829349316601550360112104664319254318702410138096774881001233942581166962850856421671449474514980357832774011714041817514495077456297379353193563739437751481907500875606495291786769912705260533145507803833359851604969317408351155864782261528391410343889442922721693634387989346228918700843116422302800078614760845662185016411699045636281316387530917904623763201040996250520300558716575203928058661921002709681288723289619164365158193387478810426047041323377329879839645057518738782078225879587225182903176720328211460328414169437984617770242156345761118868778214315281191439739350547936113393256336041193376279444522639768641418679724742348905495513524339634733305783413289956359074046715282279753762854838375382677873828086733182453153094121166524554195997992182839807798351498110060553061481252512778540387771684870439152041642319539832893272073629934054436484994722308044932484269820715899883732544122815175193557092987987834372865546077752251044883727839319247923364786140726376593585988422996171609712187857098431429602590982495913266921492002469145210913434315522693302388333723550880299213436433743526201881219702235862287331304993317712969632163049926521901887031757158044586310945255361601254836651174746814929544016236364347897217026455474676489245923573149809582194917793790766255197082262685080740715181996306262269884263995125428152305130893555532052526014557017706352954150337893620406621857064927290061744427595329738540835403582242079670293549614787114148113173266298908941695902729191332574077168616453768268158316509673006524668778722839273719942588208960807304430294990926669720001752660111020925783375704786183384752061933004584669355386502087853600056702086241069364601916749145403059548896321275860073167192424710324727331826879903821609223698985978193473230245846233333297485138053347978313898036387633204508870209711323773169159395084905360530254648088769974604884905889782645485533511821180248776804180494874279096731884811217161247246528897808622611026308387595143992336987866720371974592824224830322372575506012545046482964541338618868443880718690308291402805538999803854809278963937313091092577500450778284703080846177511402946536580000062775086022514572848364674083983466313219878823113792353117850247296858462614354403370455021852941838539071735432346385374104596068560720639032541432801874514263959899716501731650217442194877986304810775806502779833770551991743380483708340140336346728968618386996552528705547237502163790545671632482291888231254611890957798689904900761747354795787171053249805488031390291522227498327439304482124289839333680526187802877078718857712367593803616295488549791606318138847628620721528061398077910748943028023165237361391055103665077572396871222984486321919296807237290080179237659300423979154125714345844412697651185062569868118445752717012699796854785731192025884567337455196607961778778316008288260591816937829420635348977903539342290098859383002800796314833135827517836542285647917496692580609346172473127200938406392000865676539228618067819531852917741338051940318987320969278643973316571751339122330017721162360997807728801433378236662179788234463060400943850766308357295630863661017153680491621807324563673110855975598085553231278557808046189487125151545539892416750699585948336023921729049090991541194075697712765206066050492656004900657421326077517503095705238083588817502034449806023371953125526944805362633905762809104670481922304361520252518278083011318746096562173735464354802848755426641546361613214712687099221083630665604295484681256742303857706891107054771476575451160600752154494732060343533737517922815810999295349145438144871414943688078536143806456544239222826896731006540207532987824490496194744387981633396683131328056879375354859994845228854159764099010437839776535019436110798098028323453035440374883206855103717875707124955734846864171408804531064759842728121475589597200936080930586588102953006477742237430121978785435942599262139261435333864638745547505809651808695961326650393596567688319315548072267329301176579279196602901367639723458376609788909930630501698707591469574900825004633837709899057732130551972525105288903372443015060350811585912251920690096311095462975291162891091699782660226585464046476077053934821225245128760917525771397845798361465913769288231477336376456093294322674458146608394846599492812432289494111296625779640380288294412897567401174499337551728606533601053106510382725220745598197649229229732963856054091011943190828386959804728632552962230466582246318694390149557465598504228200553916530249744781893528559435283883116274070459904491842900334158097497865747847740141535359987236674512779943319901381596615185138213156009203465896138900612180050655199367839639299166683864360720283176023414121667363669182716103114383369202579697705397058057912399789041230680881042954618558540035820829103852363164875368602048728068332050278850302155385770864715485010582573287899150546221603160084844108890620005576083277073897700339231067305672711079343493298765491660893282820234823601409177549292167085552455069508374205546925927356353168043939764424205119188213743986121560405517945550669807216666230180313730397505435634118241758259368890329323073018567215690485350944614092175900241740907207197904115393729368094519272872304696437038290769673920383379507735279634821834446669153315435493639178021157888136601727919595321142995319245897183549959967167942344091242724328240518480454398767770430820027727843006336186994243687181419061240923180277938103011628029263430638175087288280075983718891703717225111540870239064765726064105750633402123990523742411257925598794279369807505797034155100648005188251679610877235272993305229410353810471249239648420631872554986475789272427632266026523753386539629061385029411476666088709711500578148647772329798893059192620359916670164244894673534361076984877501781089967954454350216263967497321615516501311430866239128622189187503408027100001723617906487196916973350457690765700917318514851500105103388693567442833351490503968655738915298329809074336841766845729290329077368494756285425619573242458755721095641628489496923033106283326411550963120268084294490051665139375214407169040604626003115157471348809312380066240838218400845300905688592473431027103465484352880044492451032525819221236465914017297465242913259008704196693397828635410552022266653127834128856079916852316994647334384822307411459986584878887691459136473722926697347788967635883192201287360451825812856500863851712637150629901494341252459027390784394247055085505031466387297537195760245563930831283050485170577000921233650176823788630445787604907475456693017254426809749031073850116759902578364647654026500592216825191443626803134009319098612785205443850596649797170670365484559218764780165562640330993833386326910544942641243702085111762108837033393550544033216565843534243317281838344812969169138477059567685390579609258515421817949342455311411660300304940957531327385668815342841779502457578371801792621451826774253568013222125240679612702155917134535857314863969015974471234425048451627442435942582242632129576943233412189987736875818979551040997754933969087924837665400175624490331460607812479231953846970649502917141548052261960624164830617737900453121051707805698944941410487735290269165388980980157420410345538865928701571354605387336490862950243509124844813533307087923709796986831957487258266296755439222991969479464503359647383535266848626317782006425927210072711075064837771466390454871494389722124718127964294319932314372747055893994329307472519806345267775205515533691229345593520637976166565533031550232248752782448422053244247774090670834135857682656028479363479275632826927459595477866911526708516317137873975193007963952002763264393824743944908388504213072879284617135585079282024099695584023197362880418535777517100503708457190685726712189319060750732717890049465926302617942503460887083792358942560372864248524440694916506374916016403033258928072182205906914877351267898494131781281623711483802614697802437199168554459424642242539895370442133600448797405338179552456389963384409628986872657956119695447680130926823063335130637391116936349639799024937979547953969992524238322465329953709441538622296194650051763611021867369030405627152728776251496212270603196010746379708591778154319311111057112141034879621152497719037219562458325198733863443869969931411069646079039156596791636641037411430896310069153072205277684961898148024472567402501867091866906066402591388712968298657869332403925411687942620428776871110387503325548700993337281179044272658171505834550006496010528641166147577276735427909281894440915064544816620907730799619284767504879911698210419917907235040873745047871757564442072104117480359905864782650665507005935748824948455297886481082534459360144029018660775702614133930600560656153251716344798635027328361099488556761121087043009125980581170138793866757954902480084766122341204504250852990897809067023885439038630317258668517317975587827614676642979151034949097350204082499958520265510979717410466518360706807239078870548587269262023445822925173146214823855197850244853624973782232434438530475316790452281735635817493357045053613893944644262707041994005419615273944187137770546788708973844830305668143545577559164319481999506963286031221783033357466171777594107796378395263905325633888502627664341658821031819905850177518131092169182537001224704227037104862325793611812066836289943407075193399327581552454237149175947482575693807479923855549278388741520410649873463662842099233066410131277576025205752712047642730512130905020023538291281405406358539490684311535497484760598628235051786478251735701793969684041633705161852854699377726855165153114265551845317051080852765539858191316102654406846490008396318395373271445600964686312024757646325272112527122113444075273045896767085628970366990965992825999275295839358566582373398610608311645734670688842664281588949337624659379155064364711307166279328356599044973271821318106758528639181323359027480267054389713505390116552439663958151493081682436254584310237176139889411066175383271862020344933799225379226222432905775335006681355326396689747049725609897723346883044521546351097649724362629430365417893099579445072354286280924851577070509390703766280997198725499325266257297620779107192754883544222440552744969129154966540456807947121560870312921793084306547444207716328433154386620260150977768080075597331542281095609772540350665840116298817290147467576053240715014242103714061875820201917474912646458666014064152628016185197591045079663200215615970011207775036594937499235779593171281525587332533666438411472175438418837829111756848872495079635314589274689372947896391749359787534770375281740352013435032029722570290046536982822546943038540950183962736178760740216858768710223385483030942088416943032511856599477042958687616637286432245148444137343703258911490760778876612861455469204552637283490064953968235278239635405341991738011111161341530502493122455900215112928978453659063810922120656914498416665029972558573923938179206919535730866123863052584358579193439488279261935903856789552714868490114439725289845653634856551910018858077174620427986626116828861597167926508506469036732700808756801662690465911969899876780797867971987151908776891643954948080345573907105459237999708087592758295218666867469389155267928202393355197178703228457300180362566566322940539571734633851289413010279011431674094239936190229957440534948856424293635750501182368835654966636751533945728223431662730695487181370541249986145778733900646291892009887803379172067006164532780217047336505297794717571321199865814586618066551425379464086073374286301139162516892664928054869297290156532838650425448610658330019928242548867555511049693081697717936649218053141395984076122206345956205129918362580076006391200237607277185904749126991176639414476495226170110945825178407554576568877338477342671102600426996442563032509390214033331491038233644877293549573921407311782513346107613760130765710402394171022175997996887155933306264024148381743973700620890680936890466344570683638834306634074731876537020738351459478157351247444580816283503606893765372418648673324287925376160864510533290782018174919341035937120845771243926870946805404958487857602050232310162428328877327031295957828869255549693672128638446943156872392025400207297752431028332944502030671791826713433248565200059517313376977159021315924607820701543288997648054992331351253365187295846048426466021670726289763917049983906124117594248670474232361952209202467542205148120102208662018096782151323976068821795420568014058168352580211357528605313671323033228361533771994008093627746443366612432272162209515982406263616899788764891261611796620355075135513768766016685958453854476228160141441123331777478021138345645120243104575532549354244192564821696071990900387977195660438452247842720457960699423362183787448685384797466916636314425239154538888572265028057376837059013400423009449195247201751018849694804623360626280206620267016419390039575005093047991943041756543494838804072039139360010560597672351292613493508970635649377982849321845610085888780002345600411123173652248288442300002827834678030569478335255403527323493585143494436768686697236884946869603638685653001088839314109157049864622309406856495920246329604622311513657935372185985270414518442395950842827546764797185173525959784956900058927053904398843739917024283540661607218191520541389523623124827236065150358393001371361936755881477500865248597715071718170300544873949222325090227802664024223145315008449465672950549439444481760389296178013535240930541825716242409759624878811958257956808813766565866153031191839184646366826597103821144458401908982794069330780071273108190883827215660365212861911999162441425652702377629282255760330323274955074002395107560626792095464942723672114582724168955222861451333914704945156795767326044094899165730214201115330210453213422717418188860194396838422001777746815219886714944781529471889085845277987116654784698294104233035410527030995736543622856489482520509274341498634021342821590601397195356795454471351934257469205220950782437387556852479445287518740358268379239511181700640399319321996183774871171418090690941579777943056047315445758803115271886286263787577089510201317275016602308313192985275760772454459962136162471760972586230975481911467625205328539377966601455807720444640395311211263555526088225313998999990906022105447074279892519428124521304079522968893098287713124185825455127956988918445224541393968438642234605176296629570045717161996375886962935207214885271729230896398319350239129265849431431782540733442338614251165418691418256551129827237416951941440748391837087125443985984876119333407429821151260242786674841807924057122744866387718164136767671776072179375547960989749883545478190137165033716602991685498201273927753348756655644377586689660304475174566310937385113273317553293624114979281331945710806020576520546982365105738986571411294683237328859997337749972075056643200323433966224011942380205745333377243298492657142250474441753976173049254786516466745211867114236441988410240150628778103770551680303491491635897538405861370514042789214730185480513782642342094138198150321222194144418291244594656739986196396727766552709244738936169314011713065299467913633099266601655725716401742170758028465726824192415243821347637640016668947729068260964920484005059018891627857430200713392061405507973357018299234664389488077250382870643245576303114301797924321464789095296550472925194936089625535848975952595330423668684211562475482686577407572304252484054428358624372718826303299167061422073097310543227637728333494424575819635524832058506530019884860922025918937311252659402680910281399511359862356858740785294462359957358034176784136781282128920915817964633964245455660145025773211934626118395341936682146134974030147931632563572003147977185952641676801548731179837726388300945047673349086827467459163565148705383850916596674882552615768182578693337409309333675251686914844327774006021907643128668859581803133221652002208966573588795703353107256847263314173457178644958854315341071317042586171367650255131539489602153369601410427185732340584056962054753570467334275859582019798692413531230496529185322746927184978260321773834838213412548718433252431298234377818759823329054009987152487430609044011840877314418442843152556123949082389404801077707399327172102418568031910833052923453687073088150514738092676721339618870822913185683866923357109469250454633504038794349029113260659206149883266101641552579439694626565992952340353582664680695684629188742546099582087643644513148418105026260984722231946549173158620356577721813282955819357741342814288049460735628539221816216979395616797879165490308663794116014271259967550286458999273376030251582698924215851104083514474263182446368944800521521431468444769956156083407663295644780190854227338777645321129337598069324646941478879911011831180832433584859954125175911474452104160001157983354684400881095841959052795904679391966148385814467211368396672130723093821227486227709534780811498813224808346272894141585951585698922902370421359361406118288088651055410356016479218163692214209799936927698246370339017103446308007092335037800930496713358044915711016540900933290536297438260006227208965537275940287785308310531707276385152789404242236181304405609261491673138655199433292675456517594767887770575386900267137487198873764372542013270075775761142006815942293532939650121602002051199702077395351408061410997635442071478691840835437165634338739388820359583617794185681513791795477606447689681041228486529187912409361435106552515146785566156015436104566424812760480044359788163476059213655863404873855223152411999947376952742820017736113317451285965416122789762473947570095548424466084570268071756103103578113905811523929936445422091355701986213051736338159425314024763581474282346649579391840545655236675242383277990587102056699660756897981118669413106211846920791574562892835394929631735423047429279008396651264878116052448260584762663100831413514808686483192252482824618223434851362678571728737124758322544659316786290191754440680444451662768681588176412606706903651168093887093741133287446545037578468477462205057195713495599377331473695692933953597071536518004536703894058033323915808347198067583428831919119079343926573735654350423664729761334206292167127470228668993092716689041677755642390072573383673902512978839226079879920303485583609655557685149452362314289173696416231685031540370032747622634238494122604331098453625889617576344464123715874051748866852829187907858818175157920371320744461782000552133456790128043977231143247630702870190023760142872055247222387715406624626946319200108398186070149714459828864688631303944093736159963035220895684818632086138615147335647062137966576740129569964066764706407169174968120487261256413617790091477859769656749091017587109701468580226614864922811300677791774591090723576449995334704654452703623257050164734754318827283746724904764970341800958152387416066082136659655512047129178442173923658431631201352502801457603169051115962817188558213058853336112362183756867240635741639105837769425301228657108911465975465377903513180711624798903557574626632815137798549031110381895587733507297162480695411463304233734737180416873918769751875148106056862952395065998604121460704425982982143913813644513686264818729483897231036687287802177614984570853191616189487658637175690620849628132353595127077738506041731523882277104150927486620154349460839408739190490038601516422239165802613063700880621437973470269600047320475992702188902696545012908006155554397949081876441044615834388028559779625230250399111823102458632589629093990855264959705328912355028420524921056547910972409337368269205361330875924969381109743346297618507535149923994917520673336071725548362148250782377873822760165858996193244328770052158408861479745885194701958976438265639357043972572991263761284242132596530574253097716171891303272720633304851896210650789490182064193912373638745398151808198771060073878435312635128975773658381065548323152411696113581140307486754704608654741698398492569542035174313191995214026231817656582656240188497069503597230009287810061912963481444170710309546464462147340526687086526917365847456529423320196331747823784280495002294140904301814236102117828923053216077186004451451134693447635691593266542313670956767915177270355995030203936776964091436937194214285273981482504786039403118327334734940276815936168575709729606738483077327435213286314518986515534363433572487044423848136169821886574410588104286842079089636335468300482923704433232744456024098986541532467512089123471771134910016209697073073190651186927950392068996864589812385966534824410945077990906198898917319093558131790992310261406450836996975465402695245072123129440299294205210605920746432134134764009676156836394502230301413588608446980286155037483522361205993507359916763702308482465033567864110611508847228656475730551242561640707783862768632732491912645486091150171320567713824939999152344511516957264089479667833221925158074786560053739988795409341477292464806960043672181611644546614722275681437801457696561379561040924291223983075962501618832974404864200817010603361732181352165512492749526320793904346331433677702988448220852342353321950434919579052220231157603433187120827548081598953139890916734723807739335676431116618605279279599204495998978095644931386054015025864199083330423697200813990802715129961467908639391278222095904562019635307292339260179261428416442766014199510445006661322431791693058342701140140317044080609807559019946406108546582782772374306753488972945375463219409414064301148353659543319564834595373422932111941238427933126551926024344268810439865118809029287642823799531889886866862594457818833154425447325551619185903099444000925147322472016998721696660095240015980936740482851052221715683728184421951481084736460605434058678629564248237070845433326931026029739681341198268091878124498389567205964846118265888624594524797645563036473784510562597007253038533043279370699018018225940974339347007127441246739364885831300984646608029944637180024959865864043478126889046043874087475508242527954718680455206749109288860832653003431678081869983313875160544552573690939359496736111513056272310000183073565421596347337943981050249096034823488890039033688661082493768898895151486296691274616823805542527357250634918896315954798843673878217470503418678762395780476186584386507367139339115787643274810524308472522537514696155170765178896854949703672149299628134611041203204643425690507917881248867623397804209431641130605452228240319067311288060533006687681072591300112328200949874445028288473718639440292542478566049914636394709699307328494199257478754789133591290955062243077704070662980832133428017900951953127556853923396750740980413013028929924228265538812189394602214140369911308144502817747538300608848743981963536555219356960885049703152826665130603972025887716271894740234618442422724277753242721430345453687625049072720966538312232666282556468765889897658098869939447347725242078186477450668863276234224102539943709841070092866629603874614231654382316634052655255341323728530607869960310974048258724345328442800859949170819729090595261348985379143761207694438883782987599040037899508743987875286704505873527180800019728624857715547740553018116780343589138785188093948574615067803148788834889136811777282637718453789272925396155278486534909387377238630230118595251788813363861963702633780911223191142096959534681456824100746981516829407643327169129559551763207830374840110568082004585113157302878627709823240203450917992651097499179932668662023873132810675974755064875908821747006747917114893855523887847462095134011510064222188506216299918026382894439061969587631488493209671353634705757410272549255904445074889155970484216965521678579418138188729914133173080409575555862799931013905939666706896576172992367840298124251822836905499042035140604749077009838146460823186827711451687580659166026784488909379656351566902259763042531345509017328171005814380820037961836922058179331497195873824728932496879052764607369580888923203538573206018097882896735177595797705082486847024880825805961848062406540364988657256329016313067078510156273774431439613736647703855621907068485933157669548049259292543167618672369971504083985128219738396943727458479704244699266273303236952047039054299392016007620036805954195069726113150618353520028298837682270786460915494813211648895109137483500863426554340137246219162158816186091006813443872801012528198887346907546990555587194377616573623791313290620064976541540720621449876595332796841754986226350656539752623848227802007127666944608094481063862358755281316258246093660421677461331563838269277555817275508555453548427948153330171697744521304528350162857531685188693941643946234256280095660775798428808987955254111546352200533024099851599547751039668968031289957363812558625035861304831836941626115906821448622700357118477399713121264104245386825837468874586185530320086873904310378845527033340388677948929421849688839646686828265346785257081446011733836507474998979768041517676235126446952868858530302952853045916535579578212341404251860910062015312421788921800921831780069343984630490015003925404935824165743303132765140884762744085618982279300560033825922474463015087187481070250370319249268854823561578858453567786718452047282194695281398869947444700468187806347875533345718969132843172633159379430352864024679736608613669612384786188636548905607312470348642616401137464673244303592614444288904585118185099732136478830900572006265242209287766157191916150858227219573374862354462403927937471230059525566808555387278369717872314608407799197512978947728206928653123631095348321208740550713676083750838965807237871923852622923918332635488523405950908622599021831702059025743552710619938729093253960941068196384734164098076731146918632137401725085337910797252055596680928584872617227741750852513612929691003987881915390003715881552470234517487616191599007684185773947716491863445045918849524084764371455427498364472534664043061385233986772609572705130902150583526626541500709827846313622791859791666635155224729981463293075385363088449380945419447562863807133184585820765984223285548293221424861258283239652384665176612793013140003175623104553997424029876557742938677251074300820464187503981482345365317941886866226070516091608579504362542537897356930296095353408700795502017783538584651078920884708719702941108928074521882680181397232702624156168217175529626810980904756077498066112413496497900095001996962072360372775420442613278199154655115205136893145992435472727614342648633480518721782816884476084316976331747157284073911998656138711600572829530119629930246989179588164811321240143356035019663826150445713359711908963297351924822294987880178612707777707162374049381392726429207730274233497782533418885316723151166961812886520327603941028651975538841123146799536129062872260132005373583858919106397974946384157411053413302095372636528919155178927601054759075469989568451027244163360486036404968563264486573868961903742677902694548365218321080601660369424576631105938872261710993145713535972966326851572046822814517761637809094073487726987181448405083333133939359760335623154763311611067827021016673679010133378736223358422013241597847091452440586077554132316637044917470122304613848974990691093908399812878615917746399179511845606559321939493126260384497018679128114070271459859258156056281946447811758053485911023185477633719709963732184789355126114304335693184655139286234910415299565939676522926900309349655751876230542161210883758885868784377852864080811087967246697478244247862252877245603908736878576253490512046915393923086503156480242200273371727962041261278799972944437466682949629985488631214280275598061744096995139217096609105613910545960138847313921455397407018379515512727625130899053061370218715722741482779135110027113654459757620101982062958826426119099729269500163571373563349185029834454212164616655069494772298224210977057948095636936438419033705843347048118325631095788820869492444795844756200216322825273421161058925486178270036155381108833819373613955370038356669544844410851573585588830117784193268233961764269014487030757007699393903550549717587581213049908137791411483643557398010794817445804315672211032199961411197982539798475145371602434757118741690130335542138500470673500090777726800919983553108350230694158722419057772797129172517944728284197652155435960279060385838341948946349717603726177185227076265634139663910121990759017148925978413555395728796165252673049214681609784662141190666522293517130385533601065999087288076722962696587967765001682406765435395904901293474435674356780596416513684150799005577613263033702692807581296557358358256590704186128779635610007452036141852804954778254194471739183591625558177850662370478856646959256952947350050941498318724946244006769470992923878966171757460698927492729967626801675727065193667455957893605376750807781652369185700143500367910561950328458494963276678299328765101583811299011427713586631861943798360525327630392604662447165305985346147549406691222178792490643514983167531845313745778215071905200498840413169174243713423527852833622102930668357337888478407306425135580545967039684790985274995186963044458464872287445707995212678446689807317398390897990753386201057608291631562058372736652648179365672464501891440491398903446557195848043686487076546470150842174904660987165783054489381212120600790545822542400438834446967413316114704115768771386747558328602026737283460402503693380765031846015189443257898724788942321043063858344897390954135260851385768054233089957122904482137839998232633819992626278137366557603020064750986803563317304697851786996036561370236402356082420082722632650523039355626710711140313483320260127840721040909735992835303098404093079848784830800240298462574324339270781021299921543476037634307774553054537601699703468796253017513255463025610433895153004426996065138102772868302936245840955487621880898912987104233233304444031255496884788582514716438820530432636594120566543737403737027265247527838016226242534252191888797513649930565390721454602720076139017580926934118546897832503423322757151432966079995906195733943522403671152394840441054183299847291067719381401993382764964601586416648696796650452802315594855190849946245257966700612257901535644157140380752856227938154230488029110030914222974976624815704858430442441850989361617206770171840054378168388866962268069922476740227899966598909554576446352404407506110727002010572469664992222601984928039528738970839371792895037562809152880577440830743649125666301420063275462366890155524585680086114320589708613100741421336367954777886453892453110840590766838525806846776513802805247595511154766780494065515214060532939222356417990923371876145063320176212469440532619938419611609737609065063590205949251303557803925464466160225371340856663808806990426988623709971779458666132881271858508256995487406740181298811409099034005985109107075368688999746437481380101436746967734420508296267487164974458280659271198166170175481217562473028404182180557951723103985929737557378476174097985080384541037259064169445891008275871926708217498402311827950238988538552161481488469534666795423325447744907527847189560440449593745401965448200880610778474156445639212859148516328341352122147416946664108622037973106888979098182263240104997279454849136345427015782719527110877696806751816576978276045164235568212842264111536145425605703958726320039348780140913357107864228507668733893354537296961032443336230811535630799766952218681243977148216218939787338379977683324882687587510535633572336799656475977497702438354081498633466328093090690347852613672519405474526946898058478108524980134888799482377628701254426503802259328784032005124836075574043972762760304110063175893632446778139526677448138932631886905859473403797858696732833992169127382478224973767783804459439369278144654709916286052160602750029413090308705496025122578614090764442889659847142348312848543141897814089751665486094232662769803768999480119551874747093922348497284127374810699174418750074541402984260494028235816182452949887732435736530754090990172156359024637865013824352432134763693387827928641331820386112292502405653363140937892970103521732670083022281486677086685914640157542492449745240919412900680277043330890884259041254800480542627600911816679624783868380453368804138750203220208897989145784597479894445034385503336457724410993033786379589778628698008432388108152006227587096323039459086927064131698279304975623388322422012862541623045293043529511998772448961803584515964763515596839671798916351105912531953097509294234000838342663366643602367849711166892928556326504023785573095388425498067900418234663992394626870901620297674580780794950748673107964036327926344910943919105403686517638747817333862284649024807365871432416607981086459914061232350983264222014927461649694793004275540412013049805387051531938400192999114427901610176280402562555561166521907351182608912598323651961493182714054825065616573803931024676370595567068307685235069012891929559997038355833421417275962096500934959314827810102388582282855149849037705061901278551589388911431107817474062199640693563562024267541697474129705901693815445143143143306543665360797015321300167805931352162681780011447442768086274092320334014889011038951353840766866754751570844277419564601789299681318124872551122068197012804918620884839283868147258920414043326558100198894673879578635004903488656122600475398866195021344843020755274641997291478129384070123218633539205709927396841709335603053419212610500407749837381111376623438571535091191802911144671321963899602511546090239417282456888970711733899684482875064614379974036416190117931537073732718782028074347347830518832052735136740302585587453831145840959306229801269004773734115117686716194612181751327112376937557762766419148101829548544441970469101474991727503028503091539827882259963728221818144910085517097701415522973057201144656298067143842704666378130072273086337774742860049054545593687600322141671300981523027134561517088711633388196403439513240818449316547118069230764949973536792802262327826368009116810265880659992439220509173274864609277102529827273921324439297949662536787207544501771276141846768557598326993880820843836998303002754057715513605226739994095311268188909414246111599464994780409459848066616453664555200357937775670808677421298618048053560201714739994854053014470737313258309652586437197783546297083023500696008491379631691595264519755695520505250022299676862608085468671782650531347878528127826295152660203347516689602908797478120824913109242581048001369223236088437859191837034664819978646769807732349089715937523194576843747646165442092022062553406115195465336403071849962227653948402312202154823254172761523783925118138312473520452570890894185121651447076235170167181143834521345604694525827885308155721645041813520143627235237714162363622308864030144675152440808604534994535704972960815423380026232830719335743036262601394933074158366126587969154259131818003950236923586971196389423920998063906776063480154364077055399655331494566076686847395697403667789196419460995307096089276874656046190970971042885668931809629498623269556955943824706530109563433580684633540170524473233902784853163705213024947009099902471706687586055786368442050756991299630094381511356807284550352592009706851884772724791141087510428779305946442346828675370792915806796783849725952612318899992274799077136419338128455529717537831907447468571390423732790657604775832711112009922894461276138655259934185138088922670157377313827996368385398026032951787343273577275064434349090463892816925710782037834727949719446043577946553081137833152386535187776112593217654308700016242967563608735372757377677177642639809643320885286001587123675724963660579622290115207390346454915166006258303104874940874337137544876793650870242086923452003832495170036824812777097606458193894625899252950912190635656735706762390110632168539626361584663933646121821148988525206374623010114782841864850855113076548081350084079120777490253513356954249734228438958866880579405149282759528297160133940612716314676014750985917439118281243481835549316273342872948721497780319838856528326985257776709165343284417067525156103776169015031294195827250019948676584389177093701933363740750415931883477352302858923889723416621751031327141640240796441027326684351562886817088985301217752516219076962643295725091219414307694541908893338354734921184489309187705760739561501921072910750077550024836051135434649530449174566804646039066058404365511906948408914483373798800246971605871733721503195737880714699591879130472320186251970186795915136542281332370962301564192106385301082908305533509181388331386471198537336799088200561051275041971457471148324072341140070319568249231819442442983994975938582989016265105954119456160749285143575000339192446022069941132913105108013885005172745961761303062212884662417784194243304489195769333276102755561505484833168826992206148933369417401274102448790612580723009328922190302097887322351960735645337275107335955723608631795163685477523592411274601084684637205580555724318292693742973902465119776680246132586200711032930530556550565369405151358840809224852455797708892164288538428214358382865780135082111856630416897761954970580522504488157265895580356158350618773216097914891228346243572494236542342577878510430718504649875559705162377811974798362832752713281275339238538361690638662024630018134430853505320208660989039919247650727220106899796649049393063129042185254704473943890569461802807741239668926925891247481000554527840738635308779332556433817428527463336616663803545521506694758925745795414254581044390242353818913067372344144569916623409747581047203432909912915739482835634140881082915763784700682482306544009565295110175147748067084180337544750442548603468602414346629933848685316345280882593989003105860988769485336068028909939871618634295486452774440888727826533849329994876235129268065552575548117617047256968578726187460976919566666809079622871443956887755047819368962803271041587280642478791583995278679208312328224702455560431446877263839296854860219387305591273864758338232424429728648453946290457167573261456858727708663190775781481634523932753869363544456806954913509191844252272606688006399920997159184186360328717707726051590244006816167051566211464772851136390027869203075702294272339569850205646061591493878663400475917668989157453176745525070461684671836840814899030351496698752758215124008676229260433105610682995731033932340585985895375512856020938183213874176515942228625270438750367284308866259738236048935797745613000914036443030156450602552046782490480567405528781096937620907744506140069219815083236207639645934373851349082586039771562088742382381574599361413412799157490721354177915028783589970080252275005643828662946093212898220057967304375733511440333213879649107175160324102103595294110537978296270777108381606003468366907990380005417482538417426072296440946027380518815019376701448382041668423895485928371520804249033888478825819914301599161923177858919703721825221728580824639529159380256968102673216277051823319163450307965458936689796977351857065751544067004199352993065921924953321772205703826062922348013615555430461787617981055448135602730963672798282144747890825883445958543719914672450773162952252443345989447393440941008625752491498823228468152925928290324280356874524312815818774006074307643970552047038914301396292765938953369548604506370449783843241300383962467722697917001390102404804290382177664193547506683308038152153205269384195049513167373514878649069872916255548400501026290234384917529988411841361191532228849688555970699547938557394426992585246982001964562904061409450579843610259507274050139688545929696992190580035513440886746384863312853123762696416592622796103307386338254637694808432155003538237144191571972730065089874271553107474299661170245232413237659826123722193656448293121992807135982207031988961701133497953774228508357808999577893492568690942718989101819448119048852123682129254004994212205113811303898050661089542126746118948967664423539601365780483046130962168853836393061760837437038101270534231966255069166972600569066965642239426694070946572089773706098424293349620329540350958451818035172409972788713586381271722893156908683163027149342235957515506463800618949449994569475299867881672426611042003309593069211351581588458283966890400864615442855332919965170617412290835931886619897955574386060739439646217878703856074030912089981178599711534939015285638179914298082889091993025792014862683801817267497238589027782248399121565018365835304016325091772061022547205809192752159164210038063370750956503333460855799530308666767162153285913265868587900108117413122799442471460715210770149212505912894490589938462395145035496787157717661599115590659500745097363816418033749101404105131297228641013933760008564783993740245127237917024191222744175671928541962718667662818643736109230937625000694012787434163424720112751603622986242954889861812022096807512604594198439711859830677797341714708140716456859335722785295582263706049446676650997355707429114954247909205621703192840831075264737325956046035642331490618859744031642253830717150683346610749750394933603259217691193429871930069434312373049011228509655527450014975893126397406512963024630518128947271038132232857398798099918305360234339263208114437893497729407317865249114666925709320374241766210063560229585737392215861046014235410633285305871090120209179820446249228634571203183373008037351218002558037940143696566337842913694819391213616979725157049999149389821299958560438083998333432089813682659494888678062611588617643466171316958409609125816828545136370975467546924617177698865070404375932291201835757390593247438855270658632689677352634750609662838414388643985677777231395708883655969801999621296613919621690872476151992031241190483423140014513608824294087691702874987686928247833027682800208603250412418156760794639081763717158699933997494676146768209471825396757568044222696877832593336442162251973909904859962656376054417698610748397743858951345564264394501574150690686115556949281257795589120217382787673325029738682021493447352634643319958348419162256654346688443994784545737894267738310393141932564816115246271604574483576548593351642873999680725134638526146800977624524991434586026249953916241947287519640218556084041632057218161540781209432163137391160218930069724518749818836205344866997749132252773024939627196593556267321862774466064866403636369103747861844661640237367207874849453810825618274302772454971911296830871643367185286115874223858112573412048176238285952271721996370782454696443493542042300147699898867973269684421072620692355845284633910358864784200100808578100427351278419521835260893147765798242080985873616979063466646952681148839323308442693548486810387340703369004115483768069762531876390958039587387939889874022985169984603494315746468757909872886799925021015079447609743241738346989631634501547964423623766375412896947658240444886191406095991732428017438014569243512055582157246825140469430788889135038961355076862404516996476437324086378124263164969856049864727560780744068485922827206183864301716917354987925557090737854845203997181634012853334889595569401783526209804075510988016325085966862882223599062590249820229698124395635137454802388823739618815740816512445590296859504958832016294081262731998947255493242081830077861246502306460425449536137513636106214511725306122469037136904292421408619165170763292830294395513939771237564130593966890069415411400979511758038851411074974961373812275135015520642538582408494949949308869454106823552963047989629735045909597745031593821829094699822774597692958050787864889444988470441320762948470841796229133459451437259909074559552623551604313833859478333586092817935297454162394522220618908058552619523669457876011005651849414284607366900206435189576846221494317031000339797357168141189392924252611880322986365278406384308922572285754648574938709099890300614611143172967450132474396169469896062869830794742259249206928107163838181261010614459629470814075967297755711475192476866717215688878532551402479559407047443892945148021222347285724497442998784766718120683429423774378328743206436042665949206990601270770036673573465320444975830737207061035329011955267435233079624499168729269301278267527597705810837824560689638854917779214732977222344477450109158051668035727135127577636894310909909459451396024017028141792274376232626415658970124013718234535964243673001733086516334924493874502900722131240326834448697407844266823963264298321286258253339411532604630692686261665518083161500100929473206529913796064600702428408171143924861808452837360342355062086001975007174223764155283208232606784043873786111883548706154843640887484693433010405224122788422990406000536951056664561106139135110965741783047172229166450118487322674684985581915340929616265140487620481128727165915334457430646309969629315502280866841708216732955699137850794263103594305250223089730630759630446092926409050843859909875343662569894747203794743508382117367947242445477139457413280687488244375696890541229081957197981644386803098349153898080699861455502742332789752566864139929918887276239718429780726453475696238888102260278514325751435084814229242374946933700914527804906176596552860055348631941305899732345020644875288771114461518363672954204596823762763304008517969373667577096590732319743015269955532943373469816175629886440295671323856791009968597835742505175397123156662269324541824748407778700983943335537311875872242016159442671149125553762315398885533065296950661225095478331465101615250553621135284832591852305952146951921407374266043680280949776870105469626229652752072798076317530673583462257494062695621483560193175680293270802765517948654623762468260176171010471683046394250210641314851693917449330957763801337083570608544709577158770111408502138016548002981258020974083186279080012121149860355220180428198240402222950551121287126594496664223798541209911027899421777096788961017366632171222306188602363514893454101052662362043514875458314124732013291613748775421964593189718897287234098920539546340355616266356843134866219933407017750596572572914855137826360362047972694599672029327991342973246311755611395364677231562724117218127845976822808250881662646530764474158584183056567613895037621737621058141298618883360354600502003243364064360067181840521852501784522715001048465705161961340370408986110766971031786341232319032928814100870579453934995042024506605230915891026599626373734672538008174725497106339772664015819142730683698391412087974304420833632977661748413410682872863115508254068931738084619585347667905184920130089542660465008654069871681728630303816637690108979009022781082619065117237854094073353607230259083509397309693371404264040117978157882753193306157131770330827918914921056371598401759894002307462111172869375499000948858406476925335173151576331488696196557865345918775310862889126228641028044548647432769295819887715675418241398333227991424758991950770093779133210911842648287723930972544530756990659121725799222639283541750586952641595641875578807032738098284406217830737400752467933436981738682998455833459612560064815250786882641311999781812793991922797782659108276034501846626922640343398018655983889955166085550379514707130482698652308834135411976947600991416123076942708741689501213768278407028512185152234760847975109672183854113314005499554816604480365512252538555301275538872530051246992602598937285326523163552732551101406968995061528325524448555974179395812728827430873137784263887842264539488636932218160916973347563973657781736268756822453704078522993640150083614300437810486890465509924612005024006407985990527180898809979926119455669666811780808946346270253362988633041920190141962334808748809218882777268663776945784476346464534262272540593490642981033582217648893404494268771002458194767346214038895482109451270057183113183392768157484419366552416065050388880411466852373772284969228308577508509496473272485680845714629568029404645953145967643294673366343068108482762320951049557331953751984614321411240930910640708861588003863984800010555186020795079097372275844185241130994246124239571638817302332393646043001781226192193958466309513473957470881723578380371812066527252737894548442966545733948108952616281272431155845661819941874521708729469355114254265700506730901723297940216265338768865829949649530029855331478445647325386093720754673335296191312988675015258875436899740170886728408917848064331816868751692108760502883327079754760783777156079834504194937945730091780695127301388028392998686917773259683394111503597499056263938402784602382441259966557627498693546275774065636259194860543649474096728396967390252064727494797477953159238854328967922275176718461986511230973611459220756741553666290034152570057971769863373445372831531892704459090593434571539861903147849635463608767778308883239082045292150002416974621720995496881856909406574383281834588259141576826072383318291439817041125365952731305127189950133454588632451952522904715769138014643611373257789841907227008749332504445362409665099639475698135629108600146585498120711856744019881453587189910943685003858109648417066309393716407155953855717912496516062796475475706477524948529001813257531391770514277514711399545810590181135115931773134965056339438410931074780355855041351976236462124123126955103658843012391227732026559839427172461129066203664037329674660150320133242670874278597872368685047887144313970574235527131732753665489566627591719821863900705409229698140724924044509941287432195887641739598341531546355323268285998635228389218513049585846691056709736428252585663074258567847385116077373295153555958077043613312167935572372604956949114378411449344765870372747737302981953595155224281654983157546427886593621525843455165359369625377066553978054292802576833081879773590091288175803100547258470138023843541485061600638708897875424162838805249492833579704869610117733163472803282220448211406134577143305531648645862970010936128759884529979441593461177245394967054301297123726790689583624553360867412522475752744987843307293025626472228203054285507584404625805886405150900627435983976288224746308542280443021533760012681321207795412418517692681605902387558735296926372247285793346575851102699508267180100454292053122803590056455619488663802891875220506915079676018297518233538858063385596794690918413641632842014242144488914057570025249909186685822348949476491854503725693102884024374144367750075746406031333157625190891036900977456594165530687410115135426382735622457384367002349370477245988594738335393605055206656282089841326642038908456635251033035463911928518255144501527197662298326496472799960771265411667177611012791342541333238651368270937295785959488710853130557411905388992800552828906697229737942327422508933264255735894286117289492412128428314811900190466098106132875780176066354918207887508073376120712408170210723268665964117515954020234637769579050432058727556398668358738684072116108733024967862029857264705259372993033750583537380160391297531161005327800410422241422976293399453007082022053828869025800918678782057329768521677441164104665790518783856005616649808732784031352487725669863521022612206168599849664691311199731255557659303634307473606328162608628386291484481621977516058694253811583785422180847107611360922356944310768666648181716907386685604554428562028995888085842873900449245323921986172635254043832894407691389298237481743772716412483134132463201678921921669706161862605438322968737610513155694544881040392094592615720356232081680667418072349984124749281507159973163777763332243945558577155428428187909052006271796591252747312873001466360272066187944259116202561114574808252696195986427257085537168102937291848515158109026653526211690551988874366774620804161622190563349929091245224365638608671136652370272973792963251740639161437096490531963743650361685897675697497926499154109358823682710329032976684982208062525168442974709733325047502697201599580616980801205935983490753031268357990555248702093264981815634734230073183468681009756535199427748391117150166753312898465495505361059998351794910126095131878459190431221641843224623154419975686321496482448390869329776398178535474732285418475097753739354137491590825596519321884867326569699027686655050348186704632360867266307314974332976107826554789695003233667870323955038125459304946433358017849338226466164082381912217660079766971608500853745902861825164052355549513675031927806735833766887809987852697281812464460848525915576886943617528217954197736798579320100971637584773819423376676827934475081557417697982972124816639944659630983878937289470308142476272296782397389029033814010776568624893710972250523534543924376372564045674276184097898548207725695688825949324676179477190663926748384004775138568105112917636139429167365319153106772023168832289810077208486614316260831918806228236542931892363923838739341883884335754396971677596807723103882314019176333097858280496914961243089099658617253076394161937508372416063920957782252241262434135817654655204414147156117368980746140471335114635873847483462448002719310556423828089928880903797977064006000271928839745939261393290936748240504661664222297840551054651911764143393855302336442499102333441862150730743493509928803896187716217921687196238195415910508572168573999359449557438123142789007312160667468642822811974895617414409813873860013038713212072803651793262290351217934752391771135987479338093743105641342538619744311132754611717336443733437971018298992440660249910994751025901215505395975105795578004612025444256884706185140981525728270191956426091020987027056725297279400056902850032500839809432969914194937747052512554061627706276926654708817808929348382435748794285218047284236753656798465450385646869723694309306774222252564573507419552648032297862555871640502447824888218593736857478896807110793744769226395854378217498856761125244393867382836899139669266800918350456430045041109560381743738329994164798236213670913688986826532300492603701730992499622541408545432756054251267326825470370562813181786452038986817936982308148646613027178502201067123115950748197051921131781411526852556184792340519546621466888861118915687414471779154263119369111460676883341655961478619030087275822454067313078143343296143234746647718807337623544164791625366309671275750756956340225929362961153403101955612342340717530623289541500810813589906698544044248891389131660613644541082171447573628034501919290237115983120286358277275604084909458272647636294626327106224623064609739681781168472378381655711292526608320418888738293783413546230353968107511699354767892250661761503036965522077064073888812722455296896093672281808959801150999183432427068723915927283006528400543106278463033956189967840163390043093976967390913709982236538719227805857708396676036854981276556359604682790048028467284664621729036472024393763330626345676148507920503958807704296093544390057503379533505520341317412166269639657315862806422704636811263867869891130334149896979871085541404066508404546954785213508456742080526599325393760823834799874088778739723937859731995175251716595660114614194197451968640901226861461719804201398679158271346677447253285291650660663092239288230972772935019436910899854927138502326961226672597859200521240207628705477398430850939156625611210442105489434398011512519143334263932373051870773826115153951565747959536353681809273127195641079711868563075485069433880138879196404717384615328885780012599805527667291708738780197274405321734665799145398398357941516274542901590457408920486554971622790165181513295530971556353962295292158877492798717517410622854450576918223006623068144775190297161255116771404045944268546194381693515904153653163844472132780781649452874624302970637210431681419424570007961608623522111415822210288370834104270244582546808261021428119115887564165942857527667498911556595725858037414544227464705272066090373814338818138200292730333693163716374688244836177902852383105389809431492123076923676737015126996656383315246108283220067479898631264518111359679130954992027960738994854393219206419869941990084564772729520020467183508477079486296776938914424294519341506456923728170955186644361964943764868480019393000193776554853272314732011826478391157275505186850978998827571564796828135045727404205948933013803675865595050213221252435784088070461981854752252714840021123329368829676890759715963883922512231529751969819327968585461053682680008939350776215867662451000136566966337639369413912228952588936018297060249070152621295876816545638581255412162138689896400320817707081415334851609586231887927725004509263559206505723446858396658669584102589916395071261717815315022132203388679853680772023329775840753304734819088125718097750252120629961955368929122719070579004998199531508534653325204929412524514862183453427558659823843815383765504914483326175787958807006899974597268889443478305884023382813351238419466429503586725534901354994446687413580193466357942589963157843945280953829264976020754677144260805078678341252445811352947734500025737023955977190826218893860483926852858202896009478253836542538680192934788161221386044960233166081061770153670263017479016096857198718876657887276708967278830895906318900371475987927101566025583242859918635195408391937860079437146230195510789611302492194060258517527780151311739176465200820573808265404016834756295767458867068745934000769434100440525456317537772552798037765563629725462809492599414503326021015454499357482711779186869012421582795355713842899555787184983675484431737328559678125725765278506627546157391757464546768935446096369645457175538124978908668727265481215243388591754541446487071994537839004133613847091647578583333161210869434157797202353502510251552738624142524955922405818621295271903241637435081089903084920782021866992972876923582124939058056722864445587593999817730610443420814056063858435971567201111009073195989542762798116763396116739811102634648163936945423336442950398660979620829000162584793771651114872411688761304334546223521752232677866631273431387523506293978950396718574741083312307493691339381305590033755578982013452259626047882760748725720776945515857687701219126117950417248332484653912414527015897193617351919476014033232225915917828223127590482600979404305307815697010855912475014856511617617517825681486681333108236981915921307628299518193199356884884613149999119856515679084188768071709646169332978514104532122943484403775755362577438868721827075471432930758017649053332544251135952016922607841022570983137258604128745543782694103731578309899148105508210585872788210372577042725405013609662556734641644191011582426608165925020955902940627060866841531124223714418279889218587504412018821885148393877221000148417788580824322700311691753553462028454606085764771220419777877772447680834863113440313925272695091797276669274607444206864292825449654747685344025418013823830114451044851026048735621054612541411800524506570167067733868187215611822105344985553021326364815871656553476876384988230355138613460620079695302992508168182955298783089409457883090106379200619784663384424248416310262198192444964095700302931417541136086805294181864120395517985297683592908448974136680155276303255452010619704337096014937728570799817324249181784158204178249891826932058787792138543505263703939699695218603586295204651788736006240759069202091473320533219780509624696307700984659870230188403083251182992279289011240965238520058947007080491723227110041427092904196003620566646079123227811439452581651993822829762139134552792110816835950780260612636008428627157023917962892822433056653672873414663898712234993908678318628487238390748693579766316272515543666772470686652619126878179195183924803563427505839654074938039989752916053510523767708909451874852877598866838081990190722277363362156823887186201213391612612714990204529133170818081475757646194933200506677209715721631059378744960212617495854612767299865927396590612905124506855808656938724438148801157789910121620922668952432544698197595593968250846671947619897003812861288051529098947048767386814050664306034515929227525622625016825349851090736758084864665227939692567124285688017286607834830508668459207928853188928547893265495331508041184427107174119627366294114560270273779319533875664500365390434024856314894930382329806787655862133989793858288525871962294366398491710389259192784710501485750823388973942813621896954376289965910546502883324349055333965993627343245320640650573225804732933024524677763300642912762284537079213358859551605821918245506382513112946519660975927146015293194000298463746967322817048389551488528499945572040926233890533519796444297211413775202607596519205940990331994995666223163514436087124218610504132262983602062352445062601722252446773104231633053494716654470782652222737621846994694279033013543298681778613729810247141841863388505610364510574176299421051767456163100344375458672260807500119071200309689827270261469535954011765684902186348852245574256364285537232847211112369057359430363699229277299300224511259866888431100938013669508365310161738152084563772936543586805645134593599389480283454668642257799651441587335817029309204925518236574224385970052268309747751009669111098462408570206085670233956312430729712422990165945878622336965152743428789928278323977635370127586971444082301530489032858149970645809678711934442042546408070469313864743110541266003976272269453920640169300648040277590219820415525652000522598483257495403450203308352717125656756071901741066101312661439393286210683204113644981379497684491870126838215404953214895747063488158915880217047542315351164693907246625504074455900605786904937819337127496207205666081590168978885339000203180866090395863042255229477288472010739071287583477545552943012579247501757754408359323326183043122147818162946620902963322205394078611443510252418789363539821376413215347115486898809378582724727876010109483292184396667591724404759147286109273926803701538228412131967208785548857585481762878022129600402540711991339720588657208577442996204780703049936298438742633952586345594104807403823188776741712333419062229757495763302728374356605129499934741740754572069685003914616093321500103149250029952443081097236245103724727063513541876839250616326129014759389725356327776846474692687635790632757818393629421756364089057598962517159964993829524673378294705159614474551798429874453623670434710660730733489456064826981093958513804783376233097905269501097292595642608361224574780315082661315203222501559511379673733076545933499594999673889781262710009083993015847061236869665333124653592826491684739107175680756428878784966052493497606033373927809242303565600968227196752433333200161291525163465727265174732893667981140922364503784281652077194701438432290670975573501336173019566268550073408956414822627176373314669353000024593273181298787719801895303529205807999855426368457807098511191676487647451372587994428451234244728360076031747698461009093698161603040592913202230177842824688852775624809509221816753761847746333758067725789515275411800946393126029302483276214898827021483257953259198527253505798718848752513020645241726493018959065062837901110903257147482003766416008467639353563716522991285796532168640143147087116321041305567778676372017573161561367443626049287187134681060165705870432518635774546431613796819079514751630304661994231484538458166291210294152350613909016978053272271270964701011936285798248332386246507447213231796544930172652117365107955874083816053032541138053520735635209814109635056145164915084625941294773806539791227162600627169653420471178422149866366460547901330383990173371448170007675318655353108567661561164272402563086919310687028758859475283472014190312732565349226382819063014949980128425922864814689094959065572235757586184814735656244960654194651404449362774005519860035456107827478463950973688869709668988547209238142608460776226669428455264932630493541041418757338623336505165617214156538077032025199003602728873815806758055338492777441966949485455670865076732593918706022713703952345320862172618306919493705479066070863618763082100189170722333858517661039674289361686733049494298777834179208320639368058639180889847356741546711171615607317677562167479033610099930048558036204351598429036729204094018400004299402567237918802671554588150773209544281411725368809035662637016741778035686861947182806590241458830992565800465020674557948968415232245526680263381864266626412945026092681788175203979328537736750117281140734969464650002063327120265040887773875982834345664829976506183125445085892644322948115740887358306783352875879712113621774800681378407660942284192676416050790503899097879870038671711397017867643902518212359690796173526439494577291850058011499344478266840486986536922556412159752738955190779542749733001809429510106229461378240207249513494673132497905158152946686769100336292743607282173842566319775067649092188610023825049511097473142035079912546514480513159466866432634828646290368806175159373677694345627554911842766421017865399522517292440216176836790473824294124782111742301637504231370092984546545566750767558708774902524406385683946920180487238359949720753137091630885207274374397398427352686245654927253176416287686847920256755244215576315125250259467485038824194008511006093976557234130514118231858326802153424517774902408035981568812756585251303002470949835419588324947108201546436853856162824879510137046108969273188446676779718915163236703537721078705997778960122056252680084712173257189349524882199537190633578869481013873939269698500015742933139917262234385161291424485944793754743095683313972884669919823127376035339189756089899449532555596851632808195811123764701560386814616072560272232635685244105495480145115033412012578271664380576468473953864881778248964602051004269889595311107732313587704066470268336826589265124691909741779975907929362595652655310577543411899267002640467624160272887779257226044364538947954172774069353440242482307897297830217034236796757431098089795774849069853547231824579134693815679085702921827660204358577559878983054126809570891268893643718149184537702692373109352400035556702557966401634855236575625231665523258729948045087088448000171982708886829663742584423627999394059001742750625856424002383894722418726405368553239221731375423747909291368888611634859372086326547496242757672084042197904500344129047895471704993573595886090876078683967329496681531378759214380705160366912498337646982560013566393979015468029980104187081401605639638154808551092359310884704134393198310136452918764774899826679390727079419020313618329109741917043419794288010712156228545082497306568466272825830788419519864303234097022496471333305806125660783902693754619751974140970983908603297873848482959069146070948328759009613742469270647858671045381572496438045566522648664585264573387701388347488640976791257510688241221457149028574716191202426427609234669320797946280890353339670349424979490533809648238842065676825605930127937209262353170179248170934668215617372282580779282217671005454630487334695260811759334457332433874935065109851932048399681786749066751795680014853509696453380377277905271905894585393587985317025778468430111087288102334568025728661299995155101616140650110313582778733907292027353883545002849859809828268505449755600712065585885504068853374673943214382804437594430458031925990689179963854915919744235134854509412253895725986336939682026899337162467936522659830170710702852638386782495856456850866078870870469568962514607980558215105910647481784825314402603562820328652660085641875965942675501960437101336201863887035915410703558297845321938103188938724302601259835401872678291625893607642468325418615903302613866925170148648531532787310931904216009823729816972693115730992903181783201841689318223419111188750725715098361288973621827571089565862326711529949879704106226038058377888534690386748156314075646269715838189606196495778848493272565649686662959363634488784088818951730619649164050362587294511439609526204986420241080022007629178509506370762305671183153110264800139685327175951663303137083945643400739717609320218147206230740320785738648936305467329730532794181371393724056784626546476879292461438184470271853880062490803423329520788317450476340761814532476264935106010774938430844079984869724206527683815432587814829126473542977776977492798452716039918011067191629836880909569048478831570045839732664688366209363174508659238385680035527329248614606447344508781352362668527647050981562392802129371068303233613138687451834761296299573285142657736942956243052422778165484749337090402853617131008783798526320911744988766125755681252491074695207478240000527048155529207028995777267641241270439267138355138657372604195873092176515837494670417494786496551965653759577029770689232194341694271637571624480704839034046550889004481476686943880766182354842861928021930479500520460707161786450675119601580155110061168201326773180244180400586040355051032461971737830122258533191399100700016940853906505648785056048378176330223244903100120028724977022960340246202069047136448810393964534135507342201252516486779249515314808330777175050452999067617912998287662621981573877145889983898758948180759511684225989165026996008869340170963375442874784074953887363571922196487183128153710270551468292970412966108426156834950757137289600058045560740625499470993933528057555181036436035150431839387485357706190458825516039169630745142865713492663319171148279232184767785114816539383156868850112525866354694940083922479039036058910747472226743989250157160083517511447524283699012652775024695290319105722542254382427036643120432187743039542755239233026158590378306905059396824409432862537615614674194239950322988499826835529250276098102060548508472369432534040168313761169896120868392543604704426102286310244306056455113316216398521993895596351903401172924731592813214431413122119204707417433949311893593796646076774366125061319218906046269946849111798728798412391394672165217302428964703689737495288735479791735824030019589726597275915416605050540757088613499445337626067986968001201793006579018166502744991767223576669742834827568498693958526267875718075924138097888941834422766390465564150025808539842023802122207566566905816035235099975395126057181660139426185718837293987933549707923759040824694799198543271616156189806930622083774241471612519710608911996372545728560014261090143376536256360010779919202289573316268226205308964579815373690552293923042231787759783521618308847778589649980742768229946160695986390429377926875932991271296690095286617237537710521835614538201092355917047419369969964658714688013499177936082649164631065139021101200161861183309299588181633209648333299602853429014642076217289055628912517476511830583468632319657176750709989904345575883918228680453728239623618535485404259135277819915745260091598468388752701360496434148834324322247717091706744827235605909201593685901032147835946253106052288791532428793445741259807444424212225479077824913042639643446498980962468126236928719127049698195021756635957479232416739296158195944639147601226817589855718611105435350218372056220695188635276124020592149346597524131258448699371766301607608216936036356870255583593682439660358411200093369797168167852299085610855793467911261440902599480830896950734962787633295474195570181276963383582816965989293435890320771092152703965565211891200976126209678261316998181544355729051288181059968270222857527831320375100314458856580489780734836462462310721391723192444524434141845680681667688246787005177627764739399719416153711841718498212555734999179927232097139020494831225069115668391115503173353589886046326474756902696283465730861437015551787259207901691406865491641517307196960337251649162448238040367736213060725615206338797633618234049157454075009294980583775354155525027485984775121961490335505399063660643156444878149092314455147592488275375381389095886829444528628349026958265337563675415257660620524221536198949737449975609444128189452894358253235565870465175821388938330520230867087467655346239565775694943584151097467790559333656335377821591722937605990618020479045609667840498094033803731083711110884227245388453206606198094755288109193713756437958598559898971680726865568771534313050359512118984924021001867463440953153837114577942655588387364986756297958493073579114243079525079061781169555176758709405528967543941537921281976554550910908524440559722077535918294937937010588644845623344975670777654252537032741672742858114999770857599107185791352811428376450760926859075230491989082755436958599379834078680735205104784144817623312964314923379826390273729724649534654464744978932527607811422497666012561565898594893201948836481143308195847240884281193154957772907182666297206613837576986562296934165079707669130167616403533891594667394995351190074945557360343874255894898177821728274107998607710630816252514524461933426412622346457100752351236999374737438469554799728656883954229403808841592390362942739675585739963704436034874836756282462543686172004641597119082576393104197188631887035572762886954370787512917685544425558220257740540981120980308980616800732056757886428910041012864153673802342687234307666908345221236779517767280763546870806127720078615745797005666213885834744425628181398756776188717987810097385612253479985578966328360099317207654149205797927747066478456437426790536193798920670328576799162498240360907089554013750244347181192646542908263990769005200468406146344011972177807809392232804065042354472492016805234556840702335669648603720035404791388446807723949666198855958026998703386825199645790440565847480765593808865361010903502846833915227238397543200792977569868909967558749578613111577320256562454129916422046899643582025411296351181083781827392116759444552676365191867581466874008105399630797622206437160399994677588577844840127456644806449955287785820220903538249147634284941934321339954455255172172363665692053789139000409833030840718206411566487098931815752718900629437255996146339597091892837099506315412578167982107895091464705934501932705758330241559474763133033523084511699731957943757423912711350804831420149135398912913409444234946581277665716580190993395570697336633786296800498509742404398999009235629183748016807179217089379967155437302598397633851737020031570643871513372678549312326753044808659176539992163561622256807689089407074441667756719260032166394367431144473603436471819254645322552109046294261720481951917476586146780189107135318586099517861866727145957047378224184986962770664282473603319587325733353277865065206557892214543031825305519050822571686642002838394435926894843080881904256956219290800969921212350422687912042320119951449552647144645143999219002224805198580793194769353412297461003593017585926231508225967828786053980910256376035128403209798456444121333007212945445310700194383263297864575301458510344211166535143846130443140874960971092315363002182332178473738453827627872614418919898215224206488329452705857492543737723346233720036117895707418954056623175757330135580890474065330702008792110666346099169244161770883396086424642192346897987795470210895221001301663756770453097421963144491580037946089031194178932911505466994033197044508505346481145711844214942619502135488199260433046396486347765706960377852999797327519627046440044843345583074344906049239326621919022287339403812838651986261107854031986796699733714186910212217878545285973646591126908326737178660621470622448573979348645233764071792516265937668214494612842120314252551691121749967572674098288932594251150285142185876610353950273353159194814990574851776046994045255763734168025225358828272693740500373236207145715184826840605779678036818478990981238655743248893367305255649987067683721304522979207731413585065040757362003763136482505082807256065681579729281356043458166661224841075466786146869915816608642376482115262299142511859578620215360790354772429632193064101671524447915618465132823879758945612262156211359992886323882228474536824649859599259827635426337249413005616532468487690536513982480609562169010469526972581497564566702338693045990690355776348300154333852911721861102667976803393444876543866241227846498969908631064589446811032809399773744246819987306032585117597739526254578202065251736458210516843676745722416440140253215938626294358762755841890442387142854085365967525078328424769806736614580258191224321062195619605411582405637742134934420769574717979583819209951435489412199400585462798994335593745326855629660844608098192556235725542266378013289924425328556005614372609271278735392322467541090765448945591072989873954870743469154365016960462948341745078360636211374129836728144119005309547953875877662721575589724984938714954896107125884782034523336113433168430760826819525868889235715333925378981762066012423173712392414350321712197209882409546237780381553572041826666202024322342297304386225744218174305991051729450169605841133666480471202874977876465104494459800466101565698804223899891527170248984296944422990229741990776433201780344377899182220231982260340446495513568552017857007368620117964235188229640540554925922431183839938559860980873989052184769411125933288408293662600959684868600974322294204831126995412318127053849426450680103204723930185844921436207515481898551092857376994641413044592195906904163174743477384909406902929797536834236772086129083400649416219507236219609606191255995304435424633243587410197104018903644094208178248871305579747632321357451020927046649116615568846054600749477608780518009084022993681372418144618696027386372187308289048679790592411520186312533587598303608244394967749028286025956430297701263359016893581711807163384874584458027241280856257486113767725499664292104027405107234470101324997687872892053066045497774590134728213978594685272317518555706644413671120455439904929902403356000751671061112343329197240294967883503035824987092914327254444381383069029863148847912493608383695978453264021771149716011017401116694950545956738649373544407091099728091815533207223271603080348661958624301408111837556448137442989583290289912085458123031302716752331544072731612668722800634283571352004898458367754840458521289427190713252443435335454906907345750373857560629806456164480104695046978673669662864479133871583472523423110485305635315007685407384213316885158962662602890435989702909097330319752389340231891426029493058579076401014651205736749354467180181070444107498929965996962760303486424194952824569122703032365189773746020241912132533977873417644864823416434026463263390603805002225170237903524412440088708145797466441750389621232518425772371631441943941100834903599977374527741219921823551787782329928762105038650384383418727235396406638597263303239901962737945614421945445179588905981044507036748027241006016445739043271721286547925163953612415826587671418183925864184501589678493082908207199022760272414659366482108841933598448163870325671425184272023985435971079317987837126512646096686017376576915410519934736156916868665135431173601410534308792746192040903390605186313386572473847620833784696399690873630384655448136269059049211737138599186402268568756879977135664197173064326309987786470443251774865090905212989144016100064347899679506900974318971365623069274875940794852450894688832361552687983495531270339560332034521265999743140413381967942349764407090904195729174769252419150089669770282544441550177287139917242247764488669311632969785261739474714331463684806925363719457619987274019072416166488729446480683252630550762159402843316157206241067880885804157094698868360517224894256518820333643452299482675266699128786078039638276666230936539638494942803342230465311870865109288861354998478936937711989026309962666844843685889536695891364166125302798602094930186583086784837941273333560401564083981273011326129115821029015473737400093554760473911349575141909735310030284045683788679238370428601875398381112853202932806061953562392216909854997961803237510690220128218254608344562704359962564715108237529587898409407922357135978999970727045251383511137382727795847522188905559551869126033469856434883267098921908925770146892520823140727555352181704817283658624289536618861616273636576567084267830065364145232412753613280134584050006319409898641793519554505979630519188415311153886655584669395373555023963007096718417702969449040572659258511563333666114690666099526326979218817342498373117283356027699122984949297003650169516537551878144588336090991712334343601448494382281172184301966576434636114574476000847336568157704491949891133374759616726425103498332307163829312028381858376484279937461453943415581749803648930134049781018886589023506283809384453495609606547813075668478710451440118048659321834223549741590487257178703921784943182889472991662404377472753251113615453791525314373754185941117574245280167832417913176615842722552640321918323938285736347523024110342991810542658699645680699271591722548258707347898254562697888878212447989161268051067149729130068383462650713266521627490826619609764366637141975629512895259021681323315557240138927389532037195454919736305217251315910515216327228781244271103830174765187007758570637656023486430146940846913908603473128648457677287532684386528588407080777623936495174308956467554946595348718598203849345080500037261168119291085829353925271557703090148240012932973286456468733235791199165987671918025154814801798016044652562045220796451964692694647974644142922605297337286277797918121318410777632704770751574116816843878124223809955520657855837111713335699241435044246582064842864657588694993023505070582976932225959813892639724629596223283348725145336162185370350535343886732839114988733818649076351983195172621956064626979343198261411584020843576268420950590386942413747377173386073878247299725505594902957196302859486560816855283256899831044562101975563803276723472760193028924016730045704753864950472546273285114844363386118268822475051173057727888899285902038082705281604752575220351872469179781693004080609486931413043780830570760230098988066628427426782141523440891890791621513801662482583698685727287810399428689250978875492831287085077257048226965763389329573568204335945314757944358937196714224427615711937051695404962967968132727863154649019346599408729872975594307418454786168604903267837904063410280858842778866803726220058127565691536117570189894190783710057251211526771242374418303540772898755080821239099773930327689019059984907194788134707891318680269944418546719222649421600501201229292859842254323393210327183832920022922515901006521493384956548448888671006179179748774903551205656547058009511310425063307205737662161266206120571234886436729365971074597267466798346219301127914655678570131889112386247883765581176210493823078292562411082413694751365833412993079768118778526439047345953503887635839689816816838758481379029631343376615260519976212378634750659785445255112287486122563858971339366881193991304197210945812175763151591943154548781527044296320744142530655372379937534489929676347767028789980914723522649124927766462951703300460483272240834509047678442697960874395471027091811249297360724459264894083937974938237805273637459375622099545600099515325606529657791257607724725474464932393646483706412388225637059845163246286820321432158445642249198964446133186550329156702640107424927047175606918072434619492238205080055173563778303120687803008222485724733818666475850136089508264247278802157180867366773251064807405072616957979634346284846058956382187310692129447622599203917346876488924939858918507066808881551130662684351779327443793084923800362518628084844097147735791751903794621697829241924079822176640388043083838586548868304467285156433300354958917958737458893514879913137346846028285705107805464516931362982492765327201091157085700810095337671260370259051178200941898920171592806727455271381794177282034203113579121779372070042311673962094528499844167972971360191948658214347723777073868878953813950571198488346855351462070414004630922241367832622420755225150908486299464282951804453055453629897004017125010609916547038968599261565024639028354358333389352756192831703322080191756606798756304944668658697672751823710682800770887895387035523428509062353180665065624289065964892079764577444305409871498606500924485669067633279837662946943619753094389845794769650010930213543643106582863221444159098967966879448477986378277686064751073503486110242520782185901603053684644515066640592440324128428496137980076602707074792461594429818165747648668724023523794957722257842953936293643045434894781799730279263020025594178823677766937104541030958299772524932072041172743400401637961381461500355682974786251998702781364352115469808310608555823056509898561903471423581348181873375401736789971642826112170586608300259303409950789988824565844580845844497916979854717635508694134389810958045672180510076591015558585671059922787238602694702961684658241093683666943391882735919515009877839218468546395243202433092358622100789057173173374677432437161871753622020460554337644042254422533981338650279450526673364802929240858644474639469390732521438730803273668557910371764712657991838541058004974009636622025915671063063600167545788429555366246631655251908608961008256461243320604853099222951688200720363500970236874589499354205908423539251417301635426411631489397945244091901330389813431491358884996126015246904498343023807174684286747541541292737614410069164066424880826506321549903592005540579584061830122089697102879822496247558592918035914505757985014503121052671055490636122627399478334796749370673018146047132601549633257130973509352305900132670587871131690519190547390091601903438954090049812698780013926159324097999699565344834762678595021179619171084657607601460953384561033566655149528755563453374837990092701579843789901207551695557733441337064501453504830460273427574566078062888800315018428473510921021865752421164437810158944328239178503085508170896508693494664008498332123668971736772155444828750391692724767853922116382312639186837560967194093445645203765854537687609099960884484068109321401413843849956597827099218393712557344662307856129324920787789043754270328930536070284178185609847556268759168188252906136427073900802368139010296766662825779144872599226653604776032037807550442568052464230427173763028231611239611226221879557324608769848327612326359210037730124277739979484149278235217478612319342314003105681186217951898439423356260028275263815976756903664108967289159698808404589429113183318214478587703315669160581769437427014362100762142396899876839819632460611731654661611236498579879670818157399566331991970094618684350926725788878358782240024212595905626174359385315196962681925154229326316600997153963722005441469367164358142735467836477482902313742078824107412104712434204213720030204994596519488286775667501871196356169429578602176528146317054480392050201227142536658557370523023016309187750233660381183243734847923437329260691583328041693109607214789654510569601377463148969807633472282536394486308061439001749989358998410197653318181191754948125776268426760541426212424435288875426249700139882260612103441500008058273186149152570413588139018044226563463953442964980388786119957782563515087802070913632290593654251840984980296899057804806914665055835860760007450287153048121924305688017765959572834371912574663041584734046823872131913802073056325538407416432435587583584887212884427264451899958611482954116096334395359414904776815741144764250898542634169962961600398176698538039463049109103666887885897783003572454161028589478387299404863016684290388023121248756767684619676105583893329174359094043788355445150344007122041519601449365100392462469396433235882588018858057337248737427375012759792782620902169551218567567993891268345506060114584241144384246660862730148938240074510428403706829552626386299980655747419137625872135492300705053851943335116581947408049274626312748871338839725874016415463417129246167853716237906447071526605726986481159149709951457680230087292621543530336379216581247023670733567524565826578632603805316293584508501922763376600865988975142985817185779824712322259772251157555087213116504788726110697689844204963421886729083046106247666884841601822443035853264294552048983783703048363827320821878663377200351826018045932490394819416597772135612750577853609353704646180767877915267412649923978207626532991907532545178397705907897089749733643888697756915089627985285623002723395238619069959535036109873663188540695672868569205462891996298693188994881250295783059770322358459897012228980189126774076050772357608136067481378035616820327623766720520913075177892316186761626093656516071174251469254411302703759439804510233002891604168952021222292328124822256155466426077640364586214356013063497849460344428743294411990051774500718237075969579840510471753928516996432881108203064530822461333211632136763284976100742128511065452068955456126348489160561852308930216681656665325485512761817030648513619802457646416068194622821749081605840676432290923186730037162407302678337238867840931834065179541463987712433840707364757550325580522912874452015586854579471209093435470296632554245428294390462561830805961296148928801448869843150047892946327382373889835566116360601971706044209968372439398898076556706106608652516710511341685157564806887862969455912005699347868934571348924241938425528201607092239297176956562315284424684784681555927277184051029211168807512477558273584014489047967744113363264065251429129680266532786514871048884477190550754783534372686303300784244098495576316272092274352620840968489326253152590808380749970114123153092365678409450520790185818669190667245857541164778063930022885122397261116367505891173718704290546646813569879003209782927108021677186406961096378139893172334040598411486740274737809481333509133258191734802324380761856697799375384443401720253288191178526454112006518513463380737435247789133738462364803472816179603071925300077552757168139617083511031059368870762089308361442219944940014085403595364913256932980594661348822332678854987109139659573318418332038273660442873930181732186080131015271345422606705093631069870158756491397760808783114616777901375325875251140510065587877455005095351301363301116165374601542600447828092233797233231204599668724193465179356377034983737641651184836113325351566023971162422098340346052138041259085353790726203690309952160797386648172673980354786025965430428449590778416408058697664344054505085371583551799138344205548666024809003155191249018140393408420558163399189960993467105770661982055618981162635569167788143769704166011444681393013447054623172528933144966549644740797799891176029766991354582787188440244422739149565574281431432410253011847049400413819351009068859240058059092413928557509798790941339305435723931586002712320779844462615498277872053492307079885560333379701255054322744696500375757060140345328214935449414600226155544042081612586870838889581796809333423286276879395047319802487599806483995282148930978180952806129706858257043002320972671882483561376551591299837977026523838848821768733601785835342543936358299235942602704668444795050463138274232587660345940288264530518790994086035458612999487525157782065541710842371586165158227393422243439144701411687623500639935819289912514779300066021654424952866405529091133741313997354472856134490151624494032366850931253132831442571331363425360242078773922552787979638311292690308502092301151722292865228578826109034369081959578433860277790314302402577519487411453334631017216932125436543133751855750261502104347164048935798861978666675927718343368270216499596400908849078872086553610942047241970792537370016829416371845103725199645845052731745332668813305419953880520683569328132994448341792829999323662510609472870298012955754528451847797748610999911473231508186532126070408419703797888075159363943383380904583003745370176513676856477409239464375910541602231935785159648232694235199541087171114370829216733490703202372485543082431188465600648624425273686775254206076737124293330279843224858517944617811020194678151857832378742538987164271164889245290900201675130268467063814903619002500857049993609567025145075437735244730215023633577210185228120760261723990333516344799280968875686529245976501361031419589368885359057670761234598213924667862981826852862668037171918674211742896453191267034898676998794022704559335247910127004665389550074158572589549097509779628998345877878896161294053088799205966035323261649798625196048117715683566176208277819590284698497235511772126595749840580849402923915261331316040724418988864556263703314206481594718385252035389554439133116134495973370786086382740373829808069494948363233324569540917948518236599429189674909600956999066738612582803210036596858291186033502275129983686549427985468378801788264224182099723823181839692257970556957047088876207375561225912811738107915688922040302770688437573070085306813469869586136666947956650910461964279790077448830890733036215150931419583021622376090030914783726734373487878137042386176597517630280387553295096982770905272627579997486339919851741249648128527484447866601616250138116046214679145635069380103561798152748610889167033368044743590674976360952985915658040162244761627321642841694160277114751197765637982401740257104194663009563977327444969633481801774114312577233294646027895836983180123703494631285836222308672499267597903741542781614105341689835895553156583493724654215834515609736159096523513140706719755202429700699720129720713078631357985103463329929337230346994963515554455156218346264482495508553696076857551278295295133323719324058603639368354349172890063970318979253585387809720442559001945779406882251778234603611813650557851037533438985005445665640852620484407550426690230967065634351934513453842904860912398162844744821026376270931415804072263082821055058373274732424015600154900523905719153559846968249863955081550569902774507354695693128111643856263327451397151156886351316815080040814476724577624747740737853295887100468174047496495619882889041117646199792953790194013621836991469959167480885445609701662650486338797899040860071218133945279008151742155597814997603053207550462040161256632760890264903288451211664983586723537040693835965991809850738826461731616695775926342330329984807918961308813396511553674726547018495931497130886355126482744324711084321965625303871567450235315638014021554025511017576065418448014833222262286010260668985082926905095129845214674054519008817082379045278472254536086932326764208090137314637403056979968107820598822353700750470864820171753123436912963378303704113560250611717166825242718264868810692496274296562298739929885974615551773023601791371989042547538547855311094301046839586101630519757127577385934779468063325192237776591155116137114282079379051451456237682869506350274736629754207233030124958790936444413106459419918268083854556050134836914884365999670171077415258901487545481023832114661368406552917316428527802086739604731788996225849164023177529117056530950895869641405012339995561284329911887062808919611018809592476732871336388853483385470829818823666959802600398311608282358522226457430681782643555352781579619034071613636368352538984713210476101797167621831785941580907862265420401653820555275731738481570310346507080206106986331133681947200172853387402627638443753139332335088662612794458827727155816950513564055457854869940017779282821018270189480592026511138121131223862835056936417319002436896173912555431931578847639918888605367337543167825850983943399077291342316803201285300901883258961990317479220804272733712509919324024624432830883365300880007944850818371785270720259279410116268616183059072267130772388337166926279222995714151829601905684139346069674697454770620813512844059523153845696674469506746160530870321279953835220697090943054128525188282997990457619780021315153939518004411395132755073906546666287973029346480126424807207279040771352385073415686241927875160584977135817298742444167800956138091613040123275930576705120012987474901659507997742750881387093143703054540685308752653216146130243413774052795529990482166747219478158015871624040603135274676583289483566911871022595417592181620822749000522027167912580789424378685607940051492868984352331282873756351608429728905704349440004071280435498017120037616391421951934074452642092505684772428763130981755914147815814030275151988547600428562258160448127549777895159671399475662688524468500679761290544697682978150077172368720476198037395996571766419371152356017102637984317532977804334598828224096300241094757485098031089771954143129495299134491097302956245306421440558479917457653002894127710869547063378629454443079983050349559404593344037839170388359768167124462934853659318194324235190259592605972903472783161713592408350473742190310761439183572648623967037909607317919027992978167430223085582416257108508657128526652405370082093120122353257515162889918834575435607224815595539881199887662907926771545569402027443764128456091924251325098125446559827694219368722448290387460240373849973951963161988419589473294430174251738903456700732264355185813362084142369205777049182459260214231542561355502927934309249845772573223796724303610922903619479359974931186250658808643442919648892174085159458167553079134115731374594021791297943963059848574685273736892226824504997238096740771815900635164365288163540642124743296941372614550641111196296670475671893352919923065328843642602969730012154731316770490538466459679378192897568943128674579455550268744488725197978353759994728470305748535267772545520542102022011449263075706581748295544896138010080348675714365674644462115211824577338793014216633770844646242380575848332285689093991357018866600321145851938636204859446018390523385266583366154200035686232851465744019229850762954874382938166807077774635234553397743681540984552055010862773378506667940814086104605280404866558090605271348517236165103708446048123099342065506968228261698645333700629974377077226794908198698409212400448762174357085965207790837643587199004823449750457919922938707196409197249541934765264671819789124324586758534467839553836570794314417827597500780571940177384890891710459333913171143587496497978398258656189125593304508521411641753795202640962765507461993908527769886266928836243668723717868442727591521699601554834214874201076262751607888694929878581780441123313380622593242157393346170079341710599295026465750236298328832853958312040291738830275282604726839639011683829387156457561798071842518198408139268036177476291731811888763902866415295271294295872207190215843089586787514711472145604908756329713441539760808366821032963886431627097110439594558760592752318392231885630840494684653371936437380780498322635232193659587190932955089649523202512215876083263894060520864517125566954049674005487061365146446259555347273683987469717382217946526680452005069840198832283000039531933101548488161369990715066336964898751436633482711683823550823153127088777227257796209617672754926789845438654562257757861363343330808169485575410614393005551970863511326402348223694333746729858743943608366118027182834842638012422016456462744090422940827781909489781075489088754643187986954799902447072535015817822823286162781111285742635264536029503554026413931822664346657363732273207742177557730214097008981276921840855949110489915211227409107235863428699154563185728972610290898576517230128916242098784401519361871987025969828253466349530529234033066288069744364015035928284814868749744104342989748893544478484365509331468954530145718063509911196803863946546090640647574641199270368365772604597100854690139681517305486608720458724044414556107890346217458967020344421610519084817467883271704822905882437307292391376183445693631585229817298261773517633067548204796011951119997295206497392084341055873361468405320377590112551834850354236263816106201762803878541165594618788795279563602288915115920590645327057829009181239360846763512163484800627048945622081187048002657620943004497487038030683028225529914487180771119367324677329159496382497640735364047653014489308123627436369967651003943759571176666523082526930063690490370587924936563935569632156659176230509999196571963993938099105761377122114614291556693840143404002187107996697900202362443992767200858385683472390756989116862195577119018141042475890319610002203519423574139215811259846769031548833649668497397137303206547381355813833208653201379134053430598239700543453199746375291213232416676038455697605983833150929464480546424140730869331456252233737803379019420246506953973378729027499373868792556143153659136550084201217771386268435404853743478621907302458586174775377782461082291066523870725663921109284116834717169067519552746108926688037301202408067234078215813192134780321218712387007335019675494033545106330879920979165186217769551087662953879061580578416635684219171200541979024757021314232516024570466121243531324763941881459172547248241171367408981401651481526439800330504520882789058556864215975314061862508128337273927854586301814806160063697404589210772953914545416697923723178672164092924629445053584957255702587830939367555116863977013072271751901230012651735674203716955701366515481694317711783010042744919057328780788177908280868295748255647792297562542042140621620050555765895875368575340966209284408034069226552084321006991901515448453550603535560318078048525910962093946861462260365614644724802495190190274805957850246237562738046802374153015590733822582621510323596015599849314781849948021964840359147706255422193788915184673081221309180862671441722626961126298065596974339349124469875757503463992405986271900554125363289722014356250666403844418582182032892316264652547800664813052422311070214567133341808127185759192532041331342747517278585297139652756761689610261727624132143905616576112231669427191726474294745069063748707318221190203254021846020598281086718266672605803664253692429775731011751690507416039151342644709260347894048268136785248526209025575803251979573818020058626503164907108588855464620363411305573755072440555754081849811883357075452670927247594837250321854549619390509248311731880745671443950519209385675698553896241969929436565956587872472131833323488180539881794253762254779553984685359585286916388802247699778281343000814766825094867824678479704199756715978399829030301460483800150977082141279684060062022824913746445668614971873003599101340905605127677089192666257740425046206436248391793774512152266466419274463520560162873303714886517090708502957045592573127881493826521232780277459319140848087380253588449287643902882106457475656231517122047742811068671721685639769773037014541005884897080423207720330165912828634794334098526209837607314193459868151774610231084815245345218031190926103667295787158231583857351348153263230788354120987312054667647933404602485513195429044383561572221943667179432996242891307801528428394807696339341482334373160566003228021182132381697235348712122393242970885795702155793132592979761212110077048433197490084230836627599606411020634303687602420046422342894668489646774926700585380048595879886687169483847127466677288205207313027778269534075838690596735032175958001641880715662041636412847100587817752088063653479947425772645582981248030211888174246768495239661670645637214238891748456823044156627442540876197324756856197126331561647357361751848312199873501999272408279342633681474298087653770459197141206973736354495530839713732628837590578626911289207812436293180774751977928462141531300724411368799627953605247452405990611086197625876896852443445957243403219812868355519207997562732831907317663574656335457100108795657365710402231770267497726628571615327328760779452522443950943729336262457310284280476573322449388309125234237979932367213516414124356915597744524545371336886807728817415270170345940868022210778736521731031959750653471159618252653674895612711940179006495437227044147887709045459608501980123466603810246952347693282802415872904166765414321246476224767804317108154163808111142726489253621345740201618913301921431798770595187227678157831543371028270043572135464064247425508819161061569752214576830037213369311606864700924758771139636378951870194075486588262891756026658755817941825960069952631092186368133109365388188850744784468814591230699204921390339550794898365903640812740751373701224774120699655586917420751066898129609403261031712432246273402080163733314897089062280403265447689262090492909400422760242244382661275355381246192730063882927236674549025706072357444077463993988937621319884738773433925335404847387691399570184087064478726127993794640478147294543289972068516141669373299782282663049952656675015981158438326040320321015449555921610903157579089211390298758894360106555288097585894616305443470615047473975769741094050572165111267885348494414078771652603175526657479594415044756003070939406553141473961842040611016226857047847560636003637536617588053509899344962989532318161237844533915969178470823189701295991165475753607147529362560391118005203413754428252121899667617591612661772414586343420523432168027449496963498406773426601796246670920072539788919982033652045591645074538130444013753737004765369007701624959364492635548153439143355642827655519650033614772328003737741552053783365000344517878521635954304464645932052630600220116164402162897963069831591550964914661814210144954747417671537227841775843842699178293992228166229217785593814864674111084368416950782946679147318166053678951680354589795871456058131837259251909187651093198291713881113385892076267629635854454545531687528786595592611139589080026501574947487466694839063854492304135523877880676435612209415700643970225703440005189352895228350229798642609552626128987406139548381820301140216327179863147053357010385474364511840622341141271403966159404858132112333374658002484756402640341304766896164618515836786217118508908743770124188610488642360263593786189449506385671791512496840930025396432595831872081572513904995804484243499844285165078395442226975867377755912884506197467552588068876572193800033685883347536285962003458656627557378386845924053670350368088666632112881688111286176507393533105478167068719634176734571185659520794916567563168587361586638276203226036484345793914147319959687269749404292052734444330001170039733556701829431517887377997485588516514570170391586514557369935799723782207578099473900724072867526782571314460501273098057381064797678601889915300381390772491444519494744392384959392605182448994511988931947882612097701636622154622290015905844831975116519783121643698931937804314406249959517386574882874137516854378550766650811223498894191014014531692161189144661739295407567246223850408682467838723065817130453385825358311340485700453086644933349242815889659709589227302475169293413911975082987707237858288065938058854548366848476388486445020416095236603024003691055890841615641333699875489796974307381929850486837489155490887100422664162017155812485693662925619497981947024623649290717001616856037492918634770570038573087919489586927487653706013023211814261547889695446455371453292026767226214453109704559085998876288687690314258801179635432191643175818134663736019803599662832123659303785269588323117346572036874069271707772478334709525560225067914734651264595623592766229527827192376226641238581776091793497557915243045742677696231220375345462939330393229783462488971141076930780610406814817272174130741303573458022059643572838923356138841310865249027608113524735870056172872779621452025664149900934617773389135110376265520355288475588443728227101239632799511861418716085662906654240093301228117151207445100505262752406371011723032053102775661911733761057561790494690074748700329146433149295969085564284320258425271553153193188912477892804888471884095961749369036582643201279073133998602815314510162083727955185063619447919726414238922883880187232545839331744942504290980151921984673425779776098623357631073851078182436740660482493330817874391322278779452259365058514140631673255442097244987210865083189021818505590968867663538736842562000435432467465683085289406954760488543254931501181885969706099196488984931927936722869509282883750151890268830152697393754146125357832053305615494755156637236686362463400446861160672404397051666284675144778646155765485168257731978372427383500496106370399683405906844292701747357211796396922567399715810438890363544867496347968608506084196297223238943838698591614731103595069681475019212588432021333590389952956290057201921534307670755916801284736769872686695438186711918634173729896510652990267052075115562937726299888336743920170217409745988734964938503549235592801489363315293444722415698443470282077806378500374865688089694419758500745559446159063901059759101459070095596864946449561191560432152286877606646424065590112104029858308098779333533809234074488285358880973051476464519271929937654125180466288610475265670996747358399903419869666166246595174755206397252442062603640737654603393884647917545068518392619680453602651113418148065941490412946308378211925390548780302587168029289728091813037152919310015502838606198159691023202453178589882930031064020107383165684901582580483336937650792807280494787124740567561887147999568490255845781139846626651395608592480090972212640226119577543592251427168176915879675684594142462763164137411083185049506041439317715840149964015467957064058057319129767629970268461427778786826457398030131478176927669815842751389822901337513995203721446960412411641410238037157849579137826354190236082874644695568595702403114280780932254108726026558051306470501991771517868586519604713936133839997172233025720670222468338223535044986776450236052848857281976595415208285353091119244519121323615989917218253652554290493270950175079635175578256832802915322012203911370974861705085215034659333278226085006859921229375584102433594130639855990237728069497467801985347077117245345268605217745915012523710771806195966816774426870711114820060512993028211386943730832106629707658979311659727375628636319181462157171271407812238314174166720450411721249272339575537389761923291103189289588754992021260891332751926902576014572555744525553278886315796231325393832294472093099583271701044344782721548590921156276260146028346195109280164909117279949163112434001179953433146829806669000371266723477910285869392664176497516379451148524063201517795361544590155133781489452986446854571978983693337840155691702237170481374420858597239397618176512399721622214626141252968320894627682854626137322717232316100595364650302773903683459422102646287050222012369709763718957431995842554452147917925522061388114885966870755658865078901687763004580968390616216564475469881447299811260409928786625028440984259699991489091329584226754233577742345042249307720009724994716547336290046941904849085531804276246208252529321741958786101059624423268937943579100474199594667928298971507024286595341316151962104712457746896758783568170819565733848466775732394345912280222011747506090872075665365557845599128748439772850133834315561009441117679648514777944206986723885281512430036974043288057377325204791837952066385306910705065538303713309807885003131241567561856128523693965305406662842763303140528845956158531416578759226940662411687203581930126259734290434125384260721736928842177354108863702644727429793670870235462017006888568226213391831973339057650875128132501424438693856756843672725685375338792063020826232110610624146594798085544602395232462333340753564770924712459006333869639456133762421066487544006658385461608495477039934712083052351888283454043611217744561134329354012943554258727875407947277663608483056756420489799340775959450576279286296150440785275332871393457019367622095206210035654626776689521251303782296453931393498248192713691010091630063401023774892611855560755942536764891138477645314385177381298145419929001561458668823504356270561291781909924781234677973813368934214443027436485889400842821499888168353280096996450303477651641060650699632904389605947854895166196412138301520123594373238142127580208497800473167228446039814222827449590876819076902625262345372721113136673270737603058985932003492748351127501446912697125205743913128094683259794154290866478448936894934127917474677509258900068173450914018849500065796749708135041693847682254080392476453950954225615741641555909311583086455500291505698975446538447527988711246552540966900374542532390503309315047989868829863984754855518798341055143072434248737931404286496245228020842268345314585376496441713939700655510521246446545833043830164683721488355540794287049233717887011193942544800905606417103220505466220532366839389464895450289780763959716823156343302698089218715709279314001491132085370164709546019947190905863535776717979615774526147411413709527914490214368538122879105889764938950667143710962547841131123173337346787762573898730701092406755577954037489359912753716886637341976034713894479793316351196885899093236053077405142323846207139939296855577093855310737639493070465184253809643803460241627069441063078355905513151496057926005989075075167804941370242186092512848364011044876886669502110571060054472043084567720851611813824176258334544323258820949129254676583584805011914812863082774879049795193066594599503800332890924404549820593857266817769727464151868826602395010251940983533783798362340379397460440068302807650645318979799216345101592851129193266347614549930530156777157752006227971941864656073950676826300149568422886174243162418389932630808244610254619326583784762712689210592847763378407452051703385091799956469323798819404056493069651410278634534052715849905723574718408129998464080667345179492809262330015554220846534888412767145419224639619861514039490134004749248343199421379725973505563749215947613400118613018097056546635812439099849820158257313515094947641276966860683010348661790126109963180606476249016436500766305634270618253068328797633438144710368506296066541321569438302147735931450359580604611237278845789636950178610591489187511791361571157199648771953474331359779359496277322176832509401217269934075820023995538246793936374169953654942169954411714498938233718240635132421085958758736824695175553943116570712365149436644985205743074357888069921891814909311145239026702312068947787422880203373494798278722659150636729973129256475991141848490572298282653193878071178875575340235224268329182806799316139278588719613813091437071630176253706967012808519122088760052777342490106775948186325882280903400056977952795384676642451411576169442787743473657768118569737907130093702328005259021799959077337451748966802864101962692576750481829417348101225770876070582575206086819516341568452338815443361151776652325063885819952594341222581777806863461830650343233269147394606833477948450038106373571068501236933131040094273057335153732329712127505175394845477909006441369342389450216983446257920034854498850580982682764334846447253180095145220381936061121982988831237100246668436695244440581847579090081771453219142753958789775351960641785274712852040698022727945311787772457381407688143797260366698602956979244923284677620879725778985429514182656092491476352228663236239172008055117715084463936297747343808687826618228952134211619933902314213168676901408304928537535838306410362824844087591732460584752599974549792271830415024498546992784498000563061126688317268247535791373117572196433815740130684804458247344695109558949825073667756034731735999071524939916843588024248020738253767313224816317596326527300983620670296343642225896637267922734980630488017790177667301908212086075660847429637307662520238981724648066006859281528849253674254955127334632768421314182043675777811006669425699347621746255853844699754262920959020668522317664168544673673710690630549084707349017053302104743265366207869916695673587188418470052138843163987608985070060510497070658118855602513744503980165414145832359481724030599912298960325062295669888877736130199331789988581561371749363515647087421441271355993188679703898225642202127677246252370451361013940307616813123533553242609886583036237186347084217825812494977120493288928756881309652901810628594593233058032560471368099041466204436166042924357391140333916663402417795182303062100641630851394584779696881633429474999962488910533274030265856701077851180959884294899400957485914674551305495951296702176039480225790976673929875137169909194236378944163267036940377834469110615152475879557422539212115089206548561487685938892270126500820509187799767028421625316003082025799822409926528179932072626459476841859716277637158490220506063308255650024426775466072453420570602085677092347925228179824984172865110451300220648952457964511309923425671456762269399251319599517896769799002981438436436072576735738210944311405366943548817459688478883628289148882179227119318302072422245970180136330497344103611516461399336313075894744493905486381369990147657534976404274536399311183923375886439659613970687730728393931816455627638626620990500176352999279244465626661125284559027542216168874728459228203009375426605808613869632802600559887090834535387642171547449005484982803132471601558455749031209266104341112474623650248538120435078372539247608220710749207319675254942587214007732442607034582899307904134759532517047122984665503977023683644533869629354912760993477941412440135131388381785517159969533006908875860908139646261104576475265264586611198129714891475505198580750193268509835491633390309918255737155184388977369543083712873848672078358769366428466642805415263231353907212792710613471246375135212369347001293984236582706895065247700829589227772752938113809554790655479360087510126602578129553253572036066225114736331352804976570127990422492820588439132196293869830746541271659379466022744474403153763660276738125397727100661518506960592006387199546877154968199895513087635181614740580322800472591539395058103474577378423303684451789919193766704761113040273583572843304242310729633047927352092742630547338951117084775410252305531675380981439527938685754085388355566588818239668806651390576913011176665127728635677482222686960004631987383113827123215332244039480422453837451350649506287704869168797974127392040918180471177030146013317974199679661108850457549353002717063152401289242841361580275423810556329265646259486155787768352727994651279906474469699747092815581172814418792442843670152355944053333559860476608536617070457529363304541793029694882494068997761406811905406052688733340128693492741218094593195996048773093264912988678837768204619346721869718998562355571482573171944711031316622183888034569075861196378760254697127681239300785904161400699085568122769459580868862292197789659377985891473502746450735404019496738196183417990795858117531040047641176216214248020355190492687425853604795401118387662208486878387034578850054613451470453769389880976724154669543066157104393293469006063506216299008722970372028464467751913696187929899728782851841017982341155335592338320892778195985495505981919619136460620352396597050683119375454421120020373466059848568040646416104691902466669736874577875660518852608211817315547288087942545681691354842386418156412725646621725913395636003151217945703356822194342231478616336457958807173660294889086662020940041018357534324185631816910700992046383287626132167763738007051228731539744825742650252502284157986166523620477246442700669398710925132549062167554556323581643715516702847976257335103056877834220331751607916686284657802239708975168294056508599406138332643755150564875977260707207510041435358698682082119181305361275234446609119457932294119003757071335397418731134145692651277219180475775471385863212931328731634115229419900940758172864901609565927870322283268260721820779963388448953151488214858822943630812741223818043269839275040289966130052113842967504248528023449767653240611202993993414739320479567084763308864980634425783710276592003361302180486271434239581988687171537138603265936592668348952640027984147757174094492167688351353386995407522863593336190237239947468677049719027531337740488225144784916264204764347196985973010466287229840779783721001446360388004885014262118658398590892765336089509638816803113259498072266838906689086245624835502998307472617161033717189698531176447428231334942576686361141356423071165027417135415428982420090328152048072266302855526713311935577035973852072810645397682707834078438998520959499159622919033460345428827318910360760725016917712473942106757862604961904619624439382632543675399735042186943142692045244176733949734381604572193580315745379981393139938453966191602862901988154019796510729444186038159333831586200167236340323097535589877332059512838843782775053424295805761283124749146987482588484935135889964910481610535037394510848051878035576134388386699954397292319621452737311046077267541671388603687675887639965609609087034812516356059993321980078547154834946378314998296020240459506866341982374403326561236092187013617219896812547793564717490696779682741187644370526168888773845503074175979564072586733911054691898963532354665211814298414557104482770632713917204853661305681371861975718640178813759089867491526176383933169957981095942097808511550293503791357858965744430485109063869463508700595621391507905451830576849338067917072883178631631930610831364641999545211228340612289793573521239546496067695877754772491093924306037130346102850976771450350235086536204673856717686978136321250788729881897655534327976486281725708937953907112892916862894391540790003123282706278082985190806393417017544458116194617369813549289025395209136261166534353840608060577784324037737336358186016400464177182128476686297377575741799156197146368442663418536243920136750532604070615612015953510182906605991075623474495144504368440256718145057767740840036405695315443143076221163718637337846156928995691739121159037855767196458267713899751367283285943609349729034189492066471030204072511018161085146189925069441609263591641897501121538860651427713018214918203468558373173599882627904640720876727083035051442597748720359496972554229363011386684374585467484622601746078709793113048093420691457377199221061305018664563125827184399865273801270403363292791925817694160791502292900291118803849277389595200067644859636376627470182060520870813013715431908440543119798690008968853918944023239464592559043326414599068603471025271612031193843755376338202670344806741381365883515300457513077493460111228351132885945971552070433563962962503215942290339795612647100541763878262222376203944668138498583465243502652822368811295926044387769636951078113189167287900945940346604760426044054830034988709197784088847622781339279091249733505626318725819164776266142341890902677060872856490575888529214252508005388921178777325619000250321581054615587031857844776572694542576820374041849195856331437667487682267080438210211240531398016732967007340890187299121466324578575806130164494159988029507016982240233215211499586211501690426352976998771255466183826253979461021678480862202705488509140881305907637757753180836297086456711151805195154257930688131134068073320391029987201366658672974477648063022081466412319477306712325308352340464944991602955130482692179521105297738759592048806758397992524373218803081001096798134930196488687615000163314827144648779380494456729836991499109029096866953450116308266291291506625227786655717339823121199677422112832184472555595335484585860229828114311886796437582457255679108633311109530318003894829036860199073509145519815194586689099824128058741289333937525502890815859531746928683790590445543601072197608014450813463692787534690582483945286505784715045750896829082867595363931407573448775506822344564596849559784966643619329976233948738294665892520571001934449171388694756230166205479154870166424831934680328785801149835137634532969833821948567970857002480958932879048797160320525619152699727219603925460056897121662942307565054300905009918246922096798327103219423679656957514488475743586105040765878532536808689628296698574769660373584995525922810722933849806675258741145783821277701087356201597321608997830457407113274231421777106378274334284454492136588319539007378244010459142431134127706400318594054928090623901486376456358657063554885498020457210932430747925016845401995403772880681946387816653386744407814919169954972519411690897414710765528503245909348215601525222281798975248130932978667259960609502192189246210544933017546393856063901526840412000833126999896351330527176200521226896547339995658256897871999889656676468603790351660176981853923338632057633878712503338954280033142175047350903513764708597040311500680587664192608196710134840456584669708754605786004606821971556811512456337654177519088480069658990536365067789137620779558219193644790322111696577173970839505279428836948858552534002157971159926473042016501010340570520979667095199494309786227587424775063141967307114504900640949974848825964412623711340445164330081195955339274563955672269272160028679560101080640215719958455446790370301790655467476640773793425218895269851037304732019052792603178093228646880278823145004267212923300822789384323934703928061162619075607109705624305667352743274218464811533105889852226663490657396950623811609027724541067580793349499851194974365487335294306680135239560334594852175146068976845641125454569338169010022483891257170967877252221429382826016708648448236909958145415180048815922434819930197753006997360042017507903964914768347212061310423486796893460649218993117839835055120094676391936486911416702172346963451811998491093737602286184634800145967137040982607554365135163450961715329219229496471753641990339116742620636104789304600814801498047347042849156824421634085196187336584685463390856226266284217175804058295036745616091025090943346838919409669403550322253390447982691357522846333729582195160942204075502927884838567706307486688229470153023235922400764635288924598070399905046201249854911681666816185537121477961616797622390798540759943857009353743914988811991943442556186422846238891131759207132532453701004828184676775250544550612128561338320892017610318502672892613681515257811348602793166749073053287034922397365440327288952505049291985768252095904557642264259509185199264962137726948152829872357623229942342178726589116597946002093024555340480891917170092066061995085055313372864602708332805598922914553016131632813159793155579210411816596035593906449627584588252608225845115396016472741073279630263012267686813169643229569905613472636138267194683208657742947916532689743540856998737414654435586985402436154632250197218268891138781612593159480850868805348273548913081657254833919595862862420036021734345801331979473333262241547261162471349774704518354992398132839457544988340639948982892747621399970373453515181168319047365247106232393058738024881729393895526105552308926021847863174743254302627480107319651163768519925113874941696762486372480421582747734998961762308221350103682584587670431514437716302192632345940105744732257238471540856199597296304705919482952312854319033636369545467137434271428884490031028278933155986535718392828880100678662306438205310978181940535761785983118421748040408527902725303747919510706917142451321761300804787906875936026537893043205181855669524691946410699864540797058138168426250063405742866126803324488867426910910154299925528900254974172387711164633730504286179986740794709033663543049443003238751363311627570088725602583762534379790173254482736900841955718867902824691353010422518348155587300389463880176221114175162872042834462692269766020465769460486272231764892415041439256295473409058518412459228372749716945984265776732124337430018835412092631466448595336967789350707535232121694523392112620872659693900449568989187001992874883052239301031515866054988052583121903835409805985466684204936293921749239384724218655767223527166312858884740350464507954166369517396054942362564686395227305132350488719436728024059131060858287239399716005828229947857626655934321098862721159703354163607559953836002926546950609562088014559871204010276493070240141503855022145148453464782964233544135013721954810862316732986515945183760749821851422173166144002033226498060718349471879250431571115577600459631712737218247065228183001507952809610368838232520606920710547970343732391522694268285824325894239523307048058124167408885331716964443529991690310916441289403989207664808128393415180011942798650426424304685854171142892020981413683279330736268122711550332320150904896483952807408109526382163849686209945488739348336642330460604851303300263150147225367114534962700386861973982406709526904137676079340053751065245343285732782266492529404236513701830468210779330460233404254912594276055140016439282618977656788930086573259070228672493372682540667920643331204954531886531511127673856758871984439861295559172905402183142915670475439693373340994754464620800636927952495174635294437276798152382615466164165197195188172005157485642798872338598934783883938587065036842955998749468028662554303556366817920577220869003369124689978351506129403882112220236078868832514765559077266213718599849789357388427383082030726163369513793318189539138653576854323018367184450892447239421539522870016268086237520000743925717699001203442349951973250188326091934356778712152645596626604758008037166260732854903349777389485839188207851737905124892303491148308939320359437400504756542467236287380375404661088953873625095956714405950594799447921575493753795773469466139936739186269176119756143122672253170511485518578546640120643605017679222818383186845256023046098778172499944575428031959765921895322053921495051613450140587231664747196311758147278203784842551640660968859515848421526654876377923485053684099040001800857315933563324913239237542897292139544543404904102311842755857814504846273866652900214656330346606456614321716932534299677738775939577758734407887542136949264522956754619202121452689732173389735345929792623834563010583137862720473159565478758236023210596398745490514516576590758754765307020267160041694750262856637841216236118044335038746954957596690474774734722971270387545118119570690961884873210512926251740465051914519778834204120859538498240600594184260880529223276467536723777788481556932688978213711499514582400696873904458476727121650382171354100180676431642285287546190889083536795219064549075931515527306100727043061644847622727744496466410891750775979624041789008886378443577766695017895443004780596014269477468819646516570629486517231158148185947951968380552227468024851461766712492500394978068794023243170729803873380904398662403078508622256811915651921139130627206103819444298521224719499995030384114041044563846943978318418366264642830122030864630326479986129700579187473061859219056997526630326459366369670168875288431157772639554435978975148788889991243971623705222577136497324914695215365256852452913484266445563711261599007557036681770822705500562374937909496168176332810266923214648541731702447449728309073225385604704201260284282803134504577695794917940636108544384333744566347187911434032717241234504563096751791103113274545351981261076809619415632644729832226012156314204750098486232187981350423822926645582067952915846529836752913627003318926701627496684697639130998172018351623423289550604443010336267504474550266127731851942538090692079707459035896611548252161782051654557240952474857796571362666033512020629756250524015681545222019261359616410240954854307151187867395619499162572948939032866410482139442708555345645505758360368776807643981790946201193454574220241857308461939796885526764147242697269895069119648419456578271347284917236559419012624074189111021020125812583938071800540728898483970385767833008254495637683117281236268730979942976814857687149390186064222752355608469760672523346092763682949000231376851402609952259537937444603407237300298910547578476114190796640981906667818754902788396003977357169816794750113026005717141115179832428730396184980052952993518767388327357575666784653067985321804622766105860968675658531018954429474371740555915143297579503762961125984781319960272907324242472405959192237768271916154197142648055712388284319971095290030292089993775024931262263700277209860747250155450776416390700048591378977387349112526206055763297947390669661052854846953633388176040005658234064058984618102718854395437447546288850293858018702596064177907215122630412158880892041924794165846976737409065827352787913346011545359927584885703284788217358341256632200395663986438071915923907636127964165938476294363385204139169876156103460271607545276542122064097398418255937039161827683142845024181733542408268549765405058591934783752750090956113051748184998460405738673694000130132797212090637518560824139728707439219643155599506823227762913181759961066920885773766934402558895878979185378381219854116483401756983507069159942095832975643478625529828367230129378766543774758043461754212593209544934856662142483348396825033654114024288613053698650152990589801013617443863199308155984852085483230106612605614647484954274498918674071720700605534931206596097858005885369045533648090143485403058744762612947959831353750096603071971220196148358033035737483293863631677092064459942239718551941049763696356218611194292422739713935731261372086270119569578458591304919537887901289830198375870566508274893250336878922646795352257126256173125142999839387317353193195493586351356488789650639763737482028227268613808847707664868148470197934495911517213389278428888661038451581185923769018009993456173828898572289317789920683521499445667282334149525185862801881832573843743091707685250317655583030614257753469908808675785791125853417108154579201006033887788230749671827418944756664064813224254502698074483937993071563652553874289791202432458048583282378797218471080345413361818626112745330293801470422567595982650646782159119019426205667803562014313036895576354821065679415806519118857898289174551869422151134128238252289045952832997962092797542655042715353047166801974541508167030356815006084736372768408826752532943693139218613375943478541732791158414968635759210582756227005463078298306921213599512024278880541917285793448582410409275841530267651785509802384297292042576759666506808130547834593546266122352426123097631664878771204609709987457377048457341054061891470265224069315338014368265999822629862148894568904689463173246064755402098672167429347804743001845521228684423997533930514061711408110955859963543768347298470628074957925082792376904714893749897339054208425814099911452568057334018932323398605008366027023797985180899426289351038335779146638490923528079023902834749293879629262581314784942460854460029203336681832806208672136442929625322434746004440323354039442119322120298307145622278672221451954362853972943127614583510604418066543829170643371682037986483380123785676260758974188809076143635627021962189890760970127418220055644310300503256129520783621179410340930191738459400917512351663677862591252888112719385609426170785401702496675995097986020670828319394192967021234433667623712085688286193589260970009020781893155435479465826937036891763197117919997847937055566814691901930704350938110142692298413323496744759094532580254220616467947690318784790766339958271240373884863958733507936575688712024330901398449587272997175981987828470830430626982251343401155986420835768695346554599106598945576633095552298696243441294743611199164330620317115271579673165682604690982207277952004392103791909371525429950281649094983884581135767489855073654472151671827837049768877958607737263317069887509294403147785956494534943527315083594149215094583542464060029799289419910892700205547420686282990084292933897631326658540748763194854723806722996192759966903851070602803776357767579093112531395207898480138897631789560300842234166547431658468119952882572116545563276029565497208564311138586038436708915501402698413175738020817119049809351508206071961755306880732765343777715391802925816297601534517748039781451410036590626566589503671508420777057773461330568013731417965022238095397742546224130678114226194823700492584845359657977517913886782083303943031724223000637467570627776893653396394117979305664067654382408166499555057172208539519807762450118732984321523928466428883296253004650718139719007488746746398250047150641437109949848314839082608027386214751150102700381146721201524748560030950312256909775538927649529755519951059285676834766716942532125026100340559374665082342496998705226323260625899062652930809408657276694613583204149582915088003935039153820933533506323193102462519736979351762267332455096839031994036925104403004516775604928003545407169283661274925009087789579390990939816210521315196120479633109813753536787801157607379166298824428388551751772523671587737319076751116705204607821805573099802396367804239862449209377424010783145922106932307023773895678068004497748399970629077269576828984642026967459071616800466889301420010328975570331448714784766016306850371182172179182100141116286663326028366752030095409184166094735530993818133497540883970877965379800347911811783632373001527831939749130129299799401799530407248875201310159394470323423947202516387659563449644194637358217342965283780383239377814291460613878727533793525699515957778035429667769621166636733681483384630850144069975422374540355181652348549853633119710331366737655641419376640460451615072156312890174051368377204766257772613168120455170895137171892450437252214421017483835739258012579265611291238972999922254584862755745919679725268483379661108643010746914987267623042732451662557840819830295917300635178140580759728075291577038979486161641106421704407012297684852253671589462749746031955413727334444178615757563468360970904052113812550052230427766539399905619221130468238777120360751011320476368255996237921541648357061925230095959782533298584947611868610403931330240271966492165768347443522319051162199048293342191172034503104977896383150601287583513773715420047744943188957148257694162310683681505419557653267562489200792494305992391040054503744259025794597013821843870987741833847003133470015461761848270035371611947551548639403388010376376167351342203381250563617840696934457793225416787653984901286167070519173056405037263969919003264176083063087962143499221352482383880040522665087381204806532094428166132203988563847332441157890592641084699923446623542125246012266251465129765436838112054979711282008379790117213059296251577065986991461364551985000495214141383489782073265571858893105007865339436478034291254333216604353409183632865219507297895524161950513261262229660934680720992947250933396847108524832111636074311279835160026578990825649591577633020103197878480451047436192818260980240018521723177430330315855455118745924869488510857283620230589157160524463896880471152849095579785283239966368214512255051238925649862354772347168101284372878517564893741730071070545877680025582023941477089049140090952080979073228882983161913878493520798102918221379173096716324816932100670908001147723227193297509068052061866806345223062711855539976725088823965680768246420297744565750643021493305616418667917532976898797425750937133449624834695550087665501227380590440246833285990361494121139839719647334093560436020056751879278612707793501552208043509356631637522834357308199087558499874130651725339816548997963098408677738365455176538280115975321739863233737895546717065325390598072448756628312145459451791115490852175204728681077431909354664850148078008916694696486971850414695973324705546115945518110549163567576466529803133119973335724608020050390593359471451370634846256632980872910011502387065575679028086076967488616719170410038239687600900230173277784894837520963727490951435957760809422855082699339962738932050068161472392275613277202879961458533357466895866376408117487983966190569978989826397498610568688730187811293080850626210167190105124655139655823712789601178695062716981275743289273552592576405531118837465706078867335323305712289005953641946249437712401909644596458683324214171802647589661151852578472952546732574227583176028055531140973958210437201784304119575580847788016678790020478512880274462101342868121589499034046903740092060877858349741411822626695084330386368299654054693630370196272876231532661310466926014549244777965747222648883661380027571053084862439382547942087530800752824397767581268153932664106609682668535570185155837711798051755941377336287065527998282688776823846514614143349209044135333839068474551023357072588363678555339762641462534083489809128470243344695336424940068033495262379512376208231983479182985809507969308858944923503824356796447521989798413457678131286535766028185407032038963031055981146286400108455967943220932766553439240474168299724692128429677928394973272385367843812298180898962983934552088524175160935977274151619852049076399479657524742171439546862437538300723587269977471169368152349154721703321645432805256561196979299150070031405368150660950978373423984254389299675215438160398428546139690820345709822458510134819999091941328304219542353518509791780818446550980623094230266713282416817647619284054672682424254892013026187612926794567863028145622767191743138719237882162296458140859238350770110078778373446144681388151786219086762132050774799583596607884929863901210124337926786302604972929802670645284884698364012625368569968819927518835560623038675170471920981296332293524698325960563432501482987408885136010260916443500042170305047087375870050944695799473709040206407192901310150769674597647218586814718656268651897997749424613747696026863670095056175447473523272243941999019444199637270792364700937309243515833166296128753208727597941293211724863832033026100791265587938842920349152360579215608060738349567568046684115798426603387395280472930811204044251472379498492586795760583031986514198007772766616911477281121224091912706274715511700007312221001056492453187718231019602549218855272153267529515838816844361258013862998537493804918401155554015172675948573232988850121449853909353881315751535286806451855569437482169647827202747244710997587726709750819178837088162008001120346707031499867904738780604762490031045617284246083837486198283210902358910938308897192080422434550303190712301720277643027552448161644529201116118969833774524114110236186726456193196496564853032587793148784209131448507471760361612035992719724511204942391204663508694764195164111362008768469945375305404894004295467728977714535277840266754951987332417300360971222603575016046472409879783610937894759604699378820982438661304291293078052659836986451574465629095751984395015816233163132458548629592367143000429646657184855896841290359256036907299685540047457150137397582386486486442637633600364887598874315202096347995449279713372437595546753425237336890941288061458671833404817482835973297915947410946436028343503013281080389490417069232067220302163056935861465792223713324981760486644853166465534681915659552305095988234584390941186515647282006289717053472886442511690349967006654944507004548095623401326207910969492387173496612223687074623435754139337075327326448895482511121540616035770399778127040064376401153949993036100891413988322388735179724456297770610826373698437365001832295805770966427989750067834708149754453837572424613654435592541445459382901768753858054470649939670258084294912868448107172041460265124672277490967031651534482940088142876524178583664612913090023718202537553727538624150602919592247960431633812311604315291654986238610617975679993334948484457356586604422444710625201384657432480341856384786369781101116787763361784237903025117496153568844554574481692346613895556742624910443128108575261286428601198719056249388596112249499889376490429024627982445311951317613276619560406098772693384136665553899976992558212673762944024815672436228649807328125714120621358270118130967290197715170890304718710756742764020607766327274432222759970799465180261564636048620745152174491558057696700282575897044698527084543151839339827797922239103664336939265804326576050588456891765220466656742103068044401112611832539847090637387560147265407658615384330671482120506636221002094184501338915572089133434562987161601052268458184715453175527515940613615559107416632707240909586048603807918460406490667403037085535991222708641532213158206703462690082844875133199384769241711218122067819571358533048552424134733631178640706978158435802215974776615147794227814897602791913828379907999766490735672844119152355166218369275942283139970903606338100612802722763491359965319245712156133209389207982380510502884903024694319107274391336381352633323714767501088710712591406937169823858268708480089539177034466367807611461450276164227844881522224781479154662354337247647819883364152687230785826968744226262476120357445956917405219798926464690009526645826589721391346811744151936989210666029089694609326902146522136948453558608717164427942491793201740508315505380597646409931649163544835374234066094293411016458662593981244499002778211458053350928603709302568786475279581135949011740626126625805957218876047097576906216887519858530784872601953152891113084225814430256141871106940674562502297812365151886893959676710684754906783374215137541433493578455770297033243874542578203899977446493769751074140380766562478418839509755392663613375826512035179804364841612070579890318759349319779104601152941213358714357764236791825175437591451101155132172692431047816915743167073401492727729047554752345572843875524393826433594089155685724478868147983290697163574111553085762134091734448761085372363393802269294607633985382502263622423713550587850726877889167516933910230410890399091879473096847063122574356424610869052868969087191505341621042474156499317500148347865827684717989405087053228414361878357716894535565500527933498296956850189395117105984189122203540527834593856035115030249977796461498306058541858580857282453065138248782197522691099549436512854905211082621314118138830224319211095022571914741336529072920626986870915531462597068829734593850786853384797113822062053104833719689429775392448424141747220400986266224035578217601242458259304744112910677295266537544052135488121409585289835999559702213088633730933870660907187059242050888980180477215652533512655175236286911952892123875622142463353727844863490685101198486488869650850804015983655326536340472555931834417832482621264132398561588885738350531265205209673698994564807784573839957248381542921559441299357870274182290215753979326422112438370593412579178536388573058804910711413990211570879088306252256410372206086831188395765020025762920145767199351395450026922948752537474659738152754384752913006548620377975057758192827218209693196713748710224100122258282531918115464648239184115611643192211713869583238663910596124440236348886197930738396300710350154803646899468489297170210532019655677414192127021097612843296946220595517950079708431960741499008387558403289124891826651968909186466860961655086206609109727577393015525235067800388297167681484693047245952658729773347663792639913826127082270307412388762344437455429577815465901630442459244789035233830061529826889135784263353633433701111867241750275621428953551750530972388342596384383030125525704245367599738506814966970936688934762055704618649915458520042525018750333609358812559329231025084368693618977662149082537171312347113996911687150230690988854278915200910875031629986657637670722763264537069256943205970266579123817148176809796131325795925124191113510561602726891310482586418286810131346743188183849321673966106915547167088378067356992520805301285423723713378333627200615132553189939003993611095206062335640548761391756905559576675084511450707116639125752687401214378418336203290394340567583577413337011436919662878721910945586239197599602150761168807418484898459417346756751429368818473490491335459499526465871331991867129255255754895448323275399638360131788880285638182618580212667306312783369792115242951528223784928757680756637497431850387279088279012964618196601825627407951947679927436030656323827539743598003882287946760267029774856377641010441496249476667798898972692776125598848312633114422522217299903850912341583853817868926145406818279957311894496145619947846961919490054191978680855792983648277333011415843889345378912644475991711873299277278507919120219804244892185108782133507650965723408325811703232194831239605435789292118118415355667098298644353222277192513652691787469995014685125842926506575540669682944800775942419582812343805544636144680856567579599326179804647564435599216749378305864595206497756362593481310100584044307536713073363171644944970055948490196420900213568360199406780085368939699372444413957401539109520855633485403838903381702662903578309993752056191584411595039587530461275669912579405981065624176581433738291124750387483744220822337649074948955481030777338916764384392213307952895846843080024360805702720739560047555299510711234933744662887439940615248594524151290808950816926938473001429908733065026607250254378237406658309929233086408450032862571773603582982570501914973016248969220457299871159170115517321506764993440290700614177933683969527896639412456635396082998250006066534461259529946310468346116957211558946034854775313499030816131255606190064883491953212364397483825051623416111760845531078492201561163067354603185982138293206645380773983555865231547726003310347411756518308787658715914407975317733740989285632521414617605815625219438859085177003525172140309675037363818455433308609894930555888657317751392055773939681029868509873281804835723364756600969292250036410429686638596605231063389099329212255125705294552643226122885806512588990020242255755112337469683066437515279699739542962470649709924514700973139654096328647843750537300501297038770811205984728361659377383674022041730840915286016165404691743153453877581522887521795949439053673608388396674732711525961527807151654045796549286054486902167036426044609208848600849248988118526505139870530700838112190208730647269451350648465949884918248871919422291557579051258026088465145257789447036726891248111839338027752297056743950967796499907577746476433894883042499905995413168214460534181605930879260150784298486641191028112980491972369615975741845160218246503078759459646074209913819556379755474428172441195779762045339514616073496666155362766000043108829832240908761144053739106995154733671491763715740840556813323995819598591607883313849649253257462058382038950690225797917852480286734803660247199548879565149979403717146269918712480649800638637512460984433480129398676342977391284547232370734202479210208449410179550248668575999817344718476894273477991019707938588203941817465477596642516549541333055096397065336341483118623259032082717917605890187435375153353208650718654090368579348781880920302421464369669155787684002601914910275663526413793739624525902177514043997114675446420837953550787023815144256957095703762322131246420906505792853102772829969232658871738421248630417063020229306880185523121788175929527306406731660359242921509800789622075927419617891647761863641574066276653314032731899467949458348303118637584137308428636014031032699876899469880958573542977918172402794099660226543132333091193059393749061202610011720003162796801038192118373443977109808476626460120033480238807880346102157356117114204443866400193568266366419917037258413838765807691514456203391228280169046950669915386536556438286852757087419654840925054421536105333545544975409862780124620555701285069265264780037206922895680334937883508858462013913793948267471873202982536548866785268549408284036319725443139992159796636267010773427725671056520965947474620074827030396952943991442402015805264565254682790458671884190108293328894220368142380165466047329277253420387779481525024118547064158472278128625156091928042031036978651839236437875557585001305768780021632142741168632450749770519664365645024607591353014129235642136722649871822787089311544281910815603936905512476089931655086896167839880729590979940488479072839164202401555633043594708574911947367576801561149337789984786930631009337359117283887496699720393294164164819200901358051144338325065704457105824577237501268988107380827582899255557100851496307848762524190540259353879942766038809378081589899384096296952620707099683008752918449362761359218887721425609650489043260816653398552483531917987387486128027596774946249511566993593037398830643003033295014182792235163055607549687326882959019714912799705510778868334590492926724493491123382237887809648126504433364814861235105873924702712989243362838405395791482612002330287719863574535101770631449802561889999009666282537993129390328764639948020230208150673199619047359622238848672591196330909989884022632865901950325230850242900573057478591114585820179911437561508846514305479912522571718754410346999570487459916617467790277499241183595902218299897397185647083617033733488185558194708353809326952141685213437359141748042816253728269759599020621293017117806368989215303786408579738864051222165480150882192878098782740574724322010602257034899550323370454568520018673344394127613737895842744328680037614856152215130533649730834455387670348269525735656793729441502327476769905433716833680581051933846719742147810418497773677680265990021193753766587682914275844216094460157442121501096787609379647462146284468772827415138961723826027592874547131535002525675451764723973463371830729557900048234209865554634692836452417266032324814369494954399311077621841429879174679200989535259951660773067539039477977518138644009092727138515678851070814208211230403606222054624403111573050216699099033752864460430365514504365145571584152804304776972067255200215236755463407830365210699233980162068295542040789561579535123927801581315579736145978494934651852734867193424760440567012376743767470598435112189256273469344891073784544199375149231496328536446368572683030335798535253604134556030514674833505113345647316182016750814725780643507853398083810682473972588859378104512770188565564726494810908955357474944437432670171741834451812774844896596129510080994402196742034817845266004734242991268448945297572111363302865232195731996613872724185834210334524252648254546540140447948206405443375594170719417001483435883335653508383751067363783173685136027386670375031610579111112839266769526367463759169139435391301433571242076065498446896772539163442297774404127085693246669807766829919944609439607431035172257837335377636311662024525981279696630035755027830826076889086574745485904552541088284416677683677041435120102238769038894295733905165702960691782454931167981549366087218709008425279201364988920479966088012130342184422831135474535035364876790996421704067037397231685184046082045275398511301974709382296343885106588930031806330867166552225269981795509201928065769595157399968753976925298338987241561704173171861659697657480672791980993404187065171049119724084995171195744834689541301713223804065665044813435619893105082951545102904290509591814939183964298524436646637851583941435443147655243383700065397525632807430477747701383583535758600829397284260202369321980234876095612705593023923385649984828997966768653446797337654020084798771751755167120041345107645051447849091154783037426603282964975818348842555353510437527464649899946919673307107163629820194460137458342474414855703184609557633748720383291663091067012971626584126913640916541911480807380400750552282640345562766230757050675624241540592639804310151416524264711613255646184272520627300953327758414115066029407733933510731250013781694247363347202043864526598441222177945622392752103748052694285408140021324776907265712819658529666635317834524871862815625934420457183335442090607356513334874995062107551022409167476066811239923995125249011786326070834441741327356708027763557270449137783820077836019114639845318657253939054271416099297396311128121336850675311657823872969354879205824071081314853859864646926375261684845724746578930967108880491839495444199805095307684295819763214795663789793354940301986947349552740001640802009099261904231031132318303860993580701267300731076947666542138375265416569961051369966668151239982649551828416734713575959365015143101643547329150200654787948428368978775370461850029386266123088746482678880018551389965953941069435736228716606932586082480930407811421013760788169283156181127402177226317392766849543913001064383780944323859756118575381204974710402133887878000535401056323264073134405261606803445742591968297802802520653731844392284437389090041676382665049026734089460445692382380817632579611103702526580620004121202613567574426879822841867678946234503686314093343479859816509132829343476943415162644053138076396550492195922248186875377808094249709006214803666366333003095317787701518193465885797270603460819427376315677863852993130526376774005266510026170737775674304724319261571953029459881892904637362697873673477558894586340173641916593499611186526271990094650679544378862281608803773326444234257460258975493457737389657422298799824510047788307016493933314559063179704744197933139060742204461234214225179443922553058695150440437927974245143498897390769602763726743014969881001598357204652355040223627864678288381463514080163684592333737337360452925563556555573999118937407875531232102867778515498835766074209081755371458164386287503591662772075792929226416318410556425776545718771098727553682906422546795929227296583420066880413752685938425677753074734890577024834715231799429709583193924078814163589050357409748597838711194711837438148507034023481122413334096894644438317846006996412069664805222700245174401615835237380794686458883736134329777423635530576451834525445594604122501218298969486620219670857631056831518394656807473064952658358208029281432020744013951191204433340286607313835846197012662947961607083682319277071981278662872933129573592240005990253305969847677452403634312827646883868366038325307011337417017085184950785678644514708003078230097006270667514841226924804657480054420174655060868483471841281036879690540174925467523015934491141693496328503088112934731537685234497989632159539470475213131491643280989630932671827055911030573798223464793254725251365060694610305667769585667942141904909010954690185099689345835637353436266287979708183717830483061029110968031848695749195880130199098440329864056725927107019372808995311952519933871549225184664296692393523474638744362274929972528858473943556017415777125336589474253476741120812000752765342425419190129573888987237306928077665283198430604891512633323678848551725675538938790330025558877310927836588369151941663828436571508435059981801641391049297854412080567874384487732777600967045883453097858415374206786308676635550133098526319612840823190776518769189649995579400978364568061816225707984060747026295820402834993479917480892859529914605880322596836324053953367352013216381971567104499558361234296652291351169206529597788127725500621927926229332256775058093900698098708062239833956717894753166226962268786192444466199473269388737768070393533471921441878316531711730102681545267279743686795121892396292204586041664248557651103923649426117686631380869334822795026479232991961046560249495326036031482358261819002368714441517543560444241723164573452733131432548637296401247727941818453560924862933751515521770341165192936114996486061052930373768256302395212148811300886259898921044827149440925248272585460358188853002930862941113375814408260189773169391036731642397422790439619000928146881608252576903515276019480108870551209294025004709160997047716891183925757722835525734032621808627926219581394504307657042130906998092829134640670973738362665418542005513685783493840942737462785486103190159984731914501967095560954509227723535605988801033636836833605528322284754652353120056049910090217983950177051471113059170667051063056771007188806765375339951210482347226178932471144075923983756102862935099230157965494021820335248577688198233117017987597716830483739938098076184318586552011188485191176489582230360242694838253559682958633382733549107635666425489250936507856188620324130674152851657569645551891988861789887812974353224190870160092881190595072933624780044680140425950066735084379326746957311639992480187460500638814607555305533270827082546808056553278548499568776615451655619046708949513850911533376408160270943971412061105477143076527786115274142899696306209347004531251084980999258945175015461458392369857618914411892539534658634705694220823883450942232309450500654967857627168211664407418402299115149146570718367949966659357322482110117750571178005003947669497340276622485518882984006891712660585608235008494721467641051962479835775532523514395741233112262585856511976926288200626257146766182400567905229067044198777961071067771669584933770170780653780100552478526898254291018853259454836316149101952450874430685016944724155517640859450539113485365572430389188339046960589610181630206422134992831394788888008294788898964781452253284399228659425714259297463106914468980100082944283700024311041294977960967578512289350990103608488228644288944925123688055235723802452245503067567773487933803441980417732698688452781325291112852729836772985563071391366251409612442496663009638395141898187167904843297424601770803672937594210932549869869154317514322912586846260637859765448094507766196216779415166216986985873326948780480788180086667398560294689955636758284583305682479306084821961625882606292055090382937924012300128069104278727788309770441261090605652168441082645331997089305586276737107745293352141655820337696345587286535972280213944886092266940595774064330736893784010137519632489630290400011200470002417752218012487076144409028045389520132458947944847707208846064884989891454223382987795648517595812647863392700717788269458647112167914277540831219488900604100574388491262664482594669703940413771027863101380405578792437819907174486511082127342132745498004018992045961309416143028353938855348591308454992682318819962938356416820301863158920890237089607866842720986410831424565890144684650252804429863306739224172959701970018557561178052537522637422165912722799620163602455493368483256423024477973196700650583402037980553173949210372300445214942029670856739804330324630654011982739057882693185211382203677192062655997233705061211291717245858343926680588535098947454315561117016195512172623742360949661696580456858767068495118522426368006007774704211487393177754122656390717860896821299535564123220355482596671457285374505992567009572857126489229456241363052202805470693626517069959115293218552136921092601789153874332816774305841030329540202647366617465891083738371227956684313370989486120002774421207511086184334080023656425949350621689635788294576668777753676499085162400315304858089513095576004359815106204000407941710131514703995881288310785611765053968850648792714247816398700504006965728678774310516619721586327919964469954016678115657522543845163057602845634240229911391765873313010478796273997693278341458644298936853502339630622673958833749583751910406689912359647559480510948422617656582381958968409107473237198324748771121289168627842125752286128822620988821478420189332179917370524520494910141368977249703802313669191337019301107808126577098191794688812203702470260676613958433438248312275296845861772081996426119016237807523010300280682051816016335646369854703703512066283425704515308155623972443304415044105971151939825556003143422928151484534919422313780142524293444244481273540890810486246694481943180169456996575634743802601059800967078856955412348945448614070145594269193330420728591647414356654511117480274665756461133490343785511441811691318806660920771163251372328334733943715633190639544089074087408294349908409034175465970133968663508022916780476425890025975444951442071029735779567444802917079619177320336410208331444425315358783804360316880392198901110595649472390421331628930242323071023191852441707207473806751206825365023885000105797601430837864670083022462136067874903766296376366910180952070051956184022045649279439215033938915186034389506083466255844388091093781836474145707320038602236648181756199049802777026589554967478444411550972238859454574179274735381934176049886763818893563974928596734296298603376933008202473455202375781949431843838488224713284528127023211628367670170841124298608962871038601646891297605869712095082245738107187057445322527892807027531754205265732742112215186207724877950461115890296770952158800162628374370106803457038418346885432664268492634635917540425649514258554171452674401341007360803021578895125355543846957858443746702882171876461506928396755347035550187585718622120309449571718160118371438926097992659193044225784729853710079564373642550035409726911485759337345385272370710396966784261596380891022599389216296364420306688953792041302327200778548503369240981738958340410762170688096834794174121409520193763667147191577535132813660491392900361412192654736692337897026622900419255937432339635394743587585284753794390499861088488840392289315488057211348351384261601557286181305928644680684554484634521431468332848379207481587538764039458485801569668551719271999343465294436448999697921463824838649571429611757014341580999677162565381383110696498350281093603290226466970607377154150248529176329568439425938249709971786223288724467538762127560516754243395882131228643280143561624480579935878285990844961328007898173396359555545276828887907250138611114719885675139552430427617509112774454446606426669595494480880275988549922158004482773158947932515478130659177585041250598843899452754219201082855073091649007463539084111394922017975867347901546907947518021322578643936596072261040240411280625062898768019983289222056374795421881486416844270913700961644364770859893991153391346094713134079899432826241080625449148368909420691581693520886859312537299248213490350811288406651574346182448591466267030663995929499597381222804179713197672158468512784639921809810207023190602023873901402451468031029056087591600229890101843346463399643123172926020941906430598281986187354077310938601562257386170141856665195012711191981028988618187847291029935936686853400424620448837912513491170707111472222868837835788549683669706188715467187361026272648346329166409293149658763563158577469157985731945705478271802021412766282972105856415766949178275709955786004083672353518468658796161270094878517247613647560159215909108208856342108841676909163660097420351910749906521272337362830162533211932756964837499343274562017413600892877137067005820315953133894805432217312341810147639848562311503551365992488605122844151247554191675082104115906989945317017495349553545477549559156116586724755570679058698584592498722933845586219780686357021576616193536970130509068320721951479861236561842485111569261941559370478851401654732246622581739953899873861381804140399245961941980392730584037576887561441978199702197430308287885134963526589417000571639377403926110128340426540506528794593095407323165078549700903240145464093350823720691798595156936979036586934073935510971355145463526738693554742189873222960337495522983807142957111443937369515603375841543454642606097427626283760060718406373033833029778827098333966589834592315049094870692278476654950905450432010487789007447403146965622663737011335472220469151314434789102110604574181525641050679807504765181348685264091788493011710763880596612947752882917053148380409030132607897334861218325922119492426550611682164009377504553620379897187816924655825654672873768225799338359747213416771685142617682451652809362574640347881576891950461843147516332459858099940911455065912500818145596703794880584486340679015928080277926851819269166576897510199739486018539215827608449530874996577373988273292048896175493979095162611524397991057199423282447535117610143495231520883624554923547788508990215316934905882558163252360268388426176752020756944681965461821737425449854942687015983880996698794673457717426574737431446266764266509533423654182650599047887469759989077141587303563092156129303353723774457823992509639031284275994178194346430885751404751150807151062473329337140543960370094848544421467426602063817559870158760846289181809819154668074167786798506298936899918065275527842715065487194386897355405818600103857053219676198347959084253458721761193244997161281424361230091902619418161031242401641218931911696284847922512411682231012240843796955996702706131068912833258414936833903179204498264869495609331058256431369709561288817389053977302150040217460187102908657929712092527352304552662336996036878243206095769657568179410935192225745923515907406483191482198165429202880976425953361677402123590754357535102378700595685298853650557238485308326360536916493209447792114319864129836716776964273994053159887200899363360976259663987744776238080022084705787229964427549176756642508888751779099013636730388092606725209302878331673893319959492500744888248091904117855380580389233422665876210789874496802093802518787130858860272186092101561546592936083500190204289736682646206338663014368018588199584072675722491396809861649154389811141556321091577612407110153091773732806726814873625928476057206188007290695034032378155617622137835318087197864299682063014147263193268365065793317853266536117313004005790762781444673162305292618223048793722008539064508398488545471139110050110107950226757475380367986771541462446698688261954057175008395761230247594423271259607605978420992190922558128415482867830431200269131261354891039532054802548897945317172224301131785650525934046597555022799384361242750650603361382175352883673591467084595219991004578677105108529888951036923317027865523962023334576687872049796328144380372220131926193872352991697799896897142861058259581876530242688750184109035425593006947994642622245718802789999289722849787610280840360053981548241295685651281080186652048743340905609769824875664394691999764832515800897048730939809575310980307493026853648724637491737403321470527927061494007342801924760403969545253646133285383186430716937316641995685547151715770852463416146425256024975898466218436805239182481713747145914271318653527009928478042482336897692198292836315320345246362777490353556352369648128090226579908757377861191358531706880106085229880577419542474119475261759564836130152441894228737516747958076435826532709236262820834110748241407408557702666047634632100651476176466407333105830320765220910306217867679481015215284552378467278555015251732189917989310370895733879214388437204339751570163313087048856824018268280493999978946365808886053333946255980345479874397425686032380222133558065828845284219461371821474629932675374568110617610248363872107202314924807185781102498709360886700526016550977139775495967184882687191332322245865975323875182413380262080797634152752702782181231761548865593095543702959266407671699412820934238011642204790420402964701481940817690758123209698458090197481410915230402043979884326047666545107994958770197466977124364361714390291623685530140690618115633119096140047559135902743491550949817010223063541978273052217067756673126667888520020381444283172439493882179207234040612507226833725321519717382611138754706035470959495625751314413531533805933290627591940478933653145998687591403182333686716962027086001858109408815982826781927325582517537685051612718688395599386671779368191219539091576528616281203659793522897889448722813031007908858190758542908168917631359474476261873014922954134262204727645560884674576102338656454559069102553293225754197760401155775438915579515536325358461617749793903377732649051250486649808019433755663067111224081662805278710859774278517354892587779876672630587098894146876601972677112398265494829356299420394830610167288706518299145741995689767788203324432346172322380087755969724428611193164593946252427703218931044261117618682781342602670503788683742054354502860998396914409900724697950607135977444967821495242967325174910118466156432988763182650777559123125414153110313021608366442280843543193194946074887218299838151831575023241257714714179886909126355165331826377983778349517111187376865875294240832177222180856233418453533462352473595542165319731266284542049380942986812163340476640392492269115128432064167587895014062659551862934061996221819628081966079604981947885013182296366072472807842817781731949764280347064866053791087602474907122076036976277821813975008642325212204378511349667241984204568004672922261915498107947063140233955709167595190083649187473281257058580271106072282463708386253965480748090445741258935456738586419155431361287631999100869623944650867665987223329193345472578371993708431376029115193463973226639042179883669461895110971188467116658548178658019857001316833540102010856011124114062941397952037268970428499743548319044492844021277101579375514663947580814540049306547849607512638238633720335680981827402248435843922738220150342349482875777247373963607870928464085746652627853673569948310403967572362957301400127832980917283678842805947909234415866535235219041193106384699496987731349838677003702322244674559451733384266083767055999180239223659669064994881539487417489106460207252751661258010413951067525025013609039244815493575117470528954922905372083747492903231749612001629243435800045752232036983029244875472246566839613040861996894339133489683245724986448608966663456040592823452141547347430335473198939806822981637625821139125201700598798195597271970392713483242799045111504539274665735676412700837406435172296417457957997938563466346669474398751039205954288318447368711433201484202267745558533978757207105318096107300281073275014333534320984284687784544304182778705884220193072161558412679402181266473036365014292458583416245130676531585410567745910221080184355866329259251163644039898725277291928796913372284005351447081899149449621701758600236413993154218085249533856120741037587627344083809225731714881453892578661842825841103093118960474523479106342469950437945473185512765166778832740334144505019912941419614669115821525346779033694574258102266298293280162378346565335049256554024929876131000134912669660521051301744012107712113102093377491275771316374464332230333020911590443686503653570901858858471227307576537385607878691144594408340278685874355982549963430413888182697975903400834987203419542997083035375264530149543226536309770417378111975509379688585870803709875388726239546690783503549478967137402299501625364516170113254660125467599506934600171677777157623882545095743563193834099298403944191198692367400053198173444665413227882652107032734827597180685287888182088411137564796205055380435840208088452263224758244176531656703009614584752163787414537499421335055339495324881245739174627098776446013436209787720322097557722196869734383651821627417556482580208834253671759532090358632859134940556814617900979447733923723686611000837049399791344596009933186747990732200535365607969181462696014306668321421658053305341801751964282027321919521757492265234949587199542865926906362601086435629490063282917662307323000067788260705258408366755250137499025111632837486865024443077556023828647333840291757499054225206024739279476031953716379747291169346495304145252382109978546760075226759233149919380046195072777078370772239491027873026983631088054552527071463985106979369985133130016217826613741851981726816197118489393868395901032859209601631168719875277329136355662225510386532981046637304529335633406167520962161445596557677207673272653785354776681304253094104458563199130953833646388863306324526680290130763804329874216933900943529537692393858052233804984569594977112481239218620419165520346472786998201268509554231700610719859901749203387067777088087951538544611054978495506506782284305616407959438847358556148102872584326078691097076349207349007685465474232513837150271537897028480021979351040557044020612552066218242530152954445547482230738703002805622276407373421642390833398145831629803479847265804418616991610292346571934096085379336954778467689239401616687182000501834745053292601189340422656469745636603279281428865963137991262518297495540074901878514738749100344001718226231529578152668710080123460817619873263538288964695874191742577396853524969795451123979071087467598988152289122494738652033475953244878400411146935327471000544779703085810925637897913906274815313306280070395680728536090161743730979853081921536055647625473219266894390291398118659969347889551452954261670005664735170395267510066455915462290347797457327564370889393244475545105071090468827591572202588579308244327270945166420904064968049477330688413582334844064902647796399695331444242113402871926710187366250429205543410735875519210145259147646105898221520859644401105650841252160328308572889714671680834393458679702622384486924012714859675474714373646254032625160025963162549861974714695599904010810182722588035501930391319212622821426156124258611716892335369825125474004524393377988895474863143883790827331134195032161569626569343962540873577327756217150677937641449992414734278102905070362829704761057935431608368998856087806698340537116884787762516051481261371284781887155512550673566832915475399755597992792228715924763035059558527691863507732902545402185529186580242132960806315007282660924325185245961893298328010086753756941805427850811561559926778149597915097504968886978995350969334641023207548194175931782072491879469033293875770548046341444528604422538923074297833635695763948085187218436005674642787285639267434783272070700930298167948887107331121797346576420527415570320829687745258464628195035442306244030260853357266818755470925102891377387689918322436280584286795328361891833258132285115159467978443073951762098071789882140525280633247339906747873264523030661659787710886072620711763318330410425137989000587435239004504636017661644036394268528127350625438348638089900290473198135584297707977209260433525467637245944145827987704636854446171273464255324639265792641373798964238277407727560200486508793005751122215305869856377546012759850256272752560528959480882708185991002924452614332677702644878191254432031732782795139632653792390858483993110386368160241063426121373180030419993012615455323732047043284251912674195446440147068848311309716369822123033319200866794019284216754595992738922571945834053930720239673066536659860738180387972337532624751340272379319336863510681717483929027870802350574739392065093270055171872725333801025330135681682201352336330271499179544041513148623828768085675057609299804060441396554950299763386124614865379016728557922544281300262733147622535500612484174617667153350619595366207842322947431788903741387633267125992721092971178233713311389089015239835200061174871166399413901555904250181981436260660157735368550563851314703495332196376622593816151200797762504848250443531903388445685953632737488972101321224259423884650459710698889740083263297242882658464355708911187319060393516740709554293916791716979945225295630861159387410788932446007211395065215437120756630701615140960742349143379363835267592148489905454957467671876400203223778908462332894259313700100547090646781127877606559745016507605543073210312210518684415844020733108665977649418522070839491599617618172439707651577622341672745809734902976781929091285132289406759278251956853127332356894623796987807698726768349868827715809126988667135039966822502248599792012468152483715404564725688817130196107567995769044761597292735135953046648880987676552897722875076676860429850729591701207665348633502179624107537771356837069056899091308257951665953940185598930652298839478543195768470169765909308523899703241031731891583991541141598442300102641660434363834794040328892022618064023303396500174211076859116173660727173584331506820034769607577305028220973516070489989150536989592241688605273897978100406727448553129791986717132170433902034962636171325757906142460054986820543158992934314851906448431498922933657528079690548664615006800228242001498119895502195390684511873019155801817906897670287034894432630914009070305624824961790697213823233960155275674103054637194804697219505218549164468491343767776835254397364113013268126520453229777083873104129507255367801358106769293622806152414904345626977991699828717988908113722935165395174044335881467121509826105592670105691089090631875945867051872678581258075081082019158769134525219435676237474196264117501041612159693146725164011832362112456732562827940083111340421360558258620432716850954083830944018811418923698490998381623405776234009517777452089399646212398460934251808123446928087625797869701861207430482465801735453430157893548621803788307401957919567302978489601312385716495163128029872651018710508292208567027435226432797039226281565043387266163565252134873483030516002670312670479330629560060637984850263035393094699919787662567262858716205425253959902177226110965254664233993780129475076839049315966642291203134904960504841946393460006801034694664397097367569376545633604113467101508689872315089024791010956724573511660141993066258999389025632160447541828404907649213056756768235979572297740118120865799873835245850424875424031056254185957847818135378363723442633051343192747794526477542253863344654863974623477783906814370002286972502355422732419446203300795882401816026159785467188446525911884776260209727527558320510827170585508315589418131461211100096907540536837750696974875222811852511531593824178031415481276143948178526939875802438573504516747865182951049194283964244325201462005229414818283392378956790667501889531632391473525858047407597163807915994513265106780733138987393713664139635846844976410149310275605233911246865384440998819693650419699065898609939325804756038794915578530461195416297239526609115813415253283070064670129863952656877645877766245190383293699773500028691341841328775472394969920675627020194909622742682789830093925190930919640233072301801653587938121480442963669619227912707163433557125348023766718109110449483770231722712103134420740762254028827891246303173242246335101431795753615417215526174831620240548066969542112435735708360654306529486757696718914657881237350539469748375063318672594762171833253914312736045450400593218694630370802626038874542265373165027525040805537170645603323400204741008722662683179595040247244752764292902420614787877967977799489082314428487618694313434474414424535907836812439261834823339798755792252021069042658030833882331724259577355473099936990166156969737595061508757327638893230733339862321903186898677330658070806547397232465914797734277742457301271967702668697519548124926689301300131408892132807610570685746251493905560850334336170155395000649182153867583561297959351549177185265123537105248383740392496831309470891248874773564170919188399690068161141609983774894084798803670915968693289408951317375464819945957212875662532770412168249462757602909938106850354383275656320010882296926959219848750424312191170713782194001574035896780765894719362164945158370960829594245258248541438031384592800258692525399808328843081127603676310378379020220118054180472982299023907783608132311270504641954153335133463543016909097434835145012029484196421338229486618102759816468316337899342090746366390523669567066598526341941466347054463226510197552999890271434433209975303095974686155862420974390943375829386738644897630216550243913853811863259692241467010749637725082683448130301251907652781969558023646339646560595302399377887703892443255234759626135811610524299286313177621234029758925705752133294406804055172524469598462090221602385257411977353391853101313944835312939908600309633391893122029890626936204763606067231753565545721626432449766322683586316477038215605894370731938650587917203308779686595649087048766163635257188323259820740887535487271664957218830938753068199591318677598311565170695510649536346696634305605277361788649626156821377133845858439425489346443515813594797045958048648917620894436951657527471884794404578282373797373757043822814944303879605170555033716592570701522742189769592897904795694003706544286557554674031780456656536414542172307711794277413416902173967861941100904880351888719793089843344665256820140428036231683226006535100425055272711692123903607268314763515168064989208606886726734192992164477768420918311029999021934531818863521623297607182670589797380852930946565521985367285838053717812041482707173048708898087167600072818893177507549902912858720645241616112606450791004325169072581882142505308380940934860346889133645324990669434375653172207768262819071086635368288605333616925554791098737838488712178309326496732281008773001226507794483993071139334743130121489946079248570137194140209521372916937681591135545248327002694211078936543188411167221073608434839256408245446105123431106031088186826340826307996106028578912229298221843886130467694592766216869219165411105935333316461819457289102821971364830573536739884292948595710660316005797597419608229304962080395656132791303163142768668962915283303870260625896632961523394404313344175700643549394499021046128072698659811443439090630807643566107424585948982425164764225319717077664716374483756737888349396678813629861969664693100427297435252719247810871760773937899491908401848772073253484448350461236009177095433803130393581224588815011631195319785562380071563935848671622392105721637756754673952448772990554275112552863663214917591047794978910158263265331702749034352152400350671677632364999932985247042977059739824999332693631718652798821470659822193674937490010779734097730415262858243623699900411377228526595597736449191966705482003900111527699020822615319159729552692513772240867363328706588752647593548176584614601587118354908037486431619376683974505683334125445551422315873536859119863751279260716687285507318751130273467228452002767079753112488047937324476688110145413934871673618579990092361903881654529420332259555038348305918413593512586586640110338633639174929982163378940353357030290823529755653063101551285168549731753007563419112083447933581508415960976006417916589789353701466687664743261557095592537795632847856483346272345434083577456813656909159536532481126093723402224785953493041344475291475301801155260046319820286193127559675913489482601876712227562667685527306127758925032609297415977113129103160565589359575520485432927717722459303354730978667479509569928979524051414349063449271132731463084759464463523099104398516061646768047784917510008998258699199368640526728158843066479865914705810032691765788443153453863709999020764040035496763650975930381327655886145586875451114784764200925852630133651049816211708105428090233178440956102010786597343582272999196387896320839028453595776348832443104158914483116332228672999310269654756976366495705809676028088572944263051228523607665953225998724759756083095852227190059778431618418837771927830536567973855587221033699991274263360027291862920441865904682980224709295262374716187333338337002183437242105939027716239404242555462622777290919577352008976344991545364246339688771374323603529817747223223102009294655616558269416392707340102737414838194231584719432881948236114584282728983372284493316956447934444140145773512077629638265177827156572065621651413708433254624353376665389332378064807556602958641867499815475395128850713273477803177446102573099886377108771428979995768723285077092238033130425809717585338916943647928276038023849546207378870853032545318847555589834363329591029945838164049483571892787535878614793274738736745707551095382470975357868483889294569949556804267109266906606133807322238724894654585947621982899814094910131047193697457131325105982204001662958747117970967903699481410297711285581892512881051925860526555501431513666742765849818076332886392750170991863751422474814488401912229198361071473152289831924724953326376808737216530498654142594891799263015547559836082249927276837013421104595502339345138496350650810608965232648673207846382396922515708074194795188006280292598283358579000232240382592078441220990886828892332549757703358275883707615268354957941477766276791501083039992258652044340043883914196800477325448539567307313043139944730610373820350038458120079878309032420696326784047246205969767384614419675319914627757301047291312016439039886628832297995474339970426998133351766974991120466663683981272394382807104307070952361826683662888615635314077363685235278500750031487998085641990709635423700998891827238437346302939116741032997559172261177926900200504550208306089723745013272148954984194501691782525300295210344857658659302977832585291283526687931856702715883316742944875104055179263086890706366662172520797392138115836983572733449826811449838150009468304083489788648002479567517900251106039236011037306009422824334068927704592975400868231516992911493492180749601794121365469219285320051594377946493789697161949087530025700457801397597399503555344993236676532109431264951917410583368407608002575872561596259209497643292532189957370462184083431115900842518891931581646257138817827153201859350201216828017799593007960945072037459166331572874594911768415369659524627513749208489794353239848541652880444858339260134641256591494609937775484098918795299962782755550353594832675858852308209704194301343828094212695871698017204851330364831118943253129444076777766476433775644852699671176457477040288973125762786469311929512032891569673750206422911292441860918952577583041165897703170801163528962154935461064561578073891059079874514445585895571438757707031092539802402778982866808963840098825347199727719526851025919723396210342402234576203639549111962066745344847451257181237089120958450199648585284479545091739364260195355273114934988499479159741284453764932923060119157239765757189142482828744285898356819037565591134065152187114178698611724977169348119449923649291610131551294947437297102976574461163017952525098652635446624898174119087774534885123547311000639470914335137367293936091531239088334063384952848033422772484578254389953568646745612971873371797834166447447237052984480197507745150360195536365049561628065558970550698561797407133294960430994595171590720604685961321913596937476265120076438590971322035566836146975924188701999830395420359218283436008051350764025116682686603519677012450028997693003560509371877409351405285655494494715626577395001521612532581440685943223860320689423746276612077288187761955660264302932244759653762527716170055576990485082265966699597053105366999801817843363823641965949124895262440616891964105640983483121118264987893933523749312381190015639263357136786199584925149130359569950155612756301854461517603577433144159246988798704666770870662959954388443399693070571027240232469711586962666950044893115054230213486976974881660916752147330379918887499027665255997309041473256870300075337579513437834750526576068769698636607411355340165451214453598932676897134617010872347978814076871055202180714258263649510179251513771748613087632677098294736092823155952394771949491590415969968652538677163282394260936689975694331970008597693531105506087051729192394715071428284291916840608036089567792391710413799774196172454690666096624153895005396594720189256847337333375782422966508789532354977882114646532565813026109654939295330309447526356925678621872694355518771326459420440981918827941454917447548993475074274399518637449636116827951431917454001844308172831247521288438055840280129850091149210286362632900917263102772249903354093728075955074891560554497778452767702653005316660267420187268958559353104322654081340845456371617871488361608700851615212058896629030715759988312319607224079576896039450824972374827105174419119970411036457851236783535215748350774712402280841383630038605420628270167928133183694582182512687421449183306797439821132636113814548983231945730700241997067036872734695671891507097588206225817793714296697042321566249622738957677463829060741684545269285802878399536797784805814768732704184546920762657571822389092478546368003559293830539878817594790250373991511977161815250953954716185712817906487262178943658680446781961974053984827275940555166030556680378667309676082877783858246800150666100112797012818308853807651225805656917090584896040517145305718381758234616897498600714652207065810870279148729405616700914584904557983686558669949864214520714627717398304544601779377349553513941465637852097539263577491255325809873103030069034218925633965408339309746348992598417510626353787441128977868440996625561179260254236564940795402769437972969322163192235843932988122585669299115977735479689926472941176304703654314998439441637753433607705766033766544310097801481278973253739730858530653858504591193995392474209367823188044982915087446646135446833069516602758549737904290780767756066914293325574753216051033577257168053026874537401856606027057276357001779842078161322372007554300171447292791712915909815380531894385010713525728298906575117222596167625406285580417006112188279093032041598354132410713327420220585685797466924698477196563499700890216411187903973846829984718357089193224396950540562198660045327803932889416047666413754418277989019946236189955266275136350257038118598582094395433914027454210639129638931490333328999803312183091932940043331740253730469227598980113686315235208451235255651467110631847704268834080858334062325484023414602252592553664687491534995849714541557104899586289348487641796492557460550303141910979502877378760095836554106519064898375959431303308254810445096939643495980986716680723846046045971786823610555596401935674588415873715181821339501480249123500009419232574008286109418804693047930995327023079085043894217155670885931499417768388380783382441422168169815091376963299522001329361735806700202350326544130852518753034776776029000522558333013805535406348382358211175977046068023412309460451236275378377708929840863890553886839570163714844799459677981480468035918642106771901339278139636675802488435559619406542884602186568138523398315643008740478247921385653845028795021404963908108422801245940480230691528262868692776953800574647781264066806742790812910362825572286510779958011772828692510889099339797217380483687945906180006045656866962207287559984690396367397555518771936065665926673999104135771591861750384347432664190750242313968372128291180440599409497487344877200029368668867517177036401439184242080584294073486140350767680465824615524719348711554498924280095886521033385245512961905762932330621403811985758112670750016493451001471191716151899704135154595667354644412148194725340539759920121458865862882371952875098553340055251714667749699831770280507301168791549681252969589121900741903182131294791402211546198090888879218053248449751569033166520869691948807950255265141375473867770751826248752882857621631407645136766408179685788333171440261754363691064824838468631328300893276423807620612844890848323780163714039787862250118976814851802118138101544090745371689422857743447568814002535121404162083623575020307381228500856296137902097923474950767566250155986458218505802427053047630771366857246208819640390251087999293388230053716638928990939515129989512504427685600539757467428929377078895373630311418864838974043640352387760491934990422902047755858444077773847809936374829010169048170319298813103026032915237317652987568816160155388952579039808851168681277721043480283716582167069480057842933250476799096337925092914759853235840542655085584081092789100007388817115314951252540031274036491835769129971108530755296285724564783269131103335958986343703866678800914715088502429689556753006393201275366815442744394132984388487882000229616040108752949569948158891176404539943119317672819144734179134608502400474832872946825947812355537345222353071332749238925619144941313649096032417443560250658866017304407985562396536561540272208137545028346586421430433316637389696980009082278649047267529988064970206818817986746783284993006223012256760515026940241168088970082907280349320925184003353406125926581868552430030721690545317291617856072677004311984481680684771781041160129777450763584051317770265696457020552995610218886520098462478923805322482242717913038727756642920905275946242348389517456127798294002691877595503289674036869851225114833736964117411304328272034456010853879635642052933345150596688429828781016667015546807528048039239206291942583139363348920409618839953072248927723173609887832607371103036086620078045126977226813583605997056232478342722104079780512802802399531291878239798262734833008252835436324176395608182856579370101171647688018682568079494665053482303012216737203546898334833410143698239980733797619156808101699319327279269464801209723722439367201029407807691183548283310634488244025854758803761315583152003544496836860963391325999082207289823131764173396524215045883082860805734073985325656986848359106133192375825943081199941993662778058981659015875460128225502857434116620834536696811108116342111072740345322414219850941145872589897127698171827224832092974349599081558152242681360564985648120501178140456085026424098165349122902958734764620389504223047885959916877541522145722497547808499978146472551526200666428735847280267610607408517005709755303442306814848006627991010143791909478582108704393192318330056768998927841739984335919952163904421599783607956887812855514931208171156498039667785707382734781599392870344762972084092145975818956406707373794178998104073676041694301157253397159559533395651519690102025800780176114828351063590153708281398176359671380463168894447091393713492913513024115984743705838900703071942273959991503600190373146365561581323996941593635017201008334521002184826511093680580833760529942858190841201228489342777466620952887518866242190745271005168613217693592574157073135362268558914337042297204377723796354668416453699488444357493267570611870697360814035409555810418119374551440595807709459819398856695351810505249862124175270780328609894689511279175615937895176836837748646358100950937775882006168746010059750725432206174789691064492779550297804955472787375497792360569173531882587937437661639477542080208698146204508306737011263022444922777710321069262853670871939335937369155770021583812748295549089803468952566200911186394214406501832427954939557999208332572619092161653945542088334723724438428698539604221462876734234788639297206941194067822580011480351734395513510610609220219424648687329593289315457919187749697426521261334025364048554713300509276894085319693654079846274062179848757852691101396679144479676027929090138119189001421065860075392259507584717380887688531154003641102893426373913896084707209756744879313289457467641218253263787267047698300686331766668444839810281743008714528374262132750553332821410067854039570578489298319551707922751112305207233702864275932030003543514038400647280177306002033776933564320044184180281612631371552759891629857223776747362259941832205472852517189270828922367855306936690079758306037197121139695932735052255290756334358120131102179621869168313797664554001323025710828943386005789944147264205585093635603793789599315645340953130459957430684421210533904590594133658698742356990626672041016069619709142458646822934277219066118621590698120397382667634549954404973396660702171439738964883883365990950378830984937226571990729874127504330599874986294241778796157274053027373822300116583028792928669297941743255032309577203909510632009005198794558830782063658542976432189990905599844231155552382945107129472786515171983636345192221295655461339870972084444705862872087930877073731793134641188029768770685415655499215122714020999869154290235585797960376367667498046400131716551903048726612548968121088260225332043694446208818781519385796803591031397815554989116773064212619941848072586628206568405238920353768638569754934255313830740455923096077096965294293397249134884754490790762718599522143438750374824092460556305165617105827229066630648385593940208763296369671709728586215577220756147185161455678253674347193451279188471843168648209718266796653605910645708979412487716705633478267484251403234464534355846818027457850353275440808761594548470195381528017736087319116056998822433883613558886829103405604296526177228763519554763767325008912100637796209631732233492258138909819056727828411023139226714405781339500943651932849508470419851959562891755606722350260601540829611901245607686734625368530776615170587538738872626551154005691668583953936432137847690303486574270980397842908168470248103506449272243203359390543580499449390717370691252484946209676846684468759313471635059688887479779191762942932445517089525439526329113942159758211210900147535621273512169122116930194379371205385099306951099524624574749937284040234461373638773228803552535429127646601212067623999606991555923555546795586619651430575231441089149513705782923294039977771308731071062041078448584160054428458148834196918277758901664537445287964392514458301300180750647414786882256227903302102568419588710349376743819841098685345455278320776195622074664066821672781992480880931081582929598206933107487499715241776346419857757948796960477850630923163587626784244164076197492760679316446093444041205963781112858676974824914413080529696144245909867434993851489164164606718624439205285749814915184873442357327549187031238840205655928460560921513556035532248871166710387401155911838175437504955287869444904520300562145548125570390798316446105368766696159062962375167537978285265995568939907761637949748606974653897464121061650462473432099935996461875005751090180807301489237854424334182648190621589143385306790131604265483053340504124158193658707623668124265227796209306856654501642553226563230345901115772248911293521437554889645061154764343930550638435363315474474785081023917120387069284052664252828427570915439517967799544820346591881327023611934499967469188960104163109431655365070863807863962002490273200493027846388002557712132606089400997953497202419508504473180191529242011283941878374647028741264558242844406064668186981153324386704730744101402197418749291338022727346209477636757945127547198877602350084888789383599368205585060688325417770746046047708602813599204475119386026629145646511940142951064259164609383427823229397070891178871335817172452434668031094770052592988550143236399030369154507574876130308844126719544912032121021508553069470051369855480506669354525525757362160229736872835341210203875201478040020576556846945018585423986284549391775444477037182159065315007368196908770239410994871644801027154785292209308852980337922429169108530695417376235734633902418728197703346390003245843474652803592669700952328717948322302066598451557030605086907723838849799105311539297779760285367344527837493505841282086228499667169722194100755202066542869067393322627271559082906823638000820970877801693254620112833416051898157139417303009764532456629516838499158850219157235483361846266040154153055501366897934523299806199465647718488537694722923972070656380675742520487194549689286560325504793509559661159597529182233991399368418053226091517102711449658454126970180073469858984752507727063860002041076520566536151948766603728876948148207773579907543874256227324780371466559681208628793492803407370899990827038601828788890345207289705597301621232836687789397319469332139541622972506080041990166774523842062511911758447547948073624807761597543939835511913858936222827169523947127494950316807438522450529834375532695428690097117922866233860296748005477424178379974335078906095362527220601019296353098679839365683306817942481086396963395234443576444070944471801254666847047548135823378680229841530562339540110401659343345367153584835361141594011147867836645809784300901664445011756045145874178579174360153765829050002678649270675521756013046317741628031318466912266300775583615320236927030798959066718564743143991795228454724872267429330892200332444611785667262205098252282241241858171567908728718455285226650449134691708464524436265855572763068821598257558895962756976508293566298816983544945189857559914904968727115865982088270580856006044849069055448060962836140613335853689219384082624860860121887611349348800257765588097922038338122786070261798486623007849680215939049881769578303558082466456355779044046813255166733668534843392153639640009616346944735952823919404245638100621301178546166907778793570924168761734577843247161819392113903192006967089199726447891991665738667684946916119266221477712321693359226462116667412063766132761368543816735460866446453122839608608344345747886122149612202784639814850961301500595986454278960320276833836495551759120829386987271530735883093194155226749905745115224486032644539179310524968878751912834890704837341475609049790853742309457923238145610546097303942245860782876191852184623622767469678140523970810075173862289507469654912029835915407724784613571533178579523490966696378883152681864892640357842640484173089897687908499980961852239236131788492855646945882741859785358628164554787019672096578458819349621626655232081732846162166760938875379105545661595770169933703145443827473805142367430220135043786332743660914697073102540027451500275373530082521078032077399295520511815089687526908956584016821798169658287389707069894951633184097158359156230519956441851242913375017563359900649218686547302629535867848984820331245759568210450472914570745361287523206344034382090181772961017022021282651475756139982707326315803556123448981886548277483809511338677105656303462655807035622385385757190299642679263799838156670312891221462139647982708694443525665856688641621244989648678513690328209564286956233584612038909969068737914114581162375774625055220788913192505668000314575203429852322845429781673373089104004563347859048525957204125482266307327416913283931855721226502575576991031424961657737782682869449231320502843294846991840668877748752397091877992441302400494077478289872597080672118765379487345204905870485096786323246951833440424022870409511498215697117255310035940249068499296206582971389482136085758244007525179032001541856533993683942298374651336318171745356752261820014080825295104003392468210902860706454623380413297478366762399033516339825074878374498121416485767520821439373429426750643143764209762793034795995339638983930117684366716663753098175243773720448534101491517680499428909863575826620163367514137970594836115743672642620816258392971551801320980216436517139902760580570146651447000211731638187855742934047403966185867713396263662367320582690577744454392120201851458352659467128047026216798856086681064134984834382957994962876814813076040678096530795311680055366562057565406358094450415113192607495130151049611909151286472492687563886842562244479013079668503301661380758125253308652857037921880390985159396379071938010933864366274715773212590424624665436886235092074469323050219146987185205233630274562590109305712210395562606441476184900492905970246246812821043967433301045350968826152364162171750939113554166418994030935213239496691369467871543597059485081786111756214292694083326593277463200319428914501702603784308068610489138043345352532738214666024756285100874919980183315914179719374695041955984885860285308812736304727811200216287594961485861579294046441228705103928210128237519171945771211641295933189678905758260778467239675047069730827721446034780657062695177180058073951656158321601908079352950949900447304600051299719071380529337265221814988829947149422101413576367426878736544324066951673311094062325672255903713728695999000791876570770948804598237639699463962694051235536617791836272267321683831194686540371074475258150484957940314451224554524489003168113737449639990618842449527677492188606759242008327823182970048797336690703501886911552097695462129139643011761748751365116656864857845851785017692894764469183087829188879470409748614403765492357014307134328447650483433448476187008016084472960679860941973716190472807115840307743532827057529003437486536955856861747856358951191849236970873147289966586656849781701901641655590178061086108113749641285845468880005449494703303718495514191257641034025819524282599065381083272284644880012655064768691019038656148793019665325020041672117774650528287600954277369291951815946332021771441530402664612633473861810604463673468241804235260467769426413230576425714080134825063110587697920395380318659120530706267065671554253975895179234958375101743967441534860249347011270958336649792155439714749190099938320358891705608568895673643971255751998194188748483274387048335340337397533360222852770694103241241269049489691291298414193990244575501920590090571965783382211371735321827889306953972662146281226567702662432897496531729579585864440484525431042025004553870221961302160990706501458499571710449129631968406629558129044573893604010821680088836420060744023884624696191812977473296722116156263000565743149672009575502139814648100107555438461773597155134057793897213342279174873789977750949601618246904764400287558551166950056631755232856277827535832515184041795702232320487530751462170653127710641514232285212698971905796232900813881565414248133327291135909635522420945850928341338748643512570593689693271607104161124829888883056110944863178594299560596228366482393006087921425678121850560498177348782659481064867796206360488751074255862115016189355907283376209700501484794577614603133055819038185515275935379342156369857763128801374551470026153015267026743547338325328464880699221453159760883760851764271861660325377440896408677573199271701854657505079915249987545364307835296962660272140677552256690954550579985306013312533533356392166189874331426621154706282965801123428980443821923825840402779949255701251105182234032077470468131141052686686120984496760737100704824643360028167952384790096429874954693778468110979699271474059365108978352290232099401511884360554428400923007273162257821765405436695411676020789371514812679106531571123509114559310789401988144641254370961786943359628888426166581556251043367387913276269557709377947851652249277827081439131704520740348581239249328920784367638243561395529602572035624033115936555625305215181279682629218728651616182137166418068318090293464256699760905213636194220870997017874493747604732645738235195621832857941024021794363541513086008845865958156371049395621488932652787613724991679204827057675628695250235403313905483197903206653286952048058326341537240738408932312467830284787636675068002150689235171390755372391021960443776476393286967439154041551924742578499557659429774086733327513708706796134115015410022703350746898224104639796086774686821275447926641393212639164397649736521145487362411363947103515140290910361131484993246289175898915464614091905839708666453748378359717146243172347051655467579128327651989207110863812755664309587581976546861472589015049036818858958077644077644892406221471322278932057020984316690048852526588135449004263278492784083532489679091543187385549853783583142036558711483991073493960880635269864171051385005113464636559397162580300944049030783668884595669897994782386325693014321233163669133620561290396249791251129941286780442750588133179030556975588011796791054603111452730251643381391564694023161651333626097655666960126594596812999435074693053121016779072571516853624164330663010610009940565505433954048847022056696410365697923332274249833275349682652625191273108810374404580051648399566586914096052077884235465951434831660480289761000969138812260162653493532450372790218390874053344576400894039572749612200892172412279241122910927870131015902798917418651650352227481470243624954104247348986624885661473450585587749592462335739705660707071092385585149082610677471628293481056634321261852210961599688701871320631258401216122676947100748080656483658129545644930870112784212392857930631331336955833964756608213733278591984253335071359536139384766084205277114506920921416642933886539958287961403053273269925489414582396158790423113336837654437839614387812412715392215352667954483697192034541808452789163779137976737192803067998606403783141943763911238550192209245553029325378253895333287166004112388962225176177756892252405367844880747710148330616461417604532616269763126780739479490807923974782186102159238971285634040125666516152646955150882336208932435321654663132861686685346254769825017050798360062543303707313914462998635610556927696666037974110421206509675085701351165710936508405730207032086035546889621489396807190153432305444571921064119357789212672270076405316681734011420031687861182887679066870990620329787768057008855428917102845887359144790503129364509191675048252008606614119717401417834962722503785329861284887786815622958825468991900765163730908554441149588513811474442032977329110125597850825796433623454599425028803718485836499790296422933653978268396125018321821614961247209365383314542248171589599778807504691488126398346001150010819309286408179851983225223967397773939262069622666001397544722589466615744253272393512289464080968740389704777227765551706778349274005106433233413008636084786520446096771830921936846057908355693310761221214728488934097458873316169729106346517717163481333838483346623367360479499008181941084508407438891253922232448309015266124754159450039036061469945562802761205706582549275708193995351429665432105387965610665281874348025151516059874614221045494479668979867874391762906456252767222268149260042075637105434765932989512245191143047307189130160692508266217968726207245776884562604677847464683954610120994970656647500329528308347390087397301960004725348368459821298461798160038009567335349470698865671700809947449580467951174849068414845286938677211356463818166260494123709010088710499828886052134562164705609778764900372501402607883392781799442517100474760952930666357060066982349986944097585131173571172749302249704588564994917434105687747644910849258783032271296277588006791520694005413060921144235283599166227790714414188997639939611483020265409454311625389014154751819575783715764892685393547088067755479407859899343954085526978344216602227090616982963314347730577330300537778341641142656121474762578018488285047424321253553184145448255147168137970316704226240381927425176073351345960937365149402346769404238040128978852402540589364176397563806991138341397595220647639372043003293063635804678499153964854204472571813632175316721311219834896588824677524254218498950877199119529183606761874235261562472104673230282900443158651062697347312135950172799119303635051664003889993012324848800208810736387410918603198888242126586132411418519515443494508251207789225601040691384594837007988296209893368857857144734704629379575846160449048829255319189534182686973515769421040473575418937372390632941063402674658260151532007419490582717696636852902951238433425432026954733038817628485528549550928674738007672147732293398847203619504263626017041703165100686452146145584179449686221511244831913514664914662426304483246711373404693403411426285555730215697341592792145714893640472411534154034354987944532432052683985906972772233348447999202206197633380158728955750176649802217575334400160858002108585068665737959174332584856713718356055528332284310193082941478162683486896212304444163141471627461994896481437437876488282477763803852544213669935931478606610603061732502143372817149455405661737246385219158359304212333534607622696264096528218107552950932861973173092986581005623641647265664307068958950799341440457426058450508231183425933539131176257473895123731068335265943161698412839365397752641546721556238531048782285761888736200518198020421425360156217426796439965467612518512444197322290234877574376566973234260769210100247523968864704422516726954467554890965102378941634669390057181394305265281849942337464818776819831919103091796984453538461251405641531810471250903931815754256012716162434381958979807418872441908733631310409423414820547113306104915375715612881560419983240108280401294607877082026997531804240154447479203476516569841529274504073708713690743972477546740622132670558731731326518498822451602165477374603546012406265136588326533240324017584057454358325179057287345292722272477019693915012976928269826028600101237314594180289668223937977367476774210353228213255037782664049897095517315563405342576266574219811425080338851163261918982776464898961414192855102098687269021763040707447806339098671288959310488973233394982232579133117064804399877898153022260385945191119094549743491518158184105392905309373486119968918191379442464803612355103354463136983933813373896578780585301792635290642872992223395872456475313118122226607977729181948438198365367328386967752866243583299727079647533742533808963609250329263565654109991801365252060146931373971988770628654540251784958789778163588075810065468794507308180352089520703702948605480023603817030734905257148428137456628431613861507439031890423498471697771825055972482591384513221765334367144209498204866576325833708374297970137515485297847610156211211482373562394962406045169349531569947985386561885399528862512914461771141831692776528922487557056795062775499101938258083860416099400514595930292550745532372641733621974662465211739585911290456672808581430293965899183034980192345148429910207382754904826499772867665929886007926485807418688159829996159116029439681595699620377467723311051446521762125004118003165149162565878194175759890743066301834707192393018503291750603249122626843700571267460085138518377165681270209747685405065032302054559796572371737697167514890596427093417624754750584038866593483686133533039118396933263512364455668684226944956018716166735871315374798671830933852049713704943436681028116360214599800975570751139000441081572463126574685880527690969208716010836012688032564679250295924669550062040656860804325819636240154230125523201751355480864457479382382859946082071609485527813365945465993380462200955660284480213032931063655637515965874610510155460436041552579334226005975733231154774542062143070656603922579955020315166985590179812391261313813721359878791077324675450406979233229743048191687280526639882584517222353458472600129250466204966968290084359855030892038228217416181844472575758070397175026188285212501729214623656965546318331855757843619267680459482301235189557922222822291124509321774383875267992198092097343874711912020978589724808110239573287730083476301621772309720983822203306807793854623587821064859724642454631486301720538638906498094875129146330880382834473866815541912010291848139494248298338056578327944556024198743947272850275701511530550087641369023387146974451655659682946701526195078713580045228347042615748098732592336394057033949818342811545395984900567227410819970081261863709102367093048255562164332104241462517225145571005960399156824391032999706435743772953860439639150158107705592555849985226745792467938568551529302922716090739986111169019270208005681073977181605770904299015469438159807167924109384820751122498140453915794825583221673904178672190514878518554989276446345683190493604867696342925505498104333624097567769835587490488683366621156261811800594025301221916431450941816906611298173284592477437445318341942236749787552389319917783133204324656804774076290858067438939363908222448891399496541983081411309100469578997144267329893667829233997000205496193025939958888778721243716237166933778003004305800952026296209848596381861462592868238849705723429313672874697927320886708201293781900461537648861917142401409993026403750937256983115713607323301506868058024538463845391433524634496913413712415560617934269175056858454523050928898977168001975585475003506808974983970930368835362779856587691866694853546587595025845332014826677173261501998919960901258995866938413827726975770522635004016392963117760643930950888750724536075309099163279147026494506954452151264702981861001590946836084500178068048652080389127455990649549060743270646705614391436663628068679883959947352465771334518087199463752586871657018866704007857623474848816339368078161144381280883953637022857733467867293414110761816439014220275435624521741517092068729336076888841296105142412947680309641820869528563826533859556439092074913508402150656521965027580339896637738354194103584088373826866453439764070128795711770561917008506306064882847196878303383051754619184433736540234254601666945751233930057479728308495930474034592199381502437745299928250428402920704383268501742379101712500401699748583452245475145995922633576220137760397144884136587974208494544934847367505449058476751457126740558201663561841221816747363166799410864768136005714087040644272186827646881511117731224047900563930477972411530686060679389642563957800537922290188435407323088350642971693102900980638528104828284788516252501401116105602186190313948289977097470115062148400250106034145293697491263570389816820170508643993430271961542897231391358027071389576585639852853380803995111472257651825193614704298879387781141272331766149990849819371499082355720337479421654936108843326869784662558419150882356164746715042502446442659985133128703593859132040369898248263757838243009790656639317172968723859662243551310810990200163515212092313545449178820219022059422861629721240998696787843673112982800238527266043234036689600816863080323381973026985604287123008878321466032711430720570011154064613826145931482167025028270886341949916181310304227683936532903878514105831790942816826449088446935653238105856133069828153836173372253333277358531438990495064334782014907380294992232800490018254729190173177435361158642294798873914472958496994450420811011256060817251203639375890339087856651552503198827675881598385709568263026717458263027104792778726337028751668299111373691172639145251041024393900961559647112634641979146777691298974428018466266337908952514436458923123060524554226179466504789489566901680085961117576445097824838763833653405555136702689261115502953281835202684977497806713156424666338075302929943695890911325872829372106727641313240280742541848545607232588415919336395239593782679056657665799035722100994599319791707201352285773830248603379202947907546454202981129373151805283496289107178549907812401004665285085481533391482735182054522505444897827275310227325871936094181762757567219308217743785111010534691925922892571569320568711517532265834423311261666639331829185324380053341552546782523943111918820849772289878178055287680082201872289763624215413691901892486676706558164762375070312396141418284419206290573449574446677508995296413307884384733440296297685789960145850552325077060865709968707262272721353609473098310096213823300810650836442214875042918347487869041791460028856106042898978861615761361195532381728549016123082272983509942532758589721871092095810119998859924687209867357922801940426460855740664373817183167283448230506073494108577293126850045119215855238995181258535839279739825338732712952464968024542331928300926119547971224118367064628460454361010813726946593881125170294519414679736130610856932196052755960243529093580954522898456664945874426033205172172683084217043226537034839033228539473005413933089342591415571975897226449807648817267756005274841004060291217701386425831694177749405575175996961128875784179878452300827131649909266031993621980419477071053784782417727895324240597861719373566455573687310667175233598709227953388393302352768746230829946475663935489762264400419068587994233385545470022619145719251844286557853072899551338364621243232375542027892760186971069650005491535689276094226363078867155981430380161932412024626191343290038830787378799606928126701252649231380903952064862851639112515418285997552890505671155714028993618371909428028747929706761769256937629868155741024423450956860849216610811483263760365759243173267559188093939695347022000484517228388301260347062453432337594180452270724124249454394399088055130487114165446113647988590190486955902962159438225867402286074094625362195382564274900631455400551430705840954161189954807205516767054063383813389154875258151251789223456297126932909809920978598752630349993609466246149500299849666556874014159485443119751893808870341463366569018681853796319485353643171043852299462874773045749273030801505916598103605840458633827467058391246657046962554600783010964790306603698013014099462402582407296904953746540408209154800459092637711202870626674513993577295811269496922189007608169855205344258129147122218855196250425374560775536426558789097736634872483195670807254455492430375153321040007963501385627272114160602486232722069937867404514528808195491783481812794772224919546227888988871086955081298268478248780162240404215813756584505815398161389799263367310367732148379846122428405762456983860436820442145289256870657403917124146533791255109394942513083098639007446094504662247438523389631154539091867018462275199884336150800557204664527123306967545342369405705430163442467478515157950348420278432577327687465886720069651650284922300263903846554954283663545571658355918908293892246707510106431835657544631437501061086097362901368008606299113134707416856480387273783782065855375149740530934144566364332796595256854173900479931467900643503358319510338488161442751584894886274641937366415566845243957043039000267071521000963909729681711930926553703572679768211065403416348754573095817626405781820280285976290601012779468093693478721181555683977610252424059506375690247296424103880955970243988782043843323283934419503337604167780680057927879592434509699347345589871945932457937826917776479774407123584563044623241498413568156850695928980329372714955259051269706747342456165454413095951696479642209040784480889953743950064906680761427774906595861678495970857962883052925619470515814814804291054796090482513701326719494354823701720061334281891012944220101976812573278488992740989022075732371644064731706824797786224573054913413400820801131306681547957894820654759671245811153477931088526390993229802081930664913028601148274958687516186217322898818319662933294944551465813389305208869616072968688836043782703225096539766879960890000972871906149230401691805147053117621381120322987278994694657772270283136902482521016234286950483020520077061033461824933998007941958415267546511056891053052405669472167276665032855525424321547259049489124368438262979426050634752971830606070811028461052050531116379744521943234126717121864206368668549708940781788221301932455746069833579836678018573043442323224798431696101743127341830499712595375839979566622948385533768779406937744467458449444472686686683690205901539736244895631516821974579646563805882010157799189394637091408311018815292121974802057062807241724294417187100028321525448928301740857671885683365906305356136742767532288183505006727592224993336322895552217177384719132837224877150857214566043265701056179659474225169710588820712566500336201609442938903596623286886250251237721991870731083964163880574342735685218207734526389571100773960716348699207363907645447444828404054846063641203756191052689053732146704532091742413221839827267638478520010298806528010846581660732453406277806283673320176252870058617842923009583119163745548792973979371879404365017702619923822544315018287679555141001364969177996898098307922827311929223781633310480885258669581907807486384391231702944366513444459114112587652187715274291135804726169422316115514046542003765670420565909998482602846080747008492633566695883916821219991009997831052261596180443950248842893719729337326730391215130807612777209368231432341612657845576930789107643487393920126655633093827711661161358328582514147517678624689420093618332266251016856895085425350193338238499632286139929759425658325698265015360668582923395860282071464496583077263110850576608246882084150880444823084571098147842323868689024908328447341223543400158244757500500504623291143254762971464327781154646559917230599418029645959785710114605265268215935653104315976873031293008813215840258342338000851114569372647921630434481270480949557095658012784709836519326881232618323892912898838990480460215161673444769646337057550550261843847188338364498914082121621968277933181084146881540402166485936946753627300263552308079102753445886799052290034811314878596854101215312317026281720960242346720905724997734899675194205445732665641504384130774955799560964967832883061352481115809941640111758137564836817334810036256425625678022324761000775067184860164648749113901260157262558905141740897020444215562769781578474468295829575177497815379725578763791390921759777626851704811100053001830530873829926187652052136027653618650981831601080221779023893206212730747726411500415141986626020097384885563047755032308421305267550230366110053827729098955564982247760005756306161305222569104119471171822258235224097195850460791395446656111667106919796332950488261770891272321979749680695577039757020137135023332953103370661215549232423364169904612804139701808750962157786645971280603565028367618194864915054402744243350233306948720722406406743958344274895917142415520513886615656861673319894564317930344947409536616765488220074381399200272909577450493836966939845766978947888348009405115176408696273231599531693845217897956464470212120240812774959951172387994931745119659547282484990023248305238936262154350596992701519824792190972695498325389099549276984651482856872293691248134598628578952815698414240044610522227811591695062443006705201059647987759779485245384162839999446143449142193446017833798262768792558545409726710503522120100835681620788447743948574703079141336630777841720583694338964949182828675977463194298657941915626006460467387604942217525689971877150503239497075222561225973011946921505810888152830972388264339829180113430678706542824834360448753295255183112053394224931337288182128281045940292672394190792922996730594584535699124332151321983057174884521120967888178952834698941771168149168574350778911522484935775766090007530370473144064301146769307066605233814926992302296750564635991434928215559893935558012521053310668374223013916511297054989473832770116606924404414532953219840475843047809944851617968222159876061626834298241244366869561452593823409322253695266037575087740350513403816771395722304073281900805714913145011636453758705189923488711094346357089568978342798871852851225071095810802317418448646278205416066590668849395988962388036984042136552936467645426347730539210042702408699237108485892705019153586793001214013611679908729647015568246997927936102804784687993909166459946259263263907404423283048186717418556107055069942756502223529368191416343845442856412264448604582443560419593732508298870880397580167952319466269708245705664211487852046327167087417042520687794521695468438997245623522248973209149982552477335400431697359996678740170521695962200891731587229271712013601646812814241784790596864627961913176470473893644640879371427363168618984830098938831054873725364570875788729221197073924481094161084773267479236586429225159908571864712436158333336824191867953700651416427309236093919494720078919899679728732016591050967157552909959164612519885845537996155186280453936050000121409323526810010349116959682802509799907823634908938809591045571588184987809020292845253111761314170578942502620601870084152824287129850291864341784405690050537060676807499623254394426629562065632039394693378061859393124443370277490178531537975249617998118764703882428783191013261111524040465993380939164894122041485812856635759402495143070723736018801200207538207852150331507868607062172137579288433993094636080482105825281956135808503750306933964905496365896168536661992891754936483614586479245520115636031008120417593281905848066108180716348100952612946713028481346077038164633057085385254429715691323989311230541267459330043825131221679872651499535037008019839217645180577684514909348918357170747682326314926853885651402833843183735577680239689098640219113038618877696266139144681341209764581577822210690466345084307247784989538447442047870103112931533337036343975617455956845713311558536649472107811702196999102337748295778131360085526140050916342907554755516030959093567672952285687781792233043291110861400525006765951092188063330674423772770903744062504167642874735277184708803097225062098969553263571585819203944175890999061157979979568323910045169687367443324393773106144446760858353459750459111970085165399686269005207114214941203653146092301495462408544448678403903446064328289268595995613498501628981930292217333634773388603797159308596062712734561241723665680797981420206193622029977944519234697803979067692511029857974408769797028921869214508792179155429480215433866386219186282050865366577176375146920297097081624163944705371517588906267540348860565739272853182849116399018943352874520763417034137088978785887012951858192792318607417707323693828505345854499993492336455030509958836170866573540054554028057192823824008389469789040144077357057664802353089012281607296702713965980974577251262940527489545899034575843047101782913227959229092073368928435994636268846634510972918531268268647670188095606607036746383820234961118317847833755956802180996428176457008646164842320673967334669736436555558117376725515760668799707449847296246898435264831802637237475076595474059068247607650276344270025241793242670718835795739587926822706656856734304167831307525019787104121847887205800818611747309504318480321058539923981689144658705693500005320959775975674978504924356064122295197768375875282403107061116196349306009529788641985329617873089120584840990662785537095786397504258899162597474913272883155455157043598097995782725655970435379280089562497772804896724743779063675119105984453014664404161692855860340345141828225892414338201348568121787649974597585996207125150835119441001691090528167621376137407757525986356337825469662687977237352054052113321227619266744287779454763525647884016585443086759594151206803652657411214257315928027409861568729677170812953400844975310394349122288342332702255908245220540466059813542897808141374049384677929469616888960858697740245240502427603229340534854349330123258031927979226302342212237591641039155158426483746056623872266979574355325868421163361707685519857581876408785247784046467299552707591348064441998181521459809465834579035507796530509754286437333737355186369394930293241906763477913325797838467474000048958998548964582426185299080569700890729021797691121316651819232008640914590402749194681948141843318146175196520039947961905716759116293145763618781306267431213894993915604463754401907283046556472249317123220175413692898119797801894303138476096009841746785527068234703648258104803757467917607829310324166527025598310249880281100589927456089356629259145090778632907261873059579654769420806845308756602600429725947239002252523245906543316371086444172556452674335309287584670041912966755350349922535490128645633651455971576615296951959823014298752323124576251168991464331428537485500424650702958611913429907264635248513536662507781090914423454196724806892174151387939287772122859030172340570910438198841475136565965342885345801750105500485265511619870489047064155694885417714024063835448170437580927649773934994862622446626975180748121448880011279099839756964727137497803297184404633056945553485447933413453610122069442136835110249394285983003623812870376525476211498536451764182411938307345370419300907283783421772473243991916280051722112835555280948662341457279058578356771018772888835799840206265236650707643758765522583463048261756781622485141065335136102659874415236268516421070644115745199870458931358248684346035665822754417584125345641503492929450229880469060106245163345523196019321565781642542037051239195924482134348128419080319877357611359269401335343905386651614836226356926180067378470551063543962831685412104314586112442045481088182975007939223581152141276365440345558601797002615412146203406342446322128394381396500001615960173238738418128315680542066363463907778002816773159930918305688227449958380613051223896226573799522025711494838320023403357688919170547811851096310845306918535632004837808680892760736476005742788588879020628954155098630467131386339572506280452881490520027596557417308383291781762281966280387459365371780490838831072583181601477924092590032740517270116314169226771386533077782469979413262938931685528542525883717508801870498859765625582037406478811361183749426555417669634575675641305296148492677959056480949954317828238629329286131937653909136560405240075905751335047795977151768775558072235220770958632079654315421640045936185616351891972019650001581909605803097790304836008951227524661836849462599764533225409390152820350382269582234784485062052807833351437748123808724298007485578305461726777736691190126010972611888527575231635028989457297470887114490947393023882371555412456450894707396465870891367489675002818582914716227320883884051028996006625388718392217153894863769009798036720415364609819804565016017258321499054165188979029693564865723754414152656417235694839638240801408222673364923097707437708127950853694943804217117635231234790930422674601862502745669866129133489143895208798104608251494843750997030070487305852983233734797232156381327934820298615947370055133040266862928224885163832355852527688650924692724982631179948690435682970214751708443338501250593685017579977575545645659682551240888832289062989367043620160475215028088481947757046569711360724345542856802550209772659785348235454635215335500439897591666736566306259580956769857123979509943331132195666312814997042191360802138271872473192372417478854080687913505718056718155655302081473614443225374314133766499634749972684875592439848999992790875403209231427166239686880579692549337784415773114788728971058059193620231565565044564977803811011985229645862913330015110779741890075681590895973293034229077880288062674447451806911413402175709922807744204782575742306180829194598324453734287368690578217302448157068990855395078646527271190585904896002837417106501630892334359861985473884454948049443564428705744080926376703384417831624848019292888485388913485679912190957191855261632819889206223527906268639115751724748170217726965940953689976686101641804105702163481871005639821786576003796026926219594172975848872912560136318616397351228546367907821261379131466547625076768723525342052065666349768999983037509612330103049330068866513971338923028695091926281479450008039514187810698205554907499532409532295009358985125680852697037285693890393118818993036376709304237202651744391629269310156068447036663530745399292254909921259076028193533830024300606689852071579055042911828125643863258087810651519302952112445542003532660818355716116522063954813441493204008984266495231544396224393708000158666537590413159855457115502553482354373977242613109230390070553820670656074202982025363756277575212098316484863448941740217279040114840150439809783060887705716743403470029730053243509541779700870297618927436688153447626684190031529571694560688638772369385881053907507952667940685373486237449170009712279215219471312492220593450667538755940088562236041433120232171759463003233697042735677667318360854207134102088405668156604444219103357203143150038762255520431393552174571711001095850631249184632283470146104376397324938156194942175828835770680748512877854917116800048004349077942748410937901110859470937910093961449035637544733115583004193881800350141180608973229286643665400633134133137027473427162116812645898775047078680676298486005363530150255547760935330326467554973241798530857809066970710495661544813398534581073879154350689967168165196217538435194997288988172917654561860114127253072249935152046136310901235901652102635928140967341358297983256147864238776144829537403674760157566738410703478516650685598205439868132697644475293703746439965652905767660313409508958934680977415167857538334589188937718422327908799496080189656935660609641286328001620802975473081898783632798728572857669538751944125927721164244374230304767400384111730886565893072014600748362366696322149514887091301295456343133223799529032985329501754744465696582908667562685604712829235848015629506345460776905956611586815501827563582070158151155082656625858458881287704464625693456736544026070568744540421862889965491049307245752626554697900851601137904829275241460952642058887003527764788179966971421143437567287125554499456219810220186436801701065308739086832452691555022267836227373455050577207462891441944105016320548878992849915962804458656411013690380970375463751534287240680903596047362767736580291329389453859340463517561050484675489303616543563181476177668004264078503286172422036970179287974090547364565273236351922150711430707550192742274353693481728970501198498360822747575432396591555647862761283604459330234094079318166309449283595668697987497011263474237018311841429386975378311611345476651011274833249216494975428602999452553794409246968214869422224815501183898071241597051776638330795874196384464893201351764324184424692316814690101628287695734574923773262789159971869393254658561329829303356184154615064788908125886908568133019093333130811154385678758032519963583647035151912119219985970523042486919852337779794393933812000122957816759868903820699961492244870696764244341410606105662780484589194236050253520605351889832129157567240034952452493652580104426900173788540363012091466305331540481874126110669063224094223861820387261319957760699415286150555499429679918977854189979883940460297254870117552511465514417289990702155914059510953985449899211641890047244595051857511683603522245296777048282779208286973323211398210662013821821828146615969058477396220992211931436596763450878043649046931922722820787661745359601393637313648576967077607059467956815292000052356523947020456374707769625323878386179276627625347929908814242732702979536305414341735099301765718260654721080573370348406979414970649981724046745554137315127030213976204891532384779084928115831279760965608835061703836591672727987999651081212158616095671624747846487817596174008204232505149254034548693394047949421861218709189291450322335052181853629141769701602203545916642382940002190472556312137102306649950503948307312896060812834599888708384299365180179620282537542082930753756548988062937552911342383500516102616976279603665589373208943960403486873087668061466298343271054806469738799463375378103823841696332702823953714789162806078333785802595156924317494530424037951471512282094171541782085946385950836123800435197519119198939784467388602483139062490998723659935666018436609656638634616010256461121029383453710125726527667593437564870210355694352985630545267162153963433748207378688971771947949028708383759886173178521025703942512596477563094855969710105812572201573226124748578189310386579271833250212746698019768510935883920855918323318487722144936445275575408141462644771173083561314130035851230796683328230411328965154180423711190430205407811656271409868086110057176791717394021721560846621003614009888675432517340175675097984004971851148957545302250808240465777332722881727848541041276756573496542514017377212146815091038510988046812653858862833538349473340881899847607552762162980827962630471842143437813709464841751731271909868741863675391737626753585821278780305356066522065311352222427815595466411706420573681634048197909811244242657053541197166685608317969322607852864575403404207673611278070709137903885830869551274920715216241310680705300603607121763976258901254519524731714591161910669040107540663488733287518749504343483366649448894664759249664494712425457445084972406532634848762534966871863715374882008521887482201427891923280312423103762242636130351874080315506724703474477407027999908732834976276935994994928926712312405973621694316295208369981629262728337052873457555245509101071561167832087716426027740762641430554741459536276977313817651572553942169036949115688174884907759931994650841055663826558095928733629511170638446267033229828058035124189431742385639303119010381178487798213287474251274435066338697119785280560120587746047590231182807135727454563733240166294297396878525592184065267503210237828735550445858343896090799180993749399327342370072511640634250266444354084276415574308357619457269931774005861196981886534153324180252010946197950785888359908101722587407066690306699771325690564178380373415358890902847551968368629441899654754883879065312599325474402983192832470529989951671580215470918338561442603779586112295881834703132836121667509713044550518971895949131465376496963394473605764427384310874834277080397180966425986539839601428431197590770098443119394584490870866464605780064274937810241738727523138105361977856268088856551672973241001132759836779441666055931100279336540998722444368469054321304415628138364058008988567938864380372076961826666922507304842498118787028468899526955721046622554559947168382593921572114709336787374403772933752453314536064885485664670574371601587034234812763325630395672262899704713359206853133663642044526280115728077473929526450795797376706943966977399743946793140072521790362047310709950021049978410874608524056124481339183372648828179581515072902042479480873470279189197837969890221025803094665593558852404903365975276373823561588516457145323482749438657008651455798663466590126770339592766978441980390123802432573910794912669322636252255889847554709249672661194761732920925196897124563237617989555186093953021032137506197736264340756753976105045127242592256616965453969335163499154914897698993371987100699027495099708281711943964862173784185285423684225092189280262744665675423877361493425022157735092020287877112254045880762675942786322356764139098974837429155845240128025755279723092499403235810261159515426266673404826729685347719143771187426267707492724907778724333941490354997360779779766378186611621545420175249789236112585113518521451816549549958643933243584584658249613268932363871603818301036045762238054818546832505052914015647935999795273310042347791255513275258693020239654387644515635970776980386058703057430678623827498214294215671481673705672651144959307456569996363646527999382560955799455085264993644771872181561768836388164635832474653408489483963338641955182881180190692715666732522069381107563031578289178925220833805665500554629443680709528865162424195501840643141828175514614241908809224956351993183261506459588102980300112410285156656728819347012195473992714957948395978059325472137654799323027060300912630283548434170558836021261473245221822341776566408353116132525100335397188921069497411188328047899718716577813047216395728985974901540438538413923741430240948480428758142869569359098140032178741758949152703862041789875177579615056219923457004754396735954224744537562230254219372262433172653926062865464175580978579538119748269255526849822162546386382513782132900505606685100161381732302723109542300007062558464021461056859015275980234340280401222201007292118817383676867233401928981959216087531938137577497424255474799143043057956767279996729949447550208338231811370102716575202527043538868211402330164580228155234231299090264706171093727472600558244526906415077195638823745145026556012674680672567369253182705887909536705046014034112160527451844301540007695421489638028199866596105730020627001712122986774927621838325264319002536130431664014080782765147295251342581467850056295534950449859233560537783935934914469923555946819616201596511087409191924662647589389501754878011126325881825614851118091496132641492103456766983667211386599763642624984479530577489798388168834800015392135679245385355400816019210465480218540193123464851245360158938850940966539085904587123928214958099454725178059059492405718404701085144194460999749887211527258896154389941589684511383780770785236217105727092833901706179215912347649509723469810878454247680173451909793950106049472736641747111206936929266880030345346734833240155361319966715479217374041388302614410827974759481203749871516564512862974236944954859728175124005375249422636331414531253617702275445065701003177772128507756848533247101799870261894644217655162955309583133919535003114640297572001384975485749288333663452580270189721502328028720156741892951494167796656941170827862063472164845540396581184251567560746310916180348602293850262963966160732824004581374084592270367935518148883122249949312337773192780477362413749138430254619374567159700464993912715778972109579470174421323556745902376373009344399237941499486334343544095596561356689308435810911135252560073498987513729238193604994850368422981641047483495868464238240769250518337307890961990625335843927301352263576321048723231950434461303775672339563697439082753560850330074831366875805305498219207582821095348035866290164570604887617894678978960476286886065442344449506012289118206917261856541150398093364558524474876843958347869480572395617600372911440427654145467490067429903645198672492424385380707767774451341141021265341475494740273539108819257650326153816566098869652566964351190122147489307747730782267273057088590953047642335934621824202342351546574144111359265232317915748326833693244033672539936328289712226813686668832394217016169278109393332626053079120169334293387820718538801401534512167067287366874321365426903272102751691163543992846564779304887773059466740775123073831255805573890737308117998649360750959176501736811591385251724099047739290609492348443849512539996872782035042021912863780644734226635843564609009704820691533630516299901480281248586801566842787820345968729033814099795612576168786963870734506791973999085320515336666235857893567668631664285250504513245430774184739591286528252937590939330179696439573976643579489283216828793110427190983644462742020728938547016538729493657821498669839033191462829153161272591233025597040950825358075361613881562848952211630701190508973716536628135464923307212459838755237348102640126404396776909857552714348399103887421421885306766381277607556793012769120986749613960100451518940785926442898570716925544690344274860281920171875881294473972379169609187871740895095404045970280876171617696102794153375910445525023303347328711723993370049591173484023627228322487279343907160858522528918977796041482199798513539449270468981768945273049887474875915565334198463860968332281068952318270327876929793203162623705403462197823352966554959462477413647763278631429984413626685738457092411305357841327158058864458040030360343729133581189340247855605856879107150634282305897339648694234964211341409715098690320897002366836098931610430481169416862368591375877326573731318578313987768928291730171650436453962090038976458715939570543941396166882095071795089426822803899281814405276410047161564669781781832883273512905257308889951489496453672920278940051279607599017817304329898383332563745421924374885779325043839363869165762580997097216415456745384960696645588273549497161258552067811681527493638570659523179824455411532621354203011019410187170067393172752953081890755022925894659737928769771018497349809627799609529075983861414725650166403788096720515338259628904194208832092963083871002635491176900619162736460986153228851468284460882408437721810931364656554515786807772540531369583087262104575034067249540823222664125572297416849127397351296167917905189791688617508373200789843020497632338066400086430903175942214212564667994892460547484717256736731487086285741021514501034576958777302624115185276282681838280774980498371417345973912136138755219315700502265443007805366203812524026900009005247295056823827221230504448355644948198283977498683207225715660779725100545393248959798841800038392959518913344520082860997453889144329437389274713954732657354845539318916823455012428688317316661773829199731738893326538207078399037333071449082949856975316565288728878444238501999320283422262120146401462018213312856138728112529534868028195888524186965155401339501405952019527793257759452784355257127737370951806782791348476515044638452922514620797444906034105222388334198775593737244046320023526483055291027404480105981224310132997450275241450671180271100159208700274292144025365865239162672196948429373396906975555931369288316065106256778395381969743384926903082348054355513536749869329497793853697332103916344577215123327519599633886048517690594148349887242008359104696103192171682002743503287952665348020633231683806323249392405869618901116884114120473656092672947696143968965692737505791012943864489838443276431222257829909381863254130373063123646394772319498024252127089296737282406115763667386173734021984907465126832229389546960098140755640673430108772865319557392594621434183801632660400111908394437104713515684226886319939606166556303714937565851214124686686790156756999520295310858585395134821487113097665526053491831828059588215905883306713867725371776797265190692336637229671681374214197875914706798444138925133590765212038492318008447359977739455989113748060447182539397987835208581470892017439572071171260273939353716037308668020581572272886076520681111984825625051801531330553502954242430906371400578898448582124730217072125186078695255654973328135837593547648289798970120882506937681056633637744362176374078869820871139865770273468158927405841440069198268326604314590293538919124374930293890524509295328602217373165247607254768033813304770109650484344046616331597698125252402439657530208270645664709209667545633657287195442899188483732864202457927764082955628175416197618584556698333571266535853167773607273896580553337713736015228863383596394084561320477339338772924547377083380785131613506245664274367190408860197731925071189568275868943711134833027270255219277874029651122582505529496551506916851884805897092089471307788490466046733309440986419753599228349728134618830563648678006715836666391995663241529694144372881921454325160772840618963085159774168962782936269519332436438632610543785489132218045436987923879735473306993638027499105845443427930485348508269006691728602272341776882355660440257292386440231681760328481477552157301834654013212513115394469827172887864576686957077626267838852019052832584719531659485149897411886574818055464253807190437202174354933229164442749616409919611570117195010449432756519205244026246206945872208127416445673185169680252743882419036163554058143060291351615650107152957610534677976699604918564821212723828645071656434688192856322395498113543065233640431618891846759560509811793571118405327228411082037618722670185559463376995966506121430684595085460840080762298421442563671339335619851811613903772169644877256826233021498116356470676703192232465559876463834422554552948971224925319444874720479254350539017716209585525781764543720316914358802768654193307682221889032842207054523888023274938610003170054532616916374921004378521947610517644244958200487486743999979509237326534945415504756371983610747638457315765531766933969508814564577637920477459794072538646980258704770087486434272035863300421363698874856806366701770018741660725517624089625745511575836108074098635407490677156480158879652091496004132478715678534159779345263280314255466056096334073237589651537843349614143209429921675359658254788823289087161332253789618338805024960632638587430581978649666631998597223096988993599765580368890406879160569192719321730650532681399826648822002550513374130554922518598972429461769467882142631740282649888246972300398761167625685047617609347632361412475032790161321452051204152927515136860339793916650116785411344925415283866182407096400610600760399953002486618268281460928245710705640671447080007934555536748810506319527676615899648603522942134687253240684492818857547180938121460337879804028033699090918975701043683531234477338930956032888406689355756999372843167582458154934669866805562362044647232131223407202388902843123995855077132893929484174105745920960699787341824249938098944011620499743840772360813091816206175347900802797549537500271676806809760565668210971672207934580310103761717335463333765575908977279277936000099633175920831610747288685659873678093050629790789523256186285196929551547177949592611730593524449001788900104056173442637386627184560355253798196392186339032045866307593100355177856115983727990414957532573999153726334408961436029406537223318299581583485649870773826741287818775758088931519848653177171790908791030140119108889045343190514854839600575661371833417912353434355519199075251678502632294972407146298181295572078264298033004065202611909210265203479098091627923342586239874865435943293463996949497834631559222215883299065129119643722466188543634033414671902390167316848554702877090210665960615317566435217722820092872368879606930026161262413821883609043323039063910579156904593403531080929276013001521325728520522931283462712575855586882310645963996377060354860826627181331825896873334559429491689638656554221686036999017830533403909668571401628266129811438150503948294796147127927786229804925734510278483520003456897249762424444190692574219992108067220751731838004447531553424808529469279585386390470663432053691870500935653682241215366106278133062276260837947219290713831400926600758107107651331118446945199294105494853914014434464758882647641280430771244367311981736096753922710990931912453100125567130183693607539469367847981222928989344930755175445460146429559989719288983189166905466981078276936856045074127157201540255921176945918862024253019243473131864277108312061471235340641887556598873188801926117280501845627226355337960510503428893567452024501088764028792641330325592202988714092084483016654347091520519047736705506131854595798968623282603034344709702609628281719471692636942987528138069967821453189612571291176437919396261309576957926532225829967706888179896279832299847254119139271798980796517044358173970674540220201854452584135927347145200313340031887903647445910920705038388741278813468114979676520827715293033242249900095818288336558972890311871531663477143937097916396188801551582207780653962478428510222167251366226021508569691393804152303581760631823442756628766716691011986728000096158742279812670871537961629896237722445094486951857299891093883059973277307341812217858593331239485636330333545087453828733561638239753836274080335436721090701925303933635010663157215634102932670434773164638643951841011062587467583108486436483367031295694563967518502967179408222126546470452095624969120050113758222736633344346542202951639681511269668113965017295746582710894867962034056888706452510213606151023177464911256068318716263121279018752657904751860057795066488661584281672042353433703075516885219707011237997888734974148869480220497815956457793640002371709456298660727499463940912172008165372171991579612800212840403813394722346074740422689168599270142382210492091339913148472096158500605877681700773559192692994849910977881043367438124059825117760015304338820361449828170805100432590116924294418284310561538121510527720274329733688365722785809453507127221703360648416735114743457511907198311005229746940708743123773684052183605478519042302117349375181579556068701450474180481500454965087262442921047132391722315914398456338081713283858826723644271980354358031225278686557649472565222238121592145360891896855826524384845378739201471701812292647187391077497097758873811660985172871761367281238448087804276297817734256946202677226878533477235400664734339527707450104470058832397029455033923297545604071456659876731717151644856054872802867646816290182294035691972194358769254494208480784060774822060019898001760130905551106305056682820473189851126827469597274591101741671916024137395341108252552303137739493888440339141441653662147191781981097041018400721291709842280231231612322836296991974664512816218519978399525278714480775397471465416231274452202470729284356700057917182018705153496013873786226675282361166908981644711902010318680695225012201230858107519425812363641058801157078291213298404783661933845864605704029370100910585243066824497152180665674287453188200129970668486518168361792079547331274458576344317167222643022302478787274100223715401627958365920028989928206527530959806638214888986376470280349755726770909299055552557917695458921784693222168548021774875353742791855715643483217004880599500514625009382007432910772048754409081152427257426264133847772537428275281744770080626431328933447191753865836142266068019483879014084582525285581650056108920437100331116759157625027238006653795259641790378311072635893516303252493727024154066241725549793576282484567690671465889186831196328017801162424248542318460678502178070042549973125539106248058450303408474185780161587184186000805479080120605674896319792521316895424711588729588512329645512554009745994389589545981573414012296073161965599735259350198938185287537931290112223954587869184343850961987742548873545028926651130944767130483463984648728453483264566238036402793026468817819757407900940220007759442280339716975699313670534954752450101775184322017673289563160358179930563905747126360338332242871268297652875117938263909015192290251024595570614865830649365148563904742207933281955952874869516193212297649822707389073700350869154946677437935659396150767238516936857339885944788547746566297314358286651355454357556948374100898269777845009910691464778477613041353421869603834821207826609608017981765918551881475908455568581959410733451222935212414654882701119276482107809655584917605755713157639890112914208769427683956322420813192913628485197590321794740842088975600706480674559713496157957856008462128608925245917589779193017603417932885983749096837054979261568881008172890533526352131117554501640667262329928561220150419320099443417069274195980038882267955087287145007376227806693257730124427148476861777519838265596728003290981484202345972395832449246466876364213848279338366155766403677133610953339584092278906395993355584548389273364462606514448754903303299284134073350378504120984589799325401030098016271181179519643859432585639501324249103332779588806529602605595858243287896715500508719770785070632422619502422725042691172770519377738446476875418111645251656950425406508937530736045269298245196807342055662826404522500016478184680041834190084698237602741501652386109478919839241258422469349253581721418083546229796542633171673369378281238641317466787365332199296315421067352177904068208750413753195144130895528224120772379572014572368008714353851634042449396012039720779588793497452220204699612652849638470011707416191087499409303095646678579144025013087144980790735159645867511374608966865048286765788222919887842288798882347033036758263275022672020332839380535186591744738889449574541412692893150005204245440755765461659492867072807155193093472081249753344684198979014170313561731466711733700540831768673371620788820446414751663628617715359753949469561005501240976250074106488622006090429517880126565844763344925375725533206043531571905135014684055813170065218125523278952406425139954004635846954451550726072710470132602983010891634237887288985720374461362247294627626562674827033940997059161471423372826421340460727523672771848191650123069275571233775212816031230920923547379294778891294938774760402884102001104371325086735981412749345304453652172758994617752618069081861118704927309057584928828974988147542082811091087486695054506354252861262958889352998657254543580550901610347399713749428877434607211598569426214755130040573461368720032810784095708823204747279444590734438130870549239392600120057383396247742747977617556498688741753674414319757432752137359067394799381233856230131573418088447178287240759843186383335025595603182116685934259520121831020409779286704557104768054612887680697163572047561655211839740264620124440193833299732482799985002715425356630578126280499386145692882010196453637307949090532915828324675094306618205778475053130231021538756840648841975671676533480494520217400974160846713557978421396572830867233987943499139086244417397755155384919024720874638882546353962624157617963841073910487852205289918684022864664952130926474170346683899640307246896398729419917607732660960425618508371277305868000807167107009381154921988834348242534180965150220808924525180323983374752689753600191685121391617021948058798659525480286830308802671113520450450439850726304788139889650617442190396414549137227383283415702503121927202341035135509451683592456356356245856650009955747782880682299083515874792503467162122679268543551584908074935796120812493224412589439952937970466276353394811264794320292376002457390497764532124326646626145773269982129058977529846794786859466815373434934154568286688940327761957260569819611214758661721431498131159252077201816000859842446328187927941391912199507886555028050715580381610646433643678170851136073266721408041065289679632343070472689030244635525969673246063595090968505704713575796224241095166505712281220404292034998335160203222133471729884441581090632647369210932464315513462492138928542977567628593969214157732654355740596021927975919808040265036773383508799225792837702615805054021203296496246853664306729980806794886032998344713403143638626000711733887938358459297934016641081804912698410454302716372814626756574961297702881414162392854598312364164815767936526548546401803379706010433270500549015591140817673658133155060673694947077041921642184003790847742435718585122997745840785318397064028005345575385584362150531188853690416470729489846586751187897458229261600596070514607851252137603655615710582460529442670018989732800641304567458873890521395804028171058743659891252625552071106887492900705614192994747435160918089362783091000830105153919351277126432284364459845501546262322715231000068365556876568975441482171874595303452426424913757560856839190330847564240140684531128648854822873567178616127429368636938690932167512279941755673010610360990037479858260761989493491582018140162311135294551759247980567600990947362421279248207424705531478285106456579677824105892609725624848150610808088134017347974568209457073037876391659669846470401265240329458566320592012403645988483240001291368432155979595920183137441380552479037428622651775303393314033829432400614321488924813104976430276034084192297125862033907110692815731398570799458664986882840361206583106356630962231211575518512645127956624226113335471401541496897432730322688759259879450124376706718563993500822371395958011000234354342298898738730310630118050533336564186751681424431145692363703187586526905258514095695935295248685113755267586017131801151547773130952557310080135708248234926670570188055623022825109222784014217534807459748133945108229905937916819409877508563436687655015170757008397237564690290951412390070465082476258480044216651708432501403489449597709532827872704732440427787756911083210875759398919993911400445872134026441260112344879401239305860059366286112467190814154112578674065314666964739411948927795002502814003014513087144030511140741006632732417677820968900568016137451140233902460001952554027600111844296830341113910111830173329484657352472008425002685311826853185328969531877531974922258415045735824559852557504089279410940370829595618972616722122124879118712697343946491162794086412817723137104363765202021298046771238615955551971547751421675407473178239693808881707348601381130885970133993524176406784185914870471316716698832821159365048052144641032181668747976369698910865699391549930154696467951553068888728760299809560847250161600111582402337756092754234106322078603731088373926147880330376449931398058584810562003873941329871884910534466562548356568079692504259323205046232155267131123662684897236396113380818045370512604955058541895337640149030064545924727073515241096683971752684732446340292696708643330423068185387401958095115843346295233145486145180412586976021549131305950965545258401822594756383357439257066463373983147384481838669293724198033666526713128869011972310821065854865554401219865056679218514924851433433262606345593682345817807064647341985914538580196466497241759400485876912524269408199766953173386799168890479971029921683011950421145743261802813635125505422250278757480662790714004603879587607812334031576050771936196312173898785192631564021896054840015253037675553897670562360682785223289116772098330067316419468833246988461719117347441690256931491658616689735936214420336314953625421419400710067388280916099543934732657048112607123279198232712119139288811108142551680218327021121752137814146330271868135539694581500930433174478501921230346386190854317724477058162994538305626399639661423028310218392352051112186238432385886082727883839903493122990612680259001903158165122737721007985170026324689918045830587168569073654104721002364633065444769897869895829536699531143643996229425974581463369438183687272988307770743563120664579014924725740606862647665724975714238924411671624902902604102715947769478495036661222682024432499945022880102429649798328576981645431409525883919503362436056172372526417251047319491135927681122992386733817868514723884697573989105774927148058851176435181122921151666282863146143222038433628484844307327723015099344565169908729042335596973306942130743731964947401966865767773191788408890525734405858449232490128382823649332900322349360869274951054097785961995186384467806227724884418097506125244437208412065891818235002705922058587465503120809229679297638743014615703306012678379176553157230873136246448673479891191825461464634240441037001875341024933806755197139907995934056674087057745817106516438759706799498320536812946709576413880830894095891234025322633005377207678202971213679845905146403754995007670793012240727548595982021043053954778800914568181189743716706947479106996933940542920782206175360335673942651933240652657567952874145796232971511491542525944994995989312904409788172090231670563720578669646975229447519162247740888061902936604985124649059938837495723444649890315398841502318375689279748138718781403797929362314705482722634973374840575598897387167631224674299502716107842432830940288370692234651986278168216958453995527669955547709140029878740860066641895229651812752908570928763782200750307976403496437211864337812110856643647662855860589028790730067852283350809663587307187578817357119244420405385759186778287032913878303470396134248695924068733552205485366839503528666207907604438053760193610455035022882632428170486167785295352870434851797020322502414419281426994589129866098717890113642120217680732629528559024300470616778792113723130731515108446612821536789162554039026962981785310934029632852020178031785152474626434709316416722127872882969323564961214973013130009221585008622188935511098550570909602000358755184644194733091121082138334971899715724637451145545213046221306326221888395563169496074908219403350260575529511201748907942380120665355968846432281672500888429597213083809067756708558082337691097628377140468843026685363152250714880072202511208088069360817595323503117757774887708017527997732930289202240204566950100487242462694458641091415109468732248125114178771937100017986611548738190742408422802976763841068908262953735272462924009786238258100098943888562143909520493040845084683069356167305584888529165069290599581260645784813491846288378946018991646182194503350389389139232788143406208634733522856302427313371238725332844881027677391730231863149038389166873581434742741429050411522235498288339746070582821097481936823059841403633550353523518283157924850854470432210742176378353044823907032232888331274591784887943760791954491087866427285624842543650249668156656363304357442450977786661109132658999518533086392231501433670281217503568974580037393871855559362110279436215238150964866895430407133372288995764086628423303323386124780155794688565330033001151072846609283297264686254087658344743670706138347059250113271406120327325559353485741850247106253243072309619007863726266284093864470711104110913375457234950488726112159902771630941507686622893979645621684786605758102897527766131199193822225147734449054367540608970621235596889747918626162122944793730578339808860699527781787294834087183211242046046252450592829784410755472784362949215629176678462551837726636849144455008775332147603493739381401885297587457091249071201002214867450305528725351682752119393146322786705570097902782018824000354728601830911182212907982861886032878270421932718668320474321261037921819673096450350879170149618016488786477328696027697746768796512890537848354032740415868041730347931292332442358215158070364196828873450380084848314918717286211720364339990699370608536269513348649988461846187277422594312416892604430421063314264331634012669123968148538955724006212507449206322155845013282195112261428683360513756929823063326674163813766965686657577343510275429011057983769282243687491789061834306720310223206415230865585911503456377475647140364848439932851533267272981260238070442824837589625455644559236063103038460751438685916866382739027416542425196505836803628656954094558245781344276173016481756313104934333767105272937652181133910950718757000080179331810910559500712702345145207528728926422249968020155649328472520453005093861916015663723242243151481671186202513618648416162546323039766752472348509614711270899178005057023803563994281844547528116853742848814452030518280541351120035164205543728267843972513699096662032035000466429045841237903154730430554419575705548139486376847904373852368696546654531643425520119922734737838307921781231134042853465929596531675917123465366505737701696338068793634494739944177364357196845093178241085589895013486677044963676438387040083627373883014951491444359928314473176454749921084570047991895494840230962552871283218062643550643042188717228043116566214417851693481372345773746875813156614929330534383592481245993304041506969731324732319517188839051937178998328987933451409241675974471442366817642658009976307877051083254298803023989983920244669656490968608044202003883611493006939960767501490606849494158707902766180433553541620957117304749267321380990505802871465335873336693333339149016457882829706502325566922364797784843253794586638689538580608355904023918611882104827764729632621694493548067899899619613231210196221603203341214503511681964576103142878315628478005019395887226386853442469696933214017412375505135379959591083179114360969376211926817206624029634226638647410393063136922630954975700499215646939740003262496123318541702133010745845470444753703330829904420767731159615280654851294077392034394409510443183760198829081069286930482090818812803131987424609114923744847323574449350169013880056209413626656549775279680772825419066784889877848078271637218400139040962527486703743527503240076410498715305882903634862579555657169047719759337558104574726813956288284950488717097456708288467654681316170064619696242245996467127650920825886182188245468980887403484246849171608739977050076522029905485129427765434432788081465695567698126324420626609018543927044091077875657608800985404290317020147357635419497175330761869952442987720111665842246689500184322247882643986600440644254169613417852985801927847378295849420767823667298197345680934545522798094185243022033418051105580881009646166652109752382360006576095957663696911743084903846930407080831668694541487836834070085646660453949702158294366870811131388202303164687191449637426381933995156833377722996957757573844749151510400928998861369634712880386792904430111933395937962525700218361664259442431242848613229888774750967645541898135845602636852793463931511668930611938022989360378201866382848638502213367145477186909198838066468346344975646829578769387557685714512577586506427767445080960398433699636246742867161354645246774664220416372471260077806312033669912931738996038212646481947558330107897503037438453446060127897143384069120278712030445039364989925865216439123280375828202682441525741513712301271502108977228872854068460055077404232913546618664241294503493277532003060660016989074917386075873563954442898053687935873099935548959559763162285311703668538143500860182599436506611697834391466194264908602486651805924041666539133893211585503881282914411260768439616386809663606954818894127848906083213598623224985470627887462971466408792657813468125444335297509145817093507687011663197176701490640492911652119881322363349904513925140733558523109076918997672318707713756987715560054714301836395531491925085054876101459728105006659023364781424308550778028405633782112076455909257125133777144113162275209129868699455080787451504066716726334560062411535672424435980769831509798977871436471898741393404982934180683121429474168228973260772639810662217593566896954384691767862556988053486234354114966128197833519044385654262565240015312749577108348889207516533521955091024058759069027046855072717217580903783472043227003060839282542048452528308064274292838471915623032345385360592530546649140898613242015601647479799286498562862975986240978431700364263496389133772198742675729728738201739567686934806470036483518072013533518658491336500758166468767431880599016480559019212514022820954108544776510907741868640088533034426354949916668623073799200400482318190751533772874488846723117706768567689744618115483442221454267052788978297342711697881624193961177822194005457086657867218225480773501432598491032380957145975234254746220232922075533939432083673542890587283534788686636022808566597246110343669314445456997825202032208204962806785911300984405138435375346570465066328839089857521368572291564623728867849226516396721438809654699561215922529471224614922702383822104498693019384486468890283116297696278238822252408662415618490821801630027968341719683016534914265390326985787945703531822953999063287453240670709241882683741645165958153169172487144203031359042442665446239737646093028491693147844062069025208243535774145886145277527044779254054652808136880663029297953972159926077379434595661152508319376272432028366158121263377062283561584179025402085792816364338402957812007114984795535114268577232469762771979846391909821627429497729661129424206008505508437882346254039699766957611796580302901237451702889138103870280857617346084587962717920436376025332216451570202238407051912405707068360516092657182923254303024833666709021930948235742699735991250372137540061769702753399348196292673646176393845375735044603388653583152203088725100662239305948055949380322066598491221267215798774835916719095588334391227525075690831577757992716708185949478322177013745972360756759290901979817558085803842234900215446428456549768386465995975979767228206110270615508085093383695542923273943601127037843327795552786238041124472724559689326011114217241535655709319043847194431603436935719829009630146508154069385528973535224028648230627045189342416423132136183120085402839084043439512832852129876985807533635936164113109776121506815155086141624335876416189739658938942678606499258248159166265904903863347509201356775382753445468151143721070047719203602047568871059356270553574117277166139948823132836693477607615368230058765388207327525650511569532211164607995554344636261288839699779264287309892552772734515520370310819951654129052039430399168537934960279907426290833807349838078115056381408014800051329530812335284212184681150414921750646646674042179802405026833850410118170624249102355251126216727752140663995325189256599316749758149211594542585965552564468835036126571445774104179292027798050369524523093811981223431886699704145043494608251085634637547064643942926544475939819734303804419357353512490771812159957703222842604111879981530608258573960750316814021769639234450178757954840156127283332027736454146161753545734423994913021686611877954464834262209002160596257567553854191756832460033105811854003509278800496361774678505308580798869169017348439021072417845654064764427146649080518102989548157147118912260105977528057007769969611714555897289727738901489219124672695950801534699431389194315874093804001675870201322285675670972360006394771833321143282378678845083682677690681568964651579156268502109753745792366710621595544062102096718709907094895620509393007785772465373525907987087717537463325720597363304661723186697254320499297382597430504871158294607802525465880836692610852228678596293620647918426388535113509834809193664342332638000108151617374993848180499901174338482196601574079679786547503115180313504711203099061270464120830025337135967818193267027745723454700109552776784962945386886301678538851668041836784124529433884736178181846927004811798040728571356676207972602647958165208865931204926019097163108051147510852573009108839524567795010096386246256788278915761953942312279844123603598232133715758995774005600624858920894071197198738113420733801581209966627855798033859528361303087533227045890537513681130180916912244298661256600244259463543356934228697134028444268919086208723747371788835221398933500680905233624293571509588828288379165289602977442967179273094225395575142077365165826024437046142767602969696596246859653891841731862665204276997887117762147416051121864147657048524646651386047519921572227014971681712006686611379934290500517921326022734022181199569325753549113988143625321890562545910495207633304587543657751164883098972542235214456394065986332216057703155394029042780581274217345513406878742726577042593399459812512311866061016280613175155409767854311823402005544039703093457197340148174421209921210024907365531818532466059532465556789100865334637573878643681720324191132882661395509497173209273621598517781851729398429476158601061055788980140887526530977512048844195611561923800314891835931658991203489918294573920066315472562426244386075156078410651342880671417828835255477887248309767188385746511234238448739483280092895575007022357177356543611689528952518574935812045969495932988548472854593396948639669694539434814500815158288164977437960980326830536121872002837439884473997952800290896691654999577049581249839712530714771274881533442572156446865579283003068670558693395523940082332047875365332606279296374912967006525476755408097203263655975746329430954840146376584135381109695451700769606560162343302082795830053971504141471792935646362337407882615744517987975724879907768836044734695889214737719345393242747000404251588278355801501069735082201823520991288015144361912239116526006081846981544290275028192239430388808038172814945418138126420715207927119703074641080509858364375740676308429212478189481115551644284764656668347619075923173095049590806233310572280200750324096871438224838833600597714759922825414590922554701605152258439766983651478097421127743066587690565516790499666956796283728933555319101472357806777193951390344948836980951452570816805816923447299800773553762207977499555237377202616299566914332392255261852545918817141309952710017256648234812185988212784805463948598723542722472018004029598371270649186958022036735225838081931563531442217406901363980032196975651980749185011643198217066198871457839844950845024684714450404035792919664049876663716609276662613734567007766639543475539511446531054404866507520368574401741129297099367543376962765291434113981717643730232228507271383761355183621843533154039437548619548563427639584577912937301404076059504242306477758771366232945935282944941939912940354988135533096022755306709088813464105958106416121561254432138277168110193816144038357427170823724608709532509638809482094947952934813762339369670138479476690856038136751283632491708179506882030703162377206230679255816795101833842314555407405898834432977387324000383879105661462581432820974407731886025156052695266234284500279928641661013207675519523989844821238907979594192886165143658005697468462474889797163997161560120176678771022629970841098617201460918177954201985534730946669619525087440178539953213101482658648093631430534419349834054066366693109999007378347962115814793501165436460831316491500102429937423610152871075750077206712595319356168965597330971228394893253307504391585917387428703496412722076670082231058804052822697950760718363656762850619483270333145316270790415148717963745806741799035196050303772986641252352388883031949876296857122162226460004828301763437739665685144523637859936641554362117329951751369455840096685410494738372676855853667691463367206393262731060493539170237018539402636763089361014726902098873071581408384041676128100104307497456161346733520982746170888355861889330487583192491619419348762787174375548668046944361506734583944530886413456645648823195524938405279009557195316597906604084639404309086341216672891665799844880345827963688869501426010396634847515149982387176749023671297530419888103552748337239166029841377751906118909764233084647630139980471995580580035888018693529073998843536552331539698337600669903731391569776588442590849592981169542439560876877782808285606686570812838956110878705950045956955205798690811159287368547494743740166989899529844305284281746890556076042682409019238063366907017687556746379614467073429151395455544799567136860782496400071568817988552603062673641661663486488223472520393334424297543751338495935952874315306047654366486678020170399479306658564317477475663919491032060922925040375762128959889338102317937073773871968544787399361811765983075207810665664486089414993683622065022144419461853537187079597870915737670975089117928322903077010339968074871906207969547994431856228903495152238279689389062793526815858839630527531428360737221055732995997085381779940123819961105548017427201116924647199210497547890484994600057568303922812299162233403822072249402108919158797692541329985908284529631620105436608372059751597463441091680462148773608443520432789847844957374694105430776244080693094898616657352279320703891725042340670761866623283353882161122342744069949846022570056593278200158236807953732026068783402677563631782038784989459802020247573935553836846363250698455556726265761169482133849189052864247521961116000253014077267660346815080101127408345795017429309747641870003508070644248975953337002499399542846717503885449051736931717931929264766240443991853255593604568886382179692004398719612251400524542175514606227346798041879625297375066578288899595034664229544211546380829259055446896289684411225674743992541368310268068586308312089530187195576293541476786479976955647773512213222474230021038971305680040426822289358638511977305512640458041270226658186418352848012454484488642335264848370889470932980208393457552360450487439143800804804542893940549701606679115672531695394812195249134682632562085502991406191145599944794579688002412221225041069233794971931138160393570532366526511217625401951818509375935176987194342693221797521454221123516222590466414277879376950200231249674940862179533825322174438424835336690799478139259996644809636536564206090879385714733580961834274597519158956744181156611435629044972190632128693301847923583122260177699844361610737862640128238786320305287780545707713743274910716126144309480154035750482856145640172024505013557402177531037585200849506045241694001063921485457052664326886172560433224808783590176937823878058754109843660181942492926576296562030549711238722427880894893173965243715623376034305709203620640378228322867737279783869190140624395793499139381912239591131475207129206626142332965139560749358019003700830887192198166357374963879119513887420590162798028762795516285080284456639908538161086625245853061808825507734180240777347384752141977240061084612142449819197011544176168849608537771962820686391912394718760840295120912296795298670232185015512741688930418334277643629678274297863642913769692967308745430151385667236359376134801936815413357726457517486841664551871060575941482589142658819431455229909579063546999889745072414073734466906543288880856342770850427678727935108974858840407974839225846238777141118081936850172552377591012515051232233038915639997988263750871256282960218852307363279497247587584728027441462951473643332372141927351319625974316669791457728108823478332420873291901260658317399026846811671998808896794934758664607704905070131853431104864910632389595985799969376027201514913919516857896832985823441392888559208161873513361987200752173437990851664227672323668336620559017144148244719761036100883427680178124778747910105735310578420480746413237711628571685934579218913884546869319687996934631239277391224826215769771288326968586756864413139728236339338780535856334395652580497024708552818395185984994820571721737660542653677413313121653773958400627255598240438596319404777815907973291875289414678640898772864645782758927845254615754370717780604801025663993940616068645676198975148687830164401045630767054308812392710283159526880044879859574143865626083545364102642791637428483430512443964024877002949843994861891577904269889783658085855744902654258447029621206299522426025557774845504962300334075429788897821309810376891169027829340942193556070293561396552213227497649712101930379825102282256091566986188611841888790463029784027851665117348548967660362465718131289219368635371927059701812478643050142007058385177095815000573478504621786421372000689547384691003231353880914725937968700237206617063919505189063123102611537060117688854997834696745977045927499720388682814887209870353793979915747600867141785447425657247738017437044612541031531169990978157730915727973160240355550720673585782293709331705618715984407539264753103099103633557948983254555252039352586298536424813113516211138984325116270773412620328397799324353675932075937959919712993930054538906344419626383929157632738682925926027662638532094025636098645631502272970573380791139646453370944473670025876572880770143379921294442973767356316490004537865856772237156675966552482473250569923119824173732558696887108760974603955626940006849978281126879229010655441394614973396968217876677520721484005829424687346667085858949748520892753703577088666983221112579259972631969466871418551187810248078483269474591293695526253636372173513175653180756761614960411491427163183769259018963651375870493348023053064055154765064523657402078534207948491088188409185032585402143542882808406151729864121542035973282681744345274487576893163023396067133311275876766916236162730339848890987361326867557481248537523745600406065456162850441802050778961135337589629164555381669141681264750922687360038064247409358370893754280684284652256783088319422089832835696835973040500781876570750677147363953046495816556089617486650453394175564468770113220704073323282455575162844015365509603463052148540826811645341492923290496217868144755982030264934612244195434014179413162165708751285597661309236104726387471252092799079488398878002600288544724953892936485946406814558182700095536444552519194742563667189561217548082761784304595070051337159452273675516703754214748712260956210814534707768811508568326645376591109440298496267827937465043233268752092564068877392643955382236297570133070328144759364212736748122999516324719901698739786813333808143599169417938887746625059808754342849865810347493762425148974909763399784211935698737217903053878215298555769227637150487166263745356895603062999397285285146697893424083660879768984603829426239619805251241836343577875093557955465004596563006249620858607845828796981048235557233813165140387056262134738478247095443365861828572111017305519566845600474581154608853522765204532148168183751821536199510289930360696671937999488591198133676488861952682980442770595554444053482291321011461025464475133008217658953581376617621768519228303833044979321603235873490449447537808898040510424982706303446602584208472918904387567280203018947733753988218926628022194054447138295322302858930877739798755511935209393375696714018416988688877419871754213489024377346250622861375805364917570540856105451925337396484630658332962516964483638838723256416489694532477927356838059237914978604165974393076347748927650569330862022456471045691287217987213873700523829099486845000347673603958396481530104844875088901990573534322895290880855824472639864739682627689588274195406467859063745443477976645050661443528192931221351193990613867628600898095447073573371790550446072294671555471230460445209769127335944721076951617396752288851546610006486977590044919733519682616868888317275797158851501434440131194469541372255021704289541805433521825633934803009927966313548251116413914822352935302443129569527669918871306997857815303815118021665498482949307332284216951278139732988494631497267302250228199331517287547635769934855390824467199447617223241481473521212962690792239533289393534989893205696008974356819469385446136238362546566921330461412988789328421234447603054436742154552645717382252565016199672850150029222784879736664957761136868620680650757314680520766839738585492152566360924681504217932461856930229112634137108161845677649855569895615903840889162822660585264657356471742912307140807633558457346082107591005673423505033425397746483220130689024741804763776931625030898835764496994944862738558384657777864899640379475116448379496335654031323622298047772078718607526904744037140167012436066901985088733046744418598858164467843221250089536046331940263675768138448535225187786948777261483806395002006192108820494896425931296932966015311541614258126361276474727034847852453620600612379764856859483140665082010750874211898743890367941365277587651162205235009718087713740400815246331754076006310449861973858532799721151699702683355568401044049321938129631800587124112534272315859929167285524691827540610627806458613740035150747735241446283833975010300459913074664688498090072391191144570631919285680478187437692795325011673665240195187532481339513724683867883311464725399868439609755813104662320410413549363040325902527715548329566491342650518153535876080496767101742466827390672343523131604333375620713703296975914467401624054484223749669959366675319994111277617344611970547184720362524970864049667962637296673130640810092446608787324435374491052021967498172287009216930244412214146223356457491352328501364299849082516440217799344070931875189512436255212772562989752930170375522967214360015301207168184251737336250862449820016814782456371963235833904733443189322816514330625610997906236469907249743658076848776466706426129258583117045707919529694651292232182656363680037135020611175635653971485622082406418149808980486899059208220023819376937333348091529581301960430133959953384283754876498486550168680651892187503457453448453220939489773192314016032480266868877952848857127911027760549235749048319291796698223786723977406498655422587050784672754759934963616679616179728140709497053220827789417654182364353304527243102210460191884514292553597138004604897861804687300579798405076122473582837905817472162741321646332370745542370865642569559609330273913803311697023311578783048446653578030104634614955739918440945805134054064216039906336146993794720511936654142728771364366538163103402772008360748934552804388047527751545210081843146943297467170674653025774098066408464147929424316488123819235494445025129340158621444525361204261404190860964419009143999476958141775003030842479149604363774785821718374748914900835145784895550342623340779917401753366731654737933509975550268377157146031567061685687027945743808481917987484263037338689768727173978888489693920469254935070307193037830280174370178544753131790801217295625573010959955268159083483674051136381462229889299427229946110056215825942174245324498975081678458100919301560951207188141644650598018595876808860916907870375052108865886062190047294675544933674265777603667027814470383932831917385921939359340707163353840458586002110724732431229922214866278291750259620197753989436155758725803903636309430135743188360050662571981649299148353643916214293479692546031808793966371557130787619158188293933417926219062527220458596646387245926986887014276873857730723814716987714236708221209588396008199629574956423762577938325169996030132984349720450137542704963808238148172437953945436335548371534367917258844057085546131468817006419235582272744216591786842155099621945433770273104435051446459299277935012606016315230422834846905248457864118312600229387463770892944013207938352874429369669583067803704191676054104259221514983786260811058237139454390904120717168794935977681851056999266257051672204519272103931390859656738080881003965367092437823445832567658222331002533878043833023793522065598151854991982175349011218770661969026305613351321921549961806005035435436559400043134579868751993221500014472181287549520765632123434491906355040636458811624370308418614332787987228610461098685235371360033776407543605342967744254007534910326302288068207837977035033741467932677933450451253698743031640575616983599935205389495107079213193792282318319176584337027162372576753009486223206970024946111704955423120164975432486800733985109150541964003586799801742966008274948180944182510069863180022938514739561974010601505387000924508004662846322773118995818186368251864510881021610818610590314027574176160777913054210150372605644891786846233124435613953523137655405327783450603677410678087654667347396393379094913290270709190056152332512243003927288187996910293306169074074247765472190529938993442565037230927072540461765494800414167568356135497017938684633762045765917847303616979816499893266849375397247328476841886689475270522960080400078932691814429079090165152070889793254111160494532187191690075616242697433241576093073348294444218580577211779643883776326314923980975699551729133611777337187101753189793216838985016900805914824175337483884499598771570714316953307102394320367665345236272001632847311502545540503157468175640134359188983844775714164566451631933253884639314685855778579529048175729191058752449041075360206387765846547472885157365349266165384270988220761620730375440119285653447061991374664814874833696195249018301338493491525276100987744807764530697361539458877201444366987620577953655478353203139218326672638178661950923731868132795588136904342068853878044887367034158812554078494844183885907772044583107078199537880332465529084186862871139159342440339381605363678258855509521468474155595367188913823495905250775757841724974059500326927041308315786615526608857407221010136216447666763439217375777736243998283666972136007945046812424367036326133857891336515519185404774823039653138162754982190233908749325028814205085301903395342450267068537161081141504676298072617578107426157034520978564636121079345523206751708111123028328227264199297041467380315083783900122082319776447512433496169262314093665342203633519901620975878511561018101393955816288298870251761567796638070062412693012552269930721395505825632489226951773020140568301744931561830545103111174808040848060216810401554750751024162434576460367280549152518251031239858717175575270038724647852988312290988136684904473123827164772244436145236652810374580477111947148049727338398835887478807606283889295045563101654199319481270149115087826205829015563251911865169169893055631939964010341980579711098588759141214034368892528830646403364831111360769515495487001877405657352804481663133620958646290824276633480588159177701552123203319167350411367083353525205882687051786081364049487295969469397674895316343210684512259784729773225957511587912906963605552276458352312848373612512847760510732874945208731780851662343984183063502831247518195929951899220996791344372951740650365720318412023334049812684639961256007289256648826774981927241924324680004753176868568126845850273077603137311180056881903905948217153804380140630184868213558662974744958887494689514572339981912467649671233224597698152803831422162467099008238372005202295917894215819053893103730573277704633986472443428307032936953278916221562831168424199132359223962503802529192787864468316417395975992168438451188026630884101392404875284015938092701566162670047878166111457632482115685116038659044731203547626541675519472303600010402130081150396640787259143807620727871326572617064484177096313722103625789853452448271425900203113939446944153573513852294334217281084791257621933432830663608463397640071547899877973157283710166637364640893766677360252351702833072246525107419624168941189976371947408830507170647180115425655000249934495005830008415264158112310774641899671501516351204688215093606136936473258377383434796922838285457682811125374135423474122327687139041051177424648402356147054489606540519219105883371244223488344863447996463454776173099548450175120106747893761198411697160341161364130110942137013519095931871698890737725453726155322045549512208191923578690633715018756995328370555229919615206424979116986584303178555814900575217970018560705982700922925006591100688117254304487086801218602326114798007029740546474754839547718064831633478156972018036230487685732839029765294833309772323063797488475694424389958351450477188141655474217990900934637271692745416519772163614384199244159583764253097639672856298218638119862621879277907619275276392697435747046670834239316745252208433513535566630694164030104314158330614986156432518205830944597820463033580127107011963982733426544221641458534618777891271406237256206313657325208119602813431620970040155949664995474715085194304703326812498508543181327080977956750669810522520442451820809168686083044032815128502026817232079515478146287601444738547817093080618798493118976663060837666734488981311366384613150523242352619817972366973235079323038750532062680525203024576842936607686076542012930955233838632837992539347290078271201757501582246715608448244127905957253409675663179924227250407319112131784937601889331742686781383557267950571069810324654752354687708211786472894849898538098459086655848497189208395732491690762990176127428691013978572765805180561931146308269511732542605634587362229475721167537959162578378699972474004182473583030779287123690399470989286972852560454260280120040738509057576220656226294334691210393424035630280488307855371851282287246659495948352304188816059453580174095848818814707911790770456955353753165214119328096041130024319201148661684703076539909250498826707337364794372590848231378464968841623454293818379586085632607974762592557564697256280919044292860026460109567810158248107708076778816768637739171951105064265478333546882889061074949078506460702806742046666095465066365853247281217469908486440972166850442316358475293820974586669363622139180776763821293657119083524183985652767211026993448899710487771474399380298645154094925921940583179067235421465568189661389405969496798979074345408890954782221504264908749388366451398373873467650892603183060127705736253730651283862337584127150773627890795147639756680016313690026153668170549380592797802394512805620196732725000456186868372718507188013618334071409928720942595775723441556624441818548543870299240096518628287991033139689311288281841546779070844613773574757158091115418743172710446146928635147714815866051376310730071850752767944016609005781819703397254636777578629174385433912641121816820096590357614796503894269673497660457533869296798598643589318421620272679009022190437448285850005062790479056129629661364367122444196351564798013051289920199470838480116419742635902702522138120798453350416475411206829373408684091705793367633579864456217234515349196668291217530755147131131867617899157572259833918698613169999831197396860314677266533948429746407961978047405422587352998615020209454989338100242248390316571939860181824613839415217130727604514175193772378890844200592340268537004011073401091795484818211510941431039459590733992503065763233622258840271853057905331474740001104310558725120335308765196910109225662864301276301346702501071589732535965288305734441423305508941945330814972210399353801606823080121046282034904313467807221126371661306431489927948817718644870318107010224498420759507584688957027572255470322948085445086596136576920994678050460856952271904901716311974928375153960901771938219779861368219999121706212213421549945300946689566955943870471803887991389872870783772363230131563171842187841533178819338675311404857554475209331921810582966682026697759033474784720898410919288376183244391577986531703181599971216458558936039336959209155991940422833292527319569617677873301926374451303526181319827818155212094664508726437119357071816305648481305470586495954434278327038106043625481268938027753958787444920999315539328307867150683061664734833953557594684550778410662065669855398054495635246160022942035519290152516635803468470004298499188510818173670370200058225175742742226436437223985446200834151894008173859400989861723708263498263494922873668843632391311699216433129783426765292435049419357558522251887020461073441149989980490146315047150211696925956807210675908967343760702441393317785074972418239013745009117554989546108819615244168678121254660184191703806015469237357601154250180114107110006358110787335067626972053417008687410058103942825408909577858740987155428151469745434301950057683468595538325645577140725503860297336050636436814764644726412520206217998895460556982624768596473000303458896854897258235285675509434363229620686775005918683733038284755087466211423769091647815926207198059696886694835230031178328451566594867634767655359677717989006387788326089378518346944553017508615029082802671005345792093114473870194601673666761192416332353906330648164668065841519239507431860733818543787248762981334671854648983429896884168175188659343043683105857344981880134139380437801727121970255093936815324669125301762118408162328183285750173950358213923022169311713275391273033641300833891289273625300821484450012854431888314496294503240187377659135826871489767864514015671188490889589914900051131923421957840219734024076073558151233250239615408997027152625976013284493456836435378377274735712139369860047001835941907697291689987644905200919804159795542865168302558542578563897889399005711693686904861607080296349794687346773070990186393004628020633360968055955988095259434896465518890042834438620251479857897203060479360697919847817039367916535577506283622424350750693491983162854715787911311562773572131336025648011770873915375397424068576248150765570510642360614004058853531156429349356572035644885461249226419769015006951925777280717784436411520741362188507647641834054757756164196927714113507810081562514846663106793337176032806128094093664191696500207770370109247549516743038489791191329676522342475834852171231016901821898310729434330346495082486418433322170291000838651590694484283079168305410875486141270358247352086848544650867401668707096402278527280569132292959285666358709115769202381079360613703172730485756238949561501949578394865848281934995199531432003069363677793684320855422513633101479096523208354505889162644154529272819947546343460613489370849644983649440479423459473829981096562195892580067446735213793835746894080490954634912933963121850485819968089848980142110279589590488805904556768571228229403947655721744960431062786184921598079078983733084200463591386899646446929119896426710837055152392846752791560015473564640321240472585090764872135287190340225042537450943241615955372897701500507138599130224282730491281993367392469077640704762783589657602557171867248489309320547293670666789143013137867719573136560416023159278965521221183780592209375412986827920875015483205919998618047817470639342087840611893276408632294507049251453547170757579981021931322523419380090973543781471421916569337379396868100600675706713272216143872760740000440408345003763170031333701028225648163317735489669335304386918285662464618278553886663545756276850755045771059727473288826149047136818444654339337796662253747488657189928981885482042549524334157718352939212497019036422669261287786979670527062003066448063588740812984772148784406522699705690929520325732771347968160556954466115745533498116476814282393060063864838992400318544991801394710610391328767850885314245164728799365445002657060526485043882725086875434639516087500466218064288992046655239159630851225332036856473505787519703749179009090217147207912874774850775121105402326820102293803780360725368683971808896192359102114394097544225906194274134529445323712426916495336799348380367251052974852873444660643300522092931066151018303485860486048822365896294434916407824161351821719126687914920384084178463422960963878099962382357674139936946045433034914591441540860281265418780980498493425476302207437921362830615155610886387544394226531177919345941959374640788906037565526486162281736517205703172856424385413914199359609425400686295371154918007865632349454129498390368251447680039884390963419055730134007863368013523913058468492568107981988237521895825836526019947915410369605272851979000446568500070541913852387563971853263931542758470725677345395395219653819842056893112556564132263631494263510932437325769783235640171099175381330972674540924968485444006137535317253849195731902238564638700868339354622554339550010895055560370281400860254994589295596253839700573972688524605355172241702341053578906560889042107895207399124658817490041449114912784918800016762311539186802216987418457734747343048974514018867690537905648004069436569798578019093620453485283182560722393416403506080357230966430511979156312923579956022672082112141802629867160900494291062358438365123868731387552597007988388734524151600781142062040964197361433121328398038916023091934255133757730135805495479617644455913306574331426989055503454060085342982606309693420641318873326701921181065793400861232651375269151756357715305679650841454951786471997967978202473162758346271070368378113185009493243510756780116911594333749483662916308853119679682717724048145937613314205559991834658305028971419375387878238395367312139274761750147365782535078682851744613894808328178615962730429764933143451597207915881704708457508806202141360099634580712552419932093933891914429381206171451121455788464845959681163148761378784912318284236419926537218031719715317175458690132603221546152361112095557950587043674621304043520733256269914985025544294653540988365632040707548241789089349220034580211991886122106818567403641651629074761818524484420776381547855327006460902339712287618024570559587831692350716376491580638319830437477909019652684638616385022303896401510494492365579181246984983861640585841985118623285962308662014342425953169251861519053460227359699161589452254902628433571519867564923671188475558134014770513304792028060414765923959349490098003768843090950667622897570348453173496949760142490078789043392389774580679548519265199174046054622153929699260179728713381632030779385260805020082610262204881660932927469901482700370182222941785292386667241382736118346804392324977321896865386698927049495120586992761509134318107575322667842216901301186336757109728123802842294153609495688836502652802025922824047275851814977050438063815733380936052286527909206958372222450586385121497316856440505250033650203144013111373221191257794836509217091580333397322901595189489306205713476895263291855328394384233696289570440743190565589209621869493458647009967953697273008310462952118731145108079386578451027820082397166757576102154718051601781361914647418232875515094784288586574430458750963721313444604074061953400196924530103878710648373036456456629250013617068729607779479041670492218582947008773461249054880813314375114950002908413520588351296243271939284594408368660651500993734584948883236666575991599169250300384148155269183310040201318468611489404797075707965511646702462088239152107982792126804824593394282614128276696412187634280455983908786937314720231238944156283881286801633647389887804638692806798667320332199323274479606055367852037883039940776266792010332829073282866410256663870002680404961399120731337334269480209715967298358791220698141838742906991346728479990475935157798075533869069599831262892702891608092669907831553180188707721955459256992221078516052480659246791446507973760307441035775239290414783042931101485863724247012385683598311238988179701779161303124654245633177403906525634794443770020734743000075873983532137837352023062748014950146516510436982282139029755855611678839241497052991207794832206046889690074012976894112150977042399184575574737073029048592228977480625504640327058617840920444054352444314827875094628387089922908763215417846122200926779655867582385747173876219034811432050061848392939026013727695813219829022220688864782285182392963433132429228395469838298855138734587438675078327535551724244824079291373152121019020823034992161843673091508310553557294040824089579163595095381961491072479000371885889903113925241734598513635672541214131312873667349566352667272839400472852116767428762344182831270426011240834766242306358301138485556380297611372371132442709904962942214606052598365004880798358756186822516714102964431268593173692302076232160941115086756014334162521454617535529857055261117435415119989306335464322920598408075367369963745383234323469856876373768529636878327353452548277288715937465908658338210227319866860634930545935810581947252935332769684987954944723621440152179090558214917333450241188796274277253026458985479863698872930711023094039271180576588589149800541000777488831650008816061163379274426763021391774986175374758390064493943171715108949793565483554728990304045324386698876796730034815346753729356032221562599449190875366503388198562780873363789604691447792706288272589284903553137911224518562935517478200593023896464289265808625605529452102310126951132064506587476294176899833689166054738491939992699363935637606722739460121938902853997911818721361405787842379788326116894906709047229752153025174737911411216287079862989102949270600483671867229769582117280002722398151500254291651528902579316719346786931293837200282719335952727367579480258589441337031167061170606822442390369184492510971284484902249383889368595932167042698716699502149349606966957798415368488292143175462264396853935761586362412122858064909874650880291020183979913787478065399957764318917427640655518975568500606977124361865678990357912020358733587946323598512760175921177244224292678096498668896182505962725955273187575214079836862959911914775132294244313423922207054843857380155049322163517869381198956006072590076177099870496402146835970048939998454789787288189850862790392510343113972586828631083393327939020653789173895078210992475448311412402625517228304492109726121251253377337227390491172417642802582814716524015301723285628206613672686863292158982890806419628353925378399521045326402944724613447300703669416844198329604223984761888482105206485716959790266346821371755840022476329292122835388946534361151570187586501510216861048952517416654957169429080558950365419131119548496456434473273146138035138952926815769861917560296251536235893745025994262395139420297347460689256046994103167186434367161215588441783994853238654419204352921697292912133617837495711979441214599196965964605970510422801100256018632490562466160794771576956248770246819947507483518180343098793241967129900548781648000649549201119670626891324074958894258730537805919863837640908602511489407585243742385579037695171652441913196012120678308234258619279520092801969680201871328747491455839563019327214442894750450290386951641447623472356678592250666488369060786164976846328490129083716241112300535982714665992374561131744094560724042822057885070851526082612010428675231841844725697821719593085498345745694251706450285867156172612699783747240672926535412391082745722309331280218988478322409781254607770061253840662237236773395408177466698223844542411189955544201591717519334173750498798352347592633266899362054739652740017799990581335305818017601215637297925799199903795561267746296289856642349539556184143140274400637829716851478613140589235571622568443219119828556390149261644953536491147788859632987231982043596480602079454298148520998467077054984540367313114692706388941166585661933351839519515278124456303880022732433044924231284489809095691923820805039617282962619859380118079529564411218781665878454289910513853701215086076481768932991657001725034807899754044861386652978855216121051815234935943183458251733574145745997316382536659464457010709839373865557624309981669720669474066432810225394273390035268637711085985139832642179700027521683868853341275409565132253855808839950838252067937387045632642450570718733431794971329716767557837325553736472934285056419408435804577931553459076815889578304492906593482214759992236900587698985495122428298873775423836468583612730466406539468459599600470181752918356582678239699915767513140492240794702358390772241644761498056251459320993290360118794150750345225860304646569186621436837139908764195396633896170020808335856658944080929731060336975937453519478209395975390613287495439930594950061326685407367092876313751511009412341421172653663037869722871972210565779313365651493004289898061728860770040549138680120407350761630687190518098003723648411918866047739808877505086061377369040085188427973709625623111898518488126615313502999910117787049717360412982830751573939889045048529701988298939056981141263912431396045001486213981392361987017229245392154738581115470635295582070006300066293242163634985640090498690931741859395869574833357977410686012125603183907350466424852981288828304082088560838386406032442597744487728852732645086615473198549491402376430568035317657255570652639200522037950022287320563613891485267181200164258479070901169563006674121941709983210042938080636661436719460179415094338057143180896462657163241420222770809069042982200535800371147732564208237914692050716436789299397086500815244087847510842739091184393329503271997033233973683602886658446078839014694206673623643032888347764855948531744484577392126294747772665570929184139735844108974033483621309685523331624401081378983330898402379445686860378247528551323341580749928801047250937447499796069355919910373006805314150722779134094603820798133414772544123604603832314582946284904796990597675923957474549973632055620949816692744387125362839339727460908937468623326659659313782565728777379508624020500957582581548289822177050331198234069927893867938935752768384355399316918733609635630774225262876706770311743874763792794668152066267525665856392000650423148224086239488691173482895390099280881275792763765049529865871594487188614361312158633029103342021016245359357005327946592430927957122036297534275718536869081706138500529569095037098711066279642976080803794608575238423577127885810936804318928256438685547131654896451877462933267564191069164297368521673582021917126113945077185075427634841084514116834276124836793495303177969553712244014825308477728164844384006690997307246108771658022916174646208951587397218606484576525801725417762001680374407901427764997257647332013033561794531515845788285482753427639583567843066910151147746260484395847516795145597607722827767377241928586873100234101709573744571521631748735035285559806828453200034312253440247849829959340372811530508021192686812963315175223823452796576644160605194498912647437810186755731385956004599579436193936032253550483718853040172264075338276374292889214292256293259941799597930452142390568588233274537661272234420823709201181349475111049297730911606107872322062030481606401212636804531546105657685672750332107229499978832690848241013214796785536244527995050528865371134390152664700624474336682453225958144069558033431896516080670667988549041327100098995717157317722661914997011545964740031589559262382878595559959856645668708286605710168845801925915742055770211458414322827925694364804872195429660525060157077404013383591600451177305348337402089867737702692930054586697461869738181774779801606637661835122513835559421070301484315247465606348738545234971757767078697221652612702922351854942005856747358536080180686998754200306341092794234382889509554280294635444536239580268534852926262695526905103969385268868995538155958813245823645258622797313007265898129360442463057000910332494973795058829983615969340193557931214698502629261754415519822379408589768521890455521706517929687892369319351710699741769002267647800074448601076898459676534834797276423826163975432721226452922478175041543813224430487353131538763054914590563536021159985327147624277542199515008009834428806693964237127383731842205411054908315139902606631618861274246625343774278424653269025505083815184426916218285640306710221887155992516066894096824868316984003942396049292730273713191781920341044963442327293869728970470952580229951934465407740548183278325080038563273527064887130621727983986793074739899010315337428052650989513293217695993023504878818140253924408136470781902128318060649213262171374509346731485668366953903133960739487096476803364062622098721588440955219336591722354037706227662451583473549444502774789250442889878371621351523408035277192801958318410998546193616547379401144884729229373394198313595814875586649329315314353500401565272438847133797967165549545206253731760385009562792193009045544915615378717947093662393496719380275451364156416730145278305181837372519623347510786524747426890113991847255228062132714631374039041854662032740601578440262656190362617954470783238059329752652713942298439179591426193341552166694707243529548887801636935653841596852300575078727464490231775339847104400537030316599721455552048817940724647003768592877523894761338944046876861726380695346814909750920180239021429349043259848458868605792963355222809919333615014511208188769621382507483933780252868118874140840455315556579650656571379268051011831161883986009232043885860696683460520718435927113309464339836103772372255101598598752395635099361015968016124200745748665892834961152882297068155421436201058227706313551004330311570395855046500206028175429280659133437871800356517341727544199465131724942658430887972403181538372251170552994235488462387873703095169465631483305657395061814415549744530767654951214422060945902252770388957366961270702235956083891515344278499268598425774998382187257574909016783091585658209440863591667134614791613524101440397608054323201761703906665729878212343012173737807493693298712412096253594043656316504635498300729929377909758715810666841397443710497325552420205613152503877594621558667575968369179741772545547273883999200462649243275194516021655269398238719778449038479655949944019345275834967662104360684942832937935064655419655075012409085066040819876992194213687319769408732568228048921758875637280867207434528910545183391302159263666790401970029217091237182750920227857094337776837214351565136379932010568667951787654690812067250052203116897664676022732230309241162701004227677763462268602491313415842439910315832978185903435577057174004687734707424309120602878830384374030284201658872289342677104246409193191821192187007052213751098023211898218766061003769415923875770002170444457875309262909499676091860580264283445794237700464141218976144257284994785596763669804456895575443500403873950256001741067389003104574917677554064898039147874299564404607586555621488332058229145430184751537219873427176084677421993350776123927651288343618561549292151561685473175148291006073941378870017147233526299730499254524033243460789773097189475862059613805197882558017041690950151453479836409469093158029981543800952214979734723929065231806189283679846241973966491575026725620217897114256900904473500607457356674740994690429913045485920211681146065815251412995360542688586535061599084149589121218242971627833347367961145536767283427843943132081351867876688009554265475329191528878225664074015865330930131892329819459731224995024330858379110490109476863176222582611331596953718358079545289003452730320949465400023420780058254440955308740572519473571631081094865079300677623798896815438376576213191194874894390902361849110204326440331177133206355581944847538350129548702457912828544449777927595849329649673038770907472869465249680590151825654832671137429892276760799355525618938334740481096573203547102398078243512809366385184374665523028488135116624294938820470372500615950223514686129559819191177767307881225424398625468468726855489616863351095401133736501847459769183291550780200951760506155434641032517327826847296389045696053221392175593590379976790734514063670211630308382675009872515306228094430007587086132621287938775248565134030013795711697758498810038057165500550411837084063661217536814303634372104916959804311539828632006136646701529005130790493050417836147932556004506686327549182637190071342644048547130175418459816806652877755451936955926869019784151557200774787832126806195228528882298826336992956834701431644228880739970567095549366666192849439970832955972548651642951779443922056625933830752328470780123221787661875418185755651270627934967729667406619485486398964092370317167826280255678115343619875800808472543163216777652517589079356880006602390408610963745800936998364138649806386219373102555583086706903376834791496181750132004990783428532283390291281117711411573758142338663478277797024102551811636085351450894220658893451511589952518322309288815581435752660732461772177364514435030335729304711915976527928130401415184675647796456598093466525364250707756312011081747897616077616903606135666014279408588585085285241804896544489328620790856533014051233152232596625490898204584488356722078716025984548435199600604620674582098680998513713163975298736548491379299289950119132743639692104766346922923201427841897064503980264761681615618102717804503809614549249574162036378689665726059634962150118030322375826152918254030433292765250212695995057736758906998583940198703467222828069348737083298703348314167481761199512958974037907272337973939285059632154469686945854062443948763692931989016961442185646549748667969490398137480894612685287959670742853504305602620500934045331164535870253141209063995357697233740845658996816881363571193950345103494653802390600426879158632676752256894568668926258577182362725919328589090921049725072891863841096401872219787126429377794845508730646047950170438605974843021272720621440151758429076781636620024508293574614880223769297213569794702332542246112066618666203251707505656046278091883615954721986461577200658820711231647080683724387986943281212128184562170849589523599351412216492501689908303288188816058314004488250971568458357023197566600755422488375584163002275374861180585958928503180510400849655512719922735136040983276985205771483413439816252149674753559059944743844611765309327755466349425166165348575291357332279354698640948623390662489488280270142414250592920691199237931551541784907793600273158420959410564467529130196062719204828633197453000387105061606659384749571151339435051664665920165353783991940805503688316848652504933298659315507695640180555888432134618038106913129155290301801118826720292197058124141829429142090336539602854783821837152232512074139602885690879257533893049380606772296459054560583750101566732856414667040446913438391772887385668744169521924999286724462036580592786120602246149848292175823565175124352076483575742640507157150861878291851913756453579057609250271793371555267789651657189496602729753777794246401441640335777755985784759276105540747108153909303934144893503094067212378875784175462630942083041470629864202422969009084433450599944491847240947473445409280940370462397991144334609214129673747215951433390589851831113407818362147824905811574103231769823400071334363009304799540428782077282870518239223558968976159828932953816254573287547036833607207352721709020652785824131819056473988855539077966821426720082075725616253206024945776287838730513583287257374398463328329679660652497265316442187583998861604147216237206611139350710599604061762706679246880326183143965968510560782970781687531866721294577466041120633231618099023124734268313956719554885358383325412668055075526726209501508064305773386492049244504431303621874658811737269180030620708516581586948986892354864337181206593961033637461409792657314512968114620510845599346180787953369977067660030477673186510553132720419690248942787489947115246566694498060787501699906783423072566435997754827204846953296323662077904087686348551833600610505815522195601238415618100174349109139413867214540977650354680837014495535324323496608236998166140774932692721922299636038041052485461394959913340358335825626192563751755767901499373432464241181029156911153747081062270799943139324731286113138532349072956939314792112339764031949138262143962132602803606554524339647598067246171514464162013271881227083790587722149055029197651562318195886653383169662537648726394760265400533497024153181839149591175010701686935280409527963425772027637243187495859102575125853540457085651400622781627294768197813071151297549719173205694137515399780504650544850895808496571409893262216907001312173495112063622399518588979808055437544306538387412744073244763962945065521912579414022807842945812525901341797748683692572084852033754441710498183173743508166874227633821402600568818317827938482738499534194327685551343381849416698763286634828382543383871413655419175326368538993227865098763139330895476982107955354593324412896200738716203165383808629351554136331228088901197370015471847770243593707541527846289039516855845292778328989966906087843306789019175876224867414126714135042723964305989968678743766083512706157725573550624851491186693038255241812858621826333416751226575912136360501809988201638281877469937238676809669475928939886571301602395295714474946704519124350149609724082283023973249544364353832586820598457959593591488139316815292737255342848053382842619577046476110935640395839543055290720430035712695976675701068848549490634274371416167839345633405911163985665712622149519590227877256819968565298607483541984022783832551875912200837566727166375921165788855829800786664820913117972514881484374543766623592250046442514091109315075031994771023591454656263822474606033398016153265852143354093396932866350659177622882542644334645603759390968417945889546004567614589267442481445366633119563892232074035200901295041910086073658924945752710015037478763912592823382691628741637369891193309240736192929366926053811993341322489356292070323311963945429029229051264534748550589613807437323349632144741836135860054403402770295590367367784982713814984527780864903693486900906773401864982479199060789023813696597844904706174878765933835614736648079837483056605364974042928985369181159785043574677339905541193679002137171451637356046071905449105581337400497160180441795275302376459234697835714161247661453021488199665888441771765580353448639417302025741631012182710113088276434213157219942138209514090768111469701199578095153887037802175081338642149097974217918196400100070928240571018345288973437592516861567691103134252158333243465247446383708238570561065384521441624845089364925859842211662981326119362650049174454373096978937426691236411337941302093808148898492416862936200075078637121078911455267115459951444840665395040732349477746676414039781661423306019987244018394639729234598294297929988721697695913862209128644197532830586022206545030027525091240267888549708115232545225873459722388924003571143241913430298571515945569804416480187287001915821580893952447413549471696959162016510945291394801058722506555137585078338381955418667760184622873688325226685625183081641619709339733257053208744229488604475898142755874147933186498886511560214077053044415996117070143446514095384001015000891561891557606748461154020498789254012927201441728710614976423895365013491351681614312509443931368289265761206098467846384802152314961420302282539953912531710175363924648754153206402081370203628717697694814960511104529168639685648283243698248869755319934279061519481190056366662602294970204916665609728856606351769767580452590570967846288947862635685478686178233438265737463267863240412748794903511056356401667198907166364951168297949072752725950234504220209092131637995572295582537161680536318892530002572054657901882976746894123082154636794860569033450254230250972207793353654303858133701290565888464061995620085589345618961845320752756884205883274567098398549172080614534566759418496472816478155409866143421913551073972202185294539248912319024743120765543969983680618453177798024692492739636204670651833391492052731151419722896613447667985402737206975323337874592859148286324953769069383145373443919760165965829128402050563781576148348165619819523721006600547507245576882529673032341787131224498366454712141986143075719804845025585484929922060860004021050246040956740490396949835730755032315722295563553299331515320712196339400295873782307886093207357414784796092491251363994389309871670884778464303273060690348564930765413705942016628400175646283710754491630469832483274324022089964341390256865670886623216080332576439131270414328999002462071238545727908978031415390326435179260618776411996313072665056676208271087225772580340257955828637914791649208981866636794206613024756028504643222778026207176496792535574082082961174250320090745100537707536103582511890402708169900914447535654777183535147848291220427220576284453510273010853782775327354778775828900429755499442337664001914708630621578768519382770764888017682523637364451487286685469397751269843265984525221178409714472135531356829633166115793448429580230867782275245368209018492727997762275361229413615551445448930807139615087636907380871221254862162418988326627975804131955146341178380699998535134645990941774772323700295559719787415880837775432991800583711720042206169858150609274793579075875997887480975816950407266689794574870613485305100384772553424102453596874175618600533576382526231121101998780476070464310619362933903702240779163461997358599611900781777056904333120363944285750689387027173793401076109269039622611900071614992118846620083177883476158334636554736212602146456513364287894276040674907993228335365243761646819590020492856120785456978496146162210443839787993031688791942203917838396015302943118634009633604497340004082842973046601789120313666323557118543787139833676167527045331081832496927133615339950472392277232479698453677570088502463320975130109542699348532232146236910937644108433607601799817414438450667116109354914437530501217605966523956808208156653775082178555510444101355674489316241701850804132868309314427642211398433825042898007903191659543724257262562625914473009546341619628277861772683483566929595419852278039127814611723015261124788050783359308061829407648551783725504073167738610428171715418302028087756391270300344889626759319630810167310916118375978892340360883786120461229679573201461511769966899360822459300699056886861517315030997819760350957171883344675653146226352666893493746278312828382871228737082408746532807834270842821957031909637962982897241603340386808248118906362177349578281819386820112866820988335134555815918477473267240306146299189459713843397841634708118958886292436184471703009975975244507436139287572717733165704908010205291325119626065823081742529747100222247607256765687584008055569171805454420699433409524838971341878609093016677304457247114267913435557679820551001203495156731468436006873635373387173913518634452589624865478862534578861933260368063583853252857354917195477740936909095260552523185015299510314946541547836748044032271633547761492792673838258030116167062883108441629669117164937860426272432465505050126240069767666029574363232531895955780826058878954091217826226810877855906999551576698010318613483496130405470926132128700858535254662306065451596401627543904335758111224379188971206579081901220491145491866969332812325740681530622940656194292756985443852214397871947878336505243588659434624175939709874254636098008475625593951149553242823967791495984869892907280988974343859260479018317002734811254526676264637737845571216958400829136470438144889405954664699017066809730994086345990477732167156957608782851637119100780703047072605859708599697380985144380276541024207533528502718782454160198949888259098660483089276094951125437663074016021553352432222453616645983312827412938377568963870202414366378730448493545951084534594296569046049301374730618555390035512003245798943982033523714633365463444198031643879394609071618430547775231296516646359993533985201576598263896319626154285894901360775735243402695511695746891308368859216920113035316131780814331789556866142219445747827018250101360757983289406670084906125727475816464753878598038462757478809933034077140451698167619957383440233523582881110690583867542339313326308945789013907026867848458206961600858151698892087195082880564032906689785050160249445088036851856099770837670211663913851552253249429505430741520784100421858021699639801388622169804645624243354852364813183852572624847071509663189205635933500550796087225673111949929474784806151271849842800485706562015531522029241919582703460816507214187719346370176525367171731995316934026871713033675671144909865844160717605392287689798796794626420493124095294042951212319586808596179248167394067264940620469838717056259613869438275587977918527420323867789233215094075121399775912642087948698731058574609915891905637928574179018382946645940478805729987951268181353662730252025550923983555027236144283660492548287568359643386232463165689965040456417819340249546982855112183901272783831772494102613451179949897158448685107123964178974233919706808154778436040904597633465976336355157738900192193922290737774102823591339095170584207784137400665765211086164008014142402721962661496414931341314637208066602311920891087860331970729784262002157256326134391787415057290034038478706418477415530751204730868787702031581423418882651504729365451840945784880198976707042633745953980344301230409409842651595857439487701145652308984009086465187963448034495321626442543998307189095702840570532078387436865745731410129089030618925197765975371455866627039700524784288106722454158359329178187958394234166106823587520978709262111702168518641347135213455317769508153344921112270591538517333465131944700395956986189439717142531311257295420168849589092641339440994939573358513092489677582671445166338575433461820007668541338685328019036945531811496835207817022857126907206101492035808541501208951113443622988609205102514336784820130943980885988646249650678680749568531733621837381560291329363925911049968965076237670904385143026898742933014498244523873805466530186151825789880303639894396025071868113588690522144203539229683277569905157694577280366890737654867122618271224242840483612693278239000459450186456406614060341010739611121298066302791781272476394155457868945275975704837272081541069956904816043371302896618080184682078905196272458835079995604178339686774384177196075687063315332661776264086406715773445052060716131942378251995616306325408343459341292800317498632475558473557161109806476159735689045107560605357808448566053235260529979825563611175122911062222062116479873308983209246148589855712073221488601486744614747004579736611427561342413835363200932228541634240849301535574870923358499407521125948016586798099223602854186506612720958165339804333784851775087534312600913220378014733881998562997371157975763933445363409242525454748269001678299266899279148611912892069248968685682048468983349475170204963196868044578490463483489177859107897700392112442047383790344753729262151516586018884051369819950936657975991899026842009837703361052328172496638163306847327189462832687663170418852480848169578494814289734511935833867605570103545989295698746319784714559973494826375355785131226579128856562581070210631498903027634113114247430585881757429684348302511937101971292004458797638460244125575961871338819115619337004973165617977869007818401972378314717770646259950362736011501209031857379295807288156808676898991482371174392154396126710214411729643436391888318251170564131675478437944625951520304846438543165525689384022707859654194681941108217993988399191873666024542988054419626896106780963301462668836482450236886536243931056262662371796283874423868277649950185074914993938420734781133120173849314198002727000208605799639567666144221017219443621060658733751968457021773831519656786027666827785528653939650792800581132440051856634392852095728801830792437626031882019026550966331650982660470868359897042247045196264904171086773123544336452920488737058413540673459714647700611336855073419449245687823927821267971112809519601527665975384658062606700249949344874322737835210796207594277904667325679821433314173846367344661067074897445416723495516697656086394673171401390810104845178443313597721110025115382931851021485888313977695321597641310966290456275478311677882203803627608613564411991152365159637882391761393190190257082197159258588936368920144021343280709972321456358136183217376080597714958601375617280493542615877663397632719001014961901540487399071176814646711449446374552566325222719538265808017796675530895994454311726068356070957058699484111632700568588366964962931296422515539540292920569139468825696767429419589765805124638810466512224800457669437154191118965523169473518481986321466438202852870079752215525113980174208612302501653485481062361592821058615598532173024397377486949374360703663880453727596758925900707915448994434253039187347532394872621401082960413527532279951053551541639482027994682840848437224266630713538279522163090989890331231331657565976433765396447408995327554523010607454126568142709373261935086981495990639358579086449781876007414517894156849595490596514805105071482402338335681639684252449773486000364486906591635090222785240330831943919139785126366582467554953358455210604950618419327194573059031226096737116445644430460796715708217417853317329552662121289282940926508783865525035123427833325316302457381119512481178447389142141207055046016148943165338842436492102400737833602878451707510443661405945858438751822293784211854061133732351510738161239353192176319604334380074651221737222691319065586136250802043428252736656513248626619248531966020757716738181104860464051344723218014503981981739053020335250253212780183339466055028962843760322003229411864726407053283962442720651229104531578641729824929979109230492419548035791620294667856613890823219900663708981265012345304699525231397233112551926622922136233285976187545829629330954318038896572145303117809327653510971194009761237575874093850864381405520170147157737640270588845214930972476837783005265487921517158349769446992746678841469331835266938858235965251624034153997164124848343068323996405663210307529627829563339573631978743047169207287005076622697259534184486563610625882266603750115052844387914746410489931747744763204280356270688365502889276199250050204490646921138066131033910180679855747947714105580019205976216871712530998719403042797266400318787040256673211980205993186862277381812431825640002702729930539322203793096578075985145143987682010384828236932888300032588704047764002376043699353224153563923378178971584759664711609539745407232597138918222835646885256172672824428425648015069678029474441749673749976794007024791752530471811319457436344795247147454243272174735775386560629717332939859204394023314264987037106503527878469230666161107905057302328238056457179337363190497703410654776979457676481764197155355284045034326761302686438053712095225513903162240724685482002302876985611917467675467367774864178404090929096040277370869210243470135328576999362229535367004369527364636506243695957719367143802227293992170440786980751607415916964624693494582381520696945320418174048586730800571751290156240634289906852286852443203286363929659420011798761464820654940955107996186372504588281452055787055587265903758784193022203636946848251379479513470965616243078054628669189234317449651151272338732279639344804896292370561757977272170979011868204746288606378116142014360499059307933658137083622895540543017848736072396743762893346127075638711292495578395958710181961225270081559726522370540555356792527017778629587857986096635056356091582532129351849357560155967230666748620530671950239600759586854012218902530780801813606551051333355433246054182046621667935339974796335006345264385994423003634340194417540374297262191083143938212327577257524375263404899508143789101276670365056807172475525848766765772918317120154752571014373246237873199421168162089788918711964159356111593706806807548303414093873515831746364770810378291351482278842551838676485003778761126343549558573848764795489107683629878695110401634204931010350925711319303348825545749981806405403743010900786802750971506976109118006457457895263110894145606001029711972809606769375080224713124651530301243948373967810800874987509580910222224297241847812425723423584839826985637572431211861733116467916439862391717500788038255818241858630353133732002702539019775425412602657758769131642220331056039360999513094533346455433673394760510929629154434338330344054554155437892588645543845001797988990584196266401872716593912876520932354875864354555032016979968592303659237830298315721652991557462024371918198318158469585778294895410399260924393026297100029502896708578405561829851039528744611595958134367888833947825165524882943949106560091507152261758311987340619988878996569220008632351867178726626749538052256596359401130562578414015947506159137773103030086781545088144273412992464004575955768537751390840011083983569035853164982148616305341355398869497422149880962281966608092408405903301551419742990163533458219174768632238665984715653155452393841521116551529459278162558066851495851574147842122961799628751302413646221629068565093805473607114606918084273392893001889343315526409783880366908754120432210008929878845620666093455483697482260274000443259873292296241544694341118612249059063929443765412173038645512073643522725843664075639123021502889199944855831746175915497683707594118101269043434941588180104644048234042291773018541484325257482184920828549389303653910442107782717974865601024602105738075784158919082677352769598155768293434128412820642568055015610619468081935687049971354538422126768235392536334791149365447959027780688442489737261642909990917532875971050327140555805409177890599207304225971762247285611388230227420161308609393605275068874462273588217298132895278544480636703084859875100257219674522969920543108077622496447639402028301272867199712522738898718291433769158718466108719083591960719118966047570167464999480354558864416573119390988488563496994223425392751333844711902700308892315255072712259584688007311570799368947478864645048731886334716585964168287869446616071611213502201043844760664826573983209808555540118396032942337259262368389791011068494653327967623322752523529390404601500072948378580495518634637444907960036573301657186786342972987682609392758555299879898777154236502224857027605076362215309553178022868844682270068380707870886114958667033115473175139458764340850114276757458142706572175936423203724171460918947111598995971559207367871057203041351777868138855606835961447846867385411664365494108498915719506684669766519789600619188040648949525628720851080533756889622573018835007293701120833276862884421061942270935301867190953207080384437481287174810242454174912786248784427551545671384655249269231956557665660372963323003844982243590105679983502865567143560140429863994286154461696823361295491085200831616354890392745059610174748960863350614570578148022351724614809217987542803811947017988861354195494792917968751865539484605322151963785051677960406078051126363979793904970725172330446504964669613938031092820051680061498166345591894295435181629643086244922723176119613455875559696780530359256097943290630308682870248306644683118069626174801764652872214199234014730837714970562156291824385351924774965481241838045009475344260333601091818327593033172233596863039351994435392424502806556007790135616391006121230830997836572075617706974217013374483761225951577238261919766166274451599858051565685847217807965412840216221069187397533116181225239049440515961582205507903131786335997555778889562451072168431509193454085026986701949008628318473931274548654139997735940727633876893851857059565406791820336103585706143047371447508596335419950589800529834989803229754746795370477950410518393835150848406724646998439720438977451197615431737933482810460500549048153066898090830467787816027962325736693330786912394626414433203956308930701110497531715259279852237729567876404282398111736987017610495653795182568757287973325597229173095229492355268509117347581570796266848465851340634747283340421373491090315742113303149367273812123763424949378346562796532854694151390180050220893871982359377238722183389722107837821977796377222605224238032845349928538957131436011176813160016666016179433545458627588280796230594170851661143312168768495897454265473946620275232344966081684026197313480731044529122590817484934314962681009458106482848432001894470341405162740645955338139714717920973684374861270190812302984051522598133984851064160043028685578229126561742924204354220453405897883718402859337911389593055193325370289690886732682311666734324272225618590892203899733931766614644204947511162775767092540572224390658907446612256314117371428611361994688693145561577985827309381539938141429990361558410023351364827348227689010506820719749578002272461405627679259501179878732211036900704938666455256832740184841784726305830027359935636301907116536972764869182453170967634031507100843808409442915979500538320531879087243773747564585406215926742690273392027752014212210955145686331517007224245481505475155282226003030201362711292984281780070140407700016844265942771754580513133253138735308637909085035468705806193350397765303267985715903145539750487466018822293122573314978169203749668328911336377528285015901921607737673876058299781335586098193544183384074733002647974980934868386368264885234534816925005493413927064911380871262247627883686282284557103334329691778691774948842987410641643939818505740735059503610239911380977259179335833491767104431880515919766049810149817662886293439785189017625837116882406029322215626527882152981876381872172963439121410068204839174144203509309199894922066892501392505618819352241369631556186370078533253942417187396525175806509062823879088170648478395084481156599881837318093975979975379745847102493946309295368619691004257033687600246559814702596225726702358999023915850596862864437372546031246306704726960423321510229487044216968716017671292031829134701434062384215186078546206396554446968580561944919421769135117404843340910746853488274755551867749656265336033640755332112854335411050733826652613667020857748135271358042523803956521672353512992330563953486223784921577002598812898482029994427343739630741688730097782690968500731376041326456356204166623158690753222484217418922567904728962377161764048303179160727207545028005358407860168421902020435817816703118168668523422425962264172818920165493520196982282290788277370879041583019936247449085930034939411059273500831209812689802623543710336158838741378152928668591665824743857368985122501750620108845882598903481829191690897723767921156573811941409336958924135057405092791718485482593801233458937913907007437804713994411223453894025260091923656488080684527608521098475556748135373535163718352694398722561647394943616669501209709904093087737475863918281548863220232889253305748190699550144539540018805254838087853661409331583055500291814761664204240041260171466072664211132454185765568320734126809480777047521435269634874152382561688483189529712320719809575761712313336139146011191270593730923291008003660132524456474955498018989173668860063661719917852945865580442422941914612652952260424735479325141357472492061618022788415766564163736632839846673338456806048277525387960129467709381181058601755402188526185171695164349336926283732987300941909794099984476278900696230590530386576678298784704344611395815219865461852744884696363295873837477243957042492497628160515749035936852077671785286976974598918929037014837203351978925428438416154374852632166127079010840575497628935836530947691706272762195483827935178016033615748443707661906665772996519522434791091828860944120878690030552630445726482709643909206955103721168740288914087506761388077847463893215228333852445584546281073933823761824254988653857311102570775306167954845450342631732512287597910420795137462657446477598620770507905882251507003035764294303972140866497467648883613047530330383800082418235180224220693152533436042974956594473733590328920049791765063010643973362800349609410047628150643045594390962144792870581034325557941142958800994480079659990552709003095733106225265029208618721430640827569512048897994107278362275872548321328486484424365610959020717952135825777425749857021946617145395230776140086268099554124931307561526411645383536329321282906518568868897385835274262701630748373599505677269846855264560754055926340059998541803944283034966631093151218938892247418143887120935279743808798729532152916794946042363157568515668203643800390158347739035061007139755772652680404711064824541943400610498166680499441518558660673444716101703097385751265191567146952408326782525886188329241752297874747635358336258248596939688873156220629543743635721472508773803673160768119181902536159666756884200100305899866249740640302046229361388789983487470159538090601677807123399319972349439314166385690804440355634056142656016222046451219252206097821982245806390352002692207268225570352674406508334245881530984959862369180255040599984784016018599791481606947954778125923981752964586397114386976572770150870520770310192717477440607151526834718540017653937962266323212081877153541199029900184920438846331593337781594524326273170020741370522223150355375398381196441996835204797324015359544680208786794863598077422426529892889151648545351987454715357465959750996085939307184716882491645054215477642482955141940222802746238741205202306751861140756967048048846898043809997363572938338406563539115242799886289854862174030625569178516718876016908116542019062531562331015416786662575336590252950261653397882292044765301768416757297693192327536919308027457820832205580396833110390471336423286727848038489457233073341870575495862408324729249645024811270732823234986836076972423700003631392889219129867829653017707745253266161681308612475303017381275687150569989192878016477161596281103786815046874616529596742008023690883072936573222919336263820195590730823989722375155216667739653610062205824498424135529330888820389565993838687565960263755508607038627309239865342512200154811939658288018277710438998263448761709344369523913417606069869581214650978398421981456377089218878767440949606604434322136711787282174410481819041981420741904457469969793697754030068134228180734985851268353110171228813142738332270190497094997121720747774114112219262105743753955867147586876354404875077482724717829239098479978281773621458856408398250073190094375556843586940541495707469579676259230546732973580782725189726944994732148338847891197026585924136896291560912108507428112572867594257868511367154423867602623196028145548513118709336589973508816704328925838264399591725003501896029507674888157476178786372655852751556161212027297910138516450332139790037877352725590977611525741690528841182712996557604560177020798036925347856664108351783012394802850910487655387787292200805531449574866317746075008668534891827229294146755909612508337873372542968468276747698151194210982224920978349560653944365354639925392064962516114634604309958850266274452406016539193914696779826935054102858007478517324238568963856043975707439616064480437292503217069512456063753355895625362654061219066768376257508893792087775957056009592717850416241646390475528701837581824531496587766300630414033656095131204641292309612171264979511290570305552697169780299153132773236907659994594091663282780941054525575626412709263008655741005029831067215219092233926581976406640964840462716645448804053002405913470438966592405491193442969519217084127980017961458735293587849740691493103851700919091336041502006680766297981032470609847621028115705196758092073869734699369410344193493117269178645627070902112115568514603904549462284578159690226547432920509640634105990572503201434297444569806367276413796601951825461359993816237748819033854926286503685755630876273377970535713548300304952227314550200101368995688082980320779095405057626895709699820911098315301285135153916857911856402076924750444351615171891007913508124211123097161771253010548783498149085625076111292724013662441459742477360512832905798397920390787508153612294503345754440413046655144208086804420074281575180903920827900335077158351643691758859824187505920629427321645957452232502942054706243433606812056442565603534087800907102004016936124735564433006426117508908581626581056997936500847299846952707333474932032149007935062883842545799896309183665969527697534203612055591713024563732757646452524340391690568582421112806636008541281165379330554570633951799508757149092735757091130194128128379835817894449466761156629857662378127920728190377883115423177396276881468199591489855557778308622682041656889554422098668029479344011093216712977181675798072334071863702996175364599041283198150649729721700920081049468801250862026243987545822338141109144793243601247715623687766179411813916181709883923476095602603357116962361262160815597554381105758964559916323878364019003369056272992864694260454897370075752055117259531053027794447018688112109220598592550339529416897594409459413221426051536848673634277243522449839363401073388525462861112825457570926486111695407032501420785721032301642505129110562043650280344107129849439002973863571460664652888510554794861454830686375815163003347630321384597085474763326506314248321580363908631206411254458704593712405065329106901141122917853901108677589962909764797299453337162832048915706154542291668784015399338014400810687958436731805749108045854674858978716606761376217718657843602393255579590004593848820869855343320549478122670356223478218182631699123818200730794287494627575781613809076763888003266058196044384158879278280959057141329916762046233636437412245652361222650004875730588547709768342855229585160636111137880487686104568631294709764404777026910499400397850329776468778622419479946168599757888613412556907704567148525496040689504397727262662250150265061584396428000524682505613091885475760756617247628644152529296403201676221799040183601216134716020302745795008831510529944624109502949169843224783727521381077470734771565364369697764439646853163303188570684232785222706939001558411088283050690229578968131271365671027996196344915938500945945684509379507796495357506020879847109125293103084891621268211406108698816858470440195100432329723383477277734014230521830090773683063986278322275895609603528141666359686832319602009949694967201782293077124258640408100210315760508757207295150449320071937132930641983895570879836705581231609948871122015064749212171065672367388949232167739332479822168725581877997076031562190194593277743815018019252152597554470462312113335303364432416087640687368837632263931864830145964421101095137109909717277500502929217148889837210796827293674060659771558506876280643121519389961789927435744488804054172273778379073030991718188028133365583759652190582472417957283796130013503232250230419901944562162398554737633816734975523775457582949306795408796651463576291570239968676742225319922688917672245329078550814158098452969421176332229740707997005118174052737767182037224156253056559673851192035148769340689361336394515001744752504068384469534027354994681286660107005682901369853510542275883382405096250091344873316639619479899942543158252711553088334827864870048874413525029179499266383682429134734899732311010653268241186285611686941413997865191378825826357840710176068116251589619258564699495658469771416458522867289443379962852987984620277854577939489667678826253758362934205472127889832151701066264935452603476877043446829951787406907445336056460457784570288969676555572098004575744556862169378947253161216274520866119853073256911044825844064186441425253617807954933298539804905071494538987053749322400207554823553599449735317493643673298535541471031974501390395112807592379857915624897447731842657123484581931814320477710108150226755515700191243105937724229254256587437172424373186714987579592974455606192177446921357236327374904818866450842150043751363118389169365146792155681668047193663591098326933478038645094350642835379141919201000125106789361949175514307923500220679043060103505766617134832722389297064547848176513225653089759960977835846620355447949445458691294396830665625813871565646027532812690117283156337294154269057749400019136335012620185514426931812763835938985995097854410611196058276442903081463038079420712725023909542150821147747099428878310883033896724066263812819115805501965672529192756188168143240868206472590896902992643876061226884728525173861370120464942141034774865727760504442355245537739037449300540213292037009011793701228413338382769541909386427419785155430927294907026959923971660613903098136956988494167125674142068968827683980951398185438106430193108928274463677734494320769318757351087673058087931107583021524476260210768432794771438275351280418192861927520347193245452136243188000819010262687649401282627174791601383054179540654297817763108523067276425246292108367534287533026967998051242179437835530807908186019733733824556642473608217129434660622041861206971087327784728930937406713469768206832233080546986749741493008291961127383413002970024168924273973378003030324256967932596971263945393654021976806288749815450629619896695019122456341842119998352027396559556278064204790194246571452668116328338516207778046621740222348183904979029213695318327511614586581426761739518921996493038504519934009443941933121832851720992373013081226875152825680092926325584202357089765855846711149856173684962377380528122241268475748613857366413275615320153609220750367206528728398155038639727758417441068549647950037322764914305673949314585736550790483116796377136847612029819561978365003056982175820777989038061314929142488345669523708155189986476511280739299621795921484744870537908809284490938157313615145230952281019333090118194221068987388372624394528595542220032396809685995779781914517192844324801178249913115077880076813035920706011713553267907034438778557412738677377734082551874944898505193840275146022156492106616713616156899102573573592369183607639438638020966380131424815133573831418949466101419362160552021391189079266489464713183531018127400117197832240690088907592955894928731561478731547239338802781470692180522122193964643786847190249022593688284594685617399248506501225353756235415772228235474039655081785088379950056565231987514104411875415881063435224461065904023980704570124515406881168529778259473956046970302370695378221394948508908190367428817136645994744260446150836085949928005810624584425431840851396509876445514015320052357770474021656246943952443832749297256841072525586384058300601824861215231153986059457260393316763776883457411626711844499835087678782997175791764402938144099918715167928198612847821257225032169324791252626882469399731162813835307616451913946818450285679731484972123567030403837762371467568482914512329060557124631940386178096864673035756283050676174989597773614824823435514848908092556522360211026762613358634737879453458073855106520177953047270477261346066648657292805545413152636786649247412606436047091999064877346424819575971674075604785201392386834006967436716783885673804933302171945568347288033615991847710526025803726512402389538199989051057353436840250019083925818607610971786190988735655780385539995212231793615895918283668019639335549344319085496873289141774357292458993909716482019485028561907080981881849094001632904297892058866647399989211280072915562775068102347230440395799224746627723447924741824839030446514605584022592301294791905857700555185407373692472546085947793628913780693059370793016012966216837873203982044134145511469714076114021757897162230223074569214440965369345349911000912267012123889607244538621470657998530364335486899423943960873236021749694852079796326163819853095394661131411955072636780632207535410402337917086256425592106757278760468857666060549016216220250093655505273637922359174019403580027563747107182998867096668283228111946177393257231712022314340246571332680508258529447829698195631449339088652704868860332831951605113084556895804360835236292313566247200369014677551996209815497388022401635834245471817010157140024644250136578435837558275879723455032989336049232874606735527831613769174584710585868749824042092330643971263562012412310674299379367582639633179176665133791240573466176406591575985091937157978459574542046479632122552065191506739167939377638743748261178625031957850041001495206803444805637166744942461832391817027388276300881619128774660377816911528605320133832604266352479381521559231788063913547418611585619550331324054820643509169476033531506982270317719030062025083723446698771106822352090575349087933355658247240073446530062243547051068364331015394541650995827152008293491602808596783811038633528773261402763054123181474099890971052811584944498734763734832147452802297162822217614730442955842329127006656620122005620865149642642824142963414658805158942513433533812525284643101591987129855427269705155358262388951449578807639430588274200961228068846708055294505110703017195631885345267601000703552908786926696483073290585747098806899357269482270307982645382629755300844016391944490527193222279798041909759375986397801114864588507577616944060317562667090144975562785156636635142846725601415929680630831407103004223470257304163553112968495238917672019121397034814620773400951272089962622095811273424520503348020881563438108185153493250302663873560169849272390911485617949946194369073019768473204955275444024430542671166048233085867979671698591601479223647018303471011384519882176252127594964983881140579766647507962011948975085858998455731641778656141687231540731853320783636891588712276547427287708043803897399816432321583660047462570878813383654577649187116537827941005341882965481812356586206045435971800347196902306575148318387944736002964377836350748764553066236740287980199043337126494968195619779258113183807442604654877205843552081424085444050477031059636273923565186641256584158646985882548216641702712492745873640722487666576048400332992189419682446548209166041182598799118929058100722219934376341695440825921459962861816356103575798197401874659890175194165005250649657443660825107042812739927283737942562189382991726993826389120067491118354301693096315967185572467284600533049235283816320041967381021176322349701062481276391493338378560448058026251551378828987232941180152569062283938947508212489395205916970398893549497286577732178698110544509622582115808561845433420699306544411221975265195358631149434921354061363214714697467654192133978439014779431380889469570771244008578126736594660947748640257513729998387819351806770607418355702569189062881453382420465074471748426522436611064768711530191697736763681542996640520136937293076404058993569940014115999197392812479998504241266750600022535402601457752906293536649573263963249652103791754014033753157651160348018273176745458667191040039387589295562046232486099261710275201887766516193456067016521265690187980734981066615644760925394000527702241937581820264626055302863449087931974963608976896572687054116108902426970123796627177544912804026973066032072228452931783923254924794075615845305793773724237081509162658370267478825626863515857349608066136894296081344981281546292440997000345970695049183399906784817781738747253596539796245219097692157877687634091391722553766152171033965202521916163097617116283022422768919262947094810274941504666390556193178416814659203636316350350185892134082785937020692973530213873774960686083539814792333923478056597469755084152814055904902935991887344905351492509295230623637642083105388533138582024094474075292002892439951614508821604840463558553835212035412963724947172941880473430075869782306442169779190202286491243041753910979840940838021717551736372897029512010192207501552521172459373828712342190508270061249812418486698073216853807736416477551904759327754333194964485429039956743403138109068473546841349289635131981050156970119146730288361781774329140021780452520031802808449056967178379562078201883615338310854588787471512487401474061371100439398854586129215082864242250052646675310998220171794199048409764114313010558715578084173549269550191156023008777237798605049486097615035171106799319406140709311548505262822356929483915419688848681191352363472142036903331677953126072728473554413217114301003935012305487575837959370892615459574018332555257739266419807879873060427130488095987442173526479706547189056590228901189474188106450874927452897252379975636766818884108906684048000680272037375857087717951656359488394425776048333234787900458690682349727016459430634122171485723934971577505221752311259850109809852392581863362928158190766654422017642982190717934213098290934900110429958375200341204666332221652167952745090270923438851810776396527661731483849923738075017192880123901058741420470681259217266340318046578199111760278239891537834378106114693012213184450771245101139996880722008740952496362293496596095587416612073602278077268811857226737974655839652854708082039888047498958133489373195678216242959529487432761226436402271614264214965123783220055120653635704518368242957782415510045468132251948123514520047037767001855521490906088198650223084534951761229089173565214806199908268588778292615419760375075584469488503006458854290658732736554652246426248655231100474804578910222958280869111480783489284154607654800403775243364547708159326223927326706904701881797304200894277837770957012005934314936909198365261951324566532103460445372299168655512595556650864321429067872320323968499110738083988673239218211877596242125595228216730522521921250251804251875160152285405730258440018952187372897799041976620613277841720063724016671923164473764761760629923450824024858316259740135811980402999415100848748727253065842481739525234706095457480891760705760688388434606263100103660481329803018305653579599399025490175899544066030854626266620627276101211399974559515922563695503315700201928092261063615825733374047169727475087631458801802198437988753459102399919078615632710603027982343345818606028212274050349779905210620967248606159578687290990904616237100868964663239631377505302340166645960332324241808236349807732344499492333781908048792886918207626154313456224629714211545388694846454706950600624196429133052657684347074836090437822746473511742592909889513203422464176485725449876783511829696401458437130119299164529290807703241777633323072109158870591917108115529942132809167491214658601881388774522938630463235924715613070368863811137438501653533265916600464316228349056513175068531463067279845475597928404953235162243527530230868332261197031735007438602847419132113769644213386124850587294024895021870969961358006145985837529389022797639722321396504616994418613869262672341022481765279227836502222440563682909264401380273274870765906881413039017132879780771380669868160786977470904794859942697052534543680390295032024573758996195286464230145020161634703441962726558832037193620085005247023867967730915244175300010785960501355280217744316027833081313911049888019403239490820782457085425378263157430317280732733710865991029068861436990682079571863754883285223497444694979883679353118272237119676083929234651596146951149281515611903254155621114176808999403898108415217742485379929857981376972193117960624595356850071912679944606318726462550810786878535170686110123099004835888072574197919638519911794655662492765900051704855938558967936687703362455411760207016998092220659201263873514064693902191076073644050022980135375922199012210063288677142662791725966058282567675923820669638238006614366270025547784789702145595353617518045920319070259776177010139339862097239674259000514211041453112746894066392649322517634036269414855658497415977530127652030530807252322902147840844509968942062185147452876775968751428542330509272091713125290233903896943383903039757825901928219796354754735523183037238580328836499927095727334547816043672425132669668451360203626299783445666834941231678873811844431597803107994226033801506082379973230203190730170746088355996708092859885777143212357801295041178002376559951738864857749032871202472375356120791752998573335498734925269146641056799636640668661883550691815394744146453236860666037923376870540617056894642748860913619805827789124264588190642597630615214367071039788181762251508947682481021174690640207653307818019189740914815883122386225919036556319152446575250929155343522278883953110054624946790360599900868815370612741125518895017769007418971123482836259465935070561833716322027644457800728834058463613561181360808185763526798334980414232023181000968716071094916181353847373474402455260088585347450659492601192242810551472235442171885767771278090150342651765473356525431732492453717976331934177203961443567346267365872183493270074044097491871777587805251585364859519598197765980265596109259108272255851631567454129590901394272858832546369821270380991112233264042161904787641518802429972987569014544865607372483922341905417958577182132343853484856189262863092043317292767166857944741503495339068983215226244079150013205258866351327842844160958321376589135045560954930508740656228284356154797666466463658706863918113282744399818069285162969639482738104151222674345991214228760145334490710438295778007457431883087477869737842742281000804319266006471834131611961826483813131168496542644240157894192817593010855379378005584591043632851368063271346851577960529475903752115318722770160509266943967097242671045737524910791442707210775226877949400048289628292042183600425560125070754694724281936214081921743203841365704877036453144589201509083945144680280597485401704411414234630626017512244002532209423548175345262040021229944211431959937571317909405435420311659517341999550496817076578927564032895611000116422669829756407710383435700586390455358827678990628383080666116190062346955781087377085277032441331910992290955411789345724484472460997790386521049933918842745475497144648725988674057911518313893035615073946927516240247939348325887844373353469015517017676986730419683050142216897532595754567420994640539223288416606677418824407343268003076855373921571343555417304625955261666763622688310477800984963366338552268177646926987742348112751098963725836292771825694616503230521953481864613309746917946558922175168448630476784306065055707414624318661961594032050356753153176286850909359386620763503965575411979866893161776329026506034597609893018910262129038656504633439490486744880047570884621910613540711845941586801577564017719596675355403394615253365179933507103349371980294708547779471453373244675045291853025283043535005486465825794998979978900267046276206687133216057458572117540259093414823221534003015750829718402316814369223790920047583168772333782508137248649310827126739436389052959233938037551777504039775733408375812692641069952888457807146725528137387760852362742619289929553701687367136419897154012317004410296248176990583461888204719013848482017189504977129685502980754378555392517037175990250218757347724648130627294880403539367368755092716916785803031167803272122008566306624994751296822574274301242881731410050713185791409194171051625959882250030256138143853436493071278356486390746218398638541299781896126779304681796670446830369855356285587465992938554915996389251828214717438696605189438528920381431041460437792507379336513091014716221859599233851718401643400201461707792388493608079466224175121554931035711727963607080493434922629771077943165638387441294999107528557204485073850414986882901143012355431807156216299656470782438848859838456294314095032659245944167221564212417705015891901708071270670456442778481763777161053886946959953792901075531851475544170890222878879464754451969554125716341942596593133535831313916831886007664794978733221733154627435477719306168717132211564027345064159241669166048554189812514752300598137295936931739206561698236437907238570620152278757140822398125471951570047237370727656214106320454155484462081819133518088862422031435883544166175826631264059404834428599335628875194976203066889579093075300293890146329755088221792329520399024033488303769247717864108230703657958257938499707125833358373379001323295851163187160361237345213521565575251081539146880707126272496601667740715133136476471575027049595577351058632632205351009262814643950584856012599697166942969026635864095950362592924980953742107067006864009642567667557616231191609371873066273866582514273165241026604985888573627962766029718017462774795652634473178852419439697012359594821548984695131454100319732409532701095844758372080997422496701316209784121634946085452270488978195821992112390247927520936806301526786363769246838491887188529607744358123520740142468351616488501142205165464150367975474594567228438706080940426925714722189974531038369540167318362036966041030162334922593831221209589332567655819073554039221487474633279563113160156615040889878357017149158147563539989704410657525868650086676908295215824599220071660196073754799427110856925661631258701089372244123992119302184709189992922702042927795196032823488444409761671744105879081070744176966911812714324775621220157686078701833921757944416433983534303757918263643558406082959785530116802590737827012945970298306410519669986152853828036244937449783742238456488461800021271304577082170756598415019050403833850969983895467404171717366913406618727037557377946579891780151657868321279297406750303382226886595169295377213206957381675715449630581071586838597379501761915024330416458387252007211265227185009485842742114403344518608534941889182409950484433159925431668608883238440358408806489321991703041109328033418912973706449369157791534307646966738064016031444775907143191982105064374811296345235641348539287842912848928989157952677309668610384340175135894691666064065291722454562925004988973292364150130902426484890272675822690445020824312943119387716888045331885109834992881099910281985362651301527325531968847145724383457339779733789957194434547295305867725464894976623571244840297827494189430238199849255149577433680965312389789686561419338008596387661869737774162061336144573780201754637212130205707741143465278208185805286582930303134069311780752910808935611278544930846938507381412153874021494239021252276677506477845249299964937960975866751029550809389086165747074709656709749088252275703403396807234435474111620918318500959077429939543919182409689198056693499498431986303098766188928052194867712419966435432903304714679735054944705913623204666855545947878118316460322430222763445730117852443084759509806925622254787447033754034613121102017766877010564259700526751454690978996220429418247087903934950072184399212669295701505582191815621929610640375622967242615184556241836825500592131129299251517584261759497364529231087920755384493031986541447128732382033391294791655498853097016076895699522524423451054983439661644715676404460117873861207945318146233144647035202963462944272996444614078713380089397680081942170740787387393553431775264939430624004008967871189172008014692928734082205570165180067490611169609049051577735170069115359039956728016996701787474559650014846061195270825494238991926336847373967280827181780808760983375525809378717913165417492934386523381084822289601067551686708175133217988851307609068719934112595081130996595097467195960411125420164177735589025083772736726113548729697192780462392474339367401102635904579997498103354642254880449140360909181433880019271830860231700543407051600973155616889616632928122045904894817451630760349628129618607090067584496072237739096086952404088555147150682329977228271632732543425062609178537129097063799873039919688550845026063492877759864731572037146906117175607639818323473256019719492074311871825188016812148527315348929690074954481121078225731724191955011509539931375591110417344694920582734821257634834891258416796805371370283183902453742195580278324959083865280673437074116873589330219562043875143035235981014991050028935389417687955825350407636120454079135655177640399550590470498271886872041896875737492113895938132511322238848087679234265522585100993301470540100174528721783050382256925371269882029180492663931161767871508842557104086699296262774345918975325688258421396735277315569825896689190985785124049254918416142299346216132982999227865225519674265983814702929835245252304175630186162640432953115740090055162566674791832937869236083492626927368485246363641091377884612497428946827997681455258467006563253686849224764307211459255302631510197975561359994382065284960659005889336887497515425640694667122534524173735540093359824564972216961383486072633415563689981763083313943930688188170529350464113012979421052492060196665970937134377163761928246901168339376232440278454206496258224496983053014665897460190436968388203097225692781134501449766026447243466889349645804721931530728899602923499789971826957875725763236535021780599572525396754899105350777431039213689916749294137404191116429246802772219763258837505445980912271498539036961147442798911573235703825943696743066403259394647431045584605718816054665831546895670759278748702897499472218461274963383823606454531405692191782233952904111633691507105119048837443960467146097865957681382678894462876527158749062536751577048778512223201298465124158184707815664068663531027622892144965260808238149179844803931876509451945316410402466483574292502918331643194264826427256770034359026200941053718875416061671603544284746669877142290329725652516836098174293473865328444189467440812199312475391040337156297467203454391914591362642551823547634295685215420581612941291290000004457414814921892674918552393705306784132107979305618358700722317282579317958343341537677394372401185209898844461327514219650842989048689579423521846639731918356738946144542722858118118268651011443076031739683963871264471815520938466992648448558453770995493074153223212713332483751301825101689982685785567955271940701714714810433929990642857193576508153890403684414991856175991511836297349643468353803342575125326045127799852235328464478379885219106411205453151873032007193640437655219096136973677556153074865734038870166167652176713109451979205166180800366326707142294816466163156022051600015116078294966453173443354012447824235916009987348658165132431520599173780090295353049150367708500505200458056230927140118653450898055657607027447184810737076303887878674733595770174421085801533239594149330679800521491032315791817782358211596608595278731474617258616605164308582015779386884705709705405015816165453627422022846610832606201525162628824869145054487768852294747392403392597783363299723371188829426403819694850267761473432432053647739516328262994066587940680361654875393645321918902369428936849941002760164398524683669396014311630164341132927901072700998241954370094906663780713640113913311369564412685472206608430104692850635666849820720521419800731184391673942953357558746387616991924852699556876886405423470388046356482243784984236293222470824727956969643104338063021696592213721332350605983924260068407568662717078655053923414051535794495836031831063513437261010048149522439792578630721547503415285167011676871435097888357732034680946424445049895992344151180652003382368913590892694098349405327852067793954606768371478412822127702628094473261722998877631705513442548637131567855408861463990596726392638914942874398291938467777691180087183494764060857410658547205453478915115388114050594540940735159130804138735978533159653777003064939158174695691599265523659685894948466592746126044119020402476028169180246960024557994786266923700564722483087691920221374535901702692256473427467191231290662841876874533147875861167671151933002344792718015156533396271020631786784036469054797357333367993636176907828631888477587529799999156005547815584459306626035669854643846056112969913514655696620469508046729282718188768262888275178187929558697609121328997556679772547773964516985614092637291735062096722388378400241015855450866307140470248550362686602237658431744923937605416327062352150202440728467492898833905627139771731084829849780897177152385867726514579068200909177713410141997734334211415149650034404922335840599163561659690575527649874168172484068550628372729090720391477754208189385915122811102752220525861162584284225908498225850291715823991509269268420796496887902532869315942053611780670061267440746583929300845438776553778401369889185353685998979090273252096287161218709286425369479799889990626942153882902706658979897790113027971484989607012435147185624170940624105795711602803878314029585215483665876701160439970302079814393907106835540673517722720167825264295322738479225762987349917618899421269278560395615134117660035851453248101954713609991210391112655220519294292175081202692573848721987365746632903576802714273986425557661717539822930735699444415397269345415357980849566103793727341860448207186932271134121419732608284520320090451807628710709356318950120787652907834686793321923386196972753462876862626779316400911248389733197967923421615606893150018168836040534326567426416079588625191483610353408910000676740188678316749915234087308929904635207222776685689832837860128472218130199505543513714725858511357892167810707622534711130964710173812775957326892411861646123514591821632070572604430904029132043930940481833850364039422847185232815605028830409839642471469627535551056269007088934041770586217744943989777983175614362412205205592928085784676626573571856355350232841028604405984038863688522770316204830966470355636428955379229568895082089729898852064452529173200681429614358402542040118692017345513055524374815540371571977177495630339218317855594071643690667209819146043351628154009052726248588868201373591043953216906810809639073974751549725309566911978874849811313303168237697267244927410895654465488672282214465570245646680493301995417108735098119274218839817327851757994031705489383421849138188690432226281878564710133837803689102737874489857395565010997081671651420103919527587997785903697693570788174605236554416495923518289551361150426046195355229277569329669534067417633218505480949908078370972169955461194721067142863147031791503386870465468604333387421758945073240139699023360628499037021697551034258775496485992773354064803950751842424878914141683897164069160414947120456021673617756601875078214649902624242115483140569236423689957842205159184413474498902104089262615152179499222054363647556960450804924275621969236082647135428331836267379625028019248752349560826803066067173154908691298631589032189170091455955819164280014277861154506607537049551339244831598038326458722554138713352149198174809933477049346782860209093820020612914147465868176852049122933584709291037627580705080290582822511580357994596186348531432574991892714899447466181962281892339294523988731458817857896884802367896374849770970903729808437688082846822521831426635237204516586729763727396548408890431803600857115205404581835489375594031839092707598873610781819734380971536392386101791357566209556730480201403138710603019343824743180369494346334352180504160305561323249815118007239167501237496793994594317361401774456307187559601047881903707275063388143434869191347236326648451501290603757816682392311978163007639137895971166503145114842028257115599892291476849500125002040441510333649527120025254281558513868655811559486431336676373262401574343959684743124180699174285813271695726908069089069140265796713387205429214784666660643401692973851982056729458241565871661150843103096437894252215136172401241109204702487731867365518366579004757904359073320179851773851196448324315843219780410151312154796801756995179136965262621214277291782388566332112200253817114922683071854665538501909205116253133315316208867046649230504143676944279161925915464514547128540007514307821127332728214058171000872342288816659972703748818115696591539129107100881784417049378448188481279032702424674243678464268801767034707161701648426918503824606161529236398312066655379703066783488272900099603960035377822875183930648736061838229519711422699571812245013930476855794382740447808755576670443993978930977758726796053982058810419810295644533738239464739662738904206405993074663433145130975954428130919429455930004846418610043893860698696985121329749824387447601362699381108970961805987764769049570139574487690673035745468592050202333867057198018324502810026020919809518645136217167692215108405350274461341108568176206792455884383370990926585129648743468336614948233762545126843017371311895956151575540288462578093638812275165093611562435990642793709903720832055123707170465988941268712045835768407556894385332522294072861405229951888210008417777457390626621646115776638679767054637060217046229977764391782662297878426611539576572003134687610693292701478281227069251661819461190636738541368428865325200286162367142791509435850509101672260589467631967739197277691774633025474092454389030232816533860594312290936911764030589342145149505812080949798508589684680833514499269766735955054947870177554453960511366173060888661227643758171148949378671292820648078841900280313692213179746540306190231696334973760725390183738202449049370234130795351607490728802959956074833407286938016764891850651487565757269318218027040956037051111904959600763084666036419808076096314505934816909220341697011907367761722947238822591054083792797779864406060975458199466447442585391881114663716862107109336932841387464789738555434199577081157881975631472220739182734357656415918945156772310095720726052131699674105846090094539202738454208630855504337761559279508718456687319584225394853449292701555656248388057383920107093914674385304560506434106114752606143659824950460089862129525005812990077108293049166033927789374490851173669755506387696385465873510636702839487961453257980770727101175429893343123953364696299146625666978363068462234326005423309022230998464523416900785084180965322987908972885240654362108067656954423444171914905768280499028418239363196877732363465728749638474475678585919344188762824798675051181679533664617249935498572313407399994566372994776628501464116093955277785886277415895776490355313261587874731411211583552797202699618975439760332531152018863534860730053738422342320232724697193581407944384129093133347403357496666832141782096871742461014690264331473295184736298683642813947614293074517223256790654288868937077780521152336494079539326560266876833211030447118586323408169668831198450397477793894728351257289629276229821536332192466325214238257642982338067335132127556608894522571177085538782226480043688392304588326132395805261714258625498410730048333020703161742119708998558632184049048771354222922165824671860580635556519825662591625557793904970627087870586699028700204697257037630897152606816655865890328227366598615161808995256903626571266583438949643764133091197972856095581841890728446222584956253136377798895556845181284768506089735914056253340752121310176423566933468079203933854696116457969599059812756339481414027850469884900804204184041475891965799268645818569570717147027892227659729694359788130258523860706741810615396382161871669527143853497245649783252892293879505398776196902871875843661424343731327164356272180217850099199135699151579850053536339023921302172227166436467602589195420211450316389931707266648774362297327264099105103953026331320353367626820761679817634731482099686569535975749069711610117857653057000410278573070827235787481065912580286720684417726845062032918931928096154379166584184473984668816783198614714633619914613934889522416667912373773283755539231690933322280042239731501277071185731264629916658496403673476362190076309314718468629479751986061612638656487663465923626271766532108210569138406474959932622904214539330715680615863622764413945110483210813128145520782515082515034892977327876253562532656316929390668098877060742232005505250892715204633557821303869077935531294416617556714463835326786582443948733176446480070756726373757835526363542021816417587000698497301430657130144603539779276656998149117099037918421008793219091521017643379746210830203115180875335153057285047158180850150571103992173402804613697289296260157930291376167160135378591146644158300874506565979286194950044323874215413942923055092316739241060318710031758814969588898219735640538513407866897040293314013286100127971123560316356906699098255979931437710030209495455849579127252387983796446243532716814327495809695465035536761762010953279205963940504345114062793435830784228347222706820553039576301153766810210998680295684785515313706133046209185961912282048542319196913225831106498057352068640198272666074512677574431368596924788991836512132762904038398727196553258973027330912006410781621653155250052308442538242059329231231439957895768436608912807837720188633480145640600166903451281577654152942918109025687047909641517552797956631684337571437990484763440030347275923324185813495442791619402764056887285788983462674316113195356331753548344865187735063589415131850994399753674231461548671048721107711495261806206924112003930007089526132661194889088741166478904390297597649442371874684361274697868956141967234910022181216486502068377153313606384693612219952316964693564020167051662091153907878029486822090300199096251011895987469584795295845192163017096239252494067838745994113665117991040060471965341481662428941296319279565374211675746644421638542846732495003755889851234470245470431058753424129355338756560826672885396118549873788702458286499972689165664047284327307002287520388585437927054094147760006318769416707014511093651922150032176487519443599734264157861649935343408254311694492328028341678003259346202896511655580148294958628702735720969107618900690254810931511344417138857823695965279251391336792640230914779732540271898141385776459314674053654058886130106948047695545392681281943738174159953089796030715822698238997915974126976545849945788000265568744102716381650726442441499970250401390186691944744586464050417785006913434052153537483483378881295605244883185485292625400057759597478342867999044645088885846174444851662754232937452128622079402187586464273411480899414769729849862092194244188381418348630921072557328207690056151149291528865495211534514818926311884058809087770695966880743278311283748960123781300298694199785170918835321692011029704214072600912123988133735625067302714413659851661881240927601940459385672564861418589848043760258224860772196848416132544636116182074032818550113090282868793586874658120787393911451699784463153826959477779061142463737944646107229225889972294543713361184934952701677321821040610863869917318318940453276169440148802629935205776299120639147425002685020283104207131298251712878846272837259273167479113683522625763649762968751996988192787027781017474581515335720270233388920257884425650815091344664539512935085885025310226230084458682755638307368931358064384330880469847225585120315450004615153510119980241032700383537570988371818203216854093119004415443264998273769472112159710199396565481707357462547797052605751700696731006240379565865049277470960787840459521814117381924165484740179877525986306201695167466257522416951585617873575601402783630753598544259314746378758013710973276024723549961368041024560324736548519988047087377622913887225085420870361196297360996559895515860787791297189439588849410888952952300792341526441345529877996747161698765109575854225316717636521508892725164061791744063100922084191672222044056380031430932569171822406044397398690041404214343592797439136198979084185837301972582089674424015854992925317215341456779060371885990838086397399670506387089477124164561405712874434562153911630982745865856454601263240000008095345009679354378521816507791190367822012963088036741617472687970623930450853693348208206619935804477083114412606838500188152285792463974543212917235404241460038697815379051847865738791659122807821383423702190106931013182622523778750109594169213055100554321219027564176918874444417087036251620643661406410411892901686255956201313407241617446408761223957010521587414174083449885401717298965564918507749078564632077999093084468191289218321194237555855997125316598347674970523102708358647452459296741088999368091354504769964795662113726235608186778123950133005813963702226274672884833398621003333527734140529822651935779968040865281331932966688105435015017123410783192540225676772687445263077220572531801920949354613645200488799312362405596059137240904032371645185869808073812717229627618672212175371116419567929933162403365657973038852975349516758699859455483850948167468366832355250465786384972323443872966532781393049792491349782320373561355233652121170147268376710951598501640720953076115996292078942431236579391270604203868862243084227183729436492065192768272536584110178884472658235037645152388535307767158823470373405478928466123392934530636820076510737780833896889585858123241054920291464879147010715267302065938101559886736738055043248255310937320063508576067020818735617202730526413597585560070217725422778952169769831338488134614658799478580960019009044328952614564323868136082790128054068123197332785788667388615646242132432410361724068989391091890624009419362009831723830711846847429848193317935463043324569696343587467363811114401628278412896743024461261167393465960521261497646208837076542278450380567843127799576971359993383176802856239154145961953752027703752340717591995378826723078989634237806643266173792599361657216555976591254532801780677828313384561483832237100492327067911014799152376600265967937011537039949082524857389954880195699038953188328851534599321700666122556931335224524741420836071729491317046118337190093701085928316963235057132343998409475721842754570358908127775635160427429545685067095645466181106967580314942299735308830255101671605372756666710892709681447716402398092631108044998942862332172364258054357119629026511343401870246421783209085488960065844407726642213579234605607884397358788375832549432278783083315212104093672489953263653661445882176384799843986648650808412557050653107560685316500393493822769001755296156308943463476234300679476306945980924752903016213478939578592120977861232347036933507606550843042632100475123333774799821046186822234187073569336495329767444921730015795176619534938692126430067403914092943163316521549683207190800553608915289209961100443795538425430382464525654835273472162943768418874633385848020289094574006471722064120123190730394842153843566334389601940803220245483873486571206130639510419156355132923875949495552594044362021401894978669962053019291558742175242682291247979724441712669306412060939477796728054481926683320507203519524032888792187311918381782796748073702163283832406942967014611384719833479156872124162883988560227895859120125439584522269678472572235521647658553283703216608811055375177482683158798131886010944504095146878337848874122383053316926106475390216051703644291044759463624293901717514067116046263849076378192404629840016221350381203375844389289147324401562417712185235634052120323929284089743029286809534787746306175991092054009300860035165038149962375473569657925625169356811725176860137172781151125771969681955086894948620232504522071748420727083379955022288600115218982274369199861211738511574460954034721598064077609809997151501819041673344644307059035538226855545101959546099458340926718815715885232000499923761126163003934812391478539644348047767793995887200748318589108926698242973379554298216012174520123292247829894150684933390846470736520454932428311726113005552213147855139222702306174146180667652509917324147681031145902689462697879820749508657359284387152262781781644104465604308190836334462718857727155482963480436220314538398759257154706580099985710525424746276223389878799855248030118048087098036134055978958318705081039583599895623541105230371110037982425128597942974839818067320447188752869329918493104275806810797316567389672163406956365189497716199776464416324151921158702764244140907680068536687946124230350285406059767734012584664019485984047781488084678663148773990714714809715813073661972917012385518731213706764814846359647318028311768472765054591048550839189986156005078692263909324428388996492155450133453794600323324656947209261789433395743801103145914207547601810952661798873359870847645813479158835306990994460526207849803098207438318902883863011444085328838777995535944131170663046826229432136586487492154971367606998445704871713470437023030111674275764208072768535237616810080669789225572598847684138355787704594808421837742569429898858713006423160119605043677639410404432062364408510185756805812401453995620338055827708803051331220856109242186908485897158861866598715569535171111013150233871858354216734565394786637530238795064037023863731854042765555358983145244335936806105686551424309738418027535420187609465501830679151973709935040975720095920043481799734860233100335210721282327749060110245045281947656437684988263052069462391230607771181270925449724231900910327821968135466907183413024472965289114679762623114103951168780975175827845847043313571278851451040053629912178497869738834575218073377555033885266516840626842530076484314742804084872838340253369765371337556035629661056319110561617244477456094021712066023002014030013626495190126024358955471954613850878835233849095937497656685644110202036607985759805128770202636184595177566193781505057403339953260438017339817571724265377759319702331273095549602192817140173987007306585516732339801895664510494481187854735887588890040955830085782314057776357574221452448194497526625840833777494553587175038821487252942537043453101643413898497567661200414705038253202373523665893468681091692316167909193254542746114244227625907247890914288034345760995186842467471041469112275226815810583305457393262507832312037603200951955734221060956125967405099436127084646092126325848747133024012547311705948519340634905718429114371980739949907345721522401834405911510228698087701521410099226869336245350942443703516443157836073630036788126290650764448080132120301442212980018644485916016739112621972542193838875963493253132857429736407198235188298880421473078102986961249539186003715399344729616244377009222273050292736879053138414035626816671887137420410753249845344741431918783554576111097715198744618787897060994522711796084030875811993259460275249027747845298280287835791895525277187626431933250482427056836711663972959564941891394349806712625675548212573091644542902759697474375851179621348337345738738953226254676965418001535429556076112011846224887674352873608418848427382426008008655770969979472936545009040756104904055751568721013774190813414956704118670417841481323854470846284414354666910927661810447701476901701046068091111722660597150642022551618157101709175202795037034928539987804604885803698679753830762363470400640990632298023843177181155668126113249826559274713494217918157127172348595131085415865404795253443083818335377708302030951714294502449489233498289006364882947940308039723634359154064563321029974487361394450315881359261563733375103269158147290954565007374683739549884675906374022458444151674508076987385355896310877408769121381758262496512031936651308168113187619391162167433718396303017512558160128427271569641300408605963938018216455748335991346978821266994909858526204969316922433381659068368828833582586804953394624562454065735070731209917581146210496583292624445754302363218506265088076002216076214552611419002343639834811761160640857849588648621772072114443398373795250610146537797009640501978213190939532543503567206980636235686023694579144904983914030866548027711618520477038732852063507676106043183829386153972922812079275507250369972828878188417356333979157519746684508279848282581388080030038843546098766471746597326489293953119537563170429348297166102044007788188735869572599491833280026063673272848846392494865732328332198147880325712748150094261978316949554155421217420576576421799823355768895421134469022187575548202619507439162630376629110597592806958187535824698219301264998076113328475978697555283604360763705010844575827077731594674986470148828949371306795496848087639937428107596827376481957915855505120746326585286786735471029657597799991530185283063589441816859275219381700925373028745089896372279446738654458499270791216820285425661519954019516133143548588840283025265797192321006360019443589101314578153815639752920221414783847100461826085439280944996090471681488317038532811827134805092958240877619163237466665965027135401033831577497410974869672173774065141658655883891306611251004080850014500944060122300857940998495474901743262154683063021209984238672865542723085795793607808000544735831284584652127253417793026991653580484992103926257668784822794503251497788350139919556024331332965848497794975216104108841258585724635375150655695917829278490204503192218768879638898997618367504224413967492012373025645198789027109130577976834557005074741522882133508964760381439187833643567556834575416016059858124891031124993832930253603688542116541864285616333485553437284759717410384660623972981051240289826803642259066691709865251347006003688217338682845600818173154827673468122018436760419320948991058740155000640069636381518771485045572780893572009620750346839278775447668390476462773845679124428403570584934495509547624259718137458302485437640116050768344501156544651502480938043863852490970470976992377908271168102760812299741422153918916844811077034372120345280812602462434139981995419543351205543229021280719176343073866357183807360877566761105235599798877406105314471042559250752321345014338495645975327963775275756665259634997353692555277691808056921010869013920174026453541415392698943650256184724377515200236105385669142986492448481788050558143005864436820012913994934005220026323280917827452933672992294625212207796642295602083998136465855396933081801622642143007440862566358245790142347676608112044250666720740586771517689934810317795907391249377751629740664183974782720483033954406252542264990947728996079125334635088004727859346813745885598365485550707821817165431555060984614455423244439252553323201008541359831026644173564625944469680273939788341316153468402289680779458983824999105917908113721051754031480444050163376504006860150897721405386945688818399602886763183576602620550663603619788909827035008897878764502773189431231287545956091534535821568420393652352505503875722970224027483158164937801870924773588857114103637350974980261163527703065414946480138767035706755810326226507864704494050406141833253081253264193359090199506182547181688538169824796790145806900708576903725999780516497160055069470959065076237870021940928074471785239244235198470452016716690581828457032561062257178439956423751819733112793062195609590180396652869532762715148262356294980382617368329190042275823592747647354807314236183716093109635963280517606550723715490516044358145884627131578693851283397007637324470888138929619840039266279925328137551465353199896814308820772559651094512512786420755844055593381464360744177097322647176743110542065544899065445831753712984136506671164437879285051413841158743905960456878557867534475398295982650681395143251026146425619093433241145486293738530246138236703349820454580118937034972564588433491643331034630559474562159728058858996481033335089220929928811198650087714350025287081123689914367271728573051988311713091309688149484368418412940384984169236741220037202786933868093957341218803025291939451033832828716768327133977672445235688021628732755751042999039070412811232005134665239076598823014985608994377898266589042936120855359714333658675655731250592327239603205584694548834232875197715004539917375670532009073205554518917255887202607925583756761200281257191036674416943634303771306636362458520472667606493482214822711492884729171994951055653414758127395673436327692668738449546901116889303697712831982436216611993925438345806076655548279747705375171207566256604113445208406842423257141566288541290763532717068514028405299490405882052812780097794345831432134842091042735934937224859675952492202177717128059449532093860159949273138433182691547366512062561987588495120400440801814714698951997304574919405030943943395747125497355780722392348099312022246485336965794206593500487269740849509121944816742394859768806712377170230689841613830913743752264535497563985066783797111792320134441221715356838342953638114830681080628820946741261046354175668332920791778579769523461863371582356913434176339146695991616952957198596106719621948925421321966718899660138858288162336671876807847052644949435554292587674801753902028131887415729163381265524520279598832103491571939091297004943213770444062174014907781203845265312366545819532866611009938442533248489971724844378421318493085247457962901380168039683489876219199029565455176652162366529822259498545475008782273061448721136704174729595360830887272824123839600514245242633556955481983399144328486087047855929957156706616750250928113514233596968368395990591356181821002159490133991440287825454602265445313890341632223630710215578267843448937867496126836359634780608595304781149747740802514042566845793088476119428747421673633101726130403934205335934366499664807366603452861689160973861924478949969397251122349141679631476786253294900714051929910931110449500570393730477083248424586622448110208507463351637258786798510945684731824479744191001103421591593821834960850714461368663530050982516922245082224674366860246892577222767337927471603152265652876498362340805617833362714852043417328642688954002936843614166709320265944829625638379480095107290200551168622029224516511521959557214400976637135811436988988644278228880283846507409334190138208358636857891575033037050258388830003607135539428010073357856372582082138975631365674836957835304929448173062995224759677511971581408018937748326177485377529569058230411644656957065384165539178692779537374363423484357459664224226448436981224157759519779158680763121916605052044688874930278640004885737957995814199963824621603012019132829283810002890492896604159082771853408675816667859327082676782144411527723694387929794582261026934657739541723303942251681627071931970669088458912057122403594778322539584283368072208533792502495583898535344707661897405212024053217339007194950281872875188175704788620556080555814899687060891084466456890589703934846363941229542398712427418804703104165832302231336560958906674951791992911857287599080441667482569071174267298626867357487830853782233059294929386451877287526308084125968864436662010471070401787444475347355897551234767125736024253717910664069235707140389065111190353676906205078495503169363820875974714694575445666189139855242092766395885755343669331338087599712389485639286807532925800034780342997301720053324892337048476171053476195200660173301414463230105169209447201356569980166196305022505775571956431191444758661005890812120651077062863308642088875712072262835462673128950979881376252593883927738669522044292830959131870514970035441853627274796903130687585682514236071044666240641210547104594850689281169217859822421600574889624852701641470028936372187644690612440632575266627156014970719462505984427014973785064273059432248276893747843271648964484731118565480228141061331523091227302016091397101141685408748468028874036948434732651227237690052308656333188029713143548925793481340663407153048450860425631384600223316064513142300367506345443805452531530550913601259122778130557950865058868703972527646000345063655262388530969720835363142109387653946127315405329799299610780143932430047246204363367009929020141166075601152297161560979259237715932129564525442880984296491870498853993762161575418021855605508172612061746495926128303470286470478301300629885319647606941249079751765694011316885484207768102346357903403959978005964390374956588928010066487624845380782859687215622351128067328845091035590379473086221383030035437345317908762512356184572769423556728448855969498478025247658826629519767054518517333868137674199971941143285682795583419775752843724719567248342844176089979845162152016751442029038338748988209594177743348392868772136716191215196329520112404968684933679003128718312219729054898224945822841535577541896399082971166257806356998798483488047678346994554475906889596422424098984340146479430887069108270132795807432170322065687797698281092208681629321680043109133464462721452544145447049840723086402848594630444165966352146338463474205494642649120814934115826500116758590841677362062674115799805164488770263095401749313948884071731028051726006159082915197904363227871761497414874182590324253563008898952135865649567548651386294872510807197825738670358263226043542481095601956947667910667066783686560580121349834352686908205710942480955815416226826011201018722145834107740236737271529088531036908222284261696048802695446644076687361998248710223410624002075046976089850297600425510386344940140571070135823687866799510696770529744087332940664310193731586237888775158259454128311768551073643940491337384158322538586377363816778932750712192598963584761801986665423801704715811322857975110343176147015024495520643729615669157804834189513916138290043522745510459146237545783538852220564763031488842644471939096885004874190506906619651321379690489395689284671258985364929723175035188901146578340765156654012201598723102222158045136006855955575624028081784869712180768896849022481344576388110947334347341668804169287248606711398671184294226770898594721846794353909444382607001589177817990032334360559722020012203474825057397953749531205351395662969220585625346510346685163933397790773219383512344730132296039627576472657134727180702194316669939241327997038716519675701177768698488290646730305655304180256291620022821429130742055265475970164155701361516933050661056102649441658940677565146660663916026870706971248499577239838686463433761865442964034565068639949385634970496185565663247650960486777011054154276588227704763678792635719917797595257731857322044966707607365524747087191562663330850980500273912804110570211949798818488515188671162303970972811147275044685947823166481569826598596044344430386510110292229784288875597349363261772763484337529181536811470223934366906500515668794971996494673288208206961575612286977943546264693817326647716354140561110933375874284268780263618591645544594001636128888058457979384699047613319568450404258763365927656652836143211180419395196909840205530308546855990176570228290309377729475077781286038512951307894500516918718170480933892447322972811155818842232457660241083326667091872541925434997640928697835037453201552260976069708167817894473476065531822666582165150766891197323371960737484741417989764276219685633953462398094572403401309310132661127121818808347937395079586380074255378476026049700207897445816931451740759999631859599968495115273234859241837195120241907288784007063287229293764436604743877959086773858005352471254453343800666833469520000896404908794577592458063841238386420125597738360574266243368458632850379722175070811468434705015273389773063386583378912564033131204023697309797927743738463604135474795413685501919177797703523063168821915252868179706338309565306628691116709223377355779801900338530786028109125875457461817889797379254338000161759302552620908245328775034896731661180262026357181470795188957422402934816053212047526872343093350631523795741770528385878363195106969136419524314466713411568867572865954468244598359514507390544748488687990881649041998645849629904760391282013960913498068569728610489124962720237720029199881480020760528666912194828159280175379221287160882197649936527015480874010326970862084987370164986053477983982921517390820397333131139082144028689519088226860014578246816445481391455433380771695247164544002853941603629265820760869317774341707083889267897749293197395147850144764585970300806202976076943373643496115090414046274613010961342930166203670027236612426465187821777065867013174846272389535816594678132763677208475477772429728327902060458859049911774182841624952431492577072325399974436517997374548720830791960395299692189451158804960229349095860781670881949300283255329283844681552539065656155934879257661488227085770152531467581753114246268109253382241504885046457470475774119393664218783155098550807198584421664900019721894203083601022715114679207612636123994630746744058949259800193013700222533777587581269552397875183889740088351633772750416455892944857721672290916071528327739098804889991051278262429251496868092361294222646075397709597528598403806274107331732783110710050455516728710905097731739770339342414430049213971911432465835893608257431579095452897156946828801330318061135730332985803426223481226530446865104713920207915692136489719552317458470792485108808520837262846718179481979262249901075887804722565282945560265218073678371307528840365337927588642220361722424331408699093780995515417891438788996646522391662127990733128245141908254190565763570358069323144694436684310459952034739598102014208701992651375823996383011139706986494947033929135536378704156380263829346169068982925908539958719568285895149439441534812911313377755584129501568371599337005631707841114550738933698680471276766141545405780193799920544562749902181027638832184659428047398341081378756188673425793620714520458654356209346334470063545284950086809489596494036040100304476572443546757148532813519005997235294134614259325933228423629763605746504306375703766423417871820048160776428553732927017193441494502236111170397747777679607594921946387092304225246253685347835224133981749018665637308644987111478568973455866865166456892226713768143670922287067208806018380310046963434925171853814403786684996161566688435326394231087739592495527161117662191947349343464371382784793961240139497887654583487384871962733885654381932953216721730105176995979210925019419990901638159080288916036837013324015100623330438301950242183155055827466923975843440619876917835915526539818027473002979988030237223598213202168006981688590195386428749449614315455555694607184991416596478129183273272103765849433510035748807230048038886493403535169055982366263618887151326612478441050092043495170700131710388935341319869802820481300755912058900104548151452137546417381647553823642271915920373955825862678874553324266825082582639685604543150697186304149401272566610208401490741450211174732599177228378789147632755300503292495684112427625646910932330130933857369394514808667389028597423467917606732069126195501398021343492109098853125719238342213875852104906793708236967830029570892425083215142518754043782301429323398022190325859799186212146341528188285329800146054912046941209847903120990199818895317463238155615619139823903768132441702973798378219940865627952818478852231783361748524604583847728133365480701608578266038230992570298306674697941199802872507697022317272974651638665897650484185733183098075415628352163476127300134726149747192559893926029124685109433335299749199714545726118946237258400871230322237169812945032000910991021965884776856938306568683148284989755299078131849897908053496932327967356274706999052011831396035673655236641196713418303865560119786690415918226231552961681307029088144366929183154376925916889016063443925464320986695680593633752882465186984327670688279613078767069880797938825426136480280544403611635593148849535715846249007924753577737138903245818440251300701209246129136402399968339388125861324985359339969795802920900427568518478457793909795551923524229178188404713299194047285951553058072822963623473528772019545533320020200767982154971055894329269865913709960537605957029855275200707805235792994726457052623006617656897272252909875283105383057748407862418626170278755626796990481505239297096728120392962918123629586970282179062658622598017581919897977497119693746671279638899452003920593223960744840784624793791923451096926242674446995745747357418880168771520134029731866263565487105877337610031366681810140962025554257345634704804109987876802318679471838430153868362863721588326790402143278846719973809258722941151288952892951220849414195056428817501299783480630842784170943827790257644635522376819256571522701233515475015181573003545645011036850675641247400385504784926071975082321657729076110849783742692284077961671750886410748964942824130338549643045515856678731984441081490236030608635016165506543428077396587978557414874402339775631158042580575411322898331277490586825904389137384679820338419562543660443699276629399011046248974921997047075238874697277041692033462869375980211409749220533688251638439595992814865783930824808750946512913432239340989434201949582546878493506064935192742837407594313224044381029713006048695501732887524268616338419117333221249330554384223428569911951552544336210589792340365647862475594389631494640639812882606025493941109628779766136196251104677594911553366968002857872379834859002594842242798476630877114455254843360011865117805226451756483029883341832316455749545463353758400853429400691761793292042533222174636171741484053966126728258218264159673327197306848110502005980564939227684935330445700062311339854434551049157488138203824410027995986701704561415074511218535571847365534734976902145342593463906880947917490569054631325172412651117809755583505077071374733981349675082337185015230481041586798553845651958279087978512737620480823114765764455749803207466166521023056109946051323435286541155808528241648814572660658552091094853086462730119093187161513210981529173819817532544461228649733088245952573481536435279786164160394385013602496844880412243891556074658896718772073283240509517181485955952073784302600456788093782539393835288659885597342009336041373651781820025243415834670682364005759968055589961275831803959292282330311491449893739071028778776066930391088654183823369464084293716064125189147647642973070823593428014069437281900093715543486779792457419075758201401355471626238288645510092340788748290236431238936825531412659422360857676775686986815786629185335898265127041902911021815340908086186528015142108830486331082216956199913846964448289535976427189579262458339186130581886417462100628070442547633231613947263849836526220980337146952243950618889520247116142700136909300350745275614677584541117355068926134265270231279252695979803050955846251097185454969843502588741276690031212611731448800735560553074037597580692575619937238156684223827153399355963148128220350774515649253857569205051537206047039375498149212664728846608211868454112614508762503317922774933040327039152817606161110135208817654053066679994451910808582879862651719802872310602027602373826022547421718286247448543251973820499630277888878790179099641997579580044595976945520080152211353082253757792014393989543478766731752240246195064693596000652770483886560462355185856570772030820964216593672773982157076363694149957414291586580911515591405244977869549204997859185840090283416673957585279970062069527773976637692896305711916369126684156082081512984255101762735364456157322242082374178779415576624395876066807175510962101662341000624058852856791697368681639285330938156391041259305905914593518443565052630821639362626714758793471729441911759843277622584114083817028395339220903510818983276333088120029988277940463728247518619155952599931033155004683656728395645161886985052591392358732554433839184571097577098108336453138892306181207706903328835841475363433067621856858798362690829257411966076346820836096211646695149503948979485790673803986704658843034829266679346015541247225683568955325829300361860420525680249968852279835950000585372151924038282951595641437352765369315356313544926799212139899164565784188303999108393521533499521727434178397493571977724004619566378455577374955158974652289486226762138787639416616680108912035162809461613644370677045185835646428682874038360714536537096875433797820459456930098364930689672735726123611821676802806830123992804426163961907020651534826794861174060484496496883674920267241372210566143253324226063118990761707394038283585849517037931492896415372531941609375545037493557717066727714652557081479384877305749451762420878648340920963159569438114155462276667659674014155714136087111889775777598970493854548560201321038124016849375432855205328812726659285961716276088878225277988152827179194571612322210538016706544609108217453255608421496647364472519823072247228602691388987184484938556868538064998765918595184567043456339194474963980436146514490889368688802375655782983942152229881574732404550742590113835626035522971557195616958799293617597525009041532182699911067304881399461150041241532456543310750557361864483347133360763176527917226338971736824264083584462566100442100021704362118925768394110738946611180570293525236101615091935046684767305979960607800270125608318465845845635601281040895683215217602068294391722825904815758921201477270522081107616617459229236216250236085461149974630926866117469745083947585002895715350822540574321175864435606944132147182630438171524917029654553630693477325739423630437368355866212336548359447239050477714524143980511597382486935215620434550782701187458801292661372583396232918087398250664840638531649742450490063831214893996006381985713245228332315719747288833272269239098680412657602463152177847902417887051683134931027043635594205718073846093863126880174417199345093145367029880404105554425527683318433515581608516535834889011365543749334042981393808452913966268178130039187586393422466010363149046585752959437647937917152985182429481619621493993177157275630164257467565544228558188714659411420159045993472413975285002888008079630753574544131933192054083038339278677781427308699914586388833503164201027526043951742185452510310854555801967724145358355884779468247947086334434818604347138790749383649196316438295757096694857636710859651621322781419082731592327390614183067947782087407193878846162264510241688081652897304927668826414862842317242178047714428443714858350927721022802525220070638889768261343991524491708637975205601573830561873075310045384110608824793452878313819446073051645417822131024474955955250533956109110348851385949171148837016430888869215093289160110898064239602028260385352497330178726491908775601636346180434819213417681250263696730323917848953152031428696988817142826241430781371003939463623380699302099412484555226088500597141904890123994505777142320459466376333146947414018353161244081785154882180367761553595274503117096864988524603592703118059857642156992955342116359375596180432333466738049790808748037993399072078859325949116455085600661095288262644851690565601557892148048043631110811832085512362087982576567206445386529230771242677716628533541347851522975470230603900088067456932797549093495424693168649175618158911566512529603816233088352165307904730637758508827816696739465199020720004628811594949417188744263858314852927195408429605243358156123665864329045186457637937194419833806695958898646839713583421110722362014872742849930686756031287516968506444089121483822751186387687583897157173048835942194500341537787801674953481839909382713014971782820308551582242668457413966418708823342831812109094883509778621863232784135200079447465441781894278064387550350023114086395241675996071206681006653001161972108168450868580569205682757767295323369312283136650670564327871823379647915049374862505258052804415473203509676477504529993211249744115883822411677982693390298532940522354532339701833288994031093949662134692399730076289594487321164770400083199425923068206398770060967619055759709961396914290060664355285761618279742300788102859927674693113888444211649752832052870551359521719705959842583208402232254040591509403730584082227968737907682484574021068615026938803300123522869581816429369680619658095667864497858641434103023347716669613575131866473454836582184759949661769811884429510354176625255212052185953823779598527909351901210123326621178399872480207745553708482979213920590704982001717300849846829068796509233275856724341740646553883339183779512701505684964966112777054457554102089668500701263721783095887316368477106907211467600760902821081115784841689011102860357698940758679777499353815119541701644378550388037110166122577500988977290189634279004224583723019060854273388637640673240308802530913273095521380077440849644761888016305356490928696917348579850741576230788683493169033057153458467648817907503939791450611481334944623606256310894178383741073776517944202721811969648954720078876632659328783409277049633298280601300652399663491978914595223350018389388275817467489332705247549900484671357674607782387338459202548643737822636578303457968763443215155009524874833755229846372386400440561467490878000583582277477269277900784098066630423341422465718536606555844931151359581411612665321483375904233348905698140772580878188473605718399695760497405547608817699886542931085952587388659764289278720831404713976162750974790275520508831209802911636226245189868090861658004757271244697011633688039415315580039658005821669862305021886880172300072342970114220901015151917881086206977118796377646937669766133526079541013361261255048264461419731447297961706295699712133527730895064021929475738234619610347334956686506049931942440489161584964586587623760074993123880288179241104973359428282814503706367430364713058529576612006842887351559583522222879067330458353079423691397914620254674363043083197107558973905196094849165067619406618044276478597456094752735119497875481288093290885790644456655160600517348103593484991963475267973838588360309769029083737961628207824145066313908511031331575073093829324532677298596791007937806950368247422613444105331528425467974498560449664280782451244362326511933217894102128750288531932865552214284099639480500285083083344777203606307181880817014754060866534718192697898908948398330435906953134105676989429658750744003245238081690454013916909923080846225721315921979072505668956700659744258149138788704669237754093513235612479467169745033117446038870719082409231266145003537402542671817612650497154767512565568656630217896176370992309538535307973697799218507427068560606622889900007739176572964692307285880472096960008091121837022701907685455645778183079702807598729864256527510483110650308725784866414626297930013587015696993860285842443288644665033039530477099285236192748601111524442569377552088245506317305934139686194061353756214055184358572615362999040760069909484313405415784545409643389799092755235638879540946947792260217876776446304426996678546467574652038366885439720080628445857856377560485716042434114401318539014091112604322396000486481883447265581597828094440240123684885859676929347049664922648185237364740550471747635254276885419862395102351801910337235173814532140745522264760007029866321855465571283438049774832115493183500874894119650508841963804692531464987154713895148830235133264973535520201612254298747487143474211494530980183632034405301611354832235197190670037250075362498670611672494341088141923069855103503379918735136134394641016235988515784763117774258802027807072428981823736939934624867853692267007642782590720567563721589736977944546190591878133360932050621899441152334100197690494292770380238079326134067279563056935908912012090637234750608733070762513437065430090791385417017155320598146739239849754968426129562598096443413984210816896939421652685435936434844597824741706470201203060801349879973160014770837531227854175526671399053384722677398651799161125365794405710196508192410475089075475685748720320185170119324465545972390165110042802905277069949704746589906109274899966610370589453078963937395890963661562132007136962505837040339845978709866516779125873775652692109740342111568538037174838471012150926929591224022563376784454227784371733759193576973968844968403797264473130507421169556694699688612575306205407802416276284746554106401489508246867753866223046501888507543105974145451743936477720049680072571320348942273660748304302412409302840772627155619673297423033331094488298913675720498284232588224158743117756393980219879938360536003923617417182784305419483676632797055117529796199199080714046859645395738759562647170721285583437989170792419715865775978721845655114326840765624172896013611455180564441312382685637389190034860328664097089064507193279991129707235793667422407863607934223871479005898150385064514916921456745561530129669450651537414301537467191228008129186603591550589504237502579182799422184423230239695112674556248164947655219233133182048314185495028092288743821234496723527329220078090918268553943605869528306191581762914730495890133076261810917578279951754001964967617687883701532521711376579671262027610877045152417483513551717462747182654752512245702334606344841706855606114289855880269410618877697293785650216452138671352084175835058362526305683221779654739506730143456666210279561941311841268403164428713628573607500091159931218768320322174216855950724417052278191867210789337274033673880941255769981851554542050185030161270730535350833707420401448223962882552890569169846985953133259502244311550409903017724494006870874370286814972071863486482527616105687783756849848751952222042191197901650727105185450863942317425828556461896243029255410707486363574303808111835439163458765737252970342898881603478638786051349199424170689933457294583721697498881688700487444694346689538106254663969793723425703024309004345632526153066835066162223702242889239814438466481685186135830548446975221576046865028257200463275597843371446195543107971007565506591580001005343736539875193245613277849516774350496547548501265058988339201897087137162371191771071861402138971274210987960908803379269610161743433768962181113235289023382270444730290684288519653664049497996457710834144656956640711079285580005640957594432949633948396860811381003972083668616503906876538673788375181308792083801009956038218842689892720193614263239532108106818023272126049004264854231683184172674931018620253245971937637426601151255082737776112586539307501513893102776923437867711519472926726402409677085285149725214521019353055397700437978303760453209928192410178921850294208747792659615995462922543629775109441794548223099547035140889129995776211023049550193758228085141504871391655985595977068414825573065933737965527100911281896446793092097198352299598887244882054618684623633754367978108845330283426176297014411931905508997624732232846358610829188337171780299629950927724306755972960941977107957261015713440753004174276855187648895894802644490495294217072209953254489021418927108560090609513839325633601217255881273069436555800449377001548458321053052074970184506181468310085079609969988177929964133773816388085019167641719541923415096437566235397340433729510978046961555504723686436871762887842376917727739338502328235867297692103363610793976360553651616263256851770649504785213136239877185705207138430863081774979217380736224685964286208427931206664703334832782557891613179542914659031781428622620313608056040502438476284593004264603238154335177529582461787228185346244777550965366262810402740966978926456858768816306503970121132004031031646609235615303779048329940235542988073352062668896805142135360351334606503518158100626051316396867174957253678680325023530694363731279483956332148508488014534751035019784546165148794811001892137903731105080361864268204137302818754923711225883518898921996090045911448155672032816844094982297052446261807519180223138964927078313603343918508196102908099525693755670772266220941940112524521180013100139118936499025280481353559268712871554480302358390735489630837057041574437045590725574683752350424696460927947764879590711479122663535881914360881413134314436920055709532337926940501599928934085691909943589291568017126566853431260877073593267111402978535341125308418467998405928128180476905379407397241552610699035301966456055012004078358269718677344149107837177044772551044996727504315910960385351814846771830293931399319850065708309721777339323473331055406130659230152852704141670117765432013050370271034043603690875783982932829516166982198894640235470334203714432287545133903568029995849109563749018611049782488328032865471024730113900966714009173917613794924835171965054903113624654158190201536480445729764435815988906104425484669828309591120025873202678894550747732177088005837020890944122178887879856832722758951444398881388598646889357063233335836307335281771287646058949718871828278453748958183065585922623393193051400347207613881295785684335730503387960816770886437316108287392011257688500631186620260039564098213565525824295729015598224529549581036211957841863023511393917937637491091691582757847359743378927528910989076168444150834514152426860308387914063379429088310300656710269484642676322696925137876307728367096392647221150518884671813393049147274324867542389753921919225204358064181580283281881718164980188887983873679629887272258723500349886458603644854074548237519595157381584607586388174292334383139388190441376644587476728404059596303023945591348187220536219207199419013697719084716404472395915819000985239991452442943099980441962291358874767146540106481317396122384520912235850563134019068150100574115489982253904983896217369688468497363590116325944745125949485132748633134123257427695325617845471526359537981053265362692560229901057825786626357122615436447208100104868055744190928682488109012778890819943155458183193572381147364733174844483893131344443661750942010880185792551685974739244403358099442295623296420667407859397563886802096881116488130732093457852057690970560667700254873384759063306677588143030544858522163581143233413802980215695699997774612183871572300826900241242713002710083898745020685438699787345721804922769305535067171299743275783971027731634244284871803162184643739986920779701890351577785619896473937058739515297097642719223492488644633031988723395455728103992415384481183806645463116694887340349036861086689792450016497030865602114435590336699319146969875534236640634027959215842046935802657397710602920527298430670697341157184308949917912080494710454517645146162031728502765496971051251091576166104496592199137128827701710031873049535415923193512300892388025157078748783295739871063982377458881790032934370234987603192314691471289118770502721050357723816454569119684561752879538267356944996493922771326266883306099659875678604178221555025168680288068153963356125091035062195757234185184398882409966854337653789021407682740056704354685950107927417396686588529629855482212991887592499807890912745343154549745348775032890752601216860206707144943130611810585702289644753088536185107391770794771767961436871473126542761349788708574339517907925440959974716159387305027333804403120021570131241618534318795271971740328631334571976677742094496887474280940958373942328372139865794257849714589994630564403874113889575652855013113221006540439673699952617676536492195878959678071489946138170661297890117702198818067030946542825980390868477502332729558950400305225416555987192573405700538994713061882294178595074251767613237641267210897452510102118965270692730488842400746838748918123501770987696198224993720530872895844512430432075243459186196715856050447650250434429265327597140921272527266861334106643024259407312722801360404628395377498734007564428783544333343991391157657217451051384082269866500569695258443354657830490028962101595151384659163850189280960769890857443594944785401093453163298172302613996240426645606946294498382236284149982950999021811215009783489864788197334819145758384926399639846069097699420968959885045208417937229852400445882437892746104907039041556552088212987036728611588938729378969303750294942886391780549286953187934954720738218013915311316467823660681213603876716333202946468209869063253842759807876037498940877198273654862119425321848746077888691337492996953103677674230420387788664067918912285324288195962501735197886032860102940454774495301385214615522179035877139995559770227481040518453489304984561133507848133752653722308133881401312590672778336923585327786257193585097287307772062294585578255921622557869541724869861479215421770641775988826917888072937040777645220846894899636761184555275039160717909608278526074961776942128179711535175113522008510321691525333722196880785459057047647905945794754206062239987339888004209885384341650863411938192331047889395773617629017282180724960621364464554274292146910513316574797986131647429881412682714248631582338827235241464536790602348153419436928976562911101716831532166391168672781084137971963644099384893682857580039799449834560713866471228574520273629524882774477891368335493866335666830828670980890194739568144153969628254102595629014720210319786644399164612519860132501492110634551237025766296020277170579856861261479888656329985696146391206266380205207637504316915225128659781810316344756208369299438055252809097015969149586033277917426766290403972002195414789127798289867451008099323751467767977882418861216481704404418012662262280014901696998121825829008916065355977805749771858140766261201899666139448449664928303886256932208010929003846722109069793959878971364056086671402680886193070647455722130515529939048681027507181923739122944854990217897196103511200931852087302871595523871366449085160343927854513833698573737014711944478160690487149367920663553455340836065816354136367933466665704400047748293562124913722651034441812624010534869459333019092612473932590526328871209981125621774625020575718519417800854488411821661443548489022827273457779807046562031904194266294743868608325147056913368952720773103269990958249243856374320917544833937826813428805992767696904865620004213951143973828451177709628295666160521650229424585998453347239821826384392704011517410444043644535603990320876513321108276923047153685522801081891465366542337221561930580816341014712994389916484469569939781401032424045063702404015700170348599903474344778376589559855522587916517771292362235822605333313047055635470120112032975284562805363262092152702413333316602904511137444990352961219277165958030311801681224139344605436721784682437822409161524195125247989755257317331684117378134834031549728006859432691107800780960435985259301869784242582824527519712339230346310277084930574943631823635432987046904986118259300986494492471585985455867658393384610137586909147857342157426634292013986640685479859546821105893706391923855838296684629066621811774958231720550922715216996624296591223389355370342513887738431223389783193360678464777653049157199342614327895782109461735655584152421666862402327798490891373790191962001046080661216192842531287967734623692073789783574148432836452164589853594362103122003686248370950535211274102063965536981484666899162006814222305624668294395353103273843216965676377849002931871835943690671073204209816959008588422654061423282572132313514386546581796792833650232898978704984935720745186215673179799109104546290708471278610906785632617703888379589463437263630812713411617075597053972017492826474937327275759676758680761087380172725176585995921036085936041883233496070312586334313549694394049936934509048310064383090812895563062708926155146452883390638779088184619093850735753796036933026651881271090371224601963641100627147542181048301093391212709819251510005438068981769586543477636448527678757066240114248063097503413278812051080528714875885817827883703932058851297923282005746708369932741206970126542378912868111546197439096873794097517423792694137725157846084133931279252497492216916812536867277394450853713122234162573342261909081213075591023153766251813738128743238968662277206646723705321747256442056509543254117585337115699035801026979440144077981444992270878091389742269795399246952870879482444588091641815352831605701001684843338098018654694354798591094530648430742293428380121086240086738789385683317880692055626958227396968914101020481524396196770891860962323605260954478608081806479017619737223691493145943869532966727223203902617587900359929219899531696330279441157621744637767944025339861107741278953225998428024451726277030936249107935503938188999403767099364369175405110583597475361677920978837926445531709643261605473875985899901303122848547343356687273830419347688340535557114790610560090235885262084235554447764842652010819727866598440470005278758884807133327546456193778828423779676180253435026738530777892709129058691159310776927357621837445940479552249099866156570420032223632792952642404656901238588154371304544071001744610011834590125147539409749458547878119073457523452436715154905886437686355690982037235330770199535153201785113860112290922928263932864734228587207205962029443071454898577178009326614129306257699701606112932373086456564099859086037407771242030783037123178605371908677567696211514518698440612064685582803147232357673177768627024909798055380953937643527416139470993065441225455682328437606450505015682989939353019839975038362812915778042015142290957475442562834072043362181596693076948749684163721155005389368081660470893191566195297236928638415711845489961206343801642971727552344798654134105205859206625279908738902748612517981010614989440918486404198162341553720353283465197995203926968976067232077788364790945855381806380950080915204376387488680023649717778940677283080000433053309299758575067538124708110859606320905198853911317035130093091878133093510724170082597396818482929182215782680472508082979778604782644135408896112742298353545659188622421176446082074469004771964263329018029845316733160646436674061804447333464729293724695627281330330743286980837108596702743236157253863909419305071717147506030741642414101273233925547184906926076556194257608644501350213315996397111222167093608772606549579648145199101877200972959168127055848755409989308603927979547477914851340657190349287261694737975370608939397843589958637388820570299949661056532777629789276726980314234422205241750757590164709470138304725119477327102772390354760504941286778141853288140390803753815307883476048612844067935935029841638520712217846421661804189593343799051960329885745722226287627185819068133439731090286841291993292569582687684761969516076249288756706669620510492940423074638281002164229254306375132860086768660673530594614358243292049844432006290985436146379381051659397982818777076825405891418083333234530875443980481631277861985668101716124754220080721830988804639743607961048953127355562639797440915966953068377622083085694040584434595256865986075954027417586170834986798711551951794101739320637009159681895467279979377594618198507162797627585150789454663189485305956355231597761313544072345170513032317872268195745055504845954777550367803582347398506914601743812021385517543093796238834919747860891021790151811541068492662489454711442264702939924295177271336265979668768131365591085729139888292588291566413994434348626043835304869106213154892732365920357055034330371747001158126575742381156030403582096362144148057802459341458404528344967707548851991888117505222902178171703506635686686199709784411339036869007713715804028297617599278495252905234061325331983476352743162973402614603008219585598979084704634486690800220377463633233215029163090913736816126652201149335170307869831476104275688738921467229690489973493042056505642934135326279850861523736440486292126125458743182612615204664095497862111646158578710671414985241630818028936079083674797311986402026582106572360325088787500987665790749551923155038208113161215859317965365293988291360203103625823655568957460675891941514707000119204556964666421968427806756560167901063735535958863773190650354527407244120902082966647279474710437398430092540045830515639701001618313149450983260795630050915559248673952060098433558195680936758841290449384205251191330339218187817179918749524983956152343551530221460356451159640496814096120974464551958440772190069857593177307665934997296135494217495784850371353219416746290398612142026913387317396943522099783223673105624384252535244976784395017937684883743908522230181606967799960740818625346004366330093010882242456159527784720301453543192185133554965584418791726894061782400576169510587816477241399411364823762312713476473374839116597300578065359671157236460264968858154397291108980371845347108334373431374426406522989844982399664018088389719992072529293746191590533555951194748533141973350101605852668328315704546568096977942541669459777965633933849439068033918149365558772477203778029273918680028017968447518637977990576212749193006233869247972619361652211518183909927068893792485887781200064152551410309215457878744948420844302181336119886509156682157123714317078601097804640533659771639097270523161730634244755209429058186251755720619101018534498150679042330945920664506809196887133458686749878767636071049623929578540718443564605981434869282135293363580421913075899479568031484273838846700867024625845696259780717740013209027297897415204736751011392455591526074755323595216050106766147043537857665573276865605565534615503615723575724851500462831921434849030673740046672090211267361450547081979634563981567737851725116446734186302055336876751449004600886761692826866260128599855127587129989090246429157153287317628404429370280224750999851659486534311604376304825601278743051004861797784605609444554426951569778295474658670268571963986456508727103469569709577194499244104847387470147523161865895364296344205401673507207315347743072896512627605550068871886613431377240226505219916086828716475026481703595026169413335545875316494431830529209205724707541121495141839293577119684567241628610103667146100678825067587038661662124521510195779711669922643959777681331274190926707481886314706410323302751773739552557280809886752522882430415467693676250710140956728727069624630011356917553412316805445933803759945897100376433309051952586715404742237387728989940856973477359459007560784103013732047390305741501454795760970876721800822833807826499413319782679906262255956805737246225531052796871083202356421408078271517850304799863943516058708362201676964709656206987695244460544115547124605091863575052875677828319505113992867331831179831717394469783601916586003626719700042851029094797818121227645711773690973075308871070638737617580596261614979086901540120760792864277769669962430403060607898267157738556659342417274707159045315156903592612584055815491857085795301459010568775198272710900469119556977648498433853716355651417823805938710208896874006911017416106779421241018586939117273109266010247151059364855484117841118585027343358283295847762574988326149685178534166640037463309656303737524998981498988233030764038465366920875247012510181738842693893568021190620506058057461369661718221586315835434485874426852731215691243905788959815038010636154292006140157813962216000222447611540534489132376238161975406237641517372777142356889684998490091079250896945918825924451574174430169078471647552143611468127015480808575449621231563162889934767146107624087854293605551093827705486525487364610000002515530240794925882992760489809990514568217595186188443025941120286508122053923709929733197885028450264544210956118379702241332036612626272896838935901981275765790806553814875564467384120848611805908397554884661487964426368836169406746453456056469101870921294104496058497637111944164776177191751131049811367887165034939581193461671511152457941159096978203108137053790532278304191901522825791880970084249980683745702048859321999655198835989564310037925070511728134051357546760466892413878247367718015277321909086741390949459864817786497291750446575342808947699531646739127681144486021890291241662542423118092581212017151615779921675732416334396504599469779536477397614707214263583344773219557499432986213477332842519115659618960769779053408190989363252646332574800530194393125672205757206237947066028437295704599751356967195202970953312307793119769313635152572601056491755160023392105377347031847037595344080328504411708890535584929355616589766327000251496773893748572298271589727847608223155460081587474277609187384153046710332806213004167836741237176160245087168571997955710226518243787569858570052564011509058385945397161403403392442554998256786157640515862603164210663667758099417899933687493706644637744152185209356543263252978286065154103622317467943338092083326583939862111891734805423434932137482320911377034802203392088322696344647883673670496433987430605179794956232521534961095604346134218545997400723855879649927317097280437811474059052696683030978772103076902826431527498218452881477884272559697233538118057386945772718443262722538116073520908073101420875937814349056206973134341665427719869609112416705472018744424669360667313486488731046827061409723382891008362244941706678275319237353252435935677836275771840996226059734480546139853203500126436160482758280990486972766635934092257495302437063302184804390828520581899863606559626477740460698651068960559469505607076940944399634341664070375873513738246624375847906494054771408799000589973941000650448813349735362064657003531550224100057746136002251832194655589656688507956970255151612998540215883159176275177766014117951443565320997809546482943377150865606665276273592489900037582476873441266027517219714872239073419634928457704610190659595312285657326899954893896164022537608302482150848905137198394961509980878724276821466104270309703530503336689392142266852998958457070458194866100401754932436319602538048321601464050185331448088046081751964884133349640011888777251099008709335624014247642828682027472993661079733120493185171764473136707497608760914690740576344880720563101712797144321253290777345772329508912814414707153305014661852079642797935166134598557609826768662448417220327715277105575835022906241997699166049051958141593171970408926615485026453555046496307925973873318884796780034507309753559220697444956428352576562861432938101594200848005457345517643446186965008183863953443596416265766879983825607347305964659260822886413391642960673158239937693329759655454236958732687058038510802383168845227160961299247685986991651109402878707786417151853112530225956646102208891095536019817519396041001600209746097047169273676952704262998692472525422906858586041075385807411889043704549306711331642876903792498966252133174441721846356695166470985802544725556306440227455691358314060338330106972832470151795095770618188071216549891542478338261291261926032306509874274073182229976847834583997768482994526421825464937732015997957385574029896457957468652326838994408431893866071352642216677240963920143586957717770985775914929946665320901387206718267752280562483688076585933436454596463508430540518572525836807664677152220669236872577693429395592628846049388239654252713370637374249216493507206125603238159080671948803226818220168584364210622970313595314981052674663219857533921942218834301629174896230638986972600536745765616524311848774061321108315133891194889981247690883349207593139797151831607583669617927856281862890346158026921235540759909835327837511369815391651487762237426216584341070196051859194705966851819222424571535476695954705463847252424364974888265727495297236067980413052450282666201406044983556716055794482956689580874482587795850116756822873911169285468759774662245318263160390208695017118100466193380706103137663372394378508418895695396206382271834514068326511835685695946157007773819578665569064649925469628436963958690327215233651672536449948650760680848203556329385050458653821584984591374530863455605288666477605039214556218668656336127234086806599999366672509496831443920441640697022518693447677078328225368318830078848679757161409170897988054988665791801504612790274391097040146994463255081745228546398231218466556674568622814378412250701867506443919908835826994271450080506090716467951101162026940541841044609355170546364537724340349533797467950133158707188110561624966345819315405289122722926100321549800152602655481276911495637861820747747206708763715019113777421008537773618637988261064691928813948465397568642358745587144721164687349548096478148274334559096775828841599092752457659867099731772744210691878633739111167914942689584040417528656567472088602714834233374223483394464256773022265914123883136596317246544055594505281354934061005606175897361559148010803153445883115889011102931621773943470264304873086113365024064081383864536601737360134672508374443714953946371013240518784222873469417964714071724016227509651651466327418396305053733694533661654188118225728621404882867705862499862804183088844364723081521691805901226111221756125215344037717314914867875318700440479349133663926963323293808509238334932796425418028027766186917580969326936479735609362525852025424681643212733938002064902387701420915332415733247578576250390679008151034010816146761667120037226751639932228359899526547746534155403479445211952858138289941707503445343784118425887081117720277073545177358193375662403388833085493514944479127152400420384266388970593389324263435383415854004623571851422723365364657782573513831055740567700281968274383486879360934797989665010020611429556861473233228992779478138963692131396944801416466010517898340971439477116973281029611270351090927314506642572830131039968284853562935631422836391597487267380988537873927393461628536010477534848026749625668518370372448893803593577835466972791826450399030179365103608099811110763310158137628906851469042587775891425079610337594608040796807860116500428692067117075818434053179905197332133601072615799237798807223238389595362316536797297308697043352144222379833882465965802531109460297948172127315574385080645584772502687469503318816242289531814533571679393885774844032373307312881949522661203649375726502730658234219407951415505390072815913586168622123109170574764501841821408629611084796909122887999033872052859337063194106748822261142848247269342004332499229285393660142809825632352265888866566481584195735362792788862098208613813762638376264437520387814493791222926626407596745107835788126772350717485661553904898405203341957857897798032017266237208918498566955352076043359315040498116482661449696742488536916987575455596575795709656296144564047893591393485530310577176366305411107036340669407098340673622507145606945547759583140493545354368678629732212562470037264732412930104191599506226081141535322906924244201286359367816993452653727059395087167749873173299805316319040444108633997992938239116804171842177094791134744097304894423092064999824318111827036973044560484917159404087994282415818607098081887033425956446024965597667245303716101578892490688302108373797975404951134311158122921319815412358279301564471394688374077551785075063791579125450616623128208394149371601417836709358850716374013487086104525692902282537389407495888379859189123784225720172607783073505567675266605372040470326860668786036171424896181349620036055037098514278994250527300786515938306894476059797529193919788061064394562615127765838729029247307649944620441724027539727406550911795478889547220362682927112284609157970941487052876555490169752317789658997405760789886305732320530256223941596662667510278975369099726282511632286875548477592584456809329210879837518084790672904855833686126417525189932401876914397454278162929308950019368778513071714584805946417431090471039444723523440362640149596135554388222797969770004418183787307088523365665254713052110811816914089062143473576246833639828832330706522508029221575386363870038683250870483142176956999785705226871634196953267479852408465813241350820047699328026128762703386650850907958988124457121106908019940700445502357843176581978722669976191776083837265375513624183743402157369928534371071826848174932470871501158163324655160687449659636566371017678432070612629159855382102184882945879677228795401737561150890052433780462399644147716342876504567421348751292036349248110477938379812779861989337737330774843072622065148253183736608637285061439593776113672717145984515007002783701578444894627824705552979689888515043106671053250150260483729048977098998562364629000053939377570209687304853353799704126142907262794681421551678809990356822068210261776534511303958179195890113124334529565097251520622286708382673973946915136295241874159463456732254894221791340075006138563864949750478913883801729119016546410603129286837322422677488325623489931581405797688938453725886954313940918034793094704524949101576032175219720603716290400927403099551472044736585003370504809494606708077053740851257231278174580754564484527499501884080907681232665693841402903294305468623251841382599176003016282281607566491401022978625173917859833190555932613350769260538160737031154546509551364842825202277586583647995441593377187369397040704555282139256558783188895355452739738456249072739050376490147199361858898626213341815444190927529855301288652412567046772394213324510091791403666811542696648986554705705992252722168596444720906843595883375627786820497182904701638926897219691877743388309815169804510837489400577418872296381199099576296824885449340123802096921177478593112640836613751375464146378044804182607486702238593209241633602504088457304688335086675312857821709217580131709335705339395827238273067563880669313108232863127833940422795570645710413599333120160847766642802930655530917174042426055705550723367957329327761710982368714253937128695530300453915970401468848979009339912508563976667002752034471962700444556633166513339339151935078380538864268089754570597836529862160769088805908473806967866717136212290328565373107088240259273973952884896036970327271364549254054689207613607400782508510840377977972788420334728023019950196627298528319559716988155295607570250881087818223741098035444730138023021920384301588472200281288412069853514576073916815438582602297743172612966666321505857311553500741692225794506183579511240179122812152996748970379100046183688950987846220884347270704509595026878479185295349404498722333769715669337101401155364977152642949843595922386685530378425615395587289011414909518045353891787757066076200597110474163087405232012008520226446876767580909967679967760660476348069549604538410661574883066046584819206174825261151697186067768167355230812418720565003022711250790703633543703988894382700366529675366945208266293104662213685926898315731363751055100258216751666883989808953829630645862628093181806180678736452691516273604214356688139882574466419182208360707481302266761898970431864079153185891230989837801179003003676987909092471924435730346421581954815011964569885628745938805181415548955911978708535138742404738437733059494128029137007332176629343899273043545418916619745808707954586639896629992741216616641481836847138914421270174530953242522083653849548294737717924619940422578774206291093526915413247163309674557332094939473446333840820880732261502721950554060664001785334604726595289002841669595457759657210571702230575553794770929926529553518921271804105634378643295255756984874585483723547423704733841556950755979681389272102274332312388785103871314507280472184072935251458305927766097875832358616468798760213071819705182963371352064444155199323503321947734298419655778727464339452340313527340401950582029305619608421921809701194350723029302785739804919909623199817651911848088215687258951425981708098943081423515547433382389398655170503769087286299337572557038350382812862073843385637524340910975865993219751107466605521976061951382686515419915654058515410206783680446222287079442745232826282594531734363208152036155188719497748547699802399674191536357234797188937788801063263809939401338620149733642917159472038611708704853364987099815942794779146587251252643147001097356398251075358779639045204582022847926181750396115441609702861643119851967116606639834760561257159287853782140070860115817493060286765151281251127845811992212736922478981153792246269676926441692695783321832614008664709578163950977837815323123804092903449843291183426845287953871904738878464355034926008192597237207423426708117028178325645943079601512626496437187026871819597730793911718722039868903155391725948816601416246760353724710259456758731143903175892688250537290471805156894781989866701948070870746937764746309971080854818416493387885165510098214856073978857669310640447123108439818904517631227835826526615850150281080481382418169199032857637715219316425945855355872314829243086465647731354908162192438368809097992616710982221079980890519909403732684619262598884250026714348345950560642835978273549200888243902058510472595183969304141305433571226418141698587398913112898322882110742649378791775894947370826631862411643487914078406451423752495248940883718112223580114676979782612022067542359678299108448308127112917609173223089174294041472626814120893030457538522570117782559787097648876380998145666706014822910076882827586782109197849854335526469142222848534713450113926704255315886225347461344480904848423395593643965642239139041926855180633353585556040808328656674605852852240691607914624656678460559358091618250319994558074575230401697953936905428852277137557321464777868141125437008390008596637362164536767617890193453033925490458137475284496815780632463577902546150701207350089896465869387515483879972520522272257772959215360989823175487905995544306963929595664333154947644716581013969806957798165097766532479294574955227890979876171448834694421869312686749394955387919866081600097467929978306298831503131838353638083432003811490810848767938971268568918205436798744676989757723038680939494980546002557125513988479218175369521962390070696218764526024551429663532241554588808326104431401030457532370812077653348458548049213628655693435499992183663762109172074230810908228184892463894555701163866864671809045360857160472297924645878315194932616377727001197857572782466093468011541039862863909127242409779704183907387003371076568020127797402510728983084297120984660516347215683635700625534726116936546509467131442109121228231855256021362309217002923173757097492900143728821680083292638044318817754567474887298876588456731554335153928705040353149863142254106344086724315019758891791941523254380737393313556592094158937988170919354033970493299323998451951111597215823224743534268425535668951709693196231002141998485744658239914382268388607016171915391092770366968708002203293078970960776805701210343300370203506074029727640366181201147990436311670160858986396430239816445261389017258007305135486511389437997045017152780989539157733966786639895631630816400558720438705456166100061924451430898615091425522820935355009252016480200477856498874438812813725473216543517906368279091022077533469874608871538947198819330656515214386061203778603214298529402580610509397688875454335691325009104041068675802469341416106578738005501802944659326744668894797957867284235565539002681405336154716467288513145215812434021885709662678352022099000251909189729910956819263168163308241613895733388326422880626515091636424267737127101228058082115931238152136718999617245659425986848538392295719390292487448347952724897988549867971286446743924054168941935059789500360609609956420677048674224187062200729333646464070456967177185436669165963021574483139500452301855145076831391363444218018469069346380827960287584938550324278031948438541981228615434224902124897293208944404826994409392141825409612162042207123825764932164954358991273384522698046230651106842611627748196569718252878078030559536526957267326959984675829712865954378050607519334652506987938667984475537516110898558377051142335418669897213593918336200561983877118181973507860833724291119173331765118886438674635129576552173778286659808764978728382365432292666134031194011750073514608022592843102413865586215143207859272264209415890257937040699649441709040283690705954047171495155587689637151391827433207845783967167218672240472647231609473666200043574427361277135181940625287356105540034785002924352556223552526010690265132001101035938840500399034920034589245658399819748847038348206801488567146245890909888456367991375178180335293734156029700338884317741882242282786094920829016797261482826337903814064838718082866515795351014907853514511472865513780110995841046058414840948586766368837516207936787812648723016790157734208145567626272872691696553943078875761965760476712321671329177719635587467046696508150243108693766311856338048787794175842799988325378985143402496634202436652052099470988301814743128872598743876481285990502753211599113364041178089496643926826024529794401739393058884837872345748930083149771717173141171824804135903042789117323808911635541549546371633096761251528769170305875764451660210753361625249078390742181369483300703548308534366215335990445075364779527033849742013746966631009337084530484574119082958493436444762783903638798597221644308316172196684313051229593226505040079636117446270446706106304278711032118285471221772600889067748885958828247676177362869817548579222227683446261614871267000369280277421247264444746819745933747387446117088953770269442496531966399264876487081703582542837996416815031865057434347944547968829112642813339520787725751454957311201875595471018877730727930706233914828854218778279045439118260470938114699095401391640361849794772077037017538369028669619363545536616550130224965152220773389133320912295786310709278513341694804177636190829228604028742743394912623664464890419240358258592866592248752164299750251549669636282914763840729944708414175438495035249086039539225903974856633753878062032851630691913848995748002945881485304217382105199899018315734996445028418597144142954814355614383547880864409706466457084349402352800955155272517488817191193885869638673144392411346757630704007011235146675879259245864382537509415229719822989520021485131085314539098571417877969589173045291507549123449430499980702341432930985538804003507948132926950988941625615882411149445115167373225606059554228999316258082974281140591889212064684157192376174026794348461153269832985108052677277827399087160009051252799646105613876327158133627754824470383859675338487522496143368812389911547419997579818882631832115191898711719468184938976359279246880036111582191491989263556308511354833423581287704185596233807717060014984465046464165322382413815800820500180158757158534651746749547771752620998226501136664441234174642965419280237386685069252108519888554181048860747422106327463399432840170956063987561728828223582116663132196001978237524356258379746667650668932912946988696068705249951339764168954033378955070225038305275528521754198128091884480622664527895423377669913022976604580659735230896813617037099637710131831903153825835350546604048605586524605493754628040670617855147598935589534377761681433965198069295834133676934344486515963239252070193396758636360161647181004591016902278510809913853236947172117962525806358676600364855419451167559807384325467451552576151962515591158172569514820042728974712487828983534001588873443057991693785228142183357316602325658779586392658081880727042716958183538632202278430806185504910299950222335840663829896741311307786051333437310597363776454235646108700841170539619944920772249624760485838411505200299002098673481716095045620882433167306531706505982140004824833577895547576008831445151846428363614916535465626319331408697699435835364132038708170368735354200647721952675821692947300462596822002720604905082424189380037412701031436374720145989743409108178436515609499742600306005005714422142375891869011824627415380632198753186843164662060031180047587672110185713837096292959688130481478607973123616979134624528058958505975545330522343354281675638824314734570193894921401531964750399339367765571404470014543358173894374000709312109822792800880562897373320495392520761939531690361910020615654912040821799592009960213333263612439551460879312845299764217184961385232070637935906062738494337064114583365369171631250517386533239434952564551914453590265216230518543014636743652018596001111122101605967658554089013179493751142845025039208449454001946714274333538514050970876477903089945046620327473475906824194610018734188894006328473909947891094435291747655111995030579731263977308015059250847104452252073706442746318933063956390656759739592452512363291986370380346162517576275294016642421658063283361978469289873124169978797597955227501302452815350687309987891081283703144921514214796091909824950859846090592155750661618125116286346047306755929940517110521193695327533290790332456079424648304555079418263518106095880738500235917567856967330167001938707417614400754887783995497435685828869311856498460118904306244330652458524884618013289534451516041758986638194715030574957299719095664534672996788181653625336543639623763364571146858808358137691951740349600645246908461432561768757355726523055430323546768640981439579878571722121879641711299488134649860263408222071111652896009786929666602937703435762178679116550009510646982791951758269212999269573601584316383913011631537195452950281011675545995539011743643637856889216604942141910713620485729847342319994755262265348219843074281666966579643323520627052011904788764129386025319566716813579311788322349034105368972274714534655982190145793411046346492664669436046063904963906888554063747596927466075907190976791354156205064176721164771079967493036779087176372218952722733063348679307876076032733742684864172693170384514845676762092812522380681825690292327952959723547133584632119330074182813865011142511181520830245298889803747566256408672390153827565872696817655448453009371106473718678370631099392532828078441979465588530438668732712795328926601634826987700979359496364249693175410715182980186269223571728717208309378834650548665904643113226716229647323877613811584700668724462749903177157566720546185700695171542561496815618630436142623731595483418146475448975781558125120684115471278355167802728768029078716310713684531918569747030858090231047899502657694487945722182933989719904583085623034676856859602709694079388189422417549651797119432227345301711709519396006214020274475958100577986443354908382891852276443109441991142653538920148311328067451331833255015033594812544346789436585044683557302093186978090563423925801653445788392942608950195953684409530579362856392531968175788652190512631702930950133478869564120886143743702142614565526813159895453120642742188030952971915924651289840826486827949825859055248786826177624262953462851625172756209714015199473618106816087155917175137258820148036183598185158960939374573585369834131198866119278608668941849887277471876418829611657206579304314684617779498431447008398063066714435905654594828708471582257231498824334094482496042288315172756826735232815273316151160361673708296659408383087268957853060816470231084664163561528160613394482931519124908849740811555867815355804859433070333903712078377467915527438169155844016877610995911415272607510294854025690125631122656114987354347188739414138057743483065603992725166914467250665007796830827491864300588668765272071946327247603665516750521706504434630483939366025102392549667393249540462868240662314416783045637671938636694468850190904080399133459840283158285759931029173416837927047541548440104824764037569522824402402115720525553545588858120449876699657394435485655869596622409090169371243392917644073768251130123537383269938570252601152373649623694003923051211597497739665320551196706793611859022858695075954689794851388494350786401148359315971073796434887577651183750489224873442989071383457409145383122836690035176920923660870312758991141549222663244546887436111792378388771299609027014463050680029925383864974383754707417383827545699564714919551195977742706191287550514873785674818600289023923959576484693594375906050803422930142387671289592303206589315364195895364840986444512783856222694779271247837795794830502132912839318264319546225266573691752877103092750464735538394091038921889755268022406806103647196099236176940540851702118095939094748211056338018222812615004875611034755141900527955126902818321442137535260741352022154006629931506530877085212207093141276727578442290482087539844112291082825097237141626675884687986874175712622862182768197050915157631832956346029993449181955749878016470300273521593549725946966936111072334774224049826649743660002808899470054029397896370636274516326665940216579609680061441895501791205218565336446930938372115055114055190073834944240308982069444901814932874258591633394699558093787983670329907990120582280783628896783908339640247830918955258348178459918470210498135947760285695946308947269693222744401278841365284947823067050337729560096840912286800048434831515210533006165989245053775838453922117081732066790530020287133345302924855084116651619522779781603799171396561835139888421923515840114890695931382296305901234884841297637359320903817624739853795273780877224059820195835489250584161637864451797004271179472728609394697604594927773009908047964659808618435472711092546712330394366893529686324315293751468897644209046633461039581750760055108266535498192457402744192056002495137531408698042036053409550794781956063964454717966884274112865251678310107125708990561243270402240504484068043038333160465840287642111594939736333186009406735985097347099520296124869419762350869890097733487463722121117307250892725542931551397960968633236096228489580048634748984235979847151528930436451280960896694262401394899196326517614930791679862997016133974172120066637384511627901214746131243167280937780451007468561794436001145719916334656230388577856952915529777729646327957598047590292704603298671196433194952563519670237024265343858134520080276856167226604967804724753607461879526729642316823323555164751457738019315521567642643981907445377317563813994334542621594127684937649111453565926761165597142976505294936082925081627040784365013542477385910876374264705562853779963945153602378338319359087620851964885935003932401071552231690018728378205749125481149184369952459819658836283331754566143831964938174456474391452467449556751345660904534677826507628348310180827665929668581521964300396730843707416729472940141319455648844370547216984140305213411828447665451152564853255196547916329204561320671452196698105998644762393966154957951529859407198663985000356933625343649118627535385594371806120285801154644697079363804019802837733388780659159600963679144490990874601895864779659746016767756145879502770115520996823278156747071127918831643469481652102164174406971424855430379463297260339506980168725424149079283644517411816941883744102299304291331086087835992122302725322599974818931759928151223692985543483537828001452151199013408412243950503400864068217669602644183185487318171780150207733467822972778464987207293061572807591403850521665263733878058301432029299758242744196402655667694007249006356649257060764209309405492763912744428578237046621283034691086464783391936095175955525722228316510671823489253923856362795914305321915870822369511407884983663139567125247282062995417822656965648534081920937770244837280394760859734146130182920091728416323693773714081207852124834091814775009746950681109233147500322887490963640049121943075546970529842818245709697434980964007292732722269999907485771994258636443216044445350568389810007662949623542370144364969892396935587366811645942128769172707798686608233856317414215135752737013059338389878707538247910626970366834242091138987706661337313937706274053828630584172231108227552767495438759240190308178370498417935403914468058415221254983653824992172310390857435729758029710116175328184272716852689863279143137901394142456366369457446482605040968525724024492892224607621515333786626876823590187444876744242483268362726919929982519102577201927200255051063613655222826356298794719329942641390858356297336142554905188240970871845079723701166158215623124845037232891081987050357723686098202737836109184029061751451843065706047360972146064148086678238069532239009779697891279565159829127266940554287928296279319637307559047119122276576264276515489589634064231822850865656326352133649041588310361248263383919881260807010596871985212233091388160383029137903014127347529760284109041965789149816985144071669784439592004442462450832883211996065669659679823217106968648708502831933415814075849455479717697736158750435545900553262032243227887179915768880483257010479246527291475738551240460530107800883821517647143467208963892750893290764537587584414036195437873577331287541963027278553670732836972310884362079097613656838555724791089430603400181936188022507555400474537483341782057810559524413650516763175368716169302026624191351149974841195870053542372391307284328930957469480599421353096597637767434858277275178853939287765780319198927678775859135047129174614585747743876200326298907411406594426974231014607663262052106606415009880658185472832784044995003768614218070322857869130645485391053055968465295782089288804257803879692555532166675546713378641906000215454553754672155501066595985746307618410635982551143873799391538724057467477072109246381163804138186660613318856387915611382113692887775864697843272951388582778956145911172757401114937395453106397791520317939796332603668659207123460058234031985883982092517222277356705425352437677084794672080498735053743553019652080919928827987282572607275203883699267674642067729435013649870402719427622735525331662596493969777885954650477621273478774140360452370284769811735374260914919664161106139383572188283661039722100151236082272453630084514591491734550657795693020865738119427299406782748870144249908070034525737984897865122970690664524448756171719378955953973112982202313918488073870241274299407991445189207206220985471165168707687344349461446360098786252232636052963257141533225303674721177868134275302879056663514046005024694921142286044241197601630656703912582255683312500055347502434032372705439951719223370459692548885406191802567546400458333168317607569773529894206331292080837589928090717516719763851858980494406518700189771120626888743303399987672251469596850457216692886127512448397333022606054105440552625056028857107884335947675928290756153636230609570021870481891044180066765441687421804624079203244995309266105758968015960814980756824135719814203039792632361439172482293822989951927537200436986517510768764692319230991370977036654625512652483273522324571306646234125139105603168665104396879151937444624767736036370690828147078629772573165632642760042153645808277161018413428169322233240798504624710450933657973467662660811053224469621638379518047002520425162343141573965838048272962256815672583822832720839355951629000551154452313249082146319590740364137494620843868927739033771131029836817278695773082412391723154883190299407922461415033627009434148184582351427689077189797440018907298423463868625956650821384649097463577273781690520939019424049750199287019592162318689033006177780012988416539335780848452102341536377540597204048623167942808459506075937828554236958575222184952597055662739003540795141885755667373942902545810668654519386288407633278319343864147596909376786836255923442062912242971508901829792714340508355685436491889581338639732529232127555791314929420900882998579112759265357793037773143863264798742163309189031217783872795258911307198138583738614212332624641013766667835118962250517953789610070137863597875541604208849653881421838037478469770558134677756497127528612835879959860162638033842470856887901090265941522673225146103047912974007746696335622941824832278706618813817839691483837039082102658197637791064861840887758139870050835846429150166551402913844753477737815299638761972252673842163332599074250078868357513082468023602856933140318089445931973559108306780926595443083751986993389263609256099211905758291355102469281930302982117154501063268021012433487488855305913421499124417482500399747130576464024111882181775300158633555875225722365235554110252665792744783100283002852674054916364512440491293861632632943475749630195422299777634100463240431910691403931608577832982593897390341253588969403956931661329558766488188280500399301614393871641719803424822332187615157040035633163744706983768212264704758931259948304635306346966071668944727570047332225802875415312856026977331441380773641996683118781997850909075648639705332835487304707693094944218585390001483152607274401878083772120411882188214225671328436103844385723328976333439299168305998926526652164119096820545436959528986176608813415769032185893232725514628222552575084776652170609699555434816177771842618546170007344509665292152923071908742523756781390395674839932547730567738115247671653031150230331050560535692542234922987350221049108243232603380428356205905275945430921775204721733408211888508965521140342982565572587310020982895503872896509327881549160891801836074957532914674871034289020129646893604374365241078419819319125666343572047521699366704048830470985851664561426464473944315376963738598540969961974769518872665238929058971495432876855543056219662582695720386254978479688443044088624975464764830684562166556132540221963042810085379327304654402451298569701715368262394370393679662286858423161722016498168786863214169772706145641967527581675859624414756971144779653136802036134529802447458264901635118339436697655647889211942210575918745381677562556089050833518793044525248718556773027006400865212486002215100991329907325716620963597171137168355948291635305882072507399685359330474671888950214783736273230928784387112183000092587103097922552486431798378150867647033946314055545478384520532346433725238765617994903348257312982468098290348885554293022355797046889647405111077039651827389492581073394098132044017881244155651921201788405432803036271482393950615014946961503565159304384891156268703134913177254452773593236655927288575289858660833194398630940857653075405726261672561657522168639129501364436570513550474334929470442230052394638799736229126593567199307367617939591874790408903571331750292490279964636303544894405303867479365346857688330456784330055464546321105689512399130271909337216966772189285987325368237887422746861807997267991878078578469738896598148439199400139671661968458305484482897316892875663087586922341168447760837322890178206543082633419182638143744738405696743432277402771261005207091142253373957007589957673748849656340740516337196610034505212128261540898381328848137978010252494865171138580953462501134445505534014923051045547355985023553082038767349331568926686887280926974920728786956750569614390487433829059982171941162174356783627185243037108428312704939643127042553156538257070493956508994124239061938497021819853564041693721940254003587718393186056490136938377277434846986502905636715894074806443041955744705319791670779395077016838284132651581790937299225787364552619709249154316706622825505071486554504390666674975393028467753498008097990657208546500964294116881253722815231328541653141089421748226544867452720657111314270409775068644902291311443753256890959011424164689378181657221210435017623706432754681982108661230495589967956008102291700632015331199239581803769899278378289214669334726579730408867325535550852941147872327467441584572864135298423484299849138703425085072223017746235354922508944508548486033166738067259196964193681321875960628308610731550418519570312279994035746151198594996278817220683966182960264742520202710959871142071297594183235934807336372221886596799743939231424166189480616998525725355509939480734082454786891524237105421646005951398704069121172328830583456673191890651216274872096043774771130819043961889509320394678694940140176953560455852195336490253286780042853359071233292373148685211685775701652906837704621425145746766536201364306860170985146030375407094209745731779088006724919805435960472091478592170093044928214939983281009399541772469732194180156784606789066844816833965759622824961708208733536943287175457639876883727754190521855116700116424321942533461305573337351159177563773530184603506777221102410061983454895544408594153902447228309330753354006288558041523153293975140685837175988617800790691195526579510647839249161103671169855230747387625181745664801969949460036090674627883284067105889884061452197266977720853178987865173868719685222013798577667752494027896528860693919868660467731428430221565166818754548886708572855012961342175347977032372458204582486428586122930223069270235506392364946382761245128295000867616064082348405595701057692956006833452470375844210170437195608311379914242452688663053532695986693365573496149497435580463668517102426790998958314757958663611483970776838249035630972682209763773653091060774214277850334114007910535978237248706698027415591858859113551427891905949901958049189655128491195470812961078935709758104825902155643690666701608653622504291212691631058091602221595492080625092612624976515613274278076965551278323550184397453861559433369647612741056226546177438318864977068599572157584925221763020898882855135787815978463210533173156729386324964468565835747414339185086844483580063491661346400162900002805107334917345831215227570687054820641385357542858690417987849892960861244724090782988222908647343048395058656102315421229557390894073630353291622433985186757671617426100850907151243196132756587097268792379491854621889504322745710288368925687444440880679415093540100441835350180178755640208511131233851380002424867443127226666316849734144482178583533578572153465186301788032128391081932741990445741303774381700056144845030743520497817265941504651648943219906314959581277177870736114615201897179346119180580832325148450698506116467962188396316384195959135159231184783538689137264004219986953614312277598434424159051426220514666732808716946472157011495530475781677678286004876913104966835162543278283827393129122349082049155641153412564940897275121878317679092772712896076981505623828600761846038780136712353849789677577000077262678162259743013686128886734449728785934250268076427888382657077254115473655618316009742359435999759492848478722311524278175930181228035891395491295604693113728832700962803655421864649399753681822855010953007771021410814368064548250596494992333072740547711980406866391853829057554407867016327010492939753731014081186418424664014571130885286893094238926997708975294634059432934509017416717711147312286320667591714588324499400906365909334031170348903084869955577417352986199865621192908336461011610751998781717595292147184061825580680001387514512047309816996739125318630897062149433376907033120418873228415841924157395729436874153208290599091676551849435186546800961094522407574496468715434657313940506366699574623616049475225326882296232370165913304337950370029925374010789572325316337758957521984604217371315751998824524171391285919577009836517331957980429606700353597631884981304595225202352309030179204887981375613051796738847110889422103787494692710504200306625755985454626985864559045701863992832832935217997238830912382132232285115017377095916287142837926892078609438887338024217286970832875093255428714309064947977464614999999026224225182621667416223778331378435787627391990067709884384881248606817405971546835564882251166330710881229854249591828809849549426050611849416252625327052397447795064151183349980366916614934111000390907919088380348180221866394928374201823497461105219729810314823200164953038068913854023810726432471658986882508226108584003627277829165573658339886306970205057934133436977923323624342275144914817269452515229987970766739927029259754180721824708626761489186144971130408061581814157047519333708905169896810828705449717062507889492659947497456643943276516458915953051982574017594274384726776104384057988500524101272262570180406314456756257582971311305957141642409738531248029657418712563452297852540023738340136024023678851024799961385147213791155102660331309337559897388972832618957928423802484179975640280646587615388154352445407248796041726059981429284756498365068765567983000248300753177494675011423530960815412314524534693621503748959798368312539658814050569753146562490586074434175812951574004246411974727817767616277053930468184982811723955514932341517642556183156621613612041442793671730644567555055232139095448278426883237709026465788450963560300361823902093099771475598209414046211988910348947837093484097337736548455764405265378204803746544651949439317590717065617200764093974604612827548956899982407591454956826910195582531003546974576962142153485813658263980463236755449949979737894964421526296470847246668515993247302884611064535958511083063057662504550480278329917391567852786374828247637926002049404630125749638308578629834877261997528957940300747231252226985181432616679356598188945550661818440533950115362772158235335342054196003327344456375566583233490858787374563033389064958441408337918341935029372201317847943007961774876534257342751447118962643728282017608478477006731842173561984463750712282682975719064500907092834509714325960429035201214630963146065344111916304347297886169389920159614918760568018461102043201199510576278207444179262779417625137249770038003357016746873833995159553028498345246912417209472285465195747740481997804672925748553026095419207567429310087496717973613777379266862302811731445396087122631405606752745406703137536845949023211270107533923318483009207218685328559388007551659358107887302002686790768448159436693096017311318310737579517247478090597992310866391541337325479234814419314941725880282910686405100847228530759852406797998253355304462386995239437005291302449455943088823605747030697919593665193455209377086720396420918179423914072203246044251202494017296054029315003432627505549520123652478845017119063014659919363278660896152977587001886251691739115836006522835547259624330634194030501703481734786605183832803831931282638732121021053773852389874537149907350340153636680319070408554682518334337046681477277914133778068723716800793770786115797760471026078826127904598757982700388062355411857773887924541858994419512217916750868362037163725251655559088396851129486221758290584366558127530060843049513142777552648496138933396812719465535620177570320833952393017793006173343766598453030517022328551208125857269190534256036934743509269996127213416309191544179583418017300981397124611603939054527150458396122204583905077306560000483269699201697199642416779446125837416798668860400834864133654060691545218446890179240630595473309942970196575423663983048929714276922849691031797469285526756949059106479929503983341416692495960634879352628401859270313653890688303203743076146502263109112372467282969014070798970649122854794844014890728363406065775081782663282553167041700443006939669693145598156021509551258119826846018080845330848291822854474885160713545871005720742069002927810764725139757024920199807317663806914742131316649126771220718324571607452188389148512674551322181204600552980691075118805970772392388350112689491089378898095760984103469299388372610878840454372109610697803968790666576986381613129122549078317964344045171851282488490987090548394682129997171296022219930036105580694205525669662887591764950780480950725843891714838066129964485634019690886511591039707013979607652151339276377434117489199077420870291446388853997331682296328652204878399832112340528057631392135727271103633958911712416557083988787193151525510685993039904867610703352716271163558588930689704495376385590929549356316310096831212200904108915063145297569764639611572390415448794572720839731720689885030209117818101447027525160605696612662385777399430548096733435739983524771096649297561537263763714821020250341037057639799226628154779766390848636174520487567611214514516562270406589612951330452945585153344675699614880095529615113437605724561062252839987603006906513314293913101909058633548315922167041524878636284180413948714184942787133585521249623404441449128343285365596537894366345271573048285664298468977981556055254533140016315928828721861300966363510152588612695291017674486816220161021639885609575879387572260970235093982004204099735004330777407860070875090093865769909187133871247469637385323190056834019092638562924287297580666953859613752581204147140139552546730218770437595174808017324715417157830904424471517874983150978852269848332806134621354624751421140127774472216674791118264937946253069433747592720003140944233353184594738450537616463368811342249257993070110734144805257375927512313004866673463639269826905892422636250117671663152296073354807496586312486915493347398470826548416153929570381771063883539560826960015443052155841793484361346394431224479458522343257359497269658444687087455793066584161118916950928869500407136673028017033158957729020611177393253662655393284768118535970598685493997204877765008351570074934169067917586356122655870869823930612843854895073617655642953968854981377752125303272704916028011915787354136102202753249295797744103902499098256047844036789028296960446596593871558544217823355960199013448531605104480513700400443339555026196451392822765827911341259789653938517481437437077061870512121334077541072720982673374222666363303364045919867423191452427104360950453588837203860053518131096641106669639188776970936134863516846930983774882784569839974493367654903128749253865966299768266303240669977452181249810806061340944841375912180021478968957851848073363095092797213064965191540856626237134931714455984378233702510020602219311124533289702146986592125607534648360857576311072570555437421597211141224713755994483615235626166345901663254810089095225069986068555507445122270028624598132275123704514687893785689793983236006722937477780164164855017719878904737287732981437710603312644822755339386484570544761523462286687147353009717522874522670802778233607636473270604913129953415486935054429364753718455416007173689092706322432509643543293269471851890989867448894822915713916823412503490453269082212551099663929385398840128915170530114093274726244875944596542692274036979432724704029190240518696978380648398918577230992765667498963273009391739298908822299735925114983814695911659308483713123665268852956688446571395813584179955150181074391996053642721423036684873346427153096539620094229675364418828980426072265871404233689952049833110450996834391123737488543552459776335063816958153029578010929686161265677036583007841264275653573815305891029890676241489316684832767485276034186754463366808601994483803172512247973205541024784312600343278653290689516937882647631425537180065348921543491059050920769134098604627620540691891279444385160389751799896691151398797465089579454074748492639533795550558637886094208836786983681777557588473525735504477823386999812689492823961326411592498557013323515292388619267934202945690155944015272454732197097833129818590515698718992762700164854672071962168211926519079453096055537435438206928715567014383764861931611816887659118811120204859635338152806648220286562573154272899795319300279790226809762491337720331823728915536507181239637729079269544375444584053612525493107951674854759680562464813396622469537218369989753737514294025151846590572524044287158638498183000025172726462255797716226950819756304499664249198902283965339326650774710925462026603880432015515639624509373682667153969048669092311005629117253420777875221234823637551094463753775676708831321535082651314761681195919594262484831760774495415173135598324799226246785122241843405602789012887368784382388256122948353640641619605199504757371101311344864057303853669583337784871604553344119184441306368369455746005862646171443623110638206111899852459924099280158567881206679447715966482800087218469652540554240750857507697446944241205284421524530779147143272632163707968757680434487032945932616560375615402728590211133056000394744951242309341561362932278124383626128274814127224699537193922823519048146726034847104000672168554205764452637071703002242747591696615128679750203417074638872242786872390680161189190529179331123839500324600123281574448550972766674927536806251361842903288531207213887780419859249474128739738548944756364865245757867517953820984598342822126709104932108197972671230939817541316886510926730485377299056244747912922581024212128236343250125598799453568429763524927602589160870486247964123561438940065624699124184004387112080064065968347447905343945012682112779603732280500926868184307720294587737209468569528663962355819843995060540377841334391836900735748444634346631146415428814321943856453830632678775145435381229598131042107952978779903280716282946014206788179790198439697759349323326491345396022264759312741555968480493601385595423728612825705357503247659167278060854062944921861873614840499310630283528507839148556656721614761316146154184804098903880093851546911743831467107288840847190760432022319860799606918231464124775350700908035147370095701517655847214840290502411752679613777891630610609698097853637611380404591879513816323579296728274121641038424277615699845947466301394941222518754457360707679641050460981160780858784651910072383822364579644418490605528561193477979336964888488348155287308114961497427446110770775430489527575208404193891237641425545462643220744658495958388325929686051846673660452408291131204062775450077702841110757275780747002980475928221473376942815273247497505951965587543720644964474756315333420426533243180456825811888356777349167732488742988572421052166625038744103083421906606453905191301890765672010205903141960208989528561114904929154947549031675746809000256692454811495052315630219130540166021150848150248159156540841446117032790015439167771249508382407654189831637025395673322757660559715634568655145377049166754715482616914823828699788918464280658250226537196984666044114796652375726902416041387741344749947308598054243898249259512277214825876244076907819447306597493729339927845334926072547624907442924098539157788863178448862800652565586825203664645766680675226497016693721266076219809277977050452899644305549341464694019285636913533540965197347823018327085712141692904743572590725520178800271891840045670878327742268892923500331619991717431920019792635800192035973826237599861649107552852285349966286574432790897153758844968167901759927285335718893782342844309385706912054900765239955540369673757639488416757261295899346439592860892305695831316294221836496894502597253473053179371274178071855394332848538178437213275918337209792948414370232160608805890989077729632461123513970632823796258629473066712848453542206630324930950818131065565097879903036220065628414122626971298687204298358063600884328052575829031101145139877438442918344869290340032571123453091488129987871957456489129414867557510690871384782391861205352059421948027494145181417251055122169426439667900627099892261954327500809697865308744118113554025115327921690641331998932179970105085386770272111481861405098259570089445125277810586161808585627907141391204677905392513012183225725156456446686755821949766788052328450505448465145451932414258448790477314741841054331495744038605835091364788758643340297866083039739825881786752517319194931030362213674995587061895031009216034823808935775306790874590555331739513907731854765835139562195728573403312929800864917394663386067739757114113886713951135378512746046036030767362351026447788072778830308512795111213498112285332224208092674311531570827112105850338348111845075288651478196662961441696761275989664348973422112432978673497406371557438487288680735167038613453799169954723818643666121128059327807294279127467180442796926972170669948318072983121523994413677691809022832796713751224397721213436984541672947093272639790974174281966530855937336592585147929987485665616771326757060057486420659496970099634634800682803099712747617304354591107038262908445854311218708051644878702876278692772038381976059531145071088467463436632373204708485506071579051626792835384135364497715301782932261393021232351597647221587098013111700872088957645106160163649678879854606167916821259451276666087010135296220036270902937517541704362007050701629381420557241699153525675400413553685998568480571101160617976187749714799102891894252621869395802425322891379175185075974598631299643862191183721293125692424432009692201685056342027789497702282271711175817722560457437834760859506704210777900587566084622512460678779133942147572755137990676367153465889193607264627432611317283532482232632934869444974088125600845698996686209963431533724750914764467198757946715498563827879392508052149275144244108427388766559844399654495457536402094051673426262613398976082184961289994087559110551989564963620680510301663271779034312877949614199902728950911365374146640732145118065001814005359053875658620977683801207752410039344862793504237229210065473063282351351229353055660744551156859154498001845707073318603302749775089604451811007172740088887609263963037933407237800771022495293952012425389474284855600297217132901961707912066972666316953815040675016651746135064677993589987507543111403159991514367254863839691546839407087816276914716265690834825385758592161829913443944642897611140133415433271384382665348085213496936818173887116242881401614470820748185768131984558194250387897699130720940316073841674309309915943757179251144885859593537969969655227209442439851797968343455766788445297200830905016632213790936035793586394837614879129472434872278477787118457685989433252818820621027244326289461870932726560607349400463679802920996074403608315994028308839471669492127202889278713272399177643364531426097740442005629120082055618045623463369976504623293087660333122107091560703979664270169185108037369713849314197480420591746891362784912594858656525247546544511015212643882125989119886933160058879185117909128916153546833124580349816678073564707592653451092723193592221889621180843117846668874518044921136809394499371240599619048805012064732738281843177551486959905347440515534427906359838788295114859307106893558844047486538127926437229176129643501723012403538969369390959483676046684737494464768404878982725425473881224387158031724820323214314608378168309265972449096828296912330219198496571575592467857747061788215088884908995199045142853278209755983073683960539098723992934848206078182192609053326719792845352967645843608420049606220797651461657312579411039725368861216454834335811950019127258555246104937112344459079983407104101758236149361472374090571759586672789245433314083474252205968242451744892415115370984295566647711951559907555466944096339583927525076284139884033077999493335898479986003656008467386697296909254993696408456919680202675032554381415765307623425903902296894373086636978375089371521002362771766042464256921801998340166706943888167555191523290098353738843536273781960476677375513472462677999261156544536943367236482721594746517928823176037235699738105195938968219796014607236502143642283843474436858269925227047485691134700303047425704660158638511081441380620268872353952395426887379989772236063596089420455807932596382984780112630373194022270970990832790761732178685669707405169888832915493534168737157487065394318694192871757670944740815736438269091292421887295124940449548398073137828454119762432027399706749042215240338499915972485097851496380471938268046850984471019041590156709804411526244553579386729100107546983537418814953991565155144404229600094443408179172070449719492521822771829436958252837957562369009483325450145503668826055262218675992074000097883093450356102191333382178770095343850356421416683586359708551080838054486870137128431161313224331912086862185017448351011002727063688114294673060247492241618697640753801758266176168669951739940843317372970736675318766583245844001835894464322930226865367647399781129230194607920271304597591199398093854319218326519275258612579669756442327345319199124690011286911067689324874451124254732246330460376015765254164732041831658141259038287349009713766266265956644787295723694203316087606284495544816736517872925329025015469775297099928680981325762893131989175059759913804817844668723770969986155051810789845568983563208858679908323424704194469254910411699944447790711289813652336370010477647983150468964961141941711316780873749536419019140491134506517006158303677959373143392267580062176344711971813118670159610726639618718867204561934391590145461740119406373697618283843866634426049647071306873009680796764180793952947195753797326781009889291616747230277041066758750901718869711942029789699018812082957920985514808190039351266742320472000804533592675162877529364111953195737827732256754425597992023103559311590289001640103231353944357054436662259148932923007706855935940937090607233266892797727431409922080060663020580326025977357624321219802085496132775099784445778926889198117457515356707625895432938709761204761609582153336023721323388541470000847343865923009091077499282150870974249461015125024443541596724644069559201657166763857748444079548814977832822491680705933643712965839233786306477250950397795760933883242350974421465541279962728774849025249699008829328624404829068326343237321814200432894680918436230031102355080102506288220224778972902891862434439681786354193042221642728401284512431777915867306780600636102137785926908739581574617238570397897410195127865093772898995590163425147004858904440017783337678701841111079559544636415238855591170913516352011257576889023749774061129705345276247369073715793001802636611980929308277841650881937631149864680248218838108041303823076260216112302063363211185044798868623296092161152488971080891696057001921501421008893500449144601709302665711190123692010623617410340300068252269647828547209684407135357696199308559665409467459779913597995561109711466457814880681490727473145875923356053085670949342744113087571349214471069261223247452937148234489404382928764089732953323575007165943105895783919281322701968419807735945883785721502514649752141197164670399300295475375219141099873977363832366105428156361434889095437658721819908657509732451016826349338431249849746820255123780138647610099557140366126514476269464118699524192063902584313314735159065042187937485286035334565158526250988264724783437955398396748063805055624125685248566381880299987027556442534297022410794104126629588653357603739625023955672066678513531482304111815055946599065529239207588782215423586293747889390393898705625804826464758378553568140003885939887368246501701081698689483779956359464049258369375649937018191459705704006289854807765909734545385639310783902523055445181430177454712242376042355526411223301754054588997535665373207029516077098859516322636445615286751390224841373031556655479664599512045477351672470563986731948532003665850364153485863290186849548196395992442279824894720327746967215082501187930761689695573149939508823239934814943882432307210538284762274390042254432164495549251921261606992374868586930427358983259794629634420245644890872543394141130770535375382301950997495059865350343470465840942901673887302672921327711828098587427538151378696275583237549926993261128558677833703673251564998109058515893638253130595130466392572783194671333322718798780431796568170039151985090877076607703924144441842664559580589311344543464691426955421113045807447164250430437329557311345666872827514505069602055890566009385482342123127024937444802522930670910381740683145246246280560580582457022761154730993483742272736334325424586952399850852602513975708083271695432086936928518429032305776535253714615499595186622553205919824718509292867913180852827129607293240027464494328616754777267273120435651621259987437224820138132845705796774010698430737540770987099256075032295808345743892504618061552894241553512622516336500496125167281863704029521602845643253260807774284084545021701823669669075890347556666845563834286545833903456262283506948531884882661288933915455419948940898876279964578951140471411853978715085602774191881050846253002958469283097471633758845322746700690095794207111563725895905978537184019610111319711618823518220674402847462940992633660742387790499046819426574406070189951288278693798712390914044858268824247045318503916257392221729648472290380064548277557495658699575321568428554652584251197939013115296011592358899374722022089432567583696035789099295588456593492874305630190136842946785402782233436245739803767876133974346535360237872969586638585474742953934664644390364653496959452158062547146680629922847073860957905218247892750467233399981688011456435591045824796312704333367814337661454204096202370696296013768746527520466296654228705850687629107806732747823388089201500346956664488451596911817732395807127816706053956307717400852662723656059793168716983252738986894585469923656072162993370400625241171706365753621271379055078612943241041973541478859407089447215904928203626461303506720280185052733992117789709191422134307642193298278655625036498947275250254405815057576737877647046659065527895067307906698929561108920407087871987459439303177750821770310988776943057439688514445517667856988566559577257474121281958742487082885341963595333819887617594421941703887298083487344001097622883181755538663431794791412658566097325348412938643600383621346517490604905487201712809196837393812806147831369333763787699202561552931956288382911307865496198208062659825286310427081180144655821980796389765644487870861130011371308548883845026722863312959772215984661912265623739215648998176657206816999008104936832308237760539639277794298453874288172613126649883844492950619942663462452331253352417123027132226744888499407820116640622239536741168177653311489156598045100905960682765854437647915952485248139354236984830092796146478607351251894350724547549877377497309716660675782542720415751011211181167688870951817311007476745468735493345816541613006661359884523293498687014377454428976638336409339183236450626563400853330597301453145779926427082814381397657421260184662396689803886701556777429412817309897262722159169163032956266046629612175125246106618180203728636170713878410914463046620977465833873210330944168789156503888464530176985932812450476579983561331778371795166063301822321160831144057689960220968416275838343765053854728464053390184487299969534070798202659321443502684653852341191520401537859854064571467304348510863183350227654978182667139475193372490087373777611928206048354394754263585269436901474322599677153169750374121814875370668490499820748753262808995184845720773585702361640539019266948876536348930854878748278843741505927256786817185177526102598857730320606376654202649276837906571241776010112994495053731758679736644351213039297030415276077440743811306368096661096932803149147895964416753455384270673335808591407166688954608330329379071890919883519696187529032217865130282253105125582362297144968772946804195666763261440467916042440667381355045127884147510406230511817151250912034767436223207094369425563645065083046859767065157965896427611771619742585335391036873597084902584019732007947709255971308320501497814547693698646890906642090695174218278246213257451392440187725964170165873199637586192970499656109041078789338422144124412957278465397659626033514311915760327086208764134283573631318124839719336006685972695741003026543525563651168492025931113332704706130551677073280309084646200604176563665351283651057406228487649004229535716070794212309427831069416816525579280741365733463177337624399059177859577582531348188113889173311646628129384261250744149715828573278748967941882907740866657123380632472248034896881917378290352843186308014323347875295929768768346396431705803572727395131723754631003933739190050445808593361825058590826246261441693299947585971083519917616576689272745728976296727732965625689397081140886591083876803229503498244532157213036376260441236503853723100407640695437900268331194912968632449525269442259889673073651082308543808242770319829896646257193631957601896889919110332489505611922666637742480423241963522228081274447723230136977251306450345409356658304030593962816472980089082758341747852398708631238034048960958277425791445733258214005718045512670932966293080044560374667132838177404292492458614314645642942248566672279970702337706324949693964125787019834090016587685441566229351131246925721921779909235507513160162365951625874475453952346708449540827344425429585004542504638058096692166777795335597099104319270824951488156617056777977170937143242609575808048480026247965778602020322981387749082691337379649472648991684259913382143086574086711224567591186550327174436978424526364494514083651213756420102011511206048202585588347854679147567207650261709907935981913693720657007438712392742112732611181377919212130931879665678659018112524090135245716254699102713644820665233113726186778885969612713831762859368539194240942998716880793988058823165173339342605099473358622057216666772229065545326935401145976318813274644272644985789860364166172173047961951753788901763048154502583106938268401532330449299421047549415671347552284687507802512855962566354869200740485421772268950194837666450016114287390781131380960360684542704602834014219310671130548682219134172857413352784262892709560289509324801281959943017387076656436841796785499693879806460887722539081462340004163865536560731448753059553746409319971418656243053684994593800735044817131127943073003713182231246973044355586761886877884070003870973095412171663558532382459614085273109541492199888434846806864729434774468082553009879815286849692686293375668101863931327523560999298047373953992306930031913003810034525338986228880067160972800164649913444855392164064002245870952181165799013004743270358599132712848651526883157901302308295185503979647440097380578430407728239858513424418281380610321916054873569705436801530489127592998585212511193571891825833021509915114856889276768588529664982933845116483370188836786203072901180964966015737856198431295428756356568108008897478986243949042451820416552247354417078165669741400110386945211935527544818636958953056316231699098878433655119505953829964028812039843540966846514124220583481437703402304824302086244107594688030638852952377423076046871879745662578804026041723817055616788307065553711972294649243447455600174289419988799259252232800142090180769636228313611639938737289283775931347365492922633646100474398565311613447963794154859654549356731761465564123502477338647490992629251626819730722045178421986419889266404089757230225356978711711272699599414920873617192594608808714601790430462699811208027866151635995208780141602460397888960729149794314161414794397056563373389601619145046717184648402362921352510774745432286382935935340386374660574096506654368803255061062468768861761839146021237913921455419112554064313299602403823162928139278947036241597877709394938409438801035769511345039747515959237209394428156993056726462630936605602898979756799476069688464598053053378201172582885176273056340739889044447607057739114797632466022073152574956556787598703837029400793300855658419059286527767742932480949648060131624954685394173342541302530478639946885201241714441894056437019032844326106708824494327240994343724226275819838932712254404385750338019277027170921300483221925879230905159387792499929411893264377944963693541968349195658288461034635590922219459032177344978858261371501015768780724447323600686195722431779153598551198635207320283895904100323165088051781189166948449287593398914911252713213584863409456946573425477132401464951655188678439258239801460119502179569731475202847190507207018796632737208600083706230696997870207413853639905015276130796057589651409791036778860204898437532601224466177059738076730007600124151194535903506171019374735925534842602471635311636545855415127776165495785702471122808882797944900814861724879680879969466858904385570049594606982636080018121656893146260667526145705677668523363855085668628861699376628056195073895894500311305273538277575470452651092305226842951639498151998952112231306143040889881310728742954676857565418257207175244378048434490846368237268017675662105863709989029119155149683599773176085930995546237935912282733427488839039927569649032645778205026132525560557555797000034737211226891656471194817252452751755606014567817471709887409921874936754785400815049694483260805891106171422558447744165481815853611747811872204552914688900504857237713526805118891884470099670928697245725402323125797153761018052376806321688313600494209840355769028645923838753656354283479962613481117998781366281158953812504242043032427512356914206294036605050798653451109832252786294239389650212084801715522719631863018866583955363299385249712010360959438443953666058925147920762187259872055634094296924527895134279661044712169184388153582031708079097648663105155319603002055741679868943234702627797323759584132881965548685657637655037924169967071641223958707355603068106156739903771330227946648528869166701347986468266982044620843768710866091416070600258173464958514145634635140637888753067727308668098480200647639261488408636547094863332089044123007081507476629943340061670880101544515432253793829393669296096051012040173900165354991791690035310801706121990514371590160361035430566453527619690372782541706896608743589598453104162520224610679251227349776842981981212055887756902798887960773589552570629802293240029583914832309857539293980398210820289442589754757064285849121129917355892221693171363429442827223409525179352045825089562741547039411952934178070261830044697947053747462701296891940833462513355242134613507753649039708520556614032102721567520609609376480655459909134966398122464234153812436821481765494688349379823431098856900742810447408157974034653576394455661871670312907997434978753546637341180293441981851401423727929012326704551813767028107599621128638337547426629113526245007599298643656221055701385216047685355190868670467891430715285003827465531682936150364292084982598057481718659134316670960164523900671598931122856660305200024361901371661032954918199686840866433616491507245979303999273553057373250281973137495184101332783915392378398429253478900212182439451317877799482333989637525234657868841439399539483720367341427201084270105919674272525253130845967249700209678909104368942201840690117812535057154539352496280298703295834668023086009964613979860879043982273964209216895163904868020213233541618172335344654492884716301547918279874838671037127523134728093314400707047149707400881972231815833409119225765507439534653911050876922640577373418119814497356220177966345415315638893172929888804226257864288097474041690793189961744344766621668399529116466028694495025266858212804693973555486023023845923943257659582216922897228193648694914864077424691689606574267664715258413086166842840408670062583964529943487938296088157975731535706697664192451175903061751026365734547941716826074463827878772759701929641412077678091025867576215392580779685979815490722239086173628182594841679557160675350084443587266851490728386427430813753091816647873869559165149522597525084038085161924407332566331035324074907105922110741263966625735783360718439935134050501641196910311540699726430178065544191637813915746418120226741823345982472556368215143442592266593655762205556497071973548229690987128807424029438821496395225144634586867121847476457656870005438572468528257877117292510054970210406960699740100680332255843640947854619163707777914766162150152597380100266222302490109160041057175584918512209915493279552321775309842217508237940782372385837838456327226793755805702863716742036433349768635998841986316817171185231142429567028096224510393997953165677148376917308452540410973768133601067335366628446586983954062464071543812991669607588045456985924561498912600110164517663479938351332912130720203286759697008509150594458373247306939460195629381264730343725320703766774790379313759696368944924429731110361908133814823778515127031569546569176257703913913498059014850226624349024082777695074004062561304056523562946717464954501717759507192592230124460460594006420157590095649717050701737923128174546471899083218067710481898449016554189390871996216147967346067806954101272504741049602237454483271940712873940735841656602499613499301375313358928339752623826344509012408220822934591671976950788097281790808456868771076065827773583640748572309803730648764848734460253343774277225904104096890775200228210595347848887135948267618044770324246948401569310714625217530700375780901457939289698436531225338677970824665670475675188964986517140944267802057422988286676789142402899823948801742164154825002080760391101093483528145885567482370737488445340516088241248477655868246301466094897042379918263905175750278652697049440200182864216317307430697261397058916849950512402909386614453384210897697048356627029629431358399611858473371667417350014622018081053844507620423315938182251590746393212842272735478191485613342781278737371306328069982698503888455566121496978923086255658362225336289393926748411383383681604991866803461283947929315878830277132984686360287611710357081138750603169427728105823333097566628736411811717284363595550263777379523067136580624388142939038738269212225215647983313921643138548813258521722307067996634361298594796774203919677699233593283191054292818878910570050045720481400574800844045793316948668897338744644649597237534586164634651230133376280492460584539680363835803160645287016040277239858210374249136133800378534782049878113561709509238461663959843496503535246359560782451409410604074145908215920457121875479701836437603735792678963397434224960914535646506491181329968566657494785949947808686555898705656614220666022493690708075680063660200051451225641755501400392031316449747631598250681956336870714442685200109849815928822933449388961900691502377859801814332992622590640706587707957255386410870991154045163375474489466328229791137883276924017694976868918063653333137386705617804995987801587578936269468932345863537735064226519893620056819659773379181129366594428206832238336689408672037542736704795126654157527659810050817283148614063189802512948590537603124719252371594948087713850011574659560512296369481543178776382085207790663850975680170439546213017224357282109384528985561714579071306706143893391368848215931463823365502537234123236582451204047492506930570538597610002272523050169926607556663777322549766287734234197285169307423620444181824347326434712234939139243454637091631842818160106924564538246389217642971560676581897630007777149711023712237697368775005122462447411991713718995020075754165536423260489796210280999646099105464838160489873739183288884099509232752248209887432677279627055207192012565343134768982396993660042691219347380000911461381841675565808549525564454512617980104015832168660327896317589749410865021759843195320119515903836918626352558516675181396662586796300199196441673518095591411493236221860397127371473541419091277357865462945366481791037416212201262224784341440131323822890557357846549779701795070609413966579234703468498099642815898738860721240536621477731230394743354819048370401756558276659837070603454433864947416263190928692879483665194849918016896209150531377743485776513254458599059198322368270604690743310999106241210119775991442897649356266297725489626950551386005478762924026561941992269213587893274007675400810243125045694616716822471379361206436503878211599561693782070722696692239058571559957415539875947843074715306536659187494149314269541166254314131737345362083510989408939385492593066412957828974137556043270530930483620659622509276490263656352047278301178361853829282361875544123309478156352300709530760088961667182387981183605261218639607731009297510659601993945798054100939431869042465913253826738220972603584016532209404018074949611754359538420721130702818002572253984776431127646968196583678402259009079021118865557462367977831355852202870086898328977122202535496693779894417418831358955273094836714900118925232678680007701302660973013232740222140586567107292453437671731656469630809232603301444734346820648317619701987220579693844397250002008531190526083154252815390424998432877089121313413512618012475923928832718892419143322858050889146467503766801779318701512136145946600326294646311489382714464074790164688972969186490684205504910773768510448059613580810086979326030894041966873591936627269659694059950545694734909351203908178194214188013835395677568214889882831080054948860950490796177355681041797803185362417088611792555447989660154625047627667657679130420579820588852934005884275841656181070316309812225237367748663942014204140815355489265764066453753003210014793692797548229802499963366978040689086566823302874606176527742917969829212030621257691908124867066395013753256047705011111395739605217870289143817053366511351580725077138582197660648672254135014681825616730669261580516772989511707587207117258586642308131854588472465849964405938060340140189001113824855643894986201962427269880194009628442405877031740184779423357188620406778594291352851604227100165490519842889557408399302533625521040325131716788933143903078274598679010671778543807206342650813160091942375533876326118776160537803358089854547722870260021167798335404863610742513775618273119942788049407929137010636888480159582165795184442978703851149861470823769002092576856444423446261349012052353952520635239611189133352548464425960457083734123604133206730944089981068300128086702649757947609548579899158737112645800997567438047479369049408139954907668001720119567037280251233537441997015743293680072795421765323676876595564896394095403621169205727488360592777739250902833557037987459082847791310511577051982113535171062751543626680230943312227811031206664951769062162982420138439617167307293219385750895457057587674430754665148332860929869981691672333099514329231600626599142866078550157180410579477403715947830164655728431808034912450980627538417336185663995528595884271887914481068086384808790058881588090878693999040267484430846346094854017005710855913422722065838600003142654692451300216766235982400657833889337588794353965965016626718376355367209666509764725409605303438854014035887989817090014435675459040284687768310652612623762613823227713559758054892436789400836994470007374838194699026780980786292452626560252944594431151185200401980315988086349311218247270081784480484686609978125202095924533785634328984167719115622385696833848768073352854626523718450988613821620126830627816891897362216691368215095427838705112537486316608578658333289848076919274056400966851194991727765195072175217848650655504205312841549777513450089924104822045466247467653556889675004183275779775250352372717773680373683086420955633974454150081585602425294032146227597429007019829271307735253512194601136905365657400229339436332831959751781080078214730438024295402659699118761630094272466947761965738893615865788907994139356743169428060251043464954905165279672642542398771832807554778832551239586383851403688959963836260526472738302650180100939043058084562991843440849199016714241573424190710953559421170721750591259446317756758880075901142512619778851390399248550882825439658710105278975162199011252153948692158383878161381370954145310724484804176034713162200820383943496424690143993785175381853286883984213383840816986995104610526507755378720711106317425751547896254670201012123296551489517516225275258026432938554484499106878920135485778353985930784238342312890741624175483904435653713429936441789088218153424118384727074339735105570409803065381153900024759608222667982091861183255164711501142965471746014310666434807534612051635807202084463678407678116335978503772855582762222750751384120296713622549389905042653331125797395046617254841031258341450562413895543790513377487485077699732435368239310453248423132673251399230714824944573214738484161405996042580744629817116821180841038323789627260645433374365485515165354964771101024670378863948357837171196040791538689842886968654468422773146479950157048129908637872813427972211104015826710890610297115570010848095884374824699636696798663785101289843228332764837792767158046577189832164877220265066473251396228654929597555205017253734209565699045043479400745089266181610058883443816494543980491371369230475531948814676363603019543650424131164716963282532807191181689043791041771702657550985695537269888820610622384220612196053642487022312529051233332984697070064358725116822761773647912263306520698437830922005998614696582334282409339293733929771641557116378125069875482528314210509650794910818879131823243624323745936756068886218352524960755144596488085774446310776598664226820364955064812739968139944781235994465615796892158472972822175659313654306616892886112250588480646258964712087376912321138796910341360922112655838504611433772971329544948678855266109790951602582646397003740676032959838957337050276655623736684583977809907961183409784576249737190021032085558203340016811223502824012609618335738619590298889758532786325144505838185399718294555452105597611517440873896130738083053624613190518454445633914079658040460360194550699661069871794992652082993203920465516952096043511539648948511246180098019363573721047792448888764341388335491165707125787315068027035533225589374325885761423309405050383596627213804594254456012118666576865571293386709326554753904303829916458788176457878444578161612093744452886874083161093395225630974345324794656583216815238339814867515819854386031354729578165509297128959493373859900728645351874213194611486739357983193109695938033747119596740701912804182210000456365886042580258298244562393992708136101907745340764008174159911829623978809553920447935894227644956578657207378145235644962346810339710840621831836048688961627911656323085660134301263433928817657144927274505517134156617379362325381365309168128618647109412402491415256463816054510031483644255179434368560259691941370512056377358063666656253402841620591235791709564492633425719252512005682051138886649662015233567216567315814575950258600603315688342799285353724722415562970216391704269740686549905267883648417310835270888538104782851168720324988731777917755962652963420241029057573297208986080004876524100180491864242745086239770067097107600428412932163448607219437985496583857662637874689462827651729701968114743615600561748284107576067437124201206391923164217574806615441833636673008790755290894880828026935225555281192864943572778212966450518464064976208451493585183353934038362076306641663974794906032330793947806472331931461450849388186014228448769140782687741211517715934543523093330122035593452980377291682798567222338478874422343060862691195731300243615753626706346410264310595165705464809549070682764427546220399318792770877832437174612767839329350106058928270937311258827918178047641040718012979258500142885357417019054226749632613722213860663086115339814969059862392353299616733058255863459332479121537965928866877163149900239537528001960105781979325199336088186072045527310759896982278932761262316802836718655118375323355247816111730423281648850421855423555715607507949310885733986144841347069592201553408377105947850934381242954686697913004901280825825191653998450557846252770198234274858814475908274814395562561767208379096413667309358708963589415530605312718861788542894621728271893471230396568501911418831140688977504868930303880569836311476081839026741527328281632387270534388709935438502294322341754609133201249184471578072628117396246665792075434248192531943275842629339622129627930778285334075415072460581657638478352992571531100521107304250162004728753122648446787356176998326635987565841177234627233364719787585382354396924189218982528067001309639911022793906118871400561062191166934366782957142770388791861430911770590454816838743570592001942171042631621817866676143895133932650256255860996216145061380083187953964593370178772232626915041765952202651046474400255735966146986356136168070824984761716936053335661327938129460628049313558542444142696048698660956341976371048366902912579259109742301283158903612950919463709716385479211067893103455848378292940518792649331341225384022582336672504482542436984046034576952146224662457646633917424526965954566990160622412362282053500169870557063808757554574364743620155718624780228384770645050993748745488668767300381151352788859736874442010456752882799988087958971191036444366153562156951299188108618046822541129761302486354614417747397315658450359650963708265812189498502089790655567640839135657273613685452631546793675531675124734303600485972946440656106168992737963664378608365476907473173163226444094225530955693433312549321161595409989051694892003933113034784654568766269224082373292254011143007289982204590337621322671068647435535564383281601613196239817124026698080690261685748527415391481434365771364008302215573371952775968895203918935432601490532090051816514266038513002735608822305359299939898318378276331102539113637716704386136606903723136705488912582166292031677776796403001366062580475955893526691905050241902387028743679801571168926492291832165070195853093107167110018197052776166481030327898082446551246669188571224912572651985028753470460292609091603400754913470302397655641495624625863362004955720825807096105287353229767544917169555601879086452731272075846815550151828770294512582092385832557582694678140453029648709116526363398146513931993770451488050583730022968031598654475050011625049025182330741686015849640143795697574264191221662109441787381889209883744151767150862712433106098000002632776170611455976104494197681628755918510399461344394153161710287545558046619129089275286326939603830121895354007480799133187714262447376244572747373015175931045803318349516410499647496843344269338164312307346491619299693887679561163226405821918743431829538933838619998402090361950225436055002815680969480683821899308775002094841648546322109497950967799491466324051862267887659543699395372156201550489191041464001946837588045483731454923055746455312853360152977149522860102855965800369456229738299083416758383029704367079718098693386594723240467569840418087518807497023530655742024792419157678857644699912139992801465544946986644794952020196567930848082465815671081024748018111007887049425006372242836228755052611726548406077590226513572772273315674689555720038571328380061757270525203323063694173429004535818034075872662974157724490813463571263472881996768093196374067775387772992220707741904671381335801735626326749996703118886692882451525841014647714148348562545485939557722257251712506770632703943776184731938148614041014858464756399142197377873245769351473998697206730695250326425690556408670942150435182549288225057199304170446077845715382055074303928725904860198560988327588772304362219821150542817113694316294810810617894298465813973895280664129649545035247460205004410865503095330756809391699157062088079856206737551442238689071900412022298192696821908752283095776146557957100166346421330515583258386587615173312350655651247781434176459872141484605975127369658837858870293684485279268938013845665050652979618029959737940989558147033447138301447824099253762093821310531477118649620514478561643182775936965843358428449796113111388096865880975659100061619899067112845569145651522170405285885234316475013128778271121236707107781921145576498330610318309779053767489879735799219580145555301820423201292812210166829094456994210022198633838959705589512544976961747509864336615776238069993673081723873102565559453288409808382104243410626421058473981387255274364605400582585225829924125365370084487561314730392395572671933030095965855713978154439446785937857933835607553853265985941236238965589011738385022235858077734450525916181755122862041957169624909136912039734821544047465716276759598312138968456181801873303872069395257923622079698579927945008512462436433602966139745828564483157803353420530529142328878024371508493106113161596530045161183267619341352420504422537193277967290612620338194515127009911224579771896539747717849088964291166597037340188141998753489095751203647543705438293943379929141666845469650709851485687976275378008245335505722099909929866213420428900278507151089080743026695419292757384807719595625466449000592017779777310765682730358936972374233665449279219073750952449872219471817461517892606817860384506125823754335964700946215037307594512610093900169290551000307148440476102941739269358609292253122552895224979852619486966141487670711357112127594600036166528662449744911241716086605084274090013598522040878873937061923600694159654559052719346957294781016961092511966961968989030174445036274071004410401805743891972603288681049810321892814719978917929833250172278591202841723238356106969859092409788820977276586201188350798417054595264988586679894751582422124963503271761510607330204384055081460969353363841067320168436289429466170667280110576086513105823909317173515413336664020692368136739731146801005362703808640850063383711220389022118015974922511141776001628177637146037625798236846193767418006468903296146152056667723283909100058438923573810913023041567607449195139072415960590567448683759425354077282778788066883977045317949224782814282725979726116537114959415165712189058601621232095392329591147103767715945761214266211898695269490270676788980967085929247107522159058458813464618219102140986099863841050715203596132745736096980103709357803729209375370288647284119293233250535388801852448557850612671547230194448543072895535829017325063894687854911866568263258858762449679350342130082305414449650172931514065478890019164500631031722900835066352514322382621145121750108012882049613384141334672683185448474566691988518330563751086970152640078513732302119588309419755954909680130769064060053595909854420047670086097932217176856181234822707747053897640537852244598616399489294099700605747467141902133788035803053363359280874854432592016882472319477962534131336028483167584431776283379437984432904952783838533448671764483874914344240127449385387430778463864984463868699068060745022637056727892670531735690429396252434941402388177576196303580530061430489790917154315212361235376048827728824906085995381745986625526413573700457489333297214081274076585261008905596233293633880210532166464928110233194289470564581406901263747841448267799956447781474024556377102949934677511545097525946454989008022176389238202195010368851084991260087702505925128227602117100716329814003990484242759993750465519532026797608428803283250162769286251644295087813389610344160479546341398002126723331777896511824371045312469939564486077131714668865055437123468040885788503090577624913560603104765730045827343852997314730922852421104672773302435633035811216349861169787750783818982735438674735691653341512499208858172179881164126323190656586562887207706330538095718765550085153563611064862333075206399733302812629422260230221387724825387205426867579474655534855799475172477611393328908561647560323757894292801069074800284560469408449205389701704696279413072096662453968459314413219896694693078638278825214358760935716849747806585029872484453519028109725147752834574513673036016289999630205249738013789781137996090118044966201129723563925519570713681966309350402721798879685038821782807261989077704057703028073179847278636482112588372107494151477819768861947774699760221437066895091932998862545351577486839666486280913138589352094606725866069679902147307015583426297628176853003186529941377958211389949392561985365068180795296507187557785976574626580658528280000850971444504436686837968745315617254875200371447465884997346587340170577401911680114315271075634919346204074075931471256977248520541241428542669541062440837440810174898890668182995119648348582229771734063602462120752271545406532788028084511165024456538519605081708857883793005420317338940667192795600615641574752145034098009608793388938497264281589143935061183748465843404622507075339575458434936605541378487694006955209861061940527787905844836482329278058297218746174767222730464044545992110662929455883167687986745128691084643793924128117540752339177369579424357520869361548680071226469503084226395958789970877282963160234164710983373260425035495097464972353167874062882035892788023948015493163810468636867598406098084189221006570318177914854479880050393400556918677396984814438226820935020530390206934325428496588638776064123396543380022963520537422289358683844707155601122911282307197979026525254456684177168739753001933587135804688635641543588756626510448599869492830043728061478813724974528293783437553932349422289939004874942249543624908327865362560803063807530954444277282459097983510683020534323126736375387202573029281512763749305359219761446359872428485989674275254819299635858606359423715788038894994503070761516680251566180387644758715077032884738722300972762083806229704305178631532394504515444302595760925819432929199766970410034878958594092839184291089340221911949558439809779954500663001030596072922514865346012991802020785766448648784153439059452710121530849613581848974884364705640600150181292111619812733530172913664008265833929557079591272704654308341486490526411693566034432411887098613064282403030806293201412503600919971974013773863495142248460780461942881461724441694073959192178720727393341209974565187230884933534945577155795780002282378986056144983435373561797481886964472930378231080042747339026056709440071501725111871333640329420722877811695721837197868655138311767566641239501834433583665530578316237365733198156896128107944331620981252194594468206610754248768190062654133130824814623037027202952878833181231430452217470764687887834266179122324131971296301689358640659502467571727803063549344618214939769872768837568969160927407507527214012713496588370157575286206177450790828316167223564500117752399284261891375787131776931281658903398978367997151494794405510430162114544411540842526248301681310377620073800559505719329887658931192887179198977371970224217991124043639931885663897651869702153442457604900536513814713599611189264120732467173113841957110319612367379155135482369042606609844419506136314363872747925881507427066886380025011413760807883485275797762611299009551603760284141329063265102179404724901805882631933756540805588799964244638762495053422050698520162379892954452390966447016953036859291685199836940304072911997472994427667275080422191376637740759979059242442631866424726668924132599962601932897354521585467911061407346036227090784288058268063903523161761167503956825358044573611272577514889414266876743562969316210980579308686500202782500706828948562282017754607660525102966802028495377786050906097159388151123295510522231692779114806731780102035206409979918401817954168474876233181522370665346121096989384134855120711486413695971551493873338399817487636655734704569511091791493845311777609314234278350300491905241764343825441148306077719405825020887571072328640454016713195699414894114768658440255323014559668234232376956759469978832364051446233629335891235534072123404012630869340216473188214118660115504710698156028037421467728578127489087910682085834443052991443103973383474110146548113554296004568612105018706297484710371322757193227005270143882788214624121757384321391839626326980538310757335799328964900551294719560095591405500474172718542350239090757830196764449088632070809257435369789820522328408511411816653893806449928036764295795144991808679758144967756338322295780482892502302930336548215537675733064748117266396584517171783835125702509546235147586951965056685473170528168094396710657887545428245992146612916919496456284661516934324079904461159777268632282381460450636192293731240675364362051666573520244570722776597818173461860743688627213912172195593709340040004352888210427695233757495916073253585260665815150716133820496108327049270318926686702805630306046729965809469446017961437789787761312584013344067067310534041038016479741554196058009757009998830624215239115753310225314686707716417387626145549607150355551083884993346168287102852586357593905526782608781415583275800574389297148036185925444482115802024857708267168153387989787558641828664552054634308904564064705546553318308161207988303273392999650317681736944296912501619172642024955202642707334069796600314029569292670638518944790503589959877358606992938780592988207242065129942437693746580068111073804805069085656448530650533496754413839419856774948324206207901716967324506001435804280972023302759228426490931024282540862259255056156132125460069538726351935837019443306702302265121713688386369170736154513359886503806557095997365046033797774093356140476672758702723295392428269793439966896704055450678845741926657816027974619322431813769114465414250152595641464874539965961889277365872912507111934209921705635588329959522157117040349196988135147444652809546153510899182107002564827355009661422891664060791461737272446146954920312815332135754977634398032794561895100497280596677075875128087472304622208381911732590774656260482548479413806181435767709252029731089997077546172583618478834500643174154572294784642052589522735391365525131074318788546286950153742658828245322903997731516352924940670743831170881497003967424135524123084789847884976571142034253080206684366750478545201643617204282714108904696315283444843399059396316804800313006031454670586060444551809627416446810310580194105711055342825132180943167057715986822830339077019020543702921474406514836143713757873191539070173752629409148063014207487351186217461406322426019620357976397655172141626282149475917201907703462881221954427000068287558029983898906002952283047081411800825402972220222077683706238398116261283973168113598564175705788916011075890853670663466097992453232152872455891988607386309629857811832589650852254495451305110668909746538428735175303265252474903430484881072303253160694294634613705223182319068146206739896717666217404193054234407092847989350408247723918053617859412871158324882413532113117573845140765436236142174136285339911474576026037924492075486174847214239643087604443016544853415781634533083177964115501568503512401645915109983012811778097362951831411810647158588431760963859716665089571327830925940009865472774668582296616252481627742769455940901864933505014463031483850009958549800311039219332340824960905611716690437973482737760898655030356751693938101722106158686014230265756475134187729133695028474645784930897782998028365218115139843958235983112783843613301983160639299731645239815034353221841997503998118543576772879391108020627878254887862197299880410978319650348334727839860091902372467974138862030829863697654962516533377639607913875588511985893152606249573598735081235316713641478187339569774509168247231904478374686821406164747115880872774271538924879713983753141589033571784831486469446747283739115735457412496996001803948951260169876801141238697750984105406114709935445847563599364134987546814264052094119869270634116407027192839755967628154715509444718997103001328251320676117216728156039859684973365803979028261839123852423315037971538916477067976306931069580557707146214275827046040510629001914863054728025208613356722487832878190278092969151672545493114560805890052935056554750554410699592455472587670852761254853249034769791302461356209820859389716434866373890519515406641966112052977806569527095044535770524504192725284210713090823616597242709520908840080542189737356125893758569944502597073439469241096743069488983537314686735620758361962416736505258060736508314517620826015810286616190695070636209993874611027911389065517873373888281560000207103929580344720094916457703978438644949009101434128836216221387017777814969929847312358780908131005567624421166292524938518764423056233679961641479794482948566975920777572248807407653092009165600696256494529823064405469036783708340540829672072200167062924080196678966330144863353466824029581139469662371714666073346208054686119443000706223535331141414993987622898502360521002950106895305146667406803593128881523534829378902155394582417259734334727906860199887870503731752430941708270614830304165524931818528976504825325418563589020003147471188319321224356533218767567749395515039284033158515297573134188109311182780854670026202968330780103148433019598587430851573496076066245726053819018983341884380712080127830116935455544085901101947192884664043708816808950262422067453608511988127533609371553294520597006497288393678583248738950648017129634999558189175255717353302695519227115154776055336190934710444654421022702385593051961761087435329300873551593416721151894005384394666661497768819086434505330098522794207157492006841596004781301747513704245599145644327950233221187805151731436872773966667402618333019643324543340806541639139412532718345082807801225059656924968139665734004348042377916255196866301581335783667570906136076419138320450880147722057209387663502901364797139086266711475952010143214140377688657767344195905418777895359552318050183048288051837398174444400975537057372508984930315321760609830057135614639488042495759555422118539917697017479520644151316387984790007876240082731298017415260876515105909030336687521869354797117793616426768238241444576714337333330355605905106888816482671289645771197690033127633654027763218546759110153678251418633132464626621434642883133922311732891832027027056055912508657388448467363370354364888400071929444401714849585794331742865119613668378964538869320590519109588051050353801836651946930523333502872987354035008168377164992722237105833055289174507746267192192502407952610740000648626534185941031219449279113802172588640909816926295230888995261461177541460144312986660769592426507427037545162352446975475631445163335705412341844843382448799359094839067836854737705990461142902861245280302125123145571898852740307514103529478756866305612815273966169731973183133287274108047868611550998662124811989809813503204628016120118970646408019757111682707760992603841337260198171753244565893304862645080457791471015127282905344223489835537186829241780904048132043047218858790723020843142949472545621622923352219676818000980896156095288912546343866056752797729573411410725599798069092299053274452023971896366051555594259412648248921465077715918462948376309369832120405366660003925528540274201500036362261812996561247185684760760275725230635087487149371850962083502857589270175130427622411138571103930515517892894421646903192446509232941366426784394538467689384595402606678084025875409909881877572308881265837388418504601222942132338927962986918371506924402065851221796555402123945470132435931483320647108965602723965348036626681825583874007887351228969116110006457990438289408425269204552272647089513226929679922119842878630030541266329377332232703360528515881480869975464517250629151403299902472890808117721814177483969899581250537718033210191754371240903985707250723855502484854037761628940099984896000609344754654795988020752781084234906851945729698409600228367839567958165670147715260028365783763316882728199684636703334891850140932493082680831362909053695998415471760473369155342357594164914885002834587876097094164095917467746063663182607642340616998062118708219625868635464845280208748925997704318649953673132606758517950739652439159770254174109036203758288994533882632781979094870165614648309219371435760601280157109202687073687280801667379895289346769133160374781982824267213508129522967648350017302465746820527368193974934762982551040063078123782945122736855039280459256118294070639373777086933056205351755771609510151693817289539740148963834048816281011361739802270356838715436188301763794119735622888175882396696687806924808974780270106160653128960633338584406757848427503706949150880028667879805254826541474160029087155352488906122478216684041354429611418946868735273126988886301604258560614086943129798672702326198359623700930957630454677275307832970382933126304939315800919921799281682170116145138373056777250777171437067760655135633601335572463138465746931939789541658655751260069725128809648085246031068602670685172195287956514786620862217554272140246962208182368528191625302850714240142510235563117786330205410004483879127227893987665046287929304371430706133073667056946534518205627978992752653628043986861316321320936468942455543317127329583690435246182462614406661073049452382867410195299287648106401768215070230107212398369611444052929065808933698548316277377072972627568248370542538261186706265275085286368801935463297304113623609881237088210795443228941727064182753646293319654160603986856706030652862299276772917397938075610144837578198735317259373149781455667145610343330549879958071419116428634984921053409989103836534645449638512777419741183469802992364262881730946690969869219416489068604895911587531378530388162640702403410234324182753173870362105365563548549641179462026023659261123400441651136464623791417888920004288706480177694927906775812411847493719938113071597621142943719754804611755649281220961734181830479800773924074714792081542363069699226828782325197763996629866263788892337163190367338274216637892511761538666831299760491529604813072516701207193050254939041373444517136945364371976252515509435898281779696537831436156919217081756167441424304985400448814678072174786904437698998854634503377665080772526701343977480341692603013380074546251098011240050757404422936259976384413902543333216968561275522613699771428394344457754257250026030296302764150037964656009176612114956585277203209927723328295137988641826888485460359318262848376882519677927911630214419896893224561557947960332438071059666064158397894342593408274208414304102937334798852947074489280721554148220553713439682254193498515167236503049629566374946670721508538703391949183158585266005924940476485987507365293973401595723559808995978427824685865892095879926726285123293476534433268443375019793924610389021723892108069186324433869653780329221621055751947684594898729614916014411332473352595556279788642322820841155119803932487424910056672070224654581701498960707492403175336108309654790304052860808633124128814658263626196783289268747562354493407612977354885046657663847616870732373367555658311071939711431543839415092135604170117927769096495352832273136326410525396137844698782441555715896460603608087402914737804945983274078170100169450766505770666676374718411047399386747462028046621548843920613830167491254796968116549423006356362676580960034045648178284094228445121348029021302033778707088873614104304965769016508197655918389908734817905511546002855283932265793861047769379702092745360057404864908074062118784444411847798302065076771394642367069735324502257357579049430062662723235886039413465640485309963867154998113608021978288595210364923885268236651197205889368941296738602722069655470930203440700894414646242711168698015508607588108482693295898625902990183920595188895140157181202144405267795583492436156531019972226825257185498644522489787436681086140065338284364753130643041989782957316715171592407996096427683351978253964214359993577405737614039084526309980129328859767413740010378667153973334155598342855559392512329624152845641068145222551443015579734202079798890368566030682194559191090695868647036522319980652156922993739304554082641576024153975939285067909388308754632760105849352311185011776044635540495378788121211317588602251302968979859698058386959378732775290662777772277472431971022598998238459576050326489330577523090078605101626165851567238085376120117246768151876020598724703744476455857459298079796811991802912635089649480843323426663414801283805515536253146292196945635123372151572052004503021873950277181671123408432200342196093587556992052127106820055050573820439314718600934086720864444072929275348488041897708165773328940462921767291200127166732676757632566426233666541449817088519909791887843262334414970913403458602876923650643300714190201592287610070343838514665002726221219409725176516673783127149173019242775353545167622923806456374841012920478160933956458027614460004463685137835011460021095027331841788468917594104119470234002905525257656940996547603766745778707597497167801719672086595887911506387625979509695713914359544982097477431127065653470865973809076708181878774531748489272903923167030999352827556973070944882926030692521985002365437146052214004620402617785849795150471852003974196398228166916624207841975051753335333686584682906307850477366348208471520473570047279660852086119221724217744771581973090872072690118204230876736019942382646356353620046768592797796101551583468960427575634374438305706910312223166815640686990681148654352259330494498794764663564946798911229548413045726227724936063369755054796082131755804178754059309935295524067261064619470246073503720588530699865664443283895243528502406237591522992497123474585394315801415318368076228276164813431508828003789619151299471800039621865121186881608547261884274218815175583978855813399200996069335154311214649464481969364405110215536906130033901381572268151549486630607761782200631874259873140287044703555145678638193296009314329015353972475542137590663248836743317039068528796162870516149867638462033197282920565445055493828145492155382700586624531428696618077504331778829870914303763344834664042135191278071085885991865599667482592792168533628538564620136818316273180736160576949528404903970836211952790035000039641692586342402530224682219751200862750107586788416738810194570743020643579438619004252054562082217939765499265438617261250979848360740863017225249036224233136040382191698630874524815364488223510386748557769704871502708592519352815137235224958703580958847696359302371286607756273177585759722246033078836170774419045952921089936061574595754772205479851348014248841182130431755389127719678766087036600987001586573377225559535734038625890776124788879148304528376793271199583838269196349214493234310489756697008713751292138566411597642602110761625643724692428516519805604371699538301712537293287251111086785807078852301434075629821184467215433288243971797446290195215233575911859656549756562034614666416301884076896925398989834035039356273171457078506978828094785466201252990410342699604470602653466879824330566221673565164562304852109101214803670751024301764670637554506726528180560216071235814763830636146496049701372367777398751827342736001705002678188685083629493316422553095024902549319456009074384718619207944915755380799125148560400825287169339020566346651818101815774064950022126489223856580421433430428230884218506517932546951637567605374325084488537293770081561066152510819350048240221193208325300548188176698961594485571288272827870526824375827546044379612307427349135836427580846012758994321073138005900605179977036643404731650455136321419318568078763169077146076692584453626270527240420459361123924763351488139238695138826824454456726291904008558109476974822791548508106163249804006673138346848779284900325405178705334912681424786059454355059496432949439590195111570345886010686455029386394323356057602915456365963863936390298286524911010395415726833681362357385661649174907640177051491493683884772329798841504836960469565676698563324324031547916393211095024576619985220903628406037224193536777628591888047914136791814079517903820077426065271144712120678029047339368209538967297664273723926508362117348406619349386845355566080872901831746422136102880779344402359450669479366879328023339090800756767340108581590913424229577835027313095436813726557172955205993567378523523161626941788744130183324650273342998472069130081874253158612177690840934450078298479495537365721103487154649838466688490258983333950703127498433353996983983241298433292099077646051936225001641216854271919820502751673409062390619010416395246316301022204880080382299548646382282050782127774186019360787190618576403784152682602891310263312254797516982700147120754917721523869888582258273079723678377202018110202702080172093101196645435316912202648608688782665690232874951733000883018365998963215189948428594988262073625589711864459839414937139760267831607431501833652654319697896524554283564719260375417113653522616334941607641957465989012945107242163334923488833694726404226513270535489366919355448880667735791982482267448367611859618064476417109463576130992302873238782470539929270640782777312133248478240469258029064883693357309852206891446355975338369901757194000655959633737936768666039685860991812022420340801161836415154628724749570864668819811575665794618669763693391548192916057451601187241772620087977010043301621416665329697638448013430999030210221494228139323583331356926414434437680700145060104662763319125059540805615130133702003114367993644455163500264359536875667302017466297231707008621571466207865016073203601329809982710611387261797889739215327850424004531535757666998667435709137835049728653795184243130513501504403161362472393678938566433872038644795459300925950655467609941386283544797811267062901290325157997382531777681433158219606388112533776366244454597986070377011094547829663128203350419216032092281455619938486566909761850747957728272879688019776358075336733048960465947399596525655082428369674749646312911220836833156339028463578605799494496109415098396043867778779391864572873553380245640663135220132654076141019441427775953501730958227737793895051556335206461165638350310095696195406912145523785238027432199232138038296636118777718004462758538521076786852664581236553787099785957703365950416368135224830175336136442382073519692038937335195089714234067774084097798011779170723797900644265473153220131416224745650993150467516290617689334548674774134729357988695536652179610293828037778365232569843901895045880458368529704006707536873830975002209769785468315148036555899644538734624842276889543643763976193806256338858654104340155863435537667510694359749922084131600140335915652562642009510725653472966161841163365885200687174217943721122778158920631745043511537065697517003639334376627266790469489009699302486470726974904023716058047525580573236621968708315095301110155672037422316631915467416448626176578611791022407945338662936241295100241232838989818801934083211455921449009603493407779018884029493640425651214652132873933529264206303651769787158535369526156833969737631745529475491705953091243253128010366972568389901526333346273863985013907693556701978540535117784397875781151889455500605930160484482455259207754236955926287467637727745586096187650609209321185335724677595526423266396053808473626892043708601417778908534698418493465198536216386900984570911959974618330684461665731332375825490403853332215348859973883909866506885141083547331708781783538366583471162128911739906137745027419592154925038285404362377050349735190066362286639237691721408531185764590899826534192749091276796471036981869723001484236502727080140879043408842595917196603282745384034463885778271509548175848632670484976364126299210207163752524437538044404516445011995196046742957938484078263306992682320794795961567867954080169292938817627682268951843036559701810450067053599941592925344210614957113550210930106931063367702339620448860137560163977440347008116329331902892926787949736725517855164764778792811451246503997155971629299331142580616223812539087739204121919644348390791325826681185982571791501530329412203751652921662301033368383405471302083282397801456949839951254948576362372082606962709664923619451027193634521248351413640767756244158242988135859079128179231843799307447675887063242010986251592274009120934514283532075158392257701673062251547394342995456341703334183652412005523446174925617425981090645851363055104221581331170932683679939282851500749593536456040177242449174530927629438013719162034973890611378327187591558837901001908728043807585107335675435647426681941276574032738777785240609753785619583492780076069183913881694861892005860302881211559184856100573889143645095295308071738058656985061282315976458433122272194845119948965985034158393018651841711915723202463257804713872309223230251641498811417690753003058364962038551466700096034908096552283416768706324753576368966040181931333695667190658157126031327527300477445685472769614538855289834068724828415715896375491919502941537602857432610129567198317728481564016813765763491712769131219773639240907439279007870120607754008849290088510426862449421586589503072187275215809917382946745853614297707831717887306599422019972937034535972874337436265062515853016432326037253477031808551725037150202609025411008808052255294015871881213902487660082373336583231686515758281438584979181934016033928796222111848081170370696092507443742363780922063564364711788885341683028126389049763056744201077007657212332527097963297417711114340978726215462063113914333308633360242370233112525187213564261970319556495594440690091490954122871193786221948487078383187709001798478732601609520217764037421552675250737546480565960897487149366521337226167381178304411457420480667069826111855583475024242812235393173808246961302316596361829828850300720835481423587356144162091894779114773801052555942302968908010504490841837944475928988893829356682661089965141380940146225044680817450499815849460648170281675928277984100375752369895182907527330162461868930326723489928979736363039993672325530965123324329753880818829390979275475411481879345926786325720734924334879770220818966242998858957532407776363185716741040767240977371735361115153446715057702135707514918436956089429985507188794514153624532149104664957119540783420993071229026493451531449969554786086545301299462623782253383470197274002058559593911251027858512913099500984890678502730713659389065838767352113222411637829829195446969272770375889829270277953990396601813774701183030604433591322453854931362354268322502894966179377691061667963668196373850935310621632849318859032447992551214659571504225342277672512940423210299927367049404668125556639684286711306022369215505182643153394017252717047542356694814312937273798367411740958851606704597258775979868065870778438839013809013066854637848585312901641678563217548716256138423560369296986668264078458812317730397883769965011858719190510837112125948487572594135004436614576311708096392283824399439475027051471935332191352120072844843191901658342171851958685105584789556410459562924374156084689810112782673404612636463709353400726094230238108045240296628986017968188450722841381791719573328025776709485940931187649881423938197911361215839434186622982683401408965132861071504866859063836158509504013801715567141125819251931905983181287490299639271715337655733806941331412232428452278109006281420938444742908617040981935200683785669365916398620856024264653923117957838775662062761070130392199626106490365305117287809216926211724441870316057436937710266751564036253314470067491949122885875216028008059937374191549336554036695667541661805479718432672902197842885258257685804848366130458906640888078661133229585525909220680307588521442805081163955467763807120573919840834543784017478342088204330089458579478899631922855928552446184532799792426641309331413403591767555123456856087922854465449128594590513658530570505820107114808422837580930484303232885064931709893774312192540873911651742086056910359191796241919127725675759182080340924142453079446160021376207992536375307101063657493911806401228936989894761923068555005696361997282967892739383466228973904900063391054923729385117405460713500420022199404771825918452706332403355885090079967286105029376519116483754329335542746513234940201614586044432763843459199891000491488242564295675612584810452833605522608283839549398496906334623517456137396009692477497994807404566262946997735023576158222207019510494975449544904990740844748033398555970672898375019697949633416194573250872624382152263683716137805941104708805763082752259776145939307113113707628581511127488678480854088663503187809965154618596280172913507787018439286592519455545727189938189703637555612670974880692060790265593026097775180134067050643094162003268430522313888565022325705636228756152928500086951124163463258100405806229645472512651567330855260793153152507938840274563423276323607216713328283027762329611737088081794935280588986246527707263239571108072026729635328203555362687700302873127140811034774770170315660766197821850785505943078578227589903655605269605008672097175054666020593434141266504586289857015131694547447628803552113100796481920375267192640314025942466525278264363142674052418248725723150228552295944813472452163139610209339615188011309524546564208225784181489937649730063184375596424950682557108688551791170616710643213042863112657468150193532212578378206534541505404508509905290184320111400432647380034060009122421611330839778807578231072226190043767336002893443549476414220792938566959757082703433600550359438125160803802455457970997201713245909831240748110282286098200286105456429988270653353226271624331754179405454658316138560411781858622492518394212249940511999422911752183027374309874198885112702934713833890364157209311253483375195229718672655846795988789257205716658728859546606959723265028394630334639169407880060145419869350767301481623341159925599791548223986465259303727292833952262905259933644096025661708109406677559865092712325181726530759629081022152659222015040791572803972649017844523995052416445496908097513571749267021364597203304935734036998406333451328121773697524926016530939180741961302542216201358116278724850797380468149870954715932117542323069378609833746147439829026086653623876279447519505666717789713308720436084127006619152621711852434033999605548372262967880061818588089236270088864355956057159542212721524654553482116602027580955715470207159268046018662411439192568644460862249793963615664433755110599622927716806933899512904842869865638807635334173354150431244817534405530884189382288999062008002949148814165910988054940261443354255308090534352246844674306182818729852163908975203060524337859731463306476455301644449583248455464991644336607609205614798817082086426996672833927132451581346660283786795962874281417303562491193706734015174547622663341263950353339526409930582517623402128884493646459146764367623731687246743699993234260924098759399500261976121180893056890816402727704164148701008224528506423660576662949840370814214961985923141339966502452970953975468567239106962245186912875857873484753973167293623427012750423169691510031691166513276547661521945313173778587205198173503960915741667009903705120533886861856777969998713210135714261766971792072618545068303129589300166972118834148304132003733250741315180150095683656393741725795107072142036855229545049742584888915422531828424096568716571813485699915316224504766422058990030417670427172786098135899794188535289283010623593693433821112886945792803462673771097586342123220185242058946271870570479921774470368217375051289522551400365286768996972015449301374603792762240907490155198558170082992687133818485807286357612286359472304821276821661984339442406165977887467333069285819796085752977961723262922174522044557248494627001586758494701448779594772913618424108923641122854820623313223547331589973321678757428582408345255030385277777231792966721696814367289556369565827033291452902105770651288244604288993297097789765616069174690911406429762454726024057313823440578052952560441481029255082042716218178745820965921504185052034834124314314139783117746199257327297849123892191064315652981342151772042999488644223888277914832426272817564166884657185291171895587402692549427874667169305550387378243382842084076034390534594342341481396142987405187522555574581783361504790111812714718174020292738177073093676304117224589212673138018575480759226229934983010354647799446942471732060558540035497811810042121084154845529269958098965858219727078100489940766573216526116957669232260182593660584131749392900115583670747127135770075977262245507888587130728708611012508110221356031871557206211035837783739224142488824966002609503147842666786540862928963268544903483768037481087424961831689634418457021331488530591516660863388737312668094993158403181767100894243559761720373563507131441243751755277699596297007815510856876288549217292420751366110978998526053831241479241583361060023404647892364735839578461953177175727845150245113893735917604009403924177107423343285400089157875892993010983195393463177185105470354101572796229594777676824707049861011609011861643884541644634494643570279351183258328938672804325677902227053484714031852292985622430419919622506054177297573791922012797440700438413469637058704102976886096916001150319410397009388975343089237848706861578718382129279378477201122967713286726615887940591238069054878176684709278301721311898987038875487502295434422669780142465214912314826352998894422259893117606798149354559225797912390918130263077721885960218391562986212794315649260727079482634286257010021899435909186613520319175799188280715724406788124482101252970808088047345556263942171984493550102472111483059606332129656424152962521167444932908379417751894933653888274786601841559583390013814826228086864995859389117498041037329528489819117524689496070713019355431615001335035510754683367415386383938580982117835495684977761569997001529757993755556374179375871844671727391192954910488740868330353026115423740534281151980292612472592560363805613340057073464099787867774341423100074287955776702099716619899456367954643768670143500782748491742995540431675221339213815001026051964113243970094383840527447939197863956530683803683747554221564398180592593710615285888565755783901542041314363723510262522358603171869853794020213034231436318961536611244081468802830943713027942749365432843225002407798769760272599707129929179228381411912470646114440142594787073170549846724344608982698180833550146240233466699466093043391909070445390577372830286850445484243487019253417346898297192983187489767680004534260098056487013850778710541882862611489625457195373070536832635952881475484095482012894796035174892397331613976024145451775887004798737925143481493386275294896276955841431676211941753674855889398643301701718795559898876086003272266504522828650932007168467857278528885970795249637693776220409708603761265770105855864944021427479369911972347157857833037422321584526159241924918126928786880020645052614553810162872691129311016288833852327663345740154728391076191288591740922224456328211345523755538306229121597291974129598733685555128577242822505189526703365215076379657537032778278992455501182129442665697253648124268687517484353741768571730420148405094299025624734187730178065133064609436035684119978116916602661302094173179395208378764638949631015559733667226293874803127027525497495189829437799452255984386374119894622294841517300278723603877967028152845639081715617352009308389656948868575612161980515399720125903231181173217986797096616632209326245426222832974789441638490574254534565904804094266184528254301093936664655761087296636280832494948337588920975447172151052506579197365525835981031083269712624441819606778072883467347175520854829142832915438111776123470388784608088706716539077931747830772841570147644931871522656795010423808028064709761637152565886028271363174315666501776940412872541867063380368210150422872860937344382416346805373276282812495817011314226515621931144118266445341112480538275829634223926006263681738509640555159121580505427426666713450175573085256508840663339354556483338009279278466786167051825359687040725642689448828944371244518603995389536249511058871912309222391732224939325496075723531338397636992344755253796991460193167801368977276845224184655224909767479981193948281866302494865440750805228516357665848700673746376411449055720594540043154096556828282420500249647411500143891928324294408435154464865920516670323874146912993431353584354802119111831854507582054899483201462269905058570743134953413556962447528415979740888461897876042862315029148373542341035810433545332103263008889934837435593139720985719161082762849714840562952290842826618305799919843429739645101500087693061074125747950141183442400202181701763897679246205658887549545063843824531151828265842680616920335904526503714574590095553071070839454537419886458656774725314258406736530638569354567266984489212821556072562925178720777867072175768707300303615161004538602857598096757803413564260882193049074361185398321397921093447551302121614506439768058167976148004195030308426123486514567970619791348054778844349692385335208208387746285589649648118775473474402187706349372027567412191349766743043632238797513560045218092241089894596516443119211948694130773823387749967764710598498020267231648261560510353964279271045490983433567285108789465369300229533799103556813375907670211692443515623041958248443056175885995303310993860182802172686923637973425427891025998942826795145675135577175754544388804842771472713428834816836540291294917074281522862425501563155657164982647359146049227126840965066588503850856989404466497888709503734419757379284883213484438870680278332868247514970135426204724126494612989480575616691736463425352820213815764210815854890317285660951105901011497380173348914756596162209214369008995974244326277003713232210470486675804073940807673719087529574145146369691433064020785316818833268351472157543024907062159400774678557834878607765394849056268597741624061722160013873216307632171343811118321860424223832376187872511794408362147421520604347743947336684509435227062394716066706656391398039493737306974310671341906543740951200148013597545073982711801214887716363739407697514609987813467807426513347135668163713947594878745036641461724690089263551550008867572650510645464315427321269066241243504037140333463392007086173005185823101023913172626433714979819486682036162859144782481375628067893730969854622081340643428968815530846896306298718241687665897180369429073829884761838827980856652906641317147226866043564143214862659982332078627067365417547252101221637185388843389919530510149518295156447249795304674406107846130720383990194224183036005726629921574277292503366240491134879165458271813885396928936774789585499718993865351934235281390418770025223168018741704180869693546520683266021127402540367510578498940580490252807947628736689143786921540512935853436455324731482585424425094646474340810381002938458384844831840875745475160969074120318624437882573106845620849446819384934795002573733847149850689758465507560661678219765609150401933245775444205912593221575581212672027716489836498112398556540554278789943754948408423211629369479485034233376183577720190059508235330906933429431894447715909228733030069411245661956469962344150159204270050273536793667485977812260776117692798454685266648304300314261981801489176132733540190985472306075052380508891953557904067216075859135598710389121124184928087456337235486671153284786599348234587001003242220697936672606238108659894228207088387418952386681568495850287355947434213532153714730503215805437559811243845944698988096279379006217762144663437926332881915062531481779471106525457033338611627593821732921178826784435849058065324000834356421702407211810304746461660919865915010776063541597361647770954750012223554157580141125923540732755220194048769751299284708826319059986551928565765283172015552615213575186187396598234910694366176930805798392381390681973499163740347071969020816611098943107970612762820571464068771104497633442631134478934820206932480100681633792853014038143080184493947599434703065576947512795726056834744318000655553549327472262621135287377763111229128238377971913851402458574199109369420845164945801587037351179833112879733974909335544036834653649347778469935003312388356114505042212953686332188341289462631496369222974051623380431854740033806377433080242075697124168937659363431620976298503861727583291340360441039476618342569096030140697409204925701532041130226401955510690982866248964475527782225134272484360668074177700234133417754674574784891331339432523058885752361570088261155947000684247108741720061830252566587013296266537924889437504614068335507469284888417429032789868649005993255026118448716703912264084967022112845277445537078183795545298433088633368916442506662926317919772115737471611821874269899647285462958056262052224429701719441119117915388520570634699867673875334550394910629628542452904116738747749821373578263638575211367401576665192476499359155529859584960782189248759930317818411662118003282109528813387521276688925609192290754875226478056947199091758222343509534979094443169287156224009084521310084282724438954492580939721014615150656724841041469424653202151664317737284690930660490342119546225937594528059692829189136129120305926713189670163100463892631342141615947746346386587995880042684013679478726435763295738261591965587043511811090952515538653202605041609354067573149453225949320426460256252321070394460651927845199005996677428134444803075783880842228588432571371646448377535092209029788714262436436222330831686211757481825633316473334872023703966618397281285306148682096745771444551299458908066230554370164403946535820358195711846542148870392590584217480891731261738748594761410535775450782595490243597045712069494743026124792464072560819157614656988740919885883583984430892619712293328533447272174048351076427166072152405627672602417108671391129819080621113645015631235978348912774477033188920119704757120625308352043916234724318119250704220328045036362046800023085402872479313208622519200174085483444522589000674515582595828819541429998103117828846866378878546358634213423026732150594162351778935967132024374404756223177526300331419382182435191650147598153476284511628976189274059476501215315522031742978189872465984617714965821839974159216319433942001231529611964963073835102702397513528824601475730324669244518974298942478041352284726401907710984628062297731375391110094059503253974148596149616913936296974470322353430484792860146685062918422145470010688768650267806712735346098947963912490529406303270571709499315124198448233766789323510254252395308567971971305325506662819278607667353038811136081920795128939714876259607544744763027694388258406229875984051498796211750177528739785446620669302520661021050011946563817212638940770570385009501658541741103611277563803921124490816947620135024588632430307484377246863363259137862675516214843811971718563945387812033351423694916821783743224054644131829209659343021975582083999104360027264006925697614503047834602774262672218327400150322275489903082362977128453022276588932136129591129797669348132162554835629197694379518667877861914156760420626114728856219925118603426173863102391476220358851036513121815385977452993554226266961835890406591571739509439907585634062688775547018723017970970181255379006213192846190510924820680914116910831676247037397176488161285261219526340928648324051176293188614564956672145486766306978567400498424212942489696844529458030347098299317591354692379592441165617266969875221806916631344317738259697239884317246105740064291027632337651161974073691222353161298840686896474079090986083332646187522196413074920513975212087010269861797392734527665981531711882928904697561345805837931417267542841292272456488093222115698820757958389880456054488835145120451037808105780833124174417747947041282971485951403583911597481978978259350223942133108957653541300745239118525139407602606137023928616417170656603185955120046561940244208983121597000559739875950194385480976265614005640126486108520087544557358308111584993492512785425001039878607242599652659010533714569592350299160031461253803111172575883762577652570913789097687177913408237088849740649360317036454731169261476399083992993862476992096628074849991337440668071215401267818195183493490446212798152400128082188080746608514964924604689095783114375525796028693202435228392933375669331056525152072969777853263325480862659786066493251790558241676627172151114959514284306465970414796609947656806222871629579382261465660551138231525863914107195021319692667551433280808756393505861457167046555909408802756151711790855193510109806347594105283763554396731811696600378348408521347523140566620008451770672837226771924603495005982613853060115742473718307453448292482764210823548692531868305032644136544626501865333693328161677163936320344305763813481149869656920584519215342694288990498249408803889011847162744673527795544066485420387996722883732813164367573274355769787729715818799180608134599798565277341838712799547183494204928974187530122546847406940383974026763539077810319636198841664472728835151210570845872211499315749330049135365136857246667670416987116191773722141196509952697622012472015011279715800998231156112367168488932682553354300780800688670620549647786045075546789253652419630507539397838754657194713574938303637273248266826215074143263276663870737079114334866828847666824694309834811944290736945509072604889810655276345212528024839390098999233256715874956332938109691013629862140861936998260915749457586112953230683357078512482595177384645028427500462542976939875084475567449184131155256862522275440744892915078484306281531243438414020091850609848433801295711863746439567915229143680269234821421131866256408451813460314165371794192052986538820181718973444158554758013966447004373518840848899736229694887030911869070536923854285642495306524726603701643710946780153892129166142303599828298527398965859836092909495152948033055771936689110600405281648093801766511401146923660949788324192946044862813342396798234471761598541404703158062654061587793892631790539007376902413093558298337892640339753539477620463536532438114396971153087398770620005636736552063960931532341131631078628873788146273365813199094742215982726058794993959884203419168488711305392162717063417760278815263769234476417826750879176821665420803620896959376669781049017586924902485327222732579526536206130137111062732582670497084189402708246470016649080994936530226800552338461154850112530271052077111608554971898904010032796826592748972202157651564347991264742205256247723856239344614996238915574187613555194409834759003032631275309539011569081948314703184482257076151963522954296194186634032452086066539275754813802504827252435106142022736149981223451615566802720997073339991263535467455520778633788316289025864009619964502514601068164499139110691404171695057581894351920683715088982830359755178339901075048825190519306110451792279935793021170650494715890819416379979247160706094757951225084136285673906999924564142981686693634683736666399659457784463078336930789972473006519180231968956292622392121409775362218442296651690456545624341814184978136352950345050586989099869456752973285189161403247590720673147395072599423293466356101717700070847114105052915867315122927769883119466426757559724358828387289116194178769239824356664888744599869438655542716938720301038442464363822288804324682906063814549949690212952680915583756069810140292008918183013451131531567845580795041970113796740757511331128597341336362100753920866313978822060054981296342988704192564972434936438886838157727156505691814024054751988855007558561519626079587265601373142876044680472368246321574722346192931485373882747135560332434473915928404686084448963725135538209323262986137535610548942554651613671921375578656011576793342369701168380081427121697597498309615861885405130347536841598807155291817416897829735124108456910269822145210226583292234206682225914758300999488877320371959149268522663553256448490005823608937790474488787020177272111692643536007339016847706689870450357762557018513334650991340216213403229485634779983678152916683612496893929000157303484731188251407358794134090814708607308713699682017078390697504864109005167582663215739941707067600535679783819179915222638219456639223751664067685678474493992230501051145489884423314972955391432842353122105138472297665620130475280830888434024557405025400811827536216918428507202291308620606831680363650208132791807070870909653246951065208189523207316931221321232145484503629129575834045736660663027817375302279124368857939878423009744373288104844362298505650516887581556207011048849626163361741531759114264236433629151563283182149095605962080530624324953314897507324726802524828734349438388284482688434816842411542692343746846633830561691046843232251345984407430600014171571343850366027020883657197882866173131401135945954310157824208892214393609332076453031240942093737227601701451999456754285725945999502508929468732899800062111149944319884976533980762139391263101348390919477999590917347744997535224029259632360820313425877716351715782847140743883234927350536840289617829952951486952402090584110259245852520377675969118454581083530632830025544825499368296983660870192267186432417557404143255514436004999295251305439250132423769339909187300345589115013429861490674763230669192119665058978485023953232878263868006773369786441372357757778537580440892005919224358436774936001928163432836571163312376375644837882499660876256442711337939278257894678683596562273621445540125876739420162864754968052276783933792125196763356068159045138611996558384446511687852659541113683402894247734748002573568660516841515948955795824864459079250696842058984156290515225128516969839528330218624308310739097379560791840402109283734328669005004339757594571371965509035388239294560580853599017551061488279788777582469198122055704425124310789000042259718834294930487862578377959529787829570156762146000146945779989377341588693266790917954250722364955565148098941443824932876221812856043486073104839540540379624827004433177495290900221473062778383581871345576275783901562366216437037605344042618941960027957141128458519448017785673663455509844298222051521859060643472906285506377408671102013712145173285021284836434118214040963850849793013225224972703810637959493510860060949484614306652207759789912481013975374076918095662306166559453247961113743631145773407373913969759762694232639246235236166762940882091195223840611584653308625519554561778676000795770006863376409760790482896787009384831339835271817082047621735449747333342762658370645996880980666928797812471640490920095811779452011987340771264907705479362104295737901385807070852526162113988250198510064987551931047912008681215126174494136857493677392211196648785236179127385442579689359036769191763126836847531321385713619586929610092571303212125089979323118985207712626628810880539085362731736329368067269424305630314644179321488739664194740117874149431199566299669070042011653127568347381107836221929467753519659572382762671453418857243058669326544454479285434430636502572658226680962334108944952151439278994920789231382692565595373381463063918439547283298412560154685237859377330863794347187370978975551698455735531446839156464906871279195157836186626073462785703938503081083523922167896437079800164193139921794977790965041065161272690198039215925212715083347016633947904455292200990975424781485696672972169423941657852595151369946132041444898289725787464868800999485223959844653946724663338349655989654680209669925439473286683556729131349646912090297880262032164943849515152334519031844935921063191904937000286797197330287521325952416317380108778109151662173647470931145216958923275300406531620642449006981046030942572283050189683753132365970373956521607962554079041562241245371702482944775722198292738274958382276280442989390853147714505125572467897506191293031842260799777274627845131908962203999247535422574849318601633884516143983247191622228696331151731400293765161393628606933133193728394560494141109501163991361048718487065164273025161748612669080175032762051753271019069898110260562119742635302709521700923950367803662647959194082176028011856985602956755149550387104775753204046464307316189456200357759218578515859268866722392692348830507026337592204338063738532390220327030946385901215691262294171408961061042678864349771961959402004734013213544131440484322405180969175511308204555095832254710648144573633532768387994042404929619854621354164026894004291479557602012195338406376552273846458555434681163027485299521638549380495965402550914516372386168854966763921654847617612191215605745128031725425740494508786504593827754170309983786684391752155916432471064623532525177132213046373154871455863226789593651998995105373749521178237168064343157936606752841807309621083489844930003471591251199864106785076993517741827371922997673156873271428395820277147105462258343626899806779421857918284341037302873042659728332808655259317017266972599335410350334743252187333013997695801681144476413815298602386768318851080318229828065347148798585794740758349655943663559704906181945638860800803286193171022251931059201961698114132125679543742673697591557427914676655050426259844587184939080255661376973965067020398748396125751878619360299753950013101020539200597667790224792040349412468539478694833677485357485036680570328662936893558651253934577026053539986975587325213077183640510532299547385156381951202120539328527211804116555835610483389950952639935328003359658639307223549059149735887372683332007766398015947638322942354736812918578300259173100541343998351245244437269664941580957376816950682116776282148759550394986162297933678158393196793161976490541395579184100063340672248685048591392101094289698750053441286448156211987547602988711972964669288479901046833883593044135084873087427201564863099819024630798141734951233724098204712786830473083582127917022986088617807061544482218457058738921773388966521363563035567669975159157305071513319514662360499693981481789772482299188415932642496518542892018408627805681035189973963670822383515780509569834553341687239183063585813588422610264645574548170252038938098250243108712345358394677095472246765855569183670100112924124973067604065964388827551115604758338865906616965798951562793860425049189266793437905918031239261075882853133673394672385857764648437527300869293401414512897337031900024737457090843371990848110044207825050327271093184204216965535294120159303960995618136881376160382982690730173694714071032166331834773484524080149367897864474392370068196954895863172169980238283925601111833088874558588117501534594842832861704978610520840427495004108846032431267227683882272470629367222002624536652701968232872731829736101075249755772224337246283130954615948039676512502577927903364095465996630149630418018095784479132986074906415465382038908798863343511321416002508250801799139807723525962268509944221551737311909674649740766144488187970514785334776488516648566163843262721934519929331808814106931295851670235551360079431412188121231168885054859192455877780900924883507794084119891990988860790305026562733222314661873191706263709391826389567581461071511797511868829984220397062543146249055009319838555999745683878137012004157540595153872683571188792118568081551898016260856461546098689388848868521313090697831225072727980665481123947500701131167749665889606601749928868616038477743712341125107249907111256122853417988423571147096392149214524691872432134018482051715391301541614197273094596306866046712714776608997646923238537493528019816266263359045655641524752445172152042793968234737852557721357282788208358310087804758204477872222506688569887979121091231110267855441825542531521081821942645032191348671775213679598357881288753326086062449976299745627468579007985358755447403776566441344420641927050871271503834643960964918118059584255868649013908135567271776776102985628158100495113828586762083360076489982930636281590012637334303037267152620562358942890030607911622075709127482419930945947112673289747002221202274780952632777358725962822590710038002942341158816224992780545656084245554094166941533657680154189661829621542018089626064370236655923593836562889012528707032392128646386118120013275308108100647617899511796869095899393732781273849121935803736900989542507246818917641212820616624356607535651778434202711913480114697048602445361777375943259046716769107791558142273691516193928299528779063448469385295109801792681323858421879779588097427412255850440207089141960779638068181826375351842910227473466582271416240553556386006810937452659331507551871275199356670685309010023431491357140121381750079222340655845066177047000038471322792697937801954062455875429450731761758222397205548650719440706054504389791332311134919280972366521345536483772593225498180190024952040835002892293927373707650207890557499338295937467538145262894322644626692056018628373443293617400027720770958880532239605385129514454817148096934059516559232779505735216644003169447907497240234591701302032922946429820741393703800926552784450859071476448855444876973804527944831073896814516112073327216135320906758845010278615097739093358924952454157816526149263692021558674607700913306121873249982251406551833834114975760027303109020468609514913740087898251388072388860958982992589238612275466003700274196464952279649928056814347453065294712425404214580584464021086798695023616679961722217668070962470780137673237568220358313029225424943416155704934426467208624832815081490027740742576235741408160663333197799501017251673051079179057427635369380366888719302057724459936745499479164810198000471021520815612440769901133590101130124783844261479216572697980568554100139643289962174912955837186722735855702821767206129026299781862123983645552881105838185747255961416609998416517723295433629444631915465805008287342206683731833020855069273151159654686695301347498557795276814984092878170169479313883551760878689045522811838306171000430864126185053783926409202830794396156665396195893620381904437645081427346331305052142700464674478668676555257670253240621818273188629655180595458976885218188458987816347035313409475817554892610201416939581297494152420786233780742438607360004905162123643086370442615427907797913950627334247394773349668858104092344687681149943723424636464721397431335843266556365173000385453067647975993101075461959681954196389707990881903306569572960605064034318124629662404467137456156724236539473536595801161180454180647463796185235111522921494839983836386801878136449352708829676220370338717258997441371583161912498488817769645194682661899802689599293053255018078227105535021153022966520092590045391883047473511117647189929397805305102477840914833552230964136505045008608289756772596811538390733444277227798861650559754751018836635762942535649678945025835750049804039716576520834046082362406092730620872270385353607438542161752655793482836644896987529246436124810419931756613866820367047036331252091100908207461861844649504003938129944758991518868790320277458885206835266715756919135252769291196372568976276521524160947056725211366778077345221937911939964170853338138102665974450657587704926879732654206092778525554836552443678338426044099990125402796017299464960284559394121218370816394845495862873328843690186028177101553906053141882557101537963799647355359258423007372145061191712411780993673271974400189953984996709306875036693694805707867730972332251522505622655886694608402127275018094935325190375892681865606041369539440599504741533717510389288971041198997811233291825695247202143974483055852704542743692136340581954483901691937237477790646414427297800608360122105542244024191641647846593996306036782253835720481933279949678526877421792952609858033478432951593559490601148514407419245152530369337399744954799140003412924499558784237889878591532052282449895991834664687336785377106735627634800952164366286876046144115356070448606334356383659290739582780720653470533032320284187399071888247469825961797604971281266895392610980202980559765201649094700537958654612556748184954801148632188463393892557409190153634821682148794880967381016666423661944215387042361217135987988338738592191316099156977970474023785882801354216802303371093515641851840366749510818952221744507315650212343727120704652071954040379550795957166631899631685639701119192506895124440019745997927179251172657790806458835676360899341542496660347604630194292131689747187603865746617568807997923354630929657801910532664280755508856438893728502388486705177478108997443045775822268810382448210080871163795760246953837910723284771708370066722409623876813681866047295045467539572370141867660861951726632069607810350891841482966074714400650584855520269376709532170266941055179138653778751994458596918793482398714822468320706558461870332035821682046563863606970855581988777159012817494296772982400622757202396699770794746033075746837482391332050359910525883109632697752568407257534964335711788377063891720725991002087127262138296031020293560755694843735499535979792659750259938014108901304527010265685405352339388844783282691855759340606809504627766933813871324795596815811349517166227812822082230505850795839700336562926137122206594336224904697588962080950038340631633279923167841457102049095585060080660629968550612267350974264529923260171330631778998975295354241913087309003259352261146156668247083918755107267654606692670607508693328072166490089259852315919043323632908499960678986779191348159338961612237340048995539538663649873414369594682051830076737775346321736999112252624947512916610978488237369002509515386435674773941884372095386460779508715901898296357341878423467187256190070672874374205032261527944978341276054585432447600280388092850516045261781095388446818763962106288084148302918644289674967173369657998558648993186745719823440914288126500771060760052724005414408265226093274748391323819837235114260500966245559495682488460130397625397670894127886495513655306377709593852430401818876188034881293643745460551303130096105049453581374875723676718076412218493740143149957236211385701049603022899097605288519962017596632735653869477508249791718269480497489428623118603539397534309721664237149454850294538390498271988163915832196401335065279169881953982200339773438484872508446398686363186696550096673745936015740469394332924846995453013361182429698488482565306930625615368226853561948871244071416898578252086039537105876758936639138570392498087764452625931530049747044061098382961733341705456714833984059825795660094158404344116615020140045121277033699156920563604673262101324643360235056188926584103390741380981404711194394904389122549410901410082359698231277990253008859026152881409738704567485995007280613539013349734688439406506809028714598558379224075489937521001658904728404556412696685925890819237324783085678429123781586443698070474530827583062231748384571848777019821293600297177496150564240886970400406807817584253708458244856859817020633685683630956234157308051751910015636509989225636287519786028269491437464518938711414075024701395938268936270010705092500996222428085640216616489810795805480274630728845494634950536254610841829537265686807359544717203437459927645629662875284745974519124468198601171495143472280034247700751699167715869912963994533150702639716555333811973792559801601187880815154063534530172801321276647084380638272117814681828518423201044187497871414941160621429196303461270807749973001917401356363942307864288567050586318231484857590277156826726866441704367718216620052729819649754428598266771240167856195927240323149966240484550873570524338220210491424345156797832940282343358147368250303761422073196449388489420597053374407619336047090098236795094944747920371684669720452393582283358746968604632475935023489152050741083176522510898143612436682856128462076112595885708788225631585721717578525566766403932148115601815274709320324552959198454197708955130976021098176994364492673823071764872289006827497435226126004106836635466009035925319448310065828972387628958037062458946351352607354880042648457887399105542350967654596869345707267958140289936623788745051946574805657617404576894708418105160031960794079232404384489458722794159636903040730932708870914086980215287506351684608141200438800367587200187195760421996242874118181723146179251930178619536394652609216144354111541584270981771170049402207582809872183535133589347072390565862763038841847194636362552806696943286182867640244535882334262829271935083534541038420052928754330208080707334386639281948825284748277956853823542273638352152863828069345304717446326612611975287246999450460746731927694492491900889743756772661798841171069932778681816941002606786548375641527202082523089341724106706436101908824415924723649558560942267134852420338636684342850026256252101264661027157871800533453242081516217829862504052042885750511274180632076392539524020266240155344392563469595620928707249178260001516918957726111804385846176255883726798300921039928130063511560503637530328756251473908982941250925409340420547313707415011505800390814915635324950879081114101121962227922026981424521012227536624686994458123977687209826860076083277039359644569226865292655456918671786880586508023504969182891985764921917314937049340505475692100700618633096163042224254091926236120678084179337357951630516120052597989216912741665901048260602868148559056822778452077838719970616436015401604549386283663343185423205040271470803063148383246464889228531720130315362129774867520793636786419004229768127415245661137722167220451310512813931985861096380030564612959130941003931091567075615012098080674791374972791480485287264310647164710273807562190569471652167031220941553226481696370062290259759772164356856610410832668292227602785453056286831928661359405937507307804897841791955048548957442289135580818645466596409137551509066226296495798454215153823588361670793603064797697476774793342062588197628626543977921229528341709090100621437093498996640328501477014180885025836780079669131519674418346607502291426140444950186612164705615127505673317645720319743545361356099440972286643424258089213143423810605087924222361160712972883123368070363047314895721701515129608809244156862268475253834019102968650536578777155424859674380027649409849574730198617009591739581662828251164756429514007881396504164243158777930589716474166402706268781597800148024192158624892672605131068897540977946295474559361423386907488491994825787511009345971220056625287378719376764120538520967406957609493000267058407977717940951102098412166977273858823159151172321821472162928982060979546502743068096261620793468112145616123643620938292182540364868953174042994193322930474844649041416691206559364525605260944232594147554458358079547806955173290291380722274734555957687554747745426311544457969023749256416843334097935787703340470989963100757472125034768358981570113588240784488466098738827128460903497679065951822948938252503266516109862518486233717238349749734955020114249356818262091364207527280271119604168841727715950394444553336733777155250483279146886919253266947085689588325239227492455869606672025390761842603236758655755218775339123039563685979226832423384384530195829979467419918160825208396659823715458783895926024677757231235713158675292964407471460183822800141637037050771836383921009991812279033171499583706419426049570131349906155708021874060303358431313153577081922266857483164396620319948872936526657816510566778990377548737013490000439304077622720098697983644285223036794553582402206351030658019543904082003351662726320515906881905971481248742712125091660605364815141499566872761509994256408612368787106870735502456311736999529397646930919187682676592100142182463533321745378844100288361850932755718985989940958799646024093302002800062755156009988739159652564803199284760038136118823998810822932063312798931431184863097544087585991279948987065169380827710866527400008635353617525689339597730655663787371440575252051389481577496678550237191635798166272185645661295957572743011741995880853088205950348042816762963757038706514064380420151374604591519461181627245121672507126650289093898447687271414134885802455290069587824034998626761098904990034452999047025829997393173372387213267316575316317363148072123142256064258255595604524999879343316837610499359405155290185171809144853116252635814487849561171297034747365586210678531141850579361235945048192778175232248911836346858480444234713631941619633065636401584374680750531890945163194470231650898461587276362707601130498272675819138999340539332646791023174375742930408119955380941560763628233767632726125888917565339879795908041459690780196091343564007037397267056126429268292861517722545976772272013873335421070610960281300012665979164211686480741385204205210297768738890583946366094908405555136054017305582046097253429710426948636949912568033973343390370123940473964250862580150282470156848825223275111899169120716805008216689731111764487122371085379557045519147273768335054076664341666479688118784874910506967214972293291699645595865575007679368522251537211870908604366593689432741920074825623083158224675392243001405535947665529310019550530116435665873286412240873710597993046074715028880172901154995409269788990845363967369909471831544628525208854794670950200247412650331448963908449684175033653117442040679518676802824538393296966288082001786030952003941131724147544419374959231504402021868710069758179180031921080560660903604450954989998681449574932544160561290589822739846121024095661191109303985411286040679410655703663736659138956565100778792499799510436580566390345759121597967953547014854501840964144110369613274241732787160908553548789645141248365268418224786803420122729213497219971392520874950644037752058755751102501148143313800727743140023955480370642635275955594273394987760600217815206632046001672728083672373742521242098595458165432344268777438244870915079180183847892932300141602854110181807512782450758879709394852915333947287985550316821908945632850408429017255556524170107206281331466092561822030155111533903660269341039558439468493345341572013935564890329937305337465337633102360459492700106075389047290505337728694567195853589566616902252129140477856153137910016206586857411777332921399914665570099857302226818813292424408007736734745741810193586790870046077770182169606328005801926498239444495270511610955364437408986516846073887146141962535924449147172744806658526751295835378864857191767747004626717341077438641440444724372150207124991123632410815348605281297795749213021257990829375457501999113588975166636101398882937081183549752563438015822865541062899826912767689728466234727762938740859220675509074788298297685455104742861890411728755981669658673364058593338720412136603650555118931291336450584429513621323590303159647792537004122747401190758722715968685067805548673553201995445079276922559849930584991763590565720880462927528690244194370224190417787472852078217655593005382422206939354747470564574957209376810682375733192083775619480529117741713980949587304081430073311387409774747328160860418027351280418915984751331861132514118494060021461141432884017893055437665166495763872469978409633137687083083828076774216527038224023963849437669055836344802872707904388110065271017471360492991102182728212145246413259581732389261773294881069028780472135515450055505368781077056286220920140421166148245606347813807394075033014058381443492194752242061047434845147115318754011981099236809111323138161347521880612410821332252564721208626472913110630600734335429492196242884808460379206368194154225217906155509808419886898139135209794325465444064529795554257028274550454551405052321207112777848147067487411609407768177075224255588526615944538790799701762136002110963917320624204335139944703099974320711146611546668166745818654486960691065374213770261725413523306685312261439373915732466347763284055188363147643555873512347084111494872880800464178109740957471145497144735311343190034126320875179119763500628782096215748516317318358405615392104225762830404814367867870867875973492806921275800378445629752768939615643292272293985328926987797329411198356572786399835942133747127751963709455343401485203682501651735150485657269688650784313805601708016804817762367885308580303148058212401008698992618833911427077512659753260688027330820523532079245462899641231945294360357559769422839816120219339642185807184687373336628272062613095263250181173890162481915205040137697670807658337740281548734299292007330781048265910123321407958422042859529878322167264966694625428372466945078999483238205589075601664524986985196072790612897026656367330566373605574486092550726977502611537619411699014033408407157973342839862190571148822458578994548497740053999067159042109494841184296603280624112075408088633595664362096649063078662460475497194618913408267223078370842934593709898989915451812006464214659049025062765925448530389969440624519532465947774195556847553127901418532692403692792171760755908593612168599360136154642497422156027107008785658953579307602123189850455719491059531184728735158314163212610035090656051228272607087879527309767097928328379905058877702566788076662991176622531470145018584274107808162483000873425169281003750372843634416264672017862060983774036092858218847319934011522468803333979291254595130420297246005049602590718674740644541094748589841037337626233004000226502686759994831063103478274120869223213715954104783669325138981371428017487963613452752996994795512838719678484311746190251752323180682487467220751734034236106724724710560348320794865792823731698906003750721912711830211900989865398270793352088046643763231813823700567342063305935183231214939725650525071197183986358649749471314566278767301668071938665927014868931858453691368990343523098746756715535034534630259644905952622543299062210595022029673728198082783721945894587204183765316302527477376395507669365573663036629758705527675893715897167366858623048420478467633060917358691284570287137773114285699198966237963007342259531556517869937103688165996451767901879686208104062683500929903261960468725261483108498399992283622368073238844793835138030420206762398148376352717260109330409505251932999251787656165951301506668201988746526136010883919116844501753504055071762178761813787087757014013283396701900638610258932482157046040834814158997302751960938047997489723883846198875582505781985331002114506181899361256685389068229983145939168883508203239094228874745050312537353678563701452796390347956235673481301795788434598379500945548507333112016402096938396577771414173189503711110104064968796038350844351139811437245752229980077053415502750395482702716040887411348638813043503741509254464972981941824502497920780567729627986941336726850254411101231823620773405741300173483265203234167250585393546318136404862998208384870943714871950718051513160299917015244415210455847957657643863243490687781549910066495939179996910823473059939794632570790584124264729428199258300199832009193934365489880150774105904046662738585944032661311873896495795774784568754675519943779080074249074744788009989783729890158861279480704339583097090747327004325642864670181848820137121062859851622054074825398567529722803472211353740768034376206605149712512129928299967206695869472637889866314514358313040357966635006159572178571526916808339948809088042117452312385367356893890565578094078288897648537162391415097510883265408440740123586133150642668100923063236155054695385035827198865277211997518514095391352767502769190688428251998905451709986379855063999687906991522050541883762364801680761363100748918248825257554238163713189421962084379927638757092199131151248361828307509013839172057652534566411713298519819319894465796315495238494133151383748535087314664982379222013163643286485015906036580422096788213855773417106006432641488253456465793852409573322381869055394599602114253526861029612807574079503613621726760610190045475267871360351984547572469717364613065177613372860667259123464201994160161691580621344517634231218308338016660505165071434151016566553633703167628721074578306475165089011555751724835157249458762059048109632691422422112227489943237222722119947381465860227558740443927493167228774811493884080223302498015754975163822860820269167853299821731830542135351003473007703053979181881048725373482223937908549455694271464941294766184884475708080282979193503201980371023684553898110009158003296404246268598739155909217652140677463817289080614578949247139733590927142634998170717113809506403183481918127225305278042744218486522847977671607271935723174434725118212125965281130228984852287166844377370330190495212092990527866948840231832170232462349432992469569893913159761607548212103825745588308134643065184413166130405314383571957684788822196329592374747694374305668591638121620105711336287174634796902212469751523061396951143726454533550634866552809328112715146987466918284515797155959352092052937659357536296597300337244734797319290288686164964193517814898461571680619622327913948683025455278964200483118484013513423504218616480934070619423580771878064403378610193616439440658041765580422265329385614111067412685036714693646652605811163873751353320500323816629447950625650008548826260114565597421266155311908405819095899487324511625629608174814908401337621832134840229702818750623421080835488058046250269609330379414610450877407330552578953188480518168404588882753624770934185039454512211159586406559827223382690693159508633393006690817623692831189723753613033310143863779517818492748022527218604443280137337678711032855282721438649814405337786649515185072938734273731767983582528713840431996815770030448988733653722573443897436865714440625631767769005372074296617316710906456319405464567175715936187790077236653329862406514351754421389383162637606573222038367803354961269328903338175007941109279097143865400769584340425404998576495624334357671073717564191579705516923366898019927767711467751451150016868472757585850737266218510640176467776885565162166257883485247118983273262416061721569138509643206216131931862359305503189653501414788298609040115365206064925313583510078328385243503282836898058692539682820004120104194824550843866833065784879354778295071507855379023967288435999443246765385044420688820782612120564399318832692121149234368071749212510540970779139101837620428161494460861812795015493700045076311101027768073558414337978334270750185532862179216360578414315486582786929191829818802020253987094224279059031765512663853206910972298935431055353370274728178701195968792455028299743382967994750024601436570323867642725130595107953491605488156118026986688528619673430579076128779674853004419070402432670447392206313439864490897587501649251721000311694862093204999241085399934295060561156649382780647561386501099272098033847635039853066208942415731827688110827860491529080955960355126038967272033413999472385060330330701513235096252984723723347334026404776601912314329041628367921592116235947374178224903239591024653061524010252051486410470463063419461423243660041767260564899131911679064330134727735496351003990247497173598854979891790612366143910188698979707152783845610240408806126620493425997793750292980123936708296598179065579371815335384662965352228855439623959786029965886285026084007431441787239614132403052934063203188393798242410443254325227295088260036210765385047743188684683200687368802619951153691913518330569703003535573016498156961702830814264652037963037289394687484254801910420428371532017320201823162648544536236393733731840284139558493663688897053980617197960305098687121472552531571183019823743982625361114537336816698530406216094768712936054592924591241001098483433723456834133999358610401478521931517159341070152548646984547035710461251807696925342920291412047144917419435800824147140379642532489748840623505118703805490521927302690376032472107685824018454285016980904178367219302436327912156958536994038360623413641813948605624211741942705319652717588933925403221837103718347918847483416294243719511088840030215911607175316185998286735167048355499323543916923708131484601201530009689053147033934241410050873072110089026109752283775828877161032937989700540583675706995093450776336096230804983331893835474970208231034146561497491404533323184612340467122610253705577951483314734206393611451391556587177281855838398591709708502812660859092816257744494248042708119814775863696016630104203253885654360815021727141602310726206915996883645529709195472791892072603896296583013759996397899518554066544208901544304020813568603279284987061667945946110173409880213217478666853233401035259633353977412585080299585871783908786139879285685929747053427217925223242977649896871132994217260842813443243974014311301967766231013597236253364327115775692719571486364966886670058913707664381740555195895077517586368936734937809871668154586907185647391530909916559177609335794832540086173837295692609014572976547700458329027545194599646934934948233128788776041312404765801781417498869433885663391278010515346147251018849842290950923190735960557508435015635088482178049284860126869722926705630604572973656346261186888556795695404035578746247917066837530057812152058515307717369624376591148752557050214749504533253270346267646536035541689150177284737757078416660505637369984382262439669866023319169124539626394259912789188054316168062651451543816263599396939811039736851089127901465887018620599764076923812948804785028090639558790343772820399272744994396372511288305809920476875201876899734712916899992054787744022028218986647709162667723993241219745964735005480465118589373779633809499710417225847700121435170371298300394848496868196146307686544153424154663149089431029207810204415935901723822947009311666440615229564539341766736430441140350274794873403583744919218819994968737496075689838342223055016807591755552533289023120220671537387684966482477780487644494136419789108404500428999732626143997156741217224465302528840059644440367864331945063383130679184853009733787994939078049730611561839308570852206834143995954946006647570001791567171245634863775462553468269180054000798303722530863953788881829565684872332444998264767475967621682500145930590448703160605444050231519952021481656401890276250432083605646518027418868298593146364554699648018283219755390670104664626544740914374226549069935038783341145737039958603373831090910080780476548689728903200406201178039404565527407270180111482857671926476606203472924951539728151042590841400034662236095661960508797537411908542924331137458613160382226994733844073734297558948115152817912576800685958392548762174195851589160271941734937105383620460538571267724195420635633270486098078995199891112095844353022461786731647522164871501370366940642258338761836837179797796646373391407826925553587530822966533739657352322352290369346929431881761570030624896321350044443025755946229451130151756693110982982882482076484116548867735712905810185407589532463326626184290741471472952887924352220370739022730293260816469606614841973792170939668104389003197879232322294553135094487019977325912387237962393667473532537738346366443263881594807409869856946449789308481687429621236602887443777917025694380687835665386660525350796581999144901381068449499955402856100093276369917402057250395837474040439156790551601304657568667870926218866168309310746200194806059957253561691906302188292153545057826281361443929947082114957824184941781063264849271344316190923876267328033490892218448952607984922332023661060777043162924347045776518963858735829282511129640551554474567810761169341849521094790274021466544000971280181565330130348207281999532959075812254774732022557530022500546560350404865916911943548853560743632787297855042690043827652864580646759799390354552777364857187964128741006811056358520358103436701966366878124282502168093553420872301560580610518717599425584139813731924125332856641159592500527221234040338272068942622351204413153085178498902814045425426028834560884082940676895070755894384535304147618141559450095525233020916222666973719640365342048768285928606245942871964435164941157844454887244896633446394743649788536566505394129467023631093969339203886591420694984777557484807939658227104079536523740784680029977682112091767645523327961058689984104090955150007786609630064899375300555074269775145188744526167824897168262769045077966376625528807735478348816025451240165955415827305051511363622928406007276305130154729473298220871566360690366298843531415930949346818026143370091809130375061527456770493709002316938202998627676734635667320907148021848408541892933052524038916249304657242142367918788643091817545676634973092684255404481380332431148843446361079328981516917020246418637751126761759687941752165445308820663344855151588801086337443815102663130825077511331845461647437004060955521064681303024021994380210544878787360757941844756115290420175491367652180079659178209090590795757561546920102233537144322375849573487092314211971037969674190937125173210620656581148148174262350455411286995513968332647615057821433558415613022356116749286659280540721025889877996326497732125632442365142131792058298752183998865257405890343768199568939392303551382260307884353869370885434551569636667164275530783215285427069772115650874842349876381225738819119213609906616076298786130647245296939156419452236550580109844022104058693014785521271399504508486542497329420909147592692845190065095942227616555316505604151067083722396552141121144319023240167715946687719660816842161346020033655384206306196335015860357000914006276144393897632258685738564096686311613586238975504275074485535706728961362165408091820725723000249386633875015708859853523598587048399234523918483869872825411474090622815609454178875212504574746498070882604409697442376455062359667113476060593269595618603903414143298023636700449934083944698305203547297055099867994198666280785422656359105975255488940529734683972947663523107920712665514976090619648426804862259053299792185235239259338090392359351056666335030634781539557821689689551603142036728375166761420959763751298851578086413155563824043096562465552096732847209521132598571067477659374685993338010170998598334506142471912634549579723127987404912318344628900371491563819430143231528310116621507198775468353834439029077723902066458418766035471512326059305633895724716467868196667754007552223045463676837238237212096321018556278545041231920836231183072592644245220588016644274626533310791007813113705481164767267588259431710160011456858342668682346893666706966338381708155764820478880718573552227120360758651148273098534046361845449713474302010555637561319780082491766722775903895120558801595961392578485855214245786944280974030879829374510707199102736335582423770789670697639043937112192209446524644765198673305745607696457947497450581463142098921831732991375204485710870415268916542485396384995242267397394929781174283684955252712831154417272670460928399726864939322636698193587023487787254056851986402325886296797973639267463882289579948201009040690936411691688926767608896118066815876375039144272561976065319207015979474927511929919727137093719513206211512448405243043596652765169883161008915019354512052996709631664527176459164103497853025458312745542111641369235291647784541940577915458592397395983980001872119208106593429513376046510247773757909461867520371573716476759023771848018227493798111596924673591353698235803198880973748533034998312691323639820814339113336564476285710895668332804985302488843028407033241185823452123791524821946390331461181495660926039000507000320952478723614110071519350382824524429797021633160855340046919048153312504071521696686867353679223921491125323216042022540008244162261923856135705420039905360352431007131567688575885404349634260825020929012078560765024344100898243333940307891918371312152949225283405940190188283665865204085678737559909511236363623844261370300850054789734157399297966192504772771929149815060733022423916006513444924434222859824588741830202599353127706541790478500135795178367602680672316314523182233121820761000974690421036156547363736109818342804968248292537357500456252612208402205733094382112398470057040192574852065419451069263211472535290351877652525832376550544287390021952891471405826334568912137338644133415362595149891048207632151153763258739103719580865815829299740632341705895574944145053008737350758915485577575944428084906268531818495442632509860463548149156841013883706463081077121705170469204219127918421930395664831270092745220983217064605427419009071578336957991554113252774502722440942325493355508133469648904984633770543234353983445986272017640767191346466657296573702993417667924878034911381790457133123365444084417751757691533048647019105753403410463735172068881488190911148869715036154736079182138280820706423874969946070427168843984843148236347074072683209429729778509535150832298265013750848738681795142081626149328687373537737409094451815055798984834926842164829975630013419330721056985315131680419812990872910621472061182729195598821175713189039104371790497690906977011801630011189944738720865309086874859650849400476838874648244313629410798663122250109028083050335612815125830792788035033733932585560954932116706273865204187248470919532607198590746767544687117668312563388271165768172272595073372516497972370713377300065235642255869130251716897018503202718383559532259414006777977470389055648456068225937069776316006969170403506500251128762115428059180323641119654352983350309765021683338805575546627832235533282381663770772269856961696044421227022547094066817962510302291531971771097156395541926214902393963165590048540027992715286608864244919654181711973712928104708484077337576069730178362127750466651799720284105851954339519719827703946329897277579462348186678518396768985918685185564303009593937250154656003180537328787223330408677742087028753040839786123737331010994524482988860674438299256535096887770805866507096666518591007748425353714802630071885052764640429949310900050911370167437104903895986093481302513790094156112576699864795390570750146276598138200410478745743775936627319674093834053154858996465859465626754198451399723698751206784678100113080833425986709571131667514563057930750886605096332541284003352346335079899159216909535441991779849750062746596721539291529951390745923594704528953008992856725381549422743389074759484710401663237101967124187147264243260200571997756590651485203467312657315619024219068746406637526678359906241340248465483092617659108041898037784362127379543801258026181715122365554338946260896891142886160934001145665463173378711621715302301420544000796667348794607935042534390617499034786056323728547834235137490712077493730243140786141291639575743232361056208970334505017469650978650301928781452337498619186591584764721469625661746070158406692116309744012597643601981469642855179158406640248296665008229792229560184740257911333894412064272562478390817533064937516637559520135688557195065047961026684908966719956538046973105784407643315787005287027361262702022295872876101039713413624566707236825271194934241654026938421083919584070356935836981167057804589705607793138107013091529572003250434513539264790160980468534360505333721353885912141911291576470462967570812671554752365522418203537404321811050262962669856017270900325283571733472062856612454875418751402045392719396956942726951648640218338947948245659783690851422261672560195153926819941842171196578827968917138688758711831540230966904170300296518434397239797263972021531045505251319129765561875609239947813999353920337732452575640571407069077173247864053345294687828592333838582925635169868550375554177166376630407561065430864872679905861652465468323114828848337731899458066253581228771578801630882363124183219143811474599415974392581973366445268081125275856863742810858498036810951579230575995323051029843623042223211992856757655447596137975415467483896445851026457303797818719797759466343789560440439524935800711318219575966484156302813083631047855207954579784363635396663788974842170286626773372954331029905650605632732292307614380414361311190817896541511530663827682018013424215965023135763755977504332717403955956441108753296482945767497704104763625730642657932673392619765224114242530786209840826069222492359577482358552433364076180886443374464271860876278795491864809640147229725292009634481081157894396184999564547372733335238917389752409827358106157998301284131215718626118173357794397862825745494604658708269760606162821874493021942485394953186126570504459868000168303710963460167435715405107154016778513841425576895038668006521171627825644761661098477342314904731926981890571629799066369805993999458703865409313169045884807840505929323669848695303643304050265347637384221516783559546334539677201966016182109511224790875472208506794747698246137981675760042257089978570184879548455976354705630462697472045753138397251666289903546644429840665131048263384260048518627317909628374329240984153509663286293465198713790640677220096492292099286366569962548534007074155108578638885566122129566245204621798933877209150329534256527999445864803026765820790865442087813685141555494730364453036527581576587583119345100045247459863260981890303104169827517126401405569920692908318482300266145157225580781146818592544426395662025480209543149050065961605908824621131444477524610254383573547340175293151727445858877978963019944410301354998197503430538134785652877435407497957800056799647915498915534044355504711556302149153164933895974445749869809836609401009595358451516379499996265124834807997328124292078759870208326427251585206284303910773761674180043183264578879188532448810999515135099459190874102337206180934902430489388806379019690600158338748882971294069848249626439523097246314220341835159495596558427880178350483821441698615004282376684277702978816433814175993816984680201516670284986333004417445379802226425521193486680562980884879718703282882717368598977781826859576639880935592257981116977777999793104891222003126555595780242481358050800948694841601774759729971656358252046247889374631150534033050693183646458803349459030507626429002592071045317441110500013691349305621320920741441868645299256804977990679267116417969149721786805082100444012026887486235346235177868752859534507499677385389521402030885456569648019864402060219508359845055241509023320511447541312396758238000583201160033609246299667428580280717471779244071955038196216971346147878902905479832251464951731259490991023311591242886789451702807637106031896452723670848453214286867850055075866455455607722011094770260902210590936916405920115587139775027785565752976139698703038889132534604200432885293571053703651113730244924974767094171253495765190523741152460475438434261664033067080669089631023212381009048729941678518155440929039638896621297221937236414573198086980272680467509806115561288745409046825917372469674604689050970431905953239010608943516291257688182011853119527254390717826027629391683557789564288417183141329332110894787898758854549732629970571388210722064690210303461244761663245571692502826211596601257361577108141838114067771386494964180671213830332958199240142785923787094360658558548256013601128976035084674137160302606058055612073427355130123562602341562441560568894588341714074161302311337435232527478365842157982133717184960062602533173908966212970250390954869247053829788552612773481285118812399738736074857666815108733697484933020451652242780831091522192103465239849077991299637243667629915315023214616265463614407438531052234947176589886579673946482158875681617954723986599326215765627173817451627963298802845814641360948885719475761128434320755791141546317112076216610158316233244242301786382694314870610376007899736635171155976255917074909500217060406411708661355513779416547971591672041559857276216795870276100955149763182469709422631814337919781590608690508014939953705859131751032541861585911438742513421372061650912988134700539029465253310859376223928067862612276605315222105715505809247723095948998431632096767466432333850318140692021016169352016028209132050639292426550193217343972974246518241317036045069944984623973732505935140684843672014736441299610853026006000886735113224279757687774023140090796059035643017585469131624650179270213321609164938465526031522846671999823274437599423383127204613806469394465510416272929732612865850403970788932925542309285144941959598360650232450702667099115543360357719907993378460665098606899856905079637147135998525205238138336822508224459139800230480130912736611303167571332849389362447243917752516972965335767540884942080584833830354229136562405041067261912232405069314566739763518317969827237352506753344981013099133433301904381154739660708105603528643856112938213640765518598536153133556032785983767855353206974081127468830217670120066885749760974998495631513194650757367395049615967236072795083027927471794552322036503940114818485316719523081330868498980410342840114352477487127693630960561183880983041677511821694387704181251192002701818377897875626258818471712675344955401739458594239147515598334079782565599415670827180983065887882441899563021060633175681393743483198004278875664408869167736751789389536317336303175650599891277593785996896595337103028078650410159106397469406400158657198734437560762682235191707267253597385659433864110042157193436080100288969161231414083270271742647769580457913716980975832518923138130398452219657294662504831975956594166977699714325454230521656574985228609798771528631610860807878153309331014426353499346196850772542428763863010715648758863477934016094658610160397910416710927714198627611807473824150876904210807085636856902649898932539675891678001413438833237827897065060801947211248676995072782391490955945002360675422441386439943375702299405393724108544348146173688176420799219042755996561690394035739734995742687010571810476163818718855004777905927778122344191010139080345870951923937254429774674175335255144014973307432384154723811959097678078583029234971556407814070578028500295717530601889098274038496093936402884000820786677365670034762329833017500014146685092788207296273390573044084172606656899273269403375516150859321071843633792443097894347215022636144674914263718103874306794709048479453670716395736998114311091681934601072045715970592366801010530694830253184292709828959156924880258007643388813595908729774943290158181879628874243493493791222337777668107248652710580121328220080816151984945038424017949182278099782104002986274247432813836666573941766515584791954518851418882492214599393635264990872845250002989917435793195707561567476352467904216562575204952682539983686610872395762124103385497468959833951608748281741433962248483896558337450808267619501459863345585951304875347376400891606626772766173872957368654826410725774492848206224666324456772823584260216546046135488773944754970373998689468802458163395213361401994848046728859217932396539775462823483583135623795980596395107942512670129316742527650456199988696949758154750436022912858168191216735940115873719499249008127766341756993624906441839330636924817071237961586676215698077344852689745656818401981862565672859137462876721571730381034185962401252194867855038128451870158900889851519441964310354432936055694267882722265044034677055208668785355282319894091817222238808877447657067675050861155615428348747337578517174948009266346120362272629249733484319022997391185267206577957460757877730292188863906957647646606301714444104238213513538451921095958147104037987632269341630661966702485942253385307159765013181483024102247143953795062882355442582990942467292491614281326356925514810688543801382961705214917477428252255819976773847174946344685524739809821862871725156197559922201188853487445985610245350455168480334379170242018888103386646697812110064659965528971232107357044309176768044700596250218134455891674671687988467107314833072692869665662861217208152082497372932799495464638938118335356692610645106749720778019730645647577971996950450587882122479589554674789932667138716999755143446204893164897747442674713524480919240842083136625093916716240902071411905741044555149877354755073913551584210110952338591172982139549020690467029555496208442912793303707188535955718829180163037395739011017880326943089746076186174984678070366960443210319201506335297252155988630818514243402664487986130883786531598836496644144069180346861830124986822156774958792445981065962516147212440879616318771566492630900397662400222484421160003815064942302413194969172666150406416735962565212230656422042381469160638119538063337942203323634690350738271962505013183171454690608318542502063666723171358843831394110820699409689316072988557655071027973321039881933455692351998362190679434935275593310375011382970586518559722355930565277435474715491604059831107108584723919954422594940054550014846906672047747160884867052159869246891256331783642995878879960859055147235767282069158734433818671070056605727167419261367174670435448955468308515271554612178208500086761163495954118888805646922744898805246110512071078896845026521867003282147551957146259267769757401119003362209908553446444463256853166211902009421495811416152352346818459038220904578945869254479458857847323620797763407533899759068904761625384672042812655027363997176248361174821403179813348576747705554274979591343258780337170157568259962143585922628719006398265097052549627424344503645693476207317289766730741476784601262579439296703895103428146735802440683450417482702458503118699561896281542681565337711356824158291000516498302870802615021047246850943205311263024825215355402861611916907676382766964232314104154854264821079849098006609638256294010842071530033621437465854484952459226276098661425300771094994766314383697240151774526212823781867195828901135668511140611213937310203838899488320003064959560025708480099357254001241920969531107634503191330853411334141586015583709431733626976978644309489373623005051141174705912603944418796632789424774180500487529330381633014581242227335800873066113189073112142018069787343455343525398901819259800516518802556828856935429650526460181467601113703379149993240085907197896736095686497597443603001332672116889504410802683630530294711675016707323142972598554766154840768871247014816332703605315997749813268041750041852779516170752648957375979770008623210077360812318634955941891720492066497976622705519933256700157519583369115482099620893971382715036358666374482964308618519989071949372983227799399416612935665260278768722641763193476553476617208697774829006714542528668721905404268417909536816817149526479716621693775248988700521102180349076961421791474135179965364607821768766672150461507503214238339770395995199256632582553841690756122877234281792288466490845333199216388893742277241180153873567094382777654836633114205157289909101467646122951350358926020984903167142487558970874756543351510914056115542406809290506585634851406666150596477780001327628085226121660045035370535344641325395818190066158193415900141106667977312727244365291275188574914100581525678734962650330955352434140499539236852832297765557611718873414996745637639201126441765647537598930106715358044302921203083706458926226810344715381022658934582932432774765128755618271069127309789195256353725808980281005492809333574949872853139722424027259787520664433541244507079841830396569571226450691902126835235828070859917974152960897450858118360147453145200104629940324486211536655718478015303989184442725153334866661711874598455399595064251821803463982171275459600019678782841182201573500036908567548396877959609359546115606302207201480840764761556850633710782934348247525492297379952932051480984811374755093295544870806947671489302261020387042495786611899899471676978980672266070145560796348932206112354640252719534526745053312310537700624883976546789869888702247552266460415983606215431696200591259199509951577080322460642305809055536710649270732383690637756867263506680120457933856769985898649418060136768841568730850296878751890675379854044107663617278584638715040109537075087533761668486134701502840953675544626423930683202265334644411020433366618979131640491733553002296074783298867911889130644557296248669195308944075378230938280004310355879233488345014019640373355744128377347918147159401205201404137911913493017112677361050426338353812120750981535399877375481025231135374047929790421433590914197746543416053322378018485635327191047560114523092817325210929970696358717378516874381405544406730934645566411425760193137966158659294253867566562917593056828421159092682595676180063329381322039831358855723039509503098318923266445270882498082051398532485079021556413453836511874246092276284337334805644239194302204359954367900944386927588289170190029812758633559938345293248862812937398529101329402976862825732596306161029285426849831306451437226214388451634876562352918451828946839990493527496497290508719152224385741845443093435925434984906646970936976094493514999639783380610591931334060144622087617789564555291780751490519156636288138852888255056529876096448796134956042613550500951354566968982468597801418858228781959224050734076200486070108460687003173261919072831516026701807391233372989271084914387420534508558127736723935048303069660710369832960248949470174336957005243324404422793968643227787299427068713429111428949272024865689929132120709930821056376120789201511673097463229197195617965538341587936366468039253599554455780270556818690424949840907804855606575835592372612288199780938466957959675824074701526663954555913190550753975247112437641381371246991613947264070564963605287989265682068864788800000383924133783661234796901381153345834372672397986823593640626644044224154167110365850116762818458124712283980009926640820762831922830939376142736762593680633512146037192164240776107783699425158161451380196731919736319629710804396160286135871411219938998595677551962665215141123284015455317429006127883696830530368697188391130699949447901435125591530006466319442312325927157949348343735524945236872647951308851243341201587204781230834489403737661986913051383726333173905001501254869851739745753802344767341241634117483529201809661411359039852289016603074970207301459800221425032201714736538347926830934615008267649345709280603484142231927289427114995114475852689593337666520418031804396191165562073587933046077044571142697413841526452087498362027422447412179024346641390185637274562948069526798434825916341560220569575674425640901932676982554589869882077159294797853481906884616351719673387364897638048478790529703685216529194830625710225228509562342532484920348748934944997882565990666569919346439340324464221345841785354124396300824817590526696268591347803598693090157865773570358833597272915440506062563007052663091805971733513597392990937720876978427513780153603209056256695528453781846390408970677154141925758828555991417271990283696441312378948148919812127161172464674139110675083189921873320805929556414774251701291157932025780790236998363525345115411403480989738565979876678204704285559027721572006484945622324917662405918245330845026722441841402226421872210998984285230314155584975111698569839328547192066359783331262072350349542684714643331188689570359590082731299787742240011317385719104202877692173364538238264911096894179253094697543178907991648671058943783358690876360460124961735826356875902686386775541152193545390659206451369212445164329912065393504714273934562895125806560230152424019816496890447331606085450700809374083194132034803576412408957956288115097166349398943913916685412215160291166971017328843358637142902821708936062201344044280696437561876611052806437934832054961339560413408054121385943180754206049629658992096418265155668289814683118004738113116525666834699084690265754922926381543873475419797478373557498161827254247422560610366352857591283403161044522823327424040574076330897615866704926725573541604462013749918032325185700381418113651502297381954653358920052281541164636538467015785583489757193763568300835544429796143722140530675229017092793281098606933278004260420610914147983903453265192347960988196404417225547672860679108203183621408237049635154637541572396723457942843743265641363517968235421090082132832194817047094796114198089663309016165834726710168326118354765443707675439242897464649180955188505440735993633090845136664330461539119671261716344972737651110799901420738017123968053514216800600629141693610881910119561618354842502954502663186218786414907922639648232021064249320289115155859730688969159565383687192226202606943473037681789912573944763957274525889369525025120815512992671298014970781911613915868116979960523062658144805081808350037845553588494660796879275928562246477724799259898181834511283953271990121353605501529072399922981635824997804036028152956452905438611528486741574949340885238230495070115746355680025456963619255570220668657918223736293640190454120742247669991060438194661230726421258978398716201452155988037876141356177309403360580841864015431395104423048017230403670502010250003901722243356807127242014725111724147724720542112867755028514166155733773969634932661225778589244493189429220050506133335103223191454351597322410251992853046254863039392955664341547958172267485419683855450278858219548461209916346633801602469874433057161027471908687032899006378960392265536318368720269562687566534467258820884248189889742097712269390424602372103270091355993268590552050273835838063558417355343929426207384328615871412634019675571721613390203530030025660026081390279541554566213385724467049052520631275295682428091673455910097797351428276737817739321288116230363648380653635507670750198747542471967524842732122213632747020510681449081112207761543811248738132467498662664209834115140166293020572722647192748224699183342071935103653757579641374342204345968119160429292006033403893117216364708443824829379531791701863214406596873653472498998235347622125843300495166311252116663938015192270509358752148349466660455489548721709158548929254856170579632005215523303696533401746614251306083129620929749059284068185151466589534973126477021292997172099686061576775562227332862224950530031021893202562512891601031704983439822477706613658395059903554286735861770749683206617739031142185375371891004173661693203623217950846248578985713547807165463619888733822976081379290258084215532278441582237950422582299128985078905419718680289025537290620659475835658118141701472185841680373217584694368280176381397552360252273615986807748457230570844050079685001660965782171645633804450814817859505951338843592054690057800229169304687957837481043542315070639903706898086372854465482338468128782111433531577203395701646001341344064018598659760133978950639373204667777374816013231842369032845913872273872824071217002430615406219925562458799423274533782937350235900904418788457430347047732039289413174251896142434946721803561129971928022875902363638286268841306323060051226843197639828128222840923170282383809698244734955991862750927712972905834330406015948476613372247636353000189080064514027879749205625997833872181761627408859215807273637973674031278638657648101695562495760507268402246889780583597179531855548308097603652920243167118375864758502497398394454423509917452622664896472832777256605281534085073958130123133281922037494439967507946069010309827316183066839696163980774857289002182867838097866704797968556287430923346481359607502908296197748685396774186605402393793992284708232985161488868550800799932119112340484702546573009313908319490729087892403134293821975797835486564651023708634943584569870799311140067026532687611135656680657532912069065743197103146167283704619357184697176962229965861984947403052336303571949111142771340069076097782750790073014066143457740098967588912473229276646230724168974122362966485363343913545982285061570952102188441397737006148420325648762749255574463265150946067087802794220981428814064889319949035048321162172573803327687941355748157843226684165340587548461552685017418388109122099431995811293857846879229634649091718351836875684640982738448800468000331873095128288856792908595060748856413553472031834444809810240237909555638210281491215217829454615270649755171465654322913206151184549403227923391896478977820167845812903364149705417735479766035182199730320542306974097974734899859076398221961625944134277997312868263368462493322939268301742386190585941539888583773377498826616407922336394211335734856853727788125095100958775062494260101350305509222735982593693197141379499841805303040717309601603010133437581800579231839895193635120213793155950061560729565906725712501066633054890901456304164786793052847761196334804433887378921908221078959616346647823737246657100636589977993439752043021482540196625474500563720026149090552564842048129622532312600224283073260433899461156208712764339331188391044630901574535684418579003541709070280708517522935417586756212528259724462908559724381976922526988433705301238152146691318484304919873548082234312082381474872985982874026516571596392623411316902093695256641327553756811300424995226256313574408877422543160356245051910487787699930821530381546741043520075698997796780996218672193654351545496066214385024123540099355893988116400250318144218200430328441635935704203397821130099478126313163730520845069618286077407833080692711809000601013194554167163438070812195583972110937266646405612138365587600545996201461163228686964940615381505241160714091299921644539136647702504438740295679215215290183968321847626974487464110725515258117721202983602617466062212239887295053294661105907874640242403137366250934315602442859877887571092987822741373808012899012290540926964867026328305848244236013970400610282309858492919733116820986838606024984307437444032922218264245559075642349490373685806491975627846442100896695550121361176856168742614721472773781585684028195542047966973592805760410171440431211658399981961973746549022469319573522346185271125283166779411277666183360572424634735520743948711475752227566056655180068373588630666191526152054007472743531062712980409221234098695593698445166132184665317065115943522362972833815025362369241263422544375484372892374478527145220653062327257766459280813383753973460769461627527475324493406127107607801277981397882496909814381020027977953099965685259342351437028344988485017114269336172907508737949821709262262787804267892758085912978985375361851107402849746809125546465264540142168546738182370473466509003418190308448120810724838110358234943429778449878539902724156700551885349828706806097291832053592259802119717659366179636510614732178573169185889943344540620100355218869235630128057819304482139756580178048024104089123627595526132906430829445834088964686554578935369952934733572857258423626062958938114204452557909786463727005842799539801490951768121781686076144716747071835329643262505545144932729191411708489348424348905338688949104827396298374967353813599736712909252719255688882067054374886885103762346019931924196255161566582647132904800860708974526426217963943415816925604854776743054087707427027238138373984078385578022157167568893681144943676365586042660456892844545397742140838008757656761233293187175996898875244720937380757422636129050775141152784229361367002516333714907147427533518937333159020097087622144679719498015859253276027932309928918871213724560496052733661778035029408048850581827052604523596402269651165802653105074729324552187396280079075665487948046438567708417433319413472741913662431183029866832523315228649012886905265425985305831758134663597561728047837732827775535427977723164963937158760083572722122918804231437703687359294052740236995067753147533906336915209975920405620155717243823360798969354712337796549043484411770728134150702480679337925542357638997681354520497378654790739402299277935144131404329378143329281183621419463177475576446090024780489434312768873079702437190462520103572430641507115066209286333896141329625864911763655517392401392285589969207457275762246065097897506507960726463636876037064237022682085735790888483256867909096922362917703016902637323311673427452659522135896718534257789599516396519418162404948036160181516684304624116328303822817533369111821693365222914666209914576073769540563819523143807943106318607631948633061405092949561795703528149042827717559812068891064174011601959351498153058568600837198844397082836572819090000295185340625295761115441353655342303403714499444230850674815137535809237032145920755591450733163754653941206131040487054497081508172870687829111446659422417195734787561199110646696779564731817832933932488377591417091666001531653211072859693159663463457883952257113964272166893352738590262024258393108624411222723831388933501714005397844343611557362496730239126114225554381900577524140916909029197160401131247635571601525318765460820073101468189897737823721966733730104130201646603574147881161933738108630104429176660107025851438756630052010638796237759203887976805841799781105343552256989310381117794985706134927437259659371132838021747990035494465619284215413467257973508073261790887898279573340430682926304677774704274255596634962100597546324413332445070611152160228897898004548667290000940314300309755004482338460607450344993167221112901315567205801248425268935997990116433741294092798073906698250363784482092051539536717342855729644513283921272232820683308102116531887401637751013084772164206117449963394030065461314655531154179416527018684851934941148088556019364130875394481546530102937986320239567430193006164665081122413677575674104407319509457185235454554106202117530178552272604698770564487354454117244150785834633319787092585214170784422979603782657697654293530019730192926031475455763250583900874392930471810859764195513053609865624074435311889478109103063977256609963780311291453576116968594092295015554502106256461830970156387301957218094625164325139435001355091389493002578114980209572354130794373972227704374674617200663508442860860436361491782191907682276098127425948765273086832713319941332424485001987377014921413934967010176661527734603997347029110702056696059974336248712128811576064908481695725936359613199765579397023870643809691655411684658996770186756551301751279174140183177380843434332792547225399063542921162718119753579729836878152936941435665755355496052691169965059091231458187067518332296077075396646061202310313145051055322434981078206964561516756347157711088149902291295691703364448922518609473100263284811335294895159776131397281143417255158938304957120660748394096887843461746187209620091132817284813942953382118973878882928883889102261951946781770230191846290224652917792107313948025489526444227045214530569479576469539165018131693054546521520611898198257930990303796787057744028145963537042433412249563362225429649535028789332815263546499620860005073266397618725349441019969527276224529861500261738927924112601551867657326714512822980844454466739934279631118019674840409042778138797521742527940300677918221413166344974153849562723724973287274134438623721890025734267775610111597740108693921226544046472169106944976850211401759973382379256736208445137728582757834601300458639654135571429379813627258677407134222446805175630764218110237917449155520512550375313115255442826632837599172825423476953946382895602763879718847426987477896134384579626758927113530095344603196285358517861580421024172214377626390380558993629882655013574575576154093623910371429542116340938562332956479462357889115402453057488020455190831307289552237595530906578777644744333305539896955665746286640263223950563567812829785366158019142014445990138120348856760438574461390169510814631977276564115357575254278018990919614721895399543393000621504722789688201158806507465621756845787317136207544456318488715272744573301873457502173982295659230949985996229815669491991493264394281625821527467910167742161340218496308430775327025419650194209046823554171621916072932505627460920349750624886497835576967840952784562852670698965873855195255599283986361363231901717506224197526731203083217119341982278947868609569951727045432683217644730780388789922162435020557349216659742949755762483734791463704241405333648768197180978796739564639471726443950368864542304249798181120846628196754758733491920016319530635117239625959523746833620436297899243977645482950234778077958051985789764967306907802972672479816346504169161566788015751219334849160211890844860052044951593194938884519229871061361443120042652062984136835260195547567624957189134300636703753383154551948079507988935436344542845928731557020608433080425761535313279411035271855169739631459122552340829975334360201874495989638191660164079521983788836886831093501269295055255714746535942031390733393736454583202109518612374990091286184732264793447039685501375780883018831104179727050412235163813310805068474678380615017315466540735194406557888127561498123320797057931401663155984526631510874695963068720661700766666181415198213721987642904519197254538398538113726953884256026147355396794829876374844832796131038916150963414872009699672192811295357217522626779890749879668694398176295987315446623968364780096591757721908243591661536180739533461367873876134120288178412773229002995519432735978862934478435860536774856882934785265486632562056264677272263514601986483913860483530402332176729002228132531344761604611330215712565171363807581270235531182721241750909835957887330300027656722049427686625665804865844377062318624059327357904891372759879370977005517311688149082047285378080013203461206412025325832751624700522766561959369620082980560515569732380048604631497279734681806020278111657622787390894730231279841134352616057163707782845899482333766235823193035552287187502020082724546853219672224992859437505121529703087294260006479791801325445616055437754289747496455764511142532475202988029965077277364410102428418345154348138557014667502084062497753293394495881070046195961716946229879368102296492546014910819747477717806167706885370631104760414110942072055349424037990400800095719115449415126601221392088347755020382649430862737605173203152929694375416157636448331063639807919859714678224496124963309999665674793218129857116470071359519308431636679837262818010415068964741820617465264153386892879053768540971665025480757004995442350207959171409791268583664505505522481904016807775862249602693465980843538981239706853130685369150887416101589673066040496697229003904968001826862312495811430039573080002953710515883650252728313205776298528701700852741429341255121226286063246322124407602625922212430032799480009058161025007728177142884225964627984901178985683418381846319493687174240902602909830578491222082448535757588013637218974963212262365426423089563497592253700523069918581357281166841244205108429003387469921015736970580718363914015309917114792471146652270579801172051016815439464976441076482361997822983744504517613480541601624903152572414262610552302021053893330217619334041498515635281560277326310404050450163910775185064802557673662224206793610497682508221813232486453506159125723446112945797096193817864398100358518455421908145733653759016276837164535912190453728202564610654505793564975324873229441940006106723260659140366095249885030209272948102988951005048087823252007660568562126367392811884130392510408971988078306615366757176328409265582689179672986584695035267596889580059972442020110554278125140706959255487662010555535479779839708592361636675890021677388725601764397822934202476575344496825131986921547201283218271987755362474298016700188952503129727000934290167667606036182909369704711122030205646448128276428552304287333567584228801122910456084443611400324488194877515481041954753635861565168948950054456637868878236129672469160787257919314624075632362984728759040772051113054949716705676520988203254820796333530135670772200601940894994586413619115685176440393261098970771921471459651863394264360101425603318359782561967148614996932466682988682230291870095116095183809562801410812864953703978897767692878187714752386983373075179127121101187927190037025024133358467109966599955453303447682038603478466763570988557430489172371495284540358528327701883455527050885001846532665618977711633125610096206101357145179809781137721342823457830381110968849269756346800843496031361787214010013035290919548661302321215803798233790999607375645492902733542291338203098439094373344057421520251895829889218987346657735367556014288623474482526107399927337608837413915773857152691269754223308853815125027328325494588240965067522991057649688325805401234739793556839943612513627019665731097973579335078086376631141286048622568486868639523898916910704914192615608748528527240242481894959253893155141204308687196685763578161141021913363048563962328906420314189529368671865801527641548671293961804880618018293502841349080251924194870151967014854785361670795932401558945000120890377649978882830768926653016807374025454459091133508806508249286388954558492921677892930505157498460061342535144987624546591800323627974443808640745577972972127728332592928760355752529399619310233575872672084560473013276884855682221832821420810035277584362226797706003960593166790130067491698499197885321080424848973068592005294648380039294481121989772861017934784174869296675359136111600954416481087376077300807505005216191234846150002626646033034793962126118550086522547617818705490680694136159657119159999367859462369806603122174627829423656074640420154276910611943921692493681039003483555609790194562235605582978121145361444066682247252769891082216563923645467314037434489323622959605544242402758036475558010817470600748619786931027833309924222218070434382859765312610942931834651949073256015418959748539473116844938366353327694348312037628756415241754321122267716790188247735836083291461187719437999436447414895911886377795794665938129568938121017748989397705486851815634131234559348496229056973966448009733854995100788986743981655911763696068081998711341684816899378249757359359515590293273939477355547692727320778290324000611172784077182773077902086540226241549506325572238057535532622405453556861296361052496217622456490462040301168367914886888488203590991704099408534778039586643849352539924224177438476788625895026667933153216791579422857833195536753611616334537814312239276357270557865326372082672340625073300511828805089671031965728057178239934984915611799780784541238564598588193244810148784007897252571668997306446309796558090628682649937523649046142430847033972025388089912656618087674157120799313141509849028513481887552102903216420077313356390202546819947287970873439445891969791213397416821901146291299879434573518695402117986035880266419671880751295984487088822968468697975591892769132682406109666991160582273619749321037611302502391298395310132232892069055671184027586541345366137975442575870866181997560436126231857566618611503082642218220245510012147386475108293827091772325343573396070985968486587079230491978905454706506774580903841332293111212915050048126039654715812261325108826957901991888843393401817015146239243334865515969420154141552364131454187243252336558109296475673645859914416592490438207203333516037553579483644785766110381509865687546926750382692330285144022779915663099001791367940398067861792303928044617211217224602641641727718444842975521103245044867673810363760871137221417943200518128612465858513849700568678341056035514999304466492331402269516048747737090523289247770053194429557736134413200621230925809857840302129429574762148926943550163909744183763783373778513572036305214281144881406288424532745735646110548675273460275736937476386529067952306706836550830947098752080794956295536761051141666409088071275304888195457661596448299325497591256104274088816065194555841023770337338519963362326874681396680266901988877774260160694781304128023626887864950896207415458627627319384630940468094959170969976137484334593171830721927851000646476504738415145573410046838069550347391890907184534985197401409622165338355810074893596312344200341100875156633761584239701620226996425776833436586379171391361532490853313463337506462724557578142151278460185059673270294173503191661459100813256281182434621171323352705352705865259015882727609657988826286854119534060114808159208395082511316132012191772865574184524801688724599713992454084338574407266178415219546362553840069846557844048601277362837073759302465589014025639590786423441605037948289525563556062975759386972109607530722709136636200076532822742849568004654825177005777383964268266031552159538220864327093825779492051094036048444998574801528840411867273199455577077757853358465273977573567059812546596829674331028260164780739249604847016228496452615345054602855488530689083355454389677459846411575790532298225861123092767435496031456366963464600424607758749711488662618642769849032839746996728358326216981406481630187031064111707090119818392793673987090561276801978656961531965900763778663363587455511095954193361437603935900961235436026126338942748812267941515514727670014143263396462991730231975925874481316602394430267834535150574034912176614531805746708326043998945547266156756709048105808596224050026536803574660039796540206396678750488659682535079390453268493338087701289146499685361051103188553378415219157138819748654607807030111058983528895504919668363695749478643445098565233959356145043778844076153915964913092523665300994101533087093587783893423669817943256976520388513714268672135064224995832700220863737650028857453914010989877349661373008890120657808454105294659273404150754279311596148854710971958135310045738389808042215047932497999708645513197807258970402960017467260509965431725250807324968167657867349094150126254370390550553145940373171713598661597956529459583909944163623478236586415960229906986378060825939394340315466197051479527796982322465036135875930680739719845720107392091194535688500232152075797612874482650336335010497165149641662332641341169672771001699617542535410153315934578243451420934668127580196158668817076412423327383013998543131847667603904288185571616384406913887139457496668761394296431234108367793452318643611841702972010353178957996443825000929211256593731988732605601257038169639238497704516256633832088833869736397273779964674722465760992465422444272939651099311612874276660588691069153338325051195794598214243931348096500512537774626973002285933827510592383730564874188402959882188781086559896616482694338783628881130639614640247778936313500225639644911489472569172019377191936700823558863541992942121890548997518468681253552464529766064578159903868712180619597098669027490616946790255200858788474846778527713532452088026077995293150267905975530339811681196425495857017633559709322029797760803192595830509748138134553559220398887701381617141261464782925051520378699361272914049690091419071667484031401211169186433545404341734088600534549967253947731544321975680924945033951027990387613775998877770709889288424346734300862710885955662912149719411280183558402205643251943958672350350679894664251804246966067395938977017867161954451258720715483293994374489070077851628169670079769458350430912486349891586365408713373347145232030166853136355415746916230095341224309489736552119116879451259414752953049132012812181556736518058151972964265030249195579940427739174218589718429851836976588017992044322174597226899145433310335517665292068821560468789308595748811203840357884724183198117889790105918915750434598923905561326620044018798062334170879706808057315347897374377601128791925701833227842261871496952029355548473586425684126291069447219218283622181615320585292880835694964779337865321590074597835544942277428348246757430403761462168469269363149832304936250096281830851541361978899576099494882391017016789228756284796400732184532193689797343546791980144291415267751182404183160498255637245436966895813793440784771014205429101027256015883905484021838335498842569721883266712381333944409976183712047080164074538898571421977116348855316865715280342559306186982035774944890532947754713646862925691361684339383813977694367208155009074779928569913400761119777856216990865541292090125149927880644977019435520596049352738186901112111535966016091586458005432970537973152439580880714880149872318836577271346139825124031351673248846188182550437529753265344792320926958220299269793991903179757161272531410097798949413044514677943640428018441945395163526450785175740612925828369563902382073486690676721292145401978962242593114328074073654184498707369151272558186245763072673586564723122572532791351982443319038440881019435279068777313261743933520882824502585208825865993601084591821696345052746721884104866714230567980647099303835117619756421597049616397526233413703239094643629288334885512967758078342603638311757795513053547900349125925370538731879898676025103443110818402495702761549010316843585593647539208598070387074057597842990151890573177689155071385064759341165593552356297854203511099322906301921971532775320383811565576868285834668990982255818490437748307148390116806047141954080570629038994302086734523709580640471575861044887992396227618570775716953151667242270769864680383112272938879918116520353912986390567549025608345367598077950173038014188447704548037504269519618093706604168560699368232742126066092873485623982143581759664056382771903238316312381143028842768218492257594397137146365762480245178004779276563964365040019111950915135069885531699757161779956488975109582295475665618525338864406671211080634451916970654706822314094879513019389356936838060447692272378172347038098710682553883557921835017085938082054504796856786098681797912195418227976894081638448294193971776847009658780339385006047359539451406307164042339426488302525689455216564737280013567709113680340492373317158520990945732568139773311411319410679972746847276883510398418217549420037639093144058507456641660322053929899358367835457278114001835755249427571798873507450137125947145317506624088946220270119964948569922097026430751921016485063143120243710386699889879308827019860308813605614525809550656997757242394836426991743008885765182179153554902822282027955588559245088696000911776502548948291118347135651260140486381055000028457268551046256982796716711892348030580566042853337294788305873349317105112946207017626673231079140661593166078144049851454470568838450097304099755654076371945494291192786171657579106308054050678913352130321022756238230576121182018057540639001282399461410905093893659742369052705317264509428241562208292491028956521717839120337174026593415841040837563544413111213602763701143172505316208591859874376299043162280914306050172418910950777134611352252506320066341032489074502434961389105710488668830012266569909697065953958031387065896671210573353019542104632889673434727838396983598205917825668492807790511830163700393337358580387134615948221349240034569316754855763327280165926979024092221593058773451459321183876547517327828198923220529123383487623270433211193467647029021619063772929381727903406639124954464296202637383859590417405090414310373260249720072532548788950847877385557352886971689641254540901021542065069666279511920082901815593359421172892558834986414226632566042847554247295184620543417594457417404608369680276953788271643756846814004907771749581173868969049191360976838413758277638982892397128663398360584860178889715354376852890653651888206891772941710616103142312054010336139955986052521624457742262919633734467158579559359966233830298417155792092392695194584476990881020854319156924492051653623157381857506216982249660846324307844935311030207795586019242912954411538980277843634730951898926194050309014097714844726474817623274460918545845381875314305331949911440674030100173993309360424104819656142332989937221239260591780116120224435000336986421412250358548708922462317721477986669350435365253963897892084965626196533910366539668978505089435585685137767069314360171408203455178063464254327257382161687315832622828611202433307743997693696133533810199155795322160503232152896526274072071804297660194334343276982234162262205420093534902626017961304440683627380618164735060458385047486683309226133255394433806168589007748742746494220081894092312256573935646870741053002347423648183519005109781365856602081165669735823898028514095669143487759030208118828144404638617419626341572550300773583700309758980584486266678581036076308307113713008594532428986119007237987428837478140706612481334966033054460058215525060170010870117186997694484082154316824488283185758348493552845862490763983118964407985350634918852137041687764852995691581274712944088488306853469079535469685288343894872997977956406517786560785432498992735301508500443889782016019254536757828662968390474316101737426694764675311663557768976212695869791570633030570278353283817369001469963587175138114731694562264816426218399647285232641885749741627235241110430278877122953610325352393835481023198757614825588073497384055369353671840893977361620681270529800408671208350671396387413536106713191334353012768752007730387878497255456106515171348300748651192843933044533807732671379409894401809551595207496869751784392435896697573583415610048923489186752262490682264490035851074019246156923146386572562821589302888598556799121892858766789209138375744052388045623757962892058904694370539624213187229016649094106561191152081286839979108985080990536503361223088899800351190417780035152170984376805168767612401932555402827204407007671328958211032537937653807401183092209230747366449393491187548721146963382409715268819717561232957815988655392694607470899711812255440375000859671016249222289992757184731805066390307859487712405754783984903957179836568701851059435531316533055756053337827434993747948222552621596573470481047551202523896859481725491800125268999911968686953826856120436883979116818390103905455789155688969441207931863248829909684275988797333844210781299743515447303244355058005485024678657412841647230964298444043651724363953278502445835548009101357394008867472152328303300710248712901340023031795197649792369153005064162372507972397811696083338504974694886520506176906900515560523862619915713015887509121543323954080645036313384389269465119496248847140831439812631505490201397192363418515529036573436585890559944719171865555071518379294508313864489239890406320880974410658878336138754115556514415451165990464668895765877768780204660358200774340742945626382037220613800316426030219588491798680129425356506671362860550035184825689738066830304841201063293203365385454156181598391364060477325868976849622217896039902687111449337168073554314094473656690940641742419496615175620090526520690724481281857797172610667618315512963556589230937667516771304527037193614182912995356423174065222286721688175017192253892829883212934406865280490437078373510617256076083227379598741537898225816306438244339912745561943335414000577805300496913525955560073711776193616187948701652043639680263950052235044029280530286626355881071290893024195677909866908086320370434285908033521369269834377356737831187740935102788566918021242987681604035900434512347162460540149489276295316201787159309783760470371233268935818718348131640095301698099657773719609124209327994983480574889439422915997038519929140879857912711975413696894766910496828580073646316405654746545789343072112104167966812118197869686911599933045802257199732300842728971156920351104530366844817734861091533067152811752228490336243402891956657340756070135955528333216697721192937460659155134564141459055236336368994521641247059210593283658226905787586370737306267291114984587121097743887162204031517985391517534821558601609598046437948815018414792594019285747487517138663425793404764089712227191368354797598617038554674132960394799496521800114194103954357500613950458661544414239224100439648232967141455928389774080334711040894445028843187876487740022577208123076985951482123571627593273149458098852342754985982984209065070839403340104503185749140177920575910373848051064343217662395442301256748257463506898678512697411825999148000951873055880011423429223433767643503944789414305294727018828407817092388827894391361623132024615797845584146025542736526858674656400476554463525293485418177234377588964606598604893444311688135121406552061232020219985455534288908408873031173824452021383046392412885492146176226765334715269445526111868390266182892143251633386211670381911117340988279611239084773593204015818844367923976709385817567347182540693171311574522965549624798579820932515237811209062144651597463313853908985139743973656372108960405181645866985491078482691263418648934662121003395763628698686855092872748893517300697937423651257379306419446555000438788241803340477455088047159330733235900765294762684696011379860209790937081651333402296213557546820957462158835529743870492851933467134934473166849629386408134191872151127739497712465937718803266584099011322915125878677791354733280300345574072103566446252724417898036222912460239038618988562031062602502492534740925331584981985061813484775990966602155597890822531548333695562988572789252132572562294590708675812317864943157633691550805594188779440534474125090535378450615208001033075241421835221833378046101210432985565465471561476128998958306979057737787544892535567010496322805567066179471736544327891933059395171233345802126046637200755112020025727915808561674811174541288793244951548575815295978062224287326055954724647086252866625903594472298040314565863936004070705541389354910531464635483634271379675186184183400679995682877294378202202929151054236789944150957415341975882097376305886516978292439994380629551339202950789325911113835936403252159967140667720711398405616371455100184990126793137689037980605386114221154122736067600183172762268925151769586290002237906091734217761864038466759057891185454474340963165514536750260034535540053437172335806303057680408978626958582296587856942683119567914113615172906303615727601212283130346065094620535371555268131262702813822666297834006801263918085299746407575533264435963910425484296356385834213835778419335939826891323639103141158058564474606679973271856269048130860675698060302807167494571221256775447636796870269528407608750962533082613934387784994016425344389849853962753544801513715915892267216572548907426422741643302642431092389449677882242235978207623132520432691970768695320644582098352200545859080086538826720259753608898349897842273914010449346916624970755268648451866154320603666910212027385020539472206394190495591079095044118035153662048264095876231298107917991784963436872340265284932988836638488407724057780181063684500817964779419167695275618953171764264436041232600256152361572570405403947832003132878831663246346558865577029485543085828465361625135621716241558220468384655671586865534573404545896721675422184043860183413737851438787255103012379075765110393889541025225786259693800059444550414497386447105980450148717750234071115034746517552667223315696219989236100719928628803834567390448531433358083511536630159712220916189464289683583489252079108057782503798750294835418694598678189767973611449975924023894061897661033052789347318104700579276990835609537328624630354819189019987449543562184807804105157448065742542288873713489350691826995687482750474908487548815764462511099797701914463743690771280414160752879310131822758891946255942047722519682801767934304374230041013052810631288166529765253073855421217642503964837513580285798331828413470247631193653174468311473275207167589065357879505825819106110754812249302328196157565229889018170296178675057040354611802483389509049375935587807771888079529676435466581054105093445225605407456695442007508459830589419582817964050001411448047235834862605149436500817002456812465274232484935897602972650903136976465520390906503911890033670165263229232305204853170725004340651306408606235866320759020189007508198428772552110505525985202091530900044188778779739630505461660325668072683973143534108503522146790174830209221059527426447256154197463637875133335722137929071670763688401767736367711253612498977993836975607605253347549360292439780164437900114247627838855588410237287685262579253560841384830326137480192273505795954360893070506135651118379492000130102264861321648501187299098934921907290573409036977246095132847360509209818602471072276612946858069848300503181571087760825842354470474909064488518450289153376853710935649597793348034177305288475025765488801714828571725020107155711110317539037911898255197631816195198332105881656517520450250369371686525632672304259733815782920330534173973933905216389431376946484278675491425057732819537683892164766878229805680815805442189750444571423010052683093805137388958079371819155096551514099047940295978275058389559639510846592497661823747309709474015487721637084142598724498243469493782361450889449421184857045183489428579576279129398340444686968041167767239174375129530646679431356579232488509370161723891182474669509663114469633529505752357298548729128960277673626361524976376731253581470728116200745529113542340711946069488383751379803040364376105414999074446781573997295952799640586405832977548172755549968439817784353020972055629732561700282412535219033304841173865719914613940933164700836347505349203176383052085787444304564522770636590125713153164498126266637926934637064893947745750794958979414355365774468449837886137475537036247256786675600113537498396909050473505665988593190877429116120144452679890287375015330240262748177611928488926324953101774385457963864581806746018569381165421594530277780761941737311090898112467146326531613312518655454360048472731409634723492499134938699031632899242147405563498840827569670742192060226179532123587687237648615313849425014303982014667748495483558022310694399701192460800272611925571742286842669487782096541266649159606808275784396017653672473345633939561170258427465509655761979830383908644203484844063975261316538194727034179661434227466455575112208293504940432363435157632434169937556751096188025406955898211430234499734267342993194248998319611330048626561335612991728008963572005940907279660238939449989320269215283745787447942999785192026641305289890130074202789643058255510701038507097465016868271556047170460187185529784958965701298376124660389592868580517639611136107645566291907722925244698005578827572277313568463941751211201438897494590717527472961249902975889421684386872903040894355168539333931534104687059642130228409433318579449401381170195776368185404095376336804139210893283997926178341609140171496852856390903495871333972029637568955308505309325302375177231335738153653336847899217302571502199458330684655939673478589996445890161573624792150123571132885783583070091688908057910052494034261104669482609364203869818029672099370180880538494409906284648078220123644392935655040218136364564501384562838184009127997639722949333982361879338632631036156743784149920521503200809470273479473611377672384608894432338805708992021228731457000691022194733929058775243509737870652046926862752021626905957711386044759666838587205373767107333092980578674105541198728898348919515870162537714504841233555114584361006548714788358913255706717426519958021547654837499030806049350066782641834186065409142903983042425377847359014385690851339118748625178802164437386329247771147311916117140541910781468617122513291147571994273059211323490488502069559043130853847093077935117813767607715004535654599158884067238654039869838603871594707771525497512344836927103823102661664642636071926595713863161273069613562503947664449389712356353514029998520683751590840223127634157808579470713025049283884414353368101061084446830083349106062515161548217472976965558714630536509907778684338563307145925954901095351223053324046442854192939425292528036663216697478244020286673422798504351055565703792408406497784093410381470598867785071878978341504677214681277795758923259597744069518134259168317439021106069931730424284765849838107769606502601444607298340959616209193163916236444690056557660693243650592219290027886186255630231473597488091360235518186363662856062405803936309391782545571392777456630006042658498986272876153202247068138019602803794440439489947018045444364555720970174868297273594442685242108676163051547009429406437844822866066833625089114346381413935720934198871234515780430513894580982807710068773682842440613998379126262299721029872273099266843521023255179173565629153134394847855360285892917986268731636156176323535950576524955738002438950171680903872849568026072493432648608506172083000110125785536979618864374625309332505110729235008591688011265273439962625385952761163468157160320123646190821892704946073293534882225333835391695663256923778124822177709704183601736632000022878886301138721302077428513770083230453875370892375431556905960151108450290788003839095032852709092608151864794175838566851389538975224429158336291072142195705542251282698815830325969584829955801669040494946366088612811620068568176148507920086795303105194307630816696810264989439253296132075801655072975919426159173024956335123750913302700836437801238408830610482851413971286147052302636742446230437060467248499513029575547323260028891462904628526143845249812472528195516877299855952883709894787417428944185118719128644155318823296287633155438472088318893371147790052355480969565450401830633270836698700029335996942346415548629599054073263045805755444822794496583974088098774742889490619472308373151017832012270589227358702915546862823096762081776717936292680339591817868640380601624822723849403876325004947706760196078055911338318742562620923543575286813065976165865394253815134100576273548393716956565195515423909875787357285187887477111310718952946842545142205385682551039582407415492346070252612223617726158210320435902171883128991008224392823529728295783441368215387565736033047058424060310007897812178447524749063597735983504424959575924660918686400882595789709275096861191171107472014240413852400560113539460701883329262028901775978017437854283427525253141086237577697713228315719289743189426118195201875879581475859309889052667192214742375642481374869219755206340079811536904981052007149656705845061556175031307841381679035247990647492666786438148613028767218979562824234846220256169425984213074966314137222964818508702742669072537002442954776315283277676259069463102353138792041186057421221437788994349906259196945707841813083128329094230368388443888527035731952979339000198321492070566546256226761606051982826803343909965685010173347552920631840072961946021088039856136055721413808080547745132935193668242359267389735044536630335215150513806423244030358984048690955232038977889258204703887721503800205382571553439115210736719367723900037464710128585319856811577623718115289481132568660369039011783326798108064408092008995994648821200733832202212321017664486738605737206657519964356797065592980362275809089490575574705641189824348736330777167378983130233968473428585236233834872357227687028391479021278991116226934737712684027131287432580184390688658765805613747970264422101523957146639441462237870981823643617659848112762192368416335780368968214130170117383735249084137232916729237036484844095364981667951824421469410643404819013837501190735986364746989228720912078794700952786301665070260459537103023829482782792365415977086047574979698735033332966780146585158302852701477757776084756857708926827316424851805784178148603806606608221311903678806419406682999309584192223842764153104751941524328616636503567293890299107588443517568040644859290048964656918004704881866833222225240767967216353727005953069820342441500157366073644018474175153749021585922992954954934574672171712170675705049964774505286968980128312919366672910468996751973528868762376069528400409478834759819921997319663089602040818232818229878854944755485397273309657114284779549650638748693969533024519007544414935278690924874585969210268193694623213613963907935343916673759676098496031948712905468769204013582345822237728467464101855684270474415250453835371568878078071158328943762136288704782547455017137506372305467586369877478418149927793999746903592925017820486747960683852560661730879199268476947207659779623642877734754041486260161236694285958112965176861895629480377795734807765427969702873626761072311693257529054616857592443189000447153033176976883590598588006822165940800286918042750763197586298799359220630093499645265098683333719060633129119939187634189236445785078013452551963295223414990563691456566715863447366265515211394390657238015263228264805910552669803212514549670408690255109361785662841623410859397810137012829117949060927461117036611948050060186018553080988701614067768354402753033860590032985017611485849630404923856467230130144483714476733198436897806489739780753379372630242749971533986487730164680547341865545218075777000988902025319336554701547565580539207676930889686823959109321022092213020015112980802389775146670917304395003832188026027244472260148825262736766032512408116476900228519767015893980491605560268385609075363470133162846302367056400455654797250555019497346453591278205273428242210315955367068448041492652120218458333167104459588436640111782570508316554857200423298786839644673424346271739457712160433986692051496896596485442312103863933829449521655570987798186345093737848457863623229084709563847815503511437124830987456405907116186500032900673403413599730650573423799104872299515802008813422736349043480304539384281742093722329084970094070238314587218394242974435299085298449176350344907668604401805313466452512315215804249740984715873923162164689522527887758509857881457536320144945156120496963028988591895044072000881438598231364159736756703331867783876640930717350744224531921019093405799358444141054586005189049028892400400221729343286651728013584971956296943227330910392994251096045145636270554898904311771049443351936937043681048242658005263841580034757864660105901343331499833218530381179568929701116227727257661002525887152371739542565015207405603081159108761879542511695967939831682362583277641326444774418355569196111483281417797888111842995677654650278717891733115293142338313978725064767986247262038160116200787983395636247821812276747068799565706468389557828500529867792440406193536561180526015042020394285392351439247069812088081083360650177643725970710161002974992058467433299929172380286314682778947382479400371519921227127420552953621383095371288908364679227216592605143208721331342142430326861663695717229475788615252714003394781732505556278082808925546586877987887376554495062421226620697448800962875143298795379371987365384226902011466205749212365388055032768562061430743545488498833565347338876456314707132868374512375162834646747293873072753014002071643618619782775225807129385333351688949195244553660878188626689398948728195952919443374098882343857982671650814589576795514411087178457717693816367891778200839548351210283662780859075534111726910317912893881759833577798748112262222436030888730213486524796088011050535374025087560400311506880400883200863783388971573921367549794904027577639552543532219582986215104891272573714825631456259566692673981635855833845305113626829325374641031194637461634228109879696158819601790990083738575983062714011647990357140379180424013527458073786758276062717042011908210934622330030858756965660562702170746253382586829611317451720995680628751403571235294447351890939834656594437218505273806397356595891009258070394275037062916817448625872672030354952306144156615022014474126632347938041003773688628001515043377191944305542876143831494558965848212077457816264275636561047257564195575582495407924914968325727575115152486833508748040538636745430766398752041986616996128826903596857489345469740602756554770523152593109423902893731268495705767467586558944865084510899279127015456107232992286416940495744047041745162640868157417416624586002523272411393373071219416727095938752787779509822229354362149828699413650106124562212773154526931891534551504889123992828119440297063549486625696107463562757423690443021862991588588713962876688817287377581664427908462634294742702701280925454685458860753488339952252199762066003836712287937923771453875756608920885053183680337147272891497555684641355401045539021632855818279886373711359028491787473601447441466585940387166848010192771981489681321631408398298748111569309534768812408155668418014375900103217036824507975323295882545729154019798350243235017825639880188508203534750551160775828183548681186947239877266718110923908750619754211135526940192645654304678943329838899238765215959520555786661093467492391801312611148690589038573354620099012228061729309694641362280193776080841264969787666271003213837097139646011496162741236288209211544296568062110008779668968339556062217678452585083199944803787078968776063133731996718819308832311290502748364946799596878945558808452912540542500840902685151319680945422406353494453970157056130043402803347747767963030302161661153244571714091743169405126635187681748266029676303344124130262634367044304679385875197847857117426318778491443421695252408895971388606336688973066997174979480435651520065417480479425604099639076359243171479315595676000551958873818288452739872640837207907460191803781587677206463503053596072163751842970097299471806136571290971789986021846039567920663150904050836960323303778118745324246587695514754232558382041118639401941904481753104482586613110069680089254937066408608063581909184347386428165393389920802102890144201103322444264442168951312543279431045755361456727981897869913168132174802494742148484332683412081629305965932548925425191337077192202208195453715657664340490999515036068166898135978812332229553692680513441819559350250453498584841166517411560114059271914254160833449356926089229465859726730321493340969093743326011503846340624670460419038005398848597886034473482617784757491251998899775205572748314941723180419906248070559178355129150292952378737500528333994782022048183334828258463995127848290791754415714765686221825254936555700309152601393500735690568537352685959788669524995744624660906174544201033978569406602533613630074647551976730513138343142076660171986725928199872722471330437492329831550115066060016616635844353464165346685555484415749069679212011924662489435981952446377286601777156055012892419124213976633362834480590995908243866897234216305597172241524901052778058899925075596972314521166562621000724513748367685626653895968027219128110730416081098043519838410066040478267538425739103358209596046735464874561081911130326402633193696032697722489340853411716990451451065825393299072987324738739390883848863185116688411873700530586275404701030212395961524347763171979085583255113388547738618088866210807242146369659413515514979854330080404150026632908340308530964094675610647971847587230413194734221155447967113023106149947680132719647429374336875163408097276291643199421678634275101458066603578668103215956613719801684916787187413978219181344186585748849163966610011405415339980544935907366800313147718590921393047011835540296891232021286540670935778949069477512460721042794224237486677783155186813615616422857578496442879926736666164638983819588174666589660652415039233357304973538046427571868035311760731638807064513852161838899592534700292206139183184093183355972536556829275778082908818827828873240302539004383715743281725260220768268364404758323656766919388263465731813791941000459881802559732367860738278436333716258464004192894022286841826001111011337451689850060891499067495017967727232164347881646681254506042956937706021358684117081190598982110346516452194182990311928329509496475763152001973918559123320592259441531978632244311012569760887841333314939522364002351574080179646412167949783384733765429678344170167045247421445615895984906780172600386418412274024637529286206841213634964310424862647353713801223382609747667577660379784297798579698611188440029025134552481593455859286536623875644029080232414772320939255310170747802874854611297414670201412479734999125828228409903823036247919467563350100346692996168467579022670940506149351210349941366700972903621683207469663479432564593599055960331685189787585291966458380337944573822577218537423952188097576234811969646948986647750251918409635880537895758284451366897486783922524408122939810639305718494181884881780739612364818638430658694653286020047691045830209648254727843897369820126498566960918311556029100803280970321517901576099060709433938324669596972607153215347685562688533605328573602120969764892886174104712207120362888866682611969595337369905856963449268505594692157271698500511269070143130738419737504979408916744292209457402333497056212757037723025143494496472091571073061263370350962372290447012553810743497741404078484834192015798124034779107497497327429145762097253573416539966020175848011549923643820989859621234647128784483851445425069739272288229952932726642282494865483479123305443910547897336350426105747558978799356077651894925664826686381858269109489007131638247840448905494663060359676961960790005453107909985112947199715553642922030890123540765608036952533442626201546355905075224114896566092329933591133990541984619468555186482021423293940149059811928694149125251749373813275715403446797947846286098599460707453380317042346690487118270062952877004702735460985238264140645144883742831241022177984812134358398048268073066052573403486033798558900623239554760055372532553554455541200001181264769265028151330693146132567444691793689388531873176385718878383914176867422716642942830839840664087088193591387863306559913631249030081546430763854134041706632224892325647012882227460025337148402564713991911854265365208246343968624025480957110614863746328420357992891630586273111781526704044107204097175036111903132870779000492441011860036185934399863405005133014804574866750818576164937146062499036644846037090651958442592312727986054039183211657780081411055156833876479987601125025931180856537859323410789102912501348944147022202307983158385424681498882052599030081875980170789653345055915659051029787890912183573159278436710425681661610617179639250887662099950734210305607884921536550822712576903397491102918048905016349178147172721523607253829564663688080725749685828905834335089765296186711706807173463576930024586959784859476944544071288283164814832940790399192649043657694729511835873626186994126162425014972695320054380849173183965235778208415727171024153866753768466598813224188123988226655203618927666764053282511639685915356161663767080753890456778055224105549849762323054635286716356275619752702062946790719052163514237124043644905554414848295687746384066176034146235284367570650527279651073845370429333299386236872845553486386485739811816585175776662695746395437170332178455145735860644381789328763464608662705091185076400865356202547744991389718773700597251786605939308571105869732216619559328836633234084060710842216861590149240648748479667254163989044668584354264235060519136442019364977501898521759790344663581749761496827591390831777292659092855477625660325202502960401228923804458748708722688204485600014355074633882851984457900367038567951422316883115267475396584963788122686233835130550520048070467396198571140287974958739467859643446341866956631374778051536773291971082745469544125068459317920591424298634208371898316320971828704270217896703186520204684292077669739578951709258770616558789915748792924132975870528686256250876361876364402405566739378485978603975149929120470380510709905552055171223204635908413418280535123513698798462546690701136585143234800703404565698136328821076198223394595394398607036330664360951264007718509001836199172132256455227530558010841613175970200187573634415034518499378541205594674083246096604740859078460309398611066589580262305101172157087441492246271687521359669220468586661767511571879363598990054610824477931232242290590840138432080098272995725971636859097658569358040684169602754129388434333595104391879393931031161004741265263828558667953561755787552410810198539675390739970829933172795609136611484235699547401070646044014721602410622964150611784234302226111140496546900410491683709193362360643248423575031235277956329913686901102701563831794704229585310879810592814817543148834805936752466454785717967514344880042692310972022213463330850551171636735176960092613915468940035038810463798386164577352451090152404887150884107617843523347633352220080690689164531159755797605087959376112384523323707940348376323507170008042732113772522981737484512247000468181237426806087292950835537946288548859084697634649066494957918882130031407828923547037087014981758971309803330108043566417988952951111861533818606912541727007281286540370088029693729478706255390579547106261951109326831194941306185488497455479860755308509698044745360318033168404907344647687707683009092892087419488132282342716001990069820526262578602293640544924175237451218838468805473892535637470468525011028480182296532069815527946212963937965188134363519569286422030483418384601493203813529070744819932675259205548642385251076702996490770488052996450757570221874731179874144534956114309654671031080464167140494047253866133508432235461808169670011658714973887366433158640961685437090791107731792853568902867159246794499724970404445639374069156955622318916215882614551417934174821620366683078724168260584651409989240157233960604707668568384730636595671103989391868153377107934211552912738881787726131202360162683487379291880914202814800811712678031887508704716164401324982496062151890019023124839504539099200811590244410630946365520405340987884743548725904729469088429888681450627019633212305039321479925275953077716209390288711067655766301257539645730961639819491904600710661310467502709629617285617066314545533393306407455107012286880962749445141285403108462658884785892775379455316173829039499453806970255869815423278044517115617473104653689923983355387251760249595592289814588234379414519357149754155026223260221815342256308350266524809187079950576625263399965246666278460923868950887376530464813236735463529558468630449049124471265672640106364972349509363658343722355869614856286141223498139692420378450235352038208055091704883993181751663196782263690334701466396782603849334069248437710180981876514689884927091026561222354719654177320126540502814924808919692799678825896923678933927581983527309952181536250989633883151629986949020690990067732850442832437502233398959214055803704884515717349341743318345726355799484079563575847186359869240856234524249109129477443650346580114940067561478082892301747836914480406811241948958117841496189562712040160776558486845995982953097835383786692412063035961639870684009204091592249441062779352995883720272372746597415732421358841868062535001198913913450939402317570893268689922175566369280983498564813937749736017019771761250801359953656748562580522638244783374386496052542372994755744372877703562454714591631155539372829043229050006006037466201733950933068602246166563323652415695754712821884178473068328503367059979972937622844854870140653484291260010741834381420936411252562724498770401452856143028604577893871676582174053147644759246718987775075037454761218237065305517629877446211492600123310181845226522224146283081407240877681866021041817260942681230627745639289769278241502290630171882872924053462161552668493273998807413617156937508800108427286267376376298769034797281683085746874453249814356482531088507208650100303790339675670459485341320241278333420561297462664540747268304732152350311618098910432463960077106509071235547739897189180985883343760309201349635923164538994106966836794030466054063080348450114785252586042559451506850526480898268852297899959934661660742474867825632479452233646647440771376280408565667006334753034459271168318145901659831814451157946130082922424143619604070529277597421970684144187585156855866345642518534981336750294678398442818538387924327063056279323022867020955720332921459263934850436687615348052512236739969457762348935705474917685037404942335185874424244237439188283642867599770306850417995498477161000456411006287661295292512720678429566727874654284419557900339992372391957617373877138050907220914821004760710346394424625202803900217653038762161571640249593553686349940282313965535369754520861771240521332401654988349490662443220492214630213854189038729506307203234136317870866817514297769008131112336967519109262372147048042271516232933497399260544965119907827074479497360393391358920806097595746741406470352815678676320151256247642232289440249006401218596807729927077147040096268752103639711672367099343038976185959438795043865338504400369239189308401662429128092302517149727912205704996393994879510336169354216789702844067760976394984593577236249093097303578769047505752280737282996505969490580719960560988217642635880943578055814446447428503219555502482323306079550621530552611509596207854631963758635578471879136375269504842919424735145493648139940167718390506130100339429359143876434678207452238809182679287577298188514375539148887522536048950963430126500820909037333480109195656527752260783268269755452757283501973971467448423378497396298334667440604874791418710498810225867103073857561376313802580275502417389269186375000113719279674996213502754143990083225930774716973860515046575711189621780940897625519813456549214034154697381215035403272655018332200792471048443356556351382601084446848382668527636924153009419130022857579822480125781629127607452896033543736391228672250944631011013308551089589304155987433677820296600380470813473569845060326164471973564545542725916040002771871763041138351899393871117840936937018042687139464740446513671090420254319746469132237616565431836519843815297491839380489691603451972062826746641156973782677836218614067601296503467744749684763268801979719363991698828051848321139390872934493761916232513959499819170853450194609228626252630855619213727763505543398518365326391240832759682871022834303839247655031070370996326484334924554401975919965292778680842405509950840186370017521661653100104529808164926133336665821756095109525402773600328199631168508124703145977688315469848210613071341039998948297652331816254115048267703057344262590602205303875152545604152507219423759324703954577176056268250954969899420477084069578781429928570150641154927412930896927883168060352853513569382435555735277820423496336809778161521970244096480793950517699250109574359723457971864731773655260064555906278368407907918830971087679651113280483583309041014979766828416852712932915425188861770217482845386935396678865518699379112403489546802425189322727387823129278955197905133428347669710330353142386194657188445622255533574976310959168834732301686468885705365250676106383031376995510303638893086607895494177372136779929868294104748821654632333782906310903460982537514817883833138398706693312625557791976738311866343194774156612347438725915515342981089940515163623113298955688704160017768407490151803722114200863857650609495667062069402314024837401454458457877908496447941295606471353370639632991717382108101003167799478208682195571043610702262653543375847752908758650392037960453726039663148829875957550030119085853733182498451715464878719482046281265395470654972621701850872739829369928358981110744045529297980312939444107531091270226480395585927082680201015057945756115132044209658817407492102618122094157684074627225953634258765750523934492010904158065303472219213700619990965022463318393917634632923178519960306667789971658224142834708380482302651470871418510941906109376693460670775049647826312566008289112615566457996912372337007088274211661441398520073684988079590797203220676108541041547781178530753411757645896963955616940785999930009943806212520162485713875352591431042922275224155892771320269424454666020673982297631725940424205958783266411116491311823551638836874877439421770099409988895161839518417779737216132643506801050103561470110406060241655063861692883466160002801250318558462256998802654230596829462317654514081833690305262706710713943826326016210795757270026387404023707023231269895907431213015761991849811846597442996987238296255975193804855875012642716403123371249929428324072977933889648401646354663276078260494390504604859384838630846600652449730413507802492542381067535519324973330394474508968515160571589321768479873185886098168609181941492890925250514492726566747530437005104672389990616646551712573114201765053788228442409613597144399094863173283947438900339861639620405452790834237775086481311461957650995075403080012038215745271410044837650798540567476250820008507058038832299166486963963947352661228555720675084850074497302295849693692602802388553774651949977979329681066634657307504004594812454994096283926027860712341302810947097844490839819974440393658493047977053197022095651801258929251785707917364948245497729190265626938190318965667886951671162947380948646173553457039708414009652168651708495979500668120402340780559075698011198408445903255202027929905682947188218226203403888510283465792172138120547253584444973181996682867731998278406582741685338445227374609115065429234309473907859667350138814071950222199082536162781597664105971977980773157397284204654889005239379202949094284891031714340806141697918659848403232573324392762105255507890525668968967912712850932519813279578810140914082276772502707072760508386648410723678015341041355622447502796648166685527347753149638763481551731774183245264474915705159576654952789958681497810471429031385823407332013747128383562593618583866774174891745473700900286047223523975678661023498009709554678746391759589799087785092424972404587848649226562702604401432763994789032645177457219378064602065550369584381807030159806932717354580321614804268376963513553135870398565310361190273031275645965111560614864326865845584317105534373136241175926083486589861152622770747519683283541621632354749077016865893520551809428587902114621337813521006163450419180995710394787128511356476375730099826992227725226148629432672616111042060136356733270675101635081268140837524168601848384467732778626221087902018804380458555620626346760279048715343640587075998325853540966156489736024677151215380932374797149151567966188080433894959807973494776538062049514589883688160860055549891716872063227135546124414906091583274885988482598947602107336800229890790326750847147401831889386453388914009632510001493280709682706750440494732992503039014604802392969618604670566839091612947326421561845846291020217748143438428449871429402099613253859417944465791338807172015867416529364688490585126959510124546251345723309639797170339980092354807306629817545956904976196775166592915785043388780021622391327541434743416422617951266972982827664188049753959953649218259041833704555125143976153396000578947243561794082238349999372887618732640001783886600300743125858120452213539657661525743561626290569756093749239343975791096778839600908180283725310107525351138929079440845232406341196359981362531704967579546039481044321390137051922267663133892134652428556924066658107456402584434569695760672148080898509075453568088322481435172487623959375867315580210346914550818435754460531303178645485707614010296541380990749839572788878573243395630421491785996394152010725725148496728435277596012325516506785338752314468678059395496158038998822005352652045741423219410173827564211576874211937286542036782694341517115453262437177633769519107528737834513376839783038445435916071516682168448416177177592020557956058620234257907063983345878571228703281746514030991166982377907244643656876316007543149256750910254833863682853000122553737538225191865461446690775144367347712065698190286885091593938690183206893293459755280254991596020996413275221274675037218281856165993464149345679143627723134639136627742541802952971393206299648723039970434056915169678688939955689193178928274488307895335903797058681419657063642366477689625345793158650783371975367387099259560213603240436976485299584975037094240987512473363849865750496187752416151328914269627988156625421604120184432737223796427657443183643454988935318814680559291650729538634625755504267463911049202599528792847784472015968023444188157635821164987278611207025876172474372687553196965570093561114599530919727485245136084034589049180919745452553193222224520157493817800242178325411050424904835572721543847847594991640189586969679586140111904711456990454287618501411777235161137130268720925768012242891633611091183372534144552108835244544561368902846119332440136745886772305801295976478930006143244106888585923096558521208380083469679639828592706371028948953217125900895123413089384796923757480000390354604657099533772126051322659961339776426928458383452350118057253336679746297777165887091803200227521033899491725305865063489941844237099319527678529462139993956437397224848425097795887868164299877702341548268835725923442888570170115591045814987582631665567198990383357180086328391123355062542831790698689974835978323001679166901124014540913503569825064194192036786774899225441211717995403611787036970305449808353425503578646394094122146241754856659241388611836633495897793119554646266904492298114662299764644560561059473478389489104855856968322683929723741037742404593083759478502950717329625000125751819385499821509825509054018044739961020450131023776929809035615476831422651305639475430467742669918262170555247998905009267111793921633729468338036125682705467351724551715763489865948694675928875460375777421066480709631418827764897695470303120687521200636808515865866373705951676441459101128618315513082014869870621515294077595976593651825251373158012674547252944760020952895388701541801430097128184899398086258133671926379587962748170717393356583013403538757063867944425836422344256909148995959296509108207451318314500861915057676683227757997308016731362035296615725765248433905055309309336607358174874799571175314508627753306611350317918138641460167521135219444856989145867353360337435592459969503891887552248940376683235993459502876343937936490072893357035856781772043458180672209400842932515608512991648725490296825881802353492804107684360829645280006273008952373540408247112265586490220944746095374582551223363752863218681159970418630732513838216904242490380494939913289623142496140509104153298427098531399513487485107805795919805517901984257247791524721868603654492288907680602922236990345027737148652410517865271628752905074453698852774481909598820128213054066947999231062450184823328301645748651150795760870371811463189051868469645785112079421582151113055046518872307292766905132711694164876531828778240750526088181436010159271784287547315183545944966534272953582272991520377525635191380896757128615971171452056754026280912949482170049426964533161884411718888789208345928845804290038602557802579036546182553367324996319667847401119296434373377718953222821994777147240953829141960451202054956892452145307569983368745831605007480803142384206101772140761829392932803681703853364881318933547882538421574744956618951010810927446815388440206219318591957664935030364730036602859083284200482984751203982616524483689680138966652074896977288669606671624070435309791238274276189061439360526388790995439462723653679532734507847219805082943568158113086583467497524854647117887082423211412262100024595544573600234596553558881161856813828096026184681005392160126770460099385858073380122490370011729056814415195371001119811209355390988901416844733328092316718892656733608655304762149184747526142175036568297186872219690463785460008879096371533650862263246675184019680182070897080770748020766074089996728229725646132527915668830662530483624409437392506685916502980151757876074165508396929495444055461415172993707019573628959016860072720159107759418025949207264319994226902802019000698306565896819655528448322166932853857577702243081910050010775500214082465499032690492940460330297840369820158930717293339057674078358465640221954561556220631331283208014141194668926864315518478027371862793321967691561196548550267899538768356184474833561661560599998248459821338065697705688144968147000805989991047526414764935063929967769712026904939865249695281263750988249300719614341714117423827215719052659897579813126326569102849326778342149833389017008397896199517098487100834783014716809257829753085645585687488475357913323520700561213043738321433352437975817965586982645182587935065404725794654768740397011785043374468069004607185625722806050628831959247550362513965557686391689810673706771693131854306618177366898465972717501004459165072244662692365897243462808627690787989430698454893581760868545818283622464057218329859753907030297016786910846737889785178137182900840537281499771082139218037051930792521447142840046792165648380203136222690167970051533966465689821146403335561119490957785084718622064532665460033736591203075937305323768963827996906023423085568825984540192259873819959108505011000751697913598692485386648538965785866821129573071829681320125272015791121626982199906437034787692808406107640481679158419844559016853911278541562436278875401834461628372910777914053949861703797233775772683131739789657954790816603849299863451430383690287052559708082947327741074286811894439118463743378693534666270286238906411007854609318162152876182473486228885219932021705041630815417801751268316653504250094463101513449451668641235223342247776834357773065060895300341684653254267676924150924260218125298411281758567218086410635208193301202429305140109689772172168970289652567828224540554471972734937500906543533613380602753590809786263433088740274458543406250881885676175186136279024305531354911935059911509958211376649672222627185643183900562859119894839999391963703077593947325590503375520950965918786397188949467082687234164256974888225548610143410083251938306094322769290955315107815865233865783175795562738053400810075865358515784985887228442887667890271178674893712578302027543931332855617250295211482153961063447999335577249510805593865150274745712114957005261532517787621583708380944395909666085435092232891063100733156587744428600269209952117727256782453896303858764634467090140638172292181360429637399539044202342185982589946165746193967063389002063066937254397677182640282753384106611327672696011410788786554370598295031499187184463891603971795365890150789621035117670856134062927051060049647882350737073660592604943325049754046106503021798848202191169687713949747063614041798632943693192897403137299497112783761716178232739111767279398204295193195028681981495189318154550299987867481667163859839355843875385627888456925240309049313036305484552331980150643310280044288547453460880962206951414915869083688200712818960976036446930267787205503309483163287610754900571659659741800429846123431585585982286832116268429832670763856828859848091865555304412406820240236361281777516478737623477332565895715995103967953996634007765554803655165575591604100036445496949960850142392254569469176164727223042548356827583112165688775085699348404809669189079167724624299829762668127874591187283894250909954966811366881906219605283151814982828456945859241140299356896846900587158290838269524762923661520957294773326177380813308041528102920897083549642523059351725617859703146236075741970087219191215868827003504446076533908359475548886029546893734998023252411565096976885605510933830526909697685506624011365465828266388627848178985209917303391036086109119596018939717223873893297723465008573094795022619486229906226123507790884059497077060438062041757057431109460666438371858192775203980353450323325507471759518573754791467049254824027093883116646936523149967071820397154583067965612258250831476083835064634126041859734735094687791817870435689066116768222306689119296901863097707173347105817642054460924445462076356657755850520079163315794625460856476585092156285863520653947028110423423902067179595397652080880965685809888347592335849660918512493578724905223378546971544242748987513767901455711444300654841168152263434546900015884510450824359354863092610141256922209487985536363308555553026135675545992715393442049199596948380312356006307501487554274072095240105877595306619609992812542775652331675171212037113176561545229198753434653906705264725563544767841509063830035539686103188673948613891253223288843455407443699484848421785131823712727437054229003880372711453216196776715892588150954734014840354660671771011491285240946247153068530931950846436411145408246631732456206009740294093612016485198074233869489082483385470468208161044906956101844807535621092990019184843915533834009035514012008794329582662159461395059873240246339597217010156213407123813988246388256545765817860029208267808675325659884686582676869624624381450264126588526785050651915957100214011660776465449136135458065300862919883318841361546939644313278623855526477701986553531504473675818652754095151953151156625307647356136572442796402879171458497401624279225759728160107264285653624383227654894981094384658563265792843522576536312515302179191405606698546138323450319936254369175547116498839720592514166150638502581618487438862450978185876490360244361021564510500379209337664688067945764722479763553075451667204932115824629670917788843784138708837977197106374061342641172367754148261558318875760496792098775047019147488627745969898899153911922841424198467604120996224472674420186811236645631432806875978582801271245029073737345116938610682880379744299430388012476659999005289347041845574637258936837823922733239815410560009892267075580541524905986966770035328418344544761341138921316755216534433424063285944071524419205643308991201545512277028882190821797743611994502761191693221154828797235629941676761254367801800951641691900055673679300071541252609838108992423440439918264836708976172116008936292826199213399472556580143628017828910435369584923778682742879085594587602338642949971684477891146237511010819034950147367176016114328751432138111975708251222580571544186665932723883897183855100739113191399685993408778182102590589202183867031180491166826790476787962928409045539457908674930070357232657723916095260387132353579616350364821594246903123480946510199460442018089158437006632504985933966784782891187431667825819155126155968100491500910481217181011448676388530254759911213376694049594197755872812243716751852651961722341863947966021331820012371538913463839781101169723744701074712616276450549940065611186012711969722521681711916161039647761920649490245815527282934946171047247989551857689849050010973306472208811838760548130581114618674501378140664756988948143203373973434968523701456910516266760943713567505608225746440511972086812320352779573950789251603667716969645684466819977666672458659173476357030315097095821700637122981378248385078549233193045708353978680605565462975295890462800169335750082214236395923731716501058419898758625152137320020411977377628955404419087727614127290832903093604136374678671600751424633474621108364365936951454460578670038453122802721803296937352295439534917197577759248602112518510439162499713294891816347128426198548269238111994030582672980282598478930974974267049034114308052457254550869709402750691900784163185934979258926386205694552057423880735705034186639700694975624112890820267442096918115371184096371389967212655452349032983590886438853629358811865904506666083579484203570859630924120031833695876952419453047404996188993007150153537883473773257013751614455152830453125464027351198398396117781327059240996644059572288035266081168213911997861391418918794863356379682301158765283669013981206090984526972681055376481584659596323950996869155713542096838795337886032631819770320220823692470029561426225455368015612399110311162186504740620158058609226201132648707243634211423106505173595225586564433438343594183206553213511226771588987350130766003180354539294709536319121814217000120815207699188103032267194864905901348801701318390255012175449580521799458935211198805115818290679899141828371453317643925834248920679817576879908702632649020006090050822870399964088335604966477581202118982351287056760489361684610920139946713597651216246201422853989560722496852974762638927465652033616622972765761263885790677154839388165775228462134161205852058642214515600844344910303972658687819238517860093447638052054683053205804825098721040013521694235817470347512283546844997661094527712260612818317844902371637483665737640352748326577876911659733119636302652269506666221075475366288407674945154781845079686705127957211946097204789542998837015748750499767263405227311840160767820620989495970632034419622700774153091687828565130798666817634521203464003266762558672551483306264512300942492985057497306191856227875548836815802054957276712869938494483844584062933057981508260872189909102988876805462273067818563298377227800923097453226323889954585370848692667837080347055024960383739943563135989371311045142091501743014347912131748012745056384745816297923155622334067192663194622047119787318247992672462683035168298871535562144040331989921923486292700511213473091366147958464109895034376191830792709708457157562861248224738726156223454062723988011919841778201219417232220811513712578050610901493430310844212819063680077649446655894161935269261104198871104570153325985565744197258249816388528680050119325129581460379489218860212765290368255011234063223984155293922094106912176544885581313294659864034609680894512021094491869461666336722454570709275119868392825927539715166456911280925109151302339919214716143160679908115183903494679774289865262885897967944975900874379082741736346853393090613561530783995415124980463969609887882781223099566283504981908838202077350295458164750619210893271713372002620179888436735458948158672188024532365650022034262703994840696723474268308043226640428560768137723182132982648269801321133589860788516803511595929836723113460796559900807937947543712786091953822968514258395143370086686998525262425888091958467850464556691143805470520273845127883174667361424723355518618183522884343957862946625945413583468854232852027461014602455573633907164277610071101157846650215226622894115425047645017378379921654855332746864832919481980290953969987122593957521714193927422615613802033152666523773552421941075372799113395432494807954803565458831378786863091886898031142471821933056121675692653976851661762304981023464951640419687260441445332680299124711490221290777549200455945579365851560676323563966199012925934650328392136521338510410318595844541869269350694701149219207485315902008835915197300981009627834895731630828257530275118299339064889540685449322009192859202814665982781916208767679219344245747126443346097633427223202172195897559690689336029773068162589891101685616330568605375506135364883206296604895221845927459471509970202369558311363472533398771322519262750218010966477459823404213390892407634202298031695672099661317745455403557475940749367523007396275373432012497605141670849144982998142208916987727720564182280621430739635705310087535324671687246275113181593143375303918246921904242346819526044197939630669631488229434545789433054155475771310787337975789853400284976648284913606621016151930177229575827017377336088110592598572142818118676996165267218926047648523858022981931265016138689637950226219004589566798991826126809491453004773731407107761125329538526956754533100733442510312197292187439102915740077911213988255961131298182977566964425377721033621695849805283538002033702173150714583787864942478323631291712484270726362908949710692502006829391762469855274090994237975088273592013506707365228727891044636815449279664995815354145985145348315962892431637528001925266475005525835528830496631121257333844306349285400628665613489302207846461549480942753963084745299788083817961716952963019335636629215235373006978343933566779489100456050333084750617295968689838678531668141774659378412340946073586300699877474470252110219854859897896339629890696409588496140966227847168776060404270895397012466742287834237326890901683052623666872488636760906323049616632756619762444725580587004696229053823375736979893581115433006168949399358058102824492999880969084693218353333452485338973469473954294266849914044717446255548250225172909285419385096674270932443578362434389055441870173313808580892191899103407128885429513827669323810954540077096460739056196783640249475836574853872411085313647987628606314024940661387736175207574843858101712106096446320428826220813087701435432213580917455997558021099899657626616514739340710860846049328064474651494830619432626306021416471142934044599008024034534140141428898062071434033823311082424432620468137872456673982486789377600286651486266916788706508743422563973491744748102707085079647660745785733273132704877939523620589604058579963461585797230927963902346259186839648831419282566079092296320248186226238504088030184906218236711296651808461178997922284975989675068169848897948113091294652962669080723016723940425558615144576004966489993708822364028030276012481323188356595355890254939212511232944764783395973641109282794920405790192524593965082565186348136274196757195396031999459946333828963859640469800326444041873576463291550780076745839211818331615232088184555066025282210773891303611246394266362438798754251405564812066289503998497587674766483573117770646673129443631356650170510934028211767885415846396689821754308164781432291898363353557551279462449558248904809526072149276662142302298787952703051806039714586711674604103900734546061465429662907207500586330517437795806578725631857143302884888016262680667741704893597807196418648430376895596828565679766767071700540414358425905419570201762870011362730844082456752813129083834807337724264621042761664519663798639555271579920865588093322478166965020873788452858137315917728463108926794139982216475019423328843683151034363833435988653833199984216499288531211144734887816059457514488941950645586018685639519142379170735278341624379020616040430329212530231779403616317491276415862131545210919969659590670715586207378684793432908386492102792856636706906989924950403331393140038094824094462635885572206539589938700365244196521247830720458261067798772971623883676935208193450896071299135317949072635870143340453446018605108422443902290524511806939586129585754025931056932543038767556825590564383415548615250556474294907877760358810371823407910187007614300859593910139324709032821658657026921080065409738139664788280140193684703118582115540758841113430249917291964560369053042617253330191720344063484565536321412790743220025228686733022181691524613723781536829498798908485584465672244752577835274621369668081277530782643087471826412241943751797412971611249872046979416300162619819290789628505569577605156935162700157370543249172425896137698575265400880525868539133043746065387519439683731463628289633936786291114543615473164980110871942110869641228188691413353651226679470144195659700487060150604154749164513843409049902506771527934759580299528791703605696818654580127893985678120056268052529111623350578879742726713373247958458075364236446219662085749737384004839128936252745611619819208366865261197613399651769222139691766815863770563152867825573548379499928900070786184564786835785859396368765307534177250855600333843184910030536021555533717352265776916955407041542175225655609492081284652167047715952374584078244384661528913938676908957572986439021437892155950992618652364139838428195391373735959518512614109753351804787455377257140021415346953876577291725505582165194078279489168745414162423385727760424568544663169040965185962534168939590667716173015767865923227152103110244735049604315520623524336981625721621692486150801120060375275636414780195042583301847104082239838308963451646355265951706678968153602858007207034202488503620261096774302834974490454542869808263172800642645527864302538649259948900490649260954422681170732683373056252385167420505940180852783120954986336346315289195200818101549299540967133585459032785323541768909215028745202917309293007064899266309425175870167839920175257208165578357079699530561981981964773438981091072519484916559423982754831550897504402270737165769571273976404987334611099888041273154766711369315923930246272591822692850464703141244922563752364964756464797481710972897332102135923302756878610292666389051801414733395282818747500620726115251136465281792964340251536550189909006343416716098857826418628295518162918580400414328701367050926891827610407742498196625236587337411831764922162504966263251747919659356396983992371561353758132725819181049433276127768392844061084600303239707196048664625304735484523162531689594834745012730036122447259724547305836373911865144871200047643199013232166956374142172064948525240235512768243329091310255960750781437960057294459984572834676311895336801607203050715646947360318745140447540134687892002203930541046138148705735443929484235975988182077091492625191918087236573876695134962603427662019106868839610484928175743624005271951262672697229957424969726330760661930356243788210659931955618358867848237843477341146784057297150180951864321827727925415187392909997125757063018730670203423401775072000428984594214939712381030275581827609173931013911450008323057783223283214600384935872420216758123703960049223944513807466921375182101188402285730422260316265013146696757244481017503069102142110139362957177102386818344118893892773423220986229393050270394673160976123753633933893189725619727400486069366595686117369523272783998302526713286545006250698618145810815266858319917889939094771991021396163031079159777809678335334472223832572479582732468354441154391562582147809449610333389014223125837339245980545752547800151318777946396641317892013338486211112987756954059321020367573108315880809653207864246734320137040908988616944116235411347159305606917426505071844482535208948255804559094605726747993662371610382177219484858005372481507115046693932169737797043086596351415145032408999140175670825127212164755964777566667857731215528763562954548284772877867174497500536311184148966972468576964876812819272888809925547188802733632002233227593148310591898360707371525054492260095367076464238582029963832817039419332051577963378780132316124440503268401323854764719240431123433679419887995939923019414439641858006993415074870332792289974418599654223239130009186121429665585823963864649185888171605486857433446083334232570109075644190513833587982318491206717764588540259704471585802999521444444382180830209012619560972398278188721151731591830869395196712953465862915539479928537147591036175592111938683630541174112771444372323346505576742164866925315930338169569781232561079864250549563667253336462881734504995133047875017274178199651107928760732325503419033604642163755978746323808063470075510448716218456425407658151809076459651958347268341083822618952085023790289007477755714127894722917545180533568297303207278277810365613393622206444221779181334262452913371501142379459805865492671423192456359009595093215293799009557283280654097538213178485996267798001252342427692105494882451988818126378224036113353973163548655116573862716868045360240164921208362728407560279744735226895730500595718789576256487976777621972172681551143137016959771470392246462227340006111271393656341694141625124967226099142787813830813718130019571379414455712755156717406802853264123460145322157249778944215692337412758003759090488417013674516193436167973190225072909827599719440992400348857292160936454222213388042822924745048168663251394118087830646371827897627501982602291897001191202528609931237175858389220206046777310506745304136606304924199200462083276459583646794738888767235534558711736995994275315096640866307613486441184204593316919024415327106498587000543722009773789879542229950978363999750844206349347534156716320455440300824358439149963389926927096731355143774235280074858956436971497484786558013862264829951110805857373645887904100190653943706931623501013490466100348706192356012815295969646331240198059789314457475510505592321125453732004102884101296563872687120385209025406526969596693629089796706243473752088769422595041558767452735268279583848019303904148640718244279441851009733145995603866088289169531344258484238119215710387195059641677175270566910824746913801925032783781744860941961063380892252021334203587929812001738613692709303322180093898824521308310766942378913138118408249892136755639502943910933694107156170007369459858019950054609224077066035093239743829232013037503150828948620431684784938256848359414978787951636226476721563353048117947693419295786968993276129795409104736204339017811133012455585154247784214574549261174278696513690123351205007285935650739595823208750377922048371740972591484922761207970493921788160287797018094335423582376661418985650043912179290532943048262873820970696596852914314526350683883570128413122803039180244271271345550716129990348073525917338524821796641019032462603162538820713487524678586100198081716648483528573134144813649762736460700452282080516494342660473211963253845624021056345588266376965369603635964122204175327653724018214346188036674253739313391885233840238632008564372882615837864325665712889852633045243438712453242799561349100185150557856122394151771781975415537748368631517718672200320446809976286931167359246962034667069640193547862798256553673377875560222495407396851021109482191121365212951266357385150212693961396662863622141495383232899482722930830547284015083054329619536799468097393523698110359670236619822730877584637915678467882576706924287468367204076481975061632082946595291820112224844756000823036204530585097850408247786990805849454770460005611230965627997409028815207174457071123588910458954757803833412966803904667182221503305626832252249084400167187697597984022397579802995327975635465291241698145098379256794500863244369418728055639052901808440608743625423575858145608202372740810095719130648721235661500127949979693821637518899627840375039995911243263475154781160599338535064507020247708003900398084460607509874327375081195800744192202271909497199317003939226577950050477129392139607767483945099017290716352925875629649319760709631625925161906008438055024694111529286371920162433257032799316406022094217841636759033063078495594067525721771342472970313342493848953470340216560883945609124275542900386352135384961231674689321075843344563672847040290722174094180587890092391548940725624334365449081554948568663938495427371388381236076115818105439905157303451193084677021659229540356418433582250806522984900191060191136062666128696337710239703697463461414700879274656091431071815236215026132603905819771183089921139636378785237869644825292281142770737033489014951006323896701575667234972155389927205990597805374854686673556428302832731453788240985793188338033189100616818680310970230226612144195662999560596896541650856138885549362429223412015172354014002921743895013116083219928488315276695456115636465200015695630579739992220327075555310304364274562413155499734193832369252602614621125007146026676180148590114324775295769734428477208057330247203325438909374727469966782037886272345517082131050216176176627266016905391876264423194134442228440725705827953943068456279205768261193143646748486675084773358351537418093543899087688503126689033352309584516065576866753995001489622742722317945790701543024922577969405286468604407201370820657990050514533899699281458124441772242333938596655163950336795399504672503899548188172382989340601230657701061100808988986646114963710594516743452027902343542570608165646894418625190036783004477333711783241591055786174914522885798023762867845788182524073561539590769955419960269881066836963363754366386111420807187474857373438691264867663932488973220495113031287092586494320493833057745741341154484980376235657220687617941525324194697132107135365110155319846999726504995910936484765499870702590147139179408356625251666502572781028663671902189494852071748527863564150173545926256317658505636694065326674465464221536301742983397607227677520295096858809612088912863752687850231959832800511719885230735123690143302744108503373098008725420739263165853791765908820634114647704054270255376967608718296096801663732172744662051124699960012202594766107296065769215441655660060488518612534423525833918418660678435460615437762572135324226098819297838961869711895454018855091103339943836143573773983486299866568137857214955440096057810964821084037316713737367598377942872530587377532279357694262964685034790583529623749671505589069816627098800134465627097444651191478446404653232767213798979437497261405100929782798425302691811210372236714771415066845840034157244645312507864830989219146985987796242432575510663798934869888710376933106412595007162398748577767324763038545421343073255769199246800270222427258605103788705074610777986071894936246568032973677670598852996506872499773611392866803119080524489269505410556490830783460936299614265654724241381840108628975520177886007116952380582846911339153165181007674433233633298336112493623257952843244644916723828664064946565962746325362577457040253083281661440772978663758606828687641988808513517881606653419463442673162567553289252373523774899411351426808817105960793350243146484731245952209916637658639340625157615677034553067478621209947111352618231814585838570238132731176467827665886657878928227731722124155217416558883158081459570294172544221005903770905789434090450365566950866229133147516263434013806381291734395042365462403065299383162325742195918900886207087768258680832335293361625064231853538686747988411493033180569463576558461530629961813764309151804575344574217143479605380191723253776900053734030578750507052197566997957101723252533274396456057852316723606811565346222881504725174443431551127429264613094393448388524234562866949729371791832268829135706716829483004621166007495046019514001403642650274689749542781204831690410986430495178123773617659793369683337185250950049534940817576336956319156219153663691243231000159233995434564693696884510224948311173922338272351056678680120716618371206435736091404357032017601598234395363137749184879038227909311985501535149932470640064795465237827369359057826685827673088615505309728957085789193876552679806443687331138512632272787888568530119525079873338731667754379670379119335028788811969250896438362809113149943816821008751332797318040380651924271813747906175926199623413367577997300831390329831951655952274813725926719709826010177942909724840451672577721589260829700344536872676910526816433651394709311556296547210567617797715328605447240197161198495625853948013149492628057939568377809731758628197642705686003471627551025580662177418366099142572218920687433103703274671444292015915660012340679036995650781556288213160707973597166972738975822634725817949146009158379825645813758011864921037552592605753751886916036978375112861256826681210438663026302433671753925288132243239757173396341896468017560595290167523926006297014152179237287251039718344125895459416131054216384493643795406007646563280515855744369110901109838877133695999120449918132072650108083100726161086220116201838021910733601652972183244878918694420438591347210630207447519303063298071261218865005998913624680047358165213105128844792647538404417421098134891524481090926398614430806142474215388430261302380248780909001840052492892906362677007342749942147681384616925504008302886687114236779639927817865524620039289648166754923211323138820804633657730710857235571180253410075814289409606201810073195277813156243658241296361452849486940231889362023897874327414041789858178464313693374968662083004136114986513911842156334821395800790994930830171045813232473648189544309061499676114416598141640882833777449286297033993392390119114748882793806997330222949065292803165050330904256445680604639412261779650030388866734716247186500670958650817901345795337319841025082065901327316249619764634365575194683972037124976066075390713847039489151002373211697192352953758090680356126501185234637970658513900224310978789216742927346647135881344490479193649409269681813871173419539388192294337437074957185459159787635118848104283557344005603825393207120634447237554253068462136035216841213644171197700023719830472426676540127326517025206265750183143409388132300357757235704215539338771273543182730855107526529351500341479820998242395307166741697515281828730849506017218364604816870501270129397138899765088840949950117872199315892717253983455229437215414104594696669455215488497240914597319001600579046833542866989582308194406892609526562530361498963057923572777054022442865815935776695336115035290738250973401113232864554821406788960425963292505621617665368227892095647490138078875760874170966869384582650225801971540564374040196756814378801061917377600839889357416818130136980675764798171525937492182015773885844428576646581086239826585576631584931928303688016157086134344226648616223007825894556105205042485465491993529102795966687092345388513819525703982019358929309626381978300983537698728154536636537810506154338061546046750581745964846465861474124010938843340948948539111638419789106940776915358119467108227897731977494361760184398574065363718025246133157147657953031804831121792447071967945067944459429573269660252456043206413846133370394209937028053858004856696704546342618376082785658108547073590272378000300708650519811488911655964676486128434938375537404944192382917202196290228200526365009468603018145247931092953480306620817872222594028751875704616830388872842045268729060550249019273462492504431245694831101299004284376439616803746686942362913880196004366011570058470125322739949921575609536862811127378203273477177632303963848366353347772462334909052140054965213584776250420617969584276611552941144754167044859363612866090429365250907930096867258433120333944137594316070625846301658990780547932367036372732447838907286515671362961755612227803342515032958854181204041940873228488965654742179331168936067929159038999114774644289668852883438009353464838286757928847016071500995460928667230944495082627280336093494128427193888795301747285755306688660648859435763823212357568250279307666137008172959436719932154177940397930350630877326817973070542230664484252918969889115352895247989808747140350866756707489110556334909604310606655579414839369173634519734704658588089720799488055624014817914360941627524444545402115386602279034524784433340730373742655091554226116240441345152557138044673033165472120761763862965228191296085726008870343051561299855822273396243654865827150315708614749230472350755396438067520144015697660112281673315700818823307786680199215781235778975495383819516772040127987244664672407939459296957379441604892518470296667510168278853760190311837817832953123314937094694545243456526165646998174149658906055334364909039987160844219778576444130130051766329455273147899198833781472345827106418393779735092279636378526211814791407957723953289231790098153777983294590524770654074979681301063564142592080484835123786994467215460177751975689023627018015429745462633501689771055742595202841174796879251695664334188464210272665824510299199425778815708220646209773125552879578594509309200147685928172172470895077976035266305399094922796222841418903409668514169380047166293777998068421759399382298166226783430398168933904734706238389786868161510458657181773521932580583877329574451487494860248555721320529345663295009895650805725557615813208468380033258467043820787970647369033570718475510020383914693155611790897649102513681846380740066401889386879160932120106182579366042972948687638700443437704303534181986613366069577193653898673540668070959192933807439386383218553778937279151783217506530985238243414071712219646378373529144025064842568271188112432289201370973812854564011138679578784671635881460584872737622588918744106147226525070600123584389459845356273653455122104750680726949219145301368200136763059054359860979982989139347631581689900421044779206690405877298904241740509862544039524488677661101352052789871181429131112381007756138341215940066566155676974126602370498672514895406724794690433164446694151460211961485362622702693892184310530781204057474964269008969836166613827793582162420048172926037306011952025986172250095260231601525793280261777007019069337119283569023632394712312278967412136774022782127768366596189755580539498458908262116484134128436742039038083707108295512667499424910613413499534460656220010369750679668312122286288830823001595821875026771655937141351955927669194914067578295686562618839228255887181899132247104209800306915921448168735888951498079502457889996357061427484067544141217657486356528031739193264750192374720025692011620213646218995103797532654827970284840824809895562428549082579474820774864260830018381512329256737969302052780918756406163312458892125681478821682731484549770416298621762472050322229410737960827487563934783856497610254487445661712523930375115881520172051895466432848710482457358322929116579296502127977170193313502303063176762157256717843126900919557901751627285809441961341743713285251554275410525055604686674781688736210788957652849705376465753548562427257497368754604965447634870714547533914451325208925121776852577462620917249288534291795471211015556353094831019367688624873624285640430942123200881558542892121611637763064487751654760786496225793415139837844024497817471721421301166844081953203385086014480304176202913596141750012589671520443745724521280304459550442505065613816460120710311113187280329285261720219606577441123536106697886049931932627660518737822636159981783776692167400580556862381150063896262816603192675847191937768615684720885567617781446502520628423638211468686507388269373090458363425147066137901316772343042312903041921251906678069107159335850816282238620347066383302125527275847362745363368075958505015130453935808559223735302805371721019850653501566900584275296896060671692440233616409065213742028921089581817293225142546657486892252491939981956460058272861682388878099024057942245342511021660509570205811607310557735197301515791507607619071281856727215196654556799225271374359428373418188038026809476649556944645315564104624213215192692340671692166824851610915380497104492842131546559273692616666259323846335688801266388547422221749647033142873074167536012840923688303029491601616323794952133757598996595487018864103456448359832711407366767145574308130586325279734716321960801947387596182239071362311379357501269815323194490048283191067468813904704195392934578357992423714180606192445062273630691259944136058027550151182772403389951330338077980339146864709231162176570491873009077373640913558542159436835233187187015227409643262012393129949477117428986142016543076928245873838005703985376587992093068286168971018799470768669007686196987242632269990471396591795695059358435808522222658281637394330254883467366398171316084297207213671000373817223681207132676710697538314923853538861116131664712772089155554217581235586911388451266562761249063809621234091171156959299152488392044989143561213409102694212497845218304519520336075234079076415418277461471239425273099705671893496659443166791410727427379076977054906609773576020332774909530066389344620503513326145949849011074677950577768139334522832969969857906090471542785767538290140112077569911123064173199567069489583808766107660478567283354445958047528757579790686396588072862839782236114512814138869334680755067683909085520560851785518409140759733043920070428760771103478246158605360799219650903839186470278422018316750414073154793346980607295141858712613908557804498890307911018928600248155688448458173955355096424032401070794225402333917262087913139140143852696519381799836916302549708867653779650404692223765968812671346126420511199183471444840653009713397796604356316134018692922206186480310501134195624481682297314772546183394285583188043742045125024377150807662020836959579371771817195625739609431219319970327806685712563620088348700321718497918906913467964327148718985613939153560063466963619146714824945079085190963372563309416894634303956175778528112051585894503289870135198594030341929969393495781874663659364611691239989012635280692023240663724315518492416789188437772850807506589885899746936688165771353482999261644928363109757128796525133318845349926921991683338471229072205747978400971339943435964171067734916742997094270811297381396935306013481398482655085807156342323633582739803985091936192326519367665049621733554391601434194293942408711033821415191421734900004054733640304391775463141128322215862896633972706803749209522397525046303991874405242208610546007299469444352662854289330080332083538380806518676618446924177265563675280619284417406033500059477851895641899044331520941523356676736574781886822712808785078522334122707935171124379037512825365013072613759882805562991718895445548950766819647767254020935824814608739873781339128161294874152230927563460935093492431922052113484882862014531863046085868467971315681186260119560222811157035923725199694530535791787842457874205072804698498227623236013177156620263476814914827511492392682230419747131888500649608680821530474384314273850082167080622592390702565551433448270243089522488944351117639666933440500163162294087749269020786337155598076284541092536541963419279343419388403406762346228118803367017174486864018521464602168019304311093354261371750435528421576238740176964987122565658502413988797862725499507183458082935801198704033810466802994110066652652621895533002446056697075831128127042963266435657806380267950539087871456591388426195694622832645581805545683052947344129621827445841568841053135538614715513020511707986289165799423524052584677113233200921528282163674382084755591234692829858860607328492834812554762161650057110787718547029826378592980242527849010102274663448208867721977473751369758288241394829835125488171504514540141939452512816665779648739463596072861610594530553141000175508646800866263506354682482856272746948785972752305954973596695290443119758487248921360208453612187175759300159048074374454182365974459593650358948453385278005680220395914695865408770407676562480011256373952328095368128133943454766440145717155872341891673140252586623080137722618339883439907083408336327261648902580949493937186002748003198246578989958437354344710541520379689262981297218820808347226296610401924729142765854626576134836030067230884065526491806424916388931072021229976312804343918924091195021200997326563159320876053471730623184060067792376875411187704495939095308331713794448018355704848068630764518017897505650608008085281117878345910855875740727800812588273168046287909216330117228576177821051779402899659476851402615053424220861460102862663133427718209027826702345012105788584606838253262120059406279515964143088894402000788084972358410821453696454192046601333398218366112595493274215683087304196330600352221268010084299447328343625818460812770169108201069095556731325213777763426612012567807517474056330781811862945240380558652021817860060444667972451913146900532386200114444556534324487228392015493964456086817066231682154491481958053320710973276770577830459237341171174096624710850618888638249361331743005722721251727818763117491250517617171802757716048778009659042989182079115631179075091227373130448786852116259662544386235759030454450741292824796160652687023205266657462968786641896983787522523318791755893666428652415221092627840638052362494586145682630195491960639642437295087262280323681758408600242180157675156563832093275684729036040319374103389554531423014001399783941192073349074122896066117834013532894203590555653271768699725543973965430405551926341750780828578406523263535159196416034288398262503962788527904128780942776080241134336793243387898256111367102791143736048103698144022276848075569203606095183674259875565144866378798125464225008937185844399617499298974139067064066642104613697878290088775795316742114737628941904294616260949643432833078336495206186269066174269397141743015712204891146740218719968278371746885286679181810150093645754611505587319290553132925630277952800412351663385858717210775503048579031078816216091534300907052783982856325089929009799081722300497631799463258913583350808111716253618295918276754781181815477097270935109244481982304758993229561059424978825661309814827671542661831938991407789514100169789419761921652221174423555422183787587311687952880189024878209964254724928726201485273664537954679761283106847849462757149987026438997558316599485073470552927148686864128385987933469611153397515585246135579882549638211410632550734546203029962525035444693385826042061342183340090021131526876925656316976737424525015925055287578053126017466036196056028595977946785200305208313102088933290280285169662612441134275435102025671045326981771925340498842565416973622281604658385500925857309621615795296750514074505362521203694445704371974186066475042628587875566548842161371654051235320388452904951101187146036815196845142785232282014132303155935432661480828682608889227095968693624567812685239513738698717291836497750411394742990377917825854213184273469224709082735190551397705510990614892699605414798532471795050275600802831890422902185550350823625678877284987862638901934142059455694736424402495987863283403081022112500468365568720826243469082915353273156481245706796978446152518134065997369104039226240143939567240323335062662446055086705558952205820839294351715329001978543858964896870234650008782407210319702291900862442202070846318669104954716816308765545341520640319088011525849554401935004442260729635046804902670776731939571262886204052241822828867842889514317970173110253734924411582896752984106217911894475694633224465767503787931731666315898761707378149888231365819012693235430585836768557866958789129100624227716938908637164919678535109329727578282204335052973194634087547801038372105924864678356974308393724047962450978898013731340761535552532356321317232245421993427214744850164034110057442176019157231462263570144330821218953815812431042511577433823186633648648168832906010968910574963321758953184811962669587578272332833670371232303413676437081989622968694816632623814887941815951966661750848070086588626457427969952782154540100052411705015830680142426201469294779828295775177029836567370767495646345146520601330693520738983724069740793209483518628584397795850596089980584753514157474421095865780281562889916705203160552361300198801964761376876508044620736957364769240418146742643377724010296687418510799696449504667567050808244992640121152762886968039928296127740854061028960859655308777076330701762861421346563061161366935935106044631926535999160145842693342062136493377686066826719289105851013954201908960608278672334581940215402643987113553617407224606714518118752899740807729367235939894671697659651491277166064290773450841739827797836161312218852681951263623023065935223916323528608350822236147156212862772822209090166425066220461132433860698509802383938553822641243454703847054081135705863067714370886693331069794098343674913687170882842667497957566655525126500649752144036790088203312749889175289845753069717600288752793973156966992809275371307455815560622767692948579362294441811765869695381538713294797990193286957823697949527682298383234175865953322498071279448468237018523241399158817648787503051559108478498041767473499768507916553522466668865341137590131745634978508822967057807881217626255927081913070011196427625850738397409494907051069981715569260432527504915323305688425741849363235637895465248311105445189491454373854113099547293435380731972019290795758563612617433391352741589351395704770749904382631291738069603375563326578786580952132797586558411528620754000208279334557007581878097896690370997166482675647913004193728093549062880368437878774623397387888093157811844350435139104618815524812870643088575780538992495736930254503506302342650031862893238793957677977033059633720319748112690106896661694075355359188804554732937798725663320084068190044921955016354474162362059083373046473630582365523883490502451797997464284311873632296552324832369852233211164777875526386632382532534547421694992639163174236790558356909380275578430406492678841411687447109769541630099605345729005256611191873112863240042261132419451727323899178531069895512556854043792454208797559027811356870616199771510268867297872499417306008174104251573911834822337242688959454945815774165481723247688693593598246561715451183212015666375765409206877784008509686832627117733301521005182098966722870934918864665871970506330811242525759237735731834922608895519068805724618285709943062526995451448622384858425702332409117864931637938946173546970873270977966932167944974463522955887310090052707204739640348096183106958420820390764706079750869879587100970691637082062931519497873432939084609220262181003024454337868308505498677165313002371505705778000130680363409134707688412239066358022461284754086747335831782944725360238773121071202765920149937528818363534672928897110463474117193405737395037576480660131411100209527522239475192952198534013650975858117469080355460810650808132654853473582930932678531839460385316432952428809935890123230364503469851972803948105917741008129277046931929936654546624026869210633872515067962103309658737844113861111760573156074903262577506773843031286203807309383860196388669870202491622023807146403760812988751628575729611906263647441766549574163338849219592125113650437635713553572709165561195012124854155601689721547801785334677053269162678094802302773826727830368325961396803756979523542866321520845171894468449990663245522119067929529099604102672787233905014710515906022977273484914851800840670612172832169320945431481615783367804258698836361711049356570121021852277679957245706684345391333913332372830461600341287923886239824748756259813043926370004257390917292310114123290601492499413307109937342332802501357625553338771756609677745369758750995397372977298465058326838374784050641187616345893806895139953741640063956331379508584461767706523869362531504667382499575622513979169106006867256156741706879045189503064409462473915474710881869106944836908424875677226280826094075263186493758957652784913309240294999181116893942808070187856676740045928360818103400091992319880980109753436273720205037105855063931684596158414850292251215172695723464814745473754227632072192066624260537487296771845736729341072519885694314867304477615403881167326851724820429269487584951964062560811850557519774310841704067714846261224227624101972992405627844421042531641463282929867998286441507246274248060796898379665640925237600286207204298166307934660261851364731341912047932144582543785390620898637774330467792808616385183379085946552440659770581147975485930305749075566581001698204077897086112962309702157593159182183428130139296452754124943609782142257374801369146049273094699242338774255800097403045858948843053004212870170327069424921296035679372089681284601978983503248150160451145269101385616373533034959488975464494644336204535341944198161143348744174469555590303504296889149796305888399121005074311545207150746355880095081826180943339500643223881223335891857681730844870667668090316186387741089999762342229401964870366209493860163254557366258983060115206587849260898500303527409164226736955028160462190252612401536950883444404572562829803443589261088764826984470902394908431135072925908036299327487859253164269107817867979334694506508684828554574099452187359827694609318753247660129694147280828764765914663534543453973356696928777607212718376341637237879480187953287581791307494882111736448409444625997594673730458407809519614256539197400829790202581390842418649200458550727413861307092638451663368300525780290275657559028652270677425454980450057093908331825550467866434204306117479096820997859179274643835607409913434933202938984150453218623867952569910089011709343160454494067933402184599714201314779923889696575886962729230229415924363155350838963606231230671659449319590540870507802483984711911629533628858827630810948539333959651297882246937342010110386258978612723042191218021608512279653360498330962903904551871856841995143428777519959134473202506844896822451580781473586218908269742598829067785682520556009594951763278201695094419019827071567615293224373692511244030208364306019667814911452783300889088277879881871117010333832748162681232265531354631145729713353450030118758448272090131368867025312017379455788092919481810276970627111137997214842993901185435215113154918278971923570385139819741215887807934823073750903860322581643883909607337813821588453641777332543383541211188032583638550399713688483713561198548228387933771385432102539292606856503403295886555643351382338579414249023272285935496177564584954570861235550810619870033840991199892910071472162807644534223908927613743977745748325655380464730936936980036210122857644754705288737039394954266039902788733403994417207756612745838445882469952587053986059537279191889713125064963260091176504908498335654644516537897030978741092608390161932643080494757251438811579159018241801521425094176480466814848983862110780113300089858728533789876899841822107518402336011916577465290468042184822760998493451804077016138322241089262009162270481725493218204991573176519967646855761179733912814961892308242114371307628118396063346572752694572260070362500100518874796219351755282840333337322602546671576314500345637618801662979178886713736580900348442282707082029013002973646600371252769977770385446024800921776988681032404045227042424707644256554222203385161289294361469711479499555816298203310237019989418277272569791856406121570189740187711636702758611612719530233692809582053450325033719838078967848054231834810365213437802047608108601555330881591150907338662403537561446445692221460170095044407197130213442326640169756149368408553919379985219235597246299392775520851951508800977619125324185420852234411028192800448226366355951140017738501564625589823737241105885685348429871472758893041618296289477085736909788342560703966891930284137168926932929492012019015663426730859830549881548986499379794639184590849416910800267684849814507244292048638239054260537710482231933350858703039924372148014837062558653071098769444484717923596202878918336121184726675253582695083315735149383136624904138583500837457539924155279228421510495712968853386061141402951447871501522119210131876588622546757486069966768909326723340150855296465477235709851588166936865401540906152194941642219859133332501221265781448231913220551856408894793109872555523848614888153947434977077849684968320560645175148153759578233371110748343355489076652235610391830614856193992087088266599281538992577238417503494254875518386588050074067415242996250167394472610053551855455873895306294505971895365550937838877790499553493179843666443980255578469431645201798043245536509810083695812076911433229506877257057279758598037221456639313331361846848962392675331853525707362479744853367460934685226325608797886212589565203945466588033099466206396817538076890644690001599081913486000915344138640727335448414297752078015365186093419205815669830381897861523175825098364623683735182387703630136454913295364512678359803949913144437119925649076411170190265672355130161345981601920915674714875806942060084510248743594575116861977288177187241507743979046463852010879919749360181963038379524791069802414411580740938217629956952800351721031596209641910412989000786585352149870108019537781443178591839862942317331117411934146628985658296107985263241142237585444773303280860128510321351451766913671101048661179683707990593846346563453489856383720779729488923034962024112552758075173192244476934840071429820575667570744254850419379074903250479036207942574760929080194876988141265433955689064867090660272233359906346052267547244777403964930701625778429207747924451473066119068531191929157815465917799415562564388278564415366865989368711338457368872151231575230567112837012424663944549438500188290817758201850161396260427668143994977908297701407813823268950632907482091775314441431983873585777336135532063307775326694286489213698105143223379194502379862639990676497189174399689152975679413083304272759858454737815509393732728569104302229749831015341155652297756134477465583341929633782115143317354151282783948936066656033107226200434293899187677618637357090094077369117508315672672554910333266857835763439870172676934436641700733857500092674153922056794193750309036791671605293549521681968952135644951927491012507252986031815385511488923603325084661696134084541092471868612663565499499354190562277828099572929551342472113668081435332365266710786445964593049316541462222550299328618643155792930309475441873738570561041312077257514379586753725481131878620111351289113516390911247769913123885779854740700786390204049487760564269963854220952271949246830426950413252421617537545899457740012184980285536355035587754587068112773736388463995770515810736544475945518327524534995237833646926181737763916001326826936119063009446867973551121392242933318766411831015767305888449725127113881189033933308786836730632652419453694043515335923737757465711286901162123643352126861626888015533988492202711475607372997695613288425160966275053388835482765178043613367321178888313386053990305150991792076947644367072399836632844676991597330564946370506963959941219415741042193600464971141771252233869046509874480994531313731246902041117549671717559922053639358499557747356192299366336311822164504556385863262288664606240571887049406894525422388204617033495643305989695237548617511823659890932304334409488863428316946650919118894787506046611760271749227108368134112231774838232457015039746077497572856660455161319814180433536646867026600918003848526990183880576455508706468644392020363819727275610881181695274283995549397999329657834556834793376671924212763903190181393201773155574733662679239032180832524012652273211880235928595917401398967841023545281646921539755251066947331068295437468697045345369044068354529001695978680055796319109300238657885073589515480156725711417406524790459737554730184174836012939569103649148135724373500568011919839472382436304581250257167589302108752049737846602495180988547691466469822442913837593219817970286644052649085749927115959901458884506389187956023025955547921450202458671841301760221801941325752157575134291365223793589640547199344171768720430726633269780471156300342965275091502659726367774409701089512574025289042644606778462658046384526723281181581666049500053960077455990789103858465943673712982589215010694019791934045771600788104653319135792099024204698482881168539862347354875343931075540872210990298710011519754925725821873444960925352926141565940946666817278992125105621609095494308513085815977815231052115825589645815167178006970070144993877214105249248039351404911282160606882299074778007947070979979313461223997762782234912451543807810667315261169606590389565935366547526398463363588388934820041987243519399028324812551799098728225152790802697784959324734711002646188233238752373484039992103439545516234425419025186012955173375047282050116484495249782813208597778863289719754290370200335723316139700374072814280836918161372386988818697302645413760128168828335596221237203577544196116669924655219610242864144974891498801692966925850513151861730356041660981338004071976751353889502420592247920645303909165320485965786003613096520567581784730411854596960516840580464409680177030365310298196458839152514497676110677071569458152797485061916490625182235210946068587435170816291702217295704387920588894909863341447857212823318120144517126510504266565720877456038522874429021941223495085020387096246131472349432926183431213781398368630249625119324512087834374183643168829212418044639935248743391632538550820025336390578691901540389086261340063348316596916085486473305674199912058776562580188042630405436072526052900193199188927130833033475965097784308064805519813580548670938977581624510937144761949768793756173966494404217615117859003638334881730638271554173910107674665263803029131471020615318054430460903777899052365948651994954551851360841230551906713593287722637027068887380530671716979568186833928115510599911572313091117820694840700637392598985216752980362118359342447608373058270075049660995617753737344853239953720083354033135460066455957331620814000973805040125897446047132720903682241397281780609136305641250703256863697213535195730656202520054687985630917115943656080060186583192002264589747365098414519608281013396657030732849282723924971857396427696567951311594422119773896887204771096095965661637655943826114085618500852338586613812531722139558161943639364367431168211340041231797902851395696496795861470787575610406175919479300134618240200541219264123360519187364241419318585962992192010421007419722820286916816263309360453312909476455352904378415866229581797251425748193934240978587462164038812910212343911484029135217240534261703837477263877652722941156758222956294787351511401723258009345420489180580338085530373700918621119268906679432316931029891064295682989269864481652118696244183497785773181164450057931838285399796590595254828830799290794797114096293522374394764690035448434534287210789075019870999194045511147675989423572977042801138491110190617551156785544703695669596893610034170773239711816773769268664911124710582801178134890323765999141403183336966822112594446240784667822593345818645605345424613000486391085696935009194984201837064712133513689041631151356364732505834481536844303309581388471805288268407170164594712026931821908916301265558735474383066343784527648835001127786286306110726770320626711551446627766432897373111560122251233002922411409104086124773854525859220796451554173090102648636376230895280827563547210567684483816960746957412206714435170738869820316304330506370428487646343298037614399021766977726258772540926735968417831119851667773904275573908450581137059313133691317536168971491281187683640851383156413949105380642982091508232685428411088778513049824714908467415596232021078598244046082205251792371069293850207686866256919038381362437126734267547096234727176068724812018585937297830319885408552531851898526999131167461820209782271799983927430875486479813315452305215846947795971853778927255778823637629000892452837353349545471102559227303965651347160031175764805944488611300115197004982707034944049417599522083040870165160855846894211245717191796450156113499646577209169744347204353642422831608635490359421203830990703513041857126495860086177500641714436566788935187894120378401982656247442782945771499547938745512246062244272043528552946257263201452234513242513762347456147692470010705198485078804886810312267361571153833270340657256757502075418994222189068591150465769613824694241760840048837539358123861131964452667402298925705166606610419795158411596507721406178762013704696941497388623809526307106376029023032811972460667883083507149982670146450314839051222096882945905841717207216975555476935442142862305036343356914395488482707510768849318685800838461607287366864537623801005928355258173426291877867775301907925194820843180339955318694151024480472675910311689193646907413801926606373659292565167667826973940867580130606283336741684077604040193756548273403649850391392214380917969163335177305101887688650161403366760149460456051835871314895074457452347344180354773625037465541144634619795835860617518286069677773794205078814544250998499263917035402393677931766621421967938099293650720923724418120430171441195036385476513029089241941483846570297016251861848590217621620977528351719905090581696879055384719621656508867970115265548087593267258606654340413410214972394557901752310132718716006478084982597583795370257958266359265601245973161982486531430723145735669971189396523502116395633130927222163459014598212418486684372070895551706025794447542930839798110141274911786938229433558953299866147016979960065605096043287673136081631758539491740987461069584520722060086078362208700952899572943374553836446601186892068845857199133924011552132383691682493135248557808780161402184185000441533086993597534630438884803590775900297613632868605029978102121539338992471805571705176286534211465669318136636399597321846491436969500975428091489679771181566891236658132409636592985521802154654070658313947154999534108726309875435184969257610051582504792286211059574439230078773624080263005365505866846662281526358962988807346313077449998457664129013925525909022627912004815330766086610647305868456577009413651950400160114907837826585185166639989664345358536806644951651421204190935048554356902921841629382876826421450637655377910307878906155288188214120462933462175585336722916477927416257931415684094467254536188296356532337640637644746201359186514396855749330857446218472322346044481392662891706249723961877556388782233593893238552718731916341278669997421411369674775857095659204966741156417005800852357900984496898573574927860340455613007343828553533211146062708428770145048389091013437198255031441598322055148421861558595870255528715898567837893468194990550396177198754138054942219849744342928262634639128086947229789122595119952585514085396823981307116116220771328206004420603130108016932216442502599738998544145031485723029876404545478066364934784469816699829067732047764825476006488526466168708317698600886187696812506687220034784033608253917700116839633146473654455623870177128741666869845725101025875064764819318506008540575304976731749293104091143748984910056378516051595947062558241371834450388620915429043038090290541754606875815824413948394028755750949129113922140492387869698984417543835153254767055265804570352357195727052298758972620939935417933682204179190320915998695199394546464214897711583315236738181983420531476827366525549605125414267942818276839077176639373531177374969832835930512909878776693284999112922360201297892962333846688482428381331678626519361177158666049779134385233813958422258795187904750969409348782068667592629494368823742505935513651417564880892631599138538556795454161138254953844507478315822448934972207861867784579752551834520688673310000771786084435641218500087873848233914129100234192329866807883705222963544676890802553973505875690715605921791117047710929369281770529301355315197814328928497740526189551420137209132230858170472240243259216850203875967520847118822387322748261481620658713757864958159259537896677246052815894323710183546496487653852272052189370725800749159824665211687165356942310304956430175131432235673135832054210677762396271882586025729118968406140769115415060757269404059953318007859269918133433502314592676309747132858061770068051973090280148835618671173885783628467811939151829588945873231490123346430401867276893028863347867347919423305293475291049441619133254201967836962442213209707810494412550160944279103090549037748661910162139945976715492592987086944223889539213658974402299647792193725366901198042924883534420779787414441603118959633655582714594541183686696573718880767101685587358587848118931286420107535469516132815285415849563611997179721013871156384668458407156991991476441704552625502102314319346603965952657035835077993821540379445284601486322412307986021614897856543751920593795517060020216121014593669401726367439278362694528750667379172508627778087482100336556698083448624829139072763984924981811274767407964816160774085821569339416458996285764874213342048721775149486808775054354435269675448650379067860882158836513180727689234375985258092597666108123733697768651334061881870686098170275650011387426757933296246669687248818091006460511909948523852736051902183042990112936540582409516994877806257659464486544023251901526385165772746229932363295480095354583811960610710395612191458937926550949165417642149574814846860756527095788420819526485848306482270969660779720985590592916951715833857632840410182880458924380076261952121476574751556149354262659700407461562240348300132040870322796633075832871330013822167373653510447465214359208318479356829797911527727684306599102070644655571657009743302858522658042681306285816256205457500677431790560425798377295060048276192546728461047309059811251341390158284934825666717936898508081201540816415562123171006150631673826178564643771097310225347019353604046937055145341365601024868622463239347693022274898553398845499053565550600009901962842795809540775256397401820649951843859092509895488473860136340522690084322331025109427434559372518535896238392736940416204466748220167029908287912932694728960022191638984451212227812808230158584355827157576718490991221848360338527407317270522627774002280444245578064248636432645647993257048153617042485076884335878908005750799872099607307370965263479921218957711356977874031309527585543937009557544156743605955268827974133037001313454378623959789943855164066910586917248805795627636848644663648548250029183689807679867221090243499158980097332846735091409335332368118581765697847918473061969456966648371996000273656199875080249261804807191186526264522517017624487039108653176864730319978791889038838919989885110607106251661031998141109240483655676883331794933769810239750973601568547985119111857729679305252686217036757226170574664676090927568936087961788061033278348996628182546600464526193422589039214803932255663382259879295124703179772905122087234745300975919270746710289324705660052539034838239128789867164027929639719074870120869532500567517153668219075000681327905462426586754187084281146745992751964697090260802444067017179598743843056946484949031862913740212594823146973294390526439326064868667077606395555778056891471216401341476451202871248525926574645864606431189728130096104867413808801307242633887488076783898594410815340546283939561778578167119292886402312557692315027958117303594496726244231720704852623610202307250752555377858906288005219198409732716508777312322743364575700616323162436998463975130982769906629889538887193691695642771466287184789289070779827149303314542941711020196561754297217111563110162819439344676054364129720903963080923626842108646560389928235641734594940066667390834659444543640615860498530147826511018536758271979737650199077164898786967482268251141552755763915858065327511496231122827363584707074390015021047775133507109483796443205779374007696995752097634580201769243817885240534833168256857459346320728345772510250566727591703792275581391159145605918056663596189544890993065010829069760216727760693490396111182344705650911826682083964090054832118874705393894940221995334559540959829179732323431481659341292028153765229384272894875574120844969939894135950990824061362905483449770930949675658777188483870858773987952399262453308492363360603822173693312628374312184100385179646811880318217100486507430251164179220598598624028558448253832227327934267480670751223033787919872998466784631387810669525887678015087658684414146900588249980518094748344698793163517220983558320208099068097282276617483210849383919238666647496900181960173156633672681742778720149991864801625895196628308576746369424851691938276062411668547587915619348437637371537022873285747337170572819932340101723114729572879458936006583377302239197803470922347675467291024060175252145883627625294719185333205392364756138181272777697599840713292592119109517997929007307582847850158618493194023455236914068645838563041479784791888134379353948706524768536314435677692213266145351519563699708996113790095409394013485521710845881175463722350279498905517960964055121040610353740878857020711246559158033151855736074999126618101963402703646244457333599805986582346513591607527353409496206499524579112947788047474054696973592798602371393653480731307539081868806581043172673600102098029389426502178168884978384725655335225372472349338266147408631164645817142666908087626487296431505182506858241042270780106786661335202289068303404712294551712730017141747547891017308689621644183156625002644108925432064072149242455800956773444094674963480030017190332472084049839294023947147045852209609477573084967782592287386214439855636746868468900942707688989143414321955263608198503024428926862633194855800596352270115655084324879585489017659397988686857719383339897372581550359586943128618745154229395929151973223611190994904463530016145403053392174671578707774706027093820811587212909287238140626100628271319527274325421451260283196019694205617421172737264908235573693937324327086552937432191692400459237948618768496722041496729025317369577135566141218306650923881810105197079571196047057682958964333338793643459799566834432320092343480387927907021195568281699066425461972048147882136164968764789625899592754718898171868236266961494068858594592584010660890298651765040056864460797096145423607349206286292039865757266340611061520638305211133977581615769637163590068710659128025160527155458141218923756364868562357821831811632890990925197760593879558231863495938475791698934043198173293016828486612854273380088277368544995418190937735102358531818765660970009243176817453371478223498880983346902802671435548021727605760717830291599149835272940889400387718101431264268231061884267086546533958846813427818183368580016090585561680670075045321949132748094966334109124317071294859251794782789377663326082832670457342301748567474356448568311050493672067713935661515682071224279756707628504584184428515406366414038972600626907915457589918835729635741160977615445392070359110532733783698320720719756001774685229065656455276473013109228067441524676595388490364313173837623202770682368879758751104442374349254519210341400255224577390386894711817338265241891254456124635860011654876523974985219933040134442053733943521949787796932063439112288295555954286398473438056741697841892585884720380724148788438621519760664814043062935083242036780342055397708769952512937636547444423463868678924889940637144850503475432764194194888173712652059936378571762769071005394210300221394717598493839070533212753320947891837414945094707791955451485927984525329347377379308485554400934965410288084663248386328924138974186997328245796583836707135228224230940288176072728747734493328636583565917162686640344863855618746921483167442667758108301265838215306478617689466082622272788022605481141084360235855105605203789059969446982043379544577024639493953500653852685244834845677128643414591066123296149426426973387480634576795785413251027617963388974594807825520250870461486294861031993778988275318512092976320011674725532635375461354681952428622323447060384201083022502636947881699507722076933173424920783449943159612146742692884111735346061296467903411580436875349188145248869909973130031871071680388514045856384333809260379373639624353456379629941347837346517053893988876930215630001153406173646557214889038177313517817141260832163187316242271511762182297625636552691260634155512664647051359992905589945752134863792411974478345526830618682247605173868844201792111681292453921688529057513468499274698734849687710604294717358677783256446175466778938281171059679265215374894648576890220891094463949665950444117528035463143769763220480778322804745466473167729745015508240754924012852079061370931613130162413461684681194165076879164819164501801468438455502558161325053034713790042386191820994026948313365669292659459348886370235737670066528113760718942880198548792499257445380822875753263196115112825963012100499795439283043874072965499782563265337026322017517373195614008068105967842988175943264843825211572286541542261779738694085771385517309724704202285131996915249798584163895689117756550172078014867258260217808044542512084363333410428399187074727526932567692430157736398229089443599101102889218753877390869672071645909266614080941446601986438813639215074293013005208270409298848236656783060625177427371117423671628983082784241528228126458715019490566583315299645413191464901646262407210526524174075594485858661665782950122695568362657972415595308290595205943816977171561638736318210267747037656613958695357819683027251182865863974954999969838031586472921404847259782626330846556987132929839474886419825537172174109288604613352305098016699690616404164454825143914274081609531523340176038343625400985530314543456467044031100659657188318578038815840161455138494304107928415216224346371105769603072742113925131910021884628396930191094927158919882971620562951426920681507860628892035399629588927407572298495259022858387484931166470547075936121418936493275713806810134544179572178823377436344736502195866145275057588787015163949725312499564822808303204584816619134417180668832058467152897679768902688208179044162833588708949230024855757562565803941269968901315443930474280589901327814797883439225091329241721669604307343958202457572867958666863182983171478096148228495347022260386864439464540691466021472360792030453908783198668895194909022831812066630665940541279799351282593829040157068607854946236315519520865061666769377764179409471445123342581603602614899113716695186503008067380557055105852566696659765015965921393489803782006500150715303355288156412258644580831141757054689972889332856536799125574483551293299679488942519526410292224258179565238371940621388185894391234954464855725376526433019821920232247522645147622789834680310298792820963184521624296116940364152139779038709099383195680855711634669458463128598455152532908587696610656252125754813870261390967450534370554315850612353994560657877060695086215841795859164146693153911421126976373333185166006536451238028251757203173703495903656441999127292031131187142914316437989386312135290945809479571034324639140780462822797896919414564678333543263506410853778864531183826416155311117669229106005742402372147826061602407184073923164892244423569483932366191670543736024340188837341452287416321894279067283072471190506802629340644519623381689716306002502743931153846051338463451857821185503862336983943099523404684983960417655484283108097721606935185879426628688130782563042279630847600109983327340316702218361372625857194192109205690659856966759242365812768228716042796707311312925983402986733551519170481434914188790744743878228943499532016909841264564334028572980721114242327018301420687860796071516165661323187552467993556322771039918691192095188554440698011196573709841760787793565768507120787466971469805183138853487772693123734587079078468946023403757596832463346338945912921491678152349770736937304539248595892924844452877935398339102125301120777153254355078587254502788178321699567520741799298795439024160580481323681270511024979619976360741418160702731767253808898838781481335574312503913399189227143154206839835190814685366216485873780281230620861399555185967761618059892788963391843375411640282940216554500526787901567052823244807222007242225345932723620990687645954135782552146081159331397814570324509402422793453774078920413485589087147044359155731555107035794433431050504407003530024939303529849981516465620303217538373730601659293625002820221688794029146731776099900617045767107204996977740294275541166069386160324282176321068401494796968815093187268883517217172485973834567015904604112408906069824313958346492926464386558040309747386853122314361103499071111750284338487151749286907972222730238780046193260318266607418534102193806768728055481755726148768436460818146540935989679063952244645795076269652039589574558535104927394713367244015333110530448574161109900014332016455465513756154539223286975731811611852595336264830569373440321086711567755641251645412471738018254670296814881216590715032183872304848705790567564411961226615827596644194678044033806430511343898928355763175340475094332746120814760952112157702557829207393122754974287039493496175488730854995950024849489719868311568931641101261970837068461152667010995913095450081223497803252432551796029527943489335184684523907681632858982543837155778248512759968159459871832288849973795166694674845341330087855360269812614348691937541063242715106984992033814848384910072060511906757261197156612967885867497377885258248948643171514701003911608922399133595692457284569410849336209424858682392296363168785205812689001623740732911396220755095371278447255733276376644310113670093528506541356971032055306679283775636956150656339009759300351537180602984548488791114325784785025630228758603138344341858165547974097265367629495318363846590106302065798665729934207980067455521287980901794028560630109067697509543873241823362217993140008135942962055644338300486068945075191274023295422972222327329082758619313513327046908178231830377175384840528435654755125284486027676083440526217079919839017500998941707389404620733413693303515378366186921822246439902698092798832483133575066647219861141732597832867009659073751517348380479679010544208707393429684417925960901580724359537921142245784836003776050714655300946446094143105294281541983618243676411007392795917511275763280282025948000476822157682022916476232379982566279739747922699332543337145234136665444185411566556470567521106418975625220626026614757388384726492159234431175612329416219025697488509316856919823431490378735772082691205243950143377736859065275220466754722058045282882419210728436313128562334634638603480523180234067636665379077540328789222119405284831962380775243698036272012566253243835099309527014097466257105614981647680527778023228052611922027194443237898387363352323401346094614090311688304757946977904925315449475678515188792323451420349086813078309609540695771631307687160662764797320324876812799993442387361790817356490090630355915307349882223630350936869104576363402698066393891826550784810300840778784587160614301244491251170745410324423205987399237148379309234720059233624834511237330955920786313469986573206723481418956216154065040404644344128651457897680959098425550530227230548738018529867028897253555641797320807432561129679467512003171887473895709743787192550843070468785299727223291700536404793305457367642093045162215175131828527457681876665192897493490409445464973772387427798291849212790160582418436780429317447692497559831936146047495549247812852803070023949455881318194119033118569874161208295353991068377071086813061377597413787332333747083406893048857812135570262463663447620976731534939093390207247973715832701588426709063594945008726743214656888554455318252129164793705508722003380569280230263110372053528983277902274309034145232571394966133081248846409263609848284820424731521063728914781176485662946843305683359500075342578715853547870579670037677087689064850082072489313311606073221936768492527562582034942907502164935389272859871846871522055486916423586219792947121435972309821739277981896816803078165188559419964641615440162760754870879401183772612312280112712998997894751071990430468729302366530610922035139715446280827502597933797818323738453093577938003925904113627847045282106706906569566610842780487003411742052019276542333893635471547678470459252278807086140013542375606639777209276965432032452159309900635486369743769023831722862892752737608413837677212039822784635860623278814216725598652992005017946326573454361323884584924578739915936315690085261030559561626563408653311659125865849119352197370421256443303681424026974950769356748767660604925999198654307974705930851247448652589759038847276746151678051027807623782351243613862587615911658819565244714362821876750942419565687374922034882621845219413919431085794979630403585085923812910256121784529556544471671263131577977839944743626174619009963920808557478217855511738867539813846171328253688485018326190661468100629661195270987936951391068428489977728878542264464939758447102130767662240389500016334645933043913047019944403791810330553738007436433457675409933842227308448666951671008146768877335724938080954246582496881704400586596793306601824404633948514617967236469357817388483775298459768162759086370024235747280966287194012305341520671761189697140659703911817381116400677294019075408888649233826189566103441088752955836603942775982178893012368777781388505947073638558838531207670697875533934765439268796319105190696041319913878329935602618956081716153168791543700018575357807123286063385640790408192889328946694835115983343497821405142045530228230259822798102587572664031359395730282065170829417537664061279989386759216708285615615095091539125986388489901072819034530995677136658320410014860432042159312898924325636735645732969625664139047999928339236448539529656847079222219016654269080403424725759762311056081158140644345868874612675906977602448586704920964248961742063955940415034620132997282840798560597223777946438467523326976109247630608538511652560557088593956859285691348254335366939111214675051143909769892723058428731555368782481355852391415066726188766178780298231916323986527652853159450254228365807691454543328384971892609248613762506461408027773492084409967294144468631389213551466093081627219673837525969504596520162884443016365447802509777032657712781295342022609201592902647623050827684159438546798539960010791615329003562596358908175910478409939937281775405877542753684281005507631644248833467356912185055979861201370547923591180378700534232415342527140852576977010337413446547540061241236818555550918168569084083419034004908270036215166536782480991261575561662383547367353655459670813244261622300271910224795589002611783873731004854669209877887466614864160302046667819184007259218232172418080987434922426423495517722686017219072761512032675421977733309348123296541556122823039634305580320137335873853527806982529196959866370127013209045847304841715638279583714858764821603001404941375758875354002265800179618491957760362272545181691006485790938486256204284381537329185238166716839513237151949378330289391067554348349698674845410516719933113303612160233458756117923963403192670096165336454083945454447840241128289017004645380535560095476588666167894854031609707104847986873214031981636914419619309231611847006315642018319952225986087562207704744593398892211215850580280898493496984414099064595584183849027489379148824150398458981972117960594991312136973821109945548963379778767152127650358512319430130923769560780810315227442091542609762769086163505306397500969628000005426190177358688694364420782082485998488520129826487405899726302013605866492001959555595073471687761422184775829891609203409840042604438085041323202063298231533565653120708080988301773609003441989824376194455663858996432946078863807980028409091343160935667242797592186983265972144622156704107118629220244563758667248674589009629677091379053090420547773922515737682308205401683058405228437928642330991789833258401356098242796741495140851399204456925408299600284086327305320309886854217085873425712738713612082807571033190181265869102457668006300535415412488302295021058841493637867364908339523909629544161680877416499491997645832893773741384368753047098560467129207061536508687439922229748229403135955699667341585816148856482076535245347016540195086750718308055639803313777043932976180216984297646134784473441366367932102066447176157453016826813933207057908293722648810894921729671846565324967978932183396495297611485530772773616612841014545654947587936923128215189245676095368012303952554366767911047549311922465994651093234206853513197898470807054504771796021504378873660651658207316368843265255703165849070959906885618194099851662754133496647836369925753271848301608827663478772533336884890123207075141715240206053109281190750830768747515328231356620002309643853039507399142955226186794143876603052761719731515902678261505215827250198679322575631965925864366243053462854698010985436581518802304458779793835553069137397988562860055728819354656530245666674036712522272551990037710612138507880824213943045030209102929485970478716240818170246960678530032818960251905298532850420720108434342320943169916260319990869906271478374055967311778626575052334468832327699404252232234458352488317194292509326073287129155259594929666484327610802824773083780371572442534607956692035763780054409947674480248698361945693410238483832414323745213287460722314449659119880007760442334240722808691421301194558429108851267991566797837200986071008335960724911233090792801390091813094386226380000853476969144178605776163971529591111313315475438934231264251550572242558255162486345240748289353249491687431461243604457209362997133617741831792104394677057892094668476061681214130804005100009282618940255680948416417149740555150441668270977281462593321122162038375928858594982099327813755055152664673997227048886050840731588110651721598286412508949441547990936871877357556335789381735464201761035327243133240546504535566832650034394299194274743176563244439154707391908836476712415387689287908681537191890481416480942635877580038734118793552700136235672508316654594129584196859902896723653114480414452825459098996077690084738161894580756596535960265205906649927035757716169444534480075670111715333846279831166604397404899263769989915983859970897832302580218680186345983729374098521323679845463347954340046126815295489782899617961824308662902899910040814224368209270368999440095390579127918744064801400462098045059103109803364829843396074131732414400893211190504120431947728375013988009455265639198946056409312177789009453741430493841646840386208689764359832832757651587857648809326739565411182860217980076398287713534917361866217075668189652686741162555974665916201056604472553190065622551831748567197126209801583877125247203313576379615441171615741284354050223899856233445839559847884365864378082548005410578805537691656172959243746422535505000732562408218928535094742995896470379836739768918369848974013514898805066317290907831671147338488174630457874626801128054050853229407982039750507388202864314114270502524318310075168063845405052918857658129672813731023525527440922052325210551735401119934277411232388709076366447825280806197066784548419124411754301182968183752776506730397297343271920736919959049698881723712773391655268333580694657387042830339083945979284619161807428100464993762058480884950571452279482822230301076705532043393697905243476654274727563046787304018093233996891898405762583944219610976167499326566447746661299342671082505296297209315995801391193335575622870174880915716579128933262659271640142552254414999790752812368093693566384289006505693789133284084117763766326770083735888461018846136350329411973934989298838900810452421498754213513909856970096496479181312509858027025064271689411987473498653160420321622833148525188883508031545588803581729318292673457594809958240466971761027621432322965108211720103092204208901278605963384946320379430722976054423986437829566056632997921984163926389727731139311123920969304527569020727024429610348100395994086243973349963574830455728158019948915930838531869970910128116337541434408431825742314727106845455915178278734945929847464220739862764948670772851202339882904671182750829329008359679377338679132503983843171722053432225153653453330846366800082348172570011472140237823395298680714140452276571218225020348280449369116893747559220759437558859553372601483904283532009395225458327580026352797575812661965652993188636435247508828829092493492130710510932730375698595385430658483389869227354769615395927155550698048124826786038394896527040389713931859922773904312728584698847515211146596003760084875052220718898021554322543911396536122381548409987284750881433498370597938132111174967825292219467570222029400763399814112649325265118471477487781769597059397719213855383029232989431499417821440987658854088405267938994263592604449094302060462577433096157446977248226939495453947429537975136266267060457262172208074299163618952854527481022081803250168411659070592961084559325565539465781824218207022076579519256372165746955607216490954520780989520506548832044576634036455876747369080517408796760748382693019291381401595471572930943807202032616780760260548268032037610748045026732108732812798961276498000502375455356346959857501869892016054883129704036637735869570394745633890644819788137400835354259532834626539216593299689478551143403841524344285189708780105061081993674301707448801860238696237318383886781543337430821598118302584781345641970669801781505778908368396327692556203011078196453198035333669839519372584103416298234137936535680372054746378695088952202145825152337293838305330207938100314369746536279787484110556034954530238944442311075639294461796367916247840107587231048803471533767115510769985091674430112501428607911605895611471202867163355350364124450760832629252111181651633573357795673284875070762228518991116480144752972240681945294921557307953229188189609370331145611742945660380585194453790040737414173389713101994977086032352302386806336726156544891349892946633311649761606823804606381464060925688514286952139495204527281329526438533125159933779833870652211876747613747836639248540833614443517491528663798372263305507352848306456485571833522147089096980187434629038710709673541278908144770669838449583436394538158279548900253395609051864268319395330157178826366885099850715770995550291528778183501962918182504548380068364138214353522186165845399431748284319033880051618433255152110174890799507475721988008170200042853082799486424507430203057640911704771877115179781671925402189901621775839542558701984781412531166886982700131784581228017780471735779972608394544279550238999592001642523073965261730973965873638494173409325336065760914063559818350294881451621053198380046561177558124010571111291483659338870829263634404301545266858330860868954028497094709350055372554205981582184713236364780713518703643830849898659309270011107606664696874207125453654226292316319234078946334134647621772279232976292754399962199220436512814028509717769637159548183418192873448700089185307644838792592951532344554142429996963306285340773741881828934998732800341877913719464053563540816853470727493116168257631799283502506167813156146938032867377230694305769552713363582517272342731291317466954903130220069867818255978989770862394515220429500831653289556759745701026015682187028874794132917121043889906442085809745692849636109065872211165794961542174206879708418788040587287909825308713400390078568859304189932858652413095941835689504356722758710418205754657289957622174716359472616610499551438442468461256830914141631270986465830576780741366198927963760329356432900011707873713548320425810245593715315244373147178044431264641410234479930625388546401886223620882161749418785875030264097490299815470957618039275127294459407403202773162411438289338733172516920389718623827311795969870088578537929935293097924565278914584731309932127247834951704490745929319693324533597408540515037894622536528870900663044906586258812409770381682149662168944063672030545069679610229274278484018541151091724857519395080829818493833184580455403785513112418735821042483841415751353683616275667831370296424978106302965092223854884790039854737889589887196128178527645568521418478589870468105357362998086304629726349825335673897519033953197413246230078709701408158370177807776563251578557735542673518611979944495566449366593548857126887831176342438324647331574494265910014609494655610987680184302293124063976756368287418132413447976026247553357701501891961026115236257110678729742252229047852388416528060176745671589797964863997760872460560672208938317057384954464860772759164183841731099810316971136567638176387546111545212459404921019396448647767187324288186810752673808105995483234805821818585694283277636129151377523133410205736379803789792535946963171267718163321298882807935993590630797814099776394748086897345026144236456785752660253958575067749711898987920689517660457227422444292813740729925231588910611905080180806272199635924665565899848688366813652428652930303280025950727935396498697413576154378739812971527504989983818160198587204661028328057102725864772291924832021700840435117048482874483218188619549185929922884710631285301223546436477718623942347128440262696226719913832837188710045027456357395751090131020067347980880297240051494157174522508214533840367130911706655213260574155113720712152733631379596669728211809781531504227253877879479667065834943855501670990533017051677798147873490165512456123974525180217024980681182473630333139389513660333595790848774416112518982276902868895524157026588454897141855044143814015494346237576123539869028181275538928348412213864182090229222028409334683207869370322028173757281421013972085970888201221784392480462480272090287851470232301284516720685024695024542200201148396473750298491028352437109202177151972338036770008696967985731508206766759054095965281888057798259227909201443363875017873675785874553068979483154772759433647440266101711989021700067441714664433452997450937065998638738876031655516981175631177207117804751108273103875203225408676138594836009217347373438782055160126341266516035608820759261395043929273528972937218394877150000698570572438353799953603030820303366229924451548994434852396308386507474062678127503995373986597686679756923779463910861357328189676864221027216496091200556483380279328328273328554619400491888497912086668880976195202859963502315318098690364571433913894063013109151574937049750913060058608375283901630309356094063838472305913150231007265640863949947250582839090681106750486413688930223931597507188192420721145696084236056432492983816305239749256926908288141644912224912425867776330970821223361276043371818823465168392745598148669178756263379415945955623148421231986717086269907071148377980586602625309154940467026440840578131828287708819423152929446311742193732169781106159676326142507010218637388649701722304203539366725978974292061651993992433293317378328433708963342058534988933382035897399145941969406673713835219460914954144445762873133631748026954539623524968521911946264746655936037882425423376106896240090711455580062152302730238811002943360823024262631750520989696879569688821045440171052274356874188592645136471194229096002130085709153112131788432714832876884548314457124444479419504622836724086485190352797392696672374342267151117047186659808616052447919278102281675804681346781333622506253779017618417116851382430025137904107067768323562977104968174521564609873399474865444037623031876601746615170133330423380010067754894983497959128748320079589376690606527806963750777223090162753626675654387547792011262132970555543051042101951305668720022549136422860458964626023168748153264889560202581231548617610830049434409529128231680575045268615444701567641463806840626760407478865945899985700545828860740168874921729230144000177195315619888768767090191785991406371146262892850128476656536863519588280866870615383870728003044149362014711388484230480114962703847360553764932106788419871693432251356931921152704352140426279092176108768730952423376222448288715479178578533475582199323745631153422446542895054969734631578050767560877499011761961430828809622064966234827451107497741515793176413819822404496817203137393756843724941357045839608652377268406230999740502217580971415026270336870955345023599507058454302178134087700199322141287372903163569604555629668218504825566763643005195103547786342251670839545760241543055637279821786655663789040894600279496123389352001443512380967705293987366963582873108866721393333244367997245365183411946262442097853507217058747594605527621340370533520997589337456738833030078726808771796915463940875071472830072070042105024699249605178424417759736409356631497100642377829683217314524921790429637686026410435456507604895203845082780517080462724036681316158373530175503303076685346849497262742181941570912828286518454967070704065269582600317471943546177685908446971315702288589483428323227446656354055419108014501800134590841181701983223863108920553622898715507987593446742868865685288505140995892551030873547883014762827036676398554468639239944479463547611198035203924480215534820732228891921080109965876452754430299887456520922607542763542452847425751418581585631045730384181537307878578089857757137896805997171977967416397482414935571932969064212410457958593009012257316736193120661685897308529021197705917637614514055522890377092474722874231485163554860982648739632327555513312969699532139940499976660254101155361383921575376155154418346330698437763650349540648944612822787077668694163580868940230815147842699237186637386090213258647669207296435732736106674251095318517111448557453441425650920738872717753356782737415185040357944611037689291225908617459532512942314561018050214650962568011383288260665917651381123492247953940123060073299268045501845922535303595356154812642720481758133837487055249976653167914398267247190249673843032438587482983132280765378375536678813436639798523697645310569764027850219185144529085379407774881672033690158821595368465760471288793197777389142605576279114488510656076735416842218005080606878458026127990758055209608013342972606013579005476679198382476156129610390639741002294859217825430516957253006999018691999179297717708007348819816636389238454303171167944562554410208675132079456526704083567483038193521084495730471821115865457006629237332161049545476037248793139852394916687070454470421490141867480737864706677746721933757476321322938399204100302714936480577081529792989285163073628806860684180644137588376353602436490380231549155283858404258724531309402471362251893416327320840821610718148820770413309117595139306983527616322639012813111174336882598472325089196716295768312039186317832803693118323683294308506841043632847940282003580619358402139607722157736278154161359334567404779901385455977511680023671279202269202003116726068645740535239820355283800862525912274783240587699489167436308229936619769731381255715280469328005908211532002061578221669688175907244154832447862713556819245544525603779909747561653176084679197887444705631608056268421495930974071015369363427222743045412807302869243508923006566416858117129132075199861803715673457478047358083163240584472721143227666127094743290564548234094547631856130076724208667158726047040789495118565633694012100693464423487008646692321172577422843097876912310930673935848613329807077614250606691716726611181278888086064849222388775617607873700743044076025800804010204231360723519286200273019920414629981011612586251184538813314073773830976038465545737745639220934519883885457071980660890837370469679876820721149866620838918440672699079472479163489956193615644134178967623183500631976624956353347367483546683992067167300501518930050536640371658296181256465725974941466737306835257760127766290338551253475399071975755091374795122786400410916212107516160464385900954939859552324106255626751912108270415666112591542100937814178081036735350836261689092339673567875136420685164816482321631766541515388530068195544959506628666558577528018859854492692699503610985635841682810669909416782522892699283846900918894850381704145027986737345899724113946613303148371984686213394262125214132691616376079766882283348805019087640658757621624569316289741527663895468503539551131525009474603406261057345314339193177862383444619567729450124372541105750851955873450374666407129375698751949396500441136700950955546786062677757298117729054933511163649361038020140754739317854165584596202635275686722965812642059009524821807325210545314079512472631946871277371100732315001061675605392555236314341091328175947445834474619819646351074198823993509501406309716338921207896524013044012228461138299558180475785005179666142151270741749401488783817452172808000809727045045702637907053423907957043457824499411194746568087476054849265403215171077317146099701523603968937698012982927560102727888720139199109131066857510667617983167852925846538259320449531457504931992896210800753255231198012305600320976823608083972540178100596626069287364554637289932496008960980383062127246842858146392288176079718738591067785732869819338745798871721796525704177760488515391265443246272331591628653686885735010229948006751976837231701744046838137632560054039884672431044390791827294939976701337195415462693512986693261120178232480674619578605497570462524987696157100624387858332985616348491953914610814682639529275771829234155958179191230534283415875973893755643741299920430578924865531045406402891790417352424683214757102218679426832419312492797720033613170983322711576730137078871874311965740491582076661835526969214370803775011567828411077354781269066687312390108064379547973834660730019289658971322068285964432926047323826330675749962171460459956207327955270737497886253440240080402809410527451355780054382529837327409318514918383199396919374136313186773086309616097035481575956194763707858434450291775511455461701807543644207727161792625525747244700265357086927689811461084863329170307168816956781040086731140768025137300979231914896858579168084520357485781692743579598521807081573759239197299432401461993906051371074957804290024755847864029416539936920190944371857596313870525457522562904247844781094685468476570921383898828894202628899416528798730551930737137357942234524756700519846614893057148817961291346401981147444144263736124039733678960246747064443935363105863040874022145327418244838743633358205904365187547013484858563918660705293138994021146300066282082260438387154296480286026480553502522049545021308094213551841354066772556662492431600877496817471237332845719112143068781864573627487509549063935364788137577489927746350553016841636169625248300476564267579658304195543545949455240995897362774321191480359011887121219845025377819498804106119497151368794468921401445711134132035106241573770659629729851976938526731406574003373836635446463290450558213411472803378926349997429966587910753248273363382550292995241038047031249903869314262890539764358822136016547696017933713625602694597114148954261099259492475333505494237234771785470203650409530046019243325891265789982091622842542147146063977180818526918447844540280875942116946268162006176991216496882794242705950652061951847761648915239869322714863191662277001959902633790524969591483136145631713872227401152298634830806013651967318401142801818016599475091453736908462068744285765467191812727649611385677105976455447484375409735595145108503179390280289744325715808378726306352600688647122708937845281774513712582643509921415087157703655480351760298302776052913185235807855014054734932252088795917623637891772411712980417777648935066242515271017374231780663420350382826138418526738710812232819567618610766084384613538029545810682280920082994651023951344244315033374148760434480673685937254772047085232782700462613954395119766980805321117203111634810911173769465168983603112846026508624230141280207910960712948949495446522458080570423320612808909888205873605723370799311971227298303970043079412334173907644733476308823896533500362784257483168093406673655341866973968090114123912967665685411326548556576347525911356615511565043114711830729501815796890154565486593203127143241131704406180108635452987606471322671141421388053469458135296506574469932855805576073160153909132083870037055816053937951408533954338855844822978901819345793509388496900203583655295733115623719747711886368853539062407686411160908277450799269644837277398490570812733927833152302778467608233710093307379006674991986652100164597640823399733942244375571804651695500819745159192307712928791983876837055256711878439216075046122685991469576304830797546139395014474910442484180726839678921135220206196009684373513049601490099724550659726734850032944709203443296401827366772542580066331895740835758529852626400195963993265003126679092537749445145340713932451283900902163044372234215948572722989645946639796725347244339734893316035716689998469591298059123044039700237209623483399584091374313361158459549814237583290568954342994124291781207543209952019768533101074104280729307584288912643151059265729390962493390514050189497944248291946060669493092782526935080558444566133813825271527571604409255011485446853971798630359589182270868485000762378393917214369456196020839515425135967459279563311977951559570527568464932906258284973246461687682139227935623397056377597833622335754269514780681574163029057124941677079770885074471597427937015143382129369188062328272204255554166342732117533205048713040847484056468728727320038956357486288702539077162740626081428331644581201146801764297933527324816602492403056805794350928172219579176816340873415229349544870174653344303277802369143904666495655673402661638768501199784809738618379141524789880844512411775063033839629105675748823756082228277996923254783548764652193980727451185086518849657887424108983262639736367790515571264287535346267739305491353472701151022987223258566926994362318997172367107739465040142268595106098567875851064487693437110270641799546114871268245055751642851838217860688180076028959120592654808915246497598030028553699078475726121859098967670626890466614334833570333975494163083968072517563238528263167730256027060473606336367758965455649310764285000220741587834606313381070788228725265214028353258639981115664233147607242161546235094708565905203723008959239623206042284584046785904567536360000895386938043627860632813717365965431418288372071054288739446710544274484613967684011996268187084214089668618899144844886864811418670932460969692925166402616166503644481113541511006093472182798653826883429329613944274344565090184688987763403648779408210371270833379997155647430384477151533881041278818465176326865823744410470194398796866830883713297594160489695950989591363789204074545662517729333987539551743299435084753333355688643032056123917227032203035860874190747892725335339723920757610526255917966180138117934087554635253062516291553013244262239275064842185955392324286019063875244969251267688346164482211627762416949236701995401463834151675462945519837986568798937978861503243753391578727760521245512038197305086759668463502507417798667013389010759550351691055190178809654546841810051514069755373033533500104974890049563359219489403181321325989619969659493878889251158687820840709551955425269360430522128694788930384897216094687309226975273992288209088127857353725517949550305612969507061176398209208447520605791259262651042077029786000017538777306846415340150393495631114003245233051964184045819790546420429387866400377948582793098701733779368450742829718023023603376072015000233199924832021807552622768439281737260768452714246828876150296476601794818487661067120496032510308770879837968338231064714931306531532690350180811398126814377210185694274797004790349707647186268555723809103934043129456729490644045900118574335428688509221388970817075671557543745675252464547968867960494407731588221260767273020422966056471935073651445002432102296639511840955731249970361093094426549664691406403882544372253816361954990934781835666398853056519850411000830190418714039760576505285202317878937029143181889000514779217362659409666419448202785953460441221723298277837016523347618463997646358584336860862961943570219270476086197902592611330716382558134942052992057265264884070311415170556804754559256418788067651380660733418214970161090253750728344628603255608217754706770094907219059672390293750533514134513285527994341739582166944767741924110357181670526987325309588398630031010461926942075719905509255349451279958614461956637652728956917386274878591094094053218749683925296062660589776876335075030854609408994245243956662817185078917816732236814018460632706033117563308933368988333253244864319160435229893216122756514912324342973402798282954635820479162257756230763665005851883438091054372976362582240478325095710424302027964215525028277692466721328923888253258093573458068852712444870733401702487239287482874756396428556315854042103026446984557255195143999263583336801676167845680939837923230188291724988827966900568764074876847315646198764445447949889097451384004782898023478748934571331204566451204340197506615299363928452441891619026786029075440633313846987736906657432190049544314277211829358607629654415144559472341400877451348514383086307639009102123000593581352075170360713785805612891963950975105294941679885412659623080170487262921781116513573497581167874113389306804670363333909020699270336331712005701732088321395428776503673206567633390923165525183696250982596937215863813204368538227970167516534769320930763835750694060915449281274420829553561676819176201722213340218583117603404464322641369061643970200777360689037342106785021380231934952960662487721602144728089407178849712638724307816034600835071033267796030946673601095216730083307132799075695895057611090683803586382694841746203019981458954421383274706463064877755928672212140758662927707708679890535534236464769378826887340424382138042986432297609069350513636023385213771244872904013219953577103143265881683672424013241380030709223677438624025573594945802258660617427995786393535375185296536950214187611444745007268611362326642720254122294007161255262959600751100505624329944314323233784817124752906861222155323388182182346385344370162370392472277410105572482617914827731119912021193481455036935189583954985186811630497329007836091711087595494817477031403741278234669484225906327570457865918140232658784987303413670265105474171634804641600947372351341877386286106149265404163186309719636567857435556780979619169080400346914940063238944409587958770365635510711468098279344683368354826416337381699898409994212226743466086564035500616269237639846780374889055898627857380578527623769528920920450384448665183881434144636542612318837035637942636646113860928342807779298396076315094964074426610169924479630474709137545224473621055577322866774324904065823457983530383076566323727338383081256184238354928922555751978138621197663901615748487838103364459200912901802625375365937121797927746753062345506593671275853355725410569081033540866866680116793490693933438707819527138674156001869641290733724306321277049188855021169673656007908104573557131458647766593662976295923098577592402954541612841134862060667505694924185377638267846075790436634803503591551797212278488473019296658742747363266109778365944925620057506317173319683909922696765411242289034358901592869075343060451779960036325127305207265344403188267221975168089655077149844535026089270638200754745071721688280503102926046863533318612083130903625982120763946376536504765518470515471519943830846231350627385399700629982606475976471788162918578282809649714389397776415606099025228054628445393951010591666137795084329326286911425737261054429380077041141755347305976130306050431582947214081994500418798631877937373843533833232522899229507364513027281317444163411847393746224124096505283803250789214327264631697750290644589731003930668040757764775204576372132140212103769497239271587145788884522388102924613162384321338710675102333942510802651352217890913025003495550447574373107811470081066784185247873340531763236078847981543824556296788135261575978642912311644340616109228881823072928518458818312397918405941705871448305002743007646051271795340977476097036288713485393003095602268148396214785234952768628677993760268213860297596627590072303002579627817799645968292833095721991212966159054820737088015645337469951149594226999191175146788607618296715854665915029961466420737913816487050105783213336750437391766696003906730477566707352769156707283250945760862379238548855293678839953798884716436189281949986391626658272713997627978092597153718311327852498839567387761717561871431322641361300729229515019065791032077898727020436980203532425991095487485264810356947149265841050154674221728905264531560033803388754227036614659004977809136170680562946664824370629770329749259254806315484292771496473729422558128176541843237365750167469773506404029898943170549888768353370558963290593725249455396380291582939011127788793082010378410746680571500582899532712439350737513508332326609094402773937492793125058521437400515973133564363751708907269642727885477408977109842537664964397825806852687303681876005144873829737947874544817051748182988106946835303255474464990031805344152499472552441246352130836313293656875160075913991698011175927083092206728221681181553101804972644795741380803640984739994523919594721708571517934383678769930404034332537792105847974182514390122699238294560183597554853314499045188146488412809003829460253998078780884470217932035836106078561835141216717400398483965142242146558338936934782123917267651860540471484407047262677909266144873756331365844139311016808422233810357260483665734568551573659889331040850044026580938295522895930815726952202628826412645503759410933451635744803982675899480707138242834270989147230476885113551949825776049900144587067865432393687443285743217012019696244684615517515866518167424886727803494840042159954984330645165538591569446856767977944433088790847951264621345172171207784940025090764711727293518944739690193422485946519002553284637429734064402646054180700163299443912337415528535362133919551584735138807736910867819312662673364344798213570277399529622682435366338491324908853700969095384294335673135852081184080310008318950883313261813614839727311949377716744807854874064662753167687081119581771901471220084795356330066939172889695213803127658424729526821234348766149719813420695853838327368601443298362343365712715303630976006745819437046553660023245055432252904687957492165576472906142160715878708035931520307272488349480413539103031843589934187387757690298835648875112283199013335941260887699171925625433285137650284103005882890851738089582475883110694214441230085567569383188376911425324994630910833424167523869295131205514330454929945421976272636633100181938502013525807214975710734841639949788369092694810216621129353541477442737810513505552192689453570478005134780230232021300766483528742047680731582404513368644252068134537854313497090480435287602231175649401599415972631332803698939068430239194339145759613494049000599700563724229702208048387602249918720451653637223236927489671188976511388847231888039425749975513258815617733170657512553559668411638609762536939706212079417225365182178675727130804913265786738711578367336437320228943148903519755540930554417537433776918793019828796410443407675444618380886845885398014307807328192217858989641933987465635439699746742293370907315146448250738075736982420478526194602469687653457512902938761768610661522286906693551644403294309367619003044192543688953179467356802110232938000977896408798020066313920336934825788305990820803938957897695531783990164637656980930232176527852402888264106185897422456708969855038433260913682487035696225196967772257783879491631733347400984886306063572911274581692998173646572740172711434659720733556837582481179955295342954525648625419168913035577528684799736568391022458925139488140969952755297376659024261128182694938189731787369615983493021888706046307021810631598373622181810010509740331211631475006673505364488531910992735844574948063800344193754037069613635970525427819563886717297072372563990801781882299067788831631031950232221732609519196441151266831684650052873529027707815679564850737002428365972597319896181755965897762667835750232265937153912969002610356047360117095577528703725544423835985692092870373035523047055267264753565070053135345782735173944112013723035669006041819989614731658206431042001544506884368336070199206619172928506392682017180008728053465600581354619499212902684246477743696288545882794042168601741519278240300361111373763636054681367095615654598402513927399029872796618498819774171394717703385072442302769975565092777644518435732146504585533113564200863851815624906991458356589331346736473671210032523672918192089332630431109618209277827324365827223798643699190082411224014256325767878554957008225245570231675047441003723355202830847813904168732160477035455852738045324824486362670111992929442738909077087241658988160743670051259763088280599114530559030245296827200307803715177052624850752659965937132940723422997521946621233191923974568341324154511372936899760602983525480726589698879172358223598496035089873767558115387241944463097138775455346892531043401978386056977324866813139923397498444954116058939404529671279282040280045818252212692230486234063967293702041448197246197522566619139618567330489844438549547775284437726995111145030285613319206010126774665815446331427721906470459102206863301002862626606445674340926037489737880839710419868985326963843841699559263050546331023073533294440600673504377683071821166946964029134710665779322657078948371287198677021282919488709764252272745752350610454677645637665501115225871516010594303891212562839806132228843059289062806101232805374501518345500774653991986361160266972519286747318417021636681733253010957074141914729330183294302518961118728189997801438865831751713957161006515825790329039674861438296678188028191492058508469245086628488489371213756109401722259012059329435825265095178620441082212935065461122362061761032644608664841858957651336893209178587874517348362748470802859024086559896675844659172738987715562788261768447729747552060617366708254379642165022332477097328022587499012902571059372563676496850357956763753033943185074028388382992889933457452616450112429664496933066890894634988066151235763462561304077163272986588117465599914516557684903063478820853497291305779074708575193757143214732656570621774353689446950688282851141565292883394178515216414704253969732019640804673238542606550422800226357544453707564586600554744881847672388100721597242047567517938095525185076297594512161950172385355963698664294675625792324189456591130723968451667767424957553157006740491501852962025266188405882011050598166410455950477881403025523844365400901633563280013616318612119540959133818118536099816360680446468568598086988373875380336158915499023885142351352437393279033647001002283347480748271368936367248810460934861912479421292665853249201508097196950593844828307259845926561965483758734425478493742313606664964669423318874388446561474103510593500274061721588598341939608113951388214607401322862292864637356850594239852800405818288376221030470394028098636879689107501125317523844450299127766059654411985299408010114132711323943634731041433631686257902383410214802013585145304663548006454118210464060543069926032573756153963197449420653446114132089856173055547093461206497584973448743017340991375585200677657005765386837262925163375884418893599334183164955605063338558824633874464050975989253631629480301440560589879174729291956948981964655457243562430268787564508710185667441584063120638442208989538381195755159038582505668027773752646377973123040265948942276635860152307798702150529480456000937398568451106667180709086578535281986880312981243682783381343704800598045343452761367951955192656790616783194810740200875819679089474872120889410221528300010834909041665912365694390042029650300743122956664280325633271712926610352884881142983507182721208316430271155725423588041419628352660148614315649341461086345486205312838140949305071036251160012495079144225852360258225702938342081077205577275093228084022091331887872534253216543180699730937247909466505450770130439360714162123526819578558267237937086234741970591759561776945932468770812238770419067159216002839370457819201094838048913217095134060335626632654014042725135386341738880428360041593618457129646236755428171423202947699008889882918577132360588524313994986635725297575126280648480334354340470535764739844313729167952631467098413016626352409944116526916694067607186057528454554271943675946307162663251196178346108822592100089659334796368232854782999931985450563651307799821660310743136496495913413742414541540412349982284484699794447030904858010044707927911902946367901752565045821945602536557668427813187989984592636611943300379354478415148174137828888054662866383298641436245051286031069392394914537652552528388076660063807405381014689878833877655939667493959680014066008950244931067582014586131355364550401834915958024436029462459127846600735728775750967551168900952661076124764902670245756290920102455687246127686359204305400613720735024923958815603451096878707132914352387720898834752017186998637830478645163006005345708930088932924382298768506393721566488391048479063182834870501861486455639027659668599009600286861370456381005512046091479385240767572971550513331949973221095205527993015889620806818436818025676655981706292987038813998970074755940046660206979328410108545692518600364753841332888401321548779958999941427987393658960941335911561779596828494748969736292661784106494881935962285698535301630463249048791287642770778499499198721801222684063230592857710026580484739967678166383806535332729015461586023055613750421381823850810471104820442924941621329655230104300132238247565041717137072260466333209485759214917043492201254525546922085270738631283459800343938044642466230064576198397582656100251872646929590152930514296640978768838509453962789276870752389425550816018530598484867097910532525072449361459911280196507369488061440642631699459077046422991854190259546755867281753088373964620765875106988657928153068938747824424420441840493665246897314994316932401631976263696803059760607426169571459673006568508480992485774386958132846520930170743338151696767798306329900471141768532582037662067597802939090934787208373487477845452410526320631277305372214211218114443875986340400653087144797837437394943011771256561581894426555056546812765146735792746610974310971287101919179064419027435410462530717108336865740646703129034168193412190122138980997125808132224045185108936310025029172297656722201677145976461146616466380819580405026391861664753273815837426937682281863845352453317315103494873760886002393361573379787891832168889542980795313634197796643629557411574475874363640430453657746602339161675703076973872369349398572928048027549409271515162254273538096110110018512538480221089956186231396842986827879769714603726486263565103423229641687855291027654348227319603616173796370058993261327745289324327320492122313746315073844596276675274955403239174876698522095441224288308870880905735065182408093684300716558341559024009570037298318333582789769068653963657582234677769868008595187723866046150187796994465044926050213235359183123483332644078986524842668982136860612408484701942592262197711502608014550351934867108474662389643478162425427159654207795807272248321060395345788912573963200979206027767281708705733408235198701344322941869565188353247993070058398644535394691201098521982200436023754359405534025905737247527380149689761705124769180596216849994460429240099904092394280400451847930244777685175309146129549741951523944127945060038090233212504464745134253292029491922064264784088547895022572753617605904668955112450371064644692651058848134105716688880759208348467800854920778677888339063501969300067519625373565942016198182945148559081975441894573201127785980108066225769133830483270918110767024370965294025822495186791654406057429318007817290057882187583924944602712601716467893257262361353006955166732605781918398253778535229236394832539616339429413657815802969219487978729440101171525954962995273055786341786364552505852070178886766683923752010417070758415918879604296618140760718033479280443037946498342186486419843630724186288258757905893218902881499450775822848351591084392331659411875723986305278545829970613001800459421592809503505586445909016509219891065950172788160283378704617550876140620334997098595648342658311567795469958798281647934985278017622403601975169383455694225912867199614127355390965278316128344855502495941368347435121621541969569166073051091980222351283491424071421934378813351666595930557181677887590920182050641521172683608139860596717113280992684615842917406659923233564264043962256638547455593001141219667191580139490497848906145941892865780615986405604001426879070871371988319946650696461040267876983564578368107424872389570836532067756515903326239325442161885068397587305520635616123321873080353727039766018738972251963506778900248588739399854331591177089035424334519675351669125240669819016014516052787679374647603485669646951119741697307509005630574902297614166548585083866394472012282123369926096887813425435532439428385944751108487503267691888481771389011009656994377729121991234186612543764778530513004583955643358632377891509517133965331711448537665438878708498751178775221297678565433235027165739019574783918348448751758495747594116987460163928195149077419802444232230785966090597205303704358804472546031210931143796911535353595348560488569258213110704622290185875955991133005559896127646651900247254353994785322965596276323786372168983507623097088006885002532159743304847716899120907317109866821227255407362053494127311397546881955256973941581396748521640692700808866290636691449824795579406872529455050526074002987685165204114552778244134913884379397198094684350353091224151696676423041019014689405452844444293858223314096224993423104526273313165074362745791693851335823212192380224352808309672484432780056302706730068143044996417840360641314106006623064450986322376006210255986347867697833292125063943757190154158644112296493151001450256078967741722620487449704991465783851823277971949267538435498641716417588467472271911462888274110258893381657320537113536225381215328990576950232687491656038260337929830578869136694337377827729432315472388303351908827860940219574859478765999130451089160201469552592220290730160545488724227030788076372832649682115511958125224513437185389761151375776544190649971785028509041300193266274926266489719297075107306812402865392592360486201386355600449852720002009903730586745629177410391148502720880222876489671584489817942107983524683513804724545873030125263806134436812584629527698126388328432138981912158251247932975971890732322311026306195973086165497344901453190148837582270531352464439938955783898217427487071064384989076897664016644897240703081667952717045121856827014039687388701442171103689455682927275098058544221369571655014647753704446572426919201676972823159948824932206220007663642399145390770611257601770222178521882427245137287119062802655472640185646362405635390873449152018747891414526424362908405616992200128924928885846657970301656237802277107605762106860259463755001377639404615419019099259991693893281770122891689702240145825792955303270230643489933175541429358168949660880881724949134536041356001150745920589267502169917032350053744701033755501283448370471839518142938060648134941812212911672026269781965088091889243319412574642864627612559027225024765407283523281061025447688600373451505068230604821955204457137617538076262248249749794362481999017027862878206573921370614572922623212556049257942359350994913481499778364538511346090586332191923603655363669361760324108656629013323383032464263754374866808359800927571056465954092187109049184389089421465227035030649820088340119200822025772932521073689929822894104527349108340248536175464495221603217425573184619569201432447199191975983525881514115398567286856379059730925799831606737340036279012644986322046427103580475080753688519566550296447461000297463651797613099220143185382480632601113242780401476522901415712899335011280646571000567205038288023805427148919143596347949963350827865632397269565635062755974553251426212079510078690347126615350617334324137880357660730776737713798200991247000986153263883577085792539765874456027271760773207655830946123492700025488120779279483591330675799356000669723802737453011128862662248504971949428085313086030749007055303687805384110824446488654606695635391669164575635245825937174702102126979194524048964226209472820718219795901470047810845404185987192210438487655049395549401956639783378240107653855749659903798984320689691777032719980118344986737306260208973920223446653272023768001080073465678602162861091939052775567781523315143663832740935270246155812174003008717807463297183028891776039674582478942945841037080873619381746592889354391541918042467323385344122354647566277811680393071620207949255454273082489850236876628643604468597289740124252828847003460105781083304527088495661442265934701420278041953997626643109156869446242009398457378938270102779970666857546553331652553432939958771050174988599446868263766940422693546711198287086186925867454467361864566431881543692682643402907426796652333004787885395586140998267408186933701705413314991573847041327834427987555074660460622294735433509519052855399738453081784409318078216472319561124043185011974664465745923990435201521166578478996945170123721346060201171091338340916063887210410349607136075664636103988355614286306860751918681357626358105314634400862948874688957069900654577162949776099647700466845394074500873907769880580365710563202194341572740673630550372030694755189488137251512381451776282755497299500333110616266042377813667482434001159501714644985472462063682320069358608988676648085993483040751753712311215879176088872672067681154206690787759247839302735403641796829741709848914135609998714047352089317990254941392437673050742426365547756301298879613470808801576916783287394912260277062241606759337408624038912218588507292115017924935155139104455551855642108367065640159249071487598878178861330388794971207761053916622838747991861403200614838248492443301068498255927325565420121004867499092869127668410660791139571335845743056231482266096247658975684117492986033038926124086317425302884642959696788442183202092171557489192635764992825891896270177047595013484844039961483227095040011735972643447328129351346789480720398527320550260699402825161975809644222336971811142751287873882498685287778089283792050931541206258548804889548668507706791548225460300642471688354665636288774265144916525178992849186923587833107282743596726543153459288030752229192650615431111591105251757752819577189679522506022998479668168260275002139022564967246900756304710959416680104422541431765295297539585580239196359197774468788483567319994365881526795011061478487938108532381493369176573756462236493729183987671006916499117482740873395541744025998206807616824276416353463249773038602387911636086214919261720751867028065764159600942926209732336848766078557080208256662394387203441653731162637578949288916698606185930586941204874445437910084990723584610445742118163923204132888929532478824826734647816984431928369899411232444969476684833864890262309087686586593701025632149945631226241993078536735639509060546170991819716509499230195719332422457968827350084355761451887034394895249849087573042733788810678123545143954618605795544959879884584223228240587178280406215170903308585117028907705137740540854662033093260203956997252130621783221853184428467097596820052971322384014505458357855747664684127538951167078886521166232371927610023806536914018007570838002603173074317098931307811346640472951519909505337331002119681601147101329007695482503254384861004126289588951058015692103251960602318131341193761499758788590801554865842231742769878951323778936691189247476035684907640773051489172407870647556268729356886337291745537081462989601391037759956385646252418006089490257161068504617806307154375513449802368153218329549839602458929323466434862488753091341608621899486000949007813028170215788529850596254237452061077329684043971471381917023667451980932928106611573985975741583543274070565683657787578020609985902958079703759639567232073163995729488355358574334348774323403479023099827475505355224452581599879884322675147207185629051576691274708761915777527661613774586734926617249625220170983590172592078166717816739569356656811578354607348550495394049487990348591500635547479348363471695709121775567802872265425005250218612442615988446816898551915534094947098954878418335969148887472405221314310339888529264444591605776656243905562066247613790632003043881946222557125103934236855539431682486072496786754713311496949443522773137009987404060414710158068768652098355186899182471701452938751649383968682126823247590300017718660904575072971314376154663718924800485298558106640897921982622216798520857607556743317532035195027672138102505321353741861021323594134760118232362104671328434745106075359588692322854575298996819672201439757925292993999545576113853011150073470364953455288522888403123081406192110395662502385819869245046051914347577440133314687527539624230950116453096544860592616785076304937140102043100917679667840022271684129834321688300335411515071188759669281311808300779131891943333697657951316271781296764148864164884574331095580073578549021588297930711892944046323333402079314216472894404563006497668358971276738064266837851917746615769735699596757826097287611932652692442449545398973203668972651336133112457410506051903983734627271379648774505115592533362565216723848804840785181707373177036836672510606052997753864466970644094481356541458592606146428475900523354644791035876016810330348835641786726051257322155125963376094073788716063182168564778271047667983084045598559870533120436583849673851721669369629488573950372731622362926574783139773744061335646110211057203311167812785102605227710773342544928115420622825735840151143948057699518933456855372110311569934921894891121425856687609370606526790011143072649464233621547737276074205694775725420154114194730268862272546468948054168825794501427956537178146456103211179688092257036406745544334264729501665823493766026093955245525150513344770754512865504586751893398386876494721079501671056933020892378296345689575175361562154884072600841300343114800112423452176610779135880902297817626180054850956654866009847483534954666003239731702796133283575005093053113868990187879591226724256965545236588590987773190384371292160883590756442871760262042598659370500281789479643828842968430877407315915680179642945066270943037191532044729262855371766035492825615386878504801757353192062808850669288429141000262440098561322964972087175840144040956232564428339141323921326021907132321185183825595112938777291931311215529299008879506511571533071644134364871819952043021281251575791032381308445378760303614127426368086364972664270650631045499866777769402035243013334974907259032028940386249232102740270136841402903133472275885759746942654546270007974400518296915351625419807772955122276328373503151127797631390091224255775954551714606732752836691909280583281912861834389611055823969299904829911428038552325125778681949028535307137959001855563131535183895315212147216084653114035264289467402360200561276072908858203433543952015178017351455584818655783424967676153217056001913918220087269773827847571933450045456376540969134369872543891078587685525131694477741244636701342120447206801450632946168001038439406966126455792951669854120435905223542736164621227048341882396832791622495463197047620648879158358426601535040018256645789080907163075141884953337634597383679321914534672712281962962450160155166047337985964593088987097648427465611233781758146650218907569681478622752807571462603776854476308732447677416490867344633461807655444689203705055314111877451696742690937089892025139163587153296240824044570450866243282993769712909815903471747039771210923708742732789915046960991108582934940148649807522728724411282742544187243843887469821227717888091880418894782560028314631620503075172012310302105116842602999675019007362029677030637363780881891522917859568969491121187752302406704108691061038395706694754753808458229072163177080353486892869684525903475916944757233492642454279207807048080824818445425222777832920811695609088876001100471286186026823832524707878254341599510994982885972527816163781749361973447559131945944118141752310426650447231951240293449929526329425927118663432834219836794891738261085777541854909627041892714296827528924978997053973936727787052272222452008625496463880077012951579214259565623111613036965680857056802294415871010825023790968829129231887795186819098043348564347813897773910160893089895161250819395983818221399999091255451783277580841296103462621856333095648946168917845237272208162629693981068554756960805506680288654291851727400107666806818633540830921041551862474385720256774561082281667803805904990148567744957763941014932889747326632098349520460439893860555959865245121096419426506250270195948404450339898304761980674907630582424544032984805233389922255110555540616149449063201230760722315761216663082853668899839121711399537875418746533539622864353099838485487512929528788131424537252805389439943235353204446260350103495195888037581986548976997663257886026224246973952434775796272453450623585602932356161161321906151943896829968308029840225062742348030438458597815569985475630786624879740377593975075241020014376254468909772897209071329581819212858568130463035462001537174217890141561844120677954112575196031684370210623895093582647248450883203606433649531990423036919371590251339711985216356618480529489633135628006097014491120582971308314580538751863428874547560658996410550425329705633788136621435370969905566206362945652697790128226865689512549679541243624581012189305654252066905904805734865857055354588149260747451989464411679844277287141682702550464237865781647403973838726508633138841156753473781598634307258453247354257921336511139048492313650827154107099092587616905423810768438690286142610803915679878112059115960119803851487869710840935680970654321898844425442559444675830741140827922992337822323645846785459115768697962227364222734590158733997992022392241677273435517671585378206296527054619661998999862428437251148325692783284541155948271478970128010875474079593067508314068029194290381132467827090632736361318370424475957846723446258049537106602543306758864852610916228351943871948702330957122790408328149274308645057093418269009545821695913877329811589050941794892050163511196938418825824600478725588173454910427961146507370897510351157965552629508610877384776288743307769275242381836023338324297970445001599994624791519884792321352406722564631195592481672955730073345047202415937675950373812392701654560417220460876505295750416362028139228596956431324589592150638858755135926778453479072300917598789747323195262007866569780710893522988624548635982896874182905157359756362702647727166546089199014622333167581825767876591924930572073500271256953940124360741513091354958311384612926106081663008903725727302781685144180911888475504311236862424355417580404655659963605101439921914070506823100773055322309648038265899655847515902116434520423369971942920303756755228307363216618467998115125391580748912032701260683134320731705572791961566744227307878120774665351556142079746998683984595490004305973528470107261090831989207800066232201790766342275018896695308537210235215759378556887560853221689988890810727887826176291599408331778384694815511306202334631659503055809634902164586337939856544967071677410131980873135218904146725709311701861230742134150004832343438209006455735473334173750740317970299303217456261250204146140726825940315413496602754548000651608319933508705785166410265119184162477232243723913379499654913592784541762265807390682728742376443039406603161872163640209351089829922139581900609398240942021991322382315748335479775125624105113781053858869530601271307243740168309684270785626027501830347950702875436266375114261532194274282365412608698409480046561940275079416964411791383374942467787687778567847650285343090680625339634160507797438555108899337498355065162792962060930841706621083596843277572714579667643557151997294648584910862666562315732982308664328239933601336494738837090895427597759300672260763429366199512513712811125941234894295677013146900427477141238905636632143804985800384613815018069964694269114499905089098169738893329566609992166107558137162180722873636248197012302705204266734370130267549335677207182076791004572073022906531847504528456159463347352558289941418322852197546876096658077728658859646517374589809445559533681730301357766226729036916428371135081847961372385375500578524183799038448555239676898045943980301321469119838581195234338788139617545334406779975405789785096921873678576551208186599733650721619868260346846634534721420763563879227819298265166961131511262436462287489294133401721669989789762477000591088917780921992828229398773720295013360745005508722597176960210803221456545374376980280967504808466598963825648123277077118125203086480284454251298277070225629865332975239417799853972504969973521642718146822946474664725363135319576363002059830359922157456702142534493431190467903148526392258997439087192609517519162179899705891922388098418825840005745720462691147048961134420097358460205332239848172903912904476865699545869492176002954946868440532663068161517027407639558184592081125901948643958569379789445906907362009398051270704153194683754515481816727011330811701578116516447951519071734734271072282582173460902672252339714214888403434738721548891361050616931264718808459167399497576619476622425189400915370804911589270689305797566400412159248151763622741285727298157939779593309510797014399022714412892886155607771398914948518514728034495260079725361180109575251803060329696101097125634873554590673270007410418014114197549281121649939418394255229286707187812519902878774633693451808777565870997224525699678784061421109735170306510887249939168229657074270349824424859572302664718870218498813765073098078716530156084652797366803629663197624292015791281356683556589313984615452684215368365469107995202894669806445045986547659494139026066702165726400822135714923063011733102268673979296396640326798211072841097300079722269152344712070181904165152388975185247913884824955733649315670292450871066161875068499921700643704540681108434743786707681105681079581314422906504138725672963196953546875809613432890056610442089687141406708482205910225328731421888924391415511818814646335175310001229552557646120972222258153547292259461060979009116355591004363167037317686437208415326294086826545337656085558895046222351928084802639424790499520437182723172098770859617169687368243670648782557070478932688814089216827275179515883112144375077264226761972717931912043718302688676552248521890102770818544785744924505454220791691103092875146923630005020697979746208189002833902196894315394297389245120428535383787609614385930163794209414719013461843884315694615494671064439206463269015363044401354951448847738170199166583531010752222936539088777456570073597953006465004988868440242146317373845724547502621989751239173048156098096075133736182436684150577233256468769984506234645064553149053734862501870487499867316418863516270790913799937042041575017897025536993336769816708882189067830373966329157148575561168038985968497393738518793317224400014068285511949252764643876067353587802194500834918467720656462701496062976823427294875959143736527172051483664751457237309469151825189215974865844286090631071003883695777784430484659835487126912188919327556288765104049202929126451704356290575010422747604158130111571559343765454197741536993184496693662840781262556620595137474748303262082419818853578283499853540948607120445610883796140833531322965597977097181902535147843323857428536241191915546003938568547744613458504478801390352170747055624313698031388410542932448655738900527236542074928726508441450958771361871170623178836508038180532433677748223725566927249325865953750966452104878290535615104833943366164471161961471571961264256124446883549076126943030799826498287325259706418121810100090892198183514105378420693956835858201971377614259409630341377657515549658428915323684143345121178193907209186625107713085136544192988659565613329761002391011662558318599521103893747661285514518557177813447058722666663760715106465090094388759956585425988996628571622982949438844670435291263689229066965805601489566510850555587018806376622137981022990376298187628591981961344328265314910695790364786675981974705668183756902513451389187771055939520949893739782286351097406755289110776884058641114451679596090971298793837151144717455286190736786376483206967960135109381326603489940484711018722932022801536977125215846961607682678237144683426684807561183669344531401331815682685381330558023224583281499575473192220343733824030887403254343313223175885310988542900399472163420180330132452476006767307547148547861443852126871771893188262470478883071183835453142371411135477493650868794578615728403164585756516889020037973427389885502344386939711591286267031379542895545102065264309510169881003659248210555059064407401299866534384793158346525694468012027264772745681644138960458141273625814980704634780176222720870801352384012310687296519927635588709916848510270453272778461936692933503488586657818040612861721570651483658641216271797404182155834048422236536875355485822201626760525475940022202686518994812902997349777937147025719042507498526616873271004809185205095101426818882726801150344421740417671099662638145974654736728228739132727482447983550369572192588596331835288318989545037800697248153219375195658972216565469274497330954869999750297129906434908897312003349906559691251643939201115964781441087674185996109811102092562331269927815310028453186404052646392768563716696036548205835371990145959793650487797162289025955472700141784629583103370357071970548141130668272536717796506428762289694569654980601907469482245632186077524706005778081752747136172074862261357060770938805185173791434381706780021946636145961657297693970485626852705929658463556913115001944395520551944864306911954668162062763220267449782177649230729725015295138157485106852933777262221840071425348283592828033896385386658046940339499097355180536477675529234963846278316652468491865075940909877849356969056513556263171142776538531332229454536355175379995216549615589501418847102587013913314339284524394356124599287869226059237965294136352553586470633789374314973460741860727924079645557216718048904355391102777683489495085726359042065676768662402640918091616962492997566384679255404444718305710030930442121693544916031288357318594240892587855007783473618560830615511065802064792945108744964293647520673411297806457211055364349012460490556459017208851841740951391331645450137045975150144598079277156069243218897629934878996570249814336809310635203734909625071412513203456666799866481863277902910265776958425185082645883077288990216240815030420511843956215061235676899258330878522272046671149405580603280839378051359615058031448665153895961027842987049021782456141598088346792497381325672851967419357395857280118448422510679564146084764781571986943219456947664675916077199913379179223499401930921425420569359318989367013294331702515238397542701572008221222311226534242031497780818823944532379989328204527168784978945653162476172931230559039261705110700077514492694462054025281865284412807878481939397689792733278466313670402169650397093464664630444653597536862251990556704658835277350285534181017732706346084549412683205643705320796132371407855738114421177857369680963185583054045093116104606382659806647168149687283800153555419665902011270312310083070972708098560640667208174295869443254048538860376813561723232006151637291657008912579566428180262211593268469675045435640455929776836098789362701765738609205101985289159494519643429520291118900141345207640727326409750454230386641082550467240101470004267345201207718022491600260186755005410108478307758251752387004848451477033953510624429657987710928948076720108776268539669926915581911841512411131866456738459714420530896671955310358483649642178592318720657114519849222478862580277312597688702623123363460830020136463762640717412662088915329345871671767105390441409622154536775204764586850477274956995082256742234039795053961522460770035098630215239608848285759939536193767917186419971386897520040198542562646130587600711007725797858248542437387888108461547054910797347759443482212515600486673060325632009911944689467982686112228333607382931978011939069374054540412491693228232144669342249885604747432791585438116839865804429845457653447300508096383911586612326348718636560394137941501558263707829645479705080315523516755915022801466663888416736569008205081150226779876751726884015179926531404258284773710998969899200591134860573738231807812956795250655268216479406962322854584090941767159323633005440493902232915572910212384638435063204323723827513550699900241179223385677619192970319580112968503313167497931647142303562299686499874354535254734285836672920936691577539317447013284675212699947722776809637959920893788802090763000872889635648574580386994409858263044421093655878484586536320941471405890250362004913065504564886542515923187642927628640191913509692320677532670028737336377569705663862821545218733497270200437217207756250280015406743446772000198804544365413296138183480448398135388366638819937530968593945191552627689280371042955941858872144630299667197851554631259268796713803446500550675032946679043821631154116025288953038855704839871273129871946302427360424294090197676277177761518948484112368813498917389667415672725384728077039471303406299359422077861723484172521233593119894047600531942492150761213791562308861750885853786865588856347716210389860366401131658854229430843445007976731896403428836996052419847443149631515282395820264607188638755705857683211030550662787639341973621282956216950629515252604662093295788240458581196174441810158675339187031130766532169316847858020303134465470735246644946121983034159018952347433333430779879842402093914472181826657779531091301203014427707857987053159666150035964805631905348658043247921942484598469158651370292335927615725587483935971408229375872243084950203611101301643821313622430218609076474769455753715547076511916848727508290434706794111186037989276202077173181946123714716282426857621295786405611340729967198275466260498591542142378615507050201102120888777923599998318685620411963207829772411207603463939676066515509042992864433133426889771624111611051859400463352204665458707977059654535046162324163309012680524103283009143422145915577879491389750643577313229251379344203895691861710323221298966078730109986172730247487106072906447868586481028593376336565939888364396839298768645088353360217862899479203054352275981704896853499842857425613373635644801331637032292568594393571309345274371326389440514261625605625295015209605017570407101223611344113225237603219831085306804609866111969197189793455087464377058815082926734358436884212560578787108022666351865356123687874135896725927285290862281955612520161894950751786077413120158985600536355295749837497372442633667050611346852457892063176030847267338928224850268775847583504751884105618735789123804683124894040212616192815411111993008456147763378235321926930970108680408864300731783011288189499048393281265258366846495672728957090162532242849672435715612601918467447482068988785101388057110356582942287046029136371334527416462072414392170063182013282157167385274386243228001612028136873788021037026753347256858611945554614341466699327169228048359767073819399054584277906548836950766145873656651472551057005507316855469326630652167685740048422621379006423193023797197243641220476700739073993867391622661295583874216498616531231932281145994590764538998110887164320015039057485826027732676666748339185231488024129357111930487979566413118439184124019867862994063944798331921231725895993582887203597465291525841088309323368313222676774408410656274782422671538885155184193614761071415162879187966149266362801377093385579601362034390125872859731193133438058057339488715045187770483516442306545014960867633925374561576615463223207893738669532485386419448914376199638739952496129315973001636301417371816558943354137177586975749872957877374825263083959781237827446675453778230179572847410154428434109689218335568607679542026502373956077779460969028210047396918440450892774554670885353941673460733967888731168215345849564926453490402802012090425024150843152644335235612360703153228830982738444726212595420555250271324145331731959471179426562600714639894458859641935711960032287589924751212315357766691343965045761710686041667422566401115889798421773226765810511738689922271463314493250982950543582713507990102322100479009900818531358669688673247808272399838231710278159257283573847571576715413531542786510052389697008043253482271803268156353673685128410921655989646650436260507875656045965800336265563143773594489387115136870183990314873541473797542555367979579197328716219682490663607000328223591580401350881940043832351490952125578705098139617152470468977794590153055794799669275123394320258764320102755670128940403765037850633320578719444319612849400707909449906955294271930901723905807634278927497113561704322009229841830277615597242411051144811938035238210891401364621334547519170145649904639504571691132562356541999589454660560074189184894154633998849681032069130959800888973604138532011597171605014603964103290358674942650449723162466115969012188247467352309793854448013197219152197462399989866914679743204881230340469274714517763900921745884512980927130743621021996246097792987246064904903721797345239184304324278835147993828696688243892267373092922911167642234064472828946158808105081450209160904878765363411920257937355899964701487626861487124626932038207029913880890301337769451662764572852093859498086490400336090229936525551695718897775577809585769055438296152252684231954862405322547946202422402485685003405447835038709953613804964967100769371629902826384220926009628538018114441298964400747910909332962489209089700836739694067605080568674262004553990342748261482697044862490273657500074113760729010550127434471409855188512262345062410454547445691258486767505105543856538969004315037810057135849549801296505343785775813331145835402550177208973391124821495514565064374999281003050885234874126108164322566068744131656816453515561372153036326569219916926330252746383150613263412326016421854384690175886369182052321410498545763392676072798522921301345548417004794588986005127578392936111241862431887318842652539974301577424591094718069675735219795035951159524362980525510721453727446307099644174310257051418900522380664261714881102282400394929039631155810415923737925099779027476244713678805494454873371368153356742873282329852782569262327786619224283778451529104482996006294154920767208375444185261466195017868980969135480170500485346878423365500935014997425355663182203490014897461306377321847509373576006905520121225809203956049413986922917068671260111676190714262290486629838526988362752163022628193259056437699941239179656589863024059036496529532401898952046745972567316634526446728504407949523290212309141597779588549867294147824643336114495168433375992236531743118596404001907692163711523078523479899311242618472693457506020872990603478966804884953094506302065340748897112550556805481216354520285593242753101812454095304088588487504962828024605677208549591221844884954631989873635587641820614117765344038307697388499597104353643023964730140329049662301624717480898325907870079704024035539318303907681739196232258481136177938578106665257360266393479764804790815737987486896869465984771286728528969709307899578835440178198139197686055191613003410453980121548656695763626143290976802918215797481697397596289546702135471763282262562725489846637897584696475382907968050610217718183742737928168960427888531893962387055621667384336282863857125929823187617433098408437218676836426718948075911602134065410811483110428415268783737294055718809224362983399468332330810758138610235090627291001519756132299366166986935102037320287663142461273387967252732079357853951150906702713819409023211775153340426821433233284359568231978024290413627353881633039310777405795686385780006277774819430861015379071239330242551879631964810277940776608311711716162978633451244421075276135764738451388952843683395347369541920580232910659320152686412890048925729028079214215503792221694418831620500798487594193532324631234727062354308976471343172703973819343158080192158634698451160691775435853113773761821106070610642618539439296149305421542558657994217458689504865241804218339216795505672636551198769504618781637269474765933670957104029184425691815642203973459940192871867190165616183426167127471807982744676999494365391268646446436899200481853946095123268311583823547364677205169658381986234126589643546470117299823962632289153807068424513652966284650268245192051346545690202703759100914277998552180621970894567927498542324658838478791353529367787046466166243532794575477401556427137926118073405608681905238726994423138778211798089017161298721428226786852135268608672752280974849647416721745969232475565692496106142467834914236176171657194247662850949029975783861125398200834733106267477620245557353798406875270572819072490022203255988568365074939740052381804259276965964408713472975987994555150079475395878493794550234946340258777817869136628970918073879235603201424370515713690756092728090763334095164849876467808843784549603957776698839068248016108908453286875924011273896069996593327831682081145205519166489643264626814247060008199439880483719507443612743290845700775603297178871115190089832109501633554847876950454227047635380697547611475457314770192320702649529479363744394129769697924363175232650770327662190424194732273540215849580545525602873034246563598448340015831168803491186602542101753013409230296431382899638423502033906978840138250412733656672747129167477819826054810752372803759661100202219514581807002532196854356344533722680841888316980993983061468414129699072816651730815199334914061523772793442909441477418689974949592073122326200654488505952643605650212279131476599914969081575273220011238388978606827861407589261445508250978678067638984238013627653044162091310222397738771617993321497163881594960509737291226741678650765211396640130222850702486415560151597090175900610707795396732322133094649358346062109805465886522026316317539003086796854675770999833582102634548975971674025978554200747175444097635134568756234143442970314976434056648061166956251782840525719038773105427154677585627219293904286177192965856537839351262025531250070876789713207739291913767680015538218898667333301367614918037500250538215566923213743244109547486352243419148513790174071519864293610803183946123606197973708225780741321199649649791913977486432350286266175120962486869435887964933359938322177783195870318166004206977898378957115000466073503886011207902777554919724050258135831613609649823929478845218299266141819854496838944261547193801659823891068318195439153869536050495460978680937102092473531300674686159412319213440973281403096433651357443859550588081879818463946408906518505513144825923252458253423006855096455018108841952171136212167559611295934516645392713757216754881894721826587803087702599739473135799099992441179269846494025840841843280625057299315041771077246015688247531287329593710114660102436309675411859389079189951255776773480332707579640561780175264220917469390222482612124273938487759699713944844191092397363165871501950588727402014908184298312994637660211856241032532820965233535804605084084875409897874829961589667490278433554818356730268792135156677738576821029973423829420031382112969445039183147658677603234709609045670335606321430164161514229907340035366583642675444221857710896703834021671512992470945941433849485819482933980075354592186214226225450916391406243312802413516120719634259823032092346603641742167621206172758598484879554599085938591101217631758013849204541314913981517190422584186241905348248311816790333239600208369937345024719876532464478206462854944813500258004565964274071337329045092288874671067407031533120074342825678273926880711359071446639475377622631221965168028058066559766997842073674225831114476302024796548096835006345047346777529146689865511662002197570276370621684689717964103243358400831004847029552389388886844620093399012798575247700707916425076177387941258365742682708436132683762922862459576729237533677084877617897339042400995590769262129264647053241322486373517519243664276400923721363145766993920745246456630126585772866051061440611031465286158532172034457413790373406810996372161394210308710451253259485660221627170461283702963846149547417723103355352090014938158727424934607672679083057103871344632331489666517511271514377423629172756084682471969488705522779202761447441382715334858229717349880911873338092369222025982726138891097919683787999294588208613207357454323153229961461972602377534322051709314770610922454357250380571048468196131326769888528709678281551842352787546355826785802059842278097642710447904618781841575317662904851634934543444483424727418339734436381895814130377622534071228139081375843577913349888860829527105928904778798032906759904748839927745833166625699517282200247236456130221079829554141433997526129552747127965626392439790415807625151274000459040218346492540483435159248802094713318412801734625038900047061061051652090048483359125838283123686360742310895919125904006639648467690082060150820632852613329821398821624337659849939917526470113991997149540751371434031128963935246314497815865746308196945138896897918360225861163244736898477158357667106399050036632681420974789612204563993927118704134337281134786304287407462505183706778352111655916287245278871993452582379940763790338896152710591096149302983360950977544204815336195887688288949135877714708774308905328657300297572506349148344883169902174373358130499824665284444004884719941876759851908144332692470312305092175667680612505555903535949303912244394210143184866514150436872814691321586505437369033096722436450240186537553737456400157308893635555713709934289742820247838084367790151869990966949533279436950586034236123082618645100113967535828590517590618380697157590228931082726900193376988136260711873080180051261236317460821681188682357117299326920370911330462558203674890042081343628239933759881805278222578342970938937809807630128706794299920763962746881432044291628456841531749753921912000014029191168527206071905784136267045620811637033857507143013334247334548759668737100656034791930412193137765824848153475832795580321622798886321918325292397204325004519310596598162121791418890155110895450515612383556078115363965183156882071329944974525799645716782992841179728699533092033913012615919306922043659002300413387691118387038271772927356065141107144099066635449998413096580862361099104866898293863816393716175661128724015472924027561555865049504028257802201967824434149085934499454515457040805752801527256149778577066256201916841984554979492392615450702428065064902761103884139772018233984648033495127437757914609507014214596431329943656138794732498169950603280995003267715937058670039694466125246963770143366090317205186796128759476942792126210131917729499241086412950933886173236820937034175694298196148558037876888629681474981540922691808739486914762504083360176586220554648941621101239546296333031356631441120286463788484497882381490348367536234690271941105102874233736569418174571566204132258289202843331100821988409008148668411317817352755108261026153181112376893256197960901071934929892654916418565197559780556312728915954399474657480675034430312437841895161729473708694919055754155323911233172662322788339296954598209992425827552243656846571535910539604604460433093229805687490484193388896572534315552648147376946728160116984717468628259217394316074869902737766685182787186902417051322505913040414461379718432500389586211447893129354488197982593932648198929942943909543674604603714163426318507613952850102348017108403566000530035308259506551225967059671436951191979830511727007275857310889924872546722883601028403431846393957494297728908756949759359227738086603462993031749667225417012878176113093713334461743681861623803244046898372160778646181129290988153021152562259113660386416895566121322212360768863027176084925524702291912118370184209561222222684138215196796187086228102841972168894113826897118672863140488058286395110806052750445622064040829040731583781917335417986915636150300594290963126741122466743250089040300445493141503432986852949313352129892028391248584461991741699746679045384877008345031808337029429150517229959211202473793976614821041502278622824883854812709903228317567697407179879942531681347347420539489212383197787193914325158075342113458389213885275474320253659415363429809331350875133191557649391496668227433351459724185462841757130701183045204370470606339516843289770626876867845374956249303733331553253678531786886622412601260271645832486933613577573618523492382261283873580269963036136765555610489284741429164038112573770971907962398633131968475203515191770415281228993601050307631101922150018513024644013098646738875641025309679682919848077291779001884720354276996202910446692965012426008732727234625035659752829284145592002640587313244877711670733258108910310982316392573486300080493299077027601644271297300707151592729862606216772647690094627423993978648158524131841464455016853730273921783179161428053322892764519264704266342970594279047058370438667086901428644158085857181723728658553756299183216863396139330758027737908141524826929787719403712282278577154193326161063609528651645222105328796276022035452458995217631330147214535773137175416501853076717686139574152858443194717338431085035530238979408476328888915102927460349953408934780367146381068309401453919406544118246747731557294577212653007137683298506479188018574306933802430066739060806961628768931340740806430042379611640392239937897546704449493340303154474732224600956030092759049240022552169120214887443617188507103494293254489055599322692830951795945877757385776984522294758550441360492399407348725909803976922971922506319352816181431948271815552825813824084292079795444532910364002279712417283622733714073969834284722339571815202852120090713818310934095899005650751238095409586089316485174647179775739468845622375123247443993789266041164097533717527141121554903955833950527937535642236861042691944747878337880628423897726825806977721417645282591205906619916499718895574337675276730743958673037297072988312597994101676651099079173994570379056203644793629748675195621799245255000204000256890342872537458005024732605713771349147579869368062787105251076685758949795190665602499745667549125010716771953668215320507874011358899116048390375440578568452310091389906740084839764852058237174840366452615124848595984481352709276406957646784937293444527068876637548380789691030835294084371019019930381818762955273916583153564176931821520692440145344279494769767012792277202713695260491985343970647890471511784427093634965177445327126093158185071648936724867199592676648994482829982989166726496597991974419657405306048269593921517992748731489389987645281520368740339682956737526736418843623579281210755325387592672746513767284820611507202391031697379261534045908165865077329095068212087040652006462829799789782912452403409529533095021087172777654777593275791487598850254172062833324806539050508925271326256700863959715379511274074401619212884423395391489367078967877463420922014352678669403455271548025349088473928581297962589488497187061371989156466229588027814303334104514207773991089240407848743549094836772232821720068537098553961508438424517659706722023407065757138585290813116723697188269225590557715904943871036890896610167708832430114269749875844698478312495799009936029266067764353760047353845652088110774044107243144411543972818509684014266201377421304600986460788374743310277404699060680685978249952049812699692446887638095260150347938458548281018991632015923787787507344929860951643493158480765494159879186584300821362428455348040972470442593232405397919691661765353249174222108554289713853785532931517626550082220174754804440689901514199090178651427061617564790677446527628365825424841220935818789970267408441777243855839084736187706380067060314365425022917388898276500289743278636403366998939201642295158208708573614538754315018327500663786001884051803233903106978492799033392581237948196836101835366063538248649383897992235280359817498736641607142318458950332776292464663237195399617796674529517021787009407146527578092708817441854985979547006476379257725083920327181837334155401918442038297168897894283619946798266366265835591573645375328061355311992306868762885108592262900275606010315942744163502217308007101167492536765358548901960907137963010750916724818223923356433907469777849163365295966343931361017285922247994300993816637694084399051767385899109570289091617768686893296446062332336645539052194874960035015834466540068798840339404042304240613373550619802458399343848674058261885415151724978149267485993689148738929417090288182815411260490547143631838232850357057263094194488320272211058835916711109659323259388986293770693572168276184981182548463466074154063266459403697362094910832128722484468653270507773837215299922180437077473654117279893550427973434768986722014158394851504503155525228044677941885242105862213805371534075014405778422197737455129876302828927909681820023994525075832019796837066393147530873748203220969972420771042535902612125824777203708190924533551281871246498269294738296139995607541099970031085572232789239070997387036936158691043660666696553446044577312199302248704701990031584256076697063487758172862067656714692875636668400487626800123627149262645975902832358810041963691540068141100838399077176034857011559780039616647336316382245298380805572017294107159529744070366757057958337453622256743168613253384506120103708589221206506846884885167705277619416986434567036907269940923035560282306984637423704112800602070584850007143065902115727539661703174757724509582626322927231696231718143785383381702736041714466836924566571902441905032888706255516741584425473663387404685243795251687814731918176735193639440323175115873690370747902760546791035183612093071469209692520645741192349089359437059753251005374960395988970826731346227464461588035086590306043453323265280417708598743818132422839794679869317452806213012032067524620384792552105656976297171588822561778752229301252789440694579256164616251101977705032747511147055057098901249145147766557657532796782693742302192538026703865752924281402429473537679058485589439774412039101254190625639041153133105605730918707394573948034087724173609280926927987927799162654862110814191532759330668549912951769502709099789827881498216962016823535242406963161876105938504073209300689655624487281746062193447763840493395976792146126659850170310426997745954907459692361190032116513132912598970845192470983435832478223519101801927405791111138687929448314741436403479174536583536897548659415058664364952705253455712533646713180390052372251999233540615226100646835543493400103608668733432524592698746402087884686750998439278137397396178513362381826263730696519722921361548668551367970000213033348216827392557403573097806689451652980301751243546773641860029271752333727354988420287937980468574687513107813204214282705613304582974802617486652393026809476643640524619901298308536218970266229258311630084901468616092612091938970124066961462792564691352836456653745825811592819823986110351411157091130952128849596877221159505880431505330962075697888900665331378914511948261203777094932085675490668120138197376170816948894789886519049318877168365518311938301800667457757311041659696915432246429736571350451598762476805637852376201393522732097069127794423305277980474506282760484685491991302877385450550073559903830436438086657088828305482058278887489215867469644806229855675441204575211222474237542666950248375669070511502715936439755396650563049527586012626494660696014506014849562492467016083151246549429126486538515997604202734216953214473073032609888584575001456542985637398101618747119569314214138692434359103971740287538249275901807387889860058639880245516262703155446232417753118826733825276355642671293142708991221631240266584100366125543138479555811293352831541626162860782833307387328954737181019480364179291574296449842705115279031616290585102832843016596718676879218242754922135281771693041561582167159323199278771043098687389259828313924104378518227321833494072975812109049624647783104881835285163360985086432336192848599760623469092641916643168953912168272553186154245342656663874599271006424150005496742148506796452691628245122854620433816497139622114649324951471602561592254094080367720728007924708731696244025285276755664968086591380588420418629237570159584747344742545711049540905487879913491578331320445963332852110280191637593970951456346621609130197218482934823944152011768051329760959608442026073210763501184223368917617932713161194520588931510356558668677514620352537498304525223517614582051218394255293695035580589755219022918377171787496811598474861806419279434605559614351599932407974636395671788847217563460490068942901785970532910161232823191733866241880525886794183356897634940703521114672054418977403679484993271697154592615170175978448158476027873907497329920209040948570711457806591612309995592163202018487089547792214901783876398257069970483626285925163949952257249285719497265398305476518042844900180194376795881541294895378679393966328592862898859900594682174032711421706624330998194632001381210528070779703288203532900297629511028529268202718905038419160742487296323888119975522554805062087008082527760032963501636184638766886448282560615484657979427180173659547983091508700234800198469626554392988905937027452593266782423889157612183008331302855886096141757085342305764269501989798323355717617569148673067129463443635367377746099610789849902299440555680146879329626230429820678324980970216435301610489718747990608755497067615954717549292259175599088827961275515407160221334724078180127165431839486627501949755205448732819157916563780770786077871734035292671156861094404050433283299913363176332729539614165943444215999828212680658500873897295594334738850468014006112248751683814820200118814530175095563461763657310282098867410897851030035499080382564453860992630451123700897976960721158459174073386107910442973371054385090751126507518761149825167036660386413641658232996191398887469518012138830091803875763116989508506708427723250963482202263340454657087750361042126896387751444444456612929054248971723828295677091885314973671418760986835105056052814381198268108677096710159515690110737360182436670417471415552328074756279520336281107989031637639779698178019019051359771717108938385453530947847907404342202679840300955153129944428667600466006675391344055107489355676311900535722915061502533446683920473790681069662058290001960423594182240751882019544150002966925275486664851414613399530604283822165519670031107869708212327142493321866074407621829553059512888550615706401641752067824480345345499656482415226295647492175421940883222829736701524332488295488293980572420195469471297500723650807958236064526363238072146803111026038695368054298363322805672890407556407576820435663374115688556531702945078866190506925169363210591443850733720805365874370791937278104573566895785218044809448567861859994959202198359403472090157225889781647418363412103130954341612913060416377380644730091144775800286298441406902932646074689863552279324521488213542083216825205393090752270477085389361803729566154773706929112898613244138857215796789916342393225438584487103049563769360446178319696336589215169734568732214079898433517707371362542602660267436896582001790470538535948487830456682429787675467014125392926988205007682425275313363764068896650585368179545168637323760428680282333181801229807196292549230325903437532311126928618507533667855552110991082854290093083818917179240718420410046461007453024106953302251054348903234102802988296531010693138107453145515671918325860020340335878416251892860174633777579794501021788869888218093213401876508058921428996391546563394108669838257681484561867898882639956892506509420909529224162730684895600268475108329889846686298081591805238435467044728045872871705080733746203613179156286126030760275557992100822149848449871394739845524727735769210986526937837984992193735527307380085133907896966802072922810485093748677882369161875448191815359489883326282496288943514817438000611232970887471808157066999363559142847592090329163604237912017008001705626295409129719084508089304586117149491468178830671391459171604448137041645700774275360601961714251943423751140860716426446909359567517670875790708226425341591931207194600569019985013100735896812527622236752794289329039750138752842010423682519092634852534654474729994604313335320894206255083022901970718838883049433533335503497478201580151834106079707231752693055255176737925209928725453324390667873253339363775610529791452166427758380132914387410460943132493607411381835992731950321276764479592458039566237205632505140803304026880450760810604518431984790470816557049442811186350498226787049015368020611344064399242448260045869577767775451413001775256278942474660741125725492974226247762955753717047442648375355745611645089182599906694226757850768032262426826534499096149013874324699872460369790850382634858773272096624785498285540413056506408289171097717178641323267759243490281072359542609180828218166619346702829126362876224817330868241464865615032779497179936350060560094420819608281370554608312780949752065197603856255388667359091875602201533117902045329127988846445698481624468663780581573499846045384081945237012539288597466613675247259964055082170505305116141549946547044305587517296864202320542953015383755949776157532474993254660540063186506415567008725902816920269932758559842854356213298072828071777639274654765174425399875640361178601460753118866848941943518832676343500550382096772808999856126322560401397260565646204053682915814763713079906911646651325817654989082345543570030636201234102703428398200317148978629423449252565676055577667496603258520281739132157609660466814041726373760336223615684631639398562836941256309150432411756476791130436625302665419515796139046953251913633470324329964916963427719855594353705225686418050058172783660800800749904897314633871508555499933511989010452309498255015652541881066391760193864999697604009726150369803403089998919083869487236499559061384500649179553759562532812549146954822756453788945428660673860479389217522111759671778120970006669468710519451257754422055030552273677696798737505538564750338274651571345354653019546001615717305576267497714867287459435170700630324445308834608003751650009761941216858113152889291333648292739793068918764651951931291760018459897800940848788917767462897752175519690532663749092440882180812589849811145725067171274207245630866455619914739934602896702699046339416756817287093364318813619169693895076870710670496515212171323050495255519433266428806449699773823033484854596281038814193525590615267396899194715299968491099346536232637423139418710721135234166342052308227630451350124883385748553392541868920062743501758105478569523432753542110211406901595073063304599524593990502833825027365479832102120829000625160467981983244354298099155353123003587625162859161601930032028830958743445461689125326638040560008993052547567578019425047219151289927976830829746877074188909437538944349545698110301981252860128858871306967045375669902223012713688625767965661163115660145721754238946370391500327391795039229840228096893636894161913627147754429922819780691550490320472355192094245057901884308866350849466161899283417957684909558539605466537126029379684289418244497827723934302873635150751013587564638436346084920477720866563953637799862076150238850508144134194530153298072580431940100646121635273210662603642916874264570853119196077189094027483857237376108344779400525110078669594277069931733569869846035435564469035761733452611594716571658442384016800753163223461119799477696533042654491542351621721610305380410497179854242984857859569509261901878091041313602950232751336111794891408708987378209483464864015224571509871217716948330006107504392371271388734668928390029665379959038996449178781292213738616055437745028421449021178745115042437193821147804086793205858399115663064219033115871354994771710948400512791891290851590191515218580514286219252926196467270774228050143149103095447552870227409829409486003058455431195426016854231634037191719730487127584458530360241152529054276203775139349633116667106314071722146462173127502427788176971610012227194753604085418691252876018050728085612814088447445656117143628279079878298920579289378533881331556273286796836993617338339188263039197036939800202360546050771363663736986159888670551331717946044084505180576252750777273245735725121997349412306444683595239212171019516318309763779931947470106936112228144503539183954251021381041051957989657002227206108855053400508367757364676240581708186067511591072834729705203000704662496830921048649912646267612370049808022104757722707404439577274007537383543114305244016676835565547767430160387704493920422282216357783341186707497925012177429353148472262159006220795075864330832419507369402011415143764967854106131381515709083792927337602937542184448530024324447626611757015966010729417580463767277783181528077838926913185872102965413218915234983894127949525453528678274101094601512061045859896877654939539256722917543339842931831369390033922787032706798680464692770316754541947618481909022215811020579975778292133390840766952393952743873326125110931237428868934072218026345611596503459733298607075710398865553626599081682052104055301950427337076196330057788318838374387049365980871955709050963534544685191199361038915533409534307067115160144525825771496215420405390686391206736449260874341225597812965858671247386559750714576195574100727767938361231008371186068187743823008917650047499755141795436784342342729330788220866448436864538355543440335698203593891484629503816185855293557384848124138197060904848024103420895174521413940631760963398913528808944364429290865093333865989687520539896389378688701264238704496621310858117168109782645436384501960291986729506801409399528776629830437293220520723233319592652333069567246927832440844910201505144735103066482057610414548829622284987502405390904544851580610785052146803896687257165709532179797792273749787554364502386375761204410439804212672255370488303112379786529830235484189824261120783664097259816712769614775830286786599957671911135018757639379886557063706632425465914053504463287936785546709968084849115104345940084976938963175732356517206332482999726331278732345222674566950156022660507578120225089903149539753558787729343388986439362030540070100874387562532139044955856053714060984109390851155291969787584110640338312885278887858391393232489461844002751252384891757410650561056123225356857445195228904349439508000345430868795855028886058394538772911617481669464293324807718184545307246250372553149629661396639824289270188989541961749773558860970915111219354123962102292234085593556447920964905972349877197721980176971565980015868258572355619026343120158256020721925061389181168777747934681986119011520516837238151465244839542833168690998769286692251423636037442555386389260002430388428257076992421342512721126968740612142951134753594720925275829337701399302044592674410950689793040431585815036263962993554201018239376883641516210703616625369123247742780965918256667701349840791628019750918691706149682666275929294445909893357164816556010389170099090271832696330029617751555792672098540105160164234704674033048569701980755337665156193311260739418381576088614967809757869872421523975565336865534680820744601357082844293685617830402957851131456469704178135000970530399916453750058340579678147193492104708660775844508370916242271745513992513616179439327771494196574789888235576458253545504436623481782651197156651555498476993580548961041613273083711755192317208789817851000162199330198614601875040785482506341824599730582000690976022901901635910876529143807139484340039871254618092903292202496544756571256488523889776892019041290371191901610014906003440015954126997921717932753939352460416004194801872175605705576747028285872475043604291760786820233518758484788136774664278003102109635572463579781044466919147124369218393750823240193702459727561160483913424562994066397154060545824938453783980884335622274289633846953083187360441449895928280820473292727461810067630613012069269640046264695882295903982070859584014128570671941971652721524212610362464405917555135933969189974155282337402531408691048755589603602571791072679175328128372489475002386889494585719179914055752840988492945808541008820553725433933031073856474138749107897356833065626793107432420949508561131920688427134227608158412780430866730421652696891987780449286383710280108757521550480767894296816586733805348926084406522507030070807156156105206230382625842996883603459357276203898497282822306385039380672184776739457415245485989027679183539492053677504189277428907832812210643439531079524873465443618049721776719379060258414176109237888196105608886909412097455231085959979221006406977707208273391972457027086856065051442244475856613189707294084009836079438092568735508354490951250712776595587559771508746261668756702920003949449784768448778828295545647553316197491588507714905523216415441355080304069565801921129676351206237051047753181012885534629071086106613088264365966271649063946952694346882505646461661099761637040046397204568719788214601253202039477418665092073074216946827963215443240372626968671707348395624020899896099820944224489519617631849762193925458127247559983577739919548501590627829352805183589765400108482125726904510982063221932047841919297686235893644676010273679235553220027524443949951899894929429049641608540678899225811818919966890792121177719997732130447520393723768312723263380924357904057032174859228229519773754539206199869145450010684893694049537254899648502539271831784904253704975496334504956842157688587900920931407734973451065382977370850737130974951946837008738637987156407882474872524344717277664453856477260392515186582699666786172960975526514997582239610369560002429565821734793414427859080795868936373222961051792282460662749531374236299340564459311546456716235691250195873291007610843677250823870876172808115055520638730393070687409662811225092129204818251847417238756529781867301088240678121145030281119770301327460258335309949423762658364222556787501086631619665861163415429819712208464367234151341098636692675186936185356917648095428372299859693430465729157525597227251741682924846273230850616104192853835590454571584853752234308475262063150850623271371421553318109801128953811299036916439586595179988624541556802293059810329911022502448808671633094028740039182520559766224614534054246966550643232011212724129533487353615712414709740475318530180020133445496329754788617894926821253870751647235742616256810855111378203289296774818167831892929622305560443735238294382665485988840643440188707538991973650643530954533686778466748101243890604640924696525390028975161540766507555143812786008138647594807294276806648148980039563382886413449487127636374834996939733540673460855512271055162177771545179368453230861635020478729496237367660500212789006576268759704464844989555047546076210994174713619492196600097643634389192995843370509605048635208120842434759022435645800998047928153767403557209600948037703292996261561159382142867615732143544498474235544582328081921990753200425503374601613670083756722531246992843511909564469868494322786941845061459896611687142543577981046363938574536565816635674764067175155808045452739515458350837738596362660156627461124014730173155780450341595860875182460705287821248780009775776137256403008404090634659343620227090288172340302584323095479815937454889485753527967945204183251807062852347160396103218137894716835951762569293121659744707377022916811247374218377467835655374644066252902527382988743117332089271637872309226487013744074437839251486610205453009543809347934686010452937096932484290082034971599417845488411364864031863289803536174054199716792933778670078195236095907131980983644185432559797886938844962234150749431069724742055470213528268704585744168738481192335355868319236397675781018976305263714741139722213088793050989173625526625829749337585334953846701112748046172340287485357424537755195467645784624606786469872796498187777683126040314791840401052622195605430917199827893768389725184588022331221438548441374999256063883209743663959180252575826688407698932230151199137043129950290450380624986576419269437631898365892687914439217824044674918884573422327724487691068297408329261946415199619017492685508420333449035510255561108420403602676730700272894524271120325519258903287804157029914136629646833245525465102746700680513413490039383623955205158551865123117239963822623165649763130289304357401616328140508866901273710558711275227168811427824872415493137099217463069906926838806944798024901278932506040180480507720444327548546056608476313512251022112856097193106070000832734137254688004067448002269116736883257254167916483856683152229993261684463407227298374994968312590676194912308305190574822195075635832547035334887071125032607458235957315771230221833073192688324063890291424427410245258632272444380172777893126108117547093483072075675477781293133047058218531898452161764557603340868497512639596261458516844855757344989000408346501702620352081659643851580782054372348968525956189728956482488935857769356544097833968481464082228589737299692689876967956548628501717675162022738306863741999963975935466805300135677236958577476615046385414051751015687005685257688993519787633580575052877358678598100876579134961849234611179935195205400363972288806215532765408228918551129630408690583981897462432017406982168955023241832525973342348955423986556138312564035668697805324018152892940668570002087297623475157396253725622903549069114323440830939024654750370972887601977621622060477839130935731924689865746249463918791113369857417179735172340201123693783374878195833842273659557999604083564385955625771792842555106418608070442280074740775566680749725814295369464788330834985914191132341690756125131235478381275344138973609218721686818420444044169541225494905786807472291814011979615625243430215321286935246881107517661182861157606252733714698278511857489635861265668597537735475245003415623899338188658606933773009455453587317055491121467362082559699681193352981787587284813231155085635260201952169684875816143192492505964579787931216629713131418329552390963790308152019814932264624861796881109856234058434919119239403704033506548223345846659183321473173690541826046699980766009512447840477367617512214428410357381396510883093219235430589505913069499700817463542424680595251290849373610147471818584710339757849570599541495332743675256268561258729702317885262543727102769369942986356515767640235469861178443399908857052551952685380379359574546475713703865188041273619482591357185217480871020809575455958489212206932810238721637079513652129017701789603543593913507646335746638575752005176058762606066482453862452099254957074641445753478512393455328959173752548231047233715891122287425931327461852422600423334621694622003006996123064982430193037695754819832813777489806543112748629257549345501280347267435564909628342849002791915268625586451093459859079853505262878690673337094587964372635936716561151634958477809548702094164112740171895419672957437042797669307656612924035626322079410479422604665836400930996354908613837441612668985341859964719105320142127017020171877687006321687757975236331595642100342709508530629679812680102861923033440652478006987558345351330331997977225162068195725321499757466959545818311748822362586162529467510747242141665699927986407206085597417147078446820960715739608190211793789257107285120815830285740588809161888688040449783337909160830112977620746701783911902950443917458867013891431702467048845448965398743151534627315448599351351518385352483045583810857231780742413749328809689933454483832312111005685362690109000483576019951021984557354839665313260841563306043483736246328736908299385091444798767907960933093927344810277684475917269761948549177106035781477498965313621323870059684960926007780240036377315817701879476007007436305497110568519691153930550164278255385594530842209679974284208647745226851115642874202532287021828211502549511101687625259528495324200788976918888163694576264616117800534622841809598853273861461821072939284115446674757048166602395809921890840794954342821598580473969689737147468714429621685658607408426158633761000595549015691761835339617659753233930651618236434259585811824543515475534974733461890566835061279643456463963414801584134324263574172751830530986594315707610352069729828949492832234642896583060040326929703032256597471644777165528237712671213532543164220590928405918371062955333478423010560067271175316882790755135649598444015694141697862506090217099056884489349814470448395921483979450539115407769083399835724310683573643092206283756435601476264276876197233227289132270229340180298163466367295410195467640364002350045078557584513045028916073592447528332716380588700135633295084989238478034343739319154324547737296915783980443558525726540558226795189872917499629982384574532570455771686297452444725171527820972780747803938948940856489292780743274745716592891650907657465569560383075365709083306501994807135611090740157952307677124160700771001177024316134009804976581367194737502574696598899213463085161265477470230052603363969678521109366245796528951602230024974891306712914116464997653777634830610135630024468067571697839089913603620731951300024729483217611729940753521785994652965336772697695551366366049732665198091459850210954700002737455507370732586513372255386531548223688493505538353888500120460333670983123919224280937881028485686147528642093933502238490509205042060620468347337129254999211700925823239899795450026514407784953014620301037259877962038766668037085956414112396925956261375509772714301723778347562425461982522728168584221831202792359693858234608043708302744645023836669652085352875903429824266253735822968058773393311892215660379551956868977896496794807331714036301697099801542166990871853710579943736998470342316116744434279168843916851565921822693864594236244299150465098901843368281063194254501684742491346844960245650553354743859128615111579369953887546002912411676894499172232034017285507504051834262303651952525170337578844934949364101668757697057780953977794004350184853416712534626170979059224000027682023799441996966905498854841445992400050768773991879742806499364980468862485730188102255367116635087527916497072005487410362277594676178924385332940164910908052262215994191800744739725006492373851402792042554504075715562312081412416455304180527823564113433216765256451014176052542095802954532991238054656212706197340383167984188255087115338691273596690107873505672559205500438257797748260274182338660878276005387128915826869229458141533927867243969736932451261876934081913804318991978943011287753576482402359152182698834140183983973256167029120827346964466778244456402902309911674549025416427634186841419649434432971891004601008401584956169297324647759536163504212955597017657501210540793197094164275311327684176077670089024334904264225690300304986348257550270058370280378798427566680985919984655955826831434249530321731644203505448113605445769886350929103408522373492293313973624396888573125498034590306788148335770531892448266009284645979934120499675176825200804731593648772399749099859462092445664014125236013495464003054076426958729963484668183702151362561043498165280478978498912053619411138308742383875678444734938000500512724098389970170695787653888550580734621301636118611024681728775442867984296690296803450966410088606781341206532168539270909549691032401073125173386163939533120844984465979060187664524569988671268549802759812067877397980849957681609780349283502144272506606678946727298621880444343602271292061162859077059576355428615020262053864102826636096812169164873479347249567972057066905304525872994507950253658118100943078627345315890725402620631211307917998684382066426434103808404527545088686775193063392692031892306951330367013075412634910557386018859062518513418534005960463523739674496155449903581762615246007085435257632433057533599358353849884183637896314808976334378785808448971755658606651287381953699220709183046028992897384285705977023051034627803200971290898451170447424583972890832830319021928673649613310312627840921860192888208687979933857126211188393844770733492944829170888499269264078182294078591732023517081419651241668656072941477502671210897859084478795380176848234406727654424449578116019345818168861389466544764393936825002606741214697842982121533554449967814999837088653792557351251753446995936149764459337388088991847616346209469363783390664500508903092080219125224653143394550999603762143832454142826259202666979311644729879227697334934677551576862631222800336870933928941973445098121746298258496056591026326855854730402154140262799651245378524743382311100913061336717893232762970327500585412324069788143836640259642305480877614080589180968521725829870580735775333212910428709200358128033386233992349006192165071225315387939345106945787529975785620376374763572126267009415251542720754553148475831711621907617538896252488374080664788560938339917463380126096778939130763217751553896997212419729520512623545059350091159144946151801095875130979236091488142265700579425256183855815873775542343330002716962711061599756014348574798711857540097141693193809736969168131077882645788336643555118289717112871456775148235378874347543620501353641065484598998307330919151387711496199602535341240958728063815254971522426205124719655036975764556574093267193244386991065286810897217197710820558486611577936273355576575506910848066634553975262157700709145904355918427284993855450320125562794912650326774824712441009710857843672268870385269970918612752659619133319296631305692011456665194066280459809793769709184825557178417645176819800993037579023060394993676372116601120910920433410950947625527957256114895304704570321001447189586305607480213080326971852400171237550600795834827784653954707491424248773222266188139607060265434593698067572288211055617344642925584727395092896565147970047079476042713002616231262865618325910091505700931151873710289713799181680929470932084382686903382641619194071785848448866152794982117173532395614542211968418043310120234710655690563140512780347295023899988014063799874851846174621525233558891603996811201352991767221010146187431249835882215362448971893686191957174967489377029395582738990573726371455183301107354285714000730417958029531664471427137090882522357795551507216920162893228536679213837489242712147061509854958993210733870923284119683336202245599989313263773760260839700695312331607159851625678850161062682164140989028323613603022980315069349631417964409104282097031646566073606459758452511487661378404764432683546416705912297609308735687081687384242384962257432652247397514066759143739851418703754204343986653052921598476349871647467817957262501308222539981263544765353654595086918179402305951743378430802478615811582999320340262533310775946290421419513706647401942495404365550268627224421058365459148382836187435936646004663358210960697286767874306681950987859367182326671394702571996599044879137662375839547278502844634536469999974690568846826220462736765785749213188461615659654387638399130735988660775194631022413253945607390128980249196648046984754187209795374755760948742176670460835685153561418506343948309496294334297923522295608415504834526360317971930628529798228492371561753086608927315026725679911625100569853755344879671756883726772367756290986569743015821433676310527409804473096029252600226407428953286779834520184172920278655380917666349085237405008111199067335076351990917683103505730333339814567717850738399654163879221065423889650567027947741010621151694552457226588607526700988576528392351526392276814824086052092657716886820179835622990486524947106366738014855870900262500635688426357533673417213876324649546821905691459880621999834891811133118014278638115896593176959493215053451030081732593781821453346969609349487010767414590989770259548942382780412431077329880768110485896101981714525047052927524007348634395379481585238137917058455823278168062857536868177445324918827086966280557324289592775440631647925546729862542850409836827688530479270535805966338495019383728853107371874281994088110449743191121923664221733498952935809627381858879988739042847055510646067514377818421687216570079045653991868346109096454301402169382463146618432497561674564688784958309110369489946541889145490593171815847029366947052089397763592681556775958120224488593769653442243855945514476107434624151352434132376826401305405480010979766702313806860904906331705555984374934701264115147041908527392315635342097857699990365188778687396149132841558028045412551002511448726264686806430853339677531418910115905920463014681717338285349611647513892607368044211372494080189579202000054026689049333688169378849993247435178856660368530395168201842467504264930582140189117618557429545507767884588126548665798985552238558214258550676264185500480579009470836240388276930704760406025604203221730169874981569237307230722308125094776830670173224619856832588578060054654717467322992944013646833990421365370783051426124631559371995250225072309019554886424758780162775149062489091869326300226171918776057522666168710940791970019207540981854290447252732677954336962014702361530235910870596736567880609500315443773287646091316081925205427993392189260290138522927649710475826802792037448163794861979074993121463406337328872758935064251534020475796132677903766028929390707718955535126318718737689104948628345129932835818726436748077658936429809504958675756573824512564637060107207253555919197092963752443455904737281015928691988655475976555681640137741344652567483608041984004847335400430559597859925707827525073758276213246010312140483975561084853290448716381214310266175510562479579332918111344409460716031423267886135865933675680065665632610947630634398526110855657224099546340297176790788336540234940940504209302244109073964195265226963306227580064706345863325906232016429670434738478632614504136380628002769034996770076414006774137955019317549569508056414788423537620109190031967725654268380811556282869278240543386156968468430653307673529192814360989364398534155824609749717036521535903867522569398791777302242069827295439839002910063788661009634643233121872925993621781807962720640198626687741998287848415010322848034300903156025731494134017389966939722206555255608464569642060118504609705413348154655882288062907227282209393595155313319990952312951155874769643963776437934894028652669570243776417080258178098690110316673690183096566377341959773685535372913362471032579710970089569322422645232873570102976622347697614583290487897435876776000932362357441750580598217441128214331175079756573440882840849637261716445493970834438626658822602332656212741455035677011529345291680137460122043493566678341969558033491494933912886048207430991929587025475534172862184872705526017254422097775887941500347597087262381424347726663244783057649533495853242505202772467037896510586461299644509171823767543233652661305150260807917303125473906699445395948560976781452318803794667975785640812040891179304691795867372174342436679764288248010206177781176442392430958776525062916327344754995708270217382475216122149529493942766013126163924447930186033050074663412962754569132892170845016563646691478227615616212550408136168591247136265826569063215774727625947523909879450101089318345828560037797989898595489394975574155467768851059132006547208635805234911802497336618868312756248796447640791588902103960661360492316243647979153814953940265605392482242245930920330462809028678856978737424043251240605019997891721958463295144056550570903447309854294171330270930560836110663072427357453703473009552502984505582020397537968231751994105441371214288694856742301700534221703475878082105881712235346433121243439523882098790739264596270588481793513945579260276816285319444289838889356188896270036032430887120614524828968879225528807238023213015476216735612633862697893602193148782233862654340218034822074796762720840484547410838099066100507542842642191146999292307906851044797596847369742354284700698720764816880441980422851992981687651292687094563678927841904772402821798417052162922695081769887087932233826667564769182538661074747264716729067975244797906238557901765830360729986590803429427479874131955301253743157636590037136982697259326137077928345278308644925833479586389847644604939013907098630890117572751805818797455016252104924308042057683602976224538716146738082863919234802674250886662257877693673432816068256247032035911005212308436230052240936239773861220312555621799305983117312782716761258977795488686729419583685571133372489789808160978079457192996066894818585486209372446574656584361704703157411377948945728061806015775767680914434246961712248007953482279770489574491491918026614158558800797304747635769685953202008658567822190925772144807401130091686179730852354882736444168504365829634808732206778422221475348487860794027629816938978372752442668460207457720411289360367407051632245905742830670592655739421994148737151040680887045164312226661854414321310226230183511932962882108357239399468118928500445958393527578124875168146711132664773466496893199287749076880979711118860437538004409913980048128245966374783896617847541559884529472339723362314093814854336667652103774815446946497904350189141313357629705719584272047631694025597089412104736582020057964958634337628581947174426607565128496814146292000924847775459706912040409536227723031839840505130334937983507899863851809267935555355824894586295741362067711482603728905950911195575153320835496156467209254106007180249158187261734795128072294815782729556976807307733510802993402919228029216357505187387707389244772533012412125522145045697917787083429938180739191562095191514003627605419692368959953754766949553722183391473142995347240998204846126899016993766050801272489569924884786399955397733508456757408831602661309333379666821845559865692548540944541665441252785435471642091076152511317755719252099543809871707436367628374618215126445749129070298368251016938337720463121265886687941186277946853025760779241234808386930493272565961940637940329092564440701018086420530566846912781291310493919704131808887311368257874546417905590479975462857865533051082244661117427560158279148994036916431228154678542169382266900755440647141913813744220092551920278918757252946895441731724362251460199756164785558383018272544016614174177492902458976438496357576376408383762211281387899886503698440500798640789251174893289363196217768894675194935987569161679414080412747465068879350786598848654300536514284750177617702683960052708297767691739237196564445459002352872837153779183731323839949867349737961900034093312647623182275745963196800071757278367511730638571753085038814652881362376731290460848162536370720840481505693125601244299147772642916463173256647593005033628486342849791925670300732939937756469748789248817253546126901109576043084140438554919134140456024189680736353591430771357690967445683522300506641630749593402887265942849614724764212135759060589544331180727769043621151735461382094515294788524205767290342275451867814213762519928923463304459957411536225503565237994845107378183552195729798834632963055505926039546311765015700242292581741282516364311571103446317477597302538615331235159269708941509035543436820385168152265963625261597498901403495110487237903228336504702868613376674218279899216926423185370993968958765423733801621671267405274307310801241326438125993427729119394749660994966516665034513516350611912838651497567645363304658034882835028535931430744472594511242148754975816838724643617293808589423995395852997150373778812999690650873761242643758589547846522976182109982599398367560801204299837506238602230268695055028070475215447080893282007384483917469554862178868525290613394036721157678818085029369093718320348444948408185546486036247680022600492445642656303003885780216747962414931151403895207073121299823245281416118283195110033495215716620285950264852290745211585515682989007343206560088498682870856245204213892624139993428186364306177052477017504082697614447693026291652051031205647875046164774803479139835302895879111781942255925009088756325036354858242526562678217166555666249350302905946233058406795075570779719094293298390412193614861924869115297215627542796432649996459562397087219048384661000171466713211988706550056264481132853687743536588830963694721543281812054070535539947394879416887363502068054145379127491499592972050097267456522298417107257094356346951151307107785814157364591678967847923637977430727506420511182868445222554985428941198057657628015062366948235485819347988178657356588953648957584995177563771935083955428202763061410746370812757437872602787877469482649116548418842626715788992861793991348998903152412471622698150790594373630796248028787107212892020086741625833570714740281511524298758768365934590760368942710581697019470568593575905205442109353984923262246394380315906558254294632476586267968330232024279555406086697769723348164202002667411973344576027576450796338026461603428016792746775766926527883778224951373472800011127711408488293924283200963666189162923288215714464850327620274405711845673022173777606625410037142038184823869884688323917664531749225965396459282036690062225144156727368384444076889128680483813354370251054484639571691720221368057142901522428921228994805617811828349394074464387293071210085979999334969794906494834687100531664608676970809471515180232807707551846002852586146575703955355597244256756999452007412307460888715564246057929400800730050115264284183470429267084400230224224682900957557189096610724258571456607250785642062719526649335774170061036073533625911183167488760277963978475521313900157856157581615166344243610485000240054880226672234490394007147474405931161961804673992054719216723979196314627466917614942705413542635133040344826420055015064118052548976435171746999533824361904162266618697317503492456830327213895263666447031585434285917267776043695055239862093000029344421106238062301197203183937130644313756042267839367727300003860841171553878811877697019787049597342559455837152730333594059408487284057791696517869155846233191218076497771342618748189567351586963394668761267566597314968542187527694736497969215764465609488645076859686637622057166251881690391725927550454740090850065709346965104758906594974766425830776120577762738114842304646736541807980007284393394112832607721312300232245998912875192256327110813927865823587034411964039819563324951896890003627720486964328818930305096718793521652375167287970303928432938028164718901856238696045501399625148340769577756460150272794375452578201482806290545628144791156929508250483668630062298061499636987350057515591511691199941841551611661844067588513026038170215127022646867362780120309705713281667900068186150699995634835509199411673653649800706014226728214765776603869570889841608316682534185563271398911379539362927259610477666769833673114321275561031070629203892779966398143876098476655451282179400337153004026292241575401570979047465531998526946039610161280291256275664598034142250417772240068256549932068311403131188201506776380419201723770220496434786261837276179647413982328710118459211451014507942645113453028503675955308347627790386957506814204992204426059663811990314442651225876901021025366024320507372736255314874396691909911321221394168447064368551621067184011144785649091643973441945605164597410923714793444625750138564591450616271449996861899438573181925975189271773341606615372414525123066769618861345855172917394001388267702693308558371980048708014586067776659421685295384470263268200185449491637991657519110490701424116493191626628079749492004517157804929450560214546732196981103540372626682800901513196912706733595658482526470276431332541441263922525094881783695976971909546238596450139592741487762929200078541324502381599056970712371581151055816967004355085888202045195577057418542911473146969749629872461941023012268182898435350083034445317387242016348816844631483139052699706218643698715474750307398787735813217439617883504675094197187870380560103642023345200108674396594109925566392721064401756685899660698639652003039455460363431878224556542869186389863254713692271817967430070677086900700720901966552370519093233751306174911816454842854932839960289185516589311228734332071021685152002943549822120417511471411894281478297562688620961353866981269157217428292355170654795745776840575445898888905621933083019265795997836981126613410682009333342700695579133733879950823131908234270847516505282414924383868661565511610859391905443175554106068882980564104246538802077816025345935714478739209739252150330237415633653048846596346295464364563773860275432106940902264580364536370220575849709251532037510602886227813594432589396139486545334743205020440595481502669605245647136620217252087917623498871141264186145162702916057361498889815865417320387317012768031788344206242667969506352842126757032383110918626970725363102386853289047565612446902959095278489166320908898913710083844310838817321918628462076448377410606454175393160053587010325033193451485893303121647317655112831135223605930858509162247881814030806803404945368810801046249850101896618358555756642005326246116324698851511096875587618111650035893319780896057487017683796570010200439778018446680646455764596901295970356250323923709417835968660144930316312080014862897354136198871293313402163091554692770129101788875369429408119471939335366896561955582536989932199436566603210526593369039128759322607138205492711832393559513198081110910867792326586204100370118594331505936338318615478913652889003233192003336378056165138188533582035414629975576588018593123399049853890803904756259423251788495259612718270374158359280441401148747378437641138123419307857013267936150574321641966963571217623008436507646618635264441707396874073955982854873980729553311427858110892007913484822169563808028035848776170725128404014973081937424797237975240457265038685176901134821121116303217275533819765493313239193935098788869687875421431839561101097563268963441083404047866020040138283556828467317961877696617373033584286081001833092820192236281844550833948453076241338003861705131968742342978504299777947598594304157472511978505947059751495762219567761558405201726207651351085968119331660414378535518866822781683599377083948068704180340557866496412632072137889560082499005026753393485583724188920411844994596504544367510327346635603539757278563371105656352124425472043708861342059643364921900889923208521759883328425104516034301561594052407504918008049522885169069131299566474530709327695476393655276414883074796481052270855781020347097704734227112487536820229537548150737560569158334254841543048266688157933533525412356816236027208456289783152898251653613888251298084878244874807949784534508058793215880202305143385022365060876930843942156578152140835508962962732035075300316818238456953221009460360476463734350897475735484315514132266700017169086959794219086365447306969726403781104474208318997637270299000415150332750141234473358626295893597202107813594977750034252226448894971244063226144947897746673689761899446457836743449516844502465996758279207164923674604682339781881617336257384555416509881925840679050009882129725317153011285312442749165521057470638570189508702375146225965505032489066724595131295884535637862170995807629736665172382783860266609292204732115706393996870239169763073734749367444810054975198884685487175408942831879320970302565740174893262810950325252323536030575454837676837796972034466375037140765044321329530981587499007167372038527874935426314364022983124694566186568558099813422547377907216554002762822047423744615534315819946665328575624318813151444701695988467369270268119899070733196652747000529796667125672445112456862330283114477536064029148388820167277153987215865264457169106394780022900700223040061785437140785092858791324217044854426021496334035686895680311289783176522048813310900967584329120612749406185332629537424150844826979116286674660670595419709034787323463092016864906165102157204216516274920071716405666080721625192080448997875961493482629973192303388491140437443189296352631705102991754885559678193679928313511395522946528575746049372923253381280186446330046657985170437227599278994609310998273126333627181025242091864268109891433510156650795267294531222468699200657271775029494445161539689898780239618196635069443115631987897359728818896144344814232734161395077839137462801472261319548417410269340247714166487599431665002391863909920861041855536475807391619586242009221188804213454719938630594816076653629675293558298820402837790830071968680022798538928071486553574360552669495439866393451451120693914285209935981040025935423760001095459036282934570276515966073232000238697296130178689771575530739131535705599902851101964882705768777899168420647748749961287675607705810445865803377327162858603071064984795238392273443705349782510352777974096217126398409074535825519258727455946160858679850608149176611470215774235095044141673226945234707908981424775436898152512427359430189261785953808556690383615041802447564725843576946235417516785656992821221462954184398504967203002522806636250287432297703538187947754124131976811964556019801502897408612143002720904785777864498372074931937432053974198227081690528520084750514609588029700405805470962847152709482819108835597770879943287408917869822914674873093240205788895564490288129103267480713785618308419883001319884418335232707270718987833471312229470182556652370200190710952427960088947652899416344829894076387660519921015725644040503542166848981075677275541957843451376169667710647359177957882046745054470240807207672925960571938314862359208164477718652441154002321461507335386494519906989343370804842422065648869810998150054594639028085997221984868091013471792238307516388342346769478502267665217911612353206902173887937593748837481558445235319076507707403193083265574690586577707145855021298051287574772298901490769307917941656232980566655728654602118937898335994181496414058182923147010235285279774259794742710783954537309868472128409488936863845302032942412611707629302371506696873564798470465658341898565452371346811959078978212133398373911828976936066871057380324751278459076186365592793363360378241489176066704241535238901025325340036700905884411271633614990667271705218101468822545767868660508964268067008377702035864540936181797275178906405910608149268791513843062420785908821476835814120691640286147335251449223805389627446712179626625956504843111347435447289297445848728361474540050852928770244072574842743155621651190824450402569796595112080352774781887794863095776797224018367286414546897913821681134013152707228283349622149195220009883220630436169823290307419568114281615327358488958578877031608771938281124616858559308005025192585937743560287118361610645653583483241863087542366786176434948106001362334569159026629409346347303858952566801595045416992973495835475828156583967107345726414823689333113215562882314124363970175342421782720500214611858876108517171731122079703003589928144360081450240391423595027468312938874220427080436683869121781471612078134639731479117979675654618939011922281525027092694438519848035851100569493553963649627177050330448542520946110033546602229513554543970653050168738616806886870941529870801745710076549401674870328221635154232654683430907577518044426639615523658985877329866294908052612538157664412073770850441523195067665027421723490186839296978361125840842052722323448397939601559641273159852892810750593880758168985305632904037633868042710214581849079431366604843794417244144511107279585094196544631576925154067240176938803767563387858779232550590523102359713584411762359054934023378513736230086677453335917009928624688312660325895419254775119498715489192147618557000865395913136498089309231820961233831605890949234607616507032698086540437814397174613688960548944886603121125577942214398174253728727050691015699355672720097161915726401597891487893501763908729880706626338967544705262605849086552630631485229892335045898775193804936424984937399631485744644929300320930349485220082497300442042552448137323160267846999632502142419570251791423943169427552541218425055420759037415395310313258412645508396987307179791486598894842592588409088732147592676282345133050178036289545547278607551957680806031301108322680501404174223777134855041019419286094212316081797528185013882658836660998657266771833592655068520631020584606060040850838025680857684471205927217974580808236033534101474400840453842434371446334409917061521815447703053300537511755279092793084441160158379244416056703275875478289613902413703096477774087003786584843021827630505004641420074234144765396892081049063474566022131876617238684498484381258467687199533416394913369355896138379265507896954202782667127354450936827607418800089090911049516110704835195677302733955775054760482660951650479124251039654834847128036932844184915739235595809654161340434257398905116192835905885959015207070226362752949177609416350078625849601519220758112564598250470647623863433276395295799815455047972633778620393400572860582205595714473385648318865810184545870140030841795301607342225452811227198452496537135344841565628947661240785854050840923426110336981634107486521788681999658632474493730662204875798417339587949935916100984535692987448300841362130434129764272316757474680086343129794791409152379006068102991829850738730455080301039150254675513235784689615190963173246491291384243797038767508233073495462420786713037336293184875711124391121409421266806700340228116804716422184090956841053784149610096267260734598409934870382388451624155655370349723778006260478823048543629028171587768259322762515735891431041811335539912104815839242022210738569380154961929281555253462758416952441441626553900390128687720465759979954308704168789169148613466533724888989455740309980594961402967700320738055355876178314474868952615768501122215152916648942109529161914500674221437809657524508678521819955627317415917928377447459072171974100270112528295582768208280585886587499297123039363418323578496978866610293645204235555031561999341512312688931264574335317062293633095539103457986738526477152348824775485006250973119774188588926152597947658116805908493688488653098271555698285940765596450281515419098112586287510620497317609007601361694371687917017508386087436049910667009694691808400713235135120209909251446412298051896479681706206367675219560888187984650116022752602929297563904939438561938934865963179338205518269282931662964213605569894011297265605846291777840671848580342857499460594827654376064524027185626748164255585182019271473920033921000097994034063772000778620982333192340990741683944656312052332776965522740161028781770652168995367347376917712390888388206842791109076536110664775974578008203573950673353969364522911979720319394586920916972702130279603412164256614196533834977240410834769078205634782702669441549331795126842217777620362322886530243022379282718310065947979481678196216657515093946203555527238300409004134722275392688682614358090102626438696781907294169896914221529304165137188082990403905298933875725916558945833819796605323491534114456326861180337631151907871429932335476361887353187400478253677522590151813704136446405125505189579541801790572390845072656845814489636211299011167555696311119305267522054512918055117035301646561382627011974920138923743573447070928967858148427619331173968604739869400722080904287894958414324020694918999774524191134411510728180809642623222344569043679288689384101735629812461952197893789496746707487324037080067217618956009603114011486759450794639139261011566064318003694411492935031557185330226045365552651156445429973682249508230228122329448217939783365879880087407550021844593211501997827659025206641110532427471815971683292328304484527818365446225506515145945537367614330865349360750924003646456539868588680764177152607495179922727346260195461168100155219641596011687829283783213527895970616318179508029909331444156386292055969113834728595182873103121761980090355119023460382584641753061507516827403660941187086166542403347767124917136927960056533876860721966595091607368929635296138238125029431973690439086970241999665361774214699085214359110352510665800634998093666902796264037089906233753836154201765862754374848991046877362460111705537610619826014264726197437669717583318434678880796433149035847851821652150863279746465920028030565091310679999140042721764722759881711562685873889315153800934955992410973346058119566089929244802682023262976055297980783654973466893763581879425641781500032156118412959451217338570122895600105235938748712837862692565256193692154236495423400007472661099032884269421145768531726728917546715465330754440988272565668284510600259981515053557237563873233438362613563227321652041588875377662752355350079105109132398913788041734497037245372466963065631411576865333656454068750758453249384833856976407923755187036833968125637532297569026396044705284211186499306019782249642011581107133328767836171071816431218636246501226133915988051957710770149346098012271187001859657611627516213013170306086462416828907284819342113807754592689638307132148049826029642827726723495907081608333290285321960283630012099024742128981466395421912976134805906909234093071989819291521670370103229943452861482113975306954717487844933114915578691119050721101457957603579857960233267254431774803793293520520971579250214553546736520245794507487407798713509042464914353861810974862594252593475727408803426724649024892583804247691707474046666201567564049527196152481670777274123536103297670750496560894611823874832775364304880797566067974033603125452406932487696646996948816137537065884357028462538831700719127823628939531495236345778368374380565435824681085559268489938849569877017013483956315953604912001800127884401870830281588217552139964690016369722777083844246269583980952720020939219920223426480045144648417345567493188469395423642974892408680945401067774106556893098862401647165563804035400685849826443170551032582358384946355322320419461705429076349040516765976698077287643735341158606435666028495244248295868971216793932418537846756981849696194341997410559214439254250379642381427290215608769689006644539400528601473899984017612884157714978285901234444518331715829189295945595155442115074272228989064314557620179768975562913444832060784042619686266127456190749309724504905267592980058133575677559904118889564315988995739441360460696492923795778983718567781945218517094920163965276736925307242181974635775392288343954095989052419452683422363649615349794401854522337486189885607091105421720780879739780277575039288789547649149953913657408986317537090347103363153708904095284182517191147999879891079876892325302910954191208407662540287576192614236042598654271638702824653848069177586807042415826354497429223103519010643422416436282603192882157294368854445223724841227326564727871113168200199330110691794498988009161333105443715253265924192170857959790382810596258564890860961581340581360913266323804020806675799963006469508153648092010321254477950631760568494205904210257519783749035497793291847797793284445932104906312419552430822039516168856591658675044490810861890799039196076332221923155423925918869563309106110997063303486739243857216948226900243975729951619647177459138746170874978382801171977695682965433709918172745278406276242728562673818140189223894621261992442321606803923506154490690751717666448803278113767956691620375761325528272322124247204472355480898816956215431976020853713987264541781742952660688744033448371070646410418111083306598717380613195515227642803685716037367371824845848941687255167362017117974337841085832730890641430089246374479248103042740601353749235184594536497590341142515979075395696022763797721863152450813450136869130184939121625184061523172866100559063097200259354369113869759156267971824667746036715772221219738045890941927670724074134099017143296054457869194100489202893651687554127297979591597926116565625076472865819233403214770014151449749988169904513655503081034196654961486298717935988399641151047142141541209774588911838168273318428788200254352068364985900922875837709305482225868167963436044634397999436043526060282795740990124202519333040309940890208688829192372616027581585565061388097812535612549895163774042083978900444769629979628925847500006068491268389719264100818329889737060963541699604313471255135230578250624118368251664132498556924206604907299871019543787333146884790406324854767434828829130998442984232110808245021891050784637185884750168304042604350511014979343275818546785791804496128662265329166823880492969204669406241436898736228994354667564204338786979709382185875894747205293891724650219628198752962704187291051303904235476876215290313170222069812666421709217833051234253428537466111653116185512199727710088708320160183265615862096521157203023129794091294011093363019407002568119510565744202991103254713926197945533495002218502062767144645304258020116552592376216368186207907366012897329337979161394775625962680594456476579519319892887560813186760324258459543859645503525306773624590121727350446677134400131786343572987043117911086477895881428511577169053503909582762559814112204015520684991152010040831479986004696039353191630949798741530251285498572640519786614016783360448405919364749663656527976631414113001117108010488672811941082772222617103833364487247419824228079861623753174988874647566472057556882948342531312173955419035866682410740354669686603606090271822959403320842426119743708877314579181108791422563710763839107994005194809641013478721354750780508056349876172350977110280581320296562505312904595666995039991040308430993622212355507325395879281860980261836982787796005739559508143278085507159452150690593197620775580125618991245200469364262209774678103262005144482581368826004905271221670133227377621636733360433768852165179324262564352064830007793259739312561879894315674077135652949233010366548554194761206254647670932760403488016319267903284633219856032293929272389510032873063394535364819985371438307199588516660541391099503198991833142438764774919018600860209618787236842901773400710639340092095240159684815686669005060827687528914907627386562816737662846010495747265652334186829994551521442640205553022774467278144784649788501220087383603456862191455902413921083693806266258518222286348414713755488248304263718817217744991268599903342325537675658797184369537157550901380921827986758512166467424435050070944683943040600224430553222412637192274274895363181311044017742982577835216342943555105435190996130882816946683905157574730696898391420322880032932157881697774611584365471829609386142077741002416240955407918585108277143512975630424997451200140015189678770925550235153264738750849370433728659533296455177014213856463039981840357797857388175759510223107780365560094765992148985097010281215956487262516416723163944339816914096014631563013636661661477616023286199081110939063138583907655529853801093140637583903831802704962669760737150486136174574473524913040032043243699056445577848310531839179722091807274642343975473773794481764111293937390834056248723874751413680163973470016114133566301665683134497227857714073155236781267597759000644937798089353493573980456537874121506258769180064246257720389518914151183942867992516417244415010018892951578274996894996131683816647950052575288841065317596195113060773024865993245263089008282819452860562989554185729966185304779868081011637950490702755587892620262244166874092372994762486941165403993120636645985735872568427266695803001601286065466136162836361963123769824972286553095415406249922781672599043272422376824652938350714171488059153061600934244379690477644788088875431699056610464080396344122991510136893971248971562689093725447115010486986229878738151279167664947508898635656925644660612942196015624946176934686065505260412775924657985632959888104877374161253372528266301222475239391272794067490897654216770757814371448187896090537785356437656496558616296169799996910872339315693612136640290922922405634818805236261634408403991502473476095916315323130310777673859972488201771197608976105800964316908487396935399914394921303643901971509212840540754026154012086517735565958888481061303982791675351682986634581812318406280530606206266478658318486966993194297112346364616373959000533617296770089357659075029600640049885545606509944144263699573471631926863213371258015781553192885412792793866691462466365472215237966820677131990388005242648241963401626053122124307541889996737925633356890604257062927410091102773775718375154050271092626154086067037023849143661113583460321950181254082944035745002253405344227477884455435512923168086350722966828293108517712830886553342948381134715721513599335444527084286648674151068103739492876882238528160873076411044205925657784102941439444642236632407680631968673369277543424096386120997680066169503448979048629903684050828763210964973113199388473206426978119974609433997624136919360686794116841302547752375803745402132109159410403153938531067713662317391173234421700815548361674486403208431165827497745751773946632814637770775692305954418935201505740580662579697228967967986292003585080508960956773966527385868130580447852756502101505501473155875903016949973909373731366921393764095067795753548557543736617865517837269556377943431964141198456660546360978230505488158351994480306552531704471835541851482833072273673584304840619301172997382035359926040712227432006296334832354552257302078250538397541167025388204146234378283861792298523792455471871541919995389283397439357679237131662712974843112911086563744633722324269673211783430497435307554614899723838939662512100776470822820334828736371620957389941513045471304995372275774409024193820347304532946364040530942471578823710457112291679629769931310141303352851828282451520478751293124119066362489385890227902652510510111767236316096764827390776645374104982336571962423651565870071745742810883925409893666241220407243168122953862965765184105594109958721457899406435973622772749668297808425899496964264607609542193600428305481117911502604287953150751031794038697837111197575133890305989983998056766032455079300392818253904974558231512105415001576066710069578734239652065172322201322874671673770340147513748064583176553361510823018489059291742449060959126347661925170753326622535297401075697286275656495477017805360694072053287680448594707270191579721758070463918947099603872046091620203491895388610931637493393337407976338200709567383754644963896921859203171328116954953249355678010189757685228069586697235389076929886171322403253237973182993725923199561287924091175837648666825891889707537214970692613848290347988664496728178513967062962882696889372119262738389167957543936672108738151876999537169948790041035115109782506629105987346058357451428870941981771991652285126019769164508144532503591943257526530874408049421187180666679542850799200014470331580840774346159110997295326017004107811272855621737342752796528074471899359668964825958614265455406632292840685684662967024943988831672893503988661196233110718889308348488574815834002089093871854896746905502143296073199126957529233572767151566565087368512116949824538826701384313225788141715180108351565100296320099674330306003110301419820611706690230522660340096847927432364325061614718645791981382412281433759699962997497720410636730529931900096405822457808143611123164128193007485651663783234803065593804883348178560899541647453813969884889648921204552482555044589837389449116953502041644942470331529867997315818247103872301121984777146762000769386586339228855588068956872282229392774004530978949422315559391865976360776468726794676091985905604927334368213871590051874057211148107930147955937300662903809780295604917145576020449121552424239282935349799667076977994175740929956523751095929750421409773774310023920190799097122465801603757545529995426539784089638458060457657037899829841735750858089742596911999100234672596388441428463138334372332104201199985636999437409744318719091932664519431608149570346628160844572656042060995735393902549744145577120521769888079375331717732679970345731740262789823343625219397827831381710988684832361621712015074775206342699182553327312911520488050865576509458334414016679020956380931236500723088093228263230563154890737109560069272319696482536368237345595846523310534520280411109557552854962207185523489015311274171489632598785247579974739515469694765950083453614978356673870935527941636547604142585910951046629629376801586631777345413076313936552347331011768161996059555381702567461603641025735391904068722267557704804217143741725305483947331074517986409254704504197481004042006610113040632019331400820823797196768700705196699321460643786924083057334588139853786858702404268582433343106935868021742884460074026863784054219342023183988671441246896702792304247244803292451384024611077758398782491003779794241407664409928880390017402952355042705906098458434747384455008632236745120675127310046817138461677289177573597172127542443255933450171185134062085985747700431532717735596881781411067582831760375530671019372944506182085815511397852195619741958113256487986563349368358409063720545961305824423122895672850682758897135940137975822822057620709796533384859707198178810782555257255104682313604276725290163434931761680084861889837900655626122598478196654176039989132434814509078299135696873776613625633366080328529294217749169264734860585254490590119296822176460637400312660469426564370496532571286135188824886135171432574003874800224079741346845842984670196822509980369354664864687848428565232587174714598596575279396070107512465998711569833925977841562582473735241706985434142324329323500137828672753202785515839308521941337836428791022912290095268397771850507274959276386460162495396190563160292551358687627985426176853860872646440102179322059355681297328272995296407337295713323904307992456337867146969125137569178664054412226861509337752378609054421003184494702071810192015829548902200939435830087723515454130701326448488072674900017937191356491003457208492799859898073155183957309884507927132721803162962527741912091242602363036370306186933868264407787708260978354348516564532103851468969090116796313621989424007724412041794348601358498053061268670417663905863631283999447231500143684005176560108979312142146878616603245059457891247632723298288418159117653025803878778790319632620494766772183459024228840280816236421743784367046904212331006241232379131712081894052548576348904608280844415085274841191457372331968632389971785261471414772949686540115004099591334450860181775422815827630654037541760093994613503125666347385148210135825474384098793355695000124993779743448779678752767023199353338983304388197308626312184137290599211218220673254659595598324460911547360978117759211764869153683627503900113086240436488492396902834574767702930379633986642304590895874202276238020856642787562635859650827051967073085231720523034086523217473688897335607567341959168516696881855212831467501912744457312687181017813197321574898920672167101937131031852290263998585294561529171875998001856696985048292115983782165513801667735126737436883287693323093513154561934080556988147888697522138469226076221514678033825891505777540047226685363714907068919381406307258189856210225126634944378983994556832322716076508562319522103659624779166281731171967200432975548574551762475830871979119990892933800852837546550461010544972503819079874392466403753897908948245956667315711616620731740457051253659201650280349794829905710699070433957238954661533903250720492178158373849447935215672559709444602017321265863226796078953670186162173875448025723239565995370253021708863641280420709393171932099198186825215283372123121210817493625233317403791076853275746054669221736065460804258933023850107020263415103105004520346260210203044287256223828055594475204449134524427671896208762675693965153742376069203338296797812707027797260612291037448038390886781368645488213540118643122247721599111610467598386290009759763982494851855950165609424100523501612533621091534506399357662657998115974599696862697740896487901095549203352563585840832068250623288847372927986219761377838377510598077848183552532257047565063919444936038355652012987287436679930039744887029708086898156980214371822284802969584351722434555364163167800381611151418942220458376846327450105827961782055097848006976612949556458650393717091402472105171093661661103933526270008140797151462131503873556517346171594335320502346161705205218978234866217226376971770296792856721848891654567698073036691955880549993714106171077454183184612364438116459313107208864819652269566242746782234379004720424749595703558694729324786202611949649781953354469504072850819102863442986099550758406758448526588747546036206103223951823284511667289361342892123924012864437320462096845599800804787018262871863798002248084375187889793856211142358928195398670025463173435274952641512797937030313333316282021379882625448420771475385678064624718867432855819409314832155817416887813489561762563324802222487637122372763246013830280685486530037285744602463563982297678739410905605689911049202035285427012016055450217214280891024009939955459541173498102569085209934622063737724955700316090900318080612874623189376313884721829080053651297022601967308075661153125607007100188653946280534883485468059411199747281600660484865127571051096125023232120480835786977788980899129927715294180243781383773121929155686885055152189528049276603800192034450894557320036680792579116844233839653831590582005188194959447550184743130089938591636960418409675140444382170626051441971962336920146570542746472690202106328988318139644261027848598815686439185773919028818311597485795306489423926766608534839420203613956940360717950624963798839841912223861597773789151839737349939032965606972585487325643905152148519671870743356039331961304819150817793760601699089768754616685770831791377311042080680425360001869928570474148937527453614256919731481281368154210887717059963344246189860827332384307631755051863144589466270861338856253719025835556282849580770936192618519389378937379135601438909452825871015279222189934081355228828734448913316374761857060569141826574984597009283574984173276012926016690470369231190020725165775630591342202785003273297056881992033036301777499547949135402952459081014043745975946176623289091062049385369904974211737404829629842373799518925454647081156195450031716718734263760714580290447381842865254686602276688960497936792853778118855704867849973613417281876641179790771908738012691378612392307169954635833257876317777423067831020296927030101794961677578482658525661897685706072151116187941884181803046131450787289260004524550154439844333316079678384767561789804777096507776724220531121545297405120051157211651426304684220766772743714227408368539196378929259522231109196676534048006923148584331165373902031456061447174102611526589700923100552555167852914751385832512463782358308076324917894259991231370430367827864363897895473157701479445922939601438770112120028167846084654695757863953423724529731648737728813298170147230245759463269260811932906327193669401947368783835844973502379680481729384110364222773277936322595477188849697712008079476566522701051786576773342533252305639283307007057202615586169756001740148234769290996722285593242680047483683399036640339558058631871338746951028605386955720131971245243493665666459348013124237556087491136629416812845317420499505053704225712833436409243028098750662275890418965428241880434014779430096344268687421474505862086112713644335805583050770945706447083322954356747815080794579086749202170340006971502079056962215203483699555919410722211466655818807077735570078448949587434863778582853363721123045227209359413626775919758698757127100895178450057060583251931405320972494120558104115858784320719456097801689471830173400083432178889144541500972261950873156161361470308643729826271136491598655962136795575039255887561634264401186688725469320134677464067040512220232365445272300155061229847763144534770698105161624591161965423234652540153476344891515893574609414380770474953649761118488741531253685377059968525256453614084193204920957927517098169349775089864660984817828854895602629963644369703237505144277990732722386457645494833000160899530043525995503171320745346424559449111363789299967944284195803226801056241874919203920772441009732742163377394695766146722850634558818862889628786390107825405131172777936107816246779164110941702580340135884555894313065771832424502184387763522801310501431442857813464524476421721652805050849353922941254285120604366567880713999202523261928601586662306557259946981864381213986822175124891268158426200416767099534926091311964269439779602086154218841378371901594053678328015163530962631885116102627191164864478738212830720424131294538932999764385514665455183878331970617719634774431111127083037014803703985206852243905816507148559240348287201660857795918452570120175763677045733122272528772690283196137182659705495986947723177876306248598713209153648100653643981761987318705551629473980856736416303455935110960015178801609459339727922619414284678931876437314915769401794607413566657098103234367117198401032671063654241983300803434733858453170408310067220985659803608224380060861989824054949312982155931910336265525144355864281377885235921879676087802533780549870399880690317510046038319694102529037324442564622597725724527390015117769044416852739437420908678103676448112487764419618941929572497540055234838912495162013333575546345345126421556853147527248125837150007300582636831482690959604829774833791151325376024513410471613996838506087591611074443630304172323137103207103725547332642644087113935093082650583950585287647756074878565496172199865151058752614854603322660709227087582828651674660194882808027970997363752973951650525911096600435018042799205397618605475828189509094492936666424939958477309507363215109218443685139611781001302251901684770565443752036880137740119519222124895518978302659647042119420531253813805159517430572890783418460154692902911298521013402840186814857867745524216942055013594222124160368793779953448235571777007646405465965450623206302974420906016646949656613265035669026703169193402107748606740205991618999512269807561347559706830641759537130914939100888008021699224787342249242926074389025360365167484395045812725326247471805917863913914007262674219707958487701654056231284505447255400271630191936450724758330545959682318777218920125299499637610653472129877177960062600107139586114503771210252451537006126481556776744657342928366452345885919501959580794400755467341823507636135011917484040168538575734647724128187606442159882152446935329020744663286735023752323401839504133359004487640669376554319774833547782487405460273281346538135762569934959352582411280394039118595436359502062270299855092924656487223167541536976802556934383037007986272361645436446009034329777738377579777034163148616627613257149779157199916628855608342257039273396124490918438179803935478518796902370633425228031152662466556772701776115627592203814005802230260149170379916779403508176020932103083612229020403860273846318600969493761027448177141866525869529043318516856427202163654820877298385302840133384018214563082033567090392576162775021559998081314704682707030374972562693412381414336910379016713552186940123008386712431402091178042351566420973380910712549220748593814332289380559072213245969259308654784039305255087080857800318574891712324615958670199752675240837025613349991363709986690639141207648226739773194163583020430151479217097733434832152943617608419441448837014375032134490091611771939394204241218223493205921364099297325642887623314072240380535106121077709132109400803654802670455809961000810090084202410611476010175929620295886698028944765734926161077721937855348466501645416725908167344662906958023946737774776965539032220960026640916344847580590478394207521402156473698940625499069832008293510471360460436072278161310623072010307320593298301652019701336119294078115827993511732277811378765681698630264307951568971186824733246741741955020563544959081028826404128683599480489994724725359964279187372747978727903761808002651919588113180775676488899742920489988103709641707074794245910080926204455561241377691460341580492090002181384455078411702599666550527189971684509590413951627915953977432866679448718611497323629208360153083536463019083712545561310876120000153223433158584246436120905354834257731597965106378340028478736080641660089876535909809800728418981718805015328475638415960446048012072994642386711832306482772781749110445990252098786070724316914662160510480687798362023981815493106073098698621732742168439081213825363330591279583471380428079545240701295930167209995884006182640803546591286810429812118624519344927973426127822118437846176116835954968391125103668400812671483520235492355379793611539713897525885134457225148316039588695047461072968480582891262264696303493543371759653144852870053159206110614244917761862096200925056327468131910034649579436427474282649784852117858958386011680168903174910627178996499870322988133820976171992008663997946992903322107376531069975625879862543942757252776771090141302299257659554400647181441305555103862831466721026364301242667368386039982556045767798877556750442935206301877550417404087025620296461407578691996408864321075649026330287306696930066804322236453005208133563859369582006619774232715286703345802219766922803952791315210939582320126378242591809801309506612799402483835012375174787377610068980249636940451606488932505272271413390657694570902961200952677932116869888422569439353453822228488589849656436527797641277583386699493530237255442533295097889484476312141620461922134501769368894160676531074649401318603185514736394506774448954163214767759190512476759778515443555976242819159914014544015338473410123081319136437977236032190537016785522281085599134575611844865684007538870837489996700544896347685250270592886099553770363078796495689043152028692289463362572269514428592418205598922669410145104638380267823326337180114501924119972120148544982089469277184908231428255765615189057304049463266839545472641128522183177230432114744921209198530607485148615331669950013345923937363774407792784409122835877893810450851747790329040141065906363111073218337902590331337526637980753315406731334694240519670243847588841534760649847324295472087516921376151345851742860948093842336331819793589505829467503401286540821212729101431564527188642662449112101015509155006919756285325270752013534946936001304437316074762399776415817781374793103125133321439496006634590742867471375964789001889159626842203238161599260410890161484990875328239320411651697921206192560273152414392149768180212462079429993894697786737130586488093056142042369570263446298981773190203697904121236749050590253040063334654343583589584131013097593103728012548384520558822982063242302314815347537490011208160104617581825728616358323678463063854213824553546038628834625658319772135089315809072544163208738199854568476460895025884201621235609451126906673730741158340584698741216720363570603989289420061655656080608966480060424243445292470340359842432732286878198648962179986470228455074009317496538945729326101245053366718890450397818574145471021814367509120315816591074731229792572362548565207330085801221795656924219904054187921191911111038097719203153601848386423530519032995532840512343366585976469826418063186901356977180279868541476595786749411501424672381461941113338959929738315548784023917577305922323756199690714104236020785931082881694645953093075393517029867382601984037375031748156725670455383722051086369486856969882052174926685682791459669079771644094418916979354655971493908606165519167402994508854880370419277546257337667117995091212164363463638846360880965130507650694048509375369950205213831604476929183297230169308836322356663068743828546306906032230222883281628248822649691065647141066988987728609306205750388326498259268000354338232865365639146483851984846056629083806049718956707940517463174790002606163859444304540846677915297699571414599937127659401097317292595617255549726364086106796967185409967777500491986841853370597099026494510996011226655033297158437118292367920417796698208003880268541634276327537603751685259607503386382401932416402943335009646777544499360035876398013548185202912064163737355818310703542150836092033389496378514340367930630131554022813902106057668002849087248400289962262686823184373211659052002647761124358012716250152681564372093906179368264523278563905940031767493936512319766363602407968718087684645638726167205557309275232302169753378585282143427159860481642018742721075491039690763827300309054811253476055383374089178661476813336610911403859062362973568973059203062248743055660733696322365894646286543185741196735594386654578996421486906438151759963816151270555236615902817960794169398641409714019937381599838035540084651742589872107564761238106271775977762555651996190221543952913290089452256002838101930753679488607555212125918816728424147907784227762587410462490023723413069364994858434498383578761371353177001691034063530529538471898563124005968786223468526560293502071716989332744785034826926153626736979482124934459696428408245545724309803823202971250872631321955975996587218684600885508406877341521313685071693181234557275234420186124029654584015858500116533591920084477630342480134379933043034080718539344483262102414025340410760010797962621341051390630856202812771561760205218813607558492547458852484046019574500687796495770057819934760124890669139123508560660305820845753301427566653860175997937751392815396432119826844236030353761381749163531732748970912162303040099534867034170911443079808105270844142622142940759912284697790472171570531651971446363074019239744440565507045159291863796136222890410803697894287224879974244463987078613153757499486992679872321818347597273333348005609309423048087843299889172884022015343853682442312849520857951108050375705878584195627143702401441569956425646048094181186339350346541992466097677151740776941939022259236731635420145222017833232277468130636181889868998113466542252593895831287975934493395584438117591422282097932982031943874595591371905438463660814406817244531331992851020799883213854559625731033090988875108725988538328396512834273977522772011438872111813832164899325051048491169295838544041128046572738436007171755673753043541663894812664799143180436840528431986250893751033704161179635819127642588652891279973217702322524544889196167855856705268733203595972201446627835121617344144646638611113127543517375326116802637879467226980459598125889517530001126515686951097495147706753919289818229709033096011073192508428983082727285768270640330042171806602096681369138882591612785769599285335066056080307047649977765438613344568544026534231117457514004132850537553894453313640932024549502696019667988187722184004457135472395752574448257533832073126415253141835192186316418733816701272714181779039513723846776268607118052668105784360750052573355411086144139479174948137179614857166745776419863689875886940315842748961660874530271825988366526673680073246177715349002493260420384763116224284426091525207000767896743587676885434874411604145288405595766029731228800802981097471164845410391490213354513102425424513059713296918072859183161286634312694982878173193519527669809656959842577214407774584499743523141603984160122846854623370976766159982543186973485918748515677836383062596708947959061787713732284503566377752551854622826957384705323283049761396647842404394753687389930807629516969767971135495239767402221635618330359019643656551142623905742292146225762448174107685991486804227899084955356449722052909972854909625981606697489182082936936660819049797665670469517435343532340766492718210220609881564759832564149289872598471195360641396200512541526734563387679670270602510562387327197400768928142080456623496500329720501227679212537866306992367770726978912037318772291987199527551773084900375721247053469636354737536202420903004131782626040316596637723225334428755381848843142855964750189084598045883924994234653959821348638336576318733537063765408834427997490563450815043843038036417803756473850197269472179415566143639725091620599027129797222599032611775320527334611576080806737216907356352400232842588876943105912128060812772599432819692552778533482117442027870731042493155104988684193279621207576497174098669038026645725218607478861385074888502512893461948031424839483840505103563336466553557788198642387881297486215614068769907573818150375018428640720234424436433398774884108195256765871492616082247507249394436866562954982903063772449519915165631588610558104200134498763387590937815310809364561572745139417417245186335597684815845962256191328358363361978078336743994300831745637048068484455262565412960382672204703876754058233049917446280702122206063649965575386883856165642669670676937769275510224690745440256626952305587634669161539803166240157958911142289645472768278511634510495627643352111394771486824156278089271709460170922687746038158785010030017735806326768971725818894788741911331732951436567308531088639501742747346457050278168803816231176512976879132849843296018997114099450462812493886082745513180507468517088256702551762677564030388643143975898088911767907019847914342595939704810092250226104793377903865762402630883657352664772706311751564023827766033263660300001405075831186300282371331675770706380878149864692528461867262557486477298676623858728403183302945776301602685730669219169313073334444281810699964233918104963746091676300067498759875467250650301785760719192758913199943680012003411117670630966410519651338949374626181103156406234581639902878709179975247791986993224847536666354096426780417614757999376908976260795541776708533007900379134049158717662223140227549497803290662456660203695714966725132613164179273725362297473666429480551162709066414000022392310008733378015524769272307865032716538425855373179563817340177633669068853091982944543344341971139726381777354282770661637238493142481379148761860372564567666257889824179062013725191819833482440182734833746540864459269398622920189395503645092238920327762307847168719970853750416632377193723280606054665312070985466192372257165984793993455344261646468651174581488599241896792611816879449133532885823680980954774711768727172283116900833546854328062278920535758119465900523056074304427342824965275432697833747411137549132262853461711200981253693685578503363053818464066512018075892990433541627374937692264316194899577950765306483728200647642149153652476652070264426725009001542732083786509371485541965976201658657633468555828935228869853851258282223703560357516701042014434081306030577481640880346219496704182326552559624669737264145188036368653340074025546538082056509092419813884961901421770883258191004899757680112500963745820145766331779511021994611192310383395891909180827050962585666911858082763440153244998235292698221973814538504867592516850527576025628510982005728467024934958783295390912468906246092156547316915162799803067945361550242690092457386933498117957297165214402409240598481116107638788850827401668552331475265657932340318636352325083055947284363731934145991470660823957326055537400232437528257459646549225410824463212803165757229914577594337138996057678072518289682567739009052806867568811848480738085321581918844254332943651767037537404165117047664171787109332802017075829784191423507089877963810968917340596227258263986615828550150237487782148496037840403662023496898069959094235372208010856914268984049270274819741165536433245193425806692935659861335438914315400483756809942757629111872943422541380041528841085423365077179538172593437090885308073702680881223708476575334791953287241745360947034416231531018857269322972694209483325406342639196349037672940479650562243516674173882671665316016047266962938835226779769140008629341854860351220663494754577451321555938836877368041254351352770276802640827359270128733578643321109927574117893726247988633976560044292273050528916408065627544671822524748022562544917199423652417558582486103054990033222045613233493509184309938548325984854890004989332895580595029333036713725276499335816823749187985240075444218491209896533900529530390439233815013943750562537741349468078966371104131654865302900745315786552390419439144300024987045293160433741416775434851519352932594287630262160341872864882645524572671796819982139373764264709857473114576717645374094738893099190931755775348259476808576959617079204767332346341258766988768705316695956161149844388888009428827945270897484055321126983285880600952839349710604293050853191262839834330355446693125939161637897097478211309458368575720098327759690607496305540075979069467217760659345257617169827075625103157891456441855001606483616860113873550279309159850735470670416167966815538584782803361255079038438125072218062136952410737790437758298005834072473975233951160520933800988412502034978085164599818756589965621885907545555233725441922501473593195552199639870749060982082584464664133643117982817456405493419615797768227509259440126847107349654423695045479610779823161956872707845043661910850788446393011824979423987290996403629454216955110323485203192696307600975999249899317230564441425565660348185108198582651162943767735007903324143455321534279760938802618070328877330830647103762423648674235502126366932407069920188974021425398710252188417876568466400564274161040042854371683533567893514891437174664999089196053859429425661420157400816817947952058159113006619248215879476281439198309479802904136411658686584132772208143770222257617511171943002578902683351334275402776219416656899889484006262429099834266771347500175340483816581730807094414407839062557727416774315411910442240284035536975999742990634954778948964196119990829169123059683592705081529989922096411150470623893299630532495253269357422285535872254373764447837628201717130035268159981818669766758231772809040998141898154558777871098220736709393760240075809784012158967455569456036608804832375342443798329035645862879304560635545674750805841942874464475711592381173157530890783182371501228163382675235946592845034328414717588227287167097266124719312770698039251652990672858685290113725124283353794589908321421794746938050004088422586114897703064849231730623759597148437570881609551289247095476156548542562709965385365061529836317121011842500757446885947356737748145816710759366970026834188680336206351714639927702700201615986552123118559033122325475783020599247433703039699592782947536055088975839174085516805954062049915605294129772915572137339978848775351119830358421840293726603807712929846491455824736267699806946314632485984834489624772309826836465349483994015551278613479914779027885076372430163158102240410366391090300653566148654295343361187922641812714084554704272072916812874863058001226605877429663380224128252594419577411024722290128767332894345369701502143339879560579612555576469721672149258258784775124849175258837533130484039494669311112233476255344998535447489197627477961632044199090954811469104642304457277008815117919267340151624977778322362536892953170373773828329779012892922031947735745619433478472153660306231040107894093084289580166203527757897369995171168190055195515606015925778823228233641720023096351089297691992491165548822355302044587562152373771575421422881512666070992193402251681924194813952801753491056628573838963558488934311275752578586369082514121144391197151202363467584083420380526003208278838705623611537141568484585675722868402064377976177019441823703516134874607904547768976364307183651200390987558865675273317383864911959574996943305247955148889475684658109368741440379632717856220010323545234572979938328601921173481436864906234089598146247867456910722998506806327578791855066239417905008014621901620638216287305612997064460564271186356228760130502747382506969071938735454576478759322243819424243783222335283062610882841871069210418166974656930023824884842758157901235296391329283439176922724215758550156981237193760893514132547589308724195658352055354524652288304181585826809444448349036929909981007091019443306954066842657472236455281842178788709638259866809979262437358629447238616328123777514284951944976100356862445720217137361885159896315306632053801750864417760739641474924307601984719566752358624827479288927405763779340929676685691299613714991472940707011547515022271189155929861540902908672924027202296649383521924657395680888006489408544465097396349308388381852615693988468018760894939056095109511489522816831688795771798974527159245613619308871445021963915632087925060069336569817557353314742653649320465849374168396369482100511733017517496063474326530225397105729856146861040410632453986427261143822563230755140738709520537276087438287640213825312318942129110339780988462644111694474289857533749037238752200952657632889689843630244560514221590491163855649265659107337918585345099662733778717127282659808677159372915144770465287541012523150641107181852173573128403798060487206443777667285115690503534549065029133626384714401181751599674726733166222184291925947116079274433651021771469699215679527597935086085157295158598864110181114783963092846318625736845148348857944480535559082900921675337854658752597439118911866128558681090618536874137948970093387380473575945783483249457383265280025991835967979911224490219029733015191993985626115109217655299205513114848851357869178104738499622730500276090885766986101268030623448810147214072349688730784706367519246043218164798119565716291042500203034447050353554266189681493665467121247526261630400918088598000211705906974441472157055882395201951539701924765960394610974829001713243799516600131527224184496598991397296235517215517263131360358592731692706913703683279000151012750399319157182581037616346893614627661975992968252440241508341574932678794587749918481847864648785984994662546342145715642472307802248442005824440547248559868774269888704776872529396320276633525441095676789765903998830306817324848800376018709010592172057912660142569446617618901463890686192646098819795940346831945936278868677598804274752023493922941459415608477415054646562959141733193654104471161982670133634947034118629812616411527006691842654167488753299890064565749571631041870925399166747023398512337462873545190726269757848943837830978385012455339035388507745656631025278126575175704526152120799953857378464918285433256800576281942132461398874138633599635800534837351501163996243896014817180659202050548435422960377306092973862359518149323135595375538051281868404985866116792354770742688817464347944388417090297561649919767403507452489726916777414789058652356463581113101322288539174711486595096792975539779310187214612818883105055320477829443443559737166913654918791918597458928034684815480542459474781690864649303901613804772888384352875276805066797423678805961779490392882200296259275949807672378022152477751971971614806201776357803131975646978820410145904857894271474855284681526276681355313382035643026385332057356394273763223834959324697172552021801389970714352149122674315857789093417087545330556240481062612474013198344522645983565781554118367525499949539988506596793938072934924284315089780278546005401528986744428872352957071328697208594263542363164018481881241537301865817633976939043833290295533830938191347168698676392396408965372101002091770203427426190438888818721148536326517956769295240027809094509628728944907170648935877783338223631286004752873588487307971573847356557994508032165644039168223933462917138848183667497979987698996041198783036336710909237225362142960037714283836629255444465582754047695483149234973814795550745895613261157734906858512800475681924619758944435579267484406197614153849775459671954326019189243907248214646027354119513403090219413353807418327454934369285067395536483058746292533438577355782695396667156055362209958762326997904506956248525580057202938929100449486123566560139448789717221921897965661412506768346438307444635663601133081459097047241576274370258498495864270024548319951710399259087525465812880544038177330932553341073056638332598521869398257916679481197394695836233348862780652198203451836286442868435806104331438403059252296721741538355121186103037653756527934783946978081984957431384875686953228960714513009401289509143323227166984824445766958639819691028862121268410837831762605584191007799923600849893284527576696066611307712913573375066718976616291754920390953505607719198988485758680857205024170497347698563782002258207992148554997393384672426802138922796827484764690051760182214297379735262922922319589265611206894713366033714275728928205245680036725061111491413132058740171424093638432244380639059393840253701080096840462786711315001045048611438464762965790179935347486953310542375401092282071192175232041093429283750121687747628842099767119744038723573035147209775647784634145753304154146404196967947455740488450791885389188316938230164502225327209256728988359195473019143764132165797359201402544869843259207664655994011743063061681683039001278365342566607893313455296410659084551691852453940156360669651114237724722570715778368253056435850875117744323517857398170876415266344453512226509771486809422895720330135762260303502821747876482531443963954336754299288553445429992896619845528017980137431605293944335204399052689412237747730651234624021229931274902640827633483660571699027005715601855971932779394022489296128891571016968462370654470565220296469860426688409010362165784731964434667518010987084290050736135642406885404773811985601399643368358112543977138054986944346035118283313327355873163609851335901775268628097653903022023329289948655727317933634356876795580512416191264434585516356686809154325960170074724904157649138434433714757519715454650898802895475032578677602444460697027452608061600256393541299599704134079401858801740903238117701907616704212640112396653193184581731371128830925184940892984612513974932126335702973564966964673247926223391422642499447612022803439114192703375482101931203244347945851305390993296041126669428783026271437385218759916496270637374189131754053411990728526881884696098753038506779530931452375385850981840601873655837532384340988374247669601152917709784198680010854487559918956534550759050731650144796288400221109344096377129041014030644927329787390889117487116523549662174142578705283116558040303441852764539237731974990411291493893314349447344857699629133658662904601336235061188068556956855995691975490485371871809611581405027362440903909106280394785304104954676453166735690056354954889648157343216094978114780949206219807476122932502979415133305040932486706236156512195333618651349848117314629094582303932259628814609147598838349529482857265563568130629124660743783711177297232873910901286950380034538598781203321842656795700031623473507702996472735301170444280995989865817046232047407082911824508481558595810057157748998634764862373619660641298584690923584519961524470263587111675929827955578141249566804089901752580940466584149405585720997961186789627074419567205796911146790069403745932959662644544404150615323240367114640909108622995837129269791261819143898041277793244179678464639368758970459032417078607012848664896507994707766621173387385565913106973755084131937759689900594913136220174510514232255194857095006505450727850176951987732134666322419253661148106703701857122758150368408857231252619584385900781765158389410987923614257701167141627684139372737518383703999127679922434652807822049573875071443694802965698673905725299243424552098618299695067335814774961129562261822884589617315415104321663828082102453478154932443318235023311838021071576384620600035685579116077642978335931095991055057542221823955822948864055860250433159978565409960680394832523593186419749408922233472708090482253813717870595513793159696788134422906444645457920457891493474467378236813488026738815788427068699598632388729121701030237002794078936444044225412559155086927351255970063578331050172921281513012742276627091669230698799638703698250090243970024426850428920326970366004495897707627730913331818363367944459150897081991630678687215566345883373516925418834994559600543118668502299379505843478529149183120970319134280221699183826664144394613891138757355632911208170105046237348602187361341721670561025642509181237265348651063779109088197434693747549697194772146689716552878462091473438227252733516868163294953857914920919337467859996212540795609851177504629547471272892980716618976402029422925717593284270942730556739569656314906153984790863233766810685002726712692898069129573785329081485267475377232685724628353129161234381663542180774073554039956778247098201846867185515009385566845631069104064791630848502432408155281553811557916054846320090188072216010609976899744270681858729070135896731416701589946987073600921268462224555415187457388351740519693847713014844444546500822813825992488983595962577282300904161953687777390441468993412596510799382405116615807827640423789503605385135222971528156125875562623142572588770164170096920711076533220083878400041088304313768042461149573538954932956466591808669571121729794360524848835521517999354184386644684194809033353063668384860913276061852922297096801241158151450595206834151706769081302742950874735981318016957929276287262521746497034911149270913971914496745401323247789266264934567423460774580567107141881994743641207581784806044606382407403633719627414542223416572630136115211193411649888842626657744005265759886747907138210253746443894578287246733712921690686727476997352661578575118791415691379390592199495619481554087668186566962686135440755197880478825192036763303344768754947876388970520485226024203835619247528109150289287442580258687505627173750972744058978451692252887895413840331059509820096509249284424638933998824187592355682542274544623377332204808739789556638028584934469917958835013859258207993954165865775088578218599346561649319793830651385213521652872089172387747399602763646108266952486663736601528606125525516182277135149140407764494700064313271280261060757869926245025214223026623884126108367025782082324722856256915842919904491479082716720275943562979536985226008103766584021431065348910718116288037378803568393296617057874211660476690402388097317411669401436463872379248472607909771273268752160740416186078513022782203797382770690174284627175318342551819938003802426100259027576565344955522572627315913989466379023424893856108341905490335030065524305081134708191434926026033070471881342952700832832504660779014376780402983266892883917763742998070452004344588407324484871413550302548371076596851683807964948957556831907925061958949572505210759579706529537184468935888679075223342136062419841842815202595983546772156299946222660787760093010561559278542314045479266240670780018928703562216415319495260732733885365370428641708314533414815412617457308164047168660298981406950415664090174567578908419085942881262369285485416397669723909032729841148769520578204117151604021805048851131542684230112213195318571918834826152879916084425204698983936224668201877024226277941040232561316554640604859403338104362477442240512593926369283493211859005789709281248671795367510770562872188159776391192949413364195937911884291355239690892588916048298232559184322234551825721820806244683344037762750254893503129544821497946118956934006509085182692341835389273636058223251544053853615380463122486222284656984802142857121982398681495680026001459482077251171103959179252097337484351422286841741085533013580519421230296995646820057797086517558910716034263264499563047489528106297882174344781473678433649808412623137746850458987520234584637002188242057393062469508230360170751829835814555350081646994886536213708035449143093774223142476519586840869780537432104239915133945767981646212703712407389111564687974274012443645339886551761780394400562891334518714516973645527405387432782323580096524860794019907233507400066347379636026422564434487166275967009496564689995162830451250034696376871650455809619245366731709589248369813156416805794297707434929113845485442561304378837558648791279759006648297592410468541473974153901229759420453861327424162468842016297989207271159115618545229879259824798123148990267206925776389339088992401507026590079118103969567720056127869427193368970994407067971200240897113077744069051613826205070013393236533678030675709022140686737951524836844662916801450015179679468675362456259253409823709525495314691346977057042651948674123771208359717604323678019288006540595649324790115368537201080493889612132106445031374326021083616376071175926515336975337718850118376012258433977775683356660843017834210869228811836220277787975902292460380649435859063373022354568441706415919836563274473180881237571818074429776073920938329666787280491242881850459090398545109037325766838511961693700113315796248032210515799471564972094965635801814690741754471847886090534939214854200126348630148723502005390356246785890234870210385905623174871443549544631967113729785588195293415475453479151391005331319467860188241453302068207027815501689176479055206019625158463995818563154132005134712450982788689503374368123179002978091969274607499810030743681985552121259728253762810537829840579517184374162981814111917415345917570120923042249557752206349142859303266603184103339352817884772067020636644799264097701266498131562839903429887026420647431130646464238723410101531221466793263449058339472290359066679109559516212853296998767659614671244410969646019431892657946099312423800528548544667748139428407835576324162949698566708451574629192533687085855566956925760001555384243845829570560666225175057787206002900563687006908051764695618607294442288172274273632403065934252735833495781536928687312918736735888658624858457725349110948363858898335057076305393284847090955736736167379301329221815843058823821656115127125496518745411170248131851033664688342939782636972404314756335723719218526967874569764625500549689912568326665381464183493403705972011753790454016120486556063952821327748163504018226590286951757044446124052454164060034245314489381829990419958580808092216967898055004090299359976923733812445529630290226437864262251692137631419249517301202762301807790048197026754691210996375650394698524277506549829052790013145846827601671313115790759030290723743295398111603840764995267948030198635537751979325191881144077084934068657123886095787487174389608957060652942322115214043241016905376913683125179179791701073844353265112493170173199922027457049240948910141921336760500769297225229327678659452035449180329483547734200680296162170450608691193112372053665555216414076055980529066667654843650814351266706740303031251617719637411207615641378185826261235374880797626123827433353597440456706204558383025382832785650596104813448460403036311624441393093266889875684069263464459120153492967447239676017452860141887993057471776137580782288524345350337226359661967958960660307681523887099764088804552830821692868619950888942875095989862930544625739416443419080420149635443070776894860604885734545751942302369741617767177588854179676141931342523750830702997843394218889984984159910044668459147016993399281169753866661044370060785516770411158574907215447539843527688400995040573920940063809369935905796148853081018149655060545199888614832904025925734235663249967940028516047839948591252699791730225280349728697734784454667876900715977583538504538410395697912242546240054161382666473283667349432400207112387152906260324662175097741536498313210489611634539797871752105619773988243332765740804866097853510938940375070694017442515481509144696191555215958233702532950432516977693433669792495022075465947993011206913560475332380057629595304424912718742443031670131623657956636631315176153255819159493765830330969573213887418048596944880358382374952375683523043723864990465760219965775288384432679582652754605379095798797316545857858293470112862350013185374119476853328536639098082580544955494724437022955829380401126841474429681107150893400267116525814547971954809980840554029741895443797126990752069499208260406239529599390430760647929832017023222465764969661606102674577771942389850832890233864908776493319613489781981656038555925510625555023325089848358490830155128815281419154654096142720551710384307916396529172698986170743410840476291636141067901954431787664877130332773966686916427052566841177140533460933580244727090663680372421568354623453853121662802203438855850672544400377864417991550212675068832376220939160753268310491985157970058524662129231169158893248553395474249747390698241841282870724053801773688068498611170901352732952135194736182806489163280404674821632337622738616593452754216287092876273642343566107667787724614026220480107919639860578919576272252920889779651856573794803870590939371639168059413199659052622890243361566066288397368485454634300882470128095760740950233209801453062761631243243906168085923801601585623014389735383614040575323426030005774917916873182389989028880493642255831265592737388743632642791797148114168287197815225689062489767977973970067029730799978586323892448649992757243704914578728833581855755224368193247354650741578542262500340426726395442551369602443213577149133961209308067479037231413933857147919647009736232678267993640924929751760856113998663294652429275902029115176388356307771369064265419119926381131556102214317553444155420333883930136931754734631311892475767135143242840007499098968904404424594366261957832908192802722179978037565742019944008024365909714291232504973010757311498313978714970572352180379305537365503243970644383461308222126389995487917249113641383256287885273785714644446788196447951946453588902319295506655605474837777562992702475906778186808389682352827329591441710305426198551418285013557928094328631901487521694721205866630254158140623039809324193237112702332205179741530771243659660577441237513294273703739973796733492450906789165896715732197934242994934040761315484998300249725565754165699272390168204199359011169978039576080500088551384304722677447414822311982768319220346649515485967700846885604447583104271620923363135461721394599125977617779691768786396452159102944720161446850723290937424827280772441012055218271421356759716123545604834745946907804654456929224087797236667657502385667099925956904986396725224687819547028327484160834475903786021672654305737153727535439305327538470549379084299678195474354142983588081835179444333672998706221268811513416045524869363272110524806533390137464689862772942053878484914302900101897590684349195683515121834771077023644752887129830716569333014685413239684571738218179191478342536343153318751101221354343161120889673639505727020562928649060361382937120880135266597348858450718142168653431810718194813929125170429979654875083549123465592923522963704503466121388467385643399679149347299201937548013342187232104730914404105349576323555467529824928299324682243039960433984592064939120946883336697430818033063440531172359717263550208558819412269570743749317855277577497866413407751303311131798034991019644663470422301019819290108873724816597034099804220967334836948268969424789839837602391184040272066202005677748176775458500069042089445054856534169673360885932094242367516709624967586673625202890443649278080628891914269949412085140480916815031001985440985400524815070626303875987216471869239154683631133548186668538632987618458407681340432985112772282244777936599500485587692222637045337316760380561273583524213187165492470178979317063612478426742022546215493694086497279666847548725676581590734771953273312016578310311771844387587163410468263856951170085301907599881572541828418089061001532279637024400489036760776212599060641098049680039160383308387428836853153314028608193547902575027775786625712977387284295931697570825399748497568464607201939221531148921786600371358378536768245518264503699677336029597043343173851217083679102105269804333860949733552506674630861367042015690594634450538913797387350438790257093023539492390270335278657706184235614887481272030272057018445295256590331961551994475050739644985114401618969307969169232831082771859408820877755040135359826124979205308435911214180488968158609304197688799648566067435423659787709734181712183976958149356241794639461259785390595150655772856010147136401012602595655473455805609971423472138716327585918024442589469192430020984398071029857625570871632242642216393533056058568454447780558449179025612655420195305714109955737571365482730189093443987524886230299934448222032750504231453342169959616049114280294862750239316991270569056994059072269394987680975532269927060642694552317129375239138677119365194662241146280656112486214952258089331440475519932456720844723844481815183803810726397494696101349678914111273380650111719308032066660350546740846902354308441531287710042912993249742453864087870764244828215445265654709220058269989978717792811482059315098048000047525159383230214889865347392567503971535633132021879106930268624967914649199820538389947272721245406686889577347942395366760535979918599198920648718424364207910434858949392652506614744694350590999195464651400159630663388363972576992956275350024938781679728535272981393178064931133836347641573625736600334551064678429887289416871118059873086047749611769175347894309532488026239216751444460052324787308158148858029430249845138508579976629281651299917850409692236834221070311086448939790032163614489402506610669433430666939251911248277644647962397063064470693896959868267917033181057733795599579569336357080558606789822606719442366222288988207116150244141591586956183738388543119020006752179892037863151699862558462623956003779419265394727555566281991223151845323464923848966743015231880041932422878347889142403216615909102433174778549076279472166718365778530668951573804066723368796906402015905911834346715895816521718428257573824792639098825686981280355236479956375659775623030721490191381155768978178116121238629341872094292501539711955835292116815325836291982207609999353833409909119360951782433388026927902076859175201508335765998662753365581973464975424137098793383359282427549787774145717467106868471966083995824813229276190815009792600825257755468137603751409816473127887129728410766231386779891339314775153593511208783855515375694437190237719784258686510563274916990959735783610189554317304355472784536610390071220353461151956908222572009623035257567651388972044110376549841376322160237509922976119293244956705595407669793542680191491835232831279656602166105690888664781388331767855393631584999555096010614606044241567658924916735962388522944141406619931972788185924621770597698523986077031060068836206583365472837331483711647852531289428642641143212764806559629862514662519140602351791352892949237816346249680119860324681931069602691713487746879746101740548531632584532899342999589848073038694030318839812710555211650976967421784278948627029582569232100076041476595543245323532182839919362585316319184816572273059920680031361112480803418648214448301111999340263289478518457554652017544901311735396023705283328317977753091817224182621239407483209769743018315558477689367158002689061494863530915418758433956430093277257383548096602838156512543440797175789312782766451103835512673570951634474331793348951302136361040965532834138256620338196615295166545748897197880838783124755548603548945257406513454858896988027069954024710370149810701406803834969034055873196913771345417013761421450289416956657870052385397086029601623141766482589848496610163402721276179976037283665017058780582837361652629158760364856011618584207317218303654595780289563764287748309195308997929767339818080764892831729474424044218743546778229236847870324756121134470619437492050959522857230628429902210622535190486683641599701926715693717456062168947855854386961938441700685824816329270581366150332947703310994164740888763821381035825295028725104364295054152789758717210799783178341667623621799363258443635079442549630861103219270482751196796036801661014635371956188590072689180259750382014961753521025554741481590183841240059171204019679029820558085536673381694351716134661799734606503293657938431573959443599453958574162805636703070814979683108648492961381718038392560408167434042465933340846568474376248974869595672526821277125533323814309325929613983926175977586880982225818244013256958319677625927836447643713588961451050953830515707200857535886726722031363775916235716467137652429951340547477983083058734799195455879725188303217554173295560523989818880678086849139047579639524296776315773645346107271408569801508961223156104038441218157388982479739075042594320997611774913826195760057334177875505388000146490402132013114710716942748767755947560712625882970377140518033075145868727158269255399235425811581179998376795788485342134798738439670916308536282212010065177423374516199560597961767768851787819718073415089266208167444601736891817966893109094172669346297207041310516467135965687284835696573256100814842115373627602222435802489923984045862078859600331871607275525206284519664000712491562407833466426700004048137995982387703984453741478543303284017648332710656644001516998307024908987558355324780453384681974012106696825331203156315958857874218248773191096221315454753733530774496477226304274401475778674877957408978156048547368413360515419183391812058955103026143155037282051951784397382255790834020148881527633866777639839827007845435992534631974405875067311662292326619330263563742780488696587868025782550904180948074564917234163350248306187868831540270005090947121382895743842321576122160334102668989272048316309146785859801753206271288547024916609209929206185685574547736287324269144877745340087411309474655584545800124906026097394611341114870096286115845589591290880004874437975089936352408336341445490656444597719484900627042517370699099390499405890901623034064928145237594328092833311643994465245418793188453014265236471015616865934104422485512859192641170043290277340161432342649502667866474562080399189940563475506316970870792026012174937380204733451220483754178291660815081983737778509352523742608882205276978112493159913916250117672085304949204507885736704719756590865651846183077362271205899249928461946714465146238838420927927725916997857415966164310669652064298482780247936090495458943751089356171567834139659871610895135079267926945454179058633552859742819855818119197823110098007616728451745093139648290663107817462570312205782639449502815892792037060277067378893882840305392562921358513553519658420714617969426165593245168251415042637834674933235377375282287091107195625641556087932825704453572502159488345276771043543788626932166562544275823253375555632451162583056917497072798128512001814103314601818089120231193856620197247949947510915265413301732133843796434160323464837081113670015579358277013716773512020447548746200820836938194244791000075636092013176119436563513651723928038661985308651779999214009245649991719943720760995647340123137484849095464607944654343632214886115665157712265802554168049226974429220557052215698975642907603516592511037553652453767454617505640839135063622858989654602488317572905782006000236738463876063831390999243189653536711854651821451590247944849867532166688775245415831991033386320321769850573292446408693753522460296598359410516611056962100565170292158764668186041240044995783223831734224588444108387379804234445618893338378089233713872001206522157902455992723761327646627256242694916631262832623024520795916303484690780004952731900103774812042828949895905781029706050821863179246471142772773375235367505662665472472563699278278906862688680243549449567301080527300709753911028510553217460996252767724323880080990269631959615929120515593023860799941721616054305179209996353064655769043305171166449770282817455344907190320927413627065211650490351667107929438343094651865564130647571968937761630237733066130629735675236822428740188209298226977911484084558885402285515322005777218593077990881831093749986420401490569392830339494049144139836716505522050356183244542084632644576241641715117015942761590766315813103321158445814545648585276770340369396001537908573045394508352358743315888875446871865250698824632325142129155834239997557764035779936962822050185698840230029554974371751611271615673464891143780108376647949821017734012084386439481342049661666585659757391723750817129229365997412382190211593574760874932207750103148482599983859914899922335078842788162016650742428081501357504014741969420328839311185350207989008075019476041637095250128155246193513301507651025918433487246453870878535523758458994733862058663865912743597087324632715867611260388089272782039585068891265624912645150025692380631101997745191505732502352947882564664893893871648238647783486387636042755400930480969644462065934343741346796060940891584971724687354466590918135155573792771552339203199583069015197114850033365061916205380895361458745140302233517329640690711489101921587259840011615083046310030436205263454654516416279788945857243982502524398997804683605105447746223108822058553725024695854146747313458718994257621859761913370432882236283713712437539315577815269949446922975048489588114160726270941994716623854049812222009815338220767717000425421302317057747180472590166797428191730669131085203032096591860545261587738515010099744298912452627047734972472621099456750656768131917661054403979642765001769842269619793632762924031313687844093345877085319686939253084013970564038041132291741328334284000046491460489797646301910523097604031423847211930350914433404525386894488650546447631685608133470733704706260071634752998563867498889591241923149284710995427074271332514395391574043747529893582407945176400457697676436069086028605690488780998807301783860648522085574532284628508656223329891895238909135655819373775620587054092514463814458058359843621256984516525425426254992300924243424816836051880229487347433058716774980548921409510543986026994082915048414315485825017216026869946714476357832238909431392731570218938684348027466449784181502944978260173586259529184438175388935840791941156542599777246060824297361333050805028028031010014686376534540351302568618578874657140814254985250272933915386315520827215101841625232049405121408193115050039595043368348899854274647570200687139337360267462794202435733483024379061125347343936427310724985158821307093498929596805954688435809471156648821939212697379750154503340073862464531460967024361301876362000583876059863548919353040160855616318762322975790962078107473474239413093853420033388637618129699035774668403756544534526333297306661874714349315681801541597436916497987726221449603562820073227972382563907655784038161017052240280118567599079759738104038713122886744727671191997558053881304141024467098157480057723820735671036747276941099844378597800335110492513726501845599146185526337510769623465865676484354721738905201135442411776390389224658736887635750274809262808066934793619406166953621499845255818804349369284335600446274760994462875415257754759161519861927742607799661314121572036227980358477477867815821758935489237577059132941886283097517643846238665664014407319969166794272087174721822601885351272956339416898095530552461101650826853539346787270805928070111472237653258438383098567300534084991651233889353623180427251890993234037077165394245035997503693574679050539919100044099577162273749859134043844524068440156405865394304201112163454987463107748810458863781591884081431811791761972987807432091038682204568210923136860627610495772302760280320092407884686415769732972652184549225428621813424198177732750082759612871041362493099150207368427703531963699525181624023529301594773631789624869958842840776344643130356034441009269538249035329088421186707771173832481090466759300552242984308485108627057468022030439887349859765889027050996352530150968192493666835196094548418812900552314581179421555587507935030771150451788452133195758053510963705785264280651840964309771813900959330706812284213528654800642567212191696072931088122554266912776876410324778047571155059172617015856765305391425407994592753699697349022939122833680515204461667926261766878179954513673159305944076511009436396363452282222269658022177767931641412998370729670030369866566164253340151745960330585785015949389363170849720440116432603546173635023091446786961721545927641864084252206547792081818970309245069761225497960638322723966480270944839873561189001052325184128837505695859750637990385477377573461612235958209447714457885873396333370260066961389637574870621097075815094215864038054616199478956847625992824195864502175431350724245676785424195036458142993144644519852183210941206678269602394205215549479662301686767841467779558820307823678960610457116354664642860809627229296239461954250438411353190549131769288191901379674736179673243848835128951772612106135911938388202646808772147325198333477658767038522863529892557714976531996722297268828560837313943668973774101097016913359278691214843419495223350596570123008242118370501937339998906926192276771133568786314911372900902656116879143212451413625774645601596711280273943358459715504285415449294002975958831494930810917420028993216799501345165302682669076694859609240242134738951618088836144830609571234616461859022361706153330823415208666681832126623524613864049553942275047748552142010736353479163744625780213234576674028485180208091956090045019521431856841958211971998980051430218600949344275543440253232239886689673397987742826445024201870430550575177003238678977006752410816351559843190653646790943263434272653326041482995443034052864078590242965370759402701940378329825977472246439889862803067883760595082036930104497875336851479888948718323458749851861233957196893492422356557620149934523583381447509806192172349933623970097180269518092921450122596860011914959385625214921092216306136502376143485944026227021935272818767485832182187301086178884114760674033407330545294413777436991652562032189176149789022210048235678862558307333768524916358231149672896762655043461500640978814762223262940046813293148302803342016204679131370036086607392464168383042653143417663021063000296032161414095137006469558105800944373882785993227485099694257672303047744899409550518592824985914599823207306882697966448948609223328630065567034794611675803922647151059464184979761836010033892280004860040871043852736404463032604519299603336761326876802134737203210583407683310826373438039011900663720543136315417593411424855047576919722214759396294342577732545383445149836010920197609182131416855294202642580887048555275972643956351202696512364886874568219483177933743941600346882384307905849464066517302987729330312846383492894187457433820246230161325665152739561205571641156566477729935791854589189983516044412454881559422107726169159756021517338175169481847620410124621610133937366737908854917819438078078435391665576463193289104313822303390415386233567381592763303562160585672077428447478267590169542079225922301489081626411001153804435291517627341845301303067618481117015125499969940839396301740626458614635149262669817561158948766345277794822122388001369670918623318206119584151100929612398423937050128332001069450840289162185748597074214611533026184234889866744618768655224864132771211758146684167429268116104997382468672734842808655403339157284588823017278182903283225241232941577668280762008616313475222375542663461433604717355794225622730553189526691503909575959417378546084420268009527185577783870379057170529680512879967863444119712751237180187377817297446336668229980212587699145656767330899129229503454907014069848554372937518424447858219596101427611160019550647375913281489498699591423516618239849761674854407083131243193925771694398828978308364369377791921619089279345858223915543988923329310229498253955644349613098268484879350840244356983249141629929635648353395105167467038471695966135751509390217668250562718081715522586274063340679157007371075046340610995052090796126316988025975646675496054893262736052498924402485678048237614436470655994303362513111782377319548062155161247917470454906532657013459056769111141360112852569902613498982084683533639116465799679937225271608095770540982427899307277781663836835778859198573426630257207505577386408176015642453160783717398762957168174188659273615545746835836842355343877373552357879174495666854971834019861740412567296137778539816528605172540096526816573447048906246587214555487361399033221101894419133647970460474509767951454878291151535811761060672942132309933422751338798473535016073730391841303837733751817158515829519458437395080826271174516086622902883480134783837021801141941570225756090629603285642216128158765969092532689258856491209030871341070908076707345131160904380608718716048070664620642212638577679061044903229331447165642876462480868393222376203794937221195129883644234176216463862110127937192540437278814673447194771758864033858670225416892373270984511761526383864025928874909332515768677424165869127794407885607697538364456760858797448782363618354022466997274769294994864823645123877609787942617863581490150480979930148332014101847167356267014814225414336223836516659627022059426002770886677712667108274776523380036507636086473881189987599015305183181167959248379926074665281989459307174078370916063562835132374711515118289237744152698958798941586830859289112722994497388048416035819095454908867989306056463184478184196295541794509550444001688495174589064226475090644555441265851532346548904801167087967843240353617677251684978946848859740527187881592267790226188249205586568101264408549225195170555047980232040597922199245508678271734894582057147361666944038631108288919613235339770469113552283493673172422679363374563137734988691633560550548483648999469404297033711175840443814964204995691356084800706883700421903589323218913648661538229448618834834810563370506370523558441591468751560704126625768226351485098081948702698111004425202938102166540953402317059411221543228682037891824371134276460191133214885358716428873237292693450974670115232575256637793071779881719885317318842201298393976466131639032972135186732568439130574288194618065861846841077516739708105910630444016136328557315618941704320728092969934196926645865849361676672616959994243198430116168175251058855839907077488838848552795893708118291834442711504233733089473094725936294847173447140426339765639367083922888232726220516196294053725003536696866540992893061884879126369404984972056639721857606779769787256692777863312224562275328083289092432303064408768330413526715131849070553434239144567507176867985929635266518273993165607736105125689038811068913471102659481025725821015787670325585469152941776656168679953631107830189379653751479388967797340807899761588672906841826249577890331583119602872411564194054682822290013714862142340520401324703058142559695494050375186535457669329036117334121993644035533579035399822358366187398495689892595778120928252868879140968035315715212542478620657308923063845455477419514444445028108190198455306388123657515796824638148753450803482256044558924094322246442053224086667837991175914719705311737458571735770154572816764499722763986656585433546308039589560425475943833739558395718519529708863870236933569946310633827135709426856318195098528742149891884749295461634564338153321922008394653556046866172998722756446137721440690952256271772302130611531692638704521781749245805564390611473140821271018533125929551275707688023671301615454209060362201900236843104607781843807169878847010687994327340822844332999214672752177675003024175210632790668254523080800710548036142525334458454661310473647445312531477673073408000552813994799491226701014416164212624897654455459036551629822097366903639124554886976647846343709605790822150803324808125916069559254463265397726073926742183239081872264025287129537184500048306100020877122122833014948052571101380727814305489208392281382378623865256904773933265964160804575270911807587639472930232955586306072610611950346085767621083379420924548299601041354037208045640481752064705916746745508554546013166918576483725255868330138012725586213974858033181390869897547668470667551879690408544049147073584935081948611105879645145798991133187665365520322592487562967695365101337370833490356219667840661160263684894110799804877781319633280212018742315157672951851773354260032203977956302032582320060444462840861053012938758715568195275687663468311487873224607034583724278661171757548885631075766652475750855564386389023900224967714614894447361808253800429361553857437756604337635968048410275132808203920308357862046336201738764013012664457488375204237176681333602670779980460131591477354422189040656261987032074441352347055522518318391278335549624710074210299762046770375253063656142247497796420186694256139060245345698756444757164224917622170787001908189150278126751172472608188402300551153393540945494815304232198527415013247109023158555454406022535966857540342822862167839361149492061809967188684257736740453171846929372666934849365773523408877455865440659794834768846611344834084901061940156273608738857634143212165628995399217054411572155729766573884567239878686335588975018267323413516748069057961725667947290316262286169482088583581305999378083398399592774081745722250738405379513641660501657111940920300499857442559148826906506656935870351767934678889704738141891007188692444896032273768866771544775558737994876844006819760587249210252646243921120544098571565481751029953815711875741264274248134316356122831813795621749206981590805717591933685985711038919023523617743672851679185350860967479685506614998384854180484718160433191860488686681935218504594723338512942975439151805982352672951274172753186144155576667105151908908638818842385186125902651193285455726825609033019487423686894744802423317609675681056701954544332990247075602173166875291712856220381364941247700975401880727213676649520702748360261162834510617327320651935426271526625187214571815999333463165311629941714806558572236692460504746166694773817289397260015635754417302748237960256554719178917824641044458815270414909942915944140185402840456047865279839385311305384877851986679405741591202716117638851678226867609115403943743515509483151350119916811927205710639463583875534130828777248151783015712702578030079319704119456688713669432834458796704854764228031006441643820923204763563679256262147049936763897536990331284382764259157153636115692028298499351617546752136672649431303011483259279492666905868775173232274265266847977412532981458930581120309920122268046810763431188209601059864491755664479216843290935316801258416005196258580596121739235197603895690969235163679040185039892190255508296442815265298153256803590103304824331941571059603997016965275202628762817942044675715488414396709073342410218620841309027041600037413763543028031908882078539036128467431686287303641341077015731962165400057975981864667692618916052239203275215000393996980119378477892826907999757104741259092049749579348776792798487331007279593051943491427274165864814977732687927636998349000081638591280166031984605723921945794459125541879491601457139065782492904595856034717145100425830770077631378209705736481629989494203808690833734368857995320888442918976392300804225178807112162016592877646913654053208619187356373979905580747936069252281953620791127301172230366386091620271900293882308156261279414100775401168288476139519949027642405330017254671545817463222078818216034950868408760855134100384859839612726310613930333475095549713995519402697044043457081060240361611132375890626536098413561288492207979437618302834354750736852802287655162101463148533496040157599510135326439588579406824396724419851477410205123779882757848536692908183500795677350518822281157195200330584674944612298803767923981756008270853009881266512997758448437749521533917768079908604314056143794300445684764903455284891021949714159279963498178580866285597719926450111797089640865027821478622964427731412539205758036190780572137586203843482376469103619160495250417431957576916008156464436385148677618358770959791548266709200320405328010734631693355370179647152184490442503385757989410121391306427813202229519970151029604971167690197703509088229454753326340884984630586002626454021260245760653969808357872911016014038096924819382408958529430310588045433965393829441858733246722413552538077862124890700877448706584318843971728350496930810501945264726920550938579188304063059084778085736332081980885767664461390236097224698378313180292563483159939774074815890358888567124420665888205778462192315219962820067033271689401971348052007308243308888131931663292076041596804711631555580027483361423439842988313327855170440903712034895396419062055744707754146227861634869778999395253380556877577052067335982796092468280253377462136152975658663877015078981424659264375967198309473939549073050678001370765005422925397194826812931592497613122980847044658191365266571389062563768186186526542277314823326605480754532846893580484015372417846871831552673095540005529609054423283311302490990680738714401687221483475931561880684654189548216108257756545915310361720458391839390708836940402419237975433342028654536065017809442116002772070995827225332852240881266277505092125592521782755209636988177548800360516122909950448578243221247429768774590223784259818359432693280680236012006063500184206514014718102001730774311778074006264198585419726192655415103655965089785154321694073972450270769040397338469891100273663256378069892300611180716529751743960943248540263111122022453529103114561445164372514690930888283338636514893138357391587398576153907945464212547495600973485648749810445621952456823113433105074297088061164825167605616484797214291526756800305945611753369445447740218926638740566568677320168120506500768828169192770495075151736737376865960987877293770069202766805490180459684958067685874806342646874600283757254029571677330825135533548006830036890612948908315711284862838771724887352153395165803399496454844110355483706941753960509006491006896538743025202860322260739455964080185559448013096951438425775374430325393281810384830622345806473761534655526861118713759705672976719135912491120298132923712950768330463984258146910789449565754379204634365474284799363314931483256206166738734875835734257954011638663524665374008495496918929840497865241737650395838378082505283330033795303914655115300322802100814818510431084605566841292182411853325989747966701559690518266996987952897743379142591317324809463508588012658034942662687127099883430392109925080701263613708593866915104015566897675042268478445886823244877456465631073268824815626131632265012583465596507712410322541064416213084917287733205207837057356038770506180836164436950421324085905641473879842764152851644372074031178960924855620828042029929298563820568136851023743607780240172224600391290117463153009772360381321814738675143836670812160170546314598035811268037406529611722130126096256373612433802242657478133001122600121074860109260204717794759857617440266345022687322142926366463435759425310380278852238914417382744826104776473428084130169432844071986119030776062304221341754330305416481939474773439515796125142121389135852734808712866580963875416471460738276653237580601283776087295309950468950091928976727590726695606839924197812826670871640183451377245308476533610535974017330935390571269845475101301894226415452757740100303317643461013544872490636851989391818244641399592504593638723316692656517665268034963856075317605176152752814569826290735391402881375798250418834077272414524298575903557495290714442134993147071163014206473373587571672877325948994521995205270219837483058676519012716484728547948498330751499793974361797770122676610690991572364709733431613709281500132785477018990749146032324193895771140597023209621094893045679657034868767594054467682024822069060894260811452276681694856078549300507009978595259045853995976927351331441602610885016452049513886575740893731216149078448028426534844126599042736451640995658070285930746263960117142943045322475945731433420281234740931611484825781273093134557134457423333608760883582818590504794682747951771814148941230781575603195074939078183340100798037613754165117295639328850308583142763563256618374720020584500377475200458784709522701146876274046488326376964453273387035657384167569761449924524711112593734751157719147999535038572132807876100686637995387607640729238283721558278400308120286774380145423461586575010115779337555320333321078822275110444554170710866856089307500257750133391022340596383402735318585136796998736043465092268571276440432613987222400223882644322732784134824104834208430700092412754667979226372376849606840082717319753034994716790760833095409723785265951879500818383897729773802677437127057690309534244228850108409301066832895911716340864928857643154789395494387550290074322894583258130966793813091633486309714009325008240256031272699561146555983557950651887349975236474175011133459890274883779175677898520332153986139526905125875111669227302688993606155153931516627565503608540947504950967769143227466147648561739779298120741119476637028755268326725018393107046453482787502027148661073524323868761049788450465060530943826396322449714221948665931695939580502876709299771504223801644731606235716461993900704188171758773558310869516622014283061225918888757369703527933771472224623800548402115621974224869371824249773095933606931565292696716076701584119127900558528727780378158877907317007471712076375833369328693463447365061042921949946174856686722089336271611684206925438635513007319026694455446020413519587418503934170500757708498410056718211244431366013813764743033488029315028882993771969866875862594861330687908241893075511969291290720666652821035293783765379190236046914941412289075802070509280918704407744082705677208592744745894453678299172692038636436952227838332668954149860963269059882095957409560246468549393955605334942517743900974726313455897096548443071992126862791995936418910117866840179387653266254123236441476076716732953902702772687913797742413902861975886696743590226284725809915074817571982471968060386536095662743275254623205685640801368962736872376812190966362122493682788695387688096106641985046352037504356842455477206281086247032907899759773502608288389339793474466459907323042108684555550598509361375278552845871112061185446611118802453782976566454123185645736543897151716512601172498245044347644551589312107932500422921964588128445938686676331631559490812585381631184369062476113533012170622733518013205950138297414645233829025939742470375342760167576093846408461355095379013708636802353127751132192454480762151446887132660522890693977682144549790453939434165965590113086031813415187600568588024655778382997175586549313008029645845153347017306178033635061623853997330840940778893667987910605855380743434847133039572999339476843071568197647179693706543467719524344234408340554019122289032568095885257295055390354121572380170038907460104089946492055345111719520768500042421006769313881186868547042214262995483240842554375768533423287336068975272662396025460629606088798319534856771344983228246980446806170585468649902245637456609494882544555350804847428185654815773846929716520874208556782003408136871046449438631966769869106766674880456789856374977677075359549226172616842018388727709609525211916206260279610704114504104974780620192705536714271084928626143439654278716533668170410624052302016906394615766078229184045620445621436656214653173495211474105666639189054098664050988232893392676580063467238569379096908972572726309487421585271769426259744467681852914796898326829419266025629847053957634870624915254167952415622599428046625013522275001676614566410717759401633649372119482084876007566563217547357910290274949870288852924118693592543251022149516615289778736892062057317638787575626552450479443157800458387781418817520553749066435551926035734931376895697976050630695528616618411086799202172499942950913685958481586353601255059245212332777963799471783863937688591629027294179951219889257187371304122921347675041407210807412010422947405211324000352021896072230659367371880485465661012572211267266254294835985430495008075288283038226596326464496228671784078426311173341895340701961444399798786240635255193821791511724972288682155341241730075664976451764586239265829978352986243502303359841610526986146419610990980662748997795639747309166557784820066006310500874523820069681104549003410119104550438397804303989037475893885880503433740301869248304109847150781363290739304900203966129235252227859405901134667549413026254965729808598570610543529126025873269672358022105901204348327108761083424833469429891494927220783951333220397482615357888921618691385740418411644490487737104655551173813775744881397045788804573338921141703510805447070782433722987927487954449478391518975060640583076194849276992738727257199633447925772497354582950558205385941587222223572741776011155004230060489108322196998547633430399765836765098278370332662385911773305275337869070201483140764262651549938826684655675320594645579001468553965891489773456818549171949182201056882850180212726725101442160934949672863411555428849119612262009150662514584570754963041657304783724429521195154375170280777804417515906244820139799192820001012101527424090243710844557125864067718912565330290262890561384019057517728160205596925970407035996785861545083430289967345861161220066054735740173003358416412097779634956439198172060707986679992156354085820835651535636827521239916305894002168642646535751364680559131467210348506548069830360902244954444222422377683382437480744383113014895556216905485632897339995153908362350766779165415275824215392883877783239779856982068740857372730788944783557142979613237849178969885210619043053721725051322170036430482922149978358280116976740752418396150629728962631391090652323878873791987551595261222899307231622565615041108284215797579104085690103043397015482164088907834805155465070100565179221173463393997561841774110641184452547506497588423138917136707773004477487895083264349522618212143758276096730444780575943460417532376056724808191307856722425551671399594093293787435977153863339616638294188758950101183384346433676590108257516461182889206079406301841143739286481872907619682203848651211134067572423188293930522502962511105992294397459510179358953596008566408192128631888563721907883468378795223898036362536124475775180505811939074768029603828999448720137484410980450455920025859322049762668332706443061469048932078130852431466908127850464971447046102756750637020090207830820379141102655256543828339895715655780688116758900749882673576356907279322648587463927991453462758202326269017550368197937653875061419116303306054728335918042082991426979117814419878801534142165300823450031624335057547979661902562857841127238503533020672257978690637675212260844834177003692651759763794967662259896924300555503576950616780451837664551308326650932835691030501410737765374908203259444154684966122152212919657737595903523951670012563010686209303339536825379065634702663876334279416547397311900324841267678559517936974805243277096124995674496868902984644391706280901607572657368783288793198293490304106148751462849737074434956357485646774955762656261012732847450671324215219714429843998789610462341520645594073314369921494277708765774163656234990816010433157023414463680762614840866219580346469626858664490177844071608310575839668722796820481435797010194088268622398704721283471274428835634034051662281779762428906361243230083702442821317217792550452381656819372425542457643902807323444396648777909988439525042326956588629504014003890647322618058137728488025723917742447734544900701119534321265870506649642175597460843229167906052963939860872352755470818098958654458539179422122092159633789103660408715621127775387365331163182921354368583220128857958993665928685023293623158805913268331756724303931882666130022871471589058113809637357816765057510637740385440427052448005151409729815602015068570748207966408266514301672733821048019739157335206788549276113428822308350362081442901379039085105114554909994587142737745161792692141546492117212761458274845777876915525039816032402748113658463412303640325304995551321958005203585346676654302370554344508227066642200706360578503613625409697142285819644251543036612060653423890343112471298284359727755001999060954138987157875169204707003597664342239845606902733340893150367462582482923768935620340752285627456563499635424412868042134666511324748032639892863262983613625234959890883644456252374297173668583553164269748169605842254432854051524380203326464832612126040624301555419629370683631382353367854838048915253386413212815962137265334054098112971966541989156641537876538177667274620048576574611506948379778858870274584318088310911160663107288572022296149700378824516966814259671634090455877289574824211839273383619342870382463106562962720277660347947114431703021105015213533956618287355363656920093044448154076657728439242812034481387105759776003506104195360652228971930712519480288491155288592987186186422054401468370203816019931749631528421854733938435988555445644634858520378681010542580966266207461980949089003812105329051263971618034517574112985259940847721133131234583147170575627014023730101520486250968413602670946396690214546441270506454045989947492143859608620008545039970782025037103838527328548263869220628629305222046567443473150511738489484077418175015159740700931873512023958798554784846516021458940051857490155354810262886391355455543953023460146317567524775349746297214172862075023249376175607663056284930562053918847373178304361111218009184990878459815094539794682508749557626712242046784293280508829726683465148519553307481508479075813156579217030773358834111010048103208181297352877610867334752860961873460412508690249279566143989942401380594202209437607235512619711326948557129442475250208503618475418712831908074198890146571012488197495105158969636982106477888131903093470564826115531523373659709914278932586177454033248616000213396135556401762208557951058266592993432398939226224811697846860825906082440938355434120562911501472911412095368844698385163933933599688821171613162432373760331115118579190011526438048658556984116688764562896131729780072139113406531838960966612676617724192303729251503209310520209458522949219804902527744006871414809192965868143570370018053253762631385222065571485374304788969973317171881408016756532204373938848976352809534414741451696485837027466129177685446521622189342565578814401962624290870007996143980702907646223841621522349908636105675700713658375598076270830796521961987667265601017441970399599020115684281324690194268997107381697732378922135697514036556011529760399549388006916695050739746574152972830293441186325439683748662775858198555920968915887817190585212051590992030289285073114592025780074171748416134066166082421079766777393607004954786512415721858718593186376268657776358136047171494325407095349151437636170203957624575065163060117546675190427741943158914752851366547030671271338075503432556690352133727562480343088566715545086631193361629096961616289560469490301592105326772686696320254847918558370508551797653939506167685777725237274803946323067043792930310360193986562533539095380363322310862295195996717920057924615268861844403595843603323529956241141266475475609347374161064851058495869258512733075923593164452695031149663464378976101916307101353671658666173566219394593366735876292539344030418098050711889095747328912035469703627042491174280543037537066245172693246379099189444580579258082497110942336018005441384010262735058878262168906400226412927510447737263817523876043127143047763391350993862399302152261852688414157621737024633573355904845286889772451774710300646207038562207793604161775374493663317591506510986514565185832472970061668881273513347612638029528312610972990148505782779406565283767166348153130971378778756699833237141948055175025694226798354422201844486870594008328643268307516807427582589948142353784875581319502940979076332624853126182354662807659683296866928621099876436251967829799861820056116247759757503206105980486620410671691985317883974836412361290829952449989696147822071336107211643785016358544761363748590653836641035854168285963422208409199917112020874571238230903765670875796359369051511670063314948752140006256743606439948095070663965582137239699137444983010727783763114612898667315861147140386274940792918786147745740256618901072302277282270359049074037722251117300489374367102148739822477978542655048595689641135156739330034935179582393344051821765565859505701366746999605208063038000779376616975730600923993271758756914625056067930362682337957387928738126152895364480194791931588609044309330542020711663661144910577798487182023737318941644023663738086824689905944194102083043504106883827312222999288565189592758639784574528913573750018145477669089472880107776918536243664136461962778937570462005488177864389028068734555151465545364103754000613417074581735072547162922349123123162791511935966618787662953269923556302520466940172752863911844990544287572474708354693324962009528379366148321470680011546517776375323048888253654970323348477935810119772106018326695504491596637237294808150422827872645785635127595464991467925707477244460606494828403755583273143967417466936878139178842387130975419257558154414001649806270707609049104705516186708041793335515319698640913550525119664511797525708311710620688841315706048628402386023888395836773328143379395417015402397452498146985444030018504877350334063612233900884831707700479228254468715718117019028717532655131460971838276343831054804305991719579180414898346020553756326521737738648510307901466948190431121453975205932397979167111970017334927983958974677331319727163805901740990688654539457900106499910558015556573110134401539234910220157179215829607729001036253559529339321669367432857697488443994680758074746140621537030203340856060572403779094111700456434176281128800516162646248324337807411197533252164665514486328121529525904045391433936227226888612777550472552596102306743889821848517678588901555569169533371725167943975221376702681760478527829848689428753572739872201799030600870082616418418098669746590003463329939991399907059117838724673790275611752533181118173228114519269573568298359422099651814822618430280147980245842628759229764187297399385903447314517381115903697714418092475470079214746618587747241021690273118760428506271359701296184446180646304306521568362235501025012860259248750483109727243408457715648082940378966387690096941457045425858279337130065833530198421341155740689715780036100801664482599121512355847947444794660543012252407194389648384852477297331403003213985102638426723108814066452473387749482236411494765254704030680525538791405421442645724686727332998749610378930605283087211142533432461346606920431967400408688488271275095053786445132436994488590328181529468837581551529227827364563974236676061822971916624781598948952026545114745403815988924390441119769069393134539290753737773099100434307881409791811185723984887605964088946327119886854952771240100731382110395315087879981052328205273479790613995046218026358562976214154045563359726280374304535452367026067348085191840648566010839064792605513918764268706902512225085938336182906900326657867836702830659062012392432816017552676863716687508522197677176590422256007993530752939224652443695099879412855723717192397259971336260316367912857452423083795214032680113579812841230516771158016249791998587501342220498107980184903347182130415503227718345312500601505656535952407012876902347109791802936444916011357748853719265044007152448326700654149339380558264524214343496141689315023805485605919696711885055512059332616532255933162084082032652533154229139399885976124937597717401617325163797632964955455685773830450481623789251033687775204400670394408076740223239927967639690832737990458067231155581936896349609606836174992964002051135602122862552375247326846093441575694455182943630098995003686559751542994326768556790150520199878105227030090754199359821408272811102769769126025133822869492057711988607046072961560891189970598339244842631029623693827507102074346778868266664966498088374201307128448657044512014705087390338203767771473014711782281106733050490771536072747385619170438491241575464317072010677604547846065484349889648446991750808011722703258966909188167411726224086773482345808528305912880320019801403157093031081799864072948229305316890519227585577292130233984249958575425000327747376740062764991611518180075906943840375905948191505600845288509148370007466370153746070413786797662394412873848000961069426965536957474658627000159442035208248497439747002501955840736024954018515747558321502683904523971022531693347038878619422344176168634741382452661617149391736976910469970607018793184331636688313963386082389163896410927184225907318262543414417188541690495925390068670778080707659945921069792328838578506978503182134134164966677416359655280249593609100812614932546451403047729597140966570073434193466193924193957644528569480834356662794765629364314945804412002428360076982769375576329264900189255693099867095889419265200307210817205447797713008566049806346376513181259737255721236657615825053657399210185704527457268992294768634732041938989946218954004015480822152105652975943607723360156575296830282820830599932764996975535799327063260984102824159521202076688205206089048957923063887525689461668628125945518488129064533568431735098265858912489923695113027932486916067146949125153117366702958221587400187233018193506304428158855253388829592053863970959593769775876093788236654121733715906069076731040181176525178422916143173299310199004759073175709333359898689796539283206317741974240652598564158885034503031618686211026147498816695084722618914926232500441357163067415541175591617373431537164719072516489206295835490819910385613224735353066508254614796887044411014403658804690575197418452378297587164564218579957442409638729059710579145566648405943411758156069400048755254753181928224312918504119152346610632371317091360007138238104256233554588407318864921494184831171488628975774015332999276039152063604270365615552396917502300616443744700452664092983594530065494528438234563724871827150758818730058435936891543504895359753110030177370702875361522222771227033084191475429424439542191371345341459241729879423798685109243187712414863290374358079837312547999004287064953190300329605061473206454814927724095231597936467069356436541934087271938175659544903243481054243478232168559170854333582506460603357227807572816822305736471299393332387543882192667040349644019176071326589187180377377118464649646966878116699889165787390100709873822154603752925513751443303997510918188003808773801347583483668853385752806694819743425213036017256176575576336903742430297045067016760478133914928388939871009689322094636659783956948931928470995306644226117369829290338600401613864202513519748436501626789001626465505864659592472050671393097477461545506821644517374706341494020869200087706773474279585122617350256282456892810389138517530505487124692893517519241039666898403290345738934403503028914865331980023450743554883414611677986376288948537721281622055569281287750025785823892242436759517131559402871428248259665691932592795103101181696336823419417637689929698342576761215098680098690976027124777767746964251197108729247039712711140109974237237721322070672753684122659756901429448734889175057423097868230968029040870931580237509764250082743849329693742163892846989946094644931491835815591702998092106987731416596254614305607663564451291600508630979821751571755946956825432170116638468871473326483113200515475160665343849843721224053720612406201764812582955772847759279066949021485038234461165939624724081885114182581717755751317712409822811043235752858994509049762122170232756197428729639519737100650953334302463151130787477857065994630430966912551918454147325563065806480904687549017652761086083945132879798990370934664481349297844765040230242098092476411267646437814302612017303476933176628862875483915116567159070279372130668850000466446015324197878140914639907230882499527326057493369350427624198647001848390417438407626598291501904864686222417579138568670571445054765587982712167188857800880241490983878250100036702885183206539973165816763689396963531705568940308784850569306095177764636049187766559559870665357909528555198848063295203663363260026244760452504868585271377488676400759933716010687983268140745229611404352332494675535027316617952877477267824768905302739695823528535865388692349981851481345540379557776853680924602676231159631681528291397272719295836877855749036534617801394705372786401012216960943215368052097655023325544213914411676593265814814823372558879122692831022644332633224529256221894224804665052496021726927978285743815848782758801236171331744808346438838941873306445471201928625718219130026188219641461274922813127417431226881321516549682639872351717379917288018879136699881221975246605926364814076164082499950782878444945182701930224354780201782083982125957306156532391243356542111186775477460559263526068350842168692961532540265919760115328184518787677926156585927409259012877142305175048438236646134353472798326499712421716743274154297758539992285836864734692909083790163531517286070068262277590089485418987925812125580560222052269787704672862298658478506047337980861744813692094862584190306784634456835605295789902178993306048196798010385669935567138821850112845529129844388522001289247735001576552339394596635505814013514552699109514009274938985029150316050231094229702831421795851080103628138504516813483364679072046718131496890476148845152117812146996515913815948454357458652182707969145488736502406820378047191396216529393738733434505994484213861582377443876865963178513252337823553132508851079948257250001254979677175132325279583892390403149483218973184774808394623556202656777373949139067104773370282821437655196998269304214796138678203368234315300876950716712898366763108359633010488192883025644266057173821690728772419113139802218130044379979467703650683692997865081888772477544609925188891005379011706743990393212135987359755175171870667975058956663715823586071185935198514403096412412600605754820362306466550880780595392504110115448672145853463008162112130781655128952659102579470075331478033845821713513796855402905047691101661633055600418934817498972959927339680498513108531940380680672499670630418564977123054607731062883870023594867223509138778951438596735685979954260450733185212707430403947758308119744197386185322714602651133459959698752965233336724759849305128534552134674071681455587411859398389889315534083765319562083765687594984535398529339353187397829416959139820290843606451456705099368091189528838065684700572378693430079842379757287120050303029814125369419233117697768074547414763237476023404111205290722597348282888768584630722213006686961635823510981132385506776477038497945045488841649137706933762070764627264905951109920321514794329604291991653246565102227693796579021844017420100492890799892671931765859882993938211007337269198893815931985454114726790878064787874251485191102259882812359612048967325992337009694266301391616429915758146760668480372330978733202677995368202110717469645847774465823853799581176721245543755010396340052089403198528740056304977715707176132035812277572949016034406120593444741739077988138504110922036075846660613730087753153862110465861176097315120465432424364516645478310624606799546019819478942859707668812653264871470160863356314116820478201539438074428433074798821245903530378186990788943060580293485277603998297326217406005270588750331864623776685164641286202777608017980368799906073046071843710485321043719293735544880558759898557875723199016428794467500888153208848292185954721140481117998319668946396884653399626240960295947950647050573732648533612873002445125801707454322502676571186550525092234062805297496986415104388423062740909465502307769429854736219336034484175300262377805160658847269566522486310233268219218227371046304340030292901367849980615078613953293833668024687170809248281123012593295092407619533009897075398693788357002790875514894788904597693741038388513102585771991125387541649109203564130315650477831698990554547770549021632674408346873639701642838329662351001394110869819116426892910486023969374399859360932406072816934940868574406025310590035111448899722223487758174138959896545545252204883761097046926043527710090008420522462255700083002889381233621508796257083794312998931149369039672534269288348702965627217744836520099323583685379033739735201319748720609062141978083481816715194724159021186729160513247880122486089927790236332381470079022379309480763758721787772956299143431652633530980454328922119678081169989876837201350772561434373113133333503324205240546048061596691383725649645177472740070500087731206872063378006655096180894351404976323985591658183014969180442110141912775402039023122874444047710732288188880975890985846456759031556277650399724068071401272951528917846436063357624366663197405091655639893348599325427375018944930273638312990223765626562405124965407852799104947523613350648739665812019408547420480788693868566858720623477039828261420812881516507745249808974293092077082354090012471572820605218450924583140947170223637222099876635814614116146739384293834857638333598336428974858662643948143223910209291755044050554285600582284648488005465711159726817145401849912727765210480548952554136599976009618727465814477497807154646861434165383160631211323541393814875607926816844867390794947337707734546603577456880708995069369225516826398460578299100814428859872440728155341085341580512043924762712556507984395766952784743962306021507086573975660253784417706827703402028496897254904962784124692625102244565527656153513056759825825458139770043211461244277256204192273433940246619502266687796273162206335753780725620918643077890085251612411343005155850151421349690565324841561179648459564617367966955553882963269175425246825681014325896414002098693255116190915982007976258230193689284892678492842984124936521143268360933943685864819770783924202553142405301080519028018393914504005965259274499872988030705203729122962307219971942030453613337206882489603635573658990192744711208351969679967178007667027676127187763557093301500034408462157687837064814566913700149368526645778961397611408702756071350609526914905493149975443922099215406123159350623211160192293622133602029364195499030271077346895830094032384406779437574910598229673685815066924767612113210516612004894945733149342066284810596355670648340177405260087825199246551098704166927591185736748317020137663640002025831341088188902030965903543414331485439049432773264079016177058749342565688135779262461435273807275040781499267742434422758912643498820881289653910380207090666785053755182795267068604937221651565419660898187304680276776558181364872027500211328814781018481981104393758381670444277855854199328253237841996603471016654080491549519543305483649337862024312899895583466896922869249313340213747550986763631908877844803445382375657074452248773427701086665439455108832761375264185439851744068655958944364396475519888445773963996449571783491925521568896302948407882061386007545760898363617279417894959645710578519530906553288762426761163743538355391262010527641401095615171084277228804174382793958950635043551884893265405082948999512752104366475644873637322704599691597075232420750627874703675819270959425390645776358468553664097731274848183364400861082814637816781221690706430574704607396973935282628177268055649683913605330254527750342809903632116217252934669811457082030615617201328242947345108574664929887197601172102508835478917679939493654240385050037305066034331442873406829957371515510480000760322757829953109114628531698215871442988378042045054659256619303255302126131039217621806318241965502406991245962699747234898142146267184636042441676778347405430131432526537555644973669793918575426692119509083859510453626586868818290087200098195719340043921869529270320510055405877704743417529944863692059757901506243438122719628811390914037284536513665963756325831210209556282701834780785177140525158410180034735120494031188219893953040638416695575484717037326142652450098772215369299385372207184065940416067642254564853203130636908682544379437511040756802314651192776861687776327260777892218155823559958147935287313982607543159704014957669983257515453178570234733008069347087329615431078422448643942750101048347351774525558613278008379487971415284974215742183814774349136827382586229083566685408930047898417941910162192559519232029125735263397308526496695949869051564406528665144390050480381288283142923367201611640619105801565021266371431111347148617689028457390085803071000965187576209274300383919358425815583657167862219341428905288031568874249926586191589471264553584724636316576480666826975927610295424572147031003403441564457700494966375575007382429604840910987489262312250390340233083553993576092755915634739699494122336569832560701356754294949108890904179486495568850267517416555423744666357244679240102435920877380752881227972674000276286210292986965411608699354674966729983430727384427679632805389777551936181237536942945724467277074688688629916574396953135563762078179099036231512406970432821945378066131545721069047494048626029754943914434968804910501135386806682178803158316490333110062086751897689363355951167264562804109360275215193599223194398109681135287993079480823725139757613208716798127403289784787655094849001148985180638158864297401020639605987652790050786188677755102291882547911926410943658504760968400867426868222280845801432938835998375405437950743675956007524906940918278605478658903108428045283560806624282032462818597637361329966677012735883789087977611938207922234584796972740292899758174284197500177162231164504527442251786355138740021601208037107771059070907460025760264624526588281579917958134477287574960492774952051654212446359072874510257250005684590566751163409775485359726866212627030625830924228148163760774768472379207612637165701394317419574290443541836163322563021048634256096909844530549573168932716887843404318071199730899076131256683515738787540561028288357916109660099618643086065950217010890061993265158166298679238351098294048492941352762940196723107643008504605578281957922590006275705484500760508900241999169380382495901673871402126628840973612284377811997524551903315943211535146558957596472257307770669263877484573819002202549306387637442864761621094385110639375694437035337611059272150064700482127890900202605091520619093297009157579113067774352172203390221178671156920560230323513613499659885532185031874971497469286255702748457476952726271401475166191998981376462675495166097342069807860264495399197050996520228644082469956351472544985429261151786972495782096670157238111196641274963326399885184800350333032784464450290149772745045014571873786439178009125620561881323306070842345516072913684581563255821106309692719729959476236026739863743902474619968156695858132514162739565381757213148790806223476535136274772356173750769594493579158084242270110673366067661040288339075825735878764737880951381451192289266291115137828154907735487437428679135329949661792452411838524038685245616454422984993317460105754107066797563740648553715860189988537226111741196598031101492140584975775830516977484010565039296872446453453758549992700695094391692245499502176938844634248680157517832653968378765660858773362127172690862848427080479329798101903611038285193078649872730280246879015125322123144279287575803584386595462885611873108339336320385588157879615449111684984030219344691159970181877082033868609556199862934970067721816875300866155816353875441977533880392359958060927408940709449051854107405447154622233212661459178940063290547918522500597177013364628419556800025333043215036970214040226441853033309149921709210191798841999025092230002626478346025573515280878031124982158639537750609844761857799579887344598756101712382526220272962565709609286586831940942454137336199928109314040654819268743245738127820160783452739885750666797100693821836130119991955642702874966752304481121857622327232193761237045583030587585798389476774851042827658212478121141203184628631746652678981355971965656728895920052636232443096772730741077927241523405097114143804554099311992345877423397022678941125551573309540365444422809765519955665856688215034177888781027374140485426128699042807692039237590705796335403310174452497484473729839415018241093834640413427033564623879732101013117712437441562953911683238716085200270560840598286090007730017949177954420341594448930049235880478108241383540631096340995504850050764866991868213489608803807079086844649921952577035122239285938564047429466716750007039166971787897300561453732779678431331845926170728878835883661495552511317897942720461091669121461067257517694666873306667734073119828030711486486528546499153430507094171349365051093322264464571540623865582033675199008430371558902588043910653095788929665004929339672358526457502977521826526976761915931466203766514606385977216958223641757733329754737661825226912056509034700306452076094185064564447600066727428903165021949995338586626605834193847432331758813844098095152141984247483403024022610320289498819704659224727310402257668872916806574103267707412238493522652659816558613872899325981940145516196996728939266092442858034281849934516110615807271443695078006596127107912569224834959279032106938014248793274870388115959427033259279184189716252920176087842628166558697799291921494953914174159428395487237743302914313528734494756123911084298152095364884894714983617239514299165028598263713970162657167214508845000274436990229820582073056793966198066526196066923888489220739493392384089226213530508282426899396898349426123338461248237024848695891239476848016470405872173583198462039955462708345336501273272682088063593827850304397645334836718581648303416031309505274458554255751780805659361512569296014796364378081099650371951298638379080114636839529628443172188181392300588431279762966610553527977918798940668334227026469192807565348442898924854356991585016505213078970899124953014905171989900338734378400609240882587203220468969826815844003497374765159809464235616206609526318244473392216326928132588924561852335090866307147674806821718874303218465627374305904519451757488415189585953544926000734273834435041693354240132342268561851032154141101249341237609297129166668328850079400291190326821735037451168011005561194852558542611588587521576103869897736095045824654860065440303382600169624613747940719200250354457913316036371383032519375147562432468709740642757692804549374761923555193542908810200769882671319326348078434508198499410549708042273138608341262147621796924491132472393352038360716585016059523291275932461287223591622441832987579192214396703507547778630245595519212990434083890895334716416569115334710707193916946078398113053661425493550141505052874130867381250235324625876865236621648331511970456071679882274771988464683177435472573695563454998786353632232951325625123871140578688622844755188077633810270127728028527392100372808995917016127153466915774242724808027416089773126605267812224863863000507068045507846286219947325052420279936805549673175415313153460407094009276499324151909010710579032020591227213029918891512205749596023431948704830706255836019627756507406801173518371650803627982604866766866958859210653491016793318739985922834411721619449640107483856363313884684059909364076697222199278436397268745288814851627819029189200512300018251598389198556258463563612519634977086188415060365264731968387266828473709606806235060901947823545400442639203393021354478799737686189551646056693036250717544021552409131523165655045377235766071004970493503496069078416353480023966248109499294348937732217076109625634653620583150781612408970564420058830285967316039010353046327528172166271777717692481322383783454877628825691689929659146102832818625694844406568645810145390122789069913891702834917762548388210153179856988351256844956961797429565210382346697313328818967567498262470698882026073559243634832916486348230180663488465507976821835254622974509325412368005568409145054392716414740029543676957016537994023940418371571727262999884511535318726606668525687716308504363606280216921314825986537741251061639292183428657987807371860444716704988488696505423032747067564801407466524418585204711544743852810614590056125787632833605395247308908224166859325613508992879111913692091096251961196371813858681172835204850317684372677693986831522378225136042123906945359576740278400943283874929257109646370718182296793051489643879049465689806148570733384941672722136431593376640116963264465447211642437713284741412820331236082950037961554320735808685124903606014963762494111701485425649227494257730050548668647983241041065991529760682444950297361810641139332533227340227842602134645187644847217568830940505153997001037225975711305688273889004151058457674366461288279615643353623747193159302121953895612258393857590657058581720722448366172013245017115827939057743919615783022685292456855517062700767892965247821775662260498689951726321443750746803411520723743818258623652269776170030310790222891851763868634415657378137921878808509737789370753366112181522874549207546776910079254687881325356435954195017210027791181273984617697513740498042144230882505685887658023695478886723510823581094093383079607249108177032026764655502160270478424524244282070828674687994618954606749261635787749978453102017870771960324307621261137106048616678825377308486462527646466763324055904999436303203767969448919173522942321414717996323578407517449467955026273378059817822436863871409514005123201516073968465299115941674703178815225504440691637335856641724894460908662928264562247656486826783406119304671982908409451037789689574383519869158167318425923355173386905345328326200615201611576259817853532245921625759914336951711322798990286489438962461678101553460364032465008329437972263925943888793068705636660366982923381209906377773740584170022576157756708255805371036805129087143738929600224133843307372902069177252531257847567134378482058420518470895006520029789294687076136617485621760650285141443114402491654017738211417614897980737112709537739143339655188152001730575667858392586129901827059927029839056416785295180758932439493142319318464700104393964693057858248932396445996851454673959612045563950362454180057255587900399030458664322918921435598819370919692785981028827489364016948070319637673817755161924167286528785908201603285166195545785808631988942204954285093637808886595859925001761467141033994156405420030802419809360793952497373165011775525155983417884714887952452053315903318889134626608789466230887396808377942183609178641424355305656956787738154973154109133109014055196736954979839329146373960055527339730127310665004550613637162009348265383372528455189006235594646679306824154615873668320287020101554503592817806808521905219059221406701100245376342786336612257834182436702036541463128087912056642903056788363993652231284278670416535198927907575451076456055471208669723690587995072436715396873272488055319276665136979622025309517961105095915677477859847234902470067602887230248353282360018202488167986820037094195220162704138805969048338288771946486191440675675130466255484646570017582922838102750990780302691669986675850019006294011466912230235525322483620677535016851723766672112957692180058424143885955854050632574400613068374534937485253793113531351661559025315134316696796824252748809570771753854960597857084674207540733262660212558963539271163135768175587770864748865784660925050764095346899589182417815068196406246801217080526352523876782089695916801141568840136832170933196101091341608373813366624034468728180166934310725549269922405124626976010830561927429671120965831619238928584077889930701137700606251057535403424023565114634516988216514147383911040936447441315293180943545125618680487863389743257510732500690411700692839709662364568987588984334865829116436930401645060572414445968436864549520189107652532642024495792411701620058320154719850860466379697796537728399684005156510007948075369798151094403169211768495444007350694786393559047732861700373281707233871370471872837441168545973958160367340892145645758733245288904474806861731187166893378949811410864302333844906229690279088031749082302153641105571655916947549197721413458747367464185942917264867757555528826909804347658458414964275850982807802185547454776455015552717703952323154121371247946927833926480210245566596985408696431713837069346794329085885362653324096622851025625030064841311505555498794020805250221659903783523567773945421937732036703827083980986647646879379266407236640014119206725357129176081437089813201563333762679655818720589952668641779889900693524636040104728000031382517558006875163837652606187117839533710603121287448160810651344049415498710309518224565851226498837134948456505589745039059336121910484328101264486880285790108642543866763641239916934548168383910200424818190227000833901338100396479686112253105916687661446569057602177530431665898691325437091924644315262694114121893788109795841867381100218281431644664796032542053931060078205962526831693635912069278404353751582809691494642854216594302483859665811396524240983757606642252021178814781081555465876832089470971874165194986203897477617464011558831605026324177619871144712964703052359964175844903347265084574329105734188677556508723299760797163647241340245667292919406137683385020409221587284021429210116653815296638782550414354050410742132734574127397275543946608724014758626664297449058700096507874748267063925022584286435960341371730766947175237936423429757487629859700272110883987995415119627959380048555760922024327976134088531756279339598272785953869105875463463217208895939917833873891459880204826023110172269102432160180215408676997696899361828193057850241494789194427739972619535061532949642012245443211715844053855051685739820500661149609383187072788942887474854557649733884308609886371406650948469924991618121275900453299609323632217601615300710499113665174938261234268518338271296915920444386053500446235374991309925984202824681542795406942771928453232150974872180372673447586394493427432539452592686652084597828289928645928985726223346009260329684023366364214456898378857407786565934005992056768290177172659930291815986935273850151282900493379639217882686070753206920015224817626173253723091717340693129265549715531441048883839469221743863784407466918752938746185880824441790379144951087556226974180779615168616036585910742141382020078437243371037141336615210413848133152248632420684307409867085803231501119713933745947796117820966086252644271269340568913065263100959180602194925628791336790791192641202851072149696550295792573248915749309958257416475208218251346540703468748337916741989359849611152146459943135623574032918147398994446683622243682793241290689922065993408534487695831541259396104992688588188848244481762277443502060864718386629092330123694463663739603507241710080698080063448242240196230524778666137247359569588253431063144025699682639403696367216485159422848477548748755150646414750417436644451493548418733472668133785345785882449156805987267935319872037226202416124660370254328701792177661460722296551389315926912071045288482612791228828435038935833799423632378369285080269465034708422661539894908665304890640703046156743753868913325645982146224830052810360503599013887850496960180426785903540538766751937623518087628334535939897828597858939932226449232503620743044356285064063538181973757817093570445840557693117031857606909653271562976700872534870368567936120269230489399281856113848380822289165488588247849079425555700167270712071305872539410311094448347105541526991398590051924598974426204755401000652615070439993452361363623180254668004565735086994160657777624034566547069722313213653427951263014564365453302011934033218687778564247121837283755248256706418190449777649676639613327243170097078213691986661437134553407926676590496167627883654620514422763995831888280768204036142054330772619153903277866765456393053619474511276293384320280110372454168681242704139457240564358699289356867947159741668450983212094252858977038456733393301605470286181835369816165331699789443682985363930872662832314231726643230724517398011918748277000209127780863217583043237514170204927072537358647646117119426279838982409348735844495895389110461326430939985468614814214258819253707404906662249194402353949451399805042510425264529738804392555520339517735509924646107054449165900795859730589657802851153124300861357292855841696094557486871869853213828861684581843787637238741780855710905935390651282355868598986019016312146799123286473999366240278681608637169977751215176519811760801483475786703429385661642223908630801866607189588644327929000221081111068550383776040164669598865274351203936822277717843806483913734136476485227785170872698582908777275330885825158706666500831928836791037547554043970332213944418973205971606921476823205988248142113665734792960617045560747591124047386646329714398978429689015193257587166051404135345112894880835207049832745658676965253488436003457648395713130914820492018898378335481973162885905534234861140804902226666350922701928346324055625615178958866235838879021272598506582441661854880517765762649538033185641224022975993963194703384139162396911957386032039742456026619147151244469867556000841217890447643962778440092612854925702778969823936778440681275962502313416815970484449207103554717145402486473453929999763078346608264177834332720634148466148702371413298161339694816984727930621525315379094192549285551314360211071124309915171302870522968880386611143449890796254693593650665968882980846423009907427207170113791540485283155999185174487310969189238420724448674691012483114195531510979899012714227462472468051734934428095555213946968304681174407321030534405655619711057882485634572624490564459974192448042836140451240988070550403414905782220106899747724153547753919911483915431292943478308937649846822640639979947148195221666506342277449219159631627742208959622603746840392286551915286303065142609937157872965526099258707261362626171523282578683548075648628563026006982218923175758128940127440631893314662736356159580756830249211238096469010105110386311891710308027893330034457234293922680204994059135053888008183766581094096557671168901836390452678306434133328940240812179823645510402339363447502577382974136668986119223381667382956491614032090935756480034324979154472801366561379184369650468228133909799971558506993777147905616904568051138380553823858663463415514971585461786279185051117748889681158837048502689045394129317623509953386014668864300854769785655334347739727658884946314126569319488820761989337043334320781392491288053793813796764035502052706345101066910290045321213388608309232424137174507333823689569714081912519776361612584529457960682608604845122035009961053052033182556271493515184697646463865107430922416494078527809226421150559944499426379533525970243404123572538160560559429001075640988047100951907265697143181441070927601155276715905547613024102590372862139249629549405259884043240799514692733110459366184279139797888799136400064017556751282482788528727928387065584330793453001729701668788888751250677370875468752426921387607956681637244892366321870354765847210925073657615356814410761826748481670406994195067643284394299790006678958078774840615360878725836365378011728847853494538408000872648347928520097922912603192297323915023892375610745817663486098669382518104484306058544992164783086178266090365882282803422982058220039139260443060279891590276882242569606084105651526976392143188975832298284589284592806198820554563910515742909268742371750336390644691844444763906482386055102378221884035332092599876856261152962717320186452816546337390082459534043455602705977585707736845834107489623387998119841681172481886392529100571763605216676264086975802636383987313204179284421215892032212042475582027628170498676027343116801306325928657571068198202372589996385221318528759807444827602796128471533309400910167566573579873912736653196284585289370807292024270547323527182920617394596455618600071647398092819893537352869054554545387432225211795844823460053352443308997337811697177273671719914303741825301012355587509175158217610304460344360827058292735761911630304842689934876913846137614587038785305723522459554960253931270123124298371820526589122667522098584609782057179281302047592095416184573446789596117054039394713918494984492957314235481009275567901051668893474229006398080721909559674299718833925439446840725294167715703171429372328262583331419615117114452039480856946747988804114190219068216468818361763978174497512791502039471226802559754705924920869396239816337950745480895549160999072378033999987090001120804671108011121328305137271967542020804873344991320508886799820994186812766659980853604276222675498785687341233117544315413898990809633097231029649820535026226407477100059931637793912622222160445904365144839101567673431041693979219072114916603663817845048191341503033882453241703230244473817008853552160098692345957538188290646121002694804222596560091263871880651395383829129477953349404838742825808394582084660267222994636259551931272104164824531958178394315402366532998288653757138294805470508951491356688226932302748017617746937391135477491171518983530469356130818517495040493974539418460671323922466195670507474768946844345340073809266357660638273224977669652576184800491128644036564017429940800478886806136488792146284838017920739591716246411666999349306903739808486536336096464745522201084110638371074563406216786876520143067618504975737903704220918308178830084225533645042705118741090120390402474384564231001669323297406892947485393732930190650051082783643149008926669186125097960320913274671391289195806059694033686210792845634340653539388192321759493601072034268796005225071832105016064654324752896101891891397134970345630431166106483057452615106825856129112626809945021612185599647667074411154626330815999964705454111536244939208822345359203177989974856895928099234417940755775919612220552698496478457357391158038182433214109287842508253230434666474658444309025090409347613641650804216611340255592458456137688453368111717195881245628556482128468009513351088002691516831401020482466374096492864369993118828961481625134053300532757862413214401796898321723977509839738029649292054691841637514873289064647305358826514707938892595303951024988953988092431277902671493683532599418321955441827137505995785673609372159410663678579121295372325432917121952825389323459407201502623410742352248913099462286024580532594255394138536397676315496519446293896217932264757940705139728267916784672119589530228337461301087641624992559529585937267032955274699653154079546216168749344898149662347306414519422504865772695725270894304497798378066700204609554259207081250729061437509653960362804800180014155811354218076698363035582017422183432129905761600450152943198320184239480453970060390208408906857946128003975178302724336502174081279069604964401106620227717205168551972231094517164361045793859076044347197687950089545308990325246589747176150911985448732046833185884842154617723162902155720819045383907776540111486445322301292008910118523889195487828771462759705253367500821060698600441195952977314817697666520172177687753515585724055724253301750907234238736707528302062305261386535334964503088158327440531956927618229567737437495369127437056245183733053983429237229747305846706811441699997759440230373367348364647708494242583210657774320860123782366429505840525504215976287085651394534764738902843924651366112143024128435525577325940536206852849055935184309215536707822375749415324938163040760794494520679766467420823821304031918232751580743617425198158781975421295821373719491271154984050708692251025795045331077003011769478842474388725328703385478999492199852432644764873516879222486000159437694239268055052257107400008960459043545164698559555588957237633284537911656980993709606344770615846769915579860161147605614636591573433885711883466504868813157370537082151968393105611978035538367241641567376274546969528401916522410856360148074081538881976792177466679914876489341935434552188517192554071885911440456669387585404374265283065976869450920316245901163621347577039193409333979204585932531609010621665884043095833202260759854490122582298738990517607990215112078275496712593799020414153616033105230268882729630086379273996528980179010008884571261476672085973178212987702030552472915006846654899789870393081114004419831411395410255518703928289299220893944017371350829666288872401361468030727946920335073029512268080385050131695634542251829840417075162565906150950822558990334003789802410290940013524255063518944754546892262410288941652131066328821827322382866001307356654183459573898045041450979598116185455225764427937482526118169396831923059405169768840287396869547316014064744481036480753686295252462072285189917427736293625438783865066804131922677033937498315035841139987486106422203990007664485809317888889486038247529502413118020263461128850661200624256500867359395044446430166075399814425886340472530299768695289780027799732598716975972347244506022271182943851139435305620945935481431836117947079332098443871912967974490409200615724563389433279614579873774736272567401792431108584238184488496094512311084324694830823104168246164310230843659909694990310482815325667348994804829311737872088213583558743443878447422995315212085269983760830640453604599414090815741108472718264414711665421370563138704354932237764902533418369381247272483248782731318057200591696180241360057126125455961427938988707844653423125370286065166297043626295064194234816385347060626073489707675873085742114692585578084787813330949594422160495990598033745820551878594341683922993811494891091932897387868935486160086832054138446947603199436543678816753808147448137130535747862765701722060696153658943546599505656900289320256669267369828813623726084408936855135984080407586321298822975166720568302692156145237823199161612057103046081931714225171127297216413133587906627466653003209700631170982635935723921078270447159912961617416031524913077274700174035562461268042039291925138395576859750343798996224867751874571144192624809794910684839212562430888312650146895373566911038685649861921165135021317464058592712413821394146919202512666502516211586087977187686174820096346070068570412777363602116731144725240706329401886717161086584469708668735183551005059204991185552439234925805602265215171768395184360031684730107941562762558061036557731245838767191442130109287908327684086563146464570294951044719924404898799844800068258193708191898584336468772100991760537864975980689870038057727495261441981488790033332201077322805755051179166089932478974297327120772607268840571258302245637589550284136682409507539490341545578749627871279659749808827001097226876877725496314267033658999431166133386867014347333821928994936227529678240858857815930334918634850151768854702123405354597517516949154011355297735246173305027112129333067029932331412761445034200529865805717152069555190597134982481789488154015173553089828194054421245027252988349319815675714665687606246982042842423036623802012081266330551035983831076528255659799516568099640260588657503713912404004083496649228531959343905797022197395964579122802909089920544233458155952699463990583719565923826519183736052146895885972706045220342605849615306214840670515064589759407436725663441681184669954294792880866739521116353193455242304033476967675949416396187729520461374399347025950169916399838415571759402694427240543446784015575267004829216868117534443022015162829359269232137155505528672875388649424563121636411475006567831267773273661428773479541826957212226199385319495810906273674115386565144595874139837241957615801658428958350666698064327443727970219421650163842273748573817823302340794554359549355658380803206250097433234878508482259331449830077139708783915264735072751077481715327695531431270111529880723013580719870507626485300944526211252417101706849755655154377473667874012269357949850247757148944456404070624059809987630845928669183718343116960092685621864723131897089233213376232295566950573473941305348484597446317566371250041294372142619517845922275503878784976505721980369968992537681306338558563592573485265449287590886634552151451994911071058736161160176043094640733153404940216135310018259261770812118324127892710696012413665888192291172935833881002960597285943375212566359636007320670563451120604271297637925009084524122566747358329833372428421595064240097873016838287137862076290926805649826760916831826149797512662626042847580072871580469375173190970815250458532694467292755353203762395043292724509903637506111403167444480926208006219500633014690576692244543534715079278633185295487645313393250027272121648748695759196621806582151690519019712393335089893172199296793397884585409625166846728399040235705130813244230186323704489992582844528520194732904270267293976871163483766561558979199992769920878610951915689213714705695719749375038327712487856000921375251118249972244084823331856282684884086304900975008175397579763846794622615105033002965767847918178202282664771393115449315793188384697506631540720115943752999313496782426649652819774475361289525958515948197280680872198324252196716879794814758721733678641400050748692002312824415252188004617830592378865361455018881716267293788360051712309004882510632211007159716629984304816495385101384756346425577375587760338292187715549824040516035322461845908111408371256632364233410026401246517187329334969566551403456891932848770686888456446352943784410270002991949392799498497810709811340293190173207383607462531457497738072132177411405905098250801578247137169374588144730924645328629874910646965744700554317318599536361917943650601233717612833075061955599659968304585229102827275738746953595659236134359999923472613377787156901986178095298997835391549479471162699587201661458016848993848049012268457037255101586895118587494108897392636473273730839748658652517853362509817574367909214718505660121541818645920632176876713836691551224406162270451635498782294092089876681928010555800877440775738544291650562118237138197993804643774787773937383753096269332284871446492631122556797092806024515674485291035828567137344737226370757969194259863393278683377548200164413704612861273603649601273093448012567110689404742746261442801584365973941493714138536557231765198558945824351625188312783976580503452142718176032056657906463691633159484076975403614952739643440163602257664209819306949574602900598750054206520513152784724950849789972653478474592762578137636178462090750578120686525732173725977008688012216816662946475674409996897211353545715417251387210541814264215345438835724340230232050440135344944893076837421663942948921045555674882569086620857599060213267324413051795614612969445830277489358051327119344720313585638692067553152660306162937442453652335917745764856690301009739028131001360013953585266281794518480638917612264619846891850302312805175486743312954887653725125472241353965117094187499234667124165490848769654511859536589471259924246663639506867920370261532285401008484549691538522797032603479463681053487966899763201939245194572944540909927289219357705443416512506706398906508396889521865347859870813707660916533011910461495125375232468527299768723822482155961365214814123453827340566350913889111539702926464249705228368950072453301243626237875461808457819431566508747887348972297807354918683231554415327029085984620567736163666527025503122708639580400561425083017714302126004213485823348523350364378023202596652007370005569890871216271708135454932820253239197095825543356355316540092050078973146072335254372784003830019285048358838499877562189727293815555492445309095906092686225574067905136625348350845557896236043198700195484946225425619833554119277145580527077660453834438533834139510888884564716636652050633677777412629737762069358529496600849686323458011470335859669606564080400213151391472520304843926820815055413244644832609549698664991113826109031979549377758482649070557201523119766637774304142757675509676069413310561620196653081311849964917249593581521641470797360122876398292687047530804866357119954387150774406225574106623442776169362343384445003895672668728950757565618642815412729700079394423601400452240336430581269591764758129485719406860844606355769557689561514353518833545438624243271768819482897180563375569098722296323848689635329798153628030175438684081162394801426619730213856954439354305663525181452343937371023856605555909516591892814382166698167167842682547694332451812138582598170655229616857485372301590551508350227785498310076726801151801229321015031547340005966703291250219495549092744020459481059736750080626156278424796897975329367445276147167571074619162302340597234956550197841300926805176348793196741692850507502293415543411544777842209374610506517119990180538350670949382709951803342568009717445061046427361237326495912574995049504361594784290042222408819601313401368719136492926979353704569398946165845664260018962306813364596510916050823488694339211186171874281129211456363896409466750919483453477918404540171041045829421092592728101061422752112707334237087085101439410601031346925104249566900123116594695975633710731727037880481427111714836617831095601746515492975725472458660725437790793314340888475618512386631064215254284580994253191012575603018502459313297153250042215834155161682801786421733308086070645661878088471641082331241201440602288175258688819824846858745788484354848424313820843521291454683983788978177277031919597218518065098622232482730771355671862902826049909713016062208084309570622413555195769796917571207557970323231595943276029872527557320042753343836172292386630125125794541083039812937004907495884713834021158425673449297937931795641229775723176342309989142890043335898912627790535488713256767561217415290589874830441366500709938528437894250173914946974402110904000098708229684542587165986152397097838548830120211991367073366510814662518357209095783784693762554312739574326298066008900831567364165519073169337903733091160050027725684465381652002508278401097142892894183733855803819666493003905230900886373025364894766012279234317027028102033724958170531246464415318115265185281828745885175207712884292001350463835130274500632898826113668534478678710478960169162784192463442866155804368682257907920860101529304089713607124038236765172358132800904180256399945950235881893144730983797942397642651591190436229633763084318428171869603390107571113588700544018640697569965325088113947115425305819908090978872125346622163871014103226749672412683164923054142181266186263917551457069418698218825048523158806925123472927057570589665164186152346955872061634124410027129924009274903216323848851146807830834737542905755336775466006908344027667131513309042339144768224769366466750765871916933956414908968413291657974579873691020537595382551923533031470678752778333888332535105535744320111967844760662045827600864149521902966443885467058183667932737441258688061253118294544942818145104488078849598137597461315646856882329962213471970395513433971758285036353876511748211781470132634538584933343855919133262978507349508088879040444293045495219715922271444886690901729285947557742381824169240249168397792625617432496351226253522618834349526649864069603755062147057137210865844625285867816334531156343758978843420498816419265350473984715222344275613420388117075648953611230707516491727138555214411106249168373240345782847029136284148429629045986593550792695587253469663082666002677978269875933441852376933295860016048201252540392666188652314064253420558174719586041325956040038403308826615148924107775862826296644385704816381872056425106846300409488190362784635545133414798948933875592347679390355359124526419249574441257219044989887287862987579819884268559668434188898079175265454483785995897104273815066326408615256980336713127680763378265092310344938951762924025704787864181979656795331850024184600359030306008999657755391423164673768105881801767114588559785280351277743114555845018827000160984503125898597899931107909720485662408547273592034158444563954725682351198818056100357199426845426213579675735988331930021034533271456292396026272866232436656439773262521191173017673693954902080970414065458692109598794788802689937054238433805664014434377376498924229137991112799067625658372506341245144145526948898708595367025207759055446406994093709425895542944538886215210713395310163954862233621115673068123412009716052131618330502669125424715237225886560748750373197939696600437488853902148843484259673215021742831245201576576757707901189326137434856962160636953279488913338788627667444957791440343064313557615226674139734797293645690410277678895960533235227151662405891445320751162942958367799706923834539238149980214721679302199909458752165546810606589970283734137857977549482115014359282016728732318016476875229897632199450276377785314935620590496983665567455418481347376063726694538585946749020104440107446318332735694655923266212777691474883827704852193176569460302874489876265598427989551922705832980129938927563748716840253947848912703160457868567388164137382535422028733576919119800137322443387330442035489930188120993618213682776745283124467211429690073567650377169568018545818978431909035739766296495730045543380405049921154169873460181223048104823980390386624563245082450070227564223921356298203905822153618773507847397617788425083867808291936004043245920336692897329569175266205460300367052045135382864766041919416627334200296780491567190788183937710678559583275334715550708154438280757135959221169966369255227050873435884611256841163674839059934202260897824994404916297493672147229856594756686819862179066069248275216957058021225098491107793026071698225338563727958686601522574698720950823461246838990167788082250178769768683710867509865925134321971347214570677023831711395141988537736054933872534014380521811675488764158984385830573324333323653865472357846852164267818709342333229378772325792081026525242578592972693800381936386172397995866728181287269616887669597041729197868119841263481596156036173394545886499907393921547708868746365630930665044497334716672232673865852969576698295515041048478297540905464648524706354238564823169931214075982542979253941667986576003992995837649074102092209412520501547002788898743141967760966931814618412892346333886123581301507051764532811168102013603716770338501927747188981522124818605281836034423124594615044419993088273293090576041741677895218081998502402699876729148168021348874179037216844965132929885641949622743898800187980690298062122407275009472380778615442969901194564231013139679872591754221488411153471255567478566187266079810580606128342347661896244313654947446046505619877024950122673400954407441070153610609870077830515353674883377466566894535871686259934753594973653037567443750713609059618861590615351973260564473597499066929677863058308848182954489733201306901384123207572493607868962136310332993306919122438673238268136824764999920643900506561776813638294350037923568902390986150046896847533525622257906234799346656425614516680701569664488510629953962425214326238945326800861443060805224501194280036701019772380571010252554045921436119201676046627401299929561651127994600132976049924008266045544199268485867106754912715621657921028170229453617663160626738923159660764305973579500655860017307307806516087696464704100450392878197485744133632202725772912161443080665818752582586400840722039050556698692954260606995323176655192738574299346730519967819047122102878158584527060435230767742028637793015474401360363022969236339637986766913694108519273040762745723773198405991359113190481079036991948967073153784589682463022093487444035657659302275645316294710174043962578407392666656954590095816770094190999511288178651573324510849258548520292925683726020359050854414524451800082255936681438525914833232609191006036189605537515017883337652973906178456152313062528016478184349014573889128770738833999931958502380547036332018257926353852584256806627893174630467017153096641650174792224068991317148789443234248683182061267921184502090261637952350172361141444235830120874620885746798075599496450717778582507558456420243822392968016346102942653334001014240253647285771206498684655251606006179278428191921057734227439245732047480551361063372405830114106092998146787768063150824094533234391724642995776356584818556683196470705420000487513796347804307717249282066975454900934117528320462400789485682926112832029871751861006632575181250507643718677884225144373185842259417567548617354469299845559263333114807397108395219002133049640465692574011301710316477125229312304306914279003523469388491055118692962739380837715812077043733160822316562224916435480265934928162471975265404021415156035008787525246654212387659097350928213547477536342187451827990368894611725166894264244598320318335209286020455208106196137897542523833071941602486917965492688043268228896498590289092401969902645962308023708352301521518870155895510289890748963517236662966767504808750683049121746601216407367551955121358103571444557933304025260082370700734744533374355169238834373909253116275243832378178576246923249754527316220851502940989428615858488855624733609213000309615244769771360402276388310675044481334650591507246834146924844489090423927761810100907613890523301615574282336052398701059280550936364977591349808641971154431779881183204421647840477209457481154724000780365983805313237343941541642127518274579430536238153545523840347113563931737186297892829824165367951678837133621486696076402217547313671990708714325021824969641748211996102223683414281004541360194213224524658960742023540836330861122828608662811516315393107564483104098808436572492879296166851473820323078859750925244248288697409383779683264978615071792215979868118832166438303598603679400628849934033721367615051233087369458980400268730665964510478966431991735571902278967848554834439048967000625697509123778157908258009969353353791677848037402030404012888214519789433581515476257757946394046916009204447254948893487471648922455515001826402226040887010569415121485003928046735705250335960582380855512683747472405634710429891767724079860845248479361737689626658069509533617076588372337749793079497759009181636552211026883759331421903201153298340486397477824254409022714188149756038967440508812735561330551667014331098649193264939133691932509832525519009888776029122940497067026839661645030549740693533984790938149235418793706380353785792264793058788241733301746019456652505010691377717726227965102646567157632262820722604187572257813160282575653713430830435685665390902729190965730492348619075448188206103286731919877774423160832035172742159227676658818521434914230100158956329129688235444903843239282959434095321430864825309819937173424766848303476001619633541201993631509679941433545418975679371164932442882148561253225451420456642514547722796462556747433275240412481570471319077721599788957468454050468560732185071245249211028438676606316154427314548434648818948151221739521683725985312625496799664189264475756296134243253866101473748479813348316788342952298392810937692342464331941454702705213229886777050961312068759118744661075371125826290521004373111478425342318969098879982856211982330127925290255445334461578661139138371964393702143870532293258499639026803689632621099493183567950345586202137884124842232704764501920200065210254461994509686855712615902364793143027457668920712385560504081025936281792665494566019125019790130513607483884840730787215356661124710189729523643342429315339655571883677819282143130112510818809030255540956293235812518846965330193973119135630853271661539418513572291932134580203354112878369926882817220032443831785979027885103033166292233155379594664698862397942891441455171006460948444704866195742661059249718145641845517587506156675529603400089034174583805413424782791082800522208056883749334095697984486757104864006015707738417505830196197908190575049275969170828791678932563474309013405000939281973936352009576838570088291974550531337088333499956882520437068200285173278614085755460779824203737730000618903815407322395950492058029971338421183680895566989154079253598551347965652024882194871329304720996862581022976769780494958507573981755246258929965292712811505308617679150055931040934599915661492007859669892278881136128953820481774110235310175483828734022627911038186213342716132737097966798962114121797184191788834329008155076461708665621145911088619871124365466750077194734648435076048281281068565156127336499700271985766261269742157373183032434328086606007597211646989029636418187053107951595375678761052579054321406557060888659977372692665063256971873266979643616298506977468187151494992926086439066427234325938971754997520296794911426783285522598660366055053212746817718034640909152592969524311725179905887331541988040242418545538387309295246305287663566314206559668979819760369180892836104962464069890760812597036176782803509922722564293002401432812806872457290311150615881129357365943709473125850286414801761770445383342492235253597128200012227592339924001346184527907605861482678998155810788956292052336975185032206049980464180951716433328669725749362311704384856352177366407756043073365089649386461319310267407685714672157795479011894716233474634327204208229797445499648901334880833412195457181626989900175982256208085661623007592171734795305700879732656381974050337470892886354951653285345002523691955045546406024927437978578205585022115679466796065995520299713724195667436302759548930520662231545729407529579946408937698445389533149785170637381703658444327881417870306662658232081039241090814952983327918019230606219223802580555606474254184939359432123966752229003740648248966612363642376818880858511856779626987119723965377425246913219130556640380193799204581058685128231630964944465101740979096141051895515917341485915971142416926611552630750517416809794561339034920023910020371645657755720496845923780899796668171049614511898645967062726938387954338019182211771182389547125442398285703859567476142653277337438802828623743145634134462938063686508177781984561312267288167257530086366996224124984677696353109536687090098789726933243637946518278680989261146692548152412875401999038506636705667351318065101038346839372956748764068724154623051570062211375134473313188615862856434097224345339554839598444938412485650900114347754421912775978838873572655928958668425065204612474308038831147058029536005475352343403812736550844865810628546741711423669925578070001678520682321769856045377502991847324473435840029505662813406102448215979881938822996937883098297634723333695572911850524700986527616955208563392564018070743345494640012449398807531906234558274982719519661714438232447713445342540926723043164276606682135248358505771627224912246377438765946366005554994231595130810889400726639459769948777550452509660165616424659663602876598632807524403428286083687649908334064093270659506596150886340835381153176880496304293277343489441093592015185722399472089324088046337747800854364856575750260570470196818733778587839704237406232284161770818506358058522928889706026719951883844915418647310685217986532376062105055507505312151093941849966059387911437771140988029696566674297047341906893921761159669518825576966769672907420955065418553890054219261250870230767318426063356253005214592052747632813148333267281944447822593946499738561439976672893171519000668454712588717566120091394068455555580826356682105660086251672432516627883373298698058319893217678366088769081158879465360245798612151767158900759668515150874770706235138069082614211089933561368989690194364537397463144772326515282730836068961999052259802102837704913583133250934099551010371722016843108849952027735580937187548028843817888364920886855257343038144025764771122507435867295883781424379489565566101534976831774001296637030832788213717634329788695268866650349462748234225009286710951756336313382843087032222056144203006207251745479472324948495465433587656880031531503117661280916953218805499256524566221785015055706948294696740413361793254851249287837704750703284385756255823797227122682163025543709117051816270506931185879136403380150565089478943268308859220389402138208619986442032760057155217359153140436147067148336890165734036949692933795561930598458749912427051396512672458618110612884738972382700354428710558213654781573308442683794803786629722831356437945959187809591485691259889129633726605486999896497412932444385492934164053571875619173094242144896936153237053942186417713715970807662827721934882881581104770618668282559418618240989711201752651905696224865848588949888958181570048286343922356953465403127588145401517735180852717247707338212418312194616466232012154790878319411270881907845205478062907063428573245931116533514431016525328285407493007429300135125789214691726462555375413624095708229541759831410068120137766780925040739544157154313242589514852925719284883612265770892083751655072234017537311407718184940868492801996960767066486635204522189472487243662145229593368529699222453847420765056191808307406818167510222580184429519641006562991699510612960260976567098281908595343797442748064892037181869401306001141193365090544632595271866211568294185585315873379475192543597752237783182439779542210288048639794977734386870036091243901209288158008758039181566196504992581984631507248793748802578383108090372365435317479475052383651900846988113597904204809012386505914486394888459705581672992270694840605600505314889374194660200783944418775152520900750545532574230492724763101707655572353392647255794691659382570171065855902574352863079330645794254447414403816180360411950124029857151470033056623706843448383380769083427314333793333076566506734473209419811900420057156329674128590841675229786689051942975571772261419927154900511966197443545012239329805206100442215065075042606312139467627105740433976554383270778214028540060356882317370915821283506334026715630238988179305481063137815498624996021905597536072242829573492247929291490648034414361817391077478061127181734559720515739811666627300118722970425262342763298360529775045797193841028782729869464328936621731970094454908188307716146923473783030659704218316863468112096836470527318105294664531461435150835324105025934004715783126511872841942226249834379236335011463205029265595505052991766114319504290865920990228730079908792947332502985511427181203717533023142748031397209823566218785746853699919929447572667453590539500680191788209510731904342143560709678985143055397685781684151267942994199404317156479334828814533110985388660054098114156851785288677300979014241247917903855391923504952646438464470554368716737519461993019883101981896278108723738534072860015794775491354192641051901210185322698828567712039797860710164017726701670066467799625751173257887630344579458035591543345172561049727271974495304311393946171901158346496906226014771111668414045125728920465156644222159632693614837046105504907187830292495672974777636102487576138564662607377225054665282468548393857714244404904660744965465285097081151386540840679647052243230613067099770903095456883676287596181363745460992309648825464828005828893429041902014808650281499040995041502674367511681075696286606213633728841661944923395954845053338775200711966876787877540392892137831349923219819998100913385891458116148101983447171468094274692381096805631636499337826157871422748217715428396868866845815911268288424231339862565665759441223404109737377038706305035146542372942627325062415745514929613619661288955961500625808474008119341690504018576064532155295687086292485001874711028921128985030369299119425831518130219163585582295131489706459633811758697183961721322570246636908980450235058704921361955685160892989839637413673743084166911627774004545184949770833163104357172583395676879516157870176448103561937613749542638791553458103598634499770526568285170168613007613369494082244040006768969550685461966480867573218842185401075952712822750241176841536351957559086186385235432737058372086555189415512281190563886021961281516941833190808707354740723865710163352345968765214440931836701496457821753453791832563497514498709575577296544925474124442100578835632660825839771335389344382201418858630101522794999950152030003376943464693281534800583087355859365089985220251142077030499562365773924820316914708044802269985525715486471988396534652717984852554099204681826827283622120733422797967315554798199251941533699698014318566343914315311364091462623107717577126681821609878032429136271146100976692527843012596405831478796293192720067210312827263135612811264277392710482774787945949540522897337518415322011265404237011691708271478021666017596729874615155890023204181564839169175895782922792291636698454384549639126538025211513385144243786539150729105685577217741571852519575253319784428675814845805590082621515289140169593124157549220637191136825535390221154538601728478115918684534696171199901884057713679084240253465806366162886686727137906924282832699407228121930605896339556076898737067162090272489759919123786239111897691451039534818302740207904361067598312027623457474428594381243712779646005968011754577265790604754687317730535189253246753005318703952766252776492475117879802605359737952905742636836359822408238076230776746360780857052677660179112516602528601892320042605838374165393352068230859439980191333113643459430723386809184880194402009563004818668745526653478665056153859046385158043226014707519152241588334398811473304107936735501537784972670081363876406356669014221285981158277837105579028405986602940489641477072069785017925575779129132339311989088836542450568641934641349672537671703724226791372625091848188683468476560379342187633337435959094931223036240588753597879505727438502729571000134879093989913958272257967138406160785995025555047248196609606403959246893714944420279277273496348416769522056673377013944024665314779392714915031706613250700627040323252413263401564719259959650453750835705421971913975341599509817462090083116044465384421760832114430757918803192801409743109600457431593875090725937875695334417663041290853832650318520003258680825468868712994823724747589572570179646317442419432915850354528915173678409935643147912457880869233439333965294202010304357765607197216983539144774180131616265557073668342831705557516947823143610672673826178126257903180524129954141459980216237228704583416462848053417155997972981391283788144977230480033939795846377071711868305298667484387486930665628485594124464402038887508021579203659305870961366858271649992951824957376590887108394141973148163343008321364059360828187057268618978371309515744185837391367182671079140091891624016233444998811003965248794194106269544977655207821072488149410777415600671094168731571193909650801876528439704185588808896304362597896310164872050928351620188945074714586356330943930907282894038876357874479728756239112265505409303405400265816647636689097018993508665250071481446621742910869064159854728845828827798639666221447790186576341797358083562052480014202467210010697821370900129047014366386587924108022053567220271245332523574856399495409947153095556107514291181551186464783383962237245183344208937311116076980895080067062023545810135875544975883422164526478814804886642536569316589503937145697940451906413372833893001741307354901352784839799319339919017877193084883856938595477792483653874553504920872353149759957686027375809630186462080695591985922463673911578889083994381300699502717468758059199749925792773951256598211522616197685167146124116432755833051782729937146671169079186528654423669911532464804348890694846414258462961528660085263249743443782084303482189184853930589612502970582597716413991942856687007096249261900595906418401533578912676834487143153256604410499410795676313528619520388867972295620254121888797871319820026968352615714044378382980956755945073395068923688494363404304439961562834596563102626620337569218710826400189502504096117651919807234294560831884587517307360483934569945145517209384685660880532127702183754884383875228684360094381799165612888089519842132876163490892809406613445509093086570817542589668512946011588409867262036468102403023997957483837570306682601351401370684149818488716230770975984154661192161005910339424410946928617619404888540591707884839221619160445392719313330501092839089268012939083480332676603689305722231080584974503863624254095925674145630303232134740649408356335291595309116870006275283137401739074461660674603427877281926219997706820320966450930611728243429915080108615208409023507068004494999313161875260283804734859778024177368822649327561826892444932046927313428684841820812325997584520649187156991307149042413277239997397215154881256641131596835297184851047720116619753178860388643280507239231565195697516335216367846623631879673125168307710509983795962784335406321476026624765069176603353324405632363833924859366598500114573398668621975710687764937459402041195016104609702494487423686126363506912585493748402627065927027967874853386753490894822855277071752660174609177617920253700582904654891738328575166207890423947398617902353004029860698395407841729365706361243494145163276452890435927529722621560280254088192534737739153360894569815724012487990068223640153840111007708163125966773476490813532783424784986439711087400837068149509512713537751329010436020789155644399366704316773965653712223176670881810239926500106803244791151841288357003028678689275424190100216811933828939600863878761612773712882918881120772335907757513970214932493457040556489069266310393405438048047246679562674822972029866882600023235534457307524715754137643855602206176221730434230317733158242757237595556848656265270504855890313665855543410444227399298993185640872843959158277134786214144736824787167716068225195294620644217702903657222510892189617536624052492087894367391764726741166614536515957985435119941693556741057488857923535273229001429760196184903602876150658273278162182001742267589557907305955217165586832852915252711321201027966109301028156806611269297099469852258916585825072300796870721714987053028701490987945956519281111685305956175012366911372094430949243487348171998682104276283033397758785760206356884652257743455794836665514714053120672189058065638602583414290516060088890505225316515897558971018312490085542899266230021239417590620191144609081976765659838301667849440659965952658100856296125338128340951519243980337013184080119203686424528173885464612074454738003410123230844341313875675213128625741326959309287059789179527221170402342954986439652506192185695714473801872752760389224099961827631029053469159925722086491142940554698086234227360170860559793096738054770447861127981663423028649203289308963299082472996857271665419367604071509245411096259295320942563401770902392292934949903163729895656865268642244135734332284958187624664335523672760329440818325375378675193121019602022461485246975536381074597831233119681827102355586442765640596084486548829934307572525024261850338085481204992197791387970060821936431036157375272314183320616884640035638194005234783244716311224788920819010948244393439165545289618542231425481601986527078096896142301306301681825671197744357384354053858464602496617627414722230561866965378566979539550394235874004790075421625063330723331364325568493680887072110734738793173276670424017249244359931531786565386974110263958301650956632096270165502296479065405087379445982568786779289280780026444276843079987160810421187741873571011674395968968010491825751232194072856978306395204555366121939037247762766336295962711902469585354727544128099705354557298100508046953719850020878406965187551510066873229572711392336044994780151957310679269115495795897332490152001531870303857516338802915908725848666059813125690423492815737168342724165738239685992297627377827340146661880366517446690394011226480336582128616388172394152046048670592677624844881420911183136781495882218258047147621674422555524462399819444596612480169470197595453222418006993059685797341971656478128521844402419823175311471714726421274191823146452590555232916293455390416877571385792092961879341421920925276915325339475795756143865914741589970374581229339132111304765140701181401558571867341576381650116099386999307492866605052083744641718323002727741437332531693509183664200585324078791156722455254883887290562215156328265631210512934990363870576913468822020224492593171728113637501184276513783825726852303670112379267839647582849457423561117426083935102732967638102541998436933942727626463128625454586351517646896009790085306107826467468490062968062993030083862081653791718025827954176351785339090872093579427583806035048686264717089721659800220834518304875012933099222324422429406797200173447666831622512594149466360055546869528248130756915098399390633143119897737407817718321764763910171556901841993541292306482853434652666930330468266905534624360295808744470606126693003278829821666149457581186352694965458639216407921867057114717873490604070234589121934273031894400272995892770879920893611693625111657293193849943737016753895425365787891357969546576566174108140255381380669365017761048140573869812097895798038246344442345309909617964622980553830065271220207409440680721669659158766161819338180181846014854368525942227319281426702873462944382032492100902204731965739303139922648237722213268929122971361841673391448976835285832884027673252002022513845741662066916583315843917659944396496906163262904743970157662639284863093001569078771139025069981930581493535058394960466911709658794185491787462223531365437782221861819134877140262526988280784615353497007924762725217077345432307575379780192971902390923567180145376300164780437304929999582504361756759022322460273861927494376085092622069529611599343460328252159087908434580923515295208776693449930796881889303117533284282678767400943829089652734311348087629119720922191885701360042043391966525485061233583100223504267832520576102868344907242161950243258500591250346041559018452059260660127697873291079678576114491594926993804965877000763380516244346119534692753520379390864222233862659041486338048601942778262507337739521213929471951574899429207676645664820264439111265504360854521383403176694266439180643906797436794363928998146739426540020925561875118882560969480168750872957152585438343793207325191506990748584160105366794250575942123856235919584318039365612787324524253952650447137488962432755878928321459522404704397921840608814133713478682659731763321188001236458292214585982133880482065828377799074122742802318314837108156133175129386515466081483860352550154160402433431001130098551309928328895114777212055259424374161763179433315816920653892407940896702037709769374884462080863773536124874267597239295062117565454286095612081035259172359128965188521198760155846251912334049292779204890660751928229359014219243571880238048589485751246951474671741261734949453908471272562437647698540790407371686189597876142879396276679671786718095021586466548161870870592529638267123267824397252975410723052711748882040178673013581916029480511787094510118235086654954396276818324630417391109011969444445216703037394479502534672799503886165026555854163869907397906698967536940577110939178460093835711188011809870324000417151498186041431495404493309763534459036686634457983668145104873264998526806968449287867445448674768705192151321830271157132612762386490497724034625430825601123819139138126211046366566605586423252894138024908722678807755052258297494223962363069531601572036727857399759391545592420238831607559292409506816179474139594314028070491547253555594093588441165295019827639224418439646934065465989086238490528419305365969819664754478958087339087885060560128915213386154251005113785105407483027581585928663492439592699511090789245766397469156151714915534967836554035276292688222192315581702381906374612271045726623941713562470032297987385508781723486400383095671729438578699200118605183578535950013342154219260559516263361558768345784381872842598935139661374535581911870810785672234100739978302792839672471066911167335030282859961496045680466538435156575909257676285217956980528564796510208029944488142589010634298501121984339139096203870604681226132262176636091017163793780774434602281652118954992670098072748689890987992947854356528781881874440159290691100487138293756521938931298495349771858001114292781527895858324155292588790823036694682720201283536374608058259207964433317572833119949727322460271268924407318268512436532681342366570180145350734951504045028429062768775137802668515959911635968394480467547938070471719583931632819512030189265925927591791621957058892756022680850788551680100755661364691200097937765175515008038584391713936008716660669471624742581136234794357792882559081444260559649914380602797779685174105812355072354459605741185110959360593653154023466929713566273612831611969315604927282412863272897678157756180463685162920196337996945091065244992804569135661345009107098909429740410395257408073066899837622687358902206951344679346169826573001881617951483247075827941970543372138508456546488158990314220409868723677755506884886823651201242069707256628063322122298603900263528962455372300487936417225328239595547637064844301327205316022757719242532546296321289325836086711982807240112547854767788722238797012841342843119331221628853466065054369423528290338985571609114708618551745367154715229058107592033007751990378703344794165854278083742829576087439245364305116179888565661481484562888215343384362772346491027495267242988988728812790130114572301297237153337001194500097500323687781771719933907400719109094570371198357560489321829079722031226319469251028600288825838981027406802048724164458385994982141042097964123820071230414101654659397471593801878960864175094922642712194725387470170450539790940749322958264669957060742708288154206800079251868132569757313055867389296277061148740887119212917100527178549238675902612815480388046346951030523073163036165939361193151048896549121873743782934465913027425922500044447361410212735081138558785319093344091923050768246018388193042017407965296326185496402926629393381258189906435074273712159777471773626275325710389087839755389398523530321911208283458037008429513499955131823024628066439801564477168339841106977218709350375814375234370558606795295856071071925995384405407350990940078249486809537735977736500342324728819504821026668487207587066577763406324526058556070586910544200413876050533185628692693840916396425790097981252377637247284563640505147345850496314392053990902971961882754061142553253497197312619038044807432080525493845311789679186123231226696713646481929438762366083235569823098761955540161365863841793301783696026367467384058992325419680894303930739119248347808835056692163693810884275162082470271945527901870512835864319984038534968354559593507035617714553156765038135840190757164141074698189720585987580908738326558882241303397228834178552001614291902605600872352230324822632248863415018583671244746572153806753677134213310527983165322914609807469786971081102907194410025094417197055200331148025018008511593496043636797773008488654397938837907227039488278476617896329636758403404918674508206600186440827798963517425899906493462377490086884108208330950470421100331691299957739419168047945543519263481280145134898213555955148654141896801181900882616914968025385932310011514373365198553126243902809524965257893253565349508359778186378364240923523853581258932307212120425192743459276959532088368947192033968234961233471299324452874982785147003139935879809597904574547242049965274802806162565688649025931369270893988852722354908200747060093910199668309937424558065036096308128078607230415521877383018834333630753343185466910066745537581453499617389084744447165703362313633330148094824711955578117635993097478848006741815897300000199288751079887860089625924576077424290006724664721687333902725429511145698954689702372847553273450757780715109736350450965621654890468635000806102991741993721882302676370746495687473705207123803222624489118195301872075860496654887720348128385638146377331066198078133901820678104931304370708638984272598552632617858944179764344392393437748022836030958837966749991039807916515317778332286207229664755543649460237247506313665788881672960369359647571489562157836102108516081880845450943579245839643792787149239517045587014321227954212007663559977096322197539799468934889853756300695015602709296829590475874829032258870464804853862507410937879053431956917100580706551617301235530126987417339312255332995182411365335425982385268855146133567786125875056518974323445796170314864708095107490679288505428807247196079676684575521489336958064365664942979980321083394505381700664561484798174177708466309683114063965960689300418439100024113634205971228029529840755470438972453898231603114140665658540642305791882378048116640434010431349288928806396128839331943457841716137066224010266387266097240176164451027027291811361795597335902135133623281213732723018694024244152966524487712390124538907789950436062692558762968286989034914685586682487472141379016809816152918705557583717704751013209990348678135907041104850048369597649582440549927396274946658586556501654036683717552439127086763132497789686818537809476359600183030778592323807342923323379844767462783066780236846334194544257597585026953280277946818200251624337941239987035482895163478583036085014571756932252885841312095157659757653191883699207866286535598395575400757010427212067491873999187760766739285076353080623174098612444193888458241952940724042565394665687402963964396483668302368768819761927648545643592868941292021748576107494595599404864249402383425319614483553794854214852558490660684930896859413252410332219601230495288592372168591167505516527353116316204713433654770200451963815877301534857228493293662557061415983872095927980258209957351716577630293046219765824520009816900661638110540057722505376145044979497006326680526141456086132640008040960685227349904231755426983908484547080806131980919500709100434444913708328459703530555497648050699839707350771681357282333145113306427267263362461306535772882677776507356806765437819939443544173877703186625769822926974688727637313617144702384391527559596636689486746338117201722813073937249106392807344381518161626315631758734139139459551268121978694576436357934876141866991781925969251618136823033550656036997520021499620033087156857915960420671461968966556437232126314427228785072077321451056777035180523583432362738288501974266736920449401124222893845276090599320684956606624369949078409386173381670333221614171728090645824426240278652809150722978192902625663386253365580155133793796611228086124531721619728434996015946346068332648452645242081746919583661542565428698504390740556291708279829688989825182405952830783501360323165200878302443839002141620809522597979307095807634795612652198927906899902861713493621817067771745315096836193101047518355906978900617660794981025042699558133181152670199701200696699490808351907099406275837169870992396417550003999525401625207641058610691651089214309564080403978158469827046798603405533589438177822429439223238537715978850310452618152956120679246597323777769614113284975033638643308285205315320008093202872972284640436488639275026216119734907215395444738744153113351401639450906047754412438468107577190468712045391856134822019588870479323823843066611536352381087786196338207651854096649335987178790268956097939927202251661078849513921186857887257194848741951400267907762939309262137283525731386988159188087593366931526851539413409356762706391525726406748302944712662332371432897346244047573860153573365286469980740177801886946288733608875293111306433196003552809973543582642500185564433392614223761964546606487859013597680004652012260540449604567213237145449554685723763924996327748721412151257995899642332222755219145658981888620262050489459915164316635067273263988713709022243189930095751136486580236181593599530249441069288512597860639965942223815306535110071934990279156043146195285135140687012056650941764502037273037038104338620932434753859034936050731259880776229633067978636467970718459260860622628087517607125465989438222904531006911933999092676555388383013513790431056739700941547451630117934947723887608972992260863678190573561007453849454777353605173193204895403704353429165002821114068026906243031532427972886584019107991191200512114158237843553558648344556168841580104129457624582447303313963037743017696656382220994994834165640478076689517002315806053811828106936369938377943628675822256520426064299248965011526438500131387438788780297321086111472896340887419938436249735274950296327988648741368325461827503735258107155871925441715355081253546010915688788041227139298326269346190823815408552830306873822335813568690463911075662720573288827799179667391588757879171202782842111406835328563824259905920596095191035512858845772273040783108514500696963427625557729311620112076705071023105142802472676021228052247806196260454083406907817470934387973306831359889686441222630316175021756838130563408608642311709997651404191561751794286177743334876499949802049478053871521060411807615657951253532347835205726528886419077896853133849951609279910737684306062819746655411714928659439325382887580636745839388911764533099872582949367856085042133980147243253600852808374213216170234914168609185985298998904476769668972971051291027549679171212178589617732703114093357065559746693770524512300141333004792148148937363550100054414300723215035249168778585266620265368310411669165546269459032285393068564741244744298431261645395428811441098307803839299955979551717606336103207056560250578505230041174864794060683559411448572804571684807731238727059713428982272110554406820942786840838103007125078979774021645312358577133706472084665359800762082977251270297269258807390061185440643873530345711356310778227287028390887986330487879845980718283885255632643526295204409034796400963537666815841738042613548626808007219544327039596775327489820277753133376386571663870850952444946193597501251233544460374839999179354504799306369981622627770940235180045411948858206114827571859390789402039687722094172128524291519122514440179620987026934479030477921088119175270459917048139393457794333294185018758286175260476956690815696065050630315225002265905643284477139792265487545588117026708879890028041367165408913342497585367188990242633166225515498579604959988254593525394660117462429038252357961414094229952305606020457505864055630012932919604668832366677719453436308148775961550671636585466960918292225133435986918336735870622359410565942019107518008883423746991351861225929699148350450901121174098710870541540892315461281480874868222665325382502713106194023374336619544765619418425011288237376091190139980843690479621670344163155666911382410350054758116515487903181100460673764954492636249180538357131900814242677284398821441005040023890514429326673278888618848201239387634044494038662630915713318439113624283869589891945193207134139317948453760669215876432686768263746414918507003789982177279805467323051133769990430827394397325354608113603195105844359192673042790082759420249098326213578734983360854615055397833630040997924705426095477651448200189064218834577226959206717714457395921787606725119792062593012671069543812204306504050300563412975803712580376042828347124281623144631293241567007509874058092303091615305876702773938582598428910166302611894438581527936744791765464428818491107714633013431804629353213281930296945677056159735648690534151862749924575301127166873937197606361399526836681877194387042842251446827447523334069607328723854678595271377839207764525895984116388345522936570397872001261382641991605835814217536323022401634165757756334898506199309143108684715367196881795742766138324243810329867653091388218475249588675984545116262395734529293648282196037253370746716192800462472652348946535993546128326925448150970452958537276824513869410684356711421609293419556227659919873209854388877536226512428609337799546115121416195456995451585716853543375506172523579763896569569769869574624999010804666748063567169349801774386209422316791118624794547678779729342580594632833199873984904446958103524347589805205303765712827735845448112864483692704497954022647751324851635321711055993373081885696975492785447346557797207437102642549585836024446105293618428358647684098269065946493737756398412164477425773803160851746011060658998380108393692797320900365620361176341315290890929528323071824427413496732748208921621489673504936628484386183862863075996497307543172439105102116144004233258464622434392899628787471790970160201834207717747157118730321749964404255405753936526140697625193989329701394100658457954218222028727418778416776582246995830454671428332738520716634281317398833497919536138979395741891029028172279542971370326907062951495082416204102577227679702348570791148199217286082498301782127842664845000442705113661168312366294258390903768346994861762698336366566507941209822066418525030045853513341786713216969608079141449980864281466771761409909104614329878133149033998577111964484595684393962540126670274820522085576168873939422249579562807917955691656131387815965197465062105271594807360829322802337655731913065970270501366342638094937072401274252509731089739803389358255610876127578895612526361370113711006566404998049163253528773678564510772238003718617972339035990329585967804034121405021984761480086517857251060510641509324918199918192487469029610697268831092184335868899391072750000607556096786955955517730027029629376522618808060113914660510307369632914869394774342435361799415538907710802741310830895056976240529565777352788851715910589526056660973477001555097893430297785062564503383957494330404548097391409505131584641560014076627633746274846891623083719969666142430212528431206738196566149809070883680845677478787048015720673617374280194737634883112853018628794878752262021625111364460844734934602038044409459054400001741009186663506936438347942116419594125671050062701273735145862934511676636022376436812893386171418657662747509251142912401159598460935721632392706804370484947634544736341983761899623573485372570552877744458026945087857549886892043111886933420269045136196550793233513242884690059464376015552577851002320581877871231044907063789975100976931604275538380293096222081722343671282485610585348828620764668879226621562468190037035224952580558594136518261946023787905649273962913560478633078950467340746575134571675001812869507645055902566743129443756197080127223513485283481747979869288320016233867768900065405530813794734377470770116323914891586779073187379573181476475052685546504310126960423884096286874595613896785906948400739593271804148581750041295278447995747246835484247510074952304307474731327570485558698454080495833386935124039938915229791440902698407738683645183398240635164599768183402500484514698927219601618436308022090300894975962262438445807687227444096175390034629135841915225736638201263643173143335718346633660474197779005338534601485811991971994769792319133250189796914217820991636621795791380915416362654241384196567814836121137209311471082573863229423998253756542009058974985053382251842814976326853756953552862309735352572513795007550736250573846883669331696971599892833494023255585012841573386399972728460495985616829449501937624519078273321801497238256160187792311133151641183305224911847298864110506362665580715925240337395303576704476557454563349558451298480209152391466747764650122070566734951745865828127981782344494239150477575163815189027208268477794533142251298347092970433751286368551158679829270998187199668191261669691820006428433630057615509980926855162708840927852254159006980188102604952534284464856235018277795963968922169279423820216376062714111276960297743394765401328701840936402544763676190304149319191057916184437086967049489525270687360081925535738422005758799258747414835365282256144495936107098975520729466476901944082638100807736461105303563652388781257379783533265548061027329717121818237117403938701881611748286299976777170850657492346435694302606683700355311791888477212220812281326339128752622287771264160575157827053490751107308550821528010721325921083267388580787441027693893911101968066324216813078752007924527603972586113746116535036125303914378818522508018182576410820518370012490196405856206566837602232406405345617685477348351530967003194432680549894321590014755910517896517679422101270490289739443046580149803193924084710348454503536318769933532562276749590484259558973343459192736440741020421125297877968468666198261313587091448537316622957409357439808195779251411787355957275745448574620898845370046797154989726973913995295790498682556524687717490509336441936050388623699730568750821114637297292370685693794162454874448233338083298796048000058840237786065404397033844865624471845456980162916402928909060383179100593797779342099429280911613531229357328182273813441188654047904395674943073938369183524501839447492896006932700808375814146159524522574851496251852427424613262891469375713882775284258916411830595761686342718142893454469131454539130926104379256874293822863261494964291153976282113890976011581880074265451498950135235539440463302816453259822658119950213513517195089209606041682686774556265364660926099451412609804727498131471430775956871173285503544572985248018444511678840253021838365460615713016550486226604390244740376109367982201049341222081908855797139076057079886283607158628952897018879176340004447569908508337743464331192482040672888233352224486231197026500468160857730272032137465974457613389875071864489709915722769256937908565749098701178245571195074849189578015413458502808251252462208204809524338095401184577106164247603474915978603920742778030498704066914245962648332348133507475692051798608731377346136261931315743118924271206472961199881201375058748187475745457566139315810059945479762824179712668718358732474003102218629775805305750074676902391415455334637779896591723450530701376361234016960691404207576974582223566301796189747912753438255277787739870901725575168041260654137321881092400445987873034332595600341993109935555568202160271135690525246188547043422361514003986971861341068891918973456524649712925658571756616724647649990916123163190031356768086695335090847705149254092536080616487422002173715520987915865598912921062214600805890562840544035754942305466525555392985573604159003589421540417427297381201888817622076044903126246474485627714306253600761178632499890495326573018079668340907872689366425067183837455796252393493142525390799438653112091954057400613376863721848037126703882468608180330617801769762588676538566063409096913001248734509466600050182792126738191467783047722524996875859769336338980002803089377327292771924948638608086829992584801188799816040494343884475928980195680922818610217532344161724215514129512226011040811860557059506514036710294580347733391086736731137220022333792738835525233203684545238597694699026142218886900881741399475571778263420899452945429446894318529009217005807410740846418010970922414536758073030249030456438579092900885427942628042302937724577776992431332022978730925781004749954473187381108171635816921122335688909493588648132720681220902562145286688206093555888603706362604421536382205774595539011848730516718049936560376643247551187395491512520550722597628981059416654778483186533874673646643156207083256943811422959774317505600603115350904929363277618003698028652309972368994596785405335243545112946728669113669248705663320922206474781859904434337143454517377685763586954558360421957743979655694121169167670464937374044119340060941532169449347636885009779481677123871684842342415670937218449673367059615935155394875338614042449644541635797096403565500986713812618267922764584649348704225684417935164383884236445965760235105769341776820076555309713709420404371443918358377516497180788481192365016134459945959335517919490309426928492217056584792246986310336553909080440773911755064806989551205359554706816578440090229779877708281516115439907206231145909132789432657611058907726127154608981667472946228768321406130383785123017805616458815128393414905745306609441291757108140016597168919616736136607491517467026870018383753836561831577612587774211866327692636034932161241703484596596604022865464235066681533523888724171265433128696184455426257227647564754776258528097835103271120846755999933989506054740496251580152227844248325936652819634470058106326237472289948011750425559327494232198491368536732735325717361395425677182203330024370825911127877785219414083713837411462257138183631659624775221285936766120369722965254439469812820345290478588455220327914810355580545224409290337197922665747117668135602364429588425563531115135935983389352673914520452782736534735844619369487383936387344749053992857795485913488086733532711012792534548279115434791550078083169964635352227189154026273512522518826800215397283177497139877573813393981272085222240781182035737629811422821967265700635916996943721607273637126412770126965828059702935403503261803233361825380391645276157086827056130998571662485702315305598487553616314045603652901536982390964976048252557615943514350502599365213029562621598478798796703179827037505631888299049095961526724906367214942779307015011693940979846358042329316206595477941379894697452152029456113436571512977265222968129120919534160909496295365709263213505427068527579782420955969513210467967274220687855836967049279576118020881557109188000389194205255852700672298905289563812773596311282047581488392788660154524077743979694891218609344329122782588730445592556073853938328318728753914358661258829548123323737349353330209523523429260661216816328002856881814107994404964790527992547548098698030220862310101233678803943986549381191735670786530865814439254301066533092283011347266448604486046156729740615896720434496562066609406137186247860847088704759753908680985267097259671110692210886168423138420123573630378942846624527956799374955044689001158507404706560396511654115313228808244184904628018541108597428210177953902945180978335110076799687665845737706111464721426016202870840341597068134536462792351568757631935422909708233733604849833254219009085642223627489019920626021397641037402318727892445374064855185504581567420154047518622244032261459663082379978929279283462276215676167788036192916181082200547317766490904808187433997538460165637960688885971027737238068295373108100311452143683587317212399375623751138694499987496678063685444716278151451965766284604200932958548697570058691384173352368643557150808539301300435146106274452435663689073958725571317082027992292002291233234574288023777886447330434802645298841382268403072032260623017373032580740160771796864524865845919328453102506580047062489292015539421624036048126292719291633326260608300486716204236980832627688328146166274111865049301876903755116032409721373120671096043107038347316700975782100388405147163335880535901609789046297672710679710857953629936959232538470155710517221518271829159515685302307939879997180174938508679707225180910549779099662313558973117648055536978738530064950119094794631242730892703221464170143951246374948932360200555615017626473671269201889841058829584951091153802751829691269451004512692530783429102595371087188858951845944987752897746350246271217756076105838346927513444380329459369800305556405899032074338271097193682654139813275058786615815563562609386938120007415750459046478062895305645483066403947102022974724752433928737411064051211435090842928993062673664605473862901315863290096584061502151186076026414825913214138841155596065555403137732503183935958126093422775649816712154057893007531245524118682405975098776757078821523338220314043118627595606867047882958035636633440098292332521645453973972904563001032985461646100683580911725917688692474932680145602442603474704732817507736179854620821143411183226841012208132424282041944592110398322562938326246445591348243767385536681427807585238603943335428330005057684947696252727515952366410014983124350086765652405762613318609237070448881225343333301101539529642179182976693924599963854171111636439010240698262423823938976868993974308951000306216993070260238577050488262976811568445117541914443436059557363551919465258029599825100966097671570418824358767342022393747914156893368043623106499257418237226113263288243947582990185189480042522068762392124851438175614274779365773465195847460502903087355037260149604496312315844880798126139402044870080813899776397556586615398824595343976128622342480843127207285880444401151426171470445522408249380596791033125417797222174760455972547948284998494335990250787413017730264667979132125833805853263917372543943512947126149303920326242387850763045726538406589135741676479964498059438269077988935297789667332452378404884854868648902431719529775353972540207809405789618138157618637922881378797835292466595646036056984034082912153169352887194542212039518240446241228381523036429672711591497725862686314620363768181289554993807629186060943509003406991679169456049834525812151606184097449725375525915386697178505886833580878176706188370953683850170512605038829864672394234212012146679598481691023877150680416990263919999087828180691012548946001867440100743099319527010011644962024845512704153929382470052900813446413649834704712060064249302461646536508235917731180452513523253179128667611191760561817124075947180248269257726436807584674953085593669535661024450750954767847383192561576105619920747641145981257708638249905833963058591170326417342343970277315065513258581179126640205710093526298388880835780473689322791751300633765089140079413170421677707673142728791795618990082986830160408169019841582531041649706457676354156263867787044060020638046746452074859890446408031025016570530790582818454512777160921892768652728559356326869379234783190839813125383099009766624170350877318786190934980032927550959161686251288377728486102254625047027772277051614882702793586886130610493277184189681728466716779727022918052194226788319029245056289470375061179840233426464478731784368565483919218700400961958372181932365857800065310630037444756786306954951485648161437776464730987146671019480230864107312615725395310500413580689911792799397266304099954618026084576695605479888638596811193143659101414673397102127801767372952833493658521266967657032245131703843309441227329020584259987419050091551372020838118631474580979678320420976299635223962750271303974024351906799711847393009638447819614381952508855046238779355523140510580720028561688886216359385352943910707574795868728973915098186365282171429948109774189025881138520128701080931790894061792754522122209891922831532254682955191873335106681224622113810741996428583022251432510968009212093204429115437263138645257025230096658960997924814529714549837381617769537533756508154383453866418614453822694629646412166360605998328374059175852729662153931493012182793351459094368534547815163474540307366037931403375484733034475823989517343133117334164057724340590273397599716141743289806609938185032765989673201191972802839696222683569970229063518692800624239230382240426186219118299911397069866105230648384462287028931194437360476194860061608570221960487772035891484622565735444363615290032819965751167207776527708342202113254471356628908519249780685352959210052009828617395425065680647855692294818140688296354032660975105955649174544241701085448048577607469807161270010626536380496943903555615556313267422454541024899257862166239741766264750290978629953891108771170054662536071462507502818690994498384149974795713614532497898650156218690988175373827363462952809928719497122176154867552871596658559493868137349056200081941211776497023854413293274397050907549365302175037589424377081968197242013071819469589084660741685365880672969697450923381459511685617817695599700084194660582024427638095568212932283137353343516379311374793258442537192434612331214207153162961918323793139247969101451072353826516541315683108376480847684227578989927033126696681416916835959349214534883943510246579834721425760053371354625672143405070427233688709366303954438492363605879911395708087987558479381475144100782934915485916318836213655711871160926534544561336598205084452793324447344817014817168551890226853185728259062342975176291176770398575686249247601682397664769681814072244910770198799766099560561429783316488930359580552774759066592490399399298062619630620859669674416743764558950827962590689196494115002648873993193728114212118327016840306543908446182327302397516668134664005446816799320544975040358290057861902188433070595562560499128905717452179504400642721836461688176906752385219106988730472605083368518236324322725763424938422291306682075961032971836278884579845574133243541004986415180834211114399239004733851586396047544669012941806265731558038747667093082028098491772583050987453095939114991719831931613481009197897337087257318305063492943714869205620697452763895621113384591722943363218637512625782956094696919785365742526841527774258573759538095832897982481647327924535477317028467274852665154185518029759668771067770957737752489491694020807319405477377229841361962243100776484506185418488297549287471152444548003331079460101429445177365241164551742198524549829236716438442591865835790061047200720757096244272440713711685069487354600949576586776374416622311897320747546591806209737124487262900176201245196480215815994462206521843628165277792111799343337044041788129575967907278765892829578825522634996395618030588886570405408030634443613676253332871926683583222223738336075898053260207659447020824987771689236235672264881098359181772382304249136382167769913755309040534603168174500099039865005207071712595990534990732532920853832106718338076315283915688812482467044107394055732124469595128289110533945774570481715387521599935322204372554922442318960657202799347689889312543965930477529244594546204838699087632836098478599476036138642129847814541353536580106710077490885714573050105953410235728434201599984216755635671916899886732237252211495495857642750667483888100072545176947386211755633641883665441426166134502087384156845126719093649035782466114574058786613711144220750796884205785214460936371834371402195334612885825275515126700128126981858698446045049815706138779071938347638524647805295293933879084532721467791502697019395047207699792052262575641525887962741968897588201902293611359395085049596413999232176021721519168445019104827462071329899759270858735126456760612075990367073439973104675513035148069706161259291345468021837200550750392359272939954875396844245329283632323620584032188151847808687004587609765989319907700159943813345706792651289826970328316737421655886549690541693118235849852415401132351717415672877977583096233653459622255853287857327517055829041246432854550946968415199674869808713953033525291990721378994265566588942177892451882243742381369075691586949653771858868875970852130404134415752339708548090894321903334639326662434940211221854033451183205364175642813445089371936079318771068445227511824001028045418886970981960711100719310589130659989067644930691403722024905440688956692273565180818022335616959639810055457494686719358393869533703008333985648553336265726287568287716701236626615563175196698636570908720539192866043893542848471213736923458016938943708369357095766624285370860881793621437271969211033550537896768962111447426455428416775640950366365183382841857769984966315580172191120902156159046970558581070335392755094721097320507250629793141145395024565601378253576498464703069727219062752800197344936142100759668894709177812911376987075693255887532228573802035486359050548735345995852120126583435637606262548772335463686525405408802938143833138061606772080518198924694310738758476475312798439492419182581782601814652039055346939051935945354828588450109904863859423493365904582421102804587568679904657394744005343310888371153726377036848189734187568143435083552136008441455519483985308602405094781548960403380094522043657812714996879533452405185923779086143025102922062435842054803016946080615382987944711027011856214239303999832187759835878388080196341093379983157990371127646814385291404080447121535262361686410762561962238443015078064372274787252014452193480476326093161382714447131765404816531152937109457821014274683750928756265917369408239178609841993383167691765542394485026605720268207596029872626334184121442657662411976673222237300356693190942532935087017064826290517291584199056141214355287390180238617440557667169409126178343145362729721760141708633866159844027685757462250240941701827693149895022630177602011347333733266425242268927348218184681422548436587659812496688906474328290173965764759930077356503392219116982375652647053107123142511460283311577125769938662451722815951701976423070080101017600167635946297630443268423742676629730550573472097738442246693681919267570105993367376925372174677538345874743454992792473311028888535291614559420879685218931159691683611040607630037856421470680526540311640936070004168888674731715315567726182593739405656222959064531717547028624619587718354725065858043953958202728654156912583843014842972062458476640174399752146972730958095714317988329656207426737825570635171355792022389132568947211135316746555009949723856403162960568535168624004481836834769979913162241072719411501295652742680267413457540997130639491799671100164563787454269375101825141039998771048498753564359649650562715328315055579264133407672388814899003479572467071046231893760808172015949933392670563430094788148127183589680485564071800355082035716350055946222560425908694527130457696392531356200577374281275183998361247017076266449562234099567825131537789355706124277525133586034242214397607441776844211642971810134569325225672969523000830230247916505216670816757457384081748840362335580453955310703962929331117243061480038361814343854640217589569580066197731603150032599884081144734874691051977575384598041326451854659612858194433526297301364648746310130383073667926150242329253410097313899849730339062560309278841134906376222654495421960182722339220174626915802033159522252785780128999092401859181742686882199542434673572754298801145401463520304152071509646110573528077981661014432486009543317665089851308540619801352072325988872528149325233588734086150575704802411024585823291863964197813769522314001622119674625609410319018160341821648595577398277189285776099149163911530012939714111000998675019417553942485484260343405654712035797439232271838529842369620653631236764783143148296843134619522397970909993376578082009951799297333860034150082664498065479693690161755766451028655491712374686078934195537446599331900464627973464721500504637062771331579013926257201885992561720821932550589994441356309667076962789630482542328544116918962594263116366578754546336218403723927433565571692278899707533920477695396747533314387298943421603178974001972454206620112316444025894224692411803493022060378618867834704321077211291568847621303182673672659658553722031477456438651235772830018289451523231172857006922388103097038638612069588309634075019812948556499990749321157892161038911829414148386618005205979297775027822060170537168550481309089699207559077175821427847764933547674350360000038107610738970931273499414001781020428655711837209079891941993264301479149534511068096063635206416908805645439416958512441478391475478863054199309223015180608180074364017731017573963790017122275613129455275147595148903815323892687516936792008697014807367661064481124057789270352385201848367505838902105372780179566277702904484725429855803532042720959642381960722432002095819633046882753993210783271884734513050196931956522513801863767205861336615774279327683821894809407141135817790645846344783920793258188339784108821138170017794621075086345483168808919224115743943636612995983193613724017914290158020902489112730920801866099324566007130483297818645861737220066945917599490042798883713998383176853517918774259511181524901638801761327479317068769954163614713468598985657644133455875446503651386799500963809869110361484691609281232197481678919885952415376628919886275192708707387791631965754725966671584323903417144760632760887552842673842909669386242672502776075164462228187048979664668276258070947981775039954522805122230374818049957554467201374591990779236548673698895109833773926660493724934091165593160900045612108483704302935987478713989251625316762284100233419406960322873457275309082225636375837271913585953723703543565282517575345715975145220854214783512411023044520242418662631169146227192138426650958822183410007412072253823747868583308894172207423469418400240027306490143495386208562497729623195906946561574014934420979617309760707533095270744249636353142636147545456489224394055498297928434773765271430505712664307067381753221374942304623002547059403161658869145007507222086886972488139372394598245990185247285547834271796894200117440319358113435430419380683735534838241153560570133314705089130221936947583792277638885452863865933002178564111369038874192961493925085501169776186563457983922577647719211347974003285075328154330576002818631694251531745936468545736659410403649956020645588689815404360608503065719878279058280060160238883202463230253340122964660168822604598651122092074857622452019631359784143973351104782591244769312587502149223874913467799861752055446077958340878920954449602293264889994862797348492274211338325121294156644334841680311544706023865655162699031528212622072709453363730793653862758410384770355671278487018816167624337183381332042872442908081933448861905080258478341545013431867871808420311516386857643915604652846091374170836715274523429129395793884421164130700292304984923650551426151212058632955051418648229196292840253563371148540457866174864780517394713096216205412687803209569267826207036591284729736921798592141102821376074446581637487015669677111577059770816774947683137434514087698320878077144677502956065159108098252874581008066711335029930526276981827874446706768562201156326420599176338022768320907798421879827779791546825598293377162966202617625391443197831102113683557238519155303624110765900122860454105824491831283624312684661584557121445023298207421479434572426949108378065440219174873411581568397311990145372439920702871701049969369732805560855675146363107786034499241989213036759385071055559250495760451098042600010849058059102327404928214393401923141574025773679256055816369045734170493669671677684852948992568107427725881036787348052871728583552695983755761505698628291516725527008956475484708946295518916738526266377521010242574468432715798878346369128718119669577178461816779545812341601608259071170053426459588966329941367232442950742352456138393406693306416873121047345281749982838220638033702571396615997883265657946892051889765600336243647905329415521060249868958791835972945656753640328816067403920100513029356376369632448865860597228467976312491742278090829371194871300756207077798677146248630281861946750385111506973137358482625978033283458702925321439143103373171590307534994763450027083562243761901530446158327715169074649179587700542203621750806090490330654539280015232462255144469228624430694748209199988513653918196890597828907834736232055121768578608492208302951586058469545425384926596805782393088143650951075577488008390674995959536750652337322871389271604783998528829004103324435304936994496996833957823248329452685212163134975232341785482521638858737534755597815726731605039456216144996608261919158229347286624107438578644757681917311665383761862258890031328347541871694296989364045840147300130055840342131598548494250609244405566647166982139164721853191887179398827467027241170025624529651457761663782177091713571865606011039193367866897547394815920536629723229683943242161453897247046629765388937485958950329819374629224058569367162149350252162749342249362351775650011132820963209556581647999285534711668130367177861350460600330303656083874812757381067872706559512935630518907158811853804913907963130904520750715566139480245558221314271945893298580152715448899982728645367363062373612517481073921281738092618670521588473653378599030953524720382424485767620590670305826132341766363767302734822073668987073108912673096033985892012700959180227102901791560558328697745457022452046608877997506313788084819811372099498021924577349888326776107155515554431269671709977919510315683831288691102229832668396557762265394924999888314477114949930074200544881657723306804162149270145710226427477166470857443850435740893514675181684845906359856510789981527719005573898116121420699925715863969154882174146551727583747322400286473175828638124678140868845343046908251162979533797625366294823037133328907702741931796273691174145949122370501341710783523272179875171495855621412333529364840153984242706364279591832907839423783963416391062319835366394054476915156496939781199385173628537024585748325020000141160274011564221808045579518126621248287953737148435492025086284407155774915364154996855260649674558902371629244150166295035038303108727439952280325260061328984029311860850431735150284638579901730356678626680892191444889948036451126213948137355991254424887002939543609973522055215596318692325071013557156004578796972756505326752360721010058600930984259027936316308636890905291014017572534445200225761735909093435134166704998030736059122537469998573097450490625640795376723029355139651732157155866759189814763043067425734926017695683690221789139809522555618078654548513785454713554839893258786782887951966080451829776231107282544252317834022589510031981820925285141466967498388883892805268614898571587616470008126378630379939394527519472922291173617300552753697582839542011262761531319920057653292635417051889227018808440164966408457329222567139827500429156585149685696876490590659205454154466488150521453299960326859278953663146733011655793095650934967402936979271142354937374030059635533172735305740367694291787150748054489593872272041564882732796127483149868815532295774880609904852678861640747938020198775089223651434970227641844003902724643385257952044879843283356208934228345120794566347661839972092863137999592969241170363355924698077645160057277044501086740738552641000951920535535844266826370893925540692748574193698260495337976359769867061587111815046980998143580781788605917541247835150733294400629259309984168142993368911465263792552174226433751559353776759657172044266620527808277885943694000273307127522539146811084966164180721104772896381466305078200489300054501437080917533077457664269422519375110331890219358243089631364098881906188748136863075398790086249730662193254654912341188514738523570752859749041112625353159772016822169402895307923484415401240701271657670698577815965410937728180168499830449408670864990596989874327560086501953540968945308720831032456567287642627404122445441941190917957807118409758978466553187851369718656132903035243295991817701085679337125422488085074704845484430587403713445289600604538102552133288544749005340123530631541462503554086109068252885067836634080190864969720074902215001739917244679373291562781607947061748422139030300302136623582039714657255983090879876762188428714373272607951589049024467083775410748267682377574462344082350744472273946736201358500016840136497689908464995249283015778861789807245448862176590157597103975105767755879495512429596141654525186167742175613206452386587616389695430457871501361464888390970138205934372617522604773198050038682702271804692267310713363843142070960384117225297581955017618816760495705724189516338654903445478067719981984091977809398095514273236429072595324803589741796799408292036112679726644873174757721119330576927675330248012189545378831229254350300192772237584436085789154247983216956764384094782307994284310461709977877192390853533501750515332362914293739075888574218133081474734491279367952269771217552340573283700159325907864335586209120096997986004647999003578318052683749237943730307521968740092619221209653852361531574956019337022331218437374979858644695240098318186185426526609794697390264894540853986502587570969161621997823369000734978499390025849110889801158786359410580892082485505072417940112249832409006559222740032211890610381136131743228624300108434479577193756035265871322614845669915538582088944309717054119729451017895955688436515856043580421675640185307317354805523773515690220168028075605874649451847249846955214900772978196536001359941636682396929576431156990624746298384202426731824497667015375093100054392883235773719991961765576743219213936336383348342596544741633959915771029092541105205810380359110397428620089921542746869945851358089900450907386200785613746075849250003928381885113123394208346156552907913422201390028914445823842310299601927670690260899512706904957873783478298774398607990908032329367356371929631387649433133138042773340117563226088055259425838547375814974896821688280717797896663173172728518781390378075877195058380980278660445364882008380480818092559700750045068474963879047021380107874206814847864144495877006115135730222497735490888989146492725871457367219472570173819937267555809311518567108101834368542265526710110593042642706864777445705758859445200312461893626580749338134356960570331790480638426950696020893625584313072181775218492628524856426777293185512332673969591822846326013277320514891124764736776940051679194397766047787564239439526786072927196597328545745868583279614249111149526531523037053609593356719515552193521790830855455166593769294284873624839852082541636778509899619478289844827298902685138971691643085405819685267317400966381385645641241574429543065898404032536933904572649225125369006058458133941562491257694079737129432640338096790012033591365160527725091876880227536065112857347249150424166903536846529747690089238273054465354769522578302076599937416373995193554405324211554083426184061057144328906579211348105694593501631396028320151714199976868970300977701966166459339278958207663510421394159702900984813593787704284200414505310810593532700787040164844347683349026578147629501785627526220410734889717390721859958021209224278147157484001616627791048801804236484818882619711764260499325960875834168681027312074888802736902587893744487016954517228633095871701332069351622229010996735373221788527500307272646071354601806055249516729183595951506547006550877091282018009857314176634191711305389271497909404717888802890653607419781162540944177937265572464490206784013597584624591682858153932323445124568489696325393197137322437209362646711857908883779088096209275738247701004682119988939145490537900420607989474442960505749616522360495881895594471837087212863020560891653608543341320077223587601407463282139522130638771539378272162571240231176913602637552598053645353601952027178738479598663016609578540206946576991577172132017434048338617524553854143691111110320012131429055738990491918792403359249783829701458301134510398522611275787839940301366384407329149811910560296801255180497462102184617131468315847297697762735274606620472142034129597138927135861371040212068360115525512053820001130619219641301337395229456575984395635053678149612055725645577367393760896793377075582550937851218296723867309843674420518984028441154013227549909136143422131731039250460600205510695369120041345071948360083025033342624412613129222585292845063454633166218999328834002479150162447228959419276844918670123004222140490844575288151030451662068453896591977947674492089023071647964648694581641997281942616636393344745595083596601508119549884914055733828517263493834217631580205058835183231389276534125297524882512095067576163240294816160458894316753448432628276563412458672051315226891037037039169370597547088408342675226857309238326297034990088554559666007958942215268365255850990634032481387337376675133688462280149871512769658916732414141214094584698443681605906010105060210890073783049322292779885169771031001348256382256888532446463708581833835480805809125505965673913292749761455989808442087433083069934279033263214491611744876997611065261759892577397006036301883393201019545285643812443537987274548605286373796005064596504460210833429509284744503685699352344167072405890220721917853925556340675148593773041138879492869607464041061395413048788933212704970808699432428009188640469302938265470389644655936002288043089104680363779644918275453651484030343607048101660142027761245784884380827663152383812775343207396048925917027883967069931752986009235004422393979243869706582502878486600044451868659346463157994032971689392255275470410489911264513810168297873738851838880567403257510657164160172794859725910769928018386083199704164354278204509101309647796523406347151660763970975999640712771659483144062881656959708393005714378201709075816457262320980338429716598095376532117830424254228638918856991479508025766084443071345659060947027187066739638859561516812322583905746705061872538268329135796290780640895203274328579276336463143429895106806147077938035310368628111606565122317833064685999957834741840696653133057794043338685226784014578065009939350895655566125674680116943492930621076526981536747862058879798639901134903292091364185618610021558829868644139076500480251912540734979269393288476001134958886014397553340879732485447844116724895919669039859516675506198939159668035698793159529660289619313071199870793877627479734838888042871545621181640067981420270723596133847029634712200382220715356051486736409003435066471863552746650388009530448068297622671252796791624095292464331666864143488976702455567865192841386875717236729878639558642242145580665841481408217555832109412977564528139035771826744270617856909340050815044544251827427054598294891155033067964655652658100689801631893580405731427177018127031597899211693568023601365399064512223262404445245116576794560893177588297226647364592734684960048299237027568117283570525361272498515181666144353210159504170360246239187730452016062877412233405927687483207678778356871087568426948713743084652259138153209711968917079130988604493488495859613288161269642691416173505201952371873834246323651227988062155931034130965538737838377745735299435652241002302864925626929218559386499914105778909299750680514766555001568451081433067282497623355021398055260519988812718382593370955147843506716503501695745906603984168539983382908958255792602537682460155356072992394543052960374834894334502165797394167577655885278257534581487713906321396486547303274684571563398061701961335164017580857971902031380082821016632684884298625357454937068155297572887483041857882714341887416334414841043132126429226474354826909136154792051462748080991305893542414650558412651560856083541812382803917592546299901649372216858479977378885539558021301654663762110829497958704522473620712571799329329759102613903767963065775451171285232206634559747778431936567091686063648356119467324009331132335168471419149838430283232176038196433654046158646720495035830382892541075076761372236894602374594407011125102600164283954480902146973582851032775921835632424506458319099403877379413276258525139895862447344819841275544552910172453895749004056014949234342994883336597233346684269993357738934999465724992593471430263912837368898383690847911974670245519868093010690618015694635973646974848792120520734134705474331770053185134899583878474615804297314524786500231950679026972115889681537084026683754306524843323381352831392585119112617287023507976282069709177509707615947751085338094301159049092907371847530195213405397430755734273654279983544299768573416002648746581394338903376618245818248723939616908669116841853234199480642997931905827073177225493255700580770995026470844773507732522712909252655357902160746291114253309755189608616957630710577853277884666706337035079041559471389043318858861999935832579657663122714508180672823918871737826952224079647280852193392891126485393592611833610293597840027454284486457520055096419798555085094294735140930431834204093798936964618519799382161893023969171234746947607546464137462945539527471767670737006842735273986824862171833745531246999340518320549686859716621399623283835610379806569388058514477331447734509443722246340148178248060365141502221319819256180858906997161063038324333253380038296654457465385133961213285423615269539764288821159228184992228418794884805847568010699754049909578755698362208456139716237868019393857198294242560934514084766072300706062183327585587473160754267297314156506832160084246604268480951635735119353797119670658813281446436113153412874311597746901676296731728327158241778250924366022217177007685706259100614514840234195114944914199008142563747965163395866011997879690773331952820406318554751734142494180676146443605728947869310814669904353512862499982701425459102438765059899532611824107108325776965419045266119315276268931041541059621914898831675923311483567034404248213397121507900064230372365026949200071930944644619837795690992977812539234554456069070070549203847596556677532961877263060089235629441860490039151923411892964407286609116253241896420138662629761447312887400369943798729290078747292475937413711175020089125430953152809217632494732990236141560167983522749879154536758693987383268675279586690088954979358861735008591778951839610936416630997294568377125803381770249589327453805513002697921101321848837822705236216374501052888374931523487107825642892558886910853875443671219816544349570765058997057619062166352176503467919574890138859658484275307868497957985721669684470376356995636611091358594899461979311940463855227001215296015741049839432724459122224956128946467128274179271612429297552740113130350984311225339152811046315664554738582561044172076351073274542058498698857647856823220262402853911490486039942779022257378439248517104738638232338452465244439848562534305748438217113925198403821355971869986442944158858217005876882322741594259497570775803099503775266276889307024080967474132748306426736211960250725172829257782980270758365385830261112244093155224513753011026943410864889730598361692306106404445048345962171676215926579982312993340286488613444906100823231193030191167127183782058576007270949084307561137660905229144961769956632346480616104026774212194212596793622409030878010098270859130516015783611613641254380025724991691591110513261217627350069273561615596148261313018834690235874331806902342529751106436022971651756310697806691104278030662285368295272183993152374374577203351855620636888120375602110987149876925517090678027587417754632232487512718823660048845263460928952922254252784204267885148376213259413434750568239381453744757052624343631301287633212108486591898875564086491162347954200152821010529764651318462770581787734578304261418717990187492263423768969535958152721117891250224080900799453376688402487902455803059496778422451117898933958877668504598823852298018554751581376271425773936772240479965413218906727145330012598924239052370039070309011891700227688572270479302787946723426893432052933068383908192346232024012991414543698132107840982246288592258933316252045115349170777515559644319131883399698436216446532859312287920634455211088744669313333358848625948609826703367941897682439987622366755869685672883204234839341126264523564975595362809829492141930190570219695179276677975459079893923729373402208836837588002891969300674823458289315059305650064399509043716095435690643199544327949418575026232034877042309627089878203147496686635156796860396715523377453042025723850434080093091333942383557547250622205802931623484267992854353707529188054768664916066357929949063584940709879814713850572681329212537912174938894547853239786737707741917581784739974336698379285983677998938024960564809372860275035558104919856666504555362695570333452617891215642799496824766684839106187657332516285591776664480245873803126340932075156727375047461000896881392761161254391063549110026981470384959977854473894773961467531562217618041701806752276410360648853944681049014965140969281224068071618308155247654088893744248082823605270309849940996190886331560360806478527073091329436523774695387685923116343938098877154555431116921104597498711733436430314521248800623261554876306251431410330385690459561447672539753573511469129777938821993727692705071041874146879074632883274963486052811566413252481163642438441618148437622145127375811151894233696396552384657892139048144640601028107156377496000018766347037690012678947648821480741260211445790135717171816697610977245013463137669609854161210960020558744445322162322529711195614684354765818722415481481076053122913966321712458025560737229067663303118051085140390340315708980750645090737640682318306228593449749460079841657336462467932255406218986667579466055403744967736079806445053957768011773422684892419697493084013748522270858379411083522095309160925946012486350555561799353971172267941020184929792952323400710215926482122960715020489366424756059109999902015436515597810335946476022462460217249337046774599296051354956998375084192151189276401157009553825598721196898655107090070299785719948218893708496640338478501838576389243619391901768185179946381797754221041232359142795468053992210615441797091744338596103549307482675484052348753683315355169678560391354142857758606279597445623891623022062392074627973439318875385658626197011027343766765391816292196153777607087924839620237145171515449132245891917719360184330580392106674785986993084392162711834040610210151563906697527110066238212023239923933921653317393777186034419524924706017185534161254141469016157299674451175595419816381522576190341216092268314513310319210229700805038687110024091984931266726191961320119489206275365723175694668786564626654617690045820289542304517038314196900349694610998399032829691677258103970036104595219443735227218735336848826972147452029739052659768049696111192941500836469984174644705604822787546605538266691070932867320492573220391824852246712335939401120061488779569566821137003545005455425660536671719178612907459671371406976011481951745383564973131542505157555766375420933408197330472165414847457300646461323935448984012284087705968334899778772532162668304305629804873414966709444828340175495459448532823462668904210867600741096286001667842969606593578907159539978970684112815066355477404667297657203594196604771704648273079294986550950163972290467716649526089151814035085353053258487440359149841553617601086880779097602513759577544266917922216749432894371312665335369456029401330972342093287227284518898433818507290360455455533728934282457273939488542094326272397511274728248311810896615184036832244628583160501542987253403139692722567407024997219900145016580544287887874468895394155749001391464423015077123762118298463176951485844756904473290963149469357626735151031663418687107570734394795279614951531721205373507876013786587581195360607378423680175145027818692563667575638774049900727010668342963612169334993408431304617469378260905014482056206585221202844877207732001166446666222645604244351941889712766407566414111143856325450600270330722977251428453687294036856898723460840319008192367038732233727178346278249840271298153959537726862957292517351843705878648849871693726162798806347066611471254634421298201181425061812615454475368308361558921919397787050455067699500355050098916257826330476266286987744224312751555396897004601391430662023377638225394902188279841582581159833556919024406090150585845793101379637619480440779883615347148773290670403988046817449863418693947113250710357402133988936466633940441114883198727252636826832266967026953329185190634930863240557439961669794812204017185107612005615659111016460715051537378458261131491941859592300945986289958158398664818449001930084849404870924011944674244473968948981879322770431078002351618767430098340653003510549025925115852618302632057392111482917950284435648056557426320316512644562345776804079980011859462606688161629640944817465884435074459494256117132573000500514733800694559980715941366329944137100812390006719321471199278769437980998170294998761901178303652220905161610186741882988168740835936931002705888431506969993647230086991255173309111957280650235724495635469565663820104667921613346385608406876270172860794946988191485573948578727685315870605072227357885116019373641967807940946654568098369566550806223422676407568696466835339238825467634670149866120990237613129864073881064402206815099053927625603432670047103704957680336189231338734291752776215947707152799988561783832248719050915535619566321218882226673199430218997861934945791002769953910348884072703900557822082201676630195267138098099373684849458406189930640387262085346578350570888580344941618296679346194615255629128994441458750332119860399747788457884423257766893816262915001811737795693740396250685295501886126630900065805857144333760477035735870107544528330019272662822116100810991943129496509760047957474347493858105318154742836232190835809677436902752024274424562117115178901666471001695007671541731068439356520633083636207689781857362190844372510445597016222188820284511016105247418566124548219748446398680199865997641774480023506912538329238223888893084006769784709093316808454689316709753564579797787236555828773485244124243132258675077812265479350044969005430896244536043121068416276648594900101022996693706290085492813636796019501083553113344489858912071484643629531061666496575427087129898169294073174434214681377205043923917194743354009546307444448370531898088409347954988911247764185673368134185266042092354341310202096862963257921046316581295597257493592747999966331182414500622911697967289118268361106781814146295291995848267853462978700480570139850662194927788399865059772555427913488265251127819342689517576924408802510769244568505541793780391993186581828898049380515424400428955500028650170298258114942097425527454964127116270716501883071542227430786789754141143978549147432226365897722969870011329864912037544235683139421799198873810581157842868561344012070955625958089893572869471987270099227317859662506319021415620531985964504057515051849399378014753600328477879331197563109872341328527549889263801457127310734877215832331680837974977477537849262111288309304669070525965640993322885247942720199228883612897132211651783732375868826142031782816643838672637071440205120684996064486060416113701325176959315791925922367315921143889605139320482277783789514789309440061173908014133112734315316887165562667887205709939028048272685180855077453254719612692771999311698043457061607939015006130817096293838529929142803508841939004507637607532097186149103742622020664237684777402495316284755170750422572849957372455398181006242523667985389472811187673224409065337963176573099091664175464538217550739692023205974641243089274822959720640864761723439851069381152070842327741008249379610243424026515985818508462525909992479595993603278099610361751277237084346634344787009088230303852571607638196700709091367452307640854888840754508359420050900386683852710338258973844675598862439483587170844111744642599614164292084567995226012769148973014567735606947370612790201319095213836165573450148493087003929817936187420071850865636941569922031636064760836762781413365853670670958603808926994001394399462527493756082057723095055978528650276519315781844918397316245873967988667641892468939565462872021968512825142253802555784262510909221648598029154284971432260947496447185282132598343665720451577142181317538328299105776256394240155002530015515915731017872814916901850321818140251158083020708086842537571622897860173429132057950128354638599022114522259989719123834388757072411903831774229595530001906519599490356759284306231448080225102927022754561243028281071496643204047694162189212986492986903245524418473096840655090553271324590533612671574644430309437458054467792505296322839847089699843460491660806133243697862770695924621866706086037386807680148139955910807067376484506327439807913385983100092090751295406584217470539516026219130234688638758611169880600144683269082122828105305506071727932859818591252911640672720263107256437710556151501790281963754574634514662196388876865250147170708853672522939466269078766657037673524365231305341556283657652393808084808516017801392220017093955455641342654228153048040926865168163787341183170425794053728888352656809727522144070505433497014488371391977612446135293915257584964481069210380262382103602424005548108315427178134233086370524127341019681159127691423480191983166366350209187366346897359706877471950306333810551457993563337024022350402256004808401621314142343437347263443407536532587637568864674778562538128666952764736664887067163441138094011457349801655676084322627325740169633593442614709394938684844965304561599309642224446246807184765911715508412629335591140234305156884333635271191567462614956679647244815481320941388355343839198187280409755651506457290139430556854352112322965354113031315306825469795597020015981778862227838449591394143747496335869280609947914858067930671005709706899727279173538797137391557184961967302034004698388709916061718807481796967519005403986914128468049947163284542937883157000175004473341384778291521618864619844237131985618981359953500612555911941692679576736551684698912490062518832787026918070921444062399883154994358329598628732811215798724806265816151013450684016704106563942673214194352548369202352078378018489024545127801154650663593604300628337311969827222208301033059444183351516149858093807457297182547658290700836297949642258942976543022730141574901732216904768968043196321837700544919192020495735073001783505539192464563087887328373948738146735786149783603387721442110012166084891629201755438777840980869605442485560161189031809641381647664015060488785900829655802248413417617987544642987601243769400095314130129362796338663465771564373022628408730943299319647307492707287688262469520201484269260447576149964058490090797887751481907228174235548337012456682189174757471173947682441188566232317039319830335347968044709969508273993257541591548713497583355146670039416162994407398174238710543570805390138314230400333441469422669890707856158630293498655431200912916494133153880373241374840215503790171362599140926747576517379951597827802445954866457271517753566889437821285433922577435757236279215531459675782482078149128355846884946569223521334646373386424554592426610944417201631122725630094688346623240750534199803314114072972977417924308672081635054022082510596701780875493445938202708127854571433710436777056603899073456392039856648027431660428181080326797646256740213752322707104157048480135701769919405767039900288689645774521119850482557577720435403799201882574617609372374804686514655595934679993065137468098318965701908417186328099628325779655514047408535295741038108760334387995098970409250120873526419348315934319321060847983800672931391741746126573535486171424617939772572428368095494904329501840481926672129755931604414405266336629409596259276339573068258650849165148681779403968539321495993196902716462955996544002198075537447418666325727276575225584800433153519447856253175046095486528985722364112008391769032322869576302032004797558256083720494636088019273315876933071520376110835786426401145687582475496012491496983371091732254694463337701968616445491818794929233383491441158430327717230146854522338496041975896440906730010118408387489895566258933792889299286718304584830888247960321363157896289897751101706001167289016004187555801084853119617571960091405406019265448346745642690596997018854622805201540107459353991696259806319763026587697757368507505697038075792492660680912871433581788463149672547581051880070081882346148856420606692708369784384875973202857769332519143877112558110277770700053465687711059052495976688794799339473274652610796921426563723313625520292198430735122373663468350038034189514727726826333667751029048476996489609068979645751247434284976265272859445045777691242735142501779272091151692512207312236988567006602252309635592382420125105596443852653319150904119508199699698230908889914636618611396590127666684503440023299366980136381994095590504257773191818825829962080491372912153094079127325972383502587010723316565568508338506987230953302702140175476457239585977270471121418428928146891095616626154580103365598617861965407671254251570865947213005429040510732127383917120599044787325270101800480196421952489890078382623271766002465806331609340572749745896374634082664514767935537905239921508287476169663119579743480619511704353327865027646218935398125482849631615750646062493213704843922338129535991331314382207618091704912723493393532716086021707072480299226879003266873296464064398751503257242244678785381733009805836287052962542611528751105341662094253308835727738533565525026437835753836625274884782800745120348296713277861108518260313287790722310760192887339172266202698784968048259828574087782167512404308941947751641581161885125840662519858442102353971655826221522368050349744563413035677005164017882379885988205408056358794693376276208181464433656761630440232709175580982510839331658796709858010570937245701321279146414659940473652812346366967577731709054450757138967445096032003999210315266743559241462572342192802280466077427398221102887902401150707529135422769343574842865246786994760233205902048331917204103931908325488722606101409939683894911007853191319047072254576990085884483727748036132898809804511974454525978489155261809193545390098083258606830888116869601192798015458502668612595912428908446421367534136115892478533897377386862727999653344362328992445998793281991245643277237573016169350227469295534178946452622521698967219317690896448570192414430874265863104556105467082918087539618720408247402570802207881118800855480914560677057939505839352737661241595579124715613819817730636663444723097178840109275429347094074192682583124945623569764853766336975300029980269896105316716567245157503674991957206771941623248776574213343678812932766070819072379502633907811025794956514649734130950174339087192713294132185959928000195233218887214863295509941198572842121596245879235189040264017527843969437708057949480337488564556538201307552880316218704075018071712461816439504887512570829355587287659962466523368983122888680782708135651503609555698091549015906270307665038583802051952341982461080773236049356963852280934089579739016280074064961081560355378187310224376641615851954662644725083893650355739192672097452926674438513950322189303565463531200975285117712456901159328355892434655210325874837027824790594443457371418900668430790889471946243920050850820910045696121126141912113548484664963012128134867738919240410258918700757611083563177862105484890292004658196572108884646737602760737064305445357795131013807475824991192060623410001980754323224157566930655788122708105645148970067832167679166666765283221233987171219236281442064928144151175702980710549738189990072399822062681706704457130904905735004595176015486407658964949004423686793374007080704668730508538298064819470664804889947357131377367610299840920241426368412074926633469255758816242027822703165605115537350717465499408812705707369406886372501075038441452094632376432672541217796694526649885025566812636457562163382230351461388378389777873781677050623999902007321589049947203425662021205944427486176261792126711061112132105660132178206596734097414175611831843102892160387710658203512515991840368209336932991121722487851536974725807402908612602687922265065240518166510836333038738257930691298243360277105168786438213153704507323064025963279182202234353263928910728733918025897841625278130478721360974560574034216420167004518949960030211049672351895957369139435987006092560824849428164532680554221725248871462728658516454561980603679558447673877912199130328076924461593080784576958529637484356531068403529911633107526064002104249934634544594573849341172612675082771061600294469908800313702010400148329925750368293743642676701408823234736698245138751585119358464365430819489089292119513864939670875120415846504278568210177577452324908653345340593096661607551530852802846882707052482003282610979553542855109125777546705046707386979580589644587313288242787667342957494772632370194359474829440041990622099689433729072416113417376137420117398223760574565109285331587409136956505830020054754280175084750098916745172609807941254119743358290916406500482274256200456692385990087483698256713580616305428515426593903498881969296612044568800088364880428803066882657332998565585206193360822749616505128259704115803103298393128640640596053415360277343744338688740811010517969732681867683129562818388575121015018191672849580239206844453734661923788110613858960924367363541544720643078195739167030858842323849313180238651418108166822666264504554698876481218332268656309487227006778300239937159011859711965494517299837035721961089949344955083315383968373197929594168199372777962990307946244150197969743836438872028667087696788291420308583995584138431213714275171529532690842741050617455752634773660160637497022743631838096580281077400625826404554258514329871749247791363526010559785048823545119799383025258172341979627745538189767296182860563319092084179097005896050307398010753936954984019036446929145357294425238204880613549245866974123168164463495201401088563082721818192049813014236495465146454748279710807994623859307080952516810748100580827403186075306597842780062859202552149566278397702331254570122794131026661059006333053593027566508180652282723250982978312147390902466864915925113111401893188080725872803566403442350588642929525630257227120755368207564673297991609920178214992409592886545418405426301730231168382202399461534055051536433877813814364735419004670076783895271677972531451656799024358425062234065268155555648856306351847629921833465021037185572286518981030428843967867259377858672832464475271274434142154657454470151009706048115074802877955547394678710933762144065673636885216518054468121063594123142690357676393309705320767268924367786941623364430093811539797759995865866865243806566639496538294016182356690642010089905376314742865112294075755761287006842752083675072236302749732829214462267390035237669131115792330968081979809393299267152105173065020223527751841950051774223900560023086939082851371553353359754711265084401682730620319282979529198913683401050179687787839774903490564068069206347035639173048135141836027340618030502134403671696450721185402152127915918331276838899668864276637868985493965831346381635540371594611089352482607905628974819827673648987982518303028401319001420457663848581126988934876055886033140802486216061101727836714057384095810500898232215347034309112697978986855224050409951184564382184205753321864403436975884323978592960963513146999506526796255005594946900538467594284211181988934524784410414992717300445664604230252020914908979248317609690568209154977446311111289471245929070979671564676566856058700826237699905829690424051407838245630225385226090427527161699614494759528821084628916284437966920130722221358771775129355087034588152065733902647391297013125398518962901937299399960086893150967250378650298517081903161535564129448227631135961843377408464219158579444977705431705340887074491628384487672827341979887640759229372315283115427987848516153452337763055517566760988359306085657134069415469287158477540012530992873140459425696297401538666257772932358653611156638784490943023541336584253865292562653865540415817950660815680873060510396736777943149343154345775499511864711033732385629602052845461760338012088278404206971113020466247111317071930422370821442848801749919399790814229376252136957259054262706822079155635705607830804699419357669870702691602323380698388410564390891109963127535262396674022593816095012923652816863888623020067112568146005738205823837981034108000496086577362506438455957711598726948991182973755561370812215481600492819254099777572817451425823671655159364349829596688871604262731845027725284175361505601226461926144275016061440198741167457667119963225847343219452605230306135264969442397077455825353598378253155406164383646128913891398255650084171017534947646296002513075128052332619556915837399120673931718692923678532192296069875673905650599087917711471055409572948918877259440936077135633367506701161385921088478427995773594133894263660489591252662802108715854218625509290455800631589485243633198144744596115293280553967774689799829729245109038502767188995591017307652785100628841922468500642574437301573159197457788631408314049534440537655793039132430020557376621027511585539436522829119125342741353974235448264144260153688005391514704403003302109074088974684399399154774900905723426103260171500114133703987956693121958588754569869471363835959983994109992789061883986722705297069430465761060318171545894704673115827837504570665131215390225010785072142095989808182310806211159129670025431707000738473910522844144641971956574559586662774266132408095428970890712599283268452543813611799914945430275909288090664632026759527366514210271866443544813040257822628592418881341151259554131294118210730102643253570670612187835315218583884524982824990826913389429261453835360763418100180471262693941869866659022834010598865693293052104217938514327070756992203099421918953089321332498140181037076449576282675864116706759794774505397834191364062229417135989713654776524628018232370488518898956447426008870998965305476617486546347080661124244171570062528955237538835392907894119800224065490871246007963782087338652773485176024262985606177291421890088261011463461216413109681524000560519387392104199675526413109586861423169380733024505210724837278431619883564607332485383241806751477765412692791004749113195600784492106020358733346495004656885667152534944134671444462012130179403462810134110293137216409651948594490412089296654467897250107746737467500513494084150859935685031653373402166693151776551594812749702091784847283243975137780706627116170877539804247897459296586576618673477347258906339388210761186749901781204621948380327546334180437022348733649215790884924082167447599923674583645952815183466641905217161562356255172117054993770972691175633153817716126531989557524694127520909265554457678035132985283488484426413388112354030314859902699002187563693196767474880534371302407428187019360165937474487761386677524845651874205510895293976621868409982716826587972323736455580227116240317793461615098794074797067886578418330669632361640238055992136399365263709145651845107810914195052344416612950997565090694394555849695168608738238960641732877576948052331619390923471316216537892801581920785824555991841977616204061188435463297767941336254265934124694818353225798035134003830132569034469979448506434152016592221381810148752244686428928625011797813078845321073946280035672362557733814753323030694731926267091191538674329905843004476790195941756185727052551597866452895354857010914068629867907232791343961383757299038620616032884985373991854418308998486647828509339931014640695223342958944240208500190194719360609130660982302119497264767018457065604490443824390026412746203947523584038942545109787960260365884608685541352588839778441887759519657761555463908515101196556579041365294187587239354802700426229298394061587926418298907858163909283315776903865472556726929890035378415790396289756354295448343098505798363667180763811864564652763787179134368524131326581405154538579027320950976808937162314040219946390522155637243012160172918977265354352386465966707490271210226312140451937048982900385255304754692456862182461771719154599475971589306060597308373422037349157650472235536690020576698927830894570396472746442690514054234647188425743313658039681684952139542359192884623661175461982402275161106619211779628404296727821198182607856419493781931445712013705413183848230364776750492468537669080320850822055326432704395303719073033394017972339588924277740245934336128116204930834280663886701398373217445578226985837593439461681064991092003473482262493599535192810147491878805102921644656698043443105489508546523038638438658048193948840213955658820451140994454724711681410513480697564118340092924580837990826140133134764460317749983972875878153287092850823700178513734792980105736922740461142622969698764933269786225886183079170880196862293513939030010101424825443185311367800992013034842689144853522275974045890106214192222760228963359070398455376241094303552973011921139088623676058960132503454057567936383365693894830451229043696386248323720562294032641366362641262866901393289399074691845892315703360292697038342532385291031204274653169737639413852542400570831887955936227225692009415104801426814816470105819811068952105048895020726825584546251269449473067985995724824309587726247723959203353240807677740458843860588562358402796903153155250573496725745016569688648542378199371083664557645869817173143736518785210917628090106861407812021993725351426845606680592990801304679722149965297026597407258794075053418455800396547453892042933290021084686464562145693077900044124494734489291543515360056084206325302197437031251790759600141050757431664681466519541856773485897824403620774086783229718687969029155141418903961457762413670339725991494495913253527834396690839176351958212235927203818030054626722078010911685539771949357775549436682843075956189641672362966660498127721997610592227003948054689972319988490593974793161879243034236272236617846709456295860327177115098586185884866656820762570114142200621163098281433045746188649282565628234660549337927063973929257330177011651598559398765236919311808401571937346082161479184335268119872457215440196494265807197672253584862495044069338369492900708426629223532562420532041698321422500479591774288812263340010043254698868605683149180198264881603720562164165457393787661310400734450337747343870537135120002158180610415671137312844316708620337293992122703062103384406516641119013769825113952123074320020109994474640152746534101145010255428407231246465951639264117679327734587801763703644893911329084984473200579896575610801541868926227243441753417287198159656188643493974753187446050692854798776145314127159833275186766988531573488152040188428968361821356834142817246006073157503281209007706858619962911194741743169251299042560509816111665360168142710996839045132010722731971730711705323587965682340525596245159482348405671920459367080970156485306212168429738212802823090292133598494852312005294067311801478886439194835821607004786226945977373760985464966161035730727733675352675085629167696860086233465310923287310074068006348928995335948095395654248693353299246769580133606063863297857181381944320825911621919159213954004906412660587308032975919046460852561829352292408682686951288749384242123377925192509506926245254839925943400429394111308407235999827244974168783735895760772678903921960189386534006560083130845085599778302462796590496883404550890885763849228137380521456538040886385136927524852489918788728373711733864207490657910431014464968232818596234060266738150694476317098343094344061247198457158761424896460943944651886848894224267975843831928231144419735392946984606015180209264951589554382255721986389776888642226284979099372519527854818704588149838206257941245764383645244134650596690761056344973468572182535843439875303565807971557705354100885080106160817139643292010865650121377220026174973395565654633878012814284626211052463611614394027071307475434196628106858189736178671187857268437219609581003984094114576766684965591811978015642798153455148132063162159022409604595355887930578269632761095384527317207873893967477594355696098734894501595506103668635054611544301267206592571666271758800280693570528750957698079081664917163320124674401698215825803983329065406240175079272617746301455451096573532454950463341017105503093650855086478372602681022462306699044275948614332752571279919113810535058198220321436754229626068426783352255197749156708675442676439363679004481997502046665674866778994269957529882398989960634464788266642742776495613072315300125653227737250478821333219283043190544114330015357909835110989710916461712729633580173955909596126930291313873555604092403047478768461821930888790616737770444116562172256086705407729391011430895860874833746839254925814193426246736644616940140626801338761356190877751397746416461024388579887955968531075324207529874981795955206761382323098955076143367175512926656594125905596077948075053386393477333832808775126663596520345620659557238777069571809017208125453521439538434464390752094935141771309351691616891330199234715051660166582484412199703590372379847851369818498575761300712507309385216057918234943929040405518141591290063339217053930099799727858153792262368360723039220108325379712773899618764065052186178165756625643768121995604704114593816706474613979880770667794543098367204157636421976730253959292901939328479602517824762558553569210959332736342199352727415019809700302633955712666765337593112462301674973552881194884890979048507411236240181952579925195076366332201676454482962019530806009984412478925921456509172640655062143351104477809637258660081321861489138131308459211450535420099619853551844401476536499046434193226330280925069851433593737984685702785875056947848585591344274865252356735358763987219467600876836432419836013359317729885758376553145542262117478966373816051372725414928206663902040897096777587836862320928819105434236512362170459760022469029605849922884144227341791571538939544712761132509739047249505815898025383319935949752801841095923707576501330748017937082565394720398704282721292726595365459279023297741008996462700317898079343899450748466221122329297542662467389457102275317417666596769486098749132758978203376304074267234266503057102192358303668003344745434270421491205119851587858462328446216890462196229343070944165380945486327889921034286138628669807566112296584333388833484030796975120237089003529493012259762382648736222312855727295935594041326658627816240727904608164534891234203414816797837272672127082806700986498193747699861720391624621808996690852253263863414308217453473512212695628306793809634922748600394819940022071537918971287396598178602708198869164958636125748078270198032106482227139494957892723993787923445913892684621584574728205803150944083094681768425534584417280514002801650479187897918692504212706339418781716335882045807242876239377961196041812122560850589046980973219700299192476872771213830608411237205510008217625333266549479271094296961389702577337906804869892607280504512467853404965643202648746006672344098705426913093753621602322532626851443158069374645518135503130787124932952565161900756716823833488803459310752801377915240565061174340436325929209603170914759461650442737851935479120310117385934629959773555413081742704054127004942023638909156645059037782913010680748207126791301460542697487508413843881823071319531800419274711010026740889704806741920678475626003514396485420323656930339294606495991020052698724289662760241770311187481468528354040838575504839969308987209414153264181188883387792866099240865625666608840553859744375234410504535042571824824261955252962346133508802470865746610648067862370798693748558156591098162690317747515641883353883595760410718383746417241570913188638508860457783003265532723804277625622070517440991520910788335776482190378702454811308035885963426592808159362142068319114783465848310712173992447825780567488287093544012387772976898055816821774535292595149026200225769085692387394918130009236586928637396464378372987666870002827599050205045912074671144498955173527427520596819742503609262415307206622236401513934433171601540156662092658995442621015419688205844839394456187103278172647227806040104222327022099323453939420795447446288811700664391057957863644484403957464338409130969891465183963354942163882706059339848244031623645072935848694471277053185686163167583228734413757966840149906891393376472412368320418635032696096956725424915120531107620285648025615115044020254023929524712606168183800604512782327866459206206539173641483608913761696453930505734397367222047190813427312809939890059395534954978617273221204674756334618047724482570824222912110678412567253787682462161878391781202453222945250455157269895200967257253319557741317095487541749800789151541376048174280848287691719432739395806252464937542861287141266131231003019150818655594216245750914184864074277968617533597512091612916411294167365320154530825438720832670622369732088543945382926794514565324703783833005631105258766248442590659282053836964261929523270202255870131655291274920157745862545300361763142350292172897914137403040740729182136427262643614124336153848268672892551505544180480528806355096143129062242367753894785097296646915296778371604690979466568965272878693422841868358272682947208478043638892564709856527763931456966581175356476922904270726326403766774354325469840968628073742126621543519171110578722994834098586727887026644406202301895110285854869757347517022848307890179057428210757447049077550901257405439361902095974057847664920286933497867526392513153735908122729784927542168271311393254668524239704855004193623417022375113650008261337067240829508211515430968778792837183923560794360454412042398327402928261504132952333980288933639871679504640975305712984154949822630584151960218776859280818459936243206987389220761136583051282135736518268604873266445256153146567863058754215640870975810615978713312179083270973714526973995809286567668054132478954127219461854120175658497438820014494356607691069190279959034864868286820396489894098470295032901269328746851229375690750080778539328605261281698942441957593157146166721697198110306668373334520617108077269571996911577418343646537363032720948234560601389530275700151088216200962024865889358696081411370153478076494972237513632527637239291490507927314575591359390987608607104715722627953905557214538698309669387475276577501379558836648908081547512566087015919968053274052962700999937660953765470606457319990117197957378432610440648487568752338928693446041136120698016216692100595473210135968867879372217119779304359477962660470122576917999850705471825347861137397965344327914773288841939801798954777972531558184642230747249825655442031292323978717789401046057067408928369864273136650425976705779020689775211387633362416300354431921671709567911605622109420327877875751800507876483909908104238034190607021495879486785099285945135208562502671176009236337986912318359568832247404736741266591591933437272589811245432849388504107579617494973181324443374683174416464349556252446180627928085203496354408737987535753740584153913772410043383968427211139062274478962677408890554674679582757040854018352931396401164887956314621270755070451110921899854434145889467623725557478414510061899027173892867157417472398807869491129554150660308887629831217337291909368051267459281059183755652625506386476609644440203557307003357256774368841686247788781750314751811313029758557026124062702451903381852815357947574491442317408518905607794318221212988384976931936440300165089714169596090940673818057739668258731865016988525357484756413509166473596325105802926652779119238830891070448596251958372417614889221020573828459689513496068336966313287416672597643936789491461510473343147322443381565975467284395066968882398699007122861148782042053108071966888938480061140613760745855771938565847724708965929327659791524266518218272045674639678089366557604935706637260572649022326709545156269493185386043996496680300264490209696016299450890133183442002564057007838875592958795428192623968395974738335962396297461874730209934297238331901739311415080577476832759634281092478568683028080848967642107636805221416273784485412426482536929689403306141905448144458036540793550037764510376650232891138736905191287111161484256376741765317099823012630132447211292305074608233020949954849012967005376878433507812652730011319885412143733739319252577134541022798774567222790090152660026223310330063633718444677541998698760589590923612326550384677482615356543322110769538666475802694230569677318244009410809964825800733737423585437351484677159471674329028198735415107790513400398316093444041189250277041413004708867890493227908760970182212913550935055071510070935103363510084339873030118031869595085029261258404344831386829568193304447302852329566604839019721987028485013269134622279355720796479934317425343410852513179883199615566400724935765230299155589705934005948975024608993633587540180850817006222288521661537644760011092814178772114958363356088755977606057468352543389848598204202739252342888791096787165346351998670830736852914820563967121902673888169586411342369218087055961078712986502367635114994199034423350798698156780235081525576562407517450017460947224030478709464070508538556705482558950416210130877742290689192292297110234479143207777552657483183523572022753484676004327877561758992578373311672573242751983514134273260457996275425773664357905764525159589225584007231421739876128980785838451057178209129894394457305336075800242036771826722737479637163220129626523842602768826354670047916741791759809993830139470444917682742397376981518386870663979712193040777942472647105383673733414980988291707415912026375692998379377242844703067366245159053027206586761766270935952932490905310829401340998027449436809590130128714306290387870825363433715430344505917581117510364196074592959698069887769822643977618079690763277637247460847673238906681933084255049876430444423233558702016043141198784435212009929701169938251959427849181915224786843814026919155698918233872307862497196913546756113864338833256475303452089293399446059570388321780116518478807825421267571502807694466574203475814864744208857773734426844511891892156184578275191766618486311425505064782852147524817324997604030197022130726718958882331801108292368079074464583954708237265925671499715456834263177476878960939546865213310585628969570880487350207915816852891985496649630814791551819238850497694559064753377554577401322215394587932905795088486765922669401441192390431847342706371341531236233720365152395808711651973787535930723407963549126857756329995230487909833135197966402503391440980139582355218007515467191723312763312133156336812721285281156428758542407814400262473846807464493302478064778200241013016678398407278884441935554455420178970191061194722409019488004513578151533342779165356056445410277836420271499751619293139132293472650448091825598891602721074745511466059642556356501685985252334158043457832769417938666096309150782463457650334039218226488534808448356553601810408530562316129207897425249006072265372166007846251937368640999153176581497640254986913668583567300071428428014265337105458881028834027555947303090876444101926450134695199929088241401870309954929463638897865764348706098177557661673961695195418192127970447256772301487308592506199662636940196326872531341821827600058956863429934338030049115213328965521585315071723912536117336927116583216596129926930096084698066688178894773239179893291056993579268928420723923614026419034739612735241705113480975429567668092130289082507772483184695092051977163124939238114700818356518472885282720782004871667382450697013708180336293478489642264230810346117306289651743992132440460601612538998285814169860486644801773353111050134971337436831457780549078636618191186251556762787428120353900947396251868413824047865395423537108153713552882795162113420906905401058665402955534692091569134569881115842756757959848958386565148261611122446664975207132072726443039300030315908230513568177613736148929092634242675536584875963364344872274029999762915657157871342672703362222323582307601212978956551494653069926029197813551612596384447770144787813250804384541108610353999654900297454728957689214412225688950416504524113030948096434270538890173728060262820233814598470451922413921524062120647370543999527432337782112219799174744434493513401599264150846331709349262144237599037139592205099130735204736986153000906804692837187756419984396758283866622653522849968903120003345031289739798201159766179803531271327889533849265523346321903677750839978781457189339038173400782852388466966154609952750909831246236130743881298077234232000592575150204767829556195309876472046754746381137530187527785025492577616135467308861999495772622063389989220788207406202486477597262563300838742190346839287807771512946713421363378535295164371781045419109256068021265897048561440500555413439745180038679023283869661718312180189577537479067912563636347494973350674313980433153735907960932977393363307441249540430370441732878226769486009179512734986906411065575211346018476746551139975861611505316950117215331754521568749977032315822128909325821962590362814319804635275844607132669620747747465034178137944601292962139618531186892945029768775657754970973735422418667342312206052526351799679158007750828409998961716742333850055339097871676060913811767610049676265842511891953792748193841796089709282340885800100160446558688235588350045666995099451131917387780716372706380806820626882496513400621087268248797557040116302234232314638321290545368657698479102897266192805882691172849926202128956191698137164822078956756016035762199849133556379933359714524521654965873320805450979647064826375373490455937932820196451026819441630100219261251366037856115892996379437943968858783172381153493538144156697039444126917482301255549402169541250189165026435470722840247571336012688987341167800544548017063704769075642496140217301909446052172943042566740733613171850500549980569316590590164900826576217358222345771012042765953767443728582469668278970865765351046226448734283025143344074450790735517028304541365623079974183172887261762840718391360453990472940715858246389811490112525053756542021825995252796409588113718148686663319415931922536312995872221626571634526907300404105342075108857677749551792660893725528626190479529287358285249408565881693075128958264876306581435780094060288716381896017924162245789466490426519305177902625903217041801576619066101785392473967742383068090641210048297997574052170783314914182319034285255354392310260527546712869407556070845843636134839085856851644754393670851794269191192749035203339045972839779719860366929266097195868171810773442875212753401243245084324904179876075433381442445918952163591250413413007292633746623376292630464028982405331338941962290492554956390988676365782462199018914796222106482266802753614200367309725602538082820355894404936648037080531707278723861605621614614450956350012726381010019420474429890708176870803187802979867158758932559566136290802901225684428635795787091001270464349480640246794829319050899573249714289574978293910534809928481533302987123521316713535934573338567254017072124221463222105667647916667104391855304555167816525283282862366754595210213988489416382372983175314760170971130664550823752464463090579796709052860609778464074392822516923807848312604551109229069345773661399755354433320806179131422012972616012932931171465728028860923205232570527130909118522432477408544204078241349888933846116832148688319031247367242165017575590369894307060386664289305788186117745921474734261377164788588055668742401766124134455783870629679174975457590577236621923757688282598741210670225068188854211515219061159272849792953266433463536480696156731980563539519318379346306398825795427042298393604381378617920314579485976055816885775409477509725851546015542982393966521744761934641240686416983002210712187547399558104548560502534059484413325724179808703428583157001052960742804655749584261661817639604566216291461901790324214617495445460108857919347045657105216485798313958224819298180769160233274205610486344120888778509867162052480719911657927314085622451022307441983647862657389199692806621377082631268751946878076338770921822504228361040369991068177640135620723068170556032771434001137646483016050000303823285388566064466448802141373481694534196609872394069477949124119500707190473893805842665749753651169185365504928498765917413481995122925005715469567329748544279469728644499326049520708610907829729818711896065043978351540648040844148137772637318212148652833274557285649922646523541830986473789618789734681311947842736630499912394612480664305978775571064779912800318687000229104714067983469671734546205881176693276001631078440288361052385010342252262582206718547518591391890417484655325005847003449452338543736222022878534317891554178917467374374361118980659691192603855310445907939394555290313387856000208591103990847717791688815876902637319168564782784814460282757563897233927294371436064712352273953132512066756818187455263265714880326856563627732917453211073734704108449441055417962360550413956567390895640505011144802107323746329276294440303844625739907713761614964106640799437578165116879887873188706757193849443018678617366661516346436679466978042803469140537666087881881561484288969168643487554966476788226802231052939223819666842881004077613787443448320415536112065619273676334664064289968926612057183023805351634712881743955778056362128667793829226298063530203759867438876738224936974853931172402024007199838591372465036204926631634170776589712519137852503607823321617273519038417282401231029611217855472536553327393966881128164525661540340818981919500708815478792389135862875662376642632539541030924761421022762243268445544269825097970849709864232785350681056075244337151868571185314296453535386430334930485443671929431234819399451513456555542686705443103070460992712408237813292306588576804255958186276485596326466107346838373530585414279414523568507200881444758494711631274533128432953395599515041373374465446098827597875362798225357837991050104462140191592153569203093741818667571653192758206116266966502190970629935657878351311036013158438911941399083025366904189827398544537694246619101593632064015975949028975842717979207102926102210509977779379574712165922632112344417268654519712253347227515532112682908647387323499089399462808763391455982168787652382058508645811112214299157575805396430710146674879199718547432072561802777278675460850712830601472425033715865085417957052703676131654374449288936975644078949856451643632342428470553703612725728770559857755365977204622527673374009137850704348767170307796299650714107015827246139975514765832477994771126447462142750481194647341948187426180484823772545913226741789141381822705208088737936416365455430493699832380332239159594159235508030212248486897400363877911822947314197671831298066126716394479765379965296251302723524992367649320710053021751086187318864559413512315971480542064097401325057707707203548371363905696062038242659251843371416797922998666804823581880104581204557400655493006278701325145160605928783427468412033487373527760011290138088723012477204694816994214366155189339929485371687810004314948211900149758390639345602078730013780612013365722546669026728859640118908637512030042859006821523299994042683566953534730001371251989064966438860301456794427248760755227918700027675294407824634128522855008379566065706363003444714871708249334726338410935390951789240069473684511266216237177734831782457690982627607945777364038684733241462772808317182619415519998459865393578131593586392243889803660125529793139099534435118509170043618567437937809991388566849685743052114847180614883997332434320675250301340656237376884298587428296801390470172966895624573651124282151278201615574390691268985919778812718233853806818572669894335742475111674244096458410890677543008063432842714287904427976167070688138470550922664346074133265164014289934665763037666991727140776888284756443999168932238520552252908650963075760886845411429419114612593064297522710827403228112151145692762171928467352967076524870476757718112112993293870526887683004510738448566636567260956585820004548480489281882804229145716221007408340037541764254265818211144728931211139954537734121665667982182759799508236318252009409189249743820232033521401668399633466548327550264353467786423288526711246700230106566060320929160460086307635159209657533160003010717634965346983872344011912181307290303001501162511892635356928153533423321758367527656465131561047374193166247117638028174620087850852682057025206087338784978314281783335834124732740901669647628265361000751916797575264289765970546999400077186290185264535550141587868012624797213365558717744418219903017662029925311802876677525970672175532232953820437400234200403790264236300291953685775594426936939805311863893778785048485802336146860258019209412930249475332204183373439790244672453707177339010839171905381719072265512182726398882465900151181285806509809567824569428307874389533791332623249020591781091232104166521494359124401406898312831318441305355005072553356266459670160324456532961219670870534014811480260121900689708214948538629289018939826603136240646311988911309599805537032871219909029757270827723450315570434320386787479957095926321342672277091507266060912153450105253074451206715540301171689853995204776667698770228872459812223627456021434783312857485945797127224832162803065851561839615663376548316504025173715401528112018501133727500895621237260336252305437639927580064176221849385139204788253042457703391515397648970147316810355274090427895774988218905728046982878308902588313577650000577341094085987100580693337292916530431918744247881536685101819160668984006651299383443028795945926552758707851181787917185278814586733494698329836275530189304688088557654531879345191729142054599169631071348498609174568753383626463571829728523321546073916468898292103576555475359242059895287886001678748373695328655970296829448053555393442928799061618723178070697751238035632352638113152673293597174018102112855015145131616990896656722196674549959835983415200333488052262807145890610465912668329140914225010584677562833999367990930085307117991167818392561659070537383275889543325757916639066389383588297253880052173649707475262470341186612276170319311602330566595849235486515802783530748704271148293073735464765690410483607416796428451696201358030599550427244504532976505733045076934193154661622370538717437136691605878026952211707980388099968965039577740909760382759273975657620871603093745723259187811407044808731423118407121127317112937980215156173385340689511942595195332643306960661291076281977960134026757238867698465192447027342028328494900635932657930888565848244893803086334781622636002248738070932861907022180633520230097739322973229326776250246023113559544893601324457787663172746786539422505987868038059526654419550886843109716772570503979912627190116651520709750873882853111427065841295221280598133991044178513262704106084328667417893460251175566158031626533734042461564165810401279017960607945663730107024657735449417686318218257263137481578073062438604507658889650799296529112501260887295426044726169688009564451707137918330555787772409846687413230493241134188128245849814406289943691383725309919885199564922886084038335187321406989781742846044066130331001674352378144194501012282068339193403414266600836179813576683365610421324862064389401938258598185472059874913283466463566892951909803230905030019503299991383549649354503304047955825419584027367450936342202417853747767616446683222714696791951549825944471965089920138668275197383335599587012287688921172635631947553275766130507627188405917688222935441862917416152689826378695484667100233113745752771116005230414042173784949740216693619994627076615666876463346308550184783034043102813944374234631342966862863778590424355546410583645635391062538769961430544965584010688213714086737828119471940950297091751226968297251386169181646913989803264741220917135710112167616130132751280398851683521936811754406531541789943600148467543709029699018561334725581654996321824915616192132151447250163229598613862966519220345453984643650142903717831776879399475772593250167388794921421703449080567090064242414238236471558606908385330383749979012680803793725238703803963974681277916477568184615085442698004432859311501405922795128732624012584952692079148379116056946110028778979502759241737512052970761120447572333630458627114293055404712815073200508941984810323093330061833830987298622054071559748627745326413096288637127962483868992865215892566383526936741546175316703444456119303761980100277088752575614271835273250334285777484996499124364727758779071783787146323274917516920837566120385562722377353478726294222945946626689669783374766737978542365469340348429816020676989258615091256872657741821363076716270921543474683170885999001182421654375987345757599761942161343277420450404815041481789538736315542660662062183524601374687728042478600452139298170503866044519561450044414645314773429083102750408399843342813567744982103621660325506919272002666521171304326696076170797446407567221330018806514776299313890386641617148813010814406684844995858421173311249408423083887489092350306011801257748361159465021159343249336293870241062863649502937304818527872283891312971299987817255274918444323978868051755660648222753883483247333567014713219612522147542792047975681525581103681098598946674870570242765946142256145484849389826109871155140064950118729802384343028696423397116072371052684648933329167169289861765388588181629531949108581982316560295822812232753852012260705187325732445552639436864695450919551788978902352991855302972744834116816345055045768306261338638118163736627141107783308308315256167258603368455178189566138101577229380025736764534211309647054759301707202155206359920368685262219393607845325690811702105748461124324520633786803156982582093146127256911128092042341597961958267854151003669515471614847138124278149627827332385721456614086171597770341474090463905746274823467663329635873764858583999720719950981021822009427092891110498574473812884724167629650029775719107517234109725263843327224990017109432224892576120403728957782818020336243730322415606580318231612700913256151352220465381480247605652530314529093296603454747630181205710437387291665473340874922928005483191276986319915408914973900176734446507491767194789721312414096830325201011621918212540476308572907127156672973196223929282883814771226742288763555750015947133859735661173788311251873137954734793814701018695821667771043378593946750141360150051484238338453348540982739279753303558165211397920285088176323725790321363838479626632252588781350968562385463015838835955372766814359450175306843630696824187338818652039243503729825478018010976553253576595352394697122213772975800344433345970779647616770128295756552401873632599633189454811094019656757964486244047027912509532932087917139090639678253319629774217306758318800523189430871659272543000460096195748876852317315914222811683767932114631923569003984948749010663152515328794543899280488141861596888543759405046906438036744465529182429936797663352635436528180287358828857478573932459031663204958277957872402641786211022938158516384941184463719237919576274243553198380586019558765621221062927413197196975228378482672043860746931167202703342541338602543873580072416571610891362003139049420944504459774709622131405998633189013693520208529499805940752693909223873911315230320219682758951980512092175534480340202987309708888564513469874603062457543800584395907005903206043095069830195269511794643340103423935921113489731137610230207498517629060970450949004392478873996767776025755515746152393201759585312716910524851217911584038497913283527202815465507708500033895743420887073805225385117211528534693324494691454319050875541470461657576493562513312388451368261219950001558520698944517099859848884941952048180532618402381380449631425503554175978319525407192682719052942459475559622523129037932051072315910263629368026410690361532252802145342468958491472187409985557199617629447692504266247186471195454247576290202459063711334526588312237063254115098525901895644283997616920709357160607745209097645412507378401464952950836783968743953500193918444605154132458158478028206595845094700825488226876910804379529241692037983279372803553858438518515424840138940160831810109020440093123437805956567944840071325183678122593694204894797251334856650921975463576205882671584667401711603755785992080971259688137544193953097727481394124356483917431961575556294785791812580003176050266816804762251030517505833562836010110303381859957996290642147118674135742212985235244034474034193684276495442774384334980460306634508018601397177577068705594747978992616600123359918931901774807591112998734096829025921893784517945548308107553313067689221052618384865494865433345277634829230858498644744892364223309284916088812485735446229868104696286374892368901946426942249806444554317566754779628339577189169649840883722307803051076447173079458716444342141041793926679428707730228628651507328361056273732182512748823726593845625383404755786477009684662646688205577870859527736973357474251917958109317444071232039273154982645825914815527887113143422302417520400451717333337147376647027783940840165317751301272039378502717771936175269915099081068792226036831534580050803517923635456856728892444475143759194511386445511596510535290749765518363383440660831914068670590522670163068777500967390988852825578229536307874537424574809467473394741483581349071860462945322111795537560662305133414003473025646647445742871419206677434307962909574111869373293581376229902143025395471164807622052208713336690374478553930792515452926663486047363445638636265873689786313311043425719745837951092836717200778940736259773306930866619338550788364866003948646571871695227286792251760972306609258059627533372134079082817577380687670876081637902721403357973552048412332792295111638487831068529443948762057556392996927711308288088908092629353937203551488816640861580030262804962659674798464975731045673995078299137083948802288207186446428451078554060527228641186190411393240924099074145072147216862911720857447491637420888222808856843552676670149612943910466967025124317453284223107669393711053268258631040767881421630319310914678369493881392620209204125092536054829093974221356021132940116038157637137100854709959639186004814344398668581061032156178591334481223939928096045015455180364168333942408101994684236344577608151345172643736928021461852700077873611377399772640594766576628408846290592807097123608325239448123320603604999823658778732718560269788429920301271552855729540610369616782345744692305773305561158084952873715591180005733947766011917272712914127613119482493911030393168878274485423770743463049493717676775511721830277390979522498555987520801805387081828372893928372638244454328270677274847973057128609493772090763319211633189717038148477015292879827218948877518748784221383672059222117447320579008441308688846776731846892778983803917349606037700957366394327999975116289466607722921985419745770674211105748338065274049814406811616343632112403320002817489276505140982053300220790273815847535411006292348520923823155526287436059252655430349807519852627485467767514991830787065159315889097466178508708016805439401585013968755182197195827441482588340749664279941888802157737004964931611112583467123158265465769897321625039007158366814517473456880319285230879034666700590112583770690937518072062334825275125785341329897888369917658916501052455564362028915234689350012330421044401924678810690525459545648089967457613725369256525458888397295959860247697958170147019610325173417913214879164245725967512453820772108421621702580496557296610169049618723789998496100747416834120004102343223560183178833550338742195077883398989719895820207879244787750183183184071320272744557172436855865675102209522367754316237920425561047686346654134823191541640673570764744037713135000284224529715824764762502375401985105729739730794036490016526319601185707834686942446570793893190514423050208266783700303090794924501212302444036954547264792606622860446102103965474877736984105774193393920357305632076427694277988925943471178033903170429006130456995172511631957192555999513598909338686147712494391423846836969896133508884679138704770386726618564962073582892792632799019404982619383615495373968458201702402248305444028948915886059672776986165720018844626328375358297686969946659010339607089281550167684308109512310259238513834228023774064046820777155523901768934931982523874722966215262767978429407182260997776516657243098213697893814399748736650863519838783771953063970079683929407429339227875184004978573311025349238316022852605569157213087746541038546819894892828821686532333622498703503046670072171270524367579898730670162995075102079780356446750816830038388309738861275666328084560774035594472206067601948063423454767220693039595259760695559079823424215102987382962210116410970683846969789025131390831255929762588641128307108541824397541586703310742079348737369454604938094198504629050581146567684231531208279528419900721483433368273950434430634236460822853971563526866766256305335529599154316969223334104600781572900962415460957138915192163875721801790707522862718108558377708886475650248515251524473152168367941026702150794433191422061847442132015191726085203730476612403915185903450629968408019089320803253250078693257595540440514757498339570954954271127664527887852962716939716048806759317470572096223503101494336943652044498119055125521319601461027014904360844023982509777264862242456167805807125969109481215597337925875993575744351035074520655798297381454423648170329422331842192104511462218607817129335258034028659250360741444208004891885152465397526324361567985767822073685950266360047843699280568177706432411974760764431408692087322291697946726714093438661252289779653542924590574657520417292763300448249181228202293029978173836231812231898602859570679087384738063313687177742970717896608913460119348573785056074402747537118639516057899948453849390809766069318066476030490899075727749403004865865157516358770660956125109215268818090194407960906738028060036561705905141334851690071120545301284065440318362063554982696439863370884197933858544198399702713524147810363502535064363602668468789525423011460506936836271352142170733540841466037880213465445022876333475492879271984198756250638797929919664580936116776209734388507368631944534672544560695650717491944881610778689123722081138352887508947698485615425965633925547233687888245397690166839132933868961651750261730657584032162619119421929419369948273769881794190775555145507655414515731345944454176649846440401014523290542466321008017465273656256149963946061300672355613353280026026025374940746514573884905059920843489717824382364911434012710813329590835155103370465458876557206172726498923645809941751413307006504406887307439025070605583208656125452215094654775474666223021490109333122049596681868503495847339247725426483316046785620156825146061935745541182693931480905710043514883557328528697720153460922982644810675287843636738092924187640181477269136815323739185445677519755301753196546019520537468942804572586407880783929579164974476763484859150957107192458172758815624012005525132868048110436981819659408025048886719904243249281195991926477562075880541326557378608799990160126061719248632706969738401958855138471132891687240427447443770123449351674850546466353370177414993749995608751880183244129033096385978408190294558632280179736050309753221672185897235540670055600732212212567096544511232789624032720735299110974621415752298696868167801226353307691787689682864828045861720913638800986048024375574558184259595804219092847049599310573268177118790154597954103370034775053248956060393390910580474960329583714478288551762751275813337182367072326014060119332588933366901077924992237814398392010086920504611047225137985032974415658439913944047496991823920452657082609650618642343145883963293917770289750357088618737887012095237188488638694552105089621926551754574321156824655970936946384797967881009482280538421217309472780290675754852714677025222384752698222248220784832385428079599415041977148363287074176788725398850673474495497093552046933854882246467461732561836173985428461120875720709006640890438697133193694313597894821219578411350120696912677450472112098513189152340522327619361287210877819252984286207771296093541272897751684432586838619737060146994333494871042662945982429738139327372036355388704993965005900808330709047698481619725814901940799467199732663695523565367972318062422977211941406735479954640759396199800831296901305971965759311803076916234867712862499800432526381461513025163824985366772520684415849297871807388021864661238383429463080900580731748328209196735686635244014246111888764763472161359115908837420113834504622746020017900252484925108296344549673995169421670840130522741489611456102424421393092882093044735830808663212244948937959659220850551583300435163541687856804812970986078174885887345006230758319887737665641783546733740268898726942040559873775554670425710391520584321227449624434712301313960959125267619120191411799126967162801829855594362842115414658337448945501416599427848738933685476515680285754991401886097291227256831936476739848211069927346236842352117992294781924185158806229374064869473320532986568275095865559051763225600510780301155895983102038310287415127212017986998802505417688035038807472728877693629436245596025901222574646507221872448983831410847291856034703523628051418650900884487183768081893587575377445314123518290521202024179221587355817519402916827694216262633783641405164788771222109834228810433065013965547263962888742358100204508694862891118319860718515376340387472006299725423100316499126622921550490525998475857786270345209326942415158542499335801757700239714638952690469805974610315185812655116425667939571124080167635238916190265983716810075525701968133286402126753067788058780308828371455918290690790842894711675476911282376909333064509782640528838554770189810816768937815619576292896832683208572085322573958741036809701452946229981397706201265010874066248816597964016236726781618419991264611345124193988550092492217375760842306156554487514551431924944608905805622672288116210035301850368683842116856521083476176698987051492796726612566199821649015774723741166684763812646916953292302007151463136797059507186499101825709843981423249333259320916173125235304345219541383835452556141581782688710353847648283104831938964869545188145281640110848458200131952699419785160557084945473399052377645305826464950699076373786513767122760771683891303824234279876064253312872770674130721428144790118043612355865555957695537330650316305707929516348161455360374946130667973564347194043065087040344438019101343000838436277902302240494527282116976460742197000340510964016417521114250504808554205424248224714142575668176444010006843712388235604678621149847428100398527494235394595294148528260040822638873602682076008350479150664124799839300954463818564469256647802906900329139256634747235072196839713113484085912793095766599376309457900639563676461180997267685645378718392881255328724790286155057236801479385457279668363405714035885756609082134254165091382293752454186924439454200551699419470466130928272970924501673013733883884144048239471046976176131632973653551503180268204155307699346827696764686156385255324878878058133487496334785328925397679544981031258369557103806120402631526452631044712902418339753734294716442772566107802580390446248602348720799681675880194497243214594947162044949238534823084638173649318750184274795360470498420083574335724542126221824002947702265274876437913953241659265589792821858455785382347438606439193981738074260251899602236694647478134926596333651021302787076652819255466886995080820091422739577481429743888403548891501068661298645946026668934339085132442624868463684449387724603043439512369935020964619108690368960667938617234392485179652007978185704509766593413388679956502711787288036545304352553359019345473175411301353611521888988608815182775013657705769726108046962208895263202923995914808110909515089624471610604826070739725707428012534766758851492244340987750202423980025419161299071417278713262208764962005254429221411717637484397754384179901658885654495236185805966728275855607848995158124187043862630561838553851996814164792476087303956680880041225228113166904813577497016102180066206160721312311373632398487827377420601506908361621627318600044135684546670249944444650518213544750812480066200625804646769749942394210966150702517346924029668553318661443530303278070300805086719146809159280604000958247597694350450206664828098054056129399281175972817047728001209740919192668162749906374029631518344340916163208825831528916255151401732621711551719329996236538573913242034505489112249181100302854494901657063492607665827766558744220963630031250982871084166711199713091063360959821978691041083889762645732389364545115421582581402790302236916816907425369195699193622935820069341757369999099874830957855740906271910468422008894749752364217295042199153767765438041113397087095940116119558390470881742359729031186265258162238941613388515856387178950672268845300092745430395681896945697923212584353163004048235680973152728234449208548619515903758686044622448491802409913736412757909966365262795752646323508956678587274496252054985226482817286434374038909811702046035448037617016074404797139091863588646833525347837400716879887778260581064977804753280504313103975123759895745639881499734466119336486227722208616888900866829296813481768463688124436004638841379072548537205900948246725448948033378765818015774692352504938401045558837279363450873807694056829508760690373316892856928403733470138793821514296737270069614750209733091427537771559772215388101889459591983130340917499059748973408572495035588972346158206982675009554359959194187867356148322555821905384806616650389440294139318574310352742485686428701007574874866476502938587190975843740284939708783804828430199637542391021973905706562966354198274614467631743566479154738682136535356621814519582986141674611924413578898214542176213186825330010860493581693968186323798373689876771333596454895728702008540617672272965707664055266653923577305000608867907179541115141966354429241543049386907236367751521636977393251640444211492925079541476694654828023434639275101473852475027162618689969796684976024619259702989287879097791624491241253338269146805549169431242817302096466356703951132729899472042176396385460968578373116510178271921972560941030590159026151000590219201371728980586373493296181774816604058061278478567849163692550844305649310097113349795275338401697737850970779582117985903176132182469532751857354505252671356826744237214316698889167001893588837460577077703252739475093435526841929794054672242062320396538133863793001470276496545283658396683516578793087273693526197693277568357391452636885775150575469659952276112781823511661664753532062730632312331247430057572886687144830164907901748956732374316030373519670339251844692495104993079205885141424472750618994052278938689367203856653664806732841069848521795210776204538067761791688888969750020807517111210288774663634596463369072645584059059990372756630095274981286134930676273481794491141240085365402375221817606882043041246563420390462069280078705107520431861160054903419211336179001289082788925999942811213395054144654040431655245973257072017752223282520055567315401827120098331109991484323759531943624279233366269343530035246886860561180293550840970548019709724461248385564589569311774244154569175331785885179003655498471486427648382489940041818030402520180041047055711342199783921278240695905267062213953040106828376924457989661287636450430075195287470689287965966175529403642665835667974093026741661908511047185653691129850627128435461963299967945919829816274320586728614680801184611535481676579638788267516148934823790145245679939580991559578549960686593185704191198694260389286999738432155268444248255625982454297955359737485918235633335854247276044015328778477455390027995749359705910915449617965133252923973316946182573363893832279692513489441863325736647941219260889815485622876479538506735267168508298415768836819995523677696920385570189617427689228351221873136707097117698413599187528833943616908355475109307340739309806524154146818674879678124065495604304597637467955536766470370772888526214446816854009267628202044080926190112500880722514845008947679645408288753726151470065105423429482134549108792260558503547248238629220527712262021888055117060088616041749453841515659034301268402465645523400821633849608703064607972274276594056452655289022469506934860430061001739143904001384622370321695489346875645158808994940790620754738204858938532602346372177799874572444535791674626548614320120824046484144591841136222810236450291905339625581823969192475516674674810556820807406590754055533669888757317959713876878812878828812352261120101969446489342092979439189914147131899918923390635993445251172676909632309110988805780101365877813857270960204123435512668247050256890609700216805395524129845486307580482036359109528459393404437635177174657090812747167144110896412428335055079217509640310055599037027613983676849067214056043240658681649331236029578123564504511382925784234752299695369318509871616027057582919562011106636697236491637961086480193999347268129978373333653432619187374790807543514557242793384524464979851013479106674876643860271496741385933734806274607430386336496869275819392305085976462612420809772932462609783030305522392673970078943360439923805038329867570206586094252767795357212993352050401244159522935000050876898032722317689608632666628507163285244619676617177623704817431212365678203984821275712852832547949231745242505169096354598971382229008111454755280359606227564970563006516137973982194542848819075471042899111647934652409707915598471352467396607495425437918577342926927738999209799579024310384755644663849277812957008229550193532843554931763859862891395257995659395294104646071162720506235585663803696404138016984715381892098481511546707342607747988916641377899418150511740572169196252287253589360067262868474844067348291291627346418184933642879896977895529874160406409049705864464981928391253685990392039237650093469116930505730483333568132127702196722234431038332180583457552206543668444549993506239255127400643181192703649099176852685111043302530095631580290950987895507486178606480551344208725725038461601654378990096427970569140449944062028408111549701117102502280116890109562793028013183835337436602523866322915733695637777767101706452311809549261470329329180540807662319586855516491882908843136152813009192672516511475984377668650384257760559576610256196807627878536041156481384700112541351975754753474069185414077941493673759563873123125030970798420712716492166513332111488019428608757537799704364394401695649060597597570144512556803127221507233257441108535986770344498898933464338355121757941412815495376153453197859114366861300142505065175560039494508155635071077796317733623503196232426022202130222373022136998394509678533878016261159424287288360458726675742336986011223063867867775778063087713196163413540826035454997099194463957901619978085741989009411812655938253613218914203613346994669645631623024896637886315379107666319105920191421191045817773957319496297492963249165346541995165429057504099236544425449275248033244156751163254184173120987895236816167806644009330190174027913423046841213872801198584595833632990359688596587996548263041855132340886755806879080239692804321945713880034272463679949805849827875963391050567742036932782420908186796271461768880216949898934710629718385966785413907864838231632431892893060775371153345421996469541649866819146558847921543917209090807194798836296918236090908429364848072354373033411163689676708406540644932220831344791073147999435477558691914841752713798630874472437113612456141499669242468131014225076921382235822943026067387417800987006226422927075321688996629907651140235185049603386014201504123844474207976471442494662218385477439810507947200698705794254932572311248173158170092460326503915831380315136061125952812679468631260142753006518486760651122446198839020189716483036051435650312335564331309424383175779895950161718263064825907870716263065504376782379718025156153044154729251783737092843118014564077176157524457841975997646903382910682845928536620746120942897943647965284154971866634095197032059797647940108395610261857907203254401041165758892330486483617052833457422285033108325150494852784347184808808528406141605946891697849460064896925830548294227329201555712460734176715637077569419860997482983710156827222512432779642794826571928798114955847790446052517419166666869628527582428824567407081613515614712413330676474897221362832728501087563205163478077114030709105185657764760722164682275323787874290221660902694255389024758111702861489360870989300767742864342942238533720753847585043445457094260275510640483644138393601203538875312104495284879145191855475228102929527048160461365256323358342002920931125898644640377933853265244464372065581916309255451173151804260433322946869082463517292840569328339704039154324829061557132749987502677864557456896851330230149810829622617197006045903586964839263491516279278815744799785009531111679110293182155265068060655710045935950290004826845027264182996064318809387520780091033730956642673600884561042188660794041577704584682785309206836579716266038015184586362874317930352174076045528862362637279736764264125790004200893964219590800003269426459292248779442751706659266352760721003506163310852230401176496398550740798847256427084418052479389211766140450503847764479319996258446559644149520012746701283277854891478307043223990362589781890189966265898547428745573739258531719122090643557316279569164059363215612345898718646903157504293596256142056853620397137966816771617321761022388438062080894872852666406859181042805312731958547484688115353033618853469409114403662707023415037157182121081030516426729354253439282204011740021461212092369429773831065568393820548690136690257535764374088007426975376018157608930129716190809312436024415024714027867105777699907919030518204497265174953578173539986222993653074750019978465570109052557142907073576540664967162341726855458599700508388696108008503906960726453335970735276868642606176795445825631761515366683958137327057115200843988809540032880883669354368600794009124836470766958423440424724744590282173791972245577832332591620996220288241634389086380963685391394478130788448339677305922413435832906383101103920275594915860466203540128191210601205387404488193875309202181661676248423568787799982066405174201201283838375152531138889284815920678091820242101925117819616895048230020599336671350475646315073765686657365662129787848333726898726168596763778615093292216851930080646115122312222510561785364033122579547003650956524451768173743534267118823764948168706968415672486915795116111881052126371328250522476015577641747331188208067295180576235670150134869134245813812627824397398670916920630701814641360059930570204128110765104041161177440559405616852653030909774647244692589961255411211608161274886167319594480675289258210541653832100184861281549684096399112885720943791816333975243798926740386997344823399154227080700343544922821453775204829571914684499910252396489220086805887883035328028478480102148907039853329716062450574094883625538529393113558927545716861932496916290447739232538554973638667060875406841682047572120735089212315825938534756885656903264144157557260894777513563914093452195414927435375543066393117525347733345475165274275926061878650321055794541033833324560326569336895184797194465143837988188391344154953061820424623727774830157459672584641619093870865633591551549627213658194861038702427282361602661904497808853687358522950063459088010323609735980733942124422683892821549353140246816176489963550806415955483330789281944708834351628834973279047823378713391196620492106303842684406862730388027313472730761149274721918537327914163586608171836094793301884663843809394857374880947932308194309399427517237633819265711789181707399837531927911037106546201929800436876593594211404485848202275926915292666154026886032209723428336690867102960347043528878333160388895074826677539388145084469572510611056143852279601545754839617601243974118338229598865285516615687750926061921997583996869245375389186927512294989798212111227671011913599149778011687026508878633997058409653773239639859901324838302988895898904808736366689063377777790872052899531257371839818464941182878194449617195905924357242842627974663316599927712858735210141586122695187363256021005102238699850057515152132349784787421459320093415753855208314158623687512438348654165520904288600835461589556486900233594817320541248941529595907937620369490978211347310866986250275220031984905027599851968211643225074734475953875655748938767136871176497310103313038569509892600290437793257327785249821223460673796573736088115188451871130581405264166492217443969269424419298542061053286993585910342245513461526228049312623324694044330108101281169913059141878225238730105168543116167440847308333565392356519344706642937049274130887672859804307447670895244868253539956651525939057655575110151021339206046403804906363519157383574998395224162956313040401250266706636109928479054570287395254831015225618999858177466889664431419124121769125082166509266357241877786783252369353162537641160486165636226793205495261913591042009974903969292518378278710673798888842635986408487624850795249003026997594290737916277471870218939581740611115237644623694603228894584862422184019176564294644108631863080468622575702835885764083045750727245681765781232417983071720890068004224393709242977617606286941203332549915034918101888493249441321944563999676055651520667662273731905070738756025504661109304596524669503523580723662347414656451192933345017284283682533728750486039087183710489779544147724451553570466589459286766710669877901642688604524009702806934469127667000621579691569668025702767585381346134846110611105712150156521340619365090677920073848124761813270665762342035974413782123537843267474220431937041392706775942533797398929024242176051246904591452605746959915586106446130854055067197955102404814997109175363196053840866684242303978983220475940945734139990214435647384403838937825812277801302349210554640107854403834568765948499297744350316001078729452817658007808979071663149648761750347393094382225045551231806053628441465679928423383210891721465619160271434743127770070148733967137313845684686231582530270617423706010302754249230346842237361481544863147298853376792707166770401687219532037862734022767034391924582042156095803448069532166715294239641113834794807462662529896974775133002059824931331055533453616905559860198335355890860496965280436004028930158732124554961064780378927918834563638814805775871610285724812000835786473672648245632043954821006190132232763578314211939649263928927158335501422101798141055611489914570713486544312044432966179527176259206287707291151845597740410709567298038161605098488063619906211505235441185337738852947982218286868829163784968043387232558961819027515189163361987002407615085158163317276570330877626176121942829732465186151229872165373972506017522029926345591757883328076491316973811813037635144318393712554878451265053070282950088406260277675412019670758574151526561172348441038784294200451268647898259677342434223497034442713332306247317199339138441861743148413397950600930778916938085411091606605353333719936460820924496894016083373061549560810489059035699331955277331618341655978273242345965305082379130180560004944175363761000016977879205948224540897342479843582574402770668088120103120867644564980556664590721672839544427728854200192881175053093703178988609772119275576770109346199285170398161037650930070097189518221909575625686483199605379673911448341222947143303572423055384506337075818035581036590220656280265664937085352809061294572437114478800464898039942891916428277096719023674976643781537192701618574619446276480249919591061082352072471210735892142616720517211500138163307610852401687481379021545413010938280210043579401226176352629897600008313863846631191146963724049166286007289260487034211527926833325758893259757131596580442351423739329983729605252650908823379819073493362835659469787821260621264023507845925856630560304745454423576189594844557618736132360464403209376074136130942927140751267502526004510752023527407462086589600897059839133171629319357412874020622536372993355932195820060280379000966364706638214245521867559426749481297993313875536105403888862225317047126500857171542424478851582174851094880237906259433526365296480566660440387327893301693325835031085289503101557162066542882116451037359096055855855401902279085851353307103153864918755430720584451429118125869870049609144911365503842868959369528296932977910952957149188659577524593173939826708518507272940258686367537717250526185241532460174393889237385941410495804236396079668080127449756692178198811432587845877514745215228819415385080097085145012176468045560642467927584447806428083137916246277181121705240527942919949991440688469748992823460826642519581738950362749304582499836330647980248231361179988863051721480136385041867522490378229976464734267297365686759580517750363153974572566971654582974992775763508524511833313232926169240350828092248615892778521167533990317864472913147880365913074895644333846020582180188038360710218676643904719847769179741330732881689569817906309275828861854221615575002256070473120619392152981584919533939448429864042038610807710711952174345360243015193643314211019935811438058032078764674720828723908179875270170731612025601073875165245333114317791875546673361963233678021241823452943354381681637608537805444592787298357987093690465817519725684149539267490620337039800309296113304311521070678527808602608193680329964930965402253366985757562142270999499197464449867018804607279262097716901527140524784577139584926358145316761824462169115446221127179960614297038870236668155797797896538100908179390829771360346678119001042984408085793182709603622742736647067134480951361121162341063448092698458518174261656398682985612948156741891455495903887455622093264018386975471169750470500842550204514701531427487456007346147232327031591699140937491182219867099436966220510230040924788845705276453994558170386466652863833782497786922502792985024708277051582530295916159692957727042126265115093840724469707752206964526722008622527022959976268529238788308780461303175633849633685289639276835251769923288825377795568801885416591285351178750888622739168070835900045749369136236133957929490663776879593752705444437912608852044526521495097973902110005240702372220487005576848971472910173045537366436755381969452822832226555139002623559188004604786863837652358642441934419939587128528103143656821545447572262449200338629086451482804875308401809040567355720584916342618583152476197730498145124598070886333553903187134209679867527972927224031833971896163079946478574432295137238596616054519721209688781335156368370291730289375484697902059219460478113773600541499681773474999541006258970518295333533449493515951288826628683347946550419451553728755734191957265120513926788626014843274638071782816709433161242610608264488739795230448624285567542709646341121820964990347507221912434450832596341704603302396679545496068397531884837375553771186685009126045162904601143980424042461578410413331943346164152599629219007458320016165901641805326535379062057130296944188488713980812122414764934423388425361998688839216529136468330340425813991663186025936110368230106623777621616793042349025704774610611588189248714465875894645065297736893499092288830544796157428803689540913456006774868513417282012355176872540563993237474438629724099373125515086247700179339281755788769149977294275012423814283831940234700823573272029247415957346473072857199413544426498099194855833859177501138961173469937313677136506609576635538916879168118081248381397292323615451453077519276054102557008479479104381562371796266475292599889448179709135590577101480679211825329210907345776434735780026024994707379845489929578249231287034736395406194489302133983016329835606720288555441831236343111977232988746802134005740794313887089083440619319745504992778832543944716881399496995477390078973187168282370122885585627389374863100184094248487186289285194771702974254479229940275388137918879762607027642231712065488638191347874821389839625120509911260767414646337531018101221144294809423387122934330274170076097312033993106082857273020413410705734663568186478325728949810556051719996058576871235896163364875700521785321843931197849979173494207288796172592542568326434048431464078990363172710360911180459731220703128396790121280859976998090390059662009575097217904354784090951754839407019885674820166816703469093535356229801697938043533413933978104508022137690984192544390780207869508313593917524063278830979843243300598754028783037841702247545868078672333140029903561540361285365408926882246415169734301446060028960130131734643505836016358475230572919263983107456368507822752948927628443937070794585646987990681347155429717325366698790530615564860068934504482382383054530115835848525339148042056014938279552046271279743870203226777384950780965556835304421684393669408477930618038837944248665258355148567712979464192343198273903529714855738329174440041929354069586590382227343803462112330193008543172560104459481458213260630976552912282155455178653065250149034124812091539697364540258344238165022602658648748664086689195196858259871522727353691978139834038163722410400482915094053432771273501596256274533495091747085033484366626973546649935361688424928774527806558735418891165379447369319853495244607225688361384291825245259294337810514869339415908859054992229724307445003336908126146819494806837442045579550063873710580808385137011508849995204147361117652157229709979156920663130337289066266493732884076687326182603268585765074082961421985006876828254766167263388024751639819526806219544031339565450958416760855080327743588718128047893329558706154826453147260116994039451787833917429096984982099711042685999249171343233152120891742666949983857282356042401660534931107450450013071179398945693570750120449946853458710660860259788584722037279877903359483430658934739003411762930232514217824581423538072245166731630395678216962734676931836565041374912115368429775076976096361811653558066078421869258062637161144846064355867157914708699537703242998749219024084297611393108253062206960394595381989793360807822216856883700031484441216879013831589982183233306275413430197560778401378431251988935614351856760000014939977606565316171604886673435233362040303439082023408635409514517265998670168359264623639830760180238366842393693963080846402970896699024243881216970527563498789312960466987597281486139913225776911468225375527736272765834664056313640771420906244813561972117878790546693033874551513567985287041824358066189590697153454010073078531808400013815268800913402954259073268433927264497086431786491906180242962516211322622278133920799154658530383563148194550248684373081609532645407195988057326658100024597807230553318461088047466287230772557730232912931781640366885856171535783864800648463971236271511309089887415913381016899004058115374368997648983482119648531940335388152112685057290683014903371047645541249029931343095995756889899168628033169414174136131726814826454706404063809080640571767842550499873651977124280290054655738601056793649767387649026968948540232242513001834994138257949809028746255081674416645555179512212917201345966531101083167501704740721851770871977079743843380698525055198979701420955199971467221400128984425823025721328717348812868248045020207642264782150505916286507171338956468857263684997345146981272128035657029255036842512289440406226987014264915736526275696466994055726032315155747881667784618513836843151180507896645745279812981840366677273533875325511827694083356911516858269420342673617016565361816098047626839105315121514927226438204947636636330830477361650978335375056012065249708622141563961194700636913430952285427654374290771581781700768072955796965907976575776298859225455055214252862245662298097273588412560000417964018677863483231916974867165443990690059349138482648973751995202156120959972570466260454618147705318730234104239918374145560412994660390378135665229413166998335039643767035105619441918336453408825433697854598531074081765121067393600725778497335377740422711613524418857110799278149881002268100728777091634641400044602940401795626366055839906519231775947748545877082038023548031775550087230391305943737519955922056762218381331039396637602700347205233562073831585786502128210552264438472886447128933303974021557062446912457589966865429620064250704598860958973138573781691245031890313303888717545130358578731560667710486772865238228379846479845156543292911349515259741162789700041918543880637738985602612871682378324131585298648124186077338079783213266747019838136047685948698181897460186091987579474871318927926083806932436282034656723445438099688475328350531499965855194764273572743175259423254320754514326253583452992620104345027694430238457271291946854012874291993143616073150417080140530771532562282002971903245057666041504615158777711950965765830533723247478549811664211448576953896534188477079120544318474046350142755696934443635592151342770093949555420904185577820730466384045101380428444457751904666487125022844374859575838706523945699043327941673403875836183727360386110411022293586609218699150641672183542979977792853845516513590316461385822040534243351146260876028749604218391187088697306215760458147478363103702511283025034790628370507009591590165176730446255135260345249607201136966541526591497063308923786250408633635746528374779462057729416920403891520366341423697624438425351718644097610519846106686916843511847165096198954219188505390073714083118391342604127118313745977721888342582123622414392441691427087443377919527793394002786849560960557730828385840836222490826879119680069710910004553035650429268829516367859886265244716759259503190630088791564709837413930884925255101585948560953167299546473750925042780858703723545138890692834148856763580099394609660553824663596869578920464963446622010943412385131172255285981196371121634123456254404853731399767067414920181454704567739613082651457510805672680424447938609956032054385168394725905780905151881073666370353801905042898649304661119609670656106483376296303638952313314427133324614165242937708184573187094857667177123351023138542301736719576915749594465629379123274293738506528101220116335733494841370542748407631279252365681909059117491225563807589789842740153499389659581793485534870080067977605390401424210376134319488655266173100627663385380014347828435022023032482934996819522252326568220095531918114852475558250851607901106424380092369018726268710488682156406126535564266485147938751581392374893480752461721256157959462644987036001001577645574083052854662292986022733984095295289387621912503862292635262469594670955798938321344184818644809496715893295687575837376332809432698508379751663629069517035365254929632799222393518163292966919507302096754359889079599328694517334444382524444200804638516138036002198476676651041219589537344726130625470727558727343192088927648678601717918031983286300759130755096114638220610775238004785953117129303699926196403525645592811501098224804921822249179365239290696176164744345859976134386695865443673938991469304101282653171394635077365498894743722753801266197153024410991503605973702409565663110702707530271347372506925807232485931883956100270950265432407332233214379522715921534238049132121734382842839299953567288544106766205138266439802039373094570295860560777952231572182474248044016489815689403072811896271552305952356487296037243475482569669025420025100641725029968875491008582065109525847168308559684794526590564378402757561410422050597755269082836832637764582272833990617216227085635703963316296829597588623303199582233823413746360094120259242300661219892521046549303160115238429620856299024443556517787562697337025855563799078967307927998883808519106256415249372194487614145905248230052143530207971151744068928079977695373233432157863394316993752496735071076001912657191645175780325235683055120924283459670785263084900171089849820731542676298504857800514261403709411978668372064439311086722224254590600860979229964819591218809001440141400577439164393520557818603657478352885094854761138270031857718774927023377623253093849533466254615516311362937275515616014439730723456499346485215957382829194977930603028576658705748660465774751170999499990369952755893858747784401543168590181728911555332933329560212812168025300740602100686060635484971675204973107140877432856312533986374378626185371872842324988998850484185830840150275234242946250429796242579999372050406415777168389225266303276057139339849590056393511870960247263396320585364278483813558120744210934560050142519387931120332551203824772865396051321600847093982091569453540226588904107270049116455820167459518731448942094505878765344125467940378267857958096483273473559112924989900575110732191543766530306563636391190011818500148766411388667454347550103048116622132973627840144787091563965291222023605668634960694659579732179941789639425727056045483722718176554093787191566815765630086798513028529630900837483216614213782590231324331483289606222440257637937782633293136376610768920422365848529584124475495139049132349035259945167994223722391628613421723653317075726880980350218174900443649078045531228610824940240127186780091659493581978808286308164962219524523305274251055526215481110412553057898687336435297440908650233118179978362330499951696884920931453954219661817898013768167946913661852471366655323904973359160885972485850027913570689487358953612216982034009527639858768669858467456111253579579135001940394035008678671492800119083741189221098063376829593091160627639938800438870160206438824818889328216633821272624819300698000443227347511225431000198397498750043245021344185236331677317888799793995190960059959487030143118166785119603921854673004326059085781494820991721937104060476730042833879824244724152860525294074417256421660339948159023274933377875906203398599518646884632674311167777461005716113773153619059792228251499556891883251965962103077042407081520399686008006304508673649651879088104091195672865175632699581926314397541189073227926404976865836296653793471530063773377100868692573953203769087459060305923237668676970200386290626064523530351994491955308831327299095921880130707302011705931267593515660781629912042332385887870086538238097482285206245883574146551571070804598306267307553448563380419940926961273572314127555154419264810233556261278864046849467324024708636855242515494382165296766900298038017460487767626443809853073725692494745215822734895485216386932829585719233444501118430657706237900808193797523040749576581526740565001978480443732122305529279506660255989539134944414944378782201772379870170688498854997425917902546187945376846468289780124194866391896316127649347859774653682705438897122081822220972144305886300124257114198972127270896416564546216403717435969879218219097817634634714493543738326469698327677008488074629524209479773690123141900866042900871947811135002403623983546530101442371323688672738344177702764071914321073810564266532107200677771029203810168249344630717787370688564769761170638803763352111037765784880951276132764588437035680433366652062490448700015910983106897401890562601125627686257137864859013159028817425269101572838923676559317789930506567658359083152915521040760481458792442478583487249541255684557625026672296589754892010428393764158649742838569152183660938118391404735209116893384559628106702694395819816766062798645251383758713091665210033502067880905256885067907528761155661705352580355050803537499037496429796412614757375661361893461638556159457462666861588630740985250904881676429709742264407987102607707800590374429079690105618609649545736431095509473980997446781487150707580340708854524401873042359910176161319239631198702971524928711550512462914309026136138514360374791474745512797284522219954986516968938395215542292681160321695065734293706651799257410576407468739611254926101767319855954517527329627708664392225034531785688680601806742337730843426220357797403448008004651025918529324099804347171264052571045138286050768928393217787738813168387106107083990550557315392340422796695324320748067548629457394674645889847441488301815837933953698270740617093844133267704639272417189684117810546614219603173530717459020932248974670185375053115145014530452677194099550013571390222198101863196364732326441085335039367598821741886203119403485348604691869242645412459916964479555266807129405565858561584890044896157604474631357928937329295425911844033913988068404945760619482199245742619478514154743448479188415867461012293029046293920502243218374294798568299994913068205860585158511302314544942129849110198834942629517283916423061860584448370562830672865697927382589420649045367946636736518091979405631442372878977983635114236054884930575424244504417875289134607798356179877617712273774405719234076574197539587407562430809352127907883876736223564208762547664315071145255704954303297578882146917932226849165389194565764810396972919010030176979630811107644687507104898680962945557977036387234108265316410502334895838893692628512313192535263061714551758624797072927079996032446809118199588048038670686405110916236389254604947707409771382666673744501224595313923674108564049214541852288875311560354204439914581094613758780773144054224206980852151999307943935080334373850064810301229439124857454227900545124345184634160226199476617396962776180796990282602055810735940315933116197264851615029141143759649650893283385189991901594224960479645051501380250476684180278838881050353790700268293778304195608455203459275760445259141493219498291992091683336707111121218053788558499194231134932557591276149333150330144167518196430241056710713327500208202509521376457589191044217745937306482183589950324540203366806198546526955332464911762154066977845263672261541182734024060967284399094217510489856972311570416891744678772974530123426672085700094750003653130378063596787546597053141280700625895860401536139408063021269323965003991616104049323136680923121906743047956012451220330049704935423020137447366443741800782496372026542484124439124597983105552673252240331062640532541444832105740039245480229881499906483541589743406252345715688678252864806471656284635310482207694054737357110299081418384592744339554178367482269051456803659036321566518599735907158953604846490780106473452058103657051595673825027981907014296690667890491403375628876029097554904557981831494422827220515333383791345504933092510612610719530456495099925600660595300219313201660708761534972264256739455021317643650504338965201270293291554410203769736750517376221651373709504088667044123055035660282480415157696406145682440466722867461113738549685803575452224710899662319073137598597086711788579109758447204903736569460096031149006063961973012771094034239063110658355719119304693883727314660592451543930569157775728164490557047008799118608796250980495290095175262819423110924752114438469525610763842897894114436897876101257002903724948253651094578682379971812207264790723374518663998457970850810679396682620323869546287653546333579543983931945961782756438206625952286793271552458218896093076954836705191864514608913161310022928918788368084300882918323064442892920936082224293825925633208812217212744560177448529999157794321924738721150809449142270151783417850433569486566567226213367403283659140537586885335163471049181974789982761421428507820553160669228974285064658086241814783099224302877526739558501587063521729418789191187760589797375135142020238253450323195907136393005957330372518018121584047091566899953161188047061483456705536592599925672460587088519442426522688713171807839129372699163721808392010670063781602697880245386941066321531203652072665739455721494360406675716922478845461673385774357655943211083864248264406377816628802795210555634712423194224849794560686908951707859083296970886983623225414449686967621085127925335064692061912731884347702568228188469102464209994652043522043680146050005367301737374189674081397915688097435625048586311322305554217841336106745106682740271609126284374256358974655953879746005188831982987498911627995739917368923878973292409135262025652804264677316439098402318393115260417233957602491496885723177985763983646874941613548624902725707385456489304126814599181313543844318933235418192614576669528533337892518214555767275320829000898837289661899194103962114084144736090157464374794973123450144072108411229204104841953665120666135614004783450441562695653413444018938157531829311589864191114996724124308722006728457580883312158376760506061773785618408000265422027012219833284079506449592949774966615735341583817773296469672075100511743370980471442949836565454565144305926733787733305601129028314533769531098753850389526993719471977502462923205307035847762384635602943835068489146256650568811975246425171352722335576602096782125666227042383189699294920845712498488863055775859469172768115232457516656610793202361459309564610912910111861714538366836035547432056621278225890167377917590241770582722174674946575204882073918591656115280813881065856981073848153717808417346955039109144408649197886135683422599226098133829528959759340516368959365463756695803242087850554869602340282848298601188034596326560662213964159270502013769120584938769994493351822207879025784864239560913755278006096101639625086417387892874985449087917240296396317662445282032114495749808320014039189624365276029279624468664921868224371670203111198768822476370761869973064401692026762119082625896308515490954249999134989631158265760374055594681396539263629484875010678900192284637149319783888844692519164121560601736149497353483221992594114823777372973435434596174559535551728939122761917975869908741481256274341345282579059525474183489430716232555752148833990443407858008610070568259169576937884925140697343379002864471100924868421667324264323499923654777107563253263896022052290644629279296436662854927774936751314906140043648932615716039998183046189044598864094876070590060116682316572459008059283661565668689327508649811362344948461003019774817949499006107419158078183546388259550815553941633647439773714304947173846439557044323289232141369537850575982666106126695063327417411460437220490026741400112211545236362186896940309717794350177710700109400938516925141063073638092153337950997593592056731396504368491329481833457783664673858731526858317948924210173927589930099303157630163754383996134437754098603728194848947620686190492886355015239784621023841569286715102116639195696138957852204140592953808377118158595267380191858765443325594743490500718265392909646134877648634640266590304091381476686214056378423099511364535745159127186045732715399493912744144834583087294816000258070097364406829074416559840393830847009360403279519051352130089528192125068486362521742391324706770308518715142581465099075348742982669187833940548470969903727184625603874956231973970163352297306392588846460414530297387239887063142256615742189595062552846059149085480497956137604953098536225739321265545012876719121394769812124790555320362004706386643652602944210342950318634560948554126117925210975679873777679009019377630156250144374155389432424551280236180375195925324985606437435306185977644703156888537170442129340348723540452140855541874987395899398513149161185352607551380143788818982021410825975098497754736115288442988104822510355976046778587380702161892787145458436762672745133587318356453288215240068042257750322659719380644534781791368440890576383763541457518928899660219798260562359857681856580525376773255046540253042191290451020786358704725086935042024935605882068697329971621880820617468656095072755050107873202860770350541051670160980237937228879421031357177608900660965635122379940288634822714421901666192231538790065220402536872453294169384912583850971176437634731011493410510266502782714572389471430184056829009390469113597128227595837445868441618724222593714982794660158521356587174681296624701531392009425798293218480795345488471610201612478415499932722129453489164163365696283223338071679874562184883512982628468735149343393348739881756257999075292964120646095501478891490974104335644577791209435209516985595421879780666478827562586778066985318245377896492316497740312980957590045809855408513486364433360957530475141283062602654256092986952133308043863515849284249141671652979854643289136824277848279783277749983204755723638178470526403149086103076205342686768139684230655286512172898822843093799728275019414247352827777545864624375560252934158582681452327612251921186653964595539427688081148267333189811610299102468570086844247887973143665715389432467937452092771031300055205730509129249444319916895421607342242943828961916242354313452217055663997638856082632155314467914912629768205403964598069607954317391045299100794862882980617190386688252276911776334214143276620793477112332870210478377708772534291945867642804079017991552609894517842573563553136219972708285369892316763083043480259824512153899759510248548231813462696235215760265565616743483219509540785390720318320480388557093056389802260711664907750745698530885017606067436373508516419615121665093692007462396535878253576239163702178597348042531635011834531224469749886349539333593657873570292879249916991595828854718651995859523618057507981797565172685823991235960477594577877652828281553019098092370197676003553426478211696924978371549290983524858608065613113419977590401385542646455543969333498775330953581337179198475284849895644801975220309546634197947953848721144125749451862285831466089824444263930925531154092080907047580987886365854616132114195114886876029670537343289414896454196712988974592874133692682903982586748280235225746716584677263532293427008017461216508350719286561486018274338273856775413074703837991233750974021475153940715251298955659353892851089656284652790302323441596213189020227953738951304646307930187871532451281693675870329935365801113724807195223781335084280411437803260241881466398139021984337129487361671327633094579408283999386720030697616346882458806308584521884622812207765600596803844215414852558880641998771628919034372798267741452812170132596550238328884471441924721457826564585525022206625777008978779232673452366294821613280527401964997876517998444491161748975770534358465721775673111551025412128698423395128518365824083948000865691393822156140466686538028635831281684210743783578735665958785634939520438738307121356426655569043984726757988318709872995682709262357964455701752462580906608564385262201123280246033406467747569048365811326742337753950908079263631557870557568183017873615124059796766820042495971642981513387351559496239704462695380703176653407618700419902912708548053259677562584540408948450938117101924615264389223796776230150712572459436311345428277012410206811243811459188521785443945501074171766843371735948591261719081049293043230933087923759698247431212997813381555494339321678915597393029241898219827551723502657975956792804481438008659661605381354783626032912556409282503845816318617465557901131959026931944211958567694791790246275391530800188251990008205338366759863572290936962231416131872115960013757311262892873800712571838606196387216425383810525025000477097933229287884465443552538785535666264869010000826657409503010464373879689426575720397854155398259304186729700050084328772122458682288064938332397449545921030123210891488863288829456812046994353964727578163890865888073405830692978786119140587903515322995842014339193455024294632904937332598581668173089814541269709623316020177736088476214563181935690781473232157802771840388414504617063079397247055207258215382764897898823153285960675707201671017183454318385041850028814286817627745437880448915222117644609677427690076228172799736400903099885988070915213461676010798508694388097884796397728281105268990165315445969166726782508461612177663940652041625562628071927157569713241999684434315872704327411562610430407167559876767723545413544573798934497890144288840199271190469349562423854761765643974519463584656448709992959861976944381043081666292765774176442500961006992233216346468249137633770560759259648321624340823119045976731274498352586797379628106157873368914695047099340391067923197331762265283652366147517908291734179110667377045051306760332087747999274932533553003028449674136001220410941403867889574338585480026140154093158189994946494489683317138579487920865194160360697629110876118733424978879048066306382168016829057601322252014333119355133859070014669566623468550010754266171240694888643576147273427298778243372564602853447267200886531396472773054840011697988023990600540788050129729623357086691810580691449185260934056779529615513445100429909892481378516189274711493887858800995796415248072228072639638187202268486255570340476038400933796444754233138690524227846089234338273262619213382625961468685076779650711539435405429649173184320891003339982583805039760639574302708435153402526868809180153822971890635944784970576140200192983237995451819588017557241071591109227297449235294475582464387418738829791762642184919131192359802677295013626369858546976200118066485791740008782771759275517008944751152369972171411509387315781414059868670796091927760591923904728914709279808499144739036089920031943406902894412044262802509297797597663588188847569879567707580821188733036070037942748266970590956452801395018993207062122892934975230696393943082688273398947121764464437888629249761916026595830738432147161554999982899843166516070941252010555424539689847175208632361050341069036762947019876144456460022877898187353144500095424075443431219954407024434943429903909587519950051503870263728397323852653205141823647541273342008101839207718570785242262199980475422645784816498529846176797750856679898819674561307489486930713168441486810920387639346629528648103038876851904463352611457282906198537836574453721743357555524908960283597579200110577114030011184786438928015395710135025633180435608668336120051949746310064960739250955128499546097115157922514250031926685438256335153449856575103397340164828840767801806910205437921941890298474232838974666725840109611869264535480926863708167448485824181802225685218263809729812698487088664145144850090815614647136473988869817328632381468993427275785108078950731055337577069292132649522569703910366319388266810915938277021300830534683876394550085521671045380941528520369636875751568895048631379826079292918674751495610373528331652067616834124539090639484025795429678945520720818936708584512862080135855736616063623960661548247526704101882299076170062582905269176733824041116869047738033847137624247931187616082260642891096809822099929317600760071528529994441987749472918572337861944131273975726817266619847198732894371956527322246040016784107695120532193067311635364545671654302539181790543851924414530669659784335209380870714696691117566493938257399568036135876968072883691512312626378900573356343924772830855324092747864101104972626617296161919292976089386434515892918270865896956626972980018879215874629687937573283604737653862236227516308247432556315342206328336497668621887101848773664110851354842979989943436326461227131375544592422049642294799455792499619041515478476494620291739287478385373130763563695711591970436386140876929467606432641140478772581594268527327117676834217876987940546510041127379175039889885538070789390444594251823132448913566632636800964874751901970920094247312303521440730723190027524721768427682335006570703144511227854880028609872555291524735250305664166945089634113662600794306380939052567817962516608836236519681365780858957841961024261577710116761312067344473333051442861528903928046547213298617836482695923463746909976640256158027537524997441139791333970158744212899194539694753345650042289338784622119690892430773057985493005026340494060850532409158768061381552714203881150071622593140622774988723044021856888726586714442328230574047871413696536084960995982267687336173680751610005439159195606951016836578806860116369645379814784474204713162154202481873075694859832044697067041033797313147446595466183879312436765682447950205919781632821010569257861410845477774905035602744350384654679167611916141358541593011377373242137964952743273474428700680422113236259457023216294372646814684108622610163010876717729864205468577895499141612649220477885287533017494297512937770706945825279762290783337564055327902001159456734626654784017136956849977049176244455539697800821444433251200838420850904301221067339019529729019861802412359496333565230015885018160960018370847223168849534793802741295489618559802796199982425345788338853712790783364342466992958351213539832094720094307165807495493834746284087268442246810305312756444989085857673754523145114908509058447272987358801520195580766867521507947922465982097689511559052963743608648905457171800150184222372743626275530256192044007649484889416497345251680916566189166530652837685066213661397919905727914284104546115887982144537189165194782453877695655193054773148778940085069626620884618041569081253134730172056601033322782652354061319437578712774660067667173633775197832738254538503220721913742389035891039538712589384858082738765372533173631920634308331405444896470930316208680344113774695411843852953514992932325073187263848374459690531773820577415954451094092263417487041236003705835592456196727303707659210360354013863669584593168126834072691440818577410098612969928146644639597195722653875218550239266874426131775014343576635358209563522488860613331905659175050271051428771025626178222531723701435321178052649955851816842022529744171990065598899588461705369528254233104695723055645111973202394422646270623525060211236226329660245864727028586055243513204219226784288034787724421440724893684550497518588573570769696374773501887214497980848189690466019679653113984663017098972972538226158652207030408062690969516216536542501404559897950975329046419019969173120148134726307448486463036274917047058110182599625584180695071138596719673963745529940026979450247874140705589518921052910449854452598696615313550014428234854850744841468190870777840629489076092863573383827932735475853677653278030323864600987544896674255444748779241421209779065719527349218647105550128318405836616886975781257217900228224153999220766932898019953534746982234942014149189145021937520298710602260188737057350355140658805034471173322468332707268909111426537552911769319345906300709939739386744391703633603155804340826578803005209121539477488399773689190995969830276296337436757436377898700719399343470829158075668327066221408563329184488322495968874978450005850136359161038994664437372648349351741655828424302995009339023663823322649480982332718186845735227839337513009857243010229190345836323210833579250898933840489808597242398204905790792327547811894106233039383661803889755761578941760895966243937217179689625319322008694579126262728477389121280357507113366762495386455564497192354531263111767577366732274968042557039178802573723361629666344998771227232886754516847716028222311275744882463966346698352388893934324862455197976607917383537105900651215851856448860967959386625227396178874126635298339683960537976054179988610204562627778400433409919165219405252879753863054468567933828369164888593202003965431206676846666527830873284386195066630008593168486914566471314261307431482265950373563710768441775887355846858066112879566740955026998099658885074996618513520916201348361943832651513340686374356668887390295299941835749746211351365278783421779466734859876384671878143199015616800992570355218381519507378037156441559351694709733056065352714495073072732948811976939081480545464109189001666370228735476364701820478985460898459971222318674457572409620763852854404446703655352791704496033157944576751705183532301954183796653643153277935303438229090867394825478454124370742555644750327232504033450193632306229709856866527441042759226620355602853439116221360054026334676792693144981133574276295326709345447613701765417097378004956490018402365226273269739700294876498239828055117546733634123394880487131258996307747425715993436362851899994704776582865268699736889845666949047563626335619034923894316854549866142001309582537428973857390248897533665074445575323237640175683095184080682358983937001466509345894842258163570685576691790200139847534510396431976085348892143788838597293254308153307852142497780859266807302416657807562865539926840873018526389284578132810217517824425780783782825211570021175766674682590778762859879219801250648776253494248066731221338665569496440687029157530094798409123864026905513649078677584544121792258300629027922836119009344680556969359467056522381553543626338603172732654112983811953174405370168000262103456296290598716928934704613069225510758642844640107375469395465198546608139940246479419341580577391707437949846153754054654838328564368493336148203086753029096487847987768968258087743579667679899863060884624548688692483671254343133471983276600885891375874494541941479771611718308508451566533432365076486135100275540544052362636177966605724100298159749623054589735793980746865847491763340050620639084322458869052541550429619991519359223468222532344258049659078470069276938658616801201046411314299359026858186098856307573070000297338993385145624012683211099444405346084130346521161740959476226967898038357125631447854016462197354762548876872963127971678555235234859122818497995982884265342297225620863066848891334650587696567319826108514596254333956443951806163694093962523837219636754326724923839579990470688924964764149597005074738026725558992652204342560100505427533338387075256420189611310673897489495389245311474260971074017710498793847668747039791244253197461387307801531517459966561597116442573251431468089876377891496102413105122447188056284761130215957817835316449658159623986150689789283064949652088055027488189317853443070341000774219727799768265803698318527623710896253453436846225502042482931403718978720703177554674170440715202473466123778093097088977823429311004837395923600239348530507766793245280753601528875744762525135436807292840700138133350639508981284352650503885957050291928405143960144954621090191826631914454756811909053578095652627248597148135300406820595560456518035620492160726534625983438696995946588054480307571835937674362344859573351460263841506547068314504354658684530499799609134721829849708577342895563909146886557706057902679812699968569230761915361260666383291343300775111833961618480495022170870215234525199314214653000084182230771496854151406237826809637043690289888787197599145618413111863662027765286785540453996117158159792254529304431273756252095185950640636128304911376374849645375339880467847236605507719909069606128301294572077086962473705405732197039454633630453260562107724006029363740248192882741077446887624611388885934058836758586418626469877305639654704811269810779724115398498702454664862801616997458355549976181089332365188910288512143897728776474837776560952936916869131025036502447035593189360285675330691198513113783372455178201632123506217138338557312157048874605453120590299033884416830624798940171801469372599040919812919990563332811968616756965025169172820681682113638598564838422526433538265648807685980506083193831971219001849402496618229596020021616974073669560580883954759554073090383834795616253093133824708125895228453217930887466138970955113033029224291715847737305554216688452223309174041964418104969377307553589452218806834234800501659790207972932241122871630537426909436300540899361040583151209997425883346133198465938024479145740915688858107540748530172718146325432082805221750373814082784609473200491410349009656827770001952696215224689339353775781128653009163250185075065160950573001476463153338638495098928003589623617517837905997605124636777600043215627755307119761329088046326239466612607181605375435315650231373216635256986393122724490349601544362593891398410671245221971210366701653753398209432740141871468927942435118200028583015239643150503150409220560512074355130834449750492599717205094236456072831306227240821868272688746883195786232581616224096759519565074508222099121858049489995192813986456247403764432019017593149793403269133336848843467387649802415374505192382997753337419786059640442447467054341800690372619269212130888388558084688761943669134175995881623962431606337979849181976755033309642532361397752285077410438525195556493236623189802622804354652284771724428985645561621714676083624975144446506035124121159139340294083130204533560885281589405367295066082705669834885777496828707501957416234242187460806161944726244537633939780631859946851774528959690973173908962044684632924227254093414050633230324890541888757391333606662224197916226235864372201856215219621353539697739773800588917027335902543861251135808498809841450358836809549869075393987521985709761229757791516467384065038468710747940154104598020165751158450554290212593085259498398400112587203158720754136828020132878420815345418859044128093957872425606920278886912645912515091705495255936460934185381302305258701777644784151980222699446477261481832581250021983354324910880826105012634250629100812303007191633952087788355145344935640790640542027908170793619748818942838779011674791066431774336415567221485442905290112531084748677825149544744856886056704866733136150936562224926765718364043633802278681823259622208159042244703112883421558066189692359902421386421965808222293253311565979777076399153120001187318028012947368899107686199768091153577998849254754633004600820368679189094118820227037420236158302534277618162251289378155959904035816660569079849612917335191504845538476105965165491890709180989517333741192280007083863883349840430014860993059169455533107176413516490554461896944165906034264969049101145409043470544220189947389444964419467456772873189373518608485526289750822212687096999945396388706730373166053884161343581928135833193506758318654794356216888587176693168442381739677026756757378379791188679133299249884819734521416434094141291454057424085794347728691172064031324104239834141874560927690567259264798706857176858656992735521568620897064420392824875088326944188975807370200246886456670250783220065910882051782578326996668703007850100536748979045330788862459201437979164615738150624288589906940311092781293010551472015016928444431134431073458251149327641200648284011622254455782942416551372964537511994767922201294162525365393636153335380866462270951781670458211855019162596370819967213599998417130594755066822045234725024396618539038352622039045294446741849771019317697739000455790031717007029539634194982225360879114345656345442497133694070967361975115984227357450277063536154828218339918569984493781170424855648289553494671168723601139115862832344462240462490389003165221373640587601420693644911605810408274480146544544136464869505131113161600840844521935637964375121404206230961426366214277670807702785614327147731650440460796496077979044993660515842055309012031445522269168468224978499084251993753366663009828032190640525968787211392376534248018192552191400416370124033879253888874000801513327884368371373468319036236494322677237639935795649395211638953352670538210160529877238830704505168932691664517823265268767423548940295573768417492121861431403830619650684463686896085187515196609992609158611110785719565586565063276038248345866055182588578161088892772430196130328702948829443457775221279383863995638233532068276065328560485423272940905166123423070511452382151204923824771969132855047270482844500641036157103377842727952383887277742785498842202005419414711575009413799874404550041276159568820663778041425831642726410296047674143457027503624772131333820597608795460152701404595854877811752234461727646009839128225268901333185444567650188659476011935751761134738616735995557705483062771179572188017365333646124352527448735359087938328690788225982696157246267409204204558623387904407149488312646277795292416093396205205131600282955188006588003518831545160159677951468543201979095466906079202347403803396343044146423559641793297015760984510273989507697426383754772122104806917765029959414664832560539104405659025999104416858179953694039587019638350810756504397112073669823928167907760526737809477261767816723188773088826739658384628491779186934379557320263330059647855682922033833249780858711578207082017014363426350091169702315789920291011727403662977950377786150520610588571961793709118928096346264588640896185016960884975708231057975431643980876107423458442868539910223761966643014162226205661136840684585153982474644795193043722133889482889353684017160834283044540705176442573784380234918437486090444161158412521232232279605057914186446460374575310153353855816837722760133821635644770611888798196498051975505367113658322097561047208643256862013151748835962117288906517675949677151864727166273618524774388041410015590701800346071468727189340851797418186115473610818088673069496108005971525884062483546137583266375441474630543136941782608992267511872035944303393302270398940684629280188875942016156651825449068412930473283811260179933470000701932186926604087996645639949047226619517928984054768863637058382341005950667429627486207463310486950540938296006747663149143862310826080144338168570317358263585163091707035040847576618511459861717001220930120247804919525947338684519385018207480590858389784331346260484760822535294699454209126878994317470579482375567716928458383653693070817292685367513555137016640277441596410183549155121648465700623599628165981520015655056549379711602289439717008450034470578477336465474885585314482775736787007094086756241549975816379824170682202083195366188671890074220073133373404958247242424370127060614256985160881045692151142291993219602084503657857742144400634240666713515289564327169612576073867423923292202545217020593679223599835099431475784735845839718458603858234016713423956734113939853581139396963597318869433324134509204277770814153353846823451384932865273530296153979866233851793278561582260925238240005946330113172329481301320627204673255436769562463728591211853017983733209867092086896551618167805985186452362847145012779680495498682874670192327741551806764518425626966760899716366027947473376250123608794568154864658818981966037028885924610657145871852033765685221757896985196778148649818546500029405686853422105587303915147947446092476759808510299668335162660663414705849636149511383909945082452654271422631125960322361650862174792694552922732758613905178251383705400492563820094122780600276063955234469677868907935269987977988799405379639013872341723780916447336295185783758645651802985701282605483533301708612570897258285225911592475864383532307025560756446767714961132941227294190091251017006785857666350223261912666336852750672317369793814536567386697639270431757519557522141411150416657125011450278869201671254815967187462766417124215702269216964745960620183507592813490760162355893155336463488395582376086813774301861529793655065856109954216675388818719053382153529955579521684489810026190786922416207185837314454345963285392433460211771488657033178677882257423827585260402634294786928847353688219326842612534393053317450026231739121984935656250629331602937872693397379076902559224521007054817264063328712462969847066888016922068662061114553175531704625732682934151746129600160052589951520619127285478662469413633872230559051813504369336208884088851769728590106311744884577892248789189563637314972596462614811751708447432014330865271251801579005970822065151798357334351320740645748996498285463985253832337080498638986819735581081908342973056678350380054208397907155769251562339109785494470747274459312459525673446040954355992848311733271833939591181082547292764314838611134053059738907609552433652128640434001856633044665561945745405784601519162927238539414227226949520188285191546171997325165753998803301130081652455160757289619943151292523005397852209732023274113687910338935619062983439572305098647747507240778656313074076981261864071087081471447194022251780545895761399025404704106242490407830255526835436773020648470452885462815657030970869817742670788637615553244928634147967876130120738590991190960298523722639562001098473777616636241695308821123703978801235613536809846312180613907367675378137270056844197103767654708214906175325926933494344058101911026578885785466456182290669033284499015369147212648743531843033601004667175330760948069491001569323249698027557163404448749180576501722996421757103892919183537074755870968224308121171987432524794277545751598593309690856839323019941015975440772027256600171431003925922101950619291734852324234418425131611767902914849555627566622769267549193516276840907776946146643883346299346227859030104308470347544765871596611858940228710961254011125965602515820674508096068582242752020301308374134960141251901929761341655658755736094849354552178984341274576543144810046504702372333018046641013533751402374683998610232434589872784262327603008208947516877891367101884029704932415225897965100235177343086938568940428638425699788375165686788293566650963496362949741026678431803520627237183823118887358135314745513559197385911873402159776230642947613274864350039709431091991556640907629353097195515513805694893656881820001894585047762354536718586121116762899568467903613576709462007527022097559014000811463445463498909385097308902208547104199323189877662897436171044404149820446885394207730033589830484534751660955670866227643841837673672863730178358752402117733364745073828522541610261201781883923951644498441613396821324885822115372944170423595843305462839324847323932556314855534378965634010425577358990410651131014700955461108732800779305144187101971758417539549346636962259350779504647480465357260076152291059763224135321694813830061060855384528307139839322471672909592790941385278866252079576510503562127856675667949910087201890609151375300230076031365787456044351064791438280171383930776744345384552214650435833544972925423102935449657948059647890675335009584362201023368876770359278926570153432860521268854786728376219056870883530976125791332767331631105072074362728182923032783341673989840170892157225779887967973365144677171840837603669339858344672054857520449674282300958663541426105093345018023385561919167240901558662447497583287418013426308134032402136101217717763148233076813672590121316427523295158938592014499118224796968799310421541541569909664460100199457633753919397898509762223902332115483209543348770079504487463883487794894890887280242560788001439918248018297515099980348260179880459705712466318981039518260722619498106783915787338909422767944970625482674157154927444946330423675420132202450636499705925996549591238380281193189310893018324913217848025395250172592036039397306817144850116889987586932765713552078462125952274774844891917714798009115336940545991376888988648105260024963779165996424909065610546583075214004027493261361049913190631434737016058411674107172464469578625392244407331595326806623960788907949696687935563834415715874557540679219029313194265547234729180112778207209360463300282066653475037812266371314926758380180456108349423897256136247874875888024646704765480255082146929654648472067893104061339043249712086390903282497827491650268221980558785650322620777152621431426018711744664203322342002824041138961429286976399242085993860905583011398325863660030537133071607602102332875064008336780799423916198756000903640542340619457258449697389667119798685828268554007758373402265555223550782487345076831867647889699536227594510956479950550767787620499743931120681832652470825766924389332324814476362802008416493779000948022682859317726325191533966221598053444671193616667170289910980419185694250272263185565738283725269904125414181274476640199616246791438080104790262701803732237780386432148785416405159716328013392231532361119275000506686191441348579718700095296329446838775650018372085862802527900211113985550188549289251821422075096157164356334929904895387892532485578068189741462903576904604226064335184320436602623337643686316957229669859422820142887848518005063071193975382212503796878525419762939022729571590739820181399660006183682412895541849967432658776252533627917134925286708233163122014921746838381492807948053687603604663117763839786312552218707672958723422102302651063430006288268066118667828441543490200286560605799166058312449517930273365389128958660521535138729907571152281404441340358019388174418455463383537690315357715697843152177914471440146340937575667644433878748882212426882557315319467868902813347160914453956399937333098521409051035221772745614736166803813809437187157431988959643852706927529987230221242163537253885356792961454643769475695374033153010314735711474779185303310186553794137960108760534597523173339016354539822984457287464327746440021673564208491314716865800086530638631385454028355297684156553404942686154840445136453140284851463368928744507558405612786550380538264937917032936634635011008106357439388896896163719273452804043062805298471373983503152830887766548101186457728913264990421956118575551519491039631987055390609400092306678278649890356077941223624613794185613388014387210271415434699216298345641000611818500035653231195535059726394294735597408166219143546790476851275279228526911124401602945282053393676612632984662688060053416392118815473777566051099793861834318986295515508963047696074885632917636895060493639905934633925032005658140804795357865530119568497987116687547233559211773245125968548432558927208862448812761700799314384249643764704109929548064889039534499252572422741476788327696554427032780522756574714382338636489475052646128421920502573034497835948756994270367931121996187557739762256056655550428195934233490978046444489330556946696065874393141383974342170471199844839216659634215289964785612186184189135540403576084979240749719952510631737026146880929525536001565998591642258937594148406143883243707517887222957688122459156708149042950445324006722482233863840803428816347989666228912989109790797773688338691940509303532331413614622889515596106902358340552273323106567137789522391310599177056495064659713337392971428529512841860234747290906882453982670147348397138057942969460237251201129500053300356101333068493147659429292714560193456972533355512254670162300369919905569503114028856448666539419890484082651995476127559232525224557536380357345567084719871728880083787098971014164563059046669181655813469598508677025972431325374577661279057932359440418170401371589856410796833796684268850078655289519111977455334154096630650747529382937067794900066868502892997457842189163637528618557505946609574689737680208964790947462230282187218653619989573632764500097350508780630804753515368241759248153025283556473912035231453146909885121663880864477028312378665681284188597305627705651468703725375662992806501906814855846584153530789801948417659586220456935886164866262147463576251592889248328061731501857283304050034977106953663590876395469743680052105535026806605341571881773537187186578478591792025183597155071521517509881986020295589532443141260417972209537903880442134234711539876103678495764378341358454492688999651011317431045747532575208920177559477278908145359020186420507423139990076590434758086682120723692697197442339009969184135255492832934146358533995062347945872202823274863060437042461280422050543704918182846483176952058135424097242857171975393652023456736018434195274182021951528434539171030261278432096652253998836426983126909365135477816727939102171442018854915702928554551989142626149419183317282322219764999082165413645124582957627993731788731454652194727179380943270929127071960970865322646582407527948709862698388184294523416748856888540931400959106432157230754751645651587825305334396065707871650323939949710991500268110564718732897009186167709952809573739954734582070018094261651999925807710802855217727359910448115904950620698215627732491313534160454009665118250979543116767251497446698973591160383668843166191009318218882588271584883446307425860895314079906033299432585341642243971592339133542755651124988444505462581080405669053607709423263795671801591425574314922305665112790422355633458293136610760423728787185179002404257721190940738266090639213762702421668922242739399358863186984156841214475750508162070879079919563432855214375440508764976162487496672624889085283384139260845736225565110600725915225361198047006770405347219700185990833950454765563414913135482719327657070420700748340907620193211254271536167800701583337285271185004642906042769106374715379909755962585272738548457492408651664908074660205081546908712026954967057434227325900088024065587088600137937355573884005796965979265583265330868073269150894922122864198006094969098293316564931132448569942012402708632251668483725339214546956231803029039196220146016039974888115140412075912425420314075754262519246052614629826387406949445705122411172457140540922682105242804924516374005144367796251668512417881699259175029469481007825714691253426516966560474911843663837539107387469940312066321749755698241281910254517526164207694988148067689350056746943063755825128404449023165210252545604795342139737161113790228553149711772587816846182051084050218066859953923635819162984109985435682508754069812753850325057966005613916633133637068003664845423907395964823802111155654156862099511545674628868044334935123988145043384939462172951702646360954758312678817320876282141697053455671083207879426288640656159561084864767309842080193191918243711972514145254860879760468398144378155581689808559815066506389926794947654574018065409353127516002718000746885112763547194316980691973920598154573042740662672769906312872464937404991779719093984143203495655054679175082987595901461854849275631396596292101002185676678620609884648807788741440946087460642425013253807482002726030631017906489150455323349260805122692147655638669606705726176943053430098758806128605502060620249185070189227050362823859177192375004801600082372384956261944602706459926762147457681794972441436274721263122645422285673409612096403028130720415262227349932447008083372749329075900004081844659670819389004890371508705218421386472513606809604530847319022650788002398546588470134803814666116980993244970796086199108786804965143637488371195365385433553404779169676464401460838817436116557016461174708628357418365899455496441057326759923666034682258389134235065517090487052733379143160041634999738779022995867381230521208464348060441541900972203061314824814624840931094420695935088324063275966961508311083576323800066766611991038095726575887471693995303550694412012110279098407764565844531265569305728379790944197149322104592914640056023459871935605760355571321780416943899525541768221047350365119559844019306519148839847645603223764394638369686775476081374658946779329916412691733634010867143748357655303929847547047670259913460523485973678364592506880418521356319948461204814982505750294361460413844776700264782650101981824251810166739526372394055099288508522646559833726883616873073460080860646997785990924459836122342432418694458773156015028034261278634843424346058329873037438378281415455897681653661086529630854228357440653195388779428252874716319916938430079885740131505252275733207527096996486195718879401918665621130909354504449837399717199896448324714332169509858835469009535116736335189630883927375286762745019596641082481130973462263457383364161613464452209487291419643189466489978333286225378742368770757873194757006192018511251578106968641110147907881749931796608625695734406828171327373144656698979113378839116104750624387599034507912492407374611290649016084587762680107866840271618934482956115813514065370243120573017420461660383393277393103714100310288727605284610859622001120938893098182624742229779399038927101746027745656276632681676694426231293747855574997116504797892773027198331151221813764778754041853405968270536359261791671823058402558879391874783416876292662915941068515382319729578467875162683381300196111495654445036735946628787279973963880197743247952551922742070056130611725715533905889957114136961250920594996652445341534344441463743478756770732627805831644527528683142677628420024124374282954254035887868867200379424301554052436255143491333598571948891555341898162079535492309374455283114916424926359517599107026799500534044032671904082020071112259785016199214019172938044275259907092380314407342543656774171097369156637055558577005304198372718932806398342836942219992446679453090522201200142323713234229900644494698010816266124020146609243289358016067891464444678269016622304765283530921178999149076146933416193083084617822164727933697576962141921657254898700581204769049553323523665960343102681604283472076991655568296039063438351044788875238240489706735772787712198835134181733565180661331064511508542572087635353550579583911756752301436773959038750784944292470375650931986319808485669375730741622394608664031942703657979823955091417623147392409463137464791298725900467373717143495461525464360252325655601154917391155923283168963361549760817682883159810489796291580317119588185797119958779063042334214761542881544645119167160051856163908933351267200268565277671575893806801697669749029484644270535151319215417551227715612130305734183435479609508326437856256376525219134563008340375519877070475237909018529917991377852856014332803615927148409158337733703297521372887586544728092264432072818295443776404610569763309695375778226763616286717518963526446002005138744921423809642556515081884210465936857265539687840886379404480995663128479798344247603626394971317038334201557974204593087380351281925892458479918405560528366549623806377038011364817899142448879887567633350701978498002793132540202815223316723318957910586358869372189450466942470736139222328352834923874880347596362311572678636773305096747865297746951475423875292029143416757084351162026461954861870225928535414091089438202287019401792403727247608964439261332713195433844255485679739039863074979365255324820149099788694551509797027340581670918627425413145695317276776800817668460293970651662597046859873677350282673534926810195465436266013563173760994989911383039180186714631775218045922633223517569216345535194623746682196012911184805234937064808868535546039432544809395973061272107353345670728665717972877948343446253768396091809779790721769136033855819509342941672939360811656906232344711707700314194398723915179959043780460097530504865035394965230380507471701461545457857773097698343012548038844924025264261211831839320613972422801410915085812917118155118369858399199525913085460564416013808694634918504248559296153776584518705289229553695411462253232821629432479854165384277107134942820881990819245535731583768747389484634048261438520704269588383184272463812227653709532744130060579723393352822869726290224284325016698961521217824461146464783330092672003222513141403721422791612832415662390104813524150839538371004373129273719390063102487029127271946192011551361261447716976958759967028257477452358513747188611462518030919770045326939100049254850701645137028809853534760281970302211825177123523037012461052264065559816838953795748337505995230768921709995708220130135083501734111256259863760015367822945315532324997694888156486188866173954470881601303612062100492893612277627793674029337701296493993012955926391896126823008261051816250138968483428367589857326402406191404795930597626914982166761302846558793032017330219672281402721774732072025603081422511530756414106519946119096233673920495063385380402585896432297546490760227731254324054745893322259915810915793654790172013295887730595201030062650050015826386418853294229734004075527732978972662707189138652947045413511051841552251884725894747516292959401373348708675543162900113957431045075543548803310348001654683778728970583776383883741316720868292341397109310934363897790537211437491802661880571118954282898891600058212025932949834810306660378532190195301662694305894338802556325118845182871692043653008170950384898037406744743938161476907265982349072903125388085961067172196775393061305999211949117151003005820006555259584414002413116853305660080682038235418606407153243097393890528735236627712982383181830183376130614715656190299187995089598497132146770603061052345583505830207757423088563747907535667237466645089941720370294512368834544038930560337867569448424813237458873727260050811943100814114204963933248026561175443203778080625649833326607201799412358477192633066293396274569448565664349200189407167396425972875818053631071267820851160880292852917694764333239647897531089158617404333417234007001389159669243380749501141033268223741932477769588302343930162776113654767856765828112364576639441387880085370630581618313966744970725354915775754498008010312649359162802538888299665109674667994600106937035510441311344391624311438623761262788121605074290974344827992189141501304108802885561619675644348144538380058824858586476571973913078220170554645966875433789685234906530222069266718615334081586963532371389269417859844327519339621918692158113338353841710267272767130450253162939905568072263068442342293282811713061689175448525377392492879358449680399349253644704126960728225894087862168143410539386924630941274967244164723555210902400050385864570399469693374720452139361331193558651771550904456463323202763448376513408655970581025729257497527283360274994365001233845690718789053551339594828471338666016317446200019933026114357912118523163273567149982826389962644989914421767490457993288167475188259744507373362904875632428516480155919009971033731981404638999527822945574203684770066022271877864950312293421858411023141734151436339070549607791247526930884682395508401038082149535784106263256323012428909592517537657350685995518785870168456053217943421895377482244853251531195680724403434833510059114880629029135565037000197341307151400395288978601434880278985465969514728675750802229950078350077263389720578943073269391454726250839947375508704283952238000701340416893564450062922621382088684088850396624912873320373184135380835276617627871793873012596191425920163599394591573104966622259864959927763145407099381773323151362662131801343455559775399694017485323392979808024214657650648237735816500689373046940199158179779864124905562007494344898301871916576910132318506523422874681468626707081813618935867757758611870583679986697757400688521227178665303137320228943306186781729348348329752002458803203021513224952459179826742751118031608155001318431999999881063360198889907967551835796664993197026168175703694097495298876976764304787990183867421158375581253784365657394261609472967358415233601549865714997066830320274080174018370661829952425330957374717620546414156975976895857494605952721064402992722132680596546644254991471318900127369434640995770637550415098539670475602149021443681149254430682959593555501114215676217866626121850305723062157848171444275698646213665298392189912119465839169309006891756300242349624030966118150798619547836552818630542785735384263541350035352039026018021617045544895837663010766656014565144785377003753199761675876377331898123631615053346197663254779051229847128296512029667804244808540094497152398132153012759885166935967482295916931436692410205739309675851753244504970284927238578917978374154130281699903732679033762526105944228647606552570900716834436458254913073277425851566780400878472748334845150592867827142132260371409212928554339795006608787541595106271711761330236264195217128054358147764244336131167329969851199023462072112221191701055790372203158061887414041097049515625317839564835055081328806134471233014821364823352799925611370722996570881352875377679840540214498025795901568260712362618726814313903907452312013173272678908777022591712087084287653593747219180845911741357683209864789219227023340913720331330561815764222626236380463658414852351737385854945662717659092729532149736350258221249083493242855129736754251220314391032532615495410859832768636345089015515065985799277174250373178561957424309097275353398717832441842546364124464950420926864789722510007843841532818347019920775928475523457664839336961727903103629545067799447024175313553357599083885810596351650595951800004847846577327099596370815323540687350671206181075281932165180252810720101586536732010370553692676476758451641286201601827249728377351728927927740006533712707074564889754423710935712697678858288674269311692892095229988966107216201958161120384544541354888025097868285296708824754049530096790313456741655812823273870791723441204527701192882734108343108763381033984431306283660200109943647186308703605302327658240505218821718073561654467089012212429673368107380536552031858598270500040255146453297326456156916023152544218437546800045713301703890390696713461176814923921848259451548060425863529118782471806633141095467438001292655685331712661051764940311505605487068302638998507385665538008583517479960060697576895755237914299327039657210207994555538996005992652746613364203603771953971891520952984243276231525271682507852167037056768838561861525641197127312146144371088785029475806125530522641803599968149573296601202653989414590594751108380713428311596160821297715006849713997445642363344428890739233663432902967586772180369043664680245553343405835004286895930080733340839756625026045367127624080678782939748093100245899964291864570914133071721943373764470922247686074653616783408352172455638253175852192809894490793772755756580438496094935983921768469849233574571618850926961679278780518512985546332673034500979104257755938274982846488006736344841049636024316850337276988336764407756075648446224167932781329631161385298628579561975551229834849268902954182990506581651929280636932521597583380613955008444433648384203642453900730758267595662797397345594625611845990791129610463660731239442552044645500980093898663371160564186094179767775938839418570017846186306087894685260793665272766372997609826231033331165926333140746658562388875554384176115415527296611073806878489069406038757048709873230548797162192764809190781885221343889548374699347718472614834505121387196768457224327240781134507090349717447345729795034377066083884610486790994122622696352065910447052679501874592654516322644943026209462190343125725887662992660780730552205985313367643200008150290802801000076762516893519987723117817474304187123416905887106150601725575293454296413997153251927785752214178439706598150503328485228656162127322478115415276081773135112689258926709875264893273496309943250788328135648440744156494279404762376402078572951758621928510494267033623281893268017994632606601043830344205091194741999141724531603611206682606221100123452757272431480010860281318614818869509268137586788797325699893188148403500454045981822728246526465211315734910794104054474823691797634516987429721915988811496780441261828242163665092652658695745878556050257388180910396995019202302301282659214366915254726578317345589500648534977599511102867270982765708783032080118202302219650890797900907596981090631511667984816865118317073441709350919104342444035577466719908509078087482908774804643922305018278502096100523765005882901162864853848984402775006452872613410736929776235968942509549718307528018700974358168617054393275100447483781874176330380088165359785648206146593116193753178111224331181840913748610662398567862199441625752213135253362472501175901780790494787771615826901836094677766733059662700055674295527900889450153667153234377680978039065150840397003575696654708340343805157005523297103508641325359585605090259092581119725778704179247418265399686329283437259018094543396674594883677429349568969817111292967307029949374094436159170430570873339129523851692173185540323893457605982560247315120234559673504128865143827278276288581305550232132557363864207519680478712460884446752120082915999835598836373043551349605624327145323053342769192641474322042169216117136004021607426205231649610813205045432801227934725551042100787942447928772465533719902052053131030275217986283868080862557861071225917263473222611396003640269868024162058820436692052340671840225254758216025407166277514947963499123190361063873158133687428912217057266280264674782704948784076283374485234742556705440573720482141633458719010399940917283644035149263828848469943518441356415129273439438487465890777371287152632857822324420976127444232018259843665154368758945641478220534278408847016364888985700477734922387590396855122390067101082095178951640872744905987355173845475209661603033539630789629144773950583773475630095648093267689363258588331063051546858451431790219333479138919702131023442310039616566451216400184108936252612165004755939993194083345790081957483080732688012177995210345508035140890529781105687219960774439319931214663954643684770152448057442445903525585533128188963794569237022945776894179293851073584184086611918304985656738501377293509392283781308395589239979906629717862092379862327723263543644488329738886322810588331961994964867173961592375799274697121369826132511725196813576470405050803915421165652774004591341848208110661606583375637417031761390566026301692949602485977331976544903560804682391063342331849983178256682265495034588526919586280293290311556202267225568428366518146981977286143694917327464591275264645704403894881757826637886864098012947830605504208641539565506478753993614008955783612438355821830468157726924718132163987763665854704530358739568672313812113054532126154859097667304152155963124340408049328012288350687539603460543555696378032067449073182763170203736663890721693662720638523391814697523816230409819561294166716996693807591792806975233342138835083940862665138592367426620881889596563408643566782580091712304896234848535449661590355292735104047899257027577619409042991289550081224507260705358114053791310824745607728477320917890813137222894385408981318319530912390945228275544484112260320516662482889960411587758599883839901871733785207184266290440276535018491209040552506948097551893518763406078146694445901733521991600050134357136240315978311078447966836232771133658361971388730394530363985700949602356600310939881949129949346821625599628423326923950586619750809645647568943752261110414574080955570839158912521663145992763510269283278672797591168357263740042532956640243767829316667630792678633052319075895286034994951389631341879512467093082814152995937403790210939887089235970717821689300317895015931734464718877625156964382871330250346749363618026808065755061250833398470079043657843650765987610844285909213325211663076251313761730457298367368519099153149110799264316922408532927581641641232499794757722286370736083151882248434039039894715944272684979418229186540210175456220517431588986348808002769857826512293000865145201936621787347771873942420522667495840107830185905992124108953443421343902600521625509241549565263293552022886479582378566291887250222262806511452669597737978207796664361040908453470600064285823023425939236020321617102865449305625006817140379685902329581231120111846289755368775855359012460169246623267263637371762286869497739892600139754072966063311037136395114535666508333559985021021265358597021128426705026840820655921268211588470342017985071139810364694525487620063945438168493991732820551268418348363884295313802224784728133214496247563662949280030885192153504400419017695639690553818935908088344635109393657208260704716964123856792483704709398400501663364211191088182617290900993965050975126549263202033666693082381410652677030877587103662345003480228787155251163231265048274026082444261166895976873137884096560764049770124114055466404160566298928591621862530024842900725421977398758991855621213102168944548221805819629386720740487246569882597719532682867885393153230989950499232311652927820767848379813073501985180533252241210807081140639122199993160936917488550126765165315237051216487724547907503580466091417295291888053262752927693611654530515983647679989077506123600015834730557211346195860817321278446522450472996481249658575357682350807931980937837306364109564796461825630629849749547962175894238310732364058015896236911806870840297948358233277216389042255789650150082669047936826091508747308327561276004210123550684995496968101425168650822241195711127653707987040749821818495021406229768488374216718732154747523916417214878112807119061792275869669251488861291707597033562223619730778408948494083838572239861052210870080986508353439364075307321820432863316189005112497921531556001768770095920273073511957814457982576943063217971284701616856494632719472034052232784396751881090770839569102794141083327800788836666040108676185425468905229422247766924206219460804131074842952334347323190330155728809562980160424285000027198335150286312053736996980896011679922013503224011121206414279709911979741165564470029853815414919285223944878359504865285464612416985295744582130562489352728653770780831646268690410559648894713141244732586005754365127819790697132091800943277737974721509904768694912207016924093855830746682970626540812462455473722476053612080292695787259474944583609161282688044793591580395239464501688075692313428030858107130928673605501465348793717290536780461447079306676103901990443059520697064982251063427559155068849982241336917980215787623742081437802986572307438248229428922883662319543222038416338774901017586063449269727349052849028012987911826278357237087391632284469018980395069879672298461508202859374577775830871931067053826935272399416044499667831841979896723736366889108363587919923519620803276948671804944680065013189513769265913143114061051813881287038237363105944105245077755655017021733675142932942729545202410829651216625286356214373494802894864465099107078406100681518278199276226949142940607211533607223358790831088624159580368102839694451537423786999825870661807376283791322367285529946131661031415359571206727199696332211708257769139733113493866724900992642317256301157325291206440929773068678463824125164760243111450672874778569302877762872929316777272613406550438577058860975345233129590790192539166337265970553510334989957275095157505283647258056448440567593504753267637067842145036602522746233725741936867834327892773740292326139983933849390554241741410116165688993023726938115569388954355692683329700370310555361626587261529399907255544092322380271257584736354507452164603241779051523847463511702684472578589435673016302317506412691258495981749913350921513215745747597295527104298803869725101017056437245164660825112539396693730013933414935014955480249074369004707226271955698345994617415567998395112603424895674484101614394277052472046515735731041989491234829577351380904995805058990175430820894585237509041242193377491249768110154437678191565705787907957114311565583698189507903959274817879344153987754805931537435193803406774770809708552591035505116614420734302319881073945527325517739971154496693223532624189077786793585008546620991757829458462048896359877784257997703527968556942208933578797609163968858072521593853360276639154712300937987066760682612090872978676190277592827420872535075761237885280848020741712698070730033094256190093898461441344528587872558114473857991525190398261933305653811580898578924434978363649679599486960993237794874181217232661174686706386622686221190376245503627993188272896745610692110183309733685967370176960260997183674354033731322074202148219847056381846868571871928956493234630398527766608107784509586190684060110560648523657719104145565543423095292017971575719910343411165076003837424939967024442917050279736261573725410216084982218691677526665065431215252825642488317046101421298777674891013768478359531274199861887721225910701129685394911767743184905087315650372541154499922715215764952836293727685658649399015728314056114031013140804859652837037039216931460677891696548171968331270170290786097274872256177635801720866490196047331935789772439588740385048769547137563932054233209917850739196553161626918151993060194490661140384528047263913336989554873024686282663188513585565976019381748532842554000068990319236559939773772237034987395813102401275533012715713559750728869987122559702020553266024842467941839122140698464757059673643522872843908533600338703851136833532637117640235045022694436436046397716755384140859836911398265359307943705449263165160984372120619045853382087421032801043258045606671899249969830426185475374620700038187527898017644223932685396988884229728849278950918310649514665948547990636968748903778505302021801189069288366165064674121659794087265422306776958961641819601231157650099692687631135637622727612434834302110494636284153992292136489372519327887426013159272490097644222517196073314079707925768522778426461086653109589689854674015644494750059285652578348630418583066853286741601544706523584148348462488506860034412525645460653344321930174319487187956140525381069932545452543577346228349076032810610569049378924735989702407397615158557161487609833387738418617335125809776402250992018905942225092743650904829255901890767917433003917446335587874057238802029259128375375677603675972040187936419481578269207350531215607348813387380103388981835586294210256222931325756581028677065639322204616458412958482790305674707490071569372454329033913609784159615836059441796550272959459923027420067871248181688270860893401702171746335645265280434325421354470905155246991104448513243837123818929872248553889388949715509483873599659071781299481477775577437679383627247989653068990577385804146664585124055142441359743000496491330599285776739773728194178199859144766721142633229769785758922871076336393459295127011403892177426818002263112568347520113577369573603049119374355901274071316436657201507313126636995360530298370994529288986717883504961934735951093013986352537527212440939845794519212953294731250382315972088157781684476899963088323058902344563342021864146848317579447452476902725367636789534172402844897363104602630408237213828747605585406226751445160001604765279420088262294893052404308347932547262947108458335570834006511738508293711467089743155869244525865297921562499785633096950591072872989196978212838098028011155564179959469353488330593947606093473512516894646266303502951201990205491599821293611417472875420061689670657337180154573676807014865924049816710585084766203187110169865046630821581116305240078094574776292256482427731058481064215192826098167175927192600816570073425385804851569706676353081909163727670651554740254070720963895245847835167975316964432522951311996937858975100904098664486775926475691660813026441518476350174169040406164101323694881098205766304883518443794703863666384300684352165250995746345067092461201740451489434842016927886782556742687355027215464039731234186347760553060768312260633503932892617600382169778713186511629400565732178737922488874589287363347568203332278692178278128026210647118946914676323827169633751810443723406709413743041374012513853245861572184147379823011579773512594824884829648759899966522575131479232160824312250966127792427783244243762395631130600165191926008053645792566675366874626748592354195610752707882907963272772080267753672613163499630229013595262833647249883330034152842944197487853873270216026852108893902643997577552954651714743945173423242816610734988191674796630258831130833810148902356684431133995505947993976019569165737274244344163284848796951886836845659756828921732398255272768175757250753468163932358982905139687770407257274149565256748856615773103453834262566591191435072169437339325570801907908482407524570350926346495838931961503983494271302734729058565414829325962227337164992523455358418638593662346222532938965858833375114011581619817936278347374915972345050524516776864071121668401699356725236510060148745018611316487774070055431635959097942272783212097955840031588385808145131985235924647750430164686035333370956008214668447834540998519040920654857863675848104917267233871128339300519613784610347359217837890881992173803300839951662542241404034787996914937485914683337004457083713264857936057175064246539571024197432386575212679759066254280666555456207858723609344678457718026736849644998529992419552240221405670459680921016975767984303405581100433023054206355659333692233639411849175294225315288852830602320750887681707924750574797279682314004505958115360011742123675891310672360685952754107889615980515893343182164103901915104098730532425848774592324356057228934437562563744531973665964109995603694173331009198515309907705209057373166904731308905025225022609591016346549922143020004666649306927429107922395720766017779036212819447886419480619497381851414744798230033934057354896561958902617107880819847535265522831835297516813937388203968992341933117456617117095746313084958104210167556398708350084790742789462033305475365006832713661382906105272002619515909672211429607930030002132229940379976126854913772051131364595834999219726626040807256469997623751650208989070861205840351459380266772837599186123144787200759078908879527505480893131803341581552547390181719525064340559495592844551127684702283385874747712513868775720612532724299591249947343409403669790779763075946742165229593478690113770946561330228404668440844898003726969414460488638704689010469373496611631415541251993980683086351330312359243069205064269112544780449804578478406791323013882544137739273170803301754559037074237745888831554978112270253135470708492275657747256777968841247218662627168818163620667426275368399558037246421118918574817649810712314898056402218956986319149075075347446197200369105760171232879037745914632265247419660866584803500877228852108441681308665139891080292993050109191030707027885610078714765924210748045790936899627105714665522834929169018014983153747371582476749477576067178096548633004872460369012551067972528049712655556084465311104651738927438608028455447364274806636487442434949722420195264842636517554340068795148418161583769330017267680970676273745493465307537792593405053786531926621414784863677804340510793261282978691579148728920798959812092375483166724320742308948770525797350999663124871422597334868250811846817740325122501369572545167717351405246593954375828001002812512182023855803962122357080031158769463718405576065662276549021478896964613885782972968325119957727403329952423746292336380408322829074496835746026199325912119742280097939084259296059576214675877949589825556223615748713596629103381754448526468684380168619598339624535684640834444095713285187355408717386746404705629171542428962904472497917374193422033148458201752532215802649657157765127573833329994209402597807846672565694564387906911420354187738111630649998401734456172555733967633710421808920036038574892851649592196278873493970507281550198716350318142875943892821066003755849449307172857895696823290061123946777378799448890021936749026733367732737982410710952344884733178883679323980656402640345181076433358576964449710299655857967935370448960713608161299001337197593231315619592828344866573288848103379149862182418467159207770600248703130021039509917654475500559655508304741867554845723714597285247737416173183638320805758968654738962345902225440546455034101414150727183098063248218806265951034643618793625072712314890042860936322736196333075076780118036141557827908420204645440522854598756668386299906287394101222041096131222826991278366881413333813206439428213514659490307249789306157329396974083069089145876987125257514717467739332657472522999217745616983887211752227624099502095190479734881086717442425772603459201128737397369878453918405413894308578243016916185009793564696922822236617688007863067357836371474026394095742703049422936084118253015330081106566963996241778755016334358951949083100023714315728437448366064500333997729047903002765964379868298619096844139064624707532792654354874491274494832465062155679163180367652738940126722276730146147147971350617266123104731392760597517057770772876813022747947627294421024845183070078877849681307334850882394422578737531470006192737814908212966029401920355087616760734652338873238059836882055098591698570981182377560713203004487193187615034582787584097358899578769177797803695409346793487636314565471770417522648439920286431735739009516861739921164348930417192950982173288884772311324285451227060878569959907440575295878386522234062892680034348244361480827555480410930678263257024116107237101695273876451316167322056663494235962728748079363898133164091211119774902502075266890538904688628457967344991554615027848980768806874745238849087166657379671748261877492493919558086903019388475679014770444496009583615000715206032903206681254129046272164021138687794529693161054420703415919451643795913124841685032982369417241221984844605074335308745321761883620174699743995073663096906652330363076127643766662282399933733293179367761509581263795304942182822556168184214916211995462744398122660537716532784841086276747353976815248488059434676083903903498699105531489107021301120202778519062351364028084363215283960385237024376178812445674076466626399295610827992377683236073941485491190973851929636101574368030476984989198482647467997751513074726969580919675717589725421186684707732151640071141592760019478824632849325805480129925563508710412542282699657270649561740520601584998189808176221749082978889403675822293046429140345757112106464808740044012428229024273521808006272879106114600909087584692427755900381675098258681730046387108578564727887974843047889780416009936158639130097227539301550544300584314394680408627343504381628147097550241304368159133253184634640822909694616628046737546116927393962469189353978705821992201179019364767589050821228236890965095483834830032055798651459466459993583197360936540629076785766130438005609815900229347053052585112472153245668545499790123778919087616188002010200983663190701173222627571770592611502338644239752661022399401688792507077854158712678906215716820479373438764835058484564391770543254052497196419621173348780129869488291423797259337707890142875350385665798625230704346977022307191868140630821874269630559659678061733409198402087293479807253464845378863161264733464991603817740499107362948663265685072967440912768573384025204229939399686557592883942497858964403605992059354646776692408891184518293331094147414726713884930752427661762923141248392735219994221956003402779096881491914646550704160318380263271630825692982686274361887005540251912570525563584725161057770358558869437779012482406969370997169298239432047769604274390273524963764677849026877244660548145518356389921371394103563991946678890765945279568429850600711396655682807524824568649166667360194361179699031520025475429932576194182535077530182205554221070518353029817985331339183505636126465273294247116511064053928694649843439377298208963633731970304054474390391189260663421736568858041785310418271491182210903672993503817941858913074246837247233774058457041027810988131655805222009841636386550817011895462975832797290514500631818054634626831861414742542468458641679389963310826310972995271214145190638483417285258154239351092561300920225582485240212528278564451398796846320844292666050703599175417391574247371987997115528162264172411108629275900346287902894042667805179049016602881665148104878625148365939439835421461385967826317761509632747921455927235078619642375730746450029810858407466011061478277247918300390617014533487050678591018773424151133479546903005428267022273313201540669650683003461809074069475615761760214255366326619819308505927457129860673011270827077857622105945463328107359907807867580515643305039477659965413495294478365028975392481111285822336169102444825244563524107710225296513969007673775909844612442707399145987284608405262984694190446801740918699574018666766461605092776631018601897279193110847241083682880545294538078362076991410122965664371120745419215236609441512066598180464877160384962828357250258877615787949248885713105144378530341685442189545800600412260514465133273481433619060422894938868218428240497917529816197528052746519962130537677359923943779988375556822396967433156802248067045509795351313267254545354932914966658653287197906229730774889101734827036871971702626750452712269269778298383328040932456984124856317432154148477846020239139576309520481775464930615250813419095196612311970365301779213681848873452167673512107784302417200611759552714767011977208782653142152078859509989999207314032365780260285114422871966319867504270207379548605752653118982553395823948799292465167286982126439704265173576986982089169764213701226124556161098598002116993244129593707677933643200195476456229643480679886864904518136462130878237610638100783104090237764633914931332783506123140868754999062884367673245675640360326438170627541222327374469329879135617146023606059669089631329233812932843117260092689914907935465030491965498964231577568510928366950517782413134044322924654054897641614793882706082298987856303298889033874623937432385291590614605363713870990400913884165722466602116290819431321453842250267750179575214308068352216526030253299981802480330816802699230494957497172875713002702310921777868519102238125549843205867620376699992486825293730910708556236292910468253623708656742135546289970802319559031353662597630228113942543910785067438829957980519967710664749497063432640265006704396550266877214399313442317639002098655114286566037721280968069371358883580535998860762226798953668294211907303712558789552291747613968373815145903260457807075735700353618028109670924545644073314537442418899689803499769286043245011609123922566220273104017385992735611219631245911015753423978102742713907550894539597361933887882309460576232917361484977711717414401554801700019426478582281628756412294142524325098875175130990584872301997579202471142362274424496527780091360386562356362637962782898653214618237263763326072059091899980563767499862503836746981774122070452156413857931002176068644751673818754224417844195809994606979510436284596102406102282214695959153640674353485749517682203957202396667650734800247917404996795023890915461853495722826083476397506136754724126314782597709163590844502874586260064662225900622165163389691206913499278828709794657473388549370095038902585989880627694320156605852911865995798033945735811974226098288705107664019860295033704121182398860388937919177142228425378396424120702452329303102096539967490057271526400121645713192436377868740464170900374398404195867868461377831401995779495525590241514169420885178447468632716192848700663792983507519926150509745634677937629987782632808921335426305297962188259799294285415025595288580793381607966954737291361777599376914423404003826848896374049503641072656831242264986869606206830623851615850097844260284975519889241196870227762630683802003407813029935095050226056052364494565234350517796117640602804026804198022154839280708957741433580895036220593935721825593238373315321751357251262309370331031080297170022937390913588111548258823884035567674205350716914939702405220452919276827191839923137120860254893966637836292571419353652984538732683143973992839328520949561346315201327881519346763726986633235577238085122834004902014146512127952190909937286872580085975084792505946978330941274276697367060311218668147287579072741335162497484454172001120701701766515793101877223049822542450060432480689591453428327298667364954292077523015604102125416206943394202231139603000287306164437183605403877209696684021521909256337057392290770981355033277346418307394117971889457002995308236507539867521584056933271254885720920294658342144502812581178116380288246945740280842283741963655689067052557279478828777076615860993710183848977348497499145784511657201412343524078731916092427532668684343220394635474164793754413881149927585658374796739208610117898882875134693483540053045912806939970383137770779187903775689160375612712418883911649089488737198136048926084042837882531904598159403954937349371119025165722236789316087460298366513477725452093885396055502637190102492084187155120413470061958109017804265889464393009872862317670278864430894497069160187197314696785829960092108204424151134573602983869671308950075207738496017488731841693035245797878758268711987390262637167897281302473319399453305708435440374972577772068221086725350437434068444531020907881499410630324752815095445936289982327959225859551679870562662731433480565113506040909230800651518368993915557230267828585621092553961003909996561665604371896340364545635688008919198260363050863446343964017487186800307880018871810683702468442573041441911135161311816371303014232703854114237928764658639471411613624446113477246717298427524162385465366491189098138709636282851161865603755308397321470040288250077725259713927821026560370826269072749080263444643785791707278706782923148624208523404860690262658791727523008245019161577250940013274378284220725652723952287862133982619697069122257237226824124001935011715640609799290284830208017355856236238134853077228683562462994377065045041505240058090486719934335464592377197143510214809722759517423648244973061526938422871817295859641854998347756375292052389134310497375962771100193162533428875130333945081582738985016027317140077416132807481614650735004664033769302970364653082817906341921174185999291347634407375198531898215094712494672500208496013917410379051727694466073891745348509570288829834272705311283229234916761173480679409917486441292459126473988294479242658241210978744421721575822726852458650589554264281075310659097764245767197257844332300003500709146911994144252082135671412501848556775328984917933348798746003783820453929532559262395666748907898872933474941674908651764586535692816637947254347197659624419954503195347432302252812431991445628262428890183994345367885270280492035645158336167007447435429049938499564967681289883333955001817331948009295475031669155056914096898915595747625915058824361618761802047700194964245269394430114803029211676811968496421281207165523487792066415467468153265564851576909606887711078106012058225521807438151832527382016866835826415883306572253266160557641392020815423875377326506282435984042773054989433221051797707955502300782387105903888824770300740401457326136475704791507427139235591778127709709249322781225693661312850445745839577240465058422605597191874212561532046034993167608919541281001297337010990629362856262400937010652502416503668536209871155968556604259355659923114579787342475018881637303138568512266299787749048795302220870234812382077078156014179166031908800108454063095123013957581402700363234094918134195488505579339418495726239057544762321905932937129633193089415469202651721175873764028326782037018246755038322822637369220474117920694728394047839105695740343476905184865871853367003984010211819618867095898854669354542628761133077478764687648181639367850436701117151413027163822006908854151402614080665469256088151599266624381774352590310805013104933961012728991894530884497038003039629509503964072964368610924051151937551916078646189524828911225317731173164196648895029987356238191548651513293221434809468904489509493076902298653722015983939136879330848226289295799704750716933464052587681622580614513237902287772272219661651401406286173971329043015784375996745751264237943845695046221448078017613442774455361831396906235056590530324427503245146599878094686901511074170248208441798039641087353595517676692362037405195000153328804958060992609726520113444748464261339433506365194337238976516943751737467527922267092148608049224125586481552583321692568195519563918681414155516017973469980142613900470746599145696481326455313696844300227918584212529635816246465682204141812982670064333360696985078398007598341825911824498574979513212982143640684243936062216452994863396539640660675129716409507886983905876598053256791103990748259381460403612253880555670005576687816352193208041656797292045717233585758892415984211603038003660550230489335181798341748839152369020810516339899221018730435942168633978771856743439283450407033747254424779325427154934161398928704776703893027723818803821173725071254020427721539909730315099077478992289097807788985258099136869640425998937169223105948758578534409935836323229297215284959699178234787781468313336817336241668175139539545722382704254335298710345244554380047127039956236314270056663949499501065081339519188145231070230720758273224946561105477532958104529829945843132918442814230772008394353442038700795796207724498162176932682921541660009371652402341419169783843144259178387147429677370388291514774085232190324470043790740194086886828299484697968377074606514052618660441848689149827241132236724507839714860763706911566959569093413038466961874785999699252904230828248034019235920727243394699604798077989116815019100518610170821208926268164620526212449675624689183938479464092114068831217651218718810257832697623885081911289028444606627211613446316397903893191705466091858210381591928905817759117852296723708634105594825905363693219803018802849643932154848646695962453070622751150946927917767197148686853428931329890658738894018862373621336351784908400401896993643766870116085358166454221921197339752907696554842164778206877413046202406153106986467555495739360480260624366939643599675471275455755248527627755405277691057547993515320243527808655673799313350944182471306619330783893687727121777518257845312143248532957411770421952967325679683198921052163447886529965237618434741066633734291849522245062125271032046009189979115171365086783334181480023799010384644377216592716066151708075814136239455471461548628862281215002313303829618439617657353914706447623226933908880405838184979845927865344273073547925744849385560141740620011286729828548895371697168104154320594965303128288571395805531820451660065776391171615161938947119686620405667707370370623580009513624051209721129145736549760117162028351974044699807018439321521744697194919782769796983747414785781715694458070792582547693172420918103419524264611521998448354712412262566755554586104553494754493520147032490038558859033892452573282888968152689081201144428790826509227694830637299492108074701156218220232894545501654265901632131942832509100851329838169193044324881148617952987104934645889690386907259262993273383123068039471988419605002447124648737191887939578551468159512858819895658090122125417195136963243877678179075148377403444522295211793749539581979347039289068534670983021206055310062225170161738837971933317936904410568047622660834044777810044110202088323797482076392320942592898414653718806794292265195115579910465375229781216580184399855794575827783503413442898896310335596589367458372290840813089233658269006801047790222074933997659338781884694518385644843526144859290879456370109883007291457039167712834703201884387256813189199924009548072462585547498201396837251090383503613959461098886657019937693270753817738225091930571409466165656924268468444700964645878159626627985161919370564078096858747726837006658077032320445115410306192473054852453493978467063376806775566933432517586263827112264370823870870535893315621706587034852706226001424125657856505079339158567838499159330834453818411145815662965925207955622285512377869795277378014391060317654321394816566322450639551276251175420742168616964894798362172799598738016281111381987980280796985878511799269896256098036533563455756238362474537294344289297547442185599119166456992984569886249966136111546243941833148816312596474448752875413060315590424753060851559012313546817817668456764511512727611156705901639154230195249748563591216564116080572386005890749004946128883699831523056498114748328979311340485836922567763701906425100628574906794445750811690026095291876324999856805840671058713422199875148910294154318930744182796212532313964591136167916195861391130474245992751456165899962043399087519484459830252484140694442325455103599205009949725882235191253027528026252890347053196329546628893791632644527925954160314015622097532184239757797348501063454475084213098075729088294865369784695244578089650169049571452573200399250269334822385595371629484763194428756562401023072777882871259104560378950326603223710288743710592060219470202760390433934446730516175722294550357414227397067127134510626138415199964040949503095968743471917477393444367540901149488443325966785663991830316027955338376702514338848869641765125840808898355245724010449067373629281000146437738436644744250098683437359050715216166731750168804676754902239885717378078175287739761046254071735399972869738670299403366204050121758540442312083354045149237133837911087941657584893435939892223652932552680628155567367167941203131451415146926462934026974192015642060582644759168410633389338601323287222876146111461136341529900820178000537435877443177264561533789413815014932626268560681956305398494399777806952825474157885789243509330785149764597387258674799497331359490521120591215991876121381929860056736958595612722157514968980382262032907295773583501891606016151055976909304202695339370037554318952226227125835992497975906063168468309080963791158604823672735581851126930980157758967098588683138420155222134285939553899051403299607530107713135017875272870484325128727311330363048751895723496452248625516991258150235743709327236505842831056837936393343984736272053807027016975693793086087891123289388447216205240813865556436576009699031585293668418476211690665311750791701733190747887135677918491463509615008332308605704818856782882990860154753817166980223730487471968827639208596631855626797595796867688415636368215703278084261201907967384604601337595375993682034515382587277278638148971447192613854699886919446626257620323157851890808921728317105875357071428257477895354899804789972189597229328087772868882273080444114205842030902711895587423075886393597718991642286895923130533321930203346813126738550854549414120716654718242747745718759703405589779595471111868360967777975109711427614946705924888620818181121641842190059769102492254838841968343220898622748303542826310156784311495184662269708396674954386722066203620400010110822022382380524669160842437558822921717424570965851473882373699675432513089332084506993618102669542013212011204554916277386780746899390684090751880653817535339514459102261627953498210128441003153243728285211416382709232979023705527287694264138980994600059075821882237582341543245598723373596835314792055689980363673401433888230664190042978228841558195336890243043199862946885782843037052964108203393067642177409511581865810007779228376117990811721873457245692198221971257759886788644042987186797758624544394883550435202222908159776703734481011286422114294779953414869063322432311108930590565586988698840813160026871775668876966145794211464100341859154463956359361735804695617198288139273399647677504347567467587373998577660426616363436129071850769299793986379347268388282509651364094181885833357170301757835645632907038210285306898310475175084822359569689756453977942025279404891623364882812374292366309495956539939418418236895361421664130660761862017999275200468206772520468837664913388657649015248121511728800577605020909936068142616729831781478389379079973601670014200943941482444042339188340106472012925735031184617448474937939281292138006626907135117565560146205307503389508907078530796375592567162597392732493184837340324700569316075511220215523413539664238572609206563053606744505827498552451206340476984865041314001857474258982975765516415174414222294110858977252648753411436552442778068007845941535107977340106541898487062988916730206644500611590614827867739600505994322779403824814369840667827619183031879543156337062983049276014397032253735064457770120799946583955087024107080635571362486198342270356618123227972730518119929562254930519022955065645147103246876137367644142775349954047043707524348366249253830929768028469344875750952045993952679826916648750195686545382960774409195347796308301203579623404191051382983250252042725205186447430680159652996317935217941671637983808826616940229558801229466215978771987628476719937718437358478532825048197322621165002833430776425047694210553258047070085557338642854145137026668975478050040228163761232296871206820359916151994529624727075771762047925512465007982523241161709913311975371518964463711255941889627867262329156868221556395922385941489603779033050762914827833553705153517931308617787704430352940090402436514719982495471732119389468780847302327525849287408684319222548282137036731079243430960850645911046154089624740472722738840875528019637848474771650745209480169218421950932001010300338650367198554140501325066025548278395398967672019831310377416370576361231668538280456220210041411578875269233845541500717544358773164845080754857178417217572656230613918858815751904737746262444814889611130323084090291280542926335392643803024902299744847188924630223020589645411668778305260461711765015785757055810513404253084282078833489560819227904148359974285179110313165739215892249692832479387356281420800619075184665317533112897399918140601903964572336663588663245478674032917580318885131049474807410039328451483445751919818285325401587342397809691290683918245302331530510371354800229528304478348376393277758795023391298038367057852982550685347543087409581970474051550158019631489199884956492448158259276833406912992267958481747286185716495075892903043544356169963183385890488150710935723399960305783883823379726917720354511085807711192998712279295799931144000213282920016324784839072867079564329928990422078497951819422543453296493083194566863130823920044764625257755064182218867645210869828235952072398377141217548322777741028455211824494706374480751504606654790597150248444602262705225523081745834561490362633790120595006666734672715586343482304123372364441416424188347654871764236401652067881753196559873215590477909784182394215705211704527683204827304018274008088449937032345442247663097703604234631762510989495011573735362341431610424866750640650964318334572716692695460900950204285621103883620069856442633167875128411279094826247912275421921869866064108457617251352247715175487958251887815959587981329510119652356126594639900168569449515231987119200024264403044282244498017904136217526127652076114782199609191423240161347247791993027796072329761892056422284613419448498287225273586795992104064833548275432246088181613786391493355181683024376736961547741213082325910566576788075756912989855180413957112097776997894528226130970598325755370708154502065828806308158040171693513715830400595675777540420403046424595667780647246420755662681380453146420347285299282713308982600412530755665542783196698488413594658071500994878928812898586936620187147218803262819096156228687090094940773862171135289123275916611221138848648857958855163498744911404079487866455860295127487124717071199942358431857896561811939590263389094165735739503857026201804436188948786735980401117372752645831875500363489400044293586312988958873399045329878628276709270958936628122541484066290111250327097590491676802904298236575644213041485543334477218418050166332336921316770158736095041691237694802592591897972731721707055595163122805065025561113167743132564124440322497998781192069543922607114209971585711197961711513813147109492449656960963678017997404737270102545371604697176192478516512895438621834730805248146454693268720744192397833561082950901462996887070617317806704698395737821821628503212374386767907343189609097489241194093194727955818760849934709950821850433517686586879108260454279316450502788856759958679006065401101353534214482953000140348561218396847193213960396973435873651216990583295632656535089260932925895259747304300815191804269351960425026091702797216774529818930652942685938535262623413051220276676147005164384756887030944363694093014957204146673853514329425880753323494784987298126419306781048558772346610738417626113848723863785533304835397260526981732336166197129718897185086434868122712150627709937126357038338917353627062444864589054819071386440111954445227669830481129167474328803394771220165029647326726054258946785667422265604957506152745544518127782372281075676240919515717492999409057634600251870014635485974878342259165941066817883112239434999870522319992740721971835060106011606086611875646864785809272917915003526105446763195538521454745778918689316687933534785755222585060328399794066843229842187548945136788967619453449731261468452950873308262288300383910404520439052013292728418836381788903105617515025275175716836747232722143652455636292608702300261749968663466251879875839933386936504713794665818400499804660654650444717783602009626391191896107154477427744006929975288378287003209357084152157021649096588514330966255202354155596834322669990634936775596096417439852455851552509845270440172540527737447385126244458155466608910235349254255158710861044675828086046601345948602134642050045369009514868554302045255077396177417288421231685893180652740391927561161820908903365961471375884447544568476247380708418124104049238367825705690545664279161793248104030646746149640784210725832951902149529789594571347004383152493998736126899211964966277691306738110930195550120835928919313326549718719324834272659239057006550776568746302447946803791887612593925300067461537209140985672282705006488889933860734275867312732531320101209658257419110017997561539907548328221715283648322729286405938615650158177868868787428794553513364101254335441089818008145786495418615960299049957903670175563844961678578902502944851174617017077435319122380313428881841653904555940593356571635777639672363183191616598512063964011606174086658533709469743032883772010509699082592786461687129973762185020080848838345132093559781942739670648066550128543083587796813605768773420600817306298970047818832366865514100995911042494401552135860097203360424357807623630859029483639495737403060202363677141956152188210443895693529212174243208498847420602219093865153582558435438992003266133616428021471297838712439006189768979933274313264688674266510959405634217884338910527483555848933558813895656172614794759037689501739477565451967581740579283132378281359500489069669950421642102451906401539918352880855255013344725292706965717295187215932647727247353155036958913689993294567773230336515590821333161441406268953479938072889488210556524793153826795161200031727663671888708779400967523637547210593696839707754686314669743915337118196643286308628500102716188745592223702710162138114013641007327611725707046498444221335546329862871509504783249290090329699573791659468055906306270641479934227431994760405528380359119586754729619404102787473785980650153289125536709585568097392076394561303017058375227051048318896058492888310808854934350893281816792859043433059573057723233059183004082588214394652400721771448622086803790398809142032347004523977472285542136989854510334051763010832604970893802536539133190194931957858809154694011088029702103064812395858800936871601742403131219881984842817832761503038553838702696299585375982499198233131020694607233012262575287571437347327422031265252795405896903689186314320865158717777790598645200614500380177931828227375786392865469631869378247880315038327595858714732574258850501531512075734989154534995915577116482174729710475878579697940732160860773493437477952189272365377786382984784266746275714097470009317826454499415378362865088670904527087997751126726773710628575337290573497881842135862636224169798445857753628020746898412881981573353485544848760240988505030300331081078158976814334199286478444367394130320979393238730391002086646330519962787738722007764564439325049855696705981671999130829180787128134710065456088560142554353574830953122329532854037267801204373197196687243333200080325372226248443350068123352028427624257386590096984728979285328138541973766751614973420426100973705449530173543065473755780244372281795133084611718760888887777552865212199642983349990709988642252595676417954057260404186432662678784551025769614750714866018210633966600857089842813327972089635294258493505666120998395704753954599731970685635079323952418737757396735398915410696169971955023126730795241788715094317344985662892007410705829831074686475068024529251222745903605228022283783950408638255998363422406574237870319719380237388178638736352012564228099301423800214272574708019264772031850263957028184272258974177933268531766527796284480809823103856182955044930162810698352583443909092581665386784538409003692686466103297381376074508064195159460032879149310749281775462977220223927219603813000256708683054890109344847191110316782681779031410029560430237619824462156778902233034689517317295053560497384737730951354824088096788890472177975241284334704263917833878271814301422953831753271809936136985476706826574228637319755336155443970565861284487643782304474008136173334133060323806051403662950708264898731104851031887592362794719039552840624381689682238436226468314813987812054842217363351762053853552102336158800754767083536545872933160261749449672089825053251731302315096154141478161570720783508764306260205932152615776833985610992057326772973644353291799801147651710496924962251475440146665570828518115030355322005844708587523879144559388302780881014797098609995663452832626266704553024927721326162240918547581825836709233977569197725349218073315784881523570123630284584959114788274590238208115236593725906449741986622667428624993661785702089492838093401839213390990104581680379794323317752811437170297083448310121444202180745398949819023342251470537386207504508336466968355979174663632084800660802647528341570721492365512725407584047511436606609576806469940485138062691787854494957734682906890459111581856897027090194775438648382361488092667642726047939015286072872069294931704967004036512372286224920704015137504156955149509818979885640326115273428076749487116864963699110939488669087458325693630011168816926252920682428710706189028376515375777002090488470165783253575469419393493401619466802905045839712378664836813305298768988215587077826296778478498996962541242988983080084008279933657931408225549392344275732379092435236402317761276515203354204764815146579582042485509161657614275957500074286443204512335290762263184608902087159118376742307114950847238560910397590400994367606490696940378610618424142429070813529469471854360113592880207126089281842646943017858935984855254354611669866495343850247094795163880770039484186459672926384733863627192944157494087432876520690012148667466437778172241657334921432670112228997845547045339949255295317288010597928038305137320962541061369079922023021471112971851695273332844762070531346535695320833555635206805149374436967714298596233737535211080601018277554712906977257730663339927620626636778969483598666444099922304662925823755526843100823922482450738418500886620614830519358884392676438938726537207546933469257445291302868988075593254201454542410032714325154464607112454056491430449397173401944233306442547165415577020224443510446769936597955673159943962636839558503375792098439271953264626532423819573395155299128652770779895176836454150157093683386402543783091796558088335018771257381935396354217948171337440535642592635096389541267508378575855050543108467274874309009592766997595517213860267579083742296134470070936341051758005242053903353785092485654495840247116088063371862092206400810670603470810888457260704476931234552473825289576488776471929416183984253534459969107318035265479341447787486952965874953996883128864327074477293634647821275844543294568193128574783517537368503299966457405411152200534425683087837198056991178267919488467163966182391631681225679010140007183399623050748579297079074326428037321296564266106733943167158703893969698035214808749875753917574544943175742073190819100381187970529509383371428018427395456361217561077037767410458291387931560127591502744824692889346875612731513148153681737672301241245239365892284772311645920022438170767193482589891274399963679156832393825145012106285649285831721647804587523899726336644368667603384068025527778331618904810610745795577769236082989104765367717114861352091734444536529776874054692869389470882717755555813575345795123458143938733091021202464442068636010555219191823902755326470162925172616056544652220688668866717894172385559110321518116795127124875944701263641250830124816146160151589621475736603803775738130948612224901201697692991944279107195670381528410978651588253629819093420505626597402516481373542604963127657108410434656286244341948408136353522758869702298605331901083838067651970874972686912765238363266900834175985348496074461814769487355734715423290603610694695245020789418124436878630872464790408312160875782470248803331098785944917700554908948679321754698588711249020365643421249394567906955874207886923469268120269977356998546729334902912725927674378559934489422839710113915931569414759970495191708891093459228791599806533129157504226081306958211728945115390968078172341563858733590167972907790550883957209348792870485519294835457907418877887081303267622682942805205305190269587717265642025840551596040280940606921271823196825000698432241089668481850972491954612232313732715371636977539735128862391801498443485745886467464184162119719520709582566500901915358681018876288420149988779976894102721578062712176336013218365333405560345163406752680998676208109075775982994084929226458865660783822682245355633032672652193238270237665335092955089604544997464554083469570469753261088098206668489466101254989178265716100852394173194460401149961904603629897505873939741729834186534517872429792705574211488978652459006856995727226497236218827475375417527450665709731483429358978206636604416655396085413074264492678841538867541006058192746022748077837648747685551890035169444209866619453269950798277804159204322543475413644033004202747209021794047538288818241399399886030493627758858461681758584155823385758118199932907765506237338436401828420827571752202928945418579190034578050577937650700003833038893940627823044816449014530993814658419747483376671479881401919896167961582747441788868200852516567615507861311824306986964133248737523063259189142148432367339506895266386590283449598665765238865725281244834558186457707439268414064763211280782240386530754386356098655936753478762444111613608306677878654158028061089992066311476607710160041334506675359300623505527537424726885759261063157705450792601103375010652856282527272033634218634326068982530705969759935974366642878293156555626997394468830507598893655256616813357906075400226435559921211826739025170551452414999583125824038403654546986843029321218529980575668242319998531782424198908112066791618671609940776390296903229574794571732964711692656726189729812411382106766636854947956745483509718829498362660269510701779973343633297012927926089289030919974936056407817597030218791834755546913615469665074483520577378775185591010026475402602662800069665783816098853618454070763579658481487819866991827510306891674221241916391099303368868303014412514976499060550440435369100460611408410018458029206599560325217748316340519205793170557744196539623581214765399307910159226974699509951651535944510776824837139934943248907115922243178055674537291515339563602360825783090461246779053961310154376501234676209984237136111062383005437773892738850692530647157775844568583622721693349313018090371478250402128025568703807687626458368931915675476181159693763821067651673563980064048591053848884971231298690167455709180350491927811736498823952457885722502934878782056935999902729303738860866234590217994817451217490222376964480037427450305182164950855539404181798972173585821829910302703224207720343018094506834063104716610021381691888674582646484905026253321537654912835001955657438060010788799494415405567168707465991645926659264539240763029849089243558065356128785423130835656808315112206593068850279059966910151350145165595758699666472171755687362848945136877058604129787221523455978549704135146390213914523974121155423439115924942985119234637103593290192855108253092761840334220770401326638600607522532659439109548098841421651680837771893964393661700931652662155609079174710655181408040810059652719998622412584501382820753675438476135577464638422646641027523367477980873443537620150512905339505010214059337504520043413317506883520715875024874043492339102578683344931357548251407065546575152829711658488592226948644181518567068552726412286129892684347319013944984523298347901144540696786807247216338465087417354361118804399791248069467454540270545773540614279215194561735371066870213294977936662872974272286596201984480377604541479514050272518241844743150817560938912855752631157890711280186960761669971271922519825137928144003681956504074784157258524563334461533589944817534317179737454241528745383471574975663595395785913986178668737564337234264852987706419288145341922420505936664568312994823421089360477863758494142596109358977570775148174951664768285959742524684843844427530892734234807803179213524940886604972093682702241715724170939640109407126455401966029423260431730458238875724171241572129160289923463524457409669811784008418907885142376852627313731582632678774490953954109888372043046689745773031036520539920650540043515787194540564447730918617306162707765163614150718702500644699575806448906592699333372483375479329751612169450179194999670297959825370511205043709920537846875366681208875017060745350642340423880651780756609611176428152132222833836109859226486322090565363228283177085024032282099589531638441514365051166217644715919792229960511364217558478089148003429243932379756128487913836469900388198772281289648908810979460287318109326242273422871840068424408460283448948931714276584496697041500811214373050763171667199718799977751351367974508122616179488142180728419197139877808750686766042063081897950109129440327303046727764042230457754497779906642139778423025295041965470714677872418598358861431078718472472991021193439221160405708492140866018681068127090059042674022305219285094951239922454257690352431906997981857394236753605981196957475668294015350095719164143532425068731306808537873007343927512964970559370267395483939447513246507229254763510606699633830718275977114434786710588815079131027648215392804787397256955138534254996384125583284740126887503242159841667568900555896717562753953800436628687924176897596457578876480849254720122218636201205385882282139847707700752751252022334189805406889213949784352380155873432521213052448262513434273992350967300654080597369855534123322574100764273000770339123824082965705368791502121531905499384177886586690080247252054817735646484432564296218317157189297616889696297813055029754504822338858494978019684162514218219355691435390725950356541366143809757323074140561317171728442715052841992732087636109980704432174332205491512897603350979188128111298616606750185031100819990390595382946734753506257559996757816850519338195016061629264788446018829097820507189727850984766728869524851510772072925602862350580861181991758706658922854658269454337218665898007483561885789097860175996506446459141944991148076607261132394972164714221069270135743426251386894654644726169730607783703454030313236664752276707544168238895670368990619545451061720911278741566384126083912140459054744088036129635836897960913810963389043653943208077697960850161854555040919741085182767948979341595871625224813871132649836230070733903604564471437834757156791787190768497234044672250676003338449281313876421866333138999929722808556578138830349773586662642280943763384670037656946848153676431953619290022294730430219628218877170741986889645934927487630258959138654549281820416359836696268363392528690429865091951796366316005706843491838123550939930229362290857689031087536492107240541132895249126414156227938055899979910360413919565397689054586116528626965343893164560877531816824742017843276121485858689930040936382972552483885336419819239077591197091223701887112085135222817248257356418228405692197738248144402151105397511465493962815242458926694111271503144139606808059561079890232405862691750174414353064519355889768585572261587166640718600256879819719790293368937103335708245007660397166283052624015805665733458828380354545562194094649661821828344201224390146790406025414334779434255651231224947293220042853163305826738839821019294933763105408418313520941886278483477351425458841134869254032058586478387428829739066947792237368263633270961333091661860348189555637633937056063707902776116000812086122435796725494601964783036887538030351574851824406280522963594805670432890019897960575990062235166950361745146778423463647844128044542884868366257575470149970106456352047160495234349722973496236387757201547213819823062000077867196182405755341276475511061619764354336493399770132354305150410158676013051790351824373383501514714143394845591987274242308342344708860893547754172995013423572080189186513134146559335912431192214869065253533900714003400928250823417242474026121784230314661913444200410365971939857629436731575850007522752869869141831271316531582507626819439653131091277325930888307953760797607114107654508434759342188290780518360114584675595515762783744903662600035901190154701237847319684763642168871917420130434774116347962648140469152086289490239630638522190330565485838105533355076108785059430288829035851928419068658929703304895420544193940596165293101706002409396745261965134632899133778106936322448081807121274863176289611286467309551760544871154417635179718799437214355520005664442781848149093925466140395489384297176131860418804422027020574062864559920564185877241962432074448307743511026161042235803147923103810328673190524108665342727939999819006605135001268270851448251771094896861374595134787783323597272448373752633671325100559061781069226316356062013654007871396768754551183234066947790985534219081061471334447358085962098505689222525188398988212113236022737638833141494070948803934053025050649090436083016185565890706024839193280885721277182476583893684124185066776495678994434617572985086715369821275556452035212924058455519639550337864738036139501757773271911491687562103868106357132583310934865095814979937558419034767873347621077655791154307898734873930769842719045277762284382310830127752250317987467219148916961443494576236587421372231482540742609011841631781417957661352776993785496202654872877982880308943270937999881207056299453127924519307941425843765428972697778319451098983686993091597637402076429481569154092447304227794502734036114079551367857378372865364587943559674314191959749499503045352759535960533024844108953928827652045782456450426245883515291801565504046758629019276569099869533795613966982906659443723176558322772358323297707384314059796654115250629690706621536412206409082886146896705760255615164447644674195450631185109522689767000933767235676017770151423398537988521051869747474889590629091894535855765597915298719549318178036448463809177292230524266936014277941798552640390703204552788009638941554056836414239983845831124938846791302118798477971328126000320219287318605778286777893431679717774572669666541351807176415148148164607896114571708438437921288450767865457539988888735324995539863261222523154811823231073475628966681657954496495552302433934005126304950440516970115961679421425162194883010383162434836622827410241068253055872424514593415987365549412187158397131872637302802870125841941581730644031165482952850243621652248864741165920851249707523370858237115174535513802717461949488915013359772640055830109158236063146642574198506022303601861597586988255094336756670060939381659863723361537710081255341426489683745440973028968732047460465188726555208171621498967512157952680814185621099746957383431000936407657891825938315899618306952013032420991626583095813146558439826019971923513285562818051415068251881076142446057847413159418518278005714994279192452800899966049978521586035188267801376346706359140968557278182074786389562636145769338199689890217238051707396524950629887550347459993262262340047022593162531542136103277185944114059080589743349967490696294895315593058893771591008373392327218090736912806752747864543098904026733367750745093970664992932407024582057946018870610014353926855085848469249076006741105429908790084073081693235892471503390161711694695299135838720770105506691858139420052484782342249044178665612618539732728315000051007525500472650643905353270497666223800978658808390150725790161853685156664751877820217914593554838133288976170794776659893275540538338074052854726490171802888441766173289312468933522081020079250061524963484641609358161026589550524100173029215494082257735559782961710812641857821422753135693062709805798934338107310048961544307643727458252391317453000793720901308426221383213515013047865553753045828759185217715203189534601827380623869652983357767408483417688264434949754119254648086753624050533343093836481412376886254183543641864741126586942622541446925282466847625458648392958692047058476454846346453796228231529284458132416622148914850882866805173663122668525240649151815184339895302759755321750974086859120521876887653063464214072957136093375448997362119298032603937401044643423999338108924854549067263286493774899276677140924023625461055054992614122534738375969320844418665543258202082681186491312994378647788894373440823486297218408597279699334855058296654266304371332857028759280531414856702848455722709238700487308753392706582768598308764714382251740485183653070241153142961723635352691694901992253870790642813247156047084680248676675049882356937570277287169808998702133729868677060807902811016078613620522819914109182867784412997067621700143095943593164565851061610594924401539362065696317221410536244675478684654099362250927840186701255381824980681968999442025330418766365675869287747303478109524315657543676572975208041798871278117412105959900800063535390499472541296651380525181485851072945920404103956309069643210782398803803342495283739107114785306583161523355243206078286398554714310033624112243035319028971187044474573896860864923749573217422756655222132371460671757642464296350584440676499770849677009112707656906788943609394507619002273726465645036323314683746141083627688244601902500353970688228850389373305080349973872046508688689218192077269344299119554195430795418090079751763723563659429388315408495709197315875949428109540019433157839920877319897759721532593486235903790930482579160227009286673387710095106293641707474734682743969195090013417905850429637840076006875978043029199617960726698545867333495994543293051704936349724379970173984563418993534413811762477752645362346384034580371138672741587883248467036208190247387392300408970104459835104394373993543652591318633337709033390252411726691916114822223934309916837827095683904947229963665796214370653990855902487299309686572233860861866617920158797850104157390347521077144862941676550953756963483947920739521210493748700758229111784728106254376642597618143900994589462949292627346297046738689976158503798394651322622935687422480646525551704118376599012712384400102006850777616064754660538844955925077566541014281646618972199876909782598362139456455232039731942854460010509032323762544947781144152105662931064467795527229427646500599136594055759957257275125251734764415922886442866732667370116140397275844196219240357073351976224794151284111105245845104820475815607472218391933037505210411862804876009335242114940224611898569429264538489502314413505624876633293741806391064721082663816528437079766393834373965580433487223421496148714642599223291130155382855061221931462451695245622357133677456396647060152639314179011808233835148121095885211028728445563913251032449209992391090873216620825163938767749713546508304262062614404077914233109082700171988773877328150280695158428181353320917191984242122939429349073117509570285373712749076697374846563483344995047383268201373943629576165140052163535770218929293718596581810244027797536366613091705382256102811931667314324434393778156901660126157569132029783337740880919886819030168423966950735779880286014990872653620796495570494175644823315144263484443539938472413852942184718191454925112572760031108170728579395717213678906219151806800410913864330736656739994824251416833017063684430686604169958442659162221995840272501495994334966725724880701230722658521235862899113968860248636083665503139828192703660326992585777128233155397200369104411580587911277543375998496308268656727150216685676462233074097844184187686778462252642855324016881491256291100331828504581676600085269769138280442860860974008194392687374239571985467017338897315630253622377144335341847129447122023938782462278791128261033082521822575656671329274366038818309284997681590426788380043323816792996086807208399003513796529240041954639894887828665195150959407935744105188488478032307882103689181635704920750240997251803618225251353744174879391259928875789058705506659115731111704039035250470659007744234035652765612176426031572731662726024255077953076535420898683502107311765587966365719831899278251362041507465282972945552988751550379182635027128192995795745837310820169641923959657687993238470688301018682300496640675250420335187182087997490066798718737208538680551732770673507993916035741587542558247230121918966580195553942712703584621807307878291141460524191918678134679197347817813971689064664462909252686620367039471036217291926226468843040422256607515963899748039326114371043091516725702083900645116010815225767148991468808884974219644873973715506816333130324255871259953344074735017187501750380005463305565830326489636633897514728826640664759326122462890309622602810644115946930089212143207712203093112148979835422748365566840778515145253456667880712325430256701217822028329232071621357485913343078270925895429427591445094176599380095513204583250839669164061365548706256248313904389839628631383361997770195322099379509944810581063284508524371546877333293503644859631667309226026633620052475506435322585675708893318503910737019802802769048318714051770151032919223868303094741413021271202162223440118598380362991199355724690347224207651561402490392194216440236715608096996448488023653527133950920210641045084921106214544923982235113541279244740764692846317996201667181461422060097047069049098711103724906978383505161982429146792098292253746392531487985689286976011881174825623514337861079804572655191002122569448271430700343023460505719012207699261906586997282435778859723702219170838466764111776955312046079902115550728446875718306637805712081158601857694132814779204325136195537699787525160069713320149703130766683336192809219107497611320174162316326479985933564487039376312387956171185206707851186374555929289137710944165790484519150674593720167562378771528387640496834285842934800858914097045736928838405391698875984128690954563004112248095630542654296577169287950546670711006409681962005497417313369069337494495592312497835880376668211399623369912292156704098789566172695778168370067936650355706536402926750800462314242435016099393582904984084712459040304016094997220149746178017618639698395697629013613574664787997873360632693626522937250688035980870961246284098555081974736539835022200618771526442805424732763580882927434728462953665154616580525733099719040819887889994934058770235303302813615411095409919023470526546607930437666050555400014048479153537237861421456526466043415734694689243993565105997983445994620311670544722354127191272439845542895126614481612844688373993092213888525109167419809504530113445223428655519055141589549206509180424019821807175940468410391122577160080981257564035774573939235440025665430581311130914943373802695533501452217804012207088692708082250123612380376874904233729542961319597707412127944116288769630911636478497134111798010307445725247415538773340146740543416077832730234363157502160923260797713979192859936176196841036449750450631374303281720176677946631796734363686307341947110383245933101549239156948404523124411261762876597438573788432012019729124636159975042080676152519166976811940877249199854680018592542704685351681820914870941867143932607730985027695853541263197443893871496212962938826939047404342476938121046668316908033878127581772745024230115965637251396128644819593161163810130169420086487440223387476754002394714032935812001506681095764147749881215471082426165110117835943275735441300071766019437935277532387824973822121347627233443660788847354564112456399040929003909231606032635915119941411340692747069004805792463121214788663922189319858988190031841835564554281793233107201765407685993423098833664420649773285118480594811067300868714619152044800461596406237804754190448192584258444424333476180721964137895502824581356610534165380849394275463104854379716136535130199731442191313609331830934413879894369012099790435769071252647086238353416557680842497144705907204648996239337745400999625205296038405959041270076372438051311888749472058435555547428267673144490128095289366116216098659034331116243677305011651786642637571273695040353916824123350123961204079411589395147013802730840796918464125403482342138792486920129092885014225484560755774007706656494765949805065976489332742244390455470038511034262743670644288054713986329442679743783080940120558443426089213115891314584436360346061188698779103987986752976408697054199772130394992808330606054711881359061433985958824889113784506323034630257281894580364392352550205617514124507869902692014710935040196578384910856773776197105366712474616111988337466987535044314408892227374773563649255994813447646449517570966041376920768289104697812296535919843893203912746289396486187717224103789296933109060010241309326107458378472906782826297746710111780232532289219282787373350074070533447992525907987147780129199146524148171856310472476612320355163873709626193074638923183855188936672548371639896033582554667774718223171875253230226760089274611617494515749063556817898313699352230300718889538747648208123530812564392643234993530116138773101959600337073275823754903142697963185720251650150498688021996389372625732760658963451267139058979400028773330903680044898058487370255122850080118602098206121215154227921165548973125471514612840442660699995532163217676072479901954486034340434416770655649524309708422601521823139260924263923205861977182194764975923265673255536633908058720490880732511205795298609715689751628972781407758856326411020137211996693519997757771571086450833043875989884337317312820405658963356422661009296886483752260849966747193351724640584387299249241858345910946471078819593146551396606373497815163872223780601550096928437846310000583955234041489858197224252186340553732563101666342900134362129988573363187524093930929920381676808141157432070086124089873854472890513394826093031031873557254895619350757599417007070864456708419849385712290555653144127857335141974538840223591874554742755864410971815905612239950133191222403126823506229820084343638123030850714763486187963021285745728472984494816315804727182680228284608856341717776791970976073543330893126835439235972343623349559959212808996292538330619841616433534456219082197387234940014936106320173744255131842038227061885361990051921017010366248159169616265300840473326272223654032172250045269404658330619316857491919694295529946680373287166370316627396098379748905579708009730105823385119874998833257677879362364972395932928420745210209918153091510584537801448572091805845379200922230420365905943475083136126212918142560739180811984750839074678683703048081160575996200993251203735285891430823169794442422628470980889098658670275629463870104270394601706602868665126612039841699168378939138394175201274372587263175660063811815625621454479311977475095517966704631680783900107796790228070275427062254690245088308890057069650346987833055124128230187530068524746225006662043863086961611699516000070141453739110124634609987447488030170442597219497927866026416661779270904161951113241015670987712046441861866407941798152107990411626916879834841370131067773857211554018251209335311704191805590700775830053184814050380737855051597716469471317531432745758727474353236894823045374571223650813780672481184450676097344605336707876104889081386930085385641047010620909236739722097475457468423621571884581241777321093446342355751301820596527075160167541001545713962070725863666722780736291682107633057685530827374307400604889276715000539456548390617481943794200267179774591751333033786622458364155439679224631954241511058427243991679886125191532171292152519666800614857059824768013489213975966515636120392189125351979101918894306539787812875376710875130476396978101379236560051684958659241749211641923813458697333863721310965832037201281088449467007430943108761861945212782649853630930261559776039858673591111243410126552747342725049977128972834958040503987244514282559828018930935872311588551831027643918469750294013104253912974476965432891603654739153000602886742995205596588096406932185745378246580454602240540996464170762543517361402532518067662812711629042948531756970827089183900684834766535028353455746418655989857096182097961016056567450952157537750285757267764555006113406383872657744445137884261755347005843879020425810381258759973772956797798294625738586682781960992516787926021885222783374331277287807147268381977683129268337539674105977005647514231163008351348194105885391794729876324113905165937644356566536162433710160926178604143995023295782005190563462878188763967445837642980997796720729255662835800624953739032398527661684682037974904559105022278068800155668836239693218690815077641799495369052194072140023833838957083790061873934819124388720403407047718173906473939807822077534446640670448445878220879878351739240379041478789514218982421408594403853834945940668139052979450210292056991884860346336645492892192939424068384564493134220629898919316420136270895876523959334364108602088078302604862595122878112429472783760569160639764488864118339586971115336561944168185296455857360340699940699428551141543663599938175956937753165975214798260283226663673721130579793988254668360936953176228818577970754106627122204070157777739796482496346572470068993201358863683030502229197809937575036492396376776762629145287985370878403312793758108348833906870854935687868269975511168767309864326989889341118013677765750786545474577862314081908353648682746606900331942136454396589883794348271798169139839213071026702413851421370877336581226787468145906412945177727345891520448182246340719661063998708758330794616627711969319965916648499293895487710344616659393124043941078795645785666843719242731584961363426096295704495635978376050188723481125336166903101734265755499058615331419403225312802502690643558142186716161571581718286416096260539477389949185277399084560091695705896046035044032802505453385568346850805988208298475879035289640038875067922427525156571734036550859793766523520665756043742374935405687963472612129059654588968041748258575437788294692757614962534123385135294760899635992724593275020821026989633107922974208878089422044417625127452200987226562777682773786135988036313082185542360504575225834086114072758390011283232439009206824754004638644577962447450135945636798461206956503264526256569785438583721112501773322947817033936958685945796632229854365572692560007180515709825612084930699562337831218529244999969379566291243896406691703739963026961734255988495773039954695251881053623610385654253648184191087926448811262283572067291184509848285836785620750146302252006841091833111061414279566907668446696809456631034937022809386870798853250015197783460368469546944986498162735934573594687689943982717594984350502711763381261787377284390702273234678842597592199452869579797600735327590397278569045031064948220291661350546624579682616731224220796992055099094120631335701070715193767091750829637196009498525332403626474096893309718846938837819404956495032892672439283394247002787407604619669335772377532627547404033535632209986933196641984263807619777633218780899176545413891652861686913504890147900196729440174985504116941082659846839665997354135745353185888521854387241406519169244493580658748767024114741154237887808150233297803993365287938691424724540186600391922569649854379853330210041719732683629651424634219010389267116968214089122718539620144384651228954351866685133993737940452990891475222730200004052334839385230933082724234907862958821176586770556087506177519659538486523790530325753713779230931780202861444896600963798625566549946373961684746100550496840273142796022316743212523126215748549179736557505096535237550350712404862937604439344282279204220743333634347675505806925331726906815389149684163801376683899458376740636919889553533154994820451954932060579400670382141538033862017765766100197215474530659642839974310098661736638996416685582727264279013437393210925179752667392693319039092332650932134795690231211553052728961377331281015974432096444798922082392889218960726682035367377928886529650160855499394213545445011431538176185829773866070208572373841555486437073098289051075157774707502706221488183172285331538885159998111982698018986058367721738761527423585233884781817544731697178916585165963020286468888937626104367649019781403505149675765292803440220040948472863334744508867684772338042180995280389238958527674125321005427009359818091440029987365792801974509123865346429998149752824219152811336952671553193090244912961713632890964872839800385830350665823509782000412154856562181776865059392659473944502704773029762064973590824971158728300439344698056977805256432253091701971072174153307177856389894109716221956520903022864957522324863910971033726139729952616858427645020781795025362510800459621565228754742248933640127666288327739410951567155304328240802758469753655436128667466426891358589613967068108983311044338610113542868894734558354437274722334977960762625687805052099744405744902789971719415222822892045018023629441791331512954523814744190907748755529677105601762633809672616960900468049503749039172674370846259481863847429667855628001250308735235014898865144339137657008970051923890136701543411108520158513091608791155605603820260484419405734601196280108777056813375376124537580156680044445998973410223299850401028146791186054009138840999679836066141518419452341838234340716787115114479320330706611251068525914883474778426538840173300582187890886406502720134310403807612890421867386205652415395099769348081825964978151509957157792315639386341626244002689956982778342430302577414939926201384155507293755846962171327237510763275836394252265398061910132784787306172626065770849667230497375008688526375947552460529172182879795340132954298958003748900772659622759490547969313373460810456376509590383576294782948931238099744181087310824410728384096682869365179502328109430108810710482899905427212833564463123203326136982103038064311555363756913964303597054991079167278179987986811563001281711932155887844952677643443902283542620033745252767929116283800300216639881645413756660003324220236697911403036194774191329947524508577158258139868001256385277612102556085125001455180164626157593030509120662613430491664145130364465094128828001972607650809071371298872953539104005798821432676296487780672611817778542162545933282286949649682049304490699991799971873393407090839002292954830540418544630411260238750443672888075721738658120984404858667416335130349481559299383059284923268827899216932836410961351106441751622113241563625906540511315337346320669603929109037255137149732809634415144784807585683462335138445075256173118398967532054319377801829440364061167485664462046064062133304526657795812358289640076881042585906908716872390448067030117394458516532963734141174715120751163240849409376274656216951270160442096980929126578127299174346605784044229314233556675710832455734257960983375886467320680377124881898866789929214625197409090523529216717822522817989030356533539325835165454163753251130036578087710509104326307386735264373029657168963605705256160315008861343091650329361807741049456774553124741798843776226497763166472010991365109371962235368095670347005407991204446752887933607386208378288663090525214312261188627700680226790928958278567209733436671381132684186044751773674741491976564638546227700562476120261339052062339610712171600151498133191472394214982701707746917382064757605130822613095996332542881167069259828908593076685281271358657688416588327519604311006942062982968699043967317509092441388215015095935677579023525515508410487907329705930547297476962354869586666539196677810784701088234492778757179022817827008220408712565473975881100428045288607862594356938038440245213770796151105834665205620563167603002714584394487191240836293312601919863319336026277672717242543816101847314542590071899049463349758712247678102732172844636437169162547255260081461809484211337680663035824723811668862782207627097770763747210785057017210114208204140640266985374572271855277714229034370406744151729440286836493574917459504013353109894561110054036652994552152287780740212977022335257186383517006052135387441570588130920531181456606162298060321684185627668715150930542815405461757674792959406932628675510268527188016045232653677562351136725211443943900794783677530582604549715985208920041988564620982608018149934934710030111632849821259537794183351349128510944366629719648809971453681891999045696814552665704276676116180539468525007405862233844273108179267858712652996629762743757623018785305003012929290231163854968187966167909889201508046307891280395654951655433518972835810547684255980723400078988939400009742454108707714778750643912862109469625437094749209629307479924205110130473787669299964977256184296305065517887240931842925996455704349565681453436712221293505397304498986610574454389539232344063572868580400391792779648388647957764581667339811961653061887964966232549384525391520529857030662956670816491786639201194646939090388668692747376746473461392387139550943518538770744462707296722983869767082275212586914641695543149637331400359003614970280608214237460934132386265413305571158301250193044825281669348505027788137419546820383547573715503830330715386479979598174817693363794105067703866859095087589754111235579853900328658753344113312397839139781229570459684764878230766682321720612635487442598461875366799883454484483088142559560062314521729871326254569468481462058530127168046510393810701309000393983077515911402553692770896552613751779512270052646663799220558970673569174993304755789104047080406173973684390418260150956645446895695377224558348462401305038182674158431562925003439761960122201352481368947964430220321237629078655667743018839766836162720162577376173614331907552084560312749120202893146453788061893390700546781769004873640872419091418585500192513046489734357672196985909256112869233812533325637029822210625519151341777458658611341733346962517099769245667328536995756290921050001016124123334209659544835573956826138876456184149391723111082900492379712797071274322758073556868014133379688298922487616577799839749828158680249573614414708369282708802719676020425684661302527547560443528910146627390296252567404376405963227944645134856179738889415780347602237630557765455850533022629288508929987179727559652959613533497548525156903581035179404001098293319248795613823882865342155389664119257420424646687145452821993357515774191506706846108135694514137719135510074211031978354294908030582584316648738889564186404771678761651766930907627957707568620554480701167283589865107093360247188673285227783629685063187815926438451225429639056614191161975966156115349781675383275848085456316947229514706429736259390543586527387605145241801096634992377709942160181695083341235956635688703109392610867464128612186718280374818738832142554418408155468841295606284606624430129783936177956347337070822837785871817511285188565685815389987241438737813000777732370343348443349128431289966665254451707080790468874228903191853477513238166745880581294291846833211695738061066742199677582905141148792508731326251648294490787769846888860136584919148130255600671815815164908549164172927296423982190608272206222105947280284065061001470103085416801978787855585290569024879431383061343777509123952089199946686828740566221567930410648476100541690677913304367379980317536925084441613164846561519109651513705166017236397141501709235275821942559512785494629951610196360966452725030200162560618691437711950526454359543374377654212833870848084694177052702870604301061478730299911051598709291729649725696229014786009533225506582585928785977670440511269086310320040122933799729286666741970791548690458840087179140302955381309158593939638439132516104970473652861672175523934564888099458507787921263450386872882905054891898774391162421558952480492546708750375812635664248741509498744924970739325321569084082059794767889988884291709184105523765317684699193652274352825654125267837667585916794627093326872016319656176266406798076327109943702627256413068012814828271829027070841522673006682328850965763695220641745465168919139686975588203667096106284499021368168295230754712001778113406262807071383222030861182768495251453788284367652489822788120273868145810711575334739648416637632340000655327759080635124016224273130190764632429550974445488324523124780928612974054353006896592124368529109463733682255846622135982214742217689009351096438301307761269429820801722533287718324520640719227813101998083905904914457458577254301735448461360406761733767916205517063145827683633719949892730471283190978017285038387835596741518999336944793047778875585620106081435878660991225212868123315814865492997068952003297886703670652590583619616725435597528321548696704471128049514666783337803672644442724580183917566740395639579234152549868643621678203055930073695077287886050274734926489184777032821131759973298323111893636056424301727442595307417849858006269864819315499009974357536154186979018778651736778636875834420768107449712014285909259437191983292566702278991049928866789040891694921165830925829908877139423788700221502797955063671057632703954776219390238484797819862948837576471502782299258407032146550716812607982471103323600244617221819144160984280129654594624259042374160608389045639392167846473089101039649655401504217671154322934838350864558724991525758171418122580739891181871970042013963260948106152493016170688338425017678576568429113687340316764193526861784275660133857289794616162139076546430758884941125453100122872487550347526147055758471542543811498187813167446665658696304805833178068563238835193938434599554207849336489324941779844610737066391938654115081202453564995799204953448589870528583482875994524712931366742495064287631142269295041532733232713621758023998280289500963192363919854094164633740840996668107428917877414316944071041107677985572442089268988187738233501314484035402208875006343979767114552865875818941746426430261380639800046916154026519844811879510145262359434644600069074430503651983877446037773779418281785694913998632685482636595456872763610499306840693264012719295303217956189269744567474152264339599553125180463176546386553490738829366664214041506543929805756635575614527442457247562501199189490470530896504042127824481159067904117621438737015819061495795027876030713319303272860615799785450734904569222626619045576042008674317499305830463626367772543216445277656936752357523588379993868072592518475549511860795993458440902812695360841781553822576292187369847441261340408579427266158318506758165128088344690360485112537317119758278216591311492073051882978097613426877002616146523035778061699687770472972147363630019751902780466946356690031362816704077580916877291488076613003600235675943312022114268046739596844675053456213979495862683029385594962630662543104528628969500890433084757550546629221338851551989892430567063992869135514439946995417301827891121011070736306785524198721029239101830470324830126665641311980122608139575298458867251856681175243859137030548203581852752767567441254114090322455932842464645395783182461569173361367669331281960637257245173270653450994804472807400227743549262098434260218485499617952291368904888738779759615249889022877620956612305050266394417888101240630906717613665092951717748109685157234228349421621793661666866319974927989372905726596168317324275269730457821496333347209800581193483381597635103616916079062917208418889947747675262428808088746679750046406866768628055073190342455111035759804775169614534166480642733503913953851921589874734619397075787835420479956197164924237965340847871036547968494855504966469072849445571056490761998744656130626204555868933171062126630317177101166842480854807215561802850892178218501025355228897767183747917937242610990740190086115248467830258376815516453973217188735558548439337588785632504735731996596170500135697438629783806047839922026619996217173294748035950814749384294591454412455147220034751312182407307752513206530275465477592776986750963923330708496748217409468438147023468688661644426952432371568484144768662897204712118326889336093208552871272072712822715692826821679782740588442785695771675292335450455076278597041819457527397079749905708270999303184280019816714607516787990645957210265562867664094957012749371566219977311779208243563996213819026042037014855405048456936842336601286521003184954631113981959741766746314049826829682458125684624356442251219213898831325269856557675389111498799915196647440574588505818976413506285445221537375185121012172803583528140382746529015335058704500826709098726432017348516271312057509328104128107717839991286562132605651908624759839994341947597537310979685673898568223594789522612904360125014937476096149247496159769702908765772955045471195320799919658556800345335392724749910208761263750865520983360820493023981757713864197163617809104943560123063288916168334513912474882948117232396581121873855684899204749390597238640435461312970900123404095045045054919493182634215181850570323405363557766540589566952171875340480519721529296863097074995700098695612976223527253461192847870275331757349337587068178755841265389747020436261951480522887572999300340439553637808668186987583879531518377858007534776262033876026149431601564534260382317915362850413317445343831161860360837634094128422577584371803122590313471939965664043061868349012584363268622169474534528627133365574517166829980448786255664503239373669543724162311849816602256274833027256112740713849609681667096387714650736306438712626049540691611213318455129731705319070607082931954076104067976091761902364258630944861116931263609687445936173492171646828916751030483343833740166430465433342261166654708674701233040509338457673039115007426436862869592995738344994465217422922758076923484302926243408476763836756933568722266213114897278976037471164811347633364542107243898982155430481558636139728186506121794831452338373925640693093457745726865388658416584622573303374269371779733488539829362750588201135735234826752429674785429835124656059194813528760517191788641945654931711734006990149971648883893278178449392598773491954331490647411002685939683869136203362764748839831696546176264650747832366529901973479493251463550433886061879648990442035332782681775877477723793616274540915694946359766200826133191808285568533117689816483762446768324325172514618740282122736552045650032368920597172717285918002468274010036952192860754923842603870477915633165502644902990507418878581568925999591980768862193261139482742059956809237932793774826417650043381250613321110608425216909881495530378433951677672368186551271388538157931530542743781862117878525397148612166982547842149550390556525176747396723737349790731595128510918534744146774986575339936444273303380689749938569896218002119875060861450468973254661358362315523706213457983468633598693590021168819411859687740172509521493214413797599910247513057068502043821854644010304584128821430700465252295388134993176238287101650397753832677200853993954596764056337103139259183828359857571079819832256773504851438344614421979437587086691771201334585365311623929285919441801076596312086311280113931822659832716145049481330085235271489508905520505458705549998529791821590335405905945409844625246329317777731823900391572837989593725716199697772787186611578227294963085060749365617452679876617472041566903281223761090421366552619155219067473933150727912728182413698162384064012214762261113161972304695874306703381563469127422669815014385837231674270917778096546207323442168328878433076107675741084332759601017830158486998682837986769943478867583568694410344947622158117987468319572456727866385561277710933671455201823812905820487792509151402035150383412356337377113542582509467958217860821960436981165429148845052709050695529084236916878102685920439076260445244111658752463773906723355345719168899711868905189349249981149372705270426826947534192142953577098182721069897729330178614657343197321787436436593881656882909854160448743772005647636382323560296040312967417087043477264972324668323624154827333638725798893613622391926277427566725633551749532083172317281542078938679687414563166636162309080576707766748423736578461271367183856654813179017945685140180257129158854044050786364557915655161968730012707202853763897504272331338798475433911178391712118025273591568229105734007392056103772200344761777714774819126283991576904221560685013614319402334304138312191645173548562358456368955473696137003872534697221688249003524996801053540061259736368101430441216175090577403753553125057207695129523737309880428296526841574336033671418516097620063396718478021818341730586963395261758493501675390493307502467525330719609682752808432455366822284209323505215801594526877096388101485203837758053380474120536325289145007584966516204528038383598646489922255228769727077232561234906613426568752569032708903289802391512493025966140361030281023370864135436271529725041524621935618756080597147906110327398995910702368634468241512267477587660492641937688354709874411480340028230855709933659394986924459516220434413021437101547182493961168388548508448548698960239471285975605050326757442348881171810950697957624429657172501013619787369440758162650783640494876916983592528262527350230315851763095378782250665367099153448625660086643020220275200664927225045455543988230034883856786223320462236653997095832300025797992826682960106836887873713420891864821256561622930317687937845454158767833371842923123867309409274079023848455632882336721262582710119418103205142395905775832981139149629481641392833692555524217989904959148440566148255172198479708429253565427377575263312380379579213066141471953589468796066499281599236891049873968052453632044667870558589903553800400952308889072284472420763743200776540912338301382176626939009980474430992023699729495909688026616962778530701660104670531292440504329435182255708045448669689215249845246397177024612550506149670778307044703416439820576390089077867086785883315998436377791829915916713469518161578750605457618327262846923134290913623447197282783808468555875728576045070391141742154661816696533118547975489679884405693533420120252694327370895427191752708407711687283617117106318240481054928020010882451766347504221213613984814394289142291011048345231722399577261252785099719096204882855039556949426013702144425485524791833491092013547642647650117766744274790134947376539594921778176335055071254821456375317866066388401471166304033778059269845616287258589163687770103881392500133574445781197868830997212937528407139761752984354444208688978159370137345227770974114584371539924189964605493426645781115642235368634509723356515211672688336748074845885101597099023246533099201469913790090082943315147527182197021095521610319196276664462599326282393512620506858247395609088216457703439067928043498424766016815155010433940991675380110067399375175558640582016622129288043143850513788307959675317994633092542752741100626483841449551889976000614150281503802929918726892291189664823896568707089008080596724390915195539748608959046502536186173066290801339126919680044985425381121262574518780531439132991478451675102626929182272132307883590756364521213612734113467057020020817180235108122861242042247669831683017449849910600199317003955931466842796659420837812928549015095695082783236348774315214468674356840860176166690081789731245643151729826384243061784118798932300636902492502728959562392752757618643049433263697554001850735549360528762596837110255787801690843162720912074688893461317205615427444389178099118139398765155659891092554660437740418055032025840930113792944781667547129082424213589375763792482731778663666792323403033906924391539059884144037036583854441183463159979516669556885993567967375852767657867857404932565448389481419296482782158111709208524161908437949167625156489752984681825158774327233770465604722902723888124966707076549332956193550257491007005504456620441685381739272961181617744916984060927511753605539714006617963897188745174195728915130697314009966208101468712603645033325961857413485436555219849186988404781818994668304116067087983753691901010738122581185243108089041046359629572165193900509040272373133828665704502335441236653621831590028935169430238129526551696996813330841545033160483442645354925087394765677422418050731170581919310067561892747279784448028025219992329839691349361959594872476347804105994352783497754534310797138760266177367368544704919193052067700061029280854194904110381577454878237045176947586665088715218641223802014491064569661435653066633944136138135840754652674802064006916407230720232684232809022544191957546134787185654983701089565202892493107838582510968015174281389545222577194706814509977554334112087640838684969380117567102925736596310573028039430881986396911192555018179925000083267598864561515190461741206189559700551889599307811963322623340318431371339616765857588281613115272922190146411771581974604537166672256406240841320177713676143084444052656201805768629602965360731796333282991573751084564943692987462699139822990230931569833657137682972222412294351126712077795563290029752134042517808280391443078527153295287870483055598722560526480846108982998238349983128070560843772742430973995260422768735110785812079453632305396240957282941347901860096226034615557024113801897593006086858490766275215646103235964303635289842237663957187475976319573039397812244469363626916369368293578483199213464793817211089437566264918898858567008990591436182409671807104339651375064385130996577533865577472207659309490244715996265824041303581595767837456833729426582528845950819039069560879599411205515276573519193483369981926490458887370773385583286395509097273751159049544464327431699269853842308931319471195865882417700390980040863112204446638488511427532788852110203729620205908893930649618538863433980106269524775054989411588344501806081462614593658350559613439237617007041386264659744851076027936833466839768028792078382876876849936031390040156658641679310020459830487645568518409392123563494015695113204741192924846214970424922922467962663514404340147567964037076559363645719179451891712127614700617526831822960529139323389780777584704688503262577342624771733782955534077333352950399700848126950610389488848044922359034929530511268388114530970530658638306121883803449839875695890045681854556139047854943104043512255175391160567143324238976607410612959806045377098938703446364736627054414072952108963270347697070681080279338218616993775132404529952304736956468827695036020543462377393219710415272607511023396660036702333441738706205714377576152405194251635363808716534305316588843149211569635380635869988935607587476691148124738678143860418667498588182573242636453893819226388276349624913748088849647053373475927402490539308132736680528371604564640160519667428543207795812639700514194405492776114302677841523370052328795817499862924067524307005456352138419500605825550615519344124869600966224375699091346563959686515178402525134094984304383937397657491461520934594580019671823263959266291442981256823981930164982081782701677191058796525597063291778841772884920683471464114501632380463059784974625465238610887257806935317523317245411930699485684366702074191910281625859396601747546894671054319401042638791432815384636969539817039282379204118939540077826310695021930799680963190077657214999623982338070967440586927812011878930035153424178491214714117241365132853869815605264603138845053070577267529416334089427729226372302951239649904860284712123968648860099427641278827245656100638356981927562683153466749775039651598141081633747790197267937862656853511094878455657235477569731470295789276539730485522995472122813666609436193300170831629968310124991821561362667041141420690013969146118777042710660648709453045437690818690677544485037625190610074246473190000613448042898307266149236313815336867858932252155907530292969532280492998046551292485009148002912442642888179787182668485043435011704478215555608711352066619508202983754999847571334557686126785924779871308398051399681831105028086207625767603711696421783017763520561089158105356683186862087315214522323724491018637484158208433864171053439113800922203646270587914471773513148954731515804060338448925429399867494980374758389666229287192634528442188351202646071728266270251253026025814672787364895670597017616728884355584256577735087917441777700198146998282770100048920887135457261582182227221608932183510932730146732671312719641580322773745857961817879636786565368263673837667516332542264509730532916368765349474436833685841861954414407805448430676356785427426790796168526198758683496183574751183917765378434275173632009106430136297922753553491982684239810461331305021868643382849117157664159191267415433349666427404136503364683222300839759190460968263591408482030112419191532718633819662620054694897383185966437488112384280219796662334664750020171966867412964340275719733696835205716926762300174262849400392117086727527986017808296060646278857111684617720212873503976351257248412883326599971350201699290194762245199477419032229403205429987699535337058315663730616524495754069422990992191203962560235617897378356141401182984595976561859916194761073623459188438628590416982095957143813586583269331381789919605240325342786688099431710750869331578250063075009449517590712430044268210351765850835157868028893113479028395020282350152183938077635048287758078757303997447992240061702536616690711630051716101541344232623694619209836726790363601052168775569757948554224927673446281726487594156925766504554934971668997527162750196702026918920183238074054217426856209924744348016672905033200078818647075174556626650073355286252571742803503538097243280027629705511537285498489492361504421332250709704409845044986390571887071004858010844391860630882555536313883070401941445217000137691635116953203463033641679985576505016283199036529056934732977277888609418400595285451134429302107034586818846594400477393279878274021066205578715872220516528717027141841223414762100445529481019208204699708188744732779412024254255127378069325122229340216497826220393277914625797502176437240788590126502418354327298570752026690896825400013989638637135766234791129091065601036582124534295815537309732324744856219941586056716536028870979414641006158876284076423978289982900772826468410111037106989602883926024703941446356081652554390005417820575535229848792394705890458009345135219844091350646709796978922123776852726002906860964020130571891258907793386286827113052868792654156179910215333936726719364034477145677152652516349077691697055931560907290050179067593574730274945274046813362399959094337610271378003563149357420702288301150722154855141699952745484611294425745059857043383641041881412599208515906339288140346918764420503762207487402239827880164939186156198790026018717008173231243649088531725727598842947323907567542980596709957478803071154680316283344046380210542512316014119944834530026164029493933809314778831217280172293360895069694615864214448566842816971379050873011120697153022402687642218488799501847781908330513861495989629049130643871003364391317221444271551209361789336883232398025408684804940427362312599586971732609034207980324836316893087564430643090124361287311137587731703160877786459336269355252509662654914356725762177262380171070541799046499506986277704562096320942381363035940229412060051941736278756348745884714636187675575397754691305702308388846313215965672966395737759141057890492632460392804832397343927395728330285536780754139241953295284739214562191350474207259197457833990638824940721392354087420531920781677069594438130042832433558558774037586810979762511628301481562377200243388764046274066269709995739855870425075942127518189904456853841969834897362881094020107715854369449989154058655794891569091472724907496059420556735567189482412251909106751564755074809891415450508989472176986613179716443174866513894011168674886748331751687785390860087974983576197159130484045421201100399886897059974250180598968029149555547601473976489772082011349362991052556332526179431025303911331686907228716577518621071874715211003543770227119623269921475465112413924046204054713821201267091015283461325362035384519098587290107441930307072809956310084472094056378862628521649032358861568618791982244977112918972083429176617997667115425884755286271630877573035912476279175226298342949509853715896277533419390568905630600102607353248485722530829615017189122773185504410911071106022806665198318520278019443716027945828138701927963022571912039062828051352675435794073052179405096231021378953405487917008571517618768665138756413475091221152898615609954115344361776595532514473751832494703557328358758234494230591644016695770032057791470939536485005072996694252644536928561464093575817448908357123398347620932844778332063299096132003578472186021214402124606757944136622143419844315854375120585713856763808551231035027834760109373770584240511756267009487109135718173523040156003522660114345625140407992978101065879267515424071593420186156896893691530612464414400179724940448604742344181912372000577603074934026951343083168864630505778163500331366300725492355783937755652795421631108393078702644825474591351147304248082922827382548526995556062705727622675771146975463528467820998372566804168963621346571693671442541032323095336282040299322259726571861802757389782004063529064489223530084216797645709339456828556678344838896408672360313654005753645274070772903253117453288488199984434227818075450017024579574991341727582225070172670490502688213473265866634817701829267186424991276688906606937707814141950806671479693304982327420184461789458383038989819731301076080908401394449631921466509674574521235501773974631434705289050994008322485375590400422654904419882591162658754540611494234826622588330921647645381615930871154109199782541192262776290629496907491664350172135068438454769843524700568521021748429332430721144579032399047527493558714574181649914906570199668031119854129798375217190921742398842323035137119025217766650269368293789853043276396816820914560827389171976494907831485483412903359112978378787368283836997358699213356670260397207627120851359273106204118905197207271070383787475127069595011318953585385674876860971545159751536598307409992574547509207123808027736740922156134636810672605877129138458045482610951901024833834807607595371402526334285646996235151398063339147929004743627877908711966698108064784144972554560664481792516259035431732124401904546174421963132903074144081534756131855137540492809284695094261551265748526059553462194942140659234097909413239617487350129834571829973901174051541972139862674560661796049942991498155193081242121187071859442913188480034643277715621731920254832001661431166574822357406054333842883809307897807103992999468442262900054590748863933726842564229917372381126256386547075067878320952872616986360421661716387299693290345903180616957943851530846396896024027660904899364650303507712097373600452461547189525952639938549031587373017315553913280011727345526441555959779650940177297280989900509141645048218389212475028447774635220000679000527394862781868860535547114823501051257049901376197237788896617856076091522854447290910828442197421281765542652223135627211309340947242924824169257325066261875842307705128331187660921187049370835349432199558947155727406213699206261207618430936458901868281171825129618293594418171329223458277813053352000444929333698462995711844989060274732476432617122553344320210313718558694115718476896550616468946352884035058161059379477900584611019939568974180556160090500529994389626458436543348038806909670474090095228164482961124285729169321350427356486846016240749580272616279546730515967429544258585311494848224524827458964738406892567300188227158343126288072066476558616497081257069373585465226205663421190278195738493107048319649864984188278084343890939840774027860799904915861956898262302199501206880225963352311132793048374338279546699837482133681468847367531051242162388038685218094817820326032999652806404808452848749218273308050015665075507215270244383060250133561374160466835390542874386773620527243574970913200110578542677222879251945279078017775171737599444512951661633213796851142139733284794164016658197511726440887750543704142215135138550083413189993112135092054332537561406571072534332790431315911851168692746407666433486525130242651229740173816963805861605743784890411160111980612599508247535879387237024088185495538198826435251404322162979123158657606563769168388339762318675373566595211652528817360361301282712352714765147160665959981258902407062699825938709652273078258423147540752778087197267389588480036713026786367669994871335430814242792956634989037460232972742113254275620931984429027380746155333686802519133462175170385724551103388725295089120828480573443447817303390550428018519015264048802604084487165094441814562923016471795405705640601171092838749642125309544531722370612036974885185420117366440025114447655757958940094018299818442661273755553054073962074873972942706233484408738828991953702652668585107336788143273206685824560183360970507814829646472891176762882291329853229593726426891852199440360973548422231627510754085145998399720540954019888690503297783842430272619650853471756308544802115422310240243817412942812562190971197056587057878976905683300787336797750630260457140366003051330289444245327540917871155399056875224305617884104248652665171060717285125684028281896829552052591762698269631429249542545473127586506593349954758564993570157038950863310498890378283240423896836395232397029688128182114775556512033300192953072750526381714509052079998467106224144070088972329301256382856115517766222656538076128632787412408200506253530423176957393958968136975043612631791476097554926578092732732876809495256302351013485587096450085435309850790526599626254256175457221028026944661419789211947275642717176948356263923592333272635876751261005319787326762237262595040645489593139206403056629913944278468652180978547980977465821947982499010968281417778630347544569573599748577065016001793961015945698868220333843085820263388275955049721194471995322690088505197343667938809246166488383703653625606724244530676090584617666521262071464620155368577053897090516742528884866200005123346485253011720080244883390719210094338039216529159227240742708987548890904195082650483120006142433375705442498706884362261675173719469936642031303381415711219951944392288371906903669279625054432217484010625461827660649444902858416424648624756561965347886733580373885258623158976105681915922601133889035188684967357372520409242661890103447162395091350648437309540588093349100476731486240762012648624708068377768829398772315215207843092094951010555019298222009257446827442745897205949706243230223431453124328474675775036483974106066254392110627789767408527240354875228241230544333339330322816770375932467732600381856092633177404893185138770178159265679874667566915865814618651918676672574782917180296100091593659437244213392978137129921931570179778222446609156183526221026693811232341510745326832489345916731897099259912540775265343800277793738202912798649793725834118866686363579851080166455490435782230578085006469929440142357424706472994672397966025580939310830437608588380754174114395039611885128726009342262588015492878353151294442874510952846315495827878418910468952405661041774660746295048839216355541460592423503378143442677229919806610993320258496523171897657326671335087597345750449540508569308254630320584887855818353501083148566458674469279210287389729218738651699416172986503840309842112306659984366537507572760844163604298335494561298633665943072696326925726127899425427696580563529451400116847449397361238315811114279080776571620200599933231007421127121157357122023160216877163323596596660270426905889989376522387295880030273588926975405003934435293087204603282849799558099622709996042049334809318109610408707764558160474393796077208791228802021268537483445351476930288739012465955167956673062856791524814274220189164378563381296614764556838753951384771375871338251113232318809793875129294977442411091538034262291636901324348169849394559100239647464536157187498974429975452755472544488439911358321046537307984537435517595144792104288421041176357052498827038076862832025599233596581489118858615908770107287522250917184911575237245238507951512891433127170825841913143254029181354611630190639747081846611052262352253751591945605605407514594583446609992120285060411642954670706576850234677328336252525230528969472201308523838760486877534295102298951553979273782476216183382676300186333903024403468060257175335502093079412058585202618638742174843069745906388426134755020208140922280791408476202880451490210939350471360896759607479410530055102409224323180280754161752474311443773133323464971425465831905623573116874880833429282404123919187006786465117486320662173390464589751423719041983626582810230326617640423816951519565601319167714778800339474544781924524483998424988350884023677353006482676748518699271745708955025445506812582034804329222786092608837505627010957043757965051458666190501975196617938546725484053885979990625185134702710485330480677633533868950947002496257342350514871829832841665932963376471790660624606521486961348521428304511113628686547968180800884157458701149366520271410435138985320384141912260771953507627921468968750369884494969017145487921462574498775747655203423208501567466400206675837861944421523005594452408723637842429591543911549433804061865750165031265745146105566375883325854134479076491352590475779019591770508483376120661327638334552645174773053867288395678934652527235421951578323912775989130973424827871430649227105400557995810630332777682267775295515247262553739223684771796115284757635636365682116103511698747096095851832135416928206503853871358743595562399289923585020455787461652247687571859635517089297021864151517714897067532847459198380344565212638554492051594431060798331491492595371999573523092712591372350288478324319345957777879251419055079606272918333653344770409452357844443718821675332869142391308666881679155988673939111082829236450434881520868970681975577982327871249598131129550510355759190978356326936656534089801273769662364258985666461392437986303985537986982136056493806126344287711550511517670631573870200606020749590976183268406738593877476058810202468447895021546313367120680844436979575706124669018241961356081374993846835744915532169453636406108023644036173745297872224468887496955069294984987963277522490204334528624678875251593574344451307726553959683449271954712334601546672824869439107492884887061851635621678909755199406679783765618742099153773618987087057239926396250110044290098481557096184972733994968421169780565661502568309214922564329991731001061553148891929760177090224379239122547266289338613237656538607838359989884145507589229650176841468780838387166432034289917341501149347925964028942673008568998594316144095853901000376596993568119590696011222662829832244290529646914592715656532644482227492611860767665070158326321009776391122206685883238044097717105496468587641021973683494369114078042797251309634866864348838356703424380413201397259602520315890723048339167042044701456612433614271928109361354160604342943481484987046046336487726181885496844471627078392564802856564307535623455212667182582955757524312150593219982067637475036954299123522408644087181276474529878634508850371439496165419523683075484094074839221341757898274339984474043388761800260132869063835532677544456332535262727864626504201806576753509933590646930897785416377609383733143461676437952409838511900803808097643141843814649242296181133578246972998208053253566427159434034076119491375600863927021877738803013292059171681107468571493244082043519161583933077766278955891383517039786075188790625896429888141151407828486284196191015100328527510758768775829984001546316661017331886352554961049352267727762823558642481926221159553779782082022729013687911162124947296472987134601457869837375535851539898414762045571971645275453368321552756821908116700475326973397381446241284225297305682659764105517772625537119362630931086810914538534030491960722614471501022140885866972477295098275997607188353357531288238912562118397048565452981502761843348737336654962160129910677640100820436129181408225462707369578033120838850402010010156506802421480178779982395931138218796293485897349567696574209463059963080880077248726953168933247779817537135351729497497760011602749825151466965090759641498785028180821185794778809399751762540579248500096156099685424588577353784123020396493412779987174345788446098733556952954847844902405865073809280913666535836079492515971605371008792291347288965949626252986417526593788452713558092676982187285125775037699227903176950411809457768661344658834049107869228609291713096088816238268114160865973913898440121120488879664869181202288200216934936747719694092682532193246263634122713807865159503166800056740556500164000932313681623859844028692607717396277752884777902616852728430452402776805258287951395951902077997336887303578941847922933421051217026604243295443652600754311042184709637256220546580619934197405878177240763226160575502495208594359931737349733262362020155580091321429486970616029908427503012069627149191797430708735182296998353162046346548735600067157332972449593256953180863100414042293268396747005900849865216999247867734926063373968846452537009013046561175657697665489640386349833326916417288408132910803334218058616570490969101381819034959215807944071006834162846045900075940385895161587109992130816907763058228550200568497854455598566731929681474653838154519188719225413054364893653804206818898524868305596075525868379992118898104116156449585082262468744520921304925013420878939720216382265013829553449466324894454901523902432412115059390111349582455425247861092510207805104737897784810642327341936686131550524190618648132877521789420296872183477445307589496061772934736656538861696926181140186256472921479594961040102387611360624401003582953500915085002773608417469747494756409146070656856984995894050896932119093041293402517273404349746418292060444460609825136043284211968333430623478122469452642386631943114479576715895496856573901274165427041122644335957035636362388175337930856163008019209372233576471840296534092062671983854491008950077480992739834567207974216151469978155902095226469728171407039640489359090848034646184335199542683395571737209298932043204187306417892000095216460699235615947542124301115910182818664276362504115904375496111050679014496508290899686528116536512701051701387092888391836500863856226986991551266449246585591118949307523933264005641136979188735684291463814775923245430507558136567505618718190318847062116328815525652861929613191885428657307908596191694346285679256188022609851943141265294358230083351952663741574262573606894646090736891973331563188274041159892833138867279214617819273825953225049373036057165693063506236952774318503173265147244868073567896214703150737097048941089861159091149018267266554050954205646190522723499783202384572088811121505130218220721018807913110976385446846745987912759287663632809515336323244852621320194946883213207831761764454338891819929249226818242575180514269935969007726366369875065753077116125861882885866467488388816508259442767603993276287145994042000285852340030171096515133338259700065020920221815715167439484072556858730123426849996153457047061673758231118259035874991214292563830539025657471307542992619400636641198128901290692685235473645406104968603543210057862828501941169211036111310940929638163700756546493945356594752858611385430207867990486925479473326371886853426378138262839469291640030541818980002629982006462921848352387764414445602833860273154823043561396929630490387874900670614209461906133327487526901861704342822104089985677358867926286553018145645623169509229510413379851051735853436850809327573775667074247370951563161893288141129692965288034734322902393128207742593455513170221404829688989753122582297914325187266513391485407249542914593408086092561971203460669745359373764311850402961588751590186009621733206314670524092629633837772868834779528328211468728737923241059755917350917517394854795287465461500119884476654016542473072603771877329408838655081234136772458357663388607906905386593993782453563578635000555174135151343635528390671029640689543807689462206846465274891418618432209222659695910728881881308628123515925250219410324349060212898931993184285416208069613621119778809526981952659395366407629502069621140214422096247222606810856862975364037086685793641787376843012059022045257610340642307463603116598125192328571786711254314163960212420074661924664107184699807887403525920189706077893612561420353699273152539823559557518055154495915812693548394139802553752978239066720703723064934184595461776845618248011566088536795750163171028235253759427695256507621597304636880496442899098747371990603198466979347908572760478189721802171668547686270117693058037073905201212482054329758713911278829611452700656460045791466097823226653871197757869932746630511382377217369337366952950063418132875758590433112708014663398990960821608830892741229303867970354482369341625342438369477805729734356333742736228665176344877101534241778212770012764348796701818249158888065045539753029602805993615031184201437059672152999281040160430005534271699090017816831385621458414547678557159607956221442142070738462976787136212314577410337650254032218766786183275556266471672811921565463213308882982841733717576835873640725097410506578572254016110196999953555689443450639109364565939435848108311462943272146911053732645136432096834259822862691943870815205923850497540113446187954038922011354830751238331731507769801506540082577148295760981203012058828954018075087809545135122107938550593700373994864977914861015245258363323107271549236999784281540414266848072799177528178649904836454900777927143066844948837143116530819711074967149435384827817729740548161236249732539452237646134790806357695670371349238721960873127658231255839635947771656759035652206580874643110665842124973499737580384452128939883953119833136535824667180811660705875309360140173250386491315101369489745755162738153761042609487109209291398272745026488493787937041285939802179907331669690160713994331018808012317674655785104974757288175462821347166990879639958022977677254398361304588730036795899143400598727950619744490413434777029933109001706750467627253611981340647108123416046601517542130660741328721953788725385932284650432155761847676922401089807969367698791830605754455490613418320972133825616010447700725293374651805252692292218346682804397102302826870491898710896091341773402768808433942434627234301109549515792225014185542539188511528189138856158063612425811834516484290343858502891225589098165089179591542446222420958784244538948492182862531094294183973339636980888676275724328450865553201386486213091544912994500983041270810145736765360265846076752489809165842620336105755043041560591183930732903667685757600853962967239769505856860315960555374824482758065281673757072236287515354585262542589313264753071050055385557771153576951769921758184149917370640614997835337158570619710974269253587610988033834084654640598463867546888316342265697149837361639698263142484224034715430300643657688133308590324605071473231487080268848811033318583940731265639872999946356356788175157940313259563045650638184254196369228665563149783105578447115139135631699628715152545745309871810561771243389174668492622612944309388963499908546216601091269243811695029110839543153481149397806394299242472493243466641115512618230698337118598762541306958433571741130901565290789979484211055946103988937017536582976859914714137183179124672349146655417220610215956790192689838642460969992550516144081176558887172366091468250952511332574526965779742443173676708032108794110823301418186532551905307122152652202103555338916497946608200815460353986348409918331739957509602713872687414927234408011036039472608504820049360612777326915454726805479742465455407065581354872952531164644355933171789076360843105074765872258704466794569346046848964983193757647792561118540758259639007506778693661056936519188973388570274685527614388807893400138020058966314927445879564056252499799749823517371599363221239087475415588989010067731728589545898898617065609733661927030086950412621374248193950624029548096550787885388149754525380512511908137085528352599120329818975576123952541299974131307122581808945780252186227057273947509306868456624203195411665759998724803606067430702623355979985721821228334662135037956288130508470251912142600377120360880007464512279194960914462288664088645197302710994905846379733619671068002220858041796906848402889520552968573579638108504831215797853307862477805064566145017317600006031824179273550926257752504865791265456779466579275568704920900583549565112536489951376160089649780845221858372383085562941651119621618943764868366187041973595894047149608669964646222976198994490987221767715101441598649626915691052150136699454443065690060244474334195551581811243108402570124271072909379577867687322593874695537933108417471806949761546022695177964179952948919281167935307227017065245972262863752367456585211196422457945539603302324365126290359045590049528938655838914063976598348058964174433363655849495035418069752781919651337221230612278885907232644397113826271571166235190772064419451578789783174352276460160409425614805208086226275606585181245803299683546179141789486213312050803409383522518353102748412145640196924735130512084240332259346968630419303602803139981551724068185123057026101052196431426369376997178427067980435446572906250219236848260648038830484526693839146996926931184658548308251448466362411012462911390206657851218640470443805168114559921857877863191929218637888172038403049225878820124833998176505319244418890719188359798166629021165899185191473893075207150846688459158169655512972806690981239899585834451167225844753058168606299342561311399997880393706850704777460961394713245338199117049082101425078127922178183845525919581191046422614548367769841047255397731495883534161002196694425376344655605997388884403364548955367558758016494613323414362203584027916532487766499750789414202428025831496757182393716460826753951471901909114617605956155813150549943193586787712083969299891740517391125233330556433994428684857819412861991081444903773748434186642928585260825497426594215630417709920456945555559738925813537814292807664237546323194306088583930638280202256554495939675102286961703071708593359288401879620394719894151268710875708465235553527074229139481840206108947156689069655455574672494692541605267526985716729479760302409221524558814830005590382800915966272088963303999066079839869159898780765814657926555641388121498409507072166949240394716750340449808149706585729599810908235439291746265088118015405909904598625036256990860078816456996954522659349903864272323809429468447329674443435363752727376474105205794586625837478618713175232989031896401984188817977968370492674825169028388067806986246751688846002259849870956974428516434542870438039662973949365009344499933432655233208096374279509338745066533502186269063317745673797516470127789229538995004523068902431327942178087656565224034930382857047688871022917185556117178322975646917953407909126731490620688335862683712782845438728037757645276189140953409703441823982584573896263640533654462154611156599202595838636233115324985618515714703498539137393717694029217884901565677881085489328471001250297237397647903890689494821810372608209165974588634209154631587921654534696886736941147647464696860694218414221633592600491755302014500923866721733300142169844046979487655479402076513967790996458454546284446859247841793480528254565043087299942400247728075002977016774152063682072390709616204850733782493939363298567586065652576774651885735323138037067715786418972861450289490233637750002493456407733933844483733215327076384813102578826118419485352950345717177670618300281138400692147972118647557499775129664540685744721484386704171859061912956263695464998433194763459840103394687529228040770436315919851651938494016096162455026731561819640837823434479254743915052029846075061830896586148384469067919974330871969420060582070222982085850673964807560248064693074342753533603839278482276108216921220992488716361860749677837724173811174265569984514714084367319636635012568380340794367690842051769786779356583143029524295322486104853135750412367158250022088072124225545414161804310720432698656460347557175733910808178272040031277052805780748948167410351569839548848048435419388755397319130180279116948143981872388096934333148571990269789895207635013026105468844927816624575862016602953651322050910441027158433377130465488359897403247254908580905435999365257617389803645156987292637072245348579951720961301230861685391685098613283465379650193192509747578016244159426788835534548187936746608781088598489631087545186490525512730513046753832407445021363488064514603319860403841903599897457201450540524074364090709539981186737034440975828982320250764837885913074261195326890581119166616698387472301965711165077328970051073721985355183824787785202546739884919103820934844101007033528804770095994503192637666751488344000147895952357355244809595146554768158096920247482872101945131412422960509728441920863885717084508637426894045649956095796418474455440247378366246468515292676307979749556578855305784741812302349999024232202905403319897215212692524733476913067876113056316265695439654898023277031302014514546792433498794296062708254105112122277054264504429721697990450122505142740585167589465501014950079044819083342863582654829741766341762314679008157587567296451015196189086235206627701448836081402799918767022143548020300033275967012845313259743988207642674823731430089644004616648715553053296383312316475644761677917032954572098637457006446069103382508167792487349442785112740610205143398890092443634669902663501839087827905879857634787384842677785458817439771807722117424628517164172182993819234848575300106219278758276426503576840036885329616503470698939916596069934404243049440379835172673908193501676842032166322087260851303213285682545287445518665650684644447294398855751891053153232278114221851003902199838520364834645834024995326360138077902269685407117328539990729024799583746483706837549548909887937387767144954272915658993638278052860048874211358845579450003360357318032707654443908358637748221635169253246319051681798892267651631441027707179967321886887320629995227424144349804920768508496670860439285302545980903530579374541298294362892160193582490275668041832634467269104006131433875524322587107117193286505528553513094628476463006449510378448583212710223394524862900488645476055503519276536786932243380261257675689437604841375011393123021454011887149470799216717285492440686672461920021260346430644572564648962839790720290034327020206073505698744798473254460758547717750231256111793826853375492659229261561388549561735120264335305331921660370180804885027503544320783611900536118129519518071976799612578402016751045170370278220045600716604364415859253368388974563818755745945909605628220998713915603641359019041845049760687923087348408307719804923345651673820495060014187503621130422978392201114739787173694037021062569533686882472297476004408791239235698547790156279919734233263339199736866015711608421333270818682954738989446980818222252478735503993821164998551854203186267673015815091116063719560219710218906823851268448086518611868187915398262094978507802503542324670654650651011903233869338749496143493997257443216116930278737503696019580515158311515008733563848372433937100146316675969372240921926184316161861698725656439149709331049165332462789246056780584983794817008247095577751929554170855687858870948746070445832747185518099740486162013541082205267056971452625051089970492835370724548543895333905961172894591886513991349581310164213233963696051171738291184187167826783052321743394514361260755838608788624562686919651380256767980021150520678841016931046131394562213415018718023608454210547872586015323300721739856856834504144217889917421426861864984691586212331414962604172870376172382034470866254322890232672412104154646838351125800655281267188507773645533244721631594519720749830100955066213408069923736890705791893455608646273412414505802005135682743238779251280852714799519370941493873567288480023630776628608608231959971306804872358830127437581714223021854472241951148675976033433952444626342311016120476126493307154553025423317548181476098005065504187040191707216971167616218811093945664134227227137793376928034143020021631806656986436633453984741282288256565995803116254791331834558518164449700747243907234933880844309885802145602399064427612535139544259819211576698158598013579519785824568047481078213849953520679186273522577616879050630647566374626075776720952777932875553980589115056637928374899285888708946463534225678038528731114828262065889277889894839587579967017657125732422164386719838370314409840598365356923547898488819122415143762392930888631597780523605197072596677174175040427162741582564826304471513535293811126199062591211553461801122164191821648835878571962151090587773354479500231557950757512784083829153432865374168716029917624131331003584843115779429952892250126423425584929871462141385578124979109925361973058118298822597831222801949686544882879243185542482634866232078101830424938625855646908795332799613042332131530393227097113287988809187388000453693299929444879699169592158184680535053052348373511278820050751225690120233133369698412145419048026082453700760017830780151905966137678100681503229668393264900590190452590575477274691232960964252956007568408152318437095011899606969689462510663074817823424970005384385734147136134086004541957436479321579206995467174313934022501383376884121081830349427892061334228259522140219542099729472046778498462163343304118008863437147422164833061300075378141256225753597141543191137620807764928030336849127837433669435818600647113076214581438502352267637601683942272015233988219816138576191777253802696618026056355061582201256612510255609805620287305822896820666106052991164352174627873028316928228208658096413635151895064294674294183569035816513720132818224834796240496850592142586532228143045737561959476063506291198726836383302804561588407922565245550693629993799843319873608960946905852675953390870458881695728330742348622037636100753286511484951910139903557670293660713611824105327003581865599483312270812490243060543876906402139008856069534632979760518490452657593414909499413168085767160436160583497243732671714807055481058957761030155204745187953575091147234401713444121472661582584470957430239311006580241832229068857361446104276141093832371310791296958800371589582730436651469587600075400116726894993070685352896844466282793854535850358338688095605930110803080292574946762593661936943156443977956035844733910283221930482862406267829915763549348739670032709911516687703936241464192160643593739241695827767548938001726902660917047177871957288145231319301678622319629974975823850057231809878105217893739684283573759822442891952475857414441431915130805703434091561270257723904642480905342888426061134472930437357569422267279789628386030651524072054155111416601087983898122813161219741363219130292398069376532010927987860533461255134633818652781735273369600482694517528709899085871824995145716506270914678493566478351447581958545566491418567051494617826907877848895853576690830276718976886512460005895863146695506499988584099236242236337527470176110676164653449056811022324354073380896970880823645138488251343258055354035641290873493676913001266013627998808587875340634748283324426397270183925457404600774747203111113257978672856740398203639036322953070456098929891313949242355372270182050807984117837376908416403235375020341442238500349205451311740445090751170290277636053852832400053546119993630085472371384999466499398730644546168249343231132681502947793938337475896279522350583409386275015676047604978272695221063935507809922869827777084726157621900943094586878084312666624766829048799635990012480034741709674589499311664211483868436809149161582816906944432106277482111254228891018830306508670166057974888272254878233325300433889154937465631064237821922738457094571413890081209453049337054986125377853592422120929949419386934384875504391666041382193052538272951764832227143054651366253475081229064939558772983259468162773410813364087732973042050938120033879121452117695926957473231611792486626288466080225178552526865465268582516896063448195674760141935696118490858719964603019351232412952672474123161610979433401347288828914413835338721253846566427925030578954122768109078388673999192738295307583468059807278234484520625601239794875431067330339362345530316664076481533995567709910323452129507128815684639360763284487387292773294611686315850054582026640482216982761854830509565167040209672808878882663252126716635235482103606484905242485233895924478106364133208802297740490686501068609728314886936880263057508230069436537710525698121585491857679835163289555692524160495173807284383496409602706130580996479576912581406155391164067283741238009133937795052594729904980070365082222200429330157203467482326375006654019872265985528366614133154875670054744810495174667115342883035961160681420541696937699272440182003997521624746286777299283342852096180514786471715076367798916184380039961078561817474058402267803879670234079449192693585126106611315217730966527542872153362808835923388915659739779090004669550575419766599671394257007051544685935567284306365175116654257628440963502011041691708401220873301284938302079434575600508274664995863884181800919369680509378523435887742795879718963617949553682507781734204623466652739254727319529345107087557407198650176989717270961431800453206986780749213277473590369531648130375898670808019331149766557845738266079350196239761646543592953435872257145167470481996144916213869285162069773322453087913402187573331711418986514810195924426802935083914651032854925578486972361920467356262694860137776002796239225455864850569128604234291482942661029258591547335639276488900315266972029392752164763347953615704381053240688690333231497855276646687608738217581012204439993932182831439275639941440861211343651314020515135374360104228672907636278895460790580585921886054290125920011190426528840196517844138699267476082657789670280190119047015517765385392143450723668144012928919332907376963360196278329890876674360680539296935081820929698876373676451006968774718179122771250417887265291051325340660070522268685432196690427760910519248828140360420701937440414107796281205715196120238724267431004853683420269277829261958372154324587794785971405265025207769477822354120626940283731128371912146799614758593502294976259022277216614931085634820695972781120503326772631378406608850128776427706407588887406780203738035691977262310041049305401314155867527429677882929123647456979217007696463738206437505474387209367498415289354412134390593449952605597842199618417586556640474646318421274211329549494405413012884149106718266523011984048764830339388389599462553389068115125598069988364732961955760170750307153205303398009604493210414146647971184142929798294472987378641673076688772765854183900072413896774186643243034438234286659684886821434367888235569878688164567540041722383051383527062187379449910543632447857376781773708857969235535908048056052029534848529834623057733503556678028083617596153045232214426759321613999905241644800410392085723110959395843012354975291488600976256875720532795109532079363382063371656354179728205000737558869979802396305711889519272348065212730922445306731224384583674457242889199129929530614829629682532234939909866654851783879231182008239473031419006566827927722650959282782596881859191905995313070707869095052624021945204905642008287125530995300474774706019700519547887470713615082562976474764927577847932011852616939317278249266211069820658660261694627517578348492492771292082060536217690527269624854819646552290674793853060625999768838655675423711820494566565687866100369597421295390696739319594805110644890370755903054089958270015939087495427258917156128213740005782548994394927960291972943236146788339869245172686668541297140254274242887100217032224457555790732014316851824682640772228979145443315692913695581091522301759111581631076022057673148733584652497122179806721176194973713506365009610660613987009698654532321397531600899194066083338496890849016452991426776640868600318911885141863301944469285792435837183481149653910648667583072261767245941877654522121251996096588007680172922677372964441736901800528261985911375926985602901710608973963507249177150403761315560435928271198246101085151295901732491297113085494641219231236054789036124403072989574674841851291544238151406477204785594217541319756970557135829492554084069892404913844670439419634732263124639791564269469857904792285556163465504206466242113804954840141518143228423657738127206537084446306865336888772784363876707034222665640088105667919630321579707966463956477883873622118533453575720562163486486378665552522846912513185664414758885937417190168564255359074914555767028618675887830901580042736320196960379706712859190588577871478963179723142540020229498006092325197392137162274427405080415964015565737937746111756601656168939364386289440898219092751931302447723665193225435250632389068349207230590165538353227133115346994290447411005071272514170157975862307139313045273080092565513735649202169693408666930493152119958939862751879061512238906006095708899534133018106925193029722181321840012204512797898787796127930382183476333284610888630412093992241361031916517018464013939353993086372932189430079299634176266026401430557187142646794181733206277670577900711598714721030128751602874193567902807073401169442231679692383052768480337038731758765055438858049677248215396989867885161565143285267775556042830146243256521266999091908271554660952054977793179804194257254878258552496810269265110725927499069941133578314089978016953185542446402343376344311164018028391047750544233129600972484271197889640206587881832556569662322429239433612196112120694359921150205039411502997374379920776237154199484963352700511796395021584265258948639954705651910525383823864593161994781522371714042381198112849901432086031589805883607573342860613727566865584319878261843901622781470291649528854132420072631727761813612484936117000690888227083098327293071211284227848417528556655597217822463267625005003853600986120897148510476330177397226793791308885941928595776937149950552504813596588390756990556909578275418991440102204423637760750091628970483620602169094347626523643376997396824463406172320415975719958745326477713798130039842775788155757811619002070404998383635687828632534950456642298937197744028368644504746147005200526731310943422389596853542981199861924187594583773200180365457937824040349110178035979987903866614206053427967734648710339465883267216046194800912752086062885104548392947983352276070837312720429664728182982773492327898798290198659423926107389319994315208039842093253489586670611300619232854535085504103411148483351108718496507385831514669450283909406534363856560053256014006884114199273246621229948253321921183601607591085058652505591344130244514069993408365194930646679345570053651212283805839995537999596617756604880830372422905214709627082853250167893521235516073936540814256696504863576334746681056530991055618850672247900332500355304958321779713105235572808254774630282046891598679519397694169337109557289892297280679337278502827078519257764364639547719205626519626366084464454417813617222654206130037621939009512349483411054217039825613317641377155159688384398684705433979308035575388687628067678050867166502897568116085754824291310596329894003784175046006479952230418126982868443015083900662850254359913596988521099528547067755037019782839977701612025516356202906735813781845317335885270642802145974135059467753216500376595594941601454640316343430652201081730512300419266156861147819113402489886507469970980938827801445332965775228911402894188745973871516093538257770753606275438208991953101359033174431695352175398847929789968361134871583743463650042236819264301406584914940911326711698803673699343954037108119727105945748235158752697273295455465343505917596393213786783491077771085596750910065369961156232189365269653596919118292454076783189720486321032267916857465699370137929773398270645733410392217552866314501468978204612634157686912487308592889765534601799953920936592494769946547898743301368011859855998298173670238483933344509106671758267563804369067069050119581285989757569240371060375852773235516292894187016022641072510730103214954969400649471553030954737903996344427767074272795993535690380232918065895936129650203139419051127547072463492853159231002873133271195546301546196843314018021998421236932625305938436593821450978078625013962660707964927440544368161825911342231790121475332808526009871655816285842330807052379618375659081275247252843197738895671648072342650206382097905524380527427432765879740835744937041538448722144510064495985733426112949157529469725914881359596625547296189669048338446685145181855696720756841230528226792108893778200084609125547090983851438449852737181221817761540798060400668711814753071272610163938285105298784952707115209648845435937071873164536530201920354185320395661673543984708367815130865338698444264044020690951699066430912376180918568507380229670890476618489893416949884542758573841744331568256019656208292044066709086468963022747087565836983090849186166575828184058727011189811330835339655381897296600304336551432237170889736481520011294712245084335784960373490223554263077340234462660140749966531905774199064953160239915839732846359860240731173080106383776754347298307114687942220922568048094013340285017114296671582366133873424161804433745380938763713623618815438395280929246922162743273269566538476889219550732891465638916404878392964751415427146975218802966296707192944851870008425576732817023355203276947562292326126832654044576043135428173608666004029822490273952614708471638932253633079319436078834175217259587380084066733540170315332100581752594002692591509125068264788217524573154398942138450215391448899233250040902130169332614010028977143632621806996150132031630962957029447670494176639118341068045396543436363232694377859929864566749250444531209159653528283796445523650751400317236520138083457580950677691844070203351048173053106841391558342578526906228190399788679107197111534691953934913373760534800955548566425579388583549673271680459977335665685040835794853141966967464534537802781072636482598003054634120605469719972827800048136530670349756118905211280823392107721118558230160941689360357966718469182574275130774683051734571098977488701675401326673296328642091540090935388825677290746886109992574637283243392918812929075656323827022258720886854483679080054135560934601032608528314052989023400537811468109327545649520890244016157632357782532185454708956727537166532084462825091130777852422604149394334535615781713684264988437009675388798293174520331832070578016976896683818906584164008883584393873057410513066944580898898590366629870463815151808274456099823418952179375623127959477278454403851819324382060568474683878799728210723437022385671211456228942759737803891523068651128704439801829364752265293457268669800351896836013588188969444258965885200216022220356382693644168129293829781930023053868645564522329291584354538527799136613393559100029590309647216502115129706198623649188533742671787766154098747090235392555163209430544990881912530704011362337929326470267962408213573240134001073170760524756912541530552210999989687979374630548785037217848022605552155450412454002489325219626023586750809625260789166056938411591742730324104303791034745490053567179288035838000435236012111467624935264363000087377061579932692732597368732891658953537280644784401599243241100695381808524277380689344699638363690810326270593314314086838713386833211800437455754988711490394114357941406775521819931676506074209253084677142026135604290513629774911175317701272811278197175701862012990825296972658720518128577527921183691641570738968720442861381974735215625709075186321797917935177135348802824823350475972700919453557422147225514778357534165336246880095729298547826057008136018597226319818150309735111066385158852006792436636241756114209709963316009993122021511151890730749164005285574987735305672343624218910350910829606096434226284396117450081417404466726672450776386880896086094808530272167175685263752729308091827953786229112922152815453797966368741103015571961738867535423597079972293258963833847981562728832522463314348140326768585550122968205544852403910942702997400404074436289567992953479092564201697534990494687004949847779720970115033387774085217717280461674532190999875169965943678421501232398743189750954400242615329634872199920096236631823183036532131605738719300963672157580435765018298052273282930718821823569832635871731107800637624137463475235379211034033448805385855722941809350941232654578505812377146838739299372838569396847924448477301186628993983769747666998839790854817134845449365252993457386880084343990497270559410036186821792135807056169752907881064440291394191016124062451315723799923004864035785445691921827670361211118389760004470363880875425756750126803469116842409657178080485659408795242599751574253904310398216817527198715050894839436690642796014833762392756024509685156644017847516917168032980220467581754229023716005987574232595885324782625312383391202203788027712891975274621993493189499548405792067744611809447612007614578069714422529200368201634919161794196506308475584943955819571734442541743469349137330410627307279979080662221060481428045930553821095235804899733157689197734611343213044413442135694823032418412553771927667377435158709140841925124029914067058437346577036649723547498469374897752504326616893997365584419383920872265720410854188023379251997383688119198193508238963902792788578762926829231447621678939601731383543180348024818678341554250065211824430809326086197291899024992243983763986352931077558697009489021267417523223811779520521283123323020038514714765497031571299347494300542075954588310250034804180529679194727086821955885030261611787082960153377081933067971730302286057541025877736943996536101201758940107160569953049206438555416205480916896591556248803806666000904738076393452099476836739642047970252072287919132676377073154068714138568825420089693499729403882514268490017421769088144090980747506213165898337463387537638729566357256787117310009027952440890894832238033453427620754924339219325068359023744864947437575564369774301142894794761269048834783498411422105621985514384934303976327749480929236873567890741234828902779608112885046709472522083296390743036205316501919690572795416846206760752187915259370754999019708702319201240650953131272194477490400639203011515549130034924686302245820136816799158291211744051009218261088993156437769208406526263230596740040550802409350809449414399850763573653107035610129899751737265884677565543888425922331669350520320465338702006498896350455983479113059388544465791854730797884762801829180750812179205902998377165749016591685427750916560741561055925871169440173946851449293312917366422336652420395301294180974055009092619675726800862019714574450626288466830807484007162448071953549369251414386577055963840191134082020147920424253844426623885036327105689733716431429278737954471825291693932625810223214647954597375965071340886020475097892975146727829096451435569041871155469704390317700736818243717991706577520594515723493609136827900437207546094562622706378653696817129846528819618985857544715382596792978467889112624280611704670328671236641858503262939756214820239673370076650509695393066474230420536349920519687603776846622694855035326825575051739265817839341564756416832281452645392938364054318267882171358070966617682597463758065778514057313163609973786055909242087656753771279905697057156465797797783343110979579154678180703301713531613664561409141327265450554389171963325159265564493308652839868895989088191735622816514542663825608835775462126021879375667228477464780874226486454620207667573271166888237615347477772905886743108240464395244830988349984345795593643501868831405243310987844660386316895193964957783850683137338713437708603439710534658876994967497709485276135489450574765029183843226521484293171166774923158227028426334794933080990597077136879670143207692750624418488227610703545633293530771962152675206352862274302060205220660845022412128622708720905372212631233640733633243181624000540428901034828809780880980614739347243625066642461983228055852958367652844464830211234949482132756841607285355848013435729527799018700814722631757790468426419279619856750100648999228108783104450596520301490131474801811972694787555871423035233757200495505989033223665261603600052246737077327427609191812842639501471562974912265110291531117317546542106354479501262399028004812340567735912402593133654284268428016863785741727138837026933077667222412080756144899678516573507520023208860950798142393011806564813243470315017925906818016186999416622104295128791420065161646402830547418377370357675719813594461087361311658987361893424576004207032408087550805593633300539920303689956175588057041449636507768944915339018774669230596109473501370143890566685280499817849220259044435268003954501501616452080381503807767489041229910466881900876492945186246560287951826924744931481439833029777074250084046946946149224061414631210818951044427408046744885114625375455740896307520982612050132726596686349500870602410063655104165235899184382580079274682594357592423723719797553745637273959418647426801839775431595193855055932048139366603951981692384274173962414322918663859407458531980917289885292504845756509127326944689757539618374367733972251464792635467263002906809191785604522988442040090858820310851844443628711370994401417622182473595667931219037619943910438505165774074415569640812720835837556746812326359120435279306119030444617999563696252391112169238300159060096406964297847741688018191144605581636974835927123269617093064298765308604958313381763836766685895710479914166721379653492090051121209332419607815515495570829657058786112812227052783125675032364688150931716875528868183555540222268778053975105002332824047857296073082986547803462850263028407929393858258079500236652504273210001226816700482919795228576903651323465587706762026216239366513435919891839493100027430391497241622132977149986912679347186273401613825549702254543351295487071762922531368772527635803216438186977357104339574381974954712687752898449067089417690119685531164086831178946001831808868430242087498296715616478360886952647901146667406205195247317902962140029968045894322630509335122839410165885369914164184830392378460414452290123551116051757425975956687996331889674748536776162618827178880922491600051611221961336328884281567159617364504756460674700679103043333440620925025005745469037857228925700912564952127361479677353091567269172084122742326184582309109065260277210132146803547697684495420387456296996403352093649557634568883403249277479093054463443576270287975162808136633080575146602089048249254210553188799817690461919903304282701910767364710590248488045629534158914422765813413058440830394611113198166851033943939387976561915191907949655938378901292687746593310563124969351880075689332567888314677343749559682430851875231886794742412844885189379779579888173227911518708945766381986246522734453567067570316677564757372205347169907150123329968334336486116688878456674015492781645818108226733628389363655967442990953048959634458110012829733925666696122785556321536806173844210631744352191545414051192712309066649379834960506869584529491021996080330536297396092513690198387140208069957215346449493304621613981800946960285148522472449959757025717804183939302659511116345610416743915563435732381338665294051069580823104341065550127980838969440774592933985426433882498605681568866276825928299431919421468992572164918549108745855012034456005770952512301360345490630719062178329768796756189216746110366961880745064816702163360348598241739223678638188620368494630885941821222204766523593944432305164547944909217781873265028164557169968534590502117817185462584736404225606982334663553750142835010119675495733633910451629488896073756031616671672608764968230877072332808041011782643446052138834166052380786215138193985688440859720677794811104042321198424429745291995179150710835356577137809385960309060708688015496616568858242790947631129722569293857492530131488488712116652986042586395891309486664082238810217878118806615282944907641145372441780374019940640548280893839582329150134087109154047953711106562490608048576195610747818574084634628664264235311948933638619858290154658682612958887651706401274970821639310142687039272935112728698600561822439807644849326884201127138763276647355810560505821035570548137655467237986754066272131230792730501894728733442489561332136463304066895480094596216136966982698162191988603660267223145902406609281105993645366208356703726705288717587604688944327470020103030550690018656948366425611932220529840093650312257051340769144640442438536847503903247511513876208614293127620965915269023067118901052680550186148190974288178089988251533991933539866713824413727000762146555847889688904097592946993590153285248414654088504579748967890600526565690789592316515932607673830977457832321618276315024442379676117568504377837455293769926598106006200287687668254727483565442529429939318261927714909923740907375204526328861808596384463926098799273341126565582003959709899880480300831491087449807347714343425383697168273439063650306681284788988912870149766124115705665475589965408832615106058335654331113203135023606007935342478862710520429829576756716248179928148420032568932246840005981293281298674526582431999649333810449359378156207177501450960392042835956243485230716000352478907398651086905982405619478339890693829850087536166958663467980733520418504258012629098399286529018507465316176688234099965658194584741336878450704239715949260339772915673695115174897967329656284538798606811366832154230105492901595475551999559144162701635909456227079891070876543495703975210942696483355633518518439197838568950599642314371348226269198460962564468261576932289048654589054921260820287293403666792810569189068578442511871277282486430847778670025320854718522667144175500282074774353693792792407030948370063031263333191354615194688145919463484316238135314855775794052838539808850714108810620845484538499469902554991765441875099937812567865599421642362870950757207823968326712130645121517745245655926337808218132904246407262935185467839399961508109721096411593039229637991281999612640438152916969129497344324888179564223593026522349113440538936590880718489631541174343838380757362012307275434389161960989855430879794475818942311311650600508429879698625804779112414981600855430226328461580379417961895696762696806741307731582659603734115898884790164641087141942116292816943912730018979307574375070613065566751738193965508760571433329790118281664791118910853318767583942627130737480891073006260514590453132170674494096255156139435882250407515204078270950162912251894538915938302103658875893901510321723481534558937934864257529156257265671221433405979642457887592876059992030135479047454518872156651105935833429936018043148361682558412525907114618880061032641328032420668363346344692393091929736111944739500350975630820496119392846069108111789929573037694225457858153350995630386830170134830815701205328178004022499490338669330965004078917582755760033049123149294305617248750929214076621957133100616360880489815922048026571546036758868791086956912188378260654327958399361961048369153277854352385616541141252004924781039234130412728746748796231740859684474493188996229875142542592991165715992477015864561989764578518258627129435544380524452501944285635526221122487871003622724928600458635525097264884555611849424242856737195523765550877965661034825060767596489578432988122813682292874103425335434399712644986566961655555090615376275445072032664529704211042438280887850058873357863474501124896786094415661100958348156760511820191083816363374788656479801424152976707273958993489665516621978343078100027405134556162403322096571371682253286662147611389864930783942203395015887421566891690454014219513071177740726599595356589795795329292273796018649420811448996203182482012674686431623968811620411573641395112230238231201503898887170057513736348971075247361065472344674708541593989467665629700648096923895779665034904922726217041022888363263824834866927443152418242186267639319429984834541305211638068201974460981664807683017653487089155553587338163846789932468393082932545071572462247801064509791283741675619852321179417238735240832458900611403852691518368598005542515131662719659790984691090035192757466860796031140741213641512074953709853179062723164386043911050473622348248726349029204991756106019002404978968944649383213235700545834787690522284818023460687048608254985090341357391704827531783650377836200707389922917879087562788156160005883076324400281593191425486715549799410493121150446333234964093540575794012589597720668754573602598586951035559801509269838507553522507835834404420117526091229000909804794850757263195437205098806848057548518418347903643939428992560266755941392180983881282198110758359355002905344359756259180741070915085394851851450289396246178764667220740167969114341514393138155024257647691013112926069039024448700310949633729760956621746909425830357638051483693187337219940866112737744199802276731510393650452919349884244539659895052256428156390590632083284305131495863179136839778251435557266242026683763029178338712071452976793805316604505847221504670031558514472070360878532602525895610106808716306059401182087137153937336498208113137199303536431799379328362452070854576957135302753579600320396881903025038175125705473371829568097263062904959296755142761230461890166399598309324370851208381047594697958222511660575111924455638296085951163467941845325255131696136018397877884592750114046910802784986447998980862429523727772635129355060260929069957017397493125160287504983936046791948004773118382139741785064320915762962896674993549359370477469526460082964526397657446986577012829573708763318490936565828965801045044789595098574357058293787628355424752447522850035306845803019623968954292790564232086333244071856296065614866244650857819633876540357211081652279942313031274310202662718766711080423082291804677998189386086934895993598023269317145306920229333424623417985500712262982011108269572623363756438907101918805081954231782357692334408710003839438549071361988315181925554398915170957631653680444361181720216336530264800863770139178512475728490444067549815753561027418955554712027850169190815468281908453928910133226759149622519169398509133838148751966150425158632428279973623800426268555750696153570648823827123398675821754174456400698408086222458721970735156852542605494496794384772796379363786247274743205384119662393416907759152780201764804708474420399470658460490820588895281413892182873467683042458064655128392169968958641058377672724719015714372886791959516995789078575758040303604459347972485060275893162211988365004735044707380074134708282332005754788674659220279850609400755314300184327386163827040833710663428643066792460968733718761441722615159638054592411910338640012998312318785408875444430614400434478106366716642141195932005804965227496026284665658051310194731289984716707729437513322584765135239867828699784642834999565755099084236752701418462712940104927529433442129337692700067367588571704759666426246170121933700224993047797182426185881215202398222462448713718748250427241808623243289471288742072203217070296555349677758632216546021685561179718466234987606358172389283750795521914251003450620433762253762820603704462062950981237098508523198043790412644272538270285998460812385933042248889644364382351827705630727964611621466598242982732644153509727910119334470905786894317249371161071892112990539836849249861519790379517576825087867234327278067942832966502489327042286101529448933323732565671116310776041196570509604355112563653425700462876560125116802862660583008350217959765653554557384219653384111213453482754886137574531026473451953087925169970075035748951537086335649477595931118258995539841139564658358337759078611996872712132245305503324180364754662338476946815093262530939621599734979711138961503384986503703052486498932235944566532482179966524357283208822570263461074377305123921802942279358679219895112169613775088148902769063277567872349093707721549355965744915738016984242935429584658344299945779219537279880667456848965115147151091120823010591944258085085419081979429926650903133963372459807778594197839821031505056763707671525999470017535995192118189272245491535438553234964758684411583023505615869593816236429536817181990370053220134958672406333328934407748014159141582277861832920311669382718360044961804941152159851165638051939283475203740518782187936574579292087586514733513786083689993978677031790356266979157474635643530286732055376298395679434497115094911335768710315293937404923763038880150958421559867631186591544062474286963962792379659776521554355125458023297663769905351114460600745902886945800251408900285893093662863895494806329907677896159762831616397523653137234396647924847661914342293200745038682457081675140682321686315895455620905841970690674130116294655756899453452377283392082212485220528740373859096608669192355811831822433262172689493668229298095734469784465964351334747805171606734743248329750368917897767430045793697585226586036507017761750630525965658271032173701408734281637741154002609618150211298729884092239365049062846067923209606152388724393927075839661718088718330134160587706708224681698848030345798206653362496064132417270635916638768387652695396201971878401832057608612975959302632222837909528714652469507021768129222161984848271119246160480800321930778689739274089562433789980382299111143162459132121653607085788681579909194528053819454996211592781175793987632398634758999448866894257820986510525068352089927217760811285484550041049178443763683022203594560795121367515391085126820720841574845030645594803948285481419442223960863355092404726511427067133408712720259409521171112187028389377389760374614284254180478665204394814741537859072455165504245922387164477916131256896165372281286696982466338137728303023440882204306747319663766760018287398735173124827668730567286075354001733983088437990122344749339818260176558537720238024884270188375636944822756406985855394749433344286887390780938898455314098763839380216794008093240279050176301107856529945877949831409032015911623250042366964750309507008275605702873020996654948354835758153452490597348697971555485090635610241630981692893388411459327365087070122813784256556415676701706896907377453467064016140330211553354812543234512461878363951860460203408848666017629236519517377408043529777380749119420868843879601514870791201358972701211335838403511567933200024279471632134928586463412994202471528467535440985064455884146303575295888686164373077135649264793088589158593800086852047936185744775578990940617426664943046929369370327496396603722338873823367962597118760398844645674836976570436620902559650957962645580319209748325279542550880766293914240700660510888468454591714744505974848451221085509497439928098729108572663630328364621655998229662575501617662139837391569547087350094118537667732456783943608629862574966306118249348015288671462050330342076177500428030848406438499692662131437992684466707774538875803553289778593050817564636110794266003912119325159158425219870274680344575239266121751663243316569523823129166585774424821522921606073435684808000057389671377886353599354387735855813914056166583181922540133522865017603323218428983940681084901616317094531875491443817414028536000516885696033198020772196384998730503021036774398292433796087799618978641516622660635783318342472089976579633706430471422175086896732363186533082929853936956242834872757303830631669649632324809456395838282590940744768606670208298010616230537559331425809976194709664891811072218931928874966386670210394624015938750196662552308001785324389917139973598215688214209470936280306778853489771772279462726212872779424241489479892165235323729164252667237694257300743479953139538804000764361325022291711862571476382286353490420162519585170929617259551551108478178730712802072629278509935894132384268962954220712381234829177092257088804829368094535710556806992615212755136114406278632533409162012455685867859358878491705425756857385531493841299147524367138788083935786375166224944023781317098889502130437191507802158597929148808461971479098596419346956339305883911829659386370387281471842166904787383333425789706141322658584386768970775695408291708135591758396886902644409941928877385511241878401189767423280921352280368747410125215933800644263170204808596046235782856723153849559549484769518242001239548824644669882764897509546216677654940038078506018296700733749308163890739463928842408490474337178521719011584846598942697634666819074095174527623119341634367728830187381674902718766213681854661524795004869882631906860003539295521076932483188695995537146713323472064285393657363978618936387425895373597681236253745235405778304814805582573072376920269456802158718426946724465443172008005017956113459256179981121488960911048969894960640947874299998604940864335953268225723134887524713705400581396485747714628126033927869718947002912741396423754732586629254269489512988281250716873603813333391435468703304979789335567632880172016286912056165771916543151023652173753242603339893401794680531365694146069034530032142915080203856523307019703721079569057686815075915617166805240588496649742496344498709289248201787134056327659356086724796759960109879848686076674396894641994538538000415321571786452242893075569462903988103427483160880617173956136820827148460781645805078368979451455173734626185286158174784885186830855670248928317672954904452754323487638010011282913673297841668108559262876283555687774590639778522740627627257912591805979316618363713931840297449476368336493891210738434698790518950025252384095618088508202767435041267724673312509196334736667929682822765927386847932112624302032769660183108772690416129825355417135957426438174117773063427915540316467184364118136791374772751647999010392271452955414676732297781260075858357476297751945646600216235509829519562952013520190344237626471338042366092447594613210635777761013692656989605954900333734874833313842418712962226297900000942192560608377964943223496153046254367230255666316265316199880636750150968680511058207697703341899703443772805546360997413304186677524401950670657365041961363452458622362381886889789142972436105892227419438210562521148595239854553111575040005649166096385181836156361386401510503969130848128950108706748527160070887543494494433389025708571690147604380460981253140654026280682763680881189869282124520553516230632567108911484369127811287052411483805785044654944683362673384838123873213922369814690545143831056093658166771822603933713236033967960900191956353212279955822599209032677294627271056950000139826669354310580010124083174561553724157638237951224452796529361576938241556792562136638413135930535468567767444660680117654660993538757720777972600944781403193132161088389290733952030255227929890538098956847562223511302686440313029278315096640568713249551065803519296548461835755897764988660732344788926572901694534348244874596388222112651420238367637595738885582490082670597826302824197142105792462637183420149913877234672110517115541362765303663570990262712410996628855043575104817824573322085255852354193479830158460029340593268574153169674547484429947541883116224446140884019433324847455478286559653127869814090739827792247197294206428355332953575192023893689163981368708708203285578783290786683737831053518227978958345329012777745465954502581276150402513387509674255981968447159092048692097430800429280852806563805118416959074299102295117402801048376528862670833709581040502014691379681029807493941396212241213302841868647900031066123710861638563741885264492558888728230975392390201347428618719100320306939314647493743527490238821054565814780616734471583306020720341237622178641839058225212240558747341776258144338735165267190372865936627767810148445076914654931100605631216521836123591298992980418937595979195843026249086304341165509948547396513465684038940617934139800455520711959867921764085001939961697686855147635176857567449447452339299769870804518386291737306969596333159133671333889712947295960349936731600714833695799519071145520877796215522753634590639303155471108270124854040542266997234803491029224905392761807851677463436332761944776874780088995456052392916608188127450633972011732567957297571261830003082141569216978466025426400522815275560561501232599902720540422125288461434973056257955930268232567163314953608575127496906825622211776769625160135377632153925947918699316814490781553226068072445164920908249859477547256571120966239274612754689042197630718484931563968590981604598947847807298125475325113792837089220419163682089583597219971696056741287906283756163409418402999759208497039662011921453899081735448865509356422638060464097175609908705890057277779265813706155723590181960169119367134767928666633482247069386673916512602585446404913456584521611319582795197241433430356189545863928595124863762111203079769811580895504815985514861128095395215341054494525284017443522753660614338038805356984229749229730136762422081215406072416878749599863774953774185945685116707561825656089879688210217468901138513318007478357828373247547127854723623154106884628613141931767838230899312555151968443190433892049550386800694954361145008064926501210797193333870325482066201297101859746509425607914833794658887841641522957762224753792965864650419671595445668638026117211126153322898945570859480943597670307593836696125091380306933193105885573102304633450119717602982170320062425956128832591862014223927220956564091240802528965687528184948609306931476889193491775967708249827644757844004242776322057110034881698140897495832122461358655527498473347876062476334237045633693151796482579096726671193380910742440591204271328540824137265645483713892650745066340740040340304351680814631420228620862160889025971127170565397261327927804603959729791330827853578102678190701923556550803111370244345905234578076884167579906851603946427250154595629151665736905846417304375175465298045733578995743116639535224787253312140820793683801922293705186571624891665561650767111700742459521660071018204822255932643334827839932844038845824072592297823835567424454298452283257380241387199324985288572855514165060479469124324787760207886480447222233748318163685610330953366680319643446198611364004979248115295644978800432061830364067303934113380226437746976342607212302445773183422752517290706649571877199374070704211446856987628642457901660181380839885114006317262548311770364284995850740806998345904135477275918165349143763719840606144994295751676338093329927825304116709524451718284559218981348876345057106059995963106286473815561990903372978252691994860433454982789822207992706383356397163421044825890331145485575800543761264239680271712019747780726816984657772493413080931162523017031918224466063150911195577473802175307732011935930381013083626091521973817728095163696234323435077740539407773297950403375562548118432135546140181362217613102116950490927973225880510618471712896915867802823663692430367215935665104205770555155831809922736225941591410639311186180621543861739389198490835807062391608835359132519558170487405278839227864595831767146871959807754793539526686739420004203848849287808317753794180448867687094095831292280995450745223032313077823296657822425255056874898141915284121416423424395029122350213579810969882812985331970120659314726114168744064473257584957207419008930458609023888509880536189541092489093619196330671817580611395511014300444171216056000503526741432171875724650952371147475830048352466983144928932539594947981899402310298198465782937020829747336625602072587653330439249197408022623504959591549309051144926221064159723429966653028636921648543320709810927423652703818986188502183781816204715906855773449896723486444424122991226417607191102549780014960235951699486205967416001537649975736296043577940400153622719897231961800946882105822231628102066775173439069826801007939367985165870640567745986415884381738852851341401992278923441419609426170628848709783815072973591097082152401016661840443112638148594467914798050763884508637466883858280632585634121127522176009494189504824259905330836531285391211189139240082282514763374065851941957159321816120995515551478309560307960071740719720607725164318292819435795621626131194886667429088544248736753864502199090242289627880348734366739195719053016599431410170053620291120928573909719882664191441276153165684532563113765926549196129305955707835032763453057802646360858774870603483422936851442461598960567892021284697898133482859492596785561914205320630828914235985308950761781133134446321047453440256670690125382072712575948495263509777505318462223191952121124034196495260996563380146951032313571376947106605652217711129978975809257897110335518881065726922378792541271767397520105612711787757614048616469064555171768828855604698502922797169906245849859217989448664295523495313219132838105171270560911738194678132185281629774071579185587845877678773184011072793877518918127682449934149607528929595091192792773189170132549417135320653653580873636532155463464454160729763125668774986539180723945216995358478113716841637423796060656573924915843490686231973896611836070391982614391057815850929407003846083633367728007965671714962044130990588235857240093120797464604244613932015817236597732672074502038894918112659066440584740716878960941834258895754734964965174536199593582404418251214778017130920564146431873212405896255097280632422892630010335932746531868434215688030078832079510429992253665007616734990139742973332290325655345766959145756459687063774375181636909930266406120492037191591272529823111173110635151026168387312015297664331540300969123371744534424304546297113530707054155343856691911709632207743554130359203450384913546055177891133156363362790372909717199998215687757634523347431106547201732696946745770796661419766519145564931757790741414459117707468531974530816390012500911279062327489191126933248706164606473878906061521778646065788004788657304416479486846685027381389459451496976228148598696247765627411839603450398246669590926942325916195746666815444920128283385643098233808190818162992048089249927910069911344588763710409116315700931478929896643132080263001305804961247573090801077558049773100565820030519752466821007756546237090466752816995134413760162310369926439132284809925574964803951673418164341094388882736896903985877897014899171006693394832038063358364319284291032363904830335929285751542292623458231914650135381265844548025842704530859048699249058878595295414612588194933451926805978390404479431218187819352236734778765139907555267596880193414881286397474895411198094951842280267581057029854747804645183811357317578967457136496943016982394006739423487150799168858899313954612597037448558324403548913449474766167569966827882850736288046486321868209076405873538742985156248569372757038795948468381433765791421932061047015761592358641760916557848259818979607581587055477989658000922742287765396759088539473625214283006049043169706697632566365439903689500347057267155196215012689310012221684079224562009397989530622582944811595028089793349044545870244050835991342032587838300502362415045459199531042966486965313975835647414386201760537798835537149867451637753858572650191831926709756650379184080319292831627954760670799410996011714289096860552013026057834131317100024186994273344104525505772081420250729088867729227365816890564171747303272998221398059791389748226608908838924961992622992644898480867061529036221400449228258603338721056101265090538643904503566417605613606520634996408692831822001415406073700746254199315930568499072462810619375499187390534932529557070584609787498504362353124009440436722465826474793659353410793102745892613907621032970212023854115905999791266643441306267316252623034927662550489297658237671769262602959002821667400918788659765666053062625037522464555074424181400126244932997289203505324186770759279612921146190183454628125302588887733721307642580035915519285877733394102586476091131932200286863706335592817956914869885630045967015925044235906371634875854568514830144704979724161827173017554409188727918193856277343763753868986090687951053089048703360469445489929681457226980997547739943895259757377261400146142823845329802199637363964712855366176970892471896358282562472260080537272550353990058453420828637906382288347745831215425987000835724687007478103791598839029273722512559228680742556959631857137814440415872213766159813045064497869091145094094197939347053363487980874810596846978463892104940516347070154292301752821223465948806265529958638197590236780337464732523072246347504278877016076575868580271422553686272711220093471341780291132477623636605142809462681549543122624305643719973537848583133937016862463355227013168972729904439067534654347149323309798179550182211583421780363452346069109826284406544366226201793801443860102646869194040653327154615016664599888620274131219277993061086954547061403959855289261305173691080192318055453077268963353537416282054829665192997081045766005411701264685656897955864300862360266809900359146306310068576662401961495417528206684953218830221976872146947865321174940151379073673671891493745815551257203704485036522081897353987985615604418904097666562609847607150604594040177905888464162593939141917159003774917341118084966276753518091109309022855090048102499586986927800867540752253713693639451552234257390591926341305511229604339395547762745342960342343867613939092594304632713954950952015906908233931086378675575785320314878999491976055330144223451875982961364982996834598068507207279563847596248584840028192256800952718790966138591351649276633090907413730852134248683660995823867086152356096800345738349745343218850429800708205086873727305138484243521080029701703003675446416853944638489059134021226094516829866261445011153292251063310104968695591133452225154948429609668753657594121448541419610749088959857044155029998069722704737077967845215178145295432839758301404383926356016476387727020708506197693677520834047259055648354949551803587696566587100335352334679117358872541477656858320837801710704403824615466360798089129435984336844526360337811544663276489264743234721345120016074204121012071132537267681105827937493308614148876308923992248669247802530565774635859866361792455175518254089627905647222729636093505539251280320274869088661174850796831531905391940573265940116729585922330491436971733737479001829973064634326850039510460560584170859640079683541687919727373098485780250241487275269152310860106393174040530794580821412840767239874781879186377319458427023174392870009224897530077321161266965632355448145609741045134242267237363874372559282554717999460412597712272432441518149006928711614566787752923694897326521353085351055128027661760408941477174946602394482590909852110013625498461895492737614590220840998723240715864626356581901466109025979567896548593815263198739803849499158299528893054170336857030543958716215344324444308077207026670767652136266165090869255197904839698903442403624544369697177444661188281918965710973127226902803625069586725289470880453073070358345442902705868330500577666435200198082664309403066825522179556183318112500260417027954744050249229341806941191480448526840639876302148770603386168698715958388267999960292966409588758212817625372136314434563936053646048554292196228982949485226775353659561750205484616790088317133114440433009038803699565808361378006509934601237920562087718069867174159504019727413419571940280483923691036984273574136612316294783373408730074364164968254856812572757893356836555124145187845668923666949935142755681258862051236265964231319656758843911802933452089937403531225890129834760999308461889862819263812199225543041719052164151082157238271415424219936313623008891464139719842599809659810955660638868225414449172212244664731807127652254680549720183073914300684901386546941577023423962128896210783631356962001329103467173752375320086921171347167218172024814574654271178511775070075546361622430542504051130668146792588480589847801480629994632814953382846390108743444075141087015078977696750002644857875936513297382815487289482963640765726918330175345858818190251556796451865657580704447733936932723014197985538608290071532712869144182382427713453956623667077516519211369047248816481942239704097575248951607726388881139382185055600750794771079105647486249369426876308196354104224368986587002447792769539291844591622576039352594034997191283793915998658880436073419771037582553565938306339125884949502773080231560345811683173124715981714095797955697962662323215407128519367380929965867859900154582341204074312235278927464267518435414614380775597720865892337977173155800450843510523817582999966927682395044352052299758037555309571510342563539431364311037837473081925297607166919203102958144340153599554474500552287504402480876785173666547938700240843451200539246347120110164467368233065177914301995164488375966852893332619304260855442445852924305829950331555148979999281548275825173174965171351799079618372198590710273993862537361903802317597992013512861026577638812873696003067723701259887827415997316641352400755590289919043983309954280310184077007096257610759622173541399177188717375410288837080784493008548133664503962906693856768800952799607698114138874688290825298013668157137801832997371024504006759999383664131761939711553852926679263102254984057296650835500460680105399068088261309712183144513550920506790616228812837010445696079963713726181686165568073739976700234581396693127273977584971354830330903665623975192178404075004313776527657040769564818654023175070480840943400886455978985072034434669956860864613554789280108227311116866886521926365438776810533023512044946774981317623287205961145356259197625937052825476553623059590418492829296625201091500904714854515131613878159251699006510072904407483089631499596248010384323297141248553689713824696393535004078325359880144730927208481860545297791321310967796376554149457749361961109852485404726377762494398810527193409450905472699421906141669023958967354459358781823398314188416746470900562321930138492862328152615642430125062723863917136759336636894872768047264774343406063369564243476337589389115045594590604214697159989127830957771227954321165373705545670104958233503595769440985175362951700372230389822057500485946013903056418899918762626505258037672113208821642065207689700651720606689546362244178465861615716938673096459699650459815616586957197435241788145198557525824328167928779604552578424507373643241442800762441870573452601895951659079626569772636053440039799971339027172702622583501940422960806349330793242010424190274503094212579986901353491068584114720934722187423599618275622109017035664407537925442718528308286730219032115463660071931653923904454612545493157528257631011648348595705020785703725100802673696535201242016020031788036857532752511311128289136048469693990844677623739010678486139155886554978697148315882535224526331116082091243826685824854332253568091489906418055007948365145913314985205810521165160333190488999590369805731397718472750848499196897214666757332837581619590816567877585205132353310956805441344904854138769656773905769095968182694915982016568755431581262599436612411773304471479280886356110345172408837499310919292783624166642725578762221715750630669932901977893607338711537019072868804631173131954217022790331713432567077043271448620682612378726369137667823682749756400835077330141075703794449524343139935162238665400374670430437702586208494528773390508506236073707793972394963991003448653665969678312103531522135711544739645690021806364342217098842875775818471708660687051790046690330987497607542377174612848161804340151492679050130343230591002328183804190030848205289895685810137984205768563124753546354738972164338803843837419041357794104910077693161471091778834579827498727043121180548688813788428888326421717552482895431381402931327573701103502835007836986998316705734970199777017065321694285203684756785830257144413355627689543500851731249678805425866385343061823154753434504152688003853800199304508654414965723413692985041406027043419659547995085788382733333519226251633300966214400929713080918929810799605494679513083067994719804991892414659362474869418718893548564471819861943609520384787498572931170666192411578055089971216753742782950327480375106582058626631721241483369454037849372622977102358161872445886515164303386384981590925688966976517946514625060990036853891929164489687091860204300947254613586868410136975533869134266677863687212340277169371483876946846584070230928525118532913500522665824070084080460417379716712160864121254379595223392762003143756185037847493626617054848720915333659810488993620961028340734380186443056152824238867311298997648205907151997056892104674568692590387082149703424999282854636441501844303324537601529815191449548846848124071340334111484720396504965407193877419733754959429625842684444115451623908137092310630890949426398549123396366304455744857808442173456188372732319943984308026181389645861392844855311837881804408375499126282733869965749426545342616354459382200179923338179402301995483616264035718579790245044121692464862041478015412853496101774747575751075794984321274762773281861480935333953010299758807722699270121969076252626207759953202293474318083281459656613916344272681596221876796539208264606836573512426074781268426821405093475875946632503667167677377063592017454033737864525290789556660454003357162550751762718171443834766316062165806599764315905000447642712902121333912467322398459939330287831565611876281669503692490723012031262760546949410767206391627199203610805364008099748919336965069216167221804612897253261580665808311645969147197553674881277574237660044600110747227777545579475458242605575915601562413335843963726540487589906495761325198769337317854894777335708514563505446740550875155566288478006727733370792570633512761374076575731707756851682629177091987265663126345156053451211025739913568875073971416632159682248367337815577088508827769477603396790384807863871297474298100421581084075368302817920649359135089213675990432641566902662789132480566232858476068053325371936803157168313675675399843198722677215791957048827688669901311398722626648489906357418731730069075236543716523077499612192108801888854018503738815421934561377290764930348345114442244414489527547396323540330041185711212442024697210286779308288322860098739627074888159422733294087421279337308427673841648637289744604584356986012290166765218286726283021483090791700194234361892744725869146774143791965265564872280745068476539500063333035462715886279573495706342981700406421603034950275608915477765132278228011275587374311237672850413416379009327961890590037304800927875087798860596393347897147640313608537294196416389009768505875577641716356803137224882420227662129448701886448400388025118273377122924328767106052247896513587316095978015012134940537330544579791359698408302536397522956042463307959217512209365802562631239048113114344099388466716770871836616679525941074063050581660501776519563091058149555070866598443791817081158188249138775494550200969527129023011889320619876775338348275357928601458312960057252314240304068681678358344168543598557172786249228830586287203520660340089289537277914996875707203357043381922606933438489797705218282340339694616501129261812086025165187489592669834356466737697998390520832926228531866727661143500277488532818105137995878225597679514483013461289872416614197906487718787206570863157862029675852359634119219820490999083932946350924335440655590809085809153522588814541218593281135558044030035358514145676296097864787288611636749674745679019196338406270092281053077003327054650113672344088981800019200114121848495698360934395357699916741626302638520073876602334349448317052617221960030608845337605699617492529482848378880666558703050975889298042441740035372321085795050584049421350770904501849846738673639218895314252438550446087062365256262523228167546140154813984699800231620210728728159633818086013480451147634848878850775918968277688857942803061618275386724063875621024637834642495953315114229982887916245200088666944368953073331062592880488467776212302638050151791166830522611597504982356652056199261795073751733052329235938228862071908135423409282095234339884956077156572273504813875950093214796421941225906990456970106838697836362899799390607660028045265779426437223921093128904243421625559171061286919799339584433659326929132405767932250612550777429899574559970178831771584278208878530740703242356478809959620282883053178463326666889261186911824026275162802559170383514228859634054973540857208554912837285803138934245958793214150514366292472781046907033256842691580152110059346478089850450490974640838944173279966807383393179322771240435652518617143098328614109650257310342550750691738543729208521085156241839855165241071371435857728578679667920350307127264869878570860561692964378884813694698462329644787428661554454348231294271694639436822566145931067872395646393686492079309317541610053073284550119505944537962393461158421941233051091379026891506307977307162779466588013546724897964812573060198693366173101234311166138168869858485183868884198074588969838856143969416745473878040450428883732993316745135564161447021255756368766900588165995274585436638519003219898041712202556914553028919698604841983504567641290206984798689774111733925867703992797599826136537578886394542547204361665806854028867559432748344205468991212806663432457423166355219513558595612170763974621751185221628185041507137296570042436286996345380186596651171162175371779590973538648254651886232110706553071441367147419530356534712041598180317449161612513735984688542039710584370150889772967820534875304029452568038569322800185463950977043850511026359154751541880926199510857954903638846592482367399225124263200813405933875942125578036338253134472747283614979438419732336633645539670718061763040732621837686099087412748588200860029408686690977042959896938683533953427268102571547706307696303742940728518298325173287705866891386509976671143737312261709497070849589080785742017875797824868078817651779232859394754318667014438846357753077065938737087869000015000786676869324497042936337300496356198556693618076588841291456872178829516471776228830291783379728175007539554072000038173356816578148288051716005681837667603208187334640868700189208006878298061347036428806840767772100018590330780785825403802547270259166558066532218633520708376017928611685329459488649279980434110342864339631894412855674229544478978545337049190947598210717710761520880931453434278679626899964238023174779118601099882994042648759600974028338658959019898191420577644897412736217036130921856184764521806321836072224195147394448198140886182469647224882619059903375951990065761822933133195883816681288499002429603913833728940319718567062149239731154353414613206189807634299744957995895747704725233294366488001992295503576916743680286226301128993338513369021247268997529278818620828348800329274519862610857152197914169088201075416843644383245309767803216952033571900587882357823471787846927849848876173185508787304673976409293493391936979757819928324801705025064956824901751549281236657677926742418460560312049264696151059264524547147455628415089699036490684058923240669968962801672646923106321530739520687486650960103659786651322385045341379164486256987083639655491463085524753047861306362007666719717867138674726732522644625301284617248799670947222937035011562299547973462269304719306090149071970603187103512651482929379764389899569892170639696061968463592642389701258802262409511999968202627434000920677623714564430275407584306497317813201072181109527742495031034284316784751486838333547481551961320003337138739160041324367241853577422475444572956880273656642429601752764688090441491518580710747533100174247504081004058529776465351727599019189032258299496408842346549876750272369112467450286376412243996942522473363917048195798322928999172344230007380556386003837175700463505951046790730577465983828048595182055419697838708308198635540855577209625227720078380662856245647823821164451589600094486528956201055677800960262891823473487713420308354348817737796513919369768689326540558101260165001163567024490391989806096454354915996963947282527437193040817808972328846671698970264600336362604323178593480243216914023453398887995781161257675808320037779046968131124385364211403862241976408362852540922581734008634901896721577587019767247594431015581101492332114845649132163584752338252225642684976152497057911112649478073381714292734475101725660345604888813547904231936397776356274682737132480223277680780243074485718836414220883520190547341870246887296059103601012935977879157018112174923265180891306984990542546085208073854853077869110289097697690122220287721342240866337273409180475983211575011207173875218215435144944142185593491009710795976381510273921180824838336673943833758408561638374430226860459267426795635257263875790333177706062750879370283704804319062302905077322704219774601467147342882222726508805632352847991942052648269452540783262128677333197003720809191782217393435034986855644177816528876139042948868605372708271752062745458729035890806010987171527634905303561759053985315589407893669443320775220165529279568913152247463269018134857250213711307208528385477960605155870229406008485603256132254822494053932500116541892592844940641960164136695637679112386133226755829838468147284831315741920485091175603369293162241497723861478498290400626227629012226291522948644708933447457558950106204517638493800641356111388061741400015679983061888280171488631472128698369996328997958057372296675251911616249268206660302594275619367645861989194869917177445148512620224828041544446673064924648897854390261745479275921129722562375907886046449986605323932077622353678178879685898258384820163799760563647541084289598254211378925998005753817939811395156654765596422637741754244235085090604109239733733887891543281707157060076753556122477320973785342161001591921466406528013019276358418649532311429030646980483887973040367079036141764506558073048013974992988536236750417615689474872229515592000861740729699423015861602838121484181807981671210834160565197788769983712504602719498763638488464814740469465681244044056387174959904816203775818001068521316794356521228350416204818718784154609268997017431121327072781810741028912547439133517689188129728213390394723164104738325260755760963269719280541249045705482173494357192346100676248957085214810147727290928429323792309514878426055579894321304878361350941798763624985074475454006164907480444033279633060755706426151036768283065538551368580347493122949430277080497861323858025061528494926464242666663050476235973003725350523855728145334532427140644266209203648604381182182680236661864732079350407349365404158661785552082927703474196399744280629526127042499828180695839368713507689153347909318138261738997556927757320545634423108517328623215865388592454333127810297579331365587493406504987534186373945874383532505144974813640309922306904000445384410504544649733426203762353821532321435580808790797943792382755648876556771528514269442107355101332895472958280919346216324881408722860575710369899950585684846960532684137089795707642239888294234710743858291400460620550397224604269929237578647756128976038685302954275374700369192882759316753316903409125691125215023617414775635030311234479596021537145513406791278561099688316629590837349253491340861093999471923474270797192762557235541673361943501743020944079265506829655459770896711439533465014897981044967005624364644427646018347049984398042836080683431198536410323921766483697536334303262819626698014189153698315079227604730315437320425651151832587226553758022671436769817642318945930851421699080343445637690567490337325122868585326617088287664970860244529295543649909666046661133391988995925584072778096274070410136035105575464830328881876557448993114585461314607267304303340069018869060836823336902130651153203009728390039278682361511843978710458002939923896691086036548346712544892659350810988982412802784680528248009050947900556183904150157873727926642387683084369301730684671262693152730446650485806890383542222318217199071897486121681691916554307596881277961409457916851899476361899146087182157866175929548268208948381006349412664716353949594739699749678916391468061964789003188988999819824516775814226842384338550555827327419535188120616317050780651580446300487604221182652627857563416936160402337982584425274097683588336579309153520620939272233274191317576356949610743733406492701168656167648989361929888292103608138090598006996722717440446454070868805119354948749584386469616155081969835249327892756278046748263204328414329326175501586259937882371561731692747144604068826022377262051887413325885739868420336298213003482428303366315777684952206881434942639837840418955741145599320027936240254153222494083147559726542035648502315488471630104171277986388180731313350950715873383545489521126475240079886408527138680743497300294289134363866566307477567435882992047120176903859506631106027854276495716638382913391400374489952393708692731582205655151153126096607942310934598507835595888347759769197346170569976690991699851757031371745176569550409070008142106178355337278427339901671247989660988270811971084331832984136987019289557740821854414107838546587293139381938990989747707882974474848803901853054923888429193892773228344123544735293309722375220311944451241763504547200474146458084110964962459571396025549170427334484015913652143951189502516265725907462140310439504344217060650804472082040159698973636370667108637754141093559042865926268480206500717611204255281240212165757101604139383825616895019113391188031008752144507759364903603133211904798896413805463029907994476494582275221494856599764983757413321732401689814988625871628172766504730207323086999520177152192652220379473050425515452690229341347236815939276734399278448361757817723858883282332307460434760582635997363131424259152097797697479066728659112999546586323855922080129486298967385629274517502666705019480355510708236890103056063768324022629689090702219212965152370109192683287664894177371114069034212914359152061767740137222959867119377745210268835744819590212857978620189009039838436054065479633667239155903897802565695407025796446815830550103744653999388027462499773718214746194222104609047580299765800187364573749562683089915859820857113478538983964866718864269965642250263102956342260062472604781887659545346552906452313682825428541797872039308405435578357848640381254651377983086947890918846794635022438659799460453319229321254488986718534214607445403873900434328944175933545825111430026500006631989410598613650602149010240890085851539032584156562818377361536770340085477603354007332924295657956002198713983867976783392714964835679820046893273216901159007503926477919685867592528323589980773976848421810860537527566740647003094659887119199797940109360695340744389489573434743598531274240243728707537231145201465114091057188374041197260328660113268698183155003523467799647223752714580266937608210717239540736030492120887985546350947118943171219013702764027845034489879237858137668194486567742221385061306114052779998779344359574582397521622920876914070482264389057524565905349433041905440663435547938656035754935706921653505979631637657830030604714625380126998036790718102484703833772977120138005383273250847470928795381919093796325279801743397253529835534489821710550937421650974218381795311217187985001694582950861781552182415799094135304878800500231477035714650811180935811608453963898878595122559470081687324263115001082461813440249194131771799699426785308641499248180996346888471238599596758349804147256440758550378328990896248391047916625294525076102818553448169092441358939512348639877396838689554688322208307977591930696438609500480487134111987906672444641508178812723262622055251211438338436245066054542112816664126354543837809539398051793569352979642565679167341790691511796148135053375724467297522268109815752890316588125802530685234492502617122449871754695505182877492755211825431826342198019529114900716626885337256338453822516524806588908705107467012691937753613300290482158676977923909277856884582130402174670932948293387551113244234307168769994707350454083475476930660092070592417616801633746334214230997639164600215459018809331781667930198208016656400320738552154222957428864834224901358060863589387749192535467244110235175139824444424587473845608036720351727438660881627745912527092029080083137476505648766201796791823022163612731936414476709637664813759976125625293351063435491642441485448260802750545744355897789420921536840932241713885064809909262076865561091463741205185618306821398223449721322261413943045118547123413887844760146242502997454294932756188368307470895657398226283432119950306046806091047344599829037096919216115654409196777359218098563486515810326917454697551706753816478666951364341533550089266205767344412498345424660818033181976063671254002039301978340795770122751589379076032669336059138644292117656743943470511636433770944193298895286509480642022402953150439499304826912475914153169339449422868076644966537451143587480717425324075398877541250248963766914436355337930717780336208088540750985293544608166966797806407898890256344972101341087498604776646034949270161566688436549994030916067817879054975497294838039281714073259214655991562686350557435581914619133878977280264259505009150979108454230675269794126609015933947538742612363038737243976029480965438928237547377225096333180714078596091153431118857813626529206750644824487236883370420113689607820019227920943286429060304253586687619780876419372454862162046167165372391526863110148111146531357643827508430590454243328570179845119538520081707166670907693656734246668667050814814616047883824474641820880505050932386428264539839892493557666276483185250777861691203962175916503475216373454425150729129019377144335129836543238592060445339753962061170148869556361091516833267598856137053899248030996837897518925424988264656061258456139341916226363873996696010491472121990452892625865036215417616876701501113087936656371029572441972942657537688163207576282316405795082957599122518571799799815523336935334367612754394263574374541256920622824827599901525113791455578248553557096914870246257206698300822796360678542131676137616548113001922600093037779861901255700768297092227060678425513003330941553952502111897364190715182424575575174388234751146387446223483731889260999260383176302680021274840229613143560749695391149808195436123432470143349687747012776733390923024834184086044920911024411899688009476833108533446735585412148955402122991775796966828447146574116007892095134255506573005135390205072746167028314273466155058125881247574464664595050816665652368572402750317637073682668532304141627715704706678016324853359924654816476770300898189625099239690407547027781588636485890530242204885520785037206272035497956568426200710012037709390539408677250212432094416319337598062009387390567415706451715454155630216831984740174056262474649091040901263794094089831071020754545791004637816146114860981650563462775841486754622757484771197975562424662174467547452327766508014625846087830619900144994088787352546844892970051559891635368089542454232608162977517629906545478818785145991838392375667621923273312433594171263478798431946467032615838259519405655276921603846635530614758464255570291196640118803579321394290669408212760737468008731103519302462816201647617625877368145925212359191183054474586928800206518688766192968747815729915933568518784958867955536005577197663929074939966595015581432191396499895041635675255006832579603191991415178524499279935077549395797345576686901029266386628293586214503904377165178219735163532169208909332890176919937335712586983679583562103617395639983275696333714028986001271004802292559291784160357831560881835313053320018943529029107950624912209273100168057457779001263774622122482453575898849526936140943268595865048869966103205944821492585958733764857126049495553201161128876983631726703875517930797787396087218904579706987842972997150336727455564320395937869598145531643296062027489259968340448969362479074057967837599977672231732436564922100599522512090603748858858619626304666783755574725749198529509803931140467098307153209603601784761366120858873620754774757588836243901225959482680952061923661557028974576934021279609049917958974963889667017135847174847906100147446551864458502235973647934219290680911521269365308668041387549815164328282833788054392823424425683840369590585086208250899596156975553244386537178641738101930458958392391900244220035308201351272380457057177206381788205635583322794182730619270779894939672859294786473248120832056186419022748827423007809951860188317970139221142514039687465915780351886225596941464754441071624977946024534197312725251401107304307931853497196536063343707019588093596788138732647610353896820722341285599836098081316889564646015573861369075618593275461980395418797620125462161323301815394629403039300735885806271325662842822561286032595114824926880100421674884940796982408570225049054429717126327377808089788710596516353009865053434469077365015618852327338850414093222688934404344508279114958446280436911299486661510308139166990527963786043193988222100007386992265016966959415801504435953690335513473607072378727601871963900060393553934764601792693150059805805171674411834945248824285644510881555922117158681883680005988265781815419370086174423106106245026769602722954735467167561310368700974615756155905529780274725503222204519369337174800938105075597811974051604365875628229664935724213437688746703024393050673381082790286317359723182845537816918413377818119517155755374185871209405392077995258316463289850668927819029955663739657675910665325098668412180623683972858036670763038409447361903787704761609717355656257498848835197213295723761402376707768728835912004961292481675046750591292061876850867770149534283571542048830082922956203639750179569053271506534011410374212248939930298648557567453554523277456174394372086819933518247388257998518794820968428213659597026811625179721758776381471130840821782787597793996956388738167932943702436122506275246364103387728556164203533153087257209495410433814131460761881039662036221117687527455740870200429176240648763069972635421977660508243353825676914124359615941132676409726940588747271929571854533554441220432887239193721895707022977635870457184459822289173321478689389983036166160882145894771295170981876972894682621986068322925842557987986559305995004875946000825442074384333813609897272601393359680786670401274139744700429719015921630824517666903068907638414264285999230376958735411265117358718468527231315265033426259713037634473327573392450381983228503693220377423556258340190633609245452201899985926733036269721940889596583572041743451080644374803838086410520270514147671555259841014470761463365918904494181710261658030870465582483270931172756090046600980098390228575494679595780576391408544750855978242117404872154521799653956681397028667033403490612414478980055372469895419157064301194640524549108911452448038156469032911214090416502844539253462932300567841080712233562330788681981228835639038069642701086871845098148154775534526890148768171946021437629968614359626101534293410599342839247616702491647836900329987428012486776147958369711127326850266805402696832263351796851813666370251634845348225706338238570888539967646112014273140195613701396460549463606952008062450896110664141282208355662837550831223195476067189747521644139027574952483238700649501731417539457117064317617880701275293035197050300649851552359372148241525183974232730614822229032972444303270596919187040389259579888181194759428988403931608858913637616802725313576673508421204044893487293878697771089353706640774944114528011247858352869635941648018673730479119198798849629040252176575367731135933597004386660491979081022823989893718411213038170658406272755040184765390952131170826932263288267815017574979830292947763728411310322868684649445577800323801241300348554413172074693493170836002494255169664246838616945781797754026428772192130405258607237948113869436988382180504628619753220671499833886909920937994296031911606877668474857528332894578684764752966256410808496058742157284834554415958408133706753003974819462998319035926411711067003107983031251858315747323622764844495750474749605259080416223068416328326316209519274132659004158258645874218013658872109418259555001803361753870750479137077259295093339934884178804756786645546011222355853377984485927206250032695098591668209001918580390877487031864149329257707867787027602882510498104691816215111817728462302290984439458810963135402595758788065087732367746280527921360593308089896634173066551302053553992997493895054739914490062558291807470197667444563809051550425246279236381086968666397201854792263587620999057254068629238969441691506754089778625357012973750998828586755257720771766995984861334738136758874126396058205195853945503426980799198800032645447731586107508333991501699181582236758689251575659421188367031475049496618606921782021418500158616012064507262041737991805968617596936415727335752007307361760081157790392771101949327447578657884687081838476902833543912842536688148405626066525254084480014680027884250093205618277780950203474141405371247753609708621054563949212812051930330628751872902506987547983948365466809540457115139169195391771146462762655435578383675749455469263265591953660075185341400906894354462489362159639091649945119720844773120821558907322131489786604620808548770618074171371076743050416056150867113514065933775288801158753654930234472762977089810953877356192738375608229397231958910789029302414297883266747157214696129639858280663957061212268476324453165525669789486061767774581680794759733463574519082729902643339527075856983396063872112393643362632704338388132133419070485421038270664682525610414862103006708484541607423364804910531222647868577280373589110954001017034253406679730971144157992030879197901135234748192767962828344387591304158003090853375559606694027440026482016323699795197932353084261425470135928563999009811288073458657685722089020405253657092869899390807274919326145098508589148744734715510918319955832476192789661164071982088961465818812023685747554141655889495123130073865480023479214605565850885626269358714921098204472993023426812461676859054344345532223609311705048290983819468457294861864500579839786346454558425520392406605714677905934922292796593148449025045806675239345739851484046585949621680657487073301221654488168869290008998258103540520751632185193046824256100544394520269429260923712371785150812149872637526957240623333557126293401127599106432812181572725010848295687321010893780449398121620672409398629658414323654935990851660264639582693196941160746457229705923046459954443693739927254627870868964775777273514979229692881349004870741684508763691379197871437817482992059456924739527080876898260075296436029931479840136955211390994959091508084799922177011056288146212979667968250888694550761622131835214952509288763810284035900173692745604709520631770308296641068701549208192392442842103821725613481350438857285247838077624691765315598974111279299546452123876614879753803416778651182355329293490664648611773885894662663539833527127308403684917535944941597539684397132415119509482769255428563594445258779091053864363735944443965181492032505605456040001853807158103814182954998675745067562355400636300718678758193121065052628414836208554560031173059674970145935153769904345503841404278419390097427921668963383746676750750927335520926337129915464239142579250915283655875454813563362562625164721328676813338897803215164723104400286925969782880725129310787215805595566571115567970036416125774798094404029068615989207653617807717092214895136033838761689687860326026517293082089307429796011596845403691203238799293198721309223624884226436013844923598301508491253578392411812744327320530165556081069473623147817881728446106596035085209254627676311251849100364923674402098265900684416148515069563537044582033736379197810951344837792476166065289647690943956114264126470124089088196832089159093610195389148091676809837364000019719546896431511854421266693353604231243499348999803911448071000091647707037447383907846671188302706609300681021813630958137551535788493104486940439886531045511015081943151413585581988335774830132824991300645011605477920595583796675214852809058943515746374622764094153564380431648169370917547464363314043605319971958421971803692085242047798896922455597339716143645211882813231470931024416773132187078870604332698849664345644842601583868924562479396640746859350124235811702218555556763323105477279018234624767397380314935116193613239692445340994997188238686746072796242628052541177340194128721656921335630894325364854659196602683414272379344326460664785853786037007148446919597468919793757095014089659877258303019259480921272520118497314137890262868160184391306688314328768868070231216687592605039776751087912645620863923207434287967891143780011759985385369005260999094618375722893449136757164727905748622762423552242959379356009172883882005265410754504837526577663114092967721890769872435593617891528091316343366609984728058550628598172270869003772887829638252429082086831228216606706420218612054895322438417057911848934412202515038017687091706278874192190717233185479180141250070564560143066009281636706761832917389676654020176443719812628810190257402225417769854173122021505281560714302024687610944859335903847373086624621497077383061905620091011953712032252597959336799236560164619778637544037260562813725719750542402433288026047339622492201922667972758929304896190869385993697629538170386442035804656998819634768106075284421259421317776352340389441679498980932760666440062579457340368247959807681040600159467922288685995064983273092821435536790262364621214268767585763746070308682463299400097480956876686137841182536312216191612459276648912406462375562905257950280953907627233488566739230901953857326382283803010945467317429168045020242926243253224539839685048527540147003183191929322860929852972125492844084513737171027066634713336228356972442919176343375594544931297267499406068254354924020129355126759358865858414757239807611774895080461530313674101274321016046391133730493709241696682108580630694932093690011377189693125829265548233260396054265304270735980305188314863552702439262396833298542987464591145862160450061957450781338534953194906832686774907936218404111903812552477238873513148346176183524448356092980429839524471336488204497405101279570276893797874191112442442617273036733537023139390405973024353134232027517852312700808206281075191374818111994701252296654681729077990127005105020847784366615917601180689172861815122362137411490043926501258078012370808213245781644402736535628815691020635091334572746031707621105963585356449264794586253780759652941101586246121040104650280137348362498213971095701134793465143544639609471127781157279788502653984447303418120773313493123432996169101252466887614700349805357332551065861470587864333852196638181365073430288487336657201127321448818588527617581295476687967968527135054842696457427761463113669621141121387411122997774274780316418705666976906919470839437334654078298592082144826495175689155426567891945051755971609342820254107563019252749655124387101128330018859497879543631820945697153379886028039768521820598556180177444343239040741037810868423079356508425891750122366638804048326479421664880021159118459613755903477847404369672068312324312395882729693225442096555683284798246521024726591204112876828195366960405980393394222419714568081543504155257147026130172146648244329476038520876049287347360901676191870002201494645658962133966560197817002254880153242593084111051711095428212568719328038949329589443299615078309617765355374285896199819571783745150552821868731554590112051119298627511338117229542987105603177752893066565570086414825959478661643318494328864251385644327485554568924050954195634819645928987235734014910420941387525510444424726930941699386636913231593311440045766405719109546813719560259933821150053452719235339376125951399013198120529095961508835060590648679498734529302661351256896179216948494259311555527842433429354978320664363709550827421717780587399907745717813538659898902523309757774451095017553040945156214726468033621244665038906251885178511558650812329541712877513197938985647449318383189634320044434830408184489726123880811808579068795544168863345387790632117396570786602440735341065515975848028057778212163992657493568247442323202676235827467537260129545622130403866515677523467324026225286385070157554491266626466385384014500868463892975240630444318294749805568665516144649086247262824997996570030275861411116624123505941602283685528402115733229879967025396164388424254025250938633413097193178402908771055531585200187173796920040166471539324527566560330357322715041608482683822179570018700391889090989772366198616457211867744250698128329566189868326857074019013793875386900144399965860431564904647378716681191492495500366636613188136685847037688757911314727643241877609904334993009475395537263288689527432154314939654392065211578286787124442316275937950786741063847788913292516781043595570983576247293990814736035699456374100890157149762829185877218142586409046160468832934667651513047693422660181347456882467226812935634381267239835015594210062812617418858425340544173812291414638675969410608980008020412772145934864830426874591973184067654192789662853714429920573269433726298229955285162422893027758933071586880971164075838104717515418952618033603975721951115645352992829640188463294587745728952931740339625666628674682872456255327149009442087117772631274887499093442306299370179157386606219578601117803218008984880821784884063766419894487735520681031132715325950356320895451080988602361442945840830586981089405998418391128476582156817457785376890002683596258490141792048621001356365010467636379804720458648025966057050874868442571221074391973828190716801397954899528292683561035854548914356266120474894897276141925318731481664677826050667182901078059330022928694836959600113316928780911851999748163801139134868441704298972646215972224084542951048121886151152108337110579408735936776408890110656104786080158016371723492934799360858821062506312630258508139322576608064399118708386344127049519586667929492968334104320875444003069376000957267072320970206424668825182338672877005085335141317499582931506660291338430541888506821200395378403003999069677225891961318860890113306963485018504292282197410476085047670427618324871584825931805165619348391013103037591898279497990757433514033908959452099891995175652237956629654742938621601993560851507721132356724789259605656830864265903739382612572167896544440030737991553649310797607330396216514580921332375878042506614789784209129541139782218053406090507809043327421988106611550770392471005481829265289297512384933543011848108177809449569190386157634636204919021889952438083829329670861423738030746284040767891408580257282634347319472429776758869069818105025979132098249916127186042246783713036472585217587557690197132787777652307217662710874695030139519641994040121539905474720171405131660636921388733088007710682314392323149252233527695742630481352217695174720853531344947981763226104417717233260074264239304575047421130254656266491398959345342541503250154212076544146611589079399386081767837520974240529642369055725984083420154272966650642299137038748038860780621911730983056167533351126449720238216338942422024980297515934433568981421403394424777820916689502918685005823472034146115760391971005629421812380829330476155643848189154916005201626502710380371373921477888458215768335871393634767025532443020111910693843920686726676816241368836776103123335487449743294283599163990199052236595517910156949079822858863515657094713435334851307086602594308914497704599809322230191252350931535704002284432552308609215283556597275403968516717222615493147402108691486033497804282932034863155969569534279214649347826675390215766671774466095677494167898639093970003532470468674068147754541545422658924962269421588343819660294196352038988177665713741166756368925294220547814167541830098759058845190335955667129533740257465911470809099505646171794752032743019721817191348125662333497088009883773941019822986141956069404671188092223799899353807847701426958712145122673820477239968744243168714455550930062071669148812454045074807175262945557497212216778827493925870905680971974291433835756746604788161660983163857968049019575201875839064172428388118733805307871821108512759041921641371742019971064873149131582933683041834707864995016484778857821315717568954869486514995294194768593725653888188904817735487809919133111454428111526731252424921965503729368065577125328014911452980872909935683132961868294357816111205966646016535077814414602100662408971641172804036209385951736780277920840215721300182895724758162956014259837023111087223316059115252896191177112324596082478314534854800005334027957381251290796137349687158579918080227860512936265370067098735251217322751705011972846953560101307744458788249760716732478514202220388679948386056541748824666757592516189627109285688998633497487830083737014908938721383970186950868382812654302751462944509399052988900840067015211314679143788684135488657126087040051541380854756963410133478434918622024847352891176968057688578293768158335286894693530750437012725605523710816201239639679819641844078840391199663210655345172129940116956229893338905722234511417862345913574145488967203159219474857646367962401693955049722428632819289003128537274451089058456891112248690158396118810993965860808258209607843605319136400078760781552606007371951524587712478874425721791192020049042340415422213600221052726059930937477286491285416892881510496604365082795116319574306178267865689210892061544575202803177710730831759022105073566838112755795017439864713879215631244084940309192737479980987485578757924096368789237467194573291619897634682242927964028836537515748484709303406628350673459526760516538504042720470946490397642036860497466825740417465552587207186148793011142171040801687465896816087819494309708219334560730991568875654536592843624538523246186549708850937224367069278807598241907844914192556914137239714185724513433764174708203408543632669923127674838023289079095823780874206498584790779863668686101393010702031406769470791021710549042165216158426570973214790067323132606632656352395235366405083248762700497482009337325499787764791467964515307739425978129453336400484462537957056185428572718685646713332490742397811636417488074157909381086905238752225544469743835877570332586586553629302639618939580461170925841754266543769180058934064157603790784005064248618771650367367599790500231513772887978635178444230444257260782994640449391121842484378270891373724175253603389410030220074320747516255071912122949343783625288493724423508381163456297341271479194736146057475110208650863129729447307596681355721333336893854146120582621378489192738781291141029944197547159730442714717900319066566388812957198683295161793364533199610907728785033785017384355712820347560712369454221766437867105848127724387233751285323715077285032139778096808208519249092340792185167465670443683742260642683700625399620166359000543739248204875535932011679224850941964751599692959366665712013733703842602800929008271302776741687037661237267077230772346796088363155280699458318110627586356419654181737326508448640634324265473440549064767641753761544695032270600483040768919790321163612699034145090515621037043678442605239916533912902349842419181414246531119372892021154574113705702890139082953094795757508133013466651785717519045791777991216388178236558566739897126091021784533948658419142140193186872857302046444028592571455336324217910329993426255996084703582503811374767326961916359703523889201151080666711720222095336894279836904576102606258361366433328673496223063350672417885233806180786167278021602104874352998302203664295019711424139157562808239794302215974111312529263389623976945611737266267865269826153449207719650976100440471017441455493431450473460982700582615623015657443165522344241120763272922298409728476090332571967541803800696593099898831436877180284932266312929242212623859641095611318619274516886948601841624182335429699949436696656898125534640317669730412704940869269466283649294946664044206204610853178333915123155074804786603406172625186923430412650453732497323376889757650129781800821822744272004323789244177767185911773034043576114583604114803333337515247480016054084173745218584863009087588791042807997504862894672185924839384154391556450133933064115198403097820745822544826969759842160832663543206530490500031775729391302760705460966604644361468434147217328156116897093213497132172760765467697064090131861809273114539103234441740157680877013761174271367944565696818518040623703986861281142909389842549128706079284966824156933710540624377047401885739476883764390891552586103579561685486949846966841512290195106876233875645863926949858106154215130633685539766844696032261483205238459273643734784867894815987956137574423022715500083897466884745987309289074134412705043417692149583829375681550449602491793058828870519463416503222036186885592047930087536435386437069641126543389986050274426136679183786566393505653873230426529503137857025304554334572891096624704303350094253756949821413681376952047041171553521518537969056295189837091726331295024622409045169326083987269193863331703859966938673249474581606040454976446324141100543691625785076505703105679379623764044366231624002211212716632464684409670085174799771585318314076622199744967647341551793431746261968095507723454119850009927577718669787713184466970433617149007619046446985008279693209232729499642615194629221312606975982228452461461017446015972382446905000035953416291317002555901617650751821346747292021763460020277448335569392930188268372503178764052759244012179801074604744000732835184659020594880179094744349602836356148091865628835731659992495024163779177731414631969703403168435906445833897792324600867534090168500213225403328054767719291811564542840733233772675444042677174708216151751332993838267847749831282637932494912336374815754689205663310949025518753450648503819974518635519329055123288174340256537724841862909872174543767831732442892493786029243761635869027801178321450705782845774283107292725699991680658291741003309149366428593055469195588010742946342363892817315017255475708753539902386911007776693340543329259262837731630855515764100611584266343916200113834366246377459333916592091906899485049502769525142160028540054233429760817740369070914931309603031497611994069164964924799368175366714203474454404658603567473088618034540080116163705541584790777208713155780264231734407828103185804678436995907325673224634811440660188435536264707853947343095023853396391418481451473741451640239067055259922268623484823968180814131010836846847759651086229291949404633987313209244813697446168171286603051127515394512997129519101402965258007716313072474445310230899530542568881569781808593840749262795611835698429924112634274781294913193474107944386922314145560004177960027229184546914934962256380253277060532654992304473117755447828338830578181511246147622958473037863122556382561998104962067318914005939425566447977677521649022826389359781191463553149552189350129784457308125913711927546903736393202955169627542062584339004644118082604843446596579352382154824487326321928484281795858168133626009860451736506888889747678152857103068142551421675812199940971247612736349274523530221067026952437024624172852845850624586712528950571780387020830063962735704949170674463068530186732815712130772563978093366623134337990017740317784648451499750061518064112771978875595280336101927974211263765093528475578947539239448508760110185779168040368100419782501886927061905782113352574911770028981867210575371397187285210672982826314330567565757660439037502105842925922903138098183853259668595297222163212979114762468529482047425486117085076623648080889604865586284868328873976271133941389516892039800965105229759837683617117224583017146215932863932428284503667965459561589024306225093620442134261775688742732557207578216344958746451697579662584296163602276266354840664910403340759689529440977419526809954139774863003576675638013311092013486906200601675507074423866917710325428882740473000313031512270899064613960883836127552068659695049896881862277338554407619512233561103011147770662302570443750597764376669113257716473961093331881703432649476250174510573236566904091099867796514723452721929053841710261917596452026892847259884270641636298987382263500202012500283954231595490090957711480970390423802988010340391930856990423993253967121438936365028543523159322771465055681265234644643616867214863261067420092167353439299564672731329817614630134312185805067012068816003304145506696192303927111376374648998556433822524174443540783317667087885007428336276721498477638566584973209398097778940536664255388980220088748022180394080366844684289887889701165541405861920245814730071363442183681168823911459471792466800624740674428645918542917783537955493760381607649517623177524719422081955532748413811660139739341068045079057177317938694496457367484478763994557429074220237453376304605804101466110652685152772462024132721994693371490082353323963172478499316574582263098028386760641078185050236754589764230802403609866105159225367706555294715628929078373795076519696086055590040427191681318609183572152639103613767631869695785769970506131001117501612064516449152464421368736685068834064761669297423794350350257820383178420901083338314367820593044822184123022423536552056631247271454530151325053637224754576948464639749781376383967044675350765807977810628490622973617930637139867874461805356596325880921000029239753323046002627731978103206570260971605700933339675422544448597348205360961513487024813578526892241255757736552089144518604530302309975139898876801646314715796605297966441928490209049279289951690379900935880015480254975488586800006521825491405224324549676349749719730644722684173154207260829574745247890119990393456247073026574342621312341481549966196968636334024025567560210979320394028400990430662665043018063918558485891273690840926044044081309583417615733093798715515719849513994593922212778306288181340177514434553858391385300437671273757475687096850167474598512210413446468622846013220922451540255680639372728411903116744954423424866239223867741741458676286776002325762024923698213949349356723210950285964663732739697240424316846256203364622241317468094147475504985808748112181478993784192936107756610392414757316541517414278330528324981916192680153951947519406092425026087168615260521831441585289144210506342660992987221107622345183799932868204977964340677073997419763637177520665278254385761638110966141402177576559543430936183778021654410401608235687076064487157548042515836097019871459498084894126099013014975151370801744010085696432838633090270345764524722405176176808432736613360040585500920377469455290519743698674212282729122193072654536572655995751066154902105759379962785715424850908483722105631690880487106967623422760962859304520854794959117533707271167928100705396749449183266239954136943345384221485949559130334368728458005490667114317443218587644338795226458118678771928904744760802045461791958119720046903887525983680596143840214904999000963558389329134109994988746916727599191869056093410002821717505209807706169594730694745078487310506198692225598698509537271227414934337034904611777818852221530503159633473275696776536124630642415775642582212500133690200402271762399938461030868322582529086242540987415229098431164845389284482430448663285128047017127596218366324500107443377362080577200798658537097008385165380005065910051345377972314916566256368432237507639825218483655079411522400202300170556098191689600688649510007553210284319196212402961059989728139322363411782328307795598864917244857333755255244832159822262201448660548982599904208952798152250814633843382240793850088720321591736359443756194919102597717839528368811176517505927050146776267391171261504588704529312430686141485995706520480869029417673701291590846376670013269880098830172705659417916737033404208437500182629251896887464254190700622787131340376418779615130513172064408024832379941980985589336568462482459918286739709078321977457794344537726477712840795956800299958447016391549092485924199305116736984329425344670841396750750338546174096530736835433549962187984575600100771501722312243813046245419138509345761380235151744067322846237206765671469950381531441272240527764485367445951855869874902698966285171034245033660222030107332209455463516803554726424023066673306589699057383683048724406536807181325584105337156370388502190980390122161246541811276664986326802012366669249352248147639991062743136104598852218096931162861045534799842523222908503248454866047162925663149103670674111024083986164330534924023404787331401087881697497020485061605672419695624516241787835067358142935969183554748410330364310653753905249631953175266548835740386968877072666794633183546504392355543884645206003459468251880558934793044012001785701246380422245088238975862391744499909614229060043828946197811924022655650877655502332187716727810267903844701781273321375025080257682125267318378089560486475606994384802774064221269751449420480351556013656914707981073054329041091077358921877836285303732515910081479899710845525734843559508426474024747643552285337097935661167677737791863588431894014334723614850486749155613573774849579196975345249606724000463317412415048487781928459778415063912719963728285327170398792521172209576900343879268395595792704525038944502291133675184916084699433184126852789403231356890889210510642084498663089203556017938603924259003740844693472071915628463738956773020932139766805768430216431422747862229652220745879526284234459622093159000616385491525911256557836223920639957205604560937938410434501988950016570677380513750217887499171245247756097536376303273181183728791747128905634182700377378333326775589898628681339020623072348637999144635567733987066796829705766768585617816363669545663795382331973071077105438297818589132935444262194239672191221036248971009952009635610774406627010446662653812021641354960873253761053345754645431125978852146707007000085338228549715994362217318187878111142025615935154314581488402647226832368157615003093877645698735955089969108313708723406678607871575915857746058929583694148734046372948778137910029223794840233924946532157362866971574355048050533501882551160915360030023885876029312969460210516261237216504656658968282250837353733656219185877424664859840729033453494728429052532984162823913604372576756089344538617770143859050894747028714244989694829642155868511689317810914402789477000594522064179754337668773553872320647940279842166793988859915426409081157026005216413526893466917718226394015382899620463676557093651410335004873023037111068551924686063457554687175570619733997286903134829001316491786584614496298867922124841596934945144951319319488601229456148206307184877259549241892254722609888408595781750986070052762563673702983987612360181244530727573285338659320457262604811722596132104905353065493398462455426379983865151228657236179807936777117888023678903503926767925820863721756427239293607107412689125132183094177223478731751068427659351808011143499334011079156850172047691009344331386288511687703262335152700302306126235375825668499289370496981843789840800770821401676676163155936356978724301101162569901037115017964847949204829415715322508135788286401095548844269971926138461410755051700523994676896302915436926699685438158833316039458111014914048926672427614207967309255123262778126504851966569296401642713280993823010651937371342737977423773570668305895332677203714004790588929489910645994589496229119899996717424532443319499274093021290368378651854890190739315447777406356941561854936143652178456168289925145362637392690568438192743858183494025485253880744969299327193908744888672308652593415232011609119415242624162045295905081693256918464024180424731653350088446764314773980270933332503334457735777438904466862317226921515072367644742522661966285400636753123019738464363126712799121755697657605446730590985928397993480237329085824341532078150705068241962729712753379463385250832578602169207819544668312325462177535026082222076490412737497386671673798182335926249983435709119495143891021289694049243924402445631634626519175852005697448872105985742272981985416392886842369727795687115893992545605049667470151499447909085441100294418044602378504888723106027399212425604444783182084665942209405000211122428710965855265351597324245497730951549300711690486035089452786276476907127785379125928009348226847255907516486725366776625583343678820729369247692305626095449268308635912543363363042185613891333437328030641590225370777094742992109667077370707784366921389009320516387351358633793478315316163139865076703428138208159145791323270701740631574471815179287677345616844909722197111848016364293774007699442588571055774631683303368575736557124064877420936161368540183930559201762319801190002301097168926586411553112690462932053729682146357293318146156288177762649618109143319819212553476283758169704495601983930383545109397941903553397970757386422462387727482766028890661606403004392612435900923465670846374406539048747046687410867782701104531308590035707262550696823090395709668466358156037203627276138037952826811196077450497538521641068094936551648333427034039794296731788729166620186719594185765502331583798595129161009575450255697081813318096793011309182055054765385305056226216276144609600519534028321046961899859197344234434524782421330564924083197403119224463900389225711296030692374445342134245922204812205470035781547694203354634391912770499957388070328302271677268420670105316524788627741777371215977100314150844644014888115451560420228695753381501799587340467515701744196790876011139677792434368727649494823399795451827377437849927979694870243978626997498848303851658245389669515639681424444485102405955030838238494340308161187696816850065928389971979555703118525252613368144109407018137240036262289511780964172491575202707425078579965629591808135905655862212964704189084141931897008575184549744964382459250661723972117425142948188726800297112926040016931183191781631778746166553492696331503398214179069352077111035355991352063900353432273724230472252147500700947975400329755474792317465814253289097778093562376672544880712774684290265013140965762626732597315707760299151153796501932257677996953225971196320345544213338170353667857912055568553533571695068522051026318632935647422520954927053689765212722091775512927318771698756614973877461364779773162453425480543427196011173542388630974194765710561814088728539325231530736163610195429888261887463184722223482999497281768863445188223520426986269399384718038060049049393950291504131892544375184528877220133374326826034682897832214216247376245106093913780734845936817642095269947711357035205475395410716681635503126086483586149829800093476162366723940225096919969469768248552268877904818385701174725122573464703158910816951182442453837511380251594469143066341055585836149426395947907752903013329939724616437013356265397432896725907383887231026797990743813288082169164627918574312581465358047293247408294437092474759293708430027357920407534650389015857331954914945982145655448345360206638127476299353217328943088517870492859273904578904195310845455739832094837816460937096841809634295667842640941473756883638124780222653428684526504326646544109348542112757006463030942683648399505982128914624918386462644651968094203417868587091558821792647449270028781894624118972108222546030219208998387422043927506355440292569301130316933612524113637348768000239643260162944774338952961475597285080468939918126668384373732809597975685098599107070292216463626460786724549724179900808265969029905228986788247033363058794476462637054880427410998408788209963581513139075951794240992346700345853413904559112405794113313948402782556146762342275587842188463246310090701776304464871362838913035102882052699098603454252290016816558889934405309603176887067766664838465595640087516154745884041932692445742948342440707716597563489411665571301065151432614017146125841146745456025843038005079920986175890697113896971574715183553977508393362166191038078193933194500258079200266647833380365645519500696913486315353533185790687508347844357558001891800518113179856528581021231663118505122363331187794777020537025860020716184998414651485911565113730297732840944166530215376715647658041507013865313601936642302066449176315768092095019293603171713334266079524594736663596926415795360722761160518982199426577171374454967539087629714270133133456272349819645440016231816052700434884528262646454789557135406634468173908179308177497420767797396014386082324045023241614456031016044761303309862195560684911097114210776645530855381592105629865986353302370279832099404629722613052052605765143097869655690608637684753150024142554192222025198122559538976175475674014316554837395138337839504968418533227275750964647673826008836088284909193375425289440149753854277466489950043280933080460147101025737971757876396594548328708977720208753310749803336754363088670450818699556281247823303605371894465649589172044697116137042167918207701363308789373212613923701217842750062528785176603940843444459463670490543829374987136514630689280634560254271023937080754985600686203669325837490768906713813615606520218481429754924545934477490668868145306489468118401421668586879170553382876615470846220534650619657297984500679173174209263713390769505465694493686402823344777751826430598498884325260127807950775875081538459259789831859219206819251540649758306288312542014344910141816551738863215453535501550819271405267635519855908301861476379136415225810706663535569700429279587603662762954661501403238374485669087809935083114677145432223196099867219276077753782261802702019771621935223849417039649269007879622849704485580191291768542690755516435184272140909279972796916016992295557434652231943362255870345427678368875632586858291049545978633344217926544608922113343470787256777751008386867522990320124971890845904156068946673445912606760597226515503116370822793894275440518140354086868504923117560993764426774167857839039532019419062580559299430992945780963746315633706969447451537636348303227109909347871576502042226693293535810368539666092557573876265544927062079527590880502634944113443686209762465513404781877078932008304939426017085079656430166820959152480494592586507679445344137207917002867881359636721187822835777252111546674728697897261243422243584570239476753477322662143008444881576289118590488383342793775338203100421252656849577128293465024330109807708435186376729875517163499992352679307333346085483846920915355735842234483296530529030249030586496357051913109693944078415541109480364606637142829402466982281058784941829594782742915424487408892466608487643278480728881642951244071242152672935511719840946248196951745255288386070755168846257559910963525929419151491011383584012274906880078637291376156674685490026029536848778110615420156561526468803232477327266992775356532511848456463163104627300846432198757942848835229787854270692689715521944205044402285619317749774424725882104758531101092530551321562844475364434618119691036113224911897316139446134438791870746650954125579854422300095849794961795973615104292890882310363054596971648026417592883412350115137200936981583194700236253461452887436651944642562110224186210013151579907990871718272748626287349971576239227831719823591361422495589718732967762509040591948020172541287529737479734340688325759918326506589547424241640592949896625885102736179067506972450214015395633077958380758563846207234505994327118265623039873463664799397057812295929285401708653078925411491643822452927145476951254470543642212850141900051503006803353558342488488225250171428657773264521572017342847195479023059292945396277148464904035246800904153825667858860789387384515124625463163081783368858458466076872874351235609501205458407903426730095254962893044104848564066742699144344548182303270222464971911550028362615025533414968173971605626644401960494686035459437126303910667303791817367776541973537954051899185151434202839374797198657743250814430466125873001970037543398670144395567574670172616624907887232583642687898807227441356529905904790202181396525660285345057627835271777855703610966988559876901890991877506291981439842755639822740134833380540898092098775899689346191250219422472286210552308926605103289889279456992250956532561147571337916026302145350896619518752148344182084717367932519140629466265244061144325528119922056454695842187403868235491539961380808264650553533214320078483309773143947539204598007729515596319340865474077948366778912587551658416427103935240162635848488053179872190617011848797320756028845461426505381509624503707363479575877491173057490662253110243230076353940053588478628499301829522641786662948002746574795045875455613037311271438478586863320878633146188518028066215828319735037502689232173795827156717188602502053478076565996157935734360590174673898386920370997048401152101262353646548238494706305479547165403858396963566423988236659820520576821031761899811179989141534556663756087967487188717969761473841898970973935020025574789329183414126016663169330949238267608560377204312113060803779805904410936609728019410424697178721690749716217624059006209718800524503480394206245291709125484911099529841731469929944503530256094199805199703170019845959594840822541281373986621013610189610439086573053171737393932686667444228230575054027778955442186499872660146862907343370316400321882274348721618548502153887928274354444149833277910620066753417560861849310064458590217196285551224534165629074374753095583421976427342098446198497579684550368003013282718256884060089640261378970386002290207538805191362765398702275304823458621887836815345584271255984312250055609958466836697552342489413109081607182086536919218955136952587994346240701968938317926345992249787574425514816498546442991288148672284462480648495885846891691593836366112809034566812921900038247379626943555106175280309129019120796640488010536599655930432745722035573466559131916974696061904033091700502148300226150226604192713573764744855473135157477814018565465634490695438836615105454131417700353729960445117982654892827394588718807356500238112524242701245692623731907445167057561454555487027347829180567197692650323614983823269686160083707363396486863776805553479817489762069972920478731387952055348935341130626940368736986927500871452707460768853708470790282147645817516478356603665593090820455906663241847083077020317117685890794914929874810280294740186565057420891003887272105618471306216541359705107623407360731139363405003468605732694887427055276786990392415910600235545230008252206460894091318435790242066843900927042104006349932985255712594261344416195682748764910043714777557745751251224514175529649869134860207325217327937224641616591981506588156478289362576166300491558063587770048335786779303874349689492294031944737488666679663517044319564579291865432390767660353932812714639557314443066160869009415507429104757302770931619201088542167247750101728305018108232952747453063595424589470392813463197050094721051697153798633129205602669706105181606151516564454234330766828272519098382391026952355758050575001983657360210275841934684995447325368184085822581356461520958894722901508050772717312061930082635751441337573249545087541327518910967904970018181712300908296971119622496419867369617729377630416644277626185451885336611158071646505033982656408564951570081260402572857751376182652371110768370138909136506672715926578669798271756429607281845923326713844927706088636946517407363237866962119128210668983136958012593897034819625711371330448796333273027695972061239643728682533652317958148411136380418840030163685043663901800523744915166570172134400747625912343800225659375713434598959665363375066397310575325940752321650344345817954492499097917557316741200465309875085472795255058141675618109825766961852283975506034267490769319526133489650209053963456835316733025229149510774106606524733947235708766853831771921246425406104169320268193530201902669808614386173318362629836338328264753026170447748230372629549354522540355775885882835226306716197648130153352769757929361832559055480172575310810268890789718534648968487229785199012653592761189196488613316068853474025034549128246529280177307034893243773171987641215365044195284844413347484053018469885505640454065467697234119997534968664222355324811349129178024400712209761208665618402867190932151315139126788958322153958560289214002068092480818949898016334713033607115124878272287108483945394104739806749341011985967170174688562616190123376142915954967934107444201128221602081277999731477621911481128758239260838660842429216010465106082863625531077272720018200252359465338413630560484362175441769818163981620255348398234955936360360031981648982841169068416615677148053734344392604657638200332827487819530065089218860283266407998793481467541385377793909762215820135768833154624835260672126374457089454130265003690282288400232449209610802067860526773090118444936155970671654483194857051272348051826000984612906351299952477856230477897509454474033234978983837540091730432129924435637424312565395601686840606734289035498683778970743084775878808708773065800985996862424485939900105462718750678915174214062066367296122323867690120022839041007311417796107489701247861515707040317964149024892528886095524841187872994521156910961614327446736750675435031839187299505240613405899450768813649456240881663424893272102367709286474862562328697333979773679837987422355276619825026384373851663959311039237821094586134612930549692484048310611343631579608229062424903209591515553896941854909396954604808009148938453459957388811268620995698263595916170397194894071167397583108238172602242179445867518932607091588452363920456869943622402878156599003886654286549210054073684755115162476617558575592394200330181193662808865836533527098999262925256761430678070598504932571690255328737629444438162532841897369771059137631965607107743971309912713444525833285227506299210591401651370599933087908970830701743780218071429825433819374439670772496317518708504391533247983829958759551864669319665367827305143230638395909182489224973587430998709572623212962043392525191887498290213721598557618128723767499646779946191813700150296326059012896131410741149747900136402750548082630641274452009905882539855283376066642989076786141456520935009390500275375686280902345212321167825843546262377866305159251268296835768282922926005484463380826141788220973552270612996206586841551908362786529781882790208612657491941138152827634954109074246577192369554810680924587578894119471982612989272024685638573999679368263028611864949015457718584877492109499111092871327557134329591503143903365334212942810210580669855972165830213494401065560904002120019590326161046088715425464125335021395367165715028843085218274637556255868444628404885539123272274632725089613442849945472332251982910973058737373259042634102255050115704517278683942947521158430717045402082300591815673087032898279358245112153241972511103825861468236891288687566310199994028206256216688385719436143493810428257915154007104430445285303344221775941087969475225628049017566026470868786416586751516007984330965524352869440438554566320419340096339266756609593272511412069558252393375164638220772407318573437373797500789661540263188811321649146988893285816267910058592956239849729991727242332456736535336485688176391258477957305246693930403890090854662326297047948221210956474304727549969989910571010219832168660286744386281423124817257811946179072112321701643482479763045908671647515355020966548229558929448968655256441771917417146677777275536266134846706497435505205467888475263891337059403994326558847211135974998884463080842395927297944790665166279107707436389235946543199704845206796163622563558218663051887010672402972696982046087505279857577038417339266162161191370712570988531732583501801625867909242749690816225197491895140917128422600249637213642524365802706940621051087907376126945373622895807318934482082360295541630715555171200511822561540988340996945750753572468715590236214192180260042367425159232923940906347468029251538307961619589226476496474946343750743803173919258954169405227706256428750743548557646573960846104139478313119771719773511846387759670920851096684994100413101538777178677516869883883722535702926030322819820341109805425444694434657229962602618557580353035958403256149632030606880054243570786760673149059255749569320607474099046456619355710449491200985490360864821519050345202476299002280600848520045416371746675337512630910909876525449444286450631416073684373023724341160782877330112381659372786342340858014239980005048667816297304739150495672292635347312826423482673856083240481242322912680773209460401079652571824578623886349328140986721883595804155217122619684849334267668487517453991815809782601631520632796870847911088364578909388182620145983134955773139773851790825648360916105491968755598999454913140253949681170426943794745298307772077314390322975869575381772560370002482711549519196989312630905359384381706386567718752686332375971787780075175450661325332689164385899765590864736590669590337273440456643640370100278690837317911998581922607166155470322876243501922736854383472831137114686019490176109868645190970552873268266712311947722515749700290585400205202865296568732078617134372768247198621762897220642181794442459488312030718919223846560078678982508795801552964017588743925530386737013770701765779107159771629363656137593595468896695453709408176778215322670631029101427921528761068020183300449525702808589284361287897537371336556985572155581250909018732974089531968629496671944008965635022570166069705580257270662421206565226330138853568799355652816118636401954420057928425964670421645825750626371217202054971677564520099882477370407125783328074463317882071322246778859531715442138795032756150149246909074087440299819022499566215864762786707202246124130500103742791696456425354021725254983124617121280282963416560796881668173621190124981123148414349782383601432108172076436698238052928761023208068714338898450631910635729224014457459504406578370425124618697131433499012643196423639591071768811287047598894141341287528085645606180917836020279501294710618898637082196949474714775297752047125512670886791176618690106704648218167421113267336135334645655726582311692190993944828617071632713676897910146077904208489319847125918232730719103264596856708416830213676647599263135663763903506020886086699611950896984080800038875453592344514862050816624851892614024815490499465987912890697407698274362300086400783564785743583471655938998791946028378408964743180659885236727842925957202002228274353707574326918876215064230594419581854459280726054296988578562785106813055424714707634716108230290175531839320757750495511372216283144492083461836030067734716404116790149773356971059475056162456993448140998218837566330561601583764834800152127268778586420231062318983300964344143035632839811219369688238430448818918925988527088034081666466365639432224590420700491504137830283066709397718534868001754332380621435805092038181995428383464132970959669926975135673440065729591740919883974995413015621388459339132699628624952700220621854583963367256113139711545817262952776358537353814432909436725175901997580469582294648368342371359982502736775390275517530487411628524279124656239647987733595602951078546579778539086509296505248166809307340798398431209364546722449710578016347422347853591617904613038043947974606407236251025931340700345263398234242808924827420218935795617561079075486265296784108417129364468336864057225767426372154841232505508322790865798747522335304594657100831504154683758687091042399965573723891736172104919670006511339005785687188130058245938560861665543478150651007986740821719837056169370137397144554403494033042929072830611970129356274749385985563297993880583738554038891577330512516955038855283401157348315709641710565810226193581125769993589007792266273845682470369929660207949855803591931169483988705844360160465650541985703597311633536500241412621660762194278656719737477664857097836584502441435238226495562488802345656169357911819252379941170692279398904456452256522670668731867405458794010868308163018903270130083025678189817319919067701117215546224348104054486262674015168869587706882012171171867086716691233619761146372542956729980829093311213262550528750057745576969305339994718861246057618895049323592871230034574135853485379506788660566441561372864958382803332346088518989440989391710575408305122380595346416904370713305961586854341691672722247263102802892066595917990371444887655436022642457807885650244449441150311260664104760958332663289597730504356997698092399180656710857971597161542670767978853982559183689672249887844461454501061982776692618742476094651083777045747607846635111340131802226141670636111054601246792587010054703724767446213066321704323400538987924785038999583475654307787742502935708465388585182390064276111125924742831390024050104274237612716866578707649066430276912075283608725822631599969193414570744815763966417023765822985249412481495694587417616159402668375407466934923157187483322167575763141031661144163735255442841298339215600421221411319082627025932064049892402143611295565410482904773895969308954594004302897260893002152283504730786438087551181647308697076796467201826817538127332093842056972584126851305119610106450531856017042451902562103565569973716191488004914218274841295928355509808897252220122982370483264025252401804476728242382332273777170594271532973987282509600448896994616552460812676696463963567837145033724706581376624200155349379936183748421154758932632010430632531412346053639868432801666813174331684111663839936040116784555619414668362018764130444114794494570356376902869870711139047247402852206072741954344359828056281637483109186231746832448890405467560074025425034846372937573953447895830256169952640559200022496727474132330542239869776918098744625692599341574879876322099705805774401163783870513708060823145818435405446642368755729417903927530495372180465664708244076984273741857012775297978956582514928760282216674109992513013624543959231128150016175466328572961694987644392572833349342276972569696732908886857934378367042250396718165316411273984047259725651552959065951690921878017441866697670842436726994154219572108418653077658687715473639682728799824745957620008082291252475375467697158121389952739287506275511992293531098769902373817250025977785303875016790090424207899293523620451432208510037531267313408993045511172389929566071796510762527878094811415844683692524051101305140564141627504368122648921369790284084099043750383630622238662360195634866718712944301157369322070468817983375089152153695139422946598785258972085827375580531357383480243634121549167105479022443892658205294360110958485247492485588459954792210900121061075190115682056261183051597169167784461601535232665387624070917435262295063933880278830092385997849001016022241758074917207909525993448864506800211247817810519057518861055403656703801683318960261990633646415094711080053696083396329107612091954732122483306274332493140522859107861643740480958548247784255784945502436015863285732137172178953291989929879571569282919608423400316385731744607181394850735738192870395384470623457973088322823187743003969407560304703304409499789492357316237967415671841783255108095011260492014804655558008728996299739932405663386495485682819476830547163268227036095065221893606761885170710609349465501907399802077020686625498336643391736415686208979044470157147713479033906470266385210066264028676386725835620925159098173356269595895612402459941149939214087892466986247325105110715201935819906081260985107330609043315346948079333161792627052882364103135779589852521891491752361372463524583144246673681148262498393163815919416048293911827881576067103675786937038457462325639230836670919720520418228025354321092630959755037426749459135135193130274122533076338598795905817614347163626054312795564857498937709135126086140494687477152940544821362090232123256314526015942737609177827789116490831425925847272857797766873670403768529371380196450728279305336712168102157611293119545293433775846184570805471722114515163485274339453429615271832863462964649328537662781584888580485214384565434361203348882220046070917974243787465482172250013020267902681957180000891383058563547575282526697870515371711791858101070087938140947973085289957949304323253022342077523024257524783415114209252563230336729036537487892055862830394113649300446528841615234382084769220345033421019152692999966930904143920268585488829690535289077631633211077848214059133092729311616509386691805728857499092446583401445274161984979146492446791951895525872521323952928165335020718590851308538757442798127578254586377525862413237368108538430168862061007777948397063115278052692251154015512381900027034833849695012894971422807973689882911191344170646652042932659988880355045934130577118242356779917368715075060535668871101066842332809031808686762674791854622752034230864614442864774305843692572569026260104655172471757942677692018900548722336852760248110124671208994628262407463119275285283726416191311009131873309552671281493898175508970694269985915994848546845057693599620297430427829984411114046912225828913574644475027189659701053680208700940479593085868788882177518477379823835121431785513836035878958544882103747302663006055266018327161176802755906394180007455862977233657424536383306373863732809602053504308964930062451564816537098362885368903988183009358463528806438209379694722388869971451896968480809673404031586602740586697658397870496638016884811010434208900585015047163746723401532510351980858665394198910872360926873621052454208484527409926617564564108680468844365227389709383435507550245959659684944901339252812139682137594501652487710943707914071134553084520881281719285898283404766020497138405126758126575364335511531931029570590761937399380127081217417694090633900378253737431052125222960948222028649762749572837018974450046546824734256439144758372066285011724243901136806605573260338447423164683780379582051184770216773413669861817659992668131680668511749691462954502066400882992278373822162254128090367538950134698426123478743163339102524741916678328984135826858605606095086843197756055291826955152310606565526341120739440889734666211013696902779102969765663145092567247213922475281874849466398603752519680571603363725487850050931902150568580807914393074225884604023457736633944893918683815881075454854499550402580245278237736688325724887770271769091146027287134318352532506700078794120801641656845874691390077791880510903856073317748962927365233484931002818731046649913893630768729640214596394857943831897754952761989328093925430352380663715647739117933988094819706518889578376865666468162497031179425146241509014880592987291723425676502365240004067402286990981599060579674015537472523096162069993190381049013572659076743730805101638882069990396938642795060770959756596397048780787540899214538274760604465823117829546122359128882810093351789700256882491070300062442528750163671434710408050780788031221999828262302309177633067265187142609798005459666762514462663895886715209754236333518702569582035678787324031849463271740456696438608079703708649603971239069290304689050548319320447127714608579148680868070401619129557697417657254649402937452934369179626116403851651125727996057707186421794534023054219002006882883834080925871668514028769399887071961267787454113436974844454237141345954236144697835012248210037338343563688533827400064787840398770929269674159045588681385249867075660896388434248754566174782373843627442201700356685380960739438985616618107561996540806425936709482228928074007566415668945212214593911127939180293337962302141117319767781592009597633338567726321084480361415015382078698878197158205437357699348256024195261995550423976454258111734071301831760294050624565244277712175868756222576236306521042088366160164981432845927268849355622713836696555108122280884411899396582981773438775796486903408975704359985904841354846736896593012647303335090936643777135524266247205095629249487128182988730519713968945518484484992130329769762703092040708080661641954143889736701671749206821777795013790561068236828103990119906590324289770572357912173352952834311325094758360258024401693556184252652772608446892999725665521152526039084042861278598181440573034622632676517696131681943900299800982956664053792452217070012735002080845092099764134906398616918482092327746788302995164635402062269125529521171381818430149771405934389014223353423639128300424170251824108798374633657106956953065528018390364706921861045204839644938673909515021529931309310890344554707866044647284394205665694905341330017699586501746707930986669897049217299217555216912805955719481907646541871038019201685006146032703478507217271310745592255528070653469959268063136716907189789626768336416469283324487376155449499111695818802954144059280547600814216816761242541853651373700976933092302337848649901015781864831777445344103121544667684977333953761862272175210587847626144540457783566735605893227322605215807588346757741647879885126751914058243238837791529981388000457301303223639508423206007767530615328819813835354599038917249199556112855841670026134792743685432053837124423237177479123255247321976604313880465995824728955767799053620353512291060762171044496324216378429387836353439523931263713090835425309902390558936048904981844490418419029392461452572794381409857939021324253510029860589690918655348221947248643426757752909815292197675449998862471876282643103814351207784749205128624953653858135328965628290026042888015734816926924613789913399840316911537623241763734473587345706437772170410066316853279273336088604272320075454034194081799368454585120075677684935832790985270975215050284981625258196464785956473700439851595459350976621114670791946833923448208124568524485253117955331377318290977623082859599334811448422461870725482893873053125978621449656677297272154943417806539591600442379356130513737160154355848238171422273204009887401611228734715136680224757309746171465540801637883088813009488677933883421989141335517081937345377331929850716758062896123101142009868909318570406539660249920245214383614511356635263438700377271060728974842462359912509674637468999093670246393695660710478195576089816134328095809558088493123632596306257096051586655357223439015032696214716667126546144083754391357269587922092811617866977220556483817487249464377714233199882359308766473186653480222343878987411523741499179323341270573518744986271895143131182757045894169372162527318442493561459256848717838851489714565544581070012147056381875488278867501939224141276896790334025194881121763105922481675197058335314500534004988864264526385057239704473869043783116290458590240301465164397908726283649594288030198972254142377833805612681320960390466586376464732025915062389741587025374249819171740547544546716218495228657477462193530185870513301309679628015481698240763617127131366723838534214054011542529218270575686255714106831878440836547723667410917445760940718106562424750467637868677569506985180647619999752184274190736682468223578664053142785018756568431027706561859878066836609883984248621676551257253224394610137536838592180822228549809404544415777290988669390863673796451567220933214206279824925976072566323809734567108321689094186155277558164272537180343984662097096341740225659049111749976257854084340922508471915333706438542171706078656567358779485892450272617199607231484444306665380470553147539704497735345924232930823108717791931177792362084462213489366119688825145933727158238032877231278006472386426212388548810188054205857870119605537532957100576541692200516149995905045682546317552330970179990383219454768666497167442816539970603511127290668943463228701322745771082055635497698422677993744383013299530298584282476258175110494857366951664062409516211084717138348769306818604808769155249226947150302304426532421315392415538043699245562200978059207393135441173899885153724939618582513353608010780960614842658926364166816364913251194364546338886011711857845538411193581442585470640476155581191341137823568596991128317021541525454275918715695646706079018976051623436940402688602523432453471040700408729789190928170750289845194481018701574347518361491236423570818762453757264223477489779994331358535007902252810691093262542911887399739130508213432437856654558184992770901511657480708218551057628030434106622699900971528124197470625886122123154100374662233513689752392625751556866371906970760547269948910269256604096502585363601888136378720578193230372412313158898643703018663360918665841495781516489652892484580383323334541257677197197197699338225460378288130580629151943703731430594014246043761400896705759763956957660271899689120453863606633724740675051476242864609121424278949300367342319740249603304750502516668727112873168229158999284342981183772161643994458559615219199690643457301952428382870744730302387226941122287998310396896476459777389158432097233302722820151563555861554413079251536206734873083229016442265827227632534891522102786770306677658107835183583767381312935640534950464013396712711441590546332455396734640160586485474262332214070353723656829569599933197359627872275413998995076896294815676361182481335484127718112118208308159782570543029146000081748103351039123747130587138009205599361566834059877141013434469600575114012089730405262682561544189975608614801551998492709505095050914413301088587337993867126180275451964382288044849011258982729283929905924834179208078354768948587018556960010801018583798895283235948205390791722510604165856294845197544626709754405328657478790026465196166143621022467117630489797607984332465804825881995449729784069840551598915273699743534858900316101556507441558696557377651998136588732002464079127782308851880259583792257612851566561409695361053590494489542672280094293617051063856877656788754566367026674662061631689881128133805152106661855207392386024565699055938977719043296235977985245291449290607628181739591524668441172872240267764195757426203179665557844401132206597741076484889718163978489604958126538848761444375427811497719602076485967956345397885267369006164256813880746205848442441078631213462242734961348588066809766197836286217013594325490277337054469834008448935021698896219136610605026072979356980083945715882735585417491755810522018655338291384135520736043933475753885766198434466097452484834723616463728868817395503267174253894240752944043308459315282108701729953522792400491494879435925544478136862161110672504678450774481595339099236692249266308256341316424655562547904436417039924070217470302613299932226667575303815966488578664225003887858143757445740760216959910290306788623756686809095797921253256525794404603691081854995609500362692357285802976630781534593985701767329309784709214137683603678936088532548158269869999794046107912339010580219552594212326933093604226087921571203136168600912056609573060653171808790117880871871662309416127877655210074980846355425488992728495123729416702925117760750572690565802286751297375313338155951688007231514419942878945590209248039454859649909107032781893302363226402951454640347343315300635271456748678385080566081572541865823704168819281043260967789902394121828631134216175073201421235224777513941234857092954434769068987623857958723471553516116752866757091380989168215845326732953837252675218712536271871509771769739141683927929853892411025606987632473860034159157582761192460790045542604209768332834381227725323359895996475048394173873867339458092771723604831068144154465089170115762432188295351946158539094756816379488679182195234259602813858048726053627331100212850048446596904734250554817668599410683781021638040182327413383553522185281660190041034720940349333022852093686922851286717705958929549679337324116196519243153364053095164738479759698151819676247514491417667779670959314306433013197390210141265636724492807930012037903992464794106305564088934670674979988707181249898730788049698866826394078552347255111142167409761968227424472224538745687992037388851243819076326067799189025297369621454881622672359942905515567514027016766623227928007111238424879639553089886946212161301933428134904306434823070075622209893109510366264343947317254422164487349526464764618289937971424648807024156415585855983933555196706469869573764291798412512104118781980406691365468421133997605159737052473372331488245714202497254822891084265806922474821878718900572371979750666749161495448215012191095091998187174302815183482717783166024781512337046842507746269348436266981378927039304433555476994523517309520847362044401134006592060101117085567459277550626538519554846437567128693024618484903019151580587703393456276279710494491218769427652585627081545249132188728111423635972754516918912759384140527137312507524537382924771852794582058821385696259729335742662502132331310937619801837146429640497815393580325967348135827777371328832035939329081151980839751131201899071866964316442605204278537469275250802251849986621236334345658779560167316516990753075000596841867766676438041799915242118613711650230533068202724924547174065481514122975354255591876150671868642242306273555623171513023806222181832316551638513018482597525025160400430074960985405150322729184969228369200390770674606243193455065489106098030357930980767285014811806478023606253249692441005841140673508263924304359202508377845142657016375320713026351138550739300365429584165060833823582953925664552550335325388305799974687463212531118336566001615578720383779616655888254965777710092688377336024372167296968632792229203296972802135796053001095889640874314777031509625197362163431468496679786062158621344880611295484321547332144655564393149996650840115597204700764296969780256976839056357285707974962098494691945377012200547427196590041202846927671447710993132022801397705742596738915351089901365891029786331067823886573588428662244040273083946605426307626798377078853505106921964808106704086022176107032696123883759407109163533095726448777356417610576179105418841485686617331646303743996108445804352180016469406987334937815349672053630401306816917453086183420325274440592341073040305280116506032779071840195504799007486115828440209892717977730466425123890754747773728912300384696020327691970057315545732790046569050240168154105048247574047477292992778963791255208931073842712260498199494346525063959300574563956708802388658126903526170988879736165924989662623966209447580901576705129825507554317354621548979616280828339154331602419544161417247452196186051842161414122592151382863392301169920632022334291254370249534979438241597342015620148080241306995615877875649777087574251961143797985879198874790008968844441563365373482475060860592752949995350941451767692112806086329709689968770901367496038037023792718367873447161586180756004266910462321328744931315802580851054047109164408491954654909900317534825550459720031199437189061504378930940089810282759523603106736871893845398218007387115842703182019498622792656662253918743741836221197219444406385924432525635489904255693140387370085748410114708072851375864997701311939669370990166772920817501736903318256808002265394417686633759888402303325376814382619557275961346189580209553459213463356052672223383920362016825808982789509289626337513499999644445715560715317527509404519461206365522534802870271090190421189080800784345482023142691278881508327833393165377083209595912840408306910091521520854812404429953003218591030363464098675623828598323199287404343000816301858041195279692827845572816516989307545444143047250687240313567892767071914340654221133849347034671467847397196471456401805205873462844436227155437627039088357856061904678742799362306108103382229644786597965371865339968522199600868598828741916540609835012580437178974311670625565757259283269769895188466503729654403716470521078849148613393195404111336388332631661965429312627139504803051790479636377021948372235054639610333427635068928149869413863015228879673022467302897771924754679675882746647896736231208057137050085148572789553021665328176960328291633802031871824805467653826665555325766012434266428804362766609012612894977615176203797221948074169085087511358223096541998579488536651036821162253404124426768789705759485895142027692801464512014285586826704262208791396191098570508346002647536592166312168975061054082887708311106769526734579002145006562097970196053497183396772604602149312405577132536897342251532983858769959704488663476796337025323735165328393798828830977133711158140197195809869753600799909944162546375243489184049068615987073662263298413203461275964778943746117233350442017037751263764858000818859835859460471364021291284469008404878432443271211266036601011727592033213496545438762839689847913692959172195740448601250715012843484092592919519956021967987724111700927719050086795568355734439482709531162178273007454755866512660252210943452572871311759348416200701494891161601968653862330506527591655666160272972330022054147617082022004060867252165703300759318054550321274333131727770184041095344789890674802511206001622989191474118769343860593357383289590654205936333953567190229153404982643368094061307250319956478340769905003227017274095341050519757630549603189851540858102321194940681597004065467728295888591072780303523406426062983443312970833415175324459870428535370524901738006805721910743462959435611172420901732508552407315805310677657955429661289929295285288916718442156749042912129494594782375011132709932323192760347672201281322264620641171386263496864925253983395302875792803022580265615455017760482709589028549129121539519565099944019596688448226476138146088688942412604081309918033188090069200982709962764155261452740809507134987481466299432688479063196199741756937977442917696231834764688103949766275814400609113549022652376308800438900390877136909227414892482068436850357158497293514611141542464329943770787161045868407782339352634944848414607860835349562838035579617672230559445339303958649707403695408598384475779995428969691662266334682994050765470476698041128270694043156192857948421125576410405383528550650032137046023135902011895101560686315823078095209548378768008523172391973242022170009664163139564042558155461054996677649574565206774222661926223064064665084181264204943438697387674843237701344031360670665177563380952379790026629584520812158682499994709377074438338087288337661943301258581952861180029348648508665146742971709977574038263002809013062368045991950872643010746436903331033259684626352768446128287850403351134966475415016282808552370068815653710151113928338484606130366262389606251235454108778388487010065159289996556959417181391257233561733945402641970417105263461243626504874544745380563154729567861563858319990439439399994473981770242674571684543057027857147430144057168262665138985630693515763718266524359336246055839811235784322521013278712790062153753999100686953300808329133491749457172296886118166989833583869291602755269901926788559949057951699175871666594353386477814969610391358199871903187357919092823900311548400304927220267002452567933252574782593073124836249937496382624896672296178510903146031598209233460997833770522552945822888915016846314134018145417806342048074475603727509142494323295332962193297379148268519183322295165574625400742887335088531824159136642473285602936778569994455120616288391835713874465533832571628281803038287594100986880239889722201388337683634156485104289296853747709877307935946019227335394519690352439984503225180283641058160373245893499322406455123622199912115519572149414821818632855774056638725569406773388673802799370358542994451942782971187505281666764188606281107774269254373719154259881489719242237824174082870021816220669883251487570241899519012759869742037185175794213686357207261778156149212897375384231098097332018410952509003404243837585685421628552978531206200196220383377069673219736728018935699924932900499510195725735848661001980310993752537142683958606679617181400780442491584901533380097715171406244545097471519143936688848581459678643142691369540329167124528837806731328262725691498359655579477035223487487298891911150971014733502239223214512962619708662860122553228446252523276285100228296126328868648858910941378791969478226010958604179854295722926524234483653350870604199934347037443750462230939467222410545812601666860190568917507152793341498116139185651969948407609316562872123191960298895539355977736454413182154127598810474759767202612643977774859480836470233867837146096361553213418357023493620758860571616776677580852147627484194822616101496034938944454262975846197735140942880722049683376201358199474765073534248943521467715731177790606026196118733920410570688813280932803634109938091774859087815149288433120041923802335014821645178867249453100120811891547232702203401395174220500194888402709020971757723251380491287424269670468877516198007145008843564949049648954274959680095936309482835135350126126670399529299286888703679293900723856474961053583482314397235211591951421900676650088832805677377982013409515470471271212112407101803241901236497366258991693372021853907215588107608368014991541502019085402067857302797084208136258036578038208115288748149124544865958425538637538467427207807149576218829121947862318622774067257959100285611468350576716876929713349015089704110975758793303914017157249825262278958799716967715807577410259685534696918999085371106101127388806699576801716756633211059173749787518691112873372516105035927617914348881039463766491200855614444608712633407694136013861416752440005697795722778738690878556169439705654339681680205488392358708640497313587636368795429737057312686508367265514022647095151846151648356552816534225140034303559041773177255926967992390370353794016629131125566307060484716485553453106641317801435913735955337447841102436762536307542303405459999614875454364691346592233232066816073961777189783456947665327848215136452368765570763226339275624644025212514250848447880177562125184207683806547393663539974817507825718858171421500654815090981021297145686274819921377542390269455158398761170696796952190449987274862243612629195730343278768266313497169333108606365673494577898208706705058993262426940876383961008719750814740695223750959914496940457441246261456582392002486344067040896508024746555006993232036256237163551289331579724002099874665842537561611525065089180406731253481421913501563277339377991053195253225500124834835388177818909412496673705187957583901344891316773466415741909328124228531994354097969077030512922902245767243996554377365590548511950992939805700667391734804700343677072750074594261540725858288915121094274897985422405484694829742473784693467210158049536432877456505994424407195160242186698018990687617304295816573023466806034478326621350769202003501095904480256871709054139756089756757399287592331996182365907776568867831573439848027751338092736591547701484916697209858580754683182163142746628462078655127774159506532693676385151320371711423863147223021586660386582920624392330874937710458374832936661325249859481635120753416354944042091447209622229543684338469631623368886209632573617849304395690531000970309201180922476157434406581117069495549500391825054571998134546290402518562142876895813743329768048061117969974505617934482660752354196807030669550731209445126007674314651695356210137056759732173100885156628957805613579420581559877492708566612928026577791091863886148064044575483573829011179906664082562841459986594219188049170761861938832519146168224233041806809660887645469098143939986078434044326059049785550519358305406249174047325804715411539560944458953682305971624999020265410093338836356738941611035812140949787169112812204677577468589674755131471555397960264772074120437602842303715280427608084433317782208051967412132165919778978568775996194636601610242357003783185775188616213401947578404346166396300800173314129115815062190401186931614675469639433863290817530533003280475883251171809908859121516589793976155196652147385876547740831391666754685870281514737587975547596151671281055541306018045696207933677916424090481914276348496556747054865399682149731813479165332657269968174776793439671745705241703476980077577213411224141001778030744874120603953770113104413825784832269011270179548685067320463328677608120502057629243814019858236248067756154850677636150310124667749894927241918373131763636595730729330386373308639624201162262826597424766931426563919200153068053644328618393519340510069412584589839568218981914356072254765290608004276934359020325777133962155067891861064155553795157330065567520512324013314457614497672864140450085109717295723065398791221809807911277983990458669810670056659917012224665845315339018773323433785079402489067177312871738839404543366300155019906512911012366360173391829247465338778993144138137534686087256851428526406296956707043201910821651874307620721924789008392514172839860067172403020094189867297816698315656005516794892705461710763429745045035844097892716010179539029873880457611346154132975167286074837829540180422855775609298031816707026261323911610038857376721057609533464155443915567725748074301556367494612142798608520958793031853540468040811642986598961646197429975226126767307476248973014392262800208756789983988528266013052139810557036303115399515618477867487913971950281515890935450214290151061849915419116573267654544178297715713689837611279674021490080508400891760843927447680316779724914588452931980410718396727034716813953240041043741271476864527445422702728746515786844465959724998642585884388034555918272118383908593279732027977712980201252607662845672154318548980270885263032078870373125531001903606449521919878517631139176766789431717086771949440521022617678464615417787986667445935304851138715528370766993761799599015300227730892873264574205458864840305289919575850217652792174355345222373262091701831367247661224356915362011057856467060208853583480437753497917733555062100236859302466978958095074145792804091714415178635267873975201091201769809120075430846649629423759517744234263339330155053879607760307405334543454873225443505833348916693551492376251617220189798316350475143696976832904095277254706697257919550756957792585277025345814173929449221450846994685664546965873990561969123348347505203470540984339120079653766282852771664944485346336280891812883238732896892650352811272988920247649749319356953096606447080629783505947309444557258053467329365542776779498264570408594854021181943039236372199475308323216688965306939097307953261840506853762354739814512171223224414998666556429724315166843530187459520348499790718378125411455782759602501003517979225930820691630057953949121613658007074926418378850048775647546021803476250594901721239336497827328790633030213767011242174001518268467522182945884691649615436202306777984759296386970661189492467801994439715691472934976810828255093839255267916121796405260890783481884278409855529583294769015347848960634193179082983632451449543318516247718945445077627025610330549081528987858739711032353546053483682324188785390220397932036976920800650042417670949797524993870800361326362270658769307922090852356230678782065810272665360822294987943272930393509711308232754892646425554799502418057725323248016227682453885357456982488819645986944974407917638086110247220322085864507064477794309708537054708719051826399716028962476704908029614340662321854248522818737827612871287629685484234243559652682497708384073527410644876054531575197292694898874351503817318529997731100020774494846616365993449228114131131170876292383188559565161080252574017365728750658602925560374188299620921905155090543950396764217639044762154832388768945965922216167699174056535057321886452359240606229482852816492956152577576183129225545216869881040306929936302160572651168806646326271241777888916587996905050782272910731249906112823931700861814717749925035990909049052033093958571966080706423737853858835067098158309021490474220173211436651040179568547033658022453850072929210177628232512767584079368013046743473027674960488510113391242079080771893215486847318424975991396354107886047165908813785875651376006307955263537914591565860479917568638525405063744656999322818364313036173933086487255035980789570313566490624676740552843939307894846029680597343790698757734493131783119896928029227546798584204388010926619286749876464744516136373230304163932667922896241691601251066149318513335851407269933409365394199539004941405280635141032489550343404631502203292893016988931025337110607134832498221594269449092984449285882499725217456125777851022092035398073496817383459355688904958824804986220647362772391907843750743483090974326154606877539041629227769195958381145877042445137367050074286373657358609939935669087769122847619586175930244099683595415082510193917785862068388393127046358310640785731011462556906016947894664548748214474474705223248749924027506101145191719922421110576619496561055913939458995096927730837467517506085709221842719149655465501098631735064269541021866766510808004941157965363469791183733729082371466925046067177233285513485712954674876036120622080958472196058259744550528746820532646507833389543630109446408682658064600302511583458341315135296836601168301362984054326143941265427244083384039826100685040289574411136981009186315094450310531461770878404484201710298594133473955821253918009131281780837012652552008644061927291453241424726987770538515357738189935099897728697754062369295193064265102852219912823647333276527577383180285456601291415564749285386382301305212897548331691261412999470220127100446415473475849033098537748532598843866051915473747269492972368382716286849599248890328271639104970163867467762648165178682139089542938876802324377737707572313622678798159165516652326547949672751271435990217706597603180235943717943979265859894514290271947476385802817223564222573345864101787282253932520059034774061918073467953963978302971080318898582652559856111936912327995433906562188278737639295819561819280143726005127148640496935264686819589721977645810026083368732531430252139568263686721647943076702548248890291696973766756373817434019915894528264799792992177984995252996869160941323739649593679505881756330714581390010801831566302788033223575577937137429821549149948350595385445151360066419250409177169416378109874768579533720347038057476259358409598757619902632417526558205863159683310952583955818902416035136346742012898146523804816138637313587502682982233732821286617875960009432939082630775204913832366410784058139301781126591411194600572746218363075714262514579000396413455592546124851807161386872582238530916701704586011683576184776861053464838714342882551942226497215162599700197844566197138233475200389802378804523650959674369456591777948621374624647334607763411657030778915645011488390914013177835781936359639820027708202837715756747231883897870258193659425530889200313251428867963190814110028657092216305398459851966924528897947894066779619872742501908587655506135080136593941471672361166512246336914935833732872260241315210781592654669123734864622961723863257316774176832275539908157772298326682189117128646663249908364091429117832946322181713409055217118769752656652965882594108239345299693203435044559365387643838267216157637648807273475244359601297151482914098982218958465448248033169848014871846171161004210252993698781725362335262287710462579961418078207184238154398733892146578724977961019687675552977986890032853382268891551856794391208565189053674896310041512651839671497187596860058172259578426595809689198032365335116588312254181070347217859888618371169459114742282681655851960046097322544141316811254516967646019397471590948965853397825331186550074384665098134067256485020194306617542277669350618571200372088574587241549958833677314541490142229146859431751908821484621446128326944795520685593975755169693375812935791978005369291998043410404735394190586395565517070533710518004238172591267544385390078990791121182565939660639091255690421207706052566592170492679793829601198357644033892199239984724852843969707787947114058569847212447349108109350534283244674557126342920620220320049736863139533576660812622538183110711940114884693689855601998084821954959982555420510269647457717632892515757476347120187888916679710702542141513310166200195388747445650587115404837949316143872499021057812095384099097384136542432905002871603986747262405228412701366788265462409073131039250995503956595096893479348535986230171051062438280328984678758709385683289806171303838204061298020346936226652224359452376559175659586895411223996608342729886870642166355265221272997402809358995363181069842712523635504456279467778010333478858386292777816335478517602343139295867311515672825988946808537021988014753761535872592379386783994501606472970676620130504476805431116587780266945374786683635428127348269622046962687907855457600706834610446539956273616238165106848022818036228439998770063510045624374728775304860849249168090105154589207584565135284890763129972501241792704588754335713757853777020548373294971118812522034471341444209426736086459351455913828273285925552952619469737811325559646871044929973471548473688147294960555838459629945528098618570270397900279172446664589995664467293120201607042492268467773359444319945528617512761096232339938886932470462559526339188667258316130142797751289569467399214832123120694723519802782384830249375126158593043300876977472996401178603789010357848315213148665655864529283333659669914979454442703979764294779494587356391191076987101283716705434461224562539970175278635489235434592738897604848042072157211114938973955188018658410821583170324184812620863950201847868715985496373424083067654266250831410824357486492384791248011387070066118155218869345183887983262218772710896171663530880087478930087660237960934609636372301591872727560314392064632099103253473091633839240939505527728623903808925877111275359646999839359164723179118027408692576271785370573262434770638719659422536447158405969735900268894858576185319736584550237528018158321007250738272713350889293746294864952880377286530496151236059657486947406466985730992089336063789605574026970971532522703121365653924970622703056784345971760630699763821332303143780262639460026432164136732730348370137837466175315155134132481879886720106553910866252908122412679445340173082005787791807983576965378497428959193790555821904531856135311742050351607959691995385331228341588839490227139151765181358512493959958799796373834544951882329717067009416369743230308427448795175875994253087714837400354310108273477215185011267550618292925673053444124354649123433112466833693897779129355188359103999363608369566732088878391238014120776519845108815448331546224624283167245044926278242057277366839785733840588864536189313943026961756551490642477525249106316737576877152824050048117098316753015520813612408958413008857156221420860318000661566424208127620058038500849211308678484644116516610276546711653643715034278986275786512122842749694214797330511445246271647184877146968484569605558776319944912579562266598162010846217260433937968145133380279975727872062841089034364268996348066371117202927706511355087198510927030628862622103165344701507507813964155840680196744665133384646008575907211362039833902004020096782660364412724758102986028177477252871519407447941788138020708550597966208007162516282215417846209723146216563875728957770100983632368599498837419485415671632489119196196135941487209970587095628359794943603847075676563405988496576672198095870470147620317337069364156047342231704948852289787208682602951432753818368822901121462492959681423261476170094220625968538901990647948236128982168221080071003121657177864012072973950716959073684139427494286917587633542618831725236798564445413724390917701881271895065547519025828683500080800838465309803130640933938399738614712877471782503870754367798316628437980417253078523779754383621519256847447954772947613240757682993947957334611485987303777966089307043396585367685584263450210611761118640208362803367548989009626797656336994450223781868099570458321514026804454988047019853375244936707408702787220288226902462075735097167923888761815755322400701082422421160800380830144194706002004065944800818789916986022047018734777128503966668235519382646179069494876066053757892087231686248655796350711282437339396876772531447947974693357046296618430919707353586332628973664005994358609616646065500543842654520066852540104609698223611833695538650405462959478922520332877388948955046332346602000573520278154864161825235025906181096645656625758975465779867831949549589326409977247567403783873674305004864695264024055892986153421080988140906131520699633264674692929056273551998004278424551972012916959311968592861536441155087204719037042781161382774141257736636313460200398971903566734634790412432932561709086923483041410593203439708361327816226073880994790692389047522637584299869301361871893976108960257026477132520585720976823453183163667151420891341684961934457756826835888807718161246774746780360775763875963915073727157735801985123940107711265059817999976420786083201580340850681546983965132544500649144388734809578175473619732543031846964348478102833772229698502245606202631832143516913212925462378458212435881233799759808819682355612142189522428069931789001011481842529999911546346994248093886543109368660724422581019531335407444068329177716346181381578825048195037703004782800273956572622043198716347844596001019725654420795857148674406676057342110380092759722995393665476325916990694329712902810242472294814588658230254197046483000432080050752081732176445663572859889482005673576129957673672323897574281340487949629636018578282062371369972771095301188292112084249207906187507919362642500983817544665198142706489260753682898032959363229019525165453864856966573889528958830474878925260986800112992166580174055377424180217019359036805272173811362340323362218725642578895763619944855488931453096666811679484628452037890848856965988766847007574558817640992412344049821540118377182188052210141149478720184637743891753605771083156824885486501801667961958452527679815971502438641415048435968573696384351523932814602643901903205431604032164441409902872047452779477566638875462460336368911006970164420411167402323052620770721978887459134642247303384816200720334012342807498198655905931258111753564605197276569629404326242835033774282208804706013483784890602236008603498523145486057614759762519951293778091062825042260590225994349905730124268575281711598628993785016836314589289917588609157426239101581894771084518617324651913086177654385348151437199975744235060072984053183670616178464810695439595496320221787003419316777182719748332755233161303451877623226541908617813458945805789506811976442506338946782458813626213798486282875567331976025136468490059617077634000338726631232638407948440737775701098410276272448171946445208562954995076633098203999224054807988738392965946186232328572711269419446926949403398446310662133408779472994493881832758600736470890661990063061257971880948801441228573772166509005393007743791875556049346717006242755338407535992178104519254151085059413044838412111218793411861319724668707286252975562269866336279835785073076783781159828997743948709167351731643231257669215573460345577881383542566909657672254899451127331682173322507303021099766454054421644663709676132467554265103714015729604947719479814338964963880692731401025059528270395066950383569232998888040038495067334600263786661314919392737227557900747755923970335473809112210747909285083601412546658292280625973616733558628645817763431744262847918989933908461928003025787904026373073368544414398196428979915529267797154379879306290370994845440442104165930062001759085891448967254216541082720567388765061621729844964100587168961514569713604101173080735366668612270216615798732755829695441034041897508758359368070896587798599338685886320405974224598981259143857187742401576348481746174343292971922179637319307319811969942052187947206217733826493072402178582805553944664279845999084064137470483164190143445834806488861892218586053246664201754562497440095848249262920278258032110828940593794163328378926077389375278607287192808604190091984996046034129136090330169731550846451719768508192727115252263892822499974381612406019805735652588165951207304892053722832299059085607434119719753003633563852746279377494550495296363475512944392699684180360452549783406044771920367152627923863151152796292705194870574782589668462274893394299162804168660576217975389464521407478902964055713270054161113874444214725453362466812050472059206106973973533975818946759201162426504341282193448212578048827174139474601334582959704755139472606556222543049664351314197328971864515317384655810532320062799551082935433779477403949459613127444418903559029712053893536531890364331573796098162289291789303790066670811480150850934423172731711469798115841216238606332620375687630710538232327467342742765496362511411106028218562208461001395910723613692828295936296484381443585918024080734972222152479234824900565376471142560561118212987452463499898009108190025087570590549645580187032674699389974096708816967502420445324415719657910443193772027539916382521287815096331275027351199483846673630415839039444181586269675713817253098566248610784310203492307262752853080668984583449285417542654313711217632007611961092723328046880484120004305919752513576452379108621243072554807899095779627453566335497509928814134104594939509354343755136850497819749209000083193783038548511246055056878550381847970964739391832285403563156900692121574517684824196999552935875905364151065283273238985002174060455738489790987305769482259690161389173269522319491718345124302489011246520432091039399942558072162355289216593985432525982872286088504015168997684191630083697005662988752525704363004091007397155205941165108571493324615040123142451196122065364229333057600746081793008448521861407553948333656376993226846503300431078201786948754038755619346240328259961459100032970788276100580247791763633124691831882111408857616865766626098919628352314095610634746511088894735312139094189669384715290845994024984529514938174558194857695937542974482736861667902383883850977648011402000667369031557027589590701065812818198578995248561005975135448332932787858958838197106099565569713989303071851858488962389466628740137102750618861125239181495985341458031859863819810289782303662600406267311332447966027810708702144871367250185445951476989178046744436955403515125720511173567400638810191610369467840804290499839639910097030597936392835014807927155650759290117888375332594369675300691957094453031728998643878751715264290265543618533394484515373945933668907018685390163669927098532579028579455715265425367602649788740359295112232984363025805158739081236913158570044406732450453610305823171694609275697834143861937077646625281290192728535242544685540053578613404074563547993775371733459554435998756975918915175680764179483218482187878455379270211823562354951131744107615470601188150953598443347367554433131721076699845062535685624739126758777498422766567093802127740536464007733921398342844668662654417501651165615931758145235618660080593537287014154209231878039648181721620086175864104792363649439554486764673094807212947786346043768479710757245853069549835746390025896967807229233749868704639050690406662108306068336888945372594979574356036785100235526030003197256659401186270102842436376301439394504761954077247644432652221459639043616515842039119338065481367566775895201344764338580171851689468953587023955831936236119576580738154902538106301910780771464839076681041887529007145054824876674928671290362899744335268580070122756194719125691769341804399786609753224820187645245666760822822068476621767066547517468883731088630402641285579856229231314946963929244156973204317526360309383522295059194517455184180543953673626291655413032692385658547623175278249709758121592309851192670983512443862592639422880484210809195487194995391707072209705265724409849617752875487268480086690345499046970405797856792970548744157538577298478747249638951242307201005522795342990027625784664321126045134986400642321184653902525609288710620212829264703590697980959831716191016687126766450516421108469893453353176365793943706986557629698231136139376736463892779011769314476129946287486085232354927929878891308781379323300398082209689354455978632349668297135360678510306317098595648826372610222547932239765992492257150048391535790552688708165370135509822546530294736484174773090836712246473070787902102894036657879219150603500558745809192176952469097800442750564215074943719522001436095315827930753881819735729626377855750507012951777153181210586818824567228726689148929781419202599312055837108186069961021195475556975543497900181236483626220377453642639332421112460084405937015536037018637681867472041681904825713792372603825332294414894930897004177819983889084214780735649882732794341268768382572538811168560346825884062733903414623134717036014894756333060007626096055548865641591971585137541038882073496095073790454128268265486809948837471402824256358316953137022296953733607764760814038862233593953305714456188768982518649156889463299477484819997414349763950189785106357048518679157949762863286615900694743074095138925716275586863546170811713180648759343747336900296260934076495696170685402378725856214725676751805610724131524807640572278569168629393850288786716374941731234383611452909247767497408238391162905359896194060248854615937330738250466811840326423419752539617061027337310245188732964668494453662939870261870833827973244358886396858857664760970419799592409243132417591229982371842262865411000592928477173414645343192299306218406085376830249325337664554689083969240165865269287766458528749687939592751482866619573970674525480880561425631197191040744271052330396572708650195178343430247326240589281292532291791108326700310664954723952938819233378527415638342321761691633982490125263036900894863489907492999798525439026617874088825806917391918784772167936865468171302953657002537782148732355397261947552599469789400651032917398733643528178382446046762518791841481009090259207459128895835432034428221526576239411300513109687767113207283666943657503459326113379059551361250256584640843165018661328851538999925058955381531072210109187730030310757844315225494075058446961092776885876126463766521282840375999157740893042708183025245239755895272780860711991915034468186684355127870385094426315947131555906046072246056817245733321083747582303214028535432062442738574708364573054192851818334880269177119840844347686793351218236405689866185260854618677900584466438277115237651607012700141823305609109752429047804992727959089201093563481524258809737690786446279365574807340356745811276968672709010171412592365530637635730368540772165494233090950854102212070255682099371672631676845719090433923073088390532169907426815339289682536963634304392669690631697729217402840729945229885553581360338238404516806270169306898093428713940175516906579751873764638731791907932366467092302812793191208240879341971604497054251283325393422461476790159956617189069236847414303372677717066983884609599005719573074754908569112000338170190250455951101101047589435012693723875466444023543618878962198502806042466343485733297583891773949409368252068888116862618885433459738233304399151086750318005251428571703230624501936406454956753482361283908137465271509915912531673845783137673311468383802172719614554194968001910515357992694762386211511694804391277219697761624070520440306477346594851503946828839025962580183140184187443970617204881678443552031609936392177701275947046601565080836871312006085248110504809927617596902343410078175439553857366835439439819962402701578511038179946313551018011508040818975425489898953007003757400424880758176095051129719619962177576339764939566590195710989578818171711708074935016665328436479348603237439383299735656184136654283633365692058825704451725328982133492776890633351184329363582004578643393422739223075549414959077946226183630681754852583591034523419246774373197841424484767431804821816391539422239806130872536558542143562396597350001477114440746753061729475189500923750698029469776871295412742616567058923244707427460170092232422321609033159722491785365498881247927316688880736011274555480556879362377577682991810947789163732465088104169242410900755230975219138145133795208748401599155015070769032856511465071193164151636607429677153046241969242581394951891746531357647349643182845146515349384141433899822567832882760854785249302908500017977835890782698360455279948736211954307349851612163616859239981197916190279707994523449952738740662154521038969696754945201120666050883255137823094234845496433468178237936475444639130511445310220360185291470849550868499962408129794855186663279184225677365833803825578904101283095238263310513093578318705995130577318736770961542444711618034794904173442251320587772448589747515753830299449336223678126100894154552407283021882093145789494976582256688905141760247213280154347533845919473832979894693986961354331025539508964779680227607859813503709948802743103545154624342341898282389757156539893184294372462202970074493417281232340364687517275402384127817864046570520224558381750141090350239721894866572725864267164702348832942211690116793593515917700825286913896873072086189020740607280776415515590632729564761993195755285505643945723278234109414642192645521023209466494224811654790636036514145004926965270194999487116255648173898892481819609570402199011279944987113319041031922912851960201344478957911019367994939032221160596791432390341173858827017067503793750500641523130301664289219309703297379229789965471751331441591428517995754113101416808448160201183598077818059743298612815781989689558574347918528182527080119019016432880753090599445745889591603326416001254982737393204215839098437017750438055334171705903975919516004311491267699421742557990061980661907151939114531405412233043068706610191833537372103690205511464022779743314507217733953485625051009702292720618164472239122819258659682730227603618569294394438762976685128237457566261989396688042728391685485519143450612855298747777452706708075545608170131891523147965846121175777448005866708736033929681154863448538625650745827928563921974761138668617973933928046209934034923281218693054313026427150034034002653980597195011438567639155131623157308587683161561202418188673791377181120827912205340070531736983865513476379082500688500757138627902732868913063204459937578013682458271078683448312010662082542710824101340344023149597335277233178676868581916550210496781862971084105772807565338522891037350127002052604062805810631300207521757224246315944044286183223769260193354736549979878741940184902486708230716873887891913940027171803324774061294972112008182113139666536390830996295713311585805682834229417692504303279221966906625191325145436832169581024466665773818854149601812799132262990077653670418734546880012303790896451181690510289061079068239532101823547367710908011323937818893836096564617090663541614051124509523974841089486826220491131036592972792499922258661006624853897345155586295058700884545102697512146212375820111966673266657191497864659254288395322233476873850124786890072149717918628785241221123842537133983481937274588588972522475579477263264594306220451109849330017381650909803181368873920970760669159150214007980811385639222208128918316000619551051655280122856446583161814658231687591223627888500643021840156710611849675898474619897228059885048005882779262017946973835101362899054790394428746799589182527283648345053583920782898352845271287222738180385600157100289076259868839351576507111458025585680400747482270262360990704799548116653191719785611341020830456056787448194344745314916028753442268167136074850557992877562673462633150536784045563011820103353517736526332259815941320623219831078004521562430109645204862723493194643773239645368499815141554751168264256985228940836429333811982354734683085904241264267171338223972905701857573678649826480618679106661466641040995226425316887522208881864781937128995333400146806151484463114877467822068814601183054878406698201563156026487488993572247376705860929611151004751971149256620314431005261651076176451842179273573725023232638881003692287227171055213360525180917096510074910438192651724204655024993433044638180385244010043109706679713741061245913522059648820040895343939208605623274497096178352077229354316628846772505346680643457117754039032808733269940168998950301794396158765404586179361229373334466424508570633530899488823420514744663118281457915097867145476699135976300232527151145235232434436157677437790363140949534130508733348185983621864141807468607024189310792241179062448223965823617009504102177198112771016944155600165564810853082187554857028372918028561868433889613651967212905598518294358721102931825356338668258119294215050707596091777934087717681267770801688017588930248664946153808221835263863509059904336590866651593038218014996652726654880957592098801776502978369643971339778094869355438601935149453470508663193988420316143286026882140420101977597812837861933646136566600949055018220897059889688701765382848098262202067501317320789736612903719506485882804256731334868938367717180724692536701692488350193395354738586591026578003968315323962694260579939689220790792911298571881081522395013876779755761809166156286110096436420795874559400422960531420738586261126796728093599722595989444500172284535143403355871623115084175358084340618537886490285184606604776726305091513977831208864816933876226991069800805349586053176234472454980986186377635375782710753272615586367575473469140388254062641842140984252328867902141191574819433638614363060156802859616826916433316323293398504477279542625128628262145789390276735341610263549173086911765149214000569469367937872046380121568134475974382682717042698914763499382977872309692293483186172812256679245279163146475504143873377897643864760475349626155232631535307409393725501946170751926198632192123328800598173250142433644681507395473191403536360887774824540246090098879605503072778100355969225548790237305682545102912570715470223796456372438800860094153883493187395095463450801788915630867468858036860609396939161667372060896647044121321796051570161281567084276501346186614258749487884306846848593448490079596936783207110634460465344713711012436293182972527124767267383705088214894884378445524233728322366541228065696203927321009874438706587475638176540694006406926761869407125179118496374084504883287077550723220299143648584002204293823293495195445206576120587662585932550366244992543613931615117156034742370352256452979863264654746791283811060878986642159823739270702571125594403604361005750117507622276613455593666829878593775262081065326138349134277639557358654337284026631756515555088644272463261572921735128275942363904231576388167653781475946602115145802371222493869764769430610115738629210993912718556203732691418489294927609031709571775119325553032394002688306484088869134713891065713710474565971661510380758479479690769502763708632379237881487861294104719325624206260717058059465004171692904592881959433946342166069626723280582339379079538739394057646576417037068501074862556472477326442668102181542208043071489119358600071383406365085168193458796342846830020751118699231198643100153899230960073010176010439267998503685418941969590536452150489865667853597417196038417917914855144488715878022366324058668844867618926343811508457028633089491269419923389165627720554257828877937069299529812531203191275981792135264796302167238948881161368996731102433132345746257526993869257897260975624551490803528035916270945294881555425521587463534613166537304577464111334275059566510274094698288388319914292385547143403575961122893613781038357814931371092986929128263683065480480887657373757652530322640367808902294446973423705546125756603327750044544733779613725360601809621168371068967310872214376189734402563906005528224024407227936303724981103412288902092176666039025351739130838230010240310922555567645721707871834819430526286523253217276105155222562413532343878498423758655056252218732929951427580215212474222812102000198535575750546120422864427155505042328866292533875682202038417818192138372144740525699856707039126365194898350699559888317546210378622166421509758429791333624277326533802362260507522908529707420050365334379218667364877588553039631392516458702241434127134969548312600582485215377810149119031519871540522019804286339240926360746322582256526633874269375305593505997920380321654735062966397076647518312693213938825963648868164214979514212488903102509607698250237916124885479324382405539514610500375305225236134175189626457006161422138387717553087531620565188789018068884075526893856504760772374813869768363000292519816702739127860260443965423670420630202163250519922730372256126052474842018765140887150252330609874280878740292353923437406109120485991662097086278136599132952773995077942680593440649153142520493153962494339415088677707371472629793059474053615462456043234196757278720925024573228907529139494657672628772089161102857054357796445793184131876331329123382925969707371571676088844999514755924820506357249542960270382498861887523188734272785831848172171050118928472810494714069709097122278086584782473347307940822253152710134736878790681336873128958549456147898713891356608892728462849907100706289877877333259819843037205210281890003602980772155629092260783450690904213121180906311771778369374129616622559687725515828291931602980825618187588271376429076078941823267613672747950877992500941658298672070803274571092171583752666423576349263612856646252629235523432139952619838825117677977813375898191280164837138898664637001258347384749698165231668831027017230542400669742105836020618303312610161576098760733871689895944451040634259876454828767591649958476291252067482966650995368881394447960020484538667257709116570383351910430835377441121102072582370606825858615578722852103988113612178438696459637309471007898117057216693496498787738273592926330071572078762292917972297038771534287251893213432597553160493599175497937043067736173735718238328916069958509805343188250989232268859643870809326441751821851440593175542932960183637210564063753204924395087176664337461952949369916722661769912358114266742125481052678492098935962724429582778363719697464208006366233179603176904717154094370802529472710982998927402081685568240997330313511422826807760585616065674025897485154441758965980140920053632285002869464864295574922800022910549350142298792734444988765449078845003332879163318826340563956106065432279348534273431048844078187527449988556023230308510285588425351529763814341977857333154976671342630891994502194952658621268904428792562980351087432109644824140348289492123186434735221004132549708851485242829025332993240383372668355130149962440639994250371796022343361672656008313577258597195258026829177731042129843005435572489860186774241577708507892911736415333559985082851132358073821683137904653625780846068714574434543799131186319244519868762623195838217869337051409554417977147245461355662746389762259403284109747382813452184388386563132641561891050502684054645714764385779910437519108241876579858307134662168221680202276686939955433714667319533190585254800578189159907643070969212150667970507498418227957739279416417650003122331932293945678817157720610613352958698980539263124442710994524890870950958131297950868638939000409457852490870083681584803386631964971211972181587389239179097750807648395325043953080071122970730442931684748124484049498833200665258297951537265586521909739214731723544413360999414659620669679463115811732702890153682776633403792747131367111395317017846063684356357045109018730645049938935998281988692166881217353769559009976974078214748663933914279231271500538727785534088341152045242989575112920206824041545347118043097838407842640115064376544073669650260131730824766047638889682481201592964242319108687861811850692757243512808003283998170545049624953363801616519037490442787014703619795232745240029347489938847168969945897490124129408893120409560495971563466850286792395691804760908486798637802671450574517438683232279398626640009043596646246774225986790247644460672743062182594998922989019377515299954273454567591851167051576134041168729933838873365385023112992331066718986235715110722081024871831494085139204455210962660305583600774813632149196802327673989910148260144150357023353246399084930423366717470646078428444431324421242112325431346658681515183455862979604542004523222852884418584567372536048375970406663547250915537273431849725211068700315539512896847378946331899744904293066396708576794614788210183466360476259760259392322996305452307400455503397348938438683948121419413620360100181943038050693152560998269438518141445160555259748938997350413312926470241175637210929609677736318739163736036550966541702671569520993119121641304084109111537465466771730763173784672169340121304695221138510658573523811307318555981310358900495571195947164306416312432451794852994068703778300539632505879509248249723661197776311670038255322680776726189248975584748589915010998279771984485465535722918792655977243133332182540713779085499982588700734429838210631733074472309841364594978228212405469956289719204613181752142861576453797998027136936232904411069372623928459720363705786261193134629601633997071650028836781230128020464682942719431071825284098228395811039366364791838855416067580586181879361452038332329907834898806457901579056780048672122226810545761202989406413438220862290329988732216046878756734188723309953506779410925103111834895431231290501315497740326909908513716052844966937055926017237513729864571651758589645458535229691529194204972528901717209607307605812904949565143852376295725898781567714998456442016167936100790337030313930302829146030211384237780359030226086135104138012625609681058241031404052463546441108931217617361822047268256484310018251546773936226921353885955737819573434127270193783634697820194086041882967135114389389228575512963186401874037725312741516043115736091993199912130139151063473962989253270096546588211890595110610645595604978695263703164628794146791175011260726014292507205879516759440824282794727006608739617767417851620343638633458531091329446478855612463121828706567540822515762430000850241070010381287955267482522316715199498254628247805323115350699902250987829356533071301583770193752974222052374703836595063888366433006240247815404735864528135915569657492814974462851314805805878990684884856560139179718256255162260458395002318926719913876557798205544708856962327865836249141868617026973911770944284069580473919569349865842845609965397551102851107142858298315816892130525639324986049819194772778484588971493694028363668077757427067231499683078323453818875708755926312687036046399984337156512893322595371908838194804152405032868481569558257057301574022138314591697373714447335944814771102118711813339111614101171723820239443001275882024251482051595326560583576044560907896158580247922153990227014729872551356939968501842036181046260868356588510660933364264070852328360347936611988763767045152274919908322350502972561339456646273505995539003998604842809408424671239794399187102089906476049041024079545428524922127971290778123287271042539190776588188687968912614517511251273120207415995643781989733935051548263510697250837326568798089751028217753639975422949217213383791532679949130802342858591507187101480225352715731242712724348885488898787892908634537163616422243830528872456065898732861064449292434758175256913478338598122678323640179743910113142678708365161693321520690638201741473262457212657630440363753071953013435868990112899663723823780228717219017372709462608997392001975020033484119119351747959272361337241113893932477661046628753844662902780806320479416668625839178316651919030890087291359016994388905139123131683059110292367670637133870808564317467185785142273501302644967774577867515956493400105264958719761678550803429256063895770620352767767084810958282819557269695263768490183486264868976983321547496538983811181789864426106223612586641838624572379564525306611312160787283832912669180397128762281428131451233319841055989782968622719495354523264936084531045051243933965640783261172996094520291006841030666947210094517893729953019583873379055180936943290442791146552090637571711500105849807780882612453205252046755471176212197945628736296094094739576946736651625628602243629671434900869239048958986445788158622111051473989069493676880459930697208141470497676528484992826047461556233360452647145872514934513911595782754488194909359147256623308444279743648898222714716278036023770723488362414347089729479244762488458917170027233335284439965496988786815994516490091960155860369807832503955615968814139643064504396145733512906456755908474135806320829415777797606466198384312507185204788859769891122769131321416910444707377863423933827651449593188524726814031344406704772727724015356063920052108172154046769594438408951642537280503050967642987891958694167882048447546815184140177111899610620010727459917120133013151064715079995687048786697515866008675106988752383920367641970476847106621506937079694796307440953919067825161740677275959103537032049228444598630850926029672663416325522766772754923128045266119181563822518750744206003115863919172993948480521281439986794452308328468362045318115413433527978936952792628903527246166626218379555953155444069494329262232170707649360380652528134821213287895423126153206545952586728212499568460164259205845065225845324442386106943392424730441954441680652433007546457406824646228415626568062190622371058763848167141698671485740825697881123204337176275125686024738605950477890489291693545716490143963760478299034948736022861295950418896692710214956222344185053521910581323477907253403967418627261147989926973944420671540098029765897310888995361027269180053018427456239362800966167768142919123285228418227010022688499066741527813939133800588178775273358238042767041784403755070514212194071004760119093291451219760123356387206330305971606254132431197306818541367597765820781199901545636920372376224194552654562809781055985346801675487940462242578657812505148550564969758539189000956429901550068263654266771367359485001731693023938156799450107798932553213844900302912360248480036923558086965448753701450551993826921979891408321214232653384167035617455812378950447815684795827765399326325357842979662499396575208561127672646300611035295334055430595778931333935341620085188065873182832766616595823335663711844364817938358862424198897629136977585722684204834400068059099778204987748857795089895591153848073695655002537417143882167287302348799196931310560290326408624378319047283879533303731192116326757256507719092268951622017629541049962995796844092272820918275637855030365478838920516324809727816889090376044052307061330037378412588973864535686461225791117597682755886575648043772002561448957315453859527688952299646561048504445968556491143683444889008815016590958376758690761060778526783302009459314548237445114111985462846527676674133900569938404427663478734949082406521504716497510362275684589624699033208545154094318663994061939992129242210719674208066331223716073393758253280262925454583777192444385244695023477390128421024470940058232672578970371575849593411218441442196870253165610941406133080055137796898670167910436232271751717363668551628576869457494758951374717055331397989594512672796223101726583074328894415399657707243626788204179374482459506627822517224970004176222147035662922698505073124416186593129518260396145805714403851812770092905602972085550688745540671870715872020400034292025041637780458343224864858153992295621617135542186367618500047590778472653588016149081379156311564015887537085139677063406990029729450263470879481540803983778674819937097400085192732693451074812062564672823732317729278994421330112458602968367246408077469554380225855573369334047830751450532101028430815038566439504763777800256790214750904223917692974523278074266362973205533430018161966571581785004601566433874680437227368477605934842483125905125331781716655345460836879525947925326508480268924121421370115287497096888742818951379530301670024285341619987350056260218978192088857278282629247307539865139001139517590412563820192166013450355080348199744377618057309489136764568908723572433441704653116498864841328062114119369305034732179915467418950416789286907980770881896806060582382850847010438912147994607591612654198574524413567425590880341560344817047708293202690309872486825797487947654453036363834007030857951154985515944895938525682838004952786307130753989877969041031846399197398468443694556715147743760428182376274397992657744736856129728916899467274082225096036238674645391723942041575307461491923696375602608030934451503667821426217896055582453896969498985205339412471918887559824791569620690169701215631027919167998659783475201220104433424966642408914079540027918872182126082573264572634007312209947637337998602800706924625710294512820121597234159623064889038037067662094628884719395481841811427276931076554173152940787892044838531797335952816130593125943717911426331772371380532317040637896144580611736522006062057322857135932835830545030764711965187154075555986547833296921863160546866131080391991268890898077089126912955665691617343192643409297548933852197642671585787605437078292173503987888322010001305300790952215111407447614845091930392071449002856268636858454159959663217644132074583187941668662374903394450625144466176306002186233713935178241446520731065504656192463259336118415414728508788718208893979816415482073550687833016812309426668187834058826022091888312611191340828155680609415175022362933719852720720117893517683548475352274781532665195395668038381305990812553421926704636946602195031747964660277597326104787059550245777615223284717847312933240473848095478686813710542488990208312947456412754073890653030939800529253711610376617069844763993864756621406963652616521526146705001487866067588298034832622171277792317676241833586989109854622955604046620443511431453794026267628970491899311640354038965191933637345323976583885510691503724543474618210292573992154009357589813895909592529702657503638154864981414431300280513230412976234885761060555994592007478619034837662767860193764578366411736820393202127277424006112367727573760572583103896675999485706253318860660339154637323653928533358631045262683562652327037907771611320705773920057305480031777118685252598937601551561499791413781156913209568787323223011654358650500686490418177690637446039328366472926227148520762016867197330499663755193920878817293363878699047032821242933911061070504632234522285852023336933289145393624973700689311828819078247195029502672670383067038638191698081275682181692689716657465916880120203691512464659313649469785001662295836856685648927600704203869912899578301535988431874763810645166539987175580442934634787780376872889294998457207606841318391750781027920796607267782665525931675187161422571873548908725644186254367551514637501042612397074124680487690028387686589585644691445380739309116600166339144462873752170027635622270729792878749868340728315322969735537038667780175221332689240011705006637731643751822613309196030529312951579833113125043849061480964926033125424476562529507749108588862869052083074023026177695675503770759507358535462339914903367186857777247718867749709228794962104984121501971265977256039422539895824103965546173118983585719688933701105977712109114562557494952458421041545305124684441361720995346612262879816513593270226943414364516689886470385809114909256064794469424388175809625940300894125611866440722980631653640552453124977719720881511946869882132861124479161041351434632115509332867379556451198132413695367178903185599243279441729539395190776194101387382941409111469739238822290056650081277579763105325756492186064182128314458046984062209293710034150771772982605320252524416727942294257419372760758065491401813096532066619043519344348274586444198793606536160319838917939209398936183524456000103084459308801169279387136494062552991595074904586645366176619234907438285935361434175484262207648502211833789893990548340461862813538432222011834290727693027893691463762826309253144269655557651069692409490980721109599531857578642192919758894003264701229378776303185940464449773310345321364012220014202732576944705347011970859688725019721035415676937850354649703950374553014725076926730838462832344015083972477426607371734329585465044451667192524556255997787476762666551884302443316057689112019659367843613340903595390944963117017804008108188987327701305756678524531529904151870452476261727316401075715880431402337323013074338285890552571986108060808394836503679167015475306855149372264419662287564056591779890230895292504504750058172319807452604582195868051063629106118341149248718780186885737394532803367033932686984577094158544785907656356642881824783628424251211309011283350862732415049770773478907506254253852617869134090884106909163916326642523924108824981233751626825306131219493009572639469080459232593172906992802281990303180894897852657248204812576229406498147088873176706199484303621492227404053017751933021172435291439714159643533316518010768799167369826107990532144645011590326640944021947924945918834945380765734030428430653223573152580262398182191809182713359872980505135811106795669746650294650279331494243149502326208592249809508482677137302220781197112836244285161297188768358038591288639975297498935306453477398823947790037875790966798617497680529770345825756631222864951505792355858903395495663944808402249780270039781162729229408229162983300285750542695498581992099935079006242227784101902095274805260156863623256993195664430050049559254630127322947714297247239194817083570471031358931709506037259109350158752691650161941261031599891486241791922697725364823005860941787743609877458979709182352190647910308743470387764622657142079148206468898601520838743829240508168191011295533064433164187774164155470912203983407271056621032886545883096066665140397958410919001131140424738756309770269098263399111952714298874511553813857793118810416204408750430838978728094098816493376666348501072089576658424479459395868417431467343176257180551830393918804181251097459082000424726528230952309369032577691059716242528331168032569376978337114594069010827604147768717734589180459675358906709750066827082333633670208321023087100956357586403223966146338297892295370951822054330126618505315263482121059167586121201514439155573506600374933819556243850225852841793558062547140919202795147313325088209681307430737304443025785423803562603324125188977236884637405959151877780969924244550323118575046176367436219845335878528213198187099850535926698355440931325560288929651970048988440002121814649448710194658709970251757539013827034300614727228511595783818921952310041186300870824489437260205763043249636593712937449955612547727560864338175243581778886324614282644920812738814527449934086157266857554934860096544212427436045646940594876836184705944450117844383858066247526137293829630900926842962899718125980611797469398763478898111624806703692499370191884033461447544116673353441478149811592890621654590740095397163277367269850796330359609579584943593038604409528004931788982446500238742451840350247562311247778792826953032640353568742611166595471511240436671632951703102469199323995761353508887467520556497323776004682291270338569760448108118090252616719137706171500751208469653027774003734399127223340612913422836686512075619593025550495391029228543351897137949503935685858238019954330185283434074465790585857618215301359172509274954339088605048185683374728246264087522304208321953494450067707494334065347340504012661295753302586334987623611770706021098425504591683653376966857904931344087686044734879162154000544074490414494764675480669879917281899989852414502759669971653826874470250840762140754096063675677818522684858472868059080154265262244573750058033840884859069225819449378708778496234445072388458962122439943242329974902520319282678368320157588256725954708321846130302233794298577634050642195271400857054561424318750349834988813459946141693403816167762460629949720730513212476536133088110865954603543161065556628553399664694168174290250608907607912715650101812350121445172838989400314350332748750913803999597338064114292708745872345722860231480792270728643357128747140663504400334777253160212907109783477265344173421766493945552929797349905130736195258550250039156586552225691454251709756817409698345403735642381803092454717636235543432397545210545104141123464896510779349646843563718993318050917518120625528089943329694126801807488418847239027081371079839111133741602933057466176327245319745875726812497024282311417494939560494998214644950232911873835934878211545809669111761191875736895847012286083980669277795313144289590818178046241149649690233304934113244453676915450336574388448831830485489259599309581894693103373974653050009421209974554846357997091002437507934194792512639900559220482796539663138778414536186661593280472599018057156807597287461532625387261274959199702693602160336863231684923723082220557522469315639054297746778900283731451709597581366565712130398230893688283567943361089542708156989329798099477106295153867041964918444879955570234043509388690035110811340881716309651759059179217834146407154053909695066641344578243876132290857541294005246906022316259639895391814818777901576348485390091154753690541769881451645125967047925430556769981831834171590916530932675637553452515498991252968049849840302495952828690834045854933267465459493151239750730651377107794077745936334250357587969500328192717033404697841149997949084996858768765034791115758048770407581719431280388432493597711030999175601079679795040915754338065545344743239366030169232690390087673535197603526553717670546747979222305018489030519688607152939184409418620399392006304159869038738199976134493671154087236446456990082041728541436447620944032924475518015123807022742579065046472528194177184579514279974039467997909544118393837477068543623931931025407305398446256778114920595796934424923162782077510179467802947861541562421789695200052639316620176655872029511469823846091280778373528156787489928227239758928965543528619949286522056022543790339581346758309801358881998353842435302067157188534273405047997369488568340778210057795456403327520406267047687831977307440644440282428619928582571620067907294364743179703321410483528416740173117662956626007599135811187071780512686659717071989508714957613637133087120330378393145882728744116649428995040150853247303575433405880221468302306121957637029707164340484935341731793828139066046792994704231980848221559963843566783541984245227106326138252085025552789763104969720247734301067039621396620128659270242751509506753188428892283601682663812682829877635746519572154991434691139119677681655955315968247715932453045996641752897143938039771508012684289823552957442776300228493625662512707061362883862629418847666131940098291601656452141998972048728202547100493904277884149333854252609103444170819750375297891200496893081809565307610517152035407305520644030538766911583696314109293065215477895694632404532646302603253672987091172557465711932154437898481832161901531527069126896125276314746424058147798019899952854736471442925275789143901009753589216632475549025238919244573440838247065878012824288922002141497419487984123370541497883990248504390657418112047263090517619342913074583675015584789454417463646248198787714274697867327552692478163923431449367568877568492855129501438524592929896022081012329049228012717998895556312939074956366622040056318895101295471028409617622755209506796036347705911151633287464903435598265941321719597171557013870197801088308197585868025748119995158643601157336489475867524865977236592675656316650938166074667308029928032410508069252957251181680528113317743009188252247456267225055938030606860550086385938143218456987128252503337111774836388431953056463515432201137688564478620532785143673788922228572295007400388271381709202251407897514108857338935897478270172914320084024251751777802983196363570536998990647475784921355886855039817452182961041014707641299074594328651631300500737787486015635548261875707282349943491201157452992335372773669540933530764671084688749547815095814680141172354089863238211701137635998156913964888714481698698223418447585568626150586049506267161909116206842714398468968710745806982366849499148467773940561471693655828511094176321849011674353896977513827330897888708029053678564249186283580107976598091243466907356506556311382680386193203950528310544456692009646341124102623418339708608603992476806955638508252938086966428824646777071795469198798608821958611147354136931832788705523678504783120438695554449257682785733771289123105155565599964293138321438272632688444956838705178236507726622568596794706288296551028876509458681343024083276866272702278722793104984765676070954699323236991505897639665561240172425187895181167025837477336079007273254496359116412568181725517721064374594130183922350498611213472691003357760276981616593867118270491293531955828074691234379425824193576357239609347297338138046993251662809210639516486744919851583424107164961834413092635052068331491000669344208828113523698418023185699034610718164692906867782037998506545205596462458447319356817232009190755046345723301085001357194479936340019377602363438679035682144569786952543385668744518168670958282383409812914487329155322765653789345093305516812067394591243770774527273409259515231011330666767756007732631610837630287394982994684803914065208395640590681006687497340174780431126073446369342470705169769199529667759878781707764086356977450570973328268115551164177312461008606239200129066303118777907467184849307458740925641583304620460559519493624629095131437154715830456582154787222223985477238783392847888163653532129959327200403617092847170461171602092418478151561068643685417238141725325378103347723678974511202985447591404012666826508695823751649804364076784523603779821609256641742297798054580905589686256065158742065224112661903630709096107464198074603980518328337045827793418880559854832384128517973449495673916234944861203481085756534203307581666853002474177862357986740859850869271525214477058668384902360235701888709887114048295302161954403518844017296048748855499613178409853225371759601965455920055762787478825328018151175269742560026455789365072768096409685835244073059544171239437900764510080798861715503178284359403194114151841904529729089938179159277725745680757280358964595861720576228721192358903738649589102408937632798578647823257307541920361255813524271588116959980221264674872165984963849368384846171191713655205928157394080581489813037037707745387316321645969398314807185739775984779021186455275269536223453041060793255949600030072750176803994407620286902112637023281134316820866058071590431038194478888761256894208413720940878400602860635576322860028286848176220294350997288561189267855524823044313479014629721628693815985295356802434967108450929238135629399420855442926799651042389680775201501944048909164114555313526532226665395525592498101132986270866965110671773912479485980753926317415313573935751519789084207970242719358841625793989083993410539738661845531386197068849442029446888799497359635522175503952416185532623327070513825223608641418516700001613302790794250880718692671602244106282985164901248536355943014783818362414172303598626799578924530320926653310556566774470709282441974291589922825023897356951840091844059233792827142441356769513186511779529808548001623191384426507238004596592865399195552794595835598949247521398821050464386892424862381344372266038996175686663948970616951695532114586340576606074318341578123762415778465120330349318156195178406452890067659838966200737305591100033173159677846863329723867204560203499004305204024731720576348240441054212072691622804248288879961637443349458619600960458317533678693121917643250610872142141308691031716698077254458931950667806531714854589389006171851358361105339327388737401663357165309056470605569001072894899720402878378039909232907672936685314837149345764121702677293937712969136312518693907336723905069055446458305555628054848861928373640619913815054246578912140173067407044039111888632750879083706656883613833914575804018085437348055826780738019593433934227367523023722389867955221823166192837188653673864852837036587180226578432940995763480614673655780162549696484804780267636924979041909957906928800429788141329414789775836797987997412733626257616071315619966259085955906705770671945709455611668416398472823296051002820053655533678139175696517672390522408606696629905855513120187332517428272784881319712279053066618953726400901978503737340533710326684426504015669288113756132193300977625323897686410587302168921794585160943911609262597515667471811420762735642677652991929405543717862819928216892127954166294792383222711167112558850894243909744192972992917467972462423707495692946466269630734254214231999879858583220066540891984523276022414381763085929701032251429876730480277604152137431957480510577418625460002208011389648821791302846962637247463858782699243752296518551298503392119339886130757051710381045442673633527092709316619087860936505595554383843201709957440761386813049622279922619981792341074839776965158301122331723670800487559401718443881988147284374420106571852292723951352417632691591211750424616424498090135823517528071976720040434596347890966060636353142037670770291750070165426765923336340505890260249807855042518186729530576757143260523925814249907724150865879423301533524838186113938677079543097753841322051550234580609789666659453247709878768582650279884807323316871798842553790630615186270614620286990268696092107232110614179624743393345708634787646221674499545736212439777759338540965374020320808741145642024437745391846739451916753275301903618182779698604058426267412166030997528194866346213276934791521619561555172320635779961168769212025454820235659424435423597690275383044574866679536287683759289782787638132491997440723041525701265477972583113283533756157157788344836618861755035020278064043676845169114975584298207126993899141922500154146568759705568879481207584373958073132312258232790695845285987056760508264003946629294312888233647597272444413964280811440490760857642551903486640584451768593502601920395973354449132933072836247892992290933350568876362477498355704356239057605970144975721123347727420605161398002966930395572684061840350310104189089662751902515450838290651925764571059206766430719366891463575874432652198234743324598033707433545071966620971204527972473699027475871407170210598296067966818992616631374797946748718805538947540422155720075620511749989018856659456289094236713663917879804502595016922262655729523264465903063623776050565487180895610837761503866134011424159694311661739093677847852523843004146047448537095339479260848491959402988631461284757414752516613083280170732774815307215117894072665033664328258079906298785247422116269076593025121119325613011593638874361335575700664520391132970858377375228127920199307280681562880961918838449311536887133573358505803495889018353054590000965786248164901416176155456336335373913085424615372976537785515186120218450579391542883915611890081542414428896623980085323671003917538061403408299788384388446824774087805758697266150230954538394951602653956772182496999853802481357394019817125785467148396160367735915282735806767922378015880988194524449027073805681413426143839456109220010260729761415446572189306415555270679083837223709335513768454324042037709593846519550712436435656012259778919972774759384597387112447133741624277520825253428480688710054075974962107187871778898834305597650521950817948354156216295188274235982949962614774043359283635404405836850149274015269663739842928302828634037099687956743015785204399380413843390230599193452478819146124676166546997926066534649543372945601723923125355401406821493364972971219602792669397940964853764895760129460653525756994493353799643009265409004253588846056766151589075678036841529345766135628656821081405504448435128203000255006578334308631620321445508614127521828074985680103355589053086519487916902761061970205003505486457345036345918194350010682259828449070439271250317954184729849781401045817890483994157595036042433284884439258857714522388921217257051742220861661440187594666141148006123325351411556631776268906612964176919706357126171045855929657386473349120394025596668026172942841015103136406664446892238867804329290249440003773111972956728694054146788339475795105477342308576653078273268599333089200237788790062260549607073330212195305684105996074795996884659425877426196272009437463533499755309514736326628346645695843251592888625998607063845921771063025564503666083471222879056430342470203146653411099531602663920021911318868029605044434931364257444258177235395288582791083872694375757352170695483956873297243155695764526689128313783432135852853361247819349912751919479797706574927712776718868563569580763874950085170087799478171443203809978730238667219894648362610335586033550997477492563464647800999886346472464451421912069260189587078614661795178649380265036160468514747256871822807755540356445319267746398928832272198274131953382035885250949622173121883480709283452527359946642427682479762751773112045699076600702315725839154620713867903423893788282387434266457494284740322006129043226983014948308156577553205615757888643150298526487772566986364771754893231505109686908672118836031399773484817151015751016120576812120586935755570459784843749523160187348139336658578470087091675503383000056349919243421000665316532459676242625006544655393207622493611763999000589111138036696789950824820671653453468993996551393623887056516599631566905694345873407502896732598246558707570568818177654039001692283248292964320305399622661997737064988717495193628928078963470307085335630252536239923045529853164227672292534577587199063413468303291458289445216271208988534947599093275717643667292391733577559972382004336014309562022708673868817709541922628934680451133917970495276194370753943818909074819747250949037159829569559449954756878799342142509154113681962737803447656772083776508267029871622617640794233307569984547472098093722767413686669115746156729651998675430485283594690623666705692056759793889342719496598885916707544888941885117671868584304388914840437850551084965590714406365696346905940255752098384631170783051613585298465460656126954546648312539091816793617756994634035439476885438891960653864902282121068516582244280608506023141757275492721216049146635538885842652084938657543759920951218169381872886203005406422183559427216584290898022500555023635969859152291980452368209500605448877600887451517391643376579486001218840008584704865128202795569490945298831812671536634349658742979414769457521495324665639815982258348615023737894233533356034889065073414299304359785159915803094951870629762413118579155140495830748373827099395351903766090158188437802071415662162709352880634157579295608952288164761247077726589546593498074985829658123180173786305280910041547146800612692939302239149411015875194710070964002252332344972829830662684954185511818556541933043092895549993699651766323071796297373886272265927284420473630748425524691081849695863053278918626028848419510910730331043905887592720691526469006075348076117280470120192199285486009254716085540085052300661393117776161602789712918636239205187585366679944412518582192190166264566328880878241029894600620867859726759390120761883880473060048461196527008017371391183447113230015018361243638699500221349938763428910880696110386741475754663411572638479596288754843883070566771489945848615005901008095696597964228083232536320796354004237866157741195932884286590072228424843009641713944399113743048230883922510396626588810084239723375141245746056753582089153460703230333267034922754957179833993099141694219803133405488824158660222608393485339012533995874601417895893357561597576532944565584427738191380266393899843382801847541072873818765472754305319392995635647185546438207678737476558606702471775512341615980679400765308388124113380975175372750676439238920387038771944866353300462796813115370238832012641414940689286008025680087403783434316091145601033818488476419160735984700013380944315025975380785877763964860681322825851042134011213443840973513315397951732026086610237987688180908855920613856821824347238595555736933482872087793540617644048427994248744613144305711557279320644791118055777015532747025291928177452942138066235791247339303173873345393919360864097701794858769610798830895227196126956156583377474211910926988828270640059856841642181617486863834014505290933450458224236571555867540076076608328170305431121764683734856699255612075840629181805960836073722190094311589227070801506928416228358161046797841189570047081610900491363793919778047441449677958080974137932424114270002982384875400815258437996944895390207167814939571695171108746416129579553424925451156273391673256210653568522750012049557792915751691053111248274563347241800918056344382843978535665512424947714933191492118372080347527561056717589599317203779032730775679203283407608640052550297654900744196479351624208946707897805672270986108745931998438233679627423032711508595834775997285701783300735742223259002958682043858715335979090629388348663560915321939943677170276514922790871113033345688434483651918903031268751102813337785429020842975426264360310760054418938991725173170781168625685294251916962589495559260577221478483867467957051937849123297100363489587764675722319755806368754621289413514054777123567073146860624052064378862491059825614160251374378386926977949032133890127086566241066593214615066095742867124773028856657545737227787241111154194963931029188549135794579312983044310745228609186565075025289882730122047521633448222275640891471104364412377974389686726461069099574923714215153697850634419122785912717594688359263102912334795829086779653926553542246102940865290118058767187904156875063171912056667224602291564706884063996592514997022453213614267225849214696275296512132571518608800071920823226619231257701878368096416910936874053825318616557094584364774032762237470664795165763114739460930389277973261082416045229781111272665362543833554045850597532678700480681303092371381317835169081011885601089828892892563974895809734556411206796064680382136406776343992356362225891454761317154366434381123871794299951388597428202917876242956810648414375984848372298660165402051673464898796654368940347942314645967988587391260557975884204415187222519712907018182160753451588622168923991276387999976196691370446858976920035859846991978822699913598339289023263800417355478567056445953699679021178344344732632126825682268674713043398785180646733102867543573290322490257416874181489775589670293620077220826514398007173505910972993302524076581241527847891859793290010268101214406005972474401637818014513330576219979113664701797112460260413863792821103252749835824239380697011606453030123050456982449384938216067324466773739667265560444213418673042999209472983663859830832640218729898693375542119146954297741408363282742206050306391697644983680055511468664932115050191761113412063767843530299550462022413017726802691754380738064127418744986252533331091589945426606747307202184472231988761629172268169304966725592258091420389482083693266853383390186950221092619295268717328600255745806831293281658120623705645495847435051377450361921219212604289907878498186084327672235501541597563333876396745331936565173348904498626878497379301721256246425559090171542918750548979911936984090703771265519020138278535285796219582415853008413546011535939837003407353799419512872253161484865534738089903479200223210138170569935492745742152476102795035296461136187120117765000494567865499990914513329838936573172665289456289434881419827424967166998242689662083810169538363993330117061068197710811767404739726047878510812590371348117760642306756867616630292203209112195157924008858693793573487907185356698695481170978291712144704115257904985504816632062284278297743291047799449660898855958305921086087410002423981414331068083573836576209610102006827481560081931945295864195813602911377627653993085225108748302144547396475012787069021223789917562620089110020502886752890961936952232133967215947791016525139250399125443073217734401638492150764206848780246480903876481050958344265406065800240685826464755330234970104320116375061425260230974790996058759420515770899141565367069684639022453437563112327342376426612582361507849274742980567714231125589292233362713338550550859628407164078210694474881075185038293605880013705794584559621527173111890949801215660585881652274167402132118612677063491484489097532856183073797165360580065028759318462623476199320164767911183660578027930480546184180400045778192753502961061423398847467737514813167867877592462168445716809334290945141466931017256081214860710181146239086425866566463555331703131032257660704004610373825164778903824578545221419301819876096147098080080909981460735775491701957860300574680312244998744937091441452722875785520178892079385633012644063744360093724739281921205369261791357930057675003238757672347024173165697505645713302643441667693746142810545092372894226313049857846037095024680661648384925504993157939339953111827293565298074244342093504428370288359894746546208966293756102763985638312602030881441331351713672419353906572426140974651047594305487786390614068418637633741340143957518248013004266014661287423835997379366608790814647225189881069110753734380884989100305457275685733126100302584247176495611586270007687237510571618744211520267605644420894584189208361282388891141939292049657155404380248500795248478818609453977299428104910553926922798113749479785286946527496801681698089275435825553891850290236536526366553981293138203690925870289076875013088771158841370041164921180363613609112497450780118623614153403731945908488872750203665994117971725980834778980272356589706824411993490269873091751447285160532577352977262328112165017731329682420753773409646761256464052545546435698350677531553499657779870991582586473009684943500567188636887138505251084991074415622433303201318678880694057450476821795264826583129834130752803556027016170596667646358641519391850757692887002380001919479961740968953596074814244295927462726630943825028891783127743292660283768950109403598672399879800294580731641153571326191321079679917313402276068533912012454334859013289194905234597564971535517783314429619456944907995881128621766816301004427497548803586778761032320450192466505081764662075279695565419410238775332245402716691899555452055579968960993920310041602704779583818362498602874634481946070776296421878616991648367514564221847662680096616744669139759055532599227284683154026799452378183197574251883581513300692488649719487846637837566027229856952153909715596802047078769304710825634249675946996629822933311527546124624158159534587667749908399244466263933134182457865889412353571778151308299358057831461521324184703670226620906298207548379231324484039834822770335373881273928735136693925952232684801130720616276758342376666887209523350364127882997810485158470084946417081333897789385420811036509519831908277228113840072733122221933687200172359494464816147015361960059114581960118622121171636110358818789128294260216801554853990261376207302410692495504296917104094030465138457112630497510327849830855844333280415210187312192685403800229701380142308867602906660136683587009499139835585893312132470079887073456396567414768663452267382236315259720834206789179964852560255519766962727378337799965705696705873688905162562972053605532008422720855695565948220689495506420238089548945464168545333555873179261301505130766009366042346598816976683206160631040966685425965834163610403388122504628800460185511868110418354752438401701990212055710529508081486393418709312519626067482313042687683804258922974427745656609692002570717972008324557438593341296320406655843346998876975950565003993433493710905617572801000764656962465302945812378052891911709517211756108281872395551160234812128870888152563930293770208525358474486361981169150509139034203064925992534747816791550915285828669016255412505394381099341743479577438068617386114595732306771524423635880428231651461250315157512587507364201535712447758852940480529842415435141971256364815159082250080159663833817463168686663919934641140327866528854353211977800601860947164131761294560661271175192054882421676333036208014275680576428358126152891632763832837120652383080008398800094901715653504504882569461619962146727627574407678072319757505997103686993417405204120402011334867200312067903817568834724951949970701522742978716000062098512044215435325777489283484082423256540472757321056679551944689744828899577340306273522727850082736731636193101270375716303978628636728898975016683955895644917025256120323406243091928093575384380459808374013927309866235778645033427415002980654704165242451434738734811063093190317077750880249584957252163370334331551264123475710258044216002080677077102615240331109347846929178799155714036342643759479004786254280880538519659545524942556201637317898227010709168754937980115343289717010029619092044158241657480783068780136299140757274024014015161098309983749741348451041805641489517465955741732720665079328294061208106240940685344925352124541392966655147435101547744228652892341483117964006091416459182010117889095057936217688970899985517530802375217614093583789594362515699456148010927977261137678111725878089885764008369860049862374707091579602973480999040536049223385050539692875260452625447659396514412862210513420007091346893521862067415498659595870621801395269663596161406108279756875481101032861065954533607760170686697163524180300073274207672524257765150294030003334482168649768224214796714988065165345257704740339735673290808541990702084332949151846691011788879524729155671469230886599849178175644463532899555761691908804348503449397674590066807130578091841457629929370420413950902689825624961998596867557625891081548249406856388954493907031066707480480597085841288783271549469675417167331948253353928835778219604486171301457462210832281157695242420702075266992987727394602995091393433085027624781057238941070814143501881306974243738734978893274970009266531684946111329915165605592774839313786360136733277813554961393364793783340867492607954660715778758977606281761156717302801315190959635620426519410670401608352269288752891725775389521977112543921200003717780333424739066740921649706935915099227835720537936813668071549191125282094688324232096917885565078959431674394748512857835741979604733247494916342349596574838818648225912471204295078372477065537622194869973398693852182258066758593118520218390868323085709196300150262639448485912817972944362814995576505913588603666701757371327648309754388845512766673401088271443796670480655431045754017894954096191573027166494574459965419907062372311636775337339325794112904187309788389763761224694951932244486408142057788161116410708513461840331318544778459703290757735088676214328123755167119950714265988803291582946948977507611149222750947363395519590027775488443395738954331252581047016960098010088519054695714426785513031988594488583806918944645071852233963758097140732413628182743835528457414262799438887348959841526477713990215023944269162353927722225823530169365791760411953821961035294007861113048955018009140384464628062229420683210664797107959749346540963969728166215095151094238353135354702777617900250572079972920826460696219118588940203728017515738896146671005464989362810256615279247475077603823990444781505263969240537417581087709483502862960916464061632409085741064409914454326241290915749025068873086067663727989552266331555249983284294373365515232314579577579921081339113474923375249731512738396773156659803555202051656267400797844977231187867861982642766090388398037678125923750058301865616312237859447449390312289592199006215722334390537993654011259408197270398871478603528245733512686780584833333758218104177585491103223677599224349400901821568227439280876217163380293687718740072599654902907748965666987268633856373281370599893676923145491230471348940127164619513913662705441442331784893286588225089409414388663539540592145903025113976096895265155818488699615377791742972352419481981438879605811500947972670210903726267175264701081076960792518081050851300491646927413047207005216419733084133517139894241996859824807904249463959279809100901579432055090444702423815497325582960790419901884578700619756249682425184605400323729593857975307781512801091900767669768678130614475224978385663317037360102449482165982951489795977658296611614653196106883443128155219067776192565099812266096627493991945621044273362944865393756835887471199740520329422037474201161618248505390829974788356678577314789324819862708366329788345526307082882604428868703054802360816068117408648055392833028953790898476383027998160688417139036971394447943075337967372204224464683254172034887869614121020243383692207569037817636756113023861574834389702243864196371214311142543621104487206745455688482575405550767390370959078291130781357715853103434457539791532522645443831192330679437996798882487510687429367422218698690135928967623717929964366877568363785520503943996685422142912857486568349213340032815845447897721850748283612899576019707865521332312717221930589317886187234649861240259364075926935183260264196152110723734818759303965727287865865606821621982453127480625528193708961045420506764192117017804410158037994629135785094734762728312942657640931165866875964537895407420433550258881412794503230595952879048771515953353286914356327033323271646646387714651750075108729932990027355252820599874022331791921086500476236066434616242623229358633863401801154420078438393835519495386599533999289452462940410612816039834430512396389883124341441181828705513999725237746892061600732085168186853982345284445062771688777181678435798043998741419179249301925494667145931682478369546397473232661470553233367269904365932589645355925474058058485704919089969126017811991635312671085796983063704008814877382017010492589832967455170880193891855518634640364066541244572255380182329942207410953105116624039177457877248360682857138841228071936495145186223301748187728670120015729283655688093507348293614636164887629959265429143545403953661925510693218000551384068123354520811590164746564496047876328599339021885469230556086874910923121485271677876072788274362527523923994259758271871990369301641158501582030179353684921529576138026262510670974619103582652754761666833053147029574130681615267653661670715149792712693448621087357329778515135207489448797689467817755414518175439088041840139225664111614233076305032213891882483022857768619725206908180489854402462971350116439702473972514095974976718707162712997392278411156190540119036163111447550753598029439656882491880418759482419773225006565834453013320768481124657239046964689718560185473966331660505222274598142447429568233818861868546804105122678865518743107344631652363502253693786806517678808085916243813280112300262485454819291479553662447204057528014456054722710713919634628991634845345486733952534869586230296151305794782464549414444326678347362229899834128761022461520893903136350210996112015675862819377404658678189030226415444145350975683856256519764320853684396689937931241494841192217445366598221526508550746963146179639706915177491532920244006983860555364689777136871691720366034032274509669219666352265035749907782333466329737398518716392809903983582908839914931949897468557181099018352795165479024338655927094269080896351508358325758102866632781934394267919899980080986418831780853329228839027342656027332426617511835327227461013207320423404832421913656226690666071023149192967871636226147447155389396283766762303938907802094752652258623652914511566113344617640587664593222093237566611389938411359346180198745664524892783069002955422091094354630779311632973870657675679726353553415001163396088532725893109131592099538261903556786591921486976435612245428525200703522560590378092202706034626124169960736271150192281283895888468664034448137633646841416247182266065567358869510271582252699530734079689044705241178379523455532543013458889431241602164871463558382025913462435651923275849368299173229325362139039239607655206813299945720414301741808805415066500976223542059764888375449221920053393156898816813788029335575402038246743433385459550036263331174849376336466488212174531411656581486754371816706361101541451281611055673346151831257694495946052460464568479311521277528566970983935868660000342724824678711613984691546469411840878227361666538992291226639989064939373557560963044134320073711296933672192755554816146540009823219732568608211430141738282397714056320498704439863453289845577755062889233929901870347410718820655885484310808511537558167911998353923083114964305990680748997772570854926404938813791642809968296524427151979108661057258047567380365054069060652845885608243090195115177372347029098922408084661974465362370866610484842759797685280208675831649858431416221020359910230293645680894032257576402028577060337058687334544796547671822312197072016887084695527658466973097166033410897477386460300655488787635165396442546850400316487006987368303245250254454862174146411756728330940935826862743131588484287300224043665706547856919417337143107252165259212119327094077524429474057174884827535615816871331337708330836201727122367885934205686938097688879908815801497040044639370898064226276893629538161674512892645722024678651338396017082620381096300996400267611082324663040266876633312311725757803294146467846579417776189899331068793328265261551750586115949359321463194829885906424717729437181697637152736738527965791641256738415660578007944206740732793546733999026988946093805358923783475295761634171900247638265672343591352048461998846553810507877951666778027758700815844076581045448167957262158260804624609388455528582611258549026295117252884639313112958241092444138523658995430359311215186258851937933240400183518720374624607578178419607983320286482574717837692386251327335484625030468195863048182185154864294430990089460608087073741088461144139843620794877878170651076628112076078112410829336956968480513187934563129295786436139431639938743598793610193715150957731090236324740875111260490464494248919090047961629011094390196391372705715226989013909968675014085888848948763519697135987491544683506064556291236632352755054640493256322860974671809822462978736510862734733776613640019054929551306793103246430684726870988545706493469578187022010748521929423271565089624402150204204301020978997653251564358031663289653937063651858303938814026132135896457027577134042695057631276760516249389889482818925266654701653508268190269238626262548381869636179780810400136607613633721830594224897343431419575352902697238132079682339629281453139891096094226063752745889504633185328865081393904680037354739531277525967476522347313888526907938599090163130806274212362751991460886253529012242267898122368889568773986583786043128810554692022627941865377435087779370909477311752181857492498373764400229075276839966643211157088817620994232339978577228799866013395627016771076552065268267161790402468366471399199891160188176519716168613028168387229010821749139492144703348774990661568484700467025068632557433675404156747261261241910527269919338065688630348619538455780082255269338349152500019671671370940445507790377742919159014758655823379966635161188437797328858977542453213943832382609885520582567523433245334299875651573253727812669650561835260244339848861274105332293309661884159417213316928357582318383023583739292595946312179302629671332428605116795441970398750454960524235204866896134544932505902952612992529147610276692306915280596165572003274421887875875271800873435162100805430947701629466800526365700600438746237384837467073255169433447860468939340423374038176149524741614303556340100741237107105903269561322622486673999719360196059143963908933496346093225014139246500727072775998277406391505129350657516321922107370635449407724898356716350939711925292531351527992972530905185371319409820732930240287595010168995072194080268460518884812069597436359318399607322512731002930693371046991006186431756372151095485215542483582551490968652166832730144448740051960594065134722217158351638753005724538964834320257491116316830893703524802136941694085834130227910135546438145657092489960219037644848703548546611764010384284878389396212508702645505739298503667722413183948163862281591756922413470113447243355343649192090309838260139520604152833234614932615032272488506905529355909643058761170941753376518500700679201365098295681034590816583785712145400039321196441851928793382189471734937221833261366825161490355755751808556632318730924455291473454310415831681447371626510307765169519560496173213717043301323528592253926718089801733026325407872697185383567464947751243706110521367119583392350614878248368227584401383312868117530981178044990376139858567398536024325057706378711888794691126713818524792497851747471912938978523476622751580839201454599551052076517271148749765355001039656016364412136922078095271940494053630467990680858854130495478661751888070300535727674443539431007397568092582008005807703130673848609792923420437997754767277341601366414462632587992264160458324300387011996863529988456928350921582405162226460114076488266383215997292560967366598117854815729584262944336046415999427701351300137095082843503489807365989873064118101703586712175156035298711273889613274345782868939656837765741088380819017632163865127973428097164884827551250963952126053028800875087878390252375753948192253001163385443306239636068148516932893343852861182832345458855241123471761572471355727805980163562069893387178154527447601589602422081574787729310696526379037766995976989686495076863639143405536766699650270857240690005239664259997635146262826978109066886102909471151682077403807412907268559525033404206018724207278250157524332393651854528364548409875004953951905584960631577906805083537080105312396831801067090356087513361211557997672288187971347918387370415587685358319245278822268230109560940719805024317038661893691654080935567144363063839935892453530718090804612895631901137974501691449845171870429333609907937799996498836177842226045405099241241601380016539477530931964658546878300803261681341912267674407330346907546741057391371406589970584672719646976908445846806705345340859828748868870482674739562367293334644490384475763406574318077344643520524263046815559792088292090604416246513405691475159033341840269760958116192014635289098531104483892563761209073323056100264925875664685055099578607489125847931246933211880350379393828020640181723919214700362909198704857681912891969138871426840329713761322393984995100488433258895253862301187106225553535879226196366943116479320341202237332198665752346684268105363737172169594799677431755430752796566223438596263602119722158043846932031038200628421046077226360871451259519945956660774477109479646326536354048004676470034370534770542796771733846734142951754233471813753092705910298815802962285073377035293957850948059608530145465808310607261437362176412792527454593021429874836141461722905996039430143881415017993985834047014991915877156198861895413845349463939316649234958910946907204844091568453680426667896951934039608260570388387690026472936215383996468849013629078353946942182252005158342840707338680270179102088655926675973642941566314770507901999116670237242364515249822945557138774907687903122269153457232474173174544104521472497219572771649471142544020188414070678907703176084296670454192382156125978504327034626124300460403241359075430481130454911910887690747721324056002929712952616722650897721506283069759258693249627523774899881007587315493198943145881877580812960159974749090958003245415411529060830413835713819249167095413476021661566716541590701801386408640664214427569712332976322358517357919872123195399003179879566889974271533753088980941171983397705477419480204319992691412024448078593285585860021257440264954451940763390866357316345389547026429752928248877267590198624476643488212799290264929682326522478113315231056764883415658766143962355789933249563642061955621432020519273425489876681415441110224346181678049889258359231001383348102998613232778903159230136421293827290740966496961472780889343180436059140896427107178243327189414424190876536628110892652513035142083330696731245625767800712225987661697138004605065748191788582805322492347127545604281731980584987292087863809862840200187265417863062250639440926157696544483594630754147211711178539396116421048855480072384040619711375938640645002830571179527580940419006703351091813724016734713348617507583885497304278484664598613521348886126469621849538002222874104379414605056314409300525900627512490490000655321494381329862300874761253776668042752363083706892315020749471249039566290265682359687160276287666070195950137213861758011047364534985708567906174919731600380458626292958398190039853938205562328023599067525581861023900482359323379620880644103544530036497525838158692875652727259602539190657983415903047216539298663806677718917162767686363594056797718084629985540411546183464310511568977620780053781594253712976874258700027587417556086808534752226605085180846625722569740410926449899399184056347526911544464167071409947258986574290599387056825880054200988552748225708262560336773545663854279913051718235984167929288143280684373285517796133997436170926102996615386009719086234941083817433682997961280941186268841488215177486849350722501700573877452315452540941297913818446943544596492866410628741984225781037999746443382080685963693543460515573084478607629063718279863113556055149863986209890995806942000255961976121768900114421815128916920876092325687540959940909469863716585260453102359269646000900011173292607758886132739767636772676553236022404161985192381854568984532141381564950350960147381894970046233792592257264600085905095035775580656280138601980847236758711526217697365064165539586978532706126118399505862538469651617266758132840422075823511788710019571665875931505356346204497511699764719117165099110502472690057089105812323168350584352068315059907784797754174845675098162320556896125949960475837311887366195113390077211016180395950828002329319978851260538620094068276189611250924903228239009768121706099639321779938290738884925876657630389365944184030209325759429418303448347019577348528251679964818734188222039395067174497680267427674392587795590296753550882124171407168026211619126322649528486350666781012314949618376022423259764681256111480400560037696939200278368898595967686047631073755894350508289404757755180164679686936989597261199289156814683533695312847659836281914280268868817761192389332634753077536994102320525813377856464810007973033159349178187897176500265093369466960728374026966290295443984239836852190303021086027438270059373429421750583554731404663727066934615031702501534203079596668767098672454261184009911923706198523135049803071307587816901749220336633685133059025065827969474393348905634233836344526838926197735321452177198362650910715604776807930955211814176755362008952850887277175304874805277547260952857485950949395113382380453727423601854360616563486098966026014476614229574465625927095817484006535576177526974113342240817754099632856993332369334665589091975118546272945263290507448882943716051596030436393112265330983687386279343692620642730198736383364094055410572893878004053743396192231987596810833458988837263915993626116955063233731200582556351711157521639839758434789494789588197379639213678666866981225679296986147291103482567285822378893631961239495309411087934272746504842397273705727343896016730491278163803340743929996026468957526639772196305035615757659222872317801410097660467838030345094546580446514011192434432000430756375555246471991867965770685271336428053951091861048449544977188636314038328941287239910457250484865289213696903874491072619525711645606516645791111392435025666850665207413997565182239726114449680658282062356032506569420858425871989973794341408831184796752972088635346814365909226432689671215450851442029602197637430391829570958579523416002160307587642513381612051469407110774609624829352219985465337861031687752296740773314742526334288355207391843639398779371757474501236767766511556345811498438767920231066539046361688739110286768779088936237310448621638677398876837296030422066726293990003099412848364306090824696860081757286683497779405480254009123243241613396615714952236669249216417103907634497744036912670875281035430064097779860938416352086247984819324494471524311848426925407276436189369441515092167629032568165347661901858070568557925243122884120469444949369960654624360835848203940123536811269700389051935861614333850870718318815659959856711496144029159901089975698730350458679449650985124627106561301318478915292982099336775421766523674308218898977916754351850972832420398740301874165878350498803313988017884094042811957333271311393168228918872449325416560276200945685540249992555784171011857867318338926579240898658841019104354895669002463985299487897106699129733286454813152556463370170904164878184771060012030291367138124540383022547989112499431461260063328682427748634726816315074001031161773290630185848252941286781994983130877434955846815895812372694178785620352811491914502335658097094507678551504914745528266830951128668942803194453922861447063329010426503865667562095168366937729504649217830914716268794849721038798846372530660353714121072650461706533577515508120772817760200260098640497198457575780458689882649077953073739941610532481177426407937687841129106196939189214961100506342833570913426565144792968398945392129642915912629831338507735476122447701593761134041133436083094615876194010824689106601297210039819535797177434150637615046679857573258268109395000927416648852616196267687883389310544755837976553208181056118352710541235103096521096361998332428596975473543296580172595471134765721976910378184749463191996907249940300234897488874257315627928099981893742803467867407107400713907788277376386329446300331105612581017627719237755438679674344629226716138778284622571084571925826836294516488650716602416785668939146406278385569151853554697651485527704755582960809908715973622547230936773985379217859324461668235827465662168940014306555160983502409980197597300864887656155384200168998534212496594817535411076428176120641312202060103029403335992154957649177532399663568013178966889470788171076784998654189659919960374042940092760351409889981794456752969781961601432250266256848534947414514627323066825875876802950534542052406305767539607328871252253678491948091911161021875554460167964535894295938055238526936451675087151275542847587330633465342534523775654313345637716136116612795474318965801048248395369750948523841377159206295686384395773768418701891494893829767960255410202134881826214280519929729205464027223127605245973709843682873888571244035746621210265000830605214373480554027866393115766729072828248959900606432526000874336430279851476814817815503822955029655979182588989388309559298926038847321310111376618680344566638623378239194431412461393030341958430004368990472739450752044895170279082996736568827077186572055611001956628898414996343904322517790071084352398971518212623865814579168819233754369426347968681331369850328555798386856892038695472171318261217499392798449580575170918996404695881617676221891323161384031765310366640868424442602906569799071997928535757190937808684272786549029624101190546575369713156630543098385635817505136753827224736601912103968981790901243665506988827578348866717587517526443561485907363066066215674472967812207614667011622324624333539096702923943775841820820918735410507728884050058439428175691935683177162969464982468969263081954550078312335860165223813307315861857572450915975324141615312566848699359989871161145401786990548127802616301295831210750466279728844109824569526274165909825754654413542838125386148598234046749873097109237459002833940794100100489570723563748511950304499303478289563727285270852296090579716267648286412268259418205749667098539619985200703842921966187982109542393784485299821035978987235720067006979878754351620873025839379493296631880420395877068992378422955668136018519628780546592256633731699166659872049318701202294562359905453166558112224471256516256766642347461921422010872497330138396444830277223422016817830896746232729960348819229546416515221495296190012228749916397714411569248010913137651760553465475560974943241871701684497893470969958050033894556527426852053472352652696069992682349581660566295558501181504072021804012705124295681839046282131697000572140176504736034327950228728111723153298644279281708714112838905626603166268213591745801260722583490366931681227006822587800358134694094139741652348318953008683645680053017865301465228274379031781999098665854583005143156660235496031914334353670126515433945243823609609681196778105964757829439347871420502419115278456102718584563236611251531050780569601068858334953499249943962821044893971932895772366004977577845237359267000436365015198375809366277410843896841833295862366519634541592501748505233162572380072667562713205691527723163008774001382485416078187264718092402582984923131532212817789588423822923193358409045663563831457600891874561579792394309677434094957071250940734779446872974046403513597433935088410066759868435188950679198883498388835254810460001886944258255887682380336096082042782232211951105287705003113646223411550632039506842948033328867289168921904752132529793769629661858233862918540044229357858706350822910028698357781498416058080926467274501091475317284921113633903174060437709349602101130703440216913676318403981989283780788288452557375080942058180843850431269575198622985058940630133433357666170859058855179513652166006941773506287513202538423279036600568497246969643909165333461816593824463975184064273862032854445402860665951238064262751928101146933832907907857426360712565799573151440996170698542110059158001575595812568230253324522571027727247108417852142516342407868874157751669441758058770453063038456853921914099794460290213355565400095154228238749704389853961268425359697341367114585519699213447783170017833530552938515657835012644769734719600601543734410320539550237493646644834070364491885425683542890412166094447650948439381116599934623139574827928482545398975747496324856239873771419627171193717584929461359707274284746252369222755995349641278698894227759783019862502872287709226014626833400843168006801056047969598075778890937508565622652495477544890511101134010362909462294752407597133480106405630842962557484836079264755697897618636147394208483016757034235442576517547660686656183038795191776996788945305789925175350011052599217522367025484825479455631484813124270083456270879482227893426251847177612869674568671452652514959051610319394783130857245092886146451624533176231269703315155425427243843787236592173837696462148905019264039469766405862377788763313281853221061789623570223198464598264056707388915721765018984645897332909667333799165367006675391199632793354436563235715059378823754123441531382069806375298526604560381223793265644585152299287236502470990306304579013628941964214363433053073961567953860963299499254381554653070025306506777981108930954556595301897492627489701637285087174077730219810917123898320635011415965247507953405245988657337763248970346674505270535068883580258371094242838105623049539338458603857131780302431277589471459367054795463890070214476189063816670937962806515173881821805906031793971113101799980259406884646750117835108693185736576900485755554819004071313345419435106342598844870530553043643082270063501763192168968816606514431478549759082620618469979678836851609982968871810652984117310734940628400583292098372211156608881857272436397031823110782573089823480831143626362297174608410402060032975820412166879595463104787947116116250955207771467179727126220805260605112664551898984202254852393314871129140114681203802322576657341658268825277626783942053329748538756426701924640942897547989585179501311035387513596758749513384763690513346022365562513411057840043131904858038000579077601824970521794714329247390481217074532176139142564551162668309394997713211407379919793334791335310278276617581335191987799549625883331360527814933511693006328094327902404588430185774147544548811570147176318696836342144065961259851323789001841510789218361057544587235768154764402555398433417799376043992896376446207556531139990770762561662220587209487940254499502847914425036943649946069634743150769652803151131927202807702942735789882699437983320049839203038564679916671335997676108310900572845929778017148859044736790481402926592817887737150220448959306333578371915980378410162431187317902744347829843725295643248624580198034134355000118224543019003063739611548963619142196372196146514763655403543371499937520168544462559332209101234274879577724266699330939990405776064262596512128227459817767678455498120881028665929328295271913909004109839027039446566107104022853506880070412056156351865139675681900444156641099585385997835226655316709382248659271097252444248599050621465088308325702303835233422761700391669662841609135043385319502326721157666528471578953346842101542805259145039823672896996259847890933119330393429146081871222698695166105093005897040704874761406066831854066609822394947363739061793082221147533508357793370503798811881548073975232843838006136524179142993930114608074458917816649999957154115376774648235890321585618644286613676763210881499182104424837755601615933429684684924801058195016376465529885056559639823530181732970597993914671544954432972969593689239655371235117656119667826366506508751589078532931785874390971964444433678249415570762900814469474141164765070389590490400136956227536634479497997398601704692236999048195760515426397763711963612490336865282972138378864507973609173321566243118753140940887245655781481461759113135217778523749161934442182135789561796303558504910406493021018991969992802971363936099869739928756657330763713667807885851835086108785789155984528138135629203974289304642146592001390068913460740913660919761127122987271419458591034313147606196507884168070605137974554382528267606228883192050796076730543283911312564208609637778330399805374156855645329430148643463785497635547275475056014023684839902249432916717840590641692347479264233762003161239397767895341822201865045680936734339137505685740754503516528566880000968391607282694810343042029143313282626805298137421503792291669963930156950354368675214063940614936568981628225486208291080958712881426948794584735882615678150507301126356049556593803251510552297790983709214199941564592791571273313114910662859728875042333757447924386633488008712412210520587744152970139125732339174399326189504573167054162939747767514177184638872186537216361401834713211363831987123817433334023677513553663882292391100848711820895493549391048560691529474188512614341367023637899972829247312097579715355841988360519803464147792606734547073122891645835591684366100772221122675618070871194660654815392174695025475138098396037549008284084013384102652646247927365826067753818302265075227229785875543577121923143374054373380101746726966514086109885021506222246240858273871897889300559337624749459656106888504857410443620837150024892770502731765420848150496878171498973029641512208420565583995972605528021609065916138406535941373534098540063230991947112466494815962157683415868591644256935430186234217553808543060942029265437933041867247366942241267834664119340988200436010006305851043112508673311727093333491688922617562736946471063826431766285711307883139411123266237216962670523131376202779129249028087691724949363146574384595350235705662716166292551115736961981654440907867788801144124952392572514006988271537337198007613905831640134797706187861219140302816844506009260675377414297194262146194033740484446240408825744442443933134567105258747284639785224738156835784809810751162486699718909149668184431689288201698927498656485742635023234272982378851617772508117876929963094194027493306827721088893920511457200661220214109731177448964794067069050935424087317635932571626008413477018662939149823623817549389890356841800665147769624885861478940435000975754708867663861986926402397132032837727253441707668996529170376093906171793217823424662844526714685119389831573646929881099939510164974298945700752280838330395948875349610748953641537913207722833730047412770942534238850219967298935233878790723419072225708345412829603020100836151562823293985130958493611562542794790791975887561494779106769461750693710446144657034018652910596677314178775247224205348048684149829346571327664597527374299294882657592893018254831687286366692915392344758986622185105188888833481561724061952354341064816261664239182177035671595992750182998403619939270143908513564688655390286677712767182976985709895443156947258503715396446415073433392742180289786845745069981425358418150130555868059350874866352982816267702127628878086048368429232119750659850276042640557266506873646999469307921840913588633266256057142287267821456356275609473438522704592602890068045853004915281230085730641066766490422159942178478183859974152673979620407035660525075235396955595489058632849656144589654911154839993999815672828579691947126817433120759446938680565705745014006729093267286959527681888374051917557429393822477215043732783515113024654262557583148332973809082432528359093914280683167060010491197502760278059150118845050787088348473746563927513104455407561327939996165614662821211625730408935160933328040500145981519520745597341852716873790162090633955770508812135410590380791392337085356348151892719947484340392203469222151603012797897932802588743572363404267845643813839622189486051680179525239738599867846260443753377170578894674682792364187904156676112089450529095990374701187236322302710250917453045501899739679296697791364480851469143784000626369240942085653868395700775327136745324487174421349090400763076784752727999874140533627627388811747576977403390379173801451292261151010184402009611506953629929152484675864621654679087758677595316892173450897306413838503510291644219274623346474620856577027127437393138746910945020525011831339464554779749068793713200631744466078320787748054146919760032976377600845998581744884215128689182438401116463090129104608504856684647268300058944002242117479324247932115526019109615537314097147405621930180293265560864895450253749142379601062142304099680403448730578907934559961707250027758634502017404460907418956927006555338699431256969237373120700590863047161013674309439178958875759691446365190711869046437406036097017084726034354215978569501248460812097224966174232127488827371827089016335371263714131161919709957304677021383018225600312469528700471222949112103736263421947437667551409574022835747646251970548713645599503951280364417946176671805051120873187978556555743712718385649930631787463883095264385575359318791860470377308967339118702304450063394381848424119814924511631734992071900569151946598210236376734490962522242651556907142020110024530133444377383625853651340523674040685317052653252947241742154789740812901480563942239097387877601504186657072812063141919553296073064669999350446089224936126357835946231186843815963566840106253627136406956337045381497483766512790775484445023208243439776921276333890397107559985252592844090601294216003851234902246964335640773920697671674460129882918279609283979850202537134010489417827215860703898944147768486370940493133115494670644167456861700016240257626517140267736540273662190192438913231707618190726867544635932942334777271916334088315326944780605551274584503622657408904375821546573562340195949710538418572651305818282943494077108445805188967821328378512554041233338641458870807664402336706240915318410692098726976043494180833497887843690116844161628477194008171908979373441640030846113987742177660808114370418267119232384421042645110433776799845306911554266655341443219310304627573822086836717283845299660749943347230663469833841092738236164656040587159871604315046745862623106724564889359599061062510218084306226084986151104927501475498258036353384965626773869443765901366175075457309285338557191896767595460628640216345233443115839333390467560150358563662063403319072669677658000786193754381272716092567065169921969936670607784171322499468571416646319951125336797958111179985527743672251515238438322776096971608420828914322953048913014739143431225572158515455327065738743345200018920085213497218300261561293559865081922521717034518728428081451712527576950517149696125466638084471178127239971954356777713311742555080983921482085556229123542522890517708158786012737020368541442660395283191200913676255017360259322922179282802804625696066124216826625843489397761958008616204018260302448407363137695055081175021705911181189812928425941327385046646863120829943338073309905176858274306291609015960983479650586317838210949763213817590721112538258519468274599250912333801173379718123996110600311173418734085921730146119337918026302240126703145948156211810525613365407680369179324363472416595356461818213197211065734454058179225373396324387021889936587811433368824696165686231167758962613998276323936088692696013285968811151854176530702165960011295687455745178051077511399666638033142475624252748342020940551388405929887595207896787002589861095120162930079666833291430329475749181197753729902748572929515332738825304980000360616609519526101435307370353842057433918566467707849902505888711680969677782885301298669920949837426993530256128408434932518098757859627089190795121346163796768816558125218822713180441392428474719337771593229852123192208703515261264673880938331436832527940834676454156935766120560381699760667783294329145450200768841232680591610635599026209818207658981126849364042079669417073500635417737613732483115417151687946262485330808642862897706622606358556228703804983415199207758051771575642905913091513618473634376434812667931858887770345235173278370145485293629986075539635160067224771655542693995140886084423687060705206957142962027587949587000057173857407130148426903362441630289269020219785433728789172091392770296040210778619041676637845859726968066951444679916788010831696581456167661286927347053597820712967232848481568636536560150216769812579057894142405652755054454854493730722631485973783875576157426448216963577526516600295569321496025157533433794838656627225265874444511747380392289431086109921595974605200933602463528545916418927919083595470685826939357341456204804809920338625812613348576299357084559213685539983042917785112954128731036129503930578143458052507822487285180306964270508540505205107752591293728882385695855889611554552961049742473326547913549422902824893256808082902579986072607145874685031367032233534453891764242557915944947307308502287131680572249146433419526498694120539055346179514052875131970309161098210238485649635226786452719138519659166914462708011523625156532186790997956993789854207310655231315728959503225764877040201187844496439657240379587897169717165629900293815266163468678021905188965437170102204933697952218383358492481827968295620088424421575213690012208919054864352114297368441366997930661421833069346588822521660365685029043272877741323192221026347986473682578850079079098570483658952286824177003574297708386056132385882210729263236828261212427766147180590794100526445587117821859493984121190426424333052270099933890895365510512343172950400679516940378917289748996677180162292422763988802440227361510491519895184169732510472552372030590531858055071881767752075490936841486814672717740703326120649998842670286168388756089271251272819102048094199902797806594377614210552717659947894536138494495008074459116073939238195735783180519733400301708874847809108110497487665693628615259324833322249482934817126053144470923043284031547898052082476731750185747421247628958194037734887515326696150241943663199182056410828256324685537665538981364329717919429027088706464605922394555195471250411113410096863686742560762993512059619303497240151597934362271482189186460583146692674831958681319767295991191286137161387549989737411754155117672041687390967772119195269782805126697432122902099330415357128890217529310666365261703380969662901982512433749771126170589622959830125506354065474403654009529188209505645903570516571472875330831648242196900240871393779011062915425105628121496307626278992122649735026642968623881142931608011950319636123256710388566801754253698908899778740132030509740700186497903446259764345206311129241845992646459655497228376600593760220062849007531205437742614358529391180743945591843386056155862781999198377967932466222553976452179985219959735355770286224531169327068109018951617646259927192598596718951126905307307736825437392519843633521890055930795997759674303331826367993329807058047256162158655782705882579171756886022690280581579447514776586367593235154052282105524905096609348872134892517369012927829466011704214628158948918498558117930877143911433421607619109007098173701796813521140630622896333696813871900612172906191011690620466194173508242915000958881481869619346690445522423945198588371569233894438130473299693056305533951968953219154952587794863067934437360570221570228849800985193446643040690004476929601226395888322645127553162692067951258046130388783304657341228314696407395346252738104280866378510454455819881608614056555984702573492537404206423691214200998949693046066015562354955206265781855016064499919759310448295702672414956561349355310598249845242681288475944269218053354343747190687034204087858617373295092218623059426712787951762966540981753786038471650969414016727196402906760555636989302041370724024233311877418877229177193701124959126058254710028637512044932901945313552463686867197413398678252304642800575681678092325640338844242734281611963270501968659614759143892239556349608430772887600385305230199639115876793977492918305677685927887274474192075416956755274897594685987672473675670426400779574372433592006947975135430700476389941726358578477932695529178350725971147843928202416606392465387088650364722418692763970614790098847541047903148077236566680027034405195224297642922652275227486833848338221479960147814596446461952247861943649797447764275571879459617911278629831529042202921433261471774540565673783353743894141283419722877513404852048886549303001080588256670485803316181848506128896569654679612684903292072023960681364144161059417490662444087260126731329992997593016772604517935507099272015551494703746800418911780248675488495096932078731973557627841459987921544788319368189801302704492145904423829172588812749799598770932368816971030841187349539203095063639243538392598321012947585602644070716256583147512401674910950754207887421829065603222950088290834284528262842062144176966378354865444406466360297183378373035083647496756479403822626020043828320397522832672006118980828793194683194886678187717269272359780258351378094593377165895025386520493815510820572428889955267858157427539636699316739764283465596418155880181238795291605651400357080710969873599585271697598469513221172543969154707107976782614681924523163105804889472411120018950939115816303668675207792183688645658720074846140277791311975741703992667410098170126519039370736495842121263789365406810524171909713355363617100186060954287886731250305816674760593354986333403483551454150775358754232392842148991967001454368770042138466093147939345483751534185133335100375971766183010285551909074645620570753371036604451636895871558451241050279013277849392877195880576701109614804317704883651622423299999391072731988580830935356071536655850661689273369030324939696886041214631376949123679214136584986554460649950159298871263285447443631266279423245897786126307427955112779632219630156606563795234074554699048655137841028777287834790349700171216704846178272196682606187300305555190454677195924033366065427193018022696314478773443029342435737212582179374097182268731728149707050891204149293649241484892548842270905494004619418840322223462302762003606299958387646098171409871016324586388341425412244106632549844275994608993076061348064784461699304441874071900851803621522663528462336813683938992069443632915684746146106081850922138724764515401629476870490646437331055624764124963799293355013849702878188209248472465712255273397860927528360370937219949004277591634704631557124344186789764343067320774215569199312968599809414957945700424653409016988026983255148929574647594471666580305367902513463369228289351913723745803973037525717474671750248940336178236717732177638549021902479812495091365526031122068033290711631518147086675536030723431168230999090245028239210879894649552804960314871284109759302522842775327729386714549469031029619869004743511004687201197949130116391767393130309424605308912076143033637680334596366691943929835321164046482054677605604593599094972348947626944441613126206977760004471911798333032242254287862901329138216266652585197953365108383158147272558974217076734824155520704261223430697948646682047639844077404225463936785719473737183431633001521104120204446601551475208754991572269093657947329304528146428372918468576485389019469716777428504045852284072679871656000345141529425644634154658322030835661096261223834950127024165075101358417525402494689260021301190197143811916795300292809666430737980987942983958568679013990549060550174960547949595546472245198128887917991485801898774468164529908279294421396429693550628504697347066349811992768044522332719495714004170974380076162116912478513532193082497148955435696070349753115696902073894633534242691144148192933018129456192958783291510892872042275620172152560129711319096391385134170053137558304537503069525456939130534714571679446998780804297657280068347777349786917493169817595030334618108177392943963757259858565830493548599684761216590577824190784625231191631593894528576881665704439044153949792174550172286941223814992623729041589786929342697399985364244790920249689365640200323857945337526155538281319153980252917630945871393398098156350646309467557380783621488971720390591256466429125747121128677639995812364163074684570973505257271157559277813583961017273717762127979312009287884041184874607841125142537435390587167057448800878027684914983228528730181378379966129832487144640920673865362822087578521374838771174969089811964844300316211222943998820887890780589560256293674089706894258742515917582313864580479446389774810428689732109350242098883042226664588354636204391958602631518030192770112129955675302834391534639632594139692059092956716406821837833664077067483402671573115386962622472546493867456623660705893455149889857964402057715621414042251594173637669033247212603621395342974787449180343354508991162233843239256580216353261176611967440145608820034835542764670100347781876923643726566487142424797848038968966169320576375522373461372999007713368712696368872793667154577581940658147966801163747147105336457296964908885080653455743105675772450521508704003584183043611782681922263067453635907671709923875042558670695816481585910827726954664695150269871274005538405215897716282920567592280870721281486646456100148953777976334048463939348023237540391454475045235534121981195352993796563378285128701284592594203203526440910827911122966358458412013577655750269554837670653835051125142162695071135863088725491667182162093575024843183958220462530312243446116956236060097755092118945433142964072957940485838181420736821296135840151793826231886010138342730888679133970699957793187019884643375977001862598005246729917613482180290972070480489120083716403793267013906809492664921539087715482014687594142201276648774372138997337840925407402273962562695046615155671926254436380659983006369281841342701879195648930945912158222351935709514273214092610263987811182378431888214311986932930876646044896952488392667370251083716351260327408372492825734191570661038754622173386863310808532404182831346591993628025574928660271195697874585601287365649442403099641947514606857053346891782025489383186567416267441237933292589665765914787242628622929216785975524946024823361704860549079380595070248536101271269558580751246201217952721437865202871135801770542658195354777884067400871384014305100020394994329488096216373850000898189985831541842854114731952348302965709470240331814515589747358674468211669383869065111674242579149427591074288027894376107660648503077515796117618134604673925368023963325098020593807627584162888595081980889381898468573635852129254237983771448836553442453680876029510501725464625410055655503956360748470650970550936271311929380892303419387729679686939145145449003949775841507392794814347879436103411996347463342060089029737175322621804776890427548718642804948951937205594831310179893702618723400608237587583529708877566376009220071248229225775323871171424953319830922626028905283304628719116943777555357143190412975877139143887356886320993701286561584990562847565611204297762934132288617481039801906128026959856346208677100070836923633884318467224250457014465368714947826601830522028966132689803419653470061270739358399747870760843985373936224646471304447321314475605756323376277070606855455589385004531682074092956484654311089312022737813794218566054764649851309060968615589642804063779605564011688572828135259712540317356446811093390873055979953371105678971719318743182818315149262722274864451831904689930674439365018627108724734399050341904974211947684925677905624686471146210084069594593040248074512983967964991933804867013722951161003987530272897155388908006299395913254723131715534029407196860409532229636187154238007896845935263278917127809986557941315309033729849156011812515805882049003267785210756948703558720761583856152907179004014256767466242506513282866835555514273400140181651959187396470445105796622502811270454198210602365585194303421620334544041070793158547378321724698097132781978013302583248184008230686875067404699582752700473996101988853709098734370097507391716888208579478292877316242758971232066737206235980112518729132222382963649867489803882252941536588216352277683398959679645919763537814993499987883020314161815398260092623946909313412525141242364220440472599621588915228443209870221884808715169251672705642298815628665507382556725049116491325301827303970528052476535034271471508083879925519691555888760707653621711699280137776906686112380081912588066684228066244927203660551886120035055375290371870046775126163995526243853925889716792650858230544808436440316791404449303217158190713446497110000461884753708886135388081291908732647487486674161511954242003269755877295449732206145248995504408968839440967877710361306697809150718105622446465933444816310477732672186071053423037586768106541659409789447287140791868389184124308060044236637369791358589421177018149918151523363041016142934278688562899783926605501540388974539953514784241700755044506884168486628192849537377169961865167350115167124652150425387494848402659635846618992181623647286754730269379744676995074694592169708417232219555037771086486779446456465506016108240856991299855937776159281639918273753705332186249420362890486054758137014201986808443138924885042591376591474656872377491831884795301569272041323264699292223427255271386873260727403485865681126416892975007216463270730245706479105715395813351492706045420903561157624203358002144016159133230445872682439525173957245681500716433854146799554573820575481712164135784468921714970439766958400176556121676158160003405378961184242336629888514778271857492392493542572526132305238375289083558979818740853758427375192707676329453902367350404564581900668376753685405825341431145381993521222424312590720712660015708594576577693433808170883281689972104901760144493545816152442266331578254233440159962921685506189404015552429689041452992404478505179015558555208413972475653954491891475881508755843460807169784683618964272603771610343505320056106210683554314355156554675016329225215866380658003540398468629727797789678833122465628604459943652700014242922738282418695084799429683581968755030488127842447650684101490161990080880279218504818120213777213254607080892068343045181933982203349403225365030045149627711880460441623342321547446555805997934427043636999344150093799098311559610374389315960463432177183089448587301264124511704481667127858627239863950456861554966785293872239195513868024346890942534191512492283949178537136954431947948403745234489912330022186674705210532567483952498954945081947707018259034737961844195256538887197379692537845396412970226883599778574817041007818606844070502743219588038757362957209116796057913982593831051894803166862700344236999320373252280137770472415560709143550749833292239648384437598212716313891064715654962780083714080024893457006976066410072247066193091814864003709072282562919896083359375540112437453212113684963104240026639044260889797877085011860113066283156204763138007678583235150975607195256327328247181690627641135070141478923657050728619502694333462559888381132286546740447131835355356925263522658791198065995741204812334009186726176623141777812268198162445417228687602185582807841614327970821384978235390417834352928455985986870347368853431240245045930859932467333292120755419733861894385324450963010307709816747035106404937925194010853107467406280466188668380119031719455484311901121133496420491562998791096165409559477117417552454628654887332475439033526832637679263322049938109832313362243600735547745414328468032749143758110906631687022426735953748275583572673788960618020896438065394149601072248952551734770323794183635729166639746572179643837330270944390464503825084615724489203315218138534568323331236024312848000209669005937044889104924066780099490886437719847319826706519846928224573057567658171397488450902785662209387600439108072673354954887318796766147972327994310743707228482973841773790315953966294917500837303744632198147185133094570492298982150930185093801000066339391935531684856862762309099107715600354049539538187614605458550800477062063566474112782833140173848623409289330467715483547694714791258522433641963552623446474059409272413671491849095942761820788555157108645325736862025958957521115439856956236112449279862298592788324677002777514373434293636604881197199749856886971582303466366872760257669798571352732994690323068921430243263223737100439637052426827438816286270437634273175161011301597474411996591394062209941025632864408408564432042322565384090538262936950187229778058617793175305327067794755817894260350070374083069059288204390604996953357852134840173806957682921281384160639401064008839196531608236972702491031770017126636070830745793683371827421778348341421242009826695702081557069775711225796505550084299449068278281496139080173468161364262952719510657866653065819743120202371491688463108415670182913831285840966886422110535304343186910220711862567161078532215194732026317241061716008509010074758302312142794044325063687630581106213803648296601947278578291542695993230232049136577292509406857384194120789222301840502744723322327968864359275716653624724002873735214732859538591237177496197193704488073880078915081711046382655329920955766033828099739627783500888459018600859629414733554342095811233248702187108758057122558710371903696645757304082394667529292500383847853789772303678890963201365069845954487731366199115256024300674663364471002144420175201801561865831343358151052479013405285184578731443116941803752449828640891898897063949511730792192993272934668596727138516681393624632024894086435363513521817159006749567208299774073146437461543554392105362711447951766540188402979947550332262722245206452629227484869782946563395498325759130223637754911665207597712364357543041400080838362089571990921724603961584234861730969067598208949473241398380018851817886937350210294161488164359441335906513316649590201889917241565929068292587799922705432042289108539302405997406129852034158286605271812582889006599338452570457488408569771168530342788484301682290078767572977791654841519183731429878521520413484126690042613197161214398888827189442354979260343845060153328068118475169439887700099789200312590821746617856335302954642357707666735084846725602674117294163293377956703104725405839476202450678116242245464843935794231965273994841958177478480541632625842088571742876211399155337955575624046997534789089845386474523388116989047129549960099228634946229156595585836548015677179749800746114709443372494012587171725912543092944751733964272458197607181311673624891313342142862341018283657186088419558813745300992166548689970879740711774029600995668179103707296454518906310475142682869987495435492739764847014437748393768075095921327771983928205957466745014260095434763219610076778533301284801002448711936251208370358255470978649958652180821066679581126654396513363944921152932831906921580972413813129746065011858045626206964354785362769543672395299859031212000887757949577389485878547592474273054371678150145989594402259925494919047712105027283037427573873867935454043933248357477368491533310842403476398587712924134659766350001089928991284261376067549971073713642850892855685302863831904931851808802120938613667289084478951857678239724508751216699790219843501373578916006348223317035846994975299489062536391892950391289996096938341345126853616975142919960642086401919553897227245089355085291725322617965325665920266284941642493795854888973670692686753654812296012932630048657971040444324087190726834982218994342269877852170427940560679462257801803498728732366955158419469216228807873020029928515100100042717708067768874563220761067367625686024908900925790271064352897757661677241879096524770336949236164514641464642152498927627608981658959158512294872224845486474360387208262199921513201643325870746460048560755170489218985872895699739986701011031545261386574925700681599107344645141875192882217262745191377823564693186657748997221015650342853328480764261884601892424513860591261872273060564403935786361782747874888743931527248462405878350610266866198199726045867977645394788846843186869639655867378575612975490305148666012601900992840170193415765560036951677228051724872634581889746037085459862696763194662665223636547351397629070770774723298797457938828386847947607630508179358573741078221054837623933159205904822858864196960411683884676595379477580508289203656675259965516802172345996958163014291132388870249194905475263512734453663471757067465621449063352077224793383877994123740898862459696204427438911853657140952401766782462821624681666613166072625905326760604039429984301823018382705323164122799353635574098195201312207778300595578207953181156846756535394135162474158871906625946084841426469859215591329057955783267231387863987050360703192333074183100602621275782493013438262616363444029863973139847698183738354466183850681804069917200072148536705977272774441337265635632346050395478135104998611619189242356782695234504363834598054206905732631725363329784795681328631379573080741347830153723746476809583752716440111718261233906116887481557233574215792633137539346025117921956800892132310775972109258096547214448699861441906314804773256864972503931958772207136474387094910531363977041404877097603211165026347420680458746553889220131407668734152606987864497675647264911957970361654694929565690724959855736816809500732819748807668756320544781642745918443667425684947373951957328572803820464116670322389665902124392483209728124253013817025119765170539071362626971866740082403157723218485688086391925485289084029011331444588402571858387550748902284815992198132657024713530320241115089554361452758483886474614705644715300098912619399101776516349738320619594536288711765817446630779118748677770613621857041161835224271259100370254754295260862726028187148355376363978596979066540613777890794825315704271517676941542054915939576672636766326687939255013094535905549908241783940726291162316379807509889444730781246362760557067714104138452079987333290898810352732484976546537209189574266706616581257933774725226618898040754257194438956372418067991057416440854993287547435299119317376029140029931881172171625067540815902181263475986671800503757253627147481790475438570394898540261993482062961279977881673024692598929090796090708568544256543583582715812392506913796197614155821555975859318210298793345953456787831537462838368765733651885940544948701668124686614481880027362226645453587052921500059147636474353322003931370985765214931816622211313739967063853958633992260050012645129742807343557014454621423414994014944007192386274910942602830354331468338170046118819426792401761594569626694238284624108936806467807676193464727397747259121810647289290647416955496453199053749977719682948854216510528508471784969287464923243846014611752782724607602365738702445427843226809512737168697465580753835088115709251063381368022702563827828856364450533843868407129137596365976301388613432663006251497443505992392340387828140453089916610742873229478960080525774270445615831626603981864613864173509113994438028413371437285844622301477291263801317803574007347509963358195942597157882582606858592100161952669795429416046893449727388479067755146068872520594374258222714206928456088208095669664098311431342162750567392843548826161638885665194015937919101168008464327866578485980279977022236041246139537298078460123677774058398562276437063439617320977387545498958124044451377315928398223070472438187412941241095988485616977533484466781575818858567041157586985853693673381557169026265877171520992241907769558455476323439094250398620778206516216880846541002029407104258166428727425507859525968314801234414443536385918115901234288216473486469222704617037691761180680013377168276921097084829552519901806270756489346242847985303467058054309374339605770307563612187732623916382769884202840959432561880569972387812733117131272400192677301977469989041187708136509195024439901340796645838378905865140647689444598566502299867266866723383170145805603028946482267355285289545845095570869730036707383650006948285383852185779440736285651207267329971129150267760746487610934232851495385450899233432599631909802597983710029331840965909296114500330035031530512391995267268691739955763102059911796362177688140699108012112186212072680836987231799036273801450046160497049141952355230705506461895838312859941589467899717441802027696416606639479340369802826313240773936458622926587503496807690905639337172396187243551007341097760819944368537921140300423713754375256636602798340609405708972751387242115270687882485879702245534140947549344983181535528304221381475813350579811863083015139360929112772627289947028092614572746481569666565493197843929586524611092089558584971906706471294265139984517545237496180935015238990104506664529748055321034249389310249342939566885648630359421889142403980308709483477775784396495201248449802590389997658753790334493345591769654383041030895169744453667137129387379323322357871972471900233781893244396416140227997287869332408813673464883665582740661860518712942317020804832068478823402841912345585714806171284906529881995448136233114452262530093234803113066320007263777234887860685078063173374094368092966006238418667412679918481602323837275773460879188669910936895482396798562874903719839342995304164191735933717857135270669635981367593997473215374947169533036083410707509051035500674403268698446590926635663147506162368668262791274067296904840182061776412471922437229665697338827395544866535330689583701966032966779038789160210252999184293645246318643331618351469821784079771210020989831892977400416253690495045204097668317600080471017743934236501834414562431650328680747566726506214514309270532033090411719264232428728625716483167114798845009695844760462893474198539317248459654152032415660727656719694899815742250504115906164582780990013043222230886216441301603419791553414762699721772682795469317326276259921614710081555918938708614047919798171398411222846869374863166431379092834663809951012305544110759476531810614665879012876124771431085551783927337185653227120692730614062551136017150482551200261033006081311233796269529152742092334809553008214586477268913655402715076897971700225420978287031074478532296760953040777323333555345148990356696690308648752695488821858360233040110857950115228187603933707648995652105354877517121964229690974014258101449019390631845935443165886860509962682323346527177364012548140872140052808087427632898279160320082762953994105516192548957800899147421974959851399542474263295850298294335461706103158921872278927705165942347826996420950886705817398979335143097456960329530358268607372901755832309982716391539765124472264580452987807988783159631438178903680364686425294713912484391081685314947668666479984151242259294933788077928413992905099261493209888453920674940611085477735316677623202106383526044081583611960916775276741619956927338549192709959139571098705886471744024120918627025516344737482044819043086223935910278096957006701706097356768587433402557652984809066599416242726038683716628365671503711976487197313714676943695188827678405502143598437063071906482942256781319864291137909624241346548238482759515391300698635117417276330023038477615080189307246284860385656094838308189139709053538549288281303227019015128336326985880624401867483955262238979682652503008088665877628603038829363715440805931123594996910719117581879353821290785112354887635376857960658732981290101672977033416156653786972902716842199202219143711465409821931087785502609936374798277088786361932544721663929812930284316441615073692697906645252792404134689634526778168143869057980575593458593994688632376412268600033497559949475844699553489207276049892009561207740355838113266243820252482152581195051621913322453485041413094896093288440339904030447133340484895544798148395065250893571266988228234594924526742019736302737790563460931604779522567369144199172554473098630353685004487581107428792220010719748875266355912452663811245146724898078602933843780142055983991059793152778262914616273150267138598860848566445305001808638069938465467394492619606375085830045207094947188484832801019269205791271805874694421962745150711529350094178649590565906029096662070979223931558214470302486157048836651148961878246828610855665498428127465165003421155578844013499499151642142488516799767135092670988972618564494273270192708864755084720661932516948658090541778805498325569551893252819065182555211183641161317516443718599349761833331667798317864691416366227359908103198074343812043405125969758427950506602284668855538623170449065299863976643002410212298136490903189784455103503320631994574469513966520651651573178428186172489505299330756472136293802003455182274207116912303738151732674568889366423229461627594584939220369629642147812719558361156316342233954309688316429292119999536219652005008125893483022796234565693993063117022048859181474935771638874898280049527641933540893790920599859210063246598110608483029897624170469432510326861899609355318426624344372801731129759536020300932160235313789476816677593670527359047794360624795252990963473946533218516876606848030812946669590208418250767616666790264368497544825959007384356325923218332472884821647973615221431999750852394506350470379047405297679423497650528895523363599524292521486803116636837766943830784825806381997443113043121509407392535498354461703337731428570515406413467017426253021005105890036288767324727270974100800903659379313109848383057991036328724598591044811639736624968419569828467683353307497439206125516773155221714051717310994982524784445626113178833246928668644193930003877719263895365688446461666049141952283132698452671969303880253929928950162141805624505421062559201847711590679985446733201468019245256823892427122479130223356734049958384753022972340281418382090833756792856162592427383609454701267195845625901192756192752635444703727536230353503065276976932759327569596165892475003029624704980180964444155207201777677597989457650062795469292168483044898528558990561678679001996406237347644290071482032459325980515807753049026437741039848230801155153164596872637175286355315833631134959599903158570773286117915973145597456781062265751728876260910339676540630514097106830582290578023736929295733319785055990072093304791141384164937448283291459127458126328756976062924649782433582610900465189836597036702113214294090953823538055580807967689033841816807703561001424360224525988301579932518831702969455013200814737815396934022228857060996856096635270567474879142005625092314595534726386970253497845043288956495312117496079975915128652278997665129258397604504691696642302211407700976801338209788666112255684263398849164079306177188284099549577809564470502226099343021674357419697493444007550162552038270141180304279133707195273271384117307388712726809298899088817996311629110742521559041023501004052185349665447943748430628720206708123902230666935728697800139973041144169452750710078641824770103635195636475900142745922948422028774008271163398557119930187276245622444057736344835592482006639113162372666086986997433509407074512378497055332429592385893395654174150372097781058173016018506479857819121457467409542864663292306260953026093799797466552327122121081638843420392224725601027739225775495144773184532914097597550730029316751410787318286432326155467581040369045328711694672297145704364470147689323882189293147858972240039027328371446153890396567158529733554007908000660831038632518327659813639836946754335840395070952004684306700813746021825856153297242765767376716703294326230041071928326482248912446790984168083609812596099703552379080152513547915731291520281241203924580675078707316063293372557829551924594846998984601432726680464819207722794174545355893739119193156920714774078096032716128390512239978121356918139607597687319358995266107573758399456068921637656552420206022741204616956027674041174788425062173005616451236564050436531626563368108417952190120898590266787081701561368197080783555010463571448103172254549784389525689574660999187935942248229099200520648773005393652307086629551531070461100141339536031371610116788384656219600095694171543606913724336061339617491685191286481987291648313564924767924669767170717899365805395707244002773456669419598405290183930355051163900653148685735863283754270107306741250256796472479184545561082348853428733553523550219655913067244734043201670071147846939501271914229088461731525445611466007125303895444090101655148871279182963408337184754723900292812056029714988785607319048919537423040531933036744266626666982104917752790264457441249514903535928973464796943047409296673634197282829814835915583847243706378610510923666445829645928982594023095464378347257879470607557611370092411821292544893920427115282783858988198150863120026112472067356283701389698080871977603510704184334162743740988436816678468965389628406865709942920412004056527698765015357123991488497715867952385405027803789926733008471789809533468835446551544575339400611619241217482268175135819815912558746604962084591169620292958910952946526163322139081204826937026903075800493961393467642726607403232388908470671710139162948744615966409289183535827286983338548796919778233275765862624938569971462642775573155690310131481640495385928636392711825448982643789690690006715380780409899634140294783196933224331894314156633608224138923301165132981017535608391660675508603685749572077732730570890191350915875016767955164541343388744207657941844049164273773069644722570148256966824043525567070084472772729227540861209571458102832467478185463593495285259356014856486676930115752648016484113562915009225585263600657008778628724111046897993776380579043241957675003748338245187251395266132789562662337582532458598825302361117958990586378788572799869062493730944925296266439174004737726997021577239343429966896131764710075497153151510285304465863783561604365678440526536875940792350814798368071258406377624936021953962547850659090450188265770811269603015966222932794003615138377714244378555016853369907056018356928148008815200853996890884951634236952274965294658788884912959160655554485180287996732309862297970871808319284287864322680559866879098244606826056950251390901035652532717609502120929385975617283150682906965456924514927520440903119331835103203681280607651438779938252731237704060375969208748773881600081752829628263831840369068263154478418737960036863733963610841874580164901675033796165396644819659244751749945182404161198071480283113194397359697395462045915442619235495172023333445500975574636613845880217162039670003136990778342777941600450082593454868890079764686641648317756391097459374256818591026949180076890381091264674440334257680115808270504862518655066924733851808096777875740373725175680194452363737016284590032391307908714308824868022573199607723921560514885536620404573544294036618426823389492621906480584331697519206716507189320176387275610893210390760207248063160600714053048128802903194398192787458782001526305225675169170264447388432175243267239131301548273315943965133932102879804621256879176582280970793292416775874847622380750437597271879494830093857046879657663944035950121755058049692976618119041293261673594345948039045422167250691245665871142591673485320954178623058177018365922493693437224113933405567000432856727498730805670399624900157533279539175822792179427788237407382019718486951045681737523966651712930953169227908235840406775862198240141012561456131357224293025754717051386917050612923253190624441305506366907864023888535148288036882927449911615186065102403796334533009073080192081023175081761280794104734488597907221292719974318484065788797599106666443734325648307015782680623974267822325475919983577217581143467338232281230269049502150325588040394115249902372649481908693725525850747574148153379607394506514101554550370342089928270018078277522132188578199553942807914408563920986905679318319479269456867875725514667329062576271546362312316616343573852264023154656315317048134024156081093520075093942540728870290039033232472930198438990544500980424554515501836659178070443587160878367759356202740875365516237248735414147839261383667997380396860747615998428669055575304791070062237068025791808931250770578602661007512400507168726639745070523104574268715369942908914875456234498347246565564936566367106826887900140630657569375094671458490755287286698392301266534467499445523038716466668022253641046320601164908405285208427937126498504352104786616799277838552591878307538946176436532749679629943896694763178783624144789816533710552181107713268139789025212119460143987593052278789424878152690288853123950656584442986041659632971969786510039023607378782098944964065769224798693358240044120395210700810832518876429161938352335523396103744923403856209771996597839660336571324028864547508340833351254904678172114308789319713045838894846497560077620913279895942176380718307691907666610261847388759002649839087813551629710185185015048513483279702187540763310523656063184896205450844122582097263597946870311114382888468018565112848490455017845894948551075034073685512560552543366703417181481675855566778072342673008688243567830164348664251440861763336627977613035277853268967431774582250958438834342072103303319944150750251376540788646396809347792906065294864841279781475058710336290404221514608557381008628513637997450812050859594866487985376616511858439113458620048852946244486244769210859912223123019892922203329658631577964975211640021695177492294010614894160404926656818083797112974258324791698845656317273885411711680547937139028865733412678005918868122353365993018890322352688680632981906281750983146009237296835405203632985116585568938071784636063115667136416080249873144099596354203781671084043314351015968810605714637319288954263395890702189947992516890016928571606416167531369017109721523280403499969682479179325720554323058682725332314528390262537750601450240787559368790465275452139261066838244780502631784743934306872667021200323371381097159387597706126570580627247337436525778604528198755362748937432187350992506942931945495291751417034028603489332343719831346521034287920908749623477903295014205122003952903843818135945782352281444802341501015039218204745123177669352988291060996000160815121859058081177685798460945852442602692265312299771262326401935043469907602185396397757138413177937041462653867530354360682688555141034361428558233915345315454167542455222272117855668743885550926744655697817554452186000774665026832535333544745606910165995728654458256449187498098799494328319489858760829507241838395609676677550544958721082823933556112443518588069624762632896895188396190457781890804585157387881672921706499968240424628512398924143204380592672535866161345413697086418082758559871037633215191184757559440674752377007841671482481788483956250556326882053718675764329818669870365979326882393780388761253007953902832615691842026227508804574212075847315413408448976254441688506171312830570729984439663133961762509325497084722833969458027722188936834512936495426768415071355427111733889767973340365861146992296922579179596445209129642761411640860233336538382048867852590858856378887622707244866642071863586829277688615573549103826977195974211922231623694300103747720561992522146990407458136354224039310111259483241010306679243911848972639237165709592925566012003777063116408512306220907878169867563387097215607601759517894078362256913385112947075412998825980905480911476427473228655246721481237123405931264755457023866263458130281483479022668347288927643524563330369016763141845833124118257899333504061331407297982745620570136894507505594299578035507698927187621818195026154502357871158170949178932599487210555415097266356638155809593426588721812663833187969866109300789815756987258003217877189359045446945469922178854833580185528083321250640513092949420125237121959326069534788504283677577490782713719414932492791834386750269443952215470680420553748613653454006756598529042644432479045693350624327639482648675985892143721128048989362923383988933342965363108741275055966022124549173105972730749667078384360218125032780277867654284898248110172685514241167684073238929043710605274847875520160618803223751093886930951637939496892832995839154316439147867958430798779916274895846443867638421707242102458154647250588826069545999624398937692770366345484685724252533153124914720568099612286508283992869463486961897053350623479848586961289726030867352626059202032931531637389627078336562529750502333966483652662011865531466002835111123509142474769464283997654551406543675967394889685325880004060609332244590726459688932595653853104665067524663703506549346487962256680667870256904141736411419417612714894307776995663439633343683252450614814963101049658797120527181833026437933104263141120427046755536820407164758646639343962534669988878132975694111443942370450259482844250308274855532083701495284027838464979602898679526259264209905897767674251145991438809115319194391876947059570691851318940763316289558885899348011591461057400150701005609937476089303209848458522903582625956812100739888082302308076013679495775235603109541663276278351375953958402766518829974273836340507166935253038164058999056564173579189569058121821498558746263440661944453556114889515635694966508090330199886676811278436998183957251821011920150620682790576188525686932256403476807774288015093775600704941670203463648470056045006322667212261447210776327953356864004512875330207238362425451364667417724078310844828002373966405002170476970023792588014570839537976052968557220874106948153285412038581066363185987541161059865334095896967623176889373225988211769624227816717162223100097176776491651967109233456481196367020035460002804943358855641022411683699887747488126281110904004785368731031734158033684681674414922771304687367402154212731841589551531560906168991806267209271610281718504991182123629248100907983583969264173746285265274505415958469070282965695882569774312286931090697745380127384872941587311058590808791577277758546845739165549029832801504271849016311513944839684159386199667806661118115102004170640290254718071370057147490532527498865828497456577165866230972113939684980100330226092140913712261718215557815097366429761912362536994488951462984437705615408827012518192006442197919210626088906485605008246638141018254331496944005649313795798857592537129238724679999907710349044360928897768787652034826711951259384114542991148520115033000556146970687517130390805428217150799730251846790498463482914495712038895792008349800641347985795551943960270017719842762236409936246634260119074029676231896034539733268320903730832242096605570736252461907969579336348289503133878704037579333984538602831642520791708744107462897409429652055073401646841903556625462641430971261830905436391826428461077108887146922887851775755036988655234246041152961801636409299384913844916215820625702852485821943355461429996905257712516040864480055160958829439572308909985328224077222697965662247940751751388117051139135970119854773560390380253701782662608720593360326650872230636851171139406983395150779541306556187831447285637580204155279889817978397780117671554397204955441007305218692354599710067939311096169337499224437097288417447652515358626352603510528840139899374596527545067396508307997169869078206926082941901380610529060257112454666957652949435045190016643887565203227846927326407170907940372905056347991349653916309961268563822017146270655844742569181164749914030252041380792447520010669583845836646274457254737872655072184182255854817696312640657036922039899808837869280386847953436828118743117537262815858753211584756474710532177258224343135685821036488357165446304237311714567659482263315245498422744166677372980293803970983156769002862381259284655617985771579906801694338552050000925784617701277615991970457967488389503011623852959599868116284681201303208655008034728305679659149028375709971925877036709142909164854306780812960335921772822013636333053338525355737776677172028494850435762642642814579060353101239101764269676096711557922256530829449282727118868119212146708417468423036212514360304188355160121793228734084155191168240427210441168793434663597870726564769693474077207393475502432415411401013243935071153477523986330802023391794495602126150516325787724428107532710199996414636865983684114453159048056891943756724379578280912327479158482835634987059485070777848150054299888033115417776237087449164736799037916998605189107341804361780542676599238370397476417053679227506729935422770141196739820202758107008575942841595366288965839622782189427184657887410536867655404590660863237641298776844558597969032806718158855287714192749684406764473622042520091606019036257262236876584025845932828193101569237166759316653877820354808606236611295764655546837746248344059113399546936945455594522261687899028622671358805853173021380720809182401641557842770575603467082722884314420883996952036737781761542094308626531287558940194088408520497814932839607000027205717559309136299387914350201634486113630805746333743166442089672309574385017989374987667158477904947259619706268028510329919298743643091320286682566378905685586770209942914488243712157212991663500739527060465414087284719520501353693543377207375061321554012493349838997683050337800673360504567279633868078660516832514260198910529009334384634910655919705071045311047157247627160920673999149200069114470762031503810523724633772633539142908959879348546914108496505650356201561555791491563193067689243419651958795304560142351101551420597143279780820854589389632582442804686862619065554716875942047749342305546195860416909332275274090445422121894280998555634404491843837442133028375183615696251320366114731754018649410290043661151795183495647728648775484432539054295457730497885394968678627603348294367359517544734092572878603656862118907748969118140498451158612039675952884209578608952804548205170337014178734784888724973753042301953569347337034197679477752561534225751359697926529610590982925915213684711242491119708566387523707685734852787394984144545102548522256752916569701255949118608998313898644831730561142468881656539916997127536402004448214002891577050748806184419494324098809995593985130403883421379848755134760784523140528770887890830921320287194348196073868340377713896931255600771205450949910950536798785602605281991178987605881959738219326463706752801148175368013592807962064821828434145112883589942990822618021325264554904032511460901865976039681704280346249662352519352719774957964658337225629332384210650641848154602177734887258065664598634098910756736759561621543810077671920414492054014802682281037162914421970804263915735829276447562325633842220468452694353157414623500828404196030712369941468941381086691114832996739357295335581712162978858313954763029996442584307241006780051795131899507916333689889630720032098865811026766779585467517171363077478394301604440209067277287163357888063135617536904317857695092469512992208566514980476750431037606338229111632205629394518641789381575440246291130122490020308349450633387911397041647703287814608905430439224408242230985449609983782190892725248592580288456074228489968037347569681367875024361007493256903012678632090225575124596171736263632782553098091821349935852375383381125933228555707869917328732782455569964696124517648380920802073451107087007786483453781845088620354224945255171001240492829725054123547333131408205903558724353687742426456826629034885954975114422742564172596002310476004025498950210538326186392654952516730132547877705620377585332614534457981337464078492385013105819260155561072241360954311182865258137379388039786858185052243534942091434703574947604362813390924867158936005676462007554079075438960922589920287603451868194457787444470117613204504992708202304558448486881580985980962581343020963989943808095826173343222116334425360767570267008512557855032759953955210947223352518755751126867877829633893510740424647211516185402361151205023991847544408322282325594920828544317448879621262090729955808176025319167451024463279187177727362787027565178478729693690269377822965554229376511978196569157742614010831501282669454601570290674269679544497402191232568688462882991393205913539113187883125514479639659966922420673953711569281451407827046939826653879920035275156383803121916104626516689359664271896129398750011755039176917759041048050736879662274993404804163120337439834678094724679327841293338150813410187378708039443163352051318064113516742268214790841182133853885388689640622916817056422079941250559949922806348337115155867360556626732644530772071412213953588916630220727687449890634213348702866867401931630878452567059152358471628748303215877111134403670308299801769965703701048559719685498199844187569866739621166371125956693797078407217637733411152767267194672299865930530854882576933734715072088074819010872084399694225932740005600340169178550625099648369180168848139530210326429651706021816152936808672161071620139920091514236671328030936448262344742084657917632680158863135082438750043004830015510372221669106416675994195544397157569561068398555126749406345727204107683861888277396307636730331679424537129175279514996046553543631987284086467695247136759822032043819938569039565574328528783891591045852140788360140147099165453241190968324441837830774666782426831830653448577333197534677282970588706548100910718756337590568572524722231125203877317281581648605811645405129676129904510078330212753928940442656320830056112986073482399970063359190115589614038269176341360684078413358949392946495653213179215757467767991579875085087621676118350585855458614678249696061529225903620001183865447710676193689781824600740184528832795075891243110581438264861916315083736995422858043147497672422722457345285040149632078497115357166364333157761351562137630516609632060171238072128199242939562102274647139591300719773390179916012146494110385816436991847026331093626041638729903110496924848327668347038902603370371096135408323207463307568040606155063621267628685218714408924486345767515618881827580024640845302431013620607300715351489504813034425289271415953570043068033815009972739023484932131881550505422570050438014352953384698857411679618722589252703902034312485659444661352388955664311348611275876238899058328360538058610529069001160230058431513036240843366539720289987253051187685414429445644241380627717052910823750813869823044185477673449643443808046779683383488628023500007188568038978612086674053051889476404714195887760425283857035049219933450640030430027083935788670072056797654180580379529696335563849126807329514209939694520524097093927579485111569451804569235340754532840878632380303911876029315195291560486324316400676812454974130079919433934514269665020732460489693376918006435019469904628313313347802458667100307976390853541022826934757788163920646509658950620304001710958155632379242392953708340247670751567241804292636949855850282995733839412207880454254729216715063009277752865489077666374146960727806090345119030241697029174490818298015175000715495637958502246397830319162510530692949431805435644352403281096269809140882848255653021387680515991170046628713093511035480808489444646723814778010792846061455607628783514273043827886426352927586273807787726074421218319302912180042387788601196825889683109732946346042472422141323680134588249776037767419926205033273597434466653304370670495597991870406842495771946045693044357742256767671982962486790218835513853989335647600023954313211075917906461180942328427692289048422251125981188498047814390655067851855835689709473959762244340678834834641806187833659219541797370090924127836824996565331951366399555312714104519339295944885762675933869127769996151918863407957648651038499895881848400535939827273475285880738838596069022877058202679103246964043757070502651119413092012033792862592237079569759643201507781027253957823421420048756972677524717690507989640407461378590643152757767796535067385745768695414001285606810267601263746199119961187676277195900426280209651719679011142339006197338662118394119075900197037794763471039169813517710854412504821051856958305902246084214964633147024350551609038801772171977660296845080266171932399197747998167083936066668573848899792753861543741142447768979775461962154571450606091353469627335240806931420145970019559771784075370345917180638135266884920547195059564275969924737098398879401342992697772791358173575756482931106161432672705848436514825120856561735910563363869505600534119801530009924587430483022829055977928349001583824908083934330442745320253532032092249197604813167591241824511077496855172274230153302348932737594090272490546427638316100428049381709121932592771826042124801681484164172441210639450233224280838709489267650519595116649147980962458813464750309862837406308753589975309242770283710651840161905749831808086296858237928179745605885831928780981674953581076759957937288370084248851843407358683974117544499701743132867655817609657556764683356605911478540582373021636184605994226227703419264099870521966700134571438261323607130157019429024981909750537065485281395698781608574257402716198824201031286035860693611516565702985400767709246669294534710119995879490413945090612020710962974936109807112145135502409551106322053099955110469345957000204165179584016812242994131160360437759768796099705869803156320643716204158051082074338244618390510868702113359104487157979679041014829916158544772239021267394610803802601926732779737704000202261114123980279482692970144707929055452185206057573195670061893111733310305543257616705512486515551562916911417356174904150148935820865890522138936141298291076978027242879848679115215849934804480304789822203182703009025583734069475842723070509882304617426722687036909625898318160873245976190922395449787478650537994721863427041894672748508966575246692207477457250239357018956743568194682406619277578559883317531982556627791336327098634684273333013108180593232370761122798667100173879868285845935929019045358527894574611036084763231084687600852241515088364270442182534376038556458012857196182960763939749373098367299290677146863749273657513562040945750458560199909646414740102390180048287463441740529147757868741404401103914822940022892904197038941537471536784043821927953160093049563155879235088915141008583773873816402819682040148302605198772775325566129372929705138362097293919532236037806046614020485593407318418536993889263230217899538831341123256078164950901950173828072250985705291171896757003666556298222069600955300405780136235097056372280464721185861901936787312969886422736669940469043609037690359366160028085430046005140069856150830610997461402758318831053247583551419322934570276258126651665150787387039309386810436656737660931490357927032805595960728874725718564465390697549935504280526342869101137780297127074946496605351277699633059782269813996524048881678337161695185129223546930199459712824031240890221952311270270878677985846893254431105034989438777413447427153704637520177674357573547742009287933511056625220207515217063787888230851228152843784184540282919695960589014688599613220054048058318972553928631225144907888929805018514413657694945268313030446887445884115990544805811340938722418975194112971500868479750984711973826672433203570874600782855505366448182185642313800384763099709978708936290063499310374062196770349417011991206742288474461017348149861207008320058069248574635641920555443844479601652763582398417103898201961031434359144021744057307784245180550045107206566600574076336675712012128068813052040558634468653291996052467398556436322613536104112236317718143027338267433597547253486723041591537757842813717562218536450557128987689809133440754618613909707309841070678979244812834220483423290627458284337377521574874687088142810312042207073778387242752326041052223097776423586532724163187773524532597801758661270801675554044866940707225284853852431166229778124825694428523820115674289637480800880581205104644338456236976338262639758416580804053838561054661695144522546790019675815411453976340812797164388924241680887073360153604635117607122497783822963659606112965518315905468239100093995487097891878947237321811931765195324942293426561944499373164651169717959297538371446281839053871010017026612067403970045181593912641840876184786731967641832260636302443953204050104147149693395141069556411842334419091597765310377085956427904400763863572111469109643902606126787669198069028032506550884849188866577148459852230413426061238676936277206609756250275494674695319178556541750407397696416878435973808863193343060929897621623442651545601312514818471995745981195057145702936682382575467411547618918038973582540109909026060612154792316638234372931939153146558706527243298125078997066340287825322539547378154898176887589408294044589720510633632141095835118341103151354803608278996146471606503168491664414220280328996996718975476221704921261198422197608002875321711561819488755613223836560151726713540872689123907752683392519681623633634000452333944233914480594917036394394451731766449860884324556859510301487488711415086499768225631888345723438955884589537947188347024334113554903057605712513468433097208542827569911811905042823936894413461221555376519895276133273207923483560701118775560431190336282617155538641583701806146176752555489685301721827142256428512764096870581384210948368723136682127539601031385110596820697966973818549470632047617368375411845180400193784392512674709688285863899248799787260995114061461015520810670798156617635921869902531976534382755622782842444188903548690306926963479309718994259516305730197058236426317211747601202933666108676352487105467602485048810171349267923147520230864094302612484706802443449011324805076185044443057906780926668205469155140883552640066963429389127150510933810441370832563551476776275919440429367903076381318368871570045195719641886500317772638664355387533958291096843531193972838365845295498162866620134910475598347746619551284178932054063330410358919528996037663756002697340199065727996789593397608385581602127876575030568977827936606221870535053523511323815414254403757681109377982774091793461493259227203795511845741783476410790722931057966635808472035188943239321509985727869479602391392094309292410616522883231879893146019941235690853510432642235161435582846162401168254722244525705255873750929918071085985974264417199600883638458645588211768648746305795267505204603967493532515543604003591516528257849846317719211643288845414783968652155834656872901353197350911886810460461520219782020567478276619852215228997200056770855095304291167481100296070692953386195912608261401883443867068302092155416706084834184000828539247947760697452272755907282319125746968787850447486044298325979842715655323453528770950546566021044593969331252840196645733514006229188161325923802553090110752965229143245832927188451839271083770941930214405518539808786211232795181658482103380414964543301721419822482499035336856018923777132392030578427580849613781218869045750423855459457126143342820718691765840685965825250441372013498035577976511550701946100116284773771295649029740450027287660643549896370226734723624436633309477291439389732145592414026907502128151618585104632075676579784429331625991529575901659049558309603465236598736475527882123247105962210915669029614764091747240683532715058718681468636503463563796788333426930495086194631663351732273008721725647487123771046944146471428943463379841389785119301267779788657673475028310289226494112750794874029352457963324952432786754291753063793831958070264936748902746472862182060221690409393309411497084697569580361995001534908836307466516468382738949985443542595904735085208847947706988702567358106116155120881326378464074168328092313909901476187835413759372790629173076042347721297704490447852618492023152059363667704416912097015965228626798684712337398479076496334725416930809550160953515629002067201858578436283297725875996575036389968030465790442565298843836332665979916347178769412696729729448064555363683672544409444391008715137236753184159900236470213060070451797808846036225704140168408043928234735277793102716831166331116089674057312411389074807392653024874070111241837803791388273272433577700950855085520033644313126495608484316796123822373604702080117742661780825616454390671090516370746726546978701456465819191987384533956813223567302144728875590542072371659865086389838783276588118037057169845278851153192658464998131794967249744185984485062854045528403651033136236042406724866259288642122509213892094278376579229498366674407805598525341073936067235685057408171814876010185569510364829390060763656645606241078352987027985167232142772291564949719226407659559456102112933834577740704580316645448675114597885278710701883896376871444053018776584158026727486362956479072995453038524594169596883096313730725596208796472846213299269930173757296927891437049701053646183452158273004653845433028315652520014624679363415347782327188630275997268171075588129080513676506133197798447594445970844296309344789071761423398175061973283394566150619954882844866573724107798927978564334982125362888470187635396337965232426742941729995624728334414998650658763648421624895923215241904597011081033076728071241450977098547193379781694894171720923002428482242196011722674887514118008716649333398532866754890515292645142878224769565976148102900213171060779699082226012307605062579241956028459303798636287159347573870104625179705060642196940623254967340417154050794913384819260008996031782466995541823383922820312953411183284818801018992734169369940733702320802903467995480931951570621508947414031847914569650394038613378349146101909638792235377958507679036154087890943456924781937803985647040714098247959965563246634060005536277609744365912866159842887588703178739225306776728845442167509485342307865101558476128140630437684740624582937319238534877706441971489305286054228786228890229980024199782791847177358881913193537346813386502292598723065986666889076209439986444896199069221353052704134657200034493484967086709848715063748728192284019834990045782367987748600252871000398968342604072893195066324866526100297334054154210262719967152970609100709528111423302066360984497660747441866256671520392497258358392769329460749633822019407356887155030703400780779280914527854011945540619169951314721906944994866484591443406846565191077487810960288416644633832317856308137738276510777389536039703187816227160562308525213444164304789606135204869779202567627435722036258321671151546777205101615425577757878684484352357962855655950089755372932876736855361544026739419658703987198796785282280496468242697537552587916129323023520156076274142261398252690196141655888002416880858051534197609264598752889303810046297582862358151802637665245051823910832607163821969889381958881296783303085932171314839945504124523484238252532432365067070496050418118277193855698703219490121673051919238906813245631760872404989069204772018811907840315535745269684396203315680023790714006428362073504054980345434133704813756945927405386445500345751546637743512660473961540643466735435701262006140269332904731295945089298214626384018856507760320190195986861001808440113329908475868970391344931236399199277877082123162207424024080306874743270627457676800158641534965729505468933857288695324428796100339235500443906446212580581590742495096825318795657835702233953665761558661552466474015162547765278402726781518427490962619982778284098279607248333749281724986222735113469258006316566396952445033083482447188759582097942985337716467701663959258079213634690516831439081768704335403261532553455724173241813884107153375672514554535142255667585867700875155307685284711532757293426360702868001570603250343766818301098116338291316890195700079145555718410929531847729539046455431061517713078251646790412834944990158785937868546122887562054899933210526555835627390503244489611126619436877454740137229017827862409875241282333945184097657156144840041032803939641633734602010688712454571408181686873857863700966963660494450358280707009574208459319983467428716511730735712600429414926486592721212098119471830114916571419043105453331945861623706751368132564682110275099917014587861351610451451305485791010691481231798780837232096597302730552667959803510820938735773519330176025074297912069568612943030587447865466394962381714689338309139737283233482801646703348054448905454603372525086528686245872182918733321570190190434335304516133483043106656559502335723640697813818162175537372156179708888567483111889268725341037178217087054398524586292690104115379686919035409056918298526153341639779051857588737963830814197575292384340097132457448141624802388063018728957543106652533211850819227439332486317653405135846195476377745846007028109613213467961203885767565431854939918751647036028200875306757460934564990735079976559979686204092056126524268262815013964016996125161927184535805100789060279569581285010759762388081426904364093081821331948039475547253697528472878524179380396775603044206825308266517423649347073200302699902497190334551565984882663588769075699890649664149152049199988347703609270221874124088974274789238871898695754075852005094812752890453217964828396117909498263697907298671824449455700686634367225917829041741291055411134466788623799722901296479804452731192381336179440267108320462517979237271283924002848920800474945738980655263625458201708777668358025271717488757664725531160922142195053574154219593206251587812567752126482739641368206462864421101786901567516792260321793139929733240560092564660018874595520103792744466949994828514949361112174309877725496331792276701145823521077439557960429623099562323727392619128521977498908930895060319388757414153440537928289818878199393490696384107312265500754448049617093094810456177562790644855375723215928378273735852511167632403511403717060790414504831539584680134379557847299876201873545129185660297974823381912004411585386370079853974352412399540078411668607260013178120206892392921586114524376889054608639763746205930050619770141347746968171780222780498889420857212007708843147830395319398086711996042313368105802558304210702745741511741862940509977465868968393758769084418550111195761956546912284361350814389273286897193288612094523861610541053945027009866021977325670182483575724530154926773982063890668252496940594138333059077601651216066244253879662882012343714042503940904426722081118609286410818142120571055735525743029175841187365914511424744761237549857380635440125461525022201418910741797917293640141379863325695662629193793873183182913425470138462273880656101514308832720973045174493545290073228716534113225318508938625312158528427615545254523815252355771747944099220564458214636726916630084858109519102021441800344436446363748898196063104885658899663177088092302566987968136829021012759685274158447276689545013736391907986094890804151304292346797098934731088181185678086388444152037255523208763676534207559033709353574256784849485721170257549655695780545345122895331531410720839029757906788019591578477910739521996795131558175574438873066573153633214405057780755435130038563920881674042261312778173897021154546207566431905162938853469832571180955735080930881148929574955514762038873452445583182216905851116760987436907349539095013054626112289919332041780224106970967188877746214892173177259506794998847331470434284719060644678742559698850197361737359372351111933801226706515393140438174056324489948638450894041108044529136313639853020201058585611903046276263534171410084349965657128479787868000791666066535388764952775346494623461964297414686747480307261372247314876996911071461800555671297519052015244862876849906335287478890187588008407817990840431361834595872647018471488472728751366654189593764777894156649131786510114290575016676004623167322522271023154161768039701979068339229942239383844625671752203324664478505977469349873385332415525690941825701565615150043601177535347982917273615122387826645611593132665844085530611649207730700295468268161015426465962974984632893480751869386462756391254543740213305165458090111111700634542504222970123036809150045788486966623257726136950280815091695296651207627643757824537341931885557554256031490623130809763988086929218653442834616529775988266855339870354858485630699380548353906715341104948847691798452846880333275346634944117933297410964951914050731345847656934867937738355484840724041656696631223711840752739913099361884001242233836876560763079421217023472013919447569295720358057272670390968835243170569511696753171110715145146475163407367326814836197112700744288262492461506601659978067469631349769831889182167001112566427571180620890541619086527111959652002848489870712645577292482963977030676449974289439516022030856518232726163780376542876852787991533624522664253996061398386995898398620539511647726509183036438889157381055828226291662652039426242866056460062976271345020198844109632564863626410769396184335785458821414457196865453909216931340804338745511624638263779845103503196219138480630254415776252133952964361428545061043935895163257161264753404981835748419164409225312630889513974866278640813035238832340951312269638735368918239332164780499881516614936823653823198500592541170282092249789727681231054253065645727101308531547192830662327890927674852198503625243838488427197997887372321937944856305165835626650672196144639192288356450187400593549911396071077746013035087784073821697281538573605151777617290576428090431962806893082511999826305087420798180039418884727242867212329226042450330599404293577804184580121890523347491408406842002500327783924342381428274978129277427014919753897821133037197066330488829888844727084435633371741100750489663963809538780509188179357026762972558140972952233974295176030773144009321143349241404024357760446505160465715974784034419705123143598992509314463137762233267460835728885488437605700422229875118174345276628910622861089338661601835783897831174105803602096268210992897065245013269261075739257630349703225423049943616577427338769286593471574157643614563434833001374358666151389933149009436971790783377731372871704883832059731609078877848137480251540428534707781628920321263650199940311489802805699180876401401168438769889630849853904197528249490858940724950782918057331386730791832808813372813557089471254633323759130284259059366640910581351223603971441635414572745974587374201726573067983556998428043180903967183242842188928337945486327208285470044388617728926935485082114746367595418039351195968432517892776211761930048101071356087748771694065451150757796878755844300617822824981311397730836800698505621652724047813408610090379117057475232372501249718865882064754982300922183255893129955455183822397979830750515575728666054765457869837524255423444365393100072621492028670193801491081702121478184014195632028797712048468935975292411562923239802494808246324553558062854000579502492509664131658803668248201091698954822717961057154617420175030323756532826467717092114031260384999750112882202767410466712820157563582048371891433477972118589971021110344687621710961166213792295760324062833565379550955913864274534184465159205109027320186515882951115122927223960385119626574403194353429669774615754654055384864454948712841443643710647804243015767891335871809832463255024221328523515489404798186915192598228075366031102662194088869579914382798681660767978316747278896133985120154836347808586243627855364832294520175441824174813253853084009670265266477899633861998362048007356530193685721456626275943084760894091510069659205173922672430092175131770231285025536893439410220076990587526035425242640075908766645701844211722792156939241093077699516346868699756540727457409930250168218737543214653152666235527763318724964104813222091519810571191344721955169530636512136396778133690658156811441058721225274052584920925774467617565156340264898556667164894463793493356073010922593029496696575660453343781686149772952184370925093484630939967455386181386473052554197270927053694383186018300853517135613970884909711034465871309010131798403195116963830641453099226755021792418563769485923225630397259325419944703021421135393078763853589498876406592409940019820613777664571312439524317285227099091276146713316535056375251358968954647483444228913684282830390089797637589024668302128106372313132086826410196689031893776345950414617603146480081920151475297266837217273569022140937716545996152206892599665346601018066073904081403885460282793234873744333930206775190626615155553107391390259996714299012083352015881367767380204715956906178056117742650768894405918191010511449128586607270361266556701740804460981424228736107431949640548705805011212513719578085316898897847337459820008377046358993139648172935637513141572522627148634013678237037642124875490471541054514803688813740683977567286917091594031023657185579991074829184825234614164706143031598599031228223608220144378963201319023358671948456290132493468759589843582336788712088220592825317345649559327985256428562577130760065688160256951630228641984744268333593473891405610220636046105665017665260779631478782626232859427681772806484738244032653165497951772813995216940032555302306251042848598809180529348437413131892819270993553971458129347392359789943347643431494721047942342243105630526824564296331046201585265532352622591631227949026668800549273325419298962388509760148673533092857439915520337553596090641605241244315356863060531504747773059253199987797564354873758970250182653547792945990094386364574092507081601993434317261909226144249443282835060068723324527782188130913870948657985182187116702021160561642334832348143411870906268122774699022878036623243569618892900203017421377203272960904623897945577087152808212535045502847571299859783348870854531617658521036317829336767201047083158521591046294525736867494140938857180386624165826743915860907110867719391944678450789663197092131798962187918175912422914425209956092063441830816974449137932548095756024088641419865765017433104466856740980011151983857558768789076905027041920496389933927499060421045336319242791333079189384487902695757476539650242822066283602060137874473490967051228445101457764232521495791228827593024314812396707175463961603141727754416685888684090134835504336609591989156414209839879912295116073338639859897209467614723982970539296361125190319778257651511286563818148146065978631301758980563867927839420458128868092803945825756556331422474989224101775558124832824444291988768230822997150715365941544560275428639470598904767697745515197607302481697994996606835065935598027236014645249362076829250571422885367554067029339533178661048182038145044804712776840982330543735244205417454310162843080255176308007755685513647874196510889813340091085114651302429156874820271452017966504299222120627084611394397337262303849574387698885264222902519471826661229810261280605827849776185952011298144385032225536694238138426566497204514599098726190747074239578705442950529496469921005468360138001252592280875847885197399697584898696332329996971953469203327604916633928066041551002707577829771794647321661250880170981440469840472367206432573870824643519113933444533082285230705466866874040654069330120903788706561890870620671689157613552048589250671534610249319258800329505954281684378538462293768741572281766621511691975408157677915564458732859280991677152184128337229742491270356549992949718631154846715925834681312085495140602280478061184623364807301928815446711968799018045055657629134173069317140198074677114089365228858037571741114833379716944286993844502808769824394359248367822063338341209712902692558124698120744817400835833553391199841353583558459245166494186757827006354850247811790966039302627187428783091822679976273190389261491625506427524002803751856049175702697236151768202856835570282205017999829517445389102893488853498793969423444960844314053398236633935727617541714185281903672236722997368241390515132952711576070650839058728082933750722405899154659768855161614828821099937602963642445359710596762303386544086181206082667031454396568505891434533653483347466965680614508930087494390815876081683261738843305324054139911447632402698808353428562001863849887739681662690443191469369702432870744730153040748958456917318485697230406661803564698729299501722278314354071507664890072690026387889264081418159498018480947307893708827893368443909124422456781211383079033264949944577886104100732572036684924004282760606084627865697286711178464486239021995305664339328183165369568208997348562859162285965181317818857013698906878222535044764038346386958430857851880004357730416324594170186036459012007664524375477158580984574132683935187529733944449790400931028022303646621846868620149050722932602656653044191136864653506156548326314142903777752309431575448690539989273278187253714413044454221771082751083586157733180434602141890514937929309226526956381270582608259134837776527263837160178024245543070105186756027442132923369329241881217272564136720545541883037024631088956462671168974189606680821844720521640268747549006619722135400127444875769883843329223255333061139408831778507054212204429156687424955495878147823852357919870641848340011071719067866017253271496003077146299348025127301705524446528477187680336543830747150401401489639603731897708032990085112839670885761121077109409285502100601228553106802077490365458749977346365272440705369529835659327332755606880877204682296718261222444003784382937122343450993345105179706372931005680020821578333727233454243118806381318963035698014739562791575574287132993548384527923397973796711088957863212213537428161523333585571495084110692918463247861342213555897571490689182665324609084429691900745141886922173381401812298992292719130456642322750064217021952526299268326731363072226079699893021518812275624990210621386684110753074694700955802075462896005333035670244535992529744164641908789392443442177623153827936316731499301221530044469795184098868930021268418549473360656828871448846637744958728475268178165574245832090099483426169349111782381612787903990122394127557676190250611339564924331331569172110187450132190998255587517752011139512000139880221333338617385721058449151358079064798185690888546272829089602677930780426990257263885865505029794565938489005082741566141596538186505815107370180165767346397276928209472437373881018894477985360245544604690258745213215290424204833223272628230269751717475498802341645632700453524206246209233626836117587598894081261861834242010119307340603876763764731104124459837935295791978018387247298504625492893775457337778864169087779095068187860379982378652448660467409900351713844987585087048964340181155662147657294568419222664437606008617544246669546313212733666571265283868330564584168181771039690269913079452902114775171303658416689699144363603023742796352289411646843369825101890897331999608373667075299532520843327635331522585809637711693392721793365886834281787526193461211368277893692441274327679923543964267385601034392406476181203719248481877028165659542954201461141592222802406014320308177877014555299739334409832944065106789132061931463776955840129350518760081834529354099580870841601249164324134885406910357629743568246970171401702681629602012161073410816467913372691635750974640950373049400942159635252996995041268486543347615630527946302721034141097005093498140996403218212280275029540140636914353560688856218391229161242647350322000172859502208765914029178595798605013342492005362973782300588115435348198470092861841301306531316642344250308704989019896826228095807340955758163704483460902855332790735775138043456937550136371830203288746445181992769669199141566522687674231953927847043942993264809600909800534337842238738987173766989647335301940190747665516319419514814382831812374745308654083348288615731556405045847566615393241078284132838672616794567759258590102458377828233060395887401298622470540247794671634471108168028708912872683569751572958514610077888670780208985411759634741386342871436490003149000663794313518443945439558194801346406690896350568676027770869276654536392793246996325584445974527299089542441614102356531787633399336960591321586239197587414680645122080359045793488520096401884400169044404012059263627640639601239619594818675900187795170491682655582633360471437758657875326666000242977955234223024779152134958685063001285695540039775355175924954274779487640478099872786992168687045298020878599627613598827241154570190204487395618203010095639674762467464617460665592027544835443316064587437261849325508801935889669129119134961432886314471090959735771050644769454413271628159475407781520950603420162556729142036426063055964110927060759429047125451349064264849952345799059923940278342352702192655260846002049773812877120977437525410668379320580077550477585803125835114856723508731997575402541177157383656836833922011375672854754021879781447902838493694677889170376990452306479634190306110991199894281026674402281281611530533649513855025515078125396116878388473843085178219863804234204657085959170960502187222433603331226137169019077584317456072660100177415320305614841442355963429565560028832557036714126828586478689416393674236910311245187120845830747215304002389066586762201610768054824396635314605335329870559313038902068963299998432384870975182494665027263817022092449741270497507950736853620495672738080372145796361844824436429501106146688936706920512624733915625675688788352570120695895191356328953073711163391499239360604119657544994125949057217172649331582604318856609803912373796863042535483089575117195427876870767418690166594224004061636204498233771123755920141210816183991027948320953503185176747200016425256041947518937810966969786568512539042950942151958290336025077445535255225394785998858697238152761996109226746461465765082433021245308465055762533135821997180445933747341058502765092018014694406683831915605875796319716564081251993158514810774021372398588366146122662536463416391616762536498612644450065613139642419875576859685455641378779460554962343898117302339765284220624088691112404159623858477330084354674166981349703743322775794264713388561720590550962959151262995437026846970565983606360414203887230533352012416299303500384715659230233694697080482994228135888410711098351174978899705304809527301389715268746468232814115804291287275354350298184679345804510559525717153213033613614684733932539672135108273598238561838185298801518068351301243424035444936322556221932543619195570470181309539230455833490103563548261339922319790078776499725108460726196427072304381591661972207188478197837837992194854345631835435847194978324533562758385111569715758916219985669417552817432273676762998752364644626969605586223570810961276033120439492267562135621288507085074388028970010671677734193982714293117420270550190679710472965958466497276693245860718690120318900236532218022831880349411150494249501680819777539523624192534985445280883598289959435659575186971272619432846439311550988807589715098589611788956725959239206665447788940273073353838776246488335488524215870552073551551745886945620455153939898175799891667431602197586282843597940002772605562053877304139132973105647139198286960843955197898286405184925118140000838229001386567056667702844240943186971677424007400369361992117375883425760794270970550375409414812374611922820354048726929156032969510258066121041028749790497532612023962432529236238925154227544264883055461961713735465203433438092503406703664651931032396111750759592791129453255217329367976671571983614388382573632595437061283494425556346664393082132601530295885387050244440012686605772682705200627552359701343788420643504692549807459489287305353960268948483437705298981780782139719798892893097030217351724480573426462164977158466306021258723396463284495015360029902708593944544263007066011912743538004319663038675924546614757315052769663682349387240407318461435148456242720425254803303944707356562332979538333388553826281872923277650723186725555722741348198833764976849780723631485410736058054631725754402201161866447466899543432010416305811287964243240818940846463948605933957294012186294800859428585177411827606713132184188589718483574410293885603980043116405789205215528376230975526597765723245790954753659562267793902673350061841937481066679263125375409771502911590445699813894270036341664331053470484176083490997563463219068102981553230689444466824752442996691713998438870332854735389335959995190314184487521056303180288501126025213444762774111740391678644343924841487174467403177143568883289900841141380459003636712789325395058206187062128955849740858522785314422352232906229577092822237420133274837016294380126049898967812095696488089793714151271117670357897619363442420820379700749692517491063596578149605941661826187390480886985567633006135608583362197837252420237697448783306028509403171921360600717907281785963491324907555465651967881028450751366314145534486673847382047571058808427371256355903532448591504796306744131346956524720595438123164670582522478341454725894506367674488347944795408251073682771664342220441928640443392963237896076300539266088100746296040197904672117151196129615085278654123577525624222655014331145510466261276728731756577668715795942302904618921179337684293959225208584138683161780673393534038706661997885758740508097827903289713022491496935744136712749748605179380978808662797951074092610641995661649273684384847491344562466003526482422583517783090018861855687211308740541647012598280086989388606439033142247930501657266565712967379970575324537729704221783258947250633001445741724434098304175035692103410618844572150760410303389441988428784232114378881030229331291219948833927989543105341522698353824574649763193872420979751536171948689734087620624649593071822006085351432747337313035998301174725440557656963029562432976094755554821249229059760281397496788819642653576799145367703781848768147129240796082721150190165324651822543232849430417768709629309577160085012637937309167914237691379252537184298529159658146609260815273091709851983000539639310103015888541978497723175596402501223622969549514308643621436729964871989566913304044239217822993754689884103717560018543904424280710661038313972662412798348414374707230513971942248912119232000832834967610658981527367727527618350666258305364648338457399907828979396761208655611790174489183538913189350108647776619983676611391759608007819612274706072881777932889140354024461392527947485694310736884383791624677031200453820833444730502479380535074373078169265108150906112215456067594571916622294465410375478690367278473367880717223527646301324533473333838608854238850978701946948462274217625639274742573430129833472998918670946961762618495464806399735529442602384283404781967230548527978219262410279829330266188705783773949114852516798442431793338087442477092565877269154273166028363316865256430902313623677218051623266919924003547339162746660813382600541896473018632045592648844403950835473866941478451042366642524669844873575648275360612222937410481826883772179008970800696404508693983121348188973527188164450886252775412479914840455489545033108835213423361782953049893374854283668864574408959030314247727718480303533243241010599992913975187878830632158431014336922093425268025865993363362291141189110019105644539983999026117765836089291496684499555000570871781066183786473079816721513322633031959037226967309992317826058550719482927066424250065085553088814971064198475763450291373582328224421245388820431098910223967378971069620952774399583710093061305920170086524477723546823864887029378402801005454687706740873003157614913273302782047756939350638962146197264248577652400345942821955473763122131160417269945228791420663753161367599795644098477434256546817435342558522001472204825013898540786524656277861049023422325769297505872571369518731536482722842851078110028675446522710576246125341818088330872806472896616416647165806823358556563461862552921408557614940840988237640951194075095828850264920477619444024943508178417592750528068194520751191459520743596649345913702037119591272900094924248596599788120645644205162840992977710723094077403487161930964755901193152949116922067353154691056873384522106550724039030347262064666515936057057662388776760330728861622854802944850407501615576937243554914290000534187086547252685698567073261394403004649156281468170673214608181826995900114693154415490496698169937469342542738837221409695299920558132666188085116832863518626654146645756087960402972611666247840553903172441139508122204476293049172224741986263913138978507743489005498448330356464886965522152490979354524214023775346928034501456314924616049115899411937085753870522787508941996188868432843316082832379347729239214026456951545398839464943298238714083424261578361730747936849146845110714060525739330362579173056021589050615925112940845315678990072898791269045218823272834656374398930634730880447706718561050425678211489414728395993989304275668918504617393517589973315462155086680729477939457873095134920969611445540151382667301892527780726235844011548169404809591374443700693580947309756641487901912702719482174743440447514379714698374487765281287135786448553418387866096175123981632727487468388347446204844693645939097501887757993773331974423799607448700536606947250102250753307497106392251421190643204530307696518065036066360854743457413078911975566706211824683524149734892052575415445158050756380293959003650186996868031632711558648390924999398743863941125240468763043714542852074147677999484807501660032196023691880630796564529077929277344511588065057742192059550508096664776146040463329685524469220161523984352520917812289053397867013622026456048087505988986134363300349995189030775031076271179019515893620952739445974063211728363758410161394510242128573717785942093236373799043159964412731702494605335764623815488112453452120666149188405343602652394671300786082640706504486828611960923180302970806775895072642874627589476687667288430477166006844113369335122172452761223811647102352946178418520380418341262885658582108564258540810813027942339172850297769899489980490042503309085616519734826693520167316763261765357303572875411740444942273839293631564418661006177940923380946296769821595962201621505099325479825431995559731932001427498033716054885047923073872392501833547946328841263555464981635512469083383808970728790047116271990652401211359664143300921962137336333066514971734234109004148131743063125071034173867385995312191235322238505489983326146137086734819118474845235855298216244372926409142519902907444512533599658018360701856326096472701148108131769413625375313884479659872809153814029800147241484322019813600240570396256250693644818609937692647218226279066256509798387413756431857502456404440813853821446828966745771573157116673036420055708686978426869396876213900662254531670626384293332537820038344020215567219592243981304548403484733218363992369174912437402758813359126316993323828587963031226686319737744954094157025505876811070021602009153343595650014282771733551376992193452652403767417936211719109875382273362090571301713461778014767294222033239255823163893465147917988556189189292672610221768230804099152979808912433244027231803466425735533839427283041069316294440097153318323573416891089945923298918744006369329892795181154088677082729984884925634189650771082162230725659931373463223241544248007956998374608370288034135372832927255497222874230225472327778346056445549461212316042768955188651207215539825783149602480325597707392307422792081260149484208955223579209974074063050698681482609068648343499380273278049611351375707576537695049905657126172513837475037645909988960739698851549157980786125074154249233133009992069524355732983777217654279987788609051533405432402006421111920572790638135005857386136810528877440367673105186336809626539986359647766630952987872633176764353705874081494817123636228195663714948248193170854719031089818956147120574329018084136467829236945068384686433142843185997370010828853031301837719153904842773683798196453078821942137918911666368271949704567236489222603454152534266269935958194063339700729240439241020407019728679159585750604510696245508852730830701314683542877210437965434755341120823810276933807024906952317057361842110103149114223429029044169689075266792883081190707311623272330444989871399889687068241389087576098538224957994963421305147971391662411121023411456439478021422031644422844974522727727867203570963671718179052582806906678702170895549942452553686702904263094633156873180628731133531402853335795278941452758394891062626966885540370398966545734115819640809352181849434998078098125496482106775540216996716847596281018951548691430956463320532437128748392364692385931249140558261346483998510846736770149057570737182147004772195960177563248687471277229083127759709707820431093438340174627351158270637805971684184539227395767356621232903064131622928830021891100820928438125107671007867275033311401379984891537071028990334664065768412019024072831781903063115789424030862010893170282340239222560633271724124336554474459870959687858274331146508967909437375884278649943399911381455153939905977779404601680621129768795132673979721373879478631588726306034203004580083261267848813185344633400921214745786817957627343496413108668495944000060329108053380422974861029887148127329862434167139516500706522180278062089208196382886423608838770410120903461203429425197011325759965557615592524100330802874643312198868159650214478090612780940456452525323294895928587368788911404888447430203988511071460892227090541438739612973920301773278483059820152700643913392337350210818103088191916060972517910355695656725798088354028479518805437253485303440887770281664059468429989462339791212659923355887561480309506106340966695895354513069403770205500030827150220679097219730484029660379108331652866706511639302453027290300487896902625751019033520803882483457808508354908681801043097497370077932183018422957727217481615681657672103554080686576829955956920971227869699639065208021286937355909463602339897351188143721221252905430884774698346857430482221701067067907518705810107047891535981377436158045683480575659535579469444276259943753620013408035553867438367338793339185746635213551396249195834516063835152680074030708094734022047699617737546232612781826373881057958971499393756954208919817033662329083850430611957688083436296626543473239760925417823575621774436398479450354611605475183238068803491303937995777646007842393270174474338780452489687785848898891720466622031950038131946869798150739955076654389839686165517024190340468810905162125819507425461716790758510128519641030627204435126527955829218309301786473534568320305188371094996549326755890525811072638965665061718040394548213645143398720513248052251066440499069019047912897775581811605768415411002475499954282300748705073211349629131213713450961894410369006093810532760680566327797201259870258910652574285049936812201478512526772013697447784370046518904805120277061781620260005890226085846362327328604132172836503731193809617871459014922544025149705285585103729887066209737496051549510739473152318846013413277314116000418058315635535053194111475439473954873270781573619247313045508061695304775189181133021084502343663593187736183253286793910629839031292526660803706956080494225437782954411830465616379128555787081799952477026386734921930581560014765717389440172513581003473276720640365442393377466470143092588842548359928419678339934152358172536346310066381186206970905698252270475596382061759364119898912185206553415940507131607229994666869521359001005418728089830761236734964484959412330725776373914392910460416844052248387782338341447853655813312624206528629625749408054208641260351528777003612104483956432366892116977571933878266782261575244899147964574501264574364514973175580132751142705701547500180432750661910746636272301331158875176511955756298621093873252196235065689670764159145453753791509839703267007522945309601620577812169084189452128980825430627425254717032141262514488669734227518932085617011205524036554348367493737895031053847481758904513401425877395106397308350034200253586157067249971979953171737462584900963477811386985647948264113708563698120447428641529560324342169726123703142423665943512968430041622137554964729596781134110612903093396830361001844459037062761361592563347088545312735224353488037531839812374055030555266245503802090026797731520785822494993750125365867078291161480422929262379395603694940198117565549441573348075608480212151472552541043450357738906034135150475344762364215825227040845300792518625811297721303102554465609896499601891279778612620347370708249805280417076851467021477965056801072465344955231261699650196110810586809321722746798456135750967324970728908611802286581946996287673672322151008553939458494658932282979675218008645512312251857685692493883273340084311856382996297496136010002764309517226962020652437475185821441542098396594835093017117414501258755847875790053977871873939708770986605613621604543559398805516191352299495260659456084918977842096937292423328649704926438162210479850399411526225978189721727091230172761320513685885977687980427994533799804716772059167685022236107515816857900065671703515553448993207473001660162795519767972251916120587548793267233910197392492168811892185284459335689483689403004395265873740743974615576131164839691001198532814705390929363866492377593973604120232335129408376555020522165683220689104476139433847517482524206685673285830665259398944586184218046499232177014178414316728550861191942586136603783726613070929747108772900008755646370169368492539449062103914462741917632789155204887277498913331590375834497018962620105930727159862355206826784493755361755891880199833997754087190509431274728986790599516631214173189728011546809826389172234538978506568383338525916006145402495446064250427679109858222806718987292801880797505821152359653496135768227857445472940495474251608318044445454011999371508323863672911375020365156987805847209098643172148297598785817107320083904894205786086976642394370229290738291093460333900451983427383170298471462483740709922695499592187753323480284092686940903811504072975236448036176940293064329055240081452448453129040248203795229343060028504539888615592589686507318615891846612730729760903903652774668340154691517595426586374903221894134598839522891979390255681124302273427637926544319853869441737859396207421881242356467063602615327042796713096265211575406259665577957061831066100382618062887243535357248068404529501669071147414752883724017341439997820870186370573637380033548963236786129186352369383919294083246907501280886135378711382972260205034501940188448996537264528814143494697092813388279253279361731995470317374963562534175844924929625440199967813540954383160660456185504473660545211709313991999007211996771423159482044104596455424395557964449472874149176434577042901549061309086535800608886759662156844966989891914840653153357358741553996564689224668765747160259613365696086944528143947251066448150180423152171612359755316516541316558696258857226272758603645100347980146259539275078328107814351843989705107146490779962192432870344176242743222476615052008945046473721673571524363562419716206957649104661724987235209516521666382572159658318986340221483104111591413558968679163312984906244631927855735239092031654431570604746092437107349390878651738646246515533332126806883284120238821284596865629171537637269925521660078978009216787716584513165907623039518881527330889612374944395344636129850875809870560120264076194828138865960670417768842968381715698935942888361349790299962870427403066462922610952582048584964952243335013906625867734175229051568575582008253811048337540465836418041153866193085661881696513629539050608767083412262455765978722899952810878463986169135576555068829858984037419554268055649338982673994054098926294705743964366604391119541032045863828212069933043929655362454338271483224449136367617341740307457536018351968312911990493874046550049161656951888328742599200444964225207133653439875092484965110075285806460089033227658223158175377140539388763689490634467089336873623516172981853033878020319298368818251889109831817667180268452213661128859774991673362221355144161770226215870886709389552802584468541431876165988050048316245700479257631598433239538064173407641766780836478002578933039817636811915361293347678911653860162671118870353807047716261123762182255040385048883436556284318119061624716424317322155613076035150339724516071695562008467617926295363059097306950742971620115875651116469809834515322004836711516862216912972566507753155404695216406903691242428498905673765756263151380422583550291006390020444051333946569360425693039783336220403066585580466300442384358484547605536284516840933374063614650780616520971411534171234424485386729721071267339953210664515656836164512846275206771248023105347656711372414296544699142893975898993589693480969784510687804705196618262032486230188843460065625552378647883540398657608443381720077917938107728774009269009035839065676060816893706838723221739413161218042042693442260465781985833646131597870693735616365939011563505419191081429559573197315577783641473891994442729015194381870973586085761469019213585707068769690148852569785995290199021434352390826952467308133998183510134388018866370491293350393279734198280385954646862754260258921833105853754831625336813087518760028434891444332239604160428743672880047308920341559869537347328730938450194492868188522591760851946724941724045009774699172208890194125720236303236314020805106907607935931431519923977165680508599142502227946406360281046630857311491008762437280864077771436034228208134858718220063304020338870922114100038733604592729796691300426968645771452040735518002214169571591723784712519144748991569711737724179218703228991877721975500677877294665038592605535121165689228333424035970623474508627976160587133277515757220011620157674310624848587933036601142163259938587240299627437680467894699675233387869334401354259828013759186498458707648393669640901262716837569956914093129454677079039397252884396153573595906272439683847417963771100783748833919083421501111941006544781342187908225184095441497700292451691438315673943713193695912380381790465598664026914736171841804096277381683897038225330532265993278173480796747073098981011844677264631830726284038374020736007898838919430612065317976010927104104149314304634115572393732690987851535308328207937693829944800858996185906698456337190997118631349991077907898654454506930453989918487355012349884836675188264030258877948677682518240489410106089472404062371322533880009957450936285561439408754917441525540123725751283016794275297171019163038441122050417925715899587616399183634347550539527624613955443028655240328405989567429146211524620991331462538858252392485368986492894678346058878044985572366533171499559219486479737272401195050265808317038619787464705652788972046200649089657191233879129578507083572078402195812999686357240482504750397849615322173466295214250179754080137057004731075456668148645150457269881158895129611219418682330987057250730482926407731908998958976116394159684108344711845829906310007896204778563243950566885466945380979923504989226396246326921247030866670702111577347362881265002806817057972379178897952581794582188098624731082194688860206690782444514315663980276910152633316412119832832836164118435533948010653093738865293510282329746568237132252060114118377893894829658942663594653923504691144041784679752248457797613304984879323284648990928682418042604296501944366657688999309356020028152770106898426395857420470432107378907506505524611949897323405639291974267839915276411377353268508795129108797163870300017745181026873844256627926086672266498612131648126744137648660517061908777024490920146295770249692279792854877024175079997732317902099110038444026806121863179957466544185884712073806619778834808853465088951753436943897149927735476811608682570858075833261737422760723728269985705268839555976120165910220179511002367706862639868727721640842680332186812962687214101349781739322935395879423583722333700321970678030220471890783708913874761417849247668938156924492719644095723312542071477065778302143080094815632461966225903991944193512083366922258705765107909435817816410964585262467688613145468912769570693948901066661700408513380834877635693397910560391827284311484948824433922858041960690781427601440197790307821379577268472295841454233349181324037586317851665833126614239734969807020333657469417308937313086072408896844420390857778426589428306105951385255943329978059449124214689144681118814093024276737943009331122403608002176908208960073526567793024541844182723771632855806734560132787320855658750103153530954353256324998468783281897401411246029012446239642260007454288609160106787345934064873146851723525991975191164090199731629153914833755415718022913687531576483292088168701791613007647408112213229215359585948142817212240600939159449904620980102276054207626181070404599511418995824691824716193272613928185676013851247849265369638365158931609999936727489775540002958196404875522240761621887789782508565271601300960941486506973652186773284838291041477372231097708847409960704660264230456595862096489645548206438412251019564793945401144398161624949780575712545283375680261387483157514434115781063193667130193680293002674679890501639735774932492226442005061572969860471412116559821306278254416940441128917017739688106248932061454521453267115144780264681979415385311836334854198518465801721414698581837842185546907711784596733623795691451928412978870455559656630367291080538594834204801127291630437848823521807406137293219559178338391979238543327464061918798178936906083612203180091388047453010980345267036791732129845243474154063481696849021901354342965392233459446903585449071016015999558929295274234928334571061075768432016393384634596311844294408742556377859329979395598938161299992362943523092472168803115842203523104261692065991820019763167372520560974821520008836077349535479940205526451635761182287358546936079234861796099358069711133911735383340411353242570813774490432046270047475544277436898127939682426951106580405112294555370497083982902358290015006231894575323421924057187811239479853772970890405775456204810545608937213148356576025768351346126443459605126917071397333280860820429913244122002075602943106193354163359360648437103394732300409206251290289760282177449226657960961886644280370012859651961310610684803501237899525350169747821508311648821602623601602045257315018226557788422556526485499982226863712028232213360643814304244054953579935870469675761526279959714293910685782177605255006159429133930045551461691179818575671349154335423114640874009108346433184663994704296377154112388391393966100851552740008649610997642539394405948083955568319288430045772238959228849466314447741151676511631080910456375864790245075564149709498559937379222196131458252127922500012694269654501905491038621749486575718675034412292071369583611638002180958489477835272220570395603837890488094489443569104943770911111740258350031276325550572133675458201355058485293938259474398513315959266053669639788941028242686835440271774147899509583675791513189780903746665696593700170548610958120173862736493647619691180693931397123240864344080130292956294967758165171633601705158247808694934337829339233482401867421034141567330775329318273747716471197396973824729064414629711313070031897266423139123042965820225891798691149193765511029973066420913576187803116366145254218709456509429865364248940985919493712154113740367489178941836670816822855102711704530874953039810871924846970771589096627188833309529003038987180182988615274179776981186428188403979046662296039404684134854303896832602610468366099429161019611323148722800347416387464595513209085955577329772598360706870877508571658199090192731258525894095861037189638795203316514198685479956605031131744886863786291858811492845851501723941717179536168459312198738074558051594542375307866888414932506925468993986282217769497883029324400730600189239318175038569125652126271995962003174940617266878069375589895144741855462935971752974168356810429694379364390359718931229619172075801635574569866512123335802288306075565003420749358575465133902399314638280800817858118038992372334068781295334818017885209535370217505780253483459280009297210165562635766159287034733027786824039433930863145664218558548745369872823351610457592211740296046744648024161167313337437035188314918046595511460374294323551029313457305298071222777840696626217033953257305495225236755267338643324380752124002485910622142909420981601081212842433203005263943000975492456876802632697427794982852786714225632757154962653722776024438865176048743932045378205830153493511115860508962636405141035299875648616354545155728234357843201469951486600570301736390613966988757022817332333333798975131728544939943491498725027249423466002612330275295858326475028018494002326849543239001210572565190503498586775153119187340968756662521577854194568819051904054998697976688783009053149711393986190151470171226699958480624660866956274097332088914622251411233176878804092651908495435864860620338704927767649022939720738207921738827040967587895711395501908102938394360619495961567430143292837222156643424189829811107616207473771220084831635181918565183805196211825921724425248872661788834972742272918381908223237990698703322400020598861895028740698110073899791256478075551932273076627253106819730096482686350375453158842037756554646391118368463025126456006110082329039126852057174452260051339375566551189303877763252925166201442811870319943971854858811240121300166638390911666274235557525945301603423470474873211562335525630858234832168185473799806431327808159970519588630632231028498715707536110329897098755453293432203320513593792169826607690409559442955113232792834031526972532425184702780042691473036267110306835015746226896510607654110919713237249641651862017510144079910331532514542891297676319626690137936180475829938668652013343078585800137036491868975228846103551742664633465692774409302480990448191032450445428542877255967955786281351297193441594622448121993436575697182809212146248320230446448642910438038867114583589801707073179282225994716422964546326494477092871410761564778631112245782458929561856141637745108161821206298122709774867184765337394536334109239641346221461356726777852018325167662486387454086520792747328186474616587912116059033673530306811750453926216067666231806275672691935299038929428985128079132943469918185184591749176818730456497701407850133407971485979132184003658727703028837055773694876022633095585500404717694283165765127341137533809792667697139457990177009531141867283186957092574138979064976762270524417010719233061417997063389700050917991719001998952355538389804253768632794185825172166269004863944373809082849684527700862388523850510746613480322171959292724481769195874566724884836914120154867436579192803345428916719338280717774555627506026052850924091403745761289150571933231157680776460106747026445375555878010765277222720436907040741831045886787203718186202679610562640285633774183444877663401746587333425312727230428229138650831469930265876120066099169555107501306845967190883316362094076768520100948784548836288555337088517169247733175503635227355182420195032554771017539665144474411841888924672582657997708264048566263898018400838810150400713719001770389599434705153731676833886460185204306338805873444312378923997328877895429905938915083508807668503170631636070913532160174018187927831891901791036284896743450149240683944367771780179235948266087981837675451280667193186835332704511999319550379765048680733254978019847715820647498963709453684458583447854270660851591663099627884071455344704643098968717446266130293177414277346060383151191285599516327823809327784284638394903982778529146075943494339345162124454171201623668438185688315739260055412060328174571732445032306261599432348037367353803696862712980908826017143001704241724038349144564363827428670183030280658101522732063564561576735469411149989382442237730131139829249572960429015340873008731575026959286366953992004218249788383648942029610104944647645129804741959255816927069414032767867430572611702039279044474127050030940414476320958440519047410893916832599541066410975951633034865317525479089988473091799072940017539705024973871725312703205089212288980806438195170776131216293061690278034450081984475868450796119676472815991087200320059299011847132002158564910840485483551304326842230144674813163546673540397775585971858613894211014222756480492075865758857532965024744273106062553229262601111453610570838762618087289373451425700346177717711913506180705911135007561430604080309541544312621269449257706035121113841887550457295188202426958102602862300170093600274043085504987566926546782393829702204719807486774304706947530122145205736367609920966310263309285690057291101858014948865607716334824433867384512177788490184536877978945260159393542775105685452349139096139275880726575575066079614570263454952231443007279258104991083372448383121626427671193287972609630523050270912955893559341918892272536363298561710043477090428225161367262262879061274119096163885732920754401722918113903185339972823746504618006519315734967162267669461425518579601608842186414698534838751347551922303627703722431613398175488182924624101464024081842395182146850349779740775351968246615415592060731391236198150476728584797119749995007787580256277456998285461017679412897526158329105909511246154930344655141303406638240717176395204780572544020376448826447433171444053820654989603886055798203190365322082903908955340699104783938215995040008967867541100750853730998750059663837996727661243257608884760932207662692939142320144536695333512351211082157829548678088033932613435831588524658976677797728528365670177145626599710320992235575253142626818445941263383523253071995087043355919612046207324662839629625967608336717148146209694175742448823763594296318393495381481049623841020150149810863284413570914014258177047366661136522001015849311673238656891538793186548373809541149674860542895410593107811940998072775218701124916495088672096876492508757790507012984944694789718296821384513700656715485869642233075927928354950855136052758480301018347906464609330569532226960641308589942443390440609366348786927231799242970633028870485125648751279209632645033147166179551734193157206432909408947165215419706475260338278831372768984082115522811123743957314517331614077268181374472213760881913390039083723371922420832014786144374445606087136436614436677621859543559609407685623977643214034321179063398263533638351151191198417725562479265622295080443140713637171587641139937238545729794955852637095455390579410658427377086691463392197135352337715006167412459831450286021758422357561688774691501841558961218754971294430860699672992638572861157626320387903707493854235333890981047010475721728984734627439195166397048698398314006982743848688709016997574245679611509225011181475675066517209218909473138692975369371806027473365209341223558612206832287941161953187004385787704922184920703730778376766656373998567469752696036695258017686442031116373130375801286860483461893355262592829546632227597201822188609178405451762205235951812224978134687970024161408944408726226558176131250199824329505687086671570718577989049850126836363043188060194797573077803161219425447833818317241154826727394201724600476619855518745283975259349220056405470503654866192303204651761618170102205578778230859377890363113672591163012826390983361060393811009648317269359127474045174879259376990101122454701292774004488983798234104614345246497020956058100331098243984909067930628017863113146759920506867947619567295987154700280904342427314376574614485420238739860374534935963458804544383278816512260468177041853677734494186481870893643415323474932889374547941991784510738971333316157758051250280322426204483991892104897582096486423625495051187800659991368027527398921347426197579791021567356176595544039190763603516939866712924436785933177237909711616060550967660893665191642188435222609558244179397096708566163636394020999811702138313079918318462742434439636354510439109446642211422029204766983224097746467261143867080488757412060042349901490317800897701557664228966845355109846378409146912231849023887866194778360393754627305485372135979218334185649209381368178364033292835107206014846589723907393954559490451563259413805893882938743988157957700390064453368720986218816906254561236146675533587397203744381946282038125060978993612848556740837495752366190610559142776898775499026514599259431897593118583063959603009388486918583592135076033979541899493025002037107159782285006249346597169121076424631645260929716241078722769739008988521751774452936244997065154350476806640625677321332939347362398235861268086711033629343543694538510768205612129242568223107394266559975688869821201273879287757841260222981563116002667924320319797713314360606588230126990926381649945126245361911950931518399179838712613140946712566978664261635980514951191258571222050630923333266889557098339949322614334664373664414015479025322102598839705023653143457257700928524260877436068960058696549938291220382815333932146787594222984579796567143443381384246389501950932122355734036656535434399260004485928292392075095457297520368024014162681438883395919682150750377362610714022403122996477377166315125583471929407990554174177208579264769343281582239465805656470959293277507254433453779072528008149307348523546863482788275231429596732297736047119547832391502823008335898992994913926568588096339784358668856366079316712563887909044552927548650796154449169414972187270747558436649233661475381196901999007268161441079107637915698261531315123165769890260530216899702906290137951529947507410306748704194822620583281254743839686676275094374282727627844607059602684975431615822625180398727694205362193176734192247815221680168890100953510817688223694715996504828869305239708494987609350323721492898531625818993364810736116141186061910817271369931082930336658707516900542627649010851323069416048310061250458835213316209724940595654964135599029602105924117508290408323011587254549236746420233065707114739086331338205355196208196183623174210921577641409999157449361317611727160712120345645551494202022848475838969751058682883799285022015962790430253317666130886254822180930566021053864643138562329345150932778408410457267930105260033647944952479148697150037640577536046805471889250348984605825963656442127209100394127226301353452110601136829941489693854547173288073155510437047909542962730596943477387866422304048173738005316766555678020167462243847982940625277678132022145590053429766991140883491129649271778709476983174355091830778190433792475290685924387013311030406656410870949773335449446186393310014830779239715865041088945650002192759481380257855401972890832403571354590560108106904843851465695879375060973470747745817841944851358585764058800457865808069085679013759576098901715949347877083136196700975529243318564046789970305775889992991881252156892131887025585720843960820890757077613481007640031404960943672860752235465612861395337280577143939098636341736380123849514819525032860800661953177782648913058627735933341719005781483151176854485293920825928935101840677075817786215338751273177882938454095324370895496495865207503401243592008037824749873469333937781796132328938356045369464498794494855772385887289205636660810964732779301551197814748364553166357609454311055844496735966345635462468010645514058486482887067451200071494929898006708628666641297618712255319853912477762058410478699790447327814572752562931509340385665120200905760971680920769666856242724491181909276232359074376466162577228312783827727731120482941217013990935137454035659972879866766687381057924725114838837008154494679110318011497027905804034301314217284336239660066787538772352527339511627140413544629645760881314934278207656125434555308010768864567515514427396820120378203322056230856839776797538122684947110201245714907660887293418682556087165910002213585695552294267506833264826362196579085737198984180754887863522636460579615820774194976976157995967304398783194259828186383606198493735107406727930040153511050723501113349548985121237393677254650217155100201618865010950320506073572260079919720780691562397686433972053939921964486525903025672370052538715416119451038101335769756913379756412096520346735461783356419663912799972544124590674368381258098890613042963612418570983399233981542506507366246431040120076200025281276716223985945993975057413924867239827859240068515016706497741624979910447408406593330395419835800800815385419333328806223247902020590346090939079901489758121483605190969103671765733035889302134092510341385072610997192220352224068058794957487895256714407617644452457043684530722501816260193893553443058009929428148546872559988627077229741952740440300474385802915374757855462582030132873842723930304631088008510258236149626113427798607302924894298313582259746534434378168923969752676345916681836062309477205391235807042650301093871054976769194661121921954079102145682556794723723831082317679824926906139585301836345318088646466838087408032667789777085971085648667271358269158431594351902580336847178931357641762488515065122609693731720005404046906986164237575021026582844556809716247680519490696706776680297041809956705187382697182493590794882434278578787800795435630687783475935111696899269238674559466724428790292966466123673819365026912959098063293539136913441928997271122798932198770780321118033917157066129642934091009515058990067194176278436060241829698362117606991649858695041032599402783780555279740503923745645199523491787878871971553899227726445617706388835575515904164782608469707880475367152447917761589669140632475572948123027900954194492987012320124794579826037336258831708237887804578043545138773070914838576420581314138216479661871359576015040864549223439943980567505217335045957315167253221771229131844196278375148025266195480849667964795204640430557928505080251197445119518573993283276332181801631335025141522253868279114822362778863874327606353610307979588905362390493374035943075311549928263046126714929146754871805637967370488646215082263213625632150184148837143029608330386007734960306969558268879513290913054728864176999022763633173933429194115759902078285955653532202033050510918860093278611667036620709598712942316389345919381982400950595492661005561412145233682233813789028920837380533719340560348141247653598179583939958091965987093927897940360902241530791259165602840178337704487286496937926842321649889057596684771278447857494742615534090198907020638808288219025235002773001424405044646209051978361749918430947949296899498189231612982014366867582932585892402506381523440615190547965584388171887481856768618241425183225406229617916809261682545702425901163582767586179834647259830038856214658418870713349378040554112404030599630390384504898205918788410524720599194627324992562995027307099432890693825670849994574164862486464176492962732321807572238580779327788910392085775823399315191514221620141898760650768791576219338867848817241710102124941197241135331881235633696634121312319479787154518379460923575194264106366236969888414923330847177159349024947174152358591706291323650632040864816189808276670025698187887186962395338512713940202896036163638126423730130679286959718207169188787261329569651526272840266874352754939250435777533122217025364585118382304147103788457381065838925973446109575278527415545870741179730389828029565946564652995463770059406242242595479825635262678932481103848802321352790352256022762993779437392464543253388998075770154409618328539690028219630484404383715689579169058445560683203073209188657523247480004894279250243716654664845886072842448902440541261289913171655584919537852688837746077045990389035263751496286413159206548642838348815960228050823145541162137262035735979899123877075301293743216094985419773395997540333169330304812498914449418413637428069969675564644849033161250013662834312646335215547397317648305399750290221429479837746484400570522169451771948215508186799824188651241575028253657942949217735716090801323909640753260468186397363286941655724745145439030285937532538426558274707491106082136289777465205543984841532304042037371246747452369628979262907525281448540031176451215261125369894197098525785963552185597386616907728200622784008243591341312917446245308767990766951282243595015341953658213863169681978406034073946149763419038888804093503323155568437462787746372062801755701651225337307191279174900262056742197531777443228382735400879317023581094372296832684319968305052015099586524301461727743571755239996230718706616250219906988009796726490552645925630440458930933343634779747652409672695474515494021223780261700583897764341862731070664428508114045736152875040017804472906688469940486298731392479062769436266550481381503028203247508595353145385619465698881345337589183385788913772212384422004424050700822734619453479979170602828828992973879736329592738351119419973670906050809745776432707809027654245810479583331746458112043041106622842784755210000818287160692534499736198856915658445444859756375998376283075126944710509068454709014453161786456735672977178083454639175122992300476401423568271837860216973832810982151389127436889127895070963384885710495482107074316431793731541147698052381430422237476293314660726740508505380486579060164420684912301348145400357638182232501823011806534261037026759738384526203611203543954727791840074089961148643233773543770638632620634721067084135891381529227931951166588297791325160762748159956626766991770294151478987289527102568327380220722226892172828157806708223768669009948718755908793793626396435681001164666299625145313372327718014658872605898670689413677518914653572601120847113176019070440568634898499642316650307979448841574495239532274574585420525898942833098018544027806144720455361888797635689644253157910021382796413431067294633040354878696921156936932040908656563093893718179926979133632352830960194864667865310367374065497029297297714301666134549083197143903866442081612747465682935984285351727184134203724610628428774651783533909818212744186787457143916675585252269855134749266329990878792232350220442836924335800546090986987550140984814855624998118373606098049882354075740141787971552707727292845213080111372599644348239469537908074480424162822487894159060644048513312821157806975963304120716318673956949323202193624730920394885172106840574282337730137049502550826989572420744050104959960079883548259557098716525852504360014855333783793176893085986159188515895227028431860861923397047380957406621196277970349467902763001980304152025371363413699566469395510064367473995855148186427528539224878432078298892033618056761533472592287535856399811301504210255837586512055256453565725778845425289370129117653883466922068504050832917794560675985604209615643317308271145721446171819735984393275097022468904798047642733859974009766825582507539017328592654822338298541814111110523354210081830266457211894953255338200189176485202028648581252219505861836934409814301029283055678655618737261772998923288047128327320563067815490786112060105953272007035601771889738809969648144669724099656962962231654081479860134646958756182215316472231473715146932395733194462963040080257765401317177858483660459085682221208396382855832717402253033113902872827098080582605214508608146735524060256576554521929840697966575477408022213155436156311175208307913545596414392490007577348011668479086635669867040617197099357412272976949841846363059674585186494140596403293772634344445753777609220071983951609602992700320997665681604274366433108390114613919782417811568213281701399346069932691286317655474433924296049844670807803571007303254501967921780943550063136803433250742506526317324036824142203257219641913810834833941432139753033702634668878742128290055318518397781521991647702694190751431122727471682823755010961237850696646156486698355926015169974832237283193762642390842130602597167770417093401926370415007317923074875624769612671838879952609655639979681598791639944943856649261930693142147808998271846541305467384452532148651991002128120304592410673843569249505258482551411994721064562632222993587358990936050764809583529923603831274287271210085765100491019061569341901828332818173270216117782100736231617637610526770386487761389967083506943634269622747565984068557275674261632600605733129287361978768657271544440070028890863296866919870479311004882473868343216073840333690204419414259928578804777374695736318061107693514939984650587723416638536889072904513672475740497248326656199403100598942669390327592262971643550783856766059500313266041974025983584761311325281090060477112395482092007677080615879253602006581942124866924630163797872047181529291167768329095588189285908708330606017495112790695047394275145527954010771887308568176032945444266327579771302460330169928534876933016974730900080422774032804617895589462283831858937307658481771454473887518090016633643006964451195993193890247757851203872546860858123579124899093793598437344092600488135407009653656043108365379719584222532283141511052041334692045180145508790045891172712308709319464802772093214455134804416661396420884476151491442155846900446246054969462606566924104978563429750072228958147834453661733694667501746040764106579620950225853824835647455623755671134109829367115482176427026916767800190708743238029612772743136767852101714643431871647670652075570272131536183160724967656533136166167944747917283969435619888064824224440963615104273321174164620486640222074239382719592740392528984615227548813108028705138030825471291166076816197975374009756246851866912080748385022785273581174960317099311866745386685265345898947303763373035820648335783575110606361665955988541361091408900228932307670549293944864272281827476120320222858065170528727852561463320568083058949579424912715799402378001606503663922377336287660619131292272925807877696075567894078410076789806858235498293434349779691613864097321937951837217485890242122682967488343663545750043277190486099725416922403494662294398051397849219212339932636451851231837753161275899256621093958787251415616045189574164065570532847937959294771240890456949712044063296131289126284431929853514489394385390055972244280158524568083981162095728181676413231223854752152808432528249408213184768138852187102202601471025047080220462920976661346281280173742359382135700625422935540176440499131633638845584781075379065231697796960510545383433178869869420805543623923935248498322708128897384213923241876864028537298326432883297955695843651332772419876912382855300279322758948647122445893166542776768345273050044653375861689732920344471326252731990064707794198674494664533735826919125617878242857218177064486565207703795060670773097265061184086920550881548921182198173261977390028151282294516062737180091520532815534176627587138522839961528332825477321850077919638528980540699407705468326251781339682973645744819529652318628097138972796478593733869379738754503960382801229679485861038679788180543028014546293566114532870474711091952112503934349960567788157352022434591529196598853326727729902948176756341792994569472057164801439365535643814424669009299941677613637124517995772054071164385400191894055807166043485326205782972490800196871552186317064369860908776258608792310508906216406681219773454422531498296787917618641429558325984551538685454840710322685301067449392772438138715752307509239293927576784698929004707688982413204294732506126815260340599530613696068194300720690845842424700015243004842042425403040802440209203941995236570866676041689547480306553268336777823137011012212607805425151115830792928193789652579597845012671366948477954520433881456078632128691244227848677764053331498027664050177965956087141377886367133024781173042633924396910490882308451019022961300301875932120348752224271483259213573548890974934851990646961399491278442543670523772184112759359534142643127425987748391441920444641031275922942694690100819353071600600884967798356635171176262165113476544070864429135071745074384237862416153806441213055330611147489167379246962682131603891155691875827713113963617036628097374504927532425498366993024612378668379334122327191705079975862146865969205950014796479112494530540045816506605476601118110097741600744426387511666950130452914432485799808092878283731693699174287943138556024791942957797951285737362788117245457303870641102891287848099148227031909839297080384306598465481366427292965965228842750200589514815145020525555029496846516931582430042762612720905958724399968287566514805050990335039948568272528258756577334661288369194128929329113015026701980092090582601894852130869991978697355943995612803333953820507287480912435316593487900636801303573969534346253764438617952777436988600262547382790789721291503896253317564384267978320755849931924937246214235006651098562486945685387941190102825668174471779090649774392717113366747121821403843083792632514623385359439477347767314347158300812758818331857718697378113111014268638973348360196558101600649400740114567667432312975700254668350575731714046510153866326470180504718677179887125612712485431892168338670320395866448730034216953739377774657458964748756590534641026904232295800201403008203099430188194542167721435730585955233732993825050254703788922172222825923632817674491558818773769968208072200837514191171395065360261483810221749341861992138328889208558227266132947300481381695329172886932890530751516838302919320252796379399975630473569563539616308729086702356712410906448735411313546682443336859674438481073266705313448319240419111641810462198847878398293176721581184263859147777671926238846319924886668411563389759160803553829652738521888660102501131364754384182595685325740528483236948448761172827502737794789409013239734691123649576646585687607664035750238973850151086221493348821098548121401389762656443613640359671550328212409957182341810797813757263765699988961755652737722535532948186661409718644598845594809235883297284900297577700960446663360058013453593892372056362967657549489044797687291531898286662208434354169915174364366321558625183842516756949019282607038033892944052369416233984495180286607098708240501356821708940456843864775268325862450655688573051627960575733999823090476216161291658014282263225658307531054061009123877581084117667670150439950115844506612757047995219319236731902473711643713319245004780729164366762611599670730530923118624683730865275071677509041849036837703039489111326649674446650682321596556234717392637439660925524852505950174527025087029137291907180449707202615456916705536992938792700364361165960092770304205054576719611519424502031611561626470397551248063690296162627322689511203895454017461432393651818716429647114352008069141163786624267234141198908459097152942617318928793213696882766098401152722546543149516114511061215476860250772826090398950536301994394964830062606350373194112253433743440017287016110617340269019094937939594208752675296409248647898124035940718201675778605691724790411087196980774846724296844085117107230089248084854207372558158888017558184932946873602470306267458703935485246846740247113086965767900326257804320160838179699021974431927791557187116731806947666949769235461263160473211705087013907048666004804687297359258202373745097882205775250610802760285831460387510677019779651006526129594957251974455310052293853388002821279237832802363380446497334864664906282831026390984768546788835185827162847750201052002381863477649734427447922063757807105585928739352143121080268694517128805929545591477970340428071564209562608706757715273369917859635689406168376517375671472221496165768439748517945636464151502918153891980238454921634666368586301766141919235017756255831190637989860584048313106818430808849979043474408365263110427349519909675284190661922677172154302100244499900335314437070495517505805099068859857481077129634046608943105562405575372396763908308571673445309928806401873644261638642565451180420280473177382241819528176751457841653368515894502772114391756578278700965897300072259645791481876022369470922595357837255516614352158548414557783778873732415565167393432419618538244898152098526001336214447525677182944134561825558873138013091859333599238087283039162838053471994838437161139824813117109158302891966329629764893341776321152746862662051126453506058573904400833549642443759978612683755191157014074466075547856013205525941848389416906155888616671189867341419259276175879161886428506151750825272794575406125552708957555663366863275969197015825400303001974502828754466924716073575101849338728108798085803020741493731437218135053138524547168748430229374770581415144462692536299911249058070235088712977744662089510342824458438435926917781432397260387016346889070085735643124344362409295672452962670735797935938333110469709179613245533201601016459002623971605641129593235650126226822967431378761657603888587536956403794051079242409566519759321783046434124601182403565250277521573749158200045195178337829808011029332095612410426095256076032515993326001757661250176184699800459047102437623072074657816918316108663935600651635213699510102598363132231721665487458239203170881927528202839687496629237531229732790223661121055720499346402286490962759059108169703723667693548105548279930230923553736821752271595818696813965571176244379370405257061904988018115011974138328531946319255533110133821343767231200880588257137114851557075649734651978321578531931536436881948613838063046705293501619040991435255409207462507800822627373788395816440006108679938644893534543617114323595864599934252914328940413999265410665904393031484362685020207365116729950124593439930571110227445051181931464905892810272896867551718250380476422182549935238381977211728674382431248943266197743745767163937702000255663141779817274494351936224184575041881031865183034465408711851940899068377256756611113596439769796250675045980795185534351224592823091031657519952737989227636368035314538927844075334780624824584936059392545327030438294801464304475068407448366665824706871162775479726292110662235297582977173139414596918218099893565089267657880703447631036850776201239021057308393742860651290422488356893983436135524236511478618420222006910208799939411011672797518728636771185595188441125893267475605480831330403431832182787513943860821301206567045026334884014865553754931514420639911408709569273304051815303081360698631168731878467744688346773378432716820086377890781724180319941997701205261482606987884354118699421422923630306311274025747570590286371278669683299272841270838252621699264170979141567439472322085721870813075879513561341384528173080224815838845610431983924732493111510700855258496656845768041276829269934955117714023248171976482169832829265376673998627293191892595124635120612857817884229522081203901956931963510409223498331738329935606586495913350050336905750059532257381752225468245691839141584854530405494094882713555849757017489054526447431770015892898360287603254486661198701106459277426181582574546831274753084774557246215780675058180282844283959625306665971258575745318593019366227782990989372648859510566042485259169820323116798446059368961027855730496934532227206762661624281624848400248612748286525473923473822011264694990257016400464570209502130633812256489933994117691143839753542793802475580907844883790204096643017176671344643001963488679219791957385106313062114709781976845263207293721339256105387772220411621546227193778357209416348958235242596925314150710922342693784625946102382150349849083260981347734641882375646579570770584237396214141128479225563348198415496769910979272631402728666363825459575655528704673643503415663727636824594621042871129216283313074180795924144975927530365827501201298145060139807124344015545302500569656138632042561960114604467058990364611328213930868044157409555181182430283778944266296674034488429862085917325283980638115741071264986237435700026799408689342864838675487599075080999891291368132359983831723894327813846822853618134618378403974671787435682885352233018338031760449088584048682895724120717295853826911832552510212387437044026287444374511561257640244014829690381792060475556715722365415349838438194103821161510291732667059765111369016076092811496709677666983232190713800730881674384698552969993292556954082676280935747104767539983893603307979590934139639422159851487635614053599686507319392479284022926374393064715561611681671559600166225947872288422273719331609951910775629242907067579060906551233167074718749680252124534431749521932141180264395031246203731795787914705228924214053459510578657912979942663875053778198057831575058132571235117074270523784490116890282050312663498288965239767999661291155906203790510278782900052902480314831128020861365213476440334437250512506210521290630798325407351662978160716916242406237281139888778406100136622364762667470734709138584994794560362166661969446583580116100461511657579863146998098659024391854730835341903774108025459470166170161032702632293471686175226698547724445023236188832535002705744149285768300239905555873882010713069620276447236452252157491044447783022126607105193728138835828443648378984573586537899838478456465301986178517040002179133191887088368941610123113848138010869392639050753035353729808333611437239515929816707359439793059803904178820893141044849185997383873795269744934959831389718713315202304814851156933149867442397939328042243389369067003453151411403373071258839856817171861969218418198199278263568507153756498684624093428765949027942130754471992711644416274694538490815610910680339545572711921206874117349018146979313198873230528183999970342334446525039498883876488540213385447046823982012959335797596142942236688033858920613657568896136268012814909444706437421625756625660431409946603760780623134315652373165686944627206809512200709582389586655236124892735626610667696852282386852386098021807459373375209921721999490917407323516269984856181058995649407552826104176520415530714080302649579656158031134399986530297331514336301148007804313159884635041393601233630860883118878040854564702415478692964767043512774984767780186209388894322298101650014613750212669474298970856882708723097868500177138508261714772942411912669893939851183742428172268066322214592113279926267675907487084633637856860788093803487623702490345880384911165994828254543653946189428976580293945349868520836478146950729685933141580297401104357409802053269438361022105454248949175786073805922786310261462204004651666372149612959721627030035541630171534635423827063122487833244021941034273898248288781592753731074857330774764431718325819178563260841659440851045986038526525654611087119278024025168907908992884215981611517587174015178238018932095744926199897307588635004596955433442033111816800327253700588848022538014719894139079643021571976712933208164750779545245751490494256558997529567323691180617487271805387167989606302386255415285988659612856353768532211881969010666595242629759491411428582426531881125256562840246654849775750308542291781795180358140375369394313693448901439918991242448008530937461410668086638952629499013661288420277559262402014997655380228601184096813299990177946833289820084746720661829247955464562996165153217129686933032303660892089237043510152297707785825586711093600888701984974573194203342659534529800752500649301585503998544076279162925105953206186919081735578560607069327042825893973306648687729256304178693486166187112733285968923488524224528666237919759465200903336187578780894930779598700354301331504957957449498799032145219559762418830639856877429054475945166405166147472797958769890915793905583933527461789902640342553236579990561623913146770505842489468529295880318700985665104392622675907804293681926483771002464852268896804343486062179848337676124203074937544151185638184121855137557452123864566582303785701738500912891267371303318489911097901429190806552670858663343961694645965266060455773551231522746040295239927953074096147318869196662023104043390491564687009150139428622241662165272087500597359007362024822706720639913157664149163112168721664087867632104102054707937631293471997445328935658290409012097353935615487323622914070470893535115503207080908941548235440197411542216702929640811304927217879624886036043930574055251142394347002807149779391839266665327855937209641624295261462475488719760216821743032286946257736888535274610679468225353658943670459418499092814694315706061348553594411541354920790277245907957840756932554688513320651038911034454911728012403599851791942498070600907586721027269838368314047416095665470636663676700284469879016222544567579639971656911899103912856800125803969284754596757090520093069317288431152149446321651252181105264312565579384151283788481573072179614360377555751748308497128499199073642833314166579086049259118413545250111281778663350768064671690913333462152090190154602053761700218618312523086861827228225698907049278423384615519582413047011900140871836957132962513587656751324690200111361883808993900284064691601421336994083439493145948762094637753973203553020379338045476837667524284992609576370656813610945677435261211904862966955169872957859232953464327078882824339293732175826630101981590281773655623525083583186816210742319199656134704703070669423482492066298179066466165764773346565310589139668585191246644197748269840136296513197019541243361022377904188525279774026054132501346677595403730458382637357422018844679938083628577122546641404891524234734660436248237678764335529312273661400395896805901865009053514804952039086066603232072329063318493003428310450136594677162283828224292042173994838848833657400930096019158407725950622546877038399805444733481139485266407954458689513338858372092047875923604114004910740786624037351343357567666931123013207468127201261795519685216500426548571288355947166078732721762235691957265259350764836428320522416704522830791573203009250610340241366875051198187689940565081962516098941141357143064877667749122522411002931881951066983092610692494993881340583035212259041345432990672621752171655284819742387020999502726815356238696480890629974438508540672838327772161893570894515770429122233276390722506797068893429258283923978052675182534338409322873888652823171486936554681735346465674493141332436541221779980340763500040652440110872710377651785145717918853624733770181636487943456096342781761208088926908076516271417082773432250268114013961606122767062504046903609123395871879025099315908794623743626220549269339061766936280233716345042264075636204344379798109591099782754884449099580921876049198348607370940469121928695728579177370680468317068282718214760545828784042562715204991206224213281711416873429622416831181041798479523998692800737644541639033980453833970474457155193427982263616494138959320652857978584067541798071658929015171183594694997870618876261105133637212893812577672586510317489498686698739630475438217631892745392977268074173397237515368069988512299885363276406071757792345988248733615072725389487481997378255394104876857553758804230430657660122983400299083740113981559267856052563020366042889959367635420541137559985937638149799477196168536895337934812493475828273685441650831873176198021937025924610874265024457663888179247104065209351228196017806196738564380165255911824503361881982391793770703809159211762167288006653803076414754689158365780980333619638475565340257773060031676606546803382282629925802845897993915699252654613779861524185447543855412293452902747365603830667532566829888369497567792277486440921393405403272747489075478686501633657468816489009010439490985857945569617306465547538491768561251393554556326861866717278322684147355817622657810396223724406384471713875222638597493979803759412128627562877662611153177850246449904131725308500830744284843400214277327728642648543417972386960212464596943639449738155627805291257518569931835084221667096014640712581766353170559525725653417143211443103605319440268483402411373158964289447703159073005194232284420872165156990951003228984531451414738217276570585265429585702540221056343319843717778473904756968546355394105120232327423223223843825631041659184386559112611626844537677311828831451930877422825310965515194659432489921016913662777055694710771927527202348100523910452742180837669115694075707476552245397000402662256148159762735898613302088399233514907487061058790544577413654130327309784642446383865972644843429271496240912171972924062088501656930231323250612696581952634088426936430845849229577594747954216770313361277774647160252015794400017944572460398583953052838711003895103365521479100128699939049937969643346014061980974068596716122848915223379808631585690012512515249086542209952075702699599706182870389164166326407546277775909607272654428759637583769488509993058676956198129124307847529757579020452001618844799901430269405200213943222048094215833761698356503342373932576554598305936818636236765458821077200861214912579879947742968072347056706549152238951190654734664504618436563196515397567001838624290945719529023350728222856567517516902687312812939053222058163221588531991180030206863775434662887801737449024944457360870970294577763892959400591447972957206511625370684293925678024880402555546000682947198680539551567712128279052713784417384514045800896657249893051957554112384910246111610873798730810796129146918795014254852910108893324860219314564849172924112749515348868433135187020143822418185995703639765190020979997814671257076389437768451722474091805055200840925279653802418673203528048438944099897989233442825766537509216820377964359159595551075643781890388456360512144173369975796741057222255975304544363990295733768471677225932126445209728036542435636389060132773437375151705455894622060571485687388638847042878327762015805590239872193461976892652857210413698668691466880931962644262406655985572060397030371473806853196559971882329123334239287584989320074970944610376419220901641732268378504447912606224804214965897358246227033187123827896516133121525616458476431153310626592219043872013047979548147807968950501593532257385897917598452201909325408555261330747314702208277117481519989496359544708726184500459008444333348603803310944089997704240316503283825298580493846097954133088934733751647882895500693307459205902952530546042352509714025818332470974788383937889193306697200635226890993942377478812623153420937984040211932300124675354502786767429491605266759845661367813046642569859989953063134107303897374069119691556220349782035150079003647696467765812601186257821355056338725805465825842035384639661980040505266246206597844953478953692082049790394737152410808278571631080397566795537235569891023481810293467665360912113562331119745066316285648754733584523214850315333052165780530004523817423404504021099565230632835022372008750995118634363017535746329457088174210074514296496713888509907899014238767125805810515504163184254752233694017441391136232073732623478218673786910276312246401903077049724510843403515764538769228118142848851943826906919376547242858179742846180324742365895543503529660680720706553323930674417234457763888718158615931575187429806522384468947235945529534752218990724906735231669504901873731812801301437257059712721009122365172657164124044039774958873110074912641751500100884789787845338312959272242058861196815920950459304004308329336275275048450057484300812389183250661457734370731418895322214578261861312747859865792865702545641384003122468876639087798207652016104205555752048690962911531117092913567382618954886594338522770537800554523481150575470229477729797693915727998752461324903741878072173420957109550382612800205927587221017137397192625606799970866462105392499770554217225466770281481910490322608181192493299704340375863485076607201220050253098392190562850637162586412515161761923224174749051281365635525989555518855513568561138704397263595635907458406293808973697265262765254941809418644558667421961197498463367716541013972744803028974569347089950057066772873672188478233971243069859587699981698195626191410233513603143024515929590837467215645496992429067121269898445291798716415826166400348361004105419994553719336295216728315245895989980359324342384867142641538532377809193889266793592155871223120624455841875256397848742831388576238404716228250194777032694129184031659371404097225352419178473793087335473307400047874436852467356846232345011819841632828110729122831340015399785319921557540743520388915035895523954547393385118484911653629218223003742496324030098279459097573995883418209966712049068769034703810231651464737222304899571485063555031800317616910772086499831968610614928478078029304931966301550857628901281920417477788803100648794397217687486699545414343806049895338999001326482559497673373333231847787463249415045170998674467833174415790240428732814112022854080370777618850154401686082987804631716635389280972338403508664812201463379132497382849891297050438072427266655178394327473507836335752824630215282802864450838637266268247788140600839706056791460642643721600249873006285922365687371012966166457262556837908647056385093754385629178523327997231567478699923142833979551272279989903129988723387857610293810254945909639643391623364490688468435599749125333076226414121930316339891693404347426623535896686954115007168650308429844859755102891726123886276608715290792130075599010053375901720254851165075267227092998029518412038169733228851341349947179119756133531267111726933646979912135025933439361799308287366540068041172964733474886871104452351984246068208090477112781365968522384063092753081952794318190380079178304133964585604754262473157921896580543666675638503318534465938404807596688179728805165220996463313594860090679747120966868800830824300962158698530552552937738061713493683782549033902123190697992735083865533454178079382936200290742980853669974052369422571105025184558432617256950026969760686011332448069922616420807217237085094361038399050113552103729387900162511116385366312121822217614083503728414969737690608146279955530570588609255932424457033447429862606769032720216701634717137641214940575646450999789453566160706131838824940660082503468703872349233174712486183870287322233712608111400888370718434883517662740173327308789659543848984266939202172073587420740587418993920735962193335317603139065921478359226845736845405289662776411656321077897140378394605204146301409007247779068986716920092836005386296873969406583723041139227905754718785929844033587177049108782443380685405524081967783198986253002298887798115112659557517371764051425214936743791104844787537946702118354947623403583955331583692991786332079671298513185655313318376383101531664407379893981299969955142863075916434275495392094761032702525432680094983250444501747226755930268697835061256675281688001508667856139419262395204084453795520406738148406127612629468061740757167440185458299342512960054877016238382106894586406426614198069815744058180279314346045756572235581893682252438948060222934282270150519645366042044482255450824849290159543314980070485335613896200698294044300045875293255007404544097315806184106593335663646274059043016267930681462305366474648687417466937008812770978514210296398691584903770704163350491132603997195371387493214285532632662518572996070403096683603344873716923439824720462301379461542818445663725173789648220906107910102803633775167937502287378992334859691720364827861601216078521711828973987708873675074771832994487074267750997652556920527963246760869901293759256451612148405618742712805288252169176156101963534598109118628018776392376406204880415142363452629536937881205288919516833522305620006426644512903268864125796196562899109711761417548650943250609790748323397459545057597824472838278564563876104099125548439251733188309417934951885068495153809092735562964361712308073665668026116225724555504981695088064092821057230216504773850903539228693942431220860750234586274307176703520347612062835962710453726308039653006996269903158936862150620978559747589310146668988469923432855685818345074620713812994321053655663789003937314523190990788057636480717013684493204259183615824733831931867695396746282714720965686079678577067638558268090257363738691854477598722066420641935856709616849613336671002217500707553028867274969655282652223004390830185223087432799851945109472690438289846186892195789538303813042968411140662059473913020067996841165029686079225031340097334480347372279384419186800163266873823847328633442606598264498219451477017900239164820516116679845579190639333523898355128832222489681721025181401313146901401935159182350646709936412853654122499371486128166364587626145095954427579284311504578535098916548300123966477562356552078259470752473611848757665505313173356170547999630480811036936043835389021295418392858268639286666420415039402242768467657197581958677651221471897396088055890660391327823395494774077283421308984031660369277885078460551179272354295259789400933163748224130894662106426349667715083932120461078340004953558153541452847915054430513641974619393278809511049069013726157092556017672679683758057184799766229533587047737653659177236834997736715787213613405572271718343716148564104772873591886455094302692242775373413620928351194380524472300079102190094751076576149063075797337252954884021913002203512344274311391246988370365595605959520068099527347569388953204747627496611562882577208610108683725258617976781230895659005143278046435679914844048966925395382607586292550398357999591927737388592490864469843215515316111427525812582274828540707305947369501644369619386461305102352339216856662530017654161882006410009768669539034076191757504664740361409992464959682016962002029051756400176573302412092337847127528326900843797978433317088892241804061018479876967093243971756534905523416223526079682089976097646501874158774595736942130256673481798899171578127415956239150319762732464951658446248802767619086172387262678503555057557083375437623500817398769107677893688074169569919466338999990704920309576414306861698835138827414251791649747952229770938288614776162277132056768727535059462003756596091373159399190734701690905556939899699215058911849485540699209220821441611403260950241928137426315576944851216348357872469176923833627717903327122169474030452773105420453001727777038804367821449192885316330629331078970225989587383407021448306984883558359508599071157797167901601887380638939441901770905353350472608470873863458649023239049710410740146465474813782738053768982837954673546181837331885530277641079278906913790338347671629374662339231543555610964234886519878848541985410467782631281294222427469868149531220765077013808020964219689600644385810929732941330692474357677904589844716071289469736924613345944496141321091970434209422622708002350736901740757620411817617034750374597398265623784411872592404596361249203132917498546058110165139008493619452856709041858523943723539311617950080878700117277894346634822763784894781776388282854427959547899526622438735375329742010778748625289731541781712248896452999520828419008010151930557586657938898610328186107263501819557423169442526776576347974643223506322060857202884125085875750379160338828623684812606677199552414047833661716048995500788319124867510119843179965029600996676165114391097929275063765060262248605420044866468616815245083620193740296520250332610081737970096261087359933591723356577014028119316947934465605962954261538783610677675542939376153133259114413990253391525196542602639774157559621588799553681826321259867892826984670098415562808796019192966684883373063058440439049780602876020130892270313731457807751182814433189292622313624820290801817032831358372115600689035893629335885190440777849363690880892962509505302451051875517277519866841801922933393042217993724206406020751073584143676973863125439718894253047430825757921721242560286176178376432507798415925667969424379283432672388214660405439049338613805827204373709267084163309938619568640215083517073560974745452794737673144924301326058452880008584370094163153710970931610715891252229314115272726709848002860450180715169078266512329455296547772543134402877206542688087555076765213551351333106229451827434488893726190817916173763002945648853780213393912140856367475009636126070901895047386227158378858956848374764531807798739772578793073487636945373472659404192754266822410175257566890511158371163494266915088091809169853911537083039971544595070619271881458256273381154594875315009853032124571811614923527689137439298237504071600470314648408102678533180265589130130757694158063513005495904503453461583631224720543437738729532401217491547162409183121431849801175257571424624024021607091468840126742956490407792035863424841224149848687806560394178401226869077163257642032159184576018847704864579110511885347040246287055101499710821020419395404802079281700163994226457711894456504222848064416459587541110330687648124142977151418300595213701826307852708515640533099454637314282991896762277041546416371896203077096710425355625368898172288178797289594078994661674032941919987393533581998347137392850424069643348161547597820147577780865104565622652151701109754310352110347914329892250517719838464136835311995310669197248433655811966270263742802087740331354497743763529074322524468068488829741069219914445147130610193376682791461402128255863453143920897721659492477157624950084494752372409228092302074965625119178905423658662456522198572206286460330261043868642612839332469722441237542309319274485164784228199906710958507068622389603977516887238233872003995501982160748253714505118733501623104962321514664979367333700304955104244028162086136188910739503505968212803464843127132699103634742686896859521651027882227474198563972311756672518133409819191228180632414107340435538296839860822040714586986623538330933346828960670704277716852990071595078435020279340330288645023300625819407964379079091646619133115274212717032276948116453595036310429059145782034860814176851784632926251867605570540985750569654220552993820522816295250882027637263734433781439988505443921511754240670403352808510065158058551892046493659454430444759737474891459249594320515880158564193603048080660873843494170327937899811210328736870938975191733161264338311024779455982399013009630473630158788694654901029863038909528004909517597590422922143797925926624359541664524417639945802923296092117271807339047104778564805712940001262502309636719354021023315460260485669714677729383288359079970236661211110722164012387513996956138845205270288504478107024625042248176611824158655414054553407437263746084462826737700465348894086263572362377147267370037126024238215558764009281612613751216457579063764520355584096444141152489426866182394103130187787235966172561353413421042287509192404537571100120025961419800139026679623948123294214893373019849613817648700084889896376984599875780580432122039345544276618226364340226043752195961036801545636689024456845000024741151949367670514508778313405306848092874569802056553137040650479963563314671835373291154198803666500084271841959360690788662459936269418294503404219392195124628163104057030797676559519828425048136425089623136287829606549599431430141838073134813077902975755349120244954477870319563004579810520525500849589072054474329720639186131180824720677109563113672749142760372056621140288798230179774152869662328403210302902015479445797028941532843450773884151309777993713369506640849165663472470142267875649467943562283071639850819929959034053015160266599482401183275854091366574593174265389495966787977220208633018629200273322068682363549197034484012520075614415470490521042434629001872126919113376702069725111670901593308351156836164387540898635399638549394094784460889604844949028618131114543541321002374762029169450959108929981330343749870803039500093315641437377369261224890670003884488748265730637618525154840025952036942353098550882752806471089357439611380591243551057875969414090427853695761222014151510346117921740180470386400103169865209217808562227794142968132059345270677568297296197945804930894882006834743368162571808354285705916927635946986752433643463004777164915839956041754310834173366884586497673133502034153134520243993529994061654903299745872826636807572178527531176665500423827008677704918019826800647001999093869720380884992279750260037418977843339876466439433219923870462812179446969883856522125044097625516344069727136228095937593246190295903106066698753337630866406397209219719089544825824619269288422099385388131902893362616714974402246254925569507380797648490244759519420027046042089730046514786068495298045154501500222964443169573490044472948143463375700338764203486019079081814919324038051705250729678449416501481778048036523836944308291303822047059656240359387253573015822492615280943933944502345751255613239468092320725788036514855424094288871628589124566581017520179491864889672303189025775556765575171182825583900232898979541738582826686635898263592880362457168085074029399429912495017764582593081351336596442976027359370140553027125332406146720369545241724818981398578003774731873764939687545344396882259735757792687651169459322596573884708149433055900293220067683554597383635789115911683096348388346481184746789528744822774840748780868200777958656965874365595214529041405383299050505901511764242580804323252257637315359009143429011683500990003885012921154558072383952431007393536904183695834899098120741073648351191081207301765166011471233280641950354970337719553847438302945988835969080750624852757165750147693819999560860580501023766579516032809921938225764002198672002276570249414961650917181198999515795975554250965207337728836739822646807149494857815438774828790318403058999769366787051542937881943491572042287893969914187757237656337433668193177418327567545756597630174670284203588740589255331257907563053665148602243198225115834558119423079649400604338503606187593478594284394448233797452213110783148053536955109466557852069622284518169065873230869570951713728685653604604998392521604911999110044739434568062638015086123537675380063344381399214367304834229665643911650432438432191231585643426822555526617931726933121751655598559734929952917851177909632380240397019367976875132003310914815767868685815385741270120896505116450027682331700484715238577158673604689354684327033830127732843760802670850394650996778838412036698804036028364220773455008025083312046833314217443059801391511858851642280068871807650339867357404462770922935022082422394005215137764417424073982434308905863991119261729765716062434509442261895828953855528255394503201464575708760436594801158902783092073937002098260593382125175534657275814694303344883012352216660813919834070505188322608427560240224743307851325506259539584397694225167704573739641102797522736231954994048512276938276042271790265937301360432216725974513390599286169018988795464632187255842994600072090207924175674800409543510561025792897789108277834318513811364567645868221374444284534237486324617959174078750039364915843107967970720984103573939651992117174306072711546217692662258161820751349573093117618960882012327828051439319509292214620281268519440363221358385557959981023845270048033126190958605588229019405751493650875796388244097504006342655800168534074377482091592693727330931293442784184968127965822141975243083717709875289463866935355038752153938551088331428017688224502572409724096479279811455971481392883800328408609897424919440772560297846871939681419935258750433971263818802810593449496132959613366222214570120664528934362698252422544906348985917469357065791545980018420557028087545991195707032093776444657898483000003600561608856016579036757569912589244389702678629623612757631522151182208577132787072452775523095657310473939049912511014445176561867347023877614578954793352662732861958292751174979841171483502479930299043453749131749135554812130422790189252341150147347226805447880487141358029093963188190284325803660516366103527074127458573253498694185182163325180518866254902825633127856190479529301112923361835443690097664582850915651360022658737036660710191620467053670095973067950433007169832295767108006759881757031347708125484171775838232231656630677636229648635442103420695332287342379213710617521531815005101658083446300732994175309321529507732742281391576006801210855773222755016021759069256394392812074753864279935360682553430654981451868678984251790709298656722913011334891157527543505898614648524045038310370162217586175104880606993993474463498479027516088564240845014545421700863043150372568499113263545264447935925297957398810568383290269055756215382923254191763976245256028872576816187802471181458332541168918683141129518348511592839076560527156065151219844010435197320088495212382577986081819109421857310478607699832631389436506577971524962174351923803717368214352860664219813670124348188897768125807028482031552368885061312559287982696010394533966081903192985347414535819287677919173912025800914931425483114884888038366029038601336368841359675379872131096983405334375336456300398533428526126069020759477939161512069493802919258992751936208508183386611402635782132407323854849084577048145448168859473428921689676521773565313394946283343519678405395762068835099364296978075631736990561481255132400258503416511740525515354465741161811047909603494007808610100094621099307842685993085094667782050555737461041456292104311994063081939637115811022023783549496106692381907622024286860459285160680740722485498664945197347769598788349763642373330948313520220413121579147305332161178603250103389202259351697737101629047344264711771705758286638688888854170503621360245504146204164956401738679416250954192686129138781557692845565458150855140205571261416075394499753836305849179778510190874058065285800531447170056576488802120982325281302351363110146804691071230374374623597194003065247180589922053524485522142865935371278010075730846446863513811381231846626568142430492373834089871946596725374996373324315981945352031277038177722745923309103907386950502829791563811225017453557879130884639000178344532869050457656440803733668226584800482584149059002749370245465348857219673257499678833063693904533937057512457895826352354043564093644909593001366935624886054939887898849767762702454785251614889970304249187270793868543980222884641302913561591272964756165463191298295649946794615507927006660923498741415279257295118413366042540146908908198792150592322530344642346066947432350167853384213517181222083889946978079122330612104287816930339363689475583525313042598732725969439800078209463864735723408225442727410877479554571729161670185500131198590340199843840250258720849296116118312953751943887458145452444409135415119904797666911461526060464548934619828083949355357628158866533202316543290548497390101988086146885110164241098433614669127673083009450157213784398137893978323046519204167495767636358056099034944868381162118131699956643366839986640570046831775240510188842151114664654903432147111718734455185264275575739136666113233090599789420100685178777743000517645519295232911757076668009480693699087558181131329644225553089360967479773927367895518818660103531211968822310342608843371517853771411572600939474329898353014118193196615728482225993420766667544079013918332315445728591928368038113951492740724224669349226466739244854705432517513889005458139676569935859556896634529341404772556043793186402494797032705865900932737497512420289499825824081194847632610584754715439238364935557470465217783868763420850091720610126278478045175533337664570486702603488526368452422811922615999797313191505870000243129507271111670077625327442940043366774247999406045301925945434327949085560332641888861511831722360350478847252954250191450274872817539509454335458972737250326055089460965568910172739782184007067833851962908999834982310337514612705168814637052656403773794367149782948600699237798605837033038671849867214556158921003562113771946532735863419707711008845958728174188950669992720543272499760204484316740651951287804717098213162836894895536787195778576734649559538200533177388218071552572076144853857596432543027753030790751296223622493204445427963215145780365550245685683097780681405575812524845971134101776154416888453000034366863181232820133466067958991052671885230117568667748765638776145152336303568892357058853715896051865685615917957415470052946284015157858949968369079029543971882594301394240244271951448465977141164623436943845583476552042358066074185361296375171581285332381235192769740423182974188391692565066083329772783741478776945995224629191362891159018279618902364528729981562391385062844895168543317837384722124250100959887374419983355859055337413626051591279638131276776733553920790199353641992217885296425231702162057259972524921612537135377283146319096157780275004896030286893835006729226657456291342433752952024630784044464139798883733323752442777982580628091053518099008266887246051428763146538143640479702117030961650044317554582679991101660063211468199628586716666573542062013497115332306333643326875850974291168952556390370460078764056658865700245964517937952595397385447138967644489609795376984534373585426315854543775771676581099682383393969296933365635859941688846231221089442994355520336066550433279006079190611318999169942559847818130324863491933060253297317794388248025069006918287101315577603262949936989225454794480546330545980251275732996816684550408637411765213478234232382392377845759785376523675921822828739239904111023756066470978668546126195754942018068853209548609272340812321203405255122389830996261242157645757314265828952611230619915659995820043477745302586221055913274665964382393991104371847235289708733262991866925070371084082367233427660938259606167219027857262576294942204081912260652613999784243959917970029805282671217584453644466157944373638647688451521325136091083345076929155804290200067171401859462823364595966212625630389271278759137911054192292156960672266168812388198476244679149816764005551101211577626415704474618226360626029387498210404357496060586838603595939970739843622013239485373245104273609467750040461458848137201386216839791874339574419247570897992118586529856099564238633373000544673894788568088812768983451106734769898395595169912234090245850705524798071039765102197554890544560926650551501654247576263045324722566962092196759261009247251957159585853930980124951812238688876312161558120818001406403730100720750017399944753365731482893996784599586517235095438493779280305216281344846226470550222240840875918660765332064692944598035329977128669996473943537933305441117324258344507711016143697961163577326629801744291628799946993976241342796797567238352335804966359888677763917024505900039862684098207091541199535942153985837272358026929342689438335903906946528346169938817044368024276802371231404625427151224440174046136070346520360495711125742485932795261318258908945012424377072035597601812972359590396081614495451813258031284462154275422453800849276764466029831392078115947559122988902688811578131243177483336097528331311621243030044562738295542033406409136638870582609406983564803785798618053521828005093958864527016533517073690810670042274455866106304743372491132681892053294279510016842942593765993881258498522227727599552277101881517137867598484935972600204655866582887304234312027875980698595933191211658307653238803057604738513256498431149984985665543112779587330398967300590388077441474824945540078182171021093789613129242399147584719283701664788662334415867106073397749612904846420354564293659757596914546315932776549103152250085086262139075553754954907814547861362372186635532656729155077555269428244739050848541691361118605940966266678296822745570893071412290395977005139294550109895950816573856053068374205100922331801673655362042039742615057887285402661066040460457686561327059706065155264751675492844560612264664798456534604916694416114075569803268341780151129665272356879985338050787366623207300270648502911627140119932008198511765261220567748231755585469409708091396119431112776364694471511291718034882350389896599879275158807881436112028680515637343227049809360778828399879893758184179300155841416175756369555849823956997898157582287643296413807055675152477747152338876172633102025368103280499794779971571723803820429002017308497458280696197427116905380082028252618764270614987281664292881640310535136012907301951822973043905620725046925299177307911805004271180530007855708722723367299337240186067190764838640311981474789698046946107111375788589459689407373715759959668496155854117273918094977884240301234676277973679321334432562556712744959790239772932292343220811740770873080754774083079642637375101278987028335759102049135147627569562556153808941802948358167039333900046933341645471196203187548287718384471614415013500915351337609437580858799638249002122309592277295131057335248465769888829100236692162650713042914200918802412001636807737074121281015549349907333471602367912646019685003713621349822983596345150420446941203007501794935535920129065716863404645709822008364323350552899388080765441269467024724664387772844349626768163781304804907668372039213053625481711799005616213747483170255035975181291470304711378279575337290234435013211013149290778104895961927631190933190859064985734457756054405278659672751308373692534288475176742503960250476340078151898455144289048949694544613864618064825284712296642182521204287980001872397363569265929747087381626659095324097919256163770725437874802204760462481330099127699653101403249798063046463510506752816636658188772471280567546668517469621291211303797183134189588671065891652056560845847922617438976865578448290257275445511181647208021756691066810536019978499946405609220588599303231604931070842719561729098523204701561515445857279932609472308396833041051106496430107210101263677841045684517885960489427522110295886252278893552652307247105228647289801714115970307774472129240052470650944193223758591318715660742311244013032142640553247186208483850760807336262604391167202937646635232858285225753597692942214046294985115205088644102469078327399309876722544393921317616535900947104712882164645759128136940495258355811886955185584500813099813512691138771146507123002066168463424971924476712531329055102363449281464602466243150039445047604250941484778942969461169798233733344035971404530250815758797529886570784002284377589534860674908739133308014837466570144607303099714392751827846672483218286719515997935736412029512822319575249497478917042413485725098185013158741343119931595385769188196487928521089708409800011549477516029655231701430421500097980371794358632310213453718018271152118729200214967141875886542781723935264884606353709419404876037811026619920508207393697418799864405299376359073036597053476855736414679975722599719161170056312396373948895877437851767283084774984385096855799332106311645266312353109432614851925161071522362896804736486949182453821108582490925007520477146388239495759071348661907988891998518760434084811689577858108223435061396285358966047656707890028545543875354977110064676394786646669957752729832944337324112228143686535320738345923669562914385320723503346515098544236963377294778969482821056745552897173109274405965074327190034824910905715510633663890221711323687830778661913568592673064152868158028137233947154350870573912047278591232785790673440603711489240090263802377787090172138389350910765089365314113547446203525716547278572160207642021389698993299553335349867807130668287423439719500303775336219440837032940060245387549545808345254868169583161705321552978411200885488205874766965981606580634843940171774470897624504413721550039032018369265603663774114529689372513201286534986835411765327065775604890568336619384020790878303900154167647642973069660066533627131201606450128893209674354095383593783748030731919910136710511854404365280503031826730918041085545627326553314286432719767565601888425218416496118014408504876701081041616613549803658640207915027710169799066137493537891502453097092835668368551358467057477834065923854987323526952917804197248118686604752068496677679468044012945877652833132131234441273273658249221131599435067565228675909651280796913648499624141389227326287741190343214805309551621635678144665585897081239815285755099838504776576647481797585691434605756937534221072885350674506928027203986619875689677400716095400675902631007625381851403664276954368216613838956858806781450402306284806669736428013799178419462165683707615425733413627809997325301589136817693219733131285114266796791300180955262258831988419029740634657114349446071700410099131047830483172542401837073478269884482085110849855288338004351841827607061285846369738933695590670220591816454810439774236416096695438698820120916515964617953068233730049663145277393229417459823737333362580357444679586428632547523697975296203249600738479312255007919804592700430165707096354622910089920685649795866857741361033142424372316266191003149041056739928909771911148001353714802445844970674678675524136591397763428953034694426526803674437226084973208602536796098339069237366279085724418427032085578451105136302201164336164409536631504246248260781910712306134085453144250338545594817265349366051636075846427401296189633149187527817112462090911690134788419163694211352841672381511823597614875204292735014949922373147077729170222322509741398585361378325555063420596571886035634641875708968939092634413777432413263482491202689263199204873572416363563557399953682346138518582622093009656343983401463023723954355497004003509286610758189616290100001839076573444763279704714406340809933540874229560321555724624076790223909003895306629570664743296389426297654171924296135212167441739101926845668140588884971686163390387761218906629468316472534882212539974838454072910309271806440146741993867058543775028153733548557659516850344647293875841826216454778146820669854744251866553681218876348997130390174643128515285330650751219840521813353273431719887072896185182568769289910230330041238177399772445627890638713441747117859250849471810610242574794729869508022090053287082666790432891880178597264617536440173520172018883734608917517183117426915205074503052628677146329319939562427945259306966351875617682761214818123702976720850974044310772520927256521409805774807733228524051867205385757987849552510699824966444644818099416772534576489434387975372639031066021062286284122016925493108878046728875333460233659197620095281889149646287551503435072639524817629944517075529266343125815209862310273701278026509376655198222800783608991475563247025182114434590591991870310268537323019405421960555976582044624927838065456593713127375785320338515463200001475734561702513365057940460936283770656987469316273634443584559431725604699292252095372363816011754814507685094593501548598698671493984577889651556930567934153963990339124374050967971750714834112376235007096670443627141190533069653264789548601270231234335800926151248518126604150139788259727499369728176681608466993909493091324758537491416362368458561127986030892876425764064112813447237686741571906928969924631474562624677668985156875639139350189360474699607041205950435466091700246935920876985280701584556951020342836820982906102868977796796782340327617806702071508943069717455434545091168132388083768895423032821550631265090172211593578389195667155881847682906518331839570661936992614063035326933313021460516909585541470993906299277712074682559467364925904095878101993511904196417989436274878039059583472263475234934373100027599402040587116733193238351868663382664310078562238970096389993287611860463561536514133103744386317863736635976315963023105038309242336440684998628281621419357253394346695324361612778469993255576796096720470064966457197925478534919554756185799614082252278529139169431426179561907383153459345314232255852061007408926273156985771585628873671552060907003760936835611644204578424615644260776324990018291674685569315354174748039656839703654516440788053093485994912311797725688319108036966788440992499628306124768046963484446846097769555887304773794477832801595519325971009885640940269764379115867990895473425046689288884614852724905701564041335397540213601641623661074494634984111696312019853150987018908731628420981898814199597397544525611006733765481109828198951521900306291503548267471467184538314690942805730417024634082040759629328730994497165497515956496784714739816363112856545241072324025508178689588287296869125364263362450228999907370851671684031641908265840402560822132022341905017349881757991264094312041096822445516402637800847880315325137948127514857918268650451673633676631636629232454794807786554863056679098492380639460512442852962057629060458642578400507871173215265922227287920213563163466888217193143473016936135848181149987573707295779905642511384401365441878516366066480866524851427685403889761040961564586132265442418260914913137857779662241292491640089639681824638897928326299550090448598226321588890571983080761751512430071441620917672062627130246970210716831765888770506658184249130661756374735885146208504868572814632405809748154827707522687372405299964753457349813985865389718909162720877204383063366350835718129652887600983581111054379108796814005667391305935880620113542549217904070744547544417003480205972802832232753519563803979870756158294250821931457828769929222991801475069060152544369060150063465568270910420755372509042056621438117548336042549774803967097174082057177573262547119115191085299817182588433566218860584664603422931068664829153878000326977569608091426325335156737105011424350536038935559696659525481251015061292074253207750660046724496773065262648789090713000562012934416226910459535123724086742858034586913876401797038510202601284677640201965139557150050847493733075765302698617948227391465606796366467390228364504075769441320312039001597613177863705284559658301619395163869344589735303646805013185528481676033664158854704319203319356455048652296175169586257125654865701250266741744496995921111470591045382364770164719658831325011550335665581404913265664727693958610083071912605288505700792827628355165966646526101986536269551393368302834020832400590742674484104807664537794600307436829962147697528606330244084077237889970237568575303166267605104282455527329077975974878186268607524525056258638205499864818061617956880050700868852055395743760277540861818880934270390347752418169797995168724738259923999248309408459266552532146479262278781995987221486088958126768294524480298123246154741677223141370476512756200926917470332855271698632961169519705357608151279807453004866420273570958977260863270476070662215810801085210532889124070651752275872937863028642080156366187032693733483295397005512986739138370743567634969734864553650405028532094827911094664803857064319493461889484738490426667019865758029788875307315848934909326773185883288682216150986458298140972591077278155020810827101096622396987361049520231559709895217469774140201612957869428697851472106893279200806772154924114327292178882545698170587286499357106581555216608684297940841948436362010448317253533208340519344715385961995568198453446634092265185565996237051059582314742762837765206100030735314006555440488607028134342633555546059789043422728995703513508946876265308571534371295872058920644992182911395785163473600717041738288327086672315133012104350301254086295039778038144135645796407170254952071443690600718011327421112188759474827393812519886775886924736828234539897279009172270645171094177598308261658974935347054856074245063489822309478893670399117539389750734924688125578977308770004630575798217044224300809716563439183897380430558035112187524692123408344372162541328495924833547202664676708546357907903529133676916406953593143913461947950410409588606411873269336432163155700765506521007547743647234877139725306776010776663447344734769681432210888693297589502851308615155911103328911233029737519535638748270985925129236367529666894634765792947181877607780823422927556461052439795173637917175990317901603495876222170341635554541307718089517695193895958993556629253966044440155084169638404444695942472541052486170524129671682587408186864566808135557405911403932105850550072374607806918111436959633284607755035090428417471216872031785027255224736798098332756371452775458250992323837882874562983950364855995375729254309158474936206524837474035686194552402809226789538164146271396276551807260230929947504106614680412762520747538767707242420313341813080647472257966605965037937722122266501503941723078982431847115977495987167028584922496513484159473536634611726200835128587046504185767696810574233205079349953104615707960971057608745307710406685099556823683892932682483006055087593392328526248579464185560688601547252719111618016721177426897578172883669549300368597505104577529979930882018659126965044850514598603632696105758509869984156985594511707109392603510876044216334495433505636324528385914580370732538775252511241089464984405612168299994913727364194231005783584214881610464705584017912200908474236517728812074491743765835080423809657708897398945073092101122913325449692850712807668028968547110137323646821815085481956209781014149083834686139455352736058202375481519720614541873091262171181259395470454921433155762314952524590874266441188104591948397586377914210217480808494029880137955823974264692978931890350586981180784169006276982090649598479366138015200255167040350147824435562904972355764713258130734015473121854922074493386807075923847920443541943690645157805381228295668746251437302885000732360129778513603819825528858559488335614333755530603023023659208038141608845383304863828152875899468517539180483263081273310885144315073067980592211858816807237658790379655780156516184574828772247965448079465574069553141635709586684817875602064167143293946876170756474362425894166890398340762167448925503700723924080173294933753741882633846863555433232823595373929682905966157622135341868194904570211283896085740875678247753458601976227117172941387133345808376004546525745926190662598460815753476858152192341080980786712687502200412090223661365665506988716844169873010121350887808062265439697978944772264991376626489758874784754929332519473521278505571166289608134118221665473182989581009324876857757233573679333535076161322183537338044797600243959072319046253498524620222020330695027146222130715842597333557590127312103047283630777428263030036448323977619828679701450408669981299827378465997924327917957241030285248589996355868267773834976278845736158357085723469905985748620819037553066855930431895265645990597895087145058577994613320149924717995996623158037085458371252300323551510557297977968440591062305220307390652843506942411495649596143639995238854834631306230738266312653444122515285289553941875091150562369381642452128829912955875453556817372761966607735184690050679868199241681554973742057506409563745501127638268874539656970477882550434773199488702401400020632633766621372266837553233151871720951621787468766110754980971319711401543707696471475555471235861276162476682756469793615343706990752166119615526850181782450219961454047958617563773738892443061190424535048370288921816284009239517951202219117132830872192656580023088839579829454567629675816960711511805924008417575571631188052996741441882598705881596090430043142170144060665049506695930464688847724151147646992024033226803559455531413898562415791283633336517327636805911619397026994929698496980800987798687162731667373198577817059180899992725320902529942858624882543519363768239605478093761144405993771434414614026226003056946465573373372264814025744429636515757864507594675375836569670299911627302127210927276226883353144777432597622025456619775173856569258349418293113691078865328077018184189310318626866800736216989370446621092546806129042570800503634557485870884027383825471320312406822592383697252048283239953009421342672227464567935901246231336041506181115268347332779646829192885641824619888084769558065252150047284717557956207294708161668267118467930062392242675344405686602138368220545320432508610254416025963004646163226612436681272462738678233177838651007660571168135327787458560469935493416028525214023006775087135222413239858621730832671357097069623232695298873962782471594040378735408124083979401173891630255123737000947934354055323233846372543453692356773275308633328767586794341019504907324950402420361745088751263182456136273065222548571547012776918216836064105441736334295774575639905975713072812273753858178794950627363640333753202013213235989377900555034763112546021486485297551941074739159769881491214809609631825890423090540990012329969866887781336202563248506872480225934521941903673322874907677181292186905415566286813740437675871855246466272690356712320458793715746013897450196451187099752387343323794008979552524958549113268830937800558321042224493856488232892862292399738852637945880119563621741947442117635651396545247698465943060157389910900155221545908688777517453671585047048014137827939216564952615066602316967017736769772853842231238141166471269150157940208165552221479598396136092407340358269826600094174767577044990317642512235077463108718290790904734254218369245147917420671317434683780081398982392690982924323837301616062819112610074560173863529626716619334887116156022757457441068065183844191994528566996104974938852852979711854482339612991048459250377098378036509739437884723797722114377557930201947143492868285114851044975076601531544074979242709946835213938752739302246769090634944986863055197559785324870119662583412278573430093911213370072063167636306006867894585861110717780257834694639779028401307486236780791770117046856205956913929025985637677336182305031340845107222192088123865249796981274245429401363404794720683632853458824200761809268843020051564135958006919580312468649119784963890576333203127703648272011767306184687312503679159009884069826723122441731193892893398411350159093446983252643355882524041973457534533846798839419266418750284541395321120687280831781476478306199282524312934389615641237527102974885072738323467439471072135437561607699847954219926105661671249642944895845327450245424979533304392062915974073262181691041234922355810484171834271611561810136220777433233122541365246624510229730198933957876795927000303261049472297897544969036630926961951346691681709602941791281875879973718199635692728295917226947205121176361209029408032940979267397869592153432992478650754661454784761430146634608057668950837389063950081381281111572175393137228493185793551761625175621947007219710456565968828650530571997603005313049881447241051362284303225508801986323406510383161784155413962913990518158790276576644295320934515014570188767785805950414423092826830881882432084687409733019322203098160829790528156947173008609410883671099489600133534422197950929035379808297813570027276252655386118586092222652862324803029549882159401470288051856713968138810968859489111371294801455416675842651654577629825885704298541239247226411461056816444442800685429374634966516820675036865559581329904266538709281238211509094426749176116214744603691836102090858370320222496314079826222051880906589416151273154193612873745363161082746221471571773536063275581569148959140176056521343209101831904668219775993172123908504195483738160199900518418427756946273419636081180454712407553095273039955348672385502053325267218017097891962579162520578559763819091327973925625522636258214207204827695566768696206091446302183953904496787148554133766716151104342755341805200277565798175741264687390707650549720926418071050120232016142036171955808734913024510475305772549271179365798170835683619416189442621419654749769414995930098060306271097251827527957078160499599117709353620261324872125003236570230076228383052961625867580424574768014144402026590373978857899054280407398823255449386555870980326945456292869591291464242552642089387533982130659995583500175371084849348348582982948166715017165978039099133904572421782393273697318235170937536899183624035732328013572602036850310575552420899648249836154890615516388275156266483278765177690113302481028902329585776420196988830485958796581263080776513234338061509473868113068272633421938648568941534818183066793097483212499672777351338849148410925346644404442848955098238037798776382401563150181732424489644521008422921937003370381571646933634068065926096418434119599083027406721763581980784591334739809310459646044978030449172213906692353717138679737562105412598137416163766270833322592994086017665658877111628471591325737736895329795703521222463866928321519174125648308248028877207759848630770372689077020066448753910485873829813241617361670204426512015803589850651016336717581519055027214139487283626323818752622983217624078467401666295154361638427346555835459384060627436441987623034449474967894042852371693753825438409739568563898595037421966761399533150780402532413025485620531957358622009717620079230779116085813695848886929393868842555680811018193449114281615289776724798353633139046653620059420992881362193038443492566446089526316258071820103468121353869365412274747593099326951508441566613899330198932611100573724900332046973407000128279109023362907702191699578830599482312528602563577966790001974209308621591110406203345233006234179372351439322626215346055488174804910483384530030323229985185437081609601175237531474893526761719069670726266619096186276591924788546989088826246774374448311359377649635890404789550878901598828830694878451847208921106018352510324000170736769717756030491648462626980268943816914653749635520871057070723919436126280397845264836388581218688326252899580966036772754935068257049399440803225890293070400937976301073031755663058800103688907072705212560031067290401840053008144939078379523116029332755891332014743870209719259259150449782781343634018896236838435670546801813784023475480127035964653001652374063711744984753391420867520276698672867142420912389995522658002829224233934196028394121980564548021836394813763726085702401613768433294919603320992308295779821981571889565646895579560776463215508130460638650431455377624532255551643738706307731267141655977815055029425131275072227577070900231836415780095820231575298274082677721148898235659330405171837511535176421955684467541031179990756608236922531157389778830458282913810652534770802972910376474603928500409495772292974365638415289037762014348054582512496906448621631389057969692220406515554111019401298128444582255977776171772222820510895578363509277481039221198800991391991647593527151124174990865021065606774825124587410523188839102971447290013010043588626496637974611793039245209924660524218006437153282407701012977242194339281267515329369124424759700166188823976554432990079773402790237938065879413688443837850135647015836130313517478846996920762744435872260629326989682980620997331275289138852371679521350691251370054384446714526035468916559678227616436472382484475149222644879542384764115844096168534246627362894251624834703258268330262707601741871659969833595249973547370729214612052310870002909384816443964975493126233438243430042293412631989906518396032004521378779533464573883310605054017920279035276673402067173973069643908198003960820236982056141699568252785529441023614726677468370421171352334173487601026887940182982345361609612745405869651434004276990858941665323298587098845863790866896554739997050296918396086417706191584595377571910777739184320240460174016716442507512620130938696639016974243990498887741785303101859891011542567129382885469469929059939069907880678408480960367640292958823960641335070698785184967728039890248960644136292337800358114825795535125826140727894364451280334990807348641336325702550521868671494605363115646533011823848171067358109295475748637738547457260152972942603192471502617770676719069114573646611749326286897930722801212305245711022559659463714733218868298071497420654626734779546831197038729111039790033220435361804176019383044207011614742309661884519945008661486971689861312658892227704090639504108775600515850057462023425954838888424499408537592059734099907641927246221731716234162252600120594538177080219385100249679606173947567461689100561366157206319090720685842522711194163486429460607141409501338795751708920129616513597370727567682083681485464604280144409103367949690644471998066871344707628317845022405846768377001262389993518583050136565572327469740904992866131018401388545993272266244362036598189123345276367161612673115347275791829880010881394022648125422330154365652479880069416618241379086740794427787859519656290392745243465483643358680082122465416374891858122663153586976657134236080411009490156947857821750219123353704679017587563195886754895965290643678765258527536157014997501320912902577840210702271853008599110427577986933218580004373534059288973146165252722879007135198113114912821265367137298073636288232620197416456485437096795614681109999752887347550707332109689861376187876057345365525541562967515940752482683861706132463390699763638649112769006399449727279036185119804802373038875865176586204370846701027037033067133765175999701801036612743928352300746527182949444824491313503093505431502186318327425972588008993121449855889491524345043437159460293611579651190020964248790644010015359441447582237213006674421327768146910052850991934930818982017873241930194279723172208906012100527600340377107156784076996755573000349882886092857012669805484111143248711235653061787949992094560805649022961450859499740700447190601442068423367111843752670944775649365957484422812759803905845233281240210830937732644575463340448886905085644603162473143536365093727737463738817220184282332309879566910122389499096906881660151595966328750476116662659972631827933196222671704297606526387041492309091876809717652831897447731330930211510095846859527034522353264109628925326688544402185100147503501033916179734414828138400228279216452617110758011193789192366185992316651007296330634719951571795534663855731902242942224958147167290246478978176701515756217940968599360625867411851515331366859066354590193352163927051396193267514112588217561117317705908266329311777056223525862182259525163651683137174936660064887692702759171862495642740604269414040526628228607548743872531973404163876873266112019162000779885711069314009785813794154093443816349974477394830202242628230275397244272347455123214365804756516527688821681432338915698397063469790502490865502563870788060799117881117480922079547213811553388322795849395396959180279182159486868298611370745190531751899478086379802672592148112843585101604945125490851086722455291327242991327281846899757327255493721692421891253920613358266870034851064776200651220576194104799185312820324231711143425182996050167259562449371053183023647763099030432416685321883745439150598765708481591280987646330660719710343247005183462826472603333948338544854483946251998448916297623029997275244265441249924169792008782035999991453471934461011271107167275062911335037033274173847217295642943892979235005109500459122175880388054311270523876122282724844522988856098677212203063223903512836347176196581861888567176781522451802036286902723220039590864662038050680215537185929990189262153761611360789107152765068073311371421196621663512300753956546071430643159702025515002577711135605089218451745199865053058061599652296888472386074556258898660236054339023806201234149272477810220319668667838936038971166650521532728638877875073246686980706854767402058741516238481344833496192728568627754998212518713195407776528177217380434919498987111906222362657112818915714300555339684485424905567357284527853835228131511497257515576334501358108850333205693457947923252660041812147509457363529245290243880850797626783262889114800788989707313016008723722217142488480403571605144726077603358323810026908686619133014678474229424762844030850473030358741415530912845891105329082858069881878633103133745088705026952346765637916675490650671653287315245816531713972672182615948542944026091624840427560574297135274695003012045940616442063766121036498688642344150470595965688081531049391997568515325331329004297652927466831946370760046184413282929502969465436088428149768927748835452181968613581619185889637629379188979402290598250109882944132368231517681488967743622698109678311705058583608261355684284242120822750322306263985003480404941423929190775973304163626770865919811534894075810970050030874458247849302326575406745141214477011115467234736397640913212855410745974185501999790797188768492190230387812604774816963232473257630168494202775292273856324983618153147941455745283373557583095041371017298103134776640166572064350587945940255597078566113751648715848276759942123953697391136661229925835822955327377413906872734692482713387478658100544231844286179366190491048382856701776651668975736934169973333511793086696490428536533017815948349766983709067569837243269677235746182336280488194556298757910754807008880857760386995697097978143356725204279319613780454674092568242383204370176086003644905271678842155047894433844530304080218872312263620104664580809936311204460684042048948987353240443476288564270965648033594110133602050933644769054410397040683782148832072019739231464115696874652692904727071219239347590697983777906888663364056264497723967782423944393903015168219116168350387751278281439423722107836009810673068807140604344246382105966875910875646695531540034101239633417024232153967109225525446717447580628827592002130385705875723486861084884155197400263623046497533702467542254105375332030845865319758623985789968834305499331378727880947259102155384317639152155143347187854578925794845685197100287032279851440458077894835322842156647983606346126061801488827912434122696783243520081670150781099876106245770501153454039035485456062574825178031923139883844336564379850624962510480266501675008114877630126811661362980119579135503463674359572989516358316268599124877720844613765011060631104523674139538418151201764039458357045352248271743202720153894539319689590147319669044234536415790667183740999811719826110746262225014524385540221294328193627756266609389609882303585241243367028829619879889437465673214504742179337691622999129527292202916721916193850224144494917948249194560028851296060441678064863264114770536509601910296080075531008643350966138782321585693594473738185744350992222336558078294247008172188977477470813033262789003960746414146136817121024450708040870248717835419842886435543855939099614954412168647198536054810032034194002872858703626025098653526076609573120212516591618347712898509529390625334271599699097658282701466585691830740146135969858450933527991947240996797668857802841228097758243430174318396280047967197703856402815566723063141313985837941849370143823533847672150380153310936587030664128934209951055786124505367910388972990491428161551487449545920424800014699373174179720901526016595802515078186602323939689903997891067453043046468422839455034905108565493156322319674700704177086638187188851536830606596851011610721381582110038605082841149827086649088589872992131029321640234771243558792800719075684619935078428740866113290163911541799208111499212493878624439803065381926354178197083324128154008347997416911770186306267623242859515653755227322494330483126736623721669981610475739252022392894142507295354843502079891104596252286247325940036548434779069909370821715574830789450839143861345965034348745056802416940472280821146187640201809578421793449345370390587029542665862231222068223595071998043207399356354530796969262724952888714940387678101492750685169137696365401262457945572843491531036383690631647251408701912732138579575695931772460830060771818828269149187333178802709408358000518785801982240102756435285677360754020764636779168558090004919888491769725438701064221561071537101077221340380860080057917352701311398237918977027004815899598281854356012053779383257201065567305037488917948656927336394710519250804326472904179820048861444804309431619569408950968415231364861923712814975648704115982055526502834561946086703032167568601091325660296377223209229329716685119825529607120570096875235392385086356246958232342045743002861978656826360913991268798935504759823171813703128790053227531300291745678691964296264434234010075072415251071706559190622085551735166617889455741202767149209037316742377243310224483299704623993178655429754730253009918579658007465923888425184877461553217045443514707370917851619887693296640103494539354812673790834347789908084315398766618165262363526548298586404385768345869561526352400573500964339896646535174111042324218301840042508323623297496226539652261814832776213763294099763008448009128341006650228579682975199662746285099162784896833886990591575497121635864104207269135645356195409302276004797837664226115181387474740259668096233129257102755713408055845844261561824811149414686082953168227307170228131419758664968645190305132874234281743951068916879990419265135949823820044606728944233622068825449697169186825624327493729843574585231347473779237552681102075545651994261155611405683950599267962312472544410916867812861912255381735702596247504440848133919010671534874991046855311609599184523426208787694911451767980114112411376187390410437126883172713584928185668368610629139842751208938679059400610634530355499404722850964213207101603092663668464989643106346541283197217686826925063094118520999954468678617349439402185938589572827068235219578970702069595240679437564344340399617898843917108238630542381123336251208112642403399409222321689695177939922511720288092531022354715377193976211282584669126798655047987495284712328329713535484817045139507935484345009251315599439553459792278543491339906283904771649659985461003879538996090257870040189757392989409012636581684332287684818611489652215576913766798264679001010561776400262488955299438577229515825164749065775162932741741938992685726563333846151512896433313731727829293210873980305785098013573959509936537314162521908735361880191909410224956647677845579853249774352229366896611664231538355506172254599509078896523971515579161471217978821725021983402390234618422241243605854559694583689359702581429194603513041095259908617204101256736006271718677980641572467685101555041193766871895655954022618030670780046266656458200423002416265838442079221336516646559507477947229790103205563773974239817339798028221647543809796764193736268836165428913479307652826395047703636385738823332711494730647845081117626106189857374792180916206166358285683072974941774197408315640099059857356801843900252216089148524861549395584792331037804911258589208004233237432358129972853260040191359827227461490138188305591683631740251166462945865751074499880459660580320781295205569073661273680292345837621104422304559278219885182420980975840229701447904692027889121335345389422574964138527104473958168640960711321825168800944011502631744341148054737161145780099048932724885192921997059017186018506762498548309639086157079466517571732507786768282737716419417095270469233333938546500089966530010813551318898545136842779617107621210437625298864019763599163577854411969338277657219032288901764850136385457960230653650369246152765284014815075031661844359182612776231155369250458974357937083223158422579768139485587537381533973891395638543696214280295674277422190497321011684847537052858635721521910655510121470122685558698135566376280661263953013365772332304165341576158212303714476930350921973103099165165577686451825763007455334300635739310371482506841952462488946764984588238557861854679889120345938156056512278248945244023463744859592112824802725599847985624656290538457579219261549694062768887610474749541689934286086992797356660375145543539920720888310258449487559039784513645182594113372462750595487571773440245417724762209458992713802188071083986040461801796588031428079313570232707256020044716765554469630448884673391456575014449441056023103035028473401613310787542370413584189187321492831106638745340765981095529275828687015829675238984047029326460238099131797604477996176351655647663773713350690261642800651740342341108695038469520343880469058369866274452370031047839507733792639694755617939605453843922021837813227447319073674738479967704866743046029174624103575019758326676323303171662249039242810395474668611324821901660174176996733769671031258434065009334110010561442780050349386631685557354241687153795359877872389970110863096803581629528876996473829546206625461116137448239471556622473814403974478048803774808439643058179802796308635594591770237007230066369354700154058259448231342160650727540066401634643503608140013685505449383385666557052227213607890017325764695949899778904424265254738499384289672056022780630053962096494740981433366796388040769721565718395654764685808645348399342186762340917302910027794087774455237726090170096886340753948473990332633020823529766872758006671469176704697224643746693491176370360082374380891513964699627943552724341616171303570602114382454190490970920444381993319104338639670249820814724070607202005519965829665198723473634310624515878640790795614181167572732299090495080198479218066174908443499648162973713940577384589082668615980333065275746712282538893861542938279053540728083975933617785079917646820016524179635198510144601763310087910928421638861599744336060837743286483201824072191178296604424805425659340138462075166196762038661062200426665587438977195462112889388448348474106573627233235900357420361147471357448739606786044822098417424534083953672336946751270331218110263558878473720811137288886759982022737316319455648301135868493384468301867196486908328202298930344889717244630360927866351326218563065825339579009629830475891348910778083327538921001166320433106056456912760197577938040141059559917276439554184907415894698836289042981386369226993087221427967657433222055919995027970039172047985090121474276767999079425350610968606874773731728843998510706176454165484565130753022546192173873301599429268173561349086644985985324938002032825785559889461496907407337412158012938557554394346410037656982930893291100861185693965877720836311822437173870860041786196410078229047465004053072319661697657856194873205500259006837858770331803505631570053185645043000883585269225349127815916950779210157137023376706858487540817263348564750459996884822290257540902048152877389483272323457633251090145972991045728016293830863241726727755062401597839627263696697930022531177864048787484104013652951584335890159137098539012517506724310953278136477667884981867803366561003558066954444972767770633333848186369786298271127871647071131256737913143029891961156540024262612265426746403052687742307037119948444497824983554915560483655090659765918126517166110626491662694988746991219813373430426448095318369485020120406272964629843853879074505510627045911891169387191937098146989385062688818615598521482193646035698212646866536547524338505217593233271016526460313507479311494470214298913631238213706196028155730359310807790524535364866068311508658655415594213366528238722524335318157856367635689196208764710385723263805419649701489585594250510639455460499655284971275671045122565043493224632855202266582765109396382151747643958259141733929894727192791768083289863906258807578147451746834988313984070025203052620970714764610554725037839601791719525169223323685569502948022413923679018785183719510617496412630180821295069261698109470733004539728997551452625005327106289610226890245729392285925523888770537026007441564914626072312192555498202882136700720349554025857981938808753780523115419500805294100135999897704808967300520621769859166434606070009884923276088209366947158818084610146524625898973680588164442087530246017354455882948558112269380531051487201510742771704923518687024212529766846415345189649604154456585053238800360685094884362897187459118616534596401807464800844276334338901835600689698287770152629920571981703347225201606422399561571001051692264169383618479843447791181271209972514126656831770882537297976897739622382717624447964605744009536976243086381631918968402679626889703521563120643411168969869171343975891583060413586737067910908692074720367554436376324382534142332390609700797254941025326182569377459759374918323423451315032233937686505697568871665289124917176761024950492867438978069074193626495830658233266098249702986500303681033648739292829430623995512338009812967117875640724032905037620538182277096324982676380323177481195527636777684727825918645572692181784290916681714766942257541839552438158986952338386559963205210957772622261376220305513502728063012358033148584823317770032679843268534549442711128892645938432275359133644523984495216370223140984929990134776506016750071226131756250022972970872151974099826076943160969642177246611088723027266475058008391001002143691068589006405092320602770094618635041337560105609032151446191335700040964789370905541152689276607239740655824146407184377925427613020269099880365984651965795003898221539040017246873618928348512151252359812149741213720752179348136586177937059756466891342254452667461932447422059756850810430348750082603639912474261375983037399181375279813619151048599046123564070787119360417879992891866203739123600313597808059621332433065220833463198511282626720699098981299545775918635055917827813332089140930347618963329081256815390963273293194715221470272729192287171330603768140233712733613149928069380998915524761625454729634796606994498858572919711549288540724824695667074980278474640563177586450650956757820551453378981839051407213304135120765246383123711096849170990653139347253407702349877438518068009557507484098915114339064134885776064268694699236252654547467747376194869113690838700299576900149721646442324067202985955793730193399888010459213054034561777183687704828250861237646971130472924726476578126436427650028936819021184605769710917135465403378477157300512377796675918705711646052202613382670737253912755348950243064709508748904039414819377636940106902711008125607625952559592708783169566065795595524947747372555754561451853326732630306511844535330038210922503216721381658590876861666601261381832533826827872360408619292605444258445689192034572025054372164145602017396298375524921068665378544245190299513914559412059743554990268574562391764453985672660870772567682416283108441727153059218872067700856908219286526175160846765791314219210505881932921481659900548083445475163902998220686807635145885793645262486805712166372800844160533461147923233143023144019659006013736333561320518686145106789294829755774723281672261563589568976582604038993295875101339128084581293447882027000019256891081067762043052516860654417620525615220486797709938340598946664595494095811830062188319897563332510784787850108058589809705115308729906928684927234574964502407550446964651596859616874511499849668427052389063991028824355507556931570634788681640901978229314309302090861824281131678553561191348506396303921577141570895615234422579905480725438619745708263331733821220284077347916402481133548939168830094648190185319496740316137975950752719956830364707935449840476952216173522831827495746098929686433706024073766887366019513707048043642867293012718825633910468395066105273399115965796055723457472925293850371849607252781116302195323245493255760428293532090044662308738473815034509218739529769431623146033552569294994446872785787400216297110000123312842946833003553157684195767588688828125790509890050174999201032079950092634211887268735939444468724851131719065455021246950512550590128063489498206809371909907497078641504888057299127831556580639817016382195998217689782409116159871295116529893775762665789125356962992794067120729795989014391686826218510383794582698157819042100722710889612303695060693962410414825097164150347092964516615067920116196226258653368883103675713888201164251527322388093954600885128293117848154961903022182327948544931634440612602812849632414979726418296145001699979252814799248699834877738068690873571279021296002228159477907735382651818200151910095343957690756137943459053955697231284592197520070651582916914232496113266791817241346292276683536776323621817448789013587984323370920022811376249105820852194585269212823229787824132897090015703204240026579096228084067999443854289545660282697787293590044402602128796208200658045660700129096080887679439121426407570021140404363025292740647065192212205852286721476738732928691658173971104161305490890847037973477574099157127236721490267369633076124673974086923586231545618613749469701916296434619090564888625705517232644695079603491012580435180999674662290821293033846619609827975533857518304249405960706189379454005978805025270103863874029070446649906425145066260099651134466851358005658935632915224636381666317521581136201864496265610983098222914485937063717041864718542636142425198139419228180731250279260873614984421053062412174363534518998255107159656396777731978609931876371518341674272793797045902503782631757584018547303627142619082493957019773564691919033122760685547082832958502757684029216764354784271767975025837210830563585471139062441024515348020455550465537651055698321377022473836788401617799601764581741117765453207331232283285147678540991723872406258407153644827069586135894691762632448764493114345176748616902198579510472394489247886627682692504898660754541044586168719612409925334880544099141748988973677208303860480885757696348806934706998542469367176794122595191118037203451263934389164940704307377678676995729093588119300458857612244652925539219546275530304593778710294461358502629946729410222452619951987419884804174103035836597218875186227989173663971585986892915252265611712584667755503609259558324888782360618220249305646901950242380750722820625479334232820515147510285457695203866361425457518501397459182852952434801332346828775862668887204530900321278616974484962654642001337513846011712845050112463190509119709657793675000072552901004990429036573465627011589525100598048250419098012404104573293902810545423633613378112520202508358468613720901888895755480997483317006334908405303631884736236766335819034039181157921787460876782975205198613926083636136583442714885095375994362926122364979755984929689917100042365466675591470826480303022232116329178540271311440162480678016315362112530093977804408381356532908514903230209430030177237911753230793023702584309629374754434838048583244781180154953323524301932786730416577435295935052668206041598166164669156649391409858503577526873636042842247870450711817079376162307857498473345181307560039888827352514315746682091230394957762779090580007298348368360340834035158361756760480356794548019401244706467018523508143852748739561664703655628023067127268706587300593269641485341855489748604852740174415395078415952712494084991632166739887620754734114682011471031714802651006471788746300117261953751041397768866800721012971667170179053403278476890568692079887168578769861181385897121112556420187777378944944501178520206220252308325882415833991241768063060462363486840724041329044400631153934651686775764475618867647569575082337604730162452325716944512014506867067341350467801423471716460466073742666952643693919533089912767952239187471710700075241672085202765469241223841700989432690731095309337049408227768831111608611931211872274482837654032022269240548374053383728944401432029404350944175059612967404719684523260319320233181062708974115793891340224152621653114872480070877227624469784669121376308111658923772178872347233152222567423596144377794508128544146143349213266115086609963439668509539951172540941344975345108936241945238235245859969113943232869461401819628448913399960038213309000887280016932354841205792166371136379363837548242469948192711577796727613442707824397321805456524620137556582693680380927129044765674833243051898323157975673879926186038477980621283502181829307514549520331833480579378460465358111951150359467117116288040259670195654873643399094016902153771530196393561276885316149446997408931091620573931473706565516146459803764795986716024317951232776010793378144369752379403701738000288811596539101544948934325700907448702709911945949530349879488090480430356884848398342177065682315291765451372722081573769576539431052481283044063649899820578712791081559955800580172250229925967058060951542190845177579115958579329027991318545133645775079476939659603275856224764633246460624628161890209706331487139598795079249658796992701746794137404295458537151932649434860461932482197829242154507814354760396967640876510976658795635982013071469323312722633614717974602280508129080155733963925935452937584970712726646001549479905928630968384988034675206517773689820788454697168098910046101896819281638949880819559927721852933573942257827856060639760860128123000805571911139905631504090729493870846327581835995872461009649097983557619238863036557198880551313549682372787127111949589690818790267926676799728731915843982380487426690134065047968987940143311903888405933584854265820258158924377642653320761609170432865691062156814169628889933729493873679221183350348468235660988402841687060211891922302157843611405374450080636497332480958287210385720415689658003912088338868962375028456242810632244442608756248541243018041760329955019419385107118458662774860132719844741348127785076154676725961160427032834219643628579240227716630026118728847129919375250562614044217265952563794575562710191146299403720768562426086404461766499729692254998399287698759915964438144318182303017384141103570870825285997695767128287401194706524418658949699710372632812624763239173593603954475027796350775257124942222878733373339709558335526933195986048314205705001189164503975290486374836945893059203249051204742222863515172061908301514460417545886479819963495601635406078789537051284207666527977739837990737122713401122935334460470007832215951326185417177096406542628903878794197509216959736262088325564204446363852331556180773043707994649963971207658516429145041304952893762459530313134489036423211704519624416756440666977700729613219101465891115818598673162560671443610071996420027617543662003490980628375363816484857467913560796810030482118533442676515247015458572275424141855320448064225152472444847285744499679736503258607523422357382554634068140115238701230293732576353268869401090309916912417297502969741309736977951409618025808001058349220963522804910257740531835217832524950833927281317014609568940283691451151225147060102661010249761199331841745200446792920328771533939137393758515862681158056608134280005441147223026489469399841572986603719627180036920206046539791776180887080821275253818277186010477191076327640926095470499069984711497707970639590916550201589252263067084458762015600894472751804185134245482868554506298100610495663179504488644539718036260861152191476242755963949162602521389466347148502538938744479891723010661093214539027251270324545741628335590525093898075987996886609923857751441613121852035520728686621761474048252285106322877663638119260903413812258053559470484192641049137023210428188274756567733632488122770111472440111176619898093816854969237842737999080960456483990435482484504105622708249290961385461115505259683599811385259060039954321977823898035543658402853873224664132251066989400749448638039389022999007492044732231361582676240095654684547610149881219759215699629802621486761075300108878056114973692417331057469531423529940341277062588190749881630823474502496759049218219722936943537308939167409789244437014263346669698275837567213458194522900326194874786086552492975896760136134487736369619099430226829983388412262742946994233878574626701469072488156565350911919699128196300292807428475584942712299536105168347897698979477371620432901001948669852688451857382308609636637007466443059120835851001585913466144818291411468495803894553577245179410553869351218564218242231864575542270539611641628967704715591878917595694983805022373246576547746850584642487115619195198119382845904522749091469272227834993894977381576281597882282311863226422237471512883902979048213270177775927819790862436721274364729354650167620454760307106994890348004009510370813068161085459894309082123663727407631703439242691543848670313904355670450921541681854699777465128864650828673587832968216046521169963753288006057642052229600143647538315114033400519737409788919030570897015897728130752285841942217038190887706758903959117746748923055656785233761257681105562129029866261200552856389725143097596404263222544414800583465546303379792802939238746225181366509931300504333377588454742047451134536633075997120117250379537102830942366466584239876180275057237641378691979959489834652682084198366348316612489307354917535825513235413100256416479384050715817932168458276848291681929547196013178115415076120176450807544623446956814204859116075227927364112943131946056360527907745570630395093798127283667275633367802409352620591738692915290240580301198289979805619671384242681039995830461449265201672218444452399229072260613392928257494728761140773923780263237048863971308618526535830750341901547493237318436570890259527008664379618582273578428697412560507461247765601646828931737699487111144157495246323292831627786895959801563915281508431289417323605130163225943100638113541057141163622196802227806185546825366251723682761812486555512470903516403576899911842436465191083088874863020188356695658618073893063935040808304592296880182563890951656308702827416832887851688323924319848535042874052986809652808011522740487331370222153664073725362636327573031744307992498732841291053476911185663725519701014766228942919477159423536697192898587505606376848562255862766161573719949502737792191195691715509109935747819126171472074465467416184988033920509979302130790732907378522697928515536447905299402861808261545229626798185678264974998208020566312931325873344719300427973758777749575825353016763786828763498899440678409351377068639799225638188728490280740877401831064003467354235031516882198782709512406563578320747896041894860955688103054321111842370916135171836298960333611098076044965632899271267752278627120398684056932235265283753442594427209826058907097342678185153792996301764858546052718206595424086623521108087391461117476222050018835189581233383604542372829453170660650683185658543056160677878441999311237989821777672139095950748237048127740722071403086670012770226339277692926788801625616590583307161434244999791840745903677581800016808744390344436230997915034589786293476030595753952877098047669488870089936659218601505164819084014651951062447524324735406307649612620213042646551422222062310605110232162226022364096220844347822966891822689950215470958006527453098631641452852520773483603392709850464448913019093392287764538392376895605480820947072942525714510284571653988197421784833005085161334737259310007202590623436428415308679755864161234777488873462459609494843616895511289820040026252749335884859785401770145440265248414556534378344214425226751125582494393221874706816452336810452919770348097058748035553705538516616320251868204200521211512111449147353967086662698873771439005500106852745390755161760821383844377180425001670139263373120038135333442827982445796164094259117175548250251199149538225830308890198463169021469999071948166920039509377430136015673716097127283262750557404622664442143978527443184995590571600828285635313687010214622633749847772468939719270750328736846495363143491321222900136596287469495113982915573785805026849403475153294367527328302390408596370387047736034073530083589432704349206457140671659729457054554824698811690136054391994121121900219721000411183885170372754558717945544969388968994071820938946224821863162148047263034080199087777372084270461396234283101484644429497668541177921415594314223992857290507981245809917357928432036748414200355152875512464388681188266240284673466516562877069128276503183390961807402001670750351980572088195885193088581525536779002085590504606212184828667760611562022112621951195296162183913040543995499641961582721124291910920447743455738403527187665133697969580206506322103701196444080822520255884794457364035707032815135193077044918117764861061144928123338801901729714702183193881852667853542602951071707891862730683670576821051101697488220087687605028597736195628552356860141304598860654066405301500174638888712663992501885649280509205453233719835297652064603859534199872428304121445810877776940000392896877067066341603949156647599055289438890020134970317992911866642302162116742879326050493940884881338025776175616144173943821860555483213592799300524465906775665442029924737398564637318871691326540839005069888450203274231235823561273254590480301478839372427964742070926482528617817796697197953403302842120168242997925249191322600799969066819073504729121718562006657271036343298102627834555654890098079503810991065311268952468519281223906918542710458473349943098798697493240361941908839562702829703636090615708828665727247309350204107060149351266276134741665146861785309556296619112162258618285555978862268439974899763006195612900436136064686010699344277267650386702405150250640998368442349872484014547392775345889619554135387424945037349608133097313013507300777300515115611281478053852586480490038101194890032736912732667499126667951473743443937712592669379001533747664680200603592957329033269960243125198135424267048658920175513006468701789941597151200436329700367827508055306400791110207277388895164015594075821893883940157102010032982942552340207762534566003478166865609001620962228861783253458748275886683262044938245943700392728219066233914783014281682704527517125703990005649734675264045083276517944784858408771614470946302890014525383199871787080747771154422675370062724049234359635800585071394537660983952671061490393796200252559045664320051703068957094477803560635859994240596166788098279853578198477643452984966712312872647549002731887178145123298263323672704139058976718093071639551942833102417033424296749018675066097654469342489006764750938238495967233534666992292737084913343330786925630552904539447686801766700113428579589677385061007273717829589457252945686783744907672466245865151839609702514214571616175277589955441211161450636471766682922960155358592676612611072855626480686697492492501211498683931910584453384489666661585259597900277394528521482369332133562870086891130543280710151092607466511076881740344514375581444536823078970986833359963923330372686336356017072174332128203842686924163812465562886025790761418315105067507948866882121017975392520329759165828393740367133635441396645704074739740281079428482462021881624556791719614908114991853978249981903187145611784951259429790905736080816820967917918217257380090796730387892914015052853999938275235128979334046059396638762874063275698666329727082446724583765376646949603820554639262456543291958456905305624664571285798020120314798453804892090210387418710108428017103706549816220020333094187793126954137830028314664027362481337367491673547079332048705294300383850124921296798400621464964459406244985405272235166894696509264886590628609434404847368472432216805958932510567291080375942554457155637093735469952852560377364499695275046414715607004541699805348637328612893738179418870066214595936427215591686532441239622712868123054401404082163566031879098169512734075309097884074901369084096425238733152368285343804644380216075902870908340803916699249338730753037812155192072865936433786868303822780295133702564373801133422598225243779080196599547253193429963483583035515785483590348038120446842475984631562576393075056699233710534530377790103179649083230215335013126499976881326201557437259242491192021416148901542574342920951696217077694006465412872283992986749415333846694371043555519266528741956233425175311173731597641183123676761553615186978000542033092032396243873706694457078143298934533917038371830490493372239417365052588975802635622031134172321280265344860009273910731601364280965386310097218525714054563532860730296126278417465956710882863385253842656642836288792796242884156644005591781551799145425091709412458939190268779986872556822370287589949973205981662789618530414231928667676804436824120877741796306098318017304504289954362586357590086873704759031275098833882279097821687909249957879253887383284945928724057760618889513087752530977270220727886076984814636029328502815125162499329261068022235683449714227765170313326119767615774404914348173280950553073689349098945526554219044266709207372570591340061728034602683123611450564765846070121676634348146348000366573294200828027185847254614476107643521760581956240307498170596043931910585892363355711475201371112561721206172889446690340700418741151704566496181972983777318404624121642390481606495542186717264818600165121377391954784014591537072576185463513011885218523512261316665924771494317653103292109167392172410027466867827730356756154620923661677827913342032776018421608449547186922299927214018595272148103225504848659419034870279981963932223132839019198886326213707592200498768690116923150439824268671967839463383934457824361463049079425655081944619862902899476124624806558940170092534670198635445988633111063362306912632694216531337001467581397785868160981120845108566508669764747824877781773515284574861406228613318036436401019381598551433199106792704006664576758923874531872315223382074794649319536406732537053969309726315365159494078425359378408302365184265285151261176412101481032550634794464618460674442134876857822466529169395868561979702251614555516969347587495966675628521920577185402947672244199247370607850899100944013559061871545065718159322418492328717860367642014839576610942757027536394247010002325225331493529330763434655479568085753720789396398292367206164002233004329147279089426903004354455440515875628673164501746812423033094457321650822482643121670404445479281411608279094788512089158862579451386594855421380199824367729257338580143997575417526576846057488340242688998171473985622869277139914096074878890758276682688628028688464481752035344544810199900602447697287261959730834572298160671164786991539738042663727595814440358752918909549520510659059285749030555154878833018176625606128709605417013009102874831594774087221161278401445364312454644042338047327844364341125665592698621443434844463417214335975973527382550905197253808838561119478605234994555910027713430375550188685762468971378737190354213770665066129566833174787484764472232431339198964550087548789299277293497316554486757113023028601857263100666601435510738605072814406168481541448148885484791267312725378784413814386171297037214879193507605825600423974065019155044475066268139514911327451520912692417904449787535545406723606946687042756032996377075628273911627719773781953744758189680314604956656632949503929891552863370508647442114888784874652150465138757791138377363994028205273876617562084878087519170041982991962183180796282108890807003665861128740847517716911914925871348660146642892471380753895682812126324280731308450760712162856050251304035868509758859521147247754080735410304721439741345145946549786252544635388005931859516467909399532663946530400749501227810610423311248794002398970835673903867559308931679559964988023835140103546437700533092980061370875259685965048468209778276796788682186968918666836367156678205691162951362070290182775547483939407186275788115769000959983186039010951277632227643503548625637803293221737056898697323318000129995176131154846649385800750087709777888005055979487587904945628446588088261925506679586168052623999608404584695564650541330362891723775973386550834675891004426651284373003985278741488523664219731137378167205730164141590291130328085030119027174617648134471601289451965444833343974858060859395778621411009161254948803729065420436837665736403011596131074363770529689358987818743847176856524314019935810754099582199928722648377493370177304257025835011354364618113332318418270305152929368205648537179482182738315773311227035820587119787197229069153300720208590292688406056786375946701190633408445240793910429950180197871685246492843784652662445638449231804131354256578142957974735319324208633488464885145961459090056311715282070514445541714497490141951556976166322017556029555192500942488799691005116243662819457502419905325147188619569618940294541372231282106856586004533401247112021352344048667702978468379187769376663717544839718482035779581511475334044114504433305927694850072900467978447702982853420733638145010835562294674262257053951134717246685953420173181826708205979283269194246620277378936664219221258028777242027721709197116811794519872459897889679405604895798335356691548731777187264603522528410657913959926236149745008691939167125328818389075632241376323733941552223282281287574197894795763802576617639853442119569490064675713232988280350244337570539832181099684447715106125714668583801317876797871764536185852106982416199016884225171231003494588491045397660922036865911150783086629538887095843480657926723172579251657265179158115800460732869423802754426087715201787815368715416435841881327802006305063582176480765324062199991163930853183476787863355830471220960271528737124426053215157220402498659137255213347581263583974979198709951518608680836389419559936612933034241330345608354763449810421817572448458605819347686685605063205259534300195344730918577606055984838653558398074425805730287882607592908554117605793234273510985124931089583094033881832988273273872596720723712688411456369747982010856440827309411760429078271653969070744855911487365954883656887305461390434927548190147277231399100597326422911819991300646288679670383611587513708945330716698699621013482278565509001228920573209042400476026550764117546878008348539741060560338318647042302175449702264535277732073889446679642532934645002350289714866718376509810048697116036427068498366320946406472551835580616634420620289881792359359876306364321837201680874160805756300550117457834686411636412681083011295634427435040290219578933129080359134581066230905909887279583362286310665750288199353131477275311660479060561915551577745145939352037303873918817619417780267404577440327938236466965521602725007707987392289612624254367042750649027440998532934104074816470907069966347520676467198692426853877923824754142513448733353180369985700916079576272772107718303726200274114773951574892539834544607047969191938868074530521342257796157186957516493474646336453057935341461313028588790740721647710106652383187519553898997717445647966497573605716222371730831741548267296582759404913341505027998852211762562918522021937936527041017611661753174440879485663676710576188932254754999836355751432564422721227191262467110258028625472543888605227845073136794161030540107025563174039251691571617089228102137686211264831970369560682683126864630796759298219543596223176956239375759697491189827872813018442885546435555597956374823603073959431564057971920159219679402426239220728815798883660301703555273832479973569518328817640463687431825458100888869776436779345642423348269799722688962462818830394427642872729031486680684564043065283066212062403407372472126573338852818756973772520204365226138806916125086857022284443191970594534397233146244484622803453490806371253152058908470711793337798066257297016048454209785087523314842133625085570242056246896066314160207278707724146876860473537800284172905195225467561525920558667374927328853809974599863641564999833930519407011402773558589163505101010930813118800055207634422855628331234058975640183216015703751150917853668919563467477830047164447650830958593190237629751946626786678791257262341313992433437942529032400513605160120617415683987089888221814700024475195586991032893425691012068945155146261887118410557244649386133167279884230031006431440022015283835772373939716720921189731915614150763082813767186224774518922606992263966587427619086015103506052539053107332510742997242040451271540667729938540858255078982170406582887871116739356201839528451785585393156405376306912913953651286953184326612551777077716091825121301916693392911191148924519710986466483342691439764257298862663881912596875512315838409072408319529902825788780851136843828519814211982442738848075710835802194896840799678197188181453405306465531035898133670197816866019305550315532427747097128134806266183547932504945833389917084639249696523324504607097786753703884809626581443761968856631760158087221755915269856031879308667145879831191932245082837164402373591456043198758496532941653605918757485260092108576137637731832935894977650687466737757292997655364439891051629324711551361693112039080746427339874025900170052288351618897060589245763302449013570100313260270050441646500783250759520609279179305274523314274804713438709472422208661918439210550501129320575426502919210551851827411999812315138654261792024030754514185204702531619959681236181621346849605990018311485712981267500407948225035070783202672170505026940070255675335300805996766321201979294794589291118770146440822322810633814616915433756903408199182892452806646015854035051574201697770800092094237540292961863296393746911880538491577758903151975350300547514200889840102671985950803136037069869913551750470501903277729751128936194487166129506482275770325367796726249402642325707481675147173928351449679625323235355046169108006802306317859061435529906740689640413301741013294130076441518577049154752512333803512949273682251255633557001949445359576013676054291625234336293026503749386362030061586035325573218961716112731475045001277174745662935201912478247241322963315719007271922408632460511944899129263770926143128995154878205774027897909048489400748359650668344977630462762352534853666184059055522089507161796885720183571805449451296497350489698758217204349247810893637898085719111931136118897462609074768784254423445522807786491167103809787168763090029124859758392047738787665575364109216005854255221417652250425352940706201206849068931809551251935345507146400642339599017909947969183566257577520368147804452606904439704464255992115444450147584469393122465358171599278069702400290543594697774601103500877045521074960472937520472890857654410689893502937238294557849577700991305783072317475335520311329570304807281704951058101494228317152754299958807479465516828222396591198143677778845341596364338952504149766369591215368003496188828387150758979521675272796619347229566533248408234031691050596540384725381848025142607773793064795635544645901567822826658472876505395297670691189328621546411157312002879178233905233265653811976502353510333139427020138526677839224753221513643866835141937809040824075579590599357662494793985489995300713412266171341464804883832164234293212561420522999030019987026942614111522459871969838080450013758694599455191426067978550474865466768824853692942885449827946978512119959560768308083311862733532941471064579172251627709051945251663389270269323838359064977410055642265910293064069171219848080806880598055634001402175188962952921113411767221646958758467159965683940869063559001460949103453415920772166622098504302560692582420944479735712685851890889962607233776672461154990385837887377319481945151602329742726856362481450850468326503726572983222249621539177852310432237751013866503298117677981135780174563966607707121038935467650655850703699621170483515702595233162043682941818176468370921829533785945104563159150969802439952522917183931020639808905786213755704268859692419139272513699587649755533168354504674162610290428233828839330116278432176092790369090917599967532860492920087930153892403523260280603243737781112579657663688599911308761284719342234076710246106930352519610876411132505301691286780530763184618087190289290648972788577259364503862860288823810250565335746756231531491307372060823346273268935888175109020811666979687025173248940912315534705586632755251029265721431501108024871995269266906017390778839412853866585056746496587743503801533755214874949656314709251560946418482750004796885824524775891429231608114105450584117645438681587267985710202839321424583986497107548222932549709191620937666506927474674793903512370298039133756588138591256159574522158098559966571453488754933534615380043534375502928136610065610506188504750615708049955124329350649906842744959076355310798148907595001179835199363458122155560021012830041396609096312076809345499526216400919685834630857144582244872505549533897271448375456066391486111969898232879081442679565327004639786923571707883555615279445481370171027237264648671180116134163585442277795970972836562374183316297932443920864234420036074567954434631743219437527260284291320096124609415758063070339042671995480828329074902862379446521100732991514419207689756321219609747737059842435825185096421851821604208998743345306047537495311802870314272345833488496129877374093226565062299024374597925825321733458823668851810617568220306544800666432729121171471728436248395844698988100840962401735182342146761758901440624489336026903185643704622015033103967984309430837785543960464598015030179623633987566548781636132215193897987001030869296804208819728583387415896197767033921723582892771252419428864273785349672826606379733085934556075651411848775346139987503624696878242997827417040295376910980682037591070397988226045361592796322272496714703036849340225258468939623382968635762512810805272109460156916778647731425783903003265128731952975960215940919460290415161345133041013309601938047960718646929263787571960931102107723803445705713257888466234104657455110394363579341911092823305487537792228635775139617993325681040925782490384005259132106732952469045803081828357048442330150590982207359897854608734061927341100694588463488854600834421174556196928110253867891915808906146033034333641209218671233647243967989549814555869022848544686059488289964428821179285523373658747430301961235518777957166891640851291671228791313514281905394544663575449121416152660927301807220247424759075636579349306456988093602307647663031235447363835376344576436355230828291548029726661641424307994798830888516957952351681022404690984201684194596934096936520010844524807990896314515669499674102949768980332311506779332358352999356864121970757233289181690683177399276781919789327186227939659010014645035764914414189228304805077057287104246770129688287514724112905823072816118290522776491615831565174432445033529457338394614772820318278975020493785465408481283369206045485514976316614359011440038256037765020458303859823940435349796075398516345749937516557189906310920382094507290494549014015193061465672751947809542661253730301035713265295676334165807078765570513201691906548189226862213137199202318557594997568576735823791154804439930892992688295338239266997663447034693581502864272673996124939680654484559691732210311796070554061495786423277980402776976351261820684416188499741077582378381002515121091961475844402518935822986075646157305006858610688749968922804655436632565115365426944943908981443576306017718393243250338083902991138326460747602239552801620321681130099639696216228395140050097777194563959163497232567161954863820985379482208492579522161701278075141363683120759074102422561366721530094752597286735037282479062416091388625590629381237542080710717025332544547745488195601319435106750712554350780503368937102418704512455879221926053404800201564861468653711334371502269364238490303801566137540154063512162400897638315709845271994543167585103371368921189881732919852011708162754859321061518011336758970349581345280286879631284611278826008017989916146240201340719806314844121323390151958478772656164542065327627631205179860849141579355706963336216873252402864757503307150231133804771630415306706054804709995847924948701344922476347284218096617540041043843049769874650086708480820925866648938357958294927036836867241632704938023541604674415509902567920676870954673917543301913691278077124074195645154172778329022320299630015792264004335084595564821847399658079682246480136847341715059176214588010092952640044229238984064435983616884484086391569441475962502300261237301645513878577622118365063908715596341967731894239766227956215455118892935159358181650007220100105627265680990635178429397981004948330055806106623947330130898190334300327770268762073360591577557092530859403282966730623583540477901144272258686363503594355716440693609844083635329640136296021152553446712721973679430146360320005548795203260628866396905903562712266572666717151619114592046618232722332499149665490132536993743636982706555327046022784836698708673223453659805623235019274045923677052793779963443449058375461353903772912281697865027470185813742235669308169286084335890532527518478042710466704174687399700607629779979814296287276099533259891713493198464377627282307473130907367666415133189386042526446408881922985167225148074348991622097572410552013792481639750761784906250357381592590287800227798816928114838164288830322602238313485944119353982589304419148573182028160269288036626879306823439552508571122591636143292159087471896332146752520544420363737795313608151707956358353215331108119445117047695456774259417418210293862293340780435778186579003975390136800309980492175248165218756609916400957822621632427544934075134375062952576236407613655310556860745005781113316930000267433190785201010264425349789342552433725361173604845351997587712986774788795568583413251367240325401817813423573096078770704701142865042158164613353987707356202980441122463719315778094857714344738313297851851547408761402766451602470566873918486857840979970049540167640391884414308036900506885263294624550644865020044686806983151343614137391650356909259816954083606414648386820944748785279336855789278176332810019859212964506051482806288932815026156519133251451267386109016784468885986713834992495184719489875229642271026742643916477867918130348615783055091099203338243271383455247710826474073622075402786312260052206731241411883971736218379480228772440704828323738140554362216794393802340057381891165644880257363009659761955898685126766467151107126030444326360937244830739012029150315328965618806140480989752319742609473347930850410964918181141324644953190079194450343604813918125628020113080323846529845956576490736772227236899527907223937499504657222133993799227630228210214668109691130646749329723133066078708261382654949376003149771821296814806686276730767098210673729083985173152096943327265817984768066493987167708788278217149997268069626077058932853306551614379482720798315785624067363576046077011910645342552704040175224494583664609918687594324928741111923630830920544412846020665135826543779538786468695282598946229383887647523276796708403460926864718675373508475497605048651738168066020004351476992858220237660930249678412405253554385144565335625556730907164955494846107616409287481887715833176557958429784600482517981284377725061557970068737754151820865335356180956545652484051201469066849574088295908139794445448926458330035584037647981089022986246899524939901300729459133148076210057458388515057013321141478449653682750221831013403577521246112345926852594938609887667056734797333215259565309888064928698954202290486329926277944154913621076394722680854708810600739259114481823368592232718205260572228215721777421592011929577847456231004482189324824717315958275684767377792688095799105006173854345303092337709848651404844080442272786360046940322924857927536793449765037738392887683310889475762931448922983374639983774938048522767474760674486272615922277268861238569870899612442418639041529481072155977605678189782782661967254925606514515347496125093756980386533650328405490960909810527337506778070991471680895894271697093061882712969357250453627886620202115154975343289860006258865458876751123252167105472764574834432990827455924648885950716964524788835709300028941821432307528312119218440909181845439503928168694851496126765399279298207196314676213501937534977601753150066887439556337810638695847361276896601516704154561271156579879235657363482210648814627802356295775266112858272022623060791652884560790422375298035587616852778859204239915247825837531703313806310942386173426013762232110870735061120336945711917915571357302406968333851038532743754547605877777760903236627998468174553675143983514727455702412024588782755154132606776077818975565156014088835818130796093211433210165252618120085419609738269065500631983588043425106652089512179687334737756709879442641833631817054133550786634857192441938169663688379218794084928558307288652962654908498728464943769241097782449819506238873983389466952700342977454311068501718751958304582975042277417996449356171410309464027992733434664490887819528008423357173730259500149855833156478540445225409070586689070821644815699078579338551419710252078722348922087166299818820996183800325444318502510528269070028774676234791599316627062549171478691103002816767773234857653018255554301619076765170494275788939470076826798861651815278587604956344759900260330062930020483756548270657273893833916267576085505785389044550071133943186329082874817559266262783188257354732113852714100411450456498872288259267251841575836317918081451195282632184000923787617942690936126042436706826675783881024716129636341000601921739331468885167857028392308424814048084523882888633664374200196159090141289444161013786971207329063938990535361832619347158396742385684222978025666890122578085752593483643706285079364862789139143820558340330057542803174397219115099172726640291668486463550287681978416935954948918468720885643037977780724269997916419887855967437343262427574171883505605411927071611806458285502570906342522016179566906062163723092505413745675621717282039415532672267104533575292423984239695223937951354510376928457556213453417451806411486532349171163526536163423804025344984293594240271983015562034336966466222905120161101718625459496910688032676916444463906902510942395884071170448286142953684405206971216835717050013960566069881922111639055893403964862609579975292974342562158332753380066037563676424558861072803959600292724385401746925314599656404000817273837465441240847272432818766338354427887236894057528521322856392788311865607203374580989145528123409427695851154050865650853067015874325063733323122478991720935086736416976445917069343647326760671057693112314304012212120658007838877156099334857897425097148440823145207233074402411673685263282327692608851138540906846179665070458088962081794463019802532127423865969203659899258442766348153553744337242234074297903701761664060578161112796138424001150878803778679265893198743997312130675748780608336602400854389371858448180264704067106773695261163031660051685809903508321789718056731298762728741426697478352306755574820716925843293450664207473594448239509290526058024214433278924230246808585146965421236931169138229955745776281176609814794221526812722954741709115295453201464308740671179270299567967932252261283553135116665274292626129162000948226837399768357440283819422778591681688000096887270812529864039160530194388066213452396141935744269811666058861496629655262535505389285361313674990240791801117594163819515483175533259648673852556705330917342195103476696555928997983453175135065789409668193493631814432902171800541630648109830067046038952131327102166571190937336281864375464998274256086592084112270713389809969412901357784736541500003332839857547137585844705430701824867138522079966099914040622146797624983944572741529889428828015788023606884278596706365789239275370493001805916107319377329435642405700855438544997238200570042210940046132058228634561303448367951976330766096511262875167365310184838621419747564151295912423703649799218031563913515596638116777367021545761690852335224966748926173366588424656304599175273289117019850237179231095869709568601872547184431308159349676991388209882390616938341311011530747232508191001433111588122214059258671193038406079175882330782635842115421807485954472603513692168857262569705287279831849491767787462264910341534786075016371735609020528871000242062234701969959383198662142804600473742852326618565558810718604371533586577788996486433402527198283010960570930568289456638119995534036941948780708122944655809007518954530130397710881395410023976593983955247400903132790497164412154771381279740029402166896521631375372549127689374130891913832504594088563045055673892059018214005988962999816497847742513226861741952182845402739457901414118145891575519388064663465148666382347253893572815662128435075544060011717400989390448076157084993349684727020666383530122844333048346201282209803849513674083471428390040914854107432042989854398570719581472230789423282610754526998179222025332135264932694409321331469432413678579493335672151465074322366518540379291848258362074284114660383955674897061006765374276508802771737261451597835943789277170209431733099798982718489404583410336068451127968188608549402403095146345623172199151768260460880241564861090426443440745205364467518878802341384813854762266293043368362419392978562180210623005243947372306112440575916459760678500398156368099357443638403642668392609856553661946930725714040102863584667440149130032463516369765384101334392591795696034421627809167177104198078861529129669000834358711095398448628777532015765320606321841219727935853027249050800248917747407805452773664834993743142667967397753512502008884260295954389984982757470954982534715712311311186618828035443313585951170111720802294092015564620003152190255527051029391720072863613360629113016692260422217630822621884294750000561468694599025122151170038437572501297088060735604356383383465047311119438234300742175165959067965079999714192473406652604020092818739934168940224710689086086631914556640984605464158424455913096145675682912783741160722397546273464372316943013590246607737043211145273830596938968155504450759847651786847048024691282707533541158620173460312286881164218035549704322165771466700405530077395674287872130711345923291839988303933485717198098618365099429249151620461372102850059102303928522137532253201155033966684608151114032811681888512501668383340750854417642394300276151738316283559822502271367314917212620855516694721638781024582017480323020866325237031099168483458226333992662717172709890955729004396381553679193334358094401640287785771365535405660249068500463059343819386175430572470615754456561963313291515391163004733255386556070583871308594433632738024303442783366659784344766912334658809624740902639969954281673924867694811873678205585902613413008695853860823008281053780551851724679258460397573514942528238796223306146576415258680709730180373225824232061436096052767749194000518473870447503779726641596235472151132492799202440546729612863032204444705679036789501724458282389415640548342488531341817928733594611478363677971849695475475016381853112044479488625825413390978663961849813595787121055583520758176914835407323210360591339346700528418902453858432966192681691300581742417070518975742961578520112994414587703445411292032883568143270341988877320576823470662140428825953485283551073275488403997878810914690292251544493109505734088478062458198728132694413673928644652344226724958656609413097798515435763972779015080996384751435196166093023817944316554480989071513265052565144716832288536354905413120393505555448430480617846947642554062179049024303437531673334221570710717581063191846518711655260004032876080029330335266103509963552859640805108933380771186443993651475692754806139346581726184619531581052618254785934235236742958646140980414988239549147461557621244981155853972457259527190240524765740786187064954238635875065323276342946029451814030514636327472356105384913352148376529603389000041882815815219875921483401598700171647400933793475452377615600065943556637819617872384073025324485402383794613042898781969514693855621416194744444510677081951990888687272657646705463357187722460191115948273126170479064293924816534811619671953677180553938101483439559094612126644631340679355789206148927187015692679573254508119292363808898873061727821393531896867224614898224720207288878420093591312490351528567064081133984680115059007978331479725506551149235283129901336679017001765939272669814152137097544231367951356985721522464557281092645024902393250033273519055729986236708134916586439904461279557138306105280889221825885604955923171870647126840771366947422006958684951124891859000182554658581411246332648591666025297546932862972049999743207084532326455330187875621733481697549618943631690377829289318293201110213911706483675448965463038767987856511063907033425038269984171575061588420647249256955429109474779980550069419287927880188315550200693188475510853838270102580732113722674685920513504827199080161676614293560962553458523734813417435544563105853918362132716210021030598929774391518241424940893593092250567710335974299018959533599112967247096325903061860956423655552336166705524378948589497622362317579820103266333134660036836067815716034322608262343312843444195461410288977328205051183456161472853717506511134373007681199593804704083671392484242564995830034686183438705110948862254114516085954152077090827652680975773055708295490304863772987395398960402600896997466475153672476324453940218573257537661330159204806994871246711003132781562024491815483430267252797213976809464852846999503365208863611589057378893761532188029198954356143454545583689810070831794646013322443574737925986695507827014118934627691631202419359085506622071333119690563749175285507117067584226638398484853921270463373212754701227674156162110949662337566892308676859623580966893301152121946480296406398075956468118212692555442710486009473043020262513840910482070020920611039866532084148801046411584853742823134632951073474287923267605411332374187693674218687662411823932159383116478198263401497602897485509075422664819344133874405328367725704716570854872790144417935934348805030961818287242013599418359250091190003937567335091643207749436155567489584879161153796276009930786615417410071141512558021614429070753921219070905164277347492115281275349281859105560819726200942192008301937226100484209388586970704649454941752594817097670196282693668072661479770896101778111542845727547374532408484767036614342022770418607674332698912161901177203648576146028791850754822834378283501621210226032723699015817163685086113245689903255419331889797384986717257533684500718746481335569980301726080912977767705032076953411103641667632740856547298098784860395956068883591826237557039876509695196694402035845697827813572257649241178475762287666623949344369396561564275911915858663628026689204014045600589553020685045936929115533002532257166880255434988040449745332904705881759049878728854159745896182174312223262717773496304609142301646483531781721672460858126873231203695252472732302052531037192967423149246809596759533908724515389719858327149461637769289038937991611075739267313054039287910637313965673188140865515493035992775926887234555198211218473768718182829239139220487665174462655789466523580355310730215712378009403728248557589275445459206704292758622360498831504650622728740898743692395340442319203834940268323828459310154334738397576639714829551314973828705716648949600635807208669972506961690402323078198137553372297123256019496454504389340297021239493120463822018052795221391114709012770338820992062215891082802020603726758526595826925236448919157431005294758778191334111572751006241707809976153157588024983213238933055979990883817723548512718248985831251105041409344715768886215250422054468537602441076646963444220349532402899936565623771465132826167205250526815223611276629274525252993743219420891842987821020529808978758021679785573940915638128082945026541965362421383286851842957215267992822371416478087415210563103596431616980959306541998363941691465801482065770517221336463782368653740344467059782796593876700258032600639328952079090367870918969264899111441937937189088047205165463219981071609849035280174627322801007453147985327243309667604552902168325879685381344877054904893338495566527986352064841339300086740662445021267865531581680357634331287925663310604814542457568557897276837611140925422863471347062128075819258966650930667294909028877493074679550213323671054689657035878075733844072055511854769196008051598979523276406623266340319821804275905080392995890000297847575640123472726287352780355458270505051771895948290860355534624919209343332780445046386713510412891548100893947585432091872573307644102529407670341382905238314158432395921524502904998043466684702761430940566991344194353484782981981363985787453734927034541401777675647417533049396063425851213920394911128668029803665032335298362437387129402796186805467357595942093550710176762838982417502451398660625300118552800506103713230509107378726533672319476761952700512891172742054045709119851107876580542685898026771115954313281152717925913977907132960975100491395383699549016715545458531770003049146893230241262876894325090906565594227900273368633184057697918568512681540254967894832252224019973989142505867435827110959651826894914453508758502973162761960536458048445031750550434688316718184627763463637043875635180301680663597587926162974424740869255923868984703330604945494807440856614930876280406719144530557607188197084286915649769248039361338949023545217678570391665862153766590749915179958731982566400438658389251866602747395382424646685941937918746917459946436298943711900362182230005430674759380947669662154174021836265302126947353984530411296824103446231961798896740871880184447337257135517115013491066754495195174935600454513685119332587546825847945114599749464583212166198231181304294652420901372276826414904937167269435490145820699869002650024260884787167375147636628146858575930304932035904907104906875089559412464858481883383815876855373292151457762789502493912917470136736458860978335541234363009856379230351025903711557528085784009908319587698993968878638921901308080228671030463932603051603753050710525836204682049666720813971308044453684285165481391576723648338558404199851939960599401534193326815095778341050152349555823836205080835750283885263857366190530193357666928247224893600790896525443616922669855867763243216858318412203671601702207738524446973150534307350181483155103441289496725077904084629811577451749702495804906196857319736903696177647360686854589336855612112923148033720334595805366522969896657200929508442885630010657444839043895478595446115318534475326011683458355904140784619873987229596873005473154336995376949784812202063491168479805184171358427890268745475676507842383387427233873998383677464695135007354581192945563191454781607677526135054113296509845736007081742478529265223004658880892156516017956200153864480670121677385914452818183517902869350215927813429780306813124641183312061849894817315667380903622921858654893828681491750607565728754965902969154550300130687670846917431384766898146145420162292549544337978385834471156534001547141244149125832834589244150847534943958947416983951055886493477280634727504423565620113400221407923731460641538772556837873966612699170291212537258119476525806089932847647524658704496895016560480454272656873722143184224462174436070057649426767720249384076805710911680753718454026139882835456643071966437333968117650490607539523520257948723840071921932446240846789550282421775915484062259357665952162485219571321509165051085114599690292603054178866280258672140194320974805565811443492768856777447495747988627974287608158413116469846314436249186852368116929005366102238889549893945849766605845058096805369796568415918887657868656899115054541676675302793068883502108987741704991373137112635790071947553251252984922704497881701533258464505301445517836756728674667769875616886822005588500497775904583086910992378988807851158248980144737890285952327642384985246360825184958026293016531647469659205609587844234413384747572139506649413390794919360073034487486198754454183691821777009878325467839043800334921305259992357448308369173619992989113009439315445455677926726285227207942043112147364049811372978258529826334054554693866406831131118714490722489165425782910528529661819302093102448651697079623377343544798280202424795397758935974691856017787427135521829461571456807078602983741362617560487044146006181278241247456718089548019430542015665832844040202402807795441425077162260814024084412765714942818402918992026077129805314355479975394589974768494283601759178593960950756452934382293971624946439897424238490152247917690800988990421936193803145806299662269442994457336712223139024499424662587230451700330295598227693198382002550504833953414670495206676463602344406077361145654185333503901417543064134468416726783172392173176512404293124698395317305226323847658930657063235196088661746917132774638706967248383802775936254000527778210083164781309225858133070416377468225951280528975160678278717309200395401785836061431262825973321250800002583223350777313710870684038921779041624630893133065885428213121376170910979531542321346976261358528877339460757282035637743765938309441957967522122734404836160829996658953843031093161815295676313845199853749474214050488033932115081561279259954961263156929376966464859529533427381253074177607383326638245346273865627746100937544815179281312367787014338371876138755038607355240576219070322382676360105727153609324523204887977205759289331603043530390850024434989840993381887829707121606574522208015412691818368085926399918050525238576715099960147167787959448815136518062611364579516928516682792547446854096639969357527857068786547282167215075630930292222261115141545934352779712647887269086459161460512654045542211460662808702009757044335833502219557394738617473396711554035137384801524631130036192769761321377566914108366874356039992472044719425282248537907161837562950636931131977205625164867784553950483871510104271673759865978839832186892059091499730425401965321554158903392240491728984540476100965107603403527883490611401258980397424959005881056429780024514027240381239756840916565132126886614025674401961725177177887719104937619502092993687618963439758832334026637800005525103045120929820287030109431757772469909005314315320483551417953691255841886855109030391339711257691985323396740699213498234964787586789856907904015167893980751961812160664285369930292069602349466854303072462473904610886386245008546475419574937460423993762382335519435954206490341202391132323170224688895668832385635336801327298825844193517094288565727261299539877336777032358766585388027136756616532402933264920693476432608231510276316789112236768632227361527221278483494688155109933351804201272744075472501964034760519368283188818011279513871804275253332048198871635880580628710254911787576188492281319173032183151937246110531209451335742895475468277270164485455782290224800673527841137494694546334242511315679470084542852342084466142463807404296398199047994602459684882167582857133260639812388230918844876541409706468769255850727525363648291416911098192631234994558444606789381870113575694532997756328673918069827331017691617488860040773525529238254684033761988378846612776228377043066506070303713372575336917106953113483487968160904769241790942396296921367039958414446240966463718836031247004527048840669320230530097446621105108503463617296063895708078430397915479534600549726331180508943074213881150298836747537899441924354773223534089566157114564442079065779866901632720873248544825647090402942616623901192737125249343752250545321359580413449709808279236783621613728759941876268640516352194018400143645516116070961551428601814987384620201133485470076494167574656117733008964760621515279461985819194851144080577647506671182089856634098929796958816806965749249739778417956969319656627598313545349983258185458315447476747626253325281231500088242977601580463561514563064531596464245082687177934558565331799158283329741199401755667642486013721781136861256599425295083110635039051319632832776537062150360200053039818222461709309339805732535250157354029840218361670463001188634884807614581773377407436163967242697525055433130039248084117270081576913776650776587801390044954113921263301181991232422178503141434260071417565830735201162591802065056262883596463230157335067649785934825637557026459158424535388313120523705179767599848829469810170868953543284243636198461589819044771307567041590457184525002215970540332118455484183449415245502211206525765121527170047052815224607981078314629035490459396257954309266251933670765775743277659132347708387464105707240987719544742460241710905226961673707037434143851248560483216850311031936862027010155309618544674097640411628337101786522291484944955042220841443483721671614004465028724953535658999386913654354922087384597922855167165936343846680304512899169562275336997833222905331991359177550141413645256787153995451895218665977913432110100794101604758252195238726734322669504487230567159969383408613196719155542001314774545829086667317932471652962456780519371859084788449088080126527255398886151330238858466763432057022305021880206891304688182661371836581247246515654430403027641468936253109561476220794948374238618377287210049581742353199064746059520271796936233681784553286744120438442119572349072828342355268850839044601930481140094394645023436238231346448347772833884342953114739697319112999908293750363645224998317203681702608516334200085828122550917150195629768768723855326651144145254738950312298077328381424427659627073988718244175265554841524243365302307691068262894583794937295782819568179217675477388562765804470093837599863705544509462600477123517938096154455543656316162757334697666599515589281017720617813300293229525876297772148388946887497458430932735836171497600369700527545932086344029989463159297681373352115943533908488793688183493189063855078447097527111020262695020449388081138151566808746614142579653547584635680383010774795035018546897954187962980673239947668151490387007850434077314705843765226545998004056069578413771823483230498263359703176937956350218730402013872187221479094939648016279683198567080688898688023002448099118815049214652010611026853094965100852645921486892426875098798661567475553182454260358559968976646127884064530244501524948940115110395458135514676268030959831299396681612596118828193937437809704210959477075421751712390111229096713722755636431479005183674873570540437787547938102288107536854551916180322296039148761422622242691143338998483284028466312973052136168153593774068648440599501741480801505956752682615271491148758369392091716033531852604447095699808010388709196684043593584035619127854875774007854372698215745699760053932059659355425442667922379689099975740633247661085662102613537702545244537804341067335207708311647159978231562178029005426363114089275981851525940942971917657203807877011063799296481761164178617775659880512745980686080329280239945634943191173986336211150193358699204804058151554354777626105546980004355217940531815367765400871015410928454247845954136793407578811476464552684124563547940687360148155839666873103877982922540348359748177688049144998896580694679610550708284154814891837274520702184449967692870621009729961614020834619898615725344006003637961268265620428060828249303321912355712026317701400926807509086183486509487212028547192564773550644821837183733757425318391502924674389449170407164653414261217355259440235185020524641015083280272632257161550745468716844119820097558684146174885505760564824947018081900068503730716053301475949273246946444890214644932825101702424386984096430755064061472110008646837935238187976952909003387296266009951418770918717312432333198102605435970145834605886131315845727558721472938467021073054401125982811653020636192977846958446917374402233079110177116610781395811627636952026691832371276443818218227528335541927420796765691668903228723231811454270044971414321897219710474651291488517498276394798900360215168575468949350370755751913850133437642231845419239780677566571210877735757178788930093852442839247214030897037440899766929149172121742569299983971632676986128799280998243383710680296825771386685582612304366833767319939817571736831601198419641798232761023965947681295080812908090564497484674703076651447248889309808240217759700855133461625570930195495597959217974307781197253154475121751519708033320033727544252839695936355993646284048446721059624344953847042346571261717799957909721912279233538667012668571493887691968369791402284608249438854008946017867360406777589475505380874206834935388428907823010946392358607011857853873911950299630040135730473157799624251635089064415139256032815453064957366723579858842230491943904489439097711003191648046760966361295799789667940358136334685201604151585838609532347334081423296838391752641427655162087799670017982024068218000569527867971724453192757878741247116536515707161297467711868742590718730458779109955552986316703009204872563098575675371491495007245018626579377378753073344387469115988672559911479391917160008936221611728962952140210637502045919156848928878640169347677354356847324582572065755790673708934046654385616127495531183569089864380910470934956424198373164344485158837453495006529436147529104971381382393583088372734900623449145838960283404271949707092308866967159472505574166190461895985392937599732833574846116208763929642443334595442252947317012227270297249015811905455812110322766651999351247472411730323759873910464157405140108693787005701588453516451433663013057465503760544874883841833645239397893130074958944616458168129362786571871090991262331300522625437265510456922138081455443595656554083606408286779617272361826853271305018259186573252791823446156881443323328645478709429545225374870566455469138037276456914280295645820930736582917364232011285192951834681831609135435875518681382603227338205676355908341521920755331689346362432473736446754362327682939325021663197681076453383328513962406310713877681906390732039504596252098035463401137159959609506227949357613950445672689141244348853352869133342993599384427839897902958154185604279981009097806828665520564495343888720932504459873451156794021553712722646316937693646683216804746291746144065427103406419253636872133209215031655723570733606913206727373248121341841161596251946355366178704039118783547334876905990201194751799672327236806866263446194130412481921555186040696645113508317088151807184416925725996989893853333828087767357714384955964511143273388428850318889838889232058105647246722286520241015681150563946949282830854364616580058169631341010288982115915075309938246833717578522330975421154460712606259819940466489078630990099125000616573289455626864077619591844970165274593485446564736155419650939238585077168015070343717468459153797034361953191704595656194661496559153079410585958794646120454859792798965753785248758336436708204071552983138862423669469509767848700909032229369041870398838432253018733910855954428791954330275575808893426707549941445374446202272275759880292125728520391986837144142879327970552644431924871122837623005702193773397299870967378888782272604417266634737364664187989615280043985025736027388966456900581219420982154935095547685199683314794134023191040799755230985920595585974292497870116671800214416025896287782390233149160017975085751340292478553911386444846574051064028281259571605211923544555210258447903704851000858272380182709650465348983227225606350079145215936301007098835429870688379175776626424085117161977533041236511167493369054711726873640606720195815773339611254607043541763051861943655839327331058320180827299850553083898260000765427447227374690170768636369717783662342607017717132624752850573618259412558436839270543160231666356610412484163844221183551549661123322669771984547460069469797622449770761142915807927453647249271822735006613606314250431677929707984556233873496463505593867125277011012223083829211615844502088167039647733659999129496595399154868431286740983902954551916347333846920448954798346081114110468142869462918787193075411979677334001034142834328159284611106229092079305063766898059865439708776260678396508094473159968294780066048782989200228287292927278790032674121077122421596590939071527109621983427833189972812511563293707487621057644475870711285458980409346024511905998627661500144438826347469020364274492975092412109535188843702182029222714703023045302703630404551650658305995850392843948703624882247391373872546750837559106870163295126759121785320182456659524190677875272478455375220621179214823080024509842655548189886789035850002829766855774764067209224335995638356511609064598093432555284232165726379904516914642917122930557661017037326984712598092169409425639034622447195281138228111699104755596321105767599379577178126930585193876926343939315043862334923407419286802203413257661664301880458040336453584806319354739683493333456153520814553940045819618868673231771718738774438733345104613920340484244756458896408329220610920274832018963372267530076005838137070809111543587761079799215446083016894000721413967915528300194198359974105135022912295479103348557929920354723614342369531520105620212698277546994752642638088609804850865119240260933004331411293530273473022505180401217545887411683914778077744334103877773141637179283791056192600815477359184977399596257589225198830087849133690658033000300232293596480428608111164921875323336381990811071963954446539435260544826887006284736023716646607353902845277401525689094525314542611241210206403796007953363612020667356342363231033643924124617401682155007044083685950790837103797664687667640735316834926288890834841635636902327709410370371474911719806748892421644119629381728435209113338024928519682706554801282539914634051985514984770692845667557835598605859899089913269783226125969257818318610656680550821274793193026038763088347726580725483383999117414038580054078855169850984274017319171469605765043591026325957384275663669749446809819874482926926033032728205648850590941464118972424633268324324949080187912477125020117430229145604003908455972092577168590678803730621612567445474780479992889847674111126474354051617459192545908548412391453000761414922823682256880205676661699145233475141253899301246080980196511668755468426037592374232728307844814530901514535893617694067751540484303003520743619440165966007523121605363510245029142922233299512149394771158739728864797364686157444221446677771783794493320156736539981178099991204690000075115580114874636927612704974438304375930251243655822202790918968672265089532328846060443547894705681361960176966468746004006678993612328621111392169130028829464349318790654216144339054450532938048750708646661584290058711658519541112368864986186376388890139499587736957973552743728248025683539632750631229133771830979906619355335103317508955996139306229566029003704449683410111020599507924971237539875465513696506800560269189764497960412445791376231608691659922249377682521866527756255503444676085378563612189494047978676606160386347401286836093812180767991681667418547268107229383708080701260546774370563293654502307271369060120620670218918924987364950453611708253248334993504600370017602390088710877035911306719466742567175761466227379297810250591305900571399673537003239915909628780772729301755579626630582009094476406506312682240600490327711005211310210514174695583441485917917144492899526045609652372661798064942484334389292874153405781944081603547507984815515046092359962802476431147532478752374367395541768636516174101114511812499318217619192386182001981680256055135088078791548017890548194151944280914825645756569738629895769068494775494074993185289924656353541702361062792026864637750132670589427838959631683087681627975009101144704983491098352330658728860706739923234026559814215095246241162465800160360973321713315712842722222690420633377835807095538057059870515746243877756763366361318329165526440724908161110397755560315535431142144917337101879071327184129686635181444374600947067983519072275401281020111392604184370469032854548473794575335333359418479574444250927699653395872319252897874996476486430039013355324050156797128179907785623323339959247033622720089425377862065038147843589695829799312279528879774495065510318264166350878916316197246401606907728509407973840725186812182777110216962913370101301166882504628435167697733001373239659036224077063439035322926911318848984675034947114902976611072634011697863969317587915622714680903478592551963655377077982162717442184872335310873239194502067554253624230518240816584014793765219064536068717400166405558367527259636957178410411751036652835948153505060850734063589777568186195441207413727177520069690544349100252091781936482967052260080375340073684831176417028062891690948776857264191015183828498461089945631655442308750926842326893568108320203210338633388873142337337197164903599408936463996469806704320972736134021873251975568988827586038252359700981397218679772744379443755226287510220137204765829469094684066416191560792939168596214658262492255489691177764243846011715443040740573673315660558572537271826214593329771655243069556867758266141661948582732618019609068089050710960751280454816909606245488410728064576439418560517366544237038887824691071227121623114122877326522670820883028505087447425763465793510893425456569166881504011222913722107010080832075272437286617792256634260147219869733562097339420900339678146826507210562649426230410210433314824693561839725513205824661732664985762716800809730862080023782629995867087260700975258849528724335199387288114650847398756669168020581073135561139815712111671771679860730014155578430210830057887742644012254846078646769951587819455306064292950388490237098689607974842637288264273030303860481856706274318463628495640336700345263805571192127570161051536192899107802089010215077534135121965955500677160327006880045569087732018022126228545100874729420324034257088531024267213956506715732866758606365011620263009982015018235841126896802993652821266618541746822075180800091082737621253435127047735265115737975640020782828373095254345108665813728837186358172758782837406022770402685580086143626393092941219083926182035525294814546624590719391560370768225120324159973828079356649132593210968964571542244448864453033036911621797746548039963622775676526047006070888158692210380509480228689813107586888407736739916985506560960257235725208972944859186359058568356316212813553128343621411581772401304403200446968212055539710177198429027698095037505453113106422179393163447893588826387381504562522191714285105994968666489427571066192724125976740898882431486649174124040473889524880703407491759411126890072306406266503722845192516653439432027262416243554760733050391348715163553520104886785168355663587339774056976936329911134527401615678604283380369513398762890286550189891783657271009475946855306428597646224975257067531147516719136550060488503302907194623161659268880225671421678685576248181587539609802462055273083651844405656152185647646600663043338240095114880910353006622207084310042416873181110719677862941264800331599980538830882788629626384750347003601737784134031427587712198093198732035462262685510288766170663188946631996345620040795208432631610244305155215801819378003918795041801754871237954526765601013131072253411203595324872285383961761433876638907562015882512662275171377833027927306154972665869096146203311441227869509549890436756326511874558687079078924780003233787643241110515519769547208600235144710828207251312983971895475240806706402920427549375161407390431596972876303894913272957950654005845858235436530343243208758740029539946025528612093297902675069710926746693655486179865425002829123917708143290632085497265531570707138264864382974519387280699748765105783767573607836168550717331244852313640445071252384199821457526734016190235624925420250420483306639851069375215433145590495275153908250179817663595529213208057947254728422279253727807634407371940789682600116588507836251313425685329195046216412578180517285573444260074833172002494254206323111464788886308603629849645155734502166989631232118805361722498942372949801399516921342459033088604186775523874969917011922214580390797892020784682248607424726151045782815873227121573826081607794308367827810508233447271059209628307601779794703681086834365436844671315062853554181630167373576841649185580139067516804222460296392594290943741101977941298265260755476062229756111871674999992316754559216253024094852495548881854930358560627063193523460104599388151253457351096537876554164274585915238534813342189178382434697172953365935295982420325867755803395501043305165359028418860332590808717369642450790184373018044917867769673045818467084288051815893698835875374720283235023761888409683733743496889121856131721314959802291484069019091328499056553760841559059264357475289249158897321677119804417827857879117110802764135502371777132124897173997814471925104007132143950822835423080158868291221134644115028488567689852367971293990206176050319389115585116938122849166437520992151039130272918839211980357925849856963299607397647324602286081771288543594788142972185973541548897396493407549755981211946387580159376688316621256967966752961120944071371218492346637707007209247835409555355978801737938091615881010739861023492434995991594151561752493249353524256697786833277681758725966371971542843645071136445985159135843859681644797157885501633940862425385544227710004560457515774176621707911223462048215422002270707558889953923419508470009988110718814423712340942189451194845758164978667317222360256032877552663726677164523032427122700035122252255152152776678837346789728723412820452042906293382244470342976491358769436334869286911934661293471833998427985785645916507791057204092885220651770893489165107524960977271659006325290326417897895710965143620431513645897581122403522233747800598661585241023091022353842350590190838129668949669807163257127342741238846753755431738762745452165461284709739931066079991369592415088435806481356346265618060934307872550406780456836028628343618955995839844963747223877952763636732671426902468157533327050323659489704171891569868422146377955863659720427345184545814552677378689955072071091912851060319714872745794151260221444726240319951549463254070217279226159368855763840912015692151814066062491143601837983198823847050766312178115262043234145629612417019545252836802724189636208093817693701109824794532283552995385006249236693383395073257247143729731423990825635130752092705730013655015721007958471173623283072964644310405236857393212381450345149074179284141829247853466322467588250562824301906171207003601209409228730866714293694522515100862230907409004222757168727612677694016480935200238691766808143375759381027634205634870024519675685987738784284711796068036368180468011265833631385346877323562387711467149875914325945716832275609106815604768610275646823992111940221791136240821683433483524744285055780607762255817734418175901321309448970227440611842505821128122700753936636103021359566182302143405964460584880267414513159329750336167262474397165611299924828155286228120559527095489060616241932758967627918897478255700275599505781087931972317361070218126602432065005308627534718120952008695935856184769267255424363762794207344475921067673068607996639070680761172040634080325059371794487288978153586933876792366908382193631281645971383524440645386677790007522565480701618001490084610738869664190866887435257427188580984578148970562155710603941017963295614367532227111228635942062035940782373118400069059522471869185997781181907149701216092288141689224340385562680298395932856381682504618895253056564777250524563353831829813860267917934656485980824630808359772976143089069186152845438921297512557721639361870122355207374002991937367993466568811122797558581927443914903285816738652742335156849445639567761978804168750107426108813409719128039860042198316939651858477129936965793617826081309893211511759463014466891936082542072810860671145275384808497371338136570217895097765361941908574840299060688233111340929189281644252189537388361885235321762553473378553619710129263174543131325214260441609632873794916710171773250915387098181234773006169892790606101776311698699364421974525836510871901500292149283958380497567096131058160911211887267142345852660038158658385575742993571147819513442304625575217224524493304349475347936515850175714222139467255700654993259927070191987677494450772841432486033729625613505427769797285819064511740403993163819465541963162232377235764670920510629209548876510595543550460708875906276168402550818563729404330083182029189132577485971604479685222099746110311362305320457357603141295786312481410263760444452426606003321379051706680508949346912525056620967046830566794418357450113272079248030523938498016682138028325689882496509729444292583135380665855396959895619312648983902266879222497010749313154023594692379872290811500101250994788535955938758117731121193814380031024777738047773056906772713748217332683382427201735893298851944979343240832003406449887129943756146724568099785241272072653953877085588185014807822011087182926727698282565863089002715055818741498553346811897326332738649243140929667198096451744140175197809239410881658319170321813576546146238557127252702688819265857123090343240090961304347568827518591972027637020220038656459385806057388781127353296296533150587232623532642026446749327482608576088736203364914726165685354257038990992160421783181983366833988144245900897935186269743266907075225698257638317327157325020722227213034486310936097305684639883237666732516227260002769500786155714264179451034188678179958852846929105500170950627906615598675785791708654612806627125902943079959168903537838529941410437277104948015401644257769473330528404690549108997829412078986871094769969906681622642168513427089433452180548590431099546993576822300569846261493202035507788673821040521678197391998398978070520424108103465743534125298469652145460761290587960637528037648111514400222158926920254543069188124718549062912971277514954081997229740366254921334395739531194192724893391850132999015933991472071950380265872126716538497135269746024568843684198433483835098845182000969545280922243625747196291075565578580130020644408556880997241417689421141263682724377596530505088472870391550592233285258234306177113604026321526096431096400057295863153709792841517789948236152879697086605742538195348954278506403014181442380628346640134558114235989299908335993091949096231841923991551043803191568737931836887374392784431164099065932433186518006773751703866801673397400138393436821631734063979202369951715957327097964986723225390352756165301405646366321376689211301810764515575583219730729303198156849002565754851351972095168660127144818672032459450415697118435495946947168241577792957465710445561782116019343466375206558671554068400904104512638783144001571542030681548113138977255811172318859345100106254941049660463238308207583781906751334320145617703664963224570503377657931239873933843931344896152968253765093409671583621060036280874750716318452725825892599483695170794005790025709530882469636994637366667969892839813705310975551291459858863160445112864742487363150302545575376693521313324107866163854055750884636626243938329597315361036952254743676492933685766560355434324782735687746751837699042326918200930320231930859334768821996520315857202100453773449827936920230242478334869106083359420394571723637556904186839605610984020431888181756167429202421950527663169252396694767169968295148526668570984671774687181660608908687094270524170747782843249411697745901285389984407795336402919758127649586429042417679998872528843927894976687207417590111730793362826868911251460997603443780521645908395382695205922892533032442319257442904541669312472975735285781425887594652204050135633993380890105497589814526185579497689816395021420364700696890179652116998545396143262743114055460951900675818725947334874539473235884683992290340107491410048967411250798316647727415691744927696103656859667650112530072164082604784715126271089253444787407842757268944826743244850550443496569243901423504209876891804115552962120232480896390539004383513434992345534845769037538913347193467171489537015337265103563791544193411721186101521480912735767236150817845016155240556823140445625991579955528200433463471747362819007740034400173392357468460714325936837243057610981348814957654426509674942384609065618818821980452666362784264018026274391758448493127985724027121288502319680330729708948243814284559357680042177709588464118782173216199721864205417669614285321819525698763537449222050781064084596869750810154972596820121450877338124024106999189011681390580881679985321898542546644380647626593511164945464766799124830512367488266402946755813055492778821462549912021890764312313950277764119613048670318683392693623613022342030028309477836707498773336460108284479017028826410316260205349201249967607384864076530337066778995321941444556090394338225745355035558452147571361820247535967508793979143163489952191093922411125839478867423745295693090549700129450459270536940735693115798479152100247841879964864909957902804931976551009746646371281493156483043987914871475632383197146224100994390111609509217316810385982853740775157287421380917314495215192813842519617916904954613997379335465456124983480204920075932646352824461545381790834598911454706655422040652646247412057022340727721574451645494703646460097379696783617059955464371809241778314786114474079024790280710909191756405687047685316581625840499281311378213791868415367006764113184075899288458110964447435901718322429250389481317623237552632828275387645248642267434460958123799809777127436477142787645352705089762863116744447787353414431175012100413382466619765719738811756091339479568207381397459035997434612324207231751975483513378274784760820141831974825846720250171857709725538779284256730554822457333824770337715513646303487708479310861941275549842634574952651430311695510196276571584340259409492621359169960329689157613740914980990347301432341957309794959771308522942458648801878355186719796009440143533919541705578774064356804604355668775042146253152185987880128086630691724657211722556556588710674147393389281176578446751193530065186148303566390642276890045610245902436443039138012267845837803200920522643863305467827099724216126194200231699362586440466925996797831082264708922385399098111730268533088584384476403117792712147420101156571486602181174585021392578595952940861116869754038924500198132003995077436898517581857241999342020873183541407405936715101519108244824976181343787184309437049097852297502716761125550128471018874835905882832519507567324139818791507110849417869051717470480606544623163360466795759918141611443121362920226065968586756524490642803776772664700866094878215066032442052995216243924003276215256329904901097943114764483706173059010392086270350726355701904602234526257986304277115986220519943418329051816304932477794117048149711485589147046380817619508118067847651554860751096321174004067204178055266644983809695240830857463354084056384392307476216789180955911525400889011441701631977354473530438536728899987908801913771523218981434508808214974834575209928136025469850726528766721829056362531779646813259674663766934422383630878873173408484583877440083945015230224233435698485209007874367632822536253803768118224886281738994983491336358079249781573383504943585586714760260958681996224869923190720506065196664688174666165594890871719672521196130023654583206867799119989052943939135883730609697726104989222057710453168272722619408928882957368977174184134469358283469475150097776645323117899697367933992433112247168821715174903741164062281382302060470581294668333817096258887611541084315219072051635296083350590107032112889711617134809840214894768787365548702208208787060899117223708226838643492201307892635352838056246672687360733915587153929353226593172640144822016192552008946813757506593206127659297549830203910579714888127047936541863236017166541964407942348573980996059159079069990897123527409343410213367802540980058071633927904857575174962877307343114546651665858144913363346001232756305153889084653479218127049004524601896318833961190693319791024460107175021404267520016538709262149717685708411120987320687537913978181573969613598149011182095552656518570002040727668589595047620500087391374814125438372781146533904227440211293213792601783331365991964143591823506598961425153791202940190492516565063774358238681019646027386000409771753537489881046902896138488925333746876590175855588742851649055307115475312030084324867113317708668433495269047371794902617646114446353197181901379996370779382595574405175040993704045793168530979052449834343167129714730457311872781672212126890838766569317455610385489258393072425701453725372102632394788780971562839080552300463023690205149448277649437709502624254588688384595066148838338152911892636568889727955913429284481771431557864632085965849782670836274180165257603375325029610077309616270473465378857632951915683493353357936653924124590637479376087211926965193844185577381717133970726808028215827745862483649694388650119967106628523032791205270277617101966344044153599741448070474655157648833972701384482140411637811266002669884670005253891795155133685593500918725298002577259815984063824207406107613996418959658299873751392859526398974903367825225225214400926748497432618420513927284329431448470456886936927826475217405591699881132945003004368566182297868308369341784389518400798199623800164272785126311957626747451144844704358610828900325868374910038216822385894342277461930984588993747507196511448186869929112435492009067084930276974935258252895877958938846690904563186412799772574349929798018759966795936568327895162109144645120966764899859263477298028292873166851780218403152332663986375810736369666077058908974627403173066445838289518317973266522905103021732965107515320501733876901301208175272261533457208275414044295226887217665601189348531829805714277022412605042696980249207085542525473300634214429820912385148227721487777635458526129921825576224820148242613338843317779946387626665446302500352846564167141412036963265034906743217924592402946259601592436303444513165314037973092193123785363766342695626069297714696485707010422011753403104645694523097074988360987435569581298674466104858709904679705937862447958434400717985594383818845759581330653855720830701261063265900165426637352146987918496817770820282734947151545581330567319028738854644188953225858872410000989084454968021605381698113461601093521380848848886272841731676798544583068870431064278480971255135102595058969526402650518714859424358914392991807482644867257936376866317017279799728931223357611246771733370182228653574178008890210559775023391189974511059382108867199104730530630090361453235479536633797119607141458785010990538171022823959120526874870908671848372600999605214581389573668620707434683862344980797134374501680002335131153092162684734836168190904333918351246141594139186209818028890694762912695464829864127140052766021564091157663753055255513334375991662678781177404975349454707671316555359774438733069054050928886063361185885152883445697624323749865834713347179297124708446332761868863387670476106127885014556324560114290301088449523732421059530194024653497155955772111520963059310705479647034816783617206949730737718192042581193043652577906259523060114227590003358949552396096870273632259781546836406146830471096357994048765356462170047091135033010314601977924825630144576529636745827760020965503653270368149081270798698241934189044967859407765087110011415003708123691556907011689057079967559116367533019279947107694862686489966462770229815845790581950505281130018964241991627471968106648881120658072349539265968618021834566261071311200153995912714697509417998211395931037757717595004635058694970004284823800381006002234515826981697471020152476664924083441042927427841554127788528074995341176364246752686889631783543071819063142170492286406120039703476362925792491082621994722761313054156971263362259135453962090919118156454273722999105453481348156737522275551925230091003700334841182610756760417935764852457015014572346604889721616761254730661200271137087282253023060535022831540989562457352019835237030106042746264826483936644972601306035574466103323400445112032933464333359076356428261194001822335294583398846548817373821134515549106955492476093014763661639665415636056541132981267596962983546291244435866444726923170468923232958626634939490994304573606545925862922499112333132165101070778033807511897104207946234358299064333731899694789103530485758232234338748425839348996186644221205404573231473267468755446667381379239005900537266978070841149106764992393612466015336626438722318061119765207945639896875563103365186387356559831934889172153402260978756323978299474350999063346779539988053495850265629815387270633973956421091504436683468826796273272989005432313902407714149050964696696654939923079923679242615541217587973485624328740508209574683455213403798939511949786737081327557614384468132603827600148057559926401622593299835036701760460147341662227529677913245585424351341097182788002500290431281212115387357623384818311817386341833982852554477492725813618546868891116683014515088043516048212856357478742735232827235624745069484165548160380870716007489289225800765754823954746140747687205882802534148137823076153208838822706085739009413895293133330098733992807633531983016002657413640904530398545954274899399144078710200184128871326753339536324693541577174406444955638316235062567000151870340467391218318769891057250207479378939224283356646043974389501163147597213207725238872785974755349138095634427022714840299191918662052119804314471465939429691862574749025191986390928261636806940341909606150001812112982442294421770484777539974682554112671072925173188964239638841772269423571665648971351709374554795377744415173540898110328018021355571176207695881978965719334918699639665683107840882340955084039075334302767458721826765734723800491012733634981289635689281516666106571862202543574925258235983451341117563491559416944018519935755688406636931162637677208373530274285409554637571722375119218523899164163923686106351801373186526309404057808234575263427085312541873795059205258378559171213932125779652339537933561255186528690799276294486854340852133361498266543587498758131118785215480614471106042107934755350217370990850643941057725506349902546451624157721185841753527122766052569787189288309784814046737818461981731473464043495755317854544138237788367729086493813026562804025657314918260966232713988209351660473480035607421753045591931512470157079481169746928785020020910797213468393076362531172300970641195412044504851866541607609911762817057338407133330033365867913384377726288731873086172335795600689899951408612525584778096399512771566588792354279124042878315100444489838939856617375245135485688089682763984835101013494617293321351663994254111519646389355209136956184095258908227969735582517549950856257129608346327039586776365404535276385422261337436298204425501515569349380873033600655315446319134567311437491863230957147196053707582051758023540437916554734255391985933641428701532901240002837216059028290361592067423926838391386680626524345778817652934801591309159897589165022324293739528687113680182568847364108025768434876341624485546928586431119428954818224301203542878579787831924279908025087491438715521804257084851317094863041051966845936483234706715783995774741419152905597402936445395267326636826042149601693484324763907582268288864029045150980510150236744697435004977223529991478546059709717019690614935544430128768625765130440220632958980730579122489853960085407085021656290970128888842455795027322890204256982699417794810573670279991692474552137277001512923950263699688997408631389125383525611777808051688147835113575615922195418559627211670400141971937878610944683645990889500137198475960897112433843045523932873073569989126132722610025945850482262414025681997388110758582831396099069786763683235762807935319426169905099357584462974465282065492492643371970597895350783213176692423124023384588935763128102019697744646457775488516295208241314012114467678167300756728931261220284189348556459960210992647143346297461512455488230723473651658456576521699016919885896173838889702225710651900226949317266561683368784034887414143560181356137658887045415709926565590605663224612865739034974879179603520768343582385190709845024222053333289089950171449813377298444807764679551619037703658082476875213814780971806010697474356523380653365853145183684087351507544999374098365738592669640969590951053123041544644559879891360856634285178728745007496458708954122781799894756714126411030017476908744983039722801163675498867114000201892870698681267518313331353192145468814124657430846370353219083535045599484800267612164253325898286430718439180681147511659345832756312580241768967190631047327816260435784708636373278041999336919167953390697515745414164688950613475587638404651250722625829033705030057374895714806986209725170115271286007763469738727457477133502477821753242787388438389047111042830716837405100526953360653717214817230162635231815427021004801364573217541550883767805241323762474082490346851152029915661817767290110851254211503928974826088888350439012394107927843019414504086388950896658537731986654309668924568552520882224154564654381289791267934345085724096012864010838685148814578069334083525673703077239246587476111824489644639725139521918519966993922036764790023972404680716210075143445368076041165047597893972315455771866753787156640622549353554170846801623160323177750312777987600058047350841846749663729446051436387672038443273919182192515214840153779672922318095602873740210739241209801216228781096379146247078060806543387469340373211082329203307070265151111658669177750352056746465961919749700262873594355582938551266999724457162432438837014353341122767589966355729119446303972405174852420171816578176772042609265510029016009873554524221406886214668239892892993447834199286597141902470444959375235366361870275254033803956006539222145094675419236289671010525866010574484795900610012119226852603103097684850043827160769828824896160555677455211830356294720539212836037347329406453032281084166031650980890022962952700711194310009958404009304413257669967213307034110828291803926417809589626527081338041696160710202457798444728346796820193010750947816271298526623418027662635017385932883863927145990376078099883164770980724499299808073199934655514544463064119035282451094154552820348894283571780431797355606179542286369622309031669706484744731539861023162920510790499569132036572638428042185025865145652975740310041472961755135637044427814977274886271900407619102346524009094409970400046573931729697383567193615556382465992818910000967503151885985558117430319181807564498115696708263697163270712318537431620134459432661565995683276371720895204408980243867807311888157403288504630803059768559193477423361660872586768082407639908525276321112230174238139694168946258997503625682679709304833967878163827627017180709662691699551080896847044857131977534473121068296514270983664578983548442804183751073226508396254577964631443371902045301172733279132001151757009724304507192789483467739660580786070065085597012399573398378178261236932641357090905918423719074491163162601493093219868967624129825270297835063860399537911104332790310230144990233114241076622613829186438911962608236160811526873212112993115428576305951215966371696735373375524742301488421605442344577973069160786194277990473866393554029452667610819429417758522187976624321018396058419214531909759491360591043223173784683116351178370367425928598499587874417152562705316014397973682338189972072249004401531066346303618614205119729280674001013343960354461634926913025362008186616780385348516551674751988041067158471101817884447295884001817649819210703160437624914925715366908781404783808031782188978756803983268804379701817113346657301697003850001957843141386522182026544307271017060318006234577512693130778763148947737143745183857036425176097818847129622882546297312215317714017630437116024185856827864692424862557513575559478543502869116429617226233316309364084806717499713557979684282470028242740804159552817412788465131259541899760162176285993793135660856488974443508844661821506068723635784776727195559905480938715685759259931289049242964451315265820830796171135653267972040147685517635670076943532969323214884290439189309302453205611286755936495094107994734244181449866516456109465553920695696327951022134501174636975166069991044364112699780128282810317052839703134131064789473323051353791984090332135647152934856631430772598921351293363444220216929161662135397631162054414132265500947824712959510398857602179065016716583748308158832291760887419746706919177804622408623870750375096199599261617814882709108568025759515485732358649882653467621442138479453512552392848371958479244062647436440360820824194983597744548877601964165374979737112608956976024968578297528980209945683446003495198125274018420869456136530240514305953209265953845531065752020252775070950359879380493851994418514423329304079217454013865091651555181850813506877751789901504585940035109829707159255095840112794837109654098845071645855993750667343289374555073953332046623645449902058860625017907984217078283018418037825721344514512095254718888419223314324787802021433077848222795510322809551402524374931532309737733752291659191564905932467499065413821551602555423979336924876810382299483838777431017227557439580865102292931843000114177013361973341868590631590605943664289514292887295049581773741016657523797201807582303003249591914716355266158568203554463972766339017118098403377489577759563191363031441367153157386941769479337439245168888731572956560166132643131270793562964814390015568099030372053507056306601116317407375325048715084101481199788265910947336570231441284937417130180820226712331072400967432591769553169341878071503542502157738943063647918671445434410820552374698308592536492679423071408332690143281131249633926720174238653990095586857051201418135031150437846191935794314043148227087689071595240842147664010459639553873427488890006781346604674587559416925605374829724697033768546985885221674458221369920694592860788794865663555001784059102133533401363950221733065542253423876617410318606788562549834204020293102582628808858584131597717670853129155197642358907166868657795541155467333025201160259491885857956065933789516148732331451282745105881325430084385506279943838975481021485912064893840588821222056007032860015476367357446322384964837634552761887416035792013572470848153358511058433173292176259371331842548560072280074668521630384361488089656305770858065284270128259611660615114661513348725829429537699405951138448631170437364064626484029726018386661684624185977996758474539377602029619457242748620010320980775251316849106811014046970588259232351152416915753313680530451593950856299592409839326313866540604635167974222871584450446007209315640295836644035245257635101802879459021878297410184021317591691938838984373780649773435807879546736098301472070109992516185651009487897572981323918443076201656964143353400167745482475779354416072456153339420399450096074279725562409039398927607658490910528867777903093190518178817277281387873702877676496705021556795447965937519489327016788315745332199807021087382583962169886700551180099801148654635403110613294449696339053448466431414430257324348937854667309222548886265345878947107856295828280738311921087856578597301181842405735222072105967202268061802779496376174733934835882774320675944479588517179542800148125120867296433950646555907339710271462082890006520336821068518641945125801381700696087768234392021792788606910567533319489738653350744635614238566940136681766283128540095425679741992211531017127158406217697292703875406902845218320844971863956723499593829690520542362881302710021504904189798857371886913891828437721706213969132646397870760581460401915233097595857551005757117087026836283128429288640328580707712771618003347727338644321814949504368634922840415666767903365563537757587887747896580768175860636775165938480045356189349763159132797360968205483821573229885200341999135320290079915074510890938079641742294986312840261299510980744428944997868553964181350322781151494683197711593319743192616878591649109202498336769988533296268078672440313437547668207258849458332750965088299207290156721360012553081810406052663322956499299283334709174651409072756002830218131017794718131128256027409216914740706779037278994323530972334853379265151172843573448939992025602353876184749060589266608187047698626651830974650126811937795191133509660025862498545407514761384637637735165111178443195379345320428056133169251818699117398500535583187720467906350686462899548189526613358518164934672255005035200049695556219555222461959758619479769046963405994955488708928121621116923687308601158281069816133390368957580788777371562113854695838755057837341704266841536395031617827679729196237250588893614557390969218849438372742416725649365024595035173084449460021622303685401964936676375419955517482609920148554024710594220155465348417655288842964218844617212690253439231687115600148356319335342145013930269923595204479497380926353107642552940362712707377888973828976268769525910519598029997647840655553239966518578902429735158900446103386357907892872477729727744113602670295278424149795824875661295057673206275172102163671202743984784804350876721854326739987476150291197050004194463714574830801059772309555031212378040193970114668838153493901577783383616818247602460107798623490890329141252196714291963208877195943715496551633469325725455481690665413989897253023908350917621365488702277956767777794610760808443729406710781104689240651000224082807568411560264037494558686271271239502947127416904040313609838653522757235359093858363527038187530027582815229304527732031224026852920841249371614181475931732424593559507966933717183991010428729173764962915128054017701362348985809873168461356874763097660601489984042534244281964225466653172499734630841238651766842676280766079392141863216454528287492885503640938830987894933621598702642295096527329142169652492686028323290120720015710117200468375462379042714810012526719403304776395357424641413765763552970990380747633045834038280485898912066826939794362379669654519908130086502189661832278400156032583603901111321789107324201044986540870438129571979502017219895343969165826016801328204492224566953995075495078757561980616988088835209965896952650259324697135081516827042491862067760933073675460826619763412548509371031287084163646192175629720941306827884727161631743929954940623885786173667727681636685722713789503216527910495635352491186625517966067511376447292263061914027115027367944839744698059004716475481135227102789897653826116158337498536877837283893434122977941055397228636077636867516909826379131148293619358185360949389836685560653359688592864542478724594243727232991625619355790494628358467308024054256872988003929424487470368806036335711448554335174409877723302418443013747987545879797784427499517157672559470849367546422924207284144795542345278418185102488533075544255223703396618550361962683482014220375315959370140568864422611329943524410717497165100354440966628481229354208972134564064732855344822770976150162692344102829161447561026811792053703596114758501928692467003013600077998348596822879268626061539842935651195595762289065464173209929315657137365271374753194711592393324308158869536033595317357735991168207794530321431836102647551962493090651267135937120179782767589625554398243946923024579943855816340758198902152022489478628449776121240074302908379666478953580828897354891499925528363104810781583014223406382687961370297853824516798565319476583762385539201449357031612531699089173492515285393723529355242267443728166832371659396088832760254469366828222039058762466392038603835045057595778500071243394674202235485828722576186743940762154271180620475569301057275113133348049934908465998473956213470361730658618815138704122287678944330973377296330563245434349855088849739252028218094130893293225778016800792607212909766337561209513087365146667100110410092101271191530924313118834510984359629252347157472024738615864361554410161139934599981299135242997846795148258213645953002948055805247214155013157021346460945843767468503144205647314642116787254815393254929109356045011152379273659692880390308039742577632496844007454537550704489140758697717744443117930789126672156573432640538903365195189857073241828724556432384971272658461510034173235175626546385031603362369957797370475251559213932690062729209992782954805664406165899187799296007856825145253497019068587814437805928759545462593770882043581517565464205438786165414426241143734408227754507711022342412320810019524416024791937629461114762912990701048745937357848223629576029126731256231153628894419196558445061305152555116772610204055755779972222588378676689476014151185897073287587922098059106260458968987393481695332063004992850835088774129496866224556453351610842323425580917816454245954166708138409931024695501471404249228675473729700213720885037400772802747823688414131065458078541449751940632421576449171692905684708350141196051101748419987743991630465301145469611476562269573169560459615930636153623542318617587136660786791225609175279002545047365925898415785987933957566064195699259894447418636613270872012753722366568638162005562740128457818097780550734422158379933668493715530915395302012039558051002050084438825213153096204639255131827924727670569387944130733490077972059789024034783553819365043261960242754537902813330558745028827622565883512317301517996163199489046932223784368395066885322887054599612144174249748081370571133575660489246448075371693303408002383829393105460023954044394679238393044109218602594777994015355347129756467210359609217174134400871451415143888170281046113238903144346862479504762752924312495394674283992004739872869442394669812377755083272448946755106641303697748696630383563720379735154291776508932120502881853313374512289878105120845273983401458347256751017174093423889101336829811913369220138612803832976596210381515826558911051548380840226599386628343404100944101398056166666650736366295679742700268326558063471414117198709861958082491934740543583661365618525248371112949007106396516519262149922262981371941565979293171307450991533297423369663093857337504986358282459928266403289702448748517199336903639672296912401481252953351466008310748623067255416897332211102986267471842809483587062668893026120256514382496755820712053137207373818759362418284583715586851790302370051147122722265774110263158893522192142946094022247692161458198393751667876406030256870974918541429429443121439326653452370385797020598397817699629361323902895753628588315808117933093004405318878936820092107942704360095209481598265175853664469862849046859416730528384092760735539867468787092177740033959590264328274025127963948985289624871994485248605326607940756799753667800890382359800450532399612233526410286505647152125253585486900041534869132509759438304850609079141192811358952273508134032763305834521856874733968432985683713016324580667005119991776521372385212501120748380724009764233355045754270396794896220837767221960688286251115337183807207675951088370810684502536522862396122819910073705464851546701544586751792452633148687583086509423265879322607194066235413047304403867531355905370619822459853163221625522285828095823355992738824911569691847413068331632270853871676145902236769664198616688158847902427855568735239711106638582121237423019520977917787089402924212449852949797242907158786651795173420818995922259502223362054838074416555632571906455499266415975294682209204625641266749024957765496281059440732839738969772754815865327116178302807566661812195210267153529659716543729362304155383941689163896064233980553415217406643602940553640393639968186249199163040034889240296327861876709759432473756243623567306304503702505951608140604521883236606370488196919509659661047983797121840465125013169329817150314826296768632857144074131521705621877995869868807032745082032514738891759234072840583660781944971254060461620921727841118440273109856518223227987282256267548257058346529745196508624361776725101601835707362368514241292812052238060301237045405654361153286482410629946219067702417447728835192736213229194335630890271348276397748179027151839660836158037412302014995279065962666036954139247191382023340732870335490610839201058401441033519672416992052577643474532534174290131416400058925333628306493359362185228580529425439443956770970590045491713244890379005942385069914270930679753227935498885598332123583184917648935882480826221238254354866524851757476002577403530155636935885989018110999596645150027691910217696252306955492968989141028552478334663732207108224037641925110034519210177572587753450201622163509747487746463758639606798103866564126861637168520384569994833347838876761944939767665385585442265819405678434273214831251807977763637845442366281605152827855465811493752859097374615106779960031146322490156226967969028289360141615684988215322365836749077288699965989660024367996992007037647752649372566079925878221805708523498573114098187033787393512996583518627652964413228603109305127283877084152003301400129071031349095608362298402366078239286896698653542448836708130281277341749862315702644322279912962186121728442195840468140053441049336892417905647482424560974405898095174441572794612889684878998342739586739560669840622038726928700809597968951179772777943130417917555431881113021501409634124794191653873605758654525835337224350749600336553567707421101260634980202452955914668262646028228021087052409933182807220565576119251412992994974422231279865911186989477679543032460855517940567136141230647502811740642083302980303419875207799394237004609285897158251949977744218502345815203676331889183540081653942155043656253589757411820695259034325391303875925969327815165574546945841653299511840839344420709553410252370442228229725916912071145754182897337226935602252728164409811236439330402561874978345524224705654054715506936550480563711973663604574975168000632868744902211604114028832322121841534296630554145917065110319647786146490965180071818334364643402974728884867940555846568910532652439308535440582799932088213468257427977280581569060379504727026319007121239897606260302661017017603761728742767666972632912003321632563198516351978252435330669239866456158843276845586763417334151859865171795565190339710428210045191815835763883354473797003792817230789546673336842895879257737918675181453084171386079012113416272039546476023307657842238351282860196073352275902289363537223801321071877975706405396218726375810242415002349420334448833985049530032036643859077442243664131677493566683245624025571682335147493866807747403186451860320349390549643863259612077418704627326286118967438464655718021428287871042772063562847958213043403649733066321584152245318918241038308942185832997866127827867829851486783839674943352453272183571121993398760104773608559522019248978762742702353736922176052290678427315485600216200285543157579702644257669633174829152642876124686848177563027655160070185036755984949832082981261841116588496233329911697250607458037319799269267632176154445530756345544399002073294654665788039979936076697613261268970741078225776930303371353507046202485736973866209751640024613331584099672094031625414070773519499109762287388424760749279430922739067391310877597596698313626455350703059773242809925584960533773703003741916705063128709216612950816362899887607971613021116411493938122130719950243284975426342969947605654379186509091013209258393018527443146641386812989946155442375420860380730320455050816363252565445555204841338642235599645387312540148743572750169597776624622246834108850852206511217339222539525164811286474513793750721048727412479755612674616154495279365611965266809288142479128945989406006170825302455250095098869483622825563938576940943355652433498113567390324719281930203345074337515067138110642803221029131004084730299477624334606152142146044712935031258088431045364767099750292965925658402748695717663981429335127898877232157073555626663154461276845312644378277962745069564885968699398037244739659532969659171166426539948769598661273664321413488337086186132799434732611070059066719507978901876548494016512603361779118461740737071204997638773863570796341952659045080992360304111040543363630017840398058530854365849593665549804410480977537039973270111068383686567823876370070085896139094844408275644363287816341561996489060947714072612610089674595747051140754798323056201987177263511781239883723363413141750479716967788096429666499983191485092659568106427980262027484261258590250144711024938264454235048737029368728981242584846218186589121390955759528156021178176575709274680011104082532094354216095569995189027108602366798708184776781912815897494967663004979537083481861451547851621063518617062909782038713819730935644042304820216660793260078727370863352659440426100768374903279241560259328822338324042217575590132462278751710660673739658865057439870006937586085480207312011917561516967415924989016016569540811205652423030173230937420174626140527221591391517682368820836865184349876476323143940130839321588119657818170826134393569350675788171517991905997068748003145638001075709439204951114142785710969791713408639466811299652474125332528038134517157272594959117556252446620692218637155884003508507700324770283077061174356712079711204571876218110018154270469484094743336824908103609179351355925613722134644089149615217203128133620242135454156730119024846223336890514370192817952639688054642655651786015104124214371673779209078593986892737891414611123449405493122346448656681658701783581055882817999359675778146046225877959871216558196555342335582999786592244015415313803267277611705763457051925792314711202134034182929885362178506642834985744480783904224427151631933345168728473715337132473780006123301463524406489500458631805394316561170782838004593557704586444239364390999388616054673179692393296750727532270449533560508450709559033300061247758957797518864619258184757699524808580132076443727696992674799102406105853992575771238255477440099037702698183071745298352998774056615312470104264157354043107823102357182877719355813802858071537055355465590541054800808500885354314878332565544237135838867571379784708592815225124485625793576077169461178645141026483540555289506860683006304983764423737743299059885722220498915000804827942155475119376228064448887426247987330372229789874793756156558866784150459747632428794967530021785662156128424067824370663846164523872771606992749708403161328956200215673218586342611496098330690290954588421935966273798518041193816363495322512887316766752368340285632696747304348851946725741103046144629648908837072748825359942977968766459223478033988435367082055364842852891502869108360009859593439929136190515552397364318603297554830300145317500764833339708569770448717013826207386079650672572087319843272470168960225822623584374856612362411210618449380258277467459972765222788509745058837741171608556693827326913444495864636803558723068537679654674715877040847437654618149887813744137900564944274927338418747953266813646215343746272016582860201750853841428624615689690544088312653636591408883095243212930716694274616527818782176031538261107436750842287285865190071314050135695256176291147682423394540221760327123839236839177598210709437286615614399500245440210778965309448604952761549282518168253857747755180518388486864152812802066941779893488284831866566595336359776989484183227860813583416619332471810493916018039434802608623709469484269093872175339438616767140212476345379818284608031835248993809540224076985771148111780902034291498759422275442000194724371518711268472268936720044957441720612171991162956128401148878665973648210459271972594798090531223498312640012095660058254279808743569792726020159834860455812699022283996187941446483209944661668528501455041125389818966401895523327367506196271387395699820959510729016399016664240504512221210988909522415137070130570954861357150729796356674176548485471080980956457600752925858553075403309186846097762037683971460321430543319357180706579650962091421598555812184501390332645019533537031130006475466064827270311198374703706163070593697771157407389561078065997159428813681350161550738922113540338703314085440118585134498994042825003949343169783442137624298509938201796627060677600570074654099677408897673764785189302345270331805787163308335749677287201216068250706680357858169303868721065433988249697585623757056666932487820782616001271563425350496704742892171994213851593094587058102767348520045520480112637811398455358808299429191359424824563792602595076888377066535597220746218034186258760619451681195939485291850103299628853739913659610693999162707878205236381588500398752504219661914540219930159558387763637330681675752978451418076162401498573929218182483284681660950549393711136726822782096184952773432888232791422214407567207550301466968452526420509130807467493808535458194688009461467582260220285585288487741993438431892232620299526720675589054711240160695856395356621504150054602148906127026123297300607712277351795311799186879469419820615982342089262673226346201361850334528718138215265597151227788902994987764510100731066383853550291264290306756587363228167923860572374044983611686923801108797551072460135118897370895510432691116396667154342966923370293631988995915624385033644981505727252626888570602281828360430445804808324274376679683381920884388838054583615851858944784094255975489432778863163072996003741957767822739607049773674774370148038259325860800730522134129493029266178555925929599508713193040243477209005197010248523142781414672110945913660436688518710127685003212720385055304602473390390245343225643064373922390424212889836779031020787183346688074363716737549650112717622431120150237316052332483876899913685460116382854000941620838428824620492215057550433850443995901652593302149775998096309380356166571690122234682521058709173274103886201425563749152689919280894190077533383914141291174343587096818151950292924201540841537340528866453117010233307264094042452971631770709204945187307569677168167060235919221945958607885381804498966126583094087563491638100227928039686680421803920424513743052349458007026180721584711134838450919675020090912612858918906952450607217297966041167695581593984156226092656713027187125840603921910537858124126569810277160568514879748451000126149716493153322421512339944110644486332410284896660373123303259533495087078757855048916075258394734409253878669922409961499406979412771524408768588173235404861803207290419097520216122541554934018041441195002630100596048661714910520666990291588699738530095490153962286971248305236599174683322664458571575748382962493580384084813274074938238216094408308187633042399672613665816324075771739469712926165067482927952029421063936573645552495000920564619308853358989369235267635019532237194600210357931300507402200827431889689578206162040267032058810887212018097316137610915346626751950518073064383920741466787411289708746504004903948851046689291074161965564244440997392920814232569794776470847886690084567263446668092913621731694772469477280056830231925860141009561375620036965517285489565304708092291639817373012869100788048839840366018184625867429967285644724617636682668380165437857413399094558820966145641756776709375792840061563066456331849521848726664179855678882142611221140010960729956858539159064845038715691565772562228249074285936108802904102998982427537193511318688842547290164691931208387582389641034767250167606137000672935570541921944994161502533072925667281012779328162076013155881616459563040349791268848900476880102552997594778699426316771824921194041302374795151893843826722908020840452113034518323727854875768188436833904634771383920660074209694250685451720300440215226903936900521067498413347703726350904029550154301085459880622623603940951723357476788788702114918289322655486820679435983527848199720242416472397797053436025831561559895886726488745608384416487992007826309131313773470211473317795738367257731991802398628361046811170139598793943199288736920662349082641274548740242493744596548558705548050656537763733942683130266046283038252916016288434929582173259968435936000198119882747870276395947485617998047702895474136337321656541314142762407541172377893020727839927382093742187836983467702200442450820565950412771964754250253017501134098622049806457425421326620007221480530812574677004226851234921980014908845575160154323445389481504891329863753009468341345664683428192586818129773258395467726052448072297180596842909289495248534768306497665891898076207822999693013255358826044397206287907750328535965459837378965141773104908707357980425541323662086253807807461852463881265810929636745061813706132402823518956938103606830245574729838682892134095191376243094806301159253732744923808087728127019054152136697744530224654961403717041796916740065220863824695868789463880113112546501292554496397412313823759230302575041066263196831477191171569853308213871092367685033931360761013589099800247608140948742540039147042512641019952303392914250414180446779496720615082272638038216037126292979265703020452710902301624481967655213899820209709221368714477516160077936020088618626733350045386185256315671796453456360136749611023819159469837609392372917308669547910768043288925402931518675325741471803295578779024508933378582421454936265380085189961920877656238347660941596210746110224918607346114098199861561051209486251404834481863900515508238111602978550059601596034965419771766077566497414435623962107144303771566104075002891938092400243365866808828339444521619075670968427570013515514817220012021590535809045676963304657918719329049522651693518367866799489814532707399279533147693815332548040165663759414144935572640061692593173907895091341088043136391481296020323211127825293350781102848183797025209409229809373103056087631111789199242461398178051343016838140356878856250024198723208119724634174754679116918011983037553015534016138564868067856152370672286992483261849298888843377509545367906101490033816651455225834084905650347404515138760395737590468297338974242343164887233452966810425885597626527599914756060592180524477306305966753459988683679067966223083116469956391902050785763822810560570140474835851058762447763408894245690833685069480220066000193088136800915745374121603123962540797890214540390406366994517641411331057848512652366105713856028631386543933708735129983752290334070520870999543590274122235943019538096007206195193500363507015166368339645894129875571945270471616944472145830933874136772436158051582318278365719169962656398854527710717097363091986533534624904140126587193759759636718406827977177729557838391567309086955298034196262879536313665753568893728612128660251808381950673463021976820962790668473526790399614972110453588995258429465171907543147867969163985663893040730632499171901853378307861691067745717862345439255264597132822044340188677906360052406975942539014292454837365432438322954612997089964318714990751316753064540072736774128670834913892099940966870121569430088792059940597743727760256203448298619302585916070572150762906618240258481462660575662205563258330389053156881115629310855770019077175263333569379823152986926579857433392416493228344789696028525704362134795421410373901502202787045981981095038498579605285558011348495899266753691200512274464967202978893416137949149936693281648207279310464911074122191413650353559701764032830165626409085319565917968412274616840907834298414943897467760191581645646194509962590697992452642061050529603868734881270021762609117213834785171923022210267453027963812736024761116527521584178814828908927020328638181046736190007579481835894312284449193089365156777060745042518261972317435733544741439332558670986667341424120791525539419102901282393693835134211108994723015585184164824368116289172794046272121001404899169394605562667770770174560806955916726286092275665547754407418068028285690055654728420803402935735702413772060014572852215118798411020426949654984194583453542647847002412327908925918860236853743509331194862201568530291917638585554187295849080395004007681522058777832599531910552511363448794949618037977540054796186194861785141065466856106532199915342626629977439849194350877211659166297916933418921904335830128592686018269521795290138526565077264077529694555629306896572765829490290937389219453989756167224207129989850771070389252797983513920062814311714810712262870643965386800475201691211199289634000327976128392304972944021933072049021318224026558171554851885745550051626691905944828792681489607889188528196040794300065481957590357899281454017227627207798518162076357247955233559886283543250264824967004060885549782768958245475327507206892940678330222021623131532021870712196899495665996622163514693388475612983670303160146476209060578085177266963539561019901205392165871374778042649743791559021726556777925917823314667248579762797377008433940109960362066320933632323890230808281790018800648407152928214350928171034933265279409967736316438537009889523261619181923133083832681252680117049875310013858642244382246666426408598761018378359003336595106219227034733239034702595914779813313643961501705003646827252423549076573761578132898582263337551354522457205588869904218784487990652020839366210612034471191184760051489751127143579857926499265419193558128401820699241305160708950058670900857434285704039963078975356075817690453248364973311213731177909058119310464027346712290779316930705983111827780580642009375779395072352989610441538850895020854629937372766637157995495110514567098518658854293363390466497077337203053889860462444165980281530312131658561574033580447498422498495642422674162593474619764904207022206642929442082644678376689738207979361183134502547917538278145315103584693370861158446762613692450743550339702242405775501470917080479282630026854675521855509266649801361241936673937437258017574660097803978626172040770859778525804182730205755092988476828946099920756954807368522621575365470492021422142330753006886171508078942679721627949183183071417888645418505169489540459548521535247697937346288916486773601151613440757711223261716446992297315160025587811558146858856636341523970815727636911438536171855272879668787974409950271057440298621631020766858582774956072717926041933813155469639402422517009746871133295245100955618793752987390231505992884458701271743137525630552473630225519298289769003330377028686601841049351380494122637568637752012914213841491529600019253846342688003601808171215362035965705658191337422954019559628281640828558160237821650011395738742642967830255939348016490621254084777381970750121898309477062456327841327297967915235473192817524352857563024062859796753217958367587875828426291506825452356851318180938129550696244559723759794949420533090383496523025337890578538114993070477535638326665134639102684481191493513747707542241478053031567804418585576354890895854416249757404611000386682481695598122322600690620887358780595263065633606043929261646394863289050012727965251464994716437931481907985397878647168274175492299416529680564048671792930227101829592581597422566958765281116543652937745128419483368475171623420954131136740973485160549513099472018541751672180434222352340256332244095974199747821118916516193660578130552191973490205940407863069058676234751069695480811077902967307332017475339965866995675957550804701882729157353251765314643978522478422547970146644754309336768170971378867386402056795184695742263113237695816250060909967397835517139778082228856882697090344777293157397422638760519811290289611152446151299096623413835314057493246133153257548529243447460922977078087336583229921721465288983326490371740799603754332513709987037158957984378791005474344412993224875867137763678030909507225928744862340241342731320180377391494192792424620749171831025283967255320428145668172680228602812820930889969926014447781930991328397546055185967610030225877753726273258045880618396461123851534233600280963518183054009961126068890945431425400918647429625609884489876746191266606622727836889349654630262687480476599202052062499489781308113830730133721271799670322241934894170535846713497344313746256550806930610489924876203429440637534705715908134965162290753645877950223337546309274742259397115727121156567030151886280618813461758090182128313766831050407301347288140158009928788988334223902546858066488277036220024061086677048061227112209223129484811984391583448083262281869597233655855396891752347064465411258125916141223669388106133141687527489072246292241330585089432118489639387208839884511214509191240442579328271259220949841948331849262756868856092012021726980586628085624689139490592464076781892564806931256941154372039196690808204764688695549719538335660781432268744378174760250494261356428707974239705297746687741866166075434378748065232508567244403090097482537988096427302121749464413131496581925172648525597887387261142469996778420719572400885146124035384199901998020348126158345032843542677639978849969028188400498746597790188022310012015436461784050174092156782346810681474906131959599498736732387736219166863388488692485760031350933756543177114023758032797589403196921191262081929038647993064698352735698954614398354155819031713058148105361748121412898891501977571004846353216971109613482616451430623406831205793349897827938008868197726684441760655388416822669547835476664186306055285020276513135052072567896299997872345229623629975012224230395159475845046344533604689034314097255875163466341879165103226375961324067025344573615504977921678674361730102577569069154104051269852731657850243391404056497022617653357426812317042810377742754802105881101474492903707846522576739040443029150610095962869089048000271389158639675772353895105884187318690797354280534953849297178769285743618423847564416038729232526100964503653659246857023808175596438702630446248940699095141710224062397022433058221371991329884020986895184980003865261292269888959485782184240770279899203801869557642140781458117535350629156194289675364944807696406326723201986468439420994502660381318415458368478497799569279171406659464341182143159003030276712739839837481649632423488051184445885745397619108606639868274300946150336026971514837487171250494967349866235906183182459423247314422181520648022161159161433755453960829539375773586936791061006937902747655106216586022776010713746430892347968434175704813648727618221161421523786352647471146641110487274009994481860574251327027724979875537280583335243442159422971598894891937307263825066718453892225360267033856053754100197358788732507322174070344479243493004490576316859307492232924057633716167558046687502867670569952479648972010042736341838370490352618932108436556950796608881658192608489683903564353963234975887367661370532139290578114820076995786556453038687320264562739040002418082064812884940315575873822640104761524631148791135343342882482591029408914714436274711088341333091150070727500639200122684123443793629983527016423084912713845953664662675324318327369615930175744066779752354021308535050277413879624516972186569569230538879261530027628048510379446388247309331544238199411707477613767684415227785605583953794472068315152188286806033842123705852163932285948144105823203208580202127261721793963103056061790215407466633973338216024637047061488725046080975224321736721606683561551667526423988876605050412201700289278515383686223881727023344073278913644084874790516002471470064632582399604167242633008457966960306756412879111750768034207117115031312478278677719915117719817876091227492661276315509641911450529496744795556124103851996558604157092770273648770735395469848655988248539526310493417583089092728092296762905179945166544912160552622844199006679926023428886065270064640285904872739290227520005938119644237810777017047092304245805243655448142270645490244671179487523930262985669717984648990238234350165616431095579431452536365555425163273665711716428867335256365114444635226718494259444885282063070489020321050809634731454326024739661510141470227598610056650192803559631594496185332957953352627080515806352996428899134311729444543292791175635946158111235270084308644359401673589431361679996916194007750578291789546155148810941403328239847521422905261360549722215331596575573840718256196133614851685972981209661648945907031889443464675714249278767842096285747552363266780776993349362848780427789089897997341670937157971199698182443286656853167452414477892827266561924820848767591966611530404948444705438510128751581029666970508336160086579955054327110979610378529612713894098481720277505496192593481510024254357597151375320291815694568206653544849227575454238053196459139771812223280503012464105875901053279230726123339078776596853950831885793808031485841972813375867189195045316232324280726254270193986217138572317433722099555445051100582212080006414285036017943236558300322671654464074777129611267222367778585257134807914530560711988815215945554119796819900665659434660430896397269425657579923962017192361875824611061037400456598452662735313692959174335609672608351030932143398803257291660522790168599287940747065276594017700297500052156210496920492839578674393372609290515342673473996181106571740263373819307223146337251176427487946323973016822492239380730428604374276076615559216068263228381506183665942099458023941088947700644977253050156909602259774488819941111228795501081825944598677403869310896512872615729543963525024090312609673112901759931701285092977468377628550439065362010849398274298811707132237586611018381334072729865354585414764296670450692292884829628027396072908792102826120633004189040791084809632336268226306128710036498094357287213672234696575857725569164802314471971821374653479334313492977611680311352570115427101621932646307143532290431782756820292025804947127285220724509734109268279861693153014402914478201877235572602709031584319874121450174834060117253733110823636434637487734076518538593958887909314324208164795759936305431542083712847834832818020688696459411650699004686296878349208086789983915996657247011710546189070396396943909301380113992401704120652658947080454165890064895160873727529164306597400933490378959972025808551487267864244168334607001777256868153661584087745191850523980575721460921528775069790750528281428522102204010385587753298392972208531632363760919210765508490802985155729666232162568955339524504115788249949654783601105811865288877483614541552191472577825771696490874755117891115787272402960982198057250050976339120854012555886206172933005476909142878548305283515119109494813586732711478688350116341064034973980280463353413663091926093833927337712396153563722205697072556069106435157599060577241448739267434740871301343075151328150200225193562085678808605664855421759368484735959529529435784532637427970064638314383478152412777766395255630524885651048010098443972098965666881486599183487355352739480984349978342091639988568002045493376237694823822729927269939581400788011489199905200824112943626009658929745908741027266214080103955666636794768792775326441363191301430502684948616311122177942961499158916923810963429071190912333952850481796371493318804466007815087066108308688278974029538031506170360245123034909345239815377247352245263785614437159166153016103700604165243875353717507622096761407354692997000057658946747221593607371841218654101433259054565184279387517523541128520277463599186370510552613826724962001875898545760785596726925916665932979349710554427856702195455559091674921194175187025426389124903855243661138939400342574195850447405140494305025424213468792125718597925573633306271613036483243545541072081512540335984904484146255604361634311555020011569163415000564193988883973250679517119068335895903838610894826948799633283803761565171113675241675231060262185217569923144674329843935841403890953222272889601470370383819649016369766040781893599639765572712510176145283797064241967031674367883482745550138101192218368315157585156937890409610633493815781326880614893152928062612410810015508520671452101451361806562404153681971656619607961098600690220440438962663573644435191263849755802224225186298627774842253511752301031767233894088239174472409030092808678493858306003737830318800894138436143944562133780135602824061883432159211913109286506630272643188634662076563439631368119369025869448004524556831792878894850786478338692076962393860252066615932183979123602773416681657918391054729225681928897331977861302523915073559773768093543357886494145414513190502436119766743600354702915165107897302322119696699318219641905104542329630793610428289486583489248040453457416710149087224204738874192271338591172408744478307406783011401580004072135491719732619427982994754303475320737718694422128970033926535528486260033260675103395607605283519303494990005028338662598065751257476300291065619210301983465066352810050444875364792647296141262849609566815711224782944022351806438229649312520901026891017793739684402445433752181254902333930865414679464196689587267473282828514444444352949372654063653036044839208638657814247824577777032482995108236189920256461663898657804474187320389416655037307289851166431510138170670264040009571267084759641120605233714742074914316112213728252554699335620616332447509681117500343075927573667958130364207630977965246339684229380838516830140460468244070580101659707164782788580118330983945841430027661866525485125515776788853744435341120859887461897950889696364606383324499206075497760543116294233836348707294610113028104113874964021174903636842429867995372630830993959351484135338672281961550680143762838347878219918575172791418680051937989247235779988501400248638434884152432301418232562495710852556915221589345065641433324257852181327254940503222012810347169367060558631594679686554285271499285802146579842538151581987250047267432934728390298400147595606550702134301470293861665900921256845649061818222527079641977183862644052891104603331448452717804061694884798416661621267056013307262465045910686507691490746246274811934593343302687209870666514703555336480724618122005134957331163559816994286988203503358058989861570504400758850031282591747534560388931475056396446753955545280879372797941822659938610282740870848985459342950289061334002980406026459138727865445028054907564501679035710010033347137002457251248081810192593739930073668122467696345902919474498931590477045473573393208135868611171834502060821942945600298463897897720829070693139114823771380253421728798467951002049786281314556590603568802409577270594271156284614489170441308559844036777309808602122437491230328359201702972922660711030729156862797860623171032921389851049704604988244456980902922839363785543093907252206141709833289591180126544129611318148504426022800257033946612196773175600236670029488338425515395710467585524161513774214023528123015586516710328762216594392814445480052211664641582493962949062158857656872769094710336775575314601842464621638799397373382004728073230864321905683418740389398679938136234230049545008939295445134930534963732747689151159256486641354074858449298673652883322420979510590661158346032246427017310586232717440970975818689970593598466458261521019804300180262221175887872398018229993379751670591749868271929924211152963133477825605149883052215986479750118950918677918849297284004835119959189568046086211533341927849304011541385478000412366269501665287627099267920493685780868692497850896715513876052461905303449849719978441860823402385881755843473317270612976460115949138837411390456888919253737175012483569535027246265515682034123299501818984187447844087090743346793634663110378413263389278881448656958872420718437147912934855436915338231118569485923331265411820771062865051734613909014673084700563117069171215218659622416567156273381493742294215081201048627922191317508606652204161212077932081052640540397689533648320210172468648713297864588853096717645018714834099167306148551783764513200301679266659976777482421721959912275232555331170278445128197792191099148851072624224896198301861037453588998144610527826014490588382378822446620433940093604640686840288359816042661577017537123977956935411012642971563734491405657847845793675711342315807998561901670330488880396457243368492664230963975993312240961711079068163920274697326280293787948036854594145008473156760533979784839136828704761376586037037861686266348256763511271668281858103823412204206894665372783275742447935562044312683098807368542264085925713135519084299781346447605182511259932913886079579607635287451307397816931430149298879220883549654160004436995028247443632828012930175080114126443093132696043940207610890627603907507705201954746063550498317073092829016556238998638690723122668542737947915331271140829037259873534021417437477850567905925275385925256687764945113020219245066937807984443711447549468584538888388796825118823842454620174510092545880264489435149427180355618224873014619672518233443545347518182521418275506931853067970054043180259194111770481083201066170311167983604226665489052005113637146710135342643057553128743202384327444743432309682589559738309925456542320140813821577087665689614083649459215208767680616741687020610629698012013671646911001004535403373415441299619628337982570939194601786281428169393096573485822887919494595619306500259746337481893324394116895698041364485139706193544364882737944729709775599509734524803079344756452475967207666222412504541136297187220697162379479384200032269334717099841557063642141611578870978547032167228382628917449849650729132959447763131639529477874955802457407962840488325698958374216730755265517471515030309162415232445951048992186064028420365315442677692293600825222589324245982479281859455282193359999983966971210785741961019952160395506425785909882996729789698394493122503808665964290272962116025168717939159124756372129675641631699519786533069195215260414408932073427913786548218601114588140218121252169109644434229036365335891234356412385347981428635697687984828208528938058718732525759334353435051015001513801109157010823546048098448233590751055492813471155405231094230461910790768970910941594927099604463015722639093858519775533277907482061175084076094076603580042374815489774604810349716376700907862099656188736945804721843697295452601893467041454607085665951322670892922463990309739704096496349478487541075364161976524259240754367651245295892662722512650541134886546958962763736162541811893766510097761081172868830489541529590663809146892121929469229919005943883519350217648610498985587733647762590140223762744295154809827413914935764917252577908060463617329329347031546671140153398735819774506844106210983082368810873687030482468442032925674019842015873686102523733700941799648684398008735049588115820275070697271801141125966465321611329838437278500447023447935350344694175215407660936937630508913168167412462614192367147186104345405651312513626345912912265870277255080080238459355982011892980036999415130485659344523840140806722669613777878223536906167152724703228380798155981026025574996196288560544506678337620566701522921325905498861119855393160927124498387892356896650061457402195697127966452469528500467480389447871315236477191235537479183847523038305696575608197555893431511885908558808562816234366150958660108789601920198292307185429574436293121213666504323642034837529778632139017797676903590364041944526295434564525479655523058687499047182542721369918461385080323254591669421551060907064471269550147362807809762075851994402125111820283126906366380224794170485475135575560229917505741974401951993700433412785783362215772518453852529849223354562649829338102809056159786143102969569945127302062941224444983253370218992834488497464433397213263714725723724528232161139786285939433967893351043847125688157854272076268359208467098185469091686929713705481083939449239912651396114523935519560218851184458112648370763817206920812862510980427867367594755546621665108987764018194716462976251280395041807134848899507708004968821556085710302356865109399633297512466183073462490933532903611592677466388851087187618506764972832507802609561011434537715092571163568434950479870685015236791653222281595024734529627503368616323265054866422399800930044220713701200884425029049070743215911408774081106333563428734505569873365911861872879098928226641876325612407710425664560347410481795267379271644509666610240351017123717884427511420116878011045834244857609728175980849232707914966855317600947213101188020748750996346585761823376451400038844637265578696647616314868329726686584738090137326284053791321372383512601979727219756382265979680310277882627943161845409981309438755287396026134424540618653832868426464230414006671445852934735860186197086878521317826718375031081458796575800096813244616817401793674990546658222479958164133027959281697102448710550753974658167108511208115053158947612578193766619638211782210086643406981638963943578484831352875037753444992310350820975310514673834240979960038578250847933503609675627161559317521517676256525975846651698002064561085426459274639168365006737263006676304692775502526937507905455495527705170818586385012064445916958225242578070298849173374539245240193956058217428049715856526616727290156244131202724529477408281412950027318477192690635331443261656462546185393567605683286607190690989807613331102531509176443038879700578911670336569163420510723631246571750926031811063799073873046278311228376971850457039956966753027275522411858560532365506377695478817193987302056418144109990506112337428540406070186392409199285812114287968036175846178217070351034504928453371885637113177864975906123285500969946995554318185763184309108079035363564990088819079010679690035007055460106595519612723465208256220399521266606599822541938161860688748153612087003778658408731342686655180220656418889438693750929854818022541708707043311624615966364795498610856570307989601430782190662732624922287204613809599689206018813611696637770352625189034345782862820817103696555436296790506117316614732705441546935572142656323112244583074166050458366127598733622860574597058203520813956761844137627959435183486111090976776883512447575704865678939720933377517965503644263426753255524181061091713002248557430625978484750530205738013432064585381164369037457437188766231319826993123591597921766519334125666115834657370816900288844779446115417373042482474326389724881586962428342229016173693519876172627298412549336577770566370316502622759915771847740588974551237529339622202943626208395179412628521273930542724963084028352497049558767223923063370176715162487251475474066520029885600112674089072521683073509820118689905574911682760039110616206054024964729418840500145522717404891331032291664296483396897719025842517388217391791697894539465128281493633339888618890604236568677645469332249929286524645758873335563729089656992604270963719590008962703645056196424097281388121293827302763770900797254368235909718263632967829058802157353027358566148262030359605801080807289378782738682147365471351911193024548299113646847424606068486557348372400752692480479673660376837971398408706806773548812966201065880550872094361616628031362734760839068958644272081174170237349848599331093214992453800672007042431541060924757677088355570408948236257807092687234217424953777795105886947066497094367988696734412182847344996713570077883243126641811675305077832581084307459134218866012346922964450900061742576320626027059207924611294268635933940657149019218326778401079435812825306459309359221555745294822263258882634991469744638280411428251228621878845673251074272766235099990778131188133609503352296966389136909102696444503033318947228508874950085488652204172398405472659075153360932854799633669445456614390430428441392669013521403169479747651391448690068206143525251938467508168719185279567268681726606847141350596382222422683987227294505190448998644699331054044025215776545296148776209742340728222710352178107347212410684242619786407751450841377395052090401048975749663320087680683631126205619787263832189235613045214669211869193778568186882725079840571127034563415319341493313698187893122790918880218913963262378031742152388839095275629191699930095173641384287601989175758613874120155164620765435236047162254700204084880436569800626360958844001704945511345640629091795784448476914101319882923725403531479464912475401891157381656566992627576874931155705544912728243695890063642692324918304182319290577107061289382239474703579047524752078620727085724043100786042483326911038742168458686965971320733573932535438113682038623228544184757980889873212343541976429976212352520876321670822457071919654013891302239994787653467024759377142800364191332071769172600470580355370930714840093140960792697149311233527493718523581614765459553399430613317913684964685605288888254273470782092883995923000077048437423469842671586248602550617042516791235421180708771219536339565512322191945751017429734799986529239234483735129420200627850388594606229195427506050507284043719782264730658761041268126787752843419696973919693642012848891461534353692277913312377675546888129013799474486914392819541903990067528635219000164874220816796388575610068887450849011488669571150615569642253232862961018260459881673686341853729408766199542512830756184683290958101190487060537854815230241115038145074067670508896259437072120594274829290632966761584918849760607599702283830889591769075381783370027006267218222256070397131546851514808164196480580406906359175672076864694902775647098476130022035473371617970121085504079843404651655970264736346300388688481806452044870205663127328556177398393644487098871173006802835852821961238426604391198439437098014106171704056493094923206968583495755878410416393649264472081199105766363699665179222249016469112949974433395049182589547861613652935689893520451460859186299120313967175601409620780141060049847190252629870692622697592826785069931167750752980525893963526590578825434942271239498769461285690339207187804552945456503680132248204077851476537238354518542986857273352066896792309983287866860794000528891096914058313392081217087139448097988935498214755081042786542250487248800776766649146084854466881853239089727242795273145380619844930578103173684907576226454809225653184639923316781978857077016983011266653747049793031611647935689497435899143578437907816403663683158850319890301631810328520518517588885815703696602090825477699688609876621900889807516541372574500100601133486641797270827479316780164780187826603452619489475429648848578522628379725555890691909716057987598231595961541576922005622637917771965871870280736615162268002380228804431570489397285984903974600583815992479865405144527755972297403039336164885400230725522953076916985170360364484754074606204411214328807110768395444686961153616995630793168066354406669520761774015589542615117271091524531828515617111544616104985551872123039438852231456429453785695526846619254808116793480801826283643486588328937418196595963514205029124454267783964549917840802084822682122249899789892431515685704414407365932580459057529109545288797436722868339971495104828951509005492914417749816434236529556207765111562525957968538152162281057612085032249181602948230831468275433945748629917836500027552178993124596060923384108756333902957424392494677385860311432961967490289499642436647494131021487934704879924680319348765148874743662459883186326913274864095958625403686241936497320923380844651732086991489515761748080288519833467271199713948649156604863169174151546464251264286621923443807250067580469907644606824641317809313862421051096027426952042071128813093708436893588121615718400831345620708782030859584223692517783327367256346670481545808596620360759422301747665740099380018595757659774860437393749890429351931500259070248510545704176184972177433014377124515441565408837111866452433355348440168408645350805650245612055247669643008395139191430075192815538321535988012622632144831407812069996211679420250740122530281669490559004508405463722669666490512277918170213168869301612577106249284846050429352359841499645231187424469731325977730918169428304155153115029983229492862495684444304477568555987644401136986152730289486066335548017199169355405107885211278874517969878602355977337312968522217145245035369264312955093767832667243776554327130850048153589185445624196666759826392251084537347195093070355195113810746693625499746561780288364729281544294745282437049705285417137008015935074770946503415413452652838535329137257047831768234599625629881569135941900609515951989063368472844767359529999325513754464302156768602547508182782214611862798551662974006029703632105093966264632174337687225285217484146495520858747958095366433598611125769504649870728749486557219734109563578423661931595521052989038292702072774008708721054644821547173626909629146073504019616128647404318682858070585470914923138343886618744558825939207522821028755229574473399689113137466358925384503408081497546314960610821191543468561090640049222945923336073330676720179282748087109543619718285965667517977836322251002296074319771043154622879905434708636598849493019086599178213072831807178864052365139106653295156152129405141214837664669210997177338918834766120403167798766123212218017830078178469867923511102359849624118063073912485395562519250950241534245833299133591086619808519635013670834834934961877100326459231438243128629011953924874224051069545246010657807904011935737741060305191279811475697135413604464559176289529402803866229306520134214180108680653837951876869925439743704465092961972313287264123276035687171705948642939688529365929089858214507476757860249764979721564163982483090573949617347607290165594260016796269329397151327994634221820902398278747972750986111059843919913833617563637317909066841842369483552789221602558957035052654205881621816463079634688582239601532502198173847818690340887012516399952663190007185585507054835372599782395990789450715743480038344804500271902859588417195338582769835295013826882847755618609164649900772296996414963358194195166710699677267939367410279551548671512280400791036391021861807057237521086643618020281147694164310979803521661892449675614510047366018123580774604320992756413969902333558985254694486430311395561355036078232997316973103303084776456108810088872390690148476073631065934424994654105645153757447827246260729674937899266766098027172908574890128893750536156001788368902538873635993518793238078336036917147829461993086166192837521284687083446783423329975865666965647730912152791104472224846195143550010767091291637087143334966164421085123207776890166920611418851850863208333016837345962569386899848423470115455084644434832079459158748407344381084443236030925515735910069662769719994040926881496185854770798613841126980279578872061321282167064917656299270849279958209309492645801046217989143638092071846341814018996175550821896578513551816066480194259294552481084755013915297018166408592255234336401518776631572358543759661894918111079578332071281245443081105633140018945066868843213553470637342782420196610437977954232015260070728711434326944183028628330965382245842866870526361447027418376904149735852611399180440980823400654185925811305086314691383581264920558939432661139555631047161863790425922870709251732496923732839219712914482960188362018149397710594252157179965055089327447505784916466330977122824577757606445863422773852424772215750604291703191278596497990909364238812775750123835984835321304886785212514682434102587716240063809340680665036972003986787899248264303143353241138864475852956181496384954643651164546753048171673740790487405994623182967773576009589692883677348614968835408431096832903886340666580915939481559886649354001429256192884418198027334354609457314027606657748122039985844793472584185119930412246492992132719276879977213306328640999631177048842248392730214442731299585141472873044172227947747632193174245143944227917748406362006171519500524856296732416512565700991860944826178885689591236684559283325639553470860275129949576585860049958116434694436738344498051664256633039151192187281757166676048987803847949195556074471100362750798548498818969527200249839388109986706707610594864797845477246394604141487303894295972549313121139362459182834573402566151771789068957290161609661759742447754778809716429633665203353304616128059416719271226177735224450421674686086516065177812561545263363096568605900884490323023614277352440167670048645479268599473824020489115220765352179027503960381898231171631985028899185208683127928997235761993124995909052500913879975595067542214961332977193193540044720826631790431159617258018812298718637586502204687741650147494252746950380679686716133184071463693678736242567602249464800924616355252727794355205603166326446072125111943908212849020942867733684033992351592775694260348464198507193165968911961618541416177297131508305799359748700237372341229892557998591823895653685909205796115830321933321923315803998943968914532188136237452033148691248964534030541836352429481432743890214988734116165028838899590750252921410989132042040364820388690963721611940723370925425447382995975680026109801473526326873939312990085989561847973007844215780682818358321064642962700586827441857470308596570882663356933138876834701719032476631191337439770669140546533554198662346783569084239702541014764079651499547592445518264141220370140429259893592549293539912383490482687990276912690403837014350288233321670429302164339498663260405777922700634942388758937412398753332531100361919662507077179511404572398012189663020265663552257949977949846588672160254280025867960856182140912164579342472166172922132918564553433760919279245809222656003182270458005208214013936431737862989294318129798647749849234515301242545931712832531119121140778815059509322924969001576681742279941176999979316863075043282665327333310241936194163172185628321571600008280547265076226452475692505392612411747949790277112001414812683722453556820785841742592724949662278231561406970794185067160302803399896146953525944851325332073215863246883632418610787233484245002524999404182492003127579252331524343430361260092991357152924911106287610773821209958814244283363161320932681877969581409371872260154495176211177298515467096965420258007958104759752220256408897490246917760151872045301577063147047342796740762020617435086523171597718958746696389109571744074248544439948446341532072167191759791861058882934363985461925033452130352840448830758550597060366089466966127385380048917364306661669414867923822518008660872787049889894204873387499560669566050157380908580620296946531289226547162186336925888149866963824877412918379445474189582758043325499374178103384589027341870889313753675011573111164609245808919535773072722920981169109304509299773184589751688211063211721972887092300994347110986547983732771171969184305559938059665914102186347342637347241215789507246136152175958946439061502218373513510375973829914097939373913260221654799754039163444843538466878269187726596606106017208632430212609327545113925528303895261370081103096582798797356032335627512171081701441564336939258048627371211344325422936426427085015910788584204847736136764900479908859946059638097944989870870801570309487452418801239279743372091578658214473940291524914558508888094377827520582103251080284316774945287055098765918926995793944003700375758082906106092697139821994607029669109892624528179717075190517524931185909180377546261979392734054140249430676250629511534948328164892008818718851144544014668338572728656274149155658163609065092515925527938935481797317175626520416363395587324683364882593523494666224804106255088439376010252811409288700851179486284131401915469309431448994443892922204612752302572234221307192944334691188704247876896782885513938149794091242883582569452994317936148027004052668473020420416066693164123923776183424830356518852284678976407023841690964180322435222434771428877182525804853555821597883423536035774153974397648902550621968510887348370696551567852928128179743734693083624845216560705685662056217385789657116135907373098432193066334140580393992321737903934858543705660621598566538302653429685243005932084679100211613158384662858328909714814975577996472325091673092840216619465514871005435632964390537140260508183886670855368063979074017141087058207564289961002606475079054898748903729122079180888869441834625514867477694515508456743033499833512765358216263057356846121784808633605534420366652151403993298120132837863752493011921904407210745897900826665761328785335959268238834426773957567918523022613544168183336838535304149845987438436002639959820353679821989357238665573027230453200891837575932797278358981990150025214067529533249243621771054255201581153341715288100935956424941026178831555835069006755612726253722014022284750587150749543684470034279836540884823311260283368883874105233488946398004524637283035792767812738826339871488604594717770815357309543612180414883026751171904394819243415807580500057170214407804780304712158463718612320590244700281536012727971148316955490370970105548656568697212167824893184946664742284560035372831609536045923355437820850207075505209027679844841748766691502943037499681424667757939986191728738627005536534224928647443492116823188415978177898535069336706683508991895025560523327721344847096765653586111033054097227190365328128658072373049997400629495483602754494743695169705733013417014185086543865340737837399509493338709714689777780947630205135959380543622068900654897146164908119769053709152829950035339213483464223130685019661298176790596149514595753607458608880625327407702234591768574538486581707632882410072871393252144511037836544765236259391474400902462834795777313074825070610027391353103237196134662015685691020442962724971754072875539853989718200433855478224528408124793166701705629009182091236046867876239468523680557573591732390830495937157558436903387862391142552019169065422767430470751781252893236765245576194785601368979781034771163201966635094332481608615633796035392706578919072461231628396369747927767328005984459370114267033272350176055960965639872994080020353271997155660712471100727075919110580393391685095424615866022516982226129903596871896656886336255319516732585434329917788249512162927392542899297605369634276550053543095048028757533762491187498537557378467476554750938625408897349173534805071038063984034958431097185297041641338663321499348869636296664327662567980762421639511663627722607292277549373017742221723002927218147935134146886119660666203831324229833800816200350315751427092381084462426194320908744031237123581348077976787396464074032017239833910701225163228957915432755655177502846971367487887155831419077557981872745055894609140291259224212069095606468703049552059606859565276497596639402336280126046994759160381508391511502444597109046659017695532816115054170163208665611006111197489749258577540458724719459645152483332533885407459044051511653775627849433772056766885112368701743723921599204972717396672930208033063677051805294685031671164839315241962917172211593766000124985772900131971844263563889672050729865714865405736191198090520624733396376680168177133716400489701082029715058780044154415946676294562286070862598341798699289403226590774709601909111263253880153318272708374525242483154773402875145931893691559730433565454700180921186685833085869206441216789687438582854906970384605532910885754771298620937284187022689893923916758236617506038414410844926171130068762412513554438563609205410217061424656941206410259477263060426142793759386794431840395397831159116801036062268121563673795851811213945528578283708964992357348656496267717278117847481883602842278941978002002695347540065992695546867075740110777721781778476934361210576959974263288761484770344845055458802635823959537303012357297804793352111021691576614017961096005662430540318891649650139140156639397817869536068026920507059068328087930581521657593203537875899724875831855613976262683256952289793650841639507297847214073424903796937307986498392345854310581106870663352930222092914051839805527794614695824605941044555605407963163229698070611488227859454155276533097149315132968977760661749497893577315535701293121113596128234897523443733953794280491246839888694004271680815187181485170068583886948574646467661533106453498431643195150639210238922337247754339009021687524680350606432012352644852104767518476105141424222110867135982921503795480108700023622590059581183085118309687555405905147472016153435934551182928082669326066252498556377118904665374394266767186354667568968288249921383885109763700367532462776767401510235671136443659834421333924000087220352999738005344287058484670640324744954056963836493541674276841816483711404320676898537002063621100415333325479783988689592261770651164853869424368550767620659278423625141244555598020356448629804184176159705712369390782691085712082965530708359003048119495208067380219855473870313026841154522759926165042497501429176517542467182334719080004528310016739529745321422012796457832334187253963868071833071823708269135949237406411822214307600658110712908698748735362385988391739747845464863876433074910717862777693880425995158321853632735637582537168750136110639588005602086395331348606858914963666298842356678895299499856574168234445228356522540728260244629341901627989660933970497808510447513420427109180539949786634628007451438381271789968667843878825443210750119549033309705307115473671088375343410876520040485450764162195614456205438869341783226045281161327362712904267543602014238833308793276053584749275940401338943730848601321326797955847744027617895852118904610725699252586819402445145227225825566737209814326747662265011588209968670408294812481921209648939135672765680894306924957808574746606047136940791000668009096566829406868441571366303448767237291248910991205926159388991841606634809936777121465581653106102438310959960643068578010499935362185475880399462872919262896011737998294509487451911559769826542055674987003582963665947740147625681128459694393577844557733730645997540740107007692024819103527022739592326966665550268785981751995732389424673818563147290188045944572410667706026689425985004127153188042258668127635498007736511906579725391634196470193554257250318346688632182427983936238488715289552911030259928852602228348412439395486236302289372037286933006236906548420139553915489011923763765786298431970761252054597878639411781608328202270977412053080800552214594686533261541929345396369799579218058902759426620721115419391563051068461015092219990222971568473830991576041392518616503100324527457027029180521550777265687042346605899668798112499228529412959732029323303513327920047806225044863388205320164835282778040463366880069708120925703850662025932422291776386150416603590507559058087126297399871891007477933477951751892229270059071579979576240833818459013136366309337264474495804528903321476627446072814135591077489409541709492898776178135345612042332493310188920664633304919353367531939129719468223447055768401431895866368847700562338968218924007419509733489018503639248876561938006827017467965130577848327634028996278662828065588589247536586497831728058618594936917992240307206588823590836434988806003956361454050505398835616415912571751645902677731813439098416491610410120235548590590265142864068169868114377952745142289507643317172042224124436582259144797495229079663855149682616510210259475044666656060835309404452260671006303930110670350277573670442903509430647451354744491814722528938296294810610069674743266088180593648148011769087881969268025806582614158992422678313153180906955393213352039779338618949716939568493264311828680374936853669481421134624926028970772380114446410801856306616302736944983373406137093009931574490548726478822437995707549819427945956950589435533811763108582272823206973236177829365821745721462009058078347090468830195613190162537825548359587313154231835080100000096487529387419841279300020525103783144323626451833745763805417174042303224975426479488190299742890490565194184743593541679479338609596432880815380752495139047040913112577496641995006030390238480404892625889552691889395810067448286382138065716027761145379946686094460191094412973285538243518522257126139165167454556540881378783999614676441567517670691104758373095898250901291403797479439612879545912466050506697294709081868406168191229220219728778202227074327142874248663632004864666934339927552654980623046214800666631991229226686213137465253428031486564496137917316370831309827025691002086681560446819170480112710123896465377335216836120362075784972856875694326917837198447551943713254733896757534509322890365925416282216469609715672159346939650883398231467164167540633945392370635402604287056051708090172186225589281647365292011508608656826455013342344200574246737963466767303876374563878708682631062869659599601455294148203159225823108481721998071239839416205303441727593411753587565163518875880011895720411801281709039804444438250387566238357995277251842409896384746302366157626238676811801848388471057255824888013598781273729558021705735201309210316610422977485150242518335659631991301425557802399870730208470010669459676039457887186386964449279310799503539560018701104971473227233985124045383826158570469093894912509353040593939352787615732142946480936709557472262105263780321656322354488028240715645942832363547927907968549302135927483467832715909420616942919158538257260172378818345187422988125652673180203368316358943992449039069870562567173634972924431346612413191548788352867961074974160343373621799602118680816964986141025620965367929620001403047028227668477469359140577328152398966756521326825924499732103857308795528143791710460170669178983321926130826883425501895602209535270640858502975016423594634935723220000602994169779189682791248031961597303022311387413814107091042351365622468398804318941242339877312448642670280860225274994186006093266230286837263720104156394288391028518578625369043982764351743535781159845800610313403233891024958443796996593975175626071387767202656150271085075710398781942459147773617662962867508832021422770043974437917245329926547961848325902586851681493902052919457083709784532325203592233102992314608274483204534063876224405699732831032241474827862680571789489536327325088847850149609562181078182592579361078317619203976211814241777987712424535363888609649063100002895968490474959644850826122582622584713484838366467914461029731377524994305798307982965524626201500582063182298526142128602885011850654032571403368689232840455197973540495096316292415100322024491156557010686624778699718377629886854843128861881120508930279912531258604115533944598849125188588358088603130547346422592154617388790067939195694624730314862035254636639537113231167968374421948305716778042656380518224198104533318633748091613765732268920041567498158575821491119774142793759102660782191362271976144134282247330754157140504900398884266986236946565657673479254031087491066805074344324629941465661347895392665045448962826275705745237198963425069958398410390348488118429164830525266608666741053172104375634912116197991499957218552314822489556860287425420313797310106797689992330627501319723730723620972737684370519017862540529283985644535247162254509802174253211195718954356936672253024303893078052808324059610191085649581335494721625396256604373476389797474598657750856408588612393141617086405366662610497008148113842680944053522819106931350668608522496410236764389155169877091370542382289044387814140450041612526129201111734622512114904741205761529984596633649164258955589441262604791065803869807951774521166252150804915353437545334217207628324314636924876106829391866111150153158127956550253994273985597992351363660021090744577293434489373771765593523723917550177658089464904707386855047500963269457552636910689902028451064405213590352961438985002539715214223838488574049920733572774867480814925607026228708918882481448281356757274787452836804344977502554025196794682944989477726674204342781844766399275357405624071691558781335815811615097208157162491755636397384061701322040958180286439243543235158383855540782886469600795060115705950550391820027695193141223218194710375000816967075941941649382176178438324515302120083670082421778411514240343945424379021743303926829323098004517238023911499061313970723135476220508322912672104836120375339576762347037877496569585180792109267399458632680093523447958141630599345928820061518844399543030171334131329669861906056837007307384844343397739389981699084817492200884330434640187118458610260707404680827914135339996840102494113970383674514475783125066637938768132317728688109874928410761509391859253601236673600914341895952785356900820534853171775041294941544206342241451822561516966980367644655718325091143529890721432418336802005498287097011722792262630038810739305425614359216964111463046808196506967640615862509271366163710093561207493994448149612285821811000363251297870529208514374317096476570622398291668412219422760015332951919846250365227206640427991822599732221485946676353754422426014530266413309727148992774265292660226846898155161625128929559047853947531709824369517467219703238247517982663833779401072646153350784784128688672502568697559706053239533921132257083702310568195736421603179856852930488644977685250815089920710783966826620556598963336416110559749269431673716109821628481891310833760164815569844779280572883676716877283657905741069711391485060719834195771726770349750386734517553611463659550188863679823781427878928449807069736160490582617322233838721940570229669875724471603374983579454221076166100146848515753663376678186533061393354282794304753018544860861374087969591131449810490084130159400884531266768243743992283130500986442074559342252681497153373362119480552987927003469566928728794760848016295271344531036042231768087932650893102654711010974440365131090325251992153665918168107976509037192360096715706278048219670954250974343728738918081244361537367319675556127763268329063544230189235366778079296184351000089527032161215689764957239433758699570596132235657217155602708686954037334076249269400894290288847968995969563185176872687207856498296439512687199197733040052769611707944453107095420070451929640190648653412890974652943894694279113333368130908339571627674096359108452376071589117894240958967534739353973051350847206712635137388639171132663435788516166005035203839210659770310518486150758983033029338078311411192179435650370124468030753540833760560033803132426576000128243672160086572020568631863816458771578175385951314154287395662133310891732788403006725211799665587072115990393416932641116532808805482998739747830092815967820642570941099204088473424805352225472141853092578355246461420720379756808678554661385563448751652988115745349476424308764049723052827365896438093172331093927888078865105173704747015512834439418599660754249822657011567538278363936869238367001446105133836662159789927471417169145760577591832007862104547419096577703743064544920758926123253031342782947028652411922266051539757578227079871227634513275038759787822265591744216836049262697637244152399645159602185259117801995978491736772139055698276135171116858736572542729691072404978984826796343625168267093557849482258395573514735410029413632115823672606813347261744752082693767280810166860990918643419207088151664447550870227157755374052489988471752080961980257019275089244874834493712194947136769054279937337505447722093282877948087555646934810249717949984511089622861242602608355358521616914646639378699175104572952575650850582022144907301496165971204249308837041325988010594117381220018821310198239143648524614207227340322636997117684253105238266759641880571380344150282747694974777767957935576087837488916420847226534414997407614843958982662258327673800405056857422514551466488015301343939589393323696880711093714584186863178150621538612274175925159464358779733891354649724436104651742460064900039840030376607845154858301616891690658128845090650004061531938957926991048070414952364920993381331658729721023220939053491901648081279411038686049559379153135109866193338962223631268276750647202184095292505843857750976056858423054372654372758871730373447884550422000435228897953508440980775740445630204106961529475236659661481383909183765606783955863440447725539573283736776918733857551634783056889496895322033629648317560821495395443385022983017263043713296461639137750057796072967047602331953903400959967704249113664107199603784551421515749766791948438949209718389812278535566877222588390792171242132840014250769961049520934135989099279126105131674098333309288965334825015845782111223672726114210425460123307844378628769854268756617573387177117946452229724670982529636156732862530008275984956713382981383033196463765231518837507915784263947274391851536937727937404124663967992192131914537352410375863687548923294359441892181339253760321599165590214504653630886126868087706373377534454918045943312510513316394728882853807513107304661742462732287889990744945499327962830566089249026106581247962348278268011390112010594326499082726233424929998741770556508009956875495481840484877362996967307998915247977099639860532466211576329243044542209141670931128362531587531347120393647815130429215477119634759939225907962001977507073256404390628596531262743698853133730333278599705113170411753851202790155078641505500308605213425225114596097931439442834646598436703087733314023541357524734585730275791923549381379741467387637412010305613655271200678906144978154623703683155365131113190066485008884770068283515603586440449613227119055200004824708563699586578109541670075641812980651760981557656232022692181373371024635146255905424650992445829012172111131408857181235647022988988684318451238826422206840663818445472765357999166436353535212215047757403506011031517879577218476853342044300726337934532810650496420336671451423770680872014452663581792099142405533364536590363462948852213794757441909002156561266973878164676010092389615407517785980780860618549072499760913023168472586739610702596026083682544337186130939846456148533358310343573396976801518176475567593051703724269883685634493163114566449701513432446550570389063686398853746984301769139435519857137167281345043758731444624439203171163997758319654045050943729419075153502666108496009091598476153402639080885067412759543339406240088947865950055764316122163284790238788577825287267849213509607261038719759316284368787112068498247012230636422923796745637549778841106011581296367283049062374472528334721874250313127339227965940516016955457695027987904493348368228536971311813359724814215740354857702363642014480939732443108395707495023507405508148600901322052559937507308067236021718587021502065737348202658796911056880667478317278842127923292408182674902539556647841982382736255563181575542469931185503513499176154109825548363928619903522315462882584295489743529018031993019555420742600906809694679039430343372438871643306139253957331422820403409627177470843620899216597641214996167027685751404032722801209245138262233705779157910189257888734087123726926456880426292054329143949833506741128676691701965342987921588823526476478576951983831095695533196471286410904619606142749439657801365560923633289740396720137059279726891923561338955137853859372108729006161821070751541047116514867269179980708540856326628056513145804913479522423312938495088331458755247762886884693905549219985406329482563052247726369261818226085237593563625275233732908861935766193031624077333320945914226223701980249599385790225107340375201518616953833623223532578347950842531209082655054908073073864086909405212281420370320560238071718365611717334025106319711713912109848320192073130557664253884359325409178768313373869268422892602746200794392787831436635013128307850067911980332171016135613870372881043385599067179117328038976507166554921085429895952761570388073612369335944577999811558873411326561932136334716118700775671385783385346892145913348986249346631933537465948346134457804886742087098463759633850110520597428873553289525823611188341779160227568872768269063249398364959968722238177399741863387297721817272783975421545635649921889847627960025321886746250904611469727492257707439353735884070241642876625497177343061209889448556084916638498301273756095440259499526005695066821206816228765846409343473167765414112194268908704113532170544266838408313662206261314513224000641737242660803966448448332386323998730729452827563508598747620331634809224402795687660080355987418390161545472451376989873932774308305160004484863676597460610623684748303572496465555894665254959949574032563485019305323036894482387096459485051957251496471495410715543256832303151033582939982784612550518433438370366985167104790678041735965839259512116271165326118362099200335103774301405747352144711529028701948456272301816815635420160595066324660535705503686589759884528150771064825619206087255670193614643405968108867766714582873076507969662817240393400869462647060949139268725612089427195813269604490997044000099490829221289258230312205561720314473419092191950098520215597389519032471281375834720143305349392536664162897885327418246661495484463708311992011380438913483405576928016980029160155406324644627969844947137246973555754690503858540763415757276874917458074370270469781065073794398366939106380898282368217246544689898366681738611832839081061098891393604470176662236317843789557333179619092564484804098781256205301944877192012924341479654943066663622034470402369501993567202923397317407173522335519094349712750189619204396498555395808059245466514083677311166394020758177233070537655318561477262215731308319957706068746921154087948037678769858255587841406426571952519334998414539465293206945058594292816873111879186405351134109462491121913774146719404139199066111816892170606205055010909351218301441542328513675703147506055153584468868616928529667533598982393028501977845698494857749607017604905239563457483193014325091756370538857333836823654921456437477572530978915731149497884874232473768796249602041957325648129805968672627583131346374894928381496798951045317198495559187512583364048265057869050411863718592334361173587562372197541867371553207546285241625394826903729686329264008858052849849071657327297927212259975438378901027993210043608341016115685155274019987052543947123404952502892811991222445804924208924816807550217680613535678158219434939563974871834868763956154168849795944049635124184814664777523170657569009316882282406779853398291871400283783416086991068372309105859497461505027908306743221951831907232623131661999687322233117802090933019419582370725716954530876793998473355747697777636216250318392892297802474053059173488277757623448972940793339786003577285306196360702528530169803805697189210716661784844526042438465651629724308851692551123932331789091922525707444682496665095150363127739237609593191106920623162845453283540005418655274821481631839123958501568825270170776858305557015572095841254615052359205236074609242145498916650574135251479168883252021148457015283227310510010145371084228887058638761928130042258194250810547533416665377072679547248773214398973601555191950680715428309886758142121219751406320117303703821744394627139933619401627110332079483203710158343992610450233330490576303096484846390581318276970780681287402005243809319119046383390071920380928230344614986431464745345443189354981070897242737159728815284636663595798342212655431259918647771834664533481131388172615079394961676249608275189621049756704163796554949896053504610248181990942770029307626317126213770020902239164548967526634046366599176891574853456872474158105856018259158306536767831086029488361252432077131473089128423557293830445788946700243401464978290577716856978438204807351782066189700080840889581801089177256396107368955555551667512861047092630570796479118637429107408795386633629238016421945149420982230395389461853676036460844254393539714120328753939175845909761314846877100047751530126897391342743461712206370634642609869225165504142926527736776437482063455081252705980957123797170495169612454129037567293865918539669898422926740213555609972758714857707784084160033583062881761232046903248774590948500689119459724366523843766305519129264846322593862300887945736367614573956025035649794926092313371484291527225391334634498333396378907122262550249655322536563235512322027198530296070772729352974914020530143563092458585820481966374792510443389161629306535954478534060617087436570985163880636005986549262765668909906267159501658215277748418729615777006524322696010593001384566049256073169563215465025849657272189137421183526240682504200795768939329459679007497512141513974836034775928809043118599339483730550249319560719787736254158011511269927458443571171933180774665845968613565721587422926228714682729748772117380794640890847456092447853022183702612362260599785086439631503063458299501037920515684872296372939091452161778573789835547140356004439622212178179155109514862103866456883515018408489002688436678144808159481113018612998562321975498918405631741220942260448153857960734545702359528005407693082174016634420832840543344973548225892582895247179989230390466043485221841666264337359848286051416015800256637703571500509494132424970880152082691057683692935320509586436474882953837654427034137820852186344913871176511572989071542085017396695748686138843623694245328730318084174883555865002042390986064727267451870389703241387316044253842836078360029891405578143300870791994252268835980808811544129923604053082125728080087713416911981968458765910365798297019170966573692158479785617345457354004224169303790546545810719827226124657361587961519872963409565970174326691894773273745584234551405472689090868839353902153546581365230258160351195408246238433113806598261372811418695595425248523278738536154274884779358088327385991365827642469948584753608250286670654624241688904375900380468070188174391287208772911142279187260407690682812014518185376146672644870515139991637049341538432363010703313812521106027786861733866508346515570654825020768585739790599888591930387111344625914691761212639333261614501594610771399937254538540225231516372630904208940828911593429613918125828249565310373717776186383547246822379952051088831358107115756493542639446968745820065470221272103721422408230482904945077719787569188182461325921096033120847285632565693858926415205176426973073062829099986567775536660304368537292923203138936662467898523784500156441782802030927092342436171715304434054112950578571434920538453819188343505792959474583114344984665541398770286598091458668019375092829790258631431246747400303556115231909159302521242030719404086220998154109062699145703522614910104887758918492784543682028346898032204626648283948698697184187255499061719001409393201965542336708338740460076225029895326010257755322946264160821971743681769540457187438766100266969577104119381667857465740721871997754029541760504248489235619591972521879131649116027450549935774461716572732204212321846417360481735058925660509796297447103603234391424157007138055512170174420033384834236572962840744777229735712810199263947286410804193579377188025067337262129545189592030824112648513737939327198991435867546260945078845273433048688831441665747191408170587627962092711993158590229879370822157050046103175816500867960696732635473107367732528816501110628069678839137978615425966690492245407949592746570122121355586530512958025084513897049617715102947940095693693513744543710668103710811310631280210023891088243972229548494120012638712532512171301222256341407860092870502575881372208619377281116967398458766959570050006313012959316322734202620319456852279239659133830704226843718181488283922138654110420903973342282034800153443417576716431402588166137568025581314729001996322529150238010123811212348833189419653258350525270967697707834270849124037360024696436421828206652263966085595658266096015531104277841163640386864733106128073328486722585674135643261178880710114778394327018959041814099802636437463855994396095707179545530440264799863527209300436105660802818592286484245238253973943821476910325934450476185017330133997358402377695828751460651166142737412476086609072331579297886444966085022179181428397240222707819937049535255146002417055949570282511803549725371807866347169188835444080530836235194764162476008152531814116795542052609305960316080874791284842153577177743517123740725281223582308445896281998113303781008507516514349887420781662377854315807034215715928673795853476540953306426299745795645250761961609500108705876061493123238067935710833233821458276175049261507294543620148107656281474018284661013748232270525394727305784727563677623803002547989837573589806527850847881737000788533627404590834948866263244778541508546692390832649363296188415140299446014201205052562561580841765063593804495754476832312158018403186172704361219657250011091695773820124604905126017154660946233708149907126621618468472189289114278415375251436705467302031788965397488628358101918366006383546383591222422518248351706864821767073779767961096178038976414844943484135848395741519757405704098801956537054218580355815990629279607480383806174877719673601151061726459454213625346422954127329994258851384983509440560273257939590260371125555252597046889023785737880159169625492582320334410203609537300053713880106028747657731218722492856073002083999505031660313838276639703375238040230633499354777789290283265753123761173699457556671288219852727883434420339615935518688126722883393673752449645691199804997193965721824443951246147612274680453268627775665584550385687098045301599007753435610346330907997694622482605032285154005129465938538410983591382288829020427813510409619099549732238458916218812717022442772806065905419768628772284852617818051430245016224744388799968731057801205059356012555018486811561430796120371168393749137839689826569596596364018139630769517701923968651559263875540842565951909962312971275274761862612023459985604301497981329431654433586573628843968702391790819754474450071827406368005085855796099271291405689586227230045307138944657431294894021483984186748410082692163514019208589542947747816624562098776841909902158527208331137887281049814646602039816754298180790384865562549976961430555369229708976310092558688886572433639757213937461655773832543431252512765991818478729774564997310057557721639407717434866552299318721925107044053554404947009574022519360796979794369190332829424498537271304425939519494705379648530650103912617088909882901093401942085792871336615757528530844055617758077850726695206607388812492547982920375635232448291665702911950159343472272849292058762542840217227914389846594062542580348486005281437903727406514855654761091537458151096001786853921725728759369797235572832333820594366012726605532208286824435899388664936223240420953612142555462369879513754229434634690372004079546171773432383330131852421157223702183734164976178628836810608606993591067821091445193162820656973994429909149133170240296792874973604128237009687442455530646023249872614083930574004927914784640521452759888445889702677529023736505206694123903176395354885676340725537041142626806868710327376098470954350843559666748428777438367568524905323635310575495560286068988222695064770452590389494767235815868030869201681310908008202196729384223227449803698544400403889796787382812830735318994544861796024190556149515018443496709199118110927095689289119601654413066735635144530852812249181023553114620860191521823581526334625912499855329424079567692286451715494620724771603876251868943451168040265064467633481351400162169554137377092520953689523363297176117332347613842472251281051146089877244275041030682799840239188125405054140729238087972263539235467343921186323658219133307038725792573592814354065480848352854910936519054562241486002444218609824030994199482056551674865194819195172398603716064450989295024378594630130087280469189141339738993346789032700718786031098420817033076189411961890183271798808220595058885345918909141723358116749517979279365792286572634729645691411652145752766945087550468696155090888509973392879775853478164474718524494433111035876420057467583175663991097664350403137292272394675731216836721321235303691493163070545997378443354850656946782383504502922698293149238519282875865490659080911811712212940589825166481169194406647982373584134914182887772663005643348467877715804283933897080169832478553333405009298563201944963574416943323653295028255447322944224787272559587445435134472773736804977204166705067957271038025103697085510071248156746961747117863989929880357584422839601377754009938958720416512086346586811795246321345005370155980238124840732954535733315060934375550654915584193790533439369272747808054182281575685727753021595107881187975278447463227639038937379713728008837687200525513147850211309433803048400831680490403271422368389145605435018649836658384158468110329417750323970076136200136597284660911367669493923518817763584268705481974488137852874896593857280432304734805557753249353416919361965797201735356498516208724728206747143326206964657680705633921712629364702208003496353442461086959410782334563654659125530163527555367625942970467542330064949814986707209821170520496408783774286623567176406348247015041052850174904734830244703499540225265256850495019596143904035861603953773290566476824665781807535222904708556668742925939989293388696887950495618864000919550584467712258956365256660979537482695553329890520810330921113274386137908683170321959280837121714338643159368199349974624707070061965804198760371890597392334078552118232644594899069981480874369191008926746094360611174003318067906455150908611338070246398615246395295673644950130678454559397957679460414927109190188740871475894946831765873323296022499847759413923766506399628802302949367055525044607538037208550328431482294909827540894008003654493027923247105076203462039032972948035130898015433995018758988593580776152681451063586881316652838974441134992414750208496895601949807936894643704534385184790138683564991574316161497333183251454304379444515123933044787204763546775614379404088657626938410686541946494233458688849400583705736923742877363252164768928080391287984870909195105116504022633011551168078287624889055838918369721714251020941556076519884880889948338706149288160332144256431379042338046552229068921610871493873645509761575620335140512917330508679652456217994430170373723055341229822068552748069984361869781253749229050914929920242590425208336666229531969608518833450718295079623341610849020796125751606949681577453572800960262751628668618609267256060111441910107773574144719749893243430856152758164096015041109889340245976340199906624087247401641257591346573247985235452864490668866272740769127733402410946451733697722699428314816958196636964655302708705731500147076885885314145989149150002651063941454479338288052562040451278240762098867988300133026556013399731463808455238676384008456216363217982889353269559629787320747778297911064015856945837835688617293940682256004341420222121774133828622674086725152236182557921210665063123047667568706116618568542463726937459398079752012733636644711800104658104447517947204482050710960862745780207333527612557873140970610814420839800060672146370550080018911326844855275585371268534815413616888604194736640797790731746587396945348978944907137788428177234501401722318642613402582931121552924820554050513253652297820888169027417288179947561423488211238154450944154257719636400570507180157484603420471276663527454356611840585382937212646005387821706444839541303659764365291990693530327858724925621288019319645941721517395651295362939220830027790131068519785944912228660946644995736085367702484625240375480634854903685518184233036847053113001246926408603648525648526390695694219695137404029135833202641557464430823009068370191263716175710024315306143966757478496752896212715139021396255325972032804712322551449936068990250179014342627949760723619484129995464252965843411441262193123041196602960639724796708254432139657371606591990985450773014991366605995313292125270724083418941209429166441597731509599531846755112407126440209198567809904807260965473628017012586963439943650733518108138401499234507652460562843475439731749053208306851651853925123613248073271860470737241383334789952213383176252712659159244775389622661474765950144309560247235525649655972149789360461602051541547197200815950675258412823863265714039903574579336579609885502507825239359775232437754381864703064667383469436739104645600358646272169352077706535861575185755855818256640757420571054204300019363017504591808431955242298151615784295832840194658156629959024345193940852441748323513092646497983255775418450181510339922529796854197854714466684048768231568483354240492843025549005376009870543706856351523312362812161134746701609517738644103341521209534285272743196247355214436403939077088241849257187104077685608457905101201174490304206311991834972436252446938758101233215335932453331347297824833081014268572564842546825031265577277617072491105467038298309857377310167427499420583574431689378409700131961690923375403135695040856384330274567074549322460195912873617809433899118067095335708152713371719448493800561034027202203459341804820847670911391367226571228840324317268440262719510750509576692470065205845856926959639622954964638226044932292574546801670925352503930478130709078566979603113360811180858627328523378052461502153322599045513111658676357488334307682948880257979779483210739972385879409613144242774267682537858822014386149469179289179057047682823123744536868247420294442875277563008964010789249144568964375481921592101811741482863180882099959792423912200644963450763539401672062518392923783062037660810110860379371401394376117729430329045790465658975574909228474696651703323642869793901479167940923034025409185842264825550376506733116265083441239054544555011178859632312132936635465348706058278945245107346413854951074583477545977717519420762803463551679777038726025015875953203423577463326672875675973682357503124482984150343884331081012019968755697481687313025720431886377585017669483336468932318016592781961286961209326963694099095267048335963585507064283356065768299443349693969278704303323438286326329297253169956872917357824746183399209296648944074063880014793375907045930764990570045767295842924154854141430860669919586811741232748139910434233787748523132092390373999745764610623930474577278748796972870004070999592988291490378255961146120132330099799985973733176802479656548406268764982378452098773213794581432718413854054600951820451493528619944738747700683196443155862845197520296019130712857155323888763907012596178837208174497302110357231270693075389641699395389478476979243647359016377798757322956026977877533058667576735276229374319495476910978482318602008056965465139377898221689098719438457962977512238008408139961606665023977004674432112238484581414172317312135255504119586766586490383469398085241555281511144237247885490112919311019821115259278681169483981718319637120501413012428351263046398027503900295124722154206079439361826525607451947327325657401837431548158111770982978749435959805340046277093787738085751018999116479457086263525476158092715606635938728422210591734044456924116835215988543345156176120447147295017211658869290520456590704986654874682913307432137348726468103986295317297178129699993959452287405482776686393130422008923765509050241077821171851556460018767716961631400621227927096717933104477432905245139486635370626290471458022066063088941427648063117768265928706163855752086191003616119943999608676449930312317672093348570912017614584683452404441410038808623915745215055548781625842190494830139757006761524607529337804926632974967848227050797272678625107625655818536121187182832420587238841206339184898446353584495931279191454036559624420897914695405856840479590747394717565140860092019483057879143911967634479252547236423004676579246255981161680780982508372602010900194343584847245536088015651603591732248987438794396721263624941781719046818394250688532519653687525761925622245925852341487926933939980163029533603245626481935454501096086506246735611922079641692347902297290161026382343981480853249000566088994734350715302644532851567672780347155701635406036019274973558312294353494529208685705256694532710040293125801958883225925679397446874724896878493874254728172305548173870954807151395130835455113039099611603876635026108993674402283475492331275390658864546802161155687372436679035070972468421332220059794809899740357781377267085104217627713910459566094453214968945306724567336078643251424245133336726327262182691501074792261018316982276163978536258376363970808713324870144236935263721617302301707129636064410840425077249893646058305460047313534403404398221749393476094588767373843310491199742599598710500336077196657724441410859213373263442688423254444342830048534338222974391423892902115256345084225259484049871085044680183125348855880018143647078451723320326075266365576390654619898083895568594374397905180353318131778348173955138332231232364612654573267664438382956158398925542142809734949816893661787935951437835096828942187218688148322904457023420511184268430856822207795181229595734905325374472338206172718839694022998030450985253895066942274928883215644079732865700887663778624595962211808098811516374378333372272051246037716801393195909141753494240867456142986285152972284895967315197322276088844948211744731760552181611402840696136762177904157030604478537313289052404805115507633540148727941757536039148819310090399864159984989861560266795710532120869239459257941283758934858678554058317790607949320259517883211472163884596735060782398774399434273173622699175264500295964993538780255705325003236678803963422501482526444506456018047884805463728602842692780890693914164340662400978144899527131030638924149391289472438859050170924926561827772044782940969532010588092826668434268833664822575314410135282178345458279757318847293435424739528056716986694938970282077910842512661487992229625346662737093126406240222094985360969323318418353756486169100266260863495805048133870911288345497749934809345608219566681230711435008275120239419955874496471910959113216169014982751186623380242731700452464906938177289356331367531826372397994132768087873671568781852523703832291643977190360129953236909908125059319182515657736768735015796369766936462287675731266317103258902500308654890180269412491376371880386315578037306121220345848847525380137303550602482430985783579775378018121752046541465688426748906651361158868388676772641142084667104737406850878398640281582811160710781948610582347218813679809511785797601723037605351587197176156717653271494436425595826766837327342370825621702039927570398745859708194288069416580166503831822386734031731306100769746218844115172909605451827271122903739644139706652729216322760948275607888480707258149393121122254668748691813032401748249360536991165840084783842513398903431225165129142280543979804513722454043390691292061539396651107784144744579025922864702519805283249058061777313877559874925497398385959324800284777152900939155652847032103029658761666106383233105710020313961518838065893746085337622108795110133898875437382788668646151553319988961375541304229704142991808445191885706316048619662501562752645024869945863124376860415727724606290457688727475279253443237083220986710566693490675248850194533539160917900023233090517987357187673180324411192577277037258477109460455491156005522315353382828410238050878464306668415576380016935742189323525902217672408416466116713164419602863696033498312325386975672546339796550026506898585718259756606673235986090764070677150698447652609648200856652903261342579888953779307815804265227173877250252208260384682695533306042115024815064137712616427394244184864678568291638863061968484265377521472888474524316960685015404918968405598651849247676107870057329714263924522145978409389968557960115478087142530691622259803989249858998528403108109103760222467147609333414369036151189362336791543804644233591528483987474940644053006029826931530466892041827648587707197191514899310779182897402806630193930158095643383413221323748256275021394785004655307635987942348109831310958477444735799332557594892564056416323163064730639258570759926866732303346333414184471774170670162474429106178970296403045708976390400297311503571166455268242101072203339826254859709656400945859242078505976150914175573824259615868159745714612941086280294001175329023182545782238562574753052077694547024866319529242161376978525586859097891562136572607680849946307968273177474981717251850925286307890019924134604222682665186221209214429598285449895882806702888077299405419787650014805180530008361614899955183739664983254989875821351350065821824699467575369193999763071919760578738185728591797422196541078995495671017650179336581903443860262331206550270858475236757453864658410722241334472488487366185932326324224513168206860839072013926338685468721287201084329306950585566603705240649661823400355289261615272906090727034277733253424322212705486972057037505463264606312607232540972467989431397001449995171741794464612065857537676668538445036147355108025555957811849601798224718217743092113384189352299391787563247228630985855636638264857609296101176781582528819683713707764601294533690454901291785586311307775567224248387836980331494913893564984088229778619848905322887181836046223992435847257354292096575283946991106334183848405467847175247372793130146780875746353513429243710971287650969389737296931886404669660218032306693315370708543745172383535201549227787195654245028999534505941205467534690879086853673689407128371789368540836873538931771955519147713232137887438361098905759912542599998609566611079859383499165068034937191760951231180547721990746541777930809987819317778661702327391692203587790874943875223131807437134423944546025220116210824525980162507386998965445320577115795583703296383904215559539075354611919442914250088905906716087708203384224330976790412207917493703774541594731243837998519786310626206671857793844389847156082848489663949168269773792645677698901717865135762782099912491025858370187596343354219474885750469787321034802258040179283732823101725767135598335194461981720016835093617389086945757699468960296214565988139407474231186457962627037865290102045092588292584005186207626525166127573572432988620090230398935640357421287746765036283116574558014846948639684042824646257995133177644404690366185161214808266013352753725816021617026049229486615539140645173159558675096076492630620979901096951853443373855137692516831654373865457588104096295155801020629549632828864641031192269109295087921204810438213245842949833998456708850812442527948663974770979092319621645451445774162692144134699042584134878418372689715882987772270040796058267208915712093635991807809121534147000336407940196408852400825773028785111058980272384792988958841482894425804082284462432958298643024410447122850157222270462063641581353707119299186808369981226701459504292508260685955311941267717299794787391347540478029554394023387215109220646095949054534760367328869893360035528680303987055455744120352084164505786396892914830155458466858098502792901529094214873037475598283652981439726959170751472264570384197668522839776824297624497652745655748709633538507682286677193055101451434212667803151869891528328737079899229373087890660408242345845913966037366001573184137787731182303459308534290570264028122025881646481810013894242377484779348390331693118738557423447008649691338155065831373891210570833720127272113531349936507661147498447247289706989450972800820981012008345932636429362602526972668368665227401546792695033258047494465598825527566285105972282564314807269797367959740254088114155699403698617664425901467126807845860190865831926851335776996956679832471864124280113973825775372762204559392169242895187369718232915510275810082025836360632430741242286881360133616024478115297823649228106569277914185704425438382156152430632314867970562843267667060695461812155651855813012421066435918655343891532087035025574211333233029894319648973573353385355489629362895185871751468267856801391363796353127612885714457262977538764114451929349879790588269406105162990938385063476091914891340839337461962484052843796576493131274879809997384226364806369907559959823412228840302456912305833507253437228400984153746549144929497572922203438829217271056862200598490654394799403342877186083602000021460462426106043573291234518354708834490229939585552464159291768251992735452975952272085291259196464170867715859968582803334577498592542080690984463034023710038524543590071091984070583673536156245187578327869026704075781188463914223231716818645327069134895771238298764765851999220539820731164382104391655556334145442246821016078911301666563367456392398261799640125008545555111314990126830969303560406788847227262000714165710734009397419021747656825776639183658434182692251232066558252872605617359638018729112855764457554600418334184905068307586556632971840349329395178566912862637108650362800006652687001690328331805128374760791151196585572766370123646314888052315829582550011651232206391466240763543641199861749210784081487999364066443101125933449009307423765063041577031793812434892674528038077953399730568967073551384010610364564691744879475269870969947326059782819556035161795232328271506473910415349045592805258105277466401497291428935818657059986282580000035902545160290558465044488972397959884598042065828041691474991630342548844114905915381889726025112616287380022416758204325322056554263517693768950205981081956084619118486217037415180299667791800971336709436320489359071840430741014954482592969827483117330461019486098662018978093410543147342759103567958908492285468872584371305538936132628147217747966330204840108603252164470552191115773129798893183031700640138461389424621339199016649101008773247891253450859824190241778277492757109542470756591761214701529795100387309517446863668475293551944845286383051494849027254643836757483929261739822907382664075327644560910364667417061368516349651000458876501548501839145325210106533237197725294668130504814511930152782435335815254489102953653082652929835150186163985296629652561354950248357005904444148932568991205273469369133202226818337375268555653798152212773442313013721716735759830617219108233410619478751830492810305234711282692278269757530537965171352887327753896691893856200229936252182552764443797606513945549470211271441119928997619293322346151383033722117485807959155150888486576683363968787176631387955842428453999357669657314273885653007930977640762976612344060921780693920956375864529043933504161357114796677580480494939814024397543615861268694471424355000057354916381435403112039901927460327820190343479053902969972076927562585080394236522202758710526305977096372010950960886541474746533535489384983640809598270303343081923829434864678001800378663211522760976210309609279060535542231282001851751424605920622853670835571079878733940516062016079313795718530281111645366556717303204917786644394146021274273130470213389205120411101763995866696289278146213275457897506035001532064033605778926363907234551479969367210455595220686246059061162221809973972687456503628015822270379313633895923039340092067118219466749428718768043105627077479244313830487374211935476761767334287947116532366993974378732767050088742921815735192478490844070072910370178560829712999611336108919088430223504466469696107731193648173019909259782577927120080565758936729791253765774278216443910388341736155501335077663440227259312419860456109485974329085813909107682669915667285745040803596510478919803717614024246745427709161457583845623568178602565477009053226168179249988661492007787708350871000109385360718737175551478781277022671409359833801363205445175104043988068192674971314071502567337000203207287796827122247926528623095792437677516666250920960929355317803628442137730524177188148115175185466018138450077753687558368688929049871359683770430895181829559997430653780256752084355895182580895246528848128959388830562132359123381057644190658457978237156132191134257174114774744803768727791311232072885322360644756886588743528235641798204338761142777947368587285722784817395227294370708243620130825060178440651909905309858790320853217061700327827044115777523903849028243311672346927663946146236023806390350585270510354671887184601307026173921391450794759171313196801806565872518659485671913992963023695795899987286612452024090308580808467171728005244187128069590649830018625892153737830910501970266050300316775439688180557530478379920915709836363876853934132732790029114187302409197593750734121543815413262198390389146179778943703200582799269134820674020650880141350006227386089944944615075917413133513679943516752727033258698074198880258666360713321657046558785382576086750466071196872844792732873191232417154318094009026354590792475638904255361006801093335106179447973855969150547174466569952949707368541962601020226808385838936600719812932567215913173043073140076908924665253941105719294865018603231852724588199126711224237076738185516888971055127778002544304189125872748872354059776415219733958971764936193031576827184076553736462318676506555299123316237879788002116602834153151611493068856708147619728998541009708563604730715797057775223359008778808555376385288208600448073283671452619277463889882414053628715886045201538161233822301273636546123871433745145427150824627499488447992534684428303519547309700568382093945109889310992450671877301933695391236322652251832753505961430780268691382366440837714285998542694386275890805585044492676498697433386155263690804917184570669837446017415465716054942843741583654800394684849975299596902962517682546046532171224007710193097134866546612802150805557457072949991871253226138956876163270560585029925676140058559453526483134017764875748874983364232555272144585407150585225168226689672764722960147183817022143678668454235946601370582178348237454842363836417338956667468070533969457294359203161255696349474056254752591834640557049024526653113891917275106256752748164824630633832084760839057487302438819409403285186361177173585433831265161100095064323815963456088478663291337498321581736917873979125670938940983062736805262439616863814606723265089432484341276744126516617364293580949852450177521984959254330885586963474182436260115508450935577401419039605442744306973158075506929016097498278621131735039912218916838483073595405216240818287773395884775747931153636201223768555556453734034249666504974708646117045453260828628201816184891162473768661931352406569264877472310809776258449772367198418628882930407013250435552846440446157349816082313326195950092161352231444778477740794630732232573536894435409482545546684169597677962657047652492883092279669796329868259170255012044318207915912932930215543074213828948748245291588484938302413738854976351668720256785869655679243516114207730665660405065805158274802233543867617334089290877777749485435559956275591808251577958984691278190287817381087375405542622824610855995983817602976484512421191628875886629805193239956641737913392429625246174136647754214138285146378067819557962719397415886953819899830028280148240480603857781160933664565667038239727288605853583228477381403135386409009647194293660494322344417330022910814009656835764317161344077218231703741532484700550594937762355533665039409847253968536694200836351475662340487042199447258017062753272311964843021624767805353533568747995462586265022506141014431938184140570814568629103352009320861444208286242854736920564008189193676966270952378089682486981300294100070187092944021068638384633085294252628240744770150907698571405949766377176747628924512666982441286381317805824200984798139987257609909070453952886148582920711931370825276620982457252715598794215716276544276528842608592287986596456619724247593350098040586030333643346160968459968148575469457897943448318155450669515641864692412696757739765753398511745514841187584532448022941775092668329354875426103892134078513746239840297082439884491764269484278022477992482583018129594629436792670547491774503390613779902440521999375651083705017836537801962869823720353181740891597977528640165639603978287148995023463095326899469458929349554075189829114069065489717471608421180334839091572792466167847243162382201881102463046368870850195593806469026533412906804717976095887733012539897172477591986205060123937957157182249163608322129757005688746665336412525018990284764269013061815833268485201946304075674616983108105713821325211492588032144971264178919327255080079065030062239116627403576180521125404078438525608945065321917262149956391448047988788015058528047461838809048800313224589051469092966609995818506606582713692098127119730847100474895822982151261008499716009597492213177366943415908239318418145421663586343479460072951641840879064985279528820279605555385120292484271076606867793901693114396741738484293621715084130510647569045011361155749627682429061663188784339158756250094706438884097314427730940278542520340648917560560809183729250905522246332569968345109657245316642482276843619292238107120045078415343417803602894083810215416659503759408225708114551062150475261478550481966225161640152921657386935811353931385736410453001721843132160373861071301641016407488832318757881344340456376191195164841548077402071631864715803895143971979783092214709838567342297861991543094550587779055458239349163130803297062595795845520484297943306833551803047542474938294125842935125369771717904798247160783792791960884918369002022512432412181605889435041242804472967437468205152357360939041806262305628021458864911321123094819723269954758061409248400257112822217734713961365177970386690184299764513765871917155979988813011700902461841163810465659922737047312428351544212388180600954249215046777806540371576419484502259159960556042196668769306142619924404242026745267752466031968683662397086033723178032976199044019008999648848988915522105452791484831551545668778600961657297877897069165970525425666958132663045368583817690372536262467836787649030254121066784684060437465364569886552805783539147129462940222297168021742676425730129131105984829816438918740107160363460872879438880535136642657638453084403700986955181364262602121021744352129004279930694902957279125545024950866246960783523688267706062632046005102469310928070930543016771600690107139818144632845484597419529913297939655148585747775601784836377207553141507191858894786705045762553089483714588058657994173935728733465700276301656213255669251275463716877257719668880693948722199727555988209379507095574132314032255619830171599423272418563424426760879096469208630131898368503386450327614205492524316739166503222611915280544216233739211694890523803604224414787073472809176644721388392985107256373833230372413618529451991550006809156373194815449648153032412125902002688067216381456239803227403312862957095976272031575901298588558480459644374897582980908859800293797205800232750932756278375149043443151358865151283877109806504753909873852828366330150499555322062156642582180279161458227681354251085612265436432790343100358456050365014886091781560032154566607798657374296712591076168292550493791184746890856458515968114301621036246909047802739587224078545847963903500141069779263142661324240516364619360355620790280738609509065017707616422615306692601131712611823237557115534545753049132260611666422900960734287514249801994480303939726268778918531046938091076238216190045837210699732894076696668832013452349282989095459575433355689392679471076594736508826575776216913229043886435671156801008102184391767164407856094688396319409677820290905731726525886979523113337939106411126410064709585416917781913471777860661697406861978550101161499293919266768766854410111536050505095291014751506652462707037472325474146579556780102629111505399018905044277144689050525985116814940761843236420706681607799217927656633995412317245195294117056927681768469014908755284463194581247574499438091326090276004514700662022058281493221503740880022417793890580553760601692096982151333103759657678513765037608428291159338295777879906024175207412875028043064903234027338219376733231192151442023705596427338847609689128625351515274908265201313621062957454956559133533809570761404756676491847368366496256557471461760098556669609292725523780481360079006938480621414640039680180572876363496468352470577658699617478722382140397879661590331937917300900584228206642448615872789660916543845494800504272195316456759619950085208171827955672919890708203191782728966109041057855171233316259412129401313079919154137151466466077408578627582209983273224652800468800128673445699080952162422708695021367300009071062509340482724918334501335980353083522602378118996542465101368027143663080763649121165616160164168957926923939288507478205581389893112972438035691847543509844311862583579161540691271414044312920917392827741932934281385486618995236545076550770623044399980545751613342560005752657918852628376931163483189984226246308443722585780311926499976855281020881361324548666561925716017724493567130200554506327320213600628612814145798187704861875413096303727580169924052654237765283020174742956749683690582197416560476044232286537113591784008262002250356248200593119266889555935431926344000615697323405623176315487724322200881894194302567430822649936223690437661838767480428968265264098909088157657345630719747394318000894090129855101316289836221825295520338564930712529829176497047861735514856710184361620981423694609438211709081882605146731163026476194267215978721178660970155664198997572559323713853681129590925931211508010120751466481417093179149821512275704034352700802043739187216358193614800713927309590347860700936191841531999217400444318328807494280137163023764257637957301620268511197959282197826051884271736256439676499200048581419561247976315066272836522712745934659798074137736648478403312942261361167236952505564753736879933354609792564308344111651395555041948274980370806157759395513240017168707844725823452782708542488799428437600688619728376365694053213887187234857655151428454087784555654095379132480736258560051652035595752778795660435092000264674059209144633312243243498697993117167692423359695720620014912651925815275881784950325019078379558531976959373106433901356933201018654824921360952291215772354043633416023218915388420515321256129722832742769275993316957153293263457229695238938365548002347977955690116191863410697284254902512305495334937828481233040166096232764780010916524128419484025275336659184493887697159284198075404366659884020557915757449142637728578235212490277407486747378432032542348848032774932926277005444491662935098605263740465987262433290412307775558234930716561691822128438183372759301529355687934738542349132406931005829636463819453984343613403328895832464610929414523934971574153382534899612877417147236948423631879450335930662119335409934578556481786680643158943179132669179179927600949293296345183699832719391322423908886451132255902288701725474146653541625988170763970249697961328849943190963102092730381636280747215337238834105389946101792080905109081902935671280957749515480712899345542693406156488028781238195440871949439550604223230354314944933676918300413269022719008086956473281648205119698541952300447205661010790827246658147846540220183668190037528153935653271582348590435969417045924918503418396122875902157919529089927050123479690309412428845733462350058181708562164716444241742024856181044935203721273456194880920923336151321072849518282822924303295696161561981993898645782262258216079315403687120425852637902057543457182580454061702625410170009279446929952627116259649197747220254929294621901139448969840251536159069270153266030709987975991797289798961917789184116574037723860701955836089850254529746044849285210924199370815046382079618484252059788753433983244494187973175649368899700427114162167234079747497813105950940637550576008544822773983975541688625749866682717544683497254999286502041416247484981485472161106977853886396748284598424620374829626197953357948241161909485618428304203452845738922199382329557396023060447131299810735227665902324715966292905803136996433352415837207293160722808212511514873687844547703536857278322171225564882672910272196232368658443347489439966701705551271039854741346709591678349172006183342790134589250805163904565872016708763956906957221880530004486354022503039177550661450639816054658779789336481571207038349821506653921207392637443470556012639889233143338666228854857806462076920047613663922475467806331791568709560007099531929814090721002779762612454936599495567610913848377448556612879951633104109105594280184754845761223801201781671649173627435135073815864257931449118043531976256674789825166839231409549136797798073573718644050475659364046415569414696795251005301411968147858705233001723727214395774924030840764426943500913286919955899505596530489857015777184996561611162280580322253110396202628872582726587914756323773775457169788944953046689997816627951950760321240842148209847409619322630819874370165663250931828133184015066124975621462824457870530125231729909278293671859642321176288406511570335778056944619067403492262347197341646916838830695512605004237749770221188386950882763488279971325974465574170093243220416787418030816069323876813930722986875268118001243729458561946664631209723836922815066787939976537348933626985452037700888657918417847017033095586536963663724505601851378738324987152099134382401618506333410563112215344189722273319882847740374926973104003166228543741318486825363868537685662730444380624158030358016387983859942490291316130630585640091531833616204765651736018994234956101197539034428955392239518515397184859368110499117049485251358060662512372127804053935254684071134929732616067381839964990095804780211345096341036744841323862568283360133555497448458479532592505509761717137297062943332052303924697611714030625891480693564436195961494212258864320238129793903914996906953653925413819071992637810907273036581110172669925947503315752866754073285752042979632565070037193157397259755398004479150174276729906370073053000285578638236868935453740239007558709188335887584538582789850945534316782884610975503812817457857730974434407760651586104784742528622232380086333251260563144059319911112193896261267503864198651980979627787397994419697512268999731643907966719705144047069647588331516977368660453337173936142331348371505373499372914890301246268659247770039402241656832567705265043461158588287561372023300509017978625335462438597263678251028424130016414215701176622462197735582435133901448474933238703715157787291480430242693503521271485733613965099156223742375361972275250625954354249751417592553327276380128239986862985874008982795760331501071513177792927047727637853366838105197609165165873399959814382613397532121076941779850838822549695559965337382293317005656608492689619060530756444669392064776322870773501949983021873389268717712877612060525317611497470404079326719539197709905954277753870772977548463737040431697799630494686540134278803137595503468682290063095070117345905260893714477419511233444512729083521635138931652167474768076619228490668596865966720585330484636061137091030825680682623951815529650485095965120248149107474542975784020491262380408670584722675035270534244561888505077666494822361331683519129846571558706945269438024825185929192381521093788786077845163223798603757588457654626589560369676132719005624396415959964689106866208314575680453570483774453478489389979581414561822617427635412213468691404940711569721437570280408057591595035688367086776271013513000921602652367145615313672367679569363583305453089522303921866810009683785408240861964622910999720718243361964468898911392168513266516375155703134075801223809781858951249271156748474583980830214802011290404021911855156913173627358528456836369073445131224461757183361973781097228020736043532294104552469944113869418411029061434906665228337343395155368475675817279622107432565929560419093259906045571529620386841790153221629763575119433936052274302340210297372850232142677429161444495721064546247949530060331955529663201588017310961068679740971187584110329312771320886362674414373197336393478781944821708779499404935659512286642548514314651976309832326831512089277632825472613599757660504786366228474482136511912060690711956121801681091954237989199348666367328443191487143524504418853721746945452196099416590586399166008070459378433542331056427391881617712010424237916649064594300219644556529961950766490524205693291068977656477248951019992135802005593275808947101013058910967462823422799007516288011448980335735768991813090358063984244188316782554939997824896558515541320956824387244346538247946940404144622378655236283308728455808536224718279542195115120377607901602032197952243517942453128963943146837502172257897876519724542017562260314531980520282520407852037382521899681857612823771244040049771013732944082768701980677291658033772673776491871661954525923502365457802825241956711064594741987159716270974290889132610990438475505010326327299625775198340647765981618307976891879146076805141082838386777147714392788541303042837945656558036465810181093336131878577174292468188666335132416998921824452741396402830952776399725736937367569772263123103842969352172904119605918106704665374128056773224850750054063641886335910314804037490645504080621818019339443922710523948113442630253168275632576070922140119011839215595242644740806784001780317367163899757102536874290079865680292872618801179622121231785977199013618862674560379679640674484321600430167677944217157798846886685017063760540669871275975574541996145578544269936059526966140023558777489265884859661384594905662571937729612825223370123178465032730246071019302377687695356623079062487263364685703589246613784629730345669321035345907673765147923434324699776864247131370100791872583933659548046718765379934345653167063292622468168618262471051909384668276390961502736595785128046277245555677458991622964071823551085535794258613911502333606324906563812874216781439769114850099569610902925838108298608402034240515681551198684433824730594687737028843103105070050596741498965546602282342635413351952491993661468359454303705634809285529003138599974495881824107513796876888817027252710021126995867927982034561588838192989649929099109711572235915600222219680105296477706005678048614407265804170219261934722073951878618822855670536178226409140923297209014046767047705252683839525537633097213060450707170872148446694156645549300288138703840942429814118485686861541012792098364441424577770803111656830876723276895925333207240895484477361061160343440704434705639497097462373368196278105904520339422068510608145916111008522277755686163959592610548155266988903766473054353816861542488157157354657209486363985220195740083991847869638600099494174196931951594118517713668205329536100128853675531106565674376766008565973806703766767639806839407266603272971417589715693564861543438822675604681532480372197054505445663930868207375895482212238030697510680979761550261705789961761771669354122676771289141313839257680940638181217737448995806205196184665980533680848791551531390551735120082203255485317231581535598857450109831512949001885757035242243703873970931266631616451601457390387094846935830029344066705223458996156739853686650871932882138173769945006835504310791336785060024513060886949427139936241596182178617594551643968894045308752661106837704838883098834250012644347870363046790904079934694696341020258891794163572883086391308717561127227045985442619872535486630230494392746185421933239174975962895666590740461138402353184841548410212524959698834825666046333950989465228959759374629431510410500978168059331916009405226549431956350201604493423995498937044742602359595237584340442911579508471576973421082403391580552010224423489437960576384720459604690765024079264874158265671241645798151206774856624996112236743025627804466547161539189911609082831984353920375655908228605240537986455843284226726905024054114540166125339090443220453643494902094726582845282688881293423683997881710208870892691167527738983801762761335210194955641526520167466386631688288788167033492303973636538358841089703890232684965237661512927689544134949305659965104602617852074478534984627810821204885961600052030946083577893504145228494182795444053501407660180064029371544344778621352232505808916171344508539878724206108230213961557303807508518675233914115546281807420708108555893124117070235768792486542601405631308565109382352365929112830896234033585571070999482686388685423152650916193229305876424713125083497119477269940860482417279515478653756776863643920989877714386046871918453358472921353585782118584772153753495611758574411078049207661211774213193718992778139005766590166110715011051461553714956880948903767476641252816183720352632683742746910025417058534117087357746349129107828872983566688392143495390549561248950603752051687854035328114659128208182657623913921559078282336772593695177700228620334763861319714555753391272064290742309867779825664811850336709969266716580085555234110840543480418026087330073635618060599869830854818926771177650006813640480785317031598017550208582229683646595110627165125522195546663970770888847309374853411296260816088919415482169858066082657598201592220793984996549197950971202434329636034103311237341618770789109604601165437704280983265602732050663605808590670475138231218502074627526988670501997641347634114921673213470060655159739808912252956452710776538516719359731577919172351829826051493542943047622674275222553312057899937553881765027760251313784579570561346630894818808781593327617507383527536933799644117999033605737185424820747915197814874135575582540723577983254487327565386933699708101975300358134956831961696024349346790174690807854493915962953198162426736678852103415237284067954522790289691297514981599224712519882130146871673392669664779483437100989081613164016128032198673469538334769799662939817894083802385401301826415997136474466346293525829439974499074844924008573503439804290950239956111974159586437552139428765803914228298210242850093213642708933364824925260973445395031906343366196393825901040745839068981964150626868291907844970382419758080372037161443944891405123938447701074736571709393248569616824576258223371117669283608094417741066571485017707624075281896596026033792097049874785904396287704383220011489472429137460240433468244543448059389929021756587562108941956063205286899982270407624592505990701057146966712086481062591303062024422354016367111091100841143056425577441912734547602174859036515896850187986983472432431846542377838251053130476199580673063068529244574645010698885890969562353573789122379355930336526391439907066018699571109594817102021818286399942030886992939942401706696098308496415104478133035124540191882338529890050953331647963399937661660976262805656560423557604559572526722088474687445406986119798336625853137414586162622324901896671511870275632154554724736628675801260648739377720959827926349728492136910999852024374067983120286333780198970150532254541635407221737132081321043090648144538705555438094545486011351877163936891669950366973734971275753325346647175951786252935552917125410653052598520834614827271147235994130932897581430367285854406005332945112899321217164229982082643608047804824266141044079850367881020158083660603109742156619256958678017448019584195487217101840419442322309354397765279805143358135369397859710840377013252083273603131649775089093565503019682547315273391208870918451521240090756139091937917339566883952599083549091019192559150606805657744742553868171987446732059129172495279632701875924830161906409555272877831279202812860498792263420294207036644662053523333901945680195624324012759697861734619402045823181660555759229208811419708324801705638189617187183554195074455063208652834312094312708283596941348941225740360347538321638572096847536348120921293593117241798444230018743845092831227346937109141740548059868714032654122794997562695941157021910284290389382782562655205977738486280128578619824371006634095654754324064838057025066042590455529155335459035816931941492210396665265820195734578875217039874080343994766989692748454533757975815653529488297662624033920395627182524012215851520993762254938905382863928791669074171258386076088562096791719223985455810370116228976344667050685562406598620445300174216183061751368333294626830209010918912685207467981702398511995201430306339874773758743925605095647625114307127463846719785429685180868665027317121660641705693082088247062603222648798859002792315434123969966508146006856718477371631952286481467284836005455565575467658172183992962085641503475527123220544516387459796261841041107919032656926905011745869692566595097790409967037577687519646545999064251514604495361203892530187063875782791881644569034725944230157207573003684985091991563986238040869695590459314664553400615120549130175211809235815908873324042555434525626080299259710384494629256588477923982077347889965501915434954964779712812913963107464838483600544894905313950490366398763635794774864946116678914103456094921793513192219140010748979040774509591178363776390031914687148098347772128329318989860417597431414546385301696393598220952967080763317110978202488183386689290866303711459827751064955622637105506519361004396390127688040375022465338845514542812328343039206792399346369935265679265205079267970302628455364764823171808756062261270303540325384058011216925934455384076829311958568374016358572025608150416758562295162941362643936980203496556592986024029336998096369529391221274931468992513533786026082647797104023988002877935210992828958054523116038313804542338532297189175424042398197826347896052990755850816815112702518387054286841571326566433875551764674385540837161004963248804667929694117295870761484793563517649847152380281187094399859537336521722991471130945313209409618402697873811339333436057983304262667337707956932401406589135918182042382811482026391608046959353058948146507847749101766063293872399189708839711672530091400081782903636788413359395481083668030683018486932656422708531796693377512014440696667374054401347328994981723516936949386475489424938050916223645178770582628479414550179986248179330061509585748905376113160411322066421628176395475275780528059369456758504778425829362237901386822408915711506445999417553495227946361852261084056412207361650741276641457159725643499860626767876772190373585049782034303930348468782053090762447833008077156702063727541631145241611956825832843004206882128642350039831504923599623251824850127321011590007457924424158729848418063418491179992499116351239541228696210017479222830894773448937383238549147066890819365772695081792361964012995780680845258756078798516086637977347692971900407969405133576710701694365625502838490155834947994389686247210608491849104569716870169935216129664654499255542384018967073793028072018947169036182116535290496200979825249137354980105619651181148721788324584169518823006061356989536078098076432289558449792557311429317381339153294449675075945973025511689431177756331696633739826213199540066295622795926392359066547416339844617413546104303120816505409535346753661109106692492590625040610045143858390333278068949363915406774132225982018404177274229699481375803554300246102284059496270398418545770592968361719112973914389342055001850417497162744531045062642373118849712777170651571785381977144596478647003563559133919726041143926110307127450847626923448711048769514047447258274065040171625090291017903150311471483531556891589438138843994335856669986754006233107223226499461592993050605507526582345717403723610861564865042847390372588096166105322709875936964002726924571763178546639421756311559199051170421906780420306232462911866991658238325616176996585096673760227412954997371353296076018421055754283593920713027115912505948050422536654201866032002105166810183466564383431920357014218583322921656572725848000202099903613272646053198129640459601432953403067533787767095119034196453013509547517989663621994216719600507769043647976912198322171832515679667842000623435491644918453490572229166603005924493300223081171351599936231597458565686618470172210317827833638257875939717621062124229260706207656220376209313171565144580112196687600702441008944969561961002436873316790816842182448216975696448742697274779494018541120373646454555455082917073038116054882853301609130032518091358112582123807743481169205439003711989084307914838846449612721232300225349176765394189410092670337869589573740983550335728920309191340702524414203860352624129546793712097350404783055673850721391223153889340453376118979464744026538623115597319022429924521661476342341531403277556592946297489808828231250411934866188348960586806108561917762341907957216672186509316393810204143458848654926839528093375221420284110580671928947870725060261650118598246173546693933033552839880385926761933325837826280103575966288011447745968973815643751368076760701389088640946465601041635920291069048378277232877478632225433583692620447973664632654820279287597362399175043020724529900006410798377053120856678574971564760252218113695365132977366246815461900475537391643993330212726639081858571217049261749653502664456079898316503697115953645525548466456626805384383711927100124301673329292341021515916737670324015710614147806311702596262352228352297404129022936948353035924222426517483926922936786135585652246439654555327251109804392972398689656962903623471817287823961566099746519165130199256898214387042636713974173144468047149777668175508437756101069293838599804635851708982170937456770089068216569551336536771202657568596053670587906866873010279906849013024001514537849077813785076601510468493406651372197450605671380185485446024460634413798800701675390103682915679335302540618016591436407686824516731590716073740426936247268522346119349739089882590846380837481742362569809496398158253039380421056734500482004710714632526385589921771497447665233902636262146079223780693757535913259576293590728250422518425948840051730813714197072004615837441664800959004402735979047234578465199414663647727331467650697795048641467854610529249119334032778028153856514514981224782161679070606987659269525345897454275667397415135379494896392017456981989640032400052693890705453198111050019745609717690140977000370914619176337267370418055171312014239291474019414223160189452766602562534256967696628915883122932747744862375227780332885846249119910308961853569595974396476649079896284778049939563905753729437613036093791585420485200662160574477438343720892223585205174942551443647226654834790721603476645767247461191719414157905361810942673082280612728847955407837629064896685753063183726363425579534587865958459073686618268923371691142388489358643253653044355040123464320057215439065180821176009999029033226890072835293558416764529546492933074029930562847077859546157138087024460001326841294190054453729008563584437710868616748994064400278185400793362424461393727219938829916832950889840872823367047163179785529708586802273353976831596443583432262494560350155296908534640589834754770477960751379144004570918129236992938581423713262160891431399248869830189402377642668611365531246420184169041276198348335415635997972369089270703791922878669988993581063270844448857812510323635789898037687364266709214085334030458318802825061229188035421797868222568869573049243063264090930932760016541961499257747844837343901032501762122986080385682334052277386563133580111863530505392149073235180498557563739816747661707040484215973394348455955475809945856492448716314602774680432957992394969471697656092932369171347459056342637087517071436856979746487019010859823051097676312862244954140133431685252220380649297686010605863220894409273082328480292396755910871978808935716504690135280968480891969753222452408127689111933566809194854852727981511478824533618072270330659593116013835667868717706527530999624236553136866445398330546086030287862712052959572622614382436739241279070870592916214144910605817231666151953155864327421361246238115458814927873858192623296287232035412769315718344157334140432768795077732783593241478508902290565149015041125461967699385713492206241208665642144222713849661711362678292926762664527872651292689437714340767352948979067652053545440923556304072225325005142180445228677849428985213419402781818794248296346535469716009139319420986317155756904504441936056371282162203909117967487056984988780154080098699999128355062738026275082327722585735450199545503907950489733959214855529146099158617548171592135669979330229076700634134583404597182734171179324431254079806186370062308846896328108359263892508654524567836661651287933392190662522621735732167098931283951285073368281041050600373780487533173549647237935928261989728670205950225661199956374535562201354806098243770358121093542700535285587009010274521259566779446584283667291096089167472185540278538624801992992555609506190488281751584326357460044716956164759860971969333716097785915310327830000832695681903543712130550939153410771429057823844698663266135176155094763555468752333749577550765525108413431612860700370177641381363570521741578527720179798066039987037754667565926689321864281192721810011079967455350647433201579058181677235345403296455508444398403089118679041918336206838734773222228288989763925265829023942670588997973434701535265323509837562799947859307029270647427094531930747797661015276374180334078009014420789952899432678641703745034763425502542573415572917972723137296772623738510465513557143863503040345181026198986498843293246024313829205870865226615069936921639062448361823542744467495618349556694780257009650154999666150496136937962927951165835310324606265610728721305711974242526559050810763525322505175649054749932264815188247889739654199267977959376530314116871892260970105029725618486603289656316087102329346634497921017280044848930030368122389976793354140861417603337692334678780659913443543236624668534534257517504560965430362160711232150673697405982352877463669822936968331123789831344832236561788770713070875433311759014632807198570085948527505881269811207767365157397681088869217142749186018506243702115086944601380616801005658815427924333020788672406951623196083651586591946949804499861890507775512447531644280198581423687526176823661988029508037240367889283255700006322424835868371595078299849027597340091951504009371283747281518732547699015983342359192876608985348647419844501963741999105115177520709805540365128245321582269477896446164067324625544536307996946384163969409964083999371536418411086571014883242511314526857781792083693504876274563215849299739364369066493458148083750300674998675696576044785333910556300248052690338362587437134566997795707769628479892286831250862516651747044686604071013211632131485689378418646612794043834928849420870642697404068600484520842571816991152670666274263265710094941925523744590663868705174377353313448851239559495586145581040847116663980012924361295785810834091307631263486131252318645476979052801886992995230410655382007351845041930029961398805839752486443525333086074271798412301854765468862185579387093050613513180084143365856988853874466475632650085819421217635906656979939439826472009993795491365880233007710007629460071406818200188587253138799689951579507562405217498625455260436499218087455634689229539399435261163524314276277646649803690996936956437529638253668108844938899839578554761543731867143534001089893116962558984702105056195006550059686613862411888227384552718231317044173370261048978859208119749207615210731559867670193355653896074701326718203030149235239825359284647592905299082917114191403392332953089037196431250474993730758084038662817830248896484702335351460250832085874386537915826937396931537347786318724795286609181866617057405312202956920750938625559737677365404552659063397870461638644878182613449046956053868702679683189336548427783329815305418374494887976193341136697857769249194564686737587444455233944858788372030465160410149834781804517968005389334082163745667969749217215887261322120862983581616722078032521015466513416236185982458970413095800410303550006505180947230324224994919548940736524265659803715771108601031434718231831764548062015339064630149583925274150226107704116335105095438942024804188171512230274845387878588418419654732808665153962705413873810928176548518559025752054889692192823247057513565014814854399474005407621805631512105472404848958156771734973522967931757425338623141964996785593938592594108765607225733397783953806106898213243224342372680248406047737777277577450099724131473604594772628231327784076786882256091984910152553435631511829433199088894927852474562867230630506633744146534474701631004376145723472218297676685556035365534185620706403258572794974830900386140773602144562925443425299819953624129584694240806611589394961123434093534254642623262555188452949316361930521119231410293940285265868959174846679069961416965328037922376765600410252457257604430222155233804464150145083257243213418463695756740135069205291164862801303609486501290620301318665413833139876119885092446676172471602201049699550861232329702176693155183977851197413725883472926991256429119472801913252471858947055929625730361011175515315032657203990886768461306793276292555654130446455359101816593256258794352638061748644784845918668882266326136600613955934710601787977111163016418409010717414513401189796839378312370097361125176415067621841340316086108293461687254815056849214745557322883430116607777305116699483585520589030565876246764114499563136771151385447899971786812325941757375258384975110984445495967327504924790892718802820027815851042578106109912696189260657023441797167039262433017313444461742363201594395817607293787668754540149081362666383243485460646659157238865528790439593369581722594192132222984377642010566047443516547235624721265174479784994027933244978352699674970394179209885447118868759908486428307499245187425266309944017124981954626700217507128883054012590833561585075961520898708167583457685437402058060325481463712352977702428099621021065224699233823367048083812401530649729806787663085438692317014528249272192489802387243115650809197330536161024185400668763324210353397472181082201041508433948348655213625419748328740999392368955622837545547383455604154369954110767960730727533885260563350122320340267293568741223867080890969235205743055138230231196707625913380589362493701197163636693641771158484683426943544000098119144776290374375074729936556695464660091855023876295509824276483356491467393173961901314880218040226209135110909224466617407348213729656874331972083876746028913534035110836098767974144834913566643050882212842081416858441040590862527532678893285708049652835620388434348013275556704108915218455992158050117277279524291442399253279779366421411676555482292099100444102647337914001243621458879870576071305256395200709705448221810983276690905004147545476417264279333241978002354471156310819791224507375507480482130418659437014203711523035545694466316479383741257385816003159611430742883131328570584725259620021812326625782765710015502583052706188131230113500233333302256306066157129582869295916276826808359843541316302933098400399400373481878776306940334227062640499372023453906435430302231550143238539631959147220138222586379099338887068121267657839593974567695392849439170546485501210810686664464196891162839113738132427875826495955402069628486358797344711635041758836694490158756309506105052473406990880090677639842373253753971281262276259233705193106439134309389031357232380750989465370644692471368951157365075010582725840822429936730632342514712108208028185502304771171250046532303815309729041705159291447348355426824729606967042740251635666603293062335333559958429521248388028486173024440325277090251515549023596068490256146653143413117869348870434949691583040901724777291953953055802093197098470870289776140246017513702574568009960480108801458521686974039650359090320202069267946053433209921016701176275525345342042851776812134549493017652336993337222806666374001887515053197405776927226794086658557318557813300100204594744462070101425705145947352462323359715709701526688309514224800575106624644111121570718139401165699393547665503859055061729304061284207975361998257691338800009505299009253839540843455637403118401454843304162034764190569826287096836173070911918936541901121570257381347905846424298244098584052440122706588054210887274956546997594749289731932698678448225738035025649565459701699175528595795012134943664673354100365697965186748849546220148603940919776977993696008676552824059869371272323644846872383221614791981924039646349007382793143559510744653611039163699164184182335600397691266464073864041963395508186915482278585276216437904411017571414677969806891963199087720886572381366767921857848140242124977739601277597258514760405127040064934494353575655023904812781339456054267557045422186330653359290046024189994620208995421021656209692616764531188060169958021045548060234748604379506372428446535590500486349857959429101268196560658695149316057389443288426195171515857789215320525442241580859892759245828721757225444611783145620251916341316453340772631918896155153747455336222578733060219879098894156134307760431883580227159075390077137331802435740273110601381889616711175580564140521181403755817166052487852830422540016132480613293834783108410825860767698745998695193964469529079930514984258028793746527406989899997451170717442537385104658014946822372652074837496835806144753745041973352722275567701040896623479541757394531161781552123931481315415105026956512401396760840758389241934056924929091172904562814631222565816349828186359285766203048419171641954615259918612872799346183398339093850535795385664598522899404596892862799468348318957108756910849886891444170510344138366267250680491858377995058887196563924973359681990249413324863929801344474554476005852812849125867222793194447282858810025432608368806939528496476122827310647544055020298672855245623920460208408525375815046927893276027212711323336543305442820657960042950425601763160387327192075299002727564705050080006640055699939299853024383141471683827921587222344114768256491089991296876919928569598256393904890312312358349423339925266018373676548830216430969837187609520236564653141394344499124285359499084441410030915539248644826364633841297791359143940206391710699611608047457806310260494324809980512902914664505326511890466621439492245153327085965805373170155260422758306757045344867792390445120675294891026782685438542664968215303600764061409447985837070787010193038685408593611342773798874006346155302582538789307122787498133132182415143085488284813249854975953857529328117497687209357827199375641392160225364440060160045249625301877274546777343645541320237686187330710642491384407609155460375234666794811074024499457283903233519391848162357895688342633397625062279227779652938439992033608014186400033225937806920052668312476992978723799665006285047682297390496192645242472721059030268842186103979931884670539002695578047915174521726487180669361963396365615473492643068746535367607970485926416150610157530998354963181857365512570526168823324209290976727731536864874213627765941900074065750631884246543336363404112611915778353979940436686149119669850658436276319566336094794731519118875323345049636351744612324347799284394160844390731081610533217488998342032846874838264014803672499029102679999573504141533238736589812052664980952031069804747738113001022094929788832159059526366970103913695887003431809384439394860186154878420261124204482032196872886195016238400915325663690441204551678887275851394524706291547388763023316526565938953362380337321491985384220089608359558088680732336686034684310203825893324517217106103421070744452472238053405318130667874034278982770912140473667236764490334429359028885117977320239464383568183100696958055301735413872782780727734268917682832290162364055382432688669491433859636831344849189991031456769334396608213508149162236982488895898864766724747807477808065259854609587689527557067250159205390392649049801089752587222070502389445456283164501993854019335523755406695697017172848902885542704764573967943024144801242577616704040591942312167626110464841895868528447013678220687969205848252509577126615692071653671080959792616353688024169212374778058439567517515558374237655824225782707144309394875444133171444947387128971763055681384100943814381115515570896758984993143990949226519198585292913356383993830808243338349750540894123102601757673661823641782625416644113929310661323712342290226692199704479070252185797276708067830954687843507706388954746409698501533926523661130516853186516873219048151319316665587334338712648307370694798806332257797212334358731914697424059013592391584264691657100429855203602536628309996233742423155016076715973049483275272711495308650809448569120318644850564948538104842479386588749901821426449890641429489303004123340070257234833663996503985406395032432599048287390757941300922502762617278143767720377350759792558012264716276286486951501372965476541991978585502762179945241545008777811288718166164386292891853128816158199973800842060870918027621104043618245573822314230220095010598386082807705521428182514234849078262064003151080460488433364072061059995588609294330093825643127328836480807199349469334652448962713785535409911062680697532563165422962873658597172550456993806100200084533695792659832106226278343628388742950376405320983332236251605973024296372188830729440170248103343887739091707071692585903210590208329704486344501951622200583762603748293672321070044835276969054325172099383490138361889917234573929968393591505598669947311634332876878448986384437408184626991368484549616766211094239437487760880415465135560481020804674710154984938682451084707592777756865738641604743827560672822312344644630364428043381237161204834642599522857373418484654880531013211633693336653341016114449758381110457942102037647418088790635907602185416826606083970571652711994678553439843513892844421961553127705480526088630739141254838722273260334632648253672351883536706363955714861908466339526737346030056909706295959126092744182187005921735839145392984981803033259128351649760041204219628300717729945975809951276060955327179740521133191332017700094246940358378802433186308249298901304713891845707173387883317993279563750909868854951744174565458541323679125319833897612914661446089843960714010420528346789315104990529849190247698113128861907047029988259066522387282188391374924501114798669996903230430154680391141249177471907469930986562323882554554553906354354997700860302733569362146341143829052977240290312946520577186723935842246310623636588773226140275526044026432889521673170617624885317768552775732837888407673769898996433279248133969045639765106965492369945190688576388078681213609285001839233778038389845425548485413394232431981126021109746583909372654727068139152506347767832474430106041569143936326254507035842214756392739743373977279413785259453422939446009977132903663178778401968435565166243553927772494729957096378163297999966533297322257492207744137796974525646152039953291725413076570294822873086395264523695024247361691218272177033744172567948770581225079750843449687470602646525588795958488077748858630698538696097846571434724311702250507045404374585334100166342806772679200604480822521701460211554943985258028246126990752604083696616235988526744268191322223805533393449034773905054942532721438168632016250667928882074085902312839638381815396094619870445646812193415558574225886480035332755178836669415142567951686595129756265717253256345696949382401813077699806626660281347827842217451735294940896096655911330018606192553285233530656021172286534089101192125124929414130456652317385640537857166653492081190164546938986974362945849481435205352077612511571856438415658485780724700207352797131928270697073823743587668518383588746509689454401139467805701527714165576142524493272557335079399697439043816572936725553661814397944202495861431915367459133518304153215814615581422643342271286663969622434025538139510341759443081814014291391942516597752605320543814657361283389031864523304428956544463491262233232227531877700468972543485959534788457474646453821807242482486689715045211386317410336152623864816587434002534170646734000580593458688895619537979115974113618908526163167870362662614852884224745087963871284257469098703013484656935769250987240493291710420441781127178852580832496667122087151769587064109404105790471324290710906930661001177408716512521857382494951499787928827377586226673511891903132772445653525979231265346923220358762665843045641889291469177661603643187150522027411047744192591143588557162772968660505209174744392070003623526833205357161888827562837265295920342961825690896172041341211140937993748578221393838375072199977900908224237181894159058491190240364539986567970657670073374303092356159474583578044333086739664254623107689752010346330825185847140874939414917869053696467899097040390983449622486389520153798057734836460350425830076344038440892740252173118398833346889823607283267513148660207805058423701418961152854358975545716866989913764530374427993287281101954423365427553064075552327121709653442286393813798829196115340855463887878988045753712964286461864656947519711754295641012714646863294938802830720785232764177110305395271799321092929931557140527005470449909389379498549922258454930915504724573829586535944106034153512023463374193824074586598069789562842438956695482152679769936900914037763956490742089169933969189796880001455338406510119199076817047642719642768925446669909025795031632754580955631200904942906872652667741200008696475438074762408409523958466826604227458885548345973495985944748182186351109539542592917170776952673232574033978659330053937253730897953360764571507531050611237587926140287060323124030926780455527089139754597844653786755769000157367618787063390355322078085075402337395078759448197377553877036161765835097933709953498373614372815201085024332600236146576552984274556752933701097926724144886095156003014126452692206078106511236211207524264949326153883349767465555582018049991584276757071135373162915478718582695744888274097569781378832078126836353168432375907701085889523309197189318082886992798846845388198584415795960097983394703381601619707688165706989479560364455042447311636479760521375229297697657337421282955224359577770634063328686235610111340451194854161558963873975586286840476066787467275825025563737263103288501515227848892005417687943013713834551390892912214452356155855185744324512417772760399814349330269153433926600173214370791333363409477514183980024538883199602821380917532329021633143724427584222491398398097823476335733703199902654712005636182205084339555472723814277837591828366429701999626726411835381950624245584120732180187652906764841967399399143885757085767502273728493092681626908598133202244936966720324694932267476687659186479808138407707678183961346395569784493174248584106413071637197423210810214583469637278254488003742655248655383967890155122759768851304955534324753019394764941861239964963220598879968217585045267920253227357650887667224347796165885345194729346687935073129931260358951508893147527803851690180797647663842416416654509228311538623885620259593448880138047320033036734803189385186630993562194673116159000720002767876607269140297754758865152243815072624628599090145323930567114212800339218179999245658723836535453231329107283975850450172133519324946486593298077671803202896556208414408874812152902955838863770911656254690718828370040223280315412236620370964402657996562753916417297573385415977852530881738918624188568366462280410357448024138205467639205865076626257806070405423465666593446752152867065073109456251858828594199072181930581828919892552633815739957502632793780490981364722286582601829731900931412914559288249526769085740377418408310333494113379759744449142435388118144375570689100608631194540610854337480306891525731941937330990123539067802834038070414657625754537638429546083943117414856717732201995318106672157324783190032154323997947049744571776813058856364737310941434455263464163720380053851605237476100900054295130088144560237933440008459403667378216462447553025865790077806622215943228082605985908129798193510144949449287176554982526869964106249334365299677672965564135231776906237978895065010226415553377028797832370473387712347333566716125811211543428600524972022659634077682643687016981464084562891752427921705692202308434848569679409993117562139193964402331582443364006176072150897290499097116799993775274337177288387168409734255453216312777978030351463985967857998096281204755504536154727395520017694112492850657220843921708009013433092252076352200772651260593739288370433142448984817029873510582425804904327971745083142185822278419332569633840550228690122282201307078264702524774219351909836125275571556973480032279578687037064475534842244029138774871949600590232101082444235516572805485289321311020703921565612992210341502168608229236866237282402092412984149635279945649717727533999355751030427522446066505866526812088745513597889348115289771810224460198814261900992240534475585040525569398776193845459265116357805680894326293389115859259547717276601058524069797816340754828844595472936997316470004284508605966253493438988465537446824133258590547755392400567419176039452986511018783493869690631297398944670302818032375425163387861448911719683328100985093303344179513816698762644187279714088235849428377065825192634267229513659014887418000153912921844474141780668474158580055545633984077654215765950470255518072808349041248428007407604840844308342593593724281479536867117274459276459652889745555388502077782863352872499941878412313361911549113633161908331812053520040558024263218611725475806784148807503628753208336490383908111820456911919376326240442116852786844804846994188370975240199834489704261208830781362399979335539113955224167465235653693194134266664254421106277321165505494000145928594313019530315386175421623916697118165064952467624018980514160045076390457402545640637427689410017912340684037339140385933531698906429172487522445621532677870064279698851568462895143305233034880868254325472519432460043883790475758590195497914613738367952659468364709225067072971450865597856533781595530020915058328551538953477709464200426705083840202724777726368163278574534669559939926963752193203957484470256057870538834304486024075451519951081234500743771236170000794282410948132338814941144827261947250347405153824657011498432425465334619514032333684238034800337361409096767539882594998408238581492728182583142193125828384810611053377276837311054846596912576648180373735346980299058531321779344598248854370424825955398220226311535908199298556817918926451454816952610914735321523586393688294093989580872370334696118471021511138623065552985281673487718537343349138419433747508769163852085799543585563653204003486572794257591500193073566423764087013966159856940927874461805207707894019608147320624977535512812214024747701413019497297030434988641439968831534646123547521953652619582998612683760277007959372510618562516593635549492651923940301865595580593153107461669419319361723180622379664935103762349104945485216490859486053343527077734026377494361008781815014585743480486531055480669700311508640563686122262060831674225859285283125217177035741671469597226387140923228277107864372011627430142696952505631443657565708947349642459495602985304293345658666139708873411281551514867653784869534373584367895040493430139489126631667331748783262996024570459961062975980587034528744658415364807114148088040777250204530261411120200817639398581679569638643487612540362818145547122516071796621997808138062423352518275151603953450695881528006905797714502218023327969391474886689176826362646503432618144387884317943509909784867804250854149712707255264935198796219570399357562805385472694458934705612241597019271907516986149287442954605906700786824542913162250850703360864571157487602775751743586634300104293529623390881594660463952236944095962300606081724796698221667475255122745777354101986359360865667359318430528581455903879256231050342730107662350378933944109430127146687136934172075604690129056654065172826339903848906326730542683485897573536110244257084781335957745571565623968254105331761522244131680834329872946764040942652388546976828913226752787141597670345145683240937096866090535874008470429625705571421478268122927032754629707407907538057796339071472127729377539251849749614839461052631844858800450958877179834588588928876312322486970978435198784579243965337741704124486662052470792834223960097633721965050014664000388340874576146129722058150375938220369309365417441223685323178127573503839253290086190762695187890996309002554978345403026466320247059286306261791486807718916645977299388881058142232440093448862525295216684799484685926311328363192566520020897751680788801739564272858250631635669841348548953842800120578963036680324172715081400246416775897998887054303596921546519387469609770139736717297998420987163671861860749210317884596970419028937296909378646151858841170455424414158563174985405770478195902949185028985755454752981431309652862382924959997935600330747924187841325390482625486526102443979999988706979998246432683933438260763823137531538574982151621626265805215932105677592086051380704937007223686164302453550749940777064240701207852978488612028377949588278376228921112120198806732769430801315939725229418613523127156749597894851891976605382729179642640324436610491420004828720531719286667966829584219390120725352143504355299629200486438716702073824761543987873349451152685280063593463945015875418714343756937084999641201355030841463996015188398518488888464123431176138263343441416088845897835187296514445441759318881274483221887761945335153497061220676681717615018677098406873068508209345393800967799567946019248423545381731729777852896470108215412131632879775924909226320934446325472990124662169364816599427126695192615629337319709638083733071713196060983252893377422416909633690699622212248355199132061501096161736050475528361822818275294012888008611430166004258538517087838469610587514294011798752510865168852396007639556116648159342670453392093771525225273178762509938673622632134981978951699577365148261356298717997766375572950906115145497449472120260904484804580281270542738718731102185440698641424270708145510751506480667227145549017354505853145088454844348997582787883030689997385374513202432887610541641743027645066288416480271937635471601898042346543701246590936116179026621954778919584646263995783626585411927501605322723970805175755906973806927754540596156372854176252390641087867687632667452202361552321724107308981206248677293289385937865798180455007930959467291322807906822612919679389630892602423971841920054570408006789745678559169007162452007492045590865772361830429227409411102407348703628825522001765576776828495493298673836063619407306074899178891532846321676320719557993300265069352035655634720875960079877345286295243362662555657149965312934260684373819404177823801091725314955247233395061615901548724842718548869593053345874499811000850900313832644305539719020489996998151481861611162409595040936497012254213040956580833897978105349490440101892384909705381511931262285514897223415772724913162236132367193007301721008678144207444976576303289023488460668998672845134081580114038726461082198417564798140738444449271318326224957272506032381653227205755885348093088387292585255888309547236634274545191148561301622359740875213806309999303713893094247290249890808504289948500261913621123338832159207413376676748107622714108384709686278642988067361220228588222342842093078704738522766068317588758688112785219294440303423606096022899302114563255269658464483361158213211774295336889966957597641813321991067558434823130493989998382417936383251176718919062905088083582509083757098546417590553888289434956356431292035622998537993611534389380378434409275516607279331013217174585450772274404122522052892446755769469643489945618434215553507873277936684692803884285302078572009767860087530434593461660233318286824393628751656576885102803316396575336476653692240612893697984446441769540737161019782389877670609725451018677366664172829694844347947075010558400946461464797060835828890218126220725403843209418020162903486819573064519203591075832887427224812025851463841495370792314655367354516415367338942977597393308867196463533393035313800517464283809948119214843048888375119318094778121175089929688278541025959884611137137674548177501871954627847027777211652876287986580757262929507520037282129699819189842381851069981822909487930948842006011111548701416393752083438964658495058589286150867650095149634252879377257470049336612321570981239238496309469711270625516721759526757188317306805250588120148462251909012492266711457069239065606998268659931658817996804255377797586647819294535470537383064477613807706204212776584778062665058700844919185764324425913043799991897666558288535917873871803847608249446066243276731242860525283027198018790107406759486913513026659005726878754667618777994412836047617414980321311515711726789338613964082583563448883994762865774046399563376563608051808570100068674979947070083543524790233198663739601978970840353670974982533005552842343134779444648217790139242113580002911817368690224664329169583118755751650481786641514523086973673584849549585925925793190669619158398782569291407437476269676939975113674632027731365165743385303909218366957619999095722769011148806858265561005914159261451968470541738234338695886523469166464995318614034731153432595734259321510356823418187292813906996936041780332009344199291774653960277500621318917173159122285756544155211610609828337487350613484745065598535944538164978003875795752666321869044308898685930642666842543334065368019107427033233376874123701709285165502986601439219689072435016742446894984898539916068136687791594215073729787781973082257176751332471527339205296421630898145329741321454841040231191766415672616938908471288222960726778054221030476630515824737470381386661208561136456566726640028268892014293419405639294166386942662835120843247550592140824042473055178364585917434761625214852916822404960845765429389980125063025661622565115244575285770866141100997476838404477694124869246980050967828864030774117211034581417353800794985036925261431358327376841106820927837509757453641355095298448871519419918214394017509817957963245625660700498696001934712418529539965349848431036520970291705457156325887723444416343311033493025691767719051812707635708922506268215709160220523796726736493527255867449266964974349062611535570955231605759811182291014122059464304566136790853549521371956075399553541572679013759558421197510787120998334221193846231610702650107812277591621208125885204106750198718152326637070466954797591575961721054785265957629901021923395329940866286330094978185697890092365465778762362925723962637182421479998317186239540473299472476122119221288928399132094565503425120728364037018197748218367386132755940417486953022946276129523959728342965000382603699402742517098278045215276616969159867213698117188584630381886307499918752548519332214803203402083126241609583446284319702565280335094483043987538838463752107869054527793012186222891286458918146506573362810686751069320430220902983054320796722732771736828481275252065664885239068190240454960352192062143448876004939768543851134312992772158287898507947211400048980796398098100116551605790807230447609083714746430187424504746073690686867701002861803137642859908200754748001767391159345940015080875251925651806670437838001943306068904464015020609416457632683068741082778971098913016777744310837912817393391868402953599223315137682485361314978761304518687608070770399966478335309290553246638870161913222961536109662074486985923449952129641898665773745926663657504226978593953340367638196195757425328470489031074250010691425766667505280380915603363094514759648405147780871356919581773568922173688686090770499426742408077476565557541286549501279378478627876784312960581251231351665690412676788758313372686644633774949380962029772437821398961082056588109123140367694812685189969585161506476810550805333565675710912784345965530587949262767338777543643877662527386164005201959110707990750423332281201361461679299588799217035985811663237231509287156346390636650389401810848007964531187416567628849165477713214264524960881923159612678209346593315529764183778851309723024762223075119456323536483712399101376713960176759489995006495144419218864562164901997625258940695144157248496538287054580327046480559395610279228543816573049841223697365198506472972432210793655317316094452130484196946211528461645119987492986500846573005934970978695550523214142689388549679659119937582011349611156046064975006894413580230882654691694962164086846494566906806363643417541666723193719489635560613920977426974108668467603400756942517439637698253851094418127994143374084039103558477278238345057783013699953933028450258986393616785251867796819176430424333152393130118931199170264034829226719049542527701832173068794118563146912918409449798278611168006302187046085850843177379421154371640982327655574288714874708121110301161393133260353821850508641064849463227298922083987730758662045390202077218315319998046308870645367913301551945689624378415383978348772082873415707096898085642096327340771035269825366462744103613767790920035630426875747449651257290766427632186943792704762849654891748550413265572699807036303533187261789237745143315776641617905432765346233985410519989930665060165954644435945352918699080173255491763843205212037206477220482814397054718975481304205377360786026872151501457723346862047771605295111336697784474116730881196564758080112451618500004378320781711500038612090557435469099578240110757256566442955506406231976312979615612701567299559095448374245276141315404806209790592721955403108105589851272912518486575036088397125977171893404079350580857476735626964721418376228594035634113818260429109592957048565184109089918059501883599206039188271011736403694622289434919630673307478610000174540357079754625732884101358246159420060616651796513959904049476248706029984767200366733303679279322568123121250323521315288529548797528231196393950322190892968816772511921516767781993334670237683332294206968113636616742040711082254144141195446061233803275297550647090426175373320298264273067746265642155295254653773581549569703639207945948994749977878588199747593096502057528426741199592768470363563819897339267199207676101552319594510932364146628458402510687165293190337987338105090983327603892660572105943948445128395420624469051556235293864065790316225453934634416548286542676927678051575341849424231170791365185834990179781331294403254615159259096225663266324874894167115906354489142591209886148372456041904871779947577013230660198136646295063468372547954191859952272568548293490914163329007724277574979891800748904348730890194329979144517737466179431941337225561836985606173993277111558259672249710372573064491282571646782266777785000866773743212250288171662209582925266731923821162944662297003158115284975289640570858908564704181005749493500574543199440234885303795901358204979821185835356875183585016352100044270942773779181117862106019075517899131450820969882078471855843483038369333085012169350203280454512811766566679377548295380440063860552283462645289702536380751251947856056077210834402371949714657399196614870416615061022916947470760160907313130634722589677476707190348111038486630582136262398641000724626970628212336113830554155306110911244917511933962730489717830027435245149638024019895407042930232302900578125314263141649861606675779534132860989633533877401808410979745451654741288745146989891466811964856740227691521292461296009112343270780047142271215282816116761157016006958194150145961422933418731404438341408205576506744100377466232135437548818829937428876712317149744383269312820015225936987301410461196521731960568199819770543208450985036161798565424551507537454176350811359934622672713712447424709815570621096410027257438066194558442884469199034573685728238162535583056847859741532099804271042614549605676545471906124572932475054177269899754664054594141589205880191801401359587089775250178708239721847482983416198005551522907965360659392863363877188534131541245531576676047528717614374491460489555767513113984874348473644374865362308652062028658382877980535997390498960411035244291197531148995621225672332300868249455157465674111167203116722637376512135967584689878862972701405732810940081872225697728348701821774332750824059018392550296043361055862416845920147117794655671046734233464365988581661813326284983336815327630541922351472255059909996848576746975634626560492364209226496125786247561040168453778423085864055567008368027511576363481501784339688633771742119143254164655309321138380767455978923829508265768196450722748768785736244274375237851781853717090397854693666686458961549691174472739328117059820725214976311150299141025352982865068586472243963944648197703578539382159934977891811549673442955791540754985859582886243378769243752891495592194769577589982449130890369809192728958070446462461569285189706799088340939003648828514827709012729217568928442566908457835647509054725207079959634724853769883854325256783541330373856238404516572335151855475366233823358940124873609658833955901684986827769896847759846720568870761802161398904703523992802562730994565827645794242407106999210311459818869835083230560216994489350729374937425131378205162678514304796587834348700600566065089997181822494141751078571711342943027209284945333891294905501806679813570683295253070514237526319727524863842500885009096373143877785993122891652258290975929979765657602730856647257008365359207328056458132783611992580600070664406220836834229090429569457227063927553108646080619307458718802317212154874953345127097594424218456678140029549116834779098686596154197072759822391815121633418178392232761079483553715888547524325909175029180676018732576159245173889610078688496954351570929425112075674872204520135903575534186859651972965247912408810703277626647018050196518840978593750997578780931725620752806091547869667106489456067201763031307402554307760070027426063389835129479311704158543739318049852356031738739100289044613714706304314145808892519762684087940596086297823294972249366271218636393265126847573753151506956543576884287967418007350490973141968080055571205516319195518966209611467747898534163559993179309795299110691463500170952162018156506241881969888922238947744452623453805335305621479697097619914934828987212285548219189065620513398083224905965660915929670271624779024927295138945811906715068901736943329878022860822679617800745392931611427911977122869911624436496540623115128914977155583518904280318012783566436326424809496342091927240540673882551030626627301020874678491359581577425627806011435165431610613763106495021443772451565232201283354017360503214139373378348941321422170282161939205523349844216750065743979300082096852966257954616707491745765619345638146161413751399230279874190133430953725727280334519065086182801130426618807145273656585892068749846171398346184413519069891127479107576178514242955380299908861222063674843486376729510641039941946754177784794676272522534167634974362361638611240077968199446341739169911543714704479345652436842638339584341053843027680102918863843432859226758865923007451055141515616852050701717793671953539856720219159824953800035615301204248156372226258238337117034218726818339191624062035674104438305777917411085718737124334990123995812720651593626693027676545299816269479511380590234033949978358582363937566992143567584504834112042580270949411014144975713955604162815135986079174459577736303287604906212872700801744741564712755769311023621477716841566637483873595577398194799586029259381321612216012281185166502893135967163643987322330918131114851352946523398090613477568777217941225323233770273666554327127647850161336080200210396826158077336528518005108128217237784685247334141101429965608608650098657059183835853532608893935115340166416634888907406601764337880853346090833903866934927184380298128950620537670315703013673909829659034265663015731763451541675554416399284695668018403478293671448936395081889613993996216545826576527186443957574048393931907239075441659632132501257403090909720902054668035538236875231091655187721476616748275357353484437226868456223397205150784966444289629937225317934500453828127693076705815110751542683211186866976014427012986755464395372465968907270561750259935703490743534826482663059552702196050636590595482243574290448871153065335475203443813061192942198662488639407804953919713612157982033148475003146574511489344238182755367436825635262888487713725442242893006575479651489127021007761811077204469262007756790160613051497802634006791825215345186627839896434446172240813409482173744325601963727008461813296081462338655156361921903980647842189197007199317518798288943454647637026013292754671441657412252695289916245400629726572123964716170035941750441500201080869961614487884553436989047995180037750278970866824167464924999408059333642461148760968309361711856540720174606898695925144517128210885024501108628001697412206127179703608552170240922659938113543704836747248339338801983176695425938321331222787567553408439173042513808982518779562288617619660046843382391238603930445047477912325134770350714766127720023393713628057133358070384341048989789050161940680738140517354313879463034630589356141045954498414012790348521052193248011563256733542609277502005859929954137423080704557411776203329887600598099016559524019311419295243628485194858937411869654028321744233392509550694902293807032001870943330676620831225118562503139865359400321399851331786267575047230645577317524181049955656497154503687444661512578400483915825151907501556400212201110677019402872507701897763068252176763068733020115755781917068418845406298289522147854726984653081614236113203570453087063468405512409514301732453609134175685830191282917358893888256175929585294617221025278969803355381479409413860327058006213300177362827566055778112610974200940650895427900304043211823379614758092293716401297999951792728628812330549273333030747424918675392475965049775871604930421007947323029189179398459935816624873373111769799847473857872094116434321539345755649493420496134698568874961810683470423949085346445338006922279661106734644514733284960396867753558570695336484548933014075077748943511850083148531699857491375988124759934459900726905954969045053958826981801067155108553264380648099497157784773667232762918185746767980872048214145478408010911116954041290578260457056841756945706854233451575381316800164806584995371609054443365336393096706311699500663588594237998736210327803883757801181510896410393391235920218804979964366821811210009072146753652500723832744025411570483895423346818618462387366842450296281229653164265321343232687960280236880749894092137286863795729001636393808851366662395556840018192639926385893939506791190871314544531381492578639772729567811670148453687578779865791235851306009281735104269834904933884696164998498034791225488145690418003436900139620690751923655694452807446359021684101709532906008948936996276735749439746898227586855406272848263796385142008396454081223522721971169191068247016232029935773246889319531743546877743692770330460931034043737872402272715787415667217507554994109246881099464517659251530644568251478116410188969581968149673661579620294044298607261397786977558514043661728281843490785395512429941360369847273328337834151558770229897493408607604683899879240436702376327148539543860889017574098376397468399314989849393789241326099272189428903130726982498091647125895998601057272033735087127797631216264383595193734846561337697851685444347021933308488976672600713043423137999864589684885498593692122965463668293269542982517537025041033633244546043609699505986856041832125697399527008711773131805748521501001891241320970318551635894904617292663592662507068184648479927860817353342386090790626415904524673628468574387759626972352897535487167512378510141312411182077832580705970235683558901097518680397030493539089246252343950134966706631711746433513114725069345431219700035409480076834921460339144118104502954328813430940859653629772988991792244679989501505222382865689905911287623702543950337649066143057932786909025363603813562553940037799448488487827270887437735327295241454485943241429339930652016403107466825381422241402509222051695278256016861965672591566555463087565670263777172022275071462519733665573055149096340227777418744104311149315963941251680507540447718487722131407515506334069395008193620165672123057443936118472870252960102313808965476291650746474747253568174832764358252711408831657926061117638898447157035205361869492711195943613148493818787349125364057593633970931835878921383566751184813020379012349497909497504850874717698083973954607733978805732842239197299697770957670931920527966582476364403470581592590311481808330765211741538397544641462261963777709155676888015414126113754959314535741516382448628695033239070651400929007404510414173727735280787084393751128622455074760355090747379624397217680015065093627777714196728144201067142429555878162227854819851136924129903657490944872587428250955477267465288714049173022603256478658001007954067715534739346735032991899358457828732554329935735158133940288065698744759880408585371955424889110082110069043852295907158196136373332530669102657314303407925106167907374732341295411698501605636451109864946083073361474745087891289629395577969567953183429638655625331241749489609395685689864094648419481014000405917206255158099017277666430123271683855614803664210717088462996343258570554202455928987620137063580032301272375906148276384683033106916827498586116131159286546637030673024518014893176050760719166170222949537394485838926117497931160418765472701376743232963175525443940328239435564031018371829156951113549487178439783127460191017636941660831240780089074215295813922606245149745725388838054036266006087987237685151285069059782080525503595943962771797615400854205701468209912768505372344787381769871985389228393364570889383730147702674554602237381990242032189516142851567985134716006362086741286697120122538688895506196330707816293248605272373417297352209826774620133118801847966806149688517209378761247009909438809326048611030213992314018457093909502273764124973139415202248877885535117407558149551904368378737295385180589459572001835511906153471439068343496216398945491049298819521328076331326149195492310214997191377399528431636622808251900179782011472221403305890001660896296047137525106223596991864085635455259561675483975550772106469781965536987508032246679771939113239431136487576535175601779359800470682120164823553711271070769354560636738246249239762768163127975670242385573296542877523607385180522653448513412975568975743747209170551670429950012968648154600294796628555913651732475877200216639640448096660850801909322532975995820935097904445764433926183265982009981920983122850361068986871983254220418961541858816191298226744296881456269673486674224083762198960596515405485376570400727703028375988062962100311399649157902991987261977345839284383639689520291288924064108953686448379862094858304201727948010937034355081191166862542231581415615275922296980660828632490660987571389812876898297515456998533090792230262346504202565748789358330526992476499340435168819674981352060143089337479877816998530002505998498863292796058712859387631792295917367642144064262520691740453596384130499027209147737866278380413334355240346162193292901505731930229277178272063435709772603649974031856528789252426671270732846547322445716059118043728343971550147812146531550478563759028339305621407504841854089649433319989409802730346816617321069298113871210031159838982728286346205456799294771147870048117916885208876888201399496640972320475438570796077887393281836406390725626618250107428920736397370955220457811391014951839415122647749430125134833706177990220080076134266912623774591922614292495392070333650650144039879667908150935133969931238726054625063942295795078082356498968059160521573485030057721619093380359071098263777518799559468974677524358647205799456925952734455340837744211783032991850444339467673858273718488650860145749828180770075558128948918968967440351412299238068920391391763978336323254302175611466459783966885298889341865695057101483662633802207576124006340380447609422920128479103522921979523439547112224420682955820592781441192027753941460982419667644539154931763187387126420981079188814326968721966547278785652154084642692061500332361070658790660732437289009354883922208846527146366497422286764782720532506474009896492066382409667307889094744272497061252961985842858943360563538850369342313433414047467061321385244523519958357402048286880377794454930208734609427317521123858506342993618084214557752210780150416014212423857717681205013749000363181854658025719353153252882642263136366051153031501348362922919236154648195378517941168321760182220022458963248777733827051784870017477560631712067802561351567308750796601358132546543451623587054298293918580276906663360607297419309538487017855589704051300358715334717224960878023141613682364571791589977594672823806133583144280725280191092343898969041676233877802836498661001634122965297195474525206103876652377305947209854856897062341145095368447019918943765476418655707548847396595137976083697928520174946445578253364705848888267938520293698887862029804000661199736644310322255814744889355353256352715947938970822235820713599680658395343366785590906002896211128590303466793336863998651575800563594191434562849688289000529206085952184652512436376109160385572192319350610578256735919903718734562247341995742751436719161931559098480995953649866294488744658944518183465358656543121923880565597136775964672407061626421857256112501039074317934773059698260564120180011266734793335292944096911329337201034273139206093372870480226290859900810973859575106100716411758818775002063616622634041680080629521845367695804407095756045722237441629032726076026877345324384248219010296986898005413912707106863440523872634632896684500851714927504472309812844355692058270947405528486169141883911796446926552313196170484714767221344957940989660831855946599440307140108165529468712472838931909138368440412542076552359167082957654175568637517071645712821243834467383510370468775635453119923050999393468212881428233096580239901107849864966362001672768542680095070812958728569146488342176235714239481499111959822361233637564396866580807510303260304636057052613378930843078350056872567203831406962981218846354578847820246560775819180740395436836940632705876405977286638248406366476467316654823428929735978132625968960151313164632260895266134539603264822365858711482858742737372009111580425795790387873256338699361585067835145095347699763829420130416630701243226158727546746118509792158210879137755673372234020259270539816715580729541469835147541021898394817026160723912528787758839983384469178600398408615775355798646618681759808883800661728828450593280620231982522277340856970120322773978549560057459349063325005362241474271642692672546843699587360592445704276636464816874810249487544527503741080120650775780738184002395085228888130599142866672829641231686739239876377978565987472934566751211722890990847807201839533476739102623891123364555239110871745468632831010322493434466650919629922944699916958497246454984970424462027877885588987558988852527813012289823294954267453552994006501433908391734705159784199674434508173207419842808836949748561818718741313302573307231527968537517233282981872807484763241749763174577786046976501203399452239267792955797044802579603835374732259219467654581168268223215132820189178796786045954767452552865469940115510774166999811070783174424810788186338508182818006407561769443235523388751391847344255073112913914811028653685927516679599237774765353348205336279266906014734441541725010760553191423966027723243241027684837528072207729835722148798429082860835467166269485718855174710780269110983681812863935392435596748020539763589873995085981928058125529813520194988273764414536045507309958016566792271203653302132239098307687991840029813757874984804802205528500777512548264742505835475761405637864812709556907645499747197328436269202498959577840407794719647590153183856912666439030356635550521056132389926870844536388575677713718887607331854601621023560696157516195141751851130684824859592101104082390558533754281092823638164274882467403744203252399595563373435304488167003572470149016973766120679281932963519192768523265083622702155126531450258305290369652186045628453151873847411017466593461293929155249092811344519711689901710296294946330163525000155662452683162920832605302434394833326635385072269736518065038381840111558955073713380017175160414467480552136421814407093927922086907550100100296290429019432343339742056162115789411269253159910419587820163923427947493393731311176690974931635101094615100178826783386264187532596073234504289296353130216652091735390937390581989968469806038193713850214102370050749753323639541584876263734957216190729820668568058133700893379532931191211950918150522363735358256519454280299694145836647342334797090140557054325008679822676365751178616208838693298543755109327810223608457582230561091157786310878396022509962199218079925789599107548137231924793289466500411156134623738087557616614448825801573103073024743495380154402503317420869822045769704775432986172940084680019810741272419844528883117289307858856584911930001660507211673236223994039616719969409910873430420712474499547643856965554421039352830655873752017765909644235145784823811214041490617872113618019287944976097328209062792441996497029024319754432665353183121301665963682919343000438716253213830532445318424530160947802496352985535897373724714268774850331127326706016404223192066610941106617445888617704481769776890323518400097102969382589274452078463345371037174320093788972536988606667169874509952064611188674914848132571705205420530262638230370844475476292180943426538062702860175533516828605944235493043233595638180889752773981587617188589482372784053899525420312865305592872196474206564112251152066277067689112563472347423146974381894511823706011916324791046098666769649141541177938259771286676589098228343770826235820773211020353573876530417433609512902937291805890930662697292612053525275030360981586162650230054962109070962386006448410000997453462027968906100736002486827639033902424850013388623714442359489045842812839557590915845176825386397626475320151454277840168080678398151073317142483993036576935982487903046385527362581680263091652950617200849774844696954272129364265494438493127483589068591690748834071304925532181416703297559038454644125621795324982807671791108044817660427036251220602720090659335921011307945716971339636388146570925732176145464709946389673910331516905914243407142456711875513403141435358735159302080303834443555940664964192517097019711772408189647648047712131477250174387208141772970075268688845641936508299956227804974030181289126975933879093253688427457002189690766580884836514854112170851588481269191335717445997762515908152244047622429554368812855247339363537706465307619360537096923995726697220768284429880617092525891817932518753946980508190161856004899067570468609417205856324112159114362277068696637049608602931337140549070064800972860964740194389272614735962686389822529344365572628966312456937477470002961791174920535398495677637259348514037290818820508019278436436599527709462670370978862084668193245441348706795898039159830587257056384666628872188771301473761292328238588247258410079603067557804881115016770917303732537658359019512749952441867653831054350981552200686717830181737625053277126551661988861199890551664911669423168818134800116738163284828924517724882955653322101988667533026816714357333842622667456634328565494772335440772120813194207874821860722421624376918780982313133103973688997189294876137094151000430780994945859992200820784846703753204984103098156913109235656750406945884777984989639694234426229998756970954315036703826236185975972380966804536082178358111655140357587310398224488319938594447048336754981856941225240574819998478325268464701077354903694676462867102015349947908032835628177717035541383277055631356945862005232520858144191141103363062132840427190925374286847346318475733759499195082051559116205228067364585910258457012243713088671037492088016520375341452771916977968099935837491141184217952365591846392492152834093980178784902154765781264762642800714197317933154160309158546491493614806998296324705011930333103170087825653982217673241716505773995390617208810026516146096639137543203673995466137010948592075565038190318016866616005693876530368852520041155044422252219401476664669050608322192022670744597544023201620964684032786471010141746169563385165771591557033171064889211371220706709946234513395819804067823662635352683909077439241607806087040125029782019103317521051410339613049631151786286644706527731119656295121713254435782955214713563485029602555054721917318251659240155425085429926129853668940690149747346183153148338571471391019790568013417860318135520650271913372272594006287234203757671620603572389695108272411738434906601561366627640341997197252805553265557964127411186066227576425628550441175415640926019915919978465847859726535539340603151119658066629200324799092599353085883246664885880837113490875352624244916851534679881873659203283847089774758882493946183620932438736843876893253913223640726586501980879483608259472630519889376422581358991175772857173249695798642982095122229277340916144108281011043233841162693270594919521486355615539900110666414896737002172862622912952090771158495603898212512389808364667928264205297702671218142191530195775407683957295084908968912438396403167484528666704351459364760671719605069707968692004919864365967100848022110399459033644593626422615330487403204205755577945726101948978726498276420516325156067625925297532216586281641350960820704400443666611928400281859325854185934964641293729621437267994549781112524980269401652646501410300892258406565077411247021601822465627417646996055776809111204872881108005336876426569284305713631851820823831608657236909455934461591343241068201492569473620984916178334239789958748285769800445581727655025950731449925467302450142510239249756830700327373729174586021593529201419900218704385718441347023146784383545158818778249755819470666403098591012111571072332379036414283341156504757446443812035197994654871031496957420678691422371382662796561635231259957358333008406681255817108642264560566846925046556552293727369089748059342698418081339896240377090834751697832864247512642784997858110339434291565008371436984960513609319968418573644534757791490593427986079740035070393772005836366378872523751600607818194099168511918877292885737949035794935605898612893149135738893825728708501383619526512465148205845916525690075675965056028266446170229259349496478219118118190455385038932168288149087421103185814146231182835685037046683849907674363302912928544822514827075684192814008301852264544982810834958377809461814049682644078707575699160874081888788351086224875913019279443876610719159652557343952407191037074635676411396951889182097222391913513274159436209957822022322888539139733866036046052864954338487350835063883502330224850392031246583801805705272417123977274178346694963044607419576386144887501219687905204832643532113334510695621788488239779305327926386975825189492333079187712274559168600008148330977383729099700210834500769554868580062299371387222049352059974587604180302327356884640841331329057209952566140437830770269065877092152745881099590065542768837691825118554671128901264672093390531348750281905169370814770131499105135678565216238093166320758864616514662759103228934275702150886798391857055786073959301840728215124953468177788830209108713605106637218111588192835789823281033037384973594879682665772391815855941412806982271834721637843735456404176308442670202194714989742923510081952154570651332426863836118143255036257104375790010288934091610478741264751662160723958085275654852330364780240288113597680946641839036453241788083957219101852345035442049790348732280935189328739191873868958842812776534147175973169734476385195513875660324921335281563007787791160700348612465763703187935752675039677029107995307891406066231793719961505575509316332314616641496160073749373576854484013633920809395524746130918898450264361452836411349982425931162638340195623424583069308493317757286725625575184263628350510556169433400948798124152384809830057075582125922902501844692996593283676992879521935341713318260022631650677866878354997972671720153603027217250657237357352920541676495829085228264366558734242853544238809431545178087618487205460370340269047967879555798994275427331803202945000980094090552425031706575657169223215845572086543840722319134074072463215519516592372465221099733008432442588888425569523971867983051363383030976343981885776229584478868027317546693485145690039696702752128063319915796787695601579174754120914346377168603656038946899338582970827431505489614040726339174425537524745538454254945561766595640704375622161669108133269782447787552681029463300644775977528034378012412902239947488197958839483033460575227840337583616575810433475527407200729151354722967526745694226595548729535793737875411084011964225686565384563827660300044496045367852712271204696267867420342077317183547103036104623801179330071571282824366315219624743836534381501675098731266543953078329835905929293272821018028621629078704111343722144412661303766637701985661668192845811179166771523723024997956437773957989797057944167211602984200770938074306754381276747569952552381810114375951586006701807714892831016943322468588125922137600903631244526260927021034545297739150693349927713552347911638690046016767503120839976291258639387063252482300634508234754912085716464357613076306356406486864550048505196014607949053675000171518444269876379597913210388871558540640684088146551367098727241507327663358904655964987423294729323183746987617199149512820607354617768553304214614538185392352268800636501445104506490411075370458865723109274766283493406451726093347183749522202737366361381559244991303472202172948202667747280038250522368376570761249386329662917698559583625257813093843873110890065233360376361507630224415018028396140674255940660847835938201635918194565644776417486816748034755427667426852732127415207268599186742117292730664017360463946076285148498959130865775524931164609079623185971976590739690958332522189248627974982103223167204764884750867654606658650728212889398878592193679723711632316844120058351843723217650740823969492942877405434077263794537392698390477628631592943427142203901252299881317706466510236959706980001293041055259926154066929903376576737607216675126019916803938537083124296446535032381240742432415490796210281065786185072271667398546199682059117999335462242438284655727711725189208351675656014027059755105909365401555711774095216710758146626245966903617928994275557379035455768420479533626084181410817511192963538035909909361268948166668882528063974060058394995957512639508391593660913452649452249119666600024078868528224657339250307157795239014120141597512829872839595340052885671942353827144842064113519309893483601514164676938082457000543730151906987626938376907632449789879312157151236357096602474401946830939841093454586867932215552590684342685949747798761008758428393770317087505838639701222361238894146346292380528768837794831792397314402753333027703246065499261969393770237277814181593225849900673605374868985798063121532207532968581833492506555270436764051755455211049916318578948971537010889819890796248607869766762700127506868914496268184749393122804070140402388223882927592498559540645108976078251701669516822165111622181824152732229083942699532697401509940101377434490129564691371162604774733826677520791683321637739988608035580725045831842179623553392439890360337601615065111435036143443119022032983622301148194228187766574004417420779505789925911187938902641894433307292945110617356319006941193386254691624834501417471899451685206979462333248342516779690681745143619915327191548935873663176162708913594066077011689125294416898109214465858909261996601025588101207208821270617517419533422663732161020939853563472666855169597398097076729062720255219469761838147724911327284235509508769550961792235705293379225239230984592017475963252334923130440847260566601401265458132597879388437851130300126138281764024941221154149819382335392884842841786158666460530728717106722120779681247975051161875680061963284817653837935304336031302903451650127615864792293494273006856545902993709764158509665158968607938972889511597561110625880263999778590465355305526943192215365101501720670916843157971391315229556082627240919196680916649498845433771986326592728419724736627363012312331253894073498253739409579457889319553191831369950377328427324570988462232580202947805188782294697306802788652291593988071606411982533483206234698948733405110005197649163809191850020670660837863153400054784090062385097679233321307469729039783539169453085773549474963152455691168625105063368482633866153720440760062311045819209387091645573579589134497339252686173951834892445415660045493595319936366356145763395648090199831228601166444602409190194522424506367281670133738496333517339521844630247964134821651934895520024869299085356457363196533862799053063704610334647970654510529868421948477546666575107723378703103648863771878796840568120168074367278790823914695756067133697306854620668041477770827722726673390837374854259708627211930146184302323795270876088080143433409927461209916367539538108359803757094004951264109921122596295954186275867197195071426657169464442110895377333255890797434209130688171918630281884490863042241087977726766770040916789454902366164171611937887213629724060295428913793266170573520648423958922469888266118481882455991425673609887553995599129325055896380821368102059707920471714531034725845842418154550427697051605887923766450019776810736227792808785720580266911849054598733586318642588756529617008243487968629231161609678102040136276933659896483381052143851925509836744942741665572362081033965837596149062899666149238313282162650455544912495145496154921733197811420904608893803602995737164704748555915646219888074732355935857315003323843432886222437357956941067426535067108091422071910448722188037591162185212650618478330369964159260155055305926871022180864516420001872005539565221865472323212569337803421247698960443039748369683985138594268733037982812480244708917060660447123200489374909759802886599234955181072412107301844691186393604440009852430063383787152170160526128673372376150841270145391933612273930402994044514108436657373498861204538289812901818415213019434336170830941276724452019914868096676772830644652296369596142865304526987318825100953938038556717950663536595274984722074110312638571389472764854169939929702884971745725121408573650156601708316236571180813385802320451637629510228653365731998106782147894001732445167699636295118796084409549247325107877671628191378269434140954493408891941618408764494637733867497483564295828156251103201523969089941434623037521175444751995167300589747687371653761927432434961440764765683336497980149919160246273214946693936681862395189610598420446771670470216827522055099927976215823801359981227711285753107132319578888206734484707474276052767391830766036474017556835188016115745412012004291117301684464213625832153624678495704248211972118026634245776980891950499876717458381115666610095914240510725143736687841384525320939533757163345592109578514967567751294113678154531271232127718213831214888241129545175279081394845264386561643176637030903770337570418266082430516460633742416707647755753545138659646371598821446081341669986653505012576562803731119420001083051061417020797838735601387032516085266793985309887361488658648421280739605110579830476969361519318871162863344012793034717632141148553191774165122516841702664438909871524673142827817897680044494780550495178805725504695207599849115472119204420532392429305287068765264140697218171120127982208847220634734462065791912927844814495415849322977451555144779994437862425276957025620790820709437308834652684245587570284193552108491716594272471816173565825035420057051077774255860427227882629349484664808043535333134507999395784133608155347174614333176858567238397935029878143019852247128445111878068787697041442174045104146230488296939853543716923033662523277851647870541510449977246774612696806955708536003365515814460411358960197310110776609021922264041526566782353327949860046501566471748222585536846133744696414681343413528446947102748454967488350878513740310703264928204060424877286020598856555519030530679951819054341776631231353076501326531930435722862932936520062028469447483289122764338836349432654538345816981590158391734630468065256531369057164696696623580342522119759244857671688786776880174169080630307598235297725065951386569460016598834066462116705716208910556084732213363417794036464087394393026387107874939832874875922540940605643360211727178993135496448228258934222948742013485088353115956517586807981906466904292557310674944889245670640351868908206612637946531396876104853958370907279253694226926852457195283524383406904046248232618342865285276738429915773671446459609817111159879181604645345867136788327736680981861666726503542314082052926772447766187554483559359300837989313609504700363846308459966612707585258147265983898969414576961439972721541678190595512948998319872999592905348940908340045504536702448879082921925724411073534663947772514478576159926430002043007095864990292321425306973728866448742905441280376561584289066163788688374058822326682070259074068645163161573264406779210903551194634027765973571324719753815507544303595224511576925158666853842560178391796143356980721317856623256740259674394643882023637587857908380959394533220178066549403359088857512242362980547458323916355067904794659961145233630603017772008568246317124358641517891065849258105405595135990199580358691752325211109194854104518289195583131129358492335974692216070662072973530238405294035314796580302968499752042361310074332163181145081584651563167883526540391218024134049343561031431192356314835353168639599903362853402316717600844551237155532496282677566868400243731071289142695051359988718011055785997414881383082934503893176778234216237231425931392563208155522183875649264589007684686464080233705834644231084056379999808167027068711167930470078316802846996697150851750964553840266604335277590325609941304725436863233989882976541237969647258951958801189515787300916639160409167240168112747075121743142011093530985862548376587186181986095327195160087620376659654836630405387122408243898455075987775461379724495086943744564414476789374730959909273111440896510250784212707305584799776630827315312890003518113983432707369548093727551342016045848116766994501241963940067789793717181596390358299111237738257040182277179347237473696200367184959281559972971739854454744588351861295391309609971129303487695129344218014682484757392162555898058061961607375183014493671340832128903412804480183905936392910946764556167446094449021949760616055735484321091167743249371307906213905754661145831725724757045622573552863343665056067583065791235090595500265304969968907858667408139917523597208673662189768398991514440844403838335084257275403119608477357271389510225988420112132537217440318139386682871534750350064642051796281285701021802600471661867344368833205386913071273073223622290304271703139537532589842349958431562294986881465465351298975617371501678595529704072697747509006341472369026653271583966139235062295595701352115808596015803484242484884827469551579906137514491426789974930473532421981417363334835653518944635155162406332401126667142225982462953200421023622103323499269685531383386748626405029372889385027732656436689362286843797120711568288006358557796819999166848029258955861542659652687066775534697137564256090183681691501222920075975442168345958982120513860930352361651583873341892674250249032486216248044089742324592458876882707005604793967518643665035493262640923478973361819832710004581538680548379918537030143020177770022792990913685426745418635245530746517608539626939532022031724943987456398696745597377017267250612633393664562888085640437810470951819116151938169752931650193185074204977616623926292396073263685927794718134283133138200593161840113220411311676223347109069754435955356123365550907448188830712023694709071386284448204459406160002135821549756674354387572880846444936398375612948825349379535949862869323617786415201380045963200523974501875685610367026089344734633253727657950054678733368339770660867976769825232225033607841967752398080202831969861004060593694516487961018901689811855817804343095372122999970690320710652865031197795059587721658693981570390842982404558263383436321232575062862196375738193136621618949290236033871045036902853759092300749223065713997115527553882939577351311988297930663274006454611523352723228455551042883398818026076611580608110481485011687932302969436532659868706066756472647472322241956750514358008953093119741074971865037070705813665601858201493662697002518250361117371766199882364874353838950931935460287595160573740627088321431087975243831188865520288200175458546383773969663058575297360574260301460683859998833177437615846562150860005467782906318816722634402675869070090359336064612982914098019404698469775323532668200915837201075521698617643828291535906630719595711098098895395056561804784644492523462415815211750980458513452941684650591537923593658692564084390212215193314741297111362790020677828939369707222187538439373967070140106736906652286351511085315920088618553277648915043776591493687619579510634308952310268365634811339477984631035969066494634577268092039601244426993176617468394040378452682807940472420029807932488022748124335996363367750108049805077222287077040507554607125766682817293734978313586196741146323849643393932006347167171741127502897983483908130736077189590074265978375783304182552050908955502996065538276458851788635764564903561972385853548807633595447310391315044934314502303385588984811739299134460568709772791678712614500923268249894231679942794289237955404156647330965879287396525668884467847100085450372795143673977063691084057807327493605949391414169041466035281882629515812379894385273448809692932638716905268264205043090132728726036511765519633596828109887589665867023423021164370412190101811064451087407119985407012277466134641236686049047203570025935624791849319707993426982741684191641047240330584835594062048357015582891500635471983855887810200199002788775367277848368970828272368943438699380488578096440070687827223552369675725126746519007453885456186172091108821086890965720786462738934620024111003605199436623642088502982455334576679797494004426853610332937014527296058416491304793822178168934171348047856892080978875973486831234638532208739806631847514983655698371098844307365195068235389881648137542989758626350186083139094522572708188345849764693124064916014955609426330312717730917243862896675049324765495916946023680059128302719794784445160459665817919558106761688131613118023927847272589033029293724551036421073123139375438764952090040614439272409168669881602468263574131503526587021671426487036299318305519026622938860771450194559404831886305544039691830543623106503450164356741289665568706062654910860608013626028724409056826014307717860697219634797950387214865357392157619441126790290019346216841699020035615440600008972725644902636795519613865841327255599318103868570521804062860534978638006186436463423535186329263449665100621981030232255458552923704986344790342796699442663385326647249294393607552180892384407644043329684981262727022947576371606948679886969022235186916237909795399801790866504310232242226210394868316160859558369812789207420046679443013674510019248788627717650907165679489674289795266074278519211758744124597396929706668146552612915057539239048088180501675359450116646779647159975152612540586852930088146993611705449529345415890439888922403555029089461917731493528863511508665696201641318401605553915128132475113630802587011671245539517069885866046647346876042915894129520239540284016905951079176413680795465650814479505278577451000852659217293390084801774919566302269765805738874914642699596313048858602820342020927317407690743116699617352927074275731664226795825688774822685195613022633628091383561704874357339917868236826515586126897646163552228373069798721142344914228957744453129774113942552943557913245463951293722088801350690013312573146201786619634251577581840806544558276017209703101587404188755559566949775929290447178723756787057945768370022585737417283466144532327900372430153053102096900399126959292988156521920298792236503739499811204648195894553836046528847514130419188257776084308768592449056550917027837942761267077259452199109916476647345914735382606122184585594443793574039432286873164461175185296719375154940199966977777913822809032563615586618501596207818980643378935183248866137719285659494141648904626540502118784851161632896143491596197996134089360983865640087405013043488895729079792431823374748378380948788732051817146738557021169937610226056354664867916796895249297604096575859497173376999510783230982054734727471127413003932425402811858133095033333781324159579856047276441014719732759059544167922191581006782366550855418971405862484954490292215365285561463239841822435226877535974355216126490202688424327256874466486919078635601819122996301184251251046270006969403021875229036574013837244733240396047630819581749687517219856027164834739891399324636762163240276398216912676075778605461614060447468062410815874816755946597509990681529984375119596966735886241579859302961032129741178982695600078106310791106146233812228142477047813742492699718335973931519416371184503386427718094630514370801384081263152767545135718695790374938870403164114309213192179520071799878055218247633514929177205324232510197910938369577971354423623312340492214007063417219573080299455796867794982661955131584422522698946046648906441275230176100580901515736502668991238715961980834211691667160352123270789989577395522601003850171149046189532356384060501602134084742292016817751910043187806126307231585747729383075780979121432345652844318177279199119632221155309819833297453569267561089343346500702782106500687984386879838846938516046224432779309020450115635309596258557959234902563050754228464403858309402109230934985541357505398743053396851156127558158376572142636210175983008981692586785058852475469651235615763877734253802872470543094895719496898037634921726496116422537277003799675372396106857715503377008058828496730134858268947363590443221295339418362190460575656072654317450983058920337972376098000350581700199705282341018812766039473764483158145954627066460893977621371211009870371828500421083045526004456697516524509664969331861084442924566807741533053088599789673574031387249266300314488841927667926710320286234579266347388400800056894781248790765173247047031475847026246412059109512596909273695107424777906775114204810272178076116983945614456615972485834886477281635663695133601841314919726212466168660148785403216934963125658704445151983460515421895372716589619749087202874444376904984613959871469956301176820532136198066487658752231935784590181253257068536454072853783517115697901156358923285765964474535866331690988501506959044742065045120672682529529236252329445905428587082210701439089799452688470426092409044824362421689824805616540391360465160152957524015738704548176929386369822612649477270853823615688963809682464461111277921059397364026640046030569516483542199350535312606889279722056185053905956449187296922883967582427229541015335445500004608100979252254003741130733615880269496164413753076436067887249357180163951147523208477247886238966172872129894206336328084327326076222544658212706903538229087144072215744948641600828061529330427983606069089494396807524002892599775443350218070291439768185129389864915768959983737336562269683510310308101465693604302377315060595231143752676881942210752109773017494048102090539579255201897831643681073569121344049616119630650201739151873406771782984035047292853792512189836636411951759795921864361668027358901546132668557440994656236212405543340211282162829688626320483665879946723420716151124890751587158411923831848830202273463704684878233238351109108239203641363216957730283135087760512687533833371530383422333509941873421687993685541621738326902118869144918643400804204318942239317960891597855171833734118897237659736506954967863169455698340329224705758666648768563242161465826357560637056325545990389762747181304258459628347918160561866495177487427068204392826477594285375033259337602850197501176626371906868520105878703911454057819869926999564613514594049821863718063055751271856228778798223718942216850094453383596831863452868608991826775071112026437145602201172176839730795571830123556987118480665243015763115979778013919890425642421048526374799238894311957318167283622970292366815385581912470666032296395656316902269130496304943058671392183262230187247873386578612216323431282628457108441819995853819493100733391496986646992099462290179352085463855995892031165148289960411118182158014358498468473488486242769791479371763008933034669802935795385675303865964976531148984516437800559453030884577832238937708827177151137089305096409962419400661277210941733506304571276492884153399212176160392797018756195279143630746996597305545893325079116631666689362742494243714369569164198993489285602357071852781855566352205919001731823501167618855600102499082743489945896072123390966555860421978639205767063612795912705764496162317268141818653335751177549947324358994089681433293926591941053678912840172150670703093865532156134626131235631183528577367378931667821885965400341946826425991343725989200312512121944456279621612400256304922443753225546376698951472031929845618977429436161211455520994878598035684039891941320682817072934627591059340257416915872481275696590173423808713098650475428723673334577624916351888783397063761193289153017144159455795818309315542073779260152543365773661261042543531945968904155311544324508660345520699586445583354348868304122469335483507149061091953279048518517068902017343232504083992644219210856552069200897080333830099670980708378511730659471968609129830418780574242814569413679020179600694443017208353943939328833339852605151850532021764759181059580501748462528614489459865918134095460424212113650941319824913462597325190622015015493623643470544766547585661836072517273086767973307898860764211345358070867725378723754551241497597534801187932189061993166965946816153459945215266124913558854564268843001184889999102487146485645967956126726142189463037426836153135495738670753580477527086619081003812775464693087888072371806656088119468585080199538804336065921123078554254514476050462693951136683666409266473477955579036265588395490591315533660700615710728228348537445827126973742602827452848726082254580741888981331741162187728415120077058773355426412132342329366491787640253432876245442863378399688888776884007979794617653513233431565038512060430957513239299176926616736848744353707161903736132153302973019343848350765875781045434909648666376774857485416633459075904529116042431077604457392426193822665906261594311691307114835718290931104453564713202640477182469535596730804336645305953183810618444495189841112945753960507352732566247686273344336719435824856644068908598305653705445939925079075559702773458320610713295586211869209192984130598620710578375067622840278651878926098142373992781307188684816597124549267192851792001955579105523761434256947787831707637262309409755380023992708415003506652888063649764945832231255261741103641904256056764432415606381938232435851088275878658436899203291342609548106727782968983967626275532275583815390079028667270410371958977275007775824978751031049162114939555860378741913126929119044758451180952358365606948232619189306528736401530808588286914216556703689911910920631190621708102958827010367781642367322738479777982356359905817373976956818714514567939958447400267711399216993369389922245686676131112773815613114979501086951557791808436172332617896080957302132884365836055831443123379332375661659740741194950306756711966223691183738157943538736328915632221613077363839492748495340409737610151462779832331199667426873694953978689146394509156066566044953918195258930567006570724244935537791571184894179902400244869130634101214669607305228114683421200249779802099491191839300125428063600616929745255938523469690024199227465436937230022096228185652427468480670831496567107015096193257167621973502795569853948509494275939842736151745117464289740247835780335329247449507156322997500791638474227389787859663108154809798468724113973827687514749758533683827725950280774089623220161267939065902675581552458383764796227650983452880170378208340561294424455469963705973695073363091713134268408889804475750148659404411340519108301753923722297685894425800409047993303288473819357782435667895256535133788164299800354248433050220504179365397244547522532126771065511895448181883289948483076986172205564926563189220016324168748354757560352583924599750803517081573122314027316764254630515317733628989098267438241976833603901161930604809111940221027668022046001333303876970040729296835499538211103847392521119154688630601363552741242506056890737282987099528592827666968857480527420888510130902327708787015619543546759791595756724504416721519771397325411689074058865747491507449507165457429535176723049003583617962329037048686138070367661190966387619064136245458684954337419585215038043509929595661040098227511785237760424848238316710312080278816831590110728544880378645317378162425998147033558305117860110375569457426175665929953764673066025649907269718332626423949925089934303128517403748915891833111001811482547122471820648486155206396846522784260775943286480239481954530865639101340644749631081683125590181709287836927480877510017747532343138264120057055621881564178262191572309552648932423390111069002541338034826063471694813873318965014807880968995683825075790041535707403422979750615260786793036686637376194576567196740808886860635944046557130343556431629101212308604544619997178365380549034012390728778982798898746540574563293517510647660266994227555417263417011716333831789445020950613462169047504776939308884915536638506779255219446429641587302249684526224813460311841878114591851473216397807970286383864515135741561912037400847173336079477938189607047439257225499331567637155962646603391053560650255816874509399265615193691698651763135104452784024227967435281553170818003363323725658874692648088013973882312583453116667553704810689608344747605561750826477795407061245487076986304624144912794331339081630526816603612810526132218512764945047675907797627353757614466440930988187366701836846617911393418978044232555700716269890860165492694223940649111173039913504687242197231710257487245598907465003216492484077354635980148319351263740494573799339470235562619880392946325973323249385544742081696129376564842559951879040319245774460406433831945601544666789016155969780019708464820583991257063584962461537053818034588653374452652331260121277655564528318385318534438526183566509262212924165776615202336832150647790407034229553707707697826414416168626383669862784162111343664238042600645571246701249989652853600884359522387652471376981876069600671080734883406568450132152208429156626205499258556150196423479809721488885641003499648136026605523767018203490449988412818031045060927751622533016174930805641668500393697827811939081601724874427818694324668440333328361733444615024460112193184310335011693775432377736827293552206954436499830421990278510633342151671805428125545368258352340520695923302496602013490601277124766779086604976791304917992606372092233160159748246280663915202624184362241453160262103390355216314521599260274009105223603505715265177950319160591709391434400932524749793574199342811957779765667992311330173395731669154311591922729678261779327660793392423735433637525546873297539188051755239739156936525388718490065964042636561367996776487632573583769377534090159929303560643317079761311212501477057184665651199867999722468326843225333288723945816525715428082741341842189794604315675794725461236816055667214274256650442490146959180469346450642896562889510629700731859294665841200205777878853374993705048994567975180847879480772443593094589120636570176719462213149218268279219287044102597241572558256961171587476048641976161969141961265703063214328904644769802181592459831431542236744647541842238484247808808329514759973726651501047919816547319339079477158827150722974145226898785792675817809250508534776033762843817924269074650126782812360161052922610503587593687429251097330284278734442855225790095945931032224663063459982602047757452342986591338957066581973724192845054245755146177884038924893275668739586415659117974627876925217848489470228464707803338952090519101542446640542147435708639248795224280600039657313777774234487579222182857754124923694745391871379212874987419072784963049522898179424134701620109381066797787457525718410457797683373363898765717747087545931244135631658906163143718271733894088532491029454052998599805843771386118223903542863905488120523837900744325260282510799266157772166306435532733793320127788597569965719722230060565573050444125082012482499132560804132163862425817659338472762836944882195363684198549206461119345682280852805229229615744975316977513062397873608047750014553444383217099112357465817722830159340255858512161696707389646975548155446324288189595592759691396159600093280151674008410397007756305533558112471316713693322250863275003891257934995340857335590212980283894611482201556254063868781345152342899850819909935106863338309893891472562898850205516574379643614374661441649939305327221960624763264108866399440846943708151508708659357042966433615273909545165635870423677954213516158106896426077342822563885657897147076562758297247794174064764666366712197882541369429684144791118954962119580539352805240711982114497291705946931153694180225142523164105225077423614287658014501522011860283754451201752611285737596331144386779771922159724010723671033552517122173875909455455594821437971037376032079592836115900076522397945351654803385664044184532518430206381952630403305645518746935826660687426780512947004887453843524463834042391542398189022220671079281917224770233501956538685908830428746145473673513797262864043155053691285370428503661701240345593445799202101788552587072495343079952440702041330463327854119431681436348797943776482844453346951057721746582077552233467309594290868988870971874092601791860976093912243192322484513470061591712922348112980485758945630324889177758240639168219449046860097090797378676464532220856712452834400820567909444458432025213244307772450054271914533408783836840878667770945277269416611716661190731077191603281086475341040462001056780262271690834783216425395663731234135468260739523430632361179925598374860247676054275714777256391662961646853879446503543960875524816713028624834006992136176528568597186193707988273574036673335289353792434463044442659670180888055399489299904928534422533239027670607460981254037163821827135872368143552922688812825841975422987982875663927047671652822784188480894902223647830207749035764963946216992561414996069267073563942192709255296237583814462960717637545893399474255453085004125284447847282139826379315252665539807315275902067981097758723400089633014664074586836975306154166712951321663543161573744796515562213448624763345474091944757322060459716008648041347288419940017818998157450303062312829895873958122783488123442654715690969072886190865955075151736627870444789387346524812587176628680116298224935444756398392327616620017632034134825738815018497859390811208216266077551659846735804567725572309277802726019245764192471193475382006400744962680902988012288386230200010545466375806826683494786702548415777648257641215340818056492692480539648563102761108179378903741641616716391082205441820297757532037936647803014699037141328801860316055892798317755741129444470901034470042506297012125370291480635406499080221047420531124553606554715811469587761239591567760347978908293283742246578387709581488259751091482437757594190606875728750333425298958488272247822662480380646291965433110387736897152094796754253947194666012402736328753782160894105615803007335155394465849539555104211314284411219580111652146206538403216606804119850651117705105861207463756266187994872323090729064921568415190646450355486937140898576279701336547981243957148578172796016251842941012118669682087582443591245806299124406671672607791587921131721952852802348619576368938043997953701064260213951478513257634954364712361668934005069800731749445578196579139118795617671462685086975158412971501315300937717685215927633586266009957515064178248616422335599101124153078712484782877880180514409888599922397130994974370673461809117842215689391246583109136453549413643777106204536874607122400536168028767195801492162396244108593813006042949462942683945342761362733220784672224629094515111469184163177955377504040183124400977589358808328026961360115803493841607368956851876233091731909115806767345476969846544723627198493059040240948656492307903153972974596349065618643834242551235284343421448353924824292006917381258592071485850250345781483245117292124647148154064809799853491978135047711677795673717858718922600672632043511211830385764880241208227194614610485263902746640553316875848342349530707051421768376137225639649888754727551806721647892052912673050907349523956873358993337530639047434547714176826526237008058535255202659798895674946821638818247225362520313265370150493365610701007184888981434696620317110144832406524464119139134976844316414235186514287465367419274719278942758434177508495204328081847758303558875877522066658333277996449309203498759071676972495447378634512477678734584395565523949756264882683359076384630822973353102269768301230975563997402515381874765176424106534479665582238111437096926531090084847670344200571734525543624503954066524439051925059569907957495439697949685236073846976357229000741105196991183927791487862335112915817180221065150859299430304862328474360734372852706266983427166434575038857483266114553867031107484443390082989102001903896408681009096963976525433813027250565575248954910161521428915865655913962952148754462260640636377820809427065632865430405496403910064725552538577496272505487679893669774592408396567397965179656573680709848615224470964292453195500119656416096970038849874286135233217703593804159425053420376449013210765953294265617381997888751007200893187201665059046564159578709872332530555867411047618730240932886304562925823923288412436140698081719821611557276188463433067173168238088510010142629563596551798405276111950060649020647099989045141271975755440038809327942031812455159700377665838456457082765263960151140630603575337804833727015044155865781254119986200088910705152865836110399719099700821550365536335654448916375485203828929250741482055600425674913291431241186299501324450925787247835604023736760765413854035101704122786477022233335683641238834307340563917057632890921656138904168217102599111356892249594526865285289675129662090861403346252758846151221670879089816671711612980679493917787531152330517316803732768531288664325964384259237687180296919702654227782513586612897623501481455499416217327370628285348805815199019582683745208266733408644432615590315370068326317798580113305356097049157052769085082795595760398107203706705411123025565251231850980397800535428679449424204318813213451991967816157390822549986869315320166142007866819546326025469662448838833847923374591756396751866312978168295968710303708711299672511784461048247807589593534414324072988923185254118286449145495717205844724499563142386464617243130641199297871629227429699019927917253081467356286827543556675593489978730768595846241322756190975707288120027468908437587208476492881037840068988332266858135090103581056535563392306368857329346366960990984621862107262341367573992619262799909310263115758940055115827102755930196515234347312077335231556434030005338483929887540193226178982270162618140489085069280434542719155895399393227649961499171259602283120755741268235320474648040157525160285288829892456793274452979931886494354686240824629114565270227376367084272416589665329621902621401112537151542631366661637747315126079898281641313525668146955212847680776566066391953855521924152496172986175241801338014065521533755900225799295043590555936362412921711830399867726865052523324039251342311590054587555652004303218572102830529558015976775531775250302483907158458950730986934146343428315669933059928740865165408806071556384279552487187321396957153534147829380721817460663094568573489426527249269443168789779211867432590892577261559531613338275926269830124820268714840387295581102217164168908804922912232832407510194810081027095550193476229712355947966224384679354410941697234240786084742858261326175463348693473787906535688051525311768703607508644201006579730408236112512595066751134141709442780714768216208852102298047013965728491746667791223030097627582492926421763450160862285490703745960701514656996195713272450329397312925407253312483207007637534202516647736445574323155604537220952000872469370878921144351462776555425680012676503832346161059417501006869120072639202913731805758519990560820417012523810773080785904568516303084484920123148857831112735855064555536538586065082097368479498811007873721874103664023862856549922057848766507932084700867534359482442263057665927184847081292405358099380774701522398551593429664403276495897178641146502539087688096766064061109353636912397814630444153630953606904120378653100793346395306872450536403031930205536839152640778784539900724879912663793482044702992400823319094791525059990189203596370985438359240900519569308167249488540044922391990540223836615063162440893189808419900721682684230628734843135987339913898491166755618001958540379287407478464285605287726841226016678009104353030358659277393705176987706815714631418198186280369305823046412445319281393158155233642521875809586879715788582549427695403916207142661700042847371677754643494577585728219237345454617802832852429750162473675473704880024126942327063032803865272485529224715240530014417674420744576861017438966995959582068317719989650959214640525691147337291153110083851348686145192633016256596091808252940517504064901785194288106978166923086674666734381326722680102425770019430338489487468373759839999962632032109210282878590214255741920516472138391758748870084297687050094492452197197313367266104266460950341745748209061904925810386597215153887447527667993669257150357933049224323890340354861880428799370001374237964916619819022627131517014775062733404807281073136214261789235370940878650300149683949108343690653176249634908105488841130921089532005345833565553649030873061417298699588867572758848747214068722178923274372682067839474302467556414386285164880633422300336486161029483388554359948066787952447373898219092459198920929096215945637491396559988580344891238273918592269044563364924204943659217739090563695589868477736251929509763240602305989990577462963673149979891066092994166357947331749568829084214364482959184385108886835821492196916684825070665780429703341093605225841470525850428482690800265263640231330762426246027396139619639497559949491416301078615630151518776362351614944772622779330566889671612810381699432121201810573248251199076779436699806475965986804383896702982530942153057315924044435250607552367515553623820489420792879382262762268869362808555093444755346096122251261507851692859126373399085418359583144118735828403505878106448337226658433522420861197700015304934341287417467371614479245847507963113611837916007063717978713502808165035462400953638096297530304340824632223132722726624756186162735538838717024887880282943059620566901443667639719205452309980627737659391950676979029427003358394921723688273269125584870720891675798689820816177773931025383380372543092435953266965204644857660617097299628859549911786975741419620912476077218565481291317902266537927018377985189423883703980871515580778763582989269817069457447211620843026083035117268832383231949459299325973729214146622143095250553389255344537992985029112950290570361075180544342706981120025700616974990519770646956762794362650013696677302761875377592613460871966925002554070598486346195609064482382751625968330908319873925770319111860838389888569560854008709115199554829704941637687357295484383983452249359051908940158686279705240881672078072070539743634463964358008023963254050342725798708816584397969800279366612448006290437719571709988458919803515848970869302765325931473407183383879051865789117534754649120982168370468509834504579762492672857194825170119430031749267467144060379521690268119556870131757041694371248883698889849905935249606644865497491664255657028512434867948454785604962103843138075904425798439517893679159851700994440018252101834724600407091333519782382222085613181450493752284818749417482529391686223013060485541447108606883207277212869557623847104824658882343463865661571013835386219129677659308246667867609897382461411648585724941706570828431401980983646260730042056419444323063424358749136651950851626597890796742231995861230194818020425650102198006898501257109348657819770967536657523898695585951883106831198747989059111660515362518065740963740593140369877376970177378985383946036985244519827250810948957195306122619897091938371722036056817023274112979447199819875942355532332061291008662063569486043025455942925013131653517892727518222956054850413526644760013090691607492130881916417483568555837004543756769071231079354523700947234696102957708812962997212977958823340357332303488243231662606169776332785288113977907901198311633155675675476241831232708661157375560465964598917399632529917839952319718440648470907861879513088778589281570539797357703180316183591830097208032843710323789160901042536897542136844064129760465093822184316211639598320583726310714984664008161660778651039156924801499180031213906534058433409414640083641089536372379913836597573860593647966329564819685130890288457993496019346189181877957198097754704616602458185994192957270539163815476117449997073941903856522369690034029596459743791050206519529385123113546837894211391047815518554239787734458934307205882188543128330044473515141199573198052795472023224627107525774738399856099844027151868297784912771092359175407363693981123200847312799786295636124342613609876261805168161219466092277491862892280519359153605112354128268130289770601612872845310268086430477265517218316341365786470979133949421796102859952280177291968524365487083875457980011956088968165966563365442366360058074133689611517851406202059739628253273578035312256130283635790125997716197419033305673110744724044863291941868430959338273093677113529678292923083354534208400465589542797404919489869440008342334112460211174527936732585490467521195147893418315951314812582177756765747403008451973278924124899565523605814272714213059744208863021695926884403424930436087331256223023059702677039599744277942997584731822568547457250040642238452009140210922495147489630173597353135679207824762295671297293468833338890348374741440691595985152899870728524508220947650638857782563706254398648110410664391247992009681214029880904125752563958305324547030088180831074036337789568438108413497923423289208006174692873677525704203821593264277586436830785376924422449316039657468258653246808391707917185003194516967131213969696542652284481891839633520141464437402586868614487231275669150838754463008408338311616681516958209690864144328353022495323473631300725035275750166547327161593739527668676167813479653196095817711896110701585683261671015688100071583823120272006524140225885760774197916286165631841055667852637924524272620807752019752608492706983809120231055627684469463940862480607478565483661763180182116691576449117122876091812272471572127218522337301165342272217704079765666263642248003417556431764628990411960369261149417383080629868157126485302188231189183095181541562095871485611325634729666536145456151531501328225515017053889165149365641788227451937631132357903323022875532552426582190717748691302535080189990751747308495292546391070313599175743237375512088944473786436835156223237329483841870272725764390101951419207250312022117728231619361210988457022124965969229662904934984374643826131782177310915016019590230398907592852456830094905907025603897335865068832103393949791073885224417625804163342023205041712143330395118655889867909105889283703990867083264922900045048636277991753734095187271114548316715668030663479425912151165600274352212066248184536776502741793093237038016943981829226120904120451801412781099042179792692080630395547860630068511310868348602432653849096337426567680226206994968752083278875046268202657577634292625063379397206804447300636157116703376415512452068567803294588476834382240666412723501935645839401014562220118949337783834936947640709100666214409297069186426732182804116666166581569631008410586758054300979316655838819679754260790903050662903836205430568083106580936290639290096371702938237026110029454572063601057165247994927404003458162622374398621929628024474142281862011581300396657400999511732779580651964706708858311413373319753900885356905334838555373783172806459710068204533608660475842293621587799717049437812414586223474157853609977905651220135730103823077553019696524453412048016382319179387924387179219100910003196681152635918726144525911134179248765473357166371955030445461778346607259360823315120034599772931219621418182002290076414880629200678482062995526704591053327731496345083714996000771002637601844041065510857376360196587221573896697248319846206976962165336107670893238201930901736384856092951216492584439298829099012697511662738531471469900167396069461105284691166354180154236880502172290011848748077263874987915440402053187416386560529366051943681799406078569565849156625010877464931586593189392698794806625310533775482983373909932209777784318261139677266595225154171826028525138650908615540810118674137911290465443030436637405648533992953631282393246239659414507416517721846176557556016035437058828343596824638721803412950249583372706290933496248745444022532615614541492871526456492316484724464243977757528925278505033204867672778360443102429935648543683042747818403058524941665623143401516618308124632285031326086459139850300388568195060626458208039436427563832619564463536781621512122464321296085760949972512563096923379444464650707552466659573046426590067794414321194757499536099355243765054594018227392030112387809734138160669778657853904176788538291222796043008061955602112396240616193739793867052237936726063329379824778428495444220252333036528961050573029356682464914428114492498474275923733435698237676964355775560354207514618855390753967217418508627008074987574365940274983015079847934817985308976994298639945427203550955830348967971526580392942346318717860284732950544216305043247894707126393538627452914137896579087660155443968812035325108524541881891018562607292779606587050413398732704042420883563674404638519742376548358191109933754986307563947243851585869304726978581777733662649883220508212937514320046404575067547076495237857060593779901669038924597770256621300744072458483751601008992548329118531126517230781555294860278473949835662458088385092916755378522119962291585193568882871769173543944319178207407951407550604175200705450345287098310556365057266536510133277317268718180163076374742547166582667779578407657352413948977588639604282959720788159621818966791522474424961775484369595393241554146899000269377826491259637377286453772023000142316906889627663104434921255399233603983702504093078222585876517655319445464418136245421521276312769761354148768668446168730250842146998928256803875429199286027546010115766832092923766404927974447933330162417639063959593317316163731210534161439600487715970687616448825065702041604206722147209551642432814437997304541955139223814351051124173427086472371587433128142565230155465693433059643434842401413100620013624929772654042048594773394377507155879562022090872550301000389249682466551521728861643993916348915335365291179091411984825931060002745322963436409848708857514441101756009715726190590430712887425324939540772063511253798387702608920045090541927628631390080647024350279015961449710099505152960601597334995769395775985578239866547754271476718807389006598014837494716410408536427476312974225344232487378958483821365789175101718407119313633655056610369191461207799314660701588205751379663019332629702721119294313780808969903578086267571616896719366656951815344138002498693878280570097407579686481676538147024460918433078690426905526211483222274815258917701477630154433449708560961578967289988513716932784657860330409551698936568282381115136643577324942550584482587919149065591539765688395765942507942405598809645534257970005593640897117656216045055863228966082354001352042898540843457719900653845654199418784826559374162450210893961159578894862935001726149482593851825002747853391000043071255187026100019470098562821627254159621419172131744497350389424091434964010162265371659178325618965150397917451970685039529104812492503522235145261301044688244215704256428185740767529832583629367087014160926243184602339464748038026594565357645409798499100920303789472216808059318951006017854652869790648173991490407071957883016996843513276175628674272930175747792367805159903042184500603464119972680367429071184525109484604468044513948381705430035472490961484247584843775466387864571050811311183896881274307892532398977802832557792760049270076438955335279503338616348572787699148886004974073240098840954639214487899264844077419129480204396782148115308186343170794353807358418983266291345058087646737788862538447137310904011869161064296323112461166914231957991258217546864821195921643792138402159870012022133542054244931870232667838633969206545829273551832473003335056132918175127309937481777855823239457757041166688900022847662475823858443725650891726244998267136349043636972558058190318750691608403798465156132495104486416379141585798763977697398945166388970555483610641375186850872112408742389406522727779944393890550136062737813496104633201205671932498879293875506434391075066610055847858705087649783238828301209894013308741357493763085933462724778615897412343447318621591870742404013905457602215267631530300507441924457651862206301992730587885616998931086071597944350749299855724866408691203766896815948513115190212402369242579972521982601028148868578700789366940451588990994221186895585871742964966267964681769387493774508206075011440948731165597988013491209361914980652993017623690005798719526053785459234052468560555671025816927451787311480934911073648145673395762472941341846577649051486472603331934406328481965762055061245439137864036533202108624599705491089321783660546083091934084574100627604739056296740933523649015252398519837455805084509589143996960154194937670991170444833506833078873534560157672347168009273598282869751449498902419134186355125860171278217646651285759482110681624108024010612599031744478685295242830331499545437457494822025045123896714045331393981218909109990744028030275425699706800159401970299522833076185264252056279494530542765678112424689408002362738891961977637964013015242876859695977400226467179543005337073343513869287000215924613185988101206650195954929353628042914484545576239672950157229571561868899506689940324840683105469921922946101117102785391394308993124965563546510781106836763743388901275332582185239382173886625963119801947027637544714101961840647003372981982721674674263066976605630156808495499774063014898392555302764005893455215493660793353483567075640894281312798575773023830024386700129180897787907474919805753264947281437052458711124049661479654909709100379412243996314025056902136945464035152910800484574160881337168838267984031903468849174308708502807679564149663740264547814985576794594214672579351257694500655178226720361219058820631738692720616207402935668709440849539341578717820858448099138447447434934276232216072242011423152129905869899061169893902545639689808282186303481788667396666368044706874258263337804786110588068643133383379025286719106512491859384868536543069242589076917351264507359603094875643349969838371855618488716759069638093898645351223732876002801183616994767031146762496338627103970557827034635920648620642870349979595658763094757112882465269503670894093175605476342262923727914006031375173856984950633344652515134725542517469501490505311964084318114268965749685776258233240498906856215083185135153175102981513065427646616202784472942163874876381091696264849825345364044277059991706965505050349213647957016665025080735346535425390079964489294501186510658113051106140999773053860862513896620223416538645243899251561224789768090478754479133875251054843829629999111769407230017885708495800675862108830164666185685481993096528137018816778561387860592537423808799368651271859336982516734617696297397290307929365780819957800837249028812426963367457990618210829631193998307743149027883974234508487565571562799820994564289513464475061757035390284360573551749427123729936284890444986031905596926799901714877159233657490457101650493022478793553873259630717825407999828922128199194920247188259693432844220871106796490581343329727096432188467618484318498401503156814040584670921260323701198769660247072813713483353889507583148654688244572551997658233375396054899877190514558533719904238556503331826457654761911359589124030009320447395818870040807865672403085628603837689513084934816209541845916804568389697938367492648365316427683338933831363257574588606852968255626803208389773158332369617068360747282862566377535962533808636920339936929267409778264433635749520907786718413030034560268854135556194367347468800955483576929698436485756196463733432467619987450367160793116701545123532974645120919444778837346480046938871525649076114715138131343429504198638875526850110802368382687808770951553754609460428733104921489236599821825277329875536160300238759746826732634278299767449757608922608477756134438884461363536121417012319545229062701461663354905475369861637779545409589580214864245223633113787370467897303217231897702327574008917732083199938968219674805302306960885805334873854943903321152812204810261958828026042319325136815043941908590246325462161049145739537097203683107159239478961377143546933147435833719382144493357770724304670358129437817848651681850815295976541066623892330122546013993611944997372758008547678855987588285705591685130962214934433550760655216595011191262714850947119117005303029019813260626198516748835509688092643847709063168251295893638898359153660949401983676983053423870209774778599281967197142323335079246969867065540608766444820239713774311205839591497536369356519432984529627904646883978795618690150985368353190659400275561912432996837666627834361915553366759732509440676087486650525823041037432128507105362146699968113872606792805097590799564260963804699410836158169232900604000839787181630402336617404367318297142108436776991332057198726427090288836968945055125201881167294464846885573053057672374291985811904599779950571176700946344445640202291954239274838481659971728038840731580874409970500717599772960502833470310066207172337282872512621688308962087944520376430481602422116046205639179347551788971182629533833007336870060471730587611115925858121237821998851168949683163313872033050931883255902008003822983290904667418675991544525135963406015150993134833547321969278251072502693212644101912404337265701135153760833547942418115562123583448419983253167374703976250429423754388839679446784961526082320401983882660264779200526039384992344755450009788677347588653217037145452745605708184023467137817828491041113275762345369033217273254665777726339983326373053021419550991779188576433734704964410126208912113518541056260551339998218610223668275095365399899953451748248529262369589536750691872741079263525939071414969293518081214576942490791645025982008467735072300034693725970378106330036418306747391547045508815793485971287821924639534566095669800105776378245374568403068832095460783868193206277149936650485554975004008479111282223250035639564657954309100492007938228858919529130474453463369291148488467123528115516922917088209499922189838540009558675773906787543841322413325679212064857992738510086187255678240466017361884704627812821397905742072095503683494076092330762730476900915731866059110653087106320960974022605699324304529213271453066081352347088156888969293173550568176507505968245008373371395001246381273567658860512565112661341855819624408765957432562474095503041614756690003218989023377587748161682249031038507506363003354586346766244900413188854519776105250333507985929380253095525579612961648949918475504404419074661697377490261180172359676359768655948856659491461302000708586393087550652187039997260925622335761058564793611462335483778670282445209688716178784660715728005642713139110851751674016336078962015338887720135899887069538944103975162597201830384092804468183088279049765409010939066852127844321178172248877666897995369971682592518195322226734581738660025293439087825820365130199370285529381987844306456377304762043834587314714009613256011683403090887470105110148433021425450699555152640450142121810827723443646896349709618245236238156529196748443154419336930868640250172059672819244271309469630645735275823489416050652415696565909883668649499936790668309030212775412817901249809928040928798000506664499071447592388807063124013221771028305087233815840796830248248602290846770903899036421265857003013043543161081381306435504494491849296352412875687607920629897286365825827472561197719521390869788917741106212502993127481162148173182092675016035606899974957324291289822226306283719309442740967025942785659529026146746575904843117371436132831449182856807263227510763352657192408621689298340412225502835238626081423115790368518904474078203997876486953659993422105548045450774168804980884303458423660000694899305652978133397965164398401421997857602651870720579244533759960945009829268018510008288896881938514416819469340137721781156190241083484357699192273956888838810534002103745221718706774329835458641457102405219701575965588049901424724801262760740737931936514821596517830178348600973983037586209344771602994796540560151166263376693978966423414505791123574533826832184917590448482687551833218251478062322134061722848128144359652102354096285453107513484737480558317858182125575802410092940381323836376219271753011425161849275473552403199327156436727508794205187640497304329875850246613786327099907919863628188133606247789030323173698186900782810412733708075310069117453655938122790243493142375333263094034667325922288114574462577225517080966952426651604682986652630036299893369530289549487014217165839639941263620888633093821941456669018734057630429228842363828678787192122222565708237803843479366991121678386584150099544225708734555408521384146386614341797303716881218007619597167820078347225822187238604629001546057488061416181102309952343438962464239150671283992778233416450417939883622110215759405536488309695170085558014713955848167834128076903965691717528847867940708054961650668895500439662004668297159469417196523877532708362647508800214513316861937855524097247819172910730857059632980685288145051274943835941141489543085785892585274897705718479741004302205208524133046830326468549819327837213447168837488499977556859195998771918966573220069062035595010023645851433149687898940682874997699140754250303122575495337200176079321209107186396392688669107673089644256640550678831286057257483422371664490029724291730892283612466518412641800867909838169612512036156357550751811557491030058220248246291968206768552809944089821977824811593109489210420435611954632365912777039649261242313762541812990724366700563834002108274383695750510957785323609145603127371663776357559340116989485300793962876435002365010262057730219797522669432083582208187920731200318215929848685220800583924753742908673382584418875670947690210153586392129464444861334503820595291403361947148877944298650950329668260859191697239152278752713386308406046498467291211520734007655113937249198014899530232837726995369259300862941642354095011501679881883604227797017792094637584582644587294683296342860004469301445324844122303013518245514376014037750199535957191477195618365198738203252489904710222877718235064679000689938261591800872726889640130460121554249498763040451142515428678463617629887268484819901694703504075409042579316075681838345268967350544274455131765791374084522979713876837417209277129958880307735877169635956121031936493230247025059943112594581468521799452544477270668889336625357650259548196706790283579062765850798019087765758933481792955641230474898046324060272863974058962663928109066304455824941315807049496658602738072101636709612483365491379402841710844563024274432746779404979016523459466266035924365259181068067231270929717198158857479133947912182447303076626320469373220519004570489198781769622805533388812545236936043640499030636481349763018180970216287523029811194379234773932033706095626864121866491230764919855322600097124866509272936114760629425563927399144111227222035251142819968796741880502485312773593604159841726372569203194486834639436747520740081438866348236214343573554248606716321283731948551884225818889049112770912081819335369943491563487391785908040268698221831789661304544396207106835599827468969988263108828691495288136031076502573714709024640596462511125549994638166713151109977909203689032696472240433534445558636987192350617563848957574537046167750410245762970088915597566209585349532273734574056186767363852002485738523687922775306034678675668641910860185580273897644786400578682259017796867802643239932920407024708033834766784915952378167909857290276464107544314411199461946729959481298897560943949837949383478916297973956185271867233089038561696084504268481030865386045704789507510273490667666300651574286642414677338818335446957374045824907311304082707391114556020424430695684339154204900928083609201547685325548026500373311632121446284346241183052954378206165966231914758181115687315588428862810846317521451291265394879619985109254707206132198818932991528220766724810979463955481947695130876242493871001796502898668465669325807129810189464469398815138795612823767847363424816035941832767517551409149242572493604708544443578197497618382596902443050551545694097180588966908573008161218886592346796497743896875725832714372058941811838105917838020048274403769078329448861372429361281082754220869975339043171782098069176665176521847557197675517803951852428315974939201768697760608387711586577967655650726880411702281297880111026413407212566943105189764735087985777681461816991063913594596065139093009119764598875767893779736194641899994121005391741366785108505601033731053648218729359419138397265497485017343388426467717140096906585713255873664199941487129276602811604262326178688532654212846242063238349094529747390355199410946560444728118493376412470976895427750481055016906455761466960106044470001179014838185179179363369509261887665262762987577705321597350148805589337517742269558715516950119285736849635085465095177594154001674627446154675834319346543418040206057467877352448756922339262816560990213978602174430672636544844137486417401403092934516360027100998468236802906416272335841263139180989198477917765873898222167412873371085221568799421765149280181537782996250546220148049761251504238689544437009959461699172268490768846003983405936970315625731290883985053049506198117573761560675444175835597941683320140958460944866297059098549913451869127101579935565778397515632708146373343144804216647630500118855611654029580027913263065272791160223255327548733655244376719631402039699119687603015724170317881267658309892088882650389150792061034718164851865554762531052875461999639916663894432777585845469609745762857847949874148130520951994611120221189188279077046201660062368237611287737387596405252430942429506110617821282063299682332175014334877939635276581151473089395269198286424637865554056014441719189189784746956385144583642220466046230694875895101130680163774784901531391013347205839954867173478551445135494217688447330867619548248256234101586997305136590443217974037493111397107739357411186709557198580930791892186022868400894470152467502578100827252464784290797350881996024083929151237837593181651685199833139992348365898862607113286104014663810746176300297784665691668845951367058870332563948370625020335785359211925310716278714484956672436149129592891229436166204729500478010500381763225623309549028918664697560825121760467560732299764675130923979995707728407412102187476869723724816986046881620226660094204311885941225533183016579038703305893726754380179566585116227479624393341660072119898698769830904708982883686332947556995822361815570824362826882314593420020135158732416246735838220982786105435136521685079762221106101740018252670561303693743880831319008601426734634215184463793253543939781915465960563902388248867733990147878601299589844272574988070929127061143924115548526171548002500148402487213181790440808681222561622616345124021188596819903908077209767512797981983968681551988478438069458463806339925359467515272814089016570770399369541695545495808760016500188141136795339285152352355512927781149467931498390657358828250830072513126716577793415131802034465699785745403398542835813167172479155917877120284649158226632990069895581251619211039840361276806518286244811487357115632649544620133925432929919302267623590141913513683528103020013469950081591232130300095136025344268506812910627151897573395517445756208343590480759610189912474025117162474208939107365473420758000228695406986755432438802498308323437608633333372841347043142236592105593200912243977324624258054578409466476266814307176797868096377641996872191864515196854144889189357693791411428766762897050249701956815193972156830259452395743296813479950025094381825888606385216034017811801546217402310652471482963129087812157390864254843186644586292068700488634344104299298183309105338039492261063861609624480323044985296975159037141310694895443500100796947928904989022218447829701173458981625869317714869649654939700534683158802064066360550353788240124263394533955621277769701720784369129978106064326376972031486189757275784187728489781020331743257566923604230134724815440120331015825859578432837884115876562246028386368744061355166690300907097867705267228425801409614643078716531927744508102855158205246034255277854937034753987615926889153665622161386055360620600309095468621741777690930791220416987196291187132487606550124816262564301706987457237833185638198655708022191220243909251901308186473472989805514099806033499996904205859871133797188510099042973593000948819190998742897020975040755047436828581608946097116977097915507730765366868460652760087583509629566536338366178604677976179480861353901651142199044834356797629824986967123791762473759562357051727251260256896609812866068560813788358232571960804345224183958910173613363763905132743039312039688486019099707880310924328208759856186093919078708124732536022683197351079691300374799265857324588943862445645045524088405726062677002744202968749628540002587769610017430358304037537152974047880045642222198455103459872707220934912726819054281712218235467673461150002082004996101021259644965843146857270012393932747351787481215124701533140697989985089027294894683203164755347436224145368122506876693202665971983452862964664300478357182023490561128061456169294116641420552676345200135689200062168063691045281587757076155302544779886761576038051706946780020635210099965574311400887774853433584681641509990428241224557406322385611830411004811980671195384645802105314294468179726850039406106499297804037748445860049326465368849326812893719802774344273362633811548336586416833731368215371791312686103310888533330726868186433730499618839257758509677837087762901546507223457347220187713988127928807126079079988108259624192221870055401458102852984124619406681035090059945855450896790262651797658701414765320208176675007370009177568566231949138995091102197021195587659149120771475146048248459798889697665101545115285346895513702858161959540233353559610761820969376183307106884680429198968068659411096002319285356824561757482181187454184328324870859460592586747112702435566497410171511256820154998071186994456317395187548661297203913419339996326989187885179969718215942541431081273960285113305002330504157061454776489619149225104337601122324223559976276506275668609860703013551210088399545140814138513163177170422382496531071887434063440786184253595349746497211983936405039512619856165090600841161864509516871143154291433945588742641764000958765504265128663445534555288180098400119399741311541626881689268517372260109766136655969599754964899230539258997184447754613107929034061122195493807960542995989681167330264597691792559028950117423508899494170445266105114620981099354840899670651303280106386465659158635058472634022806649253439876574412924957344004942172981631308239108878353446771554273177188835168678344593696529896567856900914750254505950936885591924913070762787573559467479859280065297896173153590061310562515710316541393923723364949406155482782617815060258135449056359980913240791260964547042441783965466751453985178066975588258040918518599185863985827713222214955259430576138203527235557512963616341450062676835133330894292883881531487967863428100983469775806391023433105489896512239753821166537510017845707238707145657503825040290331294788193666927374571345750280551041714731284608918678084997076660631711669504636624684976385164736755421417752892856782199140185840954394403270341598011270954338820148792731144200206752967547253772096174541069194712713862343333308119932748813016913573957000641711245110200604491899709376897989894663900900021329125638851357177090628281091146921006413934136598973156405990532850175771113607303466078950581983722269196872005207012628653011150967334392813888132207527648614983859070270875076530073816075926588878505553177343317686870279492178814632979096919497451795192731690902741644298244373809555623689442603302744400071967111020441371179265526003811690904753477284854270936294703564129533433756496015754499054354402960941757876072829678904038603985019525971696290821264230530671066728937176961568759520755991608019081793561585615513673738897412358288590570999642366145571416712901212525258104718839509788028240180727799375635442200359617217689996788727521971888946452895542101215829972737295250225808373466685758060363264511439809993913982270525916458060673247906025829924133755319316933052308381518461346617124233442977211280671197769988614273530339079884068920986165585372126739640774050005325011872987334466980381793811446451009374909239937391752500839050263845513870667802383945346711723341769818120994066348831650843768756576468013517865438676159404044437295290870814087337266609364441305992257132634698286291727338748652530206944043021985809103932645530880005094214792902476493883846436109081392677680741336885879520837642845912040221060722286064390539758557639477879894858279138599158576772983398184173140783793860351398164498592207446736926970835821668843498333427945754590722368152912447522964822107391524541067695067387035845338220047451385905095688830050120586852960620657917479743505423442601275976634364947505441411021382272696862163805654349081394933517817065684461560398599703535637632373055145678121077230966848793929883924329292394182475285826880195031462673793219685073181192269035014521873619490375141390736490926735231008927508470082549080582508400599053993015002389751837458677815969065501846626938111462696008678835623994738363765854361089735026749752360322326598005941683693946311146131951111908289542034236629375693771164444500445412815166533829503029025697340880878412315427605120932041968838644254574315936099302570568497345709801954607864661647881778706066966561345212758966449707948864290735688862320568011996230844217437011659633574104768753672019971243027418513172547625629869911408908337127382515935705129030282790004938402374122729531002408922993888663252627830142888174576680428316203332495448093750549362018148890357893336337775632335688787654379195349354661911171990857595026035632238506539196771999022293675259374652104124880466213841285663332021839363197358875822581997205335959633936437590167553830345354220164746225320423881034685503975219640214775004414715927301626127170456125813608042302068479777372965226953052947757681708696054670072516824512925013668239705641768667852119003058108205280473198475577881399576646092830898537688515535201842402012837094957787359412300668725793375529070469431511259333852596197254033030831281146083041654158603106888770344195629548606647501025244546644947332963048885826670747186310406801259289811073334853105300466384208124542987108760040433078202799547644133175276305064556560098591829437561495164946055256520764405477955890258903658044502391069677416950478466856566436183079389972485396010660705492579857211812084289748933154290087086103233715219261917270931028792728674678600455224062970348527550911576397407594918822307314577525467295686265018603142391660648789583831315380252232821726574394083449930731253331212178897432642517592063189606425699717043013859872333651604004204708984929195407690993847520277335251544729323996605212964965610277945908096426706606430300475648814538545359714620374496415752052912994136710363433389225709509006481796627071795413330529514799441302288328082152274644433935299826338690331286877986791928177196057649044044747125781008094109072034537813092118533269008216272709406307650306938077706207937957781313304602600140377373355944101866525556817565039272726469734047221910584029450852187899677139082929685424116616092441776030424686675199125992840306581781042923167582986613030190691226843648429107460694859993699778192827584609294325808650856242613153062744460512757431994056120338393569342290952979171404075301664156645678018271771236016527715884480449426667894155499255417189493287312808557318024345997317385512922153530854648841425528296111234025798238075990752591449016758354525836585047428399272131071966544496106487649139003015912055058838569463760583284670909715008014219246649556269033106434617290279590886422069720810807133458805871402962295090299061720925209400282977022961386024718891416012789543945561204818824502044927687508324908710103480648273188580141383127993777689121311254231850302578143426179113397621115609511579185304543068251939103181003795004143687773865859439151683728587204288463579035640587418366102863262021909431907921598774343745486858426075960972878698846595175730544468640840990180129108413223358009738052854917952316987777816281664863371664521328509040810407306808055182547784858988870875032563501060883161257719471514236084118254507486257647359966025219761763783139478452476097654187866217588776183721439824022862804100180609532649115410431979423325541968221249827337381047876283604795495638015218056421984580221166215983493203390178089722173192070654994535674876654887676181263454832290975651496868305181997044305418872465356321413189847911226484046531158367877651986928979651376016066867318465123699853458225060007645765992363888290184771952362497680111246138310655350392009915656967943611819936998588451877261807731637562602826747790680146806552947633278226587038605468787257684633401393671394700881273275220582915326668670918236311836465125011891069184795651345060816102326266882045298735025747092322104547662409606141973835197748915268917054743464522223918350467064002486035440259152598238380102392291778241028345379927356779203035901155808839055410173784322351271514868893527813587396184922308056839108527755072492850319257080781982830008273870848987857186814019774130652447250318344897098399190844813023465055726332622636877061715860400495310574933769642283750103736954544363128126255124197207609490375083348219723892790114790332513892120608719444563036700311093508783404342667264161320494592105378458508553606557317972363305979432652281828234876646834697944937720146236303561310030616201142852945560992697266787437535614519060370530391382584031280816524118732431127580012947254381578384685810775710585213238641371166003244995092200879614732427746374380024651770272342550394303681974842412648941673369741889526294503226996034332753850816730361037694643115716821465102314081716234559102149707683508562854217696156355590124258145450458805034996950269647580400186145978685623136700664785398719789018977658914828074261082327198963641083007835203624773326051504570257183388784239904623857190270118874253025702204135751978494099387774489087593585283162540228333614492190156410693457392902620055292125106568628540679828277686555162096218032515503432271157810603288087223578829706895977922506922294193906513381883601083163926672288918119197669840897983215006818770453321542742055413416958828632482097414830571446002598212437076087173387345067079980772271649899439341794909993368676953894956670869966792155105446890881646778834937426559482320171704907419817966175146400942426654800792718562646757757462668188271797754094533538403885212864272775870072048359206378597972754821520924409154132567507122851824526205166820440835095260405260368902193946295521991780270529254634068920932807433007642390626336539889139216792892487850747859327015809609077522115826873088133032329216583414899791469964152510736579294605836871695482037682726831278393146867006281785168514177460488020217447757527938705291908479112458546538658997947311516475372714751021807492894058618388480198897233888505609122065715040144625533765172992543231475406388161623843652650371276428939913827207013624539200283891129202928822308716952335567256631535764869379341876727868488188475861680390514811222878663685452327958677021786114957754446266512414735333429446108835230738281206912580622943351517224678776740209562399170928329452119521091929274930717313266014919716529983053986772641219446311363229383811237701736132393010591806026717860301417389650986968763813685673323458685967998881991089652337762812435825116196917619117695309576875748267995930896083700977112271014895364997746288066516186328649176955077915684262864465845403656251497539296768176730084793631945352919058605976655974492760275893413308329896732654029405835166376093316816253390594488868133159864290987491439224624688566067411592968584792034556067956623087784621806308524931703806697781465465465171893444208275205818573444111010016209366334761745888178395325551454357294123698090755906816740260499966237177907798005155093626259384099329311492075666184567134725724362428861346848737539898160439925779650448750430654105315409661035741107982293685413863431838783031864251517506338795591287980114598920567793242114480752422912063050619265280890752789890609044949976986117663439117390365134279097447056731541531249622421013849936955126037439416882571868843501717408174383982549425941307189638203354076325817546939133059816073344537358229134927626575657119886849566432712569888770004231258837169797316741053478482635676461459693348136687285837843537997770301557119767332515832061345353515831987453636372746783139805127741211553277094589892338766542473783379541741311960990549459104972789704243875043765166313948422182225708705119836669395922746023160875673394106396441406777517839951494334459053395843642850586505065367827722101287878547225736954771232495812089549336225289096715479054143117350083435618495102621536892994246223891706133111606627556413053285320509664568720185618998449205198726227928585449708689639631583972396891753529299341109422239426514498246756382155171037980156995623607984388607413466114185779365850459943532002561161273782037231603619878544286476581468718179017236672576126941160729874347480877521717057824261185167831751374108495116009319314574628796144844291992903349786112133720847453255528678266419847799438650131093256097807923751058954039194960204738514793892469500925901259850484310199960655335947901878590831683938693153733501579037261189338050008953495164372755088250104892465283864643473040410018471921948513174215783775674310216442478067585524358357057662432834901129049912807655603889957848389165737728350753746189662942946524144211632316186039489805301007784776698388448585312963508866782633899619089462371782666000876891932180077662498281794287346552982358750039090868692253161150204424339966022838822313220214877622612294450944794695230632012326623303608049753146834280281363664371372435165964907781149456634307579790733602853672255869014187628807419290825874583966704943474035446626964548778503105886162767392978077332901049923241110473150345478517553488576781383334006765516874678221087730642584906793046753008348090226366193509950262460782701624773968967802348054890713668177013965002526781927116879730825226595557316920658641893287702352845997584638852365397370175618696418457977878813923998863367537459405821620488377938281905397408808009668387254805614908874129294101322976549052431473276029739606414208889761338416746488652000838074526419487755832332536786533772568163941886851254316385615942697759679330523958600879736287306224301848567711830929145676470813385550859565884975119335231865521817441536581733348200037922049313372536518731452137773095446825347234447058202360034387285087555288789639035726808009396416529857066723275895902539389582738574788676661135473475009200564358845178771268481040628814865913457143125127050242485459427815203369139625482497255100739940253882613144686601539936132062892877280503504416836312399967268616967647459632600562278958382156602301936878259275026901736481249262956338245979409966457205248196160692540930899152826340283903062663397336164324418226688599642910908667141035528076312592710881853716240932843658017383377279039416427680604694841414904069823034725103185557344045599828905130502508428600976990360903248689113965650645058962330399824454820680167136701300565998068959670620573594050750622037985203532160828056810427318896794785751853257134826593723486174567303455706923913056582707104257207449909938675750178581068557608912447551633118270009832043284955915909454337034902866517792125010325833392726210573067376174416289774399745717518842984120605678719703677180375089868695251852800487153136329036972544979967764199124828780440350249929798747678530340461586420482282550407601921949076181284499650187519908922911884474559188596652427642844739611384044295087097879017889198160414517958417457885532311226681907228643621464521648755952076068268711219598787314824562719142298190252917191392899779587302613406757837913599113444899389272805554550615221729146482997812163587156228604158121346438942522428914281924961795707265744679177370329103037871050114717630365476654436954748294592951638016235915399156666215919415061876856968516717789377057155924987215729849411757607468966338801129633634753967617455682442056963409911407594153061222336027209115441636350549302926876546986875058225973867812909181147239989284597689953568243515653412363932593697847088889834944992366800014755899310659291828132437634245091201570641097644129522188431045835894687943244265344750152605034589584291549327916644053616677481566213666471127760747350920745266258391668197714870233099795250108015736281984673192614195390600226470260052973026052944504144895185973819968260850039640707188747625156916707071363642102421518985856630031913075025622202153549317717937055411526934351202803554743791978041483773167968428344807892449188027694292479152407267080574400510454911950713895091387669555187172719649180834264822656707371437733420835528568083053405280790871846874553633503869539083126052032027597195967543258431461350465985853069074899743404371453181177019168132565290584416671085884090122340395986961985599806527718743709431834035071674194117588130102746375594727826095259191744775003649601192531397898310438035396676881653830971860499043051539582971387749620254561722843817661286807386026773568824818537442573395987914665448569711875440785301047500639005281296845739973499577292419300783075680182795832091998805793150752345763220378062521981420732900329988519654117091280327899350186629369736069791481867473463321070491002485851388552678352627533347215055757779522417409496969201838902903458233050782457590207601770321150950643320625534404942040387693087594717142806426003737599707481212601375082299957735937371754413035990997789540670411072198670527573105801200793571004293999250793025700539776705840521397234207949604655618635561788786501114464920752593584987259586861500440559273040283885053636648503892846060864397129703217850112706867079929072455245580878322347492992731841927852145912391771562292567875687443502139492107905526226730499468835301393435338546422194148070295903343778509400341608692293840961466780585503678558984915071718681592157148784184948253161398086709268261403002118253434048502803385623143536832590712131671845756919366701659437767215555508112936735023321013571198013524369734045323593421410217724335969841562879401453212520594831824604952601921006874457142204678000802057541994171022204410784012458674226233201772500677231149888077362017534752902579482568449916941978635164614180419091602000428404685198967972213403999108104932473706508717119411141208338907135679106784212058791337768622184460257340588746121158760140903683765121644847321479321221807739864463217506752193383998745406874630277359624207733524608384979528304891200357196536369537690096221599442611426275282115271551318711474317032530653799540590622211766572746105499154402353341602885093961544704924801007083832421998501571350651908548173799544087280144405379455064020548236193498934469197498777517507986537054843088381354975395234890997144216313219201890554895675405594573308009311754457802176774785851090773842851902959398972593135010665929492342665704839239924051304590276897672545045838813329230882587959239805766957435025193684189455149952783406821904235750748718859593784303458147581085077230273122363859333222847615846890814762611875566774268234139760071871070819436176167260217109676160649267431030400508581700314998074291329903232208838126166561065257335116730549110772529196253535405630815871492681721586796492278951488972390294902323461742874812531021767706160942782619341865931988074643318100573915787581053068923242514234774833926557923695642040743262631548827681158897039168545035121085127970449750492398063460546026641079505708233353943212116697152137712735825462999896353936948197644509713656668023707287115909493072203699886915009252589182158833935032248107281489537045108846729904932375290890083475689206218296597552386740820929847883923799164651349497081818956834426048880820898120748145136134395324449696882831456508375900656184239673084877137345981503673434708568609812342656281749387601347106012292227015553932527599734287374153181280953412439349122494178719697392036401858385726782046006240722388793803069564504642221927232563633897981732152167368387215067205358574579333935907074035286791303897336326224829207331939815996207608231735473898613643371323689364908291601321238234708268253639517466495218448197716962519977820638336038790380586862364549919710711276656619814328425503583805774004398982682403926461597396267660279245691856830895584509660309930801794913523142531463582065917182604596891336744250561653922753542452916726606811940716313647403513329690425885010462957919672636418262080694410548327927190970064935728239627261003711866475199680172615678559451120597351126095328017948943025284884418401864994899351522652016728178147741909358133138316135305417174041747131449946377812537704676171043641101175122802180996068693958881153239410533126558868380696739013307464893157455230406464908256126823826373288942304640994036874472314182481990296528539664497871014023122536031045750456513263034211159323789646476327653669881517082807076918617283165434394321879688250167477780271143831567311776754733927796612035856463352764829849488796535888074558844732838423690516539945780447370046124932522393862471587238170224364292582491164911673655532457949223822635984582665018587870336099933536462814253499275013639393324725346379726103335659642015366688223283340858149255169014106077439329805381966961183609074468075622086263685220935664743819041333821211111845627476547303072974792120526842418880381641696754316236620110197701845294476861757042244974793754675241678263433012579262035582817717315336226680251387131482722782639833317677312538723430248836737175739952190094051257872705458479313924970859412737239418010368213969298325179242303157000122051559397015500484194813953384573681524070105744155647076454620660375079023798802952670774633928327659706461531830972795999317384444663895483256131715917419523302202483938455166296870353900020740179527143972328234022062390707948155841226956150075082135249443705706488146723384896837344774564843760553308884592052040593607623506749343974671206113693636551464384270143092536885834593942332398617873924185931258997395713474897245415519231257544103380157522489690183085851528758779804852840718424635348583037559194957181606226483777124695807549866320599774223173252912605546607501244254203316231639580468557459080875259971424000647408692440059447917871959613455672135442915840415483242831600139691071735604244744271455032330886165221383867808224977984634672686948836024562883490469099732434052559652096946715011678959715380024995767180944328301023222862996770872525841440913727707846683640279051440597088810272276825719119044512430056362729330741564366075296465249622772706178348930697977525866222494786785939215914588892375609975984842431913015654235325238299392778011464243549900217492066550613087575588715143348113339348554431400501849082685419188357573112786884114390040630781821114646062160357528091282374471442567418659452568747910521170554886508247096040653131303506945663146338231049231820316659567288416130922941362161490132626331521917325401042191960437186394086505602729961465534856251304137461441565870410149157504375601043287031535001206646489317282972689371190077780358601583922119367981860553601269244861492346158527007708494087340767414720630009053875600351543703756222593324248285019702459604640050913636938619697579357530694677160241372796019788467200445120018018298022481497155412832539874408629605120843620653582187516749823374801541057870826062525412292236058971655882748826200315773090340517417923697248425744116558889159594110722489368798428405398174495974693431641176367613881048147692784960176376590961024788718757112507845833878988444888550240306246988166159318845384360860702772072456823288256288902731266756062348676599704789163737491923227042357239076041121639897780369052246919424027416298330982600397477775153270651471408519800211058682852164454488682959221425654234432368528346714152616975763501358991135791100433992831746894379731057082343129655914680501592352962658624269921919027584525562402778371028011527710954063307894610800108847282051453692120489604341641169005094958407599926563252276734298337318803905046421183627568143562922408888726485455035796426895510547651946091408150491650077614790009126762943731956080344828839984460783716868155965537375475739141595207091918979743332000036740131020202076645947911994788211762789038624206591331615482430329008318179754365796332109993922478161881953008494275907000873708735552772746033528596840547887899250037022546597956111901730855644320450002557243509714931547361239131687949210435623657188688132100600225881220261264925870214039065328411294169088564684348587099863256805059826088080317198179191521555735036591863041143633467074381661022378679926840398190821508404022144751614001169769038466610876566752822747974858332395068243278305462409986604638766977818794347491871163825751497771179787794259353503610598757707200390582101041526605670722155730682313398297229888899051823024767221126663812932167862012309740098134915040618656629959013308317467739023235243299736042376232576829274672736106265046419772957479362525725533460676707530842726088656384823273910781769412144788115740805814867608102226677472697705460396386153187772639647391325990566812430327296025219113905170441417240482369737890024466414668089924426371661964378394166122825754279485246453221083150101143189723619400436083078064017100957886033867592795365998585124412590015592011774544236760870078649520644184785889621068938875260527067185153649875976146998289611958184467673149667891895801726822581726321913622920580401987066003167797869411967163517114033853271328379357183029782937634477112596831793263157411189736352145632649942131073304262085955122705052021126889593085459153184847180461939922442868181279632564550901458461153612319608929558440467845414954134586712573197823865219185502217453613147132220791086345153152420175889913779197796636871076653877648902205636721925048682032874660728011074580106352293066394480477042807082485598658894678543976943354038712093678205068964671558866047048548864664208824234250473435005717608611035987795429735310825548192519108933822353466421816114366567538710874423814410205747649484536579987205069195646113283538478724225089870875574464931509060706376638846034264363183620095413958964562337153104490554549818910881022570664649635102177582113939509799003210466053396254597542581192647209858860013321785786196040828901835868123141353510209464591128106642324886733156010038205492224593773642667205157710395552920128736783440585785813707052225778863606704696209971825561635545309345772209650906308854279786138537168949716138154557544015310412002402863100126514204671935002817409220619382163093455088941858998740770374234409821813622465651002478715528550695005639158111897196740835205228593216458015998034677732685320776401931350034019348321119364652349421252501449749729919305221936645556289186761796415171492113962214443152912675497656813206119101071509003740925901943547618423859787516646712984187857819363627958703131459435222358420515872004349902739977218324816671861419391497111557147863046845627280668164386940336490866418621107051532138329450254407283466768902233392069507303829685828980673851399928688681837698487097375576747221468946734582542658032120851204139349070948457473417126177026784800395144065671610550311702383184826068481579026889263653421910027748611663045667802761382411851796267459981782956445357669848467524845572971074762276885970898397328515775868658582764245412255992555041564315327835609686144713399808130224840951522419057868114985900920303432453283447311258002910331289198973404597269805822246502030422045285590993606812435434983974411736155611337387644302562068356790093242821791308553346514026890590657591628961797165773162953705899179822619448377133880109530954172212098076705053997046812910065470769304892114247835818731266955036481126083127318075039897531378008893501171965516905471377412461136973761257240670922301703327447544664077682195377484057967954292890442356133676482390629151150111333282713333360367054678572302126288647747447179406023255548651219970095978840968813793345919233862633707097805641554023962437187701227942078815036994019496869818807998311701723538105978309293894267078045621452186163286466294533117114211786409756019187336574104173438410079693409168907881688772697326124348073743499199013012851218901080921558217505968596229067706409096407054563716463094921499666437015612313196003139906910067027500370006730338884265319388352872688495347543476821714944917533656193053184178438734026108543823888672178854666812255050444901956040348815517149432628948238114591508591030345885984042166821480930911661102692199945283743374593934955449514460964773506267005570199455824059930825605215471250257409457186559322658227297838684383170500113256150094125226327139148124766582894823457038799919195806728631551529032622946235219124673319149018736431557157842096476345374897690108220025290839436300597336084664933485276474549609581538446746951236642086524080802167982089751670957718488956798453621206665875089508855024216883781213568669202024073375591626956086000516086058804057774713014995791824305073584250348531124890250472636442270760720011012127750901977330914935037392727919122732042393427146653943554076858160948345552895000849160792497055659837872558724710149579662168349011607969224971237454545928333645675386089225740982857730473717480833949759122408707102463240369867645097086358243587814982218631593599909728450430990048646359519890578223507425849047404026802558529262565529730404622564860980685769127385610112762886002664328864129267933570592154194009613960529072469610239113501746906895771915713763622159979640194449051478209732537148091522177654926783534073130189509757299357254647120962452796071683807041827011820321449864776038089768020792484583813446062839390723510660060791542550859585626946203395759685136035151628000087749993124810271380071392439570215172481213430725090526408180820980757684996471370058339030772708522779643830596662007787616605919210500905752325189255814537930726088476078907925106012662716743961306217244094030994503379454233735954364191441216545905695119893127455140924994437135890830162224522100396027891257936926751217016501759486689928192595536794617148512739479794666103432511521454311465696836677326597747092325320332316686805338720029406490724546996032366394952523757193668534446917051718745087006045504290143452385248485431396059520141296824108784164129147436286207808566034620746600447165928977971756260189544617222667793440965574635209103027003627387361775628795443051234506501683197141584459390685974327912650799159241158505518987905142834596936652129136314265490593238847194358056644226934489724624122396659430500712455122022248517488714345263558038020997295107184521624288775872159048536568835692656617090473802193816688599815071032851447899482765718795536780684697615605088100171178640847113647794130703266936274032440255850317070962066700845598295500652403701896991022255706600892019801373593233261462052431633788144922677022350436773809490481677283563267184079430573327493716481498376760335068209030739265256797172386791284420870222829660052709436253927528440933162271871372649812523523552268260367125270180254016097519570052832950663546678121974923429569962487967647202250642521783212227392155510538820029724072680901214149110102762350021157544496230676469657427472827784563705095259458882716466699092822735655805748988279742021561365003466466724640318203059603077081892563793081849638748958250978505354074711244775092661766222347171386850979266871693118547234739607439862154192083731693341112661878595648424640595671085714282469510396852454851326465847788609747513511702167139354697903152231980613299069985775793816324053704430671535709261275978545877030375419759513284624350970905037927708849895254230140602446033878016989253605316121260955941747092777879326606999806394829459945880401962415293020933560282398478005344699097674891286750603680105809814169762709419963871765307762003415658571074146395134972325363836166036551011456537387355989165057393541449647890249918674294817908820884083158712063460637887360890768084676889741744176114492651272697573978523268620827402094299542106301968731334941997649275646546142070970917994404819532734187174707995817943874168731750641075806226390273408147681402182729528167096505088155992795131549656577773393888434977577181104685663733072728615068497315792029675147220269561801747926383772436619479624849505305888995173660276755649944353076951516089261948126688630262221840835753914248639320594049398683808899281294691294604748730982065298151288370874156132147809788358994359842527286757388781303018796509237675877950495243230813111738266487710451000028342463153077570137795818181076971034012980125402521443813622296601407661569938761633147260145906908190353201474224149086142309133773131644138777678164696641089918039542084752678371218089494092146830180877781344831758281023806957805592007230917499049381678419508836359852966583524373428158788731303703270527486570072212076074746165733496687727413741950186414205381140098449141454971716337166499679528089916825358106224656734211402680663610216760840001372390132233880909184738480967266859671647910027098488342610358031044142473166462964338953662856452335262600988234283202457942965634150882972838984525739188637547282612087461315177155101493019721855866655163940226633361250967081602037160181984109013972796850880527899033044484628546692607030130681125398121746392890511958477899406384891684355276549430295496439250949033383469098328260922580113406269512922692815888387504330393125731550034121165438516286170021604595074139704114636639111744292113742393294284160338319490444266809233686472280230092122881584932439838259018244244232559141946910544397286573652539980419904014098981924732329529349284210130032858377833543925524956218504598178098270820727092659054304433553606248048617888826949696183641329337149162636776591636181129464736893434248158272265359920852838679171758380726363319708224355624311023310733054465349167226944761138602298520260489913964637192844564528817447520762416029319769793262635117400283654202110599006148668233332000693936142520273604539808164587527992608870488771527157330757469406362563950822688542955516677378439517085535306415601688730630643404358009833941509534207449851537071765380869272313190403684507341522273949136407747417247004508558040274687969293762677294764418859786582708212378606367778029843769073585669484096139171989316801461034506905633084837360202596754292912560705137100844087260831420867392248475885111728481170703659583714287976067207499718123216371000916723101665120784553874519479390830621225620258337495476421796276444234575108284223937790854344138261216003364236376182505684131364341738210394801839575597521295544175009792047092899865459002771264296884243043237654774244014817737931699695541595205056082604581736555605093183985794718528394102546378307439780657484967791986607403178108461995761834837759213484661531155923349235053279485275668895526572287999426672043394718829947777183788067412632150336354768446856309176889377270190106627633688554456449151349925974021636028380476942985291169721957637981290088694512749127233742791665746717630748921780520670817665792272491583500179903346985639458647068852477218682420915046340605787242139131175975433600445970472330143621371373341550533838175131151402776828443962765353089503843846943086466755859234569587390370157548158023901238536692972478040322589181077536136264696563033857777909913851420601774108470274951672646204842431745193645006425329695696138760048713036274743924827140627198812321669802028433174786995883718040890970427936315886973291075546556173448048886126808325074044173419388573633291910732985282619920290837350320706001321852649507800135866036380962754169169102294675559740880616036700676343061184172001325995389752835917013445904603006494185061648103969007367470953256233195051481901964369841421701184600965992901583716891183213446450889012655411175272291846498954182610273407722881002275630603030085321968471623664546995519280401111812567841067993777296766890219386565482557543014455132719591501520902286738228263870422492821425734629867887037372252326766878181600871475732361537601515080375926282505842619786666577889643868217719463965289214736624176042289554963382082103117529072634555896221066328883884257187855199276694233932049338731219006916854512250279271836701989393481781094876820630313987070111162639980167331065285709779786925128551317129550325823226163817468006133632862855948380954801776900428213075933498098553007360680854641844199083938765290342710033166991762811234094540283324701378803695064491845680656958864197980241180494127428818167520620328834492481462649842945811872451892106122570997840475250800506921495824708946292926364510379650548808550398226067403036231514604480667518062872132329112958661316699792696532824492836582105556770379699291960409214260553385708037140751007898169884664227478719203446523967762267291891358935321448126722508566953864498351673106748489198951628799864041167339874699816472235023306337643945346480741908367321387958588745174362352422457070144593987641557393529469706103116517486482848165909139451593089023925641034936299949196475027769347881656296105609085705669111560119439337782832909485627015263079947449371320080455952060411888315217344959495269551467326527041825797997991326106375041221438313142841615177189674539404265947668463119050316008297264368203130616514610407574969956632956303253058917333803377073414128224494558301251101978691875499733241864114789429499559283217023605783844204071408396428105182163338744685375440930013225534059104118169936126343398014151050265174609505712628357981122017875397262813596090483250895219835613322384396230652650179440086900522191650542261361172270499740834647155170872491361216274405184816201269139714521208608426137468318061183657751405101881547830487799226961565831211898038646718296327548952883483297469383693545127209134612860237226997440236217031801312020480928122892564075679573660172561168899964840934489346948459424741595973149827735826887897873539019242634907733629347452143232726624949064874246798391072336626039697997872257859679517199485141309907735820546540839897042341096424588514658377686467352949886072108640142170078347448084733170974004929054674287367169941266411841165200018808895064280463796177148538464934800092889189493401431458821205837183329088517232492303584226389411596063316109000065606448436134880343227277542320461804721309058128569259205935704894243525807189521782338091040681507206621117378576141729303081670548842583729444930504676001051148394877797631686727314707322372341639804290512319451705357426444232296438356125847896771546865067511065985001687671213400888277740208709494573727370252595602167012732463563545256358186635120805876614297587166485805879734809530125579289167426964573870376424384127589118766655628733901235418786968659893451279137419242924068919510541203258204249536648835477293344427049954341657439748669072190271296559813352157222133269345779971347855528586948289708252352490429355407882352158858307516661595387511185537875476312333209514500490138355423854202669649038856717131302526756733047700387862267353286893485577902674039705292836250172482511144248174014619571173482289960130864627410470792526628685434782560890227330240760871261085540552055756112074998711111873916729035491052725649511476191088794884236290985790163066087357005141514655163518066778759132558197509491300800848166530716552931600290143790624860615475141611634417279291860876459104638123292212856931473748113571549147198513373454370926487472598283092966560548305494782352802211912977629128602548197848136340434711488208151957242244374843527755508424292311975795342020515639679760429589679441957009250640406891351196101020418095392619689011552228335261931100389390503221694014469786450670441587552850384900953779571488765045730313267934231073376164693570029947614445728457518540148569427172061793261757662914329601399044186039862425448947977421495231791666831892837260210106256699277015288127562787644992765811085562370864703969093156805459982956375141118785943296596133995709225451707523144600689150591969828039803317853742561473794106171544870004761545562726532821953860017952318795676916972488251558247557635770851767214616735369484360320380126379618612147725100933233128228913410677967661344767831150149337334222774115172645041477888692544843058387446794831677267071661519821731953305121752709922579179888377846774723549818957763133486395483563098502713814251955792063222355131175532286448513231911228253822661589217152041633021250408282267179379665648975548193428023361356813011518634681325216965980875770183066554214858329249264275947591195282356092662355171051971447977755634491035310173242549412019098092952250110352302975247242869542303965547317239135347576503772135509726695371890929768489282608874176114968142052208251594603758821508179725963734001966858098089364112123496915031466033852084757686161367561261670902653350790996699156199768189713891647642474341165165506482689787515265339808532243285246246345307801671330256347705333801643182720734349923061631757948264732194391959964538242813116231038294543121903254415359748463632546978596077463898912209891917975178701722943478451998729251449049778735911992040158716595690449091227512884462505774676436905244224162876702055761075633176235741473370079722311206684658950695904907490201186554346893979864126315525761451359799697943584846161713971135826910775637956298928749785521067328140297847775074767615681818988137462566127105059510955036172644498309135955207989168174830037668701236286789996165725071745896705730610676022452402055137991888531570451487451943920979833726732796153803818280525063011230331117570002321827980688384360174971262119527075026605304060753474998774920317514109713983484204666265292646881106456010584087598456543704719798814361151849137242378172766203156628933276334353905995796090192380143891361778401530395430261599898384068478945883102949171109650890329525811955558567341136554398968680076508911726020178620598223918754363830248391302040513530214521405375331617124291784537368985192258334652420967300793514407620831536908306343766309149652990310788573882748749042464415320846923989735299821986830423945043549807990072336494663043671028904414766253666984260668126667016725460566057641937349692621400793519132630349011427621954283731915567239423285430203248036024808547668319893612994518529785763187401763445065954318426936012647641166274412483793259263734230976342050759057498894915166988577464249468691556238737495991537816106404490074572821379475614644237607206221304831989571455950052365443307564441838094445611698855357514922160170998996481632448826656015159018524426273830758529800243425705381635774971396188941192540557823887679017884144458201602919944421236010545894654873191108594481256994928407653362547797238699434341752307462393826371913777649172323050614726287219125265691914923899365074012780353391241488232876817725846387793503802681879338239358017842009121807394416186242509391035826978864448572243818406832774439430970402119568508596526358139960303964594035024014037488434165454819724226563468925134544406020707026097518248693580974251847710910095115673243786607963210688076736185781242074820683482499717942039289907634010159972670375579289756021233547878584335394591770982566677483222323576554037909574952287988423599861189200484531549137218096876725687198253037450623207849936503213027925173990099192030124470228486737969848092186813263288469083219356120641442776992950536118109848770859856192596408812022387561424781728596940249253084995758398995812771540204538412301807265189218455069844026572680954341308261353631809877553068919836552633981351098255500516285957838593381636211807614011239729343599237595561116399453518652973253653831971354480133659876098577876611959803513374267710336160650216963161830789320308598547525885817430946953222909536051695506598014482558908777070704299596596166024583281811128288063091106919029527090075717376966801103495490295270898773912292706190880117245127248600440605489821817505134508659413503420847345035813240001544914061209011842671890757262958295072863587266895522303129736400714638552046261776446169231141985094041983838001578214532345647567257249063642193608546295058190194015035953876894880707041180422910666344798832251187162017564564150092390375790293709203568680522697256243989799279117431097262323216504869282103257603552168518052704922989556751408686490640869263582767746695564151283067540065310664330066868530706755027920770499446877142361896906671470307248277406667015636764363644907002188669101597844960722145172128632567809806705892841879392709943481078536554696757035628119119911404952146147281364429948736159997089348372710723924806716174245013675677191095884964197832563000679050491323610629864469651385996652971520035880030697421212563820952234069616738856204433510600426307128241923753085485465619874285675307618269043121118806469534072823864966228518845699678963333106281294171704168162089526452461465241176365856997666584950729949460947893297627379814122379104810875568051128884497684917589421643504230979260382355698594802973058707353995557778594162624270702938564180896973665050081509331056346092362885800966315357502397224523372413937742732116069159281647951690980348192898803592982937202563512069980554097248021424189628639574773814083998657301650993692073892334489990898480239894361415966684625369915722687405479507149880901847481696600009103485873516505829027847504547858229365413063769215856980802862932577998355333350108260130279485387386627984632777598166079398987371103698095525099031317591426084948048504581367673680571185999002728358519211209474623755940607537238456734513303671140710960975511493412066688843596693030796074846623731751636058371878233489761038759979571290044659296137381893487248589652736329862060428309705794170337780420117392967740443096658909648645325910702926604448341226501259500464640710286697583536767814336970409270330027020229305424203169617078068955088126297411307057569348541292427888744843459786542250523468556614953180155367164082918828684490150690374425499785749767586262781923331097159470631773673173618271927664178774476917972308154442378413951039380945547408958845046151643480564852564396233662784996226589152985760929416439827585472276050781003430970370573358720012733034692426569767251031502752232148104710485223488509654312196153636634510065675573516350756563812460054164916925544070077718755676796863145518377758494644890751115732011222377029154073537232818972942358379510748983453505442829683494040641335210386854382465891752737292300059140972819218319369413469831267471860012854086238125769959949947126950600676395273126218083746237609208323145729276101149784966515815234647987377379918083523704205964123773130650755192834292724155567466366636713577924795010159740317057920322815300868278845489160693579122763882804539581533433336808337834592917313164937397136401081960072268874672177463160291076883905712503754475867937046661662706744500726110371127937621566747249559528987591167268668142458849429829186194157720194566189306340320437026049175866531094368232754385691347858540356684468859677694371983531274238984455508964035478928938563099606189790448305992579867676937438219456522644420789357679526540563434373139514174217123096387872719303153972286533035052401485160415990781781995403202338828707233167949154666774321088604295513857870942039865403456910965616956061225838304415881660930949735855653747073119753473745758122337993872889572359594448473963126375129946831566639743839942451854270995952765181029159114136520943558062937367918660034802648940358122691408844372304261831259494896571161904170068494866551110237546087460148254051098082642673244556519977814774327543114168024740894251365976841908557045006042584151670264900676999069012505453965387330208815392456099712083013037070020959974199508722558231355955233934182565356328215946534114942879390259653165573950591965183173531110060430021672050086613078932637148834165719735850100259255438592853946303892887653621286017684990564283294866879999335319274804539908491215656654089274584716013981493326544683121792648977157958167847064186974215050977734956452724725817212875004226108493075261312558789271936329644974289726975470011511097712102321355262392941708930874294048988719204222123878229731348280085650908236332485286512504779294955282824430087701984670855434687611097674565416153625278849474154085764189407613747046750977963967195231257888587320248926895123430850536708284021041439930355958575087576812940749160743162155081843421689882754895295846952628301909172599843926573548157939576097792538705839244572933214176720140607504038757044967237024263768869365151662674642704336959810780776261408887819149552457758269730815004995154154056302462946877870642974136834083453418253275729385677844006191934890419490440684847041985235962435127697193416084407850085704092718709165311163752835316979355079930696970621943284695140267308006211351900772653525021933189987881494869271602812922248738227627977067053934118616071486105894363421856307889760375855571356811352895440757159536942974151255526971633365551208208018118657462315746932757351446568009736268476846424915070678144027819104354241922714729091307683005286591912468671926038637196095395961332673854050680311431242046631788987947130671066984761099947390775657298106723405836869562175132811563969882779274940190748505520029517158691006445762812373860585213016941034027601440747414873123106647922662269812213080448776529109209487813036751500774297503482669448822021162566601839209177041552781400128867531164427613661061954474690183401287310575779857359526800575089897074392908705951689039221513736959548483055940993661850758866926802795300238695335438423892233746698574735626484216914156608712915142708275201382624835986574479035313982283202649263092333582412343211429538610069946656297147314665611213125607212353953433640967239717303203725452130921080769342781627549781615220924625978165259405144759386922016638695370485687585763303795159608093838452889923208507523676795298174887810430785432707033481127838079202918697806366419226328090946497572300991824894672923306016006981385284683016254457081259099561615993363694311742126382375787073487233438619216266026037327955086030009727922034220288229382503518969358251149253373539081194578967561672572037478297618641872316012371270314631526896178587578209744621760253129795506271271287449217016960626225738414602515993701096289045243533594192741074760212833970547394165010826293598365698654762011881348106132995668740901269458195790317219366874648068194823983404394250682759435121967522705516300755025052376892191533083200712671176155348807307570400859523866923590047406409509599837535012517004254893917589082874626170614490099186453814877641900830676893760334557023748965933641747522034693892263544593951585827820301710786156697863061934307575127700086290167853240199457505354234873263762413816589873452899062949242449449453146368686381649068162319111471844617155246736626853471101092497803914100801087737533119767167327610668424296378635373613210162260273623275124204562832488978583206549428025199498058092300490420704016669445813495709588630514442303504684689999550259130551261653501087878289867333874971906134874818747188564183756996299742817904903141588580592475394743468609704243221794297539219529186686302988206304499125070397497815760637063616327578661324802407460993019080850948428528968955222560492864681734583606453604293280220254292280711554548631839487765579436436813542835453220619890063092785937216608916193026547254109116612720179222415364546535999232917468037920508876198985904992618121544013822909127866470109211734428287336023663976807506141217705384398756027702825343213090855864939265012521551599921060027660994649991793808621327419374555053329712728960189481064192173550356184189923858450023473950742836430526366860453251537168075324333110605209984502381789886284959219414628158262495995645530354831031486652508811245606515895081798538971753928786111304606439040249534415068566442659206483559261327554249836878846628606999283488802358242399623858577362700662266792831766972412987985083700775403203373278085426706058259119469263866833795350127269062005730619085954508016680199176598031615825896899760560775401086235883813524891052565971909849365876587046170329283312496797157265176748321031519503627858894024252304296663702640275440228316416057090399379922250175550380329103394677100298172586528485730848727620507516636923403684412603736040480386686602816012651051510820512623129178541228647905824326296954631113697047313781976036457872930237444736703082307766174697543398556239889136760847192965033765143997187384489466994528803762135314443292688170300769723624002879634520185077702474212476471457500580627852545537180664910661468516682055699212176619385800313698130592044682883102940488614724140753419260766338074161196274955159636550030597889413992365951682993835836151172237728153964019413525325108911994947144358722024996045960166472852633076437747127186186805861971941100555702756507125772398117967363115783856772348256101778965759184464386519691204386385833046282935006104921306128663067047091448110439534597848225887645099500474751651276811160555624772844040715380633518359597355388465013551128875726218133485684741066312469356542456258216029285830091307868432404835134467550447925404512458648330689795477266439999092795404326056092650044662564827853857664021579743758848475226553710609110344881756947920509548805506031641993240799450908575212521901325623038124051536630329817740467684870047940758516087433015301477820636313185771190975070974448024681045008903624250141555806763797549854494040675377688953103758648713789648774688163290807963914180653201214064262390252871688673095185872281779048057026072263484855102828364841544869596128574743761554111962177863636616924677746431556836353296011186389604040522626192624040448212651090059340511507028792467812549438773689654260615917324313643827864077773164772488079057077488692133658025603818550059790367722152007434774004840279707846976619231247028782154718202165806914871550652157508389168253161793326805266842908719931293136671596435681691287664374330480606687696224725421396006992731312589704516010856339723513255194878793090573804039196162316494334643559219854811711256082489055808526498883742633151351713447601749316854960939140194564387164422555356230301213376966306199319968768120637181956505995431533165589021556080989427095495039659371972811476907178041255712637657171981864016815760606573773822960958716187591105078546025891018019384614952048041873950189986949938013372787479916281625595963661712877548265122450207492545977712328353843695098153635080482190531053257961128733169987771497489516838953090701973250851743348280186442418292853011085914538664931634893331604432240966923583697898528318501604670908494997325876934119822338350512605409770026872729296881849846152361271680417739080969077117932285824177103710853622600097626770242811153391603798072765542224062800713059457724185496173067434384751601523081899450553971615771490649926085233671691401099456234578925220665289647957123855715913383965883926447470503817814251932191098386830516411272517501963377580083502083215388571484747817237095565282678163971153192391517851297798163951045545545051136094096753459181339389048207572606333979729538743060391062120045237084957562155297786993289206739668128596473651109322748016709910508288901248995527780548324233103096222001318411189541871040675992560856378725146573650109729579717228542205386960997853098058392624563431916809271831346569869641863980674919210128998386488801726103770378954931493182944653752597562911103272358194616245860226723253845287162298753639635045439747652098365182172589825728035484332133795242741424794292753425264184828793979251683475033004956426972958507177719422887634208157404392976966821760426729364908459041101330333005236323095118779913638900488519145219034087912919715699781088312961573953750188805837185334351286364567800671703774935609272563507838236327908976761360360190933588460865456742603424143405198483918777696363417173440708528043102749233469326947613093742188709161906294353665878592310395555957968546570089103008413594534647733101940330855213210452824895506692010797238504356240088125512573320561517962645514125856743104350728524428219916321278928324366879546738089902393343485508410775584624167309966960807382889270422451251206538692167947502259766453871620630655429791499657279460409325888573197721916671646017605386737234174038783866730376765768220859834137645149836600925305253409691024894510168768675995304719952130293051700464695757651869550766436784370722806854917556364653002117031697615320447686869951621644460284962614511077931586131858287196626360348021923225707198665117871266604994022688301081176609604669692764327061264381713793739223716901880822861634529290891027184304657271458525331172059923015928453709679317575470918256296021359990650859683960122664526725438523093960021083837666673211950005356601594332027688881618515320969553588490566176138640240978348756338108976232633426997734276613733489763909785870576228681697546662688227311234182245075137416025069159861937922351553482351481783339487717273836733985986614735762764322965189240915830434727319746961097171060187460404472841785650241742002612580304999543302437657575764317128963374259521105712594099922173423816150777776199906273639928608114175063905129528895708751162414098766107467816029209614585876394310500246848911471117052071566574327105081895741602125771966846718662660053011344636004351415101911586368623291698933678069852395691937703353935389069237942905767547236558867416351108750749776624236754397887503806575643069480486734055604865300801977122839722997541546534235012993886508937589383033383328653943463843697170802946598238107188307051576666144908350227342585315975192356073474001895481877950445114344650063649428593829892710314493996872797225403422660172341241585850651004033553557242405017140279862957504196851201511636209179782690476645442094437223048637484211814776057028647259479248720727079412227917355568776697926701448667842814475651786450740401404953931657753788236876645958595680151076728653850430480191651810233005551905876358669013648302135736172246870303307137583487781757430345485032712148500239382143530897185009152566218877206734394999981076895694984993542114867519969328368360151979124270876091879969055488257925012163963134643736954284089275614445299136627834017316071267520263399579713957860051122543447543675286042602109595577043514812839330639063839442113162431778312682616948424926498344788819209430341820673021812800354665415915112425739870128001659603645805315645083471940469607353982961776570628509188402932678752085502999063947940471669756749695966467719299146480537979908066960565715657397093311197517861835653107855782691809765865368594763846474123460099769895771387370663899460467905836181536099001208607768354959576457503703920795710835503276579191706665423901087612781744807003239850000261550117551897598675179132846048745181883759558535533881999752710676206841719767465165937931627617361190493493798938757052025941191631173041704332497907416733033120274817138136757965974300498346226581631300623442962687565921968598554014398177622651396188998415704955438619975839264961372309763631568886747472757284168191851418786944977966713496853560309459254576644346180443134085339460123666765076519203580644292024046221417965272816090295052487238689318608222410263766296090999478851633640308675586301144594388462291630703346787037234480949425020401465787536683218132184131346403269510592845707998666810809149351919254961157772552804305500423245908093260765045772557497756832155984535305302615165234140940539427972778374534789245512797337822897133770484474660506502530910194895919866426830180657616660892704621670925007381408567142228245779807881179132673826154105013200629760635162005273999898159952428789872146856979875921281875046344351200743554824213210669327306126746633918516063331797387644206019260843808726446350264304249618958135291276080829290754513406628113888509583868849893210670848568237425011391824175831623576284350659101882050045452318085021500935553356501222794700825518312886477606327759184896405690397715338234855861447706137985406308186973369605449393389839452957898635041125350031753502041464679135439832788740121895040627246627851369383723262621258057854228626525382112738421422168775922154725963727648105602476865363441917673143882636248025502427157185065871641806522981571446809727395709342055337562443217870107511269227781692641429132355409418013710706513942339764128520071494620102247621825672774760156298406096167340904910914451824041855932978439893012408624532588506605732854640234687290058346171123422605850367048904802506528953222253881759789834606923556342652618335947323794310613813425809831584509757104654525135299891292151203608221040377687980810874352738002646731803835300990059302020701637962805089281197201166625955403257514102406269669323685364211067241878310607939751504094996699119665441155760930488122704556692124613923297340265686094258671923531591454410415443671903659301989709214108693594099316441626645633170172143658943617393785507748930389102597263010109867950815083292039272828050165753343032429508851862537788162897835013386335250266446858669119165758387023106078108495339826922119007189985667241765158138374368388897585836810574955480863562339965414601859268341571642352540284379407956910618733959271689971145727970659428562444904835396739255786141748127898956770869287445604574518709566229315610552808248681293218062858740152914500316308296269335327584954286752315025398613485005810914059086262592496778596282207481419804507829537727962422286780606260323677876478188586178578093925796255621863222505488359542564836705035360027840591674844829019125077739544530309138629487044384107653955317569738879400478965284014324337695000849190512233948103397177513427151252676996094353321920860979093472857331478283657898295089464747580063614178715121270491468247862431671000625850905363268950195568239247928051883632509069610815989368383323405719398913859569443111914336583784862105489845081909637138453426326541200733111347071418798729080890858275185137035871630138474878438689317704793072470206108286040128893039535100398140558028663884036778638730733652635396947010282332233271794417811975600759756861255422828003425189252086900461226157930686252471339554652905231767409015867206990579591970814472545893173906458422986214330081528925431625775616627909337263454549657987664876684286437087515748195820278812858264725207009844099862939917961232041019929534122201456546343305032427290916781298757880692043794696093705570064115233175227504961261568276438056606302266658798519953038937243691780414260411732666443405252294441866006931921709985960951495968735797453744275651293168960368258964941354780071149953924709303085538705034133249287522055950937011596102651274414535908245811859140191082177218548810072315943545674277531679907927497721012486946457574844599976192497963425313307964830051825811175105208400029640516279484160591334790021401346109546278991797433780395541330422368657073205097599506400778882196684613043370460927809457137956162142180030844742054984771958419017489539241814677832129567228455881294403262870085980897025641866176886563115128998272573471160321693026908689890870386071509907403921023900278776083984673154811702187904712349911062446154169577403773088076801987317817700556601774915497875714874430559705472754389197040270366901187185726870385013968792279735939751508945160666911471584411370870645307010756507862888928305923738422921581387947024158306784712972212002836282736067315605229561447997915631060215394006620919292298790521766053878368196474882740220028672352786921387716057492804170973968879067675694369203939557609685048369242136005696853378793792937227872635756171645240425518437848712877327758568034403569340729970166098857729451365508977838373751949778836171794841695440015676196507800007033384304799546653115120008762971470408267780704727892444102768474731929850733956424019975072325472424107500170206619134964842787878325048433035193207667646414629884594078069228950367081465287504108546236655301252233280612190209027899118042135461579917552040907782462596132963406104712367021001107340646276647851046429898978299137556243101886694004102038047688760443372299648320173415773451834955676388237437131381347473651795613475173998687352198540347281777926898773643604118076124489901269946901197556440139584176171087978913140326843373172735321687893458154306886732517999672522809767400144851048742504907057770115144820038845434551644608144847092922117072907657069351421974058472509577649469085333082632930333108235542875457972977306525485342475889059004364440038526237356188975631204234786722898110734772912853476758646533932196053234676497792885433319810583092258582591825310288308751233705329422624554763083191299243092399681371060540027402521163255862408157712067450663001463863588925276825994156241448239383562739215634170887329081039156042057385305598916646774927098592727414816038181157755765508581028539426548284628557501008973057314659480062177103737416469132417658717056126079491692543298985119780109594874984445479246699279335541667550616930429942082760179745416882502410831412796871310095441511777144171052529784598070911381994486759102454012588571306622505529770143803442041609082380893797422942340396444192876598534959633439992968799025425686676022923748409481568879045479253100635838373534638186369862024382764391399883599274164539761315544164801894419679155899861216545331820983967468487715664507872998944539813699038307361478064359008804354799389894920348226441814826198021447342932437006647487842462479776346986655406287479162643655978119786041438202665319704880741353614639763685404607573773900749048036437061134438852464390162370060556815327974286876793391808597432833714758968787112197838494099758774936296401126147331857494472847277499396778496954556634276484173164846349798739930308805089243351244532018153513579735374391586741585109816166084663277779245332431185173909175945741862947766145619359336856690179945547463653609953088769980879997562786591808616626459345257555133388067936714853549880329783698717992114965276273814288934565977909601075637758711467980323417126471299965069061479850531972268676950121978571066199966689169050418489137380189782413843959247146422131128858174888484244350872527275880582096916974981623836941813209987105684060814088543966657150988212844208268594185100292861263181065464149451782237404752865360674871915875244074689378607503599098216350135133100661839289983440290310468869846152662258837573463026825742407124979750271281292802161161689000437270230321497786014473589645555108991650801809674918950901742698674334030043027625988414959651390886519029625727365017442743576166223661947853704685756384500384977022664381909674383239617179365725158850579550289212613589742646589932950304812216912223772975524247164395016244418312310033030197653885625386722207324187607285717193812678988230828801142831527865607318763988836598633610978228089332534327689477211994481160069743465568227473413812831493575854886082103539529726834061626185268587916845976475237829574647884323595911523292000583796544834665441900899084574360788546895450662368342429556546276857766177311585111232723237930114340285487788909726609530930697883931406441315944707392165109845982121245383291541323885646988357850222453638224882527795689755680199036093645644567555812226109561631841415882167823843993504071258244562103867509511335355057066730043791730783002549691110611092691377481297580831500131506733091675466282548689207620147478042772162832433388006214882363734886217400365848331247069079713860227992959302908201227092770375251891313193853450171208525086616669291377399076715403426335582054271722432557410649980325258044312533844578379706100768474157167004184840105795179552814720203160761513166515225707041063057568688869436934500108497178425098657627253021704324819533505324757084843878883606552216200156488621104396272059234936958681698776278288570942371839402447184929131710436362847894284483216727942459444826444778610542338523170722658581258120107589164788446614706965038231275578658037492573035795673377119438420762578616414407296792120584742805465255281467564064730530720442612772186573002386161503864656940160809436597047210660397692980134133452732218864881233787007656159373776719847771097996467864960164360046362130376601098816947227107802469592259300924061538371272889128335633181328195671125617279406957615035698553885416389283661402213082869667280222748361346825150924660866556367119931284177371623984247774504586204404103745044599885211374626723212064897347485060362828362639633660789744313676463354118280872320140821070628661545851380636240795760501716884297747405768549087830842218147311697814877613683185326453483429417471266382356061791948615526092456750201435960204912378931458159262657621135065448451090034103990250750797776530229116731442519617270154614836247280990823282067180674027215839118584620221850798223852076897437622593300692147296974396166673574077842887202602151088991176119169867369320540525692436966604061745214312745070529676516545024014010803128175678102498849256746104240064765366202109779087477000957564954368659488571544070606775522929297555890784323699031847383448764684531184687195284670846443449485805133935396296511660737689049593125052132392688944603371273238475076004464327393790204649821202910239428277282780310590518520091604097673546666908726129052460324885057674511924687374673601997799008202408931900268925039798110823481147008482455773413487049686797909777671919420146855299238201000886500621992963162107219788080070591115096485760446235912688785569572680227769563681059254472943901200662373697852140859008874508310714783225255592035778271689791761690868297364957542884162347953128647261998699510670026018405101060544255164486980817246866780670912140795845664961660214675233456882714627329309254992382325771697155537043356670386470725685444549437399334806944468954631618979603603644219250166147260066135509953626996450795281756967550278770831921515615529019549556321459410287606957126586572691574776581448117114174576533665006731367994736474347485050904706009873178831807889289307289978394564252802757993766973706605650427708509452623412913071405893371425947886333223227986054536716325417336580166049739488116383780323211717006325800927154157067681467033936006186614947898446189103289699171413632524467986798119446936322679097183088435348527058067301099125987630915161825900989150789330730922433564555136492573918711879715346604764865962969288755778416610848405219472788554798628601145403097919280830102799809637948960591141521865692834819111022930349631571685066666180422802670715957164889057339752132632449463459495362939243269625462248603890956132580295833660887730347205032291470342722110237891473314568294555972061839380999986449667080556284754695453595820213020851783232707915121107386209121100297613671802759830835014895757297847878258663313795969674442524205916583662683370704288388990998878544565638155842086362128940350445650612355283296277294231610705427388811122866759081368814556265558786972175570664131643699296104121728159473271540753620493901811319049910819674968816298938810245118499437340515477242353169055218662027689067261815499996248604557102124878305913566672996721770365282046109770752159458842025338365004224301452302659228695192191178112331672045056320765584966888157504700615048360948104142159675299231326881286954725219690414292247134350718805505299163224104813599254539304868301123336795453099701769048441628468580739704539925023044474715576553466711709590868881723034745741492140358752303764725824475740628706186917221625895300241704953478784411884975030106737167645859661528957976185966058152777952716259544432776631681547160540581063695115804166767431864981120601831377364041151335727177168085819348049949144028594995387642760943202866369779694466690862966896696419819214833866110933958367312440979961932489325155094441510865298349610032255900547561516477037675542174465158860475254885402364219167169279804873911986302203350452602263425918262500007859651697075151118199240749259869620286350462072482912859168053413087132944937788217786791293102862511316077625310498536730376367346556137608314979697211745161076502339891504940360952481400350449604417555672014692339618792124882727338127399276222465894539464263359501159532964660237170252413010657754113826280161741745696439611415547829641158794620143349644219256651962805356902057577170636127490408579973180477780582153009501248945051605427151450716445690610539440010646168817847213413686929270375905733957263808333179422373518249831347758924106363884736505061832939167071776623466348861108539061294820802262663622269878015058344014580965913884616841725328508980790558889873158269666816638137072011111498836053296743003227240343409923445766781275532974233088685515601509291137241174614941296309497509682125217420892447749653149527094756752664237665211738884709102389249063435056217651414283932740356736260648557795002377293664074136727977591929946682595256014912246749103031859777379355855686141378973035114471322610612017921535255867469365533625470455450674232764901388734471736811790452472735460598253738449909093568697257999537662134268748969423229858368739564474836313652476516699035187229318349363268055865676137517553852488651634949441050207189313765530321048891953722258543336358462971703709695505148457371666271019116614776416727046840038012592715967117225383784764485681165771938826440703496200327625259495983610707092566513675896201984426290238423161149013392763917804605739517644786832567366577418713265285199261990396767033875656967980997562437089775377311916527887765273030510415677841255376710155186634056899163523297863138639460580809655495133874048300756582762827360614571008317805279557546293724659713302315601631243178935130994017421946825902577285723421623215755411226934917697748035222833427801156718989174261939536227140866540138841594276505123895438746621194922528281627980517444492470295382624155438393830760379868669799232468886159781527203422748880864998318003494692174732482435096716519512207437483627770843147759946292498146176072003864285118020192575560854566423562454577915819807337933866240066031823790069424002271641464879772589616423760094383673147911609567400419336776154971137928669737162843387337470848941035148049902228544936853834774327767599352898112747307424620294244608691757083269997020193679414115682032140415058663361868215966174798178579630837874146611098729574208133317858942341594004668901617306731622370015181822312478054642905147808418576157324639149040387755124687292417901292138281716055929781126298633378140012319458395272830436460834321551019862505241734915806407445665340968374067242013514028817185760813311024048336879847566730219505254470228545167332231521909334217925975662693069319085243046211745965961589605269751855806765113761488833324110628054623374374850152308564428817334717130092956594849868311438201110578394615907034525645307775954959904973457225070856592825741569941058709002090150529784333217137259633753174357323249147816591163046925438793152123967558764399159309444716116101568761437532921176057558144263491265252145279779682756587781361921788260300159634965171191686298389253849763390622016222397592742763940437859127446150146542819932347738307185518298929501560744956000847667398932635831101695248156199965684977692914841337392972965319500088456112052440445470282594121437696273365637286349432727952384287523932493270034616087861617924736939719254058761509047580597435179060450970488895350823367827811720641546152742886276170045021574657383977257336949245381295673371217395768604632915536325873496893500832102728771745956499989585229809978996451074974613300115382297529600675156891093051286088526888371060468382454135405103922846776074293802484780048556942873375442046805720840715740163417362838002056108611096212637134240510177996703380073951702280726946089929788069801960149614507127802364938063754262948969701972382771000284698548873687458595607761422337748232643885254838928340511083835198647309014495275140977536927949244919320238563979104286690763687250832331755236697364741942898817513343474423593704771383837149688446585528288903319509501616806100469553487066954655279218579359217112971650062496104466859178519101709226636845554076659244332679887293054965622785928841843044004762613219103957078043498556867361098103631383033538260512213225765234004877835895289302183344827840558840910647001453314421582154079160064082820101681299087588678644008707244173268100595999773737648679890769653908633760331605242090177181435369183939311213325760409424373312171871024939071968327568588351947657634058491954986192904893788806531895018528346188054507261247214262919865828360298191844285959741440028048208463986503849528693330604043585058740907866409163041142407736660147865893836240892304914452705717463966442380533466087743893446824939642852279756269847787068405890281449223881246623856656758425160134510230540610604752392391131036609388409452879123848780110730309227308988004499033101245684518837592448931480128903944888117766774104402380593058997163000970489065629485238646406583199526394159683456684352494122105891313436835005262967635009046165813485734439295224278872634697675075479515438171416341188802105556684716406300353693616684556264296085155291646378003596070220475177090640110683084214194731325856819293539677178909082441593929341862130739603682648075840137880283662653209934181499210391993602468029661203214698061945226864795575008675286812055768627633862178400606007719466598945027779540672113158259425549443431657621245614700619226809292212233060576055450895685191002596584000728400487819338822683679201514353431056542701173501563877131293553912948016451638892670459404775877622012928153767000162874906723518268352491070836298404298978810523072649476511742675432726836109338452254050810399216864171467532843827090352573403750006760997565054836031816314481499502245081491698671781373421960189370110879178621119683648474182078052830517914934524953243489082167136652883552728927547286394897556909369597412279550809132341185046313736335238459786303026997459082626147555195905217979943302552808801376841973222197110692749340838335110605620664691158573572392851775158025995946035828509548294704619735555886638857693730866624508611942549298981240738993903631502856543836045398336048865436706921949889056670366641251971822767228612224819647209718163412869567200156584780720707936043498067299744840764389035381797990852560134424132372370787806639271298526351482666875344304002901952099042789464940218821093395462736751209206749795104132393376713459465000255461501161743427168372133127221599668023855185858205423550639623265980596471626951008390379239933411239459928764885414750771017539963566683482343708444931265349303030236945882668316251758234570070690281377477600897379093322845324903823826926535160115715780737445441998551935235568266553592617573645992681946296076590854535336297379414567915129963058978427941973128333423752218616099049110923833994667422938751216258338112958942710295942873559094946354457088662481537161263451317873163617382927052178427373742724391712848615995559279818201359780880411866881410158846902337961700727066706216228563663054422844796166646055086637329533697853419141176824103864069269132714887531779828959205200558051268524063006774812599920348699961350488385763101431453813447461935198121613921156116442586584539324425758145886879981467234401167637133609099395990089216303989181396290501966715028281965558814416265476117685401135584741970261632880607472058419782484000480839520045387681047642421457021516398774563689820277274314033654081645060548123454291616142136636811746509494204460904201534189113284572992854415541255751985636206694940648670364673444772366342249945627342197941045919591478731601413331067118316371739885943208649138355633251410304646271072908545440773568131390116262619438590282173276194061761389243892774973012716552639712132321028113194494406271837174765444048356932295400004664580315559579511240960975105240140634239259451813927131801969419959941332476035476778932385189082295773549276123324940584250138719877350665415696216857964917364572866214310285646019460510031798227079410917182846343073625492617548512201296776733789167224432786654320698134388476152852322321696666209930129712324033635868058886456078958463215393127596030462590103461326595493413979433857585107407935355360856521894293861484306580045088509755660104254807406616592768372788851984066879408977966121600776205762169647247519909172137674485787765087780685073434371737838494028875772392910838776105151838851733315800470126180634828955310903620860660265674371618864687967534828534644240220475709932401563627268622923475178694358152924218206926676952373811423483473576333663115761837170147877357558166335821556222884909831342507134252956213649533899566598233868156311608849289408117064538531107805656572110131065923763480350579753668099446400764719849035615970178324791150514968930347646561470670556938961170641235538910433906510373037968123117180647148909304872429024613852236705275721897922778631098157217639469911447696767250123811471392023273865073768785282498709456205843681717474208759540225285255437305095219891086361050789894340316160502126926368939082187905674753524673153626029261217526130343103087781453983230731018508662597462371522911889068187445565220125311998247499354415613015539653055219723179785915874232489925104196817117898781731363346202140656803145071879951554278846199535951767399788842789488951196908973060164138909312795078194252622110289014263596170205163300188385569695206567613645770488985001850550046978748219261692803967084334633504460134937538870952585230101492406057267252676511309273905403663057858008892546705231309597515946568456983685767526437111145268264012560424604835488416028472705700130434742194488759280728104500754190653701553630320233606263607244692354378784492724586706879888841625141819099032600520473325795280726271929529768437917251935805560814232131407126376674685517820222789916836171553479865214707482592085462397160729574608259663252511703254907285224369107468099343742196415814393062821005436138081137197525406986505153581710921155370692637997058803890838123276194727407400792457786963055093966736029230029110151381341851834158329762710245754994468348417992150423319111337251062322551060872206393529904303157366521146529510256369530715883057964008112988594565558088706399895210630479505400169537575839504537791291664095465605716163816254304002017490057523740691731792793994074928032901469137707082125893564176827798751289908292073725996393153492141899881640949742596442372874997197991063331213026369249219955443598259871781703934570707120581920772812693346425781367377677187934802885133736259959210679895182043559925259178123826434477072029808233914313392782656180834960224321099995251506224979055703638278739592764375890788946477641054064098415319335220782761500313401869786230727491013968541701433432770524145899572692384717372846679705063465546949898329102514248388060065121611211519995898522341631743214506808312916957896036718636651929256754617344764604311544624160710047416939334626311420890903691843954127787035737840474337135676759924695742181316276212163110048913592965392861884068798314361340443886592634576283948782920449537651120732996384750956523779174219478504134114248757296232050004462521964743838269358392599281948309311067741623185311636731512740794520981852716648801539390674131843564902101425423310551542707675309198722499987270560009747319173677641412535980238232531408824403762634407759487456209605971240465715687630683279958000540205527223488368337168700269878222666819791541149690350685489229509974914068250885858538427873840319599229435345893370216642046402148880287530128744876982336010453839183369312488168780253644214132657351302630712215908495896046744319529641540499766012234724106422717556536671961510052933254678373907600206505631121194225126619308146792264336077299864114713470303719450558451333311940877237095662334612069957633494745831136399171204186861043998207431809600435981681345746139916023050783191506091229238145825687695398184969081107948316546602765650585472814748447835830494617984007792412559661480010893512001632010482264024392163237630291854117150251403110408598002990010010359601618013541313477068229024663485393691522251035718276872355619741512567584736679403793093037991296209665889737282674208745843904905094459455627143902920869846676711628631786247003337079432803248666320415780609065846885968962760292272276025371803930825647095227300147305432890621195358340424717870481329949807761196335312273013379450487359051297736290113615690844316874649372643773809655069610563182109139348789796561971124526986235965609038259719197190760860968410768987197652540151187471006224514607531802786902654386645602884231634538089653641655788397077498266384697977735109134406768967749924807063552511828109878334318522018131257435495550576173208604501052273755953008936217912880438782321839054608333070563682886601341274486814449200347100816304147451538706466758548867743613580347906840886721165553873878087737544545233643514594168242494453300867112866497270572874553184957824513148408933494627721744095574696981124557120859073918202119074323228859285292454924097384083936790007718433887541298550221372028225144835708545603499220896671277104164781476241787696916450704487548524794530007716482148483369923998102941567380276016522331348033064546429322838122428464445244820398788330403788183448867621241888709455172903950707490347649813069956167699891746108247902964453617078953556579710977445803568311858961483830019063092833250801750337250913586612792187302921195000308752333310395963645784368881129852154748966499244619323493999622644059070978099785438810890292882702856751722499718431030115896312715823928277222342729623511192514571194433350893099588292887720043116375258217624306146152109468019776823069819647028230959720649263176484848273855701625524890335662910998664716590341497572631406348193487716629121923260653998145409959458645688308448386740372653923483038889865065476998659568215469740159985299305394999525617034634792543411852165313539603896363869356190579032161828215658136451064567650544777268153053751437002893213815440003906594493131352339534541271779794613947330559306312979999260612447277018925046149962617078669608735292871569200563757696263684585491385903806682687170062957353925991649540712433256685020055888934038098884759792224312271413599161929583727587351805026889421779088958686745184527387459480061437943064937515570973148846577662426583290250374998029423799050091332033401929683946771886609516221576802418189802010622590659254493091773605092901113253306922352428783237228690967070140186102490671675714165111636545814084888820930597564243070671133896558400550118676790552386172542557580417517379372683751407903135973599870399079237007428944872146061196797806551201501136371998518145088690473381199568184075736150217743797946350084477898274033736317898736333302974762151133073917088203305003818595243366480046765492536946730740189145006915497969589373495282053685777836516989681874462102365892978385364959671922643014202794396751614038258782389899140770810201152836902971641432471999470421217736478433194827723229417530372270433328604886643469439176330625891174488216363633442457123281384327999037687381006548329806826326657932018227033030935700572955395206760843600173319568921622907537149750319003622418221798078295607939094145381094720934105931236524744348861638789633793074067685500898173569815779728729604286815540129007610615142577130884032958814956385815444118278755712785137777677987447480258210235665037085173416890686948033143988530137897821171272154476743945680898480041587596504807883103664898150418162312075661865888859943700200754084963057778505955715854018743356288334005352118114157430103515242880197650676091933019904405169036835868484683075819605521034790641621012089614122214407230381407660238258102863489892680406795600494564069091991938580361622875388942458811109236529006171636267714932917701027641185265828354326644627455358949341301673942836336886590044797484856306115576644639956632246224257782999912849071429273163694887602641640975122941600260182115387721116565911769238510626022209426437867949794109412952632168603964870435423579122802659395367554386044150021063401973299585777995966146546165429301566114665610145623945824517370206569012316448787786203331673544488936343507359721718928525965533283646986689258348926046925897506358500414764393501312980664780568356889644380635488209487507510253046781446312759238089921228050752686496511678164234640383027978318399576893718218842453515251058598365466603292487304638394871358111275970196389007499807892574800954103660848538487765373455142735479952298870033097770495379490653493775874455714291357894861302715032369540280416980660561882240381309898309748516979994068145852056057724926009587699351952908911911025179457946511430117107145154193292613290781278149537045397840736964705616739346615991197426760998895138691162189303315841245157887513541076549870614673217285624330662807265366903301511029984337816132711516507466973009196626730597500864226366282931233025768440757845966065161020365052176308634252378615722140991531468594701834945835251534499878726983175515440582025217910670585727668612276281399894854513321993272549804449707015344248597541515162050182052616010592659793446908336277115716930105365121349831694798525350829356178495027573014307948434141802729308439286851107586923185064866914011978221812087624465255720601145604204744546755571638326778293599593123705136233250805488652943897160920852310744826362756475195374262593600577911980735167608640206622586479720797083779035706339223667859351124448361437983200001221002028149303090567824334567297061895491779541947293734570184475795414940256971622737706945067199425285122206505266141167156871523566874965434010481078264287519244635935501509123322014363837710106380204804590649384664902765376792987523046452541352828411210886797391809863505800866893851331980564708800160616212450166960389750621927397304943886491198403326306638018608413799148227860321044432061329321833208484328225893747835428818633061138772383354643321805330141110504355864061402625627994056190109171683187718380589771558038094259833273016273934777788938490399280421732730496351071678925137111845841556330698962474016278081250446794541303352405678752773127579925343772885158539931232100904548134870413774327891606317691326515186993916641000736021367737840481070019626697586830960932238366222364277330027820830201080594932994751178013225494320785143504709433251132345396164242581731929189548657627139770993881479586869646136697284018815158303703045509888705868047172970244835685779751587493221397219309936123613825242664270665594498795529145759982457890646941467240247053259843161256708705738312072716485266429476711663111802464285475328156402685808001636478187460525130157378485416292029647304430705240448199970946927603752251377771434502127329543273769721886428962549020219083555358246248714367084776288751146441141781459121381780884032911312256552175160077330243998393179755844433592288067267586718971000232282962222029272228385732970038537035885124544865322804968218886515825615820281411726907764575675261415778160965770148838205154552505064206237787461989738668407257792952628774659292936298537209706007378846706611270751173973075466905988257710747826736324440973836087559909807816388410780098900749622721916902490494102671722795585203489477592808940001940354387205951247599467116272945183260069551033031227029405053550236161717888581691901868574300897166872092696687573646471985653003973911521510038612554748887344114792529278432128341984418445763522800327789327137399329647709920778775714963723159674857022310768065410738588000881678000357566488925562502184406316796208827062287692844830171090856663871077437562839503186221692083078498455026830651489577992488940506182548118306465294851968629488571581897926839105872170172289743273163429688732086631909130497595848037313953089025984236985481498630164468098443898172118312498660924881109059884221612568589977559899853480717707582344366731771238805393061865663858656940513036346862304494065234523874405745223504688035750051945756919159138822268821499741329411219654771405848075892732118026553484874843130655826550980331638848138102086706126011274203623600559604912399545715946468440295630599604419097910637830721517141732924297065490316274365525137842888367775203378393100493886846899494252444504630640223142404166687659971019700595375914093333795024377672554917840961821043100079972204586527122585740391127380716285442275737262247470368375942157904192638536781420002655611832841698022670281170051058204781836206928615971238194143575513515815306544856507491698301633155294301382934739411478865330356550608128539931150560281076230562167827494908655697919703322923347017154825381429509535290388196067170009887627693254280446022812992156245703553913905778078390930667687869980029929332275864730617512775283517541142186978016401688244845809968589537527987450745784464593843607289603713764541323400267059868079737935541314906906226730611718491137001212905031153767301580600651542468090020520200432140717965060425708764971965858074514643789145059451856682090592046717725872141317896273578380637942743137928303369919529791487191422232670064712812554118953628540082102908751128260736031111683440264180286947389410635798304541476704683963172124563561964781938353884373315745675097736796532667500754696177610096747481657702786517915575655092657592463150103401579428308615204913081211421790059957705645553508530203498246716308959212315495927765738014281618985783972234666978446000159117665385261182822196967054911058554630639285000096491001083308713799753831895326391864325961720431228628196968684301902382676422858604092056626144183902604843537462029696114068366478616368660347452147789215026434080484847312490220127858934552560676892704635618711905662690315019970661668263212994571876704440645321454026827048708229344515133445020477227711810298653869202064567522340928038337443098853724878584728808111814958791009692071175745938589581818935081183293568881184957943525199546376767205400473651444144306278010978854126607894184510511978141397334377236990697202426722088265465646709699576823433176095567995359211911747830719487818127404104888331941787174180733411619287324237987340875327833621990927531175477282821125792122301804225929004375819437339761985253285212746797579627108073999671218424992857635640185278993555970018667099074321594884757051228044661534817556371878784173564041694909678213299795915368139144217296172886277823908159989882721906527906495774563791704557347753915238559164412996518983810431454075735987327100594437641270845268618527598485718793464382487963158559000426267381402243351132015571780234754896752936607901039311887535073761342691444368868354711892703590230514393165949008564833202856346310337108043243731934251951605627844012985645477594636658397615246606700020588103224321140745606322650896711740644362431756510372114295929395557700239741023561632875996710609926250628626761384529379240666685938349476653950315448425748012704866501499162172107110254903235674474278460335816809991975969497201036874565296110980087084077532056289456574274131647385771913496049871319649746775941406313927795033364402049432129697981194897076387370224326284500321755738604929138716965832815563038763702137866637158266736780025316958553334590439080727541455628260082625025938754154241189205411765325276653002270219025823162744479092556337393465942307407870917473136485075125912704863082543125213619572515852496321584962554133120118402850141146561009917329734458778710286142358371918118832559830844668489790397145894963894402720928238456576948171778122993827460542076777141193627765615845719625764517407349863671414079539339739182960823509247105716313791282312435498629152090150081438656445806140377971307582108799095726110052782309786974648585487111710081556998079252393429976397856713035121214819594584284973273360060837333929718297761487276114472663603635410167405893433914384550394772857041866477566166690650365938695828498951664776958706306872230496480900072291899209943626724920052082240248199740921682758694944445734694855931898871661403627281837900027568858815430809890566063615458644618678854305695850620305098774028271261658500222158033289533207687844409575996137844331605568385474385674372772286343562655736043163169442999918488108186185199564979530562750487010342766044545575603379201692857925264539965330586127601448418373859182818366648503386783095029320294625856336622293309067750050721566132007879636906030663488700389601441718341022015822550851279175752973333329500603112140487664569635976005836675016476563296806314038214938315631952072925115689075193649199229788384034909579398685922823658820541687886968876404728303359067293543202050302777480658132447532716158539891682463350778156076376854192777738886903808161141597073981055978791793215675004463064642191004791986045999788988651418354166087119555455527855382279090532311204175322328870809887220981126896568190671444649599203708751777153093113794990795233733186110714671568669696324717739844770425695568844135186414476225576973587462948010290753625526426016665245732205789881821555535936776004477609145016304110846674892785770968167626127286136443409917589072151510839194297433154261670679810357517580917336828743249716925931185461247953791828329000456854042264730115809040524479454648823749464391755208432285981336858107555212283781617670311083442828697519858696797482831385382823320859766487444316523883755896940973785221485572258062544373173833975416314386407423517172910871308112215302412933709903657794040962137680330301122080076104705076420193536197051418950066705385357442707121680648318307654888539276294846495355911840456646693654810816701887912065340726492414952113650365232268575021956571545059952456876184649301469188138678944123248777401296347410885556512652012751991929294472757762635126604699017158614164658200177328421750965843808655282202537612075452126375683857632536998368445410791128029148474232695397141289355220078849158724594891500947481287985306957610017642043400942999619825707345489366752362018102476898013951662564112089943855797334800016213275021304334607030177187607127922547486416699107019322494160098762874015081394541785367065984346577993340178806962761669803406442296522628212142394382726225903189796788965386256357212375912014454917017287970534086935086898059184296443552405310387987894462626801735958779025386260259606105803179139054198768469785275613020173793754794955768522927377970453267349902666400339236548040843194069808308587480669228135825183242875410867477902977428741002913182530320854968904812943726899957980003102223382822117483802403660101678568576362678581001667055241661224238698930566180174726899597203868503035029273179189288473890301012807091569768371380556730585807472132943979305827694295907763843344480657812905768010520801179955653379713182183159454871466739666512121920525278946273422841343251461753561352071116923645610820719650984748215439610493255989287374346947925204259836466663918231937437540829859029774101763508218035105263822590032198138260190438219700109028061844660610388804403118952652403134230541407631467691770078529274552074685052955219993843369933498840249775404002425420138832958920263156348525130486366292077361986090656339808788504339437737749300924474244194619293605446759017852784486010075267656790405435139282185241346322984166017026696345523719134288151015608488900295928188343963323020865983262052651776998543339318703119538032595397778606613526140362919375954362410480192560534363360974492231890944091105374029828459802169930320886620405996459015880354788080314646523987044406822129231481082363687859344213503049384811426622799138091458097407037848038433497180934561345903474647894870661088650975166900886708811733474107248876033077506420297942899929269833842976342683814798365351218568306955711220965173830169670116866652310187668675976943299915609234548514046322382234850018739899594407688853084897378708745455194115259200070548601013147793351980701246570573801998639045861765744426182100133052561877982223746570475230198936701042669476296269208651190077689384376607521814602705195207129790775758305084049963662492515986378089538931062275898196106103187434200171199227520841881180645602673434686689491190602954740027287740747945590947126493683840268220040362283757794341690277255074282814370882139921874783240360128361668313884367637689073071035118357405776574762205196054868887888173710954449727940167898233985928909688030294846501560195668133879446749903647871062753824187432076072134195547853668443079736881059783070866913201814699070907310928950411262940059721554111914976229632936876023736239316240196501706918345753570571910032745137621014691943135299064047386568806134662344830564458328632143540231828560633759152802830988116921863844555254975066572762575758348579419923257979078131873557111164944438865669262158618331285602728062157156038630054184352603148728419464883272180666855015907285452676928611301819327174991861480085577825905566076902564291578175750029655093617453963166731333847699064790368139220962371278584755861022880396695913077427461875644983571108854927243513255006503755283982150852570391431532003035012988487906785791369226035846853109745580640409401293278592272611775391070533351125455423837152088329299286262874751559721638881591869430943222272743288053138173090568963511332295566031633091605971648952462367437481546679034844469106014558485088323911784374601197476185031059689685778845474199953141830903598734539751478339498181929611040893985735509430947882516138167010693202100375772013614662006199122399939783820174934974921044675075918581217700822748424499955744171867149254703907118943536326334022721989224666847576727940866715332168291684208357061213774476235640268597383816026466687146886934765136011315566661554680436714107784597378849065428339867733220639819284854384784027238267604076118213392997510901111822254567559637226771030910960255851508992789654694988190047836135530604254642622824437444838099395166485639233693224470349649351598308807261795424232742192808499855792007818630757510423746718989449711094234260005585282899880727210959195958425325016683590382118428032612944365841521349794143941614096844616156737728929640216786344656959946584626701829615401006824905751428865617965839630080828281649505784582342194637363966975373319250847083703732949731466420630346128174076785389084497302540186006318042042194904436068084507012097321543635810477552568700894182224198984910331103823745476510770288915575881366254999560269240657020741900965036810856141390899226665124131274056499653875530491026923289132607410999697143371300061215634614710398969650971258238727188698479921177062272015450965937884335945258535561291071664240581425568210241521779227195331080994325640746467276932368986625476997231417702429754105768325532784115925846698090450980214021693927967790485787233482927150346402128192260229571658518731882092586201602686012377704806403325122708035028833265064076638471772637474530423530895979742623480792007285623019545671309142045902267176882597358374747449758768677092688911617877813201458232864950978997291495664304794105961129857654917261060769763285745011408627061919553907340138674073057389593992391726574183299964549570471633713461364563576496653426305278189983469955487128046308449451492638096260998991294142758998684474740411153926287412430021844995899893528693753042393032091092677585929576262946651951872781168331248434517617005567970947940892550084255570866947574325233680841927871637674542429371881668807323648960809168931812775788044500900225360242140523258171885686896330543900234206324224128918469405449780296855455157449563149511857718303883712400166699792931463332203032462490151970520412728671273163847197830572776680571866492878712415087563518501204924641616473346317353000975275477533585307550988404610901523145309792166942136867079719558291209075843878336838881193384481552164477867725488980645976250581130239212853108877517571626714810863085907208873909207304723311407503848304448833852799986288640530646033704270643806460665638728872437722926349969183789197889401358934406811239300134652212683229910432845303106727441974380180468980852171965107664963629952617483986819416465344426878369588597263938625962255642681428424794634016512736934580510012107607496209164440995646987856575611026692877439934004958443950597041928751551255957308290157878214888592012384642286284239625166279587317803119166723415117186995099371319341322417040466854297769183423506012373528611586189930488400856073582198723752541340827037584531481787065245423666599772113887100511669489158794519671157848141720404972689280531129051900996857037431744192142176357508032811378959715626627649184920391472432743284505319236129549281889136540555055074473631757542292901102270123935741247506321074502241011127099304692835777243266030862407669067931870803747234103814919258220269905357350125320666415288543446923157370058387236028029010782909398727796220482231718352204660871403285014773013744369052052334161333082966773291621285876960565366888910580807173248487838290653425967228510494176481447579346958493633314271370294989608723092491637725290008585048347185760300729211884491956245803045134044846245774224696400830988196595174438649393261665103149229109843932070368968052265768142241057817750253681503690879199894998750489389936926700212577067483389107943087685198326600717753585953792438733557293264813792520686548891223054871343233924267703565982667637668077640005499645979417402621647301515590443014097222800966534898159929053198669578881062689861549964574291241422883084097582603960085320234675459047539406055363219953909423969759800649828990883530128207358201781588963562541387859472553241054530880409566763983150826649590928396428093335238857687848846810353539928058718776802679768527931664927169275663532117456217735945703220968082592583932183615863706039798286549349033849713251932068596319747608559522483603749570451610209808671477111351538187043329735830867982494582180718580614074356285871997665914599279403331329987436238943909661467726120253792428425686492310508483708602666841797487681738335411376367534340868734567981676677142617312060453846036285592539167298368485748140577531234153672134975696970742637179111868685219130993009012839132195610935609819363871318466054089288633276706398647536636296237867579172504183680849857039063669047271143586699569272376898227416631367064826194023342793293798837565828504557513555381741857464818785092495041180023100503946374760374037214665835527808941062917521075114988486715953516672972982998275142882801027322935994785368196472528808793486294645793772456751218299286741513183623588355377605035569541158696944098145804720933897695860368921251234499910880199223575088033439685935766470863867480417979728705598110039122768903117112294553448713069770636912674670013480222081121163197443897326237628667559846087309692289502808394820808458539697620722354804470842456362968900630099915787810871017157162848065716326798168399213298128721008778730950093370627601414800062532803139814035214342972314631223009003936707600444938327923469079202047827373593087888297446962305456918985331345136162777054711313310273338464381863612779947906489386834957803611241047766481883871133191075689856954794248773572309380460303640352336926224070836509621850946633287337401817972223071329221209281279558362644538532738168222864663463915532375801426508892184718681459127344810733858719920567382542068273724557871217473749012963750654456075465297562382806537617055216444473814067977345601091508931318376180012699814355773662199800746020486593533785725216048732769840860955139613091800690074668280237249335090184159132934257945294731656022871806619524956718358616299359749121652640504215309098450768859978439621876708528728763912801103088680020366833951507956926209767104285995032287263583080639854663131327491713546137428418670848348034943488324005698067699657589555553967789013652187734075531829946368399313396207920114099564570460804556029231903637153697759628859378293153655896487130518827402276115772893864730571153891250395144908385075582255886228222332184759515985400334986936848570783226168374444346675948558367541728164659833019717855557069150116465229821596813590013510475488904763322011314057274599702780366095150304765141502693915958997410946177689491622948261763537726886095136714671084275457535521910094359684039774875391351266625778022334020351807443557580605986212759039864107323195468306207084333665251834674779992129265591915386596782123224514485791429419801206738234199286199355415288287972359190063260711295224588810169031217420240610622386484483768736004538782863402996618983272986728140065771207952653704855595503306185674393922268717778104538920750493042474216321369468371446658925469878757877174496234702667325953832957181911200665108767913330247350946765342856717596924561307313755832777400636219150790349639829632072923123682212624808059043382563343232047616654941362681031444376869792507541658444221399195047452877019015029273985981531427900258335379253051493515182626678061519297624196763601369989031613277110539604517012809324626396237551759325484907187751654126527603970297917875196611705228001788551000625115145062144053475968305114730498156284633438269760498666276990139460830612331012269837518183074856291706818562209230737646644737275051918526753252936731507318693555592021903922447885431168624226127663078579799303994688569191232184514342060414412244126904074783140543949638225410084701786279768847534670627813141971555102613865083688657302787174605231727920116761837220566140176058730972596756772486841082878866775045443721085378742679558444073046192539288571033080486183231291655149894284416350479381441038768150743415132680874627336428854679114548755458586486532997752301929702940579660501458760873535103376241174072548424890435087620986275028911422023695564562979909640930065246354646577314572632809749895178384448205468039016183203927473109960864103145553866957368372149368310632089049342545029732618133948608618204750928111068862515218885123819067057504185499612375845026332068938314329386362360266063064859192307288208080727763292343674484060319236944116081614926215796123800977439039520805808066146309409878489900518839447564112484459441399272027954273642440787388955226320674585975752072881019268388635344075918195116175787367378339415780131340171555010743144334422383671374359363438778193625136535114770295949987086206444261404318915603826448151943489315420330398688836882020065098398214245412405813666282953634807544966051305913711752219334143859672489142339510147648424389929234745720288157853691584248047490609333352228675146022037906299667204215806371285257741418201447812383650365450850684038740866025238315772415512672054268718216801951319188688520787933101317828752294270311584421685367321479056748422623718404350786472374505841637839776756118845676948635534548557415616376873896126210962434178084016290960389818064576069898256431337995670493207898472410289528103868043465225339189838798602541745005660355391694891882101323597667957704654648283788123725943105628678037163359642631678366108384099122426871976423063049545798634484181220918004897496241996032988333267784231196195782677301269949503134722360187022782031984651226630993626456208941230100014976926371917229825943298485889620337094571889215013537142526344159549947509315206834977474129663534727833330323459020408256387295849320088604997615148927226109530692587158893047785676123800018491714408357514916243161574695644016562144386913961103350983277183589779808960779752591374879764542199128262918984171742727495665049629219240234964975115159066889649074333874618244915529874942741532405194313623461788658391583392468436725598670355237070852591074853570038677141890499596956486878373543015337972369225069871076799898191355047124947481020585928336848444995438528647638060045620423245633427965747602464663968815797652438704322753749111105575186251296875160008612978841432607571678612699726911431586325127220972415832627326280746593201225344425941924918333376809764873533251406379524745972725696370215129695549753919432694583117551692186792048419957587330465768904158886334503026789505315862711742423242026283527436896074413270798708710421548518307784129672020349793089116246834866351952767854844078846288499489404145607795187088826203613206800801632250639956592684858190815349709416739619902095525623731907114716276184587353550604677005342356097223215515407695096458597246510309649418452549875831444296719672852463599776420306967891513413896480758331851109656240198832353220095538727849649344188374987286203082355705037519635607353336718119127952026343810043970338971662115808289183998590697096150795267923124567367309754999820903764708254332803860626747230757124024979053095006716684645108587809608327856003344884669995816158559355094693878078950228001720476411758659229462186159194016542929501865044030054582804247616695755485832161102690694296757923485009330311425272785842595517235001768885393281172689856671909847167677192099085485216749082884197758345912660961066129115867868804108973782689266660376855004759565737698315409075558502600781908050981710206675540770907917963530004792511530956004343272535576735137397367390795642612035470647345857822241377725900238962496359694651854349087143559964392277465384126894612656768127952915563077464991580876694120687914172062672323597913735664440422071126950403848143751689581166081495772870102286084797685683680909761016064107924337935727186240826742031544102824140344283272610270279467243488902899663587054029557502730312307546121508459825936479664817910843807693591678634324827458947481958274854936513599868963903228682870661928262834320505573395316032400987956786122125254733298181887930350160983454364493630657043617076743679303654007844441560148279187381299415789479845252208270186078237777551872271270382494372840495439546820197165006068530082269795388796376443956205330922567231155984434601110061551636824621735646443341111219816573589139004035987118349352304245884074045792677496755307769636002087506835820305818812008275026208713350325612347147974922700156932732893873506868023043834492185293425832842112799974727946556671704225077476002214377559030597331632665709502400803435491902944628020583183566778677606538055416636332040355071902337255528448941835373649242979076346318909915945503095451799461681598672220355997928392584510222524766453790239186521361875996887478329660418372319908956212906514050796794026782293692898861457331161943919240333253408074674445372348963652334163205682698471089080444237676414640263019935002308440625151631670438114889371180748352482957444930524705337976776743979518504930198459316662654442347192942180297872059186042471245007697357920067841154237322145844791458084422800108455372022444402772224397471021067371102264245733021835177253306227943538889940077749300203768406775419018072064928873779421635868933106147433292445250677429903096744420837293464280402685521433965854932568624285191759208162735971492839682686987469884751131970865489471709312309633179528654130114224358469465887502520346287166389951013249182386774159507640358886528147819738317639316700471028809048935283793549980714452387090005998961441571673947802807083878781364960495269803816261907596750930038914192744701487323948493088661381777429066149506050102565164463018723258775930559891780006528906843113758895436621605531585219507097527741349997884424909738797421753966862804091482826604656116914078365923134170438983179381125902977770888403597515983808972932729450423492235378567603636182790370391622140284320741755805881629744589477611689188004272896121926558864153232961963873901233135658378660025923408581253749586976911357401001963002734835189289017695431747186883350631529122052540187341511007227101822881640816799967553119147525662788445648210692644024178612273362514822917090532636920811518583975174456929839024727695174781932748692780798231731335168254977189992872480524255447037635575335384878649399072082336911252394952388425242153538786839340297576187244460317576278690417727407808729625349132396529808835853605974070292839315851459660678911049204858311863206974497833047008568268737609592063716577033709692749129130788851113275537981485907910625906679370275260650497781065251833502598186766252378939040580183224723313592520173375555855181265992417246715897802688594915472044231714471532765667608119256685515154448647977575247379592343950458942648166513888569093786778792259781352828725569139049573108568989810093070682572819150716008635732833152613111830912641834131101759086774147902837118183311204444884606403684881663705121640223535607291530531161798448998560134758563092373315643082823729426307818994539649493450328088875370853386472150063074754965289392161367603480378646337274610043947182057302421775320880028922563962274185426897929739528043827438763135484730628234990820736932100125671219322657709796383902415909098750213264182567036128367012817011247048966277083803782672981057195475669590300156706640315618247498104342732095400112700591113180058705236874517505693555810618653522549715767021974754043596746311347929614902014939541643157059623856538698921184079822605260837771269307943568550214488095610103369796254935434831555582558246865739067002083151800784729298867216613253131325098732677370654382346938944692355679694653886456775819590110784272490177160884926434592583489301361234622822571721436563324566250379620330845724733062599115225216031341320717222995601526794492462878518995562271660589343163243420215104720974522627887478101737493284158786786683939359943345641992001035851724420401477079669461233342717311848580525926545210032467868794401945043012123627873125215584807854291024085592283643208802264546637785184805793007835270767766666387153165876701661923943904498896377137360196609916464096521586671289036164213369909341194817893804619053104130062672889199115903076939160920267488181012834944983213938225804986148173739182985308938838674885842175502377061581690626774206083890530161351620553351798806270019232469400400615895152813904669940717945645039023195478339043364145719917700684687389365284534647857298992146001454262014824605993481203176967445298490874604078663322040100796993070137498125642487907688629021623677411023051002575933157917296728261303951019510648432409686423219938645710825141759310728259384704841721504121218067716265191198131918784592087210318644085079440279728441675099971206279805323600234533415771503967983477665969626177529945396850430731815155650782951339164847132612363053764855696761013352479048412258089116879377541272422815196296132483133350255020569384892874167323593301589216184003120801616565745638497024154424798581214358921713959148182528814598347313726499637228731066484414003022385022305036945429874787389589457422314843830955078745755702644471965573732153388299814123053833250151308127158892501828449186052582288015116670299305295583695634557360560210429315385351972196962727521762886444307837082996031678485051790032627112964585614115193607436708173076051380128335343540661394869602169840812624419790074070969066861385967189152611786311729579087026362571542543419576884216617447645012877041896415433214116564526661124447699977189517355319637190865809669644472352919406760280757594885701239760655558474254974642484206507874637637050936052475342416172871383262271478503411809812651141696830097607436433451958168702190491132795152525295404027792453916216689225009774656730034630403402363749998641725060059364206199626156460690869562109546053147538380172417463177632209441305278923698159902840365685416509073477528918339090809121250359297124764187567337652653933221600028945080476198557918339435755428045532242142934524358802431912047401500662900540757949893907586177669070493277256128298452019114597401219755345741471266017753932358697846425052623892453108329361382465672648100433192040231903446799864902448638221174034093088634965878030046351869912028775293499906817682604500735589583183516091467193958487613444775359602382040183156592206781830152741366887466689896761599170435795435797387970096108774720515289866404863793817311024662506999033048619908752530612660900493740529772590025874672420053677495131380665322089678751597675098442346152025661438853304406734421995340623541602836714004554633193164589195499200893739688647362607942054614659853500333062668134799570815066707946171197931305536079255561936137300316750314106454608886848197492259114272250594950856881264268373217445010134546299447095302642369763507752414331247637783536377752688934608710379643625419564306163493292504326019307196890547098661781490354607749356624163076823296089972297834568011905437813066013092796828751429565801753957884965214676325952078683910318944848027122778578551860735319635328163713955892322869036989656689940518961686070635927839862174661207824612304771274354850586003784830142814063268881197343529274267635029200448555643728788498604843563069943580028435120614491811248582337239371627785964303051730493966906562637530444605265739930206462869631565265827871639654788240316726131139547935738949626548176192239841807961672490051042309497171997420499942925161500289596572186732312044544041947073138599931998167542679205088270654330206237889969581808233635533288989049123873002833636874007937526679413428833308398138113889955719842228334874656312617655626700525273226829903930676642610826085533710942094893384630175736266676437271919475474893619655978967024583588985030776813687553930312407164657272585133341777992922100569198448295243662151838095938128768786807637106844166165627750741596293865105245287317723303783125645256426843173430213572471088888993366551235680718100233910068975229322231413272556821413633103318498079385056802206177705082003487343279866568163137643057041628876107500394419463893432268360197241645160055681169161167846503351490606398813918222787865387832400608355280280034966562725541804915166071037344128013127670089564163837554407307808877149738720906247218084739040353914546711730486307908940995637329846745510088383917930948772132587545414473995122883417816409969691700015016084498179306264880087323312831299047148256364411477245321995703103218229581891042187054530470088202927459361311046814139510119271184327239070665516804031270072312617849213193290678744195876609582276752914286449844511753858695556109909444346176930042070159807994272020540653102970335593260212624368810906613318895253358780537859943755570341453582238423154864136515499921147302197907531961792403277110169327021429680100200576906742181698849848705917310190351851507664892620756871912862769425478883215246881527861160596266655207877257935640409011397671682010374213080722349013189137132758531777358106194917155533208438905725586271134818439193342691408067146695061404973197494205919021641349471736297761175490060283545085280280624525313338772295756717017486779106829100337314694046211509536615289306904482894792915520027506834218608231822438288668134257847363621438624330847552529038394345925219514447007998359619701633426802323010904675190995555434040016310539322463066770567933222339073843350159970554012330458437450345951237341543746752850033996851182645549326747807743359083589478941121934388951896451467548104223018980191532731052559830338232481816692907675903407909844476428715093147068677308664786244729138619190460296549024833443286025593812178359308126957827172790819963031268768113306762451385070761459560056279393202789071260101073490332548875841436717594545531851079083313993946265462235464500418026433436876660139266807769702883334818874074287839275481070449515735526246409934563987558502375970546317585823519927603654346464720110862731444531319771856384564581775633165890149957862558780980880908690076375940061566684131231042917844606099069872431778759545613388981732258864978057501937841550700035337037210718341705227524378776831155133878443286701097183467522195416567193233669498792692211408857262144053506675792760483120539876163661667651052350903166055765631100448474272158705813988611710241721217264425379804745409151601163640604162451339807512593157479555225844259606195617809462011783265093861255465221817010451987391373372267099657080015527121027290063707753585206351773600271276371216239926866313231029793210039995096727781087226400857145954233971792694218429307816031867005472223933967538189015932356317828358756963913207437617095704205147392437396222844386847721362963761337440983095327341651108384227961977560827408944666338554544664525762393878321625951760625090497116966702454236285767428692515978380505007444447048898627049056200534482039975710814626269957731214110856243081593903154812448262469713986830002728446190525233303865951578278427366341287754324212812926342418862234432634340528783212472910678199284862642652881968806387995560994545309809755277548785267049803008577743365362184304017031965995833819297305485428989005613087412132262463162788193888540011087270225694354344693070246553472230652381442364776472740134182928864666695832757973010185763597999936504639511395024484097650300858433154789938632642636577450879284559471086712403997101697628255305773033897385442757804979032234534885982238351558225101424839342032833440863822219172328214491951166401357992109480157211277115443159686681330477501117598391620781443529853114839386195172890672347343548977068815883341195813097248674254467987397336606315485588322794622901037261826604916938790561159245092154937618310765248455131665915449239374576131959870904518970071283842617230324965506329619105125616139449319863063293374682520712646592632931323034471368334464296961871981711241653091045907206908825900912992371240259467105249792310341622649670936186465835457011000059472246742543382719910109161525877510434816492624682603463434551675269528160276279522919388275138189115382383434304686071355334273176606526538734455597642286347814952853156531341941372450838024996684061628727491944075979035440866212411389885967723225372580477256368985454994785577258900940946901898526870188859457220198423994064980519782293029956827022862508034824653011334836421935178931386798248002877989503119488188301071685697829601235563253454094706682751423264419243202443136700510969017827824294244317769903140348123066751422037868449703698368850315696454988107488771576287319119872952706360994666423407436868314483643905020065001395935621804532315188779425759106766381349626345252520667090879966969363006269368514698817712127537013087653743236667465766923789364501180789130435589670260966172660890322549893805985764675327965806577510380725560824675343754450389722869567948859623567450901360820599444072357315464480919128566209492984148975961566158081294444642261365780250737501466616160556531684152315412975436571952248563907525621753362205494671524769928647399327691032627441936863139602735487110135900866448515770637153000961549813989427063647088335612766481951273759246630216978377568781550368810752293444909507423837709598255445840169667272082489446136012201265144199345771052347603815343798476539190660400439307788166644424632912257872136203166423904125393456570094748174429773462699334719196335038180917258545501468349490567861524156131455304497644216784254034326522457158032273099989633515705454982638897328161279789940092132662845214301169438369703168602976966569378413504638403051683883277037840764438845590778192691564665274302733635533743718087391730650040489971774197187991974059764239319208015153194696009083774946331247124422169322276193611820080276410927664215541421035693301808241210836412645400545285768671401631888936822590377102693422060181178775105421321291986345190958715622713621962985897946169556874738312744119079991600059681726281906718783176383316234514924379380040928888827982135383308623083895634924851088021550851765329333303629794545693186869157360815103530139128544017525921392094755980306260663894961527836014220449852311757869253030791697161750952312793599675635885148059947549975810948301351426752725238231360693583689382541202407037468572311139384252353465349777633600074205163014735159835769938980754177323753000522485552648568611102680993721860215299073697084403604395465751612950811748123340286275430463959288742765706212183286760222778030691575475235820737815921621866534343749655542578780823952441269313904983540949440142647311154585215437272024679118453568216187397866410842673479965454429085963823203369102361618296460627097131979036150283362377912918464263462479486541579915610803380881663111089523481629572954378958399500895023268465951364918777722810254525589207090451420796381136072973035056826344805573939498956207686373269081721661214716724088252448533475965954390368207706274430474752137565097693211212532780385982598612723214529203981350207272623123055329753239427810315354042208735164538767013054562472920963142746757807097290173055249845784269410520439126368337855601635377640564381742954506169392605838962193243460473393904249268279291146529429118623706955330179566258720972421255930021727803737167862280116838350550729862561773860024498135010764492586156480581921751582092701447644490563447697471614648161337483233104594151641529568536170559397078264672160573051757895353806115605840556654105889109157001119976099911421978890285836699707478496711494923624920578108581444596438935868460908564551110638569687784027807744562255728826166127188482545721052585733233612188037188709281148929510105190645890534366796258398678095976305290396234824640959042545939058384014018028491907042618786851635465226653552011469562097232457812516198015025933640610410789539308304416780678458609826686090393017156395318773678724907125277373677084084280716946384730391702228988279289138595019394473390034321680913756601891084244313255197216722264658259725128895990887469047755799274241682625855839456927187084421266885246731266281860130249006617481200896479814097414923061437762588439243029656495274010045387085313764960167109815329373688415172347464710761118019842335651928588751435625083785950551488819775846390116906718605413294878225012376052128489855286865800543711265411030991919665381549576926655631297006503821059637281075906668880910969044363230653493416626421410331430692387326409476846017707230687564497041979912668465108925176624480711935259185299544742183121863583873207928373934342452884788810528088334056455073928317560218878493244755975970330888326653615974651871323438977816415554331998192359563825544287222515466927342840430921169347358117681011383048454236902314873229421136933491540229397215087559450453082538006781618896888839441390597686167961825692110463598489931538235181704864670839843295460396766346700087705692990854210144831666153459999323550137618020112781189065022478696329425292146555050530341928511927835415000681519372524067598252095403763379499541919907368398602974836833607803634806544834651147390772313763779880914811416301822549215178530694236891154190587605947660036732799616274935042285666717753845003517662288465646851937001337669971304414813703780519244676364467682606510480534956439709743133870334117979819980393042380717891047887824009902861806555850208582460626727996751628753966163772738328531952326635526897377790542837963848760465072536144067541662091055298799650281254893567780842112504220334029492148156021478101367332623985075584051051222768344570618467132171413609537708234954572405586453831030115794140012832780345314221661352192370247977942732826636599678819018610702871342879689324091897588371153605303010056732118439046475277824382476801711425882025888760147029867246287678182421156964679566049155445898737514926009376307740297676522080066275002436638941727688627435863861139947069473209967483989752070184477624072147076436979150770297592505370481919882811415294828502154167838864599151563098073160700747749150589982153933951824300474384601798566373077558709263249249049048504399668676390826879968617565446194993171453857267929975285141013902435031734661248460249448211185509154566633851670862706956364432405245722957215938929735793557757153473667012639159549741690856915476632328838705258811744826388297118811786447911178594697861089225545040596116873468738775979544059617403202918614849862507452174148774382471592696264680884057986376591505826444445323452100567646590738553816131665038034424891927937412209110065771323560124849427394907489541308213448520807431337263890263025238468894060671221015625201413809262441707688271129881035898766302241113330486234695730436139485063013110671176676135450846529530811962205586082275043422601384205519224125002334311288812550493222872067345578141757598478571706303050136372235787129156880530062165955179921511786977719985194286454891322329676358927488979209358702011140783881067867086253628786140681989220416144349572983152786016413901891873992384034623361524662388541778688549315838523120475731229983167850094466160854314731814725341690648683215578893992652730766766421083860578900907779762885126982003907617645150833711155294442952677688381287218660529219447075520930374666331870576705809536375251348120548394358436068444957992579377256888227153909871314999168107410378945042177352611317553223621069182343241726269447015817178136291679938021409370241547366577750465660414269464113931246715061204838944588994414405208973042186622198575660021392042525088903455010891143554471345575279795761464192308733196375499463956711015982775827779013163886303868855418392560738587419626622864809352775414144873090437182462559561566423476516074882281649254222946723321144319826864842119399308968689938646432924705016938168302792811762507226555848311469665648303784122998567230807423782117750214112359144338479633659447246755586909861434795339061611477158341167468427881113559863469957926706495552578565958073830678140123300296166726870318310140793839895174326607636367433300631800010230759356372071096073455460940044512096200215356486679517085572313469818705214357763858264837627379295197421283995551929662152641664144032040386789139668059181560694262180674675708906997222271812076183128579102068617263210603721989857199878164545192452308454877237690655906466711282417652028282305259124797772600700546584914067663517694362894391730086949146245257466924452855664665903502827037431914226526108307870764124649399282707483550558339080327126576998072669576204227134218445330366900035830632150623971049031668507373008693544236607116977016124899883319831777929239010942721987838918028441043595875857521462801357273607408653308179510077291628035060712398677205616396444182072489821680608315279489149199796573075189952967467481586397477882377766054971748816454537173097711087088620474652269040062626698592496126595313057136566614688300726021904731382136713761213653053259543441296302682151732369528931031791797147875058494000778024762594717244130405675294827975087786240828429473116564279840080155984290249139867161167567515485231369872812461143362119337446051554501699774898837085111906042766980789077524815287361737597586440514845691961438876544701538689338852270261983791669718746634573915009833089492372067849108708408445759215091453618423629962075687178440631667575671867943718731586693529394261684902467704434686588746482932001070848245142711179761913625843344788286101149230570710998235730519450315342782933759941927966141601115047036528549264054032331195193501005792343422086003430899581203071968012840501401979985806108633630414148604750118182223855023747422660041912966968859615584574887956514670941505389489245402613905201399579615956939668042884260471094056368260041555876633103844443954311935298523318647401293655512056727143150511228480824339475356172722900829570688064999587590012292624073949654130659228166320496404814994767003363687224255212805580303050926058616621256325045525917034627461447891020100854852900871754326686501896330591641504995392694907737391470842223699633030319439383335151023242456990056153481937593120117946815231329489726540426631465615386466997134596800550725960769186433372894019426058890093685790355450856792067839305098319989900679193973972157077580743558275547629880515120730754650447451736980003767356731989096429251541938999865429856650658237337651373566884964464344963662979867224487130167180099494567470684454000518079049672582790025985661630310006591413570296061196506148881772249570107635826978396950380827910645694642098179866829157409384313947741529849727002379893556965395135633310312227838180061752642712452972280429305298963167089335913576854294241702560961107605100482265600467487252248607585538552856975674991408826295433745635354274822596670274572082296480937958253587327808657371425942929964493896411912426534750766462414945124847800177728058228565432898680446236004702824604740744419708890959491621926773137438863393255096554930180371922069479832255838816630428476100692822840183638930076255809343827474091636735725700664144259687819160385794408162325219609414878717466453596653066236988212372619646531931423787807769741622559068141982293982428038058676839578170930250325986893427243780824737511652741649664611293916008553079773970880273813739421447286197182873920953133468506530143617100592125781445812852090039306470155212990213662395245128638495977588929303126603652441877872980755281413531988946026145443620387702873623826800768934240258536801422060064947396953151539640039853598289881884256551258225778361201507842671342457459605570597478658551905044986641283939395239101585060286794544756082721455275141155478580172162518225509302091605305111065161885542827175362114591973462299209084815949524245924382406348619647799998305181427300615327725601658038745428661469449840191754025997973191784268612582881296555509463828949150968032175089212719642471812708473703739240974228556963893950327278775894692241579989330720724022808069497003772730528233707087077092418708414220856916146104317474128469543836415526636782985613225048909507175532002966339318868391354935588307460428156014484477031159905032285927422659257057039466463282691219546450525271018654394271694879302771353185269757020458024803341862162563852533756006582732154953144963853115265606111632152912898754980485947564179329322448859919339426173816506443822019896123712241580476113853110094108267698512808000129895266581163652766538161149794246364573584431956804505488984924235201576540541847554041202409593022550783316017275407783940215532656232177051561091104132579878870539439223413671428917724003896795408019748563270075595576907412391629042991282020850704005316128703066850858684129705220048229344107062893258846605675726589033466984721631849410493470779340311141285730534646631982582437520965150119458927705767934637152263868505819120985674638846971042519647138294643832131713112391645855904252429107744011679622663607633961901822693524687228030594875886829796122554043727317310784608285117557602454493172211934316960640409509773671471335605798394606905828411770299475577707520896231552466598138332546076305442115404275035586157037437573629054030261973862504139674889185959908518257712053216564109302383698092067839216001293916686010138887780081253880520185934295079467300297901469638648916173018364490030425480274127095857927697009745389072990526196630179473771893310182865365262769565845421482553102853001515793475296459465045812192687858003222428293127519332527731569866902537163243328726440607420884007373022563956126667532110305149144378766511815538203707838248294024920125672370279289640296471993168463077883738899876301336244551732965323323628386833824412670666496497341770316473908170016466756305636377340617537504871653492159060546329780816291632596697656989490477132791048771909714021053306509257543369018851926671204269553604522547375746658566492461866291326914790979407450214284640687164638797462731030920025506983994354523648388175578394011599160223255492249565933191109354915222368363507562855695573927400818693603686702685619007001034835870303533597612523486830442826276114630398303875087065209715556431681057203694891507937698377087738636808822221724305946566464359480890911848295791442993972006069410042356840531399456295147936833844955477952881441645973446729198506105124041110248766812211603948990605217362643615362565111668272268241418646925249681722219880307189789448720841295856177685954217738041985265827904484131402524171823120872441062865354926930822215853973484352110598564205651511785684558090263169570666155539517897782701289078052724858410153800615256895563640188508459142892873556544124474729248125854572443514289609219847279492204577708631908869698938719172321698766530700629665416873473569243125428566838997971462712669007389652398204067238482090176790770347245291413116462330519609482538914600096235512787146207556633193517701079507183518665000464926418209780104446734035304858131866801389285312316828258167199061351951804685472954260437764357184596509269660758959189056287665006450926848698398084394504041837786527017952252477022766889069064884755188173733969836577360209592239300636858545267269176297213283678552687558179008697117946418572093576787408663773154742741471936648331545890514972141606445038309493574237256810033729392241722371625238854891473605035009235623960743892854734052728872594102203646394029698886389298175388133035388770158281851058319377850801430136574271493123444097680597352070316096810338789967459949071975806870758766340298219163061743835443522129209694501202193038796024332418677154003831719320698030532545238890191236610775983130725036907068998994275832959810494186709184596245886141179053584892590548096578365199434065667183184284256568773803282786905515839387127943918289535675177418765319670538944357107888011877399009583996442721959364489584026323023571702246002536296381834762943819487612043118600772938136195456091833532309709423633015076481897822850511027925606164836403063842342754210321067343548770476125241360496533307307736727844489033470700804718022582891447736099498802672323331339393448863471412080431832544612493007292457251627112969805339492556981448831840722379860602784886361498490406476013125227266696328254454316628847863694825132910104584845171114311404434893146649505933977159445454314425758398031140194238785528716319292065692627454846576492076178683039285093927010772085680853809460991358482985363498839714762531374712285832544140566783378628231737492993697253242110402461548529154417772725821578838686458243350270368214329763062779891465466279353583510520532711503135932044105571019975746916931925762576075553531993332733345945006064806419782345263525280454891634791560855793695420567960528610212784156951067412509474413513797953989322016292318817747853903635019592938148657912313370516243253162355727834776920400193691546660174796574357591012172910717663841939326218294558775971862851368720900376595803455576671515078311743550421375045672563644586732078713126056685556652927438687096653658511535874618630821190680626457852515698956544042438143668372993837179298772304433427254377410534928281626820230766593549397420940959510871459301601498222402542385302673441352195940712540541456677161153249470042715502600872723134194570332746299814476148910839239267262205748685311335218426561891816333359586302489707772363350088846905878712495586575049395979988930312845784317469576842328550212998512026719694011843706976352652315307724486542401498570326516562966817240290130178632149724478909158339129642848623934775559227938301909646375718444990309232672614352873264853829020858727989111799230945844108544581966142283832904342654118678028108644264120199018897280534806569508123094774641665861293631645889865747948006862680513383491897136599319014805236070252433308490903099546976101397983863505719504340477713898933433634166351176034482477645871417520764590278800395603518587097907743763577552697193766103017709676894424287674584351109455033082701813542396193840547696049925298781541410876017164267264437332998293017826746799436619058362184206032059955974855852075635847477805804635560496297766190243003937554616506603491814275028005663794462595454962262943510882226509462953353143089872231465557626264148248602669394282069759651245536370752997094460994344333704058853619338017804395656085649124202240725615199563082710550131455675340300911325928775370442452756742191577758165889160754736337090287854803306261610207787199051943623614974163106145506385872032166511672551820845353616568149020064120083946044655607546755484014822897442885217172318144358151847707217048956907461548885195526695817631677435692390187844111519757465292339597644490607343246789758852772625992548914894429199659749458245134164119264799158803940812112429920757366775635244949244304728898920399526886412722289612156795079451651605162664862675186713645568979402460310303423667527569597447309559550304938282336381150111261701122050271258490578665062806645121982155949421486638202919147068156462411420778568057776579358969360115667020436238286101045823331743471728801168086427609461892987827568637109949687797509225242221803630483922122778778892931463656814457652480070007708491373312768166289922509140674208963627817060258393392980035237209399306127053312339111284066124086202318330697928816923916673210166929279800515566776515601950185145064011437141878231935134945005785309596850400746466345633843825861588570703657675576090287539886034448438795449699171494656160778088312252210726854193347647582850225975424952143276542202377945768083286259255160695040315954376681879730047308165234081314063101690534505090682814040814534833613444002651520209685535840157698683409108549944970371160562636482059479495796186148055279083022400820564673996983542749544160578663437765957925611053800158527370339604067721085372791771140471567047170359592757832310004520373244262063175743097274634671449328891679986114631274549418132121385473330609491568899771661461501169632922906594374744442121219749805372876044177373528621242270256424790617137560374940756325207517792182454165050378987209186692705838318147342358076876954459978976256830409275998954995386571021668049166476135611471286850551707365940853386164520877308357160059149829766956619325445532042304363583397806955560746187058036929522486580776016018460460626933339319045722642904559862271061780736380786932816166626571110417173094925019859942341472416899832915809841762362395166033042117826569535578324204811080668021051954767067846557896258745380255895894486399374555806636522234115671533403411287352873744933215552645335984618402320990053425254664022120764972543310862995424713409046437757829131604371483754988048413032016633672133972555319805354157165259106013586119768860616803861011708599510162243319506212693679924606699832449311971338643214468221867739640567869676623426283627900695536592468745170738541545077475316860686773277137082185567145871949531370406637800223888853527031549901999104327333733857753806401869856872916743688671862065443173249394865948617533308177760236657982624266805373848841682112075470016854541591509689405009619221652200012200190344232814078659125551181693812802090762679690857190163876465089401441357716686967653561363320206542979921556753968982252363390697316556817772240867262285327404277875167573221691169310399113892090818877662029481136621706174352536376418150320381438100197644824044647963125661653569005786141725465308775204695078590052766415144290589603368142256633124903107903914212518738358679404050369713639372589990733035292236783173048901171301691322937674133187679916875345178966469444473952556171932705459192893883828725297096647128852772107038981624040137232586923310622677594615267142143636691165799540866652260912913030738814438746503700243979744110019390911543009660817167167468275192881222288668835242441578928849097529025766636625999103064635851592548828851652252736363453083267316575713079390333627038232113240641034412148989245162509799970481793581696517538765032437628671251705609304835710918305229100791204991104269749293635252781302391077428753221941172746843178620685557475170211168622844958770778065410240434582033622314149490717571142129959657954726332624517828834486517781541570306990570509649502929287653343748575391146598155393901977638742918120960713168735708462953519330981191711974875385756351454931944193436896543778928517105588151273336076334761517906858442391114137598456826030094817270547408818600475275814886068846397567501628378969309203342249046250932782476356764338903651207194955058765324656845003062335637696154787528895745951823840559684942469153351633554499909818817780922565544598743738724389772592921112375955008938660679361764318485657071909636390204154025319554758836175998290839176939388810436202909049809873216651158765773792149122708668662716007025568190466786120982871873744681238564786291201630506201152756273304003246212059199197401426808613327112596843860523335383607533490475028058418394412256997948894193148288996573038625710999032065290046680302025469085558401861520358311486996950955082899399062232926366709860102382330896134830449096719625351961732210034186952742214513870073711316149136086352377137993228889221999073667627623638957166947945265291884854283739600343960086456300050945892222021391061792895436062938379105034731787590988135461888140406755196434493735714755839469387242743465055509435953935498991177644798749575037392409889873140777807801615448414626134439323046503443121187423712869054755932612225407591557905722008323665507490188934940514001610826181681430148731941614075741758960630391639051325927969765854423614865923785051817625034877750368102665499635365132613260705775415329124344031601524464437474045888198292014383596014045454368919285757423067214535547521273992685059509079681416776475905244863298306731532313116555570635475710392133163763806345297442569764279730131859109848556890663856187234814172684021806773339747440860886095418483459000685770295278258327251925425840926864823717163165168673467487102558341084826222121957328702068773383098521496929274924438337192490512301495396719966157295378714586984657503777339759031545173666048161345313583374915694085471099984331674476065293216911743709685654889986762085006764345875583198269839294293710853588669111932827936892863721298761513644425500449323924813586881153384414511154619084245063817370587073545808640610138933648543563410573191827913432524651114742581173406857681758361262226728390294396761764340446436353833849243256921827330586562096015927421220971902264763635752908888387128337558628110015528918217861736709599728673900052071368468457184503910477060808554016612931174504301625128663188018409306801338733123581893285953555538372223084836126945557342614957914982385382187433486323092801364937964710529552318612131776307919342762643180627727048900648432102593803871797904680245081575348165531630612027824191463245223758057906567286840916162186716904970729812711890027117949859755624977949906616729593915162590332734739971228540062720020177895592342270466977935191286537779634598016250818207892784493037410782836315554884996597345636921872538968841496066361464379779350126718583058793533688334111439061678887063342611801337198852298088033342629590950450190481230970237468359212444217915577819760790804141396457944342643277674111121157784991615816566572751759231630659054758324669426767451484144992301802829378008487213722434701446767480299102232941291468217248552201598783415171998546981025063921593526546525955949937943352189918254043928983196866981540482112117257194979644832422790392887477188150130160074126111882134661882675915511948338751667786648719913083790166334882066656825951403987927799865459763190361665622605957901453150824387840839665552217856046838351956927688829651280539228147272952144462990873350468115209230959962832126337541300247626516765027096377197053525535381792025156665642134958623405573712922245697342796363909123315038260276927907481120672316687327041038409460522374074641026536730473679983770802739499071114436478853876104180760279867401294769064449860128546808405164959791920936021447146104926243468187828166329526579196067811607273739195754535479045778831807069017881984116626027531464223547509383592230019925393083462307437939581546907844470134481486407724402756635634558980239212025568737900858989185848498529076895837469138460962630473110538473526031386716852984384441932342065685206405601925053669636801420531480186039214669040727924016855772753384158444487704787815293401176875396405346431187952665052667409191988809942120325291040303233848307341329117054284518093238464200857241161302400085706714658750720127180327473360711780121556143618046879677192847079853463735804390721973014782525406860125545366248523023795809160261117822820690323823121624110986482636660350758173562380170880518705429805465431790404004542970507161188542668248481843912305960839936791498083956552908002147208063419958195317072215025964774789989406562423682054406185648435839580731539996848413883967680882937879860281848248629860424618522678277065059843727008049779553867284617455906857161367106409348248419310259820656962809456974027111964442149674733142097305087982194965618222712723107550781146919442477786726493097487911425451568135223676449835218058181767211684541358188450124923065623956514346922724644029292488866878602306039910742816652183250251085569883440971221004942901502269497640331825617991447467491991441109217258366883179429064437799047026058365680480291208387065848251387643440457870498205331843294920281567537646796174509558656664273011293619368726766474265595833039217678133933509856060716971710788427353576098484353881720117428522323698379082750465346615868517619170050253634767846765612641612426932471602447424510780870565121093065609980678523749172815022625176612677665400493675540128319358943218823094713477449418818955929398777555727497408021843741897359751620874872227050490500402352873387901221266712080491681943370506969167643416707802354118465197657846348113936765295654971672864395743760030217440513417791760275481523990615063446265575156991414074318865556715394130282108296425294244801194575331897261634137990810012668622043577778275501160929223468447166418289913898150010043535605185767187766821272342195794660568885510237532859925503802312427277327389852010741975239802070208860487928707051941797219605693272216534824060569023530696399439677882162469418841006302873598409913002162711617006679444800051846164546874983799622125266958261067329970192026980543220442646992729035434398857450852176513171271334946934189827560833274884985526632410249294036269255878861286103732125673505985799089105881116185681082627293926534229050391405201636676138888657731080251838432798795027279953955338505130253720067041874052920708573444094921683377910994638300601522011515270929891176515965322619254626861521738682222027375132973519451624605027456757622375115724694552951330724166792466684498882887235197787882469755148549763454191182744000176030913318868415745647848790540352279930747286035692274198737369726450492688481438265930874615942617347881581103840154024623411353613629391482009222707368737775311160049102941940537411250722780162665209934502916246407709071799225278621824300844015459287666674260863846259332293876561683483941061293323870472154397206487814564060428218638352348695519973119659035843501984132165239115606802483337496801829832175879826892114568442527466622278885262092746437532427869455954996766770339853456256750584473906686789635779087020255660821697374602828257140573597856472421188751318134010192862604104686791226452326134975624576685151875593837270230350215646864501373575798440487402475575912108441687764572913960893475099716841868150310350127259345138148471813471181869552733113766283530161242051419082030645443737739024926684924914758181870692637158484792384445469844367048725098379732578449365555103549485364940542743043926847500739598240985451047187109437243715102196604854671048645749465026122052644488562707682662200339806850780340758427439548306348805067265037965302270973250541345642640968562103212831579099215466065877742585303379636737729246714438104892947293599393014474200205486031407704009663036883710955004621472646376835806994150821083064422028439396510930066927221678599036287240017783158692616308419514107956239381161261244486725525795352430467291597764738706143290820148285692909203693753719688422806187005532055756278268467378890238127378835202028926691814437715075409448327642351646526377519086470887830522848468086063630386559764372799951949379365063422467031223580323203354648492141605278514530666588470733716872169868246012608887394758485611657862826737147473540454645285631255036753953045868882257381521765379351664966037800624578873516734484554265652118982875672097423392313529181293655207566054709006074536959158762884315638540125245483723691472193922441709113927663392447422308155526629053678304859291230380446731444727336352742949283242798465692848522284307870692749223440478523206105957972344384785411037360769209097733334741956729299772901430327650481613697615937675524541459611236704010122676083936690266818009010312157358594193249819233635377495097881728516608462446868367516391712728940571645624263870653699847860898253426191987012248990571307413984421847269585303218806109776821381976942124035449418393250364545340856638598974612701088380070585003785959137059958455494584858047599262573986598746845623459071409918769180988738317487083043689734162038867123669959515478002792314843558056605089179033069484825084587377279892352463430161846976636806013318311650751116017135818041547254840255317762346590517964753323681519651300234157045441365148511562122019182088687204940352774362714271220660053946180498659007098272996720786876172564864170341952621468838438700812252062559337796411128305483058019689619779846919032181079265709488736450675276111428372424316956523439407196786852985746538662480683462971106198372953972079707529266876356604959408083545516350163891551673317331224244447810453205392640566070246436040498968751520774293603214694373595033093188886703593331741807721247303173990157526866134444859194708502544863579910524659759535266242942856186510103251070668774209108317010500443927727964613005190399643231514997365285602590002873181375476869507187435523128477554520050031490648408165105264139575523523725819056760467836633747268505965382968335638773800657277316830154509503739649515003146340576396728382914709530180825155879922112838181102201610936614498151027879166834660080312861665491839400176375104817215414995591578658289965739841195775901437502113241828320844782108363826273758378497056691541519155321449279508984235324963836205607785085410076503692818533624652771470787983617448738014938406776131340481458129252954123472704914963472419052734440403649670018338773636992127743078500076005749399445824633553699578399146235808524294241836984531722720041834587900617390835983243912446219289848368506269111466623967660348348041367145425737952921901759115485639987941165387053420132819295068360465598521785976166468113535691131007715109423258591766931363815459374984735318774527576669381833948790895082242676402275771195868922738551285921690341088734620162325922016312480820402516966523863749557245744144359556005086452736725287510840232972625596754536903234243237714942615469971342055435365259950598496475220849025006823876039708654981087162569648494315277806614839092420871082639131801847645759989533015651423048874114770531881438427040120727620608739168748459946785614003147611513427288827834322120019620980605929134253193680042063375028934370067367640583351222262409118944892684380753329935767746025578871830665105154637165435565783058249185814352880965549642326695475781168754221984294007329177281274536696227736763309634724713031381810132305729561640935245247199390169639636735389205291465111104933170568206611560160583277007269317328762689267092563905566885485723981192204899133440489728183072205609955533487477941790466196162401711921760422330269264228470472352594641821317543986520500492209444325260090712471357750530621597812496424954092526402709264301747906976108232952143539233470650120657531902287872773459980603563435848088176772161224263681616313912915086307463312188952972257501578136489760916637709843802858546450779458656780354238457939643193295385698120247798694132937371504134738053222638091017197586396864970135863682523016199896179221604738189834747962845022869069254307391542934231434810955205246330280305736750794535538063886965540532735030762612564796636805642734973720649795019918058624376137190485672265127103108153885362315197133757597956548332810829367157995302297473637308245241028443666141504069696112856080345013578593347686796851772192528301262143660444625629318137947167071512131477458216550176889864909715709823445863038808146163077499980869464221031633081225171355706927322500966884719142901640398220165765157786066973729578928115436742970188058427139555267809299695765269144361456026689284728452556814561684876790305948143955584724437603597124393853906369536212026226915130879138864558973898797111884292424519175004786791105147889357842076396452974445855424100988569419491700954757802886857142625873500080703802271584394235730744871773956142427065215975987981608588386292472087180862992859895393368880122122248973110707151516421131612260534145629113519505349286817055647621121955148295175800853985233705217108522288718403221649990906139724370821252024074754247830603657451440881506689191530274657007896913986704769143725776578729582347648969679798941923298219270432829439323719802163272593083112509808241165149454492938823635331383983231210185754117716119508621965708006421026197370742818546119303552855535503929519463943924377165492308733996651331300783793969927314871298209124602632509268462101743713750417043064592353258254253433202737991041410377726663521242925388843022555257703524927775927265802446947724538898517956803299822863446473076554857394507586405690787911476835343759478031063018413859035151760885799594104575241311600081048946682858065124261602352451046176592339501824670832497269528080928460883371814692646889806867939590939643821396212035697431228552270073626846462638014914048487568362643792699277123262761221862557176599930186227475293638138080356475064353406700727078828591969518663486182040874860490148238543012464175026283267026688401672784831728243246313976274868463257513596701171636165534023437640222802218600381302704785084205689116013919667956610467697837943808426834870172986562032596718378467096454451038478493157634342225376200078845112126094401561081231852581795752149148107261452612835692427182464837085796902270373951433250968056097404623036867610804671731343654828834441913139428383623875563879352300331036922029665190111907148598889754046811662420434424190081763577038663702211430336037477812655488983326816545734441530970999217224029049299955379220827197883171439389684426647285194187061346376378352651680028836254427817208156357889503109477491826579440167901099144766803969150953654544463838531506048661749330167355957256566670137137478946911696649436681028921301215310421357855215772617038536600571309497378159391689380007631998768184384507765745323935293959627486809696870403844334320283524544199040083864820678775610543078926109537783083863249281970515605081489406664844706020557902432323213638546583006439761949311453402011023689825655269352074802047108591936533989865589126574411379689759554623457209143585949740283702741729045715773645008531011036466798908596168104830646682749246861182925299997377059482278306001998930167110249550465559868435382343221977385386752676158714765308293091626697878340204881071944106186521948895918904158917584214320425339510991478162972610739951985151306222239301571200157289470781799905108136636344568301982054783431057845733720138474830676979379864322776837762795569222693832221742132715302494108751135663769652550136487672841566616134901080798232634687824980738625754572695335683645947159270950848876993209773580528934337166230331198783080900043098857025124629201572224566320461017675666875897081988895267317938327347849338958643586840411056765893567129015333236849784009103704989506267258503489658134594983513254086671651959856397250107558823615789435011761493573868253196532742354710179455438268251675475851416671259052024775371271517896859035114005073992715732679053184045023111964983489475576531405178961942471311207117212316301647798334595062938637436980612134760136273331683282181764839400009987617314586963590979791806853072034220755514871633654096138816516655805457864349444992844481889527189246121936846291628299965416427248895344562045467792717427715943762279931571271834335396598639482369463065307357349826853460010323733651551510510236474131663571336268990278566383222918274128718342845081987178935445089187860087229776767740515738455538841777172201347149872306741253055764687317271072900746593140044670407866952816731469137619055924265747962779862530498569657726184514577043062161861417335482370682703241512008914941883027861911269153911195564385135612011069121440140103861028438758140919878334968513828733354397959277776881303708863227310462355044115270285882039022729585502761273529623083984145469604124911522042015855398088812715160961537595961587527349550109038833176597598561651222050868549740392613791328484846835556596197677535095472258975188489493625441386294674312144843548428977797255779127594210387163602748614442024217409533898607912877014583311754052940692672004386467924773747558425348531179493157398846534147081516491366326355625104119418633200687362775271980430533925241798573970719882810022546060815924772548156920381838512914158003180365172416302285360149516983867324061766127180365409010384604322848498129658771027860257330180350625973503279073633312726384727100848754872163355309364142360252509905727996792714900673596021611497711971940444759489669012484671935044471041655702199267940490320231594579847150750339056540884705725360971061158280367461174580185652680420144921479030147226793182177856982841045588416082663020598654473742699757993330142850124277140260966626699055705248828189594720754719636096088854582923617494418716124924504213878134298926207436731608383685141654750507677193870562907563039455558923283544345604225675534173659391065180216151353702758128285773549756890174271669481483247505923378621646483437616754562048840237438796418470836992716551952006440562193128654607858799172245735763201356630646772174430552343849445569734624439214249522978038303679206655369564675665402535246360387831248120086082698597752191022667990879828445426962801030311116581847893522894443902098295355078339096422394275563524889273652000763794862469939792382927156409745758929244040646061382449132896977655429408661253626241721240064641201356073757774256416111249091683260802350554891813009310633176994518912573499782032408212595014394223619268477853091035420443248606813402443727693449064352020804808735153840989088496147383009834107270614958889841112133585357071133067929593855448462953440098898894832729026589828393292951946862109163472203985206482435935568263539213815337042580561713445946351866960988301725142526528395191115336580748633728906134379899351215233983550995457253793370359976252266459666825819305602746543588534476053137452838494448633125964142795674390367154969965147082016896075110150118764053507754416098319379115813977939787772458300883875028357170875301907753421398818728147161349931048705555832365219868244904410549456965874120155298905211637771959144190059518698669985509093209939986192553926371830698201560209083351866021160492560375450156322198400875397648186940845535665558564355973004073073479605942159781093538931684065616984033811330747692636780052286953051553039713839539025257739817858851776594340947076824486575917504971735725725271359459881677179348211073498682361831770938209943404788068595218438806113072579733932958926958599603986762295931911040202122638594166884617077433192083192060389052480875383984507936241283094633551093591095063501495922111147886278090143087504061994420580037813484434918800497217742149283129808940494962651225712638375767701199777532556726793601610654997081773446399802692233388838805282157981450954040899700527631539838695799215882461665120071108398053724984961969962857763626150366023034644374856595383197910138924732809732775865870753408479329569853182931122822586278329383401942790399384158311077472455621658709909381715885421198129398524019894439996633164366007241171682740673676267879646142401367624367773742260342674273316673172846196547369461522360367205082902582548717097026219576136438486710320342718252253651966136912902703508961820697429442034190779822652568088236617834845432491800905260537260527160992129787097435428444006175016752088876536757789067234116061081673891865611397497314588276195277898049916424023848881159848618426910766189707484154237832429775879848909480747390479000617198697260120568642904170002723014463325271516556703212714377538386964850602535018166536028201771376861296836453164624983540260164120133209615265941060023147474547084819338513744778324762000853799392243916653145224473748545041838836874690097150677169142151754484553277308749044655756362908513979643758825294983177457211714548460923003113743197426877272374066988745341973393806201469118326352830654174628202193809748204360454463514539624559055663074515065168596250025003110240478223794985892191334284505398002042837197761507703488902005345257747319667141118844002401835561427424902584701317318736229129779017066849840824678550146580205706214665802216634369909848881503455475463005516694200814254756889341334367434035679400094967456188497232534575914278415765281527055524637498219839384216145575587865759958829084336892498563068160198764261987941067589853184923918834058077878007281417176999252529185506852531124613510241400303120275604964613381845604739737441110013822977036379758140014726673843508211415256741874246761260311938445434019836376722442109346343368941759760732541171734974069054432589973572278503890701395730807265380403800992189501609612764388362545122968630225093911865419731401249411071550627545566620214712638444397643567963726437551296646673848983385212269840847719733752867203313551964960648654392732643879779760726212393632878131503873073138966824541551336040948304284928394927336929209543582711062477833020609248049234946348808024809786821763506946853935923473741419958426971793967018816272405774283012929086470979963747405394569197269990417439475443622788580041244616392888392522538628957265378039478970474345853136751347547449150459656042236106037501749487531442157459975556841543567063794104760331680050928876384863083399709121877519002681186712301569659058981911015810999658982911756327199298695988192519941213022070138096055059630301991306123639765807061562701727099014357137842754231292759902158006233746057580952515329638535759658815290931474909329593454233449126410705483634203989889736839511049487478804676366156830714922307374533909811494893619834495630210463593289846298490471485657848517358008614960771985393507308928304286276252386112944921376950096590617506758638256595338331622544124870958373436215597364930613887068046034715183030438646372525122300943175505425355378925697164758410493102283323126627640021489347785330698566210320835669587051003393347165873989282225816252350456555569865249865028908262810422681907491561283749230060945852284009087530374812895096075005971216221244190525182943990727497451414807546849018736657483291496940360422436668257665276515677938441206074512728543805143992436221995171184229769057925950145830789397608959027060834263416001383139195142876892951156463312241299404915878178260819339928152356946792555024799379617818005620058420561048426914737666184426116267373049557760748206664775772760816413066241218742202180370237710571156464191858418404768980743128050998712774899201273964378658390115270269161210784423810680858324385292619867531568619356069773651458724921499334537604779761554150645323180217502779592432280642669902138478221606760005981697292446439123495676992489827352918061687535541238283807672337997613886601536432416157491433803237477007438343832253441844091240625053620966452963766273780258268029018458310937792786914735082610446956036162371592514129761231643971378498897867220422814755641961024374726897998751993771968461936984065104194154479225481363623965498156723945560775345934281023634824916401476036124884530875698410629237827405622191983008008116708726476923836226165726180000351847230007066019943205558578423956863977609707746836575739005795681253843683307565602178688017410552119702286664251398181739280163924752265615719200677015808629955201420987530998551048801107656626170480206060912877783455628297293916926950072621874173272360761377854151003926984847252410173969939107116723775620418602790764494726840843126591970079574249667280823397223725481268664801070868288227191620417227296008179133673948371218372399771015190370288216642513422333921295497877621871149841048353499285322373175616598543520005047937257638548916476041083942234733242431903975419596601680607539884308202401654919392569777007362066492991325844423985628645971297468529539975668263997457089758279483721549962047876775936421943934069918603272176365137533861810726791136466305120139072083004196593298466339786471271122401717086081849078545527492690970701856901952496736883797119035782650139512528810231747186332188203176697969189397988664826000071518172282437885787686061245564184913021126618952150215197445257610800873645428956684273569019862202592778282365600988840111138188789101623582219569160926226162938160097053351547080601205319967994909300747060331229571865081313898134045750713842353541533945269701530450546280161230776491842901159120276975620474128162527620167188162623358999518113224582918117324091293870197334309832039453705405466574450611776940414597104774176641903014536365681412968992163056141893099489454072443410397743786428255915288596103358088846088217781200640554548814874671596635619897585253816591029364672063335074201362803460341135744675200562302774786215079681614174068271475344125600591474598574293793848957159858356041054950084962870095733726675743103352374288819947319891280482396632963666486948133067622392997102180011036700726254441666442293629766002732965383218123261900298891684561861932785530791230007652772073785576534503350566048524215637958794524829369368516537095672407137630519231449280938407094428689899049013339501973097984080372711343880814033568525387602645998253673354404665963055085681612920588185040724264190589124594603537016158862085749292102350385786386433655322744146136605808288121536678476035660796959988599110004623965030965808395835886530643382079860754346820474101743800519127061245581723890866569473691103208804245568802189295579027121995878239319860580601840506786438533717464642567994929827057739812289974322176303486705023085852157532820471975987859958194584429954789013067630922959928075645255146138114538694539448000032253527240753458039741233621005004891795157201202923573424276004901103351455239304939543266844295688655102401740328861463013164655836908921311198023032901183216381477493210504857890639301367305824148516711847809172754746190230952459167929263883787687176161434278031761961198123478572382055271761199770106287362643975513300302494214981039770526404815330497890265054602228569742492945527993440924669316632711879188242951796250399336652052850947685380622771128923962614089310559143191980662624713791666792640442487416161189736748838317754212067312185744463254886531192564255262414382682073219125337253820812771562224031419186113244879052428776870857427179397762321323972627221418072731810690165713029530024720944101077556701352625392729764009269707973774102899839398229247071089847104444614652057528092109984762451996517091426337449216235732749912274742718583149738456961322815007284600591087141915486914224962774419270148270283004637615842109216375025027853298489396414634988017661350410450136030143298875669636440710241600852597717438734171512657723974466277498637936854870559439512801169402472277766865214229639041210836275154132382753925696894333296568058653542183915379824874174770519976568404589112144880939767726036892809446705175783587990660618287952039378624054814362849082847013335671784853995573258118735876933887904455835732495862783586922116498494022700463453479812417501846153227754758204671239803055615066272285256512363800464546446024655543792115656619781892463827378632844807441738563424113721270943579633987404747837877674228749533663470058802092663348567435581871916818819341658384261074743538321740008989346417398601981767139782747099378591621798682201214589956264233961942514624649459710679100269055761303570598953263469445504933745821401540995653899880479399262355100355260904100677407276861575227410940924178604922499797257567499443294055527774817824026990070298590562448309434903264047026171676873742378896079828627410903185272994793083848706358006340859303132655601892511681590568487776986385643386025479900110830576661144456146079398398278127417235714471684213712548199655241286017266805330482518023203281691189357224421333399785949397618537776067299128735315178984856245044161848653742738200990440183978412032163796187956928688863196610765814553749453108245061050690640769548824066592832100413974677376715471665673549963105335474860301211040846780145099402177309576433156394534191143880387036331852291753049462500257211278908186679461808213770120235950708232195948078491565315949687737356662389313786420273953119422118028560725071860183908710835798092534536557647930017145975748403440760582052792349113461833359932876371619526160990975331256339352006398032789077361318080906251084333666890121445179991474328148042988161016197982788866380388328043964092445416967628211669251876133291234702882892415806025207265383957507470120272101160523400009609499275591996855461149524134797308288389666110681305485620850283405394905952952385520386701361919632049254893496028093650553867049383993850680917400425919970987849647101480595039092718835524807217587043680445846699699976539008589543976052270629807996280658296762054057004516241881344366956544186583606440488046339080328970611656555667884922852263538127784881979588995486399095081048502973917177962429071048867497362790596629182933889641814386396212857315368557478900646901033146763753474236954757894542027329562074200447000434193944291604226785764535030955425266402756724934051311813151998050764103873627958227014454311223992037479147556316060576676034791048217897960319530600258431338645968669956159542616242513875195924210081802091673924916863049306032321078128858951307749336052753257107514377046586629564941055389451482398286525830544648229526246335775996670697363041691045931565173388832656947375463865433030663606587299272075589869208704485388423436546759886105325446044347061328342251903018109331815693059982146698604791363493436166834212530093539920706469666036164484965231010963789739470179677339130873920224937485266795595462396312701185319643076616742650955511244750658630932229270722555246462555225991195111868208188357942301647041250804071347991758376463144354502593128569311844633568838935510335299017341050214181819896604130609838054146605748931878318113428667720025261998196885533090979751414749643130189681680587595453399468152945381165542580983444026393883539567421001219081735073491225983336470539801499843972137053906486119819393614084668203358814052847616457311222610597213097555164248726637984520858257706867131248747273925669938186015789159162221296589384403945986872405556964758998375314114303495612367591048491102861171280947859768250610775815829172811783835236440381543107300951533930849992693747494255266902261195583810405638872062518483833758175350802279847862360732623408886172209278604287984830540506035903788409805739352489731063556814548247273919551137314918927684854652692083707084336219922852308487230598020341124372109959126988405919343034257918201820096248428097171612333195172458021897691527663356659130296684086843072994917371988958703445043156861652710651432492478214865067501957196285070685804676850242400076433386064658540905837337465532203064920000177915655721445172607865642774136019730022158302257092930472020420699604330005460534822481101457688870542694612121505387430923490582809506973559294232816334932531601652614145235613428777867944027665299751808400571518898749435487770987937590959447805808827498999446093987034761742188663954364334171353766752903315404144279621284983885708970428275958034112230506335886469679499841086672509068195241480319204881152730700333357483977250856013398173470324014419845524546493970406488574229900200864220276343669113533473037056239815122654810291207902882401883727969601338371642602661178551231167089925589990015914035802124755295783044433482888252273618774579926667092884323216982420719026981133911700055343078086548468771653920037733772179820509032444010775615246822871282750572031510479806991583816631673544010563668559343316348163463832673606782733968299013808687591828693045085188988967955267897871558530137656256461140629417209494851710815952000138071710658114841673268544647254112924219665881422984143302843408448582273937567716333498145261937838847515226034335724908852501863347362503676338686997961696222051514132732131764025222011650447733726701573205834815846028037712378205705045739092881144650647306834713785341631084355948069684557955275391099977163730921377943845580304434492923760975207520009890039198528732061817182793275668442039479343277299453698208511903139250406295275631892398719726610309867423985335185474792612892449887841223518041726198618787948652744281686430037305211885313103067123901615421097092879385364425156009735173451299268071333849162584192814498254820442968694913063501087345862970608799868493887560499967420144422471969470264070157101254928920968256779204804325987033373375929028418842721715747128453039212408324538320776585445270940077646646643794253957311920994093299932952209182122898779330057585557581315948061354839087919520226697564530176487356603890392067551331373584524525857257506240162159846007093745315677162180031404515770470909544339594440259409551090621275256463521409330608663941286710581464795077522279123611224818362455092891631168314915801287207572810525334061367149170731264711482404217736363199618311299351585410435563079832117371089486596594322812600015299990418386461917591730238894187115868258744583705035267104003327116695526765329461801892495292446501565548530794599495806100416515999844565713143577338973890410530042857257040145200419673384435983889057549709215318137085285307495739575585051508882611656818456735311122376547183825451934935355111308392756608287032589220151839436843828399963529891627036358913830013990296022567069628878006358915384049224770790702633104221241445895653000518845316225335715022911149482348928984559195777826141215858687754719352568941051187431030816163671587029781858701125084985146798535183387799172611355737420946777583099319745193525784679490809610292130068381884494995832061113655557347038521523801003634985812144484319688925153553807055742460840961454815882260659998697952348510163749125856358898861268485168488139654054882326865517911029777044201043309256063828313824992175432712012103462050766370948920665199788802085745496744651077586482167376477881122433135204870077242179240527447453713709293258822541409728501138788101000563669892370918223362896608417090233666004989097336733748720123895172723235351024248311451177387276530455024930401786338801874382831800179479505920566704289798430841483171045120505517449348131001360147464030099505874452877194677278731821224286591819041116174002860477496259560055319298302495729414813671468965279301342019140984466744269282006520904714230916909697614535946908537675682406305742254915920247214298155540317019156926024963607676656718951098232448089820157415426025906223795827967394636040692918117694350601231978100090676857699706175147336653270409526495582848272306248897016871044648694529899204340762401238921319034873638652301133502103855943289727769082488587717565427123658917515387053985625086981546943461531561768025411341487256521869729762625885234540722548748242453470395762692013005099241255906043004384467152555945182750615079079435639072345158314609984800340853837288273016970037323020395298730222692150843559027850513230132530181976993712080564115282908044826124290314893177312662379809564987467173108139800915021095894391797162023872470159862924040638790703604900370463748346369302117522456119599594838366143362848095579617686239718892065255104308589485973779393281883068822184191342439286488545241041342330794770444717023530358546170174316092896844483456853973498864750769607540138106692573542463475538752463933429436856673577342095905952547811386514612159765661429611235984638233620848495461186547855067899220319536011561517754595142337109800681866753595497686777026713454810536412538925375271632018128953584632224313669435861638573866600515377484298692168747289843212393867557493699215756958976830501729768348572407385083250077666393102637124562671231050429618969398914969824852687383895682798132923493626678244275263842663784982761872751467380502813797233346632263853108232444129099386592103517659982440790540940891172108596287576204046731024717714817176097993198248502955640465535581228562720644954308428852413520968160338702655066305679544787647794264199022012860222821631102009316637540876707315001084890475512954325645486800964143906361924670574097957145672854420121391112556500695497337737126889137709217784350856310063208028837923547975222356171454048646490647123134125186757678520689863686559509687622925530181382774836856403452560737330712557719672864200963236646807228125710175597251511096264384348214413441007789471292690996657911383832670067414178966477987547888204127207195891895968522835825706510581725564010022121177231835912497274965496102786553897892730938555010442414399690004479859900284442942644682402997428090034999916070029467300619585045223876343775193204966313132577168931819494475536434001198968634674967525540500320776507958384494433094572632393732017454389183028436555876109998350599604383841637178385819168274430487696075294827799453476842048176150268196429831027856195634247687512635910678083842149589627231004413085838490284770181564327916164808951548857720069670362627772584619434756360900942012374585949791794774943396958159170796859559215426003289078189100067544233384443307661291667661756262376970248007234444388852184813414124072220414602839638085376331842339780973020827380020419708683417516262637434138738540393399441335513895665637839673342474780002439945281934262984012174193990210365528480460980625662793861155064722102530554774431850073642056757977553655150829369812978675087540392131087045783630727286808727537981726735806320776719375493230660557698454429089986009776979035607061143473562616016601981816134055339836914186325872861898135619465249166183675553975452126672563719471532646388779550621572310415150698168772888602031036863085289453417498179342142914150810675528109332203526554245823774226800841568092875932625404247112673271047689440901042622610389436862619040637961613487425591208306377395386461641145847861649594883979716536311051499371152657060565604451089477245174832368991636561773197506072035503252674772164152219022070164939870968927481867129385440060408205588892548883548158470402117390011340534311488788097859049047185174389593546515997669775184603811474643745342210052283245212001018985132845356651669830100447500855658732680697525520911686632427337037900510556779758739455591558979973825926700667628343303872590110090146703308474102755329145919802481128470399799208861609112513792486114724287105038106278014094613585971943678153352663784090304250418574392183716601766064041584454992672678793081825058865545881394318311200175258150553280282046144147901417239917624042864685145086234020650997734374057914584257150727286587182389247041172766429675304324398381390639266170640792308984593451118718338401911241627797604381978172594734233430608217916084415973344841385745934452480939714265955571066168205480674977339236560924332063621832214394246006816095817085400701227282258361052442158083574246974456370545911497911847598432272296678789190224900313057389564441243974393451882267910194970434610614163830573028416747215107988180342822288580311725330624170469354676875434349263406131747285588939065181397028867888204084957102741667615237407985679652418243189359822716538837657807991506468121119587075527430392824671430415627013535047978961555110004985268257442744576440653804915988182222333245008124159099814192771769781771792288342866286113673128740303223567422639969949482896356288111271127293093066719979343026313530204327626499805550640786113231125063772941116180559946227905028072688186100477011554690701783649829478027521454261475024380424514087576144077628660320027295842879308868350126516942410562538105032571391925199452845157276107661244859914276968711775388873921656342027319651432906282476978930980494834379722708613825546552725217079912526164878827203052187447183376237632004055142279000864697563431862086558684201342397524745532094330954854136088433486768324357528764747223653932593207953285859051304141413866445415466261632885967150629683436401761334026231555146098701170256476409854583182691510439083113900823531974397212394170112953235866344554171115977140544393089652883679238896728834327241643406607400235659935486358613831101308362961707520458305031780089774987451538483852757550799341634726319726146820243599821569628229175469077190648735157156047319460481820379681288143231075700583238707414607779952259938772489592255355363124243152021119973426479662283323731141482168577922963681353901850497196450814068035343045412807488239422727114961762766001237715193772984029967334349464606088405379122321412843003661610427022635477480107823738407430337096509649069801381688212711519475397810424473688138729874529709106601297258735442820706596152163929417244729343159289578585353121532718658037665704877646086454066596838092184835031826541288608028226864455750767776285609196480677439232692725081327477124169377594511023486842412702371756430200872432201468675032774648272979757237985241975217244777239007937041343496875457130623062905856942728619046423993890162626615095684548948167924454901442521872830150166828019502568170146596719571243693084087800813541190988060549008106757038475689996613377667466091617118696211894706231188991281562443489466476632669885852863957776085457876951510886658539592358268728101949427487500010871186961779704159007104525236976772021518436031932909406135509768723483369978845320222699059384334351462176350360690236473828316286330240550255870707255344796269277443975185448197946168220329162013924778651779021593328014245629522105401687816248233951166397732478393073303287461570066229232147224274802806543994493249459872717969674899473703646094539674139227516720791955219408691882427304808847006147435921023768279133505052305776595193269664175267324862219670157997612871436234293728849821192867312493420094883084140628415435132042137515228314131287628276858695503286303172526575837250859181217340912399276146429533443439328112436363701975589286163498925744068448671044656419337468810682878492665042569298861562410611786505555963618070098992613839221283903000049979102489153330341153116843675766326725975744369285757593368657914185844275072714493036440438646536757919039328264650993983198028432539420071782360807696876424394803349497599711257022659501445369420587166050027263548581818369114969666854806955662486537783160675163521409371575758121600875420452536998888956803694095480691756690122597352736451342145795450591286899680334804514217324850743367626312114466235050084314067053646431632675065064397948050076267160815382298211135614523660382570117796366097701841226925941521889904839649247578738627003717753390031966786140972703316089898922155918190356175597404020797537221398653996671597372670413187503162570955445282322848855670519904697125634516250378755391822559999510550188911506749655523513702240645781079072204273233065095006829793050748962109552946953907601087116431040322299338827933184875341545089608940651867854199184536584813815401727838168187640686142155416243086266988813378856798858697338169250139459931968465521205915852528130359098910272508666341011808089409128887970543993812139725604330757871276746684887848155226434169186297190873007806156290904307916651244788214498154534714676654343991847644821654012436535147224984148856318728263704575427168862542276563306313594733562175340955391054599349325468019672624398315908873872169051757959740478316322081054588247608745994326138703635102703583887901743162969979010199705058904953401768443485193992464305815446092931443953472623776327496750747831294979408346843744149780519804322053257187734599321225181120072503493600751565314816773980639123484976666554207633729389579000422806378964654611994954596166327486482348572302315703246722744379234443165354156809944169162423742193501159399286277790917464705663937704133151124673406759450805959581996305631524800146061673377335220360517025037224380848282953867673790514676310195576658144346297169678806465214206363405759586914594651956198086004431415151533162239953891645088865668111604130522802326488075474108789402104507962371327457239909863441588114106808874362201556253193217299731111101123643431715709369192748147896448839931308868418734114670693835302871307836089907990802951957428127826944940978254799730711921757796451826263819975518575178073171799071060746888899271965273683944151676921247852393665127726769417180148281934927327158401094660153782218416440004295278509904692266650963789696939934730610650364764270551802174185010956305012691686235855608626601846242462889186843620663967725703562548441010620144796310279790318617819720517973655175440364584467531587294201874912300986300631145843398540241232199670471701569452532423900346563742565908292131652307427164790795872013021191607202718972523324016862172263856705760743949978773425305862046010710591532501105656876985771420813741463905897297453049033936426429581255096624948015236834745481265024347753520594401580963918277742140528910947864771352801250668630744520974975952803991740182534067812731307530460396726972101437931212662582460483254284277335244885566227247543721139873303802523425545562982800204441289172494853536173094592251319866174315951948603067883198123558845961459971418497458000253917372004385677871363649640982101537663097081297735087142149981363619881418706609564874298633998335444014676345007710070535643790843184478850481377361488224534529789635674067862588096150650369919788825713617383101519725423317275298216697780805833059681213789762233201015776888027675194622491300131525929207348547354844527894972535887867445826988819459895659002050638988654201134126358980355117456891904886512960528821849885077398949949114978003426524581789823870772408709549995991086159651865864545165267246138331923074033642084126293543351262236196051027298967732199714973373244562415167709618316223830388322860990098386612594620186042502696479224096509077544460745127540727334565481752433326879101612199920738389551476006962364075935242426801096876472541807396825582168537956354023642494422585454091182418140363196579274060062599617344859499744860845136991717409590605165020865130798671121350027080122801790402392423029791619826100079702018025105404537577421116731908096781019215530557177221498037100894230579569496725092227533149531221119384427333244200649736947008518920939976529637965445010287357550682614210251068520457052499136757397280560833630320148792143278550469124962967952673437263900952886722187067678123423014932553631048677900063097211343285531346772702370068689720702292288308373269553332295909396667311947114399418799781316650767675637605172946731473888635536180225818353340251551411956397148238066947245691526786454289666628932303449823152036022476261166216617873413580601616732165552769874943288777463606460112725655666840442982466219557752329465218835452189843099271043172431460992435190882611807833217467154748388732049637867155786312378502081262156459648558141590217901929188281753004085538195327559911001968707245721497390704747916038462288895338920612213745189994030811419218233971538669934174391893905490900959148054311950002767696395323540901757912927545787081242957669342825224681182409826207195219865188244751417149166628576554513729978231111431786603747530751146884941260081880434212268097917724720030511901864189684579658569824733392060094012397988695510759242279350258005376335955232977124078351909948384083702727715604547915779461071640878540577706965129903376124278272673721611406680763931562717927690240976006122327151248967752386292640298783848544921697817425473654106175688996632968792712482295294112356024419933448673816388864912761938472996201434419059044172439304079407272628651005438996424178682487363372261502700541720572811698043236202979664898292659374668718221195344918913024905643352111566615055399000257325350302543339167555559844436945494005184269750031668089798144155926238583214858172730215040272697484336801073255679824064012953296631542897425221187782396159906513297761658214264422967107410163377231272813873484913630663067007904700584891224626512749661124854405970592972982465999936980030268695057921879257000235285474452442156975201710010722694525043367486760469040846298372436160034192447302011320727492259563715682717438390503301581843728275456600686099892406530466107582258888078642250169694920206401373643762136480272118467609714560461013614132581052475026148068225092355035587288629227576846488625742615603256444713983786107772780576623443043885701778303607696718602050403852336468274928811768239068389034078283360095737486707715975283207399094103578466349431183218562247788300234630520268066230800637736920749759685206697942311714973166668012431830397055132022543247493989091069098695483600628635342759245110992786451242862143186001406498343460665835870651711824767458918043084394023842801781890139672651214737030717498756015406943162445386545248119628408590981815874293324163769647627991136462382883399859688333607848597256139246541039747684144136877442855786335617284790268466006385275358063935491172406205023508022076827892531883366894623043695606243386494013231069834375519213266296925645840503115427043975737795098352221381920888962157600677765293526013961161008027731946118815298786337345547978932376355134555498323888632753080377363133480172152713818427080656395026677379300700655111582821021302518463976111769535126299791105610008178738687853025597340823106263386954138278633820876041324369317186641830288303072521039971779240393441281711496024630005389186703893025508625182137607360051732507240434648692881139082187793069872177646073626871504072757996321008599257452462800189315327484976921926964096883939892268209687169854844934078686555489386760714801153182160775072846483102195643606747305409453526531372398157946723874310842010475533296670358611230545529726368266772227311420151077976184159052814760812202935734745283712421295253214749890578405317163480093098863913641534236269510747756018546786357292997604860884212068995620785430119297330743658057693014121494807290853770901960416346500919463366631290097493552589195930103151955328739219038707580922933055762951500050271701100825694267416944750363979332502331011624091680726276698520239218486904143911526798155771903073407740644420142027810932859916177603575879458519484553507826594838041114700487786733725536953053954348447803102398387680829071476557427545651098658954791573194012430234950855123164640395197743150345131703731646425823916384610621051820580745546714011340819228189180913647431156744685771223520507665289588664738243499273338074636688666878856485494824637005386478744500790050874280605126505072953888277710569755150631171816462381463963609979362097535016653258126320249724400433158956670790732359718413361787583009449249215596662866035903025333438773256176515016004716426600228997722537470099266517057695831691222676901329215699194121007089404603624964721009449190144002582248124457424746607665494530208695245435383298191556304862357317269701762900763455108233781729717873538715126782724179218343840610843911381437012615417200444360811947583381557471541177002727045264309894202158286819185084858773946540858232436260731692210113077881208147566093114484822190659822722585833966536040954716269551044242875616239968300074206865195320603915386695252276464379468696149247757559243484479238012901936677907159870228843332240986800916123703319445296325229728292563266958855734285351463716576749699447055667697556293818046774689691566271371505190960429627268338088911665864773857319466660002713898729161651955940846264320914358975825240425199977794797726029814866507341426604791685331645083478673967617960521500899892621843836710819931994882119083944744119719287289710020754498968348897117342103068190853853158234896936393189533955251158478689513428146897619252133588469835339358220226240273343305750118222368790062813824415917437365816063790185393606110242841023671851267956316798897980340661557879013813412697985732371327304260157253320500315938256348083745091412148901466482501525201371578061040071029847883234467447225620006835224641065487495403227998406510411315270168601050276207479608799052798036054607414376201267395272896551749092610465818038713196709818717301528600826139121775567976573444637274532748980051700195979293457679251484680808769393574155780483171195971012452988460764955159266096974690733669187056254609824142382473236076156036384921737293694943872145913717869052297337548514906733433214584164548257051882036182385510711016449339348426425477474429877858508163698015054973887307106963760282290977086627797643437644847323184862375587281574320659063313400673773557618833560868367519432590367103566884290228983233017550556630073533995431138418804148118877658895392136269539812720698317142203605494688999993978264590094651822790061074894858049534390412172326918034554662724011121322467346624402915521706101348191782336883470102553862918178030165696905329295278895848533099060102181941451455570324618014226223884534557917551283876344732928845289587433992600597812538938300275885045857213735841597610943766318157951820035378422481273870715902606937787200342654598271743355238683105783131472882329811334872600100485548749499504523764081681031729363491475752060443857636156978260242365848894882905589397959489256865573081849665035505634140276557391168942285440385491973136089100262562347799582457514673279791212788968431911330545164946415130467362855789954767897256340380298306021230900773960051620414307632882290416541370969918236222342591028292213517149552491431333926461365419573043106635950898888115607136658747413441490711693724909599855308440955121897665937743062009621102402866306516470125139305721989243374818571171077060470876920803929274793369211014131783205540091201588013955275356485006700688822577774496816935598184917234320632443654440884704595972360052966030064217221565177132619589481253499031258129960787388747777248957578985445881847084952659296864719548282804783617730349279104332356786309366168335301539097678198094592296430648235370669867992624007438861568736083181828707773720241360455509454008543053678331575832773122126436221788867765194730616310071071898705635295539744391196336157278620047490526757373105999814202532233728544703138245779344326398010732960357567471740792988830669109664220620707457624520396711971588594579843956366644259855679013548456620435352846104223244635701119056736842835794314565853608072320529609222599946056849162953537646114657444302387140088834748813703175528045173519765109802541713030999118166216017151282871769218316219333403344941470212401753987316065388473719695166215540778478809328463801921194139287678736057535034179031269253669764035883632989943899191937325208673094330771528829330413482788375579035168731448973139952201811733876131208380651550188404485505439357675786463116089180180185880108292847690226423861883666435367211065983514447000266314537950658397798173815793435995454840888856887523230570506275782001569513009471979095018700897643018116807174534229569871025844824072371332671218106796582321066260454617776910193437628352141587263820788612103936076010651180129371351854416855047272465225835646581432623871064753918573774157153658135380452940361270205909806685852514937781388742510429670603202207599208983114691332315626160797979595022479794062001806962818046777693337248378920984236715576613680569610384893624961403964059756786865416977719228993083041479289852689573506833152485830332677897031770347457501211265051052422634133336311449426676507442016556074772553416698282462090806801678930062597748413434788846744001025593710215323820988543033983633022440413300670087201932640445038149356617598024942079297664559604577537722045114476811739475066035795671592678024053414502163588131975852455464222553440692158056586731691491221638433248358227861205094230681215746941434480301047565877472790116662905677864659582103904236873471140259781968411206886018008328597095733851611025341285137076338633880153667706620694009283068467330401686229320339982427893713554951411420239942872254754155047068490247744477532530049273185471226896323836896340838703570119897399463584144393551983117669685550512383271726086842291162024777151563906976801943653875146109797674993643166114888400824607330291140560193312898702926750499469369167590577175056723602500553405852803823192752108967895510837865605746615731099505978284501199546817997327365946096894628739160076687677404616379728119253236484111151124049712362359924641584386706842248445586417659817980076651096787181733999230729678770032514581079161721031058952106439353625232305524686982857770950450804923428193022374910266691671399465994778641894185175444039352248524101907225578429377570082848004130372070467327584154927294928938963388681646842079045782027664833966867632341900331115167477740456810987854810853286431084495767156953309354748274412356024914524512318685260033294322547020331837524737377675021404793636957553452434040397634505392375362006278307708948479828785809261028898945593286999206177602291343994125252700331950090932935709777562644375693846578169700549368243878731140765660887218080407017111712689024362380169757586659108054842228433452519837347150681734729540459832048019742225981657339540514222014145979233311645459957272442262344534904083776220590549108107726440841823474013755518324045583864034087577127752649409095994990728149106978097736219007563331538507690665202282346587664212411796932155101654833138730721291309669073641157584386241842180369557580733099959764401990709037847633278695850430105971978584615132737212852049031316602527933544668047232530384730054277454666121897873100655297667018745785938909428034781340935052459920142308564778137476545929080846342744048500469455919022643203081378940521843428361385831498273086912298470926835002041681724830598997573588784487955580248034196070569032035631644310568697607258876146023926292447114828693926821455448824414228079111563119897934312760521059400472126774046142095081553265630941271587940425281048691015861224451188931974321923000437959705992427056628169999916785769246101282689587175071909314447058346453214690688439662086717381829285262229818898767636503464968263362194884239548452985146624502089284743094668719670186419665322463307788349147251872371672058965889919526105395366627100566787160329083430163261792102176081744916797389863911234026362075759177505399363397220345378481839782209875008552174934565468195919160436337523338293949616148236713935906470933601838147069714980745503504196302647679339861050911778887371654916867162021880230447488336299935561447115255050854777248120515978120797682278937517273331620191072159034726510905963900820167057679603449754441146034689636411831138425082615389790600104858081345060463315693559384401606402425286212817132059040910032038503220518394161712451035953313482106418352392730090476165739863316455803289932686316446207152632716708240208521162799329180808160776584957697004712357525404407468937915007584118792196441832178752391228050495336399144445797909904445231846080252637636413689726505361055746306203494652295386416480801842209745083896849870054486450651528867599613982507176125716905858949715030678331544479308780157039056829495071709791222676788990434109404567658061043215823196774723461449053757486939657767281403732449835186105805394230334060997674661539729654289019143224516180595217817972365780054399520993973518783749567042089814374549058569781552594249671281320570868260011912919570159934608643115951886884139458878501940702715857769348068290977660964010779636332588651907007347890110934697588148975964452081977087553759041476735006973950316354920659917665445141074961357677014687008808200580673495104458011787468214528213177855573432501796646065013490343550205669335309331700046694954583426726471546014845745976175783343119131239270530486385962004765035829909120314700329371421446274812233069863179363200669522253705866041915140094431502924447151744448303652352965472989898417490389327959199504770468717669605192769775045715085317785059713899928688153676928294999563786553891443899605864366021636332046143476797882838290863968730763640141886107341749178206053236327101256854884106764898010730280216996236196559177332365936290109702754562115981334009791612696847084569879168532786844069866148859728304112366491355931232888021854881395563801225912129721239425734980623612972606302058677048971115712413294608800519251193653356762321418976155891993554271370659857386302796485015263678442144813804929814531383564710859623394715816239180668204275984873117837525865781109252520308332227549461107545072112326269750872465012620154723644613599018798615832580052292090003020399728557619517767447773259777011480294904320664820852047471613424110907952045075104197076672749097205661977068694063598950324342799166375343221390427907526007538479410182691862691547297583978921998823521875407308929546130199647658447462760483975058420982431922258880807023452702139906129370339003346093963103547770103051245331726591701079463607024807327735893280148392089367191862369121983600814625515633475120048885176957379667442166468060676999264147117618365458232167992401921234504363259926088778942925202794067218740177194440197837629418204071255247435563730410540686114904796412198798707768961042396676743178358776383576794840188847873957659809456806945222957009936087825451180025913980698531057386087706552452430248630129191522136507586264816519251185590536065086165831135266129351596019653672421483217898486396354912566654314695990172118100067503765200868940939882218360132210559364810231831283777324941185120555691292839119055618562766053768991142173527813837745544634063657157227010890576071649090755667348901729046956913982629097301585607298659060613148587198725665032109837348486392746635847717608898882264959528674579764909010888172933840698689257813470092908312206549173386509184632522610232508881065889001531992559764791029078685053328230857227639905979824745483518095204306818548303854024107321512714026779753265334328717782223650678406493651940113678867116688229556298755958598785115429149909845287031851175604493766340478272175619395694611489784373137103975710474152836572769690359130561873365236389876334525520852201068554794496224722966666340172725276322427056987806861562951338803646399173263159951419325001722346280987722001204874163948096500376930380386821915690867613439274204448820588861762197269562303447805831906169190263479393560618537829541932199604688838380131844489829458809777995018344491638131102705816974892954729029731295503413974137187112849365406164001686080983779221970824226461565238832682994984769861056667150848164429479906389771081588986880086163940103531978665495902461393790558210414974983783881497695041608829505690006732133050898626612107170453540944189517851045677126549782045697999451728699398715017742416359675597345620943472010553008717218112916100896545920280528407824541467381995889936846362544775932346205702293430453149954070826852145697802617800705230008977697901970923518822657194170746612929684125553521653407560664260931443023767782528429340874091103674480597052193691919028471512683947069837159786863075051496919573447715670624542890894756847179994887501756603746889801101177079768247875837222528663752782226669427229366003106454987070747733503310913888872121289540022073542461198404146594705909942100235785576747399940373309639493370525100921896423214055713381829361745517326032906996028304588578517400020695186531265165745549667692074641667397025710566216393616138048826526792882612503523018133225256522820210448610854526426094888975180969257115731020912584378199056894218820897694643731109471796072749553395947605856897422264076789312982829347107887095330302089044465038637794866759163485312082489491850652488334094096267598688553027879454383474243323417766739395225068003844706250195440315127832815852692824743268288958961920062685733513221158947926633574053543719442725240838395356156437257074309276149981732994978299291465131569052279100594564153603735516153481857772662399811420606043284539498226649748097074522798584064776380000768408192867081971301639607588206193029286801720117600258062841996699455971633542475864180554737095459200100004638657555401106345355519692766525697215687203706081810789072996795251895487555650227594685272369637436222901367687123835498450396872374889883301890596610969382623631961924672367804924214054869352091604633841458329993878377558403610658005840456268964463400948906687075814830641488688792098688479844330222998959066370882390150946688325936812726947273607361038044185671155938079149009290105823856090731013975826211184652932022805665044646816497613600554607630665051311813346077884411700238735303082716837570422920606215169132920292146701167261676347822103229063071759747789975042971411984306513929898678642727047356222183619100229272478955185141782210301442332973249520247642311347078995219059706001561451426544838156681820376296861823535885369456147217061036655224229583789748279130654244872764348470968190805772441266995008668537897440288427443640911330938478947452449246730368427497311134994359944639373047365880448838187612172741986740845736201345187773010896578657438028887673241230777149319936443284574628940217353495129223556571762267008328803820664573821153712552471929125169962880115483915726250812904442136026738155385021995625299833698322579759408590832967288573951523477323965507917770485688662640844063610108484939270316579295796505223621722267011922334330536699181637705838282476726447183505918007018659305887946852002756693016858170504867241542184593915264687459966575277006205290326269487401999191948445341740730944260789868199061368365464374746171236923426158651429111869345381502030295374000292526462998448276693597265209581332070720172060074185995813823726510386522358475930411381473598543423589020281444370038287339068957250456532723972471221541251376838470925375431922023121529240869082887460366523975597042367265657058667109980552686900354714550238791178798079268607846315380796335534818528245747702618342105464194145893621897802455052582659634822266646057480629851555929903232367271193443813459725631554336562465697167237837149534336851060598902967282936167719532357295142904816499640116514237135686918705770055699698067327622292250063717489666340779263412239535036216555514459261836080938011792267907461309580500644918295820498133570489152968683943994190777437810685166204699190426741398691345238494847799934781836954374101090321503396348563765513926353084244949364947443614438363620662165896576198533503375409685110114916417968068304430216010445700685874401656345171671381677280618635173633666151726851449027059458665757745541470605926790216519736923119185232216907195144663976038541412821634962359033196090927024080470249881867202944421801670284029221183168832579733471848179573514643830112170630111997533055345625218501870823086221487095572969142694028734525425523485177017800473161217266999187014760135348181037366617275052254200750294100837773261105817843194705877280001263243518881639808325882008465035956130457406039001108371524398494441402413560466637062320975225937747288741959880147328554022743071787890009179260319090376931362954698265809492310350463660040348815905061480288877325021440039871427349824131432029118878370112433466833591606379526209112308196477109651648607354305222440119721969203310899912129151587850459955511505801282285546826310881526840273050248082582889881229843933394393259015961431849629893354443165479286836432293109353299931304749958124545234394449928960037136516037469283902771902243607794294388526525135358151888197744126474062842574084602987240001750655964720830405396893477591368667752919580885229477425651839160619778575531397436046665415713160241430827136566650475018996071744649050698586817999596046244304084488610114066796332470001911354341287937336892965984374984630522637801436541100902070542696441614512196388240946432217107575793134291031978194249648647266885928376306271802948902767767887704375528938390967916819983356445007736172720934502641712048919140600033888127510387351975719202333246590081366193061177036573013026629379875619925479723562848529481603689156868557052606950437127353628946670649127661614865004302704924925960389206952219571881116132885845589676359956030488694524600706411441046367834062898514844861147634007041603473295192423543013414351050406410957130689945452229335443974195722852818519396738177421079028051526043599906216875811544449075927849531794153365552246105738356600493371750498551454607086711460975765347441189764194358824281794664432178372457336203841552741798108622766440783754942825097875916694186246350789908767041522955975325374639418801235303905803954350897741030831379340555791759617510218315824803956513702527557169756914203969136352721461686741525273240086484809845849232195051461103572823316679966397115195324028739997781781449789931441712195895725663271506522694602776031917888643570597384495001077583226248772972393236690500589031960470175089154159415904827172752153909422140426739664997820604564791074605134787954402138399656373975725215087942548559673777754286500623928134310948124013233993043823797154830194498059836407225792018299404932594790923761065218010353471125959201506067564746961137193985181282731494327323717580009699558588444248222435124209773253216432378655440148159761937982552711263749036206318074401610238135741570750452446136296104368009459155999301748092011811476931729964264689759901287456963920524371224220650239981746124393851949788852097519530847961168684171574270814880448903838701770421601176323440774143803541114205151295607845595103610833074924571639957283777382475177478156238237320491905245827824011963746347897350748157975619562171888950253996303907472036936932607706417309715559635048941990371280917879203461024379676196731632428074397627650136484565550541919577925217029813091539223526842807209415178331543049507273522315088160350974668093322995800095172098578954470342151793165065651741590577363415453776793777330774408273256607770292057050243468707123918866936888654682050132232836940918247928491296714566783451260640918004076039921299041199703315476352125551277633435552190839743292968203766004023086300427579331338175603597629140537406614701763414815925512372297520554744926251438683691359188092435935621510889571962114165125198039177888918229242834768541665117783387510365112757144711088637774456155935220794636345308717751687870260953328638372068768370203398504838161381457668897233739243951266943011174982951476108509824662038670503427831634845423044375951335552041481224912782995787074688355967351962004895397979584180586472112737385936105543797920811261396640123566275851508053415121020344825883928030640530635796870407964346184123770057505741318283236818399634307363555353971883068019272143339001636156041646400458237969888448865148096050728405914515628063340152117657912963528059776743634057763042283017050653731755413533331350945893883375280609678723847138850700322749110233771455389024639479133912561247985437258535843187450224855141063336595739730161978565311700031897459421706502342308061375512981262558713270932104263119568243793866092380023748117129998869734261270955347367820447789546281729092302224893419629718263649376976343836668900997300425347448795436429899297586033052668947565049058685446653854463016489741430910077591623635439978813009223853859834450083567713291593883591169184816618369503765912202779956240921171677027496511730582609976388600221267393264735057311109356467304821570131192627287230625444109037637013856627374500051163349051972038541114721195325609972360584238611896859865628034317263762781126881800182592477660223371727655972598608817221687115577126987754953475484939456189228569178092821250562657647613884892105838881055301066627202344071897689314621722173503895543795261984962895405039288440664555821262045982506294167498746408118221468394391684311040023354652772175859690801966287941277234273599379233143452456297527491953691463902394734358414158891033162778083919338868799014018958210411361684187580751186845716489783505642228412924597600109653871795348989057322436788991642403483187140532175409776908930370584681483173987399159907380269163044114337268161014963153729003833012654091425977601015504877441574354569512796705999279068752439586816085792374415817040482726210007653661348715258958985524315029549430287877077132758866306161434432911024987113532515837709058636763780667165704918282330143755120113342535707166086103900616166041485872701792124989825321820290535033669154640814664355009422932858344119969792447501754536502775592206389168306680152905188021719841423638826242613623397798838906348370691474345637373885838835821363352278214128650871956389768060732305326938774109326217767971936989998047124839284569590951964500911513672677356652319609389884401331451805232561209799724382313158469161839581600308115849869948367902235981113809283939189326409041248660484546490458342277630288921086398214337823582649694487514081690383271597248996958671741067918010734946725069043441212661175831670607965723682321775159959746827861613162530269965884737881536620496638016660627349992637818497012378108764612534733476316017373631014145799213170292917656207054982897017439429557373625526155271433998386910614221200093914134586148062612345389061399660900207744028172706100464161217984522112178124468310088997676802190747103394372305843322799721479564445796715382505836786812188241690059709446290231455647108837788306254095538742539111647737955825776291421005258521885134160277182957901784313383554025696634433801150649998193654287198948104261330162747669752187489169691412597729808903484790041193092025388149407393559144290461158509772860304320721643316536644694804275397030725949344311513007894253095939722173345778380247084403790138339088312706395421724448315405254997621369040856393402518964260291296284183957704551927233065088342685194804611045880350463486275170170558035566039331769651702623679640041836887689608907867117865674779690844547154192177510185710060260729112124569051618960624875358279615563250973918075047746197077984303432202279000590210225851921545837736423021886455762713156296900071249828616548483421359315967907813820675157641598789702225835999770719500132499017998175183789107849439425346298196595323600577333113003152117358936648365878525133033612539762217977270597732768723773664010661089880186033341432277142254700716061254961611654797311625650452647847551677595219526686573250137443655853606330812904780185450351652430071467608535664246765587781243453205213884134938312554967044302684856840402499919047951339742523488869649968247233390638237121418437855005004747506117452105218444383951837187333703383859702099468359565628516369339830487315304412188476802442003229782829762534502806262821764828992089139020675827083484961561135491998983108019734512841047399378210979344172168671157354848775997782388595520576644638408339052955198975034144368564502709416181450832332721547596473554035112496851374726745483015116217231932662379668766929199118760618023391863092217062233304008263754859187418779406514648331291805072685424634326498124579888783182844412134253601022839511951374975912809450101319839290332850641025813756686002438399942601477858995267746226321130996327419461493174313036609636379087549910528521785383591310187606004829043559712298928991503260975247136125929248688655243684238559718619911396955191018814326138757612965758444074233889931665388879178092780187871179706060048639654967195146477844509111132958344049062868900830001664379578095376977174105959700740608134652623083407859731041107850752209153930522498167914634336986779153167363488021558319402665668316451698709287302669783072611645698853014729838058552481533069109555221511134663950328111343770061679673316667683854337301509903718529268472264075615284560834870165424124579455549166902122484323247111707875748708200942983927257752193367342263864061655259995306581372241082833796299031263871284420437033211340722506079938489578054845081036392819120102097038649909244134291330983570335876598583900999404186282755219326770775350266833219618830175286508233633200584918024844007632670046740952780681620563699435181385446722448062360967827939099411641994626130593773866943467406570694255869096339857019105267632037145465676341217356557894244660577765754954626287357452081473177496688279081851444237241021094387001126290803150662085977402807464709912043663262603562058411446853673432794524608347268095869687057650043269176013387370709887412088469658646124024789023153470764822859085857705140852564472050791403995070475471362991789569672960743634035287238047391512024188053583707567338621837374148382113934777778003906966224322206963094046888310627272507932917191643035206422186105784624265105153210620635102813845297779716728095314942950771492136864190348824753698817173685426703037063594229481708885837967896454386745773619808625045473600029232928905432730438363441234365083702658445647248205963590901655169009056509229524529720291507840134014559626135352577398102001259192663238530830532648537203573223841036525049354104022743538928359325781634918045133280521291354116863400350065339711383567540219120036069772357682376226830901352942909416419721300744177221936968586088671145884111536378316949398554491234940830302032190526091347869102232632895034082065533618187696605886774525297430256668431580686135139301902209480017723984658308325299661023319317565930833174138335541286709011598246881000671620905074070422697157306875115922641850079548841807019288801759811647557086090013871617026477447865745024735894088928454260468968191874690008240791313383507794992860407653595936584978190291033870413789445004103538717604212102692465230939600230502311807676203427955959541692946253352265647530448414169377233164116404622572509185470780590829325556373119054243574053110966618143361956051001706548112069356679108070853274372248786452119326137001371378059408782229176324764795777296070712443386379157693689520463433613687998191510308317268844233035857931368563416388574002405309583433601488906924483553407847685316947034169055064983188123491028950581024470543945752891500692866095268267130752193265527942390253450737605491695247961474112159734245055161938754372251843458406582684618186515357863672479901665189923175379333452180439587388692544781729979162389404809661605949880107236103756211335453171956105171452276754781939632281938681464064358057292522768439774725162293935040489791860417465980700428356131846285853398102626583939132942770427603505488281475628250797503146062797057047899140822796849824494725235695670198075984791518043944609729697734336493245314291471721344038484180592409211986144842415516504304755449051743065340925728415886558488142729589698586113321879990088905926388230855837513361203764355005238670631845606770770162210283456880741950509890094278749123488890833064608109982085369436352247306345771153959352543798826055641255676668213990563335560950682056166512210599321530055979844595383512563988409787985528711154642467557173870872309342077166454116437501117664754563966792211733843991099533507553000328968415404158940881548829482716537982180668701726596674403248572159472582020566416020762120146928696309145655651648365581620428282004734239662818200633676600014929489807711852298028395550608613346010885777003156590234321759638671727776726322381658962220612056572107842718974728238255919914426693415679563719922457388462882186462442256450234927595530365109229152610522324985146917271693834439041868997020592628890948705546772797439879334294317849790988348982514077235643469083991184092879137042036830874129225143657519329935663248073436810508724580317095881835148557069869001365160548197574018602685020136614373110387441234159032184122355412702240178192308130857934923262327943940288998118321954313339050807981458477903359331973104026644384601111379321843544647722391476958224328161848426425508873381731652435383201690117897015077220065567128885736323705759712882602620693193389751530210556044105010338330631024774629135960872761495716749408042284910539716346573219011293246963793479558340142322475341634750369628912630992226284036910950453364604490063654776064511462772307851472594977240631448131945186817378226525940273233174397983961848603799655072231242867809721196071819494453451226715226862406778108869238199140404810808050325534380035613529365812921474227715768928165119530166108209531633891929290979119634865975657423291841357368915827979244395100713620387607626269331378949316793499429596955912620694062584077209198952740168746554342437747065583250020364149600624926795924430574699899114838760676455277398222444134971119122425809145983512181963047334010843772462288058557223119573661129350874997253113519074003861733467800826217669672397709132368784679513652937261678074531514240494464134646212710901393215419168866730099143426452024079003547511486092709111747315629735621974762984095914153085671307559383863067184620423130636636741707037985077581937920068371968986982355751968410541023678579578857219706254700505569669765777209572329028394667623264836619913350564823827892647868715468960624879758728584804099402457075905745484760481218050135127405098758906735669414916702696563708795965179067827278863126903673003877448133405942337640152833064157691866556459480909562199383059951699040780545272371227500283710497620758564755084310975946817854162439035184553671026824844912515046846337614223217896855006714331927699978682073296859355118072392228288670620667137991353932606478007484510607104105395250075858231025103088945559989142031090749992112089993376905579752395821381726130156787065553780694657120434043544110832648415178382914051814066737892350807140575845006794870446776262215764402400679791631716595730162754193325178655755888427498740126430022816271772236859681162549438577031140536391737695373888693131938075150991168790581267110859333860133815226847473552523457840029811678065189481385763120960461563286402862568400120100350476647658624527379114063147325039087457617187997283193489938697435301425190600900994809191734212882240355441608852839340482036144986689879830822014810533221163937390233570819527377724352172541033239864385782703649380394088115250242644738993714576660318891979547321453904769212322584430593134541824972936754977950121530669147550885026064654133906019344790162265213846915732875825937203262612298286154514154530368986527686748052896121293429480767763258404346643044063849211269696936708277875759083490983818118132378641664090598710247701863843412264990757064885092752326611054065283794834922584010119493281975349828770062461474037768195301787872512965250313093098721032414699183614321036775437860227896546333859310476851599126870929683521093218065258996218636594437267168615823852452391146947795841019197204735882155685646803876583731713960076250522927535002447671063387158705732341357239665780985250448713569209625379887685704365305691054872414849460081573736466875392776953328659579732395843167689155043604674217142573506595562272819545648108828474879178922033168057412984940279647883324668577818995092550644883344608354037548038545210202222260153180504862374960395929455133524436987290077003716977153243287608474419534029145193578615616965927884304565969323247928739232932945135495778825683408618517896805952052407173166302945331250372556392735917939737210410882598385459503818028446994646061639366737711707526017376121218703214235869532341480245378818695047161415716898056717662817416533454763394687887324596562203225331850986966216411546742371947265224265683061069922793414529563711789108213355684318230486825950273050219895134452992660367319628282386339871326443439895375614744744371141409387016862186908295990377247481224389661868372684500170912290814260127543753532476790310794375819027884122014547079283447340291935410690428311557263083348704710274321694787288320860305250167019679687448506191518725524465647205476367086558159132792476401389220911189528061574340142951370752974785200854113576451090567699232809791066121701214555427128856452665129750623010302339576818499399281494622974113929758022836001909022522742183094978300626469126333108444464710190335402754294916090963637472375060761195397856552269234768838919825269670029518402145708340904042013157637856601059292879479989256660227005499731912621768853435463392051009948783938547342095391603621482029804948107435684910885442727526358972053011961135090346663536323961029739270880842578021277312471168533145679618418052510520895213128475254177064530138280950018171005792961395733372112985094979443504874521433031715147675539005241220581828393105200006972216650369456130584054087629598692572975439815043629436895429480121950768650487684644203873736951690394607746792266993121292429126330973514515307252759579112125222299041352201410918017462911559041735247232475486900687487150497064111279826986067718755426400987407869840153853668121179331511177708840574475982212151293316059324886764306861885395193685338342246513745893268015242528375702491685803633931791415092645807059298742487240415128608787641400425214151512955287179269343044879450062463428371165187041200471922204833706728088170857239782988863573556320121145796518209282749102915522315401318906778995124081247929928183289354405104174288308481452574131792275695215265932071304270695546121099871659571584235602970126818294635704889768922499233936179998099883841099794897964168034450540973094919164484568494763975096491970429540284695004368984411160904684832023176938339256597213397204816026699957828083368457947808849847713016425008248179588462395103272117010738246098478934521098162726395334227192699467082581647447053476431622526036824178706241940424430550995321381851858919361537696307768954445273350767132199237267919808991282007827617358155886500258645667884792789241042384225841109102997531242763220270279196594740983990628600153506809781663282738039627961872755731543184564947979093846660621521209654887996092647092107560507892920870647431945572787758366287053022672945087074235706642428122042026043967815596649171840889742614641937706251516769423634570850139092388088611490752985938589943913680338146657713465758380294605117030745107620014977383842631134395203830751636404924157050902479452983395178310705883875301860569741756433802063379359821790631544282780159981487263475027076269565463680307562509788769432380647789869396910671359318083567911133379878005633909868646116499569544572455372060567523878758970817724158738056582440581647315280936920002354172122935769677083394966798462050773223402876748641240599275667369047288894323315445425690416599819694955131844069563554554700025782073165874873997877240665050926278821580617932602436612117794682125932802752020991860399281288260690926892193039857176122465014399599364066454891397546033039586875635562694150842541162539861472427303234112663987819957784827727070954746056439427639448047712757342894297413675157469332835174920187613361759981778902824442436036558724063854535923383485589916254470466011165150588083580714336129822617178664341929006903985273275599034541019602273506012285215452257791978748498978248077650403988499693170972270309247899958250725047714813413597950033925032420572720933079193890943569151035322095056728339247465561626568943930966511303802257093555424352281533002020595311388563801600466419991733752044986337888139108493727437126991005473969117799196657678590717745927925011164090911751181737814574361052964096072743646331671496024336881190069558195451836247043971232139351050621692755452228112798409914244188477341201382129869480826136896268102470785202556262902656807837812412098985630875309909057847321505308161794226719755611078742668250508385757499290721296600073184341417316542145344903363412489897496202382609490619869769440463392546315153212091667219922612591904975846660343804118794544945250783678278377132673273309157712262440195287450312072463254700970550116618788091431407675029164746467238097801334551043184813081800878976130103818413903773245487276011491182315972382365869300801996610002540662708630413847505205629677546545063274826281359539912348768919922932971717629260619818252513281008570135990217867405449990913243346339303701046848962549946627397483048522579493177024784380554817688525034983399308721859035716064409984413204722936964501701504600779078325186565505337595284683852420792554652428516490953810348466936337099792312085728007511404342382605382699624705650695730880698718331080343338711689414545254123172008841182032981105284358627900812245313588755057798826066187226668415663246311973015933214158395887380976190456834896554888613829939449721014634755465616797326690899273893851950267089684830897914368936287700088446035332244009178543710666606172000283853924961136367264667059552479531808162441768306660964708915429307431341736183506889805397380746598071265717115820943532790949732460673564753697823542786894785938418996360658455527272055202302259385443835708138568646499821639261225151821280882584157089900242352246288077751578457726910118910578426008024195714814017721001524463402474501606287415622729060803724677494089678565877401714684474139156981560958329706665788750903329014486449464338947520345752729401472637413960604034176670790673566104438428300502113604696586640242965809530200584477537323289942550437453193910425858897928695929129052783514555629804715472815059921153372232967347901029844149875618604209021348128450097912133468133687907142300035999194215196748740271974152215253566907310942647520178943354087771121771897904963002763033603766773411776370988532905463745888734881667361868894043173427090104877238369592014627649434072404166965856165430436794349316275393907006872785022041529023430358522597006233769927583173284795460742659609216910135637991855661971170581786335745789884782515539020809878527920756410920032755225565944287650260004030790283960271832964896140094925606800835315076800236998024125646758460861378342624961688498775780756872777725656501023718648224016043772220788016194756663967659903797396758576621597822677916728633342864820329755621977794149165524607775612791330711790222591882259309734347912457195176913265992376763575397472754092596103598641969677990787711444137880202461741326578825479846663413067699973602381965161080252500209580588867228576520185621046522030622280680737267742732840337634226465485464352031430140070146837954820353536845106128944149512683653009128185629195905711218848281916747262802563459984304888592181727162912172548999102669628291033127719957799254839067249924478571168330827501848977716497163442368643323735584706439509513371041125622544973018043866598757537633974221375296117659552859890010003356396957032863926453128915808378642368648054687070962322050461851382820097082713718162365583442354356385330929971672866365425038273105970973251097770782618458017340873193607731518613334603898211411216245056419463831024041512263184134286402271395519393594944141918516786150422511182280404523974819900817649093420290637656319675073756734661255207310634922587381114907304462802374192568969163883621949366963346107764016654615020393567712333410724676845494831933716104338274882732292404793286940406709307981602611007247044979916920212019542469096428442383169009282178390848399725664697332642110559120605318950241935348041490191374512432280112260488554844060440581341055055546176903688876887633338926098021558488579206467682266452925335049316601763609948532539638327111114567913300253276471115189031293689773574059999813760729529423154005205426011676438876712506313855484237098772615251445922788968363569629894363930042169570666057458381930982777799022277087872607616223268642603872628331283272821708947915711717901639500308193826479535693574769021756239266675379678104943533807880019079622627627803476736277354792522144837248968916276499989540160691671442107476051949024427353314654787707475296453900647756355056110885153775114377812343700257889480609614930174883980661629269428818698064572344114276042210496326670964912749167422760869600023827977628825562313854391381238728804695116801757269194451600667804527465436475337012795055935583840873827948241062971473961213441139053038310631449275620713767395428374091703925413488922637162235890277521669572267741461403378813434636538652813591404519212774710055925055521258037710345193152370932495187087379581138862593839625102094679643600354352373829847765074560000638398814533409670398272662861252320393723768898921591503283009924732068140850432876036822823614780443084877653457398429310756372265443624632843766266599634824170138999675661263980164109077679525984273298008160591605245395615798757573062514637345828587855467802740548593835265673025627969911339947266788254189365163308794786354743869001824569045008916537363981389485868031771370404550372539035547786887374081024723128507823232645150742190670774582997287542628608704845197975427755205625677291821071167644152210966861688658673742250562056297270000329554936955016480701716540044033022291201390941935599991547660694068829409979805140698609008799613845014263729623802374832950747181326880874806043069904906307033107876002454935324999380144469787482587564776381261562165656753187702866119689328336689824291630055595313950344855833051373731234921002296811432048400057347035801591865489917792328178071397860223756383196502732428223081492813013133638856289438377687808625668445920436147173350672600588917261548204699960728005068549201666994995398814333713720089349548797538499820292590466486686501021706829126879533946996260845113301676059932411458888345326929765491054372123776773755365174143428102859657685481784720617181961813211776608122656504202832010042569593987398058000231468290764705179145132847880014120088170849056246628878384143630207013288787043126969350795271986238956980395784873691987588929472112218430235502410876586444646948993469213738344663511176339365288739731803936425318257542538908483588907543517731830357468771619714456681445980903531938109213005510403355405859642029503865507167865962323227514679119014168500441779330923681596362082047541002802467321452460010184565153903386820850285491300384917082715122186149324118962442153956583532655274969630707264651449329809371758162736930480826827140425110957398040281242845502742093713967846539700930850605648365768341108134856306597509720690288848283925759733637958723713179914418759427221165293483510495880187006369150067167021038540784231353315444771611927099331086059210652784342083959963234716922573766452524676211688033203177470144128747430654678263109256481517113381557705689027991622832903999163818963564894953504631883970915819999936371143644856157179983269859701986932804184787659715378038568010558101659871454837319739257818088226649589837552359979990086007482557632599505939181397616251118657459093244552764550224719651250988823729190141412995686590983599909459871945612065061535330869211398376216742354279045515479949730321026474375172478701071476500711512972836714049694860687234815919167204180098859590632039987365263705582311355647587939746008910929536202983750216979339535028776349619471103106867050497646125257266253163322931320901773015198596180737699150878003379038797648523903568067792137025390987800260168887680060096831774473455296515896001135277217750569533423452725873557296756918104290224287552136740629468185920406762060761786081005546022454161277252935734803553449533306593579712463379874696731113579544615809685418307818966584952546710103514781593271821462475795253830567525953796769321094298091129750087719378739100649164031834046654451149462271564911758628765935108129030289056671644063542874801655900723013673895683954023526049632819314033086435445115721313080614864799877277321071689690086025060870066900516442086034761107036970807908927703852029967741469292602381272864881483882308258919536987501555363690068832488611410879146923719363847477028599941493948468361052287291231258929727067688189354129775930907592062819576724562989668558514111458321474715512329350556847109951296486596998250545480292597507101384379937559363589104548427432991028574925870240814488829023329425759815509283480768856343202703254774636424476392634534097107869551687856017524130040563881975130420788286030931662578705888622238435984857200440618278299789402598801453742926488240498898408763522263793371898900384089181603546322591215199255177518346828713091339668461697036213889769887217139283705532071305570455271174949872865504158641920580058078442129799959175748305983673120459692642331657516423004199081014471768865609228065635686248203583741732755340588722288951941332119971643314894256379851815753957597117285578160349065309142370636499875263679269794655079770736428260780079218749491293239847627293312780031716997513391076620148817049332591502473331678876536617924331609824129988237891972972777381617955508102936281525687551110097667821111580598896767330399773249574598774299555444177864378192821185566243026062892609576489033908996792512047956635770339082528859365095586046500948109545605508940796545050273913346830544403091234989430186429324658604098023210711807400703586450793317720767205117565279155751821863940245047602034075874834283464853874176152402148658892440035547206602939099635160282262663470287302689189996850040625167489697360422637369175636219919652750409355392469757243899423618755814697542514731532824328394178152902677059769470258934139550204587446927573987432710443430050394972973559612571749334642076927386897501561691326799423742331411616415787650432593328527773341159330658709556549730338723161610416985549792601512445396101114118742078676699538801186549101303468386016303499844975503674562274020974220779449602033286596451807474235717097495942240497839398875952287651636089573386192076450921907506327816959200862541663775745038466568904037629371469334591726884215095865228952068643591860522516232474259537410030891975659524303769439311829859813731019546531162882287139549456578838804304836425396591635373676916298016114047598697177955944953565263055020574353062291935502326710872146138523979754000740770295468597559876678081754509077891436059235644905440789439614968513989890505267362565497572917957632288796252086580738278473980231579635569316725164518580443041469183891172109746950209128478075826077158355614867800906200350651779655878898552079076484740047460735585197869555603645232319397018806048208082106115654832110744014971105801617189773497651955247423222419281680493534542162740690041631846877676289011372372982946640885972022407123897085356965272518161022755540348773970344418915123114431376952384934789285402858130833832297038354096758798226968332384308415417172702739899512497782281290605063969195450186825478910325914117487447053471943899567566374446869194681988143053884355763834663635389207014001683097527037682678850642044038279465073579602970761038534114480571971324329919267274644915979178738048250355802313550408493257905026255317324944276527218198529356948780242879955635927029498033672391885646551595513900758942317112854768025459175938188289799169710637905081930999782743549624646209443338052890138398836762188244906999359771983413463941845945077051453454362696395900277914539327852532140542395962263548429297695474288358011828069736054744823349041077210808727957476364806694362209523787484365210299215160835079252766415883895796752532156274005208203543823185262614130302221788733718548558442988008626468363391015809043052230438323054468574580977772311042832355613475147048711783824188094748310638178962035182096285705914369885631290885423301894327105090017359500269265245925051128398538237070792489686919271092546839882360627229985432461599706783998703793036590282311881806344402791808104560257202461706633260969686068086286330617743725029109018459752067669712505329331145140843257638556497637191192296470419107994559532146030686266823261893440097854836900721973279145443095493326432211513561243261479927947776815710981542511425162176869141001465624943969239940807228111405440197437761267985706020431886203990778755619011185876648812050217266883642332433181434935923364131841755637895795284927378993266249147462724125655651356579099987505275548773401143856305831213493478966007196719015168514875065931212120941737462413138910043354530846860128533269569933897528951996275902178176049846840381677012794825471552792211259434606319135657656617911155813744912863710212485961480428847331528635828031674653098757034119046239813806806127602639828526002803529610309418710068434959843113116330021798547045025490608656141048535123749614094272405777426318574741068942362813915445912826578522005338250505850232739290672354796576671285614665042282336496963239915946308988430321898056462616525122444489950687533030519871202942514614088808350899714879826839193508821428329737182292785542958469090779755012132999873960063451369479390200494475017746617514405780159579186815718109590869197081621325086120344161387421060844983861832150055603019085751195665083534715465074450160290784305677360512878366092601821818210441506084593843030457231165043002283833365416459036025045873741295339328511380655430799436562608686106191392985562841104757113613096335349130330191921562647311740601030971800316590565932027222809081039246916140790596629571547241832235899070178877982182940541510037634049376143559627137849973801968355586530408637260954718965588717473478162587594873194436440925570900362757590045647632524699934240538007165537452317141380111100263327751648201482081351883573834872294341401576451557993333768360113478190883796359872921358133990726156296108350931426281840972396749326139693531729523708239745086325978757235674668957904350889012213238703418692321140602686101546240630796979853799609786081968077615167177991322090023038231373665967031666846112759497180300135648807421084235412005047228686692112106626773970426298983118204731902736747184847329572249447164228053464851652303750734549863028062584678139158963128898990250784661592918638221561648211296485457095648506181811151716205780815921257131016775811441980125844418192494683882105137898819342962587485604574675166938156597928952321529469200163525756501582435160513009145261065049664679511781745931107967798326903658240314977252523119852262760946207535001286869334826574935237273409495918854873909429485636949106563505423026119147872176432300654224713198072798633222607958430505727760017477128423080311541269843359652375092718823314361336002277241847930265266693531063019925704463191410843989599147204909126828460102559705699125637942385917688010914742105027823157678602744867336047920417085911872903206587947758786494043556925116742449246989582556004651089645283786782528015707982951544827918967424017033452682514417207929901497991447220774445240694473877780868657739358475437241461623254070406290019781478589528247057807645986639593583415381059649384180708048070519437466451006981074466931872240187916313465509951661419561016230868834636612227826468738903767321386450513420961050128475506776088949815948260727309556031361298153968510680713760579036497671029711846970232201014710548037357376778613347647841303026811459200162194634135360817693591772368735214879990279229835371501988259076120233649900223093840877441634021113476844334772006896493933217294022059820993240454623072171487038329622672338932539167552525823526597980593562849785501191841213091410656354086359407405155165431314983759771357973683641625054826311937114246961177097707324798937934999055438231248546441677005647291427393394511501259770000120627427238634385782891486554806038276028443927738508098403796704551336344846938738802112649405651804927966481180310238103335882466911500493472648526548563779806592582067575616893194611108799978591459945746733377422107925757980057363075257940029564638451988260839938417093977215131769535605835154701892363227450572143481812756678197954143589902708055930077555621663260109541701462735706409314538986181880136277877202166459915869076880205809625689318084797859271881853762429987688301727162577459338793214652650864305954662484162441796737100603265694455838569541971595578501911738584555007581810488129343197532217793539523351447916852612907465748547487468509558801813230199155693490038111758287049343745210935858539157748490009087924189503302416217538737682076986254707606127236092583328163180457108381274348764658975061078382853522405258639968882474102482610836441338974270869871634200690198429878848399147873764038822057841525125578929193130750426377502528488316231046670545763518803955098212009476609735443273336268242897907569722251859312828868766025416813409125486774601431723945604381671679400858038238949349967514893991001171996967382468014895384011326780384408804937851996106252987816567707655298045249618705017164921712980899014786693041327911799904544754530908491952759488708241000368656277116023106814484932122998402967356266102068430545485986675266009862156923662982978191267501684814412516422208657886851988374289564619997185173576352897528859677983149875075422324587206287890505092009626404847165657808784837918314234223134085234632484057930996068951486058912735384671711557973855863212217193495439974995899850066887237110765133276509817246241917194349028726435875106941170498518926306094393093272448997915375684009567604266755633133222854934618741545353189149087692998356676140076908550372739842662597573773606173469780393518197485001486990297507766901616732898313722461408512946305169729631718175896974897942716498491888756715822416288436857506279936238802355843133678569614413120107512782109612954096900288959019464411689200450033727556995485765201180218054443101998574727607539597769934086589651264226333446232177441089287895725416363285468496127937994917522774486616384148275300266923987148775908894055045707391618763399511344678177280198046791466258482089185438034516683749272965186021200463574643630295623170324290773383830437524181964546681663648232746247524397686404380675692586388801894983920480484742574298718686778082373518649061197362601102477566499489416298784898371294239129991019312614334572119557632560525809405163728614916852686494186850263903436007063200115547318707005688307241422504159947865522203484557712523588137098327195934483081021479549081674346718402743666382682347016054500710496737472771775571811985274794298129946681693221625376099468536510534225933350805683147273710693187697243965314313982158179293012142308554550815724639808453613256959623078457327338902274351841818259472872396586320335767776580508320629906797668845587998709971579154449613201485000379886693968429086449253600912216467904679237540682045252711998352287897853554867871650516048615930235858334783793138877460934180965278519760814437210605489992499472635540708306036417848296316572672236395439690397114762453284392627485201179266515322215802046998439719416662707863689844690633447870481398067733646114121769182005383459664921868638293922793129863870886587639472265504794235211696423571758493639128555335364086696276927135566538326239460167803695822375769388951532466251486340412836550549697273751095987499360300919756389958633874629769123086401454747948656784223814153366378745462311571473003952992797689263976069478854716600636979981002202479861668117579892469016207047517636104161658956943816218557864204987890882859549964416294586276542227673479842306983880221261873932619043860433408007965011065982412896415127123758934790998421732000929471502824964004878593070188487487767171317978580458192926136529567794602656124871603775090508699998728813883062851134842916642884100756623255502006047464239597217866354793310479209110790602829598583861362907562668654426135910330394360533162858651361968582709863391331758784732086581948380700635054134702939519466255332248207917158600026921324905456760165111313133734768444697421132105568242270285074608402535193694063890462047752274368457551761253962394339246815303313536285555791903682017092848171474537363506809240286922486305895002571775629556806416140528534456240879172123603278186096100420281767150616868590788229344094744975791987061845144585982197384961526997612730770439333110313589235278720569495010671060712022716736513994895820802260291731977421941871780649237602366305963193594466668075382294179815992402873624693247567776298136931237955262158709596007141704831243947851128940155884524678371527281639394966944330977731899317073260171645433700964295252540188866885319787322409086266946016774366268682005943279696531748514075810010126744467202530186071788167574196382112276249032445910890248458223865722082717809731684132725883719157729305913644005275240820498178853315820571872554873084156966490366088141558879652047090073755542560343695897457353568215387177634451837025860504731828820403844035166032458330655262993572382739982246040751838677304818597581770590691970737219073392378307420181547701084744415448328128487933875706812159878627842984121746932966094005847633335181564673576342875707564550756864653281949073453838852806592480666172371255476116573499575491674012595054726017723438126519032770427883920896937752813275555488745885433966896339282410309363516291600521187285105955231856724237918708682031618065090366522313497058228158224593463838281906471965717240786268353232958884757084543481149194474307335383764396240987546366797923655802505624519856378924700676485321914267564125606778299539425906771086494547883223310091914251924728318888988296122976146667980193294444882443046781369456002910054621148784629540398953687073298689394903322262625424894549416293579518871569509826141542052515890040373694513353720704929162966163971755250574363897062808810439452730401370183049952550345094248374513284917581216641667603905670146441911123876626749714855654427899541634237448614258165412848749860481021909566790087158914006650904570531430440214032263102889843685566926863052104967664133710775789214659771968540660780288354392562085988485967157346374850331952976155540723635838575006490924089654383344083976966552988470724908162159149248519253031415188399683685845272116242114699476186482987304029112848357252807668211584133612435710633169318201604615781859494342445889491382920062423006358368012441718665757418026045428903432676763782237780471664510283994300498862647042041232989657191626178417612845169576877564090754870533252640262352427942982627038240148086587823920108775295522310947961738438138565889877587098382594758159158183168026682224768493672984058901591540467183193010511937881065442857082702523506868739757552803968291119475699490481396779565336672240755009816961095628035781485314665252087591954381860396189461870747065507607834611875552787069849470738296313874220481562326598222886477840518920885833756515858521238577705436243021210493765106882976442905528019994352719009044614376443635554414849350338125266887468660275866421244198987849491980107550071927910322949426950840005558097497863631549279317391743211931473533751146026589815007570137124256864144348504795897685544766555786203911432720911732551395960013259402326966366632133163555394425227565494967318106121896295458866781589391599872344227158745787941409339697464469766755005218627596483803060936980716130267292698587619273788342040527718241010026410162390927072708760492504721365741607555346254942259659830022577638902210947739760979316915785764152227134959005534092104882758963221668187119522218207612038368432539940194761910029933645187215138760488975320949815469035930712703084348785975491029610083884846770724620940184098396834746647441724009348548654718774740957769687570121136841621478189437856162824483680810600524402311321190442809192858518523762019509130899354398429253888410271242578247711110004395658397336318653911429504328529096818600892018958391236618945189702468082595445751731707066286766739525762467214987955973363058896092926987730958606843461757210914850230875784799438217437983084740159084704849999506798343401196452676846135841757847384412077887687070056745128617010819642077930048482405676687854765836250102414664159048728169638625043097387772457639271154948482519056436923663511302620897946310802013816200460311407323904231842053828648425389306381027494052525636738120766321588849638471775405371652283089744645485790989882369920236378035166848173753542332497587214536397582464762247637490510971157087994395785099764422696797517410110280972348099155022647911701967165625332346767678302230459200040930443284412710840919859769210911784336658218210769479338422358632339283639296514012720890707061488032137560158104307708686478724965003323970338103502501032399110677267070401034736252765997442999812015006892237055493243275990857572664871146619714260865380032694996022018633305154306504816908412161064581851725007428072905715787052969479072627306413688204569728366150191152730464379244302574000381236908997331092248153703919837949950575276412298735553666171292135330085502138577340878039764606980299713310640934349083235097923771471850370300201986092070448176083512300002302618664243437572184020635550140535339199557103600768431926997532157091491164904586199502809370534307265430395180627391815786485718496224996492393777332996930820799493732490472144558129571857349499930384205636215475798445304584534836529717056537113835863503143610443091313996232965651478178898307054151899249427695634140714304800977426547939651830531144052707117469880013982039771534153838854417575272889148155227612713328759932385670088004549586103878368373462123397161064757301533078016450014403226474322723101967879986592191394229453402729533430880934008422383954807841914765165852410089851274745092695720370543582690435329797153977279016451379106426478401068719272984802837975721339511618523100692662275551394543119586593459734763645768149692386181648326507138398136849417695597603284160222933710931399009125564398351486652563760996716975863022908575043439536151596094936392068037639634659444862748716045223135655874511886971889884396169313137842273008169748515707485147656111046334998291349710713010818087657780113865194554401191711020832661502687345049247955483736421188972289340152502428700994655442457501586978916105174495158596604651453754778247651853146435066026429095171860287429790301134616620583984025404879042278134665498778412361079029054219520040071947307015350650708361105014815475342827031010365242969736828153731827614996769840930379350479821660012349113556890270577525140272569809858601564094975385330146349944259181962176989296311369729498003348752813870046764562603498433949216912902083268400588362383595466999397587812748359098272426923521474072347220881743920940699534103949840928165597730311081679584967462958250280374104687783358645635953002002434116497353156688928233333900663831834556423356712082333130055515034211818714309579966775541260380474842025888959785522665452301513312219695943102325587193033515747825411833237580705203824816031584340148915133953902626145842770391839978438231944167936700420743099540104243039763170460249200540981220009537811193759864966578183544820617626897539863147334858744400835138639558876671551996733370990818613572765343923361860946439290820257324576019031256400833963506508783830610523720220758569741186429979376156088940958664574295505809841880346283467524036452013063835519861397757778823803158148159773331973859307467469159966762272967405843380521513489217522586422833637522242056768329601354979120834045507629682794741261888568087830987764534148469855157781180882791044670679541422316379035482240670828486578686780539604267334974721802411032693542771400934875098783579622309219474307986426731067685451403953374890876763064031130025940759124646036653861920088606090622228010788896569652400089838191578292658380389109767422502084484016968118966582795527406410690568208000221242380628209925434549524576465386624951621111090345394346409626552662127444790239453268191341827714571349785480001746381676789092738194020605437427677903324831983588110776221842864210377104406490888929871098441407657711692948205474402897729063838704752296820605511347322179853042732800358925904607757021432417985255038974505411169612597907903590182867437718888581376587734655174827487203546761599677880872168998524433119763044087049088190845480174399271966474763762841814643134652445216747672314736317510761659541849074069646211799058938722423596012316479678855116225248616608343440533427897345769674526405495913738880225700092481982655740007218412092299052920674849344028921022819094585711902267738864202573317591755156885718219811179094456413405950947530773936030523761402192718221705341178336641327253830186576846863993100192927039019733484549121436598146244334044963399061679348573815860123500716565965811773810769250117940890340703615842417738130278371742704672135285683135783669727491142465806763693009250399169941432027357251246500390763657113977141932614415585170839464183672614060368139733060886916878100028573454231178092603647970332001784173126829745840187214111136395343786723301265577973159004987290822197660944486537898343556767203014866734611291197811557763783433444304653543505883019889048730484004614373004194424480275592774365198597980364000818884999313841195329193464564061610719490919305595066243604932324247388887295951245364957234738582343825454427192802472859195910672232279817038400135200808725149872046827418000514575926714666698242495455182908452146549880376808560391975733441329316439370130762791838029697130489024792721685524501779969019747055016848746881348890296797298895690623912731708753556517414240587133110505379485688872190590938994768350347012060275218083676869749553227802959046795694456839773896599129850432510993457083514253617663754222819383781680217141140171249223646762307364603053217058711405006508499324113587644293585010960463310186666192901422062448530361068731224875859142528480217369066970810340436696575498160059746135764403808092881162544045082046395028135791220088177035119483376249958041702429726923655754858259494180648423417901342770094667867676888576408858754361520675073670826099939879436025302580597084529696961648489325531755171944828824112325842915520155787923192219915211541075893537561666357644309889445968227306256800597888730716696383591292362314548422574019007722464687829146698024724755307363997322032098776038062688131356250427629704083525766667969261398118667942671360034698078854608045384942168250161838344416256589517680880222659753516521745562025104171213516185147153192318188584008290579851109725439200678069149524125546948567642852458881764155728146573654331745418787707838605010434241571251797996465608780319998575823186706106325083015979429881663968112362265461699087713243110496183680400082460431270225206853443655844008851756355534237982850439634933284204551651372206641484498089300679293216907530424208222182675573791464945027777161401046749245855188776562586217002196504353052703568435791221280567958557402067236559270377302060636519654907459451730878945930180110630090207259288029370414473582333627201652986776084651157521164892140848124458011742542293685677563595857216997950932301351261367695356602634580070696835411312157969491135276763124633772246925522209574973095725660248209616235925698318367964966557080358086701490678619098810613368244224904511757328548114524414596647986273762658826430545500665943019473454534464258144917532695395324866005212989843338085142027852040715024170922299116073051337866246445608358902631774785937966653953769852903725539399196931037081437325205804760681969886479006263417082618870581715757894895039491952427988165352877050826279895230070865663763962091520554139325672530562119359960075721216676556649322319271337325393067135892149568616156591199239601195304382738094372211596229453460986111079401856763610897550331710265516105846289525858811392009286305682431460892526450432798879015768246449127833446436280535067773178012907083435259982062559331675037218454521178367440595820699000037940608365587638825308963742142833071022638760215258155066131587181312468041264040189604311225970630283616963290067131448557844993227461656796369621261780508906855010602875318446963448263442251294503935664130114307450002658515234534790478940198586836113393462254036797374097981912712436151177109756322967407218980750350210164493553709942474637528343831566868602233492310015377900435367145013831279984347261052139840944929019275529673838548615477326331476513775891079933554813594538955183018185555218678630653034466929737556197210967903477810731930234922037739722965883378936560692478517535368169095645566212002052772182763125728122005310294358466963106474462262668015711367820398152267182216978017061062888287103771533625925686407053354577291122686885223795280891266396992773376749471860241720890119154649335861519914937639837585889391757716894054768632167401977198378541764599286349478214761399078053859359504767541594091536044288966330331114467775366449757544620683192826948659746160657947765808883720876016354088715421951234736577883878326959033577227466188119892727408863292098255676743541565240871525904639740899088486566106777771480532688122069536177227269707199355631802687281973421618378658058392606949801169641031325866063096156709627200511911325824764108711547048557333267765031112393336345466198596352317068528499066127952551117886331227294910743589711450613188982488779703160781568752693831803573513002227702818457165907723902459333487180249458913457622706210574332800778600481312557185101425056904030657757397791856565533473159546631176033019118207850664295587730328730607390304701857995481714792174516768131680596734915215803937167328638982910973089184265208274787233664811294059066192698802380209806692684505029964003956151365655720112192721453620368321827668193608669749316605647597223210321476575985114842000192611525568425897479750665760963459918852041829262640767106401820646308547470778662670250456279593240850327480058416787235567868501924453809911421380459470476503745468216294426059682175237194621134958005171785689269639183785497196170624777110274966896056132891349378786660320474720297609844533953152001133997308039369228801377789793082171254093203211228768847337267925664591109676133576892403937915675042396414911533769799172350027597128063108076391956887077851188467088991613578112724702678061651066405986619823685747556211131138758746711827544385917519091814317224646341647287920178806099040051266472356970179534060198132808494307135427089792335845406529802569162842211433261271503932531693246638955595547473292182806884555113643265797284851945884797267383518123632433715227813136007214074989218817808153159854699773513204320081737292537243668654751480121552549407068649815454163489225928947932982026222889662551690284050722636796284596037372723369760056559733545007286927808425619240852108489049270018655399737518825828839181526433606328508093822285623613620099050075535025394123620179054559862834139666861376468738776600529556708527131618234600941203738805620689726568079261588900528570601674363338733119775128776204918925271735965311851788278035758685820769473948594204219146989848834516188150212848713940057729499260421787951615640236815106531270326587976245418338749813491166812618937530627316201080540509878727459273981796519126831285455993345272557863024256620367922900169400555498923525808623172841242261145100568985843975467022640489807950965558462074783366159751334043724908960882999733466054390365800035772973154673061535581029967227760677632104519162590423385814349645059802059870600121874100001436863997079192024261945361261479392637413859561788214122150079594278482355473416666362102933604816523336189961434658513389168896210770240549939859975270024214625331118239794287504355897894756282744032849750552754880575958272730418030228193026911868003547404619905602096016563953302620445926339471397290286922980062099648883142510280232750733726304556733255988584412781713352984802797023318265240155930065126811606726865084448317662234719130060677455099221022256735328531591894509877753863426653428517504168707678357248222810885993959900637897521740531566658900922990868884758254584445303263099083814124502019976385714347019410458872723670251343166914019116009139761510010804122023653726158388868794271400379288587388585473352889733426740948869006042974142466432728919710593715124401575825506250272219500129477393967793049308782290963752626433705461159484445012391475783573912631171569771110975476837492171701125618359834786980161828283830381020749826833306765237775197098034304076923535032892076611157761200965685448362515701349889933991367512957142025297884436998042364942271566582823358434590987675032043803457384093983894239072255482227967242515409885447522680716817342847043209139271572289551915632745757597510520846412925605052635103279137442673107312865883042246609958025400675657021926801505695571219068745661165465402907927908272617268618696928170089760256155337184115095913476059756402770940179692393835507121871886823411809481259712808603204121510773298950244069442750175832054127282530526268549365473982530435835683251599379920650307278116351283119911584212924694241462597829983482272368687138758732464820272455867903698933253013039107998042101431589794615740192463120252565970487657896232464301046317502335739023311972813779571801968495015752113700028724010894766032887595868881219049490825842004530428897391071633411746753641252147206564636649178677592483434528917136004435777031664667317549874711947191864459380824251303699839562555516253233090346196582679432382209285337010222461747067186973584537502319425116610320663996141735263546408452870866723314715860634671520880482837173494705042217088775081160640716359928531026499191789621261279898853664357795970595345612282680029116574122719292467261682172586700654592169909599493491255342552898378062752870844574808987461462477576583418852801095561710860397149544782376746507868269375010768623628580751495078951985122259476501337782713142408722801374752989685072673424804497772270183567489393711645337150196115708691511299193724911997597888809108685596248098092207049388036666828029003801000673870338205242588525768059768714874077935263475244755034881232281835820379747677628819738275499941561280893171718821930294645712033760132988149326646278537028255889751479980845336827391067873593971324627837350461329471240240071297499507108988250646018300042844735316433378841940096880772301203012329482061081946337017763320854387516541033169082086109385775064958196285988755189303492008394408584712614939112123820539737364835296697349609712366073789965618367375557001252219351693606118947520139115370503439801518973252495966940076550376323612903025627659352387831821804288073603961049080260581259817164022096562112575840330817331361944035695266626210832077652038891368139977499251439405627752387912613108531539413679666448277360065837750388740864613664057550074148236948252301876923872827486273742081866564551775475918319935301100393911472671120422721662659443536652675670445477520987648425971600058949135817973061546921037038512305161057035489462908509537951068312203994981807120949129619403611128904010721784977475343357783617275564451481933523993958564248762609451679857652479680667585853723693938527426824275500319828917478354538527114235088423560773637290925319441452847064074682841177892620586376714683093777307672125324008418146335729732912450892268271242972527792825679503489388214937884949162593564265330401798786613816195348074553785022583238555825573895155610966151046024493275228335199615254100773162114494349664007567010190440185106446509258684920415759786519296422473576694510069571700315187492857844780517564293445225662603392970768277132250611935181756373612468920082530371843207531123158489415552052660101861095957587536628296411798099415467386350198995605777897732808271900768717250013696921179948276627863044658672855209779210235569204450357292105106751733193969617200341179727275041299702805689244358480129219336504344258102998656192241677363134119738300439979927695744053469357734663404399093511487873955296460292093837012020959002534166230577618468806000162730915094468839268618647784344278134447677424469206468294355920176836465068780841688127515133442163967767102647840622417334872915307407508895904658233295446533974096543240208796619034094089263653097493406015102744574706485229677592508618084585972302686446201401018109126982401314224513944159302040095478614831917577371488523588767659821400745635119383208186023035755641712642049680812978386406914376348940097843805200886352572306899926392817255633265950382300884855029143144963516120534861778590662408148054475183715925003356425406538006139298841435622800839334939282072118259460577255248881503424713281677789641485723626632271495650268713372268714693191539244989433236259773448818391609410864430844315726314735655875076040692905798818700949400314005812629216984165106677132666113111427633563945727626999291823437046163935798071201389341148836579340303056527197581822354536973730356546967072634463349327807070417772523590817104055973595700141906128674617377312727368643899947959143838591334640809271139369169939860282193260559884557124483182973413848375355678606345393045689124671675445499447162647933256159262875869840025868933132177222670868163971762768692172062814438238952571981212855569569103028626420875772780047227087648021608237159899983336507561026179052694609065927728521761985972223647121224954397524916002442339685093065059759763398360730037378930983648644498278134321007823667658762699357421713548853811611568570372104262323201088907438344543646315362444050621768451669897663007503879471960893262524400352205946833818059668069019848798867488350559982512237087478774673173866652113449498568910819023512241881145717766408529550881056524375193832792825533551395224179921039076849360679365543442315704340515157820362225599293675970456244679203206880489988440631505221376629074233025300887115210692481121585243949420757921283624896209542716844007893917992572931915150520248293284899186352847934740700294615843177827526733665869700439017144528175478452938370459374089122676933865503350431215739876542280653347867597453553131169607105261566812028176130265420427710439313590187138799337586461683852611969113626090403566738441031612816865766239877397458746387979682559301706287837491802482543020559502731353406993547691650926926629875874836804640924700719381773993222691645682862869980445677975167133090199245650107501967511197555215469902316482351374860879278606786730253580823252205783456196180438169988360016391824157379058393196089972782404973056280440020270894151781569389065803630698487277023712057155269369736657251382954422541116001185975952843601604181359830253460460500640835160351448821948863827456671606417315140894581118408337290952777735619191085340370639442817787524173165067554858941919525990741405321591685014781635363690948874838064853044977723298066469000913713380717233260012037848512276314188486708439869173946957772972338790733229694574975994278444725684192822537155312854372820153685571459405799570813567505379777566039748926905233658522670305940454219786559764579915134008767231290247955272936125945002138637711203942784225910796695210458409098244975613251010865980092432712586354766743824468813132172114845480130080271551116582591436477818390912846483605896968057976830291811150278181194992953753715706621293819218384652255688395937401761719159805452262677880236057704710918188794534768442026620783858390623244846995796753140654181213524302174165711314785866385774381230248345217206785234094901179408238683820793803099688914704939467366537957417820759332138808468958039444646274085813367346797298055302873397010123149011796603526449940435346139592746878919960720688067183254371501216672616184240634017648466358528998827159108760011085335594981800788583229676351761362794503419468118475920160830752754683150935751314036010764796812983539414848070550969604163998452382983662560509766210855975237413863572801769411714684272556054609309863486313176100836582670278180243824862963056872533765746549468150953001348529142856371733233730819353930771493520218149579425355167932776647855404193809293041895407902137299558294989032869965781672265900527846166703147283319920110810893827390834767636126141879783729512439691748212688927924176922364831276884280414488312916140436633222461765634709164978764486148771349031723391217092022122835696155294760481480327276400132632191470970629381989407416541369309952658306683349597501003153686004487887155149532754807490238539367163400843510047845479741578343416420889433077724416715950814873935783129284902685496991254390726100295991550168103320646362138178480540639386748016221230244091695364254916229726209842144827038767570662308265510055372903343575224221652948759184402178391872247585476555190643985189645471050283829816102239995802199164743424529743693038470987705124695111248407126552048324001887041874164129362844463240316793216900331177381950433292958573295293932599393200787822490778654231892193221806278765827574185417957215422314228692031223353525020145734914435940775499749230979956224317486803815831249214581451559525380190551082722962441438864110188209833289743301502930272071544348697565621314005627213526804412632764842173968897197672649448541592935688548424850914464817195941569742621889949144540365248755442726970569319619023471674504647435191214277641901289047380195007802659545738754284389414494874637786724825410552257359500604844498601747116840906245165692772673119949622554555161554013820460380150444058524066936186806246329901209200576725896812100577038285404683379431043202041537614873524096757913477298201745672795395664576805184476973087877637761728802478387329579459676980572372671531839463405971864212579102441754513774031862069470359285211690592015707771258611933765600597734022146176498191917555862556018532178093565451892540581486725101546384149707768491958696021667415499032113505906701466003127066198691456418433677181763456682877348513858272898660337549618716252859826180873450014805485787379868431020958581103907971419967183904021227765832556993668752506807787747838743964820575242263617225786043532150544718833442908552299863491234247520559155097830233411179256945211068517422247892076859826775064676679000247860260255385433139225958532098563754608358963151738412833408283703535299820164574986068853806816854349086072969720465868457650068071149794066639298385497522395213810087945528666458287845447221301426145870643471655220341083086221968134272608399046666042252658791260429714725450486854970892854014110780172565611476094975476170865572385915064787355717030330137891116064783666983337484754380488511529668941100947631120200755835508068194372840918556625045178766775539545812169062015871532928128198153930166986157586966232193135193188269349117374542348862177103371449430507212347046321637017841488253053881602300771164301958912170796888390783653631638519192747595480460395351687968201602630044819249808354057711601097247786521920328966547562777959273915006938974964653966393882333728616156903900791263155591713231303321179910082217484221470782666919978312222959040242527843557493709137534199178993717260922133610511896874035131131640053242920404910480872019415498882929511592852110021248082072551838766357540805811451108497075999848315619884898387976658610132746092417917721179147492657218719071789885927749094898274222058169349499129026779963857512682566800713602645036481791262548440056234337665288661513070112924191556382758566198842011306427337947695112624408497815656554963552627571459934099702909579277637213515355663081771235969661914750852081054656638708959452127871365273664445997820068986448916859959851048774009081938406014201038761045544790508856925252493785908443054801391111946313111238315328439100267545780916217349176285125968601995083472870630721242069329420600757265851070932385111319702611537918038105531186060687005219409337671681386180634426690324339854767000070577053335216355291109846051832548528696065919929367817653868391607237635003269314436919809929984494271085305699640673836819377819406409899773193443393467522823142924848966534533073257651562775132726594343484760077688517160118615668249768665357541836440756502624354652815812859570613359367684206783326341942692819539350677126519307476049283051591396550830634403377761665856240116348997079297552371913381646826744499542800122130307407743567514147403582228584881104079809677741593522931621163672801942996842957217821274690085516029544247155072119856895498463679639064754388659201903871679864234333170975181797389060449751469106457460227414781601392446796329305002085865686316976538078106863410347529112407088522325264812851718687684947244462947798701960293930455574371391934831886751895278483055366303893725121821664211754138781803864179183407056674514547692447048077064069697465645197734025174016408452063024043616649287977125749015185166959368131238456943446177431953637797729232686240440951832388019601185286083754673450888534827572244755067013976650919646361580797466489715984520963908544771318541737516113687420521307443060724568790338011739229300904718445592010939038663249671958648848118141471586549461741156496706145212321055247560839897268642770170098749490880246548218512287044817731154416734571571604044503374303110092831434932857081264791789376335775479337662404805931563562766844327122422990061800865635130603172546950653223795425107219058214636036913358109487708414909477565497876048856827933347128808721955312751277230136569251544187422349068910901271744143311248673201840796535043754740157311744349740105418518783995245923809251284030457666195979453671636036366056669353312692165212458362190416834815676304339806684210478883573211601361873898540056488974853122127709815723841350087985921903555046610718182803047622424951759438196245923116318182684781684084039035441279980639677875411771528485402958392480961876487232463344826851576872474351856292844177457453874540746498320171333605065873509433597402899169659909087832461461939150790200993945084725934602176124506095371610131328694880312859573737382966614825064676631029730460155762106522513874961896440482473709784670234629843824374559957337640955419340535858423819598448793838773533437015397701147693544983958538587023625763227686788568168580221302892295007572118833726316558690429823980018934385336432207610124927809136746041532658544247823868522113846490045044704690207087839913199012181262279538120267419317576744192773097591196954183968215861469164846981683779220603711466694100400154132660489275525742488990255313064642389747323198726518756114147468624341851909402966354185563584787056500187769285386618554284774231838317217133899534652209748408886012657406284633141790887984409058903185994008065976246915347203653638277972616262274699769242193698072713626337637636221483909479906484448401607517971203012280147254105671196772526297960045212144293985974120407734856946570631119371682624850359507771111329653308327503799062956005558817580663989588667642852828478152718056415985919044711500415516109391687999537849531702993647187132418534072415693726382244641776575350845186448455906768366556799511863144184285682575446232861951478362955972112033079259282210948777806262466256677238994202035152417814833942249801458659465261436403601403649986739550406422691433222729838068964443387655461069867304425966266016953830988568083431771991901445445156485912224247529939673656911339757540742508623182069736170970261015723709086005139231170361274670034930452856918698227660931234651996423574796054865836342225215867131334879261029619803706373400808995443175379580646121897643427473332714702017604222433661546603085243406477424752942576123907873790657593371726326264623836349842415583151338850748770283817379741559405048192611961149074557735631002670129863298308559511806679902722505065399075318204125839841379604872947918544477874883056298804334486572241258723627270611971620137718002731497285429982689626464074197897572978610108520932998887072800879809196886354690328814914813182865080794429128592920688372301334285958165712985072569036614699970792969056716865530004365635398079353799402148905612395966927465352245362169553421934855977493807686787960619823621650169941778755563764949315560938264756604111609321469877490403061793148398121407983373063620029286801596457443130026206430173523441352991329575349863963080055523466012534551985172939669536882068769420078386471710112653369113520580031568957985853306349315571727752507289145429960252993707108044817376877320578925293163542825966980791441971213531993110054001584824090002355160598797809979726246272414937293455303040162689215223849979559883771607399473208187425695492751164780308273499480655974521747266263797445217349944251021139045877948907090506797927942009764508306376237090098606671796500099621810658586283552448842895256385520093951100202194360002115837040146936621173713047756679712403493471896701095282203060883112573073367841810973850038518589918845619689754904040599992023812626997408785552345832743076263130072395247786806223989453683439369284948422195501820473026291914676157451703562978538524934452483663066952201780015007224674678268995939372655854100653111989924083130589640400696447501156927477234097241746354809323447459479049832197260678744617150319812514863041903459874073613174491056554066617482489554038453298833917642703030388578437614945590561527967725611741855835877876085219365849606776900292870922925794096344599401978228610555160162954831007339792863225158080371396179058622919957724677491768744851560142167942679865627209165645081954553569643393619695048156159609740546972363017030166565775038990458561324609807876835669195391720701650583892107831491975358447824823282374785327737905565408517222091158471028057264170241730065197367047051450171162413853284724441863904110101714226471438901304086026265458149523576201585567900744733406728963547524297558448339833839082174597250441246486280771224204083113825637345428255444824061673166846066795122022438302354205050107440344618990513340850590253380950869582429292396330653930014901278400538926795110475539121414651515370780591531198003165914600857424114267821758540051155036244664430173286031681962175078734657119045402036336856132056820382405852730319134460603117732248036130269570809858140331257699701243930624262111107837618347289696879096034950328216893065481875471832135142584204589032775435018491835683376290307569674893516293945874771940637139756598506283794108961410181074657160638407932455135622132767599738502229675843077645716611974703071699385622408627552619004819163679062539348095409061725660716190091774015192149309441612227249191382013533419868948513615084800657025287967180943498420467780008806191749517656293908068418105468252911183299989217072758724176945404628846670993486316626004759547771918935862314279592063870901436885173989483056119330293768136685322192227128630876231925733177284026464072745080632947691280675538353303290819604573861310842770522962398179611584477820095694029531673093309404672835209526258010304504262666755883663850368807900304053779421932183918551999912322274955418881653962894461725240323416770013105236262673411014993725424467368832562445174121735905435355606934190870299642619507034784047785285458774428103144906019499411970958284046609424959627538578747094446974853198902564472382558163557094867714146805769256380724579826479334474690053449041204047689790346023764724072265216398502158999153608879813905287314981127237041901111386508552121580452607462516806930944363601484447678553931888469999333813314999296048354154620299244170220698837113224789231767135058632390623444285396731943779928667633617049470903543413470428675478021019207043577491615279889650924588169661245910851087904439898688908211934847538275219953658474765787074221325390773863469053849279205693093371786945958903206815035634381811406621412271010095754938557127019716197632208304659545739862677471095460150903159132100932566908323614482747025046146071537592802872936544646721882722848772653617253607063158157384138759128637163008328091881268668389419816829215301660847877600158414351755370610726224886658544169654207457685684000080050819629070192074612543467286622887144296467373380074359924809102337039841288979369661522974902091923261605565239713973729615015505214430682414060084357676655712622922109495747760315242823762141931598526699196895351399477097321044983786460315983732787542143952490033853948379283401743472336461764397734877920488645285403407605477011242273590441499580164891910677550862466239022071776263271939054805505433857383969126324679027773734297744671815657901962299828504680784086308354934803537087965707815340298423917959143224896113940887293336775941905963993288887549621488580250994937333458764936549423676784120904235892219893075523605583371371360080954529324134706555278845300365024049612393542565000162101902223297647395242187382958444941638019777595795454342312726767454443666811467598746289966896518389437137336370984764621956972474940198908516109892746893552500177489972981296536100531457380442038018085720121490262515070030631830397889616624805750370262119790473884137676278284857257811561780610260369493194264729933679528671109636974985856624699276374732685778995948176587762091314948465802408074623727694370599178045070160500539609926350191934167038917414828493734266913463356516632770053688849624095506089964730618080039928249134547843768708973459016416634749177002903348933473606283593128265005456739831891717753469213709332277908510460515222792312955534837722543743280836016685569981805073993025562338217503652794019620734441059017227128084003269696407236202153095858765520550680029526821293696794857576676127959575336178933271390449011088445047905850194481958506943390372272225434776118689514991458977622541187370457316868763721011409227723845568903036037648191753255785376357899481351026877814406991793510464449779793019699466083531357133286874861832714487122236576522066517158949421231023084935853646218288765817948628870709776832771038960722176332571719512774497430706792046364661917187025046447091426056746667337891711996650580933562922601104634758189542573341795589266127130616378211316796336292678314416762363199030261744243256241268953324504595897616856914028762223559207652102872018290274243814948987640845197139758942943986887767646478802177399879388544427064675640528623949384958098970923187130893284261951992132011594240764090531550477186310091577093927402866551872297049113851513304874457241088111554232675019855668263554333318926800201873410575110730066754466993743212100647988125536101178901507979265055382991675142323100169377321230037049631722510049962544768196899745185350284050905212209596518970114682183629798216152674714247656612911312878327866878179622892867138174032381496529267758849668802444950833833160181285009918035850307253413219241793243568066195686901774880251297928095838884589910503055821055514787303571517236321934040031757350633986488818478389887011279867347939475810760606055223531403600280166123840327249176631876939670888718377654212040312476485568857115302706047154574695583992411724902098021726330167972862483482170678656096724600057121837072584722502056770515958227510124630784406889737045887069400778843659753726894372057578677952902753435663709623199471889704049678846459486902734151813100974984434951406501158410464717005361158822428091805578136038856277713831749227625763759704751676796470520193016659338572607149141391127414961072433120083924663876590552932017283748126241602399039092019437061384402464332339899484633035605390435760894255574938428858115649806383155186224387223573344084464249591937484392377684857668664253094585645775288844397920966095270865500433756049134354710005149831728256217964063539312796893569094083810868709600975337861720494546791254041934389085772653093317393059436304940325256944391410297022334456274002208061543450327834603932515989287819793476385242197106893388705746607590919936967070906340242048636279930021725951967907114027851674273997803556674989977288778254059870997434952105396969140927988526961597993918230191809425812116436646693500019813614454442170049895555159799452917202990654476222980873643992266738758946647099543157404940753152819609916379942911932162991305270003797080914612453193049034037733851958200749995430123864351175384276180035026960124184811041546769025863921980704984269221683442568575198773062338443173652584307131449981528922226423987921733208580939131973887904216306468995137923821500240413918662509520565233910200353788008149429669540295695463017641644942295166032137399029516508561866849223131716917722757829716765687546994432328827879339732466345131368301417999075747121206211247303399083129180855353513068806695631606805729443882089280257767841172220956918451233274726069025035410029139018481308989655894522294459540736159673234987877794254598262360235535908646685447316230156745112817290361092664662255579383306989546429586016774626579464511829785106317348122531182302677764373181450399510531897337748913132693964635065740888976068250314927452019761389718588537394635720249312688645202414838296002298418320445275033383646432329518484225027421879232120836152759264709051434457101515108425387925417816507540489260613717766018395517717510462158669420897094339234449408432487703368287683092330464333517202495791855987742878578133503136379522065894225734037774920350082280656801781536912515134581513687136011156823860932934533766874217526122440901879109530004493665208784408367384295778817282126643704040487591519887771648007768288028815318383883270450355184748141777236690554948066424422228633330797342886615768970483378298056420557373078658774828544010146132346013793977991511559998535215636942332177004802920338999331056052251028024017001498260377160360512650372661401894794569371425519325926243079610307908086553553339193826841889603114861480634587380522608848675607696601533932217458067327931462202623348714564030892495237024166288098437671294645512532554827898964198248012760353678754511986043535519363278672913642901615036131446205964030718311186685169112864173691471469665850104477891465258066635478696533176596376429298048548422947653713219945316180316526394274548560748802513609182382564449808891575363766188787115323698113293736730885823244715898071369217160431885039779369144478256878441507699927520406015782766207549053168754595078987988077939346464864582403897022636885875511223528086684837025091446011715439420371033794464637318847986358370850142000244681259332305270485068768296111326653670810960378785021944494067063864355920649804142634141025125545762159829081929466199155525161904455506152601909802555043971165273239858640733949219326808287634337464156108387665731258495654932442566924964971854057958224798744235109211906198327537162255474995156845138353767905149439778862905290800819761142018042865631608400119677741722496229647428080153113657778486959851269373539843394156249562308156172020165142189750638667494430179949146909519974353701298735181610066113251398180481503687950388188415191965280433163131199601896204589540238280482226257552915170231591894165989864984937457167590608863078503227597677245665269245025368500311896841050291051307277317312909113960453198877189975870437744749241489007969725067184457650872527506594640016106014540480784718724204806579560288959069712901132148689507975256041669488158473276185980970934828365264065238448344232191153260769035795763211844722635424065727462268245520605521540450245827589943998717188933760068317585843201253795055513396728324280025608061474146211452639502284397432260184380597615671507319402374354697002592023301622640285701133899128951977988672750058825930568080462889776132969880300051229602453185142401313572047297822034554435547003901282476037937733618476363423218633131180829246171905796761112591143380505982462613156498026609985796212361495421120902142137326400762776964301581654386281486334892834679610828525188609400686055492229202336865976272967689268652985912176005676153956457159856477199130299041359857446590973054744045937331294154038340500051478243353510288667673051512851660473267730933003997246338344510560277111472928817198397901189263623155042841471557716255180714084362498220753368141562069142456216463556622968385005821636845563419443630327873671067256443795900329316267878713293910598461436841331510650908632486706050758895890926328973494899199778976351328883001445304878377663336638431891129215924602744279870200352836042084346644681457730870714027854972825054442533206076959557217915154324712312041829651945828124842607181734099049040734423240483246965377509091480889002011755802613993775100302178166582290202168095116617756081662881484407744582702047345888586341977652255012596755173485783141205211716038771906903613093954716354006198234421434325712711406631638685326340796958558465102675211170751513308839671564545047422749699468088145786516373496600253024830758765016275449891330481361373955594536931646421208006718226960946468103261356200697862196668598167973818856331470474783968675241929997598121328154441760120691439009321457521508066631090886576652324813453569865099047185865015589182423262789105742618911534297703954487176621940794027951108572215814973242694559789564213985686564061503307747776438162829021165821848828075760478687166731922292107712765839785157840743272537834561922716570642508677592684742740574148253592274451270412527021388667841000817990609023280740605501957953427385599450956051901966999493800915877910982480671847613974677122444864073463407019547455960612484485628465618957283459246787216202679631791565634207424037368128567553124260986754446576476327847575753070470845274612890757953073258230099225456861930609154408466889806456443272796576202348568186359126225223536413415986748516997388420127182770096868655385575016316270129618168487488123292007176206595412926569073951323164437411802517287085052972039826200589126229512779201609680845143483825180925273588178295083258710302764246634505960967789713086917011610261450866908204993534551174851677762286837294950694183322863721562352674400836629361207691337870320634810179735562499587656452590467938393103879185686137790877677314412627519303241790756724861720972791702756439929805856343097553726944343084756441955617122675998564526828240442988732304506412213785320534087033521346995141741771227750471068608052666939817567724891660794467134274472385072899973403974425782119324254738813844608180309034175192883907809052290850908319663845578226617575938586239275905230729241475270904429134730478048056911320874101055477972468930496779746704656771563200052584864472354506899581655311610830730835948789076057901244182873197307209789979977936597621851425486086247819572070058383211988172110835052232474441655871518399586325229613500407890212164678558797397678767779633486593752440504530565232924173927379185040592302349509627511036708350842790172760298711456687104228548822949006666282570010473624358719737543314886240555085147176381333467375357979291456464121725119312528590768155183935737782802953381841035958714444734171159849856464778076579092334667830808401449957494831463709271575701059338998614446686488281176932678333494781406006604763094088398004276516316029815514497558487321057196978382251925686373729990996965415601018321058896041863791183668777228205853604940497027248069473924306665967812811793055407599734965913492016662874312828426128251083921514644957581389339487615403757870724218492872261217152150229042672445744394971444649302989803289747569821848049330741886925041056978044074777748316290883637935290829439090747111599911700269358249597266048776569856518196303176140476765442339951552685347338012447344123273055274851670817195993420932443092342815457765753841613218429958802441656738346088216461157539347244589321017781730302862745407011815652808984042389659330663188085614671672472294333429129462055369371162985395321251315460820914700382025630415044408068762182587860606083575529954060382174659519115051238356173934035119604165198629672367937687097235970371482997648365101492441266022465143564168978099683552128620505964594261136814613881913492013603430356581800716909674212864610390521986620065646990388192724049401135061321268876144337822770189694796160911207257345339607412645614255987491995986128158280603039868401090819387919677857445309928703864798207929134549681846130496258156454401305707480778480122413275789083903925893758398629055841759452585515189009395786869863987001652356281499492059787005132323782123463281205395312243704333724026145329342619254453368320491286663201087856539138228107832274985932477116655187058335947190612251852226917250870755482257192085620592421166025424633935612969207502275291665204706689857705911796485163397163162479980943788865817566921322382798530789655277900537880677051242609911080068047722971351247554519707988093156463325003733677977372794663163543865545331839557658391447727259307957117743366185655033492326540044699620698139028951285343698434098340717281930097289173016976531660260746964788014143931011606857977682355136331064197695079233948167533054827895798955187538241903622762325782503280387740166404698856455914668476804597508500259487716951800488174761567510384688214262558706142687172044640035751175163361468988789788553657635989809346668947124901207519720751689378244704321295110942183069332100272044680313168457002363305479371657745374478998511095414020762329212569478074639324598060821173096632481258286533431684987722596258061732940847495840687169208979480198914082690119084176060840293557050085238471750519116338483807814685749647016389867344757760961111284963271105425109109755184600789811850444961528151272689829419141940708903235291715888711936182466410957271162425085219682249476010044569115532280828186464304245287837350888657976993531953618799232863671047943436773564247312585225558324671808727563990155861485153069270972440121847984016586965048153625574035129314328641910762986181565628204604075246910418821976677648778323848105141461681095181242181782087160271598553082449218985815778626563592238313625539836375604467207424093143662844128938207497738890796454521784553255894878122262972068335908070443243875083695931463560899601644201005395084514084873317542580235699875728213242040088174878503963292054839739158653280564751031704673864780745690162642370921707925214156759902483491342896024056620453722188574952293822770607170443829655335619059195700906361052834822057490741850117246869599060780641145167917587851131028299010117701596064566712324145671336872372033876087780211125441860195372459763596285153061475371170465260912370998235049545482577715007886610993021380631503603426177351222090890989707307364704086998271622200845765306073702407100869731995129710144783796993471665283340333001998857553194089969437368680328477561251014452669374631805928589836364552307455963344598744922804606819716654694064358303366325179157008129564540951099681681559836690936447027563475698790815428901606400144996033847131822039711559005132255903505744060324280617885839080716114679975828389184542189564372117150476347375842858983309851720819905243945500521365471225367718244341311395526646089028943194037442376947563164268055602446810874706580662278707665205939677433659301785624607370437916993102009593794831381764954813123143223663667983655448533067617384399549242547703483207419429445554689985104130803664535727598319903164419445322438720013251556770699967687843435065363185200025812287035856003923080689428881904833016692357900970246820234813141270042092360642135683808502231439567645731908976878801825444937404596673106365440734940095695930481348216735189772147574817320510593092877841225712118666908308804162791294713259437993930564204412957936540622592004816256468993212724770253718071987615209587495030250759301115465076715644518335868451720394821574866815692444022487531811547305371785846704338930671360358131915515092250517806658327371800866519140806096638324092649663627708523449803062439537411794147517334510561317541778134205771607531650774642594563680510520755971860766593694020626958685212360057281702206111473475368531522027004823029235836356106096656161489126734038098094485743697737177299296370025644378709222043984275740731249336232935501820618795426789823356199528170708497763958383085064180788074842927267537722884005677506143060391583393833572468342552513245704363339670734927447229745975910523449442106463124962914015522881266180184691524410207179517023196173388435522721260549090649626659688030693797847157886025517660150180024163427318435825047868657557870652468286630469830421799051367459298081056036082036468195477151240940408507606934197000368411122595853089766336375394242906082249512142096552360179885940039961303216296176339188841000292599579516308659627192066570208485820369415624825094840053671612077667792456555280241525315770407334565531336161374308331292471121837073697436984246314804734241519329221327968343940787153182679702289349856355935245420036667575131165420699471193235050010093320166852797530969184147143366173670191248525241776380598958381639150872561473933026443234466588643521274443238848166836253892017050840261397567743726290761739772544387176624441551341296854295838491289064830396727401267584390847266390013025458300491660346267658671401478818410367945614201404860593634871184429114367630082923739396097806147799221034995661708366406728751523442213882512882976194796090153515820455041377817294952532754019562797678053775525995630101120920275809116978370313631208395713535613827657321921475022992843689682105008872154104153341257204429566220045839533315346273666369026543823293155604090888639368368159008283522480787990478780551487333491442769098058806369182476201190630937612040022869481154547839942125168525850822861625336126616317163639957160488489060350425596938067762133363884867602292693944583695848698316022498219765599816793204310833013054286124091220845405215091712640507858730881994487886238424049572295036467002081151253886269928861121449395059504773563031197799809232468714343943173761889665279306987581923165818209998901156630876921154847270435267009714102403533571717424631040373718788457880362612629375167210635563446126483918216467411529796072829342686603765682726243530055151411206999750031179625496333182227217942584081727801640462844250351041186749920486094621050464769982466582972667520905124647306805472780102725800310614989583740177506023860594592534353163528342514047567645413841013260792340622918941094641276339981145344378844581205104344892656046632665184971180883883744647720832986244854824840292353020764624588249237808412466261549340304053208727219083035375183879250362120136935729841740056792056287357959930733942744356508306648130782032671707787819186164690246422698204368679763367892640775840453727428381134369999538344702070272004041828057781055902428934638988411379926769895930430889481843608036480819997065565109337922552409533361740429320437506385970700458161869622011839835795618136157306811506989488577984182169621279063820321882917179752001021195864124980892224853689465382823978247455510418131077288796286411645404818755159935339166941356717531488617912250704062890888818947380355192548966680159196338773900149456463369299894643344971216002936738605850470563705232709722062469187352911031887500856454996807038076567014748373104817885995816405735668280437430455897955556913585900710251494077592870024628085390218367883494637812807951105721020723441221610681346782138783387238045375334614306615562681756506663575103166163392647846727068407602923010248586118997132530372762557619224098364917773224636525483714490415951337666715335030964808488437942371929820396062210755822755474614812150526831634750654488207203749738782134958083422684788791297625114851837439593732259291441802915770728363786536559014995613020288406763261435484178364976960581208223014387594778703902891112786181232988833356150705128611086966888902439466184554283393488283238486699631222287775265508994844471100191117889512523291414226473279023299261320801341972744985873003879780743993103582496457797517301357232953643674135591540315565497407129740496576943471272088113457681761090517486848736493141082359347127070149164308669708305918697564929091160414784833143491685595969250384806055502024328729198513315715081205680215614634783761890884745944500462898925380533317155900342196666874790773072746034252672052504967737651965087393425796596177498112023097682778935959216583565677356401422795627792051030685186254540565163790298476252944304551889200012743255173152552766216383982704255620859788294468342365026261354715125849481239621012896143615785354384472814173805708494183944049800457062391943400549601651013288591621291186867911720336017083786097116692427207820493334121110744611840233272262110604225840234374032083816503500102284516706695226276064138742203446252926949753500073789864559530307389858206334401089638147895174773995964268076718586545759177499411472500457519439694745235165895863850202918886257972282001559903525407971233167740117507349921026418187925275978950700959729427337699160354411997486473557324654999358021672083900390398357026014706533032002457154853420498645519138328738902316218087479072516937083048257168512113204399015791760492200151060981934534741076263656625602672192337318983234442024571538894175353653712362249944306592590887309122613573387280315099723631925366085888957237562326175201809971182931320204808686265216393803696820277125538904100348977109336494547685216962873472593218800271457222512580734438305388793525759561565008669074768980172560709623524679170795547159191720688383550285195322631034759731669064419591607591959926902342345735405753619495491356426442098708545720871543907478513690155437688017864882770677216295286878304948154990545468053952089120213755133515674682879074323054340563613137431999469772341290933723879594808402887679358972220599006831192708621439738147756420336188279843770909723433101076928891673804608715726653699215929890273463122862699249011716246652926563087659017025367289352243276950851166813156995656815421343168046473072613560302103533632243852954384247171589552574101996825248944194600034174209110709946936932697173759888883242493338484374194462559464558012761088592962710248883728874822789260720420880470410018204039122304822350713045438937804082155913709271852811606345288567066390952971502519183065263221477138139280043668802326573538138466448982799230131944493026471074834584047595397421941955676403401930153429458729767543592309571005500406802831472044356904928441353007541715936682019259841682191635334760112852462245232243688711111968932283118662300085323318743647295939568069050721382173175540119315827056177949432971918693324477473346512386594333294763161295749698080588377978811667574145182195540350599046074942105026851360290587045888348613856591900898734664987614513145813081306785746712812254097789393062925465141512313285262804869733213622621936905926817942764706700136896811517531676518048915929683038936926449563249726300756904615095009984151503250161445305216241369607225550482477234936593170803592310646440732774284323986390994638970423364721584570270038430257514659979488108616402609241565814692764281413112310299484960162110958628672363098902068192695504381991961139726863553409559886796908136972357063084991516393727992413801272650066302101241783192850067740842336973762234832309167352950539297960632650414653347614157422446743023759518271242922527249259502674082691095836407503666800078556193880074173794186684841152256077703043797238638166627007354557238937838668030509589145357409750899240000046848338278370958399065779944474449696084113633289874883025972361578383432417773865289808746897499947772435124587404958215342314912326611614882781057692086515339268232608295423978036261472200945927607253100594762742830601976882217390837983264406123123108147237396201370516076553472980214353148350620364918824957274284370961305355420700687183525207820497982549425982887845051323486108521776382218544494484613538604860571871990329746146615093390683258554801665527024073216515489369079907242957929340215741689251970561857212719377582454245684680457984729710803463831494000181066724793870124538680461592378546956210758226074631784410004408185113823172005633542179573983357283936337971326873289911500760767311744367843194476538921865485656179153269020022058836914722325039954609982742897096349396944830313938139617480641048090352808448772659386449916044853328007301778730510716274600789735291620504123614181430315156427915135898426928051185800082474025873614728363787232080452043318520280285525025547744070457985501191936236722810222319409980105380839216047901998236897798861150690542283710960486932901339779416708366503849316491518985281966433459184575817784655636559243437169764552948036079980383828819127310387886541736662112154516152997067953566426547202123317298417718102077737293535980922194138886832162209708251699801961648826317469357200548676125463614622656385565515262265052048638588446984734609174293710685839571812272851717849331553227743080280061839046630028248622989637447219682104843953257469591708381098629278763536082230646184025978062042231381337683469826641830869161892576944846533705238580773277841706826747146582581320010621444455694882095146894099530568052760103482798494587458372648455515923244744437476516922043089945649907643899669174971589475224911975942847157902258073812016543745058833454843367589939302062367227151823726008774347049890928654466327346125344443820610964123228375031606403707313076662829224996179238108127115605827529373768350549505149207243194983322721471107853654451121472343016464396706216978555037047541608019310773383509355718232012033449747831278978058666886967093218614325846443061481832135418876657076229640922622514953334659455480855421282031262570726675810476834549326621431497717185544202024205553365735034875568186835120647573802807375443869255815157248127280292141032924686032541038774528981146399655115411732552798478882925284218645132130924749331687042232306905218379963241579278030007242148148780460277738655452148712720895928330166148041242151641770760467948416697213631394400363186815947350389815579885825442212205756765405546746129477989804098425402704700378610150002829073302310744833501340476593179707666429760146640946406289257560141047081012142222650029909176079471572798415276850334290695150503278997872282699263957933370089561003571920310386830651569572676516213756135637762444380287344334734783977292996444089603336320414536248724788778761173823033370304381166213323438243020219512627903630791454208440811249532299651451300158200362731726659092212198020413101542632588283374358629471176457239660754782428939798624134645874821675798842748767665654358750823442902536640187579615981518670696074179261970846848597206396571769591624317023835624090888838234645740056990330755299132475778178461601156583799494302829231047599929383538771332739861470108564824810370578803727495017152048675515819251355740444606413476270861029180878922334733781889924158905902470938373804668024410777342755993237788358793137361758397205247819931278121706803198686695097264196594720156708645943949698524493893180266984207694467024116986867013636778752291975405327450962457443247020151302875877975536620741920980048178567319785279272098815517209465379288203679773917671847673092732364140456190316760122350410816441697699890998991943004303004157269362089483376474919322888102563564836213983016592204397260698341392440558387421580548394636153731508757872274611077172891242903955500708892805663869811132775761449126015670897926066568489020157903818969080919968328437064611336090368992196273961740427205040819506704838358401619626468228308460511876880837524911610606523134894216222832085999250024092800191338670906675967007050544220159735702136126508897476168796040422307241623892498693577206325422686596494268749142677351576757649719827644076263964982604424614701640739786371805359609598303250945413883835142544253305744308764807423033916741005981799383862556567787178197586401168219684370026230855940910703155470349430860692486311101526617061571550513765693375774008096702994586690807810635205469634594751721156104343262493199776779399540402575744872963150357318111836259034575792930612247983645099347105180222787804672893308882746006331349801462949613565244761086159910633413940415265823836040512970910614656196633077719850204497734000890834290593603079334479993557895090152001782809322250915496188581464830794025353473876624730015885695926967308120511685607321978847961349068445584826037166971061636029194351043547218490189420579112641288878231555327806106213397140176334779262516009542006369230536086851606015978040428716180657017112956592047816653689564106992444072954040240766985589805768044688991118358065794069643316791922587330668231958852208232560784022569605957852675293949129330425838016738063215594118778324312413137439718774021779925253747006383493081281979926585195253021817428294434702439023876910566264977636483899952059128460762104127848243834290745094699588315223728805733544331271089189372269074024403790146212719457559636585367248880718947499085384831304614767694808889718083065510074786791657859133062488839844008972326004114641486361890682307551014611917715095218267315451884432156758856032394402993393723459425338607319915611216462827601948667115336362159005983144481620366744913437355284449822307760756009012578474089883740863078133089185502432189959107137402475969892510753154297884387519986786473977944815884720486412585988834467736870643523459816203603291829893270258953037993063955219258301214687534108111420907475516669980848000432084326959498673721651477655464191168568173383172867483593648687831937123334546929606162169477159888719996014401183762421533697160632507872024873823079314032441290343677612108730837685140683810872366701590797977943451504978100905830923037517385133075695579323103746203433644208123660451935279865111824056650411290494028170684387355086492953654733548892664036968355021131543987258986009613598704653301450364528503636385520980076110950465978740102821807730126022333259326214855625089378516031451172780510390614549883334480696071622778875698400561638093225439460507711378866059508656398793469378602364425538731560623887231046739156478239943903885155524803461062880417866304924290913826199984814701929544793644566891585399233445334895495864596521266686906764375555892612723922411399454439586183182453023638593960249779997998273374266171370789401765254970467019117720316671169694699163301262496274193378558932340515123155326002005570762004202998036228829877575922532577978848670560257766616723741944054813590347362890237916263657973476602522620756337615576936475926618329925505380898161111253662324731025550792336371695520616962276527346697651171381481684791465367769262925444801538445906623653893742369123864677979925128418635543463310365176939967104935777298565981080846235816221052449680681599741965088550679261821657356836263975239395153356389435196110706822801118048101270263609493863541282386075601064581510167299652515372490360614746760405551960487858183772091960290169267456505049353408386897952632192366684247125494377911247030395672831910231198867332333766535693864762263651378192450998239395568657625338718225444666606292418679649515083669558913046213515662085259113501937058911237557470576130394790266852176233074120513991887242771914721020164294317017068610758011335789233873373985990633115764813866327410646619044943719598857761036419045510664463925987799509556494237279586997382453539841683294814232215742095077707510941839467346413396124689088050682394284568371270904497706178720875736678624666540998001105752235946043075600372253255138182497639975249104757505029165233934885581560157718399934710125295639530159082318152486311376999771404059232067338569412438803207691671736308982808137959337882374542118219606572378672810878019242520570957247396362681093681975311189283425616627971404106705080783552219890486968386887828826724051717320626674653520871495505705478714675009765043072355541847138990354206825406516269438417710713591690099967109409795398043493869756847112057700850442618029552054909964487429246801558523341921653497540774525999817806896733092412292769573481871868665142133314846578162459523744538955044467537299848684901178363036817009098640893571970471186320192112347264045514124509245872964993778917385780387813439236231179032269525395192883519653381320676089345581964319701606558973084642858355566657191231557897959323602190160565049820282730990325609812752282744096611878831940096900622437198537654620198446832211820652461603480015217663766587852130963528067652332972020353782624932431392406408386129573235453862314457262951934131179486918116283520972584372917576323966314616510911093478054101223019953965945233713640057358281972978144762644808467139685901063048193436220327598294242783277730174398837792011762120207343498516900965632022973672583170294845301609116112435974523214031335886588615337476096408921122364243660373552034277415587546641634162039392228975050869362519067623324091732803674874309410853904868045106653561411477020816765649519654360576153538938718616545904738366001799487019323669066702923587484562438825868098155902699373683280159150298809020182830239414231687367825635837554015303942996229450189905845944248523541381288752681189449391507345821657287038433421422209749725244296988225763922529432655525903822694700853396340226086706353587752159418133263330242793805016807043775348584742701207764524746458181868111950183758656078861282991895885623421495800781566829115365804654414400805932069266789251318219668604008347328312140676801660569758465814176487540567874184399265232069022740809632553247624833025383762054875773236525702743207439544577662608247901596316565950963291137129923479619398628489264065321406574681748038906107852846633709612096564719610827345895247498886391969400331721925246188802480008486137920852514871561428668256226709443633459923371257612292310168407097376249472299464240240508565147917781425890895954638346131846129607178941255962725229685017629423145960768049306455524123143210082836240393749830058581985199219357980999245957225553413913955500765450418945183633348386939526367620793779958139989948074156600572092591166425392078404736978305830288254332552672576341837935775983628778526616786649965577124593122636745260661493035905066986408101575396187614327611403122435629686524987872450800288230103246129118014475776271215969303477199697168606868917605039442193956273088560918401817823586650519964173618570063352674638380770033042623851277108348746565377206363188409663736462598377349961248235283204492118562293475852404049824832872117244883898597043957242002982586522103614337925425780180823113800939366262598598442335542847926262203429600469527791648837688996931088776320279829298829663970307220045697921920695597242674204805989256544787583780283853099139252505349800333863200622232321012206173896843491522324454073117484744016526495065778227691780320161033778244286607601550797414985230852525364849340930743164452774949672518008796820943211341925307218016603599989316143078222005128422027628917796250110664604998481821931339798414764806839100589490339850002904997981492654391721779199497494844587433872019925925121962642530296790150376647836234999732028092695405914096154837637218714534045423824219355948948050408036693667533586187540447206220714787912137321682155235572452591319353492849272299396265829286380618569646607612482811905853465187619610954317792123459846559432375068832536287979999453491776141587625825480417921702282841645785826611712679343472127107468562029788184465926098631837630513464870825260546884253053293071476905605265137758599652971736209857241034022140719881106207934165888175359360566541017647730796637489588274161238346629234064759706072453930201067429554021299172924235104980895881276302126269332140393828654320672744899100522382709106694023300470733324635739949979790205872510090527631341650518609104828593069083093964253859629028777395951711573543129462667149948866987359653656931601730121426056359435385743067033854540320733615371952604496454938538492085437650453368829197350047752003025084944157888172395867675700973005798155517486901200871645865434814822753300576124420694277670567356980294004928256908259886878741403358023482066452651472763878223745167663559021287075578392456898762918426123912149362764783911413201082131855318877602196495697350912030397703265549478731762382513194646105302060351243456953401671474385048887634201111334521643371808174274820987934296174776690290910171889729747467383300070102209490199852384435005393345321427336543298457984865074822264911803287762608536737793606367947205254968992472958105852810691777121981790698708494662383492111137180653071038906188335216544098366423931553323584699172552436802627630039398379955242420260284876900213233744399494129521129834945575339850746445885283255911210633827561625317407187401494335389407360728306176923802316247599705454925137586409690316579543536339250133365097000500205897800133754753567249554218576097779734153618857833171801205927097141237832457824043459628589830015333850621385460871349687671739645780092208530074035014215295010078393623179501586676403400649246500040929273698641246848833332584846259700128636367552681389894868612842144591106965428344309177139274878209369713567949789312377027341088172788504152363187220972199139478349545452972074018219183836205253374869112633012917100047558312875567775417403926564568263352773203890706645531342330546330184428070456161411002365633440499586105596317354718444019125575826502131580499654331257378204181871661951178752767963120379686828052506582600764193703638730411136808652400304462251276422792186250346823726040555099997195861167430851341035385606829205360805082748657581598361678694142790556568286773395998300658107803333899575432294949512270901143232211766431765435793944918411813127208809148779629653901229936543741260124255419586458039533241872261586547652108475183654787333636508827026197388826877979996992150211404302357561763191477254845812788600947370887847305237113785438623020318166232246680957327494324669386309153972085517510189137135997565660991737446056280909719543173072237540680823037453848769485886320387387286436291197104496997030314489825336114102824477587024669105152807731944024181343643180534065254320626261382212466801799055514126506837467366662063162977539275222268641466306213172490465956065509887451006217337899383318041068530992939072397640607822521238376905273808638378781327130862295951289403477810009569684403093511324636185390011572914654755203001116373148750930355035124708742720070524987815310941938407708681403455033518205318709046974940237242928807003320220021772262386135984411115963478756892862458563569271958248801132844973059556828322943183967540288735872591137711376425652564902341219801800028992405694487127970345614737451649276219693919081238240220885351057637514696563000147075398719929009444425451288499572869231047417239387950704249471044683691347547447553037639359849851945086174446613722737153643709266601135712817995451106345130468712712884795546161594220948535858119162130469409640372802345946088822177822320574753821261551988994992609570491207514191896369397251045713046419878572754891529337623098669999082520361830124760591043362101301001422254887894559998581124187788478805244123658117871024463364079250614121223685558254186701555564497025281627006659602020172709301605962550093543339217340621340007743993760830980753062208403512798068448328197257326607691823905826445633237381237350716061815239954956562153326899370503750703093629261072594965396395166513961707124417819032749395112660139342599251996595644814119178406498160613996297401537452837541411806189658311504876006967468839557916965163552489282528374225115276456362234091734147800953595520553794678413889905775085032015785592169742513509906339051914909060434265190258151060723994264706301854965307404809466814546172811250106559412876288094427820390866364396459813739598868997229263073073538679478009484473438294293228953594556893243436084296450382698477553719628740267337364740758429074710291115041296895965702922195905626559494210284187603548668566172135559537759954201988897268473527829572261966121644309985323239789921799364910015655727746860791454560556222383187491967348391766843629624520128417031430323931635505693693205464729178852445942462617912753627387854200760717647593976549406707704622471016429727701655791343289966476920463269466298403052967892362003494699682514192084763697922131695236949260704236119461053647412889403408760215348498548750916856668131638162984356060186979596872425086740234245567450774233043701269406171876462616210709004945869243728410440033841015919320304491910765486052707705727851249836127199888201259186953406817751915770770741560543231667474938831202365668122800813659264900466939769593080694936581237235680937445113230911674217731458760144429251199747898818180490292527931700014010234866267978321926501742587732950888756952420567651901170661716363989405475596425294418969800971447620356429868643600089120882415913182705348469384269239041621591341101114621409720220468729598203854577430576876478894344636464832773514037933931494391181825971762286553080222049594190496696741167009105592342814162903165725060750668493462619947344231287419192602627435343063837575383779156661197376159617812034704651026838498842035287019243923245766582007620900712834159198210187882666833815313147421062473442745360757709410243695444411143735115086859025909113867580860314478871271781678213709575551614067657262517273950842125695202854098126849824758055128038172336714490693288011290358810219145980638895824168077960662648515423979907459708303515674854377188170850199721028191348544134367140277108756749432475987930271854728051442837697138195993117829404765860560779226307376273325009684299371125074713264097975400265203465646199491285644265536326637726495409192560600896080078934793588636629584694961380430886615155658062404737262934145100972842142982201083993078276344829256401195771810726890373876368564552699313942646332351863904126199106453891317818432565369709043727615844439797663563940703846048129746907623425510496860186302861208135550141813787410583656581620091428908614683640079626578062607041531041800004764289341200266247350984046727494301527900641614494722247619930610779446051130590355274373709581787936412744038533018240842075755998670223805988842105072886249054535600852831781848073420249921744358783982423479286617454773561086583646961770381014325304260219497597441989912358444301625693408701807608296259618283843488886963624471280185567349196999525295846551434589047183019156849891626267364506422859838402758060715687433402183681635483397046575764852414704132649176146948005697549667229206798294258524026312974984820617251663862496812227572309012729338386314899516007178060969691678430429342830721295185807229976423978139188526589642462313658923654637283310515849570015119462917379021419780976646798152737357698197484237628533015642947636432366555380958448837575614108321398298040690282186772420769626341173939386174440154564510788892886138683859213545095800520628159367306823230417190640767057960452037312755337176808646004862792314697489163116982508066351875908676431346412146795600334628704392249539701672297713843710709291048168898773902498910483796109093301579118623034740464525552727392653942337833165047761395569518795974578280535827663810311280565251587765993594504680142171008557496946551126787132317923670000353523128043931596099548784881554251738822551170997470325812000235993167106278324053264209891373789319966050381325587691326594044085844361290159344310720235018090592861552547030211853094314049843496508436703229176668543947223965532138629474251493438032526779527808911631406539181982827340889127135987464651243792993732355106603255816877807714838255405076044990364698799554056311656415643617698000854037156271771026399503360585423879469929032061984398026701614497597040669439639208439530973158399946093582398469239577033549977738517584293131332558657796995549267100654347103076333498389849129947190116420684473662507720399221952927824474989911540560087280575126807866372288583605190043694797214819468825204449915906788810381569476484851672503585369894920509906874962250278796819449946460970576993236831461069190685843177589480371335780538603002530295980099913209759958443846080581510270685288885295009533104581409453466963586476292087048083647318811270005332163451093346080545512976856080583508870416620998906462978266474830297584164972197106494727595708916442278071403545572784773674211484781525094524123543762526563014627372029478391387102663391716080840530405474161843295755100610081620611060555693407882424823477195337266368878007181899561413633962994122125788365645693796625795792893021530645569044595697587362353623379965249419213780214429713412012266449960526467811455944196970336456786076108119459683819776563730561463503468542883489108310217545101057187726759364472602579756015205342340307737653863930244807839721641754950344972447628607233692491947865843080838377565256906155673928377595689053916514986265235648348194085401010974773092714254333366597205027702409003626777925513122801114600743033642824982540493717401067960781873618209516009260417450899247245505331292092529703644185908506814549852964077223487534653078817432126439722606143479260307857977722598373974725718710527073339432547067927569648177414306721451463715947725647597737191901112339914260229510911038703953377450775461880900595370424725049366020730707007021534350901435243008268212924349470238231941198979434052473841131840410887152132032256938940460174900392755926124983923510974990977198518359678728220195264396099974482154258305154732017075395532259141824943936887490833254308101344140083477755592019570003396556899832475128107039124848607769422341516547550028386821852982332215434736137750745933609458687592151902378509279752554137203390894390741423152290081523692164043584326044883206655369882279624580241709416715249859365255154359117439126960918803924326897688276710456318452623505693506799196292395357358760100759021416522244887009655024227580401976181425968809185159788246556445086035083239155973609672101594984388300868427016885225227650249144965340437585431080376795325859995970171139561596114314581569624643867899488668031658848935346579550912120250660950982160029296055145059138760041839713985893468706844071200185755752381459913760077538345370101003484710953864956373380408349202746647936039792554465259854495398933225603368524854695992234297408429719386367145557233224552974777797497625391137590105781051628284237917523835887214859239265266921745142432576839846775291036964153854501111339125528907228376237973405110539118371393772127995195468559307810827370823267582793281620082317329375701597629932671161881619778326994032771811048075145630256433339029417950552350126814569690378052654410306891749256700909573163831840179220182000148692754672259145843687286393388636164685674995997251664746185499829772271427381150763467073532756933017959215234522826302021580061406891434768656479837393362645709007059114034132251021384934533808350653529052499321406385896418771010757593994047093598229073083151866808008978898635132796933697581253890180129393433155092576648961970308182260108605268162195684953739055941835466336548876298250903744570411698293320339412201878956739942305849099712999610451043136738649636621816560377179847856065200527152448295458700967375829608535107273874773120315037099941521712883895150537780097575392943661170335517906796087686667029818737385241963647653542854265819193304000364720570514527062441254994344568042107341092363460319513107746935879047506898328377337806887025072943098426993981774596920583049891724155444425922078377717097948989829087859849028457003709262195668512345695000167924779118951295091825617349936636424022770249144690469609464194957926117731329767475330053869297918627130959166818949228553103654994797943929072398916456354917850800757402372140243427755931769457869984528961313301609824540894870397275223766556150310386574889820671081118331755279000214292938479811204151183716629755744793086535141799176752475877729492248387790761070829514605710262193467062925773540236816590478363260503062403028285061236831530292810169865851801730524511655080636126816455051791780489159321370936891886807916340327206667920910198114205892051216720181786560313628776792515206959683411812474848454386292638915313545245434151789175044423209653045932802505729195644114662597715383215615685749024829682730244323305796474727157667851472119472715986847779632699361895008417407547777016371713633873513121615992403937333285304060621248290898911013749786664382468641409881039459914958365631888354307382196399241545315265419088414761904950648635115550150674189192812940927575919900860706317092442260735596813827546326605191508035583350192915331613919063257228681202677202804174768117976512219556610824926490672676372783410238282794940014782368191946105262935707102764602570425144259790947892716002762780556202332998031837728547808733399825596874800564236446552599832022589271281900325761588074614092632471941108851171414688568213469569269807045682255551280079996778907396927971959761486420300706924897936927962643928624003301561805393581618362660939383804101375470276660224679528224890292560175539296739615516995081674993268831544508442368610014282739311907844854758671033747887519372583364327438203787993104615882146854504729022950168049264462374901112236134377525686243431688710743373935071174960998606619666686820655569744385593356964032422335367048018918267808237203365025232063661366114226201903008284501060112616094608903240656138311507957610508748310626413423190147269290491543029340163371226517644069728712044926028050438106964832485777315217354956756265404555665203878230374515177403477260266436096676119976079051435760241254843460870465567301821147735067659614455871568851399136135745881945709862192038275287679166808784373363803279350252643101270431993676558894519728020338300664577991601121766831446662528589755203367097817233440587371718620796470298690540892812858222748153008257560765778204162803078355194420021766128233557341512584584354655451026239262319397731138910868332029989827935928491537667597282460884469359265421260611972698800934880951404973245561391066908852774444341800487213463205859331118312262438147649227799146290217660496690648371029027063686805928011218288100645083331859116949653455557695576991477055165873888001310493609289653062175661226167840420558262085280616311429445226336944202317358235909715152254571971539392316766471662218257421623259808287072088481602973620794540053853259637653925191587888808107654546596839779903862200504877925635154632449205739081939727795265165623395102347944817784133035055412489793003201950383171667933024411403325824550284762271724582527479684636766006084832113801989590315280760696568118956610175349591436112677892726232940017257615194017328068431790008522325217089820561000721877338364948060167470112695534440393295896711097842164933084639807644256177656964592720182069122556089503473056546140185002266679730186642742364177094591258923307462886921413819773040656308676691757359464045939687773827408309792371355804100248236619891337099057563216289892953830850902289888963565164718148494778623024847052815788553280877532437989930621007926356163661983290603317528405183173468162423339799687195480367362857865884720720721660947419965800922403642167601035208078616795275834168032978036357281118921711946556546433909214352495113769648725894417917003433555270175684865606692593415271711219942691981661203244265031532813566483067382626500272095688047914838669275933880019002229712065110955321921514701908316495069089268100467983788993284269848271378314699665272763475921242841956377599421287550494693801733598558066384696189333918056942605508499336577167737009868629400286699924313296459678537200549005317674246704048265707150264338623416732694274705088013963519182974343546815849139452896322022704924411396061243901520391721727457831253104192558424935793185596794423324711527412299584288304853486399453356828196202870433987747670412922889905376693055985877993972771977504867600144273831805789660391245390737345292492456120222535569959898464466215844761277560740953948700914283108692709943880708691371139070851289955579478659955710495863722507464273128036652741364415009931182008904837244338847018249897015232671369538804546287204313345987839947946967998842765378163781300020249028438223801822121808144028133371426674433601323027937368130066495777684471437198456781427576396201087838941850374194989352744324452777649538976435226142162065130452868294025211971129125990899715570570946997579827276454110532612877973872971881243501754832359721992129779359217576918203890982713220463929033882301029872393073495202012809918812293266663006357129844514131013273061043128426151034565720736658080478637364531457308769660872237849332461026603155561312763538947619263905950746598711812110550861043417658267760676605644483364080731253195074492702049529071304178948859095437733855637026235178655216140049696215474157630204077112399000053888309149139900405805012204542274413174785016436227008663837324822828300360807001092146323023382534171698675445200673903645661273281366540091021642087780697774548001809786870460863296543909971772192521839393580717194819796927179085685011160529745252821277869024729728150371147622498530206781068868295520287471987770948193919068146118785324202859833619614700698049237689795506098715983724698786140349041022830603986350663966984214671893535565101285999189712313337341939207600192181185834983197155091139918771274739840339575237488172364852056512834801235847896434147624940223729010166821077254715772643011779931525889797942049312022671202253898222267545287169707313924965995090117773163680993484701494327682356093588609979383252180371731686420124292067733687873728517839604363694158396012114313172928242508661422483367608018985394143923664468461277787585311905080510935372571768625360153286750983439079581824322254301167586317433530734231149006285342411875859694921814506331994969186816688232728577572481241050969810465729151215151021397907877865076947957396929486201541723697768684914273250700440353393659100769317716888220358617777380093805441664329473010512045117886025003864938290048691735062593414185350937134808004782611963568360378183162397412876735733757608697309077032561959310955863151194067193884398633854259890054337904539353254427926815175256450898010732667312508930444356466095827608129510893453103763482891955035997036805801529892884404147081107356980136183103010935558268276566886300074185140390264647151805013940172458877291149726605354590009534551923547920631236769308895936667819076645350115583733127753067362826223011983734723272292719291602031519124992074630260760619543705585635217301581247952573794246202298596699763069959443002110553004325851455151447008031986943363337323579811355870103947832436794621671206535380829444788178102745046064460924415320619244079685174330137021918528133332484335047537194933354438002231167792510171301665331081795754541058741047710483581500372402882821828629421638565482385126977166463643579087376257265497183979171770142232072907438424101655094617059396490752808770737308394053605818057105086351604782075252294480742895000840155085999245574587704997075486050298344915378100967627460022821946160593848832236366598378621725411744519290390374422640881018822307629125949874876296303670787267845763317527527466092520002577448770857725735277269123999090657680198625314502584505327529079476212445930939425803030926274048921582775460088502042228799899132420370290604839745384131666550201878450419623913066596960877074403467991952435830619546875656239443377880152710188253311403560216253889826491812300549617841158652251988454429279320726619874734098863421504827364663532682647309101344053425009429998460265332971358206958061513591210008734711389868671799984686077468428804756804944623543000077770589615116636525970961113617855852621523841647075062439351209428289620331004175829670796014360928383091287537498076010296513455721480021589381789229701356261818348354460027381440597144129176526732255527378880282593685763458429879550176136320499994597588383064591313595006455442669507157173670275476407160006867868591143868282693830958507115366979545892335491948899322716493731595254616747017918110604566106480100005419179006021420046690699095136291042093889260639743641768154215788385882248197010143075659707970251715998937067135934866835376922121424353741064768445565313728083254113968742808664742712327504965558483823757289188717095840433499170590325651282884729363085443560438634649806874721812777173224398897297907308321634693569790418730613305772913478944550563396703700776012228734503879597158539461857113317695630597929770255526874656507734212750280316982994259769505247039382045350915556444788445426186183447930680085170816329502628136423438592251718739214366485627959801790502851548346993068580883157368076687690723287222035988243047705871349989429343371945584707122391155577287826902329023798974937266182178037544254379203257421855373816786455527168605898344237818566169968531411400024195163919213566646466729209306329846910982816654930687393800228929531157390611641980666147593011915287111126378167644293667445080180500625317958779469954503837453684983109159194852676907530507676160923518784476974654919458451608065423042553369361181762082336328528136430508362646155770883835693144718398030195464685725308017829964917593617643354965737828245813698795512558237742455312120861725486649703331393877003191352132134030891923005558710100405176571177062592412589351223323074818628486839778578867099486758137536234702582241595948309735726437035015394853881875740060370242149750734946245828094716840342264524094859900599058424121855595793859356147909058453783611780121456695431874867772188091827259241010861969496718112293156243314671747164598725383169003818278688572565278021242928739121449215817258127530891967039878055969053721478301424679075939795799566807233106726572482573546793019481496794595601572256236877732495770214364760048968165651958295767695528443556637922411233109537264979104342236285751784563384332033266170902671810036096875255593221617542554116968656840289573812677740554084631934075624245369539354273084410552455757235281221330904557763015324452348639177988000676148289132557614323068403394715116032817347742843621887215151353092843252001515203463760390534966083610897261930587487714548692014183229552762261529133058811358299038404414353843837693440003286925709623341684709354781960292860346557604683565234664841015500578482093683759684411598299825555748340220553451789018449890152875429891311499370282214924379449337685069452233378582934091819403881861042867194849419824904229972709864366246996570492849332666464312668472109726990158573427254703664535884277281242517501756526843688455068286272639248903155067889931151830424986477148743121847434083118389680396076504855056109802417351193907995754877258940836202606003080377645933935765305969175503744382118409511748272994719791455819685065687463319476972228747305078118492509906678703311603756050712022181773440608032755644455899315077351959438468810091040037295885700236964913073863700269887767490727800063480791696564153561955006497970303891968477743524941107495123659758381554374652831116454051674818596278638782906338449185101878737988351395213180856254939501239738416138435336310925732849100406454471112054104917034129438327245587668415987182776721250404326688665095878880359143429351471468105661183985834957581764470801799064069540670017404311382627374305004543092148480483195361359244264168276421238354127232828689201599040042763809540197323895659764954771251759751936703055480482984010179307873592243891902255736572553829879113194748268751314918225266296604914492883994354043383339441476362426250319873752046826790841813201379584491455532025504097523617863927374432352963354294773032080890722831693126512130307924595627649373744702215508165391558040041803208960122051908336528949426202212685749429276247581647709591303970644806618556241019104645804209054301881800841593287200570485720347613615464684193757627274834482492967498293764024427395227757325910569939747718594319066944649629750408464390609545621420697807034205535965336404521537459520949499012024161838413039671048203577173009151212860199908879292518151436527300313001487707545211383559827961025176443787789881227574281027550682137649531709750540449100535518100158918593639865233431081521206892867580638053936931130426463727670258787526308388389482538587808585651444484170811905132999978456823194225382632587442845059479585477377410438897355337973239783175495053293606355260095312943658261334044222425742297599175360032869925778582392099791677398251367900859094745554444786732762023701043937092021678614296650908427232224222570731411239334759102855339528619701858320625643784833997505032546843236038218663698928589660464146041664858272580104989232482389189814041492543918477186072553811203747395819450735450731455467115839879900319586129311257323746921036819783997568387825764678335966002305380407846514534686988741030802617315009501909773297353826865323824015369569808519176758761063981427030037020680627402096314203966138727236918223072241239415677360713569474316897707680270715132805482634454785650700982812821918318079362704151436637279466775846654631892820519243651813402837282127519691167107229480418026356716765864146687822998200163673717388183608867477265061428323605229926233666457725894924160492376771204549273910052536684607553289911508100348769638809523368060628858224225451162986433326646978949564235645508496558425855949842638659523017098843401453388942228241204674696854469250559426075990211342094975160400037651201275175294359891958350065029195492048518134007020265607267639631524247291714527457646667404752261904484533443079947698427058330887450943779302255448712660936293509551832702654931696739163439962478815713306291704218418331816788419128969087078774321038155536495188833523193264882327669471846758239901037496041448128635096153972817784235337197291750371439676167896394249080745019456532313534158086771908492966853834029060847829724557650535707661077184130834086931985259929812716140642711419689423211978205075281503170560846097588773970749032622663935368546837358943570126247820367517067228549777169613431576831716210095790345782980819743503804205171453641899283343099414955627604546992082288042021850979626364988763964653957736822330072689394446201223589969437094921917799456780150884285504008884917330095970069006112211740266663875794622649330241228568753920393344908582538730719662429402109291518469724720183358355306617260719823787121884081168297233017515278945488057116752688075182993258882399527190010728266608045990423847944981777401786050024525354897324533213159867556002924268910242796728575818054658650493849331614730873001963923259262489287862953739786185554316110048339820122375151478553217264607819518549279370888483692878090975499165891774461599480914780400774023870090245994309952415601556876383618223422316242878122962448620727294365475215172919362454147423043249746435960765175708618609557568941002403152105929435753913178138544872492068791977086722839410672583937427352481705880208788267320845762372257410446305880119770106344549270867150626944203601351133454372198973570645538398126542255300405542290491591598163069282002820378487409543922876429149081040593145886573005304815031891939490834479025513262481741929441715458778236278673725734060468636080487182940911884671070169622650244753479859097067017771988750420040344989701939738080811892567784957860809667962797822942848651124810683187030703363989837865990290793057943233936440221504984699967198572561042636069771883824911366634246974376820576522852627255533290421705173498861393349849053399888678812870367241811220950511820800192179733298072400260061592621542986207559622127427241230154425946918630075966082005044163128893302586329689767172768520780122721587386165842199450477094703254588298804588705108208834950538603145445787145490274148357297645828297109970191186139904209796780087374400842367162785620556976816204659795129149559720803918110577047021465582014072681964125680275322919419942880072021922740710064240329041426978851638941127911903894937462414698045864472738654408367166638922476808798300219337459755714456618722174167305459713153718445627034814332457896309820423665388887638319438825522189094185523796357552352092586741557949289767432560826336610433007787165362863726362225302478203921619968336258068048343953873121004369582222351250005143705275438984664746500740072700621130263172164984183556920136279351980902811377952052086110625738414549824675883926084906386405752140063781347407421619741366236882736125987494234549730223986945111877190898037763680675004688117657096346585639197982028918906409480937370689066453768660926158045986646820889364092316186371538470283169860426608791234546728065402774968507423646429822594293816876073366839324013795882281582731515749324771352124430131927139087277661038786422605750134547561854117029864545383986274373932488161734248254787061473774890018307421593243090902072403987693326097509346358008655004541691849898684519616791439789369053465793985451646511384743471983007378998238388040340668013597554986375484172829665118492035134760085137590378599793607613028514169023323072069338914519817299855352844326839875352451044497752324182070376852826948525607025256450977642206769594976992807209828026037778680240616661560991944338043398769485336415730686047057179697144243750766792498172706148614924201799871972559049844434595595283255262052427549075354306753902112817620548254507399541197551519409727306775089225242683941595798027233940386174888283298480087035387756192336730620860511764866632349239137961710184490512453722864773873202184276305542430887963548458253498545490893372264510594023696858563343899482484701229303488639377249162881700536922875218727368460568000206008712491992786716331106312319693809785722854254384292173046450024724254108725533183187890355834963979867150929608622415619474930338155414584752736439897939086183811380328870117805682750601227585171782883875269775381696031308032755494068699741976072245910364740073126889952957653532376922789409958413653756515390771116974663653599442800014519989460806497220344636779304908222845686937665390155077613104221902428026074247769338977558824923225850573629879543075332372890240954897403016005901258032666909339178982201313380416543823736399946295438692663807327176220160266059711677600200982735744591923044868253367199289166747716226882749262814987909816125542465418885286660034388929870043118081540906899315719578163782058886585675151946078451235967766435936579580823216060814461877976947912159628770009808347999840901911931147753436791046942976726617643424359346444262329116222360092461584072919801861497391414356762663755248727172195194919440294058580690487987729136973779594710041918465550178656679162141328130274292717964898054722723387486926737759529433880051906070581294252423261810490348789517903518863502811507465467988198331236068101969481232551399752287861567518087603880448829126043546164041984163637425386725070134246533644335638425818013976564065439007493262863251137452041432180001246893919586953077011013468429084336593649980733517465558887906510063839274864000883909571011949453486658175430946290703679127263750853173797737903221468451400356296753640844210186475854081920588676145754793560255900134458268359458242240807845681381254400730851995495743549841974231912201755446280461112341663030496813277932056858902345057990237458835621380612626886672793420927124629820423984904237041306862049401029305648805630756922228404880725956102785699376093205159475661245939256607190154885892103148046214340948057478043994573074893089452101290926637216898426281605024663559010508231370015191961278704298443868759258825000971059653533884285054264663690015155747088178655819724978969491745294844990858978695249733702403898422544051110911048817119366549661002900832020636198600063648577444212204306163537975043410191861266997202864693417678570755012686873036990608442293322809664855479982505083077386811816238928954559118369320088286592402648694001264264593436577515158662665788419897694656707327523997936527918560913596639342771246414172629741276490139600211979961313549788573740776445925174646282469957918657541091262023559731101381798682468239218822098476276888217968205880203600417307836237762213746050515240613040635620342503227789708042539446353511251163846193704905289121980299497684891823262484194319390813595079267961021148680395725445305624931409966750665807860966532858141699734282753010440915712585821770762368209332954470353568584882206969619477682035585466811730906035408765084750921400768128611049550160015593693787759871361184982964121615042370657452345508084552331740927027788500963097550243976425185064323416229093780083418748648347666246453291464241003014163440659232900081190479860463083525397949591453202270316112032161410179348066798173210781987800905312676896315261115044819915031303028310229190477065168510353874856941292744149658334057404943693828348797879691732452089040813865597141813776841040476734912859536877073936002136124874467959059197862941871940719102499209536403323403262049252325401354244784866908473296937170520637080753768004909935892199489089090228844351827069445583334415991054909340919592319684853805294714569317524636746330159294370935079503496833805208277801109866106701975542036864065888090729008513503824530499292145350734556720849133260184367174196293184876485756001582817589952352412043883435731135293826208333060018420663186371066776673180366169496430208939652339681410476741314981286449369441174037641851285870364189642771165686229587986651697049796466608612954573044399879995573320678886789959359024364207095192932986304919034037844151386660358326763647299715009946491765971112872270386553196504796167554200047147860760221926169617822291266876884967314051893237048475830501659059072510699534025065843559635687142881478948038893964701365401235792260029845065081747444823875560870424867143830264844557894566081267449734192969531723616128007061264609409600082711736130808549378825869846855578414349270441041940492435681237053332280759173989748066049194305665770920693904017766273302564768225799359386771861415292547422150572457870978637241853544099364832446209893067734588582089375799868670971687596744632798710945883029634179807164429946088310861091263641195896693086852036803471222191843462170745166552318621638352483732064900957178310197162409113303466069292517619618242908216017517038732144297293738253137417446515943040270005799000651800390596681628572250660242868846406159084259770107486053511840854263954847891030393056601560591842746058089369192327845517250989682916217544391306428529400145017743132176030789761024014463752282289368923127809629035452733696442239614598775583136525354112135667876153982143458769424084170343756324306601095360170836879958270489488913654536481861649046781356918717454967646262729270286529165784151860250052668556704024433407234084296765564853680797734292559106536701149489867382308435831462602587535620877181203195070368143605689162272827956013112374833923585606235498164640848668585884796007724094613811712490005625411982522015783267123139912779407913596602044213365946786338233660190731450736540467242544202984060935985522515169705791954342393384412115898520577017733924150305124057191698983347244474762351977814307950734821423755742838167933919434993317790948029772426065709244452470956538354693954712083219265432012248874953341479955385115667329645620004514485184029772801932699036154423830932242542987990852280972630928389203058481794560739377163156288325893539678953162694318051161249871491365933922327628144650199557019484726948293065063683188763106241877320660545861409000087151980867899724581014296176754703291606344560110814951427822978467904303239139704153242884616170251949387015729868128277165082849788327634631897430316078950018507050337435754034571842737942694050623022603874186673419583593926268877812946955697890785703603156260736424094689986998849863435898176817402168521908909974453177793954480637952465375066531179485805597029764449068259068954065155937279170323367662047886623583885944478890454612144332693916866540598113625851928479541068039629593651179905168362350953416364913543391970141632220784173495504081983031882353682636041376709602416799983629583825726980259101303079166071739387730712156849755745745936820294973779987850025515034190121144826285375509024858581403063357839686062211239983428161780440811413268076399133309664386371478426451949224190640305896312329390447343084879488256724690216660784720716084606144441363138963356024199258691379199392648230388265098524585469034283344118755127426636733231965460556477808833552632216095013540270287081333494447933336030018046428780221026616556848533756239697202447150441618862400352349230561324790962903396703789839907603474175005691412374467750862898571572750545868044925307841153898480837219343489395760728871556802919105266987252307833972235222400164831403407286304159445582785619016865135774016097126092692964100305267330336728124956435530301610721723006698000288120907474794796029405497933082894099875898736299370027616920324726012942050807031410476239553659594535880301836880401614590093654092293179085596970237000483919202283733140464499609418719170264615322931819976279189068979662161722855678002495182530309549432354034838213491547264449069996650830657051912637793981300412810910848716284670512235734617379131671307022825746136998694894717029371553815733295347878406867438735585784136448816176684531022970129931303278641711836258937820103978741498403591064836462690650748833394297957259540220811344001545666642116229486091700634339373939355884963769574686728848728714134970819667123028767523345136699632077254260534260123655087683721226443265995262341021240422533785278706385801404373336418437120913765484377100460054034021481061070049780382194434742986059352551843085465592533471625906981137001750348632156409524815957720942739549810919258913446402737805624571136820308950075133565267201851667965010720160010410292408754938075535110178193645813979478386558171046924708362767828886740471302578397574055581718318630029784701696585157035894569397729550469095488536091746534247485215624493766818118116476455999685285695589613833466779465720662819152095645252923869046026142988616756485478671887430942842392351831725774497969755697413975642251965314378941845683267353302083177651126572381410111693205318646625140361528698327893981626714346395825236824329331223593750322300926164083259569155707560503288971953013216081428255126920440702907668313127186336497745175033622084082475156059718327970132325568585706902484443777547312292751894668487328881902864251931007988823118741465680091581845546863308769712442486314434672129479395852185516422508509113530921008925891018811315210254997194320809353011953077528248091903805372852855145157629267915181513896502222926453597916464253372798123195907561062229779726494557289440695350711641623517537388783710624711428480159225582723538416783444614769648294348257467581099210066475772265632777879575352531021611735590781718464993752318790544667368549952756596273978726412164427220891983267838039979440159415696034779133811536293603174499663244693062590173850600249378274316728765213605164681706511013877407248207297782316346129985012546093959566682321025712552550069425561010753455625813214981200045741455845412156293287624900548916810458420935517310643461252771335086281925012463543773336093113014800164570501049580343990147780600497471332548328412259901728625707103997691180692286509698042371331814063439201380885968396629621405813911811942687674966556660325937068259371749702960607187114303037762308008659434180870276296972063257434427279063384513098337347935962803822299446694498825831952530152075082274233496461511184716791158845258828054512047166009869143039934954927587580139919339489750995644854140037875554343234091149356998861120049077001709011541546917794064842044861308985616166610279682390164056297962028835007717073255938445650788910928501047305507029739905875803947269553620420788623460081967728373117339137711096125629661397551881505308514979011566368533384418388511148332266471285912376924222514349637148711658880198865327041692046969102203176485732033447412816670552752627258124945437963104048494444273606188139003516753331698328336294927224587041291187495957490072750701540869482216815160225430028804367819718662356804133507787521826768617429658213457982116754443042264859963705838404768359760376137137232744030936655241149128351645219869928751895525765251543977150332323658276394884462375446498566096059489635465035538499499880582097969156446744187974764074041578517861142338857237158042185802496430717213135104582870160043985360344078720385571382792087276346696619315857231200906310157455009970944756100881962060086451543291727412752705692550456224144007388456310850807011094809570423745391374373408083302028845377900578658535010231744349196692944133453236022379290946417813012888312046700457647882018938590104092830216369216167611843260748429019033490802829896479465869117509305356020619196597690546179513225712250682016375053519629555365421349997029166370917619034803998002366293343385085597579193572886774713440252944234162024548952783910137880169423903621516924190181245735829102047523864445619249155147722065740923814861020301032974081191811768560783254081414062247571558892325649710055657165459004880033725255478358188108694348156215961428757300991190414411724345170375849950056758872941867643945523622839501159327027578298157424733119884260723025374740619149462332752692784295188056421328758119354505567543453228948207010574463908001921341312329491265456208950666162102238395032080916126084102497741493562413461689080025034789780384318518096968915789403080278183979085266727359189921534664781847369005556490798853485621108183170191470245602256112503408570119288153718318045748810775625541533175250421891528937296988335094005621475081600441819279936808457494735153870539206307287465960844961430011949631891114494903137163136311395350846307582022374027766393759495891466021208389935345656351131514402605883659965154653873378340442598356545510299670403294895094521372551116037799135347734095429074548425563982291646527777872315010431335029394747635383995075003570888870160815528722940366787451530903003519977446061280204883526826773502464644561537097882980306180084894907480489742319422921299443594244000713268488577458257251887774214504671881249776538366944674617895432204216140445836601601427880183446504898830354678077907678751247610573355214558222316086078291904218072417239482030316614108880948678380878883437783134278817409537934168126041090389834093858965236802405113504372589039093099368053197270734755592886691459162331206373389728488385622239412308584109044632405707340886093037769315442138095232919176001125310347654886660821328530857088308370441577227726858149881044418099695263867025217158293106047123724780123177677443412999836105225630997524943045166406182562998826940647696660943801282855421465977508152905088152658568324713694820265748039418499961447943985019961585461374141170269614206455967117693533212286535384903564995192805568314972058948201283317123639265822327323737920509231562905104943096972287176523649414633275850161075260573961433032753605344370822000257449122349355478686379840463837027995183721228568758175203827135167532357443386559383472216118044324193123375227759247778097614015112894126640479985862627040860221547505489850744877809188122518170620492607592255239477488999427170791440379920492274363902951156400788595217769176398449585258354264338427585447790497621359243521279104193020842373728393226383247536865663643021571686853891632096075236188176760260392833683273441685776120723617121507363667232751386267923910307074568539124486078491760662809346419287818739459812789545385602328519543323942402835086034302645078722784503836402252428047832729465622531143418530003404423140193294739747657884121195781052310518479971417389815721723811857979554392042966534955550525828537850193217004159968543346163156466311510548191457022702053262719663749725459462043763508581072193902842071252100354698602952611649750221678731683115451577145158080598590895359588743883444221587918930271568040456063126743533425016563646175804925730304939119926025609862083951121584902696528229454243789136655333124981263689297610440454528611828421725175182867403285132341053204744252861765720016407712743516378717931148060124599508820365371834341223843346534546542268365404367460054275067746455951655321547072959142382356615443354512210960998029754140191959508237224293457651123994896311781295189823322215429193477970953185817843276536781768069799744988303482378735737985430370338792065559955258554366945335223697164319792455493801512299103165047140906261425347100072580403650472675601308293524141663160949023173684367810501438738219853803369994706672644193990448967619900603028162392119221594524655429226834815278192320761514723331951515878079968350012375928818089167086761536452386368513216069319327097419136457395803208321655980954922567207794818446372981371689750112669753617836041505328726159533750300517761511198411801275435010581342577606743152193953440240664034864186272040586059640854557361283748801108219633802978723799328832882222849085751872542469988097504623996121503768705284256543438175358225932275813273673338183884892868526350253586615194616732905201314266899552892463837173573490977058613038641809362038276674348640945033551437223409914291641830492290840706336764727946031747239874268327801626273947171092822262631978832747481557880756523943251017672288148268103662736764493513830325540979599095827564355288542164978249600985251436471237371136979280218060731041879497711372399140948853157470893746488739471380859214287067423366123785149486588341687980414215110505015495273592701992033601152594715968300059215468355819741839454810416832112032110613986570935677311459499833752573978370064285097205496112834799177087143635235158564208734513697745077658173351317514592509692474407687885732817371916034644030370514996485779126053336111253450381017321544424008557395909517350504280079081797904517912955718410289425369504399148938327618004817952169993483093915677275420592467227010954370570823038260798985852795334619442559216951139633314215870442600819266110645911921074310702043159677212256739326351244402889387022314223803266941490921604588588402502915871274461726064915420374147988101777147017712292456526402546316607312346665743641079742008428742037098174588638217740632309471964552560761712258616832839445735048700814798400822468923185066790035808010964886402420876709610442402022090640169851694006790511825082601346415946405418375433034452257298548829823724833993874660129499294530192015477514318526991894641012879349537128002909180720871000528848467186631318694076054793994853173210069014029948559003881689868458788553428617428720667179354312536146837431082783697788070036985036811853049260095413456659281995420871232043807040055653116985088211388667537275250536201082582637326528059503110839199064440495430792049802759451288287744689706091694664991298632657310120388822030901586612134968651359963420838113224544068304488711739388468181555187584463157361186898230002403572577813672562983980747577024349156267721788563971348412643145735103676525151958591217723402756334632383217931747365488558796194395860640294562035943881503314230340256526056214133242858607234673008131235696484528005077448713776489029787787633688132881125704105325049224869113680643865457045224296862971575524037861706288785539544733562604255022368068399993028148670733045713986095983526260699724046622711493667010169123400971253500039063942801080389504542106130660090200931703676039446848228470410686588930296762472345272430519625430511123662584519705564764268151480140895321000971192537212036639716818676220825701367697144214633863881050979466093824793087098050229457640507574259815875812194044360009540821131964327870922817146603897749914737203614625875707524979897596231596824546535429964106864770551963750945512637300664364226175001470567189455145769732361026921279177631491834305828369741931205226427063802092117467050370521476526226588549348145508288148547019206708783810986088039342056873929351668603117874521711250437889466086048510803493526991443678111066966957075825236820038325735930195415916794760128199755718748418100116204783589063286466679872577258917621026692613939226731855670227395674840388871390062759650898834866599767248144948356883067882985664481221131352668301364506458769845181081999711377028373857086681647025586490774795793950961868446108585958592543389504423730365510259922815924695518320797322256021969608432640187897318176311654030192119829858914651324841464284007118838127465379272965421417429407117261807387172712943077996730648860670254729794838378729596994869718059538106115233925723509809946111599088568950099235225467319629094975155566724324550093394833659098814779464942005395265078020911946559121656549540859385180578943372675446817930195881800793947905553250211299567381429327547336187935879786260867764809445655418975631433567274335035676878191943152206711240704591261197801216658899278704898141300750249955690553532371732266278456083566284928600601196749790503739176016358744119064961664198097870091339084408768434711777245335980464794432547577613165156019834818683124725411654388046919438151411327785590269541150091377854521152205316599966527918468859375250529139867961026740098997848347859942361316800041952538380169262777060375839689620985212956706088141123788816774010181132818625999698351271082390498788274968596225776184397779421282377343594578525104073592296659000847710682420001722571647359540393302032352488377509188718951466678908373412071692857959992283846970000836019511244754559401942190441481311103617741767696611988709911723986419066386226204696755876887429589971698171768449234188975550221160679417399761041977136127963252454552365443552481905134372184296002088589016263847974057158701598340465823482152640901272143680905394729936595877357782300257182030055770869582142315611658637105034472094811565203280002771599405112715577201902843116524832658092898081815720689101527738199529241690840809217089477641442615095295521512156982593304173201217757784211443492666572690866553712467987489331185581592729473799252813250747499713551932736365220645329404836954834563293123708982437101341299881501772520325297890339212280152414481702284574388354245394647869109176606187154951666795881373953870190898758814415435597962328585097494974290962986053764651374941848636648787566891842862102644415589253421751640084097951683936518701917810606811491010632147081384888447198938452437700494818228728076916340416424944948545932127208527399098636986701941415515380970327073474614786062200016329502554117661752182703274577078817294293455720067435856730183794288595388000617208893722340940220955194818227753881163587821983808205967022384119194241238630051139008013094268474688427750697136176218610454167015797319970614018705074348425276371355381374040914105532851913415668528393997362787573998473402488164664296506559306266326607438433856378274275734243002620532406347779290634898463059279582222625449578924773940718345613909890045067888549784162310680684954796713711166144315096996581502568066240030382654524471448242088750266237566962604427552704637113152206274600183196129082834939964200547736419188665567852667710624192437946660493996971671068012715645784603631433671469603373868140937984888027666792283362321900774471275577150587138872167137580008629152672408654944752483195732772579172379331001412169017876033070747442088022159957096384202191118840753002183631133793949784916366754360028835606614813801080436733508863689706958250782603154854530826418847353239716209521402119912846868577049054501505068684452826324490917883460748180051850394048098923959846755359748156954909439751303969793092602392434047233285726143739101384936792192580580289641925534943170596516025173271918743559200572247580020721852385118142863861384557386579544717876107954369371508863628361415891444692419954439721696073474952932010199165982310578445687914801837214794678450318569080354746860870827707337560391890243330689613605917182483722752761376073418244814932379186463589137760937818116056940409471544539206701238923003719281022059250654009365412847245030592675237647087568399646133225671575063698903536336614867568867603689815564656885254979703253565763919453847818766952160468593979609703310777328447346093876998739809418179289419515594261514572696517971939097683019612487114720155055990237114931986629809249671207009663205130660197423330120294937515802595848726974477631288124253078254215108888771363372168086080867589578191825046417330819973911208349676625750533913639925457986099114370435740056699252722114828391342167091503245716917071300206610326393441312934891328954897136369245434457531790176029229697849484148302000411230162020601768730018806082338598562007303157300015769176071875495086859929633690342774427427521294764857561187322426522120569697107427671578304954346217066320109488596378095896341338343049416294338735659288159069907000520046438009701682757002363614332192915336373834708199837395218312575615723905474979866051303404080069177677131500244754096303477882978128287507292066657133452833557432655926201089045394891053794677661230872709157802232292744495417901977486114695754808028866488397067784188040552503790895844366136364292836003918082635632590274610891430801009005168732410981301006535225082715112420140035132356064125282550209839183635747230371990882786663524933276936214252079745281952542597787716972306822016379558947461162459878416475616268293580392757053568373958950524753239786531566500373970190309742395880767013653076664994123487536323028829713932741785790423246872802260466208829750247184865121311074713484038533380953813718338654561953028391120344262686167269094746830843058434890426711101397860137831258646398238789042635939299320995078657233435584362847991484254390761159012552455226491030317960496400234533626671411289697600078799660347457602272522427012283826368026426682848343129337778031321707412380855483690344310969129036575247464465222252723371247812883931571944536287597265961590050912144071691354728087206701679302840231966163283220130262845444769147054921008461096655503662857385755325953828006286489545981666541803821652129870449277447402266832622303602776939487142021251003510756725383389133511478658461178476155472278294295216488175740056018895923173240821383312865668772339317148502709943934743538227782395255766564607351414706201394568808964799682401131112505945632500984556297309530371836864917885751150923256592808458064704422864810043987396332684237526140041390121136620807116285250323507359515637903347216041786292170052967259215335872936601720919608671755262917032597099005724400490639752669027228315731725607314585676406821740402104220219310536862399342001246086327866176164376030619253168332240901381748148049641411891007164024467168082028427586437500254319176309224927703831990696391281708919855183356572063351009707960541038154576387491774415567387453346238636034493213570973602789751537646426892626118976335411997087183895899215937507740844148390486835489115589481626862896598359171903991010750924393508587984693552262566372349822418337934263103815658358804044149317688211728647139245453555709974106796109782465765035077762862710491040427901555475405150770765926757398892108231595250627495078096173738156090597994229782416732736508017233792766734406850170190598676717887225783795751564277939808599606390468357511955707069579507181884699110411853692855725515800370890860580621816295816693235201995375396716341879252062651189490953098878567437414518270646016317500036611770786494398715895921538027659489001847117847504016926118372205831572647866934308720928032841102583761335198654845967699005305565979214808656921263723560839502730297168062953755523434580533808608998686751422344640876791429780254115266192201796824811206908267902598459737507584738307537622791386379020695786063016666494062845940881250456241571517205918592880398544238780954842232742441012352308740595280844008746447519787248103064817350320149190349632301989872850749965993201868966303763133680702153325653457498004153861221801316253728057869574446849478198452910177369895127586645170024489987973536582031821031361699053246568303452547928570076969350585320161278058343863397736149330817180619398486445102340636412019773183797783734236084153343222336141471136365916775287186959919566651343167863481460742819964207838090229848466956567460237187594861274812097572204649571191987796162548604986035902034445508900859111074138988784931416351389969159679531222847354722265325096313610927541001532869239327094141536189818669080897177918441043832112217960266057245554401455176455673183897761311692642472349833734373156917850431015033059704650530163880646571025787610925995804774434359298958411157121162329304462959914972334285716569229192180241319171748441988045983182346807199347378816417617948930021536701256983933635085752590231764217626097534931864875252220916794667080351234867782859318685647158169755659026853189381740701131371368282293863053116532439963260841921802809155641949755877138276284029362308243195328251283839334636215510403300210256606547151064037338283124124859400652250713653471881596076247631894854830335909110262450051566648741523825224502887715565212894023634642487613081990177349706969426391727129033511573027516512477961934572562458315528222324497190496325037735264913782396772532860097425873469378683706167275825287351324265469244451391354934646836080812087042774345731609260074106084237320774707395146649940328845762710734768055846640314833736191471666836378704742189081896232497123245517265640728874830177512552793569796889419927352093994195199195756344679810697298987897653700172470560397591930059037588389577002748848315134693379857161049833702161107566657961821175900751050606858943918439901892297947138242920455884847708174890521618142679307473859302112171850895882339481375258587193719232646612975228074037609605034524762665153697847225555826739577713352094981461555700799521114806817767000487420531280071460098968201673248292659522211450321565988912511652703229658041781156095708303075397661053441665676010960494498076084584062396829321292652293429222935678542678359512605473598958264132264888567127150094393124207604287950360239249653380752569332517341412123504816118708375386150300120888867222499144495624541743513276930203644324602345517148558693182808224521236896142040559099141373475123835198336097814919607692648698664751706545550783571502283461599394781566456172949647705325118417214055108156510193850956572015129691345062918031891821190062608192818267779542585798689099656338956129350105798985749018560090932982220283600202200701101729927062751510402778273839326063036396380473764424249729978343823266122279692137334380898427833425674018038848051480534457300870742387575035802707408119779090709323993825848070716890746929668055960141829744048185022432054584119729418622437457228194111854047190268676240452123042724569627660527250203982273743134654837921588191781600536007164598314304102699591237280408743395577122006506334983211906839843821148646728392744219833922565456958727583698375163762013864851126691305088652704489783184132048919766939473428838025888138677579006883327261776268135517824246463837787971684917756555437302435603485170484118086849869110835707389249585544579980309291111580024090240483615025200773169991317309998556297985149879918404253957826091561215253590460807415076272534866586990340061629972188500849235394062199915891795236688422367788242683919182360748030720110297766737846773156848082265655841673710939910142919079385854419925958080741659187583976396021084814769067456748607068873867299776924650613577197545857730626556599799100327560836212983205569708340427959480191427719145449844486986842994498824045116433302511836323883756698926805767675191623308202618836143436795088109180133264648189888000698305644889575422647413662201494637204662559670676086321667911211958171237301634753044618070564999489545120958180753498047618479145278892406906484581496850017412333370065242838492468405811589297136161321000686378677260078215307921470894241726051411966990011197734161337757946784307395029654533472121659715231110452531933809033193697124499728964258166584260041218607807537616188377634765515798887550289886476334879931514474006556811170349028968783973307003864145350372334158916755909547271096523569499396303371030192357362927221681266955683563005345785328086422181009985197836773535544803827815239495401777561864615855997778591622917657306259070881250442364257163644959821502231124900701081551883630674857429411792111439200362245278878342322635640108261802521060659187211925854296852033167938023799295353259163102121250295285644067646965364507279320341511619562498854096490233815704146621677972180741686707338028312500212530658238564875320226139308433935155799868260191540573674820372527986162144757255979945475285029355203274519431272129408372531256910713544176147478565447457753398035746044635288696234934195125390994434205321260723123345832331425882694290321617039909680373312959243057669815528074884371116836952823482030227227650096935534808616077667951401568853879304495866747663061424056817188682732509928549776285060472515947031792470160543859582675805500236210831498728486707152624187945520225920369428146414829344458344387113847340937161122343433086193684265629237012995485514003817261370343868942139642745970547505776962803927017268459710285236043852792981023271145879634769696700558143285553085623783323990496624668754687960581093535171902699762552719375316380835064344492582668584773912231794086031248626808157722817880560821284107645691016324577895734441777687189952593454794111414040987134789480354272420193786777026607136996151399718686976934310742795460088485483409783746957019443904076376393917592475610920558545492851013585127710545001839420729363952319017940875304985025798973906807969006993764831684757786910368505495966500680548299051464474076256276871978496455908822765080255314667323156738310621252750720280517610786556371579343657918860924683969506960441223910338415795499706025113872753667056563628650801699527893438744674098017125882595683455127591839925972955868995712383591681973205122832333716181294930197960439951055767693988544650583166409796128594338947182250634213415289726136316973041194183121715244017878226420319940282936455919651831914856293072693955956553690628705651232486136836854844312636923180816131847889343069308861197447866156421856122226015514548759733980515631776060206461527665566975035009082430318810970758645640419241837495079807238964010597010842839313940878508181184199013355097692633701763447410957525214906862823491188420776509207182202484163940386530147176417625948652038498913063589000744209656869889751617175272846761545794770302587498041975559602202623702519587646182424642670853764429976480137317092623027303818702510101914912701133666736846181867810247027505885539781185948523228306953298071371226870385293402063091258823905398755587617705515423901348999427086212641206232715701355300165665545311346271911990213114572711888911302350381014619402972212298877419714168034393972517353872695487327589318690739712735621084107540397931181779664220605602283468836428296272695254952961253301108106433792379363350987427427654844229673171491179462959097191796869950002090606679610557016142280552028239283233734490149819447957703426583084379389636961979335280668381495095405534539534995144899342590097224046294095245958451095770291574216382678862485541244360263441694287846511939077310079258621887310257161992874613308032849975062564484993024574957016510927818619726097103291221687346494253896568350127835037416731455408953065982166362608210026252126811828419668746798852772994190235759976547804361749772623150167496449821894486791012801704601389168707781422360784408310857241083798007213432274533441220543045300224653801725455712109190081531787962684029345426597337938876016071079900623077864746412447193102078451100248642123379047420326543255998361496538657724121107722312023596458408767113101342350050311455338687997564278462283743268956237372773428232060711921854854781586440219575426764180704899896741864995524027697522602703839360410697981283300720199637233051804248993500640860452182696608727967112151929083390093222200505130441587165307498913658191790165367809071649921723954187182573964577652943622424032452913004908956563136184999929576847297040788651271327960398840424226511700464018436165748187080565756211566393110239949292794978624299237755942138155774687193682869337049357590190901250595187383399200370227010019087868049719849099057705509507950363016310225407737706189371710568384560351819922538275111749751722070128200858716384961600378877670965247002832792093074421955032326530079978029734250866030590965303055581581097315583376362752012562166452757555592455856572945334632940343819380406790766215180975878399602793154426386337143026861914635008626297490142032534973764810474838713288301275483040938421744201560067122372014691280574678127936519889500227418044972702441879251397543774756055286030026557638387821328169438543348212144178511152917666345754465186942477893215087614436870188882346869695170626616228272665653603608028899847777563435639162823692940040165283430887107165797825419619912300405814476123043825676631880552023245587020001739470546525142821125174686374157150840376589327784294651433740234712170799932954125788037949283105062577662684715888608928824630773236365143900533952756268626276943116156005492828921759989186625511663671151939801307622475784919547322686707324324828285578439118889391490862463151961075541170025299551652714801167330733410614978730279249539894129580817934000673549263912872048989557189665182290550700658917870486332640751545204012064659309655263727654638644571702459440382236544146317950640994196793516595525820746433748134336427584384058059464958988528888522100875055484498710762649697572230744394179471453334863574734667572791749286653448013925156405147631951085648888470540906058672581605104384705220774385463518734868479569450314137525607218365028152318147510115150852151956517916936086662002810218860226697078142745791575383513022570067982025173092665942251356445838026847229466567238046880457184278805588339651502166824625331565041992098763704726187718734774816902708584387619380707459868435693936633999135032727850663219603941203578775746823255095383646082707513384297372354912869630880501808673182041765746501419140436010247851540093204267585991371707778059941731525945629245555625085565988723278783820689760807933036113529804540952231559855729389355891154165279497679068116315479706782369143691121501809610789601853841446582259063632258669378834854553716101386025130758617199797665862896641972791393749041294759506618168733678480745053516935273985838279691305535867862374313558197976414964005318285989807136558005709485179082424867577301702075660836026966630203497054552481607399624286696778675848652389055645531096122642980275452522928430004052136233060327155951689138032659386857958808904027911632288190931358219903602065662002908046313098194419197305411967707243385514250769806832617513971747163593140686042436076664007587217065811891252004365023482963292115023733835492359949363765871093055928641857090215160778511878434326318348169281465942916719645370213456134837578371586633451780486320700401346539914681573840043731672215078769649320265071055404422854641582626898513640035561607746962101402317772785239029193696632314491817410588215873927510894677950940167688253839270079928615862599146885660023870794123931373229112756926112690220050098979914625974249708836537060386634321615907541079427448615913556487063859407895932442951863161879859435356589685203242961608889661653023467341791039173683456692625602403532171229451194980182419016049178772961254246222038528531611126842049880349401289998177314688320621841680028437159135499538037220669466571880813306078382424146576203741488017941008804483682945780950150002307707327659212329180229791874525116805293778274640321266578664195397226746696162939594069600254229250589638263280363061100159590608456995550230796732619609199624138810661861857422524549888768843089683208845456143590786126306413621052311885828848958783022437739659470071522066974888345105937145241645368199028179781568264415016233885087043038899844359430194541536063252865673774213093237469481090002313821945231918325094526698269137885132803136995445655490895146659303183247035197313107952550246907656149409402089993304394699445665187403211727999875295730724782037208528942211892644345634906874412695367709221023138219557653589159233105668803167754078391104023596631761783364188133363257213210613134571505273164104507267249625093415958052721205556955736881942391403058050025761469768424106470639230611771667076763431243947297351134199229839028249306207403918078493007725583763017295098881663473302178348887622628901191664960001311821604823494177933296432212313021814495842007306212772745456551607380924683216124355703957803860027816068833055974486938231963332425295894334516067035048047220388639882481526864620380729598838796593901314057947440746064146349897563736383675297980889339942435386070136756582858948521398360556718365401815574471921512472168067234678808351846794554372187206250998203634691194745296853661579615711231427024991271067950844355535161710774061704146193095062427563366114395644823840218384572726105074156562317058682879746572525350242092676354197887225212580433317211578471975138633113679411367033051995360469282499573204050750344659340640033226945780924507980879837070865451356052930627588155662945154004545398109197571210081870270310295013196096242466564781163946953953470259377970824249839419624744780778640184490234639089581031912459071281948087071990416020674912034335246490626430451474062338447988289746565737190168994885363975425427646166040313456079402429808878429980921723251591368510539837183699751555446474481658270564603058191859027963506769279783943629201538748061465973159576814072084663669927196173576146406770660644786564401073574184291714246912910174777025307564226133006869768762315469946475606985808919076311285712400826173745447325303593248481443771192727505516213124912258106449088989192164438988580372508581144405437566583568180731420214676971147070230502492484960235949893854025966270934946420161440492617896158146737872417951101622989684836249005566382549778664538484535225669207925183881511429428555860824976579391555210850899355614403606947196304615566409574967097218122925325526112888094219555333771630430203195346942855960400573295725104217475539295676144089641415117821775693727730980768902964549658254473587317610018871360797025540446064944467985785634406575936815886063646557747791516851367725463312832913925679008357355620877839632110731377905218283189578348810084816451321821855222828357530796843271409795315618637190451737056806200665137357185942869952438275695327986062971834306120205965248586232285986845144877160803769145081056126046836618432775994639559477571715479093222580631927371430436484133103767121441160986170282044650805857837223222598084119388661528098034468981615851026677200967932155966990223223133523007919597347765858670107317059470986565704480672858013812383675154842776593065537846577319303339481482041608109001913494199058729913057984274141057869565291012552130235760083398158340459323321582886058201513747126769488414534901563275409025476985165201839304215292262883085403029834996229849566531919720010450741830194963689760122148014703858076480366081250964722524810254978210572245760228814183043167663264801567427043187077861307048769249289642840742089992637328556320936316294065509203748613973414784340032180212747269195669605536275138990864968009347912905556729970286691253253629947661341158621511049971053311839661012896003347047163874076909156723328265887331893408840905762741413636452394907048481092937046065646113029416415950180342167145924443514002718833315586090364728519837162888449121580812652628896951543598723674139967303830667812953767494519444596007432810912879769044886475728464655551532582403842125033291641555313235636234210381719157388371431844971012994581889546750833319723104730990622121100258032089177246814748501785448416032822080964746236714422500782828303915327300057171030473329174399122953039024563887176241410849090048478991770775296791306125171463049259765093879886270080889647505409473334459143383847226014149974747192684221695160011821817231837514693389981665317421118726274725757999413512803180232244166755216019829821357726978134134947567355984124442062445815702397579801602020787526349952694721443881880020215729126885105452987602722262003595240452670147175948509972710456029736655994170414107637025565172785676677364561015938069887839498271822794801922189414715346985967025507024414282992622064775222451811726340377164045702542178642794463910539369678819168049819748487649631079872659437159772141206149184012002077663650573358341292061678404582238916266704936803738161810003097559597650641096283123262474009229746515495050088045086958754197961408114495708657844296326088722086935836319085063495832327591723070257889000159568789698263872524448921907887344995803039527218490859681535491726448692813776025764947486303239004183365783222005195106113743332844354057537280844539946588042388861344100921704126163330964860504831858605841172442139215593556139935931250766791646867231368773511250780219260322977634375131314603128478268344072658866790964962386069248285921022589446692189438108508828593401362502834930475145210689949994452609147746098793867973018199935424535862153303638981754658106926420218589859168090500953871428184837623867643712471817944080269566529190938551669401596229420989165974089684254152815463198201668980968130194784677051507683863723310510467640367249706745621377083475923628614038830888976962837366289365083856864073362565441351270477357054631053941922212047352004193307943959816033273262706777356069245684485719518160771985353305188507493122752810530629136549270348965470551652160165903890607988108382579626558330483367712848723995060725694043638367321221766126734113783616239805684363595178830500354895444738743566970855118724735471701140793858826628551022615186128165299543506981556256976931639116366541310210491541795332907278407908671315771266259331602835256847995510158462268043303279553894976790852684531949597508432759405797726759225693615076432385185259733949617192094078825202302391476978125412878585024533865780302080362093435549976400544860838458841554119932293479712534345570842509668620266891079635164475027505823187792262897512704118264916351106793750404388378564133938453601162733861064857837638558901241688009356947076955622437391415887323585746253679158791981671971453450921720579342409009560501062109087633809586805434350897823230813020437744346573503743350935067431447033535619434862847206351613764944577301931516857355067572434831992424489491534903811645534645360802508612291175163966870794323520460262517737909104542001124076516156728541438716241150588814597217168946925739347917466226258909985638065378205471885478180312860017667464813924889563655554604769670074900418746889226423829922848170187656794707474332827892344884224602332124686009243427339338113031080804335654377861657766431860889730915359917479756319162199423803223709781429698080097418362439105636468665098706567864159033560102845248681080899595895335600584742050526968847943549571224275595614910828063015931798195255143508671389272812795414094376683029746341431607536576500869912282025676977235074968216460980459958027843641651616036889234016599837948222956168204994480026675095128395708096884106186239360149982364416914397192048934473044565324652379345503245870601408264124692649213914048159813588868067696820194313237917506244354409240968374301123402789181891769924125994543709680231308799598574718571014482651159025221016908094952548165497906297317957768116702082909156943992379122272146360084613864960204100259596854848309161590709604995601021124363833756797641569702749621732834925039812057041624526196653762664374694551475785032765297407729789038342927198368708856847705288595638613292368076688349410961807211951707441696490556128880540407801627867314207491469452176180314606840796773899259779450468686848759116908295328381144505443549508160554851896763282488209842516590943169578585471264271132368121362228275361282289783139248681112351771779530094130854153944124657689124758633006644729987774701959419889341989503603165726583296794163098239556512864071657881662568740512129882612830666266933040857084640486755104565808441329918912396552925309150230652761747337710535718077271382592305422833582336729943512955784832999101800706107559655738779402692756409694010272348928262614261068782010418175727043441651974036575665531489003156954786339009523366957862557067041627107083932192808548759662900731289166067453812390228624171276363233719794339589768764463535921589775528118913034943449866242384483503803359388707827330695702909164634447417522223284630945507099445233416119917755817338052005632493072826595246807521309475194497658625464475623514885649231382684809633383003632743565160866325648493074255303104474967129797475194838843963738148908567020187178653685697479714868359546243412030537664929197988156623870988163141695658806913009417167348777362302463085366011834926871803525456418741828205575923831811853802752030476336474547299707398767743155859436659120794702296674168517081344821329104824589839140284710928534277036557229795855272310268253759674158761630476359654135818404940845399108870076902727384417296875637418224022841189465709577803264902330414991824117708829604692140385782870176879620709168174321898109649571625487596415832222509845662263241050877606432714064659344934643767985980452890877635881683538418053211564087400093242381591178028132811819693499879536478807004166708599174924801918894344681625794624731872629991989154256948246495287360778714912479429235236013724457184500582667251835870046774029943586983862442168428052653605418965570749290882514006687823316776607072406671739768871902769400962293891392989391815230310588739559295625475057680510640644083286993665233902806060100374770904137081310309410372115804218587924157042013858535664064175868282377863493430305541046742509881615001059884429933778573737610774787326858471163528226408732226816903699809164272462319529233008474737152248131808228849809584669756971255631225511526572083337312415941173589817372078173247587697795740846497222578147837754355639517360620454925575921171454143134638277596916623503999577311948028791639610965990280700018641537276243529115369780189279855769185217530620527125861118763634126395388187833673733678815255408605161820428315301165810931318069862070568294490824261336332244788556689892028019298845849530404699889127489042025983984684939589294618701829527388895863402472254880689374607276837697122713578129992703374442603200643081346675991737025801240704405138539001166913696514402055254318344139976000435755412706385569986557808920124531537907478152610848483849106380578081039386531548382839648220733005873037750318371050540998708728380387509116677494850994860813539498116255607804560958233732839242936089118767065355499535182536566999198284532652578189683978754235474095566175366243790857324655363551686116338803714475045513136122522043872388793045755191730825486681885403990417450223441786969828295537339085342210273165015900935136323137555271946516473104146712580431752572897618266665410864070823978773994755176339672687673959546825316766599934494369535033790171712948338644554752808093127749375021090064347014127650696156849092816458697663805473839640041381469789764850803150445109424664781706982661541872049044409910006582636932569008333310718587848431721289086612411886503736025515570857589200168310733926261467135291538743166440882652837470447275814143634933284760137949307099163424891780591894434396556374528941592259153703161266948890446579229353449116335495938284511506248479104967596153732604924589732650643253561807186017461364035961601735038359641004990522216640619622501725721065768056508593564046589957905870694153569892583080337279368599677082144723401128583427857323625033619751369561145967527054462050766600859821007568345932527545745705612244444490117502450553004050599586723102065834127157257781604872248027969168672551973281922535692907554215154698062032478546330778621115402943053833246912309544604464600194601559434028492874778980418552522386003679496119639638135179786648624953755735399239081546698832474190378866703204907210930422834473050690075902307685056338644448886233464992464343899674937320999070287128564863155098421192978178878494660838588559140049962046176975408418565818558967165365334038815043827881427731172431622599711892196725271004296196203206922463590229874097573163267083348479135839140340617590201827667080449889536117328793549859740084206638685639646949089788463951621894513884191635172136087372249364746982197204434361893421401149672796762658562232591250161876593318123568246374002826935690995694816031406943175348748983293200654541585453747431430588693339534007678661355596151995720265618280407183974075565644288497439365850358893821073142912008808165471861072772666541059989847089375583154542525106976043482135751827020491497329445368410542524409925798991687911537036311619975709945174222319025601403640225043126450487579088352388992701454707004098542730931637406506413205288985332675269466502668796226275509611828356717973369761981401778635028658083840838777705799473291206114747965234820344681431871590973982154686271038640598455209616313813794875563656202514817829808645470171794215425203771594070784523514462739771766362594431515073887795704633493586789679744678388594426152849354885093539512013350505083299358773788723686478786927002651191733561689387827133916606760006334196872837019987576958841740793231022318846901640964691013608146230843734331258878171604157456431276510279632585572601807835410050845036094843727367480452544679302413480113110122313227779298273964384072864035312225491727257905365203503492328162588351074915039783377348076080134204253416974883922605744598580803860445552455513010417252069842635784253556511632332930022103662117775857185942022879416749153957280840865553571600674168282153278056479932419659626863968295514050564899607553099103417663681100861259220108392411227326057369750252038764714830990336724927466541478600923300261003139722335975738928505384031975336248438386924632928016552457595988083529767455305018986408235433963492541019071973704228198420776108431179642753811550477798922480866674790229087546699387815725881576511412757618054619004859553852155705951711915818498705583915181323691361402648956417775583863284078510956393340883069797450218247011336091580060226760502862099333086621233554165227225942642320337879116303024986605631935122790359166638840840672486639352201755469235619538543818464474362214869242015570181417383312991710756451966644717068292924238229430224545195748208444909342847375359696732575250519574497958919966026311266144860167384180653378471667954819183540892426610226059475013346101163349566426497422410729147485898895902795565562488935785887893497163376926004425242720820020284512434126690191556270558538091238707730200244872370569497231680689682189470469404507920141550973338073619884424126032749837787883125919648765169964704071690365413650994083476695675116749757761731302041674051906874602890161517075094281077197774138144172435602716821765713209409555013947997470705859675061126736532922609343171117131463808443773824052157006185898844168153526937756116477760677864239409990247316628497433083288364966856980580566810579395058290651141242915155904716832307563692776123391476545745572413627660567336647200467808193956543684437532430128374630527026201499006586325282236936433682776697773750327203367005928901327918631657780716208548522671726719319587252711536014191473249162228539362743643852332799742957699892770096010693204765006508315888830577703748173729088309576269754319306000359564740041356854977487930655547865851967564698673046413828599580314258251069017762145873030998963249145513274750243776961828439736471572748906163943236558306916728325273859809596187913652163833691241940106104517209434307623140497829398965432806484414177680562735327958038008023815348243790842266546498027862902711155158405643207812070727910143032063909483433153398169390431313175371591048404453049175935245249957838477791127977069195976340171041761218743966652317265119586679463168545271240412992804556711755768441074598274145544759990098340990854252200890230474458345126997449852010721652061291767962690484039704847911194402404430518087078201438559978061725410323035666418042374516622064236267732449648828892920274119097603409041812744084220374727635375619790562621391884040425194147576748468288932387850748319261390808286229982586283233052695857917393350837599782020774759606850172657078477426347579003048411254314251963907895828562528733782506964973608438612306724682392063007159227574109088545893446571336066581456296379323549633529457796046047833237397302145569514181291332675104505167501353599077417729263156561438080671559822758912511295594835066508120861137540116407614679959667476484008267599937902599938215907018368712484013089417476137875200025509358551231680606849107672557318135012593046137121510749769185654715055865687437429112367519802628261273372016398006831632625693194893310835010615192894809795285349268039408151552771660668390100617752179091746531614038822096169284387566926347397920089822109106510215949924571993640081590552341521966656076777047370601771086733391916772702603606786777304260746599593345845922405881743058259208314712891133464956731599648037552708083150730566159152031791393698863599793434687297962598507668736368311011987085803910278543820942029246816009810737333013396956806235367263368012047038496136443924325093031282951418028824211940857725340002269965950465068324347601455900273760484440686348822270531327047277496995250679085163539685887845213075501723017464490657192310296274005294383398514938720886057738379820918583912870530497814739213253295916574648088455962062623804633051271070736357960570838737108740339871256693636878620226750874485219403768445381364440177722278960063299114526687234785744381741297187605488918977064222317367390718659203843480889152368279613605791576303792043401604949518335062395594226434207438428911072734261609175147043900415009455501032158860364603382154176200354454382473292885515175517661063052225061304534705616620354137420665208744215020908761855801903864520939633888985002056359443942660154314686235062373142838210839042440873294108539684560579936026517294353874724949071896728855809107717305438696043549019311568827676894110149946085063954288491228227305901167336690713400181137859078357470160422392438617441691152380025095016445591718179054612114295197003229624528770594254098161385135264867149879013634595785539149249358586789240991392808421763749158589857666422030095449818103518114004568849679864443470031888458102215081965605339980015086700735754251017205750718320081674732474435157235022653760971024259028329942817798104147113247525747584376720042516362395131735901333934929995563329085378723627800690592866129066232121024529645610994566024906978119777940915186121820611340550845882425679353771178183056186816937249944511852068549507631090310399749997226444673971537001225482576724522428219924173166166001905734861466912986937385792280903671434494767914505003531128005713112965921071359719309093648160140445145226856385930507707671980483713572955142115867341053319230402604625739863394118368729520986970215708728860692980163733327489412628991891645374861729439709324183043697733987941569311269017453940812402182240899386204229858395761531344251063578968124698455578930227917352610549839480425994602363107360302736427324530529778445350731919405268652184624447143341133980719204663118030746706078135926805937213917642763488884622558449064909097572712960297079709150069103486331848571556767838402357719314254708092900780269196474662912180429406444600864165220307884537310661155224159331690324565595722410189865320914411162530175939599656324047434390266505019355316024601442060663648767216697371611551947789596307579019292374421963479073835953205479560437631311258686802462644157446657438842007969894164328890119320239502899483336419773171164024697018765630892140842372911687253026747694243682617536024086300700951193893984523739332354551821950002975853837866786386171240676091272623175191578414808539638402125334622910989178086381397706196093153059703323851065834113997313432704254248230537348560063992235690455518644496573581338564555138396972473486330073980544417214665393146101911084963099363350722075718918940415165076021424880939629779736938508691198745909846492987482229126591478988640980183693574070990909766175170290239935421535782591667956273424469712967272886104270179508669599547471525180752705987570779859711500352952612723205144634796352440307204094475434340376835618693993230085980126457647328932108377174317359528575460240860367834546562031745365776389114349079090899881924633212786105187979301681322150227979641264333239853160806188336934007825197170499158233033115523258262686785626946005357952197730352710839442018939275068934362645123527397512953900255826825609361013402278475531971411251921383756846779089071139480395756119387196921288135400448516072785009113749541354566022857589692869711640302124015268066710874171978236236384763942975974780779210999155664934200376163215586714055824900287183031261975731090076612534726960761221518780016371997409679106567805253214507550197121536662670294301177043203394207717467980903373278961634221066689915327718761741386723440624946390952793892782714802855193780470306915693536922330007059607901725623904188795590161410694893602936882432315016370351786400920305902315483114810739082395489971549852027985682668638938121895179557754464221921278305293292126958451843541324006873163555042928806558923094848695630176894892417878635478836369417866454374938767381210943529102437791195910532884762826520603664656605997236410626002922869062067745710134906551886787985705531087878629373458760559428809242605479393624856234541976118229866569429644611550260951146276889233817841627770937447227245831404111075461935407673081976625281114254368583876868910322960573965657368702053321804414827953084220354799515771884739581723217509409274074607478383234871897048455649938222027113997106062858700716234066297714568051133740787693206337804683942788382466482246589016476979459615725441198894470843995578682962661777315533236996089775219741615909404573915285441270344904692098366272133333652579346010341980593838982569958669724365182960094382508068557192406795444941248875001998118393909296754499765602260131402534912810557338641740570248582721042491451472150706144249872132604912127012274780782133602103346081232091907726135596770463735415542343260291538949914430746127116981187313960367879743106977618656954388072081520487105981974644048924074248986458737856038898210644139703842643198883588894615724711707011421034803635491265267800943496641101290862599873056797302454472635559812757577124643600727523417179696369084707957613599886422657024793221084342729702044389932264379138831324775224206829411882067653782997847126001000930796505676246705724149202938907051022516536920994202248607350131202949551008314307926769747480298337478670846867760870212913669049629290489061054437210541926467073724688515660121415081954950722269926697790541177172178478093028705486027057502657837826949047520301940852331611609018408383813882794762984247973834333328365531248337295896497664022453516889426865796403200465325859223481915871109549918101131151495580399534528391679287495844549338206625504551143210456427507481660159800033334083517744812596695278361015393352253190861374318807422007987145563091103101194457317889309521920496514957455451982037224932980138154991642119078045023096260185050089512549478651164822893455816002500780308860801596769392718683973249094416998638082517022633896971298019765738312195317369279105622153937155521144000375258687551139779077877416619069322969884557080980001329994952383894841673753866334877093758886856205789560091372053889141544082721564554962708412234464278172235941092219717068046984654250440008355852813862294537630702384128912171761395926588590400949524088063556084888248949563730357162525740059852866328435290424436218896164234734595064103320136762367302790997648066155138970355139481204475719299223790834230953252919700565787649797233713670057803064218344140377410329957537182528936674575936283859766773605603494299719704250334651578450687491984272867542046364357188775477323478627362748291007086890737553390092194512035840246262188711582432983584083745025302270131130982011397596821295771177017874992167601682969009265518763343404008117902037252720863488214359165403372976295747331052693505868118524120820143200019713497678523864680203371972227634458244926443385812343036820246031301283780367076135999479751780860414562820362465972779819344722746844406400350975169237970883166803066313371914578825468296020522870239946867296006959779533856877277006457148656908139741884999225512394659761128094047878974031637120734054550107065519356414277784290840809871404113472910244663782588562007110152533774087186450428213013343841978365366822620619078464134167441532749521836076579266342433720455971244111478548235175794449503529208588062396129405867304355908028376458794206263518222356519933805765858436460261724189694673377389427127134479682527940925847833493485814259955325605158136335216101634445667644573501269227333158538403154886684216835026552919755308082627658833888049635816242550572656260911667212909354292336845370736902223901388094691962992040290046920338920904951479362262606332159998578953979820572121788484231472914244441827400238706902257067947492435399813271569593320437780399003171568886539899314973167977281657061274672796277310276368805266657896145460725303930194737647725272181150370483108168383888799381427804531743296892200695728651322071678141892886582463212242601660074273822983826613505179283199684181999611089263585440207423111829316706256717590433328967458345684870082761076034814491513559705263798220075672388143215416819849983007345391194200103730380485546037370902057877765897503341532749525981180095248696853264878152088291614046949912457595587190002526797291427915302237089546637312259125551316823788700032569861103033208592580149962951574072044332093027982106833939254883781461839953670868752953306666243303266741668050461495417744424700361701483445925766248215569848778715295796843362364516854392820240865070922205201032070736344121843350498620681129723256215732018611166063401742548168548979813737334789995191789467727227552444984278411517630185840509127782405364549669155462884235461107353415704147935109497986083050859140907763727835551731957325867055583223926786208886797227739615705960216582183892472971661002884697626792132014078072955134547882273084786088733138495292574408466343518630851633046840418101797229796283088209067542510940542711558865543891994962236819747929422739286704380943387378314534939490108923198666508535164338692629967185534212240047875092984461247995815920859949325302517145718781566096762943812710698543644916031815285337301902658068078272878769086259801112328334131645221099775959161767208684820580104486873245475185270855560280203945773329991403993770897663952934848579003114576625766781942316882195114953913123357141005732037516398976476163671349898977163232653693982400753783692037371247947258472456207882033065345149736311599820788036190158146426696452838271053315927370414569516680126595364083116673601029449759361963723322452939750100459306168091620945321884833409439050173379986725407663317604612295345828911257370388800987460375287834133089672380674019984481282493983227680587676764364660535633168341118944811149384895911967611157340834488407605330587582198711424648139342913529914958573756170447130024492257058716129927782301988006123474815926683373994786797160952661444750166548539280509693568622482689550050202479411479030478911306509410002483809852078511039448481148393868774559674398807546953289568260082266916419003008162720336672065182772588425117233832307357305381819763376627208934468407228511912362443275403206488067196147859713739096543308166623927182745874647633363303960288808405788343458163826817451154849750559626232035639109775076751290500314365917610130781703339796341651812505644854041423175165520401474221903896530939419697043078946631110379139465322475275083961187395900314066308672798756453646493372523600984264058190696154320783916801246263830512823580792753569789559701935965587936218561923226713379330021186345618614958973811238524580589585234556671402665504976085067696455291349154212858797950657040549504429521540219288163169484716254950770782661803147647380106090183816817923748815220417505947344913707620309452169131669302990287660261108595126057534595323219833870409530628831750763662226621837385589491080302570861535918614169426836999809452951895729505319187148294747810037682769787540021955849510038161539481679907117102911381350350300756016557864722728018358806208196388580165995508032485839229275730798353168171391068990678684201681896553634240775964502505555899136916581123626804863596887021594845392899610167788026316287234708794804054832343688161506881209187083426960113643102495178326988772431947582778427179373564637768290759331963344670252464389993232859077764973098590243068973559153496606112758481170248969043624011382274323073613217402584040873454211808476641622461787574350970807264110185063157515445698390890683506080216525456505059696699377144441574676072371185535060353687428194398122840139956965805471248085707553548695888352109810911557042145506189194746983003090320247768532622710178010246240894790660780555533988643047675353777762278527397002124113866817404976021836984337558042826838385335100702962554578159801528367150408941848134855151152683753955957233586333974214327131238086415681865701581925580998914162222792771453680071367230792554365480651844815826470444555104909917187135406749220064843462353647078997058193159362009505971269707425691220762489113374639802037747104551054655542484406003180386588777336461656710074366215127219603254593262889408028958000881072116448045847102065509825491899288125930623786673520444024517725272734345648089035050963437916582947744712982645403272415804867592554677870653803840931199503126217764766501839588833279166648645279187858037178581715048949007955919584952164341233526191856801687886233997241082740369568695521077482749014669479058670573907188192912715555128671141065464855659762019340436978291348382512235118509053758134543087018556984797174050315301826052717826364792152275754866870078012840960542026019562923788777505179039220111924707828148330024832389483939464500624012806651352101094460727138759010069372441692192744969097377484600867743234206502187400167573679196668230443767704093808886564953301706413306307287252781555360479499636535001034599958626070339924615221520741083425960359641359040540708751044402917763075204356280302098488452404992317268093275146043206148278690958198822118691366382853662161710957107824088479200357370936947225185573966966499509151034105933270034375725368557303089500849572674446003328202806546708587183322181775168066086854087076652182247077879830570943247305276385581858649833991371328530333163755373251353254295834187467145845434024426240286022140525277140957486464086525423213556210994363390675459404106209426467318066098302269578853333355988277178761147121795509583924699052316057692778907481133683273943711349368384788832510097622050784004727751271244244523922778024658536132489822611028973601998172411713316772649830854499411356293188421572372785095987674162814101347768413611984494419986022156952919059793888697831401540346724040159911698930662407240560540523313387350918027304596603455559128180356415930358071369596349675429954879151927954091160282359975504125135920267615514298668463954883956677744057436636159918916753717186427920221287404122124406595574853635810469144714002729066128436862762024229681608448394349302070785288910078853540957597114211312390504545837494102118607518912468134916033226395903852456023652309929279023497187510196977442113640734553514532747195843633765855089262765519838330268488543188515946729865012442397884059386606565098862452126756028833385940015955195676448095244356491364048170099054959018078799662953246184973400858243782412182347762068897191929541065834127732795160742483206968397048258832054156590738474762945930563184387617502000405532500587255883591492829544166129930035820045850154451709388704934881991616597417916070865660600723252843686923163441942914906932309016110449819867958750481578391018164409370018591577847232122749454393673719316237291429056122185231571323866540442766294136122146102286777098728762543300794548755428730725453591823233018043798750987394667502761099704307578526153049562383063781795183176377760281498529397173257349965346469636665514490901801650623324180333877243173361759204701355862219316802298520284543426783836682922026220534660541074445078382482550572026904858023556720066317637086801923116024026681217997501894571843996560687016373769381037315365687020383525378122710724024185264172038690796663908648325583409360656676925330126531897892451603853990212621425265113437185704031714225571876335333269130727135599342379065678284225526534938794987175867944295350050425954988229503359306022266532952565816980577614899414482684449296710153752959451363021300505656992851320516873282391785562539392902230536928465066962368518626138583132075974922558177498936051646373074484563157139446974090088198081273396618141674601113327134035853885262283173050897003809119771116997924759016122552989824060092084179332356054537885826931634382462040241574743666964292391352581210762106681061027650842315848672684135074830257034238787304026815891250426226219690106597910807425783699330314570329354582319339352003354364433948605143063564316822555877963769459140680803146770134801770813697573333588666483979880722837213141895247151018198784935416580961327765079346104758193556670088362645527168978546390498841393777969560270128435135671796470392832708769046110531852910087500767482896617226992195839919235842079361150148439437960243964155104665651389084394947116190719766240248018310813741382874704526036557860289808624395960034353867779070831091024607096507661649774425142090350445848723862628390753699871688864061608360163862757029487259779899007466625200174339678513522949228986359181750004294453597276384417083396896008778085641894560765005700383671327382330600604616163310109339015966351884608771858273411274169924316487014680072117369061859553177130418354684898809437586509185582652518470892924192194962657450421758779704007877740485258558293891082540233265093111170976779347171682839653712099992633494007676568104092171975682311805258676298423091802187207576845955198065391873334957200204425433667993439948144504501186712755408580662681963539038282052901547046447775641446435700684682315553659212808910865862398300258310282189367097239266944571222349281139561787611945289933332412004990947843214883162825863270189871209633490035759321920945310114062701844171222554106607880764443438109056091428539831984788304593135333984940528068035638205948483737269970910828844914629954806023885524355526388665761528294381915987596463200944755610592492829076176093029715515424571074020706412514869778634542582599477641277458949379488278806833204050857480162525105947666004611753203705399823424767906249328208832486446368405065493394845497272827648462128236155723464267235623032087827820814274961165563448875096028777769886594615636343034714182078942363120237004667173011828604306023968773990358491250538180463226026856545158567287786097694257251664726466201620375346191081212574197630416412617253878654076616388377790837820796503717237178759780177817997826249185381533812223287557860876220696590323810934978542447853709923750236821930587135240392907852944108816973111792106239729102403669205437072995022098826963158878997305270523055519496250698775875180173829248577762998621257105276823837618109575740897768585932993532468717001939240159134973412278209710695256673925889952731733992650938604679893633487922259724559865436302162303893053797253761036628655364147488307245675140089140293408507345189059197928031909324426334645341698701823050647264337007154805548634435154021931544725062242286200150669351400435550006767465747277106216318211128118769114807153715312598487316819114265604576967246130853464638605503604314641319493708074841564913460870482043642534783570353343679042533229703821778198520099104305545857629483862628190564080254561893702301131577940360209388387739846500317645696933783411308724474518978842011931987377114037941131108603356164226548021394843710444831643562207290218664878107138762386404824494562462770007520235868646061463121769516542961149709588678061030246953655769790338655741118066022054197843754514078974560783737838900775235396472624072828124325198143738057053514771896307790331832370733963946776086070050102919505586595670514877409787075177196131435871459647049907843705139500223544411101333557971680769455004694666785530330142735965685845863606366084596563486774622409558337498512697217786011676606726850417954323134206624922631154875062176272497057548097877708363661154239505445768367824679444727403378695478127018320729869664380477941402838794206374891994547532232699703157814188543222695587940461802689218153338239574713095826608053592256920356434100603567095985614440526977040634793504238387342795328879658669294635382529701615024004509398264632086159952820825659048351206385297063622404929027245087834945780309560644457538461010919339378430460480596345567938092564520789879993781518548091500421351026084653609668637318049083533391352783066134523403971803342401156998219725711198854452521198077330417046789948637487269537453321417023934162981046683729116652865021614546446085822117205648581019632887348594541372651075505295461147586044430029342735987164420952938892573606241919479614553359090773524978996507112284576339719325915119585932495158181429862793491891539147468427676491138782385239009512874358763317255738451022148929514109583195642496587992128280367835797954313787654310878749419217683684628603332924853332520309408519405935465449932229817006704211847057530435517468143790064585843991770719825690582841323960303555712131935400698570057171416522814810658538583946543613822209636478706887920904453944932917964124737394935671518942095800982915983858173390129968751562460430440453421815940444128862109573665144903021133188168773804976381174048944024147920281344887484137310589398747397337767627235536279443300323689545296237947493090776863911606751177450893774094367929014145615700563435089329809986838488363037388106960854541619287321174643878826537118801593068904143613237019547267341518879196634293364999799961897871326517275608824005153455026290973846891257522337917764991761069289438167640795895237988258398793659003949132592748625087750157785535725481638685770166141211061928324998411054103556008123272336740688649141650340179699748612426123742188022402284306884289954736798059964526781010756324827470408857657456070694675924583608429501422841063700257216649345791383570764652520275430914716766039651456030814786784207246276754200884460563524267838074543605185443773798159566676248679706089364274536318012320618420800705575403303033593727843533085004258975216572777438356896779408104887836209001162692310073204703940526002180629896110402062732861614078407611280362327238253887032829990125102738124762625492111829389765503163712313605689611118905832337475463496460366384688755384769543586960385058248276462619903818210748769020185435464176957527558975817814807767476604736440300233029871783746845270891641490749231161894513431926220846776490274907584711233361719764408648826526499330900462710772133094437057685499748438515534439637047135305220163856038831877436717267800700449945450623929276909837826542803897979396183709525692210915281594335193000263527629674321672195497336623936870154035044721089692613545746186719174415198880939629043814297759676340219782722842169954481530544268871299989767607350245589210779368582941643835754458856438347176046180614675556153057586484103305367903665885945036262295586555850767160416783218631811716145368246937809958139254697056836439722568881052706349234429913615207147979640327058128495232516111294655673405997410026004236096902502319680510341787169800997341140950931292519713767325383178803724565290834339959170752652171935938800662250053007805778671286627414177158520497553608794894214500078405440826206359971957138808626263610981347211522288823739846615851643073200391237860626051856447712097442390137783632833452125348342277938527093349608082828971572243488497608173047527332860719724001099592346387619413900652410511679872844341647278617573405262736222782524515680905328387341849419154243629143293881094182254409209285094170280148414328722959676780140239137350268063812597998812879135892247695650542295925947176593604742277267417539902305754890609634587550709849849720580762418503466437531948912485538557273774527801693099795481267018512959364605053691617730362670527203090938274506825634887321714950127392055609781228008221502589283060375996427350537579859461093722047083469005048172476383210925016212856277511325579803644387262241222230150282235588462862158001716427780488152341130521251857229024516926964206840773126236540669015991754021712591249826020371886754940738950206182687601571923337027904105528302127070165655869563228221136753503808552685176263897076159602950642036499015223989919987479402051179603664226610119618812487029101867046165618455681509588982029654511539104447946247439356737452482563546496277307532360090219585002747532233494399536210471482769436275079090873294629991982806003947030629569815988044446235554421817786258346645992708449148277433916696686844255203658733745136688705402811938934994519386554793453522239240319453141400392871574333238477159187677950930072090865827076845106120654703212882580872501758446178216892483459899084249676951843363460986698536398953819233741866161035368112645116113825318207614896422715614831668090965453415718914444904420089524024964421020771514594071613269397098217423423583443068220808350322885265036340438546089548659681218112152238469692615873043657909366701769593885895516644935671185370111262059070343037658207708658065194729074865063866932572168591038715961916432708360462789368028697685854650048077731281199753371250899658952544288743574505636366498066474525863383226227361658757360841121503995330914005683061278210033628638972274441549824268823699352727103777884641054938174258110856265033338239195635230389990095824652565051053750690009475507787413123758534103452184882954206238732443888661462678851750828314005973466385239121971701555637467263352641084713238451047049436308235926797238629643842125081341812134128427558713527463038930823624832869383646783923077495391653131840841304986544490599333031805449283489463398414933012844496924397939167312506448281668394754722868797019377629935438639944786103944508808375067678801273907696732500310827067780305029638765672406061784869545293968813059974699231970706434366167423042543946133543106898786858745189897914597044810333860435610841828254307929790072058886656105378373729819466381869187627414945618649595927852489601150314741214730722612492950799153921813724000469557098005315831081424683047151898493278233978318279624094487565262509637783488698981322577273618716189527222970053868214113579779185553906937382336136624731897258520182334208685736574622106138325361388516306518899767121371232941107620363829531278415419356150717521663824243962187234394354612948787924773608479284284167075466798174512944190713052231390830322593397642031920262743656339244423868765705978139955740877402736483182817107517464443374736575720536169395406458426236712184743540295559201921405122668101211459860089457470645124327005748655709960992528777511992459280254538828523694211826828335968487979269401478465225630483279280443533361907715040510950489167659425282771203414441404830599517168698915488308457947640393351960484551223132735320094778039922552373551553162907841160794361331979957077804970994875395715535278650845192215183777027977269313358721450721719458740860050500375685479621505948459625328202655915821531716095403310907877620933204609942361362081599778775512993793302935526278244221577745154071062611541755323328441738610235887224603522436304723839223983504013995123394311975299896322635513592776013135607825705349393599089764191253839078492244143310967672311675703035848915879437230097736481919580326582102219095452026344340494361248831174537680290758437514203726507695545904138449185703493217991668708325974422362731783164219360516071595676099068398692627788701776588732112630095157662611760603751720672991376690093725036182799619849543234488889489815174036757178678264439181174387938134240461781714787871302251988233867238272319528324004982823035103411379470233721484384176691461520259794506135367758992643685150935825590415025448041338571041209021352816868451521077899764305763447979957142398735006194343830152102076630571728419059411957732724084841167471146351864501021784689706645246901743465205794347639831382863757841296245437491528972586198098187286557881242896816594382130774028424514506968186816953002683775518204000672309966624653605861502272522012731729381863148003392481636929387907958633018471382604371081360433385195289686035474359077651270209424267570976143096837963519918468769872326634553933969157968611949933134177170777764103991633312632446361407314671038672069431904840309094433429970244136020989569403047647164756835791101949415361327244574479586842750473960894124531460952393522025319353814676064403630702921715205560851075875993680679293735539929679680311852352423707340216981058429871844224287360584497034002834843694214140923487464687827431920552445787947820962895537191866682443008448977063724321242743128781228413147863164081914669809025262558801344113932285224095381046652900620321085282519092509868404828826672570852506695452631082768172134391235056996320643792413438969083564704307564797860583334261182854173633661234829493334597817671328924922421049647525857797130773733530766508927252053404567527737629667761865595005804519948406929920098124358276895539346038884449746677717059114881845286118484657552971669031003671865424293088086177372286311499173089937872168860033097250371754462939897787901883781554807656076962941332530850207633439555234902202222077704935217048259586892763121669600080519624416789912268380196612356843655167161699852201101476031660519911149476260985397377744571327256317470570969078250068442066154480076838560595835118151825196826028411590739674154731294056858520832134999382305708145265233144077733670894959117051087450098023623534794825691301454511446166513924102036029672675712977357160761190466692684879246891071330697263445421321975052905790710985883337401105075181193535021874146255611715604588973748806981305492212133638540448072823576460658138443189008955573274199052404591008633503274584829122819860463136795978336656673224705783368701871850356209348625767660703899393507545241860731279737129186839815770619462131904140724489299808947825484700647471641466267974309313700685052758953940681070318435450971660733835623070602362378045775974069919328650372254291130353254854155583580383419493326833066269840443757573436605982215454465164583463205572689030941312464549343773204097888584256244493704502405935790700732232944657908009448139961825838207114535810037011466195020251922968229371480344600701749466180912609284800407784646257162772104965141422222690043219844502613227909468452176638007297596487456996987246463975687882567869853910529505432166083611951083652897467464780193649016537535373343558458373695344106024230281386239676970929712446059159649011732919913924193620460936091426690378585273843402057176873173073440066831004396589173641082944359914306878546288397121918755600250603024827378567423400782359489380065176206832537213170378572178903105323376744573056664628155677870533198740467213477785429740374121138061611432214076395058080686062642712718552810835252400569478884626301884282456635393920503091068316265040901228490044424465281164576335423700101505141955400431740744632099588723012854256123203001251704412843201063687799648087646944393140530583786800991106000798462824696384055521542276062143674676351298329283112301946798539387275218530170469902039122938643568140286915176686042616898759247109811922045608145192913699481381491981021101651924072025742753627588638139425501077872647990336037648510590735170009263128333373656546460547320654799067978596408758448396981658502329503037786342914194979435546193877477185049556213849566999257215991546635712809002791824784733672247365742576744250204858450132329361948390303952982685809770145141052292763524199602572768376916390334051205267263155151146685268421832141770452590443711570622205334467855237088405216562670132296549634672342294895216738632135123874856518991959916762533112018655915939137739447485205332823665960422198215591119811043576812945001766640893761652755760849744977451122320578223790476375288511458765144756383832746341209525235124564241162334139394771806094774111309994244228835647693885842976765608695664266725732183357524010930711046815830822071780886822587593216881300743455808238835969901903544814752084693842935392654355298223325000588149838426892085421005598101760427316870161402497540510382646017242273946699468056975462388257563585855987479887703244609832276546323925417354045960351157567894952778377156162453829236133104515829310392543812702771331946610261036177869587447831673750961367290127734448210773646517341197400181377928970884946245666156537529432511043930356825533394996622754661244046624399307735562007181110069283316939756012507239756810326222315955582270817680414678236977124774243425601431012606396519458638976641092919271339335464541121370357445045338235912598722061718255680338768834805208984498693121501221030856217617270732180451004349470400099208511993276506177339410029727963543638922742184812342301977385145341692126365609390880490015775014095709391387315476437644638356055295537299382196319837242609860043243463635483587067705365952715032061730245351174076794531189955698143287651389186580485153697838419799166826814880622542104234620680055702180677079784001560868548774641075995916995927736285158560030153972703903519509605533596992610976096945333456579899152247867156562877741407859019795768087537449652814436241907555220289505039849896958680718674370975807272071648244882322422362711641702704070954555437871755039889552355170202112762407755744835596380954352761157708721629591796681491532961111734387288225485181233008296717870906281812045467641829106658211746456421027489776784371247429243608491841296451973018550665373368508801349221220272626844511200508974979028979034695743618505736540896847283737387408197470473686695889157701166291076971847248273976584732175036737959425331748966727612728455889010056501087540403521699613188323791717125786988362415366161550557156540862530279433072469640268222290404194721576138447503186246078376219041436144464614154138441667098601016639577700474486783453840796448397957953021061024076974949359547407179025210981842203564446179357820653147801885869998948913415152403617242073947847891026548072729736969877988608693684708770093890372260479781364609493908296924667909880850412071253406770080017093653179351639470957838492116222825093053426045428340413940651978517722505954454091562220514442523445134630952228562118220358311531512600663143490208191296868991269559620810214114457228838182691505579035803371732688949999145772500106960684388905224710259625981282819564714768573978441337181564708666974868695459614016204265993488077717786211607789382474366677393045571743905473530003479403580185943441572111583691384506040898083284444273843070822007419602340229316242312682200828144517907980437120417682032073155246171137416871287681211645739054614878677054922468666484828687705993972596916108597324715632701603589357939305104180153530142385742179816431178466999435531307378231534440788638144205164867681440952759591460519457913846228874487320688569878321658829441529662236566803756155312628551696203297391457476398402192331203338566802044941402405355160365490792995803800596859438432078408947040213825082997147994358251808232301762215478329367846071397127472401273740600278594088810945268863045280377469085643473273515079289751033515725169247969561651609971107696294286302022998193709401312171884346498936920878684341478212414574708600653225654079565386621039526902216486634854771519980566164329289355904341412772321814552953276356297545102731608773015514297102725195853152998367825958741032113738766486958189687533142686283758133333802828071409629004632338481938461995545371466105057378900075864567040200340227993613292000936819066015550158926064404568732706166577984102708082498013220837688838691287576067735632268469925115196558805319998150566491422467583121147919130037211905146476266064826427299955500482858095944789472009665459995614194084888083038745766272162536737882345077220046415085498164588554231626285977374851979518631466195275982015134812074301060921926155413479983212420881776414237920499409405297930028348506643202292717805883746938382177516235453051240093770951145876965587830253360676486403935235286982183394577560932032086686860716955648203833595517544196035589399735245865972892447130336804692013987756191292259023683275054033946355111720588928450788701321442857635894020201756275840639277354606670777369931804153149089134340042251559726828281035115536446206061448231965099362290330947822360078136226205333242147479881676461928230598170734738129599792696775052936690598364222450991179784559307653175831214731316224071771087161928254694372104432449783216125995466383824916991152948957815450414329749539395727639074705328452844376324366080581657652679789898323440887623717087841975239873731504420454642740779829544482614431684664738815316892246058174537288579212413991959132039450025273625037824635256517704767097533112638295464619629621464294844174479385601165751963191460755247720861149034825530863221177299728825475289575079412985887941420232581082057998321581957004612635580275453495234321048484501609577635936834944252173954967930329364382960270415265104200766115874534760794834037151374418049916221489423219928950306051264423228497761126475190622606725769303716898175111578705457930426620978724029017600753037033624667025306428542756482674038583064212559893790069046172928999596026170769111887772512718705245301195219716491736858216459846638129917993160772713553065713639669308960494780396676761169565077229627337665118776974730104556226913300684882919014096914601870798991054188918521314115127417330370120853767354486771484659209645316196694002676868309427082917959294428063731292324859577208019420040162498409840707329760621465507794764311742347739986169279212910521022735114938560869972636585769088632763500360241705396508759712312976276640135351298621964503852512647651130702392965265041894037921081127213496332523869502639766313215782555479811311465833319230152143049272761267852866546629130822126800787450342574093718560989374404752534952819845697397124040657823632390289548477374463355041014598231855533374206741026173327959158497676166884588004507885725665759612539076475520309630176499484689781020847048943940073218108959356291704369406541228951575481861838616695777320962658988428485937158709056464564094441875251386290948898768557499936119321789724451575964610230762067684490841553048055891552621246103274238740326623134442431839584965576508185587669116806209827307216885712097934818022662559880479247487101028242423996181127307857038442625837114758496939784955171840093053418352003218682245041186639531344181013329943685755566514912151781210564179235647213609443222032813536500667111523378895424212104595732051303972909402722949732467253814383700268779452289998049573648044807832949142215371468970627077274211744824490972399400945466840793395648665759144210588978996633847953557430993451121112519714690369862663016622589741688190942898522273238973540258935018372789197517714061136747297800355828767705984615117236526564079083845376644703510937153800660641032324154147196454929608135538131443501106728405482077417829923658695476024642608461446859382407564128847747524573898846480167300257628617094712521891722123278052639118116115545544312873122012831676572852843220367547631926817685732970502372583563038615730612987828095739579939094610069267083111981129465655027065836034054443150019323759614967327177047197500954305628565580984299687704738192605114211551513325942821239430850227182598567537711546342685003876319387029725719135961094249593373885000201883712620234247768367417625200116937954658145099380439368317322002275873389750862969955648906308465362607860832633488247240525774097856054701799977145584653895839209404516828984890365078890246318278680840126479861357383600456842650910876436943936237314913111535206112157011498062929921572102877719173375243020645272765447080757541304618284828154628561898191111718515408464674435981655377424102585399609808240763119755758259308792485890990210884240953674429211247951216572466146246734167270338758455153248482578380495577812289602361841855988683795657280305913286196788432678995995536241358254337681333081927546057145060476652487609139604394575801874566148986151709559700155057806417027715263663888595435583984361604559164424495473299149994510602370434973303160073940721426269928469767502443877995023149946234121981663663130968522652733182659530025341167687655441313684025946813737446498051961097043018858242910542979852048606250997019828976796337285037080548884233233712290028291694342932364167243295336416047866288247185701807387077954129367137218220887021285225466015392098133749112353224624545852003104135624824209786871016509521430981730759991303191159853733211643659701273782247011522755670019901664266703198270533911692165875465775528168055983463689091488198172035852630600774100246415295089430120257236299247754504380261322164470579869104294927672298540510919856591233844192439997003349230020638910493665779428973451083433042021514466051596767963470852105880667720495852803800096678872985716503219617250578057866886221720318353286611713859182459611666986866970322848331633638749518413717093978708440114464123517559176697026927459934345920800712992240505551661877801913517234016959182487144808998610597264603126061395251422775693459446066180595971832252910801785897156786606205542457317883544902051979650108723719418396505018393754237064344186011926602248439562624924581355283149639747651972434505493581002915891159270627150558390151392039947728004189133094282423289733813841952981343456440275300381691007978616244122638210213642806104361632057743975978676021994498478997031581974652186981643553419909759584121649813326284434409351710519051138795875966813626432851015987493394014744218972805755989918963900655315861597670971429910062640141075136940247479176339366483686703219901781334479754694203244182586340079464451795800588550615748501379406578087471072763365727934530039627453937672965282599637619423363270712048673636281345645442206753098515279095293733964300181593470231735968100798481000069928992064680188900747101998966595697978017526988806179053260751473045101622569379551941022225484147746778876773284431808466892368458300292143968579850559421875552753785295328183285435528104274443319798543471943441656576597526504568873929429179608838912055656118692582951712429380339016520527099548780425708643582101664843909245865525236321242804936215922807189142702260647474470242368702314309182530101081089097497396012678808100688489195377460462961330601444868374154275890897366044846908484955705786733192739599155916844313226150847933964489212172104716810512853748396221255361997009839654161913180447737083142604323455979881401264914130093361300711191116040070964964017377612707653279912786033354677257246218520944462782033101001292046179199881247677588458894153637225423727933613323152373594262596403570669429295152848492595215322814054217700402146544239179464438090574433821191541844644769703022579777797108248116713725869599329116186181889124565682949371416559903621125188413521501414254963302215732501124797378233573955185850933027915548297302886312159156184276957175803156633168279642879031857038276380683810274339537882022499599294507260016051993554669013266202893516305020317260441581367188475397434417870409965769810071215460012678563231505809905022563129237289880115245921157058344468304665761228309094243290299240157316638041979392393691486165656370079488755956300540985631193971870139309064796036448897588984842227086177019257292223770583297730562951116272770465153240844559796316484117244754881675014516363421406124043762352607498711399666108565202968313361955650238057547784210430306975444358125442323394309301076340679999197986791192645826660173130475451601946125236734500602955532826708126407123360030307290837453369800869492837285499120036711244470527446049584882687477395719046699680340583546763795885845031614635193677022459592717218626690590521539241126721232664843880584006066832629609616046435340709245115397694561449109887685122303277130902707174087448650327015427036944159640041045153491502980367357450475280373898689033733690368712427228210997711224282866363289529777663976928070590543375435681139333661404351975510627257874045263612370487235660666219532194610856270378036161690448145861322818268662513894176767377111107909582796196756375874397757553871129168456785454224120480972175124601057873266005960227473184422933110764260060283227612964457494798580104421926670525623018845843868003961482911777999052282458290688090069148873533622018899095644261282105289875982807197369977577220494004593058374002280754339602832402843348127638521503035795434160461845730445357565372377060122265094469149744512712133363546814658889503344780808888118314636898634588879830601647656714191177243274473646592129547702232260574726986212580529274688531325889432610714537091173338484232146100353610056458864720560581707620534402771113146607258509064975344236144713372747940756215299720916041148834716332402124292237482294649773281761027591197825282718506632167156463704418292433279415215675710560150825152599885823865130663501638819371346079044004214731937222385544136795257221615540366119031544662018821364352144417278674062268065448860525153997930961275696419468524042194027101411471614535578812339820979117729653198699550806739337000910944816101786519117719610922932589516071148073459519639711783242336473638023106657526313482442768708087479865016422467398864740509967717040636494043567280665945114212261539108019622109936616325748087373251169358431658965536769125556921671097956223747465800304685584947969107398816157576833475565979490455469875915002441341179398632423850108424438426842341940135275098867755783435754167638773573311086022559407570059982405052843033440146619474330984859592050773580197678464508937321752766294926822242286466698380510424354639987613858802618046279743824065844964787475585091079930310580848887145415865765639691035472707986861610351032850270007322442327383305134391384542966026260450625106856342929314527041259533876040384667813357124552470068335968158344573422867653767097682256857783913051039800627656719808483112058633382833288075105114272401942269178559643518227875126980087622098251035896015219896859876717868129173140704188882372531697177589413933448219281357723130751173089262137080650072206090815729125534579607356265002311391621535403059601411690547550235725889897850504064834557786427334977190313398927627110842570161217229393755360733049592177938895560757080018297952119705825230067073078156618923925888994145894943313471723834084769687305529283240112305568528771385878297381452301943649703195838967677995324501462947132689014112201527489763509717139993595513020305195159735848515912671372560992363296577289988091814578675275025574893892871033376668095266534566940352298209027992148992782493597176321852868270029413319672587134976519658749971880472699228096298721978664538997606160326136168623238684512103804648702044527529096585492486067413070609579951468312120840991309732771521082067247575671173300050716211106766201633308458395100436839783318694276378443404886407412099762648814009390812517168612999077083137845637474886346532917974853594747259557366924297458709845387506754918215616322132918208058409404585905428556287561178718525681417012334837129330878469208055583273469214505879442634932329988852185290308467408205108219972860504871096778364153913264540354646285588373350450600700848445987642224174534496116038776035561794545898290377572040478669646386197113376057407753148903787540802773844013081749292442148151076651158515984271400585529244470058497891042791541195885612604359502981749465032719940197327398135559251880189168052997804451812864604027273064310077095429278546796561971050457227244678172957686231108414801155660727251831563633544443036022155676912748239085457757268696848658682271444364381384486101501276711313004566036780630976791527805309585802978647450090165418211964034237417064342989131359379596269889795026209263062873611932263845672727834711578527275649309222192054123698205175517572064766858546246141817849275943090884726477952750071819904107115734475157265620397730057277640184423092879624356045746541932875150486247883756743357180417782511350227483348325749845792378758706084824133591646053797274508729758603875674158589749765861716588714375232869226121923950564057378031423171211226004232697272356542469808984104535100842409305141122589507876563051797645008240638194476355844490006552141463025951704162177457173370481246761008525319380464418581584833234237211730308048168864810902738183295096415417017360013082306427217102224737708705347078528771799448500903900148588437750603924407116210770707760230058770267259893873250418373120761801930199061469014375565688947068106299417717297166947007589397454745324072637013554448454364848884808789552764754425185918334045199387774042091064740911526282178082812915884279829633291222245675687646783476601526230677114317567438560197428677011313999857219843903327209002255944646903538302824197897590631853850062458232859533775024465833009204006550274518612695934632206447923695195515065717626366752214815660942736264253470969279587893746064595410902584844262789825516069932858069988859689383140343871104754930901645377680246584243748603356539900781375191371064203904557694565348709464256041146133721159779043277526934175508519898760080890484174269916540462953890023741254045666252286728004779097427369923033687025171574900482099456585788744015030924071720965933159927488722459264071570873215415380490137283350976640436983878587269012456716706514575076707304628269561532969431264002412336800043266654762297702246056259721775594037831496703640760806637653084673299475765214285952677173491151125938158754038962401175532443972986895989824823893042718954663383776845636903450661749598498028134349879524620173802974045914493732646516672444055527008953017069931394109426938692066718978887682920552798846066228750038635490182292694620945190163270529490722943719807927981739226584862593959105202048292462718723095123687233889974766753253088976206925721393145466778313366362671641470246603753559543880217807294001420271714497025067142272992860260085373494736937585254814068514447124565374055508164169246426308462369589955171805687842667367005279161735594591268069261740171000658882453649454515398501862601015872377091571764697129294221981006073202411092930101725839546361214107607481927830984058933736710650421395870490088974200042428552262043988663174145156105499906245053290136955894773402325788637938129684537689300186226011241245453128808216187425127327621575870043746556372547039684845188225189838624453662829796871804343981978493229369030005206354421431786409401879293500825595123947419179961887173044671617980686051984209887391772482539843163411735829776685421493453174813042476358427745631839006259487649904223905439580314352023939581492739285556278481675319456893496666938885930038714914882305486743808851584755999578853041628898963538139419247144829188118864980291856110697962998237254295552838718643607374194602283817381771937709409687904251537854056190815440124453402638302843556663675998574187734028135247009075829701069617273476288804390351166883830602472115172187853726620667372410143193947009760058850304498907691851158707172572046504139451972136806613994627040825053414569504934059251547750910683877480202918872560119659371609167596966869434531654468772417252419118009627349707803646983747725676408874503025594906408476379719075107709154304039164651418359086095851101863477415860955809102424398866581799355300707459965113290224955976761889925930667505792036141068599865389749922662226236676621848642630118481372692756437943696786196215057031435962305754907619533699247392151313435881778045525368011293970819401798744942144979787246850358502355242624203253586675837940121741910153964289373220327037731661291381538919303685710179616830123270220796245413742981745334297477212320444461657793342166063030356111131162032362536900425696931038513442380913908105255309595140405334651880731798923471545369416176826406359181817545040077346043331539367106248396412325328925931644769780690746210763596317354999254708455262398651463926626772183663815366621285851927784067771610764614068715549820393680329268988667052874579863524574270164769094804963339939258696304027901565149105413992117590399812416592653764162063949350048634954055668128876839315365429048039899855716674093719016487757220396794904828610139902123712025356347805156611049142788217241449051725924474943266201044947039904120003992997631653412930326117562741667490875651860287094717692328011987029524243764203589768993915419777501891761657047827143769701760506612538891183407064156591558401661263715700280735276071163566320396697500014149412663253447785918155666285336692679632682097329621456908410046582482953570750814343242227745363852415976886033666066805827173255402154065047014797107069130220973762741637834354928650409641670843886043181377356820006057802739084975422057179747871437012328522246677950860923221333530884884902003450232945170144548942458628908019075926854526765354277479348610779382225940687965801115058753352352372962933549494983431371194524989436210962353746223641152074790588816909005890251105865294045461172260139115487918882233928472462061466407276076324036117926375363700891052510903748700044423528771013264401417352489759361095006123675628257381548376507387339044598257651050128754657359888313643028258550325057369912970142470681974282556092184012154268264203487427807732278945338243222236124616312983859635393650261338775832280238744180481089162070156094400801857675393991922044907371552547620244513210167778973528191642376612653082935089410788320438656043152283827710887166351689576563592211467388164562448484213318221605245682445174918409190669142144303236908852126503498256605480921861432155773005899643245275528795726394127248844453025045949149128815609109840071944097473566600644359120078717922395354163781331303030579870938009307192792953549814134043361399028460934725562278552478733709777546011340954647139306248392055753608706286722518277293740892120043327193360422909579897497525148070163180634360579919277101640237460289309345015790096743150564848904124381812502353548286581552579409507449365025773786913182974381176544747929596831690112186817724171674291760357711397054410111515034877077278589244301500219657730557688551463369625284734053026084873780710512054442368171152508280777442495970546263821236117507523546367699314506492510981197312718186958639629083092723344429116884225803384923946488662555913559022007649909541075315545170564205413144849028583334640389471843667177431174191121516748805958387553985217377255311026906069070116226712044893134319312413294249454383444290879191034361482280844506912291020940037004503781042042398188419015601973539104745570868444620895755107189382542791832049133921207457045484473018000950988229722782772150240576489716489300982716860602695552780237888600126856344558551537919911079935238184321247702098625116548942279961847034913068158425734989411745584527276863584668212933012211479165029045868164226472648751295270838361341355676097159457581862052272650915306378181851473553225009853146600672042929255382934752741874446716641018833707467059333285865148850899757530600080511241173472851054343295113404605860628985136051449890577775110188310416422210622877642869292412309600956068136970208787581973911490297600124566954999044748112350773297712219839161446580408293512237731141432495682148544203614610582315908448637788987991702831285183830009404330910062991352086769201779709051952552759236484253009787181551304376298924006842012774583754603184716228314426903228418213111053380565526415728964394186413622130627704496555255798592094631638951803255671910822054314133592214218798595681781223613294786369136690397029305369754506127324880233036051524016701467154209795370237445706657599097363279795156665572792707017555599577817491644514811001263872548126454079585405836388863717755397953745476000524828826455661215328406738598296419963364020526309285446955703047686386053134232683028421992842683860347732831364419408908456216030921499251055828588742045820711105209094674130191070210373759075030898297580711993864997875468184188727335382003200619587823027090242044582927699046713849765360954197424915880250299059053893600380529129834471223540647518018134362286195242523083038530134864909257556860830168579575104291271208986332561570914873858501116456561580605779228537061171366544493231021925053555077110249136383055201479074800737655158893394969343622404845566369917089357033798651894255424210432009772177027281676276531865184273204454395480320686603555126380378843029740019854372667317508698828512319448724450257247487183421877778681309456788007771765525969467485378115447863142642803075126407446545903518735970349037136358998275828331043414145111414623292422415431455926965587219469836686886973161240282964735793556993076931267926264491926481151563060988641284891867595016324307270123857225200567439268710491998165748189340817917229732932670555844140055813555702136319476754345387074768709917981254201377241883714967299021842421519847099067092875102204505368074946188250471646170201608845799067343526236008811654600515561259430020052242206536364749421597484873308788656676558902343114334127815882947572841395252272699319475367987200985227866568934544005558323460019298935598535017684760621928192592796607257651861776816878932316428905199672542476505884684120924701258588026387592171043601576863129506038140817126408035763166031702370618248631179833761453991506060557373970128582892821187864701122637993935338166031060543449484743531423512800407646058024737276773629790035303653444562622864238386567353198143782242962526114780310218006914368175899480536819635212840904291038424739453056098070024505229735465568956699518024218043308879999494586789937164209588454363213861323397964964609578383293346492854594463648735134329787354781122115468899689860319442775841621024388132759722799429263762557110174823065216988501751959335749056534738338388746724108143385274941526280819768038506607763179683743407326039179275572321256574652744074045915538151419733585138698510586101790787117203898498528021850236757769284768807527940618552165890221055257133946892478650859819653115469823834921348011469099725648838769610584601412561179272097115928492384775939958178364858669376745554846000615988281298289643028985229025129678481347771422652169318323021492184466511332353538294585873095813162629132919520166391580492130580672335690694228432000709968682741180565846127439908346408489682864167356397988491131518606283039156994516377051676403411876679237744876915070648515747837098951638201542964992866583618117431460745315155870060352532805264722648339166786016270195480882380437713498811225073820715692531149593457376437043028335243973500178989025542807086028169039463610131570104745045307010952735899576000916791943242175728580593051069642114784966950417381775198092318754341359151082707094948369933108438209766294971001106442098525196962192528908022323981467381879082164780134286681935580237440567087749916133550801685936068845208257531844365972620581894188907757990782068061895726975365820176656776182164078425567473004132941183681633059811171528575250272422408560016315455946261899040454477201307697427002060469931082069424699326637194314269917737384787632074202834306206537692164023671296339251743938630775790524651498551274350364044103030091862095310781725670148290523205772075774883253556205076664204208601094453231874699862639370100435940415941427034465863542491937167421008952430272040605479967388266622954460735168882469507128474022837786861044348385838571066145591676338199288737624063954020768616281403123967173702758219291156039779944093583910479126238188697988055724605826824382394636708886802188484721937629891894154991195060835368480038551360940536519039184185074026608976039310687010490955103288357059884423773340179865995922779196620063181874778446256010172548833653255087409649549256297282639203154637911249197469794177012866948689205268979409690897343665088209624070410326306920025721236514295792213259760988504602160370170515036405859845360731798946951631621697854840483762498855390288218068566891877768406009837390743186657612689262476847815658369670586193963123672047100337426651866084216353489951631506170612412321794801143363201748668373750379660069492059751495171905420699833729725362394870305390808627649638136984024602808386223577577727890104359095038395372524921852329140794704155460595348637950360526439124994108482740264779710702260246021198667304228212342730091984878784627060910740730123637513661694772474139611322601493134568418825883854136125551390705990274946834940375738019854631706650868015619019452115740815580827744304100491144775209737896950000785698478258556411554319419278665260912006234188693743331338352319647147849850050464778366145397273928368479646357322426647335312182652681919552864122695433389234770009092303674920034672566789836255591072514735642400060084309138402046517361247874293508112231153663880132658462113995749779177064741130113196964270860206014268112419725859858277991237932890149972357192150545741073841675985926376634439547294767203199565418288566312316618391607314890417236127822975177354798776290131414876213931582765050080278802284727961918810097887780378904247219592909710445674063895455865680911286189524879521838932233588692309659314030167404124667697574474908361597634051498512849208920127378188185605853091925582309171326847080631798580216360627363735451023895010908718045955067661270544414178616026270914324532732998179251432427156743014960300161156875291867479460952623035049024232433361031260644230319262459812474221370045587992812039113669254666799906636507981249657726193632421343019800078029009023601613014042710716332539366689423544267873443946538355232140854107386977622271168796116922098439081264518090249546610528697908779409516052383723991255078927429765787345281713565589889990178632869617570621034920128918942206713650058116565125589941365491282321210228176616497855884210593247407896302334261065062366860666548587027716630429459467543064373052951169848094801182357988673609091615071679576224279881120157134702718069843683569482301714282500011468492721624984830176257167388014844924438935283304116838110583295862309370692771009799994065231854913970021116693104376726247659099003418962738758526413173135221790526850135093862970672331597157294925333078841012318812072239963669748649090382973736151227178340033000710174570884304410288940244164447093070782287386705303488212431287317260588477380599062275008844342064742864201787038077815782568838024993214796428563120228528144733755991245490254373559905958339794963195315375574555473094274232211178653015117644736638240244494121091762723250613097153152465905637133092176731108704003035635298064971056212243793466898934235807697309321043646088811301411532243125597381089395229802129945987210920660019343634190211379775837367950381158970422435393255380254064225387711943375006736585437518149296030146723187221470554952167314220636633189677109065853114722864541094969856891991317644567991140544236732430752501580507959971653451087080251642479410539261746656780766485659759960324906944693407673438590978504668361895277401150324307466165948877083749574146902408499999210874162214742450454947565789291411007288592338760219460816861101218588146324168289415352519085044176073871106748247718263598618241397294417253281164170929214269214258528909729057342042463325613766753358979606219579530679005318030693913816130605526861523891792658757616759823244981427696544538563947728487220809431605156733912734398126266794703991953781396844320305684316828887677746531012263671277012291947204902037156078655255368071272369038359755241243185754903920722715342271767622235147899992232648686539001033231244719253178159534802464291270348966713768430369087939567753647406648122105298107707420277387146780780503601858083632880475590162823144402437377304422775232939297152383450114465646453943051114134666892047160795616587817010641198482019975669543360621523257029255182325105099264498935317532088137989915890604596332137830785356807448456356653885727967177615145689879428746569534654035459758001150297513364687131945654464171409062067960415354149352448052887913062596172815792042928263655898243514104577193550695928721767330388558705505266003473948212339860771866766617391942824139886966774175156460188621103819149954367324289902053058520258205994579730413727995323611528258896020526573945373715286066037685451309063556311859334799142904279286488574016262228285174610889522822703003066917147201954894519637697838646463998483330811411123237114524509058481294534667144952237242658378375354717207801306989820458672694905765674206670791809414895863915884874125728285966229686318582041560923443849277165182175368666995265183025154600384421578612208355249929312757408894041040694127430584906018681860462629241691274124160207125707633219317628051892730804618290847761212897718270475744398808580867978486918390475388710924520444204753842970725801998816783111063204306641966742475275936359074952887182912516317462915575935434545015970875957243980750628194171361895215244797077427803212126925341270553682643403939300549037657065691814702618246263844945510471406895221300288104943148080226932076028725752398548504563733743277779174732424941067979704194557834435164227196298562685119506153181659086267429726924327452037188669483104410494405557685717198943497762199914912713722864054044722716651950857241075593562851500446927952804777662938593949143690737857585744762711772181015592478178652834012776333489458173075012779317632081673991168158690362164671014775224574940581462753009019061733051415195067338398117659436729624158931298831043416064476228412917322337498702202677604371067731010682359845219471474781496817625284019210093048114183941602455600967107357599108074125831823076176206951961711902302339666265821792652979917906666526847549553791467466681141416521973187548536943667748192407777993188340903917390469840237562576685239005546054603050300656606841043536658589723232752186661419111807719348843216674091466442104091774018347348870676519746234858407564952101452845166956785817410043173259207706637213094770329927825565835216806253111251165620727903696879188565127973546125235544403619698386804888726884419105086854108256612336622034810086269486274457033207805587458934406198565266720951694192178109538733834744983496078964501177421348184063159704887745782046173468278640704612661246036759762825395767795379577524747318635533265466209753985322862789966931130971715502925434952465741178546522243890051029279871805979688521280036001915288340712857492507206826859231227864916415237044527032199966627627793351472690699945070907927561150794137227817964497580951367045802279219212912402045539250681693518984247860910890934250795873016821520720364008017152879210251475038863655323066383140383677016346671369718426612981518941281552629577765196341989709153744470812273137034962422372485625965482189843134831161597723629115836498310650981277108555548995236287804375271208809295651980862351922986210568771646610662627698500710049841991298234269771779605088732257350743611279114546208494637660590299958970326162688536233151399767374921040796166667348879926885293549807009755306252706454512282922137858426464895447765457125906832415482695646405293471773270070345587438991586936526545982111921449085020702990338268076003087775511940392786563857859980011191078120194038014414002489298427978835822208104125571446144788959648235859806420521237565391819898150302811194297062709220470537553896996980283030912960518848009797164140289625028928570184400641368696442028575343307752652494283891205655992696157033095295623643928966472212362206651467366153338322199545117277230524398110414263033984104704262964661489386931129709613125198234123641883077064058762853379205950573753962195903394846829379333146327327891689005413080054523180711508882006084819778759721102754194906309368921836996787642685182227946383203484591959770598602907979124125150830906502221696290168456552240383090915929568752322070884854025733004403647009359797053546702285381164609550819923136924667650352017457298273022051989660440092576137307958999526815687019146187974386478535386321507540114134355586067926258369328226927990882368751058028880989163747599924476848300218604450464940199413896325312778587555803596971424367132395896320094020159095521275502604150898391921418448862728619233063627680985229461539090267854821325154706391191724413047525844507610030615740871546908364584698086108338149338920611871207102912474929573896101886350871133191752778689738590593720976261554218809257384795127510704952010785025123758590711517743149105549547025307695416291516736816545629060406068291614228522161382137419620943154836510100776669678662893211325740876456981437936298859706514206562887582256560244020685413302730091488255665819220583906859466736501914927760618520942926897217868839162016327616622889170914461549124157924676514628468956605725832837549371559118645053880300432230253067432253457984838612352176511327092254978949554641966439172876362122542960477448206039132065236448924898066857057680390998439750044551281330463287130568949538582344225995127464464438157390358934174557835851615035471954545974832819948502674231421382688262184590297636637187235607722963037918617589926488640773284078307695349791539598863448076422143532777645727466934575077502327526845004363505220923641251371656188696351866792706376420573405330773965315514988528318366893095900620538885220762195040905083170517444359315096305322505281302721887186025881199014361253636255883604163673283275597909332092142001836057506496430884293977063601277703063566345638158333814963382517692604131141757765414800567627780280791875594624455936490566699682440663556529267093976754650229550532821744954595543890910143156300341430098695738833969001752848076778976096948187082807095708558386147161222335837950973763942432805681592507075410883374456651823025127130873355260664865461550981028333983806223996962679801458234131058838933795232542115748567349382586231128458879620636644026340343368481157714578723859653120710073009497371705979759366555497829309700086835412518255337652095854207090791190733334777540853613640407152894421008286241209608128319791905748903581609795124341177621858872594509175631411642239516558126431997920866684285460907433012369062249784717844023581494298869975421327769953340972889582142272728507072641716862723645402289211619744594112298861474225371945212966209949243539676050063605260735406611036474058458195148125966904687542695462947936332958166653054044475895571786530262484276143337185151933639196693939197209332705218228535346823790872635161294648607465581542584423623942848302988067637907237035694218819002558990451519367022948196260421994688790142410836816842002593593315508312757501261396611916948091663966506940186462276445427892129606514513572218676064291326438714282463802380055771567244241437661137674679585466380271059960427988658302771327159294235396271500101996183494352172385712081717660680204165645324705940175647881346620506476176448466314109901655128126792320158233451275515533424855250649126065385465320602999952011694911952063234965492063097040267035587128766979441717287677581473213980856345118313907298449709416668154583532959628943004546236985332381347745546673375917380253820409288910217055407103121236744641191357614913770666463742792100302825047144945681866772165703035866973396960886932947657893415181398548885482891847527394144615413094867673935559943251890742164456759068899549967125184017279483374266594602023670441754560963375592592906695933046790170126006495833698315739984504586096938689749794157793678083290619514522410479860068808041804298747952081282906149506038256106169751007147235619793471915998345087461704340244588803880856602707632683006703603939835061103322351114686984560332825834837991208781183840262665831745602069344526055039299681894159323403205053836226275895939635825928918001199351581660961252358387972884134097587258373321224165478582319866578286978440615491322497355926451849114240062859546824985075556312129245054637871489376598196882909741975308987399494346139371276763236916892776794639079764643229765099309286900065723591358174822701693940469662326874698155666133494655934860442656400355305165731909452878267740184273054958616468254537411395171700901417792105132093932042541697376703888510452094749606355024514599496624300646451484436897571604897368151628480956947096782281306043171705211844912407071485661960160116099994776559304952068253449609563570646581705877276381843253300555097885946665310293651190288726753836871397061934296889545445317839244227377269986531954314841426755058624425483345514158627758750268144352762375609902961164903090864946030963408344843547672770781638556105518903918564954192359396777836743108597306672952264003173275870536909562299638453782526470788653473445552053823624072478273671037933346942540639236211072818022362057348224817079371328056789948109631094611411148591248975905407776974018893461800382985318573183584595749757991394842419996823936958271727716903697012538635753750292327066263381499899121479593602698779234011506155625139763720572489825980633722781270393611366757464352863902383572154947030101926891246728246541526837565556719254665251962292796200956949598842074042212928164054352702997559191723179805753148256955705157603000622494326079233337341990321545201744195394763479825361432779190600303226538980227175557506217452780266376327467070484299087770357858009607242999898657000150732657868651827505207758039695371694716371849648438258938827479753906122649056959574878569572585978387367887035867365187525039408828778270281124605352753686780211031515715900640679929907390035502086896803764174449172411815027397631835925598494271622573443307643685312396909977590044657758048586826323389395611684450217493661556471469863676140389917349850753079051728058615607596966402605392056985962998491370984726191157586410013398754069457436348686611160674467698763477410975411127266445199107743196005977774212340115543528648387905803272535727602278669473292861310855544453715733074967918128409401513249598042258088769875951772903165945377961739021185425911119113718651841711358907167647662442900833060735863759059655677697769405896478226718388026984946324855198091335554986387992169316311974962540847764948066514516182632048344340586545745150847229126272631661517126760392598189933612777626654473050644006556540837142371254937894579088268511915875558370532882619163862803822484876978523895107878781922387034042118805635400132136709266329888246535396264179010267377605004013073457453748544424788133803338676167710893277083186105896621240620152355284630326328117273130242885382742811483986655565881727200564863960341949733654429420896798554102270422697686201357617074229391836473650583219505901019622361743225506166090043425499656365050306236926086468945601566028547588498993406180895099232637017697526632405896918710919587123837174346061285046897775134737715651735493386821470679944440143969259492763462823189994128482237118937242953021268541856607244562521803920010129113982001579047308762399488601468824138781876453802146609080087648102823347508745500044950035030505108987010878197043540229420941047402423669038459598180106749169945676080570705800314249209791123608049111413002994823166780907181152048095889745108278084385258065025384459064400647939130137166806097641103683657945111511253090388618865608271635687400772973723863834272579747975749908708828265112210115599107635048460600047661452355163802900926181561271904652044514335313316634550433136697958058210199391846917362422132970954764064076993946596302376773234735117603761787006539828536299337983092706346966205009618811302219247996847286223659554740611101492076154540774254724587132024065966671545432943873910350655381366475647442057417353171102070067192645140169278879932990676396624645496685221188260259261883667185811033767104752591639577361602238573693608462294164321973264088350300981309078975402197175211898420001902220093475956008313561308137329421257789257020938407203722458125651641475582017821860342593051550963248549456342762307844584536174733654673447246609516494062401042401762135981078383735952646957559080543937972053486070251094928683454522530904139003530975853221461327059557542602757673537128358578542543283808486984566752988719293648424172465271603563700511447961443873916476553571726447829407848908089314400798698731225980537576337659780948926428555739125854401599100162712985352517343351745614095494617684361532107646847143248407807005988083413321845114837565466462522562873577350782322564567341874279540666817507784380978383263598563239048027853710908519990629543528004921613018727936499405290126308801746454015260137032359883726360404785633185833431881141080073558294840814813878405258528732156939140005211830326303157064768937719122809850104527419302112288971916011150525623045975418770048002749100733698488360390890309950765098270403866177472696243177887284540144489307254050536066677331200808218584350268751913491382269759167867967572673178692266030232296568315384775645629698938563129916772891651700930082300429649355439537504149081677019309148897592718861500720439314381711331841782707612633779853375034430702709211651386319050345863489163318468760671062559046782825377313916252693689274409872186934995431521364472683026882381773441410360883269918709075709566300486606560682492000454604691558434471517279900148340313766083229055622710767091723754924539706144554999673642554318488475399594402990278236706886828069515648195908182620405336055975839337703224046617433223238947188150204766571291237986224466405060591718566791397550554954854537556819577813499609921225995873046345750284429260335398962905058010627597241512514284219152662434582633004716968612921568157603574544516902785273997748250044476684531551275837753070680231385163826306352412089791768364984755220004463297509979011535800081352614757837907929603568729778281458049792975134508922962334633959833440203358076466795257142529979866340118278898832783575226177762953180458324331964471214818889094796209915707431749437524999698365783420040520983645913312080695793200316101057601088521242180619009491836154911877219405344009504427128305913428599209379906499485160632760680297974899862845004590891980139065008828078498591366378897721530208456442001914503310029219689339677066077029024845617298002478041919671732159841982142830792173186897509410956210360548571470204005301790135726848946169409959044491020197642728073502848427503585075733927781086492639866764598016918012639347914492461206817580237267260557753238095567177197193440383450065014394307297106417987598923777524404258679069713762152226638270688398993047789369559249846403656387485847925384635220111145480777692442257843405622020738347547259265530431817582696165215278798594580294400115538922202419247296054641595170232413637292452621604143996217133730689789162219832632382172714146844569840005717597750991227739128445571622221693752842011459756732793339590295626550530716961583048315176625823380819844552409678141629848577833193649571413584352375993932518115773440992051172813751059781389088084145462054206461479255942307426469386160904636861600273429743544182067168009653482401293771529910802944906332309276237802686422698608220782081861212069362119731445048596710751618327399551459777440942056588467653548033445079836433768070200248510012050077491690847080303307202600020516600308395491863624114306996368448112048041781037534650629237943124835341627430157145472478803132447336886362504855352288613915389063686875178674211422124011699095652552480042801426917911744061272424017722954249333678997167310426565542188313079461725222910550072660314740477059527973791098362929094233691514530370960407898325643853338970781929032204574608943888143525149654222267620930761505755858598240372779295860934860236775636898795033116319672570923194803883779170143976648842724182652860673070908342199686733917791340181918829354833985830370749726540547786835995485706058352516897372561624436433475566880407131803320998055688525915513239562838058516558543077613681699681969086190598540198831859731415765177294916356240940751669630684783020582751057396510616687330018792345024937175479263110839605274308552212767676894686879333064359481635050362224429525537521088454655350584836413605522025606993493018573611207796232112202047095361495156015575943399252027780303388780012712703569084003382570661183581248435163724185994865611679560010815982858616389289141226804192501481679398266682477606543211059662137922144535352600782906245626217144139775017087122507905428452833145824270318179923295174660955073019842223517429359830503874462831664991553059854784275846632513255728875681054186839706535634059539437729972326862917640074995608905628609573254816414436489302641472825970049638301346888417857829606289446577331988475479255777056453143561673085752802214204452047944546314367675527498279311065321737202897058317343938159763495168755478941531465872962313143697792436689753723137062366099524163257136609795468071681264155558963464934300654208435760240785655519351876240079048905006415751659407074823286897225872551733838771649988841549138388312591051440927952273448452433577644603392927381111073162836226084113635195090548373552096785021522741076311820170678015371772286679033350711790695383986799989730514814225283554334853793829036766849704400702028391729786693373654014400617829723847490625017318573399569807244659371072859892425764969743274567767432925501276784024881806724659649196007453382686235947426917764231463591632057311444989938060070350081432452877393006431511443058778580363387397781195416998748339845010778799078820935754533964503217902094471879180038676323067953185305035129550456529805316480920110558339644317126402735675651982925990919850181163509515662431668346704766203223821120666077266248851640040118263028777003035898732028626858640593773249206600656369668616721187176269622898152019960746348228306621890048324624709278994177038100247941343963765216400043131302727998635283680612135799737460479510674812005554073549815344077939136646563602291987945068935264201155727931976368503939721218878831607094895007497857059771679777509027658737141169617418147543544832312797239240552079655035414729053566196171308686004076225519624981601763319376974158378386796921624804369713099134697668421596639451446841010243535672725188608090307315115035343955003158466013800595228337195932711849333399534414541871399899325504439591446981503370741758564355290960860626176759539358774797030263654384722973180963623002504394192037083336375628749712785550997736081142233974328747413587907926432434408646944077690935911622012264565944965975361872881880254777842515808361648358282763328207532699257520109516078696047165572864193937815226256201739774212860733379407366261285799461984268105966683125957910911005131483370734379362024599155049849447351172153755088373821313362485990883531348751705439079844528634521773642201773892137892284402714344142820624178196418672277072829390770533271059118258889568190612149641559289904260542747504924787631255461239313831219871294775167896531094461509580683041462187357075099687080157116114994765225209183332123265658130555162834272335673394319403823621094945743502253192583937516789534762476491253731515245312647140972654224767329700996486670458480013657369736352257997693186922543653399042087144290297115106482992183713952401595202190264258159624293380264269758980957146798428973809572271814908330552046926880881375028393866743700322882652342362586747870176619569220675477909382860821214266046704611559308768267115444939234573432232282004941188929089558966398962908312735766467512685355146258017640555677187780810978531538532139228165643048756477483911587730287680311468428547294689255963908064245687240307235766624169572611173594145207476914231069082101811875948530140111983522757687910364887068730197803954533633757723239591664588666609120199761334955689173632689810099278102344765484427173664949989391108166668310447602911654775739430244687676863810836700348945000893418139244366509375326717637989326299960874062238175214590765123592074292482205098688157983781618873209993385409728170298614901434882929754097536446689832226189278263052180813971884060997171422963942101362800450501636386993991027186683765526173811917150883785149451145597613681955606751496843395567650090144871697393688265833272598597678703477468038639625022529028236675002774453380015390916109298272057931199280658024774972207272519298789283927935242451663983147672142339817792802212711166174577116057389920091015107132151976149816740581858811990826668143645440672530254893716586896858767375789175607235354789867291851340081715788127658578322374792311575029754218076702446908983835631961446400409714155985965431040387380930143635702220480090297417140691163654679897581871721573067300479372325675837474857095382864402840788275960752146830091270314371897311719356595060597618641035806475894652116172704106542256860542379418407149452760537153028764100967809667600769340768712242393770418977669655500606592459752097496214872123551841685030089110010987036101579540275819776634615235727748933441511259152681694861216810361333462070774829868474192199848539557243485616493370958428976408855391922576124477998860756216091070255741432149231134113596352012446070011276346636414080563853941904395074003420311177819378835033975937619727974552494843565262874798770525450866272873533130474076748802151943464033042225227417813370834458667959571671815622444822168807424312909070140026995933629146414520684754109189187458459372223636774797163929654372611047581596668052029136104859018037664850161736963779389446411121762695907150944239284679247187731043880009222365200753260956690777427818934820886348713759549389648912671153624501517679673023651829374790202296467002027890990649154899144603832271657685043408220164853642925084301799201938021383709486902049166398108225805423248013555426414798254355804468741188064127771270600154485529555348864296486386049547596149881058087463096288869372557123485949917426257966276169315394754788260606023229844003727923576044417748279722477075645308778472321296756851193029648016051127628156525583659183067273433940988936987916901511062621805491552368003440392530153452332050642596183744024552558334529820935747784292561371423690706119905289375397942587897491753016455772900007313169185898082908206552991587134413565664369375799405341605772962568052840138300925005462584498299899995727727836177195847847343697959202315776636410768481160670121519905945839162044798296181623327364744226401814652506523659713344987776629939463605342371423986912584295706612288646884148240908866963770754183848957357062027319005946646031823663378783011154376243407538380669521333217195941396770190065519592973716915892947829590001300178700577435917480202495797079662457161471260781821812792641496639988649805850369391099520636615353917448517076435226179438806371178269049839300289122982641385934246270224409547493332879509367128759219577268749715872451043449812348519437291665424562866129939133519656800885062884939169032036194400025952207699688147539109917239940534683093847305538407301084740693066355184508763244801624255246306089853982795264464022511109874477693195901372026367602217364507914723835204531102180098418946736778060958501563134099101227972553745743244394513860055350258819374664179826968928224158940322017498332875788251837496011801098491978140993202527406956201117862304501388731703471009314460108193430958631716080318356894746531275588984074560583893365109344266022825688025082430728859200924072389688305864199506736349243375169030404468838843046570113505298775397863652651157858422096741236256048482622476200008529668437060491812108432349573100197833944029576208180095739098649879586587403078179338236452226344508684593120786460394610776418169809861574847952164052143162972010733863043414847884344610102080817101378194203750114438491986486882832083199212740900610589150148983477891785488967632798114497170929422661482272178773285195002802975209664509889780218200606322265668549087272390706042263666850568473940767713759844184662433039742104815776266625725051758975475422961380784918519245524965151734752311199123945216216505307881218932536425978837149892079813952475164574604713730859306719356116600930167302422002649306354200370845791691801612924672061051606493696049271855945180512795830488158594858678025899657967062882889579739136361147623881310641192785297125296414148712056440899593729468185485147284846913631358634812207682492289761130835596857647397641048238207280719009238028382136528313160262697777061064915632546440731147882002830980126597472558863330767767995970268031040269661479532160568117673828857992493255940555342768215392429722528843372621095498360188375386700418853859197994410574481218794042890951676013175892887488988188910514144265465433796314316367820802198016560980826782869482522614006045798520793556336635560578694250239253975159424382000295914791655370276353530856555712939348302438512528328125952911938109515892264461828740401561814677023491157440313285311830998238589617964912872566748708406127264780973855127728009271816012817197877780390083456324466132216401129122900249583790028794898819004062655684543913263887809233855378636598299128257922865462647389748771192522494314529813970221010067104704880851205922859582559132602972991908680175306645364426477122425021297242271415986747750977704529512069166538151059955851101729181146959371120788878169789799203369207337126706366549092693024064451008658514324136374950679098843687991366601306416070546252762670516456528560133402544693655549822819328881494565086848928328857326186114889207527139140386898502750181786578734180441384537595904068007261131118530691530013644316561474160462968986581957268476195927253593620865305431433515535968321255821122716317551919076150947442299312487499996906710128484209695753307205969417387332589910554687924308955715534392069251963804602867631548419569176063622812857923759760766230504344480905251244050856101611033224481892542959911577313393068057384028622493638598146294960880008571890308011939965376283743176628944502980195455306475028550978490853429725739309854245739413629924103613027098295105357008553710156108364979156813416321532132840611219212775124779448848773985878080552189617062479330715802484242783146075287444134887161423036780532789228640906940143796919747302111215874730056903469052601649475913583273784316989387153617650905353423420149793746867850467433995406334745384253272407600350345362143692727653273354003502295304087100146390637485216694570238937812877698017046140299791546983482600873882848705575506307858964120808997485906147995293136738249367262691428177612118645441946705402640979598552216860425887106270567210527399128167880910909244402235936106106782342787263872028079512990971550759938618060384911914986333607917639459954513827898039335698801242148627302151708728528162296511079029248460468998875489715982260731136929719081718559020201395157442453994276586889992245074934645942904876081137876651236389518966539897411486737025728634506348691514762536859308000309011943461733595226225388330155634283809981432387293451495848609701246925350998844316636816603221621708994762791711568735499187437026220855090916481444354848610982932719507443117617225047852991201664599573155774752914140915817868906245451915269518787297193320346024472246668281727205260486280794138627727534322444852884741073601907258992680637588803384145252538008967828564390997317275130627101376677967869612439821631085025567701120893200044375608197054705431876639979048723531226479650826039670524145985982958334904093164647256723481441998072544289454274497111550921941142652979044398407067572363270945494457083522555798819249648218835361078545486053141681988495652443716112998452691550755479266637824040429993809144528436953178534148664617520061361078866370031543800168821615354217212264938352491577520151895390707271531511676845771393136431811846899718534098370691560845939238928099922501364086950015340360131015859341724263340448355527316983779001631995247078772292324691454931516069659549067349432206646016476184799640887699852209603335793317177191413723602740986909795681167454105510272031803666778570327798638577506429979974387167367114485593010554990601084537334139806608748746338568824937020066701657238075162667705667062598314458419021336211115862150464251732702549669568615252282985717227808989352148860746683246628961745087190314050160834021999637794986584474244675218356483938715085817774318045492927177341933555846697567268275995088619835592705386873885630133789565348106339498524057805676721488474148812946550206624162521795655982654404424093970940671131549368907665229823858356567630096415377284430099463469455376549073163419613951554703477333896736186778957289038725371055427739708040500264732980550510618595929774136217286704190836321067632421853028586142056404432902257948089434388188023974992167584688888811823680219440167778568072724868435044000564963766537513079066980238213433581460685637413427743721634765000801021353083562282825986057991018374463379419030132641136086123228116076391113437087603730425022585459076349083503430187196173763194888187106525323472065856844675015227886290244155688327891795789718612080335124996965031457397194045548123047461939375148871803021562881145937773553321595129243010625378355447748212314330525069210702715635235313917783028562694423342433744362026854670289689243381386717695091707640399238318864409965216198146090900789740322555653442138230592516459005804318262183868743514626057547844110046789532741751005142591987134318377401446829014708850433411292532932529497043013791725539328056834085021863320503942353063347290039878935134364361861092009955537904965035382180380615529117417383688204284768855879468471645890254037018401821697275178235980147400109741932241162046072388167005747716884740121244320031452926216753526363594218402649182384182818411409501682630639814354714400763266105954798198336299318433796364131011473020559775434677896714690481281127568862462713933458794968089423267450487881977254253415581938565965927833081710043967066273955142626508616482715390335370352285541284679701841339049355955927406448954138533886626932844016883408676023821659248972982305901661194798357326346720675114549110008415454812547311630072867932601194325071578298738389808641981894369052468698089241330040523459051978737929853159528674600513808257539036318901921780550294238221198055201520871088142846779419460431645485303215476838234244771388566488898866468663809779993981765848103252126766838891622081133157109525903208176947458240809681224367250420290224391308103177708462589591749615343762270278232838193442295390056699975694734586630365077220932116764332672023463598042731579431457435808465947130964955606348941383072647183024135745454047546349510785770271709823201052086366674486699437317443989159685391035837768893340804199493190826718261000254220633560208644789507397020971957440368844110805014403812136028591323350914785427038738879913317205813044869306387202921975789635485432648592667229333679777182204521850807676233607739815809624529673240621790583525302691601015451700293551207699987925604824688742493371155433245911170676930898865737887313994286198184121131762226225442325156408154683917974752391225506654064980026698978088229859059161909649385181399739296569470588511553047185335348119252697564554620430174390515028134513113919120951565625338966519827654208248666845659125623197080912454606533566708982095870151497260272774729096254676338888709548648329897684324177140294268703630903141450125686578146835378098558578813334194479822545786236013023894681412966082153120357232569848395626776337534047264253607357058725385391499618953036018730317571038447549920941992205610995321687733384976315109123931509342432321025939847647746885249045081259281044211894666067488519539899438899871573870297674893229456879260207223775662204341938794755726048476875483934257543142529600311371369332370122080648745464638185151839341610751738642540474779558671991940719225594841600542198476984297830720057497624377512891450308099798920142646426484947926961689994711495013033057776770316216518170023890387661810114680871503423363700574168763428431820118979630131556300157231470362012721846428277488745705627521004164358350116267828554503959946461955532044800134640488668924487049630942266041643234842171234519455872774989023831217167244924481392010272261856153558102008597177932330480381607203744770480773590408186259970623667410802820522432982778861724989568380313342881505986237201247253637770124177883763224612797975851343208693882674528636271607308888218019090429052520571233114696440051150758300746670946635982935380273804131104942951568014806656738407783892049850240163544407120241931087688318556297419231258728589463667627207669040423590788281574887461812662180636164689705220022338235265899932056655204110275471778738457501513716245430871948452819604339819757295480938441893856878621491330064656557184503317294616294186384791639001850796633845479941130899981784719808354839207034943025010182339305173317633550557043434971397786651954303122386706293255672609892768162729454778421484567678099685194329291568138991814048407230470070652897119495699470770761834535979647522188880174784121847624840329583890601610581515577716624914179306800303092101110439407823816740591751144035451863326664671316521410548911516157461344744001123983824082543514627249876262688584738470564218773688304796032154357549343508134727247924123299823780200575180966947680995937708706049301074269925535415696909021860736993163352258299390503001048110063091195550860763128211192744347611228917314177939201357985966650655985493229269860596855628984383430232593668026412626566642622197021088358758314646581332441657152197952673513828282399108749028460921986843929811800997173673440179584089106827869931727697445208733812403882206945107386915627270471916478777328587656162884667669868861769649884894130533119321531933772392961126638230788928074622595629031121687910571937177666991008058820387791109772998377843545644950235155762486713291795474121112941155803642434667014986149264378055710812358917804895603238478229831707055564880471539446801274072420188677729042376181146132775161930229903812747366649293999297418522484887023355076078101469690960370034680837388119658529968539182013405192257888725176498730484804266830384058050335532848043380846200923381591692432571392342148513250833358734356821106857983868576614214156653318889754395174644546828781249323885479790483930873319298973939454643123984083185331580262205530775611266776244669948623201891381579289939638601549806294410019203754123369956900004861292248284494043922119385315808405611189874544308464342625884688353447562796063902707659785667154393767965260742619386892396629853100637266043482038704210748186531205770428944556554730502564426565858766821034758560392092483593191909792693135927421259438961341156490273848112663297385649825028366482064127538291254404218738878233158901748999308086973820579442718069962370503683257176211760527132946671989130481265684452721572546320994925789327319303595038373922801759096444420394808905198164537625945270778486773897815997417658717309013513599629937550873711665261726451170290593693246481702086145961734966719256962160490712010469348402229410737752540873455220747075025250174256696957875906828114904248627240438040341307641598957122003981704199375827684612013178702327871421173825570206560828397702913882038959955936053723845406222325086424484562464600525224954136106258254224318939616491774992708563141767527547991381761312257208490454754710550333186211927684757056148846742788693794979689808748106894397224920389517691844822775000378529639025563819300950576845915320271790683663672492280178475745316302812872425807508550474327163705760805455491336875954098990376298043691912128264970674917499152485401007011165427691238966122474126877247191681112742993491589940691684144750063739835209189381801466947865692682133972355158625334996712744060579871085176519682133421469230003528633194116442700240224315267704306005748054478069026031128132291314348090107697630755739778183041771236093689240508081805567420841517655519775759014747746082934474060870392770196821932275409598331785774079590439873456251551014701943431139180535195469877892381134692690312667119371653263587849408600376584998633972308754636478643427931954615948310474873910045292884103837736606010719374057198716369680396052517608416009253940622959093022705468778485736223517869212843765942362370766200328980276849969419687054416757557128194577480246073160267455451080110382751029989419533451694971105774663156290687137337045034986744516691110584086499114747038948189165317076750603660858688980587832245864096060939070003149190760594245348591874478894050512310696843104617376428886643808358825716607446511844357849652850419763432025668873428393441345780577627810676929800887080374280870044379845695676791685631673445775299488336175491043138232991584211814570854480317055227271256173630205102895211421089903285352010842351784140921819884158647750721146055272541067545068382349279228351340480774084392691254248434742685957822713478577528693621317249666617666274895609864205952116687860654921256821456262539636358714003355836786270167788822312022393659221421142768927272829642270862687072218435085060187362791975146216732917097078393854822851140108761073240629287986549900489009394297540763715139815466635932241787967219711418685110239620932732627525835188272790221420187045679269271159076334650119746280122445140188342451968269542917068867627987376112557889004243422260135162433669204871380193185200484317415348975149414306999222009894848644731255591823584649426901895729650099861959169699815445469479832900299476470796198572120096814375353194390954604542972470025442182036219988154574100564312709887878172878905904596882720443312497801594689324476996273174752015941919506386208602516747061471763632710015086492307614750827488434597589891850311060516159132396988550193175501279361682800756325714000111628956559532417517651481655605582991993613808548621022507513651494465200337796861945488822046251951739548901755731672153087541740321145222990674987380395881122687948572436585779799234046285646465645066988668589374412200653388742388358762033869960448443019702017060092937388755261878290015149685398833019151980197023484837146653067649929901259909875492022868127370919365387894960593350840671836563239181726041150421452599244970860301745674217496891464593337976866821547064992286798572029247541011975610354151999771911098529411069267454132057441699550128546012740846998532711274398395652016908248870510526227306368404902481726509884481684824395506305816369259604659314728515365537983287573621873259936929991686293976396369699899059458060523165612271911027987105734292623546338711504290873399469341831383060385410099879503527266480475821674348665078237614679383975460438407870266471768705427493584980894894988640794115195056396832159200515513348869938276602715869763891622805219580479514472797366029912161898741197712992047417470254955016219206779120292820643372041250011506802545269078847067390412556549758719139486832520772189410928513963031251898569575285019509012336291367259214695748496747771192240334144463751516665660945315722249706129872017170061606065287856669743855959206941180101443938780488780215198384584287882399239627498792810952320729846852689530912151885633160399860879278765325851211363800058890971111804177956333644095695566570778041494565214974643846056954945268351305415573635331669561851429726986884296435363688070202855915507405100546341349541503704971474639880833130459082920166258822550864097509050547995330580992708684201732806333002045197387055813126235323669504457526908245443734262087780833392768811512264194015860480121321116480232654067664120349739218048880480965973473279226695514126645932892927244563653717953852640647313773396599356424529106982237924058901994309774911707430875466613554498729270246077821039430131021919051862690363345878685990819425878224838395016061687191248855941089705141021701770514613346037974057008364079631182860870667082108671442081672309086492793773451301782015768990208411010603168681335782281923812411354276885802035261382128539274605577122253352609263591552215163675430840966255956376675796917438909579968324464388244771338734836619926909344725073023811812499838906759345156708229058524555190231573841972785073904532984183826348350068674951440800722957514142481886690037832811205854986393089875811263643638202286416271224914457148511440346970824452701090913162615221514151488480088343535312420322389481614147921934624153871039311878694622648114656684659929524605314517128939231954930792740902232689873159075300820934830063582026929099303077426199615661870666806919826837011639860194405447370059037064400764002186513678472289761726321984183705176917448967770805536271754422591250059580172754789599945059813663280199104686628499604291364033927949467098624604676874047916571906652389175187421665145860804944519684133543448231928228485568655177977569858640752073878254523220139196642590598267464359703153155601419678114690980695751031557310401784481327097313099612242633358624766215404575972199173473846764754101896345794276070347438801912826412356809004430506278653850776899047524671347284588089822025207770855318209722267391236009811687066823964092982948116018039171901528231140217458578916783520987756068564617798577053547793703538665280801491175990207113666863551037983577295140201393752090067025253226659376176953983187083010459582388600475860413968466421752474695473573761180562066712909971961563022485809015086554651331533094105695912875617796531128369534244955019639746674005531733522192584786337258371484904631165717514945773345836458018102817476480809520127261817148804929257280913270226235386693303885533190077558981080207051850868946876987344020843489239852223776317431967670733905077667041366988219578760720462396906135652341932806232694181447805824331334639079219217287418715546235205990985506185105725319125932421236616841153796460991541188226795600494576908145372474601437472580024718071628731400976523200368180644612175728758612881043100021467073163539359342498419736043194902218396221444105663797827512026923095466347577934485034745692729261265711439652716967382368328567432696949491688781253193738124498128848568633877427453761758691115239884573019726932135717795349590646694909868866056000907014224302417997520445873032478208742180682271708279456236491823174373208598427917356308977525985816388481698156646360448633848773121815972224286784503655943310481064645246523202462660459801529981878974503911244799078487660835985735112242127705577402112796822992978269924202523353350944384186329228293631404306399798217445384901686676924439185809490017889014006521060336743410654046860242519091620675304205774271325610431724207841359573397128659251781792116183450609507268983905623133608082471543339370383609904516506222121325325504145594040231701475650063053912405340627966605416964095223395078125323802165944336982994682198652055675039636632785708117052090665429140443654415978934185461551404234978250404602189908925604656190568618655556963583876795168255566791834221061614615976833294624007349961075791557883849754974114185046713514933405145915346830955872243261643823487246298086884258608778245833915746311865579653654504823676667330869400009643939151667202052100129487340314687841350347364138833263512975198498916365530221862719834946704385308735800264706634902953055634322711657879263049189363203986331969709908918071597315091564143024596561718390291319423217863447801557128093440913782842399910306178169898837170591620931642318130318867155317383696554508630273082201214931995570618920891815347592826813919681595589692542628947382588798081592501017482985575700757491663189510718190068485893503195544220197989900766148854143483253227375226092977392331328698298848754295455322191537315401874605607593141164578413583000961759671412826297398416778160849828921546158169492978566074567660877196012837855424523653339701838843426553245343689287448627731720224030829857801705593225579869501255228522728083046455732645218389750427956804689424810571901287468245429034887202109894351625456544664569145331128633042093081127151495245563605954406630698130665936074127577346704406047946253047930467404718230796620466524074072714835847166863074872756646225408350059903314709213116402392040250847115197233576439542844882681256117528684323719545380191561959239096042413324794184982230096301297377447726476637328676342555641162329650885007757831527746547010609848760075396744064895208237272181246169987827110149407686931297488108108489115064566422514415852507024378170717707689929728766052022775559165952989533489968342200523508383894246295165431342580385312247601474737042687140755161045331408553944941166738588430107402891664680055794580592180515812660197889153010581391773805989239685886203041219845400674570624059635009735147907585243342399041965812587327490785419819686302104203508143874078529960293834180218928284080148231042020271048465959968756393992560268153736525230393473451610488520601323646865475619123257045205138852292444905298601029073526887622385885087290001997112360678503105360021932596232720754778487592486592801121365007286107974843129866207987717882246622209778849319032031136134890438359289050827342001464575284436393271883882306563394580787662463072959887723654614880623210654268570988152533883542201651302854776709846292191325966061141516134645271468528685766921695702152528578590851109246782614021122908397788285366200557499352039044270302206853261955144333853922720486343178752226754874517865134877640382616799955000083182377852306838344376272592398526977710965292900277840593653153700112002306311995355950635418595284923345323434546490064107019305094221665015297856881119628727938777311768840592445900161876825493863761860045019167340872147270202600505875995596677706431882309337570840589263151312373985590155133731791188157173732753291278258890212094629174161740339198348521660855314635971171597197276660288509671283468933408050892975410157709664869675423464329704842235774099843887743831410787174380127711031122043470602688575101894071852906720932953693781316910499092008160980337262850240130756209141861396014619202997109080700357165259026614511991105462916613092499746406870710560059194576139859788587106897031000946558363771149771946571261628801714345622427039869691583660583187591073685963329655102108345462210386391760417188176365887170812802287498548772755408590569230666471829484842197612978619362884000126414072388263802371933809143265825283496109206697653861768795922909710078676941966988258827884615576119693037548710240436319285388747843808744106651670823229103204587972655029865717692527112832517407018008648736045373410931675607202920894780759388733448691689094698396841929083027712999403402788460063330702552595297771264898982736836361280148293514628954069892731278311638842038963893029763976579662877690275650821742012874227326319663940288639476306984890507175063173163612217503897283829773127284761703707482190531462567104828780273394581067664577363972087511537947394156424288712174409306159151733675654655406635646190204461718936183769844694564163492888098738961451626105369279549642212674742881680281180564891432712666589036134647750903333646561168673902785006432737151910620158489931953592314019399978271486023914941341496020685294558998174342744987754100023904038400812005255615322681930312972351096800266482175812644438471070599888248925786564167350988629910379225465403186602573799992878408320664887014691946488387981871109016574679715919500137622081748161538028088987430609253926837949431307100715089234153580516800037718028959041798512448806908571202039837425186244292994905914787490592891043576290337888060907719148175566735369138302562041517784965854656404625406691872547900111050007408846796885444113416307926916124995070840181801771385921622560240748876127761577272861921744227783168907912826130491103609194901213039759784807973318661680248524201385674846907125757957767822935370248971538966839887739611832898023735223699283270229253264610783516218591567802266256202991158630576527211421573151215112262253081868558226327606227035062318294116593702454173211586579166674505140381936919143899829621347132412351438785398389710165417860009663758783121754804952541141990707148087318072944130357480600555924013906137980720212456264643683748325775366842595804214051252744218902280570589545065284746655547246483688846936245019901259770530903864552086977940221764723630888146559968290289737337344560963384340657088494662326324746500123463952311530678359269222538348098380902360304890356880252544765171128022831501424243240873266152056206243951417387546581717485601738577226400442403329450304973322356281542181852422273579385001268488316552967396847074163887431453158031213201294213394371126842379588715851570604050428885565333314591660382615406415891968710489297547182384783342717560081647988590471180079162845138895825936634935566108861006199956801661689823461652401128203988682080419156036896714506302792131915892820264762051161794454188670751001619521170302694803830579557593975699757186416613747805799861171409825122130643453637329964130707264167418929681943201829005930925927865865720250459953762564408393295236534622358462466305766990600913515995779426584917625063650046021238110640935588772171688960965577822662720012966113094694759153024600027494884986625827940707741619852100764028804620035022547393223610916877778912687137945069394539761530253632858287301994963113529406058494451764417267715838452748527411299193998897230063611808497890239692077125758015089207881945762787550132980721922492209442310577275267791523636528551375886856754059183709832962875443157835806054198407682434523381280153824255725501677453180653102669529644101891577064275222560967181502831806045322824093162556225256550196303365215122675984780452847993947441758387711561273619348075957677964868500917833665998501913814278830833506994122233859594096693367246367413985454996785084840662505177576134558088831815680270601087461870546771378054153118735709552761122987729797483319162615246463649523233500530365044202542774962228073062930152029307936173054291760595347714617897240385791002587698054005055788246379866513539549229757704934857389371960149251474275594262774240276420210141773673672450164087268960044765908310087617708659282163296498164644342419515412849540442592659556679151647103616091367681472000677628059989250707867249249065777993734713513788088160869458216588252800726227246801135597780467156758977751136500314287426944734795622519225820526292120717540973907109065781365463751918523569545542543685095469228282255927135300823158243682616991740842505721165856755135492165202078612478222096595808902110012238008156192568856129418128404453869787571965239155226472797572618086793970109828721632384066007890115483975481627572583705013353640430566086538230031016731730417054328346054892666086887310808791318718230954689790284628784523004436855639514231681562738288351350975370127120425960523649428221495430557728204849265564275916207268872487015543417931322335773855876224059381534959137786434929699722360662124635485395752594830030571103227371005062735567595637519087090767290212207965837820887306326326310490007912078920216392820147153651613326326674135632498777656522914021732340680913216755658310307790987789826675790962341791117632716526203862255064595130250949405773533865867344383895236001858183815949905077993092083117965982822119765085513123582282680412115443231616974622109058728301998774690317183594940749579170253826842232158143604787744677161144052871843947038125354472975324461059152356420409892571441117507220275669687991829985250969610964241718436937201628070901297009671197509214897441909024426284638397366192369927894069411758537467284583403077658063746934652013248698886517500355772144876358194186640224866185796270159537626399740203265486660092704381099154956502279131192883716771814984109337337652295042433776002763175126073454813372947876506556760442179801059215583449187362256119887152384536392087400883665245402495156522583692373527785598494403985839101361116916567464562897386461392530283944444742802552449462653795112351020633586083764018865924811776056032340003391296423448850256719319319491465868371646886370548968513100031299040910991618575193257136247838701341609057838567358337455797899818331235407744510310031796399387765343634984225640505589203005913702868614196249668031038646270504461314810314580375683508393777656290014558594993555907692609852959368638225120279183111248291305392706951501458926351057794145855530687660402425471390978291205555024364737888883513688363955729510065888591532158401294448951789325677981739316144416745168995222630050612283683863190019917446919184429090102453417028905656116579810486771938743608628039992033113880663979315662982725948510381726492270262868898735302723475945758813123234185015472012455869571269538036704446215212630210042645294837172152404943548794050898429111324992713790810421935888446884866190428166259930780757162256177711742529004362595430394289366401450180269284563599495375158553122798923318755179377315878159533188874855159575875895173824149465485745486065914923854156699950250111105083658857503677862792676467511811754051083086130554885611035291303899132552709564997305685960644221799533795259637119300780952351375951640502513826228239468694152505268558736035182648349309524836343614983197163428172472237642460665518634660334579834668728783600763805489581097505543556885158390283976425406534109261734876457165157643543897116682800178760619943897896132152557271220086607973744473035666195986687118315621072907777345911252498295673685689430730929507746169264572507960645053302906060630121600761663627810234844397543861012168358197607396150898700611978567331724672529592762537938829620653071877366763664889285643740136963472065305575387650181874134290081721833682850092782352449802876505759779689866996793215302609940869787354825125122725888609381549914182295252723911137124402170310977320226054217018732367212864016479092282179317625892789773880589107096454959185907212568565483441786269058477100950897924852301600632157005335662705054367379070255974940755216249910402069319262622037729127073478824986202521866199927527385265586675517368952763646467455112016520023669358626789254448061962658638315347952466240156912657180145886220099711712447229827386353025482932267336493262880961177641191245492269585348291197193549711537279448057589559943771370775294534759240131711600225275499000796009211391625542466788183610814459312404386202393146719776777897093721714363062478418676346562056849335289041365489042200442108006969490511629321255091359086326000779384504146163318720996359018042054595451402439140474298545492094899299482649054485002321237926279049156318547971079217477239005137069975272301250231739870514476656438915929758779549083150761733134224079107559142172078033676833371784482966365782637535419719469488517300244008880211393368444884830507663858302254932981635689807309519086699699236074711386664350876013736263335339477738274007274190870674236687669995508342468112761072373490584348769573073712089044340197521683717546592843749175972403427776105885722953076787432507301752490235546086984904139943402843129973118042535911386020688596684606253277812922606588398275835266416218973469553645981088225939504503486141275679920840924645351181339587121743422722030678612625633493155065602021542037052088157497345784989082016693057133140167241558761321416190131865694634499850176170584759582687302613670835386573059027519300262509783257212652765663144975268921470605794633766008928422263263415784198333786313835691293317451978933578476187912420494100114499488541715351748321463780185324871166265322395171071084515795763134478396351532703375874731752387058954857819465527320203870155192082319731864368658269529386078424542282595201233427516425975236725214211068477987056365939861019571137071301128235004594796453014962174291608102272321793272781515651712615367961640784176236267709175104679281996890104579302936637208899313586171761170929401127196341506971180803581286559456154599473598586693293344780518438942715257461800637233445478713551895401646929234664279225880278257357034273975063859644110864112326802488538716175927087525530994424017889064289215647357320805539049066186119010413768255772872346489890271996848359201034673733394213210590864465178178840333527898310697693519001113110916253543337553799700115323445664431076074110224463451830618367556774656415447318426973773754000513473683745604581173150848860117358627817128432957851773121967849882965291600235476192602372952993386158236108158453646396889262110764215097433039107775742357979268309068921202066642936129798970180652834805513529673504327528733026968778229772867262828481674733651128411303255192257502758028432407467824043232615262186335378486869374373184151887393048197834201465701677155775784278203193809510003043000577803645645507314681344009000508183316794803292560439098723106783831841633924533335874860553024059945136507074501374701788402115510189373366720080078276858717013686712281684409386233024722660880550489897186925818103261033905248645719256695247769205221494955419497007317430170806828242047162816393679233794285283829488559390615595997650133811132164578183634295917546867063552717711244966050177754343751365259205567604200373323206624005144129508836483792612500855882312822517446549556349385644780858462331633322748788384949484702671274621698337618954302684393308565573250899384295387138589916986442868030542703059188354293681286503439862844380934898292249611287175057389337257788249218329105525316911495663860185993863080538943563643927755905621316469057238885839496162414979777527596229146926199080800623564879704465312331426248536452233296275795854136938118208592035008309199676932210344101766166261258035208521330551705953721434625570534675673611378473886159403346111457655522073509994214248247351800391192815064206174863341781291350301082001227145376942290454290863986763194464923774665811647422556900815793148790058131187074439393423019098588596084847134842580129918778762524824694280119111318671687989114312431478965156963144734398883048831514353464034556495898503905253482861961757901674301179853787825140465978919616385213075284451063591690663518136973428851071747541311157707939378241944747084101850959211443016314214222505711720982978963144644189107022713775801854387730952246203874890900504897165717596348526554466107900512091733765797416279010763832541362936493708293969824327080477400961935390229431026967979112685863624556706987138992830286712460958173911038558812812521142205490427951867089066615698507473456031193773128963550595280278035143391785798326418389919962069000290833306158342861406301274590996409750613904209333691042260827428660097978182727950371419216886928133210232593366310008914893448658593709801526612676606419573648104978866791784034707608102011798220604412694483806479562304533950674421340027242399735704244295301270222234982824380904947641191204061084939972480563827909010473582799272588793022457152235447887505951173443047097761946739534256603881524388368921993767416585869372974354232384597217743889192762586870659459859932357018378992545930361581447214945295367778712685642677417743769400015194198753082260658635044925915964200138097581053752679331186559915087705268673267819985550665190844975896629515607019953243226077216334951434764818568851659513900667463511632134208035900321854661484377457520232700725623680848427543435207319218952093079809352208128859006946664438414428735092462749704964777833178960853979701918346726391627567368179271873136134650569936293689075239387117451390825133669613042599321031246213013714954031423482299788742132718166761282777579618140577540935162312917711401631791424662704069682135771539439283343844608229961390256051451626303201301341125956004775768824005571866944616791125225370290432337245531160618007245673857148721990219431867717511292536034003013423868480078635757626992870309473427580181193171689020997060421680697394928724128107608846570344558160127629185094698690025174903111880356320456816206209703875663919910270438439555209904263349810901732305637154651385859972877181200529897166700632037957031700854775698828413823090903311364861339563192625895951630528811421931849782837058504185894336995703323855049942762198652573214561298810992273705246438306982801026783706200534205079212664127786427668179619531188950351003390790970766740759388701682220573103642438046871636299325844741356808060106368969804685322792989958834169063958199827827237348805064126777249485821714802269993417775290591219016852343554038392621073232271566553594861119871920487339871635895887631102102469133480798128424447797685847437396537624192521066274255611127247069540036651112127432732065347591338550678860160471989025511755659101680053742482404881429216041931801173095095408681588101533024021902232491399757474531235261242767058828427792982494275673051413196957644661136831954710821854277232206342173736782276993557618560848489138517667920569480094201811825089208711994468714476379557745519988670780148907565346696315145931988318648705227144129944528536242337118835958143176748571130169347145307640951279752192788861996881957316594761101739720835011118431812540615614518563361029029455426208453883041592836206196975977580475633757250429039850278207825623913881389144639213932450376155103774086680896692271188568837987336184011061375742369242681485862202200437639773405618779343595954002012881421661679477718123424087696472543584099643422923339938120426978312443840732158692736678409663788307685673884252181239205773775627940898533438390343646572130905851928765387344146339920095889204155897921003153933756155564831336417718080986466276868933715389715845575506496976177333669808153719394819979970599907250536079464877352671262020720762286961499328836301186442180088257226033279173825373081640029561929409823131004127130740599214149969717279148630337223147267533774021262060795232226223989522807601138314253117560936434900684963271885819606106528999444765302497153756298797046126242897781342065692727501260451463412031726910128829224083886278339821734957250911853779003281174623315013104900757133435968011584905986242327545633020156570446895969846943584279648193722195624945411494756772100226316718845876135294247716932756455627201272178615277881263869612938383516677334219417856978256081551633782980673007250759022344778268992071436534987775161882464313804254959990552242755725096118482087341963295993102031078286297938726570646730555954597905943837163870475149549934377918558819975424473973829762872138713338257856774491802274262067408131287304873424177017659354642628419213291953794687933070993541140410593124430844215311491068157197531078479774770002524450434210810381702316147409398165345381539077661922075029456138396097644738291572413131026700312302618456493962778725088204918564722219457563685516065198505897467591524206351423449492171998695375352192189846022010170795446224484291958289028293278643457651534394880346554646316379465054867567717857110158897938278839313042149580369291054388847444921353467224933219397043001040452019778775598857504351871475703701958852012525553895141054988780885244177266627423194604573722965977019048608529754524386215196606261508030924341129824855269204089424211632333957925412801857692685727870497555020412375353206271073075356752261815039899410931415892718696576512327020543639737017118924804833485119743562931730752600702307957865457166784274292717970760147484932767371438920681880901404561863571864158708344594826640622468649707107180235068916300635275302880813325424514105946474076300033559488018015614016845117118425068682300163412643697993491791278863674408538016002041543981633279403355314239614371188516759526064583095440856745389786681879167939765168117776327598999769679215531402241891955814144192259628431655657393223438272818651105558316270073610819062843755124689046098599542284618588964595681243445108570120686070463316725460398428665424711159605093589270060675024686656373054994288268132212890967013254730646244445903855286946044792744178298921103854907845434815980789485573011746133882454875103997460021547203867403470180308802689798728215453233823999280352988554850565536929012992312637173842807337159186716703239305965079276737670685154485384506928742299124466249497350929845088716003141998995835551715256351944309199633023172883597540927509059098779225268199538843929047804113256967150820346051491235984733431498896166919968030973706162294695456726495814868719323768932746049954651467511457465124508447999809719243852193283218408568560684591754394037965766160026795916974829567207651239647813711188089458018523792642561206775004797044059768631919553362976462658329241807247235215215893711794299333691065855018344228185136832509377336619035629126475587658498740622766915890983234689015119975468890404460289029639550241190893622663738723831807819900261325229851512361008934541279203925928240028420844290799820990077998079035051630501725795336148303557614750497325083940923688479991464828378958829252113803361195600023403160386661112394018481829213234165808299773053600140961544133710454502144848988983441461973364781852687015930928108582311033744393222266401635918214600025110220565537066371818797576724091365966277273003612968042272466550393248576172062265055088732812102242764584334090656877849391115530785705200891377420104964156688375860375570410807783129237178347993399204741310750914401970799124479413850919535375415383068705018228112851978173423616519865260038697873615510376265688462547139538014334054632116776213411605002302649583362176323076324553436624957817221469534467716310678294492856118905294191987056545870245312719453349989757099705221271645379138953034146945511601529006972053554793183108757531373922915194499907966900426404193796086173746748943729375236031024299556580503629764776625484935664523520964381892627727344657152659354984570392299488470796647765701847053573727409646032251441457507548778475160111615508032522787205984270062318789670289760351773138940223959933645102454439561884557025215777694796296384480616616831814064400800162353008281693415903164799201414200171001176766098258336354873920064866798178331595266206624079375424964248285215787588680825989136761963274402196682481692402627368844268623948695258353810552763945153129517510110981407706839053702844188208091562691974492812828640184698556778155895777462096765447274048888918147248846611086928363851329097971722601592581992987253127791316012027346643120042160649970507860588603149473843307968304342098626722502770294404810276243332315597370114288884852152041254363789058293745749903137882618697921447848379121317897674722690037494373876009900159603779320109137959502354233023897312176205539349304934523093921213229442057077185890106420174552028097389305115141610415507950221240648253521106831293265782230960248844805973499725648468246901296377224535364637722446771321728162067718939564065174250129879792171569628993853485388852739950169760428097985057676809378637056286279428505689640191551212387673742608565488510003220122505372353456152277805417317354578405901064163623167165756459972570883708949958459830451504093463162136992648749340681746785222097914145383000016634952618174175058692620197015316600480407165752672964514238522394028288580423722254496352091096216495623555395253022105875718451326520219116700286370728163932170868495788217471110149754990003154590221668019428652927054552741450386982521835482580922962357706454157803513899663404199419162551025009125983767216209839730249519973565398862788191782795385026361594509646615007664085707301965078081754837566232193391942832173003438814201566442358270444966640151921237015821035498022556387114091615260208481985397425662315879323824752920815576143300528069524812215866839934600277738227405803709123785774457015264266970401845875840676770586045115397459912250917103703357319976865401483271355664710427864554940666540026505825226762827755999352459583365634734574353349059312380136474483970093606632258402215655840616176379279077866542321180293636863570335749624507290440658801722897306968421574049219588619183145919101998618542676504390842732214153000376855533092494607328868251531080328653292530873027982107964684156019430083111945435487991602469238353737184042132396807824628115220133987473689692681149709861299111544197707107414911323430468820026215795032177989603274565666827525359879804393593646355989323203748749369679878526560242711638651699953144684753971398816690422393234122209703517299543894707975020397825142446267982866924080139327244321552834657937965249886185984626729416410288080380797081902725025297422840073342355609925113780164811180869493661822693545502456584613573988876021505245765670169542302939960489889163995699702329628293864059433492240720830577170008405588402650492097924574472382139380189093156245473041494054649746443587597864074095456897645316020774157851192832775070437560130682286133701853369938101659431370690573808460453129372181439376970917467286887854244820082472099657999092454001105677914132159102388541450399581761676090141943105544244123544202515633186202706437125011989007675137296193401637805376343471785705461843918591502296855695938905649511247128329991086050805593968742319670478101716344697051583086309848284387960538159612479241281794621317099670908579409224617726165483450578661762401721591811599715740616094988160719280883895444352797969925556338295387454237693939205755264898389525756814126447465398267823459163686527491579757471918514143705523307588571833750903906832441945739978968020125872392365916378785510664215883239905085264637787979454208289626479663639904726561712849409641677734398120355200594725499581340432386505112219528421952471903328445045981510994824457901304215893447807718626724694309568996377193255519512149124890263080676066545146708167425710153945127318220928226296055586377639755149467921048710650601742832214372633461481292084158855836797788886339530473284957271080125452790709600452871679260508909346010115178752254364593502585062589891168286492395651968269710781334671639535393602103748123032712112843614079925283409494082769466528067883113372567260789909610261554806356275456808668722636649627488729443981988541217834363247862715084633119022318574685707957360225461949608417582293826511396343675480488334446843691256284914290477702718129035440728628387993451852786004087845539674751581552552516711903869611465803251667529748077043418812657676139434963276285576327251923972957074845747275197398051922870272496234285503180055171385656779669393749209537804324621468338655963286829595078900870400105188428010325165351251192321309841482543457334299869307446195192019686574193030765190406634168049305496606896295569108957668858614177739168805067526134222823151238972982191284306342197663616920704022355551343296261262983652393458878306794169041052776223302711346239681143866240362819198964871253561816593705066546210680746328695739242009868109262471141346764385278484423769836610619333400316991758397248709975466019253858864383652873150585094354868354620443805960005076255381055813692089111185269519382204124364730440561707720667219394644421277303837926635578045826000214177740092264462652531937338859201840556095656327642938504591703532145703749324723196160155580718655354788728887326969146740620409777847616546071274854267951025549638783249375742409821326543240221434394423707220318602664140589189238817640433711553909466366239812886023000439011497594466737997305560008364922859190641033698948412446769635012738392071013733383307642949367210419899563612312573227990442593840009499047998782345648850192095533232777198009330360785965360120690855287070614301789454394421401382283501185681770227939672600149639717007997247786382988721649960466901030928710197612045488563971713521859084440538454936278175928152457319282748944532493498642532063977898979427565506480651238558114758558322835828967914010316489166919420016962532553221637506515891779449706341153444150494498045532140976043548676844946496710200681435905710664543239379541212126343719853531110356183355455101663542509350690938558862083452515370867826284238189076802169089031311713489869090470149894392479436538208641056229206450489875228053190395899280056501312945668335352413964902047172254035771991727999177898191697755933979681208026090054075667065134396677206651683441194337025916153678669518985907236159591002269431848278148781882239193106454209480171951030635630641548313447365446986528054451403998216428975166077055235758642635039845659424572811974738180366720156353395518241622176485836470418283050195691196148784457558626444011762627564583055004415968059882203240364007954530691166444517222088253774285652887087091925913110632151271595558584604513745660596499797691695330465428939525696981626522548903815433479384489539126146394767261558158651855922922360603926872936783318203473900789453705894896889850586283156069504985002318336186062374071206228816780773098513496290600313591469255206162218745191174225522386454034404866493391321687488048248737282478295578479655848787820132400022680443001041384395430280231781442747732661895888218040953594115500878230266051028580279366255318686858575761762710010318718090341244937299244231371459081486441392017835387418401193277781497211066720588182606944166597408230457118607338870633583277791446109989225378778605515899161587731738501851288438049131802369579148684280630271849905379003616119071006733356336508619364506349688703712534832829720646508897074570768336217810246955041874631946123957950425922838331907780035532244438134397100762777937893699952571663309834060447135461430556747432001537669375940662269653695842382499916327652845162112444323747192858902368868325623186421151906762986650395637562750788037136064508214194283275360839971060729199437173261194650463571034610612378621584221895139980781658015993773423460727521652516989871381342164495801682237934810875116778985552637013627660928513588778838899781073792146239920355870876210407823843121238725760181377219978760594315147876217995180267771401499392645882640415360559254782513404708787819339693956458120339925203111191036293112121750815639054610110427249220392424986514680922746659080533484428736498032888316537498408074747625360846092888203100035603587212109001168503847306841980199239688633474271121851220471507998407113652256870413436507904783499318054238877276762902544414303665333056919229657197503639518583449140984959390916937170799768704179741455034356456303138085659833053369350851280979015284580268497759221681119043962379726625963562589054993553453969396401533168483351734443978147513270034765674319742847372980522659552788528700972140873200273885254896671097052389497012910339541407332563275984638287420722260816422533528627070804793183248873879518452959908339629162934153815063407576463922760964516448232463515663167356500683142013416221919299161404117821592428955259335709400035275536483370810308950829181931987019572895771123491065685308863100859803585768740261167002178130778794449796863644743628876071516559426423032424501078879753802232191414077132759860614831166330052416505224894616086077135269077756427561829738341094997858399556219416677755775160496781613482533682638678243743356607026095445266479263747538146409820711040979512253749057301273776742965189011373679465708593182006731299263749539944186747603982927968548731363173616485753725824246843451884807846021406758786718962547895987889583321408296417273231820661604003218748464372088209983847347413426517289981414692783292027118083045619683653626413515129223479170717637270115524182918180613086370641819448828553884405966188279900426222063395742819318787006094358949825706147174582962149330867741804707638620665956524656149949141534742286014203987528440457085204153919899981414537528523473505355008097714489538034939769452425045135385620306341579893537472676066600520168558767120396544530990872763854047969137309606446035980039891101888246627489502442778583117254298793854180226886555059770853498065460215405902468220373595328934873576049127830993713308522104951176077044227952654977582178130051719989620758760162647306447005598610770084745775698965111706390640090304920966949453450655835407550409809157013499784586081526467595739125297545230989862176045237497474399503983920918070637910856777135672403304839086288437586956980038793673934093599917761216404665924971764777545271068783347972053804553287018818147554486873111117391359759214004164987478273150360809275519308802922641864739394901794768215767509403662431370942014347523944396318915476836982342923704778529053418739447623904273076825759736251734376307191991941573131373376535958858518371240298157395927358895446218202432075728912089826092464546857284274084277203341349360887542855779131318236994417503011532340542748552828901109219595618953076300345162980036038078895939183680774631003341203402908113638971538494550496434072672626406508121002999573799213333799411707921732009578528335865590203216592785181085557651573354460984065222428907547397107137508206780207299778184585680383769062166178239629123224756818201184892135954176440020645470894962277429398272721297608695084932154655763008156360543210074423454278435413151974459815309319136139981646202867209356730749506523794864309611089606722338880577854709821183079767927247753868874608721156901399846511393819822839634678170600120266378237833185414373502872982028444360373925708672806904323737093391049794099632587373843409780914910202468597249969047517392578505789214604200322015518970841186222582174647953626734200842282903989059131877527846056037989249004337768865775865404693112605431212126376533302353101913158167640843744844255209129730780289276386773801521410420719817771536410588069546535475606772118616859935295184773404168524571497474574076137677767348946415269158377473053581168443723014590667347107067201971179179200789135765923092113036791017168881722574625269675345837603969035679102574833270035120957920300412614567712681834066342539191179342355264853403231479169126373647266155269632791822440367107723217125716925721355362937527472602274908418147830539669690374128134371630702580529334833673908370873010488943619606606721020201976500723710172277351460916908426068844783890036253805704295234427945666266706760980484137307761887676609829949750387273374279384044060125735891891213645497603383305050463404282329259426370470761999291087702265566564250100148887428423903774103247587223776529961939160992316185129092694504796881681943727955872486936521251336556922433616804060687834989003558240466165924948922338925566213162144939355921051827756453802734692177943478549376236239108180646249437248619142827661670367830120972869678411765822900094877937305897587487651246060094257087364618314072953937610930574007048865416620618830827333300661837015858133587642086350805068292392950835722033638890782071706395123884144681066413464603973210082301643120412099041168495263296529742089636196603692490641875748611524572674998376536804373658633084816660820753886804346409261392872246308750913990173072163109914793495348463428469464694129640307619682773920513904171538655071804040248697720569820422889885518541881375224179085512884290358533691827425615002096318507558777858200687657932484751535628955910100438741618695669307807372591925088252168575102862024172494226939405286969097239861924572037872363266239501963286061354757661037202081295180217151880283339948943089785594211931434249297931507080144558622157257848578832183628549359673157691363226018217702406345015829168608642617175142045774703805640697158653981650184081455430423171255664539341410535668370995532833990081928747509864279688034458676626174201341644241212549717317675266491847709853664182841574113754086921719089124600080854455199893086192705185452384329929976864746598344993540597603893623810948343198068832276965505305796689661495565991280141878818472370902709764819386129355136009611130653557328151045238620849930523342035207668810080365707513953842459210785637801593439185721388817866606002772869965231188677443857117793734345837496639842069027693934740476672635229860968570536816084754385257065447771278228972121153034108421169046505589746948412537669087527734422779342112840126747183101706462897691704808283781452169839265259070669991093211879201562391869805643967694646137823533736636608977955404581594977874316666914773305180152882805659014936202000702430355608042484970949293823266659279942566305086171488116461900024747122908499232845897948935007785767391942707918638605410315780073240926724604826604981421355562463050393274633543332955834701279162171814277497165322776212420287419452506870809514566369295079543859825862257282613046662385805921395474940708154751952955218259902750841816120895731458361236602524964607648650650710118762298649859199025912054586551218700474526456851500059157399410608496558941469590638961602252303423678669885394306727724047898055182003004664869835021059990281722635024579599721528031474743999182009479924670595151480264529754574606477414590177156073919869706966941243247296250095027051200551623021768122522519498611366476806280319251412575501524331770292305310721858177635184150877384479497560274008446944684944014051606255206813908058219807893780979059918136823442009596917094769051973471850006469194670111087762139288503635078844804291798020154640701165677759398358453541748087673818981730223403865715759413335781939934141160125130595736252089727871264226683927438769839555807134099232502752065418493781799257326326511635764451001920878846354180131592011631059739162451650495596605424139507110213878953525915770882612008276222417923119920453654561269084173971295263932537849974714472873847714251248122600314168812071121642347274103514435084312173741040246821724479938210705531725008311565751346465419352342958750171972333509957734198033707870072661981088466620414528287812420781825555382532868293791415613885826422399000019867703826977759459308891485742499804398604392089370307987000444198054298973333020812717307841123050701380328137214872090788384217478795532091467627926036926340217063706683367443840779233257420099070940917927422410163014186368310527584233705943656759941896736245977908909365670362118848003082098764140191490014481110024996516019434992767624763182536863641827804370342706383449710831599733921868993728022083072982284514884008414574523205946908627440605232616512161916603010314427638257780454938252007024322379976787164865043988903450089338984429733145717193240498689119863118407327072825017192063732455939128099425312116875621051265965610685048502081021206192610086921049220514483993834415303722842682962983773314228046191629516056748377007996827775237993024399594770565771710706912171693360350213892272044340601493496403385836481291341585401949499559558482531494789483875001199598856509888175834771118824336295521683854355950506323554829824362675252477039122259652204188291264364385451175317511771208644528841533872378168587114407828381655017143776636364055438047400205220323013458934308915341294588201051990113095387731510357100243704445064360843602127909213460304332389220367199760743788285214851666097273528329879201718458947758098790528839915440594200075709183121780219691846889527566918427978585147584696400666750851806973111275854316386472456445921987219497201567533295966519927031590875037544549042284846622039232836269754454279269246597071065457413835189559916033743143759666071648681083198728974430057805624709951708011183999127466234792834295934829678733815813390052072194250932659292145191153964355681594802728242729652721875620505656471342364851449836676233849298063628011098062626546458457900049963592266352792905062976631558402335821832375947234571737118398022669987654291850206377786673309756161182354413956479770598102695580735713149349116443024241706075547780944918984968738389491908316129457279403079752041273212353803557453055997903200004821206158086659236163718499242165546010741874652376226543574554511766763093110628739402764849464943256889158690744791466629902899779109550743567967230433675911023180244130787346841059547886902164769555244421876089254914573594151322945792196843271836389720344618716426424305867349254998333825904328281702855702852315741967104120845704506385535926535029406681406249678355815497834720093376942305644112889195187818190816015988880510997189225285528405808234379437676092929006641358492807419920244318928456956970378584424847676928259451824849599070528953966309908927173554821003826088408792509169993508432059418144942675033001973077126272757217848332225667328769441053251123681758798144002225680139633539244520033296412163964891956577681747954030123007272822865070357651739758097537313554129825393507640719052801105480503319445388997634430948902405050567182549399656633789805152818975351010845815541827999770460770565507223731421400582853481683756776909938259911446342590831887180362357444305991980453953316633676380523107846653792274566324335555963503216041763875702860767802432915288334848437933431074139883578600463478095089402947781780380793501758363582420912464362643528419004940501320289203478158232187254413801487603352049484606237857413369580629533765269943781528540378717031515219189368145908589802671370341106342539069791392863547572659655416983187845387473964287573071542992720652345873631745595094447318469480579183080705298813885572682433155815073093900182726489208888888534571227200173990504156675788559527996421582502932357604674601035429260875418869467724130814176688366119693285976375986156283501038187032922271838570345190425975714475086063174840024106964957020125013828721959367170486833724860800398763271494792815112094640832517385826342550829917084279682867663241425937923555957550420426732082332184203663502868749180285312243901540336374708341922302046189266570051446026921418670203840340318949144822863100263144140388069321113842687534254670889422007791923054542831097959490812690607373136275015947171959465629086624835748256810410660578513688307319643279958153389284688220319772148551551747995318455741750624557778990927610082640382188502866640742228124333520096890665207915035672549042746318450069404437124716800030889679010136116057684774144979628042200046207214476517265250754868487965367262623862475634160861222411877869973698927373399383023536511383127471376081335389591791455908450994005805207215080433167308503229650477227126527521223098762765752002048293388887277518465312428876720542744673523970180856903818561489583579791839774915874222916433591266971174806747229399318077425267168138812254288505573952557126747870089652190428419242595321538472663759956656052746091243205346339045614366083444134590756994079102009263413148616108171186111624978090958175499849233516820834906629514985772621090480674498059613925991246057762539597781466573654056334538897656788008263398550632268472256269930855904318657156756582060498920879652739585862738240325521300034713422048529559625542846355874701247883722597839558961036066990969012760932175906355313808381183996983504815761644600667265166002421279260781497967798086446643345839125450388189055034434279476692013178191801138487663281122105220622063332775041293975478615446588947407708961209474026946460929848131042954581634087969055132383160031520946824681376270841085172379826393593889720512924228202866636112288307256822094697649580086733129159723646986205390517197306784303840862531271588488127919535612829157067395650654652074142124529631779116188667045332411944551348070652038712012036331664311214615136200510443589114467631156032875516440594199526547673831640714501185821368673410743881294323422864431241704316176086280915006742679095442664338527790556405366707690023535302184498426271806467501696030785999452334028283763434845914636620751161425071398451320910910146392614808181185584576999928876085740387352759721738399336485043640248359400549337631746896852373387297727800617888089511709376318187180199454154350743660457573856793025838080567751285285184139154177957170204009393308491082093482431349828104962818379147197745852911300444349071357298707362280381403119878303244729866573329829076317552535240118496659000213549011382502278522482305081103703052197371470883740564247771811417160946422493698997176180373575693449761491515070074060203229174089659438143379538015328281759263971031286609212707051751705336614350222095383791246914503778628466317846552801690618162799547937874371174637712052902559764073987520044909451008809817361243104288156098324209785191181348484708574501189374170393182435286688759813332441558224355172821583399700827978684715729231377361881694551795005169460222653450856487879523067068247384613420989231886280475690696056296962413641127703769220093734492057347265013782643672451930412007852576246375101125283230009848349944697311993973670154737196762247212367503286922080613568048866292558909689624884046851404141216850329079768606386531329065955403758303013801227864934916978704355056917480478124484853447951221342815462099421111051902434517508460137240556251942241317354895779670617594194031925752841126092044238951631742735928405451301141229670617396251997583864558795403410686511813265266914780076944240463375779828082792213531054199967541325721000450414659012683455911353239127010964754767723896204800312794601696497606620033544129630499699844648025147374107682534677341690813031446755864335885077258704252075593333081160017497357695755583090707594486648837977261430256374108223967680857204343743261606069581508076072431465494460840615183232491724269206332781310749684772708251514346163545747265713680096749722499615918907463078811184447475734430331420785317059254230651145122457180436828655555390449588512445367423011543161044407784824353381519612734794755645487748554817441493788123130036590064455225058461025838571864458973428147540664559784381630320457898888753573959281141095519010248707080281725712664529904458892090369301726976356724284283700074362334542609037387315790739071848638627720084505607361906078766540965769992266632941771890131013613881536300145888727033968310140053220353097330215195293274840240890450054356425616069910173819299372799919677218147277028514534488948775759613583318466568252574686534761840579533389945284707142098226801782015561072454787311251538850936162114887573184804171508244615887921685337045132967662311972800331565863325393100629672829271810126474341564104559025021409923586795066124430356914359231934648631176251579800955699441781335533775440109540358165266777744211667570708969451291777110823577554666987574830541461538900986146978992605304537554851670836532183429580941441417432832617215649231448629983469235269624530525330539193495536145088247392163083419239921798907035139289314491406293239919494833109404923277031322778070297993910711211000124870010892943245191114748824698819337755826764665508173604816397939278530415782410898610988395575928025122231149871520221072039603151803614214635060339752285459898518654419139684512867816217298693116130343985382675830869364840005338654521113806765504092520459171626005265863041081000410360612272213147335986280019347328789476052281219723290634389144788974301782885679567795850697091774074517168128234504392652773738956473895875432501271662913516544140470730612761876397515075507013080178616787487473713620221534785217671057987074840012548813715298041461791472708683772763429756586154116052236846500988683440358718831794550536538768039351023299091720585335801656834734987283760659777312605470901931811229343290384707977881712043257829239629272271497381777191199758085662779931509314367026375772600862531928435334617200427033511309361425722717962903477879575388639599728121467276917850247135121674064238339197424081923610749346136258401014439989118125409679542286667937478102028219959444248301252569944789372013553932480790840819236253001576879507422095673372827311795610166553241288443446345113913900647017865932284583179567043953948004361524640311325711689230851901307341636947600339285463550577737126837450241825889177991397184126243206509966398896828601689367538282103636971854654530200408247032121829606615287021536802465872805567971715267556364743774861967337443510053137883861912235118036683740801042216379253662905061616275099839464543647048596708765511323252577434535207303035836989015968712590461820434751853501831022797482367855676050980187821275691425927029772242711056615824434869061690606097349320637593665841957046771417957802484737929288347186059583747231291144962369201632704066539746099793487053551984243855608101284698616941493512864699943178978957156935237937348586016643262094504902153444021491178254608095048559115752020873822746943863698030232525127325518443263364019694907310718195536811324928385376934044818118387401386800890970628728404445065391887229583006597829810675198638829153698120441256279379816679470019362179467181415910337903766960563905353851597643593464063784243713134921830546835191018669834301255433636162558609082108396664032681468646959977656808347017078032484002047613347914167441812168395712051152675896820404293448805479446748121284934542282460516980054567151218435737759418571842385741419970595019403284281707305407084197066763462384334263394569441932026783685853966880952640664825509719124251016475472834891446186376354091220872650967851662522337914156772803387956029161188130246393523265710932048359659845003703596633069497369258008557562729280655352453368545207347846078093556768989912023722295144546912356221243041046161588723241363440250237309653720566178392078339569820205938033627360873107683031142147318190400125449698575546450376139425398908909025343019257251983960007133150383599202613124603203647659739046589778197908928467392574576753078791246347109450305330383630197146960718036285847634006077972779714053586332208942499338297560492973014916442526634524208657747755036773779249805450777151773843210461727645060163597664679022467218038842740410674195732272511128448458015867132985780483341549730356037851748586972498863661536426437030605398344650921456177514359605556480989830946863067330499103768755015339153259189931040178558974716087064371732168604661142617933755058709798197297170070204043060878518569206071229432466978778387506812153347224710624459271900696855811195975388441860454432288882439430048198032159467790530775151352039600063117643251747763062426786450923840610053419231112198959757139848140175598195179765095481517011291802010233715271798980167467001461644565568470531235385518332785645240665730373936362826088507057419738295315543409211718203543455529367711259854017561606936280063082483068262411777657606185750250445170221678151091396338636002382559220491698694584477128335007242454400331618017682324119990541982786042165592501025153983937443478536762695446847929646802601583770382955120284849136434632745665207246201159735700480754953222158241000516374973879129447744056583119971712580639822889816243455172831717167437708246827623418512173492297435090246194776015050887295493336994383114110418975672012048026326458376957066153348074115585781666171899431585025543816412322301650370761243628502966569771339654637156942177298184640637618673012820073332288622639868439407567315327550575209757281620970134810676058582905065007463851585712501287365064978218154555604640172175088831159770290462216152313931180978947704276955955472054786416307818730879143701025751460975895750523324139098990263970696941740297559641159275245198891622384691551716447146757452580285008600631893990335314762585717863732294718477591352435295095763268787372196889760374061591815722308896390234053457246101546360822011456649463932579560209349302438891419906466693070438507089301994906990593866709351284487152943033392976674638630600509934762096148199986767379507051147863247570049684609907744250825387318613137516652233510949204109345262234177171815836172503355510562440304846352493588166755155054039530085964545960000341374836679418852416416054071029284348736617876231588706854578693775207176756348303671033310576860652165374614773182036516624421578521924686987689980620687199683602277817100463174010766611634754976098047270293416383533889093563826227359118365619324391671609727898250315194683486733981711944557448312593924881942916990949657920050134739021731349481344405379949697332735490941732185073162860102152770833047947416339752043312396783158459963307197662588135050361381490705910240561395552662505532663923251466631153177265380846450385034279999303923900385178655170752311059691508999341723452154552775982627141549886144024898613854547349729629247075165885885948578511168903484265752239880297633617492920181223891576032279261551915925438911838728974318260598485284233859527497966570527697408101411748078187298523829446997674610944576643658844060013111510379090240055853643987191081630812086708706153867491646141533826801222447489630020274652938410903221753159373096717747448058523757956735196302591999214595336925023411625273468515977475529793063915762419058153292270704750858759838528988028647094484632410126403655378110029807009749700589548114729427040821302661742782822339851833326728173072616333346822433360632909304812635981873721735641187158260276036147109203771328438446414480748740542277751288728476353712527304261565250048632166738869282995549274196102598374543922307833061126725101429612943203114112860989471891628365415797868360891092260893735046348111344773843886978130456776772989062876505592135816462636286192224477089478901596500708118458459626683438159368848976022659176459952629952711213066566942773790841892376601737878665698294658100743945026909389053975994689484118308953717927930185852448796441375122953430970929205433803213920048488538789685468696134685735307923974051537309624274750562442563783666544621788778560136373579950700081170322491154842055034694667139333081272249224192433721360455274674121242584832205392264355528261109260558366322584701712441863722925951188809940184081859196864992753417512292681520204834311967485332765014273155168674599607217495132162881128501379438006806549987831298666133863098621954946716725547859281885030008039319791965484388670715572061579030725714426145272482123304376110948003505252321525271149898837027123541629997255625128914450342923822623384340952484191560904749169484739099469142495620360762388208454714068469388343057641310415669513852478467276322764530175480626364996879536480661907506012687953934730450840514195801608942417745472118476410975296385582761693721911467163937814814824126827865190169828865161274881357417993969192329346577315503985260181026390412240823727928227992096437414481724884069979163597612057039962186947494139570753194511536127048961648193457726104075057695371374434169229092951117870532210259085490270259960635330229773086906154002448759776584889191347162918199288660396915022737494385861253610763960134194072121947386932050244792900681440447144470093673894137411521124692838364675497272698454335042920505546502474672680395845537668122092594606343901623566682241810680956119865168725689387686324424763860315740159120433695151729330079584188453238059570912149623921864916881015769799439193802033112275166037495099842199262936571641139463838046529992415248640681082532803026598354242413785502172409222477459162644773435444546729017519934220020750386052582259985234431053707338059392292175920198064592769709254400757273368665646497447001887723316306603669754806533007519457109838720673241108711012764163764021365354464455503212745023949082565323572533355931673782096175712435629281159789022037189974752695667887443398308123898381560442306430085369380294379843027259942203391946743424743675406616643889816340711716590689180567527613685009264079266105977847214888634485569186149036445053720042834235649202451486049376022425523383669080018958829561493092722614840206422737579113840967152744004166635476605581803285781427094296249808087872207090217987090616593897842521284175571135422741723976167786179006036062331959498698079085364891398065554688120444334730279068031631300777971636507775077869337585090188819786156782411455976599282926296567915754191308802761185461553642163362599542392467038115318399263786257131245708291837344516242169636154097996472049498436462390969767821166874713479866478760323933345055052308034469787000188825552817152329727683983640353376709107118702722595123255006893807963942729862997386512642191229783008471275712362282673745590449768822112420894402945360856996319803370764526272322317414845592515629425865167507588840181324531228057635164974489032577089776777746611879042139967636851879606374106373751662326685339020699618262255296472433922626250503985553768348245324271597009957173369349976433826323334435963165080056187532689687325626911216983487667285543733092173361451552333545599691265760930204701492934736628562637886225368184085877166730806932552732211646767611424136004089847122368221051032132637538471752344144913625095174695863861582663196329970764699985047997605849278681515660974205393659154090880968969331372309844559464669342730558659793088235059739174286434475147218943592273770540885590112951035590441622335038725057407518230906107178593475533770591205823947352927707168749211744164000235001702460167271733009409124583974076643250629279315743671907863268390727834559554739852901247851015826923781525739660820263118334896716225630091418224406348660561177933115576361231227853487404878090721195074956799072406340420600926033777032802760608464282189349789396249299286891292553537508626620334856310512015529750750710305483034245415343714331952218777883788051780205385452836437263359355773923527947857677590988568779400991759338903295355505190603137927238556762810471302353269334761343805018228596786928125967984023889268391793036660754686971592513506378694315200154900654086874220216973231313133271035182681951617263227356538085598913926415870283241347707134785752760234361088044161908354620697601308644009893528953903972178456216652038022029092686778081293305980189455189950279736574124284540636646926053751573771921101426581486720037788203379971237842600012078126522103059252902023238287215648562496155304093132789435000363100434897049003966278286462314681546386626040025459778748579228398987996240832984805292785488900025820169264849008568283828119914824375124963666992349663125745256088818882582279882045136914408412490344568856950964968837727149578208024441755094587301010020687621621642523074974288789653343052002794977958592982500118598259963167060827000615997217364331861522803316182974038091729245458482805919812879117424068808045924138446803956299996564386372429162417328116224398731837114374941254867006546095033017582770394195964247165001735202624599006724184799221598822741264828454683583311781580407549121946251493757945798597301129605346516641384405425789116322258483483905545499655737618302681601777646905493177246272268219848938078490942133576226848154871461860368473611488154691545013987269515689073145479780028792596130242176255845954133628778470210372207484145507654619849064604596060639999961311312835990906699848002387889086621513927365617821887964349030873332444946293902368723068953531813822595223981737006148932293864570443425195375186544359557489368999047800404544815037740291473873921199199119134470873964399459861098392793454309199110688147540572409022759949251993653724337379544610525021581515544785801204257151491079841325964763787013157571872133092921954874361394993580114428274368599606827975522033644562669722677915498467336917859672195917952014297515015065842877988966828980975992186501857550622140062069361678554452221872346818818611979086605201906024753063953004866414203846110950243771669083768825625381726842265926890210513637293766856912148533342904277527191246977782006013756066192096090565524297281475540464736123982818451063916756925491924193247541129550274672710756559804288529718144417262650109484139739905520556078140464170884204804223014821245152616109053887475542790585567787778072330436923356575576082223265277646145731134642498168532331838066038574688553589537626352169497771992714766458341722976172320125248667151496461900084910865454384645641160400731190570990066522267018262119014122989671714416999296033300443190594617689950425841034619907538597807183369531307177937674876005403186021386850368915906069054766638342869384778845085978133301189470106150074055026470756773044109639760886797257167475915458998369579564858300956500019362480872423164727655042955711508326576494391961484510724936491926457017396450951639821368979252071142592701277141410929944864449850437525831625902542916871828137163312241791995923529255525378615989422073252475916407586880819726089742272546035192949558303047690538701754195449491970949792165832392932014328421369574265762390245355400650086117165828523185009757518625111844175271796171292483306317774056057219235065922677050457960553454937734568830888830844980537320315578708282355978571084100034132368941193514832890271854399369633821913881675648734658294453443745346240105510770362693559233880660371078434780648416827257600823279702782860895162674850687417754880974328394915184982362789861296203944869889937457404454203176373387849836294744923519972058653008603258403738051360020062196833043267186992470985981680980384237314862019277249813888371951350796931726441400461334902658810024241951149547089311029864125897373277439004349457579095836015217303699635031617389010418332046567180626023431784473477884445195921718342573513414289745729733981107186161402378128830883663306510565515309141620944914944196193333206420454086744133228055344277686959041202396142940944853382795920864714060702081791653071741957292996770080303715986177270048178482955865212619001202195142631731606256035246655527858688895684195670344365130817441763529150764991392040147046582345161780260158508083160734067856815232922202195007848587151279092983051429957064782704276396413698479664464026902799882201520626107475520479735168623780516689609187166933496924704595780870825217905917604355965478457140112224941049688313819818043003088824370062144214211663061108930227706738693253399361978554026875253029090044708757201668624382591055839905767336085670743883910020786084369764918726092429688124405906308501713318794035543526838149367653455769408807822732316197356345019668724085151018142196725878942639963565039362413556404566014163201748012805986798736390890290354821573660119685867045373115164747984320509410327530770369422397739150726127418709006548552184669953732161423077199654047683456025521250452019902900784014718017484969349868231747300179297376316923156169008213661478792345003743862480958426853927390726210279510674316200837771898480232019638597086614229815203346948268932734515297797742082456881838851665326208945916486405307014617554237421526267154934775787279914047341619197141506675696920034762020675528994221203322587773459850342551997032828019997994514308721907422031461973320077029787944279547249593804599059589539789595340194997885378503021263283667216879213580981554487694298902533549260070735194042562761169238216548366160256446468213956312955978812935962786992240102252074643701677498323722471767883881975298460067661104348452412023267825192265120152471892475793058827073930872630571671207254152307570837750227812711801881671241323292494313512721427116369545066936744582317177507049324644401760283101890607590490858662396240443019131669273144861354040576434891222391785821851570322950523702131018380218367169823695578440899563270740556775116865783958995774627569879137810399912275987754800954302583765944895668959997551086516228500561522440276906959996799767541825592251038682892733726229501877848553945588971302213190920392238318420808217713052414134702430565345648726632804678430182137536402510670024585110044297423844439613490617058711224443942382156611136140935766462134401261340325543485407488124392895022438660098585248421871461395205023356625373282943729967022580629052992992501369209515125682506785336129932972275756394791275946054698265258114537677102919122976990439123368490510326305014188403728965800248154735919640902764428085112897335186423259085756574870519643816981419939331325110735968506005670885125481647364302726863972411524671443298021236281108866994120846743490188491466700863030172979529142358116424918660007604901207949969422029947323116857088280964845266064560857473078084026720510526872814501823497491012322519908691954735563647246321813173666896087812905560906607905315761305544775703059850661913683627624863101043094622785863961880820827285906007139246843239235381449622664848695837843265639104510073282423964575350230079341297390882079446354370427726197142778066575114405845403098410697278137825649780907996391457967545072481805956298077308083587489260480260585464009487056181544327638502096105431170770155804016793593518485941956510488840692915465902711987604468166268136624464562432607603873721483645691436047891926651612406364985040755072109144303174678663501452102501025458379448890247928318443951246384809105264949679108951706626991854980251060341694933213409794667184716509761331561677826331174090344504137301859571769939399726245452941462433077719431602978766628391011603712555400011073489459309302031098179289318761732037036613848170750057516254110686666521878294588196054962778922654491315352962934219539009026399230823030405626867065818617992769365361629392595480849039818109847261780810953408302726187167949903636887198076565294543815513848555457995136776521652530407067435569755272164443281869491133620012491501788669251678417413286988282960142952396768216436197023180623729956955379811996674977601627708001922023777411940400198644778846602757498577933907145135686506014335857137502713465154139593972734451129887957159260709994406607851037230905075149783542008216526346221321683819105666283131846416605030807909440255581749591454878390869280651730721530936014346624867026349702247780209042982637212501071908063994192748989433336211235537125845743693511080000026275722008974909312398354373383103651423249057392630263029940730207409782386310612994022093859796292181296790048820862029619138014846353560293813484352718628912097168753999025058882856481041451357540580437910357104764922121957482516857573391801658515808754543186872637704249914778885074697940252838225136804762211042750875883510105331887524833857636542934186309360647990939660626736312543594365663130309533708745708376863688776098615391878530298889100373162865572247477017458383953136034874397207267534299742909124551817208653583718292263594819435509003883785455822866857472365096108696934768464174701516599188224669091387547086975238529709596999808249913243159772018820573209138469659556147201466377500966935264379799865929091265013256612657243837806728332722855040884606111455596595894559407134553510193617449315520186887592952122786713210765523887119691380771691774940083242000537665576492204091075309255087511235576255801777588642229507537571589485528878300055995754771564458948240781970633910120806800651192883854104637743940071063984535862855197140560491673579288694039396795119668068334184380840487606212578633613948401278798172039033924315849758973748436697685793070257195807329679159743086899228353954918012566410754231375123624816574462059093734769298981943839137336683159888474762993490146679242294816823176978480670473707188160438491717137815057426306773965844602434058095339630749145488951181891641119481347038973966884460329722686442436682461011635606233746882879493113846646526255225431538376484607964446892664809217147707669115057106475034368984056150270067232624540779888672868203436647884245428942785943317429194795398063074461231264493912693879670120196685930411019918549191783620186625038740364469631232518135783290594486684354569948879787614777253422652349299085029547690637705969221825847953901820630968516933486990921148073927967119623238899715017415165403576210085783694890842121891481551535260806627431219858659891581223034772669513953437876922558808974181919052627960106441196898631022692052571110862735469722336438559523593685521761892975001028466155108231505921094663100388995868965402799039290170576633983627039554987786507952995728878733531286670206195954904750970773263106484852583723834083091798289508207623884451104449796946811292366316513018256703244600039985538114164953017100247454305308359288336378517595523568150216580366321712642443993200523235228273529015605400013385041415862866767476196407052987793039240441977850469848313322059464729119394430643942274354025750740446845379058914933071172775203538378364909939207348597952572711299046714860718197193274907264862681144231025392352805006736033206707495520649053882517605895815463952362887084132084637910266505475416621223811365459594610179765236793868571831783611783804085509731500490972031066966279955224108053505436471482215165023130365435299126251627511703688845846638499065037918417593902946803277372473201118858488432088037890147217870028521579751735623387832455185549498793785920825185033629134003690247743379067430847170943058170866509831026704854266334543255570040903959185466328138660858854365498501372973865841691864010971166362705277312329668646866349761096637691552657809886555961328447640438075125708200573719665137142030713221708816792111271958207743224504036121234048543809175328576596685128046076950002391063410420347754563269063662500339087700286540965861493413558607211028416892525963427507187284770696624110704785789190637944678060623982469122924757236371732192263523204247883988886362630634376347855011151244845126957627277390105310885499121070356297981230952901773593350008455470703532577908884742827316386233320992481612966418855637457332741215768101630066120209881233784227509585291801506025335338211715723408228412336018779775022530017895131118210362380149489266938651855726711564293784988714819507716761166927659810734753957582019281649885350689585634553502274592120555007123669634234715821958599392853660669541174665696172065027787699358140327603244640566735457339330070988194569799922391264328929839311667505961025121005991048143342676528933118169427841608963102693710534257177285648527132180985044691876123724206642243392038669739475873312364840181177104345755049087301201414818195894610995930674710560992804783614565496993925419921265439034531900442514477444076204160094974292486321459831747126962643389500571054428055031450612419139913682183669796524751602136703030906228712506159101006703476372750117992142813443657832213563565083228855423427736226395273413392113690318449531121133900481195251422318940081515628986272858629859651410259732106836578290160637509395984514753533724407531984342927744410448488177238168217159026348313884257582748483116355683328563987289857400325043080447738625538655003190607506847642577181344781658797252453164810932617877663140667488902652575023144140696588079592841124867794008149656804251274383895613333096231663583808454692254360427398059331179968231258083779817990899269749247673708711344054994061978961316222196325720824958870512779789792096211267718351846687684721547260067261171489528522353556633786104759534936691807993261214714004304780371840976879790995548888928480810530082777241366241902884016424366071251750037032566689048959211941450450792172350718088367705347485628568950401018121156539405232243240779307536734095018096915684803445660545190340505350774770045557163831306379007621472310345478377420722999842320337576437961918345842876328395737019671063772968523873531290626453349600930393479073488964750487373918140607019671639937853487352218302231629023891603570500416503785918041152119765104476441408930079687127133415905796551629664164885931327430861084846126641270833097760399684233713309958468107008145607607844651031407900960472816590552603937827307624582477177205612121467493825877088977740124479375021443856363254598052728891287453590799835845902589071375509522001957006615235093079429178749897547912024809771626168064715622974824922960459946643528389345634497405065570223480883484555394680753059556303488824745989839029136757356666081053922875594670200094026601619672018972823102569196955852388480641167272921362168770172953623275682796755312320713144438278444724866668865606259948481833788461570464828827851259230842399669514119630552006958837065590939192289027228028735890663516060708739223964127774492546350800178520608609334000637668382299938529108462317718855244448899043375246922412969777501292954597239623770351555453458364182347321295122268736315927063842928666439853134090024453015625959787773256890310312656724415612749401700259768449656457602167595861388965465930905898518393440559259511925010272066055486580484378838927755017484426452728815129298390973393282431741154229413990093395084688365733444628248449043195013244522556650492663852943532972476622370529674935479890322210958776413997512217602877980980583769535869592069957880852896735563423062536634476738640011037807368771310858168714276217556457174914800167130804207488738361120005714884703984805460504569445810930731483053138738720581318519393169552115387270043131654445851395768592592372833744084525205120661916964229493509421746085086713063495161968033420594872547251470019991888373665694425291231470991685567681903985133934430724759158703542019528245045641207549423346852122872145529348677519229714711550321238227811836727178788185154204536461291870613403952157105981772808482299445832153688291233456198858214755347038417695083662360054735866201574445071140464226495602141015886737433783825707596198856175690906659676519006894149938220319917401848888558148508778667369362885617342277313485709424669202040985683350104846933448008556770219773354782945189587919739892726002636008997018000565044157221437145152288503401588563886610209240008359801937661945641109526216108302843016515906419357975887466051810916755232892022926752684299665927360375524123832056609922134055013638704648991321701117517357891392013996130819908002634893557364614664344674669244690907257822348148540377224497187329244775847872582806520587726129441771570393985954316522536653996721614817384420614236686750256100346124045528358572283142425905662899408392747766740493064414066869722724837898800033462185648950724290768787801347682880864427678941231716018030448217441502222109663199077863042684211968252613971843688055711921949922405285164628395667452658800796917194665832726041937526541913669071410900370049726662182244492146252278202014240945091753243456006804671409203427153729544455288388839002174138588339894770090777272149136118416140567368891309742996333602397056838824843963228745463385501489715067492001120743654148276657627531191235923388652876219364689150102204065779249868064771268405391155680095684953927161302662119556994776667693244012050603630431259858474221938174924220145427006322421909635965177822080630517127202022090692349725813497342120452524497465386313613673231876982173295726145183664741678703334717216131627827472766647908508660975480831209042928839139622941002106949882276450277799678682761361335947442510919007725241006641173061923120623659586885756775730382816760481637641315904769091616246960411521476013344863908000191283652759583025629158361147022809788999887168716388924097710957542530748293663355861025519191604411296541029789981239128308483218039833938059486555931469797515648262697367283326036322382686080373046854336571892645755271827198050992131442280568525849902489160291795234901858539249245932817497057291061059091320077170955937440881142485568726714822273273796864325012712249324716115594766829794770480973842399712505889258232915411016137289355503833210663824999156211498671998016854710908966902126778533248878093929204447882005011756612778576509803481176010573215659388662658418769349964309377002601421436782005588380983558887122577636573905207789467729125057246754796634246864325640712618645413090307087018340318244655936484270851296306922344342621991670540210676153739770454261420167987020178024329734259767645753064942532577910254169816903834125575604358901258351587134283930239106129327984627774772881172070456096713345616704565146041911397405736576919806597470144355867040769951571812917586903837231822071204420847790056671648372597932415915078189901976128797363789474898314466724135438612346683497159958231581570563933231240456424292526480790722397365534880105712575948205946108239986226521180146285778329071276110435774702407077445548525693802626478133143217891372234789554474402609680014816716488691194485396630695457657591526151526024167521169933031380871021656825665460432166028435146427530558020119881760750394764055188270210876231595298815330622707751324375058960313804912467270525904983029267862074517755363521991525188479438991389979294437472744685701632691775210194814136109722712978689264374837527722724629780085513175003696911609602203190479954486133964192731082846803983892768653963379271147942534342978778644829396264082958994109130194495261352847223447905062839044765747757831640624876859093726290394388893342730622806326715811499176987031160227927866580795488307114551196492509925323341802858028661638775525300595158728247572772686687031622098304373773218606161482184435748052118502543222328773613401715727272584258928678151857910545638018585366206973565151672113928689275954263385269605727179707941480153975310660124139221008745249290903258342387567862616419582936487193006848037452710551633390206362439706850729334134783437439819634075365389364074076398287201434961489385380330954476625944646247002554301879252450527010830965845372080218206468404547918862795468573900367111462601734008370774852687613429054849597648248003846163772805188845437766391612762785829970676870650152521616617402499485205840762391704824511567848482632550934486314443074961758092947799689861513064677963814096300192543639733176128951307375845556695352632576087647713503523866867986485688169234219652370784099759363820565947582381155797862792400862697290837954638173774619102558345004430978641257620752337402095954318560541837612278346668457259951025132793231263626352781093856589568406654615531888917052417444924887051353773209092953251628698040539373547995092394276378515390881205413624297123533929405083358743085781850300266677391317946338198076667428896126440932909233660306107806143733620798052635688398818786803470315851525085040350554666181849068851071605454400287784460720177201442873653563749294432531860386646972276816067136116723154350364500664558631235534878875765708180787375508809002592220386727368000845250173304160507898817852071593788763403644361338631830883315988573120856064914142888673861369147605439320845252581502531786745194782416843174915672673373445130457112787294110655164685423739087158711812303172881350457100216084068203902884018227337716787100396977231690856719665899650587129622390522156944826801855088980492962083759570389039102646360833752151964165472891620390925565969815482212880915456493276022320854339567841824266266289952307429920955576033451506286008264552065447018889771881039186529897270145530743290661342953083585969973233472449172816092559363673041949750702284552119427384089277709661340129421101364381156206058907378530240744871567123793386478543760053971087040265741117384593734386973333304491181918496136990665079850038267388343726669123065019838832988337277114092990909608971808179264494052303229131789124252215631282228684012768678997155103467570933002299634873523674187232992641530338260740380374200088108287662421685028222668455758208211661834396480051937018943963632774725628040791898814006507331628609372620966516719044778218624081562459417961760151021803744695633835970477734944678606585992604029196913378989364781087872968163395697686012741266348696888549073849877087981314113070314081105524318279808348129615414879600764869391399133405977547794182573608055682890459336551621191408260984548759661562852758040829302645098505974363581255206362248316657752243805636595646727282199322628806397640120099448899159155172497635785292775370787997418415251582923906093535969800044198490747701848896912240121656632643914091480206655878766346381229691074746389016849113442051301388157504465673124953572048511911269037458845042541551087927209229133986686552233570989639980469238329974758623199297289290049907837204638155157402631825033201182396918194008631867195110405113446893086093713333083963468762768781799453431164902016266292362046888841841723653511155093037898007079284242122629742194466117742436364532014799037311366851930191077776813703647250975507930834032701093623492809970791647524721547452280808223334168388094423409753977804592521231023534813893031813827009323921971888892813922340479110842910738855661395753805810970342773128908955910322412132249806949981076650932590691797586256029667115182908623025448670110446200446952015561800282181424838191992515444544823780417008067939911799150850920109214645686285042942598079824015056020233820423709495622649658748636262637056990970717274316523003315321665917425458831784934891991372514080075521607781761501451300356571376077285264460045505106180195971584284167730408325465595640859806056028159700460438791811754617061510164555143257332313370023873441829927222461700995061393544085140222294488595928527176096225559956285444849874900205575121967435436990082371401832067069872823669227131556925333177484344929807750572742651219076596823046288202217404303184806947622480621269354480380139500153294436043069651171308879060085693105908405491976016589770958690235440907973871810550022899046851537505385213158084387432857441499741898865180336882382092301159167094051990259815593791552859244575869208685915264252959793562589291664625145391730511954116874629388013853380702883637630048660807721727052400757835125426270403439934651331502673795535960177151979623439157805884468352522666116546191552081549475884645760008657349669031101505413077584603460526258802474418838651626723276151930387102089271868141688905223644385308526931214084228109690976594812121382908625608282897909478574198255855342679925168514255830099873349285575688664911902736201450462466497513027790511524764201814146228447078739961091309323189629742334343382000995506595006079980086874714520840039872306771741335454723253313430482782431383981174106025642887496610787976578271529192927349157648140062708247193502010283451039539660772685249150643686786390751702065438425222909982652637415064308891801552622470806362264657599045191488831423848832503088610982738907589767977832011062927486117008820867070312918247711551123013084047857774055592670972321646640657298131743020021858203519138538975307055810882844229643240007878681674501071856847915474260675019328696656928062680314675951959578506255199711467176747391779831507219671992467800308271364005792691451141482756740096297009779318989050733662103533854382288696876345433403254787692108242438105969187298897272117964657977622017444593232265763259031881268365270662757758609008170223546302851921616303453404995958781539305987728429375912811787444139992365952737315098143109295374321621142831111497922217592464639391623840666711624365278584232320402660257548303137349641705456604317208302011089809885201241707361477272679297549075552759602537490942470955137106226409222030523389643028591715731073012767501676527153816261474418957523512354567635487773107549443425561902345281410517247794647780910444737752473057334494699423337764721713423303083142147689736731786183163212823169383777929862987171126980122966259122216791016682127900007929218388106669508083349481418734217454666048389131333069532350756663214985401819530905152732928686165597053761951048318345756465610549740625691078541118085930143150133284501919013536320417443608873317974793582195907083795199383715835206914174915242661879317800881096025348822490760929625078053507786277720416363664123548312446202572606201247713354559907697949526153083379446072179701259817020232923824263520963305807934856233819860275983937617667734806450173041943977314587993976787080251643000830218516535481671833900682191717789984540902430766256020085707127505223843481421414398098687236326052426873690221343654323569606722581198429147814426932033179191711030780372174610211014369639032729752051405768266853752343257626225887013266061144060493160093463799663029812197246573351258275981985934148139206892198420851432472927183855561934594662289639234801105466428594278167217027699232129579013385392682660975116312869483633417736448971193921226396239502752917731660925872433984859354725908733780416127037141833745833559434365425324109821943352416614028539337992331023711266585691738030095734563582836450629075028169347692860430968979226543896652415512545498638097905875364674015867647541411158765087761782717112640604873910027053720776459749297734326403090724814883722298910980871499513737989469867985957697172172055635758901392271374576202713905280224924479996831266159899373068458893816332478321049292531354988452340494199726961995419005636008929266297343359219473067342222908713212992601724144717555267441879616043155335745969273563788910910302910898122134495976899972881057566522390525445772543311673087245585355088175655624182650767573428629686196079295821315376090291338415700570897823008048578906805650521415301327283191575094000686610562641199790626310983780542096919902005060324965468127145637112243968597359132010725052402369214429632012970926070240404000638769109789751064902386336252549082767507602673361489597911888038358901467824098458043673184545797935953488701690943101901101578400110352424616367392986239229611440943462943992996937099459431481675306558935714834148418718603705409075127741296541795991452528436580238722654194762790046671329709620214345539291195161054952936304119148218396628935665921664139437668443727113251528590333847202609173316961712401006727216048215531902803731838981908790661712988144137041787963351859408567515086972935557773776545019305102126445604521938783481487952556695046947568769549539888750802129263035344072257393585424865593627099793597578951437077654297287996369458693060147201634332205187247816278259881561837788326927631422742165298443428381710738403093091183992015054235622536475913780300596605209055629947953057623912676545611750519470546036735225209250830233362181587040870739530959737299483746906520251218678509558255049894592702876416674314359373646969349016749401027387344055804325591167650502667344067920919861462785857007315398172643913604693153611535075340484041899435271954026268537149485880347158046108063063296472476113317434087741505618166645700454991364302914120185400678092058586720163927739396697931273381458173273518702465005923721160166887228112170791258684857867818154445338031078593133190114063616899993387385196159983941574889207459289511718185251539647917049794523879582429625504869243809296505006683049118522205656184507017274339745939854380046432228834752650722543372736532116221849631715925195024522129082962543686095163897896197340906807797179349569826172082073229728358751501127104253149378008184132642680643314369773023411697044094904246800713490949191728802980742694611773771680650709235227019081008467752242480070171359995392173661847845699409079622184613671761493924599145467486191121225480026467076514883411283348141561388578105575965943958514566795725026241031809925972574042885230880131251634891500668904227331247035360698033249310408161859782323395865811595844709118546742297574835485315044080874381843286539939184938877016996848677500899772846136513261974690296476330504874345034361512079371731494401419257372393128217604234347879755866219247021366546391286413659542028768205309714898914108145695172180881725938866861514709784991521024035583471563751645593463279486127016472681844433865306203721560268813954521257840201716165588033929898317731273191434140627782288660998635208057686169529796925015577322271631058967823152035271076884044226673466229090680640871747268156804322366485217872937711874349960861726828029639930710086686353311808665170736126702622205674955441193607534660301253894154951062421858198732018056700581859262416179266618173271165644493001705798908350699906409189439376747040171718543616544753845871735114406577593058713569387318414880069364975923023395271606913201962935541901479688254815259156558595388865296112423841676453412370427883244821943370158083271837799758575259945879848593004849437429883900685642031359198167100632105401741786758279709154437187363948296031952672779782907037021512708455543952786219034091779388327398027310079976031437176138004150127243815145004164709541475158457992962145556900462815870926327392602723895812444272235877062737241898579606065903449224382711441154185573827920068735732578191248477049649709963975005084993983323784141761256559628542646039717818955657853130371491235097202762541899336775197798500220179328787572829097989642034117547155233216372601541675524972742019299866636919961673495474654267096763507498997577826951796432409124813283467042323142564472451254563554183796659617395960687696493546024196573988220552919715743428621620679509261594151868125603661052835591214073350506939666089246100501493703677817183773334723388114410261298314923989578005988896140994273848073860679358483161605503943741697756985884068370551824129204865439789720210766765999228920447849955281987648852228201404557850407903827135144829171648786043094666916191733586903765505962029098142222330690609057815992551779049250157001146689285156235643018181306319604304271548114410323488630692157252311462035079306999554692268795356407951513748062947987391807906263659841112863929062748564940479472877023336284749057177836437445956023210708673075284147779503918809172803922277636879673262822993044765151805219018914543001813482094588377469286488770460710262598336878838471052438160159524618411729579335032007469341974123610753281368387795940515717666143218756634214336954959176709591750221614491127675257782519906254717020642720576184472625655194743586229549931731391045720514241599462851493699898730353324169236088378689839077300842759648688665007486773323526899761427024239079622101274118231319224142121579908313337481494111016907235384939073703856822331463435571341308618620979320854184705302893928375058327870129212406813721322575327853715691697814434652076623224360001939900963062771904549824786508716906977898967339087597327733980426174360022613340058691500534296131225284110592947965445194999795423747271521797323057352150532046092012756632803157752904481264191765880215796919753435621281566476006666630683887152743266614118457350899265956504955583993463856752039301778649776870066447626317857538859061959590655626052667440459373497850160499798767571892084166440042191083054630382209981420513754253157287363772151120161101020390586741600493134944513256605481922749250963952397012977913798701031157805858915806517339643504793382072899610777316975568595106426356438350726057016337893521249938057956019257638709085780709316009945752581791338161647443958926665166496856129436798611544533641919407598970054589004278149842351766533000074726799065441747931430744946199871080159412153067524419463653548358506946361009375938058249754029097994690580635694629082039949309338526506867822834381380409500422799092265145863581627327181173762890009678466169023493894036037194154768692940144139277016808609532311172712732984844921651666352196398713883538166319521517066032155044442891751548846916351510433499713258908663616694856053575023644449261128567702504741767642715323540175168821810076144932932666976987660599140207833505582225509972765959954115562657212164159838696745580517982424986386707046655800715031528263432897391909776844860072194231532425805988076270472182682051433979321452563389011524228217608731758864301969652958757216006078629387379755610177205463172458984551007034090256375578741233064444882957741125173632339304176930357576701380113449303824729519785637769768646404771072153557502753916088769247445911822483103029903148021280481924653750091297288519190918112074565436658998034611238629990901532476323698535476897800559824464020380370361622965736953347634252139785468913661685948039141878561852438914732543529149545772963391407547823865265290044851036148473252329774261242069161374233792528716632611454079310849212797695970272092902151400229625335906515674761932182145750606853377670199442787201585036816660290185343910271193566207681720950669443508734458893053963289541628401339274615515521559018351699269170036990885441798970660933741740474827540097343624064135290464201988185933001363009651686615370492037154245357886686424134148978699015374221105416534178079940985839907264493223177087253798471420449968093903838425376633711887242542989374377881884672053673811253739693244972019904617726244692792871693548286476043842783217547224452886899604966551372780045493360715632769063273919083398003314834716357249013758372319506445338362235101750291336283706449754952845030693960672849754458668244390642567235956994411492646335626310634156301210489144652374471503186456026014036091015580118280255983984120495801281566422872088884661514379432206307718383490757245761155949408244205725671704774619745142969660665366981007465924650884715894191847790138737397691380647398438382564872201275017859755853633162870953718202138756167558421883544349629533041407169131248313906994887992685137954446349986071565599571244659817288198595617811941219213611856472265768335666652730619140289477420652461852127596646901062309377501942339577294606215957064031780195382745026367740416866255332713204971646625030927580239600721159709214768178984972875162093495540755948192285309398410966573798954619665878773584861361536455181127288757759032972315351607883230841975088831795152943320356581961144064713466052339388754094282340870495990807584468507101146482993207363002456600394684569512394547956365030373788678633564704889259293015399282230845319954838246254290340469014002665267658779020322825683032060331717709325694219274072324121710084607741387802796862935280674237906454441468024273003416477568054082973368422915795289485098283525400387114699329613404744431250839426248150691123361361790648898620674015499582364252822563262207563566288860551786267444384347538221675373041272383339327827791633978058855299218007118729907781921106065594931617472127146110160674214714753478497706348570417310631598772637669180430411823974824059205779504232632774326623000966726973294917336724075239526591443741626466052022960132959630455422935888893359122880372193822631398478218194055237657605981576172214651549377701179096408748121197288612347199459830776178080766281168907284172252742429365219980973357229366387161244577102701841762234386111817995170340101390440072561941617870842784709010624043086371627760634180286716705950870092197858075462241102903179354229234738978251323378182689351929067226128246657702640664306562065418769175317493419141585103853879270041125862134912786275895396135980396797827280788301097300579565256014417980800892542885713314948366623613547993979785746092049895267759491644173960334424120743947010172070353773999892006856675634019013411624844581972060837343846284821576049187392698566341064997855424834388824887448920300494122609866620808301624397018161851784964465435946346162719345076813893101438135964814378154172305811296700046134259236517601103908772825796607111575334595364592240832818841858779530697986921145446764959975664027005472476134742030605927602938092020983310043667639206035908324305528810326297662264668665755668147385649441906652031632195176580934071205260689427517954456396210650148001134577872834606413554596047272811071874366859806568924209274835383066584973347696622127772827537165109516647793538150657459323610188967814773175348120318158969658406660032910445355941442365900335977260229790600443689956098634335746178604397466906091024581469795439041279257297220859242380998341290947126349866511368963879870045179000243961533634975434072391774033664871313795787597270640613272690426352593755312538494920026067508207073091465448422366296089614870876756831610478109212064620996614467662348877307928211254505374068619664571581838392154401252474403149389226511782925423061849161704281364879272983635999952679312873868480530246747946490947553284164815124997526695076788623387732400518313006088375514163225786064989864048260930336038687266451759486571858832989001125157500343225212444614277084437277445242627015356205784526695240736214104245052485899252953114376706592807617454446268617121595953837473151801685134376733852759905466241596153521537170326778426775621146463099649852526085608715646716993684677974062473342560332623614750828743470597193045166464631854909254104533364630752946236018408544318345140990112666920806008799647205255416731886722209804615431858150332587110070085300170005584244085665489997817570585448387087245030230774461787791835143126306809446651429438113549984383539783575580645698184745795174334227202523972797395003070638598716282440931429450142933867948886922042876771411096433338333086611079562637724483226674450463970858292646908088716240359112934296310674943624897453381572167128337629037987885710946104487950589882733688193692312939009230976213485124676567966172588185091722622262059090155517789284498067236170880191793055725131827776425815695173772866088594949966881778471605437990353065818767826874797631554499702160842941139188989316602648030354076812923888968258514788152240290804000090626579198526193121553927725177855331580029133721639539753466767934864708942939318705334735774567484283447964556810707632036356003776210909159330867130493916835011165787381755240011614147698683433692885896939445383570523724218633545280981257503784754857123084927413411176209387234294058230848204253573014661908682132638408559099683612835981937140022199546892564745566256311557351258026588724638981498956813811528952013463854233062915770367124957193032598825607193562267952490785434124930681548800009226331109667085040862501745356103228737142718107278891186524966104160467102657037728159204343608512076825316297440304549213293620344268531007937149906515651028481063463853437555139207589572821298846279558566496395083541151898485625326612839898422176553451567554320756642071304608455443983352850719609168224286071207373292694357745066945225108607051198776283647045628804370628676785230493002349651563448769286617498637858164460364016057345666371469339685537704411445134627201958576506762453787786896106495392947170993231832104434076137902123217475568109102504310582220406766300401750908182548398066172886892045229446212725955588481199379319407824305508471162502254217669517141571045700467053024208358663689505207092183833851509815427081052305593128873612006146396131130624923870514355033804710330126306983458290777628089939762182477807098864448065818578456895293039150712713084583104233783019935389142965793700645191897449537766360524504259922267489058231567751034686058118410988796468308686164904655080358166389407673925348637846280104595982275619523373836239632477874802756417502470409601387279742396809905911606067513693931914209992286112387717077304416119001682590992463437886758402578998456116104439514136778826656601569148825315181436694444691861760638879306461423490708861953011472447949877131345590976483203079617217718832121843480573143719537946724047812266645770902041101923955864420801778637504387639513223417534494533004242398002843614977154432157154062396663194336185533619558735218162783442045711118205905427233986614917503818009852625009292948500773878213904845193789547160333780692095839016393108896134452159778333461871638339957337160864883851081261910705747285767598841224633237436373286030896397316791491164118472541372177662237582820871242478078807191990618578589183865783862611923672425733406530520171965598667121666879236388355847704498124360680140560136383926854632623231834922571117081137844196601748695821707640436198324978791062811670447333208741998990478538408489254658697013860871815014210338402569887830464408067966389217554515638876314207586949575272371511172852959584244207941370413809675701214561113762647143639543970212948118888336694713559278530750601537777476179578126234913222244246182603595856405578892094005757420040007728858150589828947003032548944659107678892000986629067094221245795155035922127121087090280017082638598484084978937118129794066983937112883973959359500022256773941169506410928216316952060591099022047456364136546498719200443380724231703474577279284897519260753923235668697064204652169382421767802010254497982170245298325864952595995172137541968546167262342681903981897686231591590601586652671290002463040205598977051363210889696677507783677290081139315177641996560046514681105422603256116248590022659673971830302954234029567356306469958669292699724354234565223132918240591239957747504218136461142632065029954272754770417662406530331714363593839360578420258524585033288291488000307026744859833367969989061803814383675179887876838729317313932730281263084096501040706893470635856022823628477629940885569648953139381138324265503838158010888101902628817886737240223515248894714457629795514158924862406584275835494883263735448729735428966284103438251063160553571054288795857662203209020582538374782064630154491909341709705467893866482575476551696468050573303584624649636270570523037118888828158541736645879471566409067567509098208294944689386098068183685877145586662540975755930470301425931632828271630914900789110861130084856495510623389792157967346652548510934614083377917019816348859489827339209146253466120390378562546133189125605372540096488989995052220842289364077127353146711605789252579019966296992103333704299856079458433016895106248375971683302517319478814630102984102163178007820025923996240312333876385364559633563852996994113989559592901941390099963722221368860986177483057743442577925414918556698631879937010719801400978316103352348369701815163922768913417478343640440883668710830730128587284372271824519277463055692046062968334553957644763317714093628396881944548740123027260628378488974480596132818817197373629738203192371423388199099429523294857737020796871258828021631548516942431644453054384616774875580997525351358490880885609639312189136775468952529521496150700840762952586100300431009721109028719752435268803790851127776270193850696854833008128654313808763927862522292497619240454348739341824813351185960973463267217908088248024458401704388943552848800734571208034257038123574792222132816749457750131338395447652932055376181509752251871584417156910604097655549109348610400348314354180256205504641017254260300799777101385135008411548036648111317159253587552922427996653160520502789698977380511592363468356241690682726384708594273299739454449212727652139807268138217178395034523039873073396316712375627491616325574518123114390432139111280115878469483168968096159318783009722312381151731309203744750634998758082842416247536560940473470319948262925446583419248350065863369507820891313788004960634130384506319196029602120241697261689501522559597921635680276991725280456062889881410216600041614865621297023404852815632533678720190295192836509076818841486036364173430007410476845827554234203910102933386143063410845731599026587051626090462550859938132135747119691568377084390539681559227774021456140494393179024570353336277777858013597426312087703516512940675352700895157005972489521810345300696482228467702237313860505842552261718154554506014292962414802380221491672163450227822701458761905394846310173714728542606351936608478275253547375689422893530352576706177029610206908672117442035882527031255856673593311975597733927705348932520896121925163006089023666947994243123832051503074527162239721034519968478554423072345945499311767065932504801735116713815185866411051169558123773556507241331560279998682315387088005767317063685629321587510826848284872282191930322760236167043231819312839611365249763217506050554793047885811603098874826404951319965991557455773415849074789532026772217695249901150114037785616059324560242920054290634523790953101803116665015983543780410819535828254344139367044378690812630111771505238145880890052197836176539527138381086850932510502244963567306546706232679757264239846346378651527136473189305111315235848788435909871824370184421376027540120738465163688670558619142204570596257694509567958248229642397441564649179338566461249482613036095545205289919937288392610131646016909165020143475279328945526503764245648439457880203971391989537449716091081431569140317194801777393028444540317374739439244410798553306728930935630764053671558533212349150312610240689048639539332273416812626209447775430919971866939889635980501760365490343996508774938917688493824719584222756081228378796790378955537634599793768789492045477518639910076135685993990410922437738752098786881645436374074612940406213776684351087636023584664566774784170203533447355844480084091129932986466634198450413332505662277838720739875442330314479409607539424075411264919992801705908143178512475092043417388949047031078435915080959008975084587311155769988539158128701582540119721614373879567661881135033046049464632706916855794987630351772735038649691464898975004235013330664554291748496473490678136304983400311268922353891080317972446701750900717316566018443363279521785271675190457706594713712917523804099325778364891635049361615303857140696867486814923898125268448527975956012133839782776341206518496904519139057729362781564749419710030896988337686423864551696723182882545272191950712322854221192552341292061720264456021748779149426372101985644437176974890897667881351768362164010295250094083719967466766015575336769098186440258014408496026821842328119834477219755719820666982738880259376598508182995395297729659472344733200368338569626147627765880453574420471876081291896814579535801371278548131544842453673149130263152642341054462832035739493293517100700201912130079562878266790564706770328102401580985030151391288591063963704073280547400615051392554200498507142600406949420501990354837701685683280389879608173951359900799824023462197566662740514817002842417067120257210316305270363151933308244044177819607287544518380993856851375694782644870878618961741678894201203342169877925221964879119858140410918057804321594067568375382187056943437932315041132280499319328894561031810616934995866750506268057603182109625876370785877194681884101687139430298387374632135074331335981285245807949505987111683634130355288390945938295733045297182867760065308252326694012336290174036405831083381629785569206968209694554331534100294315460254313119553742982482380666505864116614595638363475157281252130360612677668259708165910755510080094431784890693510261619048381167231237250292389014076187457741359154163132479653089735388270716130466570096017145894079242953165773111026547176504468074177976633156995252830673213906251017401988098433220245931223781235177604997823659071293440523192608355992922085899813529707521503013611294077531179995566703284212509091394796844087404118373006552038090634014962981355945496379141322366536110141956959906282994942489880731594737223243965864491394602495763240316920751618765274918614269104309013955729896396037428431834777543750487173706778180294529970828340355974043714273882914104952393061692947757450980968446971309573026273625197197133802781519564638497595575419315715532766582343574388069835767962673271337191236836936197203086666626735777540896961316190753735283764960911102878168972547345586873953685089496945917832529004863843601546481185777744406003267524202944344885965601932613810098749429566877154426171963909235477940742291819886063299725565177497272586857515337121300509482803508864814948439351422287745809458275679403967638426546482387168894710958568976927801117599750980867755790568247719246222043638721340206234686576386019679555505131905750347082205233562720137255950198426921547188713158269819622278326557254993840892087851335797301396771758648290562569312409531683369388657892578206606385092403821745055004124130465402621538475602464611527002602905143750603813582477277839325076589753558458127638085249250810302171927916878697816965961790994427022767831096289553337766098715613082052911478281276878781480760978967059991450488247725546855682022293743124687977508980192981627741073550034778506727010000115413038746204890332033739202007896320742311282990033858245475337625731210149301625475181023583560765963560963959905442677856350831176755508213408679582072922463518151883519349234437562048601008327420503946542557892925613766180562121604753158034645933887168653272210179493973696075475107583236281230687950672880128888126821628771480237837842466679696056432948942234825265932442377671266613201900249452673091933197676377699555757542325151496081789369679497843487919075471508982341350966616902562655805120445840656272487996765326022522195656772278038400621692190122048631302282276760055905111974754129226236004028922236454391266331246390780677441002933613770667971002652765326315470873255410430879214115333809339561789361986124690633920912936400310252102169074525020577346187721408511950785723336351884839969583465250574765877814620352800882138486516140734263938971376561522120858497946847861697925511802795812900874812582391889234633970821549887227699522246889912746028079912702860583762428705220109683929750029423120930247950383478414047715745538434352535532447496734340990035966155533540943695117278444480117231530812116394274531743706758122871144509564123706360502642600822364902773605419569508792401807707243705081119980478181702220188603326012700238560004097643560098461295180233486669250860760460043834664091554563771692492947678185142889090542177221574103162115727755782440184641008277063926550566364394315153639023280904690647225233445042143378712829105441469338900011761796392776020370342762400826777390725844335584575750075344626209714032268990323900403540329682382105365810374226021005862427134768140737010000111988636349639970198739707964882794166765353666817097209700073591797972280713442854907237998864856253890033016897220611701899021898023121961174249496128947950816983453486368684020880156470673240530994012874800207368986886464080860075336952817791343142658423548391009626669258441237421123916266158038072382078283987104344315288104332754358242037110605305569761360173403589581855568681094186962276137390917509241136661206876402958907313085931404920363819113373057669964383634995198191614146549642060806215877909324018724045119768759709665958933581257908091133693667114074806072144158852762048017902917169619940995659810931044850860206417103153721100611185619141001205914109200384331099028015637781535570638629553530485663227749756170158542773166152546671862265511149543729691822926360877074665469684074544489513362825690473083940018232950180978594407084364754696187743174379930524542753542680644825777195978239084644861512714343711679670921182675459808908522720651629792377439592820300401794210260778819423883483226050890620732184906319701184351494659206223335724291520051388185240951292412374368007552566935484068638782452337803435044570823593808614642923345861471562361311616716206939589704489476672445868045430472171773027918635169539004367824510626014755432859199660144172310614504041279972064256618034258270190112920774184897280973735550081787075145609334678928622851505003583379878002479474060417790579725216978532045311938928507206899425178752606272580233346461387683305488368767830257600809570243454939087888044467669055713631305019884390256232188393847381437620935932249779054471264183902883096781980176352973710339181276455029926542664804009585245071178488873837966254904800520215412349678490967230409948131275995825857973712551736594877922588844434319356963940896424579733773297778355797543547973462618249019107104578393963050514810234839382404938378447055316478046105803469796946226217824295873316864451974226027075899354323419382549489346067117766458516748511319184639689582438977997299702761085014691161639109670923796494456137670600933372122440673096619116960744190246170399423962717591563540212919777296740365762948091852105426764084091892125776939796519100444216253888960650723606681480870569063790314919500854242638154109630420559779123349381647128065697018264925036777410628343441994278800326522960061261358080681080471752777842737625794464539326186485771682795071205611631477314576952359902216277049800391783777811679386642313243800341473188040861974622797080309384577641807834147135601051628821163775767556955488314867966722655905833394352054817414584748649508961666661343637122168983724307078527768479392671712079839917541363779866090733069104798300827874672779783063038944139477566060449734858098315891409044607579023261332223428235632750694955906830361609667904766207935870997741629172395246991098830828064844372178989601484600469024579854609556134290477897848272664586550901501854510888739261236444904032853773533121832197757933850804875161069309186370599348656721466032431791262511175259032363116926647461509215970910764574486816416998600635848011975824314339797770835930121932313991328063954661971196955272552249549722511303060550344435258511858014041467704062810215018533137619969556710017976891324550229301544149538535075314097224019372454228816576869732515808148518772651476644268374176107620601244148069965105060163547553866801436320218196246481823818448981130255418681973371656899428500267937996119407172787527315993498508929007013030840612736267197934462305556532785471542933218898763589364305722738346940703404731599956750818197929180501187266859585104877500610002510527605883095256868267313185934330741685887032863370703009896911540496647288919860231790712491076014582064208384285792164615277882743429337307580869301031940192243608804102339797890972418260196895924956085358842064790189980919878454683646984245159613307022364724844766888275103062591185880407703346908868817435440402125279315306597081582013815335528546681659056758226525264120085172743247758644615959015851139231558418725010745245441011762356489684632513688484002664551511843447138659940245259542576837545553128728479837219652030896919844611711289068885521539904836200813947470681243939850002325051676291711242462084901108118420581168900380475509903007094519319734190101059189219667680029048727108220396203486431912594743476661397692314577770402628051283373557126330498731392391940171144228610178873287427145708706467685103846471293016572425798790426074337954219222738645915957735458424931155694858801847937920234907080743505437779391693491709067208903013746034424802568329622919296284260220153845250950807597743137462459039938306938457927179353147129266553096267242008228712753435970438132954251232955866291021796299750540146966679925974863224441415863712458239114856699494773013918090442143099317784856220843411044924233730138420591542969142383122191351313431359457620397815279609499140892165608912744709310754076398318877074033217114210842472503070740465685731092692519838496810400054239491430976721019555557928242723886053065948620038173761194678800614333784015624615902416116995624875440792606477084616784620202168982331861171363197710638947662253251714258833759032412437851231961523813605502036815179642170598328542810074283256885980178855672064208562661373332147212944356417302189085987879931376444033070104972776938827355662333148138058168624591946020617905278230934932445353043942229976785722917589026288348372551908116689327628969111227733696294800059962798170682090080646485827313352947066006055922082551380872136393876016466974989214508167953337000398222911767393261145700179541775398084423324397873634000329050873216577014131075169595904129219653307332053396229359662557736497449495927043540700741676021490346702633486823199737503214221448225344713460730085938440251421586472532743412706283946618363424027935283640234636517749238614760618134868046880150312912137063609940745598457192271431424932464131374771141798386755336961018845780305326641221639128630831649853367748553449584757025220674979217637085899091065229539511572690722163650000024779777251648126137044874481754234081530299117441090910041231062525070905133093525418082547893882710968115310801383905033488273843256799580694348102074494008302904834246341151224813932090699989057159013109341837357369267337917715887762047789862606628814841998438980435904763096701789526693018594501137146805626731462760535059424774404136718920670100586138342739132625852709215944016309092860039492729477006900663521511007055757093911944863342406059651314533554838067901011655149193255240693000763907551521762902805354906126496864009574108725679397276177835608748397903875023571558609714157322761094933815012744392932309216619951970889777396953178831794224310988189965987512439082493030267193359517520493290004328891535108423030659511066954627123060313970459499509180470523534559905958777744827681705058245795999161217516188491359832431556645294620226333130211913343515862972728423496102181391967910849698428499282870910236132808300978595033969279945059366277224941261063092634487762021221745010574103727681395960022278707007644052067619110993721755220468524602904322792203370409840878179974838490553675747534061301267978569623311875148786869321007428614811181233413036236942368816305010300577271093342401167457486403586991565911672134834946844672500902493204261553606471932456708975216243928012593197276190695176558646904090456192352128862185942721686116954018898136198208318318753958890849963017516874067908973982015669875499284349418694525891505756601631360002195121580238879278040392302801640949228397464008552086793021146021547587517603109431969421079743431932853401156673077726728405537841063709818531035249657579110331258670763007541647051733030863893026604837147262295398183900873914343782798990409650888632628738164362004468385953044100335239885438468678469959447530312570099688073934966209491153655124130743193985774581311081430718804863100434388985361185997406684575455187041939592356951931316140603535028637177618603160862418731204466826211014488486012471419527149052492323335235470429250487197012362424487064114090018194565351819253423647113972425974051230613945832946082043506765763565254614791872375036022834804344518435666609593688442240443729149957770106580892906079437564177630323337491758627691226745821124901955331661697472784669533832280373273458398056805517055060125654378230084703959339926699857375732275556536962347504937053948402440152680618887377426635645567768694825826431613511675135721877223230938710860673743380024743076816680091130583131318505127346374821393412534143754441985613654246408539740014378839382137757187868560316909123076289104155267270486377920064755858655953967812579718572260926524665998978716428334925718221825042064338522221381516635131916018219326082616200874824587933338363014091063708375862807477148618925457166768913042321404914681199480438194669956991209559493794243570799335822670683347163585109615831337606956909881634819472998052548289949441228264600518020942445505304092601576876285402841327103838374727886015129304761926762568591883215492495671794124691833849662054462163002764882783093866675870532145642504688076192602918775654077553360536814669737316015946124125426964203692226160030483594727673426839569055304816138360822116263537492175926499066107588028852677054089851213357527055015364562608556509232226577480418581506202857226452138314561717264448922888386479485271002103634874360564329975603144492394022488760951788686564281473582975202802530541262283166235768013682298350150245017797301818771887626459754569514576361046868856361106796179700672459783577924549512065973290630425394623861126853255201361170792965964792287025419598313843749071568939842759113390779856017802116787081454522349638465476614041475905163738834878336803686859419035384708044662037871968459264948568068388505714882013244058197176119321303992620775690803842217800592813325461036515464795770234384609652884854789070426762089506210590214994237614143803812776011379385608754138933083391234433802170803977673769738704196596444414610704196804989354924783794758361377724149933477538738425301944860770391041929465039614803517958677621947641797014877350690927877499462902919816712767707562770095203535667890249498428475031547524858542589243774779632850520858406182579460189104159198239369694601206312617517662670618292514334482091932954014750103023041412213770659005812777319547639455022426252003480458961135837449082505373680813737867606802585956560545212904943116866193974386605789677183947504940907333568605409421904765698464223546730568895070653939148602469879168793871703982064836609409504470817803578184298294464732924208061435214207931193478439119302558622130637038813393520046025434111258450430709748029850635094758502402020662701808550373460701303193107147876499314143333782322853106321679733853257516816382348602993256526835769141110071230709184135144562838568417007269281718681030355270066629424998008876293407327663177161206456036092252343587762170408479924627687521444388483129251697315650051156008259014262219783475338885049065493349380811935570747388274616629042025076905881134363533847254325362316049320554118833903394413258609573239579834782973393509903201038747198314937168838891457983520300094798726143445020745264415147882343486046134209476005506361013208029907323557948865524972011526436520670430875409663991419576325915724532460566564151612120085738296006663326192130136396583359342229575219113021610839904043031086673413307728521613198054324091926925922502401106938109144857869209233945495814306186222599218672270138988373867182806837111735569471686190222514486401049147668724991834486768315811810743477427369034082592025539263873178113976363308661765163462370539730631275806293397120764368882044188896129959397227227233981326975620159862352805971938136501079645702703231998848951936702340693263038230834901530445061902873225283962298033065689897805598516234297155422468536103319950355844554203469429366079219918038061181134565279782307321208363759449738876421706214080867540364548918652535905580947887546463968031334978980446133792361296647311005524558485197743458660072084286755502685335720513702893418136110668642671429140665834091122356579642064966102156842976953201220466056011426562445876023726410026267782731919928789893247159986705412620167217399213124352954282162455647023441132011483058660644976984604888323828728395843959130413997651989560017344436295674833868345883946508885353640244421140033614034752482272589714645688815549298444204444860782818138917177728329276459308494025750280152727080485034273460662975165956884484618164496996069062985592992878969318833067017043594293425711580963509312489666098131261756132442394999626096105494252661540567190347684405825473961463676005641326573723013747438098880514938530608274053302546355205916232637482495915230947497368889683605399427091493120052445714519047681166142869999469268395748029258362242495731721354085987168737119937745636534124746862896874371841832326271908391912236597760974795389597577518580132585307051767346889322506954620278398278348448572032480968146175468679909666558122408317813728504762533183820004395681779015883385553940674854631190946701789645733034199755982418966027142645945166215301621940548390413461254790650111403991700509789314280055087935093041169699663555928829177505424823259874405936766397544818455538099456361048398414413708535977254133731991738697245822375651267466485732909626828678074959939975934019268740932637096649745723446544372274261980265874192290896736555892788370607289033056531956160365304378182014905153160060202006947031337907917051516648136548632733758006158992662135053766479246008372056562048130543149093174497278552997730855437714299026972412127007696622716407807172343866917112696348782180085045474747272775434216310578923859564895427266657838735083408578521731470301872640944297541250767913599700130925451414295089519973980254015222975953703080138009790824368085006073680958457301594512373673500279508152636786682772596937719735814728663144565788143943644486427412170315989567163662069919364953945928783582089778196676577621375076118972701235916596904796043242592864699920893470916975030000925770611508704787038844226545800550834649243531876427398869558047349306694860874034732788034462730530974645221888209504712821594727874815697054822225819339936278319803894648285433260471925606771398121696216253195047495587501246949077397564148540212979972409834278897999862780346736425865141484548048229634106012788273508953807525537923219774671008483745231600629691513709032760125005642402394794976935895042591980666194006556984636827979609726381574509547318057245520559161753570915945306283419224898368701992061360588245204253599433379260565878566951005913883741534362380624235845701272251892191083984178790488473110977515226278340831248325415127819713478879291217728811916202534663535873335398708155988220142744792724970971961622353760812260193678046919856865925753065146801326318471537383894150606670842389488591353595940888994336734719876301706135664350247477474449237588662512889031533465435628733839448581966279844829416043056103123195514346356015794106393124051935449901522788760085632662417494858064230606738530143066890897438027829219489445415100341991991486923439103379673246157687231398420802486153231120675758668862747461190905255127845507913858062485769160923215490737476942824743003562824254849542482403485608210958609573139043342947144591045553167616329097243889530561866928205652784126162682530596800179081626752515401191112521730961375179486167525390359044671164260820301604571260240321455053502408721295892657364661022794591610587550483547400313081214265260676579815084884719534641401472408631845822229843162407067838824224257125330612184481684516462907539501612830252014768982338833075517871614942330951895417580766566990379603916608124962525408252169335392511020863606213672660543114432249472308436340905418600765757632959790705555369783456099008585782224503981177317259293529910949081515068065635398479753893183689603968997345154824884806715399007046342100443154892596149020768343113735978710195890931029383716128376117735988000975635818721306369029309594535045155392091698735143205550414913611086624467399965531324859569614713603284528770289744390712579229156634007623805476570131385626013903232610904587955334976357121939306600267157469323753648379211268660315746516249255881810775951474868711621745948604692597137732645764346608993629772999452073905244111764021303694911276352496123027692169870723991327864955105263522249173643272390172379490822241025969494356936050775804225952327683968924479229067269333718318014782434564461821649580940257163119676639747027510067354187262404833705860605581714708773258042077443286719869275662017728933029219302236809341347272289278825962217419168767946593798847887708509505500446984839255437085809727978877313024817647791556772163089512413329614071200904702320431837875982449409737818180924583085881541407260943275678508526465679658458114484366866244551518309449832141096793945554408991827027472447058014147349470935809474737430215076562193289482369311700154578405335355259942828771367090312222685958086823592922032742606585208363995351383804398839896707586919392042664509286509609938767649538153736651982183747558354279307598938080727858488006651836707643723614407527581363125558326598193590087530868782710509385970176739501387385196692172344779537376854859819893670001812752165219597469186460136522739249916160243109495199046121458034811875149306220489576705837150235565904079318541889723241182662932477616465693169887445418432043237723036435747132883810237911584227029917083996930600425977113210721497640882414749833988942781147482687216070418337466158502638756215818471938973437694036218323658796564569738675941601611841603607264900713911188407913609929438059067140337153171640838753112733341485572226899102256540214831100285126142381410003426038125375549945654730779322225941825230282342285110581380148732014066903986654840144074230146050749764986906197162001357958379892960902574891648467189112734857886307790747459337608741196885138640917190414744786653564286840784634467335347108041122722755349521509518138187013875739149163452977868735155725486890685658472168430396448609547988477871135074749545237370492248618896952122646372014478796340578112210621814217227538492452635603124435480759620802249490837342987226517251903792617941633509888133244285066255579835891408245331474776619638464593672986753730726928654593860654157485062965892852643917140700116202178880354645941056370997092359170580269551350957424167442214725350342166924517390877553947999668242753827627432610839580978780682954721833089614446025494365204402113396884813468375566996219290686165655899055318274017145727911923323072041765671261480439563778724557297015091129914787798579509054817818125999383558780203024344548828244110781935404006882138847757839731015375826524672903522404382745614813870665130925764355371664576885498876512675201691138654868516043919256645517031106810830096897780588205197486045871418097765179188502880776444711673609553127797866889562268872144883630367548427649793640634687224818106882754303946230402707984445947565560062089382537421465618856963173654235238253181103060326699936909922270711128429723976840581091417719152202139980945602460568807598369215895118900089319791914129583183925663262493772434864452262816516253293888903385112786516976184111423921890642646513798062369037976752011421188465261538836321138280908147142957574945673043339471300394249128439763629516237984888006339232113024630925910667231255621976852469741956489487026480119836552097638891615055887712593399736014417538890995800472625785844193831305512684286085742967563199450349089427184561848261914575844130336484543487212435308742980636116241698742903826284126806897775465437891417585977068262737510428098473107171299123530321699700445310857912103387011316985805562478392592774237249328810426128132022305417350367722198993404796768835667678400875503154013366743026476206835254888797421093095795575984074233702817976798438656323353714019562594552951002833454041013137629813672818424329516252397862177477983324084817429830535921737394999698579606166083507180264234107312453797240045521879891370776115564636815267316027315457253450457521673751485326291678608092849542213610267159320533705257305719586573559191982147068309916232406002825176148263293426898922949092560103357903530875525073134329508031327867389163644522022169834954999198716650952052256883834285509414367933461507651704599823112529788576786002177554541237867624095070061113504451083765403038989561928470316484014049272879932282378293997410307165801760513230421659582091424702395119862301608382245434255353581275395661009659280637447842490694134478008789456616875537371278089017543076871677626688597487980615246941042492020884956331503595726022205010524724401371333004272980357145729659126787646488598788424987953340084761072148906649903272828316437863799210944899616051252762083936406446036860863582149594497611907546110005664350314213171260498726957433992346895500669553719132283972976855840271992199673419294242017410801993506609078056270582697754832482010122963966278577143593976462186035172053096213590579807326243225168071865989504265093273044351760806200790944850744327361370428913706497516586283951324049773403170250012060547249871962803879592524363684788095880875496809368998657257563601169639765743773892834320290470683406076105952994114483126925168431341552075183706854925543158718864724808835033121556440230118640594605106267342339478753655345639977725150096777096129293639798591250350636470741672249318854692115023965904145865210936668414883327470307039853018172742606634240100442607771592074236591706329961349828206970253717851812916863976110989788742509529884258755000648280063088996585825800799285415495704109761294584041497456024444554085358183891467735359025779237675196350846209151815085707868722514651877586113015399135760827813139359621132566861469711828042707638535855235479792303114788700458094674045714899184893367549653154131843878224647789096639036748571678051827643973509968233895164812404628565763610140517781758913265236976124105056711184465540110431174254240799027055766355658912774202566486099692967151773685910220697259060950716893286743967065455079885163137701986567748588506588312193183355146359278189367465287489834627892907335830848045388981196930792083167790438645100997286947939088033866385833498313652479138542488497282051422190736774028625060586644885402592160634851523363949049105465057191971278947318183484137731643112913999040197374982980716920007439537681898006374185389892818212395343897936483912315664536927529801707819960732851855886159289429053860021344188937779377833203157948975566794288253805650365628455784395112049946563429630093780271282435750913098996026963645133624008145488475282458174520325547276918738877561347648770217819685672120458793001400435898634433761957640155430846823548944302364758297326730486458844868816288445296411368143987165071205760691711310249267848522218282944194790244889298421002020511948679739231964956242816695884998312908083788132325197003770036190526642973038640274770476538069549803281462585685429353994928284800899058503106847741820791765585778546511939183535478605684384355033360830594431251241264469458828338975989606773528253193308542818911848544155821349155033408692830050590716832499233202406418946042030805405099699207614564817568047720881173955676044574501922248990373848340699747369876705244446916587251886038539272927326385686292854413013706094682263581649658952581164415434792364477562106642626784639776289875148109961628342399740706467644288574013042482079127034600054275346014790174604680167946460838949424493513730486499410749678876994699149194928042860591280972843000013739636381742499164999949480383775193307253247031467528811474942260682404159435110071495265381532577380986700732543146045427831249279720935931119536128230971718262992204112152193880934918968208393918114194395567570789306098997625384274019361316587904202452394364578865898034892538294123539324468662768405539153938777086782030307526118534658705932108894250938220680117892628466748932695743318720160295608680806765642585897664513418148000457142550514085608429629959952701392549541234187065140529417453542120298920280967287477991471986760678127048369448042262010670002334379621586548592295750613995299909851341089324382488986144432424272652638362405374593728464890429461559294515551115332869891662292777190879255559199069532832321841642718028437670835081072909963442390986209973654068758077738269823835978879623366913845739700736482616307914699512118617538410183610020657088597360034744147614441391728068260347246288496418827565931113443084055887319940309626234654615569177795604559334690929200325140652367519740220219635880768733895447597416453165372526890109653701911378880334319065532225758917153156210264682635070821015435483189058483133846103078578540057313987231561439966521420955110810795930261352202294849220299088650758850179963907778255302941448790419069812008373571091964645003498648969148264240251501699423905187736407232287917409060283312982210073217237748175312985180839350690754214928166856438829000463215377505250521907244183835284889567665548558973547796959771856388493757687080573089365031323585537428229428669304620360795192166785181986193812459229355680956387775628112124231494079659125473309271534921804545763380088538266234703626104368350436876287861024760177267684832767028382834044732172963752571514435528191322197701394141353747662459327173440741099018179673864164132025955925450853586175630010311428238510264885685441432326965232219275779461282752149275699664433258958470093905484118906304368574247601608596393856912003460240954491270747232634387358995864523915045750942988215854131106110080545767641773709956409641903134282868328744072209366952647896369637397084769453117899061152966772384399815117264012934061668068594864943056034592486811153326117822236657777129034098959084515361484500044924032029281778104934253793878518998513618783393279327969038566406840256736357339312887437010005602631641235611471445858501840472979401408827704303733931458228754984386328853887841797621315310994359616890261939096863233773671825326058729249037480347109468449176046218041025788315175416878791422674448114296233520564669165637619730627271365960479126135326779591575698754047379097884102953838367567273724390350381385636307452618347025560010944577493068351364148930562517418704517331382035224652439854986888339387695596174242947912858779639006523708039024785332063162927080913061301578749269879218546933521225116131849453800582613016822099288611182942414315236069214035210660437649523171289164708960068093903110089931867849946784757954146485061229898479551543941655307136577297253489534718081822009494661204344896022534377991147534430500193332411857756141260623222503113244142039468342391857696003562705761741773283699061633652857989741573581541527358257625817446405398098161423976181366034249720004946432666055668198041156451827195390178594004454431615377681043212551780768449947992619187471460708236722572406887236074803310084923693745226996793322859111404790926265610621657168804080491550391310498897363332902554759172002308592025757266953797262243162767257569463557093193824954289067655220473726382494565994436882772681503460466254525996095212215854594002618579402132229833311264802969231971063852408048606626386914577641626494117181025669803956384879878537202573998798920267164874418648071600163560698166582161498606241488467050123934335296378174698435994309926661951918581085737559413201647596999641382371282574804192209712372106949578884466446432946291761899940532237516299346793159528957992509519283835192457376961590119942254114581938959253732188415069908852932964724470385878565218382466613104425489009693833963337563228648185093129799422954367905699789556795521375912335493165675564860255936775323332483454393818462275586015855581125288720240292674163090187303541618150965647601541366682666814312813008878041081001822361157723210333599139048697016908116082814255377698940555727279367230410210341302731112042135938895890054420161428060685609180434465092518168276019623468633779108016376009783235222990191337138004202040914420539538952934490353090259725282032202025910461844462950699228715078554220939467393107507616107490261768688469786212444458797296304821058005338138861684160104618707752015382154268801439235755673345362540156475526199132198829863893853498681549465676614437510862190045217294250043125500454070175981574828012721320897190697625220929697109532407580874305484241710384958096391263634285046116408281036668864463898890290582048247562506263218492512936843572507429646918219864623653548465656176326401392796782953834549807333135306391708906632903510762864515095986729447270988205817564421751752542266538989838681587323609202665398093589342930732841176949066005062637373651914862019543094222871860627770142817327043955645049526561474554089554886951226660395572787846442491839440462124727625060760068243271033318472460467341520993438724982203085379742288794616964381564060930228433562049537946096051001847518516334068071437310897703119066989161169779070068195633712693564988019215262321792222838491471643274458301264025130948971995887954758621175079923733754917817580288134966206128662353145668672442683581549997487645225890246031528514814280487700309630188165249270067197147605801354735217703295063964959630206539242511116979104242943906835762435767498092148330385813888855705651446340839938038027885980577413658778580174296581211995270984505279728937353463609056848470997589674140142455017321584944726904267000944079277318765521969874505097481352755384866771321657477969863851217133985732719185642869605721640411379272589321337447538922833678089807473127386068831363579494868877666948209652039596848095801315916199189761134478436678846304590516386709050706516718048878837153963200957007447480758083843544400834377400449893053010597001466441926226812047578746914116832781578771632186955194431868273624577678399627683597923441622090970786063721309999005973510566907108224395199307508912884366369199781653635661304619152733535386106367623810098070078828916181802209927813956386478911418463637887132361073991977890174679744179208589894953610486578739219097317608843587946801947626200442118873826877810474776560226458848444595528936218300657041185346169351349951196203639435333623005611156482438819726931140645859081562393234518777926359075559506657504468904238634805551250007397166767042523123802992031075342151549972560125432264805898634561184959840402161071150665649204466211036904938749236900849628456109333148949007670565941582634649146030298527868901798654229436261399977155293799403835134668563171838100577572992259972630086626574211613521761169179163408456032011883574086883803238586632307813363855782386281057773012556789018849905477174621486750052940613267620790578450823518759943685205710643703052133412468390951398669779036765542568432824894797659136206623384595431783870563097828159568832364542377605670636603439543909153281304968071385722600508412413800047031190470010006244049958023342414842644626667295989508725893731881263136884346553903615920308379384934213910894589508471607773448059916678432952855062680205971815151886483109509787618460575741388021274621688749931910457059165188291241518872987765579963899658351963919282401828374846703372221901232619088134635356704570119940021710262056614469589121648719734500198285195607921437974252090770301875340232745197159758372504995976939011257963715202563110432421134653703213456604107522464520345829753997583457006818041498945218780537763082008754989794084837166313939683882695823781332946363954196150038212420458710621888084550407338096444448498471985766250746014908961796969805170202929397792376171736088070185629825867732460858590244332375249405821850329216757614636305743880030057035463701664700112104868836767993061796821262233564207392098317856867942724143853187132467625306255134328866158492957236493363967479160693387010123383375006680225587294854713955891445940435234554900728858418115628959057598702068491532294948753124682972678709512437500286195626464276114458011484059606805223023665859866337101639796765849808312008910190903910810885020013394811454791695923894892082077786628048004338415387356177634601880519989818730794460223691919989575022168440330022522215320145962809298159661336843806096157836632767723748306866957366395167249029568057025187658561938749121192183641952584616640083771530345979472328148238341880379358950714661606738265852473368432100691172145602709550568764753154365692858186132542191169180846215768988408652904243700801012228686442334085986225378477837272456225442150152864059191662968789618953115289557796643858292172521415202955352848726466919554539256851728611696683061137582410079312391280220220316709283781722892293359373852142412769462488889962803991142380648279919846507300485462179449443968224809694771179015115420377968383864434029552672921401097917662105084863543734351852181966875052382384450873933655898982440540033493660002370933890940591235886255963852554084825939004913052334657479361386374039285722289050241419386832895649123084750210159016203696944768323291209879691967723627649209163100927879726673701828865519169924776783826728766514173597441620962416202081496704871348116662422448798195917827650014243054218407940819962778831194955229328673806378868981478020484067619211643644821599804781407296485368026172055167366570986194610874609048208103666956879340845069804139510727563173280706941104495075628277660035651504944592187652129965605149313168873470237378874011029573606026873417693219092228253291230728665525452449652779665063246602709844577160527062926337941151087391630126825103777216543717137298510918599610925921920391560487619152879045040466780639123376891221305741643786495232264103071075190776554222382559930594005128924020606331467618780447818904983664210141768779468089529062652373337162549107879152263081090739446620982479470898244516472485412257833137710751058301619009850085694256315402086300477381404321474195544503570984020096078232677241288967965592031156431084539237926270158942738635990563810503357170630460654431372363611529630489546479146711068815472834642458442574897623666847769474639569037548637406855015898200666721458537136939647317276392496721227154280034656424080801072188844577928881056127686861443836246000199114234974241174254132566010998871196623434771642338255982193459212998050834471285971470447825284578915949276667186895723332240618648316957344206893141796401911517529067043683991787120344783089129884832541369297232657461311442443351036847724307389978765258627425882284115997908012286348881405960651566593401198504623186212317241450851133599115987744383516914663852972057998814530186312868655855485798560640829569625770745984929886900345891092827633261108843162031020132657448214692208371859147918191979486270312323619313929342067414758160703546617959446059225547934897641870406313349899055243377668196030485918830193975319111807877069410625299721476066294524146455920944533546706565771413884755135912500097012303124250304338156382251200790000266114974116562251539485391565081854640559626608991397677359323159025275867380498973737684118634301316585021059268445452609455951641719260435313985157128668743265393766322166684052706445255464062307141865561248130949771661690072628035397304141588986590139670364789972582614751622351519308066112592555718727974266659291333095862286642326955689631110921161406907085929095938405753493751348155070248896253795928811840761979307585172614164397347716150497880182464581477974435493362258065862819881040765847632160059167716184020132776222223644183652846267028802929737196446595238104859098867878402848686140118617211800934135511001633707691945508728130181086787288046519397045049090606719874272581195641685669305521156694738231717737271088815129749411321063422887563180371073090157033998218367707107062770729514750333571899109055380586095026697198981268232490132471021629545768630408773918746300048983850638588317896550315433590328701957035856038500167581709187750385550765025058552254625771496246101983322992869537420595636761732081546750709765607734564240720651605120140203880656694133526211442206156434133528261290092116731572538339680005828988995976110723823000475396713016458101485438294773040642485737856503323613354408303252622440829452767384161067378974178373424079825868739115345235810836405888349419504496890440615362088124429380354209892641283599050945119489977374411248588573958642485404196687401963897611771991260249585000158889964296777305110381312752394770090033015726181680464332702773625799800446344292615284129231890132635276404322344682284415686679172005675241778479394681729087856846698507087701348664626012488623230805270225462509924981156343779333066242751817251874865152975329583555878203098939576572153578317885847831883499242247340102213853266346051109826819442445997141723677330842858516394618039233878190502746463133990382998799483679692310431671809433703580113241065848475163879680657388731046850910389748631058921351313256121967348959603116639626091620523760391889731331700824051941892740352699022217889862895533357699122460264946648635222654499272409766021904533419645470189680978335779652676989536979531004345679668200637271561593671785058822482196893702902826062706163752708022518939033168123887041551700068053535013249172318291796897795987677626272332307651441843644333150663446394625119171056982885463404485133455598516037199839252028199193323936880317147305771211554089056206141216983677417498614409528792651367619562247912052477723819702998480689454213746339338954832822390074677470059066651469557735012915197443793451728073175746603228518203554437221460581962628999318572542113473689468975072484578927165259500415259827934762260045038303367245602314208337403853360700462517808420663239226888416722549041524443561147050437200219425714352373719737597108911105128534426239127005560740133787639564666468809741866494572808024494408992821200905917867985473174354460161332722897394079016953006325141737670411836345046363543998092385555188556439987135210902310341941697121045762845753991189346732601562427700317148118002936599158469718648631139413772248899565757628184457859006900797018989980721950424288467491432854314592987987162383144529491979794465971241419693341939690837762266767692218733915357881539217405693274044330903911116631927594565203634608095386893546298472930620486571569244199321322277587346231484455894276021519477287853267344680406884691870166452406120701693586737122732891756461923913715122979201132399927600832184808070580017512053042534374836187965162118819622637494564680145175382360174933603257413182179038907961525884697581184375181313097198529930021203464621438471290634882148983683361695248817945710046270548524600835192253250467197158551378694509286883624043011472254957883022914877076600389319868011854890172315394340496610275682250443047943959669419318800853725767569770759739112772754885963121215449256723726159866574698563924166163083379769370724194873312596328981647231858870829831396946553557305840981335131546044553039149684412950954564829759810285611288828906063942260356875093097396368264134781624095115350340926763582358134775273417955922380137821289258945138210940224427002640525450693824741223961628171569655292028877952433426309155004279087521865653672521417903446831536202649615119553085660539511159844121638890796819945765333363930240020630535614914259951544165336141294251765199686621373455872051762852779210286152994876201217500048763412854354452937939082931737593120184211569036362672001961012333585120932294149799205242358996490932614869106813666162589753360768442541687976683162615659127383242480116758435127595838814218974366701704605887378805144860267820173698015205249616420281508536618650768515129034094232807419465980045968533707912620335248086599328267290604963322996335626370741222740846804173879085530857482766571727871720161738184150340841222008018421318169551665615360549075450539230781948365594556685670137783076338907000076740474998855889451718957391540058207711275850745511768542548572224709008483405155423053369053526003246014287902407256800085494879242309221243744216837226813533852866032931125614226533125989917123656694586574546113473166897878394503745278671429558845987209528535921167240816956244606234453669079988207124505020659932480687897288101449919398869914231752830195420901243753318694986694390029348378600539823756357627144720308195518123211146574068693370952082940417581450519300570352850020945609360144979833201700591665340711998098061918281681168912891347750751401338922750645965680822939215250879474751187319047388648473980601469515473822021896429592539385034945330880328181409616846266607287520668128642069278648976161662017047592945412162630029861710437831308106460964657652012615569413196089636258439564006326740493048796375178446110044647500328234223495735453366423404888104252760199179852224823426202821910944886762120757140454756180843924510168317669276631766908771949454622859677079418970224917993341221405886212692802492253719517211958895434203627424366867934547601954163916692898312673874849774201862599820365637614008866868447346056203678655181396472891450420936250947500109117357906360290822398473166098746877175813567070606062531471263177589591646894497557706739471945817889708817269194583776499300803138298450083245712046312372148305152876290228442575944873381669106330427270865197963636350788406384010202604857752380726794155263206432435907489839244862567395371769748132812051112953221801000991501478251674206499377262378132327514134626331001317936143539026610771370209559938773846042164472361286533949355359742052390818790020475833489413018691766958761479747215249321565025141273138002242375622417664411916017525332159008679681432233464382502070398391252404505509274214633828580148062234183051577329237728753427078706420838250629111270230080865754221603726179372663487331770039758891399324251958591422427482749604143381824027359065005550304202535948693374031666489936610495743535616526472781499436983526354669990330234874027744633259500011679323640701744153256389598460157474661375753588459297740237471512463443270162688541984961773238222693730477411061595362501846286201625055067650654900843102916619281321063422079387688329253461959893277450181896944210394720091096975507459135593006003852726519591580889613776698252883894861209708604468382005625959093326724936292944725980730009867490843019673732608340342691016135281732753494244491175431662534410118377300188803602199822159234964813582941615988022268907249901584648901851838574012009823047328588287205595972127067791946009173677988428843568054309860198485018534693833090786683966189373241658693728497457410073077610421733815038962594229636986483359459809087391406319710256726699103560654506688684165299468300627502917718115931264224631071233442939673000440643992965891432888735870908695168467335692025263304601851198676898493138624122959384102504240933577562690707104571548262639675000080810805084249176280058895477597462722846061841029720416650926979405630632005550408319929750269306949417579542531605255382255975954739000122802097505073372537172828899563783305008827585171759410439467224714157650242617683585089558905484047552492118374969655894550301941196718485860849920364168623383947500210869899279434588217110213114621152585582320772326324258871669204769141463237078569105167434001280468828803304578768996136404103671226535230782395079266868961376882499385543790574579898703297206382452155995743847179454039476275611786729327391816843356882769168953348971363433597647039779908017157915071714530874084679829809446736691355296196221726948463526549957335814613591619583721851230399116532663808274571748869020817031751646526720394064756414421861759932195446707899215811727851098571608652758012447356983125185623120847249945165621862447343618239994947592311034334236278746870591405818031888332046097740027768022505126038975534919933337082235089623141431770116317819440816557842033736368682468983608255183302960600848446931062378622174880522180120358742986016523804129477908919690571987908008475449896488361017749466119580914556137068198456939348855024075742371964498529426137603821764893773366571383981315358406224897336955550550825167934964500003559452543728565536228064293666499242708879639117506433894120371686449761578855988454811712793264214487114400663394048672900198457974415319550424723880363729449648898146069888999683188057323192209256028283411530432173513821719907947076663285068819038569874959835948916105156947282259255604881969802752683270122146211348821151785123277254822450376731299663858023325669194081175490979312815404990411254886928329563131355908596633618047295164775326154563665797812010692865057238328787168412884838052179438119655934489090249545718953679017701260864461420075147312901736465306578034614895795276362670574603098594083552277140169466079195467375685998133701440291976479908220736359023134581439043244612303324480706281015400260767925494246687703399983705427761222317500463775729468919784699202442310369201093127715938437121076468911279367407360054810773408850049339321944806539647181512934385690724986504506259702038749924052236241541985728703114368612066311821182771542188537739322986322838490363097358464137045937861988472422592633117513371719120703003908500236393296563489440415091884812244787569055114204960657645591911572991557206043044249537492101743312784978015904037563262637039417680534318592113763675191472931738045728038833943250371104437682905852842288605552795028780047106130789852930837453473241213527113380014626612397120600558165212294963264672493732982515825546679301332031539179486306138148951431470920293705887673487510516822139638189721984709182755504434819264350909116492637891003829986876171795441558213881732899219805483879428769745919268778282299174811446625804504129756445830754744592416528606606608929794343254162229874239194649273391140072831601181756457602224319017549216268438933075043328433442268136356030484354139444804907755860067486578458625535738196622490385423672364411713915544156244358701285108667903120691662194144981400354145445521957536989364939910446181261892427051139812370937870554142126313369399743238874153524859644831988471241682910204871947163582204811062667035884234658302152416128244009804334185450191529374042948110190176806621390111414010848740738037854156297831002577253986698417385471960780361514653514704136451871029285123460661827140559114276779158293564781786474642251928406533594189041632347201621050037007812686061277327469902300133726595690124662271029018253842868557754746272002292049748397762065514665039421334272326249436453404694710232234217904183687477203078819106157200234952652972350527636329652487757495987476966291497695597766593918243468529183944557048106476674832995472721200525206736448194642452353991323181697827123303385777526207640985432593952476582739848106423967400803185258292612878014766053288436950060050675574688192567966492639119189404787221562433139562329785222083293061043815071034382169313824873340795528470754457025497323497329394732205856825993596857992366669468399395613116881931003545360588305661012991527471155559764714670087434530126645022239881917368824184641329699805684047293388105847553746563970546872034183049301090205519450067919985579326000427101043309608118007993780987820380695108852476765926647413191328031274135495766141579091565127709536665620986855682462248652761012868346073267027747537858917788167468129579735004351633336839165680567619316272818415941461195837504084343152814990880818493286979322777471185581408430963192571828908515108294730969498681176958843944064822586374301993735167150507814257653139946778789696647733704061834784974124344420320799208502579128134947632264240794456811456836153860895329439578067293360364585508220200871682073603209351482987714516181662213612149470556966130603429947707530921858337624547815085255273271627877187539503529457313734846317277524536586354888725463405644033887536926282943964396009751411491478867070271724678689153815129929045977341658128732887065435264713397255167622599639400930817562319528823242088318760700820312264250184320153151304319203947807227639618222370899142881413313703255302922970768815999890037771077404697748599939757605695908442071605485939783143771674505058776659910618696139917112376563778524330330429430084106610147462660172686488923476151164348018583316773038976312064869980156730271769902686058404182783201985976305884877504572348374161067421845070995671253735143548050682285392096391665900734322378586793947591386221543085488837836935668793028708279866653311293496832140701298762481651363925896282808907437262441243751357207432037237898977721533496330477548307653585688691817940532782164035955754793976759678466411133842405133994151761457972953599313051027710567697354665973124084818957798451709185781786333160550602865617256332931812213235828407027029866340276271999014135494233559604626313904933282941340446952922162924885225570327247675228746361766442398185248714325149464048671397127167362444024716349317459900778337856423450251801135089808126681431599671276732907230030095312676619840901875304732293023664555192278534745920535860611548020445447135073175001557303640394055985280183130646789334200244608264158349932387347949645548428185334398048777956625782372473755475489999572992651188392316480973609896805980553172109713446068422019605459113273957611845867062446948221512934677260116159415847010578029314589593797101554138989277774802607507054469713686216446366702419610634195249170287346986969778380945807503545248632579537341923597587785700861964650204372390186027125222086941324929815424855451608854414927816777391672460964643715112855483858110467721861502968585336449766322213950662543508508294670086272346918424488967187071868949361742938234319538123787413085836606746920404846795977092934905192056909053736388841892061609624407946001128714021016738346391447694054734842815187713383443517478827838974702299020947954529723245568807969393675251484339139593167145830741111981513448677834191051951186346044275214592688104863084343534987962112945961815584440589443476593332863747760154482403938824837450792174645830638376770154662857177193521515383454452539790384185024159233944400997146674845610347024234248213674327918213841548724943693787140756370611200034083874498483566380113812081235690394997117013091245788957052285588916713280515725155255089758524147546410172468746610745531043597285485779910384456043925178653586771236159650672644205660550604775271399180064340682836913848189482993046250282020921272081589474930073327105331696491893756984599556534841492938413629812659762531184202235890325832401207087844212968203766056466066413205753592921223629259442282997846713753232993964077242696153816439903486662676743668813352878362074125920218045069311238577491833349997664383763643935909194538005994585830946948679172862575437290269349567200140279399509013500547020667711470178443908049314137238725491124345880695914714890968901487280230201753066976415109027981398127847613967040334791343834391723975339249741082706386165573066410793760319598084839811513811776754720054652736932725040932783690023065308747196935128476570477225185933553136947494303097380477146090643597627697676984216185716245600211353540122780001111125353718774599164855526644969603557923274038742933726911257268355968510558500873147015369637460419557097271068269130414768028556462268719669077221520882056079338475014167266890716662612463198286412309384510586631465529717630990744188726564580417709730946811484187745053312355586938717851246276691159832751527313030040871294187808863315553342050008068016155617773841743316630961103719323886241308867772726021639980593512701325015653065887723077932205171176682697844119931642331535609062403944719281176994741546646033729883448963998228925837723977026651010228806261433094614388670391499482031098382467517596165982553330516867870451671676698188102229354636701547116085444717650772159497344017822035861483782180732580291715110657820118758571463739341892577780143429951109728333137687611976528107244966813811558736537212623476326110962948740518475895437736319376180984776996717358144607259714407803701201919289982704713562654561630904286429268569420073954757861451040327996596783965380474266262685408420770471838228824914196828919426779438073799110310795642435363634541985735513573298458848464983724253424008389967975045064975575531213678962969072177412465927480944280147855579749637075490196765470396457489920856754711894462164762780904745814828239052213942935753432128792885049393670289640744423789162088077473193551615959392752771690613320574448017372347380509550944274283381539433016106239550138515169339872353881857429667210097878011729112510522931117447278765927620425102993741489110039962099574958120702533356862630773986000193052356759226642967339458421510286973738023807153373832534410145452804686257866940213013749934584660882657966017481322271216101290262555650873227147691101420097056687048590853170091059555678571812088147479558811800587014812951018686399046661858513566789484196002865813443495727620325764878909587813895701077195108067629432231868709618660543082678635161393148130689929051192344946010328499701662411661112196479231776241151514989965660931554861170124818886891713716973703187773694935137789983326319338019875357697674773749115461326095613991429610015705654026060650265318727002295094393132634867070954794068125939811074368594162030874089815928918258476275066508820592335501666087864823368801329454900435697108410842825943822971635491406850619802017839533142892350309973402477240433789078450001378127490240763515612182523205119314277574728126336007460835140000132397326427219126146905473496686245925148091746371312842349008436000954428784947285435799827520247851433298691138922369752311727503329637728542344471141943079871112584098076762271278444567138123408968505967600528890575184785679741762858128864074305211610276424696275351766050747096332170296556738035304378153974605748522955478948643053763208845971751789215805338231564264589181585935911728183246049775695724372157276285949938764037417551468148754063696274818406449759147814072832391396764723162275789204675249460876657861994706060382437587302884808555273510720114035503640863630578415565571983401195735325496359449596740014270043985086866052093467856505337168628786191938426991782753851505810664760765373657933014272148996338003512772357783173565752026398227248189292600463357424572439869065893109105822083911820927713618595700730632593549147653892724069677811358484522742269452734666563429127369308974485068680113999263056471287376046137208973505611294425262285003197652378751727827255618108889496494994250965836148961215744240304143172659220179192843524264359087183562215577790514591108596239390224794643660187989668430948563230384176308912796646855923984494085148222948908547783557320262635570597243951944120120664964043624094217333551472250396068366122495812725324156471083463709796565651909069004151323572677106398120363166767839284016235814211140456495826270466890461171928632477794428377113286023236971944065479552764245026924332148335258211380869802269415308030536053010968800450714855776012183609201341286807161998912883145914480545655114717680203902294621509762528344922025465915168502799109684800336471775095931619245410823012708457287303829648645232108975861956296182672258096404997489007034881160409516911332085633694818349303720554201741385970450869923231587158690113377406917521550877860267492172887821142363189389463934282609915864720874635523886192857994863577824243491942412914704722029051733651780871526619273752395644412825404823862052158794419264936760022733982705363916503900933944786840128429437947495399045022090309060646626573260397325584429120290930350497392855870678254806014543450872732476509004934788963953347278879627187273566552933953232151813745401108585643384800018873024666997863247511394830774790039440032861312230697377463040178973752527468228201020143406458165460550549347525179746084595386283976726928451155277511062526220672895144058157085782701265775579267891644592043322199128531651994634354254371176004534302218240887033117195645079313154479720069309405641439890246315569794529331488346489430624099686839106387506901762049501197879926766863213734465758864349435517698929196894622228730589238499947177657370248291528857992739679873932948425730894837969364373824019565479276484165301643244442120418991180703746627337705005013758894281709902603478884724052912212762941591877823232062000938641671059855846635298589976093788454904858728485430986215130788201107452289293829343341940172496151531414393349105858513901772350438190838940405513184373635249654580089721619730902221580759399460766754968402699075916573792624884053290568815254346072861398638375179276369867376093925698969617951303847658236274725952735893216162244127859370709534830874280311953933912824070728151836683777600740315474082425890593063408096885937105780974314802812746862386770404053016696017448515656852861448218728447660606622604290316292853874333186292948212843209936233973208231156684993173098746735135563439359423031851427854893749726299713820233580646765137017075701669545023316598499135780722786548393092752499336682658990390102498659840428084143733512565949895957170202653886820424647321591433096021629862113786280170873031077098747527502532120901463936093047408157007430509559360680105537739147511091651256665190410035452719776664967002775268511004204854271633723972968578484256296539644483976735748540629779902648285309253441850205651636805623189366718793640058799045654772919523620088614180944344258582260718751057805940768312184792353049109948194216204714955378224525980714471718921351794287136111380288837463202778298551097985736340748797007616546490278513199964034349280354799399217872348088382904726173810668738544901962124387490551648093239565231632725640381180718062238041263406009675718380670239309077206635483473127140894582687014810646104213733736596507308509128654579846870982167121307747658471234935754000880629253158614985276304181986154260784496652825688699422040589427925114681643411235572384259951981884057030707053717154014609710361664288016515794007530122370925870564562862322809821001142264842341405973704017650667949263371087495418079437977849528004049534098884818974974832723904384998703434257841001027836449888590564705925691733689152756888602602667634565717046476911335876634056923780026438020198263762908174866444112401003084589376762843585712849800245213129996826590228230403723386302084187315348071897875317890623263851915781509794287399905345351531854584966330198672106871732479393115845656453747247540675042277516715729527055225988719557292650718483127237372223748162149440703838718617526456902713818516384150007280518878409763673582465121324603583572163885283215198324434740482217694551131099888039040984390825722683130089538260332368483615185829093253786595816929571730582882720034222723948716088783283775586001871857183674477353053680031967016449701030326824623972883846295912332898625198318196054987713490526464191671490038947006565748979915912817117500880692847352088308438879914611809639742812743899302050574878207087583455738293781584048194894464902235752263369848388175918093681313022653205574052871951307243535984471987360627971989299140628143812013052573038212431046066034958650431347060499785645731838332380412033009192669842175416561992171475137045510087482499175157462194176414405474779120649239327110562106120868942095279039832472553851575553667473824407761786264943409626043508696817107946536864592055731777993995252893746111546292536136637228237932020468810234252359541456763636957371658223063289978827896923586897329205640859847498320987364305770639746803665633948885120799887133963282240194553557781192217916917243852948679329783919554840721524121574444483076841562007171026134141851464808953583750717767522694467148998401267019319416543280553969550069663108428388524130429488160503713565310952365190788503515027208948101239621516405351700687612095770721207144887906788081106274127794698921486366094818286040211021410728089397642023321357219282213170159068640599683005498058752612374635294418327547684345282073071096490585908081480032122244545620976728673668380004389142392148520959913179333673836531379299119745828420493086758584009855149304815859957541651345035382015843741220015327274756416063329630777514621982286231539415626630452816802126932662575982475076716058932320611323965762396077402879240379945253727084378258236769101480603250680812502134994662113797523482466404353525389010646347507592516068803100017201558111846008155285342843634508789431851740514553698276121244148325295346989887826125333362303325259996562163216411754429429095192612630441769364966871674907108103927806298217022363036887766716469918358080901404948678895838312176966686537771776649191471548870465656286011390058820972167725067448299989645900793216736277597496996568781735271673305979758048794634338325179843459984033179932691029188178962038334578175326069012043956330092055580771892010336179607735778191388367352331932807250975105240316208486648458868787682466368813419359598644386147704443989075445906514300584559035094743547840771340958714396232320797767781421599603813383713025749473646932079470707053902654860160271040838309548815438215300199985954302328078056164210875689942768864126242152770360052696653925210449536152104032313319495883642647674287560333378967202415333528146901215879255615476850539966144824966305409421375684132653809543159774187651703766833045156015657395239972688333591475067263752051577625012667175495166487801337107188300720513822323666918062921692789748714511432621048098033306105178321350737918921569341242646012546857984251736688274001820350886719944998971770247176982513329027235813839123486094952473568851121014593625000560447882957553876171819093620410449777242446781087856594041144323772062469320074373350137365784856194418261976759420773254742609856816578461858771810507777631894154291807760970630408838433122353127346044369707261467298610927932338036038269142938479638176513801736937670254470201635544679740897156055546487328360917366927086350892233076639889785445526536672931880029654403725287378737873482674306850100840233892959512137716251419613626349554758051470300162531109010452139551398507430712121500806728006254975374490588575011824527862358059494170409176968471424093546000640310787704870813803561335244510451137162423307516205688149222155785149150692185883176556941863605597714985160181559767184054302700064886863855847663710756784952047665529283165572170640431912773822209887851041776146869352309619537128084196531882455402301290267390222882496911353658490617882514484363910714543152943950929421984119752875651658162918730390478481401099377893293058570746125606444737757574207372630607454272510405465735908547436773481738491708275004137922332835968128780767915651046207585226807631428540150700895957787358737535858171526752937799815075405583523454039387978268923810254711665926199970271257729924825666130449718844340920843133089479704136397789400648232318718224078526676360022465748978534121106448398753628919126384610239985428192869576585601261463604106869561974519176537560782415673038478808330328139124405160636021658812550818836338684925401722793863919221502661773216627053779544248847493619615455609296220120546775919909555829737406954206254698375816844756655645049803484411449950237496940219379889874366395700750556613628878298820514565186509044348179697889722157013662404620453084355912595839915266969154505377394993132052411341625004955231067666061625622815589089192369822786393590517720829852351207785256042820759256890932580469860419930955245198554534033800601489838547928608849808601969707761289482858374510350409832863804799339351715192030049028111687342556717311783943261348526630770639617088818239061310222122481509264458465923141904462052314124831111625797374637195912932816201843989526778521097033769132020996171947824373769274719785579761553278980324866034773625210795041085906689075384183061694581866533026120531851697061767354880256965699927329855250232967064560781229283185836700776274938315909230813105715571398475950037058281383985914607137160244417673862904360551085978794114972001813801383135060166871937242672588621551444597160869435707853797701355085250747924465181548433751594391387825075102896139860429097567890282734616997066281706042008712798545507990162969647011538649007447844978124183079999566364045667932827147768511441058542907885336237000551624979792166165760711742164367579514804514474677339271971714072217855990959873115768535432539687110531071706022782795208690498174017785786902372329594839843750902337169555282305502292229810078208337998510074582082750871490756213219203795776538242146029941026797666702080255017545556673294939086168524629186016296056544462376029913790868171721702020603239488542126477361232371532011733140056703718940419799245732177569474928384256415962568270536452147986398068534463791911507308646946224999337617136171683607020481508167883127583312509718842517676723591461254267956886898946999650399630255418157315668206477845286743170751256320507520489864281886686350990794285423644278845866600604642308587451432344340596539911064081705225522760478883179408466675683637349114383438025816308583572561947729331222731867073386482778588041577855385751682753462066379456186572667921108229877803531793186501671151524686226236566250214789960733241300922361489061233577695178384098311262094165474240495129807352439765564317621434813603233989775576977755055197732114411122724632064022959097283000199264550775692446887391428863250156255284445613231683759138783771618337826201101766410781524123978249511057203919014515761255127101079027219615636417049543041766149423329060535396206016075847676918499121583613953397661232284899191976369247606834146553296962344833810466745489017081093660699826653642752873004693743754398287452451619066184852476737945019180047847992160535364562214213000593548647200155759421953576936223699671723464366046770867950769422550130138144504551333028683027346571762325969416051535736820174410722034477787991224131389471177246525080409470735780643763661167767524318907454118879621651713293820826503409181562733455417885433412856416839841825881312581643090452682259900706983478641328147129212736281536935794613235088629321273471824751182150715258491060904073157327004105129861940383839930667252603885101500054139031500144925056755603899156493501869061541589546663777109824242826933983341330648040093876012247089516708025777674494373153179834207223888567538497368760801727103058401044565426409488268305181918387582404336991094352071171572663794498701555162643898738573415673328282501334350410640022455019941737414990493338069997644273743589936162360024775931900931162501417927606374474692582926162875359806330113456841712895878004231892192149897297289901053538556602583863662161881799444205014425969952521452670135763658367903993160195234481026287898864739897337607880086129830375139718515579693105298741722479848805862490469135320260964291853897219719952579221007955954997308100408002752800377786112518677029145378222566160057725114535046565516052728211631371319679208045904004733574311036641021913171963111830314881744923143116577301761216209255838852633598095975798273333946880717988738722557971398767008708807595972305775913453048913427643967837716215625375265460324189182743512392267290724637981947872758983279960376998047653261303468746647330239990824926699115822838990114157898710947392069919802607336137582137255196032094325725638457473928938026918239653951619130531716787631068219011212479900307278161510058858419121041688191156699571056871300112220119483069241599694981574515475138619679008142401023523478331241283564668452562413314414789217499088866025511012471702686991438521997968512536647841251796262735022015009238666581409726658398188123434367028672325029062629128104557864872121531930598328378801937891664448585213105245568171332591558129657148653829431373716130789361513905048955146931613818146997365302958475527639100552510333843201932193170631478862488666137441231651694653266924488513006189021019128100961292498014415977013974520313989304621419149458517423506206964168540482062688428216007548927241560172419254461491204653128422919453946154076522263950896197598496785577644718041307882033581366055635991490135728703231466975882739117031388375587642420082600482097936954331496307652886101815661953387524389139135939462970961893401080414107374087762208195469959204942676737957280773086923285396269707426387417119232645358263628655867642007004616804495204250266063784204833972207277561659499391640920395305317373757055270986058769336180816872022422324086063393834962732130622338446957173960654300072532112981122404552297953105386597688983342844167056104992004172411768493550034079219288581047696469739496932608479233520981270584104500961786838714175893764484820052658673848713188773208789025924592359835914021589371329404269924228890888052664360784455430215190177510472336951135975909666429298995238961191754816178034169017208769380870468110526246820232571487013895651506361099010819311300619846446532535334788676081044022226857251640135583339214221877627492770947047279557564779977499725587986271608614468086480642591190100298304487723726964040575919218920773526007514326849381729197141528936496093939949980129142728376587751341252141492091691334138962513399417114496338155916004130349708754404300396709098559556705818067526858022794114668237327504469222600688104206104404646341807612189975478872033145338881613838729146248893763578846257114936720555310023230673138481113775636123532005765600889929011957291225235372027416337310365805095885957446651643961394847236479531212133408225920232172204534642568344995321748071780943510377569576494363639248458620775794159553683752770573911576018729064056607584219621813352958716981490567990430509312791851053377333721771846993910315211109720623297936044911401223925473580958399902685840482489192617236382297578929859421716422553064652258381636198895852246947179964177292716531666222986885095597578750616004678952709410166153399847330258913035934686662440472739511010875388342581388196949439396138221578296840679589764563372619970553009039757322399945325551224620651767123022915261300895111894011675784581660767197078789093027674615269087149060085387159053959043151820847416097502327020726692068762207253448350316453266299882781738678766510198889888141517055691661474622585672515028945072857464714582841643562242133673721589466221073526605578552939517195249280928843900904417622295560938649430986063940383679881921737860330347425709882494864982719931320120453672657324160978658205678462020521765054012958822093666375666540313663082180213101328834099594761698578752493863435398539432031600822018326836790173125511501912179430399191878790761164467410661447651663957032902051192580150475213803841047574768009728116976341363012694989032573399515818474229907535692389958271418499217861208167512633144360112108613060996175553451328070655528623059807158657722318068131738536566081319164670136760452733823376869941444595368306281992257479736928400959385656172585684808783332857087463985703104381030276840407791387315868147232735896114525584173430544312092190735019065857502560419306213937770711302489771872159685916910834340968819806144678069774763053471968519826087640941451401858911004075672358473439966778295840689510355549491925494809748812660075215257416910549805764861492240243416031624044594792329266207315685527730532297971014260714276930952811889974428388829921644388353348090743858413644229299269567805501826845780815031142384901855030931555802213234485369986283622957747880416533167725936132731655343247952415417402330285306899360326048921674895820027158087085076858044309205208191842756436975331933940376943984400065393560486052541251753518312835714389010886520947857385875601934629624775645904816853987940333801889113533752988132906325594365278135966710472057115430430088839890394378135438737977267754871935825240307004227386962765360593301783763439572876937026654717205653042248980376020403650727729340325923385874270839451013139979525076430730959853018839585378584041307415867103769395624145242640373041096352043701646990165804227625477669051557307895479436839481804237587035169622119714397784827231767191690525121296130364498313758621970452243904463259891555298377999101083049335557813287353162137542189298723370567210977043604495695633966515474176534646609541638401790389382280992220492021741103610759836728792034878241194863302489609170554011501146534430587150149117204781478440119782419887737611317540686825041647661679124004631350179592609794289066549085203434523943777232788873898752962310447244478321576384795947133171907832753983420759417869742375017504089180870777933187710246316755220473828598360473957727130544172112863939966105018070734472762265371196389847381938616048510671168750479047116388745447049368667047909406879607800227447395360915220255650493218565390060734577374740801988377833828561671419834393080787414030546458992039382256809362957700740869999174280033915447012953664535841540344118806133542649792140437544133277037716620757087905162617353709616808414136237772416756188039890237813032278062674338584358859575323553719926322829613382042954549654103005911718984846769854912527860695002679281248357445118441532270839010945012349711001179294162196140514276768479270361177964719230475098217477705586031453160458395462945843396274657561099120168598773343356885625648955497183160425448838257119472207470808973028587281083191248113612103293242922797186315920057893300690946121342061705208032977363566880061738535721378052967881793435300156824661467508771336155870198561026170679159882581869374342495800669019252097976014120575831672186863237811668534315467399628289648241627285786782280656662678702210218011124931481367289909386932713735617185488467450075876934047390523252380790213759917910068760776973086494306758085312049736194676923773814284368890274082604071653422796817166019388404488640544942050798686303967955962275583618523423299829674676059966727999246291649611882373469489337931146524281926430831913466998596845386931029289295124057995922345236553825905765509007835654898985291840373012882283746505727225556537920471581616283094562217798252171279473898644200843324359298877475984027239772257782226149055505678728463375203080304623499121036814577371810967774069176571677427873017532650562639354034931833111099635463415527368445620251784564523648423638662912046209224519782453388289293948313080774352188280961989974335803914004350383837021041548363279728731677112916117715919337853312911714946880077868404648607613767246015494904639754752521934962561680078175668970738292972449374528985171883945142027997963983742389448880515956330251227486575910234137685674783050413731788459130394533300406859655438204233201185261208737094897374223624578983556656137898399430504562562669830053117088151556878397658585881814146274969843526774080598463925596434560865719850458623331112793919823473356289309490170346060868084608995703317092730292540199822191622021214519200335293435155810370693117172030165595752043847642741605814251703572803108077664426151930382829554178236413491153665349195996936795392618047674968148352794706165353343235016493239456781042952956851584242666457431578350678886422054327797078719089788895092843378140225081505418767222600925625668189037351407760515818002323935578881092009520305110868336189711296118177782183561248686837135764493133173860667708258779337589741083564713828655542070047437218747338868863362342897608004680562007626752510663553114348658965925836391174495076755672152563805497535104206468089315416682964206731660771971303988055817250447171314657812722473805554690677470112928367420031699897400047431476072185104058873129006629791313389911020510180189653546787565334771139412536070060875902812538576946284129571559200336415270219544923752247640601196272483838504802063229601655214797088812572789434372191012101341156933812885561244356093565118250276980480640171081366652246710828919549485778522130028479888964104250860931757076580329783609864272160175522479676953529736791870327633604098079856890378298587232815559155616886802803974297104854758511216722450456678382134482407032287452505768875151231432757696975887233010784267963462070052685793330602787528125980394915208519290269261441004925875280735721797937943928603032357234838335704057324129334327328164544994283241593459463885753312216229902127971132829177983487302891486156765125000305115236946874931351859280624007208073511763887051753473583051497093132951148026235958756942852111720771768532784513872617809420807636390581065512120886039711185696953934796198255814905740100232263687629706598435733848899331214270848163411926119866252924955470502636072330015612628265804146383356756364414488284661054346097154770591940601431010947666996777873058499166283263505850139250384949814265711768994629590225277736620813684239050574592041781030082977829944821807485109355406640693638421977011895116132213293579619245811885195012412495891489018951744993209295145899785159345184753038269476828905575741892633500313895082263679890751301285309357892672786913387822384276511769947020933787982597987834981630227358865173177950392840346075730339705999960274410984182543204519012977281605207318367046788807223232549717033770763189337812878997208837944066991025474152116146574041823059232467986517501581932342533036783813679154634490729462441157792587229954018639230687939943972589582261255870896844117753566140644314640275018824402695150514580122996998417587977604570433910637873800292688289073703006716285812214386761268448417707087620433895854767180406207141313510929482463930436691558264682210991416027905442356016970867401735533422344633436466706765320571448830371987809278455810497306420964425457349920790501596005884494894905059980674739541093937776768571931754564770223263315653996154475298256141129273843720080004014204765049186180545479795913597379636888193423550495741145221794636487969727850293346488220285898071918258071883748073439541504683259686780440331990624881169581463252604125599583545353180589902669280390487094024246826823410624811174746159806003287208762483698845109507346058361790055615049360830236543707467351867792836365574980083547992598021045291711917010043471526637821116700781005182286614700091971067469472570881771416519989012451290625801894504922706919959917044558133679391784236200766284359420542855580770136670982757758111400512181028429165406096247257927331186824822698139711814254820291393270467961027717104727189068303324376652609326890913187608763101265555411957779676310637319704543873766612176091118176560561029895134164682320994741950895663208709815121803651638560317359953972923953454373254934522040874626234663964081708512863518860449440502670352247633839404630572744430677730446166845180790222476698280337065176470814926944007961023303301445023897298297852529237694357868545954718819776629586103223240310474303837545040855033678497981487929310330204142299707235803617843017611430504769821638982733510813403566437979552112555562494249748196647842379812637134724446738745582112153781065371826640603486198954341263002037584994016882418168411530722468546528125378255076145205821818862833800809562215501807422923521369460254982878515227479354429129716450028251421667320734339440966613973016686217716243580298024345908436227179899235237984741548614862559222886991895732511379560413462628281949860180725370675384456429066249778754002860885236085831276298213210679572318773877182865615586074052783375263869132110334120094856919178988956771239379712171726933973697805561669846629287997256492889306045629065298270665970565042563484127528793323662472485983545815184397774638718491003547022413467596125653412141061777238672808240801436427033382866238792585917409297730966407241826085057982780954444074582829486142969344842248855992450560941730249663548595091958735562388757583416144904229484329128775378900861562893272725916056696097292129140477665514908778852623581524666106794046023431396160366721540395016574558003807370887634013668861487303208756050617353777113134451682160590953976525210560327237825401642263972775970350199340928433269267835315071934539122664499716281523779382161462992984354492473115751384347991243429184701987304648300715482742723444873986853179776822892933425986248546850437701775224043647022794141095702489567527318903526187997209096129720131837960819686310036374669433760355351834711565801086387589093493601824018281365233153080892509297743495305685610627871220833842299485555530814619304914845770284554162902322431743422210055056755676917610544475148460458564753368138111693933222794149755486936220391669514517434885191065593909778423728469821783361629307737027929037325876674786467147341383058333546159464010176467861672535596675882277305857679653558667472134670835363252236660903142312146197657956370296992902132242423802549462368074198554925525539931289836931304777190985488198514497463854651088943121369904342806621966213550833664194232045347394151266692847255386522798422188777580760523050481039708029118408495533859787765181269230630320253161593668897165277501677204863036763424966064768913588164687632306595967939245375550092879380945216101214311728990299558190507572604344131222043271347462726571156338870783328680610170891912152935333404720949172251257944484221750135875037844192511932530367649248307193954222312726936931393264802814827321899453840377416212025899234968088305168269752242293045243189500515911137329233170963408041461527647438044161693460946306740001028869511624402306555016498175030535800196374993305829119138709447291903080571309718387138832267581509062763965000657094848292831990788511821306927208812616525059573565593566095436347475539691752866616426384582951999917288921390426111444791097455043212211434250291677229990881060101751429058840059680034585473398808252089947324399398232000143974952607450708336450969764790702461668238789955567921727219911849958864625113486739177541259016129017853245079737535635372108737802442843814110524421226785640653862651050358527182502082449320880016273655534440366196016514989681351350873687310150125009423994418926877475110325272551873534905427269888210864451916095985569164928135340501123405720799501808515400941393135558871374190985405001676584712041568376164043014671763380209783637167949411482875528943136270209087263214203008852865737036185680702799564002139502664595642321472185573403825224368497877928259998326269696632575500810235779213185341282653117244803837025729613818958687978793521756487873504266440416729525808497357704078076210497202932760018146265457030549164071078758222481754255316620692975274547272949771716079434832046501300058870211628403803900518118113794628559961095113574760995531072101588059171342535038109113452011061826802325346142106289446067356416855848365671003371712951696205974085560153385430824851157431747216033309476427010105001393157610666512635604178675777008121865043861606209556337656951983808687237268164626062505653153193394847252022529938276308517658760605063979089854237492327013718540484355453650445921767651316532281034923696099302275222614650100279690670330377025733350977316505740185776583174180827128256703926917438805219569647599538693194813422401544757708044400562476340555909428521774980707050102011412541972848682808634872370090205680806742174214536504164311080564901609543128075167585946929524383689715086866336086022675164328328566774268636471571374200320793276820915980263686522876348906471743332028422839851389318207214470321163030250152958348306472817105017901207060447602139790665740837014698445917505638099177931538374327452518096519247446338942409049754726665887724481615233127838956917361610160841006539480449576001703235549966814751718386856388554591145824587891171019964361431658765202991345495226757894109394656538162334461246417213485752001712579515641351480550968338545057767684958885954970938892040957116153172170352363924578859295270477151907024919153138188945281623799365090838692188786310104786765522066990092506522588893063149257818201097927627795747112426922793362115338381586751750017086105643911511454721333217063525018173618167223712686206813165167855023789703221581106683665914964211301007934215927843341312965731938980840652406134087103551507428183130388226740001790363996324585338170011742612306100180989610694329710674626153222449621394105270664808574476878088367601242082237540610448335674344793375667353250576309011611794356250446815457001437302224838525619443739879937457281069677668207070428959138363574509959378128369749122449896995550818438875068571704346140351478726177333271322650294749321892596500281013968334342638823594901066478866418254912195057890830232819826977363371290322942447004511260880680387964095714402938590407961344354674506432882656474737224079030740292611533308659999139542554243022834209678533949807749483742574850463780501260514914800228951183095517424427302670596678852275070041682187449736234313392575658600695838082499832162700096140495508443729168058280244256712017683027294450386359496809356730872140487407399325223865760599976544528110952703004770759089256739868941138995443347633166134382623038409695390337901867335650980545885722756570231373213297810155422781148679635018902223560513987782327865250967084269354726144442258865497107665923850133926449320316283638603996577318182608099374559090949875944556359632456221045088568005380293027371588458317904938000655299173984787448302383533538959425717964328592925373982884519775116589080594844002279963197274351282311083615097643324818504583421683521800133082091364640883922102652881092197916738974201185543640142008779894621571274969004924557133717586980859259211171846321416486636624352053892549063590111003537294383278164879274764901437608873071063796174342379564311401963875854846516013856981439325563596135961834574714896693562851947970138425134077854982045038780500155271082926287083807302904408166781926883187482628406007121698858962338915900596376419791323560791949927531506568938277522749688359055111918301978379294512621774096590293371314101306772901005342635239318201204764776622941940742692953285368189685381793216933278153224897680199312068331573892014805530390751880714613923342528092388140710588985449717433469392751466340812988936485282602434741252893918929884386645715463470181062979944467505630324347746746321174836314869926389988091833922955088361067086290168442921169148109090346142523785679399942649865232542634040487921017463391996220516884337814140204079523198174039536396138148168308007016639606494000100632248491988597002740630094935567356098474962689299311400106810915828553813549297328707816724396850435051840777067890471061610848455267785708698639638448436908900229328005964046990450185324366402256446732985329755140204724421094580778761555000675619599868838907813510136051792569122835845102783468685680678751993389179595402648938669683805941140747075609436798333083092276390435185916676201285698633718307894144082842366565594171035619795234971578519860739336316864358875443097402649682244700730667139373188623956651179232547820516762833354432543197570532485159527294082508686639825533678543230948882256520992987335829549219475507234345886706045928793758128989690000473130507581345061097100365094424327772593110022838721137151775764179368634699224914772286385865070912572681807185809202071727020967774889554164615786635330428580460478262565467301034798323305246391732820335007296708857954635613285996786136288563291129955736875111805878431156424081031844275795196805743176009543138718950176578228062735551938970495116393483904884958707905054543911556754061533193110064360986683831944376152899635038847987534884627908060342592706853131695558200302000134471836075094365398904353804968287100793931255115204388512673891296805131053214141606173306532311278354331973440913951922277250400091907610291322953313123989053558944051360333877985234626774193134437846610539789989055403839472756742471750779850309760136846889604240105383908303476838852089983426765420989532207840989631783656715947312828842024778568163229870112903671935808772382320678661562981051197401923850384871333525679940986969746049644299801548382831447166622105162107750454863594680867172688636280005494786167020771232774218501491563506807396842169770444554416615653771685960836592972603925103207206178246794770498373043333063955407646197532301160736097392795556414757570126507222309741722019454041889879656865406380612922652573162714794976871349965080213198414448677715802802506522815207095205568320006674565145226627944881019729611102273621159835672371428299521297050084284560283824095358977201849678121332136119455816369741707719405475685139551649094237004843985384973777416801175056409621852861620902531372492584818087274146294106258921360325992163087455468077017567510672409730785919183933699270588238603382391150895482909177314074666724307019134126510590368295989497969900666105781615794382740756521141271350081190365211517510653735184190970254078661401260820328955856163681676333342283902400512790642753343127163913923575983001331589397529797928077927590472464287122108309858261197498861235920267572992898607934164086622281260430562939302982369706569170741668220844250258937058976700830881942932329915064936033666302314350035627078830449435020287778812376819561784383746384846294357025897833739304506004877917154513212506103644349581526249069164262664334761225798583865082049927708790704640889180356185139725662348035730764660838208277911253626309160547864983168040620913713847524713167202903073108558092519915206146143581035993659938578607391351765791800270978156677747275948690487178249431959852106739214361022376637800757234111501370851356129563612255695952556416245747383139574182619810181959352553233969990718452576232877319587375477709472577362433530797964270379168881780595848826442273825710514519687729037569736597621266477970101646391395453009595410915818105574611473696530306623295662154969454010995010256983943076271800720385557878662412980208207573532664312444320993058331145290455899379665845828557799289623985146713146380291054902308168672177001217267408788096742758459285395020722048605435200015769371714862638230055990535630506709432556174883093969086906734196221047344021089792952951490347161459421644998713118421960306517373702854836411468212612105093817673383256015994462739907253730281646670642436456864717226041293796898627654855412929869962426760551747203515860748869747774796958728195636594026606441061361269384413736957264242096359306392724757661155806747693875694800545948983398686873197743441970587232572733262806243256851697928557980721578374811927693650591801506635120224183951097412970135561177938039241698080356158501023066007590927734420209006195681127220615235809252002438479093329237781676680351561957558244371790387993689281171984175432455799063040529382144876213519925185416948612789658852105160392580149994022145986939052500842424802744698160266928626607729807609106638891073157065856005963510840412404005423759254235526198540230806411532475150556981451939488984807186323551697292742451144437590461659366841656427036764837779508594094472093550681555808883119089492627594415922464926974016250037680260147606758980498841899169427446073878147824216739941534862507641822438751558982857754673447508672973852473072289663451181516564111675458161077715635602350864391125446962881034932335466580226213923289149891029553438781001704204216948629274283251280811333974631907351993409914450001589493718867380324552292690158542402248440689903585978122580448980790150777537332462274180553806549105899114357253237014912753073553785455526452053464438385340953288302547695305041494395286234233321314905160018653420926726436308819590404334542413229072975853989752378414782224665722450390633947178474059718279228262896856569641160535353790636764593202323983394796307735973480145732538195013240573586189151037626113802641988722400496052119668509955994690400677681322079681340147658596082458012434792688857258534954277708581491894103261503840242716203605693723507187819019498382792895758572119125669378518033861555922107038053976895982582843161068896577134539933823557625347751000349353723368264789514818699853483478871136578556011760169714814673446465430832676246539045040370073274657781529089805720819987368214097741944000690974395672344947939374959407364962837189423294364101249427534355844736151300303747427818740481491230431259769118466492675830799537082730209078114005138822516385426602396681886974880025370517524359356567814745458917762768064158391430705663423513742841659588059382223688571437688618779020496144027914474038715821552234561046299630071510230611270744240528366714988458971123450982069616322850748065933762023108233747166057376497068363033261133040363390191541532549441905369387407259999542056315821486005067858494272058094433714605502504055873905357950801209387459375996128236432274154296952612383853050260896794125307962759881281434720609482620768698206592063879221525839441262124283178535814088420954343096843652585624418951142797317875768992479632084539171330249774303859308756366545340843676479033108852406306880478532828973972070459552914142315088442580242825148451484920485512531472418753791901877416308048820646507144213789864960911801831341961454491430895182532954309693743250452770103785068038231669347327352874679852859356063435100502689110480861671449714211922808172536908185947914406154368330502170076826115023170008919973587066981489597073350736816189537367508027115879384552667778679731707666883426426069347935837195360565018240622213067780200902469066443246028156226169226329354910537998287962705269182984150287747950079896420484000293513090662567544716588744418446951764650791122539260043187969286320301277889657729505441932437311101130812731182323614325689479743049811037039560283035855052791078757117498708208380882046557715935938747204263897109849058072986477135224488444038074042766843553607326309835999426127512186146800004584158256098385346793924066646674645760227496991173294682924634678696397476807826855287281530960148009695836700156396805075521196182470426317245310079319588814879260091537790066625426972812617959214158423774645564302587771778193819897901801099811311945274446169555946688497797201714767164708315907727280635251828730610929565290806712341088269199153958203481443702789729916675808873446944328031496286494693128885099687123957862326879323086491152559464302034688761264292823910887017105718623212174459341840607965737156156062803136656784908330468690950877083432181459410044690143898727332968530739492080320562236001916337776884274481941106575072741764968301084637320039205822135547818510388204839980519494663387705850971031615638316105278085871353619415577249225836375749215357224394866141753515031523922931563971141333213936203395076829922771284371936843555837594074318989743860463451008098838531671452902315163973238827192725572362708058062909614374578382763236891064321959841328532105852868373428390029607042397890341463301973960575246492152662849607544043798751826292264895919379342120646618819311222633240747170905360432846891639956885324088184290658366536736971381665869403614354510627592219131842544281162301305640191371944169243918773300042615293274865828970136471277406763130946953994066448132342486620296173427106049677093120668730819799754953636723648598636988730345164781587615930374826198814906082617148108600292852019350590012206658167607870160337401155558324478286260320937447897102365099443139974219464494374125221506261586781505889790559744775249809805746545164801030575181231858450685266713120530958692180389438280441915385123205533141344730076877260654424838376182398078010611406630600639263959753354711228074785840846021802047279802998661610443540342957743717711532623960844781787571329254180414257478410064817000731845852370669565621829628093627478537781144989006377909524064493725799151943338773994390934307919874836155664840886392506343370729830555101999116776116224470768123681148586384933618255434328394268518441626491582312609532254050222026470222257377740643611947124430391332415661333584360087944903047361532298396240047382731619097749098807719558103981831621124174011159116817187817788329278576612575327206449316584029780365278239285135369807319127270698619646572733505218891134540318296710956986201398657940195221745839837320312887949641436381615236854357043843430987927186531859875384445217777410909276251370563483327727520829885431905121341343526348882217240229646413163401902701918055665769142738558297592178665101652841671659434977159763773962286554488857028555154189241517716881763459971271477648681563713585852405634778269979195526226981691427836598505560758923666869901632023751257187965352932793745744195692776687758966937723640263115803586056570553185502511367906730173406550602566853770933659866223427253237924660248947355399103156882870808280540074418012329428463847643928487641181240723113357837538041281035935338638647499176424622894227306332025807297394044449981569042166423872746404953630835334115775773578714754899616483593337585100332896022785776196299573232260623581825245845692573817339546333578320366749035624380644929385138595368846706988568731871271341222168757148491427423142574393150548354521367671162711185914696840713622213191469275943784329837081259746911507025077765884573461018099070252948475031708571092099220495007078272952812252676797111270177941392552717049759509711402740437693786922086435549055752060176469542280253699743896980615970303198949291038140858775849795353717726100423865799280468247862002282602965336444636042559538026458167439343277060588696981741446021948169607484203433851961504563538860520699886919689518911549084605354865236658827193635232607238788378495922379510028860717620247196778430414665056315868245212313250602849081349573914541273410012924088209216294878030682548507119588050081952802428980363055993403557692625987258721215648736150340639596329222239795323496406424555334567276339825118457078474713598186306714880747815014502500048674996718815137197303844324866146465310904506543837324166666019264652793696653772612563522187965848539327871822272553835071792301712987126262573871595917443441207189664256789610845314397672640288261925470705211307257820662425815260987969622082050656471557891617345242376311329173303951534269296991297319941076671651626818254458216705434621479762907214426017195638406888580035620509135734732792994458849159194599138374691175647110083520887677564243059046299291203272787551480878383095161169262120845745605605708522868697039755544578923917949800827182240347562400994416546866530704628154103789301509472744970268498536724500733336832696752645385247457702596526814891255634680620655844847768296744612464306926183949493553077068963531517252516751215464969267063754771499932523281039302977670284290687499689953791578920307505089917251748251513201231789642444353181334021045571268186551131094902016615160382440239127156532677004576440895659406883429306147512725949616478626384550703654620168994487586777995613300439936737620465810541422690019965386198390455065629863205826113676041090927217597121508467884697865183785472541668842518152887595899282462313198870644828515041921559000583934896849824854880226822496506817071533121852833812781034218602193227527755100984911344967291099442098470916459050433643743579214232264483547828659737031854768759966483867013446919063545367372997749318257829520826620407643413483904699141958705004325120656916832248828446126911256429354355103546057015995400315018103667123293336329419639856545431935747636539484550814248102158245476767263879217924027084914899150909906505439360615526944143306992015607428911444330749719111144721510089967191815207433996455520377726476759146051284129054216774508708757179648348599405082663891197054502212917111534094544490791965141894549001123344162408823253385119321189093144674171634269830226156862205776251941805082603575736893559607870702213707119416945554221489794511894004648635951149664480052521771455464550087777057150445226194554631842007900674572490440428611751530124482424263818306380772921929806939333152917849929513962575469353222776045358846994393951401307709057504364471994185167708106307254673514908015231446675965087081339497151692706151922647707143261963509464794391658937152589088899415284142174522649478893037317146891327525541940748703477045952612211838752826524673033380505092900926366061154040262950827648689108758530203839350957615524799858434514361728694850486394055792794413095721559636889021144336697177836777895979033695266122390696444534967227991530466274265979609216523775335160167640748691650063243970562295092034710702560489065768751859708734919165206330380695337844935607569758162662767244485778211999046710190621130234153360035622469844627428612913652492076088431148122016719051631446985480725013681509649467181159689199796466964514833220176904008655375410752783228790935821218116018696063008100925326074479657237011945341766534889093504223466799825634212919885370995184286883275110919113671779025542851214756481810327667836710000600749423479774761136141836522274889909277467617274376022678133538895360700874012839709166030234064165275069438782456575340972983519820803457700810090758557866965124364853452218975790985771053560522786115423381043649110808041801440116343615984592091002998697615070404530521242021601852269952985345785471331971353574153079005928105638245892808704194368193584983276285074000402345623242939179198983459793186654744299545265703121753459242054098903890109065223797730107345144552138331661399183874884389426988629390567551379097871743584656551099493222366565384988304381280874710802860787795952508134770788086939391336654971175284795367877605782718266529002521851755001838438921272068876627806093027966401927564202233359208110913486048866737033560265666196422496033975642218932813045490968466120147740774520717455546063712957785332719935182765576110579208141887117047501708007635203416967621465923251064911406612214174621284318115299728771089209428119526425879333845952185984355428466000352754812845648417509676058723286758776084396446758401918395102970383697907521463205776951313672233901915886008344307580505549135769226463873998068431165974561688594292244044343866747965121712829142141404983120625916053829851543786183876329185404396166424761615541781669976093304701079050700678816020792092661528205727966135736294345567438467290550359484843092949607616646855287580638860094773166860994316968144612169972403082407500358641880517450024024668208256553353965229827422090420871784651808145135669137684185975454131722925719934133131920286842167139059627092286075333733268445409233131337195013914760336455096054700706487955929789020138310637364160789475192393959487743462829892168535658537119106128999536566726362626139505550721322321732700169345473184716234024536357841828241212155460500482384743053220442188676094506230716556758430089594209633972297178710574307659304885028532635824300783222307224839804250099462684826842278182581708283031517285972359009322640219812170496936614789402001811174913774904946938702177618396469884019613423899198367826379465482050066448642848424085525632972407769988112712752616725971291372393932644018622670995126147723996270213482937130489302558088849478820242728664148577292165899294104113698935418861144710153404481578477739174167721183912128588888828146680023291604711922171359975819574538492048554613305369087865740180656868550777971890050644597083043932340918089915136342607013422015076384101202084108875097255341351236806668858046866963439442232532374676160499910322827169717608286222361036540816130742468248892625834395810238502754779697445173329762917048777427713028478343729619927571781705563597753338335240213717153779252209484042270071076308816314547115175246040642151760004161631532018277330970037345975762948075489034142814403029690570455752226364629353587084677234679030230116726645788601546186710414272723601412860457394049294677259772858897083174109417300616446362652910503827734151909789511510033689256869214308923776714278230468424423020758593220236156892229700965653921515706495025336315890140403983685683656691772176738107075953036021862968224203170356073779780127891828642446276747147844943660644719523227212034662460878947921502969707962914683905094736032111502741936574332832982649792418197462867789847938649434524067475635972959411115899912707089737946193353145391441075909581040773150493520737916000025364435792975130187355051739294611862109380283076581819194672377620540696855505486028872792013184547031121861046451483328124737834939580564432408436312281020347128922892190343025172430740567994148596769800676591833298147445463137492963419591427316852241882603477540069147460852988409025617929042261526352255215617086250339517256605945835095385680080457378784504024440561409362010439912272024196528073225508182336208339209052873270450162552931956606250987451090633976692299986386179423044784440401351884422441551434567169980480531100581019440865244870749407688717560298890205659274574810245827679342507737002420920598007482266731690833243089546854216692025664586257110117866799058644788300647027973721024669366124441292976829231198992925993665102735988304253933619419299755965419539466605494069207790758065451611571582563412272023826507760249115322800434222054979713320770869719642877580139623105839255088495701013031899148498931796291704256814086525120105288231002565009445575680182588742899064643010776470016076545182220251084325803726058204340950715965732031807397435397945471125571361424676006257399891213848030969133764389941997657253172606177584289547729138862163646895078175170190517098840530219871561756900054012684271614016493850228194902810978956784816552942434230779594411098821456048302319839632839626801558876800579697278195863246050089380478051458224493727535755487803101434630023025391342852758788191646013034191178128431965903971769639905448956366072532783323824409548877275483571294476878085813794855795414125647123975337335841613496182173011697725362923156904616981880992165213845332111183739192412384477278214163609965447982134456939852034214725725345248446835598780097647045493331144060270991019688271870100675532800914443525644028632459865867719636729362781804827273370392973608831538714088825036123630657426528704635509310926582359097801818104788986025649418186214370539670447509909969153414831268002518099382275337107088195713784582135315506808424093522937724645771224713613013865281043274352363879253280025957990206167005604443426886384809651711990606809287459132292064111772900915424087929380742033784596376565778380791099586245866172216332594543616383171836516541243637338427914389300216813132135594643001512617710001138782518615095808176222214196566360536623108914645943048616302252380000832936363865939228311925479203785932301049879452466739016878861953235649732360392004726638981836223414668324579611126514653955778364164134746041314030237109403894262019889619585382511176969600961551888166159789585253826887827361659587270693103638431508222815305423187661648826967692560897151975729195686708461060333252117280690015161991871153503324394808691560816412466088241312744638764136694857930070628002893658886043244418913447879534155762309494172604200097710974325372831881674933549590769015119334660065372864524715111512677630667938305657557737803825616271692835804955419016477255162431930572892014758304704747438577508197684292864090219398669441277428813873438876407201926850717751741952301716733884619231853169607146217117638002541020418473421276493103138758976343069814645930200995544753998900893042574047290799354487694879321438347359762493351561969862911499272084600801406529398691330102072459058213874977570786267759234360377768901792159895397525042460902632948709430084792997046266928220066892390385746878023343343984779906424759897090655685244782145604229535309104279547282996815157455972122962086602504237634341100256024576916311902955151174228712150307698464410603969406339753165060075039246656145720011244874248870386226083365285304373946452744451414656429567170945550127145748846722212449296483438163332234382129449625375531156637029110725862687188414049045166011950520808981266047318415458055908774458497833561124260206973804319634278945912955534601987217999944371841249070672193444145067363661629940687903850402060816559997965619724741555062739713905057035878793504776713681851924537670267470379356028927857014291092606609684098257346659217574281079722973020372236942710888873048853921451279006718571274561011827941138808657826286262748919922978015328600914421891198975237867649528873530875898297115131155403001686069515990303523120522362359792704288402651168679333811821627764918252291331038743119386243496705172658165060055982217389253597278883619551405172678531503080727827097915262539482314158037481076732523712941818519147744093918368515128290837638277629529933378997190829924056876830529412285221895794875824044728726347717171520243758896966118712844846302755139768598535473889936278207669446742897680021103187599457089073776518114500247979879980641082698634385782669581010029531394228690620740504941007773444430067443393542081697560415431874038767138940755727943153720198432593491446007337021170144153761771454938418225950922635114268963037508207885864334373856300219646208812250796350945643097437043254175321094011336503634113361882039894544923581386715031429119911857274760130416681553221054911986695304451266842715338912755901449296953739832174084345239307721115009032317502989565597872519095468177171216273478259631811185690549475145658200329481648462823710973620335657592532893887064239407032340801833443187361681260095487044039979122408349857960627406760056471407293621922512312948947999838837234426186492876078639226461556483321010720381642839344389973120212479286771228128868468952376359169217118676370580676528598673452514240699610237862447439215058289794957760632675205624202244314363760449555611205820014575629651453359639645197262261559284049240298670184964102410512627926328687994943102195997324578777609890732407246334872648416464961085597753570997187156097185119252922287461981603626094345841480771817767172540834572894938050785093050116143975617568357183980089468840822553030014339130084994676554743537609881729190872143198595158779528353399532947936820026877791244281870355429011748606554806749741186853378528617781268034478541047017335576256535384855850409550745826748202840360651206339331052490014261214623811378234085934203701409686514029902493723358937804724012072868459193205139860458068427787785037566798537013313124301855887503848352835768218978024971445803075962269640271518490969888810712194517963144945700512971507379446907557018990004143029987477006646314328198372350596247646045962501850477979722846444712535825221378211823591882337285897655456360781161903259505735288907583584874412172613314695798884882204446252409173046167438624745594253615801348260678998345158836999514763033688967515496130438354322408406497194251273394904520865349348939095885170039014542218686819677262084672274675298817613396895052707316467703181986558163775054718207717923093552588260484000933927213650930785093140436778917723609159056768436906636270821148636506729165216023836080396836834132288762894248973396440797317195923437463193711594919165978509781428279054493274764479596129203930355057438003598461211603907859469116066545570302754652943969416292583569850241916438142482661761995075840949862805752596617688342286428820218985251214711322238551108518800101782862564132947852386924689271819693815325316426122105496182336874324721887052430475445276698192142490968100158352127559763687692483876297500031955504510026358180039856116042363525428361978396129745156326027936869819347903094524329902809003489626882879279299378430080796052339532455467814104497713151065238282894308595016846551433989688187646750478678539930247730950456331138471408305242913430589987413691068734404809761987043391353935700518335877391246036954947875594954867902170938728945949738882917687010043926970898524450963385841737793634539986267296059481078844569079349408038422299556852481882104619300858812010771536568221847790443927979200841238830292603223723315003239486832129171061381854878006178898011717381094727763526181514071114675276832453335432653317089060836352651534758945086747976141879022733798766261717685963990270640223012389569361833227174544025701983332267407449207229540736392215230677148074740071475486982265990312395547068186580131954286753974951239918771504476356063696110675468005459973388724649997737099403075774573617173193170520563193225085716387664160119684535695979696676094635490979606737993005486908952319941115164576402418122156323538434920535418380807893909510140587863369309658195778107597928844276317003906963963833119816690146159763823941987764995575265429525737770391113776439369178661625049074623830512099938774920564966349925318133774522658756855568528447409928073971966453316325319473851177188313424787664150024458404967709765251036129977026721618767987049997715441757662718011457742625021091762280246740211259355052173062354926557706880006772040139796321723325300255281859645319293255122015249796709176220865392693851872556300679673430346342074099037966487231909857794552626727649237196647727868093292200187619019707354947082951876366756495383583949769686080333173585258067051048263006325744467551814002607601570992458433458884813792876444778021488893320594458579391784899992826903555024318255763792382079653062293897440987550733146422578724641260542144736997864390745891238777088789212159554362678131171969405038915243124356866494917118385425095544280831484656142710001595991789564797327573402853788252966341110718559844167908538093317888097935789634773237976417756427199746480119591394190505594104193180375743827389811813051233551451700872574585075252113439572879301182601824795986197675656622147616601100753130610374749790424844084934499333906357064644474328171233669679633555576786882633743337086386163670427173561688008770503603810292189417644397651234442763137875137360897644896557478054097763933530486043539089791069027492795092301052115559889990018656243520408503094519778462642160361504403636975379458564649223079379343835920204254057738435354718187143091639324170317879406743034200686698903729723514651545860482582379541959224945593231320006248697164463979786389765273135041346026339024978015016710484061698589336712750540201236656576909593693361962960197833122160104055479108254000812260512262119470590667576409906758019509463156201229980109191619530922880817629519664214159994304984907218878374571914963442327986421796074735661911202578672334390335159288755001404507850074443243680882674266861787706096397673185478153027081639856016720499946335809247689661507802179166097138111522875115650166650497899363472556621133241299896333542671025084670378775020691129767689362282319214717250438417564999823536940107680518420767173827525863359006046315239682986819488334212402543257717841855674674226567540945563129415201415136729300585881864863329639782234114745448920244916495360547265360523768571937676107859883595882521859982531911866190678334365354179601668154060572205791116248283796339660043989359663216219660987311199915273041041862709388825409728248999132001715811007255922368678621590769377357126247913727881803992202784126414794778764257817482725880750500270325283964356517362645265699052232013610965333674233074820376841533847804868567117837411475692872375654040687542607007025004258435348724327055106735513741404768701918553246989384365396214896591748358577460038913976108946352636520448929025407249797384443464423469380605476629444665515612899880393857055749858929238146122206497649827791071652045021271268324936579039141892418989663618918591774180206343753355228280253137465235194906110196989917091125255342764743895968038970734051377959000041675654814360254613850150918935637539160108775950579183871367039009158934177700621843445870823947511185440936781024312665325584135530870625424908948256932656259306646872811404738575934122689531123562356627607338033917383255687082713860662389944122195558905033478152701184215609148735240405571412691815947988785914547244919867999939099768649394548072097886237209579803969979593888847261319347857588080377928721248650378013763044825611516103356634336400508891950364852879629216609114399995784775959458467752930530959731480536309756605955897734224456084155243579526160675508622292932749745346681380109067808083099308304047813607882637764197470537663064654319606778281661724106921865444556720436967085780314080731358355216918106384958672179873759540393134999036763272906200248108125436967288039470642647898471256951620995939149113530078019605776793931430705888640177475774039466674391319047237209302363558415196602802856907566006342630818691268877247160716842470971024967070350334576863563097274121425460632789454263922005375296136178441879337298162988080721605090774334568228874643469752032582959637181627182261792780211137437295207137689201385268632164224892309789220516750318714901699319554871156524249456759391189468620173491888769302297302733285009998408783528251011867104824978148024082100685907801523321135408053483718980561528634974454891298980036941946375024714890245065255236612998748035807307086597014767760835355891979630540359289631283540598005787887819527271227074721814865201311593945912369640210972700052136000984381424414659266829761796050631247261443345326314296667769214955660232360057935671265538266685328967510716649676264780804506661616567701097978032077974646659456545385876291469179527144900221028976943113499983878245178321090545558981511550386882997587347200988607295090277113090632965139173692782040975911049232178590757794753806152238056049207331932399474234545632514714837226503714679649949965347085570185943555167733240375501489283720923813333138016577249511390539961192273859403717345731190280192522911096171723410188022980585811705557286858535196847294024219746049025787205365950548653994873283242369780116280700187591736596077752448455994328659829093194750272331105187189188239062309629634327889556977477384176716583288906444820858138394238267335138887264629951024217866908429256895885429833767713941612062027040099457477905485851432244719488128319375866421620806017507758923526707304873310749918153339801703436803415212405327785039866067351397801032401709576570664339912347228349695123688634633896307286612470557890403661645633536927002453344356776535439298173314480690502340865918880362627073381533204373848343656366019978861840936648349284699104478275606305703569463844241321285125087897697115694883512456988374193984373037768910927701024031070132024764667674471530352722316326181725101026077098543172467631484797448420983543794175734069255310279593744976713428453487782547367064632551557888066448927760802678048652957741380872495219100089758687825098209561625235089995226411509576479129205946316553846193326850962453804051012386633030659863287328164007437719746347399520665870327289335473213952121284024804850735073025483316486600361048059596054751866645005257907868303039701942627581832286599938952196514411450173313057255866210811438871265822884713280244437061108375502190737971833752995525438927033109038960354625564819078252896511337476052684399862630451673414763395481251078842021624628188576553498984420136423736434008284339297507855878496096551033801774633519789731114445317809393990339561272960983903826073168401324165884675951122567217562540979154109673932711174106163322835663037392075359954414660228479563439407135638006062629682197506152348088145714861236526787538455554711516370105764307825350654629915870582837305520060657476424102372005417389417830974410317242235502137338943266607490548492127128679952062317476977793866823334658826270211256655533675176630872694437917512032547103811363881294794986230192885026269584884032393627020499578665481693278047052812572093704047511265842498844660849308546464835933389184120707902316320259780491121672518699773000330618149640745151219384616138425456261984146511513027611579354027582411692292088181254963194691679040762190409667657107289847128130728609197070659430338729367612596680182648680299604664426104190746999208752092823525119069356252223835907987607386419364960495006562628026630786067844933977187742273295329953993385160961429079044280688700722093152793948727604388095707082981761883207180869723373710176190536046264600085700432864397452067764907287191430388191042296597077650561205385044654561469157654695587401222984878740655404500601207863064939105103065968685297552968509071609522187418224915352528409006498754746461845186639413843354529500497062454950099321464370973996923147433541185450052251399660262354255190683130359128099072916435510548898176585919676620982436065533784989990515958969202163173283717193451882211819638304347977534755844606430741639922586669954295761025684342737604125845525314828980053946300100362715589967693887319466059132283144585329515814803581752385397413416555394335299902817929465882470164929972891586005006209007958072251674085745260450364724268232878475186145111431222641914703635366407652611490534079410783751712553719922970208282289493035761097476292487700935864378473571411560750079212848107640310118826419501881605560562247822316185158172258384574187974518810988790789454475125217530751555580653885962257521367410893463326912909554054860362534912726309942857220819951503669751948774772095633895471183632281041210437815450743457192822957075716425885948850094327166869381950034079217594952958791508866395143081458605347034158632844692370952382487519120781884196892587898581284334749209808185877774318959892309351903862480154071769112841487197554875357883784067196043663161182246473656693655089693372822154880327610954156763377102954401501773364741380842554578651412251803650499308699934099683381169106124412976045765332555628357364383896589964752682479583472056409914373711706089151960084999750129970535360733758798329881574713318157929400053354928903133891150581605374031560517006284742889091245998028075322249644588563225626446788832048206880362095302987051661833871779167996179799929497450346313153466482703257853764943481687352523785990492208305784823759419468372433408126894197850806924435730327902010227976599433186861263628320758965126381921539872140745884211500238858625439613408502461457231623982952013784711880483927939601122212149557827237122523007310089068853986813831749522581324160495624871359009778403507828842075858805746086273159671038474308061947709363758508185234865607267333919669371653826206532604497855141537246732773267182742443887648903597005378567816945384932043025644189338147193310377547615361150777300740163763299488838826383768212068908135517542567113125306846863298234347464811595808896716828217250482130513405290151610942614648613422428798718622844525135568037848767737851840254141063478261679026020268718078914014162924350326015716252163917721962711722981464689801558626553005979826435688119122377357024955474716100259528470004319734223473680797999284762567816530038682341871040886950208286148953297905683700188802713306031950814903506484786611139143958479126134952741274085739572144219821089088906745827419556713199104289686133697425676885729711455307742264662999438853733680214542048161269698455224245669030249756350030657127633641466923201821100536983929372843213209018967923467641597483869687515572305807481447180474785557741850132883444692517670982945348249430859158190053245319898892318678719689847413884391327770259144623255360943770384541190189748755467637825555604386945538246454626519521647140319401742609831307735190851756123188886709140466861417910840307472888867030300727626705043030239825927359410194326307497083425715421105666849966981638883883343943027413942136630358895688586887284466310405498608709986853720807137462472599704292999767499823773738959144783249821122767767465783526496572606408175927635488362663544425180210975624521294464380826883814177172641219969689002769161949336747785604320570389822690486076397693010234637017814883979953047410020374704482640935069748381500936507753941585386205657627597027753583533116565945443699372251102722138797687013256318126684690582810477007718479907268518748588533768957392304614792813776193446769340855089960254755446964380550073613217380536065198978266887899845225546079974028119884678346238470850631078265048630397613628132508783291751112605612127606898160250765234876591212484843298988263263963023599156816413478463568789367357238395784630052835047542035152723425648105016656146530554507326631303112439516506656470661103934345158568436817218003453834117025744158623723217439585783091553025704505925137087530384350662329726982616950523246652645117326818721254670654096206717284867925968179005287664330630392177346637625466196893794453208887631552780313201938764244268875241624289594227124246488688592462954150902900300972814449559251807629497403162651094006008843445275639452787783617562580931961603550030201288311437249198192368742094639151528047798971039968230920592422258338632382345977320308429962012368324658081640444622599375923524483289154057925575534424435592649227957002021477561951298804685464391277376714374811244752928790216190431222422263554411067185965515525804440102330893424796753493927166529045965525969096724990137290579484794472147237444481184898865080219729268595219189879765781266548690373116733678825719363534231611482519766448569639068580736772400624573181064425279236234892570082348183572603034847960518258051684121199856735423696067593584581653355375138234143017831948749086056858225056926601974051195652241895729127714306234548654846017562200549499819231772355895852921657312995981301468145978593533378010740447245016003689775768542680062172914171891107194479508772179138301719041501320553660674110496167064524812227653947827097218158212938785444678662831244997146874017893451782298882245875537657966877954514841366543623948306532990820430948700200596734761028529849142634066346104736852913487585022099399605879722017640851565301226773217441612316119698676190822057046577948475319843074331914421049250495775103925089617384191395412783840382549292554694457446953482546545010968014378101578813902055290984043125258834171664878875203754365548462525597720026534848586078361686668042302804538896535141820866405643346114011933672193566573587275901137498525828060318042670206890316430689612811304171773640875483213934678423682292271687201892094748543169763740835694375679001751822755035380929712388526379619401570844047699165617621068888055707100873598667881737131322602126245525595597364798773077724044097536931190798203063662706718979332873341173653142687868150203526142371118746114180361230467210567906914668604207185808041880982708769278817585911514039817788590146289227120287700806659001108727273452827924222696757938009591808245235348123138118511508182006446550749880274166201875990719780652348950631464539406970767962093129881361182618303792876893157351982204143273800040018327231502225339902315608378915684023415313101310872836563682533588728756721986166468114476086175444283692836905565815641898360565164676488080596616246919559155755697543351087556434194068471821390915888839128752172746223270204715788287788627892228617292080500176794124253111639141523289378339003320480676837373257894239133135335549262994932316156891549777179943111080253248729345597432196064796380579533671103925738947121526558176065812477080721768451448518909950524749849940958321574143221413347075374035696690031302345673831334083029900409697419915744132711913352877811216873849029874195670847450375969261017996477028581475771289661057599832281035144473353358254478825671676912454791244688470001081397315742427986514342426992937315165451828018801766076939042788294219053162065514510583774816255673676714032837040015355853859597450584838998518655791668696137207714021136175180352477469965281730823193789492079510332006478453385518437624219460366296868574879907918128250513261939550957443711670953603721915451931494977851862009589658866204593988933659391479049686086980423244813663172933229413851878559897693597777267605541796160658920172735417010162683695431725764522557336037834096918228821319905634265062945902861519613261596475986298854791422945597755045225877753434824787043433565699498919341204787993349221941886461757461382696832741046398669151970037931357333546636067330006817476891087903429934892407796729068639646409202901924046683672520852485936224375677329073515718811227843176286469436820684768991569424248089833495977608807694626101756246093054216776156672122321295130450028991603434820406487014201238723624666810020923403733304464294649310560662774418872061208282357613055996470516237409839987365687619110507539778474250757134803920820391966971462478761665321779944794681659497145778777870672055591175638590403221669794074688443761471301228645226980860243950356014661742164939305664359641831585570876359641196994527921654791974391384090286829669111469535417179732502659443394908693450091893009328399649892931859404658987309004204804827971163415479303760923355181553890332861671339157968408530048612958074916688445278749862698962477022298404498744356032790268702433023889602354178991232538705272986730594200254569203633309495162011186058250820225882232494719766355057091069005508466312448984052480813905771456437978774426009130708386904309601336894107336485482156337819434395873765844968263490470261144074139213332963140298034095122404050055685206905035714849638946265981372807076875221246405374670498123514959213881244632843127418847746377840051264301213771454399626300484374772979356523483752833455825584271413864229900086295413239762404159795806387656927931190876931917320906577609793383111415664322871418209428458414784812098523909013202695951257481746632473965395936545898267057719837773903922051431997176126201025757235809463813296582456305673012742504910165294460545264370786998911471273747648224864472627656042365914239816526966077891997946795697227850809050543954393258751366405134658722298119456995796513695914759619373591278151540369519875300471638977299739991129529444297893933504949093313345886450244957934734525902047965351051206913980398562744681933188506137243583059555308942730227877897790829098564967410700398475204612402764983918651524801289868585166950139859292001543715718712641879620005795009495545945124861483030652447856152880732571161807687840456025658653202196346283622666059702120240846623249425066839580340410429054132613952278265510540463778497800281632649337727083516239825876411258610419702966347902308335652110206603801066521830646904505376215355401949845589992875154199593817188436092230217868777501073294186375044642783786036666766837419496808780359602218032313978125292365444992478195224430504673772053135579113515104239410038650878496337879184784938534821164540619555531779339135123880022952229820592056264556127953388072360986604150255909473208579667446589676567104507403756153162738167598860813840675238014730956882752952264373235862910655760656779469299136969602503461383405687257490747352570254930445233533830628163183478481265045363358021869579065219310448896978263189501667603020072577496450859988240037994128079487339231392768236163002150792445314172280088474936539742478360850333999259555662857443418647652589123580676474757388971672352649428084318078343120533860699723313506309651686260585186918396911447023589921581142757724424451045171568042015753885235357913085138574116271098637343554450976615723839479791590201776841031152737796554896504230757107869414692850781325611459318608806623912981423360195468357784969588195722623671459331954004695837305097011446905901270900572143937315230326604914681451063984506239027874973259393947847108425379515820083443584071311311859192426959807515353973517120428336723395614996147471161953311945829461870141961078431205628968265652317551176912599544951989760013887815859112747483751214958259112200679718465009906605495092994553191094047676143463728372071280303271555438694755907924276211139916937416839963911805213232182567027052187120898732507185115027995940946452342544207950739249150357595879173992418852915619372687547488150591610888316871720734857568556289416818193325678956973480969717562604313307885852142350325433755242743466857465662576688166105655914693083856364993513734589115332991929389744607415183743313330798596640851483908609352251415211495095454099804750080060130432950518729192336387196934779180782638355205548748813404216687004926047938507031005940789891212547455096214654563272581072477720065181231927290610729239511787493242946423510075943257502617378867278930519195258422100303512925532682209782126197805701631330624501369139392146843672612097458545073267669385867362785110715022179606931935527239354083364602306113062661532063380211355118703985719557718414943156986734432029620606009574939061951174780126634568928401095773392927578331267828502468803526490966821153296226776966782881341092280737899733381729289202659914085413928201762121542479846955436366107407871914691256669410161061558794297255406557340449722347377215573112734847490047928452192065406437386334881002980377284996961522569301638443673879618203359553400757376140245133086625742525590534270063756953248613149979451885724639904646639548142423134684101551126641780595342559484726327440002683123312939187630273559901688459219237310885154556886393253204948760854543769089307168420508527906953446133710738226348686722454103330965995390496061605984399171836648299412626093090882152704176977386398069425068965801458399153260513762594634683564022706721988697152310017293586416528736107257997387336446907760213178794150718377271860393862712794517922373336624860553408217019396991172995620659916707536027603953753604213300012719039630410871584813004765522842383569566727844748791124264367744384481704548955757427725909580241294894880672182827250905491008326447178794309009913621399468441938523971072571114282411436018223195081605563383205589764310151123485432680816602312283333522536572765650170540485476925599947535518137437544250177143729481349349997942925444783083358217365165449065465994890076167301223406357363755340714975546209031776557230513414227053181036574858265069129178098646435473613556649649604127337000318516196036233971068028939676393993042898917292932175418012176554218324017085552516959150192953262256206745077487743914407231026855230412979421444285780545442283642129361861738498201564521298932480573453652120472603860577167266543642320794703692208169816605344974540721768272560159270938113031942017875063467882514304391287147213782670484452893488241586652502279960073882929499635736019795046627291823589232249656159117309192502743209819618922774416254262648837566365565910606090172313500566696647085440558252800435072691456210052630693121839374773898114920988654284904368051024860922640154609761217726657681307006508666681667956324863334296875142763012349856406377363375342713543081875184863562348308833132788042096495704919934371597276145491781148733011682074262043621975571894033921531402353750462129934183398471280204447746194738062125297538788869242067507773000017056390484625024890929487558878598925147822806637510417472364093840196185189445145085095218313398371297158155724685876378867456532678870400005419492058036987185369781195409900561709571125321131196032851416489583964840597354887520184008701357034071263427960821447518614004569662764584519033791859732321268451022270694773913218064701239798432755556019639468615865698683186118053755625267814878104236826428948995781892639725372492410181536404636228140560399366886275246622272645382135842575267888281294899640171011635625495318429652279592594247661573557582384302635362574716521136661958712126088731167698513584466819659699027479158091763651649915358758916434206083144013652741200130235561763675879369867865699961355257416985826872856922399506892631359796121921540078841582444630656084031646115133786834119011609382135725982478649049474966339222540530111844443387515937822397549091159767545907448986550906421654586485416729256655680473404992614252443926744338171731536442095964287596550094739971712284078514826641487526464647578729204354409150934667430461597318361320562222386064749103678477234971076015544713809306732885118960112469536400085546586943479698372040849227927481827024969723720965069721853419961207657029718746709234741602581063694515877994369174756616992872340774020311303783707521489051538366365227492164962049056245438514500258096583688543317792067037001946980106807962179356651419282556433291326642748680712704565909521528099511122109586187607400918533068860436269511725031937334815557036237253609532708269746367749462522721688473811227002673333539418367401415056920748817056503323443806638967395451993601848415155376595327965807501159298809633464863877376700885832347717603884370213469128185682126313713473316359899580765327809278257404082232707037020052811327627773087180665939348561513867116618837084260127818858524479900267093738688921558145033524744188051264625999044483135040429005999086106830029794970611833201724391457515861544120087185072563025049903797742426640530095920351929619085565843498117178135123124887350476859960272948249188120405569507930178960411800625269738708107719104668701844851709939106159218437415968250859787872093196945583736869212252054291682961289386389970780195291430446918261076869961397547280435849920951053858369748718321195131866789703879135768025672959722566715961024211339487245094723795171074684948097904133154449457392508357010484488634146875896140281777327259413772525367064755776873278773019165228906193243847485686904344747968114595143947112997743897243720576672791348561889928063082305657761772609617019597077559188838411095252632708533096722384825863729914850825970964558994947709819192141438988048912097065390074355629605190090892798440433014015064535231373065185582701838153683620528670331488316811865748099288679073942430365281767752917271478201077931104043049378764740198896958975863923574592389366075103102198432503880492037997969908204586548557175775522481554449639828988099260527033341819119382413989142565147643823264841535939608863648089796383746385860529966185628880071500738540766198595427646035345825586280331133732613596743858848870040278893443704249632454514219909950596054635628759281217495548567227780896675082482317751760579011264826442728455013850383523447786159437649285654113745028370834073333065937925290083554407822520692488793090689332881453783601020822032658376068200908485536699170432528369068315253424463000209563690519821280978189858241792228771303680884003554942318243379785527481721245749910098335315965898489552409364489430888743934976544174850914379009333921785421850715568642366875452575980952358369352055702383918846446210331904095332576862085363213505614195823149383307595009523902934965383784739109789967146060734737321349950488619518281820122565075711371463871788111725188035619163993036416932498810351599988766025786691318842428524448177383535678573061429994963130132435447447740608228000341029948005046932449983392681518976437984917679527096573957965862489396204463626483016884745833699792662500912431451645931212702979109994371594279683661709367983337788295613616689727920403581082424189876023487514493576762465368142017056855487960500567506363649701106856801754842275429611367526380853343721256915306781234301623274050429697154917032726623237472963474404416960514194755422370713347552669569285895734178761909284772264004585779238639519825190834006950100413651142980553689691445851560609704475235980349083203277009616362945671074682414926793488138508156943040949354892087561010030296329466399009073361596102986336445892578137058373957072982557244569803821055044792605295098550046144250814728227286765328083875539831493500484686044929012720290190586237115749713059523784474201562757498659477295240103703000903818451826829755640001411920419677942266988532861056743674535982081455035539492521719393343996504387415267025533023489038344454416794104035902608452111736650896850181040119026059702573174895023404097242714436249276320430535017794454338932159796315286475469027438050991227158142584659414626346371133826381972020471267971723992457135652855503042884746921340876443134247336248095822152851644108268935653911728762046683124133724220734661839214551953082064930195807578841580008188506305651458615564529003642847947524028936548860797021130929297706067648923934848911703342058748336971810172654072184682408471378053734976753500131076144451947599185487689737637640438956736567522401097432018027203671409943552505982512113412965131253017653489675351890099402117496563242067261038675389525839893587581518790309898056514362826277044624089819539484238099694899245226802677312159386538472974908895781762933271399714149991493643841440700838111764227775901591431196231662648205716890364595006827315982673808889182826601919959552212145251273310779929891726340559792814747257851294344262039011993080124665260012294075303188523303356801198375703445112160793893219487699886376046790663819463354608499508078648503425790001670139462986874013886914475375372996686243198617405210719625801635034327829651494719274904919975252944984754340896768051909992289976549758394101880236032791189942705044407126099810301142871708966690367338243459960522057771797152960381332322304381789770695889544385399347091666207653560197543514226999566095878604461497383914824721411337133506994337117534577724467397742445153797619817908809057738944740197498267349211962093654522228683865520120107839904536814495402792135869740158679024711849631347872761051746596463577913042737706894865296948799452655658083776637859777815951619309043410135498092066474976459241415602641647840818396563458027969949479257526289363561710304029561417332683094246716556725124490343520067872619578130262083850997565064064345801549332301245707757242380664752393061017078718003865061550917914798246120386979222606525657658520843337651811738371766414135963560964044726497225119441935972346731440399640284175177078750036024334432260425582305931713620531666425737552830516648165995735306110971477518929676533159231538251545034769640521968679197633590792296300716225364555768202901719791151716648661213783241805924592691177769154146458437835155351424954557001636978767249156469287837633754826493287575313083768321314600284834826190971943132073574048504773379348491418319894713371775960702449444177731292746386332419105449792442409261046710670808257822644770269417438474090015485033717134205178987648313958964187009761216155721361107539756659541592131583180396984407196213011364483449049131424680991581974594299010628373375276224129361924150281956007985820039872053613683143625703925330360209605106104240671268138416504547276731518349741638342139109159458522062688108250945532007000861398350116388320304706780775096634278465869648553423820028760648337024225117710234400758715610633604222622904533500223296591030296378439975934694041822443113598852982861556710384231891431279801085234957170202722909297308907343694361287425830077785579230955070567344751330328009913066137919683078453002662642445447496314482973740981030974842489786870684476322817162842749794511411328915037368760077706375673642377930218704801799386074286209379814048762353275951499207638383775409329154308411232950544582382535284890776461674549173092613040540830775010630000926985684217194263833939852860374934754237836846426349858205489236101906520875191350659695579893350116182817623163482159386760381892774059807938272675351146024284953068592493412990115063237916131562451172717433373626640573595342098680438191420963986010859342580342313215405947671089773611835929093751839036842295547491967654640570648095993423576309436470839801498075126811513204678511065257759950384068185044356707405858219264205298885834886180100866260612477052136112066375640240580643861906368633798577433285918871877436033464025674019766874404650309837989753921928599831392750979697724940362597798572042588746415949733599121811333439174750995149245041887901738026077105443873416299880703440502253483697690107264311220690861659769712480141407917447581358611172981228701234116418794093631025123191658239325818523659271279232290663517217282533720658519820364984034087505650806455999101931425305113890067684299771829960401763235419286993686024723862726794131150648964035329422692551782937595102966614796907778058543310249701442726827519662387126083210808185031975786690528921862086173379741135953309061432256081756745753955518951787980158942169242938446094844038511036502758978698593121154192657153085351024808502970401896782820322985125102648095025657304464049577557525292994350463078931540472435748661870018755174956419091919957530557323074904976484667942083446401414763813998806387318337356948420003252337801539218155558123654690795621326696374880464893152444763400153504120291368456741972260576506357117441515865040882427868605509493741174053722680695742108854584454621009162196206396400134380396414476081139089735365786375058437158016487040673072280258728952575181769823726116415887722497926806474634991958064064279447826145009215581750286794866737247103658215598366651179192891011773167250492199865255664204178605671318233914015789119178331149592335042419790865893421118103565683403754166260542973308492872861675058798568737591416574036539760762109721159310064044652632803764183969511807217377649030502995843470570133005264781828038745475269159904864147878074927602694251439692271010070962414666587433506600407312866618095760279500706098204194394182509574976278648853655669142378874910957484742799716492155443327456711455356437506180546892763318462128888352168527685646114837761118117273509857360293200092861526421272717136998383463541116605161030454481278404149641442624834822338516855391004992798202871060769993941788116043282950533943538227746073980596202236981514655060044064707172676224424983133926603769041848927573680585783047816865703230934369626381775698729284937702773445442480509878162220709448723771515157145771007172370474666049857663070525905500728240181052268105956734149913086223253128772175667076128139156171984123747973834841099262601468056008559279195818384453432430598374162484844787329360724822145147596183774121313751960658748307088461145916265098469071963999016905109023695614930250349707158915203885299220672657443878265352288492132410441355056108613705445696783863880412608134792928948270266670602010611029498330318612829525482321212268684710098568772893697831202203142618900821743660457544185059410764439817155914538003221356037630273891341626328778263362288386228743490225271312604735045292501717224856543775659088664545882554874172756383339504718523737814024031588730196211011243848888290204639962875744417121464817382497037742540629700315468220153063470454276296629365763186609482898058351804452362522404759861945694380323078599444737026538057628806675733383809337919286216526485712916010710862031955407716603550303571150924185962490079791066927114433046588223653724795715271091443780369233429795132727770469049249303965138224328901316372465770627703454230918333623752760977941392533691005517851239686992075943076552949220888303257130035062118731335313282436906460257587455647481219015352879715077753511979582846862161360257389865593829061468699406151308996760758329431586773196615840476222104404085952539977593362218861983907261525588941678311560563213458400732990619121253451790439153690710852565013125419568519551836325145685893382326346330811311882682849391064545436491737731410452518019133113119174664016329109696460401503296286277771081398062762551943482530155973810438855076968914853421000605640743535944784728731389926714894281328829902725982443677269933845865096105028848184068347605867824235331204087712832952747226218549659019766992693441422449807741920325154990873985069906715916328837533854028734151744849535668961847847130717092480142293534894202965300267967035329179038532590383514281872851904623300744864823778118687098614269108885146178733396775994481403802132945148394938637320468433694733460612661402184409962022920021358148424982865791490316721092972355709451665525929978474659872217896516633434250136212314795642328014089374630004646159774933752488935991665052526194477557396948048327578328111695882710590560873127560347656436083679207179075044558146393388849292885613948112949944937304509667316289558948981079711695976576030640787199310328414376221075559436475020157606995479270249472504768757031422969018200018165762663164044802483499792770024983080174980591827862827487951181574614664404191143722985121418704036326534471946157994564137660108300749105576792773160919755555754633652135950377888195841077077084613702557465301759774508048756008864374543387888883305737421157627529965067868903251454799654882719489070968047564163253760879515356909433813437861931403431149972584754338265672637082177293435444801509501356213365640371360434192511505658336228785805421841896824972881053134585669856959350543816831418621453445841188199906202952024459042451023799784437204520728855954816041061817274028347942355863917130566201580014596494665351837836008905635121897265569455419692341643784369377071765389701154974644308916688236473071897004629421557097074182694464485040007248403047642272964200181237921418166975666793156294392793245813860389494597844337884158352455982519212165583749832135952181558931939879522489106016649921680287640997105113318236855029605486017870905303702527573968899320415413842371854015226063837190839839063821249491094591400458365795464065187028221912514754443134179958061484149648862596181990319521646436799025534161491556045539084152806272836495073157979281233296618150808440881230681381579188614764201961263759448037300504691360866581405517539766849552171578062781528956883783286904168703386552834675052917925705663234931979499562376373611419498668148373615261126734830052390302437837667660514559237423744929865087045621291344874937649093299540821034697481904546851157375894523338114290772242041415976018708356465196540681486013604434831432182352978325389408631996239549626281263784057077856214851281360031281285312999009462972060087888156846932098865735764004118977898055614835484260812770832268448879806426587032683275593946835739178555525617835770778234984566514817086344446468581266752334296237643479930122053336308844464283287230425961847756561936655211104964543648582386668880589800844672763456101879613129159710032861604305402613355522107986295499009033316859182502157845035718298185664847400176025541438893393421604115520541313383732580389007010268532359872581557806499141231003479776926703009705926587195910129023250338609114908023019288423854566248842770562979425261996619128684883466346731248934569344114419667177338650200187200721304437451305437693142411176021955888771673885458585344664647448271338859364639499447892678554466850899898184869519394467837718077686806649089161741649060141959624933209548463995403956271921837820125668029103733324184440811354319004057502406441017651244165887696736897575764063787570424806208657850251149216578812340405201824395000977388701481218197336806131994332353619595078533199148743255860132977327713857148172946755850650356719585224274311615187763156022147748488335502803227711835463732013092006446939574765386751878488821490319944041790725607083851846552756758070565432447176940912939259020416204777371939191735614560199815773208986396902780265487036919432196696074924928275073994596666366324014016311765320619181454105668930262968134687591862583715103187108675141611948754648142697018212409763383965479063745493265881810739249587467916557144926127865999314810837233470205242776829596133045382229544983185794091291887711440588356059040113244392089734547625758641980175538741403318166515252176933129467495019926726258773705125821031677831949814633393032158679629496940404094748234813610888006956275856801880182170497405109191685642974227779016022237042891519671847567503821682144129521997874221227571780474544139998492974974255930858081374241855967121564336676304508145106126287446259445349360403061190157699381478078845255436768108849730383087051881693554307978590963151974583691901191984077738759198580278408150830311893341035609324122076478988107763505886201362364522275119910892639230302417700992148350239176166451923766895404862339712798297417026504334033530212895959979727936981958447841413898892996304933656132257326283106269725912498717027744855024792292470754756282438019828083256836145774709642640522562377334661963181505831019061599081474018061901954458889859304740873112224492894486835072874803518815683956693331236436026194055615581218912645928560889328326087064678356118972515917575922818134097742288943449955620854706138182739991841016030214812325636706131208909015472161083581205177962143531527119103163921518116722429861073747268015071574963763996357353283433383682433664036309134638282122341639592794153210925956314364280573264466399630645888460878603959769806328171936494055636218319075422520216042520064571277619962891254069274339562198024257575035887577115011134512204190349964733052909102333080506851992562436860135348444751687288451144894325592845782956981651135931718029341010859497409783078501336316253465694792589991666800251318620644373577161218012562877849903795277431412301851404929972348301231054344763235469125266897119845470378139399607089867523626160733536986289152378913037964346815723463587445201052515999488888284252694065629182405710451475273194224152849560605601158719350184993672036373512438565557455038588278753794966731933200233911209405608189626269180443451841461420798260938157035097571015215666776932479506422421759259168364216695844088999308211079199224918722453633675105149961738684607663038098380194370666142859996951684708937916669488573371494476498922540213079373561395099208729781857446545096045261809474474077649744319095323866938465498002064695824780391583871858475882788639151639866188297146495196150594332527623344136339408484490918458968209125778581335331400228792224610103294873391848905143873922374810241217757341449329071168641955845772741780063181049012412134445852826496418071554916026115362542653822622271515836288193006185012598166783945341352454773778250446395802018591145495293381819092335437476597459503952781337913580892765904984696769952453950047203768319821561250498352410076797139700233754604114563728855012788074040019096922152771892004337080233496849187801647873201646735710582119272796436897659711821529835447516038255531191803250782707808109578686341042728424040963014744166355218662033221602466997491674309626004326645684007949225911560844729563414588397494271107637860329863243370877556083003111407025927165034103555990651640214759444556154734796358371554865684009455606230160600085922296220174462001408636600693886826315148876772221644424968714060157928573031199190758746751011563838428010851002841260897509008551175112650765527433210624617148650554489990947636801928241837025680706692739134829648836455499634612419135487474540612247915469868446461871929252915007625383622656294978909915640816231765578046698561176109487300954488307799619932272156365486713829099733861510699749793661363847423542892462183729449196465926685665563686368145449446424806453897847178754612504974313074169062091647281776203776707322122011770675196907531138844859702381930680003973878794316052262030897789840011320207873713269181427399824326550287551809356429441001134922096499434596853022021393652136427203359244742223757939274792688838870131359664801980478838441467666481372299591369932507508592832542050470663096219029636748983844943484713247385372614116615321085531928483672153514089945077391472935229766403680231475715288862768301865995626174931085266697489651895928639994417056523965099853850575883526356825097845810810858334181869148053913318193887443163851542681517604120869160259293435850001309875561479911760025491029051250115180962196610789743383091171525899995127168207644602677670663914726578625549121132518854011066014595830761891159639419547078780473800857265350871874016327983460761574898215655223880299808412161123667413223435741151325639804744278236976470748383361394685750426752073868097189904355348658926998755058800063823862153669267697017630095068814689778612463762085005943282287658549180621828828964188325562480217570746886353650688708444273540049005862605109707877290455313710740032883802840970424309492651875903389404326479878329939781755811324208226844732203583694643252694556788118071339781075695830490498862964579990880238916795988722269890696247659518297025193603523097040353406883648249785193768593263979253064283907918612578107218401799016829331320627498839391377053915386817635109042794005853844342644669920342635433830633112830180626790121289070924867701412764630755474455163340454717301436019679904028343254195632580463815511613414882206796229132956581455940162568466585178696953375844486727129496698249481850900707176666856694790000069058910841160649040092934600982118606267739865510964234204929860420092452229217875363952507433136114375825161749290284582142900914832258684604282889962497022782488581345426250516093635490770961085406457428945348123307506270805630340406282440569403937439514351998260767033902958205856378273044258793021629667577591068452695208683586086029116606173690125866879132211458623312329815030395373184486790591812698575702255717196045449227955335437055576480593466247017890121783124953465071116540222074577025827736351428578242573190331219527456812552261308644648808575574443362997893838231317641215343441427479329114368341951703770860532969223306972917813836486819725447397186045256838417315287583983451810222150116121353707039415458947525493031267461628038423405887021517624122834851160284217781633763741813373408967674208172603016957273604255964849141238472326677312040837451614888605890288354452834684660039892825220324177456263813455903602705865779933374190395830929648775101373871150086304115224710778577801779101525867958132219804807266462582011783176609539633023599158074096945194912669225142323712477627102583562867890621777112560963465887843437062610735220510827439930491144009625911085043850243260813066657420719236239605045475987946644979361970492942723721787366499156219339987727004533835383247607386009658882520745473764203552521288917084684834218504673394364615019103170767090623967350129207963731062848703558439394920487607340971479269859540696126279467903969445221464077639364486288332893335111260118082345804702152744044815439348051222194169897088591177571299816069503635625936669246917681500356162318777604110112208468099255083304825912003412407759013639275166559523912439682701086345910266347073015856413711821906388520715694483500824075273901171520654301613510836517079718552244131238791375883192363226225554783539420573762428437318063419059764265106486396922892931354825596300842491219554266606411908916802997782596589276490150273030328981429299843241860358650528998739784573105914645772485381052127039478172151953146300990997653893398146604909835507347094522341249722171387890411277216952064118602073474749556432222927944698387227796945790681889769802156082106201579047212898083714443602606042105851276234030023154737303382331917344468475577206412348452052943255233237314723419777972854248358413247830173998891785328108163708764671160688843453978188995034255449790396158987295084170892346086498850919324687345781266317442798319340374476072717687669702232651092723635263752087876092712061248610440182699719787438087747468938860208943175332935804496934819435764889772766384600534025339177480254109092087908463507189051245062634127711706811260917720747210479300952083149527126942438188233803389709607760308463163601334669083298000512084892550594665790652769628126999169007064099256657632959934579138322648838180446835452989923556472966629847828731564464490161499678517669637319914163934428857962834604135048621556344153593584948595813864665102858705237243356719534937173162518559839569364408246932633432243871708698939697335540489262553933400230676473826622099432851778266654981513910488696052235148631243940568208918004167720649655603672822766906204670173712801169930034297101287301072641118286009630330396667907614089713048977066681283261541372898738355110893156527251187895344105638018867262685450125694186410374169562858735934224998838708622277615741489687254213604660068161651215583113975562633798692001109946199224130122605501756930382400439361745115696829442797897161519943761339107027201081560963265079565218495132532955201506445389744734044560203252414398568738755288041071671177008468794703468842829034162212142979101248944131318177324900453737018671244232864310081549256723563071007110790844706408296154668356428244746098066111497142664866798264369203173099855348936951805808481721846789980181608623173486203723915075272595397642755767790138906960574746756565165191281758536125154339623643942740219744111491101902216878977255072955256479100028715124143485778674031892798545411946583693831474271561690155321394063800311320621618224738202195924231125932354545593411769288354104793531598609003469945766326281756464179547179132508340176102625031574298154208379006332423647932071214770591449100479660528281316761541477974622517170597801525212370349212014182386983583849330135624435844470569499546608647540103727096727252117331525427327707449883246729541129482781532330931734594270265801967994755853040872873213731618203231279270209895290235742593863917889571512296540562560705051155171506354321630577930327119597996887391668543720093242378639911393893177873342529991062838957644523291159096558912604278127967612905973946734291475941019564159955969544536386470503184891691507382622964353832203340022969986317680065376621854082176195381305606229480782669174178602197511110984308023468835519324686754606840649202156086292133992927097605704080041727082202570824584865837928333897782213098379897329159918214123639587532997980063876275807860249718228338467150851073121161856474195575749648893665410211858662008417446141756885824518406539079011106324861818679309022257970820606711905703425543565491048193140498584951130230344051860910716085696844982843404290918329212209189004947415096795801288629834588605956734408561403051172479026288657364977087314193376727398134076405453047589301130840520738093626772928747290631873402035873482610984086208977773660342903337317551850251513691658113106323326657606340854496251318692357425790136301549502357185583518184753937841727062845552861668408063649736858341408988814191151286301590157053734665252672286310711455666620264297679995375367053105210016920950035883796935888329989282097773090779807278159408974519016531496949975869118093474706042335020215979006824780284203007376597468668852889554628857222142589117111206175492798065108650828977354205966835678906690473704160565712971462838824370596998708670599980823116713233157288742452306581197324794255982023343751439122740926174119763952907029766480463434180883268313234615450286219328503942358080666192905407491204760396721999726479906565658820684322619922992983210414978100875589363154942114406957316624967511566232922677791850786108235905589810440786190689326175406528243713139481044894648200147719178254033291545838815416217776327311723530464479051440242849311817147614851983130878900423667332768035761719202260940306549874986348929161127821155791846244552814494759053055458731210741052196341057419064974894840726805263299092237252710879681545631897183177397269672245846418298872654454435370817499982611093873698897900161548355640542457511396231235135414173459566976837180118147744873671055406271748644923512748963661181780384544496599477237588380327432785786721967440172175357051209125626676224137723322391808622939467484612465091789448647051679719483750508429109876176335217840074173369616050246710178730561825663014430360270918703647824179845309039564355079486110292819019239990404038526971060705180088463313711242937365736565584670530105806694896441739889172635062092699350524330815019642011986683020867151032866917729263808122515610718544976504313739288531395114636453284301432557728859484359643669904967836201033951609874640961798261099031574812014864148852403883977491669737045313259535062519557090310988848734007951159813814228111751727858353394840551780617456784717936733553098667225699623816681713002247201690070832123147299379857059085712147207155788554975929592569204593221145693207512056578107453166914267873509964283301747905766699543273225708781821950303108391984427080702431872204863082452438275267742382493523377693536578207954576971728054730861872398225569132121912252847886948691485752380319419638775024501543071819195459774010325644129879709397585515759285309068750991150642000641747588234649279096896810257431223256214854491302617317181503165905588473024796865480796033204868329417221753399957986596553956732624450861529041457642494040225939099278696836959892633156699970099218974590835087558750566307201646986833807398569161704191321165652744507499129618448415386242531297129316836487539523237610207922582814677394837698435961563680015620851157845197548586915635993556341996134923372003687396683354792707901396803213371380984388304270547107835808071707113023420894997287552665299539431055554121048757471550002095731981517155720469025296354742387884412162327062023675895870428602396611497853729390586963195601347478730203751661556123548594690768991922221957297147969162423964671578233853209076073656646619442346172748224170178113578827305761427413910117718185693609658330144074041359109705020078117049399697967776505346149341367449247989803308513689087085309500926185178612490249191694364548825779168951429604494622469466840891540308206001546543614066626304929283490547608405451946229940759396872124775801933119243976921222249952967072577037669835547827472650965310073131544310964680614191067181803472660074939387603287991056424989668785759892064626639594978984171444338219610222838258635114206458494084804827464200739259039850775034193246435253680500008329854161216853029954527149533671838943538947862138393124152864153778953587590536908643859948644367812440518823055769441712171859676422542470211723021672092262541023290455897355670231933013718464813378999884847755992600500986510761553364902682264845588914131556634569690179354768548400941177923645805953416180638581364804053537831046440026957093810505025892256233193838662991498280764331231931794250312225423911639466605558303903053494686732045788694302713857516529618882709867785694190737312301857243303234466256842718921053341456169247425248003895173475150566190995653540281280063748748936759216785261482294599385845586539544357047295888285647950145508836858312376400090438078002753147476601746556086065655766987659207997418655316078418068271384618850736414536059362600551273722232253010777793693998319630460712254621330102903354505599561724174340294201078589736747766458348182475433404343035560366580229319104410806118855916351735621630105732507204784570522844169228272153914158795344075011128152192866509703733601177250256273710281917725386140268451848769168252887158625209114489099920457640856312023155021222418940545812654044898983216352394814521843638612913190631184265397300851721285637067449389544750510448037896744842668464076133948618932863546244403860574742045849577792901163957292098857471603654355086768905900787800577601099653578332140924165853609780495281361717267735138559672898984481968717200186144712726349727190791926102620307400109137109280714962292076901110936750651300832110176085674375045545701218941981525825244165122847551904791805075219227328259341431795692501435249593025880944736528969454839327900103261780410291120572567093296733452798391344499971904449497434721241350518818151321108292975230039024210592508778974800830605058333016294272714673420640815521125389550124473071110958900535906061092137396319014342864125276663084646089544603412367406667990536984448464983404727302342350692380993389490881194609731342657595451542436689534445175790403814498247129577902613964158731458941700736037816352207407883592538044974402354028742683848160276779777644062032633557860070652639924926016615477521225190472586869535269377168304167997199518965964159176739743605221536531909262387271906789050407861676433880673859188385852256051687795420196180634581033264317777147797174665812780559253214395199910927646893351749177540360038072041041594182925523906927525111740458895678121403719360098295987677047132627312466783903068126026562895731276632218032821226392470519276694086920175733544818767217670220186083658827874544721513289880946774234586375597163248572887906027291149870318012301353860014754259192843552080680221729651760564110927856496511350738715640672584748378355429004002284272578438710680512937132427340954972823171287433017416785336684997711073603887296249001061058837726329273324674063668289385074020645682482061193157188115168002259182975225466680304988413987923821366498034836984258555484344774374510858627211773109029400148059016394991015149522736703740713146428978365866575008129424211723168637871223040473184657797614421167802554959145301503084704013223974552760608797048186010620451937087111091424160234826843507987626211505997035048486987578194543085325527746183674168177552706045340442965582288086407803571301455848894375648039071383148182893175223951271369663573177407409069514853149446608436595334260063214510174788499289030646633498436469216477832054006050197868853722573077273769248299552774593453297426889430490918670251588010626098262926508449737705447966834945442667769240848195073172673789040343406312704827288081108068492002834449352898846614856558063542194462416019924008854222619420135858338759333969487735396292021373540862330456109995569393138350930268307172267748825718651675148946497458910635448182038615619993170442969343948792306605796510693331110344928625338888304282466236761500933470615166407663639384459680086422592615358424727508722019376502532389396127585246993693820574983690951977047866324730930713524832184060548001777031695913317517692205997051689051583058228236955501237112404427567972315749797659885834765641341962812228654758304977940664291127089048129311797710742529096337047991084094009613926516872922549668304084171221093238938733738653575432062884541119595528632134788354938061688921565804565947903862834408145505163973113634420012153472517219520864558962526200836733095665324699000588476145461531015803253245746770299479380376461201243717266885514799719203687350083498947555625620021011359322197688512113609193457119215420347268795745239526189643865368255643351594464021831263054605194447471301084870541613992295118990581544850652664272210488272295727133259113955613876462422999028484684521557307020529261495188247674201393096013890293820056122511129614561265180927123748155343820600353354443297898176239258098574137407951059221870805891699256617824214805249205220607475005545790898883656709702800841443179247977068559492212992548474891242413844212641012487369036205523519590052417314937107017721024483770614868671891073263423303724909697280381294957572637258384531396377181665333329942391788260063331798272279251704108534009343605148965363765212461215927421393708495304265301668606677043029943780418438997276643311369860469469725364249655914646159726399404408992265149587901841203371729098622729402052960051134943457491719416031667208901852329891350003296663416335754597920920395629609719540148891912109712857945947205531928428393904944533733353081275878357811622720040342832108686698077434811041114039688618643165859770036206113053741554540627831858714654393155758306401137252120353027761344843203940050558419654497333556828507487980883970767077294554923125820480342578657608798290875183255437005756237266484864856753588517230227403370220970695853961955498091099803552903584702035949110146753399423331325264430317160450718515856323392649853690142886050166285578338078521626986648387901718535310588170335018219617709230425443980475003446527570075373172494186801866312346183177688219304100987160310915136913816249312569509772086653108485014606885470244459806839285919524683163986933059087810536777487728750165331502117713827382930226949800931063952750740508085862607649892287533995783393278781700495699137050635436099789597552508486898908584088474085606166577139942697725330097818077122341232966356760734979054353677147683394076389942841442355815187865645757765655620826517802463022566698346999698793841483932669135587955280719308633396215094166562175700091892330849399215341775745261038950257947613313354297386986023026165494109225040175203426942901947516485015492647950814982729493512634957635932573594987519303405865147902018253834325690032915532798453842036879992406051804984686749677526282542274379388019921306775557608642304559793141053238936163227914204543492954202127717966890765840021135340157596772585064528809914503459159260897818946795383124922457796637068636788748589207357490958319134489934127258712908765011111107698206640177522445823065487669456204616959083444415974976329604293929530032236514835731497052756307574090223373944375210925968792579030289156797085701633081689034802193607783621929075076970064929533447066273793475781839737812097134602089851293139544200127139220439655772764144640065882155637532912332309811716232930456142919544280379358279341886883812837983104374526997842573612949444483265519904873901742248130767683167833698578893343593403789540992624618299291751103897930254377736785384654435311487189281757862536444369878743881233452995159786824418954498209490883104060340378211576968020340480956381786397841024812559931294658812190839844011319490245174763719502003694857474389813926446038550285684508859198255317521964820524032202860298245422706233900189325252059332926583434253351218965753668885043653060138908933896947487445716861826346951918620271999233344439609864071604136925322850308643910708251879324725449608026151023713928472732663798377325564755227212622536554205298245928644909213421310056730131820502898380628045851348299963602368013099593230699621066375659347943426627556189499753133854172049277986164837224344142133259241514178500742211087522082329692851350247296462988170367358790835816818001384668848924583011275438595425003763390578711327127354449796033846848609683044780194908888903655505576286723831544922448631414465832303856438758633846845972280003662729914557456381942384102973858650808231167614330032528553235888719011573259700743274960536800649938576052251133265109307449884989085060426144685604938449515616829471256510416920073820851070095674031936354489113417579743945821979827715987763737027229957308724140506046813412644973752282418225389514961080443712332865617050270110095599256287554231441421220318932112200808959764525586263785972625919325372483674643031796678639767723062957766333723040933565526602814196704523445202943278497441801708505483773368796122719388139589093187130824750761511372784666053244718028314703074051948603702366943696753601751129119062737336357097882386752490437058163759864881024490712936864765527438120403412295433984082203572640472697876539677370106894415858769525878922117906411651928187162415836165444904324072168830014105223319278131207645736234197187365730305333576805255431704927449661140378288451905597081486031614922219073675261208766101701184485456829676344087004874340930612238837854176058517284355614480543155803450150815744262250228390727932359541375462396294168123600424235380462292218771126141434757014113852681012558431921711991633535104739004456272976455749623283006038577304737467500080872634352060262849355995246196270882658336937598169409163995852951027114464386498607526990978430805404884821191504072949423081337815359210762420968995968844667029636640442938072824387310639239171236884256500360706961831095285779834530316785022135424893111613341807497555178428070423393894839533339303585835803579448871961451932393843650341200879747116939179047249333716739726201685104178797087851083257103370192382541305462588506673157772044519817585536642639945606748232606811072966118871981379248512398215011572937495513724440563435445835414554088474350986058131914226038922721258658870105593034828585299193099634455940875262480826995240374134474811120534864580952572528266462696862455594764987833290431888716430735333049196509825723663701550729913942729692138335863758201859626618400336713655381846711522200861143097357903960708833250131094998872587238181059696039945334856283592344515388697492880313645738001142586807037412373538795132190181328461829878454982891589935392705774231493511549588300395213236472747100964763060715602315080716601116547638419791258078096778923524363288211027224648771434442875954279274355723376398147835276927019428893309726314952051681626161528790189129169348774146086138399347681206724286757867509227245413540397080610719532835659988110186745539490382575862718901617076257228068699088468376803458422992859774244993905600922343840201580907392543013472344072344522665237398399483993531495319797247325650839376485336228579196783273428072243164462306581026851052089775680136290570098459996856016780038629609930940221785675595131056474982268963342577144494345438785608817014663636924687837981844729451857337772488656582562502188969216669756545777174201806948827551364978275650944411224671125058769400001173212360099659011139861187834957266534586436185976092689144821658575182964184412039204263571093284309021495214620781131747310361467756853944544772376404083918158392207312434920496223612645433510278589450895683988945626114858265211238525858833559141539397247006214843113369463872205779913480677611087036247416988936567180141727357104242438502066039876381170602187594053441853604870831186911867189787657231690534829881460727582556705813508407190761920796031822062689213840119388212902759016646445071691669453024799280899217272108839651362544413180757681377876582208232054030271521468283745995599341106053600751724510415011053212028261079677993403039556088110479619829370579033093522161710908622417976614927172597682518127315858853605812059439338159585381365784928167753612519818564123941422897389964159687086413130750189068790672976805048788877399556636468961956309004658056651991447509959160026061944650093301746854336713647391915501933131279081248034302902696748360924966548063078692374937002286474208581472009585860943668060086687651503371536368671684356621209561737500291300046226837359592343458745221978240194177004203758869139682951980458821739956546355690035751976454511331761535156272265368773207039068761258498781554580344000231435265808167687530673442843937155481916483751230244561988620327764845740145856501183041965898751057993377016817282262274552134936274382519714591723638848943756315379567797500484735922178047041139823196274335731734089435968153922969880500008174863855209801792662327151797469388452150783453124207693255027359019010064350744302218210033709428860661006902894068773876491498949415222817780252111764804863116053127141000873425929489987301207308639870841850775421619428891963132310520615477359258408575490292603421953207333668298674724361146334275766227408510108003614550300478854212464849172995895027321189706135519632903685936582596647491664198163533220581237453051460413425727969212553679467134451167408654393513039006437303623570205609965436118524902936673002197376956448748972449165701504824107074375526053743540670473994290648625294414908191462049973265818133386439257262651169932949973955159697523111223678218951611796563215094832800929568348206263610388492513553019475540971567503981420415072311150613878258326317497660060412144109589523865665386464838009122269689971269176662889398595274911378439634772443226653340238222067111020564559869927362442507538832157447084924781017259392976912711931280749054575786278283597408032357830916903761191939513557209909451285353141513842848484284081070375804824616465304510267417647124347113284877505940935447339063589906627417727460885006086399100624404466455757995471098299409421941307211300058590448078140113751854737310351719826788614620404075938786244478595054015649493367987296619052554846756881533712672698574351101108323076335452408087615934213765901301884002901446318296009936128341827087215494446565552736363105179890873019773221631222228437265768413156698414366885486473334965096466861386012039931413196653256494292316160316574486486677799804685218022344552581090310710729890389364054135094196726167349717640754266148939218757052272668772752561951864194695551109938834126261113210333867094069327807100953297453551299205847392857525418153559113616262425035239165362891588937262484659028795073382455483533163419937055391715424556921965273599943012742156444956451330716507375928661143255068637581567901235140110060361241988024289908116801682124176484239733833264886679044913696348124987245205763313315459788874115652939300258179183697755251352245261096260513056501500212722732454793986288069359293573334371550232422115614563398664150083321931135682404675307532876797654424015895102903452551008330137088760487345533563670981902379130262272536408456474744573820904686235262052001366799877644512558562413971890396775461294002839816803005273895970036996349181354971509105022811840908622029846400790431002147588402391738217972533865132826151242774879073697777767509421202618785158650218393097576872338876662516318521043473492294392035264285137106034514764480538255193364102211759953962964329127979504010390147453127503935491605739137597334481115202623839818141963334438790702600539970390279615861294162895851800488691235011697917605726902737638311945116607817145518161093171364015563225400702722994678418880565601877749422637190235763362203627907449495558062563571130512307597059707021808431977232733229386059883129370151997597160835197526831877432564085605094971709872145923271698797883256244226813013336141493473723728898958901094211437001880412868812139632442933970353881745288688514172422241465406154090850894043998464104203006468596457973858674877571553703097636706196494364687601104487922502518171683006591341458439067921889652972380650317187259152710159021782619419496098680899773149691324807782034193337248347343788959426409885586398893706474245679270187211487753179465471945882200248437294143662696409110393300215441386528522081567915802242206032113142446500876435956149285599398663264838546823749818785532111474052823869737651436178572458806735316480345728592226423796834353165673959656104928370606911189818880711439950034983238042988324797163867071625714897683447966772418584337799232378932776506275724387783052584733785428483376650196107183126875615990137320597980764641446571488843351046644858668084486113424736170949933675296654967299669356110941592344720016974579813119017152538970300414932949859386786340008597742011329750648948841562930374938911853862802079880858209781215937997048936066706007245339510999209351166143069051717829683798094730555437991209345866097404705973485347255770659642291436325461511109783855421286358941316284105119173366463280125956143327151409607537470976376960660659866631034610113655730352455492212537365345735793352359760667276341908491605504794068551280178871698931771249526847815145687826176704758349159684437657546461076659454382150541997893909315289140026638787185954794437056842998742802972393032170151519667873868635938151048806463972216996327564362825092301367602316013648261824350321624428759736073506336836046217553365668700302724406832539774319427439491226260314123561495744928247832247637919891053325894255332355082081770951475556769912311607458820534828949686338133695630405660294755957494044200905933565619668925345733061450666896960941013682729333949338358822800504965317828767701386985407085606293307515929923616226285219291623254635395949525362905864777857909203501255217829849433773787898595611543819588586116771768394925322667636195095439667906785028725296313051763576274525029134047690507516262781662675659090620940732572390636716524918306681584439970862227069055872372967898379175054541845520406542571824226110178049446716487772731094416000617245666783937664608191085184034177949692014647818169292661369837564720401468278547956080973975260922775605369531998227067643396086606251771624184350288333285923154191543699002817774325127028558150087879340142546848639105971728151929907642795695593280127985605971015102330553157990858113226778926712746653433117782399886178129513618065358278160541179977697450217104180974421615634592872841000051916034535512492405353595468539001091705767184205228781709326114446299495509340078237967104060774537781466455483655090179183847863207516260349684692755053597181900239638231819907628752310880662595161476225662303372110954518004520987975057453649129299786965425979921199775343883553061603455983467813351089387590098351648782600451603245770536161573305091416158091877392826311518777992198350424197101128017989461034141805488605582218113770012030352676074915205219488270373378548518730065988000109296607062865055083475488190543144301424845371942715957573895575398369486257250001844993563107880293799991757982687849374142594214037082213494418563240245461532407342622219398191053966449192801168454909882258225845436992824858748947580698456848537173198516609270418519724085721731382332653052921698468223710843184913988143886144590928717219373286107222621134795016554765686193694377886034294745355929605817063632625954198355164074647437319321199213236194287494633677301563696263376680620465060105493528059048192030851667281240313784753052434792243778347476856070962712048992814333034664546732374021440416145925743522720742903466847043295388562361551024090594169321912077319259355221286346542535323327868006796872061746234738757230928105066758235209252584224876656268771209523705643759449564321286801606067730430341932566051873385090959078293328721050454920750069213555994648694010421715196313545304391031834498998313085489164315601959864261492648951314846503082329377209916533507520421335286946925145102360318698160469509556692727774095958666897146245334141332081763704521163223978968704502039246367127366838696142840698711549704607707039939225848225809624841724083764481937625489655857788912627462921049305663213471942595018370796057572971470784091371734345021191585960986791556955931176995702437142667563541837228298576846302898622156224147587953324949596974514148442034284221064294122146133266498907593313119916727505260889037177530630234047598531653596618861360690668548024620090665151215598154968614431497473835174314273917320953305135460139741978440024807663312389099097342768980763643237199255964551982262352595021711384357610706129079210690122836368345680769521749223471581361683330740834523636938109991918149742043643576286565650534140359208271303075979573575647561845122886032297926652668312704666160663825916819125544342580875818424903433643890189655762564516256923939080210490465781761233315415530673591637169939372725835164972507772317714962933831386306424716407972728576181979340104834610797613427624423429403927014632249772144865887019757874574389108954841959632204549665592380538118274222951864613085230823475314481848826950883007863470003858601090025284175185197450844795642052667162711077491046027366703979319302281731978495651306663842234330239313773260259998885183531261789024198790388095127730771912987076508516152715903792536857403490311421870078840136807268219338461590412814978694117138458770503564282684788721617535098771538434978296194876513532763069138923472150416948561423184422431869290535169698676741344876973958402839275111318434915501033202815371596465519412965981036837802200784252789371445170303225239677531996749970336680271727237577130449021676817037299006485854157705387308565928520246613354519309914263468319203850697312289185673632415174119604007535594813730261284093513969387494387446472395211996119604496537566262354120097865238269594638109140341369273972834588360154045317530669685284834727893479299852665475310918657884541622836451661155894336621185738711218546067836172010158782890100576050655661872826730694098488635559151917435203888911563500604582208644002149673394513970801760692454311478507652901422328872699677247464728782818314779142136630532531886984148090392873033661327048295822846303114920101057068274461778544096735890203303348075062152171774665556116851705295393007736745035435378680168255086449736361029617984979157095882292812259980127115662394939346839285638683919393839086701317352460428168750387204069855008836266428637209632281690669637727371130297332266581056045737561150519414198230654128538409105312475878432223220570886910719391937946262850574797161122282466565786652450113337354398087031385183541783035999532093331646072378763645417723893315605317803150097807358459786039141291222734945021196887263114757140920422188098028349140594662572822558838559310990242501542188167923499784712021559775939930526867553340651505837690201111479053767244221910387285252099822574158649403576007277061419152764013599851904977942361020284907280530398668312395019966015346285799766228034010744163074192718782244994409064359766283332957492285803613543434537750342185394424379331194415113951060947344068614024805131899127945081542134416462537850028944260229719830501561145376588426609271065503493438850113671240692340551404464384220312057634357280809490164649313493110205803076750591009347657914886587814982969773541738236492985872827811092050774465634994684562663656696061264779020231729039652781956968909890358662458541431000813757660855473603572853093456301628472090912226879351044217361140994959185276375851861214698643580799719135296476257369332024743956799896237124214212404228050825907738661740722761405965990294007149008309561114965452815341135303500234633968093086241635933731378443556140838889775657407462879101429215867216756600852827524587092130447975302527935277730395564846847006777755369459929920077531815505009066000428268187958937136666523626854868120033420046475543612732221354315901094462447308421037853506594019586932618441184265379895917523126378431415477192004099203519312377233377000252962016553732476602061568291422559560576228776562293514055406089716766062953387642948231786806574483351200960229818793337755380916850885159104494509824356950292319856164833933607556165082355098244213120919673497098220415963522359106575942764775020199048891866394209079020924319477646254829980429341767871524907768586939935036468570142661325333239941062510219947413841405676030330727552249711647846883480940257302081904550334803521602329411980473820380965432669873029651126308954620090406514873269362720254823138588883977045723573401124831219326400084838120790254090341675767405130230125904473526601346729608308045793921783126632693202532153486890904159788340081330246992227773676011460876574366099106371689754950930879438955419381212322835368893157047807035701754835575587876041348640058603443777540724496392702318809243136408785382605789754076362591974939171818023183362618822497021594556480701942370432387014256012166810742923947301515586146222807981038913332706299819709173810081314010960756903724875285431708863657206297896479334791658557999153959029743533498133862192868153056893210399409767188556187707092468556493962432884196348249671358181610128415830148217215250189515050490529999435046255651625841010036788616120674145354651726945900436140530932278468478745979369934873390712904727818085904331958267702924173349378425207045346137778039478055055683269643177160765990145170531141579528200545525620311507977304786098248629623389884861018923827958881742270930245009183742653228266942024609862002583218600248439612819272852120594738452046008855827852014038147655826004661237376600879997741344389244216280950103627262362670352543349200594364614046263761766611907653668758165475412703411368482984949484521350276360569132507561455143312187198689707118306818489087467596107849285329749602334319828686441735300956635761379205837150467964305527450901683017048753963093330473008975938612348939911442610817254731598820344701040518383291512162973550957341487062286483377974266392966379286275526295841233418851735231488469294089305033969696041639371927618286048607365043970474862961437521735750603876285555867045483861758562035518787033137442216537574815364058928721113548641479792098201422485181734375375224113332250746114005660330247947259246408184071136093452406347599789943181871966328531553662853309504844226081090512100278197671761792845238350086703243781327507148220553468946709361027976464609336933563299480191495830638937719553756750088456834070635094237894179074388276194356991754044611424486661162026295272656559062382212766914760596304596569021117189854824595172060622352198670314174794659278294840441462216241590826916848554998580196390781627794981905556281783426909424761205765646778372832864976236769004509506984655631393327474358981277526058675282137948489954839905539677138205225719266411069407757058829168448863675120542938093949948413179456594145924524815978413725170186260659352488339128964434012880507193407934484721340515205085540115697476854936860903266762938816705317663072599002688926485072046501843186175310553585315896734400869671667674436931064011413786081351383512607503310276859751201014249420270009766180504613730780346978717097692287525655670533343868976634376369702068098453365741083747703937753162317647293553271748575439712558169730869098766318748433528868989708168999451397920487823739449178376239117881567450704457851248421125584612247308814748341035986906956893003931270547047168912724361644462863166260216807796497178191068089091718144857505293505408467769058228876898140242187217209389094020138452961861422490391364411426432636662992041566689888060800314750924969716325178850299272254338154276723964147577006403730206509272014746462666638728268650210691109041160777042440679545489437250601807506354141517901671131838844095643942625485621773186308105124045231165492439885291067226169005087437855282088944690962950130116525717758251037355001679845697947535180407693299730384966331845588602171438586397484738833599870758583288228818589499164199525941227694579985792788132128127558903420843990649025572601881332441328883384223697671210899385477105318168721199521868934789334109102617121072687838697587971213552121027056119590928164886318625262344055201597729545577620556789620889096001413458976204684643741837602121456379535034616588756333724752904319023859903780727788205326098404926042512485046208423367978402741529965381835088695012122836588187730354720196407072738603746668164127562453334764829449166616367829368169576010002993437846488684559202063565290442628601332668978259323465633298755121878767127875495897333174696339344303264460699105957999039756420157707441510230912382264251284609880263387181225163463627625804645456920169186698745261772205969395045391423876313202782950392013619858880474457300183972667618486115991687768835072272772966242944975494608761467344609070079218945018787142530229086442143687321743381153058190780322793845451040712197635999465132824925575331236308860306848397338043931157332555532768193989101731969393942587917242115922190945202385119987458681172630419567494464941953799413408176865835969846011933563850009768144530964992143232898661763914420721430798315498762672176941919892540313668257798980717636494957396681843941635220462623523187937615966996280762196874966719231503271360412485252627286447335547294411631890737654119134981200662861075401773372725323554040314199050666782094412834230945243687566279251646906204409003381449924840849202157514274300068400921157830704155990774282012094276679669750910455304724865946165089110901167573886129400551989784828244395552040375301316961519107014681932262384080179757110168328044933595689775180707444623873835134949342385634848220131365011369290778387313508131182991412283943404272481126034866277716115471506280696447266898089663817034107162650698641434590163062731651008082201049599600752021343966424940964191952235253329387697617533587425769299764134708516316383532562511508681878378444775041098402123272662351299590349139737619295409515715074091223689894088935219987841825675939540530325733748872189023920476253197233573528780905615595722760419928151576145585446896171340816192339278242074350535376251275994126697882630923498975460514380630107856957990759095208827349469954410773921216266637829378133522622180932025235528586363161717289603104785825306190553399088546993976046045176704878605872094959535684206714145817392609030690141636776565244721085697440529865631003046752628539238111127802194629182382061529020380024278368239208814151543059141778124205900434208620734341097715937880581242148855910581093189479796427902733215303072153130726010415572376748481663415897325708781148134649897419221388971247480772010610261941532409303074772541430596498110855265178476774985375446052320171573155782122000327990108932542561280761749066715502895146928218743232070904379821869799082521646827430821024066830690614187329984496809956265849251313026646076587773709474838565277121021323469358027774496971717136028263386924106300559270697991567373195599182048202582227684316944984840371053782506828892728877276753031512152344887860581810965836016917592887694399942312691043801671258343463580397680720668018020995850813976120766943784772267359969825498562078678064601576913893631893024248256608119833018573066222924285341371300305207209282596525487326680183237104979824822896193004804409365017697632420225559028889013007975281344818009046319358689270849996308323820732397035519600819058103873106884403632952195999312569650923142642103612200095917269841550829216975302279706443195761338602818466925270408822962297827767455352328221071484348191990401431104346384236547337765064052339747546272884827675919816231891148421062756820504308934348333348439484081190112614127313351561796678400619598777309735724678690690068262552987768609659767643755716502913077225745995164830008075488602010880647522924055903433851809539374458219293238702944403917520009103970756586711007546518407040416762689295472550189922528677449442063183422811757308325369755868805477191101359738668989073551982759013343288501328372168276832788186526816096284355194945195590314646236902766912934107425061931027021507693642212687195550558429812479508163426015364318184955243834379263160709755922318776671941905050680379865093552871953700353923184342401408277940211159373174461312997285716710884924355555518575603399638555691063024073247642827847952653986599504036676027343531628146370539299510749867745009828793794531783198850376945625774529581874386495145662086443566138401607243061976370841942078337084745354372187357856554061804533263349751262831195126828956941408655393228779496841198732513306048601858574202827528470042024378444684431617542138034932030916287543421164294149923470836929474414682532983200347288882000324469421906580787630517535854655534529894685714733816271333510399827115810275215261091236687046622737153958872903165478994653275880413790028920819105546323093488759040044198289543013851031549402952627076546699660718784436278894402288364193613974138143749240383644497376499926596442674297360307027754222054019517241260567373086922029666335573400862339119912595781291869288324326495829808904329561572100837834312568806733282333470218910973051304420094535489473097320817835134265246573250182988640135482725070041555777388853041717642935627593748260725027823708976216744059557384910044878406199682804445485791817837357099802407527863475021719680814962001931510956644984324537376248486662513729274427900871000061445443433860171149114693686166896816982312030636470042278219284442030281196411366324146704390693331850995283631074410909986545980475516379545174812033620141594784897481321484010102955849497385357354971830231179170815367172964238084607182687584183216259224370813652848930691556243089801420859609888853408059575227970644599114049381706354676529850245377319914934569259186291367724813186026936377113127996447265928861018924492816905205539960541756796450267611322937967150901909345958649350079760567775376859814263376997570570227640423559144433630274270546521161159169543083597959642923551289194725767619943301281774358680171051302207214454306360010965759087494748201792998369176935074004139100856112004413876400153391049744782499627442090278793698609689722457736711421890460066113065059486901692069198953392851058618055605488573364103976440934646210428884658150400533246101801912637472915851774072775876782494418157440931850059327772882203216669364856416922124580092190619377041675643952440470148053446961190165382368816322539854087658437040926230917699243195804750479086797493374710489361716008602314040645119709808055424034429508778226898188957003507317672580144407819653776263224269700706132533178281655869519945946872523885617762911225480008612916442503694052767450049940174432425083474011992957445952965909050340016659613726591341251860654622548590823044175940764772513506033431782053977805979304551856351226735850778436324998742903030447995638846338644213179364753425869881158505105694808171595016397014438500367025612187540331147731293412330400435525012674911225627535122328953749613185875934904555143962716954580600145031712834406527063637575187840119033031904330076603991922802658845890219345143119688472689337490608837565998719736781369410748549805539995712369409825948408630502914089521126609012746716067052299746401512355393633616445163141553933108387174340685786817946345269984565833867367225211598009424794377289586301952523149939889750540645173598454615661623369408172588872866089515924371789121086662490176824964769490662167478288160555475937245690491652949970481215422827943557130579652672411848632765796072550971877295820664032917970116067686006816401355571962960065500177743572150257311999328402728047384581049446577096047084703711388156113618986859516584932936916070564788472386067904965873807652127376060811951620933415553619773939875302568754728991305522545500952240191346840070279994435515779569779248144504601496253979994627313253397806796105571185065781724972510007802374427510328276880073248139033781091425618491132865749222217113906823247652881831271252410097131232048628456937011313625974472521649940881925464692445505169343997708668127391998473004240717132619051756549850324722349187584660657950409927341411699922652617563406054303904264401313365643656950845344000607325809669133070199781612092176704057280916287529935116233263459525150408515663883133891792671767023661953892315970220919677110050212310190361435240505204772643564760212306714503758087694241564527525065569368999304156458631331625556387167738752720134789700042586720114859233763044841090284237049473336706931192358137623332356725525753313843711621506142980967151556970926742881281102132745644745473139310963321731774429227239261707535697593058098882864788369940264552344732334458440169132119597241712664254843944653258368028200642267482883322519479893590964690219475529638756541172515005698687729602730152863603689852888149747819267246488175694796872280372257932430902850694061948186066274602731792117139129879547067810371433245793097661181450635827290101381550016078970596860001659818750230226539534034398627221145162999778516671961438942933790268805928304345661293384827893900068697971543234671161798067614357617332715313721332700506716126867635779125721702085890915286289255452216899033926759674391078576314851531660232697512503767260340235418638045541514956070032692134291674262624387770070786887425662619662066325126781914604958535818921731846685527863160149786159584256413632558140050107917344315066616615246065575664066682304616587637906094167610219969695402816893248183907384998739547639088640417527878747220661575741770004517887479650498573905488236104672861476779454076071227417091586934628798159627611532324583861582724484598734603381900293597267980088399615463626595446728398552132834100148715655532865320574050915927449623262474042738810081741776595799053886971906533527873027856176042506688749260447093153415589733506160855904282597634224015346030287059842603873009413346380723472003606067313710972652332551977678168429015795433688140325689697481423763360516840906504268185132453392075618919222929257182598015027491068864605213217190767307793607883876747047479271924351224828231089275419570896823140670413096860181791632892149248922023903047402901330150351449877803233363109212677800336563499239993881986200989461270819422804724630094862485941827851210826384749481490931463814272897708359713418160787868458885154776965059619685063641698707691609857301842130547903431384154738259479451423050620274721573733786803220388173548141954395785430481069630474263881606665730717322121944802403168196018113624716986991092828048851286779019702855836257861051760760647292809152790505918400756837161844952697145139813194608361081530251231896781661917701524449392904458669426004242688346168394969225083129316419531988358977674124954129330884325930672951353017300892266988276246556788374691407380178979960336761379971792677977567663847073476982810970576047023702133026110827019641239937784679735286300192919181926122412449549593537094690431482383347861119616863966496926715984441503613130991213055963529337017840486286471913353646912329530709364483424482038914281780239565353919711296433069513339476557109137193499788704536810732606497465655722870134174018277815160001392293714129696734493875650187260985888384106153310779588853574726941659225895005046710377714583085434994283027874455213844351150090248092530680859946039381915005709746405806051999112907712387903895763297662806614213176854030450185717464570234476201095663249327910957740304161786594415801714130477006523365872049600923795764706704302441227673500378074315528503552943039297445254621689644974936768685153662988036678354988133188923547208412396477501427511042316795211696580689905308103659635578495197923796603133182341254082741779541239724394822304162511599560160372782543528477933111646665169615358320699811144699375753927998098179912931199187453258878187704051643558281274690311333623571517921354717713566990341353058734390058511232199625315433182417713973913959856233800800849516332467557924431379404607130771830685475047410264293748884381893429654087533493547669458643217014462707967055719139003402541468250470915898463006011241043578371413327230133434246693770074865253526179436047559567129796463857926137454632210415718890575782406568642319668327581545604348519642452216332232989637601406499302253969920338801417878102167418822080648804226962599743710740749647517559349294288168152511111800864115189375981795240230550428627604450438697514901541429478344795175184771002621290792153545426537883066294627381793751226795828937317951037826633174961312175201242242230727992733607639500165353943534531524304569916585103274909218951202577417160978179626769862436480214846141024320389591097464982366189722414415742788322168800636863785841772395957480458726346763461578604467952632060233555037455892644321105576469873649299090029940027728414209542452671815184607435618211826433885072897200786219450555293123453668968554098192090934083149657113620938049751137020529476346777970736764143855406392032510914597853504495604625740763679251240563643052123150126425525259052102052473999114742647308047624146646951781361002702313650134718369069139033333496146566479117548046964816460371436705979972696284674002332564710302503659860823249707782486360766398292892593374974548730431209831788412395993902206935170083032987035014606165139229152039677610332497129068353861066189765769721964485441038310150063731118769391180236821998866549688107344591389470156772412616819326600630508534032192258781926645077279122163529146781577765083817721438526063226922187285639695034576686328414450430246089883480167706021382610637192686746594042873934971124421335681091092862304609810120394651831020963039910298208474697383579447700726283571689914092800778859561368207311256125505955224255144225117053840003338085487536433670178457380274532139735281340503552875998565198290007961236188247336107088073664818049055364098292215283996231206823778454051165732995581082972470888922746815900420399027059178804307707696877779021745848322440039780808175823082822843670371496149944235171927903936217786523127063437309396448252891518575485413486431272522333571577841076070916217841383836394995258959414459855169814558383669494645750780151015192480727853013319239084308348904826548767605882816081726013458891535406516355364468630026979286560486358843158640101033429855264171437368196765028090658150791504536527349937260324074354850599897449231724928694600402867203999546123235380912058275969187088152446205098473706743906145889524128393147009818815976379982059356182946178810252787660581353441961959712559465473901986823588555029806659645585306085242990761099801763113133875964820783100394430909121621935623967886864921740867885321710199079159765712893304833241176557053096138173893703666355056606382384663534976103334419684141994966933477784650979701836529523816083935251564328299762584095631579168870710847141403060418041296411423988725813908887844799050815371231100597953864804193940131094576789783066273570064593121769618388116855059356722192376850456453147107408392894771653278560908411097800183395160622960237080021828727305113542523367818017404186623637184397389922325864846081514148013748651279477274277234615194401838741298434706850208661318207373000707723615767758256187061350780163679835829800474378735114675713109281061389293115918671667615828855094295143545392568455281726059741252711699314907477921299731714095362191960968126364967587780995458090862020672987051348986504236471224832074261791397056929325575623153185786260882818894987704891982032384721944436879713842065838642154489657489704485244137591530707967079662041267700259229848460533007825715066539892569227447854532106897595388209727499341862282067187826673433256508877341535811046518562436530411666059621680546029795815233946606019278486531790270451606406876118182726226466893391810905541797166180115119922357879698372606032088767657526572516158105132921208875461267903441142283008513394290514256213768938840999817211957691835307767857969889830584497180276912746028506580322313646534691782309752769101318285429255978723472062887061339134595621416833512871105108569924049436703783363840660582555543225484057357678156853970877230373269508140849105098997071031595501445763132051869406976168845976622193740509330452527994195338152547093315382360642515338724570862642025550196525143090468625631194412475417718339754147251826806320341233087420253362414159504856991925542929663487807669568764555436195872948592988950753353545788589554581212392319829785774025575371993709165173885427999411653047617019426385835919171272504656523939112939503862017067319393201006950433877266590616088806808513373176836994392751691694793211075301448317203863021205016775466175424889463670570116633513558847914737108199587274076531860298646408681333005336165836921082557488865672989075837052232206131020427074059493899334409503554117559675873481344587323959772773369310474162776592897101754325766397635425608189672632613864038371636342807616532879279230071946147453999062930247215840127818620297458851920864059499965931881871972139584835916654909075715359633750173930634841940216627981357431049267774580720234262210990464809512626171828122453672301459453488818665187974725179672468766469969797521398569891897408372058953248215445622337324392370957179430774069389470398697089451813853308502738246982295615784062012925911108584953822534426044517630800515483600585242474814220468092030934262694275091379645913353771210925781323417218131072282647836563369139144389391140544864402447401758105630644568188000492022182873375801701335835669131919791587833000214734468736605038163725692269346279722733339234473184195094125632292123419605386441839697100087327362310405459937428898279311415071778546593634784091491636908716478714310987314301095591423255472188617379448739770561224475796029890272524899018583618731649622521762423665111174427839313733295306530808698227896176147548524779168390571501268586214940126056414902462582894683897318265008371606710516238178571932142700158326499739334723153412900057242048621464095222604055230119600820292188272412870941971551766644356623978814698678559654489989896281920483526044881003921257393187897131709500092404709001201348110153408717216038161337860278078939762740350039280974242854768818891077125681514809316175639865256867381574672170617325323231611188906723856801348654789158256173311513686570799133816861068492216691602764745913757256950745957442181925384192665042915846965451892476695901529217000454688040249595855574662728215750291752423344242831143020062820589258960066353725323918568423744778196630126508400023317289780647777279119351831756747550557947715262124559061922567561335247770357254051761982390954213450553384029544319949382985081531037142257089610989763510254867962071389834044230376858387449710838105156444945500068183807535906105758731871854111904485023623719522082130147986727171281774427454180084576999680785375225050352537218239996719517946833137455976886085753721410480511009012412285950537904094256530937089850370396805847397421746998524096368374809896396539053673091650411136861890276075952599364219442269557669160322644524932225758346730288084808300555966304338159183865585805910737808955441976320493229133436760482218157624719075106985638090149794881488430640505129356375452615757715379183040944620596097536159362594237603157360235917862558803717708579761388777544797824495516005575398830865662037359592500125855201378119930324983104952506089752211373683378048715625883075148118488054365778819656660609198606755517497018784605960572521599886009868784924403160077019208820962210718739848560365804143249606497981344016389606958294716450112068868733212578773031199999331421728300981181368481420227409845035977434625397679003214704542880296084401874048826484471451373820555170487956642053753923069167142174669614219398386001080388996067347982443922790149424207356002992947330610679506913855202669208514566021967442412695578215756017913456531847270028887376597209453816336296489930557626590000286141372925191736540337769833594743899112903919016072394363740929650447733993664613504195808541572186555122483071653867380422857133170594036552639677916532977809181440728238932237577034861073997483945584830775112611314838807434694816028483268778025517220155436543625254050116751928598007762957302881636085721853778198644957582459373859001611521295052958184428413478686773547927034841692064596658097126099096920871756913222131298453422194880292080839660245922968027969230013131671277026408472897486535312918140523233217399370210249123503519713558680364478970440998774523841897379561593043684229396055474547038534059911274933385985717508809187851905157695834415263284462545276091792333216445985286412076692875407953989019941774764175798752360268875065791426492250637686405763796730387121934812727101656273051097067272996748523925388910165882630352988888262130579020823168497404585174091861439202846178667217164823687864656396054625234569705420170447243987840879890467770482556622443540241362620615251245342505560362978342749966252145675567557355498307286948769053937995368977255611677417345691288282383668150337202364599850114625981393547708974765466725797206206880055568815888808395709007224568219952634385069977795111684062217119571323739003416930761430699467987994375553987905893241347354127409862322249474670784302996326413999195622776561048263508646840102161918039598849945681283513382185628420764795396110344842872472008293042822555085320126774345772933272935675342647587418558226433116296791974462019732950489501459094828986789624064714667946108953475048880662084584138139426379692472070042264357635698073259902579627335819808239097564591573786765760752765614560418790155700012716204555879072865748604817434706911102205372668207016335176801414532550987801553627759399347268191683961978542915528226655821178517588211025233496536746378608043899158279918077122018197175797558166769129574658379856745497476722927106805812266709582534463180443659477820153110237093676264132004660857056706543189177692828032844893741572469348756509763681618020807688249841923964270105287262772779729196585283730315284873383443727100118666178273437424300840864996263010830080551923774024634614831569232662922924545218329332043748353900452178795382935410326029427539163372479243162817740900690962785011234411977124597803460070795121922945679095640312917371715413811351022841393442577993893390164822329860437953856626559110427132870171418126668349022358447096620574428042227417645303099892169267676477907816815081260575409126589650155158217419942561929686917049072461169734583738124103015498464766515053465713967086924066128992382718241675951457753471353111367243431274215120863888642204666889368870284425520594533621704559216136393647577572179527309709045068511372940760552238906339487302889359304714972157448930892149865514088847313208899985635194419568059337988105721477562393176441277545164869707197075711987823798218824259967253268177262784891285781529970797365805704619397727929279706222068830604462527743818984462694051112669763698897366169200403666637549191107904502665606347342891546129905583800427205081681975636097282305050310555717439769666117485641550110985026676187288152305839234259438770460795140417034433091350465496036375635146992165400003372984140766656490675031644748156736403102728853184548564244840854868877456639197983984125372256372455575048521889533531545841851829042321677705597949402442785938005890566790465626676241104176066565654942567710148391885151074827957523381351827487561633434145601854491379873370628760373131986984726448451588980836269750499204348918242770990906569294244640034665719680237895477215926817896029678696603199276907895773835522270777015839565213502645038600479961096050255875625293374118129302175085492787926330288383051999460511844590393681168449410817864890770264947518505275710240877294845305855524696161071701800839558566839885353973768659842471352810227999660400826687788026067219155489376875157814364006021899795719579190446982500346267989306039833799550669756017874574595371147106924159962417764438251214815843967738270834680412841394221344203314578182882111312841850720328897757097221416714646260129454931302923958490617364453039612748328007674263830275159043355681574775608037482031166659977851847550670364664961396019351878966571771570399571677887682379492965928812188741875300404517499817364002009556454914963808437939299431312030523158295217676889949272292616286860174046541818989329985703965107021435189620275337133676335602373629695985556903288941994412759717748164710486603620197985916657123831704284474838579167494886614856342981211183866729617508719864832364462317025031163814162567198773507846337540428499202362450078515516695327002827992214603382909002528507172616866065495907052499702050605433436181308624657945029625300302580204894290452662033028406841680920278871338957028198871233166363755448092814818534283603270271348255247590534899323207215522413159978367064343409679434027106977112325611916574094780239240905884978419956811457133656746094408599869071158132990955445271608529458788375345639126164250943207461045488206430532160499067201550886863828350950904615661274879264201802508102351572303222525867026227378500812918465584944807060028996235656456932694728697451628801533764252019159565499436726761428404260767292341145217487070874073327155862228879648737361519383752322862286243005194253029973128602573716542333217592446603069038246412656528887385863021607117506702336536715852584925184645208131516653131414443112800418933174906928504335418744819560001837188828668652317006302514930679276004235503646358622505383023531311974544087230949635739479474495508994790856132854914855802261996707462412426742860279539721399806368946341788178038412286520824739406704567524525319021989778369454059468052007798774708193919682862237407691506204679010681179101312344385504851027781900091192834115295299733408316723240061778975071061310000467927200316435572082328238719276469003601464011285763018068533627706492403435038463665188377226390528992323751403169135640625826455654140718069749589232622708919916364625016057923343357682492849862743591447900477151004988534497342209179370576057345224990350506579413388941126830819873108398418888872923930582583656285553383354196951244958339895891113135523888426153788080148115296014841623744422109048998979930896768327315946304184179000525780994015957370490614058853217629951045510294586747010870806234108601590532129514093554866173317606964310823073556108382962659317217125840250723336645644919811493559351025327090454376900142096382852902015556805272818265167431815907672708741118532991738134893085431434819361514059382670042626855368214704802671498860756554827451367372970758048315524810598862545422384543301588450896657810953720700368280699237447682221422052022624062775884753757138797377366333874146751078051054630664612983215021767522738577060443847838667274914168058037329587390070966922969484685214426321597669752968777339264570041920794439604692365081158700236641093394102840278516313534516206053417867297466156290903834311929316178771993695207558908085249928009688873442467846387630884062666023791188623432543999241507804964448111978894635681537613077871206905701267726048845040431709098531235693402645523405323870451059507894000123914397469985031311952677978002337661088977209182733250643068401831955297158974242010661560977059649500686615655974146901016523011790801156499186530143449797499830979570884567429439604052398562026733590269682887069450004250050762452206687732263025730693292215866538977903918810903709827511758505084465157692738926857587392101819966892681119680733951521758298732955274365327581772438989398038152301329759153235983743467848144230684744634617347057391757557772534620628230507427063261112247020388840423404165182876505762788549226056099390955688505453094757680164406008459309371293479421846181235556608553719850422014801014413569598085463380716326446834535224936764066012596805843882846575498519645536761559621091563315236801926381807108110433127222240123742247972433548172079512453479260124262595844626955632831164792950280678627140190649585102894160109667168216528498922371627827479525208015609073226376672169514961224346689048739128884979686473199404839753757447024445351220343014377345950838242500330223225467148657127662166148081248526042180310093609824892429669500876525162047616785198353275780966670858867886825471058644266117807205901222729905580296207590231444150816502794935109269273198718674251937257702434622466423193678663799088732854165519981886826190059367819889522601281534801777135628379602770143138063722257317125844710897831960203499447035124078683504121621950450905426595977092855877509427679812989475468865638943057545773698083891039095347754029846604344265512290083841976233496446437039440453239493592893342907592899907229404145289529573284087809427847196613004743185510430113819002760369159780895749595197510189318170624250281895819749823346661040411978007628787681046487532397098322735688637664204464482636806621702352412274930336978451520245648790374131394676504540010636046072660214234157460544412905080424224646261741771381809879130586897530609344963760418170648718895002053264193352330586240597943205836652779386063352989886565299632372977527122579050804724787773059860433964760242205682815959086266638013110123227482653464189655085973738522244835542155232022540970089615364468034598060373533164860386879422149509231274007126621447089734810906475181749174351054130612651940940236615020698613419068821629269799679725355361423079280609572357287338768998400046084660651517605953172277905492776680921282291569384804634070390687981173333583520370172825598673478333411799710536113035674312666658203075994787217265924360924484836978573156909907039033152497997689854533802105584915298044983750105947268202561733426003259807221859380793677447727661535190322189789519812307498591946401693211995411214257292363865608243117200915690373887559354415508360517886829188175260973743577588135914583925255409925069506392796161952151965890307975017495391631910978382178102649132029601091582091080089587927611836299975162766384838782782778510175880673532885040221676286903253298915824957575283012064082492212966691004969168997608844318633945740850704754508254695643591219730693815376849346303606172615729844615175397939972128378345770543259063776109043128616849948336948888695056279985137466474771835446590601163177021672883886649276580586956774883630780770104195506201765859481284860875515631103372397736743890311523798532680926516319835301087205340749773560349991638246579894465707088031804714672206581578969736628941365755973146774562216958043850769874926326139160741071404612671677116436043076323511564755962016735312512091418469155705638533576923600928575614671972925795025029372891459884952409656833502912881719742596375984492625830212807437347357366971505332329336508386055777094364107339312752171295420919628584508209275820990219836230150824348122407170228238141524156224379335156250370993453126813437083051113669671078520463888876642870343234214083072405384843368741250629002386450080299143019411114201832710789590829283888471259696254155325005328783687058735704065672045126120578173271211127147426575433818272594814449905164181422435856289089226258179710832816361328450652028911535007513621745607458844150213987154235992532200647411783721217122625215517111724673292062388211002015919422369223257886744321587385634952357724406136702681936087702258471878820420667288574610882955536379514181182625213761842800582717076835097850563101108922394024134428092905357281316733279691407134555473081533050450770090305432689813641674696990388545822666569463368646465995060863814576906255851059252003753361379382288069834091580418820812345185247367042553564753274149542068260403953623096074309790452914450244338551508257617994364922826079822365376669749369635210705755290635529263437280348019723983577602366077640621662799636062906391412865902563735286021776728696683159861899495046455706595651245034547629041235773463720030374089808196952863489913496097485729308873564355784648145790208671850424678472738758609681587666120955778355221307201932971900120817021123837327041344969012858461330595392428665662937333518946400307672760692303350375614682138425357357518831061932394594599300262733979425392345932215835668849309079422063557613362076479682860714489645680727841511907365351574227270364057450192246834628806299700812731193941656996313239104047604317184735757900246217385602932106509220653385699671218142908044934731529929464592962905128717393835655739208349436500132196455057692231473717289432837055633628902302198105023403956820989059576401666811329363067523728038270656163066769549916139979788381815754103778199990492291003513598851905766951755790624726307158637073841811131011228930482318524810068313776304791259341381839467594671928328299932989973862620890910757331836690574652837593064938986905626399667703585424997534525294406232414347207629810519408195914873081582831812265156717812566779319103043833587632071359643302816401658979640468494488999862097788669449443236571648935612572917661854630084132915824821872223872271453386228004689675563849561054829740461215151178309402303121030946761241661372100942744513413275312523833433906621302743077177104379627997751184694977904562544601122546663079703856687706426411603389106383489080077748319417969085869276830215288351531053354025693286743206689193537479488144445068057882662143452409090930066208006416019086215277216852248778975678277723165269661280800508197854353385515730156881308779825674714776700495185953600274620864657098911868507247226443277082150307829408398123919110498101880251574851455149820462389052582656179896771715979521897514599170088095632573037854408818653670605172993373191996535100264957409512237221630100137331834119183321303885846810554672871025017763771397269203110147554796221427682246831142743544749051212270334379840569531533355978476768710316530720323711976205335759505971777740562760036085454525629881402993468657105734302251283301267380293861153625138344011012651476489428630933968799120771102589513446615483980433840774388177966379630853339165909659377069797069876248114206460170701576659350432821870643812281595610946693405696247283263882670205304328856193684226709747400983015463146686969655639073610032833028672930298988525726773901295037080968673223839336265505720716609593308738535266347310120522295535273530229482269272202170979147073109734849394716385831498288543025496756229056539767610897249890527834535089906973708465902960330375253789582072877225548824796784292409658262739105651406912571408241596327012484029456953253937634125968508376951018231310994700604342484416287800817002778032651719044154353784982613502679674395950370868654571060735841954121540934329841474020754971307109099380005085634212408427539344457205880053579821614247799464080987659873444127591870604543704016840321772774578765784360224130569109649029987709368570777567638424312266112253037546511477554953461827993550614939513068631982464634483171644460112904653782782613516342084315144856170355477848953011514650525558392611326605544506511736029106047933665849186424457571716794499003535682424712556660215802473588668087729518102358561707210832837883270588681273361574973441044379523936213561190891454223048198899042010086584847201004250587554047756577453835071724639972131629681527512539305960150159240558099559132831092109221562153278438806761711025801619672181952098527132708693379664175780134920571679802049679591677571045940259117650931006682253036211010227785783496530692900772859627530040393056473004003105527037358750144833057926345900010304628678900558168520000530429920900384220381044787748616371104418506664074523648436444303617730323439569124692778750806225383732690869188722522726651858303196357258867729948621748694975385985668887787749965103824877194761092287680741868791808397006356701015733425258811164828386235756513715472364795909519983202660644440965345179845085252608581305763386712929001339496664119453878427545742482031154175511132953945559963832260028418066976062696868135366909004322717822789029649673980068774932305779275918139759128801694913965707710365619777341677842475443301170736400833749399402591312844762808845164120790008304291173617780463543692736285720275114282671351991790292440739175650858171768210443025263550664455400229209029340684611298015561655809510247067353727601422106975372832250235033675036796883448593737036239391947785497318760913348592287625165264930104824899238844853443612427422437670291677277454712201653215572288423658972348052960116883885265248535639143382529177836108209357529678792211662543721764864785441025564903349839761349094792719551505563234976753294813234469148761683866983542213420462041719828622293485792472105305478497352094928757471559950905273090059896288399761907063245069295456521511840338124977742178750481783954942245279555180534747755833539384445114238407072352640828069414785518787223505147286841273075688017264828300337656455287259632957872784408953216931035378965490208620433564526468175533164933045129133855320056817676228888225876119203396704004229023228836072907963052942022874201046022446146919473233289108041124851337809971638507308317575177832245193701900833068310553569413289182591129297123414502085080786339826567168045522800127888620895676010192429524114824391889529612885266938211973678905345739830281418909854941139411657283689152164398421872739088414543322101693847919591474175874201955953477184234256046264003077992671108844085923553092170475624336149619779302455727505160623879533794915998999860489970447471115599311401072050685350053756120326145610381489811694304939330112666297931958539348893174924739278488200789337830999547642467590577752730033301633318482578934830222266109000281897069831598163542552530752883073520553290016982662464796792852798681041783441070225102718386208649185732595729380443489798217639599239659057352241781522625631890882974820643184768028802308236475912217348390143568770471416966198990104719196019060858114773759971402873985685462460904831708950502128524596716512999534512769471203506569541171548141041395824534565774046536473637721969819720361617266072326191850868893074122882884109504503906896512122884150122979421692066846574504868516424635244390634574936462119324654986589129259940084245343156494536745263796827701220736800546314630503046699734999610918536385874606786113596761488484393311432975445667495732818552585563500373062456598484380263167359545211952544176645617981370853207474441241503824402404835854880727432714888449323602495627075934798759147001336613891606977427659201587252837169000929162756586404043551026624203239801654251030422933783737587555275398875518676613618829745850513788106634816953863406511122895993998831075331534942441723699968349315036977274222811925944697398940811032566422222140907717278750618419687922612331831874817376272445263386221212587777436355686252048920388096370894455577587113334682538166258523765747151910473279302421073433676095680380202709013855374761767822952235785927266692312435291846785337610805595466558788088226592742941344561288979350127736965535729742612559626226872861637489139299413664243011252831883863210283220271596871131914231355169319680113096062323186176199525627233292266405108894676281078386780070283796196837003159186161467294064403006642991780927901961797411882591008132743568459836457986541086699922842370192260831036240053593841320585945466618288837577037152230861683409212871387728476758240628297018858353352445529274391811222019023210441383237096086077543415496669764977847987556115060637004981572905416586213708541549230625962047693772836440075026379051820649955471013598200570248408804773017820184478889091515301349615683518119216066257653930452067116619883504294422500072200310541658817267415409188153857314542843825538546962206925617178712566527838557933359645950991975046651943973282444661530641910940028646681454989592309374956610029157383037094740942526625829036697317394930876872313585796150408967456158740378714023657784654183402496628738123081734747838590680970485407216681310287809884274435279170469352377602370511053717763597887103033580706448085461983615470175774974439623502575139882294606769986068947984909331807590313909601980408711249058552486783526343368209259994468951730102250656512983188129697980883144958675836479482956674673403850298600266940671035652132622879161549666452560183412023731097667591826505512704598468064103143135945486393376189972667661221866692119702227313906753849333528642300931994394296301619814527589968423893085182498138325292848818996742743910971680022812909040004447863879039877486705634950624245744624683602824255386163755891755424122264969080571845826650357783820225028366931423551621173046496616208571221775455730490111793051886219037270587368937389936128923546217280264515975105795183691950186275268605500721397786142304716706292309747188934935039456844559595631843336405436507797370326792996326080176569129838201788961805509059610644596941243812237301365608216784490581231701020505424212158150796261264190319171774576524001091002875340817749401941693614996699300624617225427110047103006271245407882353077022556749484667848354398354831943641038716575713700726942070444201507584227068375832930756170312877605445157343205286734184185887362581818895187447216982969951763762287167109613238055418557343786457437771762896744606787077019845166261193361495322906203307700804238662759094825112904853093247202973093511034002299239555474058967510574234153802762221992422838071432926422343512918385531818951184356915584946121797845121103188929107053053004231010122400194403108007896900142921865973548774096119555948712161240205577129516970349233872019760240038219810667688814365966844465737533669955586394353189787532855392911851111368240834186240222146745847731940253414975969213655472800128163091428415842279160540620634116202481974586823280539940578901768812628088800990729956054730101017228311740596028981919766770407850670126135380079224042461614912441503187169174534204475575331730434378679436907703495625816186095936704286715880571503313000098725202765422316209414762681218460831404850777347099002668034672314413116004909032425236700624202300235660201139357563330741950276006370617728860409093900504149861951640826276241057290167275962209712327742279581758273646613602948982365976777558926808688960928938683985596387615333979056832830734627684723972116463443093743333752534051165089408905033970529250004209167134963065314391354701239452496059703716270216461938510946062997842605382383207885665826794540044133136816566209461346955034028760404670268696037745822939993261052802540851783624147280494937310971110440323893651962010492188800999699125897084891410449600834291887561935918020574857652976698836572093290342473715094139849661719960929500554408139977662034820036243306074598167322654224849264509467562211207938767493661711519152473323518151731075522613911802560589035481804987603907121343891134967144328970922013256376850784712724723522089334389339403693997447203713079323564783259639177629158330825420454420975189350865492875330713968444067547921432031106397616789289276468333445368183437876554853135059444667248896650510341314766364451204229780674482197679420810809525475963547307910510481238100639946113358559097082454861919509285314842960208088794435888051798079967271744034655318609361372466196588229708919102420897962453765180124717840206332298242227179291646336551389274047638483197368687994103973453551476731815777105968473919165207331588451644932880321836325871787812095265963932428274474051777923043146040423264995187266416146975816456162941266475673722644240299515254444254920507872564746868343921249837605533873605598070031830831103577516653579211436885884509061466101548624010809005787470174673901689039323763193134093331860777722008812953838901939136192729803140904361515819473265095008641201195689258807918185728619320175565914941280053106699164601356906717600969022965883129131636028390107407226952641985959051351228820896702821370449868674872703787089728058627923079903669667210947255240433167411621560348218429678678730959013120778555869048148204199876027301800169832208748967776753939702225361406214117038890826586182618272629113774911002355721978411060668954395942021189750460582803803168027593163111088528616794183175594961070597722509157615709503107968194930378703596619839470379010848424552018510144794172102542131060312686910070167886785330585961436738293396402421376956784505586108995993411633622691436458156735873464918251832929523025412363400466737760125397996553254944696844967567867336877302221483229654298721025362700781040658445705956604235455533554405229502371785069759518752259845041137331451064506783723890527003744905877532401070050583125747608279220980449490330014940051688890035515451407464713416934808434499359836729276750975605348027890663858846302578568188618811271437046742176250750838733249131460016925489056235809692758608501140912123073207813032100160782269445976305444722521644969389504473886105996019374622114516248227557129423754938153212820793751732937517820553096839170768016527605231511574931374566052726478492752120621233005161808511338147944989318057074634511083234987398919966235277061834523367591305368586575576459084495385362519483826794200727337067327129985121047186304135258005886613089077169095065431342621411120646267823729938503166476172645427416771688448088732479411194999002139282932803961073957016888245578151466403039599615215678316915773714485014458747397780795014885853973863215215941295312319144928782074159588291192228042803339372280797658609284812119998572052787668971936439996340345253471284990415932789629527403889342959020235172147175603315423049695774131503540444461731541633131296690123660506986092274744329219863859663888929856364901432348365638851949731733339799561895924033792889051561716888864595382847784273586307655061977292444247911822071785554430145582621680783137932199749532111081701647128237126971528617410354721478788553545637291746454958020818291135871414994016055013232560920945122409211415491806830855398068293056857565417213851391041632645196349345394271060469704695848341087786755187809415712756428988024886146643567058919770039008282742866831457769407394616973062160098729497539075595806702809597126798248082052029952667666103379254601599852100784044178800126876287205826024851068040329649883622096595727009700532759078192690134006108195225135745534347462422031603137367617256860086947559604138392803659446899127797840740770858334303968027993664579112596615268288975771761068598594221663102947346279249335815751522020656236461086997087604138535573412482646652279290805313182373399021200032551976744460510833160377635297036090822868315916347535653799544546883712501837078092576734870253338074463251161008014885488221827845238984618512601356407934749136070763478682855854769777451325760995614593402822090186063430791640503390414834617784610959588815251418721296032116447876047055057626478954585099081068175303245755572437092265853646677089955382372559762148433668397835205796070435361825716463286194903944780523985142008230347806904776857974091302456670153661517413524710352452000091649191265078001280148346416659685868812853834022917734282451245469023599296046478799753537008458700934473803758757159281096887247198972341549273997063377458517412813110927599578410713721534140292146383871765003607201505423875617161103711065409079070545065621405401893281703397877958525523938087845777668147739867374489022214031245258698142704744529235941378106063462080826515129367657329941790355135517769051298691765083029082588854692543863154911247568834435125333896857881799194883080451763533088984286265052767048472957101363454294365292828713498051991609464394576823378549346675842406750031346603293864495830231192305002094637438366062611597472181060705360562756252815706872796542222311513146870521005349594245806705257334026738005859401322804141410184928281154321065978857792868790828003112585546851918257397909940788871767654359309738176075019388478481302911045024911757170327603473704940814869157342257970527477662925458050779956050545613945525747032151443673330361297511157650100937998063574175091022507453771099044867758708301394962812533771440850547101840457755456018676815366295196994997254000936714973309101030924399240279283504995584105150332253673489920533426550470354321566209371883972436011532141391414544926995096055539995786234286511502094479947522095584700077381272285215754115200287394627591224883115976796048025278143439499859075762926774096312138964757639573672385483223827766499695076640723496203614544843654618068201566661970189047438110318141293696991594796331778182372571238592750614393239645222575208424150034236899237506422065178751091900634172819006608094039552314156495336731850290080679890788011253074718580027227707193898167893779320518286700261007995216297708817441433252226722449497940339464537299333881333530620724890239998628568970709584670759175179280589302713824011938598274812919110405771248474509950642236062075290309626885041541974288009988483889729837596561923701077575261662075161406320652845259873709674277583436781330990531276466474035416882312850780033395994881848365921880166679832975219337537443909543879387678174545208980339671539389279571399167792529591133538170348894211029014175496770626749963961792978747435450099325933522852924393946431420228572114492947306419609964242709865331575486465120095687287909752520438381952668714489855055897976673003807398863365241514416145407387125559719430144782033813958974831661776565343789233987982974040456741224572121738209808239789491795135877161560289944733002285069100333224146905609716744307692492890745422676254082319814827742269260149599436381233139017223962665608715675760082441526166275616096972233923063162227459827200754527326798549522041865538285591435261901908903411353454546570561524125357579826166066840326065981195257164638537855496106431116725771154178591677032728983636905783073226480413346563024639264338321927876928730502020105886991778534909206925485135341942700451859656150343086848529655396183533199498886263702291989738207353249753795039966849147239390143569093541096621108252211404730919822599867034834198250183926474261313558042008318258004334844846112389844070132905086270808377226328268135351663018312895061677727048472303476270415087069529112718886982634524438854225960670647702456130333066649531693945094439412955536309601255876001263478968087580774442203847396880000684716914764795333272708021203846312384970060554587728986735937474966764593965391407391189660363227621390923209200188649239738604592175401164528853545271395024200784877529850415391718010230203069657149921474824330328865301616384440725891295449542493703301226324852233739560643836514340760894547702150550415119272381816955396902708475528241495840066674072671751645360406963647310478887313684172735944244481856885043347153724582141817914767244853231158957056046289428320302625725081132857382902674674678167586535225050180670489865824916289269198451169112204072870598115090655396103965128266722542402546606795275563974849926731856928355812333643676096760128344695605351858527201768357835314334638570175562093279009743915890408324891705838474474841347730073319010713915951572722297659155824152978332255929300994344931881856994138080180158457878302946504101017025107017029594485268964439986240931997218248883883354535644763027957797990364097275459111460310905184388638525373551882565607008745936953098094845258624190134110718498175479790626538719825208797407806536277038127604500568988783591812460453879631858411246963741544443478537786217442968979611182145388612799717046100517292327331050076433686694789947724186897477899269266600086592405807805120633747063885684095414300955486807219225220006212614582979018806328326782916367673368310752367764412306437280357573521371490297899786634526078874534444579766033692468084365418169228864332678948179526785714935537823557888910542246868390208183982228537973650261523320077380044778843507888983434602749889653045566448509677975170520912359328017466418184045184478072332280706903895370410015831119288544479805841079302947770496626111806091006259423770141114702222622918840959464601830641836216537060489661601072457115603604658282914376786505703538542626367033237395030624771888937258293729026907505439594875598593795932766675163609731114875599714413654342203728500974140983205062030344077612414087667105644488143040018850811344627034033996015470362957100766418743579842721521880439440529084904830914808709709952200859237538605725260304250984141330353602429666114479962930219700791068799072210764516735793760133532497335395646030768623648429078945634581714158829154789726219283090985326317200908171353827417461679270451856626036302038266744628195042613504820763087603772781421984561245923567926082003163684995962160686236423743462624418574631278729994131881642384171261342842231918629297072511621151125379270547884092707803226988936959727250451757695387872076102374017549593611179151086476670538145208429877421466738493171107327616647597412078450875539298937823945476845109794799859530053778147165181708675226610448315181097816978294953286918893509889352562332608788019864470662875940075832279639548389833078348411976342387194960295661313133504033714790241341892373379758665294617770112241564708220479810737803329635349774626491368111482217588454135592339595633312350921778537161574804872987166696449155437901181203748463503114123161918951466003600676145724396998114103892981554866225773440377078047559225373332075777336763645703955075054789614305288278654016929418629722121153432733142484046324088429706087334998933964863953025607193314183968969430291982867256037155194472706021737679185571700746881123961449986546461624986350898629866874873053992934348605677935426315394499461446160019006269245455033276382231275669146719953748860586395554613368972064678224730902387287369124002283882007831153035290361070762405433896275076850813320408015517061965872024799538008330855492968210164753005482368425217617535754082475581469961554834933758183862780761261321093871452063991740578719050227788222386340024603352917734703786768763839518553703064594862091457043710057563986362961350980669692018795807028315174001733779211385517397145054830645897862051128836037604552643254272027103614813287701109186375962758117229835374448047110536543852657023828176064737659839294207354572668137396606773895865911742358756177943108431242745363904610583079939675267427340257276193813878472499004606597683638476574167062131226257258260768169850451006663856583814793225607372641196204635898654712554868981449541541174080594756248351537030185092280575845900569605210368561825690003147914301267933475683961031265001010877148414758617292449723518721697987326461510875155527544649598581577676641517062504022720182493601652910237483791975734424592113497562972561073233209855876912397158316027679531656254944635961788702653101175452231270688074259753653184785956013256026233842662873644107931829966817874664845462918823084664123133815137895997394001607107224301107988659867569717696389126845066676296683390704711772881579352430314869855505536897493325794909440215231423041240830909790898752065875464291683859547080087879521136542457653845134576606765223014085088854726077560410453986536188630305173529239072120146475345680484182351399961538411328564607117116537034070962576730010481916404042739857982882729707033711388693550836422364280345864478908921943833365819778348121076363000093907745416763198552803794204677700411440860501745060870417210589885142091980443379862432985327772298836417330279990134460316594879976182544445783411085481557293370213492417773180719666304721336982455245047667202540347122208541349830545223831477141617874072239274469863349695222521252035199072580982357913755015426317564715723014345373848979290792930854483991026297776635206055334154925598659163580685608306826716796792879865489398725113474019181288345409758847863070065758711027030880948486089103449654324029241640945777642934264859534238444661145432966195692340201933454580496007427648186267115368114870927237557537334530898095212988675987613224382280332245232488880403258269429034590130147874728081163954846567644240267172467262370778789352589111705723902082413769971864825264017746522739968884231562300672492375066740420019116322086514228405878522090461729241597335010063434833395021992814835126474211323178316470530851504383377938397787645677745373309169782954222592706478223206173001342920915850117537562747376988969261833241155716120598193949520071315357192815463117786161669196034982826250647466195805337577494046998434048060540086039221570750818662819998594579905176746818431795039064590221060169109373856244727516116738504211634495257978409168787309387346552831668537757872865654380234259770237328915620275102029778803042499281340100685273642613568258301310992650933599322900742616800640099871583886283750293262486505907547641320042698094219876350458821360462570084793750789615473007981193096356283335169169850915531508890679028958689695124250053951646218318369885792950781321128294414566193143183158787578127420316113830411370927429417651346769665167677146315214129778168337493996983908447984663834752285004303102560807405772243993982736654435079102524789496072739000597884642143367806818506308058040250009074233395833916831119256279827493854799049299739980384956186394048288033431518604293756850413092558404435924458801014779302490031618354027003473473242879113677381339258850653261742478823963200221092359351160672229764387099976190282607843042422671443572644951241285582721410336543074411228490980126468787983772039841932580525666740608533756302112977487603180963736422705051766536145676387631034561421407108602025308390091460258434389232445392182890890495038568732611515180423019166321060370024471399980467712671790623494608654100071866576164163835606414812302105436133296509876627998340515736588662346179240225183248394117982667619376309546605102155216884471075272896528198817587703671296769577351269722804045342841289233273217016701545590714850273055310062862367900620537286119047226441816040804439236362672416829633872024165786935347627176080948170926433466895710147782649353863786790824029018662046606825876241839164641535644801846783485128944787420778960884082539333016083678960437019903021879217191383430016975655926289946458222539790519175642595481190515276323507191967758731922966708742392639461391517517911161211868629004776250533509495114719098375929293552281893773611931492962877164075485964557759760632363063408432739971691330503339654839150554016733073471583815922510812287885494817833563402941073290448581637109509228460902743814500643960998103670551322053834577964787730769490055943248456281434237621240495468075877959649515393440347265240965533587271089858385136237144308812055493326441599705829212385480739969402595206931644507469701504593224813897016573796706590918861037444426842362766101613676255401683578683789776806316332856642808138992596595292624430104213468346662123334352458612911881726543076805392857730819896274315319778806892611733863388719959758892545936010254593242677701759577944370059170157775750602243297866325162910688712327017758911015694179132368392829743680863445764766038650772586737462635194736193720661159004392776411527623917253440879379212698910274583528369773476863325996698096809059189037313937089622247325054600667798861848079943681544349208571006553893182537008810502675107770114573962137585501098826983874415083039978575100203629743075983357121915405858878467649755772319670455990464760672924792540757022890672831247099102622719745615590949900788563391518075659916501424163304096933258040495477532424578299038690906934529294822277149830796600327145086474508869805574464432418301677612658863466909370026254336126107305961587426902402617682359343493308998241579094019279048510692692785411285467475810979514842838923720609104033300459441958907892176964261343650487669860670452813722678598029196879518998986266519137157909390932091525705663903179392677704285449109364986474259052043140376470004033921965222725857386775889308740306184151662270942493989892610045960850137864224828341810368051214160923016278502562605128786378721454318352371745103936639417915702419145128696720320952772560841335862042792377808149930953516926033834249722564547287699865629305313313375103653273055960184607915953463252326651934643849691158027995515572454936072605023486274827830344220862237370177304438183761514876002588907518702676008327643768995538760615502448367834339980605736451372517565660126179892030356298540565303834477744622651292683315724712277546461693772818222424405362204737697962807896088770735647201614297562510526170410299098887944048666902921496403419979155394797233596241467752209593974145299801530986785799654679606385414233457214267973082348779294136182122524661925092054047859929748933634247612777349396169463839884262614933240758094111314449742306577273298943180501514901595478099554440798512441103570620462156983348507715814773344353218350847328226608091072569933574188616475716796077809693350601917193456041343874214866642709738026970649832339508281166283582591110027638212610925480749295304758967838185882574150246494368956166460260258664792725696708594288672427948776598065216501805619996686760743889885962332174054112477722058830796923016887832253848505836459616833368970151419660210266509739523263461855742146196942208176056647071435157852602052893412617198586297121783502781969657325350769685179268317381961368115026527695537304715939638792141627411593015570812590730623209052812596002184409015580883066295849662790825288432171059874929040763557349733513563006233914098229008391812753241175042996852090753611292994146864511364800534677605894576282019398433928088920187283585999329721267618738965026102578222349566582831147841357814420794411175684427567417255828121678156592637700701676033292209576361042433875557741125921558246326626945747324619602943400479174812559609039715636245969269167331214470754065866610324165632008171092280686174462179213869014309417147107337235289787158361464304106375811877427488212109231578647915011639124372882101180813618040562382813422117148686555600620272468635363299910036365033630726167607542796275681456801642388328978987753768081186738065051547202519986762896908202537965714936178548260019355792840130989656216128974320838965670209377567522918749044353964325871603875501391146043082194500253390066156636789025160431696099929916905913611494658028575062628982308441889250932283074918939058807487505811395732746937900397858288453331653130077011722544154386477461846215168265790458267404473931448485223746604081674358174899220434283253606966262540396431911806847247980003418684237039913920763568041456858577095630678193497380358943450068151375333937816151476539364578662606142022243904914114709129825448960685672714361318609541544333175023591680686019828010568934505007686395731335377846431467308341118819772257744540330752989143738900390312981038510191758288915446739300826486185200549223968553506837437669849814634174071671278898443017795749325507618332913317181579210380543362569218772187297034130938637199600388515080892657138518028579856564138820401035491809964534066024597402447179170014922567976340083988109130672476839529808789135320821494362708691572865557839077695149588509458468507664540553651315786860974294043953510691160259510403324569730850693838828123141719302151764793487705336475052418246482833604846725278479295925520436043093721753882487272174703620516153546971191323421377484690341483535617761545772255837910524165682590691047413507186665177622436462892302461469236742853935428642215146028834123327257465444718814768266284201551035663129836615735363139798605200019880071280488361615150601434925270050094848707358567905800075133950457782184065627990760064509317052485625275126759289231639459006874505529404821311163233166374297267989120273489698327616248638042185167727010744976846541807915911534745924906761267548640784832196815636221573323526634383548722171331855644212765367255739773651216928320547282225020806435601929808116755806602803032210837964271796917397806706950671065598306844912182911524920882131744937317111357315140557312375828876674444563794243506498346195136729963759926156430870264780747996152478565342606130395136622534385501942779346416591051360588862808112969407783480495494198851840618332735814241280894203453616396335680291200643774541502390705982302708402215123629186303194008583411133299179411449155272211297705338173677260889308892829236597771150731361808464312581553188112355816539116255618848092600809963471281519464317632009699989988872024990543831521960949308336348424702837529870744742833574429795478259532103297877402181401111150932801387299859728851241140156164444407546678362762884367266798919515140779036302798837931153440366963234904890106072522003073473993854233044114129877789324945472503278287672084867355822752835210775531445274166053298310301545504218534601905217299969700446169233825492978443840860610277487315624852510737127630843629289092683284857134904516750116522626317469428529445569182250759085215902724945554181341431573129079683087687449209932830424978250624540269426114770606965731920265592199814785348046446820132381067923413871915623875452886933115808622293806867021022067027121798628011683478268632615267655779554141452048050475024118971925311945726324861865331962301546381591081483591104059490592688024310802345912085838430534108386270297361488244535445121156998265144049197660752081901394335058835257480881171764572855439679999579977893518705155306523521668047051382547479213108949448934315348431045257212309751296919421509116533180569130683472954495083787172257679475061846333400130727160225703781622777199772867761949702732164657969188391978760214261574070855747037654843319021235415430612927076354663545225523589488212794617103332313281332633134759337668396873071755216656993332382714597677461322105062849131287527975856842566456703293844275327469710674984936608770395516668840919256617105743751888904556980675454953022399028125383417199672328817867248793370161297369846644780463703074517720684417870760664140373535522057598320197391588692245342581403945583634978752884342897971292814511786225601092220509143567901011020969060017831558688333202513908702753814009373934646393428572540051471998245408593661347680330644279158846673315378607868001721769266715735538748152797729718740830531103162842317954191724338297678480628627559241331473544992204341969065327213930725132950562014573572111362031078220241972649564172602582333377220824590247796013512878489938028488922434010021994168811918312951573150986451218828390669018332209088152183204083135731005824550510217411388472649171422117325950806208294227907024252067841138428360000675053462261412455459685733662336441533412084005847297878030720741557009312251749981438032659324214168241635862932284200746854461368888030880228637923645564591381354156762496593058504854835453272573657858653924978454033925587435715168741281143858984152846305209489918965288520530254685861629711090720092777607004286569742494631318669475650135344006687813115004742024891124389022591569004148267684000312315170240156757090318673303946078815343072927558695605490666861864127737903413670086764944963954647723723608178067737291863149694584657488692532528613527517524072671732961300943612322783471010765030233933030213182244309074977189370971973133041402543357822720861474293848181197132799391462495602973463363694798324333661994533536913954325756350372605720782199652180624705903551204075448672896406261063665410708319760508004456876730021361940928852559866961448346842020132967184001388601969288120853032574059819648008734504276383268278297223181228059081839106262146478807143994412890976837108225970438663560524655461598587372273631524729199911040277937611328914751015697952063086321873820025888165181394054779049770187797237708020742041183306616816393383671434433557265402062886984519396868925644379139925279762871698366411561755887947841287319380035682805616777430835701321552917022967898251959774634155750465163697229356508446917838078635134081640724205934313619451355491408290297379271507943599526778951682068041010015184122784109828267689942329399974409498952631887687870624881550366447235336801715599446227289278253964654045597154590206068483407563226065510993555904075934352810391189511411022203980737581573674535707942585781150140564267062903283446744204819130250666929920896459250322579234237545369108413457720673775306604957516548048513506131741524685499339281553622191677329759525322280885049799102338170098924435253509154374357600497928062034305278311330535096038935850337761712307045618337257112128952201808155143524810877486635073143703200132799697745395781489040779113710842546091233086193076195505852248527659573307554525897114119535837993487352551938167078638770591170964233501605764180961883562480510507343434503172748246804231944979921535744486997264783646478673208594368719165158281228107082830448562174253855183913604677985057245532734605155055724672218024656933427217885885494771864353450721326678269081855897959972646069619815448945877025886599557344671685420313278746181329211674211144322753297204559405803063948619918697389434473179678406943806872232755520145389479837100376303714562600271262900847915033240089531351640496357095598561108079041730614266856858452043156542899339836176594408579884052010937357943704130087354477584246616030142968223107003739101509512507631513628471410323305168668225762855548924869584019831267129056344418309014562649326000011438870116753503422755676185175156580295463038262686504396083294263795266804672079026255847287173043960547991774076826590577902135329640604348475084085970822462391296729510957445980770387863970667632657071325270287445316778023126693588925988630662221729574002265181974209803299063550735043548266824020432739828868746833726846215862916508180845992253387428825107310855286039358499451292381268387106273749412311766462648876175629323197774462804871766097229906847772893016818713769331959707633135374338374755684248901427695083197978611113271163385801483672585524282877770003819289736001748881805655838675932414633307568487736898510693287737974813362622700379459850142761071526928231936235054218074667213277240061203126081428559022361374974286947644725523002262248945801665747484216543751332465705686293138009754122357357637487211684059116900247123770765472276940498057458005833795334097222864922833171561500538338316419472121640464250926327636998679686775174256700284457794146609611223416460837622253870397946849849456374250989166659278643334564855444784420690987683017205048493686624042657153215083433024773414214765316077556421334229447385060895085589813256935549522555646189364783889371449614334505641468762419358758425352019216113785665743416906428910000554465860973363895215626465760111848944531981291436444469834148567032674007933660737232525813515049118889504495383484820153832735141973114253175688876838579538063276228619636009735321228364830492169253217061877993401019784606525256222410070551472716661378397530039532865052128629310113865354650154650381655377465948599543179504569109517919938967070210981004735306405508551710977608940085810760300645831429077599724987023506864157395885314084545239370353028014711432173787733933800214287822478343705458254067423730492702914099045603144849657760545140616690281350220353186884675250005185161507665252810511860289169639332672595097376854992953365255004210559359698046654357882156051518897104624446074648494383320549295036351549361792687160748419074631435664358929627825238712981009907360341566444075366517572014947608523092851389164919190726342686193431601878276801865949978087393080336405599568038221585886498429563422863309949923441811629861364697106633965744759951031730388230820975567235448763157637462988835703600314475825214481644919196685536583392262606348999460213120542929955954693559857670025432167358919381852926437145474099037628104883114985339101893943709771505546920471578339439914661988760873954247611101936849441993146891317356868270881033337530915993537897036378702590481233494218162859529772920756390590175823357016678747992557441382782102890053003547051167339777980023538545758661158579076275540258867962589738184329233063155101142858244105317931764434489122190894580788379595559382042714105320166797363106648601137630159133079077156610554109155081807409112374411598901366244823544237787159884491593608742772459164747219452393009813952133496049565028034190454231909977623692014021047165504105706519653525095407483527438358683086798850661743573184245793931494097145522112015289605796118913911044313913169831979619133789004006445979550190641698828012104593695130148551037805073045123457882553853994747811685527157341527877645996011383198651357258361197852119308421208081426031427995340848610533093448177555028639024768501717945011235449378804024780145625545332458586116249708502827626426940263752785228808498780908322327037868449000538807838793803007378118601689273411815443853676265360422990678129169196929343125960488179210238319078180350697073392476536937959779442828273518338080896870131846816620069906692848797334877546502646651945162312689904428220230379304697471791883528760807504677661345551461610703109245631624667678217030857759731448592532306417210817758343927040075210962363482797022837915972032881344956815090764058895193774441947306938458473002882714481396848948323096624450084835210933812467062601324884634189694153491171542298263576459926091199111635141974790653652142390597868210168910472328919544080831321519025762959628385811623152662304738421678202742788905552034448987687181120557555671740505422393405676744598785096300688214122737301047375455739688844024131969452289427952740841230751460479223131490152498150007936988425695244896110509335658679670054047943416027825965416752910721813718276393578548088282253046398466669494990995301847607773605319419682442150395617593486658606675716376513506066457526230115304447658883897952851735202702054288570988488285547632083596450035411165472294178720673318793717096302048282146641804713390808451144544747672484741423166971984489077369823489072933935326342247681601223041551861154815807101507412759891235924055659652323022381305650235217605377659351277363478764706911869970246479470887970040693356865670694098429005335704851921931570399425715337048370788026841011003851954743551309546046372084415263116294097566033043354212523455723397963094561471577160410312562172142220433072653769390917664786417897476490401280864940462653900747837794314140163603083031197047254765695956892984923541514778260355199438977740035421824726696500337297472170211544097739042157281884946084510445920271731372826919644519134031897672724845694977212555461893032541132929656070622840309985122200540330361158687082243084675325532705696698910771716258575997953955207286062795843087956600785768969179861725164844854980070873527093512007179037625354793068327359537809877198300228351907453583367016014117226999170974707342076766261400098692321360738554238402941672224157198679591723788142686262959587032540066266892539211917413194050933455678173161586782439662024951945583278018120935309486582723678007224584817348779818846389179548773734652089989867326644997804859629979050543858059931446491689636373802372180089508346778216192598059117524915453121349797950640412619351966182058672728150386414993614957455139134417403115960671024160287426833053105695226884176996102599518467316913202697163772826356053649926585232909279574768127510992121573417792201000519492460947130757866173191416492752749971348598210249712836036086245410683291711216765117714771964157872758851235028519943968765212784490041526181632865980455351343919793805477049175435495207770769762414848378728442290491429612728569596685327485830669106815814678922186302512608893622929414844192544156294517316223514076248724932608649076088651492141980079264766801125424770477230279480000639641493982690888222238237962974219881724954621621675810319108776404673274227194299167956958309350032235073904868494212134126225333165450647514764331949832064355326591032597312986222255488907799861042090890317469338122314791063114961766064828030239915593738883921823737422201573629575319673598316001905629361350394371002716780758379013543283315620086503009622067843055693869942457729920692561150995954080005979541540126129341242138060854120866590603462392592398148948836218449237409221761002066369228577235718028384523752730573416584172361794520046719543140762884662559822485707291840118375459721512352710320226782395918386524614237697789398854446397559431988861135665950520829258649922081018880752839120674005612388431919985834665164835059240170118756896389965396320417083105586145178751545210505837385800458366944382101151537674988144006882842008237254669124086890249355556429872149339659726845063277978791943697909228613354121094038363301084507491463823797574222514929429228624221591382103183522415516439297357025144055347606434170219827022767971278504033135513913066360888707297987483225179909354284684263362460711599775445085021347055729909645382313305312476081072123612884703384607317841875677773739183830465985185008744538738196137232281328109109664648972361125520046841753216715223958336828015517894628413719802188135407647313905322322259443741657475865075313226860274609783553675439905358700533346673315392866256119851989636194450149147812568232825960649864603473095966803861616484146922790739783204058728926704418240254885127234042124166731062022483914162038328709449331876841515842121464242956684921800671644745287646447818265271813681276780534990377586295706787488351590417086572122588829753145433544346619402890841944361493148852408099290796161299132215027859293357525883707065649723698490422856827802345024842047463636718567818679716660563961029997833302023225056507135463128171496630557111499499582628623236790981597796454915866066091114953693795059685292168200665191856410124268081048125170655166671795612664770804769253637409680174178133068436994490327287300984530497874826145089665193908844771753997309220520729120554182652962585937123483858091904550641758209815230706757702205626368102720422011401375148413492249724009307270987679121260329160217832956716388476850409043771193710030487421694458330274597433587540955485377692492761774964150094174270150940317645611854573236221639763261178014864183943622751820503101048627081628357040626750002761278656475367816835846030206968436792626951423670004057077442027615608634497617849491342240738309686206875626176910629144839318303508869285310120888975205764512152944251522403399922377132109811286776827817059151197149825970981348387631936539501262883583629962045423979473146764749475041144644990786294040307925831449552493538885230214945315238442947576948533606727922999203387337519030280270636544215024225502864407360934345421174193763155621931521812436224136764498738871200045045912367410606685112978124459926205226377992911187994877149087616227457031311106756828958162554292828326176983988444032260000274313155485619565046234376789796357620357069514888861999143583334454596098440397409403278766158149568466144722747266930764380604869137654798564409607744830321572625849530982327522329948340009113093151911927827483128478720042483794435444354610420975173909505529106378983293726998408380664576887983325005027547487349477129379305128591241126112226439006758271073118666280708344274006711761307768679927084107501210409742287728193706371883036468225787886206690725264648330817165287639373782550102389492361658216566617083152771862792970892888593562951156938450436910067302799299385123346615535330938537962339522847901912777153335207722125715891346628736393503793234846680483473631559322228624969557386751443226059992800822675775687956901866360890703858665203187137295019007318833891060196701664939836072979680441033426591887413455616574365575592439285234753000867132093837608481603066966176643689678574257341337547255120592245337932077753550078871956433368526005252698604049726251573342103133294534254959357757994216143664821757706739410837415637421113939891563606590065362408733167717791515686948061571983491118574329132188787300820731500967993987662316426998518551713267771879034013554393500258567820363089711731685435768364136072924455904813483274263840799550745861393197414932823500660723754893150526815338595293158422808302129957351678740796115843844520034751722952378127781028997790212906684408221120449701570283112977041047966292443769178013270534922131547097265381622871839504172261794438490248816080058258010172903529513217966444476411385665269452387565921524740811192202852647590016424660280770445213354588585467983624724264799032045891017298293879517279286037219613338940238239622733770971090407913390752710047890859297601692876986090036148922009904679247341667621084302641871254340589171471017001886361688705048041544866297939371092985647319754892534298139224060277554732803102997997804981868369264964687982267289421037540197079310500306108044375349446918443375078827898724776800948737106877303122854823976016026799258197218088734954204844913636478838908028492452736071105488833836328191783959746766426352429708368246808679254112205145559836959613397322437594877792664558518546002099201663837106578347430285510395948690238324943446029491397778551705466400349164009064543341616394498463149827464057420792007664408357565750565827330687673497546627526008265650668916257814324526883043163387788631362596749911228358121356465257847944439691484652356121410209231335383760981135141114668678605039187625625515665264289538253637920291336967980613581535492799554168327179114582910880873645992440243653957753838647718820505804260234527903593399663835706653100782039463772283134864047797039945338289493590755900906613034411043070803788783201813604085335923864510603907552015376594143556753217159354577032322892489788829614727369376560690660706275499452946561457599996364807421442022836002823652794476889414180995710203958894621496731547331012245038742340918906428927955658311218804949629954632828204672695463278826399912385015492607089611505084423679219140097603748958275824569291413424651854219878271450853177055348360356561209586594421356050213586936229576648869333309727772919297752616306700730829136033998748168926959459099152054944587961675244961491840185399746583492795398072781868031670927851034508717124275091725087460072889248589903134864269971585475320271672827801216722486068352570121757036050522858434444888146392459785054036308313519298330184136124196655876506195622471988253278607758784108387917489423506523593879507650179571909146460404552795089708773029192211426178399966269704260250065857138320897211297871943966884262824036519657102589230783292357062896408539979732646408897038852714953209267782862329916696050902128369101548425597461686290094545221055045506305988227499828361122797731246164759298909496483747024185214457973178103175302923886762343816125898101908798893346999391225836645592966064019599911722438323497864175712634089061453054602237271018330773919336762647618593376469616744165966646331336243179319355926897844353427014150245695690523563417241320477897412373993731377280467001089657940244640799042277641848529514224341901682725342362237932855963288902229983573618009065264153587889848332233576960324064132723674595954983545524296894118857064371301758107284473378517879253900911463085029818585546675583499407650196793706958778475183456136639347851356897530408454108435795860439393763282882404816346180440970066809581926253566877210169851206989197042815006753796671733477455964420037920724845092062737928158135705681877875797200697571541634993509168971321641407046072152139243722890829951000163731660028709456752092400544728595534800478312260698802420063054688476309858768330421843870194463407818951574805987908501001092537996148162501359787460349256176035746748008802422139554543136312146246100777622338778328145429690772770022234163172372760693709671697711468950290385626037105869917219465954436417435384654678304325284243999272349740479252457353892327079583292908860076710164976426608926210453947445555158331266104845399792004577271701859021079755456312954981735249103125839987736606552733185641033774611729550336573223672034385248005131139376423352314678246890247433784802656048474431082690104172407072202532369649837642845242768186738309288760990907237563784236294954827540254076968465875819008556807883376421136330175963026980378474883274970964311055402847714674303334414122754886131391313493016763453980201343570819745100206003273306711259518693294124158765452664227922832020962759756466508542118614388070770576566199191581715273723712519878371216842141723299581753759725454081248221400392632598839999499622585921340114901184677821452041731827127495602945872981984682543791484658620807390143454980413795869053715151250474097568156719824048306876317478321996080483904987098733755647138192222138942241607303251590289176178674793956302282337252299463562482997450175360761053096861795823919362731618173323717018782193809164317355738338449321602880286975856849337345567939543195582639740131525132082353072129774585476554162140894845686043104966636982568591784362996024548704488185823312482576652084127755850538894933707376349516447596248270355255538843496993666409375317164845489831904150426158368093861240804063585475293868885631402539906008892492400909924964944270481502268751183444706206426112563250079316246720507746725446625069289939218222170656378518541923704216393929784428969271423831337271828562786690259885422910576115269533693326704937999667080576522174439813881001924673180861102552421429654268104077627743785360210348312891098392169453313428302246075559228633927856515437116054022207967844786806810034461890086080095697103459314652194820052153123833917789007969577454182449330922168252875466247622268181525932687827291403331187679994852396835353588652173692172818908633768474009632090160316534439874026712599581294781768925059088839332052595757216323864398162501036129580777767189384427434393265764408659865107194448956948097775499829947558388974845869128224237863053030148262509260070914689992837508568513439238740515925427014993776341128300491540116806061584628159204776566441038907659068765865807913626680598056645406624818315181830176430358451555533733761412752793646589701769130965867714187191554734712368300987175108417059818673800400967965636924410668872702553794015851390603787272103453191609237189713256998887566860627515624036049811856272510652966360974493241002754096649597185289209444758460215607604884760414476767856727636110241361104063269538196374792416803982489564028453927323155075498531825479911306444759906205752863262592626533047797751627869301395150562905725146130031654753461262410054025672931914265300496790525330068947906720652744144923260632391127294551874954405400350773736249696995595303464319430537333854987086041428045595061742896814178327230999883237193058781232081132238863344919278206993131384799722578347683195600642189382545492648310726326572171134195133995963739855623584545696493486687985782122365487288105594097076181070047830341354183868195349176296911548410616823707631935279594033506398975096222543540180202773023457550670335351420313867002550994220008659070789982713721298115422994298041047853285122817070199102597298679573820630242955421985737206115630334102500328487257154354519939008976838578305102331239249972362417869376552257752359533892496089348400103118249191707498879322956285279780561161964008635154076585696426463749469454659816395700575010693804979174588354055394558603343135753580761431382222267124590876055567843611780678431946991401562775984836674286902444498458679584640165707034360481592453356214967559505355854996784965395094217567719531270835594238024449183181640808988510211724858198810042844911966249460154579149439927510984124375735557479904033006292739042833076005629213429050312225076716975204344970382636537672625759163759929329519684048489665890378240940228143441559991226841472112360351857045962427785113309536542286768403495373782693961926681424671216323313101432111648148997661766381891064971576138028360682849097043485016900521431367579385788389992439870149615701980428454751928092588639005431506872855412522427335595389973730827598093874415973019019955766247863268410817687888804058335017287566053112632889826775104976806818844495700301284944777112970378362189618406793916954574030202736216645056437029343133236940077699456746261873866991288572660213315572699277148221593580979562088907461517654794806996358672892560350474153022641407805011979876735778786754763880299262369955792542952237057605925604533571318545794562515013833179566964378459939747420777722412738219218944107386900636395497594612279962946730786234922985962521191311245582511986731392974519392805916263912799592288225464976862133139857740976299296759401039760588692812839879926784278757911529338771441833621857053536820795564722068098323454326757798920538272568754841815637616422019335682073684406234928628792486398665248989224831865591474585333067512006506772634490481082933534057213411488022911155539588817943552723093551810175709665039675357767863477726106108088295505698584715264412892596205625236708727469498235417503926970899342714786143682335641911359038787858217219223872130793146980318862035987398169314224368592733625729722855661712330477337161234675340022671967792560998897824947192298613266237018218124448078625897869598215393100541183806852478695440970635742326846704199414333049131917332630089406631941165817094112015069373583753681730243000169141953241501554545135305662971063985533771734942378673226425177031587339335443305404098800287035902676340526672155218121179719108678125178833161024109806441937937222313878226221055847685880296553506766083066859267304861238264641669310530479474753849642731368227693439913594773033124641314080368314147051427896009006008260600415553409511842164136926425892430515784448584824555081377307714087331821353956579389892836783573226893398398250988370765065561404412457743381943728913630858181192535296979634207542785670400932308260666156246849691862410561011601586067476836462408965985606472215959271976909860641042382828183941749033863586905948120268634999582933625219687225224227499024138836710169388288003074725710732943031402258873140420343135662735173634726084179674517967567299608187938730349481808237467596928263729720034234119905768179971236952797730676293836344307509722348225200445054624622360624784002162995222434397276335573333465036144026199892235435233600552203015608436275162100964092658373262547694584466322154722602376287263975652112654675292196286872858056624364868628932537065022775798961258221806049994161866734388770744889173543236841297639664473920163528139835802607689460327289152749025299128617420833029627141907411178568400797828658626633063364837715424947242261481879883353584857522151810875803988795732574697477346535224468745085494943385553578648561047715013781230424599627651478894489512961248338666066850879370225028297055625186567258509733529755162593954954730095226667060015614269199512705363028353322445831252639873804265014229832596558089276185169453282435231806524452439328721138089791073076165832690023161086002223870687033975848450368700936335597473814915872617290677961771336033324769826367972157616791850879959343880238632223734561101659987483918391384869204498965768491246530129642470589013775608217799054944881631644679257790260295635372264360188423030835327650754493014208179625692738598168460466569355157895773999902903492076179468366222437820612758893603556371061849861477901491992993281430215549736664516160296167022043472445278152115565171451407792554577855967660660595363123857015191829617630454410056330131202085169863864464697590980541940053961210061063918332977664262206744413461699949365647502551759275888305788583996142143744233291005531157346314059606218476352004373089496259606503514998766220817801530259858309521053422390352720462518025703201702725373533168623963243764557899002330283559015413503623418152436951996115388155998326046884894664266525776898807950542795723193523346507429208239525954162568364284033197356570848910228311704218742448375714171462761171255939032270948319043930641426543847193817462864372394113991543797194083344696809857667537680118338486602316330294083123053007642673638280744072310937407773719495140963674533258513420961837063808475679253944537226956562424594410068678755949897622257084465365477837635259909424810978869573424601509861694213248000919321895343138207599033801684585529487835180696199419542509173858683999808755695849645546316431261786980381730602400856075505383577598312658985898231219417534500141624672770922765328917003981624311737928189117104581970058972968574554966700439509977603461080269471986515064181261166910242574926906645126737109206285851809894529876971813440845348302492219462524560460420782090957911886898499982756221552147656472742620216274805473526526474320433133729546884569282682037996121681573763388032570011044261517773355163630593969843225601483202484078993366113074864299682792509183280965547512876686617591411761954706653190834908355511433330763133450993853769989730995416468660993003464502349462474239302936238184914387968068693670609557192535032796844269151346915845255007745733896206119426965811958571017538999651672049178289224574499901754849370024315077118692909482588044804069840300954896280537956566181240946911025956501678866043176563824789206449390937857899490945571819959016701550893795085618655751046112307087261219452975529211287141813435836073009377023163230881878630435328561942416622553435099039789251535135764205050789088671501077418352560325223238391926976455597426230859719062038307075252808815336711627763306159143826681580023256998278918665747795402637116690214814177021841042053359012321412293368959828621553951871807464151656495396481508582233850712340642517127032616155881021315399710483997704343686319521313469240165559826072002107870126761348118575265135550190528835591528952792298760001582511346242374404748615438328543410380368443983498904677907879044183842510511240958226489813618253194617346839364992504003775051364517380150154592822826655037948571959251920210331864310456038111373960646318596222218359356454745315970922446550733893508689994935776973970376561822157625060788473186107721567145066553382491039338517880179582230422285123946596047153292080248012169634462400671229976920750336318208765678247741068520481853057294222830789854391631666160108561687956070262320688781653110995107401717912566174547293495241237647491366506116914622548381382594238470205461582805672442975249466550725878566600697053698038912404531741877054100197486499642698257285016350531230062368422584222029758240464775510210583501028711646375136810390443562522523278052693635774625549032697225434689091473284833031005332195594537363857331260816987456176706874214626386606198592730160993296130442307821177068938211462370944472515625307194563024313456238556572962382217474709146941656312060570336921246672797861723702767386910549370166817002840682926866864560170938683728699695004486121328996418923557302729620017821176523016550819216214449889158846707248211714150130986446881154455117914967669296326790730155112734886705488183232481773305694271522264567672279744670880598588318716662256264948673626604945459623049706098114616648518629471911042720297073553529449217178480129408993892106913124171684833007612756409843323836941298573911568387993605187597791937484376259723850356311636526918829293157452986635532228774168158441326843243886564997875857114727021550874032762542356340619933996316245136238627327738631127073978652989366781287470078748620312137277619865721723087521887192402219216402509434109854009281641395269536505191685531520364392054226954464181709424988931209705115554839132826141335655927912346822884436559164431832034358691911245344918602176551846605691140059206915677462449804452304868687302645441743642087116586416634063735043305051403979412677323283257867750767931716758473541892342684459608329135593005651770550263525994361474101331411833360189355115988694442808342085513291755049963292322652757872188195053457049378459197197305934339477197242510760496040942216850276547445537898141808704110853495370295075744389183781649215113865211856827805761656598316029744953170725161315079042440407874657363612695541961926234081899935850831503079927866117588098082432068117229879388678758167846997771721779863459208113717703732213440146759504232224828638948998329929361711163196795814101609041494523006008073616850309459653342915812028897965252223867620438433889526804626177846216455507980420048926542009199864129227456485698869325416268727810712327572074904486068496180016772423732317507987744712141905959235271249759703685951377665376924570241011837653944342826259339456896318490703397264088008968699750910495217468899172299196903697607806772926545378514900461811143503637121014893729311070921342877374232207174294759998829715558729286631744461830735854830653912093578742707745725732101977244952791913258796970204841904961121497363872316775251133533233450428128139960819939446644989166202223208110933750474538655596095966572696596049283794852724636145825456482216551891903751641388222608689785019443882887981269744296815359295998544402310681416185250918954982863255088180014148640646209654572698960456041172612082594927414911042105854652326791435597406059356860352914765989286082708919553460297898470705118955207720233415494247968528824247813311626159482476698938137542758815767309624079958277921418689651286410634760820233126974337412832118432981468391961012993486358580123661235010353573789025235871012464015012971342086748891178170117643271674270361312501918306213987648888821687094079935409659170493602910519050641757312469862798428369224641749836107577149198681391122003243278034875409389480888118698426609828880303651366715846684319404008282139704849986931191882060433876865951466056401389325650044944757481630073968513775926177741086479326323272722181241060213283830234168393639181669733133411037672285779247434572267887157242050030029052784004694146910708870530173888684528796220960270472535286559991044423020449176500232598979198929242927832988008040472893583003653494412735426121746280669411247104581614754152961858160110852735784603758425143003477977389191171023819650352003177734458289872197467703915092535292214761027275035607412626985660976110067587632531648221095574295160920895112170391112816735919552200268046305904112630174982969279971466878395861367712927999378118981857378483172878069974957748925380551192768825205229786197191842163630525712977187982819465413574954588819649202001898523065499240663854808569327146613488201467054746956602921514058147428184596265360835288093482831061414849233292304451587500211373459993665798883258130100719382545484659673627488999407693563069904955506359024793759697116581045812865010997031395968714008148470221417952207834480445620304227313830443343716756467505235594891458613536730790558422137819957761081624453217968617040916515375142066591297037025454811622713910279159673070637824606206179345009713951527488560829159837121950841696231265035578346376639150750577503843638805727465300458810652841564359858412818087121409484761991690908778941535560266737845832666862334380461264108029473560949552685246190497215031333472603778653542570470534895702106608224182659859495307595302049823590680275954333726004103277799075365561676224187106885520644235814235376275137534493660778340186588292005768752525444102154742723782217313218012210917305030912470402615909729854496439099073934885680322341569374815845125740756506162290390696897425429823958727562310429662391273487298506735407462505960312238692361309588691664019439562462742274803246230559345482331140185188184740932654419283334252699319444199698419048032383134822802852288331267812783393338842230449106371129503939682694030249571545897114369966848406202356421915129806575164737345838334256874270547243313440110613669396864075214345529757725814650769335971672805561649856062598161976671208168710488986316757634751897803351683046514192294306792873371931509101518651413841863776133256874231046410880867392719398351562736222451820290002705023426179083415172971626606672645800028063841996833337541197708061244168750588756614626831532113764399740541858914438452655476725521277397260502334902787703305802786043979055805234971548614862547843680374850953584754075400764087257224323128218323027643569422230070684186575132561913475908335768027400911840166144223447590692099137673139092671066695746195697873102348992928344814887764967452294625124519830727862898012351439336823125893944857374846992603942895681539691104826230284210577036904582355066367488070126532150427158988532600226797035336717854532687524290670486384891272154499676600330249863756683871141906095768733694756707614890614379990117724167938761097044174092010341412460673821816430034127771688083700119859499900811241167389794583973525060660372886589373682822461452504489418050396277957462784534310964205762744328285508528318661295429027847363178528858784820599767821774822297679835226358908249387946067882304411602741841625946291729754934683845185222245456924602766784749024744811137621636911371040596343642759813994920758775433511688039160596133658290896407653063576472888427600567120320106990499892688374768147662059552558617467281926609166474288993247274872928242071203711462882466917841331222932462169840180604893791505032705036377515295129878095968241183917354685806920929536114133331497993746226066616876840426837013885701032917428699362636225501348593071608086168608030987642260164341735623130692687955985488536037705644883439847855558596591200720167126721673858837686322982422470020897920763319662973001285380757757054110589676766821226847428176901794779848115352080220700999520729736380477003678849049696412797353434021901629574921201257177260303241472546406737765087753627416719635462921319363151631949324602228407577492102627783482925456085992729066148189091417127835332825050254441081684745968689417793628163609485254695152091007944812990212361359830747441082983335000957320085280653793592632409272414312668491948137405112885860637410308646914451106907654789929564414218608892964777449078852701474345789294625394258111431267733987898041162132816250520318326397328590584781203937701347204220714251692291479455796338327282700014004693781788117880517008689912102784053323694743645647551945464858965599650202949717560449226157976702151661851837346446671301754923564039757981519219960735221923579941587777392826011080467581526449630197398871169850011113354112374919808036161953334728227434074816212548917560067753107508139370993220315149456348950868926302650760336934680506726208814689175443420490832979759468686374723527890112930466820718934656874918152397674409806909348185715248044047349616979372600769371886101837735532273872546039737759690691530535448167170280005454762259865586480864548178204654416613400223551463051247247065232370233950656634640574079602272536322758257179678687783166525884215304319894612496579898575902214738926059375385173991377744017445257973035039711443983554795511540789067477696679699686534087689328577345099798448856010155975628077437224326513981067220612587160343209407554531309446953724133624667092895836020675003898093597383932369143607681262966705878813405792019067399459172746019975111790201517040318593131278478525671743141576572101838595493641526680105981988198742665035043050528630005502174264823435527517675931077636096774523803618920382221703764752518532475597061710587015599842804079042417034904704109041936698851422922445952618301166626197499379547541999943129936536988535987567968022555628821911566253686401056547234047600116998894954334067746577094656379284436313994615838988037590661681953909390908947144049715633046393764236293982368017680526767037009562743362905657201559525514299054088918548156789659237793309247370453984090657782050633236808964634119046745119153128193770552719116066465416467949079937315200196415260115334120921628699980249494285067394376981078451911189446183992077582825974001791995787612721606342206033502907579664477940550407624772932162952825674528091954546670844511551143754491838705507287632195606685336801752278739229551757944985197337292361861840787352411508491929825706483077064991892413959071574810944608870130868639041910500713468729440481824235816563208283112200486042084768476869291569757751809208489294180181160682503421933928038557629209227819522294329498382726354851365824716612074160952434157404940616008061295122439172733307725268011653969826503069184412660902900664194119263118268192690897219515910978883768369162000698662888567426629869709380207312314514883161885749192497330885217359620454032050842032449072483297737028930848530102036380922217935318519139004775475105601873223926482547314021520439066756328451649868115558113982712986346402082491253078009199305953504997079339199364642178565023278259128613990351045629578621635451282616636028535972619332632271420524057964049518089599310846311595865806345025462904556806022939392229933802092365266986086129733548504806779068230896165620789267107984712201319254409895696279528853586066274583223862514922348588545566182362708325173783344935846125801463860335976910191151212109093725156024997298556258507115483271913703576505432621977969362585203093993303846364454607852590796570195837664431771949909834005258700626838038641423967515859926917726967469025620066749093632700468338717433525273273511167259196228125782148049097704495168471853117476081618735825782694839407084847620320507211850017160668322681606859062783672237602031622290981565264511937163234032126044104008846109573713499930739402240724776208425309888560404106533155279025216833180573095244965010201929366795884543845267824608512664440081374039020084212740250283591618027026505738955088099378924040999496171273568896632136217880491033157472148023321553869758345745561409677968119180882986782964668486230005304493505121861475369959799371104356466442038596748122287885846004526083557536146968239015878620938744919237953920758068572842002851129693725079185939537581806600370626798910949718585851652728930945699052201819696085543460978409007194973809076829823505532761483111973692519741924238071574614705141498403528838625022147820615681602915653055517789478216784782611384237344588478028742248854899568500954490278921780917060042189875465034021276921052795921092537456738248068781677266349823101961458638921920464240841005326859930601520618094546848222332355128569229884293851991921302896858275977275523287736297339422368562296375611826086509038243422068121871004399629307255614114838598012721381510519516435364431694029372352954635657939073166591475550879886140854430064386078350862851518854455918358677517099673367507623188988704957668494403188262459521826377951336922173230937335951146412637384170055095752156291313905867384666928829935576943038429836653678908191217196991548590076074745994842529147021702651601422590222788452415790036112566799427290606013303660449555977542174935913991891230233834802472150056573654975725954034984987804767836380700964349537523429782567101951347343871996105082240321743979278651462087828532376274916882832395900994093811158014584985787897171610488471974000955995142275396444704663207497580748399983600023781582598115166427008720902759865980113768904159887377999653356667430523064369740096061527489189144417375300749871898870716118783426210059086954265751389547937759959497701287673949060149623582767488267921764102401176550375815865670653553463325136286091692305807877737045831918172520871740283279352291988551631160176510741944664338495848921915947577692974322187316384792357393229556581668268408569841023262074170580415086653347074788485800148060755769457509916846063230362841249451897111584157211074353642907611026374814154734366259435233844041589565931783656039520850295963004691656543416522074459446523554615461940267076322105604085424170758177774479476160457207297158331171839889248904060508313120336210641006597301539881365282394259408733789636412743901980930400662545422296048472316053716302292648710153837641311029895748641413006894215603782887852678799137518875954843066290414986315104469217031600187479176897991070833486607675196914474181216383457238497641803078707346733349439741087851511845109363573018452838451082443476666862179116781762758293110169281100186375358502050492936283440253027851872373855007062589079858043659748353222148257733334796829377272286574197851360798968568968405252004528441506530216150631081242660686956202345838741623684497485930095432895933457761718391807383490497152564196510057157665603674891726618432241011434568337722490025936974130776376015004001698447971828602608037434813990979760123240754281913802618483747702694984180480782426270174879370979716302132758297076148014278188775894640750543466171315427179958861867971686863387825815534041329403357389651176797440808687983815379727936907531797862095216881846919352291935727593668854288784310159197118631006872102022440563732218255094854054578130779030835590027779125844466015033292045536859140569472090080902516314110940885627922689912677294373736747867002841087498728211815601546904346940518568877648588376905952626716550656410144081808089366887779629348013488113751018045080096863067562793125244508535918987399460770636039062229534567347652777965235948601021383108130800606022670375262136645512707443306028952391404217440186682891077712027421514809948432903136310377117190268764700338940366327284172638106727154987537530359609078074268996601222380107927624021873691268320812901743231361093998528250040220503670914507883763195103043669496432333261991569598066477854732038478516873315966630071303003726030246944054274110476511713944866513101474513309833741936582989809594044763063294579730791355170149445517119896662981200181459354666176922461474953344100181981304682860200566941970317150462973987656838193057735138573362492179431398681550634481910583810146939491707946864390103369990721707391363770824297473738285788772276271159926069124942944098117682808959043290919696945738009079859304668291368483731653680370540238440111522798492023172082999842289305238022022464485706377339703875240825685329672132160427132796342642064485354473409744570933434319120559444490272616215415311453286878825206690499786180726131793261162838385666017535703396141866092252100391580634434587012041703048260057430310993157528906323562058635356967135794490090975724097160974852788363933734330262474321636006989647273641573468632846483780775612185014083280350631682699530963346792358338255638396512798427022402038351144845560122194678528834289317222706456064706884446609102949115452802172274968384019193787817363784249905869436946336858556664391977313096175394070363667673976913761672977829880452469771933878846885941896662909363883172403292008302209824310418627309111662049531748354596525836838176600373419423061341523622196758102321580593308628363840748385785224373991145896251495848266670370619787560746992464781122514923492485075114125821676336358603951747546020365515894781381960687340182437111672677301857641502225181888118823739123662434066481191158589820456994331094958257216913427310937005516625286346603585337865955693764464294020286464384404552874353867699113936566409033298888452936413955874682342783101538050416667583449133312205286754029497643357570160369545070561702327989785837353978427055881093575203872924416398292215312978125922414197088841489732029329681672000933806767991489197159787793035651637128375627690508592043130447451057121931281860411803090181955813724309693777345240593216529174662487560859519445102002964773640405639592206201144633142830290247268973014724861854479458913719308398857293267465488465959246595051315742309091795916033887148661641263446086780204146699170575308453149652325947556907064496000526697373211722614189171810912492649604734515193546727253915437455544420078153560298116586970329522324914508297430563286743507312169561537656548286467723637307937707569148758684824963366682889101084517040056619125420218661725966807598415576110849456751269248763480631253296438858044923013482774205961857804968553726127212730041468838352268631458001078207369807123612423470613157574994744717800547838282875200783972825063675131580711371664454463486132412996088857109668138776581807447127155279058867869224907411692842824860099725334511714628512207397440764931333589687342265514465821673729965671016256609491328862922624770074603269515964798262524871996786086002900618977910400404299808651131880737053338374497928853535602442088024913711887149813934535459544978573087732589693481712072971180795946962011791916526625929585192593526735095091957718580585132502924024424009942763276615915522498858728491599001429843284517145255350184962718195096637166944874690222672368333010688487257561935893011472055047095196385143388123861961053586056339362491056150201556105386291203808732646662735942327775039319275974143469751988214118338972086006629095578347217530901899499715487870393418154791386870885002556055292342618234022431787810299269672737523398316059650913303015925112289405166544840332822500853587311300386646144388890483130529889228286903914368591390718563383755540095469762434297694358698745472931520126373402609308664450997327758266017779864986692814469071056331405630156709993074789236254943602370223523027838241030449107363156231268503845290024870268597913158464432747888889803245401544053107864500891416554114412467151635161513030555394186766204257162208131676488801110732414792994854481115729016458369086266068512994924672075479604296765553655066433835961535185842629939716590843534495802721953662552458160817059159562794729574216999235260434044641736326793766391661248802724192112715348450937062408116501005453749302572478448564300067171454859614613648031512357733729165330091437840833121664446570853595357118294731784921274774398318225806559285634620575349368041968538175115651920525797696505268092166524487360271175635571763713675955229426952600992504423461893964886278037258561363860658197928280189493219078198041806568889511097813727604990561785638449594236299971231382878475668796298027067016840967461535958879091123719870855748515426466054830088126271743572038678572739458617833948403131957090211058739096715027970133070449171338285913250101099194475638217473677078649603427317507440672885059696366483909176086094870721673666846979526922705213804712346464505050292696343155922263480315559753436211538065384805310878411935302248900543564221757124160690436129299963170657288287425278172550751157672309471229371426171528355211737536085296746323456765431068226374661394477352337737657513141353720275382993701122082986131571102006676829935216887234301556004264758847199621159786399273277762834355391921861809130570900085634320005320989582556301365192645322008033270294200161426822886891442326392104891324995277772449215472363579063998209847575543021729691954783716345287422005429832201396470479220932848450551511910958664111736813348007447772257336827767072137292962616596633702742838431551417355367617487801178176229227089313302854140846441992138537528309875445239453189098738184215162680360124172147831690455847709990608280645220492926466194272217011899315269195488588013246165952462798732446602916739830284544525368578294129855939879997860821287271140559071928807046428464455903382831032304053113079235448456251937653574492108139175304527021949276166148694902474633971600574510158588837221525194550749766095592172396721013015402639497991424268556651951389190961249348687305372925918825682574147205544961685463212025968818052993139959211307620667524958670289004927288225142898267867457046645320882750437161398443844888109464368708042352916101525750293519591665355972044905306296323484488567506185926947979590146171551727479597132518135228078069168922840604417160229551279868516078839024242127131078584110278399237927999328864059015222702237621931959738778558063794622707001577047376023293600379652154726048051001050847447308697545216176538339007579283270725871843895106112895893124639874465156438428598820117478524294969135424581026530474780057738112347452562264135307038194654693008530664339246878771447807169368530472034605762108030914739291498337531121322080355880298842558114155194448412241051764177111314386309067023031915015749184619620129547667947392621191191853605891389537533403922846568153970968398946268759535217159913307475975336333435284898115403381975232990564427826570013852482248625991603500163667103336335595068826942777757612883495672540462763890972524196474064279145223703815144214317068503688513687367665356996557444671778885603429070897680210571793108580293003508588308943954644106660185598605521038757351668203223949067436008234198655350102497528133335505604862243101522502466133213674710657519522392603233012973573286200454359101004326694611346431926391499941256130224712251003846884934145909864649798202621228562861854878668370879134619095763690479734574119415739990293648983509095689469691901610352098697447385886454669184838481218718614009055321227657035916796374922335440387688799601659777879102976835361182282876843685167075978254492011477303587396653303274045802629761864097041484213124615674030759801189760661540452558731881080316184217435586702035032340482402293368262244150956103814664736819742714298778365199477530236988499691324468745689617170134045905375941317878346532252259081712510309988346592212355192377083764365684705330743650305531435360518380128437440468954872352844174397047333918104040100032850957006431247776283560547667890442653830271802126610488368412984869846656633266736065975925950763940706497872215109353496574001702781285815954985304780506256524453100546489713045900376693102014439154594635767337130630141088447270249088120637533805773392194334532750091062731234554543895172825706753908422874925048433692622562546587455853798822845670622539554841715673113340496280990430203456456987854243880918810855449774600920257160349321465504290739755670967447112638435540069315478528402858358048389085671045970462158091790132514446874547585752524492853174254588885804833241483947942561281083956382249713199102783690373740540818293949042098348357328776296073067170315994549133779400062812902587675457718630943181825480959323483176178294442407943427001074989880799425335979757819598486022665777915412771018942987570715381299033062685002197354143713008838502850379387324745985263624190277076043693174811158611989987937491989982321521770815864832662582565172581687299133825901562044136162487618470840966140394945191505821227196701089927937233569688712402414197097870874635335205469693558810814647108965292117692130191207372569809656347839403302932915179047944907267757127313152338950843034250608143812038396502339592022639392210043322271878873614187990391888481644709026865544690531210654650811844551563564377652614551516056385834086263062236670051181423497256944479787137439849330729732992401407030357787230524405864255958063574833224158248854001041433652024789754469270665419429192928124486488516018345228598999198331229244954816192087917678659073065122351575585834635575957207029692882562060330307391719099534975189848884264358247011325284037472466730951039034175748328331914175930554539780531530610680629590905624713294488222589678306218810026016384100074873630149523030302968037118095703708806880779627156249921721650950947091871059402987990155896839767689507262712882512863906832977135673999902825668299291540483145176195629708641210440389082282543203382577388442245911476214757596363746938134534930719353331888037108209929817929365182797013922332010251720126950697291396590332380948775904630294682398785018636852790585764749917678867690956097793861565361544961658516622432728245243204068361326367901831102134585138353297620421026302480402485570914071894122350424270207634703701036989096869234658595892002964328109376893726900264732240942057317115756036407840438535743638837356733445895524651249034095840764814926710151299058447054490089035039719938800116990526455557274068150480916221933268293073124100694860517418169487565846557768848281737899601885168444884133711967774080451319192340860453808403335410172177352648703940853015615744997005392613972259606935661714959542703713035040634980354908926275106576235872229701835244689214085033349966531483905331735880888809308919655880275265666305486364228648746985471086488218771693155285171286674344616426857720536755237447661386126624440989658180468679032380466108658382856309802008112181514049474452845722186941605290350823990255066963629050017421234840600510238122664249387700522043993733591181627541111739584063192855277620794078255733721149037235048259117467534008818120455047309791995866237238737948977054602757021891538608036646057710045367954898744217315827355910817798915578275171429112465566941162806234491357646221237788693858053738245125815344209992122562280892452837454593384332573183865570971974332064503159844286506201658554424149579736968107380506952818788958680946678481444341341231227177627467075294613620263794239623329550361123402840527173306989772002021295165535017001332779883360025442907927918528342030307114246947984120008582346625039117615167742671307446428757495322204196844977421645978185832162647795100211104145870395112031943449523813664989434662012678654470250348395792259131741169022240075785764442217407624463534541888381475193458649879829952800722308725155072929195545401722497481438440481817169603646628587522490666303511870579691943286505375378021727005695441774787225396015440700726187385816036360885599897960958547833282369580700122831211172207866640990731077337767458570556842099603399848641847333408864512458420320572468010876538889818206481738103266335159362865325444379039235330361223726775131769978480800000115720773401780586707334586417407564905051638006925287920193268542401487901332948006734325760175144207544999403955378818185261041268902741950322762473826610269306349614441058830438273378051390201913083562068754971123722144297062632697863017970239801560914085639583431111529557784257364720310968198144229176871961822638938639917721175301141817141845661832363963878488536579586120887255729213888664054198292011819078553455815441695494190578057429427365633499017033141277800751293323773334104605392020870866695310335750550692819938535798835336680538409977585676412735121963494758936791079106345355994136382467986792592124401656919122151487950745440847298511775385337942149126824278930323329713994923186069593555602661483818505001970608051198377968252828582959987806805219430417131761585817447139738353803228892939998278005268026620658129450800302797218502741196231570716066920354320263688756497502847737772570806785064835999951726724956031643157893603046263899811971309276197919151272616138988828378848888210507487055255021271296346276572645304245757084446003033083828126879627183449715837448416751327498194276925426801352740316622301327807938803620173327237636199380508665562195285471860083471270092208160383341004073737787291264419426799938600213286818269312993756656147769371922528011857812410743526963441849781001998863601875742426599694246677018562511128921146128543803015877854227038253582438721865370570815424178574201270886850085837610937442523445276905542265687319137511893325620936148960613193985144880690324954299948238710546005851542367555916647933174623050652672356992401576440929762430966479299945081890292302777931925064159901371959538904281637220651638913826162517510755565126820952625584906550307180871293888324293476257826001763614933527716320835784811684212144514239316986847648103250258552065370090839906382165478846721113832727482120583323232995588819465164771482741395231285062391902999965991110284789273003716060542105611871354617426263740322627745886744548180392942755940759675276347655334844125507322249082180552209068425632431007773587430297895077772644849157153369177161340218200019127714283403295145214352145694019102311268642535225543566668564531796144709857306727509811252620454650288141919370378151349060595813500801113711365778339229493611421503043943794905178998571216390198658324793210575089480790337064061904159044135100210205926584982184167382788240427937958530448901142630160043071215492965858812501703441332465610027996176297390012078917674885714208130758056502060776433877019266592368320803128213462708723761484377494926457129784552097903642564502853849289667760748142584081955277800751188005141673424653508514055697098630179966092958413986468660186666533216409819316248858001677002730249426282460287606671469317302908085742963849947516293829973287787144358643328257665419775874518837174330453299416184434352749846483308896053226738532603740297629969725443860091942641816659393793823494295074189296687953251384319758878425552472443503994955512811559831528990280737193425394504847929908630548361655893339110836299790570770696884028900558412735185041521728283980235590602464663167359886533419635779414737941915701725523273118973356906882069452506906712062639798811482911971852659051028265138639128296458411428036611347373806339780460213835857826284657131036740375531409818144369409508453381897778410941969285701530970971812294418602050368270798006264934946682119852637091540659806068615538994176691306885846551440274643880157405880369565924106432002978143171216426570133438505969518540133407683408860440333047061640455498035992226281479885889114473256450310815855073424200880599311646971389365790024042750159052895535458346248885314564611117618109475088459606221349815807512370400028248548381980921095493526255499025943261930812545495947472006722990817328529144877095880390982464947859356542472681573275552386911822365803196076009324978658497035787868512389029964471588852681002428775970404060054739367205462344940969907876809000124809735262505194519834269930379727840358611453140606950036326063101389501576925471504357179872230640745370172898094630758652766808215134330646453092885150489112240216207611065117557475248571737308535881212394225673735767700604103792744966314514124975449974546359462907696483084469603322943767460957870686501049875227278560099069159928365571703152149098932458912949915583989548340816218903772345406553749075038905137910557713908772718050618562920142137666136859961596572478788388042805031220696954318984784565944626273384574331720841603466085196002394351731836160795279599852924194761453069649707286563541780572174036607597083133785058877401510498830825333415282915918721898458037929853342735229981029698285953101103385027697196837763323357589957742368499046129780892198188474743901994602747522623352965232034648177707231348864905881391270535670703626942402335170299719886457083515615190216993483384076617503686820672499995773248652608765863798729330089683096896577189137746864510322787592666212692591600373605404018758709669409313841906930370363954706514303915609033727809655579715099217925926847571192197720215622385079001223266535673612547479257885412924646010178350781145532330187131038820351190429601128638282988807739628715884322135821894130997400627044443453180185281225709666399040922311117412175295372662323091035712353928099374778319700937196446546154307972214492391196492236124593134602932591916466718870995627766944755612034338513360471515183815643186537411056970747582178631577719444064052423400642697174091186186007487238865015831843162024698610357015184816149280681927856500925322434045262437745348415093621627650807376757461531315935149095669407245905887221272939516780773110947682185107899913600254744660203077845936384853568186671872189153263573237794889828185610816511660650770342358449067629235133641172644141523907987578099312515013724495824668583676821179494795050749044530761511802378375113310421826591689878503807576082297157927379148580432350635795843883191850303376271417215811245155519772021975200368317622454989659500660978683935865673107537202177878398504678970274393724979044496711783941671619769320251996367133387591599177735820256435141117290655276932108573423929078816018637858706263742321843840205763763315227403568603436224321723776651478097235241679993139926260489884340802160050781290551982121859811541035689875608973072609248722091041624778458471679155859098201315380442479293822080684083542827432930335890819707472331826527062546411818749948395189045710321382461652080880800008889027075270377576029023085245184135883402819890971313019800747214071320725976906656922529539789053024096108369793402483939215086732865562797906608834170392780820862938987136474351343434211668897639272578281953456704241005586927671664125235060370520201859212347006146178026461073300508899688418753796440113634730402363296017387125450996224978162016468467761204972220035018561881164279824823142475370540268723412186624708222815708696157552670228896980375200311755779863542511578204728471304033989326293905153020272956479356459707444498728932609310934155892209776139193133688427112443264024094421220753904400760316266989646407309591942520487018361073975606011030999286519072482970228134707704791764742645711925197424024347359039551928976299486299321176976171898026259017571428892206461354004116176205307094004274484429029971068116964390580409109637254489375728693214787922593469563418830723093864363746822383921593463746906611707633574365481273929787110425297266301588846257523453811456431099314008240844778670520887303295918712447162524292290046101204434681014697738445350288630956175929484420311094814578451183112417118996137697356605505005286885659191498622420375912912938955455039366018899958759799251211298775613430824195119419643780816750478457404186937557367768971754427653751679283713721557669193195296733919445242276415065538478487987660272494412143760923117590655725682037081456217775600425633584924655185488170898062769331786717706790472936105520017394720559010318620675527690669621358081436755115301726606776748263158534175608014513939933810122358813759239456396699704475275852716762228524410732920260156571106892923829025295311748894207086268393405191074614583877695106056061802980589563650269312996499760597861672216873840913061112010092131065118135073221817558362211243096324920389822221483105695527954649463811984631958414065911908039663832885171380429453374299438954866743305522555914819179142287555888470719256979434036732218566135585819655649915353181364216839374512708765729406995777281129138328340187225097109476173601193734264173235228310965087750645271277922942291910840314963646396213568328636031426482300552425005169552057607621613379458151170192993917563010603781353218499765316325034574507265686296972127727803615349700257246115671553867055163932287006511457486082983914747414776536744030727992232231240986966668429437709881883949053263765129989094057349745968936883394371203627282858294091350224658098459806765474905702656527885875034264763869029444532879873033692654179395282288996157694200668381017660843804322603846064305868958567987744021172121702006881024067984244433892874553092326761951035760955783699731031373639387028390568705273851126648970932523403884859526972957041545712735437769129521592545164461967948262272374838272558629253472376894376002131522731685799361384112176401622209288202793420467785237315604208154618387662923129666260086474787959968181153749955921346461837466398835914838480205591276419457737452501535686390192150958527569375491144017904425605861422681438691974413559496289961246777196501034472854021210423005983369733486427741959575537018857978782800441043695618838129828327505604295367550472668128351633569347832063018968718962741327580110578246542007787346753677205105130081954717519548117305825840679450030332633100396722857422093549788427103251128429157089328894633398126178465134690826845438351353902739220665239743069240332713355870241977340006515074495184587908688299384951774697024080650785115104234528260188289296606863887038596136518960176278052691920382064241183764446282562432181934245702801106286290423795338907779128961551604697230262320378654469858744610430154322939644540539662567221761290624364108870255079361705577347794822146628386143204942982173456692851888146961023040570423585234019868391505845795410785110895886637383907526036896489365237575001507584753851340894174198437218953584984124547472118618009184272244662008348463705655220724827988023643378141576567499920665163504738872059080111251638506567652407016044326862112877751872256612149370114099365948751528764363766238350316709464925957848629520724333251075327958690412154395670498531518615794913110604705416576729841151957875588008361274557008566180208160029360944724757482406486076338642684918257219190350737829562009739605377901015695826275865227711892670560485671093723496551348546186966089505531414630694303765142049452912017233207657888850507098527951037656342482204106738714993136693855686519164491475580517264294528580159059537646160080254871743266167140904860183885889546417449410600667024564610611830818812909893722867803579921385616260915010503697124268216424229115355318314329532053772604965957442608573916555924304396230946233262530307023371537617653699672912509797960492728730091728222672643533372745308728632084361528948487152298256724876491550280088417178944494636871955807018856059614310790573308265033701643388207648004851031995919263862710873651727182333403292039098591089140668503484498351151237444359207721549884616479984496726441414125924734050708234211030818474323251083935879256050610941107785146619687152566740214133409785501812745517002145991742860286542539774951718124687849353342549994494638110868404973638029037951653256848621357912946426417403840801120031150543028765969395323092496913444436812545644428995723767174750167732643309929854612483306702892850889036949771314622524973580176589149542052607544300400919836823538956509004026230555218545518147993763300658964039142978585483693454717191968366998298901918663030802721833000644776790825536111794577550117932511739390027893764860029855902632691783105174323116827663053335329927366280459614163433383800337508735708206103889837839188614357892229511153370352235062905272173848244003163350146809494822512665885058620950169926564337692914858652024000696476720925490336915885473547312318744256409367676543669322950338511432960145964729249024301330602302746672737480719920781247295266916785656430468591699038941332569919164099305271563544696144933295649660354779394833533154093927753922448250394297451149337232746210332878758959244265529625433341319520757106726212431562173352121959835785241376033346993095510093136677266125051361636586720491845619342706255221611112975118987518131664734466166124782051332660875426412877823975289880070370964122308029601694709644765316020365928107359689614139770131890661133489345566728653289623851458883532549462086278924198654048267010372346601954323894189585535368505079719105018165051769662760445851939383320386197589967149381390803962008198017629937431986482673089423735547395980498211104152584084742088868164139980152344647424038972841823658757129168409079314146712839581411264002922271341521101791146982719394790901896841116561570211685407855267321434906835641319279579849490995278668637868503359401417088679204967731082743713727290480400387524932892797774701379179456537911301266964390769937319949888822614720642197559972955701254014464946241584170409953235418029258974432655541901057259775456816048183101458203142367429958045890912646268678292619689849677743471798727237746193337867284527839749329786444121031387596630421432166867149478368719196333386262875506813286525947202106277674894476628031850643841630082642632003919912236129005312771593639394129341801697367020706905036115880636436920771765852949080401173005543732926293235964812527552005588587805684261818419861608266333899732739789317912390856513957909093894851645645889138528562367645938996015315429463795223184026394887378617253407490159276229668831489615653081931023010197488222846556623989007188537550462055361202023700936364167897401447111550808738718540004546181620703765710690271033664723761173347207512503142211449353011825317913535752050962838728038942877555317935668657184507907426267440693271013393139302954209796781309266062809316804597164142875350814392918928381724489423135893488099381620841413686610278500596691538747963400853208181823033330708617850899516711892729129220017745304124519255061605916865770602597889600732820730521494979971850751440981956436021666222086316631085735940115524108570872805334919021199894943268812323806638868305415279365124021710899792096597573059145790391594870577200991543550516682377207472675277448576959127025716466380088201093323960654952833661081196376650696725154203256561179232982538783861201721889240718200066223610011381484223439750511544934419007633022914030563323631830906802019334461153007962449570626781498204109465178424862162867350337732858414565205083295180321090337660687892906028414589484523178645222191109001107764130700645279568989277261594739737146026318134279956332313564055577136268537713368610910723575015081514974126007509099191391768854606611192492098403362890529511380769747661862683722602025453220072971855504415191273146024210581635284546453413929938784890692991180637062526682833384108216803444835340074398720037640693493315588380345556640857613092007877116491188322299858237438775332138812305797973619407753767105829250257098315866725740792035944213163082159913603635584534511669589286172620950330707696325579605335158102009559326845731325646111040917382029696823672883524050777952159884022263881960039028886311639005984637472233296322313201838361902799854401563321750020156785459617218998991276852404432801886822385952569814531496023310303471532514329977242559783201330203548481842080966440904707853759855129398607018668352457108070891302236463213284195502954101045324751141719963858904727420868015375851825981549680333772589746889859646846256338819870274045324399530426035759141595149158337059518162670201696356179181033058533620353422567189112088832606491548856019031595716615751666581029470656283370760007396249183707554368810714912995528380143698459121927676274787237244350332344075387070929035071605568501937735968908203660565586808211026451360728658922746857823868790769851092012000827950863049579321728626412412491193951936793319035679504765728270730158214344498638324706523961732480160043729183860424127752445216260050914028456454630855759086632136864169138728930183394946318238632484115064462087357973778545592581726549538563918846567335419993930607168551501412468862182976489051852302139221801257948806438884949678311776690333118323339474865740876939013868872664347079930248535060513557657195184813133601591996399976819176708372866946860692552167811237263260336616281270750756841059057189483358764627789309700811046070377137897764569396142926251067000139746978779550629664380770725121453465068808895224785168131308859127573449160275234635641554527857573293095968868703938978249710489522901756501726352886487099552752200420505329834318251517468090606130935294065422507635393666150431841493783769654737673285888030081112771904265031216207812908582011290555862324840520767253910610597812935550731750707137659160265291653303518579051074073016152107170360327749476527538189961910428293015867694811546867367042505065828372023082079658092863988110455802017438010668239234950778211315135394527695531520759210671038160759825107898158528699257845973350876443815786260751878393109775867656659831897921822071818678305045985430527077486702327133550105644418259250736916209241946076457139283403573557328788903388604124420320790735376139614495160319344012123191346557141658821773793873861960652649423235022988859307772563995319995477728430705617933887191619485499739437585700208219948958006654340783417895435862368174343212725268905565858821970943685080868581489597299115740242111376088762396341729261304014447647698874399569162640057631108191454123961115873814973330490149615284116357364861352680498034146726181674807407814826416586881528704679109081317040316191743918397202073071480623731194333749622038187054988674015585196888652449312554351435475138167652287819780248818967874669434813019080043043363035995476585133707990133278597705902448039802522875097133697498391358626270187853917936303417413278244762876129892252168433022058715266201355357636981489481332907563348850171886466701041993987584672972772152181403555191412515666435605792188371422142394252041602046670668077575658089979063491894193348168521809727739706270658648557196385384961617519195568227608817227487158588229786048997959432098744637412657259691877760465473753500613272386508824762941805869767460808901364572291006302197924032606436684166845157471262827490441409498457926235350487498824822401071771686381033450239148966704887598541133246040116914107432448238489654345439725515807368041495071835046335423076564331500571988846035346285619736612469969598863086152540118464736883326084071932087400809323426224333749950446536439364763160705328808996625254621424611440905283833633311981039607580968996187079684884952132612838259157574590399549602490197738717775905713912321576385942244581770994596999620254554679076511594814415688899889644532009965371235552766825768030734020949386063697984420875133918841876477377365729343544453819939738350289491686052150217301770823131191947593398465920738854525246292066196386817101640150266182181846106700425130176317653956791965371692586606705162220194577986638471406610633995608644206909916743267989548782862159576745923811819416494233590129132634164991470087282963327760949940269709858919486946475768564243864254612122440709215054828215094493628243093870369349924339079327481275613102426359250067317303602866973773742112052784206723346625303974977077934543945279897601731319043084324213037588288428361286950811917384674060233957249893118103411397232074564478025126034858801318256570957282124893603126166768257091738073799393667380609396520451606775883219985104008833566688898570869717467574109454600859804426832863368164653119880143274120653490720557282435340081840320830325926971554792947111260411967755319404232112667566449999609806203268410320230757189334520772888297758673370704952949114016383837274503653413259284843779568072897746797443475395681856297596101705044293665558970131102337968183157590216465595677135156883652892787046372847262357253963829514277844238696523684487540262223706332548726481195579066813088908697718327854754611754583024201246873018461563572236796755286387330938801872595329169792016878859107595473002028924037962435036059533271054536004155415045542296813680856563266952740923951692933791280002026883187003344400296270929094381301778281037652726204499560256004098935674033286792763763848320483590210987560245942234961026300840357162299350922732685453311448341717858708590293867822222869311107324236730423659150001052994255734860466694890625273662663625651102015175707179776378957779687002032742664188981734422987150379929799197514513867931093731118171637747327233043881071535949322416603837749191666184982396703334985685895153348638834415373652203734172590010267109753475941447467326321646612938611304448122036230421468504028581819455707201473880683643523771651354781424485301434237360994794432538305630060774370329032404283937047794465358109882066447217210062380803051677483835691774297079992078949904045402245644175189571773696131513836902336799976158248282351088575284679934774884889336037760775734788587935196238634143351303374857826637544111197922689751007073540588764148192329993660310141484764793667037429191742967402465981920510006434796766993419789086544832772182947657441159790542709944879429696942970116765255387968956546400765271980287106180130349408648136808989888665525099294761099259616055937685237578686783095455319107326401126391182710393423427981058615049875225569938507582904240060677474748474570869633289096192626061996911888655765079755249734970162433095687636349543460659837353909171493792475515817361201372687335117639110085506309544845589227328637718859496509634026063078101394980694164087590669420561572796809724365894759584958068415634594752800344192619432001894057841412017133527790000822741764504246858963840020681516309493569296173404079669919637266562939492606201752789155391067479276885579140900906648688232321360466243649664746741535887293958948345394387370321487891196669783660670235137836845909717084405415340623314558460984612415723444955472663234172283559855592376383126476184530742420507276188006529287038847501245372536922183454596509131606374950757074034429585297776029055207752515817293335425100023973045390933191249015743448382048340253355785353087211994243593359445329698676499953956183078792668595743511552551579259620872765380782811259555866272320942684067388160901522595116402453328967239508667934203727747786997776867419160286178806528021340437169642640501923524728673871541157444872269338061201410536595677716623413407885992016140739977940295558306008544229887598953475480257857276279387574777283729886040315120612957942470881030456061168196280810003293495932373260153379385985375818050168825875114657471153141928838593051428686949869528817009585885964749567199435163320848181140560344298807473462300249008213348599604141062507953020937526584407714675265006645368499941135688023282012446086184237160140911889643261963317867612534418897401583941754025430374734240079639031108891259318318415302260359929631194103476937818017547755853083680623474747322325305315309964590368592135595112065577825131335847997076309165568697214704261662989839069346107943821819437453738785864383759771528230945849827499360730939314126868469717752011608013533136991243645913610793228333161432116332898036582362735807347547135942229155466542326247727165782884527101903223308936240330845742575535094755463323942044252793257070253104204887264268314766983995345502079660571988157248494860999697160631873167338693619426428680113522996202671440519910142003177850566528443319157510702132938990815983126655782842902606625182981148639624571800709172701637520766245302582000463530763745241260576796857364381587348913973845158634058075298521957592868026578759156546084429738143828993229392470835794014583751248681369834309671480933421066960012930027245337454386640143669943108013991671551177972420937868015870606627896937120637132472884895107500716688407332627888602594085790576542572081232094959166516935924864047213147344684922462822352259937002165287701608454413589899346753289453250543086158642681074276723243700470226824970955492900282107938209993916270613361561591723086581433122692033543841838749472165560800764922866782287058096959566184218682783399121623047599476012842537958086773438038629306041374673340447457520569697127451619173987765426567157479265142898431780236855171266911657345845640514870862305059288609639422829917489525307356467685641308265464081701862582757231864419867719048124251737488533219381354966045551124941146123373336851508938869891816231829742065205567614810335933082452852801074790137594149185462790739690023226321208695225783015257320351444973887563388539330903896777364380484482094681574249271947488041789015887359426223731183299025735412120566286106656481062093863628513295281239475586829636329743565638057857061941670597459465187139611799746901076298564808000663464299866377275691030720765795940586148283827200750314173050537195168162214884850731425242189351580948573173978003943835656029008133713066883776550345187888010520973931441201665307592181678618897216454573083494431585326456397749144449358274470333842999450979200878553043192437400369627886431835654678276577970683216930118541842576834393480597530146536554443723174137817054516071713755106995948474170161730267031660501542981872263531179446809533038277806819543001190994070399913181902558441207704692767617912338838860112325227099575702503462063850578463019747764801829687961416908040855809654905449677529196639165887709660010574538815221815156703166791943952580686271438355863872756552260154114585158827247397080816562387495810662291684827067963369730900619500965144630527719421798313365865451544955343747858846185871129856845722604454910864241073741336824874708189726043270591703582830955937211552556505251361734394339971516815914966486219153201428838833250831747616172042733699668199491118315413847741866959766087991151638273398792608222856357186981628880852740322111852885523812377653278368770548441679930171832135192488046549983373013791442917587250608836422371520130315196825166117666626020104629639634940522572485516880494913782069454589086514276059296740123041759255101192721177639990333585895463789481151800041462642180933799931167637348195051875508194847730796652103016673740601622834865364062420380153974362651402380418412270678680906658369911148651711683620295569590313316416966293478964653684812933521180580743094378502752544691129708267177365385887599512286102886636953025819742083391584794572226591443495838453161735817473703191255180302405715143387060482815566272988765661665990657696494272056790967946459577405969555990223339845343543632286635096818834004519328358880727174216908307732257612038814707643182064174956528705525012275138076195048725059830743355950482182576953456032040881425204252483252734585854182164173229293759462803068386586948886979040662634499869890664834986269436515451346031396290561616066376023867125856763263175677038151143897930712538048834171606007687886610350415099852698054952434793049350725176715864746935173404292231478172365332904694538191120808455558326801901261330584434528157232869596571757972388074914641100862782730483581297789421713477526914958812627713449872670192614730530268694465679853532721638455013394883581747895289871581042218152063075214672765320272799636201179311306272343702292833041781653208047012607957252298882809896806220153040549708810517786012202829712280221275626161520135573355128045576626389246576470870369318024264224688382403448485226609378516411592303315391377871852627502166267972637090397698327462487050974118699579883007195713414291633828633378022243726003698184276088905290078194889390147650778706002824276099016953135457181645651374748228675309495613081522416858680642647280920055040996995378514306263819233170951645200428385046556541986822971842890758983914481236934649508166592854091242223740492396460281394309821439304145553031726718702281096952187826659117091429760151285250315409006168728533341130113739111798429968759019990562973381865968767564538668450471428995675304329321860787218870951763995326318986779456111018756352315818813273330655321275183116927998164826387381225737223289084805813028684263244249180124119147535672679189070950122136340612837164921814919000457911828313421095007369678676735784355189116253851961536964823794208805364040485267038268231265445660310951112523686482496213207006834972919753652587018325572813301696032187141328648656140881807708693199169762863733526877862626281221223283279420093249702458423473342270259556705393555421718663182263273051635666615898329838860503724483887877601780244977154359553480402254522183546625348886394468468815025262002718892954893753138779000032801329133186439647999246687855706789966106801572177615080316702552846881272053113493185599148035057283298669146618142171453719472541705403847493554770455260714014240374803103031214157306641829913801301219948800361874664315620053024009263538888237715284383384728870003872524615467951290117542414515422772991968767047675602408208570589943407745643171523672040566467043219990759443396965578288195008064650045308825036767182278825216251505903176422154934981592456544677916833950819092378008239723835007010282312831395623786164593900421544454376964501859027146244092047639109525180806095225839065137570247432676710994369714700937536774281002019034835365412038123192813084008425984056309450799867213858012148133059221107236117421252103149601011612245900356948810799645778557691312340710781587982321925928693010943291509136127497857801370535928519866485225403846749189848650892216495757723720033867771792432038207160845673571678480123662851722980911908796904558678738406579446525795601070747645807048881175648967489298726516737868480947966081483422293591564628798222136504229526814115604852313777749258906880345515125902805015922382435519376348558067315401270666670150023327908062468871209381687292312716045464886764929366756622683493222057384499312104260881114674956357274909019258136207551984256529566125891502325603888199772572656845750776131788240517871916200124406815067800676985078682762973399015297351948138975398660634291438987524517800985796237310466078681841023132873055998382493431399785283248120009920560658960038934031702420106308377853057218423047511708647691230484025588691972021902181602785755614541560537397881815757897703775509043308744858569569516010686505037866451901420906704170910595170139844923199196521540686440218250644439407754713517212288665631533468520144919490699602414294540219224641677420527075928858782509479939658116556314181408455014446264672148575293045563929637704821041274501522186727797532764089578820984968251072895230173804107572336904638312954071822678706995720368630797468121101958650577689265603365909151688860956160809041013468242067275860504804309098079385141783380958667536019102670820471692927708332372064952442068811959940707527969223922521126654932436182109958235741412102727682330841275701056484825246760557186675014855711649537906075359336468487338918748914903020500648898642926437102996662070329991278180817957924071848806898056175715634999542939842613819827277755311469681755927598578393181855360363806992060619918669665673129425264784095561836516218700206843344129069625460367121848000658271689498423931322443638114028443520100808769858090664430901971803426391416607164353926295395493026726946119831265702348602672585955589662557331684150581456348016052792439824703756037363102456293025272255363318450984166784664075545323585948857637310788454589500726342398387506944001597675308477273753553844169438596968951150343191362594314367225977654420107384533206746131970109553553595462310711202979955828325880989112263753329820524352600978430349972862137076018095230939284377222373234555738682299029096009320714754443809859133397583574652247549923916109731321120411868012578196301857593436186200733922172864179902658645143223315445395296216922338236377456245544926232043748821566932938550507185275246910777321775803001004438483933722498333668692895636017838225466181488570491750535326941444193144957967690914691486691480882414478189218315611733283982893631589498142452373066572067792193185185260484730026097751183365157363170735217517026957512884767569434805261496776301429929421559020447156483165839328465386554909196426035368867840001255268846109716552716143008733362571115264662534642031082419768550962861251067638811875042170653921226479847642684441647966592965174962543008526705699816775059821955224696301077423449231850032062318882718788224618144547045763075592332276206369940425206211878410367751576172795336299708803151738658209843466344932379641660671570028052115073174705785969726341264089412533451923343279441271648097688140680817890982701589059605367499735620153147030260594257552521221158397291903337380437954369700135945233918832546282072444630946766076294816656529827180682419826369058679907652995389026464292467109462949023319951086784835336804726223246169786470350664574595411095581854274708954830183086082362907899846444758252987153601693162281418640245300969669942665327549846268025516851696732127843391745819659842470219646788122288571044190361493489591876319218291432737516659373313097301017746389768003737110586314616572478159844501101652000963013195252140505116931861877590135295015722601060128003792067046719910474624088226193894405175414680708463370332764007258574014366408659951742296084638679626687014115422392594745385729096201641595124449930024789594903985712040932088622697942189672699768054184701883344488561771644850900368332881747267271921009572166357569486534846794215427117176786890069645221052677620684955857040897454116166872129801929329834040758631002054768617113633730706957842344254589655519177286285070291441003049118207909377446682916438306614718936671314358167563542903119747634746523075016328822169862267743753852447509409128066303319557572312539801108161428062677513955261180475716001082321850761217559894529834965881208280003140868935161591512523812051411371938780271932720465797646406236929818671226085276271171780772487927689296167409639244907755398312025222766948360653279466539474385009355046904031158303947875551490805582861098506528261137576464874453816017581525649336877250254228596946166074992747651466191996198622823972106755119181693473069966021176004939411702340820052062991449329158974353431233517673073120167849788808013027543192987214324745091508016579184788872496516651746714588406359241578354199758157505651473262694540095546759832629211326906259668957536905830291936442970650805063042266308702159846745670300729782556572619491632283541527314570961244517958720170297211991252845100668673663807615054166737763352358018452942573187926007220578361080851588506781784411396351068072528684945822513803180327794348625324334101693391525600778750371141238475457578467392568838353824295095536939356511074837185469942000696965850960406756189406549317657268826106938164052350340831501916874785697044268967103570378178880346070975266051568603247292984607984056523336578559867080475479591355821759674020464458880309214006482566554888828665965857766604661946590912400110378953359145718325305205062485937427550138344078021364744961712557326291281315377766254458280143618066981113438412419236723467555434738366546360622561066899785676424547047818135715346144401596898709719615250113604886873627387885268946610212051365628303457412576661344134728150692290061608629805168153113736853887247208588026702457451585457578072397723156818416492550359556633636972054188587428523332193605728462554874706536927981462030893023240044208991061894585537961834241204645893640774787577282358738513133359252145475524832919156925403713983376803070471945812581108954082387854815966674071227688865032775519798706316084021446136824276904336255218281815393267080365637126090149578319605329859505428466257342972498423276876563431047688176887312797678264326126354749799441282261639388106627860536239839740508952727837270787064738840094484452363613229017193595707063953308927864704953270732896611511326885220043191524340643428619010437067546449493211046155973709714610019022978564674867856576524086793360396626434918684532265539459941359065331970678137600517012462906968629057267309477824520440726106528298318283404586386645207350516579899604836910932921589088924746596418939500184094201265470129620649113098681210665165632161578020090696290526222102861367218720711287560911265679349370822116853545084412099742820478593443253695005305411561069472758642431060330921079946249923089133775326121986221399226535594491736753789546584042718541365113873262800850141354150253834819362526611996426381442002977695588867993239593126260976378312224878883605989131446783941797535896569297444031649037654474709313350975959971453414201421706138117161558552165704626955167421428871214374436169473648038374849959326816702394833186388178649085768545174979965336736272854815770841601900987369405313531400442650038961973700734945239112289680483897959475916320281347921832504618515370332802161225167368410096488591784510490959369702758435148914274340299720286754138398966017988555750225473786996747806715651586820092377979803385085926953701109932683381449801805440088229979832151835508524331250358269798624112575817477347406969975765610338883913263290435028018133340763866729934958259683857778033254009987951893514309227887351337896772106254175636187336796152553862353990631947265169865703859095529851251118409597642097337428606379872011624990314151297857847141448576467217610248853190362695467927678614158780489725497861802321044402483555999782570182464993393717676741361706483574025778208992473660753321483404233691274683985804666096557878233050388535175752925270186952111538289774040998723784007100207737830817471454046403921117661205534012023740653898545262465603180452686768282620787832835851372285328565031699043075981578278040087796100011316305837939583486094388970578267487751570637024562512851435948541889274600839772580080425392195011808016009109770554655751736965636161079848969354518048413595485203276722152787745624282821168832049032218395332153839938154145912918865377000889256001573046310128717725377558497583797936796434410345818228332282557843782833113064694528915553738910566906994519774743158712187066037644371197610303673227992912108652170277507672016854648679873582402205378650617771429388299111160950950983846549042688045811882600187382673900296299124705412627410031131973855844987833345364316612301568160180141579513486869027589768182988511855342281820023150757757086838373232547648207279318339078874577510386649529244495223212716680260172432096559297099465487818530745403744545810112241709240874855421146089761657344950499227239968778589310352271083886062906271409639655951301627829118422569669868175951937813461859454601685564008003258436777344244029781619786660756384608515380034829487817265978453951476728782621886218922455806733581566612437901871508262683728943658135196390594432862298551217864726504509603337394621177157957919355256401362341349288071465977299934662621084317419532184205635213106801071243034318782268393781388689531158200892558217911403192607708170832973420652124369097956957517980816682574465514592158794153114007749721266692110799602096692696679136254104768841917096421671362547178515386327072269043595673831469001089720397659930256438000994948344915663251869416768911823267442016181746281327671269637969886162214911806685432224707920014318746736537796392056918043395890523842836362968714406658283066288551501789695419851301980858165610131081648831930623211380741186530372646034149978949410337325186989510588931367692369448782231745326677367796957350538519321666491906179147227635744547966938886747272026271918200690919185140872891691141205879726245204140819362323227069098725551297492105321626014988338756758056474638748971658664557622957277075079927955171170895819722079749577188517703993869756580456097609514224772098551463527337975148514198714345925890116774445481310157583151644800761394958718361974830394866184054580707371455322856794085612480222206362288915211261132738140481921966778790778724228145748561979906093262187641428880705417995358650260094921468221367121328524095763688477960091709898616526743426994694724475702188762427200347949161612428455662762442329249015455662965222831539284136058150491556704401514315731158242849644018364037873510152818828244297587732482782275038591864976657899320065576970792019883018537695787511734961809100096418830997371207250808255584668649920188542640608548253395162573613557786141494824705113724617458122269969685439102165132400516441146453341149166579372466384628304549390013089261897868519278486634803472238494791059375733360504571701261071324425706460296431599438073921280782816502382659389165071015023921013615321805017342830273987888956372517091933604983933134412486044985973724970246032073816171887967787445718479828868169899670044919740501326185144045289250679873527259042062485350045471884487965034465942407616766077476935043840935034478904004208710895652500039936685648593144100610285837892035647693365856326114018626236702999045919214497334798211982920742336558766391451955125606107989957439849013254740930500075242540618988840797709895604789672065372694477182857864837050525927105313134902162982618225373358741074186208803132315373949885130938920896055622523668527180140902406203386223248673779958748778750499943369532951968525467163248560522365319402303475160476551053607185258946967881777216783930224080850853389865515850550205919682389274682467773457990371766181222574599520393734739311497944198683537152425243987656182974425484633377407829546137967719596880353811747236126770230016753889480655967725825399109390927110641091983621770262984409992924903781204144227485489840191378063536776460284537179167683069997834490878936053274797910508500833214102374206836768738351207247733185534832030868467296107439905905534182825487665268778280979270386928145200547521571759681019057379100062033098257319946638042813920736229751763518701089070100091322856576656464554784258733313528354967194419471316026574215562562399569645762354722409080546715243319400857971269698213255428585999574972665420630078839695631866167223932821640035104835884306275356338809524570771224519764935801844249487188124048078760342242612045561411156987738826976724654408594160775927831128958577745154289936795528127611275941876613125534949369718703210630453194703612743088632277359879117393150274395023014732436454567207595619015518696984577017780077568135818485780186195884933887271248581144606979900732015116627373411137615998524657395160052476427414293531081801046669996554786131326858338460319310819846536818209082173312633370815761798912241075496119895836025926363469901114438780091745230103838303537523895865915461382534930986719628484053199188935947400543091627303524434633700610223405996225771475261268226057736367325835889692858487403265213283383936990960679911796489036431261584670793567673402245519140563176876545765707857843142133285164627583931111061951494080061725016843744096993484473289582321506945510656649736279449043993275388105383985305945082969827999339218844515370618334071605604281765587200738135265126009224996977129946911203701874715298339279685873487461911574185479871753120144230888790054877841986716461346074792589582723105750406184963181630518360379753298164952196000104793088394590013560608090372791607678697669284690401954436069631059483505683546568824233781415080173065590755938779031251329215365124306140813883939909580817559244467776829666718023393720010218086628187758979861092292746033421870982257794261879440642826893397816840801558769194417753136574631660339049665951710680331982515880568607582191989089520012038118317934829822665156033752474740907344401957572194481179616073567141562854742031511995302463734983242249439144394481416510858603069456596961100447270187685541430850900613170099970437921196640825932197264812276893052499116985434056423216612681722490140572503507393172658048342206593029884968945719283521575074126911365788513409838006143089205222052603885110469927883798217674924822414711198243964261468347655867516149195187229050346859272549673567498490752391450727910054717238053044081972450067408580257301414117159038997052963833588723211830959575058908957978645628085774488341404693023821041361473459692356903063381431755439653595495091257964080563358061018409857928694818506866395631327297965836224286443316915406453385344721607787979978283989853611388872538444030605699720492119962333331596210311770614094290470717931582190775178859009185418762385487868087696536831531605412067696963887995556179384103673437294757916117218167741530486018477888894189409117294710343514739340990304444741200923897472703727909871982570128828914054120032735315749083290380207497282659600553289089073724186777267796533693522627909133325370005229838696678806385003380945431892941216778184894715835106052842699864149066126571867944472314062372588125744371844871492275669474198974359744705539834190612586147787181547790854561687259413328466507327596067834576842725216731261917113252334633175854950224675717093065316509538016345723480474016381603992736133280420072762524772032611750555142013914744109991919757034269656503442918800308375490257512437105743285814961245495976308831650230916474457267643297756144562736831104668938540717578750285885807865936022827853458971571330807076519677266998068021299178594046572125417732498528652389698015802388173996298528234130095836198484145635727994276344089383983570914486179112190566954934233691280552798168080371041855100400242567919040970803220776635229319576716388504401810782096814985152826653121751471172202934938321520232664088766458607426943098274167707544291625851479450421687551524549235661487734509999188813411181427369574861833876436437675234933168860311836565469061870677961558641598724425308595519128062781260394757561598876727268728787571513119638492510013231494816144800627967937966913116491215384263183223785528141927861347066781717295305467212167045255449996860438166039800058365672720785048054644447065090298316185838050173846265437049098494152722871483989768684732322629492122848347391943045482519619442955088125172725519424282516575216122603566428824288958769530256975048993319986342259089736309704079348299129599096052678546686910511741553854128240811554907992163153506757787342524434337841580649194508890990375759107265733399401088286230577765486032004770206148530730055309808283349745804178317821610093077613140118164136443199428762976604398327806474898505882207184272309862445556580122331405744266772874888205850819300409273800924228355797047858833576158837356533729122718494802599116750373105537705224702708438927072488760869970100570470228857881450015963381888308596347979303818722644541678173443680186020959853480474469642539092798637958616234462883649766502575581648561107102340629880993297460291752948549128766330908945559888577359431823659549965160361318959671196410115598783057179179833990766218373413039019748588235466818672251707375138037596840867815755587170535617261547424854283315540610439809290761369081254116143897731180064170663097138442143853774020072163756347987026145053267692657677137449537607187842610119934430608383639952542103575085880255528323301355249905293216780364813703939167184506408986779613661059466483745164533022110140637873860305630181965079558705816579389068760045386843096037442019118286552003172556222124188542205282384682527602395209225805850397348161616276608916380862503170412928297291252488384339946245144682798474179807784187295370617589062811279411116153228712398157938058905596073022937027833242766713603405022576426707530350939301467955194185210827065531131833123149181749749190533660325267171489052024291823660096029208476691824427640001865602657320769755314119519587566687435173598287949577749954427929463621581496760973271999129352496915752134521486299996243793391236555029459245487598640332838110126039577137815720110353881833775446281015157330072182643219091754956948453450497687043765249696360326206451807578654448431054376291847798343685827228829315557823617867619156130953778815022063836836617498480145251847349834984595830339070538678994090979949160241428021516445737967222282746573550684220058619125219749317987509581669545768226803132057464136915437617204014360788241977008903091222078389696940067706870109202012374808591118673649332970307702008788599561499170476833523780004310475171201025076219410947954252176986235855578650178664122727785495927759633319587329408650500863098183963062786212231547345402960633577760081726321175059175979591052274114643270778265849993389725021702938576415879456043928568825223062733408716849091431024157356680198752943243558166705793884748575658867213583904716217420386065278727565635444114609953686654096979090858441168167464655091377774409363990473264294567754299113540905627146781418277300904745046127960437562325983319714476516660936219556295589330366883698173449233285054830709179173646320136651608375177171191612909714987926170121621350310083284729983424467653436387477551715216262593193317627186305144416547673810171891457253645231702711250389674223369567925834866479541136996777514982079309259828268780292529743860427891534849538611771217328725823095644721518523970645424976596912244215939983569673604450796210329015267063660271213794434558748022282735662573200766452166259603059535213712402685574658620943797004912879808705259190254221134486139916472090000412904479291217863946377045871130856129615949269027092692681788043590685195067077380688499965543175921806906966456990034791836708449522302650626212708203354628140283157541542568062681976773809574412123419478009826964032367587657151528999095906069903907729654876627195490969165306270792252574584817564379666394953790729612515367298120919605034420624801665971831792733675070748174004860152609195329503333520720767148588096594969136592267298160437865482364077539180564956048622439193457956501654332695317949326243683442292310202355841640404582881137578921266496102992095683430670367075764010187235118833163517912045620614174634313158398153023642631402551686532334772968566306542653279133556074647219608408413573269815627645488880737221844158544668730766613842298484632232468678430505958776662321813688400475149985381026188412499761956813950649203077035675734184247502874017816832619035216608379411365064919293853292065251578796146980815368916772548468144830489225774187915715714396847079626318625769886830452755429510513071631233530224067028555636899265348996851039213108518600010855965016663303570213632888459935940008865666852760016500816611411758560890891387745169485095586888732439217940282132825074771151846682454467283992964512949189155364000076683218375750412338757341087974536647983972153059366640950902245862511655214429806437619588414151257130139946079610902116826956651259876355102172273737098926842241887228091955194473138109763657253150911998391488418044671648433327337513843387017731013918488661112218709024058443194344009228266640991406596227000545423820841243201220780992066475643760739596285268517958887816184430925474325182367720467954040211450468587024984669906094208006168528020847115505913878536919628011498635944613690189933735383734380276352689662065601222917638006859066958530281484272384765471386147652936984800453998889951797533443677674077796725652575303524662922557514006507450380292090307243209357592388416395650946993050576429474113237126046417931086715673602970507665520668696543018330541611660986481868684217018821913788952917257710277454301436083066903864506988802278773670262271786097522363829574919823124680996149590425750658604973860457948251186778336243488478568488377077795965503796599352175307098413643064804687791128106897676446067785615940436121763163664413535629265638523266761284747508387341040343967012410886852334070084221908149965216942351464310395143169718921932328257780388626146097650710141803969470641425398084318408961224876208821349700189712903008119866741210014386591071670551024557425349443177129052334031358386951654208370098566686323486494190827783252521560291982995816753004957522125088783488204676949236444488280174548001745080650277440113714597732896448934814225812342034111720306421251816907265735347042809370693837345656994547211921983042645715745221962118200152498608586984774489373558380458271256525319985185079187498475113418939297722841224624671122591016950446263680279216784777500698510844790639447256673663244545353861346576067867305649055792255951438894703012788004685732902239298730219657606616392005240688549476442088662028318680410194837391498729094374803886649546227236665746538017745335996084739837532396488354832271804024159918134872632112305380147522538901087446234054516956549676779896820855601707141332078373893725830054972913843289132244673215560429368765522149813138083770310158640239228417757386806611046408825906033157303269187710259222651209659464909213285633263461738232640948528653757025271750502085945183330081522136424044962412904227368983364099670759838862786254902113450168551031112074809217725926824802745158112891039901046179880711044256085082740776055260659139834879395393758873279582343805892408079734752963287818337029919411156620634437100854118490594714703250838770808275677981612720726901533264467651294642856251250668053350452518910748309154744681730902843203819940013579753936161035508968406744222913392274403557998170287953968562199845605293297344845614667608343597200807092843545189806446141875778339236246749818114606013480483529203454445637870247752657983482238707284600708362671776741843994962876596483603383625839121871232626214023815755717545684983992454989382093912411576575363745792035640717879109086582303048732622702072119646885474004144493809101132357490215713837779855126218926384560199106281578371427188858936513034057947957868357065205472537610463927124490776035298548001376867769447176506483791932324852743368028772493303098196939734444670904587105412422340679712817911821470242206208913256715508859855276303202431764459289728931810168762031890892439312098529029241353465440158109029486757544803555795429237058940789724127700535311672735503844412715130413357460235332837124478098823626734223073856833590997619851573033511631796679415685154156567280792842027303065045328964772283371940809102226385834707821213714608201720915416422853624216585553051943540601468913952750947276241252826817350623939939260633707283043412751786405621382126489060013462193028069068939287135842633834815369640572865517808237574630182227089548909949777144297661582089295715048756151184889445189339918827753851533498668087215094590187195625184160685788264501281898442966331148466330523887845009969778958419578366517399363445340074752500785360817064893318866058667178970615766161633355194415396799843464162879140884827059760230949858031716675234945249895663855066542006470550897249141644174970053680530571400536447329470621546051367305205564227873954304120328074134031719430093507855693343055057999444889931838942018530160351251208665061742677469948915742814754702552732469923674606088429504247918344380224582483170596385797737563845876866358210292449690257762681215925025639179706248602836464037780858969147543963650709947669921779663809317032977848826027892039142922472203068634753666471693832527976166620237525768732441324135116307593695285019853526959871557455457765312410706660590626096638126003366718911102134593682743729992403661502970280682384253455794170593298053516570110850532561968273844109238394893924943694139708470455418607043509225117189491402419082160027466845055703173612058149884730011247769465952930821978922671674303142810975913993104274182919161805322047646770401092883613016468342035505950275731828797622078856580583956169983612774855652616623414738889235000473229295475753785222852489126416204707398867885078608942782266490531434063189092168545394740225302210644429088220639778559309840820740149019723708397792135082220012775645701635449970339795752496926856732820800641604869813218928119191826020798371396013916903323568345836980236878480743879839108220203242067851698009868370234132743526132283481368584230573161996644043458950821263017392870857529968474095916333311290116914926578074982805688969841284320140699363775298885392603598785128931754109342040770545874468992147656746131552906147506001214586200670873708028572864045968331357949547669377660548822320915138727237443875915014709533023374750307633512486502057698054316502685241828080903961786681705506152719102299836880757433165100988167515968102696352739493525854174084549109161283846513803030447533973049395254278355292490107351456545749626299076594127762570290133158242053494698695708780778086574266722226415506863755980416151022056743767100743910884367801109789320753564931134645051476833164817718384188607394422921906702404652680336066603094308742157762009454682564224048888050252685573542137559510855216635240643023256540271222748060356616038761493274523284309435804403822611656555487744226939288347654661347517409041603453884368995859149768160789658796843244467150520829985813358131108976044119059214438691479078580747890844500129840500082710597419846038101615470730965222431535070869601839691002137919953596778115987759877417890397958551073893917073173774686681331151986557881896169316351503155452153347893048688701508599073977483097246378475303263664062101197967693418209802090314136967448861260642149378121203960161525661013820821399134418295064137493225657187856320341998706381470111619603849208426642990841314093336083058713034311738140009414109660252579443756713572230974633609777549295953305937390064303556352313837673285829722482272011172474314119000968587046310094661783771843007007566119392503858164571001474176806399347125705469211975970930321968583292369345437119431483703063063037619665502115317223668553046204334853092640463781896083504622081034716242684640564306083181415768734743536183380280290189879308268467157174914520655140459301985526745950029569049559115998201757476348740314661787701856883253614211823855577692137352092392250953252920008352553950651581602155887602668683403835487161666302337465083358680999566517623850177435609179499265240063735056038025345094495111677188721967157579180733881693688433167100941052679523222101665474839634553405336749969123783943023927255168042966606064834313304060883410990418843926011323949248451387480329469862360164025095409810865863993151138321260236203365846457682664816651293223584128316146233653177625152560741864068858095330989757555095434951145986002098233674183219612503917436313452656476417036131599501901354544432867803929003355163501652846428676985985444605841596906353525040194796328602346280692764610342750271978929602780041007481609335857251958386619247479987838923053976063122110479949390531261785116261282992894147735844889585823180302956487159072520867006562088283860886456480288591144277661462954269347134983105374143315938080242615345803674624769458600003808267538445195228584563251433242287206993783254734083497870998513586131617447451400813154478611049473871203874095748531238706865362108834886367815267479471886450376930071355576968555106077328882760803989650243928555895875084336773748327582537175202470050515356851036410898090728703439077653622655043357379660871338518664008516843108670135053375919485156730022318461383895948281367437939742234104155990682890996050237434374420447299354560320624542607229040898266431400871231283245805735291143897135028045254001997115790770782037203265826687694565563241620246273326268895303784358188372858522219431664564897359223147478545483141506881644774350341758525034887224775332529126348828737871222675027115730405907530259443412178956774586384863464234192882997629391534390869863576034104959122885862527866529625638857949328961682334841636887408180640196059800754980022547542698884736304742099898931344212230019515940599328385086413974861621495188412416330899373601062415591502541772569363696232014610706120138658240753254945148538114469161439744925078695850641810412412897307584761863818492718234729643900015809149384985442169402114969720096556240086298061570209729436641422745511164831042879551018539966639903069754150320597989926766253896261656802869060832864536664481342436726664651582480570442840676040516908241342818031661128318201809957913769190743775621315067770360891032582615377798118066061850449020736065586985984704998529604743246921529695147659028340983995639817963118244753960751632557205382591491046445963968918686704013781033743762276093438598614042465274618516504221513745879214148535367384623640014607890332694860374959114792435379030837067060346383875960562340662150619222933104270717149679920538726508986683477621232778270615595499523353266540083189157879091123491553235805813076126753791389925360866307792555237624553143265486404806422148588040591257930457050559465360641701276049260455063365707531376781877971874554982771176943153306377730307943389894600923946536068691658347237672992055299888221834129996211435672501229149404517255906020798547969056499822166530700653848897905570557077115973499013932598062854349998001802119121175837709698686363585449415057309979171270688162039293692286670824555357646210197904873568334828846598529468883798201505140234911513350250260892880389315087089120731725906777463383043887469366124165574418201685998782588480734847324669224180545152532978206081284348807414492122782096026326905910956048463253167434318342948405497675205058367656256802241814326063277862702042312399791363543266251756009424602510986121397354269408834759226847910910986737079227650751341844593239747412057853039876155581688330562856864198148600160082505036919783759879903237427640671596448811874518426861879565793050531755320452096329352096090478345297499470710712656573251073225605127313120752930175216254982526419436657298945420505682927087802548178470361576730586895687283424373890462278982122745994089851273991476450452982696335612369178164964437869530197855869143492827947156324689666946852673677396580204351143780000840489615012611359820799719059342767426460372175909909183636068483904886741096380942693455695357989778200536654579154946197639775284162793244414482202901463795668052213845104430608447864773670327498158650296364980510528069197023036017036226828102006460277079230102143911453979095126542297977751691836423284054144661083992451722765657294389507831454498146756075630850504874959158520584241480348245675685779796769987707797666711421941812169220246376619667218830143890285078271846310993964749045304635046184456885398805375740063613621945570140108397245743484008590722994218014867659027479136683653593599993771345387807013358124366283742283902387363840866133054365416346572499945204788079746598967086758620676293275972013726459832898502138871195142632200339335788788741845352821403482620396583316830682164513910980951963322762744683408603769469138607094882615680982603306503352599181997475623327859816752224007328899880635391613045537652010881149237555867860718422998899838864160417038672291424542396036917925425662368265952619975402849655784837068884882040500240392122638226043240720063763128898637491327641788338301336243492253673736020998517709291556050790920589800220013104994488266293996327267552980937441782884628487756465431724053065932856673120859331093884275567985754391887047556877982302837251267938927201072570877106561334687314899537634740081736902330566752823098316972612659180708171547918159757862219258116316262647667589935811110287733763957645024242878745034306353406175173506596695463378123514169893908320265016639718197603455947067194241724466233140768158259837700952722519080824948576825266656224528683041235984760415904719059920953606507838914263416920584348101440286987328659727292052634914079446652284505788276379131619887605495082836424824041957395990201241807934791203404057022023822389447517416321175671394182674189398564988461200090976199478122761878147395439628313039643645752310169440805733090554157327653220246296429670476246342536683530080153420585972336004360350670400529956801101233716237283889723743824215531382144470975705836572725828525875434575817231953176726220097430624948963357160636966689504184101385382566781570396046060760812884538228288790836607643800315552600410931287686389196006728223387657472196930378275986676169757407373567411335383913936600253886788207966041450742473748088220415578392895678208970287075520455812883466840164756635279885506555252872182215239620369738050218437826572782338781019856858607201096265835988692386711933785511513614970315087834861074576318131408114379270131231931863744689750495137480050244141508288789927991628273695333378530554588211000499547718636188258531669275062534036148890888487656675405831530480929505413488042885210442478699856269330860460295065084212887983014670281662206695641437098799330773396061445006492413580930093104870218217036432378763868630218176641603884499470550194173067173260054784059097635109385858147836894632568290982155033664560791074831086129446593637120754654349849212337826396333598645794656159867318162490979519541073553445286202161725041560412059426177894937705193538458438363013096698659117383979080335669275078319677367704712195478894090116679370246652938359707346787691202440545772827131913639797197304862365122912264928839029044259247892813809566613148400905495352970518418541072467695799736660264792677155078493304936384230161657711553383348624568356240090138176154491367042859834528973899210957887967851114773512785280943514581337270633957641902412954798832335633029783382195927904216354246533702236329916894437314228523061684665158101151610133489573904550482994473786088575810544637398273245612424237633259561894060442592514221106046811980460761806492151056220081027426683428201618159263100505161559036168917691553214077734777905183813595847596590700249778503422981218862177156416995320890285119870436676749344771711089491743477065777063019124899398348029376014749410573629398413725007982899232975344203626970586324824018890629274796273702369277331239002202032462157554424396484187464712532352387000993895003949242836427519137465331448329326939358775148984400557107077692055458042887899922519262913290027282735072133719931151139772132080087278424473565883296723269311591397494714669662828417280743432456280429322497628752228993590075083089302862901856470693736533544569522350203540131648758858633567461896128650080546386811387317843072735364712381881707265426768025525911693065693649530672913426420734538097533575964827520950568100106230636725709249832689084046324815993330613249431168113302432556616438795073717336642064504352837224934929247439738113145546566431238078760401446901864478895338947952745975529318082000809443959683347083755369504780540220548815866909810108895850871343365014451312570756338082825271008520876052322109431414063308681802330008034868821674697678812539420600405135547853016009015765868969349228098963213963580514179577470992961687418349427435041558001429955467827432190033468999733196257754626626648303515253973410655074507736847496515731813531848172186276326789370638948536177151409108868256610617155979220021879889992601521245514834145982873050957577506168396062953094279625341190101971261916211933941369149542775827633305519380898396098868662337419206118782540730549174866576406275401306990741273007977434364982201034822458329309899819294003038426067114851233650583848173702683508928774838097804584686743698271137029613294749994172765852958605570895052890078886749994050275067754385142808501701001852134262783312872603396238759274744353415910518164136509834202738896512129098555418891305424521016743037820494153975488882599713916765468293570123848032158299045913970920281723274305784496081059940566973713773490085762472922507111715352995999046899186552736997576933496228776176050971279357240259106100954090720841088705688437236648830742310470192440818967123406972438729642592658625074557598253182181561781147780610034158405292276378376040103359913109114853986253360429964831195485570999212935747302413165343744086485089253329212533579001478256306357602196356580666197299035955415745357004326983233001839160340339511498838515280331741481961766359391967684986749041834031569282395506681391178409096422885853660669772879068775136223900033863359395766651861554913816265167447162323971260555427909449922617992259665744969174159531977310686785431758150263696539818416004020887571290671921557084955770925769079860758382792669128655734130464989326885557931637370582654622565266868308429084198145203874437452026995806006995343509102555292772796211823121352810346963827098500378781053348587248736298955057877178331079119180997401001407711468614525175449675786938612341216696017354245962522600255707226916127394794226540792696732653356526634301369458383162554221403033954234225292119877114774942138857455149297207118406804927664401592621915745713792567706110622488491775738792724767869776508140953360425655699970350422561849372592356508621031782647374279847447826464236012220689070439010938078009133967807258800886513153712688383475836099541592769751890360062580672464421289404436930360467946745483771351777245659566063948112321774346646288288269565227461722415630705690641101730688707015343203500138698487687951892419762832515098901561998341078344033062862621613061860578170265578204141446879213722510777819049457006735825898400835936131139916424973475257994156521690892519169074242586561088830615592435019191942097599667537964482254184091518996168306160825070541697720071221060692869392494092153175418421285835971815558028899469863425212039345342387817975181290299939327087455798782897491254659597258783973362538461689016159765801875696383308261684002072333402913485118314956792699550259310166621951256694826397424258172827957111231206755816124288884446354787202916817349511175269571489698486944015421015944736602973130730116405918754765175691511578428614692301650353106510345692817185455116779483293113443135949494555886243758388802187516303595181417080446338027129386977832386679091453066636857921628879201744246989622008743603763984776108163303213084248791935213093243588062949220388912481963997798509097413909835598743381948757779054170226985047718125477358098620866962267127498018053300568669921015077258753978235648673528954910501398511550860708941862767710250953593895112625892849881625187483478376733474951041204475465178439545792064415891164094214206235594667022645778613554120855492542879041113052753982805631439458223322471515191634853737638154136032820320944856069164429189026564911897340974943251727615531144259132187405319395223026742140269314574825067793175018676224966146850301380173741368261305353987924734377649946494512344168431073837699064987849178902979233068416652901232063506735378010555244490689398865311460655058740641039618716558826643301784778352921330631277356290776153953802718474315803580738622016023452086040057238642722380743563214934826296930606927290464608234335226679125213158177523823487899102049601667434376947426530262602685771051467862260997791901319483174105527524494833469208633021615338746228036049280898224197691804573558362053611918857114631889005201552292877836577376295471392053129892064506055564234244682473238372839073290349988567927107863198905482027652667357124251650696714480128398235133606693336131998746225570740830610596825746322903862153131723716348613423797894754740601453390071735607800942236823702399774937239859587477120096171212026864795553810494372044218068316778387132690787373466188217969584538158565460098976242415079911652743968094597999180206869333596389184001655842969070270851450028324531286211676545041412038972133409467119189466420112620917542031454596356983238382511139311795497774952006475372964696366705648178491339941326891414529839688430066525747397195980087815198759997354991930461703168294784543487367303084722778624264826451557895297707756590482561332488868439098495296909896735569954910931545391201080343454296391534197775762364301341448587380818978976148423331665937925000027416162349075480854846899437686887457188987604311390284936374559337831250708599896695663709280100062378547685417845686089384483860997026875258533572541328699846083125104381719138310072846547305416418457960340792372058480711711332592447597873114077139032740739008375970261227114317608749731034970887587005211728584686497303481936928614546957142967607577253358727611937628253100128266526699088444957170520124261252883067000429742623903768676439471900325431487194213295065007276627799992069382499024761934889671029340482919921092906665153836154713937033456579060539253178311496289999614745786640821224854476444735332421375279689605925360290874383622403116596131921502561606393095204378170948082537646290676861858647648632896185306466397207261966684656259411814661937579768926311541171158774301954675154099588475486713381179684558262471691344778284404536715211097405044857682529140608029928431298530546112202363878710394825246326683886456778727647082777104568172756065079784527830345644461095810434211644703460354417929499721321038864353028270244136307111289803329527178658057925541878405440851843674937188018834921003798703909217250513306199945822315891579437462636065082144469195084181946062386686572183916450955165211020347551136520214391969325444528159736447142271751591810411570752399885969303024686105027764104694848450183363329343648286654252577581499964476027091380560320517534088267604857918591075636309371879166501962512361308945475939726087640724860107599512548273375367475767093148947325590454664510541097815295579556922841122141783247290307870905565503260888347798303789482586704229646655409685430574574982689013365509961483164230244564741852557296178855940549376329302227193396025950201678240307362919996638876847596035830206976786525435578228316373802088131895632855006407499392757269991447923204709430591992296753207604517043163638805814024324818957379094891830316240448122922840378666015508159955207339230670266058239770719574872949239859408922617088085380671686482011150819168314949258513988896197773732147935744686996645655940558732740125392517278278665453016722167766796781342576668334932841390739989615927043969003788669389411575594005156792379991459701539058762935974199852521193740227303763894032465016553573441003524801410875950221991228309868886112068256056941405143336858733985181843352315051962230645774517033430569419179831030885055647281034403605720832716424618069517271992272669662101757563006690210278300244366444816349561478652101454450538303200467980711606920701197385168005784928070035523519727079294891833353289276743024331134748145517279107764602682389337893970418562297668530420245628294355556616558157800765255266983000541739495578551255022607264642398847217910070390379489752168238184079697579893800980320349050409793880176898997173764771314890393150215176788674278927963820599337315907565014570170518415091374469969764690620046649838007542263940595345410303753584517167809960199000033260923973752814517793064331366884295489790122007285886006822860453031388029265204348450518843329823663873217896487032748397275479952205308310383844239653089047050808019860498884275934734328519361802897810235148832288435880696552647512328005295774180794803343603906749886444526811663834630718345917532363855509760824332910172005638042078792788664604533727040758336766757563887083163295348361733475907476842877163682232892754738373035684706471988928845975387263275203651776156097588982261566019345017617015798748743152464414095936628761898469649527363323936430328677599541409791114997638622351199410909223168460575560683654520959213033606468145765553393596856191368550883404015653730334410451645678446651187430040680280266014300088558575287202592294833124026633487798518221388015347641450573424002141614732959593880970552713244349237326559332558706809962120294400006385124172476097302062167189113169690015078528184566564018525273565619787830044215464060884911563655434170100310136688977976836539178912714505784380023524351876186766991201805002766748194108839636577260661210351009921202893691507068653990908065704817518539113823564637193298359010424771151819473171489795315308546719684725758201297848116107348976041043134284635862047111446759674637302129344329666251582671410792748375899110803176156295369834978288888418090090964151237538440222719195866359523876895039483499602649835183201762312618570345679317498987810978789771844825963945855622881995387419938550027020089264502544216900001979348721976944871331638410169211414154313481357853086256516144844946030890417975169182193997353021001301203195711125322417888400898026864217247690255806081426630350955555090763836112718217383745295285112039638261195451863439792625109311339652462484073053313811210673838740137837504642657969002451907135789266595965137625031651366824287091321187967751666478818712720884473836091417953183785683303475099643269808243064915603300047032023665342052630290913278516818719903391915523128159022979871702830959792220980079672895804566717459884478686530509845259531639565467386359609872549084098066222394187736212317269718952101896063309162667690018244122216847949661838713145555137062225033588158242930921674680181758831769339915742408374269310927115435218495139683607382334647867437293089538849379593275540091564912408118120491922880291030269616989037750946142940238608782836660406258444163030652541338852935071725643531973763842445386033568146054302985682689267127407036791175706427846230384050996175480604882330986013567164021928515690198097366190128799297938657025349118574659357952241728285827088050240377679560872761600876260326438091927364457835720838664201377048209846521880540463700275449894170873486393502843853376566875051594893127450561343007746226471567178427437836779118027379124760725020810218313282807769810040440030286621198022653496123226446715591857272894835380273706965552837004262641858906474302247278249295032793628802708942754901482823425119166986139671148767641951101417280651387104622183511693656856899545440495840969428684252810272952213328821010905599078595398264000475967916136638576074151487347279029145637144680277754512471894794937491537453303366971515103270344020088139358933782038426622437714163248464586124842996857308588183183494538175776376799903025942625870904413110609498991673765078791900662102276748971560188732662844950996638530507470990326145512108516762010332871086042009967050058903172763553631667567538910821792777593328554225600124306902624425900295472384644354909898408780755610154369145300323252014049627735827373912431959047036350040687640619533103425897329936741685070740983175638626652392465487420377676547446843403332492327503891770907675124400508523277576457694987057557929062663297394991339928080783682539130110052849905919723958185976835786614367689106336980887891318360079310750241203180797035036334872216879038134323036647817551687632386602344583391591078406945858477878927423124184304391306679404092196729038419724749075924404153485197125880973658006615865843911260081363860476411635722689460631913480174052153254775023901793442015570014185838998603049320318055644747512131219388121738761223415881717416578711238442192236964525481074702375627541764502147598707275313888982238344026773289833149192706944565324471008936283970820092703117114762722925450125731771295569596542869849664916887097694965323915721463655320130153415283510710674487671889765243548409730018490500935411522908770951884352600488332193291949367716398151818217252187762834326264815043682453187078933975992710037333595974691562242296060184822327046421352437110042238259707513277251452451986264445771678819736113431382466713212364854621911476261671660280401285520238205188239541995580148257614154058144564991297747940069981612954102603438051302697468143206924309214497529548018455876246090402603102200587479149683448212724606926332417638485632645327254045306208565268386023489270563702918033712233503359762988604252434600141558271196912528548998438015715576456376855387218304596240861042340828612409647177335424938841219562281982273513110646629785539176064704655754657031685909417761227235694812058252796746629402107534945463351387515815357757321403338575247911141273425884482971987982307723326291776649929156990776322628697042269406342733686489430860872260833530541563408576672024953292785646278466411678144208985686728012766475951397633565570764224261788878473140712790633413493599265317457697537880782318720607699070209400207976866068170342583471160562539220770312424978498412036679885136142264705588711098515961305770936207774334161930446740648336624129817810352855126036786448765836157481705970181454299394827875239521281890914142003848111499564313292114037508685339648269436778536553522344796127489731452491772073905873290989536661801824236358295460269353331803092029223105290179547398803300353573331081012283176924027592833737212933540422897901142042078020044791683347536362107759812910237794659696553265380285641898711416275320105034773563335786211676008273423621765896820255187405970485228710296911103232381315436110795849704586117390784074420642393366757328010386646536262720468058051448372089527375393820639858294167142820070085133873401526969246153815613753131154427474779020652027907912059125708998686537586002031375681941689443948746985131373186856503466526659143256314378063852365052523258373248627363509056774179298868682739030616429724210431409923570665266156920060271426442905855196595316113220277841465195326531127383815066464495333840642081420197795851682684593083597860763537974743794621751643910988523310013300720903124702429784850091592629792198496820110437498381860794752170499302541876384616059097848880304385070132081219309974780340833484269095176952670048959864621443335630858735249817709959769736598206871694625252809713274067194800069098215632016327560268596742194102046428621233535357278515232953681347339068107869336176093205577254289158446436580457848856032436593824103724977370695084634615094031613292066236384225763184400249204790494681141194419937468746968042139511920387449583523674257402506195177521967925476729273057888648684904223157159962500744402570769169453760479630550956348203680742499497259092413319103994621500539967119681702200092520669330102038272609866037966008893906145851688643060035686694790157514828376309347098255836974270637823485032364895197347500574045007424780834999491719680900681710866065147794657091325162872619137006051879698524679721139160695784702786938011205025130940100162379243484918665643454292462478858936080021517502962444661138602348520176492535408176205983305777249850559533375263555522894956012097982479578235266621459487592782064726247627180192571115040078857459466593338195823065620580284046349299726941440371975354522953568110706615968630425959729921940903997303179452105122791304908130805963682655105076903727554852884307616270367925689199944764696250026261033728863000630065576724144222375226616042268446352418048889778071687292855450388937214594837028560737374189010034907469105476866286572619636324391137192522738938128827932463145231240629456449111963607799915432930141692039442371958564224493040753964594058029565356254430049718632759106512493416214699378670116148291508674829936178411614219770606070077396825636610027072056942494373993114001354803057264614539152640658901694485505117144484067233972429166454015965242648634176311612558959916126297298868793384235291714986299801577446194334651441321666885847122474859779592929017809851715860858488253470785277762432492402048928262461582173340012874270263925810040483765432958836990094539147477571381156435879749293941894944931651554929140675838718408498302876995495338052593404178598048575557915816696682885710040944355984483234057945666885725622644295118271186307930290700641606698100218603945046996055805781319491623351824422148112368319519979080837129852670546562562430665860004888138521793264932489086129769853121975018057104449384802385419405875834365427928363723400113623474653504388492657825646381979808219043004062256737771714251707623088497882419037573974621417252125521884210523153108588065835445375812225973050741529899215793908782130211361334821478246228358983134568103599152190883296708510354764864700038251489619651948492339952689759034216397429963789275201216456943882634111034667828361922016144247333532177309768030752949426363627410999603246811661643366534146218889557688839128804781196519497491569888175533849685078134156845511473208954595023889494131015729133715621309617622804444385220106058436749547786921778278124996894249795348943597051596875068894050478475032905897071492965394668853921151191647192737100277748487084907168222972996873694448450456000376408173541438508516938845207828650522754926272980097447684854563193452202607827435435616784416918402887563082170940868060195938993668567237592234784709602807153508477515433638364244404053058390840094099449665770049436303664533784834916163218654290707092698564942530908146618896982135155166644476785531912561715691720092509519001002437589545100751430146753946617492032103780860611050388104657461028972451915654829012596492036874018644990449897426166187401198794576099436809035120824914272795125225550524907700676088538017718289938974591571910058325205835092922118440623512006207093713023756444087880949122890239896168334403605458205192188683338843255176965625102769650869217923062530475963457209844505692551481130316294407148271301405857613724750833199907507184588072106776141293515677581001444743112696150161805163988161181411361586945640164720728569409006325327577643505922213337284270769510153903451867562670628223505834243037598049705921445665948972498115992546696432987511559930904440168203976363162076234380063113056745516722065897121128036607945174641095396490122883541052108777630695693686895180466096031096197749418607236842179056389315306381519595409188351778273414294598769908801616644316690788965455237259285490168137986612065263715695354791427469953033220424822180192736684163565049168637188919076949724791009017023400698976642218743732875770947538160877569772032512721784827986611526187580027024546447010516111740776308283467178622852818032437356506015388913316119000689916043846606348389831090213381180937510060403989098899288441945570854698530795890195359854396899446072360899087697862197361887208353221928673650084688304123237680862766903018871132502690189426551450025898215268383496099019904399811790421717820348585577339085554553607594334490012041960195592238224305938553333349044808331539244068688133273702269513212469736295839336931344107259304866021531361862707100696908121394950058398690411140440815028750319408858869994121216245198937487985696865320664913856870015682051211999295727350969861401403099282697803542049601093288718983298201503519288233068272182486668184202158058081251406237122347701297686095777934963920078797616700724861904024620289206276102127198385519141795123851989293349344432004087073495460834799923288134327027613864014956899952738617743868071638702655338046671148099333417790507854010228165573565207142783335769260532855207349279393913824620303220541461119729034660197087373078668542601237105752766412981343575140656494758305854590259404977283845388392751477947966488904034647783628596820060393870225966061130594350350432820941269144635645487554245756755626157886697949078065061544214278441445557638191816060936954668756071168849746155099972283072132868720679689248901822562344722542955123320934815535912265902394738643058881294886455718693874716149388951753375313807890441294242473288144528705195632315221765220999032971153518978941528589497614095733238635842219173649803995521153218804797483311011771725832921705880062544774070647455387786058214167569359181513491632730101332691052892392862938159625557290474904360039253803895175710398795695736293446905503441906771975800912779201167468424206620499148194905279994222582295606811035732650619064085657824694047795533587937825621087929265096324103793779101881998523086554306279301852136420510324404255251158147226911333765562869112080158955695191146957312129215647557420888359638677277699235640471894824715035224533105428168556642152706031892934593418543386487430570963438090835269005010942822550252901259420889992552675723600607715294068976819858181253871172621380595454583686398231896371460484008148119926623904073750140592800573417249006276122251216775894083992295668087986173667090011473046817562146774082617472325327017139593086805285971024842552705951220462415000086156869937234670329790307745617023139718975061464642533026265465603471250161462274482056441146861802447016578317814622143816971122928333115262927068245033295691152920056980320701598010454883605168267889294755219330023869947360413558991405307148059352182634548785300494441125507396398518683087644904180850895810719770121242503730838113603665117897534486816078528087033352156801047621875335219078224063196076687362906670755772880612899002324171825436204046682341216988539321567397018807985552572514974484292818453125938199626395826465753506899366788307742428764890259015835719418423259589147858958760428907897926744391895526741241078421468922420710119344823756368156335719900213249758364809216467927474268973292326842769300435158463416877445114172854456972979899886700788393788371251214423449140458473238615310381349592636558019708163411620554688761883540165126074688909419954597189434551326649562751085950483700416770552459882119695145990423163279539744937643464897697421314718353339289296780517228093196627865982136210368817470968235590115261862377342235396847841375340033067755501410338368679677593893993223166753580206545623487163557169562616838864725286926866529555123770129275893264091343527001504445296624130834672885438246497226501730624361460915845797349861537299698651232637890127891005265268308802045627576329292642310310904300614618930364623133540099737568710497740177714206554219941454892331148610034687618617541794931173104988661312929742678057082893612128738202511314859747252116335594179022416119593374821079003712623105099020823480837714368259322211144201442652258217594646952558975904252991655338702901569750196524529533455245885096690503505248274336862672452411478525327068807499779176901471322450482885934886479660639289435874442362913244249326956060892165451190504951541575923834498867586370849147218139954028513837393256059432158382411707416675778180960442076152034515368387668779571081563035065563378358448516491028234304070360084593135108281624570249044717101826136841262322913954808232656298391294839234080047206780708938898450807389643989666761528850248440672191835251101774330385562266756748306483485326395943707431269819361460687697268156546236042271659044353295685298975155836941554887604001368236505523009658453183421518175529103726813454281136416357181863883238231660770842688243466290712464385644742187611619607513076517977519678906062812132704558471689612404722611609746005140467031322059994522888071318772448009758829081019227018167532181384483668516591281113739477311594896325635534146438221213252010704637666897078408940075891636502547342480762707635116377559884124526057577480020854334131258653632950616461815353122794179227297526891186183109468791953357107935140811842596261649589755699883017607156184328466490757099732469907886041502588951388190178008468749872612779122698610720551400017497028816764302966565490314502344281231067194889933515760523807819679373941533231242789648167872912806619587039889839388493601198414285411069746775637790777155346614041318829510144680313544414801236852146499026367457479660414177541399894968675684645201005301071737952112689095263304707533940428193222958101095036901038965042540462792679298151545938284075656430221554932614516783978224543856595824027847670196136735664845204488847184198874162687814569936600750931271851392081570860488209869702523481782693599650261310656908272029840983124608466211214439675562485914902808864086344593480836563038314640661628998017132931692822690797982546172199994021557771801084538962558725196026798007605756639240444771458858183319323257926949435910799876250114210632821272268201351179439571865891226589002217399456880688376189774370396745609247469644832132311114398152627138271532432177299128572109514704664171107503869374834320290010877119532188174207418371093419565733636754634167602864882660629051760600642629726300352102291690289562732030349621778193521665297839813316275765876176635046480732114323368211888149778129571176023082339657635222562706607552979920694555122101289453556294498935230279036541166848186967642752252123311233430458778920892512517408149256615771400068668750777355004002872928479301668486700978168916684407296419267492505744017952213710748421881093268254242289291711325610089969263733692074521611198303500903281384614814244202655204078904702327279783068338412832596379423451272938677467743574122170913077426192186307758104004538625061306394342487389297381114526639840071822340802813285599101714825238573781137553970831171452856105182539569557214397903602064809883455814120585387488531549744008604073277483146883034810238172160141872590806182623677251468243233737936680999347402860699141992251849104075737296439606919291650269867279670739875993919231477815466909018939045386243432400216169609108801375048074604120588213064215796458101643231711822612865290875967680044051483770265441186951371930020824079171276597031339995538621724661363616439500354351138343490796244703188218283596281378143329392849507367738889363397724248312923761553079850084171985515414225419015444823172319741970050922036825523189814162850291766860375931277974214695501824646932881128524155435951065167917170208358143832819240408339937584048825465935180158137817345372057927107325283702346093637073524339839393878541487029463247878493869914838628594269419088816163687793164118483393166287582437392362798154760449276079333323954787280350812835973566530214237651733273592638215140608363651035926234777937603108562003727121696973121823406484740587275561727597753817292243072515102630840979416566949055871996089949556291408201142502086284811089185045570820212429707465805953779226655154589330885791716040591972791759147425228035059437890062890305504913294449438038881686340853701029113691679063620010093295569875099448082066412381725555938964559322987755636241162683249756120063767643716853943423190535115400015903429402853024235968863669412047144154351144030668184010515567064340254712711269165915293338774047313535785093817527993754454098488962506839909675811385827366704077366264602250515857492416045527728552407500048813729019139118110070456489518681688389898658465743978897241692278798137188345010450622803398001460393931940363341844879070862598586978913499612229386641997818970775045483517289740414555104017108345367488906638068450600596158743723311227761147136637828650375742800857636792294514926283350477589790623452186465100140659763478505612370858465698240410902893122886358471485833334014015279483334259154560715089417630139540348056745761888234168153605616909485864004462112658914586725576446181432134075368925122107978623509286915600597290735065690632103959084803655034338240659291467415358683758536261273851439804215186234503574106439435341378164761671733422256935061009207358338680609103403854530699099719413804368396947999360898150824814162714329759896060877270423048405591715017326376667943963089271007929868784658861787363887539287529998979851800638595793630462928770730445465286516278586450784859025744937459591619782890232564275379610409176773807736935070508081893924098541182958177266012792464857306947339097783458455401596596370994929726931310204365607318922295446256088488161029744540242414964395211400778979929579912234391072706572768130332523161313242013884625148306820341243481310027658087877881333577659362513004473712552264388956362812010221847709741031134001435154274021683909728006461984846544502909072398023226881804166395229966430420851269685057519536016666378597917156982022502499158450351117056108682646215044697492011442163310430811355565785867794319704840676464459275742445319480540116487822420502162643487922701410514881460858045405208940194244133938067005675318551859696682935572440391252553044907174986463576756970745787914439838804895442475249790801270193794782686714354216250448311502539289807229371365187990122272706743045292994045050264304576213332542383666439600718330950615259460041048487035594918666314024431332641909662854415772252974738052071817121229080698738168982398065063715317413759190088514704363174311274377310850040832970336018809850296867764923481646420584016302997664103906022032479632425653418265009985480698301855330885690351136190002866765961554109296527372849938498212254277604683769928538768213981954077229089282435954351120402557642111722506530346853182622342344766157199317967275549985137771717794442960148715791185542968393647329971763050665126709125323844628730021709141025943183577244454219613576726364638736747832973093252307898761631362451275522124631261292922841259892254137762181546260137974387487061330754089017990629519187627468593102934547914697887529176350450693402399962919537454139518134750177041396425480681940417671070917048870459837707479260475942501656938513542433037769306706304622284910600674369863839777460157777042555986722290979854136928304588126169703078453733571615270585110672900014665324396003681182048555386758283141221528869560498226526181195412096910752877807441600415579764486086081878492217092796400769879513872243815006143805734473642826063456856529867725353924309255682252412703356653294991091923278301787911106701001151928084869567061431541374797231819862782075324795403508666618511946785046189782172253395391673834526400025339376551612489844839442206872459264456315413732276617775783765505102688072156565793164732565396216450674791800681181030947808957455215244408331980956783394540308781503607411463370178819950902741737451462864743809319551504430122308039380346601988345042889884127189732879668105550671215560619802525403424218097859830652209914300279472811566008232411553272653245670505755328520606344279801043624458304920474405264139550433706176255566726909790446059169902191846669465409157475588189598309891969293808953003577298062294640607110388900642870714261551666309289126304261394476411687570754226857937705655565045349950237045174142930755594294971036028635258216021267936637050743323913602604016673351552274059762446687420195458880974319075811284291898273912902323305388463550246122322629898495168977368013364880343666271663603692397914835796183248795719283556743460188144643898847698279183719197395211421888995521201295754460080218899361490870082870849548032102248466336281455442947846445709794312574163101152615672224392224237524097651339901247471260476499056112250782501326468766225946092371541580380077369537924752629282145203634666363031884451024162752756762124260515624481745950867819114717980587755625885738093741775815537019698365820473295484828171542708310806740946758314320241361013596691257460873764477747097673081651380147366953881356867626991682253587673039998661689552730813384554957682452613624118496821790141069601556906802056315672074366024123430741181373520524496691573696041401091836388982149899844262708965140476344890534308632552169724331810729801328274832286733899071508212054030343898418201203852888814928115387408556481773723500294621162627891694867237480218262622134294630440711300755627387760563748514269028895402801458239152988866106378123925408442445056265590032444719878308214658427535446386073498252137774778789061695329711255448200129282283953302059097909706700646774514824323243093120626475750697644866154474244699189556542582006435770629725959633776795409103962969625937049433985174350744138313610503258867292520381261327752302795784776431810905025151402755199799034164402994053882448876919975775726551837094200407494831907859247088858185441926851696389590649739305999573089462523501357317063946127413725724674286256493873523937130464617633340038672836425383250640637158026107567393863696652054633812389981854906190658793190851123774254496539241165435370160923649232387035039945482236221504650085754945302038912296925115790431632517885049076554367733061335885152011368153689154477234839295869842992375752599811725053237525059666150922007449253224853542231753390145140298565150259077263534761562667724226439349936821531515567015594380199485023274672453291902331847953261204434521672208952413564335530793827559674336518962318307133761395346970374869561487892974620255325074770679307154939377927256839813313588767520970457819006941004406876037356316597814617407740528658201120625798319146141362344656273157381928219778928365390115141077857419440297820681417598003025372999865005265793174648911357118129879126380477032567829265370484431854633219560892406332728272522492786388154940704544047291983342786418658196485844694240705358698496036170897583349862263713402519305590510678914196689196199745447007677391498660577914648314928103806999978044315275915761276594557970785727715220244777594471335058073818705354225656454454670274412117327473630930474012613956838138541833560328386940589159968686786193945154896376137436611973540144476072764165543245897917584211178102761838437063437207763133703175321505884774816353533120202156361039082725824584237100053873900656260519236498742284001856750029230477173934049514760445303825014151455658063133731274153378899413224528469154978622314715622040869990781648160255045962476640016341077796061533507969520607929013964972066711401610845042898693803363812566020998272298986560593139906530358399149490867366865675416790575108616444181056110294279817745144342534406935990506957930967156986350205631932348297111830081421289719161268326643719882708071887898682461730081039182785885928315814724583620592903490602798759710759881331178650259957537703829375435904920241749472356864067202651003916288300591643149451902668730907627872146570693902152928266064662268322252802983982498249251694848572886495832044029223595867599960048009626672501124926961767336242708840907141250802598499153804672714996928596869356736635426763045601833245686253815348516862013878198820433028724071381574745606925258311376756369595530355915488497525878573874539380237007195936137554104753455652874547003633421313253304718687583511765034248400015502618709831713921573262067269254517349206860735483426055020839648565224431302780283094459282879013847855827532515748329721718014210938700022677812054210042122873508457043396489558779670922884354514841572846991697115821701821547539254647515604705838145099190214340799750288492493236406480763959904753308876499281551189383957766842426473263185664670490695270120907095125623435144058989412836386538179074328749309317077123033966528458261667098359078025372220212443403209791447890048770079895381459974912838097395346887260423777684451252734856275937331151414731888093282103727641109891689924697970746208271749517871553660326466469441124495548745239498290318332290709539090765428798245904133572043982789664943810810521059590185170538435529302465995562594718546306155633710666841569865182860290506863355163206392701533573580165645047704636656575646386720687054904874859100454861220216610308914428513817807539836780891978000497459910684851229243499691022482629962419436661231813335614978076730015112955127810881433209898820892121604855592913011434909098372794974498224524334155542571147815135315177138077774343955394801627022717417330868810874109558687184618392376309797818714256122613560200472309068394133912998200706472770355688961838112432482773062108228188996840512888661412711975595116927911913856277459867804684032402918677857604198444028700882612878364725399267576416976202984725000230891243574989986570469460792267213741071420951189798363329010633834502549098501280797637630901703589852962572056079328687634426787515024698196897894294406973259867478098758970890942441224557195359457312275753303795266177562412185103829031897706956586927858834051122030537089851603313169682353574133882380171233453295306349437192357483058641219643561417145139895075955207652646865959040349896163689162283853077319740733683081735755861515179540690618107557436997570588985094669833215560714893255791847164228147162361174740939485151409338952458149395142220532192826415142413272441800544331865840604621713544964852780695057315561075656994957595700581065285226799009799333548677076006841038865416208839236443183192523475043637179680157963631895316678341778285187021048426201562323895030296919838706209989843019746221391183957874901975217116206936120042359435182300743189916323344376558295612107925729606831116236829946804494433026098447371136578273235399795774474918298908489107434262514702257364019494646400976371332061947787336142229574770985076360851052991666693037097092192584567759626262188930539490792830466399365418731037122174649012351562392767550627542560410305652979376932513289258227608849060863236179035351014586890752756469161017723463607920456549124661885921610427354424415805306543615843288751472205560057997173734564804689090126696211147078555537507442616006496034092053170376086673381030495407339754519169826764714957884654735128920955075268559694613172703732682816168882086902577104201964349774873134188290872742603197553200313092403003669203980493251218977544801752302280065404320416510914601331110444530639283544866359586773702720924104774313875803705145047788089279468524016235676038037882853104986238489783741835518438019674336940054112366861051835518848874199424874584655657273398020971539877674811234654302773355054075348334826251426700363394338863525657911704264598432000438951747964697252916850390582175877180015200940089224972779029583264159402620601411404134348401643419479636970125487050234793935367683948266772282416424158744807316633470743253033329417084903248846630236435053971961281523403467992226353083505390420726480781082705291779050745207825506101038427641735274483462088126634314211879576763061627000279017765205404828814230973013969970941756414615602348187910911051950934203542078690547978730981513960670072899776484353514755553074599209601014724927912679725565749878367392037475764359232313442479176065667912572382565701822565154732344036794832312202261463550046989347014553117752758840776933463331464866709736694860956470875385247340662192294914682776679302393033518333363771674400008615665203307955882349221507917279254314843753782068782334521038085895838659324529965135450167582758484545701226833904594835350318192165024560968040746198724186937079060030884377010186034372382299305930308971182495070840995212590872093185895075692240841630527242048730350554132753543787138483559906811371872338312655084765584343455748567503985198726128377773501170117430734419975434229000143860776414878966703796995898142975416566209407492839801059665109525053922440517758521903919615780723285709612238422736182157426759788822053785546724793056596147865706092340662391412192806110371251260140244556480920553846998906930075799625793131002175923534245001217028569925203418415805008374820745228733920336611559131643116867155020637544091907112239906401755901573912747659270960953184684598988896650699133554415622512146346609029803767721013894314064799450435412223754560818592528589698842469124761231540920516079146456667387318241316212710084073624939872763613990729469975686873114048162473759819256660155663678382410146587334603436371945097033712641239713877076759288183161981752980348485330008352382739832105662374345821917144052485688682471032630945216352917349508386236827963676703050499135335537848567269364261640279372362036616339473341936093831323205687055191430953216137267433669056558517422907436130109602431960881148607456877418366674377202301595368941032723588848590531002836064813972452350378013964741506196602628419621209683697505216981419707940555841010761273927414149112600216395207973222976029627937150799294109618742866415757018286725592203457220688346786620351633298753489698448463568576889071075290903524196917094621681769316928282679109222954595492689294304900127583238395026825911257215378251252638914416353988326846983510777457714446201989492292714926461041729714039104690002089773855281734956343143104209004550629318175584665521607334097332242603503026249086290676455176287729610975533753700214317823845705877975056938676088064484920523924557716540098624587058447779083236926219867428803065794976631174046039668973643571458250832618596053221101914908637575664893794192602398952988089506080344937506884666009116467616163981944651037190779308602764988566273198277431950370032669793538082044925258709407581317420267175419783288875294541841913475186337682577508708307519122475748703107512809300631545032972476099464968350199040347992391354476246095273093404654814833259145955866003418861215395487260157466554385328014565509582335405191277017226017312826174946765324662003095742102629811182549624440537740424100676170050846786766172541879466882938006737370493799023252180132647249523310876067322789528746429721776348857647718687813896405753093061494435128148529984262586712024759245647116021454546108610075237004275313835283256023941153552324779787068166997784561646509658765362876215164157990726054176178317185894146176713921453964468736268905832297861211366372672627347688976893300240120874691131539235525447048424630941535413151125601985210385063506698894094312786072898381265484202330460290085657322894630966576270739685969329686821085089735558860939315839308744898060983081855353521006764933686981223305326816618754781842844834049481080890186663593529403215368855875914197268503484665036758787449769741112272575334502004411102571506182684158654228398036033005075366116496745575885929648099999953749596169835956035997589470506323419342131956324393382232932117420256785502344729832307599030825739836652326235183615988289372661330889140156627780629625850844693433446132817644257638898549765132113867516279266099008181230217946778058939903892085610769409927211514603190876348331724715089782108850420952605878122641693063778725530480921461656154784435777119308646607840256685412332416964935179571904963555864123893907930761210745678852393370657880986250657049760907359714847739430138771816334412243276198568822514805717349197565683393338664746765066458400701064856244576930756153184267176534763932935227388473533010664138187289019253976028136511165352942599219166176106678361089448122201269815772643111580138009753203505564901271342461072841420768356781908024940883396367357282129755890790209605665158340055244387052161360476387176742710836412831828075927786226848994569470775871286126097051451072068979771386527174724121821644161138016499436041028865234293168855088614871252111275334182702548154044240943990563313755083753806910857779770191347088990071925818507110206634080076286410501244196591711983241370337552342168707039661685858094763279778338286731543282892887620110162365844494312828248347856993626917616235769722835775287490396445556612087677061264425935922133039262726449733666474619307018847599096003527719169399830449909748754778889585656507181589334981249290906647204662784362924399721840990859602141999168934166369089117044400139940725146621479658349793302153015416959228459798703317411605278335294321911364887219696580632575897824441970299028959751315414995227176710082274559396433442613289502608633837178945322799681402995034005610406488400365701780439228058493201423579111787354923891569713039579090222483525850898484497341796635882523537420951718723580894709420871352556808614435203637258844708046993304144904416907046708403335132805788441084093860117373799471073753220097681865368951985653254908445240159553429832013970309970131667063800669754160661801214231293837490906354188365148583867163211571321632948746198155015241226186833812635664180816078452891444213719962844204473421353016725901210764630149132796722373465719317522083900074916451807459110926657481560312678163731186858515708407244294655015984324993632805593518847707534138442390377037345704301086951717581533494039453593898547411530724574828178691632620958859185352309586869014256182099128760644530033904112126084419218972333669266069814161631983265064171582198186619380730091690151753907410353602555780934886098855125820107162462829670342967532815516513053960884136290570226841245489900357909806390243633603380282338192882465542773894559161698156012186826943805965177630063747360868198047478722495214716863319582189242697452237303141204506330251230217678935635997224123467434870622494595954554238319426846795758483499311441883941341617649048633660715977392341654114449918564598596120207084871480036887525541768133598420065005482847912322067498761948274852296459012059535198901117583917059728959021034402376738810554324671130056009633462178092692136418821685271583450473169292992409204057046281635981907012058859752790694714899643463873976510805636178080739636932127566483640255846099656034720408746285173588056091602218519735353419150103529291573621154049848476195014883614078144624723642829548331530543628256937516854111401977591817635060322967997795251522310863856691545803915750723439052461353073801678957219192506491027963378999241663013775176913565468070957291385788056982579712001229366642602890459412908466177753986301690377205835748631779024818834559519279616377541594877424532318228874090620156482049437745676221608214004812274966075750121151343321088055627967980451855197402794627836095346154837419441501255496168429888742815966379024531284037556087480753370325738361954636284969268680306534414083944985439295851826400681422558146245164706188838194988616485727557392043327858818969715497437815539325975045866698523554732390745800109093208470927418036723429483313596084202873158362365213916195095881864606940268359261993903424306090677890495738392171125326939571548727210976121008556819563149370047803019509478980934501077433385134499855784658778010209502544697880592290427326750283969259353556844103763213346053234685340026436736281046693243135983149006645626003379560205489791487346394325202176663047019954379383885282015391935765348949034169885606096849527335750452111596255861381249115197658163355988017658946378204603314131238344530754168702689654530388055879899424996176612943391172294611688286338698051102380217285675423079763608185078306024972973953810182488342809449251177857906311485764481120189929401973660168242753715162402399519001339679877789890288356903082067921412766827366568583770390108221480930658462339579730290520617277016604315960376904923135735541138452832865040116461446852825939276845644766465920693972213485676419541528381896349961479554010036501392839987596762877629328329087593807140881875710082074691898496417059259455531977691710203603071207394061065297652932624791333414066289214655148469124476575919503165481811924520504149866629604136835432863719162438853875901030990879960776341197484880444724664656301113426449526365774002370703648094406502814882422831374292153645031800332291975186196247435724436136776604184151473470298580595096658756108743035629446408702240416306414916323695272726934827282966278590171320294712504778253817030629186145318345350449811085091273416363404429318324187713260642421189132828141233719607866674895766473727151602996410240791319277092005838544498788718675340513725170278227835073676925695766534965337684024532591568279950825659461014394225024822830007442796037222207755108355597644372020862267648202080317559115607857544944100624616035232899148931455875694784742352408267995467180010645810710606052365401616323799958631612358624454600177060589006398827015299024575115377710789462670425510206955540549154751720593024249838691887478744021797871099196632636765780976633282204962038183642800434715371910488206533854312804360157316080534036076212332599809392043417144225579251362198325785778233112968105090897779609667132393521625159829176249904629279631895662543465391448851510313047414716314104474890353299156740155012122812244993082957131475594462999983249419364255404606401647450183940238721187491666357701830835048806139715862389742620475555958592334346881969681578950038898494059793086706279444945743586733755389385766648375035144571306983075615440136206179182384304630120507186277699593273039288868606723623185587829991420685572081552554619262000978999703970900041665920347437883294745856026853518601499600888762671524239988105286164830024490283011140348070524260713013053907375539163385141517209353872959064476049222721623455787027226128880884799836821109336549987490301420840144824680881685824142224132425274583243930129354699983248298396711480183731432680498232038565670692963362559056985035158567118366358677809924362708491252880173426147848731695041264473314138687027164412765632658572232909843681207840071202503218132359071460263687729328511655984871781738055418518879889203797348112201010902921922637079099078356408815740860724893194424132539242928943446977527264651769943447290356532515140334795629777897070047828339040864954674214490838591818492889557387170204135378434565052785697836256434131090767853013200357687644522569707634262164570868363954811364092092824053080964138448925170864970578294766685916023966997220770449957107146995536026500133453995358770761599557693021032665812187598669346409640332498775761584347148715557527303829178743615325081064754573056479622061036110912791729557990771925268868992618054102207631300527889596279346647093086225237755397691332801330620581897260766747986975620192996207210670251115194511521136486288414765063199746010949002165491180989076734297256553305303174967106657446439482232766933269151320654384952318570461632494339940900002526243526329660440905185218326191578592238157807074249365860431359185987117265660938516480544653029767995851332977571905390069022564524332619980196555639958459020290668150637570876638014832137290096576914280865216451056199519169221555705485031290157883490012741366206005869498563018221114810873617168774918491422204941909051411117043882182243358257409986868999750448396224209522258337349841902175712118416809138021790838008362743386685730174758669849355696330369564674470611780694571490036305104894466455151906342102767405517188838338780883949048561785937863121237374329555621903514682391825630366531049023764940741652612332021260276861498371833694789048242414909185880912524252060180615141559793164244458681371843269987592638610045302502525090494622711484183353266807803530732042959935994440083597481103528446514453894052776382125614481907226316179583600833231754901496867007067595612343649361832955087956917848057573110076184545712098393127991803365234513508792324349563338053935508445490328949974106843718110127534871742235935514328641652215361386520944506368200739209092868007470425466230521537434878080051441936214995359437169372322338509401596469666780373024540840777955248440657473083679189931020828213646334055739462055850678049103061341055609014299850803377829467824885290282076128060581204126842804074132258695752533941922046683889562106951784144180899235310471969380858404172650678143226188011983207317296194761774282049902351898466425596630952934197741542046652764348400780335617014025447000205322201160118634941854838427707930158303541373638953174873761156772408828016054763737417759065693463844957639120981296368386032148829181374327910686497040466659271372555556346183407275324616915259138449532667881162956188137473995402698431383099677750681574888908259037095126742507276370014414910370393165732351011975752377225747052058065029981221110681039223803414065691306916946821630310052706934446738716792021536300888996762330394861334689691724619714658607993798140077220522051349682691200573320459270237442236981063160389493162115173443660630415371639251241263255946613010296307082722702422429667463462739589818184817098867206541850953415706306378281719525646372042947795779840610306001376253073582665135927248830100512849919715017114892821070481862649078208158304971573976117959488025033631998666102007502365496966338520973005746412804268331800337695339279425584250813342328855497909307403146889161273368892334689917761344795681956544077603234551737019888302235576662431894639415127488170825905644224614453736445331357658458816247055369053901353510063187192069296504432561724377310654615305548491545139718417493013516722553558078823712436289583139715129987699134305475956821918001962857691433762787706811005008994849239765234807117705891410018552970484563211406215431083145074336585796244740112121285721252228525171612063463784264671306497495130476837529106071826392275325578016539898319705373454816629260450269045654780112510203485361971129104889594948755260564508945139523310224081403296224173774081212465861976845326916669809780459424833308552753211558385326361374323199001220689059839061054038933057365609761861606284841672529066392163692450596573602308617529549519060180252803895708807834549561492980631476464225664197879700835106257793559658993996683316430494258074198096307477615624340119277212325203937536901785554542399329754410276676866000639182095249476475110915807016955403151877549385837730301207552283645539772848915457537955965249381322400768715762771835980300407451244184107603347346410732219632071337759219353949320945799108897631683927095746586098205616698822886409511664927158037462366209247012595901025551593804609005639787259565490222275388905601915305973927660936056453773264006558163014364617285178455064032972588032217452583919207060517538346826456030147739120632061243135003310216547465505067532903162988325312015798736309548213074208874977447274806485443777259698227843354664405918867542219370254209937535537388626737318432198022630436395928871105807650186987080557365353268209019470278679251174197131142321339140298668489579112590542661491154980874862438233027007348827718831527797699800722914159339179057060336079780263260052877442579731608260962987281707707370019133718717868572857439055638668602763317177736257415446364325127425753495466053940644752528495383243134144980724966421177483327175490023199614164026607465414157687999240389698345639889124996481972619341239545838023721185705148153698945581994658459482918085009511059946479605284086825546330899764736824307360990809600584815457435867100530004360753861882855490570817366891576871793809294669946180346618077013380788072418186578124266072956109672414569082874060743792239477518546882681523812353831312705220092527593416805332009077147728103985392713443453931589404137795929918260912072895115505034026857881863722952874629849672908623592042161311198675720606154546211031258962020358021791502938535873727782878592523407655588354892309640194544331833487968839238587870242851390029206266408505479883269836960297974664984212869341089209888625377338283070910158823115247474648450556666839193881478801758903213264066713873451537442415735610745213539838526005431474461992942600208380164755681057033921481981752418883846473645107541775843152541172587447919418616910575918727931324610803858831140088910450480612208618693506911213761842318371788383564827363982521264747335642831038582887962487689283888473881419117783178437553598662678802481368442051651749473713161584243500614914542420390166783668094404622214534040147704569786158510843448804655631093944130145540376075200267209181048814829396985812131442624251284573134885752753588379306994196725065962875253613266942730471344872756698509429658999761318706930326873623590793287420308338203288271368768756001147366354215977871987823248587612836076923092091033332713221239771868801372753876568506731122277902097025041135195018227822806422154158172050551810616320521342476591473026389855971066559585742449204898056151019804290831989177417536402393928062878533858440283171386057913602742348923384603300911791508492085452386972648321463809557016061855404040042151438586302842539122960850648842618808065113887419961691330631979470121495449005155849418346229282635210227585921772830033255527414897575796151588875168224699428412785107385364888641546717404801070601065291283110268278917115658325650245589482634810196119260209131122993535164292623774234889967805151512516858124363820158232074841322790849014156392001171302667548915518892146155919648736940010616378841468113144827440121455939083916871716141032653560744223219670186479570843245741602723432481656743949448556028473085090431450045217236694177553826793007428592516609289104845548971953103616959562039935620221435008923895412702147496765836401566406310049740054582284933080575901908913608004601809204395584125249932109452684686463767222403617838951046749919275420750093369006762503903879517975198527070840473247329299127911864450475598655526316203376754356151182348523082058049694543919890982121581172164054972856993458192447704387930687322474406917649239426589797745563174074047466346362938174573526717276768368988406515091065552902196567113825939861699098974252317303266675428341557659481956306236568422036084670495444416369430461925810159033195309801859893628179897331441207967490154231735269642861045836457160053613066515261969294301051074278423316294607774678947723702965844694223293208581461757624124690730557967184958648750270284825827292125443446203720039422424146735526830970170554277715109569205618533882231773565127548676581086731524223272499083651759234190111142620473641919524848721635318441917231257843784341820905816308755416556449104454061973409781445286084963897337881804803256393596317353408931528257327950995180908610386104931065498645076946971540931170050412039970425056599780616992177285174547414239818113754457390500307986215451457003452800579100484408629285675559863017852808043128904329698111797374304326482813290041187222386619783633298235423225672213755751720704387162733408610003185806436329590034040174959772430937141792572255524289549377868575638808248059520428589349661364022930811957240169882402300587652472832707032384352038022946006574669178641972465209949148399043958618412523033440382863743098887208028111692223945179257489617531379275566165711257142308414971262629565608306678716934357459646472420328446194230267209410157631305018180418911548446510436368380233073352447929510351373309343362220538906292248848747827802114879063062298389515793246926521474366881988094718794608193564042412332226847983272220723659199255802081421996442401750335914562564915695182368310893550541850275366386783084959425830605718457304329101472863055542821939566229903043683281683070264023615853831124631255550690657319921681807517644666684397662152501502590440454771302632278944591541233881095314399717409555508226256614141788657551579502047317118418112816693070900890865755561369943108480839464335831024527963953452277507637323568728388119806301800480407151140779945861712849076118939173550481093838537221368872546854842944213052705313739455675897959508940763592693749889367995616023624926036201027495598367517679362646137176777302026715341613749207502466328665536639589445414525089241482132688854652955943321949658319874177827002428965127426210667621755880362841978948027958176226085411036008924289252978326076852829091632444781384074024122059310329468034970849053586196864009295984161922069116670430120837970945730460029059678275747503834649973084548024420558069694071756269322795803047674749502957471575975812766712264465238463552285818097205373551258134476383321506244501114860480449279893548745067553550985648343117098063663614569638535309008937653530637626578614545863565994246501469177143456248223441192289083306856918303783493578326489166080471000179734202520035638768222375164307019163930777776746877585068432255549274554926937043288618953272481865492515427065787126455320001434751302037939055863046624837942946516828835493240779264750029292861041899185064761809563178419710958097568351161044472031517115319420696799317686228377344313986933323485599639130386260324563725380859778162533611130357701350818272582744479727366643620370609562803985453463413060216074343112925410912816247064943446028546725719392808510064730859897586523136246119194763789102181017483502719472992232258130746524042605763652173929162737295502759109996285651150339212953764077406233490220886247920355287778701393947932000571312899130315321425856123767863723988858931134393767631615925695548986802642497180293406310375984091670857207138426163110308200426732398252003775605254538486282232060268011801664848507592148612876245448879776013788596134844216501947363871140693426851599766963758111142285945144777742333189179554462554326497096330342757092042847655662804968501255097889603816922002352314786497509872950400951600755592262204139471750993579778690308399303013098346413369749832144743583247120533660722807780860104776452416015003058527128871785740829626174291630737525331482210677951555693684393854463451699004963819065650468943884033245846601304210740854340183693412463183794223085926377205633376988236003910293544558755704834133579251155211316875578839215817641964765018535427770087525560487175023216593988670794870474106336532415475692870828993644447414417497861851173613630989121827447776845659026627183738760009494112949846625749796836297589477753134650733141068940189746487862808018205857046002338716869350123724540074759894794824382627440750705919701219971348754654036984968318970258082726966006201324910726960014762550605492633223534726304292013347426309786866112800710320859086223217394669061155819801959425466433828822114632715993232097817819837762500419579122022494866084517842461730442988374848410370072981730370689872804504745259270213078982128263254112079047884562934347377018035271649926768158669497333827713435378014763268481413175837053155272555788841888799737783176639052209648879994732323407993264067541521692984917304806145381733890015901520172437420780258164239501960738819871737807450088371661706500650172006601149164015023946511491752526832415118883212937814226185747053490777624613761331729390781383334276285504436409224888506604316806493569369603821807075507034986279595923240193438989412309734152313654549599090953993830970550131717336091350397680333394732689193859923302388057688771947090438082502894654730622373000650138824029725255842946626048571504331749653202982834411004715144613361698249286430465295430785126473347433586766419905596851070920914037727789113202769845879127608146545307897726862442158875031831264902971755850885110035962798483226598783305311642311692164852890445486478999098284183671009983340713839126540237133457225020331766282933842509236018548100008511673098751898943029778591184223856499615201190257083366406678121999446030104925946111190447971495058318974336906965310159292203210268440517441855005990903300939562068259152429142940127308569268304567149139906743803108965559668819346121820828778595796250454444151980376545047173744432171513877911938286260929398452517445117899929440108945058332226125206705632348373829626753723355369726181292478948137799357404271734382851149073056722340459550235026786292489493127477002280583940505544603650466598277991332552694522708910071943498793777095216793494532919884643993225831115506939855549060233831225517710621043682290508255379717838080047577741408637747314050532013259748214962384277559836424162347055743898805173363123610682598671414942545634801710468333678711886088949946529303971223407650143277635616422696933786247488461758427527069535275882778236771419269013277610670020659329970690862287010778808625643497812368973173919518255912259631146637936231623623477648785575240505252362916484550941333311437892142844284136816474438199008672908472523682076118281102962472048644090334740638872916827392549469068178477412015657921838632923208444418055273589834355448281026605629361273029083157326680366075276884766948552495951901142252387817625044712946470825165218123236413210147249994055486071652532494640536048180488583417622413890415632133354016094786639924022365017586145406964846637645982892529791145084543370811289967278749369479295383219411288290128893570511749377669430251235724175477632588578780932747384044785447261593549769572604141220262718218813428411465883271378491983793845423932138027770948240120601655307690442145996336515330153218117958319835844395943247870272830778905594958027329571561872200324884710644841746693443597306732375704024383866990003684410442295415546320330206867219004957316143488839423938135450282800701907341734977500893499911206845892892874409198014714694281026128160949844355084181348334852292680185286285473308080703476527858425179254702742186658369735745473327288141545187318019758552444838039204185866867677734328259233484845501065373467777418372371542941201520044724815100476988759554275942684415615101453739616237383984516846700375964897631124765068508815380552875458132080831129458255663889483293874880129068998672851230428810873838468426027019435865866163215397157639666104375909748675592275604592977621419323226973114147265129383282028238948327818404336293249184313629793710995778440455165173332699865907988544520941913340418677452538204361000502016268077508894025683236885655565717651476249404094798994656618718738314166289018262539113143441218733079309505524312347132280107868198307189453969345757128002109887190346472244558568585674649771081309371827627059618982201667585901872361885252294035702253682657779326254696061559074393244500393434689907242302739539687853834996246774517416730381735413309751357875396841066426079080645340010195457951012580879887034029346831029693835334795232589701643926270179651114129954777722889996576338866480821954164268777419267962843041037231328710000189379567580090421810005150307938194389781599395160815964559527130441811883378739664584956306969902748241667838119284123286255883571523032565539841828740381193325620008209056469221010590770152149948834518567872699293525744279794399482479766625139185745030749162056471515402835358873547409193493631468720366478027372885628153444174568727051025965708255933353469981688385433956859999598815096853339865152368446177230572881649922677761643700816407016953472112285766376385110841958620347776896944092091490676205161914136402522832358970869860199723145193835515334922541653839056788880320378236899442334351815143657371872695914801034710771904003990318727383656092164425814344709898154255079494614049111594638252927681208587547960561612533004453177175945790937718580603695824477684028254475906810610852856954845939840025445630039707193442958473456638091143626591162972763254802053397126151976468135123657938992032646668370007374292987662925483894322379362802951730162035798396172874131048240154690388455899200340920877359521835496852024742966780222010444716377886300188420423749310052526497504303415707845975123816348021724134602745983293907340955842445324735908852733968975496905263134820121843886479790231274289237524452338254570477127420541151820596620159842227966356096214300934921399767889194043844699956894397235170765811199782647721670978119610085180839435081966219785233915988710002954813314637052299122850814407872139397841722050071263560390101511713775947154842175139651333333583812857326328854122325704213014914629547620931714996624079101616429878038309417890824582656073866702048584541541940802993070493407386513683455888377325793132213416700296894661927427963844747313571351982177979473225275594102501410928074118429254827644314458039000626804144357922436458585475199912460962548908987452088531859774525343164390580448734446614084764995498080245145451497383000507084850830694484567918112865634070167556568112842947633380581588411044066881071320725555643840889331993345032059407663570891921844927589964435404810160948777785342222493946325495699669655642031653441455767993694413439563116700033243644975671086278579294840419298331755644134788594650626438202035067565319149065219750644381133772501307264080364434443449405817518547073429049609149492443775087053434372313266672827101802191806527274454646828312617471343619247672751860796714091105438525988094624620184602223221896043498636857993605445971100140499632398956342365940051442005189453380408992597302170837800304389567579644507844868596437400402127244586526088424062917859373161411840508752092021989453908924766706031136221322286786557620672081055225377404643363994847209156525840321160361209828168527257535901041467316931555176571553025081923226486087846183082533949535308576656003006044607299217572133476016923851011676736858735064024137775494349021354282638964292534292678727281900408779893467575019547561171839548964575872857715599676663346009080241874454348815125358870817977024978718046020759323630372811700543445442902877939494944617225877693204213371414266513155440649053836220792888030641549256304138887238552423091516614857601587802821074889582896514091734387293669186451906474359476924794604976508923275015857880015966201686969982671481937207101448491947877213231058948535245805868042114931701344839199089035734703113684277697774489624099072098251835830383311631016714341293702898300680922425002634339733113644805288104308782204133024311852880278780579631523043433151288842833582005111713943758220803769093112591996013352807713841560064109845339843914747617145877848429713888925182363108886362268544755284430650775062743981370758537395816159548799593445818506158987644533343361727672211895494535062178327379454536734002848551744393109654019767062483332109085207073405006683314486018331337200061716826717238624940053151394899893639784599493673276891062208544822715802944317276188030908400485755882422504572180143463631844838465141867242426145018556264807429389097593126119383460536657081996686029210182229131064214322168728165768004176318990375269526105314123197165932746430547012919862466849645468278280446095434528730987461132031193832938252897694058343307767692290171691594532499009707897524400977558159975442035302223476207528142903206234163876157916522247809212515954432593699630938719336328813010963651953182738884898493606869258193547131408079426749397644946279073244726345547820851885982219864281982409255265403336204583920160312154594539937340069240980193457728953078177332057729608864016521439159193700311513820433403935438078484049382479343870980359047656343821357371723776702521557818692320057417431230460867389066129928713679576255733485405714117035353443585657861236193574038102642516573569974870710505313602841686459585711273456960070624674023126684381493846037764000869062623437763932021089106098715920955243052868324366832309926549857163908398953391748582743088273078384531064519718438525648114907803696313612062644178571135586268350119307124578741029917588791518511472415914136797365729115690606377295758481802935990988548878163547250787238017046023208485697285317790083600078047499433799441427739244898229936347825577977946487971706738644240878846297712116080548122744067752324781056142431176630951943451012260437748050855116813105440420211038171426450783723035198637556147698736235115378244511257162628857346095273503389009763916060472909787477185704271782300505913883800403727824770088857153545913630183864909458498406384067840389743014710309015079261555708560810460213658570480920166535122218582897470479299882935520684233786577722475557903052084408507659273758493159958028917517218817951089151700514998316668369615036573768481438623664510913114458034579280939082046695041982745893882220375731781810849007786037660059835233723322300384582022075802447397015307457915621278742752024700261337600930941854041179657203826225219945781258754487901975700643582202318774672057078334048288599198840222805402374470754435999479068053495234778250301261442579280527694571928614028974460501812281973636408628539688610678284280124345446972821247664329109715794946890223981627870528374901293059842299837419593007216490656805096504758583156499576158916643518722615522344226674543724726225441038236351315686752576594691276287752940782666556872468266148136091349762015599400071985234097576720837213564001427437702771765978559260619432560074609138679853802404123958958197529252057426535510537379372482854587862114091744441448598378651222915751837976916070009808586092417441302019759308769673384485391697772685248788429771692663857308622167982318044155236809061433477769648386479290415140711691780966473223834305015051322623853467786234325917052587740083267831579193371898875811281201817724285468617075077018082293372838987836581335238661330141800851877773953316064972280088806396425286354625350172456948550722212492232022074774614860347728815407036483511139691596925221582576739781488979738871405617126779915029955387291515377466602433447503183960298324600485678646993629668193396688254750231014157895604321187939987445629312416362551372697133387505357106470703312306843444024391720186738640852709767847336464101131388357660588858689447606975680255727619021403803389290009419999213448268044577194372221256595974736182966624281938733522928821021192168928755379566129991293864167989001728120511839710238751196850609055877402651717566424739819080873968544329762813268037323632603856245883618484905201082865321745951072334149445558944299829143098045709011617606333712589899215307806583411448576038955665509198069469807362234308171974758388792068662199343294755786715135768822163047680961993118568034051104102119636802115027282020382921582424927596773901537055862824252040439907958470505341740716225884791040714124637206412084289212722258683814815340521988079827228551255674797940980747107498546193561355469866253902122922528322515762572188960964040752460459453533589862105460792148621806651740696519060599744121996273188924303569737882754654907928907111930167174317236594702553306084567362137664551536631940958468423479083334610480717875072122194336871959081248450141869987049994298154592060168283336601597442742179777242581664333377172134409223797431330769743054857161533153684604716262145296866585071861647582729130317918892450822182458843831295771192324940481742876070647336498289833298259827983725311792669944515267080333206491964614315120842406651385279713507865516337406526196184529669051513739695988994393678701633808145973224121248134151828143291843039395653849462634902850881614956014218188868123599996371577642996490890889576563330110267352545902490010311592888487113804283325575131401582010584555826511838748683866667033662217397878517199919665835335107799298703468099794497741738988453353494771747363185688030002515266244229029410905649774000587213609433725835136399839234278814305687575787504385020763498367463474034253206257689773993258582378147626999591643683190146214123597447666860421580118163295071691536606071404761302241942696065514081704557240234345234381486599769399758858978599291621462369566891282658214147465612256512116140371122686568435085649922623116605883462283677778791050048610396643814254929330404674796466708377030740136008940782620227008541385753016456348817334332444480059065695234810215116936517332411597461912501816532115857201862474558670905080850663323432917594250390087577732878088023092468145267340943958711033205381738226633203285823602224852902402657995014184778338354347506986828847533568301289561492947555841928051005362403480280198965174586091056834449118304725301186970420585257150693989022333380035816470924914939744281379927305880876426785317531546979465098150434662409566146630288896266639577819469244363644171797980212989029499842738128629504501126687626029846103689725239963051443471257949836230239024488337076337777365739684078785406617584676339326278355829784695902430211273254960292491487681711420148548350882997289188539644731881384162360299027537457086525388503264054537119523086336421143472768996210565977234628951413399555242480287326096150298482527867481760557673982599479584526760450243404567553125536629729252724996735717957568858864547465660147675891637988079206947667737014121176577039203023086404834227925000407148090757936645082099372152901264567682406868422422814903111703856891543532260400364418351972696304618055597981897566740261561187624692166490224346881558506956888670190452026900337260792566096103169698115862049123884749863216301858416629193778457617689094075696310085713437891579933432209844875374170796101626934547706691862854814824867338544542874250799727937452589347254435398901658674123497485754436060731983242143947279801686213669677218253593795062422030258124627502381111941402792429892717766231284233210319445247486244019832332645790708060278266671696723431479033305925211740602942774611488458118184605616722782610278439356735881594978424201237203583489597228699332231039330866199825817445148625250778988803528102774633386420425257341910753312823116372802088580969246275095230307871011230703997096801734051545248606678357603230048077458583458309258029862835161489673381566420791142083688498476858957551253872503687277671153860358895022476561604576751075074635351065407513334616943002016656951480263850579334405111295776070186848576315795874251385364282126104782579517035859633077027495177461972301874467280504159661244257137903245994987544975003168713007358036550519692657600831076832636571362036262630578504431068893165597925698864307245508583586776861494034077384162134889801590266702464234412116616830865862443170043657028137038645810847598809314877529015804997814234051922141776914517339715094690070675685950033994951236118986192276757643963170873032049028737495033259457213457827825331075106500322908609106652419585253362261753084017673166852970717705334192417864781301964836621063325714193183863723106830746353285000971772577026619940145961835920303670273649923591682937060972096014259400267204933742940852152617346432534650618668090993002345908546319015822505176085209476881674078424957986170452147968911320092690490447945920947618730287786001398099451690940301604332906899212149446950454479439830330435135596404574323963539807102706634526400964692125749036234748971811064085193813843190232718720282708256266135406495201738914995954466885507143435951739470811766004671911131934764257635964152506604252585169554542936127735033039194022617434565510445692244201458810186929623610931935606342296895920649288904427524946830803465527233404914677615308683115630081374483156514380178041909130329641172469215527623433538746144303330919383028074107933906940500318332374800403812217156272255391837080480263781413285761997662840232539304612139716384597890194373558281691807505624921271609675993894513504508631954520765633892561358048871717404897439711007951738919373732073730594085622452174405968428910835052057932778084007859349618560102854308690575724026131958988251284815610865674518555634300919622833528473591389055384077549260265806015117349327143679012631961059492046203046511076968000865927329234338438566285091182572881887065668613980289392463644177642025349463745077304464335337932033838348764466596943862007536489091143346487543299380831244182811934274713802684025891324674126405909387820391653018169595913892324612106463106281294116038610651644722599119622741112447740523494346764970803581396683655318909726882215580906216166833065082627275651991795298915940624152054803424209440386071659725407773223376256927149478934308486822137820748204577167169831562302095040478309486071267628464835251531969069884753873848552502346185575928891245042611021602399493438740895202460238562982129967764672967892695803054375064979866049876417417089734382567427604564219451945543522845701499676974710586864540492974466937346359180796034204602795066530911027118705384998250566404458011707794446429812010470656998259285706815105873705090219698550426201430155204766945120921533084644970041307773655250892563677496128890507757850677463063911998601362719086659054373668284919656726461747957539014250063060166179632910672518367600487101124710087433841966140934034437415941425714342303901952819729279101400728144762731699365750568651250030045052322888739869163278287814188739916399882514865437581911362649060895869244745190509958879637299441586516088331770876280314782079719350493507871457975081599272196571654763070341677309867481428062888200550073919629084867567053520708816330279162029759424961092497774869236522663823157326403013821257789413385250250452697165396095835804503359972779041783900369844467565028046974466234572199310944467694526627206966697474549809635825927324888386089975568731578850991115731476368430234473188687154989583949688642615909950652783427223362144697942373819201820334686001386787257241785543252928011966381961461409063765794109212585617527111536353431598935349003194464091464494445740726003002251550014651451790769452660829710766099504481813413119119603225069529790496225844726274601234129931196405422256816232213673889057220960576286125281019750618098657683084879116924243058322616457500548012547462730263558817170211876827588244826576038923218885250934706580182361346009733908392210972098351674943698682961601057355129417588647138036250206882074952739025308190775484835937980600443727210439122449206412731679355591863330360965122166221855168783540541093593847591938500830946410121464158943170437709977424701510599184944040372037368986720626611486710972622415340188997805516810481110912049954272646057249210106967691710292981748814507229820859814591675332569296725379082300918949046228636000033713326872577244239023730922426471107498349414607128335352908861267848907243647934022834089484315697957742791188877680692750110618252782363257024636906969918909765779241997552213345863885100779362210064142810066955532506553544114549581636250351238934958381842430024205629609298485770605853823340866081740818562332320320329647888222585243423767790262700723084528966728283389902259668552663007431156437365153651483998476581587077739668588332809556998344954518386446922022530590410764853814658233945867310143005399108838243071165941839467592388010994770184751290606622012102166450921027910681636928045616764028937373872567263332380930014321020339393594662445324485737176381501778660190292820087696276297865102568332487329048757948811100005869312425949817523261925178966983083058535941093562132104630194900519550857203581942190552077322548011379529492336241320926533762904144630029614444732131595797015728049645257793051105245110695411267164798540928077398080976392340296179184002975525626961356148086666503349865633981111168213428310455968709725768803638781427199389707032557884171577876474318658948808190808413433019607171364128459643064912158714170410098517080667428204141848837709057368756796772194184222524684696518085364047373157037873519652139068532630797530120887784811400209375213483412076896390842993935300924845133624762523432913551545724013859271488533468222024689225055701608287687537532823158056058874621589536542427895631585554668118896319857297469711229451010152675376558833276801677304353705081714708301938202772150061932662342264460590453458591863588411911455128888855633353827709382969373863008256152922990517529515801653258412883082691398787749487863911115966057421341800341967372842028958887696588443514740078544553871148260432705607592463539683300908700002643201666993701573561032390794958445673028816531161089625987155215446018090869114261848948017970816324573661027860791282952295853321642715479839728195852523173007798820180390162986247484549871688200219730177363460246232504882067922049642341708337633684855429397976395901812207015435398003856264369688438409773801247256067006368859221637405970475118282678758160805710820161524471305909487852325469469202430743651032012887141488533350322556040510254115613828661525872324914041256439705169273085743468475037732627400462673693080774483058818983937965511479003576639066558023833832546592394123900813758364265271140005298442342595709918888848169082507847277710630467223393810756470037049321540600580279087443214951112478058954090535123352422127548472850945150799320216353130805666027739216479908104966856724558413997536680969357008811217813181680400663331983951995850181087976123885834374411013608117985665996899937621452241574737524095033418767832237875093382903976956924446319674574696189814338814691076239090461246847862766226790777748296998876834841080185028843804098427103686186657817311554539781502807406014571242558834341150249467631654519459121543467588503066316932688695281221605588168570216080641686069991239105528002814291784733975146116632625239237864258427142279244159716979637180779108645785098504833533065624409348751558593527474935485539940435906650270121207002872405869949355104407301895363677655636375069277790999544208987665962923325745145359984654754070459050560733369492880731709002804693473200460025421235378459404296978116475792416531184211077476564606836608600925478650904880587719404579788663312636688828283715745123234702385956052857275060281211308078364161316921934930144422884547757616663663638887671390292640307557349036140581967230806932000897831524580278364257994938040660957228212919920066268917095679706320902287833208698224137598007356753990276704731487759072195479747721794012528521930040662186686546120346574243263693112448648320187840617659006886137693097692294324234787668184095283101049963092406555470346074537532031409430176536100093647737260355962474162269218684841269755129334390756356183704007123112358279925101621617891445984213908526256321175031044127662832585343988896614732518167326327790092064846092760003576724692495777284898847665803202286502999479282950714490404061841300589552817042425056561714190810518254146228532159321235519858822936904551267167420868267293651144791469130690272236575242088663562055438340670168787923089058410777628090184693363948940925857509894628107778528582513226807305090054216226560288305190092688247450074275034174425168363885315126757828953908673838539403589767059740270882740205319661061455082247584531428451252200762792399520721866539722070863871837146504568207004260952837059734056549455168701489439231620225731039300393380807119790606073808182944291670090619558096544483210412084311808510118161094468373664859938098855548029677855604506698420195402527568072254302883688690382445717697373510403102347530095463062271418405218464730272401324578446869533272633336926884839517364843712497341757272006597932327019041305328937767737554072063096766473414246633310635354729132780391729564668919078753455139513740521311140945265398719763217375910467443564264217897031167511861171164671256666295780736434473306221831065358708681356983280416827886462211489480871402392141487598830813132403085587037247862078712200481450624211032909506283736465652153643648915433814702201638316768520073032010784918769484931997873485020758718007129137473437942201354974490032387276541904081711944922066997436504015712252866027335593021288666533133528588891044827311197348581600095050726090748197266438962342150733062010827266850141994750244474293148505460587456586839989978096695030372899547086350001030024907719792610303527468522440375249306300858584032391526172165532629549115038614459167665696895360952493120167865629034702037293025860222608130665101058878168126542939841477201884936095762377824434889149419194059202881802063332795141483711447959359670644701122405010086007290318303526896813403442095323716012515097108320329512766256793564649533982481649599873117478132198759079331812885672241694717106392824504457610406472244499714531292442691281421256026064686884625852639919847819338342689411478737930683658305157577185942493638956633829619567059855478102716724619638209969114600460846996113684263985248451560939834307530959439564817502311281640838306605305961952253993300295641081518484624871875262167414492661559239935449519491522839117667925636335390885633138048915995908464193649341670905080729162203166639640078042957188628490673641454414486721061135726346909737967555908169470347755565054716173959757742120622679139783377033013190319079544132310307151584279263008666258422789176470056951251430546580593600905691222601070124435939779552987136910788660605276851571041261466837535834759505879990013019637035641264132830996706630067216820424473523156498489665807381340326670688263771092751157060753493861593221133038953545086883618473346890594329835023708685189061206488858464660400701959199674408040386206820141402593266291132107455574596305519502465319570781034862649427541948599319272894703204120095826642206833829520599735436574926165417259121509544999859085565953624262973391159391425322051457076036532058861292469329565276810846297817809678087193618913488443394341721303642650515041081597315470092710216323436146538764497589320306865186149899894547400296490403691421417813817896466057181994930096928651317258556631771493521496728665803053856934951266044323563318603137586891289204714437366043936438395316914307587138854383729551200145989668846290041860363917821705899867001903368017467182321164919090774253449880761133516018234330734067620642654710976638568772947691858840099452154892564281707462156718124958846420714951739980680140096612140107149659550325668058153854892651500503672758894313160616941441186429755526745188997116121795488056763817398529243288013537684754600756867875835050836707064322178463870424591402248721078201784537897424868892819418320425924703617186851956626267013438157043443046188969385439935101528526241584286829880069364408668358177771825805358989850799697129198076373296618027302581742632130187440403831184552826599451244274515203886892753781264370804620107159977822302880943639180259723023937217232875751573820881417420135139608211937151633435724207178513730965077598177368875791893458530158848527814095508855384336669986065709774062685598963507716668352292821619058221023764261161223967625416615264293228419978573812827599926872294177881967362144925937870821307868873504380727059634448152389617371555179839986618434985917929501051102220393194935808193971229229607217560106221699623924840726787290667709776583198351320184786951699489282753083944595967885221475409898014285513707823048514012039115932892982690551727843422318564492700966239091709701818609148035725829526717461267967325343700751874951846355384886590239738367540272973033778777305281133387986789547882893601029504824911674601613033171096044605560660032191671468523592101280078641743575689245999076118374678082854022306045922130560241349693374508430155925638594759610697369522359473455643551401052284854624491427811480629108807915929133189132843236601127419206944943006807366335427700860791985946633252935323031430087769847278736518356084382066180796348448365786592895144124895245221901262205412535406801257910946016707702714603031594460375791175428023414162968636246816900467830495120646222367475384692363908200578610805699448556741700952172458340134985865228569962563441303831912173703690531479300275050230385390309614119113031454265738564193202341970517140416347467075172039526284209412361866965681687936860197653869481644034597219283411583865399001780599196897890064905084606567154814625545991913997058201954075188517198189738268119789449394157584462121999710008392263667850221288979975399137675550663262614028092373906703875363621897735667595333302027383388235421503336664218301029903284496250895966884496985559977555128230440968684311800649166903045032633695232765180397105763345279539688884191290004383344838563806633772569720334728280899267233726375070513449257128232556757872437455011912011948706245546922621149065407097649976192836303657298717327834464363262510151246753384758507199326043384308174234368239172868943991238942637555541071843044436829773404972950784647236974122686642317141568602165961376605195270153195352166909755852511582968330801465834291914113949511577750240367873343994561122612781569568572787260742729867831365438693149893421508233034141512700274810206227516207785649334510741882792204351072745826281777963863355388398585457990005616504012667578262024887002615865172004040969678376209629441578316240845800843376014387879662535915445511323723685459524016196711833448690517120251587990401471351569449750862910766637983263477476515115506229471556463449872860589351676619819022772864277589289309182335820647875235594551928448692870586602166011182030397967579246642006536323710721259901862975144180694879828592466314746056638520003491699615275046743110930669779645574003871773401811873797557390169053276209373905752762405410404369061215418000635425690898424384246574909994591287828105852816694760154561058833035874300047387713097599590552899250353384428325836566907329688214255968547301352448260602146654086523705313794530093364669406817706963880449497675582583977545866333758465944921706313371688246617276530941987192419691455975909356691180291338727209937403926903114112078085086786829941541256079121823800229679178741963881754885052537525340257988491840713897694528098791611235459313277823201102013667855371909490928637196173899285983645440379778697154923672432342944612802807753328200348500339889821856802795741266323015957952425045163734443490783504915805409644382995775549519392459067578685357438548171533839853058524524508614475657795046640247147425889075038538706856736952668885346979418031476237285437694685293245514454756582485860392733233651459762922699736579574510401285831677864048624703119556733863848829701934762693429986812450166634804932320353325630109436024699712640274212779094693223122845605876848786892866259274046652765364645662901845813394563408361909034691485423026218425657523887499789824729499533883678783524572051429024778183751136724802255051381069871675794918516992087150237502951366158789894984113486469855918344485114494531795443492857257385720872409024720010285819902481451096890016505758162037546950028745173143348547641471760508680645653045536378318440701220478725213712241302004177156657277861221790889725749124903567647447540067443992016070482042454326512090778780955954981713183613829163780726133407188564253076385119561458795378224502138509733637894747437222787076299797831768788212038138978242690876571191127069400469078719797714173459151579647099412388950799109344046042470407857256190181651511105324245334312453109534230624883328448054628944369369628590944288038239744841103966905283921068603171810487592241639177258861937220383969787098956028172728086624341011327804585753943574730232873821451907656527701236991616494298139087514952299988048674230244347646896775997080013703445936089129935863423262427677872669080122242881895145764037901925677046275412819371013741789723012829226258229893661676069459622381543119317414030380251539807287384219901919755622344592324893400789683616580919655960186407978347293929139892978219269501515826708303778759281503206451025991656651810813227055003713952225740119903874191237966702992896000819417707392760016018666728001047311742556749594115434076012587147255095287609387384746251103291726309549480065438847114079909183989429753774109525671105212370220783688166967845296705975165968275364801818926860812891246106815326228224601112086685768164064955839267098122362885768463590700206506591989747506777201609351239393846993622250041915081324798598124138893558692466484658509843530778790343001879093598545766526723755725096973055723167442208727603472473897520394318674239372962013925390110643065828713696498468696600912903553983474180267262743944153440691092785031506984672009874684999211504749531989233882589834491112143710041524043832717227574672205003653932829688178221949284388084978177196653206156816759681032903157115998291927017396828573255142027776590542857513538045189957372083596440059251584366386263608247079993715906780139041088963287065241364539282757847835906800050259877863949656793293249241110889240971863887558434020481454427329350056666147624553517731744847621346496211308336195185612361482157223224097767734697887416075168626077994415328756563098888406094839243758876932124712921516053616023196686444996698873327951199089464634958019027511328636837838778835988112368807002673883112665468179254757137392833766228197206500634999844549696485934713151150344828094750092657486833566075306889689035361274638127817129447987993663963736402004659948922153917551699650035473686926358820512198130429417412384865617480016154714336526640533649585184545416128699487511675423733835249434202809274328674037426128515751355908175777358611102608920981740522406095974584569420536180725460002815243705592004067428932865424879162957088257175402892739408828225970145011345558836705061102129899183328917715804997823287682327461977611056549293034736907669905873677722068897891903521365539234229485551740491539002192676390482610342986703450874939189758706884820574260054541490970290335172020389328455739841245536972555858986771769270044660641898360578659508135292918434541179079700850523396543844203032933991908927027808608101656620661031550629841809863045117417082734717671139796122905891575190164903787478425400212652825588575527643188564230285549611682810069813967334307787551815957925304726276996452058277665579539149322380037715233995365000149059000456171440611501981796127648184545094345107687041930703979035347356682943693689453410306545224432400582127593194534078960835836301963145117846779064397787734956883086192866026366821937971987575539090932862940248780947459952373145911532824023881054122510311667174322711801577841934384683634525313685588955382146874082557391040931016967746703593942914364662620008340337794001339638669878043571878991716509171610355646317926765497481535730407599700734403253629123537266002771643187515886986218003644061741289885083948197123544087528100944609982126440400093675701217869371380978437704598945132126627637234783961493609340898685930212635789510723874138307037923137536436708168173939763032954462112045011873366052272433474628951064184877563393500969014410529709922855088333621004060617111582642997669343409752747853787632689942511088365925945199707578288007691202196334548475146379988866467173431878143128688261421487866535741254163825912023552741352059937041347381356679370768688502444282872305305177334985954815482922415649626944101917279369876889738107622889506331595880066355814295320966393954702357340660174926741827998908575619172693560327943144070775598796261187358013691249286481750304766636990086067026975002743206857384571578437992260254294391349742152001891604430920131737938242868208805004525950172249185601070802833898520891154777938887814954919840652289020081646193867512992135426755911380840217864089668260174271699318639007064130227019354293165222645043784213004149836185940965424031430413726525542826638079743514332594243274833344946621579507395245175091159925532518165574717303379237295262333780198654744556025077608226025288312808365255795279810908149637635749229370501983743486433869572657428681853458938345121375126699806992996063053483436078325623458074769786432417612534492524795824192248300633487447653241396062374080690112462609037890506957549382341763085685149037800503541485296091459837148898771434349394527403889979795654135155927445154800619116743740239895774410943390662034191729366589416217913634822997291088526353661844423809805276038754173082201963204837497911380949840153306944242000377248440974638390180410406428371989566056792539792361323512341929685323892685473652801678300215163712693678855748972100314744461378482217447237769034192333733793530161744600726880983725383991488322924594752099601156464448527631031654772331548974023215940830914399733787958471185380634395609424908826273723517011182553336337756458528331537680166273061999964916013821212018113466153545522341164498373568200773985589271266529151576691007385171720949900169572690316662128956858158093867167312822638931224970088135291852479675127238078316022973797751472218553939641228870934572296888676785185704416920542765683087743022116473417479057389457754022558651519426731898002939068940925029206996000335202555069582364884311444183697375480521878632257902356077548439569693593922846510856025642636221290776952042405870584619422191694935975048052926057186997020587691648402890868191250914022323155242349049652382294817454504701941703837995519785340172425105439513332089233676509108162956958192669686262224682245995449379819509138850096301679695737460506436556626999302121333575233000289048982170584852300221813974167711319818411394088360922055115588744253282553847059076208588211331187818912320358181057415945892645432094478962579647311728584972167668793535320225963959984217556166705103405048680148138750077546579783366585898390744728047952294792287032642234269197734428284180728827419793473437624601204885670838365677659400674948398514352615725326720677852033425386613900002151385807664297831688940553019098315567029365631626379077082663587958806097819949785047072398514686016371965667859865278849101326621960003926489709543926918109437715469009869761408985902081707502191779345086506292834273683801020669937887572494193005574125232842694032175026078807090490613710928445578833015221980653615800712239034808257426634756107361257933383940731168227252212551371100072116133540701915845952428915860336119851096096864275981702776675214381617122088312637760201596164194164121289617311073214881222821298109014999769230449713859649694385413506926345986001200413947821074738264200153017529216984149443182548682715840208703772324033284726855620143754149901623999783416126190505533997717681969063932300215069555201581745333105723140554327347571448222872062627363521141415670971579844867982275744167346492029329585502978220708234414138856804792376009790206587548440579276577473847425041825868525232734818684472630832856621438792215986042161377128051807739291705917452806514088374309195960522610608002090404579444075706051716609817394108409822598292908070136008746923294204622418211060588220072203198067236417537347267223053267839942175698142693479549460359823764802150302154142956948042933549988886197931404243401084510053528819933813087003957625540398193104399505066503809512707540158170616824251795478291320170433616845357215239647701760176176777353815481316972084082820753328500176592572132459075609392810089174629804251185682633855591996241537632139121153123616698982333447278625062724360304342239681435521330270762451739131817844045482893795642101107489257750331489399716938107046516144919804565808172253309020231829396207260380300660315760305843376368674883417966960586918503931307904604928661323810676963140347197605301454418077719521129089711868049666516061896603159104167652329698890005754411276095518592844398250871082653159624693173959334805027838171848034036886344265694612596507196621844027419733458963118415489390182948629782974484144076564372649780436166800696711267989276150778982733870705603578966967023841901857573387750836796432388442313184900823039157753756518006509031637341237445090903849152927619775333828912935568795361660803685807690647453842591455218908895201853344903187590060791828296547241090529146500717919256117954620955053232854987904297080001512495618080648606700565602569735407624377528574655079945272691868182925328099566195724998076962872704796479212822858314693990428094157694455824273499399709795146898605724395669589360809126339508790292522093888755216077887513031956274559430614471851079597836113495304120685362817447697745936372926425641763437436990551792475836502390401379640637533200804713694700984488120347240137392189450193587927214809073450793231231484788857393656634160212265251723823069348012227526540129465132499635274038672217154112951011011618651743948637574477256017765844514534800650581417306441793382561447162445948993641963395432345752566946364444498746363179718871972377154359811154608270700560589591560497959384303752854876924085673872337652378893447284560841349090356159350339842056829602755901377570239668214319730926146752757500532604875922717428805575795648818132138736010398342497605445803885020692060205214792444565265381237872083581254964486618395620984661817912743844657750776332477188503084497331903278109113525014620512777851997426418852371061687977576121805425134538583916421237188822843007518393900819892346733730264544884754806673875616371376555351329103843249356928259180522354416135643879227954993813421450957274597297043054080681941950479142675276238161169956585731704842106258777066912356411206927676892674103950045597832667194248336465249527186314632527326648305538287949754669541232479525169549351009540331786378504005421578265476029316067839292892079842605414834758018303697459285033850920601923860988904309418923825608029375332681888878839758534431400149063215992186940435047351347716992471877276264470924519694636414625176095239175095297801974012561309531183576467067545977342066984680042100094060894300493323210171982576492846401325418019339851714778106016188614948786328894945665433457659485934395230412250659688042511611186659123710699110655738780657766710307101991463843697535162551459050291922566375717476863665108325401128958060033308086753025742704844177035870426040171022655003207266408916488529533629589196101668438358379418794031912864531250335352715050470627888852607493405503108784445242306875110138933592043030239855700647264166757848083896197032386179005712535124325170556442891740026413089367026165952275589794239275397772403961830876487572673747761984905951531479004481870299788896326708722365779975027179806703394043827587509531732737095938789343165167304455263462187838647104865690704612406452000302640899887623608122266511117107818802196752093069814327398343181231845445209123794556203347830315151677279457969307211491128770558455600198178283987413671537230468894025715836675095235832335184837353042995219089236090028814401866217753430998518852836281749408426436314424938354811175154825442671424219277225367966276413994229077554749913981699512454505800610588413041213305845499619432185285104567782044122796789149297992949032331065183402172275484435558730705828072836312506229032591652249801187554206003596532597307255621826476626870741331786524144381478728746291893093014599253340402117383627485382101463406532238129196219722372855890091980342271720175168051132004956941672807468508080256152933986578175025517569459900411979130409264637758373449643016901211195389234816969709786956525417170726038593773400537915586656679323965115604674272728464612704170236695316561611762000023707916790894982507123508595719195458326372945582853622538795087559930057819559884451213632567093332665480372572636644494141835393727361979852187548377051247797121499523471096751499358299569738594002904622671648227181690780151434591496842700588545717864646604774462381734305955023636066531824960301725023110794743549083090542646920252662444017495225887913983084242406735880233478093690049467413338920599278561786717300908650932397957999397972202540980849822175177073722249277097809541440788287348898835473259070956210475361817114117085547897308049631273538002709833371143472206857306075979918941403499345497484320276425311937593819704750900436168144218510148959586070738652658393303264725454261898053702192840075044338462390661361105238716402908618741518200134869997680748656086122947826550912219504227445994967487854123489407564029858386448723549633959547154629630409589244096601673282321512208183879555296518166701372584877657308986574690905475969999908237574113572587675992450357678864512649921101312326431563408835837676615078878074928541938708781393746178405673161436511614908636304561534979534912252583341818435294681746172152851773406503264344618194521312842212015156694726915390702730211946368151236412495658728139207001509588909751557426112417229204381967480697363885133555106559093107310307656506114612779893570995875074959691625296980124898590890588557477312382333563676369178798019357541836872136737619382350494589940047894421976137242557665736923725662155463535449450663284792280630716367308767943131657179434147539025195013578468180375581188588644340631062730326031913997295434049936120568321479383323859130545984641612603494939271967581081981960194105472787686306177325989177324061332319974359796863520930880021918234961960260245451690186299072537978044047452769740978923873111681693011136996978853186228136106095351481905196419837481830880584904148561234377399415929057161690547226063552507985831926612324906694797388948461525127915264697663800088235581556633523741005824589896908594263200551592226673587853541052982420292743129626271486010527568601348932168566547289147945407471990613017404680329804609620891897322536355856550279476672233031689579976366967127439539016374618712278583522860555044732949842707040999405046239494051247451706665231900384368668577004811750971993072867055353267275568849343815681365689717392106842450833286497308754410093731890732777364252512917390306078431576595305543557259494785243660217153437868584801556692643106815397741169636752879871022706510139244488604870321822735932314571854868615966606984003122914352200917086307027437325218934028818127913972735981752546162934776389994075287216331589077985763429542668645215674445287234696390479551996820355082709986810068782152963864230828268802305904148010672575400563212834702004505178109045760125182664318781212022933080847967959439945399056788919899113059363153273538173938987991992259678683207346709085540340504016055157617502298465300544914605697457781291454032171456328515689932395212852602655638005262595764927195719237862358632432138477881901531027815925722222300351797452632672919294734556701427532539575070593565307010600504218985129642724466126392038899709011044248007748982739671118802710473595395094097709867436741281908530635956901095866699971063884360990049503201811237800246055630365674447943004386745661328574287830479891334082320765309241681941690390297371379550143189506025066998139427696858645900138007433088901543543024860538347897294321482636441169732806886035497776607246662662314503279145949048911561503856447304301592101307258342303653675929298514432300455860369703573005653353213607590868316995496677342463548992540739619074082552751173308813170384787273255771274626284328249230268320418163123903620758866911033358999410510119551551505139487302766959140524412610426672778649536275465091060535831671531368219728625990211527984590589958087830005130282273137154857283514565837624957673208657992793793257517343450069474725491493590313504666101452158919546918503754217234249155897758937130216009187833614287614082007872432950387387490878497269793532720859085093880795233040184426239102491534768470047571288549995590325883002213159555365682384795206543500442816235735345123124718342919068882334361221971653218373212262579694136357162640400346759195098037082233093436502489587081674820795798146513193719976086438829039012884839622097870040592883038986475562614739244468361011468529886864683864012930495722148846671785406257485748150565530973976025639217200032320935532341444490543539509127996017286619549141336969484204313539994403036762478532235543691424416877709966310966563867466263833860904346853134101412308359127524766606980364462107090531131238606482684663640242841601583478870033138051826885009376620978474298907355974385766989428306344733146592210048551441804691882272837183993303467450645636453919938854294695560556350543254410658420936977178938788864786536695508134456908458901408836258813278482326972446706425522838501614177294999187879744964929162276945964535073828322593365142309035705967995117552503418169081090155836088299946685238058158758244715929079997492611666779501585738191792327439045281696152585376774795858325908913931307786256068438484687408109013168288331587335833563640807233229299524567872673153066744146763599052213723912768150476989254021284339223282787703319232792706230123795242001691686751933355061125166029106076997651068160764450898927290261720230836414934653254448415189889578013882720977460716577221926309684354881602607300222134290920648390763054258591288814867497047032728625626910176131275883274935923827754885378846209348464800242000373475920179794910348596521071194979202267119259922490345113370696563623361242071366386498525421470140336372502348428625401099829432645559938869086701665919663320379057501077998245926795157238847968640180225274351670481834169921104341999114552134878895677783840183085263711437450342161898758472518396337715476076808292779582217706869804063256597637845119902660149199290192601933721656132024449831441864273705418139200770712833253034919308303546774250392410238954296666092812401146233722913759422222963551725886451839945172088259708295606971345663470742124753644912986432539959611159523500593563681752517987150927057501668427492392665773844222047619836445831371907405613424885714813566798899075842784965638630681388677049351253446802854276733721329979342228156402245318729933051890798868902697155890450301261939269988755906241053810484306401570424280620144674058894773914416269765455715965762804093667384341983269697274595284421574006824335051346325507459165114554552440000857314120980572087553943514755893478933169241108885857561465029495974284553381833167084166517248731660543306145953968388934032130086556991256002641867111391513877437264594869225996851300449998647300482650168956199420478308989164885589972074192610500471704665706059089987769145802930755282924567870072930139968663654464818288527062631000519659387991907379073029296588657562345340459251215868782992290051653745123502967846728383778001923142327725980100082373931344326059419891700441882484807049553342916792285863991024460843549096526629641634722938809753821099602929514432775020850217637056058935766593192848903823463929272777391457500197058958403297564684790246316916636507092278982392921674304441897474880071807900090187728403781417385303915532859971020034353365551594739486389832110838988415117978160058510459990881548708047753175254299222154808494677608695096350024982947699304799594901207396656312127102221880406048955609470953645095046061185516548738227020803940028662089028562738062341936053310339730070656733366085346733954432405765756189631647282942388937152590647204741225647061797429169899438700641938471827081573280048548320870231894379441894471355157326791122648845647881594784044571598910991077988534083421408608194512419426372748932214415883395182811542700671589570429738151923680885973247247002690740491770844741032121002940421086576645196707696597848246243567433272347955249236861701469079858912308222591323500938286271010937485119376819760245318609693915024968509922099472079421879816680559667595881438190223368321888748579064249208350825121023476395376843377456623342045340364573806716731160474224839236040551605856180993449411733449409941421309527794853509685391666044765342072810125681833914943199907611660669787913218690011757165635416075810932410304344398327004611708165221979301798241579812197471665757362592344251504971202282560053123218781973503792779961849236541024849836570287945882048795399586464532254432901941532975177627208309900213201053292288685768041217351102949730289699423804670708243723605809397667785551995095457908525790332656200569289856225278728732958236790093671580807731131051929930477222511723015014214038263713084471667593758676424792951253792291704993086626794048719323060178831096899343529971907723655481361190806483223371049063477343278229644579365500663786242753021358895483213045899371547290426885229908453709440255952862033095980611396953139408499751412923944155551227440845830718015266406265424509235028612636624108289095719721383897667386045435261497483213278332080176295943634184492014037303384184468500600749263317147764613493171994735299516460661817243952848913963979599120108032194838341943198947697498433097955731931148408881997510209256327101459223522142111059825386188645899037131184603204808193109738457112814665305655039027344131933759164125182375598090277173664855718923144533815915150557678760854605974955005540499437967624448350350824093371376698052917370531496590256553883073345539305324636303104453162807254207921665173941779920940928211138425343157802543829344741833234985750995238213156197046511987896033129961338382798429754926028243243622046464057518618286238809285001358592062687066792208185177918142277358715082212085172834943024220580193031081258015176551341427467289454566222415891498115079249025195042196865836348956957560282526065015803440142885526811435913762911615700760219171901253448698169242643394096100262445550211447077830859496204341631813832223629946255860182826514232101870403819304769046443406220672529494400245504228556706320181268552420707040677218345169371643349318922665283808059787736876720948203193469340490153840498837557205129289499011798744610410051499743017215731762057227589914504150448178004699888482606015631782386189358298936935894973448771672390737638717256859274300526427739076242171669072733707968977554738507799053793673406497651923962624405401431190053891786745484688355456496502881755457388527625020431472341937490202217605396566552869244671949434931268169224154933405892055806128417605475244811227916109999325775163021662427284344513546356816063364569683463315134212935588625525154417885176125114562876113517705014766611567034795154464311695016007128462746909878231753796636877792757073024467167609326780410497676086022210716607582047818350475937454416584166250455896018449052176805309619758779161958650961765319912385702469476405195282045223793402840709161140690391702458861541526428871159338269621545671834530248025346814364811608108051040541494850661751896073325777068400838222602794297462539047592248051392477150784443539842638409314076836669176382012373000862131900898180690506676961173020344542010069653796292911200408536488464542945969277128499691930497556119770911021176236646790929245880611553279493718902143399270369869716399199543336540599281187907682675513441087527334736623298846520656115028706076120341614308498799073859032691901776277677746905060455568539024786653102734161037696729765560453477755255928920767583066937982251983741052039536064010812470293758113935573225858389126906462536603668230790531147225527919855854300309284938002674462960188668823467005244129450523243505478131371011193645218913400012543749785743684163353220288685656387052073226994275890520897005731540169537417066238602296149343095590250998044325347638232665672731666168397974767279850950722118332233210072310769779987955436607221757646626340670044877995255248224403075284495074786608078524462129086262950239996107286223534404982246559451385223443200730049900929819690134966666620950927714229647941139175187233114136139214311726764363588254585485264842908664886921317099908496767301761785124102798754112330475458998616230840872468291902342122983168738393806717343852771070988485524160131568798339589795704046498572562350895432404361290045189858805045130889337131296040639691804964346331989823866711370008671290939191873076775148436951276224196402077497818472719804486635491838669268331557148680044845314345872190757176813148601156687869707971820689667344618942526564679983249191376698203983287404688890694704869362700255834985008050505153494269153853619781305488834111381313874823752927984492835735000257281688084705082400480875295464747271773250329079745467489820044522120484383263528947081440829982924906147181909349343797427792805966110924888196423221119313880757339595055279268876365238753470013523552378185278835848392586171857298997193839948140949099435102463331021553854789659570425621674445096499163521787221903965704609453788162204706749765506279025817780495264224602544614277541829957987813731616165086335259763828067220766044598240625457365459183993416230443206859894031052762239099720178744772585061500285659559781968717165219843452144899499254301021571716851717841499826062947954327402013162763378147878684228467827395834977634670360331533225172929992264269692476298389966227385613467420187190603049931860779539984077385794928844815873703157872782815166623204801239852170966181223901986148709145635637815786157442774995239521673029877431593413990265404954048324995453109088697581359345951244249687409863733850187346929208740518061846040411664955651057555242678362281453345741685214948377727303523304836489027314327951448158092283780600777941118854827558478789228048893465936099666270809346150346020183122256328300702001965742492078380090355144864556754022164165124082252601598092726106961376601656447046038651762083227855500215937432738594189084727238121236950713639308820740992022909913788020616620868027864853036600532148654579937610899713092955381703781156343290800867547859818304617531581293872652647928517689530084600799640401594250334189514051667282988569822230287971495707391072828369179763825499245888486856563889040108187472306998850491158904093027095515666632767728096045624820228168985465060385922782721353032330578731102882545992510522679489818034330199418260733034934790369047331052358090432400396773962422994482246605296161205220085189752188938901012100594410959480566728757887071757797985727414837722563167795254169214848119962308930171315243742620933739834049308350749103014674836771798239863189605438123111091565146462869518329034134437326214115922718936815877864691860890137607089160057792723825221429216772287115418199827047362984560088459282479343191821630382999641238677526381225756298528750984514238927603607902178301107259774664718574103942128426989374960140772687481337343643047157864912395297490201738668059137162881031454798006968339982017666086305975608821228289949900910876337237559365290595211110682325215784423667886300558374476001833694879566407458218837624810833460270872739303410623764047678323074550403815205887002629790864611300572862730630686107415143183683446738862680668616078799127615192338669458438949407134980328265622712100881897475289239666080564890908813257641576905710816612199924749028482049050381949881997339148963720112190850925922123499666222987937766717291180890121293741536160357342366425970062750451398398209442750004811795374694315760132346381041697394921760823904094794402430766658030187386024521868443286008027880658159489796283942428365799918726998155593470270736736863024448835685541124964513511656611818862875024307970008663599120573552918983535321006955900455463130583505353785368811875967230704344881446555726170589111554522512249255667159524452214308233888813726500409498984677483678967759660441681240964577921613676434995424437520109441365101089355069364566172704690805155879733265875389063688713243997472440750851758547161280669751948547066917982590067569950758411410427468173075673957717790739062880440835489563995566132522196207480742346915876752922763415813198659161675661138415718975063077242477732850136672902275232263156347246200632130917911157310269472783846556821135751442636261613411488247607499197020641402249017700421157813843163824357556871686596084907123470116769004634244606839103277935497583887768448743045079535838530401251332285254019773768349257019167377076321710845609033822994013226155006372938472932908099199462288932313698368186872454396543306105919229153763965213731908365247254157709283605714120478405527632494125845596074371943818666363677806713669939722719225657237899230344203020012595885935253607789994736061498376978161552403844562345333489615060376999636254438465331221740117374592199936431340342219620186954066714438043252733595899267382520743494226022328305419494194150755673233580336868174815925831872136934630722719039541522767112752173231424302250154919093954768247242130665425786757195412597807387157201743174494052330338595223801400642893726171345611632426866586518149132461938098923215130176906947324605296946476593576620153267699410029620868197361830790373076387511023854844382417897427211151843661021166815444194543758863598233302528866095996449921652299769369973988597087826655947137111087077887897499690773979443036236251424386860155404551068424095514974133055248571974746969257776703804688564323161677589686955446672805985332986120190471763582104523420729395777394558487429353919522068989659714272943825049256966193400488527251028570295350652735048617258091281752118534610344645342147930833887929254853952489012935873809357592247022495997409942010771332199519626675051657318777644707522325447571749655577834641973842490417608810273054348908597271345448703816613204870201702346295069306627750360983645408272226838595594645980769164071477697061903821892925701768894093980948813984748539470307517956472260660277878316000629752658590016581519592238272939911797021193364435674708064927731678698905881021749959923657349279566429405585246245999802475155181439377166801900108227156755680908169122203962758267051646120463196946962878159999761800904953783985528192442739968315066665537103726752022510093518570615109504636214567418531723135169648308394409678691631945463904034929485381054368524074795942195982442273497587947877655970633098957847443191335547845994212166055045136298961826881460640836001924387456009847301624933482745856950377619611514174423096777883741237828924597774970061378650000678699339140711425500919667460601836951470328379926220755897604883344305768467382111691171305482154436177028735009268854307143055865441363018092137388523428350758916951806460780931949568526623017056469207790773486256772751848635979193578638476310944576475924321810831382062518025016947385032824503726880142106624537014845093579963756570137539067930318162553623143783664488079787864506823163451348902709933707376883960191815847943276590791910500794945816539092439840055196860687623170087738100731270056981855903294759100326136228135305652274673338179929018315121329308335922172537236614317187874430448211549375979901108970737383314014969927619605866949448249852494488244023951022637538274243499406271756156990515786380771575524404009425425603090103775070970149420751077234890990251232710205340026795240246034742618904342251771637621180307123955873370002014447199714166314452396125330650665783348654087502973334627772698194628079817471024201000267389628861246867110512199440703125171107270584632100604082275972796345340969772472919788605271410952309413561510754427756203711554438635002438872839028532244676285202677066253639246258586997454337643424172891577635331832987842001434346716905062288268650481355500826793486945871197509250256786203753108592155839145981913149016435815705265151554448819188993044674561981836066218339787558891724597876061359890927687759883443414475693242722510058175560022679330825626954847718484687014897747574045991141765547074791092851487442961270664495661333202687792565216537240861221202685745587040610651048262374502175324793609849455745373405333053847957764944772702794326024026614029202171768021089925582475386404125999087090901962357577134433345125706563155941979369170261275672810851083925343241845356012981009259406527851384150761474575364791345014392914999315745769835518550458235249288573491372270992423766879150671505013127289088408944195173899698033257599937905289106913211560459401300955510120073358884224895386367783158692963070961104175051437766510849381007123286344251749748233269828445777863605814827372814358331578829054831570335730581200565100399835779447258646645042025885005633093908775176745327910019447159069700277256698579343750384220531609591198471192298069726209788203838911884413983953287379199449588811686677344562159734992282077742520949914786263736415007246143561013668156082034242839424268057892890833043009537806931522220985232306302195316848816601938543824498783069607681842852231816200078726679743623731404309813305420398441568959936568535752078519574682036305438163517121630539131025767763360827261042187261355272317588272807100430034355354062693571632623141123105185604771569512093876018303369595015550095580867072250564209555085698411135321971886247849991468743808786698490181411740875288360115896021222903568342781857849811624642305813181126412134053990189430715378341159302847685195009455349592160583140315484126794204090048538297169073804945695401659687387462248728603920643700204453200593929628417219918407997159086490100660962900288383299836406187438293596856470609211899961130660082734174127674778326035460139401732171199947080011550598729679597554054695497986753036891704080454434067514994165611024442999041276211304407821991176984982849713345125626390998649594552030245508164212109741671026203121400361343295817847278452813003314075399054550802189042195714250359936532817754545322679264344206357564631029025012471075708263537370677528065838958753512947451763229245512038722210124963626474587239852796044961021862076735604059244621823224403764348170948333804218430550320756129383336794449570520801325066690576914981152591187672479260398390650878049129023572809778744566385628800893758134366190037594315953865421605041096976417388628971157699107382869726466116254655269596046044545006437180442647537939297681794016707013335930556281052132414027315580170689497329487916485367868131039655471521222487369455840745990594779182056773372188609529315634976120348042473586831344361651142506794246451560318449745694918664979961398128634547707190994099371635033018874419504402624645810174392892998082003246422782506200906232687367310894171485064440485431680287596407041133074976079630279191339212733916245271865151485327626902180241109240258111766990214529447542167477556647973320645962587178668226763026717041015626367035835720021880341303786629791141066743808258608206873487605438557841017466566002508823221417307116216360654509082966508568191412859995835865980477442798384695537135876068097970924567619539327929275674840032433472574866306529551030983796366889365559602730269252111981751075636379731827784823597224462200085869424389903954299096246601298315681307431302876133573804700138025411013255705920754453074549613144352085931085288596081112817071940764038616465650434543799738919715498776475796919810156984119746163227485527186280841548145721089367776141990736437224143354885852422753758640810657293946562988252457108302320338595457389369433930967531846973828162761850769724167741714564476149800281149569301899111985609082587813543698281309392641617418976197013695402519901358260631556494500187062326243148475199597568771619365480946484386798963170218768402232831503215386663114516310003543632625248272447707610467018622962431172560890782027789799622040578443807918843960957078506024209005715271434662891963617582871948200998065795313339288507140297023957056284181843287554729122776998546723493645348644899840383075997670223572417463804133214835448485490902056931046445114620213099775621819516914802925772230225491183394236564759125111555831209989581100155373743030264287200168691901998119932335101946339899341495264536153907715893100712623605431461591446308787962052406017541552474054641169468725998221467849210839814543528318105186984452280166669532686138715949793661136423831946349500483019564533780916703040577564922942842874900576892011606952626490594607129286105556481109215165426846049250178724428361821156766852759266540407371316368913107075239904747472412106915497445163062632449292780987331214892062859443076413064272581996459676779053072764463200800313204764240466270359275990302520562778279252806688529904135066844002163398677347160921163743490155317407324101667764591544638685787421424336498883501816390740447138436595181544425900791918202047900258371027012470620682964481162449945100316651130387322251549891106554843476700415258585787681954702100778815532961727669197803267293709629496410720492171938157136399364629236754329341532704883213954676163248445351069202853525732033137000058568257388191104944777611515003078345498948393236041017243190423654612489351570576559300908147087841377458099601578513599969432177011456473299374218559880083137717543704449983928124763747126055617707235264310856096542577853407866098437535743908577690636037388104077380360377067926814529782591040005544255519535439229082860441901652631659670493838245733621729489545136037883568092271148722870635641822855556143190431193090819546843660163168422130050197094924639304637918684270457373745284257907556983022461909362086600094937855593441309386309643449349116323831265070814068315593111075372574653927823337305277201879066791420934138486473126537045872964549507280141346595136266540164081033312882270837918840161769428795836740358175346029045489087586822160925318694552621852201608170176936074412003401002721087613104053521163552694625545112192940985831532719063867499383249915604321644248585186901030878064562928439419025170990370054750197432533412597563966429364670194169267330806730982737660416003744248905511818217338497943489027804479330067000232185639143997429885024624503978235245671896420790584961904658699583491744491142676728833411924885972764852178849284525529687348008295691626155435664532934930574552215660761522283696042692616741538026796509659883270540058111360754339973319720333230158233552113391607703947705346814849927002053221857899578652518206713243044279115386066066803195706676527326493780848547367827711767160495492306598133387360185912741259108979243981071823542609628357670059254021844827530903603876145684654027650749963286039071914660294948611232323365690316947803742875651564535863826695188319225703301307671302340273998255000904396879963958713452900793313927648617867036105562429874282853000881340379373199629576365286709608169794768032710154392606501654321169405538694548092246127949533315394159430994491532961421249281713906694111668155617289031305684992772387844328268390063796640831516058060195353080572763685440095790048336426991674417706961215523207278125250002263566507568734791075710022836084944523144444393194229885162389590493210120744558979141465881745121428276560865223452063169219014762206853658053768186787223255646603087913186308327072084570427070429043465318943768371873407504579352744106468462416509328728948357520810805016993878136643500252182409837919750981405976593043307625347385653195518739188049900535140460419481179667985301413500084614047140845533582821239892381177293351621370467057714796691952742225772190668172099254001126627824970716528775616031168100839535411265663306113959484177322250458231119591569194671119964360696809077792036006364849461617969987078324398976920584828840664790755649722193440526223016597474464110032248850292615589287323277229201749535779201917012121777003669736265222403699277028148118845436443446190175007696582703865379558853395258473823539684375372390082013267772905240078928616403963296940512225253170805698801064164354731022265257827159985900942822590923471257232862540698792792043513018339524307571077076526052703680837908184063799911211155115282308609398152465604255639288777802048749274757563661902988603896173871340803510708415504683777257344277895017562450292403029764142132059795598544487585967269235839566169012853259654535107478645917017494391337727762712411400042932623684701370760190750571881910000750184292999002858604146035901508124280845906136686801511271179964343961578709541793464389403491175969306670298402340684612875470962363534110834856896806482609728211401966766540754634023461194001959860026784251342913313495981455115681315537734943651220632998053836435807112689382767473344841690240000001638518675345306582365283816472870220069671722863108308135796757945518152243912677295297824449559067002190393874788073851234283188733915619063816994315332338520027773457507077954280639009855936074359425537597741933357633202692164885388323875295520756216960719386374604796416693558670845229617527268804828712783091145812980735502447661359680847767197071014807660382227858686405932499335880713307284474336364221935514763598724785755053592501350877264832745215623225823895674936385741045797867822239012360592996336937992506177686169175451396938851500972656459358295547537287802095364166539209764668602376422686216130113198080644170700493798259571784751843355802740951153764436960485258778175732524320208329014934699756219787893706959365455034549250486451013226051710310001347127526500992099329452812907994899671405722309432247502663472405347035420209360558896390074472691819655743553969017605762550598437178027403527911360210515089634397676353249596467420571055181219151750687026779237126382945891359541423234532433201298664469745702161413300939005345587204833926876456399067289803827796565874994045094188324121903387435059966840112707781999839637060633763233986263743714573011153332477804162115297206385548385180702471507692968687670671842385013891336307005188669088036789181377655809389469154372128795556155924002239698237233478295346077319764117313542758556367195086334028065208005657626236727551062976563109184443411751712463369094308101154327371982817028391964707157276472145341506475182397941233146949447022779352394607001212108766983386834915659702746315625432543844323337990186361721513541303314859708033229670905437178552457446459159047538813871765416431361449537843399543306955141258201890142231713900104180780089702865209430310413555552959402281810654574384295243577520341896642731413533762652765093151887633004918731458399764840492523743676073383037529322052812692658699133630873452603202236079468061632891340882366680253699068061164151028791905312615024915001881570705856791508880568675466849622274307576162320777706275727459634671650255687080913303000472261878177582202805081220747319346141998270690816413046742972587651957669789869763029045548297680309333772077887115306282807356834212075522107550402414742516829323558709576094839905065803945857873364421843268748299040017734019933708890461312447297290622544763451706333171771630928494595109306348060314695872809927107981205879639482832433759242492754072292942851519086052203851607544273683949251876826080495284413848744469006509077182508477537558306939401961138691452858072057314058380131941593145462625783702717069038678342259505795615999595480094366910916686412921438284696015689132008330416330915266570519258784504688947392455624288415962247683973986748928510900879945675495512222500025513873656949600370008279358587599917240648923743344562037875536010960726166507902087617524516507560851783560072121147166325746201383926435664335842594528549245360417851603391403082712059679820420045364795752588125803171421387743884768681598642000244651430330333388468679290613068757885005476958902049462259965077995418747978479991402722509446175868214125291602168959056935629596686328908333494992224237913200637328463241222348012018118657919863256201474265943808709003090296307003245606774228793457108362256380317725180336755678299099476348856055241941301817596372615889803355505597088805543499685789243133287996306594888154218138754722090150953063672283936768417915035986308306170730089741196633612970886373536196890742488606235334880380743133839744239910355277455131631383082666098662439909046845022446974597704128084097884070803779265937932147408381257409527581447658721992216430178037962987982823667215061959344850436000755695342452678450504872898359866650430525939993824519032825578820221661834517918736917928959592879059938485148797865307458519406809063582538168621879732165180878193959137340771302752298629996099548718142217609596653302493635726741991670486080138028041303569237995471958373483064071777188560271656101685408353252911631352096870431765215852445072697467008313812637431724991631287447035260201893712704300111423104025609397579170933707343531476426233014913864587807763920148400144688398637224909457881544695309076313695351868527650015657170251101989874873725596961797574602208498197417789049115304705358725355724399343053924658953267041972713267092856286649998369413858050399996205246035572265958103718360023651020467511589291818582574489092473460597724549506764415294233771480582844820071659350352094175694211546501512119510775933337714455345796968291562235936485863997094163572905293238082358061988485152482552408390297014497998178989893331672456183272077294258956263413583873839719005448450263846304834554555005417831420974395393500740661975756291229437011186837303993853599930114316655972179166675417292029543639621361155417063719567111466071127695671892105709560349524489338737845513194163502395603374087457205547611169289577789327471871155320368679991871996683629928351250753293813166240141507244284086060311305059859362566133951768744263635781346979348569611125931214308640897104851390335925698469687755593049077145898450938610929351058005321724546411917682804723843394659873668269145150948859377858930959399607809750265927647547906431801378498443778015001540823874272300481404299305235425974154330351941521768310428018237172989142895144784163517447039248401838350273720027185455454254014628170926006056577253907832386243968147255717882215847435574082574239603943413376887863333428078453536179838944797378577973884135873468413325704414743097742007577991758792905717645494871198828480311664331046730834374223825204875515387616140481636133991747037277837246486462026893919457578914673567260253977318592087115381352504865011943042513802753748071939565366535137011574128330038383759983257257052315791167622416677036552925339081901928039276701076722750712058677211212932433539213376538101840618080312288577165123603775223928278467531271081260022561551575468005460146650645979203060573103436696263684894084479764823566931632053128967380925724419734372422447367348824289953598177610633589681020887287996563089936891129023946303167437528201346160433014471991914694047672002663515310347430256190266925488998545430151183411867140149433130201498941172708876063633489787584372162662667489514388328493244937709569893326989787554925236727691160851408123431019447665817081783780345324454111169116023737170833167223222158913186107206287692810449142395840372759090533235173450056375629335865343854665881650574492209673699524312292810179929333040354325201619844769529913245237893945546395858641534373326873581643215802384470509643231292470412035101220672097712098525719213134123654748437132149639374685867759394388456028569573855174620220963614403135665909268765403017684436050586345915727157520491369343528109797790078078592692583402922597342601704311257176284418816083980731981351668638093738242692911318131684641985602572393380744308598644835258317294882308805379139015993338163712425761949748749566163034857545321214186997317549454275090865621807851406516087004039631114693478224917934083817997055955696206817975511176997886771468817159236004042321228992098637174077501966968880292711551012819648349461071698487177121997432280145129918827081950468404021100182424443487071261505507226312534105201237709296499139450124102164278387883963910532617070801235584034353648618393963308858060952888308527694995325330823140601025910489492480209245780367631920173809009787450262015040345993751632360752678646836534682751277536100068748773402437382057684857477743435760359782025367244486878038574601445866125833067642370233258205528678883265518187426530103704760382103989009792436249720619254970341100757601788767414371750274601879696127404458541578754769884752445532935006771459037832191472991893989506656399418157272356988860791130730976838695464806584958516987084111844638061467804804401841781604740305740745401756691998620176559690054972894933229974755348439490689383047019482040965319026232250415526991474875453168823842193179283038866960884944268221216145309531996668714699078993787218041392497086040782764074007463221240722881203220005551215039004882464335058816850680891797944418061738856902770818533205309965656155123949612645986679440299173710011828690171499037446150665996896434447418022259528382010794536912305319049324029778411071547974270291715189530286926496541804324725956196733460987750392822499469025850761159953346670211253791294302416867460099235885670531857659911680785502544013766025724589525304264249708941373107959393909679639658100208958032912783674885763418761943202888176391042402049685298412147868722243555870936201116958259221223211426952068971742004265995262838562785523688877097147151178090373648403481599251367852045520304866841874009713411168170344956196593907331458048104347756225213731682823756024628429187344642876780289750508071452900097012029126068215844098791981051700031985739490955018892917963118418626992409516769535282223619910888956359012962737412411527688885497487416040196884057719664281850040810144157970551422012302313219186968985143488490887201013931292181773912249380368237117928811224552201496038057744115154067475467834198174353752977850159521227264722366228742824291874222120830924432757607865285641902318882741318603516741771678831263984967871504911714687625702005615316894370683201432813880446818268229613747604452904333521890334753851863037165417258844451516933534437952008230560286003295914094680800107939023095617061353223748716539318406866759932288764900003710704656738441141402659473769719382504438649781516510811180924377144746253182013252749970959471342856281209139438585561963109835443552243347606450546190255057164117366786616345323264214377002243663923548233371794553210097577084386312293089379903870090488486563124573495839137601700324270807057699835026701283602441909773363918608836397495927755041548786428985304687489595695844833412382869063224036207586730801109104562631227163450558540320896947218593966042386471421216107242198128675929559066672838747464150060453617158068678674250393292488272130023760757299528091762787773598171949633229558582618938342515735251036182153068514291259089459558022965574168904459706810588325941341068528379489224651516712115979774120315975782606182771243052437933140629182777893516510825991166834885725338220394230662194795337827003921186625257079643583384259890498137515963131193621453733220967655369155949710799969054098513908404899749957501368583140880459073011582083213345002148506877488957875817247780710464495334511658350531679719486570682873114835589901512272419936704722082420353052286830033546873442944183650961786795007788473322866747011379533768168250513833268220185991163974071212284221931119136136143647471796720340587104419618119831504073654363104114718726166876650309289223953741443277474207279584873720499314561704847380456425665282108395741216896295637772048804385825636702110900643739425027319929477743955606190096947564617518325131481386674900779250835347706150591763745272471579459482122134038897282385607083767258240728817739123470389453881569285749288406943636620528403423133873854453057892033313744187089098901674939079135153911238684072064622935275895365599373395135933210469563150336796305692758619888324339729512269596847583856878271176178190125795478019397361098924692661788300383787786925364637039358058491694133940127890948532761023473120575115711148611458411096532290448980195251440330501228608664849963675903058853939340419244225225912271280984174779611461873907744166805773532530085907322868923405538405271741136133469749258668312708016507551686105125390677866336820393432703461057029954674618023978923058888692203778546916182259255328512749275503344194960874132576314218264134950266914418333796918371386738475815671269029601972764934911104928411644463466738828708574275475964019255862842561657677161707533642089995176593247651336714412214838035230635832653256991557005127896349022124437506553021942784005136832148234572065659678646587857801464560991861107367748185160138390281470376003747892943261066533938544255933296451578121940617749202384036633465327907991295786501046562041248130571200861460576686552243396376814272991502450946559797487721528121048952523750962375757813106752343194508888667007179458849323866105988626026679367751601691308480288286358194694642131533042058341372660164246754576091605255706797178727542751449253246480847361791184506681800146604584048489648776763559865347300493468582083452121913110686153966251698398377667157865631893784551867839347305946517041069331371405505411797719022187605029715865366903978097108137550925139388287689059859393817784146393665854721094231553478905777074508072764469368431484498292419450371382658026334288094873830752518016008710132761448457243120722856352886695529225722309766314650362444952742233986537092656644749523024363597827397320146775571121483643491719347660436606136365956007817011069216982922992604135250403778404012917604550854416431906454228162188053826169529373035561369329660263818199922801640394507917209813717490847774834933846172017927563835289275644161017679078034207861048861151046335378309285644764629897285302835194119551477871667037445817526555250993727578021798652819875185599367766085798476941447046247173908076466407611139077446890631542982349934829300175412609734672834559318399515734882032122301879166765899018138002882262122589179029479124207423161875828955486804906775245593676438695116779560161102574441334680307355196071328932874740578914564897750161111329907278167878233645624079998166802439353615304172922322166172325551604647228414796814634884702473634104671704109192370845399830370145244241965035011321983882907333713796617720353846364658354186616420706956314168483770195862979653966040391015559689069814126151037279858888817105554296773946102460872169115683662490676034022033001553421007863520680177932136420953833825937718186142071276781239846531558655531097157287452073958953894575127255699553687929845442618205584988881134102229326588498124473555053456965621628061910241866997369638829520762798875915238258423522797436642560196542540453249512888115549429374902626547186696243429688212658840194164280040333273149235178267639857252887503567250339689004943466967404541209423832759374345515461384563227316194550999781715608423210793953893263602993126539672766237336167058433567840010292569809319579379197659393040145319784005839490371387659940217017334029863354000019957581680293696905163994524876814943831260822448224347921791811992598269346788818708492402444348459179201922957371335424072951544306425997553159177871538199713281952009397272785383922538847520167163570384544961450547916664218014159584780990020162077806138577743411006785666294842915855250186767699098055357918401335747733910515059101819248688021755173499342770594118882349148498939249083495031156604738074008546094174908592165636188785835099609564890870946884530122273644076872307027868545506099442288507128255007128353838770301354092404737471221499045623699046069340470735674837572843544419377899176897980238286385600380924157414010844402482281845993494216764217258250514946757524010776787898372185020243716226422154999002132014338237260669024997536855253262606748905775066641126552659804294275252991021124184637886284793355238129421780154791420666142263901963642193613760599498342711207605323840366852582834486071124832325027821951209174237279717021698682623687792199288689731449892716801250068029732917891353659413581305694734267844384603357804443070544975205267585551339090304292957278290745993003243895495191962707451474289023583367896948145443286905028549168904329938061185984192306948635454289510080518479781709515457110897137243016036293488214165230486588341176038584966754543694797167463959642497276877577036650629538436086278743614189429218549939555686305279800791704843594058462832570731252138999940763963408827695707961041349569335061880060502839954212652144453649074036346336762697611826513260238411954800541761570840527273113444239157562827448996017308923993395593673191814305672576674301943890656873855049787296680305406630546272090170382213338618578692433472782221534877851080319399024008895563473667604067294653044020609817120088089942534575975427345761740067885858041550613692231960063288147584895977529972322229116893948322049628587225053637621118265288226238185293837655731557300328352355238850417669536962167494828387372252923360322656358446235961389800930474779379340470891772379901840914512448205074594402501054822400282903415370784610857230029356676583976410943109717600117168313299312806187534040114057548737054886765132847824079747871330712772531618703449075032700766552482705389362519940833366373535889535242418704649107643766473561976884628552363012916530771854429935057698611032149213949135746362435911804492515659626093568887955135423120075730515124771788794347468577030161300975839564892914057577510015387360708667435256929343640850957735478199058592814087026796971797978064187823093768971400620763994385119273620584187046867395744619589765516858588860665801381323384187590965521190455802480483763168841891980844605148537109057856654530845335744477404930243547714822040423392671096418825221356362558352496520679164952511531977720602459098571262141665019339838371543541562872886153841949508632743119764418163292822350438403589412678149230169539935559267056814504988827937818429501143920579429769080214977345416832919103104909506190849619596658853265208580312981523375284927338808195013845705482129356739771683502857294292200189458491408694919095347907119698981721276703062660591262647920272245483115777387812958140659125138420609452237102547504103735363223464027444254943445293495662336466975232976994555762767626144055440267105113047851914541073682662891351730572688408843313716075972682204743032056074888259221872889621219411147221772925642817937793510500520304113383117845858656012406937630425723267847040245481738139755119946235088202608388666229130740723576185188329019282851367474797263130865496568185532120881971890792013755778477258829673322499860670015334525490210084850279957244757976921685391238321153477470479678244108724238956150256522551972811113721116527598540002660082578697211335198546156475354538672761006505195773074286469935856530421653086485049165310217149465667447694052395917986928083456689078524102177723393774458682034683288587258622306172521003487630459559808294735947123275632955931070945511647538135762064894161964641530424013684547455843884994312019085037007483591200451806637522018514928645617098118448499897311759031597402845128565984171078152309192569172819659290343309305123260530004547493276372081608050137265558165471674089604321501746474080796143720541066744461021458220864471380132275885541536861946389306377419749016549893840946493743049878378692763194483510326047813463580142660018295120406723842918054166496317969218913185861732560863711988462683864027220708607661016027980847174115887706631758582153933584580892125146753665763452792821521659231335396042479807877341791466603978678775735703654409427390071203331281482498293784769114219789941998609156245027548818627493815554090274781824485627928109606056652009773247746452413646842146207991377999060980824454586103898374321890497403133436968978882239547988623739015035969750801394343624561190796399611882149613201502200680832358441740620843750315611084240832284780974536416314062630823220607461476026791503881269870301210757371654301090325677200456372777898810925102612176169367246048274306680885429301460838694133871076426863947649423317145200705576802860335191847442400321068000279818723886709622281271253251318184031480205602478673141015917692031207407553558702448849180534585146821230193495586939379880018129430394551231890319949717289348088592999023862516306602441461053499457557568556605229506596387123109459649677425600288969804723405743385772959965556428121722565294130844778868150686604363597795538165238016421742554770738866723490677053749545965913293607183675783281936947049053504413300084772081615204572792459398327437249682640586727988939577722058856593044777875644415210381077218072749029302639079045808036173772256486331722104824020372337302306947188805662045846757281157759127253616500048375179483248844681113160479179383634554558396062377038132273872845054301590976180645096285357559618162184996553239591146704047012961082859653858847865406602990337630267315115381289268240611080127544894268166615783626127923004519141371477810669966077366553808953593078986069490767753477151705548151953529675189645547865586337887686940922340548645036675851471035455338417111083298287173399622403146726876385188786194157218806282869345959735396714570762122456948307247633704689397464179416677335140526910159473654535475924247031795357619491015836232858105605093336162144779939602224699288237221878938054436078065024700334269980757184852596408773921818196187564940699678046148449237075184289110670664372118182496576400870761268167925645469344343097665431470837095366377057963736911993803005933131627292967252502007012533338576508386211064923280617005101024919492444794299906067160503844494145418692338803214532495242145062056903812157837994685941608157086217240607159658303968170663088840105538430471064399456817935113552551535787697570864414348728150813617320988010304774785150722934050858294150521546692191073378689221920210275833746125290868439004941217141744560427405104845976151140868696385897510563134129442239810135347920902295692991687917501528999808092395195919903304714925315922420418766579658317646894857894314113088667984015503270247753021895151484526014196312830649610671821843273464693852462878112190967746806239482081788271688056846686522601259824652650280008560269982279272029670818268275687894028435547487493047460639274241257369771493843707674399524526475900329653322374396264740473296079678889020206329876679740192143807310301030830633886542356356137649244971995549210426861639630273943255175817738087407557604034708792323740387501718129655559710782561508704624083795121070269147097689262634949397771931454892176520202006047913197645997455370297294182414066041486896650713737538876693253906613065310640384964072587987649875174028298689821456254562134654709115740860260471345349127028499357980584265603098442685119199819059466883934030165374842132039261151987274182401738921776689252013056874456436435096076392569481854005256109985521815012618279945592500289320023905150896362718552300818949282176605880804378758891738476740786681140518074222407004600478024227649939272283518672696115008378574311063800564715087248151167650184330318191079281007803978414464364134445241815609002282370241910258985707625649938884688204829085575576309344119227321435787765691104518051098636782592085195088213957201595613156904628035329710757331777490091526276679956331382678181875804543517144653652455553691040236179507931537727904802430451361627464882093944974917251692953748545687153715727805176769823254084906271326809326204460455246470932874699494485689473949341747986021114323195066530350171095297410968659706852638273670792391973569176946551625051446845783814872618852559449641368074138304853335859371956674675236081172408533111714309258058797521613631714015600800911453364162115902190399966410801850647350868303974655483635196157671743670408456180594827011471098618951567031219355523182597825847671701329264357460578386089439168744629091487696264762607896901369506472209326006314926092151483872346226958682137348831343769323780689523151107416465378083606212801749578433866306176987474687572900330125256108702470942908393746097651977655206422640935912755415516812040320318930771555424894806441528894052111432376900449147250311228158174963559647861111281529792755549276906975942566765876310756811061369385963582926563245362930931342006800342635280028957048970923101575465081248678166619188632534025977318361187836799989348476783849140321705486332521553706882661409833183914379288408412450211879196458722111947878255332154748965794436250328867335766489564112643733737225529825555295410779911094116667037551965317224239217961141120242954764413518218738877662054805596986079756461871584400829412566970922212358461708948618907142240737485078463800431275326198828657756169599959833122773867369460139601407265050358844639366856501227006249305289234766820554575482332960173989867553392706107919936407612630426028028521577327710984181399825728172064961316993628036016178286708215472446997620431717559787017061973023402225218247657888099691830212718754432234953311805089508655900577796891079739872912227972404208128083361601455147756112618162252584801684698523875474430123459949887340049482840590077463481799422008901048219621836577015448538996909068565919491039362958593127685285038724485197018051570535425254964314720581187489493086971747402342832155340330201629782958211258827449085963666109133473139947131540335471559432859496866455650665971948288805944620663421794753114718990640553990207007161887859352646691802890367592782830322260774740062948468668877406690601991062352480589209407441669443252460216712698030626733266982518854627618255734281023038550019138993081810033580244888171427974138616311704100469357663634700831427399636739707406283772577609758529331975706755592748335082995633755628424762807181123957671676953614614513268190855801414837375119383820796682837292667179046051784339629069474549352042070607477410975946646102831540639127318961272237723136646064019176237799827155592634572709671484573604335771403082369721563856943780765647837229465645296722950557009776733627451251557150039690456735198152104843891688942492522498064525031693588962086063574636151900968665529152466917829400700711141484699334835037375236582554301584395433032854159228373600209121047302550128422989690909778806172036942179820946184285971794289523254322227903853329941916894158059689897941811884989656156414758903704619993769718685447840367658460899411300405912151617872481646174353232899769405779502537476264191599517734012272400738756404194853495802120848050155421390140334587228720648585957929498120485089265666222467208120744899927454386772701341524566127470857779720279481760806574611427233864309411778464810693971506105311057465987275750377032856906938917056494365637490381975375207524056608058044115923274604772831119542355474010616004591335572202246999527424564091560218138255382709622265241722808974476308618830957774194097365621167419887878956763096175482970988312195502044330054094738362205278671662253327083902779052336363886783309517685928132225153709539599961725735980378070595460934433987698380316502040815332456521409379676375362032994378463832480168766411561516661546129566295308024648169109221403529652667994270347657948907628726792681765245935373939932676875977988559353196349161175964921265440215348020099205834983738717719436607214694902589272183066728067615624214990768479584468754137752186770857002941656803397079103263660477853819942428789239912042047773063194463507559992145790063064888731864692221308342040662242426051319262429225472907490009931877163707056555661203897415300467924601305743189208932964041195626670110949596760922778401209419903895382384499495168954853564236893605194202668037251302292119567047712401739499332220278018312056739361484989967894053512343694394517744591246740851475560161542670969684860782557063847555367871457187571979568371208278049760619211543896603439567346854435530487626393912942705394603951656876384643494209455690149873778699929447294616970891449278302952748693537826850122672649413916806076747523290064369968921361499739163175621841378538179915605469549766538593436384156349316779930727209257690012128035901229459631623652184630177045884627306387406729454785375953842769980111190663332206618299651024656477489953901101880321257221726483655402782233664128898843896431504734931705557220024473608098004525842866511123124679578666227842009729714429652233696456953339821348426301428065068533821884909486366484735756384735995961800036290093426763755304281662590767434611007538324712453242298838154303416895621899289038992805945560116637427811585043951709577279987985622985421264157361956661379204607153722130966716944943430862715620248666240647444138754343009338025162819378530937843570767404857336674882979908481915021622395696256228177282931337842509709660141197984664941604350329175044118033738483689598932949080621484375773327801137594970602331833573582508039463123813280622846030252530163640679003418738818793619865633124969362757910586175915512038949547492107773579828763186462574378915514383984703506666541859834306777005584644047204045621004081172096484829325337062854079792312218854512437362879303989618388573439458170384719453623620976170351342880007591496710166259712023384061772778718027333333149545346152942394434648470335268502440110401869049271509507391963030405983925462720469779470530067823789728800384284393516093566153283854300224509586214194418717168497386501704397609946533834857718855672788620284067027507706974241695450698167088113840464669518986177931300271524835577872510686080817782827315051983769375613261355020334498766159018226964531706402888874710343033463745245832996230871573849984774150171579320621264646276672713481581263362836382526164949375542817065584981035760673005860818278548344497920738338711992483103225743545207439011307950881461301793740208278580950123749798836721379361890296469430971518304972627860386691467836034074907904243281752754838497645844242044379841073589383443379945744489185138428310562940821701581196148943995100486004538671200465911396405577404242854709676373779727570997953330068791926133667704065209164564807907995121468358602136080012850417317534580804027538202505629759795916205459602524137097018987911896525887657680935696449698379780303558011718054041787088787433369649029585980574916416892158784588277197773372447744868609794749785078351007906888177126282556853190549941197764529132244276819910835491162633536527848567985094185275072023565977828874633235502102313782051221113921788177383612730245890429080975386700970806312444650264610421205828706247838941685910764929168302896363804090612449632849795461852495299073926848989792816603417621292225704923233778940772719482740461808660937298038472811070869018721908773388422234589998123659006259667255534028524912178356349339675088720950746832188036800751717251625171233564411666100861463863667356378424586853671685967204116111779671448036749966638998475529244615081621979676238594032172120884612456713599090050099056612640677063655991649473967571758394345786301073371307229834344872757201879451765532395406357709705733047724085476357233808036554996689412811601909283677782597379266086362962837460487308495166908871383081051939344143961356320228633977055809862097255526342831799031607717529405346817635382803120028635544863843422403248775704243977267443605145529497887611864763393967017070473254597697231461297818110333957583489389271679284675395874255544676669960524883267101192944758366000323233479226697428566795346663260829932400017513388296251990901781826797839033957578503904255852010846013724585320377971904824082625390770079087903717852485394888621190559023211091373180493971100972379785422435004621857027344009166876955677400752616880676466679648341887966916788526712076936071757619666479423284288601308679820329002182195257593528178942434871469760603976213256778450300031499544624807229013370589364120242761074158051988084345511786988403261578619713208201261154543887798558693962200528773674148527431395957219214384878012385442056033729133273366145280745921755890646685639284057473591802433722920568606402075313145802167693078362160991999876473703850350063531454209672334392825394808497927160502619062433536011425285868585161031800703178888248251960844106854966386238302774977491990295071223206508127328084405366265042307428697056155561786883128766239410086646604242088717515822354575537682211937712679475448193270343083453257650995610226448432670841062351602530599093552690099251700355500314982303879737020450423957605914824539018676178082872734160758847812886888766201872119506970944713555337451730212631813223126807279834508204819842682872559472372580367230399633058559762153851027322534023659251957573778277609895692297302723434389743787418853788446689559820270590750206618037591332173017024763837015695005504745249652110211471579331444383504851003670008255653418260193077882088355136981797261654960261661065851450456155632815968506367534955590778064574852791708830602469393418686448700441442346538899056212454071349935279513072980320123949487614568012008048393847734401738592856721890330052907090305487590899256171275829187284445645488617949768407803647430904509577984511488552122509996034763949903689113321632722562039609964151417812280829938851259832126418559727215279081062401189592809682316116989553897850848823442048301936803696776095688619221505192478035591385559767248159444143174708898769728273328594180543039664022242031412843578492347575781440962201922842665836652283417150833529452961670382785364631817319073905828443414781018938400649781595126761034098731247387696509608325276646574752956680275000777181059478383117776546411630152769907096938109349705601533776238502667095114244587825544541114034237684798433035361087655589174935480999943280260599974990719301469038004522392133063944966715049032315737083089483611331566351787631999405375526671911706863713847846555410165762751569581874765178338033074599463020898187078251274358497681545768092205272797838461408975721234249424802651248914662349228584557857710476998495385537680038366035032867863388766695571972786877796654980850255936426295037399194872208008663513789607873831228705107802387016312504870282808083718426022011912239210972087961407249668341723214830488945148636447044373143733524295950385813107620210712577466192816577231630037041285364234102264629133964997582983619807120662244919914867885455107489784224592240860696306527531983497949030399780724025370298086014261873824052639738309195895103038776195164757447399080226580426047769665568330054935136851739712826762482750116069579543438814148864502767313931471333376328477364011832050343983364674183583556556423062626863986707401309763154977017430968275551005972592185149620013621283768020686178508903230157572435949338975813708298489471715918566630958105633568976982935505733304293164570222643996991338538955008421550344203170960346380892348378718311468474949279816930106000361170138533380022544660329939939997965577887635149085424079848977970400751420432860164254392173291284021881848696950162957490527700498006068619050624473010962927107425376364864838577141120505879374221094278725370787883565852365344598747388363836852667676475474169077257388736879433971539580267033233600818185860255217654187341701056411176816990891094269414280067334508564899194150480561610851627582599051488346534623725263129398410922575731112503586953006293553146496085983994784987080902695137502937007278293387178480902733869721216261742486907047558345328913248113800364208521244220667157069071478423681089279776641120742881353009351000607530131986676293911227818758565555116751198923584630346800522865322288770362809931998209053655594772889347014940053138974443309539661169166431982955067923358638938791626390829267756382222402489159393780474397942833218608986071760253041181665636790471398442709961251780988121854194580163602877752520371357837332092331054262852578457317880141810964909286854889067595867639276976116057981675813668793628585778378783970580494346635640814810122510154063826404258858689290223005723209134081468975659001583152556701662148185294864279374998508349204478982688821735924232704266614634786572653230567773530675951149115058155438443758017417824673841456516755700509288516971319179103585795322012698987298538253874741284481072207954390494458000288749840780458937272691783393133605442041456978680801697006455168215771108104426615210353162096497216650878348495187307365731186120994916286618470566277010559216537401103988566284165981821597326083888735122442945114392610517006171706373467736921263115017837775197817802499766538066213782903714814165111787658793627890292001319947793044517820482873990959890187103013365738931409040867776340323534012789763627686319253668570088713546533763422138173093078896378372196770688119518569745736661428262422684168380651399421325889218312007188402318823451100070352168285879700390237364084449847872325195431275414601842468878466059933499434965861517136023098902704329026482462389985079980789141857978185858971352202844434365420626923879516817179730068751089656800136449826658593329109230360783923521457016286248156844977728691957247011667445323134756970927403521229675598150382900152423160417504242184946939415466033021954953886626398580776429678190455143360271173036952329694738625475491757627366196009983893247569207082540988126726004003738948448919977054958131595425041437575425282519783268193386743139357668998446181099947837126876185837601239217467681997943178936858274040196795545031747401236528884386519065228386422778555347367725050750094872732080085954139660566776317503684353892502333763670478403865166361518339364634038002421480595852433916163882115915697514625742563625497407984383450133267669069878018872359563321107081084621374365502615082021551925803093394331682649542835271629834015812550839975668649703159040252533503845527139326051875456731682720850529595398589328427148981013754815572858156442351910552957942107493603056424051075339156265139117989463792248498036453207648018026972685267378061008484011129963105513486395073586750343980714153724027492213235207708979385547328383336918132285175062671115250211472236097219459110007484196590599964282989791956209214595580978317629834523284319735718592576820452401112030374002101129829317597910051300377808549453997859499561112588360847560922644603576826517875327862709614513885825926756032312253518237618002654029892709939536185903512067595022885805123848539266170428770668494663599474018611500255237644438257107420071869988011919676988348220344551316034546295242002135824286550878860109963484058929380167315066011513697509937970680341577974058344974337944721006650771828793656567351413818999137792656295570424376403734749933117543356765169212043300218033238097574486809396688256616497259486423417415439592623465412399322154372331166755524757954786532485447202366705601979670725846362305428677411144355754725470141672222952547498483449374922352825473416461323885673368395761150156048652573445520618415453445291211088061218718771036802917835721281838104655883631783926768107929004261549171900737298929261415170649664336862836668988845217054878276017380865607074011818577590847833303022779178205978773822575031997252530267175801716458701495293664855178342005047316131309010235121458481682663892445785385966219579505964856186287387669104063698499814182292805783037677822701713670437447602614699898380951145869875742181665122209010840958879909093779205131070817293305433587480871096119866788880985717740278222090592330658410438403609448833730740471025948276414006147503717120176464949005106453159294864471889793614423858530734124456164065925694341368352433874655227978611391682247956892428457259209200855519977037603425241672385727981525308679821621979022346151354864844022897634418065139967850271324133354670495738109737159497059807024246164883471744721244206003348143216594378513211812856250787387060366483815466256854871754645234669318865893733794179451871308186770277943848443637398096137254528243744847225638020114057010223608127188914208760320277532056168774706834515169041819363869172675240084683131269667854981791005543419455285970022980550876881687688208659508695432830682533726523668645006427502164843873960036689240025008723140942691569404500866940473795140732647202470279188728536923564146079787129278576941951073110632933910909468825175749534083385047031443737001479683659935645092137453632112588965922945076694565628100683469369226106746328597437457943127433513755294349600037034415080358713166744199467696779676229623836523411771875647548861811306683690254272800573550814049325115278361350474258856630665328864224622134653107251635645141466918489697064046454508322095607771822723711861251167939265148953800965322267367866568943156211848328246838196428750491295213255679278210123893713210845494205934230668919739350435794800948352143022544194936845640877980139483502368915863711561261419503007390204900452645905414584134214460864161351321785407209061820155003154822049547713383405204187229812856033654469056010114451006803638003316869509416270923118112303364484889009464867275908482385104632632923565534928174054650683869115088268334514698844217692591385514077674944551737012581189141356111766073306984738188150048035236600827691769952655115133403795349047761153487688445062988346004173246809551740345108867869110381256057977698449766817578419433868305342567379146290107354349962663579786010701422441910005220273196548019589752814361960488239075184844605877141793242232264991276502087903474676855270970449386560861531315492777604581655512603408262734840147479945490876402908269846205963174309459982545597592391793633722379738456057514831858460936420448358199542325161517744144514506925053431165601504802751456582060244021837137488589912331102371929733524870862094924745850903615305155107420666160993411288493146258934868288686233582396863531391803053743323816909058112901035908221422235938869771295820485235461356671378085890849746279690746063151096615737568891766818729087278298504545980243696332499889133369628570150211403142687246188400831417286541444183635502870441931779277813388980520620922562590675296179671211439099011250066554806761442294999168461369153788689623703699808969583862246668047992102745678934451991794943173055544608948534417743978593452872061519234420944303939015030992487870855093707461195610387220149718270742911650886076099309320237539745146189517336617269798254641947978127599861267256664693045824545756571595406953313507522240976307007545286055173057108646860810043743962285706827101754851910079218527873728792639568087186296487019157031925244565188788233698760198952617618226424518231013919865163319664604031397209645960651093093187120695034549113629350967175708176976395574409241333419670215030867348042337275734315492444505626725783122701804737191171077288502369252289507447256225868950040281282543021809652508907482156520780498404451490053097478506756108932054508897808181210870826485720355225108708746412335348916738090236879792407924975381291752727459375320039726945580517560559444278095444225843905908936015103141303120956020853501072294305512059948994737665637797225159014128136766453305990931389370318266595460885550809129812370028619915292254804968899617943640648300008245434664791108111937651039389121303214460761594491960782938830391393695043914732049720710103790834161971119810656839636619090308808829253521160406532462524162419736963835360083748076745410775769310290413369483725351841494588215977026660054175726612599975080573791451791767344129282810514830169018104172460694537985521709066365836045560741176912923338101370987690255549943365521707237801073650655597828561077521374807763213151277275670659456527694739719412868466427405242566900479705300201770384816147945058065967064496139108598149562172224812509901107221552734628404620563161146442252578320967423957537127125459538561748864660704295171655798180591093584388758419558983282849768497022803086392357853717184223081248805050455893099370592699555066956880144310963688182568717938010066849651786943335125520242153274187469406179801782926994159779453582178341987033397201104382474955895170753626584781276697044136757033358672835448000177816504058856224762370521687968814725380843845309871379135515904031984610424774388944989719613330601355834760099006583871850954827103658001748072081227784536781106209588216439193203168404132231289804917067987328236538799764995907713961524863869205752914783167791282018606086031272306015110393327181691240108271806073844151255446412689862970914737553388681365924719212934259311553239174818628175772638042800769973340804128867769108407656899305790837008823755408202668920028470082138159561720885466401850584400440222116965766915280130891326244518923648755109386428763765565859392958931996083310550596580879139885269999689416616633502199484950945706610253517329321647832398235825376875007628967318776381569816848281327835483800327150814960562126112077167745626787421448199104652735344750013933519300765913839449862368934869205158175820845860167155492919712465399368735918047513589707718037478025957595629940710360177790414215566906471085260593118469386911267763910077072334444827551724103644670565345747455971046197218533482777036357652000431085030281720062489394076336656473045365045153862630279496556580687256305692447300003449285138725853975848795989488201976012292287838119973893371782933402220433844307493000486775341793340228841664158454745027085598342992010662361585788307025457629608315936452528086949360609916531211320867395488282829899321783749357372689719880366107426499702970516111702820194443662241121158218426237994632098781216753399170426136512771254016341205010049807185975603400125195953748545240763403325417770066740608323928816497326609241816963127502278700340721697644405147673754044029751603291147966071083340754709718102622570667706063318898455992935031262599899154943247629785897674431347752764426381223085096870545593127471205429703961089221761256372453613997346753430237413170912918543701027416587826929248941393368651378240921466834133681678160879558777419021263018615220501334018823593922053150163747391473989015939290411203802122009433276137831885249443316373660489095029380071152530403774859144058091347623374047804075740890519893469045893489029940183035519406607760784542399452240604441438599225623513129070107170996548865599309634444171152607930815181851638731277168488117711825746181637557379513563421225111420597815464281256217530326714728955624066224629857352805541295600794021093052187137678574405417446552709901825446847489836493380137034382079893780290893832724986366606325101288726451392155209222947348302701609302290441124122297841008629097518274284582923743256058023139564701601301483815155856081374337670779028676091248364078357135442117071049605659014977163245531305549360408436649527964243637284631981187527546758056467142887307736989279293855297485283891465066897463674247290943897970379629399520301722498883106183478151620954909318656717498764487311841716943297145522382404402348029370155814257758663277333654786006569707623733112359666159079344165553495910617163146800491632795905997789361040423941253615935158846532081155482084232293743581908653275997719705929013658802852795749566366628000952537656047653061542559637088925014605533385785201136171646803693064982760048655645536627815158645611657279770414185698775583869645545149124876061133044425127928853903521573678369080355337246526256683669837125553905622179367255183306799500146705864361162447352655044011869695326358388475531145114585217938600865389006914389825484400454366994974072553921901932737331140583698428694920707265053711564297123195031186281722606005168281516492071135248593353424847664663265755746813218506865362870022296335088801493027307209752986188302972591035893047880237868324470061299142755720299354728032599919575035422314032552420244483180052577796579422349287058878352581972609575090764370291494212113023374929389073454505937059874524127527867692682477171573370376398852707390394681957171349062042038297398705942118311582906344830497089484909912217771556033728728564503000456212182141518580250483240433147224494709642714462486216077626416747587317806276968234389923978806980695365624329922418406139320657613554811636098246448630512733020550923415440726742592356726308413935235606958951156564733231654632042320160427334886613084949378058319851783880685057848576368500975650290080597633386406480477661366463664746207363483896792793988543966099172463764541226552370779939189219917946715359953838609140479098225219807980365031420702181116246908005815169919631556696966411488734763896271198965977368477767174166508783697458256841670227456011612545350531956890628138213779510081499282834397474689142823109682991291402318345335008455394867395212966804371775767542089575235002049265533551172136109972924719007829848762948449194678446198411756436962521471749760917578709568396293092435488511056647496861011667332875441678885305800958918544041601908693627216990767838961844237876950455530264655500204426561608576023229105978265409655301690928089151147512733412974704320940536559073918913131561604298117288687196481954657942221868389621070448788086997091100800852545732934433356249673351644582393509459217595503881826065872320812771806075582023867773194277233742398695064141986473278226289719504141191257769440086893740500690679320328465422574173181857612770635921612817432385940931069271132814760885531616274060624874208870235457431245901626541055177613088957381791716213039450534813767119613294267832064937348484144403843277795407605219506371348253204986364982310987672965647542489449249964891938371244046472212225090010180835633439539175042601996001989932187705712350619954207495728943816278218702772636766346753664458159601848027318680909405975642272190167419052592370271524918281888491658947413665485680473656199597863977624461782411529043708964719731276363669544671695041949385272333023438812932957429369554851551341460853763453905095192147257606827334924160890389621748822242902057087219988988307898461086557969726947941971460972422134324690193770451426479549856317158781117117876706011251284597144429208446876555865644687134331933918398829447254984410376118720969810508207655699045348140913502179330579912725741015945813896208012446826768041834936029203853499031982728856743836659751996158547086362687029577516215509359519550116193259595058134710961709354110691142841736160529318790965958206977684769373589735145340483554343238007945474098500332494819341569411347998667386180047902547744276443612186947467212551846737976253104507604728541644635671834121999540314045931959255205302600250055980844863310034962513517699959303489366980241103062766082484067116572673538209231454322338389423277792229701625865528871303732795662878384255818904512433960905081310102451082787086622534554339176616050457729704999543197248226173482399891202044062156795231160336931235391805512931174878980485340104738638111839974815276626257655469913754165136894528753182975619287082628658895579562084067037442014172186965654550886778992680180907583788870409837210429528522318094667145190660832380690288623174593316903273214836185436443217795228578786514965946673909945457263929577686993862642939465838584662401142382846178123802339434075857514967987400753085288164309250387239448195460828545646027175223358668996146703446049955872391490282263903446671890472585712760459373454294270645245036214940971798383395115875907229992752617531985652567993411215715282344176421816208711863926350112956030578624758178584725157021175122504549255796544917251163104644719995048282888459161239329282958435170975343170615841585196074957329927944137384630162699478858761575940760696674583583078281121731511550661113096683032530755613125548782977393792454694539022599993797867287191665661385732331729065918214982332301814181645625571024562198101468592627504713688808538278567780065308747953534314359325056876607600020369930367231098030592921733085140839882942769619048722915423805137774706938144056494128560877409139550561292391369986837895595221760658073958580396189629859523847208223548045030910687968768611770978043818155628301260791326825971387028524549593438514833000098284692926175190093643102049303444685519797763577728887546096510527282892925317774842802006606915393625470492194895388601134431484148471896336602516475589569441611799991109769663906183941445323818294643954230631731696832600312657158473611777828317796063347006465813654738291070009993816681087896460286579765167131815123014053968015503419132618217140027207680650658344089718417241472700982935656423917715742911590035957200591792882716484666902742823272265349003226300673450975512245392920262860114994459292475318543655837708220816233761928925459442042478207341764113242227736242258721243369240915879118804685248861039465492007978321401669863167129119162175185643564859172386237071822340279280013787295884864615313260006241562342552958623867919333243303149312114525060031618915287757798207823903129031254074793391884436211638595834643973729619280213497035038255806499956563476272716933141827178996235849920708457594407211654022335811494445687659596159843835075719473157664432907543554458579467669436691752461878956716596919100414538267816361274139248257971280316384678324346157031394569491408877996357106863962580857791057231836887112593816779122880803886825500068890429000233343231852826230662934245005887820929435952350370560534448351367056384167045079699652313511681135667128465292704757220566071286492214339351417660888121701741897046571215135106480286599194395757730986266342037300360833702419389889680903537883803372594020843716075075626335008440144095518145773133501868644883403617394033361362481741992011869872210579976330573676933968881333983973213630123308995729569720233443155925155334481605928132183907441593770553367719804382338103416985875664824156178572480558924696029788889389131133997016533862457246173731427066992581218755904079666724665538266034580924880982405767569575270656587864223580856683689982326181216125054598805075124212095384966468594411502200424359214093850286373822204338989527333752045032749490158792233465507889662914330171975398588937259609886385982247452341099218355282507503847235564250601601788672208702863306955092809144567318369889412120014886221356290979109806972622343493634026853893863143071079531972960588208266590145010172955134849206867903524409875053576762200597122118001261722458846214996043190458624252015211250717490266911549174705356862244817806031384541892026826098019113851796343842180412057321180669624090607109831641073758910811859372544740048788936151103186553696289119190135368328295986163039315182736745640364550324286300603746043206830270071054271547793859154370803870647119486295089283141567123974219317999194848455829290597866093126658506676213248334205170521072112840421169899980715032625608519298139880947931207258954897984302073762025099363759900045585536012040588771412071613363464407887573540885456534122295243929426863050764457523576680776727648336479826496757392880178015974396885793608505334057367222541626845844706635758285253145007186862175370699497446488619955027467256604903706842426376549608304901018555650469220712722480594720649943536914398221267333796499399039256389143877719020893679681390237246321900942101357767633728134039458321474280542994304603745090016740494640235045974632368093607266811270309216443380804501295947658509001471287106676268980166964350166772627964557246804714089995294011737256753442495634736699519031031031420465801816018530152388215363735186964960682663695265640060052674461200693995183636363523937299266665807225562405870723237941548735997569241976602229475516309910788324786577504122398505276498243977665194001561460881028334554209570430132311767669330588165663963790911124837229614111202049229105521766566108139318985493962568126280325960503677563742733341835464126395830724396993765236147856339847662263256795570217443978760333226288566011937850319270440198523000498762832065942239103219517415442700736950713628917798649131364237186816282426501146712321926295399633031992399859382832893594966202366235552191309556868510311800220180260333450217307560126879007794051352189812838242677953684779402269060726302417484082468186694398204868143917599055680942781033462698954257047395069125221850994983027562067713445181617170959880270675718069873685160190034596353168774781855267563766060402148888324980846804321776231486515467736287242705353607561512372177231994702275256673147663841057538203708026880527502770628711465316158145250046849166056670202716721635090708846262430198979574335818565657733665758471477784683408135186489030650724630577849951746284628118604208424425447407065924614012102615035607267548692432921740048868181130038513451036437629328854137676402556657178079500991453606921559421352714803815027677831250123666382339198946275913193167469855645889375238806317493629826614462837166553041740742311996833452709778735839496681485604140934678471018824210115253807313742993502378039420841853697591156330352172993468427318756418404160573486050252356902003122935019391182497672867991701105713598406198183698984243626228425490621721045992565208702636662803787910944262557815388019765996573010909255159780301203236377262785988999579448368547592031398894067079854906879380126915366713271145659083191176608919499368122845160119953346684484092802026508168624138907084755194073250331697857601204303873655936843866879379868201730415975229923212149906587939713383756958428624550277768147848014728078578407648381814641054388027420032632303034963281435784416394600351534368236912848644181237590909956557250614235184278976598368630622212497285663140568346328474259259881471097194819465589902806206326563980290637696416527089831714016997988959799863882921662473845930791211588426454344261696226632979211072780931788347564007912149832492723280166927322272636632292515345777170145081216346144523923687287006580556268300803660717428524801787111906039207049813949873111599983555068968044929792731789157233097297026155108610902422538781676819510034375764078629867516512778314830151774567569588804766479695776919453810714208223839667035046798640319975427816977895018363744339173822766139548790080952809345122842553824875038780289736962676966893435100757459864431338117005301076974994584755494515819853830663351421598531974870787762224053928699786598601902761802571741677733424892749412966857198693053402654201361820983928462247220843265817842939781816965970126833689075513099339097794415957816308423564801439164826267381904874044874680903339469649809799694093803742199973115186225570755088898084667216626454924756691861623762669423719232836818216927606519653374527541001972898163640755900205975534068112165658070875074626933728905746983775022139403626488022384140774077916961188478703338166995771993103262076925419960390322587193555606528039083315096980720148195584181370324418187297164962190884968874106513046188940167041326722283047970049520477269340236863268189829552260470500753281498334410094296536234416120373584979222057715210968279695023092715131597036756081118492914999498527500043084325094018556001002969100253721433220423588549684943837219534307295559196714355355059047250186058862930889076490868927385596694799283280092902684353624209467341942118241247500871230820721833269967279461284505768825581497701815247706120728913843516460609466267919772683305048915273375511296246930387482694502461577336015843736350536945846539661824878939670681895998046283669024628556940909682977931473243206594454529477905011273925482235864978593664137451616257936583100393285754725807111228071731969908672253268623781041625356116451484482769497724341072648951628357229439576886931528085749470024273944546471203836791679564553796445257643311379823400089253382767924309431805447626460078235342534388767226767387624522804986860221323667199248633603483711811129377972106226441704187597555662246731877718465412275685434965852643191058653914364004952833868188543410971933982362793485619881436629067591768476272014590229044923066598968970940922175168432412551059335181234912578876824024145420986180135413824317474400594926018233658321143444355342537987041778276428102245039735729325297562174741403118128926143444352433144342897922726783339972142885217672220196835644549248743281999103242917315772991403925310757674415136335517938606298502735076642900738299808475428512755709720849621898436458081055482027681983026880290200640063137206846258493930688705906492376825601831542764596242134597698787672754899928792992066842911544980349040843985785937961738806152934530523431367973028497003905406775465624223240205742852997941533987903193243007556100478662149843639504635786359456303376728073475982190853268908698819742516821311906042061533094733747157481364175124850701833927703998864893418933502895190499619879429046350889399397528387579357233387467652815407916572855466231291195254519984802805889851957269335675370380364753641192086425200448224178695551779268359428537886252087325917223257342567169720466532936333718737675716268946369677369874061307533563243777896991086880227830598933567786998845962111046281931209818187449126335957836357152936002753493409186841787419712674478516560694965456556359937999130093277637322879076525073084253285578543723862614084873354730845935507925385993712599542004846465149775143996366294253646457979052021851493930762774493180342024762366666739142048700687265162580862435779575108198331721030836004550697528792695508415375027195947110683182358032659381431932551845558720165378242277149700647355813606686307094479552635561569677200728114984890451438637483070263988546428294057602592326009930067026984125705817781239951966712806738073063030386888400709586056026758036745189602576600319422714227436050577322787319902721741966177372465337084521899332264234094674261086069014353884450125232258807446069243798830780331720499700157948661485143021714497013445701135776580961470667352554133100393663793958624531621176036939612948727459131004202776048241794324785972026921173254112506064947180636500692995430447828969397185256941691428955004740513355009111002173280229014811402898086959923516464527590185637555999601965090477157164767819539839612694532783602876267371363163195545389039551930545853569037861627265228193625197359070690821568793204376724312967506666534566810617770057688213110790223093148165379423562449941972099278614098245588593216718625173870403452472802947547188169487741694783949281513282090035823052299044409596280782510235483736992766786898307113652576623702689241636549977191252039585947534478469834417112809343398521989841150008924733086628961853688754314106523225018754452911468584751252601184180294501657758332596968600928858664636845564435077278798790881305593402323157130796313638407861725015970652148540266596981421848629484064262148349118726335342362584041996605629015216154131951485948164077892805824827352900524302126243192484590964079536068050575456561485528516308610373305375516630370713260258335044545225263653325594128717714981061677776855468374162021345830071429063189469398322535531761672924522396469552030029713242150304912021676461440644980662758711724097808032768960437178869101569170718264540952002421026065589468735896095037777772703030893871972564216925998202137610844864309316608475291701502463550037602038408413305278014949355915245308480156282990863125633649156958534248067197009252851678034129247772974007124256000003878741536909119130765371339338534799943221224805177291729859706836982998075538781747950258375754504783164915414595554657855091845353724954113739922680748738752155140336805769570809371777988430102370106639016434015733207269901392830911181005128801744185659993443774245099746422930881455955705047196382207761779902448700768279053322974125819897514669572424336829921244783646503071243937045477210571214278934069441171492888509017112876890194865642032087611570919015062095529469783455623326895822634797174218870758738505023677464580951877676086625747324676900853302901645172010818554128320649024914358183730922659526919358177892154160186931461029880921518023987145910113946071230748182731727267116571342036525542539704898367310791638439898995087530241014957270242236035510332519870808419116618746477562135102807791547777251866528029576934816488454050502130037963516599354839930713880011311051066548644432035418797496474058129356693313825802796590143707198537193663395172448797937247972669551147846221904034657031125829216311623449579621317967882503920143852497208258495987201772517738743650260588356243174869392943248720209110788398677003419800409554103978969319169790363269646894765807453332945188498850408686870020932496095577207923682657729496839607959453815639225235393434948512975144830650564567273750975955576395829621339067813939686366328530363859526391762996529787306633240817447219018077311678219183150022075073944473165740197521277494742807112946180723671754364482319290723180180615007036385172719955713331297297189377209298159947997472535001281210454793783774683063158703832826061226985192990727243051542895629391345160954654298709248807804175447817876472479126024026824681933267961413695240706838557788068688145154221553425093042460713789313739771036171784402283103058741666486437590791311498641034873054963901541639703038149316151253642089363212669235848143674553599912762582269559101725339484170619949829192483410780690907286147780065751601654414454116708975124151138481106684514434106734469813365255268322716022914466214578869682046235530844444291282504745451083983507350803026475782339473499438191020066079535859734704102560895210494711124086655898925617156927932221354745961784035580027811683925777648405563676364006143750777978244879256315837282111772037032437763980317909305406859218782727563040154729734937788390270565742420734713777392830639431875919761971184820334848765800977408799266088900280469377552688305350881684644382997469818474469310684494903328760662206892656107841234922174884908466078093980205858921926070891051451480147741684704090500899496809598713680619087236931861380879165710725937353036444160894691055732890537461374673515739269753597187114611304367120691662831312512937846203700022605950949402834944195773438319306903866226039015110925698260535903886140586526854116928069980396708506623848442501636088977420842260351061212018712586640958334004987287098412564222424240476567087575353061685716818323710707097430273136572900626201781010477831885972664696670695203789538471124766266135802207899693247547055832928872308577686640501226258402234123546325147569481290017791024797564168002763699768014279340107805594534570167535633988838968998616728407751462021695459807700164039303118247244080365966193757383539333431625498475503397002866213605718313754558942013571359521245450075555021274502184052477274216912839032600759644706618783338094689100473907000436264090435344901275638971337637580106365370812458968592512358273666035562526795596097297165111046113564448998843273330661510473501514380703320252932332102187889405317896877955923474193764741101041714763348950476752627736576618869390505277293906356166773882172873031448530214488662770934263443225953317008631301173833035805267824676601237984483428470276639618778545141707373493226527636456207378864752502522153662116769154053485063946893564814685112995794382330633687840108754551711985805786280758776223018736118061463392383892322148872914783093684612037321202948295615405856060334572161619390894521172799343219162407718643976503133462745058208131057951371290562436806586079157310052633312691292464422413109666905078589293563772563242178058415840852377315273768550234775334945975822709115345984039358324502438755070694814199991559814203580604208375841378252065140631881467813334855887199729452454586718842752136308825212904881943603946219010669540085189790583718173389976295729947705814814503702716643006806872003839972212607248407978277633126942238704960873199388202473868164270634799372929970395019004077898865047429943385382322771583298821852423815027028870078769032660889470061297780952758081521690243637608650540821502713031309972128989111723179741011738862494920414759825473778162525441271154402876814272360766185658385079488289252949534771137615680601882478222908586743116289658808905883774865809878436634392467019139836289738235961324280733727898966915833683899065033383768431206267040065339126724652401472943222906124591971038838366499748267036607296676536360243764401944432298439929834127806446926379939437351742611677658540671797606282969798174037974565741752855816506614433704296544102747091849614240307480700902212831648172896639794946462283267067644051729143427726809048058902729551639320576423637744407534907955645416664535797776551402496067561808963869658651019091094571853004365882063793174088619755600355123184128334654963226610771705980370588713328026511234463103616024876904417782951130814746402281202229720440485821831206555395891451912460920399420595946085127177912350950529429448218328864576293161276368437964554365212587469138352355053305101565605149511437293206363371358058547210780004197553177371889465010106334884364039442866275187145113192003711831883496443284709250466125453472510255358954713229887748751983968604078901959929225580216107385160749120519470147320954552603871651297682518578166046427904696741178326283592212438929752470695241498890896600174017361424990180413582356853640568781403009390560076450951749255431515132136458541838931006416667535823762802279556253345573173442969594370837633622466612030717112941827954994678060589091359720677488725719365364443805267581718994300271357793261407065753669139480458931133203330289995025844821905441298965417960641550737959726377687326323010832394505447722193270227604985812955418255194161378021306341970106959312602079926331963147017075535971870645825572650507561096165553609625236701551021704216650759573413552667634385583008390410099113465072625258418070894733713323894667061505182857754730691225968806335447763666923514740401010426555531331440123041313346354637616650791981626981655485623921313227637719675511157606983610316133891130988816295414742330455268585351654772913102281349945560122851642640017349085383577514015325312932363761922334412039206511101083002181624158888052046448829174137088003793064155454197591846336158339324582934270868402424464662415295034004044916223050871830458194427660947939791568540875907573347374687585991810519189757310993948134791316064937185307690344968697966386572990446288861278987193686809792673971439485470360061825095797508806673758771398509065600348940827666221094201061763037436428729445453045125476002115961602927717445223059051951326213778718237339280377261856628826602591179309378611073982173966908315852745502866696958382956478872542677314671807577658524149408757007174479430308180105580782838519920404021078901565271422890968627616344520388100205165189730256524770616924752800114251991066301595461209685100495046171251033637840756668332594005296981652846530734696446572310174316674413780378155940827040994621005964376984710859268854990143623228169687142258276288143036591955386996272535492305669581327775519952969712223305601292451546418481240887759521755344043342024698974105736812967466532161674423887559105419454943191205147482772497050583079020623291561285835003967099176029980272325670180275652576263811048063035666855363475955519067704496737013583044403521490040209886551270090539210299771312751939137478575465472424556611036074524387531361858399500045104394281991223326844350658977017976065912034720583657999888812556654995481060721540223510324684765412460260798414281412799250189969252394015250634049848605698204330808807259409130643439023702843818961430905127708140340035541872378545471634493317220279879254439796633139062783665396190367772168248350941430407554296018258330557535464069670987050735494311836812534582610117244912089327838708373125199220444888978988394059880097227003621115447770175068785204567508413991014466097542457901971046064634959878208383750786205149633605258859980185419141421368985240534263663858709174674954740518985976762786203896155325192369090767604745329770568110796078934845978395948251389731352878658018043899735420362611180206129801941930476531431419316744659956695543893759755869940265332017101299887972384538846842763867964558234387365517359692925243450406315037366151518652953726173061886437660612319549733692923697461066832619739529069280766998720027707421281026969648320794484720777597060141971632686394792331473440912712278444553102342124115911221731487556562961919132314712438986014896862203763720715720907369103422764473978188146250019599331701145301559666778895344820407996313253533574514617113059796676199049926836362852808707100474268739425249959484778878841152419890527242143497098096242592282653899420075564542122041801717154538607420496353429077997470817631503385930204287627196781627910418063759646329841908055103507623039266635479539465057444933958628238158239745891976512215663880731515762348025730089857315677980094407229442937829417272764959121929855659862908753615612727420803394715518462812959048202071443410236683299396408939244205603160536413347106610136904790945090046082685538565073486243760374185958993818201189672084463001045988533469778376775260813506017098535879116036385150714358532991555362614481343587475055170510565104461211182243520149908231136904971466835956401042479523371596550700232950827782592718915947855115098443767644767937926528821436173159855135615244698048588116798376029250286577852988101283017868811810294962783020220102896474724355434557902297087823961574553599030092219899392507452206254781527338813833179242526233867685024002763861533259658007787627350878797015202815481295995431107645397610576306133737717453855818961133521764341381181295667044876923897410780587806783793102078972026614082065925439909063503858852925174607300552591663102885496165527990355084859554108487311522789336188256271679374792744131612934043305685416671371199251239335960093212321431226990329300760092488944634066879921156994756148595050086801749552809187953839949153859909800836695049799804324112017995225240173595511512741714467566642828416263072107540732038989783722234629166123989323924046574053383636628840170759557292012699605210869377689613666366774321155971064895246441148434835664730388812981989021774945346365265374224867396645427933814656966382944701334769710222748351292524150995304625467457725781637985196354831900109747619068626522750364565919895026194560007609607047899152249023034515181746959339265688928609445788857911358620226725841882996537415113113207547216632654293018366830331996423910814784127558902444784751145384005374737813207984498304520521200086097671104367241397114042893444247574654569554067825764543343054048922684848562023338703952140755280045663588128750813009650995309777076749921261354558187702706992257752769602997213060377588292152471070089564187643306065898996818971825526236276608114225592316676222533885418448030963679656703211551225298331174396576123766359211533042127568206843117219985190566676325340906897833427965054921601853956359245413095955373054746176540243960750335960283471802860086031224676600084885952853210948811548189497255964582182587851464479500128450445154152953486285323929105858588143298666368557528380122061130602374752517914128936340887186630312225145228932153890996611607500898618285831192007498901343062300545885933294566369941728153481661894813188066935598792641224013630855704975604092602824814599380002707739768230657063487802753333440211754414534142369874773766839122287820840033474894028255993900190208278035400454366498317202721171585937331874857693574500935575523615487187655362203949843021701462478004241735151798450760815577336893179916986078169430408011652284424684236212537423508573212310139207991202562853291348919945889192622250353172308753895811251702939100005863838579125221075782035978331744215628330269871974559570210985226764404240147487525768055426229848074123696581701616869019395865765613295376014613031046570914881136456283193482863044119640309644645860121801458490485500538801618181008578491664148346369773117322692905053420195755612639353269216504391842501021090825183672335852033434629167957046671132658524375390143850184520456799270704106753829270254922034272456739478823860923410842092486875070531739081066255687499296942554970609077267462410844729251853943305968601495494350754542914095449598581601737968303882372392993990341556490489375518073327956660963124422751310381206565592330041699459306153278347015998845320297667509570377251848689961706551872804917226971397849141725800028863115823895272887141073009581839433645930717022699683504881967013736954878599584576273387728568714483590904193846174307193833445206149454491276573797830699985407474807686524168402830895390844467678846721209329391249031990201669087298995152051814868525062607535897821449928406761925196288214180137357539555476918070390275305193962698408549295531488339478228224899934904710324393841994115613216300712620199991166577877952504655921198432793448407975874719381489761839105455998479344893823487345170397801227187902938019447772842776321609958758187713118450705582830900138241262054175410056341869276010722411985527340854643160218865714379744704869067295061833937043946854785068777540562011550560712067030651265476686457717339610722098950804738374849710025298950600033424282138464390482607043313468095179580703366025746923100270046844575785861302907100231988797810652243873031779107974539336193603307534531210908089975501906605979385472466920477012292811512697442695923482239005585925542605280272148109418890738418987194351152677731702738051186286151719600752557721112564755026645421726689076323424203639066083269759683479137082546577859520537635789851592129955273361320953328945538482769133897950607328706765509515273583997312077427590141622679464762111800241835440716079481773448281723221357952806130158726892793465223665029056653946363933293884949479812214929245683914567647380738582883701655911684464244142932407981719820365727385391465233013882314262737468076091296757516547415312231505617524731844910256489011168336266137816089305052482728755674528973570639628139006326594663941834704369099677576313967669057801722372261796263374440436816329469028049398815546372593777488448370929773730216087622349545546396271138476578488456335834361649280979413050270222573305292020272720767559934361021050489952084957097800978283502297953915904754389138773237162542834002719303923964315961466125975587619523953785939380750376010777635361235196961560836828418066329311539513602662070036884312935306415243200447359190168287713921486471515927886819230672403695598119204597247912798050968334991310961963581221632003933224306170030504173162732227711232005529820192835624997528498079989127380086069360542711748534876376105649822311457053348790829807141109618613363961667510694355951722348010246090441317665357261631701994384324530149923866256047922559528104600841205683666516699449788543721707724128165787776816645618363259203936924882316005689804054606296252971857667444697598252303504124379351605920299697978316822774975525895289267665200500920479503235157187902062561665193041568759104592251418251738690978229001285322462221518165437576711130973797055083058803361772070191157383053179291373164970350727954573800663328445715714691691851403155180782485630030112654186224607643232728057756164935539820429915081650855113182279710322507504300016355108410211315921565723976106602198015447588621318864304224022565248484291298063424114295458523763724706617978864164857234640060069955596837646282849082380191599059789522878251626770781168149315072740233804614117208597934869784618540745139699809800359438649251749057484364847813376078738220417119648485001091658645637986086543288396471911021298143792859127212941952741165001977501525619403989148829267406702798912922468757080920483186453653033546439566592562651094220659716987877038666544997218575958144281493776637558423366971387795732660814312452483476140914704955295008915123842996507232185653893465835111054652337646701113455943684476497196733207118616621480658099151238334112298633702851342546867280474047801743358488144225831028044803709416985362177195606277684202724597019707660222011261209274940773588244781688643109414522614508723991214727926452942365529338440529693631121396180582477119562130969747341034064050131053834129081338656911651862316110416178438964821658433932277985959224935582120285639887150987211107986161648658832809905550260360675413214356083637397525228095650091847400163095483464110504571308866122208585100878454367886805723719269036012914304226505748965074084619545827170521788359716054663983285807317075194951830674924382925037321754905183403514908364418912774042644782384280964275600453119887650381024469486158448501976443544359977523548062857189457017634963595374524111965934006275290108621053350653851952287918413185538919945886620315263462262850778561202114052945352535080053585430028401571799398423616508607542100323389130091809273495405969331781201074852178671581955329150389317765215376987088998037025762773139693302608711651984399042067500785093704051570371410406882340612215476613598748695891580089475617550026749516606208755589671988910938424996452728268492674530711641562559002095853044765673046218402388003098039235890585816964677235280771271116224409341050367672706199803883161484448390217277476778851022259760086900810022023840510471011738459213264092636800299843674776090897621041460901400358527919162442356105132932711561119084165977095384690904900239593345810046768959792429863270518605007023160165708728904045372993485900696878259431090868242919246394229295181428887862208058144186482399996562658244698518107871668891904789288118438357821077616961738835205063403386734147414664106597247618207242526025846595614166032797086989203513430263980380515802672102797706405158957402394630075681588135562254853482760747348902191562251090513634412401315976966065918529917768377827744397241484467456265375827537529345332895003615749572237161441500078675115273966447244946202891175007541317577482387994100849998956435042068763216194564998534947707042088161908757786497364303879072923784148250168908102799080604245720090491824335509342076080104161268466599577004415502106033018923115072003732288708370560544234516554762706711514354942710311917251310853942011545937191530035387117883441183032878204367554130416587408198449066348289047443962258502710730912776054222257537528870710766459150204144704109469711663293470161269125088900258395551164427659347474641980834641267549094654091434832986248752010699586158070646545794723128844815926659891030589959062490824935228965797186311431163640700116022266314774853561126492530767106395086397104087956027705583701198795130131976554555918631384852507212566752295166241161192997451248835618837430092011322926801150026018623603729207890025495194516087876445781727724749504465602688860259954372192383379753008826953789532758689504034400657004816127747632765484143459378516530713308007415167878813529874137542037227064121448355453838333882612853027649617302137825977117777976867364206045536583887441433982017581685430873032489333659111074061833767031216174398087271397421090751547128317011430320087511707882249420097882626163538829351240467562928628155291818740639859324911964604435277889895421335063522334052863097495278361849295314955483655370947744848550400017104334948497722615212338113535637444608813295460211004556969355387639756702012957751161857522266523072940529605297431137761699239932373481760986080639454709729101257251631608470831651359149077659294824151898847046103896814704232097383349634487606096225454980491788837466021783828621289071107342472452390733805310834598639666673053137125513576446579438223366060460894900056846450695120889616194786738109016733424310695360693029832395524395949169232282123542270577899464568860508424358776721501921523236549582029183655283263631972216348824207163250313659647980284195254724679564352201690082420129914857884363475576770650318177095907419445250682134268248248835275177859434678146270915734550575244229209042342316678692166603072996726360781074621793748633268312083902675583487823221712166497278516273193497744662340771215805421319747048944816295100849040683999511513151066454017378891666453686644898390572613253420621331831315377219466160276899450446028633767520006744583612084217206297145647641587699303563738544820218469960703944751449578928695303229422501057236103217201665658019265319816765994898241568175114531522241212375898969053419601885340701728052118409013003630890404566048841113040395628014263786338639426078722255443594132199392315680847120220450660648820981166066233438472791075338065203567026390246250543221844502201256323938449397195143171278809228240247474039922743242378158812755727254340230104496841746945184224893747804657226150056483466186694584028815062248540845376109489306258378805795375930452567828221955109169107019778998736275011672142813771371003484874611177789453532160788270015579282364809886357352489954520052587517979741321593632381420051148283697750574519556852241669141667519600537701607315676769896065407480211760293475008868211457228016238975568791518661370461926493513247668046814278240604804868993617451342559503567354145013035752070749968914416274762237112982128830006223121369284086429016413925201477859701897365233247313568516129904247695089534998682839946563957795086371196709899448919268997141945850360884850913733185729554102470147528127602514564978794852857658910139090139809890918583721684434487331523217059502807287589489342958229807136026090055335119481986845115656821681634947128473025089030734247441104497422782392124184128900157208378786727556468258883552759258135656543062901313604020082346028254986863220968192098009526457934409842227272049130814281267319781010182997418490923715508201159533464297239267773397683849915818158640772034642884541858603293987314460431344983018798729020602789849051418405616165492134696815936172096344935906005653997305268103183778793072653325927391083281995608373764820435577152565302117235067915423253587045283599935667121174302539679778401968461599324152735239565833917477541898947726752799504392182633776814516674901768188119592630952959003682126876248532942601280674788620173112340711819843431121191243566755171629285991373337734259342755862831483391159000840418934583319810335319648182984213620966090091418756332468124779540415474970531580993281540441039394095927376297136554726354346975556398681845611882857334051235215555947571079917021670703142138252183392214306291734941275595301333527479311257723117671962153985763450574721031985984589759938653813630818549905710576022660123605521730414631504500412821642265400297475094101617294928986354194973648387997247947268738822668621660153900553271825127864885512492118563207546882839108018383911577649213075263520855170207719968160413813787922180131189809044822142115153365642472766095320314777654707532375859609707938452778794292463194493524892680622409411079767524030635165624440919743087959594723316408381368436078301348021809616472927060312562223728626879505242796594007885126166160889232370524196468094492427057766667215043462523730571348594318770731711817335071529490902636755182840729393459983252141759715818113777204913921361153390711267602792433184852526759184445073891402225944273244620673762978045967718616293564138944244543048771860841462332617932955654541345878671618839234643813984094336574666387326841586851074633945843165542144492613239689901232661720277309950082342935332083582539672841261677003019262513167320167554703054508460137875292110352092021495673571466892798003419526503240326943315949310658735157931153095097683967616300414662127176594311415154276890742263393686401707594105804845883047719313388505557451804421097101908726325489715073740535989204982697178685027901894738377366916096023182359342895358031158713993946090104049166452105917169961835616411361043738762614725727688013036285360736293847232099073317751420107493235993190722656560695510565897548551155391433958439254623490961681119749384333236461876734402645063880198924448468781944201392866646143533862066290808288415241763057346279616481264151743893971897073488812812951150339561118378482834079616208734515278584975470684184583004599855858252713847739290437295878446000338636195900183699241889643237690336311223278991298910988093069196590209676225651544968676195164221630028674132378901532216098378201869644418038260699103890078126479131213473483228278166525673809965542557433488710604429918973997574128533698090270446112964752817349161320601421472001525272282078622558349801168414221492909323002606141707231007048780337488929616612392230283701033700879099329790197140993570018006059314602859731238678331444917536071030103347691775949355900891529252755091472931475485913764181669977852497434844479199982639615012237311907710469817802201592438108971712072305986209593258094978709130537222509596959618759570302060474541764373635496215329760014745323315575533671271211662845161029355171669307700904189194175293742884343615387836784505449148117938912420181413694632116811347901277219179157614937955885756957300540966216134258169820431336257135552846655443257078707048092211584293828949935408938152722607556303474259095806331175793204811195770918718461135770925108076469279796905849035107623673235494292160672620764759396461602600775510002841396983356459867466491006563045844877460931326230901684994886662446344140761012090928070253752682290747504882649211735211773705246470938987240466902532397211844235766192270801150399966704726065142121261348644434477003049958503942521817217105009189833925481303198379984536473950469137773810443753449194213435146031758115398569054907610233290097394808923327560916263156948764476448786101476718368439042931201266067355315462562121858986590145738299138342844650547226532440413933284157623636814530140195059028819358907101593800172230845248035044849718989533424369569086776128263807057322054927434055543261616487745470745342017520102238152970903453897882733065868996546898794857726605358370905389474228070423005944784995735085924203259078874302714352184763302105464566215998960051618108610834268671945272126228999890742160791560540299956508456314674969217997827109543934162512383451010115360811980031304231520875134084081432856444371956500026644915197740914176547845208558092470782341709254182428974667523397707076472991101470580716881166710394084558972603069841389965350672025085984271349668731278093851048096882396810850473193194334144645280701629641536297083530780686119912842790281118664001322320608664578713866760347999801693052981922648957736551483806106250617569615895836273464871884970019683768335760957921700676032987066728467745048349045557392691821051474176985569249201218169359988723863982895700043160598839622372390728302154587088354005298848282224434577738609250222661040325801951191300176091559170032457768676794378824966334699858648881097235501000860674831584403183534185580538355026210531308248365650919019198596070287038476001134590959732060996726843498668248185467961514349052609524201256060809727959155522812999889869315094350393715838002305496711614632392477116868741629742236738111583644744113547504214423886268178901449948349641292988801323076834028741935610938429900513770373084811774994830670680850228409040875285071311070962662482004037047081349626548257433598538774543837148735984642329996379179596529111464790163441662862927907848344315568331248101634580027232532800290755991622122727338544123597112901327365685346527657707578568636735843180220374443495519656953584371164123778584862144931002554420876752689369180467554775756312891605957262778246104684018969687836766847567402922771797578980076214560125364562599191042536404410439553379658409872290603424806963502108913471730959840641022142710815627282402575774431425998440288598497097445693668822576424814382160703374696194357925543899971985665512895107534713602977287067146691394058848508813619444648589552288783140080353424757837225143666073523853487278284946980759209696393596707846747607190212470315977878158496259962963726022701454225689533444482785701940649322979437360069410581302346997055846068643642641790920367344306684699843671684371955009762868082818335537547529497173187341070349059610066190704613340456290323952234377407682770014555125866789808520326867261772975537955023579337012725103936654542526846545464605267423172900105753489683658062878636179226482040533597664198823290583405824512419946326881904942823973637268290775587311578065764365256475224525706085361154878042484861184321958185425935028393848064843015364358799818502456327276628717776754411991060889649163095833783030868092804791279155933146149091883036794062242645431845784968673871755234081657856290136031305019951858433814322430863915186492028407289854059797623858378015239912411530614866033439769904560342439414962549275546473005676449172707755700929887119747410872446389919292476915770085897073830174811489109067529125395313338124476083236105890767999920107525886198828876742967519194476681594953381346969150940871313774098541771697474639303314148109016809315445464796297012090878712434395854946843803374900848970848620559296263947906863457580626777750930719174856677979388234061422671190298498643475706365896847123474652787960965810529818414622912029565099980902691737418012713429769979225019847026835169384281054501360528736450472597079786644459037958577137823787627959222451680681019720229766973122074449218262633184298806786211478197024837374342618970204240191938581287123995203048511623976747377433226233472200019020301520325649411089903345627619860058478394823823132270692850362830709863927862240452813104372308049368565468178965555207886040908635018191976732759987825274814579159262403823963760116926190150648985297668677644819211646446309245502910125442597777133941097838538074498415051381401724089901401189686571729776952093528264568700625508808040101733830022791073250348313067064044816021948280676031291890811477950206028057114244594685248842634979102353138830230871759304482258403123080941347012037132896428030560003392494783019337514441034798660600545948036547863904066876490332347203377305507840087245207845118237140084403079570874100929038418899192662009213117886704501698797686117639715349492645459377170713355787748042701816886986864260587956232250176832135825647223083328945120746347353775389607563481286983578115454214792062233453145217088984801165364188901998261826547366058712266709008289001754253382503821284894290781564970979413633786908584647122391731698704133761973150086245646116001507101238328382838282585867749232103152686542701860964503089553004420429635921781468748218595164622871132338743114579053428783255057470839970774436504695847430599007909647153616751681189616565658086228095270159766658598292258135688585069312080718070764704397087623811912557189209974702425378328919783440012551096252470847926113149122444275940246011513560907897259524685596606818634699583672342939188218222674726688356728650001820578022504083619452864944110639182857920769119259889976769133395959969357579456916806048891435912778879804934210821092296037225777408682298546730297900098142709123897528177453360067201264152019409755986447438912998387104948621920580209163712825150601114457184125912000991287620394079462792561559536617714255424201310784547433175587149147272695520635648315006718536494288551051893980230323104788434353621543539180330593888684697239474212546817498300426447818709033898677559471343512691466735190301410330300192734682934590195619051002888349289317369174549600293340899723106092973563298266961034517567112683358053229493953700449390240631486456542240409067927329857024456933816730009298809404789857721805103156051838071722101861984152715131888451083268523429269847296588421903434833661497723743781384022078841961894955079917547611510670637903610472075151220471662734559503783149125205673453884676947734832640702478091745638609540621956397673653472911722610870595592123424847622149512216446377727277494088274787917357397734699591645128979174646393573533743446835802579908883011246919009122609384491671307659789348981931762404397688365243984469339258606626184781110864516329224988827584207518561435564799103344196871722160812096843413905484181670404560859003052347210718546269388230731964730543130080093503451079189804505253235797508484554527094110219273610292034506157528251063827263024440657662093146210039823374152025327093257495720241782647635850107690605477998156176743757131648769327000896911132419546799150225368132070471756765859768292407900756577528475902010865265113750037642594427120127624437036172362938710362002348347320666515275558277292740107410661527885956611995145652392652061886002836565879717053664443661220711777968059991072622471102227389613895571752918109859882081202317916334715098599137072848700440582683105607145331724816300713700628797335716192439357052283261887651381279331035711001029400955056327707407109512235334614464988466969820550365022912124566122113209081776041464148690591068449696889120895573408079728868423834178079242812699665937516570532663940515681325952136257996200954159455892375883684383722207417613541014947786543839822267169930545086671551743556762539574909250795126425449942339861735190020082896274117492950996212276134672561254857745976550197073543880999711517972751766043070180286503606760520258319586188768974476402794476665681807118659295808003144781893909049484135773204977987990981540524245981934895469528605745540779271711778599131596251036720660055920291018752265971916102172049095621609169788332669287182223539202301865175520397751284314126785248911678193734849495293548935498578188137412034679318571926375460500796693392208336856063782048730673340444725068737280896293663232464994180390428253676407300034511469753177098057520591731301360636056444047356816806643904387804896251626645597359597919968233463336080688846551499046717734105753356899433931910152126325264622436282728778938497335855910473763557436556619595919615170838073415380660140929610734808295813391499838502521339780870655227568797512263576983009609551350484188915751953708797085607970281409552153649708566466528163096016806189242710180421493501544087117863207655072826319360900211260642365988061471130290706095440260691782596199103596334098044559120436732200703667077757536814079074112908738050098085233757194237575091405977703272426094561362953807224475901207431721777459985237181008955623580344907027697537724201473188527144128827972334393239676359884411648842675018715169159922123788815806632457847069626905345588823838226630722478729210992331097987766702182963023234770200573337033762879476040644012161995177358334612027403027041785400761869633326258860791053347500743579594166935732903048248913172428872832632085097975485234417011421582233686504968559115780805111190480388262408975349006030875534376716342252205234683221792642571249945546089899087195928047123293381342191405549281431702141792831918333655671393300580431887026591121347703625550667845668667797633643380310611008637709099600373737657096277454763507512278397994929675832822817805605806165832976111605515700392051139983757218213223432201071284428079025184461080901348546614316335768721567898001444003719145242895564216040478956083365933343088696860723289840154369539827299065112492806939015327949024247162234155217878560261430350182603296432879032381372391794249324194039598620119408700188188797762436478115526947816284680579815153254893877989876125325535726945143119509426869278250960332940041523478694294849091807328221382841532247260806961084020845339433464947157717634048814373729743868055292050514109363071400263783242470613062384567264917165375589672009016840102874444097909330673919770653120066076438240937495005101887932508671054154830760267550874784748802623638712962682696138104930916912527088417024098561060352054144272074374547904233119620845078848311232248156125579451967796246974833946722666693135190960870390423757820432727800448918222055276676650637672940869405982076860410192866402679246996101140248806145234098383268845852376018421268565288141165191330290942980136232812676820468623247002592729221845487163998316613325506399463803306359762243373176342162433072634089220600892935972338980524257188357178169560626589070617148923118818105419445293934391341269810100846181395929069944273011890600307421184068632295914692028092920709293016176277395470912357550119589551485105404530951381765599250081136097157195133117268786822652853149922246618565963524034069347808170964615730493966159585689541179755103839251657470575612643668918771676246873506869694373359056406451513012380934035818663059182919693977048962975679319934773512804444035904403612005204012864425827997235018986872766956061403027882732310788741015165658854031378416869632771018784872115425356704110813805920363638518462336196383421319117460553327639879245580247899008223063753039640516208759728513967814855269399016686778698001068528367299321384914448734491021635783954737600309409777479515144293413594105437319926362832126734000560191419404227966162789546049607683122279218942698422343690966613191770335410124372602860800002070000018378106664224888403561357067716001298573050828006006028302770650844687112309411742726115466111043460370753918531781801458863251618197334456167693079832915978297015805776921896783039735758108453445351010879262167787299551202727387603363913551764753266324026787752302117299935458456964310403691688694818905789082760109364603033100126528030074252683001472914922195503324973124704775991719992655271440230614799418137021259926338040712622237416667555379968153166793496730187295598283131899063075946524474502479439007408984498659402917890220864522973310225906866356179051511758957506066472337937576461487674314533696957967452343311116814776556312938601684880480343409752857758235340742950104254378212604701703176986535540291256972824381903773948034056856366273690784908064307892162563509419888201217957959640049037578949461714428976962248182079789058573158753463120158044685130612400022984286192261537841236112351676153720212058096691260413719818787671291852666130806961639577258369612536376637481878182783532454214627242106013605525396171387565336712132974344799093189935082762142541548738804846999466940341514573366348905949028770950627268244448438256617589076965239178768268370230726083750557935997597533216471458247279987886978517041235727459702720014851361778601217956551299492135647155230208986013016072236536359769247183378077173578140264559175398524270077316166074419284131956139756086543951495709337945107246420532080481587556971464654038455401887652010722505284252862051289757870066845361323927165933488513128120056553683690588241897814565043705493816651160081263134393432635519437817563243379522539758431380742508188037286025485895035367660604705798562417711481943099525446688300624167744287334155794737145530995556477555037267477412194784222311746922334370637467672922215780883937348667714650771285774214606274150955503882574093945901606898830511460826450136772763712624815699485154076806892113809894905064277611656651540082883567460712124133333648786340361608337519884614902086745338136166920280984134593972194407968675750188180281939241456185096137884293799151264376065890848467881352027904842282625108600997245442303349012048833002066142614452932978486059893259704342039045039487872502371659673463288343139536256611105556022578725714631579827997785638137843620354504255968868035892980862279181721296374984868479857940784468382119937726920586765237952382654627221655624789996054824399047220697880554841598223304541157726361785066976834845699065920296975421204778499930109204163602951185271232975088760798226848279914298115392495027053354410434076045282808876379147963480827249012327044038312029538365430940374422417058882456897091867365288000464604522813904784632127517666331621558048966157584069356913167756737933778398499893735051376101953339469714510183602343740994677613246145380222822779446971544371571851838002134196106286132815666158918808751448435009398351539060592141815282964459227069475587202980198062100230343757479976619778257758784231035625367744304201456192726569088279470712525276654060532485067443777070952491465816290218503462672298674795565634755563284879885092113875912061255905180290898662375271718457188525977648640002445925093194906023573172643793453844501673068959903333611956749612379253291969093943599912221079570021227621113891461790112011968447614211994904048169662120290305577454344780618067564590720880673967036463936893680379916273366416723238245846183265888007736028479386716307976045243848398449305963261821607943656290728634743441174428819717503200682292464788867258435476646516083082454800755670675352935471653260329085683653726997300615221761390580621339711357543035440740210024258611672141107181728325708454293428736813364316182955315502174075834861351661862707727725451727477669878129134472368617174112823330729214812041434174078251635478315046249239252985095624618494919956321604487295298064912233712528298134422156300453950777701086081578715948062787913150814788513281667701237308834745186462120852873111702769422241742603742345997975371366199864491412878561690986686639451605662731019467176186214802115987755294338480682674101349807545995455373831190787792238057330079262363123732814966900753084016243058404883916478267559029372001780448530562853753587552467801847854033568400804180205326529317653367388364880514657511217244054925112287470492086236429972901809564185460770901603891670105442434437436506447663547169509180017595908286573569537877626497817817732795882475928531803414588200860888286902970883522387655136637756167189594604541778908235949271876517746186280157717175719968958779746980026407191961665951732493609408471669022165541374757922070505352658826687985436053116917801880761424355627612285520727751770872344736004402810912260470423910551189595952774132284138537973104754058383284834337325238022607573690132224724348086852878064546903097717903887720769774309800516834210370243406478502617261184319678494097236622710166989106273103950832121299963299566233421125169810121250883013734712177493136468124110519263947726211803537847483723077200401105887343224084915872226808678769068385720290146557801364214145979782634349903780605429131490505613518522082203440209236917275071409369699345794173962772612736452880836174137101300273545913640895426243752223832794400084477126485168669477956654643192994833294080982864802377616845921426164954274249494584014591979327072952087485913929651529687613027466686419176665865872991698330238301752898521357553816829603397711305143604586233900736366966348127897661973429244471795663829869239129263003063794045136093928069938391486905925964394044869633360719415751752759098058714504741085420797372361807548927105728663474980778684112048551173748159982943491806680067136319205373354330489114459058473497982329482629134881784470939231001282894359378722122507100693083702633543613568582819535317197246113262219132103425206938436839185498478315916548197350803390050318516601064965384096863915944527229217013503878344890850062250185160974334724957742469894442129843944823164252294957663753193658316013705202871107634723782691832238793994558216176645747331674318896038858952581768132417907445179303011508461181986852363805485686684135896517130278365288086638905417662361124603667756686640047391752402901090164411643053208912044486683773889794562340606840169485612532242615190561802399553945316127751246224679798981729930918813746440985622199590601923706045350777731819521310127300400062828896513715840807109448488917269036213049416787085799094423857503412623799294272154558277102666471446960590091418693102826207036151307478851775043389565902155985854717463583251894467709112875873578884049504724006737494187125868768865102096681285689928832051691538540134715822421579844665172385501198840175095462064702367356696701461806746411210887611794710062187407228660472694574951333239369127842578179080313659048951604535118114749897937301261876971566709380227429092784474551671348361454632644057754960255092496052068583984805954455234496706307675596103617921483114119943796038058447660165936997997851587795216839910224078719048644703698866627165427743931094226197600012943793375676317400004376469135678367940773995257241889214011937168315215196690813524744947237203050932399159968554641632134252232228371274903544685723597391433466469840332899372361130651492198269657967582551846074377001084663493872091355321471261858580711223246135877733114510304236580033191133778134613066711243323179364800984740193716611097470184116989124439609789916202351703032285384557559337616503465107496161860141471914436827302524520999060812176861976234804169987992386590220430634756226045653265751432833113174697966759027931399191659563594299890471374770463477285080458668430905116119403366082703651998834174667983432680259370993895390365565252178258089739634543687887208956115432280543695917308830103948277658934316604488707614279248491952820481490114476713604269780122446911763649723403314113182425512560714120221248018863162658679557740860866038700122724958748552596160944574866266871431093599078771041390097409317018753510675928795748931057291390331355205724721115343326071526660463078697963072444673061389454937975405532880253965125989085777910339664945114439229867294001343554938176806430329958627405182115095620260950513045015931857242899948393254653513602826004062728776751418406225466798804502421130023125355745534242630141637447705778118860467064968201316234900666131583034372407240026418563981826848217936980621032631558521638576557416118962396888003350853537167784499577352056231064395911735632626703900758273058840599722784488149504721102318893551025737797295594630836726001167341087212154226080660630109669440902367212089947195710977288885913024610767094780833646164287927656992461666224042090390683100224669958217196085016799769630992485375073808231126814008998060323571097229216046451678937104113054943822829042724512350904444118970871380324864905363091046596611752514868908769415675973593200952871793381062500104714266189395268997093744930003573839003951976836874520282975614849865853476016661831870303643671506892113300018266740520583981965721205253013940846438244702571762541127998443414304668800702669182333091859114580096847541818250979715652280331312399823144523995988649257571554641556050642311990205807604882398566720113210040879614565421934502526503947285713978246853236409169394051310746388593988394807926897047079226806792861819378967082998688050666257949350780503922995515257894088339990227986643130290600821914351484614694810599280027109788499753338734966073220316132634220270153796359419053746949316655264259735227875915459304150170372810459101757028652866047352117147812728023347424532009263699196091230904406468366026701086303787378612397610469981245558107226873428944724808862598159329399093238621968132457426242589195748418684080746935333047846373871594208371136826476956255239718490149004369760687107624281057744140558785927110355453713116504767618604893278448798441896588661991461022678026774568192868362138201877361099925607970377201307630455017701976965131121110066444283708914356324811887072219696203633048857880144355187096577142378203541593440698885304796709239546294474096410699763381884323517793783352645816550160502204402444694576282132093044953626726533205648231176163038696603855044100118253360992195593489127004289593209667706771622648422970543234833069471549634289808290519383143824455343991896121582037423751496544991050804950596019507791527822522576662993908452673536476513401168870547152565265130654935216016720546883563921095087452758574999878993778061539726625390775516412735530484745624145634153469628113037886835097887231250527429148943479314024486650862392981114135756555884780078583349645003492095919323815162118354843375087798695260585812043466293566539374222368522790013858951024960300463902962788610807221977276920185416343033035861928723226531393135035583401205158820404023295888715593967516125859259451403846391904003525246746540893240251105296955502171211385828857057697090790841673252306527542345059577906607953512827164682098445462121593791352489435085959509858728290143484001695016220716560760574308309250733450009793482342588935150872935621054270967487590011888148151478383715051679738414505026741221747850790837325166116831530975278042954345822705918007962049867179994882683410387208931474485364838529600173333484525052067382070094737280824512220472157667876686347199192216154024397411462327323729970888743188282294088458808501339592982368610024423869013432998210169444761434014256290973387382331140007402339817392907940794662397093999560516015397956002074813967623968249240349977909698456134406322216056343374286736639354557515666834897601862586146083509044386007765516410813235707534699520168586435339515432270567405844552570142626125247310124386365985163333269803464968980851148249451045153649989693954177335148864065178116501625058494854342403823611851743826129150271245960172583589990737872745646509993594232755610165400699690235126242096627943173950283187452122792828597009549641589128634100368190904619190536515012866743939149053949287421662694858087829589137174958286899848900791729513741201534501606129703742888699901258030362791477466104030063905869851069497956039813750342681412105437735957492415091931695110706942452540634199113905051239336319457183356419781404380205792603873343767117315747877942754562789535756080711022414326187418517572593596634869092823173227958605858476730637854920142939978769732346116048124934792097105560950586055421199838112721778601315506468349739599898470003831867647642030506801289961466718843971790220875925799243111911358131219337264817389156585048828637730546808424771644884248640081409827072158330430894880507262890570734672699692115341693586055328165686836204365780069829624862150981396108895330552129585756714602782284379656641798072438348074443184581912748792919695665380941742839633896454683988754473547077343856099385909788244649731813196712306554987698636596943611847795557110157839545898477845865368590777183687311412723633658151687866069723439656100320554049721219000690918872571597510451471606064919503010243099921956326185984464774063954655870684921108166783075275166978257874067581502767060617865585387612754507169199750053730975794432282506801773454644757428902367534413539210126899423522999324148387259274457220973841049463617045546846515543236005725554219089521609243389078560688884188421063806170229768638799346903000496610699580300431823292932846049791408880524861794382908352734556310456208487878986596110405025057545211778488055106904627350047698355653115275721906862702491523842560448186856779131621927983324314341032772145488547262201914594407922097629532305864153776605061419784611233581876180013782928919040019993582029719828355440408080857431500593701104460198031693424771646725522690436386270720847081486818919469300707032774073830355022125727873933926382696304301839366970384644919742896319913751842478426500694349723062294562735950810677145049133805513445514869411133133555722865292374627409452048883015994489183303006140002898555214931380730990774389163237042279561664976129962859593557614005899344064986660858081710118731880877461835091826670376466431727044818395563648915139408324260080915654428069452148060367445497585563087900539822033614171612499333682411125612750773298605964080385732672137634532345861892678100201524681140847854668774289823077406331635670068523488901761586578479995925533084788738562720799703921436251443264362785202539826779844275535698194606561155118538266310304499089286679682696480643324579562355364960991053045809099286114730709228548699256455469728229597192901307173858717757328259775709293019327706106963812665323963788598941099521640426787217928711712040147415065506985113051986331657752055905564983567077777690424344433202449434660337075265230552600481445281864850634392112139064476807360027294728985530862473173821078185483065894211413243764006865854814728272360463429274419093983189009881491933136232293938270581689700341140148513101271278360453023587093497144277295357800370824199484419638936252858906635683866889676287236832950305033870094286742391419231232961727115072004080876415316223005582550881450816834416656328898051101169613544170811804778893331442146891488793931177168201083829872016468037232048942236687722474694767981565497261806417390642922010053609532700724204212441303277697252353858591372515788922860327707662254257438152675433466171783710757046536979398301854810363948484045144614612486911121916967956952163249601685965828923763827329642028145675379199921646572360767363372887899553885027970818263169580785504161724928335593329329876044462266665496260217742660770087897544491550083608980460162628960779615177768635072246514672704342385164801599042698560390079136422714220334638418238715303585518905985974140084020534320336523259177330660808830163910022973359473164321329478660478723505584618028201391641205046179971102289170548983616995905615155364265594318573811157327331547419799878075609580741024242667176961767618012503163530986195046317973381352133583742807924659139463075941835619383894425855614734722072090885188080033321759174885866958456371383568847563625499523458690484095961693679703312621836150750904669149741395324012262239935531502106153701713733312360463578013770602758435805950456493017250729302636930308169068193959885308324622454127274265706963946702235669776360110222886523954944334019361042363884030835725667472002871073946663297952127589493137970606626159541810582381380193790935937201578610168733063558503471093492185912753305736104949932246395050215731459533351411019928043489556485411776206639745561021247387185480296166686014777085017457707569134233115400085972046023656457796775651466145976794103730261121354526465617446946415035326062405538010310592957435090305787512107967100362501444083592471159755890171437852532592879037201162497774616460305768033744066361283758658230780566056671249053587260362971780175184246414089979363410123877815865438997363803200027763509683702773331462798978545221245678652221185697994940300813844231644383365110752304219558039761065166730309970257044386189131736607023356088775292400984770362016651298238347734352425168886984094031753797859912599699444756923382083161592115021175025484580558920124802130083233934497624990777136747172955629735873078019422913121379086626307083493439397527352704817461777492681802878434272545754037954783727721217868078050092584248308454962448288240531077604259295305030975704335702821362407749181102350795345091602472870608256231725226340131008110286327323003628679049418296363058099373134502799369990331436833041488070458888208577047309821840111787815229579003223767321911523644289479204807911385537639757292558645837481350194916594877788918900126342531241210626446945210996159116731707530620412202930439525800752356417654577056471880154165704439171010047656418639475519931007251084860599509898732090872404109004992220140587258631791640478427522687035286777581740847217371710255555578387067736866053093036165953083429947640731578278011499942899408424678486981102589265023263161094078791667678850640730541556269605010383288258234917239966359317592259427248470673324861682926534595516058876018567777403175377359948665342290532734967982426572152523892677785064336980421675271209712005717441989413166653030576668409507755297356466423252622292571258756898730285088576600235053557048628985295788767573926575941269241156083454255586345363016246828073567569376515016418294240619155533828228494197656978295170042156470340119460989405113962374988091547202317198377489975342559689970517865036124231958007287354327979008150815790224565605661784586388332090962136298408825603454296143282148607963104465551530055556941115138918702987365015860479143143851182998706748311984158253300790272587718984046610415968320413407049734668528616589773708907947315232072790822181570118350987417798396114377236224057148231800934366823515738535706617773332444207716171637536193459475360902708947128763735097605541300751081294662760350212356265693131599180429050797044207140993666078631342402168773874876763512542662674346009955581077558980065134511889324197017939941720850275783615639055439780199594551418446812162280272637663369789802700762808837435541734929886990411399823333179069703078985591252946188286014853697469033950119569522456727639639478631220560919481042801761641593502330024281405790063003137261327858251825798447136590654240491183144528874697289423931162206570062857912512317552749497037578472173066291557507021180471129500461423464362626318178454073374067541652297784050421469597717429097439810948066601589758978205542107877934871618181799333747172378365963615222309409423380590322842858490010357401283632632252437133485642030167256520656276646407593037826121517573153310278424269153959907655193150948982171267189996007456146635383416864092706746305027261912835938704621401768949703927584095006806021333211387141051008127068606740041243648433281871846463975009239317226307376712147517422461912644058674613988331882500506680120594202834148855494396851266277478300159519986775220898087231681356455587520583686501855450389286109760512883592006043437252789500333295984248634989413937657240795812692498746004121509233219800419620057483210731805239291627881111420639682333087040535548497243747918782718154197270321298351551647491592141915956687481298786903426160920564093118722045815917806249899147306956725808026625800140543819414572938617808490119556728765287378809739219212120330036777499142158594355555946615999964074678410573910399692898945188594382041759814298454637773725198544012493377121231435763799089266136204050679987335189985741263269947428352800445355368807494318449914173433027239649752873188181487093839084145038977223697057054019981198175390708705906150401019148629527483503059797179721557489720670438341698816352132322184788193264402693490671473727590127274759111962990690515103888378600617562638763344575741534881593181520453205836863559855816467690403034749457353654784852755048051172388717345007721303479720988269031218157024345061580505283165315580155477246393172362948649979463431496315961856998587849831108353973398622419644944984273431470493808716735735153377970492895023112331509718219835936677150087938343906017596386145153944520187345252377184797291645518490988483367868437612047103690271431277778989671890116549396293696017793299409650395580294705398890126041061358205757993980624131659421457176669805187087434396895167206909583312140311385609913350205095286655122046041996186805592281660694293063705378590075175003932543941869571477904710459661502661308169551785991751635540818822140573677772501394304323939357050831775148317544588217203210693752412602876778736554195063740014613895045548064350892066916301657259691281536950000884368328987277807488412965096141736144328734053415861710972118437000911129328900902487017314798952038130035246159214565907727673789655810027016597195514145277305356302181752086873413534179414858835060262221716731246933407530125408044560214988408486583483526824254644998103800117931488895535110902172760068455021863348784013169762015701407815989907432683341279478582840671227025038025857310467860133546686263089592277874599329943297760712292536061521885797578552610525134192653868386908044880224346702413688296513063260604594798832948179244175234284312302416465246005656369809461361158313985599667946719162510312227456889571866828672393804603935113280217152598447642958532376938889178243120405231928418749855475371241560625131650560874249477961351967747161381596836025796166439091714184579232985214787636607950806299089418261973778830390886187581829831292392543798937644755325473319743887901344409272060420686955330087872304635903747360736536509301332212068795519881692353621642437680551654890027714064883561983256712585280012076997680226487106095006972266772567784753303453777609536493696507122469486137370650205083032642855618904262398941448909101786744697237701876289536468654996211850554752092982163958157213127671506890665302631248670560787199372852134333262189194631808679594624063043744239116059441309410842885286446036593006277058400002326869036189853216936073764450882283455548893218086760249281641478567358871588579178669465645396054298648927038092349770234551788869091064429347982080415644385338203203965256435658694615320577926251853251002971456029929870083785660347804800386732658613369894437978422090370478670238111335990476134009945980035054670322830563830155178371615815168807641034645567566710295903788094226150571486200581174705140471824607121476758680649194781088368336616948799729479167869392854929444729142744632505540434223834143377349494082012435363314265304315614846536124997220348633405508523699364102973892976032353090131514764324051149791561309576342200408343344969271133779887176093927279665901121661813017265860539362478940254548558622710849981463830051621980842357296728428264901814307314387150494857659999181584071108737213124659822781112660389402344374299546748087877897668628811833727899627846030398320969174693705071218495439589647824789125216711898781510558195348269568254428692766937438045640606322576006158414634820635675254121171964681010093032684294976439371416314659378286107609949874254970887482502237911043188513931584991886260358763005333676801703076101157138191294269274229242324843995517737227655418036135591434161649421301015870936310757405713783683022935797316573543699361280102292210702012402493972417143452802707265683143613762511829908271231731447857688064860081783640089201457297303056589751141703283836805280338444890525767622217470178430120673359785061513069947038898267473378227729606959503820090853344369485880124094044616150565116550517761605448263813880469839768647934959827882698660090407257258949289517897280692291602508702619879791496664103297824808186562668021663743578125537643879922140936632539004204671527079121796179241043713929055219303750803419521710369164723894653010514638398447508843528997711052546956890055300847121554331902132744087096291495437342144577424589142050863740856506360088763533643869513345748519443400803583297913375433584171485989681831891252305907602468875902716477319930408111305666275824600246766426805952839861662944631365386725538123385305845050110431754894216121102244604797323848099205706360317957346080165670561473428230271870286214174831613418860930501322659005272430260774846210837739031931772144996490263029683256293364719523813860199765859581249906032578832677582393156242115791561658271586425166152721442403313287245120750648182797929937670206763849570437530886375077794313426207325509182242358575963222658218432848159029101424255124254411978199332469419670848061271067158920150584521608516800740184035230752038214069861956166775660471264984062097453043043169588008848463154672257949115574383644215548242184989417000000288057493988756787507097382545899955601435270334506982617200070060332894648006335313979899747883093370315292570007077556668222398543600507876484893257192687313514440027765854163641169307816697353010698408240228387926310029046360276406068621499452722946926361742587620150678305353151186271593785487095783711460954331792709602242614541075060146767307988698448969611365135842947400386734687818289227545269969886615098681335474837865386846335846582110477709678503294085031814041270916601748723240355804563420048393092801765187589872559790176583740660938200249747279706649678773946684190592938632464519338549870031868660399442527041955935273922964201464564320276823457627750508914529951552987649478677895393880206885972050487007606368970156515988456644251679027795081315011972170282408123119194850125304939246967676637918472917352862946439532097451856359414643901042945521774289967626290576613148728945097077999162924787743878138724269419920145695493461940279116239012088953903416854593940221912585498860455074234934347232389310005695343497156240549814914814197791276593604571187712818045532993015345403671037417521542764226658984324840199161448195571913253339121175665940376686596917062145885770925691905730746364522856755015621424566492967009515809638170832142693516242584360724595422067187678500278083470649402594804930434680180979598616766105412950331897781766569084384749360941961259699650533389859888018782029832269459506011185854288009729283662310815732652033780651216467780618976287477081536788539249536770153850771850583194045386560723930420196015935175653295270638669004978554296263198592991365139168564960291861465082205896176249456673542904301873892463778839981031941669192429806819575797388237034933632226964012964262649835639130591347201556378300030267969055670633172506648607800013190729909801319250318332741127095680317760035849165365509428902077655793189387643643981856304742219020425138582328935355496013280294102957708250091837914713789882452770042558528552697680373187006647350716288469778124871794973597879898793227451084641438800065039078292747722862409212517358042288601671798623388665249169612892242683298536120998947568311687896109058803039815863401494229213671822768877237380906432600099322323347042989418803406105931079023876891005426703764038868293438170631384758354051947229864899659482931252531642597031612690640482239408119826897928845132792910189893906733983104735003988518241185664410289670619463408346005748985679104962641491218613572609391969214055944726735514366413232804440000156849196822529726563811833935411508299173410939542795429839389679438716900239849364453709908360440773980845496251106011172548838610037817396388139566629128610133606620374756539380542342201007900912772395164833678363895782895691751874182939194289411830752524509159501947896712567551782369893784778872338076921163210506129223109058825751086650828381933224062565814217910635605118206181798285240840926427186602235683827497714285621729400377996631507902613182829980497736477956985211604590159018277036991303867843773517318029880410174049357577158989225970225246368820148935471417065785393972124484659298402688437567030127985028974689733215398713057298568763343387723422290207731093621624820396759545347100951852462753196303731773088137439206153566209602980822199326249184943203465489382863644138771499029253328359927943831427775675461334874588153717481914502103150958714841105998192958954635493171404545295485290174944967091915236168782095494798867019544662576640305661869524138711852894351126303551320875645162338950149739298810136209533127433382504110482378634356572935100231423249951559596558659607144305497690093085769672843460851849605712972271652115578094596738627786786493610504197853230619007683808175868180253688116907368853470221733837079468341063691830948427864611781530634055867853606790823245704613293526964137960709307527558244636819666678570464184121631678342301815808967205093113709359488689412645084534894721988813030713881064410167907143895140139517465569281765274642571862309886539888507567827659514816391239984133260423367171017233961801073285842206445131732136154271722690068113112705046245186685685307058590605948305019896462296544585812892894542796922568991894544903118446938734774853467816224606817491858975410097659130765003367240835446779294416502417976618041267565324869991557765658445194680118221892227245596029240670545231218533548580665869661955486170440403301422752988081891830852891774264140962670638579794435278499819659086098017512993482494931077385373898973132776503611836510361967528362043535002911725490642677864885757381175323667145672895439628348345464797804099351241765621999630587153532200992888607179286584892472002044099995627332876353869308450122163231006791207449765238389295798406442906017991864147610391539542744044535593394801445900411087394876793794680266442764907205434102519031848591827054364866774317797554709105513966271899148003979830931854264422513136397420597122022063030130522621051222784391863257886117330348123915737369898724467764075842749828028218244997000780964380372188316476019948646204691393929354213246662343843928726296870624070639529716718552645359889589030760827387356362103977833464431545235206567851274308442362912543394095664434422156640735363886386475221446324100396439272999766176619491285891887667144900966926576294795302816333211314565043520098525448325527289780053196605465596505267075922355335879870572021187159156842150434819065151098785382610729460993335364851757366030711038276906197532264118363554363106850700854943184746154817961853948274233153388238565297647101379828287248455553615066273047203361128868051756421866117681965653772552960742678165539375802268527279733077707003431637169274100360122355915361878504082498265475526429696773130587420676495349407096876864436686469254372160877525871522621148973898948042326702956873475198963070635528129110524560428662336543445501143633365939038945887805013075556984675502351345387343382619723338712103511048296324162230960827624836209018196472881292851294649747468959503502852468542869119573968483559434770926761985565953316558838413665323101115077930353555733917654333699660488121453891816332928185694754414408531473370792672827988000270803270351090295667527759014073268977049257142607237180307886152793332222111703760134147856762389727406244436515346967591439164407939442843004134359637954835076642776191463973290498641248542742284416938793773991451143035396327104397244923011948739781174004369083635919351723816462275803611328832617833448723065164863742984052099372618526160855670215582249683113298666227915930543879474746364563889050200071065556789626849190593487923806642834735673491520681007287381380363459328993923862506601958078608433691918532822845785639978265029510636315096764877431743055606575949520164757254636832344122339321532717921309279122389876613428276231954209368138847950651673332662123179968771786801339813347157791544992307092618491602912995441914153784039274068580420648428795586918307618720968828276506553790315226590897898980986942931275391781204526554799620258630887860844804651313034539167379840945336985939801151456764708145029158190112653277682764774262777624867951636220996242972360281599866473787050115088067127007244017472151706424316815339918612945140890821371156970643293665667655713011886536971011692654366755784556731404620853686139570451438830279248113666689778452000405905227295974572464111490279470684730592170064066594875471242193510285968851106835933490701949663690508894942154334843974216278478702235930369422159635018175040550781224483473159170698911636395216836096871736165659482482792756846429663475731682934817205505373315306445398381826042268337706487844788606716549972393476086173464335327294924336568097422742702086832327124282203415923519861814588514034813662118539520525626434289605548972026713727091610028278546115514061444620980897990804253318437677646580678014099809895478291180881092832697248358098564683412170949414505923007506622158952125623335461943250821020720008435949399106195550861105544772745354566414129537140895360763654128025141816580820015351070950680834342009015831256449129583658485889296667899328053247220299024501603235421679322509008069525753143471288413300032264711521004484240362763774259094937428914417486820414089906489402921192794279904794855977654788931929739559424601023049964653010487543623636421032787400815305176590906575043882073637600983232745728230399310612381071756926473558177795708910878252950230639477964077569134953747343838735111746858844737637507076118831592396804721470946955162887502411347156749824202825277645145605555575930080040183277075101595088271458831349245958570178299349873533895748401074290394045585889235308764474446491878713318867478936678483898285611818782325536067722288621206377279198629411796220208621853163286987039430350665001308152972134360296593899778514145530426703168840740193633130104914675969481075502793375073559006291322424044810346007194136388471627164967880643542933348261835818322505697492880035526170752988881032421796042958621374749121877944715560859907283683627444199665468304325509418967610425692027398429949774946423072783978751548112620196600785028641073275956441108594472025292796128140247258491095933287730048288198797351922000463210493986968482068139304634103157715828372798354594867011311561792369052763518254111294575887793672986170900165933615012055684573775039857524414480856100191992041557428040006964639122572429736650758188789868654650898520016863727158209332424604924226126480580865006503841954601987431039690918284261882280968302310069623938079039606824310045784928546946724794021678984256064657014084178900581563444942240938902364566359917427955423571150076395543625859291690582759809309382532658060530996246813978388573164839165742639961838855964914579296860017824115929179659649026059641699781867019831622982052935962175703928234485632358042381103945832224036356394787126903713918615260456807084451153730456459650235859103079612290622027008686929208117597223311112506002784394361269023204336739570908887728621625348826445564780965310447411569797303036281127792082416231907591372248154416387259823659347713925578720001431680643047280116337272964424961852533129112486984406823565390600281234755240045435386792865637180618965722197461197575263530654298610722858964673290538677039879359030606604553671839983384856132668540255050000952711004528033379498690822384145670791808377754092650131637833981661910267330365267330881849062883032770343778645256588740676079834972222486138864452666290703905134668429943462113575484510816315291515657227277904409370849153825335747227452217440987575363420407250208639605761984785151051505507699448778298966289858516019135417354804200072516602420464752090368733901781094897349377941285804897489670100184774546069507431850179566510027017438623226034586807880333907849117693913566828681526319891278770061766799890451764354929344678831212386034342793003497643211324199342259555656261192827633521540896128427709020226232443520470282047148291083115617717195058584345361369823682692752547717045741343380393981349300918624999533146686867695448175444241552903956971321008012129434829289699119009417750440720082716735892775168306726065115668347317190534373386082509589589456086223018448819713053965137695179417616003419743413947037515638724407288112990910009787994398739231347403307952951959433110240930864952937835099237053296867891571794004022370455496379507521693543037539199341960137863164242830093969803316862650054442696059591588944270362560211540314827756411563862705028067122715727356434061450596442148912642298823226837187516539360556127869746046147372222740728043460192095954344401905590795999514588310983165379436961175554817931173675038752699792345866023053300175966942146443942800171235711831329047681197017928114050450754409420951597014922685924210426925772953808116432795329574820956030816119684616733140950623193355943351397036800777905495082235785611857624279102961426277502286666024980348822184421562323828639786772296678849754662512590686139810034174568938061304668503938942152154035766559001366539101510080466111200797678005766015947686339019117057305028069849679509972824786738916178826627873744281632025282867575660586164462311094103167120159261596090003628518327523692459021115108651848556258549562730122207785215448144315917092280665452694377075661479612818891587901017389049578501045515760150270846750141373959163057928124281826826697109480082144295367031569278872839298108804806462361355365206301018574701755549806950380355176667960493592884129630742287847740566205741012442733533364124111915546041536238020760183397166795504096163229814256733046965795324800247253322425588842954660267186308873343664170624534075058490200375503748403082653298638407538160826585507605261638986364294650346066920043093941713907217504791804111256268570954419809185075112523535080697402134634896667733142632910178725082601439653738311765254792494686309110707674098259370867914092677513734611440619685492690025353338050727447549079848237969769572982064990990199665613244395443616890800918472821271807702163163495309449963230380926444252615105790874228767168407299085664995651565711784425568212789049691509760836770444545784154722863718987903529914689547335418866273942631228295518011118001238508770707993955769988846048885269718466007704685130577254489265434969196901995386587988434781588956006319491065332178507878648050172014484295507438512428407336101688003128632839114344854873791648613947353907732338436369676042654711472585136950677988020744491096075879500257430789581444811574514277578949861243148193216455800668807353737847098038344392334379157210603998546435437899377181495122088095181431656631240140417874943771351651380121959882750779805710540927285639771672066463649021784715961863744912019003984895731560675335119260755611772233373222754497408223363670102634330210640444939973903214541980401416529545176294092542709302102863718061444468025284390122826331973003000111548578689114681077336620398105923044731835655875263643102833207252473253830235972366661319711213774039744227066582895761740450695495155571219097784382320059777370084074046460821872181277879216826995554531676847282759474653203485494640817232969265788767937918880166867533432813119720647752233168172457752618410453376974624799365142566056239692672330910342863471836144144009074337660125303313049837934355059703858239119711303407246599328953170675667974985299908501166394593675555544488420277220610442949831468323922368185522659254515754261124501118705283015158129829752205685279599551491348118101163725278510353639802742886670740169146950270819783501965456336346679604449955385455745644446985939699122383973606387123697543391209101266237391040331419232246705911777990172165309717862863335024429954947775427191542074529140582273104343055908799066483374665722169168565401812011471465544641848326660061318045284342656620972312742174379467434974994500565570478504733052314183650754984290390280024696907497363211484301868986073688018821686264401227561596390300785365383967743026174303318710923562001874832123851416035748833658575608244093986987692261836669883148757067761975991626734495797110206368326260569920259447594816829532289939849820940056138341290465538553155556466075184039266284614421650548760101173392100832717213853767353223453997381730088465499028141841050406675238439623988819909483297318094967307134477816615734690693263221667977827765842359288107251565261604577880934537824703480859986157897133189630768782002584286183718112180265822443313712608065571930381869026992702514507671818617426582107934067894431687441935521679652804489652710071694096711639657562861214623764281002769899564463979275089760092866649325243791123694072503369269473648567516786404096534203721520988208070311816798930536225323190821450385232427315740468653445624414274866976647837794345937850814816374192993473761703966618874031575820560623232867562409322044570949056756028763069021061993450812177122886957754172382723475918081195220528203953666458509024584512204041561846740086443701449000538305140401607283255428537039103942510845307882603961788938103583270378486872461581941217596021905013474248154646026674373841312349995325936842786700214303021278807960558856713159957138700504520812868098494632430729373612746861429508291606294588927070888326649531424178799407297704797865541537403970105920511590295103591612322304532538093290924636847843214418661639589077667946239529244347123952726048102938616218682015646459071370517560821310471221688553869801974123182249325577739631977565070459958266901924564870710797325161415417789992829975992478524920441452127103766867658955986736166265701076175375890935728052414837749528732522437124251382468768066202910083654135827700621749721752374091925754282371375499006019545981317894418143143703392496987358818025001910081853906913686702473039516795437521364077241487716464083205409347577923674744600620446029922641864080064476403151111910028765888068216831722667016729015185355229241131737756489261369159021478706795689613861139958694678644017988572973345055158664083163608636949300301513400453310485012497325341755258923683206241303726107027867168753820512737326220926207872642845242779873948273225250369532684251748007410134545887436582248632693084077631583518805052168319663290095033095616007238078725645141936597410936248331966985819186076588915226606054985218228368205108122118536411925740529202042025856013307235238522477549383966110316887491119212446331431251936963129807107264539740747325203443382893874225763537106557374327409564925066249251847646123502652937650510741784738333877982099076683563993087561150995107045311035066374848123405461892084849636444236851646718552702016667615271408937173978606117545399425050540820217548576842737664519649356706797369885228240565964494263122613159065654508291844978489664067203230537348772645801699596870195958718272768349640109983588805794909886114805878619033314077542610262533946783611945153495067856227025960220166363643606827543847246799468197564279838755616948123769053296869799282597926208726566372715625305782518603734371882282490813417865592456249078154946594679410162084511442210436995449678497246181816400274345933665672024207367934835668855569192160299408188147165995946144202439443453839523026421487568855278326104187854962508359460517525790088646565790295796998414347960152775942111882337640361705905254353744981836488262134567887144143063726867020905125415844368764357266956737468316651600050022280246498931391531754508032885054080594846056381462247574128312940813983074938080616228111963309912457806656819539290500023543327244256963560861982409811174964207174924292995194634476467917774305269559706228582019614445308974330499439784116341059471546686933348449670072088423218579950477497476230995219083667411128427869402886453652442711562631705400942027634104540586074277916129492221209362687174572230305027790511321159087953078498604372537583619163663513632851735069995264863746808477166696382523777479195512053261884398204132265509482882610436025494763386975911049174416560246810586691876989857170521763685936135241379386095000020105035697957572015745913730073020670490440461519574827299943038957355035492935516773676030694285172587919485392717825438163556165467376348746291136051851401492377780273251312469356550253650799283984047826672081503117882316412989660183841136232110097004998576896584718841709126967625986937795565884339743665514359865915586965706049427623746477002536405355873946897580447651954996103321230314002344071746177630024706782793214967640040901251105752115399266196503155676461699331904568459077325606953754598194070855137109952074885229188965568350864164698220686954632849778363769496988848724484016517523769383302683723734407055827318815030706036001438222767049513999402791679863415328822040486386741463636312049094757616376657245633129577425475172571061608934034339102208206577823070961409212059878768934084252866709174185778990689848420715092002408135633587944029923437558035111442078516629849439765551491503956670959721023180431483311693410368199555359931131495695444771946405617205583405612837543223443001235087657150493210818846660711787724371629542119126346771008465350618339478323624607268578337378564385668920940129806014325399391717484590288507737176444419321004171529415244557725570752188025848845888457454608114492948649787668617746795991608542200513501846971624121596772298774195595018595516479824696830485463200822708804896368931674372028659851622249631802112090824234274245113358725985672384548330510767772596391227032295134716035944520144634888828920718559182575942183171277352089640218167463212579194739737110694316525187410739322641467151580312730779982320554125044817439068752609732177215787923448849374166811095545528864304723395021668687761244544991535744429136576355629265743448872767846724104710482099303721402651476174746608686414905334210239067916185454570190279013068788601628047899904918112782834117845184162350520490928025511164986297380695077821148559813261273556901572534995207432005045318664252786233294356477151679514989462203698288811087245083154447511205491303250417889523691835233100410158336000486092044502912410717266262261274412460314745038387160733123480499824402965228629511368702894700366173838242047526298496859565162851331377014325176750358311056419528881501513679131729109204323607923613866525846179362750760120730508514733491551434469613710690011385120685143141656403698950333156044150771884618958291467660673017440704849242345933274140119956913828584900603280649287184180435631341160421099060875679235228758573601719405938430134870318295929051032134992779592388603532471366308844050641822039806623439061072811991184328658201329564741155336485035570012146940028399524774300893999528487543786001619279916352226133240148138776884526174280122481062058421638840583965086073453345325941772333821108356232770722345931822200781958240797044096851569735548232705514569288799397031478487335889211628064625086668317665473863923056828802817888174736897766428350679607820334269730881233370087676879010268047339709676814477345856615608938610290961452518110107053544676896308679796873286671474159162473807412577869922222270647511521010378717692464344828894579010572651121919757911677613415197925932560617526565991824655130851971023371789016989369359331280445730310395236944413312445773023985703716246842005046439688823747780328551043259647520000317109144028621449272387836732227635708240843727396202839802479712140481999826929202252683683494495175868475859501850531565451165288485268203064782013741574082250648445106381340248018441243340485763339064315385525651173657585627710155112174032368779229948311341478882570355072351705122355503666626621314459086511661524774958841783973429228450286046142190578893143208227269661937511138619322248831605848712761244822903678052281219014694528488071123894608998188929663343516200735598304891988673012061588982205077881378961894938254717842371282262136231807847974906294418403636905627058398303021604542010054275022185754062429187209952258505222604081646154845140889217197695016567816624117771518013932989887752621039030338045265384295047720229376213269480637263074264762682348551071817158410493504956485506209136113621908742501216712637980967150072749225741197099305742180214249283229033143337964599959797059946474498779491427429505627802148334718278575165876208311295717447459561791995495251869910387413777782627860840059479271251043139662342781089783934253687536615603962983127723795093290685906509275449070728407984257746573569738572512656544206646477216992920235363375919510663766195281583236589696927430812398748993607186397605423229333938765575189449217702565628544406664310858991742217153454884792911029526006537787336383480735744726870694014564129084687980928554302865974279994761107427720024309865405789760011225569353110006301007052836168810375738289857103990471875706991854434346910552916275852547446494434743468611094030017736376246829047886718404225237156121682247976363399935252417493696828314532353476737421333989396989559791119504637179831083890378742199203964025592332865192514315358868445684521919325677041618230235835203285392807014849229017950910238099597367420074453770081802993547353802651332385183599557529003062658079580322878669780159968649573629479562790417250321830374677965605054368353306521059353186128283477723155825335592222377777524031290104568427118731384684517272752816026902863588421272643653152377127933565554101059958027423464686103737476941417279325497328128660120637648189980846704144559252134838803875427527283875791133967566506065759902608439296311767787496208993382775610846913160976624670214383878013743724138643435253869210460570868691539961020944834558088247465742628781257982475381339542959837204707257636197670142036647620630473566872439539865172246080178614182473399409738364091284283297086977047875514597198787625004586825396940345885862697806460200162614028965857868880026785806498331562272270865604076061415045425677310997723163175172123478160132445325470908124119221282368163028339616215283599172617696602064392446342538254040930838280395896422611020056520867992266896054164641121686571476819798063514813037124125866145822228845581546767870864714200873035289569282920185465778830223962114990473523828864076009705669162947911389507449461174092331111736154676351143781732766398487916774833722947413658615781858665506079448711831012139180288161051011605567004340045852974833726782728790355530215100951449663250284700073193444820824233141016008392058792420062313422769704503619024423739578218550353361120313001477005050410808961543111653063245417863990556836108855246966908539888008254667416789003800682385156804914079607674899424080430092654204132219857076223896743134787550067360646006319389373880343340301104384703016943591789241469697746108965454116295022965931575695870136825772457742702293918757827652592515254242529733830986110576779673956857883875178024566643193511248726808001834794547882994999474479850445416480669591417162122153699324994030643289569373228641345787510262327499366272108467644193992879494316676924548440549638284455009773134741109439830838359439247175804852993356199208273572993251913887395063162665664009967911310321778526765397195955187132605412613970523424436553434412113840396622374503024837542852516836003176358856728606459494574711508083502643786158964220221069166202258302156200057333616787025363469762860779095604481175023341900153217940639265520184799368541099693732389444093285186814431167687520723957463433162107532610265244271588069161645268321975320711366394729997427106547568234451526148699242232309884181991814393492264749314794084083599299398610017917441780385781867764938068381140815911740082814935928187703705257253953878384760133171676197752829005623396272130067468456187443766072257126948237955366665932927463819727169677378780749007472698125059370197245783848729392493936340367714953082293558390366009451831486554729963027054275231627702401555565996257716966785710612107230175133008794121758010591101638111058901636781733719114561961053108211165667857941487274057379804295359908814463841750427123111530308166695058905023678580193815213778836105965385934228039590248920859086192918959034013612857621678151252737569413916477783312422034898264600609346129250280986056690112346023348486146740403083358755886296219938180791783727682625046140973448499361992527875310472246247872024038670512327231734969149105858678412675604714157629512994767457440527418259992514892369149743853698992980769035048426763464362437979894615284164158562797285456429770999615629753744895077139794739783985686103102972330359099634893506679377580523553577095256001650999788702610848782964424805775045327788037774122103545917094811690179293697155803909433800216499538395976115618957650591919919202268306943035631649126514109188099058779088710141881740859865915954827687143464553923706483694732487359708940138607227521709959395303756170669023816665944948789908665188320738167456149233920036839235422613631319401037473037877896513059347883013595086841723643050622101271887229932306549176438329673170888550923924205320041082778145739913794697170156927893328222639657562868866510214433157349656800741725760645674906556911574210472034647491707422772959288672774975917946469561535403164953656739383597345411910799460995354171938367836653678743298291047959112469862575973299067843718859706036416068672812071110460327998018786161383998244028168432061069098052419352988228523627390912290949594284595031019984319263155698482604718677008461835532905379729832918908057517477131777246760547179386664660539531350407920451077701577103514109476061679161740925713270872318502805376255247596856897652558144888298249258378320920464267773993753038542683379481368075645372356164717034331319425213595211374209432937261165578575198599559252294893110631471549536678446584066767415622479415101985474737680438299015432534405801295483825765297898333094938932943777631668924585449012571094202415793714149971436095384669798864611560932563196407533482011438939917734634066735521378826211607806088884745237625690390327151006643932732189396608126448484772984685716320957377062099957958612784877085453696780545523492656926348207700389635093355558692503174899763051719149329549526656632928238833080960657317811479448608981642085752001380209284941728934214303098548388421149361514296212679973011620110902758643838227118721998692013272356966172527059818908827186038533615637600839835736760950898098159105545754947275065776168731138324471472286240594252722467960311972210623037692502830269632436473649525377625638759911579959945065697615149109479260751993991592771711201394963544637286302967461187622468922692215964574278375479619804942615872529018215435292105943935132776380837929324426173986375722138589499447304449277344966014586695476924544556305156379975863357181762177477742181882318908425262613526320238648089116235956071686919190178969627168962163092719466748213415698932943453791552643716657739108153033618322856656067599452449467737486944075688494704789564168628821860526241708060645984925995508346383872366758394662962692122240191826605644737140992987665064289514041365383846183807692542415914334044015674153752209833105337325146927883017287443014843950987767660799226911811054185463447605954843357195711877821338234766523929655482005063106158170828631226423886713972683983981824902642507394681338767961510139202117347297760182987955609236808656879120265888086250206967313324865144936727852600313267339855060863010034103782777968692261818192166341025763382482320358945863362156475210775710289533963006865667510241606892784281506597614299516529004819035620218815381364298042020161741197749499043376066959676477433100628372317697879235873159789255164517509439308116003258467750636552778685637664424633050498103747585196061044323258975148672707522730894108474042706719750457932395609107846625626918691030786180005357267305598817585099476192243220195390249915865706957172642640549289655265461021150734631973267267712609833814585978454412215890020964539159644635013185031290553092488557167878434622444072493818749422767130221652953039595180930656673521176897184621441020880199800063154362403255694995715731815795459769109350729459503396901230825953273061358299460704594633957902100977512733431074856306333839245499159961819301848578705177424275707834367261372607032251483922583063891347065184885019601092901356468693612913183604778960693574663838037802889196938725600648505411131229939200096201492931369705533453019349644163159682290374705135853018305431340325993065118822545500681701040323981441669101539585164970423547138147239451862473239723342704928512790814297404002633234061931435496721263463238841962855311265546898614540633978305957671835620856092991549119578822648444340227382057605757340451842546974675864967696933520618934668917198746659727373771011189942952844241540126011958544624748574443330947395992131937703115976857100863991764648510959219874347291106672900420449900267143751543671773133916751631183759624526530662000141726623631710528801536127793870929784471170556779500758197575733665046807883031075446087227994071520790786980812360736277936474376437259958869544444544855422064578518905387765148701026374910704760419279147188689352058313917589366193174293524243331361365924077657574411780289746003679192100209637592936340603405959021104687902790652968012665421256513952199183333920091107688933260732028141307801533698351742722314438529617843838364115493754788098308980092926959451253357611434021736822567239981388636099575043434857328641236964606189799948762956289608456163917708588668091813309630251591686873994722261318164152386336479128225238256179318888132192169348776118518038433060777634757766670354055177116993106376859911532032656415284025815884723167828468010814026389632444556946895984142055884478459970404460282635977575155174057144087688828440139433980614037573193383323344740954167442538982230416229717319299177994753574264571079681304304081054371827848957205073695721219412828714638749203618555783686763467972753267012220656299023323549260880899958209030251248493639440097329387464111501570734795072428877665680099652260173970384857880781958660709872532876115767287765459414511082302914341702366795146199501426791739469982882401420831173796784142969156659104483348064638354209616868214712734951775906589162200126127927074800772534421796591692658286353302714402251766800536846446559602676592303473525876818273222977920582608976913114975871239889596353477489157379480086297908426048592718092529283113970372501262831589930396142272934883277800213797996179458715365943593071440203596055189984868418635296327389006776918101613556757506168911722086654911456264400176118299637950285819859410339898150592060848473714776003607220104370542351567063417261021657030636172541487194655957604176611591768948043518262763381717296241166717489353548177946283981904241266815159481917575731871657613796860713988580059691874599812282480657711930773548662733735698599110885035986504854469499390670526323569798017352713820722753001135516634950595684268943068486453279713347658449546883476126013898394437853037422704936981519249478916321858190958452367388553600959604062771264794591308399038279670559109010662427635338528725206987960119735092085931783889275290682077959854796666854714377760993411299928714850786234159290591476887299725246464027704121726052090733165744434955104230284594857580142721685674219670043280705867238803816747008958658671822021224406517734213320555672908078825299999887832095101428068388189282079675366561694432283380072807852513921171874738656309595024362551839121413241272430939191172204533796222223926392555372811751782162995024765450116207190270451605906557636031445420041910900346590424447489098264271200104440776888335434557569295123708866481044212561343371854227741080698205588262736116672938096874703313956489234465792801951357891815265140475476037809474079336914542843281078019793794524994074891227282512622759613224456173626969575593630274275404701012255021066799567741586941527862393003778475407166454531235780798864611646555144035564429226942247877405056666235050338522555956930417437457165848440601546728340562164881881678370632806297392258777409532432248146082081713647772216920532635732161454657305825658494341546677330939546920726751412689574980703510655284058439332439069985606245889312870991400511405130012934461030387667003499110123663334067228334702994622335277822583789917504833355836587472064181540653385846653185518925054151038975648877144858058714710260992381608401176060092628556467769726599824241527807247738797560765609663238696470613457249575815173165314900981707068917325944110238104471554627862088415297803494950606542727356310383682035986463760826557092822856031012009000338133093771236440129555276789462764907676720115798772841703233241876391680665473343868070790784618872753111929035201249801105688912217614871147594594122335186999730370116145248474359903291977554987688425972600860684114610417830255496914711749489844733496144193088261929847811343806079327386409574699860764638970929855114709999909613782094580520253472942425741599435373179543862977667047906523746431472601882916186312013256845573219214556134838787654115876769599410940485457052624675490068969551173963935210943917310118366455473803572281112295739177680807858987496072301366423248746506114262284348646226255415267698026623157831805986304030619143617645647569819820574696784082567047524721631308380500834149112526931812472864863206344089440618992777287734163542095750155616701930429681865147370141216557473445185300799792377744766493493223910640692075379365215939551303526401248348504046085249376509192409251430791768237334835510583910145626049836742872417263518461254841302843234693389676966466875479781319195454323835466660559672146772528813334264456753289485890269821098315485778076254842319894125354952168212889926721396538545226589922487720323962618735890914420427444654323423836274480046155032137577665671065695363212270776506529679472896968779729991903695364293920905839352377900270640291376162273638042311784161245997478540862888192252097930585792889767505733066661101309460004311541673456746968448465190719840028860332286917789920226918903926734965813414753192728278700224926321660179035510858463170223495709700274318634787513230442434600434362506213961170738527705035517232402920926890592900548516632005411818296831665627292171842908160865823760062796195641700116123177118225065723605795104378085433140733160283521218749267404096245275111844929080731410055697387874103580528695876661012788670824197762135823596510185733398328649272455457289329730296844175215575969570293220667536648642598349593887349332949503185306083837227703676728581571887692697928418347602934490806599082565482086568277634595561352037196118510889548896061568551860431725353164001901688480797874285331278711241227876743790057868826364098498135222590826125259822217171318559764333850544700439959986111570806633419364536319246642765454096923516232423199003260526790999887455275561771909519385541823950136332860714407037872433503802628168654438465024034750002462175290913619828390119356409849084908702636057745695182843930457197560359893313112203125542943783470333605695981719959002557817140865195395121419592691135709494274213937642487379715472236180895095219571045312868647409100763515697209390322082503179759193509910347546950719817826855042244039859578602034905635898197589270302103179691509297938123849842597576691944669601857345161732467045975198696911870327755434388363264370294606663497105060200068999604058954099968300466851268023940103899502249467350934841408239341644156155284159058328934501986276077019040924648011143663674623659879273404766993895682037671442781725409133973799675508439701170663511624085563397653779914315193304287195562696567704547691847063478315058483667469472744732238944089859216473126571539406443795083589174545220455223127780736689645149611110943196679862108416333086882266886598313500774072792435677439958160528372585461304865716593710357948970500387645089365942854665746234612207466839149846832043974908494047507046450506549266580913432540137111958954284487539008727712975919681284522407009964502180052446963104084514712526503233149879783777669047041234222435265136347310053188306370721703484490447962890870472349062202637219271151101759375501206463172077117269761351372265050391290564474261532808896358826990140572285623103544261751771580897740201162127139017483223566388535299133043032716261365466650423215337720732726916370781836507711872934334357182629692564956041084422986912430421141500447307961165419868323109991475641810118831894219504118569201467048121803336041857535517649730963353176950790168278097564912568871336226368030578853488560420552341833480219294691660997718362488982805582738503409665523527962569120118608804914501354093563841335641826610551583006226348071018779838387358676735995642311994110529383193530617226712173430954046650276723451428625322188957658463350754808245328592099557294324479620947428284895445109265236240152665844045596670886036653458153922455534688927537942159415924289587939724626720798206367644558523906327889478225568787531468370857069449682923374178544395835773366467063105486827538232546016422300323755349721767536599448019365668757111200158384561710301823806868430346773213698447559693830716156597953494633534632394511796323821947136660737748587716538720729334604523707817302172456688966424126978759814052080848728091882227065286088767723541402267178317938995145214849080242100126184276663132787044216141239722006655282936420367856281189108684319482015027517710157510412635253131130814279764731273684023766222088165573221235917629896844661626149270298422583735233861305627689680027461772688129743762766691801416435558812129140004265579738281623397285599359052737749142329582649172428613584885049336000479161181730887953929366564491749617459787855577183228360927513319524622014990010477645654052625211904866316799646612230013743033148713663059767169994115234694196983979113835111740383043258448498056879071164250265639208451735641690053889411004115647806699654864993734793233094926241501885536115493541207150250400451369273576197069821007445988253231258643266590732960198359393161730832865630633540879418579028554911620836546849496974952624602611969657502322922147600477971982184624252051206614090268944004918203890961416076063935840698753261978597153217182074392573332105668757356908340849726358528010605942084286233362904536085386112722558113543198144433976487017475998135336040286157719106018575756301083662884922253372988988043165468977044523190097905264850954744406922196076556649412146854845681238843137162750988129254214042536420336254587313133161721498448826276021754964042327613905199671110667544646518441062866912157031268966539591583641404433111601136218444476830777760991986235108501446003051781803274106817292418119196502551299436053140704145595088780881207152685891697649038784909874780099140912493800762594251651268261189130093457756557909217043441207774870276639122336924331440417453131306939811108187525880053997134479608354860890633923352447334930883737667956485986422239985185537275012942270967346643170542260217342688263996824752416716746979407332985787897645804341815462190652897280583661329473949909958108843195660680125771784113706983866649945337935337016949328591437645672689186041063678204270134331229826513477346484833877848628303078022723967625190832137795640142475263462662344164924652491137768527550075050883672751139403601372880715814960049904543244526293021776895686242986314067391349648400541616333034151516321554059127707051123968450950953763978880949069891646485869766357857645792249483714342696750307847684799262341475538637008246453633543924538419411455772980218324771959003788506161022792340562965658449784011052774520483108283120913386646556117587679141741903714477820948082672097068857492417829694241576670668426863786450330044031498885365134578434936277425497175948074674761433933464620977209716148758518273838357320335950029302697365484199664985590750523088834030224312275369337344738969977951543877666866930156366585647142677213897438026199400991515397417788766673989223345807099148850473391729802701744257516414711192215931916192291103949752961913453899788221641466486541202501308964501494955314626252391198459239283674426455037738769584406707339266866760126493328692249338142199681693440479165611697522403456165275116958680042071329615715554438805819980948570094283482969250040995806214498314011074651040662947160106118364204145852296680214594992337341093935925853641212230681400125954141594730103131115787419342686502146144738522718833889758507592691728815981051792886003461001799981470885592666800151181678895174250211858441860203040134120513382430917198869236601558681398890342495274624918817372884668790699714521783395978377039309119293408116933848643108905178656532781432316824273825619895942288262173751309109863956342543296276447997137981857636340242330962969816396679618125982856237489047927879953795648117213758716460359339347235591636855444519463858782756595807163251914307681260363958434709162650472918409173380552200857447511827225355870105083141492114271730662943116392609422090129031790184296582906219173068354358708033854402734319560366717595720499311134658249472638424619768757711710320481558741373103301992445311333749177300723125044297353227367186894075895583397399724879600086272394903519649913452465006389458643219849016114258157628978198618546742811714351224312732500908733078599827888732137749776769965725156466986540508738834798258737752675805738646397224655727565414279307730212312467575842373883901598933922596149492896757070377733171880132154949147160747098025851303487383493945817420267215087801178019674067398325726444269631865502439497324649931174844524730105659388497229661982960293271673213247054153188314244032932773498119302951010379843823407093236409425758404494079585482924551756159911915415249466802561251260805531939203892574871234350682342618373237056708924504983571325935854134738862745859458478684380069247726168837679232847130377620463030930701685710867787080041985206297740353984086470119018490155432011101968717967483545604373744507886206216290180371416112958600807350671289324916887965688746041726121139950069571352810675803577349826436441864041573562537867509710824747442598879332659645663867090023522316724123438851104708969633806619544218528421695123521172409562937963801307562132350910268463430112289065096313356685365683380492225064625728206085138244862067678041387258554011291184990304101346292545062442266754265301056674708415925260040541142564625604609367321824803442370439799202563983808330338641218291221283354812257228544963433413676485544686633339018066596545903710973210309401838606248649790721576844972731901796942691797495426865630920620417300421784465612707039641895722244838535579798990803944491787114305644284884281672452909445003728358216858234793368152661855288207920922977106493096368752872202680844931121792882087496699016976361319549961987955435605927139450279873333882068543861138026264032022800319214971299785903362053916571904075524011444293976958007107147915078109076409274092247670225139840268794344291539260202669556924583455989630971636902458545580376090510399801574461396659788511557307412713009705771703277554447248485958306951221832392636800054407533524879118038458428675453488673311884737016138628512630261823931105976937037773860583708119453723942978271500803706489211344583160254484018508205041314098807930752263962719625693250000898100410594159008926772479583650869650200459685745981168231044320229285773264680860602216083697114672486653620688142067152087255159670193773350473026026384390824393197099639155980875594373733002470174974782367630497056946288894238137104505998952064486721909358477262070681844848882752939306480988313332721830026114035405667556677141638400530007003126803801825546157565887904776573115031895165083544110644497635955318490362879496703255207165322304378503239249793828021896019344276692793965751943940113089110551085859666868977057574090039978863994197282632446297291402754339249011007454592916399444853297137543302325561530922471941667142260458125142787268014822813774859135497763378273497027108315981341808504526962992309577012217506796487942304865201291704128204903035226656577395872404396408969311129952474268756107563170227583795676333057823045465958509172514162877445668954291183725439138804890598697885770993227816530648683396889297100992930960499945421079843641095069349005557770213341653714735155925759340877688344064550554388776872051775499376908854570216524793598890902928444825592665622537022565667596983018231861047560227121914496339625985459842008198604307710314748210137870247703523846177888543676047025656254335242591002591746431166944299187413783514692055775643513315473488540275541564432384749191639438101595729328476592090574982522966213167301889602285566809546288736263917539753279619246437338923671641391911425658370224469679659453175911851309570647742642101943806619030456002182746633299502827004283123333294821368726014693437458382848371687286299592067177145352146756248956405861879958373007133723510832373274383753141180791900371293662832394268757882595560345264220177885554908321031063791436759733501809665764716554064568393790341802727337111211535497529658334079977596621214170411830723538571233706240077637605551312749151286509896730970238661090568870785628755921109181362058631509430331706683976479147504287740500721975902677359839402654859547535269032390306021489194839728997026640494036425015519880774170356073663709661798731528363703759570350653878803129205379737486065379252747244354692567724858841848253449459476528162861315907531910703652994635428892225948052421978778962899544003423162740724373100508368263501497240378060421972073337901486652393790328906873950760772162046529926901230951512909992079361710250044822477715449517592772819885111235333522728379638558827034321179762916121088162812147528513118495641119839525716512186811193659658100465768191499675315461909839125645901781430419697005094882294758226338945062066650867354235441684254411424645871025901895710007433047925521464426302316081161424735573336922498021454399437987541081754630276752574993233002827736361298299347089165773329084292860741528163772026280493304785023788174180282391749743306694118409137502731966551281850477063376579548127434841839166936589990229122767655092375684531900207949287812215019524208122083011491668962972197197667873482851381933714873851161243431729603618403366403975314427999768594968935168855484294088492466713713681534335148939386189806472577138757992332792352899802411696934098978464900829891685674950682317032964328946561748886537965973606689872246448031059744225111049433205224733419494666375186951588622551508131015977884850148907991131486239018643503246167021462165292041301667629954874519975975667332476849562612313735735306870077190784556076250822062683798832785824240653590882017055828561274692067367710268234689767256360592581149226627622210303519424069228923662566238476434585855238855032212060284452953890428014058723071156710356120830723920537234946934953159909881435093842344438175015675963434220646521539398404910317401055690028023701181857108409519103056228006551038662840791415931791213223346343922952872970530617257105121793752154812526288015492741369763828901088599060383623297398827223329862557139520621572108233165127799976021360571814535149564184874078480993674637160064811776749805349209432969888394519631382407487822204161356518281242343820246217330724358957477202866315173850223253075559218139248079201285037453002794063608953269689330318581713506445103351296840409572450103658368760717591930373243643711489033946672086818968907259701608672791180355151955442364519955121075535796380726850013126888734278245784281785847285475926724779117034663193364455544277029638052288644320788740835250181937401975634670783516697576292866953431184488856801397339776163970990183050862916125153345159821358805890515503800869364421846864211826739940208195414492979703118624322470132764679043669806717160925058894155983029716066616295983065198152114034363124490604928544678609855160781479856460761331847202401218694731774020475200348179449822677174647351865694044731833579853715202296367444163160417338209913456015776716756189875459052838888766811774187546327367023764287986675654505632748840396451723476200557066602143111251121313296739276580089585996052089956854656407702027393276850956762205764160557260007110980849777625642933731347845023931202409027624824760231534381434655651352634989753058333287799528314775038706020512515965790147057430898153969949328370572025325552822454226785386339634631683938971904854336009825582697852290502512854402406301600812515691539094412840406130342554787372224085452891954135647741625748582745330092513826580498911467301950690494768526944779268630406916255118356764024692440378720913187451885921257956793481022747297119026861922982970988215374373551857814308345473402741488079594484729551000499807187542455949366752965397289898317535317452393336780089115478368858483848093485661057524012600125190319023545565058090475756383249785048404676411269702440021026732088486765623435685774081606620871920631652136244546993681232342790802360960060203809787865529600945294639600598934623027343995573371959206364268427977305092846036112539624432523316577789387261251373503550501265974749821031830799363768446488690924235020186901132314856649095120459213989415147065452400879019591906982459199663159452320180699791515131426143058794595475587950577647497028761747426443859708290371510374130168169327471240853161035012829089944785657774148880265673636802275284696296405958555901312746171894751818773473976663873336351395763700832373583017108679019960405345469666304957660034394868984040987017220603141525573041945214812499665834069950965138399817625095147137675303536326692375556125586379140801015092321109021416762561936972416464872107385312135028548784716645503049310323434770193062438441485397306715548794114545747868653428650501589289682856587096124569009341923558747290925663911635584808891786351534093407823705104314535392145608458437027501223596595770971396030061501140050511270451332210572910514790844818788999630602564752368223458356126852274215353074928737830835851840665719049619570958335476350349718483959968766658744074485982570677990350960054001507109767359721247081445092930438559569050504548008984902763418897397857271541515973907850427018786535955227200950839732538529479315240053897314611644302157335805534390472630182518725962425613083692925415867619080675488542641320678082963608989508682520532715512116668646269978038022228668388595351844032011001299852489038793887338667892021628211392962418505174547676239946909440325309331891599529571479482076919924220766185333373719336314351170438041655135053221143181118484131036624036871709596495871267791173026468702409763760594799063965732981197452725192736659724806318349230410050488453745785187527254136539335749400325895007736521555980938970611430620743330125145588799990432186988733914405897887449396941550174113169548429342822287185373315670753445708296844745206869765013980947286218739283445829133512084542046058450822694004029256507595598561557313303227716167754249009094841067431340721991221797652181772530946006455125707707817795307735674261371574958990514292782271773207147031373300145456115533058282080377520041245336869154440699342632817641902235668883806511014101472334604713932744736950533402734248368721261695998467338135415892654357089249816198944519199216896773834374466484493200879232450131134579637529302922778409752900180798825567436992992950557837852671794048700849226768776600526900511168619679333199465241757418292600675962890978186897119999397320898157499111883517267394542375317802550448100684242110492091045145981937053021233072617961072488251784665478960742370255512148901706724490588094555268901608374264215528638644848214887861830734280061998448997984560617291005018682595144653332047942785435635788205764717964248353088656710111201820771729684313219260054407437014737642574766159540108280040818269229036742472370572040518500084562407976486919855569881652720415024546285490976915713369192685031441582730790817705854397765577086564217034632932885573568234784175192922733120284856037371269563676615924122091037034514972368365856691562231113065368457159769224552263903881439975143289481992916210948985085342886098029371892948667279260231750424859951369775991937880209527561073178509517199382861729241705153204029304844630025751079320466756584506113056590288582553344092858772726819638854484882426451757226384632505805376071957121775118889128756317640950778983669979514911034706553483665589859156072868715176286388065954381207264119253936415426671950064403441129535547610094695170361624901719226672636650683685768827573188890568729471127992204184512227115989657591883401336602357748017589712941413859165674311377979005306570398431753000999023761115777983826473705806116996834310394318888589336248127849071589043299096924381137260869380003167460672949182563823018103378421379036366655803077135360646028633673350918866847625893508748734191384698254846586359240354550834221693276692979884197259795313456234671668342241374556198853439834921804416582428999225544181149875029006624069514216048807373668463533189381398342821405273696071390047526280971828781044182496966540716454321237786702423051536772863859903920457661731021239147717139574344549122348277623994581165395185942592796498874415783422730332558726088059299290977323024496032386290020461342508944613816511150001929417058313341770405652920635257657884285710084820382789890510087242213050637027702051528637329108559892845659620519814625762458074196615578146355012038117513624633789930324316985894908959422188475053803723550081904944056656250093593116519524628774116222981950471475345025157145588973531529850599060678770834878959408136008638229481216937862402798270102023088519264827372788116075492082630137550291478199301381618295869844469700223501599804805906504405175107904104336828333390291887880560161499505315751036654071457336133760965413546455647985324163349973881334295333734278106965748747843764785242190033349818380259196256234062098245793652112308055643793968344805983613723427833899746807195850567675605259628606846396592271836084090960193257103163448101352874698187490947915780671182716791082405989815847771969149610784550039720934925550956211248540597999476622209247985795493626321004766375173039100635883404569337814335592471808239211958984179234474702932358778877620473766152675298236954994828426646768765576486473693448184385406398638225790814283751186785621754790218599371278139418707448381162912805905602053798083433603492425105039683098140517393560145778578148819218673375373515672037395208997294176519679559377663745144885553236132293852657030576185496254955612491046689953426667207809318069649375446108525055750091659377774428709824607075654697879713916630148320822615002964454785548577954969468344513149150968623532857658463603770614585784279996995550031935197207619493605047642456755423949669636287653320067381555067768716685960291424610215913548789031806612246488409125413354988970743624509608144682809093074748447287497192813910436996889910057327806195850328149322829849876340149982744680334319081556971632354796072885922910609906315356220681192439429462633342961176215138313409891953956229089033875860940852953744405081811159437235589826209289874110565127482108570895281202213058551217358160817252442721730951588109593014898375887222408021887787399689286297175238201350164046696722850283234164785617461699969813215558851630715110978525918630236260122069573280591343713982099237164898387902078369958227242955067026778974390861796667732764562769103789315489598386216566286581424885932659390837771561839686901755574270233251283558242659975975112349596087328484627627028508950005052291131285090827318926012128442046917678296736506151810368043184760911210341421320638714483945243038308062862829709800805487466347356621800881025866502394273238174231196553738681296026945057276258632680977150045841494141597297083455842972207603510699327779515517777671880363006119831632847405841402259641964065768561256765610916687112573833666444903542262134910513150506394886948020844166154980428923736120246697651688788355947960485709264804977834730401375351386881109054158290064454638324349097780376428005556480866353086143120568632728674175718466978868008721588530528544180057928406353518954224358708438825592501643776585007570717116250695459993969061592017540921756062583201099726849156070184484546781731454383274518432173576188977384623279034518199790805106578450723093604958550084262844006999678768183751631907412337220196804671423711001281180417684220687517758646389261531604943867558575408008016522666246069223578372386668179268064710924121080699028155969053495919671395788095499695403449924080729203591343723336175216789393582622630426165505238280829607358730366039231915135610459977996687990724979077320796841043206298407456704334693894542313357930946580503042671742021514314160778074065504217792405513004409222179782637224249943507082505311551015162793687135301486626259975982937062272814406818671516998882085592860550783591572731954378646636360030992967216235488601019955649654433821039855023234860730932604563356650034561305724480537508172148047706240660847573417293082640886418135771146075722474910987913101122129800736758792078159618821561509535515101158951726946866257839532155671192074020732003599900615820414767593857831348464284091231701524882621517025142430214123652329536852779912437712767697544585055285159361781181708098934277032816734697741781044225899886626563670666798814301852808758954180693668144010455043461526700009087041867155957439280731753979916596046659325262617947923028548323416723898228430955578516730498605869102247879742944480842453533293390354751303136181470551924743934728887594498554276250389240721199616184613706148840136745345952826807461322112507356251089572950401718530035389204906720321062940076973526248480222641528558729036246645181728181842723035711597966505235640186720127128683900551995112543167050930180003357358152611839772988381825369034424294197681245228481351613240331180093510505769132494788793741969067053552390291161348350298125790039674443889377663539649198460380428900995158796990076320734730198973129357263966925916840382985745352618982337726984532911667871824526807196554891118364326847289694743384803973793771658276966076193634029706659995246704419898491060756234565411166768891413218614018183983250671355272148834892247719920482257331780145324013619824568614604094165913492131366270724611716277814042455007223920616296310533727376987451858315028049387842619978168129577457822856804679195623200743000286703968067684374563231275038427228666451560850800572997781543706116353258123717974214941610563828692188163542992176959649470570402005269405441668730596219820698544138073642339375380881391410660198286570187362629848774179612245866464573536520908495078788683073272324741760554690674026162872285660974218067739979871459043793497063332389786184580190502384374659856678665727976847064192557898901254649813675015485330872797716012928895410013949436496341907042415937913575814394195358751973607805180825324715987564526593859497222237415474795583039914677354520924965532911120485942221287573748436892537258302886933757052667503000287387388220974618596817707672703533588906417122084238725422602855434491303477024526661896400522268738112765743469930505161013731137467228263199577383031905346790599652270345260149978074585956270307434443103273207001342899303328061873024127509824791620022267316447115933654441750476020899800993021333485003042242743872749781181412676922146184325411227509652464000008187083150624645155640029882544694532627378121415630895135564820052019407723197604868762251059241913951232593809092720761314308909287019040113291165971025342766123367864110022406783679857924774872778062963114644990113850303315496812719383945343429220813518926462573233142094599105837538090643954046371367432288683458546432382593802688946468781570539584531599153087403752805360246341256671609014531605796834892796168394657593328300104114437431535446859067882163597092546954712417088545753252984209881064937174956302811805437667342834230149252713518537449858389815656798180317841498326781611058859996246141640040281436030670057138383329784533952560794021074367247465195421963618609853853923414056416615019501136059524124592079265465990382272431418969400680098150649047182941842782400956535662436338803997669271500710266989294449633922227964166758606950402220167725338233325119235001611296749238801208241774715598040917202934647899430880618937455757418882073392503147522828519044910809309898054577528514454433198663836755250763934394300175872533133985980924756120953621444942929022745801205275960998136072687177653768034688696842310629563309644876226696235260915391345832493776167662008713400300452686770439392284365481816353850935481959280217219036380119615549233766558550881796337750916197878262726235030764761145319367050614259983447638051607144048365594572471030906396870706143256453226060120520626155511189115787095925723471515211807391099522165011781243637798439436120599129231883142903608586532752210146447736734416303542752963765633327155118721693613262739095399256633293711259789625236457243871050751519797942340035983079837963287822253236819602269809670829138301026778511817361119124673042556583375312966033951666216574548423734428804535354267458783497401144509609361139766172368970505063693865910326515050148842451476815292675174401078173449238209034725880588384119914224727768684205045289352817929919663335379432824617308553281090755246518095126182780877440411099604623547455632204021664836057678899306520434913162538226148292004261192617305452480370339869916103017174832116288787563235704429217351966305562260579945610991253075248370104828317781812532122150899438240573366077351336288421610915811964149631854487267876271309262404092821393148315749174353547573728071462656562655854063124676676862904916168760967426668217349844828340222097820518150772805897093956019854750697290798313378121482738387886103930556608453401050216031185926563841662594822936360448286277665597737553510194525638854316485261776587012658697932782952399322522362380816583152909807252703477585305335143561726712768905602092245689570070115814679046101935205461868964024274073879346249537219545325000059469287733107944300734858333811461046804908399293274805445797337202361478280990352927666162633458143496961151653588366214776562873672683544994833158549446516944997013883809838622378455348382709139228328902996871934487574213132570998131784024222066540076440500994799836660702453340253842036194389521209154614150080269934687147565257552585954467931095111265557696103916744453425942765528052971225752154988503373050867271280831147572138615629501260379714446965957634190276473337319907139970850435272402130679430833954940418161495067597999398951223844427215226805919709108378291527479878159839015837584814340605727736196650227627071303404796471191478584759181139667896814753901372338215548109349941757939995754283753275944009170611692925052027627486240245677030649946778394233975778303063004711136527677316302361810586081266409664988147680969367678355445375356217297904569481286584949871317685071556785011127072803828379853069615819978742054671564526974308302296329383342985887796529975133050946824995725147067834708615394193058447590074506497882372635168507147476783188247076704254533632029483552547990575314504913619849667034062774722618059108324589242019956680280321575912699250867490632087414621623373456585451774959765371399978078865101562145344821523895916862572420753271025646295571009377293043036731965304976496380184911985513073974767367378979654574542478297608650520297022072546582809186023887558418856025974478758377267348028138630966809314014090241756971326074139163106703367870129111298877684581378087356789216435676950889769010581696161431403571826644825562177667865503694851051160697091448387317395433033580812898882879171643893964422554502329699049169495122162032587869410690068965744558959963176587456673063369618195955870768125451715467089188060173040140742675750260341090620147309926104570342514917962775082878878821778456171295468930993983554139145724898419268334389456767612096260529090421436868984816181833774406309458532197298489877736570302875729570677251186369859205693987488282149891478838915672923309737001857958844924385201341494491849417096396678931398848680001109546482473302414994061337408926231421370015670229207675573981924188968381591541778828100127868293494463187700593810074319113362791514172754285379438524373244528741953532283218317885805295937902746462116127087089231270687877140678096129501342430047495915244163906273990541146103468234579129985343136458216692153200570337278088454228556612768621450552416803893589228386779225749803975527818661510197598090670346502614426759500190444959870903998820880045601942665444228538464526515187925107560443965637202473189576496878191726279548186590526353815945118251392620733514871335905680471003804804306108280343502580492586214698630298614183319258914713257123380415783678474680780915077185756812661219308367976506213820905549517042084647205234709427719861140672183802837195160756118720657849070838150548390726753779977297059197930782264620205490517490368156746841945858753899801500424555129266994476114883404892047155627127710278101705072106167575521042346480341496205127430593909978149451638073038747396982508050123013827793909109928697687225737657383053917268081816656857226923179710459122146390486056939097688038057167448937429260794735810062814554607287254373950177307995478614325840186772066244527662303657682131242364289719342677177536339081981654489632269586840303084963016202731531509858063521645585259771815401064084999299895800563593168763798783010441782683000784428188727204411127583894557208042307345053510024962343420078769699993468567552573959718151097097287610891446362092152666097087058406859599667038274717691460282355363828841772801533332486534858681901420736623807346721515239246978920021219190631977995961169033008119979133669791641810625055090130397358135455536990342668132610798494999286580847730729833201175649251805651319292979100827119548885849535760472893093520921448765015607931153963531966997188527909716596680704078912210572454756740359625685359372285718779570601803717364146578936054479802511037676957791782897945700266365276895585990075710029310641343144204796744271959808463066274032466115770854004713415336106270627431264595809894273790286972814753889375519811367888661752809186849886802137916421545450264423801145058052626567346095469121540517342846593708221187581830401479253232433664370445824185712161434004643499530284756314981259804878189059072925227949666004673252438473257332942166473220632593065603424027984977377473899581844152482220940453988393651811401851598408528764078789962815713496489205826504864823280325907742811073620750720147670621668959015326364534778876208084798687097527331691958725828935856278799303057452497371384413931545303480909115038854865310771107809123212733380528047477142912900786759124570330156333331082710966144777405518268712002226746196103887699583390306374017266606187523288927695777227217077339829327609840411498524383686913923405826662687095782400744168756718619587204663837478836926048879969732501811088535714996842151042310745373534721068483709487794652135097760821561617854307332528543347965535568065544152045579422187767674922078409951093638033708075358603533724391421518065015207964883996796142424505013546129618915313957058598876824678665656079387011602134253197934842664317429194301108866158859758711676516208375794215615021293108959093060516414650222467239819589870023989114035174955329936584463564400973438138585923229733937146978182377767737587046472256475667241995641640759995916383622669201843326963993526305583278352852788139423154893778880434108535557639217466675375321381760051523721220659574302891998177977158127909925515182388874101089705599826289035126833748129662875487943426567081067185509736425299076627016922700912142059220452067244964465257630763721795334242870780743014338882894915963975162645999545137607069279726739904502936993221355074276243875618067620667991933966413287645382228861696478727705644374601516782773676595896255971569320672638515823704763612099962985059868563145254290713497171125610812834016076665969584945693417124317521090078752640226786532757192627910573961730281573126861987025183223783216799291792390946362477297011209614924943913176115627297035552743675858493364721607452384444297482896532819610199138715430413368207319872780227441750605986037430668060532434322167162319729863135047602486796895624358984885203816696122208008286032359006433612898486332356635153552598997272947956633263615007601375908627071222834995582527311524764761187266449085815196330119258570998647983214570432628261434691760913402346500974338102015339349303591341418051129789927450205694754312645239233947209148800613007236525274563678090032664498679604230706241567850461311192649612731829701786874270277470694085845659803952453077252968327491794463542909911532162835392909281392320512161458643185228010447895252837087175520878377552179140208495752255785224076409515317457102408702199606831227197971041367880612838143688635221590854704787840673762353438631469729192622994018738739676083468593278307974645158450292806888937072171070014023739312249942045314585448271339822858462539708426103270400455592012620354215566132141978094125977331620703690954054342140492939521812949394735876509760574402403269208155601770411245993684751348460512807910768521683815810029690013228769144810084226221750458471867525422977523498305151188697711144757187495210811596497064014623306888115158908542232315535071061267639788761064794001178059231562326677165344438544691224674634169960595643292505190623395072531996092886491516690125706533946123082375543649648604991931298424936759776847748478084975805924855975313443583239508766683807717266695034232606032183161859752784404733643374931504386458481511522656336947209429392644933554311235578839897228643149964549804771295040595337139990153361071180281111457911415052370739036726363743201230553557687817570854721785886629901791271228760471602576827311267763709524943869190134108207965443832296326702050473422454775128918416098506381092241297203925321104248418558373123247792136964894182680478703859870108371271318754874241236517476468111421907426396889068818259379592053791260932340237821214054894906398000634857423888918534608264511391634671533459719779688644923724580785988812382956588950788331859312915573179645765406761895405777998002842536332272166123781386511744997539700748121272500323011308601122192440192286484954173305809320449788597870698442209148541684995278791211238388727328245706489589920935238591964230600695936745727792122363544967802111816731848087688628535643741274545685705519827877950739659173079868733420448678909103289858343128056727253461276133950683040246126037633288501711993464397036417474396531125556330066275142679205247252375616703479614402382836215943863376077847318379020053051957590764278773969145881978962150931213226062918386077341744937040508111112321994804643325065926424742911916414904122548926032991886385947296470710795023919008015485885716549810008810873365985834974792930366661766462660672137278852797927700989718469178036777457088459866470818919843623977652157572378723326558142765986220934507509694817471469447095816433710444519115542140512347835616006378237346586442419024819460010938320958457329238365148795499807624440615310372847613871770866193296000217334268370831845976818092733755827158471980015656016803963499594928425728964522517145571548002040474594817586898590570493156850975766524506213525183016811601802141701770070984084818677223938107778575648334467675977469696503608801965792469759773326166857287725936522215507597514931467646571604686752745387176504258521706574947667821614154867519322530977555953085979269711471278005537350558660222278597383268085941925393562166207266412819044491456299989734810665661991405727862649444931745712796791680756490907165631818004012609147882079590462039347446773603267660738382545414032507321299399546630015936158820703438890808054024441893340736927584667905968107348440175337098689226429636683973390534907892499940057063183937164121545110352737084506413012561067647960322493056350295818834768277174554851296578540559983833895960232849356855991790507027883689312368096537563204661896142624498266269420436267857518507561949350597670558724874279199234956054476340925851049145433645867595813796506591622321178864128394517871863173935299054134650173770693572578096033647518961578255385809349683214514513953278717253774441843778650199512858317506448762223739543064342213782303531128224752604249010912233077617033287084691586762421831265684442841176587597561977084928344288818926161396553671319513444604639445919698018393642532513595237043377712394281987157089325491057436211855742180879441936281765953047562858415768587669599908048084724904924889960801875225530798181164665616941111916954652210116228750615453284795039625527594542295193294975770152047864424683450695143385798555479654335887430390458825282234234168648591892119753869730921508306102664974316859789861396420881356126458587371000603926651958270231673406490931151947170182795847707814714891842652520755756786396669807679306570941165255990021279565765131052793580408092921843938022466663268309187991732222418312734811514170040498960783545304560662883337657894103896589308981264589742684520149371604159922850620817384760463458168985175245975355772011729439886278762986878721080427219979501406490478354294931231348873674171720505944951264157528424380615314435760953217460749475880784991492530918604048952718180599551901221160861008775540625440103380185193742972414263290955793865899282412062322087392603741538998099715070847297030307173823637679542392326510050416073078623517941046292219539319690402315579518773431755362226209298947918662672100871840038860862416615266544841237472832584878016060000400887552343699256557666043730619175783817933352381516320020264807986278642451499115647341436118358876529208557848974124708352482894161075859826792036708968118942236249902012702605168661230188921051582143833982664006325846055553415311559251300991145507254197969394087551058492948699544804066881839358686266516245882159677729944559306184101666092725482304174191149772647909407003439751294569764319812070421648808844742575153522733970346870850097798608113563957051568676292452880648462592688597813526793754197717068634689808261998221245458855224724885401347952515888261218408790222583597204115769242911903049748334097674605214198776939515965032378116538478993004091617022097771340014625449604271028009526653567799506746746476631199953423473157360745140032349817589083488828910349194975185162321631445604126974614684212495564491182573994053309501984301139985356630263549952204745467248674754200434501828605762900840284519857951475019953097003405112243347612800995254933726954759323021904261794467433076955305743990591713317066701412830796491515362871768850087799205645380677138819240274379405055399039742157652553805327319506868082609867655204024703853349324134516548738047590482901461664815927242708836920151284765317294936052969265233910334928978745146648438506492781666284539575368925957749345133027265064532220656927663683750269575103401211540331776089222833043771099490014558556739864760031466926145477006647217228056376255999353535935640165154297063306414570826480003028818801696900102534229741021469764843253638950154268195996024991599845229458237320000059549562439495681215068467154637646482689787826050564560975251202239213149496336144989362052237276046228202705921981233277727669721802895502956844862719924262822584112689178364554299299786222928357828108497669406119105946405056057576446372967753824345711298946568241769291735683992840205121228092833208794512087831676999949695309050746014450363115379688315781630493933133241913682324907940158560058472806165836284524814099925983586142443882138892307637325780165679258751534528979084510508287007328810651065565431111003073851907872790685071160923711871800548769972092432026082035171561707590218160274927109853142026502911767500629983477895755149426963587272131767009838005284077502607661353138497652081382021813128224029464570469168253645749639181558245859601084438136121473653395267325527968264394600701696337185437564095757904139268613607293735641389535941393041009935357730650845180159946244975076495428635656322061301518511580072691655789806912644728751171059056979291004756357384583247854103046109118781769716049535743946102410785883281971961819856514811865674625065821834801105658818533372350726719311628752146737434637559001303839920780789496643683912352589186309616203245692719738008574487477075846865906812439566766901570658278490752315668026209573355100016788524797901378328380678388739365614389911603686547319293557572919771666256700986764690976982967033513027349056777091451933807350177745308884558785452210741942033359113550896387357036934339969903083368456886087757956139745521977530249133331131036185642616890126163387394920132825569442674164666823440151906929946659555242318814301409225717472828504395695498954276751357793121990796846442309484053405927932978018165254714414133322537674704479402407112752849047468354186798269228728807771263948428216777718544897274897902640825338179250180181240812521886937012162072290076769129905825543916774443444738766558868219281423131021427928709329913192945141487589105971082130311219781270740161883272738645945351226114967597710157945015385198322934154471522295754083398343529586025151970714784108782164004982092396140962733945890883707136388385400238098410499889016540556034838565187364069700755228988893578000850101686112171930038205153285083194952001155878099806379801429128055057141828477426258391197820645787788980712735776151676260946825990769475928360265552268249243996236425594452248096478732039877023001249161723329363495957224920025168255716255947457977347261946908014282951813323695988184987712054018615919990183295561440843705720987303637929533491395033788606058639713690904494319595372318215754546723126134039925672888103854160301086167154568684306373310551480379764829677550381283526824262675058143763625223300422280358221173181333636744764396961714499413439137833355361708041038440802118087553728460546938929494629154949327465730780139370391262119126065110498337581993549582541854943797000039494767093316480945073044216739362699009771004589299852787539086909408866090887017584761239849449890148789423150839041148816626903140858394071057650234324822749222601510890510213115296437459362373338465296964095992194757312028156340523405761373361274364466005103577731343592351006851465709679630859679095140611239671162777994334964192629882100120457824411004866438814191889927629167608254811293917734299031092512499769837332463580607581060622562884732299928070373559468626260622147349828621612327819931807867363987401365892494429521371557268874066603757795332116581004138490686854759918897544873114822303379822860414201499870247795222310071931085625948253597264113750252636602577247586803962037926691663368805091182615486515214878123051324272831781303815507246598556020810965180680481040710524754788963416502518171702024812732104187364688044114179915283931686170222047995467838980757551945220148252237620629422753380792296915575161108237121111749754205849966864040489684426976554541145595837649632412914367783586089429060042195283384507986619931910402936670429624293889789186808818260325112984815816973323069813747450723926134156436943693685116799147943200068504564015511190717326484096416157173406477991020610204473905160025440838334607323960873387953873123827742328793932486782609353866915313620164389341386962017458813424043647688032738630601556253888700193065517033464198393795766049501457623120124467405237735356960604936070673483476552208494577040911907836978862612402853607953751188241552708359812054722737411636487271390911513509577988472408117547441830535361354507464164748922805930941880362988986193931105101239053301440438958305476739227413564407512484944920258751358061487043080616106332515300097475748409423690032725979953629123999568061549578615339878722728990471835256687969937764606491691829938550182031218804595181446256395597513264111878547847721528423053098723403267530261640670367984304716159212755538395527668638052291313490486174311207976718236262396639850361788391308340098030639133157214223148655565304492845207860916545645473081726977687165644750224690068500834066672163337006106300285879417569187700151006208942075538679433264273475299824267550998426059371452133109625537557069135280394950235691056970818759449807003330401113027008495700660480720007925895974284416019793094360662860199294628035719503935562302615716350775792539710612230703835121700005661891844381857646752173790993997025456129163132337368138563506453782257660066270066061576673844839033475443250459822443527187777815828769532949436392702273097104472857399186257605079802736646420666185625811493551387061084649904055686842940023029582257530565173822304297040723645578704220567580961864894761325363684011495470380988130923023464389288617670050181775650076715194149480397495847534734312016294952530356744122998280884725073747349922756381230214389889293689351762493730218545249188567048288991793382463882698108570680039240158462521883792330225562685826811358695341440125784474570298734472715462796630501799559415756878545183331903360656902668795621408264964102789512284486915063038032093271928299271791206635672839273662406105057648688184226991851988994095040802419910290004217921745453994066523223428123608935194862980427426646816233603403649208131113337406500541681770445697343255345368181722277926266003408303711117205397014151789819193362825884961871362203969932208910144959745339551586108906305012970306886904175689265210425349260680297867490057083174204772654111318391870477725717427993319232796375979132467291189478037835882099343813737869199413820338737587438502394041004015561479328984294557362127179073175919945122736946419287410167650026635152789670548330444440316336897466180591099052474483141083877274304383534849126296456154774906349261876569476878551898544177537581197040974333029268309746253443519214847311559625146438922790094929406062486086504924971764702073416460851887707213965380008757872604564453433538497241593496304389989011902287129073850480514797670600595216695564516989459555344861913007629231600954785736092031244978215773760455770504403956202643378296593995014694120835453226789101337340253270720891445207996102550475342917098782430503921226365571893292315316983715010116655195676144630318954777190528308048832538579006441900828866143730228061829164438544243566097286495868716448743875824779928164643062584573314632565742114061980997077045311705604424278775682961323333711977635593242966402829035675057936851396297861727405232901618015286762408099776122477456354477874133221979548417592923463474553946748428617030219214953260036390530248878181299729185935836937968957715474156510679016635695388260967558121844064944139205920527150622186557222021080702122587396080167559067648033207236299959618473425516847833869999258862747632985626099369311110221609394727775204838872109017705973782822916582961003902149844245961606240331710732450019694337414123611379838589859799744087885496349230939832546971474811501502616519908832277785397465540642190167317103967221104172056450100692602309940304709481347479746421422312693238151853840300605037113850631063020228698843442831621424896638705322273133517984216799934773478753701963557015342756961800370524650494667885280810836357746341738367147979472093293308225145176816067172286251167621011509801337963921875658352659036371008078275706598867978237469391105916043485809827788667140013832703455767171448377387412215127528165778417484128240511691531157035785247653096250429942315502061036555993054570009818514619427101722128330625694392257281502774398281831606782530883064091592653837874454656993471384405730185637612790687084414097506558124365917201726157896912988090663640026304637997375195359333635321017357161131224770904420533859047326225468504927489240117364706342343552604907477194252624453043087321968808649517792625037629563544577952324507370631313687746550583745645188607284199865373137839463909430676629575085178240084292710255624482503475345868927726950476742441395249573275048129236055524532889860285023740149732575831356880294102031520708771295124781089500080976569101296037486375705306848453050178806679742258032143453165129582214772922470125795733322827830649337710589364257151627570152762310368102418337850271711083951160941988324998748029316935228145554793695059007306156333272045059416752353995081105942404563358099940881976387587614596208299464959519220792003765411004805686082629672722979164362967442400283776319052919617327846912127045077441418201183740338433393239805871955453354060028448522596642962951878262468275819433784827549584374216472371092057840021124835610402688991563584774466231110379441342239921798922741684596549775091366145606139773046943693823193895536341128230259688455840057669967091571238124626005642865075367331991697193981602392912876749820389886878109911223018535960975009533982177860399733980939707368180265816788896626313108839623203447269985946123503929050847940730964892459049609364774285651661895965747763707224772896939838442914294384151390213682816515915916382226535365959107873218696461852219982377388966434781686787487369293226835194151765142982097851367437740022612702755825353154503249429943802637877157542399766524834741029112766967647018383178174729406728473906529151074930030499584680049359049727602246730843081224436095556407440398009904365031343749793195565932598308951889231202191927932232006181492561933262672877815089363848811695070576621323947287286035931491633971034431688896914492752117891226922168736475048054357215467430685728667072084388787258176622594718968288371246400318167385415865343483091827288404789110825648589611346024449624789316029001566380888250550557355687065559678781454587277842976387062243930879518004497720349804249952688871040729493383416821766145172499018899376433708340077588773269534198787781447667798825176779430608858009792393513185264333970838837172270796669882056306869420186602247609038389900769096293424253088605824520191802567318587963899606378665763718762585002247688884025141604532464581141241222203202919365053905922530104074740493886129844235026931744318144482350467451733196718919989210213181182574030302201957306290562785483677201583307237198664146998679153848232284522342598653163109542195564485636598280153722302421473570947492139563602192310551622036372508957532326497312514947151706916641879251498674482763975972969514987820686619378797636150528879060688101331122079671397457008553421882341382875800694925501359901010754344532458505125525437910589775858336348701260860426811311659841291455339541987925225759753506200262523749160722585604151140058219315227191711073841989961251591098739040653470998957249750968076292257276799851024541788466673618025367228138980959323517876247251289933024777895049406643399308898282889654825261120218027769369007871342309283925846815288310698929566501780853401507555730432699431257337760628706295673620439461103561699580574652918600410052767702851296516204475751601887865193690049476894211826230524597461386695062295232227748471436383318417268205087792433695766075456828724729630239321542642040300952780007811898078153350031675559537843902517540775610751548971810044154623902718499419530308904068582647269196590702805099866242460494817059290464842402416398494180193082079810744720777816201414149571789791709087186863907397649626081004062254979074175374228202072492406028450375713054059514431331963833018577790091170085518131327623443704297106929398798961184638666638754078049586827923102436521875515976019582454461341843182165950938595056853716107415984125580979278071197919715510051387317457709606243179354915098153204248414142004088386605052915948170165647927743171808886441872000511765430710099760882445236182972043283513297988417238577827035502771511252299949963147738561126104247863170601716545744024885831520850889432074177818045501879173696058306609328524535455427599705816887103330301287083865504927861112197979140300987151253506534743064866120520086754625827087345467425680443524718586882242678204215759145687936970157955845962695684596236819351507284130895121930312031771519253748077461568042806346482095165502925560781100251084004126548726508578588897946854227692291689005146031492892130264561261266231183909813290279153523135671617159992352292598490036743071922927464153032488487808521577092920941590783103752028666603511921045409330930805701089361504243444796157742961333352430187384422119558460187536994875193274426301831750030335203697014930520675058845444575258476737702751292317952666147547620673295322782786755101519407348681076613588430846303502831478148230823952811577360507608441293492590664583578771615513347807868305561152955647141002573033773952002193373685274667110545335973718395710662010074634652870592542806546085772617908051123465547318926141140165325794549204927701045642191126553868053480793478938124289757765475834352597732154048945635570486891709008707775457222957146850156421700114190036063432369986988746361219839006354962646746533354608568080793623631508566275685510689909151726376397195939696176457671124820947683164257611679859560618773912980660193066464714983319356153355995776879684796934304321809532772440234630198972794949979702745075381536767227605845707340566706514092956148690811323443427401145107263432132509567871580494712933792862601335669326118862820663941720387366870047987742646237130506698253236546303732650368637292751426189247469696307845466090435158569868435153836622826805264988378055535544622896140624203877681418711999132917514276762933829811512564590025934848204255768581158631847197960722507317357379306631704386982535099524404611524934453734654981993842816523494977443360346324484235965163201890958376232899981020508762021097820364045026740791249274428374735888297044453441527952974387706427218225910675379527548621276101080529178467756316173127447330433304558872434841978645327203168966167225521740341157075707501587869217335036342565850497343088948713917745632017432192622879504019355186719703187109382810829375858576840870647189969091917897125186469316384987887055262566416010951446963476041228388778436062866042990349279562951828123814463151050269666577287114616785689440592262249773897963902538085674873859049338127096477461304522425114635061407929013128404221480212444192069901438964764661678480187807109008667810974596247675214969754555602799926576930416447891477794299811349407613087024067796079273754308689824737424742996611072736717301975972956938425265160648477389077267734131547080502556082498647116004715106865451408224258440552993764677642634076932960202231744794139197284849344096886698261035450735748197080339769925555010484007873765614316614162507898417415366588695814627945641824866964422635998368594330060392740391319175612575244551821944487084770985091577506313527428989702032346174866580127054039900042395350600368184969935638296628465313129763132028464662673903605386747626136278970119388978852204063819250973657870816586411513182558064243233420907408616192031555272222482635075135280426920274178217773006610071132352371253291702381595875168314687884231486685065669876062959612196036877837782819027082296743369203842452407263144518086979412712364043156349108128316097943802718429845831243263624772572049060444519516502274341492063254000027160530829384492540191046945251444857477493232613105058318100449868711347284169380060595378880565539261438624980670614104903577762337808128839458875033272728340441067965675361293828198104331991800310496809647531244868126934165475185815312426092715146467553837131188455924909647875100845860253764480892458973145429176292318120861033960017588310477388166912853243464913260282044443562982974027495462274963020862409244136577040854715227112056464989623283874896389187359487546403861357103863274437700197535928179898881411716245098762267910504836904881681193088254741888320525384961643639120814035828478778585323757015643960268372028767838547543188239904434061499194004536502729647222935942737872997012235631317070257712038997249030211487730258846767349165468793316818838889999247994020013207273048260391160772952763101785642893059927970062287209206449793544612111495807975824733532302659574873021425411297214854106179519107748858974297970489579144316328763660277705213775601118114379721030351604489612134975327429492924092579223192812324535400424366102301662840087662898866583516056202966589795876863045171020073669825415442281053685997041775118192553576549857128268272630885826701075664995575586559367750516644749377139348846735126718507187784188568400913246163418104646558540417740060478474938259162224180310927943743681852758036931733272758299664106369534040996857064008271159072644412410005306413310359947244445897026082045023917712579296149405922484615271349727195943184326919596036773431255135876414264876046031880961175891329116294625691724503323764155596086688046293293106918158303283206224089929474542247786168823422165355065857533594119549718263963826339131260765546128773830936163088700804811998659519173154651958438767288315985137283310349480676922625647569823846231387346145123273530414765468798418968495522227812848669548576849149239614171010062507524231120950860396720231157055478370352761901917994476112998949925166607697673420492485860110654023374164388241213510807673595957906945989601496951082724087336510049721191277735554267856338018609975437434681223272069862238810397273860982573846828432400135698670553814809475743852879797066135657593202369323974022021410873019681217727700015880111448912073726041989144399835751775470967746197818682623430324086162935572760454817017150363470943912304106749923505526458433212848791251899636125217202664850054066131516702001826819887223094071235835826908519699026678118881698396929270013401080928521377869063365194825429107658842163582462239607562112174591784438375033332336017441642107682414824641733456991144773800240692514209479845294709429069624975316934236414274223023761434716249172693519910045694285398377166908571471725867346793171801067335248328250195480859368872735509548781003240915120356741149397163758758093324335255202653914455805304396371071722960301838671835433548565057295269375135752756842262845541289461384534652478520010261315291426601842117234329730481550467064119154132352398601807116720772366559184695337434190131749161673354018562037776115222211756274517888071704515718211542594819246323670982741895875249042927802298597797587590585173721378610460051327334503015782742099468749960704760647444286615049641656896131579860732110912550747866403603002651088572240209139915732577352238937040127594647236274681781017638223437032647577508856054528703035826297596177285959945480130453605081300484896211014172457222877768439270226422275743470663254092903552984287211160790501093536286544573600662237746859224831083048817017722623702835299508054531580163837070698940738731746837820083203007277187311240734193964370842855022580617767786164539382704353494100495417311727804788324890143531946969404008400365327038035973135544865571986613028573404448561261060868046450495715521208700926982734067059175893973049753752206181823677535701703020115409354009164662461721652707141013934247781906920391499966690436346686617597145516460407173188379527960444931353167507804071862935720817734185614368998781243769036405011470875089430977697723037372851111826454866354733932616159035697617619969569676930029850947059946356956432861308963747037967499054616146350267908908356705615242589534788439949737562023105802845878200779961167758649435533107229562340605296373511943615953512443991694982976068513944514765274324739605967344674146988244166906889812890140342916458223860845023111074401823362054823066800017199085410485802209998478795189452375922229472867596711476347611703525741692515747327710817670693813607668298995689342666901876146776330896311058988994248871649109978982451035712201789266511140661896943978462475580620850268522969104636439737405668370693488236877267144566006356706809520595139272014930041458707293288486008443277078486938502101041903037862452927620562866661360923987637293336561798751526312170475758621188764074948377460239196918802699548622232268339930414360368219750893834913364859164167845849066704823789317536952178663285178702572493190705102453024024111879730079338078589956246824921658514558317686348407471662245159601004852956661851200795770384607583408319950372391517622727327256819427061456506376946499384188097124937820512182744034341055751482650353739611570047530143784055674595579750192676495698849223187263879166856156644995238295162716435247812948122763452255010362284171298087587218953972369679273404320568215665758839759369834703071993323507823477294153102460237913727562536041728161691091612103367452229811505298134058230181598565416900552754790414153764773875785208967846314609587168299468853123108682623473006233571200789290365889834763723534943516275087543968102941246705578905857450755787945449222313578045856363961983464115983203580985556841071416219033943169107415737544790893483565121265203627749080159663690390393849952336832604533351514937536132511647930188115146669501415344463663810981963317196140348384966273396802279777685294894574720631562634027555574560458902812515727748625648224084982469619918377394725442349579483994367267553159828039118454941216584736467111804481016201682814053420546834193282399636251436807844728793771977079737750911877797531275817676629653753582155679644290123028371726463572609604523926305569696216859593765915483504157980748228054526578347882740177889849365931141722878137087538365662811071802646659675723361252899762821593204565773515393171769486064477716451988176677604912208150120717328656391986232120583356204393947251572612359466375278844599422145573145928008212567605864594204549970113602773361010896933912405790565968382458011319983131348578469465248500909518218519205208567813737995751880162522062816494289281981690909869022074084453447072572088380232426786193654121419414460742725117059376546815463910020783590521615798210317891498631392354237955140283494230939190244020789962438039786395651933219860100209028256446488872744750731331251877830742752994787709395271764035935837889438113424962501315448586324417831827244349976007078683873063801762421091927175389244504429581779216010561870145721891380318918266618479499000631426340652765350035368995481105702085935046230217080573612238455683766777664241789289233297359341818100301308199282898704369320757479657146625141416874013826792830572123487685255410842804953756805354361768979672527700004839036002618944366500178330455202148409611363104903050926338724662373114836826623887890652654460440060997984059868225061155912289521557750359630392111917699554696186336437743975843571425877290395823338601812381341115035096201324264335145010271386209267849450719034926539137632465558205760670912628501944369180700894684500920868182997215191413862290656567481097694104551611157560636263333887962113243050188152918375469766555116983729826506920583999516774645878151755256933172632525519916833719132847741697407492784419691761074483527388050705103843633572277090412560185949568317118546673082525589288135622782091081169829825051306641837953112581928148678414832158169808931170909287057508839723365584725600760821855694626745708985569087327561880390771985912675180930748060456603194996361762155575139624252891470153742499844594640233903764287647035984146907387931239768024082838400219959880297795710050919770649726542012456193365129033341645833219776776294243871205429673022429595134610846900246503243116209984376217657306367075121540941794228159472952053414068871551328087821560519118384560612317343598947089711488424851414074693209283735112284334928462778074225097910977563957150516704838285431486546220573181966410198624170035805740191060569316989468572826308273406394611308092482911533424536234310969357918198484057665510836508488177053376175836883598067120464001299178838131177794071554255499126112032128668513697416711486817030753105147176394804760146976196223515445074660964203066088385740685242300331857975541134026580499540001408526310545603686313808292096570776701515375009348694810412577559570156075585219491670349225712170107009679602760797842836891681359063172724002766269757913627247199406401766208822522789781180487578268455914902169007209667844227915033638497277305576278791441413810398044547305276016206748399516037644689009784624709059490160502181788916360506453430483022728782498684346725451384663815212923591726854662726432582375685270842863720185299278933836731583647034751344154671126685226417513620605985891066679847111539317025190350044935794678438626457586591288484285314919483599705545294328334643237861132329100455417197190342895615097653470091598617764580709249428707138451300932594856396226626694047528809509402188756394203815409414535977476102897868662015567525923125736494697521207187266338197160162579830208794202993953480874317809834508674667655521831470956072558947639593658908327692082484709861880981674685534962947039619319112190364042989149941180745925541018385811411240030814665446807242046247587740098940869364885302748406403683651987142795888889110511702123672912166198534511246035612132345556387292165544233721626475932027270908448199555313867883288730232171215556235883416766803495745900804212972147631386847035667533656750976443699965728053706356120225783463519670728187578985409265470095529592884128484847926224436991702491944925661696999389721580514618402607570352812365085956693695975751658415154756833057817409927083730405582346137116296984584602541147973951027998358999007061520436849254577983245869491347093581294201114619123432205590120569631125537470720303539360904857338208092659427483252977454207710689346251903207956002770860481438109738766068022414629135012807638786161690347036445379921949921292044207036560467111030586272605913689921557898170362313110785204539152395191960258720524361241249878547728672944960760486594894514608346862737815791810788839732942156675321730962970552465296152695324662841289853881253499214783910822824211579015975713220318818623269675972328244609873501928161005360994948781017473411779915658028778442039991276386444887322609054050051523523742535322446787562906544869853814588438214725033219562103795304227300921376850271194460746985702175008188279408080846973825854167195993683317197527645730587909658724923993096969598334923237797851745051113013207064365979967380836756523631156345187185320120363335084395482272157091096533062554073481929683164171603114795363567444296324084152460011981751500923093836976369372773751692573896623748511883780385858130248702111768086120655400361251421676749840705045049134968587448908397062272665882777116137368257665126620141487521039097248729587112766637175023032443417487462743737794466840440843216734322270216236867730229114686002913667335184792392826748267840627391652525459850603293913231578974251822747859459905599948107377067652010441866084425720744854674707507927739197464444171242231599275694659160452699646117664726295360828070089652574961834242721596816929657081318543127934195311720991463309685889965482740115933992331602254200688993345929114055674599460426555531780514158716710617598818505528784189996394962562920907811056700592618403193346367981694100454977530989880054005443775344099835558363031692702528040197694658436046127204062498921133904886220613232856008154032509698835975163795072900343577525733267620837714025567925731690738316358989542066838332663765009044845509183424814934876720493733374452305345570489014854676442492246937015857386785873834718108126339104579008661651394889823127328744556838622403855571576775323254008008782611983439938843535574503790615867457280453009141614221585028749893276612416880964631110528063180469489149279068993355430138519064808926932377848680451751244396228689295932487054559896053288563442011645033648484388951534115795212548464129095642264982061011973839147400075328146935741576998135652051332421462629164625848063131762369557255470094925859461811984975365021641348384784882610965395057084111863074240815665246902481878269751187304501885730966521010650861889403212464735244167455596795052785393513607514421562131488317763712779189016791346613313424794930876917669375741369492272499857612441427354777617453746993671610885641742489591514860358420908375251361512402031036815824602054358145585198339685177976580930285371271693843300215183097998514449963631652573896214560056897940984251181836566313930542654835648639490907460625369417678896121059823681290862327715742309033549443978025932694273909617990424705284130885448064670043004050950914150354114444781360186206869235374243578542560752860854026764118763866387404689020356408807960058446821403354449855148076888611081564004464928825552469741310344626193701741272150547329952427841616777066457908526575725385182615297822208044608170499360611356531645272744089550171495841811465262643921867823704668827362839772849717769484300658465247342357953198658440897736275492530088340580420931131812480394574015124692889331201986961023651551396632835929305422600824110598660057002016800128725474061250933954614889163150671956571746212348414919800181540688271884528172421200673656190978268093072905837340281680078641154687298622064624476880548690439151997175576004089049482833994458347639396048811485688763288730158347861297229055793367862162802768404604457946903204606236644939620696676692134183689485485901023364366795578035214393367219610572918020704432015573381336970845468207082026009360164755742151399578674111739624794045350592956333898304120511172826184994244397087254571991411255879729809497512315819003463423364879684677148448860791187749020296325628327094258406592693081641341045495627253047898476672228634227997615687546961384546969206600231356965884153527041149773904542271431659116545100526112208989849694231756906260020032779534552411182632958161135578281019707597158132718417863219763161270116112349156660722354600483958400818301749641381025274069501150750754528134403622518159341418136170178483402575099368297244655126374974468857980896376289677654536569333947656318069514269952538985438101517707525110784032358381673372001123113979743818759882424045773959400717295945619001939374773268126422133521550020471453122194134153386610598870187024841871909875121045976788900114751266985434900909172854222128731503137314638204739251538436684802186345231656541038828792689015746456730093714090556206398806084836880285733852450446944548507782952477810851315777248045140673710810058816246352718796649773839605795869549528199430424313193103514173585530159132940573276978377442170140602311603351458760855218754112893845739492854380502467662812987828523714928448215569428954806608582253478819717995092269117883397823037773411744841758083387906994227375471410911222504227461161812854340241183601669125270350510520448926989766050275690246890583147666535763819614861220924474959231443928871315976568977004607087811238244266895587863873175275855264870948599801959188999731318061990941724388477955610119092305125731778114993580503955574195554233488940792034683793931648468633073588724668899017643542120503513299154605336419372655777020672167284618310324699492103919119177692287805282536506553072828755304199216673109459019397538412631339077324441708853568132764260399848005419809119944101025535188256855312500854305954494714924448886498533239655650903441821445762299762566583002723088682387672794523621034525637610651382701216201192720782643441465562808005488637913076131697641116310802208562753316422623689549276041800917504194644221222750991329536777783661438545524489800729392973492088395206679911055230366227608117098454638358682472516705456314883742160762453562476988234942789597448515227828788717026885364354341603307802660101320877833317239283167109408226169081941204565175565474442696835391306343876397359228604215427745576737266253125550515756217080365278935655192432835977686071226943067724450365463858195453998777811388637554282947130840199345868220985085170177160430511820553429763530578304832446699965124122024763486970568702213224791963556873679546108354661971559962073090591134409878670817429546842754006828341646229395374405094472935746908634915547764886224684359334834236945476781316848014833533380513635574650562840628071047055427932790158042583650510426226521015236269881361553692050472061151617013789606592027558518036719068852454181414854354435804075299818469901670327048568183745552583467018223735174963936774840663809568202189651941056494495413616284286207328522890971115575106853281607837686003585026716245658866054046192315912639319547941036570576849928634931871007395012815351171008049992868514168940450825926683548352743046781270239281776465478136709881972762411957705533503308415158807092152112311303105204125132590366268703788222911953696407092792751505393582633296216175900309698657734702490405619083697515000799687769416797450038348377843016344648585273726467902307007644032514026200175735040835411010553279039634592628234989239454298824357779220459981029213026503351412268870483653292122862012855308225377403699435167262664744169341325654436495651801533153065402740685980998984147682226107573233293665131065510048262599672908477508023307836922333112755731123270204346136560521816915421268837298651593031425443256171387199024723781093325980072961478324340196136116736015265555365187156911238472620792239782673023243032304425352481109129934984947365007496949495540688707389684728556393597916871792683820599193947560519955031937547534191062251414509720178065310901526896616889219427406006520533186874198857283958628949299431333907907110858555145200259985240939269758849717943787368473436385511485515028362386042620112773005367763065491988335945251299638631047971301535911952197641559995982534809524246494810352705241801352080755631004989536223864556277582340702426063274338655824817335738788308733220874565830067408532836713224614075130394763918148390701925555575195858517933693948283687231258452233174511951361931934397459458267637656538043955657730309667754486357144719660833620596271780568845941834505881075305595848714656971601438163627126139917552584441492642690821077588521069596425804597880329755042019166860418433192148920986819124731367455635648857245268912664600593431931052532644502265985288623398943199862597811058133110327505620346552586415356142429675973476732893703239159445821184713143580854312340417592429997661395210730081457924993985668613470882511221910577716222022070110234350766516269013549945100125555934163603000496067850735699460587219913564476122153369446404857693663067409340535136398581396563592400716451018499289043116753026579463263826009538166420887232444565962955516924376120810670404766302104765343684825333740517961280476793966448703466056228258439011945451919452064220286363553557266467144795032823481286369315965989267121180833077354234496723678476971102463344365787663270142045216250959334458992786193965660661468379290614262400734953776030259714205154751642511302312355773070839856979282147349729346517773112791229629621857127241954352263588670893745777310077037923567710511042229124953144220505470532235718854246676966343696982237162364941948044712650679033158148027208008781565232563598692350059418816565493357325371701236123614546198223256845865822446031483335137963477929974163621636921572594140032208236960588238921995475154672143087014645946682209182363400779903343927946773847502341284760887947705432680401490894900284822818417312908181358110861031170963930484873034312351677820941489869535014374935416347604796811840341355366739530962650543450211036006034703619077436094408873266270583027634813752725258667755445524611168690175865372085740905792933953189965956577624214135728056793594474456980506538480983029617834224701462758742420608256720969693909539206392749297462760789781599636091004696280531807955692157118329820912031220018186081555191551807731395339584120932651612330870963724974235104871850059882074820579505028448095888971211706169381373077554949365523185984565893359062722135728921059527693851399724170807934375825886781137560000754034274145231992156730044040549669531176189139211786916493200736131606228850976779481680914982440745866425064648805959684613259898501880363400963652086770744864791686208795651702660228340424664643811306851575001661675390422715421569720608913381708924637355506190313058122740520644269279877947774518042862953189994071169345124596684716848488572142573797129331818508027119175375988904655051356088220199836746179167287535937527038614454512226647100453962082453444248563671739948757466216373625077239995085865662502887681618186791532548459747234321368728915584135385084779862488752088512202917023229489634107662683260036667806153091495615006190685069662489277920773679504869989708285863811833762196376194968407005674981528427820447126828335855190070897307789248145145334134765990123722656186182812039245192086597064687357501112826801656662911046961581889487463787602359495148105608239027574483906070563309381147681125503255067533001496020865683335747125346700696614183821994056412429918747116042684063946887544822808964641487611237573272142870612484098742147431584366202547798768478133891249016778080363237118174887559725864358308983383668862211592739819889750031614236589142624397714576525329402439204944599791420713823761077519098156239330396010414313154376246194294976076348037321931716670683351874153724464905691285221744353607460129771306996614165068198790756226969615170644458596432504531649991059508707983876033036538872398688643814845013373313927407896571657627295374626689349686314834654739399146552838052121154456340936477188155467500985642030966986986913779259766521160558108849294328876332279604335132481551482263588669476052692688717918022347555169372039530946463683344571361560565392203937823990195505980340717980223244380855017367944030575057713094687154156018724661641265363486935393342646372975076115526266756003732604641737663103600864579348789252809553073193419142636792295258514634057835001619048304281521972929316012796640438297416216669989660148873988795433310416797093818981980883599247454345038417081131410412687882384903895420645709121989808389829476125448391313149133702067160034507033984260200475175423683552519431548689292483232398090557333801319471557102650384166689225043608448278613041617828626627347836921803178921951396105869004622476446477064891946554305769752374880176887231346041815122058661622122593229603033379314801068590771957455535353575603835403185803647575399017502677695601728351958573440230875221420758696344105948079059054693627239306252904472196705678046908697709348370326486445256088487891256550151461739163776349251114685316935645991916616900358521780715309241987143368364007309718049803940018726705467964790749076126083301427504840065556289139749750773495912615306923261368722362522470904118185603362375894110700394846506501218118682965660563719826905522001226813016901494539971568946266759283917434581996175538462364633355077115484510142863584721304228961177439541689221564159636743016560423908572626083384551605874961065184738186848671966044369056659789808729175218649441722225887914327813888343601428061157035323386410017623865604043729523948600242793784365228481947640575726892056945660704428861792697638824887907664875464323835847274179350880311897905446396522911708132704148184264423659295832137381759540595304397808369029320773074116647253831462533796572001513556744011508652012911054002244619327440897160840281812419158436319067036725508480540315572451486749408937290047033070514568644047542439623617411681420622236768663849709174996938708367477269363914233493570984897138162692396036110944168020285491048557496225971458424936152229405429260293202030576778323601554313983018587742455722874904053196492612327154871859495661404606222914068078444789904197711016646919199288906641411310980492118895145494526378280779634047654932452797930523676153336792128852012658125874020087541424733815623681242514257610787600596624415939174727684345646897560953985519213377990378459336732726052736487894704797749383363010978324250187530416990585508765079548843894139869689377134149616924684069538120954191730461737514978585077896174818608303972650456145005617207088948628021839107545790381885055429816264742126498970086476532489970525202023165709923647546602739047905521533649257726589175977618335835854685738409495402631622172037288870793614196948044843002971514085108546983372955517965600920934506434104054075218463703084612051805210830342017912548811951200916316918145034709109499140642593781304666554891392857197165798745829562739354930779880910988340940391363270814222226594214719895787724003455194965952555188829189404884377145216435084614976459474222517909533972775244135891467456886296844890982845223987290598399454261767935199182218900603305563314733633798658837558091817159289578494810516644021311839647135562685939497842013425033953618144658922277911543111749445569583634827180470147100082582705382935281523041009610201699869156798079591934654054911470075177452195697099831145270372111185387869648900859523926554625058168851800538221860850471045620919498662912020083521897306612799068681485356412202124080700924917393222911149566207720484699638192723899487516672614533342572527916665492450222080253871276738235180722032380732028165070096396234216007185860110497577187333653456797106630081089298738895223008858088208559174282568419465461946267982029425644445195205043305605662904308366891028738732170902387393343116804389897755048548509117866970705858880289459463396669670347910100128110180377112911219575474072378920313577633262162793892926946896240258052132690087276708704444964973073413696972674984374878844118939169804551939509093186479599289469273996354588466065156341721081651392038008644306887204376300527333652416548654232532828314325944659235319940384166536705825384618549860217840184279998918500158081073584562377077966511576479188475006962550811623316608683607435882786490846804277783342381031211025380873297221431621811205768359829903870896371776126812833209712619860166022703318585488259619159135805978070203740581286405046415231363165810366033895439844994940539926559107113863399541777707198517526058382765929002944622753354106291918910036442193683595859534721419105851447405500087558967724168093388919077875030457546239110025858611976382911844085705030018033764466681940912274638147318417155390040799240606710347947725384392028431227104995218869533593113360996062367203038776412198442474554500712040052275627726579665571192041818118886349584137035941675772184311855862503684606667090044990334223756214948069305869071420322683176457503892680437687879878585939853164228347359410083996459306742175460439724209350403862258753949713559335295431647230483446066620763824810578699352625811649152761717961791354237483616593501748948823787044366961022045200539410963241590811014320901285650234903656036023581521660310182023177454289891756743402196187181157253336183942981260703683310744246332828003370510875860403932485740025230551260789599458449940023625470002321712223972796991146353853409477588694319955035484522158738358578667277639816285882765803063917874707671092864955472898040152019684470360767988715680939959606861854103166726301821049524327355489518794502187761385773215844089579990479670927896151001510757085547297653892766245321041689532898094095027975534498984245248304598031914650462801112994041063048912998539195829547306465072655697442163247996004433672384476160737376880386221219139975195399155837629753619345896778985031806713299543504847421508777621539531923302125631947442914661289630466495738077793030295463696974380270754822071388077835462973262368971979231512251132270737605286881713993264263005044351941549125240047527917455955757732466250175582138525355462022026185641987757421104481835742621360127613514771973536954566731797201040585162183876407506532682838958836815963734928037283613022015459618310594615882098699523467473306218447972625579017703025760680614111202467178766980866932661052712284650632450958064044576849548719639666483162220464713792806249007552803928455567608961979762862155862099520965932779098631299797561098942306803794606607039178837649846901539007738527105699794445604967474898104000207658263901176204230160189977471196567894839198915457089905479705790185038300721188496724400673192487827680714253456618106200923448220506941700510802844903344008962321953918524440990152818275497059402381751461394073927839617086653660656613341555453272410123589428786235237305638333200892691022275212200781956208320192778446826726794359638862477270208619307545089592555590828759094580338687362605077418792914829874537964697170518358554181134314678052897773155264337558764012755376744406784512671446629465401130137375465825582129304676878131667185618184362378281791815616913303398410017334325643414079619052422215196821981190845089413523233659976978038984791297581051433843178844383021740276869843292067210572679590364479957326030699419212027221124379245001711699272903353204724550252599029105329318479294430091262454424680824717410505718577314530524546715495704928639904006956462758448574691896193432624242550682457269823156071410671308299488763996024212252934575629047876172588545243526293735002929119080090383400810846905236401766272246551027569606347749929589091283185141347955961132760302213968590872557678869345161760434868890824893500456293685468829781235153287379107314397560731387847303305683127273761335769097602117700396321676768181662336575234062281220617181139236317305865917961669950127360103251231184458693143459891098356284293599162194411532134347619964256644694782377867808070000018908751689658324846945595487824348930061597762365785358592203743373538346932958788437342172498031995880963328344267616717560013685436735981494337418740625303832017167217148447182509186373917488120187593395933819340541146908186259342795151494001177791502905815625399531016393235579882717452427811496415651601671807073937347195940239737011693829201677773204067874931136233842958943962127209641565958753709353178386492895403802913309013543170391312883330601330493317788376108488003728639420459386736559066051768489847109837873232781462291875210338458348518618946421725370041932546138575245228426698680596234196873944046308810783999220025393178239249656913822133252108157034080625893949193680768838381192143768238754511154955862009965911644105338491988243027556330550854952718442253002401636623866338971544368775150550746580694425640648941478726935303050198689553528813895949125545960138519565729046189848716302774560471416681020846306909535828023769366588840720533583746041862449964846526098327921313762281757904437629868352185257366506367978251947445633625987382025347927082750747559562468994241291394689830046071222759026987381777533340916492370959970583436987060781448852762693647427016605887768817182690608957615522364597901327695705132917733340238939638788663167391095130246514407976939675874301516779849953767200402074835264365170722588995855826750086636696712518974136692298669479163838351969572331000362878490283170658644667960408532725969949853135915719504952758748969350692713534019032649976705855923160073594628245368775846211018721308381348275958741091050069609792833481195016676249387401558823683447532199248019744362802496956389592725311141614216438878753966268349574741512577655289920748729868387440950134953334987035662080164775843772750654205203962510606885641610971447460570978985499920300668443639779779988761572041202169763529600677042972676855534321773013829150919361486974111910695737148904546213403702367713567722434021650123901689147919866614807982542518649553363838313393475939366697209336695743028515294485370671528121622307561980292585563792154521090802514524144912290032291372953270739821254655443513092841098862001186107505178154191595737965789093624809833587555674618545547680258617106749556640291516499454368819811514399920854734757385304208841416368116554261072218252736902894418159123801092630897391765860801302970878973821127936686932409650093702129047240499349627605595364053577312747162051831950501042413651309169270465538539314616446461666573851141220724404463607929980789918644464255148189416770793903783681684776373506561670096578489792841370866741064139023963700267412310141239832348785362874875704282893131373258124032553862318789220503792887311066189523723027599328508383858335262799427297126041755477302024194712887512616978103364049020101803542682178524908470830026258688558076789047979643083679608690942430626669860575199918396131680327804210028375980689677308285007817984900096862385425254163038059436803625578878843612590701559424243549735962201121440987745486932609410122189660018386367369634449967323083927310757219010663798935008177093014955176922651122647301791859145099522961023239033388057808483443559330680340840550768452612259539458009865575918016195368064951475219172679786923094122999476542598877901541409562535907365135894481554515914610334709216499046285510618896253669256823419830706733771266672862430010138938787810996235218793132372807983543714789249418570970040678345571625210567287745882560950617207853025444686209090052164544340330110663694438541089923054997384709854582719128881135540180353091177325300974585610743517212631329637429920872359529821416338334224981774038836037746742073117299619549155425165997374750925877603621213511431950734254510464858044545276727147832791275378342387179420805987219979510488485669351400093396516556359856163608064088825102597173871487186505304209905004923419045775669171151554421041605761909917704429154676118869986112776427753727760433913487644787310613818083406467811338610752808786466815063560789213370061305178406941774713933002847078939722333921288535696834433393975134837396818142863483541904484793179986041376212541105161279601284721521820279882841023114733068799991780357648971901869498453426698262379915076809980919150700080593861358886051597886232736649745608601375673112692076301652917941341743401172277127388682943032065685265141134459960249590848467947029878878751630040149611779702319194408182742815243390404371811383086085323609394945636395264444276313701493068952219589381847428708852687265530657133575637106409286266335491442780527138266280938610834123768725659855388800089387913792288604992103100165231077126040177622316268255272099246685988456000193534413659776439105151876995301541790491077619621880125035475630817452970816596274834818325740249274229103096350002648279656068864009828163635099378503227567085844760274044608834949201020778459425012789657348064760951915593609593457490092401762130451994758667696568791082611190383542255283933936096259441096403686933089149077671620154484986994325080106335839256710000562271070782837713588523390921169024174553406977867494202662403990951284986052063050478349652555205194663600820535034139963115974379680285633616578408830212706209174875536111202597723259033705835086334965096305628141403033026150594493135820851387492611946192579409258056614347108808233627671456197487973475745277726367710117225378162958948195523044729021565458593058549903058548790612362165602493638524673925634441646529458965446423055167865333669648430165124260223597386417936313516165755114559303511939046210073348099334043512964625751535088792992459314613565590603446086133618655622378459101640252759965840238494416703096339269437112092181828190291713575928004480524809426826266603687265827926891752033068936091949057474515743121013804009559914850915665117853459639233287356695333608254456750867869673858935034273234091594913157569059573488963826749603003995043674516919082478130160909901562963956355519869571568079720706320624327376367826206345498951763593777755045546740787965361766945868937024903747765971120936780447384940286806725169620010033770798500284427618222374790856291696420251232323595182126942343305496495262890681102268994971587550553762565231662793912062070684569130291457148259737767374130664231107756297024303955906155441413970363887127018797507537419411481925165952886792748743470064992182104476916164912010734107955194887162720693677947338960731498517935855567514298046087350360528398950712187557669500200152846677607155463954965132999480886164244137026822861518419078756575978553820695299062768536740693422752389877800623612713024935078955166933435207725316907984704866450307739896979823842568993231145373097974027622006328517071577525186157579084067194459307213263299968098038458814774549111933932252524702624535242481043650273501507610418173214460359494530044114053994673534915099788688261983385896944779849876971670449129985023209192751634608728673005976049935088486724332409791152948393771691699903023459021680677328571258024525792266634247156302603829268842727992338723489497211146662700177582803631245933425199549472550037593884320679880886279048001480298475265795110030841318173067401754290210154458724593853790567407840810089476156219793818639526043604005557033092637853940067364690825646138005885486657337560507856263250605321267962664360802100632057910373973232880332266270681731534127067479105224333072102350284119120880922992969180979442178256867535780266262300914077852233108263008788803331048610510096406502171714455289328105772396071452011345173024739404092708919764028590308458131745614339912000174237106717055573216516344950236822281212939967425663131549477910425478028098612828329702300864633054512619511688420257345551027190833777541545184204366195092288191482113554565130818354336973164651495383987656111522140365908435491017005416324184185309038554982374226751826893848366378766393544432532043019084775777023418436910290585388717190344578676464269520863861814662560843785828367592776478014852734080394217214032458273382331148262287665617684051639839583106686462610785884445977158325002527926599812034219351061324097835219986795988318722166653735614506690441672957003246011622551120385899805630384315193796290295141260613026819954871521787347892347445116876994396359487961848624486830229098388155784749506236457149923678065642862436006363788097520286803347736823615465689634317412192120350733876123317579134209014911884743667423096490173958654618873608543256134651323006114895438044747626298947726080117134385301642579838079500602479188695740158679918423420382394807048746637351695272794339564140447127880916555094637742373545205687956786317425470300146340195534931351483258257761444166781564585865628230841357760056890714697179500429840718161625356919539806846726538141663627271414616406889871414253685484782661144513315284111362968579069235547585250329386555040318062475320526477233607172993495496380477333924625195715085730471271358961310072102189252356636561013027306382672672243152876298573852805485166951902345527560704715715468008922217974593265647324396490801760789422483786951550626147531616265973276560786089161258218916919814610032623043646797071917574117020929317554653506675049584594525754047321349031183450834478170943566395034541748289047657257148372578577568040410528969792030515031537955524401564563846718986234605529932816758608582290193704916308726142860968449354364818077280956416720607352772120198835982752847270815159529566266808963057166141080221198681405588754810079821579146500821777537753406763888268155295820781375182863777523756761986009823894246581333466746347071030120893336642935098784427789273404909324541159663565212583222371031128339651523265931619074144349612838348202484236956309251565547020747018540227186047766345590209289010372371551013874725509562341359061734841003735453089984106567235676925012036541676967984398432399753599584569191248660968216492494374919613054691515594768801252788500146304905528966148685229690650658561583058946714155657045045096779715268350849591583607715067023145176838179995179607532915575873126758185334749016780479518002824966383411536130844742327923361164406160097713753190329070786899665125026917846516345687871244408761914471944960500840779102540145053445770719075862063944160231480493179220724128494103101155319458225880552242543167841721884240038812915881409394192327466404584499490639962290639694215282464448913269919996199025009759486196764744379709923533723920150980091392628853616014784449984588124595721391886553725918519287353770416195112488536468735341627855688178074806400286404947023318073180021888348084255787142664652694555091375539565923567757814531272553002317935138536456070425679336231456957025778537494262729383968520990718733495332213255459532503250117733854764082961043623938836686945853965198585964609566183487158250573463600307105122868428051883143951020307122213227840831797639779604314704759865728376780648210172808215560735010503512202991588723127190077299915938611656758132088334422355723755104211023789513216827379614893249069122886552967409579672909408784738009557072940516297158501911877907535925986996614113966384309542696937636180338726174333256348894911172440837641908655967315049479508096929406571184180200699407780928481702898894462306271037244899157956873513638322930383929303458270731125792180205943518087323106121545815869739490967632955125061643092517839300562277880256969111590216667791785543036506267892627855329723227028097029321252091282059163751348251242838678512804446679477532775546747177085960925646884040115268164940510740364411985332175617190066323059525139496340889044491409018924394830319321839758287934592805503112325133010362933064239866864784861325504109796531182734950896777478012878926042065949400832401991991681203530464212033919285578333091936511992853292574448796754113419417516652592902838434257025622490322736392880882929899935674282517784328890175359828046827475117299094104643369173056298776483903681212078999516239554293812767494803777633432180379241633516127975610040343258197478711080136929955788295304431880936822024066225303323332268591634345296962849433077410250600400398157225577900924819745915805795721461710976439870994963467267502817720723600282604765109872443928510678176922414143617048930569057255363626014727990829368383888482593747094316956643866258969156573902001914696183789288458326154614782672913126909869272469372634067244465595884618415497374362018077745505048172785140236222979513080121129570075808610542889864800964772361645590554506634173102059511744422737873442392013433522962161323009934745159714053978333997352334951191507580117530940402390222066655205290705579304108728877185145926634810584633670170895377917562947448182835574783315054110642429255456344437820536130409130707290897882449695031549949706491395713240095814831711588294726095405878799074048020615464373096178563797287173762333389841923788220718015127818153240045598906199144576189297511340372922167238334200436824572140057680308493781149836050213813736029414345718435893894880360274614167559039483833687079257742366917086131971014154176800086148717820435427243318205864245461723602640747674958994785075691191794198270297486510763076538241450032345026444643164741438513137034974896384200066943852622708857409716790932324613508064450066068833212541433019487700814432019298510288037385851933527714935497497594540979056793042306457095056363174263590751916638366658377423720968165065142275260970443509575136993021630258287842887980849377022747944295064988125040523390792679512812869610546263611997728561296017861795220300421885354203269445266243068687002703117001524313190780036502705739348436762044179601607217061105128536906085542326882238302323922271084299527230209569448589272604845521563170753618575192922995630979431027800865039727164933410174560777400528906609176072718183431710362074479926691962680514639186747587927817853256871668423798327845589785590325134170157633253921188735270689724269215145757471641879811051614037218394130987371903702168274188737873088306836800284078438946305749019198612745592953841906951318814210776529889081465130557202694740412314270616008940456337113665278864171979238404615441754633175530072626099760090590717803671117129338056395039216798416053742261828675788886734563711746634070279121978130787128033252002861608333838491278797663899918410778415358480589880246115312492629942034819492141283537004450728236680028611329205999675089733951140145002846753896548139365435425148299322215525095831225871531669483793724417919798579502260070264776854472396631577154477962663749497301782043387020099190212602563338874100473673107183828800579197426353856265431599082875618182099381236010393454242173031800152368898481607299227197434208843423376476521160756233361696719888086260600428438890628246262520569508827630135086922126552589345858059093692679903625349527462043663159475968961255714022968272642533432441539615176738599289434013595550639202055881922279771523308926114989099211123292992478654389328546890259976339546328465679489840466706278436561332983144852440308022318067355501949301022277420132175290304972993693019232254869305137807026494692784691402891368898464577479428614363486681394806616224589371701223195606511632081187008250532369397949866284535675574283483925840643536105164470083755437695776938429557774868353186653819659768761582505396086384460711207711488143418860233447886164803050827379600997918510829002481268156728553644257244554719164594304381109859184855562497651098147271710048122599945410254703792149465989919634983706945431263680472279760299382490596361279901121433227467757430659326211905633097985725135535466087540008001407985155767878808390933768622656054349867408647071686916056545362317340419202353617069551433822848176948706828733871353750691276770486411470753724137169759681336327465801289400032805773035450641228476744013165353444560685529408648980195433751479797257434530538497796597316620151472385525092516730651437544004126936110231303560038157356481887942320026939000306356511388311008985979544839490457784140835989918542418729995668452458640986257564237942696147752761267290227316538046216110802517784798612018331262020248903210651175986479980052496786555192553164767898585098646615098810766693099884886058239072189644680426329430046180160058982066845000203125069926672137451697742253761446220591877305029525758180894143230327368233845435106363976666901401824544444286479220282066449243167546466316398500071308788356227390173237344266832609628788477967050013078528393759240169234596137208407077430945991908863198479723014419564818585759236569187654008877516863375952210400572420872601295191251946270257335730740638054121680369787184394655627276743525711143993900636351904864558203728712778128043099141946036298876138376217462502246438126218754170998871100251969651268112552743820980756049571474292496317962093011460337437753898176471539569610348093289879567122141856056972054771104520127384564599285654078885356956434965723505171434440328076357069843478595978938748431538348827125800582852589528631337964826564605483077638989667995403068825695042667803502146049768182681587999865740435037097766810579335335405600980720435428627289415367124150827649889420830036316653966374288448713761344138885472635761995684743801018034816750589240174313656371308426048685034282792212721870751583584600794707466746123775310530945381525929994937782454079622885566608085298399927392511818633632023337472882449173800339082605077828502162097060730056987369637828170976619112682058197436184281877696650275364754130237913199009637117202317611013768009055530252753906088017569262973442752502643468286246300935811665568614600616934326799040068567175989872572018803676755682421732680572384157685383647769461659236108315483973929250189226919941064074109326813412426100429622753587681681644564491839703988746925833436308283079470482582544732757183442671277427669394255679642970198946034290681249972584113719890348841643032091102969317472823573677716025549836141495818683803397942708893721269817651200315651517879793372200616917934519855230398529912672569366401943400974520088950162356670923380723889113251977905450387304773802767699961076842867347176955751989553193918909251743494301480676306949795787408030096405055971168326461359815889318413161179842859345344086539121252379524349881188001403724712609606430283567638586713664979850478858943212205947583158089788398166543978840714535196807088577278644993144459209523388667987781685626784844676527677910936672219563202340067630244838701657462822753800426013131843973191364512573068987921181544486160733854688512974333397563172120351233502552348523304874205047644129054053311191795776438833984559240321107057323437776994429714472193792699750404993565201677341183339340332514961420759346570334925012286753971194011134955516107411986295381151348728657420655435969487535095049877163237509830806566101118753937383616813058707261621477571338376091983182347807056959983694316789958658471598421958420818229212693959197274534341652119272404593732289313272359634288054353902762119284500315689693344118146554830970528133765317946707218369700915205770098324906617707017759159255206338523872790596967657450028547021521986044647869579160924332496279930466924650675308703216026971895759097796565638873354303005867582397420788178820041538222144151584875515832267597233503187281341008130743392509307624272393478286376775685948631344488905347627095330854314088034213896161138322853420651525340601488867937048885630161279909992494655243813574055536841452493357987950469497706287407083023453190414412736213714767477856457531840801896394861002591051726680188443317846450467820544158213954837375622116961413023479140250820714633015415340840561287108802425603849368412229699136907199267415986199312442367996467294412760983720815015701327203204744743075122983387206872112283563872628085058856046665649283566280997481979476830478477730826887893941068844539568671839013121380220098858589758763055797002005693397828494573401232768239384650318059051816684380419861680992068414543191451393465468113837406147720472465150082763030272537147873678927949680822610421871181224112480561213115896240707068808182375578841349647402680209485698027034401595417951560584424811020135963725132373067588638318509516022084836299909796127333872730027513986935182525637181452663835623251371107474390196415362589062609833641848172652073899980943474236819141006371270832667081387403861103996359811510432140012973296238300973827278577330379985673685030257890373493945326897944373924394501964805537559953917652615861681340860978750253271575410172453667078239743821481336030508912031896148165871403248494173105701748376772546156526547628003392538431598862022786084048402812678191808543470094648739605611927152909531259017928476751715546319106320215533133761919204817283187457148691254800510829576901296809204429788490236630735187821063287090209118011460894798883508721558106818269799555995638640296641232380355827594519388144991546139620893391712345955853239665266937732185073099295768552453975466613668221675070501266011491342746395181953022038841954820380247825860686823895071680370868045877691565603114294432715518229931889166675780881821479787938150792217670400917265160360166756662275947020618210138206243422001848815271712505737236605224605701353784918716191679937593498906376664467244643828528398560948773987771194567748152978956718470610900649713635158834393135523783919995137890311688156822354216300831989631807861322589435227875713681483621875462338114551617671152129635772811510016049951349850032779509384851417294201320599118982849534429689885989355681213067279233415179634295254439602418440098516823836915686233215453091409200434089540806220598289385212976071345034384918473942140768312781357629948114895612981653945856912492897312014857346205720261777098760039807719323220141313935436673062727627234913986774143588096422771937642483957763991468209622272225260487430432623596238547155916385390355552278069995197224331534949774257475437111867944216110441795548747450808253767984751331729667597005049028599592182482856155330689487693961446574606066530327239863163901276591576002602220307739229968948283735965019730084921967360597828233082292375364688689059662061723959000478569299833681863087552096139524738308753072522576291043089607797404984865015206664084149753257459130625873014717362705981348717291492177916610053564810239487119304173735032681094451021563211469320827266925624881050749166152333541792587214077310714836096251055173636346548313298122902502284942398489573433861925225595328943602399870063137356518999771740206718265187847534231866925152186674071148454260954877909150869777940750490601101507176013225739919426040853553876698303183702335194773882356357919389743649093014722896486233738790015739455586049750611106631932841190031509918654002417448351314134767457733177097827100740242580422192128016557134323790892494690502180549629409039205015803012981027232361835751906701234014780657503723901412971106684355580267074653476806323101627713623622552159048648106732919217652917297713984960346517064686470366000563362489136289804961682525802776452519166545945737551580509050229772981006866733398808302117111669501494301593557644622153256320762871601131123215379072912763099190806348455847708666779080247999169350642151771286239026354886535132153996597277141250403957741571532721981125578453807623727168712509154123851646652195755179325624241020835338405185794528650801244959620680497673776938811695938173297986624867682923382318218360097544271684733734614241909079692331272505694834090046767141537333630516730033597277187584453209326581655197440890002800059575791939930408508100680640590772154918871225259317258525180096524395774360190407893645185137028188516371960208855877774620944758067315885815463609216688169804250972301060247499750979983718792686161686374921339942818185000099487469671355405992011228603719706728495865498275309879535429192119225809404359971412175701844090219697416305103735163271456976841508807067286671579795791494822775949015585782190588070282609481497361081510085647264624090340134181392212543424718126120984689844828716880627077961570102275144408882892795730916578978776122832822940199292671084273850752470687767327181641008448455506080526812748602928538576529930861475742215918448223864920589045024495454708476406837837382063464429388857694191911914467802263916629098857293591783102734308985743510193241578067585677131787983494293256053462032207325696619923645894710844379955064093306161143297422388868696929088477117352594009067145304016902467067358410528613619466585747460403877196069089518665960694267209074586135865386638623803033261141084306430516020109700033159859846281069307233567429909787984250566964276107874991339117143827421545334376096200597691194970644318302815882179209913955400603788247369845021415369195500433008381139930974324284953795055881194520000741215178108974918068712149165897484872805865550245424208619934516359736128703257742585605224754452109107280133369429563619896431697184891522874089134375665085133179158033268177080852979666420115500423425025521688970472566680494819741337675658472867201714150235552779782079923226911813992053146289875181883782522188404490048431578313936278484837304835365707187410711880227468972548035067671185853639269942598281776123853473975077059986511989159609368068074274244510312093368415877954787345892967814500585840560498906028762261922780456260909661742239724949463601502403420080499732456990993797805787725985288151890549822080181748561086970445756769687927506508215518893717002639823772728278290662910669054268850448650107982493896777788974269691807893743782002294200972319797213501427773006759723261934265302497823093884464758295320896059748460335198285299501174930701169807037657925737697032284931965232157866982273792603579665065100307939074294129859974347435682924097968564698894675230718945612335212467366113261816393307206302349556361023751195026458609579128879163858896470568081035827012901128036892289587818016983454316652151361932781049244999234314973804119332292577958702438875377175180401547898707386264948137069338840143681269243520435811399841199111596795099557380838806337984676871325693178167745846961668249285194736341024806852464982082985677721733048358583833263223183725173013282730583470416723852492613328441541965382311098125939851187827212671197008853434696910178714420545125278264902443713153641950346513894892669669917204136264053028708409587614595068979175013630724058923354597050686242928044069419009424575375807800746069048334271212517178062025340805107559520770982170378301018275071328714560276421539561178849827870118500397317276326826689785295588630742320407574793387181430907707012215540717024157977517026548974064640150743277629538918213149289469251090975773891336496068828367575419793466228269665787467386861778175197864017000765606211232782808522129000803605991252672011076298409471945584709385562600196754071661687781915223646203952262468864147028751453639629397737411679517984281543002855149553365426784013328435437042927377892543213142097820751372875246009319992774740890794653899662439268076612534426859434923153175728964458480244416199396576764774492573490955357232256637054340252745461603092084450898366689885713355841430603861832050978818370290606261562766121211176780352652284078172382730147018881448623792786911502265619266299969487659034281286852867843552904641463454989565125468953546488131456439527995755132304626423632655466598030129520543682010735296952372754553076829638957719860167486501818615983331675967006596681721787318611193953763309284935465299325431257640461113670900028179970772827938970574815697169769195160806747078317503961477896307873290252693260804245064295973707320717107134765185751961799588274999512305123648632268589655996453784259039349973773479774164257803867936783700224815882309335214521039839632870013902422255815536028061154290245992011187426660234442644348776337591409113140733286076467465698713062160428349325812530435204193012657884874143256246350606727422590527328767651519299316578646447455677672792723343561250153494193051845145639217729938731917803361972731857715823570244135198756109865937304656601287114683104604223669730014711587826426172139886163223367857057010417197615861435494954567276907924145826251723968570241180285075358024339500735796447695594912535988379380582750197127606230055655966965261500521150990322236282134005192433635470150736970191177632595987060653233168719253207327710108506000108751561176516918530352320669649335308372059327957391743481026969806481436264788407691346183886729981489454236195097777199430419601928956713287880013720667215935437646222850235608536724407080469358480063667875036312617567664950849619179182830145345065565841566199243701492501647224941087133253738672416922904435852567888081707204021096991064353590754954755175861877236206652129280566210346447639809616149436816677852762122215044865667877608737304569308634373854318295271703517084960034855309182680404400019254192857756128318088724952471920474071525120034890025553514666110733500155528849253569800445876504047225433958911377064818683670926294994326432893192385955804694302037183078608347585442571348718694524704467113722242680219412056370577111269842415262714242001226249028281050464818556899253448368818170467782437500635373836875539938919421740760712565844838836399897378706655944564234076249065306270425334930057920112326463923435140028540905298149332885805549724754847996771676188080346536803928302603001081953051297406477210500933096163740041726641202494451512403732230889238824341976380445705408122071878768976340141936050731302637547894137755654417347546316802463793783888984628200714109239761731109135136672394259565809077535780844912786270583905330766661962402122866054849246667688793059581420552047992511421647356244444505523646505341406698319329535486575857859877860507509177965662907935802060497432170476621730529864059997659806326725718131097343483610338868197562014972257592994567103728411978664463942296184623457424626997519408344326651782350513189338480899532491735831455562853432561867614016796363702476196019947531925498788927800794579658209955745259469062847530877971998968319712839619240372508054917017370163839211645541253302515252430964592072594451363179411301646653411860353932809912596475730267040704786142115536070366405076525678043717801302089843622693289433959962304210554587802151812984219859845158468414781716320167497280238235660059393609929984803339384766781144110505710267399692302446728768439917974959960198011917905308733382238052550806165999418675548405809686728338118467648045949424323241628221972606094583355538369053922770178991054519243791438739642888747741132522744264865136917056350683260063110421054905103142946639252144759211989247357131088448124628030937813306924513697477983913988155053381806102751978373532963616336983176650765947416168200182576702003622790531800658402605472939512424667134095540086800769771746176119284787441030587213958343198662698263521876898691693480639697201577268321163300305109949648485882483981495922058594213177884512846648276279097725783944397874028327783891355828368777937876531176996374227879274184652914409843045317381686579214082782790708304237488147781225791401384083484801033979722751569304498967692966383332165079040928658921075765574132636932069730780278130676137679806966085923117498066838333417085005617787159116578620345583525749520739017738975473287263676063192461573442195164725439094220611049549853094170255283999664074410275080996250298684423218212275056834252645697551741583262233693493707763764834684741522524724194835607254884577215023026991753720868155261589352282319624991034292463817716798149061008309227318776420620757349725308131980917907416756067161214308461026385387727526544359102282088992129238359706879977763313952958317382336849747853616807119822753010164472992770927977748545173360747825297963103823390445637481080723654288342416365585336445285745250261704307585010978196110999369382973945777838764135978466461250581784839992349902339621781365842040416122373732986801056350362238281259844576845703449558366383627583319578141490245775311988429888535684462733606637446629436694766741234944190935020331385909586839033326344295809502654142339320212253693096232124306323140207022045582171149400887862753519517778419289552886909691732975372841816579753936818999386096878139232476668852717432236861541744316772297028677804797768349873700269719563042492976090621893146136991946264658478104463630464273705827739776897298246611972387127144002033400116008600139814462692226041768003713075196906610912049079933070378088509407842522488573649552497056251821534225183995570252892995231889280427265774298680109777337662836396900508390783593283657838780197354262682948143526828890225943538365398215548026411029866926893030326873856304552620854474365716705382303074211088022555751830696695048050843194474077996622104799224557423133348769005576024854966705567075263255726383640245913739833425880151252216205279653535069505102861560262059749223847920849356686184532392780815224068299530412160426098679283521469052326935050668549769068531974636408723088912934009705853415734512607641809368776542783933532076990031698410217381305558165559080200434750173938520680993516140516705383976752643558634942575621634656269910423566274950351382242441515755371470754057024919246629139681342129609432517225661818315281747714180129376497331194564279813185407450672476002905909096196241502459031878277665781621805459744555881483237589965799788674657371102270045971526180299042916728518668513570545119072487636000220088155370568261339651815591840947106945565446440102235238522437839499916077887261791702434183395377409471339611520672144965666693944617739206701146515533929863025357243999804618356114634375170017341805964216298203954546475834435992858137345803287222773517037806142235810576928645517104630547704317529486139377886425698023673046772470801799470345400545290476806892154979154820473007500571429089894213191760256176297024948115182299939849775571008240894703089057887923535094915169439693565800943372424807271442344501518350776546593055785937632848303914723461494785247115751572096568101106141808391176167307003415670398876122142482201881999016552524630549843615810287731394210797155477247533312342150262506019896093257479356675493108038931701674972551684583574004295845580024205666380743702779191209895494885249471322942992972340419712187774712849111691817149046950234796747233375379902037486516048910508288544553101218668172941687112224315759472331603284112186712882278935926714036087572441454867615561180493373630826520643937410921298783406273905739861083087826047489892557681451854726890994158817535013678444824180469772140063160932862584046702827393443416134333300465708568756469001944033898541148390200570970231282101447013338112927022623479520764747546533373849215442680216182640598691576552374519707337505857970439245175594267320771555743736270881398347647993056258948951193258372190952043485909357808239536738323461140817021818047914047060133432374635756728762426806511652164743077883551881722350942475741726892424043597126035680121987375186271684040125152264696186308546394508954305741214865315414490978388036725977298474457333851435591371718378988888369940413182455750905540386220528806238093727801675767421695209547893859111005772375880483435246204503538709235543220748221543533033696894458031240851558465623880431601684941769504711205408109838627238448544406186069937991244368501301263774788462647571167179708588256154932455159249844924106313696767439638482515311321364514742202763439548335851409057366497801037691999049576908455835240924317913865418456190066356054476786963406307141775412237199712886736111091965733712006240992376249727300718122571471337870097461565068205585213176516924257494985000513266076432854632062514543047434312260739411221502471112627083805777699091533963853470321463521080052736250131985420159089641115147243646801161883355744504946258916102109523115950758345692505958529663130138189910506312816836102702171462942792230117238925726171848447318562416357165307889840054708556969304465296254979424053257188753585693656252412081320739820500407724139862989446450130755095338545938768186307284477233801364322959738021686893883301161680432428100430089106581612053855656331616936514623556888697040894351669909976420560200976014693070119008210359440409466535025220186410834748653205282030196869017903023571024306912955111611417173312657787940673459122758140087599942340782822030310935005999053374547756340108033200933729961032948564895247601992955577869500119422345181856253346330284604537423022220625609562754295390967807604774878282573857687076757901681618108175308934539192987200821460648183503005756135308398954341855945078359712286417689281034842817983315631745057959462991180501095606457386402943643913090481820263513799218579191004886894356046123553777408923019910025719153764570749361564281869938995864365334495275532792884882364111913510318344865494736372511417600734238978180375629864705629293465859067656957251511021086707403752648430184510149913514502569760270030326670007623581775899524448487073722846044141066305570324801641075900066933929697725764498728436307825043114284663785678446405628413240096009236496221872116416610089908957243697608011037393043529319079119619805195173774081453206177765572133537639063362959073109482536475682038514219970059604356737256003845712758877318028650649076703878547460065283750538319492334453403330566025642089562070818488883065364188051024574402128798225168834695132441453179270798976633998575583704700473370532979421076006523358826270610847144896350730305817292305745143041461606047631358435138756365880026755283233790213385465914590094416343613200325618850715683451736120631195351059728812566949163161397931091916240795234188408389472051073485991932698829609659010799034864886379675125279411175548130615877421173589596735484758093913116260427392278443802297923459274976469934206941603781416191245979297523754841748914478376395379490480360708999817857783405442004911260116443805823912207897609006311205573109050204225692637566067906223103357236534089457170675213425234683306294370927207702848697485295848665934445855619687084457931461852404258902928040399647374475471264520961630958457399599831821177516478910379547750713045764492641112098012093092006045950110046075399841821776820154754293803261351613693812328937431204788380825237749080322001356083327479745417184996576529692781830808948715800558904229316436594437103781350578451558616334244244724755458289738646615952663692435846017003021207658571334049841773998115209145081772304623654602267235311375977066703180959599692223429226279747334451109755467777830235145739539771353656189997808328749914395594944496885900548050479107673571088700935808219432054478100845272771378968879782373073208943886945974848070146913954993004728257168876737619532533062594098768022937205057859069724688453455455115482984663914909401812103225060548450769837376552376442079146471014226102038018455707516051676840895812569466859684930029377514310496673164717615381191573863027592384291739492307405952006896386492015340823054046150656894734496561960912107269292203893722822420997870641027048965523176368789571305355621620533675169278664805481497223528418169489127425753260554411442149347335446887055536431437117635444997452572233422969694600558763906466546140736034289921110665081359254956664741835264580326198444026296538032783238490054974208645425596250595114303873219935238019624515168427761705003505077732820834342466067707207917141262868481487576996114811699552798038962616762517466640710883287370007502825116774607856686709259239253301913028112268793887264893916647379376653331187388223180752633385456017783478589373153272354006246490084847913063370775177180751803404884088270262431209916694612112956288048173233520947945245432994612056508832888038220251721627185209743417155778177443676531567998381296465596079005380958215609148987466445903790277860327530809507283355180703824712685661025020251947457245213957806524358491188107151782963645589149872708042768029984052972695403751443769579772222662091413573602130887808142694071778787868455945571905745053780302403612697851249174125999654755594365219346397835329837804447218069241379834883026715561061817736070656979158294071013810313456896601798478715476713055515428841486589058357441678068105635166961110109511535395362954066067011151997619167350753021079001826661961520338862383913514287641151907487421039166193097774772772367831939369982321004982817477519402657765130201286720521033634045542952610577393305439026564076843156191876207864867059872592582803788497999950323901805121824342760640244528333475607157978702904600317619915412192108441742630104946565261694321786670638168708597636539543131927987731479843006467929148624840336044459330608070219545366511926991782355119019278225911762358445809514785433798706279457548938668278850644662718297090162459511464709706268389058520032002747992345996673648282792572154384044039986739668512533039405807242552425896486401627796181554809387151491802899739535572754215717857986096732802867003008860322871355096768325705097101714164564112257150724229700471206559492021209662608783431657734091695559864394151167686791838113978586146039236525819315910882384289771576582475857794186142636924967311050062438106919513265080830663380583283082924231802131892722360420748474362974142529313539237888602416230594365735848784005897346903891548878997532680572254511811307362175154614437411100959448252976440257570365459569507609470413829660749993269040969186289296646800846857777963724131705392242055561962150467433627295667841521416620888525776430632072617215035094527491099040510606915479783770113776971756921345977760279329008862107628721199920673267412050018726698651425362215412912100049595626199681988834703407373673511460670156504480289192602724266612071321323360903664598557273795038582846076535830241963972220386330213685691184083540568336779136285961105481533096323206004791023281539766531917296419188073907246693321337307502872607774309405196151235026610379347281015927920497751616867232059595273438860472212716750916474395955163391252468583197128818894181681700323021981699421489695026695209758984405533683200945868136072716565093825717802363445894187736210155161573731323152090085999266252450930041302740162633280720403056274819416734024455937301014722966725641676598495629330053078665480090102954586442956321312760346177158800957359418992400494386045750651732093133631561564594020026048785820978132881517331016072331100812681541108784357571871494956893760868683381280364703245456858296831946745173868210426716123360594438774551241055944812334985816788215179760968295824512006590878572549954265439562006292194911574958320890696704546768687308848814810763158410607448622201290503508778952412805887465448812992928799837605265101762367733489242755442156370039102495442847474166326829077989219194213098433859976579992184971578561289077168873125307429029385396632622370970733732201464087462114595162947290388446651113937222327209497018834770382554512076983898659336929273036837907140052838355971791944036650708632841708279713896284174126723335928732005012847597553970454324242855308828524906938559096321478066332798364209465709083336115232916004660447529497431642572141410648940786321657787571787682688867268037481212215414310412160037345348070618254394808227853456082031778954082178201547962566283821926526347765118192692987421420499940161138666471944672708631060958720900774292655399028707005807240787584234643141559398340523593658612470762714655994548031065544281926637295163365140213952384423769253882021549066024667702554180895094552495080420468033882001866160023948255120367562286639361210220381473871818373768414838272231619601267137928380861998164038594977298616635828580987982867148957888313447849234968939738791122175161792299425380448544680506473580837660402178281157691783141733413833516665024360936383928527449238863497873024558871074579687129210687692145825288025406767311716370662884519243221411754901234261278345014436146289426829168055904496376012325395312813914410632350002268367041266074837613479390910689082547008966741012303726166935619979683555813060980692684291447500728742282872948587298109498694996307177932828011328822314176410661445078638272386073135595262299448502977558643146479608598473882253031044438435498592461435279084111564047106022722334913664570744161052406928355470360585220541546948396102776296836834217348849705593507047866836570569887236185689039241621547917518132129309197908522170478644964012559582069168808707252573033509542429830354074753186704140755733659847158548143152029503184371983958294763604044085282900700679432843945709592470599803476796495834167998534996318285792918683412494862142319504399811709827836177933040748089493772703449746905849741969388795404372972504251185530599903311535623310160991393505957724031102823954325299761719052881935078780678718187123103519084407618031414728902081679298077172907053744072596005069309557182611016674383993019951371916237202882108801894400692002820428534510651231166925763958064259474373895206822099892679736747230714575868514245118967389754311386299137797356930505659712130215152784750092010602457418454079844104660225561643582598972345597255364229512432032594247673527084270863043834138092791877951968381173382030310340997349124043599075848747129911452248562985691307614402446876172552795821318094567285628541897813361785081839075343515518047717015880875949852911179156323260802671443205680101247336375768557593782286105120342610140181638745684578028257700833665662404844011723101043106107609781213469660691364244608798810664676836244844785591481810945725028598819843190018391515933992930612514744641707226983529697943958636798234900500505055902228296916244778041204444818560702931459643573190972368410047643963171464634593366234087611743419698087730609506574520122673690572711155485192839270367593697310022544269815301481908966396298532099367044061570618521271760876824077376246543603039318877176869821329060689497817207692430256823641039792854280077100453888717079412889795160986842438646058056856777347699005457549962156340456829062065298691449071905472650339904890519613181192355958466116447454673282762774628167915538297447306983851296627655176265791581901451851829950118306112462657358564592331601118736709870152767921874767373256675728382231467650908926951658997199529747981647628080741816921888879854923951930501842247297366141764858241602133391216055190860741163177193167644178443647097106444160752586194667423753410248770879001516677983979543847111336627333658439354030867153256556510549232478571003384142935065172733689706642212017710080432624977657629538385040654035637640949440852230803945691296856360434311244924901603697176463087988095211656102059247559312444248725156851564279736952579344943126990268248206007588091084256330246861867075442941986282471998763588840682036978225314348664325351495016698343420256912984942932284530564012770073981230416375189164162455595538175767109611823464956330988811587555833371743553896760220425624169725546477657345725230041294504746276266012279785079893599146744466576629005402004460450864425066863085634104986708859412090093595697359464685636600657082292710522572897369215231832706572937985477588589715183939937702976244122024323515647078200278766049933135646827091638821584195647529002477533746802042110073226699436169191220579883309961750132225203165028280010473654095220440464266908089311482062988126114175623139744964565795396039404234741202993443739188701174363988644175607372906783187294977349900769151012176211045085848568017428513227575529006049647949415638645045390592100306792718972903309248140786359394471115749340326634089686180359234092713885092280199647605874873853839697362515016072813282212577144652599983636376955230608444138792585556742636701019128939636567689795438180640797645109454170433462318494279370808209802390458627369669608842561349786052410515119248104620857570513283957291766294607008944096590671566608779242803181945870835406650399577510742650242695757210887747735588129114574590054613542893809259743358284529863647655072826999008855426250346896556664700665270501766113729419827097075088329487714869586086625422217661945679644003471088663671528462168407534682571370944806934650571491968437609680685695669921535695157041474558504589890785472262923286621337590302348333204487226607257426298683389058087059661559445121122477042616058370419546355584985799637521978285050043935243701930962389665686485288437480066271619463576601347901478434694736046541221996041773844127102957188324353727025474965170159961519667437747910837843152969832292118706120950496177943814812608158810661091515545094684396976572636837489492982153631785898523808535833897693218666788504830017438825786326641099282834403179111524223788818832606357612418863883822867131725136540642581619652254193536629652324274465104180261393946898890783519147708821889875277747185282786407031778803559947582825989544422137290103026600060836057693534732736859939861494774252365619818982458276633685151984036715776339955389291249828078381406638790261178369103253105304093727088334651488046227836700811850085784078479261285781930137134291500495274391410435396531837482928863606119470424347568456802886913839196491716607114427500101552297294574374589871923564809226144385959934463457514070350844392280229197585589809322362047178543937213237088780974212367087729754198019293120350270037699036370264756666926191290821410303748242283325648201160098736953898253218281881410179839424681586389138727049457674433832737970993974880880319337623052078915796045299092080272701427824340912132832970204960948536876930919467936727642324949110821138199926359942227307850371498813761732471639131388808410489751374096559869795251384050433192437489786123554389310231505903133519741096380252712680549276885439051138894922501413363098009438183440418793778292484706908852467082093931145302517473423694223417958567314620196417056612255397225762287345280475565681384766147745893527852780997934682073758206879019951358328839196131129167541428760503706671855343876856181143154251816515453619514009880959507729906936331873698561260270856563090185246247132785264573504269025428996961941886769567881998614133066893882335827156692916571853876647820482466215086942336143023005898677076941604199353159434220774908535664235674969644040143859410313896706977819707308204645725267422798771398462580360856129278155283505090977120951523489105369274171338237713359486531831969665005406353105200331390461847649441449708589770876952615396670347818283580857429884991040703992899135391874523243753170746311121655422506429101268420229884988773179644342714301547825112296131125645266218895451984971315225573676514341016379721538335909701900624178497118349948888063069230536611000630086547124033222221909476078581226831841947592641367679718446721085906759852279881518198437540125992796986222173142824563820243826711914978545569899845487184848080076620790644974638038353679458204154890784297160010668530779858209427483851247998943818135926012406795691220468562889569943771775663944357937699281693991340421614709652493228975942254775717724456936101415421805312432425621949513520549183885961022494021172976418911414338921743042603207394551949924770055478464245682024241194561076482515848371046113369009283525992186604982069874348095663383885415540045651529570427990480016125148675407745165359244551325041119894479660070579250887575071788159111188595873012588260895669214528547939132725342750730249823736684687798017798217271896505348451283534197516897676502489812343026411288614512045800629544630040555280482980777062426414469282750680985494781745075312712952459436207875040516225530379053790204903096076668538725880693644102642862297461641447990974356770924208459290212795998011268300543506712726158107373083031384136881366855319499469997710667523775501946367284273399135086368206156225627354173003250467086355429201407800899923621284944207933908284403428769513205040868357551269468255217838184089192739337553956894029767543368943309513003737339678289047551100124591189584779054949131515974257202576654283458932625399039833691026713702416067345959860161018495276302233631724515452825808734317841359566621189916258652697218494634945933997194343366017729231907723352765172472502388866255822652192690678087349026454680280739160635229134904759061184971608767151483279383208442279932295145346116900072026504369652457063776944612885827612852820277484023655215099192658858772460401434361527769145455777716029243618417167313333293223550786181190149375755356292356715654165710952167213151997959553934384930103982131433381442542032957400597455926687887207282452137085825539432099489438303622458688155435804980506964466925059675576314128853740269631177452412025389823265842282630525837765026710030983349601803874868890466781645793538874809547049118803527768288748666893388617614995474978232762042596917825422485090304730368989869100518485380111583607805526257356551153278539846416223119980574693364007160830106137864575161590146107712310849715109766797438179587813152509923652638283438560298985863849982826542737911268091315993147728808108212404346114567150649139517989924415028520988121802694596655946710424414585787361083488008057759041032340185013037085598916147723017020307405385002586886381995400531526229608917618506435065056494479282497441714520823893978488722295728905845606126172704836970674129025910434681627527536744590518497221090809855389583359513764682333671051445784523828959446965544536692405840887874618754881768397930554010287925936941528332764907186748324061831588945659701884445167937970849958479334782043575180860386911133728647303767337953122205783588324817400518815066491281782453714728399026521875270447930613415020872000594664779690316953601942748790573602844471476034428756289818868256876214668644600901676889905824221209719680276683076455106100646799377155293350212288877519980210866986269783700484832761681212052421214547449145707758012594268898669769513587955445082416671365208096012389101924532499480335360231340433686358875235273934638159715066206963998188358827099536363951180769037269686557225867742420928407471764763191624909485583569687229364151202299888760013930989253718214634244038997964728470468591983516334653559117037998874267225051714185884589673573522730119107205101847811627236331500492324332768096490009381692926377517030167556797637832121275424022478850458991954901698875434050147239323614626307359442498138471739717827049431649703362803110350755442271590158879546479332993777922819643394701056168213538292786677045154846973168056834844886815043624183234104295802001714161640554861650147925132529248807027015993142381641755275348342789148262651174975044820486474824986057630830760762933164366173160394800068155806995693318562907460459293741288251565383659963227564115386949354211442044221479882044026827046884660912141428412427201284129148080465911263107023993476592482647715451368540837713955859601357725426400797599676587628682733328383585406706556948664450332599475262551241510675034469733928791191699288334276909579249576258674850401321117378852109851136640416139641459366918161094077218934671104587870456468660190857378246420796843101201549820096629633329244158569186406836137476672966090699308965204407247440444990089775068904893301114996573324360101203899805142808880941495871625640323621175995289533880781605783292948316988266219261864975221089947430980799924218730581505068786581360203245073183092149544638564858684767400501770376267320958158082471521007539371152613740695965473503702003993753206970264289656868858873387172088936425679972792700154800869227660377014702946100698836853207806007053748768557151213861490131154282603007511174001756849231903665412821817455180104430469846525595911603999173620572908847794495512401175804269720762484187332833093308500203374042743576443489883798421987578288137442725972194771355734138514933986373388743719416420126148256743444708226342391645589453446136060107669843126765950879858798879235924527931588992134472916612583498796674088932851991401126149538453602756154581465124824868382773138614629010996320271590901055142160858367857676960010633685401739856660408284196704463007266737025664713663713708036521597038323671784437528604804048699340441368238440988195174109897162807664518572003324973359719392542428138388481180379736400106325251237755010513054115730262531571829543887110627093726573113888402953701660551764798688513076898660313324994224168109542482905893351428814854392906129206163360716184523327005535354415101588776928019744509540894320089748033962894833073100823935902425358088598120336401483925282116493364686532055050310122895541291692952874458788059298972756283821510755006962515395291723151372841875584198703359148488693678561824257428940085335270787801002510797399089751807204675966268019660081656380657646118420032158989378869262174740032296440365720259901816594532833637245180043242550544679414515870000324259028034496512386851112018705963038094559579325136626820661833391720491099598613998380412552169021145768313037783426939555275358247430015186633872495573114381771401888135397686925166405396844115071526583539969512041231326028481720878507639984209550163287894754611299299732499898677094792703018279813163537669273492248876847508222540328273137438090919180997729491653604862496436719693571179623420616794613958359276741385985798019832088664529405187954814075576637796650719721601106423843241289708548851814926498686674536465925679072600303938912594927368850600746398053655952915372606926999250998798350807967892554379938302537052351738992179749678427808007925262456771087093856341566952330820818240947330118371417942181198014002772915039445181657709405622414545776269166093661449536231838396787275582363283879033786545906499637787876881086958019355404229097680845816111498063609091804568478624308914990395746190067987499037742053652242284445090019999000159823504510181826427799513602466392969301447803239445718308851396220391544169155870305691939209024938946205639630571766738622376667167515432270186747831606071298505072384711703378589575449696758681226765578191017101027870141621320905061387660988394645874592461090797229460652885925424068520917052867438244653660076489376430471414768786908038780935752399754089984146755375389706627968675460683696934100440288515253365170842286156154631765301885814519979193684690927037168787252554673048355018552281572213899279253280372283193260386461455800211359522383560842488420114400271322623781454097128217445757394869185159044464777977909130020973034522683565564779853504817545207034878393363426267393096016647663158272864241740791956616565075014903898043581374328649997175433078852295438667418257507151345808633468918264944143911085275949461135428788555783258532281328437778530684408433029101134976102176020227355599578014256852631510398018789080032521852876962269666318805754223668628098278063473582031505640206115487714150004001667448526341475450850085256507411809597356980834829696248687946138212573852306347639747085606319040551930318199488782450054959086151448927927873507073597001500097514099492854573619004382004974646842392568154243360341101495127898383869322158745686872407048028725017667125896138697483049387750534320076022409570497466367952644665173017142010734795307458250705777035150061491723091824248788898217066764674339798579009313046495566138992936581490776424300582459284376399664002552634254643693386524980028534436036177899396234873415532392247705262721909896571076949519716099454464251966164232907881718642724951277224811099968589160128891883326426114061752779434765701242876901851339623471106199973479886860748274801822131946989625658744742724274302787940146340806265774884961251778023609111139283496304428403546810210271863886286877297029010834304516650655206287271379335934799629233111399205006971296251883759687949029320057593841076663474290987085299799612945576689740479609172536596125672562199348623820845184667272544668012276335324711379438904955409375357798406153020661250054680151223392843509144654703527449281780827665030717452379434624180701127531581701451427507296875576398226882415536951328859023998009744737623374906107391407258368513644221782720593234389319059560906878902308886428814688647287640297730063356575682662024472159486966967518358340036705556926466838283512778325584639312936319691509201152834864589749154950995757815052636899595060501904971096159949707311423163790651212416908421692851988241354572014641774378528596775985726584600403985510617662680494706197631299974515675366719192671990237382796489096310839078562240911095517839465965996762964135330369479847278963815523799970372437344098243439161184721225873162281965146862280794984178136192415868516860006784145786766424832128766007937166538855750915007712478063116580491656836726899450916649683908552731070423189575182394255772945976091698679048845609449465669610513849874862856501485067173215247626106308210531036717744085605005331433987738186886631665457446976377438154251162385914506215468139087411978782293653858623438050042433155924999032660446489634867068459104939660779288629365109501030680045687511803439551680518808469600077475628509275621208356214710139018023600103476790293828724992699100565652395534421537667239510103152435545072202972313869471878458631336188001624553165706352733790880262993418934728234487152503180828137938477020097678349607579417188545902569425383258945990184910488900042449979142044891961756432760346740614092397073044223539923294107141638156056402220049628734947923458539845328333662967674609419863386318499984358711356192038164377972011614701108465409322116858669247809096420579888639353874523056561898911966369796093208379119570766177086273409995959140825694555362851830990634939946339578161074726791601047833506719198003067202439286934154436240983668559778443954030559783770166132447780327540053095255531913090147774345326666610889931680220097650414237666001861802158378229828762949553580333156879719954080239547000305360617129633728123675943185741503440643031969496413856082972727865939070463378957157913127167731266674847195090648818006324841551540644180085024675688180715379142168348222536727092830343358744965152563844443921834462719975439498685643835046593835621782727565354978454946323841028454913522548159007545480138542072740167974820418216396542206894115772063436914177813500115690082076338262602999175248814331556045101188725399431001211643179929432891459224493012554748074628366212591774841662542063287216770283238905885842603756914637183529557939180762026921139089360838801491862353537894594760138124221415590371955255817704519136446190800619012776496842480649872790369017604886575892399050663486205345098930104979856454033970244794997162541359295596472874322591863519279927048957806966917636764424590042800418137016880586253229717753076480954694278527059831104024968450845836715961620109403307938112424209073316460970673546225602329833250308205949132147320037598164502028293861324161571483084765286542218190201054335481478035238310409797204663435198079711173653228820918512650664062358530444084312385144898033409323531364213122165581745394200335761611326640783884189353343959941495566879009837392048518240653022655179278237672571227649038508889362538156917402702687341940266046889168971837278939815708777576593978381464938373800298445491543102675183810375721950638239805922773722343367329378532477439861164832391272551112817997093528105123126554005723671977674987037424187325245739844950044570925389033271438531221046490233031688352492506829594906848561529009387775458947669755148188613047526510208015829917264395846344191933487394371319496753155911289202144334644568178589874900204093445911849015325860896593494747989401908196485723899142978084562269304050190478011159303057704340379906452146223903872562331269234333801627853005365392152618179351584499543767007713369676012713219856929928312266769429580767146324935585795441172886994627508406399937885969759688015675270272001597230869472159612648431117483812754043583363140969408244329577492261249863363001833453442516483687042517587723508840156062592994220832053184538534801814632012737123627326388164423230531246010764149725666531226568378718897577134898524930698662183083882789498857357935036090700821551462210034697067722367394714137966513648357226960327943417828653704327077299571230938585950611619777813624026662454447811965487895739730140548846628656591319025545947424441921128701490246216287544694279673710382382431962284108046356515261344989896131625462024323942970581059696373201596723670833537226469806077962302466684995154655712518753460440455154296140494176873853210436531494840695089300795103221034700603937326780488221607421594724345066002495199119371168921478239800977622180638391413369184294922744625303900761442302875768972157829379814246925154064340948444148390950257209326533642880232869906925266477407323834786376962801297647901627732065264498660937896933288192338923566433042034801531037933948511741847867279537073156757434470952719065212807712250105220672938025701657952012576152767245827428642276276780477147382199467051802088431300710463960073453247756512679796725512585292086888435266079049970171924851540344537862382034029025035827503623018629811532984604350667021692978717004792584917869352815169822225482116604883514986338034293993816904926710284578196070377836661393733968404982537954926979359571576003048331817298777372555811970528842145282373327999541409308503224684995369668290948210481060462348606468939909277810667820875991939732922208309171892716349685255902479952811498077455335745612911651051785513127728068243195751940054904529068335782430200782349291815642879004625191841448352402707316892832494456914923312384783051374102139486905269162391269381041237529895091748263601700089805022445172894271151090761850918953402257092635621563645410674448251727341035528023058805685249845798038130917430953566757199561113445290295802282902711007516807609685602154370536533691798276316755403529421526980588715911980805700894761659531206701791644254336579462491194861496656263262926901304736916432718590688403140091862424543081013090807629825867972925788124389705975050671681506752107578766633442120681048382837284205902697834966681637001562946225258206991741757040693167709527380129463626921716463389438357079631940778796725733645827967461933700435880214568563998202817835458820756973880613592332596668260930655605387946002437300112613708428712385242124740173448095145874099460440600815132880233173473332552254483460489239137314106657091414456430987816049223293914524489816223119371773562365321972186450455757470589434866541759557607962521987936553607479392647595574769638362297883945681927410462320905560508776290846453523099444615765135120775527231631343498615680848554527270398197519539606947115690685480605062064692236701203288818904869813927405277263938412538387215117976586197972335818398035256787969469676044310162598447000128329375706029079592411517665144528873273797026814711168353658991505227773307750290370684622333543890315683570768883424825662532930718190614337174526781468090488156469927693038774866681364059231007144022062674764954059075367390627353715679753882628625429920297878158493717708633167630274559290852360220054428479802968491496798860763937719340227607285969469474380519225871714945305367441901269607006584611775304638748396128871415234438036966012957979040637812219419653992984638590147727767182353158431401439628607325259573005110917286280751600816286829919698233516919226529070821699743821639707417417954850289794721731957362327867648665634307135002777137006020824280246498230937895178862112088957013970502875927159014494446730431299255053296835266601077962330835109106828984047310509138985912441622048853310067921187603687734690498483101820831573223939608828907138502842770617120024458201904006519550532662429457968296470861118816065306113561664877394255188638262451873666469842262466297169553746541746268911489584476822333074583981189835078930671255285958556371858688095177242473369984468983287738070588994607856795684869529119570915441323388332545971012669108935358377244446329398553925884285852751073223286977008389014811264954716983090346580118070442729258524540591090966859262456730051397545744941254835081697452945532653204686653373518088554346736086155879808770729178086118102574893101968348700895138826331346898501987612247062703142631837842261766130607257704491850680694947725542209455333898347077321258579352060996936200168200151539958508861518415498724298822873356300662646472546410202062085124912125266113250530312742021661484713678399059259566375591618260832670001963582399820039295072678535455566667554952845703406350568823543907008481281092914715690996582734221056967055741207605174169462731994445122671139934315256613779425728490196583784952908371766921431495175399085042616155382455883616260745254573680890714614522923538990600903494278531719726855539745573709545413830173403379747452732959228503121065096458772353461999246966163612096121377810971021773613555073596595711025939724713342895123108123756095165982398459829366288570714549469622627631705477395763034593676442627859981295883982432442235068597080567996794640270604036784732854351921984880867652298065587908496477169733736043480444471861141279250633153245451846427381128987624375251020927764204850384619919910008378696571560612954421482041922724864130926845625501935362004276691931279658120826241018200909839636422025339004237307645732956841217640795392400243524134275274035310841557058306132807075169402483801941450648608701375224636024522496955350388204616612502717043600616917441633981856277431739646452921422337823270779634336359246548917431137451460064385467146057458126238431347844076571933191224224237696099116590333617421052832476704363174260937421735416517476686366549139852315980233035208645068230004952773074492640356730335048635997510275629049021186756344198825745425195976487119194313600814636711739934987885994953949625155385095580218140685521753228319487981416808049176275917119390794278698880542479134958664096668777954999424434965340377572125476095584005023198143819287492387692421708365783738592853351835432835059199686248332637652784718933625672329963492486599581388442222218727353233915896910437031387888122748221985319734574860977503521346275200214434309893173298719773071625207530252038026594885320594203959409288465167580035598248214801464158599646157876590682859718945886983877244272534798310203754272113119017892798624334822711884686089292873450641288333999418889920326701707393206099098812817515598155807650628880526338023241926269570948205047479256118891774139575896533745481951547460875973657458703443936471728445716797060983430488291462610196205735214181119761906913370355922918063536283667644993963042708818541390108762267830701545739700844837633024377043373757206674468850799522733276575732160154471038068011629800778259927154340416700172383185759359324375579015843925339929144575538005076201783122332239786061623131520792738556304813387397323336377061796456278420720099492959360438285818695249219386826639987189755590815109325384047174404931964893725481501018671287337869717571104808850505705558065402556100373614751117947585256442873602095927320791335520477969251043247344938048323924968831434617930071145728875066764047586827514170898748916431236753352778837026496157297919974846306107914955692297158373544227202980724973695518847502131181090532600149591802398936208165056289788766841195613917151558121070788150210471222838982323954239533356721466411356604854443828359404739829067732260679694660761402754492108343465671206110758977712635924762463275940737111908499393875610177132851557271673192210452555577975278806229854395314945432269779209543407615954215436602850047348530281730817760067304540674904404088147991970536917953082441220985158309898244500409263591595223541724667679616957877234926571423738802209594439697314658746163182108820712656113882740091817341351686755891169040545937821847513838389587822998880959338125701134470616911824707898447813550360700426943937477487263978197109208451572708262908059579695969461290145826747483148927967881222048802784739971886627877590386060558144991776842786086133482831696602675203609928406444981357839513632844135498603506210829765431227971880890081853836409211450703005993224246847039133489561898511562935260915983812842292602866690753360155716720599945160417214688989008774733377961489156465675805498521232705528834999001091990697145952276067346412847504016992463032491749558255913682032358168614490268511747271469973785586057232427031798766132005598280757136052022549203817497539570849591576389571727783287441555040535760313437565699286044342300808045841965414713653146795370662037397686703754032393629730559951774735968119994440198831494018112000731222201783367614251174517955647366194783198677101535608707984403878357891297899709789779960437998300680601259264377167940370342656463460944450933219492912059287976906975618830034738833246339398516537923853991794076099305012599294828000824040594736413109845308864755105463638815376827611778253890990164849266641031738261274586952368439204902866640991674635035115409123962024248839712421211445383826458479600442373173074201206093302983359582118901266744627239970192004080868933173244913241679468324978834807652767360545899594348132421722768064863978531009692048082291990179681636611134540668581846379524979132562706135673693702160626022563539167949887872035888401092422500392779798563107852919518930201396269501450956606558080803607573024433422517867720337820364219630808732846693728731940319138793711782393048026250951363327866477656733413478589734878067673083493480784372872156943947184819826031634122783905756945891447554388211755285769896348362347663016177136926311135689437128491258478997774800883470053291947989677792025743104543891806231206988442124270982459370273553396355947791236542622803107315173410166608772843830403653440803486301748400174716755759955587109514410862427328876789230319859425620898069684554008194041144034696782538147149797744435717231657764554988271225334950853508742740611940188519001704108328429088783284762451787717811193192103468192067162762283203658684982461334863878900291388555914872364544218583123040777542814102645832343939546166209024695394378789783352642131645087071556241810156124128099287080283087100236591746039973876864598896145441305785760680646942903602010409583054325098743723222479139449819024193349186886365067461463218423942528112352792860114422215380945322878471703408835174675626750339980512434268021638231003206985361442738886159293025273704744206818812403318347487651767617376097881657767324180784332270683606199076033581133437678131568122127902506953634656205095696115481921743362435012526033683056943793547334379543432865846792325076404458607523867960165437211187932552088782175709546988137512135048797756520653191601169266016431872538230810320164031867076231393410445658991553516996811106885557430409784372684969096598253220542229432906449949383726176083690888717667502338520041352334585998095653890507114831614561284543244286042012981081376162423454429474862279856303461560479886202716838641984647489516616747037406940590253203091414179054630315069750182369246155726566102322955913707640602966315175854807472249087865904100074823596827147804500688858158155046880895190826025158853396797030251459089593567466705270799227297015571378385267511232641488258147277261982869218214143016513534918402894377428623333144681506668800573725922930344747308587891513285702121342837211159290098591498883847705661130816554227640025832034747894577222210802547831678230204452213492555025913809937000582115927566657408116536380004492356106265986314088413729650962190102266255105389501131710739908488121392909421430528898435674277007363071113182435718632150967703966048327841787554678972985770141913526612386214584602038639580108898725382244098963999332741164898718595808973122126475099904882920731163748206514765441250852308822761270899707286077997170539730280821351553187579634183868935270425861007961276485987361646420709241657981440883938880227485635408479050573325518713574257515028716855839984395346803802994769811455683746517763500908101178785039297209286144149328440988889762603816587934619849075765969720836530619328030537785995145645746785181944723869614404074004425481692981466301282413530621431548369428364748816936682146016377585269964654867727192952441820472908423041980855751775276995234727721179882740796730825016422298430618547707021516835962418149081500377923835870248198708391658017098674324905163254992794830107250913040943837520242201591632659144063662559458291193102778736982582589253218821606744138295812895109170751946750535099269916961028735897230335368888281410766773452318492339294835892072444511033035256383171868210328330898321816472665912836157817909954968496039968961527157855409646400024050807537500844799923233534953141255764252755678876741509207831481740358866525049209077958030685969735574634085326921600315173470975941626713971384704790608218032171175892243013363205833721525156075953482758154723439801081109389572370241797210364167558371530023000482580788087517186012871857388001405991818822765564019448672679962720479889934078826530264965288374919061819102804171934491958656970068409435891935752594625157701524692564837692249793687016335240539233202100485315120192457366641323421350054811039937022503121966788304042967799902832871962829273450374549285472380873102095059361780312666885635853690834650104197309544902041885983268888290091980152043787884682742641051171385985038862832636295846000279957751937792834671309486097805589885080007149423959286953732069249212734053279960393614860325740058829132300472884715825813593443840513207982196022606780801704259289692544872625470988254137201827412773332126688801683508729766186671810873151708323115958790615508538368871007316652801666193860292083692375944919940514361617592275311374077925399632056981747556816348393105969494411334253088930805030993366524132439439930678844426764584902777316332679901845942722482524961511986284307493842553749190963373696913750668053342456955832227848531376629767189540086275501681917393638394763920739837410940222490610525523443345277729164920381535602627759790472377344132664638916877750163650058644266077722635893399536074668530123793752010018084956466057623075198641084562451445922791372014113672418568845017289745251257360847953787697904306983721435652960997519802178253214296298983428324638086008597339160061652958308178649372096811901327922351752973483930411859807167656473626918989423200210448156093409353509337507297286366227872946846666109899986835711438044584509515076623571319314601681885963015440015459449085607750815930827798424258035878512668739109919973109553278592477577998482590653706037330801376466805220458732486969854593149084807504098751580655383999455708265304743767352226835903024743237432337318163563065779441562239144407240766049684668544685897063311484323086980529995861236346097182156853412946245876152046484429080962705235929711295112923729843410408320486978084028720710858074080670272972957787358069192343291298800633981296978735344937358844028898020757958853832192143185751081570838122695919063104847471475061049995300999040341227802560555960907410805139336949876178024200674448143585458244432023975444628940629663513912123266495098496516585059713543068891008294483389280808713496506232532976225157508919960521090024233635071983182731195655693023675235222567865730892464926334757683786548006669768110890201337230034370552320617516907648952610620973286356386297319306003822270503633064289051047100923125877787196848547599360882914936982837709425826072087532104527440786363206684392872417016887926057269101433558370238855281610315747291407763686146097155701663830652404977339335741561857894491373697688555136055642760885950019846850610459007526183347761907855008445246347071519137379319698915540986456541126010685573417276995979546217117731828251632083076494462419928467816268698777571192726725342722857715330650971089308837984189283469955462087797165637559025341198206108042662133069419558916824623356313359564802030660267958127920676769041203933628321476575829928620060664498879540901436341480348681826969827589734510087424123440251515272902407944436428839650759315376300973940359682662027330403195840272915652732499804284551320733490983369355248461193432046256005791898576612669782170555154842243616478231327378471326056617832161371207046033651718412681324829533402407750669673127994689590780659371512549343041274263950473968028654137227836331451709943522077170777531698720225454639125614638158846980105644655816478509630530152970179675504602880896825670770305773009177361101950890325550469408979698288442972761855978950870077633946407770316706945716254886059596853114273341401066279745812978043895699982806851567141734172321177089621162127089931453696510915325856112751405577916894558506965417708249937717580488924507460015150323865187100225513349645670886796606173824309536140203798122253656750326669998808521238083997458114023481960445033324302044683862608772174741871848817629338488337718713399490611113222152790118458306809208798050805858647945173736315386155923338225647700380167674576977511621442685232556917973603103881004013319262701601552364785024664258625745778304639122320728760467210418967093195077066405312828199173265336021626427592899381138716090799012256484493687829226730975872474632177989887890101977583700021183923798094341255635714945193465874251878554360352439582789460344513111149007760446205695389892613309527929335212933515943082764102765431172431751189795941611961722754324293905914442890386214672102560906259509083147639956476501771717502081806009183654746212687910946678575661612779265264349809410731493586557577120109345733065957842489401186442897646117049573738998203695726533352920095601438031705047094085614234877566045672152729291380591382045239606217914537839391644414175092081635254308206943026077440281647968639752701411908271280830389641233954723708775737322464979170220869241382523744205576689031626171270787556441033764062930575197260018450768064150225680426952903308263500229711587866057527972024493949441008437998422548384737342498024696853517735035712370805947161127506215258571842732874037063535064849233957338134998058412433174915426485960702107999423791329222738463265810938079352434855059682201119731995503685937206041597682542564559443478634966230184601948973935606094128133149555076911953414078289563926833599213891265770559942035720953633766449038838258502897987546726975119917656774656694688787131981871858529568607393658574748911108741972752840103777772958750465911080646511488030769207145445500768174975345428384675220337003294808537284223167135627289354325074907636419044852475790155326119864403767647563977712076793866785867251828453294282284310491537319566043229140353920422570661364205214555033587965259591124494711985101687239481803700192836081229447024483010473869719862961443287804448019707588098239996504701408617333551444629680705204009312066770104155774282308780011380908251664351890240956204838767168566265828464528084641112678596066922827178907016669756979245622201155826188547556618282147057343016007794759350413564513749525467148134436694614324082588268316731398502244781271194420754310643269202384178283927753745015942696551218385289724678021266038748002923131010094318881348491504883400685468524640959734422969018306238761581681754665987286535914005353526261717046899921903463104000492845745477251692883674842669834655003835644096033562052948005629447138569769505714531086035508664666892211341355036193822732601050232630441197375767063160659743261348256992389908961208856105030556882064901164009664319442270028477698150335008602498255293512014290184443388214565494858577263961708783483364895564336088424868497123113079829979662204754854553931570653440426570173223541326092935129827784849750255247809785459014583657946773624960585081511494953596611175247238596321107795967999513026973744527902220443585743867804738564266185407884727793624365056099448039815937260255933066650529613215306629098631054543653806959525878392968977497482322445621516073172665449084217332951890529263313219090241595781689744268001421265988730563895621687239037863046012087430849607440631933568237514338323526697198497420468270341548502053791459920651364937412934445743943054810723196142025646700476787764567523161958862579301461515032947629819959587752378022143800707816134748907703056044751374706220391719743734960092973117667510399765234347063864557236831357771282866834585491519184378983198397380261257765708280010754287943341165912419381780621588684293804235489729434899358210832386624359042151196297972510386874751591888377658526622172811751456968982142641037263575164495065126828393651522766687164427678007266226977135569941800236472855589672279219409454485192667252487273904742150307694047286740467049513393128053247676752613481550930110954813124688472824083176180635908564989469616408951747847700022694631138140743533834051447010083364959272247924558019295029208754628175131985605039254984798983022766695880000713806626788718060221641689299612063846924208197645035497100806224855423650616464376219818103243196589243864113128550601838319056457444139100402275140701175686762385766873797954508493029789975622248567876437288131328184846473825134227585414487199304236008366894503492938078255932132786254067561857130392924415717149806563427286753939736028179334701280966998719973401457029580575614114768014093810421426691524874691719026242808494043842586548484529932624957021191521743428113352225963606441174870360478061146215168516595594708760942987312217842526981858779631366505672668078125429145853182178760908373141419137217660188192800192227012281446040439544559668080759628523135115374290743566752131518084584115564986905244068272839258649445187216507245869840046093755209000500023464063535649607079576641535579755224811517526648280202072281245940129160265719743060770257941179178745807583130367914719787067081815511649339432173558164003927805524165589239873245052920682446580510341217719539882184513108247957447189272719348512001902738139695940151051882656569659922349251356882167118251785638082921212790216280953696534049583138738473943532736553474725777215037938625524036403043936935501200684498476176975518737740841617328404100531523416907777245213191446817182907760676241602435951440954121792614382007077866996752252856866072516628433615032427842173867965146106533159764168140985376222488149732327480494658086407051071716126276988538913378336980318393223381532035046412337001817947842969725741898489997442384638236677563830401936582367824460881814062996396537064807846588587159699080100566824131424869571895614217243765681032255006688637046989031766698452106391337948999007675388346164452560079778963752731174949273343140817315738361712329142446816869142259967153120073557082030164420984431578912316102010537342148498994202140914338752153719291153038058390406045899814532213879638574779543615989934986926094728362839151824047282109374865580180200879623007111438601606012768470915043483337195726576211019733295908592786021967614401740882699239246975802390562861998942437951666310466351632210141070715584624467789157988943241519270748883037045099685309841627100827233639414598745374845545511461926902068838270763623920562095886992561431591546778939598444467169763149346823891107590582294724393390734807052406734749895742778008256920015359862325983401250351853363156399252513694328552319978645653770982712234615814580008580890432865415224219388767078331994629733091963395375562813965883023863154024686729247211594210747678054618913559009721062110020888283635330374560594793803251167250306077478677347903889722276833634376843495863666265583350238880841708145156618514472233022705372818589296853141405364631434503833378922187314988858004300718406497600775741266500247517163130237474907719533404567850661594202659930387026612506746301461958773278950165476682738492710687945745505851855219468287337131983860216896124367086011090980776323201078385366382448496418329418200535188596086953276038303359777927318735867901332546897455699030612984520037492730259831645882127753285563637927204719746636290250289363212848036241235804618169919023326582950356850830559354447430768605094307181153551974277573000117842137504143702330992931691097016087370304386003796429765660976893172475912160571515111801381906172553056962148979651934220262743141329614744123135238685601126432950357383713492636859647740849915308591557833720997617480551981687392307110748582452490483295939505286777287262471037622409759430889137721768463313812989824544144113239115987507406937294919138571132512985872845641413133517622214775663516520207529638352879379699659010057020604785413574396295401965993246063003346580367601847300222720591737643266818798155985981818700907928463455585328517420159172876697528848383724069104198832809976945178123228016865674080617471991385778961622816952712218549303434593013979710691952216154603130255444431652888011138943601733945796031260962863305632764140071048576193348769894017880006301159112343964536850620018341416610287886603520372128018391180808655350457816542131312140963326098053876915786728437831098079499208029934371022465190127343320276657657153233299574663165810324764852554535668090059468568153600973126223783901096873206415352300313605418494109483997431079849271393087476045893369067603070621289813698367068242818079845103112905348029286624010047760182889458043030817243347216715816163154835142528148184960725506984015268826545492256103879533856612349780191424923065251754277813992088615756146155088820035902052954161795098130350739269647165458292287153929312867808256487349131480450543491230777621336267353159236452063025774032400214357845490801348267441580723596765214420508153861336789545919734494309472726567892667579549742303162371535566680507343372050571494494490062132281454606359533930281961606881986518693899412098599828518310853446575694569792324869176402062872755271697897093840567866103697777570667862813100857339030216269515985999998187296497719697452410372963759962196045560527757271942729161155573211849016754120444117815478315573088113469972818516631936589176946565833623981247336862229214866971268570293612540283237134008754868149429553514233301698908828279112842449523367607481638254100363324816878627644102221280091887129523791250667984732325726199787484906344913676268459810425674460012615563657836295637899384610830919036128037440282237970761299655437798246975348029009257237294689114883425821475585658764108342267643089763133483750279808640801966877742510509931454997524874638288799139370697379987935729396240456305799152710524750971860330203944530254753735844141834778147642913229340700556499086631075567991202125116173895070745572014328414093382383762619441979297651828395314067118290774465289989423144116251338603189830721935770104861520428442595429499388141187599426940251160043425757453929279463071269370865624381712650149462541506806204850151376971943295050201247121308574048562070461103694420656797504960618635863038647866478383956681218790596317862489302192711299383439560874332585522880546345701697881991067146925646889496482285508481767636159456921577249114278498175278415957405439174338046091124707735370046541266773055095205290345016148906097645788426972575855769946217733856422324133024081357713364301284280020647314027491453270330050275743255859826947093090741318752036998975803915179286064876320297122901910717328157622395633753261616496642104337186980193316829036859738791997904065508654950810898228732250443044981821000539362771255361240448404784094261293635467765853284894791863867629517687530481420663723412802066487465895845698045170036627466960427268831987345286276975417431422208617099653374848869157349845225774315211771710316273192326930795820263841682649545114688225929626894541544121694746113485811288312306449160541644047262128929644619601356519601962581001282995615235042459888614010643640716094292351056735548991809329361287588775810361861666633098591954560178110478435218863774122430374755309917896354921552269456338760060877722784949868972090208915408992301549724343328152165087284299374195648570672272530371908720423324257426275879313283231778747316071944184572352659719774577716612928374547501420719020823738600246070041617098115504660067383083840652758792284538250845963655307394201304416582419026059852700264448480043516929965539842333491158405060129856708180857792443507205726813230533529988589561061824784601865662564062185377747850575703907073951711158845620837874412529133894815667852024538365336598027325116042476658640416308001254754462530452413558904737225475714703638371172735398150833713457946620372994099801242499806314194331302919191305995725312539370239779728043972070134254801251204198478376101970389931030145747100192590167590870507633581154414309330933598497615203581213976025847548072401772023606251921282639667924190125761723788728158288965712923841718385543093033203488900735607306560322543922009475866798762857311589809017577241995411531305347135638771515740257304426989154020168171247156692263959694498096383809661852225620507985131351652133563584371600242961307191981463340607136701856110452363336076124735994190724433401991805078142854570624768337526634261067869461769033350124662865526217405694013237877859872402921748051803072017405478599533711845597265295479637438059289140317224087096839827457708484518158552642889196454893074164865228973444051738728695536117316339389468877631022338886757983614444319083955497116900520846411330726857783826968882786179338717320549667437428510869067425247693346379535848351526397532676795447918253975763752634299587302201982208573282535988031250714660517210214019853715350891921696878975099758538228089112333929967237382213792923096108307275583042229844503251514941166128455031710109512284175310619080644032174009611707828073986300148672712872572146325726963900005036613441189977661675230406556328984820930334385136710395067655914602378227497652489558740600521286839337078739805046589401330309816941643730298376157792695381185667027350244981452902380531348295469069412157182023617674973122644120465842891856161982753785811075333298464524683929400853049454557076588652569241050490761966719670153852523244346298736963373042557967490936006153765489112460517473792696087383147707352821749497193363598640825244903616035957696102724362896941785586032335972770652964053901216572496115206115444754478533060267364057714380344701841324981326501486802547195065094140131851758177094680603988662168342864187098510163677725417402361131050390746060358445993700758014703882003808876794728784751976198253231906667905621789976076728789335140748774904337737708875633287160370210659302910379798089721520993775070953171611204353198054170568480726133357483026327713017740073308503872011528479266685921066066013805688397012126105339549057864710538878271283564114047428602083361458020489522937161413593810182438765702550504107729460595860872875916287599777611102777915486471310834195251679195452877283924638187715879492964119659913731751898548688856604550649692147154015362834562892003092791499533565355892670373653167381651168488061250535447754454543427358983009812557826941144751811362193961838079459382073114314187551340603467378887801324848796823182382117064549818379584047112160911944732925826317523160507452413277526276468226525494186020565135260334224556473428164207802153254138503441575001418069451030161868475587667029009617449602050351417585766413655068054934213632351506101503509667738393884424517515592651903429507154863893605307211428722430829029178377363103267735869227346409527079301701662358610583386222906519458573758503974665112549233214816670798772697367840549589589111123823711003173090623734408129610211226823677106192607815695726430140593128753402766677546468407457304040189965455923525631042064452825621130574937208918143764902160769159171961540488726913143428789961213653664442574506820454888910620160782387726513816926700620755527952236179458341465945622415649202285522554425925661959727661166327401321568936955104648359528699534265955039079385114733811051507236986041994449416450004273508667352161127841370244901003477358838706311355771042768305725532027400566687946546897390064717479723783238878681793796239830472216749116009960565698750924342848723482627923817013506240623061291183441593866805842381174479816631075604124484441560873423996553082890156417964828061930948890875901834562098236942559590003366398327815430583782747141714291457244150927354977048366588087079120231430505491349806933736947649601628655248461088028278320713396385370600656836679716177032447284248426081998188679180651671461744683731803470156681863959305225507684405303668114183993911999200093971151972673692433401915324829626396951597786378075759332793121689186422311946941923529748961169578592617521409520243700355855865740277086475615219937678113574625532701247142426572537359197063586325182351880178932512966153172389439994564087275582172257653836389245801532280801895518045509569501223870943602501421040047963498049541518831504712761325434943822185402061020570409100597168182713811626124501377242818272742513665473281599481915827226931264190384279168374611480942456118078869182613648971906787267199067041660213977477778198838920814681422482638668024986900021544789886023565537860226100214831360202907479993547075711276876996065774762610786492253239365526769444630941966951791999936611420141579690148978665776536139241488282606466888034055763160434732838442932538219338333083644030587262055778038845819725277694136259395580778919444329258161107991267616039004278590474518802492475227371409530279625704517129381108541920401969012560046173557820923797978741769371300502897164200697537649880219183874292020895446420301445960024735004962269517922285137372387605097532430746565158450168864267025601720461209780292465105679432266685365401497524771744273085253660235149076553432145183043577206064704883113685860872925717725329354504272468072296654895057516405165226224115734670762186241222745285264672646734299718360643257489998818051392934775997640121755869020055418139566868990391070614088105340960183505141273609253475932721139836724534839106496489675084035353115724876857859108593755763925881975797285670587169449912549720149418309164052308412856457265625636221751752117440816451221003566452401651774262807621677521075143150451290454287911534042568358328923496549236202228542857169235512595415593934768942761968167738887301831686798253806379716201687118392853132564383760530580377819892139039575051254599908552111482089884855715309758647243449579834600704967813342893089936325736154745819030764863198668238088121465752701510233569864394164451021222476621834414272408418478383888677992711355975032907447268647142208951408529662916516573598022928393592402939388677433058309031076982833157904239652649534362051167865511628232539623911988951394925549098171336815909184288540815472103494967159937317590484843079167633969744302599120663465200694000306320396578148532095592616831795968485966093080568383494635876375363346857346347195188802160453281787920197012818535687927802450310645961940777147920512154413186335585559756678655857631703725872491968285536715870303342593456059999980564548213119107593442460299539766420619392873550299008061896873230414067002903351880537915338795991779117545951125792929273473464541734288962034973580228016574191622847044219868315380106666001589754228668094739926279657685688114591988751439277968711244009598834643781963448096973894535085134587373820625127535044132860717252449623093654529126803342387412928212747886520080216621516564928089503939352668355791360959960382741039364206333755449404711942748328608637268904448121541761580760309374730597238586695875969766022636961883939270074362937259912379304471760467886621867500206164557589119120329741696838374453951888058228026445797050828652404394233920390481373595183735890322088627806739853404205328872243650745772250388335659451358855099808010309434085094542621291779770127648436692516637112683983003166587050678858769218432488486100222735938608325828799637606828289266281573399875988178064567355369781710732032604840069196713513041958864619715598066805788338735154506935181958251688748956456637621750575009127219626794067908971215039333618037645369856446265656119252533312793009091671123819830139636095693153025339683829370920264736053610316980481723304905576659117386870951470040283979760004496083337632301880689170355114879420970037564577406498170587240031664435219275151680755182344858372751549528774041269124624159434139665426105739213905167417959587006682983483715597544114127668065831005182272047703894619256117066549161696043103845593236149043500780077207797218444781136610162160292108067489229117424757473073353378103932028880761498024490982854439083026772200867389331712702092913868885844314492918640949114492486735849638670952017221260302840402967384805930453899216830933849276635124284246510090542876962475929586124657961371111911899187244183637981198085890149531974763265635960671036541785667234205063738505626990172559787174848562461017447033379322126558493840779270814530728222258015483423655833885198787626457195969816293185650414425147773739132484040652247062041957593183747663536729512850358992738986353451242184704220319589274586002226501825989379881705323291080172372085677401028126311711873562103287284932444385176330391360107947495480257173002264229808592490398689086588470499984762801313647866713918714963078044512440402821106248037158365357453063895025179509902930227551040714337215068735354329018657003359985763029242271858863368188179529280435481360765182905071968357427481450441624620372757603210771270456428351362236135331011183325367689938299973985332408213318495038794624952749004260114706270632202415097074032907415958834326157716313742532727887232087301027625157268848481133461808682050171117726962583856390740760228769959357994193053108014031120888270234904686703281041979854950077803393919470560903825705920454335517498509914578266696025221980697049951261268129851464665445547175847554476402359343398974695370944171360970366220231514434781867329252585544376187424196946480726381578955243902782614970165785075666012232850771441897192830412828221972653196173978673144842118015786087903644047696835310473731756387657974878507799525255108339393182616829926670519081165088127158557301570315443130274020752413481110085438938104967589892291126829919913763817504553060077632850222182128080405368458894483331320718621528410919062498203983572042315149414570485609524196854813946638504118683609526534471594572268605563420116166507094602081691315342591683671752012433867003008217726676001992782500498111940635292612823809721020822088892716491172878916425672629226112687163364781727506800023040782811948170582742394241912777940326868624476821567185561750858497827801910453951064284549109205981700556261552966058074792792145020868054576148511793000793890104997097818739898785067584243208314265356426583726613928008845570756191366511587812004380666333958309152889779599691586577825846448516433257720115851766369530891063994648661062986240987800469428995101740273329288994423290646272642959045327579282584779314705018060841690725171980027282459581196199075437877713079878333525307005393435444292959192558217574334763701152279906376866618331216054754994218444728557219452618983509801134421459503152618173709622376118202463509426656896373613513456441325486809352279774859590769786228740690203435716107021008466235701604309696408940453171271910269052213459378072412538196227192596165996496512460583850638915377393284271565299921194742075652486412027774025589324902602683690905825655042786969270833864699793964406462035397412955316361898053915641338752473401398620120564795565289677522901987344257547943407531615373003544169926191013515262599285124330673749031499895167441993311503200744234973303770668726793176102429584861928396307632004249482818313777659860424921255205522074779377894764101040582176807980256025981645159811830398485338697609552845736441728592473074895079208360489639393559164549520137034055001573517900241674926883918933781357905354433312542709484645860742764744397647241960576294644216401299336600825730252305472866181457066169139618662339983863575992577048182891937583454329306375070564906974527115727541778509233304583142998311133681629632151792902558585973565310069153721867200906227148551144727741733001750208993773218885435994727279804445572353321017493589566158738486162677456774962958335917798006849395826664517607452139772593976880150848224486325071762474926712804093182398669896296217050707785998934836629395765452238972240689305660069226283801576028352360901882860814794142861285824059716085499649860848927962590860105159566362658023637620610131766192682627376489762246440417826873572981690663274391677041734049643013159574386620602655595422297919066891924607582869831018472525708231656375592776897731764563760122851628004450870236322379586061705653051529786133150486408965016463539889722868203460385966401312974117435079656062989317743241709111559326103814529554438820521125743372053822956466736030560883877843232557404265593280995342450175304411592893777044488781072659425565330378779870671876028881062786253911263475923301193170394663224956254358354174752661126145288617312137670532202712691556092597113885595021216860792453974154465904832861215726599940793273832906087729190461465215102125193327353924456141272778382790710562710502427533280256130629760845392485069343162696655530438471546370871294059399542427448010737801733387545420501764486144071237681228167086468551227519915389240098334273000659398074824938267775326980545634407981168901699304414834862431124846739327395968600213140699014422665403184941684696832244171983761924017326639584451432284153031454821102812410405155381518135784672836345255022153002451798000951194679243034304492002057682305808979158029963086841978592528566099683179417403561427698956868520278852573903190761720382605709884269675209470573991474449706845523658453356789781368635770986890094334128245893734093052147955032971351194878133893339029128275451610768709715896825136595963290980212618107863213711775052513106052418561162227786927675697372716469768585601627970247858917559515053204348741881652538091361585493875856722405443553849806771157729653493886162901647090346393311944223794244903457735800813622391817103387662007722391302256413989564315687040620316588228818414092863073900013496576334068977548043145530899413686518122860351470238095885060762753387812259055771635571976786769194543454572470050937806635423647964083805168677976348588555240531361594579317544592491728587698891552271591665166634175607714042354885496646390055378111008701213963917145307652484574787339810874846386609183514377339184212485334473042548306730136250019665984748922622498419636971205401475610692468929207574087566363032330915759603876067923085668309679526296161763247888526071540408364147826827561325440318112150348961368671433543410241382104914286565918641480228007085771873578707434374053862370974687636534493918042184129364687456417978637224129437465544578005040845284899192937669530963467865308926184034985116446412708725553743155997191072041042272121458151015640601818272600891140376683936899206924819300309984740678948926707706634331550625350908611272672685253241453789596606119469626252616749841464302278342986324099678041293198572988495487833042995561785736041472337897238494140044367147346385908062933058169091691996772452220792203893875408671897640330596968613874235302416285206239679985427715610644571356721131559915392595074891512934738796130385977071614535221594185665912315979634426812248364435723851270580976655114311721676054361985340722951485500831237480814595908565651529266401658292962752340361804822958284761010751982450242591383220536562115434787999434120583741681511694259160654556597818160768426865326916422561925995178550655329348882909386090209557103693787494850473965329098299283538325369421702318203493127727623991797550524398221344165880354274931438865443950492524772068509981299533782686418216410879481534908058061315366726034749862952428368238901256881180751203701833685860379933432222937191404732130775445971469443418435497758143978377428941099198084695764262659436860222295427670769920955088484302646947685777677126176418495171675747080129668419697517535471062117587875902507489687517502903539504500862693297547084533139208509446637917151756252397132313038661123993941080185525836918345521273982174201191398474191451359946403719437889619005814127108238075213015765965836625443442333123810474441594978068154695547558074532136474100459198500274304808204859212092257145746772301303346394869419830290876368585241764967107227154373308882561171123416501886110422282547389064280643723723440090671646120058097974902245232181924934214473723839462329631814142864147847639051440416855858849010431858478300167996521672494118446029623817530632018823379373397211120867020844448400830435640703917229776102424683155602901657249522273511050917147352786883532978649978859170151742723249380058992766129476467458135403364835818420113398656428689247465120238180045177204729136406524747405065847315058182056264874060330638734013416547680646726166660466433872931061241404138762682163207706449662662454149480995551723772175055239507891719504550421062575388728955273772017079244646266584310864196634319132229459699187142561727340822805129445359060781286682241530025818271250043595761144461785920203664442328197311648235500025790871696657270900934034205076229521580905747402130566393458630392901544287349707494273305359531544482038774283353982175142793386103471498613843213071445936177387706906951358086271841250105808476294164631745534242253315111159800683598492850554867786514145185344596188427796016445666469028590890629616306594009683658406824385626910208735412995378196627616544988676918023584817826217721721858353771749519976043493078152390344078952883782111899139198433499002038957077445710151731012486401879318721202527864558603090100288581882701804565739023700245492772593963560148574186246440743988735484850913458030752958524426596388739422115190169707762012390427874357485589241734491227341972121612441308925454759879012752772528768291580838929713782631216847919741674130113570540311889420055008299334405506658932883990105285636033174257489434278488626849302422373516525772762760444693346911064472389098508424941400825368810339917847188444683080407148861256312100212838888299182576659415730851932884491105243283349530529153707221356395198305525232910695627614870948384629638758315092765261829297585912848783365078238054738513123315927252222252253608650886984380204974370926225850625928001968705519203737167348705977702757681867361512100468298663132246558381217210452475250621779537438096991676989963235725355548509063485367412755845117246270971110647755870594697521789022378802936624656155612092708683771459780116260908272920084821034484641775827642788981387519501352588460899142924821684500992667731776635567590760534891934505585523848207117903697685539220437083642948451342700564521484414704630382698074312217395965009170435545837553578887705401877316228839234463838021859085938975452770900887044581536893857589622584210459253618881677487870621614589048407650956610473036879349824199364245095084480466957253484656750748121817219582031195596604774130229200399128203887697347029747119775742236155629880505830032927679059143516479227206301930246356086861679165408515244051756120027513223358199996728279826663080463165873433174535556555120203540786087855020068933379604152491106257375448025388290333234944176472801585140540504226969886779386088446316865949245563628404056016896017507943313105565505410319425551614925032421028528922061695250135102733092175217277135239801121226721759918191914014349494117016844048039205395952994021342918222748641307235795705902565318396337938164271131019349628429778721158117922146320490072127243829946675984181643725645014308862760172232877782724264418513881708937978436316762701858197890049642507629722015380159197737494960507448836975672014931422513871640237643999177771303621276951155753070364041109163328045272433264107592066970685374280797874751851394484449273508899024653819292140303633834535818702113178119254451652429511293391703320504212709536877474398223468599390898036816650167395325945189004109213066419967386938795059099834414413325655876947084432679052231502888603480128024509196364280425966914881935714145157869228586323195952933379338874624290093508009516294159480303204292735266838731508091601859732631957377467971155209879779592493352164861795321305899691807337267745089707298060118271693440456267919509150225742928862309522389294669276258390674448290573603756708458637312930093523920807552695753835358684298641365950693765861532321321849382251558083479591351543191667799019384676728081317950260093762923131539919991734922910484213440638691334824785143455795574932936888380387137983745609534407085409023122820411625160592046222640083490765463494935952223242357993579129855766074340862515042700035239195481924243057611110047637055086321374347021982525469738862610389281825801107032979054930728079804885610931712157275130849712059677317079067958957624834461748688831237876585597461648064994260078016050143091725279059844621317942957827726401502925596997255167501603169332870561070379067399921343679121160004764631558404314039712364785033152100716495936935997310965183392791681679509683474581750216155173393644465124302216757061535361514695300187436826191202473281032983641640316907291421908667141818874796296472186071484722578003577826267883425577415092869302532910478283378353962199064068842224572905483342657181971522787944231387068412268857812983712753275743054814958665844551520294979037042554636490797547469544241066686050356717588241679403144097570083379321304367152697756625130532685671382216040212093290226467818912752264452511109405286904940770442426794804436541718197256968178646899868370551842823998623038975529287013527374508411133799095536193436932234544041726838811557346114578234842223337514879951899089834189183708842506212441062845706002846179742408650076564234797482869383167648619259631737612802788713965894791917717108445495846041577987223584623602245103712470393645307988241018421917176969133273968390338399208025664416122436697498696390570471374382398101371437051108415704815889229759524610568719888817520338613698174159194575093782956523253840786581259725124412331805192001689380481646492625081429069740210903400280886325945352369128615625978863084096826483933439478532064579961962855246665261014297463180347017469806600478967726788227862204175614554719087492868629522427016478679145354358427008230863910917973408372604680006510042112408345913372962875737637227483314179921318213283120792704780635590258142292314821815039563968430119284087739758112162263193479072499728670187586943076713734341369717401894402790944076675814307212957097888121344221535453136694071431189762899325615899759495582299072870362107158485026748087163378910656150305580343814492790418274488828673760109836888057499626802098724370664135691107939990819141668082766291927933721999969440903578716298277011484657203021970318201904729219107450908831708023278929693250972737613571047220262193699631450735071507333133816261873548804207893921191998934727091130992195832432319112273476121626239158084393741164597453934525015554608233152205961593699545918913342519527773374534088948605003581898695691228487450516774758541250656489594822719855015893525498861649623818865921258571114161326897950912945260709097765467878980933757941968792465847804837567720534460998344677603983309203907812786358249937233438567756268602394369910083738834149666301525298379883522075508393783515308235508978071995285193513957217542192145912182737853891660293836262048194501614160780663901518834552297448267258413460483755228328367476726393489888741198843910575468013864338831273555820554016255185626909891783987972386890500036905681943094701256589965182205305562988186165360474218284251629186468040929696260645229568525064600284031136313456774238405896572406164862134063783096169647236883010336627731791292193513390232585695819977210108703036322281925294330467906729959469832989756046001012001880245418108447289414978077655944127789439953274708517314140347992096711179307473990610568307557426023179106131341240698841320504625535068227542450690664670352010547013041956938116062250806465480202612459689371989031870684439644052937111626679548996023416057215504270482292413806411264535590688729050690974124291969930053838327936453960617182346751016065052434325526129193109325848454614124295600489673881861839586647634879466423179353545583515508329522802241908995677351664600330450425388808322875155133978832835240666617753418809887502602060213167928872546091010749572313229879389586185238076100478553044278798311082367995964832222327844339196893247116448280769999836032196026176327409173936249589763988268494343514898837021395813265635806352139500675475027546602309596591441926412991551212991147502165205150037367720425517737544077749516650341420132300830279106806857787422222026156159945183719025578494871805795116638206618622963066684496799535774597560571668305625408299632841291697499697707122985881296120353013492466857021388314758714511027219958560093346380857525362336649252883785462798434759493159618604925225779064222196977449469134251392148997152156099550532384501762596143769146405140362907342826180358047287667990776559420567004943928856732319092963783706847770567941297090422310215011807563192301452664429478893979654064390664425905825094590781646638519036283688694663993074843964367621533641540841643624981247560307749663446332641645446692621034462981779611505823526240406481505196990693932934265406583627425491455256450144305346437193756600122561105600049408868493370303566494958378684595222526692538856190319164893732407257250886304617740504707865998821419610644520279192164015100799168161957079428295177298756249467256230415656994715670831999671050978395126361850179152361543231206974024244043835430926626886462079891107831519572040884511425107245178328399865908509205419658177821558771374422355570123481079783283381719642236500153927536568104093315115417727905690082873306241092983604481691279599153097835544447061928635193771229919848879000474914488965393106983350226873384609244793430748895834670052467291577470131593738439385377060216436466553297016447512032864040104164971661107738624770211968012800348900232843476909389634642685100577307564864085892205611708461414912105136513598841395968705911295972260094945000556174387381609017659848969495638051243122462776455670523292712280961508271385967349020518756557345687257748949457288392005169941722665442355587476129555988858226594775039044764662735958164934980369181164195389999624932625272339103941719217260755496108688838004072300120200158433472677276536801177745433165022670477359667916221463653294908498769518742109193298362105917245552308080823569266609588601355746827444561337929845846522828229625370134543600860140452058049016130123992140727426782250329818627424479010690317559564232232529276058566246086025347285723934827236131350939123113014227438243577027479867701275266283792913504522026084522673067357694178342665099234044456988457710027162044650912607602407449181775769060607181348480548529918178464477701891210339034436878384283712448810381641369011541999540859163859118676480943865235096196674355864321182283191667735046947593006600688210514494052969607810150006397390092360479744310551768160925094276607059105050794345486925778331802777867831373635004875272434860282147611279621824055503467948396564888315846431010628595671793933015663037537091435879036031373242819151133994193022235535439945775919774731568308761085186269929737588336348149531835635472032521027464754832024018440313197980177895239264577045011321754796591117941899603701937477585403638234944344560495766670502758098716846462143522950309737406975132642519963856951838977260198067846165786163143399481950418265848812922828665786878027220142770443021980693194256633230837102820354832451800256874983769716725574662100984362844065098895755154427310797661429959553916662987317951585646399648921560396239307439293037415850531465905186600029487600209833799286888717215509580306840853935878076026619226888540116662021855204892013469245633242574092542974271749855596686253573269628786075582707007076403359396051412933653160594127429694630020682991296422055261783262295638630716157967195206046178758792761090052209169424388339172066533335656984202333094938850678087820398257678598816602663864113197360767615058852402955454303686443342227082180717988162035707706545981178621659911263483745849391910052689425353129434359530866612128909306014047212837638188070010532416392604243514139416000463869393670789360259261931672986219949930128470347340044549866902893963451012613450415932340072617062756463972666711068604651213768082204601508358815702653804332230616250376851426757331388767140365067613910881927575617457766549287453543185927063635627719517651566832762780528653810541332403414133409794875565927347488880205579458400894198050530455131091499838803191658514746362190962615282812319153453526775372708767504876650059024741613451892296062535802194609730680046963902172474993583336220506809237179893907635689773580491553511550896843643477585083363291700827200256271088579211806131219012530564618148153307425403211329383822285323900014295682172778767693367587823456631777942718451912835166325268963967746715742015197755005725251958571659917657804985674731592570592084285347865282483302572986030895332297620045447864145557086251237723776931547518224042152704833249074684934522226084567618604112034964119764159158734859558629347411323752640910938091348325134410558024861493247230308644285916890374499603622755690837787929201252586915697757206877115421022241998353937318994334878523097246121168753956334101965542731540540928451351884727062708277116237547037326700987945151610527961292399783182747045424026491708308605361846363271669219185620766351988666739883792792512691425091895321907065537258458175928568490120768271429907382877249161761617596987839575808635797243587271228890299781206066516767203389308442364127048417559751998850139594741188816151994750476826340042623332750599278621526449889539039729147001558457587340604163123852400299896119394919395623371067213620518024681719114535905526412977440213312700988746286861689502334310292899413011795748816135429129889117371291211338707722599180154373450107506326449709092694523613140032509103484217781464243831579975899340096819335451922223866358485776735146262112534745026454263408773600997608752301526948899344910520810575642920921873061230416981614720728611208906092776817182014714417385654943963349451214505580116285487776943697559259299703597595488611407019945830764622164377508839141521267333412888849641150976178835265672979869702169724431800140751249804762196265696590108939680434199719412199274149207336524164666162282662515935678468971304228621202962448112617080819207352583932442838124263597682885265370675219165841322571739769339139715634683823362172505624942906346385682734648891690790292026470436161375489221903662181930431895829657178357623943539275346893365181443405031763589008132935854630878620166227722921309843472435571918676780343095538194778626968535353318740828393608363857492831113677317413981587647486753095655638474204220326360292012101889727800181781993152141838619506419580873868041420871228601547592699640781903790410294129186751423197584977819241250856944079634902451691908181164228312767242657131077274203853870695931614498391098048891326540234742632808097113221862468743362633478735168344422340197642489235223621160216076140648160510000117411915376521610058870573145010452796716629972076719190748509967088180144936109390808852058130285177055513754621931990951313302644551461772227711524953540896734523513971118463411094971041364892992007490627350123775264222482402931603688748427325618491811091920747493331159397180646897793318996739756212560405580825152142845583756904322255317558415203391300160004438348960214587170127566455969280791256421647305905893146421034731123291687839861627224508869363106233276120250861449141551341123409082891314846345658651917832733856648782221650440417162374522365257856513647692776500916310919058656132010776855350279572959660189089666477982763038684383529404021928287353225102970844669264098473380974922249850502023478015040290716744251050655408175555735483660974905700209929301728139537363253814803908491912391605516466871299401154982998629191495532055602949180093297936897781395417569687052971601352660220620970122046089142215224081269176000920774989650592142844853438625419138148427118027215843375679285821121566822715560998924707683109899218448919449977549586523582018001908929378243710826229841025179221039162580335698845535106004681476168397989942371738768001462895506407957556259515077986445603124283223837426249960786399417741301174163822964617476035859302323700249062651773217316249866316765923213233062425870081073908056784797184375734119347049409319595863581130326194851402961144913528280461828185728529680105501417208478653254484240540456439819949591530418117652417055994933615470442943125242936992512123801042692245907260426218021692038434645954264503867317493327665909929216233786020623234664551341966837638003369632017883519345534292226615966936339867384307470716856193184389733665886171404222594580811015750079100497198880090691653586991072880540465562631419064256857982576617837217017918984360901553610420315218325281680814189176406671557673296096212037307189335857410010605773183574401784022057327249426859015059137923604225912434032342038153463140377722140580028244409480652406974030003270214592539184520141924725231236646049318577027860543654128169910095224616170294228477212678113539960393315231666071338942493312393608106058938287070688662067909836315936622871441712743612526858869193084880920902705644958297068760051287813541234115055124142399102826627374734393163327952369752704920665911362030986796259420475410102299886528549726046267667211732743140927016638897161021645900385384016624676965493867630145644830120828974797255515811595992524693368770129993022546986667770135244724529994979257878512169661379960855742110556494457756166151163451694189738204950953762182077464539704973429000594148113314249779296500506710805757099968634382961601882219408633951139664098813079351640550108539858182640217849557524123577106646581667435510723361493526442196448934398210675485743483674237023666857929921029892363323907755650136070349221849326501191505227166849484713961975690225788822966789014768877102807403108662907574339562483460376185287411548190031759661418962896449649710368441418041472108887400906783395843405598743726411089628727029574265264947549551599586250843267872226006376949805748371865145743718592980245657439306556560795144701788974087559209522294594641367948489209507461704563719585476605686252454343962907066130586108040902837254306529242433290121691551051763876515804376390193292461845526229133965647588587321306415969220467500994258834982384761077233561057899265114445074007217436034595736791989813052298125448299224043794550999766151170628643952490643251742685109984333638516844882790649749449980212249678721547329571118866064797969361271423321389164033728212971704153983806486731535217024915237165610928308894055496639307600542067847882673747814406604873066230512199685447159294740974952174974052176421413553232690202640860654885213460117056841397989214804151624473946904295719162364649413964188664844561739032721877831266838063630794675092523297518854305768487984524500983082664801956785248750658833945476644787412579452005949550127664840472815462810011860433374466640053180522967440576734990089190204896979597621202557038489603089629130523027183250434596652726177386624896783398036048355518354478952424225659869986000675015670265741573212621819795716456319237110210399834919202057472446170168711382447459851204319533732698774578889895900367578720572726524500480649380185172285461417534262396662614760399362702494645631598787063813571106226917916603531890539313646469804440709879762123575421020474591558730804298679335936795883215531927186603780588520733739085118032269753072528780287978415893051330540765196672633149390160542345494804941166570262258495867909127805820276994369761035788772575946875621056210775018145103670337942515121907717498235389845275307594104259986085032105571414957034819343636013108673737422126105426974836861358689852242527417788705796626769825917038741222862333822051666100576902962409232114707570703756192704002343565045343070564026389325916482540983860078445933284497413988296763835996035985346589388637774793403161082963851760951954628886043771637424013915965211706923926199417515692266711241953663453945272354733385545730023292234231252240305698878613168534747597692447789890604088275712310856305653826040736644459165055269495018040705073111707422719001178465711806315545363967656397911224596366580677987832736300851685414365372600632432626518964955925317896840540970973122975438597659150566093203184870812310513584397365527829537050449487663565574408774930298586519875698672555171788223773907299681362187460313103190622826906616902436452605148097983528817737123386081634047617788465116570198715618057972944842218357299521954504151816004290383227162130001308527129299202474956043897518098106660652132747468789774878377287140714116384627569139773147707091351698283646316086195749772959248720855833447071910185881252924627542579436776962010992257724684228464481079797579610601306625101921299899909982581188432106923437975270828733336919859663714569584656368168348874826410742719389083205078761901878654382913940249110910516209013275926294080257863401038251060194048445299645957475809433435907442057439937605646720109611183527180077767565944361064539691814654331782645819240196165681949214241111353872096222002159152174541946113234858021191374749960299537905546751542819522066308355364207679100133308362521942102605707526240083364503473418186131530648720888193833607883549085899689280756674886884442290202465263856193401382113661257150972247260272853391132695164826802365126525278396690367085089796078315888267532501351295017184128367506103166526183443079925652971240461709197882079477996101831444614600712203213269956215296713562412004156726962860119138269797855506579185510754756458482631136025216857819127418056946169963199782061646905823376754862069738022511905540398391328240289246172883623588028609114721675381217537894678387373337966154012868717892632672654857546356914840740550619840939510437393391399864779552378997453167025636706937779810212935905341693719248899345134022213037353851103738265170614142054024942726193783500047303142667150220453477294699689070758846678189889101168543225108533808342841408128498527300164996176508804092104391053363940271901786468077430882302957828070795796416498163288100142422284772357017138035310420397048758182761027668283197982490472025681742421318833728483068241096984688511347932390397930233540070849085225712794973077845953960445932425051319571999069288558320491089381314483669592250824815971827851850995657428213949399382614024649061495607873686268254467275499411544741308278548624499611359392405659630394560571376687880894283708082012805859628082903387135346428662389207697939828539462318460626400583078966651624600511120895321330066282745577600348018960617380556643148997405429101633872957602050124603751887850953483784126988209805854369577469821674426201044687608201033495867085708570166287667803401424458063808783926826164593260852729296827098496160734456564198308925974187705277548048569852088417647869627568444890670058858655083681387604435324585507740275884087122798937244919337771560348493593850223517716093214717048263086850877475617426538920907078038149755000448548928906486519768734080346283025933077128136429241420327610546924432006654301009646544487974373681944830675741835110174822245283760066165454875660241745645523450009726443884926260329308045115044030866209039369704737010817280027255289186625628551758266917742121491377729803245572352310510702915149161623130001983206669498849064451080649281264323851383131284054868674110083870084873542439299952672183694937416175969395407513610465934588041787126807185448110265816402256398803153380228498305167324632630987226117612977706511780441175634622562687013010219740484377848154524746236940594183610056407728102420789759209165900676770366606862212887594795041375539200957387507977641227788523263306502111388141942028820206015215423130895647400112268832727889638025961392001539981729877480720454391734988645105902208897112090460562836098788963707443781530687511759948882379588176567102484998517281584100721930121238959325651074410446505854451342907134397975009802547522983995869395728608565671324384502054114585266387703964283672881182112508368949805993898995506944996756450906062829538998720612628109407512322591772902284364088162236111103682552096254856261586522263992419344713694075170240115391162057415343937971702243436705219867811906395821299991642702444114790230646686805592477090077851806321447854385467903312730795986558463910082932954583475791070249850049199509348660463813838684502675636103078826089298586986018458996413676324100117024105743113216488180456741157677486712177199526767490008662139832453601187859922756414534592730597768235945260691862888070471864938742612440523878234465791442604558052526494190000971154984376976398050787745549584858265040064776355426394707548501181123609739392810798949949905433986543853561669377792925059837796710065293083191835389268406500825209087702609146806217125716439149800620038750894407913282802027549067226030692908161704008212870834345928323513408077535619358948895698137846794094079967210644812423942460768919094603117847795367984866236639429787454890892475880265450770071605699723971178930596251903907418397143972853948625085146005153800611048765343591923990103263258291953978087097834447025261775792057718102239449496580189382722922379272620932029384889565493497799478057209207612933194975151535826212877362881964229429913528428302319251105708396878017735721761119176379154336367622327212721569498474126105632459058918424212911942128970192725710669142857648924943757080430474203811635717372913617065788007720453429024252670526090054124427745230329741120893514245562769883945525895457840421164206913474640925098603745138191309115604041263319433651298998887439430852814846441162341844350066190621472510712286095074758069084654262326427036479471263028273758104072874975943975116355596664566996809596492585441890666391896015783878101745529595517148134227938918605365227796069331291417840919169721645203618199718537351730227736602147700306334356126538992944045119544103938594438268468491607080437976001548217534457884489488291529303570990271530106572975184494648364732924707851797146425400912538795822633237979448163434021196813289801286188702341514487008139425429743101235739232043224141233444644197197387341515518754783443493773529938279629506047884761554863996547174123384535930134208996693267381088563127269260832736638071161238021851091252570375247639221308149751218214996234024602344816104415123953066010089135026071111212082322457828355023713973017540842077875653510957445139465422196135117313559504459726343357834209422467458112527692349509319203969525220268845013196084283406440098868053232241336887348747818468799218030749871189602840151656962586960740940571620671424212290440046005077933716109716925351922746785936512661998984286254926856571097985614531680128490425900387936493426892050757206804548507449933821762315285167306115851760713337981014036316184188212989771249094494852987301598836270740804126553316851868788782422834648041993821557310669480976463969098947151645142842413820048163834928706966635496891132738878488798233247018847928480819087914751815599396906899086980449686035052158558546282301831246349980601605272111770649532892494598219764839193989106258809574145582627929427743483131713614681123914045010859186062157646824023819979357480662942317371797588687373572945212604341387937155048610902761144542122396010838514325876006441217749626582451038731206134356201717506099906604709481426689573630770392729641759703412291523914080136751549717179470645087771344659377149785426392119403433308144659156614640516617891134439269739754363395764567367905605595776294422555671472303981869519691415124951783773448194924714874889720885095087355124045160857459690633513833244413216514981270829179809498253301035341045578922244591700255890614212018077886877594475762154851383559061252083384392742838047597630325544711203585214432556726416959885808062893215629941527503960070092551009185594167406305991703296498170347465004295051435134605218108387786789850381531752078141623404172361649333942621477960733232264799344427500606124946029007583970711881286446110666237324777708803460595265299733594677499369761431656718474855914252189990844676420459606164807787355708199673195219063392484534635777960098839402984659166434852888519373013594203395874112284918446740750285189059023971217013330934297779125855766315632007433902991761163795472341167617444911866300426608014200730947898196257935605066357486546531045557266852685086911174776552356326903594921424650496378367834534088381192775928955099168912622651015699591383477070935741577211209053214582902991683720457360036046287084589025494092383817424811899152431992843110819474639815917677487424513830318475103740584541644093974738843531553575337341704539642131925155136078250142926929649539296206329666161560440660044964362799625966325365470810577607601567575970782323279250636907748463974379050710853293365561632943801222699121775590288426416100710796886056934260840410968618531719035893624192009923693068875496964736108718108137783130957356010341812115290150184223707124672477126235110258621307670315467004758841349030831510566949248516257459058364373282873617374182956282691141833102613388988119209495186615954598290429636787626873768775714173705745812059435405416967441435216115221095201286030044076447875290181445874840269071280747563408695441588180165802249683535325348109416782103794901883054399505051851910446711836134954230946090405814161454809413928482654349821467496005429145508090195445939394996151553325459509236479449913064092862203816448028942786387284333604203592395188872045545083926082130895372572056118145455298958435578236139960866465851854306401865034586003050648145650377427726231450124150292970414726338967441116075743132611081195591428683562773243716013682877138777395488569141976231818216847797952259272985229889107940397729932614994247934199627409449704494176946078607292019595774552649316081003034220955198464991031752049772783782020098895985684332419575244034271633033598166337319079761831961863883234073676516843206174401961459598030154995924573478483502738302695968795249212358981189360731840290916952511810623160240090076288609882322061260439573514298128420896110563916264994244974392314111802964684140077691563304347479199881607526118579416725184594017650011746184300554140711523487687285345206098287311301913191746479423033439146731039043483891243720719123689919598988333241294284024132421873315741332689038073717766782088093510063628435685245463305654675301609741078031482144859343001441613934755502730731389093796326685895681110140482693979469596205206514690197069385102397715148574368580076218531993509745253185210143002509437945579923701887220818850649069669838898919576059490795058489997971600881948307290793723466694413377885517904806755346513679195958581992493464005661885693278470666651532043991350557999885556705485973590862860127421986688786661554886399785570322226270087616519227901187513159803258088062106773923896344733623954885370815004199558555052908344675280244653999918849647478770832038626579592329932680531193896197232643098167117972891096683430466485390368338979041536069786458427938387225733431306636776175018196430110994112090235809080389334860087027535923464903893296161511845315195633132145559703486581228780226811919599019904974113602202170819084924937018837936060618988117469781430368763170760298979457349701208839058269798043088332041569011881213609466632696774127313100125709438104953337629217325457160772343621632904362756917343329008064798464405937270231197027460045227639099015714578251306390056182940887471993324555977975393005301005163043415975209350870489740772932999527669083600310587698332070300831135964621263236344208229746645493928913915190254798601793543186192220232175410859158700279695957877218655602735988076446145202778715649390107858143273775162911606845837263391972936031698641214489148598461612725474053545417764495721065507822996744897649547680140300976088539074976154414245078130497558444612139992296880431166889948463629567359223766479538347367515370926453619813115286510020738235527347788128243008466539548502021414631978821649453071061800300615377218275696796660767162351790398784710033084447261201752848187016400332478816257860163623340079996016411279164915332474365424797292154370415594677729848714762657814389747444317253711806732293028675172364526137932512655558710229871142131268091992846978745532108252039653431787839525171819245694294705767434806543523290201464231600062329038253636226290033160224168431417010653479260844409276002003588131760971254865714909162613129009205294591738200003653508409265427597817443080856349776529597183569339157930496528840927282977195681260000140913777464811567582648327351718275325449275637717067361525578050395709054855336626291660520894977465519301490430862571057115265416505278992120969091806088757201794062816659195023594739885960083779283649298490245493712722532891111749930681937285791196002975734590078845096575167535647090831238343394532034248412932818025919549914678448679158411431836460942093375837804500346919871730822841552360986302251779218345036210344939479858293569213466688092172294417506788365420084041990793537240020912113973190470312303324250914205741878216623216925755903198690981506395471450806195072102172099622325955113130896138854433451931399049466084351036668189257615823312959652510869001117652563297657559758953880579837399525514005066497866137423098208994464112443869476411899109570889378711993206354994990868908741298771590235292227866979714681863607731875315148734391027365531471865633295452258071429272146200892618063239654369070228950825855188527163336752524583918637306791594631601003435417901725446878437749442769321424274040515060156092179160765967091078195703638707230625731921915158440215155887666666049914376592513737008539995738530844060732302879354442764647408882174584662129586211583149551146739945072153559905780598606082183717476861904197121288424151182029768295472201998278164426511037602546567044401113496008040500104886293100703787852560864773049839346421891413093000316090790429286070998346892918877943274114987090393471716103320959660315204200117856175206260857643605107022702419628358504088519724769681627820150927581371456805626607264007698382580985039961125466203144037323974375815304457013962215854279692350429398962444686493324924892711790330416566800719659574311227275921656592347993505992059742301528460146896562723262853835674208890127176610980666543298602625429603329622867486462357362453748105678389178060770395706838277996672485819144879218190834377687394238335772706763602161200434065197733521066740393325735964533066018054517845471580015304144906909533780846210014162449283028823805953325726926164563737973849509731577442074371072773051596748230577397813520568245661751569697801236466923969712043068446003272618201987985817057471947330776650908422804525772898977872113181139288315983150212915158058589521751613030564604317640232145783349639719432273296242661196551665960107887263896852709878532419858136260382949415775982533050268347668613623318087988880632510600228813189354838599271345330155013482481292503937284616563426984210868339443437078611532307683181218126200203189377281616122781279838536652342380376674407650849794293223538696673628826400797224859446857990197622877549156537893970928095015942215054127735125291692829531420622185340188850557813552953263350043260628968313649994672069954896789597745414439273417036278398808411671587188571122188679667014926105856943056736883615293545989784165890001518051618671166531051231973355355333732931415204699819551591815895335064129293425853998073582034357332221422806111018789092306019946930028853786328974607516177924521242592266107133033410852967491058221649013381355757437748687697909664154591574769867386178258343473638054092025982806077187152774423608014726316375426673526275104109034545416859369777349713057174419360342719034191959933568835101202031847005297182279335682772903099356812156204974742779997077723637243914853022595992567849413433441627185074787280513011395262880619774182924451899672405192880863587673172246919811721193489920856028659190943107789546176295959455591599172945816701575419268215260659895247787520570622556554574463860764784315433382729644314091438420582245396947344031187191845218975411103407854121661967818109875354552560104494222831666595244601375225226836943562132527362821571798573223718433789903615821645199158804975454106943244407766863581971988724680055912196757848439699687385497484111578765354360521460571037780312088894633374921421467817627368519056670711629677925593140869981434111602382411970838084097488208443391213768704872689980921237355353408133704712070084060284935119607269096954388330974606839864407684216381147961898741225096377882030151199330447451923518210581013182612230073406516004322061554039438916292131292294186138982304587913492327263617837512688564344890084718395011832318179318730313300804351779417102745846330205834447516414203309096554597635501249045725232572052555116426514844206840405184536156571638675060521912689832534015575140933759483791599688817619809888670130404887394422674429773774450081087530861564570331043863125520673890236175133540273260696137468382147960095056064587195989014671265893056296663646192367801203549255077723264852274793459242671922952519080754836005727278669838767200056600779270856091698875942146533180003559454071410410701547020094517525496649567555497897363062698908441587151174384067393200969756576156900193776979242060840916770190185680354492037228814674840254026460344991401898224691662749261653323468830264074384571992911284771087808633912369545702143921923734920521540065247696295091893383335233780547746408801964541352474538598868565045149497178176714963346245774437881607378424680044823605723505786764469396903014616280192704080634261694541969133926826715601874370674455570889042459121578904011674868944081636290255548390087057371554373634324822232208016519692254740710456161603965418077741157168097697146007951926719896554598143392184692202227698490914586914552992792100525109313222969211811183105730664701732470294322086912852180357346002434199970262893228563037044912505645944970147795484827223908090160923011325435459287486500572223994639667666660012778536234514231220124412512372851733729350329652617423352048338164528540499321315002959717371833858692149592190808530532831440679930835133795892956130246258499153503979857884145734627569258179020878454583619790833190752390592995149026639772003348599983517060641464272583060534116361500657072981655679906302304179781528766504474947099843797079196055080303815656958384348867401597271282830733879187567039447155590434537752822503137950959634285787050244191976743480581215959863026211210843357487773138339382137109394383684886523507482076030076875576528260844998471426136558743284921423195767551935661529710184424923320070725699078092852946842039402642612659242827791042837308618430165572758070301549239080323704122988642657596962086765411587868667265497138718627251756985352198529459924308941996807667776011657368804719322574816292684186734742116717853101567665903859874615621079369510399056689142215406368705975365956942876081464824628930729895415779775324919316273467840118262854495711767075148024337923953174811928252810213020244193840680675107181772582490654639474526260214164479083691137001090510433204087849443536545795270423795292123413622239796570271230948327413112973131129342141687694080417270939666208309445646023634420682496316798979271802778556866183467997406003931379667118843346815241138507286919387038503326186768315604421820882671963896139135937120313249179486963675685371361242582191130140893825635814269943569118102574863799174920583033107913115859093081365795565166713324790466748908569972366439863365640945091354206586821312217430737058809535307169771806322539087254421447650772543722515609036566756595729609056375985171365246280454019525364208087045366778207509899332368406456369507731454609620733182711446665740129031069266518395331763627454404503556321380241860418878697932631937206626113536756678212645721408524113413219650566516133020269650237041939735196052433159176471377137481483241440797409065330801880921585924755946734018152200736227973194854348825432594919765584171318273828944589099518971583418262345454708377656245976020123753795402080980432860525548367656348303179470969118582937597091946826425490871744787393171573745205850934274009834669846851824538024087407601024239032479210524378022322555854821788673354519391353421477331974366189072313068016349317235663244926467933262353576301893836866023412798988099913013476804221739963881146718291626437210001674481064846833780747511736747987230756720400070441483510530413801162177881333000920142829138186301654074249223574016587694524172719357415639936462803357031865507251454942622564820431454772380181257237744576120842042788533395788988636580624927739122205655146363581351351092585540120037868894490380772645065220335079408228903448913801332366959678316540674219586280075040345921259485754351362657624200190304881997042423631896134287036515823827778551626226386781039033862068858293242130218656690226932942853261935893248339329733844866157571077937998449936334192663301612583063809047574226446902308020291918585863692131672106432041478796048210105437864398422031851345713759718743929776858646402720453488911148063271555007537740324032786943319955524209194527958118565336437831093568482469795520784238652820857985684706265607031950168720286237394124443581829647423187596050243062036939479171102163021377992901384198729175036535525017936971147703624082890716990175508175731412579581025307809835621557170039703578482393166577732799242205535867166941727793109985137946181059231102571649813374898109808153235197692383989452325764909850905977358171790946319974306424894132696693356595868701088581011405951331342694217442709292709771907425734167619780701559069402460832328625907325158787202564415744060690958681129191783141812680836024356139823963198792430049261111841866622324242506767690637630513833308908895279525058164580542365980882253852697164035634475966046254089004814440426206935557453274632093141449393853607818227079275940955961178167165807011050090710091397752986193492628404086473209458230136626211957552375615110579342506607643796443590824236601297292642099920171377161387272577257402648728101844251614507148036685323214220714812790634139383453046396321818480426754295052092172064026171556709627763082174822729900688639807702091948105710940537028742418760380345604439085555012085971309848291985382257255976301139336019500960411790350619456531723632742483437909246211529838640418955741921736394682148971454874067902283052903256993757414629728578050345232014180441649374667037179239383434444570446087589217678948679631967007487456123879536949380190142988727771886415301825480019296780579269540759012892491374579594204714059760918221543825828627716427179277316941735802154056275980369056009310781382976549397001621574866951345825177969179861325726330397116184285343133815541982055326358064083209180461691395975946584670892283968159920089845917792851572765193737306121981991682090866570249888007596802778871875859081890792812353492955470203732040620024811376770616490937582780943931333905366635476204848678650511912979842444174081862024392872866960465230788412839673787906240972685622628568571364497114965532912703051449428699998197342394370894183017038809173023922496328026730582245202325468917474733103072443136250666154912387266635902642078983560358216463096505249268460179035027778427691153911779993719604074149052934526269056250235067553469218231093425148311729865224179188440103883254587389927994209214954221050436906104132246193987403743534543313032480709485309592714398601404076309733258871124389654790247155511621132924048878949910055011714211493731553212984315426722375518941272473698471228232879184114110431502789734235180611281916416134273351487920477617198077774261838826330901300394917557231325746923527693606850848991141462218734719925166304086166679224203594143437532340442729663307340358760852917719882586020807227375315107616105224871805964785243091990369756495935742674571742618764655545721658900638468310618479436389830344772611932487769665450067045190570104955942025717099027392313307551758974481594484886344130970758433224624228210743959057526125935236520548304635845380259611137005922002511427614596807135045743396003170444228829871602231159994417997273814783388384245520702864333190591088492581563725789713791700814784419427258278383885320994692566962940244228875562756241127659950495063388427156050975217965796054146832314066550154972990270790419478865495729085401142947472535647811270628737327206255067198400017674738536434160198170088097276656266533300158714670136484441324821179577995961171233723192098707590144130393820587036391547797160852358623087850755435468437928068912706910185080813556473966175573795918977960146355713099825381534514590027499575205206470321670829423281027104209894842860396898377403021949894029783318991865483051680100788924313408905574326510823092558909272979654421696692555469959884906555179316159621097632408525741945785780026314116796181262188420267307351004104769353150669688067354881929914762705538544155083507774238370284163939038657833854925434118768373028631784874407743188505801691522838757106620864150072620896990168222452124594074445196606368574123760370136626593831377319598114355268161493748215811422365105774999744857323204214352196686458942958149565115532627472560338985584649057510260312274964502678210593068923363901470662379812934588098063778727139330784385286336642866747675924442071831766263257543552771420869175673888992196622714129196897702558016127819597347592845618250325528300738770881037506822920771446555594518183218003816627235101010442595216266410883001762465094247010308556631245345149236335596946008954131023514293512797500139294895356435349800881166221608985407946286508243962095771812582200370316760280456208387067325793654470993225925438482872738034657285104803157474056755731184984741841870301565742023590605183170336984785726541023475110144680402835567539882960299736113527537948547580193643019113054559058446989423968532637849004704808439587490868699180506784943347109521201996596592394748317973817666785367831847395714708584093703501017802401448512554111119491834074813135160819832103804307132520068305473820140599134167515599173173132561892226091731235763829743498127664070865499256703936430231744231747284469265937119684368095490726652344576853932291389648065371770879184337571666484679389532821550202005062074456006989367828307580603704103011282382424594819383091122520958851622445061178748670509924184587302260765778984050086452043992168445780574438997452375301939938932511525005521884175551934986124035865826735089440111268071331944637295694468355748364432127195905399984708933969801195364723731517811982315956665142310268180263513901295083750453232979622668746133082115139911698707925798224325214492154202996411237016671687527879314913307398719783945869234864290904644368073074301952906141242666573786928426484225577426175233207493120230237885249617734116104887768306944493710790857952992978351567977573426360655056353461641138778356746610994993389791029964338237296584315071127268990538063288845423940228033746693148630159611608995475185641375928249175318329625351084297975648655692779058128587725975970059311356561602211871557855910421986201855697889204856502847659999808692275949391159967339462856828844657636284908617771084442084272513890447179771372119171457258844704236933348703300823709294480983311620388522888333801535092209085439531202017400501281875086049142169448666386121075618155314929790604412719795644080130343623914766219816259289139799015716773016390467303350924687942060382230047799136849656964708363148879098620997205487128067862042973585690605512666115463631570165383882052987643140030908289222706475906867357007220684031706994707649414027808279485957516930413154863291827447760024822681010288423322780727125991389380801816065752496202512524212104340277341264871547600376541501308261791268399825053833457813536532437682329255178187630412537146068829263088881755216926848458598565408507334200059785896029997749249751683427488165714538650131072000532842938907528925770362003174978631361618943041885006425113720783818915364935646063754376246890541139260739615567943989594062431643192699151067006672145990721328232782313105055056589192684861646742256211562254417193982454171264622423767431197902689671168214393777771230452645266803463064171072100731789331479164960485169533741310695090250155477406122933583348062353214249948627395791792427992393051280731451876947829732368038667077807975705621071177970450965838277357245997451567518765665973016462773183663254887902756897872437559929983701301595762472558358630216404758799449981907333526631791543380830492537977894385989115890362598335180694954782503531129983809469809736541016104938019285905805904579956237983194341142420025241951209359988149649657453974195804903963069126825206701710284705848270305496060370154206161605594927418514926007336780180081711436914469765439114986947775882730054337077761611338274608119410042575453714791880830856952227386064863670531654523902400187639984656452442118163113744282520288973850480859625170056258007741263751624521934486379009249370637051496403364142613522290664458282582801556616404584426671353572587545586071620796753792508636232510534188954665816647357449182388273078298941695093617379226974063354805735046757350152553579517935794114841931475561319095793442795763261919042227932512445162018498871357293791492506796820848033992005401606056933519566495589915787358190374912860029315784694619110713957353938801206361565397311032077605776966446272209901411825519426285249912808548891906144412709932511285458898866537227706825283240356895508988390009701096188724710706715094778746170448372393425829843096276805820654780081963326015764562448877729717592593985116008104225550788816056310592067834572577379951081696507821863958341967410396435123346183393287108500597424762753452740794247029260620598640505416598355383509997984487511933220661103810861647677483781478256476741859169915352673515906718487313676405942136102604188655768517463658284861374101052272415972902153206525837123728131841158565578917871784876573962387963224050417974877100113753113805408678554137248884210864140100589767005455372017176540433204212293016013785160121554963988406156640875270296316357586482335836266495319974334934067156572258585329302687986269856763803462529093762471782752233153325644172088686426921443101300191155385580495628380953254553689523549229970636732158622250203227885634654766009423615057809178900305033662337335277117965672688037927253849245863547951645860898342388130165681010929851720197704992184948264476515502379125812062687008375280381394891979208199768917632115693172418515495447890791662343305366894256299810837532546275375477997259245204786083264924207688313488116313255093612669031554589577685707236313337695040635766414593432854746636574898835488149739136842934539733587480846802733669147572359319453032505708768373050616786404534980686802405326127226066482686648672181500063913161630943490944442233782703593912880344676246712791192025246387474014994612715062863971504692157314931147631597531511105125476524288912240107234422418957108159445618380124064258755033222646655900618668334573048160905346020197377819357764105295502050613399758136753244135115187501979516292520356096820834893146820046089641034227269843308851952062331294289514924112728456168433762199593115648903649656305584897094275513550215006205753900703178593475807793505002685723653062844157942581893593905775318609197154857820468996233660357307659599388860571997554535265414346175636554355152263177289497180880235517472717348971512137172026538391458219490633802970245247163392075182839604429278612206023864895630474086487951240203567334391682050701400139851336649165634797587990541218579128285331205906987429770560904057525314627466174611404546955566915252515152332610416403894907534899456457356779748031792812888147867074630885347790870774676999628869975987050590453893147018394523527502337329012553770519282100423087894023329822932645351412972675027145393607936567473658833150327797489756550986890493726541173968651505529226175883486297825931952084596235587710618564814484324082647005744748439319418009236669182762391246791698763527205932655053194670964825231966513614078334123651894862415588286821944737732138611864402809766331949885021922518167469456803172351645952448057371238861762370217177207342928175591337113774909040206442276592714634736355628343114009963840360513842820407074373997973588885734932089902667887939082679124430884323272185444099334982382235153850459552793686774620914853925485295713126841724698833382119756449275664682748861291282389987183092069797691716705429948318524365660995987153953967004088723782496573382726412807247119949722175369955009749332255604626558139708667622961256374571125666783000616698004256523748762591595839249556938281653107972672746010808323489002690382766665138070179898378592345658793065245040409093081588797245974455588083603986909922175337916826415569727327034932879994302319659341433836740941598871578055905537844764326001322430612474198237204829082233516593822259636966713575051051954180254266602609909697618184968156301690159785540140433539160732722899217864057424161662360075905338527040639424536716193702543331641454147500200786494095793716904714225078341204436173633450075177261235011218030450193326610633440499483201068549551640530818725287012666790426984089292127296849532074006828877831306404537053991413922083606491270010513659543039935290349737390132334638814795831520731956994832656870914031521983647343072621981412579571768236024656775905078268313773572625750152930668323787157656449619877961379067962001221020553229650353893364080471558699465692335489566931327318231205970599431311968064342663122594263147456137946174547804448014566872488683293454134374393366044637561610833366082927779080466634071113808143421514023978517261038473698044766409007420908020923180930509892397765449946857792621252433033128098406540643431418019416903059349300511942869584175109484818788456539263003260356827898893603579127103868934505613815369960827192342105776024427134190887588367972188590878000005326201074397945403281388423940458403115183917980120242603675434324923873726030416832034087253797543225495400334554196900428958299702866335874944872068769850278044391373152026327970195808589640166080987953430156532507187259903591660988863010126084047039025972509187197132049232469850207118228296546547736499971013882280216536851291173583400790406569378034580685930431800735152750449532469549057638226854540461564068900050155596531255106914843881823612191888144183777362524537841263530892890888309818139751755289614541205281020190648828393881645455041810710350362547154232645213152639263633685718617543875417441273166754862715282038975445508642164872437363976793323434312798782512957288289354024003239889692138320892442921499353904335501077521623976396195817213145133419888158441979158730785580932804851286727787092723404088215319725299260701415276982121825630231131733781233961578107431346495397028427422231133896403207228496657120361940851580926542064242275986640165386055020965925678972937482004824424105357283481626887704366289963121920872459966656144119431330266266223346109538395716150325467905169968339618648732135912039934093287719617738155922808094235696731940303164997270824894470823878869778720422997839530878769480670142090382071658528910394504404439250147539242194828677177469859598956379609017604185988524549545907285551694399674748115685374283557698178196624566665658784647623988368075623998024740468149059124279354671356318979695764991161680680868128995001892954665742908163169525326948628110637704053549246072322095309198699564860493426361768179362673830265169400570149659809790020504629942981595450766426328556342996736356430772292563203364902111756705465615213209892479351146963341310559116341828486617302821967493747097164450088649175204658803689203138073036437929741793633971953158636162301776935854869149393352734689673868466326827498394225124874413169437200884060557306069627378286959998701349944733215274679241724623371316820659863454458597654427799946914279429571459715573306665611961366402454079045316423817289665803934681285028478073447492236344413738189026987450244569207120423680390786256426693640209418782750186947105516989012418796140872677490190769214646857275247363935912050533479475242616667903395974981164986915630656857112933767101664178070706299379368196897090830462956929436942687744468475183709744397528210551374435823385189968033977245649362319993357779206536391578269585021568184525120244883201369872206012561159479003679485151258214480287073899053345571196874899027786581408055733206194436659985497527237795138416663018099415844497816639301491187967006546217341439259641409695844388950954852016269732070074279934585571445615592153948870027646825207411566064427040743970917594200897310776711167659347461992717864274152049915636775895295802498944139515194222645188988319312125303776569714144527003514676375407843888493180406278517460232356606917775763503726609042243807142564348008619405687967218701095546412728565513841523812139562770069814155130288251715737824854017497725010775579982117039856627662947942331992429794327255886874000708253536000303975995030190675910818623357505117364269950553377902146448990133403767101363627261612717342069867235851505297391769472170876505260085610530109344026482330306003338553183835104035943872500285398258256068045847394593129287474461919778318767091227686562645543808911813959311408552195788298351792608835207707773184211196576755638973150327493354244592461105959430756863803625077199369930220558440869064915015475001489555534955882141152198039532923092526872917914375188899654650409482271005818204683926354023278491316848723253535765696449067414403460119340029169896384086730847019922593630145111789453053086070714192806419702024741021432701830849460331292818717028431179765163119114652381058178934051172633336382723460115682896053811363209523312412238202755158462774799601746956374790062051153489367496735961079261547573993509134433357993301564397974576931040645085961825557846923400907581916852662533171624322662376731653185374452888185208135605105981166498231870533708336150919657303572876517462503144546264542630835032565147079142012298828715975111543598251219726933100971449049513847827824032698307609193358209253677826986766814413979382613885877832193133675627705101289161295884714337874493549817458774306675882275609779600357436734110484407979454325197910004474935435552649025759725706940199364844458768474140865634958928060684225969027490399163606149305849952582900819865653758753906595460788892923677141891314200101154320822913543519874494490272022334182886679366108074504489791816499575674342402046922213700845991856449394754522806933237036620300548417829509171781830495862882031225537837575667233825145319477729756723716580485617372639013367548380088419987649984327934509855636726221140570820748115809992157506719401538170329143128729332499287257876005913952858570130031985889807184664869851794323010246204860416866549873904496442502596593560892513316507224393815122251844009142905730197851078807831797451532892302943787977923814324208674920265120259805312295544290867882755104710248807197549981815675615597537421424799402682792944776655667437017895332225662258513198738908704693164601752828147609667342887246417124775561220440722227330416659475949217191092990076049335177805481218009666825846367995366112492002126684559467343294015399478074776353377827852336560405271703148749342494051850744266562331087311883532870912008220868102341430623142595275222126424076376903756488822196336271252563942848688845289682925464410974114759293801213578114209153610501208266173175867116132841899436421189174914188770727655271930624973088128534886180446707731409516227062980144470386292585746056764416488431676493906561522690278242219352438538488886481664627444441985494501584620778967019386832311191177960360314079329607396984359602544028825198793993343458973504838840445248911551285668281411926762818234472428364978928019870270313744799200175698939043446485970060432005168421669304755362217984602158315160002469639306071528899021478583749499560775090601881435505486746521621678468509993382478722261418965927210822211616465198884142680187764811606433343274155156132878777198961575942059233261493557567007600902135915223437842237452673209360297682890384017852045141022539489151181790635516373282237597391844019611901187447334301596251784309669263019310953133456752424808026414157316848727523450634156934929646744683985125922872437074130568004209333621809136516954006580785920531172871882676760975411365634879134312588748162889348712062745385510104497299333919505848449440438235625198908186860277942710949364984238123052260355663956964178422789474053438931895622073230654667920422591884577351549067301146548915834709062072639343042150357162346408601100950591059152491586817941609286913709198275352608162510584465359654282179168921074588153328963830074445671252897748954373189447621213749624088212729457641469125842907589125044954846714913593915933330761118298136630735985180579501957253149675697831507936890509182562728949017031394548026688037424784327571428309804007504546482498406017020130927912577643183364765652447002103227454447038972819425430844842615883973093745742948505979306292157371101743313304071450277897225145241591622341732303499659330949602561936173453978648328600931217444972322480311382638381257066967291371433535965869085213285364455877060161723207663562404351453490798971163011006332908047731718526289988564586719470615936481883435326086251148763410323576291757883544826629271215866770318587291970247048202003764940981691324404621375734965036452540432827210560545151120861025627039749073953192477746574131768680673584230253611963677503681715159208475213240240315370477691540779404938382866108260055210786873850454765188662538756181020917117107343723837019140137774966658277428503077803878854465679208665555425145703004872001259215681456835795012792345302776039925632507201994964997117471759109940973005467639794550212993573137967446375103910690253547258516352579152685130839772687167132772781546653096010188559211424532778632143054439164250528714664784740796592303249652112294589508513827648554850892210292126635248930513078516782867098717377554436541515238451082774863328652075915487022325360307808800347470403753058633811269288833470651033157747228349652378108009995294575087216911375564826055322654531262105171214518646172275832043712151118797193789846601801549466636689538204579554470410814802657324147775140718291814601350398261040615645499060520713806033725525292213560145085105538599964584474265302186226522010264293389974359606100034960671482839597628059884907697116017151820450175519065966345351231133845540178974751359948275262375949891054861582392845405499389400522023206814638397085255988110626897610244420208973896171563094247529090256063839397931614319497330261235570167595349955953767978855390431564886846317130599888232769599416432701111751443303967708526720113276043467873402084876530597232033462834730313499702847946039914967828722002278767319320361077083620005329245099945810861517976452031256613538349288233673153493203365277366611370850915602574016917536106160363190533781740220714311856297711912215432041107530814042922627839431682065475989329580773020825293949275819353644388184361296189516464930133353522491070602822425970936005017383591530731886735612071648085767183586196441158487842893882762801735775811803603156249051190931754015109970189242536173323070021409086390699279976477252084094465476477146953471552145756175276367223181036553388060083062036533981359301625187123766103973708293730572849575378672063397890090975123145259865998868525547026691267515861071400330542843735826898583309136149639939720818393797918780321504580551663670843862668045718555737894369098551586814330448476993586042441263692344798653150034486639623469080159085651846059833201350527484220429091926902385472962234606564937540905169965863989694887696221209047367823169224503316267041777355230433953055622467724349425040815907448268154082276103790852658921361717123000398297695824441771356013191252299001131030843701766413585371659523769911652825951719658284397054199975867091846942592590781458761021430262192959933020054146349372268651980240872076173362156619702344410759900483392703807856557536584089962878232933880925060197865028587322099913777658304947568893009163285775526960577954819605676848568353415196385738636703229707152448805836879760928296837932107358853211439336968312965936282340762645056356418892796237469903846040125748415963200196730504565351586014526197569355758231639651934257193960101403114071554306671704233561288362796750528243174651098004606588032755298381949827129125931937824717779545584301916586284794559459127086799591483944042869075521542757920878551710313529519611219772832924247507318927409530667466761830157601279182302969704831869638710856391856964491212775310059860710139478537604743647996486791510733455865474403683498651687431506192291276101674533300856350518819108054528994524146017844270207251911978233222814527466001422576402629896180269401354920231521759783022229571738590823100845637563646755279682072918659238550817766825860410032147594968832296638503751163093904984931730732080713706956120395952313532349979504857717801949010451427126066488584739370544959087878464233462243336066737253868876185771729368421533801974308234979163803135353417067447600624363321886898742047580819625372771019779843371344710754088592513166335383498046027949399557588787837000494554723820473475192614566343372125136340029386696612896257103153544432511560601906395963754443724446783244079211681565195347052831769469417183569877623343832274549495426126384841287634055235873119069660498726114819620389812761459910058387919378208456177741265620998097161674224362328710681058908494323707611588993265681068318483395912412750298443989875754977728863032645746561355745120570931381340270773863284983093895157373160415940366154431128403587717082245450218034250907917854507988747681761926384615037366722860145359178244427365572832409767514142987301650927319930410834840779602826136917693571867376706709131517730817981255815336350364668883241928211612740034611489066624955537004962914279958463302714905554844748541602003544205635350681612563805159533255224709284313466391911688340426763906993593872261311601677312768819125642724188419643442151719596901507370650629284653538852972927801889681927165384512202416797576261464085262949071115717237611670778501238463275860984995189257627327971320010852432992957496935473512196324912256588011027850146415206474543932680535746274695185186005013822518556419862126535469562433417103578435598308280392222443582980334761282996967881412594385296521951150409121933689819778772204680681174240632185313929079651519863697207486208811397430407574070102606554569740291452391228698393506920354672443404025113020566610363332242747609788023290443334797703415885965920691898637978470830473503138331105989782685511638978272053593034203810395347431007194469268753972402360636548638443870869997122412364704627612607041311745216013464222299016092259094010404263846931150424053328321162370542113538119580684966912928746743830125653741150410823393382853582352374959759062368108431826297828830260665284515793677660139039993914139774429721918541165892666345345170653366608918815874048679282294848811527220696918417335904316472115089736867516975957615123152441136729337784657669215892807694010741725023531440846891218199592092048807521726287130258305969487949470651578855106990340841738135738517943659752082277996826263151123312352587028079764367349931711999510104989556821782456629962685211220989499224351199598778144030370732137621673469248650720291339344814075048462330180035433640411245457186909289876903444632528071497955790508050599870323010037177292286050412354134546478149852080253168904690390104649985632920921239054316982921919714475784754169611781655092149307393785826694485677281172777329368512516653802172199218180249830388205543546587187120041251240734703359045461714166285032496294521522302380139850121444479225686221710395628550468719881024805678672576879517149115577152919039891973613524090104961830029512070599498781030131317116627333935512777801538256771850896322579621203997209874451269032041478090825396645508422796179776513330871009345409440568559419929002478384610714727060674072643249803701270164318691216187078198632295656523461040364131503586652952711589350660096236398827282990508386207199271862111642059869852775821787232390846480302569956588408335690903507677818106949767362443526859728402924885463482356223219419813678550798610926509983043142992385224737861076836548900008326622494737135604213067090201426043578070016204328283876416944956636200301557990098910234219154604021932725028125661386483193833280294533681165986820046139074171595672728935742265900222215585683164701334960454218396388842239474586021279106935846002051217271759564206621583383180763421020570335850634142789784794466542680524014303156705800999693931304985371874092586823166272919717556286624371189858696104108982899965124279091646877288748306143685350806277764638041899781725779922312598687982904264737382789058078914214007081029368373227155601609192074393628761771120416417945503890101543220429207410996689479599932349958582566264928752484061366924155726169312450958919839497230237238273983115996702128441269269834430093116903516917934436994252408505749922571687730553849575128087298666274468686296695431896690284926310091907368082767263825598796658213373477162758200603904599145690668316576245684875723800875577672302536907263771456972054928804576864159498545474406511784130312169696170274281370195682120908597599645456085189852211280447196572474871782223750100991464121619263738844635496921176716671810946562258528085809596961036580557474464081852182931762568111299385492078883545759618259127017027381211588669100350194590741450862423384812767652421607205503488924613193132462342716236888902927852034249752903732973665340263514347880733780432277420655428793827289484548273720645606124240277909701824477612639867585031816172228928074549171048504438618716944096271075243651204468430075447724267732741510527274258448998306527816770145708148279506393326331891538368110299759235632753440259046373813255201976488380902008026667672094810010833463900612609393045743376797874411931884490288989749409962532044289908427450400550886064461260811042605442041331008694705314022375717122045456489818597244735920463250027325726112674744483903595123549854486486348877292858310142881716749138340733342416169379329260195424237404333303232361940778360907000848858092095839195481749468343299730523969592685249739051620860123999751588660254520884213012477768937536639077727398309736835575714675831703808694563485607667383365506885203506016897030144327095942605361048301769363332793691338732199860753155730316440013153132083267503166872918021703676655794249138503072129574130992656065224737250844893910528749065485363293128968790991334610470956460482156246646983043255046774913370286623933866119738562297912039653981553322754510577808523861392341124062422064596059794460974085750689837562831946052549432388707199797963043071766014998034461090544666097650191794473155080879301213437944213282790343871524941042497151358498112242669924606616646397376033486251848109503233564217411722952704028862869130827375616038576117749531289147865577192918680096562168311289989563700548873438166342834896698903568443402703001779596590344597648619705561072168001650321919228038894342518041253215543600966223247313682205720235489749365983561875629951978936773587092552595132423647237441373702158591653102659585740690769278215321591201447783303684291524801688603444576772145994940753823321410649710780309567850025224742473688279350905256907670910736307764149534773691145259541994545629627387786621660626442644036863120382680503284298818352783558484646577695920523616372183585313616863105581459465523773677315307290755398693918059152756318633966006189697088257819310079676019762555421640873613906528415445702847468637073980393455299519034703432019229556262808784257047303646167299057651754373878842138005968677993622352232609765672962993270596200916648979700808283987712683817079654771776578421871100054239517998638954278684536752058134045797946238270755154885905739074324198113606766605352142400444508757173928594943587590712175501099381569707287700101779150622115747733940755214899067746027646933664610089500446503595056608461911023215435457911016915903784202741049043245717456447536191283798005783801704981451704861620219892477269401914779344285497249639128963032580304868993352049140156026896434712558644187066190179185012232307729426791819243855964762552376947362564576394216452523238477247619687597477168975495930601161910993178403705656166504348963578359280326165177088889004338781572569708305132213746402860985311150831171726808101391223423088225407499235783657557938793445156039122187126462566538850074183557573832112674611865441916440662755664660725128916999790738295780260185114604214189712911288214372756362448151606343628700136706772871364529095396003254337255854986656771433897936467551841855556780587551786724147516109674676023536371411811971036267031731466233541827658270452382278099830429336393445659953359595488254074272329325044626850980808266424252912563833243499922688655254290243085635955091373507149104706386958369467337422538317803946863829941388484620527364812014140969262463720117241273748850291617698609008575920407233965375348721696383405862655928493199349704920858945148822018392326093240996416288571463288035396848931209537946108929981134120783388404275630310388574524636063563092716983783085430685304634550748375223683616381857608127224743130919136325200946898850043469472649841596531101291227925351072049632166864286429077282805466036137296459760446344945506749056127380711136866933719595411719392980083876081153111467338827941526866248994460966045978684716028618013208519430052967501135575652357106386105253527416997726444441578560814102117688111168232060263650288111609434713237328053646363598216588871663303201678888800366547514970292803558185953601850296935486501992509657125224128846796232689698506232126900311336504472113096639887408380785154774655338825939164455398480286188921830930948392308030451025548424955801803281731566546151455812959289789977628414027959291238760228617786421543715045585960678351661103416515394958561248985426565762821027724796042706622906054750170064336394929581328858288373600526475338006221328987542126853316507543634513239146732352407920253685786149663412284753580816815897265198725203610272842908957287044805765844250915754773707929178238100265310535084135172373583927720653572850417459089374878208003667079195113480315733299594651168544413400563229907690422777059530357129593283451994556887892344595682332435405046963427223145401366249708321776224568017161115241171039325225268393681906486962097582984476683845011617830248160511732772413515257989887524750402580857933947750290096417410953419343091509086591936709766976810421777943938723193165161124595036676491220594010831561220823261090353507031335204735012681493815105938481625771503327118189343928593021231646235265085004646349539117127914134376464631342882600658916854566268471462576818355563240946959632331463654150717558273384499955466542510728683355501091163022341453950372221426050281404474033889520675888792778348501403013438343389056307618161805302288081441038876614588600785130124753033697832938956865580863122326535151014041569292005817894863292035788904104905865324790188331315494707065088273635387928073115134905379469907038188994470291736785322010634851357770905977720563718072243008248732454044302635088264964134427582056907788986495054839385994958000411639216580469059422510887711614331442393312443997309257356169830770516015343611757934511593252660617043013047618481756690107808844122468731561837873831229074534831437930293550729932357574661140098453060805635631932126693776065326243045251540102784361943986036832159539556456896243512972870603431755786795900172335427843604584739711357641920617727040424143150093839848143287729075076377890761589905874401171928409044204559946593296167128436063178577905534947513509531568232919231506520755427702103720951509542473636258899388268127279973586797927515291869496749736751597771600416759340833716763634794432772188011753819842775905107111406236297263754700162985493848974371132475869895379370212971639720368310097176109314110585925552003558002770433162732276632985723747472416033748865114370342172669166200953265117426862741941054004291185596930542104600821262511158218456078182531452824298875873118502662268312034891114247461016640280093933315959340626291020017129610249046741433191160357340576252039815070745343153845511157099970126654588938044698382963136797495608086682906481792172931557262632478527950281064810039833958890573086424817095373094672429867100312878559930865695741277621175555583887059867885512175682965270382954097433455947819941150893624822601983242373639821024531866014535644576471797452952328417603908863296285092725905600600699695106822990295173835091863586796417830290850000722739731848755251387789323458022506904701679063302010140724511724985264573383801718827805573108932409441063799087569490429941309901217735683862810442919508809106195081623630936717719403099919088235588862915808929238417122240498588106005366813157768280152589938581647232189483638924970127774437691762145465195320485212740120766926020056257589987305243939988549603001086983017771244660587271517062079162033505675815057117965493170899653387463341065645601738017950999025446127284478925548810647177802423498182002439980768769481370798124450588067556146851029300410762540654481373479625615805807770266418227567004935787323903043228794201501724285034961424134841965366141132289679040997712113543855753535663095787858793150975269721493439264942114019902968480787259431161183287548335050263112680683304576274210808254284231510523004446556976003368675314460288594672727615916931047805673088260035453216898151492827251613796211130626371274489396118450019671781583174995611420367766707847228570183305679855770438898595176667307222933706490924565601403594394322923136033667943882509353284076945209509236546707661155641768414705093821671377062848126181327716478630914063314559458447204696803737156852230534409169732369327377695331586590879135949921576737882130346683971436945414516964696529520757865868531894839706048211544570800651627818592233261912571400294205645561174344679376480401146086336966105659272037919457618382829491190164189128604258098664612500576625884663513452472788799867818315513988175334452293247118718015338620038179463591518463546581370026138342724089146662633479514747267747502081665464938299807176736196711920206458842981774971671603004908581410697808661620376915520639958824661055735108451553079932161201209706371239942883114312815979089536388637235904009028276823713703245609432267548002519462791072047380186908014249846153509893740824952928426414779506299767417252649777501706353652984984638249336588613353574590304906654667207115238415353656175133844468448381693275066594949481437082617483117444528095600323728753624906614867000839869131369172140621148106013266397757952914856601521397611620938597102320016980802367532176049927329164503353551159621719229702627071566296756394220300511129823713856281960207275670644915107455734971205207973347952502439422572847104448990171230730245135801316131718726024776956811640231652885474806110622433281660709468056716851493985695826236316901586057798446997583452698602840886883699000240143874267156068658610816736105889736923478540188099918971535642447305708049821724374904343922558801884242615751381228898166123072368992319740643088900318931621098866484305240377631125799114389147765230795181270545580272667193338981145018818748359585318522747818710751519957816095041295349307260573279979889174342063857379071370925544244948072299697522592774908549996409120859636043269893748620219507205128275806505525886624375345847752813418777641154571855626098158909511251239624065582745404955920315501469039822607810323170791721960245373269207848917010895238881403808445307946864209911667445644128322539754280266316725228005648491434697161320060385809523120863512455755560919574007006543141682520487467570051542320420328572359868580496440343619906481311303972200972922776609488788014187084961079450561799285244864753827149649883189981658074604323269113549609635450359793051765351692079259389306845628319336249215176986048013677429496654089048581668449714343737530915588019016386112922300512737230251767297554140785571014987349327650032195673222794347805446176196752605084644485827023173396186228226968625439349861814510651036462907677102878126399465553616151272405690651611346101411998163740336622746861892147126963510512234159574446157556315188009092308900375180171470241038415573644176813216837713373827745904757861547922899683414384002965609262912436233135027996540372906637792164856895683790715028207295768458646947856935596109397207779464597871641621900829766121554854976259494101006178073721678780940786622306651843035682701802819560209287032979977668891604086332726910491728187852140528298241788759139927807912463589745016068944211322006450558424975958307862262939565784874433158437719220485344999804697683936000699944644458694354001265605155242612240518228453111684327218782213883086199415624263837955695571667157628696087952647697093117460519303192610504125782274735273670596073534718606327920655673391127254763090319114633727819854767221683519990846004720005105677989539822743658625880375308825895541573866125897345908744977694479587831906627887497429297083897814465741931467482439677955786855982776690662053295967696653334329981617580551886340529984183183537164519843957453583757233336986992237545932351187250342382242058523656751554464872638241159823171580420812760393192255243997754492929910245464217524384487669109259035066971046607643776093058412487269549769016491720905745834643323608887084910583381459677973116112838677981195302076928962691946948040182504795901405672022366882708242615814470894114223687254746520003689471864843469202416466079342269334607578243013566717071402709965925096566365156081784811688943110319645844237979065235558425807107724195346691388642689784137922300883030175883639184779326692421389305017746163310444820632388339504360118623725382411696471282852983009030202338442301200338542702348437602233725089303896027341301723239415821096522862739819700184430640670180693866064145697447778121507062061261005379289110901544606450178131138348792110596838081015928451807458063388488191971240350922743691192439182358539630123729666810237611273337816414010446039741851962454386859717304580107955425123468363798873717179396611958755710681836080443456440947735875139548975929953359909507484991798521523324769778676003325108767508925088251958977011371322172987229182716773544141481064171200512131932148690384760595372753180086910609327528477851738045870622967113843138790172328320153759647723246576893449730711078301190561312088210490146853725907520878344462794039719947461753088574744211797639838563545880762089559475425748140225125623921758368957373351099438581467376917292999024221298421925132871967578236430095860881660316992832670931209924001590705008719897878074983360639501272451714522206240813725860706508885440894474421765025729153635141143747927611930446634713097550567677167594079101199362633621630036422364487896425661567123697013650146588126250539145494553788059845353435034181117854965274870693083723738861585345289548011431015681021626126426747742007347058073134421506164736709678352554974678016532699087380711769565228263484067180649945794869073772902701929708906054334267177785140651307788328303469813627316474974733362046113915573873478346372127230482745671946631481479113136264004207985422548878831593637729923947516552805140895334181705142430293535224340722599770117191498965189442904819284399633383557611213604357686887228498777880091255687329147546946588447714679946727791429456851508060559482064164348517053073280963437157964751373127437626636635492294502090077794777707492209149139309826588919656811426773255768759413364704796522580328294325601352663168164237219154117773121084168203967929149906797760925012815530704094676939770168648174844615271117849813908558840075356289413320460315090106853111349140752555070439704907093796109452024289199520767875907595756970683356808998040126205962014005596449749446809063498268014702846471748641199396895981348557657890093919438986804896801950617687801079390631488203915619959235711266898989733786710329109318844413595813801332321609722810143416466019683180482651414061683581407961811964876695931534051795745641441508480783199864266141638839764718544818192186076346734655472570878336048261065756619819193300879242452878663731440226360706424052768038826662774564988148310850468660447444153729435280289523229970031531120555711221461077749347629433189506832799285929798250340635319654862367621311268310518722986925881282947118373941525406096495210748374233397769265517594015192053118874212214843693141796667326247542970515796247453734601216456826871047654518858934599806276587731642213031502328736040514371549767859186493240161555301042205006377551408710711249533143944632798167651077700434454894160509047614318047411577067720454565459423837667477783593109991221724181106399329628301743682009833461123516277707753967918425311836254091813635836845390820396629593505069495314850279718711621118525288916131538031374443600296149229877227246231942879531207941614921841539045954260879578885494663198447870898144162326868372137618849283610922619539284817645031822780530057495130076606291434353357508346141853409206541694556588914062112984972333175270866436741488732341839814534264746246998815789913289339388828324968981000677202681962436828699826073281880550938267942370181940179319301426028693858147935441661970732171934749824155900524328450003221402699656043256473124737215733252620164296106141026851675953135806693897206806784997084853695247778682233822666824428545141267873592231615895988504355467704605703174346062898924541288259688095713369679290207381967399635939930264120757066722550592941205757745249161152897231353163387427744582798391313824491917409068907149332408323718930410536225138315816642760341799917956213281143108593523353076554128095307306702982323552076715264522927315451437156053127977439532139549030951124891899102838137192733806761911212310573073445572665126012333559855929129605952800273801917691052095328466308689005494763829040613998101842068809316152322627577657268232476800380172477604232356436066160292880038678476105907568513228595227255998530966878898661195455255985067932682473525674518226504912696902819253651123023853007569235640777188010017492290674346712078887230201844309415094885036322282141269957274616992270413418805879509441537202186222488659020425391577110791898673677352587846336497927393941241444512920214549907982561368153453391954671465849384560128814477291390263599445403918368181153161253444457430742303858745480947095458341956601063686791736444552153054114427623107323477656292006842472302456239474830178875283880012998425150422443669739224737577094948226980833549966068821435578979734648334100941068653905819557252433402160304534534417991350939922767855401382397937009360978795635740668398342660789873004731449786469257666824232123462977532536880976740198493606170519882684975252446149659923230382715796795495568274126430487228459443729211455458905580224673693850934184524679012253659013834022002955561271800217354062028158962467818399835497277469616141475704214814105392641194553679406330123441677860060269012524431788189518888088351353276299893897088301575433545553022654919564021341352898046542239139876048721977774654901487772023789183061064763287846352017501738172142522678400802378989468564206797530129986703249470317225898021274477050758328426298520615921761706492140878415745454275081722538513762555369239330742081042763121099934104518991844112820523236581741190743071481263510270524739001738099944986685654363236863006205784771227376516666266086460281016791503016546469668260662102547571509941024642392400622897388204901403649620250313367417007995883795640242926646633156008955612374019542521564561934197721216671569953273933163923996038045358467720971546296377580794970280555264860461596907274210843748304304165305856335148952103001790442080132537886556811920004685436720128559419558196758025147410389684418080977597614001745978380390178811581154962495891811826894253738578852830311341937529780242752590092235094020407884762282578644550847797054091477491386204395715004421723047436870019914145638210010700269420970308410632875909340201287328164691062501631123492327991817522188518239250414206485951836415117000789592503258358919127059199064214805087174360421855830733743015563845972820320787917935990751623786173942988446708689236168224172408605912525526968800732239054094440045994572269935783338608579410735575118382772110816859661285152599819163379348572689902695165301726621494921791679715487958603152913957663676084409405381621644734946815919252644328450406586095496532241493249821184141091281810370090645663283240001268104958730724491024356228512300759935479314994577876995508111908060970847965752191655561603639334631444898163959599635651400328337419814091903583760445815538757418215899325421423121856345323281231835179935132140344004655490400190069735095898281476406618812100311146827371727307474027790817435533864275074154919579315700913974827092982308822684911033554707912225044106375744971052958689491421020928816695680706033423565780575461781280725640760262413035095035441572864322698385636122498385097598570825119225792175876870489221645187549831660836969661304317404162255754503686858585957524604239349836675312382305638313818820369274385963569302207962995004385293494584405767524809286001284664132272938034097175780231461794076976192449648780604599391665250420063712043343388426412280367577207028690885897860394892543283716423663871254838336244275062928973980150097976564166557617258754145849021315665283479591717827133004009402087806569393664412267971640522901440465702752239405920156236033899901730070653469391415431653490685714467148961537255260905468991916057066374648619367242113481544873168673463951039235170111124578090216998817731184267900780734685113888242607304885005289422556000942225888168098158021813898542655129570197493615240504327069225234335850067636121387145445471429468462063088423857560267600775654210318900869013153783454458458496233207627923143999394109326166994280622111414874724064923039537147083431757811480568010304179014223453596188865508823000361741022512622098639295967169734212371574807089511404481508101193405506170116474725150118004766608528226236226848624757009699252179254685284136756280888745629637345384713028180665526911938873405695137950021803678902992708243288004124908623766700608428668451559119653184759231945567239496194936245956342509589206555122704750174521775668229127590683289765332960485003769737327413989430534896471115681731129775558065961269927847519450874418887000199434328080113715614520151685743870876631734749269837730147996413105756813100546141502209531696458093822491235187318917750711962011355509345983006297503393677026384153178576474154962259360992740221272623295683022370296171101024204251100093100157515162121198405339090146027125255065457472341362424311511951481646367966761325899653725338865467984517237573888392758345769314289779482633668743374030987401715469155349749451665315966019852379726254865109188013461522115843887785760002782278670236080154129093846067586349612419102213843996548146075879460242474288752451202492863982918716321712843598432993662823890558800104004825392606613036604180039813814964499527018474089529778251673208213312507122156308742289328259819524586454852422039430699090369968595996555925940992963418176553781716062153443183275723635592638286425633962229491401702624906918746793240769285488462317825731445544564855936339251248887620830155716640446853619615322146458849170313280433913047025290104575731578507702544532594240479193517494872962502806778377564999447201172988238696829870476547287044499689141077186792882283534026443068329004324580453429913135179856685027923810399858082845358470171376116609185295777695939711696017980847900890632214729324408913817506851428960319936170086355768203520325767141439044774342231691239546314806654025957324028807124709393720319475406773610112028904647868795542128171959435584757348494754975015743955117402064930668388722303874013255229897016036215747803743993427651030706382874070582841977933605001706307833707677964994406001471879398083131403487964150688015922857964164051889257685663164971974520697518520657962831313582469262946595897857900718335313986295519693325376918939333023430795515456273146812458193554597173811025686403570002242147708481262011008656058913618627376779095558727767238314440500289465865896528652561404084394047026270075505859398510400884873633140957970055792374507291818998313354524580535473655852487638394564288567830162411522530138460505095112508225980527396503299865845156675014711555830658485169795362576678262964432921233637454962202946877063514519134557731332989254877459442185975147005879210309485050001549554260673283291193636702368919993724238069073814768078647515329837138266906188921085234048929231966089431955060070387637201843847356643814593420200039810661117774520184270777964955209450814719909187689699218486573596612827864696225828058536413730543560703901779017596211916474552430857381668457640328716363701531724313479319700475923099651639043137903241261104336358839652878650336048492221551312534743968434498566689353774328281900683794849678698184005976519212859871132379508031631552294824936870602582477025252977007456287452408492773469574582608374226467282980321060370430313304682475137742987641027075967271897807326634023115508885362345770040311189507747443908568566225967583883157172877280979428695638749650716415077379281226696796460216479185707257786050745149095987040326716850845350979852228959103063940540131674642279977694797487285346439731314768942604617455525412501978033503513895371006972820498438700869742315426699095797525941811556883886706270437052921128443204391762497671425133268391613611033053003226839563439716670249196927864452002986331729559457960337491743570287593052988639942484705754486644320857515124559175327462924546617151877901658273253943090633531896721962086035300162901182613706128156018204024403004590867957824333258357817376371524982103204187264787422716955796096458521175586256768136243758447717085645142459020780915391102020668088089554052788938522071736257813901795971288132824997296110398700308493388481035356065761493914962597048109274166921597991913023275107546531273932766001320912271661625642322206868765244933931014618933094274788843896016395724790162749205548435695423822258103465510847733644147439336671519598814108171327712074036817732123183841668617779395533081093322283069130465074316504624269527635918787307017222997868645840270279954645684377914566535173927160768524862559486357583432839091164061006909945387656042765724434079508272253496845700261347191738413464264865187677136947864647494201742437662179267389096775068633743974203554645623760367810577910253470659813322843111002391139671099476055384096678935209542415238501267112723083277538292828839669061938415609941952363866996956253892353183160565330531374286750945646714944409021763460502696638601382015275553014715362468833027872467339915434157855647936638372346820507940851243814876045314599214274035199642623754364275247333433841885701505789614942271087113601642848066018491482986986293930056079805261716967403619130383742828208905413347423265872093998338072147471241396227414761247569259834759634190897570826871709094724007892390571916530098686114279753429271066784498222562480496271365425071630800547155459742911218196860653465238214635150497204437358860816235763820280589280234600515511146035055186188140939759515650770568435956615198493074575017040009828539240875956923889445533493326567261883499409673011065155773706198830248997459892537217083118533901394200983277775362865033950494021131778632763253048341985686939793262109752479768178042561520869710273802412076867181270864368921128929375734769970424160964207925598728674690671831014519363768940297867561777136316768966151873002933093131593545119766332467116915363144966116360797291776529869822657485957315175821066833926957797203235310989696062693690213355484386910739715250996241435421091056273292344954212583316599802594318976553030349050522374920653677340424564298939877718303447779694611881535476498712622965950555257801140657691470610538833243003501834635055143938107774408232372917098215949921522165287297252909619145783031501119995343861096387220778073161710150544086770372351460538960164830086126302492415057723728227139009935165935543907492878723056509235439504295100839676036454692693938027445390861062148412464843237017067875366188795224864482888549799211402466191553980685855905042116383069684521483950725342449453871667558493325772849226284785390205135471626757165363455832836296023822433317951916597128273525416576571382765608367349670268544531131182065714553031007753418436841857380158021378029222999278223920835230054016161576650182127579304837211087804579818536908020219145481129379294275474377095665653413869265309370732019650249489323059725155009947565480099423534676207476430329457694794183076684242368979924094531813707482560765134658545132348216398074588452908376520817492584118768615110748830258590573409955483994563928389796953225521318819179037943242715119504568835535476548670186965447900260556699520072239872383204254368213259041620985296807982897147538873564974465929287803543020776846678191948998159197611322296661196227421214370239031151665146136314514993196910981114170750267619653173891716191555573270710990413397633642249224850043040917301971144844734944147687011153731418729518406593405093253206125385695608097417162508909279454405789778119359979397452703470998384264878824143304717035032503548423857278225412582560129278376659312836611753140473730284078534655025379376981344954795592930599604048327994940382051322520101997838602686897741784244433556753994742362957768473319705504997723860244627982098569088084030501423483156064587117853610470436900617364401683179789912647197755122264199013280696763706745218443186901102664143179472825576322077713817713553868902720713455077661939245591699643417325315545351086117030448033848199493173341075425183346066623980127224524888582657859608910515950296974754329196392665232513604625012614509167356061925948626253128362408443410650253084317995164089996400241368980239816635581396132268300839982079338427877428755669254441220576316788142504221617302724532588200254168384278433695372962485400303116413068308999073956401488731113081801395961166595846129821139936632949208067219193237524480223679133394154129944838551343363239391555776846445175854450103177282407869962671562792236990535408906721591467288799253692621160357729566503106697081059598469780999145598618832284810964243960847382889430300486344659320328360810745219204325647476751330429420565230776264466748744584484449147078060201270870463994731155524733281460605358413561872820664762989970281595445768205687976076820793483842421763983576372146057030351505490133442391627323532344141152537784895754743263496378407139706438396441982479859181051693961424141414598075390013340465219798716379232709087951047378053115764695471758657973044762276336521148355036715595031078019781976006946696877753390931719041215597112163879564317354947921590670953125705413543794891075867578976331422315038712799692730412808949019336682049494927030542262376391825319157916616414971278218713545989018754102638629723149953794707019108509193192632589737943761858905653019886812272846427032700937131574638601060333379572704685115790641074475321483012347696622226223895140547488778959294108540276895819574586854898635598631226974309821326567774001609480432642572945903500413596187911737526587655217404691230922583761522786452557444612400377848489674818977567753682666391523188996459726766615071621419694351911426803369036259587803757629014851620730357500914670706453061425234755805325902366470705963259430300929290857821239010174267280156953147808391472854768476671889729833214933045016109041564200029615199288059210429863898066543834853324334726836158259558270256825244675912237175045928786971426651378202658140040092276088036551019567669657284882708258241631538792606648728341920126100629540008006024712120288667529720119202950846491328955912223727579373103514452237432363792780848969718049789809381501149414064137587357469157763518728768219004082378539577714835982057504470413516964108660867871445501187532530375248078930402595218351273592122470278277273574008376566344362878992747780200836557894082925153629971741869547798251424309953916659254396937074698266840780616127605014129028493324302341992215241745913624898027282906783628052890406651033540780139486957321960571326096106496070996463426927766237467593537620981131061550020086166177740845382065334242347516447276684389786816132968742164461186573400164881658454840765141818794014372505902326703957141872063897835694261639651675977617735224900086848175450806169416359767860244656060767512582773125922206376893588322385782918250051919942753182278164564676162421025020182361031064435806501681427664356166326870532145848179084760771997320052639776878032487157858374264205037555357221169410555782879499632803170896839034863090928691441413821857145679335509947694419686763249363071200169343782003812068062629027354158650584392003814200889254644313156199963839934531849291511959457365015621845976709956537694485797755102916643568763396595410516131512845774980606534391591834245502578444252075683549489310161467873432907362922271542803763445086677241571947246673132781282935415577568122792195697575917525134136420260200431877940965497452717041922239500494424783615222110116456584335958242586938225326877899435798009617376542592664113728246233418414247657395078205218973562849171230043942088179903085541581682554727420092860242589734924285684618498468650836947603853417978960862128352314608009949526769699596606578856003532544328850421052682944568367310283060878332831364674000111747174179952893490104041823438079093880941548263752008147921497654375317560522915454623435508363835076257117851103316417714893768751068921037591250397067780071438873038912913553306244650892245665605187949328945609532244624152105805359854625519073034775973577772465793153940059476726809781261698496027925563058337584982483347967606967194677592031396001736925966730863473159301907812823051846984205023417290521646964118079476629140952304508894729385049149482357549874863480628680205639515124902378595429152810817163093890218275171986107782364829887374487376205931176964589090511824539516747948353312961832931430277203357411900908344734133144662274707537328683762207060199847079185622045557226045700076568556372487175084862206214503409634746984767998999430446514084148503335102509989954043912069354693281881853741005607514707872051829827475727343274388673945800414663192817528297330073827600772037985762331649887566541408085555834452017107794694980966722664701923574750075225260776386254410977215433248808351213120456237784979152108016457894577215524175940131623530827990195012988417921763296501879607954450722535342715284062053654514894423836738759395549974301403753749821651118180361282495465548240411058082346072522042266857563235692195856529066290471194910641506389856061638363661297369849328381282471145138809532813212278998132462817710991410064652482969456305177997560763105117066462814333625610285622659760513420467103742589145610961334359821325568729118340368673341328627207495316511964160646517357281208337752051309208548256310532906213576183295233291401788768694855428908668053326560303959741061209852814944371969252916185435771485877224995140733607604534398500362659654687916994705539938750698119873272926367747792428014349143302554290192576694265234373642395406255393800263622558875218761169482801532791249578630256671353953105400895166277653218700239725904138828112274765591177218200176444144816440514608552960093629218380144542742703341538919439238844422500285953481852837073226196892220290077782200124160639566954639121186638241079268001909448893217431592115271989927672997129612479890525896718527273843782433689360497911450706458863538594778076133655528653513414913250847065337259927111122940488438275712467490168207001524189349761616130877659933260147870057014072941708067911077378155604887471693982756521371684404575349588290035503348738986855552502192441387581564432747697275327479445061607500256111563498321473166093671314399035871874622425044837896247170510300443315927371749231568702331194326028722374962471511573994961639109792182225453674349886159496716523472923167883750009641372120882338954617567173567054045050201206313835100000091713729556370896788279696352513807435357493779565126000111688404673898995105656098689151254175119880921536307766284695516407542725302792686164745567177344135466769422908854504660784352449649885236672556148207274998191930167317585910547162691690742306039504168391390605088111940326159310944947561234790473101389348616930427895569828818265536278399274272061462919053361791293353393899174305824928177642314772672983052763406852268192705851908083906729083423728771396866139812264292747214229455957974750890026835719465734018276231169967346867713956144920050735644676022630042072202323166409739097350941221350573506770512600175809294175794231468724625738395088201636333034488248093544509034107887044580590907222430725330656613852898154087157296493861573344795934992881597633143121405897422082765311206542357901587563226759224671571538483086339891889405437203903906436244895213794079544040887496452960638194572556625881110534888658885539635447544069505130790580367743816778149335047054164537486125289721144341850363078210802538924099379481127081640128358707758613769337039792054146820644218739119804676198575435653039659746966374593554838867985705679404793571296561258238878477669383945122019673346249759666574488378071186561812833173897116716838453818359019768083553500699097165155967007055436657094080491301493817487502848461375395128712043988830072915197111271169654100446718874080563955667726100961472475729974325933098625499701246196490245995919043861244400075208437469579137296750711524036806438201551946454121037735895061538300808562236242078510687840368923091251099199004888529562996675133040697353636480510349644379067902286580586069661645726328131599107885071964422845937025579242934938420321525564458835944243436511768231871322332891966179981250614124571372610476164974377153558304381151779638554320369618613417327832944467428659855812222943387733385329273004895217108375927624778950271885806125255458546598937276278074334638249771150658454827583872468585257844202657326514714343164699930090928528742605045794201560110244676780258171462100716144136127370790406178065170553100714637249193689781837480142878278455051984776034248826698150973293647258068145022023254993539890031483558157308721005847799346127549987927567871105760394943909732286395317115572203647055144633912772365149455160987513982900558398685477246620419112309779960359904486945441951627085693428514165438032002916618402295348201265524025021056726712023035324751811335809798620638067173277942584324930292504311444930613286348222512572994316626512703182950944423690322944728199604132663246864469251400054367976795852585485319096150555469048859178633035605610353152319998382479190682922009764457933053494520893682695281702487570030798361848264975086859545906922876151589730941615700715743341699334893161591585214424267186911152337034958858953128265459189235502634780390430423623259706905739645830576760350414042838405088222830719511517579924394726210874576919864307921271107131001854012600734377327293190516359841717825053579070431027504366022021680530757412855151081599530417999437520581069089152713494713076369923582361209838191252924477363884258244460471212667318027204172174294806111491492540411805461260990476634228460380973696033896753691236535627762698151330317757181341535222505620855310569082070675902356237921163189827150289603553757141209283963766875796958595687712620885671932448873067182979963727799983094498048752717490616685492567748379945516637430121375178333663748916553656034574087316699875747742469026238556189101527869216058342248020853542086750812224635425732916193087193862597719809928114668015222159395462730811623686282259628644033098587171620919726545523344493992281700637315520601362146957929921727748918618097370114293218832977817308142976807314967584891487650226880035736065649501159414886144886805527822252902929866869780451425296245297938167577899217124830590728369098362796070099251558649171415865986381479134622550810835434214140427027227493394114535672140222263779115598245672194415015552427835869589607167716382461100543890007205119127489201706843389077594842722637468121017855148387373326410132214010258487358028738216860686230770382543127095018364139654112161309029189021470356616800928318051859764765329733096791035587845012931774313917205455581783464323652560614454522443602198242604344618277224169130208038755255285798996002349637844091790813216361606477406078480346696266870055662692005741472416779070204646197750680857677902050629829039792865658161232035938173016049286153611118363472376380277735059962601780810703766798198694201726641883981356284998741346210230604323343403207873062728038334130882317042541473444879413896651959343666738307606001566351551918813745914232949334737662135657943346214023273363535945554616495602043786563949663378179612166385123749100531979625777466135203146893937367051215842482175251276174401102276859202807221837461231284844505423909107925938160046084111331447136732800059080338311973418816869699904984694879101663779942597347883254655433860449486187328973734735471886908512363957190963268109899788852565807994275566883030449557144836426432133137942682818994792262289145595810488985718702554362191347854762737693545694486703656796456602353642186704426143897103688179529356119489995890423877729638423774249095692402339826412585938836050277580336259189289761650890150830579151823350419930926119398873447393472410551175783673611449900387709534688289910288679670312415937162920978523144026428418862842876418964903599731789189678214302047657374574573915916046790197804959801798472289471923031397299565145925270236919113198282549341322949554224958973244016334043560756610495549090748810257925432422442181019487559065550694181765486284654627438932238400922926622043809390504410621776540040954293889813528201612469988708502606198708888766792333083091959085731171721484927487800100426145164497310344023816175876387415474787646678543421286711309092986436545434048894427934800036293818404564743123486830383720042985622379324804902601604184757399189009525181356068854478735528828257828952208330584256385144577424202484956323645460493422315873228007712035421459123972540282160367912736168830250203891286448805125364495479767340999370690610665787891267587678168477546670105579107860766200818941539654084254602532874298080878363366898117183539392505788327615843459333742398126917340936302874952536285484596327923003253549572878581063667551610501709892074764755842267729838273580599654559168366398731611460224072322491990183182721451718625273212107904851880190349488140069497520704784564774771541525015061230729109945788856471969639498429727141856653996039396811199060344014671108969151128726166212932820075499764716989169447194665138051890750174382758900669436938956709112698007862987881041928032507227676534892744040421750874955101495812938633537837827147478324551619218648117978912244398397018793874278828526109618338753059216124145930759642446435471426323575246357029788603005507550272942720520180565629626182568469198502081654813904993390945471189590652258038446437332489809453388540826564763633774888175242351197218190705269249790098738947150560256686895938598952175403722214002615145280177522618022708214606227490490976895581303651404753438689326383616909194593616125887308627469480688453308549936349242241835525925697946121562004139917564265821312168999261662676816129623819812707435749165170980762398240232889913832266030734481629308058443282022814209319823087138668997653936850921733630211258667989714634479518049613111134268655243439405957364984132179434022130771496936066160097663163308486017958451345074216228335489964519232338490524952275421486456500828048809823957617105401650977446045486489457013555673897551333072185212071729244657391044133455925450206662966234733541834014301599658098934854273776247724839447334804849647902972185880267607446013767986511292586547130233936078315599073536583551530548940619551766775060200856859480812118548475446195870759560409174492291664055916535890938057727277478590679697929332785001595648659716513337277949032500215576222026139061892188989559186164441532161408495137891039786914374375861909298675834067072535817683910991994514933523366267059088093788532006756926153458848446896624833428157192411769891684743743941179569165318437694328966033262795830796374308526062419410951496378082365248277452668438206194250407750407087520971370673285649607514946481891169322489884688242939114988759831641701921048798561895156976147101766882169372240702678499055426336736594682597018850935883758573393540643594228418025234022482337551790250855702821136008899784120789254968446096551774392719190523284785520930894106405404537892345522331207742683191444071216483093001589746854751858578276557117448358517890307567572211695770391124070215281335750547318524224723852111752367489664809481474298556318433941402202694789260627530612076955844670325629160707472374048256140404819191412941212638544297579132503350193993109366867553875182706826100003503350565696250695747506612125985632671142860279080819837798235840154976351494280519858720095651761509491351946292485201659232342279012083317291718775865520891569836616611462919827339255532909090569039056315854753754341570295432304095778124951155882183600622969201179989825769261766463099030170419758979264271487239998525205790707511160148402254513053117168871462449493957860555841197499961157314603074163277361461318005803754225748584257000666874500031779710289063402493797861988928826804006904791711540067129980591226016169035621008201906832962763973532353364217566065740095172351673979572431323953585630155180871119896907473774425201832920902124263197196697586291191411036296927160707626678582509077750357829501302514147379345617490382871728192002027769442918028646731025527660456739259767642410713506845273974469003051939908968995173657273082863128921755646717881071151028498898990694271496095531870256036335185836145044686040449019615866437879399751081281719605313631033024293451883805394255564227066650743492297452022698712580789406213163946504181419672545067683292336745482812308654297730115424319236692763193326842749284706768941892699646921127005520611992458611685397770368696175987539716500406272865557591609515733648131911364131241734086008089967908276560838791282316424714586309891542674137977225744916032692540687157302144089187259012246520814124549841193862570408615872036083132410332992459438773909926501016779168752179215477543241549980505635766979132639815734326406720089007445965157231331757184336881399424597806180241003557634583271335716106244625668000182540369855627688854475058194994617868978323013404048186794880613634854633788747827755401800157220629048705909190193209777718201623214577123722791364680383626618701886714790955850080751138030537942592555343886237970343458351400774166077380882917182981736128157373796016180885768794390007046119136212604785446544250564535961314317495118244567013298806777027331647654207699968370731997244089912945862408630591832694846474639039579214024024822095888255233952227775862804672330564220226525222448710018665307159037793307678110337162157244250517848222413752817907999118480440191024284465296286901061074719710249834216969242196662777091760875797535943931551651983924288889032110320980994452197071442820846873000874528233585818684523378204940945458073785372169178412271218498990296838622617355871880762937817656605707048258025169499846575326197680583648358007514384128745310079674972445707455999191499532114609503157256606114285471159255034632707565881612349415307216973577344958291507829977982223393865646838983036286285151119693099255994716862763203963695537751900673971980147567876896858090362504293240899382962744293480342132662740408184858459769365060540246602016782046363534640967792535084522125133301677163903175048281418384132779510155678388458561270224070292654014628512270014779490050644914839709243994167105111026773615596040248306628240441834095743519058926005311391142386439420166901827976206279592709518963521545889852427820227532891582193475266491372216206814380228563911427753591303041684738869836614777277390031687941762652257664086491509010322914464268385435438201424142243167707427377110246160573490949888533416005911498548320521127586384411163340476109662898744686989161829153092212457042809338247200585045860363983830984293932178701006328494817975312577401592304994144890589806251853953470231844549151036915201312707468981439300232705285428829757189690326529369659039468696276723150944636099206176541848083628385454365185978337738793449134420804518836605400691611945158155987112400803820169814836504786243567506003978424890679630724286990955693924842425835390969361758043858550782354779706690601943540558877409393472084769898553350101572954327604091537221312881515395402999429124395065969752633061770772300216689332541381160224475616940291904361786509450688902381397848219799236780441233018187312548631458867956365710002950711517336266317741788707037594784324538786166069670804881384017440561526097608893826316991901655739762097778036864747500106153872443733387495616101739022546807923237997499209247633777598004585742905918835529419247906057647917639464866872510130789121612267067333954775832594945285873641894291350064634948401043162668695372545107246542717719783678775911866163917971863994959899710033956814596183914580283609128821549378975405772735783639317539464986373303195938604069936015224127425267096402032809675456208428703605285097648939792259714099594665565701597198667783106001282730500319295407966297281971145700101945433603122598932271270524521620770398092306747498019204210504763019914326513417318777161329773167393200036980751416963275620170391769930479117618565463418375220293937124721435435680591746643721134087104846924548588309804625266126453543214726342862872817205351499964117016696420922457769801957688699327533644227788045596379665073468305300942825666327537249745434741789595091181039636729729410523614630244809573297483641557004486967854872907354582087225227175704047282136273099045489489008282734703219533277595746418459506411722085271687274041366268164080360861411390762448351819696763042283700880305455689933578247214936110243358317614884791910684032062068429081701582894357989842523134705972540867433089858128483228570082533478349901445281115926801587941913570947657912719482023697412492358811345884894537226669902702199982330441549393557572704092256858333036672964349148095178254139234271072880329817679734976246698666494168450405136035910707026582811089129192115987166528767901070761709883565819717621124582930487444079141681442335769029454811915151535344931014403571225248492648306064087676996696188263036955781198463842926684114802262379488898738919634927689111765737505522082438965132170040243544316238770389907020731269652116272172448475853140659811403173974471479165517591029560956716921970848410001229154346947975070476836958695595074961478147462911742983217817870454295518576937593620292167258021618224113083574441875122312740473330034539763468780212915219334379408754935249222050610607352249722168315238777540154821907131766810496721076880974377159140216792185311733842255154660153818864366122096616984311623560435458713942344248328443686249160132643096199403709930104976348758929289107818368562560866541945806000273338848821126361972619893484165093508838425041016725129933076573564892755261348640674296550471348963788532696261516956349454387765121394268441446376359380853539930830968025920462800789800124815553295992983175279859522531150935212785064037930938167573377416376544563405175908429213426523382806577027790991236081272835830124660953904626543494258548969220746429702613931622040287270941490806516885761886789043782015880625657202904936810459405716048225152516969409714255021475809016454335471734707872754135777971824439386197307144511272560630410412147961151508728066199692212198444124183575995730307224269351637545137944355124986993506556619590433661748116921058365782342136389580110129267390952703629933928958369408713805438984342012892623619090058652145440797003513515544299687101177622245957088286102733666282091639836453465014505193434610042035505733577580540877349329133031997751731112450478088672668098530445827189820975660029957170364517924835925376258079068052150078682243072675974685568526518973166790605863187443462554162266326413386157202795505618276286224276268465206056167415558035308068875100159494526798498078523594365177919875400743010273861297373789559705506124843635504510638167568961542579170635818450775291815820394483024649077877168448985291783846421376938184348006552329736172710610304908981896131914569423239609700454340088646457567015845574900121006454709841580222767357096760772339957034801470495567455496534994536394155288352899849102192375773800856696587708850744906044552664442674300366206749288145329221040666272097808105627068307490553868513492522805973597320314270453372719659598211906187994342749321542099105322536719911853304480462436778467596071566992743157710754830250872543256034291825991396284258588836461482388997890001717122487781671779907904810154311249308792311219640508865767405172849171932322158041935782237954883753443787434474364288446200481583465217217687295474936255030569727991964336303767617953799421907322345264905032046270470959496054458421632162803126088581481159079021962978256812997935229261240683126134289282792735115781591249002618146883509250968011660538391785997450285897788732356898970166418577620299344543449965734921004309203435393431655836779716249598226811013193489118654035179612211954139505710133933397414919855753716275504882546670908983864720738705980547553500905014162808981871781194109868338667916975883867849079669101429265475591785186987833318041587509749614256481699012490148588404700848530477723892973470700865196858080561498274681765349666254849890011783776426878996304432321079565823232051014099193466589310208274950209182636567345299212138688379718556004871519994929860967524495864926846091479692039719021878212312968100291189271780623517485585193803349565810554036100888536190535383705492696978186080427843962785164415474459768256385205137825903690629612113793389974603090609173117112199495201431920903144020799919441357711629906326030943028176067114808469367209784464443562098235362323238538623583985373126310642358598345478839669287701463645159709750741042160242068507990862547812273511854050446800764703000823920828264832543279801806343382364473700336805241527996653285715521784470835619256256254351241628194595224257311767848551246836920938557156948084302892656527332117400734897081602765021641117666038107841519889312036625855945039706091929718287286631854692449371099877696888070023584962638094380180862424946857664663759198175316567373392159668391417481557483698071572412373356446453109586458004643532983655979687721805297597629286452411023583628470435628361175071923964985541542226643738152300710846326083981410174107772265301309646139596221677503498190114060557165671481521555233627523549774342971149105785967016445933541856258915447543005905046611930221512563619757760097393484667851900361134423699601855230571092302231630076036109585335357824922367530356629539907183188930148966704666605469770588039273381862307883993522042601624014331656585817938842693811945092191267359144480312495703114347406741376084545558397499164272574996360095220405792020359092825661594828340107686967459409049226555685186813518260569577980570465590198862507477793863138556494819637829847602653905183205925711492472594453658940545041226343287215560601575336950234628868277339074735557539576600081425157423807548865600774512582833322199156690561711820640147541877526263506799205161802740292864940072702954595181138774108738455389949811722666883420882427878485601629339705904568204545786425777619208545651249434743853635995710560466063747595267280405884445846518894079445447716328283608571785255676766691488658577134799212183529051270835929232608441293652288043317970996963320271788158902094423578618062816177293315166241974010550613972305971056717526458655597604172857692234027468094421297581095553955655919328478932437118216335301375699297780698275123556312721106898266792528676541933103378475377065701049142070695014008607241019355799970839675960281461117261826314404537889768770350523320944386371295750315684539776215702057393295000137174787118382308439921101465651406036264208424374481441468617431639505888839000001236299577348223448292870394559955409178832367544174247423548621595252440689923983078113730095707855138196087152446342697988605307211080685015589233202788770210775435845575832807741144481742782403770162996322481871829200563368808073568277536996086624836060631681885504821482014018962585635118069300554369670192042669788875231591841885681124563868889337550260784200867136279203299851283261318667974731806562491703435178064549399028021631632026683291537041173517707617288777256938278814778068016660230616254462278339189244823465067287110362038891501884989583097727043793849268329854062461735725922519031872818060594730889998089692083540854747577844452991246202444320670889617519033786502375742163885849623998648717711628264444258742713014283024559301712932324352870801888761303277018993387453809261673356997050857467592737074311768401700776856296700198091110189653784936312851202034704438008094177243237000152746274073814549361271527375259147174534065798216060981410753589907588096837947377753407276270676409327627554196802715553285764950528893577889168072124527025791853985027585413074361636434141376148471087076196478750087084404027033488565703470463237276871095767214324134198901671592352493230741068283895981893182354450011379028299727769885679844424388582565272291116178187564368134658412681214003663310672132430705455930218728079524807017698556852221824054209624245601732529963062894432788288869556604387482113055021269964962010389639280970913443626407567409515377056320414263172040913798825829093854592225165180095619980428500492363981184751382784323513807712241257183468563401013455977303808684050181358401801871610902676754705826051048985815743053981499062969012226843077519216369305358107291493801408502864262733352220281634161045718766324272166134475847962251272660098532818143307284332807295810715711478847661456302773939388995849578412301620859767783476022765569687467931044849126036490829458221839251910447647087731166244031770201682048178929319246230021528612067415386266017173704670054081337962788155078907953642952940348453275610995253119747885146418107541196783490244837358595191201135047277375897368983897587054807206385516587597566186943232875558422896816967853272189309970238239077694877173668119527623276534056734207990294692746642655046543954943504467929110426843803544761514054633765200941144473474094179479378152910561663198478083582149279499811788760812631751447060392543726170287064413342495679493120760329787904923228908527111455308437456782274475776319178118482389826214895547605555174811859772278716383174684410741056126827266326883880253551331589038813008306006971704642028370119753279195760618446094148800463626934929144929507216332672962402701997901765491570125519593001382874036415127099123619426872582562688516208785315385142481461321094494485118623549805500637748639204006563839661847360167732900970927477304005680465603032031595591209531555353932113171872136422011892641874854164885556684945433792424922069380047679144021457792738609807693969037946338240276478225241954752213726982810433885562561934389930572201592794112257914758430173193823625310157578354350498239819253987871083722377236883040526286849627601260824756056007967142461545884199646912196413007438065900085118396495057251011130652381761636513800123891381150789954881615418849015003790369743395681222122567518945716061112482871750106189096388455520193820650333587706981128564720997625755189001076556919344017930463995530041449256990662674645259631226725707235584061110703364920221101803629847328833022931963595696518443640431636401213415412222689777816807437913689365336106638070833452448154356169430266175595392506846826223814869771322459920043286011768515276834691240410885716286435199829552796835023922813957611449971335384751056841871024896257882564968946560473500451505628742438697413203195599324177760757748554232822791946413271520567573667270989367739650248196388065084446012013871358135360450432455779118308205339330058914091046842969285936933016733025291674589322000024362194632140406775021946327079214050545783244637827041124985405515743459256096835100182838003466219028524734214104353444792390857870685602924047207310178239613765469454326652941662238177973055279648354590076251095031640654589297001769161352743465753748904581937757249207151993379041773709055268376174378383155210897236830326909805569352145785727912063529504984585275466861930767876136979862251015787610586030681124155050019630638696825030461506831082530257761969803652401451510965155428144559578056682927515108078599008740166187629428306928087009630380103792580542108338927717702458745117047637968971164656819590443928874262763429178591110609994472673628408621620233021502368669918556916390150476609737360059147895900105149706376510553415775054315897795717163580752075587781534701705572261679182354355785977450001360450969982827949412379715427140642558455110874081017110841755551165828813969130524553107557539665827262939813588876818328569558243999229787105333832982417675346570822448931623989886857428521775265544340395749929866559374453001456952196990451220776810193176505851830703379904910573515001686141697354846862909861089207950458175225217016632843153336334352812247848960615970751868066021325961418058463488829295649831484665098925093948616433447152647049571020184479653716265787703524601987173693703193546590814092929703007803298659790778729581466453411782957696983654142789561898462269364170724303914484046678223172940595336386649663735058238374742475684752598564864813989616891105361442626367922537578584824369169271073899170254734113485573746854829090608677752570316089368863624628872289263589197937004333817586422788293250247648113053245018783894001336994365050477528834899579857922703565461941556287521772733063558313929209185794937114703203151208746850438102007693942287542768864946158767319024056173994519506442972365206759783865616746845686004234585658309108076411240671052234607898952167442782509435500831416690146885298191010963009161944783202890783150660401862633697688902622801623493773900378682166100563557295212158615507913395229891180943749687234448278915345671146299115350005869731907834855578820771017273681859400475518858481867868267898841117489833356720139548001247396076443147593114981875152223217939780311612242122122043684238732484250749140138591742215376425593022075228618277253235558607219154451277488786013110962631850205408669515876343077132361593261704561436333986334509768682495344132675095756921322573144921281225429312847403371228313590874656946257746809191975956525492554116909060747154792792182272266256465769659906136590148217842680324901909471531927047320353862766669573934131275840301749966417577368124206217046266791266200459434203523472649062776592121992755478094777655756032163543492734349773736365421269840704465997666578988852709634788142661488656651299322127683431071467220750009445325370373057569756418406998678977864809382163778085976245814352194499653327888405547362274599632745130657091874102882434794722415403289830329846709865579523524132718059753148141602320714166722137990542973661833796702235662231800716876381858247527852820025157785135969837208504632994879326380201917825032934326282878061977690248371088297123618919291578361269842072275741821842490634316759980638690287325377480384071648000314804241020308368252671447594723927166595667425821342361454779088463088905525520416785789672731869698958181072092593522953530964968245966172998170034084297939468384672247465941557263103338112628699444759171396902321012733782310935936031515126862697521336682504737854230196995796604254166746214105366656870440111545092089910267369134516007715980598016714737988405148806910765377514142681551011814112800673069174089344427703250121670002138668324265173351079139966685209128390891322963343371594500344884374149565103731588732908114097266425062250153092774882103083256467741613809860527233719562498940315304803433354948106700214599433045886786394582922860132001483309834637050040057663129113999886328506328060047975224037398792983396857298408625524859268330694363304066157314664932404011104499628214337869970899439471658467686254250055340940248863673474029908601854317902575925359921739276582248122910790272623581331205345382448085861483115052445373693160479959046195575983965587397925788706385332111075343205032669304257023244578691917246432885555781839236828896776247229268928847231241112559210371646059617947951352153639509168040243191972221454531640108374624615119589407072349780336501848095053529045007038790399089440010427446975241144286937235188997459167461324656541590136089120248961673896433479557265262649955952119532057014678332296337329438362927144488889855750135738190354233132366026618757986496433184575256216753012280005663240708627450943675811547044527229318767125664779280467904192593891786758461010046704700343410185793225374299838366081405792341296897840347066193704846278540069042456148510326053638631076928295925021142452673232837691445934370853812083103303689596122711927472806369416828246899652574948154810144171394556330385828092876268805272189237025730027166912459517922072194915159868696318698877032356873135730959511558420271042625242077531306398592576096298250185133495562004079072092454521061338401671285839968911951177630952393812186603225906254352221230943949924816383507206289858363458152406532589874898945289726320519548967361235539343011644818066968734941660130985562650347857252539577804145613880016901628014364255290834691247147109836487555968556681990825159047084011542812703652063814618011595728264310754372634696378755632655996282966612222174801600496736558827244867110074271976788071799575612607469530125185183301008210250605941359457904642530499013715534093735705093353090853746530094182194118991373922010256218521211913515607660050059715817709437802552360542986678900477241680106970157441779786516968701350474994206985762830370922273303075633643077500558112317618321965941142179845466976613374311843145646048215334424939338801331017675154821693131374441995775797935807739649968452909593424762400595396974196654865504638735167504890191615250162560074270999236986623005874727640523501519998182232190084051533390929729185483768861584201217165019786810737288079456416120689638394366118915041601943613154490750229117648340289205411431284436117428481929507619177961779102655033445245783903694624922608641970344923538380031109600446608039334249095346422493012202677286848445512674706595578350737481392317583741904878120819220207233132903985547218586921346562436397786373060978582850000051806634149203035717464196631918088434330930681317353994452389497517147217928849496788761978027463249742604673614429979459552117953512878501152070375308214518950537823825801201271495912295901219127826452205164529839999478278431889690497207637274567027893260573312424223484498656266331057514913363349305042618333720341684645943830773991498490449876357154624655469735609773532452570083308424038467090773541501129763653287882962582005171095053747114321432854823189732896952970399485224838545459176872253595366124734417918035942439967438202112585410283637980921909050231959797155546143961922844395792292507735307735176153421587636897808060687313113834647767386619520002971447395155646681022459757661832102131328199638617534080113811875771602801685235669605786410426040924042956957924081760038821970572950788618005191750306517869638553483735578830945734514244875110654289960744688481702233108088923424702924541455503869517041599258170102659456126231440217425518100667901173582896821022338897650048009334483380620375885269212404031209990456286141646905954592206612818504289274442884039480875575505545259000791757291130147446289195000996572937410434440967814901952147699412008639421036968916529888068752593576116551687626854425119105622370906971417803081639930148592076123569843737217469677727663824949563894085713161618297404952342772720138060648048598372684631964061752849093671683998681213247558051425071033739211687044779441440033714369198774733130759266997312868184614421864776410054007434934744425700732944319814186527861361703874877311830786950276757778549027444447761893222712404968710016285613894195989412932176020631452439304715069506110754651375878549158666431032776412320676099338430257659247865346425099511705391566105975529693388517781792958541962999039389370656891524470922695296744282759725360694539777911237010776045067445317445398335099693183489099339576409890688495225075327417498411141397555219761721752186754692895089015384939416508676618993661750110858981179937773559724329678750606353701319935156448286446452836878609465339056402472378819032708797930619257768853944922323594577248899323135580958287015167227242452069128476615217456059007319540824971885601075893681308817217667561028973316274517376821324130483604014437292854172567127932068090814603160448013728127350983925894216163767461605207810998923905758841950175084852932852992313518785339175657881741078934157315711511302973573353441332472575181502496136927061998785742287993158560547269023360367709287707329492140857558082910329815596729513637364843568996617867399293756889138764499711136898574019333004802561833201900975959396036973897813810189817185540063414531565349603191768710665707688859603526695836060674780786577778832892167317683545648708320641697653215981176552121040918483365866047295690853716363985565077102973979902409002765920203077692821397320041737439969867047745623246922062035541043829431031832344883972171514322997834806240792361040051940504883876586009109643488347900247544088542572133100671681579472575129795473883968645009464869365147394424743597255158230552196614843655342291424128896984947579316871213373299206358606568552769565599561561040555386895494653423063179865916297126440077507426572217652936353972151241679854949484774424128970162625621342724422579639075601444498653819553346983077576767460799448995529343493701498708628397943178474562261595770779867735015285557034790710091706395354543431702113685804568339339852574805748105542910524623887976792536820324472415194324168835273897114918755901279091131031990829463979463371810837120020288062113507905508677257543282378861711558712464006706303766497663061217212760510626750093474712470736690440330176346193032766731680113378429256776799144343357010986545281691010917959793166638501370736724215008364396789405597439946341046088541371233594887110025855299811138788670398432924499151230020921291263171171361524345528306578257567278672048147826088258818770612845552697280380879098188386504662251382641570105822846869677710805174315619006107797396275700516542558096923662077274526771333461594538589522361405854753522109807821320312834821604471161349712059981806281730542864896496093216304467073045347757966131158528360586931952303934516535818035026128170643344032650852200322323030843417373529189914147577452372579378312633812296811965945132168052158303244301277159103477676487226227823038501962884381585865499522555908543195256367276920955153294547631652522040564196447553206339337255056135004425480497440236739275363366557998922259064729601741094518827256453513874595222328869983585637429692537875457672193034519939821981331724122698283438473451144825725589125139962534094672343608299696538436692207008274480564342625943264209268226282285734026511941691084110444446229981383174908072271531516427938635121314571837761141223621986312664958401659083057667223226056096298341434723704148656810632881480216190771297411896064641548087728351956810765287684223374086311493098611847631962403525981484659898526166313817897142924821646480782090563082084538771276255920990630264301857488154215380820159160965443673144520620497968639383502104814682122222615812611102148828877506847963975356420567362168574354105086763466256619249648079743446907897625351683996515448750963660070739633866415300289222389684038335211051299673150143059316048642878049227079386854017453097000585727557064740266077467163207368998240304797320404321905339102661172620162389349926667856997800770261749494687190780811082632052192543454244872140328090867505028511742264890718335705612123363099304708724644909751503338848379298432118202373237723752952958044397104259745340681447917244536148136538665888939248093648048950565409280863380777083839851620713428815828439697175361312873235311530932787964731318812944370083452344450657220479164336658031805338403139001034337438941662563547687876643294405969451911086761097788385250420149460278065541945209106139244884584062238480252607891600543951871925935620983578246757567876677134161491200194367806145121724492835860329122826502549812004212811197636848294911399793684076798024458749497431269185437442279059938194573026097114156311298818301975675032925546798861815816390964352250292014776564232701070936063594259904141661711591879038316655357514001744450829784631554814608953495164155266467892633398043306384974776925082918907434505651208923083551991219840480283189677356895462150286617598474836721057847518397933114673454514775633300287809602392170645269436440084698024253261116358773928783581177456843821001557954148061715894036455344659560624597846897054646075535895763047295585159943025071470988897949578576893608810051155432974143363203547616557668344464412616256296127150099273816018961983138947017294031730442099132479920536895524017523892927240559331385582502841128960782961707441195854447243986030967448597467405530900987672000760998656877493425285893916354415155978894922859034253502360634302730561923631542210821728715399645606488484552572788639763471296856682491432044750545468688722264995594967408586310631775179790460739239109997476192734200652918666825154375769082720905665960673367798932050530222010168861894698734665330294196099833852917422271486568720329922135747873249246470631761712017825936574606030000205588215678020350509307501833803101883256154448889168501438925852748770599251667706660721057129007378286289475698135218385961994099158703903808087357950369293986040927274811701788403623438397395955666052631568738673658057086578516187741600648116630675122469522709513877345217237133784891302262005620445887285272383919112933334108621239439900031605126962035091727414378126028410463489306331011822437538532318674845653821743726644104904041569349905864044097508382164546801390742681557909317101709223479799440246332783347048012269699896294976324134495424191429822721649467337444771087645589242577833533848826041982036304139615125341401093503586656438981619003453319451140522063630838054799542086835785340011213486424092332714764066116073159958439174305665658826259785227077297600233166828453895158155426228070447770313323411918849453746153142169781662103303883631348695937471477251550696058008188751032136030631862590711199358930781429018227296669167069687136480364913802899333182053025030700167407455579896264139023394087119800045958079839753218686297613091749736317103702288804913692161353328430678225689564683974241460003766341681888775992125071872672120992902210827059493743967754513232229025634152040438935137897492821274884653149671953222086713925794193097841451261121445855245233680822170676519365148143724293370819137674450742700008900618807717204807015971946001300491115513839489268339506938570614672382860210991350296474794395803158053872398546352499284233670118618157714374006567468386826641582673463497724955688051215340070208154831775829354639613256808169375188663135037512840796171930852635119527124094242269274518173922374831910634087129961180259571233363027784870564304551284494651931235983408516739411894548929581183489840940938214170530945955122943849402910917931819007225558833029291434031087481753671334168190533450654386519683653877091608735068146304356053320857901275576981095719928971714363962937748246206518644839257004922944181590608403105510047437324336527009400731049598933888732443489094479529292592443848054127740980436676420674599927683614728693585760369847653588319911125797922962759421167970481568429307953707596203234140788030528525542957090298234240655099826105054482259755532215450808231702401268661525266146828335420519438957204982980392908521032476007765774944566274278478857373736840518046467638417927831298539569981480276796717478475974291812472040230983239124949767268809108654552769675382849929037996696330731556931534589533865022137952260568295830971670202353413665900046833413466334979714785039732132680187434324843049738640564476152521428684962655942172478229379195389938634160314883703828722097866116514902794910150039138395237419628696627602119080965449227903651378899685413890811133509691531573641806984358674514474228872783265248454601885729064061129770154052338283417860093477970113538878909394423808193187597716004278139645736607596673310718831716058916848227650183632578555584933179605269695191192331691875253864205838151520388956771336119014481712010899757484074461717681797770768870934151591292922038440125949761311344051339547097932510513567231334917594360049415498023003929106567987394937702890794011992851269390064947382580235535457245840158382854474227656147566156676044199243234424314470430846346003820624394716243781737320724535843417608988179311407332553924088606613920684222100514426889993541207346619334999204384710970075813451104047368356792135537796248401240534386193160437247648665991144583447128294600150711935002125469289263129081085628241226538034079025596877496264323904948528884212470951778009337490783436386813068288867860089350442856145507958314605384547651289167761366056758276705332037337445740408615803362318144537747483908728767152002797226670029066464274230389512385737984912360007567742131187888694803414888105003099681263773840215757067811642313466357481378964631996248803669099879582072687806514364835575693904867121163575285118450452395270663818596263055320417533681474864765174522323003041699436771900187839721202458960555805409886412569348742237890651933568968249131711904857998701850243715547319257801140555430755536323806593122268219483689650171907337635254440165930073797464658686637766150520571305904888508792281998958124193352081184984502525860695591662181399248777559782933975591949606046001638127608060356811622736470776367277840674357166667046474030376419514344431410032438121094127434040723271978460334738809806169828895961478614131728090040480240144837746952533062642750902492266530474888086885060337547020511362594357222910007154114879005823164492772582165752101547682204997225107950604337393568767559983722829813434069503416702613985447934612339171284168565142891209052443706803548911206594325331978470758504929528837269104516313625004882508962780042045368316967266636605551717980507606594947057508419761888909893402479498991359322260280031939623984767292793929641897244220487790323498343494128791277799822095096538410224723648231817469701696775630682203158773851636886659676342288662473189935099326196748783369362567265215648483508715281864681298346411868529669646391282829052412683336439241680958986449936549539876320466981814595159087942941500384058577912054226651112037240137118616810842668177890993547991208399233765125599308563264569857501881345196655902521838173890713929669941171637093142847034811429078573594929263001340808319588055816951041401355258865000794071345428457776470774798242132681101318967710802816000825995589120696009249741167318430539608258324969583249373566111854986789696554612111804853253819511342329528439326306422869424832859221449458418389687205870978021474667792672725985052307735869640910262308922319392011616437728157874816908538005048856197476959765837179950768125595385586902518458566126418093696729817523605133329522620110877071937041660040343613065537475116384509427349885878493878225806054137954386309691989108883074659339799841907051688210398408582254137743005377119144023887717655077373284244724677852181527239981629407249858854546971913848725781234474258669491989536642432398840940669607960266362187906239976982851701371404673005706249352146521573330461529910877153131183063791981360774276489622320545730451304402992897265786077922433675931143674930452743969137090514568937864317027593167241256951809012699487902741631042344843893401747488892567896149744153732985746685184737725100884696541920885710883251643932866391870176029958048596121973021924505278813861321388699879323334081770495563644680906869634466302683819466427086711427496310079264781254021435106608892760808046231377518013862716357571571490706072411301850112654853801040277003535940385602187146242606272554182190671584280153471382814798553262065158224637808747464094715623244675015734708592360618887344276235729599010870943324507092913090628158269905897438098155680337953806320443640777452557338594912889559170310185783896146194346543971637993839722816813867698161299534299217554727352664843295702943996346212130581948382738668613485545157907425902566699008652388981727541597094166351653492634954179215711612510802894003352606083998234298350089732410262285859054989567829574882655841880859911189907603102767399547222015863402806803301390238297318563526841452299011492063220343546352080730067544045025955771582322460444078842496020487787973481422400140066621585200328199935718952557321529736505698109244556543679327457306970369796468182159565238496758057504446158627411400047914463071412278959653522388305849232375112353910465783964552356417709712576529877402873530847884663057496385821866094552911563615263279529531128030322098585524072264767257530424749709862016413143717798908114097729833987373991963191808253406961310455193300258730186581190287427824719348441359255353920671473858298044164474594041180587751088838419478587383674536504170845130842239259273099442306105078155517127945284953087962786293917794998823481225825526367935784559084993447804811219777640614447101055399860705830869523442214443139843538314893583982586948396576410231297290895384521607272857447094479523081487672308986182747074635567280619643156241853744788982269565467940104566400384489546182242142518951868000063951063922927248731539270962259606758754474765248011545749956308081716081107982215038195857859046641981058846354580798156527678215373873710001305547370248808210748362798340117719181005788171761525341594585876470434010195154231011177885856720149868964783684158206186841686631476425143366166982215551541626201941610457419515387804178177415888413638128761619882960535735412928961813436588304815868086340522970733558716744512495708157519550732920361719221818533178133246666804769931673574714740347145398624776086310198854877980089782891329472945710524558479913010948249549764542035177692795072773093682814681587816565824423690563782935198736800210918757471429008846024698427933923089639508666180437580072823026205094222640100808737055259749915873029515118497259537117140709470248796655805383319106238588870304373344771791734927313844822299845505899898964046794908738849600006262295236173639456661906559278251046606623415139548523186908554982976349137546257993237595958419294314931915940073732833435410191179406202187005857567351316195801942289298227374166158322299791066757110799710125385259436882342859256882709333018485202992407663152784692710715383478912314501861775622102253866792708690815682888941931953575375348349554953204367531034274540275068051393045728339531578386200974012192578736105081307243744699487868884840654105356340885553730589758398427405922954208850038873888551061087437111230488350261344474439404994291220471469112071920702102009723290048409492260928294548541123588121564926799852742051707159628058383796949192539652102779988805332840481627938844851737093121097637410904856054377956909787440696386057048151671359555950474845360916185021556288979042129598481825969460744434937905363969493882206105786078657121949470948428186258789082782926702835992234356747526637908966505909583189623060750932325124198384290768848189681318608645633086207600134653476677259310644415544707077571486397345196257066291785482103861892058093922200050214955141507264328911700312534974711377646105786463928467531866481985662163571627895770300757132037012044270692401586693316458164189402753968579868363762986215817516446941724991417478112927472690004993851719440947005570676050136911622667539080222156214491768051196450438812444163290362348720747512565034172424735385625259494789263106441425707785299107522324580585385519151464987936702695668547602375982203948533551437139094564849698000213296713173521821785861808040778219191347657024763479175211668873968822816079017898363404216473352315766294838939406083916241039561601622321484703432970233120778674130181604910517185409200752606358986203143767219578901850530806512762104298691878674379593344449729675773725007913087991743359181220504686823854189950624332962984823852731913748879345399104380820249030742657684382856947540342605110448791433050547778184373543632318912833265149145767755901533284186037206957493573164653240079202282711741300837910443499687985715366238187729631827295145857865177461053062357712249854357697564715565618053941461444230925408811607304499026390373238004960952204051081097112112504041766995240533465515631373283796909238087711011795790882356540945121071633722752343755958757797534289456451395310793819060323213230525553561553372173040813705258561945875934532070526770210218594656855381122408989435838324771292463805184045067728231612978151168840918991695494526815768958079899447311284549404597128543124478455076120811775064991377336755699051183608419558995598669393594753681280750284734170992037447299911570901992191091137076699561237114649137929133754299244689249209981409208589976236083505976873720182706722621848247899167387269878259088751109721098057439985552833601258162915333966616955824656861865510038229347773610788766422127988478167519657711195482583810003021790616023471518760925583378440702133330709436238231934181206808068765504647845014094696057835525869394668013605455189478598461798688554909403580389039061330626878715352454151368279689056866575941171432489893638646689644089934328320663512824249705264716848529350464816058624746005539373703358883960132090794871637506379914734539518786111524394322282425544884691207635702490468884127632079747978316227076638365326717630948152376870100427109898941555388331318605406075658331508843465951848867570617967366971313874057713851760525660323995369003730338275533434409824343047681595050900416499709029699488732096617871271454269715581293466468026508436067106300923972281550345274602571092474005965773558032167803329631170331850238437593985151120939767948215588939908592553154152999331416848045549113448994202392741583371955932678617174062684918804465030112505462538597358571068755184372168479136538253610942929199635237892170951034900578599519400496097839324784992143693688370124972830148672810230829703583618579583803677837730514543851223783955349724259418017837830074622998373997956257250347392519233759757618135046567798688357209931048869027430184358501113469587008574715169902181546762567164560986345676848156665907823812043281078927853706903234216373657214574278354695974099545631851251992819317859631563603904933640729687844537725440731667618165981027793952936007929130105132156299651168402807209196576148038775087722797900519788389035807919697853827039567726798553347645180913655213282597065892856117987386400210743446833183564770429171658209001036294621980423698481460033248362124208382027234006697106062286058880553872217322499842504311195067899613952855268299027931902915548857001461568591284765548197561419399353515208221651443483957166118644866268973604637558506460592984155658944601538111123834708455882675989793666060545489745647221220706006885796932586551743784847778251270593564169113353255571292303493102441538535985527016729823672834028501907953345783597372423280044537250473634424070181677455225210951555970099092886980898276897044951374285369272892992774177844345682436407842345561070448308348029991684985002263239185236961287141546589015805016947474765929879211324668703414924744566731808142726825822161113838551725443732123498093823703657561074280497729314643948224933437866083769753337044678110735294120955996222839746682815790178223874450804313421277220704989608051620246208216362832310145792846198582314290571274571326402936327667010113638607875906723102863538126774221165875699215901410490240220653610443620879850185666325055039965954927971336666051948053491528160442743134612558802113802828062803211985988783854327039351118932606182678130447267605522991608102623829238449546158617207783989222456541198194697253915903820253597517124977258488143915605490199728725898218177352045696572515998398878411795767621453476284806738311836635620348230444151303997024511909256841273653345446079824226525167259741716884633175423838168935459579493226203149494372581554901578862937542949915200243365849795350445791623726388720259957366718845650476050653605682401895933569500201946383317201914359726546957644705607936671520962419424082355177153228861223895697066355969961547030688079551759731402887479281007406966032990238739496742712780922720544124014740238045115232133567159110921528691565725713256559213004885047720093296209964983975016722462198697083947656279470048315423271057227869889566251888530874851291521980718628470972630923029106750111739942262791515645774710246802032001245070436788545443484902375505152738405116603732743742215925138738842589220155857508327508210077691423661685160923569139839539077138066616681434792340425112297108572540143830021219276774346305117138223540482273900652472838902307857620436740536792628757375201833446024229757350386200571479081916424820851169574341987830123477362412733838244054006071419761341669194109710313205755643381779823375448657564099267018327909124445912434524035154977220989011617151464363677848552888770459303688708078848082196562873468075580369177033639050572038444986743145295402107744909917041505012612691718534836880073006626457693380266646856246733352119532719508684397311989213493039162939518216424532112184107308990456371853139181988561740435622702284117257955572913115500501680896981630475323668207596235221672387983704738918647144392939546025609287725918790281559977696643212034787632394838529836422627160769694253554729294409967499248109581759471745227188074844571207815957596968075387253894838924080528184675725149132451901571972824768226807341273608996376260978764894689522528443120881703874665606657014595825947548389673883871751950891438993669164612361325148869985119066791185853180758965595296076645836330344578272132076805525032252393961623388287358678598715743411428628666460497656281739362017010752811250690600094050838851083923109348383731005646292982256577263503773541060639704702339960097438272620001181105187077060219485409252464874380913270210265255486881401077054734785007738621249513251562482095036675137705977381106594151081303316340010298497471580563521679804458683878635137858071981932488821040045939336521960608210415768073643942063009307195536152940766728576821159799183654573539706050639058251233950559298912949174924774783141393682125277168022480355931095288241407697183621972739626097567316160777941724929884007545924144125574376491351293404535855304362743613916670831403310751631538228727178803942053242129546139191731898397018115121564965249217228306426893234084058961959957939295228225101550204296325648198029793786618142457253560342304986816423279241018605263908346333950451482209532878330098283335473030405003488723015335571579275049260228732711420918115749724008943609953818972413448622216794639478654267377225601966582530180160637587895997722378459760506621213500495795319790424227284721859160891077281364325940750324633531954173591602240103621086418041602904743290621063661901798368220861308067864842332376196455211738341486271304976003591858058520746499275191276263274711598019626677686915524791742216118071367105527003558255599803086278544948993085101027306264924850374252928665605157264097840389536828864544481361284857337102444437574899990489464553334735629247191986147006731460129811932039454031508076240617453590095040632165438805777503124686454684951426751993635539985262698635933297277008090499936605196938134245237622977725581627095083762025147081572191246082257843876311837606908149420843532183048060230719460920546614325816490192578327591721307416699626888331664938346115455698014635767826951967417604114567481675074489485420838197309420130581796153345054087203472261747356918914580012876541641120373671956985503831512583303900148110872965768143495831757077102434151634039838588105145237276260405278085063833682817035206175820903739683904267935875909809674690414832614889626307934729560842668241330453351092605420564546519811320092608243977667575681520186168837396874722290878361889741443364349307793105917263237361030108424627645429177817261181587722883827159530893544659527115052818213457441251997781240991282554737279246550556607994730405243995543388786158067857011172259271338079990650644020812817383185307568898998478457782330253522498689744747363345749051818180690956224542203955167231798040961975595355481304654911778449310421204210582641822184582128823430306163560672141055169585900641549087369341410604188612992397208384476919666172341663272611599548173730240769655929764233713133499327699730527592375054426491496426946182509461296045500697901586235042952631396038321353254181275034263458128433784522809098583916014841490440324748749883117651371055317672025045069729989995456596547754413415789959312833699873347981374264470019281056611656291670609746440764304417226492106558195305438416545065946140169471969033015787386445339022880952153976212078965040680782458945907194836429791914360912648176184742662666777090248013492375257587621845668752923797906845193054496717883599757228002145250749137319312326259174657183977216016859225675244770050377208342616620428839966741033612920884135558468778052481639289864732366683757152358237948394545721329564978179522580072294548669504218002272267082182135715569231866665867674389369841638804345285815065264815264280609736302500879978922524477622627574767993592412467817507505915271649755509383446207213024003513101879748363667091126885879045048062344054142007852036016565983847839461473300331808879827692726340115486779464350934248168948733035990608989399212433924263836435141624396956377640665013274534168366472717741748043281067233639839584553381659275034744315033515279481478796532575580632343482679825519720716081759486731872176530723910984130825479780671529891532652412013473716223201468449510977926665363495996536033199528972165270642842328882474901902889988104358279253466917245034869776853646743461190392707993377923895305172790665564357156681684936964393506433154762043146480325073182080484381785662196423957406539355379381028772138674271567395378257277552209979808564226944021947044821300010951503176761352969693968981523068023451970343337949019706314863472578156867922947912334882996319716622009295441495426240725760887886576665951712442081265214302312229153182113382335634636224906460940986919254357618938416695919176156029958735577114901194477718093380856817959690495849143828517000285579228147900066463286067805758244609239472338477523730274341811888709690361815430225223096253366421207626307260246303662272341764928637191648393033624801369569838679360314042316086939014483920637334605104924560222129081483438568664750049440389518117849934929789052802935034502838378849959921676615836735100690259490016133827799175953803137667359598072099748452205445748421271449015550335387061584181744931066267141043940314849266422207189810091308280288571194679918562240685326156774186648791307316790823129213557868776925050042715774981272012559260292284732904330317168100224201110463213980526271774185608981360918446820394016210937996628731999702901727623817881334221153670212598777139187580452446868134474828383677463560889005070492939639560412318111212281099205005415232130333730030159454314578162929042448977439518517959556544275192477155815681801103072383646316893508205248223791496261015807792869756346659089396774856137616936537276842643390136339572917704738335954994139759571849329558924742205429589812716771965413401880647962494972184052693508255135375780557840272759555076970160046843153129160453551887173677132395183994126226235336355137552952263842028657490403735437588582202117994181668153512330039504775962385959531199133678579871592430045285114603188343597936758024515268804141074420833131199969746759398513953801907868609891607436010016438020669303068225987916818701937451738991897326602122023904222681049831843920658292972620793311730373931144736954488961235393421658657556556675457021480288510536509442315298795350214564425877421678024119287970284070158795733339080647833287090387097094086167679756851647021861378137238754120790245156669502977452530379067112906583599738006800973580115476785675036261431977556161468122284461282821809444737950039312191309574873731536238281826381456348662314819990610514325262497512178602659751263754748185481807577917843566251955554090267638259179704673588012366894107762339402760856288664455013171383755198819631535754959610047877044267056780257395411259219029415606367360308715776272269179102462737728100517304075186903620576068556238230764344873738093243682108863951279316003563040148313943007097498233489093316486775922930431011764844398755360057341679024254848136740230076093090957238942963306816359184475421528998668058082508494447124266955318226081605104146736163088568569890569517605019347019494087667292598457705407084798869977581381249073838727849527576907242429562090127604669491849360469215032150162359586433426016225042905812748410248459693290285818419728609474430766331425838373509012651763449198219239247152861322626356817394243975549888270704232449766186538710404527239861559791507646898941819083324672581892254701711861045753211721677386822238619200833583663607583509622002928455739545628525992687284336377713038689018952039917897531041785098305612735342157238905574639578049639621814823573064103808777136248706441865237863566070566771797486489356509298346647656895213885472704319274888220380790545563105672896487791574450978398474882406405550469363502149601464224648888856945961637081483123475791657515172246622925040018978419108002278296157222494000743268019778611663366338306768647090661107924741726428318743312096132658414146408277282394350191095312171508738013615120324378001712732895640825958423476277328588362641170155109689080969524746447794858682884178188370788747100706543065334360237191856250143856180470452564445624591873405057024502568455457999884203719560042720782123947393947378985592722149679809340368682217671314309327035377207762647462155782207004662688923347152420400181235279508391543900440593635015021417693549529255465622686661382982951348829633773683464819170915967281870601298737998255201554617718725327790798492081093900597896723209806639953118515973852547086737403960885262987288454124027218947283964091394983576511237275393984854296621088087718889181673552227052263369271164505186279808888628618798903447747253761855593556939871733092595293934314502272680900755958919689711934361165691851147462808139679815298674059565206129955153937235340142317646036222480593532995563996995381120545262513080830187750871276160791348740916975258148998948097801978746373591288381431348997882712940228614465169910208978368889019016215059798912170210335773937377981717037029064004399676459776292645704111905988508745171731461131991757769331619393557263381906366067246032201739300718286010869070262871805389536594482677814875448936803411706788821647324875956141589339867497706239444960815011650900670417046737830799473875694734441693485794469209159072039142696857016492733189472809525276309209945533658598982850085579541172538754930443177045294982434195756849732331879071094781337391921740794448790799471205084426984099534264201373092086386355887855183940075948467608321777609780944369305282740186262139227907807681712545793554754999626019352358496658527691051002164356769325662483178014216452333862254033538856562114404016747305302917967515202296384065779068238547384215420565319661328471722571482446359839276713168977409269797142539207345803615713841884856125542544825582724681964297881186501199031579582062291356674580866578159605865714761194202319193805601268332291578908499496237439811926633538995270813112105317364818324490333784206190556524851514957264649359414238471871467899466484174193051926554569507248444084174764917829997279643296731741335132444215666502485706851996736858120529078618974731582311707700299677226840710381164850355279093863002299438751801416680780420489547221890988379741351495968577148200364832211266019551392365056536516382303797765724476592762277072246563904324697715852415724898868546011900085369161782532109963051291484239398006656317028115901722485748843357316885506130979004000238203354377200069679445066378577221552110976262527500214684824715814488076383013611290495981708119311230299584558540085410018520176166380998557836881631807067618469131099922186034152524053641944628847410912260138175853786783956883535582360922122941552011071319651331174055943825045645058073770564020376801494331600363004407799342734895543487717948980036091827966600630715599582868050593850391494397873190660970429494625265604105430046225043876793228594480817658765276281925469255550668499494440810022118524398892152814924572324859730875079130931212025870050216129347056557332512782555100485555865215995228383884868174923809952553120846091458727905260302539720808274532646311256632305037247122873651637242398045358790424979197928817671974420102787189955759122692975332855642363455653751417255979217946123271077943678012852752627060068318217105889320921168301840196910805103858489960827631042136935850921421764310609424737441088501975360031298859307464418967768035698822363158968921918710300862873786547468446088384587529017800068623877803861901736650249997758182944982489758457487336021073359138803655022392306830982711481977149610552077523524264427989015189952829425401778963576221140887269377846467310882689987772356098913348065211333081592448053507239832176685692544002360558748804987325487642086016837492913069855294099721811146537066648971938941073550575511718483522560110180860685866358657318830692622967944498188369787738845483313608366092172438542282989454822344575589402232401078246222272894623985366545688345084589964620071425981726037368315255843271300725085960197228429458780232271772802162247073045871476906590665780903534598456672759789825038303872780299178434125035852353218460101619604953399255095724634556892952412738262847583747914597358996513254100725581713614770985581743241862731991505491176146571673452986675230590123065372616623137008100932188272186094065362648763603702876001405383813273274729606733493561648143403674272075543602952180909999901754923701972897263444632951422462460400809712602317561244064241754879324375494994480509608790562144848715314587448739679608587343782875667706028736892165504204312369478215461882206272086263806429540218360916881280767417297778815840961692082936320035501911513075393335935984251496024506787751846441942160809225648429995992709717087534389732228760630667004186258714858941898525368209979564470939934650007406980766291580155276421934481367116064444843443449317150014128959651211191934067126405454142321898837418964641707529116294991128740021921803385226053691571132653733408791717730527692005837263639518226029889542138669391482464075169557232547820483517328971492058573467731982715392876998837954602086965307496098821845602195083800979384027271644312052631116218615053779133556030097235395197809491598967606574379763224125680779807523593241688786659324448749372846666228976289708866316812413518060610688405389400755201340000007077115003786462535497561352929761975380777879557142696378469640187381547486594303162326421174159870921402153505254800150775747559325025043497967796747148018024472010623392098391216041015152599095669696249007267277436074830589278191631505489291533480657135313837493583309453083751370520505174952903463592058112798532593488485846503917981353900659112061746812726912528661895444232657843451050726365350746777044750938238376177713547166333923101720998328250101527529290786362312441255159622198507087860248443737716003174929067190407285744250212415720270365893134242099157592285855552154505789844492458216705039801828188451456578985697386455318773483425598619368690655320204261464673089269328726239428414616491850771438485433194297134067343361874058193249703031550238368482483684304383153757498733994911469433072974867061773690580689666782293809197655249590356562771262596114423387328941963160619034812504463591085711837134392691895013125218311749408353596341964281015846087313496585520368959637958411256378420153571816795707781654445489398041005256987993205522184252708651137037890544567286739796067080682516119142455256073966136401123255224037680624359089406530143770529025433667981546943993899785776141081846633365611151337851372306920405635370209164286482027507216269696817781446237721127126451317370928661958952534816424546233874602894095148564267446937640447924370508512191573218633919000228804478577279493418472046098497055498960310349139219733848023309461582759820609244577239527616090279402167206605037604204727221596784563403254380776270675916598270678108191786161107200097273369904020909653691005061378807773862213926336207357787539203298605060374640103132072615341543700809902165334207948619355459611758034125540510335903928227706205970419638982421356646296677829489854729869735259804077237981576762977066685965675816474389361752064822944902951166140713694885954803428348414786288777762653791069708914263116039165008837704810409878376103473504055268786563932208943653370043710129686000918019685473293227855523618571863047942366112526018112066350056245078703991836131748991817892812782603670063223927298257644477287459676432743561906314967328092720813920357798332927753287544207233368332829460906701193270183153941202745935151101872628378978374754943526010643463294756995414486080365950097360089577377868217199326680508420045245640997361989846366904176848353283129564348144723398347072042902208945821986474041208667872928051693279082466670811962445570771572239687570538709916471999129364733100825619971362232706975618476818358416592050301500261663053994488631964930320389112844175438217852107896418165943819840174229163000643418152947767411714938638243575392444294597589729978801195936837973417900475010232719513808764745580968032865802076413356864098470164252440990446276855917509594381992277893732649962023150344633964019051569765449220272795449954462658604563089580042150666697677961865715010787859948317169082910172783330568646903605407433030823241928961030449428063902248429799889527342508532359238260334419610712108641756951774334750347428902895398428483674253176754402272596409930309962936593656806157101176433510783489581903973955918601294103297284640998958667740297440292717229446596218462107500986521863897150522815223684351169886530961490795913513805937315741079644946641397819711412817890465565264517801278244278557514300929595439939693585595962060436699909921743877404633115837543237848873491303060820176877688406259056894445932976883680970837724555631386648525794384264671167579813145879833288345414772947851414339828894209785403927054694509150799136672709355446013000965837790772485641740978927185048623475030131626143961521667054093475386232191881256129395422058551249447079511047405222248843395359690393179973054946161020581586221278357517640174668773856344843899543770895385588363237535728660317865455228833390083030058317026772337040442310331202303740250984171717639235155833797354119345335830604787358171346650149278108833270391567475462000198063988199473947999537689376404706177758904349670462702825905250092884046514703306798389690754217160063480192215222743048187076049455205117453663149546132322190983862113962418699408261523464559318222321338244211973935147589255079417708455819747756935599978762614441123945872794195349138613484676757424186461124998136928164792665773583141319078674477744308032142917882779344559958695277397585672720389430917512375996043047976397592928449033942865850301677086784302834015515516854196658998051376241604921509702887962171238808436224794048866621543246695500810693001229866135071076836035330111457649864487636806303466806130652072580452275648461434398858381796998550258309688919779504429293597694925198771015109122372383223890153905682100709826373710573582770542105484757172863312599815789030289460307388714634529289426455016930229149303792895741125311464241741108383493533807953478983273873406320802063733310763899392398516334944527486983126429920410168879474184472789727586269811058526559834733595774100312635495520114845059978837163002363068892633351939096534029071465128144338966847388013233017818386202248755851796645009258654276904627004060087796705885552897165237691899269252260958694870800478581963141272994086224101341405346191022114765556553828693924959590059230626017719832177577005673580339814267847938177939910438041724022218539035503812440413642251311629899853805219988931928005711587305452801571013905173353944596646802164257332503133901491501485604392289367282132857465956618721589315494318262150588524164287899905356409735392156943013253462496579051312076912251464213623699921907463655892824416866350975440703861160432363534070487236420794063607699556778152527391886877306828857833505828603520710667157402766888003187827933917882685777618811368872270947685122915541165265640241418148138278627798586559906350913654627531883366911807341844940514860314425497054429671562330736600483352651646087257103390740374627503790275633814500444307361531565880345053951499594147477576881481963538218120041909965784952953486063102347341477965345080058895402888983929150475600783724638765426499615501381765982868317878954451342140472688654251207732137002315466705710454512964568206191533615365191953852663022832499247465607392013965967662790007978637418067564425181165527402072273685546496094081566334658416960977830045680953594827137018366964382422312156102817994466354541534910847186149441772436085861185206943185838416696980102840398550394776349021085783901535124281820999557801588719867396895768026747650453895894518886208063057955204897334426687232988320199147901190306525086335587376238783022010921326981788728769011069286673356520554641908283708296741836706708627877122147944861354588822241448952251297836567255625012816259675873317629105597668206380945002044070062519778723917619450454986999606666492569517462587867922896304868427421508755771432371501508543617736431859107637277638476948084087640290443338037799490302278365544499535900397762501679400103036673359347074173438932612354147770443388906964884459877371841606646189025228655086601784481857749393730956147225123014080131793023031616459432030814192956697013548088298406771985255939950526916852562837100678694762829541706104478446723075421979463843982627370737834875235985754655884321437519212619300762154435085364929297165193235053821045761701104504649004085695510026257016634623638769496700315849543510790201466742837299046275809153272443334505165406960530131191063785224547818933749715953449753058198828631309106477553839611659717211811956557774206535668384595030310278748378761867459614412427313560017862826567323402812139586284404993729556018656004786431518986912114941985418356022152396105269429572441981813616555004797532984293981433753902958390343228954733585212667151228013353858579448576186291200086956113731458352093910829752534461374013787379995502682491211255020114418720357137888859735374836478591414281928231024279435806757936310658937545270337024006022327929401294502176470002346477349912501302287870737592440227216296041574770587724378988626694878581704971033161571578132184419753559968809877379651326793085536819705994239744119285567768214534519338161403878954140176806628519457953278543349438410705649293029274308900941677812041525212234569939180429587485730582564037820262418499823840424162751737801564699773277503520863620303689311684391114062968799496243084026306367272614584310006635955695625771411379576741677791991762054510751049421154281774269926196766548409579211163651176566964581826198109100903273620384400403244090514445874455120212128972538399048064617392469738543715826876408792970058173346255407855575883994219193386358472545996305134584412690064621255938199825528178858241725061712753279452240627897567324222338368989137123576916757368898363978231538264842967825228037212392692303544456237024634294180667855802493023308077986862551865234028702946554553167901798385569598867524206659319585342405894596751281618834307509221000318079195088956049143418007282726391441094370535587341109068870254152364409135867958726485400848233855281379394527209438869445193229975860076353243178634572723364337822121489112216014769131961331254597132576821926152681012974148872846141466879992516756740988802358173760307106008880577875886421566266010017242603149813147158089099195417262590371667324584159128277411719242006930296588296458180248697722577668768011931447106475990790222509312296369947628830860440684518029359626196258151142600138238951213018504703006845423775361062584830416066425391785963958033280160918192899337823909615462053932440486439193636407429108481508958943885826629998759275347418966615313703958487190617229315475440317460982457824831895354452238881782273648579491611590949477915449099957559585843480221250915155014252895256836166602846794880118537588080388109889828324596139832665163509824194539088321498601295370264148751817712868600939149741610178093910735879780453888851831280467529469495578481070659852263615826458035067804927280211747044423496069581971782984272444287552542520472214281419498681902865713622499566134128229308511745242707284785868230335929484973699186588649402947457210405628981621417802483555245951983572653142602520554768171665219098248438102556695469619560869629691503846606875089473759412512635309706658819235757695512313432339019613053114576988290840736306451000298242372405191644609514334763307940686766506604008801406473633823430065808498444519589487555206169742812282389805314800771777013252534362798925601930347535849189082341724024807090875431944751259297607325372544146157630071167508006142753263518815079154548814177569783304703786107835342847349232542142858170644414040313305835469151955199719973903431622426177351012640221985791190809882384809763593053280123886263624322008169177549758242259425655199819596225741250450848722397536877694504692048040278613269861382562913585623372802107536902188271936839947249905959899037374995580945621246673501293702082633849077672305513043206551281387392092205281928158177435811004434558284292655264238487966797134256731658381888184086918910910174746899013413056101752980803987819871954937785725677811192418661843197393854135280403373400529830231063454480571334784601898760560261932282325182564162339838897483107823470295908775945669487797262224684871091327214347121391982715061220456844795159051080501399376686820795872871515520128000760783107249961276164073721254590827335927315030839641557956485986903255434336647161945233317502348359133421410059691353230397979614814135867514925042158734556946193273138140698477577484259162053310490519340873542183929420347979865631185593788280028522979344304341444410935957290378810849836378317385751639748930037095435251787713352114099308276226471369530761771339297441160645079774004250301405806603202119590418074250413690956310495368553392094071612127822742313667899015731255633643125462638602563317685258698869633522559257511190113228261124663408847583582767625952542874833053457840799894197668011813888995637440169136610363397453987846887163188336247106071838493827712136957106684537199130168067140723927134524111174223308702143403498169805492987124353399407412297529298750493669565450849780316715989026236649310271591774107053458345460365526648346002379143475461423373497478821712038245845617351888126410012811242291647957294793200214356227086717079711614770392108643841645340440973974862429601665578124872695913393896221312156423619454606208552733844202559887885461819315948061412570480831218611741056865481266547342834459271915154242715060772882927193672888868675486251254364335016075111914997247317826672166415426977495762990552203868340494122111850148043117836530914012007905109387573336862422199780790993045481690686647951758664770795854232170903171958360386733491760836154817876031278943104272575275931346910484019809409853717892975694389923861452155435387586891078003825939452120023788664661238045645548793757567172251999494182756411165138975229719146929809396396584488202360915075717956327451048522371866128899842099597991057064839416774548021558446743667796505758899999838338400845351199105329811381777936912347485546100050974379014277344373909840600819453643217097516079048568193046717995459367781222341578869698366997608759138783117237194884591995149897717231846180705919973185789568846521926991108059418454546854029888800754113818893576656341675971307311062311125692699272962587913332188856241232526928650080853438997944836488179838706211502906383493128752396887673198861314437349671543851098269349736424794255900691886303478816999407482000352964632218702692425715700131587509162260116942795749903003876655131655055050227944169697178687586784238677609248602321842165522317201831123494849055059792077184294538954626500913636042677362751592197553437772960732414410468801628592943354906503567494338354589526400292469402052334479571707194547331757005046696676570506422827841202679784954467221110545572651024295197671519237300832193714706651763795985363789573073738287851281482359862729713395579658893510566789075708997617294426372471366320774059281457163465571801130544336241871043006696005406968341428512077522137752527437421910036248686294604174076374061529759186474849499613486734180296183974599613362441920710897586796333416948192676556698078757819733440658461329571517698880986685096375806734514407843108543037946432620426145678046029677757035089021013602499823954492732701678747164501944025007234726075820490889766792164510030006072853441539244428660656044876833767137534972223249170830838577616069427298444459564739645065532304276830924453440676850720740726798911975175748925037545715316113573988015410463682344988044597742755827064031086783303015460544247756610176342867277167602100763550312866669381246324967126383743755431681959031625173880941940401966785331694734312808339202631088842524574643853933346166867864631037035399840369627812675386772709197293389750773653939540484714299215264290007197370678234732348638376859264141827301457204978078058443302489138097555716703545784395479319501633823905730832409823904091901215140119394170821587444142570489374191659682781975709192098367160390106503966194284880876528777277497570808725668897942047810602611294739491290115716509976818792457636051937792208060986985680731542979414092314683835647921768961785455117280038140048432453627516773099039034637696682344008994373595080053864896683926979835511533072845848561238769212998527302566157966724207009679605275845596538238135990572215427266515496866274960555244181090534065107571573590991141663962841835342302311573414836377881395942409440295350502222756940994476249675957386924638370405260841338665081709769271136666089638814799559280508349473271131551854692641144982445544543016654618442215663360964887644813466672865630572696895988529366492038716513007783844291018233535189894158465041324525323212973239510526430278616613704510044414933746032202014226680597015945748860232450655594495941722187104108626576994994272091831010459142245878245042601857535011618188695664738523678177870651163820441522288591385194820968797407566241054453243111166505580222125796898016285350255785085104073886029114000591619865126901422238975807292470998318409538299885275944156862575991604376355904325747370406340369098081752729098688910707485979461034598544148111738929184553825531726055187642537392843912676956148590445993690108772900413532864535934288073814782769474027040527984674928265160399018558071548819898132999226159722355828307353467009817515912363178359724797572670396867209806739587763317943685806845273510447923569409313031374232072592397561839217803878397769275196067326054195121412855493952531646874196085265743717408647159494384935678446489754053230916795812605436621934489589965085432218576657554961446532197863818499620561007867799436547134729136598754601757805655010338498974450373761157806090971482749121022201129151849997182517690788337109908852915789434749346297410202487443552286420483632106688750546763613514413002433056228530386192878636954790066595768916725280612323039954305514526494792899757225003737567100346459415415025749615185078691169465692550795158620205282894402476145294872251796919804368805755521990908123065466093086501974402523849124412958073913851818328754047994629531487968573272649816669391961648487767658284747608726580678449036368412112833784422400566991654876959173361374316601764564317570653873276632748955718602022004947490082709373698188754071650470962329223056685451366004447526264957506664996090253702747843392163585219555352084162098031800170226594235122850329497205309857905464031575628560332078902730159677475551201932000671950482604978354250662307233617974216570090979962858376139455190495894802523809745594434132227564857680546657874065451916917593900546162337169320986298480323299548729769075111762171662890768254202175938538569224021323740531877424572399501200901104619790084658548287988825179604965867419239530524603457979159317247718768743486382916158870722320233222605182124808176110472055077560675356054373487337786729088401708132638748600117214953793657959416190526972410585334371350594402087709690080041998562514012838980668545904325776171166474487412722143689872629161334069677524907585828097799007389813089102460984254381110992091722142098739367237091310825980951969138242276380434056443869052236354807918222531453502542425222685362213940413090587828875241136251694383476192785569477995005563762347793850693651939710324436796637955775503670872036900743704585594140151261256084081484351285853441975413304441696533743080800383524358182842188577249848922559963786518105229365993562892346774549696486304766515695333951050626188542832184198509751591198651698846923117209588281676871380621201838507850995554220237998754521713055128435983223224001750369595380444333924203856542067470045109807795773141180964850943771972897809413956880355525482540202898410207788347485771246342654463332139956616512379567080226059572117728961802073128293657684846738774249620175046228088218650405251088876973793377747334346974146717818312781456249487920501776356460471884807319070711730896301942824755772937159137677808230471526333460778488395205995826439802948996716415836640288700378257945633288067572465691422247117150908233857720657939388553697431384109892065979650911964988435248782157969862063666614422882778892549409877637650848516150742814528635571784688030210087144468944692608219233610912484823963462284492284775477423264602725782048279958170118404702007732119376667354337757213323194264334687035076194944367318956791090715484663222594241592654715442616914326552763524227947658916891804589332829929871208492680965248531333084721836332672399878195400043551367127493962494554135690772567967187216035925682181158888242413266625270268505874866924345444740303405978124652102541562343132259687273313733354493452447898780007600773464357347153056609904592732539422351457587046594919939713477593699584333626627160818499799801009598975498619219125728602616906151520569847144170586253440470363914033178341935559519525563762780373794560476842763941998936155029497229468042075889355726635286446260827573608797776449976018413965418023851613010364907438509604381992644392667466594676804385745090709741753376199661634718740108836340252887769783557787803583018619960902025331370865282937525461843067540849341680777621490500865514980758452058963904030715501453075917562808422634654888386661199282798976732755878451158537880506087541077307433812128442869512266115886570907518634540888701329924698339296005188684972506828251445218167063264758686748116717184828761027659715268785117791745458638629623267660750953604410831452335916352627595428254335832169872969964676934314516962185350661980360139263084996395337248282984529995144737318725081234161136309839485402783227442985972609409784080785821947735741444418820769189195476927089694650480879276748269061776259170695402990245046001175817154491932877118697416790136703513652253612549530785202510917139891127473543394433802114221696047389543515964366471499924768237124196955417708071272189048590399728580018158358482633200738525210572186238262296987840212326422354932730866430430942922671102550493454051468867346766298471434729201460333913516525854346842226433128782055271103688588872221452607508949288977798526015296193978804845268552336742901881441070357646354863468783248591830336274736375897818924954222157583758371057733729625752257643310746987511618938265314072268682724618884581698884288001331207426927191823978659556280297373454893199647646933589229332275955752808510664061687395353761610051284383399478784088586031263949346438398287982773888105662908728003531772434059028954653321290077152567519835357121525340675724034682265833024461678247085924353408316716244521112816747289487713119700985742499473729497265772716474675361881415998594435239755760108420622961925911286268621045000755843406844518408090306834558398928940905115725929092481455660509104364304523651901389488589476776725208085927117480854740217453238667548208782306306660979066169097475713499216053227387905563555454763879075047943919492144274630294510341846894732204276429207109949831418025216573056201666585427216156025974752935002819927453891484268984462141933614369922654497915879824981028714530357173794655450410587452193809602638011644516240186383145502016002638945794300980935025239591366068571123828219556462263885095075499380675763292519221328023011649526723688451009305964284718558133649789466560696295785673867852170783605190942752680550017533153255118312057727528437586687206979300677660034748377564681818249167757262537898004786738948264979960354698855832177060426276311920435858550747084648835949422755013089652673303542725849383090022864275144181268181954636566366970032627159273375431351689843356680686553408387680987340613997115604958422415808238576947040180156885196724620636573835455114287953240653924909996533686536639990248991916869301510792648738710346416542818255306724675394753535312582915059223340306590173074283863103525916909783382611656834456838662962220961396243667296514372103309727579303002502280366009563331649856192054770874294256126416087512496192887184219718627965149579408949044350206671796075865000968517022643359305622490721302030648886829137764827385088057957301356953487288890071859805971251024118467069998311110113813754446467357194216218496984410662713309575969302513151122360390413339469430433356885613895148001609012309615154168641948019055059818488042432616816821203884977036290630870773910543246811770802182708701936382503313098375613097876844349113820624093859381326969662045863493374557176618985128291555537183775210772371756054453677306445660018218995460643114463940149373339209172559467134129848931897745115094876918698375603160910123704613127464819928477295031362018217910532010149863735732039289532571582112495611128823500937229892020709542845138817220903984636021702454606039695322169575129037381864630461811196094643396765971567262093529741319809220203119680015029700352816504135344061688889813375803777122181353472634725118326350633498256550736902100803717497558096293904299323746078684338542974357458961058161892603582563343987481256029022237359486360007609998663214562992559761863149520931082020817927027916452498467742518067578195350365208573585250392734642355489269557089041330522170302959750692335047216215901484019276113140057894935439413499476638971327340128801989576213871135027625397194307518122132921810937877245656666458516339724113163764195626301501002869435363755126053667223706354142489116540667368945814270657829566687215504862246745140249260460789736622018914574068070473770063806395940482982116976431973434682412639916973915477775627774423587344043179051927165451675887995817975649023768050862901969713013956527270802149247556686918632706208595997034810502318062553066647150015831018235969390008253934582470478190522185259408143483661014329374223097669665933920433933170633006401424900987705217679835961879407804034155390385255437116631861528295673852962676943901912419596182944768156384089882091808430714249529594038943128635276311101207493122837211195821946341074959901339373793089545076908377146270024669785219761740879039022955865501435430007486155831781847437264877313723651698788046875929047949773464694376548667121713779021658144489078046377054736462627033955034109746716326188685114935895481398007836807031375120918362562031377950225949486203642863101184801512390667926688932417260451996020159182720947663219620134033402257921595048030625523579966149271212273334493767115726943464564884592257596346019207795284381119425610368143296762337374044426187561407553825124536680047053680427210741115596433210448984411142964443670234638359211267314538973672707688828755753711133920324362095030533380908855808318930611844407841718083410943384010814681686253873078177492489446301224603874673363458646688260858270206629056277050918236932765228413463893752904943017327077627048341319825104382571805966744040405212887672336844582140656339377492283865729008242661154940198947546507472104619667949213150264123173955073377395526785763133468571442679407676901478967009459369129915220322832062209577057703444438455929422052939890804749957389643329348274121906892342947509183890761395273494813396627745527073198784541182135991818646754462252912630204285380922810137499671430160703817478886330618104883858997051352905677500997367819653856097303169997436456725390909239688546701790925660767022043311424793970236585758587103610348111741627739671842040594000230958265943293033120492206668093332849317599214867001191546011668027467754583278173357658801164275568183288641884037925864115881462784530798485080904002242517339823245729976897341677890232113060364733212392282296457630767315345650831230286330812567453403521042314782460169165765792186360510398381998180571378320792086870784222311440885474024051617146049212897794046647307238642620927002262476351822850177947449403969347255995705653698375218453937564996654487890639845870929122663424327350447061068393528502395111196980338913550241855387195519405851549930217182757043789845316670938105508121587526262570835022766178195543100345138166190902702405368140529672017941153165835576421416727825412236713981234837596879944560536113496970368239357344972542450720267853918282814817137998844927759524222805508761412745347258925083567895009838263531543015136274921899237220859775965186636042641075064214043682768972660059330275379016196003472476897501885681628995872938483114256303039237060889301694644041661962572145536643781217396660860405107532972143049749440995515147719381275180540390443552398835446087198944586075910929477836485782386984333866652224115295363122196418987298167947538718660839324778175805619679373951191038588072561278305168100829792143292574936134554328741081984190750089358287181499873596463287962853424571790575704613618721651273945506087405277160451830065179760615626509905517681811928932692870137692209631655244285270316975916299912181531048645367243804498392796065685493599384046580737485441747913889587727808692166549398035044088280544573235898363141072766034994836606483436373614518086954278311355582556110888440082262234559827353629315570524307208191332042148507192535573249552034721478189372546652204078025469868355412081476648004253685929780981622362985914852543865508876625775987263544363333996005806293300950982114753093600656972230605261096275748625062870245436290838393841375901588026133692600159675770055336045555948379924157082505154657383113175932780096031279704999584739284906922769791656992078595932804546456528725245979742473259102882108531172013858329023431268888566537742026800939789656857134164581652960331288569260310912490916167510722165509595946278684760499010907495816509705191118756673919938900721734642221929172746732178582160312333085637288994001274862296548624211574132383267528121735142046534784244180110360563150561755191649942779506372693078254728324591238545199073160160199302078201475409002718037555879095816279400278087554234358065542646283388078102181302928569051394360037925275389033284690645352128710870638396650441211878169226903018644537714050049543878535730314148384855353166256843568471776021122912501384395492404769846264879473402532194383979686991641447610435459350306041984633046167847758780739987131301495849290404600500191369479605111095221728948011226581364600431672938682003955971564811996513605054979015468160116616228700242984267961021279473190298410795092569998215543567600810226073765755946884808701815070188798768814467150590155487708024903075212294568861907993951640666001339770544078387436966506155804212966280935989303398544458058674632246528697862935172564571320443786528287380604978331728015763860878083799093025779855253836381626451639735515242184045566622783753348346997383977954165567617500157042372687413023353903668165625566210589688636301918464978227111191344564663075881778416610244497446316438174550853200743152362122941775171417029093848038666312513253489371275382423656282277399777283934580375665623748261700401009665637840476970075829680977871273527311578054344193944740880045301437776755463493331177163924483072868344722610785895162021417227287499666894649798240289739546024955896185853364634705664075344970238958947933864733510878751882625266640393371416375854068144732589874679699280302326265048720538170706694722874719714054568830487139916750287939355281312185428022008477789395234201780459185197006428676681133133090877252237089820549500029555607360935261715830823265824001728960563827090185111876368545808049582961034521080055167576293915902408016306322739999741778590441905423208897634696482021741986642262963316238184606645490115475997793864101330735762698276360034398823737275860180916581514380729214351437124633683054983205528518397048811592365024553660648378868853385619385619340332553156438856793546129680971623801629937571603082719065015559826385646005613082108251143772450765829708157204388599550981116887305498221392286837005058725578689973892863961649946436240643236935518160313047954920009382347300948334265172905300625938382600546566771469194680278590549535972623038019565017471480230704651178932197685559515314101615984926820834012766510164792808057376428895281729284597550874252786337372772289000433202236702347948554176481923340776676914042656946270873450224889258343020410200423461221995120729493378433305811106983076927892347251788613939399719598906986359404076803368143650554947708186740459454978324987599860273692505639873414719662116038857792591847967404376212187785192389947266019822176691563807938381243763514125216500257227712860295552714010520093486546884975651148692001068825236501482145080836292886371347650591853326731995063840809125136707270275870275099589020859751521155393729857916012323264066158612853112575530453662545407631405230301803837571041435081108598330050506637227212935904996626346265809685820340177943775351289967159009054166230758774468318919775374781175816305795750727145482284439080321800355352768591829517700274775141852581991319146033917795378308529808691756295994460966145288322946176842242436465417826812184707735526479409197856908555324599990559272679855363850635822075727595421693567772572004648659655688295897802946055160404381371900049998345612543808297456988042136186164976734989233032976763556963298722579790955475136163167571134775013759897700683254379203087062040456806507994913617874690949330657940937011402856307644217596751645599329031602495854591868753383184350955266108638498257938870106471898136510824701299826537199667741854797416787506085618378077756832544594229355497887592388402039524923958867715293107473262384079096046772810020321160112658987003482444696142758160565321716091389097679295101426699670931168540351295855351935839311984469752905704788779002419965016234059043527820571136707578487972969416148262047139034643015472948397982003181357034949109004121093003676917297403204110818124760550706039835289994890501433257997071712883930814447237767914908422264845053046962027417781729524224479846396271730395045269451019936261195179530678010508382662864672322430920567161957117639143425306963970839706997683118277449615473873184755820020619782213329759366139711184413893856529210845544906805593701195758399006603929763603038039291460694631531750412311151508541886747174328020555941228908323756515409579908480702218565159295229575529507773855006218662207219080280491417604709040796978685505155297063273090569342556991639587170146986053583525244132927779070480875623799389567284953018579788073725070105079138953584054976506756189496059333031362031603636861395935249714928953379922853474711613037867396862480728212960590392369865174341823866881334708450569156449307183638827082576298432349959540094836631006234286754748146333375956267087028419034710240835171432195452560517427295540115329000266069027353005353130836910183201743839080960944607268885506398997722452843416506818349726636290870788739642842331792318295922949570372899820137187488909724775941069837006228116474015161226724593431831314944740410608406009613036245846105244652191570360931404334454340916442783533719642840040527428490795449443356368200821957121256559439200554608190338623466041901291103480137055311955183673558350339418905619300879125132448720653890538694148444285590305111496616387797852048559929543903823511914325792668603065880063906439901795465507247696100809476500863084573028908711726533414985919828456334186071983326962850568869744446618993302111122993668024772530828697033503914951723114374435958391800346617997275448302047429749629805942523254325356884850924580783187898671311744642638595917399995375429714073685150640656808511333866536390045120475742636711956365432440930217380272626544936274260244175731927415975141422311688813485920289662166402868299537239259963386848264865841074558526542113846103738526627851415324366396892705609489577796505503158310730992667190080155299527565126037184751842781966146576057413459324514000778590691169321349620977545838368980389733176218829627191669438402061275977853372312455478556516251735136399330291490916510926431348323463472748039032626794239431720842367457675307557680863352838124040926091480822831629300150466087969146141004824910320463762868931070862813619178685542337360437120096400033984060496586009356434130409857978453716104199041992535767019289002082801757866930246190723517110523078246605139963154852498098054751232889667631403006657810638465947654004891227060660914733716800640014815213284126732725690749179658237151639250403395765230497390116065503913205060356821846780946721885062612659372215278358509475856781372243331119149096890867319909140858426639410912129504283365234655247972208674968060772609934449460604259874360606165107362611761466510300203095881578038578266455869649305927722854501913747227314395747213359805615204114578962228685391795678225014646922962091799210862240884817095603170295182432509347012760406539080274940076832769531688444601696886122399765422766248750569588690317366644633774055315800746381186441357591439885116490470070713917152289608455799441717467815818593550407145824179751308289079998326121824445786738242441291182956622150484209606132973053419787666174640653444988828921852107780915357638343041846994746983825838548232101270327397698196193009019599837015482039944905187230784415314119103346966819616698589726315862016587020193728063675150368258060430461540997233874867392204204703612346173648538065494850651586727627464208026077780465117434483850480028049865408484866180280214542917826474989703476264788388669450648036919003570654548209918071057282989766876454552052847122764094037923476799804086985667775005353768003923105546016944924599682310111942851127145352650974371619197801047913193982904332916145474212872717204823960170067790615652338215695900874270759779744939233301250305674354171113130998261634297191345702861895216743326377271633955212053007741117304366201464579183168471570794538561673581628080912222888023034018013293581132349324527363038927860425771851229652989290810591643129352418030779012492747112457288812418536630712623658757462653117675721019495098702006375270862502287650074922111934033661747019579980828907888274763579609519332068828191339000656217404588366876829848514527855946042858390878775360835661484825874516197552814937951167988935743002508235999865786472154546729008197349207380575674429838825697835322316008161299978841071021713716026647286132248693173293411076430470766546421734695436878015369060355897926893384179428171841685811277485770136016215166631231870530108616912689225759346258393644795622003577379120265586430095321725938897879878800445579618892530657604131137970351745994051143081764054018980531138320147607488287704726996546939402741888081422578627679489889303878709623708751060911734600955139018673752824893375193861339643399325339256430700457004278108722417110610977940532152814721893860481013031943340099805419883073878993148100701846999583449221367494986188202372827043177241407600686295531052926944189389236199189418821259117215097851604316381846762379655786331724518196574891931819556195392042955640412678769222646351795776274443124970263399216918872599718172813776148402197550900976469046332432335111860390599018595556035294016205796174762214325405774384519100189722793527139137978676960194225463718056739450661551837898207302460077005384492617274615265079345554881644684132096553574181718327040416434199177867360297676842802454057400704083292216853985970841954378061744653156613381334485442848922934998518618792757687650775879687226653785763108040418852721470420644572532746987239761655633567247603179248418409117544208390103957577592525032362135905950431793745728744000580815196039108250464685847520008855208489864143323541625162788748589719548884986601663599290889779244132616821556855114364115599474013235449229090489870517401624794017513750597318067395762578747948059003359142894038676612202986175069778230913533555717155120276250920395720124587344665733558322189170979516529305140163571963067630546599517085334303639829741025030935258378256709806680537739885511122397527762287773534415099977859807985381791845979713800643440957538279240901131920984245626567071293344053732033474718606682187686275876986160000416655176815925081350966106983615874367192042407857196404014793216746348401295835325229866662729309116121175808542684317727493668325216343041386649260162877918375724805890835452790649107770121116045382889080452871665382693008037169717715536765866049889798099667792935604447983830474786371648065959097490334589237302435493529894395124193431054448065486935629148351804725112364617225692582472931734802328324839118314804083278098930360965679130090555042865767421457835087208046613428593331131282052188152033209720463191078705033623462953978407198381489284091979711686221028670768817973673463914414120217096039553932535686942619418213893780814921059928830895242964538057115268453159403416534661854336933314080134928992679058298471359430847025792891798778334596527953377633613890313187906504824845272285589238748993782385544579627565847070545912184003293162753167373667951339904157968722185786771593124527896490407721754611769320200306322332128172781327069079749973851067629558410242228090445141212260645432356011348176693694470159222442007964018264282689973238042688582175186667935886028611161633639506057303113588115368031806274843117874722598996434396945081209386780407353903933498373492929147308259248692650919847407497216729219962264170636589277938565454652989699362792278447771064103695827742393314622829160328854117347105952478235610394688263267683298438637261772297728826983213203498239258989790783191325638428632636979737271715066734388528402812093664484763863685719079108155297960690503139566385717508410570048805182994778689463282819279186250872332994542461900408894160114493674280024426458332128901657248478115637888849051636491526556098166324136617601173994749686092020383525911959575265138972352670150084727518521901568958821560377594130919128060355022135337549438051449219048236784079160477381858011176074350741664203151116388991471924663696202009442793883906753189262248129998466144017620016678983555194477912849945612012307976161113208073917022167420430756123094304252551714129756227028457825245067602321130728753297519968878623359449647463846201105446587204236480186414823498214401865686312275936440494524784786658989462560468572426959824616733043135491610840052825140645029158595892476368764715566793614169008863322021624330009467620560751706004792054017647668083131729944323132947583303591853041558500741734010646933389760356274364509124398325495121483064739512457145008696095964977653214770911056307268555004003042781890663436613426380456908258614430713475396819238469157194225130757789763244156973570777603690266028092934806313455060638232428031073083883637049584087415327346872862505350193403373914814599369250074671112528482479755850723264849410676664250139330490818937519554669245899554354217840117329161748776282383858644295810570254258809041283003722977379656326645246287228437887052272143327787111627921475859841326318020324804177843376965099004836616010993550405414623209122230894568269391344350224210410945604680945927911223767264536449092288210838488188770159198087739423336716607386481415784119090688883932139740677886402303693465296192217924456336355461270358835899027924157713398044899639322907398313469416052714809734076976804995858301080714633667942170185723396997469624363120230077407337934588603367243492035203350852931203125494853554086242401160448089229462545347987670086794675676987430804769461022816543016146947433130236763275929721568927280208948531277531329535231719065352980942947971068967114830996786759582487711887327409017458887372661971204125134239123082025631146455617038975141438595238189612282821508486633126843581969820149013862780697571634178363134122951952622776604097801850253453671820300466485586182037309385419718015001792566354714983807228564130596104537983192531856469801983624821036234814804402977068856275108433490050374589876792553351514899988696480260143811376056570179767535816216505431278535285428930426311158548915312167666686978274916867213707795494769116931588691521780952070868870284703966034806567292809892275811125834055108804625004118808345726113684608010026471515473318693119000595087779110114441920151686815883401807197781483572712144809709438951259498962931902192542791575209997944703915695844715164578629316271613812968981270927063142646360007505884642202722090135772894499865210835989098471254572206404140890309036302627457774713294397704561744889786067813672845447923440698463164099059774835339160549453618237819020402714540136662311026008525242152983618310806555809280721073924037957237605431230446618220936493468208451583487994270465350806937065991166560809454002146918595988359533787376600075835615652920476967544582992361336946927154353873172770094274124197279821771420812845127375406953472016403330220076615373889855515784702305874503383602152723312545153306132940503980901847597892622746000663308806279960450334931253108831994764307954775462264078626811174533122923893620686258078305081728959654760608838794870312632700920701650505724471430091431716412962260850567162025040355344751658723717331357593091065828856421373486416392903500354522578645097871319732150409695906958274570403492982586723059885545692831145539962129303895254559474203609245867100422657206138892496580541440377870829975536564338353109681560076985870657098390233996021640750369089098699174835829461848330088394501788165342617721981823067407067847465299931304378701460966356199403864080700326414080786359643056436991202325283372010759504386026793317343679208761059082388922492052458307818722562962262531319427814041116820842617682441975950349968735974705379880123238244291879281960680219469767230839684828391401138313723419676334584867539816605354207403179293152468169083711251985636046140288593577442465848500478603732730683889009492434637459814297797531379127915453573823497825954888915170918725398330469961381323034099849156270392237923725371916513026008046835147910075162298368541725605056839514123737916111383443011024804149083924650410761370267735488449543613720797716398938937649172086234307398244536093165226714116101019307618103968100030417468524986563061431030491648770450298697787301785019447231131389387504859350910702692610660561370430489447628336186824206835442576867496003194267575442206537606277504034077727501683287156357439249932878734480064609229023007351089059693850228285749011953978446463916010549077188608040914497009773689383874977811687020731173239309077928862621125541910566603209780871581570743387301782443445035070839227867009387577387775580229981122409399129067767780830382633247505406830547445987989624735641152122850091435383784195072093506127107389416175179221110396567248444230571117467709733266349568646650448644932354388009901845942823134535616753256467517580813672777917770292758267287486687743353833072573163528693454008894294160142179509992971923175441227365079743863017058276173657000816500990402255980634839268883284291978244391440281848823695714035470414462579872084429394801409879358626487826798776073383131243142997836934195194212467572319123464183765416828342140434176107615957589506749883031054996035394698442938965938249834481835666544666763956240641948067272075214549538622521357119599093113708929247340272025752323344701406160794553660813100915986460187239777605226977416952363804683979018562951081332852149589182888591332615128340639961293203331596844770483786977913901075718800233918052923263886100266932263941660267177952840269127713845563416122783252466505045268602099037367568700668421939790686535063881284169887019053010542888523821925581425996686699383428184568265103127233887244949612336504187638588205162110048521864182455134925387635593710347456623561591673801282993635275866403100796934366268692047759567895487426203318135983780071630664486302307606204933360094203183121845175624347074221970778498916681763523036123408499882893553444979526822011205764234489788938078187098729420518566567510929791248702198911947272091605949508621981171072009634455989399079214284285234757351142363687020574839515874260650358935141104406538081590804558220187746990771372402618688562648010677052685406663281860891167688383373560807920127053140205889846232447377394854245961144921336051342415092273137933459177399654269052024184262388647849657760248678242854565732557133542924539636105796041176306753625284862336724812992591597562536608721389687847112882302828263488481149913532493689372488229753685824207515710520130753269932239445080245340627225404580509817127855236438442417081390072818375558840358214591878828419159668054931181571466539638368591756716878583808160682542647432998010874315906781679003943453447659038471290751025320255111742389689794006580840606906076434094341234833127844871175692308903667600275097163562244366640563923025212187991241724837829386715405534054114164417245107442302224001227115978334131163027305203856808345650095933168546930319634366049537609715128926660710096779769367214747982431811915913205250782510023640573807503274965591459459226751532446755138093767514172849167295661110235670254090613524635808389777505086236418131988248871094632349713698307978171126057027552347149423975250512278049583500951016099939549215378242665898875693640245808414809083012289267870046083573279234582378201424301856130589243676870239155285615598261032568265118544120144695706004241864700159203259466161199568107422816395664387620959464423312238277584586950015234795438364358687693306951611870405168862691362724355110028175946727882302094834811820090327698004610360156520717920033321020906466689181956181345894724884555236534940299354191088264032675006145368962615714867302435387828107631663399074491842669632769944953328686266351709687558278851465012119477056576878449985970874635937436884648401214209738504030564152871919762066276244504007613291976237134652418376250569456361919729975010737659995006082134364079073906624417304143009568431001268078559506865107657355755225230181872391386636168124019057569567196320285821946948756243810661075003461360982113388514790215138177182226823392661428114567258593877201402317665870679009692309717913534967422011013561207409547854855961293897387461568794118580264885846765509344912035373081669775752506100719027257612731884594996518604951880212097872365703068966576601442227971766318443623042544631288365785205568499102652665098238416024717826917078853838962672150139316654511179817373816438355963261728271543280775610903399545880473879480692533916528653550606216744926706286006793404633438311901962276564635141445021479783151351992052382131926306677613692977916928259029937990498648133482299894796859819316914668810822603417850581036979025906985278754610563668926237433295359889244276804094039962132146832824159475604449686353218196088123130554109273219987286789584500317830535258545804759020677246234633078769250461585390248896383779368335251416568715028058838092490621664411246029033980836489571605766348210494859884291743989232776999222806916515497876097420544105290250530505628131078994676649135137159307874830323112697722472015966032594605010608486212515765419363728264678469180663889275915803625057635145310240069149568134812686991102929612804494716797306757218731242111571393299704928648713271321133695082139593134237671276053542420850552088237769435116975328233062318846185039311955837049043432374797737206342935499608050314906363109631022046186650542380515777603919934330161983485082822838223019567570715286587174231183992329502576623334272580230615197322378956545020575826758189276923893553808272121328189264450036989897654537894480610974609312077024449773648079385388350696370121468401974255901525219765649019033709222223273972917484563808330361021574763082658334492171152374550670956577770075866132040749337658661290973921655014360702866565645251591477244402727301496553142703907197202740961724491600840877115630327969601601481956912340203703702589014904981536535911304737232631694000863757623403602721628911742985246011742092104065427714585265457429988755258715321743811349036951028806234304048402636669077788327089820370386610269679021165471662110542435432830452596656229448064399543401850310026714436934113382320022910298821157154664357527469262103595336834975801474887162191447013772897985344082663676585250658804679443375664490961817666094477875715996186326132303935636518635192535255018899301493224405122990581786209194147180632577719105094501193962938767065407811229746755152755372765893585543534461003441786175620380529399649891192505811862323479927724794890498398068813485125691148558355920790055629792120596985506080163153166035053329534583782604998083518138916482066150759519725851904410597567653769584294436050046598639795180651244858382548304335688920570308110107702989908534818005476753832693790503286502036446078354246960768637724521517656748851653622429208360973305857487495172665056411677109136733119032159544083497319058387639734782016078338522471434107584748900851363542113328670786332491117736797498205451266363603459728574852009538681043290761255660640943753144309750808615123147893224154317959535661916529399247823068536562121640916888808486334399589996146308450039131721037032675107811631718585158051798591904140361559779136041344210714191554065207384677345341203866875367137822011452408217440916665689097530325895557859780297308875139727631037317839284461115896322437361494218857826571398180228944669581341201992156844967100130350018565425927653241719061206523301779614275740499777406023624124019622251917302955590160343630776959225550816218357113665533199403278417046748149794144472220194657072884204838411713266734651168176304196852096330974615711611609341785186354693068629357966692103024325849602926807419781694554591840192418845714701326646377626952593788778597881002648787036978227108404042373877015103039582469773395092476146369129457774406799879875898298006309695116397682684931323728538741797075039994567285812720710303760434908781115631461210722649884369151059326537274600011661124860237024933067831930104559226523491420634343495000056401639953892472654141516863826116437341246123956621754474432226983030242586226831049235577342908576845883333730571591176695382943712877761504787981450000670947658814824935933066568052812652686265603532081768321588836943796469713172875102014911375158226774498854408826659188999846541532863385971204911397023340215329584117444967790386264098669640636064045316191921489561003713793495799437853382530729713261451099107670865218937718833985425351835669090465015762420213895884312727201166749442895704895066363879956566486316312878703633135058011774139254981739013403500227596664444161675139748368978669725407326079291705667012499769174219118619253872620837540673040097430023424024434923938412613484191924992920663444427057763623876393256829103405925690969409034118635115759427506840556680269757172108604249611251409573984266818756903203448210803177716449288986100631729929315794399653257455739560708855867878561898826080780963229972940594616461570541671318917277625426365005087381762262654945897498154007067773910534577772960684705960373922457554391202615713986611974167650623929627134000541823989911176396587728707491460466545717554890129353298993945777221462080558633921633062410577189991144911550326697426208199253854289035022521344092048593670664872634628091443248982759576954963628671799512044835572747316522904898802987599658291561599358845503872220007198079935573210197204832996964017173325833133271136399843135507569346935246465069642931251445568090384286249646403470640112559443930154099657477006707778824563591193597818500521729934243673281502658210862796495667904544044249925534137521641980892046161013774023686035180404991447885553651796851418179262872514477456204685637338421817249729108765150774523969110336788463783497985890419675195004085021954460390383238040348069292734070107038498997471882105810459190882033265161437626340468680333417565925689870971509875479442347953485020654347696713815882335554170287063474538319016688344395792378371919556143736006004589223104166985126823576962433884293266303918409457364360060218899251427451743384120058067551244894510272322914308370955194653878141765774329497475303640561871641079355330696378625359368567468016401848564073799177270895845900447519461938791907962447553543159326174008745756712929344000797340222035225737177086020716268729403642872136276239927528738656602608338812129978014828198508290005746797110185481894623562547781669536818733718706552038795379793304468261693956340926563933076125469326660335061961736192639674511990610369946090673471619949671892379396611652279439532414260110423893440911325393548560488817872433778740199841733044566731673684798117854346023359242452511595137494765153283466793040092384650693314582269809492205450899337110172465801988865839251770299294730587186155709433967174589320570015647285839123806662714481331731090328594284381498223349774106326184827470532039005340220511162486033009642909166951052926389830047980541186978298813018249720771081895599466823888378064986695776785589274199111871460509918938258222918049592293701460446244726185130777274815824098580583564602931137024895904963897156403497292185831337710656228223712780521611705361987586702613241440271370974827607099134339805761181515104868142474464196012074553131738352443283739838177054248224941361042726669935937937070605359696761470492769494838099900152844149614384522053696830050812234891844066232439564247973937711592781606145570434700898093840370198512447503267025945906169194655424496052743940041965391608952135705512878727782797277619989470444152206118428832458371806011653961228437680825445278828154848206206705761332278614301775242193874714746204494981381717963515179407618737394975833403115284113152838137914239272846849850671787523930875406303105245818315205469092604927632870542407007448369553944272802883859077484868003759140374146358529079407881978073897541568499055752909014608600340451165172898749536145132932639648086391844679131666198268220370761913443185040567952590815229172736471964177790756640749579696973660535265249541265194199122587443309627677633851752445541360274926531897357096684843745099825745722899483030426380376568716061018055849768999859441148347257126134421942044323572013399944848344635377905302241052074901096426328052454637626782014991727637833460973435784245172946182179298992227502916990426602725899143375221512962024274034868713403312161657309366346197679719247461911684142038478054846579578492114339508201391599657211878678331323026451574186359423886872261372603266815157505581805479545185278782329807819189715973274200431371512966888559085184861450259010887753277791533842366480631605503382423242109204303853639035280906215865306661294503727969410563002274408009492548755870578370355532006681034393647952705286989074406718553329483441384681941018919745157364703901069508273011414919174614854115363352717619798014398380396414604318524869413964721948754351470571805017042886820364401520500172168631780973380135236416584389518335645886483817512145808307953733802453813160884973170470056380688348397219341881259011735553674869880260313334633622574601534419253786061286938573893215101310808661323175351758907350111931684972748688303554347853833390390213513363026000875910369164765785826166005896954822052373124074040958314491937640690042739595997838929271707097297041035171978120708273330055808483883166019582713206346341669369176830285226424295334159975995993173567609379259569568430418689870372071740836094462877025910215992758945203162247656114060715183610615074602327905225287413267963320558390820661588155868307573638980648485257018800113037929730346202629453297606590584676453213271779365400928608716133237838795540823385504277036237477804570603420656095129961069338928697819847959322905275892622846891588775916188585727829430570571081265657131085481416455476504534546668581414630504658890048810664814552512052085314502291013167110886257245434821371353463157686974577196364191208998077064422288667438061975564683245470648205420080575354064359402268723263117848909878646166711792980290008985755553299305643107921973815512896394046728645704333717697025453674238146715139088957931346697214841332730113406112627458109901032148791301447773765988904536057162480697616932526661109892782516434298119646680865727261843134996099744374492733174614217519387263540172718664692391194843277749315619322931423826471677385802700158930313629418967165184116536714698728638822507443768067310808035318069720455461203840694296807395742525983472062766712758084073016936640089649199186073149162655771477427667587881181315585635193312096444559427462053756235879503805524576439170145801464314708310852325916831563778529444839142970425032652691384107203626887734394546042128501932699608971832208848609873683078800033007412569788753879166668315329908845499906390763187011177280207318292066591773290768502263253154263099258128567666372728870605335583719170259494300242841874300018337516389696745884825619131731925019699364979758047174565951947497038116200995270259380116478019869440387611582237769334499691149179142821520910089606802584396696515397855613660995734790553891698184535320315313796519308579371343246127596193956165139325756227514182983668485082607595379848970457292397866201770035091693433299216167390479539625085044639080340983702057057564366173044132742451613065438937893461284697336749543670444484495918779608466195173947228272658315903908041180905366703799481923397552090295718737155565900270816226249745571979433619584036842080016722176883754579938210472577056856140797668466080783807189281746541021120260405212966084111302917837334259872389648708349956449172906350281772418406120378425575064553032699190702157648868439979711636782183587336589965856300289522384016528684962531370052932935518470254039161736303539537538763870520339882486580872328521279256272586994290987148962789937276290369441313596400963138148357502354377231025192127172264747135532566810428957555736279257923407663131078671606779423480841458438941709892192145336387355768790761491801178282519191373888711302964086469148618862129855726695332021221366271118367577050838247700664386950838501881214180574933848885309763571050715455391694478825257436799914339320738785841801805972391586624744988387562060925369826578702993441858133780155853769635787725263344478435672028027658477745582737590488164413827085703003939830390674801598157871151929381515088411735980201266115207641249436181739560611709132522661819502262319628414415540344211898062191583492765884691288012267293337693800361971148951420146228955570587775151352505399218793582719589189347987762598010891578224061948447689059873051497420073906370988573435194817842958727512000654256777072909264236245256598723025053810884043645808502123523498996395280448762099971536581506698425912235606965524252197685662627632368751890536749262254033195680355289864289024396742438485326036726577978252998649907588391591664812654238749879502525616364518144313774607646271266395804016032881656919187444876182353430445040636356367215104601496223102417987826395550607510668171028463920478282042912419239042825927528175245008689407610727186879635929224644988331361830810102033561066257398406048911883491885297993642310399995286697359314295583119664106977538169877225520341945101646942697390477865620184511596098439608175795066225146711284569193679927978093604034186227099909930934269422907422399854425266103889741761846738327459342801841200047260203380698102948724163531064564228428653958950025128137697353146655149983664283120433025255185459856758072487259070816374331063811946618553667887577779575088903741878575497923491997167582007609370582587311210363242242384842049149867977131433924524271646233863098059216334100190471798376891394671221608275512094013735376628655551376275289497045197633163458467543470193594969164138429205042480972070737222446650182021644596767581414235195176757978153081738176056741117265101179084398371420371656366614699757272033113862533692064537935546606079048632672755704580481807899989315660453256837947559052784791797869746251745164366293277040318956427434113416100469153680841031883292412179802976531594951609442446203327157958747036648675714243134243565809431622274095326984093977986800463935536661644326558608313367859185204806970095015845866024234537413089559992249693028314393303679563431365721639622261129325381659962784693008601674795999611498179769177535909396144854098455454008060508300774446816176935507457194257026024470331220232209625680316706974024722666318667486571333795722137143697824532133264002386146874577907477393184739845732811779280706057534639951812820855548533694297568936154884112192805633668923562655630727505956361629163055908502804821862955429892918832315000894593998657073926925446934971712040096588041388688028779751799627123523719134281163860736628365673816098163878812594617554884679366575696647707882385547168459218656914133578731392738244413453956839314508359437963490759881024014795282965896304423321192292202156558881587837633416641551550270907227982803174641726637655271170938468230353092852782514174568450445104253903551718587297710636992872385905226762189765501133362344978634499458630770018059269209293279204194038601897646075773869634372374874935549973768275827641347594696717576340182511296343267988076148348590621062311294273460457221510978133746238771049275593177815774893667114415876268591376527783021614212615159954563405638284644677456045566941150711244946784921866227193348457297153124090979910481509833950164022747764645436316760592566157259303295537973776048128468885967375987041655925329578245300824343986566232514362031528943012227627311185979058640671326078716178877906437353422149894030250861111973440814636966450023556624038749371056414334048180967942565770544537053284453670091817279334063178209230199511965850404496821868751851775975925612804703072526184399343070100844133651919466134025173925762246426008399504252049013941634009575271272190855425672923727164420598364290407340257621208272546517402351743247506304422040113276675080582706374433995110960012401719019640030861611226462450761114956432386380806311023286067976505132657542287641542608895802427854157735121392610769138471670692371208613290806496138807816519471472616353049095282993229790629145024440396447498260203740556807150470140501324445675973124592911536922832094349781608731242649444752079203096050811289801532768786997027361558860584245205536736683245286131838930343383384954606909385934927585888621081989650450516009889003225527719374704971308462069258691876489458344926132817684021106770551004802732682168406563210324735399765990674889829688413459971923101692457941516602625787079105861366540435409233803362124391512820354873323336531213324568981832876103349618928476450257664122434981695785150024993770823302541355103377440782420514829850853862862794883302244080122167596932737020502026424874869148371220477369844309710710273519255936276636890118428029464992823969336023269505379282431988482628115768515847473896737802521318242885167962321919719129930239282090253535373691801621055806508545675135707130478268866234902695455767263698568573605610438557358180845257788500019085278807632445399141902761215405351055054425909129887578597662398476635832524665791684605774024353712797591003707157634390554094209257493835269987559859876595058424973722237859469318830998832523106720759217955786916976265183112786166257964537378537505509686377787743402709681746761589314377714495909713694324068852897612312025414974571003448696760678713091296610395035286879001645940911667731962257647648884111927118963418948687724276883388882001647137386439997141477124542922075881602678582217217675385350246450388857587199043839288616776960603629196952663727573401574768739627716633619403034364868629312841484899122337819082181133757427259419217733647256271555588349152902796319923019826535730866091127265793264171744053934854482020845853110409624241860121506625103957666528211830251475680474123095576486199969750772830459920761854765423871007573684141410077772028403478166234135781997413224603414377962505597603416002525061626758088677921554438121786623423095095086563344536263340791875205107309788999093911525788311428411928004917057720838062332887990702954381179522312715675596523902382228717032469094268829380013918362290642030141837020839967172250421962853057854969824080250885421839705783485274965849697633643074239470299577532692164078330696553145856720592111395140237769556071851642152521517411131147112156849375479024905655011866063926378353373200834182634607018889884855183460626453012514794431663249389001604995857150816896133960929239820559467365829861673871506417973237843669056826410844659454898022713364505221769353559318881402849864720662806082647127737250250279003102125976360336876166504772369126798669079965212316700646847364729897137747163357748477859089483681843880624024463388798301789254433883871584993515921746725597513439253463936507610045936849046730128512264615781562796970092862112750044929935436698272710095010868547755166626067899815460705885789078972546127138849041796778874316097726656409642148192276693508414300643577015142921511830448980757254939088838907706840328989549979692771489966485973554349327079480783896903562049046573665628717343743898936731640673687228970927016926977808454769722898273037306964742600638938125099425108378220784016269439843369890440836496809353597192343956624470310272857082837474139163749775658978120022579579017452769296537663432036096586854869266731008380892978235483624836057088694758370803025008555510537509169186712424370535867783967646573523343200640394508080583514674304668592419484039322499499852345313137025568140280533599154716384830417549579016892569733082955703575225593402953364091236447028126665187772508942922628328331943365337135164606099414775523336016226163090512639545478381511470890863009164425955755156815981711309656004966792015527157074952219146803423135763561890924513409025856483805475028821810346157939888603631431887851151148117571887324063299350370500211723261703658462137976409131319470810261476334761936893919175316804589795428650120417496974851148645813648091110679662621272231943036510741723757213555783889163454030140235606123383052575781934151476597899981675813031234634673478019694552641554415859102447109656086208339036638980473893404906263814921825170886521115181075589644609081710791941816256115896679048085191205358586866667825220731939004792454994711917837458713640758317386004698487575287889949960647331649878643415992410621098913893785734420452616149016051675833820623735563137466643567478009614773972472757723884077310894259225343638363187054392628110603289406216984062947722989169269717225424090901588540559012807164682512875219876634941881283842127459796151844135802642178363078762186823761914589771926433488018023166445889306617433565365320635473857077719896425379505887225537584449744608977269904629143879082535814333670491341428336384966351790238619947865180336628927342934482478989126309028896290401828396510768229319777334880983081060980900074115422077247159588306683865560716969454215760924548330660651719295701687240731645133146004042977355313133803122374673871524058437159938558967462215226909037367447647050848190789055921281398646537724710400900784524833347831451466461351291172363188092428480236574620104612693058840047079337295975697402652831166541521110009876932992891916710911589520870353016854131087890818265072143532109338409746929556149958427841656226120672625674590489409065404377793285662715448723523905698754453680985709388978890915614441846178256289352957523297429244102086194112294159200659004558405217105473206658448310047416542236113500456486417325131197987754851200712259075088719708558346551159829632755272250434479496000577523237923681037240645816838264862389959946485974550105437733150293628359816483904950451439993196113943581564239598496488257261798349491108633057749043501361062019060868807937177685961314923350860675671065310855607873210241092219394074130739603559289150276480440448549011161887156983921933958202354705575843448864392435904424054659559534092113286621906088914279566149518385315378285978869311364230139413642541697952972886958096435684399841082176337779080068096239679159703601962924633904678561152118772649228453252468924909053625387130035941585222926933877694700655581616341467465338061303355159880022555893651235755788684315688912398242619706901315891755011296776362400316906812871396871133625407743950548740468247431892511419524201007740199752286058195235753487798303996929273325024787724239327813438756385075877679412135107988464356776083423785177941316246225526663904319723638307599093623129052229558914717279184129564043778081058022583602810516460360506217068769556717718072856700092652859098594057581349827604361677954800657310275448321008346142209513798041746287980939230554980055908786616529912336766372075062709090830496212200602344856375120545025005743866495735835025222727162906302074710279671262292821603967970668156715142885335220685195190284683260026201630758741799084789080850694498977424022725508321695906173825078418488232841833828278454709562046074119599064054030120276548869134732338166486857568488033741041590632559921625138180625963066223777813342677165391096111435500544821735939038362703288320222933031339681253647738028710692473712510772753831894215588576678704124412388469663298844076954773722729371870432063596126657545797291432112767922214456530401834189041316706598616464799505791606112459536465825503696801784081573207412243242056091578450004822608863623366569445637862979775221119424986749224935052555454324360193468603179110419839365922442151208710733134448053649343000026361853987126222326296737861848869717509623921262498391625994157340528739429500385088276861570604782282682276123233289244128609256743655568491976143745467144588853993438670666063991759463347911627016181839046717473535133578676945377635501840175567546955468166234667809327557287745446888689119630678451201299349903695928617191543617150242133791812221838108210958262981610461646480558933999523489493866558763622679038370226285967903463154755561477191706567798697703888503079375286394605436746963581349203446114107511675704078961916455192579057698161183544150078268448088789267893237432557240604116299980797349591351453617518660328722637994006392367690676399387710033063340722095126268510249546248088497804367474007835366564649753668312495499550298029594359159953968061479335200125188577195369926906570683357274958007648776935907240387962036100472804023099784622185539814191616477432844447512647874779112949595386217548667598423442559663138117835154621939943130733087804423500023940977162395971665132360962410606716331295753689497105897875195406015359780646541438830692171689929226889943669396548340744777763211341548799249469756114347970351206596504566493404761986160925121874147730478083694712660472452939609953009768669042913868059510457975888300677730551392127395751414421741283747352139849401726913796632589301456194790615113239895507808962197439719969331196649341882050306848139112627340572250709596095355550222409151284763467957132432533965915607062079683790996916398323093237469910319752779048202465241809401967125632941705275885443834978395204639805380833017020736296915312917344849782439385036190250778598071134391536964070211657938705269293605986259432859328530242832695926727832392303754989163424187126174496000706716902875478646009550936354833289421763855940115965708738855959464296181560652162646481043147972436855264436048043586629652892932477188634736928452629062439396329044955715164438675006233621773477797838369492920556392594263012070160338825620597798392271993353156378825892863420404891755520346049307008248545310014223045016967672738688202148863544939773367198537401242953542877555200087018239366570202476332378618444610937328761647470464330656763633564263116162982540726809018701597104368287536590464771087256784409695600493475927347792241032600826537283079839891009737523258653278092062752637683898104396227105604177308881877032814924636760140065221163694226692346429887221202851827827611743609226579818890695948621768118055868355021395045001831858255902154160044351972194038664421843150097569041852894069928002470895154898007016749782429610796157461719448484996771356436811839412914603372815700816879688517762451373728538748623313990401972207033896737994552564253501779721886482768688350613832472778196800816775483807966539971319367402347752867056332867737664805407454283485193166480441430211604558328436826420774504813437157867100329930149704890182542256538290425882541211967788310214116990979177943535036882239906344018642715264302639787522560608243851926306947339263049561644657816887503912616457855491324761155492473197128429610983307669829406867418255252668501696552151307433187783892884814116211400020866429587050254821976230745923436204746350149193238630372378196023318667073309316308512777232709808754732572558184336721997998874622426374991218009718542958182015584800477438177624145229307772181280949586409654462911180540849390354848718090111904186696241805817578750965884310705524950108146045315014230821825864113596082001821319684066330704486021459993351432114993298120791777781032111453359677542646316508480941198812552158122246159192212959919867259259359027277986070329913575888612771609115722002512522202653154624508507890546579984925594767123198789869333602965728613156926025356568250471464151676030538004946092376823002758074127116912248767416139202983800505731974859403802303709018072059293691386268762312416678982610886957974683401134508424167730435681967547804857082856514951100955945466221869601096221469538460734646189331052782176262855110556048169579428423689092682960903521627788387272507910687551208953922213143271974985092577294681187215967474180259808564512912783033012370414234204852691117244403731735258735567738347901164010409529195808481617185430990404437029230294041237901106423865042370499517446866178055257624311099357732917327350362331630424041769732780950583948203561845277531145784136172404378830326786185471013225565573085758028160252358766448796091805023709243062334023295740733685413624434459310284166788862130697184253134009167263651448356117468831023151452251806141259941845547278467230479229345561045100687696775525313062679587030729928744924125991836287990161436134935594420434525989971593804787485905713810434344546452624099335276256896418553917548393330035722405127523057977898915680317572227709576233612293820055520658366957250064230365721737080542685947172179069832296265237115048435353125494645342831407283665157679912174418867248546830504374091864428999123353913271619513317114898376715894714303695747170488096743599143050106502973537641408033446730507814286108529579260518138883064801177703964326633270212634647917407061259183217739928556157132408824263689430453902895270478181918441149029189263365109671881778576618640328020505148076568150090247867688223891184761902029687118314478499290421395243521571336201957594781680167211097906026201498402936965789587503622203675894680985062407434829413343181714653434669039360608475276286493550958928327594284667937368959586641402396382815763664280509271254787916599590804087997277257252447203217642481839778413861642701302928170562435051221677550670085690671645598995872201020142114115170213732382255623654874577545835355388426970228460815616687805707942925214856639825640528602019354601453578203469326923997424805418648366615526480677055021323257813224478677750152729798984835512527006501823006660535052491963439796667653072680750353694337968735436641619365389834163738301454094040786955140710152144400707531105317477560715098163175040131975691981002407193220775090768795085631418877780557554587381899443476050658221760313924621964347269910256523413087871802143133933492436175530486728821661992569437033258126945818078830028994049341031685907006996738568221211165185425235334621088319530521777053804689314637889411938224474456518089369536303697034602111147984692656187768779967568097002691755450928620630205033295241103517581467295926566760265774353595577010652508080362608282157412328546505520425642953814599511605125072791915573241204057583744603273269846263297948353296255381658016281554630575491711323638498794321308957444098296848170464674146066198973451846844864494507604179512109837196736781945627327543549815748248841592169220277143255170023279441608453996453023881123503675429787729922161386259555963119790290212630935381141020822019292298932671420199777408185640691403821274583085438827159164662218381065791731151377539825821378227956731062554765514729588960478558860925872942020637461904556413583894839727613629846514057764607395735800501497462859687873186306446699819695438531673215499217287984640788135151122296658045681937516720722070981574820799151386168601041012434433627208039771870768705264931099329022791323942111502801846410499565419616914977745855106960619868890320251671003084188783247265239207545949776926845017461021793366190662381478789139551743653017520893795536643061661515809174005524485935348537327413060185560698994286626031321579867654679422817564543387301084117262962729240688376760621477055540199519841898579331165463337824798357814772597739962115705310222780890565369950399620239039491317843456011951023085103843007633825611705020052069662172658468818398822195387197865367884045819800270539155757419557217772134479597776521193958554856341647435259148696074566540218089342497215481154404456647660614352578470187302760677305324751892683951886667457808493356423495727766223877624374208840831918665035204899777395625312347112868603622012373533208347189962553478205871265599765755050306514266911603746013641843604775759762188520275941246597182947553696411382366226323232071233020285234357195862991039557964874101974335822183232747082794304663840443806540442544113832243312168387765595479939034359250171567239081525839179965778113379586824264791173245276551856626199267336472823761449164877928974219579117429048742786133373524743226789922872220527832627624267960088782199937600543012329322415118891281427491748994606951822656808441203006906413229917885411459863692205628591131824634597999488088423088454447023295525459986118038408561349315745534313360943860211217671007951782674099101596392452545034705696583620912863334827476058833737149574221639327563880108276249890162492508200542196937572768145791093337781602025015521837264233541957955690425740578383290323288993773076623147213523796479170801820904332705485571138756307239557401890842164594266217684520619267303882766019084257739989916794154782832656151360939383537889725083961417949198628605694603919202618979146899795075174139385865113217039777661417364499726242336836565585182540822606830580698832659173545053140986491515766073113609060375048550994966997444573425946612473439567242795127266746687626484437178466566760296139938927542032180920484176750391733136576436286795392552586712620291954965997795267170011336051095085387425357458553628070810689780551221598941855000347093713414855831920303126618808656497680182962078543100828928726482204108650991674293600492315554203711077285083351083075637019348111372031780063357093137137427406639681983873932693252550281669444714666471895976170097863478296314456360680622890682861954829637330803559792871193759401421954306294906300664606944639639003967051498488376511915571984820750701204738814941363853856424601131553106471519093509834329001556293555191780314071830337559138068205183049671202545569728753616317976909680699916162952194674665670236805337659754328890099223955239610510862837061457025925327754800136848917462456782908770134194508889762708575727883987691927501526233534479569334344156619044486928971965585791186999707023709384076292791943395024389956460220608461215761779513160983519600239649966712432356825096023960190778153464810434688316496315895063810904381956328237580951587736360809091574187704678395923803379447152181740136359125667265490990188567094823664668406816140778931900303144648900493869508043999632383043596008106702575978853207213277104641843322237315350914889346012887026457796888290972613395145986733604375024693610924716686238376208138439843711245075189590044548929754451921333764569048503553084640227008273791235201453491304652256362933755349069982611242102317123197104820269718506374362932380478630550456001488330632743312077205651691017741514677566494641143927583552931822296017637942454380934852991148246449699136074306145228212630310375734892236195002431110227950850259466464768551144771776477673643437170169347318076285275133559974590627798376843959767142696048886205462178388769441961264217399320057304510096570269523389184665073632927795881137896920923792510711508307551552645197841101707460135196562895688484073647646118565094424028933454548493047916958411329524380129446949218517321135271417038029885072753611706816497894769238807771874675429205526659053485837860002209933988008832052498537517609939410031884609019393205673222677054788697144057371637492658246042937946130199823135814405812918077931229750735772572265763614770767573329098569382312295427155877254965536601570515623389381763001064060508665466476248946997678126238233003852714571221077116742628854300228160013239908141874252299594595861669751927551243489358939005138350916884692781316504012270728997640838697587459905207024435984575859146491359705931253301688416874868453646263493838162474325718592884209205444424923288730986606267917005961280452982636141460261818629144593400279669803294485898688496750806390481367415116388435283164784817824347817057172671524848687697637565046619089333069283934175141454238851276448099815745866814527940934855968511906290561042346320954741876092156172635919861004215196693129596252295732103493023390207694916489422996828560261607696918073581148894734543111365189142497213419528980684661366938267951714365864005949978039579482731479968969123934937469270424667654422891881593226459465108480882793990732784556533018696199499539163841756721555498789160556494900512699130891319578868874990938930457704748955892318781743659194669341258079442851707445897114783933042640902833630289562546940124395588415924913739596149958431946026392588119419094541462211924271321588831185790858581584360883423300294862511593941316948851502751201436027821073729987962783869531513403202572242575863607563645664202300314692213675373825869118205947007600433778042932977710131337367899972472663934349329453188291117898645141963540820394389239056152319295449519665097606678364422500251893689672450377681122089783160001436493348842114011362280010857900669417998172844906793353131257518052297288424978240113538356317687490271631391998535342099675985217968895455958454772520898814912428354725846990961300147614538916601237585491310772605651186295963842412143585934772483417931576070729428686709896896520720978818547829626348095421134758953161664113603182532754346980601373144878177218952984752744577899879838718710198217649585855174668387135045707755652005299626690515254495015022990252006344869046562424967439352684201311908468895646187943937306684278498551508216940656077035219576454957077894222702980444308682295675925018390296907300887849808297682131686016426275106347856650505064079769639184648084753040845474114290464802338844374335892427637798400020739731570888273556631671985469909565311004759571771177017949743322062642267817027902762809974667928287698510588555697661929744149970836177928505367128381478091931570341208039127824208468881677227723539900121195396603094251379161757103515843510774092753138587795138246900867085041140139756032438957934371520872954330157476335667402412328820666545382870008300938398896618190965357453377074867158423537562817857503771625685486653858534853913332732917741052994152462426965575870307554305895915163254633157451947626419904650392464117675787557033814013876491376843778359690065041151775161049182315898076718871185563232395301910061139554873254719105888066392494158419548475097717661819248826751658460371072136667933453686801884205815776729159821337338125988044300399299956138884807877058389754296877325819569567481650597712187381018092302826854067745854396137831543643351927787515823413567967707785256613702582093966135357393468438783444536491744637874463583383020651866462695360991571372580926517517534499661273035688238069960246683185855224170377355948731185925655890776295953959971932433686857247738592625246009075139846044430026849201903674349012341094196943308604385844214237589325495276320589588280713412188779188143397928847801578151538691102111593038130528932343461111818730933976495665865636810430522935286314259337678308259777445016402560403177628088937719372553788897303559935338051164202455484150319130385795796493004163496817252240550174956007939058121283718823463787333717582506482432236028246790683763651553207757742255943005766002486094067044828510239685276088646671420017581820097146459728642144835954367255710038728033572282477372854564403907513317719154151571219030625993035014755967630405369662202108627075630001088625914266099346224027119516451398639100117334464055078672823762251941301011919196969590314629015976578073119540366373145462772168942303867813987543221983866598696415458982810101647304538151676815928669568533426260649365685125168081345283250043696508111543785362175515246181383851324724807859256746162355350356904977783654386726926011757784182225155565935601378052964833330261319691618479273852645554932650264301918991698804882895879718677898565208404642129774460430822457162421112191446988943909672712937741142305970211699876492525614276458500274410437108790308053934657996798478752911761398589400074377474233034007973746615703294197514405004935524799099582592025423379065956836582255204320022222492517377590957995563155566373320816497996046220669844586042681232503019846211814220683262823787576684292942059677511694177031243131713991363302919232156891874448878688257474229674507903367165655522353612272478132864982031762117944832687846179663972347044694887253352291271743861005525155770986234377277552707016029169283903007434882699684155976713285432935708015152709082117167528712287519128405676729426021822547813084489842549424278489005980451178961318234920219919806476377543148179132712572959317072308107705283283693318993742114847648523963275306766188057497198140754525628859318096718046532791437859287660579007189708196680766412295668072635245281688871368020333743753429855747826538706014825429890917809720196017809071756274561710101932949253793788589215630302898115428337735478433441595868137408708093102603501851656487940046857360315357864420909982388035140423202971297422200820034014330680889573156101552571735406750441060588543221987474013356240417226748066193057954580431056800166449680471526637989880559099781167468371684996242087377402537450529168797276811754985717508619518502822467519840906618572192224504057943754464308772538456020404646148006057831226487766275894360222994495142488353313956788114149248279039563074192679261862281766209175445837182479090400726401893187852226337620199228688981548944644625550809533208716806637772400915512661156580745490210899070811381603177168251529933978290114997647107088046613405680019178090895924684305326248056069849612573140759897448750807714189043671964316795866584988675124673314581416720282446792354922812301146981862078240536447877884354597966288984618058013964302354873344330439551953338343823010596088218333110678499058882015929236351306489999184870302339700188760091115226277718850880320704860597353878211985866707730209004434532949164360856362986543097421262296417586483255605091416951448354772464277097523616003486208824954689439461171024631301757445505941103407571715520390566870271464731595014765595436037980046912909069798855340101764804020677498339723126659884072800855640337491736828723466745633169145493964991187663191816315176935258467637158819087599051455340882393936734918657092005806503508507230077053555982578827429581764813010627893052587739293909414087345814476391286957044948188808716384225272132440709004669732541072746706094910528933660891253372024940574173525324568293154875500970162981807526053409319718850712229939876779009950740821112846939098117004827347423613312531785306809946889143634514803454619360942839043730363447076487885842843983307603016525554236110642874682431324366320794287828884370937360692616837213101885336769091266405486157631703450413404795326110841877670261221661435960844215948838379979991312568110452608908287929467127535592595158822155331760086130403814844894281696339539811754527200669487363818404251498987992217688786187243885382604124405099909062563879769221942255688029071876449475899065816514310478725177370094362039921888719049413455560565151266876501490386151131122569950479162258163819097970792918057731170513859636132497112770106220566807984212701553938757412348943953890499615480435796563885180915364971455265137585554435322726532967204092383403910111630787430110771459574631132042790486453121312523027028979028679405332320457801760278786052917164620841400119332159720011150480161784794947621476623304051534189325935702103251904140508955424103327565780881855909952402896498661113115511420774227846210521855193934115026078793400942148142034726463939336030200885218142036684616263802710316646029300212554541383763968316657292607511091429738031994856936582183927249346865460880322940561057281023273474722334701717095857601576579713852458587941534772216572776294090800965255802727010672994995040736347389553341009994730032622066617784958076566091502458338927553978538777019085647329085321728684903493246505906664695452298407241634167535121603697210003022347631813181890260732408428046275735563989751424616353226250897622754347224892346958881081627042807876089309000460495197528142901011716611730060851443928631962621245075110690815947051011753043455579622358012733902533036418705844387646290633662198302197220741014285529724278830941907135446577046659262806746161631959446596229828368956141103282416761593163736023771452332556930958460896292294046446631235084207064786092173286300824723817835388657776072471323717211601590926525868351010257565151275528622248298901717041953842239036354265028251862547380835687172894919585954962661449097627416813175478119800891603744523027534111079817465976350450374520179502794136401019577732335360828246363901556755204714899103802559161821122947001340486651571264558499256758559307139177932631679106851831255432938699829084961343267329645748732317008651363171945122608533732701671112440032477891579182999282372617422100185770039256971389439701910477519386315584789778009328252677130029246684259229466896848045073917551033472399141395885347255004311040559817703730075820191425244538725459717354364701737666988373351168422300141887184348029076904438512763688294543146798205814328997761831680860628595768757851244902812127464050135766074879292187232972370116006548627777043381497762671243407046889477861350181143823984247375905803924538011515970103738636271525390804494613186114033992958053735317749398576160478162212537649948136266250196252147617960192707257484467645925485915121744586042102199080228367212074182638455903123796629152439266563984770102863099158907696713001683668118574008817038464210360762216300690981709782368865955054017758092758568529086499230670621360101820555817461010442609224366847122956889597396412840448551435735949689130729160752159756147928728827603468635719481288902147545782196648431392446858565286222761464265704623004170696458409802729079929110108761497514233675060131359746403470952731063138302228012783016679542494821456262866652475986416443673893317391018764045994603299261786845023608997658886859177037922547373251429645335319258580107434685937905428240501799202781000008545937947495079212122341123376158830321018700859306924308572611412653386664835427733671625769604111560391037525575195307909932232064846502531459036642866318866532523169523523432867190817640650071519806198185460894297400792928541920692730081293179806730903767899891821770191473769980211073864315258709056497868460973712030849041238047745536124515842249913004327327358950536875004362792276807733356897848086736535454858320234458600806625100051574255449673706689769208843361919957313435753107802491885274032439411256611052079876688141029729198393599893196153373197745583481445465983644756297615131054071149676783493849052568834338060478183949805735420617646788529300748449912604654647355090597413775087648821476660080790298156508193483443408852289360698747124061221066787521522098334778200188341491563507216114334536821322003613896433357656295462215839098600032225178348171983201711425214795881811204763039707490407938386066120040638566470691019147131627381920450292644428611157322133810858875536402300844082895739793442657016632559713205645058768191050750854079227505690709300266960018195476521465267941964211710772483103776987932292045901987096233593214930661619912060463790327049252355012375240865963782387258929567590982000913663258527092179648079705372323853526014688279466142695845544965825812399944226940724785293274112773447415537460740431545909257604594587569952113830661473647089886642228997815895330859503271915643076170492334188532360703347660864627827428830729428768414162131061670153368619808228585420083727077922322522509728049219377118093972554073134867162979090738060286410689198988256343597584592058425698371122166270704943387232518824421111232833201547781095378656088296175971992353363300829630702960034957370404615930800745638124458771862446678306987463841024111944835692996868903393201589300928123555359221062818110044200827799684432893320241969551184635485308730679457200664402069472184867844577495402500941933798198197087986291956673901786497712961590467024364213262214315579613394596294509596333610691826104674736616743475061776106215585495011674921227258878461406061268549581820129300621377841313390256042859374471431869784897419193559458208881194255896402733546646085157345511927033483833399129538925715219616901863234106935632108755125721509320818930999281263908333745174467483372230165476578456369831869759638923685270750224601849734326072306797924782490908121210767649476235342325723620946388452402258317180686259881010635562558070659522482763303003112722034436000189627565461881686475840794019540520257174209164709848206401118823658537641408315056322522474971397624611707573841668604979162823189163239695098696250855975324599608419708128981691673452957170549826402376504063510256127709836192435358795053528764320556058846234386078646123311419072845072105077129769262330408178406216248728430485715710740995787309221798954270277153068000584438783624590678904563357697493300462688574317146325603519489034262545771245148383782725602875647535950721064223934495022983780076803220343484684147370052233619080453842586792161002207938543834756914271253626682444886910635002151051124687532235879257931999287994694169739027048854826558713086322337143903399772434183075223693191497735713500161510096257446843829520899950404807090343777727771120871612706334727013303017203377371578569835061076568377675144512368056862814227782106096208236256073908739233663570897857090319742246467989820728464216818256369724422041147399553462105153934240629481629334601000468417820439873936991623866219905961533111632639416908866668253249674477982292751407900205793878943575055437331273143513809722780221445532976734986750161106764080800084402469247869656941153397070947747538830266526887121054636434469904712398279306543664856894134045550487663806629083477845739250337888266308129844778042919557525264187315812086911383618172109648510682897004100658784798626430106458291013197947449044035234747484193354003357445581553132619980386045703037406394877760704950993384477992796887648415098309704256208901341780952047434389383485660406217140004797319092029054107094498202301507411442362554962907707041362711280494457307023740787331700149554566251888576448249686603156962993448382875244283638217151305292481727708615634315864439862072063313757170310242981599577262587820479315265115225817641612491200697366148321752304351918282847739566168543869041344374439748913759667086775892294726877523658313696170323647837302881588502029615866327701721930163022902033765411918115469947875669268995039002135052623449753993392597767503949917048451975409412304037244531427388301885074901690145364670868658165544875478369734225048408147646082014592298281146203142431721169698512849900217954406056624735634696134922685783805367643045140634333770962147743733227085273590099200371934179817177937200234952005092005879659761521912293719064904260555867777029630189801837599798739412193068965595658284123315770327311800527642068349252604994347408930694108014506150960296735169292713657263913878969436895265639689713653457835883623878447183829761303306416710441317875057923069864054691959240571077911670096335903802463780789023048975984094400875260342480567251793302787384275890508779874149764547198117034545514424981318890581825087113295219603999840262493787277754370741492764357367101229980683062944529148002622120477504747163129665185447359373085111975484149447305319107538442319989603856006320238364679686578553914108671813847545060218959299976728023206900914688609835551287274625090897934277322105096548810414435579430294002774393962468251428791498391706434142486961772981831532911751295271034966522539021673777496297159845730988080546281087762442752031108534165024147324744403212495436201128345770240654366745502502852194292624580520855197884556878477731827012466931662170018038331434548468689756929751863710168472693768604821953659450469944076365786144258930072670802203493991692647664800594777077693052582751814775107022668442170341314656277202873345061554334883094505611184937026384371168133646074590523893688209395094665466171683352845112596677824666385992084445794424834186825315948075361027105193001848536334972078645803327433814991112939729169203820078537744761620061336580085230826855247324019876909981551648742187442868730477642146111927656193338500667038537957767095101640012837716859552077312475582807616335934835671921652652541006452342558415126795388712355479364135335848884856585811687186835477481571364923840229439432115161382676651610513895501791617100326039836965360392353017904301363591256230335293086959694251722250726744435469333225638245194687407368824024016251563825599142369216284714749003222378401766156984866332423170151243335375856405825348698028052639714579981902782486461222038823808462587555888092408138338718286938687295732784078648866123119408195953504635915980443258715276506596565982458246175470087509584673787346310723819103611756515549613236600221916735467156365988440467054354772158529352956178147760412778082117628908171709418230231933764374149145083180716943904771887117557878744557172666033526945029529398773171604567272645203402740497170101792208955907137405103181337053197774305252374152428158646906644970838081009493134457069996595739469882521687874502085413101291220024226108832914146447096904987853896086050494392009634131963731169270175964066001942783410007775284236103309008641543990781380563735659628224295135231010977301958960228105284365035266755042418642121712847520296842019900492083130596304941521356298366625800969261451382390375348271970941416596066866763217717825099926781090544930314278299445039493085759751520982208961867361185496246974369033868979152375219530590758921255056501143815934837031854499524855095574723865734395638513524267291791748426381903794441772763714111084566319830832580764302299221833719437673137659152045929127842284552269846473536485019548623455211820409963061171192734493063149670337790566483759747673758054011908334041867044966313174653196803627311168915108658685302294090962521123891403826056340694673750429452647870914501233643157943723739161024584491436913642290266179978024456404763468052900372107422539486041749492499256768762108544324494051367573343501950298230079146456461789417445485615550207623280408545759612002098094809725931492681243450147874400630050068671189893094526921390254274189074347611124575145044777429602370874855372195543439729517725559556526979558653186295678840202788089579459453106388244258348939749039596872886431632399809188398538164917011514941012183858237170056851098768595879423688024462914781311367298031613840118974751822114112873812864669867731776590012662427746691807805779956598202361912976188672260197519802221225588945501575401032768910869682054928616133756836746134164343716164045574833464616118933897649991401707026058854764894452186079620586452924035476075781249410906735619696374464883098639012832003754959247039003609069344475725555676003752577297853848780959405979051729191963228373455037440511968326905532185000624999706019682401700766175432807827599938104419264116556859986553244917335302912115882588545470523456178995532175029549348061677819516761146619409702121891362548871501554593096890898867832311279776920040016769327234100511798136699835006251968193429522812520711648660886786205236105594733339527690675967024351998655771159862978147323923262968012906097850169605975758967642315789399979657184852919566022702539447852314654964311949069374008504577201993130595953641563281648656846397341051611025728492887911225757875009809935891434392615048503345176226811551749257840108084027850059776792462601585163015158999014272806158957633011874746512242957780613423786775762808627620427506133719064116489731134706070427800780027850745656933422998189342506515713965569212672654352920664282419929436941875751252226395120232658045660007692099695932262396898408752444286739823005120345313260856120554685577452845658942856672432451832128724689703611791413641131555444654617636099157794353451467391350500556511412786542469590048249397949084320122884754672710294169273397246599734828966387418012566314705256562645329652849529470812752889480576257366144472631947715586406981337969260425787822363658529494334039839462290916735631488010418116916137755321399345525087220331388910890961168114852258960881167197430438869514952019369347500053561696067835152618275922107630971350707201768556336417516282019495231852090834218481322739172050030352875537081429462013345927284436907237613886595624066092437195082280153975946941921510951772663891881261398027939497173718667752549283430565029727389519498550817608240834484322648938274965901654441403710261894809683350120289209289685031946226142926970398027040402798035392489440270874523624174180083408913556475727149960308714192645524213377379077854906770308346704444065110710329001606721467207890282339335371033208326620862413823861817920687959611198302158383448917408477451420518994928959486780408704528997859927368028784920048173484516862492717768847829309350233761164065810127628219242805268595017317685360984728867658539731910326079851831023235604871688894949627817177511356536228729303652979333422915318483319697012491506865020522705816398563064983451014355583120392392422267040507820215569800380352516711670852218937092902083698396131504218109634606598623241334020543035544498719655549017180089048285229671283869184405433330789328151840719404449260357041368227939919097035707943483028721835809179128180792097437299572319371488386038645099604878907266844608353129199307063272146322959408398863825869683417646438689856903624028551925536011388768631928243891692432528505467619821170561712253259158153486624445015257550700457800267985974337054800395844132172722770845719410694992430721520998107407484153608378394840484511098528072103015674781676069818466664768723734753346773484746504766783565111240097665516595350426759712814410127112701460776814591922861366316520801719750708877251758901955367737148461009630558202974952055171188070925418814821339842479072827095343247196283391001822875744350550233901468481112411852432147470540101385005650558474808336425191643676255678489309374119399861287076239838303241439161311005219870569238957604127038014510753143628016783537193094022816253502716277989121210976510501583177825712684748399107372775830974345165362898484419715411744891911729155321736189577119503552866306024939693751600579784388746774400389489028333690165628108250942130030569223968218992817437741677359844685800517246420982384775585889218132067396738447828859560860919752548943704387092392218855831676099535717469115837110317700698418058826646043742115318411754146539724724834699319830854720667769366628475597821227397749158260932624789903072771794696538334797304313532463497114320808778736067644385392937041302627302608728559105046826319042729547980351216190964953720748482411768176996903545323608150711388487373148038601045442573381750933723667902617303971147736840901447828342715145207605231023976423078036301386106223420477367976698624580676395187491330145092322132839011840776221400053460088320646613977567122298478509463373965793203722657978477010431825104107986016912649754713155035830717938579109751475462222821702351280899025038378259036888416571210511099800029162449085143321229672173656248436947730938858862791061088654250614845981745079514014126634987581568517413501441625256598185303929590634524298585399246538587361401409124730023095184585507945835276603585173664732127832133632148853726977888829005915993667438205813319834720425013997679304586308372939460927637656546919424416630654626989677596511144911303690750972496193866809669292545350215305725790857722014993309360587146955665500307202264120391479990452895514729883567359475378584908472430242414496488379843111749446320744403047205625036052878975362042009704175233434892482973683721872140927261335611537027070219638214499850542542307473946917397464748634508050202628563902722483794689653017007714387165534246388052367693418720746558803877922161167026014557783722410818666598083415290892803249368259594313204468664531252151133283104771703394450892215408905929305567453960814351678181880929183973069840960172667117670188834196817453850827933821580773289016911847772265073572362715769491057280277139523001007501303769649007002723138280364618992120941267742810637990830775466070938603839232511958877152322073004974103212419510639893009886507507342682029420858890183610036498681831908666826005034206503714399698967202593531338387056386444012424663975856709423823014780318157709434232952185843630874281582474068217096513196645061951110658831265338352502822166862702072334263483894803863406267355603299970951665190474421781602884442722280630478127739014100189419536451776678270027319182145526106156024651379364038375194557862409831215010844769926835138522631524521297693692463194632276700062115008286482344183470622341012332210182754816156176112556001066173790843270205577906570011807609825967763946348041801899200148703831265188865621716239224852858490687334415959175486251316133684609456767648101188693404519826461034431905907871869985269140871534496615741528113433091244840105437324669141241474858510722039994574542560295372403480447362903144743232993991791334681485232182168789457345289637395610056554715120390915880356476741016352727158954340064957138168948214483228741358679842290415447605312183163198664505386374238795797155483412197134689214000772868625292496806019195510194919911356160314220529044475190165770447635255651869298501317510478089033640541203689057982545744791542226486916878582294374667334604816649263569802306756342881271430467119567229208700222704647955534802443709506306381915425249411744928076049814219351784562320805478277860920552912610785851272764880325289992737550152489630595662696231599637302061283946810738371965414810029878553790995913570516724323371523086677529042853600737781534693975524667428060544086790732519426086115526270011754293346458033770566053518102066257558200745999393632494606694194333152321686535167977379163161813914178859691430695804145452984281460734525418760971809575403092675402595898888329790464052833278425919794618278160079679589060779356305665499232752945690072115799468647330163415021554291790920331963814046236031218815465846604649809748382912354510783067785076082019458052583733049918365255867954424331623814354078917930817663873811492117750519251862473581547047000241630992161429655337174820294089943861406547943577986437950344011245088324960955058555741429397818219605274212923507209551038388080066329069359259133906948324339319984427139618630262251168406653250928547800574599969219448113056413159663876564205639370498461474454177881096475869045012130793710716560493697105063601195292450172983055384268159479846925377804804141523274198625907310364180286819297548495487180608038843761418766777539298917613826196015661075228501255098374471268716538346822233957164980448882333467477223158196904195611242329546916945522138797584476745080519161767409790191040915490411108924264393795048955794053634030774345499236024720374487060358416819712662559143781448901246432502491723194347815134143845730811242719356085570032759791763414956719327317881718133560262562660953810468543905825120194441649319388253185515709542769442310001627417334903952183596131765745362346663222037647621890258056106704926831148623607490696224234073846878087633934553662543428054009065708297946360963722151827497909467828900395830237808938358995456747086143403406925352252458256430269374842637783682209442312618404930359471846052422670893764924022015553687107626958754835205926479252567128484190937624333919092337794525054959243204846833545013986246378824061580084452683487904084869005807021413786848765591704944769924602584008959134947819893544066813671527067058398140874577592766440581548192952267754585551073151328055287418068785905649411184473292750045387317942963279628478449452016598703710788372456189815991844429684024340566999843654303168189001780602159335106298005026266487586171506493878984091291296840427538905856509473034094688675925544849594921335656497058808413034245922744490564348657627173257635526842883752407311224806958918438624204300102941429825987839408096605403312091649228238601197685517994559553945424899142827238084821320186685926028093774578874656914995551969212344199990458722377393613531205730776566945751581457062659987399165536307200413543208365000197505983835935428730016203137841069808643819228259735634792277909762750811184244810654137820399470107284661306954381319787102407539237071300414943064777049613520433475822820043041252960539015688451626200447671107981404627340303852140598266760162747534480960093872905311766014453089379796402189058238679650233716439908052991125684068959542766683345725950277730383285135702735292896727563630794664601190523437179350233437154653964978165720346466235792957439515171841965585092884651626853740781222420506836892460193986502378094989591488743725462711965179116937192467591572933101201139491189824539490723232616907751704713992870751980916363281635150985242928182891266199211884690386277144376999445379510827141165482659149439709554162736912759866115255436751966202562287589376171324549170117093889510876539503222890662060273860010394010262304416016798954009888117178711570726332301821381293297627519930067968727411750593901748075250805368847761650282542801968392851917680982170866388892832765755788215189994973187760629518392184924658248312449244388542622175278149923574224159278118366655963636027920218934536220264893426542339384551579210832251526368765247337157867320315190276107103523965795085745794992070189054469502894380401418018658123671626051346368538524229314814520031299503188525096167275323439263386510948796576890941050680486808648055230290278144977956757813216217605955037150602752761768483173287403767286162952380211351913437253301833706742357276915893169713882786394854046408412003345094138287945555256387993842276897984105790963084919496055471458879575460562837949918232272658331261507357043288219055986160597568359933181451108266743007544968249342838092707165762311252309731028668616256009733949888323682026132510051076755608754021666813870143074235073469959354611285530454599469567012777754543729033392965669272696334170053445433050790751485621195108664683494614601395822610659481395774169867443508702977453280713533421748139921259513956441547110251467190162309521138206446905670864487798763936328443560008669232815956821868073944420209637278045141322687604746034307634302859936060396907025461334964712507537494229019371664825197994533953600452995747703826630770843124959716907701258775365453939954684611869897792928207238018384920952792497500642728886891107301815263477690044889250362428695642440925983776534138258056643585827575312910892918638018772562041472023670434836001226280739495551515136147488889631117151903545595845478422014741136640705259127854061146741574063267648577557369105296611516077014509441725885945967691115413158331215575821783832075223266656914489668555375568432502334417741958380967229371399012575266641366320167449544692073523493267286209820010508372067202093015541674380035249174191864316278306404486328849382348814875133956980714968162476082266882077081023104331074235579366040310916336152859407893625172403360272166804355047352149301934643511156199452574703631782242049300909149908530195929102338775026905258675379053659476893712221154195931751927313085436025110292750983191262544348458523364652749369007612043728580374262223665021148473243877957665213107718244072904533853763185903468964255201802371915131695701884751041497212038974080671023415463276303119642419031206987442711956241602687040270489034524922070632379059855334620855637456008459297551166302035042936768236008631226886282546506313566161102322081915610361490796445849607101406292358312019799531317750048086329228150128221979034820172827535812036254971298079527460199191657268644606300687043215892835295336966319039043730533242644549508118247111449321782353696332514528816547125987054843560736558079381673637654529071376869047014669625731744637387096871065206188648983169868652133525340092280987706909898838128332171729658778008469456615262612976415280526500381847371690656461595123551198247003253527662497810753987085719958047972830781085181856218096445979969765530676058488715096910484087971225022815388145695530936669260548943022988774551709669528746907719355310188053399414572794697721697136059564441026098527137551276209951791797154798749897798025289591228938344615552453995874337936793854748178494797125365457168486263988800221808634943512814933839079161290486139012514408616734018806441600078724176881776467076004866385303574306153739962786780218398304066615929219851063293936591486697789878622291622172362071420787630458201009210048320099553862392782998929419777653964580293921388473908426813500803654706467934271458619074459517103583574566651267017280976885747595897974884001235877245787619017005909645955942258006657795899200907566244556270019473886660894365240033219182837747326254150100515011857071731995993571153990507424670283512675566296671482762115312401430983438099986984226030169891436384668831878474003856699205681278584980605333184427904146789233153777950298076379692229886925490721843996507408935918591040974980091697613318446932186597520494342465611275367364773613356158171723469142594830117273841555444114447969838425375325278604224157860005248610354923976423603317832857094644975056119691727985862183305036440975642139120037028414562910586203733200466119914172555906002978641760303657578630617340071889914389458043434968530370714442196631564823456407445872459144969927770708932818222170731627393095268677174195823873233573971845889939185897965572858712278348556118440893023713855357121640557765251803351207528768347972147637180819276150639498080691849996599480760485346711832530066706478042942809835307635627994596989804849113125754919769790990384996833103185591862614035280804988099633653026263837592383887985685904049244400158835070081482278030782894789015391920584134034923932698594997536000927503122680907918362962713324345121175443630823025377859322097879642571058454900428261754868529121811162850386771599867656785666026598658415821735956111020767511826986564133448060263128053816440351683123526596463451687433144723729883891070342570562678671552191800149791447729845182286249973396124333392418226321694303542143207869029733654330503964090945510402225528678553063346970466685197575217160412124968824365534440728160131629485647749468240883098676861625839598300066899895753314542781493526842072848731525704704323270758369857003142007012537525240127549516025475683424317688081315365375780020777721367605907752755912914836223654603527546566748851815410147353694374842250549198835306175647605581377469305468163468198103855918482163146041714751827590259855681628568522838740453588460566759777730364187965453874431768719475327814743369166393353620162086322466868191328981870512440113878641530614276528031995982372886445958683479104137207441269852134539465907087493032312496609918830742339323160315950948257537651677634467221494018009414568811112508656146697411670994527202054895569962779448639462079754520190656735605806201804799392703905685023017953972443579565580331265235916068189593434377035173204628788300563285863619469152827104485346419227702904337843633089186840734048277784366762629610694422693661199938272176208175861533714926677590152855709683284181197720182174082680334205059635427661694872242085642546114669409868818731014306789965893231041345875566270247012639716833040352140012967483193571628577992913652361164142583687410596026654824658203813944231170157725980882007593477186413927755931380780115323961072706490759738765487249118955203121384320666840643915702394443756450916441286330326185354081894274054191880581726093749931349378052548754406486780725343714621668072057233586428083076076736384403625090756096883136629643866041943864506428218140233485523895770857788879320126671132311088577689334685916559006275992835588251429020717986952009534795453779065355120650484880662935009845756361317244206426053533026142759990844337293736802267450800665171192923511910791287667858298360839375091043056426232610509230564305337682789497972208524249297830627076600583421658969657981265207693901248043058162215611559206810898526741690061045194461935889249611942483757509695291639115263064358419114208871919627803677799719326728883140520916452200929724971454106165610781127293140709155785519766694045073928567790300683577092984797086262977030748116957933347546756719442855944848705914106220909570062042975864777624794714666638002066196578703269191440928984209818506127116837905087396975840377658522450269596664845125199345717753620771506347063859994809627401463271927842497574775830316018287588025575233924273816422499401938142170934372479047232304829572390214727311624356837456392979276467209854565544416944198000863702367370164683072521359520328751590346226067273267396648390819068470398833300108876828852932073983204830073275028034200883448362469180426362133017570198496495807361835153769896868972401246842710475751479185503949752032847505917664803318839905632479121777209061583241449216550360720883317101314433907607912936338395964386893060890704583819769018604863783896570227295859945043662875665243336709488402172865942129544098859857366662693743637941210655786091489003612088942145885168997663753692358879639293859344347338084079456162601196805213350439373041079506920153340462260456590704880492858970167418737937014225594993723290204319945876253753766946976904193599304585506835776963029064320607979896015585389832557637494572705446107215661711073269839540108999564160675381696936371090144243868645311077562746093807111128533609209145778153077884543721441549202036472804866682864022966495865826517351431770660001317092384344044884105915548678510988237768352085658980279588306381249167111040961403925407964799463348926801860648947727995644621295354956059160024691200368793946249624380764526858879875112238314122196280727416891767000412355818773627741917076180048441234687558996913927150286311592781515196993672881626025305910970491104135439538312705091463315192334541210341395053595501820283437964057423113597146840847477745997164589431374638945795856922288864357056906011316752596880958247836986498916717336553891203929798868122293766816749111056553311364489016176202615762760849006998487471884745087589138214378045844524946379297606768650335194790593446812772823162213919625924016467927928707157729237463399873047153105428726098804983994197345371985666183621934226489577081700837414190149042938551998025205388243513312733625041661572074567712586611501389432577775511876806824204971347834237126449498134930376165977671088109523112347006024646956121795061456096066121630455180986651352554338901216545145842417359809159226271631288806905791406788309840157408163425294945505011679337734068214600830714126217024636418281205132843303039609166229940334663880661041518757215040297425150519094933757838972620003381925328694459496255402278877457881124704483688612128343641810823415161691401295544790080102056790662645010931371591247210863704540396433499653625537471548188180046479438752696417339048349722532108453146470346548197749073310097766523540102457594627197199857176445752184624456836439146661607032315314105130706689351840325804469625574556056223456906152536091456043288817567198540344881752595521687731404134709775818072986800026098740016178783760427461701728463243378967090302904685537033153068880793511150086071501956916677729357453280829792616433334330526929968659540470301896509235089856980281536115124263677050612912017464968790555141263537333442183843180990284603566403338580627112945730957690835773148406036320769063713433395295124329599037065254204134882641001755279345930658053373009018713371232058499470773734499013164135284688868259405352719091438104004163988729540058001557786539652053444399232494969322424836347623897493944711062648758308825300290004269205750521817361399460800811982624469769271183913358887019830356153141142219916011891392045909814142102952277908236463745513022303906762769025775473500722387763972718218740166889677145974258393892745302717620606161806134962144981042194769889158981702198702065340002420055529395185892801510512996943623285827162570376066410946609252540803956134958851806919367396120448885013084418361933620815047645019156106971136858782379289044034925709840618593420857493077287654698467829484046152333623411373212015227728625649233159033031042762097071034873625338899139542164086797990902866087489034307808209656686744001290024811464046923954121630621420967219371282603770970984190852102033876134893597806557669062856453261423975414815939747626695960027912857478720077490488096593868147443223908211254640186967781108075841725353076588578593357597647793642799740078248777890086229742295880581972157439724484152175015118665516779127650567945665397775732228903919665616256147533239923894455041166467538084507660489980918680797972787753981081833058655764661316933581773738678647104712039110554968143043807625895503318208286524275997989349459673691067893437683978035843123481934373266259092574070997598315297178201728327148042314150863941502267797998981158954683385577645856507154827462854498732879023792096699498072614875328897787984603683613023343475379820676436588200237869559230966348313985257885138752824784817975375907292582804028090384128132375199498446056308752764544180144287072998609998452657643112986633009903597126046598175435604714538690544994446230797800766384789853652801276152463431231555871419172877231454616586840103309836357004668746641823032663074556409811077966649572882001137051662512034535750772823723634508826825323460379991955247331062778921666622592717003161128295833373551892253771781909506056753760665956164059172352513172327443806639685731992769902130762367315229614136488988358398469855987782645195738439296545294396494078539229818593163165280834903041865228009047864357665672399430841812556602291876456465170667719890378900244880595781975046586699612047930997194089786732290223770523545084963677557545894366158650173979937065416517455027465662334418263762734855471542904175727280198366200827865543133700201514516489486619582678364637748864967288918208661084844723113397717196867844964531198697740892110329530863976305838091131290627557512968991849626313852022100012505242726945790123186974228806862086100580420083907064155643093666714494773737134494514747623223815018720104662602312998837404171766778412088032727020140269898355331746599223871767431752852996271083615071611838544571252175276677949226545679140519594178940805375649810838821018492086837467510656271619196911473226953663627460461663017466705833274468906085610552590096236517707529760720351450593604911210848837449074245615065899620441667331833821551313559157824621967262682117226379510404016854729181839131833400066042229527252932994751483781159207267417030114188870799572253333373096437675953825278580841318465625225097744804344257920725794025946970647088205587807639021157361322931491089307352112319301447591922570934540447001936104759831347703701499253615926000620760603148612380750923407278819087956196207126695524269778196444096571999868201735181814819475880082296225624409552657244702944622266403874367945065472791212356583235381075273116976543406707846301799908072661928394225653562740704746422752345894685465338280094685242559828249483699126715718521705189635388759025147465527842002809746758023409295109080115650118390149367272910990094234968186045630315158140919481199949588495643829423864277112035618511189571035064297224296186293959528957121519043008542891487790694757116492600951278226590536189257603629527223526271002065493593665255113321736918892456592266856496825218398476630222764937343602262476696406795892737097632136702164020692037520481652878956104810348298281561247436100416798108688176492155193288477274231606659576262942380451275368026264889960871539866794460416912647602571597598897940207737458451714767980921260165056018595163559124020845261171071472685086190599684329936954438501965808529355970106496686424337888606746409407422984802055979006834886001348614032464433847028805658002629407097538783652492975766197035034324041753194955929589788093271263047904546409294582264814821725367277685018803070091688715046081427388103149517798578154845077019817431478055104137024214611636574201297795308716882352217277410269964905179947232219197262960976684067033994880435799606851415284260418776793257655572651407530989825760628243819532240764996626163108030728275313034979956280693110075472240065968031851286932427558757397535754744384933184082775965538997912584837591452406232120119898898132289110861462995983086313535516190329661738325771141156776395324664881133959790610427898911156006982736821786089802920658454678795609727195084183112135467792134259056764930388556373632800600965068099106189765097357329121054132455105017317028274097673490705373729659679777729892728342609147423178009773797716296984212404405747524422947174917412401002396001757285794531601428705731134236638737190717646666731238185170565695656287142740664759932858039395274217520032166307829698718171332059555036322949919461247018150278043203847470681444220688063832648047262449106065637764671294562187941914611464124145398526331275342226390043206354137714937122481818436341411386158334421600665920320488475872844871014523513431151899281938339134858210937851795593357261123165754434284314802705615505179528686449306278501335247008185783259455049113151896511740731770605360137476302732362250271361331803244938969434326107767834522323300075340340380915351096532615359385023085245190026381591930153445834565210512188486961348957808960595066639084893240021013817863282601381486498937558637880887692503784804734819402859419683393585228265950162295923930719888956452651347779138755935533751544108257767651590454825637413848146057272894352237206064005387769611761472654928265295469642185230104148533986628601416633905136455510507644284520475027642378904844429393909639228248770486253888341595153211534591316906952487121702549595654357016689010458407580766844389476071258325996047443330473079919689223415858916384563436078826020616071856214217678985097915302635464928988900247297885632405091591760498163827770423310383587388828708901677310642674350686244250122971749869795165311993389186575385335686733987494145147146924575145420945848171884954673992998490048358266416498509770257389742020542735515749978339338495848070344680786775042794032222566754468147600300906356809191375525267019510300089034632367396891701963839731079223589038157906799257818682581726454398722026999851574923211112642599438135063836545513700384730710559952764540229041172146312467672357217434262967083594435338507003808101541995194473472383126917975587240919560034388242670831334818981298778252125716218892199316542507639317413046067713637408290128721174237840138786391268141556392882594238304948467857630688050891809120200702252536579454037390244419761429843060255724309518003863740371163642662135405506665078272441433035308789108559494676917323851603185582248425238702307521385102132413963867648254287825044960501569625604713686213043223483538307410358759045239507236352167077537492159303041821584025758332232300749784815436343251337210763883322128875658190499156947297159277416104823418292361459824118923355457488150459213462552620165873284106370703389736371649505816717702247126954569601390501425865856212651342434432611379766616630994708728469804723371080616182444748190015148670224611671264817910130017570324642350902390212979651240431096774819874014558907362909480284398005295976331208148569150958234315820553693928315960140289054719524822420680649451453119341104379422861252405386615488686126258089078542568049035219614598891194077302832455319236869686424514028421935988259598803604779780601251111683074239841059210951407140520932241191605400223520667314943182833168280877424190972714010066538928562862945750930863741623208791260351165916841847121863542624931435229249506498924351703819261121056760984115858479115932122057980502193466532191461581996067128397984324893028831244090445124202824966782759732241998029450842711709765833672914217307745332590067102472563630486035776471612798650669600240751233830858109092342324671349604206378127591621234656477598099719731770908987175831427285910369859316277427691108645562214896187998579322082604846134926922892808300901437472018065184466139448577936799220427881488970991987461845326462259725323393777445955945548861800391141883967981974914230708813859567132852146009945983418220908423343656022048795232381703573287996635481652835995420882217750193086031436275768292828223029001140953408049915510841150503188134591297526830620181796223895035555529494861780958724030271197401128343571640913055581526072225729580686602205598398065009840017928015654041480680703183413050591937858940196516803242979117018703474137546656085334332184855573128093007325217002579521035065781220607647955029561614590755959322043766299074676586222650537274887044933748361994410296846978387610621104389949385447553662812897257217073356125418331729577706863692055193545926373216492633110062629258089907859098775801769848225938375908570767042067515168181762348254201091975094903090328476771452771370811012839290041451366474382548213574189888047187678571978631645224970155958326654818347266882619828518890489746157423354796856714484430679524905063766644768334800325318160266413947741032833668124213859351339138657556454280540918024709594790471981259285008082264803686946491109329884096209673459591801364170170704321044273000257409977347381641549143365592409712842550895914745864915644784959187745115628236154280405735108421404609006390123095290008491380134876129319426805314860379813591222136104924263448499757154793820696723388387812726493920769389197694282619787755327325228506332114175042498285078951938682620704851646370492194868160937746231834455567090477115960954841253469341384836958528110049287982643687634987605214058149487768969631048987068247481618607820998722263498841902471970002963199796574123064959934291074247151075086967654847503381347954657157018719811905723967193218845087015098679455380697913301273922504958617488365053314309814519886404837962079063523876234377022584834720236530161400011156022818176815852140837781291487876096965125812102347989882273808989795177578464948711163012198972223737851342855862679265391466386918012560395603485665307142763346527501775402059456075978484030075317768654931437313234858478902503158050915486622146370962959719182900024176188204841591514730081242616972426301162516219624801422557164365311055583422067726241151138249959399265711402086007978895217820340274112517128957064708145880923179838826789278018762443414257511289381292576492780564450828311969692209798719931223077799643052492697755239046033951670712226071935222586663912052445162574091429774973939161755187685616876123802583694688764327225174684400896272173642651032812545171835823621592770230376377362109048931928442038280249261992913204741365243657725851781358341660862695333130313655319633731598981628356649362148641043005725339842403558398200772832799536651144274658150461899311110356171295692852792072508128740406095097283975301154327547291767043512331149977390532057101784933777668837900775470527844110886249138741905062736903202128967754360747464219018343534103188608387282498691341394515005857749116283825147407708485747571637928638569121732431747415089035166542768959533583356108660323083463567904224648267395720353326015072074760677935683031364778523065779767359741426599619657032224585505659595142544867760853652009044132156486660510780571682177712491923751372926950633116700648764506384594398233570067707788506500166986822635392367565400230941873128962751963365757016050551446898692542568935560493231120550649330826221577808219265200747177281190413654912046974550591858748834667617544934552326358289307868566586652988114067869075680088789068579346718103072330002990819551483168294537524232037390572819586415817890988707160573915098807550742036457034367395355190514408659626710736604153713391616123771982598251313313973670663703452075501325169484113775100138568868616368340169839778137789555240877440825450696133928480723135708738118668196595747493321734643501180068121323507036292906548303519752214273814505188093351164321589682763764369199265180219040721584766778603726356999948242237461189833205081327775132871080593187931756728888142854154972224823406574059880294458602079060802926703507833388926136293307614959224443042207362579578305686059021926334024364619356363074586306384233840531894684001444444611014064905180524127102949444039452625583032042050034815143874498058856307605562786751678581777649153387312084143114519156379572465698440931446123959895744821029580686287684910584772420262331064288474483741838331610026903001681741427512969297325515530346121189808612904240312955064837262019319904566653681128407318678400834547190822718675641928968189521284491019142218485112861626839212738699648446013802460589712996117297759441675955078194961769174864895643545208321924478964065185827695303796270253019575395064154333142154320989929879776169422688674094759002494432524835438722720188166569132338386580001655573442310120355440559441865189619270528580709798341046567045569089418423907318967721674267889292632319279655739540440295836650522673492630546543566749324026282012111194419017941547940630584585168539441019288216056517497703244574549778937739167575075332069732509819336476945569642509699452932253672917925860587474574537759729222992315052142396128884011706388260361382528316694729477228835178706226927332503585289723750683428364102282840618509140543253163239862162169117303899887263902677186005400798967856709204808396147239297371692511497078450046957594605016398251407105212150998883932902674163243189638039034992921587974250193836993223225499539892887324960689619850409684683378058930113379925252813375876279623688743350283556088798180145428172188308721189522601550588092065313240812624004687930314530799314504020724176385378505139473733780923297032695430039273601008940655908272239947232065016705336939826202240216496042538712619340709755626686492082320724668510630780691019205535574723659599784888795942562450999069340192083187492819819333995253838987994543460665861921241395923514719907636365446160582729909411142099619383267223692913440555125907176730818691492625839487939866085653669811947172835706805940222545122406715713607329739180362940916109942814512326304033757444501435519851366096600357504580113908695016892107264960257253709727365835940693676494003767070103775634233404462874786237673453835169035005144477366119580310863571281825739553544632610614267486758612207964683287157400462520902638290839645540391568531055918056223537705688222079704149677591544105941809141804943382015416142972335831309285181738875848437154803919075906405534096068727541761613279293948503045775129752065725772521533035769646231088228454376401469803492141251497613711087772468550497037268568526794017873328387129567011675748719351289250084354799567616958665980194809062565172179023413592685617278394925136640648182407366877474711992060106962749752903925152725335358355213057027852865138000153989010201536306353540824150076119710663046089208862207487905800856523910265905643726736778338610929241618024405145174956879140230159296466536146424946594342578957150376431353786972957220860007702928831525003673702817462485795021113047981046424783519337655584318327870597828106376652257317818054148089577898068328827025467855312673455891038174729422671250261194628125041625610974657148104154504187584253800152063079585199702359251164304546458458073731915670255734586377983633540358366168869430378107589291833600743415841671847340710837996402890209760836282255085296644245585809666415621771912091221927570978326470612736575305227089369848694157381899960555035338644186942005724910220094575203008803098473107747823401415052514146538354193365910199421777361071655449494077182968670389720930292485458426320746700721444481838653517626710798239980630400704111602188885215440401417917182715101399019745480098731820290338763858647630832249953616574692831714133326006833239830390361217428600015402905709205561370637478117870803350063543458436964991951158893148742036674902452286022984824190184295639602241315408984166178398353456686786774000511914992463626462141927267079818797243552917956939487192788059731509053966865690984284680989150642665289626952925456566216335114012707972815735928323590560047277894575257615659691330914590455300037090587911349296941002206565061672331271787340461934262329095878641316393717982960587465611442548299139898236977526465201030390525182742773677599789217345222806548015593883532102852444811182085381955662503015235966739544982556139226141753330241791053598111585358767298934735316022558951452905434743617250077927926118298127734614844102366980018694103100876583998553141998828760773892961185954030093638289562110704827973758967981894286956340959617945360447839348017390112566093241730065991671596828515699068941467496023885807685896805928436450713802042981268791985433306063513367558859915361514790062753656653853904119506824012275911963197534767064548106706285081591101339687106479034688763621190655383554856008116571847617776294855987558381570975644551605087561361667402577474833692384920629774806236114279240297615300721822039324101207411437944017633077051451579847069704233787360750033933138951068299434505778131127810145171201992344314493291773019923003044221388943665329148489059126259589093295929878872653257895475145372675762246154393732559506793035612243206843634194183803358883444880926335731414984624333248643481355057708075835885278812945170821071147178029860417534882418271572082063799727821740880891435264221063991248378233857468725480977052741861884372758454917853603042984754863126165099925083987279604876892097414812082481207674070428800391956442147110742127138138459184270696564857671186223267682878130472560579617147897085724317867115869928571091101596845422584959419754314569431774570387075270570365199137409420443645106085203708905669385971140713982390650831051732735683567860837229965672098115060652432509204483988731678172146168977675802368638757631054907613839203088502461997470046585579453735959757688338697419970689185901945811900779325356998533980505659106238196205638786720958610881800414492852622277866667167187581473510165398379307495478424165243104423043452436414971774609001123683476364088578136183690507079573628479623975424714423471902380451878739645594656033184675597913975406085481371052002710324751452267539903970998546501963947645466076788482325582048429742728941837016715552078480020617394181402669295260148890917852178800676366461529291569816955527084999126187596234082309029572967444918345735231773438996335169864102769281523924111552949461636300417942443498404043975054096660081253063567024278203737796080041991697881315131568566139697348630382548106865349379707264297499083236591650036190428958634224589038891224111882755349825752034904924043349993864253622798173847857461008339741879799298075321479253758922417199488001537848619239736386879465441356855688119153673952774650645479978042352347154353119778035706334508397691255784945252737770141422649430341484755881123906927455552114718421122380374174013140332007331806086189679229756738509609053635658440569521502629956276581689677210279305502841978393784861954765244048979285479189715324843353420003862281462362694385739788714113865115111690676227700405750188960935608041267711868739650436664527414452557609705677324520813971711199938735346160628805676619546476970070913596799644980608869092201253895390659323079276284416904479398588070007319910146020755871818994135247320200949776688415951210123253122224750533769806853323249776908583781429082922172736643536724081167598393965972328782052140431061154426352601463246176756908425750835794083155346629019149607816138963479445947530737182838231594301837796514126388331408605833907603096014617440141631179500101656755694820283816304917365584031532075354791895966605985528915508452725263078052066183588759596980195269544715045083213207154826486454288365386099205965585916243415167324907798470305125082148542365184147121741242128933865159346534417795593948243763202413804363111074123068283188185383470515018832053221148446024263327274795212135094411452973798264522237333863928271600260927328363444745713551727207787229522943798097549937611274250738383124424738714801004264246919500098227633023466454856622966690834400720186342631430307195655821968733008274320468575264521609448336530656122432912824859697218324809226620355795005352811995004180533413521851890237380123833353914962088422283475157728681323638123823740647081994481276462640608515879744566252325135345473328163985989820282742764960043045234066738182770578571385402114965866613611091938333052208177063825890920562776586852615549076872775229849723587582704918702106043131108095019215606406781148746066177086955599975021394025651393304620024796969831307431117774432055949890219286086275620431110842325135606620478075725573680075880473425986156536905643860924354474768934133629837994222491000213648668223615214641821282527838723038121990632443036550591636327003621151339566772727259003122571867700861766185700340073936417727864761126269462955291719169968552515735982864723567268074634236667406107828769918667188499199997325264188377554319212407593426732688627424954180391630155946234175940928383470630682932923888199665592843556201506671423521076341344134787870592839783238115200316917098676762870863582187198717799120092456091971187093796513673120251243674700302183350760858841327282671783776007117907600594896372957867538336627232239428109950296470970170472633602706131348821712357644924427268670162816277171650270040410887089178728176376626523377012389136890603440678293722035730950968733574286521744116594361723915541979641866690366458659011640721744283748602525194334275980481078545496649211670485650000417615336447566725494840848967388615549850019212502596015538378875823357239686740870536639342566396827264317442790196135973057939119810287219323011166564054670878852090617232030007667957756659066425703825368784705417538134026059963252791819923193796969037824074047757137889976761725538838996053570906103370065995057523752089333633003240108938653725383376613037217209673022495489828260060441070937066101422427609968658547592803027700850131831986655799221805069221685029527999558096218822795844007753562108730536706382121436713678978860060448695904340252785150305221137179313464616608556412708238354304900008429361535400058215700542007600303678759317132825264147515026469317241798409783976229516277377662627081636740514814139929386404994160801481782796686699616194380828963835599089361914003436130010478129814327115282491842836475038297703108027627079490391843900433096305338490374875447854353318937532111856914116519147678703320943626051818181494172029167781323341943541680304349693331042936538528525401728252026302699282865088289351719609441146473317497128916049208317344742978049097499644500632749848199870834329803286433548837937338817201779547012245227524813085044830320741721343860533399977917723431343198080039463191489740311447721555771114388801015784716178900870416544658822951411811727325466502143373722663651439790912643255064603506558397292227898269890786821759346678116043021930119499857300565327502491393454587839307109447799506534672691206636545240928103453764770086487029911231277261420178681467384006238716510428341529054235338670069790783334962406089927630771701426365239119649854896632972766149613544956076320654874497266411699835244496057321445317624376574827863898550740506807780075726135708294127926417040632942050026745039605123674421179458197167697292589643889850560425380516156376030953605874438490767221445804292709267968409862533760132211672758538186708999744889511212738490707087339661724848724869879698749578181097960957906618538749751115371298831729480973194120694405446985848540471113649906839816220351204431625490736573991992302321108241514780804786956014701249021859694200991109720305479813564820745402611909704107709473035373304990367734778673784816863500080357234858480653126371882091992175263269617108813425603348594686564488189961984069278888952353933907645966865484747392675659885972355903808244674134813601364487332630906713057297700309199793359019264443776661621678638077861139189213540049643275244580246597229141513541418269580306190307114104147073028115758924607893070398096433248344859267123962722867125402441735388454199626258458543249399700703416904191023448035611226967978954651869860707442024812216130371841162859520434023524824753950238694611478919142537539770953807708483894963173917779387209936579352288181415922084611117804598117031276296239900471340606333981156500050989269392050259712390839249002919754116501434191634768630916461269062502315926410587010762474658856143163301007316185047924818517179829568728426378136319327062234237871608912070401981016933258936753327847899828155507375195686540093912657132956639199017943940720864336002552855710113481002961069968841636647184702746148001155412287106914328045045153318569950068289874994213602717964162803098251368803461357385720457346363933453738304146195223885540604279372520579571739588561532256424671987760767603546964169255744029656300931329854611122150207853275237164820499814522568381256569533454635705070611739944705818732945252970005329556894646701310799866017456422074504211389945821287121112099503822030692895213688713745613009979594136578877372385504135748316937537746562113651766036300974497921740345065528873214160533501627936696429556649061765727481618662349668597073641726881682601354699962629207429412808785065494031630770187518780352389885167576397224942001139362031847499172363174835903682490890739041384477681514272150982138962497118584632580564749853319697161187695380939445747038348310927817085486783008426767656145236071324389494250805191824044255428722889343456469613857582083751360864408491066012917797052148378090040523217366451271083129958564341943847246667154660338382041914312776774275132245400695673037666631117333713997205409706849628147439159475175747039002195620692930690642571477902663337422443692121929553010736224103589355173566683731518236080462757835898217900821108610257202367025858955979602428559928995778269740650813921922425577504966098663633369951790504571060929385408156978633141433118937540278532664035871167170615826270628554401954899780862351166899931650407204662419523551844509508068040266065815034001096494939392901888397134955392004153893071872837426377772968781899235152570468047765978415548043320884218310743271723123518729357496957453369938380065625261438617811689461461453161159211337387175677286984231503017721365761219756979719525385538737884726041918140017327626765420049596452655791119057146279614742950825652860034715344355165292801714568293365383416627992074726769888868240097278783305069612487565375603199021043398227060253635217134754336003539307032302160369844538749039352181443068880540943667580038065927270365889063533588381799692864464466310930012488479241237683945452530060010789848158360158040103856986296407307649820079157573519375543696195602879996134541657024035694930181871300735564878754407997274854118612956224006993887205323671488901757091538067901998363934452223601374697345609122035662154192591079734486177008425635762192018606318850229037704122262002054536039225488399723795811888153470720378963242652032580314280971145078828246866982758091605795057630839060168582603993202142258217770294392042537558916418013627647671895866699704795914697699397889596074121807888708262071199679919080541269300789441623343134332542158667975910780713499956840052440485630310717713218482000527526918165974293384350399740333303271588035402931651526603214634810757844864313740932189764255039636704948625703718094632633717401544746332400032018542143140981667419050702454622574371406209529175693964415832737249432715729204450409568878379892588571174487065573400272378703035248144197385474795412843604651671548103912467243995851094835389886004151556903041260608028308480533839750739387737209250600855538161974071218509097709054088730766037882300224148847762437145433327117885911891173723026139285727186852993071281975044146023384732166778309202667366814837958621489753489799127458545368882732006371676074217744580206822413044201678937214164173005202696234430668094398186975072282488246622238712079551732466236174937515271919266545840916475292951995351856172136815508997401122873469231057996102893906866603867160651030645111085334661507409866254490928582231352653148002238971299027490176774961628159147408237761315805417578366924663769384203951891700537718625500946242117313592407771144083372704005443635661706497154050992316069262057303861994419437724541649606819963126390101729616476380800410494318078107218563605765626936346624447868805429938571185391350653402097531319371953155124348277208490337297704137461259729660482715206581269216286008040011464651638188927749679810770722880183560808911918161827904429930870333976114377433708249520175145610674904443959864967372323061273973361410145667837216868010194850966366204876177076350336523837072276400689791697830526130921554433182494700505382274098153479179313444186786593868250508924703702230755615998620754829208500179328120940399765810227792593106920869418401627204821412864934461410142681774802683797688794376156805632257716551391648881182100071783160703174090871366644884109271023528903029745647882652910327260085260053886449070286482959242521110763170155012806034665470916151136272200725135659958229421455847092946103883897733122479570078959328369587422442053623364675825670226872208989964548246690426800013108383988972645699670805507373928683967205144318575081438688144957743445719424240511178547690278034638384699864447706162107483869270206273501545979682213451286756328777114227889825156787618901867082334152883667960009213487247851866869537318812078326663920490922691750865275620820089651912386584140421198195369158185038104522113323091700873625815009402593896412293744064881076802811828163950240271176359878163045952280003440778541919326127806563851326064499040489186106715346996497069562367290207115518949662891008617508400656375524058515064629664311305489500252559256316980500029681126074893196093917938185953832477478728691161384131411173009744593182111910848227892032660944732426778752243467147042039864766329415749994244208073026848504769490439303403875398076589760123087100941031424086723550351674359841850932831455574236799717020294646321669764311373875195544585247956893594498611173582916805403274893230753893735585390040505175847719901791879165172552611645821260135858680622634661310340347254875795518633870436256830993884484494896181574766966271673847620216623786644794658202229971200097789178197335160196993561674151829813547103390736407442104902190814081355357796768773323217632763956468481541033590562211660047470581300355345524029894083440489194741987454778934557701646549992130056191042555696239302415492678139788927737958872616205044437539130273234994201458406401900932689311994394102224570271240807821001871886344172851519923851321852383705765824679060419999857178782420879806147685234574296543455143410327086513791843274510326152674591827841050717094425065028597481202363084396879981867478855736820554171272506170594144850012437097366706387693678598067916650860720451195230560658690103679541579469164051640130651017030743372439060575574770806893426518280550834496942752222681952337578548236602851022292679689491919727790989087286445053738374471741581420850202636950102153582825151002759774925720514410043499615127620915858935763566483656075624291230715065930083726120883127647022531150310864634556873550776700850944136559457059214262027275585947890882155105073246836510679106649706749391300350874286802692493073511060281748544852875208484568417073095179112990315500092265489439394512924583754985851462694394320142306171508054865309515360090409295617691276711367823032837463109623049190307569530582610802349450611638423360953487718485819600867229004042715728331653858132021829058429175458232637245003357293004284274862083340387256039346685220584014033774125554331314177975309745645410741405876886390402556982920889483018078362940718292836721195481373346189786487158613466291388924554921347832618439814974829943307525698352976609673407733530787572953518924537438652987403185887530189342058952790350117286856378298741110603384922766759951490325677726630734418858731623237744548769466256814610666800310384898839505160903204587498309658536745483955551072342521939864920843040463708850018128702614324633803654451391148505859101327463812106633354118346587651282961762172302298337272564559148236455071105607330266247417948242676679943343274495134121168384082746470603831027870269141324985470163946607844503998702658594362820667963398599024391126552803448904257397126058195494209449344937641855282637499094962050124793769419064399379236456076345924306609384838760019340005685635123724023597624922332142885423437960547963102614713462534981450975624568681752660412988248739019938418315387377119905830259175075024860196174809285212820581712509814012036998157301693334835545882110698454392037044413711388226423600222744420874571434313690702933667851803650694626606597539514588620542876680882688964267099053359288425619620964630513352892890171821650467356461153857292247248275578096795474251081061707921474403863434389953895223196002162860240489002240276158990985563497080992978622466944603471037308901999920401077877440420904271870639320563333376271173161674250416330115593838671911251673803768125077512584809395526731297891545364222123224927942544613254608468989733106684270798738275967673468967119074560928632046222599692828975707014133085499439934567876779484466365130269915804765746491002972175776349056581745132806147834820979462226032681588852655189116755053922909549457640714179613957818823179720633562398151206595019181365412183316806697913373051484135858429761813280737897038142749885081379756314318514195580969002762452903064180824411477452353549385256336214813239645036411922500804435344640370415743795081479428459071576898683689157236936101623628236889455941212984607872642225960821693206588202649662305418430894518054327561457246304315080593973465018352494633995830468447359840097488707829199056484914305370340600655749832675739087111326422023606928873300911023282420047360008096251520951446748400982902115145179007603283736978245209109168197761578146483672305163706404349324325239884277860300283971695972784231713625806640084352915698616481480199937099949449055036962461147349055651580111152239937571202349956176130550648684857018117756217673342752023817702932782150996579843997447133288775261941338625336944620706989881324426063845584648393877357760667198717752073909953468182692363508784139766043677268846387336654589696326080227783488014196977835375090626277407131852488726744362578601679195588754368251512589222865182651944665230234131385535840516290905756130098493885423988806444266066045639560551270951856161609705632956873251806889241960657536822771195750498640654901536248833191626788795327879769633657894490853264882420326949016345354702876568876971846934522074183476452759226400855020211164247164923211155709395478288656684440674743868740584488424755078786874088292409557129801722937740090063942522997988658130327514092589108768514895252987188660334658852263714108655136104992035165421621043427405953628480023505393784690838743626425922544301086277031318483661373047240676342488720061780553498184520275208830552131232764435738236435427945164867555976898465799367912939752088353651182663608605880368620589988742342622505989579596209331344558963050189973504711015711282458579908936959072040507191643380769169646588893590552682531637525290403163589824167668261285072865941116417960177978366928455400977365957990690433641297062684023690481296737368612332157287847705549242875407717020218962385835685862084362975360535498410307232905459586496832138976190741001284360486125767939226355206255840126072944693542272902740229163092551101859853059795866119613431737277616792810500437070750628111043812666685919367475644863240367016962079270740215933439112636747316872957111684854421458499119617986672393837484586396009474297963090779025094054155509596530363376333500065066019111503314563535897443773170980888044165749527765145080389606682003164925575783814916480295865254070814490196552900685811956454536382808118242343455785517566910159837388306203834520004152136261510949783316348276932849331329530032935951071085883353407882311751195796173877781470520873464335255666845686137261114401306874182073718796108731234979893698299094258087606138480430013769268913868352576495976937001795296346896684675230226773147332237874237376244934936960411609645817566147076690961664865993638811710661435213561001638623010407430315422566413300358093182521287945613810594105779169572648764141655921123305607994318420048544762815365803190698112148297871890205199011059752917397692793443116638812520692359162671198592333080205666748595854422015836549108230568196828771604880111780091908471354635995834537703767612132573536240257852586290628075802242654365091715490305087906604056745231610550176663722912999553021109330896933527623066847764949389930912484618466542309267414519485581252466174369280010492041869075411429450522941913237444424165286180696704084893930230840819459715218534483774048777374496561578110290271574749635472186723872806484207126066446964315345117686819836996487385247170929851940981794190512452917949141541202056616497120235445619747636527428351372362465073138480938544299107504567303684105740210397094659550390338146320488367030092514899856908361714484456290299822487312700385005700284368564290702794243221013831620019846393921176289563922408025397969717948480201887547734390822781828054843928432442701053529698649543397703294963489379432146809331622410376073307197283506156861531929024317256604422273218356107614398550811624150674557726860693250757433432401120368551487096441911770215255345333140117895435684821715992157191478410104090544429512572767948132756583908847246302541943029791258363364307852066791795732390777849799790772026837928321676234184837073620346795997716110461116786106697703140260456585523048554504568207711687379556263707182863637347650428707158329325630931165303506407030133044758403624375721368418321316636205496710410314007325876017283498950790577489779512802905119902627053964881190586386202632077290188895714138664111218210610077282509178872776179944166466122025161750219526346400932807297789842370702090543747265516466591011416151606642011166689135959132395141513919971844666039937015928250142394683903209996626692025369880182808180507118369051706911433228594002607223879410109110621466275292547050050625823302644864992721944843819695555929607116707921522470798671883618106174740862443400206492342303466233186870285177950395380250953642965407219898617562047808551486114720112165790503848203005173331653599708941562326530320751067257424614832592737089614157944959436933666404621265955226372783019865082774007219360139397699062701242934059370197151668913097508706372251621824576132757548440086849567996718261015359906552138267671793743655052723725977222104495003270439919241646884568340880009165683641460010777991469531541741453204977571534959833224059311912456611879309714009192510013114803216814875600606338152707266422028533754955599314419965322626264157509635487965324233184504565910246464727430288219863485114208015493544383473166532921045344298912447299115443598920329767109571481604244570294767243365702807683294951581636810935993858939143263167543128689147836065900746055831016817959674568468330088390539307511790573292064701046794961514400111633562762429319236770152444558189433936038084200284111123111848285057752029187115097439412793183102761410243051105417257354280081275285868257892832006261707362095143126450682090108553365724623108871290053351236730375275857869562795000456230131040618307216792758241736186961619272735918261605694160196323410999247149995628260728374547011151460316264293904344147205198170068604473397265791316595355455472884696441048930401911069224495695825976909176943111606775397997358136248279924598091898998525627022401795685103901726665617957161955633654040229997603709305546737944255422592190989805507860208993612820470176146320035031663570992367208839672508956795274997974843069006297620631590388366334374223475118986776283691470482698630426801911713641628353831130780668274325390007391070898592803418496694679525725897207113912678664265272202199820022757888878511203344597489307041318416846355288886641852567298014679103039137649352774195547742035638635761782236781751048761290144457436668387993652502840786318194267956995361279293276465980940230395999680002595161385458311160265431920390109661501235412746856272796656137527650276461162373728546171413007609771847131118579853700838248413676267704938627732700304351130393463284849688490033390966746095552277640579806655240571902199702079424806806839699615258353413678157501575439123446089474888455855074768806206858476195787028749831891967720623023466460423591018122186651454265565154373537007938600098917776625912817809765710780020144866954140907833897914057731008002086672800133090620022233655412816122150377149588672175305187339684298372665256907454331167493866227158628296573828319214623277657600242827612007524107536800233602412527643189994251947338116399755201201373242022753764662460626886795172896867276223815886046563773870934797275441191581008808519661461737446599750867872970554055805670420367473014347851081756661061534581928622192951058250998037610350667164513933023629502280843125490323500732411199862746664203371076022709183089426469137153381450006115023897897037117267239166536470732222479519834217957529320178379127968213549576511066053736222945421588604095892729922656033684947523279764454226523277054346336646238036587756774306110702481512216054035341553604442985598303269541689616188386315782563825718891072819642247169651075494561490595774336141054779765665935135571571327217482388801715221073739386206064257872586909171411496593873943351135890538353511416752000537406894432589983338811508168433990764198602107090371503596739957376496481760818986263932794832262127304129693389248203630019702094180135719566093860905660822619957974776121792085670494625374890027501503269307818006148909479944974422310168776423541397164601281068855555756507561333250008377874813025391308984318288512833366743214696550972275274163925382862740891251597712845625239461817317454917646457644222985018531211264815719424697832205397599821011323260592296759464010389911479539898331157552093625200407845406882732577400018997798471227801676753265805218225203353825091309790930205774442561407918978453550500913882277603978053899546624916563104604496383176110304488103639700158504034269028010014080107603720662093838190250451595961231548971932038148975954001907273292484489699201410788746602816027010042011809160239165026094808156463269255402502723630544579731502543964956719707265106402987013946049911122413157653687010546299915464421994507383348963066298563840865920392195058865639067497716709613472060034550093636782067374256184484847803208517540826177574132089328901923964824581932741357927821838694272474678788204491329278027445665184734485163110829513424703765456054323351791915244897980884361273226389643235072090373819184145310378152570228762960972615606191678716768524414558056347207327964764093329667438801209122670029363010403188067438738248017333675994370604132804194243034198685907414783724701875834312352660324992770035973699830027134752335086440934135393187779865438601377195399107961206977643604886656059153612602710038859795459502101677497603100244231957939175251129431773823328744205881180227927014910831520234251540961309813877066023168626688370855040104907185340989811482777656730332262757218614734134612316376918014024900232571401040641705815511312361989495362797852329079494734125228725498520982375344417545181401581320737765487178952847061110122788933072602775796800741062979596413931264593696794744601856660469571331154301563028696272996359900387667401112221262026795973366030036624274608837480916020417357483262067968411234780421090606360174111096623146001072636305835265597337138595381340168982983357051563588207069097902855922436091877845113940070084143414156420640322714556114342265886481726763845959055045177458779417871223701929479666645893601645393011223981221721957713832950140884278579819773287976066026278851420123363328386901644126915958240031207121843904848128066868831486956703604638058844672461532570733739225767072197792274112364876952174349242861688349548912233885212440265111878535477515887784235785358141618883965499080936445837116982699207985078114301209898471302793129962824986206223861372877694032414978536653281516246120897880683034677734431333114935493389958930753950807559816760736124712420671051552155806406560602233121272056803787673771189268271863173357278948053811739239475860673764529669518445426014552469894402108976350540546418192200627335512377210027538883093405523182069545392017699977197135279724692636744956240390879139639992195248723494374963459675732586857130424046044901400303625166345696657674830133943431628045272187044425387804876207228274390631588154845715075422715716607252586927058492012464452370356807822030078020153868114817527872428047281030086649168645275589907117511735420836532512807865736377393070126011902168290755970739843577581304961923580238827080954065118158992007524603522197907606880434473492068764649125820498970438100101875166259128354030676064188337293991504213422945357657900919477831177208371586870569548152281985597961971202842928705747580025252640489685053719159671523317028703092286389065249891963123665507697599072227742205621002938726169319280822842358630893088709119347855638736585935335185669798330549525003840682273473123562764326401692465093019325392155710459461215521992014998014589015763372419940409223915032854471250857039526782374676232304920090265867900064789021614543521605657205691162988094038579045518261443371779855663856391004804672265683492111914828264863640581844178815395132682305834116945419892224797335477584903721159228880902521151268089927731468702752544226888311974509133850048674225457665503594852953510913715942758901258218383816786081408934562098709253172912849431259258778263108808218124563043723696820898266060569522738728204042582392708065209655395125458997143254731828917344399900979606040225288233489154658810021799642156682832877603524951796481553731113928872886509947104271048821730364845564087621758613059265927976510544190731486871341232827251002020455652260136396299406423343306253800601596025947340125900853704983318711971267531540986344213502471294725278878337055872942090111942847917654882367228557618476008969923103710216510478371980669759694106901887233108011505082363037704070210903945798421590209516526577526791364402478731106065882593870109157851432588527786141461621090828529956224230562092095166825905670551445031019571030857900086597551914484970285741757766024906406742024925563681495439827644633043625760751714712571162986157295723017897011934927619127937617241336890756386579171536198724192332768644140065390698699980177764794715891921111696482096804451554977361409429006503461179592658855655560059559636083890495134604681827536039467466025671280279429437556000338498866464240772296309714727996346728530960733655647829846594886700173312783508791611457661484031609788719947074601292757976787829829269223570584103209807168157780350661332390652431839620728417606407669087192447419066732739284376021684522240082488780127378531152285460268013313892674523636768479972401307609693984191326515005427040026688354359700850035223788155499628305383893021225034932193712232656884218997572999687204160172734915641919949403433061869855619955857260128141301147762682382433338852122720977656575852469263020305852481877915780598467436385206685405323656885150617820167155461345843330694003100181816612530895004928038839697509720188110901423103984733042710722025898031920260250496332558199048089500647133388455893939086935736199974856718409234982552299234054491057809490347662083983412369465863127896807211276585564759775734978735184004528837204331463064326864102955344097488536895797039550619700085144726703008619872328603218549488289239542901489528638421338847984213330289082813480377454380011818328667628362109031960249924604554225459902651864714725365664217355859618232031736417249296875528547544774150594079894304036386494709264290526637910993554720551356763925535807658242507821461379850726705741229782090042769156338353103377258897855469345955951463339229607509098543190036779620597243223945851791942680626205531708142341356215785075400919690496152970973904653286748822227165960353974678889177697962082526406578719196787813147104701027339021836576402135437695807683747678071609467595752645798173234858073737789087334074639454095569387301656469832663325874744484012804396268560811848517648559284063223736969479685944621192493893516322594520236845109423076163616863143440493478839831171346353050058106033883964663678531181329588579838614402784072185766455711368095614069336204571252813711742978764272362866450586498435227535952595809961805577606891177842190173157944406375869377756280525728096319498673381010537364137080546787980168772704879752798290917249855854831217709043294673270205248265033736709894480639034373531015936630846832670954105253892655867769744737400792915324798347847920224606696223163873126766565645863259285967036399119409524159999349194332318511995083615870299563384980206772529065661768116897168575124166907172631962852141543233563270236883016724538949916295543941277684346109563283276181970186531064455364255651326024630739612976227482725853432506602729024380668067056213659258374432540657847618131665608650707630544496853786433112792902528555509620307314298393042516460026930999480725571793290232180980362048693267500878278324546695839652947025028709882024846121636451370961507193345735280851296993507343255179819261681659817141398904303442690972409171796302233033732839307436719653174722343434623447497437178433174025029739418701556691992758609851691500445860581325717464895671091571005417075491967378122227294859215695750494372225743139393795816552810867881591835968270567536968310803523794286083735909943901423023980423667395705059853338261285620553182183884337800388106559950226579914816975121974677681360680423893784906488636330221761146778876358885311844419870695842079530525862960493381359467716628348550753478405081349257764700990672960573384791550079170254451651482732094144215674508475026692084775860145842100447606599742000765994291595446796808813616820733053058222095735897970600543758441660941792305025511102864065959185481447230365469047035176206570859419629844482178980835643141312962565026547489603427919408396392894975176667120551190077145162641104663956690431181933016479573340925545891482608622944685796961973576190195275666253462887783194885808658147868874080232915192019769660048967431476559885034407417004715485154728099375416531166430755256905279400800071690833394635672361299055902947727748355463197085668113010139924080419623292023036093002965567065947712097702067690447648535740525116404170654639982390958951818964575752060174029087462814075498735408134636424570407316544677494851094923429687608991960777981580251418369995224477124631099651463121297436239223356429847896658891919087492395821229941478100141263618419515979528281385832835382919133284085221043688044551429682633438594610567139535428278048577167258318763201199391268152822262781080877649258754642896126214252606665864004791710514680654123305297225769028384023713710554751505333036913128049833697153709463675748734726364849868612220702924916398743656148014426352269018493588380017433335397314369042639945238908440836078513107450075762689364568418527986368399605867282175381469318175210589685763967019449633392759478338840154695294365804582465278214614044614688903670792560854253653403542086983041616006700952384626634957403303695715418074335907708485332595957822886785858654530874629732757784725633102131558351543849949970833413948766727175466778468018000649365573515526289101908441032651199552629424697922575370352816166527927068236206697524804098248140364913170981770294578980374021829711505628115478278772183396028749373075297382968951137531649389747250134662529491163873241747713693226083571876726878976070128913233520449227841346435757526945988526482960338149810414834510163286606037417511970794095262959914293849559500389754366303202961401219682790112412362940785946745865228308512334885198580907141509451561715246229800115556882973512537013388670630065363757423194114863619017396006210438175776430039685388233070011213360600060080968844963759276799664818593034412923548359741977992880528514730906196505438585986262225578303690730178066551028758885294078130433524352380874189117568765436522942632286541333110400837630652307644839859712084822079522330904485636678332130183510173674537951878109430398917457451444647693516130255996464902709112869155387056755884440338240411210087941653983437521076222692170261950393513648335810852510373204323561211047929099598642510830527738098305130552294172134775263726420878928061902464748916408883871957332502006680595853991867786161830700017053284185236934295224000656584620262239343249524928584133417602220363794884919968408632903945608651612045266770057922705673134385156457737036394959624371869424530414868003130467785636202037588366622394691704165430309578135587420723991512794976725986320307217527422277397272987046286062823182672360227829412222230452457174795621005184885710898517920146696312531832256498082523519320319134014410202724100357345078304728250482621819292467314859913077435754783721594122843519985602720606340205873455037418637124675119598151987146999802218926487561254699428176394684464076100927497868921034160141941037595016909224674199102767455374835849107615331141227436568870365325109747348841732272651292286595693777504985400536966534959767329786068456895573406507084160121168891630200564841610002900571668257191230054986125376657957557063832816120698071273057948362401033869541872900652072636272619696883069124381426506792692371340077733279272028772044277838716219211802691220105252411324276394427799058649376198343176385869152345326049165448114685117877174868845449981151455018315189239001695183060506466539470418654266947847717591306810921977265937860501386121789848919631842997356505695361996320416289328484325984731792499636236012917891923358859374412497595936683638094754294342165117687028985349227931491915190421341738164726336758928417392401825297032327597413561140994609948364291773447400483953473247586797928853180893316806967911192864884740541649237249438851153458031186945885382514609523098392068478265066837799841118551616987326364890898097429806342812485577845543686583881698813450634785750799438321846686731452395205361133659146505163890706297002722889631524456661988521882263749855888330596799096700271705533323727646236137958854269703721152330522248261821927997363812279613192427241704361555167573690729905965241158048276219130948167988992815424309757530846144239845196152511720167531078290051886025957549156181132831312816847688569428944538890733084008073997753709953052899006142764291307974646639514039289618754127592288239934401432825193767700341318294859792688345748820088179606222715583448332842693728686415723231042633926395659297472607182084501194543683633286493263630174774717157666143046573565681784922565299253961042134014800290587446500426123796548504731264060519935415099038941879712815427330979553068975104124010775962879972561880389602447598115514041633440101663843874311623264582122435827845020485610500449764284064292229738630008034401343672214324906567426697503298525479300704359431299812971797271420079794433017102775937356632064363692092095002644030625329906921228675876729346392213318215611441475479616665192726792763932142061918269520005578902629151094804026070456838210707954768600494418879623698165148592407494341137507816217558920046489388266133429336016912383579854836495032633384587156136747915938569899157927703761209743359402812929238747018311799361011169119067081927391696303790509088003380934924986001206197706081591918851226426029457170392724702645638807911616259500686429823744047584158763783410050058896322487667334695942934372877778305051753158713258786612311187162260566814038922034452346232313572050802219078150204067106878698905796409025519545631971407911595331299213854030715369543823483932790148294366471874594992725461350580907200746182427953878909710823942163648360755777098394692534918126849753062385270561104147980848661808159651312604817685739816749749890268318912666199772818264823475595613040608822964420253662652460136435190313777267934400223199298132467479742690919348509393603660041617279034279931950002270223740573357412766194828802233526975916837217186531890214498283133416548687867103515721486869562350438307340827394009057437800124567560833929224460340365535854682250583427417899746118037922952458140352555909058696989366396446303628791872909566162171805779256289717324050555878608086839862253526562441733499214483781404708345582668892643713852085673662786362868057688150375150464591912258136533938269258671852798080979111205764112826228196919932616500544235625267367549909212211964985919803370981134014382789609248348103870391465231806399192916215941868367805354451291973693492502370879790243519944598474244026217180628049441583282045222106134661614046300287814312265351577334422258920392689229035865460041611944824853391272751564235568491670383966643046973046985375086754311120758681658483731435027938211023537269417557599841361041180984374384484595685181493228817666598835037642111185956243317913436396747368417422945362130847429204636722509579779208792247499019893182727276904969136574706107720793583525969761434339844607359510121824620088570378243978639193789350363065734519258549232811523852101437939612024042114333253058738668732073394764991488235086666642045940419016005848732752565378405752333345678331532100776813697824240275832696917214219653130087690763488426135484975787008940159619544551123505584031278304404118076510127991905360705085783809872440688699026422090470239960265976828802292441804364630267205982942406631035355122386436651444585958120854203182887449997900279507843047593863540077394241461539648745166832450862455678853031578861012733177158805368755972107415744957435477620292871417602068564771585872951467887955931652246271430319155421539977894878798036617265051953763296426630350615634492286873510239230386426390006307935754080498064873152308184329401506283907747557929303140278495404708284812024495431652873795421113402108698235486303617741569457251481936962256375254789280480458885863750661771186051315415582275661037160811783191563432150440507597007511218245214776910836367921185030619234603974959905962932147194551318385562867813877059591288385396871713434007711002227641243029108720430015731804473996883841420778907880827559840833289550855303783770255048257805957126876007409092049972396288348652752397356387029809409712278988546604233857346073632887979242358788460669000768576229817266827176112589552997404928413379291536137201211876156864122357067592755387830217626928267238903029317390314397533866567332035118760324421552409162891989784112465356158284843964132936898409744347024056973601242419952875844301278989123539389060924335901266967629182210258880726690371438271713694306940467592090691334296683594302150881983588482869122517404362879930060369193623421713966482013391649404398701217747198204725944368663200407656024135829728377293536291720450808764069107928981174317498074177108649806869683455267445964411635766121964042052796842323251545543919098965336539901719399256029514639386806089686186337797143886431514352858587558854455992543885604942931192036442005117367819616462122169422081359749764086909318189611924531070451993447140456389018628207903450920268880953759134204873326275848109960135868736455248028756729381319912868548934009012487325483908912375310317387228856014618626457994742202154885728651823789899082472534152074179164458069790894571238644590704153536270114614559784682262483102004116098494495009148240398361754738733729120003447783582307632076602413348943832225190259819922114997168648501184126949795362984344135309561016749137617918892351600437060529551401702999263881173703642050685757919158358996472795403606359987381035308317031694476944335160419238067434056980755822479700455905514427215806116337550888041592519642858566070701793250640474352039677567990932401658736233857767555531018695119472364535178534225296831189135638760297625695773758421104952713312129879618510132964889439769875836095195334745505856210705191381829045589663264334595874252276465011667636194203051571562752074526895115265703374714658128083406650167194515413682211925232070962614191595672125622507168684095380057718689811067651172586857133001025407201839261347926247718794598316955889529426430430398371691317868755552644613040623186763380111707266024165774288292463761147387813576406766978463657484977970156637331544337015717038518342792447198871465960154555280198139989475759581228533317319358369697178530372864090215611335627682773250091084000150220669353484012052811394715618843448966413139046096404000546789935244005800714811949417142461948037939340120309701801756640219385578287516125360168264344590786925103046394396140320883085536985131504388834344698958120841034764133666453452067254003289538814762807642326721426000271524441226163729472830058695726663490140913836716493069701339422486045109716259226367424632766643272931867147182263506043142440062922055799110665665133858667798867760985027208401840836188333490933208391662901173662905606185138869219316427691700819814456847191846298304879752403024392693132290811182291977719852092208142600536258192735217776066466115771929073178927907858472665726281605756949624942607257482212981436131497276574963529331292842563229665967792708271177709757613930787078699490342163116411512477499838446629620148684350749398785212035522152914533274495633571548542085021251057634172087508964003281272005079203915022906119737330312480253044102398507120313106807113758615972689147613245829633709293790945173901590705218877313275039533258700421171290104175002392102628175880941802482468288873631536632472132690479873468654785043014354227019578541403135833763928437785905067064200683742287842096537038696105043105656294526992578032681701810461663861682068146351836193315529976300116277546540933345158461223736143311124920642940491925940911255722135772110477744236630576579853360912460386454133117894068431174032207404289589735120823190914808226195262264982791052768799020627992406179805621673268907694721041347278131930297919206656570750237797643283084219752669591419967544973387481507991065583002419693239909665794562190001324583527508968654029396187768717703625730184524289692334586403497454193488287733406723262186665077876429312352395132500050341991048641306105033554699559796234978299693998886170193587123492576691355159271773893158553887978124876410047879601841619747875595151006280029363284006825573930185963397973915972249922313127091131451822266147663716792466199755460684975521541840705571537655033215224020252864238363706338758149571915121150801436298738356523243257009496675499650515624078460533898059247559539154412446842644608765440089361754706564353776312741895807032639004056369208661627387185084314310365169165994061526051798076309958762916891957435915388866332169620350152214849159725634200842651448515467553033241430793589348359289631578966132161133775885420882105850472653430792581914264016935248509428339151685529876123348724821314632385122539371029086669997038044984983467387424520374474813463709833893729165518070530523766009314804721302745494699135514594648670319381974853295595281170177135845404749324677706771078787766573728820395346092470237621409367627897288279773054943485357465701208485966120693685569520248715198465015734648145214405491499460495581915259011312413867735169375571755955069246898673253250377898776641786315025247054858345698678382766017628186544080436188337337089300511106679851683359818376281775696976518626734128088336621514432037022274816706449758560655443217602964638457206553106332731554821634313020792062514427323343799592937938343027789851009228192916381055749360009660759814529712167786240613819033432027396306307260671748412366140188437140866022127704810664514714324122593743704340410527552885331831022180359787614304572600768423582510014526642350325245753046101719802696737672389668733360882479921568620308060899870040163318694793368286279345564006287323814720177453639588469327034147482787931553427794633648314988784446790441934629323005191930859208257052532644853725777341141011201198480947479473934831780745473240285825085948321288945450852173278937070637986416831860226919544031282717254769413251217498232790365379499380335690448754422006347141302063685733703718057408178612806942234864493094798229585168973357094541282950842952727291284872658217784647449463213168099621209467855196159823911270630296173888443007629697885625282172518227703559817388653066370433101306480447786758903186550959535085885624963843811954747649871585408234140315613890988390953882209055159790644670238410050963303215113927722264903914726893972683460225424597499257065931442499676389654897356140717768188271299566829278118811779035555091198020295503341906883136269371912314844292159754051542724261020802382919704835949382698698981898082705950399446848328949084866882561230654835770385409036457363590772021001691493082025295637651863484158560630958462874534719378115522757586363920475658122839648801920604910718715943366644723099820287062497498469210672330080167668776062820719931461368945847286807283678392180298856326474612553654544013597676971071593687615587439325442185304590599893967211818424841085280825649868977414746241195624946468297872826686333176862887753553224003290700576955314035304020533626255408468063292510578165513441233543532708970594205795898433968653957713764850092675750272330866240045340148818344933996541881633796258087112351945983206057026850004710809299526569966911468858501672608241766892132920912914824036652749109179830748726398736771550694480121786205167915503264081908866842523607444583795701268258732078172784249956451965796122607293713887933330480503047450705963356809629781266070891008217016936503961114320993526879675385185354693328814293979806879081030416937637571526981033044853848862147222981138699718582249852356773785616033536937208077224651242390902895433190831656089327599009541380123579230470172915020252754382781734587289541298037872670061459961026846803361760434014519024606002571108497667473393517751899559398122733126111577011463841229899267732485217914112356695988305785141565336832491509894834192402050728585234208726442428177617525715821174807026661789384734476502176294549161626012426834850649908407435716936630157894223966415680078885418857311265643730023079576755661811751679631398032312889761931833316538712938417325202356202790104469635710397730605609202775148336262890989964516688326959096304775695124321124651362150755509962147346841912870268642912901761882006406475453532863265058814913816313973659203435852330163372951390551057680362865965415544471857680765919435052385859314057703402853378942863936889650642622059640789729692107491823850632757471881087794167949188335981684394740129549001825238127818170322912034336121396512042605278510510211364637952233933553596635932148569916991818118080262072176831760570106307125238762173987447905964562755067358890226462422407067927875822037660020543222014630158888521161793671531888783403270295272760237652271094619216100495457148290207258228240812269222186654283594648999013974640898165929346249531493215821432383213708464853967115593174870589233293986797360087635836372087754719333921071020527423099844104595152930616262875803578870119267179778816227014042584337619925938145597201437042839181608742210442152390001101367115444010965992274122533204574405488657885470018741733301690239033573304564533208844941240747233615322298114987985147726285515210339167934826685529719284052500729800973703885947587779241641201871088056559801048642918595108036233799190698494152898621974037551601580474535981093561090198402085550800322002887097634012711328026324979154225279689743423188645334465449127087131340712254624236784976703931041800506893594213601057171596645129541863833773876318544247361815276754354189673620592863238301213380006775289837913573116791215889139143382519383072277725620928654946356305027490624060960243076203719767990229247738420985138226122424799304886635115973156374304497028850683476127071093409878108441210582121132114930026014371438804991803829400095066570355468864933726846184124162405078831869507008800036529239505115588491318856709024280293188651164753807915094219967547162557161605903181615705601498083875425052604446187330528849896767198035247873217860974083871098684612122657043084625854330420920217596043139666061399394461048644642092046401462262535162931153150465711140734906669411361987561004938152752898642693088930792643013069978995722938205621993367077529002917303702642183066097986451354028930219596178214272787057960342252544406036791702757256804695741064259487221503523552384952249381229753177189921420200466856896973701543948929946104356010220660613121204710928276380805968578848030938345352376550922256596946872756639519058793598928023791830537485355151218534528530542782759570481525722976103960903299139066344407650473755622154028827479203043591936710876867688679132845178647020690835225387819450977171325288737125489022026281372193274452996196704678437747014817212173660824735106827218383601832424083578663239168906326363458207189342173053900420210705337182827272183135465287054088072501974656170404637936898495692378333439053164076629252997656083896138886781222041342365205771638368724360437817912332295821559592487185081550583253360477914024246544856390965274247242927050439841216638792576617903799425806836816691072087124746145571549148050920932162287749375158755102196005402493980783195717127295338308430108240506242662332095118186859831356257110788270169221350921769403551318363507561197942584676421565799484110842846385497988925642063654620897929126054200041814213911550713807514971470670902388833878339696618084884503691313232281782536536237428076081129063719922243890973094214021876614988073018311128517309870157340789012761796688441956917775279451156444368864544042026806716632082394422474396689042824103602270187505799457020274257743134214695184011129024202283418451493948103094036186813141940647097609078948782857463281519504668630693167847025023598899933208625997877746804627398471177972431594515001257697424792014255863319048706119467739430739407380952798734470520972559714935622331128886016319814367015026267817294058582055547970767073132208876318506341981659546438231331269243708819113553293287839313268227867479642187110238367840740054982179503806409172561891406327970046304194586317053996516097198793880866968544697119666582314380453285510160787341700683793677689020293298738845354838502110308586657611092372427353136057174766998350096993963340934984924218617584763905471025394840432283421302869953222582818745453695268579557896816030249864088433751945888311587335095111199779404658783868903511215073031095486156074926706271533007839002816209899051629207348253377929785864973278050650014785336139538575426598575473095557262881261268123242033042966007506979160930055838095850327922075737207698972752898317026831714495328339149939504303540666894720171714353412141848298663362930150118981688149676045890831147135912848659667599379836385406996416669592627619353771580161075797688941811564664400592506470476358124903364572433677179862198261708564669187487839980937690049540747922952482391273344529314734340797016668017875526545690134701940072588233935662143269841392900728258642613858372072236395046512097692542809027174754129100623307006966658862957516467776515117486484647419569407219996346888141280568360272888466356824379201991943501423427013586585083004305713877309958650362909268998776275519231472629119149374054873777723327170513001049584576864664615572885492875884747561339499563297160082501886006761936267329227817670930239474206506394963411933442244141453310226801170369402035946637395841031217313850412068303602073910365351568608558987738622517366009168216392101033441018758323175996850446362213834361780500055271374116931396955108410708695664960062001886557605381264474327764770577037004636777848571420029858066740891938468479003706078567636409089555372979924748412044947179917219095409391222143884597661539734305020095227845081784959472282818283556285670524424575645452431705494123736665429108714297403257350698286721320779738639403078972653037557217437350756715478069616277656429074664778075392982927982762556325229564454903415671675647791936111866836025012184270883475913000316753281191917109680441965315403544417267183622448656166098922860387672484993960229035584863650493659445554866046729850776547130702661310703099924588288625739296117030209610614465515614359089080145777544171064067745576985718199733613594255590639307056348818884841994363280378361347828596991336308779264272031933315287438860882724352418504025971156209829454145752309945781717534838078359937990595172269337525465138245738858694774221106678713255975076064410691769319269149728340300323683319170593920304664353883762945977808710758222300967576565855440321677481462161417241685929708494876384282181185655541631253544020460821512914919794909866897359454510243883295529140587916654322531909861382728694901605899048648768209953018249693926175661708029788457926164439107730325508786228987949967707813191926121794501394460287162418645549780084185863629668280705499235801059820847659529334047448673181816735242118676383259074951751630421786190190919734540792511380492946726779324481121291001772849489952959439040986238890040848644791250269275479609556195294900491168646236140177451569480760181581068507321051424272871468123165386143392992381725197118859179790751438139206712360240946512458400419723360944411917256967844299668743053635102838950490655781714193501298294360557482352640830152946388042680991084179140458792709198548999243986007568085892487201175301687270514474338707471061511620386918435798822919004457292032876035022399531434145547352377030269208846730030317538509395199044472346102147188492253185486666643176101228069222275056607230309931384877348120094973543814498596841013524927848555210146558143889737880363953969973130946992807511049797702094305548367923729375714673137476814757185715931036050982928098191079795200396019122175274111089580807386763703527957998456710190172104165898631006126922736269802072763157237971733013802240519007801426034951266564490978713071895300575882985424844527913565288382997930290053891772873818291888899267158466533951887163689169869002445296225912968776220023394283191341929112468146408871843065629035956169811792144334900030274285922695048560686015661862256736906750771840292106461045238741013731235730940969538421837151104062890364673304233311075034370080724026262983314286648625144649721031097088972443470725861898790771257190732033308222538146107512051464522782288057380185336371557077977241025793968635816915395441894017025330805212760136369215846840708074093806351532116106784029594852510225052546622137932063214201708212207351407627284595429835045548757378321233815450453170692578673361534111415315479180189051333384769762790685218883750122717089398134856841012201379601678375701594833024129146430604034456477744259642850624703259843958514919181810397882615420457874444893652060245461772800269217179318650072523920668781346263359219117489828518873204020456153627401456747441782474368421903880404399758975498134351691859895793557678768509430589001366576350088668045698197381302213493906190741524640286598131711556596755427052864571163874535908189739842827103098671399063169241182036781414171315086718788200025637304439289031583563326712477886018225982008824830602975862889401087712397502729434038459592358583275119764019423202042947687934415397258047157893856994753232043937988433863976271764509565124111503974393254048857352937866972629112375069421577182601685943171349947169036816974912009982270051781698973640300620944737717892419149607126272770350855082783921533241687608696939911473033010555497342349207345700714982638533341046898374234300684129067346016068335604402580012154741881148089241955801575253058247885027900296657218512063638246077417304110188607538894960878210449851507365418108248896702623120010915902773063213043045986497376272683888500504937841436173629117450059779902799324362057600776856252332513878106213472107362458423778132434008904341324840700048662702540035845926955217938821247009392832339154755371123921218925719927805921247307867318690531663326948464078381192844857361289155330944475705385505480424534397452372430659674668496527220239294510050185824239098572523676135107648436939040033501083251385585924101457920651111378674007226806172926176655408318734342381205154478213972261136731285752578095876689049404003414577653003663881236967205072247053870889072495686874875155970034069191820730586307331684197022983197858583281052590469201908284519504583899488830320838442311939114146444947114213343881880133783474127283039997717690231451217033034306391107990560685650103143741486368892106905743895022693010296804954990424205651710754863129472066615055064373857819809686703675591692341124886182309105993659851494211889543867689666663306511026070536775750894066806876654832826479928872507695867067077286413020901079866329405553315077751543494801853528181235927453854785635405073574429837466157514796149067796901826749561388824261740136838869960611785380103707058736242384346376687066096851455380909773598910956302056417495441260375922793296019549707327860083688576254287066236822870249586034260750064015855600790561633638725970721249455653027336082393152861206190300587692369790604912399414530522048542490629087413739235376342116274417438588261860242335609081205838181693519180755475546782003332569210367600094453072937932339381617559602774379603040899315442665177889537554297900966368989346830404399413867544530523383635415322742471270800062216700812773927711313815422222643729513137873532192270897049233659623611979438315873157701757142813414360431602993901170679615205323000193567723807995270285308351752634089787267311667986887968910636582409481753238334261776517479534584043638292910325548677685702383011016663906907980689721727324337742280565079464290106071664804984962463353025659943269928339935045353611709969489995161132030352603777540203517366991569176886205835646094006410798619309948306003259181857454913962129426735882528630835661755849350600900898719049584224811324851877671123106929568982138155636294680986837698049476877079599444623727080681802764234343700632065366324038747344259904052004084668158198764452037922318153747936520236781689004977512745208244621542917768590082018967196209508303535597519727609143539773356918710807090915756931143097141352645159167508639273630704040872228161302819202019926434259674635248097545970758321002049389500399714746057013347769447317775556299367238742851762126025616336004039656369071000701659679995794058869498339522188838369468615883736499606951275727850302505210901096462592298042798017181275494249120989829348803660587155184902207690259906321015615039917173919579635998841702064405427598766696264012691674874329466640497666713130089381781326220293311740393543480818343364692098752970071197069772469851154332565257314787389198330165430471509484746184764591006217192306291212372649032751480716104788239350268800334518248817215756109285660396246620278750187271424669055987237322752081246123087975777105143467264504497847869991523593652065690236013139882330140119638823377579890386831899160201695701443323727475278057372021171044209680790174708669296312269305007243892482842949889028659228523610222437676352056709979676157987941804590811492300059325720183840505953726398204288004873676767474074589525424902158725964362716848432347622167458173669157218889677190461911776783305575821426789851030777763308817984561384180681504708085116016221765514608256471690108230144357651039432442496751906461498432098897765837097594869173739229638438257242162205535666844399808071913416793229841390720854641804067523326671203499046406985487020774797491293753488822507374187421818232194286311846573846455791794499943581455641192599548121053567000560430880434543961460882980353800112132377471373114665825963693222265317153506005192220343925762879305753126423951904156606647817380032470268064843128471280110992825244675671602094087516378260517737170189823702242480127358964362778428026703920492286934201833273890951270337142187733866380541239668834929552093878871078472717492936575926696090566985304226769572486021004221929761821926794104244855242350994316423382650347650810909096793154916906394120081181207569167983738726789851139488137400887263896765991013804782390651528339322631611637350150007522094411111326609935946205102513875752607429476492756619230954432786366970147484968431973753915071676389735686106507318368412577906180987456791324487131616764989931956558975565106375581558167081451077098216295307055286695526817710787759568001632298177459991501097041008773661750948244783350382544769715610394032845944348008751416942264837966174892003394883251251567466711786627673003400491177031198720218540706027793448530134762911341518217608205865534182823521210280793048457725227755717357655286367081754037292481099970745215279112871667644391551532711178183839797270168960225161735102950101032868806956428938482676813329732480778721613318309640672180697425823749686718864937385313620099421465396860673972953849912133182767688732983020160971582441192248552564283658314451909603613797139939784384335137485229194418722269571434249346169503375572421701212859568593653076333765085194168608069602513863661119445322458694290834562363929541349156945949936623991931191205514747995739926551894071357653497683381481598551016215187425945396537786699224373062414243509851626979953299250739171305150170345096115597030108946325082655283252786430708928384164610404395252219927218349950981682112330989184454136203309832061814252011233402626022295430128099660951272140162239720144106982486082648493626158602352497614636144651292193864622022306440679106157385016988762253410285851224640556083980337903817205890912332139245541724147525128263758445096640589397568996372772462950265237834639522774934074543289860239604411099110850385034042816438970178738080308196191266833499159597044969839663070495663110107867640871641167998008493298387871555432350373792438458215506394952444300854257308465732828924138670298635561733345742268253643845959178995690580472361687872050546563935905709750122239623404319365158952639023463143149220744926138718515621265852480012028600025544865812607250711739350813020166754963896588321981277691261900031813253556070318426783006951796973741970561638940066280800770175539823556496821419002018581954070057097580630856926442497267532754274916156861496715493052271338972598439854786232799210418940798614888879409293860576079897506987861149105288925932077505681553384889723638431185581147245594060299348334091252325096484192626387214463646346008854587209506255509135416299688551584911143968291924775851403283459562990379747981831086466417342347413183412314217632097426680885140514155290247144717778473203266359875712329294750758406366573904538857172293441997145722971672700321610472861108113637865499773298966181328708669521302780453984808379539816731850186491020566314430027142128393300420814454492940228486956074652434910924481119172214524450240676768629080192984855325337844860023753191193138586560777316689927327490714699168713254182605585363780768952521766668300861214878150740319473265331632596780017801712675670401831024327605958693847779551247715205339126486040903762153559423821247646402412177017476234724654204621190940045949113462721044196139933806993934534632015883777507038029561722895213360802846045439546955541582282652694284625782530724042511026030501657502962956028401458896225188729432066666148351046947215786140903763600627223886735364783463152596130733280419134646289481034627054666511569338784535078699520904207298506186863022599828152571217339325031397030743693954468403423562871704591382092695583684739677026295669817129796560957766059538094690335152511402159805977577388855199764991260618423566149553728287243030622494707238117836090779434872088670913150239133034491456218105770806850137204441462170598911917815677916112558589541346246273879910231590962553294346575175620130723177926362537008789911427377055025483373624312876983244806360634698978933308488352113736694630449698964442260556983246974081758626964349790037271365306709862415884675395729089216856009052532442442387885782061782821979104466847479417207719882171342646251064352117783535669033934894407942901142694656191776035266525855637908348417523607085620682162660113590568521741278467986213162365345144247731667173072595142602959583448990137612737141448382962521751605098136466270167684411450263638063956385735415532023432146672219656145416609299928365390098005518541428965187497768070322883586701865035535949957028656344498247496140543176992216036906373006184445622515796020053288696851688556998506765693414876595694892356589272651024312417624332335084921701828556366102352968963021487415124116518337881572658507526490952440704383193669405010893477523696912572630639697784582977387977485630723212956079907213566622083657807010741369358234918271549122755702493813231205217165798248305481543814744518230580439418138953225478541289731091923588273014138308890488592113704402101394799354369679673734464659909011561314696916230821972201497085268671946988246063565704502465170411552530397849566992970183849377413923073372938664880334859655885336299239735051010776649715034018721015381912875222710228769166747385414925382347140285386023371991743777235843059800068992194459509232573816173894925264960166977808681051208429647241616443120912907407386385145320473835224377138791842285225385414747085292668574245837602940801312043196387924753971734491995022949166290787700145490236871976504914375039476949887648770832640373224709924999100315306085734657363126066499578462592924660020645901339409910480596706922987512105611498805281349568564596207069233813949458099115819187417594238547739138620157000618156981519092977145893112988657186899633135014286500190080429704702560223097559528921976855838428539403703564113681093686699559703598914336153784403791113130397955267763381700550955514500842096039397728472244339046006365303007183908937758340234977316512727593158234266527543108775874026926391303494152666550426649658532852093375090187846141102923135218321210529277994094023026877243534127757798186289889976151580925579526984301094215259512952575212615460309881305170269835930309368412548094034836147517381950579249568885243238800244048207072935477878335194438346218488247897571082119552526707199415948831656176254141560466688020134700304719410910865542970148756987732843452115865911582921715144538029942620037997189618518183395624976091539189008715078515630778272945942193808445383623821925371833725300746004118498100245705410891993077396277679932803746825816250027696943385696536129751384530460383488071426021658839894511259532884743601572020614131984663959332103342691002130463562182168980064649025673721458654068487234643515510496882720740907329243424479242654050117115518168450179934517126829388822743501268661725256300803819258313945249130434917471596923061991590699134499159973463340975760321599762475724343332660046945886231921068549232785544488771862453121353414363049711664302249446121512985993392494502609013404528458404022582575745653383577576004430471611839868121470901605153094493612463810583366095731551374992750885424948479310388891341806951116572058231476922156536692280831896665152804461161249830100482462072780436393009729599638830969323607608150308356624406703797718028940810501518487546145666432372481055940625619312677902196485028989871658599342840672584643126514096463897103507545319099563681235187829351701952139549992319820756336882128149468473219354553349337175188126692917008467175724858893641020535125041356419347577650713576428762976370686930366402373875723466660498115035509027673660521260406433996853907187545244825067539116872954738758972816431202330490926486355785902041568551656371400662691072543050828807635904269192786369782729993388985908553479980705864656739343847172518231164317091625591436534759855549188651493808738390500159413759927949106917997532747444163827694006726265047442771841177763757965190316145220212269978984183982317125454028528573164309663953311552312911894047699914183115086639726163785139080869818330679553591198407619203864918010953427566570143559739164033632439476997621176890509344170067184336723236600377885003514714634283070638376397409412588250921868457128612446768606292763011986918115033162588570979165158214492574395306816754408963095584888696003299193553302799202255024981147388330075912598362390518034304209507281835809036969452378239210878217625773042513264577521480715807539545188121266659822550970518600048692808605063533011890256641448794325626087969797950645853846888893203278880676715409501120284514360546531238587437314381888360814855058510204039316346630056243997128209051744603548137119850498979081194907616128009263955389135876881880937144799368144690797919648751923415528036767450082231589667957337484241374780099654855541303479218401179311861736594640722304461100316939617669752982050303203874321565225434223936426330625954070767080994438242092338811985045409943575932901964910549622096692476300537832397765641936786725190069304582575155480656721808527976360994047009429342512912942155326570896849008656695838632050883852926755521908509874745428848353018415022041487176167175783630553471287439054917345785755070128353100223485274203601193231631908443965987442573338389225421827193742846207970878045973916721256370467070915399950302576957814957320016666642905936881653369674066261424879775903934988006483613240085896539052405998370375638516946011776929751454726981558189604852726378555538532144064478223958778076907929651284254986569924484475917575047976437242893992818467189505487989736595371881745720676626214180614747741787216093044616812263931105414638947562489819196998654383190583216193669852855236098774165082435118275819379989719618571514981676476535893469294553910475605555379441696073991056854380846098810223600707986708267181124288978126584190277075142844879424248474806057193788527105961161067172341364005866118708975886107106260856427064165896549508185219552802264535321279475265115297457989413156905436065483895431132278405353158175851529755317529908626910188243645256234423773897117230667431065499228542200221906605974890203467536733771388438187608868545012767416129149380378876700662545394733289862161797522641470388111355283247548064773717842311059466936962691774132146507419334158861799112549270976926448474797094996364663588900924275981886806892944111226284651787385934691376624790883746722850229885897552478228706331236607113438448989693161749241951256353623512376211507888160130158496328253003187115796968929381346429355229932676650243149653751259341682200601436548117090744762422986090897969697314507707007095251181435247291471557655166164572269095944734665481576848810131594673096757991562530041871379940909607540186543637786743302710258779137853095036438811245461328777221352608243992074718748746097666389152036617016174923356988562274602879175689108086008586825473227330658175098182532296462017131453492894835579844156713707968356476460629282041971752596540074292060374797977789765463222433163068674491367266145970448373186275993907035610469868978827903380345105759493565560745522995317010412450597984319772864810112820171417234576170329290067606492039644937304023580653626165017500764264286710877293848699186612713894311782651221736867859790159437905502397102578548612257469814288848622856494149221659124468899597304592953256052983037495069444956494423315637560304655317679174868749194808468730596891285990038255988457515331064798120071341963479166501534999539054321410552152361366645117116890471089332048648283728779819029599883187000175540753891599128005169485280380221227627200997544211363908789491516729362452692208640636753957103389720145987666529682494772636780765560365738474752998462968563482331471017554445918730214264330309787753177717510948473507493893373444734649498270530492740027426648978551129090172558646973121752675623057085817271647021883860399276989708165497893279493878443131988670864183703755958400401874210837128480254670125058188092663952292537216145501205022339048116599756024236667605760822764901745696814186549502877108928353709870067292272584969109156772270548500836295151642367137450645519528008409722628465039866298194462462344692388699960065617293799733597192068459983342741727042859953904462415055889548787655017901140687981510386520824810778951352268584759951836492022773325562407545326999301637347501331287796948329713882728625370150370506055174786982197058638664211928644530678251418097687338081626243736507615469260567690684524974916385045466347213689424997489720510109093689667128702467234138934193666398519687874434629999140876504110605923291275518133637947375610673018700084914248958432327003477784608546690961039799216890697767342677816455143332986014772534996692678043243136228753442889922923928140507587103356679904095762415380837748266260201579908616029902000397575273221240511654291413208773685979234630919231231141998292066521613816016150931972084832346879989736282437247899723711044910124092003346927131192118361873173907567498295424471733291832312574690315929901066888077798135597495277128296546991410983330731461940294790190757393089606624584561333152681810239418374621794453296972340877003820521359511841396360442337052117523044681822096189959128050827988478130176593695139073437300728543147306000130477645130899682981434705134098620941718970241903123452352578824029320564368357464128004174911012725150217432275422717117785534638411447870820897100154195204064998190974201594952489507133044584722446727783393094401122191053253205370114696882255920479726182749267997921785207597403053648118421204291278103958657149411635848991947007860973225089311733132199192442497793650780348810463738075259658071266609475857074611190039678764547776952998928181253483725918156202242703031698152345820758105767706330224243322087679991807483935570937144305131567238798129232424162767485674905538967437248056940561920764051152087792715922588949953720885214456920521487376248839620908664322134979833921818734563395510724392414066480647419741598339593645381561150336295159181798583255880465599819130035262488835660496974816590770474269478460156797398912548112994492768428211439121950667454233202814807444528369134909072546787153055203703112817903652207794701345024264253409690453946114303616541336360796766284568453887201827366296712570908284894578882347878514699080569671558627026801969621636032507294613485239225032109944877902259119221920194362414568843072513010361550481315297786375059194893485683829659445490575737154177609656699682576648573235248349787610875321463105992618591084236864358235432816385336386644546861773625566960591476605236286219788160286155295738301332913735485224639811153914045250560184647852299272148611688417859713295653667286592135354260341018767030591832289972422871389423851004352362172771242208752207298219575638191311931179965392666228216684579889878585916844051930233750267741537145946767583561703032549033168307264036274234241957732158789638405474841653087115824738729381471851615229841073754947582652699271590801191794577250797554251439563783284590205817629474989625941254961706697865583094629256279331534496344649843841411135245261640513652558156926422206391533617712465390654400265651355785700208638151719540050716596966848430076787345616788713078214486362598106377317804765823246760980137127091083781282323932121716377859739701154625824453120070903980118868718700309968519204283013957608667349723485611627754087910860273063577817000807026852385081435846346668376401110793831438635154230418021017263829418338788412863183858331579955822611342796925536240511768782303145920882413548471384951529464886156809536091807916080352640382844079046857779066447064391435047120251832331806725398290220861301374685390059375734735800951060670288330038718381337326703810491483012271826198876958351665498431258934510639195354638262813247735994318390128330363644169849646965693204150528210471848195711887151244562727793825081743664614575284386359792376235421902166437653187600678018437770318354159447194800533345150890454546535225134750649992899923904252213291999001995196624413746469449759079034513328951160542644046394988680427667593500778493367772341269392336552630616850010906225354584758735401707139629899252269351612687948923631183835276629307425903102554004893124124232402273426579410674956380970641734640852093305739554926855936211786446968587080272242690532735038622430029760409980402030784602334741974363205500929618559693994098006338059405958067228286098805131545842088979623885368141890219559335886752530401665080934738039735844484735411998254485381967184927356014399362736909241550061506111789926709461664108029344102049630810086725605725757581920371508298495722110761951250371436117550667107249786428893785984150230141100238758660635865740949505927963968089838617909665575710068171407355010136963221014297938278330154473509945179373874672758246536642811301026592390111415241908405160125560512463039504445722608988829117408798396585739163523842524415548594220599646594750124565963683992160272602372444015209460770408249417917270584805527378154235318822507819519791575971411152957005090683872310791309990036269567979895556233652556513937076998070939148573340562156678394772046448970325929016818298574404014134144039997213963373859557530118158722518721310115827846945963589634651777653584477395782937933832052401858081670913438765035530421680036605208047535237678467873559988592347586027040040780661725431893001646462132574111820166950851358314361204691123027185318006704866970699156041934217706889921126261499996488421529294305821376963287467790593186510342583168342067353140769456882164121033995394866411002362789130303373034219829269102979104984013106460169921402393054869578313488006507014999884852938051162210551928014949338135112277450791326082413145006457296113628052048736503517580830329243843187121764747673175571127237962155345773824279431096754829381627780064293888786640295723888312666751723591493385074896433074604757685192860848205874478434160545908537033293701018762268030593675382599194442989471001712678426092483771830965769087769212214762807488679190641587395114463144056367040683732945030248339139297889610888334516460184172598069882027694263554528357699719404272496769698251039892339142066005603703092978046370663270728291808770952030552471812669682987531366727199502551483099230593782131536219501804082949370119510619582534967131522482769197100488357546545648915116378688288648340226710461778164074387959251717400137670091538287372101053198755087463459412323336668086544169376175279632552837011236920532948526036458323237680030452016883287234225263744624191794741193620393119777474751315903385288653125202689839690672141527294593818760316110850137275754568902750315562808282610582685459178912760533972617515286162408995839675664002620011142451966481018571612743502293280756105245179251850460300570209691153872525073103682615035387601590676749390794543431766345852050538997916174877225527902031856636820990485121018554954127893552204719949515399243253308681593555830524405936436645430799071264303654536376430704308946726884829341158130824716664467519525600213118749651606329475839454338745313878037885041836861391385084388243792349897252814446111188071963764682502652865909327955172206198142775373006193206920082251785391034983065223005407542149240672524279392005029168605096745586788438144807770901069062463248279008666591132089888014447236238323961079857665492136625037393472731874000010799455821923347224950464636714222475929666075902361098189071461965440940363506255680850124974759208044720450477781279575386259103598151480404743968496214878745647910725043751999867124850793945837119341176801088476950944977508672446199086128967128042864488618122306523345751326375439388198835898419103668862907473426017926439483413651868078913801164877885212003532812459384700282999859423064078959892768284484888369066009394357813488288291955465728193536048466157593337034750276906806875843783832507912359035399494349954639875983201509452401408029721295797145830722689115741667475348911140694001572331856636141418994914632360947252687424467956950742955573446272455643246052058822529193393334756580021432704444444038924661956040653577945533460033327829786522420029766054816776449623955010301547165944298824002600984330756141342550578941205504752391874794463032881317921627370984482988125800219613711042590980746244892394009952046810467954251693454386217710252372812877133516615630921157579507139246172726487808785540172248384208896029166478957339743316453165412245548319327772116570932648056693063193744131740134140700711148539534180675335411227963104666638047971411988901745855597699159777187529117967160585327460686231685165596884559956159617222424568362457031412227949592629413312523071054806945463521099929795791496716961428755868633660319116183801416129115473550590686017209403602892769865500472339280966173075485043489142594661101216595932299856842163780545500527844956837552260115589370785053497811889941138144601775523176124442689365448446036630105674879359247044196493599650114740115287385774351515116455317805076361652596440198753177378286596451748813539511144441108987407667496757745359738325888782679438570946422898706273259235052458338771392828371809333705136477712289068090987228460480759396052242073019130837430218992834923842518072451309418841472520668246238743402212964880692737393158614206422664711337482724180525445473789584403662910314851992415945847634436663145825552112066031283696629941734446317523608433762681985137154586441385639259574932040150562132734501475941270089241693601727739073246284193408929617238763047813298539231960683637710825284532168182894822128318809396636618645106000644353904713960770219866531723405811385960940750685898528880973739746999481763269598499852782861195748917306798702185733496591264637549926021925883798650811301692773914145354161332664526852808865214949885664626457022538624205400301841343811258471968601459241620135585135987210357331354902601798895854996246789341375445007478630480713733648285482041224252792045392226082018946235540041320852859746906959556009384534093771605774994465072900612445612714958458384781094143055925361107095877392984198883569674015104910942504296302001376461854719221300978393062051830016387763810281194203428234154707206998156749229595783289448930946202351566557509891554550595765356594199691025745834165702012548287756433989669640122932069290378576321941190302113563978702211619316449891549339145396497886653898940698333647889728176559548588766235415303373814989380320152671537349388842249133273358715653990721348540764833072344691641268972440893971386883155754641034005003027110246539108692182981262197907320578404040639348358794853915711211438939834614092008862701883576150728719347235588079625547866939660640793443371384329964069083105145859132558710775503080151951347182034594236580241727561445945276439572170367876679404140984333820869572967653836570569075589918633382800637443799877138410324991399853080584791008430798488229025667327463499182704138265287746801938112791376881345210691849927302348146676973591956472261370945928669108746457249947310227984338493629592175255325281805389435214550510460487582536215298185324344037718175081874794836063611359793415216375027332734353330087313902655951774857955133416468037558130660963759497441847272706680876701166318700730704422160366789211112004990065295097937034260810856886565769917186980443693914759896482252638419383880422906563249721333005821176518198472086235769497436064290180724413806924863836560374093173301356208852604149027453503246732579415287230588332206265110311285114340896116017874256389338994062157226677263250155399612305483678092437307448754635786563244392771349929451438073190497914058945021372035849174629551538466338246614176200689266851385296034101500988897570311689894271373841461419842117847923790673824066788363676791412480920549633505518962602402067448603758487325805905084119926379376949434435379218562463535230059053386044297622797149928644346859010532269449423764254656493443724324113964686676712911887432109719139926161631087063338824542463787454282961358041405247954612754203869127962015436589859019864192320265986389876344596682330786748858057601455941125930822252478431242391517042247512156970889967865564726060092108201303749216162388276320934622357649734106415718590538079180710565046820734264238673475412048020245563452789404756085670823239133657200251199510910364626032161442150286978608790362275250876167635949704728741069893234576895753377193917269006805230191160315353988823926585924565760707410163390372091328170928125659090812462797500747180779541843242566337004422263423410521016863581097127986213623618057641118321936249228312613547064972847784994058380814717007942211911560732507979499640865379742876377841818762851133362397905257375095940750309485451518573415223020950286089662169343583756762079053229090160510534261883612658249054721972808362552832615835785913693708830996359325545467414859143933485012705608960717872223147930673252176040799462898200678923971143392513431633405663194854855750580594023299683607424935721546731879009519997700191058357857532060513422299822723254097598698871379304778726694925030686584178417333312104669216917875622202399006517405191442304034464725254282211795721228842210336127004161656265254094792392358513943108164546055647916957819679263431320353392219708549030309036227254066757307915756497253528061590813514203657256741237906479220050854888544640846502802832388851458204057450366153445956807815457381815478175361392974966858615295072182594598849157895264303281811189353666099760386197187167477743581958154082301225125212408238590737619946817486127100591320852372514902528981487539240947285619565033273148558642508050668685388782417901815441399259121936734733794244599294226040462457405849041392492808423396760073206993003464622164213063051950952822002087444545225674771781620227082947884128365614260306641544047390255535123133163169724836632391650255059598031278642434817335318107604469698557201916030446757993652558001988843140444970828840724530065269593106211607642197285308001125563709668881581932968881015389834668130407716669860147836406521550086170420262650448988582029673657582457789885874336859422518916042865266665212984104847750404319992003559754286256676202336962458918275067376711481801099758599096844850403815055646445469268895830469917618517480090918457441175519346117702105423057646827121201836996459121943445518500913379143123753457221328005943462825950321640219496590024198752588957545709627582255932413400475750039060373892204034904859758780375319355968024164086838320923193076421243681860568454150955348947835747237801834485979966270370834077145868406961894829233329609679532093348494152161340912463065723572135063448461675583252981844488945328124097550781777323485179185056010671286282495583149453668371516121272033341188715874179919997610079832520826971025006985973992566351244640347191897605463884659957940975384694233201497718782047770000881513371999554102653319455863965553467381508956624638896296791477491216931768953349532744338679421941833752718859641369816175062388022832653186163084871765833289688696656806847914438335965485839080933785776703643182358295489401841801924050217332810739964671395360958604664594800603018386570785560061479111826519795264946430112567971698637896997346634936106935858362457684665247716146365234986685985665103370673520631515721071892564665125905704323348573926724181893548868138413011614858030230756520032269352702077139920819410948596052450025999025366375363923150822502704142958720654003661551998444274190732985976673939427192443887732643323486158811167352476735536505705397746918331821525503282070753065857717520677981378669768617034353680875012329886442466788681699905493092516832048422241242696235061951147254810298382393993411763458070351256358981061891365539451287965160766822120099470399758358370772191445637080849465604378363382736001830142541196015878290926958153860107116292520105818244910137380785729360617734825637154857035990680196210177148427139008243121263874924053754631713204432424392095881264386122233387831518914261809668258902765608571152204668971306021691560996963968886227869428625825751195458344737499851424533193631867740538668491022123063876276069565183605986299640972552049124546880609405995980036321296425145677489791296162126607220253172749353939943343903519401782761966367808874236138158478501308366508399490096208456430311810466816373294607578601923561168015381690477707921551638065178920900765626920249614074426165365731462765230902677548308622089255707600764744189258732033518679798960701958075749372406795141151344846561097399549471239549828381892194184764601909406672222938799607389273201342894050333793592574934492731660384954558777458096093312041595307633901511841320627060298563049312731804140063168558679029197053482602747192510915529715332712476299981042979267653874508862414464228768453124501168611822343798965448597678667703794429518763864431394110015491670754550508449467416524299978021263493087281651511745756363729930099703898370740771511708450112952701653904830013396785405626316768329175809703248724369694653462399692985103420927193896914872177041802552345457603895184559195607988737076116795828752068678025942320497668365492923087962137276805886739748714356461308164420492943482357840761778306449718596969515986582410878941592535992065925828870625420296484577284748158731548629995077762641427900867170652369068757250768233576226340371766866039899810667774466317047537883591420165886029667551339294182107975911137160584104366635111747330793420787167347150708294698218546349221210556442333001777343685001140209586587221739897535288831713522820744210674289580297759692881612173953761863314214015215390358199797323345750453262419593026653798137210372414752143565325446917835655427719364757079393171509591678638706008999170741117538261934038672608468733277499530490768838503689798400214361041748994824779341058837864252543701219918376587557171143501757720291726369343013156212524264997843758902921956348639782515997567209847676045840214529677961970318780185294962931181604494666743609821782227429947611188790046316737307448628380862581643240913043519470712221081684278403297052317752708797541151877021734999398842686505624579635405669990035710920254501198300915504675462507709229299309224450007899698569492441006260516074435801727045322829293271748217606624962958139037369182622339030556209039168127221157954712185452410551424417399038004755733052246184930581334839181557149658881339479660186345758849640296366482712273627123746543422695313771485206525752623304289203907574346682522598751253247657055430560477173268838522222764932154278418593917716159973016807974261966588914337310895813078823695894250303754965543322537791314484767775856664084010098564111184724665555897471060203183303943130596297677588048460251990859573024013102045943582217591871143808012992635527682849578225233935597479201547739032658912689984653904624869586113516235250356515359384338150731724040146191458908722006033607551296036247273056338280796396369698317301640510232613812494294164755557613443321277993171353340194194620138527417016581358325713688476754693848854993799324586036721076597249450874291014929235140620349148756421354793642279403745472656665463985416924424161132064832643220512658597509840933289225592246600932112124532461885195283081282615241575537937443097352845451592061369187968076221448629957558437018712081913190985270689611182292154908109189269557020203094722218462868968352006276784425082889688242416420806521610733457747737988044244873619278237787973514866101289425353405016224711269222311500261169448142119236425547609062967326436760919171255604919152294134218110105794488068382307888340492237335998240508984687931436828865665763803545221208340288150145547847072059294837251400320158466427285583815640715456722104498480306687381857619935715837154728220889281870202814454835190358132673597170761273431132057632722559406477246000653299615244315876395274228496447188006903252226954804968721223521522467496475103135571467890631603839484996737980462352949224521434422543635480338333792077559151526445167656474590967151665691281733589590067359150404305520421387437888282103270263282477356969231632761917791461963638432969591678232327732273199232177174825103450630067588297787274534711861280786281997815850437068295217125309503007505048478764741021228845197220612913919155116171347639169356505243991794443496236579169330736096541706323986712792966331006896764898049129802337988282364435687540950676904354208128003213921081298889508249239181578953807879893413239347138826733684492968726845495296680906793166849255183489861336841460426012487371498415809703881760185568507751100573928688777903614688042536248919974643014627057046704798570456847499413147556507064812466136058765799150216888781575099335223291124955829763965570604115215399130301634955269994974056563017303810890354735735353386486975426026450825234260860207204305324928365652216254739235297312081989429049026664853558433453093191855412463663236225188670569380874216046623000732233181414323864443973134834964388620998553495409513591266263961737052692438010658056379463222226675340552965840283120298503986982290614165813175132353702410154297359894448752019270514672437634328856481223249529999328487580533880227208596332007837902726416720159059554782810700380048845196692847464279991113325712214081865916386758043078303677009328130483473698408034975236286985659990175621118487150279295693588094097354429897536590845158366737268379387368676614157289335382955840458516602283345946453002639452320822105047341174999803107685166627355886413465223434607437115711325830315882574335802075247162827330574729063631907683362055826150034044142280572619442204048635727906028030593863121660326014987220651742031072811486504344893019322179106911978915233389973413890483679555724016026790356432145970325538110329776467719064646126787683342909994714156547092593299835547652898373796601333336086778688091920652275293167173538200346111223307471360154261618869244038275059886709442267947285235079323003298331965763658703695921019995961694373868105898504066857473415982419556800513524061873151918947909580248706861890588122567762705105335087860368424302106877829626287253121192620185261407625852511201485603636864253016501075936814871529821558102458972903675874943655555426023718237140189972310722771314438680206868235538132947872119426393758884460822027669429953065180252195281485577629484090430872765522403586602169822220481954757880244977714168592641134855209928855803220567368218384520455997777386936063006037107735385094404531825068376910228459872525755411580590759139944677956838947176665045221948267471690110565063001210269064531706415260191775779795446115861584407586899070082879264506365083532187963440943178207840418353432038664034579704240453920578227330710887896405871826661818503336719571958586323015677028135130183385465253252465361335923770347910778267135313277779534879778984680986998478034728944226736114799446274378178301188002615188310147230296233604077603388444163551889891553325283135700103431301560868045714844371467695314392100345171013611194308554015998285910924215725955291822532495124342569111926123876171954251789656251789049047574155743465136490226609325158722676617607625918285585197557009625660178522493913426061790093420824364664542191530847377573247706049164710706130588963115213792036562744777425237062216572441791537363113364025173447521164028000586345993845899194912284455248769993840085672875830686378028304453501861700358667873010692367316956930889328284292815042991149904536849862706125354832350219768699167960627310834426991492685837453821675626814037851026282363974906028112857844959095119924038317836325222896369292918832823547186589029294651606872180968300231990427773954622907598118735560471747247019385801332546485715176890499735809488678908714389060384771059311990545657753652066830655257664661895369248036473849123943101593555041673709200003707548432867824391662060328722892503438889887974655647945007021306563110138520125614233422586329976935406372278081224774642772090443874081869838488965792066090088215037767109974446597348585509323364295856969387370336677288654477085778235682330014586347475696266313133229385670973552832992098531131113620597470332046678923853922139985391643239747006239640353768272173401145392074152973593639033401206730971216347694811896539209455867010027396144988697132756290084639004916773379326687582539983626473015587080811002549651630579557647902860509393220554599627633150324328966477062440155922447122527733843744619066043431855475755654619702859093656660216708600335268244962928118504475932382128265414420288090541662576579685719741783526546165394702412201663101646132030341082924523876513372907678964396864061330553210741728198535039726321316456275535873926866135839786864275544434221031588493363504361152522544358428486608818860468294678949948978593502222196350756385251331280324614813007225105815305450043512253293895940309396546415908202187195910351852244915996429844289400671813534328466001253695629094055263349308298639981188090903075197497247959983476866005697473833087388608177970576724972985677494867023931482640402966977638839984291646211192042348952461279152625154088733478504465388330443681088480867203795474866331398573077712992121330249335407973667386309311015948299805379748943436248298610571535594413861234032300951184116048892719016565804813876506761550723215555914667981299881676630021617134278551339723664150485147276832478173809256299781167307697683681820033247915489484195733246484094935022747054597718852978862688562909171188834804205693553777971462536941817735626267828728085807299781745705333052303531588271984638029353851337898516709472835351871125726328561748332514392033266634416326946105384611049100225432437514700210664832572817738861591894686101650203089886882339858170021130850278032183677600523858170152863068698070682790147444943890245547719794285359644174647732458358239748860264193622345840226907298338800925688322658743206784989189171484286697641099756602016313135536122272305828204031033587368494929910831870304113028628700856197913646103033275092513679669003626725315558658444821705173685488317690056868497559906609226236337268337618285499505029128211228920874786807566973474408398490072095430705164739860878239705910050419439350092434835097259970390552468655662443806940761962379004003322300056005187752609683499492114284225248560088014668016876840231575601454860401554432619495009233819723164294203959221616651886612285323885195158983501781370638238765776747786914670577268309398283816255276263303714352518595571720391648387034598347011283408409879733045809187665257682858328187597794309212835742784728454387071486218153191891688870434439077594876114286921833993219233571702234678905317859628546432987899192942774392504564494348228726622544880436702546518159350756985549766559385741665721231862151606344937137833395383353515857303999127737332910406699661109510338989114610299622771534080159943607309551628072050005929197360849195558706918152247508431899270710366472084323970278069552760213196523220528690415648209021889819806125274076591494150360552277850063360283908489858076858773595390810421206433871537850717706431079716820223811636820971018379954424562217904952899222504458656656319322373411090433880033081302290104549348312866512718984721348645571622301070893565907604072035216143420259238079244726398977236993817840166469377834335959667414623175107394118244882796996859228176266507756940453373190461202533618387252902838867797646739557421090112372737925209300119247244106786722556976363327788432271383868276406378659821745474670110012701560636717853589115734674236430010589409655539072660787050652256343967684391866137462156039978033489953725026960773494749701114397177681503295548513225161606097056075570824171608244546068728086986416578298650672279052238007740648139075733757945559698160608459351232001859473890793471030284145540302895433340024049888272546061869836055311151067659948063419630923725174687055369135166593600513103122387527842708283367990506295506179431996277195727983945719356019772445153330844045302662166014667466369428265741050938811381827265527233704622488127543734287619495799082336124292207786759744766352624310283520869827744169878440154983595301798095153998432949063662612409801875751883875285782456073817385540165494706261887780945107959165163607836054459750342782467667458031156952578166785297782534116315952269174924087880789423193482490075331476315532413129995239832376341386544539524611172346755546914367156533236557175576408383196217906270551154768137447728624828863458187359241397133140315206208954299229589672242187018445492983020875317285492609086122563335715863274329468969278785944944864304177477699243899572289836269342232117948637513961866226926643225186355017503410595850644517458113457147491788423952697515300243064864057522422618842817854502743266603327017987755566880516575199600682711944925588131509599705192378690940103288649619528864094960881804909184197272446678433226923376733989942028937892853171076747723618530429170652191089472752566719935375344198407146506201733345664236383426970330274845984533411678513413863879002678124462487034111889850386261237199923715124693720985812417173051514277476148991733880970116953676687167096146743718356148659932432628094343735952273406468067568122110260718016818139814798850256105450662097110813601959147188762365014630356916842156231362280136490716370577065174397382514444304718157172593760989687865620225527011360898290398468674183403868654962518028927093801932810764580716329983785202344324613232506441694038083289048063246593134998397457236915727879693433819906148478010655523518624498701734492481355167975509764198525510815206341820529968256407202641747209913555625804248691239942598845909077883902203426888710074372837836192803419771564425296272002305228259934393684725803324105502391306915190506472411488600447358251961647029405345687537484859135651816303335963217204961893068675754706743064031123175494586475579408985119143153596106169463349265143629600024302195416971530534905870130580406787849046489674905532730790463651958457035560705867522649722893337891671482587765046156873672507143059194919547863861602699277025278572678948723608012601061368101904955087724750088792612392436171670551931240703434540839833498624647578806724022175127336740915268800276108161837223891557680182266348890965558641805122202334767862613360496417288085470643565731614690249614093906373989494291945141279968056940120992005892502521068918712170177764896913280339685941075325946586130982925900979360862606555049647576923950991403185387795525213240024978184246428298381440999805095216266809635491033618155558983808078797076680146912583529816384788979045620723507131803750903949585968738364026218269452681078790718211328985400056959737503130592393246584474270421347124589276010071228871353277187729316822098970270212963705041053742005269643989782062911562537101000515897166656333668535240068674312041907706177472767306559973453473008149744349636978385877357590249196810744629008781679259507018375967070864592491109144428442761963571449767494951059284311290096271571777890819393631066570782893960956914347814013114976199193377357023676940510105057614010631941002419833828060300252368422618154670247314773641737726653119565830869951022562383385555915211607372238332280994564989641041111524231830443382922731217340341109578095327713118989935797615706916197887592210185847989251560445965345584431773838063425008012344254609000770428489688825605829082745503332752905103987998586702727626217807570877121402825767235015346264938181627774523388526718862423191557438235336806531936768469658896133121248090456766547647981293147439894512047892965248469482750682118234127364820916960939724444206305362294692005993659809808783439681720803327073516677251255220990106633356802170888273185899556796960159892133569063617488708956460832815176063934855490850426330427800619457908862941958603244582365736690386730628445692088672306256887256373926866589737992853346110477079578688332473084091808847481990706010460988440856927532230907076238902107553047912748877697762306865109173778650039383529164229140806676838893025064006133704322977585899068137177101903504500594063994978182609736101072611143088176703319104311640175378445673997948547185096511444588834954754557154612709249859366456243670118402103353084907306849963106502404990177089121879448914253389404294761745125782798427629646911932791180984542863457162423475320662940402537773439234311080852583213730653947543368940816905052452469743849663189860030564087407487451218771849721837497794464811732710536798499356792422315115071506973505653251751032913736884433473313992664697306498690206245780321343952042113120527452611838375130370168492867258401586551357820779658096688053635395261715988368117083059078343095963486575301426882142109016035040993816478498439418864768614157040613197264702527296927408150354569643513173086558320430702589802669244694567537156197614763576449197997230198300325025313973480827828635423743927862209253669704370309737658330886168185752182833300557733081059409345813231280951569634047877102371062303827143537249004154609565688604600017774290763732013759024683283434660497147586599516841995769891916452938013780677985433392827809885775675729101617997682060416074602201566118116788094560445642329319991489557688791611081526472995047658796859081890186008050938308991238058448908407000526326097093902630068727431326794092559730188385259464376471326246897147499814496842905543993918569697490815744497274393948084788095193142147696609402312518207777520999022204121620746034372954448827592656432369815206012756915051050450842993637431497295167421199771474212097669667862630409715260067233508127200485340696389114657010848888939004471994626573060515617149652892618753896078086723677524737506895447147859708131297758167236909877062550476433012466503001063588898454004260144606142196325005765093164633730434405900729476261169062864863095315121736796443507946788920034134534200773110832811430199447553122729348883194952473528009558584087583079741845099647467969741298091552492754564418269928599759477944242578906283340091633032766169373103599849318069688942549641642190305117311138608684283824138653576096149737619608546942108497978810306506976290725249874675293719748427192224669291533204095256644704902543690631032250153122665308964536570126990659209044857315519752344052081160741934368099044885843129382730176665649818839358823366770189541449757240741562744361225082984745777060209244528787271050035138333327084148144638222522240010634089840955840531564119304188703572795787375566711119522968178902234227638789344433742349828134976530132619800810621928288999301365132396824605983057850479957907193919090572582268196698504656623865405757546274549436619854238921100505151650761435878057703633595528867215984762594859384019373218037563986759833064406537895181251301721091651527700617078578329921121187958351754679691336160271167802322381645821082522211405196782231274258767904423332349945740591180510515644022662793233927721213446193212155561058733791928820147021899541058116601068389962510688253965775005171246399364351760416649996038909826034711211410985046546896004764665013378144996289177197890237496800330739116829990613157883468378834479720555263087329784849344606986723241532283927326996946571331206650226571128577479880390338331377621453888462782651318098951652354548654980529927782574944249718046683133240975498091605788198625174028099373556116460150009157361999920534914269970927266262726161484324707553174064194458186358441005030590196718673649645584734014526667031942865253782288862955859952417500296263685098073159327275750997842021255480627970066914151019475683204566704348669134166795946731457524178997762772522385597673385473454234687338447234710850326286878043124078049187343926574147503979108119855431645063184000548824345733187203663633235112022705361841376916416383242204950194260216989422531578690685651810786387699660204097312752054722585377490046104690678652636183495551545089623623967621610886417495334072335161155284274981037628922731443030027099740833868351257908245065575171006190853395625181807495974512598851604705131507810455975177658578885688814901778816422184659033541008862345813719257060851473011542667656312661205019204091185304673400246612976317635453910807645692151616179005285381854944877633402218443355972114118182102106702785141069630131217532397175910590369762755350025835550632573919876002027699427564374612299890988007090760412908660780481204398033056641280197946896099746156275729822108131122446471392233490530424104637092307178356561204929089566792635112205999417795854299193694103184427378744526706764994886923011223393617647374500321587794391596031094102046054854408274820461986831859059552431134882070327162466458649579639256209257423995033591388876882345160695016211196239993035971661870942245354530363305422748299990691039607673929458640310224579626557316188827756465268229457640322082257295644192723754529772769804024194385527157756160415117328701036332727895373871556660540845662831614400633974860224543538300378001214383088516537429300082589923843301847246914855408902001596920391820562801230665325951040288114187034985228321891145987520007626418713672667213004537949382990036417103058883225534726312477469263130848439119551528580905482838280848707506313192524025024272299329506102698894941046190361124580703032434119853281150589578586226564904105458203621728440956602991101066155227689496780131959575263874597661040136023698554620920743926982838025120859037758919855181505976343489928773378775057351366792112598695732985839886316458925318096539365293384547658634149214465131595684181142946415772572244881505714549694695015098037477277687243314932929536536494201717519491504381988682283867071102528634048032466490456333879841325652468251943769878334926218258560223973969674184040993638460187176141790462474104890161100456249660503150159797418391367250736827169482671654475623746049627864835851879612464100996751517185325831922243051415210326479032298410554705636092324515280546422135893718607453622366237370250313718952576634349713608905779128896897703774485631277679711534740404726442815848447163585038949694368912752357684437839269635258554153121144221315987716762579156737685849626945046248130974461683189237825051464844634152019794568036136280647427510625078364490083641469867132228630511183958233787769760333568206435083704322055240466864631534152362922282061570309708444950456437023109749385238886808966397798991374992121798729908247997742387143647673157559923114136622539716048236376750228998093609591679672590646684927749347658966962449170441677972078210695627207127061123366562408596985308892936152766821621639882904855311512756918636345787784121863963300115490951165144546991004560521476910554783607059260362807908838334800844699845223747336475248751348277046819063257209876975750156922005643961595796734532309042009635348230100600543424397686119112841340872481718733945872699826450576798690995959188349906150432452334196662145455713125753613705681197259321283209703318887730788880025669322336930571204204027167500132160416787031787356012470399002846738227566764027408178387493072642101159581993133000277281409857853063523923441548270877420295114592624187422914586172584619143080648550367599137835951873392357901684638090497620254029460438819184017695238966489138196968587678091945538948363948888607711182434646533436462422318710036792068298783093814496596959522494369680013507946465728372518254554484261569684048994296352330176410930802410129176132199550233634871641782332849611132282195999417162168660935750636013807128316939987580197929034905071303641559289590879221173531153530640827019318975721258913050341332260978756710890612414656268208017799996758196739425533137757536654759719996231917758873896484885279371387696590803954755955018314100660094195657909492301530641169020422432850032828744013163947063986854471461103683554387117001583877557762843424966780749609608557094675937136203458684200235808435091186334358025806442490126068932177637672170110642216039009713791858503299426902608714478222318180655064058125694310058172766329744239695452432974827046131569465889012236244171202457859161418898678253033812086593795272057680612931812872592578385175462576314087308794902730843668764631920864017470609386242095595580897187057907647808265119203372483098922438690699000252655681469243220317568494881198223348821943514562056724259559226838977941059733479710579209908716778452032319340002406435112608840598940162640608664954112239421535111247988876697058468386629846634747965969136597500212014541950927165199839033058378603248999679630451605343766189901497497287927954392298036635589073113827220534144423654407509597735562081454664727823956472147065661291498325072223688903138726446159239503036039755035365109850332956745215122561195578144934793329521702490859355538215141661500953255077369363882058539696128976208268412741922005712483028962937376397361582175469731113236606299293741268811865650051351569356463661428696004294023510702257941030727589143022420029608689716136387916093922619919043904646404965132893947478904188699916323046640976160281663087847566749766478648334682539957346408299762298515213638566182115592819177821460484214747700393387374261529499831268333392380235503891072422211632465369696304069517776869889869660139967912414209267449189917109355518310487134013647376062072434499965577710803275112929476391253239569057579306764044884409859473891481652142551911673505306387987521399681560896566625375180717447388542681126763596611439178325402582689583146322751547121110422354357966700075907198863570977829051694118172180842626814788744691752532235702945694893519627407095019757826501030401261476668456670773817662862400444606427724936312285901147233825131515332191775917517653602870869755895211430877061115047512598782898837812590034090889889077812753309265233397826625416342848378035406997442764284240859547566841024139078349937728862321322105558224263085945158036163028069089834308583019603212600850309386643919818607356990722058081403137234594206041909950111438163962655084889381568929817430708722071031575091456865400195302624192789283619827206052567347459007172780205584239419495027952925027218779226651353607611275653400490980788552404972300199957486405374330336487237218607045639406111019056637055879729824485149351926381797819168111316468257841199779839809184926190543986985476192021107920694157707006303249973278807707393975351935378935961662736016429198636684197821729053704735237541877760627026769105992807709580365318549977412813595753783406324128432735375791916545284823551111176197285894752913560780114735755768040364978998267021259238236324919239822844160887432751873306176320301678490744975784685714095633433092704756857296589169461003465892049653731713962114501448071997392310677511679704741702172183500071921329198645151823500098547664180135844567390030045479749862791406016447659482859882321628960849918066298187721106974385149792157452744191064806048298950919637626392745088130802637285170283349842906858239639708031280179199389191629330286180395697475774931476313932228389847483251869656000630334112394958343591097831246420299901789112135930032795154721105211528387264853293442729058353188451792296565873761219132917255572563684095224128430200803680958434484370636429611190133903071948638113095501122680418743969651293905950146619172856012716687201152424190002034311032031138528927897588099189943034591631929083581954902388547667803818979184126232721518413374108815560842527129442704277474457312507324924166634122771102099604774263532908173334853483209548382782484908259540760235886414409406643387034782204142920582612935035652158805916195809034305296628920213636274542177144255042904001946137168612288241808430515809777856045463690419393352249091186136536740915062526098350893120561563518416327551810175519591293023968006062334957615518669227722642548831865182435693773201387870737049609169344655583166019060683563836515278947769816344553710006924594414170358172356360883506861400684967129095598780054136983034862064110681970280848634479314123839011423252906467565200842662126160107522595779456283399071384858444890687758566182852414657384296592246159736174449878927457363625431395625599228414123498833594955111792131289923031615851699464149148637031086471291097413115218331947418673799945088994732733109586577596672402823877206473147387681184409642641672406015051085201159227666700669722173726388613306643088429250912690609275040855664225913952735796496610229642832636387632367254379169733756726923763876690557713091779081101574016298611589380612285955713677134288980511767185341637027663847864399757095221629866370897370895706147252304907013356492366520743863690531791335733783436315461523706388068539800773175192130354956133364711469262738781355175729916482729434629438172920161681876265964508941525286377457733136858657028103224440642010191913022757862665600411264032700722953101128342891886488219254612644455130559532607985249969883788975592454119956732826788181442429857066292612966928783001485457183752069502246713631530115875116265110722891550275228663706231985364486740097773016674277563228555883307981908106313239635208678962230623605828060133666864260787386264259398084591143642932329704502996720485081333161127898672684993072707098344345491115373676118612787166138085039164921694842894491617129204510612873624385533264900541648867152636625105972978844528021945885073947991390017523793823108805198715552816484883157321161399332607984618232197849648353429289316113744248698969834974790891780289008559253983270410604711919320578639677329184422553777636194585951463847555123103629804614541564494834791146879762464936812522650383910435983190307688797400942555674420325417221317415570500334296155000836659443264326868897033841508991160888356399671174985105734801667313650320871802210323815602552482572530341671380796268090266154997539422106580432943830126771216800874810284079133084569144520067341629601528976698575075384527960010410494138192024506449958530920246366485279034851576834073370371615890510723639535974304974738600748524179766336180941820713188866308072975123579440376891419704502590707235078407028874276186318757863228967471807975307133080234706405494422779661268927457113522527465061261799198625823654394748566943207603804495719498249429936260061385644470974651736833377110366057894658205035789784985039353359593428412718204104471019126451148728897341458129541957434014779087217981616129669693939195589571871045759226996932913688445105477974284071078296526663151629196409274070294081066968665870885991186015310565043168694927622525455367084843702403456223853902650359087823754662841886498528121052648573408328397936074493523340444967181037179758283707563375546997436992755286803068357195665721138387535848151488427875923021265097125699236246337164151455339080996398507426386409631120762260607898645751304241164996937501954204606343631847266216490207190642365952082484897674683552570644272025106808605405823975343918661254058675155181677912346480879879981970486178541106048427190342104662553678444799906228559151354268917217312493254779138083083394053210661176874013103922536685703046168360496203092698041752000401849010972939727477253876590717548576642264729967312193905248022022094045704584896255176808047266646609893142978359297965662673757979700600147431235819591554104277517067246923238836445509699185369507053470891668160476050785352939536918806382913602267201145517539094316155003279148372584432296130477068141750345141001178057198347114701714309592455207021377457163742461776438993157511159716408971102116279193869111705857008337524076954098684250068686993509020119585097437621443809246636830167000136934383313681678264271794534870422997830462572170806155197305049324058384180400566934131048377375112573113084015027036623810364682169306268650271979497630262693142464801039201945091758229724454431185036998791308014460295527541799553850922107369845509614141600790268862977072554061266554048892140887148005678196819511528290897964351293376423250576627712668810463429495310582090358494866067236372728671136091671789731536332384570680564721725605887872268768011414098510793402001225548172093376770571234098866695854131428914240603308179120879524207858337770608152121526975280280617194192965632146183877752936084498238406315345287051500989762694275794873285680440794417888821846608116412454051322109771139531611624690800106432023943281206110522355657444647997314976714271368281537641578426133482492919089115270786756554015006509164332811539509315957704943421841047262328214328900232626468770569039758557871381776319891185106707365893423541391393658152163258086293437175081172453125238976790992878231260276549003646010241299037317636736696135176161008418703984369154677310681423527570755036003162749415520448440307881156129228171263144332764132953806335266533282112542587508721801397439292293379201625597562645726811097703865794860081764919785051024599925332938489567833840870999465242237070809651056705536515110389405422454720961618613951239597169505857182762565215815233716145650125937175711436369238028012319456512132990215468404860878989735248048299848257024477389744175269593498611507653060731900307151251744674295659452710207229495092451209656787394062733491878660525983763537644949472071496778893218216862036300880609359190380415667075966568711829122544195080467602319206313968950148634011834844146886733896543908581830521445584898760552279701973788233808745428014151658974776641967876180337054211263703502221632831048384293606889866089258721438246993248430338307104634254970311802397133353819526131055320968010706273447497420667236385075993396228373649816001491993272482452078757642974315243905323923095468550874025030492852018027517931641086809333930643815273434484106933672234614441830667428754506020342542363513312055372849034674117249714879394109746457170399762860921979719546793387860830246076950815897405262573145140804333126507945728842450192082542515439253940482592511385118298819866560357356449656381331160973575865504213945081655497671120709288627601428701272644014308696180183847088045336782387992212868074260784728307774158484986243759083301557968672665309399096711541510851055287503208972100275947885672553145059544681173182815057949525714241386344703926486247741178438814375986723797472916384947509047702174357668929811465841851294944339182268423480746384019826659689206163912803173257620819741124616973814158697045338182014538120961531999759504657772888576277718842872883298573542805867578948143154462403366961054252945048318069878202485116791483957870760866807318170261768746309667410145518479565984699208583596270431955118704341913911061926781172945909141033859546161072197850307343485304785656129098671557690503726031449393027991338633602551579533724457499376779755523852266898343768876445768356520775064791097655017000658196608772895131952514783854896889273136699886912528289196685838428514154255276994365845022769897219902647240167131184751375769449932331701560195355442308479273588655013431492985313665943022140319109925811877128015055663271518991198645974335067378421000633753448384514689924640523650221705971559144566187380504562781116642757864097469105638252608049523556080353397189499588918749848956398494460320091018912803739560587043330205639854557849903769006306696221194468685026161253882357540046482696739658864904596364155049537503097826236250101775126870807950567665283450910708053337820965155719724601378860165136815699260684880980936100260419790337168591590222134323287923910291103497638595366511667085038876087207149262040731612704252763894404018654692742001064733901653185119694226721340572319717566042390799279597430021919369027890720857783406266620402835659077771018562574980792486281164727807274691345233606294278604541290987407256065046056557403620722592246193132733986981200749610470044446801154869320692176066716856835300675944110385445473729501453253424400613489933170599848299103525495668470232172799029185563799362944313027299028745270097489219711353833708486245119197494896555821035247411036162322272073085203234989251570779070445644178214081707297219773970715611120688810817102565264304296843059640546225547795771713963166051604680636364146199112595125039649461732320564886533919188772629847678055415754604131639125941876612225709672830020670352548507971874292020617771720976595548235411513669333562454712392935277754962939257515017727054974197231710669177688569485771333654084971994071304475566849921518373842568849851909688949010441470695967286272796211682003080236442538172276870769394201676223309686204374582322961671686888749969094796146030520959464981401370262011563359340315939589743629945976185281471576835617701705531537885817933068175715231864872303047452900159305564838531064380162618467964963110773339570833532855748345218059438037615308775101579583205116673819667914371158801655887718719290742043823778286317078671963562380429658895720571160872055665684230859862816555923541941833301966113078202411996970026399667231054656285300943507720460421869560272549138330752134777467512911786536317355809749088928898352358530325739528961830693132183761217513969937583581275328494706061632995353402061021839761378296460754434747694605548814975088508590359352645999634389795494431399322639515054374362712833940642304963574283858652139556143682156580988501875746402508501392820749245292448535484729969307830235435603913504914726253561046653108521803052435997433521259249604285493389997331616494774201315088579374048494186797799736815284260424048844498533465736175637099909213182561404458247016827650796478219474501379870893270580975663949474174534982985627350591793647044258476043715714954305821247584448748399772458860947776079885403492941190421451333978258805512401457275230266704820091705856093009503665072321185760490912458061401181743502474482011576798446942382884359936614543048382249565088589400525649130603366576945765554761445483240736819998564834564531005831869588340697598197871425969128806297735649425002476220462314323372886558524423201412050523350266303985480175525678011899660047350642529368940841429675583934725639604156226431351310057261574425541382151907515051131538058972170975713829574852604247274087564931523447575211177991960712875566328919000072927403788002684094257526666839170552144689758161036768020747970692413461604022215854837153397989969645250174874830869422930225929569956979435350051444291980326747575375236390377837608249669430025588831833595421796966011107589210070287427798047698670789292460710136751469962331223206404154925112711375800026784035963957619881612973456207341480211266466793400975742046895905226940050521564499421216692805205417105705513613871051834344212155369102261011909583978587438931849061251886324458656024039357910712002158127704149162641739717018713636767581031924586020837558486745202258333033631750996203555517645609107433859894966710263603647049783973150861301624930811253512972520075594450881681328040784890305554837671805561380398496631321227319331423640671791392909339595474519928909522488122537457090554797936083788804010577742980488020404074449014567019300772688864060129411458049095839593133629515877132145968257046262116969269059929218851819924416476425531128021799292616104880344622339149683529408477219864672514386951032413174699474765840366429108917985940731663631982329219384625707986580355465585139418827817283970039658461025765298422128918552108704671399782365550528463614333322112837473280475636189268097492726878512816317809017865661062661903342099029539387135765790654538339665990372059865307325847659973216732487376827775835258257500662286365554491952419722153591418645851002988911115398284686789651986922108133003449710499595633769201909359938556310152102717392294078067130329295364353333643436351155757832268842029063572676650247565514457336355075671164318467244288973359071816876865902894906515524050962923543866517536522250577899686307562957107318927385947562010056125401367871643320054932713140393278403696607357803783741422651199312278144378183464454927666486379363064681104485906368386722518034599484366431530944958290979232221312363236280956629194267421917477015909677299622816666924757054747174234662190246359882414384685843937037735823834153258072962943262074258726200864436767425954242621556333220307019792148299869984978191421420195228376084210802331993052761606913692273215666512901819860319284431089823430507095735065817849322011930318113599115602703091202289291009372090621206350524351909523307519848693461762516903772876997426293133615654105222430171300059661812256924911808369961330116797139834292575376903941175639528795590141528894323830208068715638355298701392342291417361749875045067004435747092960029084381799582468994973923346257219049912314134300229660109454305985799958166526192789208253977184309581343187567680155925169124489294363931605351611222619531011721499231536275464256339532625024161249726929336188459178097239760154459213025786178233758525807639877656373807730411272798206386455512434653354753863443318371068447345475502404785878469231185747966335956431116396052626222740560901877771803257999863937125801611233277190919307308806428498835821066619715993943149708929806883555532073824725666125538748763887795954432620564550275849416953981353360500649263662345390479543820447213163774042261708437813759140098771395103847975227654961313383217500970982017538214740765512854666820340719569902137117111737749534302651237295173186055046795271203587108623490443486105284244264952948621408157188725066354437979917722573690207204209951842160898112034214305769243606669507263313610753609887872828004870456411463653951547503755954435898128659521374783238608755510431748041984950453567416133579674398317993602225623402518199329879367489302304622624546437875597987228959794670185445277891518042661414657982835146896659526907171135193228962750354132477605196747422697713999080680053002669701640302866350056429658407180212739078383454088000237264631049746309005082793023905182820425630910632273686480287411306673727197586799135000424004896279773685562528657902390726713281994762176643886554923975184914278577443060737127111893322726364884152615600498424288623412026742795839348115693397319599808820852276376364355534474353504267445797722390899336706957071266155762836688450356475273342845744611368274231833221663657172754497554173828791765026644333287575817400430072839723115334609290071602071178156159902984832602508310432009084842769857331420017685600784497091036835074617928432107974364884616221953742596303723359557079434133921243951898137078858990533204064852824128633457335098258204287223649174891763331928202604089231418766470199694382130639093156406525877324084375156174021686832678690189301170947355996685414527754051765632439614037154568188770618819939950654685958495810905736758937245718507875410772247701068609817868248974232973711921149713958611321182765108579001986744845390310471272555654229588582073072748457944534228606188591474823655382645165474189103659627369528619690568310188357955518467125555075156306698749368910624711116561785228516840963711023183317279610097678589995610383814812702200246168260156383905803612191569699160300554848470184174312874387850470978125568753337955201980002734674066047958135426644967646757004507342803224015613866292952101002856915265270162597947977932474969702042606812456647895735032884923871814551945235351289547631608622235258213835499499696682258558238516733600904326953862598239682709298293633356808120762460406129328351854292491898091357816872471133454225930443061713661980085870095804991913262491048439569299246925881268800987138721038974659937245620469336675926848496078703773118629211368497786774161955434071058478251510556128439936783090520271485635245544919882051170415640484696800684275654732274684705673752552550639971496527455729780785929580146188698288160621546835861845607955634107868816642170349477931399748331038216245674716968652697565084885414831006059370996745119641115320891393337306761603654876290663360274383372428998686689960444862025208368982833002306719652883407234743219608072846207196738537115178083813046873927215365002579904784661837222256420574434007643230686491587462484640368599190475395233102440532261818637027837254697965678279355936777915894896767498110865940238497538267227698851595581006036243346993855607809427729845753214166772412281140535686769739724000585704228859884425089297754316120765324790540488427547024383442830106464366364304452064057624218188970426931490111876113290064645702644229347319657073474843416381641980018083930906318025753804745499765524735047908023363335651914319170177229487358543922179708495814580990178004583817754882774512952271241156684050807668612031812626507246058617466925337071585555780952128717884378015105739620868923730935184366548015508830924211317210019538257813592314686599398423984961248446891119609378194184328611619505853979144332939480258578113369054194901715013470070724487687314118898765560548476809530793514456404829537680668252361341048930601100877854178572041345595391265223393864281300981569256164028524699707119160515353083728812280974182113125273050606574360029057797036742689382307362718798050776101113797484409857716021072134182640844707449442439980960373529161151798778583874830951925515860738629548839787462073694718635975084938323261420726330996760976661539630441647943118528566425422696170715548169779835350880433859989194792698642106860885564075732427183973274837020903915573393942772687380602705896863008837664862573710246107897754996601479869560786209990118903643462969017200117763234150709930085194382911206363645653421174705122464895779959291058996379123619318700763420081138164695952303518145436890418148874534919663313426792441879249637131986973543788273590338396901632994193527496826524080247902022089472427996817180537374924203509264897426893239163325127557006245748004482796455818877628184119984921678917089711302471888374081862564995580008032455319302188619313124110247198681841726126867918754938439984411481504074861472307360615789839698830615359744068479934325783748852480378914252922449464916869816569706791334769663605936102562317091259862463883904879595502403401954421892572701614630450733877638576386685036380075819106498895836284675721200074343129631801134222296665777810063813817718267684653772568718487335689221623573418157157733300015276737162932439561191948245731743089831992269482505423273140893143573437757560743671302877783507145121109354529216814793086522421043559018222362497576152709880440020121709314631486430232217829401892189635635133530749887777033796962590702591704544987499019071518296224062067101325337147834362842030838690403535479037999463181085746569546354053094802558264536446886637738556970316551822345300169880510473767833184285071376931539053090025695858757732595968452893197417613028553746722595487332179144619284265853491903634484261119149313989692817423793126045302466775108851959922098988465274780351498754838136816896058650637967529514090574735921145894201921753103036015068466933241979666717716346755791200430621950485017906118699579357309985651558721724127039549082124821841054656413475072871624485950565485098049300570225513405217073493346912643505602323419967995050796388775160571499907959972104938238263662060862049926386043159775584548500006353776216214004346266828017673736250473899747202435549746343825154948661975507561070556035423360623672682141640158581421904761780567465496492816917325158037964455877470906066061378017950430381941264789183248178676911810856066354343834836053702493703738769757652151220746910631843229450279082347001427740525259905483077090312794639382779658846989029526643917699454848252561162619606132987999494838043208548692787146731570677889777094170250501569905677712731478241341916785757707917360023074494685520130353620456236523393014295332001908440216165351853238526195692665389333465979759780013755093121001529873511267173468519571957266791894488353460901756855766506701752115809624092005196017395793584766570703010182967617829890264728781477254363480229475159681160598913219549014305663560589157001048605470289090434783364302283746852908213275652277142449837346876614611149694978318111370478453413717705523805228680103057109394874705622304249572831308234727095542203883743594009053371215440503704286285914087533065301764201048656802664246381290490803117433769250966679486954400959449380646501579842883676588533247465603052938534758565304559847722357478072199062599494961388433800211978096770363464525415653141059231808039939721001468586881777171659566465052335716558036935048600171392730052893947030676999067067777853579367640604870325374130601355497025139397476434570002717174115905248758134777056519796074918789381673191739248136329137460780516068749577626575270399186161763749733928687812753683347550262050794157225668241283222782491716417643686155635699769018942156393160363969107148373749251106291578422775604260649238508646319946544376817765466328490856108962200148048195838041141592999094721073968174770584344518480436893592692363326437109552026565024535828789805626651822385021517434486210801745124899575738319019643390115786759866174682651137880140373277650873222317756925509830009351823829667944668419175306704656782858188361384364915977273314018804325701174022663931865602903749688646897427736533763001066689495918218379785267908482827447722762368368144952415138689390404384484083399684472971045813632660974457716771681305914564228547522942100837771989585643738398329090663320198465344423584063827667631467756996874756007757589862057399820074507713207014626521675751003935218565419944323435028145169741033138201794060343492431234812109901516355278661880003821438194767435109459284822926154237816098611743888421283364200306368668398219450307290256842747315038529665816790786001950110733167524138612377373676670619524047913223418062175784775081197019968548543038690852736532394284776309521141842509251283202617723845391297037437875707791061635869594905640950299543276717634008422336484301385442332702942342535023936551981923372639932068066104063053589794860033145761583200254745704921182245903163322390255411273290085862391039693656052299250876249790593607233441307811528459368170846755190203582492892018461448074107426083707199509911542260392639091727516193695672555388727236891549838553784161750784098956114104928215433883090163810608518560197966613530313217753266572043717163620711588802247648835023405710336154301232401677452280943660355037461524497725764206400350021686555118469245098927587799580696646360830345581532141873178212028153572079663360648369324224901617117958603304474196931814378137031950437578084183775669368035842380346973008428875635606546317320432764718841869840984650149895806974569509705108013782370382076399460537815991097275021305784613534565664077241509680798616034129189302391979175825132979742471602896371196707383910980628700397317423341089257905265932285511632774729720292929084890848389355416173598952783882403926727300726713583925954995587269102524050962992626999610590595269626006520176738369787308416390971044528698428871195556531681215423734084678228369046732497557643058123707289398325542964879688569433654811309617155667926612308786955846293515685239194912875689011196817024418534489978370013181413203675325064956932091365160878227137295743303643361780071401592583932562169612548475085616112125982277770749532423029201976314312898834495226661519868174055996514219289675013642631713670367539627850886584928249077645015939118069629565124893502016384035934181988897702775841822879487705982403326046924523240971697595991703959792872836060725606769907822189544932494375287538757826407135928654614473036988299474598779494221351923412768414061111576404499512536705597322000394014441708193867688322600295996768238118027213707653399692058105308375356374224873082700789544851086596007749435725866817971565353075890996984060647113482134341980462290588013452550628578121406766070578484920857323725888136738225070992191331725403554879725143176633787470871085453735530081834428894164748368546097906584840216502370684836188507239610244572264090883350204426642772224288149644448613167792264444164883141805600037960872693077638412049910827592441772701106587923513550831379797821242976002267452742484217284657181301432116087060983361418151182431664214979286479788756859357308658950315927840255193651676945219918496642895259935605652056010032365106013956266506000997370928486808169094397674460322623440486737108628361110011573679171914436373644645940792771865635504746779170213586602994472560857692323073221364327310820322002578882215703507743713575333752380385597152795617044865552744479984554435043685722842866193279563753636228580353793129451012331781205666443836882979613567254502160705326735214709069464918255216074569147669339903874013641597205556087032831316164776235272040016533077765874693242546903769441182658170877319660258663194883723993404835235161053599012626362783980286529301561124394253382488869544862556752896390719599783724576086079190605119219704711365342677929366827668274750394222623784987949535834974305349411829184673970532340883497835793452281870819477783246511250955520241031158970337006024697687719260935350157730225309754261184386472729866568263931558980934293388636168817597489344406055075351898879679903151932189597843429952705057038883273266233822620076615758506174874248488299395077227324641534885736899307931682443687434455473092306754919511726619346489817596888591092060961957819949929162892925319738641477676647758147702311485486690080268756455544397988501195408277711569373300244839328473817478267036352538283952056773920659408376118632544154388834341526620168410940424378405761086965367315118690541505731884147410922980663352644880405188943550465798733688300063904758843320122385843692864994297705142923121610628702514411479865366570909962973771236033766329587927960385869244690994223330782205985171174993092135513212308280602985646630417785404373764462203289049247201294667776433549919383520714254859831544173290623692385411264016546704358765011570677709605906689456182509199574300827249358872505359065685352797948628308941363999465091627682772031587486837985661833727679476779103077925328627062277886217538947537352913890378276036395546480819310216176942017193201665353357812407306973896282115896261649364020231536918627365641400693806327571477642298870344212565854726431833947417153283484484246341017840140321763181282342170445200310689047594575177370485592630442298939558250729085567891674325462550576017130440734664385880415090570588578783036692678814223920885920290274984935720053961412898296100397931957172554003485007927500880588137567119763512568624070378565659324876369117789496499982848758734125526208834965587019039276197266433366445835170380494115796250597471369566080267576974683801602542947613641777109975138345748616597341492494392437754394567133082585062520929654170225036649819042233556794958073901210927826273070302384692873716537074583284481329758443121868968992641299634120087830673968536521471769797724850025704046640902417440470937227318872754774246315953295409911223765235364408181738436986496523300990918599997809106961489810565541354862438708516791904660021352696442640029424783220552135055384500601099184867040101584287112087926113080577532119852353011253205635158405202481328200197214248125643001395522328933504053736887949810391253083432343061571299902653910959458670107941412906879235494255684683261925071479725343727093817488689290720663114173601376953884838619240714251574640677993185350736125061709540749762481633454061821562240359352395748625152727070190299161722021046396374435392465214080431204452664908021363729145642387558267354231900532398935661342046119242705169380842520119610236158957955765991352933168638811252833546227293264357807771217887221144967718588570986723128746331641535354519781791231268035786057874709132550971137734805743775613779361386764086654453305743145772429410756256789418798402155470510607699598555488554773625217125645221761492705075937211902826354717787622808771602906652612588359403255006263720953533608946554951931256768599288127642702609924313170073107244653007122828692051136944636861797151175272179844407876879515540418673503173510236469074387167615524431698971790026552469646846345948160220446423975262830512801698233814607750277383826909101523061482433421035812020408642640026092349813228725367341071923795445726508106551720469028215232703212557050762894266350737811580953944027139417854057543315361538423063129373549504945915337272919990499921416575799304108232098118739875202605764118934782901690269267827094619223128497011893281147500310330096110171970649227998669358662045554587122677199335631315886103710092798058730835327182951807915916575319402240402572036653954565133445650978260001001329624391677898989436584534822950932941476992904570027005478336882246708336781423299435151161112948427120749632440994792725986369089995195016091271326896356457404781042232742620031678737952878015731375364978746969261190068991172017988459779595876644029723646453272936919657103422515767799217647581796214418156898048981985947773086253517222227323344036092741933836633220893744140315734257821587418229811905562603265285948379189779348051740920323612452550215895976095456898400773083113651320250849666141556633876710320269510827693122571623515488765905950181267726998147257082950170232178736217773325138594081734102902663309261593752780344701307161734887148824136497405195090940492012797483512130059195436318541417474772369652746184291537556081598173062512280515296858906911993244756851974797841764494276847097794620232683026555287721475380610600608379715463850985940661673460136675958415490933893778807973858710618094948956618894340743582587322651533359004220350544970401808366785174118356405372278591345231240367969247094362375260963348003708864252715280589915509388828110753021784553605816142027866224295077610672502734416457040133269681971748419992353556839053193675897661399397285497202599582609853710354240635639112195519662727079473608810351428254502424723315508837261565406551395258609459902689204815732502993141066267160897122109102534357211951646552091176515430383317714597018003723130744887498316954691583882252897495835503574817372149363008241483723515736026969109483557621929983915367144857212882937342595074730296044978143294745057545704782728809209325755824563573135378580215931357395135711249168573684418915823646741958709725346860765006028619031071000745585199341707471813108578781320900729200139714883015021903107562357687954208571099930089275824349832547977401354613199158473195027099504507842640048926903319186117048291405307485013586554739694769735838232771321195693953657767741284494828773584317395060356095110748626614851794193032483607952235248994273051441139849611246949160454823636489333462164650942063846950472124945329202516888849351708011382640367141543103498943118057814596418824504273206362267820076577199930873847538227679193807568893852762268244898431673391682649621185460912756147223781261970590531877843226909068869704248905617449337287519247398482444386862292135473332422669536884628213895409968042589319913180465479596855410621181574896174588169792186892004983162966403995463650177284773304817399134258128919089735746812959839112100283854383584909888408593731072649778064572999617946734701974810409588918137367457066195817813277001109833673598148066845583107257246849882302361545300267991492270937737341913932142874038301841172033768199981934783520593690707611462356674890042313291514471037695929377468515301704468797650143460217894095184570701623347429012700456824045025599268850163165772398263664122836934424081214111029916576505281015206782935989008098416286981105450909461659805704443354490009504944266814571234393851093329479455614855641747556920769695471734436688846025245740535233663985595876712258653153563730862539738226062656510180999177884633816231777999010260360925623465556883492924149608418960790983468882750663608360527210208319569910870940186525575944569203788929587868000400742205528683039966170383076814794762086274529851093750443528841431084435246890471391176779408648973462513289476305764084594434683913997121484795578502964935936023712416685474077092956252902680195411817959494244299305623545680593989246818266027847994875707659779321772617480325716123630084542651571430598699490998892554021964306268465878063489053932993653378373555524589916864807342752197921530666865150282408262851375474562277287169081998127524777320629260410726921001497503569697554579355119434579585170648878309695291964942707598955299661741551265058474804981643122984233217130250677496313926067309332397193239526252589751345299644173690686492750910228187746026515908600945895087260407699767888486683420314573610668948817402505477934430681570396572041055954168699756930183250360712868871735507137035097034298384044387328307408065832753110218391682408908279987802552256215502640981523487411086619628886632885862498704203947640854757569020015729225370122814540303814509710490431171202162125596369980374864951967465183556997510039329779037335375782931721128681526476420334248500254735975011373873927967305777046686707698859655105483460152936194123630702349094415104103132390593474750642610669449827920477765153360080401756282373371688129186455222709120285263119181325755999479758865853615290630334950357218277545414650882524103127375156950863775052831155995294588042579461282169027807058895290779650528414976263109918808108304416428062588972372220090109785886822110427753064592587214780587237485194236032730727846064941250221732750678117750132403172802057560979089832836128733858826977176952823475117255982925392189821384435640066006689871224624542736250284541379209270028000017990917375828167176101341069215123419999695085525975584856094753434699339720959565077495610148620184228009288536437608545653324537685644180680700225360217696171260932176925946035571054518401791743432822021084407644753608685541292054773708750933205385437167415637710715911567784770540473418479459716157582383533617082456088053683983812782927305662371403700899412820861787839629410318761132745174021527603917788232289172286142662390176604855076421008682005115744303100922490274397293314343606683244180043605038722555250485929813196749186236474681709890153616296875014601185606437618846787627508312966917763581004929342928270348086149165622362473932989426580716602871699957324359628981141080820985688472726449382850191321334879031516688895514736466383674226856992318263466188349976305204240186511891760601570888168295459922345818508114418122008006964153865209390048417463619749843147378161518335807260663864567711568680303814348569123153429617705339450720741708414229084925767100344123216167572552818856715744700022239091549857736126392296709801463421929415197987330957379211884179440594454171117810740815556964642216065120961737602870758268858594561650058640243441628315909086807780182894765241019035457118177677192887175493067359818661603649011687152064822683519155951666303797369820097463618080914849669499590295530707212509722533020457921184326369096047749114208530196964769667282707395114649594868176060046655631162538906436784432737458350366469049333824631917733844609917670808533206814676562032791351470702441693794148461165510554020186739534905286076976812300294780003584765289992581830992464354943155622646807206546626980722097543455651968349914124625920926300509036882548636304837548050576178826959114502820331021824378494537869351064276088484667281693176152445282297091077094882531969933038982378266706670039052475431896518961170122940210132036738207176901635527975228113670671744938605888483934860440012792393657080643733785942556647060023978580544991559256703935915971697220665534907055039339756361898287707846088750679086582088053440460424329271266954971785890818931805314146217813842791909752466864205421380585519463715556161937806344941434984146922562837102471909506942770755415277484437746762837329442554902446498390769446750928476256349432843180780387270697499909108052769982565973885298089065244653195563744394765474923904331826444477176388171870144861806713481343984425653532275006206804114771238130838657007383934385780986419257422174435760420502798541743047798835624153795721187576833066570637606992638505532075351448640686720773800211620835990239492096753884602410548106474007605543427997537421958487448064390075718619609255728546387109248365911953145815645771789440040449054665017566978028679369185800381264945797243895431447850828097265890103733306434781784116595629615138475039882847757243405186162153770813149391476490289419521067213240770449079570406110267707905916255171037252426366903042547412013739593169104719395852119082176326493662919688079272451358917467109638608176399326031776064430020902950273347415530417153887185573221306792173893884065886876320802758980535755423358780860456792735020842854230453326306081759914810412726060182915837729947039656087845877727860276785091454549546595497615509397130633566348629321481019154379405526567343360958754930461119273139514959358285530108811833965922160849305745917297349238895429546775322178396254090384900628088020890073678779171725113685546568595891524750554036284921250772290989071947512334396422755276857935906630844367963047497762636378347800379726838470453794713504955230383263023191867412024460979795340138296241181109706966815694370632228848575368910353537771014123568370163440292572790441546850881190869412309286483263207778023724532345609946689441372941955408244577110902107749284567737810543402424206278995652670799880938200311586408144757752881271343495527674769095095374085829807633658560725561270424253617657888007551550679616734352636581029015254787965407051758951850441250392840307572364275408481841903613832875737321890693249318431977289572162700528319399783608486143953339069044892653572006896285584333706577153190497701707539065517738524948610070315273680336691701076063918327285222831310194952032320815117633552671108983443124244814128490017849381570123051472392793968896521682441291065561028995430348053433561450490674827813955610196389646964343667003529511821935903528628156158510939670080598770371402192151697113299510096729891481009516926528643809562040892308359777468615270655521136586738234744663434278665194831226915323631698280333700548554105545421230200703972954326297101010908945831516324084112072552556362617430220569247241062379827177863378693390926540966211573739734035958256766375736905330395414021444922838518032945529205565003879531590465142015670271986393197622985875995072301821958211288056662809379956721378857447063484763106884056527236979856871295683847417598977482755885302480128691278649845829752638536610209588527213279998992214989221071372026307318228738221476370711675123241520477480238933089034637809685241386238095551082935900369432135071484475319365705518567573991493366580597048451874556477911925953242011481362878002386572678540169281910155690812932829092470921295087248400040698590728768099780507654726647596536401555316038239086982636463743142779237882507502502292264247281233947546886895297424360556583394485633861555818301899389042606585128877089988285234676530533400606234810323377776678746304034052523232827886887715344646745869988279527415073071160565917293333663621671158018634300598790932334012244833305341720059504334440607648115718937796999072337020644815190685464964621679832318518245034196609527118459029634399284333257948922925491690577805751523485054930312715765235396985565306022613988359062069381344024258854079466482289160402353924356477369759796210775378833938408039338227621920226880135797483197829467645149538104969481826831049913860799395845050531785711626970207844340609600308041998260039042127103068541453837997873364188237860583491832830889657799697655238973990528048604866429377776298570863814955022132249364932456115258596048845616634795310921213610782034717305014453682788840486460060143578568643454882358814324651480649116973965276453146984573533861006932485625679956949836996240823203558552727611616221797537441267948688194218252314228272507444691101554443447699751481972538366805983264880365766954467316353910899557586032234799885680911659495890521130331816327032866937902579116273379401894947366897379590815254839082117674463143015209299896901775259626836634794958019600404593584929091169792952518663875466965094437226089863147306338381336065354956054556750301582931932529687990983894666654599369004609406337622068104194438965451767777971134227335590317741536528902689397608838469999603013926000371987634361740986009183081258063322480066492874246795753830227570627935521042047205040286836568069587998027036917969323025772185108229347374229682329187529065966400188487199756863550948876671532071341981083991947456803065959433432763657096949527869297832397891273709112762531578100982745922642473590902224498142781448820316805518072477237253073541554495930280434166374991657834158147580836514428105966151096379855845196946930801798202315419076338957530423062203029675830807658879909916195875037259633810181351799824755429524662340710594860646630025990801188162714665246989345496146951780945322915252355619910527372534588507026274751827343609438460813526370758931176802390105172069266777084458156518037835763932532693183853629102663338256941628086755208364148234609915271855569640302562502247872878334298085530330093323791019587952324765788041873712464942193776855213448710849503428961617778214338379044218411096881490049914432572746117534174095859185899788575375511051206544651007758291867660777417133245725801440525066079586348494210776455523319575496833387343075288600231450435527680655627497748109394560373839196957116316831091850032491075482278758299128289925963086599427375354759623345446204392743566534612654023050945266570483379577282062333680947062027292770554416620880919998655703020717765339588443786389645876455588735827900127286118756574569785309421454426441747103771112669416481372265380681184311288079998077060655490816216330745086854266855434253235067689983465402559986964903867194556510691316855989801904455146170206459363249068412920067442226218039580522478885674122668227161975273236345790384526102719276270826231287688330647103746179298894714060867943129471680563107710532130339464313833082302708038623565005378908491740082085663236205431660489193022211741522302411010609216834193199380327636111133996598132932977158300936304167844188476955073179375191334801274353792225313073428413292320832437505238584644320723608047244943231835261534929677403744487342714690534886909386426168815898478088417508795042149629734833358377616002755720971968389622864674962557620551495166009058965913667212022997400664056501174705207856092561898277842640857149924200756384763721852545655922509882403688504214851661344592710344720078314704206794005134402981158988576869032830247084477162297339040066150000703866017892088212635018840211478649290567803244522284183788229319710019856691674033001977068229638836021927874913124894536241441247647728071837800324464243676175100882384297242439357480120839678802243206963153190722713545319289939406809005632489079370686792261429517668245766136264294436027304490403078999212397686560936775268243274998652693520478879406862299958188856219400018134731141291380509268468245391759250805029568078350886421433114606458141298309424206640995875161990217401026337597661915095770589647354690719820280103905825319879833981064550824887132324628242612752948989308480101935052125626999189098174059401385049698540501589776026541777159544494416047455497556103448811063646309556371782899499216248776767208028909524805407257373354156419908234669682336666678407185798334933537540828066281539990397894264130883482270441660200114802239734792959510731778826813907302529203483555642810477102739079993482308394175961513710080689465863799156721272464785415739971793750320426503852874080686294205449441442436023018702502158263053922314842239000385066794595028977217078998647759965133496332566725431772431573746036218907597431755640798421687744555642268424790495565684280128267463394031544073345228482067932903723488855842988270722136722741169417338534091119040258862964779065597000358910445835462443340125534311189474193009902566290349443361348598222969969285810938713552365047942749914692178420213032033454282868787084970415800183139437380861255529788941528583290230649918044489970375601777279759231027413207143314155325875216454405632924585213613168788086062947002299788043497367064262895270252603598297380120849570993974969051890249221776807284261668622454052856801192008506495849915770537558420113022832932404860081841276048292380588656077100505735326771161935816646461393459223118661486941362647258215992663267603285016277690178353303804583340318415911026909615475120795487521426951720976259644714396549011111365715520763805201650597338107601427847537221327007814293664340117486192845393328007521628890521224191292316332409073609143904771010885094811509932225404605912211569043670316425196798808240677842313785176865745670508396564165438765832106270153837279104294329763678411556721951624448019181435033565146890784750431941885417724177667381790354666202969098268033252998060979350708005575932851917948763374368334616453312022816138974708257450742513242557137218943347498997751433792348497065743215654803384894370295581017767025353583065442042503486177531364098043705248394030279743612836327308335242577550329817570210192426784749063361715697139806366885737676460975116433174779126214019362601967082036690893389572537091606095609469074908062821971122913482685571081107026350267905324513637803173646054032199950964916591254414460176426774574452256816118739045738580504213667666586985230725139767427220268584219338888385176113168546173520013644260825234748450264528359380457924621224810604324632143946134465815681773743543568818307327329347645312374393796403170132665591822859737736762423482022188103943552593135174722017604334183223768073559942049019287083144301221227303996619217739484330392432783744981660249974789251161042751120523692142519933270149434992719882442518018712013300390837407558202899365971765240258563730608912695684812288734412328308967695847514700127234641304142315628569569304236431223538076007934066275208209533407844272813045580202545257043854630884888689295631264733622577869379407401035237773038885810548639132169134879843122248392006660771470729777416945139452211835443878726456718759541629811859860523822708838744265654558397564513398674700088579512724258351333540957663847710708971451388475310100480020670514257069038915388933454277861282840878025308143246588185475646295477437075420091128519478358579409767915714519041695283413056962485322331052670679209156274312232043126890262674283717521660347102486634483824972528334864801342922517158947264345239742168744200844619372279501267617425982963025581912883648498492702572841202169963910658368009823676167904470983214344488528058305706606731248617406307771046360766753456818553429444618267437162913043318159203482707883827401638840832372432478583195526241410553035793640849720467825629591255622026425919751050958703785761966203082378324762093363278374318952492061991733980826353750723142618780779190067936513071996511933494864338498665801587553260605596753084533848538819381415092068372050623002651434756154299949385774720935726643580786357726299207536623456104526863722284768948147995438525802767019832271377108469361597331653322947146662665641135668278141416085995630474471646420066474663101989789525739884884513433648700036141718527160177128457354615638904745836725515051527396818803200072006524097448056653115498278309435374199834366048743645522061102511428481627270247213211332424811884315918044237770076946037081757491232175612035607793750444978047214169653566191214592973597408543970299792183925687374182381992686008755712129409642145333115446609685847910480387827718997539937827867102094557305853667694884154900978400241110306301475090577304820636157312526327068995337597818555142676611357705512160758888441046767274419526486934296459663224226315876957684902384418715130684135574603832240441829812593200358816610281025052583303673676916817359696850932291824790924828127533785767809278864245898726933192148017170114976448229781576843343958604219883943753187833364734410309432153738399438772106299036137940665854909767064042042458443733165207134928990444935605934230671752069758106199105352112813822193157336193163850728480029674127796705679398385100854417283610496326093640110772220107792260426479397714252682523725923153841166723881276715705727168525241825053855880708424383833330404290777994622472222328598935808071915819425756356233452558934336935545822169654464566851017465451352466351801774167711819781757864213708535777082805955640828193460378508268251429706961163545375919713416817569216544335564623131428399537826222436466546114166041116656719058035911266409900356371635095832200332353597291972172961534744362976199158801291376899026132136046140439454457420772817134469812028159506159932690017181782876586624469327624754965000458795307613168797623720963968829374483278120765565036113734055080751372503367825900610093314250450210322432920515415272036083785514514569148797864573302362835193114787241018302252731656140295066536382296396954615271749525672472418798535907789642924249474933023476024553962111452440519407180929018667887379284798647415014753686300749214205097609100150232765578293722534256096294381691365585527187855106016192365082080166393550804885867621486744118706337423550824613774823430250573415493812956810061468172121174215159284191761053077184556275999391644652425515609574787378996280109949942178943971546253142106045817463385603930438613281436943312190311542924290514688895791243807906704485070615025944359338426288201607701063276096299740153762154781131478147398323669802617663430389936063342821768080165200635145612073070215339986178793858588410120429877601075988412760055171519204683698503407810656173458058543884340599064893305750340003435219097291603095470554856971114474464083898610167078499110987571364574537085091736999863330558189326451646170112316025160426589820025296792128516580268066708730733284610261447970267258596254206558531461090884488200522293153420988240808240236419414705549186647812972940238738854588948297001765663400852257266379573782661847201159240176813457299312401602898951034896423216482162889068178700098771398828793549102743422898740952630164211106971593517586699196803283420860507160226073862166091687320948099687785494288066618840935625453039808545678564044855944028273756401075559267303489054556856586495448399849390255768254057049429782314687209421154837817704655499182693294369821275584154824726382937977962049571055087978761295813318089437504449121058497289098698171482171747112154674037011608762233677784265344499543103134243785790723912779539191537211358448810520697785481308525495616912900925866146363794016931890186484086103929189410778270529222368477290332853065399170096189287178585880707296423596950555828632420899988062960877112658413044032292935163745726082491369813226871138626032396597304614215812887730826469519193239047879632845149445869812951628599508640455672965675920603809295111440950395890610996275887922794202828587712620566724484767393314826168182755866275197213751697814149711595317380096727504414030551096478397063659057356452309124931112621788448244280814037486085470601158323487601763448516774116004406361186315104227432540558847814099051168587260960779524991986668584334382524020133982499913077050512496484475427176031740860872988882904519312713396010417537951707031220224303596871739122999100776791660603199939848285899000828648208172009365027919688002403645505878307936347125323504446787913224148148539700064965675090177586662871435059574109474710627322980163729949468164136486159067850418158806238303701432696906794441221108225705366957113273825941708578879552017070404039005852758077741281937753400711654909273551902573691348921165050103993804202333018560779361704395779301671493970487233113681939456612803117053830395676535203312313780822338498497822731643868401224439586792376255818095253682218666173122988083078619258496751482338996716394714668676023985509778622947940674823355274491939716382689913287626072732657478837425335229770738373905566682964407139570923009208455154590283633343421625821377435844488702360368514968948550599493704875542181791724438756026264837943654871921527188698805216670531565763825745254683593223156553952426781329251712694012508402425876542498904893245804540540861398301010189162633839400013916043865098375903398343193826787805284103984933241337893550923115937208030562100786530313227826787376126762238590731532069296176416797175251077273829851919970905666421527403801120798788984468896439970348645363949427824094640673543748203790996538484874488178728789753430570990505506471276188693636052310326106346570506123979668133086718190306125191759970248686967902407648397450064234535937954759970828299331051293373193498126550457470236814455596734263828272560583278839542885967254357287545706757526462953134846402014550713059304262740998859886573661590780951622449117566781409633004222886176736521765464864628870989129619725075820343213991800604896699404088180705734097000134129566759981165651746696343086309801348042963434838296102400771113521382509489733120796341665078152873160043680730765797193709089127778349519423478303259582293670238014346561997592632705327206759589412043087566139030441031379695190250860150887008837081919682590050656475399469264514054047708738907570981484787093909103109514030798557582781374867663572650201644437611474742374202468812455462511481730890706318681553536428731153091231095457627483766085383123834955624666209009957795297331529538718282322801253278917425305218182344832059631988607378472541708137232297804223036759284554082736257378111065447709560004436284485457788266789075435277371430910273469048319359723450943806106651593511836889088216532747401063752281238783323744250106984479207253868396348825186026705978657200574442578238513817637583751842624151304918972292329749156038094096526150028174833044040612792701083456467455814829224480905322410870832971896888661321558214664384666786561849510363047143128827366530047662204488840229791896949370844561951838149796380344456682074271327865983903257028866335758581511028602164965681770593563007562076644061359038134842571226891491491809611224637061574902597008225415705812251445535773508810485147640452218181534367615104002083559547912184969911307841747907748344353575445111350300880424787597013368992937403792344104382191244634059979581158198849585214876114009129956224965730372435653271988944284500286018569397428420579975437958871852849861933853099381465671844262967198088326619299215462902004802679816041620723544081731524227228029312218927488362100794183657380129565247979193780179956033106356403198852556247250090595982161800624585339540619423109520004821395662311135994871987327057286049468241140480950846106598970806157952543937009850113182177252163057644424272632939990183466770866867929476771151547144543285069929291507921536907966467600114449524788560356555606419113158788620328820282023149995079873255791330635021608639960010061767426643058331667115522350688173576730506035562385205082812721520115705374546164351731192762566953116212704663715129009843106467880620986697425013122162771466705101711800172326422092225485220885532630156833761415852917237462267911654202198240126449019895513543395864958018815199674144590657119208696187135085834558906500975508299261392907096339787698291609433975416510690963812628387325843068970895108505337122734689038869753544852436627843438972430542513119710049922720097442971444994285309953522150441469708205381046638592284389425960138759694695858190768892323245801080893685408095811709242068177814555333779251734376266556883809385306952603690660955764311776152943032496544132393976762194424777122388992758912449194792989195695533659026922571568405960022040217665324939066433434125424988408928054762840782159029167636212101697076967787334318085807804302267219407185608665820128451225897454443180064351330914032158452036891385827887167267679647957977131643105762139039397756452834415920003131184470451641504789114512328273075780877933672406922500465827782322579093607209161926827154525385135512436145025840434829280131528221378311266412926156745594882294346714173862121467718203933340691669352122049567251021830586986003577123795246784753472927051152188390729497477326164731530553573659258878632836649534611979194726214400119687791814890645600417378017098918636248356988843662301305027100547326093824831281636176894243368466481236533864234974446182817877243495330233168167168906336002848610678249357765190344003808058653497661280930831239097815661076383793643220219051137346188800118999531367616026640074129103430367209796084221966286979691827490487121528385396432374655290337526546988958912793002330376993943894038764962245313326556387913755835377936789331320073920081643643861909125053115384769236600882870387500234174295148342294078282369109799272864044537148680696456090201815491619622513867917032398481126480233042064499280164921550848991010625523170928234875119337020818579249833657661924321940072847673057871596174995079969501439257963880546008269477752853882931715899523831949761827237192811211006691363573389903314530118399625599081297765470178390318957878984875997758118122694417888195535747418306186389236217583839164460404919417614741006660957476932674811828162066683723516139154313639176440490116175426709064699233198371307358995089798308128280646813204014256390619380428890589952560391526932069834679161257549811615385134681145010219506302415868101949487256546163842638926660894100845844759361325936930155717627519962977999482316046647244430674673388421841642569812510291010460249638465307310591557099154558043630629274100822497742732894585043162248612693661962526906767308341806508151723804198768070407922302123667443418357295910528738721582420481842651248221186362693744852832669340999920294531107858366674159458528286353921815387006961469642816687104891904847492681466865351196461142884587013034721811833543180030193955871621992738170140665493468975235262789770922706159798603563603316399288213751486540362449483567745204396514529619047789051384358244382253932148378063339064915798170622923874631893804179796491745100757312072222610101902992350682755604439518597895466993347297960276421576957988133230901801937517957442226541588069346681230746433480096034382391342322049540453630754150157602941492868326220887572248602087469354729339680637777347564281047257326033889241513752943279263969003088070462452212713414889883169200995560187880945758255100093520307053687466757554816488343149519654093552662745713515998172754724450767290955471451034379668047888666448612116662025903723127314975011737583700120133307133935949931459263078871186362342872448260620356160381804439979689263736141246009610816314819429566179694664079976461833042389351727813743875350009394966275498125245801699679762843516779533164769500454133517131399186342349407032228817199306203758424083463645407095244069501146810643415095421438138913058882046830675506248317645160448514883176433215537684917790314787334983947419426905760490006603396626923000571077360547619529262622352780324716670944127620686269015157565529033702515703301238974643092084476949522507434306778869352984635888385699832852394505122744606496522421349127934449902846419436591237672575952999843405644624137983759778003538182977411879541160848714317838753741557196301448778619794561244420319964630125955831137022596833374204184589883859404091912207976445662683168958840290305172570288524276327315984671681078405971875690078026678092524292564589645151492494436139333594808559204032065869074102855444840938904969070934563498208760426126267710908346619543150483930087291617805181276751394971010150891131742850810663759454557076381676993108646288885450659553460942435599586822164402753041347836754134936267907286791324592202390190689367759134914523792211495426934471250420006376211375641305955012083611026302557432442278392966648854510850735137149895700162503442915167331649607891931042358960285540049029895486193643996317435810046643976849136463539449702386186836830081807907203899822357743070281919476640772068320951712135597880025866203447027664064479127358215480769996139978578559052039040173021980561773632621586917200763122430611729334297427674333889400230628286600999143445912713556080793152435887554117949106647486842325043014985060965841701081211962738337541826773753124263986623090673725457469313681921318876629855654109439112913101268886328956520812264638295276512464137509522298943844894818963930959738807051279067890908294891520133963780575630835353234892694464886150712166068813102726607032777544348802167702617257261956400817538938255618469353290757780704628014477370343420369198574850825500257443061695997730061112391457959369076307304301378472624094235511739040835440611228900681788343048445020755910366541589535113674551584534986166537221902617105166558586346513979437811912010647210628081119607167514474988550995906102483614552067722919608782410001070720652930534363168657708463583030502680020234322949401249068367471990217042096461574698942247068786807279179812914970902094507561995272126151510686571429633746427671144657579400219077767941574253817431395255734445777484183418288130948564202599949152902529265130497725463032172864325487120681418951819095266485689246480193763190346080844059022273343793085420134726137008520099715380018901670524778181147701126596121342152641705871303955972799887232800455133890096136472664145892088431613055192616433394408090851293120836304078488525070832515152574262623962865134283803150883622274781212905572890984791937911429896444393808660682420985118370082505089090783492316641761638450757113551529973637665161560026467523997575521042224498535636094712028091403397758125334897545849595727488500437440911396084531162195575379460199034644916913973918577341068066471227970845347464748917764798404012563320488388718108834118594431753510424643452910732049358294743620699506953837706465791700841007778009410489229616529423034852445016338775029434231295434226739637649946811703291290731751816964419603536017830639660932041100812741330879650927651074813733734515082398564688198978841025476193737515888952058958568539273233002805656998102245916746390754398278800171501133515731972016875917202879576209271561659270188635947808213170697367239765698718414816241973073795974861672859045615980756399029529088080095410720537546719619657358066501995300606204152037499105782114818137993566136925233068316775282678860483183879565908628649054515641306920004189832333684851204000609714093558580005150377822202084158312497242018576217933514494307257833311273060361734507510316325955916917268909854429201019944987207392878096468900212464570055528698558470069905901305774641945354319058036644369998285186700428251564513013988838766990788165802888430144922293483278045854855706189289385018511504807691402813025432703880256990993479652328052523580816002814876303221310116037444641905290273144149898379608280598965572134251897980836728520852252739010655109495793213358815446605347894593965395005896181922323026411918463446720512577165078059287711656711481002656743376400360462310936105449976323449361480561278276907107242279874565302274188563487303776675196064437515195449150754853652545603225170010846119142896041007681785390613141822698706514704118086573368148476349182361968294443404254464193256384191205614881905199453661553747609888842521479251874346086708286082755704429355554541587954848659886642670822269153815990215319664038185476476038674662553206402941397193685197177315162791353548823511042731172880917747630807573575977535971195157286272916816790117536374193642064112035821837936985611595518525963186537508172538946424118104254061931153733861260054169334546898957537681390339327645139947221107291733479179259963702744521097701836366141144777950758347723021242234272262202012120051744168344326574993174700949149992821896163267641833111645783047201900433183823131090313057106468418773610849349257629249646000360480622424638812090645299269403007381982317346426725278246597458551213892652397551809935101023766601965486374981742863307163942442806878717832148120833579376969836820607632122237428220885188834763418686969766361760398083963471043194256809687871562143843802353833143528809266763191227208389927511398914800180600481801505759892910843886506175842223495701533769389596780878075000980221290873100434554971170525827023027983524162606657035497118147759737491948180297122577799612360859984888373494607409332428939859602137348382005821200939808740165449054918631183110663638491621742278785696260809748696332340867414785680299947201606761864065443294852230910586668524256380519653015872618879793575166972343956732341702871411775137301247696543131746650538208522942865841938795016565839751194466014379092295860131927556720244636965593690139965043064014650715010313303007206153222383050435044080997086265566374167002216684474862318681326626204283923544613758724799425895373493559902442193754109859101059887283839500601422538496240705885079268164305344152643943592647579775865794378254676260118774028062957533295521627160404192205251607914226060097269300057971403626781226511741192094204583568106899429490225961786080354745953304896899952062761386188923531843847482705732769763936991199525166740974076028998308378734285342092028356945012242633214386203836728235616430421632046494341506854955435640064432866511650057680374078428444896742480209893578362882370864468376579538411819574909055061029143859633036252563878343527895991018465374998492691463846450874779985469042547049504466667181876997412403439540057874211393910329541546453099175333282248476342736441392410954435920745815591917023135024454878778347896860025520011408242188129645092249502780228364835928445213910172064674062512448003157051601461957495298263785642147288684062850244020581768423810173156269141636522852034621191362437579788720862295625916520885035417682536314129504561682270827997555617267600464376719481908391643392161628025201145079488487681954258742807336912167910744626007604506984953331148293323048279668384655681617159310129328098574065124446895644339422488201837166551884819722150079886437666709766892565588746227307488420377871781471178865450868850010782652535479983419250620855840312212640844565038924339918874359222265330304002513421470885685525187829436044729376214755054374310510670344918099671532673120417932018586158105763059543426014116023969458033983593682755244095062348656709268179473434959100523939219130594195313818064521527989494044059908743644474596392585241496672076723513520012021366511718536650967475887334552252845865920503813460099873439987748014123904062137804857177101880061845591001159965183623024210982891749793579732009151365586964864628480425360659863331234805259425770761036619118915671653922361321619270716837826543546474547153989170969271142132097856969614403677681674748545938210927988568918961269354036289477089490231918557597321018652023835760171947664633063006217781981576560205623389589623024002284281513611304299724524206673918428617679579468712578864909425641371790400711432168664182275767411285502197919400657568202269257143289554913828578042761924415630524319415662224530467536651966408992521827725699053262459264524805669668203893349497518262385829482136727002674100558406200014759655326429431308918944821351928496156053718299145863970988840774190062668738100291626436206757581103934617111018093444146400527499607631852512891343285642525456918660707821170707662348793748306841707152132556035746726607267913845421416574922123933007735316963356439550321122357715048128019498590319075125982749951168664350981905407157807249071950735180414904809401899665116548209152630143382589059971928285784873354710364304646264048311590979403789388167249513910253515825668752883971410768423284718745076974931599206243763322589470823643336649942078233295119558630125958778840812941028445244806528917109859964963477111629264004872131553188786786816452113459146267651977386066503067711286091725100700505368827579732986275850534263162367980661796942384030585152203089330342372399532907585532623701734789549521371787622530328658538780196580561757633615325417500537789661998993566235823662196133426753036543687057303594042395932446292286705090490128452162671468528071531329963105289487509203293890937590110337579348936547043862112639216325742101557151146356694932486154269552891310787702886780484931739643895765850640994707390027428168917048016962157303862796184376871327931635607764632311775484054114094254981837660466228007534333822374517657714244652367320613655959817878560464603807673560210624346785288597125386463157005405236114315899525374267648237410195654346602955634027424344937556226702158372293480908971178438547287777967367604592242972185739848285516674150667124359808934201182466223148180078998685265153326752681786486528277197246681665196339659642058918040499769458843297748037736330107270962002223037072312484579028870761957325258496460119700590977008456702459849685035798710226100931467763966087673119459748760724590293045310984441919576740108569828086496079799608442245147729751731464577681868167005043081731197046443206352468212277299211709414705079488889615820651761399862837196904137711959993424885689543226660138557154627409697117557485671478972955420486804695136873667350185224241681489144457412321344835139030703531723075426757647870537171288645694622729114800697854392308165928916604617265453069212300881335651115942909302122229155469408476721313498885924163464981118255035000599551655195953893149051135614054782692426926337381146701134817902109756560404649684373984956831189790770114735086249184032600679391692463260710202265738560911079716263895281195607934383925603878123296327945782113290500595916806211552123367030709200881664678699841330911865310449219958809966215611768347301993223988864744290605618524663451665003232304970576097959429085394458213850395640191659046885723894577308998751436959771337154746457341466754627487643848257088987077232982298947259526205999767397284121730008142963829233402257213224815517113723357689164018063930271152106477581380037818233215138305977093691224878719075228747725826330155795602805526028987210723852861331323474730634976517279498438158926355689236213852312211676158959736352711362970569313154213030480537930179523440146353121746165621043476416028402841760048688199995786485156128243030097358214328275568655610757837459535217052360763660408502249624299850000315513857800555821185647285530624057448045838761385479562639394462812464786273601194690112367000709506512257966429608290297135877274972177115336673176597579197726946025725906190011904988694005731539238270066003630345718511802496646725637775707441830067661685048882383309068461883539730194937498990028361322097947991466784913033807079348034640850913444308977214273178931097808281628445562380812625553101212511221454804594319612648404233721166089663158044124986339153990521126079167731937408448725271204677270684043377923218148349746580946049916245461179805085688078004725534175562068729115987292602242666986261007230751746020165687860764765886446188164874566800075538306917171829390905098147947585056601399703709951214990361468194452521643356582668310955860727405449969878635421905375114224788447561510490081416923157961098669160759117501859779727111210464485873619515445746487133351487768927802832029028844710558272697829192393449530762177065588706023977030366036491233168022911278813727736472514634721454912085190724669220132663650052193125201049282273320046726896021188529280633806158235970173573071505659499371754568745668156908264017331047778446971259301710640206878024882626169916167707383224086843131759455829563750108536099080060998167012612866193689637412052332650274012757466113755028786478983019026726774188045054728358710618369774606549549131700853356989352350799705589446573173389856093406607914545667492135008573024263204308193310736898775844692178196026549526283124481593176958458477387213755108149633463482282009491796431167281456929772699497793271276453578406971775313339690692146655027255584549229700804445552564154183896679460832269998011446856008653120691527162795732899131754170048005065577663468192993871987651883175815864393008407522181786540107532082703716901979620501664859456233175557185721763812166403198748264410099594909174631506094012512222049956564697286165393143297794475698228295133215106799311444395771111987142295142316375823860035577560214055267112544770112157043299849519481724284815368384445516056055622321636166014165494331011450720311882986158605226799802941193253894552368836648939942373890092514189196434306054173471836595166097851769091094789604815700080780587835031576515101373012349013004087905331114949737741225337495886400644520906249513399824499147731202998351339895841835548483830931539709881530316857875943112257048990404169319212304687260591202473686757897734558376946596718651501304369020876062343803797750030385928603652591763901267453750835662833865275124664952495556263658054897430521693319578794755524003174656916241428073723022484337912546829176783522832105786966107896428296308195890119393310010679421586385762588653472381747285527050062681191150868025349035209935989840869650721671103510016080686673631436722925056930450208010949876660558400024998333453184205351071875468218474826364082553288611793496061423438346809487298168847580437588996321614238194935810502881584268201326464486774400514951624048399232730043148593787679602045267705844807245014800147104815686803409069666964602856962276511773720945234222474880514019337185063572448267679133939691449047639780491098517926007221424727685096000162431845220828798535642832506451523080996829949561096804429560843820415591866897073072245259964564346521758731717700987711183199501745206808865917330264006979845102630394423792014842500563284361163149765757983711546962732412933744840895763764178589181611852904338461589727327556681416933016071132430922289492455928716534589053310114108502054957587420202677567525135213924891437038802237120307186915348448602186549947059841192933480415594726445321700789385884071205395409671117456530746426486472521783528919154323458785748351754576414155779928355136204166743965803744577264249552195606006472340565363574419581970006139266970273201145439486303618518861988536892010669041291372267323550987195018196331545482419658087830585683037786395260948836246556408889678448841400166513209491471572831150051075440463467864282179227012577061444469006694582853755229259935617736848240525788643554696340822036290247391049510330104407548822865258235828691430910152333659761327176857711606809036503253354790689633591482833549100604510071307844497788948037471776644389990333155546558703309689324921910662427577215119858370560456127489124109716537792921335052569698998686198045849347117291424594322109393353706058472876205921801973394230223079771021172194661447634495238358784075571215716900941603706464116732345637431350284176467222900256796107792370703388060169907916994789265815972905271059538173862081985946241539246387262987488164137815256174896988874486298926756948334593966385321398070512786867241969766755731079077588827464145479609035099847233132006332455255671150157571149770425854852918869293682782696387279315471461156644305669028231637963998835515704906670186278091108549174060582770249205662510151141508775330171616712020994670486248353260636126099274995811409846348460381055388469034513322964999813356214471944870450626901412508415302595086725456113766616769080570826362674070135840734379198474797363172908717419298857421592398195215280774441465617320461445842107352524029549934877501862670913429566904382128087426580959090382169049109486404935318637390447574608930101303340134457992518293348295790982205526523309228909960056732987534329406633413738914446832658863317928051544232358218695741849060194693198439875006016397157853764347556368330767910714954853600816184671937834136604359009197209471582809050031055029102292604304729306374372684082383838940522219204198107898377591450178363435692917448791002167970459596448643357409628693374750119558756296200067085755641168498887802666200027506052501486616772525164528084492709154960519324498966598490405775044411612827774904867125541924770756886518957081146539588931911741220484803608274736713097753880366518350771330887750593477085451898433658360595835539057749128065272701451541961517318603445278779107037708635257792233425591904696509481322988734045555660081001091829729019108489960501018668928075192219989216609847888148460319087307953580709482746870104177874894263722721895075800397661256377552955213044562483969066650327269533578476424541950821097557637970110264937117021637185534453691910137388439348115869052907210393728736943467243066712677906160971406993102251538734108469394591727823254804868805088704533372084491594646713549160157697132470329216129138566651995589021128747389374681187345015221341124391964553918925523698093819467709958021196581256701210731317104149184952756771935997673467384975736969967349319607539659234676846286620349327126377429950486077876517400377868143749001260691530882914346895874200625608878016801344650865080214710034342203916942360820221180714269902569054364578154917391964600085301706030622549666194299232814936691662863094726992367008649160509085159728651020077836730614303232532095420224684707140558262525248646719667247489869413748734311191274297435742633166958849683273871920783726158437603558793188300198078702836632302380182684241345081715974264222327531183261606043284545465385940374367085648681298294334401049640268157783425240541869218762372232709286374354738583042706775660157075774007753682657770143113643749664722977230265519835947248027446837071360795372207426850665490479114073391482463950749745844444043175834293398027580380835395946336968737388935501246143427444845571930836033006338681017840309952113761379763032431505163269468066878676209009216926434332395530540194454875881784041544808636084305975274411729209501382850019128055043634907442506643672453930818809965079060986709204011507298163275994915716266589002072799955267367197720074317178538220733052149850475695576593317318013759260305023956845934209628827322889395190833138476535307589901124806653050422450804884766302189031366532803999912139735236562923201393737927995923200126999239623699470614588024488490274376738869044307081415373835600100640032953436595530195372542892352396301109971471405867474298468090156566319459486559016060242319322480833713390082833027275506334213332096286061572030232623431564754742371216131310044097891292910150678279960379670978310317760642124423899604712900513961838236289215670556517704521059867692695101862708422209743369121401443647589816744277890083003630771573114194487231573039673683944067365002353613442741637887188944594896151386290885846155731616364025065954426461385236948844133072173802218715741475686356031476071264683809668225184408291942937376486339880197458683652317074463975446825362357276244591223297533120005615219971510389621781422624249433514911832045530307970393929256194902681458192205432184080080073681981718716335165510232835208107520801397600686296419394763202974739569753341353435076671841168425112407613727684551094541918342662890668701629480414413100611966816642650709498399607045871498851442810196803458788702632761232366248060068608292658709635937004669863296023191909912440369957620533897347464408504419135273192627107146047612234367810875136785350913053673546410627684363116189337976012743951012078334742327810677072181390616024068914412221087994934117599022627322512956406211215630448609151645079464204901904677779399403023845026838107632905913619991441641779831001536144018095173570042279180214178588238792068063049844088503738118569516810464403752996140614329036116398663437714528584273879038695317219103216858123820174136678730654516301428979324806398288417435352327706813274483623455129751737077899283431140510535429267955250018383136739522231094712566782298027473399538245024743676853907989990393536234421888107392247516676638763851284610487744127450376693925328682498759759664896449958466661799067852001845415873199123263270103190829697780564218809454439045427932371804929456379237729215105925051490089099797412790893691503975923464464520686591329733104815843853853702747630148717140830200243133394923319078005960333920814898431053046621591435597786139789346279574885785584629232771936142753405669313389694137119430058632247925117129241087795503809460973510353045244864796845104459684510459455416791424669075492187213021671173725662012437825314162487867587391209449977622795591482154213305836479599480431449340335215409043146920199197724699711555879789978159924567074283256192077400276005456114124623137377390705855355968920178734092270357289059475395399628020130770640347865709103528762983557508873958368627100300007977902299323234942069330533941939287245639196515718274094488282034082117267218117511559876314421801422877764769872601333425984494639546916024492555824559726513201109618199083531671134290050632754513491210066482898759443157783144097948548064504477228090514832523744973962642620081888789098180026981799541542373056823181394637350243820190791636622838573553832723899259033160841351636917179138328720943298667737560311436400693473912092243140171072094144752298629137688506827791713655440977759806406808143589133203368105279295393126465061897773869790745861678848507369155581247736441321738992931351991536246945474253839562550143365730446814891784594970544323902787705385664004510959680406131325458198913693222490287991980839848033425548733821388105256049639440394034457299691000791522535532454720243030984172870435703469964860632578723589984212275764915173037549549042718101821902713251730724058115713855679854949770820458784753655561242370721451981359409283694017754614586197324835948451773250897309006840563934279018556042955155060516336309472035011111332865904863097277696537716632410870399667432926091163233895373417863766467709149283025522684203630603047715996441292838918617397261904932280042848182786112973445795859352535333154801117215893695328279617676800439225871142495857977527391653171787753489072381003359027982128532267342454127602965551951730627840162648273225417825944703492906254885768871269999930029100581432724720342388550600383680228049892999134119118482364142583934165486315758667726574657245460368182782708861014099968647028664856409730419698523656560477896617746278967183405083300513497976877992198820918246358959143441012668458218913377720876440297880192647655063738737567616546125626371438117787292578013373197291289447823528165700273980450310914093288738434028946600515554541228934051387207841330852466431838110612671386544745801450408425607833509342805937207768073795330406020075220997024959941377830555485804960010627680917395065430334900651579613133990702858030378136801901772808166202661345255146260949185794186849685300750048414702242595582146863303075845726765079991966053164562198069852497905387231818040580997882072570260604983156613979045765436872705240480681521326595092283332530658182940319472061828195037484220546482209494409175044556410523887954493324761584208865501428043654367482684699014852293247926921966195830045069287301979136657298253714830544477224489669835950467543374550049264487832626455135716165809991777494308733930633134868904037445507515019896076406381357301692055980403454114770668383202330548033229629626662922750109676682322647694168424912267322399956643321594178520377376823602130784222662911318438365987853977343171762701464140082185854641728189845637274520356742074732853553600981799960236625467078422192850341209573249476988683985694445471770005940142898862878851807664173992665020619873133295874569961237704287903658009357527873794686126064407485193924560743110420053438698647169182517251532518276689238975098904304683204830371791292496936394520167669236804761593450304743877001574502910910140088037769013584979147015234960636644132300801939440633170736914375779310343884848131084385325426224795989133694542898244275629896549865722167326178161234834920650301112387607538026112315637069849358238890965751130218940730824749382477625580902670125382751143171097360929785554266672064101833797770115894871403102652224494752521898588481793180809416582828192301996521700948386329932744631703577098886471420574359670105706920599030329780448010006164738960091040897739874664442917043775253609321170582560338790085931683616524274292250235456038186589725725936859696462211077786120802531289142475187114595885437348228464399555415108803853243155652359393029258220189378520207929480392491733476124032591870559339923376582001750634979889670730490087126243310964215689608524124125799998089078470892321067861987023712515865561861822408402160385724408581187627474569889864254523748707138892623761198719322082717770088528165406544276476722932555242565004511817156326301911427148362038798651644943762321910109996783934436560559610636206450864305494919465843149036248954477614422792739531885245704094697827063747280724088012028416291974974782045152715119392824715331206718374126451080283008123541749906737385745817994903419814383845716582146458833604847678773826963749715261764120038821377846597886464797344346527584667353656793373591933550230749289829421359431963202211617112132273631409378184883051721841953016522360968792563706150180201530487910439398181432821162966493816682011838467336208196364908781473283961000100180102231332376440921163638977101502835604732720589489670220167378469719408427907993220944745441532088923664545204021156456613816354572996629767800052031731786356680891067183607363659262284200372421833213331849459805628454171601594665285084996699046130739729941522201226095377115696637886518164579827256391274978841630764963018055427707566046132899393459963393717381930487488730142599940798485097674940611025842152458486540870725951660105817053402484191759377212634531028544723866351097861598491561612443135702011194711437087622246440614823854287951465024975344301738057625993186979706343576402366532096566312365510557845182374334226495702799895411708086316172328829314934606983453020195635093589416591842103861829103247662686555548657226630695012375133405316477213146935102010620172350900249644028467321204897292097339904050346170909280853308838749682738377912099179245606406040958193399081462506519594387151470160783839949511790070324331723497790601164509438934040501522087181098252329606265621289802208273618323144872169779751159013379235837851033248457987444646963921712311817296349080716682233076884547648091591882127598771797184755293487874552571266185646345069058882575969001722470038894011526045113769288188925549383623422776928423689069515938799838313244753405069184722117169206303477644920922635028321555649995219962452198623996052752305200025307584999742342014462304597119206895643577552904318160492823676268108164034989942359238362977022070784985294066147785048662816919944669810405441751891986331831709661846198358579949513108432202530565453411765355003954423608847500981787253553478570048356280127585187655496357635401969229101984226320332417846247244734695046260499566394578669512597630335530624544601332098958910915967601944107957297010999739258287708235090568264243243177553637335988660434396929877701350303239760478173789900000873232840722078357188988809268662030623585466959440823376616857140483688729423777003124424206806567422065484496817749458525069912649573940069143225078639047408679636390788325052664175482887279771435399068124514223353546586063199941534541696939998254065663876503189961962029803661238001162349085303955871675285407868013646741990395726154348547016849112881137096079971256897394179061030417228204506650843853366337053338447613247843866116307066447456751063539719640086363135406079326654160224498330561601195300561184152842629036206450914061060391798866035050454648082442011635936412555759082861665473729865589976680841094864166986582607317817471675077250033667301634738020385678291430251278169220403347909358447805131547657384406487869137030530860140266413556043168669157996865700982066534962390508060497614596105267402697834300278595826441523191210436719190843552176556881690481648174892551717861426503615341258073213228169642418225233260565129168728117906120862454216192069822501301045532739328491640570794637868969748665417496254370195887255153483101699159942803792153126979118350759246919974519635227059551705894677750966679891067875461284247740199623141302081202552430223497428587975532126577522433162006732339205024160036005356259259162671843048206552682158058055406856090123059910655933423129740218083722895318233444296187630816187799662880484676438651868721838935737505005641822455602161789348616933729934704880966992506442387821577392107143092138227003897750519272677005069060016430561000184521234863343964120818937088762502956561389820119406005662986433895155449701150480820042069047567692328921056368500216958512663745146858977672021831798258998312393326165557900146018709432993972336297729850145163389123843171339656189685285669624835209570439268777279664873068943986205878606346983827270130438190997806256392454591076498821892208866739939213834696323415190052343000565746254717159896435565512560580596549625589185349051035095194805728501241250188823847397186622178448674910947113100000185835842313267088043484691789301770113709627404324789690089787723718609674937580822719886907599363601107710877315283093103212074286818686934229254199882742942707464089033413658894209273241381282184536261598850437643312495451593957889429551634649334305434297439030020359229119650219623402678798605628854935548353273360679018329441058282453508791497381070524054704541765414349437774277184981864817720759586532164835602384234037647339687001271427288181312354909613296177659647689083313445757057924144083095314292389759422004598378224596632315642762188659300377278945012874353089401998759089263358613376179941787502488997693938060273610391881137197878309114623354454092964942002270434361334336179667755381553549343852479115753266792965020403175906139052348658623205782326882425118980146065725543178026347367074494484321739154301420309311754265891425166970722536592538617868417176159729151716343603073161746315207661912278591400334596274005321761213180162983926086460734105454046419759881734385421667481992280822926143257807218051187355902143353558563627829543201425595731026790091365271135210390835756780574125491712705989823910563458178967393951693354082191033698621876750968256380183946998196813315029242605227805549323317577357637030911993527614924383483934674304985074755803224950182891365732291359520726144264028936049347555178577391101782398170142492697734826773678863800701424041795339938815196184029750176419598966937014790910151284133316085004399465448206203456877732799894277163002356739406536521498755967987745541632485006017541308088124241468311367675310732553624945570515749081257195610155832328201834663116242531643532762030147287540140334231749558309859457280280353026563006943608532704782139301063638022565209212743515608366703856865142933509057435965811427822801645853336511389981913971153891809205325283569283782698460324534504793182933723713461244172846721194531175891123249010983695926477608348451372270290753632840534768241985247469531275374245147494500375574494348404359442118086213548017252158756920288345034217471675475771367609772937759418416842495794984608502461733946733529949868976962711659044799439718174433127073516572875168708573673990568826407512844545824257362480065958070366869506579716140456667271154096125127230301649974213730333791103939274485435195581287385526315135882819191577631881996419197921282984952228432680303785893007542813543173414926373391433556938923088149384825486471632775256134410328048878448269021567473920705409364192791240445018416439492457988499110468326490924948107339984609095495367389514360741063370683418753064573287422922488263461128530671767870291696946334570925105975119467844683826027313046490346886397276879178702040256260338360012612788560466765755447210904248753672837495893020848107672907659674442882734662185909576744609843246252477312801131006969674335071412987210108536147207714160335038935943596551119989020843627257955631974719713782243919545782004867486760286766811863085997744919136886130232114837711107198837266315636213104020659661642533396862985229225806328947794451904838187724152930467666679243773511535611162166944530272400853923922319323634072934206038712267495313291419777668625603116520049335331058052165577238775835699496822451485475597757387176801952021618897167553579965179447675234022757286835700505757824349085201768352973068032052058429266839946853241387763941655438578115940176910303399870514052300198780015755324005201384992922975867719134877987280130926308413522141565040349203383902281813864445595440623734389237859841965160160200171087374623442101030062624610710459161616724929190900890268860653688673673133134754951121455468065999154855097390336156617772266574495220218532973539288358359304355311101649700964008832976457788971813817184943134787542832998671072299944748137662346412186099356298569398318505929198665260116231828629692577938596605964630316832891812799409385644676472396590183450365571965534703495042971569376794463437015943209863537098833509092566722296563590875869741661711458691887169857864331581656036825127360986975485863919436669520576594918642338865797965117081481112135194612635791807256559984622032294047907467039297859085272959901923628165370467067830864603306240332738204470675277725531502697955404282859573923674555791441218546080080317961038642429256894005867196506280903966995358236689745074328650414936562184672762685446523758129271787244746424494335619504923832464357387863858330715007520177724626049515819384413163215522762913008890114683542340371855945185814317871480080115330169312143483665358928323849428862428457897647221127584160602033920396508907481307990515766150899375618149048687785848023297994020264144547624178465916879602427410090508866380612277873493162565189992338361445394746022813865000169090531844059333210365465455912480787132489986834159817487467442952986875011562981622713787813057622121949836203657877266324285939883358769674111338471157203400240373451129420434705773046124717418288675722745657437085724132027753067986514868211771439403699074638338415379361411661296003215667803038524512936963212430036660037657061993634589953010769106350232549796019395813444637374562252744444178948158528556720379063441822960920435982631367220131902885980663779104591166153535790648705434741620652213126147643808470801087316864452751881523403736136033660063711368516955995571907596928934605995055914983226957816841581738558326785424547708181241559278790586329001137351195801425268783176260771784698599772244621735131561314739451919269655317530747583623486650251548433446974283741859678625119975294314608202466385679908437978355861016648826546696741335347165482198947081444910985798592507822490794394877135507665074076375910644881430962897136733863597960000189133867747753283092185115258535086841152194864931462013836417132122042253819237400546196170874794382962387468611709564680304309837491770153031883213905050435513310827088447046773730389306221610233851894171157929560614670797615649509466558135120379099531659877569203153022981726354283807190219296890577679716862788738144104154130918017208301954961085109126736125113146702802772602900987184642791510663032447407041608636508118633362383668538782111795898429783012811845647986138212239847426919355303906403204201625190321831643366264440439100003348340952427635811961364799249917448741356887011059872841223254341866013467618398076370081705871892162008910091632545433323376117694161586813178999547324785448687986760025993419833872706128283324957942753802198462660056436549825357234701235022564520182762065147966775050561647186304399542676486442234082748346371620241381531282506014998845917350879545653298621260467262620388989702935519766744593563033290784936678821496969981631157627296163237375367990340189742586595942161406248242457073622085677606183946865731825233134308038211033369261891579406190254018975814665762415170174312900123772162998889432165923410817369996725648601435998490514455046537069375955495348075346608858480412781033131879181803132717045278077164088760668522600549183957809992147928579633125538583371612284042967386864150531629572615138349471210031577792055587931195872632578993864933386468872431215448678875466919778617783219531556941078975168812633798241003817420643477834077232165563314306565543057691027117107095205145643565862276814708762319499800696093441602081272901456261877249339675138851651412641006216489250287947558558413651182615649532939601983198643615412960135433979134651171432037745097640825526891042622011019152772317885769704858871970820041566731540695956298937675635706757666644568168436254428417124638710351731492062534888410358904946068007546316050834082686944295441980814878188261627289669115131669525609650407674386455769447598666040547401141650028231267067920808794286280389177916820397605888068484130341221172185739007117134298779721649458718164029338560818170701121353054106873284647844691997492629862638618803004666034570603544662712385157722761558765297590457103795254548373894830286601994677525176792712949699713384927757121998027697882717501248533915748895642648538461769232252499732309600097510702625025182176252412700417481858037720451967636111984472632755330789704832930449431807257681768744897556246464029362083494863187802718350894939669771033357192486191058938610004326602652423937306233828681252002582108072813229079553749611062874566735220333166408236699202423810942971805677469902666588069529405697082675350484673984008045034365717979323562869456214573799223160387996879112655733572772669942483394124113723111996141784785996336997408128482667888272338735451207628403676025280497834047624792428918258484604176284803714558541540174514789708486023997795609982524136022310136621381442726050360186329453246871171597402057663280861710791887267496337810275913876668168125393579482753324785938526676081020302481394719862100645576171634470093735637525980689830162426016436253013520408973559387716370370531467699376296230481599689374955166245899854787135068934659229051758303195728971620513698696914428131225274007691833168515507154804399233229610398720836643189635852615091070101326257059962541586453825749217077842614738766051149510659777195812879163629562538802607291293354713209993266323615437047730073675855340499597982371055374945223122450465233305555238309995416695886329942701140513227600992430044245233244866172922929695795458634686495527101161425171389418063212865119891926158459772554686759805122916524144605273665245389588760648190553893891203398001973028568464311025867000901223513831928783618668689596576693614626236709181465796350155227773047307841023393652777264384921766823778524413524245031204682544141436358125871533762855077188670788743167841128424749171700304358021853926274956212535264744563021394031567018153788652442752874587427924392449366195995964477629850627629332294305893881198015976643683059962428868407677308392457123659610698618760942254260791042958749786675330902634177256023057679130510521139907041178859429483026467583860754392290441113620482643347411535284809381868264344313726013300134425977122516879167545571880401691410434897477324939600183070912501964757349930189366001123464537633329267700419620702973011509379820914605726789123533274914667372328213147450259726294994048306593100110175541375207421764819944887754228257878822144548607084917135444806566139025968943343329610852594409063471782970420501979315097933868787661463626153946683258326677232900679574080916780716204941298712427090364885909990672577247801081466764054467851057952693487558158782509096180329290860666182846693908790913645892024870699968253799138483434998728969172741739935972867254964718608227886638940140145815897155404847940571616079218279890912338259030015253269982626247901136827481066246721196022810887507635504626158169488019095560036777708310303040726848658349897104316382862738618618034345869103234828817739311584813264680845521856252521656876288059082360578234456037617238534788456292399666425475299392523395417807652719210292060515386919832696844465953816073233141521177439120001192046505043672353001566716921138688977649178446896122161679147369521199577729743451735857516707283908094422505558949467232774314559555135372658643027905124175028083452295628152749549749786984082833192801663877567345645097380071977470909120196419888900206821018699860540508940256116950506272380874672194447653894294381051641902537886118543955551733914733598892256409549622704373718209715724822071208803616090664153915877348366594108724648708335085612930307154249859648596567180198835559788359781047572740873541264913663176184866867651401667762782188153829999848164622572225310405469768398982958861228853860522202542262523233120228801123772490059086742911051826855808897181493695745929075580848579415007343135634610739853953269439933102637397461398284568286382694720183570458416497392030754385457852196058521718861303346649087042017701003988041249783960837391200312357150340643782492380067636820657077354528482652335731726857364254745626562108238543669721633862033440150260754087721815824391426461074107786018426517424483327374266005561785151253580561402724817484780342702841407572040491538069355840678569556880014823186433633094733493743624332823556401726049178625430109750874694048691919304142720729906877258206530876524137921386807031363908225892243891209413244357107775357404784447247614657208388360436567317200928029926368595860003163508968931162635784093680257879718389357607875539205226382058671886734813500392052052418208153318946710260733081146058751852216059420579467885932798347478748707690433744737815464681384973972999733970986373669054837695350735894341247696537896734285001284468066448194879622611066892819811554498329718210324268708426410276826118742460170444663862378289313348194444017262845124479661263112934597871265193605671920555284462853765958212820358014936041653038768963869525323180541889697001344346904172326318931217121424875858163466338574860829266767995226795457929206333252734197667067724643941378967950082968254786708966676813028905833994119490638577239470013421786524888224647902729286559637212480086247527770179285405608537099522240218598659435046761217202645967959627810660293948601583337102058909020449345518442289593406941278036493823896734094316181931106590166786797873966520106826708326053756579731926470893603414316922137207042923088142238279562928936726106826619886008875419124707641871888892541339708178419003269999213705972963859598552310773509539408930253676375253965651303277562961048384993167381627393934495854830727051771051601955672834728225353248504438943783911768314621428500362181356296800794736493703337699208422296680289437725636838232546318587204214675212199908651914688152787561876938570230624740754725081943543619709288075387570418617704761469572329075944626276334049872474324956627390905707792630606288447709956643917054952724288655735219843234561602223627211992802165237290656452983187510770237920683390688562276707595945933483977592977799481342380254520831750974242751489832602754301785259006761418812820315539676658715977595834435288290535838281917453234539691683492522709269067120165558844874575840186974018452632558129613204541222201598701503198404161879713352138841475223385744281067863561334868902966106538498488194749933747776360025329640493685343826651698475492856769654666544558823461989078878377355302781121000176708265832158535483957638572023204731476626364893166148742055671237141542047139021558830914836396084081910609705377701862912668862345084789957222156656602823443069789308794120736319297264391675135015151848166383508573211156579926993767111291294938871571173779946183449832101856743433465296421367175427973859653987655000343262193374199441513027387425910443840060146996108646884145096085833758290325153610275729111316972023814002424020167893679091601757633110300932103775973668331705158292993660700033267724032121302799715158115062676888282434677652845030115412342363758810385630153915001670199075756494293281980005566520806432590692958813967783211998575924263551302574489878662721970948667725180970989352078185551161114847276997295834950413705771103250406274746935030892605922211313016953162996285616079684483887003130075176227519283862115616770372659827906900411123621072984459254875751424651565740869294895847493124769590258361828251266835216359711235191774558953450357325202788794857833880728124900947848796995819717398508766612251433491429597937477924466831551517237581284848332327449069764408020472592104696726253760226898670480887592106017459917579625100638480375044576575672068685292331505770873852779246158482955307236112631404864792978523519320888964119683058062599175010556902287556700565950893804220511326218627805756775082344951203485463923884592848588216112741299550828179560837469751244827232519179541343461104464914747768520068249250632543090473579248470301199198085988473734447147157733645377623032800391670951425437557164461233436818176402247322433549785390513674783860076141003406848026900571594819803514687429035698136930692393684286281620716554517399581956794422881646528133027123298978954239178932191702434070416065247944192087249230355464614198570136871736448435578418121380801568740534780075034066053444133508717734484634465944824973121113412122377533574849996355582783755893538012155882388004285430811476911757999944511956286848854698024041692012074798051887923326295723884205282883436385909104729543482704412433075254949845675677581975793003553443976194130112189409320929960328111612301040774279275612527997239591053255599236049175689379690466084832667471060524873448367887169225460817800338444629725904874725923612956621341360045077164951419344346757702144765962043912476754054852344485980852123772447415975065748326682686386207997869014683766767730999539223350087443654172148490322499929904279522575492984370879229219614783177323734921395281839669085326675416181328114798105169672852468435664387067205023274752039811046375900148459955715436491966452383495984075780264695802806747699901723075559940201139414802408359839594850211580841339588263910347290841932560261039518831886047746613825247720308473466613938694392883274295256312117396033632686875803723642480466259516386620747170939753758024776715889257876257914223488831865590842431877406967397341286606067187968593512577070701482673118014377767943450642792306777367985137259738991032559401394976525463572793105318158300901901991339860207538136392847480266331761886481698026425965833489272983627164475699772214860055793722640800667729452403465047449445863868418193212837754948860749827190316619145745706143628595427724983709223996830231335502186468189682558036754791640735399487621120548222236246058846837715873395723098474825159493735897534322993836169710905489568859427771080120032338957608155857737378320005525519546163102714493492824969097680546640249090062925812551155814189829769046653132123478530243238816818278901132639466271696617768491470305936267657791944330924197622811728061501291075884084960559216097500529518962811826113381423691843526820095412030011666931195822711361372524388857917810387572782238492197385507513556276316742005516239409917323465766011376302544781608158765158074054937565159842138575070552255175628595272057535485841307634186399339584511919622808544652978448069290904421450178913877888988834286529821483775685570994155884436618625534565877884765704178962827970805589514011942015960574754101304061741583386374847322566662361161869530508178588322196281453074383058754971678701376732256167713477007559978258605646148862419985142566121966767870823973211009131303341853297582017109480585114194799344095518269823002920683621364080255279090250068882362665828539562632912000425170895727028206099581862755786055575525592996287519362387914247313782351805675713477087846249131851754132493514198274209840004594473431244420717034777007033552427477704501743801320022889609417394185755477432125466809619233927834804311474790475082901176942643452014248655021719325926345275167612651715734965819383048682133814567171769282001262072942231488855587479697009306187098655854147973201290357455401112480868459375543777520692354178183372272737806340666096247087640879070824273936549110318240672437911860655955177333191553071731880299139445962624547231176994260984717841774442271631358314331786292227987554828756217711465124605087448399376749925589679052087896767620555343218483999242083773179883839303712096227262762672856384777010453672887458371892572466543740678907412419953192229166530673785062025211615067318049967546357125047663444522479447400712443714929009910751366798404708055822834057814501047706528640858462814691856320389082672392541148142631419571039836453678712448934397894731006144334598521729140750766037270951887751549349868726780592931705762380493915484512844991941162161870838123593450399220688237844065979729134925153877978572914279158723405914605955886160406509953148660221370487412111003257193139979886008410016374561025739118715321769091011067474957049883742780774501029690429184780684356831072924465552540005222760692824506162966171521578053668210367418182445855557897802089684844771509378814400883090048865350035965286841462715235958229808637129883717821889395349581018610604217373780522624200146875883486896670523528461312278116172941355044681456096254024567791578245429767111259850598168349159266840137451594829426784590285991072168069048507779009795869358717273491163010109451867435327312117772352937048828991523004408216382081679348018333115860655237675212060579716878996595652889150617756761542622340822977961239084176816294843738002626281505851515985917815273124748843355949229315367602300537405881493227030733331802655343612574706479497482116716114063599629363278560053307743252228963556410768801815054396203111473352249757956668566015670354041441600805604609382255338613883408975497927719457711076718481458275192016923458676714645991796463194650047406681327978691426201707484604175855068771464307593406992571620539176999505343483068600615906096137171962995096573300034809989751956431795563284376353624244805521294481479131873271675363603841061116936975805189616503016515316961060015637527598788676887179251409278075781037790641758030371656498060855537065944973825524641638193242232576502101664889821026637172877149047535290458094931838422513673131053087902095372777092497398606234211765952346086220020662735971094598101878370771214250545374383103881675331139463729637923647265456226176526091169676312518711514038555276088934912425628665986524387727962760467116440313728777435431172920951378267913761823012965608418119987190968678663248636054311770229260971113980200967641513624908662818593309332463208753574214568173943888081352954409081365760901333336968756961729516779146599447741771813546380818357944086454215348512299747423482691455805432467594218285385127050878553269493271781174100617865596075632531032070924201884973091749180640096527033620380713609782804844558124091630241813006866964391045930626253664314742460899694650236222599393590553610008209113465992181474000258541782772184680397984534297719053476168387203296839540786204191239269290316600720901122354259481445586927161714993823552249097361166815316496039701508908272209985302394701453336453875553902074742584522287657955093257391867910400983061928754980289671187121016519614925729840102434424422467060362753775723474633979481514191767872344631604093600880589574815751063648185949447426398822072825465102578481518091384987235020971972146330919938857779753526930212515005418233251198333384596005354136140365237716934858728757319404372132988661821470135589384745506628477645339520699315945567499404280095343694833540925301101435862080329427470282542266206962295732427051574112981122087480500158665679741793166138061705431371283895406909638535719704977661513545713217189941279310721510152353057955956113762393161475274408073108691303853570249332324351522762579481609071316313834282514223914590924974624584047206403548373782263778636715571546363729026955333400175646799213296696918979164654402852263648673417093728202757719279469461082041492937984521758953846451807726618089796627692817563398838114433625906345119485575147232735227018083229272048457061136101121974437518761662686228922260593737964057455953770964452785163261610586074743677029799027694545425029724725582598911454933762085694509572274073319101796804829769452229828980354856547626057664453716900522659706322947061458635039925242115472191853674378870639141456731685700049359070443779685777384686679915008194699689643576604203972059179101928608519297724222132581624217124411468954938074923701303602932466605454197458890184710585740099726263929413704087965657765882676683213570026137424029158802569787074894115446912406010284657743542965626916072335065198819542870458914840773776286111606480773647449429150575396347010508252160772227648099425486283736866837622993398090730524634965027375696776611699414120725077738726000329507789375913109334262880662753609518514022773673719218033622980359643008828962784269519978545551689031612106037726392202596179333109087903611712790502011800282314695452524829216151972423544393357483235693723579576821970074527040898345178542456888660868604170283339676933202020951542315793674763958370796858469663427955841095049566081634808127628899760559710713613048956772210497247875406016855237611473931541448631832710717595101996833118432436643803962507197400853880173182230477903773501678865188773790750619054679689199664078207719952857181830188890563234193017389843136958080362558127707513742525764641124469387939921502063635639487840876078034689951554595566572777931929503696396117425768360460066894275582624782568958271897578549832909784315329581251861861960044033715003416534992616334078520643436381968441725358970291070639960263513951038743758455682374017708854647272208488357407390375973846379687070992187893526606397533494136917531741003549919671138696647364924310970417713784418471203207196520279262268711103788774718809547327740123755070445533516215614422073047156129265937345313773176140747622044298775344838435561845407695116123887766712816517660604068186067300817197556809872104077389063180030313129734785844583994493572620664929850039134140169648058432788883094199128355193694219455693892595536209853033719173598567420924339147388460623297580774928230599479464405275199453568196636643029256494654232717310639967482956662798432298713239585617651093488201326872158893688255358428537660995645381860184336194385564399695877264457231741623505241127340779861044690395024044533440881378037362524997650036693158386178114699287500971685616973405031784427630791652216624247307131860384178953440421855630136417570003069651124985923987013527834395733520285989790575614654045241300866212599851226489272231112520567402482637288535627106434371351904204832867920473050925694302828063266275026055725510129841918159244873538673729214431166124652985718963306973582845779196097698550984116902371360822884565212403419015620779384415839330505467838127746146002247275079039494193475607324918284072547507862029337042515123610313702798093668935096098997099297517399019240036084689029451279819573041568687724107675943432109328655878646097343256358148660802972765018015520359025840586942375570715602831846730272006660551270197895220773326841495659823623388061041238504007306479764088279304970991449525892200372317837778118441416901710847144628717484021021681367376646936979060234413497168266535888180331790318864796337467662287617538871724980977774606228392083111867758006733389160172340129697691909522109339251512767758779799598685940035178448653724816543896322877813064245547350559629364571078754498495147624889197395507034653983107691462751450905039091362820594860876759654259959700849613051334828376274349233999858256138787421347341965891265650573571113163504000617370953756831974415097462346480504627774009909693076346454523062137105086432641002413589480052527679941977627609140455609806057564501700085623359660216792382612412036591802419289579482954682503524659548014456778871256099531017444890352126527133876983605232298907901894278852753210294260180390512599757516648013479029689732305026089542156193360049698248460593006318027777053968006589969297572874262099624897625503456259039847735884121972877106960314370702897047344904472881766329255906778876615862113142975660284560213878809660317903650485514852398955392872936860886993363547404492635234111743382433203868879175044266610906783969484467271332947258369238214688713628256119526088536722674982336052033380950142636043427360804575395357138810094740142286515807703867780988133287188954684670429910047466703926206720113125257072008060980333295789907060407164073247508262948720029525777074947758191753130885846644097981157161275211642138188798536397674252597193837532537978242819859831501904854502070233461915505945989891186511254204985960650428321776841587445609895822603093673215917833840510628958567657550597056284717592985169633757498516625299982326409025870654158785166281148098279714549518861555944624676623361553833266243960287624917508987500954974210057842180958800120562494359198536246508434773563890728091102762206501686331459453516719239918739944523936067576935440969934795221472406395574397816574799670374105086028701525240735933360613982391680068332595541743226775913872299389570038900640330552276091157910140319301502674595122133352181861302680377111739149746257810042793353986982472977667911143653637214038365145019682058170433260404094698286899908552778517690444844640423755914324455679201158573880512725407813068163699938668746438291452421993142135354280856538979761002241801111502117020709428857588592529163631872775082561800293250216477691093949739741043846156332584660288403537206185011277285102628650433141832026554495981263255007314325754900855720302266116662386605223212930525379022359982879860650944901299842193975581541574112959624418041336036661204750306607922020853146240122474153955297893610240466182094636522651404424671385574114441675622976875513451047611188843635781638619692249288214813446129248724314534171596728437548717995763790035368828709781855704325843186550797626047935749982803015725024488425196467123916384540352799730167519786934051660938018299120782220091759699438218809007829220640124853225156699344442670204893632221772849276032705117905969604260886040135570789331388921034378253899831457107198884395954072307820343097336128102563616385033527804965066727800680787437819113402104942618493567028221788773305266008581247313206926466002876406977823365144580685916698594441116059885387966925339753508366823504597439474234623704538108555698642886863926240293104604934526912960051843384722723188526155022426419757997429062643600347627904830081904156301264693296790144980111151299783218115980353647593091498717310839244394363693600504292160690481884297459107001292305290916771945611441768823528474429461204829051377113889186138569407324214685682442232700756592247205431849821496724126701231158212046478254767145154265172553427998126724027946222277933782964894871776484462765242586740811855662829514734319720670594425467451382451916071262867552920214528362272158748338696437314066651320029944450804123903642067414985326859287462349155747228618176009576612403859781640777630763971135027547065511647563987108824783454537060167451999416650219997186177991258671747404976787166319838617951540871772075289332079176214501937079272976405370891377631837860982860046314788798700409041880451298069110806167497502375208970789356499685373064761725228732001773823800976055444772032472309394248680958637773733369099661727853567639753592156919607414282958241855720565582864884545249122630644726671523396985048107708841095965768696739283110301487078782212102430638579300474894815059406188613045549040143176686034397534520078405299613813088118186607285397469468579139528205744093826234260709382618361079289984701725004653742484706059104447273732799315839868713824379379503188566464382901776246751492624444992270336852817291401171234325480806907496078358975404335922979212961391060312679104158798898687931223168536462848630405660780215798476278220784542940936054151318678747751401375134611242359339185470190259418400398716442580825421875493722401391762189600089670494719830518459627558339070263968449960507339337891274330261900889862918897769472407756030971822340373246170016212447881687314777684653372426228730875158948820803560922753949077961455710661474621459960883854936272233265181240591696840446370539129041908146831268680365385661517281041981188204166846193324938285927257805920838242424328638463818593762317478557261902955366609563803022393746961425570791123892407860518805672373161680086113620841319090278902539765906688603306583149930579135653877924816885384734499495467535609689651480031321710878333037136956579704203797395817766546864314371707449697216124502107952309155578027205901105455520863195210960329523207184900322439670761566704685497248612174492132507190626086193612783345698392501103804881351607487043647248412034727742168466159585523330547715203379331192764034568282920807881067956129166436113002981910662689522889255444616397330554405780589714569894530314159271316254911944690092659985604086289329295006604370951345543785680131429411070981303261612782366690440229348210556384377482144872701230807467262266906597660313197119793219376419358715253052829808697747659819170643391835074879386222489038665772458070417419698515107964634566372202856714490563258210621452923454623772697027140700296544972753392588772565340001745732963631031677331098308335969430006828913087015254475498633153823062982415922673706524382230133142140301575728924128552572522792074559800558784775776600309798199389493811496059380646871278300637656488633067500267146151613934497739394867981276533722221467004401699728319479347121378089454975680491027052783790415252434722312264951957194829862889994227775830306101480931071392389706867584085411012383937641369273880686448722448350077368592089543257744527781891686166766276116429725678786719568545292179661731535453099943754699309138184740258823631549380884019035192636261358652791253562206976885719436493614820385887119093380950965313041220592199644106969965086188298116597395697557642633597601104555385467953762110100363678503057513373610942519136328478040925597188292788192258571189298758538506081549212989087352220159446886281702868277905900901503382615777398776177093213844400190666472912826603882448007679777371298048241663133585719271391919359141767699659231206121844392419778845933978315943424175660142670909873220425866460918209286744426545950135510756981891840921698926728424359039786217273723435077433706368642562191247775129276074480126011617599482910667048733205827954952126418311303712759206510064416561429314673425878520933800419493698022335079142061795931970540378954818885326601522418743840255496946040177017162470209470884898118663783715232955968910541826575594682537879316951810029645061380088026265497142130045519826779896526372237215993638185525328373374150678258189137429342541100611547627575657603797017183842004626633368085064797619516871443594505908836860292788448568590677221622896660059078614862864184695961036950975951789473099431928396523144391739036077699647220551542336363978267528697651375936574828946517431511569286388752064256938448138983797371724435675476500771302395872236692879714896597458320557956407333228863901260891868178756581901903299633714431001033228451954433276849150300413909135384959593915257502227037224656263364239320862874755691980485519038251738752005921151841171370152184872712822337260104336320648752357996550859282561830721578468361043908833174753897403160566622565705170105164295111800014835111275433580661795463577575877878014540885082883584349085524062949775360514685030007848541584498101580031940328578347997990557694689639613553920242392877806226020709697907058667745201565953820733618212813052057954118503117918230972467690545975034662299679841599052704498364252930243162577947358744645953657559534816319719819342076134250536435276412151931165729815076366181769237693855553516407281474803387880620770016620275391636090329767487502310024092091045785427082449451615658575957937114408669335723179926255336551285033809957576513711209277965281357009545517499600541596185272759594265799284609717606048850512357771618368859719508071621797839205811018572030768969225031883368208168215017759307622170561356819956263343758839723094842091024221836934085370877716187179691347486893785235872879338660697530890831691274251441870327795233622867158945125232106258466426863718151333988589622232746111813136784048740574009319877722618288619932875580727052599192738604198338243559505251642426589668279928390238885881778853486410237916748100846244696403075645631481196908524428554345661599998471540983841055645213471411124185871577946050802946956897753091599062331496310874246989196488356736925658773205124050455128061535824312745471353706100094987244985061553850584760233405243763476604781418559214554495690854508397929755555906371538081897834219077978347954142141659683871279960688457207698747255017708439224208938584030205734420616192884338574756169829828802988443174827272685344962078586055306851493576773969389152077664649772354345084803838784780685366118181038610807830826600678596767072921551881104305604768605449230065987547835405172570498378618362361635667525629124013270105112424300249918621807765722387157820266875796699284941453226571358780121098000306768693793821753519860438238340603808111269848259507715153005249574681977354422573629932457573260186380006063340864548508027578657531496787788359710027774384828823967904448440720341146321240438029936053747327852919576652832727902327429577484836875225386806172685426891728141806840272903169955983231174860080913298785587754820531572257619495354049199512265220182453868938623801906792838442009093623394928106587850287161702222967905152387246777168754237180347772390584472983087523775941118619671211195529878536924016868724067214206597925102765627290512931151997887087083205219935151275074142373448637837112759068352897255572267361443417834589276617041558000454180799141078850629723951623451409562941819590673797333800593588916905684978891263381114919212822986346505775911011576110224747470430823310915754249318585343518740011807204481523101225008920518062897795934060607169389404249026487618065763478352235414740951868965123745844257361738288381908604279847353957947795775693919693468117764274225043109579788835492052463025434161581987834349439868656643945595184629975353227880680579945391245037891839371227526858237705461023557351658993171050122764793752856832444123746275042468472126892829291622091700560332394561094595833931369496663233724804243711857845526898030531666464342038837704898376276205632941793605697784162345087448912516833914934840773772016580628190793669079999404317481004939353655709708228774106572774894570775898363917202942004179297948858040969665356312473870593285432450862351544993647077818399365866108904335663975995667023301872841805970022602402830898287934832741709621907400132314631322578205450255506303613755208164665682093057891065481623410082276410040203369729260973229352600794239175941054943964612579550949385489412951152711018335780362986620115231164763105760730677540986767491529377792994711422666504651167267313969977358732753466756741745184217986120963406876858577030108289269245099927610808760709843464083365256975173531742405249541948757730433900875493256539522393991262032545604894155861872136859589950298748991864866277230994614707730697226283380651724213487388689638103836470348774104260902316224001963155756484953140652446902072243318436316946979989627391820765912863887950287191945009408404946941806600290487193842518849979298089163238889308421304439196652980859047887363607960392914720357402999510344377468320235768395295522449940192348608909783939503346999892627610189550215441385733024993921360359201760015240240717840702382983318951021229385327751201660881884245272550399074840227551003962432457592375875669407678678128823269671603309148936559737926940145073519238742541353502950480694511327434742978673213460670170348484310882333970508844785425004721444112021243744698275355988797725606774028452297342717669832247762463163221399339940617017844194994119621315776074596398710387076334293234068129174768321573242672142104560427587949886552813042256413566969589467628669109466731818050602635362894534681214839159729214706703050579689011044645036715604208168768949345843840497437922818361113535371424836860429477423065290822965595207307369435239616083382350409418828674582186009240360382347431087738488846936622245695877693359267582638161230711005211461638891513332347752778111413039031467437726698326023164736428036932186627119771271196027785131780440351409495863937222613367900749249289004818206944051984228213203270686358640324490840763390498861514599008827527892173018478051515082797128584618427471014237223396924484510430091409684572768601742588664433060049717235213364668779252066848275904844115910858298586622714382665590460574948586410453250738496660507898277780686913005610257439015775231773179454828823580901996369434626712012993852084449403752852907085297628640946964549695276185536940880113266245703521225649644941723412977567067227195936961322294428884809022840523628701719498617175744594806907410289067917856263093706630365388020967670794612241689726624264347755345049150136028532251606460000912807747508397929650938166505410316779312571804167907903060211979397656310548082463020182172592345186045086991891949432223030254557010672172281717521866761102488691239546293512226705694924440612833075121903119066945101646880517565321474485778032696321271083153722851939241362964888086720708106200606617800765457713142236135787241649276544671523241102562938531610026699465686518093072569182548527432029742981525964611354698516806588613807291065458276180077932511894589198938796873060689563388010673454531873412813774349100216835814072476986225690796283951406510344465435048466476183051139465606171927562284831460758460603182730515659953536875378886653918043817107520968723406076636225818583623705236829986777009428078582957083911809623155187848196605730861419230721028425560832443702562596341901356723425583737101662552704844211949443312464716686507071045224078939839737340575656139517622102320996272276938925679340658072339254762639616034094765633780345082621034925151840215838786815023403633145745224411127018087759316081655111250759161322518325802060866513871065975564344458933161773115455140288582781649829667190623358363813445151217919002643432248338299273679100674893227271143629736888695195621417167719355966061208197063440147684559250072959134564666398788340247129213164254848347139871962713038302061375698130839227151577413018287019970306666172715050157061471524967216572919704222664241112959470766305748398843017471890093836596406554856698078519399200400832006952634800525012816651366777819117832676665601801745755801817329482472691837845539315697046236439751518598386484794573565119616983182454799013705082621938440581050542255455956673655268747536322225149521370250999582862095732512304895928799991747812974534038414869228080705374306985770065202783828454857194377311452619227368831188109947159001351988341965824486818834325548764040206676117653466488163144037213866572475979755876122971606771721701605818957414812882514656376148807580717694104537167739408744714914061016395076730092521046182425605880686776625626301461913077227497546050457939012335913428041812647622131362995408860595143226011451261829077363445156083018621858443344687997813085094329881756205990181498637079484351175057372254646064387159361860606684924898344022981230099301051151600496710802109922413902130599469638447151153351152078831084284316725972319526206523521642769621747061555537587004328877302627717452450628911494593373472089932251240630357330236574145043377904569116751199061006800306561775361604045707743890239794809528769198088136175697122226079092906822859806109444675722838831658683522786666411609969808962322522883452653521981431972535818859658726188251145941961220902090727175196807568230056084053883328002915763792949207440111947425772941155097108640418066300512732906726229567664648753284873993457197717462398472726560515517193257739009532127299734139827910308117138408664361232960418522058707219634458489462730323477814235849166034609354646663548387930890526464463780139098113375920672576837758436592432032577953977058953438549985132840497929916082237507163133935973212418371877233378965247840978431490499125191969494771189434716369800432497072109278971208542150673312033502496142483153157209106497223460360919732414068812733084796606370833149633744381444130245758241117523492954786234372193720944048723859975357800945278976548429078806386687826267616741176390060363279619834186783868921581149672762200468710361515492203355055339629673038168750982202439509108644311083670028693123870817939084688119681150502683634176003828215418708203797634753996402629141563492641886325839848670457905515390855944438819028173498169691230627679745121569218354998073540049830568119057565129369910956956680915688794774474481571591716158169215967108562526153883037988269031661358269484840496348084588122157058224312882329052328138605225193487033070023671901442713732714185134166938786404155698240635507596288931855939943801610263477578566834831298749238987980372265776473624589478905090568557799031327754277088125554239698349333760108078637783499197412945060294333536632916876059572627145807076538839811403779587569135687318366999376069705488646869968391646166026393111777380468549798693424961025804977272977009963086249861828230955536507261068581087047397782652934869111236509032208973408343721184320080273225936073478096862702207394927337231038200990353389064468130002012348221217504842327329763154828944839687089673315535068491028169618807299824669077422281768343674509953043133651325212705699389472463941482552097828055194380955021255389225691414908909212728243643042783807090227445800757324999764173073842379570513624868301587025477984405635412782563568394821314997117696438994368101893253874703512386800542313521599299777052579270505240994673248363454334070394072020147894387494048362924309698253958759454381140517341179892148755881472343927606205164759221928727164332807550772793485368838031617256959012244495566045797583329851841850542410708333758605370293868647953524254580842889497022428362400661096364794131275319879806157479993701801537763071897500307310064458438624146560242071620477566096747207974356046399799576944476096970146540063395937473203301313939598716027878967905851577782993339859908087744206716632822961542246105095613877981820613739938218004815623716879680758937599125857992815545211807720845471089942605202105230754624289511862679401227594131398463567929579362162654824858958723468584638456876104140969649774195666801029104399807600822432507853692416855076201900283565884606445188172183523148519520419419420174038106056762078007542531901745018564658039939989482517349282739701952501637687874560318931730179626578619715074526319592172715048674785688107840008351789794396677591171274365212902558427474273630318715539138526888467012237696609074978289349280923548414053122401285380636771558997849278959946330807520289830797746137031851849542197468608476959570393311879251433254951763179564606752904332482235023158651106283353319809118604546540333842229415222569661573440744143938256274234123832244368227675247746265797853992324034353846777659684488614592389514078210373600573190446033651256236057257805881664733617924772619268721505522741783059275067035387934263543211650790833446588634985207244236418870243493409396497767250970160319738055644534943859402820922587431596497492066016642477502119998264427377372773044721860978829607271515597675411664539398909865022669533306012118208715497332395834375625814592494139637890346341710064772244252716256679146407146067149929833558224271138757153235274542846307553404540832245395251231628414712365385978606563041408939862016432466052205496409417272329446219392846956605149858450105025489225111561750501317430201646017284933228850611266256000384576410744187423758931566643153673922305296829043032105931839178899899690399070166336267542185782946493025465085877547875956435150568617840691792127894495411892459895903051314203467945067710864490260299790285908688934757446683563284082546204030929435077771352095321261179824204403518134180642855541522497910200421238276395213695644568758347728309676224058381063396135683495790676267381660387187630068256677311348094089154984273838600011211650137360306398741391164988600527170246855935333315242160373078328184577471942495779658042998170438595639844876123770292988220224549704187777878642955101153171585684528091374771285368055826718557319635874071461232506891068646735647348136716363295557973749180859962547837058711650842755508167711042448590409141184492063892786520120746530846226997697757119393873471843686887370330275775473519304842214441046869145023419249129712418065168233274296499566620575236317528226536899114100555177520800291576135132895740502449709169582272327756945747170550194885247055276039876554011414188810072208055746599828386060187659840270748692344895813719374670898580096786913086247494916571231263022460088568670508789665673665640933198563664070997191633526776210787831052829921107047793677114051758897380809792106236334507856597166310899049079580210454109326409519646014283455230579541483955888558882260088996038590736116869074591120803992502106396824384245349473296368136007988092691047901326056766707131135093602393490234804635330774459686427634757309977156070141608638028238062917677569391523956601920353839111971651980452709199706043749040470729436314584774939498447310076483389437940726417297655663377503035081987798902963404135726696923437310306131718650713812709064498477767852654970451290051934407010453469677052705257852201394749910883051066888776006704060922433160387883209745047994895999690915267356629226877983843902825893152871026847653253157179228680443501739429679026828533638030959777655931192567895223012147338317707011401775282915112490493002954974417004482945759254789616928127659522836105201053372309614789802438720420232165406165745607183008956757566198071104359905384082743856611184103867037964501928467177845685340333651069032472669162314694190589223643619413071525024201805942027390807325012103340779937491328707322195640342902978356068418710553298241982488445399580578922735444307989889056944980547406781634064161947446195182082484171824540006391706472203155471241725789841087226992830698498150423483577443727914870343368080955172141939708780393335592253242140941284112373832532728303827632509567185416644752572109049943141601647550173076483451094525331657039658908935409349917522165958885955713581270154173627241716188650782157945742022914984076794197791789774746465571569766281795259211497744710018059260217658047833566472000065025738703634185946429877656571844503867759954483563510076761801276296980297870747578304645815238414278807756423989893771195234161650576375438733558744891385762983843399411649036123419000454129390348588751249621069727743164847556870103355552217306917398325791369703123454001782449173698685033336178643470877880000278523799662701789011538830744276777512729114745442670157329835763240465122683761628054135318953960821307440165831382649306809707109607366531688712475409732354262383631932905027279781666790080828032461264526330628600435597306844860626493600748614375634929593357959433885728144895438739347123209894244488916696815412736882303205631448827489913836406568353562429048797122756775123098934698334389039001708365286618359045767989418329047513921534430552530285353298039730939263680870370923205311050992975147696743736122475051765680606720896389029016070880839394086350048557147580715896432928929323267537883055473616068094698679576557303652868597299492073757359300509255735734805785535911273335857778884978471319364954248467177835414110140248995873003785605213771643977076866029605419501571569054109861058234549930731891046607737178814783564785327152364478822300436091195988656607943909386412761387150523638715934904056122331151776639866076627243374796459026154282882305690794928562428165570244378961520974697628066263776682277692638042917791119903894467728164855188628409081500531052569694596047761810590875974210627400019698494546843488887715871341560437303861563042636271745488197255565940656859721673248370419293506088130329598978532069440925920579894269199662590493886419508024758009249735235054990711673131333962135090724979133320496657774323473455958012714338348923890398367987334803641481192584861947934207829704668175938384672425138254796817778298870235233766931885696849280816873377775084961757194651487038192246773876534151239391555840103908275506143530456450396224739454505564955919933884380643161859709825467723551114098740980879989018325498684047556245377556116498073433515707620286623435218694356372473904133661223911291792868360340259958325655187777479435964903594787229332057979065994692343078388020537592127632669054266890023111633869527577395072125033458778251483030817805126217296855029474490088527873062413578972582971885223374474457115936411578972988974834695191226693744276262312181766397110297330489261739607721322196975831428205872094139541497943517151667015456144372141029372463869911189475131367057974597747191345150130710992903312557724169481153748154638122394198538421884076482952348608940856274804285967153264255070389484355519935952370224347881540689246973283121881159777891652174912248298091317085122828672901445954294120423938127769800359222158792404704524008012402296262841686015331554944100132383020813199949505245249551578551529924537518434516325248072659446875848709780843519133968246169148110519215247358901517375772429295101375628142806342047964701441954268359556504533251721587692901738542061405905856149795957871920631588080931778474062805734085674638974468332517821670371779164155619441365454042355489990428622086560911006854088066152046993460821078890355219750283896806376388652000922385811659652353336792843787183991490445120681015481665279445349264399817301312264438011131215868170899445150800272916939300498359118065023950715106280985160777675857795116210142956469324107455349087757040139734896751296381355396858366982691723954440501959385679097912387887453373264380213902419576788081066784947855243653428562342344758213159480181037167284020202912005171026188556294888932898988235211735685451955270339310425710372315198603409691474887072760274493066646182373392477959934320552764316591740335783670980000446166418648941000763580971775261025241093543078808010439057812985860311933846336862494873107420498964771523916238520709502247637320547330217712824507842229454497172190397907430977599806429971551363457777803423882827102733693725610792956901027091426680977263896744237827265274211003009027732701128557903868282093144840185624088843564603223163957712385923559649360063575479722451477989006639714127485229229683042032523794439595018835354757340500607450523918681202614397588545743730414867618760320491419438690195591292428051779952744229709146442145593604845106624780651943187762797884001190482757056384685337769715769921427623583032589468060496677027133715027277183765120421137910556502781842477172065649973688118622798949034979321601491288768257313674313394327802133914805854333611212388034798980361371857421859003372485374884386078042437786059724359170806908209214475742274779470777823140428630602702642570477462747374737115815982601554637636754228765643680342941586547606782461461853375788344312504972653888397102501369954139182280324330822696351105355358272598358261727513061139430517356115291037563953493516505922086772485944226075216131230997484180777481940237377559251600934694428115813377924236145378218182360374885318123979582119915203732894283867658787949589345073380570957162257872908601517956246572484791954964661342694286790032995556570585975778108916110986713687393836170858942559754670273225641507020867364879919750027174155112915185127961020291255550164375819128255917627916028907967594623428968469400974019995192521775612059592137447586519002576664305761228730500767893238424013854298086559915531242839761998892853693089348578546242231962841836200969081286440709489799657327130214131709312888511657130734210709371042357991157357321300854046410837203545653910327838895667628848518271842606590774971869745668880918067111161807230230675453013485333140650815495429786910733745083883418085480979684071517773002125798574905985434782885277150652417062994653208780421680949527478589521785684318063704913501849733382355836071391277462248694922806069423075431486530362061223316396980280187878956551672651178610544666152576471706526511229680379974309343250118390356425364497559105752148632718937834830546792860898554120132810382733624642494882993141980507686941667470257281619970939133145183630520041355538108444264445710733246158667891800895157677111614632254031355662844507110601971954975309423558736600679832135360939093181817064138611711914612713946040734340220276872161237444331759936602561165112795318332953960011670192627667831575681772166620566301532713678581246554915556603708457568417434692334403106620120557586310304757288884460034891685833792318861055836044876000642617682716693489435848659441966397369448235143333390408024606270330117228108884672522507439753336886226691501552898367221213377694273402853611981586877929854726149332016180654915116665509425459880729128159719421435771488672614329283262488534410798777086372865681342798169916453665512890856753380060810798425147579497153307462938850006765707403958569409236152490275587164846060555115241346033186484877399090509624971974532396447238372640311998129325804573504513073643523134543004057491597836992705987067980375755388577505821400171054848456537374439372380072988973671593502883333593850660776868524597981198264805478612443266565004134359926772405564343198192080710206189347193373416293761775811701594452457095129536513259341322519137455623964630299079329861742849622614023179484612372688755382589114787801867773147091428788073542174460941247154633700919379215470691358016818932957411336267170746635956366487858595752059379615121497456511509999794737910964427991914880354795146058585138322455396148848150155190201378835051034637530039025624240723244436783695291033350245353211385685399016860043552971316414685335502518471973802523346915100463307840234275186059867309162488225215423733205603873285848729641542791069970389755068201525891077087613101229929172492586271421657278336490803305399600824780184033475298870369245882117094327951558225941735990548320062396409380657673214712005982581081753532867574672327324541556651034570559438964497311739465295785605489345342764708763676580728814342205369154283525934776051692351347958022517490071182472882416618191256780402889322884121131031635720803875875466124467598919847734038100650369255365656308900795953715145137667510415431768179248100444450376154647629924031253012469280059774535819574876789802884333421552110023757768338652583049739334904043893078599645216952039717102255943145021943105261371974253445831441246402115670304358171090653470945058000213481248788398773921596390077910313990416279317162480496280800264174763049807656621571180590319369830171295369995930305044685723851509162795770375501024132179595331656210567340460372482123754696933062549069893414214296513609919880281543562631239896531270035003274273739950233849566017585260790460988298649474144413352452203874837837455250727065025861583190829619248893779157282475586294251113151901271584334726642663674331866032510801410575541866811208412383431431775817271160480849844269102470246580054512767680521980693240811829618420533600681706966462739936585293067621442683367489221272017364248764524259447584343593850162767270086578501524527990715204859431306257998513012605466888804794441553643994520758661151320785893769357561443095785564644372191199366793520630152889678427286985610013441718446769574983565191237683039421391748247258020901557526981222760203612627308328549746193960270840928311365305415870757197778071514149312820201947195349678531169030147606230064828259787862216133998637595718403997890824446746043733740201169590002984042533368390241339369127227207107480262707439922367540762985359626565634885041280654395833070260913592462658703329810677946669945354897521940800585288490617902360146893878644170479753176826411403493128015099356237618779160830159468880336588896585469084079864232279816914991042797567208648874404495293061596020243178801427244432665474153497936688420616635642308136312834072810932298776320801796896425397439398727203235022755137211171772165735787250267997199858539761222324781534959785782508430489647721483512074710119285772457483620718487395468671658013654714437097904883717235897639171359122073146342933396272501828600125177121189813299789254951661394443055834352047743106923377606748826362210505337885925078824625285677749022773221704083627256053359977461941316985141394901028896457339462980209093140390900544215457546567089563823224115540538715680585885599698680823736906938216738736295858775641632867732025490082546925844120868435242405615773559198466166093266962245820332246310509130323992399070825443562798167079604809473589191558754557142521730553551841872356183020709996034568979971024032106087162151358344405718437718610432790867733955012064300049714187629693416836208751187431310618185146149491359547750237319396249044362167078812673305967101494744815397249703144487865793136166608625645828619454702172958774889270722058300728571563290669423515826678952830341905252792367837203710180700987709503658303334400680055775036337982665444163699115723972913378534501441993234136511932961532063655295031074390887905187660192522679414301695909514370042286681635614446359779326093716874182017715092526606317547077268995548253185919458167083861393652692048341996759452526557486471554018575229920874423791125691356203447967003198958912487582966515918693677208564574607962336189992589111180951895931044222495071635151604158206084549614394884908707033534456849920342566673481820716105202935233183705347274955258600311217875272499333383412228889320582958940591790166633745548027570433753690385043661602043541929758107707585514620585599844683319796673910104166608675993467997870018883217847581993410204723102268191319115197283071133073476878474914675312425830281001623736685130492997827511705285580126397065093514268765562823609491315578680690963156096745848423157338545649846411915951172077245583693277373933479022359281429510646729291453539971790576048979918583847530889173845120896246276095238982715453063305340571515296766749465271408273932267041466536960211582927517584122885989240707349322911981962573127165914067951970558089945927987917709306374066607610075327301085195033924090621951576059715072895175722921567168034919101528492576264727373398604342561640027085635135384396423512829022755438851585401834634594634070742797733900064260327268518128195259971877072454397009636838000535934948254820846293297234673354509235093094482677356883907786565684523952786634095380649591144626848530437548405725852334337116314311699090849862118068867514447137092070908159549295536076656211220227265792686206435931528403692436441591230151085524737340445545417013066093584825060764027791556207059204838438971580307668315922082128479467837002577793434729122231636755076418982205523906677940522154444369917005558334178488143664647243368742312840963239623907359108535923317660268942331613059985234440094990367172027649888309294560267401579299401082121124777707237468818006137400151509605733181881268927769865592866967205713613060457447730258450838105175301163545410674232078749393616260263050984078894720618004208611801610316647277842002125499448258006057273279128088103325416032830436512862578542121239038011680390124267693171278692290817682655118290644021197776102063402314129220201885412179656361191530791749174410447478905600308086184781611509000022542340050857163112369479546374548950253009078885315201609892394800531544464540208761459669206616916466910691493532405749756592671988084449363908215153262416150853093081111901143696326907775600074032477208958764736043858752672656747411426086778876295259244179451785137853785422895620623454502657994561612249557406641323864320230193513083934775687643340226016211211961817229590253145894696262461307804331472421279945529325532797772735594539088164563324934059214137110793381869176154217493418762180720492198061314391436505158553797641487990835239264326778084142479366410396955128608654575219790854451928412085359720604925620197065524065692163163621936539501163795036212447577000461570834979315465055883439770933723204514571575836291629028533443591431002379684533019392597109119335688056853911723766245378975376716372628941894350116896953129314732437004682025253015155567697554157751695503702879287843040431162731602771414839647101182027368537858676536917183118166784307650283502731734199624063196400632139559135681773716696461716447646652429612407099669350884127099056604256789865049380627734254575061857594961662440066651013957446430725031476972938361859003221500716163411039539255129007854737008456119271966591205103330868558611985891388382069283589710164695627223756417362794984002311092804052283443459445452323294796156843167397285513463161871467253601590326308160806944185710812064768586801354803645817686997430786773457949523817846055670876472253965383278374094630559956393534514299726254181376187599967821330266939114678477162605237034969452036883286668112829787587639343919597570024485714054065999985333521839962550506838223295806327766652493360453836302193988318263296339155014921034303918678179740360404301963980842202925753639125981067500842596017809734771276473113451309879822279039275971823825937351271589150048436665271603675949583675285971421605468094844852885478821118124328501257822183697566271905917942736349234886577413207914863684116250166513403753259634700975387129784211862165754684771197049145566725396937295897743243566440461495180787894310067281760092326701862570350981267650337724891275455614348368629225119109580629359369900192054906180185220957240531862864911128657941776330151171177671977125893602181286735057272600641028777351048380240356693560516381187864209148316849708666589501433946599907089083444009876964158731822006662508814822421144321193806929648440203515413937163923891116762003594274290292507172836001314014810240324639962249296339380055463708649207629739610689200535019598743479013149927128361712033412972566077344643487433078698683197259645031780721440675747776057129962698132768141434916468853430879401057144719455486341585111822871733187980553419680468450950742913233350667541482299104381525679832236672961722663119018973960783282835114688463073083475487433803702156289696935755743835076247660051373830932151722059307728663378309295872119769813498510258290646542067526386692454210627605210228381042161370038409867584482265796348311501972227651415214508533945951667526313063957764706935447298598857073060694741532672915502482753731012913649999203014314892574841166574217970422589098254216411521423120358188768014265066574533200551407286946194138972818718187441464917978000024174036014450205265026944900613822517971078787745615937668748515732562123517327018328579837864642050278984280222626962483524146897328203534088722606207140974742149426661914835478548485828132591551312750100296782285059030076281702533368480332571864882449685497065314218178244383891732328480806756879353239745718797959306361824950613565059354385406610378406085795536377247299693681781993958871919814297925789427313049382216370153906103200758547265921045122798381931048737567416320007694248136718413650604974883778264523110594391288815204831074150751239055357611645511955167480509267936153434355542421450720830357965367175782448877478892636475115531001951963012476718322706549433526864041172463205181189294860934032745562851833467004351340984768198078453141280832787718107660622943121437349705787287336071743901163507408218460286439461405475372055806633215084621122950627978061536451164509441229914113597332259216393137754610605579098582258657617713762579853773139284264917309281908375916678179701851479993423873561276114469559333961061133500747390813726789038223505834131300770329901734319981729125751685388777832861139986415259098531302838827690758474082691075436655343468394792575696858732136883576743432896753750123027945107233908434731799873963631712395702551097418045922650246666628455340382532762209962340329612200272267961609099308151726519303873798882446995081069765917562285244937787643179676601794234425499636360752674782745798230132527043837236202447666866271699728982042713121185473338998949883523395098647358463002149614881303102797589283210324268574619849884791951059163952137719807535358484817451668876417809954487502797703746096897743735203374118095956161372950038712739753623824174243708193978718892550287971268378445217057482555456910956962325409280101850003381206296800574243018169277048483639029962164345298037827209700714510658178544587996519724848933278423581094539915789535057222251436573859893352257109244960415788104151247565557585628567483918128802254562675928954835691350746520218094751080876549514720877441747818611087323220388703771970791679784575688816198770453044999996642468641430457529597175714758554270668678227517036525441082578403214035245171331930883598854018694002118515949595693710440709399404307901847497340786978724394218132444275428784531330727905417224761097148344943979473448268033173215409488231626019855640546899878923203384912998296068806020530170944202242529271991460278291407096998627356666457623295321108044183075172177264004947872505034810783292194799531656626630801817833558627540741980027588172674761232566296839086998964890842411647977889700629273968221361358393809213797580108227034959392918498634447970226248071653684935325446835569124405494468331041624512069783406164702951309174775626558310704747429864013354443677996615851193227267445650649377709963649873813888796586682545009738537283674711610848246330731142909765468725128438493727425371307617377101792014778603443208563495810712281512861260821215885928732783635990387287321316843215898799128903584472104279058715544187520012424090717833973465209572898151081579859601016999319407170128785084163029469165146007857227341640050134349364987969063070694467946823090968710228464287569771215810364013829732056514323669461070491266598088798884391045965780986572807705168662943357624827201557908308378688509575130914524324234640071054584208940096338088508307231074119165420621702162259138560136383324983346892167677298399026663990679086557253774118589705092694188244318084242320437832214420875141293428649513613681271614476226676972507103518249783429850237776138269493749696812528728396686823664081305294950847052870286702538503691472004331360451912213762753358526171861394608624247109907461108599870083349904197934099329190515777308577817307964941421937027751267785937748556877856970706440734517722115553183889481476707858064046855849554121204817923910068540342438230919072629395311478787038501763397750433033585685035524271446022190530589003564815211819892577396292638442488958748339904721617312934045449983021707349104232291359250577551482328327976256975752450606478136135454071742184644407673968462879977395942547837719479599874281270055223345504158297390749476811308726868771898003750603071674395218550152688716223405912944837223527541318437263411469787695292312245552591810014655328532298170835619543796249898942232593762797125988204979267163717135675477661210932396596368887558619948724122670687832230547170747885294238206645365547151407011143938755761303063141024432484284534833987587983128530212300045602292338563474469507205826165921978934476115411992282837982754918180463435018351009711309978725700019538018392046754736474757265843069801435799711247227158164975251564079355652536500351388733427319659783242829945868962218743353075807312000246957791926212604762658092547441595122580788784136785645399335812163044628223928901040813925255522516251499932954418916974068980868412369913209436413058661211973711693701555583983289791656630841180801540620383820735319462830509863063211063231835456738871810282200979535766657104645749321070382943942764212004292909156140652158544248484983483035513740882949220837081156800453612656168734023858810273338240502934251508921573499873320309345080811461539799519023867954396193465128680302453009821605929907405086441465704663184183177404489892296647757344607052868527889097052016900245227083484494239931931844260938176883923167567219560226050496982671738416535143649667591904668053714061195175916207690927991134884509261957393071470004169129035084866354696017717510426170347783299104783946665978913239938312424554038436126370247134717697595154447735821977228298605618813194019321618876281124521261048254847609667401674325833122119682720918403430274937807922234093951744879279500390354367751124362125358842329541866725196678109201752251599386117059342370043585445855393364490891481191983619060526829625535518833447471244330259392864990737203035698590374592476573964172715857974739433470957599802731442491000867613509756892959539530318453410414634000879364845114394013280350492013048247454752507055843636263226613152472267744042244555888273097199449985710021239914083284962391189491851691468223803203247313181723793924908882632137096161508738721757543215558027771885097729832223445414673482259413545834729345627656942811074635518776570421586301835414815836610592819473156956912800971841181044568582244832511212393507331235217097553935822187941530280838389140663233508147874569391888501295108354240116233957656105952158917270189216049902935508054070284136801350759997253479489043935974392878031359005514411704267016573559584001656495848748586698710738095356374333682505902176133363705818201454220262222531101566935379652364322088543019136918608421679789905352142462730191390070954962313468557575487375598028091815008052000247908938802437003643136205441185411943681083165383351159849320345622337814999958791349051797758979733486024349396241390930849761387895543277778282238737664227182105955135568856656789379777574584460262455020573918522300681021159346642172139666259081340107113487289192553602893083110908795516792252826310848038002163372805862816364110514490417788140092654119616896494556079431394595066041309041430738225672407749809504206010488745461617830672511994441994022242866976784908952364769439298633729204546476216714366327056970249008078344154800981845836505863639171565067492286712642976306177137522330989489565641496075963865850732192244641815740024971281960325629417795195935961275288891724904770338188225065787815094021334546380870299251498372272439644696026525986262934273299654573424398726514263309602261610598545505278861074720681920198546492766016765918592063815765680617741146926542084070963253971922823572207269109682822606071988967922529061472681246801678355847262824004317111279291399613543618283302874496162882104406796086866586654060213609366225008951217170115843946157395381309121925755681727392638612462125894304412599716886776696063523975098591379363067070350443533709895718761631621043023170785532607388890809760958227942346734525572453589637277023646492201831646426805779332292623171828068531475612979707197435502370271952181402856863377171127232205543630106240023117328518068248036930183444337161820089932134520921543413558638814425944906270289523130789029789646527622495768309880039745494142821255555331844945914835126190958660285559774112607949526509211408043913039737193891722529039794192189919477496995522957476244735340720183787129558840837337847506738313039348124865812118189673477053474673910856679552929814473092559290277054424167699720672489553274607882247036788699852908533004870655578347107197800004481545787209308690091083786281429210105120802355828164202634405167669959889603986465765150797664833508050654841782854053852001625463120841688228399168062359854868753241336825914233319729119590424065919580190705576570207942660616670584113438776331205889144031472816604036343532028731853835325755646398686927492508517992216421234833381207841658146785339751210760013147021591156381607442497863152283557605357473664241730748017275523713500356017113458468277630422616771090345548675338054516480982950676867029604160915607983627510212822001164568657217824716923462187430041510296102402004238459992970099232180508007463637835955971558860476872820789143304157684888154054784895760256687778273286973227722992534893593372694513994851876994724067584520751237010073180682240365459372967195132896741685805636469578346731000162753805192296443666375509608308827560656204050246163663660905217466178698370779066639455633166798249171129178122727379936008359993963937053547028829293114820721777464171179461515269235190625908772172697289796475110587355211364347349336792657271372371994693422051316468547200913273869227442906500966316095479893936701832276126748958550349373210925621196962144359423643783212056576021896797991585131013473645233677741858960846982731256933250704773953384260974850206591008193827026838434647500195299084884048244467734828498921849858798033503755038091125046945507253703284091461856784315179135214336034113593473516681166152688928388562255048898684364278335317859224422006261017600885341308839127070924888773862700576378814418937260143887290107440539169993903554720111023951413893450750571515740806831008592639641790616702634472544136163400925644594906145626586364346865416570410439621195254151522419688376341813095536584668739631075547552473125385384518922514969792365949136559943801146284999123589429523222620750684955799594238431644871261276618914045618204346494098727701564155021097758037884955800659196749962437640701587064845948142301061980297568961049863115640628942568447606737441084194424537028988799219681709192551968937106712337753992141196487954716499922569051728668117420878715486816163272631810738952618813570084019272127971420397099340719074423107694818350041463945680228722289109678733183149894066130737171849741889821727488258019781580661019888955744350458787175725896926764285693967769275727750686964921285350967113495918052476463881050307539615067284895018143209730949810726036463625894696657775915902237561303059789934335496984695359217049355535754721373807746767451013194809243432592126661112059588360552004472711321652204394422697959179673926107526248746050443287548847407724675106087517666010603733892715309837546477350298565376248853860700769454305485387656367611934279915206009311439010008927307164263892871484008040974938155377999499058387100792538366139195872243558187832145221568061091689222739184355119751103576265355517355247425252777590544160849738149648207271353101443716607053982220195615859201809467605365344751333230034473674047720556874913163611484862297016783818395090698931844225959061738866472797908803299246674383062167032033598229696571179943104379090994848469111819808453287127412508064086244662406718153015768040719021299924382612215360654703215888095812803755419041905779490046407321282517845079899346899898825842794042630334411506186556817827918604826792094895830816437238664903635920393042954360744799392770886180995660438464342833807786988044297535407347737362010811025853550483659404895873248377211603064830433371197749205200467394978033267825638869251392584313163259219758404850415218443343822725684723563813689803790218719515694294871115938935320543523032782575216581110682247373220589922014107494265983489599389968338147173898348608127899167232075811170630471093474054025406955553436123045803278411668988536354228727886274747540660325708023294879797306096330872043196654122408106295092243121001202839252880518777231407868168427496133351116284358919320293497070895122107328847544304211757151621725753716845296346072217950518878633502519214565817680821550508031475524659737556955637223928982237389674978410002935991240813090043084756392710809370934774058610643352375578791892032213486603289904925026817686349252799661504846588526017371770947015258434212930639927534426978688602737297954676477454506254807840172266169870303565352285578940684794615654107098157603304254404562705009272574753985116589863909668477510929794037502383795412001569136278194099639002752268602843999896697738139376065801368805430095041552362493975808082020291728577864089783582308614010536701108537539570873941894910334163523245049914241741761886810592942950021320967396649352074610135655813147792634303720620514048193324135205257126496516326397658566610703802582792025080595137938740251646103632199306850400227849805723034098878744843792293464920721837873927866985099058720428304496563318343868593594803978616414946941012841016852264195308076599914882490556952263870841508298505118598018073645044808610151834380809838246473290507486741677321011244884359264061109862002878192281024462278359711107366827628625450295135617489274538085194686257707703454828453281264378985253069098739376997911834480382043399922231244703165550481319839610728984076426231922676732671470530548236383484388502032759652896908192438094712756719082765932917137329431730667254198365411269808204625738322596368920539950395986295279385418444168288120616023250188151568692240975403912658770985305125793218236759815572962227628806256895994380221630573923502547165696647582427988268228760630183331440020759524677822420886424507161611640867522542713282087967574218834225386183912593237682156084553340446322080550291957817635735660038061151632679147969706701459351960608423878838137786663221487990270336542285381447315912601191262336956710902649667535448398624982135385135295774859045304245538441149298661693547911132128102767201316544238504782375433928477049563461118440979490906786279606952045359386872976485998720657965386620190854342830192112407013897708074439362160938768645275122592183686443313309703022916750601054426427657228861775407513309202549688941950052445114224535275070283070038881256231882552745700561563920789835197311389233984748694137386081525102694805307032813207949875735567359084668415640971262828692351323097622870268047210782745245689249550425269345482860891535780262208906863874015311188580286443670161276825155861652056724350761804775995548217138525286855020841943701832852285391114513204460006982295002057444667427370475087626314325556892081510177937174536904576043229983842258959789264836104132644074464998528591241907633928928775861014144739117283546030164622536689398096542670289452996383144793859889410912380883879441339849338115603189921892983901215342198661254071399087066176101190115029107698030188727765811179505217698346936103061416471734010063051125372292025114484410817498246087526136315468749351820117756912598750187970849943899350494396170704492573303497335362209527084041155258850595455545015765850127557744384085764040898560123504197404579657492080892725306947285371372915938166262225070042752327441224931639864479145265115835144934261771760150383789630827107622765228862709744016179532185494092850213062309682675420674305572534883080565211462470291646378893539355420306041286199765045199396263347636903883012154288619419872855037855792017097692769906296563386755355554541592561880237145568009898851758922793163388867740183723865305062591455540273760152521808308897872198687966966772109494464421994436339435240537898108299857912134468141241006951932753869390764022947314753604911080677421062146901633683445598766364513908211322667310580868477729959663882229880766527744592117011010849859503424003064382043478087707713216927020310567610418393869391997923575054152304995585539126913463345547584322632933180921262000991815218287332335084812202355942030163436076237101160929772472014162205094701325592239854626151118040151555955341240548394885562211742911810762314101932239770513231457186768851576645316477272308060267237233946030392993869053077485395976741460942766627181628518747885263815044945158101899446465009722070571998279567343900234806235271697219758771558481041598385500326644277327779585957642018833200611489966984996519755287443189805911843291949604591911135836373305332608570316279529446591060359106663014362884502373620490269381852477619168611331495252573104128564988941846167075958506482175430414405973161287232702121671953966709161991566708173845195217843637841269804688030663884645045033787176976810031254688277269772885472703767122812200328543394779024529660162338676806401285247116786480403633542228613953609103165702949087563746914118851979625986228408965263532273660004409829919734772256123493920548017799849661463914137188354607949747933485703994619000706966097807158435278722304746260027055434163597780500757375788637363710425705483648746241366532326090327373543115756339287139003528707156912524423208257783787557106466103895696606972029304872061570888289550818954386385330024139251495568787257336611552607152834459460297590876332725513374715984482304660133492561284420886857861925951632663130831285087915628858533791209281206115970160902354460886085543233366874953792392522935657740647956523753431342191354524488142805695964068983891527950149605885982250606794639557020209543626661987986548592450674414788283415268654731341341457534870790113033800041174981973123042693588023980788956731134624523010143673020399460454231261611498996836740050591211712146245527892283108917363128669575351412644949970154330744716351339150794587131102151442017447224240032274908866617421290579836131915548249574193979580327080523256437492415700503931971138275675631030364468372903560096664353651074284431093146227546355612591241993069542551201401813499486480767869104370822920732490260850136183151770584644981177322773261082888862860711790759727903765704391647125366016787328025783853503187738529636319185283118352060547770845361305060556469110393891774986014578939424669905342920397061829574945277647391125008655255825164028812171763239307650094689942697397078670982514152970128043124619314849945940086169335445382483828917229540568143357144338418033072061281782741925519700352074643279669388055725049344043948350310073537138197130215562606969848450689549463582003996925720611869281301076545494486923600486441829056535139628577039132502411543495716163700009101799127749541183194310619879469854354162672269801946587950779799355279801673482166129147014217361591726356981685523516145647819178757654637045811433996777218446091532481366063686720967771441903779838830878194071599546567172117305355263705219150627209330639951707325826923367891837999183588895473650399071177896534472906142665680517838752739987697759536517795320320805889121352450931751359884829517867943907241949654979944660331249505186586146178548172109284228591640924548934976002692458524177646972085415014468537242842641976108950399300109941694889557037096992888426671379341353026476542377228028017777002597045199920384282470028532869898576393122551400613228909291600990769749427561293236792745494150561260087863074069183088783235186475967924081173116502789690290109409388447341564221558625203151679273515604673487688916527912439884976913689705089794037453087880316575756018594827574743485780891004892047296631814446644836067958230705348251458271596868532054903947555418769029712282580471242305268003564072962293119756927802940856204934753541046421874267133909297039694567372320176604775313793979686119392908417022772609289204107024587600251278111438596752836698072573382627209709269387310659500346982413495031854108657721063934589191956045855659775576368760024206141036361897792826664391161147699179600755451210040411350684355070382663185501414002751380608885605326356689750958826956196614550233375232966575802180724621426666147574432481743882842096857959145834811982630834854607525747160525828349379252011788131948478329526482343673322724785273212886467274717556124260638364052033044742767999720936120385580652692375322246627867710738611826775361222924137918267972992845365776463456504268194070483550194130333383132737711185641190878941626659237074419067515949455978672796257675312297452137342776108220993887683342189519829007839740359682936233600970039552956790781691605161988927202241312055736076745627255813360511596084888123649349629168835475222519190356325847231053234239413519262228314814569268632227967787567656707825585133907851447086227619766755009230951592001662322153839817786460301917419092906442671541550777719952699595167149495458985386496220860807550100143131137536362081360770288844995406893205278136907445106333706000664579899576768683751209530598943504937064140293783631103231866599057014542832580942318871339315130106862622856918375061800263432161331902571193907678775798050733788863373518455721463211918333064842463627693901195887118217689075966918623334773230607172606634694832447355040616166139135018163345184743754712158179460428481179948806709338052056158568302817049282710410845898319535323410012731062220719628542379971957777624810798123044328676774262053761894435128816472319084417901080744957351362341533939051385812744808145617367957115309508013587977794416613102040120929262896866422281424939818472999684228622271004066354498986871566794887624712154761806956260362770594201933903714807776518939402146671699204976345850008126797930402810995869732287630480976054926514235789065992057819590935720622095785510281716675910153535463131920034296755700652663406718190168631773718206917196735447053533895229341855306133587902663415707337884437687038059385616664784849589655050962108263652115257992862234104793986982345360013417593989923087954913530289038759523900587488622052345468142350453647157668391783521829608913333203598897172163126200415076051960416349985102342454684183364079743939346858975164572521796646119219440906134583385767426402379560923027435102637740683681612833505843474500043348716345312834688527965156989187934196960355136712200614124386464279955329851311821975139598256639837939522088049974498515237570785139722708654078370409047110597553344123943679336881878694389379894862551943830867073149993619076164296326940650360971912146003609910141879078640505527301480812078272412416994412614612487489516042568190617449353004476197017802425323055490148365138833208247327193272193620356810565748124183697154353332798106959531589117839676115378079467748278725202863854904027326747439732252425334029368839241408921698743656064370076103413313689981227471203953632315617091465245905874237276349527558088523126663918754991346530339018042047959217485983109097394470804130995866333206102966765246832470249490619002951572683084537630543614593558794039733824353442510321995607378503291908740417870166385400469186139302004677574171496062884399060260362134266818277524887470805147227181099805705148598563413392547981355131160596673687340996044692176135969390712785226028716942207590171438923083691318737219418025079186764933368011818226108708355969107594467670399611996275150347269874167301677787506817816715206695185616660712004986903534485685896637200188213501805104976175732000488938276679588241739143318421173264908907251404707813646869129294761955815982900956286921253300163234254320240662587489261663131294363714436278420797355807731976248392702401569546649172558294323792208541772937166792701320080671628037546815512948380877773977794407469896399316683021816647613718435199356460088638449497399937003788184858227151403823604259394298717535386560431580129449281949558595115449181459976548316688247474992595693613381356171728850533485135545257173917727180766809569359801916420615871100610991337775447641116403343523601384954976800107385934115908845067650843292439128911190776881920690957842775780875756243103361420087695752523585304772912824377040801067859872497020321270810590988913812803688548968976283800355638566499403474117584009330143389672669810452574705072517538250728336062588745106255347648228365427093048876096804836170247049365281994477902672426722090229046705756079326340016288413325393088523079902074815091077567010393037530980065065853125367698115637592611167471706684666777414362851309474407326952829521587635910549927076562741353107268110440893381219748817453112430009348521956836805367577726434299822038603623169235411455488018602568274549763186326555081417045141681307304287559820190263197403346970045644714925026993664275565668205162958306011065115627400262542699686380476922558261352083910479522623787118548380010097290045800460495131820818687473936720933006793755083489591945848165555377722767047111643849661945215950658033148615744458133033499682315239632244403975866540081611370421467442269868932030938880688473463146978719836812075456330118082456531180091247536335382620750380206329602377307418936353276314947162716364538620294884536615684948543664461092499798286594651204456148021212498315173617369802299736577204273713966722173328889218709463934755742931596193651905068953392108878708811566821321662691432285970369172598104191303576700381714323137616123722089314343899321201774124931859763877610860517404712594756301243296138872502161517898590776595741579625516587656294756652913367990225772838133549315272748218531632489660505228427687135582446385462260102841780714030419845267128507500091447844932685779685484103128020170397287006966467951630874260468844393866819882301515556694165107027059333349754554060346731096777983909167326636744396958078827758543710171529088470049631441835395190565833058777839344060351095795879754975399562391831850150794149270624483760872512229075846255655348929352066018225950012526902681873280749824272597075280149085603944001710540179774995964121773393726566507069705120099424491343246366906883954315988857434432831091908970681607790448418791929895203392288221800405654609112518147037416776296615746664946984226461213632839141995576578005360655641714009688521006908037762564746205009122884345803819842759629839993418918364395918286159301155966634681423482344200468596541357864596872334984976882104910532567339399231197147793213411582239263455004941024094170685313108227311465362798694002198036375501456570235920402725082589411254103127639808254521304109154364836839655222634801799805912244037828203022482671073593077090986391072722495042345240120244158525052822555005163945297221829305061917180121480341224907780472582643115414355505215022933104941955371481023056778152445535320217504266356462963310671653367133667370608219410467864430534068102994221784636160445575956481572389489879706481048858957835861811660492171628828369416509581712302575390033066519745477657601126645703350973769123478470654595807147388002951723671475111541112793105107017409656411047780966174321637072053559793113925377454559885580743960704086226212787008400711263486768085043007968794366609342290808668470301199685477468989499576794845437020926863311431686485570127187068665864638066731650865962528379492855634613994455929353645602363688578492077516315911553792593130637166387173431467922988772685620297608245742433889541378670308327996498451992273206361195649725957657583555270913295430943129723261128380446614984718268275204454696049270933859127269606130357944990611799994516100891975118386069673526050202690672278468935761905766451222207456464583094566754191037895735518019279707695437673615651556376791532350075270187269706219236327074750759833529351464950442543246154805887526196752738206646487187134605940729948999603479614599176081313348653372642868880092026690233310090503727662777815835531949512814642201272459573884039874274724967184727320313766553969018550853532463996415884516211156068955978159075202942396807303310030786408527820602442964921768232109338788487332036785157404458294596326624154850453438456791669686210429063997623074403114018394504545029731414759207600019588034493276650019166709101528285408904779741932941419484390614678135294760490841901966102025562228012480113722287413844075225505920935627332418582565326907362684034054607067069852478749354081346409187940707642753830050801610762123202634068797814027267164189869241881803223996033554185399850227350627248596531682111523229769717951036319086707375716306098079448253154037567219515117416379066760117479250043376374526105271216602114824970291882821417674301369018063442240142486653992433354430794924699298085183982470492990610563664426669341840659564124643517557439611693691648987233249785609789435599776085859196947369603848298716504967407457855448293456294759599341106911105395981039776813054240848220046641510629502034811322131560336409006531762776338702251788025066680856836554531177662448814791088216002467923316269477381360077048157177843289048867584543946889918561772924893214276825115035641240486440676629451391173829706074974402469256540582152268513335852541037388546743336831521578172354666001614333662653988314452228891525432868631476291545638405824248625987231522360274007741211337447627782035062459411863091836946754212132133099532248041632371978823590798043462527905625327645884629365814113395232768790089251497590369950190523876899298212212796477572411903180448648378705597270579990133388139863006697885794803927677585397643650547218476197984650222108101951126510032790807841189626509444954787586913542575436936007120340693794124629088577254696806161545414058267453287324274016868625546797129247583496838759546184833658172696226916366660116752411665502635941474277703894815748130297444974121083548853689827042840224804420763931999342793735147974115475691365700581759806174120222947671703020338758243534439221657043574038916433963762385043199201283796095434622476602708967646898339413461015718353571852220712872470703653794745272383720052641716735171615999085505407822285535266340870994690391639918015641951533237347406394361345463170888699643752734856243846314645878533302277436274737603611837029536789590927775998485657664147358126598192323571937712115519351124438440795197483761192236842806613793367681616182070862375595474708485477468496859723124765748594306632566853922956262105855698328363341433407852378597997531668383577738886426461269362750026910798179685528172578103600423701516738135794355493952507717977901479055818434515934131460614513690594101190876483105802662416170282094103251028571325108522385216186715497210994151113540791984143960636900020121940954120203760650243793932533214464981138565367845112266781819262952714027947373988426325108783670099057287264106560052390911957608523582827861614479236381253261613164948755132162779094555133341898335764615335526287046157969697499020420919844928188874649353400552083561556517930476506067211378165820842545902936093895466017191167963966287364826846400334166403941339588121339013109495685361687254401759627941609277072807544703070955897108618018461773190554840878134870339564065159629950788071739943399685325376219864836477223586654961143694878264415876286288650092911862072858274430625915279171175211990903478225063735822762196684759023711873027253826482886737979529736700693565792032637479568314568733834408669738801758166248766825211747192154457640896060558075412447645078754121031937913501302697438202913984470372714227670059824171183697657171279373985153358525609898077846395014692482013733785082834683575559564787298603473832394235895669694429127678670714222649840528206645867757182945418814496488094686993210705192573497481138735469638954439412532743618601660756156630386013921566376572844005029084042220186867165884404279703965273586138516688069583207092622166237088858738292561082345138670152126331674545763469448270961905671648965321650527721075405543381333131779587033227394698835002215648621272089749071522415330779540249797343060018040437585437075304144670118314763523881807607573822276616060354033042112496183720565857827729103049731058431128358764378950266275044040696665924057054040444949111209163420045901699670372825528316048399898881484959670680985185249722575150169722575125172761101414213688080770554098573972016020018872510895351372947948041931314963185149343113227595037284206211490296632937677534790601918935791075165662610029891102879171921780316350693687430922996662233450981883438902118300746041952155467242244745962067560636211341592270685286831294012995789878723523104473507875416650807838131652275712630674598281620018026576217344480975881648570511679882352206780379854090684620216502593757444830054043628188250802504846026538168132155641139512335262536752907870142734405672099622023282842312101097178238089599054532441729239721556999575137125288740507974341365675391960872711283753743777014211536655486405290903866552580537771436710109300358053436148509228760146518974409105898969219844713798864745296330586255521621779853945021947121064568326638002936747096126642147742747316534056450852873720442620743801967021002893458008899172180425115893955226708473373571472365447810574341636396592301350172946000867782946199697277231831289081964542747347250487911354763582303620374419604792957602201033794426081715827908867890496833417152241275038244169216023763498275930610749956434030900878292218431364264622685360864270246177233794015516811360064322279577368481942221630198280728620062504527606542825465418054160509583392836981986995159548211775454891107287287183976199635613948813728596124308851346688417061624579591013714648967384565585306596718466291538628647906868185080406609388694942337115093156364077545148868020002554054933979628235925744631928864300979237674742345332803198627165098875089835385353560808619305205529857188466304286394227823728377454416155354131851286856304332536066358668507752346182476359564749406196364052746596805563038111923538189916156645473679438006377370981178807090077664420810779673172862120840621043598763630242666353683466756643030736044329968151620486288127756111006781082506561286905403176699409710606380988530827954701934289951522761286402672057757542818039294059567839269629449501374843025072716559773505990584960289081479624570387465740974009171784350663055468278131557498339889516153796104171884834145417490910954281187203330350515378467322622628812081002224416330726185879723697501464430284878052873514960201840670366334109456813490925650039951047117075881795819390762955462770689137071225635827165678905767077753770134286529587231578453953996935280174318753697360640308517905314736516685523737944780483222949808199375372566613778459849171256367991231284494015693961324087423079590262920900692751492726402782904489848854467332310999205096692480891413424929847254992891874823847427929225440419122814310103693262393196039630524603138466635581453266017512591391116336456902733976747353812287643256784435690700454755366948591935410638494731910809262310296682769252901631029296340852270301406618692451659289919684382787631511945762370950662123098119441437790150774648023251964407646118301166322884349508799034872336349994616079578408133646361536184537138026131290837295752099423728838938499544812582707512287024259812743024611342331209399047697152072239268631260279327092361011096997939643796275927382602439293242062427950019873023868650468329223015375836413083826970075847664957023139504665639860012734353398005104363918531847286538027553489020608858913010320749658007441483014291200371647474332489109658079211079627359357323314283792449774673088595175044060810237902055691092297448545317763863343131152401255566356518700840311605573134569246683908788022771409347028163159189743318533910468899110630341073934258422358085031881525936219293848116534628886227252158540604920280772550797944655664116900708346566601749683229036424363659029373151726778495140833567694956548689764661729555411679277272299315306893978042694317853036936612529320799389037520102866562143095455847155397096304808858142850704259518735150168939734959691097452397543831434365188520507438572127143578612524530756609437785771035587022620391423450913121961293311087697144421518043470954213974651359860144071916965048669678679941004082738593922639463621733784788174105734649921443785932256703388532551851285577426808155122799410122069967979750260565586534576777247820929298334334384834004796245520244110586845459883648424545466883894737837377823397719132444851369132528153026544333728939456513278064432538028353200887552805909790786068930624209969429137677417360096749072525057973855468483003758318196891632813236724683807717778324376819459179537958738181899049702124971051909768225110053790887046297276008981340849995721898759562502455972076226264393192834083076585623779668371750438863200320255845834064812594804565490903286854050619848693943946926319726994374883764057120014435085160061918161230815392397889634108602422050052752987864830387417793645983884157581406869336094057737227345205352360015565758020740279379284722842489570725741923666585327272245756594805767349438686597522196378413643885245451404938781491028642512835608075253191486407964470990414340242610892462905561839463155759162179744688392947858740483718266218696058143056810261033457653873677106459175785158469533425141278445610976815200552363547947391540625423308676676362633967090765312052849737557061712124474733771912159495309743336401665602531122766558076970010627629092620488700938375410922002491511799394013371654749862338611776476508509966960061199839604292168145993500101541168853580252227544088102342214282267837379918887300922247857442383748999660453797243025597827397652833481871018786542300296753456294162745099708959884519415354750764829139424599840970357171671899622165448641855675913946901250940633398908777607155688461977594795883513703498670404350136271485538047281347334747091422555375146906187476940151562264984054614766666231371010676337342836064485709731455074606813246693943234938059220850006535067946308952479911627761797479385912304988932537941695462095954381786632436841947244549970214375368899126074312127678923380752612341980645585084447544862342448445870188736534883713177536779086310780822512794162353352185284039529136126729791668051754094799111000007297732723692812830899381573367016239742484112329386874540414166608887978154835852257123057470051190409664956350457300000079239558209835533252214306970246605866831569903491101292448666409068192410502782423996930778818291065643603561376850424487629387667458028250098185399465053755030331937649793630957184711734493940504042782992915100320263563231911240797104781823853255654968028260152673740886650743117140093143501170653430372696907126756079940563806496836966414129666549329575763113691575463298117062270236278066711205296095284486190483965110052468572510986338180500011345620356612799503002632568871293334176850390189614363957077711096991966788698461913919279536442275349483524741051516495327684612563958920685603748731651848594149527461121775441748427118360161098318021721792609190524641405588994199912305217534320660927595749457254154397844964851966804100171965545777659533502447955851885009693720227468298055337762532477902777183047834050571273138359855206942565581547822558858386881642185462106948760557497585786629184522740751630919990525597112561850307764398878521091058773155072277969013115595847267142278731861167393568501024961460960180762668240483223190332919622631572363591756705548507973323696295416040564499773690113070995928952311788231352796465916024138714434124048929637677941455647253730708375657266386591086323613478563084271354969570777079456454764866228847118961776588673433986449059599921223802940462946493585860686167132735404551506699126089273372519516380818197919487700619302366444381647372171042580427428894266433068401446458942893214351282173949469947429440501336516745951336171758639239606591660939947798349498637903493500131998432458887229427206253164822659333049322473739004672461648556897679535102783756086419284787484134142473166865931482096160749914569479096611109244273843451701598081616159549623177288504246466822978408666014431677127961091428024975757368558605815675151068966554710914378001123927524260720228162590861496508506211775362818231042960289713383696937467741886762092504261761098945301341928883167249456750729338715595387199517218985655344750054860642991848007141905522164463626560488294374413729695948776335008862465487963166017277830857321656813305831580549068840019677784935981097151933191507382567900566898151706898755709856269725605583276801578318204944192460320288873544033204976034721834365209457401905599176763833769069416959210237218325218818034935554027244174392595309220674431573049350713268216416120948588968827138792775896042241984063645362087453125998847807581816908690070341718281044126492514318888172913967535478026629284117286627021144526288195538786871801211413214350988658586365006647753686737309569813976329913280964021449722731199729252828972196077562411592977177046398159709318764860423772502584021491471499161624404923520801068503169188128466405474184919049745003595885478583405959107225091964404583899551650891333305496996837134319580895526375255069298178234351881021466290497116628309899010298290746805191703498259170212880261124909419945145683392774702815721115981040410491273868876497165277288553285707351628676598504524908422001410686717320888001856351384470245075640892089607228680204989718893338805616586343211298221342116488167630296782207043718802025518776261600479850678632443407538899492686632116279681693898544548675504522085723473410338050122756054512968244391501494082416933574911748943594572815064783199237845167683795618006982868408916725804138653594751170225033170697291965838395473902066418839518358943603622542375654116311903109538828980879189240099203867553807626965955889060946176008275312099532046662990781450857520185124445277150941500974414696140724530516858296416452468942100053615778568886174045788901341677251781113971287643195016446164199419553297541694478551287837728834854159421331770577539088095655797511597239588443341891803430141851577510938251081919514860419986726687519854492470210835037368336168653603155839780917572005066646942364174886407293993282702565477592651200570223146896328120875758922060595432726714264695047848670143777085331869510791999597852193916104461191518892688583748244309505214754348912352122075987989168040892575965372163220245135283722534412753698843710468266450553768690477387308777683826936558800383105702793583192378187697827148197938881639225255127939994783121727699885436622461415386577809986332051899068160309072501936414219617312962559021217518325946768055468710049586970453936335249819961464841406433216736232679565848977469911862465584762381797036577929639726449846011393040995094492210250883382987188967871666774556686054308600474557977362051245114557241395824368084204061630758146334802580332663436672737596249879936153479133035586865849619930283747487833991042902718245817870888541540092559132586529578667015244811118199862642185285013080065482096509720965183341075855149160797782965849716774834097183163315120581735606887913990023097357909599209321298279743184574069861346564764801564670446084941667713090725553929405205559324237087639418815481526222257303246654482364895586544483631399148052455417289216617476656551055349577191277521011386633715667088987744119362682490912877760897054059221650289028974340826973288769543243945417274791006239048603199277460300756448830980089751992695517378315066894732827933981981673079816502967836890789686389550875669494780232565287231882648781690690320703546273988455159463379306568199005265976757329997946319118192984800590177562269810166914665015695830570601988198046035155226642896664117440893631295876101225162747150126405438787115788956221859907235268063009472951716394629059531209178619116277839252140424111964620294615872543526886467129565759809304462680017663765340301517558443179584332007968599069323934639383151913117303613197661209269375609011256052824827835089536760188758989535391119535034827477996772348986392014195127459432684796940091159006771818302065520419138578074360418943820355937910276145674082817683723861720781681946228548121352153116946441124152314156246167301044930068011473739355449523692795212742309559099347639748626684212921910783475280016445188316343161909988629166742305597403677080768526566187414180534294378010771913509079086039035640000057697684454195480817636624803916261513612188028409315754883679811206378566887712399320734660062979929464711877077255049934867639505769717235458092702983599161162199078441417278056431335547065314907325863587999638174043586907213254116172632021769253717989780746987338814099735775288358551458705466809922509023298792014692568887622547727274471351766739180303311497888458487291846207360403078823416833448534054045935600862243279416571078682714075437457639265956921951668908097198434713896137926911251127819368606078360404145308797001567200003317101547800776609353598620604176084508077987089412979473860789652610055526854905583059692454487001502669499552301076888606928050823755346022404240586807997595905182025396923170993323293461974266367567699520723658662919094852902662300953431671966096171927797079977939228670830927066907541431649595885554124499516959160277463095161268280271634872521567794828173796608959309250678055032305556202743860311721743674305453594904632370511599485907328580003237037876188687666538399432938569223379111742253602557009329395762686307194795591505402178564890068625716474147937055764870527561662347924653373962634838743184923640486585367077546970509246892496037510604128079764518259490585131185936197341704495180601858338251185777253373125986573257833798304271089932050856197952408446107548734796548763148135904451603634162889136919975169592240611484334668458942360415481229150376406518173816603983731858265331429099450884607051752270477765332091569497060099594951179926366733576259407516293816472025607283566013107709270853648327169153806442279131621130119888433064736491799484883161967291803832581561041244872019637422959365893515799859689127272371163029906591256810463169234841693829407277130587962644298757701857951665622455168227048987164548803100172905356741617939752212399541079251641035786611821916028762338818839157601202395366004318988362009812675885684291378636595137090536989129353175862746374675419844583543940764847235165062057595163948792961561014530103018043080496577387143909905773428032612000401936620094693572684572318149031723429891222814189781588615415380316025383800611839025138058141104402366258954158275396012371006091052706606087415633160626740395771877633270041460082102776864488206287970249279447443634201507574866683493600580047616758688928638206552589655906269626162464998679252410479391572704212770424714185963452584114660911758435527075716320536837162462778276884624065046994749697879775225452235830301181467953575550026955017043447877654265417519684940275343951688379441340755062698428239566277518093740662139082218690130181625086033482213183726836579901399698087560206793632067636949079981745611173780434160387997773798459619848771224584710729617106158035721328497775360941282195718207390577330499605158780284732439474848424906399755096431907076736001326782627708030538639653040060569643975947576640429321538959821563516266879641962043726414032399526927131671185872044174572810159187943282290438820134897812193320782184548096085353478508069240827980563328770208593115104881399380947680034204735173474352245916908752195465739290310214322365369184346372638266762275339972083999111188971267870947618036526623818874092657811667075185109414659366387483185055033586091716693808459016231924011219237122497361541196306441874627824123141814970567417581741279807264009759011687636364112486735799983092941872222428287380615123588498929627554220704115965536142417101725574190091189903059273860825464543529009487138746806325065821180948981015817456267422628483059604210524551797966742626676515822588106727732058533856577681066780981816491162617922756316556424785788870196681126793499206626042602082080548058621192345830606933601755533689608948058310531099817018981787605284224675581271664333592067974117891181142948310988896188293557156895764411565836072297223445234554523052039594470044340654297220618061572143892251926617184315103270172724847808463768896083700972314979597614178203725436620661102236269853122548122479724940063431762598701780688925090075836914019336868929836904377243407525761903034864137361994312241465042564802390933492448981507390333198344502992412152008417550840163277313408551746522631310675719171004228801989061522096338564231675774981507884276209149696126901338516552266596207044471850369547442928461799628281423534331792857016160340145794797911490089527073166897344693102678417838697021821576598676913907579035132317521422699316696933523767534638157120422417920773359979863272965591400210788239036775408217284097102787325118928975879005716833018628127557090724897851040523626614059593297242490977343312987779415516159152804217694554749048250421902141481593044107309896663765246051829471014973540282310968636869169821623138379995425330278330763785200899997964190335452478764221778824789844467094337579080805643581128132836963258185714674272754683058019529018113216833351941854050629858157206241156247397746281668793913690464589297366037289301241008516356659371062667348190275086144225477968772475009881818368369476257966961759328244054802332982602791586475757251023843612776167224300941980068357182586640604183932403279753009173087432397780253804574283424191241545989332652228953750522369171092886537483249234454722055037503086539938525412061012475696503505341372416873034918073847760077311530092855247789572372308664197098864873909436578306983888385952637079852554854135402977996779795893893795238127479488158974098141512214642454925678937268142839577420355514497567462071141806031869816285022551612750207565994939668641739079885827145354594530554441065007047809397870237124451007867548262715210575548002519302923794699699262195899509959775280396247969268714646673960878247082394751107646890634054725251001206357425703082824056657961462035496565857808477578025201149019530340793088088761362435709214539581029707541984116622382197330647718172931306005021748456968323602606878621133923734546816705260282571744610186333980172584944629225513914763756220820829787004085526868171753224844867673836581504513620413074174116768175373204768937189289881028291479613490949023872988177206992041405729078510479859057133658706798856778456387602386071857444382987438411123818454488664271954879349846962540729088393509626667789463379884854565179836300698676463369063028514884804080540191329910629213174786105264447941687694983092104669140288972139202431985927600603594394822822868706832915486046171704874589844579698009273677903052713976381791834882759690981760135990660391056227997387588984723578043510391712545947825109478238320540490221925032409238795141160656317537233478460559625439714210481187314341634762621999009744224919295604538828661607216108386561540826151774797992585994438716484283744072096330809506102892974629008996179383478284474498963016684256984839023330654487370076946475705407927139944445072493253133638579946365898330472380591261558213913265871301438355098400555160845040338744905414269483640219011393970029433019355874947051150386518310018977775631899821258811422919098640949290275214876969974237382057031336000291313821479555772025183160207264824422131890268264835324239033640988251995455692038784760721369011254153222008190668128211127144795504256983004888177353411894079785497534367670793945935455263375572935598982829303860470671734416604574505321946357994614387132743531108546422167639503783643821314178119941712430249274645240774006129867586352695412615438016512355020345860264842816151939934860985145758792622279799334637298611046700351747450897818097608617241697865733114511508766767214971542993252129281959431694154027169250923963713692118473218494474176111496936888340869886068445846662992480820274288557702985681902488533907758231051190937950443848235701585615240875438749189883918890095452213694073914596973401396099542443417934526671144882474156212969914797759006797425511129846596848449098133952664225994239749672561424325904874203525290906389987468511960190861908102602416711513535968128564744190671748417687766342610635118269070410710351463323282237203937489172056850896542192727544029683000552600892450022692768825449733422849060445113099624739960744988193276388826352537154115325271061635100368939322309981704396016054094309841076592803376028539441920581227703809498104095406600518479726767641697247597089648837355624229920402201693831910608376161632574257869294934744716107103532978648963338785676738589898786202687390274881791950138870196660780202801273238236083711892812187804582353251458452309537428247020067560884383071037035085755281131640524703989162320683768237357375925636603997108614679620026941070896541750254048174155413726516769600754204458436389116587606174339326478599356919401517427274098465975561460603883643763146676743763932947374959249858441676932774982407991962220131757591465692178117525795339317443738412084188746613759509841018498461579311840172125709606774068861263462493833968080195229486172228239974835156668767013966660748859272361106157521741846484893755005717166211116884989167511239312632971778735057640995453313657655135237362031698962567065758597094043683069519703618675294695631406232624478364234273535284755774033378100950467423578549377762077476563650385620335843765109091869187783291188982391298339315336519697013880882620755845187796568200031579348631022495440148596032663244883505116589075785554972406335800973324730164714041736609463171068393335988351640730457705243772228608464966563798173329603248558337654486528401892533741357928007654417577024073280158155293251716582377885726583035546020676746696895700474539692614966865573962396698503471708379908933192448706000344453881526701997014526296235646333810598754635700412174483303105906946513764633166481115416966602893276090175759762695109902469639925254828969492543143438838034170386814171802090408564449707124046254439513637915766580681140131047578983276164851170537283526709360352983772367852625702477565532585202798554387779784018961658965404102510692108110803273136336611316024436176529032783043881135339450099562227364797065962001876462018574952906307933709199947724050136760870983029997607730760682588851456013316169927880851018460594590831217222368258950339631098938201274845938578320019469570536219423725509484158448978226026789478333247307943904513479279195432816229459850255295313269967190949104549887916166175695145981995322111920004679639288725593102196203533342583839949025210810187761285989767693413657990485900213943574043673598043392293823134330250857415502611992191372958841739797351831261769798173986004820986796728204693644008315113918368945785155301831329359544959367428416296418699336578143535612147537981320905889183331259086088320181232381218057281662622911136860330657106018438214802429764719655173536347466397181114179780568705382635867284679144720679841186037559110500918806888766157859950982860909072566538180222145806567412825492705917292880345310328781043910344176235906882898633604653762223242326511368029383887451392348278482810611100299153782079219402075512023666652584300061861093602292093887473189893075389739814594312519130330171903321962103619213637028083168265824616794693303889591289829657143446967489811625919175726933390272282010893093847812093564216921025761864720022139127165969495538639166849623665538582982652655470441844414214896055610479139710801589499910358936698687036572567951982955724625252345525454773758523114362654004489558268714560000417733988534503858872465495413265427511611125724863085738729862229957456542013819486766463853354094638728903197628788730683228513022108406301175019998710728395382870093514758141833475251283453930775177940614701021063595462223424816787327108897246290931759976240561618128305336284580052745239965722187268299597633780485746130943717964980534623240165029218921584592170243332894225665067594761964296539689854202703623297603997168759000587264626538081998515157976759791154822543168045694044523125191496104209430253428651125494769957222647951198147497739621503267048116110501040524357236441749224607574457918887115368630173511275405531589323552649249629993766549855757775712930039992940208034027636456491369374261404438048009327131698445723714372478417829831177973270964713517372540128285057568114467383684761108698182364196642517033351015563699568245964966010791313317034482214859075596175923209561317366276128221128722418611969229324012439740992987823937868676138837765498586410192343907739138155949815196923792473888528485916643549560396968352031124502106857690218253119546460045169759058647533975122341606923622811812745624347487543301355964644597387619847636645122011342900660464345155170989922985782318156691510828056872251744979159430202913946104871493748999055252650974148702320697031574994697644396361724582132499635962183430186615823522548812931799624776397773991724302949017753630391014586359679012301209207475026389184083074842413797210415164088981644294324170764274662102152629685172492092289135066789766232658969969426146771648034573733207475325510570693342552099996704312018680636598107877379323217330142922297603979938626066084589403662535628234616851811171322555942401390094404125202912160443229813791169768268362824930597875995805491152228886232792306686587193527046235458213392519289350294212287255195842034000200999852035726993408196380516473697641279232696062597398693490843056743761544897450850466013378888753682295716557497944840841956648838262579370324089595568497297673977425558625047077322136673324638721370191111811137905540400705619289322593903672463577202734623709587269923746095375898723545938180338115699241341981659926613504071598760803395434821621438016856657280148607263329294331478575943118251461291660889724079286850260518162862944566494482588433438765262658729043609442325879336469503368237256252393345667533960061271227433497970236897915004111506039332699899047115227896777689209211991319112672475791722543069469719112192153865498881478622751401090858203721388837966162766517244129797331677105032951079864400435966875155939919632314001847485075373161040409112279805464020047331468236662639414249557944584192070705944419548738853971280151677489335057830203379365194122292066996396048670154989585369252358689199896721420114853541765257069071749630823619014159203481723214542759878429577311469523634297772313470565254110004338684572233890307838462151642936850870053633572057054598081512536214318863613832686507607561253075264733764703237183254965028316018138954451931556674934825203925581873696828877922602400070117180340299557385072306091435804223418259427065065446291204517472162117138582467405062892453594037966750787649362245428821676294985408442839527005093130281794034311644293818830958144454563722735019209775121580137088318958293946932375312620353010053713354182926949965648361217260124023456281272971524045664457114613194694258037866420768533636148160081080756303487554209859016678504066849464297534664661328820801825443484143529823298494093162104244171340902242522316527689549994182758925893134958325256127321227300105988207107243867411635774893865995883237628029208343935853455240218685658503385884814562676332039134604590789054976446952217841941131266796298746154997979406892810523065893621055286511487515904077349097247030859242113391994617462635215407184079394509643459163963558075530261268613837788151540128784680490467902570241913873736276974946497806532030407399391373191595724774742871981396634705065603958907223032004154181884841544756675510280270259701366677226368472358516877304823046141776403504418435550423076222255536384653251095045093499362253249376515488759012709725677135681771905591976047267519623238196248613346173738755964465640816126910345231094912001921431825833177257388408293931064035218799668202541353266409310987403247097453139125819801745945220027694869877495778430562371130494095308136625101040812583692437763290588571670969981036166142932248963160224576500214267848409653240343743313466777377366546015435760288066225273082464397016603962272576956164086599187216016901647711776403150803539922260755833229438501529797392407350958348955049018473631616561411646197944728609434062181324989865490425893593002182061807873699224213337292352381140796492461406364806435008221773490610800527734554246221833697738934892640098475202933557536900722969982958977501545240297657894394360474905142724635606875983737895091994631479898298651012514285672487770154988212475544715510213560311011706026367019714179222084415621259119705996660990746085626483649082551130316381808868725274962948995908497634186685873640636943152444575747713803178586556303963132310091589746340323630479023054929410651871759162727399352581538739877773674497682951662008799843172464440946269063470686168305120358687179335542377777449613673387156559983509073219106675139993446372650751717856183747938348812880450833843066990573076246442316971424135523760696703043280263548359138756634561504571779208551217630459809481382193378325331762511571481706304662265475483640365146406796536369652394057640371677486706815505854835268149086742265886579795145414378207266637494670093997771994173924117962551338833688105677038348717162055667326500249020688809107313073236095954261254221441632428718191640864555167989720595921088649587127127943901113686832223104940781994676454304771925991780105674049142896960497672992545415913573970941070999068213923119357535170790802311639828834063219607328839158790794679100597320612495158746430915512512123106544930522549155434112217192871561944585711971633636450411194061095687363379717488324786735082935244697876041573506114882360353980171719996926668654588900812532633078246336386223236661634621849892348404412141991485724995761352074324209006073133719549644676008957683125302902429154330791001657405224856602465854985924463373153593599089016541194828491953759541060315936375760238903143029488505309217455628842439535136137248683901628897850323384734615408554429830404497244283811768932597913114054341287146320606976391291269828955975650766125838255873900230049515121549697236031479803838131665107245704890784014188058832013102388355282303726675498859082185732760169788994150048742912500881439026218277592730415983904272315930985078612042865680034815831660940689840057469383961207265041166829559629340201182042881726095300498218178312738590410627697376470876220902811118968939936408671267050726723174156754588774987360525272247249295272708899123783484434022036923070091407209681803655143359767085606452201330347583015836654945164649116591098933055547132605218077517645900925274627814058233760955625390950561842373837750828979823106416406857336652597840448202364362713268172295578853762420893138658525594252555489791232897041859433827208938759255288593128596085472861448497587360719631105523893753395074192734066110995301776846833210620715571807829105812336094754913963024159062971258811683664641114262025027798072638038703114841567422058348254565730337885797416582869837129304626371058669433374696836584314356630218015230564875063247002135312658516096894899990427750411667581843145799262160597799951217247320021988127379889313476979386237091418528408744643031337824725771361041943836914947421038277205298874378713961957676364405755909561918505418407224650878020227927480510129867371924679890227555188643809236216182074047885943375835819681875644778722547181820503961971727360380214367019026940629749845612835599731592383644500632376136271784827541851420843405926281976978325332282914513001652450735468970276329936345295481672994322028905207520860397706425784868597513258899083930361018221648046726813080235418370433490233890955888115388864535776559979227745423509965763640477385396169696095163377262910279472180737275489166473606079288785558255512474618598127031712224431826853855201598335591438406554114182539182828659593678987374052173927614007573970424430248808304943546730370691399954468726886312372886986495924602610823379043970734996561706230181148770053506073883042821354049551165602064658460303193109495512936334218738686236495514940512690710345479358440350181359852586951334823770219972125357827039978784110323325288015258150430189150369811308389833425487784721838383142630717730846632296727785957527633407127985547037828867770957886963836603123699577252739783504620215025769086308423514476021065628862325410857810423617873984492644386136867834026237976515906777973865991093889763091463614696219289189768725039351408647601126108570495315228152813031884367706451415720187789808873313275282571798936145539799808412761123143561307778716508167385960791656006979737624272650902884870829941234555820068157196219399587265148795113062994288564450837633871676874698132468689284171244127184655906511403396585831580992503696619585878270668410797697407621639972137832232343532955697759512905146091735711073044535156451025058747534144983642553634582206889071660537951973781107541145815371416525487904772508121726847739889760601622392640590503139071749351217323112194259240041857725522064505594231728782128659521448167635722447479966487628419284844865065897995473056905368724883803493893809499718075286427153068932134636576647676253927233410707734888492586242689717444410688710048203015782115696116684205325249585459616385261724228684397198494506912544462901851148140374563460083244973288002383654487327750280452396355721521792421900156905048393644674971942711772694639927183951241879484792777484078713693012652224530585046030464216489236239829042000852579116228089017334873602756345708997569320422904379857913060449684881073071470272634871779126613382665220555432160482910668216571360046852373933978575873128397033192060712271725652498731034201258084442100637754915350570299064443586151748483416867139237558745398337260372233069194427032755934218902072023397635619728492261074206346359904511056946989658305116062875092678133581161858149967738898644235522334205561662417552893711260830242922885934134191770398652138147952775312887395084724486029778541496920964618281598978144796313974255761071394949253157386240809167084044175778265650396566422699076738548115006793791048268961984806777444540916935583284710077365062556147176709853137095125724526872335109053828642325990694446091827179076317335430613170809675306275796845898841446587533170506335279375892271009681232848589095066977667607445850446154750113994607043465864966836072066895682848914295453360455956518779059676346320955578566644889202109644948347544210443068263536836824913917367010978558748757750769636478098564513019030888662684886862227570425277669043762043093189308221697559057831404438574180811757524437670338130201529891207777834998557328400809792126780865761457234176169465897814889418190742224979258586657006566477298560537547598170196464117228709561639789953865992128005965631482153370640998516745083115872389331954447741603993199088189261453572282449324709584730575879300331951808552260812678783490025101222675893367048817206150018632397371676962364877446358165253680764372677392499639277950295437881587917135191839950101477844099162087615295637278200090850739292147944762959451441728009948507320645856057313893493450761385383204656476259765506790077704127362380713930979293902384944740157235554420374338927939438075564211180934704116734597446539453345060835624056125421935479299526190035515172313326287941093635168503916276985916334925719080549205395739328714322924940093919248722923417493699484783161277225602979314081948522622174618276091232069706677515281022104822271348863456444303953034182253066657362846107574430767705098830876051044179354828727638997269862719824087254574477356352259167354157529050679983204359461669330513896761929741250093249245941563475576955095467294711577861707649505144848989649121083846772580660646220008077086082695885157541682444523395269503727065490239235970196437883930334564337458476774096381732317381030814038961683586381162253341784399636664818116666828710525761614027336150113323449596488720015085022257319434428453239567333070074098342114375152133075316769372819953588956518985373530589883049560000909997978641453369174023804856525240538958269574704902775453837487437348807018944243584176371098031947319636609575246752357414448353708342575817735242281653724535885280759413379772718903796197904719265038228879543450091473304915377733011377373071692705654476329962403916706123600355292614439080044278284671570811859687042617237917228762659852302455188794117558610274241238055438441992172080319154116927823757386818544762016622785483177079247634087818062208147574155360841363895951831166354377048977516236880310705684255950557116973916474365539580929633619068682317965690913102249020835007950289015442146397072749248748588803089180545692541121795800404750038275791690182238908194159288755279445686466294491335310234936778242090234420149907669403416777324058252824769348007445470917582889988979974723271840732480072910494916087295263160856515391788169440065395491397694772915091792268431554879803699705584921123054691229180927093191355351231472522410349621074228233038537563057169751107648266138324736402169480570157495852079767278185844199088491829095628785744976782754132639707760864441854896925603672344539170115157251902850889017539056339761412008376609057698660394444669741222299159688304701491903558641133437190189615027933302682175459533370519983370370952595039368794811053837911242829530813375649207421917472503389502236810484173714246686995238242315106377888855818979754541246486173750143913275172648653565850151769352623237874664159068109008231500831647988520969670092811661363331078971030050300497602187028280430120543438840582668273126588072752735273639398365364565584171062435404661620796770708042065621524604297450234024683825844291991406885199260355722710372455066348484443855744545450811605564826177238548157297280531046384976964911742658169634691254100583031527285221796366217632414134916346466424599747924655290252165123365829346890996748600923533483634943747233913974387282503406312378862752324804773304155146485185454741760982287196639241326841013550415636780211674095268085079826181348223438192743215002948564161731831268278828599181174927225139558270026203173611898786869595603775059479100761644286253664961041322827272276722148540640972239552122265843656503266080869116016422511253863446932217925119759838748924325971301983491275044987252719463455052676044876739858415963826478383549597806294047488207624850132347765346628483529416655773960401419688609460877527788902798671807689105883624645881471025550031260542461263500607560233995172802735735668897519142394676794109280768448226059270494990089303261526020948653377639935111946857527595633113799610152910909647541467537740544670284716888180500358655206967028618057539028818620072372093287753526194340226879677433649428994513532621944784103762545126720428353246587487444748980082468299248755700111876592763328809888312394405411896386070642917299030111446507331246553573805704076503524465684104548285781330235924875497593468611346651318297501056374817564971094729133772605864419752650848180786118101406109674356575250860782608417898585278093468714174153374138616264931609493376446705210181771093013218971580732123732968981678756570959111930701169029778688480329783463644937214020193648542986384979730592700142870373694150487399536064210852185916464431544850947577855892710870325954012901781114476538800784658775973801992195443618269004582057270696023996260685263103053137321104031499545269002986069427789268919872398738463293988279452703133206695378643853067860893398508981595090084773976656407663733924870962033213247457363147533382828766708619001332525291946642776296658598919251667310823015997696167845061193782907517104231810022847289865422151790822956973148901345421965785933140235015884198158025252033457367693053968031445064057904703714566498857588508042943990601021159204449152184856972584690615133166402173102588437618661695080112728792503254922736059551732993911494613171539656179134133576956062583534091154866460247420615885929448604301346293159569948008908797971053536179420759084824818722154114924730041358115269283907102849838939161708343736070269487153335192113101650016147250114689147488142946763220633857562917186070672074697717325684432258850860931471409433406744275711538090968418119105478533195069891747112072782850989764448282293865801275093556127725459443363066415381274331628780865057426862570603417105140398193754244655306225800253635248092671877759488252963373319019863434729121816122053477495958125945597760196114206750857781819346436394500009772245066879610079815833561287195403435022266637235366632961948696750057866841558323581213923252368324254723329717211210524741569930010660832032482742852463681471285925520829203976928193409685040916773657223909925491135562530155944146794694164792307239488036930054074095637018181736395027585119836359958873859396376837011548733255375468296011876241114479222017523333367391796508391416938617575537214703929551437676821360505532346473872744989261095651935502489738415690591562339832935302956675833564860445789942897156245650037575602816596417876713365103359381080745251194137845311599196979417112534953603206257047623598361303494592470381752783887381403078199614462437632097117365009621505168205450357563803425584402372416933418720147219010310479486027188837318015732577358492776807812578606886973275438202080978570093274529126886142415580933726434740329954422069915788555472253193938504868663699400451506333827008438152685890249246657876912789731308573070787444061637197709523591554628858442652686228997654565601552031725453832229330914256983406934497898201514588763626592903838578308035180835081721663287234425175651739643546404722965974734713820375542096879719705602198744243425603780966064316113963273931857242582122420354620663422151046422956887394826115277503843505702173242677561604653720888308619371202798989520120737986589172992803132199951420091608699892894643266003058593824253132099062332786236287828030896775104441489318275262434070735320314253655759982515589516513693382680573804411972551787842212568409231710457234946753763244055430307604508791641809223444876986856830399309630251507479644673771144688618910317847786928928099038377082788388548197862052826098557833783867222968043759753868499973673690140580945448447141936283729022507052322633592468426254189526732304076065829065395765655047579377760382143308945077408221969762307908606148262634726139512247199275700501691344888253325281359235282886487251232494685845440746138995710907229661025256077286413853464096890174314874245163665257316924889762404289284977577082851594365095698997356962469290423391198698838144693569364898739583055093938753734847679667839180697276878148662891525511842171919617517058828179949272577531277566622956856590142887521427452555246072000312892028788309646138481241678445041026135459272109062676279006984611587177467455092832795532944024794217040175129137249032469959023242292092314797875398525639078964388894708978457154269912821657827694080853340038071899025900979517676236959545288057906810802127365016480012920386814304250596817670547004356054574545116590527551635940545926359452657025441637643447778500990876198854721794881577792416987084774726303142356676878415877220649325705063393998787786549489158371940384451452282025533095706888330994466222889948515689424928402666260922332475738579925551633901967800901307540382524312659977844845733238513211277349997895434982621866532715463008954952767391238611488382618515654001011212081195356726524390595305143568735806682775011643772898916294130766787383138686330760036958385816094451450709543982556604244721675880332508430990310117834810201006975630505426084161392383654485734889026899991920712518059547818596878940934398411427550164756181917278769025639237122672365941489421408920834842352928778069795269583825228239754757965444257595506917799270568883701823087746844591080375607660239320059413529694652321664580580686550839262301417450485384968336138876789235433561575062093126135953588432052242781022320285138737500439762845900148569762163248228158092698765553628184034961242317424987973851529508839283311596186656497088992406521503647641517971732026639814653736873045412949455551181697005283772779238243229241186940380252611054818410591851212816101715589455114414951725359360157569673244793197185537830635325766581814566822797237022041607456350542686533582769566083121956950034037322783024960175371541228320140813785273869871010111890131043066060423162925049457769607157947412463018342249711796287035541048363769187485059226540825977177890193310763308944380581461837606815898198555637871867835341498222925363698409274271425327811572334067292762941230218548037429879857784135666246035425515473938119175809885425965850429792443287310269010263412645870506486356577141493125484578714083571246841408299136146320627927753889492628709829411928141714004260243418440649522280290968948896322886342567334160508937660427835439727860353110503027140748792775518379942548127428899202397019326850766820304010868495924050889434683269379538237165750749731706117392150262544597877386543198781355551764132552550796046950613622337144447972395943351055104879210964049681300884062220251911735262364295953455876758565740215067853111955792930119704261911490054244926985573414434387680111282567472501029637898788262614424757690237145434738409691173727285510970007423712171309372833587498052733548983228969084422036621328420795863824902547690818156393862784165553400086665321725588494545405302232952569226967160455343157962338274394209770827637582497127152193919079162605583305822168095015068526710480584802956603792217084519518537995785620369620473851604795067867499274733577991466901467983998365170237421226330780411619555896645962332094734228247622489138947031964504971711097973309563086279036028035014942715451511222117796892912451332676185386098900235428165767560260113956523614415823474376748475026538689596763959032323929614321328820240186655302231808540046337468007416317483669949271177816875210582684563483790539055891120114092023609667187585752527712492733324330947202659811129162592075961732166599633234239332426456436269224870745625665913678626373803296233039984582203184106314910890845534706589549225023138885088739453169287307841666856844358658999693002767205370151121293243474157508127654540339209847540893401135366132087824726768252403211617110880120020111400445261583136060897532657922972105157271834105806553559440523876287827472761332112217399105395615086340525454557219808064434783921074915215605676549319237487400725412882288996277487559430433462783749431810567734523421837870616771203485803624938478724471544589698820792380939633310716018961639645810686533033173126888840674781559564464114386277189688424380540927043362238266564096980169974235123315603401473351748349977891268537485269173533277016053589734739860351541463429982355864885305182027322891708042583051345084999529943348866590533206664688749784763245223679166337427490747861917427699447630049800271267742887805479727571623218343139957542558344634227590288349671444279698761382292444683760245388325179007513111017071114629221064372320693779844637137190222553316921687187916986482819366479124547978713579642233810518315437754108801477529640003224102530019133508657259320927828657583957392420601948365749656782344837893756523472615492000683915617795430253452643344727526498711722834119825469905275137881047623143015680927363421709139226121612372969648499460068334501176261779590103965817576298329845297416084536401138220640283183604505388960617972733069449215185947287384565648218347806533145908108846121563086724240101867049190870645650704575040826400443032500849481856045483258100646097806646858108380202061855378738842190202024190829873541306425088637831785886701154255160335800178297852412706647560514573639346590801345408666803599202859990585340579600268333029926539023813908638425742924515062281161056578706562610145502099424518911650506701586176965575870896437741533654795796446069288193070805119193711555856957158775426463704888859013709663921143830419412608673171082740432215220722509416161596362705827175525782996081045596237213389728862553867732370730225256263189462641183395198809974291701780876516595671870486920583168606525748260354125831252073380036685281731959722403318586346476935741030006105339751459723568870452814183239943129506529111353909214500283912536472291463643512422955641856619249922476622147108558443945959019503638131976574279249060505209015066957539582180302041824640920062070864801473241578788416387799175786952401054630383206422532430057651009734485960983642972497609259400781462275419535393918623155983493685574910867763171626046153462572659607711687213191490516668636944677722345909039369549694003719264326280578270267637531850123386615620425891395853156889136246944926692438123838452197572766186874121661485550141087798246833322817837607280848405419622244274278764404396969439764111503831600461186682486958069125351021527846950974912400339333126529917151780092018876577258240387792045954136872518906906677803407380190217597277774288908159808906180280998105417744408836715065125259755027911235134594529683548793852553990722303031198739152725798391797818776061925490451769136086767313173424741795595919195436143745038277314907775954981440675088078059828316128805640434291813357555589252297931492929207575133630518495033517138738317681856385591997495381430798215275012264867628728923942662811845235630818739148313511577619092481496986447098608626184703773924049181422139574007211499082033154755087399403547887204797282280783948250545984170332062196436748265997454175192669175933140570912589339886366470208284003662043512126859771193341084689025458054368147444584810015031515401685374979412810522887771980983072148364095317290455071791340829029944194698480202841076339078045138423156039752047454340803636869874932412076615598654710800433914064223476904551206747659394570687857470547938523246699528198067170912577154432917555222010784619629421375491985578780043460924676858658871414556796981805959749463519186884965769987257919859800893365328680897785933539367858024282601525776025828535235215611156211472139975830268794053818725183889795048533957974883845890426081396585624124034876106124018606813408019395606296805731956415356587639479389992464197081341727903708091251012697640525489594814621386181058349028778612465394137769500510587095283551993560439238450524127010622916962973637372625807548616561042689207982782931596147672015455971879415999674043705572475930807978577451605841948553099515136242142659720715289243952830490842169040928688064029543751564941676398399929048619578320333646283606153860109481689721379777327733547352465611329470383547187968905608786415109952999457840113261283680773144653971422175871767986058318285850585433165014175131165307822293568741217456289141259358031678385741225013463481989085289746057453567797815208331356355368783532564032992436941143082664615977687877338077596546814843840376373753631564712854726870904843401273633979962700206992987216644022616062344561395746448536437017319966574830189601916701587842808374339068088478772957277811059358139875089881948021558752409801551702241337091034030074347620720353379731901276079706772886748814801385466488412878481953767738492426623603429024458986582678216319156509488676862384221346586299051310019331559888749345325321870735046110850230640165290980791725497721143627430044965694280251433397520349007931251482169557000191968108411769268905124822434169275218058959526657639879690623611158939140734710599189028229259170207484305344326938058355482408685544274372130624691225784781346585850626779294414723303153763678796752317480843859486557544993759865293833373181195316331051085717973882953492944370724853491111129082256956489573260845859496940498580113728849052936667788075410461910742933636132258662098099583301131006065105492499779419241430292071330774738138131299354402729062104926837070340958931417528316710598436315505848407845632369599162117805136304342341956292192397960228600319977085160160495980887788194732961181670329263650278213984290947300618378765674215924282939908418106703120560184511830722406317244976366988005673830829805724620330592964023397482990576957357095798588349097131500456021420490565272497901953137197249059846609465252588618213040529821868343543591180573246047931897618958425117667413345601968165890053451143889771973332815249692426775945066328692606680510845346034385894049336040717343987439932919465369196849000687944649414966881682570894336158956338277187556221502971781033748211865041319256054077081412273729934775155389072023871282595485582563079479021231078992148126957914970452833389091626109173851786641438934270420042872141111311924050455449955783425749000966086716832167968241277619232180074596650064518043838455343892651931117299923986483483980580707267162403015558101060552375788691013456197887079937337684556279975645304864867281015005023358059928200982824259873474640328695835713663528489659292621854983304485274916079180510764179763337657112135828579661154169349131790723090275982797939567768892811460599135764466787949300541931798875055769891760139916457274917818507700067515963396464896121180923791196464696361007680713099981195472770393913581265689995439785655229032592225893040636680211028288862128752783081229712116820104455833282998351948271119892928773881082461389510502646085739145672712539614427907485681700300103999461551036948470851027836056967020645786396274366066473924367267182108525940525209404016289423945992488877424894637309082053477162702219462593474943776378228684860042751420011598423687212357270313145207690285131460446910106156344091907249244781044366727341384051571908366543933375762668270376157654666136870778690583172114617316279230943474064930665695730872266024351642258168943570074420258261547730630519922914919651392833823110096890188390135310085800507397255949489953029365658122438257428594834381317766853446372532441459238925099513587176207912922517240808816671257620409510413339131899753951764847468611113026051984342763461922759544047924326723296265147751184745120922327316684659194692469179800315203584281399623857870172132153640313043739491829551474563503584751469995551326132613784999315919661525072271271290496932426415133362575276067225616742925108321075622472892157718991307696122273658709753873501321189126392943274102387548968937231939620461125716346981625988132212508488990927297522912886197301358517719895626419402345491295138993232439835122225971971161086113171327382727916261531944365073202646534080373518242844678560341782806932035557089055258249314065400270181649550150851858255900846412642334169844653482388645784794072657151557748254330555016544885170543813651749675761915744913833111692586751222260070675184914747314343122441155022551251259233211262356605732334606651852141272383045645046880625731846596528375583772887300949625440806305779138924927013359981877357535031211178996566152890677687335995134544181158402689408262937117495199126073140062236845684294725878564791124135920733796927055630928872990105000618445893254704743370392851718438276213564162732751720879230852760533346956416655607198107072913996754734442235125886741276253598514925543321265764038841733783941587796771387038116781165626134083289375350566631621104271489637251151100272989460092415601863982250752276976529043303987606007029514118825083275966850133557337367877684074315618554392431424316370093400066302275601395425713029295491878953511155986061514544748239256210779338223393882129285754656098065196694616592006052972802851392229180442201354246000603186913452116058029416805211782203876870850359363165347117294984408124569440103773438902757711621410577307915140956425211459255184679165105109604018901450010177204798724334500368734977020531952753481047468824726404871655345698943252615006940924896353288540109735001514444394350516030832092039225315445658604678461535111502044734867705664460051764189901176443347275725172392880352630652258530270512534780087965438315419843717159319207672513512843002073633220848287187695021707039860142604391127754453815512657211759117263580244903194459884051418697660644470566958343555090309184795505267292523052821625642418839712859018877472639907046751904294191416507269296575900895660426847673536506494596021870588696981152078350151139959694912173926513112960319339605934984262279835247029547321257273809796160634718885875509184532552335699046317464556451553108982409820654904412603922185479649292372692732644259637866644450724879357329545753191687293513494074718400412004105009391099987924083560309650325715870920955660498487868690910219852771245616600625037152052294126701232011085346430140935772256350690943456520590572836699777224433429679053932940700237340552891703177814229028288391310826303619929531669055117842575334301141282921577165238602404435206406226709738401012695607264120090031282895262445293639559870615103132745474862219021115173334142152472901014759169767704053235785912327142505561359979442604886731407766914745793505160068163511201836390412482608417352412630779676001939380676254005730025387791802043698306026081272668777728353951262730270937581256441727693676858795023456147508729384175426625474295777123525232059095522872395197423872791045531406684112691039397261774233477936542351194850046779643774834409829123892619841451983512437789675481977944828798440821470911017286400632302216163741033366499458228977803610597294758273807105542076659404926575112377544599870683935731582740107651837367107374854873954649573876256328992957605990570336891088501788751934075772258729429235805629623663260924808511575910883535268776971130113940047484327316195633537419480194059727047722262708588610107673854675419315696742414474859114648605256906758562340863927503144546087216526813295792536066833340514346883208082299576747168174246915429642195858243022557149195774926954533544322143430137425234770550305507493846111587991873948785432285084373737589724405711918515777578089309656281759562668371338018857859484664576909303138471921813140140243624645853160930384328681831711361348065512611566839808355304025289520055941843249405263848099864877240399170373149850772669567720736779362314027981551432505727359120908693887229385824370989175665447880250153513384076720978031609848065016282741066943358029540869982098608604668698412280182118877336408293625786499076789894700781929936481876045620456837367713389904918787952532885471124277685217651352648098832235281511139301279083639351024133715224638529082654868815384048799460802956034668675569484619071921480687431669637706622593971052019154604310262841032822820420218421337983969524708273598771316259234261951900165750813665419251111536183773790780882674934014500117284844639964265837071533645974208089974966741687508369687192712489047903660129426238209677050454983646578665298138291451056159232117235774412292131860101763272182483158873954698226128713349884525064024206017577197752988847606712175517859655693618816910090416990117527031592939994242491500133831800177420350663129743422559982044383527138420919264579161048601967457993622644008222032328548380107577181422767876662303258494973645067619424437308905282819404002691685973824688967523939550009594440044209382681807749960286467400069539696943648181507791503223596731518469869196508291298876586453079749792888380172890988010867763844609036706473393658634639811949022466401779539112743311901654077519294988019438602179464035877405368135368634818887083825410556458312947183952583821190763630186781217520037503387871164048945301988035413644222252959271253593931514279634074282197654705794601447965375458438181163132462926290137347070019596787173078994475660376508969075253230645800058610073210259181432120995805358192575910882108173699880472947174465735109528038495828990391295629587066845837318069793524108724378261805909103964859511993510537058000726567409368680695275150838008915205827409597087707933825740050303454866799121909516611324962182684001454928437402560883148049594369080211464504719698571011607230499037829729953337080259850804394322040937553408255441704994065308061389816748704845836287199722500254857646340200214961999249374152203373221454774932447080252193078018942278282453164033260031384095598959480835252917125320468641003921825258029454210134509482292059813753528671885661416068464259631765439373508820565401203914498650683554496906750010976628093900150213656373895582226323643162008273269952998249332608103491969516498906092936237517020400616235615944585416415070110861230888266451147141643396467657517748533007495119739942814355848503482093712224212193531272920169171062331040722361837429678393713581170418837598505163652698650212414508949877133959253105419827188655795519781138452445018211163039212082500579139621542437078028076249559753651224939080907625122582871308604141690043810661868763774509828808183705164541440590953499245997957381426073418120105965063364245591291825974837079869866510997973036330845159090455681167845226931629622865908931080676213171400720216102802832433052903180214318862835071027757637204699715360627747803689266277999498099018912565885243189886300965695565280165736125690003786127790861409533356481593877078234449142428123062175652487548856578610749934219269592032692707077115908099563642968395910484306225912958664683001349460654033318897449776872535059579210922211631989755217681156052481549386447302405076195226569753915724682422837159659112498531353960304186657855111932919011366442156538776752802552907262645395459784976600123609954691721916732082277048686074120619346400022975775735005376891512297875894087760111704950880650825116488745262113069918755378892764009594855571644752823118404754044508493633586976983859482203365011089143855241369854366031305136514822313083918462196120749434865498303789850631505659369176125052503633983174720402489257005276252652938343165510273296679829486410629891076576967053903532334485586830585658195144604579878435743547804181280181780715799360459129694512907316582430300060753138115474371928800114114846049711226703985413035056976721333902176016988025523572354233228071785080098801502426487190630531958232972514305146060862481756735003207210678203673725712182977347560420911093870620526251607256154683112787018055066826465950050819102003320023135201128334996224102004039205915396229186402155770171770147001457579233942785628057898100312844299852139398994031486490120584011385396528671963589601015259780408044732108942060706597787441523062286390983469596118545033689652827340833974167103962133835357664494842511681314036483154510459492769490043300960119225628773358291592982650607299865147233237384655946852163868942191066606013654036308353006090111823140740647095027831179178818687576238716762587888093783645022062166887871453277672856012851233546391660567834309018524924293228223120565243808482298609685610064022923408522102404940105900047003417222033393679673248966605967064157716222165632534397894852211568116043072301668199729597817661889380664365223458221836137754290789469806694252065949566978260586542589485824646741125642933702926000136998948878012654265779755513599533313702270312950313342150364474719211375921988923360494549864675340961886469180247835759361935484393001874678193944248665041220253712794098479334014132848593287879226800723772130596512177245117099549552411653312440805727847211948386478576155836506098959438641724631726609013011643455536371190547946289844078624933904571976423774569013426104932448625414558047388356154204616764386511192301190827003126427153049902803886509081434374123362367710956948036825520867051799091328639238674134682889580555407664847520064170890556433397310271022931956653282451571052922507767219107608681580977719069340776037291791103850405235651612472428147046395121104703270757462348465225705659761293929287190407777262113091250420068270446329838389396323535286719407474978735399177626529979662017629261850799245726509130050882642182663174479929054011743528667628805450140878968467466114384337964917053782504348191936686371182966997755226657595600106776403472753492358171670845094380814148223102679976454597996183715226011559378059755849307825303220800958950585147614257164967411359793598641762505674765148372230980862601456840869202034958398873260081611015441874171391330736362250603938844677454873420279580909422386789382757676710412954888232889075796377833341739263666112034145997877969042635623061838416347445945367128215932358639289623419837288165177515538203669013771662225288578144890906563384822152603241789362166448530093117860016913185419632358359310768365632319065340630157127247983004212989807308071499189492283170410234846188815292741693181838463692299685011927417063282395772005960947194620322880508044727102467420983063952494231555841172969129191459213080635917097259975234953945768565832234571369888324319238672100859876247049748444481158203748944160895713345654558969464423652088123285792905496097113499281669973728901227653389291155849807259568013846247257351929935838934926784494735454035095365225526545917148200548311971422154264034230577954591459866205277528985917104423933355177922527388776765356562021196698244102981539788476158919322873170805053081734063457338560942211561348235332551849972614290702701203209155810004244768422803220140732999399660992723269680301197316287198492420813723710461245925282221995995290764559457571082444751917127229813962855887417435488963832583070481304722362981961641346753273168422324313513922896279567302040393696225722846707510870971060665551285218774630932381223672030125272466345701973546829763034938767076445712765872550842450196858814024526362056626226696397717571416685283698961970049234912543736733138500264689618386137459901323999250451227998517867741330866596246217759019058427463951492233574380934475264788263070654965489585681416467740965405572151202896320518704888216161900670935763874998308617478394795990977259504220429117490835249713239988693434602919630903118836701436007408033039842695549192376257973263825618423332064311626823540936748339090898543083305209615515697324021697722658075112860589971262856818158809857480339270999870302962684556037629952252521511760438716126596749572803212511718883614466864399734371018566962264245156052507724711685082962584174442905769064706677995496685900631554187145333361550011062262435965293923770187531450114246855798558943653847425682056753859759736510148127562343578999583292933971748782303950884628233258827275180797607911185195384651034312097657096584545581985100935555790963088807795531369026235768400616232647222313507775509522291087073384393657423189826257257122333768862208367038015678170889968900786563383309841597083914614419864221840097649724686749420324771434152820687010904633219275795534888138466347037271531662535158651090255144989918717031702257874731305143306883752397891278049231156998745775378152093782927697757426222446872935492478777632527051038656836027926897633197387241392456652989682814854156277611459050788020847568250672636129264372858979424572623044675867245340793450516132605269146897605144986586166586263851399263981478307713191062582811022225792431899212852181834606032089067306451131035718426596540302382753216819775587093955351069963572594494228517273874543464388584461971653149572161982912921235248664698426565151342144739244148262243378198330347377814867259732686870778337242302305575284799866107234857338773313083374768513402375872941660933336267094525016036428032877513848037363642069295737571092329660242467038565154710811606538401481092567284054679491376283392211671408222031516032338180423616797686958608787207792069829788390743092472803534535848815846065471672959328748257836327839305490615739127749889246936635159193924780425883328417386495961824649903835135019992816037573824450748314767686640705917368397950503538112466132370970960671899075490249930322277855448655113020288054133710008485641902704646881587617916167060724354518412020844399043440529093528534458004445429446929334819874413719747083586913653155407919376029380957576872690619589149344978567436633279099663862164965499542247825559059825509825422303327382169667994106009254009628664567010596966288538372111631336176747428418133525594033549088719952857165266963136864032263150301513749866545688522281456037973968958461283400106581787977035447911438432211578635975429675142419088621262770952892838641691520738797826425852421169912584988088718709081975192497858955881957913553786316776797718458477420714279887784714948152326971150335111467064351921296382867137612586340650462270496507174741016485460313897930876032051243227788451002266703784488368358134390229452900377501469575628751156705398651450372195851028645252839542613094916191842545462445632166916905097065369043301804859303108033186737532857171054584561066653248036323273806187531210783632914157330058566156309328339242557314654829444606171550229600039532883158043574201657344012383637407199380378209092885177744577697793132571644424894152018342850881169543333029752524489064551767587684627083692202618566027667842948506341121815352558346443921888804483539096073751502439931586681012761252215782759247464950313155755840937117452627071024721931165074314024129391849007769408846617915854693456550060916395192518608145830053809638313786446326848531505219109709502284198943338551434716886055008518942084687280081879382511476934997919764975960269622743438528334269495289071836317897736314492819885529017831651901988340586915093495086552106513904800725963069274051201473262446149916756302257596650893437352244952394820750236550380606440643450249955293928075889160561120523989793782837879506471798185644534607498659682396748541422785686357681641059245836232277234508227438307137997875361378705251963507088169929164690303160542048296059795542192144420218555678264458833562252517357051565648799810692065155935520464238171753539427085979743724815884218874312356345875151184089919493740790735929738813702870701158723563190386915309197436568516175254112085894822559607610665722836127846513508573961974253984346149734731952435425674128559641525017606226531291964518958977889984636256273085516083548500324424412499104351836740956191718226732787959685112416148134532522459838460766301146170398298037540194701995482801551858296526360386171493341113359553339890888792327683479280993027464763662412583186800034852403096665429944208015828599175667625153138657036926065718850305128979203860446611366273229984306493275199579758262033929272769362283522284605557589586501950941880207599993337665793655118815643938099344305372732630711955352941600747551234740340001196917004798611422557829176327135172170275755543151682753587291238312623218056079514689856095845161868754661272975462895600526238972578583672486273154590639324966028397990602148068978693757499405018834408040880924365152916530314556949949972292890670113153119646775221284659749125279791420721220973830106137444364006433871071296379396321326564069362883084167309509991073959304520228103670048390026503723375489802131805860811562815980397868874813416693731755696361791967763919497320903700826981848653811905227655027500389791424418875280577002920603298130015155574886663033288661633613757229476051406463920103080626718104870355594465500637467969723268387137661052613937305196084134357140072143513740285544772201256800918768618199932387565446422824975720107532155335703995938711200564844981141412698783549785095547958909205875842380014015974532617692725661556275975077521744483458143360356389789131487458921187692126240815804588928617857660867350572927156370631869956421700490451023670692804655073685296053892424362966834742844364606743216930988723772703743886876266178829288616453351438957099129227763547681772633635029294259324259948695139564561820950914523312097909530337521062424601810448747289354398762065424254046256069772538154025898291361434512899951715271216195401081203470131762381116473430310276676730109445283744943880621197288820330419667942891904482802371688867817671153346201782170360608073113464238366402454211940523341443777936841012608017830910184974916339737601643210792644455799733887422983591579930295546472288445353990071658893918267414290236122375642481983172243808667588578685469499131708046959714403576402084489296386707213698213275179805423413674282026995579432574430474818297143396048720865824569686343579784053065286231278011611390740187580081459807581401272133114126142830082996374023449692016736573526901589828015785358134507265381949426590045632889021818992293823310227018544541043738520969039082856597853506860114315964511664149090752147561353197111644313980705307021017892197236729028352351052854335845561895581822155564638303393067792596718559493342886702356110731591180567838198652659217682153860123106063942130879886953752610553494682687208378301058494758690831210151878808797069198062133167173549299517026561951082859974750787193454799504767353205168970507215310823823833889274590971232362493254287487008409702785297236841883066036569440469089754280043517527982396216166443839927292650898395498833037879407048704258514693739565074199401299410996387557331534016453426550802708292393335369357519334183272672395320888802245279859995701740100899889343827293296762390062919561204304914521908532716786091142715599180241783868873117122888367212910259625240406943876059056765828705968107155197589145366607023572677425386190390516182275746796497745243169967178954208083595100575407307503935953260011602691719212322742800872435989959087811619098551142427936423244116776281870578564695392985389656706014190890339625461413146631666716452660701654272868228860749785378470634086262422234518242221889417123581252978213836935387577104261611775859267516359976598016671786388881085690518668696383686505022258082436242750130249568783408751977013948549514541412599819151626506515380288635165394982202819724911392156935821814460544600252908041641488184788015499351637240225801388935203583866480494636179270158436273028568136014568405686839337197976064621913128159673292522014212316177868362990633009091024317791414723434509730415838913367447825326131121116990713122648327062872321554907563741883108660557134284776941277966194719146230372540589358982903999376083863496373427662119116228848470588766286616985938388749030202932182991899425284513830209527893785394719770033268311306376219731736475999783182275635627504148625373361671837432584096205520071910197467224975336108682488097931055710990895693599717711822082783285506106211317208228869977941383429860203262444322157341426447884310206345138350294928538845197426336537581929732049558883045616126479190744437722049350728132083423174279030885213254810382570848190439392557072383557765799353395139971463528255974693319113276007567576039534154989421609826599117402513085335416052279496460940373737694338708177177004825270044942874321495506054359290589701000407182612704659334308438850955766036485022396530433372402412986717938001913181042829896775731655320622724661487248282794212149880925794235467744167800191850062903610587898204892335774488694571866537003550037383520513047815541713224701255538487414645512082443963596117907090892229947187242563378127790678253961265242293969956886030705110753217500701753387873785460615411178542162068229161722078743988182647743821235717401399239825263235128256425328064814497470000341945527032992760531553850199074458380818345894753798451862398314390304002867618225028838049283627338444845385819220070687921970242760304646148029733972879044036704454493253765944068892887438985241729441693492984037523036174403484590935914764708447091278102244674097018281317128669303219769042450707903663784975466809517240509415027982191346700630696084944818589865773568912213917117871274980734184943811601766015285583369607654800253674222753600673937265480786200029742438851203862837286311149411243593457569290462892440821896100216137414039993501244643924420655297353503733160954790936005151518306060057652851533414705521259506785058357625104926681781573246339402257306317526169866232283322284656121688671686138669621237495427534240053399122433052030122354378186262062207915048783690153832702849997543316381695449574722034731448807791256054308653431799008874115326159441769960111785582334225839261758276780042970561912237889256998081383962489778117351098294700109792881129252905466810265158289692977306740653941110160748304258205909968461105952660480736251023549397972367225703354529997225517448275172498859798219157538365131106703447282250694630698977197261154387548841829185451265545260888589078481789355223255205398183795729880379710504298199481086324269813910541247636236659051566526076036472939927897885776327127295192818640631065466591989544522240510875913973973451276987284521744851404899096361107700175720553854396238258462825856694352434493401349862968774289866891121728190959816594620886451082596656684931604821708887799080304355729059932521610431977570677988854344881304173081018842163952271256211530190122076341545897631943650796584758732796606249214307505919764495704530166192005507247489162801829551033100271150023137150100906382025265293785328849945576428677476821984495578788597454351109081570749434243717828233576460779828664365274422636686896957130500114816082061006018184568214824224139320054921797812073330895474058270721940659773090301793475752757498753586940292195295453343365702698551073170454067654186790304544166641212694724486945356539760687499076062082287503162702134875463942961785138981430999555814542873889387279121836773727063635379479751963577194055198311396936088846445005738552506777000852366385104159831164554698066121654519220386373688594709007410065434021668835713827959975369291419409201744872638893407697683812475306344785969413875219628859534456450450046709160335053874312320770997916578055690816492170972555505153837273184400865112490979493297528757232650733502842711957332057017333611881368165357990056435246366659888322437158867967512751334553429725445874119110902681409140635867212976761572801657069783125556128947177002602738441630583724333148955438628665799324516280629064766956543937116864342291993821807659009589280363662336051895505467598809784863005578940165021174850317522176842969806952255552364383342541081713548445838395736374427409631206814157265205896212669324955874362786520343248314716624996987825098096290749658078979999190777418451179436357105420351375499539596916449028801259492636417285899210352587739751749189067750869410784000660236634808055898841459835239262624015169970644783017572314003180692552906933744220407552067321287696017602739929364408204972290808887864861239288537841390551429236811088138524026982718750230035746410561547057334961054568491200457413978024740046911972321774740165620137576998644007351831143878447779976473055833452862652509749941693117619624891642713546019180620335114836780045239322533555244739591084420581888092547249443668981127770703747828329333283863892615418280071795044204061303942134983906934763454171704262734437817390115263754603292589025263207866574825626181193055659725791833871152594293736715224283481158974899773565967943377263679286317515931470926619630106881623190424501067232327030466238168124649103650103011125981699014627625928369765360711467095072206046543172227212596445031720758885612730929305443206288608516500949989076082715086115687408263336503096993511192797729309008378860872110727639298369759324562280944594951188319874009543726076303727191645427641058425753403051085797142633011847120391876452901550679279640231357267335455503155345467009303653261945806089355653050726375551873673858278909168358272045014263720833138772451713191184612989216714443126790305541646027252772391791667195873339700255066419527522760432501279887352737140444097371219765789765577479803729431896291129170342974091198567876661419512126994396114787191100212045673451372244125351534306301623423528217140585005497880334819423890151658238963771036953057073767693376892968082429601945014142563106906100086314081292162021414385808815084574125165685282638608339302179840194125071145399872881713796892812918939852509897289866379722027283576313077193724409670478353281795882370503481185497096594983859185273201729807805074705598235490364360718084762863105233982637121741117687508609741600383648251881965849385132914695646358858417465417263569895298913286141200544671729260226368920642338784030041819529273522997832309321304496050693349932188593141810944201065676505134825745309727856834724744133995958049141480505361249143068039132090913112855630889735562410802326247938183693104897261207652980235938565987900164222392240246117735351024556465379915968982857717344095040147889625294701503481123183525930677340828480780085362739980652977371017885238259466706814091621012257767739336524545542639985545308069459516228892404397612464701704094534963977055741435064765138597628989950722842845588690409050759481294630289737793009049088083989832320824332384485332292887531852930348337110763935087829143016634402472487370499356458449991224075228776758664781421901851472761827879597216278764679473634329481895819826069662830323929126537647370401887717936929518180631301214913875218184597294603928909981556383685774717995977254128261450702362587897565763271328486532759512151116189310255641426033115259460147473571814653472320361224345871837794737483499095638321022990049599102764534330928338574837547852903326006883231706406567241123331400060625995029904925905317937253132384260949106907805749908969651448855281431338886583404824144085994494970921816037940202224490673727093419910814990699741785918480603813380053644904219483487027310157542747377358859984218137126628484401894206158306932009814341506249198306622046832907380699830810238675518982844084103586093753801785739845959813646724246717570019697621278049619535057676140899691561675040091226298116901695232164198489866076882090606773323358339636457831071722942536559019425333620702487644293636366168004251174736079262200787951709346680733745892710411420169401653530061574238903806342869328528184692234447068972374329150446433912566230592028861627363477677079049887204476129372904521693411223566308491079163227789559082118821174901953271737178775104331475468635509131357636343237813421169475924749063584309829113679375851709669350788841092434897490731286190835257437744585423147059919723160862234648299059738627987153691649203997127736476804974437611494379467634997405805231379846558320990054656934696343220140854899572944178750566486952781144404628992456255056406729065078477299271692439961621428567126354746741631140160389891710136722475080170134629194790449794541355238031092371794805179603876776541270981097747282420341155786113886693453601370537700123168526017348528363951805603555491975645462282627369156274987918227152010545794886830027724662395915140440714078776175564463280120794531643376543621480330622451059672707424713548630434941643115672667587247544731459692044039103316902003461020201265275495308861374255146470172156936484240531589837447744933863496239130443203197906237016984870907387080660039650369364711561813549074112470088594769008625437389245030701641553356979538777512547275472068000787362014584924230162850434355767167672287064339307329092985316877228855692773843516358993945080780935955916233850248747338125906621035474215929253849839414565965716707312636948984212747580312560968826368780448665388771802263714338794910838522122527291591993962150551449383953901947116169986010476442458939485549428567138411454731108184644233627923635157931452327226408141767926523006386511442907972404328284843051104229286733486870966386795803435683124402015151454531566411405516466361511701599671521333760334577137972079801201546687974225875534007093698363593772629252728198591545128807208341929146203841394118279141601689786729411028703726317270182934235488750354013767655920929587355933366166372654262885686259584137178423180178398278450504682533944679741760662051654268751868324145104228298609175823055632126114150083005766178795686348242569372045659128344323652052494475668605627706986742077763783923358300462950034370922749273035426672031943534155947214306169522005029396698566151260721305299548468137653628090502212781859130225655509621775816929509134896272835395786935238280992522018741043166148756981881761944348759182732503300699444373434690553335591140829357891267471955400328969695182248577496029128809913946018344688959493016985269560668684209717943576752281957347842494328970856993916125413456106811700155301493709002019826923257853008726221712851029801467661884807263511571587257469820342829989377584801821869784984775592964389707911892153307030707031630340293935988120474974363301069217170438762950487991034297038041563652439163635498965490796671499518635918141671560525720768883596431274187003346842154418968930070186465912098595741826376858074860882072026117678936600550643428213638889135246225446056041679572157037963552449396676264993921501198798556558094730184295718349125173880815436890785371794841160362036999770869480684022166513821682726452209247945743201331892143143872990288868481725735082276832471262398077122189949593363112437005844488714872184290142782075238769163644381714328488701300675543407592319733551379975403370562443708955361412408410819631905421417108238488881681360574323351006854068572584641198654711284890371920637381964162882969715723842200218841881723154584294422021809451944850784015456695893144464939443178106328592147871030498665206178813758062909026174222098429228536666781384880787287244975671064409971966669555316362326542444645591539253555080599486450066292958750576905479405801930054163844183608244124723644498690296440163324709410644380961679619260777025663041775041339626708386549818288319433599681078925238892634997459188175327938441449945360024382748230933223850979525994036796936135414756268930772192112891076752243192422617008395838347687108625441991983140288413215061791859278230539802597090417317995442147361739201378280680540518057331861128124429167904290232815348030010133906645360544376839984266574492435845524789896486034485757755110998821820588127108269701875219791505189768224654345875665677534680707752357380823565295199936466158539335911959335048135682319925821186936816911793157680738409026231377247431194690662950866387455350059043231411078248695667171849298947649802128601005483744570607121547073967792204648516836635488122656784575544157297716092741442362612844155690878066036725458547513427113770846021675217835574241965389037812893241889327616027125874578554090738665270055867810897658762562896853812140309461727489054494878449111690530001264198327726440900669916551537220073815963959048195791446939783976703536775358432090165983772750010886217344839893842915270329664041374701175634826419986976653019144649627178367999520074164864490844792802410922241321338627234354672447751547390685605190869106072926986226235709236979252632693647073442064562526326371039613277046251701610433239541352786706945901358455405380622778784225095013365082692019083686247093838954914712779713934797355913491207683844689835297043553638873787967258149710610791509226933694795981666364997312962376180892957360552818192655057634473686212852961568851531020669983689219190633646540960775641398535044997708751901071776603441934897886589761118693436533191343276417982036192012582419747752935310010420397886690774974629952046318662910096633829646991948098140052823276999423534079069122307180819946041602628226972189934453278457223274408750158897102819926959868084443822523821845930248341394615832433371701927795806032369884686245794118649323689425155088198018875961271170540428541783321565772607744282998539943041235301492798872767594310836443204699168665627789794804170957030218806286011849298537564062531980356290756536554324970022722598800629580881694884368819183045815672187003832990436730014872309024856996174057390807655442469610725357114994341915667754264838877675021202358382171412427476017385179900953014723802594187604956402598237248540373793914317978232303762935207663494741776764078501943543124462426547423243704494053465115107233735751431289547002264044653960485922573302750109543923071124672631374896733305087119337617820878834505523707833432206685834242170622152597492170783949899480333070448337749797479497804645566579140468167469545098859844665284808743325224508424557956422767921531150955100718844294135604243953378157764115888584414277379426933479607094300663876249463956458125311081125253345308995692421502808742712837372891856165280190461878081675498312379700262173251545671585339087228674737414867550036303635251760028132796566365824757318149934984733364472822024853071855298855700381115406483265423313940290307597639362112677015986399108342563513948442121171641908561886194825201939131591431282954646682854253961535479628963330342073208698209549702628130614857595444559385206647377475406072007077497343422486990200834901015896074444849564313234773105111514097903547971615638407384774073953461935986947510525398771436896781985975424828604129650112831376359861218696283452288146374183574398993797254069635866484536684617289126479572340840272069815555223963432243428838178392771660020905930209508940587977043253412633499749424092828695125998089694822074724646981744546987775851700817113074411560449531340734282732958512517498207287938172687783704019677345373443353885710744623342791172637069011464302555207543200289413765328637606874429731688468952469934087809202165044563646896443826254979543556400285390138636576037990805074873134942864793147706028526317036824758477603865231729953867659374698165170270888031331633910069519738246537545236432932699141920448621941420875073803498508759191707029385803885516636806606848473684710961439053767851585195257518808497195546007520790046606081547419299025422515177842253697947126172811508406068590401098978878009553518681933258630170294169555543305646909946829587453950749186155644890621515180029304813280500275841524741015395614701150822520104344801232811129777199897479375902199592146697359209558066268456973403434209878835254472550610748897084119220852131673451350720434128961600490644643194930493659675556798385931813712126993310644281447419105650759960186483398195777522479511773703291631946525454285147351263297547663105691136417807590573444965389367769905041385125630296530598524242524839318932117028936726236218712330125139063291571834122182963112803500567311899900155847923196370961421287340783667926528158873497119694381265267948502528759292422235815086560704774670567010702078665327206569500593975251464069487071093437772237215737344365538678756675271782167922717090163505107139859294357211053033758634296837612561462165369330742059033530425352331744363257427687763153893557794457362721137312094545900763219567386982517403324734400364868027241093724352360891741350222216833352160377297125943998634817987233837670710048609571546988440756789625314074626003228973573962023747315193619677740871714693407492808162724413725932286095642295283486057783658506839981052621891976110139309584356660205144416175957478494308193861862523545307722163176635854634487327833617857601347271108519913203813253117621500947333063259670431783854228148526859346289480049324644067180124722772349821705486406260949998039386649818021997001250614137246497017730491782086244837869281220772289092027956277056142324308741490163823980369100861346403893116361703908374817130176608494379942924203464001513415045125273161804163837427507845818310809163753850971956604650668576280693990046482615231383625002531680370427442247582768099984682894877176046180055075215646754521216600160824544568463302082286960974206990510368217091600152335730984643207621954139337215328414193894224321001415501357989781514836728362007080937376785707943760654403160500333549140024987755331634975062073967080539015284381407584134384375946717983849364583188774795100583474382896055149424392709420386045414800863837888299009549473485813216634163752608746833736545172626630179130320107396336350015085105125454061602312183512311293131589546823013920973340672808570348041101117940177923049568682594742833676253165561763582316063760315809771559276659365181313598916702866795792178760190285674603269912550670512372533867733331484395721545545980335603195549555600843362092261938305158781615316307466271372038657531166859597107686619514822427931851277458679108813852473839131679332844413396613798490948192286278168630190020522557231016129499739616590683270023904242966875840229468395228231518876961145131281893158731348432501186582417575221007615875595724008320023991781360284959531114257147730940432496625836118087664100633971103242538576485627702855030467350508075684578835978678599476774155614182520488921261005929687997307994593376749879769687116219204007181416693922514534265932568978812042119242376400503003954501055108267917058022831424279973648655091041358295416417001109910973313318901613416943061225165732044671618912164086164908412105444350613280295627355955207227353702274867371118496300278895214912855232282050968750436353150702384864935989361508355389766211315914315906773445367666741374605509320070903438597504199220374552591671450250915728539607825354724647872051096369923354509165321684950654984631806051769266007946297573942125253318177728356552740266280912871390139698689759601315974636777490132404815956994100235196534175561762186321181864440148363365613415064218896052890697551825728266011626671291969756189239905662054689683416156491482718247620211937395238031908797171139968794001633646026678110186919122474315246604817498276394580647691328982378024956637480216698324784768560482749853212708603057365289550321071207104736944723287732856092624237011540639041243991114497417631262584473378356551481409957421000669686556925902892843381205915317905775609920392295130056731202493049222312438728007076539330689811990713312266097619727410597156947062954997551980075701555512682901903490046763411255917599825557302252779157369142162442035722427951961961781831591714750179425645598729545578485566237103053697759874484647391904990732517231708898367295328573050693759769291168849970953547446500073776060133066813605854685228379544291564075849702174679469973068642344452396572723378581711612587097133657866980410974500174609743378543473215873780134851819621173912713737195153227309887654906026666234859964374660946944725046232747285512451484574525238058746636524188695079398156127111197942389177386668329923470164229327879023133334401089844831420244370495130107197978081806643758103850563632357997292461520061067864459467915327468858589259494245519658988121577177946944190549049886168735746936953215351437019274044906708382096309960275967616001760201964937533980431280227032953416476647192978151047158105559591072177776645224543281196301618910478607143138339735627991488220862793120995928417784068380706022601069039000491999583619155403752176738002502311913011694772267593637821440493211229981940432359344291977542466594089731089098537866747364109470738171707047401425086671796545496939498980728097627817090122928798376604216137951780615423842804036095537401344269088021380849788387025761454762101698974596215670205681846021955810818457822359797733610694212666974619225381977010161076018270369135449494054232061973717272140397005675781218980002348159466688371859924667872300166390111972053976532702558698827177532398524551597727651427083181174531561311519506751352262186496181739145671268722450237694482348535671881114561522044897812190465258179074273869487684342616049917048368674771510465189650832464637662810599022993683586768467245519661319163199429456696387502223514780044783636184808452025237797438334970137498328221402220637527221889762226007754267204993749469826489197697251172967031029743989536079790815053231252787425591830837756311331350451205731983445278858174157366676305326743302854810048400550117476908586850367310616932034317796041810487930247717413256264726703097334898582377314447592916809948240489107941815728025972528791072367896760073695472900170481645423163086844046215252616394289274503125476334926119907943198200078443316026710135058905173525450477307167951859227534912210768117571588232021179571848550000122653149909881648129498686963050457307655659565131561747017660945570550485344701256945736772691648996550889513323001664970682056189408261371891980718695374321546739816932296036348173846038332815851068205562238758867991653600894423102916933678750233203022563472405764569715030313615986544083188574060985391814687178108289009490615964824329437938264436314811409204155204807383905803256791764521094659818711965960464711809367454899425426508092106710933896330898611697247575366406296522091904210933175524862032674852409019539496377293452282520564519719821830562800931852479119124020210389928216254205486646953581984747457622391263281829320829082299227914951440678564587074521034533248120692852767558655363832021889092541158486724643576386959951551686479442067282289611096386498946979252396158167545479084603716797575067749526921942807182899787129994395000189930565900381463926536653865155878292791586429689131913783188536771261131014860411252756931714134846306492326142572339317795453857823635426286745380162303964328952820467690719127733127702857312864249495385582155641774200519061119838939650741417333122256175151059643116328394052315969567064354895795806143140724318570992585216738902045263131830623139805128677574721205959647811354775939900502428459074599203739990782972925979847979233926412262699853618816079542923110760446848160693718923616965883485501196347164435366177604566878767575819406497234587312263559641602145115600502615035411647604730285216912420435105397486252107750094911029769161428116603059870326260673365802959775485895516982600705624674596342259866661136810022290497494743141056549073728653085509785357534235417105799341293889488261434219429556934526988952706928996788499253155675369619050890887576455053018639765053781733264968637109155961763204123641654237669170104883575918308007438499007772571960708962011659150290892871021758920958468626750579850416014860493095203027884564587114334764585197213412005669713344971533561044543623884756029700330988900758354604155435426737513060072037006971027118050356265753214264375327557957385397999609177230381228670896748651996316782786573350849859885853053808535249008851375935099065046661015728323346023683214058969470763759806821183807016223240778779606169068520271100000796931773084359479636662074911251834802740132639669418231340234420010964703176970000865368368581203593407943040648266585554023435821670195127035035394607760555681385704746351878061467898327077172491132281160112731257627201046435986775603015113673346717143730242668452309236888948838575305631967614043062457301612798094495286706626078774363960483484455213180601104478402330423520749803885031503806726935470033398868189255744936247064119172109146648289876443634517960982638088821611567819536662560687300597620200215644804038751997504040345431894014114558242502713918729841825907433245864130381413700874704353186205070686691081222750123470487962576807320430725319604754424739745733134959239044839770920069716434157905468888675866102243283806941420322962824386134682468350925283839972422405516468533035275073405403323451015919600584435945598046204815694644149178802810086367318613233812684984879500790571894210973216949472512819361813772918578948305944347538865986366412607929053127552462604140740971300475329258356038888514718755022251524710237618483020916408010490329296240103418288558356725766161091328348474456566669136335119898296914184776230220626184137042767261568636509412720813654930576928749218141537673908846041202220125535106565352349356279376371101587028183591218623153160752546180775613551120725175166742070273156066461996680121414920258340686656210342672094437853945466224360007304979334851641644718342240795203976034707260261764420558493203442142102847870612471737767283359583204649160811489496291625241501968090897780417448621849672193739572708177373787073121933519633476126136393425612411249795522939780379991821739820171611149000902255915139104211962009771011901355430277690298509146867133068163850545848852954757439742177266536694812099554135210521274550946380058252083897345099598059710384206175982085035488211961471248853380775037083315319624329843970728687563134554059359865823123459801776446384212989853496092257314067314942589082676600661180032968870141775286614046307673854934581739755987107854438154669380298169291880739692901348607192188132487975656925150713344689362408031986932840814567080457786401127176107767108634634923632478730349197698548391268813125635675965096456791878031955251506541663513332448469345937009383854939791434939494016119971166486844546390948570976919384227024255271139460426604398142471848021518094155488126285767406807237179681615312794646486515724991125838610455006538204190900150456290747066855546329304533507178853559856572479573337501803151536611864107915222336170575045000091136157126340887584079692631395174554281793114287274467042780276876936153609521719382522940700467026708095285906066518146406714851960238082086005932027068821183945256428646128195003143824887350137358440033195033076514473142139585940011274316423798296213905431718413565856837175665028524191840577843415476911658676609712852266397998096924818479727697216962874649273770167779106762243660232175291752367562300744719770486162191645262310108952136446415037853765928702917181458498203353224274696632082459454136342926958631337742453120049944005729880483386032239879817796742988778433142876142286211774190781998138319710736052588263759073462197568699339832881569296863840063523478710806965857519957482219966775421896252206725172097386098812441586371393452248408003526417615177832727590960409530069746034493713063476573258035474179477140935569652925306014987213564847109412965640811916885469310072952052066632386187823375636353325177641415303408309071384432127760175119894946042155248393521399499182158587294773063498000899195556313923494326410127891677769794358660467564553203336909712200836622559991788732344732897179671650601473042378622595262653478346208947182065765824757702588281894896054772081585077974949240542754730961143543789261501773873684128963332787840267309004858521431102847776235279749878788126045846283075893994955786238621047730096427706400857442246220426744246485110015340697720307601103624766413682701578371053344966361332418142392387787026967455190756931772649478668308940248833646726652931749401743926912696556200996452433960795264426679082461656899733686045682457757556106193231609123907120579517003557302109415149037591960616030603884779821861118309327341279342005797262567235165077015624624920636785068750589180305991891491339562852273831079276495275765461575032513019030443413266127895657900604389288794000009496678287585512428132028907626728409120560697159305006274045992273565923930311081245596022830689756735754854361735894580992431370542129040032908720418127784802461898233550775115813760862111164111932475842208405653361353626301734224315167526884792423019297096291922025231908167840039649312653573291932293195219749052187487383300818263359687399815478638094435615798740291476422786350601193935497252427141573392330242040540087221659397730700412751328809122792275869004366679703037262610010142931100751262556959338402925183271158132736288298646580157465901618894633892180501597741528663121160305404912358821117793118936906549579552009982282477430666833340566363692916658004650156951963138242363096140938494835493979465142001908487175907676723900628040293089816533365307181715858409440917744476375361828955157060313786158475818699474825283026486199369387205318151827890703595169169039443955124670509714876863945501009281791129948342152560224867331931650910063116276031153931562285689099380028954237846468623368169333793579578955795008461735947401602099070199852276841345488856244838428957756239855315439526615372690998181639596065300445433755249588548505651454010423885579861337628649039291097945888365738642370310872818136465790760430039853143016115667663140800372148336294784744386238311517129520938042788117864126532241794060138855419298319905796402275793145564201709933519602776600376820112157017587378865639564032661736125156726084887818121355560176762555849264094842265911034184000871457184644727265942465618474418176505179640581399212870055266583202715193601142587938600664120902128443878089063064713783644380280020165530373860819045976622553059656181611481558794647435134233925243464157741608449573617520443214732713807853112804331528920346626973611828116342088969321856785115090999345787167064902932776485570091527203748706017537422155465123783307663018525522980764594959392297488417109467792918141859909557274563276404243898510640203932255386135611894271003351793681553885284664397196609197983672308257000848897757910744142335335766002262320264320923206059546643081423112805063206204768587317986353397788604109471629127184770859582941066441512172588909939223432618268499140336030501146771165618174231225187031828566454259062767294627353015248457072227416192472658763200310987325412972059096068682989710976824933065538819521084080428799553982293229899940372665927339760837248417221780448578997145736601977019037462462188919751766363249520260419849344526544272946197926076832788896534857362891005637024275928730394133073258264589475450827636214434788948437904258733945093585026315029064753815067290268868717276734531141571939715307759966044157380947539010779294159759396678537257746841148854402946249728211813696413802983301209671335373977934202384932451678060876702293346236344888807700529228203424826482071632872720049544204002808407931508684843202109072769101803226573609070326336099630379983895264170824256518767297509059280104090876856482737768283636540166047805644927359704857211671113870105403957993603115073811495707710706837226591326978803986098243312788126108643187058303196210685252449108500397088669629149745510691367625692425189836978226919638027605587882202502014774801362902438210189047160160943992900471706627163587595829740400646307484714899255405439361272859025300555132929964496390028058880725832225246509841934443860562648156736685572588005857017678145769304805291013786419753372708985218426025924483867580501751767492721308136028779523112902516145212560098541190896157756350994901506274751085059439779754833293643374918263144128123003978789449039325849133217002868640104538251115442267699818999782352465532848958037540585505429607476199930864521576077714743364462631026315238853998489475186264934511897627710374581432065533448065506931305107424230678565555088924784467451385014846447009328677538304791050168970327511239454166194017040384489618839304803852079990180804749743282571011833588282778477324874443666315701798042733295745170284681510854268585844141774223389791617085880679625265348914561318131084632461467119198992471245734914679676444720658508936440646145600967642203644156967206525734479059773103772206278954454949072768777228160819602474097066732662155774204386642720793805190539726789970461743380164950326257595487503438758806792101052226498479324472870456179345406797221090789380092201861005279797033088852350556176950298817645037084032536812286597678825224214355060879792926902224255180212704701741314821676402290086948924435473407918604210312451713872509731887832860396778218483943472415373046646636060458518125966768388670299678575947546409313313914308902642985200206144420843743024391514436198235501385336126257403003671230144812256900084132864922826003083503375116861895667729783319559108607298204003585155970458333391079928979263606342771697465455281108352666868911888669827972000602485539576071526110559969066625307406302922098414844016283055582796655459713067239935455690534432798552385024471069180600697592769791283480274599041662296164249635619557174372613594467428741129181815137176400639043327939320722917284036163647088880560521705811806710552323912404295284928063297294383004807497080835512636526524924760277356893962946705503790159219405730659325608136963108690859024046399152695327621162859944739367762483643410198596494600742508071763370261109498359633910099538203857203234403679755927458494601463208501045581722129618349832329109512045818605263686111586319448966878856132837444610384957064713884815822002388267215836519277612398950292961303826396410673075260392259564529423737614324319128960914535601015373062783664457329246703392555664272123737776506044499798214577779270271515357409887781152485688406673739805781403941889871317907998107698345850211807476854603243336779550607511217867285649531438568727159266875246757398537730493963798473189115918126113115665144480957005167884869998169064830064531377776015072359200928709183332956383824122034855947323264446208128829992631426026235301684165554804145996654107360103607895599358390616267045617044188028135246762721069891513921738021008727144486619991968212850491878760112494004486381976139552699360525612989097417862908910290217328755201382740771277885080828325282301851462951367370139591620110808739399886156006158237018080980099397597401535496741236913652962214019600226231072793680287020728596568423813865612667099302392744715470117784945634632703394919648648798007298518373600676316398169114991905161210568031485724286884037488580631323767938453245982320590158822052923274186399530592896869796276829994974291756821657033604949942628195847939795995598393394666254779329491155963801364457223284694790874535215259065741202999558214084803982037951844886870393918224196721627193959256723882985276190287002217013684348139066914721709866592648240352541281274371103224194605809060046592324451912281128337305768523528723420072931660765042649441969348929690121334735002507072223687560336626747682715517587692371463508191344866571854090702737419984600174643582926844985899946873257243917558579864439259865584127300159989670240476335281702282851323814881132328586738327311770760456301928223810050701557678642329908015575160819794398683632606609715532674545626817732099705744742946004188957137949468356339627955549103685330494590083681273574343085275167949419465450641307291558844996913993177766087333905245047338423012532320744743708323887411692269108962790930205384660723885539709587240732583992290961535776611676895487330140557907186775560002857230567096927880023826903596952395661824763873236580245851760672013843100321250848252389298743874442701898297950402235097223613045481057731684464366088027847035410035208761023169599128547224065521668263003986833117355753872465336291452659685492268931888657292722166161489496229609354719634764306012486911041277157754139180890796229278088758686814137908303872330489379688535851710696961036507433905596627196319915043370321221134736934828800460776559533118024763106760282152560128941430836392796069625977904400012868626116661755299234896653591598656299084787154532488871702214907299018044386052254876369712069500842342466996406612602422257882285686497584188937880903648001049847818701373927203540655089000030497360366173941769511042950066037784330960626184579239313735693621186587485063477489188918574737254619655851115369531884629165164537438494057730453852354763378791837592893631905578258417045046677851375724411696116245575042424107573462162748896516142712613999399866012779368846317250751875489327245658496400272951490861423978577305449989474529658531977183749646503335828176360880096364994718794837979721182893743190062463595603913501058288676886560463943082832039129033870042422577500399349889326027689810734748191280555481973684588979478448341991726275463990188903489130094262500319994266515048124542061314319899599897270053539799125646599096416640104555212920797909052500147967938279330727544654261767395434895191499015221209789730868428818861222779866961212491518939996834198640718477633370371831206403455907340077921483860705905791199692204020925798918138108217809713497806250167365036868769552068634638731171681290860288978314346554708606912406920657681187955047287982649349275590204170734528197886362717284616993600895817834422475627562137907304596861515044089232987590849983096069243345295203952184347307136981577987346547359593589785874738011919577564931039731638861623061771227439201445625913101072704251467251881086164009024234393096372870924385818033817298146945104651158739211231535788258481985500001057576801510708745138429924246990293261102339406339289972050829776811141470075705400951851880768719507954401339682979771026062670173316425574127775371786475690180101485479327949907462172562710519653605058508324909548602732741796969724306949431217509288448818482633828352499093478721046643543073766894047180308815984282088651282865441743787378965067844929178130516857526636686576701276300178356739113191611387461313837515787056871741988537406477415991636043563079379086334760729002423010887458396013709391388509418880228538496892769879003194456763051700176807335769178531828511716256805853685243221549230188714297737477179241538796096932142613319099871099320652509350310996098894488289254270091224789790144806618773481430636924253310745322112092462641486295592602474176086155726536004632919013800259384028101521042446368632347983931609772099819056996030223744102675943698863262039834401887082692886806377731963886140423024966628568151483341231565149077553519758980643532430557282468912970270500381647067331773875156440286005834249988692453147102818007713678180486601609622824053191458005636309458292860517819392058703319666016926010666555120919251002148255459230690265610436890597544245884450227969442172673295177811963964919806145609734289892615017397042491957294474626779723390887501079819874731702749557731847347105799931098274212454787890103127312270954586255484964858718172281352604934210594076160959935750199388680826700756864205414443361032465464647043337904271453812804240208641944130992390367916456653375433424625195114907402550013320607878875960401858145723647979884486789735066894614550655022328080366766284732362465217561433254682166845996571589333607549297696697551031141951988553656142936846811424798942387275764651456798840523698168362399066663972394612192249475740723913287388182879151225168019879049209447775706680655361718252743187906295855553074013958476877913024800116423274738812671934258749251594973057774766278465743251498665182589902586733535604292849248595678022665465234194463437118870120443483012724851772663341632672310988180177758441094687699582462868733770866308073909318648500449938837933575678638203337129941128648719821918408606587178437484302535040263880058202297475714256230075301398397606724900539153354900010763313380098810007202025419707208141800014971112878840910602078256315840561726579287313219197738192002583168284272695950179061137790957750077964251545862469126420360382209204753329859234634798666995056321423627079603276459791518832514777252330690976790114628599976837691164266118957225111510718212253406544937183600158232201381900815155083106250598663317309230438185776345953362198073319688879500866404411752094361049376112272096153538448747257729021690586932428792495306045145376491230607972236919911766440675993962620703661450161958020207291824031439484708506825749438788018963890197505342927211606129913275129398880071698025703245539611425337659345229942154102641333895270420980898049657151267492894323578029052062534721013077425780343400476223276510278469024389969619544365561714931513224594190271170729136725190324866872212003694993338299549043566463714488492798176696614770796364346511759187886115035495846114201820219698794420142315030910750326619407750409960950446885157595421042162787855971319493736292268031175028156479670455867402271166510733903745332149596199099944197816956732333661612272982250996084949761359161597576470882083385898201138752362750742951691057507303658902495110884923786025202529075938883373928853600102882875315044780257183473231900242829517394733292639798045699008200410686795678004182073626486637198778055794476425726039796431011199087032954669684045663119640538455188997029172372508978061646839606304759258280874773794909250064093982952738535361862698990984035017220424382400471548411112416771459424802493295475183620698093455402817475810497438660867032542599657434096208154327686414314141474140948428102589324014870061685282549156755869301212954886571752625639277895824174252817793141110748616739644371429963108987130354074098852583746999353811259240247351432971212944317334715966072836709650778014916873658012324351020852685878565721838343227484170685151348642560187547450572130673980488062146179553338082963818802357026214342816281782567550530783458438745663673378200810567919664328072560519421849087288660649919700765644831861968696289475757726059075348672606917495128783997201358296098959947073487632178415931773632130071931449467702195632170197875534043620723202202718164883991444972958089881781054487810062916921653657226143407371738798701003899540414993662650361108174644881496721942426143230532433221086070036050930191571740168392410246496914546141221531236631010027929772494539451745837647951963649602897127040279665860818664149025050546934582165130660753923164575803794877082807615484643226024525816253573816781425167009202236048321249066654178904476013097000400601961028726553277452069631361370634802048874588905961611770033942473444729158035110373088949791315933723942246526115176607820717909622440480009322838811250466721309224714233891134965917562556113742168069981638991390730823899379099950133458730303259416939977940860690735037011359618060673821238410746349591397030272442549018249440225490554432501393794013763179937803795385483263471597951330043898324181528784702534912904960291090444376481975366813433052857424718842090245790164157000365872527551871305034533247892633048853765970099726559034134430489034787815672285446072363453391602686470126165094923939305148735117474550276712896790381895672927264310633473907042088253162494081596556214517544591193987616509753987648529372657632026543055446915297667096275535310088082435233099099955433255643069149886834284210612326372253516815735265379122066194562056726118187876698311721688694368777600826783717607801845940841521786436669500081371301478338551701705049692493935026260064695507376056444563814242945318158539677521515410150440473019352519312208734586975732519030612074497232298086538758838935551768281449934549220628910482077169419066729190298674252612379916610381430539897350438793774963481719952989878303034763948433602194769020363051723747868393108964758752004235758628131007481715208552609218084077785074308798402300060864565858745568296237231560114036778451347148444186828980162634557566301211213347417376965015129963176107003491036537070520108612406281638334896177479688027577590787606369016695122728872653706449190020702995141303360964219397548320769919411617542395453194844315631448747430793008168849964411656422080490208978047907125529052836628320181367832557878167026163432864446376132394471242210104678540662938300603727639262930934213462611608275024455635637815714435077880425384160166936642307075079920636258946304756757689788703134738388605571199369720673764830381922011562035516159528506381935565427474719764619442863715145898639547301029938427989420093108227828042980156576775135291099274588542419265779016825801134682451526454015568432275024664645149481222130124516129409529627806208272659412168144029576837409177267930473715241683686897021206617351843732209853417142058143504612741269574925856644490041672556830295193181522183325078090723331798623626907229995046182504505077646869290980593147825570097471095625748018743792354538538694721561400218220119564345144520265784260775718004359272545310807075820717458636949388098398583424231324772000191546635574892713292083622706571928318043208273957986499853648750836783471481367386630364105286247643378637792463681884118538655761191224446697203740318070502445352648439823091948496412004623440090316188582990388840408085965646178312581044747884499613971201745914964794658603968429387111761222299193133778678242671007491617238381612528770343736786543530750086453337006064483882732182121876001110677160002114605333390123276606378871041476207383947257408930902729765629721410224004488592725733710077196714939756633168705358157255950078093153342261747457572780307522775626594638091259984556973103675974494604092868701154718656225265523921396220251848804285532379736226832223078393064455588397781769282914326622812079995827061639837149274280627438877190598067416039659968963704049304172185972848345483743673716163402450114414566134214357903149925713238554348922801523936423960353372921855835788159561635948761451066131950689752469928196028581910733336883766573443231943576266773697299820696574505731230292880807781120128982321221271574897113511673995531278832813333003898046931709220706690013910578486057635384905411348752584227423350300810422972634556300303799401556368999284210671063764355497185721761139080190150684562355714488323056637323352784645945130751615879048936945406910827569305098136770111134097015290976445326638938286381542405249786443969872610191149141498197645178777734013153885269315277332232102036278510725013643646422109665409467854701544082896382019671895640908622789934878395936175288267777657330975167130447152801797370223160852634735194165066907103177840250791482861229590951032628724859353364865186330018466778308374714373199004892773707797043344034821960493192401090857959446417321855564614451601380467911425308183645767160331442414760665125572510861663666235169591338694290607257781652965684209739167480965472193949085342384277255394012486617689107854777131977392605118120662125444850002159149051529864354817953805677685754199142812760720790488403914451762546137230655754279435507792507639839120270927039204199367497087540167316576309798688578136735069008731146281256545142027291184202994714150167276233834680854044197754678616202810853826422084431850775041462740185000110953342302411622831300577173239879964221358876287243982806524087174706346663437254166303689927034017687331029171667076394179476815095876210675509815111717907713695646246665671089864520944939143253551033406593459219310443709386780985618020647297740511477993326016091483051050085756059006411134892400368371382863026386506598043649922069061838223828191281693083681295582350251218764519949236223032923137688045792046615625037757339638433056228519833878310088540859871153935826411153511226499391478987610035554510061022264808482353397940761191353684016276720834805407845629674598057748315205053114484016022487704593174656028377786416295858931636847880036486909820964974357995235515205192189922917729186058205630999825921788140995704290354541447257235290039368144571617933526905225473135308877190299260978704407137684663552710326949355935785733209940664227970122793163440213556413901830056718382044427670759662824060064938007059907454798027604729915193318834950961711603217748919967651532769610843562287450458842132169173601712866730160761397596274304464740237520681600295198023544728135742312903810985057263104962998318338764356579444110923335751621449210874983986624066696992843654606610973814622761139380508260454642470431090188189308051500817765989145770148239898960158407620880757162333417246135619813847063727692709861000892329549740955633136633668487346215946856926133401214917473870425826360112907505329796686390150276913097749827095960284367866854511758058222527786946519046690840536911884246640911028824665456167365831726924094609178721450939430006047827937917274627842155371720761199891385777801334645455118801555326647332725611258242314056598329421129774387135557230700726564654012264628938993784272647118517435855558984380089300467478592816034971442030259089371269395730297747246553089906800562728296947222091446964340433148971171356159161061988970316578851801134394966468919988330584412488836256410193479534380008160104425343639473185511722759840778057241153267805031394979820110984658391389413110511451715664115868221600129021886073040237672957945335700419236904509852842477647695989078456029296816918134244148956662752073770957488402188213063271496996297018622160113928100068514234622881127613715378026948472328532765116838065613316133801994757137568857310413032906119361006920405494510094761695073926391918998175112523714976800645213403758008734589006065180468742880054014080807749944276252092264413753694831588729420657017169970389434727971355277798029070074150706550342924661516286211477840983263699899436332517268330119891218018017908920094192984149701679431912805594958778382133857591743148007182235058251613093897769638557130207375893939518673064935485449958775836180368327070621551438561157983528488206604709734149406242314074015502742943059684281380005700446247746869423885635568872579994942370503086938027846633446616369435896236027748644654730239892312204715768267227728179080996848237483193428778401690935059190553682164386891298032081801595237656716506709451632950406669055134404892145427780097303319196139078302635918846792885744781027168451280792215503609387698773328503557155231454276976380503566545088735494015272882652354126557723849175631714262303404672252527951954445349394705239005472155463629115084224587036996625972149297399673911449149089601867278379019583498449546866006282917608602603650277221050798340312178253345133141815676346081762789434870754838263083527397641026860099318091275126072932205678002130793166884136319335823833408153887032135161542543107036498979620069151739600707873081951849609670792298409270169964920511332041175068122536279110727588561489098146812739181454714122197631205896784454940051317071797934040696742217749456095481922047880695472150346196189161697250128582074312906983747708165163779287677181892825847137895975417070826544222253442905020339353935140067498023428742896033320863328113953394165851327343791782480783618787750077845557067797023927373588349532835766747566006391610038247729748504383145079426014431951190009455400081979357538880683048773915108433108697775066869359749482749720621019395248312162029720971555894866794124040506149516373317645741098729516201325744645314943586778716893274731049177571835892842419180293001619009350545457275098583627125027209893784278893376711386813645154052407999550025670120880331620693968632849396245769291860065307493537138955349225085238990598806651037067677237589064122657573528611884772627567271604311493477928107067858086045831786694473790774955586663982269631095622667585924914733488565493571193395542533234306771350326393434552611738217966862710269926548371481171856285108736687120616414213261365447314909964531762961520122190131554717458849061424968231154490528577514493177983687309535401402721998618949531445761300166318141865900102511939682815837389254815530879765283208186578471133700009985981522511318197555945299839096259647633225202583258845815724015075038539596868282363429590166506321534826501717908905395711435572975741062149518729178488571941889807991924386102290068769277749903684527167412633818908896685582779662668457270119301811860420334849280169338210686329434595988008785614553842627309439185799992512889746858789480396272507199510277187806818905815903722027682879474040446308137310541679548574656816369510297368271490284802803869770443600721745219453532838934506500490923726795830645391707895300888163707771021071061263404888357575615553505036501489967449554077203353327853434572217552060902238646170974717354714575272764113540640247152735459459643479018737175405162232157502135452053923476751481580160735155065595089195031047159567569232127298918728452139046602832161484987441428556878858288197916399900691394406901002553662343057670270159585334247365969268745044810270336015471406143110320550782526622891755940121059607532214349433430218902232898117641794119582509507577383967307005562834762724165666044706418109022314512711275875124660190684931833571337442687476140202288631228502596812972862148151179720301116777483005590481419771576556316110735880969947224432885769196619954618966885459990058353940628740199750033314706946285632602219184946212626937320537573241371017420663267012148227195457543879669752348658452047430488608772789249529953776963184396536952093442804736353036054292760095627663454516458646182298200076051548384865443865302916640343737485611988834889758398253707179853324267795369505747022853778933940108931961502229262689970601945065324117305933254459690471948020013105051478857139477613292417205293399797214801682458001034559726365319346057729411080497234664262199616179355407897285918916731055447435934879994122129000651113208348537229097155548306112012695559375602356417048095633823140780775596553901363589465517187286766477341656420502506899554258074255724896364196030238838146945617501378560435811733762962800726008827733624274814214067984433442268071001354536570432726835698169331826927480598813676741140701210746847801140457522064637961687649765097808902505181631296954359115698331793194604566725539314327499099883696890780362707425827451872139386344620155307285717034614859570381376541352973618016622666416425829352552521990675035948909066976477259151909848832769742561351960700885719771888464009091792283776541839276727473707035646252596800806374141931667155235801268957848458896426266031880457844876138145672958825016220524461963515951630071827019973987420623826726930031564416316583793386972821091564496649614156823323953933601907374981553383290069511260339189152628330340340115356732514919612045156747887088370140096640916165995787048369645382493397000596524397646692464200702076392118730788137514170247717231435839508347423205490191616792094515706826570230888436614456581684242387564490881235482820921486197287802324542196793165631375252607803462211873791786179955883463063626050979162438859754123155598578669022219492078871866029780898654153762930140208859053004884249673647575440323740852535297082430979191329797611226502875639104393328926846283374815107591327960357058538830322402360055270523908356806023032863922237552266860638802769424089920138475195890293750188354418496932288031871273687678668980540833784000393379140820533987019204308765201716083036049493912799907953686979942174014191584464718971363793645020775638210636704922946710822104414342836054015563369649149950079868376574303020355222999481078258419492327578626880695058981169293523077960729539078845186811752841223885792122380842427632451120388322588425983689118631470516902238698140026987128067371255274351978722988172749465829413175457322787508168275692105412739128016478805169217290765074150937542700101232716889619144911111926810033347045479161356135719359754028824600896349475682726667310797765199195189861319594707339176023121890891255619007294267415908094779133670610539956041013396418901308862734860172189573568951636717112321769347996086002451953661904952250150178706833934065308822544049144316617393631815814389515672647384046907638339499357082036370907400193998364356939983851674894524139279944608648343534978172323730688783362074394571692034626498442033772595387816897864494912077941344833913810350924284783949417619518560479961119348531103822487828715882627645450892271460017911227268343974048968006835035839610041636331484995430440248495763152561667525129815966306077734972623360222724492142157202735884805819553458598633858527510299805961356776244574837745407423532553517663987801922405060694055433729429069661374001214987236353735374030138659755475401198050037517332981293352580700966620954006564845635810003598761735568002647775224634498655816399659715600599872456939599483585114397993469104274938688453652705034062852434399907174735110783551926026507369771039526933492156930693152350689477405465306614422578721528886877654163433445823307471059822421790681191816534789861717509958577600217904438083395851950648446079620273554960380006166136823149035926721371782617553632365436966632190106102194484263600229773636514138679203962581609241656092467898481240944030243126488891024318005019522327775045266563348105540863351907726930045395914007001853405034449992598124721524173077162428257056856934020793691257012514637200479966946545958433725983618214294307188237599187258361927157250349411794836462085746678286944688093910814045088224707489780351258611323808855217470603329617783039435327306688564421558295610107130251474913226524479802072036874619227413574713536034907719731624614071059530425017645798551541890085875022633148550808784376684543918527435064090044861240369611300446274898043569486035416787795559759859777169878081045375958870108073131685803276695236981016596296683679330371032583036857924787345491684036718956200329783887093725942715970188478136771373111440511584351129205806367709807275218393412627581665546901966908103029035431640522313099667586363841930357171718645957659067386364305899037564025877609304731226388633990807654012194007164415452959771417260194471352696333035274049169621039380715826112188925618926469542735676998232227452450584068806339005108378340533368165500729083854110520361243914509645867541137059535921200847263575600500139524940882949022635833237066586068823245161558369695476609542607142193921257545545274944976605829581257645401603396189118023594032105593352045946340777205655773397715366911897287172666855482694879191926729325032030220944179229330685082404316682256529525686672818247553505685202658179276578686526206852048169732372933855190512702443811985488189638732768811175071456639420725527430893429142787660377766103705877723012818475633814244999159998125258007908226275837211925158348359544618583039930661190552186021638766004388122146674333942728907115444517914860509122459763980241249751393825010984598097788960236551797088350279379818620504140049946716314428778533674073692445443502608038016544350516324305640476663358279256777968854451624871826026613936073076916832771119664558233237272946796447765773793680169450801456740566161748116962771162568244654971649746321840323187759533907757382501487339950646515108926615517326728444308159460956687866440878007022273471495116157918221047889126107883670311949013485027282528728686737104570843157162275928890548325942999714425543807719156647636571330812296853729406320939147048351288140058657450375860047667106526863985483509610008303708578630516959014632668954071185320894504567288163587653372916519498024313735260407185549937566753764104696937654266105844831662078592577109753833469340062981318485219591193241511269850413395970157757247766464031692486229385173500856549109827438592819702908841692304501529176920633707420555518049010946259811626798794893218222592497986491494230463201852340879439117955586698340261649553823898233880075474587053538721230455369060154990252349102416566788071406455219961217107710143867177598575403354864526395540035468001795868973068839183217711019428602466569781446164814094138150952615534367871181406704292161968441384442130634068239080783843379273583012955866731272425159956221804093928971688919209919061616413574790829591536533582013577119867804030143754268403972604485308713801702810092352222772978352277655402408029867851787917526460820748032342027796602891813972695898509481760493425712312200102462629481438058217343540146680625402929418055473025397017448492913518710546041631544445047863051779590081858324582021042445572683152693331642885449477838601298432018462398842844331024601372165432724143909701273481050506250468299243481154937246481425658266319057388374587858387888053304364911788182879555094442134680841070545222489597967722156584072249368641449898370040965543785706089927689643408733385248762400204595201762268842276107186339614393241439621257335934021377230877743042113697426454172052773821699604347341667144641643098109066189464685112489875766311054516902084972140934456329298934247992470084014384962078828049767217449770184051442460661085152959637216100613690145668268070070136096622786635646834199154482169086509607455009604903395888031916542233189405193709890911971637466937197739676699687499178635128936863421857426218690026563874963408579670734419876305749573744860510954743474930123758534590825205861922353920849081477359753808884415025541531684679504579655454247231575839563074571818663027409903282771674554077161530289413544753385210736260473191238564350258554397888587687072278709054128120775282064925680460497475757216357986575751768744496901734573176347495911923014275994644132921861874225916151411278054920722266564045576972744895233573898459151099995087673238408190814470147162589682941905193041605265258806967071328933092788459020414436189637412931927930280973242381257731506715882979376942518750576682764703187001960895781248809539901950666401548041365979010084092733299167478762609665405785337118369287058107450354215343466953030707211074671445666084282981156251607884870341395946733422788014335377696402363996157408331866447561114938193742877023163644612722467470863493442992552765709506773918661547002812631585004793257837620373211118463169566538386425869006608327838479754022406012065837906589561061411776845698470108536865033169278892383650467005695202788522543231862459411681407423821516651920388869088285973103848658765715187541805764674193526433241404504825724685404950597897625443135382103443503427941459185608227935111587492757395173477908120910274468310277719758013709083565725779638930423974031199218921913488064929954778837614521550526017255206890756750934796894598600362944654996587766887922634275488907895430587396361166647884112426762450133877324444498851802177510374907082593636555491201972883851224761152152248810852227960170286590358718393915393318900881418597248275916959252246364359701205179705220632972645841515017528883332676853446309830063346230573552122237682429340304616350616150005083997949208717991076008714399172540357635006300143592606041822199782289763180196066553219060310841239861744162967129907151167701272277805556102972379745895531875586324471349960898916285445714772669322086463044739866722118947808759867826464689546090071544118892687536049836313197958593684500054861791335672712206329523145264953886269150073215659026695345809521680927180244160396598364939287899259450906786906862845950767746655636200127901362614021910060654205450202902175547883686592216158158886093722477860592524875716005662788194842036430978997907748033613394853456945733009413543750975462872552011972762757887125277703258004393467282360374351619783131625652851541019302462488394186708723303993462848196877119687400742085370920085530480590135712521330435997270440550046578203431554924514301535463861201122080822301738028226603205683401343571796077605136064388273472459951644970131545631186015496638796736406952563418696727676388038973925155165509240234312726207989172880598027505022732466483197335030391088284070264138094112035416141150500474903774331995934343003662736906809257475465612499849533871351374449013935774223263597647909115111360591561513309104767257041630710003261534685875613008446826808124221015732281354061242108107756981935526980789291073531551770274162086078270234253046559743563976508169762143714900115480959756637530185959462756259752303533737884406272849134132172076421341450563701901877163860842900310188675920782957357220473258992107667765737043789707894680262033627371386483458067628204493501085802072992801776968629371413288161291396338368710288847645764635746720044715337210527205902021908676358446167702524209922857126871550996137803905545446906157286874680594433807293752080434854912089003085048061693091227474684020127337520508602697215908871386097231178582008913620497482702110426006694681041283420218245830177164433389314860639752132786885691726379056011012150948864709002313060392902112478793325574217234977494531687702004436779125898092085887077973893558625654214140358068663869848783783898125849500889795809023379532784919797198858811017572301810705496750426095477189353447809780131255207144104604083209065747214908873910508902779102659708055193122500891191575181257257091784011169802639922902991533731600336420620991946833687539526368510822100772232863149347715532692260501053171356216213199568150008391182828740724244100584043219651019625686733864883039033631934293377505024461544670101863631187365922615688664372501615990367198802939738529528468721473899897536301205097594005857251483577649636685331343811535128640726646163494688115171352836299991730904950399702024445059379468369633657465262731852073665115179097465742701111842180508657458992356369895421341853601088051578794766090620039196979959334091075511454750228928538823173962271017132325338527848741205857859006086255427028325469913941010192983104129538877661030005736454084278713432921561364677235764906548359754292839577467899722736931388313358178652932802414374247922238112975647410167773665185431362964449743685996479592934785573874228998122355821356747194470060285932291072468652925627672261780841526114842606803092967511959577314729187541057708897349306875007087600437994721342174629600280437438274712244122276453090633544393140036888981559397411895777558358445566287488931771816080214230652737124007247189573910328307572321752829432078005365090689430671230534243510797788524025554631566400231439699009528005688860340586386581795549286322355904306331981725715418386980929540076533914465357551058718433502559685753822350215923890228335182848819372960551243455154997451056478146623392466427641720980866270444227475129713998921464910689754927545446993616880916468619066759790399755333114914382946196214367866320492753298318487278621721218691791741687293365207830759319250908683786432100216718471061211394815655478701268894834507093198869085116431323814465984182260870591483486882394910487179472018915140176483450008787557049287820605295594824934234032454028277550868361773398414753416527054349012490658528572098249423177505730139535773927929736753202499014600334073684494549010880590820094618552828931514919960553689852117078564324389603778689571288229547560878493785959026259252292669334126577537452054498402514230315079484944694495727270946101728282261284115727333444432328794203926859070664559305034850141973352470084616193393779246953181172261161741815163434111040719216736604455798094714617863348752024540227977344696758428272345906837917358124543355017668891936212142804323757065113903736119444140468650429901296503864056965732484504668370214051709503323139135169216390312626911430322396485242685085330558960173606126732324113716638110310753987756910708146263054924510367707868125078448443933707131021793692951170249888244777256687753851836752804456016873384546083367976459441549585494228840330995804152184962681049277550683139252193889924902303233236631405087015480579942374436889533295266853134429565867134913076895179289616423746019351252763210872828873183448158733912099845930880726607012770768657415182352356100819890822204753247454184210920717374920641196419750481948948946562813564154151218582101661080832403874649402595841540622583104303579655702652944508642248840002816457667854454624614394184063189866901683492809443889564167856925116438119730581616761159359839442794520906627985197800342122185311435124076701736835910047154594101224540832969510982408310196341809231259191167715992395578281486662433181279976528259069642795422592664329546988223734593740904120524326893598177336198170350233710623108749680004092063656475627664352381849869372568214797274114334608228726144783558401380368437986605896166999344350727561413590561303136141892231511125821005757132180662192969973369166822993135425720048556948172758516075451074070003291477648754633899794031239538324332573309621548307129157458361052812581139983930852245628764095334389703895552286381509058688173593093660565387662633934061755943499830800823283574083117306896775411596271647417472083368129421987711923177967786431809558402712691354412257505886897706092611621769902214200400369964416190688903713805952739941056690985980739715310358793896132738440948070407452337558482238259517140746577471934410138169559347447404719163937438385844775454284641549975311651332079571151085942893864901319668148637893785559082533243449676305885968897676361674058228592622573077096247025620894984949115687403057433092624649157451858335953627120856873571357943794621661294251930896983474165972050967615639767075321630520657092671783452313638728216808480228109050488406356134937691452528543867309174266711159757748706379857034680130687649383988730653977878694191006155788707557135753726556173358371275907171605193947843952982342879167586328551959476387632979690145441740083049626263128749888133357036963745996211711482997783473428133513839313314709665785474342211431102100845899804214586164241373786227332353573139080199067028930543335657190372009991308687756152333193977274036116350697073374728977066713065937136701782043245416537650420150639670966697658974573766896902729859565361703422260558964892128129998900638872886610561976807568121270718411816234082654191234799584729900171318755372775031224581275456548096023665646904775843642468446601257768220266683191853496260123355503532014880082881727395440426449127041335007405763085614709952264543507250678764751504162712018322258666150757851716791473561536156764761186740033969802634630200115957107294242219314754875948997752116547612199840529658126317629148257127117578859886454039804817332085345344300034843570151962852687778384364591178048875514194655958528403656702444559098245803918984244111415405355807847392175845566470927669512428489631360609242944651226759004385274260110622864078978872522921132084399837251829897118066890208527424752439812623404183746883850946884917614264748344944601441350419505754114369807425174656217942659048145002204650145053451840088699989022069538441158175796753532658437449286834835563093631527638486574966883167414669454250952851862513006260387751421122549335896574957748929856791530828024897567135000834987932044045590512816296289180434398045242769061775709513194973091261220607994423299911748354477113854490469925495698009234312893999883757506832840937981420172633125303313802895487346355901175298587060663443411756514094705878817528527473295996301602573713881754756903040071702975609230834727358634477681292654959902881700401106310312918384083026360088588182473405956299720772915530426062631318882030828775149194574542201689022726461049358477353940750629934787409947390398539670984195806680504932861757945154365658844527052168017748979854247373749385376809073447939723785590180146275727644151194118282598391384452432181621371431927669238784307122538045278445986276254186605305323760344552066100360740404243900166442366132815666301564125088927060597275564082414126107896597233468351724646837693985085546784268009702681686825357034996421600399796146038791903643802782405971146875762050514393075352304271527408181801375491585739935740049231730901089046261303005468139618076932663333483824829220204487203197252104579180632938869619064901052756766667208713619604998833003939806119644842676720489947533606951592727496893852551776230738724188789718605587828756200769724098802551896984955225773154750136141070782138311544370868127603688045409712392805887774202425135591640942611785399184277918553463352758111882353214027443386895367164352614334206395102185507738793106246580172797337549397232791625669819901398689380154464272945861238307897406133704363611435212396885472870546652613815290705850347106596408728395409278410768829006256449278507046544476425492500750542077330747193296378295568243077239326601896274590103650163515492109421607896551562326437111292767099763394646400199488885606024032357929389650278788454081711969062798373849388244858251905790995703248231131883184887335956965505720952281143279124472342325564189825865778636302202530901404980776053939815948279079357165546235668048577019637819299349341830218964401250571786126903611623705217881940456322686456484525572869205481920087919012868885520886281804860090934473492653592757705541793934807901718758320077188912996064132580324983446404423682325023221138368955817123290188739814215561560971936797569709558744041030016284731034451353203708401588901131204660940747470423870639179169952364363826824619337443928440158057973037401299306721269522788521394204804566777509487905885465496891793707454071275267060947283377306835859902257584299689581221283455601816743463749728415329915414201850662036558725875220908215281036076838041731622125040958537519093701923948305381890858445130581748076582343508115572660376457304770453370792715304050752106306795444012092051888243603261995887450367926857035776200547958382066322180020428790785498309805032890349819596184761727489446254091389509003611550072472135238394994203395354682195886644904738175362017314101811123527064537530742811082174694330161005399925367744393647643704588625323737527324973291652496471078668918657447403958134668841361194490419017014929432965879350083057130361487890838444190410036666778847137530402790669378425528440164920837638294244022178815400791901879977802215831678818944277513026434694439163164465376044215869877726514248661076104744806559800143610881127054253930030616941121507802143090100100295229587491446614858164713715928916339988693997960303541848883360958262443745857712027842632711979370190196276490353419388658334008611735862430483506421744695609448289595614369653536572304813554235350568133212111524854809994138571608979668282942228983214944700090112808316990796057572074552711482098314409934813724182653514829564292441698243215937398140022489004779329345143601184686508490108979215167416509956499663877639565672120760052505589199512256125878474806565921449142353232915302531604584634535997486647998449571548934703379856122737281553261925783725406180317265414644509843564186247246738240463622545186150249698383337572172402444848526890478082074627791810670040649034531783687296188945368826590690799180682461530192913488337959484806760739915977602519009387479966435675107859181472792222941130433965355227620987497227875232027489964543949204519545695309141427356450825844962554918013010292098869912017980221247926575727079982286939086542673129563724880728103298071380075124067502753103378880092571595649555104839141041907259806992718961906170838656915880130685305122766415147443739384120330450451254805369421411350643006180284460888132285009486955467942481966720766694050016040914621257107242740678601002304819965178055705380024779919598799249611592519021868471093908220324316297543019246399264486474471701588392219806361237548650141461041023116777935878835240703238943136072633260006119751467902414486941572276040036616828624514085090656827633201581797805974702047804929519304422017760798489275672152314256732632561906790865869517990809221655408154736903628861669854876533155725278609321977939369097315446045708367474064784787463869553858932078147257378781643672469949031134997630497895932444819070222386911486441924036464447953715324456558300652876984798219632238593295875838947879382658889259403490609321201774259745266709248286259770011182902343604143096285289902978037955066506470180264535356595915695843971914418146271164486354321249942369206184162951229736087345160248892032553584908658078404047248210625555884266867399836602916095336291978591580827360744478335060199690869954899983203048489628880210124464975455395411063148045302963692555444142235546849381639697747107129236480148235820546249803724789207599363943244788307161346084640525869357059388804841758376642395574323465651054257207792197518918027992056449916400678375894801804381701469756065650466593478639360607101323012110680437805057330494199291424074266630881768050793076884635120359458073834010205544673120224014145583685918150044190514709298556571886303410193641482883064045055143624167074789244797945901834045138230266906166403602049170669230969839163829493641143259393042306657143845336714845844470507246273828086986976585880273796922915599686532175335960085804462982908633625003976359693464151643673276330151502033314226390517764289460586766810341013994648030986583540687344982558264237035133092509803665500825120226922755870469665955531251888037219233696775072013197635983423309856929317588159211156455346263930301090011566900451193392110633462060236493567320421178407396777416017373032512369486310820465098162312655698113312338520080551131837374568430588925366172364020178637459904234276095173087127039200473509395661055295018762239710604522465326305599347707297959252089107806892282131553411571237616146525100591761797878426813959003855730864062110801097171659342368994670974477223776417063260666863314254825013735977131156718887205479123466425972390590885803106961041148515090033083711895562957820176302277148070530862864322168178019283380187303616538377961809965752610953210988792387249095744051311136098870669595825217230875749535286016170589939251986979751415480246390491511125962372590971180843558156690460093829863370928742574606194810030791309848582596233725504471205815911316830283754555917010625196654207484451149597483060803612119593087813726917583357586413422746575549949628969764265277817194515412204691448145327712775817078202148936281741179092406094792710645907659948550712675748819600232463889460887419152885511646290449367235399344417809028557950564484837821269173227766075548131422443724509970947011210643717142441443339321189025144009815489350251302938347104131581353284344526175819864369518069614730359230774311668856570128320929905859790346616689888746252375959557288839744449096597947510111287070638320885737953656243414560227852571745802222398397894843424399897372094787188813726601108557075841497015006691962295687956486400169673070770147706005857836828300557060265054175433030838354430062990643113027296223875626330292126987650972013278925441908576366096030234321266842354509159835044477375244440960219746890478644672976120054052623810480639071690140888827942304723743694376032634942297002527859718777119076288139593466962849395504761752407238129811255712501809688687837874551243744817348190507245189395111440842811419000819958815525612502793644416714194511981021802845559750693392798300276902949134600168766474249701391069839492725894737549337427687915346659246668660565587835160291137622633366214194555143543881852543943109523426482588666546151506535013333752174103198654211540824354578557485918935532421581134013165674454136461017044863032949079390360283954529482782247967103381187713510488209280966628634143070715159540533573677484336625781672871949054508842363757656531981192679098168627055416057726338529071516069685304813918613368831180833105414173839196864917389804795093394822234935968379485836769820949522359792075159329263080571073121232242569330118866974428998693885070645347002167228654998851349825746928849516752061630920519565803428311578997712366021702429783808701357824356316449004728510837577774734963190266803103807691649343762759879036119028667253027767824327229726639804773054522468727684393572293711253614077788653274641448314113580733185718651648972555739922416698184912411915624143476838971965418390328865152462527005434972119293617079023130253369420803191066410238279253507463622927346348347824710215364592128850270181933997633855690527273230666469034949852853231216499798607298260915542649725266451969645462617137293127352940630601871143386576674111686084098102034006111795195172417016261832739323872908528899869784270064112455245935554648376686132171577874960949768828735729740313542186169510842258950732625170883162861178013141113953513313770321551436894373588208708609269257207153716682029171421144030086044669023160659430505165120286894028697897411362402742757869602338957644977186769814811902413553487876424067842520312647250211818206461902138321107055426195923776709324661384554613237151387503730892767887666037915474846789975756074159751586517560241946238577301466131040526605094131927068339029035809473714969730190675459259752627672001679929543589558303601646655362210041962563317535177213315288945704937999248192449361500492769876168339821048531707134705359611429432485424167381121375503982341190070157151787543436619387915157422644037196859852804175295722235237697161252583657869727262926081982681544895224600413283506455510344572334611016967758383763769677372891200796667377976199670933080730269529544866146088622311114576723330234629263283926726144568422950561095746770779442761230733291691442610794294430908019123736315341564114996830055290056346447396111952070946889193391232866478252668260573562139641092386444355537479854276741610590867094357758073671251797275416618349150894723960190339011120258619565469323963697830607750560378748927810633010174263652159565961085350746382794156632706913453909640444840067258388822664820606247878407235009806124710306597011541819687973994412239700190828528509559983540562698601807229420623213832764039546161826022721832932245605952044519035349625120120882978478629453109435303847904489397468540835855551554812416021234258811964384789200603729193560991241209856909582091464201922155803745127159580501932167398237637517350440547290392560059339375027680558503622077113202208152800329464207369965154298991040954936505988209667363864496776962775897199249534360655604708083822513110738346077771792041340664276497592561049019360954973034131638175508058677033108766751664881490111469662140031937220636228114290676696318216317691968533698846309164030470286259607278278498453283573209814685977031787660532528670477220135122126174780520683896064063759476639666006505030826521278345485053687118997327089846352034948107312023375432920267253560732150101309186218896876776784169548753075662131381758140241180604577483785463978899382749530872993545266535616069546255870947509284604051369222476856652650693601881275087469794994977315655003992613836384656071190215699748899111248658625450258552101947890646448910089242370910511004992615744869308332429604592262831110845903509340651928069906201391432896418872616161416117844808433064624399930883896706889664133661884696444637645563984080242987480916488766793398564655201351398722623518515578453032762520872555171027695535415616201444568117522539127412623436720278919823736318927414736609355359193129837405245290160224257974005201002643318033164170375846379110574955711353712905981964447472622023156934382914109919098730243426186389897323763292584765833071052332580532204679355335656483595681468388509307188601365829384142129163939517382683332142361439223158484744711998736568256005835151752088730561732189006523851550284641841610796425534112756579382808463843525170538947217392971230772546817278644367335343817878578847451879096311388604522096690250777920708801726254338569065064400705811396996666171283535874397765766878143510244326290738731655523077375688199692868444909277425441145827700893798692850251018693682083579922749868584230365918843397021526222036929292626428584430358989280380589816108465204123319492482307931594089131320418214587161289687577403092525277648875859115752602482774771085244801264817475913752678852082298827790706559215492876723901606738148181219257030295970220925686051486347963795541930824463592888663907682373769460238766645017100165026427208571428412988820307395144160613601738978917008964028278029478455705931875584174207670530095304020182253924775429656330976756271097465080365061735628122624701646214258227916522934140673935808096155464478725190578960058681927004168997951588549813993086763095748757716240256762420939650715121180782329572012632371939279941937883603873998400834409572473454220551245562050986397638882188578166368978555476714280381896991735143720116558375009271597838721934994189519209736567576539042110983388526506904101257919520344930152344216702299162434415038008038759165607502917485949481989638523118421765103949542161052129121551211011346068337995142402479951636314484330672302301571323033271744543051831862020528972871233553899411914466310891635581144006107380029086373933188916412801011769949439138165412875549807473437516228798271658853700156297244612746076199140186671419219185801845295711761332403305038743181399579588475937426553781671201637398288650390149749101375029380454382488136759330617636662710666194336932161646480750986887852444001224981424840048715508749194432933968624809765990180593811488964238659070546951808327678062344701332908492592924648320717675734276079821039082271455212973806350631720181184260904729121357057561486935252344723969735861139943401066769143253108180384472405052085924606311162294562609889570511822335991161971917616087645308622168802832161666434168390809793818972315409355302753006965422804183194312979997446744141915094109428914385388541971387272734144402265545090151316082233468834313788051160141582265548901236243679272480289234089339943995801799299854310826838405045792715126633572513743285220771702810574901877076506402313669972951507042237696784403165768241596535034545625452540167907132458940645687415145864659724348476697831262284777656956125922586122995163296676317463895244304483594441348129278049736737387953974931513545609069058187925339304470453359942873822483000880291588865046205369844864284273035787330220264036346071144866399177067674505238371320991919871128940432458242935794329169399887794699395525466501594430066827682868274924371594780672284034765738589066537817855957969239138846817576036233165014253101604548644508955651737647864521442415351090126241994618337513052398536024045093753990226128578595796221660376727052388690078505863293372472478819109012883839333156754201279233402345279255822008634691712489761186496769154645076197681464988886720839329675382764802196500750124153868608945195566546647137447989770189685767052755139317286821457714854194219165977507079909159923922162412845639675736523528414812634010423195286575345052645111384649397918670505312932310494782020340403833912626697575098932751284534087440004649305036557253167112850908151730066648763193172905106948789580481457003864078781154025443069617990350078390594619889357523373672962454195936837667936544685645421246454062596500029516262609704239855192171448615624463289913446538254115902300213483918932526898953084470320125065881429115812180092733888243368588268271840593683272022284852534389427611858656878902549218320632579286164741650014045837367606171815034616256965919291165155475384007002508860970719108409030671920363092381629631667709344126987926706315971573324843645312206810824757160408929950971174712792412790202586491945697605215483710550901357229444304978474240934296807417005610059555350313625675110036484052303727555971903746303031457355827447220226947447367130127447797918428856222376385386676077124629881373419419738577341200443488347467786351916695941392172694096322489716376440896733353682633560396457892930741710487785863731130454487354221729358141408727696610779591271404453699318304944401968601200959664797117863470989284598504876392559687151117316630161238333249976985175271411350584979917415104305359093559425487677811914842481534586411204411877234979483986996016935985235586720713080395138606600680134550599664223418068949499431979589426129542856173931568426578639278194953137219816715638976103509505608784034224186172932022984631193559230279516702229008873016147349696888988296778995530675348938903462994737633947088006009016185267937829887483622552109601048605268525805866181185005800192343164549627116897118718291132362493619555625208548803465074958156383061774195026840965934237232429248785871925955665747570634290961069680604684720451305744725096584589776390658483142136302454918612010280939161893282105367283272093399513925215233904842084777208114243478985543183368837976652826537536639576504028371493785115732193171213174417718818679151108381451972988272744997450342616893198150344773050120460490265651870346791189311419794574564424554397396884967612349053584833491189804947055649954261080397432332156652941799650251127979454623230911058511103848469243267288470299682504932314760779644378528373936384687658430563101128625670546492932648631224849215195623907443881196086177399541561497124901306308631695112189682780142485957450358654462298299025798588570502290721287870458784006911990922583611455790194356710982968673177123730074528837116483177200814391354539814085061096036997783098919196261774664928842756304355960987206214813689587333511958247303201804176667201524531166251679458313917170132572202008065701872493721047604546158168223196114212407811033320357849451387671298470736081509933635514688328980885274998905210149516758606694136110403001204833919334657768035939939562610138570019462648990055318728344931631129037777596621835030350395859058037846103398164800552481490372375222868200347657931402270594500846581911650637117330745240900798762967012612971144796773971372506057870474240577098773063451150310311137229208192628419741972376503615317785752499908406740908713581059032159958538156887447016524793112941775660175828386812283918448995125920033370873187811605778598869775826877079975564231209829756147922524974749260204886404221342879193242429556747964475160209046058690797277908477848487504704635184067363791193113754365070722141509122803789470949421845452736940807712164780679213299577429394399530857866624386619713684594840882109616468015827710120956595986285127999911485532850950940670895565304021794414667535169015886663922435603718247404695289901124725496478544876156390617401386991298717973345852556527392512033246107706336375746387863546621176946808761385146198879643059639990162253481415559351442873208690627554099743075184063144840127757562053433048835247387583326424291793198650794554853347237218833592629667273829817281339781853550506184438707344320243098991154321996086847055300994379923616316322681306366346335311464119401167816590207853134962335712699531913082057454280833697305784072511575615284667053971794856222826674175580105042334752757521162081385985115703830816386828377204699164976636942622480064888872022346316149950025833550740406609825648273161297764360589713376901645861989635310537013975053848417118594552239728381420885138707203189327318809257088046519803923647049574140761008970281733570079887001780115954212770933342420152581376351175217942104743997500920875462305138787978363958398068704359650617940743710817950806600815341742915775745409581668991710106153026733369059906549932187452968727042902392697733000594292006858730626041409543837464070206967625730730451917354730761056742817192380430538338454922238253287542314642950465785002581817113215837704882964123956146102937535199161579627794939430882212828372703932816436700373242083132727264804714638368003733750161302303120310389177382134434668250769312917617814698506184285974696477181181804527935017269745950489809133653962589597789403181488188492229478903072185698205479829883321306570578853518272151117102393145882580878782873247624076739498375604419723263099514303492479470353507961697231791925175997945914938941228261783833704929024628189742798956500497263715097988784065001996729673193978344079997503867208307402218955835065082833079829860810987531491814193670050024183206642274402063915541047883529260547715831831490309516140443473507219370800361875346294206323220900299098016719898445440280985397149121618514932523105416002290142123634790146779653621023528057386236130468428188607170048363521295207424833963518800909175479111203496318532139197586223030869290269875142961836071997271137600827348636136132384455437429098737764564743486746113001802730936387609581766186563159797932818278464506935770706354460146572444181046088465964021107122947335438162423133210384026102266509947447437860182370975565293116457310913185392338086415047438832030359656712804162250607205043602990322431525731708798187945098095922780994675613764978185916587730487129633521633842185596334835280012903220041615363628210299611157335751381443784901220018653467985854822131442132976971507203399046565237151541130930249126308133654005076800236572604611493470396832956249982279377697870466259143231346810570422656269989908253557146070363131186959411816687056006532606992631921408433915496726223458502460292018727937805691946810899230358558569256593455764422122829615411362375728116234181463852700824517061443381708966465578531178500873428778921690345846156415669200924759507773944940316200344047044806188964025308927231712087368481746618110462018799332533840442615210953156711021769168300556578319700866050593002726912387949602296452737627287675520381942863000772338799334324844836333747591153045989455894701323745217847092249288044235578312730312295442289278563540098763112607396486595114206299924479337480958767051164199361603413231408670589777819045538501658092734614308370913474271835942417971118972888963567208350325715037359595337574275746048421393365843300774519294990537436765718511757912689480243046783057881807243791260929123748810790073936555561215260134036819493548155716941848637731731114550048928824682206757880335568679212463059034915597722350871479523969642307959719912086408539202631512763968956600784701780668496553709648702898635963107011114135004060550504388756916178796584326125166364157272491008803853596431397201418427771252916013803620976564226388050707941124210978352645959054697050917797786766447080754481431767099639191795805803636773248555501465152973547257784265260377392365766814413628761126913272455975296967886889196168834050134813785596141340992627130007382343879026922834322457412356794875151753834122447481040903860595205367836553813137453112326566976990824277904229829509246118906108695295716059005261578849832270159955840236003023022672828486685375005959270108780480192016376339457578709429870502978692637637782723162866543029893719441851413732050672086872325182938252043998209890246908641568246615662786426741048214660222988167942003997308901598811313270527148813941513542361350272057641522912703510841001057117227182400463406180059137664147377363311035201041564110596498699845437344300289527509102057112270883128959396985153455600889479717362044470684704058074085368656837671740900626720234130013985215203592562328097205256719053981866956592197548884706318229230036767281987512432383767229842740311049762165639954076834925786128132759600126792159066984479616442949987776069567843042085300663249636052262942031141223296379090261808076613739538550345328596531868418997265960499758570222845617913056198281952107287099014440978060601589863960401871522282370769415358016829987341717003739945375587629178270942206463373451133830382180059911335502871953505926929711344929972447779522222423967516318344189745861844217330395773178045939732938643312725688551732375888299359747283515320194857234831342116686844667698208750729031186493531716029032338623490000698817253441518776380296946131496485052827006556300676000713024833316818543347287179007837716519028699903817694187816121190860894211067803594608789597958207893075930776324387635361807140529009591035371784356332850501126306506512962450590833561272962486388968193506535955719651503953792222761532031349920821698619060208390730257710775144756127667140648752258863045493570522146730039439133190417304276503727783452918215314107938767019247502012232114220390739857526283459242686103814965874434659992507691791497598782598386791308781827090731513091689713427921082319538503749229616032625468810694929081100924536623842936532470288209640471945306674080160446632318474043935970461202379799177464712440031296617527756109584237601650646855805894755378584178308940265186156798666154124246177241349926265171943945315546232615025445486236110983274329729799259598637840066761431483051792117006428176456822140975198293594034501680635164038868664501253442669086686064433335180168036496404062736934023520482451793983366073312545907626481943253276292293734549288684423225354946275531389071984532915783363301174234213037912113499398237224128232946060059626409561955279174866943051127847005557068245566957520162803848312182129055655548828321468444423848935059296865896644620155705531570744300383026589652902226333448603540979858540354233773374857658823858762305301527572017869744716478658638378091637138389526458634525126347656925874425183351183480661244000092684397942164115232584779434467256330369085143402065878461812492109700891577920212621293291731312216324001094139362247337015381168872802492798879717698713577447420732146162917105503416024031585637165338021304692037116351751894509976979435516863430969431039437963841296253793025507145377511116129457513692644013134862558532452185505529867147473512057926063885034455670407745748429893134428148509852686450570722498881161126748271827180672123243167687995671544391991915935862380077910374280977774322844800049830454675872342652132943774788065860736930334047267182366230143594912078443828967747807320165660283582976958102032758830216810644528058142067999813583968956716090271381720180301446743835390849312299195318953269411952346414643259388752130033703445287681256872975983977015979499621198861691813925311513727117872314247927032683445080173825081331691523765592930991411554443932867823745632828705166420444768182491684893044381684064562249908187830427068659501700075388707173387731454048977206258324354962524388623970770939527340579835113721047254021671419284631042957111249076059299197941019039266367309472975586618705708081825271101222506782995811532989226175546024077077388813168971108830135806851250149886036911769144178053844752399128801914628382032500674753439540102356084064387826925358994720258184996008744729766112319301763881454445544692087516262861082915095533155775808988479132165986982231111093305557803796199453718501078290470139945965331903854087820308412835490633440154540323991447669849967320423781366044894734049445237286334980544499123270071868192157155269305597661879566359805289484918000099316045382088118910180015653277488021613071509210009211250942125854931226699683281887648590640460568446440971561968606715652214335568011081157678753067992012112323022706503852894789143345513195073436807173090647845766055746674690083769683013861608325259372338051512391963701376351353537611626312383898508451335210565473045727357623665197503687007255040086359578834340224934343948751324271192252719308490879372794020902891914264120492496539445913659189172957300966695952436474480160197779785529577966432010557896192301914361773001798352869200944756781545602658086001385810316174349448115876329769710822955080903757431842919009679001483803440188705937786424297985779119063826135117214548619324790938298935833408444680023681625330175419252459333028591856177270872604643332461836900399050560351662235548747109379755140000580891028572708005625066800488382500346979814072847484112412996870554733779875763105491498524024156446980733917293785427312869640639396375113453431487298701736510885377078858910077656558826090782640243954081140450828690606922610477330103803777815226078167177374187780454855286521913694781718567916820460446011733263798950747047065074486949990081110810554162691727187226914413641086504857192483829549986307644598753651611056230166873632350888538521157450613507970120975493977810357089634912611975340592973612566726147080940583376930035625217693721960781003517524332294473539686521590462105493581677766402668530869467530003570826666601528171819901535627309011580616557780342968049635473668199589827163171026155768935198812404374001906454736420288417038870892520648506032712281875699961986980139986195092540054565468857351060987164974919533294184315873094374543259796313993600772181028793193543929104163613736370977600605350894486361410347353617979748011723585328173243904375667090257036244355907649405095718097166542766992311341196236445586315034413228288208295201011285307991268242930110539728577411739694882178462383418800397642176028267811738494448255266895986986400285221290455576706434326291778613580509634032677643352591198461359914494373074475634710110020373634554399991035963374835129309804792729325756152050518363046432060328779160448235671001319065917980175777791720930954664241292858162902560384418930737604717875203782599394409527725467987541810497261957132189344369651338865535403765082703793270532925648220661810664275095819914064326217712952580452954075702311716285653819305467390000896124358699856125409631706863241818397265891330500923421992593652051186488237420392108223809486675188267186773164170953469112140360505449509135445941743095126418935038701901223913728045726878653712983248191294697411401987786007737897020578166954090694859895931614712189415796926629243488754926952832716938592206048598223517923906838736670005214111151301341472976577863458352645040079468028480123568679646983228738200459727475107554432480597400631907610880476064444160244856103510550023917354887986139066793094078482652301890535964212618777623950967808158250955186037000066878849129469102292144932001627045112754335989444380885532528050451469976445386993521824736685689114481469292813449476875720873742536746557747970501836151466152134940475481784800041177021493299339010024327076960208530634223066124300461243212179743907761785741107721594305228842794695499889105463175101422511606137892052833589073849459341495014231413138133552801806096977247908783794061878021497705104911458644385491339184097543719696025196140637738187047749020773197018609347307375562730165381415978701389414388056014214897212308534326740538291284513287068516521408539302859098000358723040263260003263933515449226436629460811941587180293288361547462420816277245506696127484065377029890883822917220249620821863919242526442166551226674696493870846909890529687747539119215347479353803091222754217619428295909877639090244203106427801539671692334070392467507971326537320205677980838010379700075782218984303680487582500402206904405111814370089940129740762364354055184733481595332565027128056282768852763290360884587078275414472715960982005750338522045068286371623146968295634162235478033961466735037627567247060069385694301859172820535384694671619732790790269611452431835684837826333462233461708898517499822345168971077432757112366432212258115663758312317284079142397627899661056608453236917532803708476999968480105271684336858906854763407286440783331840421707231250131599634552883067662683251645872885352813463710552437533379737450321013881984482977038677512772203653142231234181713651108960205350897193284622012790893221441579320362844802248156872720880308388457684546385776513839586805685409698919191621862959455792173689616439539594101187370254412607647490874626909488436914623291272649789987616762341019212508501592558445807609570215961822069214243471865148993038609046542731435962336097254048442063707776718925858157722771225231240833439629258079484980379111441523405599234153898975208809233064789036207494362403760698134899361497918947901888470198223802230682156909654197838838859520655727285894818150023201258529196603720247660600161755870097468333029303229461645586502515228868981612626862167589920302009737401258899320043003352554828477597387369835121194619622539728727293160191215413999780947586344288464624392379974701573993838467509450923502828242455700361315880912767877418360978745160719526327702344603377735057100186613031034061035000711276234057381204504054970630667717664326878315145732422646503211944660665069441617072473839552903070267746080985353880435181760642482470244031814275333800460597805549546430225111368556595395892966236357999581978338496622751947253249206906462647916713294033977618213914974984567068695920805497074636402627445350818348484815217563041767073751737121153010657291045173839417014409948176752787234773828284644562488150593651074318085668349564599291687612339253437939941189356420260646259056888961757153759047631085198136896186601118501763672025844289587747019674112207367520983933714915207178437658478856818999417317343888483915716421980305430822714360033790914645700127743864930576829698012028996111096109420709086002642561069289045335548909938308111384407418003710680783983610443881355546403601505135489755393314017879723366439410981181185172267477843346993411061577713831706133550093944081312110047919195183628200167122090830415783764036619311935645745311511055511140540811868066748884072012561468870325917899633370224325786894622971860741451531003668808420379714286278248194962402468334088443824046276230362531744462275700563689678682475557377434253733116374083160104903944321975271673945357985568439201592402073368318843835800009981342918584822390095459880508854013600278031921300776263361790616419451303790729155210728587354897099758605802080925553303973192733893463168097090350305140655855308379134375246095138992624696232190513946274821427878793224369282095560986386622862884846948530249863838158994587957170030991754869070048209600527678829749230404357181862494243798683496283054968666818851806569677239059427980588099300583822490189518954550783094834680182037230056896166684928723975859559492474565615785050687690270924265017856178324136723176927777507550962026332675813039493386554656060916454469882074098120948325739023383916204268578549675938320230372007997339221313680231371930174152273009364183723883974340261940297314755819011094294409083151981274231515016351437787288731846609814853077044611313063357790998050750295193116787219124877064156686000105677510930250815765638221781159677437107412599850269328069901248320657923833874227369908640765236636669874131001084252997046486197273635502188516682859695409756455946362318476968899253463334662462951817606857686673803932780367443289499477145732412043492736258463718308482591615188496644572180041273861576190622411955346759310069383085257164789078984678123417510221717236644866201285152584533803301045621321027949565792430443991492505528394341256676678606249116601084346330472261284604268676305938300097849410862866013036333522759109979898962167117065229012975610386625721680028005908105588354516950367727629116383773338024647192791152279050792315015707044703067968550516457268302945447117334055713168603856818313536296422218034856613356042874525274637720703655725131324832140744073182244528987259862936799172006559185371390658002801279616406594132255261497894553319337676193078594274614569934531137231551928406327333596962981460053419933687134431589683141780766445375027658715403965275293164391738983762238561817258436183560381114324162279649149956692515671690056750492896964643258587693083993395164924935058398366080040210247049931967464196311455081433392663909736436485486371563210810068638457040268537105100751822481793301045545627407916081139862430883190296709436747424257534276681501265799102882328880451028505842032016118517548358533672457951436783386504797926090651959842430252155456618496210370226376272730072342371658558601501011141522750611953340314018902550153280236815184096003395024651025196836568506442605593754720906443713442765009918323014115074355470930697657263469946839292770228406381541708897982208172164160985492293661911757643899160383848955659719408025787740980062461096029068722296207537798797559301864728749437861521171083391792090882894651615389369555275243881593006519082328269463444880402253692725361707873409497864732760985066714244010479440589494418040069466966343585711366696101994190842214909780006290933178916250941990891236971753018700713315073097559821771896775155951645075763919920070096093023785025591314638593729832954935927043963346439124056932105863899340897372298403236243613059064755445344257420485305184265641867953222927055041209935404945312924284634848646586311590267066167166663874511060689923110582287892661447342179264893989532954580836628248401504345465692497936341287767624892479697035868861142998448514422222588943744155097901152130921194977145305079119749125605155021962201715794486433758894890387201684641119823201115453398115641819201496727475500337775633211728903244941182366927091106595053911671215876581338396586499917151747499277644208245888648903789423702671437838132856596116842386445756022544407062629448477063022844427058302070313936585045533704868215404536060458918120047151396168918420824988123928423336617542182792906121111355576285504125350438918045598443320564291203418781911325642070620416770158125663457001046261996472952194874453276657689247042222296717360379810155323346177994673636859912114837627193893125438746505195493994753721788213794613985308752037691374758869120585400179505304839062729889696109573216171937208800537226919582754225190282229643963341595750584460550837720547463381289658580444472647963558464248709712666335687120634408192412508173101987376527962227395792826684271904235204871609780893368659724841234350613239370109908295113628090741566969808896395469935720887009744820958358214670569918152382926004081259535116368000320955096872419373731621392103664230621023291581231480592165330623741179314475135466934551156431190649826444774713897661252049705513383056776861413647340033086499502093315326505040547172976418534226440705910169049036693390364523370340661144907123099633551313756009528734662856454567757028803310535926754445681933485606032385289180785295781275540627648840254036234076990403405195100033512082762443818916843620986575684101720543200881571945494279366000640706153273528074629819183346980582798708754065713856603156262301884448699094427557009602973579331500538681377666914310938303029889719207736904760416413203062749455599362170927872996635363381432074897711607811121748407944831802679721102788278497523929798053246994328173764749732990936098628457684175805259398655449938651963116194206784038196068290440701991896357639477178026275657430074960264321138295020819642514519598240583315035892333715756003316340372001142188094749341945054976371541471950226562340079086563369296912172619886489778032096107314412129872358832262474021478885624806430046400919539971529699294084965524405420480018532464011865261603918653785818462004590445945407578540937488788105949369450173959913551690130138420387797202089966868697065172814416920786617425657020237931278276918880508138282743266288398857069076067970721300841475085581275427436875520408417035505777205773547063535880527675414105266042919073433836619678194989516810301460021296200753783598495596160212806935160367576628145135838500771251190186476553704422224520301176705136986653893474168289370429714972879809996504002450245866304243150734598697336326748785750749332075322925657321527780859062162929347940239800606772144211048413898192823241704253556185458958454606679617168856208686605748802576855171630706154820637151576862180306025199038296405655781226834754355711643767741928674051953266290111263141823550507050150245013017427203656591205496595159970939629622425473319725273112202246746445809090692039718667638225032337338922144102910483265860193870038019528732457999509337601513674094395125750195732301045348737570940622234013374524062594800055164107284592545357061027701285875369412623251631260152636925102597052467324256426919532718095322030647241656276325149523804510698355531241025377390984529638369388505878234369871505900762868740156116027638041486708425052366519190185685943945307503252754374201614250562396276757513686378587169094375227001041245714918738491566296237327281373847433530737764012645719420478182947256171256186965717782446842694549703644511980728727119614855107806328016247244166119987708517341486636444142322477799660604061008064140587880857856533157332072600528955520725901435106395691763644326013937862964716867933243992699526493048272472458963366796962781746676271127128239916603653388852345032368304165950727507859184682707568514048349027414411999177668314474008077314225525258137018836966673975374928244285340695809622454966147455322227375131531569874897948565233749210534170433090727980643662180559630407145609385658638944474913925707966275471261153301001102812926997980558732473732918620462809151162143684482549143705910155671986316133123796851240492016571522071218717528662037041308392154864961509256788528924940962954458845126076799200578100591844215667418316664518092906395568174822044701465974060331426038590156146826479848590741105163117548685807374880501164893211802796936773077224812844234689206604033801883534754264294298462360354591173052554124357822794660462389042610598396285575900287194449425918161872704449675047066783950742969896291075412413357440990005059900068656051725699462784933430315357449882779666901324179816794136515218021768770270902456397988173218598552717738382132775060273239601601966915763378606778408939510171127330532598060572459376727541777500416132087401858780989105497724679568174021296382107681031477315034690714590179094314293098932222314470503635323518639741796063749918363887149703968837435870839415007445703872096039994006844252981081489133371909934772852896281396602821610444392316388318409572767980926868626921405678975614131871442185337289484502336292804741899742202462208683202781804574095932277693172209732644650708311969378399378996940450312865261784177285653101878583451667387008795038916232251014364524384012531982145977939409323839270180118307884363200714742351743686352112587477649963856133061781732302693619877953674110622970382922825345408833943298087718792613690270993546314187239768907699443164913555169335059275311079203131617732562427243531657322859342468692895112682188317032227914080627253629972419553961990619498965628527058451829593800133419586048822817846510055334104072434920487462654763548767288833062671577910776900677469820452072946571927739415776990924120116081838895481484669353632710492982523800050812346828490269896517437338837907921774680752286706751605625580534035932047350545974936541736949854350400954248437737747211449304000113663814841596138804014200219931066749131145948139873393981363411760111079833040773105759744034037548662756721214988304097078778258491551375021013005694118883556718525856417439699625041559723184726993643808972250435675519542330139906530911290860072528787266676427623188140304038489694358271536666087304578476468879979957126220929003247249427820928578881368643663954259728095684879041731955561305348547896519842948940313511254035201482983914998127378517844543416675447868037400754078262401566047757114382788601582049688324799312215613538332017140205566744717704102198922383052195787626180950654998373302747597481165260324675819637956504970635802706937727523474399519026750814644185215394980055048324283611919032690451953024478735123356530564153402804268768463084665495444442602081078733036147726135410388350646875193962600681695952530079371389118669225325265574247721060657860077206915962426499958672673610816843704354828264765270439079471179141764866050968241802416672242247459771459926385737235428886190887444661735128452655814820966935100445746940428757300885389593858321768246145031485634590495856779897119238332480301999525507730535601103827166938307275343726828885788675856602639294356143211276922075337237090640493627624307602905068749484758888212328881521847194745795448562809276194999713487876865673511464179240411673545860154011951757869503636910248465486741890041420152281065605937634351434734726013567880020034343648636214538223235844874128379935024595650693027963352153843433395556660005191643704046478565528657764703537240425985616821372890276272142821194976659832071421986119400600204511360287844870612758894222791577412658705113997058226900077299225527721376186923107263544948326793806049721224816832524169650769432722171931330787002608741469017594347917453516405776227080688234724282525258817323637202837087091537988906470268338401923458858617064291809131658682621715704897033198996838612260664428979540384912928198603963433009515226519339757209084518892981754819991911211435250606570229192798753213311069535014858936067374853451501464319521195550651735170548863742229824966177646226517118816794962663961463669388488563441041543727113939535410297946823834062735809370916867258898007392380348893321255511893631803155044556777094401467720560725810474056337861418709637394666465601169594134731191486310097043647253694010911164905526840331621143024337740011525110749331240988998554965118495727424522201011087082959900649655931263888581127125318410156400841288445300643008313818082452577050286945206029160305847432465699418266426982784919370849676431655198220697075457041753136973682933302146365638154623540091866095496381286847897507887106169308600740971309163950657656891868625840206419890022668105655452450019552161568776011088927314532780243400435652907518097623338024345903906343770406209997947225626413898088378771964121267573965874631028512120186596166062191024892896611469381471201868852665707356309853375913129469347564190896274287883191206802411235205160366127317810822412770374206564178376061653982979542592262744157492094752160674966058936862382532240328028150350261370405874574848353772145130897565887226094264677073072190881714609098404629204097590601841447270445696152365110273479103614847319561537638954354897117902565031361085528832228110033049291669665241984329133030607148252267723739464998229808557026938724391344586965913009967155372002070526785327408042396142988568674143997158076554690157803061963486469869279841032139188450189647909122149260725078847824472003226921210797766911597373171177415337238959367970942135574469944574864195930235873399405491167801170643842644671027839554124633691528909147658871569275027411294842927914014411875733934580621650213075270953224531548128615704816212631074545861953076582084456586782417937501247168762350974357382782332740716996745383279538753819708483543575956306977348860858268121797391079885746844738247049946323252861851959135333494760369520828383107020662142741845289592252093515794766063502069365720109637224898590039723227174432133925327145817029702241748792360539854303392451703067811472042873304206978807548985948233061540076359088840922318149019921297340544386470316223859481640602402359224747395117636305039638242507663081371743910861634045638288374753720499539999870091885700647425234196129510469691334060862202012740086896735987907129950023430756913213577343689720434268578247406657450563805952156414747532737143967982865744554653015822260445879516935794154638688608911746776954821665816263335927968454371718286623825058430157251837546685489925540095070765117719663684197817060529046162826989439646322685319228039108421844840550467762732960320557562774955132974860972528138465498755527279052637575874331490340862186577792391145777549819177004162593313570987555464065869414001054246941879007524763563767938276076446270612578399852508317367355610825531586192238659641988322573436182101415326120975412819756980041518216232419582660936239878453132977816510236912644629129786066473263205094672476770294522120380206066470115963598767053931387240039131657840690799781901117157950367416113122197137924076245813945170438860821903483034955837806067780133555435094188723504824343699658210184095353769168438370300131238935507359961629973118629697179546402871918787319508916359456007179706538379817739971765610610883037480335920391873887226072170510029697797767737229868833259926888909491811549531619634789025368619664486014637249679627898168456119757212833953485629071944122623904219281485584559915678381076655100238999550557969566095861375019794594247418572050823729198634534851030222605127563815202255918804148170213211864339987023451704974144364561189819750965480834681008026270950070731175466252429166920440808946398439401292329104345954615353628203999039297627313837035717227592047081222146984820408701555825970154198639500870753990553094905108508052278431584862182337815223980977481934310918934659020582654686953676729681469322135908601703563439492175576202091238821674061295220182567688840312926462812169379303604544990069040555827752009873089712333666676849699157944495313883616165091625846673396673415201363513331932584077575954336114062227126846942060308772713089805192174656784996498432284243443503965799210418006939578125942396686151913479388447086992123029444333633687275874116194484512342446302470961043318806112824209801647041464656663582753508712039866565174627271190146403373636538661151922110970971883379197673548397664813788157760616671836538370507667479492180428072898869387958417252952461987336306158909739182746892539960937970113498579686469299322889118730278723787013072149285944743022389767157701753534568485241142168587243966750761235197826489127398166852412261978235563852192504538382200554721198564316465354838112382005599173687852660671848501960166060442226495590275224540278888857317891158504295103905514269912171864144517786753148015767326170503178313716322533792286682527770764244713659913967768161302549125843518541903416164928540214313058996566755837679478531383033904545415299157252808234278747340076032643779622980759537868349307826879297850036014820024218665546225500868930864418101140031403179172524305900677535259288356118604706739378322604415914193431365063533503707525131541469603664674120185300490235806885785879292422378619351203813475195435377164178369611786820462946133197270157843955418739570329980142385919475608543896450002297173727588369165476887061489200761860871516367884079395174784553951162272985244457349665311719771995743195671248833368705223173592015358093216425420477992050363514849456242352483329479506058027700467149062597986501707655981691180783805859627369203006817861009815333157818479189454962346183054546265134841374883150907003528632358557033437451858579977017921393006827574691834001958332142105955479957808950041377995856596104917837246740950223132849438004883019274220929786715740961502962848739932077280680138505300326182409076154890597263793306538940696017584538352906404846117784060877005437525699229446605046013637919257740278866559921793727220307503264468233931164663986681038434392862512163738442771845196480592943817103067814434078621482758293362715951183096641264685830751028312756472933734548437198371823476538086308509943283862736038381282596298808721093329016094355455584245278334433852940916979429966850760765310810037353087360181062700273385037239858359510637344726039590771227358403921956079965037655513963535937819763900670830109330890632688757661274970020541421553842099183310268002603675008493120148641943021464646435716948543447031134995438221359915609866790982389906221772676838349790220099421331920942140238296199435942307906659704379173647833579666885204752270712541922929013521106418677431630049397689539031829904352669665126313740313705292604746092945906955205140903534845621844472540760073058564859411486817852303988293758798561131810757117155735978840853945433185065736188729372689463609201968496937681697637498793861134243944649651597332267146844092188662564431858319992150115284223887840590681275766670710254820536805734752179097724097772548332910523579101685596779799531625358549403772906536407206269369927206386385820486027134168691600495814724023666295051411803232349294290424352260542615562849590011875212397235920514399823382298172956042667439770543978552963530606489044943959868342230919534082747897245333196305463808583349780763647634194260956393806583112225601505912900305131700009979844396172812381266396412034886580912437370514368152651959169147960817962176838085538718586721845286760988379374280003558731684678176793942252693220172470490712494972734496765874470248606771770430582782532288377300691906986818150884906425567816901802475089992122349051960684114559135650043186247587222944939772905343536032162935872666311232167271765660111322696582493088755206147754880626108542586808738505376904149107653485847107773317630411237577895719260250526296556310107786033260117329610786066380013677354902816313563469339188638090317744237635162404113980050425697742753790664905267502324923969877280301181118424129585142255362071878037002140145292673005643567212949719035421052658759230910434362296770941949263300445016616501976307912327210253958598148850597095586354606017780726414623726863180047998430080028300945332141831487797864121708653944880413077620875653973436033553510219141303302839096145742650875853632637207359878063898275517334510886507872120698754401309502051628980789173994730156009460506089974850524800205400347918918199237882884813668102312500194604876642788886602368234599578208892626125101699857585748211877642624375199912243080300246881498694525952153561758044194232586970931369093169085798171417863517243409492876115318033904460204038928513976311543843269553826147503259621742853022216959883623955707963789172860798992374245501914188792609327552414175513598869018352444754855458107561374609416708961242251807418153055793044875553903294999185845547742240284398619613641091739788675468785955225503871649259075262023840848460247532386781173558104793522094536866804183701351754913862302629894231705699908885524421946969907844851071098140222370829167801475911480592415975147382232242443080085187674333095970767114323842384041615938797107856788424698534939099150826060190609177566688286296276285074492530840312295590231700662565535329901657734546395265236628822495166136250319555530798205613748357326915750903546450080915720333474535519494894145601205808332363197799827451564369232252424088011324885109270395364353401911439376070327765505834551177427297450521972464923492816710115512399037021098569573437457888212618337244719004455173725667863515014534184952592171217036678083705611412268912307243500696918159373151739979248912411607704757330936471354142159510674784163962569917760145185351146047161297850567947558797020206191276903851676037068279151807217600551662607605445454798629167269946766846576043818177224691198326249523308455858803356768663468274982455766683461309947338818277472606223196831640048594991022699636007384812651533817897067366308391160414678688735379393826927715600336012944008146872963937849065351683477169748239924474458945304896648732421107679688896688594536300450002341782491035500941274593538704616469440182229869790766926875243286556741714089371842214412848638924818366718737171363376037706906835179426343966381072282645034545952852143154350717741763168950936122983289416143971781382530054896145141223118702194611043639275267435354485135887771931449714225557307369917207014469616742266638376725491925428222335273381944670416160730472636270640233864531742841604665117561576724290402593919037569320670766982708493091088392471957391090220188980332019937480297758487034891260990416396126606094299774605383779445993120394932381564823874606394210951644961410791693919832576424005251998064618967040091381785135747482946826990478232619990912425683687802605930246508023278160244869265681328912849871548299227115002915513816617800867026570816353789436718203597976537615508694298826264977765767637403767050116497196622490483471468249282541201292374763769572684583806585335328119632443934469427521025672525742915384913284501778787918414815099707325975314918241621023981439974400321725685792298712821994693144123182460223001760294264455430188961613258029867747907231365109632479815239804669129249907235315824131819782920253059966592235023497789716158923352687819605604777391022888146302532038099693763365887020215553552003416680667158383113086622540779060071220408755623091023498955661195328534764977995273172153645421404313444211938240641074328140128526252374494643045385121207639110489443518265020661062301875163695424554251562519655646275325327213023137367964349740391961073740881530907189136040657224320966327398303317631582028690694125785253948851485917859830694195166369775107901237237473274710418011734853189859769963156722878237868015786505809304964225613834393326884891558166168477975620083743634395056573755495638672848633289970675454382233911089935254200047931135533195122086393499260753339578760544200428343276105294271451094374112609064827428406046868926866279152912061368972447562600983870311649096091859495683664871067033033778297156380372521553637563249095084431673594387318133101564828748633555371331606291434627732464087333252544097843838487516322269319635473174157417026257906572485809279912536147727576596414924762417206360200544886452431046534911579327536503191895831051144467137886576233335363372154462920654863869581001828672641891138749859176008629499681008386097437294685771694298479039154482710887952084148159059387584997069082056307315116543645650501482759707293695834819749593696133761493844661319428259542090073528798932893917713499215765605173576678280449753914322900433766981423640133173279671356112365002488255821660088614694791327211238158402775470039479121492513209055416184616897665710863595372648839543973274590925327694614602318442525619013309336057229569009170755606318140289036682316384166334051885100997917075172095944795001958810984039999420600262533639456660579343251653215585291042082142061480346109094725758357576207521963180346178275446797540117895580653838287223034404090668622651086858560664591740300632737642933933466848961756039251613451673502100488350862832834424755717757330854054597442915679184530271765331878447916393461427296603540184550439931673889105445838356025893669152854713606429079386177516575984995868285217577504830260723997842079746219174602540232839749964740785973081201072032641859672091888625670624125545973427156427540118886894923965633026869758692610752317185160349116820618884677010335320632682681832087897420877112406243745274538330433085991327327720223345984785027593302404838002608123084553746444191899017387204212868467110495075375533868536721730655276619569494559371355345175181360398367469664343832527890501276558029582583817036852025827364273184679814129874820721632074925291598660507235307770966373216180689187201893978710745766824796055614942973178915974726358239335625406413163171422213335416608237330855959594183266406461436643478927218442985224548686826030948308202847446874401936504142170965238373290472370216109422793736449487418118419950823252360753390089338665819309121871674823849361073302036837009455337837355655173260716327411855752030935989747019722269252946331482054356298131065142882202669863722841759519739749169556667600609054157361704719585746242132902895557681255847112523695393243022106901961332777155660065819213043511715352881859753446079968799350383116454451641487680013029817455529939747535845809244686051959495999858492340733956531078078535800158481278748001917927918941944392667850381383061078464882837451868062996826427133903307236487536421778348945089452417594715375876028633839726780162971713437896162358940741409029908679927244882944001008992639171006175940909075274687813160387693967575582566281493652590973252170334053702105225159377196327202236477377848522820686649113735927067617109779333532265624042646707549716082295446369143831183665455633577738032388981311122964995379196472297320073398770842231347292079268706414488672517434356377254268306808832010851438861581358758742227448092059562980492780471952933688247767020565589261750202357727896403594770106142027189861046082602816882277683702447360782011969249866946329155417823701933238797136627712834174045188421751258438070300003087384981249936786065889602236853349289019737415473815317406148526896233115901300093035887984472433377297212756264516160541666523838994476173351451657313527233896503634154646989040247940048082469052864450045019706679880285546722119291343041090524574464900837238843279538201116484679228915926998652070520525171279837366012241210621446316710371996874437483498062267744406231277616073721136073244210380735087794301042676250288719300144176327314197309033897154074488249847213240120708589222442794973091866716352039719846980938241130914983917320253125981715330327790947869305547333306734636981451247827216736078899147288484386408630870235706714870078279725956157409066413771397916277360529222061497782946738183136332035510996838363763795884671464108311800605450589803971083469294837482168604104907077736664462562679782467245186073345181476845054620774605231980531409706910520880724714654788441770496857344671122852921230538667895684992790783224879572160165306947085212554061119446225805276457865462795887038806237472210405358441856636967668216708673246868217608035594342105995881730453027578920183931954162541044929168380586312845807177999910260502812542131625700540683662527468224814880133381836472352758492550632888617310541145934850030502925632916174573774082721079433033795438292546476933178024516370739357720593368744372648213926440154726348380429767428581352564052286888755200069960862745357698186236925712802777442537669015801815613792425136392800001862587603424100030981126417191782515032248180952737442132219870719365572521705111691917635879671839844628575770015018998318427642667270754276304763781016174919599698592915799570157273870430348528471954521901367770222542373765988611782681951276858664228067044731440209173622302620331258089019503457982213687010996616414174915572418482026842060324798194633825145530906367124491139193572995262521849695658212857020401151590375033997240992466778527305569891403319319368088855348037213570409512488525792705160691690186715291503346906863136754208040898123476590278757222762281871385757751372308722199150760422741680499095911720541330965629731529798716816291668263838291800734831720168082447519277790539607276851777560840659130250744208947677967091799046183762780631088936382841811465105665097170286741876281651869523248478151937692806635374482893972024983489193780406208948707376510396326556204274103382921764026326678230600276882106344735081232509846133661343675571557910102766978390881167151383571172110319307275429392991992870784681831260764892520768376418316930978735353484777699706953452520277836483655270372832288993458248289483029279950101543470632250990270242075144788882926530815848821578066677238026800131109615299291968977178808137382710175790688023375027190489058046405692049015346683192280568419264311871486914875581274561712132147997341800482523910570188900936775507756107183632304484143133103074447302968682202226109391898289909401444762502206589356069654657490500906802421930331814522869728846013630191194976744540563458849999926650528999145889068650517469679847531172254607165005767456111369369147370822330905327046926793384199331448847060221477793720669116558562930010164971695646762152391863655238243166878337157357107690663142078178040828040177802255518907171634375983631076111266426610052997616468136188184575192185768873295039416506608203492303162861524746835256954718866328585958398698847901529326786990120530255389850381111510495860827976540362758021796492270748932772428360733339610063106207442600858958535879337973100761698427313109620019121779463213124468609923459748199018706222942204250060441744420343977446811075946930525761485897792512787717650639142128809869140332298150104840891368436822536827839680372317780363135647982613413613731936830994059213174296401314424557604907414631693649536297557805473106520569232033409135075224187312049074343661761771104106058625545799557725678287767510796248511763177505632069380886955025181700330273095197273719046159850001657438813011561421023281978876292412811173386281084864417903779508566495654049195930984120207445986936540549494716059111462375482101017386048814653954190027886977754963203046586047339251115369158375272464145078905019973481655066428453300440506461649605894488711179563799152496716005107322690131066421867312809474377375102167951659989203844237989899322490077217189677085023097908992601209618998488572171252113611438850533205057454475915628664676539492728115658253414925208147384384802258531759035023485448329463118328283052481314955416674026990329049284792744505671857507877765626874805314380111560225461706710821564440217671676668453286913843298569175819089052920843375842695023571186977712805868626428291313866879993270994505553684934394155338579736367376551301716798019835877652083734200303307424733614074065387843317532140577240488979369845149880810537666567413483515967330355923945872413707462883439632224820243853243455699031269539339209494367801430696197123304772809375881590454826369940282289748069091839825087612142240748428875989831848176472471195872359501302176675986597335618960438617684005297638713884581298618566736327431084421991900713909347440993278808280245892691737581224588674634538233363982718193367564454945077059560380855587885236470149588614773075799972613616416412852942025107906369675192811370892425303003877246181960384905178897926280925114008811824663644904416879151628163777254833287161512916880408926079441037920896715579484268804759115577423617245757106107245626606361083587998834049922165997511717427892552618468958471496502569795013073150970976562507984298240521801828495554711622199074025782045413768675417154810775459818813240317292766679724810759825213381039827740464241074014586728995841469619096829493779812901310717543613900512679516504943618129055022715142423815066430587435059934827482355087150417542520761968428053796382751027100292174628701100188404130846401113208732957296426299137882069681780997554042392476385914543187658869342476999241167788385545661381241411950091819274794977920217138751740161976685262189653987664489318879044024508300638567410425428825809818716968973319404407505921329534626774440189219506375473579049585616985151739587569639058123105452909565476274156036116859318550163148564854268914099181741544928214114414809732629175814278069313503259498438657916696156237267166631609690314965808852794387100729591561174800117541978432259750096740211682425734828490626209107657056294962328850359423205538339683125683139106651113740812883649735946912690941451320654465419580690157484349724112400000578226130606428627272875905086030495490971879182083972238354169093938249082540548257161285558376114254483873773057887272134669249948369213609961216208965627422387473483861125568156450515227285904129719461378734618501746985350111749130510338865273586267701076786434655747451847505211227595871073007606680832172019062003745688998738736966189734784070164479233703184906247050413243443600356939699466479944770661738893288134865698691052773437285371301622778649559232834811587977026224479670585973912009130048663694713108198613263442831567036452770673322663002066436400648714089617173975054527229647882514334405347891289567198333075066421465298046030756565260258609262949530472295243273494200537684407072904394549154514076119595110436431225423655151949769644986442590702352736817687235921563716306435996907757183474396561111911766226274472102901486200653273978589330289521846556634251459077360853753431762864123014932769479599445880993512844330744591669171779656752373216669467816792859361162856832911256433532547989040044909610750263008496443134166770962734724981413327049570584386077676465479833986554275189390691161681061256406902731077261514476229400021909143127577232884804548555728427735768001108769479975840878339466675410142144986030706853962409813884211895790075554949474018646188354286232136668753803996182752189638621527767837317635901500444813472885369784295498829366555771561459271457088153676919048135042256166486627758171826435271888452919919092364303806694030298293254272537833432379352539789454149747041389148833998489516125225144025761547440035698950023046395512947571668763688440004042033702441653239926741479571886410465003221691109191688453701657842878521625846482085374270194987167129411655860805764049432042012629057821920708716650791105085096614008902792606782704412895518898986138729019897881595465251876169498439869015344961379993030602949955860899705868206540108235843022025264023923592928255061872493614659547896694952783458437505045296721573779044403356552021622257696784608322202489919550921252746140336327669225473839569705683942343192646175877515710213751843674824258917399843718159466494091057636869586643024819299518917748690599065623359642238322598190453385367593500214266622926081109013074051406546916439202514165599955076857894025975734325717909879684076640962671764301630121533426837015954612627759285004102781227982685287580870695309178511865505595100883732074307412586780278864940521029678670617084715896338870811708202866853302473946809002938487071126090689026095358314841717951984008441581793067492097508886959637878627123867377099359825492326582460644762638794207996839452092233408491157950103167816274058328739698729491057290651809545467151317504417420962464527429696074699583115301875256510112493195892268996214864095701469659560274219696567347945742431509430561249648252093520827035379222942410107482088159099489900563980621367576594369787104521866497264686862267270234478189199413142919491089842617717499907408415910139237975116223239249753515769340482045744938573217708613686508911218406419259490470385803718869467240743490053341723659690173596262400664286823042905671058677485712741143575992428347164490913176242187413773333603511982963041693633581842341298894671271859053169322123819622910913251706127611915206792015345939842479125304907182773269386780293519226091151914445667046412811931043211530178429790276907676347395170995085095615445922379644127310608216217327579558022909712048697431961654161456540164525373620267950415689831531620905614726524564433554248902642237963089599196043924898454141800525520488544939423717800613984757438908328896195255014581691881696945048771836985247725678319155210842898790148406837824189668519222737855905946005431425546074132893604514269798589707255113294499678461805582847481128533161017494345350057804028972762793144336148179371459032084408941291554667922745236799562431017556689725406821036165533783264790023273490587952761761114057989579081152673785208228004237200366980338036188202368510857628631952791377600488428199295830332536434253202439735625987914132920071754962477167449385788946020060029113600134186051004599291897497333608306485711975465730248072864508483444790843477522209485172242412208072001370444397994841673274337658325799778279625680435994452457792670237002057765545355506847677548997774781081844336202563397799226596568362195849411737737622726857639763730490176655430872192835375669181782342189294316739754011398709764612621161941089327677788357653316150858585011863265044896256474066260689183456151344965458279381577336307705010901025923607572991073308074167084754710211704726934522820731139375850365824601302497188709371650857626466850404652382153623717207962232690483250443402047413256153761351689731651039565596991378956653756539426197984519148968775687243467507628826704247784271416056867561987193343432252012710110668497273047553075219084609873322541307421186090677152925418293740952587766535177043645969728800013027608452468543128131785353183129880030422060370447437072744407374756477000873417563159882282234224744482116968747602204550540605978219746343199634184325660235756969531166719312097131159857810511118759665010255475283436139370292291648877489940975494919694478739944105018452734521058792431141797654699988538810584979302532579864170484712195326032509662161969004309998643605075259383749336784780338519609524913600987647134160218154673485653788279502906724560025220679358873149240727612054082107813073327351420132483344928089843536466877404761866672366387632764321156583075968867057298275635118974511318112493370231750980810045611772054462240972734473168179818730622273964796484189662982028484869621899753350458895944579262968894360419365158732846238297674573287659436350791249034923151421380579001568071547536292994080563720378855425238211303186862086304210882285695816217260321826005976573393353076566039749217941722129347976580569382459036305089966520926482927003149811272102055879326827628729817117965408625462637802580142777241633614921452855229024394206868704560176136707958590134441245793983432180611588077861940682594929229593498848858143462704689186155395782170934311755441658322816577751888715066539766950024027799011804197312369439029368800912385005669222163638389935008664845982961496456687983796906616385594588397766072442024113386110007346645118704300559409336804770725448667497696640291129751524089675526288220867784181776167780097727092558744652820792551197910617307698522515270753951515630532257333827734693450848955428784715727623675890590905783553009186576670818682213717508763298221837632549390319368881567475651821784983951348839538717447032994842889176450433207659676651278633391447668552851497448444017283574350964390377637061149474000926842595356528579964537994789147678687447093335016337446269653128763887226323138257295718279631632429570977166907275970948230533042056670401333714708960261979563051187906450941323830369277935546001419459346524941125737896869207233851980041061620201415064878253449984126554518920755600502909720034589094099965409348593740132919751867673460878739791714285655399093711683936648958109673945447538538214228349078207739315739970315954758990840474273107952166515119968529723151255497614262894363266702321481857361524533960309716360504897852812708039864832195293985855480620203297200775542386084957993909176471915853725412299302606475509313066980797475198791512101903933915428964869011283112223930431573985030757530681312606853314474840699157799134271774665623486406096941139478043778935511200468762083709501668940044671634733435319345490118644756429018282113072379785945542450744669870253597706295994400591748351056983951313897387530037282510143749927554224789793330883319735462347834327483391824871390230269540703615419962065734185999740851591414050838445512363487352218234672709660924278976858249758127327575022154321733758914799005537746442096321752229583090701593366931070235616164543495254008367806266946924821895394838730295590538179155140458541440934284146195565491554416193685685686856501187699514271334008158011525318866855546390481348910802340382110273241553015063071807164872142926679900372908367328162633556100891380819485091724583334406690404360143836558460090256304498221995028498569488273436941821501011717990238374342925748647773733592505175428207339130256473157028376467226530015489288806844186447821795429059950066558792107820186793500167589800206926374948448244480960402102858077387618406153043253827409846770196344125697788227950278654061632552105470696226145139083976017378482608579453493870015651987067713799372620062609878796820110408310913454658035806870158098994060564855739131017246417227891392955860101560643108150964320960618468969788778347181487560596238697721946460568454419858438275119100231783043516223862443527352242656128822014247797488916174824464392292528972328284020515791336086961645216273717082492732007799011296051230676917969161288069820537940230648345571967259583148275774568338178350844983007605227227804654005648406423967398776101793514589979875189368684898367824464453857100776470343244777576014157220310735817051405100765934703019072079850618621720517172099579151087695303148553640620027806741130255024448511469993244985854849697736298911864331268788175666116159562570250492500791194040654681021296789691646066353358118353784422378215065684338304307638422596635157878597238364123676250565464224070251268574341641697868021649927134745723934259574783238079875377372660151423765002114301375132570187672976290258702088842807470975219036913154593176063094039383327124730699226335122369613846712244114975431625245921504845649784974460722970612640706614582194988506679389484052678416608739253299470625496378223235877907761481177589375121497214110740519206922455464625129365908177611327656621568098885012751932401197370198955830620619102756084995905698315907042420606580316238017411102900636190068812747709079911663297689062809054262072633672354396698692055637833252852788820905484308574074872275265105831738623964358587450064200736258452590496885369825333999379510764710167739673758916741193367042455754377886932126331544342834392039464278567529110810664268836532531168074994461414554790230121633376794558278420666867663807785561059448870989068597718991909616865781227324004998336289819839262866649933617604709056467762582203317985262000161428670509557664163527395791943527581078638308351387485919697219595100726250116417001807061701811860082498638681539464961467346767293801744895831227066650236298194360894165989988429971186654104928531893182999035430534745313773924476225535093374003084498752530780400176232737208807209736094098715520631610986334256842366377858254419180458027340519504117947658674651616662784358579414756495461992863238261170136302906804582360846461918690575928660872863073642194243547535020214985636010081881750128806260002522444508440401330647623713139073103325298292009134829829530575312844546977633322028732302497248076540837679676050189976104336219508985210575268163256325509324586067405617570034769757246247384868619764782987221012936700756054726239664209407499061771979373308484681387364087718541131003527797969049054443758321496376250716084459901413636587038072082499982129500349805545690713124228533472620882549862211107592268544945148134606753100863139109869047673604699261126128892196392495518369503637944985417953789744896783487917832087149179137820326167109852491721538431029766983905361280052381929773644365379212547005713337989759562165840173204297178750978306017479787133420903936430927613566943629444867290678850147177159992274478839430968028611040709318691265857346479380217255297752298947275394721806180245854568516075322129801958329183255205881233718823619068783976088315752680089278440242228767993871291201410140063699821630892171750132072378404730674854919508182994223434300591239834153296337138937403092816084725124729862842960424697155830761461442021815036949466400808342281367404731751755980610397195334249045598168548481062393266015803473700532489900442005851454147767732497483720782435783843344224445449047807577980714649702452349432677071435601730573847071429504581205540303843407573076979831949763048820331735813406393206481536737285397208536101712737485539790827488871747325840372310053388850448693866547520095413057793036581381391758877032465287227423803642237788588383263400769016356547673225362723633495153835208144230926079703894863565287882666126397042626417913719822636609063058306213820658540603948253383999578122607685485056599386955341743914863852151819731604382154686859595896430875852322979705450512713112812946951783605351545380409971383534089850591153725071257914391295683085025361308767674604546607411180458357931735777157581951650240144273943820700079241989722815568151669102779557505497141756402745330821292672871134478696372731241637004548447343700979914507277421640425496213519826507493653602156085431714189205964092922882704173078183958945059474030300577783212614263504788218983080363860669895794428219412555167025153187937822503783700225371139212437332971913854303621261342371065563777189375047455049075146855453791713687173528656789922084460378470888351385187603800883885959001511832016312970963619345905445198164857694909507806855259560823903038395438534244424059509671019215554687577687004660204868942051918818621519769483973852274294013780323476822356337959682857209274897286736688110827649893735687376983969481504693650017245342680605225324312218739854430536083812141669239838219612595529945902915114981324224427072125606820766233399191161425499066272981769313864925911242100328807971136968297462203812967603588480510755954423134918160814754179312943840129566173231823959263640300530601101402976468059378059842470321344872372934094256971287394457877569311731705306597141798973733979066351132140824332118450375081610665170224890108882593448326576174242090311632390923099169008056728483114984910846635554449426124385560744500235911371446277879574395404077162693620180736370791438409209863254778765883634229384746475966282262435704803023910328781940282944658634781720915304172093649082705058676585828792774278220318937743330125547620890958137772578501084610858103478084050653868532384035888942355801537935452364509015135029563221452798012500832609330317200757927314160966083493421728143703481211003288010426365915464232902319470926858155734752477481497884338674855619310628219143822611419068064737124425630097778775965250638334428436794402264421307856869406697966171141831715866204117653727999341052796591683704703558213659278914988094080012835949393584424951033660435396202503196375986948658613382600273989041787263424679317630617086720226106459708070275620474692694054638211194250322497636311511308881749512661364282310484149566354613678433923546588627330867318053429238244872945540521507028979708621228827754421989371224456099348912285170117048886552339503620257688243822104502223706766793545992699219332158188352946253475195497504535383878927698592566425937474795460422240525845551875411292077309927209912696373443018107293643861744856677772439703636459169263274862011047720002321029304202891186152204019903548079486349419024910233788521057302661690348318469526884343920951646509562663816978312469236881471681969726781837011167934025447195766617438911759374108899281711846235678050591616582262233778867105888546734865139433040081912869710941215771075533881242736800833544364589491994577992942517560635756316783560919170429380172852669565856868381154387569356180444405365341457766220324979865031123264229625785585070387509435030652822442608297756240232676029227613089956088092496375500720355561791511043148086176745963124014972112912579944031361812173822370786935342140771477880232772865120256621924288693323203969154156498269163206172179826848011021843157692157911799043113597632535213459287504342757012987742925053634577423237544407005135648594081754194975990315615909619929236169118084230625071607466359903114909699326531700027709949688179977503506479917843391695298145675412668080408832048335916345291419974939079850908239291230406033518299208945205709468525509216752480167042560415580756611530581405908792750860055338760400849930582748305001976636154115878368535729395052144289307180917364467752112592333755118243062863060068000161005207431551047203242034667220482712027186827314959598065346615976879438109265098912333672157369601339308837576053160648001311806693954058509481844151243423488258955082981323318088214927296120341981004962590741478036679827786655751275399385142542564771129650655245336576054725688390768692880573955372085513444261367186279597666429159813401224397678239897975160396762330349339628762435357835746008109767770798501866476123777506201513945575066627792959373079087710042140693828067515130353800691544679785098458539635611451992942329197520870489222738423362033046688709628679403520570941105013439606344442847291308699035323139555180586381594213412622140137851539145204593953428901545313471399449827449902550288555506035394139311383162720358451317788601494741538682727252990612586598096973991556949004689820448121113612694139473358791160126530279700064931555210336276470089363865652273369462701928565907116998578582478251065878989122519694546900662050941481126094655001984075444215301063969309075854624846028467540983636177982650067662529274190623479309684397623640968275340576059029346753029600458726328870242047885283055293296242924942087641335927688095706845773307696080276618921267658248886971871916023594676542079797150684145542250037836948717476121856485883747901873976655325407803144678774845794295818152235620866820351907683026376008834493994577291491888214069293909005682635903005158216897657067591630969489924419229463644917200657682710968882447157145189026351736162917578375138637290702894951914762828229529878931164721342935176444895805969799451350762082020925926637362437326991177097401393980192570578565399288359164682153891057561060024082092308645241885823862468439964630148552663622578031553485500864601043419899756211542687495579846878786841448444745554596613740714457214975878267113153075219557342904364840671563126536326517214942720797041369997408957862388010129621050052442082604887568945506103309811315203060656267647378037044668250608344874783995493394647887440977984084749436233443083026228229916541293011478716277552344872234311650437162873314911687192472744920400496276560909131768876309590107411695667457246254918616811284595549100788258073969228107590255553841245361613102833742089070176332333484763450727774731112634949513653872310158406526453041802593675945248799586405111119696459146867833025304712350718029688194971512551140863530747057898541607005460644530423496592611809106949182862703870571950346387804888475409736619114858527637020300259215232947407796657281469943270222350960951526374941984585324163777899720964611751288233712870111906082859492661683712187409751304898197484967762830732716561105118111292480028579503722114445711381968398971333130920628017365471839404138062867908122620781724998889353560464423663465872621968459617879384765283114457892995376728535599714372358356872569928452678041503922475194679038036283536580916667685773332261212443116692440372133099452891231430891896674170393731570620734315003623311136790458434749504844798770524561161346176201913124078754032854250374168454028934880446019288300939181850136259627118332556392254462529180734092933740703216502363443364075995130857137940118646697597874022757472646369220193902221153864440025231396755052954109921461531865731906935419195544284998487430491461049458995332204087284901302875712459461404098069689070540225311908857249350309584275278936646319116918364680805775706775241971615436055899886991158596864484360192530183227213058292634287735132855770865309393565644121635755496879674412058050372578460100564688803616764927551606267534209856237496935919078928961052469280476310823954165401861341699511273093204545206940367154360306082921479458110725954979257799316316201726782443486026089570054725412055592398345343039218075669952683841471107065081941273568076043798970708385195419788035066682993262286589442923175314802020795732222262406366093719062182951933048750844425831815473406477356060183693921158952173654031588686921006593173743338129576966054157684117548475971124138001739154765835419599235852810739477373015236293978387142469095324583766740016317105296170145342089734082569423588292398875900557499048201550650754198937983178232171629679486943662232292334872575433069767981641937520256704722462452730282997392377239895157162318078847246758316245107033508158537697471486499702616052024301592713131724116128051563499575255946747557558672713975308967885131631770615532756474166752574228561375430505844400079941254819396800213438797729466930550766087162669915658873967693185038662758180000995002481158648268839280381669423928065092900246952926387210896680530273182682336796004825047215411366743706228746432533129960024134506563849442556184561860598261692037867193991479299323332912617459284334233430362171421308411663952611218638456211446025710157989157144338894249734398728318882847211114521438030873390113653438883353030319202588036855617739297773991712983560423817698439616845959576225821706674301896069665870268051456141263463708336944600954464196116623631229867345294134428981347690943861035521952496224879560219946096641912394381107246219225017047395879752751427465883750774798257223933843403842235522504387492128539310693555251837178649275246859074316700375017719813640901074081401933762432487004534345472674676447232859340620500115528191174007441327128667709695117917757421970164697850311387439712044835779784578597846134683679620179210360997852044438372595408308676745234361011027265258035391051854533297197302895533616972253769500275262615585280339130888842616935233200481264373749538635551567872785345576321758904585029935337820225227579722430074098924002629477946007880221006645003669817131863697384891497001045831212306749027354483040394276705751898141382360142907960901204589593764559888854712902284002065948498083291542918517389806688814074020593895462004273047683015349660173892884677943094697229023098430039411812640690189692648054915732486188721470590883537175010420348760999887399834003693622529813527022207411692360992824890816327295728222357886577999792719332337408852182727852039519151158341299134783409242564536287565502057150472322780292966371898489909930604931486132763287724507612902820601915127762785828182876724112464855523440797548603386305364459887545098083614348152386573473451230004050391948330647230763827401624804612247724599311834818617424413205615407425040811884859328341770174457326130636246469497914969891161322223153185793668769837832075298073443329649059159946153237239468630501984962997657949604971500296598161311075025255161334071454004889678896596605827098313456414619874639317219116687504909035307828767325378559034914839541989809088863781853890961531294412109417971035708588494546121256833880883362914372970466951590090503296270091817466011538497764660143718036968824746924328213613898674969837119913310067546025717774268468447379284502032356882434207636891586863482111604051310509681863665815689072774400092059408930229797498866759863326551075633909531025725597016579444065130076023362894538696600626888461393063417470834699914115640842452902051766044951754211194323777871747203884483956529581864795812839709923983597718967746649651029205395134056338089092469296370776109591515235901579041107500610656774536165078928355839787855151142970043000747608407751198096486768978902102165934642583456212170350755658921522609458813780620174041556128010685708321716732472016653832870684429479797471600007262854331617437169223153490959611711186036544865091195976353146977301611470270072366415515615221586069072153708930177580678353663727931778057324235245713953926647462363208124825370480503508709919555401105497668679455576194867588050357776744991138686642417588123200299411351673843266564820633483989867652004584507644680673658585208361831253659719335771857710588353148848156334211806128652260031493652293424944670559057426577922423950824953970048832723204297975860686879116534468870161277767066415516804355166853582738261368515011068294234903817280136688162037808005196230815009632968867508410048716445055357039831534927449418177620931547792774253857930957488188210944285981267496090948580070253508524522753825460750541857312340590828482568360538854328333504696380175905184392985413349253418541214942602130240667856368506034157592108944487706751612280661824449856311204846969715269039986159615281573240550868189761987548753037935373999483123251883789565779388512735979556039982949495224635305164922153119698475681240122074389859982245411157440123347611582913286776014852789359094241902562613805590802828446894171747487928161083343788312676292486706864271836684889470851929419293350746600196285057278537353232515879417307506088294203241635122709806806144521446762713901792461699319308984743779911298534024293231765327303764783912010278700068527775699323011888621403303928345421324522898082895891721139609828676075514521716624970882753801360455226360890069628594462103199954608440703390335413500509196333592327817440269211213090362956787756699630709299725623164950257582441125218811805034706908250542546261878015786941213599661290796530993888957575116976892937296665535221682093838384743099401011530274496719276303977110656579936264523014718221113046978502202632793348521267289816497016034077840173960052123807683832045364874011308627664802257160086701329597052698934635914078392876629920213643753642700148194745708063411490781381227373863125221517511422017076201500731633702876316802998787424675180432334039966833644509209683800826038968431071241701876045129009805150114743736034862945337026448291826927093939358781146717235060948369667976280673385891733027518624080037983991816900274000726091235242746748659014767618190803509913574304457088195045511806497687041418878999559933507250972807997850036605987502153412255244078935884403907953423489176396807691259973259124366264007512535450206472926059650284001347893332549224880275930270038089239528133299862614083200326788314387995964126233658494413987539852664503241584401129888202037740602311832148112874047215317235015452133316903173800827699804448412885012517829838920719481010649899390229828590225190829252126920027877835049336516689491357218822450935616824116550303199153732515599472610165926569107240918374078005676358220870072535057894704962169657811717292141314233193294178397508653177035197209373781211086982331310397754631881572190234885200259022842141080390844286843353081423073459247535399323191332915129961716659119853290217522343221211514675952396415992217398404070508814627748691829194484344995519845224360644883086167112806904806639985273980640154696396610731184450471943519246721401203908612860667827085758105107974359067471726313902311749406912370971577877603085579233579075951647520612119729279915193139022880811004563075020363708228844331797105941277067167226213616796441803940762963170366519101639359712201792112666147867358829553080579867898353771430698649004939840962981712505495778304047927813076509219512452564683308456498280945792238254385543969010418017181538116189392821801473195069092437540943597736064576289506598615895841100777216573786629801375084667534811346942738215376991168834114159266380721848049623672608561296022888212512355247593691268370830175527508618185442316664248454704973310034355377412576443332859471188780094980779844614568551098475770619033829440048993158897168429759627227705365211524691780409616093673172185311858458564290263655849549447201873728198488032995645987003837781626840393557607524802313260214875957300216113439310579479170683551283108368806886700124473638871832452842928901564411173532756160456953716191997269147315347275822361241179244077551985449212609847047512746788337618303754030789800653518851937017266787754009705413622588258678350895616180547379394534974550527840414015519212378586373599845781749804864297300782838998478510317024506267473461519156231107339011473281486130786308823879250306697448143122404348063104967298308485174602871150427450848568776963861779932428776964180983815884496693854341071781909852957908089703183683524309643629634249485126679400751216888754275725143704739891929335011444277163709880796135737712857382423622953935790840377517262927387075445879457051305000313129770095601851562777682455650444797575503439457291730812110108307255412253107877662823482512840137411839053244066722431682634282424049546154243233605789664063816447179772498242527872950801109214817795891431546919322530310192781302103121185199316252821062112522463147998228920387140668594601244987026375372011833753417079698881298793331276534900434488755338947474682449509340429107569627843763220674707544825863932749936213958596344631259281184140405114562978604333041392626940346460286848442132486812692287347092104594590988648905027446097599449475873433171388890074371824770761279323674890883594956198047481192629312974250449208032919906904828376843842546568836031768155275791599790811962467672133140155956923383407807148264331019483795004794484235376960596787676090201903762836481559225772171390316147951120325799866766910136941141858561853831695259562836159044040030395955475237578291393247371677051021289472688551888743871023213898996011803655228654405132042971431710323794282673863129999008379821853274292506172298775609774174718960318087250707317204556655169982196898365318195084215331299045887554140821556658065471037959010740002105320445206557215303488856933014924848998982354608634235733438054188122204676661368369186601140903495912409471916040081099529244718175576318847928364930608300415634009833134821565221758469299191647527778601435045518067049085710388624572063689218136760545534610328613874506905086023297747251820571922349948808745433811960085181061856375191771643375008926700399770048357205208096702491578467724118817064546074115032214130488633362043632297121639319172305077519587520190946613238060763324591609012776764575342145717815073932241960406738664184711686557239675127471891347804258830132737511114691570971101062095391939266995486482827812660719442949317865947496654480237278303459079690547292260982794237399582597232111254460320068435875877057671867847080567515312068338033207517730941348590716534756140901094727709631428553400884858912029650825771639603932080406076049541288035454079288922458497663542674392695735939638140930646808417354361906920033232714214178881195965968106479104902129511745537867139836295527019138618676909496611029685128101463113918315565560947547602259073939326774380050090594492525175689407035758678375498040388408619464615974588362832446723629330149088187630999980937820298003092049059192036685312221250261485672868923866253789631318040513992752537658402483663770999284364978704624622950410189232567941551108983082780973072929017451969251107147411030168765259654063230650608409275215821760970634000079085675890147350105953143083945501777226926881881200167070293377542410801958045219182407450931133515396845063414125304091671468129194695042306282527230976479284214267780806635824306900825609737615220386580786393236272636697257177759122247484230479304635246382178890012953879875378308767082377259689127143131802556735189103740704787126462005358437481814853276749923893411040931618731625141768784501497516593329521128961038842331729400889076970152189019534759410663815584867388243895316651690991392881384512289663209016771792634917163716332674418541018782037905161913318471968126575820592318258738980363410710060769379600642991916010196206069329186663432324039859690065137375821380629524370647150251204653631234909513697635391558091970052355875951685845323498311380846218892927031701450038869093765251251693851659637996964583097746533419072775850609866156742365147770319462456626570723455508147061253058065231766232213363673333500067455381232960291919685175396659797810797267766656862107266738793649530580408571859784051808103887362334536713314715040156595554448275533433341386546741474771276633174540810667382210115249215562876699678473099431195715998524874825574430195128503121472497081506617650262497297210379162088413241274006619416082095372633384332592802309760075289411224483590426196189443512298743992299981627145038575950273153666897355970391780669351310250703018585652046118287941655093955137920033702899242286671397936102728207585628307613975236897726439761676855942403157523115569575850303157356996059299307606387787176487054385148428369276938435019571767874688421763635444366276481329341088789607256656909556662627060548055763187891912957919053081490411511877226412068486999304838293677080366959990840314280514394476655798709556430037757537639875377411093150110301642133031955704513910917065605341579682731966250073276930650874967903937579611029308669373775714918380614321813831650213292345035470506681371121322186529664828877832395220357219982669817362457103485258568156519357904776831713223712889064491502549465149744556693362660020825628380029400314783525112149984905204609310548820591128322240557741367546552365623871112779980594489747277117122427560432329031541845174703833279969297011914948850311588492409204306649331348928282450391975373176413271432968620180050684963028804564645279478507247250552035064037358080932328645361549683340057770613184257478342149755101432716582836627577363533130844223855101124933325895957562161323044852449752259526156799964512099907365884334250252482122485849520577386412176699930429415094023373607144523248455968852434137297105846011200896610359471164246789233211007392485537075719156727095966212498947214607122136513501200753082211128664566649339160757860887076568129300773511687286428175516883248048673866952410532399618805822065428445445696149895915151305426550436249903440242244174058248034482173555089193176824773938893020051818226255711841614727645796970311442541612016170300959343025192854230662351979243779811478284793748654713503652360050985496505745491860589356216999216136195608507254243811612652985065848474518425449801664682077994084068485073203119855578036112885147330332743671878752278458603613823062763302501028599938446299899340263046099125773457487474328739401652601643928712256591180367190291075414629164241776114646886158499916957713582184479585214248022033000910448229970330459420575970904170958724981244923899513631357355877768652888273982069761686721871740839272210258918057411683109008608599174591058732236386906170427002252665404102284990767560018839310377899607579277746918430706685280877153507512583048563574402474486647980811447631344689983383381772357277997343097951329406320657480653355122234225537740981002582885838308345315170776975052533842685657273532844095957580567332397825514677640291856046675755269460921074264000414013961329948206909730873796717108721494202271686185941252881042172480436333205317113158723241400182674889721650972784783313100685114530358285391743481361834538208616374430324069715349504619579641273271890638755547565946198717523158144241287813263398294294736950560370944943010657125752187639332458913706685019872974410386627969875513330333779887854430343288228639302542937345428953927949948835409237528854312388365487551160077794238619096742808369531878408206563332047466827383382072010765367078088979284893668349116677436079596267958759278041765854519600978879142400035031501008368813539626612848341365173669042231521551565716785956575716003829451795876019352505399323463424197448178253625803809459517880396005979632556112140929719201952204645474369835209501553998690053228414035546318311722375668966928323498472355583058304147348789406175231571284957733716789675665719471752019530189140950155969900761746047926144272146867173048405118036152097610898840462458554193801268246673523248983115363768562543835919576019439828981397474729780531260701509221368079697719387318243653962693259761401420482347171078002045673580245994214333619131018112613374571270647961960932750490595802652784939708874090134055684338359140150158445687574760478957833508162507681556477766980949830370320949749831854642081391210095889757994055638249804704950339262771898255454988888341247819130809051604459025737753468577736470403525419827355989697400163540744228359982282442159888702338987220863006319085873577952016636408321287938386153360191996843338655621472374153599468539692375124955690918818313432475064152822387010094029461452512729348896589444992045520179348526055924228988965822284465777201144681954121619346105349090931382394266625891989371475657750062265701055623753642952017864750818311607199185046636437162488878732384741205020713393006140857933616863968939339996566995382971095920812735880094563953192512395567450095623626142882759777216003943959799315371183748664923292175585257253820319128622158321201157286591851631239629128347703968234532299557099813141102433353506744361196222740223390734514101030600380938320197975761083510226467190887161051819126476072017599549261800128881151560396393241547236618499665372070135412238909155547840126139320297944599560704869844570869804260240435649333857671916298256662447597437425338167397413938591498161375833778228635045078837699416252249911110709474315750095292930470937470979136735602365685894283329039570830998290672605292465973579080406638270275799772204278668188600386175041357130878780528391345892093351341591415961727416448482138136698273245663184741888226936644972927581422065809735306274569442208778590582940832154492939783108359062724367278587610778799862766029497032629920046804137996039322021233746235700221562702533139736164575928272231374968829217746046684146810433282123605078654757198676111939445030595761437477298644601539862670360654752549097728781598639732684872914006039982792975622428810664609536965398289719226629431628932398231304901902091809163649040300372384695894564621169174003508762552255867952980173225642888608192104581935496240457558854966738058513942673022579325697677089284866826127294509036329160144569469506595574562184233182776153264981486330870146086929099216982080421182693788573904263653655311539275417520097571830994094005494855018105044106868340824437548168459761259335613651235582347843918263766277104973431708684206644026980223195441111416962242339807706434646935850354623107812736970254022338596246672075607405170839038749675303558063014508798678549246994421113748875887508962347876941046663843642726236697581046097448727246698318952849835091781442127856890688266602922964298785839827533806454105176978975611879419473612418659722530271279303847921230593448355829615953419932075837782729425527395634899726882763639436766040047149238436639604608242346479654306846501868587052882565082949265647187682382739228617019334968967284119360495772824736662253602725153685230641138757752960838726291822323465614167724355526933047136886632895495113858662126497056071402036207376540017098304324822089499555067280963160794543123949890134180942217634776896507090151275023686132741473284257274956619710837128922714702333562334853928584714317795522132480354894325795074610897832706923720805009511854799978218799044954250465763336547993343583777991821619747233569423044563958830182043503213508238606273287357434856730052732222274992621128211423676301497866885332086517231277935367869827780339652824413891899434165118339201097169887470211927193081056549479558066337519267699382128262405934162394170525500016246411501673066947595351309365602840904420006093042997842489332539910814175497264289908945869961405119669644511463132703546775720742912796624700568285419652822134435363136977616561081501873317330964065997507426642908902408348529103648580300197202481262304587739593211795869419502713497208380436165763061448674043385229370914162976832336707325497273819606028018235031322819204271393824389043536197178038238552835741712164569219139458712167488283990356802096798297078149778996294600896970612510211913950257715919751585690832359458409388617282645067277251080783255034214976797727194868860824167933994308000850074597834849518707236364852884341363133909575598042108399612065674076165499359327219281410118544153647880587384741107878886594042655247232508451573345073374944295233153407310346084013684387897275288931081840071378846755117010380001402944540841126896485784067733235691051838745348250323093487616795069864293151028611271587283369438867481330562352516593347369428634127908844980963600209532795700216030983900272374363344635008020863025875859027044526159224544314965130278752411985408062518225027400085859060227421398610831688008276708255276424337684982219246568247405413557696009533476657681303732296319454977852833678801787374539023207079602225501339427919319284064455881554036984303743622041148405875037634985310619892806937195766102323947271491755571051128757322332468429712157698393764407277674155330383247986413828893405727843117239111918797480780640268609493477563992598639970810326098957359654057013222996234208160598375764232178822643446154262913587189859945607252787590990576569099926892574747294542460030647617115545130522071623473140624195118038361653906543781277612223815081726241739486761257742614667604374500135973589698072607865564795558808260973521020375407754419780793757332353865151515510212599309627563066490938574277747518819162555986885348039923184959563517752603243824150792414679540106144415848661672745958855388153187512800063754452600330676873594516719902202403646357708148160399417100053991621371368099212120418746112201205092499604995200801418370557438596857397243722821228923981031103778747489563125025467830988397923290491448000005202345505826250427414824924262149807635920032663938528083301029646136405507929088866568883364982757832105186058284591868612408525245174193202333340192005578461875439791346291317310601712721857979021125344241077223495597826297345399972865221904061278778593360493096862908175307565853495553260582825141004546021005490108741032359675326073850807779909626696827257677633802441753347359421604732288290987315194570679462687121607646512707171190876623278389874376283294723125008618870211202686266428127600543707292226748249333381730059108672923063923124301909552295430097085861396226564763324100926292709518952114257631910824900204356693272415148334324837666073898138966839770585054077431478847890506209852425286305631424898282322270275603768104993391628800024239424866700388203963084557876795186548519781349782449621421596785683560519761699556522742085676469320943211209536443005185080484229534210865693495096362948257920259310984342209860070145682464761000425158100209492518258105056895648367788467018026945756446394449203507116786272874758178414636903703130710617518599499237880244573048412500704836410977836580134162410332672642161445114823607203894158312442687454773333602017875013822116644530413218452405372258707969844439455853323771461656449765808932738795252278824378110406457040538874087560808592970294577428250029537251812767912350861445109463739075222801404008845189353407602849787707965893424758827187012256440058450281412667451839820303800177124309753583031008236473943663315519166275558085547128684584443110489394491586824514378391972245506307593708736149668972272244502605962084020128796639417908149435363004264033492989689324074432873751547477332662092425052702421378202795163569589752480737228636391734003875366530180533595692801836355592560887412889168256448803248924778060146319291374694269749376020093623407967032528800157485515599838266951058815193010468026150155628682779616411540577240179473575488034769277536001390186430099860263309470592933902271890983813041518699575460014214673218833443764339002803757328305642552891949555834011843203573180315520738305356313687109464683600525760667797235740056512780470244098383276409471852721242924140262457663604208011449514542508943952508330788810696636889677740285924288608487347085904085201954881085279996495281937779917344909410079373122899549956295170306010314410745973083402065737519484200880783205596786189823539697886291773334141222261003612221664117173339731744462230358841970729059549438782937242628488157007925362619613114352909995745281685850608740744030594310902919712037634257223926921202691818771262805307846912790630712433158748890783106892869254960623129636925896449400760062213907075029270175790219025085668028504175330222505764424940986325090772227718874505581383781964015165230019597582226232453974752231602231426057724298807699331335203077605503302661234158559800727042851606910364549957642526942585337206744794231185483587922187222640481464118232877502154497635088026442087640838144459013498502213048264348714964734872601350104687052703294033091618670330869249810960253051592781861969479572321153367975832227280896403933186618986919920566300573339757001951994641039914145656972254950554362440469932642672110537642301690828981533240799050482176682887823478610241308619879687884633603665390019171297971497234613660413717679155738612364323631595340115351601819598949121590620847901254537458220155712044196042604231416851249716922385295242998174569690824898965603990792052967567790719011419515375156344440245058381119779176031891520247393917051049637514804787449102675142324330461233954899879186869143493929889477645442228463867748486952083160727542570385300777655806139052903484364379123938890498381485129468278722910854033626226456764995030452236503465279387181880152687659047122681854013981656605881072949922536135289365405141270837651975884692644093712727048566755867399018865495853504098630223706875742602921933374611335653100771342310942155847050178913388242192230821443963805002418098888301838275362978958211453667854946101673916276737466610661118868648897076347420412579850537465941119288482624241597749729530043898042955175403772971800130838263379782344931362660101853109540971571589121097974258184191270410503438874290187345406105494230071596587984472697933516960259793572721440823039937959002306045757010007209305835886195978755114825206441465755238662535908059599364215316483863532844049309129349651426705712268370993215232107937996038754732682049927410388318824751141989124786475203242961517207028126247821068987975683986321427944542988595492072487249014884812326255623628941983383160184642517708933046247887730686125170983913254624607177950155290780536383586642387138509400814681570882956652011721688131968205988912332480196537006765682528593054778797087843386703431142730237735831927031326097244935105209341130299872837505972923106392628864256527808581191444217466796660899658706888073993922727531696744672523670206791532461746304967104129934496113190563935239755759699020937485440512105070647806435734244076048669203903955494536960181261738863379611885718332937488503590959241086371455469238154918318127509709819536802057788363161260168325945393783107194716875222419682687065406228947429962888943105314328833312918073430943044742058346017778544405560621912745911154979361658394503333911843570564870620039177653000037255722453046016157187577861988712004532350459295737231455331935830968346255286765447865135637851140037980679326544607552202149561587348709801659314687769432101876082987891992807414846407260290843055353177277005549165591099432620208854551256903225239176792215214217000972769795819850722531612650550735628930290330290130724433042798258525905173188027575333660260255204915100934857547402448673482771091081428057051019519755428317452147114782975152426809579909348244065788945503295205962794859031282649432922187188786606391494776183619133800937693977386024263947464949069327040884057407889305061005256595018897478443268645176414788783854790006367034452315868571366436393449614186743765171045979086686085519790108107279760239414217977290623480625691447792770523611623011717218289179505655387552509878569056401502971240361377555237312567669095584061925370261551795626148895615622514622968876876568347567765139895498819391933211306962549150724964670422526523039259335971385671079525767070282761703762389859804950396971226808041638870453156780468811045171488571380917718862070338569625779349288055163222586764305699928123273586892753400635722622497563577096855068003285562686958557072671629587288476696325191423964347266507596083674516608553299747021569885405317071814776616219059863574589982710451848329125249457921005044525637701249727775460039350661666153077372993712635296360738914069280416739224794827172621529730450208597631802799709559814043963291745338848522203716488426162916443777479996170112804922070002895068481675975602130879440076693047460026646880342680770230563064398148087108340975626299620681192763694924499033395397531211558475397588312878525596829917009016223681323607803236607507956285006735875241706193487280932175359405431222329525492162231074317619180976111066617396498954884205533470667087569117842190057550012290732877641504412741675976976170955099013782073664718156774022782379612936141270505735369850587567603610468475774086605481308091391636232462592864150843139390509934013744827559254524631511237556462196763100607607270902185860819623156095601751697024836640029202428129569884084676345402487107677758063784246806183782092123399971149808849787363763496614748499021678988778915369891174097521384560890841684106751038400740246402004351078615425137845751637118203840029226860357771473156955205875866737168788453240259576596054567033406108053353225153045750584533520222404488520463182709710655073272498044192817238098851866014722973010998042847822865350941297285971385520340743150729479036116967699408825740868941985160176175113148248969181798288175085573766680602597969464993971566723950514883260648214915654649352068215346911477435612384627087393358116252438584555759885366121325581797526636789620414434843656782863076150196979735899810777417768223779755372343720500498945693233991543952842529306280459273980899837482104244626930551691538913005293499731697454914742762408727933807382856780738102022664718946486053243330838166511742893522821642107610240619623419209723757698277893197302348437200044793162419552591206043869202779773360411105948579864376450141085855728629700092569070208889374176764846465041796318876340824770447112516171560073660259799772710133422947969445664390784393972115649158605737406748233991458816706309565391902913166346434544142145869876487858833194104388860111989838828166555682398509875313814683639833445082458750221830006067166974268138525504360238196696778869861626415725929288234980863049727156454626090475099759394304619190520385278065497869544404866795544486574472164858883918440035103675437650903926834860982582122276743390114142517773736042168759639488641040207382173016714498268330184120413146829246508109097639978274645391440518844810776557159976684914816366096545531651571470196442652186227313965571222947024596153604607921874318999852411020668098371191297987282649488494381503680651965410826630051276941066166259439651312082411701489906275797662627840794523790350227876921638360907760055852320667590575036890642409576636089380568801364483615548598081864605118252330117469104759178257690510010329376014226294009797087115640887742672958153629321087989534218839967667040552093215197790446610474691822829620235617394107867926722947330223679133403166703695323425390414210905068330399366514138919914098538959566920580073669363741155386260933937769116497775815665870070018387662058082757620472665013648194561081019913492199246718725151268036108483219450342668052632001081329948982373967452979589268344306939848463701568927698941100463227970369726823138466482118685459422992197746502544290166584357157444023478425725519942764753700598589627954090400090381382844374119474735774230336878420907142769318623736104148674052926148569856278512451981380012813738477252227447691064696360941802088920615546860997024580071224855934620348976558952707649127520432601362930576926356871735050865507300465960632538072726127739553136415116233461513173211049298731849019229340038916161520881487546222602410845190532260779527088267277491254611239885000660211342850657604881597207333193465512770868302866733284455769753000088529715851471029834926679749626797919231336547993454927875517916354330740887071002853189425533514525224878988942131914099370228638829382543344681275213150174057954631684070204229316054405557773974967450152513848056952039577804925677279289830960339456709803212464784062238384048023832187233536452467751754001906367764983066113610456767443302526390757211407612353014884735573251477264569713212589795972091761689061429080800852406155902487366890396815882510634383438434861324239710669669574404318700042121825677185215685696306314109267138161802302385567422071583975191360107262271800690156212339942656401435739333397832026504688246554588962474033087162009402377770926708284071005800487019292838215290378291059289263695642808662103669955613908063279311892537756016265772142923545711823110393491925566885806988464931575571138745672849036418618161403424676077714512069281702865433298240586786640120156803580744510614361356852422506558434791528176860997095180360875213154439132661952179338439147057797839012450460335129335146525599114088511021349838871576732549078434792332099913147119704138758076174300079300429079486929221450426973298683708733703482363737501457766678373786210817205083299408924799191958027771313644517325363550430985003689494745276340823942196798263338457329261790923034146154866808915534625969084851364407716653063622174289792280971801112373448598086221670617383682111666262384404031079909675665097398048867556648721468167849691376806108312417291398061167855378615479252165516793025398760901079501243866492820276514853972166753605337462764525554428249786598923260415479666819857242599426891285851997336134206018630947489088180696582664090367024699815899620079641559923475540877088409146709793620681899211626503724357060025817034932893481975369958953586364900065052629726040302194805625473691415467727479162152293929932793567887410537506653729906732150933324562917730111699140714310120269774726151616529700361157021364184242843310579146643121034895875736109237003446272914740134067866733967436151884719528598338388055685673232138057544151536895106716766168108426654841834433421268869180142044175640379266812325978054280967177500060197179694557932774023622900983775306954986962277851644522096466776271871493364755068498060510197593098288525939398383948712115626260069237032606750774197182378829807379817380590364390710268835729653760896575078152769400565520610647067290612416942189269592029422622126554172325631496833614409663254131498220059558360141394503072134671762451558385026415545085152391663304805878263025251980677728420552588450583744151563924018272141853314624737688079721496414163792764855252940396999088302340454813380359788003680540835115112539407063598898165069698425912530535801365701692648187772670034214407413436196620573554993599211094959818904734337534048599410733336948890639227578789090240752371542774162110352036428258496540992056483799884487428704376456778537240874006854254814293824447546395325583558079267680942513576052129763238884459132091695974503508879055703928251236784984972192420771654008993372789641405725470167277325419034911184351346587947004846490792384437414535774955631460156055441102531988976438322359850965009678344024468219183333402885789234445646847395644826749423912163744679845001105483101366798647596162962852218380719958435123793055433657045095801212515802314906613669684054013739976585446834123434486589230894728075426432153146903150167064395543122090774618752105665897077645922096032587557957990757045752360301362246344225708566762196620348327901416671875628270651863286510416494097567984055611679992929488896733376151010482197270764438113341090991527482488125430930127234399075868907756654456133630356560507231675264378574262061862707563782260624691446661243380633978542780603011704056912520954895943200752995091194045066312083168119268130448760515335728125714743489157604320692289015368497022564632553702101124292050229862261042812472587653673505066315323987830646220295260093990416569286623604433107239517393829509763851278040850950921771550958767565361336394992478386493216454503542434398710820119993972513332737440576522644370196014975989631760057757865091317091840412826323938527519325433636440110377643036393142235216215117373210683635780824028427805927982954251972988785401206092842909851349509899362465632438677401688894865919425606317790881698978845654973912530117695625357071802912756359328889663719139365709844045405335218954974726625428719824267100418829120120254122397325220832023394005625556613668519945070724376509523710280381521706981372615165303869618304726277322843200688826513527890054223469483130146125403894475722511630491392005980927264654793373296836574332638287708760694526151153957995094008821643746079907724625553946290827657413973555373009116529929622290880108136411815852149872718776465223566553649713891826773231806754767196655974211337867348896357621534707571184499389362350788021580371744027700755607378960484386508669985226355419664117499964080362616270233031017464976086654562112625929907255514203860462849689571141848555740213683821786770861524607995372688731940904221885484468764641072000375734457713056134866305387813677761095674880110024552651386192099367624700588638738101303209609603072441040538551530164568374434003343916774130177301844835439546097048517483579482996452472539555295354121330625751714986303829920962949327655354944094697949446050412002247461648659625154715479269789619991415094344515248614079506638909583819464141144908386436182221476179686017961934843129455784217441381214009300267408618708581905642771055214799854829974088789310502416210651479534236816715760326460390120984931313617397659703791582914538977501448118635766997186183329396985730045957653248527971851112414927846283592893064740764817346907171019849349336399216146936756868408866462057891380137458767672822740457704481332189813509040168162338191214835320777105047177778400394090405930589301412222795068747401112129202818959251024375007220515657394754136429420745424595695095072454107912927813863601894765379323742301223592423475358281187681815107654168617676762164051163779659886088235586026535397084395782972327218655782627950260727956479227995872809509837324479857755044017523861344720832225683508350867839635197194549970070645479317698350690744318593199261077336378532440208313408507429894592410635383540542461137739249145904718559565169660275138186870288211843041514185320958503768436369147919459087198523779768953388586388020583632045324753123277086320610761171476997436207505485723632899071959451114198877451259417157408084190959935518842573432034262024863517510992832348659698784998518181016371747083671358398398820625480645048131147003808185200804456967549327432854823728989542799291693264192778149568643217274222221338591581917957897462883549996429530003721450968965363977796877555274742385172997922957478704035850678590838126833840816788285428776952872844211708969034286585413041327006094618583315401076623953532525080610750617964824771098977045599107003809367599605484355836227493703229170326198710513336144952373359282089482431885100708460005005698759803742155707724737625164685502514486838304447106695448863161165912419672512791408496786376585851776242754409058856460542687267795586701318457757119809628521268076114712217233138970968450213034124573755101428259652824320164424822180618629066791233917976768326376773625213754190293787913076919008695888470381665987430926116641989554522751131409874091999107389592296548401549663152252312989565647756599252565706813721089847727125535505997565847506194150151397782350207023789145242565696626909924169532584128010686936142905777705292303411952031190989685369602147957497238002304056469559866574487760821156981077847114698994502349716582024627501601524421269745392269174353077249683287579633633500756318976100748812553821446267158112708443665296378570832602724454980985855179325113827472285216861108256171980082706894661553089259389439500161584394314072006769106845935111792807874102123875440980494100680844539536698336558670088147728309476179859197297744704707542192330646859877219720106475836840027039626245235510709845048657132149294161124389932324900170025842793674101232251472696403021189953544305596349398088828597942195527872105823656881381103843384942107739802169176528429980356230010957474323430446907215248769189535218230068653657561619383212045630140544007316251748494429136195594374755702528706483329038950783021156354388825328798050039605554409607782045887522504051629467047186722334302202015213257356052611634077039005786591853033182167433617495993783345088779397134716340430830756448066538169541032757806015308646397231053524863926738706980351047128278498571718821906791014654030399897941007817031224326083789774424908304926994699710453726610782374868009723630192246199838688683312816868437399293218432377640154721668370848576170565865318653249162080818993366165428706860895469110001131923523964463922875373429759808783290284709628997256288967240009434494038033591207623679341320832008071438500811824004602477887880517184716263062918162959895333202630659573569584108599488326879550666441724370572593554647973521935696447878296118969379455598403232800369069160290690836615918098685782711926712136493107364121662129862690162041368158938801681090876725704332356476018574427150061397881805644300821528519225977499327487129566277733931691824638361857946925556696370029358194361389072462793989722910499319729510002863440081741696474093592996418617280160941553345508672432571806328456782000170218780663619368036162937639155199014626982325089562433389804192592357692167475916147312935881229393134923639891642212450232552548530402417636822686260115997058530444421424450370998874498462880993688567490418157782840233386757122620178063562080464249225789998626273646510309308057537226548480943908564668571467024436222765657943251816154245514782321584272675693383658945957225174612783032226624127325200387978188836567408267892042474130066310129252092473871027302566073259417861367291737856811776115446108696208172088779368236030030319613881377549604130208452189636003304317450657625836100603126905107371042454272856878450999063408804982361877496561005945471162061424417803789117251146728881334089644702560874270085079913233219928644715528333566516736069262922882552240926302186999756081931270973576713833783637280109850587450586975995751592119992996015300569852904764073599440794556132184112849513148740193950665180182384721903518918946311452500921474935938206649689611354665977210447620546848502375611199426432100837603680645551900618295916565760051872992237444283464980752517384125487377326183312356180996162584014671252522353109207255280595017507003464987280854895363571738975702106707513212483147464728688069512849201360496650597604824940241079577581848896823613078500107965614994357980529727199091456524802022032629288116741384667727491888356236589124285261498554279587622320180291859495190309490402476496174779390544356364155864654127174425922217909407873102877321614231319395093804268226968292368069451641915751213904076940919814541072593659039115239010676911377258069593083614362688893820886799048622786659609650561229905319103603100432276674481805296120085467868125170289472745220023952692554763243883654048995097662010423295042638937779459745600030273205170049249139376124946655920120770587791298852135119090917035126888201381297522391233281366823015985421431795161447113422237228593077979042269943531108799091117682414347108393875810301866968355821344727486751486117812432454520335723929666814444518438886024300601808733425493247979492286541843093222396990695058488809709738466746113874056767351796431443509675365506415507710744584937782610222486905463585692629799387755391815887089546169368668605278882211500601041684714900217587592521255415557554666141192662014771189609881652780213259079078909694361009055675885398537951336235179228698399978189188425828178287725843477251956951162125651961904035658482106840832134349841004359345813991921535130827374575728199556569188623750001740142327028677185256610755448449827365422656946888107122136418340399795169843666548761614518205848400161532304444737726271568047853672704699488533063627894970255432597462497245720231434980268980598749164817652791058015874692187881647626016249315512360307192486642579050357999803219368163245611083310516468358868800589220679278579068344299778778926632442802596538960858685814163474354929218503132032736566501091403268987362485706242244784191585103408808677379218396048240754433659697720282575766571880312787685257649358995195840285486796249743800115377957179693168544118460379910103470496350007593361082226580460023708180751781804919530793394000827543307493111126710678343694319149113413943630411163792618768595655218142397466841524014399654496275649793827942387012217865587563663813812535881399379041966950806520890468338966622261105213544857988303359047123174045276263200280267068364501975216781508655919513655013492691530027201752609404301324876733238193982952396630041763629787990121379334717725006489603289434012595892745267528474005700670907879797454917809683370586980071467945325889356097365175816511813249416432643661677731838650511703595563471342139448440824677877201627521171909184671274388912975343122097363220175892178813478224494241609625392426983515354449015437572105959479883595309437250280829108032730615955066989673226265363179050426154042433386031012714864678953091047952812543321533451820749351900310263265421466408401857067853036668720100502024091163231068966239089417460564946079604106015161627605011971567008365765437672029508413101106651597482810128873059229207995545979722603490430315902801687534868873921941696564520455209088779190878535536425322792111767217789008066335932165035593044612283779972847190664679974893591587033404577620465681762661378734880904088972444931406925420463453794821195760264234671845823900004325428630947011275505607440423379178562208764246603342916464688480124794749549242501380536906929499397558572968739893440090690269901183432397978370328436064485008057050515705908266111549948859373430480501243514526549847698647568560879935523159327293436191337016469629849043134335439626168270150252761869914373569362532365653868140281179379169221042797850514318448002760504610750658461953109388607540735199065182547151225682358062650741440803332745912252851060815303501949532586948336051217331548847514503089620041715277224997322609836941057784544284726153750431842139748265830066296919154808372450920968546675003983964850978116779727164024650351941423093629101402691996107335423216989213114909674464025720072047206897164456775643164893279478381849187532354774982057904683827656482295693222375266422682379306206275833241143436015082838043407642920758116374698208504312357362833192914199384513617620541215409688311324791755841930074493776532773289456793911834486899672898375977514648891473920913753171343894615081725037660756306985512035293760431190325676142702934752134224037607747368951116386216708827035143061941379799480969179554035926924804368680251232252815304891210479213157542557780236198448672520774495708493057024674562690421988578824240537918077994492549398179280469989873621672333500578551796551055461031483645293973704201640288362465435400946874962553626747583213140951697366140895274378384271829304313173483981264306443543137494474644533595464504353917658033964802839104222406901404052865620217305852772022634546796723212330623131039376809904583827379276993834732612999435713586531638344146968578087929776259624372240598076963634885486064774820995444796895481289729630557560704073799761685061258968745051220427807496729445763915171672788137334312611565715487697178790400754622676391937293262885287774433418840563706120573933946133967232879768994317591896508127304180153348206180308824319841362456744574634754305029609874481688396667813178020369125196689265252301931543288871267036219301186375810189188852539197225747784292723002281256627181648359242397995378170556483293929868565264952254411902463115330125184517901644541410037712204658799653860040719311304652092467564436864447859364978348856317987372419038969267081251095777346652696838433726104441125715673135083194210291994063082687057080323682396570966099143823455748118498357663041568834972591334377093118484354232613447360658880616753077965209035192732647855993324262051943964430016839800362603849994737480750049418436261596437988497851626601766871591005154897984838726187999380367779953387271710546909864474633354042812063523435906447571004231764418781596291469403326340978930284974665978256144993329263171773507252140495275609849062785576926391703039585096394365484289466963732290981222320022888633133783538892403198371865841269391396903310567993288275653831013550229201296164727701899609244168432644298357531048450462735856869805466584916780616883203785031944858333977257330992815105893228548481033114653798078533204211386019370084790386479505325947394537287216036853481555906630867666430032985635716851256988156369288382994372447121439448081646908674352330409765621140751377586014621996667327172225657928328554797895226716992539978793863821045692348936668029937313187997252008735971726971916351072872537176996787244526029503734517276079826694570268777912466976474737023868213574648022499316374118592685935093528815431147376016460385593827703947738656663306290640986903493923489951007381331236651587584329234968943021677424939520192719504276231054853450171334894991384685349006431235107946067283941893313706383039373910922448595400262590510964763887769419994517781751360303075984862568012022862168296866883539805644654666754194730120745427242831195315107828664510186462193043805665745856047330665567650647457198407573606632197579950009515422946493993668881077808998769154386780873943055309542059879179756190554068865674280312853038555731537743707904889330184587287478415253544301417118457551209191813978821192541233692111288411609086649947150881677361047888268295383482748231298113749602954851107343674550825667833360720245377319598518723265831286272357594321994950764451050601890877158535698029076829210923555140747878913593957328263019166612120877137106885039950520160442001812181478476780576414782716213593653238019660073988486255198857093512624868656977454458153848123644268409662242765618527058189362173570536177230155733994868239656446838561694708320278026075114737805826619709255137188928034029470593143844030860778534649807864164536848138500968356540762375786552498237533506189439623371102375899486489604009757887224840863940402129234968010265430462394161087922259017828288113617704098856691066363286004951078279046481897519399303100695494507891116083602761537332097609395748452348768067516924124026932515251083324789429940220319779041691103731643095332194295827473468695893406263436628301683203027121418835360760325346096096466605502000282503244782117065264238034921378827490100154433491468831277572639944293826784403754317311885511000350165288237424084583382742585379015780678723828913660121339953578482679735853621208658225723269094652076208370635892845925276345504306716144263171557196086741395046016957973634186017352685032463860988851859233183936549155735451616454174529784902604196963757579234581078625269772051627892959279975608554460774382397776513310195143833118662692993884580533531063849111264062855493992614627724234935075516963622558485983519562030673282669310917851583172228666237159286857928263548701186345210626615745032587717012668619280361107508881307032648064293759699194848685344918742766806279000481796333014807481824107586909094472069816952070356637447283408975436358617949098727649297080833978774538863837432413518866749577052770260216278811314992779783966620927204338478127856904787463186928123858581991526998728984215593435425861638648363970102245991525364251400197482468257281554494283722569451661103216764848640849285986778825821974015339584627216547293115281481777650414006551826610928398742407325020880929724547410047197735568859893323854337157656235441296922190698721269417069863564333753362125435001145577415499852588755965355136222881399481255709635968914557124615854444319034929278549121421150750841899613143559891785773116526444531155393313506789519589581964458602682263097503160533125191737965174996390576239037400936937432780333926458164936967743193327172861789403699934637258799926890996496392758885766026448664720407093598778110819481553956290589834929094139304548974567309459026182943729872755014443591122369507147136957357143522232918045163990772136903584310052017979238464560763410079592378851185882627218412654233170349714931811257832696279506502746493111829720900662209772211020574320627259443935388467869218129013754807062380446183333321526740897629401395169258412531658111340405163279848729350867719887723828050833181856445340591107303451206278860865426271446695301478605077682695295908818099119272258999013144081727246573361740246283717869676543300494587636832184300237969501423076253725876399743615311632567077565454126084161317543290257613876213477036466991129494587919157030504960731223032499896343161562537298323442572792419081863095408882464170472642545642512553066901209341083619983165722036987200709429022828321467733297514371729405944218521503210336708785238824551839861573756375412970104604398730369365511224097807055548840139781723449338009418119799723313464710948306021345160491552827724004687426506902340146953833433203623562788758940819988691310667705852883605409964415355298583839802798186255652293131959611369215829749743209954131537160174617079223574147237356246972807110833238145541642299701993457202249637776888622170474241050776537702678951615059758109604978661916952046317899821244629105555233377241562528606607951008232060891047504962223589995716397117679777592968278522105749495664267491073413865691794294457616517125595554069070420073865924511992605027272261603058360896563693247320845084584168014590090255665789270262033311291486840216143596830659201046221887530830635218617177183988943082514748066177862725406608595481822147357799547703873825276734471737648564231342177948144698370034559996535167431157971508078685330150914982069646585490764892576810746199604097730283132530038849301835574064500714759746083075019309010214228601109081270649901126175405101526444962709290512182506590480863642212692908681517523180419022594511402171569822249701940912448825177041502862771098608562656561806982432140761708931896359502652991051137939897917079600783795026710292420858951713858258922903433209855805923055435998209407234384101711794403868612195323388290183843110034255614449776055127105167152056991278655986040037761878039967416744816105892453659130431992110361730472571617915213408367075781393811777119188647081310916575499679700398626506631249207756927800433223525935502607593861413057144928371451283737828969689673190998700567708900983637014106932952099624934060704421107788321416261675000901767903944029876713166398743191637745359112458489103077890185607395977100415753800888728547386751476626054497056250731074809364695754647038855137879819558162960132160081356729751484232638875553907826745312283911018511223640978623609645933320388491498410727805020263038335041363002440832412817563224613342978574439312754985499261267933141963800917083328958283955594359410205901293664239195023652676440792638721410745431820138707501791961590081331192137604185385813585372589882851213103618338251385766158043287155522161479619960326197370278895788663089590975382865797796462025466532836051964447027911428655443817290007199342221672088213244601067799279561635447837814814472707096080734997015818905491730293312068130269080485742790496651826668317486908812972753927141106215900474732798547107890510754828998399264159903036287749889575645160579832736656772065812440081684659562918418022417396171162422291999856759317535133755359991002284823881727558196314094430669260544756910584909295802626790953936818980389887735847532615859010618640941647503070733397444908282859201024936121593017522418965253034224147287375868464845189773227255387135719838601182150397994285222102883267175226848502664269805465515677400855457292525209824671995458415313453294253241871770351102564187749208677577115726757266818347838664314060436727491591728825007068553065199307864089297031713605671583620391829066547185744628929036366314730601392929522153424808731523473584563623903172428600521984939931737770195252860976260914598312585837541479456503408048585606290889204055161701840128147091421689851510960420120770799547580370318060395717016696339922927879372311476129376313502569074819324476879229470490875717600401379647111427769992618140251601537648811033480890167737461155722513091378603958035784381992665566131943510824329607706712519268449539241436296212019828213950405965594035466637644208672364859706094153029698693527454939370090178417620999909544194805659514061644017084462903590070465685168794648277558039290548419397829500364673168286451051024357426769001527104456894361119842050884749375464545786295658572417723751390107422517754277361758326869691468145471818058423773841243341305457030213683166328768192657966649163234223906638515598285692237377185536406905830752235413177978680384405645404539751812755370092115692187936861453803596377254622231104223778262917783713737142507429441809482927839966666779105464369415968314012345373972165386381451819563566822018478158294298507062393855425025195511670291346027586071221746910052036134158659225101249824900507702218953466201041122813844419545516373843883520016020929607699484188061959684016337964490535185215373942383968944126491306912106015576040259928990096591165743247698953221393274290953806166857039413664964500856077692961312423821100719977648560882283277074000008928912941091384925140522733281500687652756537523277183770725731317402036869122331528300346442294735273367548050097775620731737503533814597899172130001320415560607758326155907815939087046003255626509396283555084133523018133080943020010907624135191923921838958992529768861417871827463667360384208259557444651787994903480393872499986552917250817282919681358242646876325898959269567643649769591428444834008243805746404652746196464933018472313260518816143895908919654907733821581983291048272780057492918776348749507778615339664881008829096726416658988881053043158851511409847895125815416985925420586690319911921623516646199692302004709191926094358083055397757683679360361189033207682021498494808178413118094063520147919941213824971244925175095613156072763034992192094806234466983041383200742109923124364587753007186196674321029340270346128596109389418383627328697680580208477218578090607319558340233861632450328780515027677290564472318035138343601736342423124885755023502435804146680174055015840062393767613535880965404577035092372988437507854898642284117345887577667539441249716963425001482664691390650768058108506403158021028231568359586486271226003151065419813686510278916046393787497416376212733476071091880168910679912066921683196872346902111218630315610805500205773281941027497256225031495163591092421670877066663584184333265588785081526113150844056998859060395634149337127303513748302784410369180741044367833958044471508933869363175866550237476214248155830252649354314965492831527004320132619477031064838030817323054621231471568531162358223744713875618987032984547731258935992561490587098121361478717440179567302910478067405451012098682395392135110952585031756465002386671013066873647564781856884829986764453671309393023689661657385960093344884760934083442456500396807534005497154204459350679101555740675358723717190010891926658454837964655223144215151756952079103379029307801266512826559940102653130569797732886627104615650188274274208700903779203807588868733821431460451057164326394972140806334746517488498168134843020787013383606963595485459466949925786454245646137730623882557931353095626910881710804110330080090360065466507482952062228305784457579859502086295704961377412669549869517879852702954570453504573993936970296499391815221202243034158780565945193887891920108118820875107763122152710046091146081827490372793394264020301469991052026644390701393904291405929746916857070073721043082960147727181890648498293464572719139557625321508723407517048932121616400720262369868675324430218083813102453690933657766688996022556053485888190699613434586309625942407367957224291830374015380063521834978027310543419630633774019915805776462700310803891254268457412837119133259384716084330087990810335884385749672654135526685041528022746946549896078336858568823933955796284839301190978392709366628533703657999002025536117963833070327796003945184718196981082839019216156192238572619434469914471273178473614758278735207284869175757739468249185933119433803801702648614042955457185583413190046312947411879785237491317093942715944610214946675336935237569604276862671685510524971383030862412336112206703191910872820239836198624200747935731899542071248364084624673839855162412757296309981946370772803313100701526046546029693509480134258075431355876014305876851198800870897669637154948544789955552036217991943855788598761598498086535849901395519654755974764828883116816425061611586720634314475813342763442646672720950367575849411221204970714277093034098147700616326275911511406806016250037449957226265799713866900187522889984682068487284665998812126986049685600225363012348502626019713504001236536417546854336504957698182843096963064300329440629319419854077535055355333256137818328930678430515240397440204702358548474116639516182512577242144412471814953837836101661304123161652065926459710093724831998661808750651008206725097418285985323173272671846375555783065916285414332220985493154940846777250502308331872142382262524177486852825271260931248221670594812889434498147939055613647881254735155131239826072690893826047003927608057895246716702077956490787675471440371650833302279063135526217296366532799309662898387555198001027538939749390134046150398240733343516235611708288822895370970008148927187768607833579707973266573823693790782383677928415681378371607806866970463823034402719229896293324104469431683770645222444951949134485679616086930863216641141926396680682061532313007763889928206802414503479601285439792541743899006593202624087660507075035276928409638910331416531467992177592320569506154647137622699347507233033622281405034238246321966244689778980032044609895445627602354453090366066662392614825689419086886762079688956163654786388261449338321416589462722807421682949003492532455336027335413478158490196774921390952975350085446406606963297232500339168297915662764997319636316546478388603736501628025150994511635318954981252440269352373086304314064398358194396642819548890479183581500791161773770942448490852243069072732937832150123238191064972118369622478653623054403009608769485220100237965531666855258372411399603795237591196095346276942879339320208334095164933900342847027093392629126627929037123604060208593963565033070094281168817841980209274791172646770117771553566826454208510019384860567258951004418373262269440590121520244517665288728172403573115224051368548432651920223291938162292205720657034503845996481777780810678936294216756937931605880478830018343112065169905398247891217791113110122543708128622599886005375317048105696697106718700081207299921875079472462891589058917948287845090503105723912287030962977947225584344642533967127247775348054755147421910531823894088629608433025211027039949823010227104085601976293069372089182651224492784420994315374216070340651781311104605988329426567714295208393380690527899566601870673756588593734342494688600428319880447372159187824728539859549147379550023301388033592463248911881538655435731839222177901184576704870668999370168610646492762697647681477469384551229056244278776193050532128660860620319102371858156080757979313159671848194409098602043219337007811239146236373033341304815553357146366830624415804317534090101490152348797078723805523617128386126042125759235171209577792080122325382937708399420436403780764774953583369086923635661762205611365421320619937912024836907321264273024478992515222157642843376547635557430450967309998106488415524857974827882958217457335378980522129036949768209002292034665638120351245083537363274422628117636024350223288333330842654127813229882971214855906465990546977419674530434332327348141373344315986175107048293440696422236841413473876757152644499631225279292629080333852381365521399498441703015643968253770546500075365113976935269924127477385792961588796337967490743361909870270669647868804890255973210055505823548478518824975399281853499140134076399784891736973473101210001602429864694130827147912487564547879077253978575702811673657775562043495710402505769910197666751870582089821519491717386424775325756292865085008948851248325042169298456772176967000920217607637534415307015811676535524812884232594699088104635551317191884331992212496914100874940714768382217600842682167256059006960155314705468423566963288930471599619986414239882319906273064290376057395824178532150584330589786462410223959378232012621591977983879701578696243053609155232063080745221215469633198066159556932052038263717869145975703658701516115459343013864485588752776308048417480815511602738443923298629044930571259136072982679364073974742969907197823011016707849297751385181165722789902744054335837230279104446335854843328490641180332679536502689622063126412150633467159321890810766165602951143277751155172163539960844713555455863090867076408034717834107400532575346345344141290538426275971073998961038385593513523703134705641059208851903454195578642572823395803570752983786923178126762138378946745913109956205787386858015994861971915260514790562482126408938374174303602984767366947010179070482900452583392947823183540427765766719220039006258282863704946873041460070968038689187794595097250677446780462214661657987455031875630739746161343629885193566489002186072794630918760289870783881194676926437533362031303336458587787231144594877549420237715345468361087360679681676146473363525379549100064825212559054090813453529480652046412998233817192301211254333550140102515491610330582160207511673235926911164575127332210740631970309216817925874388830863086747623271442915390176220321613856524601420455994031822175969835434073030255822930780731571712685556885166805231151901548585827630503045427954594156022532665251728896532647162529991112490071724046931053734903653574540433337310375133663807137794446457087885019735147272926005219920500775634037700461670432262068102719072578793686386673598999649997022710595001149900136306288425435896868189778030867981972351854591743627986687168154552380126809399273038061060488158126759699431168778646827708125440360364384170855251838548117356005391136751351986143122139849441790387836071189863090782831008574604647271264486765468994231560442376456122591188764652172838269537818650309438344535486697815968671239191709210687151468102750746472585003366533909722712228524806315787002010422212692524551605955394462062638692088041823599583947692957910768072514707294674672507730977944002103269627678347465441165253606125792876277629907189454128467054904487770294452774031652331355583774900688499451729391808331946486753290001773415302217571534127620765092546937995104937503580920385213978887821265186560820921241867501717090137020683646451655040569408980215344300644514391660842391467556515731428675443847201874943213079861876718106393109321112497397334643658593509430825483968035111187030656528249734168273569955612073331366238245550559885254577488429277473739130692359758608061857018567255939601255262878038723834196160688854381082185475098416151591903608376217496385794089874251020189284190929631459225347872154843357132360103312747713096198054445799120011045182314320598258872967667389816718584287855607424974973218914412736361692747850239534708180501668426150529326079645202994343098614859870789979112995120947090902349534310202361803495715072916101794838314838560343533345542223740768071187783489912100893825490001414984351311778947602312006102962919017192857255014070090286740045329803136102221283652756155804933459135665492464957968679927019993998587554832478882825635457844855898699091706045970254242498426395556900538177533811576468394971631292570116791683281411035405720387955811682600912774473241660895005160027500195993901360044157091054364316184918912154156720445015068579915015772929897536431642183314474862948449804451058229950940709433344754493070290400085916551899639971152892299721938842460615882038801815508674122556698607501576358648292156896872168886652829441782047049644786929117987254039438252828023373161024565221748370165284807937014670468454969384162996754169528214881705432906690621835868751457609532315635092576869007237429044452324114991020213781897557168267166721216754261320221735660318507000432107230471953814223120075677682758354576047214632104576068591633768813530890213614486572475570590676799814403255925037394702141434319860832651644899790146239232742275391770177415432016166334258703769757017557673086756335771710572818715477369702099160172512329762216517691934139587402434896578366588131854148292612090419824322728788039856781360333498081254303588116795133115762851333575018719515250500890262674766617782828977694344198922184698938519256151218304407523468957826015970881368451804241665537993472859606266108302478084247185556853814506571481724847815452020502033132200272753594096808323289365342199504161780598976422881171076675051888099826329864604533614136333743630329379579875336574568286224567723527057494121766888247622092812089361265368765564541616582291101081552820368753135990932092338366803427031770293150285513928169844095538982555491452642526415656434559361434296057281306119450398689047634757721559259532153657955308055924401470826603182763978047751525915685523848417096502806447499570394592490847382051061621833370138840450327781614239914411753781158152879424071936734167284411201050266428129239536533204490688041268957932288088191568335685638541913615684012751648066727734031666595400516671091138820671821178925513335857835756407382254198556208898941097767823909410605695295333915749833465233168821292942613017525498256745336989292341629749099814833589775756697803785896536276267281384913964468801688537850003121996830913283815268403111984224598605436083297387182516374490857033473936250828194361324600493425018627591211607728505560585927788407903301729502970248582154440814996210366142289252244736403782405112457672156771120240260000914764896928055404208743541422536560571775653271728707633257885217853733737487637752610677077181379011185789631997785165212502598762403087997636977798539088479051897936800002917690220801779071480298990697271044507803128921357607038876655290691047008088256538281841949889537772208148231761452328762374009014593938463737286462781594073059986812788742168114809900023780978189628555086238887286913879509299620755760102132226040844137350365358623730500189300197076936377368721143221143775908109382207769162933731319829830326373928250276232353147760059285053947890457184188562245796402601232946936574457014083199579466611845437994918749704451059306316174435402299045942169172150347623253523372187151447888675074015726182589551428247350867840821219609929459221953174398429476693466998674089741087550101110162188919114046763502730612865030777607322034960439097352972143737725452872239307688016378662030834718083462471828919568183467937640637969124216485964071304896014165265781317251288610302333914219782900586701936317913172613924766037824252080280683807126321847705820635183240153348325894153844558258919697893439670433688433479368171996016129408125042411891104712014991323023974700432853153549876087815975176284632374800070611811818516900915131708545431382746095130130246851915789183861810754604868716751581194342744331812230454543161573811796032209812071761821032923231684692764644940375943983569652111143151941424526119920947047951704866332308972026101775779625526286587671193997015023753593298660480989011449819171416269196470264426625850186862655012736775957015829055453794225262036032432788031370678815683388781602835049498746631920567582915883222826425967073895084957291495756826341969492571277814864734062564913095974203037561061607245405859839738616629706405985850114363966993013725731255986990346311242241931833578990864117279438900096937587393380182654796289122214868038899924241991154352236483749396960132201116209797988272731227474364182925021393080924459462145269780207939540748673142026342798306650559270871479249282453008592767129854657805585345192439911358865388169362184627637609673576905163141935002672871679129922005238365737304233469688299806808981193382592840777699833081527078192197889129700258594057405746513055396596706428119820789162852237895125799430218424600363966564670501204471838407837912330159333502503677167957290653140247475576972662708430942905546939923601303649856375238097791102478535054973602773617550017144183830328581871198252903382413744333904871598453488116332682973549322480632375606645950536430859425831996324632630329136184030251239316860922057138464488920083644719522220987528190474885461242547239930697208406674756014619026889517594853641252210176238818818418813544528966191267525088296834976686140485005455770033783511262298341482569717780463291131918681869739366374224590335665416404224440424961744894982663247097681877492651822918245031361915490210503548982039028368807476727770823278081535543739504406851943007697593005347172825518214159203329974329056254194445716087096321607659070281521853698469397661313027333438387369164096348076816281227046368629618482522846713457752514341317280389898027161381757159141642981991508778334528904295079277659524861492935945945243755180195281321218156042594226289278678655196908345844612667292034921352724489914839749336286985704659925682885994138188890826661491936051350202298510662311769417152076201543702493562211332171902941118540141386526954340465106158060746103680797010363927344346798467936885028082754147958504662872856445907353258521272334460853535532877651693851086961931898400882953780137250275279078318425967799628224645163340302522300558990113750562020085920001632511403068956586525472438417655519777005531333755304381496925379034847078976005282556421948277506314707388754628202295708465139925711446255349588562677139725438051423820305318232620300435264331795636380105222000435463864307424440389812140214166409045788650192619283507510840206556230605328438568619191016890459125459148256195046687587777971922932242222890111625800200005644660077289789547468339575895656405890258850474674522574405076208102764140273229251392659310404059999514698359230102911874726842728542649873783269652359293397000425616047614784543225188923448407032920754131434082773436925331636714741467560753316616870067399024484911288289407469048071524603626798160606633016503054416499341234772370006471653210364009546972232788999688231301986688786447535232153659173690163093506987261142674496998388156995693588079837308057317729277619239627392300110002212891208091980574043962307133028634377874314654662439990674985216068110370877606021537169459865163850676375531154478803014479953463378524775663587941075232770472471727727113663672638338506350507630883930538580776615305565470403345756199117607422356098074008885131809200369908623576739200436661262392291319057155274582466479743239827890411743821416057888206564204589225632079972642468242946438564753622328276238520802468196149091693551798085759584762041475927335443583377195538745149803721250946312601570600896104685580568958554884812595326914393966909700490044924428708853826679935744871393323586471174573846939620736760532424006065576718382883167690717004932699988984106979081052125896775836375350036835430091628536772931783617549870491642950658456682799015553976670135101976873589164382753281339695437844739281466154477017083393684507859321243584664995701460973039113726275015559005928891273592495413760807397967057631012240986716935233818999519931730896233503714728210996066868204002227471601699087309320028743039194977440305992008391284530238437277031227409823318772683632873115994020374767084965696209940031210339056286711617204247220354723503401368972248101178167658691877933774828390796327319484622270679539938163898459844836019219934653112480844717172724381750859029550535975513732798416760528044268514866499679899024345536335503770752117783200492437139302930975952196546600429956759242067360852325828897066382768449386115355549111627336684087855286792794821950190442503820557734231012686776901812842906433150741238013791704874546396908063146336434161103573411743864875930076069075159789788417511457651369123877523879977304027955899047991529465823029751182198183412609688807023110161848158009384767861622762326345499102863339264035569643193068810520528752521198822565830389029044036155878915410335592882641467741350987656705803414613098363463866197859572796701948124876150951592154673061412684733199421953871534786522938103456949396916017411044967185159052028334541722354634305076338299434397910845508550081003977675366907414501313235901669857285228313452837104469153107486621662786010272689445158855546615114032891097558699305097979818756934426772885019600868537383998641046217410376154638827436612712799590747488134065544196476483223320531044670848431342112956847169069696821466859342206279839720010776059953990774072586794733066604317246690767565765122502770699346729243716683530825424976413462583776231737965678587547117617716560203263111854698024622057790612772171134734833642733407090279784446764854695353800021576760761127277637716053470652113734551372676983181647581305330483359143027660964390804940367823424146455198929391731641981776544326529718931788911601301984614785575979698864422864909509059536063823357909079294274482366744903175337063138547794092806023183279165685438859745364736188677389408810212974359704917684064592726595144030952560508732898799689510849554696595584375934999110834839598364557655059570947613393723821353902859426181151799377872566247332625389919492210687555683896378013683401227579082901014757232795729683153305494476483347081799978670639969792338115718645321616225266886100842023065501588869359414280529838535985630093232985920540460170091151462020565399339565811150121256719144381375109961318901508759356906163694655695438507160580294874771505407243020207786325109314612164080125001986562262018190233558116288003811378051686633474611603401168151410393086150341992978761883242302899535694957516768581949829648240129859016414453711089130562792561640081599524344706457195237637553391744651629711582108514597351642608527946890658371375932118325641774949387680316128320852666795231435576754718574398495302627483719123809862171310588567943280707357403925404580222120463565697062007791045976366135944347714712853618697185433728196137190030317391295172626459909557099030177712604744387162618163104938209503468473214671822657425666515246030212172285370121085015530032718604264052217296865198900448252217242515303093553752772710107304733502127868093074293898010828469145949947265046062882678326844579078815298117876658013583746467495592426016511611352310410900489499910861026014693596673228533519862795275399731336543227615062605589394447046224202054287534229025999449100439305733582553496281785723755127453885818987545463910941114969025879286060785278533329250269243011674404945579435647375018547524325907138170355062741021082172481464736298455375859319258189780116494492297147973341082885477652274441173234849604129453999738589758787196456530556121375413780676599813364163559804992856461022802835582334334645218636151668479781314971270119801510800211591837062406463909284982443231326374449356148511789578881086144491792520447233648149119211380936512286683744277680062379637921766214509658036386608637126165445327568938830425386430639481064107324989855030641541474368590984342979392624343143139630224269924796050750791744587413330075251277858068227975446435423353038362174833313728378471033357896784932367135777705910088021444231289775409593267074649068866628109722201331905869330235790523181948726133868111431712512298760991858353424753363207439506779754213342295616438875724582979222046482582368267582640281979870887771128064236980840370685681459717573971889191327156392868654174519929212537945215022078064952961796564106680470446376257814569227569174999686164732501898937320491330835239595568640222605043097172338810340193583954439975634497298124232405748877897401043485279740866674350379605796061704576579385765668116823195318318000595784972411495091565691810763609380661588995127557374431986989701800288836544964004179132972349123795481207833840558219818426252720312720714473188188078920670085986452748328922320559613460077919232274059281547009444238427935790528181341236856427231603532421502484596208693004912205839590435540994021845844681886348094804860161049676725749391389950086132364666196952077239973706187599202318634961014701954088817059126129608525366455593386499642612915086885956033289466729378038867736842031512445471188448044203485223799295321947242777549020038909296580031487497689171870649017140077856431789565008349362441166013688340101580468674703775770270272324788048589890261240062415984023680490422304021612341980729859607540530708435840018915860264644790121137597128409172535178687499031882600383191388980351336485869239136503052314852613399544660032048047614449513144468363643088346446449355051316684034695308955128968889237321197847719995946512073836985016284677960457481751488890667436548998675663648413711217763452539574527390060312252824873636414019146602979331855178919692430835208252814209863189565565284564564484980081999335849905193714298183247644596656499839000296723522486209206197720664957090536738194864036988261711927179848713620814526809685920906788543747805994687901513613779951416346709363679219156052957196602328902279326862733493088647020423286618113942963470264930551324094278780981242660048121308273197478102688788647178617097253122144771188670142041602588448582663064224262883810688580857474052822742848072147178940616233112300173249004262024658767839749079764714143521704568244264861109237793256705843303362817337504358504071404262897137645759516911870291340605852579194537981851789015741340287130128854245810154034523785368226589380671072831898947742152334338165311120312199727580157927990841493478308619833924236164438771914706582779230987008222096693070787929692193143622662787002388590414450710490562731685543740542455611689890190190473668581697224229961875146452170767843786550628331907847184907790592063511418711710896121764414767023455147299818098010368934535065705912315093977705226590177882600323023439107572978168940053438589897259738803686684122003161375004027339947235380507844668385769657658745812913903392937082058150918915854024283014574605692113867026228872412235249539975903330467403439536030617828584906516562631177265349374294161807824454104097346440086295078660253392761518064820486070264082728521572728436571589550904785455880541554471104576617606501641029995268824258908586637351751723647547828734192488989604385553420621687185460480156272447771837753851368062473907218847985836089254325042401256275961437194603570685120737379818778496600235556563541961171494712875972855358385013818272133317742238503132870976599762609109984213923073118824466143320717222472765305807318308547452403339576497979434104076700211807444750521996140271470958003034965718727162716872418787973019542369678652935463505439382227621163166308991683947578897035376684539468290952587569320423337844678349984984131597094879815863005197535960165879053599337253033633760214851233417733824851963108439246223464939214701083012511400897863689055018412475074498505986127427072032031373863248235237083391685773198566414162751198320057089734493603518705656193503623864824709915291567787008816055227202711965855901160793205209622292268560332214147625322110730175334129346045055797752364637259467599723912124487369490244079861546149290439929930662354599123155076542351552036367594942175802690310659496984868873192120370851427023551874692711443811999969948668106417670443141378777831018531449965925184338678145259321170561319994413426087448909679418587344042670349394524803185993467629267835122361916684520393790680985223767221176214417111325688335250282892285917456281953384026335345213629769003805552800017320360230731386569995306072134059492266167398164458186288095661192579523294167696909313709155668880027122849094288148873676903599239295754016890556166899211400173097242085900791262780679411853140207560089424221977379199327965102623479302784055074676100873048031330387385974093362606140669072506426238393874297226028219522610336438161812437957440935861200312449011403043022549383518876325610236659985937768076249931914826217894881924603416730775553431335652011985847846771472572866481009750912440482790008674115436321162491377366635863853701150466559961069394769450635298690916737016121849292101094556556957118024188858205799881105365030287044598918562098579205089795017475986850722696344597993985407684183358266688425200720531361059507018377488108543705711080461290382719681142946318507865635495566842162819685684291120246042065467979644480142802745398318286774857130717651842050258931749489272675337824998074854290851646131633942299914945695236802186588416877306821114807456313263713633284863968213811499436339419429610212395625436618001530081347635284555808248877226849764082617603677707814079306396952575001513048452866784909018613188701366899430474976646896120738658378389092304173420968563621841213642930152661181337820660801310514690963785319732525674042343603677042816843862748853800895369758775951095248162260837370609348511257014789820589160889103740525964566763344556692203516527179118677802348684069275164121155013520331015503284032804125884088781055009799022921499232995324560445229427287130632997013653034638722031441961627855185954006064491486683460382115537775985192220292460629608618858654257612037967490078574650557080770800646198214285189276244379514118300357343587747636385584103585360585399836013752814681022149353016319702332130011805236334138479985143152466751873801607292864852793314336354981477015766648585273337048070354896144324941004838258260554719579625904295111019745177639269161184947712105495141133607820233244117944578358912891810848311744313232899451932010515126382656483619490963109285428868200265428801063149192769618612291473601052521867467898288564056010624459721407660251399553136398939678018909890153988587689297362158201818581246951461455366622307319643297175118045871979496361461827741557446400131302864566512540748765820209564503618652520684205607573618673655958610773816834659177587276036712568148034265515314457427022330350206932295004179153700171061473470090694768704345583664183348610641843083291886553612037802920998665499909108687476337451853430328417357519405560004295203975888406038689427535711974074943725161497401147204126939114597634826968809368204443075676345185603527989148205198616936955209889920064904752527385220619224514699263035656042736134643720961903298054761734645672804157003535409235841004133650368117659329744606704021532142339626591771560438044236696940207296642041690574492629384779200915427313412374217632893342951695666328112113140911932927309711054070695434717321162144433800501830420931446378969018763236075599615361610886890956024784863551211750528043041343131044455182107436958750763943107538116638320073641399520477741064008831817657018078490884817256605517668663915031127388398153134036154864407773210426931225065462569831864276884983866405794137832731042024703507295302795840722323433662796371470390308274527059269966216768343215464927076884780154274273464488286805838139251006285882175069390441275166816232097802099796367817411430568063782160057986488395541997962594489808257527732340796814042829490605549611781135736091644690310439824425290919820087969743774229436187269636876736438283260209305177298819909166461937399648850244428699085628680632702421072990212871206890236586219817980790246137799365827216350751630875356683825146576334094395359136554462074387047134818000567726696778807820569006347195856808039924632311454568640410845949687746433840117542037800631524417974758280337095737540831599185336228425674843446646658394824059026307845832322916793538701567144576530601196310317352348925516443115748715542903261014579680799207921026003220599281830824356979361052848795078977460888470003052736646234627857761364961003787521273864172419800075896372196706425404796107572079760792391542831790923374087620545940366843552365056842915048204256306326364521701434729491265481866006497610411153519490333026375735072419464914654329042381060257883827238030901145463585945933931066691630636711503167194222489398327394643289022189037672079148443182754349352040860737583853987147064692358766875970380123314346067640327573622939861015037566888988489214999429310365090307377035724520582127532193082221246999149510361216853064222901585058938914480812025228703591025606707670747354745356433700784900184214717751269058830083651987434776895621982362529164703018549634904442923560406740018308571448324749948337176745168072470512673118811429277387972351999109285227510239589079040584407119031301875306772414276270937147509610616057055245172834544228008806241955798731945217441883486525632370195406559803858519769389431139171919066712742455871397546470524647283876813609736079185120760093570176792098346519254454187577580453012878695192827877995770567101491937633270587088318851744143850390059749266602998290958510019759011526166707592442723482428901764482966223917950811948018987612927273205716094067322326779127044475722903020071613978152451116927945986640534031701846661792351071171887001432901926402990351795967528584157999072161068495210580003093676360929166332267602728355047092422194475477661949214032454067759856653280291983730763363028976879535277025218501340046774516002330390327274645317931518526232096107620207892891031314854398750643016214001249937763091514890098546634676698305216500248620155550784270941107155186058066122338797254550635339422965313592490801900831013404059021195716220357008753092698399325759173044415275627342127690930492248297885890150100306954817454655064683147731281261140705732092589940476801622022170938640945865778856370431579221910943964322912693024128210352466771813660889498856192924388698278409428700868303952610233877715617281971815221991460646388327888119631996825376159054194546144839964531680745018878384131661907621749394306521231118871869477743658879140015579119245213251470699197327641696530938374827996156861522924458937199070405418744700196845538084617711731481176753981294371873648382772481497992484971073360985513844944884291979806048709342837223075594685857893845633763453041211460839248707445667684525944247550864336236810397668725026265759622924580225276027788500879940279646145114547798771560995955684020115978613992362707279644495844509497565412085561926784286249850755451796390184830468002618077957732001754388078356367284276483100960695098616407031300318629018871109495327075481343362455976294163970114925750882072901707494022444010028385854391560524496746512284253666746580931563828893920512170819995753583383913170469497852689808732479697542964947979772965748471746211836129844649917277710117301373025210940282821606440560105833630706012042923569155053017145858656854417307644187606810952653431793851561333618212789226214940111805718456323852701561197782836145826209152866261935378590548118508964066042965645594623615508729261517759413000170068180315910020676731773202139486859020292265803680182293579493246669199786523882345892479907393923265143274368653271215828322640134610020071028473294956821754343850860912958967569702039404837324939385729239739110009921337128105175590001092075411804687958630204259193485896667304131828344952119848731539226624154912241610989666806110462129469484090213656033805743951056468611274336915078379032470854329588536033546564500745397201968907602890464127760901022057014896939272833466392703102097410414738716951143253257849560131545682317314416299298067310940911009525303948365624036985985692628143818309378208818222627317167123326977028652127405149284843937625622589237440780338335407909226818252330845505805964971553074679559772537445692133556453944947837179916743416439578483783787877942293217152632973278049787993831327472371707811787556766048422758284168705527580757312178269429062651308584178600580015722033945036953005943757538590250171573536059016089584119741323934897638291756734848655897974828358274778775943366990277567737582538326761458167793445939596472346865433966555573909638469032297605327018527833472159894109474269395721360790307414944397953216864889275111096396187139122275937977048464334254870085630776502330809514114309312079763400239723672388463096815061050962080828424551474954124459617295757904096352450729140774873375355855037652408950488893468095806691107255593939765337391812563217011681182441745781595464717149988288230680383777962335249951363351786392150983820400202627304494698057844502244771564292043055166935342044250505172443027070758867536916900002284381299040012223593709475861327041254050593353265798256148788619247719323764379255586232790276920612809691020090881370942210821760300791424457796288372171194620909728095976901085499334444854015819855838735749352712516660110450144446331294575021541506490203795075093599325164847709751121699486227391655270777850631248407071542330342021765519629658268075892808702035717375832951413743399087763259797442747041245409776237178880982263159568379831797520526842336473656752560848470642479466803271133824497758892272748299807641943559298898079474421947724786332244621725231314724140856582532663925928152290840654173084435196674894824682774764145016549405780490486656286794200162878773673884503595630635305398029206057830161362078599554881506669251195753712952159417632874608466488165017336640618287607755130484657527761048737654695667033980339098183508871168193466608679508795800761854522095350249924894581107782730610336623317797467939249564537894451439321656271127351015472154762901811698320771769592260591833343804963992020349784595421664582964245373281913815061789595167140780374840595719816868924261113165942964965980249831363653551309340730420781000436502551753308010710625151229831572012291179242563194802842574044681538464451246643830031801225384938485388996587218569615465839698139126482267650708511878236819249675409437474361280258640818928366089193245522187141539805498140148660754033428933692232092634429314018694958095040617960571346174614124845964363982953371350965541224263722023401409584220476288016224025364567279907646764724597594212296259165731297883306942880669059526425498410247491413391153045075360509971318725132360067689766585226889211317514431826366407079633398301143262949393681864674644651014472994845864599035735560181269270454538714883316628424846940371471454321128535087717818388146990879206588233491574471316873261949945911658313522428189699454833630101148495615758562210785326207042529384781591027469595299988341173795892318939088111028587599360693540094794428446964855340963376495880778265512564890175223660494056345966072604747116639587503120579504757004969356796139797834282278809947488045325036296887246654636445521157769288126710820611864021133631267001732530941886927300740598684578473223774797650406245225731536535725379245708020334191599643787594099070771331843478698817032275722853163579790344349076893732649612636367040481377392159707457013800634820724702088889703328724148967055239338032918226778680087127541919795602581463591750488869644407519561413667531330492960972344441356233245230281908564988319828908264139896164017679971590388511389507136667942087854282704355343621893674978285746003703575980182332217392005965845160927990404982256944816490005233443472803684049935337754815502211667955343211137241395436104243109952806186021975728007009614144899820781102504760632502794807468558354436303325896298624173132633269541999986162973325127414948057464500472195802842741511075393425121140034788511461782421471163982337158201602810009967821311407526898674389639749308169575598389164915073987137469456370504946066516400216424134501802791890232652353789542928531067186640666157758385447699497139839036681732818684479327506513005103068107692136196251348012319062980967620849346148056281426738819466742200172371396945299912964817735491727068314980187156865384852585299309719491028924017281322993884156366828699311552583007775402619773979473090194583449797171462062498368870313945426049111927058182316689083699036299058111059524782374161973437257795473122217772917551831053949455513556225205569124857363481202879349875220665616913159922038386234938355313820828182401630452566662047413429058820980478542168915338366090529329507095553229532913379024231191142187272900078754432467845047905157745245807864349103091664232154287898602548896710749237137208523811688194568003775861855789348450207103091898464072611670716917142441576951464151127359595858510912868133642668284532439086342757555799351562665296341758402851067340500130124427199316733022250966903723147535937050400255990894641237679545893291975710617899027386836138272333414309040221447574534459597844655421455366499472535974576601266191753537476773438901954869058937335513858988164918492503764362909729862070355221511196977443487761218086701318588850327194860293193718904488935774465581414160700341563175103114358999736861947066203025061268349897877971621676292234984516470556632929643901084695983517319272633840851726920362601570545417465186357411544399641458636277014137868606780189828147631849088476937159141595292452351718425595237951738983420222237671041868447970703882800736511946432354287982921307416947356933142043043180892412204914522654351578544102441541063453308809668691102509352345739813937451815093359277186806403262648104470529257159416722012146735997821610902239305106588076150716130288136912834464922627055364156002978157167204929810249033881781974590543114281628694895262524749413033717606029136576743285764860746994155527952137779921152303043847484996764123634297246563965969380502948235758598936707596164603460171907277328275046984257472853434106468914821437799051975631447497146962800105799576680940085306415361737207747660826860616560337102549907337922974388574460060281365284115978144129629688086380851181537200632289437574935131278552699969776530078476745908557624200752342294464720239824900365869410893242075548883205544098758096562378143175832168831257764670474355090582773971783770063120491840931806989783403810320234268177814643300487937861520512011107245255221019071931485573882069968383554992017994430247054483794225407253465336730859385073250378910498655292305749263121059228196681829674958911563558032086573837868976254647114416870438367424610087554567991431416243113960817168106938792011291747632684953640295341318457738242532923201674290283380774419069506740583765675500889774770854190595790535619558055194392055679326266161660294291614232209033987957081082306551872690623029867877932842016218296889690568302350853885543881713158909979075194054171730157977568343729088623838997227670443414218757598032488266272033572342024446129125982673485500194097486896675614771495005959751036256816919925095258260748197134700540274571494894713130738174984691169095026744495777876552136034374650676295773686056581909574275015395220432860761503337801738746415185737791916970646051372598257399765580118707091210192963305042972904526415818770519033716976376187079156037780286716400418020932529046295601704346597090949382358545556947097033895094904014107504926886876761174113011534302292361182346390366147047797242391502920352024652857740167001867834933206674545853006457407644721070156290907076983247459530565712688395854067972263668617415931454319328709872700001443431274008793204324268765949337773214091566175963458767183105952848401261116498313978444388833146308399728962764553454495427698006086580274286411282126303166189458427536112628116947918916234868642069296941776547961621451422977602646035475607322201684874679872705718843702716678594403039335186775307693008651422544067537115346699831997126819142819125099832592532674813885978331785970056838521419875253356455441346995476292126543185159605073771597718786658386967635385653319726099010610125234488939220757270758878554462999175061772538956057864391157527807760339549845286513818180779379267680603480619229129674963494622358073697180100007553782118078090244390719197627133128286934388578951184471375256709804009630012467259704564890938780355097056109027764267991839524692552216521361913722939035603418251649701068614804160008493761930125029775219608596016795687459411345297762030182283178569760422874682554624573345909329197755062054877096102520480586241742316690860045223540877152795479610566274201916119937396725962497528865255994804503776921592587333708972999702057242796082533693681953221937510626904173296757984147205343494825364400970089268570651289158526967573077465993274680285079255863700835535366778661523775525926597828910945667487571563572346064147637539562437936112816221115771653021042299290729193858486221731325705532413393491574003789582721360445426756903374111910712236518823167243909639201242439818333349537721093686343151260019654375474303766557271319912127138805816411062020391951692271550410589241992561200076539265542542484029987096285975768882954510709530452074949477473998126620849859505741661338258881209714216388941764972111802305496921511331888736546390330487933011723967214719344912043935724098000801002141002434462136516181608050128454425292148058616133795400758628756121515984304207964735468976850858805755133360021873669397968764791808859754161531022285206844370934746373671572623103902761556557298838845758930533226090528754775471965301644784326476997053852341179332507874896680969773130776470320963383430131960744765974849757033692393421255071335081165672350929363736042812254069303008041409518769835265164140800104538360391894518984837748565121231105584400917025069287045078227469335180751801853400739972676767807002775192254059730733581098149698425299862599580997405023963171727413013603429833691210506527823509010356200660807701963582891538423614642739109352581298728332674397174589298670063458818450133597994981951472714752410883894550883282993859434234134369167799424237604575664745848983941252559348395203832882819632345869174185080912024363380830784451722551031628444120507835820861201233972584272079603982218559735799684936418059319141398895700214651843800461765691520092791072081381625923886690732948886797712798367246702781327215112367376183219270233179328851813987196143488204347277854353112975861308678692041074639377558679423293201443525986533775050768088963801566877392794076113792130877210592871867971531462517489334549397507564811101104175448011818238759268891042477520344567699957621608151448270537396821314411709587479095939399855433461750008858490576241194049697378467860772103645990068203001220711941511029788878030013832274435164154780473448258608984421799989189062165842805117103373627236846864470601830208626219935795290710942014486394649833407661739101632303980654075351096409275304586982141692887736723154777249133326321294555274506107212380389150199436510760351423739073676210439512291543712360244698932469771463109530652531335467529204280469693792904997105544502675009015786090962359827972237274644280829778290532594645884094114700383353366452685773233554358202404639887047398346796568947033791579637801106723625443906095066428455994614827695442607356859718624052115422208382754694616211159978541179085412221223683842110563228541161674635303770207536623772810332942931425781941949932234170997599277844831926525300706114096136603896305511495344605812035733379369789442968459363158477703303651299060245014182843681363585074498656224145248909689981277040898770605847289550704780476758830199143706937568466049454567656846963560534359394037107078071218621526150853584376505353272884133701474465834972464129765707940158274094018071015492420081173636083342776437247004436417646893059603397823439381643643007596814361596693762415697239295730809637928207232617997818731190078737437737044563244420063643507050012553637284730589003384713200200015367097598875005836085883458625232662721801947452548420745585387369589303802356025270320311441574490624304357067308767244841718429228783653074232000857692887465338519651088081553739914923351092263202021989214330540491167595260186612584280408609456470336955027973724611507423063823938085421631119138071381246711361798716938326388075961721570520122336741656982722849886810085191002965992862456096012411805887356789599836161270290232398904591786363963427857753171310065753459012856925299083507544296460312794544080339801991454565892316567534026017636931824719089959081868358610674513870339337020459067785556452692682860994053618589092881693584502674901042035422755829894254290034267252131712496656309730977907250653346236008027925582761373431359066106218895263253980713804538392535071425056216770178543417745408595208322505495845632564998939567503491135035922100497331865840597466559698232336320247234575636728216069111491864166183524954175934766159496402625309538224140871416486424975256370953083334692907012774052216309973032743706976538174946708450649087766827422842501409272255971217136048307245416531851749342918267112149214283023637504582271397431381954881834397438912504776789376815978967701386054180401847803321950857719699047300217640789904766651935232578993033915377001103384149260122416891824889416824002850459154319922634342780157042520852049184654744586292437228449771372493995812480780485732649263442887113965939500761119299008620863319401983895640198851253676011037440996548553167753204669495638191144012187194809284446988746082715574958727864795376266127692216083934838244827715904249744625547063229258005205093671966003330632062659479975044756497388178762190208979794752553788386469313949445084766934172704740103376656676846211722897399205620894515682045907129432597398328733152752622730630502811203726640914107917115401364207772827345148453775008601149167923224364385970523656496288221965929852298889481968427211430027148112201760126523128292843314091933726950399054939155378384845444640482175699760834221561230851674981781653331862736992271050642914797875519567864446316821290170980917317329965522908164107380518718311355993761857620513133987656005695035170250757302993035414150579903965670943504425643318589261008306118466624061689622351115386216385818927157152599594952279191629577194093668044079761914632787032699840159075639820225314343904611642438932010912477142221780180029797214889684392429276977089341603787201174289926805830774572338571687293505373669139971359429445331379888274070264397207237752780919154140047034549684804515518028905196181098731153028239183809374150914574577905841232519358766064552674065159114210564230497605035432548796879148641674564005937948991077635852325516695641834891207947077617597614434630017046060187121149925733952966009675391974841071851840251131263604876956911309969929393599191439635479920075118718092656534963357816348505637594951666829862954292289272762456778658816341723434325506083241647289366944524819384166435426982664722252278671903476766909255640810177892460994857952372642185202435511588221943374803337393492605155046668932938501857427758546163515839943936596867768940787245872465187086397963063786021144524421127906091699430601113096987487721428237539242972824191766882331906540541000937222625807892978694755497325257139992353240001498524564017142363806738949573691722835178759104834276463848297101909740343564724340003875582265147236228045460321685037366346588844219622304664802905483893718435750569317589763649742413112589619196042409437616224411768942171552324408716833319049152413126146973688583476501510077290226820796954346940188665782451372656823942718729069941038558365872073235389109802461600351391496484026931542258420215508274915529754337192572445764822752604065315476183119094597530205188846104204013728547749946513089635991945210864815926418973856847127566006743275697174371021076882704319143693186853907188024263696916115218960688368816813966871360900520838434709286292417024135625543631160235732575260447368124513012380732200481677057641014856787941184712255551774290575404095458988079868432011617703832916778932530390522850580819219600806468928254161004512261989531042906082680001139341889909975404006917513704551749937000343184962595504038463025502947646624376557454305585394019119397661420923184122381143500447104901557868358812382688170808384793945792506097484213096194950400411145814865283913960194801133456521928938749839105207744403556617523561616348770774868413984247377980489005285805559742792136203397200692213481457452066967930070762896217206019087261707988427620933134972910110126397537542021352466869258597867655445589586458627932693007811395391656868639338948229226826826170401025603128044937986865634333856252770867350264396918323602194299704750657155057196047355917985248136777627138611808951596608907759257074303704590813035110920920923403938007296096240738274821489429878920558957968618511594754516369783863884477324374530215107307509684891913142150184695232019591649149597442851873307729972506838295178077997220610212273150376963442431764343346934247062976620445170317089935549866421478879636774448994095812577077897025381617187548091847041741708311674098203221265421033103823446755618505015836740972462324025814108097904456284816675477310350657564629023532293361234363369530601521121390766113267170411108832848276156004750755024992715139471105512273763103725136732528278860515228669970891434132291280772178718284029151745744290046098373597282102889465642341542361539453269389119044502001563814359073324722295299046460503091357386482837829954905505046877157200205510611542364678532446684474142818948852363237949591764010195135137945904088972956567604130813809817513254284097208347165556558910538513091039465500801028270390315331596099111939211198668842572332434778201137681310759753872632167817167684356971580205951776430923428964921094373629512282321986706508276257933137139198296249341039655220568822233913814636612433620008510457868636176102797006021668961908443514899892140136888622023911883268898714301864486350667075761891729423964140978170682642785133185689373129593835671259620509793545787262530752265403540008963955725017294578587057006161059629236108561133089372639665038024100504857649435577108022225404449930661756839800328546767249167279536680106060569411400934143378727994985892879489373868909274509526568913854071062005858282184852166936858883527679304974723346950060770225976170365131067913669889387597701085310773885701288549065509530973729269867111122556730362921546544439363492974660372082576424549635390707167130090603015279878240301576876919246045440658582427263824094984375727560582581523686962260669676250674736002590589243233610824273459278058990093256884298368314080582197314571395666172114522397408493721692534944141032714027064075650578228434584383844019944617230766171730311761801921604485990283650138345707901954708595620849214537748891081501641037054828449581147693554792648717891652498798059492558245252993500481591992651547583899538944109622367259553915511717542314562937889029682519123188604214934998848030071655470059703536624988553682389900397568403604459541546451082681429615320158067627249787972483619132653707753246687778926336204458980706613498093314452580419670453197170733320317594067020309117430877237177066550452280650159224211811062314069075151141244907031157455340594266468782337547414162914162279991322083840262548077051692208557782280897628906818661928017055709239029059234518631493273809007815152126652805664795752629113729833744471696376097616393865427170551541445719941342691573324056228031773713864301131990888762383281837058292387153906247950910253059474935838474982787484883735486598035237362939569798838063608725671367911640029916379939445363021239380637911106708665067214992190913154803389601432338091159956854975057511697504742282366698693268830580818685337749181267718661058233129877557320364325243304158551929743237456662845302767389290720632603018303544458644196341500636080561453248986050486624352719496300086218513900719541265169377245093775859204359514513584930755909548363100061704390214082397034586184984438000518082739218802744123250374449168017557597119535504315546381431510103367269439044260823233004175771218424302363079537488552986593497767948647143422845174340453389445384057172364038935276509995117165010425791021138817843129920114320019265549923095387025141525673206021194548863920093565255521044794473818353328254259077414688231319324809178182841889354303084353069448414557129524856251827532795602606208192810505704306363563699709584832658135789000509753648895672229071430347063034945529027336619526285456836997511193074966990450223092627235367798013596303504645604335818482801835374073718196002178123803700462778204959318711548901053048230343135265239353472693062100855810611480912290946664075447442494291999546761680391295960380857998064100073789539612348529030053264299983995126039893006636027719077235305915926828787961536020279328385600770806287327107661952990284910872013819587319755855334409633994451546544508809809194531933425716991251819090791211244509342953216611300258525648425207343118596187187010604903773853169526707499577644066459302471997444953283466818050755286010693987938695396203116282429537731153562634413321684568623554441326987374968185967312295071732613730170689385780850303448479006649309246344926577129417327387534582303340937941441160797101203842759845569615859148465035850489847280456611975374350616842931423017331039747454342007005785105344563245211953752587977106134460399591894551499478233114479601974256229994768722855734712933320443675397912435178054426440711175775415140741989371601705537996533849738877513290769489889746992629074974951083585314373902699977915800614444729631743019727891178970185344928289973551138840455893892792893543511148388985901727756698729748415215128081032421075847677832207313639442340321994044815291298453773207524833657172993078812783915526351038735358580514079122245473821640923205247121001173445115437133694413226755850095329688974344193979654897250667554747957141592897260063325326986416709581150499855079163716117020283128398349190855042540618703021317409820073217767085584980415197616036059913153101902807968458443287828472571119600410299589304083696728711705024584635219788068712037194197752022325726446895880417520869946640388486285016798590215525042536055272379086098642103535402680531808438930659190471467922382985501530080472109300946469014530525162554163494302117947170079789974199157348056626617716530055039218099325052380549301185122545359677334306133284197422428833432840395488952132892125995628604296791828098729697064613989377239205338592104051021726770489686993130742541778543795485569469661261216005573883960371054494098903538804201447111569220616893863357236385993679880430807329456507412282857297187422830576435538474967815955550603901746224017913569212426392511702831501701063732457237685880629288943517171283389060682311618598184913869163406161469001955154174395280402306910024886631202643629295147768759526138886614546403475522460053443072231425335564064113446305367887978540694477170911999653396658595455222193664754089383499852724948488614950442410927137306517060449983310412240318162841558631107686373861171422561555351554269792293996052797293907235312338093673968283727697088663868649304893889074582470496441576828281683223053700925818409561555915911699654024678573339465823022586388054789954080166270972825448600355371492797756491046053758603076433826539213409484200192272834105785342761329057725720548809489369911485359108285197327298614688764841982734749868224860757332035771697339267296945520314735065937525345997054039176674070474452831834727529134768741735782846511825898922101396091306537043244569608330045116452031689094299213873440188879262445708833397303629958778437877104646311621634654374194131211417730790580748400286078484265706878673851419381382718621397731497857706825104593327842782488496743208867467769150266491245721083472810649527759701189968031959667082272219320875337346180917802816465248248980690551945261869477893451753282802792575517481850643662444748485639813744765347769055143022408569378256130630373232502961753804742518474318162796004719477452334302629592548795500682956209909329138668063053625354818388513942772187374298250592953807255272057205333636435406845691861964570322631469124768749292251638834206986890800744873740035404849228840623602840055331494573599808681252576098521227820195242110352026927058531497961060938221732911316698500076060399984103839697953078298373474100598411898180647152488273126516039695126170760116694440618878990823598731954397748243710918236035607414004873133308610826551470255881729970066726510830366361267629878575581913546555543643288798228574361125686457833371323463516581215815203211119721228081856248068384993181381670967878298185634465345146401882291577242029961520270433240393898915976369446659800626476331550049320519425799370275834536070526643377802650389381001862268417397362073470061821414769785138900423551872853583422439044095964943130452048184305655696885079309991334376773475610000947944336344425279996866782726191639765516830289970483838077488452270216297505170071196932619693194869984825097349395411233276407186225421065258264823672611525148610910735783966006035470948300395705946228939785012780445166905931826382887846679547307723959814315465217788695648158836971317581525881823305659280546701189971920125796384491323826033222503124782608152165126855714943590181867001163481287889491144522016011928033396534158059383152729391414117388147035910563635915700844861801096108882608421086629674657096656529650089545284680612368214956985061979565916500250774245197663118215688440943411259988079657628186763384300318426110367475245747344436196218321608580087172249609881878625473462533993212162860819632429678076151056209612700491441180765678484679976907559466489674276226405718685956432038546347354496107731075354739816685144662127710491974912410158770409507112525176410039494123025099406218519757454055128830024113252652250889375056068144772989914718761149688901387890602106597364440282105327317458332213330335708458545345159100398084845783359855210088178730181052858358373440771950506641652475502218200814545464518080425614475005168484103570424474300830928820931661971570355970986537072443716021238452686984638320363263905339485665259966235288580851949871335933574676032351202514022033787284524579944753170501478517200862945739727759720589086853442555658247468348210583263023757408162115506516364625486836594860996655580710148950187248857998183395043032451575003554077642464660264208636640174800229515197373282082516263012402744668436879626787464675388306047930579314451149750945380930533956159161744257702694734010073830179816576471464537887626747413188340057536558500889844153915839396662875409853353985372185508715316549771149968613300993559620279436366882474774224000173071360923354088891222318291770483880291571828415525358350278266513087785536340008360970701570848214365098413344537990366536332991176288862987524351065852405142742990407294942805857059411147508830065946711371005836478546313792320089924587219659318085854579333896255565958191195675724737035416730892663917530619067535309781844782448638675077145948929292177233972985872028193550720006775378329357171023887476136165044655245747720515871755673593477093187869080218252945417128674555080647590573267583001469675321642254573079885379427448327119898294187853556404248992437126163869077019428462816497481433631787047824604492893538357867944571083180108055784225323781412868624414684638739546144915391984723499276569843547512757699896454991526582926891769526649398680952052910398815495312200846516539715064917442660332403956342978417243815361115486172529204920292034823488545831300581298658498940246970107174639697541808640735444829335595024437462578412428822148039528268532292884716106770676226923213412872513562781281370394148319073939488048100611686525592997073956862677769354354782992660547570273647042658628280317302745539231553323296021883600622863880191206949498279860900509511392115762373846990138866497459493546109644165840114143123323255338809632952699722624306145317121843677236104157635198623002097132798744202313611934124207558912848899447593841773414353823034414986385882283618641298372530633594063545479859572718922379803662379289997832099035737636435003709946833719811005102499650663184728905636222930777945207314931537485482585017653748326097069838272822026946951714010283975981208091588649423534464628790091469627752042890038304598613204578438314562687628471322249115847512425628331946809099372424942015600243532988161848600101415796630607371578922117687683015926442358533256771505251039172083489096158254360978322855077938556839482738177145840429249492041314395490973465426345653719173260950708513840605151001379937292434987466812078075339014757213409580905187641835344590402681133779406546618846977963371094139934102127304483552965537988868649477341313488046055916828250955649542343229664956347102621638686207881612315399615696903689541630738745050771833455268895734523571711368500076107068674985413064534837705171860104476361091215482104409142054871769431705042466472227800721760928308315731755298493459348288652160210186772642655205324567184593681204348973033245425119505853267057065047734412723185936486592666929256272494044731281075915333204882631981693951640482593604931590352954781994954143632923234055221222851843386819837224430040233734943260055228169131048566241875092818842748903938849029734778768341688461304000241315125321550655670495364402788008099344635612183150339963118933765840963520233904975150820352340657597883515224386890454731842628868758759564459639662835161577534084941115001131606750204812000141937192350718850400116961267057168637739557203244762973388429320514043247813122047602120204172200074958028090713419464294225590281981559352003215546685419550047334922804149998132446556946192733739173474222681002565435570811512032339903397781971601430900549551078546515723315791559206879090523858332742959082020137992351876980655578160422504546247968274672523022243619969247552545978143790499339238942475859000530089693342782999292278144274399425031032677306202038371479839800400554111749201658673331763349626400426723618149444429654738227129121896319803144198254048682715806991245263729323484066639924749274233528911959990402548140946760565040943434567121008930247506372360717602463070691993833457562645430025900933899101495029949782235019572642638303748992497636553384356380760173586338303776354613393681819296011797172642011661462825289017791243583723574750435414941128267374257250096784036001832924353729853816546154154920027367863200686213942412964608041692657831991844034866699348032497637576493897311107302262050400005546344095860312211102560189822648334540035741727680404734846755924525850392273313383255401078935890656224148212532168771581765057030351558358307847933683615191203787270453650424108106331039755236187480326242411897113589127952099533435666403773533967306375524001111797651417794607944095597997872315228640685457493106611215239605463628517263277760761788297085686229722769103880548895238333942073814812258001091451040755641725125038056479368879013365019149195998377296961490272972961336794788133384628749086690721575390737466295207344320709330553507707867698328162062479430228770952549334557486271432678998570385870024038673716432877559338048279734676601760328011368440518463504399793260297385547287981434717802892404925426812092720558458043539822988706742266587113181810728784662116105804338175860236343163615915799757070678835435926800373137987776626340939261137415376128301330097077695299545039179199701623804485472006874863686173222909698477542687848297444755989884764343137403668006794410666186083971531968173501415480058706010599442573391466454031723927670947525178123121183639850849890060034002491116167078843366751925557992998115128060483105437190558399524910830753326039613372990068437976788122562159381169611048964039780296462809757830178804217559229933620347123026971580336369983308148456230083362774838935754614125916215492552064343436636228897873013589448771128063137779327404537251108524023188274435984196540606198883390925354122913628691786801511010845615496651954608904928130048469193699001195405301512304919800113887267520617940431274687598644980487316988283568813891155104402003508850762188160524854793933409153003268113404634667000274487993222493508900791258117649341788447598244556540282876272934188509591924276691441469080221758825497961359383181502645874568523808146420005845064531521554530672650919088954639644239957597293458653948568357110941371233001944218110371213669384483039115527918022176878379816218396150269778042202547724808650829276032343027582492024975241667743307532097981173386877367364875756492131317242292519949780601752844036097452062009368598208934422408230761341398133860541918742044947021580898493484974791068442125334725932757683956572174896954276927395771104973045320694030712136062514844823559253739180097621164043064557070685270480742838356553731895805425306302233953339826624432500919773109357499201971108583948114631586579428335065402056944565004889157795601573523243039885929331061781916975519016993637806233386764195202710797660222964618997689056991664774524080302100048457754790752788007565423951001525138188317346504400510539122012756420695264741291054814902989342021451417413690116799781012957744394313718339905956429582338059024768327044797390780308683272017159843960815343653459833349945433363222781021031344503538423322237569502953850421300804749403064159913903424864400182121666770901435725471757692681368268206087105673583697872445532749893125701147182001668628137023507099285263003982755881398435944352142248017419355442062292941657652270128658005925420980376111342317632892334777574690725101331225372953943020585373845809980285142482424725062389050751032882014665684948774080061959840731344514415523091362591091285729807095362075887024872492350050571346674219690447733655677577128668522578481810332768759259239416601994499434562815537592548220887608766546949400959404174019897057590888188156784976213356189333270581856001598425706943091355917618214417055947083503715170769528731225588803199850797319910234340238639251908866432214047580405710377251540629986664768196604293200182719368433322209091238988037753586322933670927299668040008153331000181928464106280069920420449606610086256635793788758770122489344505498627753513227654261982225083887572724526087464726550861075988266510034579356072381969421162002583591316548178040912196935763248492473625154458409743761251437892971198789645862606115118538215307989796490075171000125929200562248258620723898003067496008032125753279555816046728820107954552078469372357309077807863910777827287989010205044309366054850873437378817824651704051728432809970766728011311255652201391086974837605441652464354601733000467869879755389894718425927488734812976976602649720148482493732046876218202344036550910153094871034028732638733649849195577128897920337238105483014923048313678585378231216291653838603455875115901815176762146076169934393759463781793330001111333594662982000244171571631646633074357331405368285130411965022677679485576976880561149084194175285828241758001820313724410681294900103492691316474395341030817605847507359402518417895666588572216395769515963273397011504860955515950371162621888440905772294508266902254340145637218448364839460275970082678755990207700012683933598823791976727246456819833410795363293131394891334007935903040889481193342820390607337727062654410250363957299297736238305912015180324893683744813608569654059479587225807155480959363719088664422262563752714581735047513039635878242702619598714766180399684314481324659938994714295128673732832583187666245924880296049596577011296105400130272220608258322434038862079366225814637780643759676112198008866289706475254770009018769497298742160588542738338085480065418464493126769256192879350796469734727092688282143143768470474547723668935832709928563875311167562607242042415165163798990024595243458574771534361665749503187462263031214252388097681335395097700113747675214542607068416566662273260880442247955181247640741521150640735695273289281368151967832281108319202805952636647412280396790519476323231662470950005062542277526927879929870636312903059594510793823229020218977645426671358896244215506244280475602792070356452759223350620869454772020034399368484115620882243197333095699705810254244508930900909433604803979130463036507172593567456195470064141617998711989716000395832203554097131452582090345967118986955858706806054933406698584497937257630668300839883907991272859181804287223421577259287960109827955725340147331880994559762113142582946791663159032576036299457589474701812613566996433678438354096862834740834875500306584094688688040134878144608454169213395541812560074846216230945487875144745379828150656181279599422916321301852618967207152668849359311846155232357317966072234815224180973585865020380105317295273516813927170427564522640735359358926075778204852873956322105144533243092078008641509340076274398076349232676680277920430663943927531291601916561327514145623488130422414980673990276418310132307016362853373394033331035334208222026404201292315728273760293455638687535007201710795253238968943934152138705103197729820637005495339021318791673633498332012951131542540826380812908000221719438976500633152984748381822830093214386207600729031587509962472256538322908599094927028090040527243829904646108469833648108423056425686009724284936056045849291814623936246629880591864211352909735535133055794035603856247334226354565808420443863022622387217432718198624899899772754222857261353974122527030177625574514628394637322048654318070748171127254392450527827546161209906022328223518551739708036628720839913291110515320818901098380567749986056965073197947359495954464153658392659176332148948416194511640540462074274866629669084217816879791543895129362996879952917862627142912639740305337775266051300744990730549001627159471340022158808871970138364020921443476672413224952138540894787738795478421659930024124507207768073068434410992194567343892846389290847362146099034232155190897989274459360144797378955975512264551895374584715748016273566181376666656307158756155505850145558726062721739132243792020408033607568900179283586901611170230170641912604716453193590743468607185062598351849438724202851408946461338041812371952440961515334029665715877994131408772450474911916075290139265699534751965301678296325882179620912089393352430839641708004598331105963999350891842651968130830241565709176817725480242279759938878531465614833370017340217703254155789127899213933496527542988841020987574572676367265107591360214392067400854391074450980803126474531342743977625953832188719292487668569979656624369765220737461074948129796654374044929362021797150588625580782012102570471884899967157542932033011422691983892034734909190676030317931865389395181625613664763162274994123044240511755569295478832826451055094901650718124008988091515863327411891053978448433237479618358593416230376660497082779412681196990942446983485794405872967791964612430441951249504132127012250526316715014306801197994847817341586930918564342174684115383406995333522779119143703319690931077109676530391057351904719156880769087255876515003718347918651221989361234825780599259714704944973283348634938237196851217881450975278649936603324053427736518293715162992952508116991581155695709979654335937679287230984542358490753919827596625207990143444613306239956709477006406644362672360674972988165739428986121610236030351141912524437720251924010275980771324761848695039755657392091022191423327662394557087247643207652774356264806909774194273660980073523592344703401693606331642972560771079178387008604776277814743940692942435778543094263662033219264763978837673870392145572650480895521131689897998593896884802285410830289274237260014771320500653860608889517866731734713993149527348503918957133120663199023475684569738259676417522312980068889410801962180316340843938484817280443610735658146578718182640541326611818675521441725085347686350893927457522788911412377026017910829820418162800746315548207553533500093450298298270567410642272508491685353941989866329475919638690645950076272438998610685767381096706997132424027951216511386094831641604311115880053616187621578875361533359428769605246034667878101706786126562168248509885740051888479827960050154010715264121600942830079742214927841634043956840474180981199391639699649710742171006381273622188495644645148158857546149250281552195911823422948513758624756119323477674808188829588744286407276575928992550725876663455202773537834885844214921200658967269650443477386566065327453577705487850156165367738204988781188868855795333919360636966886974272357805556759749733588198294983194906954221573285861623576680665381914207016442409338150043358561347689101640396656993314781513197488864553383601457529766657406078077128179571420564850352730464977290931455190654636062911151550292746125185604378900363108096174745655369045679004279613782259702022202762130323429711801995039142202542678550772314622347878598007966619020224583621508324731716820261645796541580455516257214507288413798976188038600705710895689596634841211974601973338197753974840527177748625558149394810885758259606659461971678671578074099818055452593938865452549767930675871382724749760153046319136603908933056763692938089917928882298950453513788503321775870556336597865138639044432801684879607560725114028957461830692834963147660489246316081893406076559833920639748953334462446861321634730418291921523385495925639959871797454576024940926945829891908612419182989490186832401399528776844756741459075103774407191930156388576708668230982838870790112991613169664355931005320661214155871521395167617864838294397934861601832534159391566775696455653005514525303074086355148967934910735618807221696551447726142972233924705677783588911783233512443671434233669003024719968860585696513527825804307574992300033635419224017414203875753365845901737472100295283768945346652951815518469976215846698304579872132650451234698688968857879626063796645839300422971961868722533911625397620962336510391271745717563031431218868163404085634680152841074940085786280410733136141432319380518014401327331787144640362379436667070692829974883196775756738582408083873283172214970547648955080930142480623471843811623926121659303613537528547727971048453337439600706040507749865650005607830461454991739673221031950151702658403110976790913439019859915059439393531685963632986807267280660095832880419104249232543589277017824353211717671573351099089126383915166857435697511979971556980940795099607223534419425881584564896800079152535964764115114149031376201589977032738298816733153194457406287058324051648911356731259832025397732793900536870700624606667088826767783640340498388853553638157974088321069861104598207514060791736990117152072352570445024494329110616695779075647715754906454809719853075395378815623285638574466709335299412350873208503794144947120720852699391511592716331831658962823365085842189267931640884004671582121842502936255476373126896973516086935061638154340236644178699516810474345288330098659503090914016296033823504033234406176995616687975312560891081643343306457575350486412445159428773467927119079870933630522258668391271113709384955837902817955994615407453551088401827635536005515967982392940882965819321997804446850984983469853906679579421940868314502029875682585665225490512589710815890993821158618061603192176314107835783820663046319963627108407599983269867311870202806136557584527752919961734262033299279196439781461478788657520720087826974682305342099903316457574261864517047200518017629937503527623257680559942557423728376504242907728741482274513574482699045015763821816086333659552018387852643151577211105896783829496044954498837384674144728073713435258996319900041895411362842879180646627062450351305725874420756713270226376833451364557072787717231757041987937680699357344435506123894343942558935460471631043139495243740557140404206682424772241605505229226985909783605307452831069790654018819108625687648495998345542407654226537264648682624858034329179617300429591435804230422483959904773968105114067076271412228794956168180475741601245658953887571082724675108442937122372210967673714306589420365051686226326471932260367946521821259111663207309549459868749612876874025601821706397981362462142638535560748668762670156325094906926603192422435910851801963135765270070734518754052529029777210535295480104177406983433484132522528451968050132113153520722272041478430347097810108276140881717255074244654979786580075591344561650389461096790927476386200093275696104849868489511203201253275439631150648112986550992348857136948332171715610915244628127827463897916399110923148381560138812915009325384737702796712709757292708695432352468183678804519356947525110383214315160451836409327764395159861136137900598360790605579913329469863645897893146909814366251163613105495219426023992115789772126968370488954592513003217350623078781285474241086450255310973980499496051164314478905202228371606613735753262456730417836629230572840523982829640368447708558067459434903051629545110204383325539167471832090921898790913475227377945344251295291139399036707354872544232680647913287990144460422257406810683419423214159943660489818196081249457013726239321174089813947343277430797930133225380192771547664874751471073836331955754699385006597601499191285009816661289043953936241512834935034038947563911191033168869305480656271987284394562385800106184659447673487254051687425448928627305259901836910469332641908781120406810019129904446507456141322536350683629379052185177922330453617746142160108810169216905369923898225561613801136357518884166635127335381790047152086465056871730420760525754457505583562761789807901413632125967035215537352490639776723528361219221696580732627291937066844674786096446016809022658634486119181195572729810924784073023596767226554233351707128034133359570347583823163542078267063859921461084730082486268615830825185310996404273345605501504096402236374243698563183961333807674670126543474435060938858667302233263039146706289708735659396081125835718404336293293551954279112962755870395142128663228449959105114185581836098339205629005614116347694156544459181266779293613748180550859041538444123174566678043533229541041083577892446786832179733154128176421773436487753031073904804200392476083629158859457930026409011518858174678118545342143833120358394042002884108516604718397519431988168625174118813968750075596878621063080188427639393245067075397610700350044431418781334080257149137821612468024316094052150672416993987464077775603659452338619555978229834796373488432237562597090764760345209617706573139960997203971243560863499677991947018475722114560005159559904322864238773277493488839910612389969205383515094459407975645896463830891439700129619124145392507467026311780643481730431537234525967922952494812562839602622292816905492308847052096704038738376030412058141265632844710796204824648647729802557938681946056561898350982813803002489844192582566471507867629872272452030708902346129109769385770623266651300703439982138448397793016026733315344453583048374258307467829054170228059150254063564278968328722248487740937525290166915917562537448646485442036332756394773380695165737377281713697252448755419709137003076046971379167508737917562093747090224236178537223546119102096493832888615999806975625455363045024664689410077056549991552274694356585674758921935326322858590799486438287214971855029798683771246342840490390791018448589574234224885384636612999562645526703430792320332219037380593641309068896352299155881968722420674710912456722034693835469913212530651741258573735242595068582425182395321457038549147941646138084992058191859270646079159187812859155789871842962029586423570854845905713528307085862109823563242035432131516727398944089181284219527731985015860980624116142830446959266753091881412229778522796161313243463856418464644203230483393072332916726353793719312725992817540730202414024735230503405007722673381964895406237139323715125921356885340365934696828771099014108323356511822440903866497629077807803681645491294535830024400283414349017593428239865283755511450603558675324606268422989774122613927336248133360821524879486756205943685030842990768304049468811668633628397808360687636934648798123476093544473177557421530621574401296390791003400093649090085823642525445858887565120997600387104063350239354522930881158512246521697566509807275376232297605004912461820306098940771473578980867504662803552839342995251679251302542658875221869629398797157606892372195311178250650522245469597723041191313459579997196747301949453665586385680500464678783281126897944909032771759965693549871645566601428807946280037367410832189566260592743899794981962468320254224175721640889851905440105446579962787693222858889212442386337528393328757814615222793835090505830164952002102022324675881460923005892950538526516515648103205877214817661352012179804771234037672813030140700692934797643299334486116442830489917735576076216094451882213381903389579151774029888415287725237836946424473177309782077552478746535230063959848881681495056412189239945344332907260696728881342679981402765888791588085563691166652085854193618955585354405292014749860122852014497147185661297640711142672002674604449593670284106977597085247930576794636862636861175068652442405855736371999797597575465294449377166432191543122858217627846589950774808804868515210436995049471827355334738295040899300218038018702644267339642245809868589061789043152997982899560736758314636479770004860063937836321101175602187193321816143991628688580516730885106655130996747725224529360113994086983192836192144633224292542928550209916458677000397930282182325063972373864087816603326779093483723438654858453671817358439403467735067310370714137547313546442983472439191054963180610178654248589877187448728325530150654274269729304071950504415382956707827783644632307989909893379289356329552337248459863470560957923203046666404609445713723974872926183508557007366227477824492406295535849648818685391655679188077802226483520607953540642665838521424796443663424908001439005582241963071881575662181630141958830255856331589545509221012699600642339537990109447736565036556242818532817174400401316949545139783291693229424006049447234875791899953075444649660266431138369836611673577382396431567066269620926316044671567482061012774902677766028514073772751442992192067166127997822855771112438177242303019361537670276347323523506280327613568526455552841494718725676737662480906481123296258947427597187251465092441645357339399714792378343466248485681458459176027479267512152989902356901345547872008056141443240397471933103530008003247939402744171339585798957926274228606200226839756073271229871610704847728174996650701728322172878736429820415347883892311272302236293309271866362177399563515211940492588750895097241816127394136248674029057803430658252581793288006918019632236245946285508276404893254576003810199863292406397005341076448493189586697627324011502425268266649772933607702295119916728682651170052964078646097002001339055930479065655898782237555862381847280602436984431629869370748434850914540338483744423807082487926349979054099995081346280302824651931864271995229713575040746360829573117484231355895465795030952144626340114558492470436848471732324915760572990763111352861915127958355321571062242917924748797379213496041826843934656582280042650236809497094779948448508186385424746887382716603750522441676698341573278749591542507460564571736878666356215551969905222883023876661426576730077985448227024190157316253520959588771856837132595016851571933378656971619407419202011049617236228446648845016561452659728150913637801236113229796937903948119806283354362402105527643195395622052238925616001076415693606069012130671971020863943768052848816327672767400285497822010446861804493564142517498459808707254990234948600131095932938012850941633708314077828761607295911227927996093485420975277414634897667909789868242171669427104472667710329460864753703760349205157684158762735913707171569921840596641513746461634910586248622167079167129102076378458176796732030267189521080501327480368783373788889416216366844999410173898344397758310237132868633458757615407237520552552178368857604433856976024778790237453891000079284512947981715046655796724922675169682544954209809382292767621033029024305152399607257190958433686260357098727069501938591853973699680389647592374894805480295118694897638431515074140408871004889149824044373562888079434798958455990142451849141183837486568076870050237506528456192551048661239825765426969567635875883329610982845365073669836507822499874045016612537027487550971152517916699916151416321160590939792250920682130221853234495206895817605514260060106030336927405492323498112672321772463122030462908838274746212673775331880136348039047873024053779419072079545337238162478308973776249129837291505960081968878382553005472638620956893626646644516364520637854608211638414375727732824615418320728596020629287203780525262787258720237236003212168146350007870391424494391768442169882635520593558292514334469508095847015642708065933965835816399704714347602688510594039965446348852116810329910251491255217749466422958351662495266859545618264131137293161470045280720328662184963923412406038176775061568765588504794888624557372888686251462030439627891922340114397004688191906698271697595917201883856438925918470916225518825447402468848123967020066734352694409408035695462636170151891039938880549799220640091212372727783924889178993179511379315459964251951193553860062621926390023498917050033219579371822101537582415663788928751168290269668595916696591816146241131580716024281307842072966751058813989259744751658717514731060881981524187197571766176818647344715035876826708573855024574892060952931235897888116030141597116276338530672815644211236270146629072515146665405913615820726568241256082499841752316994496101468465286283438381012104420719605818821743747091487423532324981558983962698015560566570173128670284836369856867910194971637930272554369640141900961486059025945871043866713050407576309177741625706203909506802011963465103194115805970501954386913391612266830774211911385709558739769742368315478295319310044826139320795206469097692370885835248921071697883535536802528481357256224877517628603428342038214145923234326133369920087496153980112531885630498702532249122894918667252421310412860245205382654356533927436784515575480381084228336953049601213391078953202221257937880983898100102052115110103270106138727599848697900662589887793189027851511636885718807124127172351261665289643989866181054056383934541946200289836617148062160661214405188337916678994684786849101848334157880571395472392390996795238799937961392756848225540856239377729964407446748162615504156223249774052766958676071083543964009997625176603985930858874828611621424094428641076486856205636520768319203784671900696144004076565205264418829121783772491037447104445694848477517439099277337628908820106862420446897430940094555374283281047295861872597305880005850875676161945384416708314945275304896971534199697076887871520007057945063548656369174525208988097411227980463975095985666431886732899087991435968998832375577016014369948016099793441457877748426300324158026210563097792054759203456348552158235638324115118759394539254988722803977311984965917096133885171231925407802331884045442651133572155246991149268755577647651657354591756217535124538659351306720751898298611609678091110445657138389336538241463952498958689668331316082698092070312956588806421422836169445207204961478165766526496597911082701906083561590167818731211204171979170969723867986963962451890406299306359973798896476571150811670732175992775628083740217250784524952081591440443664137308181299631243816841690250755397943852140719272749199702497630854411167799672033841285609627733460826999956140879621534577949195519357791882105947066102467128108768819186130837692922753435055175053293117004783212263573922266754446287408759311726460137021426842014027452694199526580752838534312966557116593003495511610638916318160767480181032100424975332318733902825697616156560916805225880614417782035630624944860644753960762033538764353358774026905426348667352659784623139462533520080250269013472646576110259216641943445351353462619375782173667192934986592615030193724199806917163384076544983407867848547519114310194449490880045225256981530047150233772988098116737422479241664924320786847096005869531823528570173188688647220538667295775761019066586452752593307054977808532379189877415377957650937150513483251188141510721474028131008065480604657440103912032635774909531561552310483429377708628835387131909496098394939642771358607657459205000232570062283944968775454228453966518615372828713484324936026375463300838221805681399805817129435072883421521235687554175984843456329447518490208449998730664628074176650145821250193718245145205490347836458018576401622011616708499758415057926437332654997485485586630088505925607461711349297662515945703021291050383455393780893361736360138554844557798767074112050612360030007124418514955920223753795161071603999134599552394613795041032206364043358381174439353535628368579257192172965043888223553200780353333010457038313423903412256808443744570059664223360823589012249312183413963074092468168179421364741146488702666178713168072661103418509117973222996691045036648693964207370633391866810397742256377883178280052150611115747004667645504060883165666238396678516241911135157949415183663712626512408291775213228087148914455950421923248127864849035453259459994358449017439137339605122911586368014170854352340495681201195348935502004331930319434665269271240122428201649975077719494223810127480669350113156335535762499213515182825285690275094528144195898899029908095809737887539973317604992396640075235533472135455734671910677233087978569043424288943007883654628876752672884108418433589051127538165078344075583041654306417022712669255093300072694699519721473564932001211200849384423847021300579828034117104308552602542619629735284186921084077579680513019483218586876061629192896745372866157128170496923259403531866061673939487127857378812633633211174075218074248759715418254871483777885451866513428668285149966338432088315626288772983419098825878608341470589173657351955018165793374222543399734465789535063267796639000288193581800550670123098907144754226631907130721959372422411517900906259687922921007531883104188495717136054796849634360476093546668298448467909682559811898829538546274632592304862506253625606961737275301257093317704590420504484611490006364579160117453929276998372626257440095091519730110681815220179671333461087045884044559561296621821490705966622188274466482016092874295384917697042523639356757481939327193738378416513074618024773952885576410503461313216705774921297390997968258767927161179293669550957221672963681517810996305598708302448287135925617733584615201146682724925503084072961492024952592356797960085378246195149235368019532616721368610438449899263316121593180422329713441182068531030601371051086969352512114992371342062803227021448402415681245620830696845673626464178049377110466878386392308064492710417954905877824840489489822517384652228137555340824961725814241097432261085456064163371823048976709474776619688291324120616131891960496081936672428922179625478995150623462663717198483851320929425229955575987316356733432328467672512152136619792010924844029294390110821458225690217767589042638641203994814420277161588133446784975902936940437165242615823892615293330732015264516822602179976172379481539006914863713235725070159561554423666451997267102988090378852622295522294088738982202836731585461719074464842903196735570429320647880476958322965788590692714673850450012012843255387394263645081956695491988956403835075001435736737379201735094466713874990568631688781682892551873317231972409462916317998351773174698275692694832495214727705057636719082008262356432678331185078749050716690263146321616462854144821571246302733272365992357881081456373984038883852794969255213511653598098190285495061205571872351015717336050454400454761617932844600432870129851864362256865327436920489665940793659092758629924718606770058980576563654762167047594254389126531406789382211662590390245219977915748301382219891970301174633399120564197422468531638201446228255067746837762193751763881426663920841250349659531248622096596720086396592796429541684633378575089247319214197856857404754180850986572570452155136953059318860178121422746918987751636523897440329914950352369459127421202756162897541037307560994886423410695393656441823220585220375428284037017744974479456210535873700006224950696557583519071098442179602621268321577556805547622629879808747626150349201528309042657414580642849464093850339910189617628723508274526210149405634795018543373708060565420252194449582323721088527642737128054935005445836690656063694457539533304307243802870919150745294067463022465116303193582429793424301128881459712679834774117051339923978847942282689789662507577884284698089482533869204485684440870999048759013216575495611013966189359825707882913597211038382746654962557263537162132224750192230033365953644091084532380193715443214596546345188182566034752850322864758351730450811191877680351064981288641846296720930996494232169766634264410780928408109282836746739826017497706365854591947607679103116087183075853241930512484191271566083794716532512773302466132917967412935081896916659133314426478720476288475244410066361759399087386234614323786822382176204845226868020713769404429433062554679579278909705455758735701813305214114743312562854729807363143994820680304006864119547950053788257514114665010566728370977787869730159844059720448234536112954804495897616158067193121888423643531456083747011623612114093005938364925765818511216429414870690534899376361146661192896618656984748142243076494653060802139354012306526662796231210032324493789590137991326770734143890176165886461611874205227350780995766995150690939194882589818323940024537881250562129385617119296562116291763678351459015629692970554842565253438292368129456389115531729288425893391696812248121025782006928317326239010472823717867366466297187186099210241458687815869613012242733506466229497443137469912355607312419222311737075634539366488195527555918911431542695208753294492117612863673150057800379091093183559793761314014178470774691729331002386928744563055392015713432498394766525068388765651058812849467754908169761968164532182795971625560407508967243755215056331888447459612066175773134415061418145781515982064988806969117449023907246007397462524367844978003507811468984539100278698015716887970950960777738707122901500143262323415295550941609083423471083788802634565517255755854913992803168703944938892615961205401148076897175564355088775294896448743238399970567716773747015811312783714791376944209913569968225295605407205024950504877149285357399226457775236378136031899997624341592513159182119827830537010433183636162712670472644684368654884392796461744047040909486782245264529352254728164894898206649670093587346204793903150418965929045097245625054995452338834312798517579490204823893130818497740095081364521031581852589414227014718593316897066254927418633120985047010188674544097028745661923457300621319608260938347781832394607962686200024536915067046376755034264915017804898725236250597770158312645540980380423029246034879898822915639009897647863473853376491986762892042030654023431707911117465612824198939691314350320565413081161634923023984755478764669251439362593226192274353174777637618450426087781600637929206121825977043751668831748812969559265713926020761805902434066877958766248746885406020918946810539335860083774845427766787373409747989795039085617729958489769454434335080713001047584911059367725932610716387575733080978948397442832681618316429419184055995802320463050468101622782669031028378972151411228848950099607012084659087237804778558819466817331367044479800814121958055974502165885151942254234952552213445085692527144483257768601049066729069855517209282274091592069200802351766116658230348206750488263267349822209835800662667994179415992945681671624906796471837208207163116490948950921628441140283525196987818879757840275913520639437518554153851303769337534405600121540765685700411508730519361852059092062537466942157824506415303940081098857866483339312865426309843587891628657168395650272691679913010138167362394429786551403203110072363186766058615309924182038915182044104443632322300920895989826685306236276568893948056340099797094755305519003462331293816395589499423813803853875827169994591490124525353796973659749907482486481482537347668068964811822251615571972055132497927712967658849695710030466513358265512492762662082516379394882195186670145282240402169270370023072688584804714203503967349113120293080113455969879937017373663302778071982331208089711699471746468568801611447286300857509265982988888280528229742252963474630984355490357056840350299232518984171685840847237436400646411071362639274790860210225808224780123821188691830801994324634242373889749570266337392635309591369266095401799279538959004102620378193497416175993813316957074695838755335281618105627621774754605127499995321362991033918272219797237002607432769077235086791596724917732149346335734672723800900558870952048404401351660014938367563590023193444534845712349371146728739820240898605257217516728875646468495954208045472648036942528541258652881901168390302032317084197580609083028723961153156176361464740587701970975116263017312516788331286711588951977738521484962611805384849592311781582282168591233681648798769231420869835258390652673189000927448182463109824774971696050580359793200998526320776620049657074047386252845556742448920925944961484204149421414917636293389449876480410301342057168741744972821898179865260553436275755355060970275468396534448967431140092917552796461955492688785699179543284367056572367907337039510739198522801681859717273879286237240396390938772634248230329569316867082555522233895258537148529292155596776380330933154315283880656086872197146565841315927425196722706701342107977469650095268428771990401038688847046868617310391072461081476729102947502155885502228743959563840909116805166099482721184673290186116311742194663895521044918277502737981136059718802210404316430081130013523264343244392938899084797258171516147746240607290896020318692388093423597729166640499316246343147994179204315018638887403739929851658765043538033491900174992493680048849664080719593982459032525504242699527015376213682886760943867461152320197637239178130542381768621862369091394930196594957608019404395391850324889073670338426030408295302639880013284081055540825635832464441971416703777415306843278563720408389747973660062381055131402429732475282853634339225184299390092946369745922272420127014954274391438049334483716802193599568843664513319618888753177382116176950884725711635114057076434703255535481054129587192861023695606296761434697465438092587084888512704173193470320294925004287205323287098428086363676290643545199290033458940418269632529793798470376775437971057960647378668559264515223603476903847180578206814927609645300128867436079958487519185402336402069124275139898912280128031614949162679236852324241745737410376082435543845761845667640186589481453387131322119670096830382217097332718772226751918021426314681433801702672688410529907069294218033933673315440625211699909594405916333901323417042912290347526329816628321015783975765300483396419367226205851832441457708265476632210211594401247710576843446054614298811429194386148260650482445579959714993661407639072842102761771405763694459315063154873927529683568729036993742370014567037768734225684458515198994058609709288855929299858399036316572352269205583073542831364725489045357082926407407288064271837807740852135250817937463786800193827668059675120633681716236576399950410853759602848552157126579627264956477163915050916577745234076389457005500436661059502257511112892479661445929647220758849149431015892394740742134450098116768107376175949907713974838780550101341443673390481846302022278325438976557829929651704455925917877719019214453315710065386333576819308548682873580079385919642608168418477706135016925707685639713159825354071188179377168989910512385130543923931087302984639368208491075716240778464890737032416454106777347669822319408090059121065954333987114220264616121510120037116737543840907152890439484609272786682331113744334901983436668766163477481283213099980478244878157902048302005274935153199910636837185454058001650682675365849634513258441500288156738627640565113015496385660273227490608010001489498579482818378355186608096008628317574677354616665476552090365637311279825191022893340346724480850115089094539272338076117952336787409827648048366011454734660262612731997268762514222258025928677175708221944784644202267440616188713725294758700039829078980050020727568183678035527752519078233698131584394475332069857116729839435864120799078848606581218500403861881799090082419823408434682261987554570997291849212736467978129000296393810142897347067639654637000427586919969706168106334656483678142084109525098561613039238924711942933488312596583035848173453605655173787282860119201624268992207485992090655461465644791324493056119587539584590811298599190310036992682523621372246358771928017743796065628307230320250563876985356542903492958345558149073291116923182059624409335877294080338247630751033317854539014082638353191691137922287897202842272340578868939254682620832478934768908333751582409203298785462634319297869133322683944413340045879975815176623884693024668273651085453719113636274638807529913296801331533157672170558737453852198944468434331761478560487533287060846341394355104992968507812883930492775606210335280820292965039572229612997836956757549575244837809217475214029081563784168648987238723879932267719166524408138911064269072385895882399267741205742551496376403927918519947749415271484567170525326703619322268384788329012094054213406634380323595823687022137646033984851035714867980925588593741692379307040448344318347374120123225340566766389310157409633470886339974490823524726580940621283362171025503958548025173626552363425942466741031739192922021797925323097564682876317589016032556306545652994146830249706277648483089258099403121402152520157071189573557519977715364586431406387077985593494935860470839479391789530245980678932663552478422441686419366310022347454990405875376124398140314758060918906355208816368594629291056576420643142723525890721783617515679104003621916888077941777852612064123034985912723363853656845093039165587123185810852258125472737231834589662895966086816894182499085554891342362679108079714707617575252853371481495587545442054506002290391306864389907311111368970329995404034773828947376588459148714553210744224970266252347819093022912018775735877129369237245769178884730872627444531491276037416213216363610047189876641985825166284813048261399886378207652477290984012936059586826574228819997750693635819630623065577114473612256600393650219898509046363109103206981915166606299114578223049079637509735758559732791390338905193553261061844410860151308198761388856966395014902747812150801303183575552344086478615231396072815192841512932954788672844079177650388100330797438854243891927667526540568817878152198008004176210598291589048761401409992937154544990592803257377446099389509114659543739490511250431657127578360635169676190628955823991813644096577727403033529056353365521854511438387064554506704893542215814887009501287687661990740140843633169490201274934416193523079063999770049444683227262647970373926568607581322345737432148080466193580289566584331962189627284173968226806545825461264309173462756595148433737309119983396674439209826436194880745062679817417476486464560478887701352136105295644286832429013237292961963072228847317062520690935025099715432879950970140676657638714694428792864359252919937603957964325539460323720236301642996542679320580102061161167288300087798439726219766332961566174654516044902905791937467734896041407124369223764764267348428138594817728812927738263727595483604291897775921187366950000207721162432955380065970960422786196756261301672788304217904544800142566826612531758138772692568616245604783674893258312495003580920154037005337800140904088409141174922949399251900635482593176678767190412160026769247543429582466822271913531556975919820602171603947685310320238981732082532591733768910668288054602732383170976534674899885983675590667630773873933065288413785809015213966984371523814137259661629258415959277650701747659886209435602722698716340113647406939925851282261924088059932838131839842312967209120066649899621699159532589584919166884269770114505679132634040881726065023397456939839785160937080046029799023372370859699850091850733291314825762832020870780442126357636923175234885425782425619234256238852489597681075879361902158280008829199157901885273994366172715417825953207261582185405608433857354541144402970578455081837342874040175387353210836813786729527038142954384390295976505687449872892815018213478704482431327555114811444961191498627106380235028475477253938907913030244622084374168031319052840744721640958649684147696237638097551372922011675047799877850193689207943824634795036491946449942838335016390404976954573233443263472956895057308897143585273578500027777112191386829972750015699767379904861199042746745307445159924143349222004029265725247319838510030580372344674870427050494260154547894049558596764404477216775865465543359471834265714928932939866761775131433416030512155492031465881731695180471063212285407768023599979687149827609647707877927394544611047106655758685782122060215491327113991157921570933532623021929287175294464864854952112400433489188450373623205392069891326344727136493070255655017389168229722327211189029303360542991070790402034247538579156012800559333129688562538534389769389636951473705745200943064354519573812309798002000522156019641682026017554157281943582124519250320939134922069063237532632263240627966618165947605996013783939191531802904232704197487889022231238360599673379471126007150712224550635694231431626837230791750346862932622700033778748404021374334709330681874569626563097035935958788268205948449230580746772926839782830660362760526118401569790281171593818176879588739836076557444186143239069114763563970555459252331413745143574874808139563655602007374285390339543652716970062614997232550642061291294639637375925331179817237017059384157277608566893187592527739161758425125295942902478134426309811852749070558422004960915481308842200180144513601062529542511469263814832541699143412866839891482276835232059291728855355582728485186017719536868925608246499737814830683766341845878970500490746394706419433261262345956384050804251790236018924716747660469158100523222511695909866760158633516129644574271730154398081030220754108566228652429393467401128548955674547922173801786672925801986088037483061779565997831727372362524027469591721321303959673669423685745151289277779446647797342817629226625533652536630187984254130794702164208489305427751405936384270458920457473508701567334273911809056841998129954060452712807287124208852809278936044732366055756845117472936123312575481308553513068650121094627001110859181699360245961083441114457089413224128244423393589802350212797453824746613276028250396284031765416072857643712323268906388171225941955843759917784624794291047237844408811505078654424101848733700904261577083774393482030390475636261461912317350015321193474229954443711739383605290087356017368533994082586720984112382153314346643153430263860977031145465295557930127717993679196758392456997817268456159102958538012406234915210097265246080520976725333215627026732700222892450158946996350113857226571624104863100104338009023926190658420722441039696767625032862755992842922649757460655346318847557912960913410023559089796944085586136151513583736915801355027736710541005918591033723076944358367825588992373017578926997061721023782704959149178183155749934144866112731900680542569118911914810583461683076417987181262562878027837004811729286295593260315639904429213731416727896799773282544735970090923578849586162931940590776323467763292369033269798031271558591673865831021046605125358092232751369620164827297193448391737070149792939083471207918883933506743890937131506154642205858372153780239236903309249581400545037461258874131765154175314636298098167067459972565321527385697461000663211229005208268492941253665231446617543323401029564232332950426984275924734329508165311296081723913748970271376403099160074220716301427348716599454353745723424973197194667722021426562403511703247429388190805746256055351726497742945252917291226662517869017788638335836087462589410096562844087052829434780023252861705836574325412634099454486522186718545911372698333424651140063806929040141063545984892643842811904260063957803480027658438273725453659225519414240317068582677264281758354486391316157430191725287328907918188993521760494759067049167653131675729845328145929825204435250971663607328410193893227939887348044215652570342193817345501087524302194305571584243161678060385657192047174954706694107185835813361235364419414470798347109643407759591997846978073579325414838148132345031620438152717514189773049498858016349648948075100887617426766549372220815755077161227674213799742062781057736100336072189528271483527829667240637819377838812401370961218474684562196206017325533569450930430473507161045844907856437581368377287214719401249654780911774777238844385414609580133174814555889516045194664551012050239609632033255733180688113139824916307266993771879832559297822511328401619414873042631417116386670525629537716933597182387188031057780349479194046059580453938869981226788744497916192604815745270905583841719136875324462342038072446244650786079241313950997252877038015766683937847967147348839001672873717736378383600116191147944356230350408623810350809981611994086330766948401266611653798795024519880470187966219335438206034858022126020395425899434498490626981236041455475921359990437864442428302306433776565174134700108135752592232076027223815217815110956643903627581666368146191366743616244549957336967208273737952458817590134143817753648318219761555235809117716004034616270139974568780375516287600988049278203876847522441643508209354957773106788193263397240219498851032168777227188768672560408227796100000808765867103002286495952105316065330980222070583998495720754153101223681216191204031805072596129278650546965163985336831459789230879157462838780021100545377508831954269631854680788623969992391311501697429278071370293287431704470363321113173236126833951194643641725925392445161198078671706845343836170216688892737154537025516833664345122738485057183599183674511413298477728423500268500942233366324304493619204134170725025884447475361372521977079971661840189243633112142132395161324194445037053032023246602360030525747963166241147208775215182667082745644986939812502598110069424154563608038735063018396406803022652718634965480624442860518831225438453581352705064807542574250443465889893875076394095115183928528339067892206574217186012524263251605564409347764453639773875702653983007589580576450983423696513449279553813246891398453144898314276266859567141782378696937301480893620986941781805293025805396028662476567982134431689502252191163663484675143672684321143198085091378039540315769619523594736182388692327491996498982147306735887475230480810133518303164783452433115607828501900448384189929637585038135251733856396285987160987443731798164053304235525103434491762894940181422442496011910623597323804121068255695094954527240243994668130962370578462662418604539641230606587300550229355523257715662601616546124248767935100390427498338856945557304170121631515445655690926473579139853413551572546808406680817506837380730728169846856106401145535542720731853955974477905143813751505899568974299383321585623299984799622177789419234554400031186992676047451525190244802200265405002745953417343643089123833773746047182551519097391957439939567279052881112404717729782690865065070500956610328332989287713158805987473146484750251276132891533535251448445570155403136608000144735771838833490417406204318712632534773987097659887522365147593929260835524642724081832431567504182328516879198475697242217972432474985068715726495900258146049152850445600364349936468618433903199090541941195295059647554695093746166268217114079872674220307431677921391598850209416687452038148755914887651760092897730553090372809779000146483229395851783180727514969825035040084463023496186118182253633359747315290806643085717100993375181644445065437129985514804035227247737250807824330621799151712805396563882753728413015196462482174481197621449332922404000646658080471699497078947535712078274180916537054594050124030643326719994745435310714757142263165828025257707031277175000204620264355516139957047693172742991466242817011010781241701541265086679918150387937891693372961054990518213715116553242148417612355176512256148235609008380034069961685120062126748894830491893619273460058559637895581026552399315592747932536364585429650847098050003026562972746809437659348930081879097658701081113022630703684043186315482749671387740405731391488275966623022566947464394622062813850196997842743749679285708425195145416410729964678793183645322679506518795345100130316155834789735648859513173682485115443147501265766791337120858258005521788703266340572158642132702473997728414510215381620963366533061578791882100014657872628110449753640662651899959556430127659499248494872956000019561812004358457838065429634636196315606164063463153959298663721377722247398304969804238627413549494146864282509286318411935361991433504293903287197428081287149402107482296814801848479652993229070674854276471491744825486447637233032560092603839384671686213470030737280747083524326085004469185199461274342612436391887031142424668482301621957823942531556440627644204691287516863994041456524861516051629730312016239868766104854699325710522364263915991218775916840772377723935044352949324597063340778540630340504604983531119994374192346161239008251010197702856914735047984163789881299768479204451017199191925517875141221169083128477205789157080553133900056803852125123452376595084486017295951930541303118147781987392784375333865917737127281384140889363895233875743063597227988368383156173656911634147474312297029998362766980795359060865424822311210017747940380257680732152948805456760868151378686255996818205553545016500849930301735413388795624234830295062221448286902846392786682875212798083201372170429767397672152838766230007666367872237671162394679158652828741632213627595915520276230184727628839659027553417717166416144687257571436542891623504306987199944556649345145644842181255151428051414665185813907075255843018438965484252545098530345602601652618244609145623771329288173630534325540649795049502460207040273499983018180195732773398027059478959386789010358346713214457996580569371426946257363844188264232898256411349878174663942259728701649692189421318298564225550155547102999687631196968608816139807623514314953939733874880562476400765917785666001690534144892664148489486875770640791566696725336321211474796199137492379466026460490222080214966906462296264659803764698795864573112583427234601321316182183115830539066465683889242668652385516659303339286041855086420490337629954014315849629824978339413649903463530566137913541655576182868575052275757133823798816887767251342079826009881092243663551620727066262960229891764942646768968955914559579103074201316808910141077752245138702942330303572806383321855134522474577863625996844977228516914765257029107420553254171525347351276545821427533621064826913497106662666862021741371252991066112010466434435026802340698786175981528886345273485198418534651103247605823464938560889564910685047936951402374840935271433142027236861915408128687854366703588022690782477724512811857345458139551703883917773630326787646274513052158398014140845879997087567332392315027435106541836097547648729655787793646698229234682767962511210777165422607752747921032403046208304554623508869616906111273112050536171116303657634061739229718270627515656798886738939924652622293315888330337267737318382297412133640905649673211991309124987945503438263385402326982106141449319388933521230495031848075990287279778746530008550283198506266725113852270878558255573788692186053502572571465097544605940447356739544601005246986768584737614141676937240971747751644006110416934511844130950696674453201758654983373418732487397454510059563845864981107594931637714680020196039176824258859082212992452758891718088973413406814818709764718579103576730705561631641645268083037152102851789917213064382982782936835007318256166972127113267512605509957172630215363014208411499283367129099040921192425298915313025641819302889946111786737235759943027298620902584762017677376581755623047896374491578387733720516073502430731135086357230911898843278587974375840150571345960755171389177813572552053047849917491239403606098296219642677440784305695795107227522321393899257027262522844815416518056197013575698043618336458579003584656014471839606815229535550787939573761206708302249130291938879701711358055617446323032723864576716169160361799838640084924262942403523837288642735980937956019008563647258334698646602689003296775847793359173188170083565588759100108619292025324172453622360420005696189806079378281569681087497154440316453095983793610261250207029640676128615227027322556855349191973253458315197975901295114203058260958383578526971397567989429564734779078576383350011510051916759461590172086928905099170056626865853126014016946081224388687441510458038073022028334437100098672644001851867706328861330668541990828489791496266068647464417873793200751853907272116193044407496239006469341033732152682210228631653480487224705890868984475573220568590429946303895928631278686351399404363209322135390874070021544630535872627958709919053100354592389121632762811970696451597785927658638601122571969715911401069054238361729115125847170953491314187785815751403495309414569808141833039683278617172171200396418434454448745607464941369806943037258796370060335605816307022775430355627322310217129499131196068869633268810140708873449237239685754094276963407322650735161019404306224800328635314386105559746729147618694702293642000034668797464501667090441982746255518847524534103218900149543281845291199101915820988277832288896742298801109239525376588782473968829262974536147873249974928193018113134069824277655868177299858628764810308847300660689168330979342384691712205372554300328283641566666609972958710877481508751087089022867744277374979305185298198628383459877499953061201356811288423960307057739474722377849746142229094785439668151674577276162389012184982955891474854320267026256649553395115711424018466361042446997719275974573887838410750533302459844105578244937218381100825784824526605642213247940739888972838003094930941722885029250216783112642927307560929906555299313913837272289428474707971184362673309003746818218915698778699512408267596012457685325406743193257347490189277361598620483509219540109119935544637851293974279115436988522635465735354389807463385833592053269292156695947841852341478619317193029670958838654720276032560710353719226918389439384018413214498736508177985809636944520648843763650499644982396172249611256307518300615925968726303605619379269941359518003684143292905080502438498729343735385442060994922069381845169307974958551213813697252375296559213038416947557407102212841692935826322576685195103015404862983698205113886235811807490922852767567770214379407115182779318894980934607376638725607279494588192118723684177913564596626555859952620817737234776320671801785207192391421505468493056216649946891750331388961524883058393021256855987665945845774134312235037867753873636510759378147161432300186529025966230797106196165281333859764772973570695927780561198410272247992676477741598030996003668994658919749332985069991199449677266851784760644166902654337039468921482922761132746822049215722597013378174623049071624386681937323520806516140313695801141486060513680674472501354917761213292328923195308182359343721853063749236127566198992359073669004100381465658471189393655581462090357816789785355749722028413367378114797786491487041914237366260807917409287277509535253631308923294119764912184919201165600285260482298128299602288870511801632369437411232145295749797017397512660530238300991462105761348562507402995479827681097812728383034233330735140440772449591710381114781910012181642326495414969763195774092853832141692215636099113872696011768935753355532342377993505585399228139142004567200963421990464716660375939244043036047363097092749099900919714628766744323418496484262478928628006232179097705188050801703525078327151049445238427578202582751470284782469909065834042438734947971510448098354836722939985890105826390194101766801608753147211282154346574426105316021151570902529051567183372780437671133250269000293826586484541867235752806343130510366841784804610418958434791901499316518795601783298641170150324087193398777406720990360299808994776103259469322400300805936745866095634100917299703884268587059222223166023103854898654208461214488100099562609286300858535672599535340689233044085212799887628511812312286414804164927586613746354180176636570926473550589440687147536533915074672097080226550367740108322204472846528089256604282146515508645576824221809200844058056409140431391822262408965640240108428626128903572203540295931115770724720047169398054736286287292087654045830876569972419160058069600073453519330855857595685760828588317192234450948434886955883324675783052243648031702501922637043373271309971974852848499608559216085915595690797671569550096935674439688577997185738051256895653853651437369337887630316170684712638201422670069826670622535577257761377962178608598318542154275862594774432795189181704549032958091605345249678320988954172422916957216997141871540062632413930906637500490456950459729682734850085328907770661810159048793149372261737606335864265993869035658795278994934878082222251742384776163081200562654413264616244091686066603017422461810032332417033453812058626578268902601408380354398398583195278548104718534079959705057081038747611043957524309441363869672039820145678231948284670038239974124146516202135187194623518652251526576811014611346998814483078741990607303653742064895709469298929303643294440184361500754504158854035374625154363635196234718303223737076921977116234105666128254430442006979406755862189640371270932582894777215045614814956940786666170914130589708378909631884012923506903792145174975993350042008584125785668115143814904163054489680551183058105194987463239961356011918341543640137377468501721451130563297785445276049522591232520211488810471005048368432389736564813740206210084737409863629536155588901447823653700121771466827492944432402074501876109323019271212977636290395046479824091448676109902745857145112376118932677340720023749575497004430941117527643779890636181181070057743668784116184171189237550422812822831782897077267343697892647090600755899415130535717386131395783978965596568067652281273540348684002333720867668364508267380636152738965557649102784288697082775174275050338339475937773729844189103774899653956691306877254913402799535007947766583188104222471280027499902113335620260010614001901257759382128821731858047191537415985105491245151640509557251402615624365303323112978163401550336842031315562817287599194534385304178270216865154374459903173987476333550153211307125357142721408083957742344250691116393046657064268516573801543903003740671300137173233405504161829986686521360690340751603474394272770345654521072685968773249012814819146572511582887171051941608822208450563057418641525524857082253902130447190488128619502886071854475688727150026563128115290380080845574206006704807973285179866951433796236115419769120971833479549047277815683504453903766186837576653457831112185029005913625474598464242955701172772096592916459633780764186738963154942622291982737584009584832893117643582787708200791512792098790694696150652278237334115883481453875197138252084457923535903110155652141215797069792079479614111326959985007678180219807415025448595568480806655378976533209513219856249895946168234674278493083031286033530704275270773983339041706774017081386470604699599202162710294779022930667138945344287878691763267957870091778011020471788857076567813351881496787607920250186673804445223561141635600636214868300108905042011731074840260991352797163968779595145987774162516765458737918745626919225081944522613360313494129313767930918827599601983106098025654957815174467483950502070808016905886376533045946073279052448515957234611350538993605796535608953898283989666421326809325779617383384430790509052451197774651956311331228592162845368762511012755257568639191960871172844748500026916963075611968579045658841839787183889812838369070530775991400265867881359221375435217896577401581064993671429467699827882863974574565203877565141775610485276427547749231384622436499442093354688860231520926622467283642085518616117868533801992057886059040380537933553610790882840404622428627822958122647097002334903551315394685061772688147284246627087406839346341147522984184697446605194707221220669561318416046707740225470175557611224234199540825729314054224273044481153923715437512193141039414619967886029359012708029841084895556562478590589292248542523287466356709970036997080919833605478174141068111021499919946264709708423822291363704058565335127557487605418703194778746334676527060229802602613396107080258431620360397871195252798227778359696944708967618046301928571136622486442761221970206240835491168760449110480121572062463383683957659819233763362625576939134892818498042359860877463024430060824407194107279336125091568908990902012567459852656985478580494068203863533284437615721720584394283118654233530586977793689094714708345070002063925138558632787078160515511647142311914932414745353441295888450399736928524902170359258557177377099527157345577285156791821345393535619734371199082810573772138582141932111095986201512386616744222727299798028804910172506806110992848775887029532914763205234692516417172206009122271392733976478200610337157820052413867684553743024689053608721113473278795271279313453239123509092331027565821025407951565982497124615446213856371978572042714682986796862037914572522321137481309545797884630982581800410212356146099950399088327646086005295495679889227949657844810843489311627071392949907589584562173759949849021663495914454777761003941035832016786789249763947511735066266821549151241416567822011469664355297561946248995974394579993800338531487160933052070315358758576351384474319635076943572432472570244848813280534892726044901376108403021851103683658793462844124370330777761457738820296754584938204526880742620825454841856562857927288059607437563393454088984459139702500181885745044125954950667770369039548073479691760566534308941822031951342018063789192078149790148160107944357258580421285659356822202626930064349145834726001467029381572968904998985622200356728047036733768712282119241526398904911492919528050587201618928341257721573779110373449425472690771323981318429450332319121685587821046323262229095401400887770603375222593109391190130073946299402953652369663845608837136302870934008137237573487881630024437579100084451918300042874954707304735698864312489887358691374838707807502056211430470673945149181835733279009549346178967474335010425269722537502076853273799252405446477934849083968834159217573987530972345194363987788219908220337464623804460765093903653053645495072529561784629452838756601492593428874583896902474537586489782603933183965746602771441952554912764802221563764680524337827005153089552507122476967407357479901308493599683130180109749893381812319242921580562001617227823758501018367962223527468022462063733511533483694938002054686797601259440314279294252361250181288095005164997091366643807300685745560593685866905283303844304378441667732385336730903668040084830983384944574295030668071320272195480554664685203249141471695942976732194679114592433081344438901545951687895651070872743584054286014267805566571126742639348058100276281189604857541273502136037157675171041592029253468385226343179629763723063523448732124559380359121341284942203611255927967660779996430440709112469718387983105426392442058888602376106411946771427143682978507240464742054168694057756916027273421644262337269143512296554352188115729827828788760002943012815002341848417855464068272772143320394208348366287037747240579783791834560699693969547259528049389334158080553467541324406463617817724245021384123058205819704593196479290274734618386400148281212445863889182173772752974980227552766176591920076749577228858030269840352922841671448949055394274004901902552485666061416331363062367165722185978257437758659361237844562253813352281225382345654776564587650422793429550044172655681210134582462582732660004966828020606089362909471347155282030889531707638519336727025795542675769395915497389984784909420702301166753928020364453629916260165077303582534928292705664726137112311512524396144493340353244858872394309634476005745669066985970848429374349723827723271929491479191275426356622932531834234914481402530771490762791968687417146657798969525061384927177186096368657954499985119068278890649980663620252975340994822573261224235936214425119182037551133717959998375310219594173228658943445511640064225645557826452095665989207230265506436717010189710840648474977758814918925326060733679139030746850520591107094434516423043360848263650812894867123048796681742978918084419026389701901933393121529730517056538738635585232561065939072187750913611684451402165021017503950674566219064981291090287626204991251478434760343006779838926176659452514659798222855574315397962452149664660388807225957195657561690302921072010750171963731435671765173662972463399530411003421474712515468399227515188954909408306177827165151637515104574564425434981359940352970785660497501672539863277370967162056088889818601374023424891997600859734897363359571644072264632300340340161109449370676443974761906371041542909574231100296152810907090121545016833940342241093283320218634828767213987530463935520496307713297166472062289385431680815044245908206920317716903981118434528131294578059091784085163245460892134082181015466462510257446700109708027997286548228847398521122059278670077191949523082648273208492884487960761860786067909757921650121175359369016755819311493692096449091543406304719180285305313319591002578153224631511363291364013624745441149668625007313559129223519624943509475061277102591217899105007105569200063042416351793968414037891287873742720771791692010839644846242089805379932885842934338021166700880079724657013112222532288417111284966461518944428232025429126694516385074663828038976468433751784638780403012204577176195274712109238226969817571545663819209362120583666693708379824554586930641297076217823041919939543773577477109958095940737016935527143129841984073424375793709748863951676942345942430295351230538264522266693035584364133078716145784359856731192210333556218991269328776480063188756459459612418226694293334588742093326704837524425333219060013199987991023978599785856130983096297747538218440304072681567493004807508662387420956635906521386984547501777384502670688650005310301694527936035549047002573118161369300831037627051160691848215095525358391313807295515704973715654788293787975947680041096112330296108824089356183089242558845049116055551992385673599270010778191136601783107804532016545556572214989758721415460916394553428692094233340579199558057335280637184556531402030276703332240548778378662702617441141722148986605413813322528145344930112013275907723891324546862107719353125237359789035810091287818722474437366714174731012127020989533079921737165882664611811763329429970878687079624854264378482630075718516559797671842516823113948478454813838449981920012952618251266344853148290801572457583064406243718904544464733626950888875813792159735291210586987794790279617636447084968572665359084560795182880395551254821069764326442493446088124648017862595763753878869637113956930349538569850460010234607366594241553889998603830617150597211432687462648642414981710230875742771725975221881136501292349063011156456946973072357174249665526025832725694349231004314600625612389547786723037680165274607618251704666170906529024281020727564742375830705976983638134984176313954373753294516948202269033403637821297847783466619546081232227594770231401350828265522841455032293854883592500489600722841719517293320338941560214375851495987982964382746433781785638900418197155557202929505416047379658792265126185192106418625835720851212363272026834818624317494466078658950118085489601468322280315942617438902471415113649573904308361882194716363747335293164359558006203850773024550475360245417478366384866655650537365104618528013396444485936938329153381048495274919055217774962927492842773162788975640012324291120236855964685427983222229309501255472462408907702943296691687034270230034466390657359731994695116277761810128617644607624504190424221039047590044522967224967134838987162433142143150636825181099933030544797244343451121854662929131508874223338228034806486673025155885509185625146611278036172313838923518116193664864489338445284707958002363046474344560480486168236087672224763817388773993727903452094286579340824363365964178780056513668343676097090042670988455738055480799570228655936647523409331288535728221472432476287483576858998807174554506519522062074447109077505376041184394016544203594241033528545877786631465755185522915102665173090237207019405752356943687759334419064172307201217687841015718073186638973755304826831087881353595951523959477974937496994293920649273303272516465705629044718489285580914155663680208508851238597309975001730579587292833873428857367740346447659288097588092519440210691647141381559162624760638669457043497784280825231173180295566289977542581157329814258612341696817972663271401046664534648910518316813495994008804973081633245692979546247220681752781214541155230852582806693529073686848075884300585334300574803849473812412290687787908516577067522155104723648048522068852136743000626896082160548810950314356995104743033214687758073970004711196342448637754296488908713942870861609529109943808184307162947844738578788501209508058321707601882828841207217957587646462349043731706245089042106444204501078979079365912351318546725940267035347683368688827450311371636539504918322967195462295732087578054642629630115932267517063614432232276666751185184527960815383146791366762890055482896867524361288343062098660065669593597493606223378656531179857270965969166853490319420877329276557764372296391785535882490513983841366320087218430922571597842089668560671165173842336997340328115169252799438130473855232704185786781918753129107084356052512944666198759703835052531990388367219581179545023597727404903810248579752371783533663219045042175211271093965596244612165257238751220908023348039327398578858652761578931170428915004637984385845335286568737170327590415204994045993988948335955173527214069199861104582067111939114126059861200129776427566501251946759126604406879943700206141642875964062268766715807260619725199821819743032667745537870128772968532270598964044873015949139450586948399925463266327054952791803245311910028714998319979934648730981846470146007500985448177624948524267814842844177042424118664508445154569961474090826837418033232089151232057378529508561373779244743339440226668021529367740352680154046300140912449525331816111409815887442498370686455931587280723277869209828309907740204343481126459506140013155597874117529886564655485615872986635927485305554404776608959756714554950436847299429495694818564904551682954747772060042638758406623031871414156210383398112803113050121347200385060536550230207948991788101970707597450393673205022838504720356156394046739262204071873088773382488604249754763309964382196921836144447331006174494454551968475339746098662225206507243797564392472198229089509146459199749131596117260287755481835759665173041132717343496015483992075862558465388731851989534950237872293803200762379460195058699316932936025345480468095016138374213162894218051088060816713387908510030212553059133176291524990857182250191317220231368207759370488310148589403122923591795235497452006619560397796200333758475552001775919520350250016908883603278465804693118543156131244228280972066189918467386591261205830693021960590032919199593262281733126890972481381742045337058441011383490772454061067069933561974755343760298028694866270218398719319115822652309336710849732430588285244514249746576149687869125347124395361526504470807806064350104675505373059304057636147666299034534021187119104721943464001336562504546895036292887200145589012391379847347972930675955736424463133945063222459556693240975279448486120712020284662571940471019183353631799672305015891567106568825417211746612542468375135267900171897696224850166345586704568116013361427760431913305632075243101722463062342112473505727057552088664007397258253007713351945906012419170753132109741365973454233493389929583934765298898030483593743024692320226250805693267281510678577624606255818365646778097243999919974706658804975318647701564448637969910172392316179428028400932255156837491859964032141516908759826999556049804078452617320896951426006933995403072881734857670042810192448447625908521300317458477748504107941984383712895945075865553658055762896527464335633086981435651414048629900460551666770354699854107064174211285499462112736566430288241740617862177482779092281312619986702415415073476831954781112103179964306691722423787581967410633809776800226903747792990797285617555720024520196406046827097649430142393455534671310412379989482471360267611276926032939740309840684199898787412689364529703660767276959260599253586964760157449333120729789749510600893956234297581362764469141802482734944534448603114224477881170557183820404471864235389303515674687722765713673952449023749943860244954638083431384735444245058245633918001097528988873572354718316422243073368135101821954464661447908016440704030891732046414933288037028224561734204343912811169822860198688942930701882505379620680932168408915870559939397461038135236896639775105425895404846572119652419313045242501178039288065146870179186956835231053586760465702673992640994620512032633965247526964692728826719757751312599440661463201148708885926533650809912831660044657817240576175798306155810556996005934752055452158565806553389439695704140034473539316183419960790860648920166073396304315704612176682215561724229375519840073614295291546424013625297588319280519841079988372253656860749718731798941710644066476120279089937941266838083788008886734868197375217874849414567154783184588034505920580887520859004073973953524900884059091869160672184254249034596895312570151000401132197283675636568466616545813892549781054199098451641079236197898851902871114702932191738950395387054805282984153320736872423171325722007953660757975859458276895005089335122473297111460350890114432758303502377725605539543530336775672527023321427133791782784835551252018095265640281360102719351645087107581012715785963702133912346805950053858346910437239964059154850047628325592525358434913676330060144671612558554684733551060229022887719153524032740941005171597057953312033659867875421189712101105216195354305949638760020354518103186936497218068453874990623168822599159651607067991611170856366047936446426144363608185551927927006408843914673450492894230453414769606294733670378624626386669609430266084520454492143777365134902389172325835643074034172188166370516395773278561872059087510450298796394645341398216790212216935223357891576242906367559693367314832152386043787438532481061379501565911692187339547073369871054101231094981734667398373709404532674329540720377280586200124111868628186153283673279726552679075589877875519543337793726634404846895478067791614536708867490214590395293180773556723781443369565399295700366551629655042495140698454936759466556034201504022868639934997027451464476439203242889990082781366358131083427350228417028893412726438150407364620944250991832653198481435236375272044146797576798303558337409913105874089857419387391582268752914836424510185482672793776048311754956120306765384787018567156056601948637581125380380161477677490764548601149785205560385772461071547452574785332435793727604699455889482428472516392201135911197453984969336213069718821579656113589985569101814282768325369497552446374222318962646698623962494075355739037078367659125418630865643468693295010439169779764412547939666969942363555858870812816270347604065653794647532869475645148144740337512711585289924973500057378974706580555513599798319271513867466701373412127341348026722166903973306542170399111433231255028015181150493918046601698763243517476965402686740422845782716210343093440073213182772937549016827964621821902983539688035551514965941464929954263609564225841341806905125804993017177071882337145654141163303009122745967443334444009121472682418863316787930185239023629946750978305144528046967474927506382149697880776285472596677227844893164390406132745318645719484610794617122573492950264536894557489300572969259742963941946492491813674995674215130191122982665639399662237030705708278254066933519311717143482984627724360881810834175774447984370138336290555602534040211767291439675532851453769434659381825735331898598606123272530283726956051788196498691887448233080170567708540097885671566192772238905587059054972840096371238772911774900635762098077851191052107681512503073598879806039560591871389408403811017225556213566250927559383240979550335679832403227266594167350361372450313702911038957202634453313190287666978471199642448758280717524755293628469165086838206645591889395519301255123395276868025285534855748430614725301999511248056127397356667288106680255714660881643101152150230096382616214542920448422658536919346782389364841084455553039714358348856541029681500438469833626126618138724261112368316294210057231185846064115231527465293750592970901076827034960008039526648672440683681404029395394700825315211886604006795945634737409145129270146536166334872498310694850851215034889700182579583451152146534604290028140752589614327808429961850411054096561648890938641657555338904955732709383654007425050988478071412076557087507186674311817118491552592715909590407121127160787409784790788190631652813745949952457190517116427193547238460676003672433229366057207685439780555061277875728969317419932725411948210712190237904114614433455000892147130989356937197693840317069021368716855447495181956078960161004784391240775115796721467575064948149778903805163595563323577919969968788404312589392689353625040360839593866964711191175804890314573641214706869783027695821324958427789973061543771140446164468256665683540398560627473157733104006562297589251150198853482305146899013698917796404220460997693501252983272230619025202343383426926363255442435512310935991074630033001203697836386806869738664178974394964225683561335453040494200865205094639826225522485319489384688533770537359558276549622128205841162619105953971170934774189110988708897352807647897833701074462266919816546170475862131409266073785552732645941132747403052642282442830457393606820408174461459999367605253862907037556202116059807968170709893662459281239168124318458903013511393089585425130565703529015606677867931864639212078709285437443289957688989562528051404593675422017845097464942190751461880144404043142442954139883424845802055186863981524395471301769497260809595852094414182617579922517597387756675221381758417958841179446535739046817209224914008588380428159268447972255311256136611252324969672054014219233534600439888588912144455344308007360152038473073206360726304057241314450211087071037204907426516203676739536478265688494882155048440480834911300966006091305021604254383191034090344818777574123331991158436140285853344783962692856547317467269449912598878487881260685154263087102603143723685101340152315329277917920970040377418590504116540245219913883406877386597711941338538954943805196148343984382930569038862652638443776305633510686173340118651656083405071301878858010843437334445171178273470815978875993445034565617346107641151785970169718321981603528983347388505879344729248572518687527097946924441684517615307213412053097286934636371065004392852188923095807696341532709339282688172578143549547128920314578368372540006524897638469541605185887177590735548467096246261418886378479326137965934566263125663754048319644095664560736383781248727329865916777307601516158376038879674835869496220871367957779667313954591830911069318376599738074503336168914724742044172832182371802077041292437793767235349700845748680961725075596936172658937822720114854667787528387931706520797898791932519619534032328810502343581047820226808504179482557615734610249583147599728574629809472139436164167287673453188868208866204953975231338695574287105794925408106571899575878489667532903356723937958097742900909432145994390860222139907656396065131726150906538419911522378164275797398418437868554021197203319240602235352524587264523572539428983668445272997542394801607359552985424467547201348212656063679364873353172063124856333359982504625763726814215653930580485521402658835997554962058974097026842551246376375557497719965446493080618622665675470396246347105029739901527617092644951767929160667370242088189900231945078059189145200709176065491655116035114870246084582546912367621792999059327717243243418619553256292967964475861925569233550149552662702687901188931313307884479760648327412738783348381960836935822661873582901765907538427787691496761589975335665656313099527909445663645148450949307018082664514005235372458153200721287492605652412127973095915983884026637368833406013007409324366457251724324646097084503255378749843327344747334464854339462219439482552645434651478256268463873028710666167921940016474031950865523547048360689056312935250786382270406545150279137017749104763816243791673556312438210958250125556625025486578493214058798306707253121121438920471024077566970879675002596440471817113289876265938252979405707815174746796246603069563057293814457408987711067097555570852159710665103543559180032000747997756673184664051697462264388700202317748245714578968117516060105268298886891446853288867679091132080162630334394624825382269743238047957677919190802504192685076683700571659257182902615477152656049022789567058231334781018439683485832669564638887697724041627260076394555321013832124623190320385021368051299187623178819004935547205969415332665212048456231841159250771619482751643782825775389313474662379591969978415362703800345746246781252086057440891832537663454482344410067626907134198781088796957400657482511409978883871324005879265551802058005101725289508430264060741356060106509477500553709602324120500465505314000237955136181702483580305877009598085256907523132524885575344782686851110530620705400347621696599719551408440906765820979135266605037951266564898622355768853138813058246954562545694577259904269929777116393355178066479367539556616608669608482835814867454804920857098926800803250123732325142947201761374570284849891534762401471978946679433614834230429800729301178102140906896172210600391491848555872535712160001655533051637492191440793792642006910086292849209671001229089529462140240849486368317059306768698124855094996828388707124324302561010313854266699523318571674571507995523074068969177261498573572995821630558204964059400745211824148977789396930519635565491988248941111814202203571022163230254196476650557070907567678346653447239507791243773935088329313677968171260705386185440627274867755967581521736048314374899589601088732648205701388718131888607912877341335752222905125835357912994813633499222309059076745130064049475999387192199015452913011986800665487908816032075811162172919858567512649248813924784789732743036521340401176823488381541250875421273243976320668372353075773634739290205101206673611009711460539566645438899681451766650909726680984959689694105322302365174515547078997568274774762145090986530800912993661288595185128103218606000912911631102646848432642985940407356113071995388047558482988459180623520690116586782950561737605658593254605803108729469608552702785539941927188775247993626365254130399532464483090384192518842262093040395437912727528715578196820051020186522608066691360823801266664094575653266167075199069995783409858585185881485773049506674810534134887572789559846768870919651880856978365255995043900144823937326806266823192403847678581722481509119219751499982124743000400724569691504541745340974237576202715985722442184064224257266312834037955941849429077270915833296853831662125450025512060277710122500760470441937279045264579105326988163841879840553675116119774593543332824222847150053305607996958842628219141396587977554986454494656345385421436732389877563573095416875268499669498707138956722643622242727245666987630366040324464794274299261789914973024084856238829992279371057897318357642277097706046564188631499473703489706611289727114019014768148238684196012282929908673976463485652164887874124821392367753401106716888632581395982275624657009565541635374199424771181148642209503481353415680765298766076781888573355403492339916085828163484297599118540760305772211454036712847262297575026405514746780951696423603131558078065451021602651936239371587701653077130963266927130098526465361282035273212681353062259530885910480399984016501001455316947812132352507921425796992682218846669809447886685587208578535923386721168776082263216021559566902784240448588991068687294819107238804022682690775061940729595032363691017736620831542675036408034899642545853569952414110420954621032774198609328515566318164515261366442808851363323677341050912197362821825605758885786147646330490045964790158391385796248440667320741520590980145682806707852517290103032718063993412275891329907848699524912544991964788136074944123151920206622139971131958093795355548124558305860352041694250628618905106676714517634594700786776184403179521994283940768083289493062709441506986957942631409966838505363430154842812769556406082590030073181046048701416422689348836643155279975038321332521082241717878472081754798781748110347103930909346597864216708281707009481069464235391551633817715016153781339856948522063929848462186306314050623643955902524675475056147985562209104528180399163657371879665813841135817518951173551926858153418603790175669671715103505834823410359103410022010139914945696389801791401851207131775606425604961909476022486264970542568167834574034452978698321237515974018593862729298163141885681774056350715198876040035610988435138966017704137471494185644963451285440806569095403128827955022777404252221023383708997152163461980412941314945205635553952292715415773420142803855932229643639499257287446462894011658623003258565073717720020932208597018568652266250097718026693768063992391008302067372093199227883660856174393206481870783553220251916818647794760165696511612226182618171163420358457061152980384693068551486051816957848490681045944245828240253636758608775995296453751643356746559171989781879149015240596171324831841900329679201254824973445494423527625709993742707472550813186364781138081089913431996582392786444538673131571166232127749006821267293081260027984591301732136988555737581398700299289574365268309578972105676480623807526175046224774964273470699627869046859992542431378686171042794547268054246019679944547893336165031063820216645791242911118127941111631837020550754273592254258727821032069262688706551497572757186097566223850781571998804519659016644903576029385903882976715325678569767429640207435649199857779693778596692819283425933814537641995413364937101006003796076741788944341106289428887749370468975443759261055196816544487180914624902658278611478303447844141334570743649675202678778874736224687424325463597568500456367113050327969009656026428585053394182239617971402944488226320326826080703435770407042448462671758903837898742987767276588817372649137225471139405152268386841902736407060970238353800411482500007378840160009772503733366275370743793750344173059555336378007169969147605651024965859916698683959970899558494133846693289666019890636317080273649586670132886303146888542104628686206814623199910562529707430005909861107562889582044268180437578995322790172846958015302692157992732308196153359792292881769881262255441290450618028838737792492398293904439369236034414215517565825104515632554309436240320399215074918392298036406180530094483900987627110105180416504191321407971579875502968219262210215131234093040934613873415777714486685754951075528022540022175082325940775920504937605120939679466252414924943845906992343579081286489878718243567083750181645330223734146318008129341360599191060417324439815052937620221461500953029152371361030832003084589805365585034683012774383718708429474215671827062051265738750745327595598085284804947480235501936069580481078533864538622805564011568635195777737368592413453473527036483640991256706131828532513263260280851318416095495649148216483338581143969582178599172186701261402534509866486174026490060959331259171446240404482978839109146229637073596797398433192828502689292456326863493623382046888101766150290411090209566373869953858165999322633675087229450359753718969511354538758022363744688909844548273276315352072825887886229183876010716777191459864574281223612073377308078451776034333790590852105388801383335834138319741812584491063225629020608696947031925843605972472633237546765092352253382177402011022480501769390937447318452146672744070500395969259234732509989975178427617598030706130766314248191258272755869272879277900035333459737686548769892088093831026665716317223454224783995548271420543292949032831943527446505073532458216603531041629568592387173925501317152153035955665726918176258692758290750717281677928684923618542794606119574429452818823863902592663392359105313546655846449968323453515045220479426737693484116455612501518515187672081521642683957135862099115759838148175470891184310598639328850727191817220039936845239271920182308206957243497225054664850806598812729728194664893427083239940319648327413056505046113395121903823563106881770228616544444545111061326044094920474701467935000611066541583795750308716054042305981370666238031168983442484311705893363193989410818217493251608154037539922050506064721788945518813893516023488799191899649027788148816367380591936755270530738193382973293593411256644859697587052531381302992112964819825464680409264254800492881734365484511003312045346166795037341558775243084893634273247874841443915013124698392281657238822163818734979894568903301708916024919910650241918246106266791914978724636212404585262348887713282134323672059563790123654354191909027641631143379747620856706178669398034348346826662340730088904812655487596579627547239538879302513199942409087147405647635890796030846629169586247910524938378409386777463556463804303733888194417292480735537542780099988772189800838925011239919109702789828547034122916107636942090137232736224772856580534436438787484024887157038975317780544482591062305578523738043909501055588272287810689189093943212551684382077984418761314861955345084753868671967027345922371747714035434787044543793190963784787930580015970589796517252614241794181547190049156266761037565071300961564428964924706393708812167734512872313112752825284856146806945931719889367383964320249738196507936534048763483259987472684188139343215707703706093471430042162150601909712721207065988569208756404283546322599749617717207523069863738936270025938329349149822334052166982373373611189334638957917894487072400293939437738660972398193973640958005069212251163464662210121294608111837445390940016501047750698799647341638813372136647679362499534708869104167903030116304500119794671169589287234783081634115609375544160611687495420469852887193471232166235533331395863314175797991472541381458254367308749722757249227862592838849582488937196856198691491756451054936686132738093524882193489251322697865970900071033976362257740289819656214729729654226078715349404999132725543325843419257504935695326723710902288215104952396158332869997617895597634630566461994734604468176231653945554425481695843877589260231318239138287645376451765541758440172481407123556450173485160292029637061889193939860385936503281148739732259848557761993306871913273254954844388645964063221957472103852024790322142860646531293289332217345291606638109001215380059541556546593485731241689984607808644912434728751414376459878508213366213846194279407853929404852538888957344581894339377511592472164891135031583288961716194624416104813229662766383411790437520004859139144770178119517083742544875048967556605097763296530606102971807257538540692424131603857301632843168574306436772260866428310857529783731091741008295540941458986096777286721352704082156278347605365778666104415158101894723133505113863667914001148917032004578329032822777827863046784984485153450407414305687418561308660403782664610912134306504729997026434490018779874739033520320509817887732221861210646744966883298858541773066299184577495588063088174827645471021743584377160971311470225901284754913643751166279742257955855231568398610978792356945060848009829211725569225942028597039407105237123338194579469730270250207516917785439645279460036906829035051160605012130440870477904629923750425663230149429119985399359103300443710141015449148437125744603763560358141602519655621453821289746655195600922556448717436818684729591834472227363864923091744898201636213753960040210131164012104365393984245883527799566595314141701716435851940466285764183487337937032689239853420266101145222979553047285166466903052201281429795796569552860856151947973736152832186753160828768634499901940762884478170620011580934625021112599002685398234802595428988274371996339097470576291895213551880968434031853464553749080333369023377560484520894396661678751277727585444849519465347275649894389400339355601377662964662665430960586441925292354580385521378406854958643283481518764194508396793777674048194354251501058876066287061788792867523547902990385497433794565640472643460824928607683876454449620894792653682735520115661155120742876122188337711268004039746243942045640417214351357751964640548761075299901747556040096678171461975611673836540819266070310897421923037541478292888476635502628798947390880506258141756362992230379867243237815628644535672658943267942235433136847835361239710404436528335062969885689345720375044106267644003774122713850390668204975952616173025602640222675957802551171914246321917071817308307306374684091054263276430830388483795420911816535450606471103850811929448375894067328908103861057137470948135996469535247941292528065082212601133757328446944939381787434051886747842023020427129702785374001374799701099317420470333692822117180722854764506294819411058961531237849575998298523786167118947023540681761079660033577824119074710799973570494304216954279134298455985470609924200836403145557748095391758033274927798507147828160043963353665982677492879625642829934402028237591145119200183196251429816793108537198536006380640746263825114197257634162894993250507185610154764510953534700367570813535131383128406999515399569028766932756291822116243814330071673633822949542588772045507725005652899264961582814601497758184058664785033515599231049047454023284466253688358756080860470778787029495599229902588878096835496038177985910726975872862144806545178844888997009419535833932253453729276678932505892232886192059979354022648862326209279993411465016961025563233856921200565549592807152734150229728625883717569565926750513120179631808193801176221532608400193229811222787572409896692484638861967680264721111940861089551324667314449604324213136010009314297977372318322118939512104986788073975207056678873852178328161670164297276832587159817856953332072459112133412370997498153647566224070804746069498006967385152328781583630799872891475801318128462365400326134819633800690422562538807599785271368823637117839204530024925793491529969411802105284607355382616723400316813284124026219544284187731190067078572216635228451969080735005128086580871618698895629419493553737453893149709154094731542388082803713613277668199723809128343788186086233865423435172683903631549937739664848003542638885985076750297471136817059360210775192466364452638196477178738290332082091832970854191537543947727885664004944229731664550407176540062127588970706308169128146340084588376326321407321630829104597544928048586068383449913733440295629686674341767398776452058952350611852216930515701791684934156582019120737366484163752353404335817120371077778602464129470067031926923632226231615874898164939792599206867330323626472504397390078699701642122380964719632821221835644900516287645443365936782184278781843467899842117464239446521950510634004429688436056080943322407283018794254945609884279698327041729840542941028455982593774475616650885889784964986092038078271561702950686296924292141917328674634195646355365262639795841672039755856077708124907036539636034251692722478825570992741731721702717891466288039388988938364255435452508527982222030634433777787248628923677751104668785906196678544975779132008041199369452027940718537051716839466883848968649416573015880987690715390137294188263252224812119685871835417260264505478001668077578219055089931489968312256856292300374452159950369360378282884697465690115353797758178020086658862296200802773042275680270004991743987042611367635461694697975814629565312871314418973723823827684454595478501458082878374048165305293004972611354667882651323138765895819529255162414607116097634414729269266962770921705453606121006394828742380212951452534215280993719954677202514344132058307592571559882719436265261155031316637512920786596614847271376273729996210482105964979370527612374067950195748707602962716423537897151948060917863260158994655603957985374189696987917171216802259809295104063494907053162058421659200033852204270057416469243477892281946852458908340967668944611143380093554291506493638779639077856595142531355673388636646355707943644283230020679297274219809167769628121925982246003492908988931829915712550074458298688528710599194341478280959940365600241779369532207868021039669722374536012762855275225832673543603574678403786094908188411880852442819479435724386951711041245595737918267237840080013598508891157943570520734400444209421009333192308808109754674089140667855918803491903714119364770392056325039262084855454482866106243505506712092603343092884668560544525566119517385452004202710295647516071940691052368575031531651335322553881936982462396632654131170673247470795734929192924061287536056357661015988133514065359180465364135564356141214997707134759839011368916030189338474587692469172998582390221589646727410066882570529068207674873918204603185163730868937982136956929932206680805125863712874598517007036565606569697432502850574852160716728908478990046798347295338127992634249673129608762917345995050214838696415376701351959227565008334098630317493334123574346345358739485739488896054425608917541749600570114878619708896582872883393179380717658322749547095113876971287685068775218459892020832261565812869532736827376081500616674866214131687600898463823755499005933299833008735649718058620115485857732576765044442640937946217251152995208864867095540203745551922952026647813102984978356054800574671403460357836584063325489313515836335862884361582892271967291904669765509981409858969261385260713449037616705470598453573368369922110354761032203634708235543725839470758277307674469130967198449181415479048107028869046765255994976741824696605042766577797223071447722211763275515840100773911550032770032373816407821564276270932857990410658086245732897612740995656551442219440699891381506317119466034840057364737275626636753627898541744836077307168530955142689700719706994244053064470170272550802537075520784327581562269085054889363984101556454457460610221818410568419137417754311914741591799315427311045126583825878698597264013030767362587213497809084718713616485007240510403954114389352839912589547848095978149454133402402727346904726635960438720823588565663794249550399214854586302125138810516892160729869793130387023066022952060768933373239097103276231078695269389708794909936304064472316520669480575278486265159309070346105869888347249311444846782956266131424010842549678180731578339345692065105321409486842000918290182445023471916038721139220616849589927375995302475135602768656511145175106608677857704689047154066982163744490975863080819934602379507873516262773144696167343546250384653268301736124625272807938006563755709687669328300243030956075014839321175012262125832262968808918946434592981260275856868562703398348005026312454193259051368950263846121101556973998345369537242696372838917649691172259418033490030677022944547414226588314210576949644859750961994539853705844835513193153280598047473423311503670985775245840541282303880878212660846848213097135555046668075265006580190544305033788872629172842183785361998887765351506037590776308578467956964419686607368676773467547471143756156309956071640977888009452627372863102704668824489526500420835045197010590956265597281921989543669127856401384733775550954771081318692840228756768268076939060845896247094152350653713899095217965275820539921395624962015242372113974641258091376116544417859051672232700295520979376736864809439281518927468129981216062424171531567068627417801261599973585584363202198643492997925876552601823221646520424971641318698367764821127378698801299199531552272663115734548894952281768064467473649531276730558232201568480313619567782211145537633106488499412024085134410929167113592967739299031238448018345683126710038757594609085498022037156192682091135103916251415556264860963814180830979598913703777604057273495234300782323031666638725803658567941676078811875538696656303331692433201516930374683927350153594343908544381873383697463850398033855381911388472994863490520751890667421206642124151082235991512526168868390206477173614049334976200615339236039919106708066787683819855476185321120498430958922068187295271251276699786775927253108004800741806372995438966626467713971229085124713527790575118530292425909865716524445983136678224418135761441270071884439658513760841679798470440769625970768408157293659762738435751261257887408198889284068736252948589632668099278588251327124068736989041014169344453728116593441469708002175738092202762676463545779543629928576353081505197107745817030335553611983693496960750583502869187043420752560773243796407129687477974271744996329294913155417437224540495784782529682221641092692849674066747819521458748130826034389468032954031402619193109489364074163620044019793681477877133498004018794071845208473846316717415842809158400021840144478641078011863173102636125299999368065838357382350307078266548207485208885886090873958188221131527203219604187847564905618995291713758780423807547951117348468738521772081866476062640152178843984826409254970849729643093160341897771090297561703550927953010638451781046174095814905400229009934533062164565710556027944013758414280552897587276733165950969988364346735398513262815575270546639113613791189039979633613428013150790358927168193862635610769654546215140366927328275212371085506980613046940772730628869177410236593420165842835623529447649930267014814130182682739419152227109703493128716064387707079911111502531403210598982978043159681664767810607763357933229092405548824422123894389959329617000564630161442827867585792822032184215193965702957925474763076646881512644109672834478450873094136874704674006517518008413518066397599442720280582936911503922635295898460249696520406245285908021164070626798269341390591806916896978183915392448484207958426998213958199258081484333533075442105717261018721020747408908112342896516416033642317260247106690985791601746364471377565088146325867153873346960999419756367889311405872815853664124583991216284213444404204929681781935765569184831022230980519619654701312873964677793418984542170411142825633025732781590117980357219176091928439157437818018745798132101640548423089630820523345846435496259079338057014581892127064473120279487319221332470003703613777184015798623210422164467857875806154951716192620285797678559987356312173417389448243736733901852282285899425010103918213578281616357491198614808752199054954391335991250180516794388190255558119321779963255137900442243151845590356374031819332588439704216413717456475651809123463531391242067970859864557930574892881854660043777526451772384832659312812885349077252213202960140245462170272037260482323746445208285833718214393185062829880884136071842752929991979642919791677750921055693888099915075419351060157853250758184453501765742209661223748646838526606346435746633948516320658937227677136504780952665212981948563311977432240375834831781751317487377158795949767454384991009350510165535256876726991979156309061106927391455331843150300966091228245904815738311160938666786301868134107576428847974029041463224705967459427453882374156490389839811871624906078414114726286962546071294990222515543188888722551167369121902604674373910028195556874130347714962992003110898908756801843327424789066749869045904726324938986963083067606365949636803352492884657239651198426150699326963831430680153098795032521072632112226106881092068526366074430645275680516000169047015792087472704164387787310534273658250817641552155695911865588995689670560875162788307444859624247077342118967070516381736088474200284735345470402919593625298743726195397338669034600399199014446043126375923682006201203272345495219211514776122932983895034591003725102729589629676360362591313438528130358194391490016402502797742889125770797916558870238822006894025790831505595206037174495057896872345889130342711870333969595758123935070047551187662457770084141739893194300047240564136897285267391185527023498729275869019244562807638113964805130443910702565283895274515591102144551389588196832473608137792850056925722914817888825106168402171598470868321650378363916910056901801555836495863059637159562956849449608599037196921361916849153934026972528812031944021498810201818947594695399580314996440858204683114014696063645436395687694211536585457206300780691558428441018385391353547409489715340560088200459243625881517668077556849529700005174252323619794552081216770169974923034149576269002963447918883416753772197067277068228100168427116096374947498925662432971466236155979730337606795598820723622493143926282743285039192205818040057400025058679557783268720692432856623918166061375755483685319941043624477750280458387498599508966510245568446235602912525281584322657119856270937984547133364708731286426951202841043040983968863866259941000876249685471068328771816895274113266474663921061826733280102975700802335630598598518138700755368665256543607388570381952762284382451839008681306852117388312035402178851304238356778881693626485653504219668993049495628547929705924132081292749474244958594184900300482550364177264302856980801038620779316575332805009020190729978850404278500035052747518709340008317369640542677072490211130672864056834203841005397600957715751685395934556952391924739662024246245405612045670449538547929306498631019271590897767876177985639704055397099050693163967955361848238430120442762744517936031116726055750535881917262988511985801225409955560874503520776459873745900327502946422000504009244081969682837366381533658652810420155338365427358023736163566106370919066192673164426601909968360574094391549753120505745709550913185520384073859497590806755679018261027076535445769333898676144049508991087694986155931341868741889624250695481058671152563871489171345108720568043640515621834033942489555907450638121596309860526278347505506560852810936512506149475935285789514983634223633441907049723456625051028115057237443287430964143475538842600245327211011856557969586349072029489572345335829688598840189866120738295725595150771854860170460599387036311510254501703005009571880764950453856355745923596056786161258582239848433183867712896420475813809439817146863559487636706288928607934549082187234183679415586430259301511870431031214249006700091145503672824507149040487411775577986442164683641692539925576363130726002859102838205593582111099953743831920559990558571234520432855673661847803303680076588547868396430156601556403060115287071993423614588706952771475936858798305207050517209537771879471729594319650592504010187867235739837598369336355810199129741214758199189633848312311684549163812432833379221577276011236869006831898142875235810767707012631702344684238386086513536581376650025249445598682700085097547308741137504846582127604628027768849316644656118287241757167708218602167480190517037978067184913608808179886727776635911225498860857994496556973703476871734585372909760006247720103503247677598636891904328762029613229308931426361935978062199142805984050557718431627666641669626885856940905254556209211019635334741250325268460230930614835359833894746291874498808449628734241376105099850788172599427189741479692680155444114485993602657290044075549987839494028441366770188591212513723386956465234250542361538147222972014617412041262539023175557582413654073509109600132659451068639714343585779007461500136591245148954459191701619142326971069779514002031694482728083174464833050044637618411597744973999441592939679911672312764891087050257600932228734150526857724703547171922769375974115710443908474324093883661780766008357781829920255915280329941740250801619154773970492256260299750955970801644784327184276130094954943104927909302664400248445895324407173233034461427882285174204690757572208960744031376225150303745095069208116461655244556073182435583895464393138226136858164000333097774111934008866761909636944258119235700653554003491675307064103009631537969471061365162967925143929366043934534255216912932379074945003612710847308283469103977157364285924062478258842848952432356922744019918812390940504190039736156663627755995647687745958958416393650506246674482483548032682336772267846672067309942115494127021762643224989204833961822994443723797460303643851810965093682973055566447277704943540090025472260665312720483685707137693642808791782108417180263850500323604253568884770089907067975745147404624957174364549831604760685532042396005890761331465030161246254032016426632628009032455008893823609291277210798602638987433375785664867380942215752289940486725690003002992658921093128166973012975140637073458637394503767488076632042769661605674760276966964822052719619213902911724786164126606214885223555085252714508520440088570101135711605288328520717501532764638887623812871142396747304123039406990800465629301875481494206954961578394621553037270488696017343904819129222153240015401598518740478406702892758681829450521648345083152987871828042318592621944631278374872916432557533045684635702561845191949681733326607254477224752100336323103263732739017794831774163751722416405972940408622371420589634519680651316543647644269044621942725306111450803592935362398570287507855172172177790238083112784110213261519122225284006323923275218097970761604466667911390861030552799660429360887935958403015133007014589957463025157513335756212177945633372409886404010782219925711764262152648964649897622049597121197979367680003600161602180080828978653229987581072610397585481671219591915520900134172167935611456817565407879862699842677753720629308285506075478153168826166879127549152699561952226088736247147355903327204553848987817482983275591176295374185998625775821400576728124462858422034263835539564592619602772611434946276886043519176553707186782274921716794811791131300698594906700823858819488766146473307512116740474969159667692636198909383924198005776058745016046457703304536778745918774434868509086322562497398230744379585283246919086183823914436678657435637853260080529222962092412321936318152349122304905795239424832250805180419655026671665672139628822817503598182542996151287249580811890023695921246095088342474024571027368268736913282040692551411629177699204065450352754330582274222392485143842633690509458560672513136800901430740410686139173485222145793499582446641326050134178218351841622029946688855484205904311133908757484203056685916829144819011823212996416507685401362379523102588286408193806955201675318399958318532180755365559625946974420905357450182873151306526257808160279531701827729245259747287451712274487320970608531716491399739767023240380929184929047533168375744839222899043414587740471035697906039826097437201333398135426824637508270547122131643383713334043552234250635873883826881336453888544761176557039007556834809585376357382594690873799519663993726501218571900351086587844550724469353235813556137968735000680577489213414265612953729341138603853027528644262963908692886108617020461297939658989612113007964123387786721724987850069800791888908405719827889670466269963169275105562021409225169182503018433547491749231455091296609443907755640664782029801375834712756918657243012016517072927758715511175054414500236743688335181023931037994514604673161192342468648121808303027216280991305395226599354941823213187543786097389592789072166157496126609014918438681945577589012869625370841167461304048038128904875568379676101241561268247632469393670720230375011842250113644704341111918968178624149598972465300610355176403834863885411738807122278751953202120174340060485798332915003736813462537336591890787934807808437966743594164600143311657210641872414815283275763423224711305783331316058804392906822329787847220378746281269595538576068725619246908138847313620136773685669809736987545102211986954812603023823574049017168240196361259889015855322853744516120900762349430191082518642213359209180608067138875377119042752598124159562051367709994045005387967792121565837646348206580287434547775967576331289022955728573947410331533523478770090709393188031656564651105357801887496068331363718756494203087002902474255259707070441894953605082289494127010451155467028021228914863021462999251642450529631155148898055601076942696821856124835261948925985977508989140170369360392576290024635335058751555946704916899056043481065136331368108234908703843539031800545336010492073433086250707392358362401405202143781971462886583344604485643613636585336927254450505723039231005429326530901514301800998726060130690003908080256427632603583045796472319347431879191866907758674036678594909752196055707752581267277680127102461755316861861164799981462159812978558946457083347747329140752488078936642644568382527728757653779071731740648608266984332615544009761488476990987807697206365138913326015301700511929836664005236479698935160578020358038764180794991652749222017379918131218150650684297819878255798698466171653564780375383312087367060500858805969196384389837273592741014291819771243040253562200467298831884526944116197465328181501595092020101796974906853602764084209538552150401953318588502295979143359424224949674790594998207714884665634716534228348709656041944979165736830265918686372681829627678981298922256583286805808740632528367572967678269756818190031904420532464036777511092311544854182642425597556379626536500447935275254889435903207890889556209539090524845751714196076839131791032797025041778133989305558758432997013927141345330132595194553133444441498927487060676487682704584829885097256091504046092114089482005114135188469336169447221657700603661241524707789626588508064332146308441566092899658105509854247123622631641288648127067816710377853661730715455021989141338749107154622092607237082981682290156087977920369995717891263058810205866847342235528861084831756328752527484960917516844059604822535662249367409149171398792983741428546490971141206514316423289347836468575528214696312815491339390280863218141042254966791930076726744533762436522660480540681796912265591990158456225699212735456909476325680769628113054684115099878304063787348457152040907705411128774995933536725532578702958844310837431114339525180365631617288807312457888312474918043699178843899833430941217349117301142405288903189989565094520461180269168477523624684164440934217323861097382773538834156338930207592917351281665649558440587244996312440945932767594037860284960942364922007791170662466571119139561441931389433740837828090802332205092493589797044046584762901612860402018005964147437218555274020150655239749944274111331424636670030280736254087097160367796429835016186198875097478118347534160423887341820240601974402689168094800629176707954657942450219060564597767923039381666003155192217501706525217071519502462991512650105178816818963372230376508382070965850647416955497004797355793980305308951754782166308111453038452440855432603583777361058987504303559510607039112622055188741832400343047343952019772828055655053200241487594313662245042894340459059997679492801097366523020081821122856956614876355422245715025688766368851648529522077905106640702622707052116548549440874132626166360136257430298799427406168898520754878557876795916616665161562340455778834250956252121299166344590466970712077625826639891954152513403416416443121383782848949615116412696780622617466824214845316098920573261546780079598830144964589916107692950790961144853530831071119132014537359747085020083226012780630980819056654886638577934530547126103161778433985074136360085347863106777071855259352764293487001618819207220561771881590680864822480330899602921462051866689079176865497121910980559526347217837411365430695362295396143237200663538886082754753618962006071639494224997498555300663720232735073134580892468184384873541503815067720535194643184092239345141236283173143058189556396721718153667234404664773261715136188211179418524727917982961052992913704073046731836926915409110318211764425715052513404208523006853857920278619845559040632203092777758170804715385499965418217504009224875850537441101446791011653395346706062673336123943503162821496625273943106704670136940863151882779569855032008073976943235227915810202071145317955270509136093407543145273292285336937471916598715361828837140503497770346707500562646713973771088656665919698184400606506719011047159801559798367032529566549944717863734634143237198464730221925793981214480868159323871462636808118977759779232163298799393435758330791076459429285344546254940001177988278122583794452416578204382908836652158588897332988417804167634130090341819229492324518252028531576553058683450223145125354944507967144282210566222104242876060206997085805761844335964369070162350449829386177270730111559926441260369552958695576030126026042971161880815622454026157647578281864748038978888377053511676281079793785857780433937878669849628507489953167240533095430763470862698209225627730545669931612707906366316903300647441018052891345038853174980625048742864304903627907013173757465906088853005358622651173973049426118608632661313259549725809482433960969092708089052902353322177145218395944042192053635941105422312080867994443664037171426323933875307483393099226468980407290761155054673561867733945810476185070161405692476522164311179206229972606707533982401477098606545866037833735222040754040748634541158958981962592268193165143008613414947340229077912246259902228492197918254111289275937299653206046429464983299448491831064769273687452524346521056962286898118427182639680912299171275308151968835848977877086320952772302613283808162192473019948308994580190831082684409233813624783517505420742143344648756276901497344310191962055570624944856849329464655382606569682500093299436455316096365363027166359779817057670505214417707085566309162006361380766289136323795509978863451368609317142194399027370674771755448329952442354462747344729169337693071094327518494337089398835871545644476078928561795728266547992205787950697310909293884619466298292431123689047737889050750270051105402119647697688356712835688400279701141850796547180278742987695682809409276734421340659781226969571975316109693352406878939242640018489944601727737774056941110065384938661532826499542233006459573335362323420778774714797095973601875775375630140674709497609808478416306608987129923531281354896970713744388516994993358114706276411923972136004593702687349351762583529037176703453414063919598491817649131095435982718056489779114825503403144730707652092584867710733257504287057922127090753035465804482595198213661388512481388240884695737599890865558500713198841186522653815672569723685624082509628893277608236523788463493412873416581438442066698066082881209946141594939245212017845758427319587008389713744770416033395631646367017932188696903810441160174918153600659324493113293188102124343620118032489627549654674217433970202468769875595112623243781678118409726026700069949910693079418619953807970028437814469126619318611175924744136789719190841908649844064347665900715920348164023152917865362881942834998481435671716011344431161305057097871195163501446400442083731065550929914478338670981151347603898830710659161700401532482643979311525017858071282867659917487997125248787499062091553527167682227241956659414791205900591163375603557918376439960559859029059553325925585673735214573803797040114123194128139575457187497494641625548101586457678236856665179053757339633583213707345034041550459414920707218667652941722802445615272423527557516896759773983961427674003939593730771058323343852619785422680838826968246293117425885418813879821892302985950143799933681792943327839847641072027431625667811613105092652680313251272729819477713256539725082176190496072642339593461741803735037484306566631676208833989729972625643169177828957322470205288366475072680123749892030038084388536421483045224629042181446511064480595501424114371790666536111942529863706996625378602214881534021024436401770461854509881757353002753903170315280212311074981820874298482679702396376230043016886122635406279688926079083814591169317575094141450635009097420183882476617955704942295094697932015852197483508921997296763629877600929622335289293981294923126987307365148965894955979468287955128066894552799713730436698986623694430236323542235875010402574127835556702162336180442649803791411655378443584699323568487547158403268245648058632963312052868398682514562103324595554254296745354074047764679493936819227641683658552293038757371659948718878938379466585472443948390797138512661259952087466050181083725171789032351222362792433126600480540246375602396875738723989068632205962389242141981021442391775832934635503276576063162105300733012073118317547693147343238287654855760925608636019289232102991670141600129838800626303809124871860954927916556340765481854712621088725653825807678223458992609843752462259049180548522115736547226972812452778430415873617103247726353794963446973069644668909383655667151261282948522224803145235960738785568583892270813511727531183432219206027713049299539715525173494724369468299987121794966426794074110052971704777177537319477099516812993130664765298052807788686213510420092295771095553588782943579881313450330146506053573298385099973679855433733401691966512998518052531766496109555087348441304183768358519547554626680954561429937782045348318318663657538063561458872828438579979119910520308418544571152977982779396492971912659561292431925655407806922999545540121548656330583160806146890618198667969172013542755938765811986748960304015041728092518586354710222418677084519119726510237288417025795912166971599938482001375648335198047284899858205005574748583756660750327933087508530664260094051676650680634173938619777325092618327001415808779774407068471205917013098001164019946383794131251891357576693875383089926612469688561341075614637205051273781163120398414323114868840941919046640604392047191289202910140486311321176601879765578354799327078361920566065696360507934688058745886296973956211118401191809799319729470767361319319149794758849215280667808682509212528180910889259545329915297537393775522095870926373554389568903360485499612062255679684719031595092249883813960293255266024366052471035478268137605291893479358231330735004752038277403802384265171502108754683453424551472174722562807348327005116078416855960047224573044611924081730069428187703860462045457053795608459911175030255128229348193709227939308511561447060342861957401630126577608123494008613138883941799514340242257740309162649980482734340952939899536325480418819388913447060953996178728717956928452528052321730529201705223403453711958242527927518350715289006105900932342697623229949198108094448339808787615373081997547136202974353648764548556961460403195381403529361422624196382441818489331428331444606363601415927537021915270614492837614903025656050048979256608189970150279835039017496040104033708084850722300042143977241609680024273271162578568785039970438133236439128675077885104255404220955295139200833098868390536572169394245425131744039130724397202324931341915821900579872749068973968562414436053137726305609932787661805917504234007398872515969035666767087439567949398274422981376714455449867832295361108905812617782620093096136560970099882069601337440559645868027274829483701624012030571082878698069126694225733682593107356772918346669271576371267997919500377525396702940662211427185789816555278754419843245162445754771539762748765271483266414540564663667229940206898360488877276509567051658410303744823670900062651950167442335795201997600755921145701386560721410155461101600629152010267520685368053430156864410629840453666304703536696474958725937452649311961451887746359314981373275335990678204099082485748576321497646254284086288107018025361189202456242804483793605118847222418981719177221616572400303857691410479612853486191635518499635322004483473631499667255527248909896992873028941265403103968397751946390203169731926657019420365812754376407740168795378918967918496881935649473691668648310505757027430539773772402191894845361680874467759665815514652568629718421296195070878606322670784870076754335388181660459582948265495540836442170840305493577276101530863792171612993117118704940946888263553170641635580519486748266058879164675942865631235488067698190901443111197689358160762762716941332584854988595963101327652176726045703242512635910306267047621815308008982304484996031319737018718485156497547824970045407420836273772909602385531947248527798207352233820953018687416620926977254305653676888067387931212659954404764909090513761486338922721167566386444527283424301773624161333864037850856059277583142128252208551372082657184954607199453813756919786994828102291992416709059011459851767833081740710027137306081065820786447353690860847774997002694852309994198856109370912700317344111075917349667883260471718143217905517512630552290850849461445883036574144222750577653331960350295903080727056394291847342632037664318324906270101603310205077138112592083316844616987694591982317275251162670414128133157111340870918611896913948792900175501889406136339858889848065378298968396308458597893265895721141877075314705363411505016973607261752808299760063504347561499478273662059211156452207729155385783211672399385704731417407333982161088117263675207949843976934614625267425687143710525885696647532705670563906123499830090112788896570642333549968750879579678622956845659102433103851744616209535552513430025373286574926732164746288193944217837539569002533530001701349383778969553838259370092158591463355735056946405610053881718935195602735476683137357640215010820919253832761376415063226764223170362892300958692265860979469468383243843886963514611061809816156615426928198241900319233314297664560267718061062432951757358342652966526533779026773407024882749389481404014520230509561283733705106277429433643340028775702962008795622996994801672502604209634395024774818450810429071021235970227761041138173891725529418956460599560669510787933478631288268051439924048860407519036253817646677031614526061238686834535040000002104006812792963567989487190817125235981954112364271450993260378716091867988605763749111639520406697507149166164664766592034286631968741119113783789668453392662048927386374322948664473097212879891851519179663902948416670505712187233637409435802461697854153636584993169344459908932079850693713282723869536058522442626603776586887303772723537962211828698777077759177603627219067982409255050652344246411827742772353090079057177393782505711643492362783436889667195905655625892270786491362182017311727204202902881902489961702211370181064836334486241954329524205883594236177802553047425243005265024484256210001930576445291507803801600442434348514827518159891467234008616042765107887185119909558253038879020970459438155022731198716608755049046491731053847476215995698991087046552839386701260321894583279201307135908488630409997573076806662947968086154861043269173457120638737368469412445470437306635259465532737682783929680276881205188695334669477066638177191785423951524145333776177261823587503865124593571763300791262723840248956541826993396148175987477814212348092676680667074793238066920801004264509323078366432781914978733113058254755261161743447379708057648849303482251065511680746198059944561672282508949995621574495937172212607222707450132347530631557128885947233355842039107774642503932527831835424483525869481071110479211278026451464956929214401197110237819906064467468380995564647907170484320173775049416191381099256801558480332074492159829172269613209628671671648521826767536623107007887430719882297164190344708833783651130250108757647014454973666748062802101971862339826398596199701136248605031248813597914826052413780290934208882730117036280140773457059814852443391016826125737404800726937887988928613032830241724328633424200925760950082020869355420077278023707830325190696235680038744093146203147926918089203554809476669601264291402846209709487512184205064231871168152174195377820431565552340325526447902850698448977597498790003502757633720139980191962439625353309600653338002634883921650312269063925907324515191509037912134231457015800570112965015938900454927080232026720956125733260781114614719922172402533724146106439143478955644307490286891119639773995511050814381602526183519005140046104015470764904812214804942852452890034374530588658318865625065377707307686174375720912316559134453474203098591252794422506109887324842290708070424368766126190062338797954590244949089082572160551343856698427168207798371387917573127657899150132955088996913292386831133727263466028216836865514695222436835068698303089564766116389522450143073249442003336216627853593433795263568208754818925000357180139550289065431156248332053414167364081257722192719182974701889582654622947955016769940646530435928143983490809674345848589137232896693667648986866647600723996173864555323098199927544645624767481182543252012064190336484473067393931123789769807392682051867982629789796010411229092390673656549876704210606288662476115230796006837820176760501817315987286963695833637728189058078739279576608808498295235166048030389926596983024619943765530852084615051057975927491597207603000029118100332765845066108514603109437757957208156780279594348758421527028531366427388382666182876093083900730493938158922189983919027653117860671153126894872733517028235712116350441799730080419829872706878749279254700292192121861213591852825482691934597978029614155160943960404974492620657900806105265116428803783514374177512494240904503737244498945133651671398769152469709331634883795711046699080198590577786652525507492498780340048848718100174991997188097877406746874749867553773782216451583623609192559134407248467386739247819249889909926727654987632448817151309424066344886632651109441008310852430782484912640853529074916004255340822730617036432938540427535208975951786845034246075747252535132802790427116951583563996743282472418183203192148297978383223727294343869202353738338051116096299819529587673126899331288864428222783001068137007418608042484340064956182300263276485379086318537514511522599984259606674201175603147512112895663104487461660902462878381154666497686241562907524087006440650078830985507163434678230481365699105512585561109870213018877593538882194286407959751733174900281982087098895611158579417251046808413603851839424163215723602370289351403860526616747642322232187875177317304700116388753105863184304858840409808284933552997501320195654858436205700492421572854480771090467534163872552999502901085413601944878080059198916068640620404270402428694383103108322574804386279219701860396828816805303494486037185932036808902908419178395244558611616259971407324307921313171594862078962546640848462530229902371703757332162560434145383441776576017647965021232347036031157829175284544664656740437529286925685419380546227789383624653119970576131456635042633569582474900121474713006154585304521153011508409421883993921947594543362057415637093047555252028288832687732788131642798005067903859945328920166902030907513822731247891308128410598607874016716787032208239968804275478534975458522498706434265803797293910346870354866849104876182699690291749942334738257244624323763129356338220250558701578911284028552389813190209276662639024875606382273580254229355394135150317683148582247637000489494900250637062057662962669773753061820762248214299792234108851242890945672575810844237400847771765157507369521324047585196903975510540148970355953886576587355578626768749224511229347186548630483858809750955585293836079427627434288640605728543679880270143108869509891792675684881619587553120507785244004111054441684788670596820081276351898364163596830494681338880217156481720517285969513238522495219968410851809123666511155171300619284553364485542444031759814760360685008980196043313596141987320861326703130578138410750876104215098495783268703082505941578702412045606019818650124421090096828635297958214422785537154800576801511513724586869074156986109905684889138024755520135450806948515402182851036167955342850201862076247265984932731536432706210519821957349335973958142569672096621827754800953339280697242704780429542551651997330652012394464965576168509792880094362403030490588521854619281160715722341844473090350202033337941704677978279993850264521301381127810495255523449146921045669263141023990912562782411142504928341732269852867594909693944935563447298623675094636784616982359651250003763617957248886687690728273225135048744911751047996627046730881714184253351524758797351316711126550110339149537526843653387355293085030224534952187733317091194419717856072108723721134464019647221738987206264395976775890649127138886784005773861913298376450556295523367965012338450035827843926836029320464408049954192180968406842846716638827160652955192085351278098814833337415980711995233817879828256807266622468504036566684636078757295669211698237961630840125208348849551694288914054645151155626124215565143067723340463542882129366742637258763046063796844607896765697413409669882958371850537958597673278139490121133794780146759232609398570691041724637853859516580500714933188516414285879590505143122628422298061968304483968478900580483287949807725418933346620160823796312434179041531717703081384740982635629131430209250586233396061651945667681203176392254843272129707293425996919465909545493135855008893584697587134446241450222464112538197189723482694162565276193330984158914284994614836059139311402970118936667206657313922683570330849645629784552613923570204550651052661576790185495835351415806671232809458361308729134888922291204738443284779815004290844084893457102739348552202969634357895593892928984687372724905905368366068109253323873068080053240629582880365446873362284010701702355998446683284499259298570890476649789449642453625972731615662566781129810324846047756262465876539079350731420370794631989135739678168334126947578150064895910838751856914996977386327993389279142078269461247741320450110587829547346292260328924976580579560557260161985479071256997762934321464660717846853230867920138270745377021755136711847919795978935108431234268974493879961484193257914556790671424601535901700067757316513797914885530226828404465937267760417841448948387575973012649201768431887954269646917042123588615783664156035469003211018925369034233265234845044917563733126112751768162433542867812695622188598588016428802089576698274066407082809534091581332163448131914775233950675036615787287768791512516525470876643629872643547084572520386468500775336158311343249942723385831456350668628476609424255604668257123701590619932023402698007728945084694676314717726457916055520453034851812258773565645838152245883914328893977647014332131472936651518494021943754831035518885099227438669917882689180736339309130364863440603702236029466497698893596193235263719865231991406993012925347985633161128193519718112959183277893556343211579758480212852496650095112089721807289484800390253066514874487064816966840362291037044854298405131866718411627027035015699992586476592226233140828209156625915904734385666959017237251794593706861524331454287024148239716135373075477301751040541063166189639781135437070375598909468966713115707482603633053669274626246619728112254227546097953915551802769571875571540035212317225476487761115912068345228622921320780370692151724946484324047582037132350328440846021612721704579970362779374637037849260826922980723325015121062894242078125060499331067625283158218712745609151093037111480103102523395026180650249238652517308092763662472781478861501328249506273952047539756997908464736269045912609879504911116409150538842818372951636022686257603698490902770156707046215317722116691825871333046704051623881067428100083215030475292237562288580158892865503259866302180068888118958027394059715200982314274143201203905495349475999523321013391971689938475931745680211297329053804757459382593947756934112165965080043970129304376502420403728288386320151681228746760536407636427879980007684375513408885219338545658640943318045400835312984192828336741302349795155363384604607933120987866871854615299198108540350084773716626097262922343578309079629897835686399946902734782208616311967184746513595322246157054046382841086778270472067633435322795551138777242439335482895024633544942675448374299660908031538133891298950595366118307993609131810406210316031983519134083005775463510177847276626566410813354686295049724979017796362222523557726713485122146020162831075280509285153631905370374430758408618406473147984494309920828014210053661282769054094912652942273786477535796174873802960437700105031547345064258498114957150986232120688413580362645894552623935811202840095969571075768182942469313049301484304227125244879496088181533450686621146610798980410931239529694093474494557072910386723976495088946108632420900491020511114003540931553811221269222509611281486432637099043891763196424939454713600301000884092861029683103142665820469180882458475026039339763976520651608974644605078805398587994658100904466950804254644023385909522693778456890545370774023119343912854592383770971116822331668346450406747462800780418404372144670649930567246939297418485664057001271739492300359056168983055124122305033546985943501462856450155268559529612357656114712705454308701392264611982410207420039693623088533659866866094832827077603336532069491614249855576120060838052603575905734624454338600064726751321402308439455370221660254260900755931697323754500081768815921926986856557858703939017069448494888983913386604219892074399341639186999709776354028514662559498754603277916853978990352261089621448867585088120615020743978429743491549778973596418212956674309437621823961389950414270885831678637684967319374396088920464934061663100166556386156416153071649983005717368366712886645125010435295390828842720011863489395370471861176382714566742109214824286563119605934920987916629668000138003580336061615167370838771923226306064509726896248582383976843097980659933844577480221865982385330673449371721443688220811492315949821221942095633507665356404822893318992454031751498915452031693858511046817177261883839164671942710807796614191131940677114762064248734724544137982807823161074258992217091158605452067461851866150830180655258375723775168154141395421698526698030238188769396688151782759723982612339700186791088404863083342607819688031693252698622347645351792479165077038990717397818232170352242781512082031212526278627033274922045528333584763401876643165090407893748945428568544706822197220730834065083719365299771251265105585983753864150326832755834554378032671584281297058937391991733606758564188544682561946416584193970305059943397234737582139070768062607151134005863600557319804710650014388947591168856328526633510218607942702954388039912064150017177917143876107437147627106189005557560241110301744357826707324389040132391908185890395391445098699569758350668697996329407253674691097357048234908759668578721748203304377680770878531872562456897833779219568409867031392937033983588108032482639268200863600202905483091181327884517150969042977987501633566637818223074573083771327402109115150925291052753879015230514855616802833648345095636302544174548998383639473372095903007009621352773480636949278318796146402929654557976170266047829245083072263705654924055914451744088060927155068095429600826892357077476824571440049615456228062235380898178100075664219151880899367748246362667501011516558674359672900656429588025615175732294073764643281479563968745232132770655557508940083120249988313623864077987632085646978103021620328497451632114666034805069948925827268951460636108533609494507648837618970977242051259368206445114614994986456732135971018308572558156304570510013090555354749684403107454344474468303487303926635821427088411414603316353529663597583711452328814952988317364030040183699301326892880148867000125501932565092879358472863067241262231630573269536770583542682390952125141210441470245897107105712628758692497179410388733123783280417898804499393534414860192149296598039143570800775592188739141798066811775320127028705773485786290047398180254934210555875185023195768046080326982980469442006027395159986236183331092455055974162560852535959461539424226666045586069082105940166967066763253335369397522157228576844691353088027017001189194957499304821341583237366355639613873074579376849343763032608436107513831545270628185702046517253662343826069339691673522870023455168893134497106955936731027431340867690430974650573645059655694810762885668774297694301649381036653028225706587816831147690125243123940005389204233155508373542668474711220111687246275296867323349484709624327390855566743887688761185696898623283375474851625857605973117222047907147000958561385192109242777361638046500310089066614744347994553818555025751349456099368446697884840032962043885668409832918540891156079932877811121184532196373933075430273694521969278773142528072994353862583773417654176009442904964666730139563930534205602601525259687716766256399677668893659109689752337606323152008941660471341613654629297946774571967094916191159143983176188948940019032447204356514414725936715177658126344539916835563461986815328373066249589776465329945272338994439382179699686754732255450127696058844058263509264324986173980267576070341701581842652666851912155301866254770885277161543602291274896060066621979972273412775234503468603337161754061295369628221335335864178026616260166418779877599490065776185545408677050586151008970680910228972931859692491502069471315444130801338642076694626802575157460941495056576784923502550135427313683018522695445528924203561655218210388157757010511568957964138563331724273866902967136878636525780785036821315326610488316613179601838471899405929309339293844798953730812064674867482428942983952300106519806618888867631063217268339805429924360940357498312250161772042349781158223537014270575934318824164523444732629353589534792024954956122582186872689130193816553482218121618725472465114866165314089259266834654201802947774713098053303618373746635514835751110079937410782786714685168698066879232129843326069412140806035099486582471952228421182187032177010204931716179193086751740686734753017881747596800362453063667927939115877413051791668848889781261689713746538127533675459764389029615493435234835411219939651036922645566965709182526691327115884792915124636374061345940775202430251928057508006621777212797325877111410605890074060250156085229932346990133929980202137247763817009145810412730621489946949512720029918805834180498569202671887538399950684116447200552729738969136722491098751901498343898160381600578993587938360187760303404686363487921812423042721655001628697968016090981754928289975414817221587547040895021942869056258125908421429107056832802408662718617635493282974628668749047074128651967318476333808095094373957442193999050342262737987338801519837854078008580332212893622591089551435005484804635292626411747627416599509781448345157488740420158248185867091719061820056729849946814622856155207958893814120823810250927122125821505471741202104551424300192825196738443939858461961763630236542437178834768439025257554701766394394520282207654656420945056078344355138392690774748849267835214597380633687073169940052564163346451033590306193297590550778733210578329450587973016311127621750328848615089534758124034024790664885332064710853608018248378156919101689338570509606989137970302551103581627209632286048006890176246554004209177644862872827721177406577843631435198628522433151841012388335859931114673308184029334229360390781872476468017458224879873446341108267987613241012326635178397343032562893201008531560911646457837102606013249565721908458533458032762803246614295920714713768958243319410662585107232867549049470582811850058234270920709540353202785067696870405251124532655589535534931748949889629598701187517051545334392020887975765239887171238581214547683113709188952109854114438646570245672439803664882346220939625041160095606109661987022207225810684396936028283762364800810281393135503018715176698231748515991325310052359796695724951676669064528840625803719567903062945035440105041583198448932270181119007398864265931697337196268953451529740643874459412054759014369307763881069918861064071016963780456857683168592021307763144362064951658272613841379749446401679085328795704035447829063429439169386170119536765504218061610221067540717924655631778370900880221666299283095445885909410046187528722956881106143821867183905167727470944530292100992263200823287517166200953553187099750705914706296520406883646570067946183515940987641315302908971987980919860412845808784433930731186479711923317380158607668247872397847680103924705266542330441832003451325209903690829927215101708677567725600732344790400023456937826645954542930927469508401801819397726627979688513345307577353161934549739074484756747931485493155959388921369913210425664871772089088487550689125075368862280756015623584922997904509265581175083165110430154806136943375184557070349607530491165558727454075232658035436008048316940411999506580583999255817199688760290526029471337418144453436824792493438506945865161808037978704792180144721807285019116061508895151697168253610892765286305024028476766772749168914075628686449501008244107938710410181102622041728465522736091395295331434905280892749900567559119681559316235667643217206456557424094658582957658134931981143923583765892231373043564513285747734106451647545261944090314582859900303876321388950648928728702624534835021057576355196665392607116179473679369398726111480939077697502336446295820620290641409035138112144724955142082834431616878347667602200736216912666560011001349762841890919464466107788157197222262467777858572225587909356279352118928360652727151287238935135186685941916015966160013055575616042397349745057005290185030023705426077620168888923109482763494470026130002687435066991370966472580426971977763494164992812961715041681550369608098973250201429792916820866085730733188515732355557761394372929083656553729503286361253855478786098688258033557804622725304302594370119367308889497795958745621886314946497859944560773980266922547598684152571125564120868556595158519456517088911042546038208861300951024983030218055524145725485324074138006528056652086548660552465198815973557767410703798402071070860587236524872175964241637189036466858748920161190081215868025473509780100620506681813790527329015060008917009382298474175483859325531705534968742794620299342419645956472989562517726367064666234934161435988130127522909892717306749567238275477458164970847188579293651639346765556282181246829231137508094086378104718933830547808199670074105628599318592174738273419742643434861062371331999430999595502401762948636959968875566568220900182476331207097373734937640815298970960379804726105379301440415949626194080366536620760331918794720740978843921311928120533653086540204627261643062439699849957668720492378849393688051096130044983469175494816663108808152235674208976552093988903116408045907481415511937869608594527004812542744712840852716883644068968818594021921882294010731030457688717009325118355679473185954857095306705338291900340727799699216824230473044719400917232929905714817956536896974881260019699751829097924487676023809765936769851464858917175711028229509607048987308781583916308860374954320754320245523407737762240948591068412420187553234004456172334903125452343637490141664929130132797188289263809979205296917311724726394520100087399846389797695354506649783928657874727379754082097906161072844062197609676510665399828617862386312749862746473862139172272568724657031600475185230176160068145579720357579450078702413679272646620533598144897153625583380695804889716452187934709716869598532303015160307835934677377253224833826738428649913988550718784510360453331929652538646949201291121933500276741086707110666419264391161056702210172521599334572704066049528265888556384882551279734967804905225955980169817704238825243207225363632742907505561444039725559714329003573618988012098269153103126021965135269739094345937459161751276869181786610578756264422659865401555389607544144091926845227968440889320681262467252276151346556080938281062265977743871357121345862930784937606019182472251286705724341367765402099586845495002633536306649208284283309677678284195529930031877430749918405858998970370492486907460353348966328143457470133933119232750236532658523986508401659698304669023425664310301072485912464432284326983961754950156727543839772444362678837583540131000338023347508104416483883477102046816502846203083349677570590534745772409561543441614161866095042840488253140247435827862981826463403077324001557622925564902415826336514487568564266830141991221982937322565812531384473815284882659224091070037914796907652069836891166915733772730834231494348911029119618567183610482107680037084756871981854806352616322860539261548206511259271009824599584555764917607391812797437466088660758721302592862077547135409366265916601517362115392144193096486045730202714128058937861443175914553461851745483095322204171338117445228868767857456854494315379876117321016774112663674850404166430729932246074553995458044437616662480373234585461876179405506947057188918667214909723557665115576352946020573701288425069136368303134933044404984507856782163082498020797285621954671536247147864317409747903256159637293644560138669539587141841806132801814952692711694570621402163535350299175348156576139178155124426727076428710162599205966527967425004568644091240065366233904910478580041536827194259824450232124711855981969492026602644769115380347819607645736096314316912433680451576619893241108115656282192130700621242167750615285468003586003342374364264517432123598622257334206347116250871091130307566283889209393423462274229018969819306526273245393951451170744063194120618683414433896502447927188410376315900685919222225586130024697694308131246429111586158075404052877184574612471409697973968252230499541040445847517538930192615006073836594662675783645096503229530447182480482221868563380879678960194242918706318039127579237626592592966990954365710197133638407681299790657997323172158020426404821833359182611784813487576507006032332108918011447501624030997491271719254727365351392512073209122231608901121881957426084984615774571486985367398991654253720380988925743217381296040121946369028683101871724518131241446485036777582608613826814719317523670091148341136064971452715318252890688605529747041737917785328106774203596316708973387511672765726100846316096372851931739171437711578454870905266927938078009372028236480399444266905992412559442421943104364782697227536943295405483046247925639233897928508050099420342768613016963005461183326201261397466979302302475789854840064488157310370920564765450112167907535579708915705231878649081662042835709811607498634925664117598358183703781156908022966461606814159387703473856194076560441725512770217500611860330205986192665649285239801822170417818251593461638693626548704866778105614640400596646618578251252661378162137713029933900718716907742245549716931767647387223330219567718512508417903583735105988799471551627798474783339736832140500806105351735702458174314740397236843712930796634071741686684195859701019264193911298038809337013155163495292380242240758207721349643888579139723622599239863383846722680086453418047066746582072804396589535570863615016133693935210492967610511300052827890625539172843836204229540732865794888873409471795904915434485225196875131440644348204646066384244473602690057247130842263472877656956572542285327364312311233356480040237599921025999800559746198355562139012873022757222683029277365517525909306993029013806270384121430795764739275932028208916824949405694130074580503993046891626115230133141039354786455990090940096755164258576154492757770422624370154363757286246478622266861047244822080394293740709084259921162428939599448729756477821693767004719947840455592679678375193197804037282858613850894445305248106477396320335787901696757940822254793493135585804157677929294561684454062241399933602967073638598940656555578358833330114373728702685726518735797189137898854286060280307499747130550683186054956774375228183369825555506726715433515685038242945559077575609556468640013719821607657412805336515123326255275795956944885682445649800711831069655658918480579932305151175252482404584221977869642962364155817960698328919581706662357971658284155397849833792214360637289405742017716797888758772252533825225310120492317640335621878850444033036485012561164524884700188201998076057536403505204344814406877521229360020683385302578944743310779873361199133516289647071604956671291456192414329050276710353805282631620606137496410679931526554209454566763316932389962808899133678302662162179281969646778346184460589563551871739087882347466535371419038378424784786400230977995884904179224338016885673280215779641365337592809969528241408878724328063117997793157056750913196150450780863117060386390506798582652342163072553498250048031043497390887987656307887415852763814566849551121205355797721190417315834840959500683971689864676614984039317594178412755429873153113683130720286285316479707939741954144273859668025720858028180834527161868338299867145271334653130059622616479153367440648637793009879237224581555950165000129159359750969428611091348771939608839533578006637257335639950336982685074471282612494967481139796586802121126991656155608238259598081381926398790917756520253417066991363109178295884613769083042399135261599827956904514961912983901814618639611650752373222523092391353020009148742854993604330152508361972226151755020879890841148413988017725220336289108237462192445493932211269543623173311975029361340242903143292754579218497503163735080317683865790927344911648839593520173068119965148662208190356125880520690773947257353866793757104286246114526621327415990314492837377547432636948480733459410359110033089822808858571794477623383387321712204053242772448558224666681614303477035817095551545191351391523849877628118004017719991066702442115968515382956264264915132127888307842149187786036191909763148964250816723063452389634056834387236035705115916689334279039873564404125429243731606761593417667066806499251894129291738335305027148490224078914180697999504647697869439985910046604215168820278807690153791559404469666622901522756848127115390753250658540926139344166973454649316551127386304545099499082126685475848305045217678661234076917407150349798034666030167426935963263252697714799001141292561935428124008792674549976009126562918746097135031758223043800698447701890130212378899029512300800482663635562399258001948002192210549448696050494861823610509506775378754148780892304877988599978460859116703151157021694723502032532884555424128847230161315557702622127730493844250622596825202224553117080731631810682225592296795425199438859543366708348191817221356738842801627134416895096703753424783083566747426164299023386351582854071427519512263274564170868559243353964460426622877295691044942552692192902012220511541923135447638646672590601110922619077432191565990075069116287023658313651994285408723959119398734007479988082411672924957631818777782482080382590895957854054457095453001848502907783090574503664294604747979127466217492821099212029075796784448136757809860086321486379103551721808215104744937073744909191969502638359379267009314311082325063633662873320246468653233202050022480796299536126196042811677678253130059113133495716074406901683335597229334191238171526983439194419859596333961504180109376532251984252141525554438244467192251646837227568346426703625158121219940450012860463106631413630492556270940567113239431178549748665210723989888753609361992491517928146007886069437279025608676817333544989563304789025495391633878624315638442372775933635397666799979745382870685386002289085709669819072817590493803238975026530715618957422390541944155409861795799309158334733303387869171630223981439703793971097166222521107333130983836476196424746161314220298549468717324933022027463653317093181595994714527734333748227627648203262194521547466387505799831082699160182535998665506436668484012687905327457265204865441829462565768745156941436983811382838809690758591959624695587776258263077328461580382158293973311334491555900379199593199289772078323242156820229039162337528392063698863991298127839255853140512820091775910179586142659059687556755477704154337545304540723705723175302631800608705261476825984721604409518364624453299793468905352271715666236669934691481677653023771266455527399071221669623020002413060817926417039093177138326695124589992672159604490679682429992195751481965737863118244749734310321445098282820355595711900648487453512013653740735238715148051125539282233250965569696336349749611065737567412473005000128895906139893055539821526029944449089065318379357950597536285630886929889087269297399844497903959492476304862089117432082800673109568949135202337191216257998983861084644634653118557346564427685825340531711114228941751909183142236815904039691580176153426881646285320227047388512375886444674483418094899825692254526883303311159829027557227766029116919133602936777134651427639673860357962479940865579499013099004296912167977203492332071568049510551447612042192177120153303267368594686118964243600202571246313358449785662566836696387434528612478263653783528481829719378398071021687036869120928991242598367173894674328918208802620319848441775594862818963929661030106675706247714385387366827420264306704248692608869487064209519236459428003466807602641591526813277079785442035077179822831133499181977423181110504489729879584000159632270629520010019061830362280218558888030965758220011668232647400791428693396534576462371228044213326854822262185063911860686498236031112505585523721277057330520370236769371228292514841947197608953572421950667785793973789020975086376830908864926586786968355787126673908547632993584513015855951822964491241939644196641581524130342501536420322231753470485707670831965149069361674454321305263215771258458121654140183226943968864782668542527691719163543196563995422582112766094545620614242040432626163552391776053992698841458650650820510305160267951773245482717575876136907634281444351592297062556164804102368165120093274812243301510833645119002616971825573553226451962777738694350075778240323438061225968152892333150622604019781773033317287353406905112471680459896831488660109671158441839839945634070870538347136073449795475771067701291965656901317610240414570788672257644704731157880670345185741328844120351960381841011573840736498199782058169520707707120649007338758025277957402718734260569106973002479958166842651319784193179510448945016977369270136015727094789325456001533750973257180687207245094351538699998225235068357067452612173063198162357078502692717018963012457037825492185976876185199314042045364685933692871974854189047920612820798819575330792312978183714858240250380224403206446677059673262875771092855493577611430068395379980216925305736582376655875689732040876570896173225035078662744436147971788543609580628534673232513483144056448167247614298420353094029725003141838179571723443204415596469507459172449781153581461259461095106132893527197982224672598603951656530705231324939815059556406236895897620539780284100541160093390144932560674674018251770063284520488512406854151054373461885861812826350045250116269675522477496652787372577871144848855214496933147817960864992107071503475182459654998273854897559400244315428099852809704308161017596208270352489367683106427923856356657948745108308877898444843197204345062073983283541449292756070265060606003524055863140877698618917869035337026714292427620570244318821577141694699437039174246497679710851679084749729696747314118355504069107013281745244396426932821392790078021569257480415415651613770316534336882422717608464872090160375963879817138731295820335463410671549884272021454798354930914995126746703657780287089217184785600717433376154963563318533881378702216144316707584983677953095485086535342670895103997014809684139852516063606683311311696435375941391202658281333672093455766230912720439285925918968679300918285200455464261273808137273109743859257825941701772426767394208332771648175942977368735605224323296039057732430047030487912954562800410920664662958641870216621987667413215865671614586695441138620997399123756714939137084216836129241744675367381613220247250070723755020552871164069628927529937666484411108084871533678533823591710231720518614739777708331609866893274169458917707408439686157705619733784177853530121815259083443538417911824144447131364495651026520227351884977031659851037599473426141990561763105024019897479208510825667876902036427025358885415619751967826834135275109737496637145752606235510801385730749796604906833923775159969771249765594471825780659952537369564161744710317318743770268600579878155053783223207799640598802112242527220076882322094746734800595236185186931633189170005735824313779904530188680185953386857933758931843392948746263286133080117736231665273977754322549854431399493467921301381202039116053092739510330937730922758097493270951970444600011987537997185552077667758871006561377911526240662389734936768384122304252557357263425498492504458980847720932229433038600558177888029842408102835781935471310744966272758545805682747617435025794011644154199104407170368307180633723565150471341903712466914519991925595773811409591323458970236764659994247828130313311645792080306037898186160326769375552348998212207409120887610462680016132660127917830470198913564885635617802732446990402881243402150814254306324451215066478488413672989409628374295938168544962144829687832879081545269895223076212696469103682706444006204987320266167408860582250372316119991169336374485753995027040624652302348761978659284016689626111101105585609798111959749011343666466410349997661212793520824631861507086481385744935597164417990790430587879374765133824251319821836302908440274146549488446265668769875596668786513460860085894244079149379287585415109561612754258412504146766503639586460299484271245472790894798520707308190444465878806134811955661452760435339425810952852780191075860742852731082960423123243053748547839071561278484162590524241802198122824558497897002046869466092669327995902438467097211016177314504878895047533796948567043887414051719752657480952336486297398535250378150923956211376415132862678375744375213364154353279631413402141837167936591863856455777498709042825952951317312991253030513345056232392335081720304189794413973199075133208591016661849331118544017832487337972186690402465121090421555495900654742570052432518378478724621375227985540301238295726830233768600611149496598247688690798745915082316349698879094155629894961321089954030539483307557174761778291996615951044870961300969990918958924662345638690668732707759525154155797055323627724536645959925065781602989065872069256549346805578881246966859103849827310824785516359181266012358649399807873324579367515078538313030353531964202329377485431633203437975313939145153804144169731477640589379992701515502793398602121004361933757329462994836226907236422622731009749412754288080564991504394314386371601829702510827982377831999471345039512598335118463590002282281944236807615493268054352963626013295548060189258799778779287886907068812718775721735965579528324595245635070670547375892806785616426563478782872790220640077816437484348718423452134176534261550775680912458501150420481395105336283205205059782058682299840911428951574242724109765962898294645827689717061326994632817008161116457723368044446821578384270083307510716794550596009778355951464200313824935048182419981919206329768852246143334786669559286854593484998879708717066377672211645709297285316844688507289658391105513390806525072061688068364812391306555179626616120530095617502527750913351734137997061694356612117320356815972422289616952055182162303250452341583059048018907001288995217552448943257568837089114117086055454580614244400603526021060022816371102196525931186114320965476217064245601337874752600692277191359522352976754163322044568027208678007841932549659972932678196998676354514850855923508889352934074807166524360537042693614517197264905346203423394738305712167622220494908809087974402560163238087697001359232912385858494199727753618679146539211212718654520114551756793879046024669033340971598335377830301383081899242831806671322463998419521935910092091821604141303467488979359218104330633944876838180091540924223519544161402694337961138044864506029935978034721908852892084808096590467918873379016766668977231133014345026510739891223890247084222482327410992061205422568458854284675194105320041463380097776567400981769649874471945377600193387601892979238829790377682701611947513746528525447515936714651640853392322573678903294827220435341228467528768402209683452345156311612260119834368159405292882841887611181492262304027219197826011799317097032315034825583102682966590592714769353223178743021435824028739562266583477724285774595404884353037468667975469324715174133730407968872844413615956085129290806525397531331686847137250106381889875489073139207998990653590559289572622378683489120518287891451420006621302517714179984549647018882062260292570680020144957618324125906888271048336260911554561019476264583425802912939872998606838274654404972619230424209426005903976395716359138151695868726982359660968090464255674383374227055648599830343557155570151296125461122217355293427853813246032352911849088614128994008076082141208183407083252112231747689497748242785625555507018416396010072921214897291273394750852006541532082152271441922646346482059468616947640164231411221330490943511946995789391422494634827631063969667246356499667751561822684235676014996447686443725547085264828921362780444470686554980285419429420311570140320087209780926657285269449205304894023631916989852744346030229938673215775902157747156153314944481679424515707951257155095963698208197168720301105600293714169766966996979894297698316108491002535651060672403203145822992821733219062332358019364844514204537231986073838643538631464837073422814357968224510584783728712932616304171951067957317848300013548387218944317671819561537094212911085785914196832346984019650023281088971203153212883819738055746575714661405974435014990655408216414240148281089619330229827312657147564798251395037556354448080700516686438846999593370774489865311448942791918204067046649838994834298890829622196453221627422056874422806738455850409606577780163217177409515510776763950201629062276765869654995870797716905938270926239635666038558678905917159262544155102526381383488158772664556335829185422443066787142312007480362253956214643696796973074779152614880415941827651027439696258828799648500090145828415938818481136840645307677633063775966971426736234040999564651240483350541191444628435271003247726176432015426047339919868712560093656610677403187137676745332727000994877548337654234517064418039724984294163859598505999149983365759863974978202899232405900702639475606137493709131405602193271461866697651173914162605860717067009739812178084737300616274502212415346870711520159944931901512299974465136523711029719607559668422318238253076262800648646432720713338015814499142051337095286475511729049307741022688230640527592260745300674284165255470275356693981227026153545539191769093254420514627535596653266274977214498410305625068656095864807727846018199114216363957064308666624115844351779752099979139074407355140344314213660590155517403278875741345476231947622688756202491816538725269800804013197521984214077918992259363511631027605536843703264126831855791749725795089360632345706105798202558282450358299722571769385435148779654763334901460212971355199090298695479498688918979202088926104381335075302687708725334092498792054360773667655453808493448221893268056253665693025120955280455732839539548469883863952463758935494703703974661504540974926059967779331943358618308150089964466668399260311065425844645631461507418827904057512360424906277071801007715530186938909224577213582876994195820772757155339451467545064407954885379664257730829878769236494165849676147764813872636896378383244695228295077978970052846463593193180903400738241051890452600404296872481998496581939680293278150075136506681232381302455593959774460795658641332157737563389421861455673171626353192336468928144226324420369640832727042671563826134165372427237173953483169367736739816593933326730612067903861451087697183726682233057944039577497660734292811304829682732394435404146297120428934226969555602445388324395930829889513948342438621602206363359495519896124134922851522613389272249850616328848825952424079110647939375429135138080614050635405744340433084942420480532556477396581510592035661335371803347735479043490033726640560247621611870151642188591526607157010457683996332709436773028312861635148070101229162387241645902081752108968624651446734887046624613513922973865466489004955872346280528396792829022888410622258962981138959709634638604997830602893150103050221852978279504702299217985871708074747549277654428862501691983447741498041477453755578192748208478349840105466781195966896118273132244683457902687647737494574146842890205913832132834093194200060995148201050813289457207789030577078920055105937237435150904511435330728976492834750024987573494218096580725074060605567354758959744726556465103349150648384849366600832421420893980314832230272174326565856879304048749095439669047394386060252971139187100274071095795897574249364302650705366091805047761394733526914254807279222188778875524954406096109099465011602701544193290749191656093659823429066627197783368652867557476534789002873771315399407761593152744770600197108496300708579898746440598740337437598778896674409339350200342732217401244768474804535232085903214603428115795284206503540878597570869899813617748440537201637763048528506817470579770754536946010497846510635609817826001685945409481680710216456821259105381173559768067152834175381329760623974383309265777998991731678400628906675402031307580440559654511445989169423418260757501939655968791823828408639990337876115739278299402372835729798564736165926038723071358191690067050796092414718039841042893182933039389141500360303610443226265149238718847598382403560327167660347290788667268593730832298531489308685350756629574013612480628416407154683521258573527777692983449215903159817028612577258709141562562145527742342849559140721924608813977270372072189672663622749129532954595338929025942401989577567112820839351264829091265158951039497228970670701094310662544907872949531182827113265592274919688782846980623090754830782250755374033859944718896322360656666645667797340689837743341799167817498945569504692815042837288300954178953074784515602115255129618180581190326654792309937176882775164756174189047466805920683098795824371866985978401896452316291330578841156119883490855466502756128916804625579726948343060714705901068705145551656635401525116805885436248697620293523101926186715735950342183425215191094992614191336345290579384793647660845160654109059955137853993565295560425163325741478984856721772315314313542401810721617582139170356310234489369801411966252964219060485561567735530967009571719395906063383050266957715670599714014813276763438022135381347665444368334974544116465165171423835230420629530842976871268658501364725993685029388745026859973934641149863403775775880806115617942639197146896491636981933397379554682836060999370854551845235920606665264815383021304232295844156794497142223646765031403514083173165697502429999252240872160320875288218225994773614495135312013209336965997078417642363418046386878052775234455794626341438453431558662298408223956376784906892286811353739580323559393030971991307525804308250289107026979307245339726753421369970583978552628010494157849472237022701650172391165498453866720098455804612122988245655419493313518680654613289896604701979106948298289680895139626710343898032167161442970136383585010480948936983206575265829681182267699626232357704004123738378196611680216541916928878507581929104427880501419336492194938964440786362940963394405231533652581905294619966177005214899769148912790458919584636557196818866187280179368751915983487106130693757329674008927307489371556625186211367869150872028139143263144682364721611406724470648908506541388893639432397684247175097472634812144049144864234229708601551578023749756031812117702525657003002413649626623318613827670578338311633650037351323492621808028032356769656038394916882465797134345115127764073452848418910603375209581082746171140454819163539215123847726760437673070734580465694789684081108727937587391538462577701318546147466536472113830377788980356920596927672443271804986057989393521368393224118134852889772697903812796679692832028581580712087843845827822981763413807654213279786749354437175318929398913205021262322362408246552881876769203700302471047425461213919424085136097685154664430964375315496232432705927339163813318636564853132474193411285781161923336263926196733045653618510668889367266629470449748890408165858577459163978787688671741353471007912832722336491267925746517781030272317746889103495455827800663148080069986502201676043145239224029922516787039176768997391832904365409240945677157551979021268845004075821004540820791530804120273033305269304852293862927152690556580387161873586152579747786623157490075821646297883856560879296495305163947165654582846141150803336843779629431003699023590689959407766799707160789162755590213569374501491082980428167628674064763195255037467767362397670961258429559039765313114349037588897256208966681060177585477788149306243007880849209734248178659289643502729787277290586197176191885871342034773380964356798211882063226160632744958889850330478061781388921962638489660224611879602769537033649301398431180722061319818947471976880336785929846115865253329156904226751314744679473314958687608619610958759160595711683922714685480457292407666424762131387119943743206912203437319473383328013632913497893072699629760161679158007249430132059517238390548140899373266176282568678519044753748375062960085952369296728779725127229980271681694546024433391453880039695243448051729918675561601878628501126889252329094491929203781403708275202501538963032017111262900455652724001825988784146865691244894351039875655029566872237173579030461703738578103244180213313521744996153496386106427731871165744712744157711166745789803938128949877142198854672331662725231913067337198782351434758872634037738939731217780875906541717194268166182672129765633233251268450304126229202852424562492058658065126217852610078440078331373082850981090880658087197132426403046871313110986460756281805667732045980840192168452298463078501392362611091572445687312659544555234428158136968665468169398915893396899738754080025045852130976942052457929125153855271301832928105714993186818214267969610925558917503276593721220324549961231841466577479699446423787422585620908523036834843674067973138653533391325686681140539878481014616419738891000598576687373447092040386339190051085321293983201564915692746264368866524688861320700924775611613614932315071038095365860498471467278924158264868695805240552837143283113615914745791450560565930767884787495321431057020155828621715802090344008833351435900725532201204448435128474908674528060572090718876122373695852165251220467243616684453955704446520779242313756644769662292625654114546576726867189599720214176834575250507293880426427711864120534502739517459511097882986976821660484293990645803037881523795862115257084139092895721292914199585841980148771948460668918205802282173923182978080151413057368332137966399920649473740315287946562792679847828021017080526146279812093886906184124146109661844265349712127648373022039226992616667465332907325256467097876039320091570985116331803011806589960415311073070803094533153712229238942222788628119595573877273211356591212257031147511080328700441691101647020276952016697470922583900641988585537045740031913736508658481438167230337802230352118620839595783490857888603045962748940198103573024478719828593340156518441347380237111625983524325620967749923901677332824162446768068937214872842403340298466277927931439200579747233373757488697845847907139822943560474404556576954425933502734773786108060973232094068286189344445234441569507485794942239112983999142199102400210362410677253089008728119556494451989130762721865588562981724223808087605864716067434287486028599106577300838314823878277886920052093921467119010169183195116966682425611685767139098697787855352785009046473128783866726820292856007679123125025499019854600177888076904440323775256375358516818846865332037620991449711070123877819055884633808356229180077033622461562513041636002869048913406801982284305567961380721803917717670192574921536589516835596481303749856902170897451739298494917031594112924062487722089895536752965180539375954670736669472084090728703346466320649342511685421961073468164053924616471546564468208871265763496170581534696486331210015570489008162252054638074649325298351901018030554941285954865582573150511173586958590355248567639562612229949766622238492996873663618912358351617679247570573491838005306937546954629086225753655155167407481433274272272252562081664523475396938803338280161877618494221502343787437357499864074251370867021285126319532198657627231277519554751562054743563241647621765831515671548485721259405085722252577871686092353202840367022622116112546706621474465642819223058791621690498369906689818388149488252168481020236646821821277107277708362127918284886868341735058438034087359752009849618098988698086591607016006496016452931628256442371437204622812205541201644080955103963189723558242954282979627569196612383614267093389208839092301665170559535636661997148278042621143600022339032789213542883290389240511073783745458075713110425243418704666328237147918193728227186509420731124833244219179071778306530298055732886547452979337935320583985760933774037971787331824765271792273028149453678161185839594217545802898136885685465510948530518364113174939002659999462742245127392650576192408775259093451767244850016088881437700942817677628378798596441915320980906953769360247288796104042638544916831341647580090830094541409274517980882244274036319818991476116161383398733580415740927993948907039211423019885422011108864904440306611231930008007060723394099569100466461096909578477931091255651009011619887122062507429696944238688791544519067051768940548065297717728883864583390643572477155532720843247757725045767787199905889127114096858891227250011823036264322526050871987135015414659415467141750013004789291370017728857563171932589610829367361886483636478367185300745894012525871207065877075365087780574192421149545057101081760309535183875788760550671069789527591376442331865645811211738767652696816958856984604550596172341310904134115924623367747883373562104159912297069371428552856605108305463628647507279476605840784179937942653194420950892997652177049787410792618246306037733937693733787539786236614011972480135594178667031881873840868226240157941347927735934938647134742243500400117361562851631038334643246177098724496445155515229024146228170183586456007082452881712413189615023556977543100796303974466014188119168725352279531363456862997711273792618514590045032962466997054936227012568694451301663051602777758585879230744428670616708414977573649540091535099881304441731990279443881553777889599888991673131339440126123821227731383037834222503729771893163062092196416771124606711552420171655681653591035326004694089246561271721288057485196500565102959567689403226214643077790502344365723351621236974422763403652837575356360771452133578365017372330895115723219553791378952826811196060283593480369873025296203107074166487631125944145252841583340561575958891728855877538338279239868505015161049587185264964942906737831624237895214493518383214758373780940550612226310737609393601803523752534584637378614881264002255830841049827996556412958879395435039617214801414422714989297056874294384424898304962292254947680796077782573082402523807601004478189047256220025312297208636593243119919431614422888024457398595515939365064751636799222027973347419657111401033613140512617398364866659502659556265508426382325739397309343292850170546554378589330634592056790643299162318781886837677086004889881743928547502883798102436069225387192813485379703279447743264296705418799211060293273551534480608763955686965831718323459274570408018066140251657356625079794141828128862738148112305873207825586503019794141543784102998941421420623504352890106661287002674389085888668996516851322088046726877497420887154790927755457802074730067520274729607947690561877420149970336627857458202906054267554139932574298290843907809450213636666076080167475442715873984801662931091405699884835544581934933466807709213080397830479701489627238717818029518607370895502514700913048197622632914907584831539836281811874158749872403297957558995603725865758042881383654183175506361347704261179742788693333014389393287507311468446720251871498651751183946268603067650016051335948247404702243337837028097740598163220318906205636161960956330733211604169135926073659677622418920503949695851443526238608482303401626274752792582833823364617746940807663157362609198015286308871849817018471309040640938400873742558526999027922842428556800077873689778825873288986523779933737900813924273885463036969559773681958115519364702473622697488375717839657760536670516372012343285508706696284967288266570025081122364549169578697543501580971214838733532681665091730620976768857286936857265396555071895032605541803371438887417581756193427714441819978323007482147675370713189689082498933312121965188603187579672222251262257228839223105307868523711911484664155267963636308962443122709275730748366798529228602869925313994148697906104499877413169099189484578545281001787466840682822652682204483800920590440238720050507840692740269403659834788111509740503338173896819017294489839452376214815260516012386631375394286659742289144682522814033770620699138692256703328676511201283342297916602574510255504677442281348682063790599462541347681571419168641535306011128037292078732397580882362309715347125330279327928807366501553215696786271946204786474706049042466860140612266344816916351636438361846783669849730953870816133998945242509688305921545600446889359312323005418993812586406956662972047445348398431591899992535781645343303249687174258660726593405616421251291944054071213578119819019699532793011092880459000114771174558273544637371351176959625151346858822092154532717107287570689273512493620568985135405286814974697668228979461714039681765460234317099484799400087921398305569227045036606691345919413505081229020417733245135282678868917260005610174095485154079656685618788574027047883876350995014379523482820964203850127356438944995383134685289621240910301405167160311084745372726969086446479682164978440406632843282407124019527946511456679677407016031536210872944842357812691163762154405969942036055521154680605446346193193187055519676004952147916296549536126369967087500789071815724418180106654539275718569392030251255800996803868129214536475227721863713713529511385605033725108461032774926057709171608998356232187399298777204239211463831776518664371986343501154147432721249963288600531103756299083040409581885830224788514421291662997247900394515013221143459369126228719850408164936278109042864269507122831047877920198713728024801934430316451712812801987793398036146103089637139930921537275978235900829167115467464407386233905684984309143438887401095151363738265096412501266721821777082813955292525219059474388989782472364264476385321139254839560493007971242773217970833178522085936756886131244466062370770927425906784199025151842056401218319500762163572801169156886159316309750162533928527997075618769833358345080700353235434394654829391482260567048301055215359823949220019515536602920999513530764894184617832118001213953454300363001397533039620380879961840346728375327979821263311855262986777121944351941016926245815389464418823458905107316474401361444798915443782774048868583474018515260181794860805961357700305039238539574850196092914160672238399250457132789710089482490459884565850502212911972963958475369641990392351230398234782143115021656184740840451880648703975026314821699170189472008569173635647220845021623669234658319552986012361618049836045328880720314646615012236275001908564857634382312483152257306619616659610222993916941487690647741264887145737887518011105815437273376156790392206236253997636069569369228714628854931337355721841761955408054065518625698615572236126233640195379737108497302384503208753848412265994179338064271629897161068568209665178861628200096445505619625879457105009485616769569222667953616546230893309774419674729354585014740295398298733398137120706482120009805056997294172019867417829266463204906999656655338848014286873932419247395951189691165540517174203925740877347728023047750757670094177770130235264858267314329023449166385586445112726257258195218224738708543203966690187086908484529411832099798025263053715946793338125821297220225508583676061571250091747077031629264934624540498276959038751505387099742117202786665360119645624225193217082518581797888765879133215491555450997804403711400415627281938368779914283527279244913114319826683275069291883930969498289607508457874611955750255774308397342602193447281989160140035624554646752601398070782769198013548683651112628482854374642329674808167403873632334776847851478521285737264220790613863684724133758428501379884764249736860980823432132576872854431521530326534602089715282223800044655564927214421326681462299211344284093549398573144039027620572580642043717136139539928828242035394133330378205223540538458878121259942357305936196274423297260866607563266453054933731550988936723711347292104010509049966397643886330630672033987379120280380795554095487354307484151074074713744319634285146569216652445831417497172122657404500841015800166165322666050552747658618650295610983774198149711820867210419377195956117394128268254830420724018226959454135859081682725616289883676194865281652673957303057536772732652125538131183536445870493524001300535325118566016931068725453246214116007237474692101172915055482429081116279892118828250543220369075845658773594246654659090819613514520913767909012114996225628036825595374408504307162069667362385356835749055016669104692831910202491131030602154945351414504734543605734301253864466739662070656359205693663114544905793413581772228557253352859183008648914584787650791946966998829668903202309801661873378969730097599808670732933760751440353549092017337565605673407223610224751819528106267943274541952046118593588562983860101525109676204568139938653041209238420299457092534789616704319125726522009808016515264680721273373306694199040106687497052783906370847733241188816862049490849229989181780039009241403542400981345353864189517098874547302166228322653349879172488550807791500415155603268988463381053455818319256323560353571557040586763198388931306753266440517971592190661583495761739812116200267082287656608228425516150961957010870085761016684889697562897218571496670150432212543895712886756962845984034571951726529489727512033477886231234779524316761247247540936655313503673283551341485644361465427287886027414461543082887965163339600049548763768251589473621492369642574113395570912799678003821332583340476406612304409539921477332868296253392702113846886823804212216916964595434204368534325756429466112459361407237719272553976860583149602683528827589633285803788174139972346623351720478577800308937846424761723970717706443563730924075202598623287462721307514603317567658288221079580573600897228922339214673507437998026809586043916548347362822735034805811746071660313015878763043289358479191879318771895245795812208828753312839068859678079769620050306847174069122013575124672358341952055739475312659694394440556922182640960137216222525285301064670092145554921089835506008393952097302672435080492716564507945620787227645281994016366364378298761364892297701644681280249541001399260621566998886204243162212798955592232737898943104521770198060480700383233516193519190675690959541140113041419790705671930428226042524595516045101011600348232858164716459947368810307391764945344955352384927152597192167766094780913072891969135070477686335062191189881522672642412163324899242185260624197808540376885846075543709257544398183270166867715704954394523404348041185583173593120706311523949199005541884984933750177221369259055696261406263729043607401137214384416734862516168420206620526241149210720737739856751638881148835912125773164223679738009319437187039472969990444369181627746724426036310413900949467144210052076900211498015326712032909804420332405007993285636439799748077645332663377214590431678448784201095001266289411913397042855664968964080800942756660017131913386936090518746546719594175553166013884399475866517780474521088731570513746094031395552171378461687980752013651819197742819976468341319523375077260929129860766194519469354735701072054762210590071004351427668636921934827514681882933016778138630878325093536935655917050250953551176242965239450469509843739108950945923892172187352925117589273354854281405051640990416906190819664263558703781515400946141399119126170149185162957750064495600664639408226424562020625538101547819303737856137723948465352147403231549723430985199621136148124805849985883395011698069367443251113434431158674675636585058330369706056229958858267667148922379695779992811221694263867611276700752746213144587963273083635433604855741433405629601841517105067655910013109345168548644898137174152086073409144340445251698886021145161179096680291940892875630175847116860737973918116784584718322035270525382906698356804541502870857205229720914310584417816839844874207113465227977788450550582594055079647368089378430385357340745473697200891707481946840418359390581504477474424054722516415050788859724456666476134137720514175381826843266656874125535150435307086022462143213671246575426463211999853462293888379790059245008025418860623567575979954902855234708237408933818633161004453462023643308285826507244617138808285039590007654521139017221387411552996260314367687820886253173941866441660829297906705764625091196371495303222523537120874128790120734505041470287997431837739347444217836366459334729717714922640007190650344368255922520829167535977405842160539735864168518740878760536551950963997041295267280349874766724405547117310303390886522309294178572751890458369679762997240507266454758337780529762056555817377501313273052934268882840532197495749796967452048492926090191883653652238659108137603400091073896881978242383108434621786282509724883938964882654683241305694487308266668966992251496597917321251042923797014105445894158973660445472789208852806349493967509224107403443954699090748857160337702356237481163253881261646386509254357101437870230339990974534170855909357197731081854412926377961075846545806878848673014485094609885662349503150520323967330910695412049060744033999395351625738593063126630796964510120959859081082149977650472520153514679236196751615426914841944270130649516311982945791090486803285564745158311054198658250292215604206538313633369978811354938771023744449845349209690954551341341326274111099397175917409890288546466427829211801385658149768396112781715843122301001981142976023898822777487818073101513702994297508363619305706921190422092006743949976914377951165527224505100868857406916822812159901865029423130977184482613704886771680670729768450545558748553224193308480218295212963896402561546603715090620582055362403036437354955110829123449790992062596288342838449665684898977319903139418950110482282931783951343102762377278130665966340878589549051377666140681159866952160624366422556034767377395449044946502122619927763773649633912038673623302365147166453489452946466177713231059731036966925768789048056785035259068329391060453022396539094931975908170129229314025869796792584937149238109831127913758872245943599089159758785142183245801877841741460067603277357757172792682678770825111527488982827930743803763069781053310619387667017037796224236988098836214697461106131555579459793194518605759364712990694912505176300955750596953745158629619452534792225151342744805580319001833368362851415410975808910203847278571552610225822691635486332945149968277499423116198653500232839503223571303788806508938385969963197321701443459137709069224362097961349142771962591659644036379420565674161521208703663141260774838936643532386991756504843958272590377951380714703602142863859573640284477955943937653666334989631881016101252549543113210027917375478652417449696102244218695298341858621749969445454951282653582849268254066342981422320413424930146054601277390914932359946046487021835467141793409763326537208241323818178381447881194896224776021144588196149620992829944085836336304691298435863919520385655586535158227441200750589439807895801619331862075026678094076010035555954856217961826155963102052251055090167475224135669184490431963124776953611214560129803513021912442821999152051761151038719589767076816430475657467713717618971804176459708970649054851972883523054947976396000962762107846679814241712860668715137684087056803668871131544323507215091610100857039384481134301351050141060023165753372122699010836593959164667353735576295822004748612396833070962634260095411057786932075170674087650019501612961489093035180349313486662465455123499965022733650363242747337423531886271944615068416096632251107917109879654801912459281547092283999564434447222870512991447399771109052980452427430660092969261409715274401430875503504763613545871653223272840875927920670199513203228025116627529734262656653970706767817684791441249499159254943777775592141115334438304392276337481286745253376478308123337829250601302768772700999225758236721394044157919280788949270158678228959856733310037217880398201159975549445339341672771875602423177515746793921477065788592641093212260293894481717158958064494127226866238668955159023767993932149829780829162678679838472912777929167715979867930887236388866651791518587333586151954257527607330830415377949089940107805303090009122896044939562834238708519627509728082499745299417606264187321900427201716147785694390145704626889506398149936599570907601851988139369512377820177951822017769410532180124460414745535595608167938471624641461519267319564492378084403760167124720874069136380354935355695226601247597238518272711737821308720932740745776277122535282308731330576477793299679363352331214836803582092178682755516461512630446717781875522398228526553572322657076793567905469707436562756022602485978683652034892631502888887015226926801317275189847024351445382599789354140615697798394128820185264413915177775307948890866135571383560120045308639447094628002531671315514192618192405386914810727352755556904646416145404449078702290978152294644948064827246473557783546792158569227786827753716232321113344168485384236801337446256482299821522108913378075157932191332296437349141968788176976281443539222709080097612293886207597178495581193994995565738511009432898829334665453273994037645952596881065403257700071513929913302884089253098438303701164141662599801024661046931813029673143595561777432113954712724525415395309540809780490583529639399237323838890929049980178417226658305406751223194645104062666315276528746630651688821127464678672741098989956531576201052208527511840735729155237473294043287179185959221338527427054191803643200266291409029393151826147536075491923980950645573768086716361934906688591540634201783338508235466216247026739486209813828640336382857061942971151289879169062177153374918092984286266085166845074065996027611867875536352265858787392804243641792046351634542354022997629884417734975671822467679884714803933940519448249066871202328034705135591717956154921108405093631673385398731281214036291014706223561765108541162869609041452585138574548085736786532837039012345491695876893671670288510021552744379832611262990045596876168574985582373815902839113759029862311780992648923382645637834777359811772845742188016644761571768452268564455037099654858821995060235426877458213662592921855331518979954017005793250318755423392988715827555591006632062949997304710050454234422174156379249277071092132343738603441208755085111350146589950224220022508573803433986738185169831393440846324490623458656665981313141771452186326255613622121744278366765506884291621537671008325174367947767016594474276477895843889956146355898031616151400906834289681322658754345604543890245264235789615779756060210171577776946313373521460299514519805343535324137741230942313068049246300834829750763402278014684762526049242338494048484470786600471470648173703113706980018332606287296436721131592649853284376541132011948746914125302306305892115925787643608425183557102901521215654430607112703039263775362105162264867738369730974645434940219154521041426717055391281581231734583072358620404257004314502136138117802465224908542159156340143752435663859513983838594094038776161675377989147892356808022303008945692953154311256618370604436126633717947426735273597215906419924826158483392049995314575734835804960128390747014378799248163429219607298342427043977947959153543428094698261623759657264324088828954616622396282334114836494627713824670971425700201398286024546000648680875042785096007360352378923081074557277935759519413913901510679630265150156697398110493286223462424118161139417456127738470794835853671047624269868847505235490234157824782967139840291487485029391304039227453333985798960413924154605169787864105600736006245898917899903813152571311271055868172528954081064709835545624355161454791554270716663252013778604959745145565314483126552528898674108616321072883757313284380767911149035987365762413687178637145491310227211985771707022462918917304137935343121493567731349181349317513889125682139235223723874870857781277461801768292832174971844500707132359200259770308129962104112132105578957318238162691816309501970979534622436460028135569094137608228280882636604499892074195241545273226590487868845128953317914463897910097067962252459437233468249785444370686458906050368862985791586524418396046402582553754431212503401221662632984818117384172350647376308898481340481713858719695700556659322599903373643882064115799573127808513214817195374295551568428707727420495200374431869054315271318667063786668694592723903190937676924986386789802473797447324631756807369860210524264372041667980686353231989767209029354044970919718256147348808428563272609076171406796635803161348085995277379446706747199533743614888725136703861432003755775423467605505382816631726629664524067476291518782203807001227159602998125967890915334548520505389607173160096855366476465246109718508483424006895870699521557342376393400491715820296646470821122289022654423096129328186996637302403762883760537437437653248720536570737194347663815017222347028237199823510603629288076087204713812824218351625306756050931741468820620215400224603282849428669626986786448087262175405951761370759068362998529329763569873673216777789187408029064838881244567794612520960165279130736351661677495972698201865984273902951465249458447901488262327992342731084558018158924067592009547438496086066787069638843827213470655782451027455699191019067179726784342485106685747623966387827902749757922579405908569942443998412377033532889722514857159776579703190537827147066397220539009877757320785712692211011964923519231726026387770748733379872783142249709028375685882663334653711967983909993100287744297711622581383041737580096694107088095476329085305283952114397781256249569623483699504370388412456708409664202432085694895312538694842789158588314610251370576000321484567143788531192332567360898069213403064817824782734966446395987151874612026150078802792960078912854343411523652246048303511202840633317117733498475359325340409014228545950570403831082537093809945981479671239541650749453017039420169392143711449582034254134384685511653400531462688864378627679684003075014011418888148832672171730522018150779227251102595932221429521554600778252578572774028701693608262196070669710865079292248578243630788715021914370699389857656034090109385565154952695946771065949238322880261669188560936764583684601690484784859448635880271507205094157440746713681054504864380997499986012168752767883801065728831463474367643354171116941080550149891005157082987198072948512477625543828334093078682841075921024145000376521651949554845356935846813991296473955539978552560387379171681483910844037977971045370367199234834876692163720099819921464030636916535944201450383688989130175560553086312522216789410066187148516865492730082422943553283240811148609559067345417878259004437320619047235682159752887107485434071837864015082902985002029011373636008200838729331860683196457971776078155734956900341891199442831346387101585827456510894412440634698862659646841442283232708820333505888602446449416107493887994603566289131700307455109735270765203454708335846221671491705950794470808963764493524559763006641201526928671341537785206094774346434371301175445993759098507357937227155302245734461938777404113562649926287936997215169782788526443893412137020468218524188120038223285413370551526525470748849522946638685239799258567544669346936676053409827295463741240920685661816176210596266053337335203005668501224948687132378184448200734144525362874151165070176578708824440000056934426112956695052891100739783017420486781891878597893717566114681562418541602764166190956260482876748196389415532496302456331840338342605572733233356645957057018123525944294091136044488862280265225137506002100273835005334030588004125436635019047692547768317269774107816547473711296608894509237476389473149848644516186372056271114206659800216216203778419902224593633389613143022747693352128135203014229259184643266166085206971250031603520454454252904420843566420219969500376754614389765663831449406955926947437059762797168942267934304516482233523048941322385926606756146207650714956273957976622764199996592070219750118778132303787818749946786302266222149857362062279251714094494633638761723029680820003461189852225464916974896126919209671141451243091064918808049808685961032020807569101899470168028219620932456843579037377673097725249045315459048263093951430657961358503778245680988114889707728630909325067532844644489679811364777729985241580766799867448647180202117221332926352289826574282523335413836319313464770627521069599664242885225880015312598790398289101559828527687323043785684239856030930992797137404103219681806435698415803479443080944133770916733715105793465422867040889474466873080533396800419224488864265112362740733811577590963694901278062520138540257768449185341793697006552465050272051115178191855676556634112969335445716556974328328480703929267332149864023964816790138126644735323402550568675999613823553422551407916795743081778340838500024351107607322348745311739226327034576374186832067939652908915610526081893097158069573654309797088536556764223651849855714225945910595162937897403295606512509962806461248519146909166469169622253724156995611625147574743606707107586346478760863436264038769483004189932196994498234512224043302329718107344184885718966698095125389324461549106797439924529070652891220246103851665344769938025882234511352406700464279519293398221023819817473774882322668353213140088243340023309245752984342060342453160938872021675188105320701033309817080587042270201259535317847258282915971700590898568175891149648567935096659573113425698143147772924551110116606470731107550547922037294630848568833059969606125488767576280457123237137178895673497874722631548513131517686025623594133191258955442871397118570842194166267526623736305881114808871639424803190051778451515352804063739161696821368154189913933227829726769257674006200868668417649081018006857126899961184751075458751783274683982850394947601755992879741793144901058379068595173185501070387802888474659205085903470972153508442469530088055111401988387589759807966623935093926340679140878820369525738292578957899679325957441469093657919867341477117051697286659465611925585853239456363199315854853068703642553655709962531779795539253402110766900603165704201574559033176650112644236824347692096320034454785966678919699291397797158648483793779786929916043078439989795657502887516902743249031644554937962329732501456720374672513563176713569306447294989983232827297283442747255196249159808889945828819636026512910653321650136991176725603468676367332753844432045328444582238326686895389123399415823196145573528544255391558425013596155277254955155629843195336577629643602807293666160797883231491502839484751513176817562697778013513386823839734157449426481473317791134982834657499353572312189191960435552065915173902308522601221787475724085091524022867924007053806655868408172507315438747989663781083065578914946214254765471077097663122100318496054186714788133907916229975999833576553085787947142773057069553335281471365956455286841977088607465412836855774725646588915347874317696151276220287620853198253806306838841754236722342403492678238340047960940079751729686881304056171324464988959690425853404902686082139961575425590864087682417978900567090220693870271995871365523330302490249418337640942622234560551430433661839449746420893925942112155997465569549724112251557023351314991761718518960990966985586249268784757567616342782175773208683997679605312262292744337687738212942597001356410736876821683545572134188442643527022376993528479177976737030555231202379027732274987972967130138346987737752908147547158884366612789774395888715609936720584660879606178773868885610329985780497076014665697431698957259041922104337033684667775360104815105724492419379256694891372718196152600611689919153100845248504948364410952497685100545770559453507992142446049407207463894718165587736294807863850890194084356275964621295356784440325933899206970276582496484681293269253403599992379226416317331880369143197358811796315558205916371497425660132615900295331842650704178861000603157472011676826623926591083379658341255230091797079700048050366504709279997186990351364156357790109330002996548645827143832971830833375291415424304394577213923056551656494723964940634295315768309103861567920160296761978266570410942025861548195205511506783905329092802895058419234181271419369313110636839544173407925894078965908057675155646489275213663823537143234680397391198365622270827543914985302989243866570099326509928373280557014629827585917447947665494746139868632379012529778888762372419155214500072682876520580770440004667010024751631955985661221903707312349214688575903746232350884615308375698815289975812174106842216054763074424107760224113342978326940878224264369027550416845363779664188740548249249464283979263423012526186532608647657184840534536319301155085754625280474482037386369315658019497615274572107015310754800908309257683032056370439940005438061773742533546414791925741057362595882401738547825931826514508026958808673239435359329482441307791434281732751040175403969191018161006238040741708805993393887407292021375670472947325207306301529043791734516715694787766967255831397329061781091924763920536263986782311792673599176051300083288608356001221239271303571002058136821720846537739882637412630295012449452890778234457323724671262543048473946519245265453558486407724137409797283767465834657176802565441906872711126694402802309312173102202446175197962312251709678343734434842888016587881815662378001462537388233365738452825137019987989567217013649560165446427077206821223141540108015660670571315549432073781594252275682055554493408582790975574686896229968288196398906358451254720823562325682464951803540180870917658156229352785483552492566261741544763564343255907214251450171331909136111047055783264559479477237374117757680052745791724343514617629488024377543128987136210883373570921664035323914566851846448259704448624638141628890816991036177377471592577891356848620327763321616321499421851943959665016886609169832765192126784886559765238028548355208917312288172896419397901357960958783120287849783307956007334406775328927255944458192629834438393434474258531175715756561689679895246195045664135382967932748214309646475563351206583130792622780858114146408702768704333581888738365445588586112145413013560696865201535237658597181148788362694217295440369985661020334347669423179777619309370334733993761923554298010417341222874213235981133977001124877220566590471229149164777365502539282810834231827682552039891503312028142445730237364167344195996927152772680063301336693836815153962317571795701434395182162937367174110355566300561010881840372549230571652027058583672355584811612993122422776962897792939352248671713461199707797690892640099049235109507141417530233109532216466617435356392334272454241694451715915509343827179784463526137766941123454496464579320402022613951957080057469269320575127141829997329365215264560281904169577982587532051808385468461171756980314240490821790215922500023271763924484898357929934735519867060552890512038261982575910474164206757186469179294907760640465402023232253246664217114417192931081335815372053122765838181188956131018694570383775614869702213813277032557931497523707606180466870494716655355985868906231927796736932497033587704105947430316933975734772370005949611799142528132735067897625390117409869079741051867569111175920822773311512996148101039664166233109273686952678252254114371369404467974521067079212008140017292453165449630722105250582520032608537895551130138647120484061702703407981015816786962693155235955503197249347407382012363280788639130385117967566398474311635083311747186438278172980243864648673659817021382865091425359306983327142962396546541505358876679719369232812297586560763214287100063427963203996070824398771121374418402040759780800692316888226526665193525209838861932909931601141280904206013549007953699979140468209472227527748464860506340227125287052289799721514868209991705374871198397634541110384034914231813799787619574830487674578869528642655383307845833093620698235438882550082625106003012087562810075452859123339979572175477706162962811070400417000524632235791352099491793318409596815559611472139120828251365130936938085783222674366059179904442510283924797185744872079017292287301604925673943017245421068654622569563364344132979619199251339328845756371644461317410383863196112196743756629970489545000422835061299113353053588862727652949463413466108108424474417948043215531479944677830638723320785170665973389390190610780836238102863838993285915824696139240219175450136663466278774317779044692455940452819858733899783306672947552273900024271410637759200454252979603697611145540554260109995133795415536167352793778785165191621021601505905848643602754665257298801489556342430878920815715811263289408867381805272788083438635094981868707842789526207680647273871681538542115188647895231306255864016754099970218331314996379348397946436977679420809571145016637595274463276022112829336635303655445658732618227298005127100493425160128878349779103816073247631792002715556316404433729246691617649036518469950600131886113104972847876893555936899552151648590563458265110678194275448668469700214188694897847003047885630620485995069578598341953914070180056120538891994651549072286694693824971854589937246340129320285239232129145160372628410127594411024017302111662410463690408649930254618084605556830171536925648998971097015233011828994954456556082574364393800959862191336689683924943765856072860124842914821328984347220259593700546145162316135023355128171506314325339545826655018858039136678714415350195592659427432961051740892720273852472540789987377099831960106174870502803184213950921591019674090601964391394071207470025987821007659052702604889539640918327490011260395385736481833719828074387137115931471430850540380297576149888639517235905270209281864029247448770642993804132114326748442068360372255175079819169579733662716404096181014948605951436352191431969118788520723531374112211814093771908534851585644538560117942766458108851014753824526727623166333704563879615451639759398954779590826345028835579255934957767963088128363294809873357537232187388570325740137577794494894946315907178208086167737719675263791317865759862350001999187376970073146540490042756196881989942637021335376780413962252596539353693902659675650720874402690147770113660353793143095204754980188472388975285263139831380840530040231734461132181715485992962239572029991808303556043320549166010056035875688186089564778495470468808077035280698849963723756831039991660032173408969870542942716325891175994474523820245658768148389002935766422543968434721953522460835668634443146236159398363572318547798870810893293002836460194038678724101344870257039651454527592698302850185238952711041951198707343785658342824727186291412637572323667495165559469247436986439958311078806803052178142728796298362757302030367865867121012414147922270139795129003397400546411186336932933219381632217361336246670827808544888749722407960641451244400802349473272839120090106152733167785741352175027579322921383185880058088951324835067717602587771705663647574124724014460991252561598601151179275142246115474487940112362062775855268542958649872584413675259536556587723160695226039424395877098490700602379975772148593073930562351432490539616786071400375384208830667707227154523846239452791616082312621917347904518739773421443134032352088157275583938855442667137812234342278869903539460489766620974976898189293421915738023465997946417426642736223847807188063222838778850832866916982252177897785062734896988922762317720019834610409348930944363783055265023324053564950611543639674368217981618506093728501302532618748550979192604059963292511015622643295996842233091086718337950324976283500428720607090544562269308662327573914628264343863212430135430512240228257336888565892023157858895001850673631579557733225070093231334399230591466868903388528038682808038389040810984845056227765875156579190029636906800256835039325718377430805984644095885138029951907364028737912848157227508032620235397372547953584298612934114480215517421959824556082185860041566939258194061872090240039758639523013550304270130732528282332992665729751240511143478210627957664732315458587976920895540733407490868033805836349888504821340413367881446527512919503671050608764114929716280488962844782747374196727378196396993095855841730304781202504180004047838746599545075555057862114457461301938496594851663948930236691252690296083092673834883946054982261400212016901120602247005223061195407570976822052320772635751134660417021087080419734199734140447888094528289962275335699232923629205804909903448088924253977757884953554692075353419366897103578802605054962219304177878606536571583217698828459054327588332774108749852922327718520610442915823800652300911720537165632637641911089875260928243634236218619237870923023617804113714743193361044065551436559621390199346674813893627029540074022816808836058513775702775392466983429136050246634108170424425599406192702755529002936325437290003885119828990024038873377050866253176055990703601619336652313434286833358778704383169544358524846279242659841023382297938412450929931622566383250072450692949769728045405104991479590247179775894975185634007244098492235653788281305920990398596971339767942035869867411009844635438073574350489342647679763100441469369512920464918181284914244313578015199948804419757056959971805103048661673063374602021753910755411034221237958544300443068608579924712258685504672107233839602453045243469190760819384321685561679567055951198921016596802572476320712140222030829574891350284788401689700612980929632447673486804543408990333463620607787870820264123347799847201749265123944114100767531603942993046411711389224397499851242290069648031087549337964746017045391440060856783231087047909290133933133696581728282631565275098946654930631904173342207984773245491158137566818955360562995462558934027580250231244606304916169193249905666168882324542364228679059273273021841345842849858789053175178762921001741133144738299502977381021535788016340013455182149415545392087271009787427792617445242418944240550139056455981497282387317277217407272541278482355864498926045265894989163910337145168566957021979386102549443440232753153086746404152978093262631892053114809301845237669317635807409297811829884871201239965591574767333182626738398916622752739794599145625098095275328067973646304928574491724624548176010944488859879785556046260889380920369034510461493419439923720017718792412984016349123857970368734039995206846073401089888606226577947101762746636890797039088568744994285350609635630680278622873525178120371816476385835083667753583128361200814094682987359437755509391523369301129576614246592902041248216983069099937902818594351256399700121787994320403838769374360789456837327735141384433514981133516408438190274860742612842963438367866233772874237661449970825388611128415039943383079605857624981564630340401485002025856228232473977302160235767200866768420714790445769763472082304498701373682861668199819833918131130347601896682727004263232993371498045346394291157192820471597781804600115226308838628073174238924022013264616936360893480745248585053363776193784101152142634127831174163010626659130362697883979250195395269270444757811011119180366498110970179469075634928125280317479888441172388801080577111277942183398459447439121303539673073587060123866370149481017356741500094200100201117095777923667531061165207968912062736955717814391234816990159981076469664154588760957807835471537146501471194630871994014477454450660414591283136054870834674354001713848890785128549263905552002406938185776626700800305911144802361847686391128083889431075185613796952867453965812536374880076210255139542791757978257554114541462460363741835924823423549324509758544954769816979806668948210598899032127905014065765047165661647597386899132799643486159428376099332925998084895655951840656009892088780988618577701478820816224405447991618457137922463706710908920612968826314917647181789120786866300155531344424554919227815414754341146783435874481483588599660091016224532666343184536004090904610963528884763500302507623554037194086734091131533252559797748385017070482580388120015940593031742514947095429979178872240302865491944206472086222476439362641525165914736795751314353605968381458475987240371589229080568598014439612860547124661330069099470433110832518799478158467247880076910354745146933363463313946016527574368897454114137078133500788402775242366783025785836772410104140155426705096483360311106333451382972129864386916189468447833330428093739232001531534834912229325667703898874829603816089684345629727827913055875550171496804509710758939778870065829715647242328894204143092208483915143625833022307401850026400930448628947655781667471456569815254625566320123535999081756536017795150935785198384172227194911735858728622927614619938828393679470650632821861317627913481085130710110854607368617346151134495729340220624468224443944608042607030287235872016195775924143592242179490491708456173246782482433157905611215025465543081808993336427089488770341603333568813071250459237008316275062977179456703689513724278636639484354398405521913908042284499231505175587683716701090061017669328697631553488505385288142826251965732601481436405645706879784881438660638199828142320678446805703406953189535318363903084290251966411210655600788631837324066451594268815510491151608394173696489511855425373554867086612982781581345304269980129947964652576149598663299448696245636425138871820564012271737736771355532031581352020652297834566484689287455077826546274629153394238796793945219569527936280906127805542486560916474874598763326041586497459010113086307697436361768074598825453029336500812707409944310843808264307688617230551022443226126973652959895395810685574970680953510395543023440808221419650075859904365070835966143254136794765156331109984079663146882053216658605053739610212466009617795149778945958500254414819746450293650135764203902277212385506918672383755857316665729371992376796143919594559772294699266037132571956461679578373139839237522473056502454163470121255311783948944669070310817252208536524685729142381881811415786422354027381423914061546956005513132758946018765096991770958957697921233885292238798923713098964607147332122420725120258213440210661407218434436616315769210732639054756963324858610470286442181762904515265288955281600812910276709215074014222224759154750433374610194528584425903873653963206149693971246253931426871977100398110362548766595595629165579655484884924242777805950521408417717575663103430469154433804094528889168320156326838414208642007277545599702903589186510099091551448674480059812616341998758091981395734085998835567798642339723310721245445466313432740751567541651312081535227044410110203494343303604452838143786316341442751791673523413863074946977451643296055654804980957664688597908894433049125327310234432325929330421782356624831335321217835901853062525092678640884585797373492175215071016238543059985819871277411287465266576550835565737047784144874036022840287752373408771882189984281595177669353455544354684477481516012686135981893456321311598821201556920031296234087175560373133313909559418827325714396645204958692454620136212667338633462306885348407657737388635402047067459940504955486586334248059211172983519181076267046155213562396754941042053076389960653507786788869144491281988027387770720767055948143542588209131045273525890138350053289964701069238781785263661697866674587139420358842935924098766245817645651584334983271749440368365586949834781077063371413350314277653335529793209811364475207688388452265439284043288517331095766692788363108367656103640024246592063672893386578085780613956754499852361605878338934335415373031704065131055765993048181026828077812589654603837614543337832877855042607885069367181708464706352485936657035488203931442957417032088174429402539407311460315346131566450107893913482504905666471339843700004616052685844515014713341489057600725100934742382560933305556466860530241968422713215363614014561489770708057962391526240272327562923724447819613918629193188487375863861297908846782832617036810827155854956240599190815191786025547187556128425016579652579290978415190309145890224029340499560469064897008044318963470753318302367426754941432607307382149875234754468735404228369300288240196954777713139327083050559059247876581152223075424662367248828487222135962425424619596395117243074946440192407985011274487384672508207649356605389905803958222933275073067127734691223060502777963362496685380177615666858820159812246855747759266928470916305398130770749627977392468336811052575579990359023613956674835766546028599502196195411485752565910625459428531084965842651681555610543078753142089431069797098761909899955085125321183257771204023309343054406008046489814103009392311558530061242866378036884736670215408374224157172666789435558351711782048797381246825360020119118746360726021281275887763080027048944985444494876992312239684012550218231579092333040497634421940092907522649032231932060127341016640146404721478298923629424709226301784016280282803373872560108542812073146593158021544143403437647252649690151216712131689009057481189106918192649389896936795166886559000737143390375464281455655014683327837803251414658621809344639141492276506405169182803230376718030929185277353749510178074322963274733938455207104234340991089070263201688959590107339425641584867001608567538238782891565289161960693399316156211412986830867533251339897730945096430668405214252680521448871356497145195530726008292311672007479221484846391898165210318034795191682125452816311463280366366041676774024028360507741634810531837701191375963904027517623017352974111525427514249268490773126314795918763710876153038420636229581914349813037424799511392239476039776714100885036053587271633456195688542172483169440176472943873214329901142216099060242508835148272591626215432920962809394481769496407390399300871133618912625525779002707019493808289245112541012142358567099528979880513274394032310639532497618613862594178851545912593438402851965915131244123171284170817265967549607575890571950691146900116426910058817793135827064229722722690704046692663027706669633602153866247349110765581436648020233295113339267709160759362356537389966423339753185458553699662194061228005447683547268226252372654413842527968116963195739285321482030831384860714743651252827187921560814105043950800244380557348648210486712434684076914084492801601450135453507524914325646133746188296222233357931669682348483893884343290823650846345921501501723839063844951600608277030740781247835706594720963519667538368045613596660484515851135874405505120833815845420686629184813632638464497014461428650592627842993829415034022950966285355459443250127938484820884369862894304466341821333420296605653827226291226800781428067346863555450611820584341347589972260104812341131269099938101170517298113400612880598275015362427053720978310443685647765805636715539798177764898158005640355526007395550389329027935788933242312658534266270417721605625734182155928071648334411891668620089346859224774338997998654557354993436801994356906502899131643908816929141483013993100364569577858689421455343755327667684133685988625992095881500456054210459191477254685104673276404695323084399855278961967136699875553142651547100016421291003316853400514533021682141241216688802646545703296006937522351415053618529720952558713453787869025202561608674936752681035651146611298393622023705364351052557537781928550831215126496194673144283228889440091925449878032546009823626008016457629182913425319549123712112703939959833146368966973424053490896542728358754371922327448595963499671372684283427528514187997581495260569946280005781643775274176358195438904371470591439321069198379232431609957099221704963612747512389299324190831594197775445331386374246842530515455146100803046169550484158844078353370222482768085718377267100334116573958096408313836855851422951192291525249950561390474271284085156912883210845537750680096892904209905733543169496190717010998491551925451465552016825276946690781978999065215345996555852698212791633069317112211736632270097230451354749520909070940356578444397278134878382217375100449990914082658284412161264663693689516032778767535953548035047269467319232253061093672154730440526582813288742056041053678128395811992120140153275126711829047672454627907253359750273565549195117200482569397408595022103746196782617523055993875071718220766942285449533964427958844624835108548387486777586604421917239712852300036034165434303332060920771690395637338818027932015779088386594293731734110450044045210407288748515766259418446039282164835197054343526501735029829300059118587308673936662246080658954386531897238435525404182827230474782027271531723731431709560082934986880821795923713813135876761194708661238073582886603851547814309400126245816981606073698571878494105146578544386534445409189474329390315194103757492685436986791064604250194081932878443230860117599582117750462878520885447678319547347629214345018509636329786908007883265722750125870627735194913473585918821670840630320822140243519446653373905285163424686054200535290438050667459380561560292100752398305027356347324631802337182357544608432016821526055468380888307268281510864269319049967473830709135734833021089355263047963618434727120221918354485862746159070624370957260853442851374709841329846558304621946375396171728916524885776441975683541859627040604164793176378671812832031435750222154020465432772459659602949185257458863300740938873696194361777834409360012587117393808493672267679018557629215073339761396396682767569625558967230683398985196878454369918559326123976530325447886489507013162158692532898700821634445435514241683615253163867320120010713059315726646000510557212830189854630786801443975067888335842736237746631372831833760733370485084338589267908121280529515210828223567715313206591139941217482629206911607800811109178049753004168382065252954794747681606043059976272780609288259916204940971464237728492582577691949233352008143692582223803097023628328546347424336417808150332154867361255295734431243715783133776840059411574757778752375790007315674099309703390072296737786687689046422906017397806766640029100907158068091450868595601768927568093320342071297805817285437728078658496564582031922254762095081598189741643071532923203808390611824955187331346849684688754691935098397932095845116971042248154022824749859963821595842859174898202811458639724381593168641960535247907605297645105363011997154413823042931249690542688561151301188733783716257647965816693281413627195319813368122925374667102662207956051285896120078892214718145517123666818438706184553559414500282727184194296628812755525148120127277798359106650325019321993204802138120311568951087205553381087641574895439011048286277564220710386232865220578615791821663063986040991827637478854681980832462267088347131678908544295757726994430134761620272202150630490532094329179165833326728076715507245460723574744615954804168640774044520202079960902396144397092462505059805319235258329072270701224028214338273026649221600315972015878731714370140312970921946503529031734620485206592162949287914909089409249899007911719141167466154959777449614756491186862764145494060396325908883996611012321841065242002441693105935450169959270565520004269120580364671501379808938913836809454764507924786789824068801197446562734608787547373217138302243901161032023880238841276513079008461916558964440393084959227314035214007294466703921947046522973639904904432147867017725285464755085165258289911989405882769162107502868073063267365103571617909838411953277641354179408741108605380150660501050160345407812272427293180483613802839916817345543258239174931736161696229935918394863216300302884712366315316116322570456547324649984980238069487887554099692495703879296520397669153073412846959406239334145425712165633393348095399830504592186477785532878501694904768575414989842704423060688641672511635171929746886645457948340244522160991528196394658496440377110778458129340798592775892469272955841073216125276892273159532271940102139494136625557730821089837754432416782394030911381224061226903581149555174350558249282963812703246236837567553943993255689882271246817455448131141405841719770377472854288254814119290413206573898581211191025782482746142561810071019041964072886375451578400969514283711872760003235381350998869536696726649276938367650137860370129801981020776347695534816565611662886848627654094066988130822907433601286868747810412715098886514548094077036802709322689190790137530133353434986516407218047041062301754230734162273076913498664148566007407609467155632573072044583892523652964136175850418834594060036937954903516838235840534764026592238003983024224820810140674914028595664685764715047288037221096151270861147563204374686189604593308970062840504218152766423930980792539570870562580493638420827999287258402341940979294153868967876258384691534979174363026661128160285376307763248956864664122907594181923132698529832914681736334669544561942254728752495639423940592328582396205553484233969177325426319774710920525695403685344401612505488995200093148191988263846056058511996318704572935488514787601007805851292375538137876688035841199263875962085180364449789753705198550498281308112915845947885613389716836788688933651685388865851482799589333979641789362226841520633421604887847396250467532417484308155530971470292004117320985073227338709265879150041064726337156106959382094665272805572498340178888050128373717006739522576100944853409452447607681507809896483738136161225494840481647374121789491193702352606257384265798466890730038275750056453652512051336106659862552766906292123691035153057990589256964464620523704373108530855569949438005294548029828365855620093228896631089607051469739062153129658073327109848600401072924523478313177215104594482879481205714664229565933426505063056219796034513616814732824748752688327084936833284913307683197566063319856887865746029987031789686775222859275056046369302677649707653176279050974544519450766927204989752760906143415460183092949148627142580729453754011411703886037004941104725000082236271526019760571988298599201491872322896439599440445456243618558318500767459704925845866215733400435664632933098781408300430915895231054127820094403087517287995777553873474799340632374992506272437330333642291975282660401453119202493358898081427813207913754859309989397402838207918816407223851552049287156325322346771193898796647392442644034361995742309492575009934270263392172861050827788774646676193220619388370747496838788039396294077723958868195535213549056334260199420505206884909542776829243249468375393200798869605374943623672178300891364475429079504911843242973831797831854952299130299633506847383198867732992397349401299891002327035208059904976327069329993993178614512854033014331247033531376960963002220473217970494709402710723640495712371109023017288453873743425123124037296454238049400347450566889477017835326523844881009043142980889098160414498647376622610549267716187083963279521962569554003727359417518962684334388593969714441705260063629477382303562709952777029244784260998768082680157009022789413190497951245554432367078714325907386601362724555574279772212518813795472887320238462271406628834975746064235139771976048530027656480310457645369025190417552235474731923905768610265137745800818159602098739057792627123691903122015233991132468018199045716370142198398025293274425642456326571211130350923197492724247989756646113910201338719007213357784443942945531015090593419409665578237795152467277593033525262628956847276623559586756371003383980171791638783265915551589374405457035706273642460153235966295216884451435870402736986774533836433577627813208726015934727233522096669877005501854639269718015600379698935969206888113082277523744048717038960290404097198493987077198824153949742555221310830756320273806461535887646979893360274980537192321864658277873086220984492138114292460872493511956822130754179279546110139343994104647088664631683878266321849315743319537364456943496623432294333723850233283149365272730714096077311872372343364082097782262853483454368688950237786776647294457244243368079140595299664440447423292169784890088862906699632934174731886508177692675563905182016387882831874378327995357233109144852307680181060286842853141331745383998933992403214142264943850413709887450025883011293095641511445580166430905076870112806879321765738408334917160461540704394107976697319757235351527017976731514203862855249771119508907167226062183717075961976519429037383480968980081633391276628796149634591557869963380256859157584435148717934963254374539516812310930183840707868004146710569845804310434860237372974423626625302246400874723404084839384992482275555922434880519175667615312654381407601844083687721796894526482162413274341153103923169959730831684928381679297783880815881788843467226724017786659835604139648488876060413080742873872728689311125229295018890125955753473742005008729306115293905825623708081771375033917499187083482687321029294856536862021311255106201870079773725931946187521746622556690145836285314957385356102141404025058240487943753089048653391769318244466531693096806235081791013308805361362277102240472681099314055519144971225753722846272973785641941134675152289814729638811251232098115321184063512318371201324854928368218021972190725483524378222180225412664601124472319254708352343704418027523740493691807163374863848075681115054123465296117749525678460432238450478251758420219365457141282297684751285761970148809382576102806810730636780480065477424705220271876793934576411482985735622176883967903706939089610183124168231800423973631464931266173396836252725722251628326220491609299857760394768279314380751692906710091163473415559924963524774989803979750731923741928958670956211494281804509917349842770483884636792072009788760421001739153877551259148828337709219808285732450525966384998434085556359471330253482604985867785451888789795256863964818267247682976920426362230894990612606218609229797870913339235386914677268640217874911630071005940807949507077489736710747742348623705894106215310668399004194050542445723806917968014711055162653755999542319480305530772241131710871274443943356690114340163973466993333592513091486510114605594346312246763948701630354689196153244145441975622647769775652837440375694697660313575816078247311966498933527875806148351068842569688501156214547383515776701557404177658586579201961993162672141556076175085498058183469981477361552494640707043448170241149484670570757883571971291127490835365365948735853049973797999981854315320240957723398305238626351448911121813871126732974660477487752195159506698949440288936610752348631581387175405487743755558789727274946281311769723990296600433615152964355010613422704937183649433855034271053143520295903884577745526888366881770319004601736381567314783867184617992684133938790325447063626497660831535449218312772864132705687902032908265380229194411686652027335061374009413911688619235578722651532797544484881956380137568318433073843445998223099051474671251998376985685844277545635325921772269642047554287393529325208921242379974818056453014191119039117893812188603615389534750654116198680775056902165538223116140883351231202862055524197152560115325562528026215295818211158548846652076137664103245333743472649731592244071022289599632975854315352202259854446450839039444782486021283729700467405565058780375223389928303312651196613933195532376854180262651519069582910566952152319777229765591834159444939587791611741268247977776775538432542888646659922578259755664408322816049336334484540240245901223490852791454148547381826214029347265704012075492895781564660238658011400912510452594580563511487393283448476237255541841507670146455779292210162905425916278687631640375768810673066864577434297129807419845035573516092252977459035892193622944952663037348020951977163939815227883898103040120438334954618673009725572508365463262944878105386770896501461357412353671491552959506302848003863585389999040006926844381608025090437379585391295679464294986365126036624636885569393828093424449425168731272615389086249539578957794236727906708693784255054940026887498764063540056634395675588387791002253251897634945675610332178587571014803071183106150538775212034781425172620031142442566856063810984239657742853134227515011338428690873486688006888976705757972630880854937150646839373837387199363687069674941532949071387919682098746278481719891879758704512976073128759423267163083636878245645172145180725807503643751544133200860025359240269989306561273590990430266346063816071599317465135825561206291911983500283697768855435988814185863436586375202586729955748751949320104970995933531951756486910173246341209912148277420533823457525123282923101755115465465909124392921613955862231613951469634815142171645784278496897473156124126840400461853641630734393566971869259077847382506050623346720975968931480829437700785733042678787383642405419716280048062085180469105167398927585507075625899156085033117910593540818370981914957398126280883822451490207399110079603805525707978625443414960699689960945779174076101746987389234636573284705843858911419803729456909297398960431765180998456464648895135064227853482378185119668406892206884845780056853126856109995565971745875597618357742170322422320426053419591298130139012381981095382941826642461601585860330653866003517659530581526642034236859161386772176901926639791921897105970765058278177135433367588471297721894880819670514560079060238694638700873586329070541842547795806247314619391493521254441150716820181052522250462869488275448203862416688392821655691679415106990070816718701467964276260861756373328644763575866578295277638643546784080120051945106694411616079220387850563138229782158157800630276906019468971133950562464930767926927334232389764128792783284064041652297317601317007155419166707914224799965797769214105602807030054242146258980026151106707761647171565087527644821461969747220576308200817952859310310150618777395158093361551447325793007283119149603420116172083534359645415923981244303010534491503621381807307599790575255355641235325167497656104486328009511231901743862566449443473956759460018557564643966988337921892427595358730378215599814816431437785431104102218394338998614305140171474846202500105280585434976453215731033958529457455506942131990736037524347283621707659868504772033498481076673680807867700378799461799299554451613374727816005372510019241381453867373345564538057953310262910068245614218268672650641207805341034375796648615645433178706593633042498122313052279651559401001525073052017415967823088280497815626657799756474306013032936179996751508729467484128251936837167278898306785464959283521780975060649503288988914845759671075458240268497410384773689896992696024994516240132929265978693049707706668681160986525782932478195376197460406747844918407201918619364457418503414137681152149273930504528238338264387463765111096610796488770195175814885484166565184759308049108708819347573469773514206653233131547577317329564538229523509896271695827373981100103836190332728584126619436293988499379997737491582197679405073814570568796427252538806912525482591754915691828108460105814388960711272949736586892626386421854792554001131994402101557643890147833392978754390177218037778204324424849191045706368265259330337055589542912725030679797532438640290495048143603194113160208748804723090342882167877258191557936266324080751113976611952573356583168536468451947223835718614852258895309717588016758525949122969008651528138559801080175936327801453527222754218813984302558797076135175017768985912123609282579496388272295060995878690241128233061428970445440050823359676095581710901732515391988758367870703518899383334296640397138730981221187510639044359153250135899096993425550131878979875253587194568329089102147278989431230082580783083115133154322291183615807687828120070647303967272995618816395298626092358312572572517731690670367260687740779506659769260374241444388212182242068134185553020396065973856225904601984586865628088560926343477591838091194703993425093067350208479942760882138346606249993869487350280951273589456937099314389605443569418077271767618842963473987806323442860029468170375929065042201122687569204213631591812231355637311923202470153088465085330362151109719759228654438959708728920087572587955661585765669110391862097321491467156661249755004668163360201178985348420295727334729451548059106833952068344356022808038114104241930629703927124337527376824264795788714709111843299730968265300496758822554731988605327354387930707080463627977847576411630880420904683435961955831310509691785206649535911055863328794857704607141033588356720204105614896357617992757665359545753656227422012005476257155717309708724380178981201507514984916424505332225890599348407872594196908082802419801517426937266421461450028330897196198390981923005895312468622570653707618441192491616945205736995437099087485204814264985600774635888311857475036901957510363056338483957466437161015315651896882110949014474705527971937420550129979957123508826991583441458357519398081844813032787951872917994259487109855539689696292792239502799026468451435839117565861952602080205490892707810418248441443091258455317927192670227136903484299129328018862200176473695822213631195203951637723264855917601552922432656856308393827680350017891156250524159821490680803638891894273434107236957107318531251084774956662345275020190774758598092945311603354695625394245746166569108277359110368029227830789822447082661195138867751331391414079976883368258755134305738982360261385305625112280883582332840475900439380733822504418468931560522758353763016462072226612541477831513450912036992340470790257768105325100270032959504533942403113771779770955894745920147512447212411586490412130449080136113122994896189048473153155832343994021407605766778199161722822343300049654263654528416593633621080897615327068045079764486434194072798711404815956596077438415897827791236096807330758870957355963881047037274646460806388783672984584027768484998393723642462118545929081398745842947594205416706132601145998464145468017611061252413035619195360485462431057956552989400832473945363530487763106077819709315471929692697297321891004205543351661850163767100346196277284720344329264522185608191632376647462626805866632216512891532597938947564823925973153396608245886517494070196958696194490832825150066879055169337406485824855143560334050940171239559849071964263717279686376868262722277914338327285899023989398712887427246317114229467629053160219157029202839981048231432602738269683258622038541654835928184113939966017952609112831669096441116031312271448629505980161046004359938492207483919888010921279388215898051587661846233749269874724362721140941515278571128634880430402355712357924114948953394520153450411111227300899956650070124620304140241157142382142834298906970721037628483589288209067825945594778202270055115668657613601561007772056480903518626332513429274129784858884177739532008101134635844058406394943947921472843054306551597070371482156099407179725575355794691660234299887743165911984316611616941971982550287641147283771348964041407793791231696249134803188171186964768338470092290355641067705687498616954831098644209057526710034056584311664687929421165157342961427163951369613566316885833472706393566114463793361885467157476771557129162060974688487651380230807594998518603816883486240294159498823387559671389994658227309348958468288179701998200449043858645041385886521170052139850984131048326687402247805603527599316073334144681096203281463615348039222618362859443257300118391556612224186110385669946068695670107469532337070041189892190910023429239334709082582125364117798080968842043781608176656181144120000348983737870730666260459734023669257010674359246429968472227010110234619768612116239545566168752273561510950968114362816449937245963216703243460672118575673577284852080437351268944084914394614376223203079805922493644737264902069631308529868580004856972062822681315728510326882186527817813192697002374883708916455075270282647076466035484315349166283482327291190508921561233079449707453548632810252195902249055243229734037605166490554399186524095859203445932705007822980154282498811021288817402518231513024406489864362469614957345229993094597059265971256282287169709791750334015334821517131871225725298335232672781748255959904919870663663044171764232398903842362877808285432262244294531435126792107128578921852106835188932097764999745769106829831150245731825641053736769219523116230568335479956239560001877840137681707032500281525304315230539376748662970160653970020106369614906867545555450141021851071531698495843755569850950113255904459019786818499164978909488658374182721505034444831806209393799477841377434966723991470230714864081470300540513726106275864020960476438827211202953612902157348764374869272803316474491109409208477069470513178897592078759757531444530072921293654798230368770449997501970969222935166658616867123168570228357925729065675600028612759410879444614502404282867909206415046859317290227184001300961050891877402879837262992022976927757231118026476064666342731695578726918240960537556233431596899632577794748863612792731556979792219283119004163972204362181301307782625064269081994764552200989159783802690707547669847536943407507633345201546326055228981197947788954711385336880331323489605448339099667185301649022254924973185057364100689457913539252128042337499705306384322396277693540774330648105648161479262477641314949672630059463539512966486595382937113476083600924338426396456421227178071353309153501844190592378499257649692868897578044463149492437664490577601888050388492249477209774965563908021271856189098240010974327555606967353147646615156299608364202202224480023315641796599029551654690565360867518757021545319444955741209230551610908533535330863071702412978559191905498404415277143252516152156040353340243259057567446252990743237287705524902694412855335699866241638065391721939818065028553047006038549929907132871249103848288647101952663508590532074703261685904824443892099845592144741028209488467601938943753049848589049093971745520158031086039400957214823636103367773658799305409829196341971709208661283820848286293920660475212664885346200619638838388902997303496096323441819917879079234718072084706343114728009158958037804040566132557491057772951900952172511035508132448725263649556612670835971279156874282688984768387005971219817830974112614341763605412930921365068417250390992038237073239015010734965991598134716375692702500925865455895669970629307106354434874986549127806399349689147880891107673364888945473529485876486486992451052736709822218366147652584889336558307732813023478486337769021925180633036878853914848305102316654757730200566056119800176496965359722875444701083238147876331996088178896290481789925101943789108958481355945571915669481112056153136543428512010922114230830766202064311515493203968462140242584057552521261454440232122024353209588020676388995881707519916975994525075429957677884242646988699364681482671850144834731895350806817450468585266462274174041706938325226496538091338772241477197846905361814308800699763500003376697333415407627110949273753970051057831443146268461572247465247063060335756538306757396662723483277326666409008751519822241360221068116140036293648774713596404397278518586950424182483792705580710492507674804774213271752039958865995594337132631293758934943600676277345388535476250085776340693591937639110211224963297622800586144235564536532143676258788323776402996366620423673981097692985979351645306415944632796442892371672681403833064017655642707418758072629756593759679660533991682188564377094101556676850746555683844887785731507102504795210128383508744985776235008474478268212691216613459117088746996508812196294680241389438150937177728263240847068584178718177491942403695754533252478511533984458386254629181737914000872553330557442843428927600210935013513899486962427991733780460839734416744504307667154632717735664994368201577519133912197156847115986356590415766927036707142366985493367250272771820236265153361353476305242190562228056842493663470444194588212958469370464357600748267808957965866016636619593684144878022806955900705635615891387408675382149808360389676974959578863243531176850213663405908698141885506575236850998194727892756478136341564125651675659655768922626860981318611860154293880145313603709767130933197381933974674086633335599834441405971018253400839976085077178815272181684636866347897724656554606415254475511036989773444887800056432974105302867340420024879870066077118532839945284416838678684293789201551551302609663534553817592046497309541625406892107012724933316120114003288795311585552577130997536009741156911528435768521022472597647311984144641988096408705530673575321171831745747410420251844101352742259624582148546893814742539826149865080066775384287289515037278854666471893751920995292009074336319045292644958175992077588532335243632994290351423876290730609548313049566047223650794225684948018658621442125670570655685236046201113039351573975105984140987681149916983496057666342554937820717049625210289126568577963660214586409918223602366939598370399460845091477338066415886270306807592999172416461730371398431556675292108860489172597244293220023116527558881267869231196351997431487050935929558646032633741189427318550441386615470956737368280999468629067989657656723677815977524768103734137365920757944668896325514188127103760263713908480172667166464680144758106060131710577271793710704355027407022484060455904159523687479974760262435086478200709032950770521618344909696065100032738205087795255671748749282442988188290904463248504002707131949919145530885056253377630733196541524672964794211617561918829312738455829301337512411498203052916952470736265338528064195003529953687509196689322652131686964299342647302668089144232573856780275278802816126655679056692042309215273542996177326255352595420514291917061950008674582704773169965992430650059822269203268905913889308800844492108877135403538485989870229642246258949701619621195301584537649823571460559509713201304578647491286180523698726852548215786818117724137642092161932012347517185070851315091913296535032432074615422089563689327212994501823615299511433264467916294933973953505181278639969397262355163864635760064923327646480823129373903799150475079290894956247856517572948282611570853067989251052157570918976752461935915472549365947419265756791043144411354131460608132314016894596176419192999589549178442897931021972954460415259934137855854545623793184094420926937634180812496755949011521917720532194376970819111582824117209291417348360318825783650962638472686856258329382655192944881982189084976522169056305721871906562798649887840468295044899683176433320245635999149840549612745181957613891031600985504525251768454387162513785470540958183912255246507936133779455319209685034044900964515581956997326124600078703368312881599443823735427473788948685561190014624724248858390508080409330196086590422844334368617219142987525620424184138508423286025274008235567921666225405319520735443127446014312798629887206624331016241933580248198967493738171736829648306448788609244385324273648372025610415081668263429792416395651705663956789202504016515119008951909842103308676291025977718620723041473507422221835327804461583996203953164799127797768977468467161676212562947548722610922652713754787765584083085083333065170719858063782960790550529785087097690316421907711586371555094285291305656537583738308408032808967121296114257525748413696979698722118386086782999083748437501710804550349346631387691154648605150517840400475854206441733948545745085514656890031019134419791705729663603339151598770930763102509661897703784723883697834535207795678101710450053772672101458077399228114903567220776634079361755407953428416277716342625730691770427131832278132718322046475481964696850991049315615083339294742020085519080435503539825147912581243613501844212677513312792539411793571117184195292992383940720867860845168518836554182881343139349165986642450609456129526822402983471474655265120012357708070084591775250388535888086923435031176704905421358258432580715408880162481321414301119825810535888389160317354445268281605504938290288598917535467753108780682365262414757431762248336693519146719439172871456982228525819197660709047402423648687348377463949381895106645343886131631636175108413521086893171909004225962062702073450785400188180338346793614685158622246714737746733429920508126502453213702167921559395513381272101367723235230078777277011737609086863929223340556192730178813409189276928233569789045662287383686918531550919854796951757921941828542440681013059273476700097401555566979340549572070514290724103106337552168769334822164109170520890416172355661287415593690904459494899686380533011044063353890676102569580856576609893773399909292147935700829286493803028597600328032162800130927847585116649689979637464521404089339240607572252075906635415475802791722852145001137011374729713793528154492101532340219978303314819849698355367631931100428955532263192216569479089273880724536828225177323164977325905974010945524864645661862855543769134529928197455622975843199729531363205085096198940220728525936139944921075041148262036589028388538480799271893840816186054342495761191857326938666827990856281543695148923576486317608947238002339216039132896279185488595889461617912324644648644817298930371445670656067245534903174468634696614643137723653447274354449187407651511395038527440973152968393123595963415476448133643828351944832872868226270053053589601329115313881635957537413355443675041659775160801459728384950325393902723506624891266742629725956381955829871941845107955848031230230499606498197648542532157843063714099585402759561166005085180441906376974488779990588309390847702660186932512231248422876520785628956157760022499957447917377606656267188451618439042392012094506714902070607712063501099797963274205571381877817297954388831022221104642607593955923123128926900776422221321209876081053586970914308705402925334051322155825061441541166280310121594399871324578474516957679359666502561459114875100397089856327000422982153518851264420175528618839813943595278914880248540827169541421261806634719458751995016087103492626494463212938129926282237255234724767455175724783637320824624574931167733857662076453843706750710097719627680614899604780734351248821410083872982997248410163464322604829867421160930333168764397972617703585526365600153163097712227819525199080916443191637619328422507846925428434181904534120346323032116714927433102346147316402282307496408977201068840421042289550532993664356262572449156424981591483095351270721513637715387118368096473760455001238468902256336270232167082547728891275401515612911232907684448208447733588962279657435819766055757592339246711406590107934811935905937451246068834521844751836650090135298736206398158385548685865660671522224909499120138725503904577044116504527868351056145806671024198160217339704240339568505351800768287454015788467707689744440021911722846895703876021066120526928012929127996338690032682269373277860381771240501470236719106799496291575879554048527440479813731383881946840708893496935518329822624436620450858137480390937576016747165477953277566076665354087139733244472410228758558614746557935857923702768155839436035186480901294929488376770703511272135819504721729793441825111754688800358520231395314990140874306052618883683360898180181600435633098634867004384431876038178528686705745676408166049589581761137885198659382867812730695588093820363991909634225789844955646783713337659265923495440071949009395558436404092041944279463032138335476867543817862244197238325851371595851015870654785402234258403404399741288244662578388914320014450335840289935684399179433164122729436952321160200172332700777721893386997217803365145156433970474600012720327087515717020063719972456491631402589354755076581156617149913454607973750053020743856654703418877254075032964928505427472868846030966675209594152944953603429498036613164423207367896675816941118054220760880716401589111678808514168658990941063042687014017022337101947447964285409978956133047770143794374244342318365306461994334954383284391560950072264109321995446519006126868921867609945884891557708785211314770214186378382156389315993457658392782443960849493960299577713123144216400302553222745958211569112317417943941571894822457817093650122470236453222433505274381615657898609580060114916232468735407993176491034477795031092875734801282681262078242588151763344343446877912997179859601905648639812663374716278008487050621253157222005263172915253843102363544540662685954357922211359931324222871848129314077387002848947921840011224253105425139801432704225356846372358241459172917195122693280090020575712546958704652060423735989876150800038465884700264666311271066721060584438604344226294071266786278262415864821158116962877311903005251882360758323927817871919080721468211971122677055205931459402461396140111825120934146413611097045311237947673131131563104669750714020920524611400386301548533314442104777378206513922126494978322040868730937173845506358902039907180856232046883875220325706081043496096126828249201848811343136362893478131065594798008651956650233069729034341749020172947510181352506332292663734367312403247097246062330386830331420371506173767697932624218772543946060725557568576322934020456427247863626988789886737072466426298363971252060769202038845978238452132851083021187594853371652916893473901974861602214997611347145643186507377363233671420182362611143145282573917312115106038158576158209002139053030452417339049656270807340494485960986470459775075340839782154481590879908495504117578164733232760530311965514712866826702526278522462606680334420895544702070179919589020587784386760434115550362894020382328533165989301752648013263047745987014462391758499927930515081885513695188707050106598316557369398124102921334057251164077131671245647001525701654809755491181075675658518521476324068043187526539640976252902659606909896195635229005815238623612933355283360268954866849803042651166113368650311570412961573947506040184373549177828095521908189721904814379390663182267677396759489369189375606164416013728273079905828209283519853780561836951461428022312060298689745701762484780489823301905930704963094427494606663564140380529235900167423095123087579170624649508815248930293179716903888446952041387489779552303726030098912364488410589361488212444670888977129483652059141525926090867247475301429917042763978814522962834429586273767659940964941084625501434786404097677133171886765760537329829257042161255368692939944803262088944879222378729491264100166658943057422928991132937361613001612752006520443311672074346494829317486149323321714026997276993838835742549437919853962535322469509260958631849724018092781423599378377426385620820229292299129763309040111496989655841253577185752956078420436511694862181860109926828322933493663780203250039799675217627986443556033668489638424643694591471355048121845903268245038600184341288572926185058999699650655543787451423697259484810654112077501876401871585397294802000369820067807613292040173334583940647602506613247588995954991916604967435554377671175920218123353354188343101742679527247674300760042875151189727469249034706803779286256611817529158764579461176181881729372464899936710582311028198728007530074053308544603834675797750262860219854349290608906399987624671774916392380925009535551802046813731045304029390644379773766046363541879944822412666177834285424804937912356950025269556730016037426423781009558464698911530045390157071474033930485035070026590050024487608385656293750312837444575806682088659632859049014476565265248602572024392421308483818789727461759734629784930831557326055970936256242920485062334295211285822316123475238116268063792513529625464484754708489628304373002937209666781295208685876523160365063875452584212112174536005892220951563784925785579459463357582220094323646645288094084052598751532020223634906340464680018108638883852909624437335063371528910317600659160173076757793249198343815872787169103805200258830285651751812458352106740846733175832184697311793298194649399006957806094615986319566243694219201331416417454725121380453014962733070473233042019637964772458393110682148612396021124444692935840545231520687239548228124704882653104617998788245488851916276345941577291771335648415152393601800061055522437519972095109315220684619653960545760140133365989894504199690381765587942802486438543916513114039869072305702146080399249775979311378707911927238212262140677193640657047272023470283540549961823550066985955862923903828770947567863194553197578631149062092033635404906136904000786896437522064508826084542569332515622290010276786390531655518335046364881179106054362561178976636377598945935902604741262337728418106363349694489363355717256699128588773628481374078524363404956760182677232104442142068476155505886325807824189208158799564741607348404599854646899197812963921077363777254962109994995716032101816720959497512965500973321164753720003035539647849105239686298808196852243714261213661785549175018546969504240211543231366616262814026675687265131298516866353134133318628257172977101942558347276693887891016454854781697821025219751901744933643056155817138869747562767614711898682523289901001487598843119709355255103009437420726106067858316773828400864242704621082932805815554464776287421974477486984320440385067345730620564419900568023251291309381822337722823921460521747413897165433636126292594992371537178271231252447721623774514412519586059361621517181801069140634159868832777713920730820624900553438151837952041775463915700215719927092679357715421291406541728490215898788938495758064934237399959030180914597241824113669846692793135328633254381564937301347011138402582812584069287385788903514774143405940349171110547788317868712312861305632409175180325120321954213965372888014702435150972101003749444244900291766004071346613678868984461362281857900524459257154144185787976438024189666673668732877272118747476438256323569404433883519092047150402112152093348294314619538527873864832323986946844773385484455685189203501746510431693110642665698006316429999473710259932361891319208849692251093279208515158010539727329460782440062174517922248030386673346217936890290178570936705705960048128256354904254986091465885549092212891137183318544180937336072490785722282732238608436020467839857522463094515931356992546710689160253078420194671034259909291473884605322347470000950101462096493267399847168294143212044298644469463075981811392426779069371068816622400281692425159081677568330422427634909292950067130320708601351659651064049347698139952113225795170415692740132600085520377128134877267821023273248861459386905638685558042071997242667958862400018664186407779028615823513581752076481928167095781635881435737696308952503930364418600219402060719559280828342336168742900071888945502765922402894841296242449228297995339434766846330530601185767300218046718195638883586192731478701060005491156104173603634530945761784069575010542483535582305323708978416605024136352313356301572212109562457726901524492579765800462391479997280246855909895187033581594408351459608509143435937267868780738591128530048385839305003821661514168456098524191270084357547970775780298742165383934976037290958942666788962500161913211931343066658437627809293428265705536227262699522087217064207389294743590925068920829678597312324603285765912389253162346413646915898363481318807167862452333336047891598477708048256302339054249280566455260300076185500943562766196368585555695808318250414509526738967537281512156798307461066904639784643932564219979184480198930034528434429534713866102032245571410186230850826278153007250903394954264101934985230484104349036780189174754751836114851282007235639183707439567097785410902282828728102364399846848369561795585872450349871923508351048517858296326922822026784333901826796254801940709383782922695028588066113485241863184392184248943549668905334534599686963802640053016900344379262029329155491477400569762043332298105211078319844966372647219521454555509138911869178833087752418422727482397112925177093165505616778408926018052432490767366818597618618686850493276777328303395700779622887343906330571988302778831667990131037359117720699763512142640633390930505756225586157506157815228206214411590135478867115217927103071309973667373951892963352482103360050750556024130579225963022119011027449172846068943440652315754935736712603031293392680664297184212597087099528007732916624502695324997788452010966303096166373550909629623843775272169658899326986604215542009060661738233708162302546734252401533402234825784606684687952920042887150926634716623386654136578546408653205314198442335434602688699082067100371903200433849017312503805953579289968947945973866697246330395076384903282838645660182272890586622690681143443501120654793605235117144326348749851730619154842894180688927802767486870639480810068386032954020331041628967313211366289847146468639374416597673167722249906938103837908951234923514152476497295985294632751120107605653258044810273134689356495075681463112626654745720632192113098715773955247993218302457182997495716337995975045490604284004170257670937635646239602452480506016938431253184169314856637827911359077951353948383632861828081781070235189876021933075113028538420666199205141406400225306853240120991071866682941741392324474299180781670787742014072222373185204100066837093641727739107770880381739706419655681859469102968145936684426872458281492529016117793608821829039312459912876288150985718428545801462688665136292401566871549080408133475287879355773934187086186616906222283743250725458196085498084146661838874011242242618995420990939803132905462965155105047330089611919297557836863362863193063416556435639738257495337325278607307494258694226211866875881811853661581557634427392599996918363399914013028137774737442933518202220446014765213879711878464802885473630011358618204867279347073873681685408018139608983604859892628888290772572229461988288834282506368956521274294503454193314165503172979661778208621337203084150913115815355138820831332517789423392134841790507196267407597428105262712885448067154595711992593008821557242943293369769464019485807894133753084436327420688847158740315701643399336990195021249445161610954702642828076145339466114785095805874044961921382634152210203229286195728666344561662823425614768158072880995971436730091146523504200395425145770303634878045451468305847135988630701074881727248410401269902704739683269267801374215778347650753431806320455956542242965959550230894476347844488647389705189760140278470379857939983646937550591073908213965669691568480246110184078841850535518788675680732516155651254803096462372898594052931774641558466109323464703720395593767915035676623621899707462207949411714156199035753853608152733604411136089964549354724777334461609322691167769456885422221726882061594374546672189948637783516615396034673977684398534444592655916763727557424587637782717650143294454629151219934216825941584567310300044108536230493692495966728096127357173279451997396477592855806834914259869952162918679703626999022830563292919337269191164759946250244591946503055050870975207553120184969436978098553873897601251625933567021699228145389360665199759052706348175187360160614045103931588254140947885060319877694962669912372801436661835492581633975672480597512338232309535957857860153577812196082190350760144365171888976909508711511346126274669278204550225984457549505537139127599962835041062494339177182436202574658792497240992769798757534127418388579111026721048977744101016865414644739029697711562534150792213726908208576143847754278587582795240106598412044107571610344693966452667721353240829135138266632767831196211143423195902228220080235613234287759266215839984020824606728068233943285467095721364136473447679812803412411908725686912398591913654206512596689154180886863442842052222349679070507020409341404036920775714767323162807760528573526090973796730067509807882130295116604056564242559804406316704784198021670879443800017839894843977142466660289422080704169471271944732177708039502864266383508173832078122855618553443965302005631435594136488830631921990719459230326080263640455353222928884044208086550395621361579611622452416106921060095075524254902019013508866864781260521199299636986553007290721169010058088832174978539589452407544854369447818537890607356251167279380755490816575615153868167212910927181406446570080473898260023768579934404204591105608529128407572444397801549297353384699587806462465708839977200924928579152719750724820572572307072304950592226748322777330519574806445881043766502145070750739794955689409541321069274771282777850266189321398572749713557345933775644175432466662289733525728555864511608546013458425116766739270525828303562905485189642293598479687872834354424801696995425483539981508843315871815428651484834253661943789756849955803052738948995400600510889003669325715563105931063307343991528450111989771732089462673597262199880398157320214814110907401229016147548948922596655485247921516362953151906858310525546129116133859910779003411813117635234925239355385496561051810555099901767735114091036142812735389890891717410383039571998321128483076270800953894007976101755023161920331442061781254244410697505718840635635652643077354174234901997252287259058137020978170566125845329432215983142644050871842946860844105206730658092434370896460361596880621065176105789401742361362075700303137393646053191266054068749359518226423552426723563697914871438608662295729883448286130535867237778563208999287905821623695088064762749365946464284199546543444940256777813472312438275338697279571072612426530383066948535631238656821763173567998962092032290071215796532254400827567327205214976321456244318213839116760244940076210136997095606487877751085645787674342999907480537851088592004161786309347043365037613589106682254105688337374088603137211056486432075066624707502613921400260217013925027405212487254076190279296140202020225484542978537006064769642589276893569527069888499566570429963838011649994155763652161987277013676388244045095286452440162006431495201332409433665917919920999244428619489553496282895132132394822720727999487010101950086521038507855289596347637639492908073042004605172019297650536460836806862868586193199378984300094121080741150721796038001078898173875016038577103778085798256037372898289965592191605600710081839360695988739330620173574195972176180388897641726919250102206546298495146456631356318467667231041689453109516710798025449557925362546158484256381367127919288697577383258774564229716355189585646990461992850764294138924132979235373304932018120386090494104490043529352559609049868239576175765368779181838188057230097637978952916541074194551916970044876293366376940164413563642388804379181122093948799698427366841137843413363824070071866593183985246745250087999279268280743132611279400065832695300523225626819632668009630257509672695849089998147124578445143854571436735721707510789816919893986989751315355068648903347734537696172146072516599428358304511022608099291897346387303132252106532081665504360162715692759893107124918992927368499043923468057068089972254516479639452758886576225211422627710269946204684883470044404643105638327780887487284967879992174232764874890569860374706676838729770766761511283898493269233433089393753527993974116377641834075962857662194442693014107365537713464078483425676901692628555026503647329472153571885137747628227033606509405817042496329170457280329625003438575087052622190763591476753315477330469693451325090234675341550757459207471656804535042541736434482828358476285384616181719408271624903406533146233906579493700621853549345925767131439070563218484576618180299152772351969839537567784992126659454572468075623794424940328459945894092507517426175431768995436189761380817871809588017847660554995806545616077612129652589917016759910280238109325790987840977040647834578250320423206964866859088774768335667305997860349698824656379828230568376000361107596910437692607206668694181788625700764093156608898759259129937495569945537169791792370362267093987960845193844639714216571980595599951596619804660233457765683074743949648998725767981166366444551165913520420556587188568909623895938291165082517747189235259863529214963065952318838270874808529577674165262552682326629945758649130732016467497766574905825868052691093712285787798234517107993141159892941721552387036981230836303031924024888016739583664820086655992810567977977976323765420744168697520693169689236999283839789844192751053163193284274178981432390499598905149073341982764095808529982030434763646031586098366896013546406327237078938570422566604112977974111318028513932550687317223405921365030198649632547041677168588646280308092714167142239177872890606854793224239875809447814520670182335167316586081282182858099251693186409240898986224324186670034899053868790247548292340799861849826452361251163576507768777005510422478627304967412414773332165375749735750789598597545776790967221235940566461354456894204125447079962578094365875712756191862922293296986064244577250665866589302734865971527917499804660108930849832530508003388629845146762079458546534812205630316851751130685806554213518049605790862809651085486177143652383812677319230540855039760552093866875273141636859375645686858987840922014725811346731532857360025665460466521664839608107840251595722242761725793588480952876416526422209471742793582793420559788518670901594602751222916964584871172834401807601141273294291712986620028233773979366854343521431972763428605659696944740412717261235242615149372311132340686854073960613763573282602470805205952712212190192711749524643512480993413873074441044423329991927229764034000855378932431977569965850925633783827104439475291351035814953998903382682617760344552273523124364122356407623031487300864316330046066244173236811029718291943550915263156417981284072953734457666925565159762719426327317385946943366241764039558100986992462709290474388889949273243600317222335774927758917508300138947621365455821964149222095470809591694893333461246566215018640774911465790522791174218572540726204689722013793450037523533090738274331101629708224717581760503003249975918606452970303195484966672149267809105443817478760710609624693145105219109277049079100436479171810204307188377825479252679697529452267783276688135109863995441428981063446542976869840667596925835933342750628293219195344297903738737789426791379111159715856332617623989336312642179585211298252228148881642613534435362349080375533034020831961595066583210802638000498503011310025314874667320410964241767230868305445741492646800844367929378345176073246419192333341694609789067005718515380835501930902616358475834137792772423140906411867303053301478222348857826697509910405153361220888919029361417959348307177857668094767322213904711477877437496233217058925232745199619148689610884637838126299680795187994315332728551389930495556035957008121494712136572621387962290054834683410580235612737653071316360896517971698909108238751869294467785101292131021555192932265654432440453703146452555241753402442632126970787290500031576302631003369425059167756787699314106984671198596838035269231885383898407614669554050177281095057379488125001568919425584305569636582279443905784160952432156649713073456296072995430466512240990750303667869922746018484208471361248778116713280114675238671321727158798171862481806749567836438610785364299892499185402548374116312178003367874196413340511025332004037756999389188908992685506346423609403906062399731615930528572617279527235495717328545308293513573324104772895502397692099702145270064744946136965267706732828577293885505606138018253542845197937527039662678436986482947709650712394501429959152574693723670470628098505430882869739337503173908375417303847784196319526468427975660629961398243719671925286278719809944079025313554299475785529834716630503826974985374963083717758933072872586524154220364426722808984116850519429619063162774070080796586733654078061336794658526375902435076752333148491632811121129947630362640003469437662169898107570242586773748628712989193466602066329285980541010003916142286126873447147480591427234146513563417205674789979563084733273325050949979487032067960240561036051818206945066954505124992252866049993240170608169166085676548052043603695196093923084341910466984673636265123491409210185162340364146253043332141494758809351583912443797447850942931078694568366393437103022087808685718127590368824475300426065678466645152826302265820083679699810159375441247981507215566928003866170867612625430459439372540638975740001979140358763707610649124525126907550414111190961636106545570004659704726198792061965666995085206748827563570999262685563349041243568553071200156600122671630440022158432246577997656403733806968671434613092409392607740474360837557308124043548093583057348498760497698840292368984746432618296176884692259806641050867078979723263661886273453478219117136441135156413068953495273282665320189915350924727717636203850456479828452058245264492401314900796549078152567617053431457774606299043029341931164828505795885871752999259951648289154562838346137430666963623904860793893275747307580886641022541939797484609355433093651663348199363851818128654463861102837353378486943447407378816150060682491443281729749801085686664558818278881671753422968702821010508298661521987206222861167409603018157575313367477881275595313747822463049522349363456774428802713193441472790092895440236831923554079580992243930609399776499203040604995458643969690975926904072892110822353287208353923476755480060158953205175406716111411547014748259281141746859812135724728892420596244376917851592937567381000932194900086660477781086847203197188256394193893186466396499244215577410405819306552765120755883510862077085550764946476779593425480636948969656168529759955602533400871154695157353041150780151250816106044237410023377455320204899526797777139313068357888430161742100046242145097597241873612353330510884231889625480188520225451344624511358637104606056322220533814374647374377355705654452158728747297961238326063366645218353612279424089596826632902705129078534757164138046387763041596086526448344549971564075779754841852351594590100241092557173307203813842674676921384924791640486549033746089901366532986835723593720230313620274499299720349566013245402042297477454422239308068606346588467957441183423413284245057356176295171163112682821737760316008262375406994398273649135467803857823941344371437928856425308885193380491072603894530421119197733328216326379196506494979623133978584813357226018528623766058505567952737695618536205651426261688180178357268814125320848373323947939290390122037319960358411704183561643924413227591941605776609971088286489847577963243998220881491632371682306446846444508600645113662051872247944933695534197977899074416623006472594961373878518734926203944794684444331093060924571487920568056616120220586668123429608611753096225632732744960317752797207576877202747784343111063615209689603222376869393881044613844543201105738288742817480457228409428634931160477677334419504370074832931299694919781683056216538094127632566731434676352841344048870041779751758149420737754605366498536085193127369721427825961981913918227295788372322279793982399773448302328999212048372238140809677487485155968236370775842703214264407455508256281309887187751040658519446750214005294204527777585209645615108219382382986059191544688015472477887866777669014647645145851566454332042309438122809153713589324918692712402824311355729366128108425208796650392183449477443291344759902528990973839115366099262136660955101339008247390996735195845115425714932010023023586566610338467052610766940443356861230969600355073716872444983675793690442223276869994203821738081730345516533165933625996665821108879369560183790602974695580088815283065951584613554435182465234127374905820891747595815198083336221125162686080029838952339295374937850669676860011402007246617388357286089830540783950571615703009236079698669237894271323127937938956980119268702296937293824648089353214982674164320066130249148309660269674035084442768122901625553646882530183606776427126612899934966066826750994183309754564358728220742035739508515432782659577202618890596186786423053735726679365114710922011543501402372058127825005934877185252372807444325085356636505946652680490339836869299809130951491326644948966796741912611169016613332056326696615233949202537935218589047821678756930322682229255242199780170814019731236483311182859648874899046753655758759671243480701092001707941025638999027295597688511992977288104709121144346225903865527002211430885319988801816581395128150789666170463465687361321606975840093734475389584743756865497476401111245375581221939262161662207962038836751640416803329673461800607109744390874476327918408901328067064035230731065734055420222172507977226930981538671197193633819750189028439249682074771024894252210619769864420417446895869325463690267521803512129266518513364883313728585591698759204827397165987176547991969587149794385098900150470221085607145459379794199958464516335078565898790018118718269420728026084295039454786276916446496910611698260977706191031569323385857972435630118259598871853909834336837475133520073123469708755822617465347517002868366902078440313138662986437482580953686032870113000018536009473748162108362620686844653944537605373674458986135407082917558843688427051147173251830453674521658262469056309889474456228970057337011958074881701245580278631724366308079710265565518652515512808425412041079146664462786818657862527812412483710285019063724495052368767296065522236272568393038064639532346892996598412938182204966567776639240299576940094977213900352221850458557578272295991772280059951588652583065808285071795310767318280381600713696953755106530786562939310998048453995531738514305043402384502730724731832599051876322977332165879796968423633438445995651072781356725917460922800148020105765967098085017708637633360355818157840058924103370331309596447515209408271255051919056496179096418779102359756294591146982979063104682098975152873899167319637869467925792815951231430685742224005028009188113533740185026131054202083892099645322608213680634702504552359380844503790584457465153091798556232558106888219901679417793021651070025219268342852601812511244221412889767666284679816538402264115721653749119392825159103138532499012540877996632065826650759876571510839897748788945862117450111288729819954995287955939335883330779027732823078459725715013975815425683193025793202833029910869053755419403403482835422644974045769623263777283610026697555302732273237461469355761663833715935452008206145394044907433571882234412727116715420291901814985712703492090759168768191739172942142958744187461527253586602665741385782817917173066652244030041964058652469543045217121775563950324764864443590978288700758438378599146230218139046365773268882633651350941065391894360898498290152080178793322897750207723842809127712702982471232367055409832687311071550719132587171547243150997288676653136204245417587877316470410404928184585629522259791839822568138636774280246329414960297544353053479540693785874221958809554512722291658375619710957846429371215594501879612130682813668394217229364842330876927237101083533008154973583499942505923607944118425010334237202785419355830704005215688394825593918028183036976720662560336872217930942034535738848551493105235203536312785969215353108999370363829602484208013819896693124317235893429062031564594268486706325456705141620031462834824173401425178786766577444872992807427101407541920787378083485919285512241149667272414425461733996521200594316546940511037934923589025686729505560064908049664974215801641907703023339989805137967323099506236984202730296931642385273012946521488735596854147881510730776342245925708405361149153407605774573063196892184396659764848915335347712581554439921045816939432994190667488064663598539103661086146260500294131211004976804233675128969229439653950898060496926887778293900622282585798330970593466214022843361500717848132815028546442177388014116387117623954304026261097287712734117407308802810671070867453048257218364014634630803501476546458676110999872641393319146998535899272654283573773726726186343179692049864146401361460956092523532959151383320193608470658317573826564850411094201460423020034035162204067497121267477700241566082173377684934916875262063879711437087074862671727960714573099119836178114966515910892968002573554761084876997126950875964225875142786162002917915467876606196342775165220915926788472306433155507252978491641506431268637492853562890587814409636635773115054779827686325585043689681406364531654245284116738005587962308734331301358459683712380678412634867294333044759267084718906589611955880499902979839958158860001203786746485893990319586274252076813101711538503742791384313648934970942191067489669054995030624880070781343113917708796249177828928850490051087362909356597503143158847802631394924527564886618459303953990156196000420142347636327087228929901859051995799233330292334154965832966046096887714019310794217189888520408557839364506329270235074113165190825801523531044127559622844591654413187989363537686796855366543273088927456202253965086905222660388286117261280636744220260615813115156618450647344597665662927552087898057066405232261218074305706143519920687958293364597441293296418656943420872679540962164845701344270658375215782774085707461941943724548371358845602387636402431034000748707093276115671158269848430918183013845711204574155972467539244054495760071144517944706382216552244080293280749623508280647098033722513843578900874473900539564299083024188973273987774561954063472739611907552079724357636273077693444437637581514820334515068852597904841645780248065598294928277365455038576762138449757622218597162622369519143596030728903149851318870558081857483194430354749552533713359239165791456495755795611883701353467313463200465225086557018887794626885559522459524827681177576887389674573921288405474162126144821415187228296452105812907873258346113905416036007493722296396246869770338944384579803211825307732263296061466182474282375533497549191312729851626490968996756867378807743254575465704964480558006692267820709839321496530144264242679848488791044868505488333222438098640392107635950133907401877705458453122451772343194468653058022748483899864547647352829769158546984342027860694353848428017313162243077013335570580038251309313066334188239820230443224045058348412169675663228692886011239963846564195597136020912716616870813991112972081163235279061873189724952791902494410974535232986437747177870320557716157435565847430269674705706855317191621101075772796428932835760371930964519013380225836389276303447112177410673845993868077739348110554917887570399684579429214436498476997764433418821572933649371149401210136005702684253052017220159783997603147238526355790858117283180883172109278339679929578710585218160355720265112835427267283169874377499850461554297240720366651057747176121711302012750649954478732268009749846589843231755381311457325365688357452907432849540443914492302415514168883157631516935908808060271489405421416727418337161103134266330184908744196949266454852886192660539449763503585229279849774224498297229963173584396786660313050592850618764281642515704027145657121653344179982777610804376076715054214565137910291581597116403089499296610163374163558095430691386556280236054220089702067856764845461918161628226010216084323511417639424446812615344064109250490113531437435485977874654776548505160541449562668595357477313477208806058912027893156150004534094775502866690289567182694682240801279170314309819226787817898242892039269786336313402251755843065871939285349722234072009643039076117778040497508912279920827694802884382151287079912203978179999824160166095794064411222184304171415341092093654190786914659184427197389380245095307728341994584745269801559175622228653606215275460454010072184465784185228027552439213968919749915394886954594977957710626678108225581778174630742530202485628875645109597790815947146592872117083254096386328973166522118043345515705745194653867642028757919325491261410110151706244095377170138095802564982552976845124281262560452671011080221508855659193242634825705352133610789790465256936927288917833954765249619136673775962012779522966173709032133641282218667320925542264725055338082577772225445524078967588960042172516292145159839541206811585855690609057249494836872518346811731164184761658744097676385779395775244985147665719699368670912389615014744390366017146740879238305010109996088199275147542664078328001384284439196091496437235066568694648118584573369800824742983708086816772582069523328566692195254346716730224791107513897416603959502484377139335216320051818665223596829575155453000071300617996979980583493654158148953393300306386022293030804995978492017566797389863986886607629995061161205968920255478283870105541263937818656399035057614799281625570417442234113634384476110172290729968053358237021335498579823996584006351239940706915572654638529449011424479791255703494361746516925342843792073681128975041237336448360876311411978502463725542350382753614705537714320972285565033931584230517325796617646864581331557035815725029681338520044383780661529238302155746065162747448228525084808980381118642299928425569105433011237504049810717889146959269686264537763530331746172416653266177885585649617301508189368749659062518869071061008800471343167086558133592588112165074960469053055724280627409863701008682083207456447347389142505259149492715395871797757539148266248948616273992016968566419486153052353903265980829582995584915515369284363977316001870506689841979831766439825152863116608475454762705201982760308472027449341246477126937360543116624149616281154652940668239226077250276697102323375748805265346390911342478372213289465219028604486721511230056397407182728855912107047638670999848600521887541041188173198040357570472769972375893571993287776354192175046418799720642763713029186744800907871189330616265718109311958215755993990363296460413206212196810183329486769518759201489446189184054994686497309414596389229568379216958013417228227192154973119843269280944240712541176827188272357978759252454903423627466410756507337183998327545890468634009958244009195364385573567094182236341582114578513790784945479713645801134019989946312722414424446899273106193903888410256100352555190931303969487607435111289834381035543208216363404885859089442047097004986029936655773464271756446423155114114991312045198383067604625031984967925573627560626169535763016601180862785412174994560473684590905819145630295071945189890326598245675989131979995151466934985702147657287221466146431195861435562347331435099304603522087250212974892456858043816033977956001906906527005103089344547397353173820225096570573860114617329416692105558700034070965895348877269145155764244660899601159529604523751315008373884687333974554912890218686797608206587066887024468356309140627284604304492881940656082843476718538890631350682026812469931988426438082471421747339538442513288359546966585294012833702368410362420317855376264993203833864891031741252031223785550368439029861050917433120365039264756349369524046039534630179838047755807704070885221504164787966904267911959232010439889191787849727507151753962574163507432293924961249290263977568278890304731446692806740394300923990851090345834319051697188234818283114474521645774768064801591667926740450797692976375601187504087364660399311912580166974938332254776570744917537792471654759180652575031214804264776190336911712453075831106038347117179000590559739410015033408673539445894038372132305556602879377449016467679907431063263910566894025538694246124480222895409434623792829844438201179793102683971849099000414849838765116473346679022828498408167719247604096619617046230804243090881134946885083940691323421849516706587144759760072658700566701976484980582137887234253712390664848549362434208848865767414996162826855217831103522566509178259864014335341336898158782722006813647928577430316536631032298474108754313661918643612565801876599217868603434991831554354698643879112523670098643666128678056724351997797802581982404245925767206712411719557224975639795462974988735645643124481917072030306467844931940183190506214709773181297901635188480857977585761632404528548705524575926880304306922487173993188841312400411250367719862097020971095862059692230558030302756953763152803410687570356328660378734706333805436723045511944356594184938849814509389580420996125875576859669752041041982015865779118617313504813115026876954617484353207967602658555774612834373921443414950083677111047383076181012592201327288876285100185222444239402866292679530987175216069611959662558854889955014961441366810675500775817869489651235298247866071333706351409809459135930819899015550130903039348685147774919177120117968836754479846188920771867153020253884138625228379076491974740703508456809406526793570698226961018905669668707469732793422264747528314241252504622646004803236934548129198036499932020115640529615706344474856383163332557088725470916592173727780112959455602159834744266920421517688208631662397796481030578452591896336159447731984658406928927044384438878939870381137296368303613419631344360031137878799176739223248233507183091111957271272027368092028297284586143676880565031844229768283299070272626952380294440928672043532894609853616381650802588331917097774702493549317481506974422769142305391580867862682166736127962923462402049307508007933304317505171582148050880257366351880975526332200387807079741194182413973946982136098505597104334141129941100762287859430210855789230302949340653547013859413223551084599304784284098709198710414551981917396499945769314187309812004803255814621917928882607558657481300482936455578943567056928288081034070658940282661770448272084990753530079423428610220961795192853603692416511867316244949856386386220479457656036905922922669410772769712104500511097001595319655212665799849043270502680209498254926531185426945446248827763408320323026405265336386734116393011496258259526023536418615329250371974664066495240756631671339631696264815433635244484129640552441132080110517055623791381302275880262905490012489270791805397493591919812212068748530780392506487292965175033420738605085941956976542113839998556179228676829325224036881015703288965875633896501692400465026247863484240324795260134813468630944819626817117779290759287389222720778146712685170691619823404637311942650653221024903367176975637608913306426409899025806685857483694672641823060063654513355338946858782466286794488933324692670034450809938428054532815963768338993376572959088556517121888940544302797951352947868688397254124044193809983506341444099773783100454382704033548180973586582397914265573585550229579256717642332661648931034516923179821820113702405996841336961147391116342158963258569801406608832693678399600785654714659161431820765250264075296222944043546999041613225990617955735640875946278259601884980355223551609198297416516023924603290612656463898218792072495667856285141828872390213471711297818812929169414441834765749022239782975071877341447021628267103909726606241860766461830371505907553327322012101245553849307821825203945740974031670825287390575165262612614724926136736943884088703920857216801183003176367461369351736949156517719924157885407314178359557639433072460292183587598918642878884976850842472542555153387205069969171726033979106141368179862497810751363807935089675189444391185441889567300577640694016805933815807793656270863318658376296579301997352204960724933355447773810927366266294773772497666551630306248441541844002455938722405662526796428955073847083040259623688005221627930569130218650295979534859197993874289465844760948057087103271696762142359394244004372672104773088339868309679106254088559562935149122235632600902581225947831109731063047226262606021115164690531539879503790689053368497315818381223789876178323711508757642767403189752510078684378390630265933859466615853246166112906299991719484650898711638240130727144075071209180075471630535072314085805682553161067639136260642694285164611303601530494162066946622663980493619194387181247232524819836942459153988353924874985760262686414175911490203470266481986888539502446205590576949230692372130102212803437568556659524974433647923058240017392579752265334484002161017802943528874713056827893099011568944212530483912613500973953319760307414786225487760821492576181084740608898140385838507278012629926603038630185812303046482186427168534735630266416898424896540437124341742792452535244020980544471679852994846227223038079646024740520846503201990792768127299829371297825100682082054621396313239183706070813239546454609020473670178125962794212389216622549932397957815532532215352759453256844411149601436147126723587857017618919071696135913417191094504774378584674374436723013125054472518772436543113162934431063487908411008678138800613078682531566528978619317688011284424522391888143916558617247117544162243989846873528054071507476283483527532526367993788844571104549317307387533070825169262256992123320699868269117046302937885266021617999905644495362868535362545147793808523919087335520911326741996723992867003923625554989861726524091388203568186570914528140646697232275246538847439537698344410193205834751023439790401214516963307067005725406508889232556545918126779327841709912631895190533395873481303420530854270211594122087190785267775681954127939930188515396480987286497587340794813696987989964230711791866170242287143586966409549044483296307375639545064976095234029833373723230153840164455120661811863886004498382946850115313625784690236104776694127321175409158692514696392094559263996352409765871868993058193922610408057228120314707408125149878267064718320768033223923723616407268644090355266939322749396979426360200515914985845243560545068153433716577256833026854904512587163470530651278379859985302465136949732346824716634213541391509306119387990744996505742614212021735702560491004852303735404882768305525513415536329881799788567136115777108107543468943751473599589839505770519559373832812874538717157857520631554451865526117954857920830961061639777475869916642242458427185123961827497561999974010938616300433971263338297714656162789168572116076382788110937716933356792006458941165954543027606153369825012401826659456535295644452688389732128211565260658299275267603496125410215581520423051195448061202296551461195522147658047231692789394800112528991107312904640113987717306988875356437631958980373575717718643674890610062563132593154619270754381690748885410503349636740189758440212045636010076252772758798194424374095426587242814117903340520667830087994239681641636835441685055578547817559954521656494328370759867564546650324701344880751911273088119074946961434151266237091615348789228488281998892007662206878104786910991903085783366001994277420586403281310995466433600670307651698716288974022752015452193100318526705862236822264511656470592358195809020498790897986826534962426354615767279692130864677137481523448250452673688163800383637945906357675966998420826483194492794662551099570568678834224786163269577048593680599911353098522934821565690088581635040514762640434761634251588697565530982019932209053125625128286514939680512393102677268607291299874325376581983381624515816085103717458118654265991443254869487906768366621803592103536760091592664855841891500245488303544336554469704607684621332542244828477149143455720860205893322469085413653116910758191598980247984828848912123287019667257521616257318898148099631286733778266559141978974699890984913503055165692254767138934776098973925700101414616914152946370206527125879106322493987531042830559223101317174539803250596949962147918029010646213742416586676828793295232166124039664397013272410289777516026647657949777194883515723465376236295683928296507417368690141291659028260298028754631266244015673997534553799233246183048659495051083847635062256788475592033361407636876135459097544402548912514250440003802671779824477715614891530029240761964564575465253678894025498871927479959255170511453222172484720747776566607109647280653856833995618581535394429372700502425527944517294449535940493611958538919947947769497349704968780825628661804038476410690115287166968531089781607542997654561625441659665088676522723212194123605292057472940294734137199236257052281053748758889659719492820594993355122678580941360778738535758046973265459403717390416318876846220576371732086443498410393055871137121577250259273668167351307611670785053882973880073982085460378638205256588655247923053831479646889962177406913006950093067758221172955418253315156560217936628972158022920632979163305111465919832483602746969164004216162416804115510355942556565349660537402118036464986087764594359344213805974403705696248277137664444460964516132294494035562175708199098299272001539088378393273673858686041603845781724920207368683053393344046111741652222330485658328377357418940988525149233915744566380565847158494550841056813707761983599677074099636318095905691710158092914794050892720201829507597691912670965731790736301857921483371259308668246693509328992399429347099988112300261801932497523891003897231711898546720094741662119997718415721641316791224464799700150071397861717825586251220575392022576631008273419807840381371119668286036455992352616434035267684728871710598686858748580487701858743445451044043858953646603430088758712371869973758279268406547584206877464635840682033982844016522178887587105078369354637126794693155049577825970297628042721293701549642866324041840947925939174701600643995404837590340874953280102447247425079640282585249897133166194264343352534255630619899017055649959271530949996838096849297152157031340994918546445767259113308231173136355259510388230349830555959843634812843868099378243252288487133019475510320331698198353179938996233015512152622616460649226131252148561071038114964348765951935854153200430270768008366663175431051733601003777042565210742464987392111291139283459042696079125303861850863285475862617210905205648557649644977861058338443676785015538270509415275834602268292680139082297990818329379027889351488827285381772271125605861101978483538383475296072786041635559837043773047900794289537322033275799019412039034126022106198605951898267424423145962867754331895378470875332920203600025208287641534972510331074711141741502001788424266093634524616942096056247622216189775476013222553010477814027809542356371136209660290194699913024499827391150262753985149558958581966786189369012790416427936035139769667139922727474414756327261925925822826794321959416364961702101959768674910211739394315416334679176625525992563932936761179276098317393190976620553339334824057953552465877859579557135142739506267952633476625606604515163756440903016114127457392778116822050419775569299081545172178222451984038495911117296843269059875940127059601314853473211192184252560111317464134449931499289615832735262953895014262411967321349268975712072440527282478772860244785859834373226036550997302338753042938824113361750874460697611875865095284830830743491399652460525217401738862892526968957239310268899053255098812778412781381257795450669436041482768353675983247470989916597750976885053598316332503359045288207962386865115076799193267101444338481928707769703797106956325708709218537054680072382625675970655957445510141241073592723890575870541516589261531646079591490834022037645992733263252242880662769005965491653939390189248984281129734788489776795792107676029755914469683941850468875925116450717636066198207181683940864977131653350300205680465007689429945224845540896098898446365853003260620618757220597995132583518428206572889595610540138810475942281929741682485580003143138805744326852007463940760150814666670164491447505944305204828363867395039978511577291651209542590891012417271333747665817638980647179654212832939153044649147972694655005275997221570863369800449410719248833843070567233001388385482138557164974734528112020540631844286940750930774020445513670543082390604366351247988226817865905139864825427260477342328645623324787248961152366546768470782747880467667953487025519349378668099886675628968766229821880681804757258218787751359936560610234048611060271280182432775118241245834140770773494001932325457767573818644141671878044898552366172743806384005704416481467403994257835632372073930427540411674453943021897823712414532500949650710199167761230581812693526435696004888563869004136446854252729795434048645670103523957348682837747331879242582667267195910753084167117689151696183820880113430673465620659492642995188629979375971907732833241946341552404802533883101283269986355188650835384873661626932987038911886403696746144480700687443923297151823020531466643811615039331643724015027511736123925796482734792683834039485563116682883995195656583498818627487132295063141554298767431533571807383879225058425755144690944540838829966532363536180406804126685119110159807072622272019959868736618809710219911359440906293315533789934987610006084487228853136541121399635321593973483436306159296293828324204487692234884125546014200675757318841861644551250727591986698501662253906522399703866171541151755285503730737738126785319623050808278083405556992101310668063991614249282403559178389712678529580014546213278000692558809380263685427683912785769779180333414412432960243267609084408343321572237648964898533695162556354067683968647495006398848179506615154990514209350343743709602520246344808667217646443441803783150434069046942592244648240061905182409465101588329637799901370695209505512177145764471942347281480882915811909686733748988763438533571125904081051122584276294644268980895726109482054332463103863909441136509478374353002681481480500109131266691907960450795544079515691923943905787823147709396402429423783569528740574630284032081758938174536493975089896802798481153786870876560623760549897919739774515240553999363719870419004376791450578851946998803345117817676695942264885452003733924438808957085476236191022627394448393845080684766310769739149450051655978374372813594670805354039414645885839301687586201916292488843307416074987692679472661073438743032009040677324308785266412757470038550766225748709310556056951388674729757909528125439393997976729131580082839707693822790017611363690152758670792105977873087758129204093662137712179349230013270964267706552292135112146323258504337903459986168720821667787347386510316238328445142135367853631936719305536107774494900546122690004150886969189858207910485737235475618243672198304232585867505193601913312001140744761264843794518160150815303871197099807941992419286647487088484324787984067955747248904245422168268778557428951349343781422334196750899933499922832131852756540063526845452145197739483333896944696944966075818427191913893451323609141539785751539372066395569875799294346816871429982105896709815430702181284622417361342366731005028415909100433449140219380102739006120724100044566593751322963921261744468754308305560223084310451614734906625862393956553480667799875316196562014208765102624016287514155858699916983409198577339976772369801586546821762237677742102589499955453843893071943847467338316419697273524844217964855921741163736852686270058944742019095652329906571678454953099039655036934745579070464106443920624663320786535196276085569347976947959110495538099119496703438653579209324340298578625831192992184932373817615419025475851366262340853569701512785636817778213277096615343495406574070727708652148551892869232843557947889918299010741649234803364619070486479847596134551226363869512662689093039391778935079334416799982323436819533132140937731926720073602252635892215559468962725308762938318992294378872180220942407567046404287883153065666514016887292863067713144107171861471021491012600795398670668405191734425079508905847680231710364360275201244291045269375921261319824058631688712491391169497373293865057237983846998074479054011392187996389906253057005749049444277587097219899761317379388677464051133892851780887863235845718895123516411081445038782843939692104301759230175846895436455750452117407684217037246540256081653192713600559972866865559978124323682026469455765854140528795373472529486724278374613401115250077695948757035816633116169937304195319876116207928609705114132667986523196951003183916665569577750286262250773042899558139070157950450531937623388728174717453371169031117928286608827316743874263383931937401098004454191424991823223741813406020322484081901783597468301527797917258555051018390042782046977119681892185479209084274276633793494861120661586257724987711732112883430909738433427207746972168770481615659912087586337257601515527050706524838876392939299797690701496135466926246132810002925373613305264930962849094935548054229596159031773295306520270067373041435921183938915672673913041939152660183069437655137166209773191839595581509305120732978270569017830994420055328036287210539422432355420520137525214304510650696919463073030764097709435684157879732189148893228046552053908632025282551165887274058479197939708615271610433418417838029597985132049750072083602466873410301624216302464524650068350363421214657178126088717807876252581645117518530217360891777118844621235546002108230323424961825318464270089962510918551392137618501939862119248926134796148805027890152235845420263687190353114948021626063424533697707596638055500679272408766173637810115710788521898487964507947046963829848700652726352558216428039379500540818592379134132364166596454264118103516201069151529680727680258743188100232041048601536634481514092349966716335060087148057839142615274041915017433269556040447868616758988835642105756569661647828148613223531097627995829784816461805990498419361717859691479068775989338464337358219496804789624919178519559859201119950134098331043289058803812934721976984099543757877149916018813940770664919172713234999014965646292892728306654279029112367611435623643688444315506579586795597863013339502785618906912010423621320802356115550370301753812912759996191585470084338466686228548669952154727249261858119116855730096146958082407388812725162614020453742419563526731206315832631177840327034416412143146015727268369150294594590251662657907574990265114102708835976033536413818861651199468261652569372206756149368539194653041583918134429835353866528589039385727059069797520681721480368752013064207167053036756872021512801922146932475521656196718673974517161254986776640578263224105038055676267115417758582707337605713803158653678269021561905552814685419471395423004317487029520490159445571875204729257430078128607709945236416374607779502536717288159133534454838414360033844857767210641035291427652616164307890947287963249349715643281451170679118237938690860330099173725155476195575914245010956476247624086892874625734564419134100937740063833015987580153860941662784825889805276492189141447503481904594379755554269787901181619544014870925373436371266175481262574925710050655700748538385254162919353868014464768078147396311278828483878012293501035254096164504725541064607361578033361092058674033950154090027360263952586940131901690414259409538246271198353551402075114623744132825043049134547699228720092755825174785663477522571601847993887142205550038628777145188022269097380810815657122338488721907983742260691611291677732253029760595068654620391633985178276877498611062885604927754007889718267069319141525063010571847590884246581017949754098925183547122018814748107141441719113278096125361339074632573837843443047948965711176037584694649287862677744534116583261856264721243883039720257826815574681064045498039973464647771072933848294294846752385024295983172510406068658964925794190286754282571830245826920055431387570976174972972312290462814566105847257324578096563867042190836219191899917970277809640365734707618144438442392625329812613663508353081655538633107439369264696738936060763776054721165959302403294208291246673980120733438688968971208182766349699970024667721003313113459622672869116644287023204972184751700483107520426580822342672431880314181597437970828824015926333048059432716971467822278813129958067254577151075890291170155709568147689132582069313116195423020907671541035759633065344210735117213530412008312655170604043173714092648134834611146708287142789976754732637055975922361979539245993481749644782331786269211742758794305970710323888528272309157134221500066686771101370916683938287135493762671258474667946700160131828228764208952019072643505650570508026987250853690755383083574546204520071473839718540195981475605533191489203705073425787399160073081230889191479306514100289609251235119260809387314111381383075292441354936331316488718553558783384978318308879490395805067294780773610896915636179863174514849669777061697937224393983220653927128991844682401542747693483290865816287827881573145541469970219989771467373775917862987019895296308801761313137249805732333580064246441961834556933341019658632674161298941490754176520937826418506462631103495303753817669453381607444818385649278630266834462127282397801467145018015448572532038838377755333655929051575005375971575907719334246083054463863373578475093947961009566186292977824528681163605190246079957609825540362297176662672796075464980246890529887162558115319394225003691636675724242199874493684644722418692754210358960884383307179187307765746819162538751910803219183165888043861419521100929820320950437511229973889691383008152959842926368332380796900228011702696163837993212741621050005990004904576605615125067541049205495130385501162034172205688181889026373800338194300075221430992843709893493894453352799230172411995677645562773289485382920384792678426184119063728389809191468487130013588234147465777686292737877525519896421450415263852068753994871727588195315394192628016960978767098191386123228906925390134355124396908076383516153436579684751291966145837352130249637771729902797130578038956730982426980052213639420268404276350841110949516305167270196752272712831401463239572981964414524828419438351937051170729129178315184620877936684242704954005899059313167942920902935986969212067454922020934699317753054287131359707153743062339979467446595047157326595071963916004672766380808351496436312327932129678906620494542484973592028179915536424752457511391139155888990622159836143131500593240465155022025213466241191646327780955982032267203676689766931988431987321033851585191422133391511769312646900356087797511879867082699585603549450187231037932628850081816746358272210465623526211877315511109893891780920093044402851238550928295951083431260184861179181132349729211315308123108102072594671914451786277586226470410239783280533006256955257273848186259732976569245743669014860142651903310262996649357984025852987549148265295296500435733675150925463624838857692154138243886407365907882456590516439579538959047859731909118272671882516421571061080466940391607375193351721065245361943255195440681119936934465700191914433845085364705898060772137017730070064490384738763263724799150293979994064352737735701176449051328925945445633275478898948873027766494837064399056091142091261783241541175483815048560929131572698828808077200990630767350953579036514490686986411037495267612922602805061599909994323457135252256033439661671908814661038773172125154885616825058409376441334583490766463339739181013988041409913272954585703980086684424965912276744440682877236862431497027169654914433060768373437356142642448186933643594372835538212658774695574909266020063219905518957475149752796554215258624641676129642987924201503212485931516852561201472231763624282807481343198035628550824495898144274556291295828146499018854258762432493739403281415366779421152845070961249887958635370792087562140624066797815691707174603375436131244853235336922713097920325501923652679915960450403858014738503523767295902650846689924983240150853246268760372452420333883619185880678618744290053463464013031912239572795207055733518493842156492804017249127053163657552296200494693655304020751263612742811417646267598554408483778735729529565040201420663446136729870285518242087786878498415171286030453850706041794356569770878651210262777368706779771774163639426677975668592482377690067667358461479896446619432273038438613099690768293281839536948086675812779367436093290645256974690656802376889438288547253749301712222515371917118779438779639257967979550261230257270025729053093027209636121784353023068300619465403743323028117235256882920981475889184095498812980972424864665827446485585948942167443043882181317841445647952292344605874647782355144765232842831828731998982918056628208013427453899745302060023693433347333090112092024307623430027340201450772232009297591831590979568852324075787690313866874916124378340528260084233231181689276541119150021339888409506723434601831777871454874511920279355907515053841475331193222418470521592833111882972576595937196084372903230544487611207050132664691438374187531316671103917713443257930258968620288437726880017617220900514996922166892254066724025114388510629083152221907851918408629339000002996351468028222219648343914054516826775044355718309270618242937109854833015445389192199200229206052503307877624395028066756963442860565718920939663412223435302510237495792567289266068805475463182174949938136244247205332192767064046159043005248608694832133431707133916750146830858200733486236760927098385907198908187006196945701431590245360004286599650529449764031275562894358378066356190866742969531310997366727727579268215484615693468370902594343645408879074807460497975677029706859068648845873430988112845152174557411135016722001694800792527827073997927758054035961986458323890378167779566863773373128264815994913064098661079907560540896313091138889617984253021535877766167995569055208315764504191687908742946225233241427088494417962578063608279659977621131947976264286410523045737717245915128683141897984809893178499544263924262189514674906649773978444449841570597906564622672577124764602620652625933846122252410702928595196699547973341893135319310756152311204122275684963339530965586932454181526532347080289808330758443133564627486824082751063267495548479130941215268412723543337151932307292698636082838070855786572474397910917774154697254853757657746068558935291676194246555460721491129424956916407271684896910096711874309642164259110741175910763552688113019517272973872492849858221767828682434555698964894169020390663718909630958307408939219078283748958296678053253644208204518337715985259695747605387654243021889623619282921802425826794385902819405947042991756382770050392248274458297003831537835082755434591590294534292297472520863332178465485584389324957979132852449225542029037632198301956884169127470010951478191969253277398506153025143868316327553657357043926293705810384969436516342668716630399294513077121716396962031584969097865238433100700522896704221663778731618500501910242738532078970832606262109370072645833928529652219384778896845085441452841783934054702214892948352081703313276882751426576779520444996844362012328130452286892117648304541423239249432232707661474466797641978403537633853453033547781536458274811828964206288907775583746023886206357125599614445437961244428203815821815378362956516496707490433942762505135148520377525305193297187320535219507905771009732740145614140673370377186336745390455746427378764843038238767842112888047889633063620480433219878331421832432397567831839674851561094273685482488856891876170732732063041079762052687478737094695468377510531941935981733291419971066304668438219098165972839081486782102420242725620881276485545373818857579622502627809150502874278539121058016191016979902839282994040461390420278617481854001974471947970346534114274207403547494996232803111788416928645992284059870086609897470101243081547790002177220841504040224250812913867950090411231070350127668679613772501382541364807219123162111500699640055553744362325781785684366926499286040105336403987010375618479252971260667087654568622799230579222135494292234786540349880487830496345838660206964244969822715327652540289991423357393139995611972333882641629311132578329381998560297915156849249397147925619154755926980253934271611742546574274788327288500216991785291412724210416399533595650623650848281065735169790657721126293065582044217920077482860482687736771635002503555707737821518227291550725619734860598182278717785845897146907319830568569618935985226012456239804634691276775853736962679493700914539957704967196247972400314074272358352327803519024031538087557501724097899655976410126388815671235556283509425821153944519023441566840478362982350713964200910897153723439089765367024369461015429989027364585646780270985101562710597710447650760629676192688810681936511865689199885459158690133548905570343499766556477952523033163029624601348941986632033321926283209376623334509409492248728148392051156476863568104127306269864066693653930593974354321742301900108368048970045865067063482161871670759483184637586942283777093064263048155523227328085172298371024384809417566892511261638544634888464036413680089233896778550335460410054194117014505960645320521433394980673385590927511450616160525907422904682476657899658095045492659390269703865458357759954323905657124356464257341374367675976500185685940133806050967309245469753286791887243261079618646180872362395610841973742906195395969070396924947176826805885071200502982150088977634505349516374284286386594117322044211497731846627243350759525482480284177515960716317894246570765273710664382298613445832443675688746987179352767048465860272992877681695535677891753050016815734300588371862150053602358038154113829983975197276508982621167568098047224747307666932108988567812175597935379806935247131484686794856380311757664876050922234692342905715445737516545609959272087254974106601556811947547056300361391508192976152110797905351066141139419035549875591055060152900176517864432863297935929347128278129638942134483928728709980056722905075037820563418195627245151548912575998326300477730949955565849587016586191894822408580686577889264440784740880252998071133907722000263291860780244985435392225760889051006644341288717595549722833581567180574851156730556565531993559013499061696001500746755186584476850604715570727886502294270811668119168187445724817024399940606387186095766621289857084305572268166297120805524127500538687013176517613442038931529983271162974843162785361464779547810423741177264879305626269330270963632688718060595667803681772643341080528164363613058514677793050432222266065653752862668957379135919530776835857583013561379283413052183489842059648784200091161082017014184326823324942416713373186018339046319575821545887278601047724998363714820906206901207193039613510959287447465378496915965816922326190550001014951165475523811696356259396944696915235477564895355780824317710854301973444669407754617948124460960797628108036855978709931899065493365531290704852681910311623011792535776696201896816528120104304254823852965877098137473882266386903809858471857275515418433620599965670137404437474343117988022173729202474547008410810257383375094933799218984189415264769455630287619355820214517706712824471227781523946254126866051374812238094325192219341489986893693863132231736419890049280266782618063705452028932785271672514407161727505558670606297088341913886137292862347896441592175629884744396868372142667614905980537239464909874327309886092380462509998566235863084598495556538011600940713857101771156676775406535801904728373200090228558726522106681918748950770690947608031595942094067096398932820740887163987721699767441058301132856156823391689452001992820473275103797455708817700264508076391065608006262999982818596023166892319066331283903920043151749844852300938136647374795141790334167417264424053484103311855506185449708317559373201188056652045624102947375491808624711273740129932968210721722934142691480370855987399844617371770379429795661549710760175619222965253133888745800049193154934494595237925256125449851318804381780029626326359809309637275473801160518819940818307788415514988604027237611512800479786185164473746970787796452570984307816422501494462685351208594427885754590203030798527604336928230309860208431960997119640929420886620524862134205535575149517842706763173298449366397585657132595488956044965932078137835081368392415428396000668871115261127387345467893249202934975434327351055203759388969921166753828285564372406087669904295330099366743410583698849317801244211029837223289493186562227655951620400241332084090017888350393463585917800646556473182550352289683973820430120863459050926350809143021548566697374574565485980778395485691037552037161855448500534124395026711382200495338609839959976056757244183724470803034852512155723724408211903537479675796164467240175790335842228565090861081671994573276784925873079580639121262517347690496797308299715943542449216845064456968216859864462480659157078578389562991626256762406091635038200243908286093649772127711196197948448830401243196897787466504400912938863108731437972282497652790165040472628146310882824724344584396049857921054155546173962164266203657067322136612406166306623361818365581399265469159936791892168912748391218480489014510793957398877980788360459693510467213637272504033537217384722310082948997637229364192011617214878034687141808395751912357662486798706075261723453424189476548491223654047970608690683767306152163875647691135299844150800385048721895366531947082380160130325390324009530079021025585086841156833144275618912883252320952753969849893997138079894788133608587636724889531284025100398764887078678901793413780158889371494038928205933492228050350044451220827228658221622964118503320467477252923232448236048557674458890229895928873760244868260413182138142308002524872784088805763761286611933668822878154417478253195379468328776106742803914917929688957061122787316910859601017686176849422527474328026960873648525983025492823968523781052001933472349405237630544970557477868386316041525683538896816747073633187412601630836379852017452054233238119240473704335718191289147207344550335631177425575794494092493720753786712671944836603487284951844511940626147205937062452187209209720549395679390250440747296261140381475635375017138412057166552625533268823177974215938775857098742491317164108196747073152550649183758694526787465263210137849073961997309486962209542515856867545203499897995931250294432904263076433384442819936436108634736917471549578521932140165662509901884478978263874752804833193555896748875107856047389092897389715379570184707424882864216700985492631597532271603530496477258413090699450555550526562362999452597338084893691759346393731418159695258336964479048200961717493299137469993621344285912396053287574814639374182237947305497021562590340310083399656161407779717142783059966433443707987356363704494109924248104774099495781696555765679714164977440037972016758161034027845114145463705913413947713288308202222459392682241763548300565664834460338250587039426297827702404629242612924746196474701459473661083884262920737113945558737060606037993227907848818509205679419440977869032914631963584567869496230562403767904240883573798867722087708180518661474429605005618522340625169167756435663250235967346829890062277887162765819728646315803093263456699266732683976871703823624493763236623538177512338513622551732861273092757167826652489623005702821517061847091379650280687443269640612164089574461428392001833477450160686919126371722686722340589365173828795978937077387480244770730904221355617002371730179652034359606496325943791373333633422602073473166110899315176177511176016601651872440891311943580783528033641116557674506516280346338390273172838414192365844935300436529359051210439952712422649261870252618609792105132382895174238343677230527536422949143898236623766126693082825256718378825709704787032227882782895790774175364941312412722345307175626004989275128723618872590216084474730480578711194519840139724600193380268505612556918992435267111068305454521063596467279656569384359261013005593617727945287233483403754030710414719186333116193527207230128405907140283142952436558844928043377173061114200908857319473612100277560867796812737778962493524560220341645497378148288682009675828916940969959389074537258696831578586854517856884207692198903674515114355569575977349740350295696061517790683732769116785529560976534621039235971970646017429488760429710879301405525294074850980397334146656969016253871325250361238456697664194267110568485604296911053903608990933092607426599523998838316677300268108284332040732774102412418043639890781667900618515883314238836291552931470245316337878292531714668538771792094872502330214140479493483731081921830821020061226633456064089597073719296090388705957512225375111935201653928252898548598449490388545955886151601484827118808355020504749560999639893374902475855250471682457685995517479571888800643127238878349137050533465375360423866002657296731431017021531879057339480143345946030456795065831832128042636587691756092120684477669537549557347145259887568233233291355092022906861718733236027013743963425626620636426111242961346853860179253336868895099026710720136266350747549351440498097365568005533588957263007376800054755573105707589134211577564147926943226169454377125435099863837243265329327707186458924580269945109793766433698788231301816229215760308988655377268883862608747934732662449227751565706878563615151387068477500637771727816095546600308095484971402855052095433819494062432475514917393993943556824643239596730867454997003526791697175933075035371433572440456291967508772193811276909777984126657515450384621470354382656458451268634191689897860313210435406836368423915633154607927951359435893134158599953426961089805663378765281732114347183022541428101708989334029003561914440717920572986936679679822871830023148630853155993174500912865190296242204193317736676620469572038244193006213036336817317093778766713641552333763149513300103371105509761449657356539027211108472081679578740257819842521191486052196310831276815423637747103668606464747040602650013827908139830877111984270336113955422501084685042589758129924888418811497631286129230370629390184515379856385138844363123892092661879231209007437944062802482867881855398527445915329122914409971622483818231615251588440981419216373245226622437680792907429286002443637635579831563731987007617693197159125895244988825793505200715509544812933027535898709791986346894861387332912889667391800128134950940622430090540153696538367504832332579893874967012264635744734092811546089555473723041582400735143065277332332505172764330765696079661536952379504806646487740846182192266465822274330648813953606412574083592279922819362429466423330634287015699179783019698829240893972040724844743222341122555543159324747153544905190743590048744627528292460697713899583864396117605228368960187208445998084789819162531917993921810895304537318444946269338420229727163176513732453077487942008814894215128181870043479711275698026588502187540031381560998907835668330936983704872081418849600353298271878519687256699072288437733353554033105354991426523034979637132023325254091104932032215925776407795316078834940894085312409826875357092511363582212663676202758307309263393167158982180549904745922893568974425920597168531857801488901618338860500092099221282685848149247589047100410790573532865769119677713162190147172283943028158942879599855232120390949873400276920016575863657483093705098589429918424205136830099704050937345798453267594529384386432395077343415662638889986762092804156526912637206994003320340017327692690191619065295766482991976871682452635448324245717963242618743602981624767469613180509889918594716398093104729722969980549570298412220222730756552853899622997535657649334435624334902133470531839083874642586606280177278656254877618634393977766457373229125446689330770581515017562660637232938477095451423006420179771261867348984819056411595497818356228285408354601798547248150548129632045355152560011788362750108372977859192123214932529432872066212414719563395522294894971981872772245221680925834309884368912298108338679167370542193420407820150204228553454014540481380887434049289738933619289877455666967939468603617567363944821158152175597000689125228280775460599745542524025285118588666438441636644659978210579725505839191632841301803115102130693551658695287879587864786276743145216975522864985751993552023384966723306272279492324725216963515818463016959040925234544201135448122327803529244608349389170936547140879364911255380716250750885508839909695684794988124404458279069701389152769550379051304491888302726955873656676013054921306986489880509138186029901834581922042263116531563735062961839305761751932892995442030299045305381142171320165072208985040833132643143420458397183785816676574673916193069628878317597425577361342728904500787802280833660716347955169256218076093486987162298148215833902130590267394411508949241570683124838454501349968704136592754050677785979452580680357931417937973026971746492904953820539251308624617677276529272610099368364948504880631913135093170196749993238074499866437501307514003756047149889409262303649279625098814509261080390410451611317812133970852941094826888460506813789170142852710945118033655931758691860030590076096235137041645320563285314269327634552472378241887900847405747908051519054371596628391026513740636567662737421482167002961407767310041743905545641883946798320412415163403333952932039691790758717391245583320381551807865070895346758655316315408355564221601465287504754185892185480199538398634447070415038553233091042763836933005837552800282132253560179277887169036812277723799081965464699789934289087778957517316319178588303417199192695368487362048905024694799082656963008844181903310981642846937346789314925624441072912260411868164741171822098610485299489774479832950779356263822417517057152976115149562374792494588810130939828394243491343994098850564021047851078237947130078716456496914609148587198105461575383466242372310681777482378827990300386905549619545804815437106233636206453873444794518449103482933772338142261492332405850582953905766824885056053707431471055657175754183860157945270145561615179452144962245592400471523814595767211228498682935844511443994174974177217775454999348434374514420816004641043428489836113940823249032864965055070302709756236144519187764997899540848655427325127267405493446500695214976245476781655077759272117773693870117796806367595435283416339716872731810118909431131909825608079828496378560950330787945753170792362729571224892891962137389266074418824903491650344377552339221868698388597554136683686437736372660569852673065545823620452615641383041276709526144681192676083621908221687379113593353621445231865467181582015060542198502158926178511151163776651761822588505950360059179605509252382531880366481032921796175170248333406193417426387227778915860366852386194300844742600957877734286838565083073454532745410313764683623639678707953105167731514716662666962972188111103439415215133347083861324076367209315862382047978598603756541643485913293252977439811379379246868695354813359212116687978865778156577373857703987290083241160861236997100647642834395651250239981641136329351807722689080649076660186584863726539529107885028752128175937449826277686470222961356141035362492528211982445173746407487495416683792611403705426606948010845362255771436455651141979141063967063865276996661742632179475257643693528668012421552712525709902336280177431647614926338051021525398406728686240614878885010231536442696896667251834257449378583520501364120748916309041265341150082698185522046491693592570287288922905005472100891514236773406039834700257930293100630407187726388628009132175707114872905586373801635105855631874872138437447206020672444055709655346330772035520881615375066808520855931573289618014791992922561507961662682059964866189273781091139417493267663408798443425356171175563135669779102281346799534110821388028780341841997267688132195381578662100404092244109324331247115082423646770690753900943880486461609935970934206687485275569158069084121070342753313624713372982812426853592771027730107098499258729985449403914412760161522470055335446597357063801405711516126251363728629302502165248100247038904307719778284407681806389535898636648870915029888320195539476150664405982143067161627876475296447102189105427910720110715194028163236538067619991774429982353114779242833220057213786124072093691980694570077709000369172683385336636922201650049852334378763612717113140258918465853528353147739694906148671348709966621672800026833638557324148707323595448976878214532583165174914591203820497966302901285723117916041970648786085039648401335938665076477432506340312321784998007656013792247222620148111866305440546143245610785490172910500323499993556457903753242249652959227097271839718349847373217793562445198739520065735941100751074987425701084649995672352625918966993988748551588806230254911038934345340149402308973427909517159305827293726885323739546244793492948858954175830182367466546311937252475183064523186600699487160894598290921780423898948048051444548716183481623555350722298660746973790989805114422512646488273897098605781944200550105492588378470827188301462631503476797192167580726729559702410787022059194024063578953191410907550690427661529033931596141082233183009862806842313498021851470123655758155378389053330617974851564694978885876324468892386983794271723415163757874317992046169608460261993647572374588312538972781124136548126922089210835781162706580273084792139149910796608835233787307849067561229339099624764126121877005328932345241506663999701451120396736386961718896900970828897886983315514701771795184715487558953148202864987868906362780087311902744335802242279410312549161621090473029722463061460706456896286195207268123874726303258963764527150987624369510876246554397489233917599675625886679355313915342772456472523777716331321199495866208537128899861365305587526223860230371786141862465888286273603890968829252612414278589498181229550033451754955614110392043392341432908214619751229619237333545849316464175285767945582887521497927346135587688852091171308369076871223965909343617441884859986681052040505641668823957719927526099219614310186649013724295098672987842338380215919269001607288361074856482865360080781818678520908834399274108186998177533280620450243178688854494892215754696196705486456338424516883634981223758214094896219937714868120387517362598327340533416536312353621068006641635325470970765659557418396974158638762341300775737921940676792793798016578020066845024338735352570654148572497227934510786963459325830515269666989816746732970921290589884639482533756121477280313576997208848628977931875537613532849858224734302519231777615313732005687702007596139268592160703434580287503588503270821993463577038352259022398941208732771471888379398182644035787781846323920498327636439477385572738640115578214231781119770041557467683000767496658835347716029994922942033266400258797133446045924894641928304990282101028284222676705314491054437118897305875670101678706269271870883497115530023681121746163428965431683521428276927472544739282772072984990622974713826692493643709256441649468510109005085112063127949348198558145909228270193448954645382766965532501265710916208461327449815464340502811802670385440355544069167705532628403654688448125778692274617403316761409816226507000965160846077082633189882982765592093569301911697469258330151221866228590146047968822793634859107757296358871168404534378415462755250852067686859459629868423823237646011985263661256594457811797476601344360777354176519835910832552892932439197623060398456326421934212308822811965195871785595441888041213301946512518134614676543539384326954323023863940478676431047014658790040409978648883581190990827342350951061992566641321086699367293694450512780573143199002331736837029103902019729870504166896410379940917862722557278691054337470421036534700267201074884787827542615448743613525399843206669600895723821324405968651767239922233141036969418907353184174633081686677230730831324939661730658624918851884990760012051233501552784870959766682611060735536571131931833772694098729990678011175811732229442523827932665806549478330874866919310263784992769980926529718264442700947464390376852732775690311018818928634815393907990867811289135362557433950462237166709432368172449936380404783611656061682115874240455369732633661587076012585110198817436886382522574836470910124937959226106874000296239268056644370515698021439855456825455915361019543253209551584573050570627321995794597640355255598278933146007611334608935203892106068421843533131915212894818517340004617020228415873565401913356467559706345046663352170666361340095033303270857903173668864714437503433174903931528764352727114754118064387095390677992278916603218804219224511246186522620855434129381813775101660702698973747735539010883632312422229569824023802791173449777137450668866812605261450601328704193831132704292526884222722736720943309716688173795155433638016121209144060318398176232610598007934734343483020627619147861760684803858194848587201878880253845594254780635674741011669342699826549196928111562959559163786171593961532517161063996141741066431254112035826358372377668475829242653274637822517633767558246194759379656809087547915835651670367232457351519456683546177794576625719485347052086033909647778565012149255657358136812988284697171414289447424881810554340982760372001129313767446567344722228662941703919438315317161448715856936098605276328388083047673086548401890966804023871973723577024561475536673340572161849916066264638158479144236441598253916366690910453969708752903131830721920463866664063733977951460125736238133744369627451328320810398596636564072411896757792185674688221319339345448295068993146921316967420851229290668683797216124040857411556209672075427832625871022334110986198421711956153986069916815549068292983190429085201334418265241388388595187364205190746126719038914099150072422828923344948614292131893147627369521572382560584873633982449639588372422625034753465568344265958707492260968484497547057857079900462255079980955991492161992057208546045292205645401634611266941898971676092881364555499470775407072199391339694593139105052731129734039997564410957614935210938949349980718540318906922484650837922793019540360708145228437935705540858745635457339752230612895343425340132400559782871778318825840949590388620438719868871215910317020114664549517421995412981828294665461971981715454064877881826149954643603288795111635019202261387444645428021837190256217545983087095807785976064526197679827128677803735627896998102363218784864312157110494038223346756000270571702142927128196188235738549968314912923663094985664908771262599208999243446078970018197311931821832421729740437179059915450924119766371116016096676220881509893234620293497505711633604850614954606041345222771907579617265638179566193229738006253906557380868961506157466312240482093840995169776884270640801675989787468734516892768610445990980411691479456905845333360248437277629561364134666330682216883022775509658051163590748939536695612616930028093208457976451144397918625795931138510226389957513557768327712030976034726593469356342381942822994867849962533243562647883117151375880594791318932431849759005985624891937824607268478374098429352490743889156207239161234517335847638874933242055572349817674101110711710951734447622829774227976307908464111696359880878258753519218449014349888729777013010384560663797511327195578952242636872484324019414650396288361133869874471661746202042324462008037075115514213684372101199873700327391026584044359976813428633492998771736629644294292496576450995739381195366390425167888271902513526774519481138947030306133571428307517600354454407677667033779171080628855171785915475598744515174087576979055427945719369279155608302009020478949489307161148112093195207873519913081640789843250997873003305346480928755637097838142522824580786291869112979986991458680140461423311049079431759271849798543958669613176437604931158006801856260498491910616585815585317364633739199951770743098458296736212861157608216026849495650372066223228224579260658541667806532232603638208642653995345983618999071404266517012013671922033551151015533680445469628839898832944721022721925193301995126161089654580583252664493681606491160982451385359322695844076425324100250386382711513405583701441289690174835383482378316140226484861789791856111498299335973347435505266872295431635322698814334353415038634176958281945009836647344984890279442111811024989358245035955668852432547763664421006279848960333522688572722306249914421601967769849934596624335456245623120560876300072823360012758938029106053314071720435278585023511632693689562176926266994806117585542345075098675560680868869956650895581735646824011180407715126890752945066824797295281949709173125190107998184049326400018747101584644045702722671566691480591660770709062979216768679679534027598596298538833954423114969668125185142855995913199786473151723966038373240216004905737329397412176754196780159376735829263063804288596495451242682721655608638621917489499090440247283242789315990884281048960698875818464097979754825799261648664268041595390812566471871145311694773220887824576330208654378609686742572845714069728678583263111817471037664483072287355439247462238044713884881924827855078734491497074474507414361513757249812487230001520565608669306843691379238297811680482267539418799520675098028551250729386018007197743998195575436025860735189682092490488385139110634885219808317902021572488879852497418833302559005290333006183308741734396751881953102673611752331567858939498445505712119062056371327945576024764212695529766949125045261306124548973605312194768422340456899502061050780352313919532111929640928045265706848418358021562650709483043906027412518237612281662401752139470630945617280911145129293242133047589847957086333397700208417299740104639368909838263775629219471995363624410748024286528741473736337024561738144903096364179072607158053923738017078671009861233189991544369399850858739092127044669743414126077507771310391406685625576273107127303493129437120067267144033401915981701695701971759144472553822850180746268709617294838698396578166322066648661320832522826022505184614715805839509791418485552991736270051645878794237439391894240187189327453054861335222265097644047231787119710311484346189180291217468258662767674662912832812634211025138885395385686926319647827295621918150965980446836516141382320744626797794952080482028489263342122803837067624889560801297579486681284125646957895590382212466351793867969333961203018294858536486576480981372911435819820827519150363267639112329166898140739325768820753802943531469685752740825745612910270072511856831372068384769418157320413064146044813135779039270716014831365827386662222690930108184064373891470193053812801797460681437116745314099768913578520652311676345397143093526217945927418806053406994038553911592159680893102009335330892634068664572744132268276089405659679930474893857963152291366603239601934563600555390058020314065259185191756148637527574038565120288398527542489981741766270410479316023374520877507280627340028648224840579857937865807494568058506551879883489423147081115314200154847064116191004850947645378287152600914419808508899212708636281146318173376289977920041232389003191482353680625610879963743821405736194792873061541556188520272765156377173708988427170328920289784010667709535594095546605150704075156621561789469356732166886556530801256029492662303768920753704013658050148808088172559768260230599142244959417622917523025517504791190282705420399889441317860817103496551843127666256807189079597506400503326745212163909439014138619511714728828476187969514692026199660210089770180709986946345999926596269004959529820035644319311460055175473341153162117948473028331952465938830374383943039770236637618685865213465491407532778760454342667328854184167586559357263839701896801681640110477211686665142212127510373515191292652833454930400277034073787035384681819049729790167379860589941236889185837262992955285576777368573371864059095662187596946730301135856629203620454171842572659742807654234261069637134393851958395251918766101109992982304536925913089321085479165222739422737840162042566901359621847057580164904746488255113155090489303923055391991324140161935293250144600347056319550613144138809024658248900834466359983976652521389222697859889186339424984448642449958752472018522313150607116783251504874584848106444769849685338248851004184647474347146461227614991105179121999397103443854558929625365798195286694761748236065646508561853863457143738435980651416581606838841170526343514685739739998876041240714693361082364599829783700706578675535454921378505739445625345948898328661065820438345429181657764360075244885874644617387144210490388213813007850929690875444849501667825896525717085508152092106391772261676757571663170219564917771899337486626293149155394160702775932263784993063218165699952976680614607464088197897436642318138294580169042443072040429112077067404796134415825421051690271051588810424410514077695332740913752321365561551012946865159786775405699689544767942743154185684666346433027452090277839499109986355964948721086129952779317224617367361841785158175601241989310510033210465007144821697358156950574155428084495192952003472299681676467033983023504053305808255337347312472993575433301698298632731261339419346786216274946919768521005318084058279745474967607747881264409998713289970526168561663309820453660154304342290416895181450167121172946802962907234762170630772181543107985203185220930278223457232245925851837742763673557145699342450782110849931131554009304810150654873055215957620317683208680637142607529442907010545824108081717829555972568722870394657539532900729488902075541304314091762077110616579727338953972787474993945886087571981036219711460257239904499128405537351446068711275372494837162421159167522292247814711722506459244191206801642538950541278116273856105728513459714038624172968447887867719118483167160167209025379030553647566176854972522387205254803492760274402908335153294691449317690222747801719576969414583729006094847376913631596981601992591140799885850512644906706845749146728142710546164825452755641981164352381196628063986283298519678640015415700570181755480153088623576296111052277154369946074503010826344482713286280263952393769430424915743972018768739481463799056247932968341319501935138523653213412738753188920724632438934590670432783324068900882995105752154411531790334308748881113768758095140956268994362204152764386629322155802659263457059093580407812175742428538623387342858541768586697690111901732076884804714393977886905024073393864608133907151083997742586247567015420611719331598112771373395906867168583918118913161970452212129317597310996321221352262105521810230413066502488169071760718880624834094378783647300459228108752266389203509422082951995871587199631670993376193643050009394104794779144013294258787445656800409521935126583331700902629355687069536774924460198982008597586555291617520713867937603868464459439625932433724716853759876117960904212658089041115294823865567996714455238044372406399845351992386095204445465755316239350088550316361846966375214363964566041879524049818578412527634343968577059969672198686943387166131059102673328296994707670579495543765648350643053688344381155728008329232730372312011335461904069375897786140577341375253889429184424426565295589053400102963467048132825618914046105930312927577563812252953421309971658706333379138667491508230370020159077465087904514035264221498895599306263729142490761315122490182231621220852716194355861430713535397080353120819523148346778317069625658036482475577466664784280719580730433263944596038885055173033671593347940958694908261260005059533275060205893361738609965738584483309989796265281240289522541783061468518563276237860016117130868899133557426083120727749169938562605415636413060698032095050664866044224636450693056314618538906617266522906482499330819124938042355847071603276506486027827151685849932183157239422359017209245973469642546645454169706372734314311633753419353668347468726824807509420443813818875580747068487160740791320765148886552541039425279590726928518499427504927043527814184851258244142389586288006855213454569165985435491578171878831061582084964229030482264399055224781813713522366269230837995949353499260016938074072425368461993284455758723674874539250578485065732036383720774820926203601396052296008541902209943228852499060567489415405365693318621482629835380004068325710821521419627906228416602878514160191434663948512003059271243347289371727734705769355931709040456666751512926644684288552848364539964155593496993556658208468592281684417132206754491894546816849681839027166651857257376332041816878659285420879099929906532448703991870297317720882290725931522169139485081210322533072308901897536578311989619042476511196863535245751369216777041111565332123777524373247235057140950137788443715090730544745238832314965620567801959161371631963727363170633176964887751469694049470786822659220149808476889448418521750751578956233334768636157121860794883941354113564223661348647381578514731633501355213083611212588075505392990199091184409286779063422318444859347409351038475279648865483944146399826972331353991852413463689337862946319373460331043601119547603092200518776935851437800650368821373808056738700301811144088794362359994022303702383790951537192433390222353683305226951056335204547123792780768421405484306993873578335927194681624357186698400688278484673414612268796204233161651752960020193495044452445335420745549548412865760878996103538428729262978845804639941358800927694946246700777329300456180794846661509099967429656265237814984239207063444262188677837879486797110901115841794705159681550826926987793356031040742719632845263306697147862452441737976692515911536193529463429681437846219090695393124872716088596202392357325485408163729865459874298674688770126725617399262514567992244047213073672635579380966779715340341019763964010189381827264802037149926490773685560683911014324975750343281007584908793567713035192561123153412520735246771360408307369086299569576855656487080393046523152119293880174556420104365619583830082018947186741031838204702934960203408638139385229365759496815856933797391436858014459074686261511731749514010445944677126798241193977670843003513755949668420874162563714304226874880232367961650934699768970794636881253696463565919556453976592050165426384499304288382131691145955234767032530628321178086452268202908586381008530412247949281376567739481255754991914952765261584651431831236342838994503841300500568687609503229641330180532443638381612016009056976842464403043013020558334141954131443830621850691299982877593540136195973789470696851567239031487409423968016287593032117036817966281227128280995603246483358658737462595594553164542549017217959545460396507387460919084531543592502969651887908344297876994318734137546621437260802704609809023674050100384732150254296613958981947088262873524629136342230215948340579530902583424035723923989702664386437139678498104866526552788180181250311019483160494114071505408814833491649469086488575763835713244670111631425772549144843123475178178280473298549117306752814647654258502784032166213159523417656866201789585061048357509530928161193707009608621134951075716541751757386863009114997271801915836950158510070127126572021495516833006325492573714990787608713802973084850152230117792696318197007965523124685675182645538582244898230193200992300233417127778803686198844493110285226371258761384415325504220169324963084833083609169210124614499002733489697089717190245036378045481882755358214465605518355986893865441484250720715851739236446400640498980798401268229151987930909511035897213443604815526707721096772705643404499959164920290487380996789140594525674421401465146562526826444451749632571868153806529461862122687496163358003625433902504040495061829015613110441399515284831158356408547594988801320931351952343049024646992896394891202392975968933025317279938554615786011311337022139440952663769108491541744436635042887445460688928390809794623054255918149644479996538446157638627161428847536346859545148571605256822206367832524939889999049400853457931672790431236601338964333261244054937252816485782581578441225332190471824654005904142939708628879371256480435641112638828901311613693872404967616018661135875539625734399653974927838493214533545390137647308214916911962948539943159592929848770315012510953353077450089096686466806080316083733343833163679693160784335113483677165534337058154435387119441557711689424606192529430864739098520371220964011489094966920198217399261463479032298094409614402715125265312570357008455285373610856904230430278643854659515908327963523134376220293523768833655158450982091358480821833839989360789170909686982938961948492049848199833592549908500145908279866156997258983791405573880486354072865575881545335013079757320365221410132203099126320989341033513882744155535604953806771308166480427342083783364755624932166951163501061793048660225635664033575509795014110807455262846855425911747958648142478887853554537954370751162937522650786798917437232019166518221496170633693902881544985651365299727214429077030673175867269964567605053112722761775113676002678969141863222154563207309755281072355757257975551019538106956245254864500605544026071407383905008689893515632236205262311893359861099157199343127296455708680643281568902216223919587179912802738992692181746625424558473629562162221236166826540953836286437728320437743201478021371761293041003853073214349440019241912565662431135132242054858400102924003863362498679054586587962898854516825047148460305429965076466268784471047731553057542769091543491675395168786806697482922553138058241546520737407559436750137616396314653874473094295482052968314454849069615453441150937653363943488560978960072409476574503354863147388722097765867464283687002007898697490863808245879011914715174141782967240199843570932425547806744827643271894208240767259342129854535404351212736634944326628823889124453729003808242576798591099517822616416997556390187232928403389552538312934889004167821541597235426264922757084316702325939348701336523764661550383991032958871777897469889962704754112501449366601067499418486668957517810565081699260486852123570966185123447815138524648204505080940180723336304694935232602142685347005597416276600129801629923991247534849018089628520482787962964465518463041801709610713267597336848323487436697037270195519907916682077751115084193596639228558554974601631986567774085711372487630071771497583780762742905609249074059645495031708902450897843456327355722262622298800333895250276769787406380622810469669224862608108939449473462308200677209921800056881643893548619345135706470694062736647586810325773618273314131188014769206184393451889007150454284560510786399605756236103155534008731011786527813370827315087212212895342040068335174107465632716527904037104955454275131109224451580635328296264523874929914952255657127386574083938974978813397148511231572837528122753200452883066252539215451285314259823344066195583569027502430149692956674754917360469720313843148257952312232405475383725438752311959296761515647015709397575277413045991498011109559305733823102089798753270477778576858218698316064154320896687245931649269284618368063443988192988068815709436209686495357572815421700873759880107470085613493247144779733057919255899996494204792423007504842123420474112848661476858194005708954129397889585950138669795900314581621408581702567208575900589929524126944163476999397975158082459866384277138213949256439073048873428113590499763412629381618829081911945848969129795273537728406802823672940318484166478317091489527529926058323043895198626350362766970602260847888481157591090141665760105239627682698550674035103013915146798846812353315935914631730832093417792319210829576600647736141954173551829009206915102899600919811008571049463490388931813830485347522627496768501955978305850915193520272135080949096606405134397871612505318302189348518997371486849115944299527177438630522195624045350859831361809978739213435986070764912368832441270087605705346520707057054784827647478749637188102985133734747891491816539446251322010767641121565788971308763420016136153755409210234732228015955052796982533547521887543466302810097428969799615042099205073160096143674495755274049560975575855311524596615260814662643784362895514189169421896509479894905253749822306714699398107272377105619969421233070066980537212506814445630644984239751331587600910634136114700437223419907233673152425417149983850592848861296034457876076900430638424692473017756475416183962076072370456252999422670168339728541269133636625500432875351448686832254928288111878448935992101619199567702060861605300787114338957501470823695124066005076370616562272096454370055125953045975652512033594327674374340347963150122697711328854587127099887664066870061536857845761378852568077214907930436704173205543891064476420126852042170996298040154023261019098311234205670494379549271657518904845583599497520653168611494599886139398488341221927839719174908809666228756400541955226928785106385722988811198257270399827339746133031530030881755967670512740245281675185316990445559960368089272280276312890516499545636642494330296579544011459384011753045520374083086467351150555724037835519080294289010500138550682067844883243978409628604208444980416406577209550577090978498280364189983943005608287944340080921517519885013558468017342447933353416405859655686492168725097020745760306271189910951277744745429535544254200318969655705587753025736122094875390577886209316282613175565750755494766714202629454014352705289890003256550165758713651292557127445076201909737141155617311834431030399793638816107672559791213785019031434692297144533242426608780053457329925185406915421999116833239806601114008876758695903823347955944261866267941421826441499490923006053777727394542708067759760244097797347872451239451244983306578584417316472280894516080199207625854256993902070302744978546605324569527987064396094217072983460221558348219373375068491767431054075208020751751724328992342276599381933560295945159628123051381215585079788738060004010717578763324301032753078409214997384962702863881850349348582412077646277714802983909420173600013992697562559541080380431490593931731163931136605647730289902913889721401144691705038080532953687354865989097831635345451496529769323634764438270739021500960203542943574134479158018011854776641170719522326595725734245617081446129308811128812850452321224147504159900350441964078778530639701704586595863037032271152738997309695940147292571739057055029746733020056602433000234366200591034117981112719134814406947464478532675054649318343824330500379330778363822216428421519898319336949539437997998817301396297039835058701937113411588319917926378930885919576785821934307260094315107860159821168175020895688571196691711525088890522659922667419395114008220159836931621264200902991222443241088626227582461571366815984900315511617380213910291414259116099516085211844378277118157383788528762402573954226076637096922218721745997028207352211373744057724232785210968403408681530157169077452872985718345768861808488155781923996456229581098364479525347670278524288940316864009760672394373954444640649026485326142296609032581225364486378101707170223552515942479137403251804704772529808279514053182463588812629327366765092670583759372511546011195220400707578589627764493300563493478375801254612318349704371602701066805398256574943430868416993264618127568288942765721403447386149302362490753145708780216359053455535647744257067879010434091646803776479339826497012218101638321922878011770744741042997149590053412104901496154621099463299297791934667741818109757495911066985712399411695649965858270495104321217732132579128129818892649306672202087231777346404239248074683193062820688149320539197290679050893153020019468919326136211310562176805953795052293563650751651152494162721115855790250916376628415180142795423861037416491126996866784096324023565993874397357054667522502529013889174313249678811191631919592363793707844574892837791547034844658559195693347657918972491397951190403069528833054981355833310281284506277177154865782178307881024396278926945701664285533679039952752982715083712202095777188909233354308828402964144034458517258477205341112282270169242668044941765229954724248600670318419103514544832328310546601323451305173162804279403463604751312954411452173434556295954942836559368588316444399331105514975205745631061042806112991511811107627723745522412055725665751906857088360026176420066498143347435364097610941894291039576120354569702265675822653831757406323170298299838878309750311138222775641525427735918895109704376727686005709737452883177698593629407058723766111412797331161277944891044621299117116941885757480496508892076924338037160428412060374510298400269561162931010920040470517807369325365386391467011757456013481002058580924774846465831406815301902446444809437567885068625800530440087235594865312109390561946906798243748709236257324680411829232286068179051673506964215525112412751734105232553673297352140311740147519157836170276977885328297610335560931399165576617438147145440053599671334593351896476365674584110463349504569121682356214814209895788194632756130496726555728979203451380605715129211078796640060048401041999296179794431406553345273762562620339041551158835221972374374602852192605345785065281892750567937307088193027957832723505320860106861128244160029974218202881883063965957179201001289696063056154135168588931703958635204173307058044702863220269089719164795704116961534067303170390795510394255209932299791575720092041422634360651595350208171640088695925875576477434468292620456777103228602172832389549491404819499516414645400725930064602957907332070101099479520251248604471186937681667488281274783497341243555395461003158088671464333776679042682743021320628049778574841476550840739291525082981927884241998334958836884492571195127627903213639716009873143968011654509831842123317848541984627781631604504831726923624831727406929111916696483309506184880816992747908864436487524002448784352972538893752393942416018732944003236399310965462960706808886328919916720480300105845310124490088611389778825520619856487589404651579725901634439724180228323538190042236792759228578651230408692168901599149812847960025248581484112596902959342252729650976770835985623084060415679457047522120785852835847018365728846719559706736975418997872093927215392561466469498959146477444201659677219735460307757756944707335924962530781662562790371684351128786088648579622471107912309338174958970052719774401425886897183260498152691910748714688118032902958024458407861013801772722942685882172831438903922179233692493519830800248710898780205905248121205687431021599214063246303797902368355094410348021868784682371367771489583855850918156530161127644989239433153420209055046731982508906488125394287143120417804240152412196581413936425546113714774582245090221617920496095202404598000287432746727079231788959678390085459890169277077719013804374885164704751908473670727217824459847787245711635513532972991215085228388255279632891224965929739332184026718767984088931459330620448601878847328889322674141699449802672914702096438030130169539824871222174133771734593525819199779294124836266818558048820481943965616497567875603672017243783751103161869755909315907741239495782119931557699398437087571848209147220115890748302814933569384897353389823942808461875762150462117251421649569631268528742597949850668156043684111030916607609035801825543333371166277961240682369620257733283674510192297966029943217650238132596790130776253149327417861960919604538395785720899671983863032987956083239890999490954844732352773704285727945906045230325462401154682030347114255711676085695208860924195522198264289140212365936495843418338827280386593956463323041612618681815793258944346620534707628610642146115113888456826429932041323861851319707322518063590232751208229917044200137660339246633867643067430745368361787542893015171568038710095398744922568310429630782188673164440285136371557874749783883628425946365464679456940010114086000909907001277543929532731148694522329547365507970493697943975159353230071432272068484498379136768026536339304031630382359203165303830530595138495882433974059253942922389198629631679957422949077101603034357155328030600549253230698985622282795674336423781402883729682304785400717925033583276133272008613827794440377433283094841968777223207144620173080242548166892215640514912861218782808488029391360475686686953897070549226679648556248507280686121970045295367430825913706680222145615365510918837435428166326435202141582301576717588799618618751852428988819150281505931941237225544188364181669093218374500189678167131604145588071519337716726700062133903126473064747660704472652428643827516921950028840874942440890041402926273213209553088933500748330400873206197582451383339902736930282575644123170381895327012226100786312858063640973773519713078669607380638409607792655609367913178502271712622880174807550676086073261195848430720087611342967777536155799727211248282107585281816523025534146487536448387883833198479014871332765009219449691438294473140366752525888663338020225440291827671554343954324358661822284978640406044552204473740651997003853665994310627566998445040256132548180974506249609787907268441516684060537514952472258864044002022084768730836388745960733430902009166367958145365829667914534276100886307529315474412032089654746384194191002383105291102083905494677981401893464197569566993254344994008012427880033985550859907756436100272022261096092122347760887044650492413380349679498617323967827288782413140197305821058848830198266577829242919886911231460636603425177859781871187137848097565508733910602315123376381564731343132868090331398934037740833604866282257869584384574279800149901939023104792885999043454816115914813707089168094352141188341098826542749507228119314023304248150435388169673623365340913038746283335670808201887336164681159253022201721024315335391591648704380263273359052466617234270025793628006391810403110257561413401819119080169543251482298015843743838815338502425232558252188318490993276476352138141127335195778189950090421428315567904983882886283672719983640086393850234830452644750130192658258159285064781508092367242361740088592171770475878826480139565229240231197439180968216077227377363266589282242584317183749541377330998029318677787847460920270878849485343306472824734118802337847717889856204734098356571584834988499379823183121555322600491937571470421722333720083472282488466591227484615078095865777111321301455991575105079988391383528076382784422866243044593853529839672513003715347847907548614917453248644588815194314500190974883569696126661898185295476282081634753780356344485496153699951076354013984554884271116676805874371124870805479255644980338029944500918353238117508371214038867840335479825088392180666352964090196211733730811704014129866060678109898120206044693221780371881180827358636119657427386927102525960248639125000485544343125345589236822654314806970470902486662248963287457939720111588355460993754411679295424837789335771334539604096680039514193382148874377153561422162143659478351387465606059387454873201875720609010230125097345547115975914599127784516838006604263220781934919101619151382534527315900447255577307764356879895506015914575956510185291588309482916899744233836429219719710485848473307627508182125541075515694415081962258745689866433200539463125992059518387826720320062561200037421341932552876715316774544267848099709142736178259068896443803080888346466740097898615046125377315863375507121719218695867617525595093262940949319791495126490053228609561884253024072623425577716943546998572619539751138135671205456179338093467079988331542969960349939196135645725558026943167477950979586422409741109556783075586479832701989381562042809747160683565116768624654624794176474898936891241842901195747831286385824460425985514720354932263466293887153419707416284964311965295238266799208239027512106850516240357613132121145763812256647304751715269232480604740204443000454265462154838425395845872673189327149357553810531582121542712160699234238029270027100204007828198848409456784452015560775131186221463969900779857430347319484253409777664438606029474744150368687050034727540119606094581204920281064233008738601854179304618463271456922836122771603188760196270135432096051944207460029526807466269555903258366152946948656976587652571813166751336044433214026757612118926592444554098256206584378776410899586202570980991536795135434785484218726027425561856969135292492698353095568847644192313268410571407508474864642470430793315810583863817051922424230754215229499598297894675052786271450019601081523783806920635371330701771863931932566485186746421044562815314553054033961871919518187672858123805321496376256573153458195972358552125741015983583961677885364456302021032533452789400749883404882288398644921201834526146815662423136606035923603621231420682900480249385048323378977918366054344284170041894240804155413240864114918206302695330173905704546279874499596095169449288026302497794311637546439191692031833565416238781289598219568321872678779230970824356673072364749271800745231543818298032096001537530841293039339837037990017547390440058735750145280036220560429614652682695251259283804758831079583457606114793759266951420132982891445980788760234049949038415187922271831620359027743672142034527554396314526008466289032830751584436508667020169296305737357952278217453691145604993675019037382342307189555583592353604504105799525221653391486197806273473831019112403819246929486322083743820711249278719595056088574214577318923009134381908282168378562616066019281754143713359475245395801875636300031291101050204047934902499266196409081470377394969914196595676949816302859311244370599147729250640185478196096315079453482500773307262819082992935827201228324623996449943789669127754715338669358374328946314154830331429933448222134599463285878822175400251652596375953206316095359815075597571433322456479440410321230677322507257401131745909271216115919688549757628089485406341622008653572298950372566227533302789072497191238314442203642682337208865584117740696869519447406180932670737945518226240568943335634331970825833746445991662845125848199001859118986694873890324914191287577380788560312026362129328310143218923066521213547613114802382628744347985709675891708411257027435911465716438915000191787059953211255020112741090174787388192330503357926396981225904630107719542312701248248177290924960763729285798457768240471999231647891196008837563885440156955027379665017717472184396832480796643993388776269620973325274958546781877776455057143308595400645128218447159373574350342666138472433695074417408631551741199923189543455244197151439956235590849050202185362270241644620606377123472801350944900580758320720104449207513110858267449157044455118350664020879748168350102712699119251712587273803523036503976832642938909145681511721901120887967153771266385298511695487929728432072454043783351578711583924989831914330872930535688932543899541691405358807020036180064972833548555573121246575856908188195004457234304850868839627321905478639351874787558573624077414509553173356537637089443340585588249283535910576557401813937480013458750268469047654731675268263414081396323327796251948077508486526538619219896907520790209636699929084578004605921158394541735190113995636657606248428200172095379441591905051856770105905662325154037937730663256150734067477780711854373946886870722732607630692333377489778912848668092180456570855415957136999855289606813613815430473132675990986692115095894656946355113636418382364526942733322992141981003174172830383249157718832283720364323032942343471962403382674188520750007671123597404543267978142997271336281857059902927538095557272219673510612790348715861999910227016264365067116946942720909498394803102193074233405819574745363635159231581524787169564860582456659408706504063014536675485260774759905510091406755134345177011711822856143041419774380913378347526492514967575161937841508846325295138754839288576425431666602885729004686142203007757345790311503163897410864111114753627916557497280990986612207993742753250620492043625726316882502914150441912621228632292926715852192845517119621486452980196824063675289545064944970465751216589888530760579294661919300149667719473193988602296628195259078198609049897300871375411184776313689472506667371385291680108768115880628726153150955869915713528744734856713864353863286522658810746862432029947604246840505487235355775724585604762018398673748790606862444066347326290158582484577076737421014259285443983090788342106691184296318153165468127768943290258681055603472408070489420108533501984370150888543573894354318042776124743542962510773046525467549489061522159301934396882681978162282052260326757411447921366600698810543634220809907562061391001909205991905593950827123458394521476779632062016503152063590554515521688982739135905338006231836398479147818817288565635074258851805186183068821152985345914057081158638148649157008417481460715879405594892527137529496279827797425907520458918041632483594109850142062775930326740610275187438758860714350416102762726478025468718371184785707143393431589864460004017230745686324796503142214271693416078340817313690294247599274748079535954282908964745524202881014474620388232584860202817218339142193079728214610889419634831452759654727613085650295787052823631076603195866457896934706217772531644019192209538992317513157655294221430317365523015159084687864285250402536039868216102799197155297571176877362103437451088644572682561207035954995005900174227827515312306938674824489814063906757702963729617239726898485504152744613817993885291945197907885061967135230295291047833313005676346164689618451784954320521962422744490370264639347805388497774205192415226925022780587155270655342549515444163075171231857978661226405177239653486227600799755454667005944257801276032890554442083250103337918273443929722234812590468128209320027557488013308606195736199362614254737295514333923426148243029796813597181560434556956744662362913257962241787420713064767913916658084674849179040934170235103759844816970420750300117291853050095450281329550008301578578243466349813021443071805220954139615518423007613047024089124435872201213884500326392747142568709937656509707170878081735492390856914553432598443866685143114344421021274441172007826912845131343000239258166043696313226138336533282925501380945076579598262222418888840164149141759951339588103021046749334838576988254882530467630086915904480289723696601123353514762977639584645139556941615242573295108089727853414457356280234408913296016915642420736212237260729701721725256269137454554068313667428203859102059716734576306161476066682299559674843406634591320930935006524234845689195278378904595625920498846107744878102664269969157358321857493106592589137572504759534366658590420171900553908077188835749398732321639627217304222662115487397182384649812388491447575188332018705642844853571183854182811581112328335307136941775456292295446952480733799074725211691714016915157536582340805212617404892575591693436560074224181994185640291984064993174567112379096003497633706637404218742443063250297214326764657338845663675370409805125055654750838549898970105907560129328835020053412269571981799999415156916504272594000032238689710814226546227618671380347826197199605038676317086694130069480322432811169209660100284235659751221008972987778860086273901046908058921674565194239997750059790671700520694354023613998671125672977232313566016018678458385739630102884521902704985596721870638992978812700286416389044597249628147791277251054146063694011997911461148825873742884983797357651111408476600702623548108862024877660203330143050287107432180757032296640946135839764647797919988678091489351288597300038491285342349514112600122078096496522998849592314970405756815776595055479741900117136734667090629633086396349631263398673083459223101680342102733955775920374125834747961243972066564232852596468733572572357354358376126157879424400266809110343611835809598907643098515143560206733423658753657416214753423324673704389564052316889062689141947727544284850140019304515381809372500386715333174105031845324372786357747832945878344803769066320688831535286369884474760441667741698781761874276439437123552773958493941794229916079661439120103683666316591420017803749225540325262399795388279893735341235739634921934047687581713224286017631368855084732334646029555927869437963457255574175109066724558922598043949840011938498308291005115140323762395279669588473325798764268686952166073419678874405050160533730308573484083129787386186441863631326142806570942291148746838731555757588474455283505207761421503817246355121369789227153209435163379565247498602449347890707227330885282857410741316845284655295006808224416198109980088353748205899009930523400634370600966435636266822417045291743815749443434413456575256740815993114496421995208464139235519964739613850284923583836353065574291193053887908229571049416261407319562615332816622931633843767968508357424798625840078977068260443697650959898429223285408219205862249728332725285452259119396422539505097013235930664324771781896583476029584136426259045140571274921228146155268070175079542570692721210546490578325594095566820281658569091021910427937295782571068023116923463989588198037315545436321746457864574778251286657751817294505144149225802236607655714656945423760955951270497917287098840522119149997521787235458876074970096874335467044874359181907506749152200571877117664630340257800005900184686692356441826736593669976423403037465549704147098032346873324687001476562812719257233467230117357992167915623685213774088984959235225694214746366304128537478256518367595306931482159987385528542980584565630504661750824143593695828229843715845739534196127417310974379261274974920851699065237803515918930202047687269811369303192802118958183947022846676556590807200374732412421587769224564396238938782646786902035392134972919603733772408245207923518872167282845441766849511328909934702342111208271975359370842408684865598910089072565929843596945361357098353541979665777470995512654379044198824047048549292327999734838190013423472617589421267927954891368279039364259674851877404127027060546054881141221717547389559451983537534643151749966391550651890765710250721938115630081990414984705899082754609796544622884267023041172996207782779240403583935746034332967549675606517502908203322863898521951051048014703056219885617964156556521199033227246627863556547770281441258201109379597476893006388188618577999692429877247455454904803645288210714795422187852676075771616074751970781390004659980280039080012817749992845957697808802241021700712748761885026791157430142390048862355066897904867770271956904934665012533585735999688330915718814771581868293883080474014950348587859881675834963756767022372545990511539819382043391820070413617899760525200967211669617010532973551111351300555789299741582980531956805169575829647204589994782080444185619533158230104758280477954093630733683307441517312869326840658765982761148982886358456316620149033102139967529549898368250826926082811464436346525061477847411825782532294401219873568074033326953899718732033104268618274026327753489928494662174983367029451404857425010998345418098507306254540824756427136781544921312389576589060954988245369875900032446687688709849775261959087334299464776555897840571000723432360346937315413594114637495635316416144501064345552709311700301862876406740219357349710520338772616727110391946721888641475734277792392366095121478568178763579220659948193254257975267347132827917347452508324859778169103447507838976568112030906043376702537521255108212695955230544418053767059697587799503936123251777932069977100673282387858890417515153688078760622579848047764403547753685820553951311843638171435078644431848535678847540281203432400325244804987689207640604851022989344502357891702847491862832659732571057786526291967673348291148546178678283510888885286513876403693364651472148114711178131656888626999436187982868445252089399933863139800724987513027461775057232621833052753229106506661354080964757116323577341753509136306806628614987310633682105727769208495228624834887389255262825272629402010845455612898315160705596542996552782985559705155868093550670078722453343222078069069775230223819088923113532822086069702629162813850532341435192768121242528869307571509028796028384503674005716120699330650856360323411564801733305953345140890982770021257094981131188360439723427621842987811905722121489156673864225592991708072329838794638540283923075297920170623032971523718764046526729976336572907198555532388061268771959343830660962131082735545096018395509635127063295512991351693437534147443153454770029919627246505739626434072610007754735704645430699515072099809607235707462281833630815325514729277931146010750850905515714537890112971616012441996031705248923080882541830237218199546565694080645994130724124109637998021901355425839931945918799231750506048721517721182494974015898106478284693062788544470185656866510483687671626931610280907039959862116225009762708275843941949467029821146944417409990203115595055258833326284416359581499610871517893354046436606940524867811890214493424271803377529056337122895253212708846503941244368981750581901786090982660163301373757451449847827818867053444978798175916922567218674847962408227812179781279641908501650360815426007665297484320239909482117871982228508496025236269079033182780070318649992925146315680589438095425431555533188509993127975823078221741076617529223863058642101060364291135161137580137008198509296472128229429031900382007176520002541372190393622927355934920647620595742279917456642077377549046539023523762563001949446757398184989976046854621440809411929029180035320027720181839142481772027735667029105538890527278732023115644811527960587643208680153537052634501498041466627346001673870687939515529073282346239198803907723959148641989586785356676378949332271122819154948167665630980516958589255674351807819030965323711781649753224823051908223776749277253382490184446303479309160419807759238668460189224795208044780335488911488178767422384663509765580550147338944413626448790610089163440325608555249935638195645929990916114930006803374405224807314591139096128887668138360285575743392364524939556655685099622976534417536174103598835777564079474023068752571607967081491163677286404840254707187403112548127180606684814949803793734620933221967960240579595910640720883858178801148553726162430387813449242895256053445147399252839678883575727139878870621401557345596779239162314355453521023574911204074155325108160095308634673476231118851780536251232071105119910549462563614026610775953835426261168730614829511294191913061881483679521410635984285570698309342641903589275066864319370605602746240931856411767521431217878893301169086410539974257992062254934853012965564637941356034064367266469473509207780416872488419921069215165234297498603023596543079750703292809665133688206972723762098157641333696225041722846328405834206468051537994787876976336474599527901624656324037633804963181656727792906477047568593721383717792333952716586743935096809679401469252979142215545556191588520217069627190075165072012584788831708044063821199017930367687557738455337463118165012249064108450448978036670244838000405131178366599301700671408104066506073153852103305849476457752983254785190745369178764483085084325842828419968815157241397475959702600174514676306820574626510395142524687078645579122954190002368979644918320202169842687027668864515677277596011273822822296172999052002916950772931073850496314947690669949280405724901217181419167375335555306120371558234662318004123576696259015473032726636414828789854681461371911890621267819670313898253313290736948758141376687123459324693250836300312553391732882547642430769732941452175570151136788276512199934353633177533197754972809670403840850230397000456420049740056670628708868216963568762746709560750482855390101071138785764851681894707314144768663856636301558012519371154405953378541666943266516437877714276430148007018666728501793809639043344579385837300149027453032752478990245796880718068115882278503374903543793908913585919035160982652985197722697258061110572871257536461770387640938824011516033762257502094685928776345399860326213209596923451249988007123133262604814371137149235538388392974447804734450048018889297359507839913579897571252769010585052084272586700188211800421054016612127258940013630282353684183395188605413955326834638505181456486346850973004201490047618406290033996034572945378710297466797783100184058341728031435940839141701025573271937823698349123821404746896659914058700373972445432136246668005803097571146880452875896278866166239010772092005268610073565134217412344125585146962781146502918569196196375893170948359473935398898608878978267664233894355442214334188585873239026529040332956026178246798325738933809960566245526795941655261340163831128160730026199731717797341371409870303101957020976429556615943024811987870741790427418330699424414734567920730542119986354523384284897939842056874417570798144485038611707214723398470887023190269657047342388198995636088654887986797212886616332760029239212440225323094820232364762336820981683420094254881588792363758060324798531858762981617434723238185292209139705221788039501132543061100864266000339972653847922345324919817703532465733927960798912239532360689229929177314230410927665576789397939064070007710618914631141262458611978982127271928953167203267455843003938968700366687490403089607525294026862354018673451679485775925717430500485515688016455177985709654975396721763309598982710927119225872994247878877992573624057154849854831734440652880337971849787688381260808868415433646773573000761109682146281493650200032026875954315056800747515492274157636973826050024574790216881372770104845597735910053765972105564721096209782038079471216627713994188516242516379029061099079935201000761045232684663874925523955459672431176644550935845174572373415588952289489362329711078705367350919503518119554598032720561832055552883098339338812579654835917367915629516355266483524436482681119627197636451635693538176160840549981863385234130347173444480669206266427897007726487047353181940245300829295516398678186877867189912160708739088356356243993505245783542037963802126839335911900849722397008140416428693711595618213584388141847240651134102721711765902652439717937761438081064764097086918723529911444619088616464763267643384731339290696476142072105116385593945926426216861566447868340574387845809680447922290124551225913265845098940066447056762830536564710661688607524266346397837886599299762921881760499499606090540088381989098309137881391494875401830908228240935861569718380667980477289388187094726301018880099336238694039250496743904299790487526616764185418344749405818406413703623537410046974413067300243171452240702829215027302124290031963488573188798475819437621829618954789862515461389830119273515243855697631350561506455507334170721718407932901301747421634820702361613982486750802318515493359386597129445140025369444180985467770603363498480196140878627481130190240451639042485490673605345560002991315106810913112617155234019746970842310565080148596528175848196162044007256736164937345624906897301579925674301404307784814755982737852530370133763301585060372670383842065961922540063551693351389759210450842118340277703044555523373438730356773714458072958843749324171273300539561413400418054364787536258868329727121198623379266263374831183371520312421955855815789159310579432340682566040451882448577449265064098967408484240962354455202563263227701361594087039818869489301179888041522415602793395683418669128992415721811042951273699825767527922894124042702555285214720108752960678258769152239255518734139929280174398524435076824750470542821305862325400063796749559859687960759055220135278686884108390634554348414156597582632702794431012976928622905458479163083421604889288770445290788959216191297258567895025331303592923874824899861526422423325527800264596566752952554839528160170949398876646297513976864024654929284907237265751405339106244963725218046145355083836909378132813844635371440197197189021344587629151899168916189694592852433640649588312164376691069219418934982828206368087537351514480611867299595330785266646036320417628463628454966165432453734398544328292360538583974030459438406570843447601861238172856556686891022192520473734750275440142401844394591353396230463986415246685099944100393018215644421701316851874422745923804305716430080720144248748676491433247665776396255203233564744715291945600944650459325985100171888738727163215521458486637624893232377696771191012955085209154040177365786002132176402630173802382296426930349009294357085602535301833008574797831316598272973910175113891674966039581725535507237639099874981679183598862690180825437818307741087431240136822551148448511605144270144590853971650872116064680670757271222869806793988914042506918494812699589373723483238061615154868958881930913636953377801460707735463715099640877670511532299852916676390889245760512615966412507267352949133166430333346693492862105572604375573276135711619739926776991621588171257543690759988022257576908334340070384733940624858805509232260759066416684719906841750822782523306406001867608431801107919639898763389613325882796608112423392444933800072280181853057268372158509461811911511727907082690451888433903129527554909021757653339803232711269605627598770686791208237411591650823008376865930975726258017656402020871419353908797072964432215740404269096550417006130242644053287448721239829378305420165886087354879157142369286125751973568238829824058674328556922471600323590241840887277260503552822171667013499437795470998863388317717001883743881822033788156308700451387116404228877077083185232436004012562627955787487940602939172126235504728560513201146741867831846446013947769957435566925145561231746958329093663409456282710296288632922018896671262897618676955357425470485239348322020421081989503694272595733863594591704625598461634416906041336093440299719933055658314969426290847823426005145020336221691508202492111715092664097327367718878168395588697566656049723085209949868916162789829870057097633675394742837314326797341264954233805474921691966359440307343998705364153692174702253758267955381606119040148607694781476124261258014088010318596230951039397012464403612336253814807179591082480089490826598367920640243853253240532605527203705919172217290916103176323851428551236660797857790706258248166836942286648698137836892991648417113633455040717558904806799331357727259092660235989222232934808273552887857883264623319437037159674016656466406475870521307229081676501076809154728170614929183845651596906922409807826914580445521412284701318043577461741912828905021751401211853543730046661662498212960771091242340493723013901693319249279730698668097675532090344006627852539380038507924561865567494432498042141161129082862547692353377633233473227333942105699607165989526088386595877934926776954314884363088382156541073484330832100618199986299443562354302104374957967076244021794803039381377495720028218087115246468820717933453780816585528824696184677678947675015361012556209281973911392179434654898535982594947200252303844171780759523134480733440003566109986904416908691026471431788434241020332463055179149993190836753995483247707121897266533396276630224848290990753883312039794174365608875914766397720512741315506847268072075826385790564062164614758372874145827968167925968800897703272818411098506437692455839801024920959486917195929315821456473042557336177309247866917648613022070153563686424403869507809757604486646988629291164676575045355998020730669594892583516135746242968048060414447230658302601552079765438908346114009029521120212636504019860412447736230087640210057666019737819580517749722153528498846067933558928366053269868731638136617758376609522542410812624988130702322173215071378559236777402322447189340984709718544883202644292727348571657481232467037880957177158093449501771505155728730865237813783018714780448156834399431705302744489172458678834412405209649161587577879237257048739805573430235884676561282409596209951169910144528005954693879653886114746773325816237544101310908235345829118489782859752138414834435257255592725604327048547173393695002218838251332390347959574348858002819437625171047702976008143340601799909597747613644565144381775487683258155344896439595303644932387442165348063544853550420118773410222503172459419683001858702622620086440490724558506187362574097582104116431724689726541974748120991889570179445251067033542373257015893886698611860015679716463242791325696352528595741647318584600402658800631051204357342392745221599241656564723798317737434464223445226499788145924530201793967778559283463046775695028431998959602993809100437057328598855397695209701715385242463121422601846098683537245174156053607214006382103213254175613565342014513073547751184064215614863269032513478107402673770857022801487129265152926601211087569232823032511139348742660339345706610720451725836018815510635447556277547324288952686751566512482161318962331310753081695505230395918722491035171534359611264069558920556223071440841341851522422302990224837188534030621077673665246083470451221717795146787825160585170450444956787395869997880386333446212435254852280590315210421314759465468277551861609136965439393048960956303188476514815362747263630890766703352126292617449294792854673474738710683419182421787573731514183387823961786173845671660816727511238878074111648201770228545642485176774536482475456139882688446293697731388067424414716609983693122880322828474284637548364523051011203507865727405362606313760414301457862375834651429473128304348258632599690181372597202599190360771152445727273565597612841869372511724522493998195997810780455843706253211283270244448741350959036114671996047664794029784182755438243969091095908689172485204548079167817382830121970167632999216625312955709391694428415771128264799783599610142851668244645531302342652625467080331664682801072808767356759432601340442466838412758190685235314494201093367234930348224002168048862244737765586992836078028985889363598255425715004925455092498535611351410614542882610533770406026646425770140081782781648701817657301805089423572683525003744856909418072147975675494360965478051651135915250824773546081312107809530224582442102621529707412209438972126068767199739756583786574904826567777341229326664467250979838716113602290898317837256767502509189934390793007595786047797457049160266479872827389826477737763161724844411284598522545756442820751976440179857277391561996296306108856693339837736509115231921019709970445344956896127283342450522248318427395858453332600150839829723119824642811094341111905679044847300819744919545743910050796372065368994709431833021566908632689374007736384781973064169894545275219872574332659340994658692645295704998890892621681393722071986114692363328935957869569313222605292325442355041390559056373567947779404185656152019322763302149781101014935955433612963447127792240642427281231771258014984035443180238868645747041594494613006698741756280437962313872600668596312737661920676502222306077517117667311567964929296371260259056318675457719643089510542770947504613357802024733789038892735537395506888294767569762167027020567356897237208632012284814322042237463119848051056673745629225358401076645839191995829278863386047504303512801864004266892987413354614099363097699502421423591218632600035716236901159041772388364849349663788348075259058230703676149117753470401549908570653029632465125076939089891229967072499447006529968770534341804468909716043786124230532060335835312739551997339429662839317281227666455110846298209390037888220068983066540107425482862876231949236386315494026159857862430846045170757593766827803764785616927318898503769029448521908135623830495402858411040524518017666668769238432474448670593911521470933433234630842045155112717421237342122578991664776983970973308364750772117937316747827609004251874882192659397797183037171000172237082507737599852197384052750755215555938965795511511531226553641206687603588178423264001108750088516646647733814758563629229163888534759250190265100318383241967315050226044980230087394792793226257416690741993157655624937719646656135008207490092938008532695049849466364441522774761468281728339675836793967977347591808577746463057902381683918507536008754728412341235619655413962270091533635228319026681379388715733585520201582094713142599383752297737942674562126006642833931681431574352727793876737013609310100013112883600603980594157197989639216417916901072594569568239616966181583824807404417935119454143521674913978797991825531388096466210348599597246231216289833265420434700738241450442798333323131422799739087191846454352401386822128780843207395230043267804351361619380526856847814743779559257163914733596240328115591348289255108781624963098313208837202806372820293688741278546537950481883276040666803546905143231731954479851131797471582612617655467516852963679091633804003145241723266055437464581184376387157105468552194020965940806408641191022130199039485216085932840386745795943005714906682711833101052338712887901380810962259280557352265858686131542070493356674369047441021941616005490170205502703395362018303029410378899173200789632216154469757751144426403895454382902095512477421550543730334377438056920916496417874693410812162264227869476031763992327955808580107237151352154611669095540741534094924139575119195050494169664893056839388831652722285187784903566854674827890446073953182113426391932925344889249424538108645269597456950588093399148652164164322405880100411125802053090990720900566657513631010769515169913501510413523616466769953793415532035372848652430862543322325468454977737258400407880897330150472811374833208096464049060180603195460289523810609981457410935484899791750964683105791152259712160328050286578123385582647694989853013535282697858320011287217928001192073130617021776678438021321318519301239434219936745873859535004129457581547913355996102299119570062238364914202156850757983601444818170404476422144899742835858175552974777356727126261424479355929230570606967339828686056197352179239001612096881142798431658460865875412318910527750850119302666234333246437055283041270497580666724655362276281888432295174210978078687332954662258804131843415313238025995414229132576529261058800562030518017933759650040950072627307060360790873482167754430712179705374856176067199438046456345019665805315527527393571684218179284106192864435965920133341824582963548128617556753039053073610358619528242673515763011901291640035616460580819596083643214518799201259370511119604829860119972453042110776436786646011538116577596207141203756774209419689191847114611894221830050256815978850936891178020375050906492673890852383539827722438723985415103015210393692908140995406238732215842133637645398679963879556395132929120878652234505631481870865873453391565130811564631085901441159377567432441161112268753808356362340988649784294206354169491862550106299159707763093292242542461177335812985664382551184992483049668111874649679613874795706777004623556728797455087973334664606523072153415193613167366067289078606842727853323649389704474890781243051353998449200161796259785974916893885129121097751263409769987873348117052033688548207617418629350153270296231336171656728079872634253058459009561869747900718961520424297296471679478828273447343788459113863286187952787384725978466997182719763865974613723756490206695724482004650175201573825253846833845993333749269851714565585240697882896578198874691238091863858163986105795846528250998025170109100368963947754653622391309775427541349647129109369886307556095167213794822707654010226035957005586691596203119769206527974446008180500520756476865716526389895773427929269153612415097891815168778855257823287391358883459831556097695071237429837094741601473148306051774134841535712975877150373319635050205876607469306779296685261966535242418930591472199000781675876612437427858207853792282685676705892559854606687538475743985290412023110872837309245825670766536161337946018822010041224072500024966786520948980594203332779551345762263414397207723599244536806028772442246604446101142713647579152012738905462636379287650238094276404026073273976233164183358981555815390017677469125769750180400391842007413909458187846583949148160899290446658991026870084524042322325792282753939177927759416881150329179295575165692249127302645175840921152582358746567237029109735737502190168431712537950811528019422657535212087700667415031132196768906197461512301273385355445634165086091954482626081238096853866462572036318306044361079119295938956029500324256604575276518501804451021269593539595241253041538674628848075372244489563849844986965178704480826513968661343074842717896285287065390547456768538444481485322655628585710819700514634846117165748893473919460655645494540271082888542349219206863236268956926803540866217350895609948426454162147786381453782564164852795977804380193377378550553245857238396177338061167330780758282995435678155383605344856418785454212147819584183233074943311320539628368713864694273300818813503086702575948560074207196489189637511566705698697992054641653004201987381725151548478488863382700275430821915468989403577735996736791044131972398645847329453013432094798038490737675429130725112021943686971075207749520488699098684723208123202597347459437550826747528964385489807790330684920155293115541842718694266563477394877190312007872909509273608391685300859960547268824250046604461733623502540116151879876606174909032564184457109825578634024904815139907671455290516935772472849916224268838907836503552868759682911213349249926696769797012238151664883919085002727305640702292605660257307002993529779040353098525376349506193178173643941158888442490324142524231173232405769867589276425238819832760319636755098328201132981612632844091294860742163524039756642210848510706415181775222544640888949076690049936913211484392649772858216956297684459109450272364457299804984798419008267010191148490470985759443850890645766018400388270988985029158122501528018342386607628954320642197951421988121955040625927936383434583165410331196237471062462203036807834551839986401675547066122241975933227454552286040635829082985295659280234358877440499651909207785688125210708215550493037819253676066026737089062113085191884160266739124488954533863980059116997240642004560355796346491857741290635238055497520877829899832921881194405815019129858476600356769377724211768171208079039456296592543515370121740778578699952809148609207325574777190921238720200140022524026879361265871154306257776656156355684882409670482032137992996708070021880495313004577431913181947446876576857706999966947729613951231944232649504532786380292912205674572963164408651313748806263386961221176753331444543067921411124930776356431467626578964811099668565077664805695540818523122390350827318273989173773605582264170364785528642707161482177440099017436790861403618476269811020132000048610126652119282374204199086680584105176928758927461827965095877083138293130485116335962412560145226725125424760178570035182733450218233062944903086491155951436550733627527619753758390514487950420953167953589155565713019485311939299002877006572658474703579644279453137970477911169808890971890702035840665351516623352332836685713797427750308160295000005235155357798661745845973007871357135720311960417114379030589214032860795478665140184007525539788231719627496640159333927148237980813484276975951319455335537102101056476667285654496196796081348272229172948333526603542619996457441313397019717112266632710084186776238564480160183237269574090264388553133088622468417812490490969081019340487169804514267615792224558902601003120787821082680168411037200530785492877190921771722404675250374001948109483050125613297946000965149704557237952490811529312219271457063951652425799425903927168318338046061707147547422507428950672458200556730373083787157941408017881927623769178905738777145753629347532389097545557150198186260642023769241630624165782751059961237903611465435899581910780731212331532346163767344545270818307931447593344653033334384549844092999345093564022688500088733802730653942409663262748240478942716975428788606321847343528582255577735636715090839025765041478852322253382693642752430662623174452425016583122211282551252474400668369159916062720112703072909186988778611745761862807558270399558727927968533266302293514075394214487288429782025145467841316198359526757698731013113938895637572301613247823225097585236275239173279741253439465921213018468168841696147845685275608254763156708208079243699665882938984740129839643628293923479306540502992037981942029480590796620972477840649671015720364195814282261675547737442783347074753478179124580871130156825041008445760922071931382745930027310057331932843602070320013620239772761348284921795584221715042881689067226073823906424630938241148223721251479092098406962009006826547185142712466080063263054427303877709096392594461222872336557739490038369702703913242965392132332779335632367502086946197173007368801483087855810161132113972375134238099738335637451528321124271693195246287912744394477084938176888313802094326088066534922281925448643162979686507757801576515143723239834445082167298485422994350960393426001472643710126812425565234147568029076888523596206744296206779617841355047834240333767534273181924821894479124905876193475262325605490316132103576047223346878627240937136791999896580016768693498831652664129025227118275640354323344026762182505267051325945252239371574487533577875690757308454337746845216154804244891849577393674689060092802739824486499418561165051925825128861018159328530095182823127208664928436962821412125706475708506413906105732472944128522316555959766204621290578781307410350904500367548641631290231826701973662788489684431600991073741318588556870538318191189017479509839363407814031607076054391867438543689712229922277782589871399727348339430398919518951232196281398416564037110726286480142418321441576068587415607976950936340039949098624919490184966229827337708561195303774207137745976433465694929977977412877790845332753982123354436564790557952045602266439604997313634361572567909259967379317041304540639116359030161580594517806551575270549329892607633056308975625796680886607005646723776195817092274199277318442218582051261969224708481066597461003205759750390320819592647842675140536662288305368160040686759613523154145886153528240776342131033105782687450145657559090988266905388697340731401422262452956846332831964778246059028638789093038483943966651001053279191606179400639368945805858247679467343898600847941275978868764625248142729424741735568714668934336549373284773754267884029756770950282620090234208529645418360566552480622118303786796655210487218312647696540336638362838998367285912355710068812879820388908978528291591233470771950704740429614311294859931764258444791709844929406714318794020191142050108469380792607670362572876829346175957870872931568166708566252764988338844325436993867314749433749145892488429800546247060907039239967077042404707084676558934491596294246635725541424602806413571615020979419991205781760891444684936784180688810579333164590706543042586846247264669539184025892928773753698771538067265826827773480988572650327245379804619306684913930991493549582136557212586410751050779464079387855836110567874848213672053961500466160278429072994358236255130211959209217452674920047949979665500580172761404597430350992462649839721293298579318885914521457680277040966073804988311782856935800116399417483267611770474297593738514837760381351723269452137283896865339521961766714743124572339744883275560994827053896830513276477926525943192932719318116508020951671585781959313056087213549042317407787766580272888893700813346497370806428033574446432877440148763683787505510664394608152799048044638806606061032765876605605124305041740333641526589309745235493292773500869423047348275194274009867076387507439845501968943074387472377806270189894557962929611911838708909773039729631711879802168639673291339848499912628600932534509179351824951087085958468745426674279783087271015340392235323317677420161297525064841872913830669804333068756989514255700929502572137257406643161267091893245393354148654670343550101100572122954569201024434555843888335932400896613347100775633540414213882570503239877672650170374139386211856838642458453060593159397460482002798788641979516581736399847258569989055696174992744456723739979777834640849148667367844851895381634482220629897570214871698530214207211984078224082991803487350042344963198631484113630659771238524227169914803753884979930194248439895486177797983155076966401205293764345766905253045924086158805754456953762700922292064643631041130730739168460654167055516335723202631368079518150196808603650289897297637645479814021227794455113459598098632850003719491167233856208249364479950981633479101013912904482241639101758923041984957728256781476675001329805195002850780715800127476201533126465527289321481687058396415097173105592874249780221200739152551860163762939226367237398936688002366604195635159528412459325299404113182879578029220584497520686688517397163425918916077635222390021344697123275506388965295445075907853406021693777359140744272705144005156135871028761782629758503169275777728509807633583932101953887272099235657825888590200538991327224221478818737095334799119505766683686926973353572056187521639584694175179801036187467267304065608732962168041636437149427207233263450280464593968791018023280748980113194567029730847414486854003510268496648255204714774468544953589434848791313300500084482840941963869877889630315583115594149527329636598153416283109794293954684186385380169275720632540710994344241033488826793060080548807210434105245639221546988009400824900035781532189710090647768631340396677470748924930095949489996418908460445065507571981227471113289256359418667580669112874075429860656391803759888709407380481632684909150214940269529366152790709229254519866649331735331219214606577942591211978079222690301640769192312196150625479542492551104791861666010184329015462698705301963103862990052664845037683614431084231880686643833752073042602019970478184510194973569031268549025272272978391042069610658579121550881621183165401750132374421140093550544285486635911253466424847653036979721890173153795720910602224587530578108033361607999847645954282237423435882800855321885069828447964920964299950172516618154555426273426767150154305588923180490455291046588298297064216420078281167233318634419319250975545192442372667200050040698835309648852431931880326042786101745256132678457958328845771907403025496526637983786319191287942733687818632282243083161007969069906825948623850229673784115497462210798517351097000236904910902099492472634675056675604563803356304529041407175971440447596177197537912445345785986944941855586325465608501683668745394529274104528548764789708800035534355632785503510839778711978289673078745443121707146408508877607989298574560751521490337812070880172248318985455738305727544784747196515826833633732592385079870877959829285028679631938321277907658910512262363019567845141433603166837605561035150077405827500095764169302965201984564851143771850743287959658787340874361182563172442970540968268240124691064770506739948120170076087812373554847100528895155169617562222266445549199595097174973032650499757201540978817673902457390635223342287132548012315657474934973302743966222375814934309048373232010920540120721157478481647994142255342746975364834363089776314662886307699512726223585365903412299902797516025533421033514002232960163174029259738199506869773037487429557464117272767984229287011496032253506862600531721610031884375894538531255605294333043039920409029644159406770820893597431210569755784123366990342381486952097001208097931979926369305806379041016726912764592301966964765192906071298438280727724327867487890430820225810603777155684371182901351314730682552478875325118205104123909149695540915054868015630872484890796449719425764991860489500139514063120727194530675214701039198662682412842878375143765570573766400841181612493722974656455203360613592504565002362113714405711490078185351105740750649862831924725742139282197630014850744971292766745665235759791258435366592922953949195059315862187514698370050950723707877135256439937095932187474383007381573868016231511233320914014773124863918126043515770186834047884833721758912554838164162802747071130559654153792597763063637966917887824425724753108468068527432576848470542771250986591696227735738617728221505837514136754027204015315965807016763075091558336816213900055698402268784751897192036419252660988716521030898988258806784813912512711469421798705913183441206598873608492942349018346958345332422618853795457721433323666270873775396269043911525618735143053723809666979162018046330157533192418917389295863486472543472488222855208532834891072238425691773837978169530102775488561389314447920201752340037571287843099442352878511160437941296173277486599770861511247822312629322471991905943574994950754063929933121221047467957914578744570801527982420690412200018994223127532209449793830511370557980699999304331265373782289805016653508823185404169456787200038625027031258855677450483847135914947714347209609964115707209716793868767783039351325463066116613182375012347104882376052184255967455911922130496564198982670706346936769318135828737843239158689955161190782133725972013904050248630364963966195173084329172114335614551763275093433798121085799696446244142367567071897666681245035748480728645288147403420824961303781426677580254642920072426000925805517215525761936400857171841824790167923572474380289359413152015657918971805489195269489882141387781161345002786858739938027453180136269198609833973095482216760919410186762411555182815573279830029175532390138573403903628631645164860573926104285158802785792675616174551093622963872341193704486199763901052078022747916380214559670370447188654800542923275332371086562061994596083343639822949339462331353445421508783548247476006071772743645191429633633679620453226618733297074610197198782450289097700858574553609579194196818393326256540978325731889847141451485202756914339120025693235570358927781239147128850135848489126773659188741728183799586476129316428668784449908642572585176460039706844117584962672422056701081437812064258418628084005362227404185580309908060657986243101915684489178455258786251175318637016216964850213107046857356693095335661904332551577837330475487892859598721328620540984069530171268394375985228312479447154023149782765358392964857355759948908199003063347573185875313141254190104286229833426958639364618467562224104854581506417508551751855300360637874274880956550429195150395470195494546752940958539022373024920186261674538519774019303357287598680206578603263472748603737923601573715203963221328658673000213317734270229191330515807532596357878241276326981749673081674080520536700670737287533558093224689046099160105762938530034350369959439847610460063357143920976149547314283905115388560212266395509742373003397066280703151457759722657879806745367146185009803473620812024737659496372249710736815727139187005433083843393041724713147540181676412308053173999386774949085778045134655701109751465851464713113737016315917146734750450046834697740738561814325193199152670989716133398868697568032678365958566250971477608393146417261573341083237794534845073113201852774546740781951245640511762770572351602061628096683768366880277148935918474562886174737592344200146226800726327442521612568412583928034338954915781393560644669637159642476187344513143622716683965817631823990299504048255699841138072055652249942421718002691505573971660079375588217793554989904236989745705357098751824521150766187642433939527448382116710542598322134149518002248049809028281753342219228365034976940706822565566994977135016857607973158531463904940526036888485268339687734440303886771717845799826146082579057297607470506321534710387057029007730453852094648543795556826365544153075776551103307241978862935800411895820993217880915398474457845530224010038105818254961711391154713283114400368718360673824354522194075679551048377550414377602692057559090878958550033381270589698062382753162102900396229170665341602003340600547547083332738658398811290808203408990833715337622758759673856740828823825523123742923899908465144676656083895910201471556804758074128644384838690130724052546672258007042900082049242748187720470991703843527966828095422586725415405285623959531001087491883508203445485769307031704439650576570670887972857218750407379954670085330419873741717398668307398743182667306493551218394590782002542508964417253199485976336821710095284329687954381999053360129053088282087128197539601991453517016371949559253860392781149273426886354457994463995331416612791880949190251419402376079997152403726114006119005223746377172949424798522605006055277208661079634324949632647785464971852091444134835316239549547732268906946578415011334047446427901143479791087511732672156325041739301009519650754956038543307512389933993701644893072867362936973326669883503087429020053042433322704060623526101490611159680631699205225351569775181885122773778458196730610627180682692856199521588352236064661969452833998945352302964279098290566993481747807288910169773960492760128956349284709723515384793440862586550773336635835832204629235131088741322932361033375727630540693229531784076140979400601277951490796788385417863818164464670239776845079354301524476112804979811874896309881725665683462448791812578705430868795543691791659679701654076834936249230989550123950951525879946049466895561346276581205426092035638583148800455462074302811093975384109403955710129682029222772472840219783888985326659921110730434269627140484588725880647652931575133309428923176216957900606369744328724457419179751189001752151176135605843573365405533310145368458131070636389367856470050237679043422398194973647520016913754865573717082341075688516428748233870477863578603433678518568881422302697375186720932666710177626436693694299918778492379305410463781972620573553618194515364183918887349619847383888340520216912174266757178739392342121924646931805459895098846642664402032587928388922197504848640648406803248913911378271030746491104411906258016892910666960578597336359738912451891004454351299805594256904256709542200857030646867753812567061442339973368354531010620583866857989696085497458723576645537966928319528750673611972033254791695585638190707274089480387967285386722042476405593894402570789029070696683432159772816982997644079559879551675335697823658786221902403119590767032807037101952469120309575792596974402856920666403185239094887368184617105844617339085442928429718811785653183027867630988300427519913334146363921773804850025289576960462546534024647453165865478671725374497732407318768661757299872878209648358440640256032593644745417938358449551017837841302556604887714928198789657436043828192933862509549975898478579417033274838853770454102124337182007605754151523463852650420893386054045738664959735549253837371941627457424665641520929678808820845457538086877845274553313130940991919535486656675181821234633512735218879407440146041543020631915287909287180712024369863412004818520873300353669114526163892565311652618153694914840564170223824426365413446708502930958438076548303502626592426871593178961166804450991771952221788794026316311880652139366300273790624720850513159259733197942894510739418580000991294763435129624006066206074128104906902182491443134704804424017340085616113541036905098181458134798781483257777219802329795491308520203472084423334964580777084578148225653441426356312208084554883078581964192322761252131522730611106195643832680703350873823326870322420009121214271342293745720385654406261462521633338038208003061535708112683611282245790973651633081698925855137468880072586706845312787128196901055268459412628049714016932444505473084959944150912113172347055373831819196123304040072028651114061847334940621843080880255475671057209091808620299048696295690919509925933908396465627425244086992359911448388252728041528579578329756529711916026900956494314860882630310314347921998846702613811363812193450066436813617167613582590231636968732869208947203120392597637878129810492946263455598497284324438846586835125290007675326214858916687229116320309585186719705620357542879574574444044382114328842408169866594589968299094939533817113964113956782501851292585310185883277685609797761769778045203914159482241365481014409645467952520189130294985403496646983426003275618708628720566222327192181828858596284575983410011343922258152497816721755065286044152103788745429979520605650416954481999357761137035701109790555296537632365011707044331656680222281231145659020575017268923987301980713884804808025724777190780509384595556394209018544248502366291765880914660755215424852391836543595354351150714417471008172309503345930986303488157411126170923365258128877532923849380598048099429363137005841096181480720805323548608576194690864395891539387907712679750164577303442709964493787134192092939882594467593568185338107326660206615149760571303954142310783251637225213421230455962827398282294260270078234382292774032594242621428157100651559429049175243917127976342044368574595974531511923948145065732461740127068671484204255815856603506425988364015232561978231312002606591867470861215566316424700673592351735771604127762375874710593485299248271783496920795604955094419547875426634378275978914029792035913509057793431789828339410092886546482216510318749557024938718317549416162694249840980221793081326075090744187231788193929470107737494197793424604869517218355066780725653323229566758982879643883700810362251720126546121342137596277934601922615371231935347364179857475402159516300174427844929247803402891600716582817080546157458231379475478321928338586934822434836011228773957961043913042402375767972792743233368195584316455064444901971080999603286481103589773109742249797567630477889149602974915149559469365011462536671014252557168087689707731370977932214359710294498674078778624172208306911163207966483552902479359170957367192077704636234405915808599498756351066328330173053673889056518688707430927879545312695958191434918300301835920099444566070712867380021681900876538792206480722353954064793384734321758923693786657872820358763932782831549330452244121980685661897672950456465104234033656459934219215047990075066198050946014644246550725925533092011849328144995698615567302303766684290491954135828982827532841946952281001863336344680007951888091982359329534856652093524246628420588058080206301293744503346018473303813870446033380937395965306148530124418936473972627145686541906001255563970480323474951399315842293465107815585625825259359308854368351771001404465871959857490989506573686843941206311004384974459760828155609838184850230428016896118101837435126466524124517036007684844996981109958542214092539648015134447940326247677239394895648372022803025111288518063534128669043988351073080616789235914350730996235025997996903586952689403326406598164643331451614908048117849115130125116239416730884383974232340570081507080609895664110287506128627458383221097391079774825763497879980208033208844882370968952242480116767455774744255905987245518317544860845870743472912084516325915736513394650248545923483786406066602239880525488512505868453465688463278678787258253609948791196821618729399850731508419702069168786106257114594704293688047872225651033631595260802143018227734471414242528039820286224018436364040789274075280424514617922030760048802291353706069877949487734827166768729891057417165128092929951598261114987153762302346758280674659786244793695656167212798512639160334928014204232931245805375092029311413731998587720051854681024602918240851161007052135394733182375815483707401484924350826190626990362739141333023610878589517303124665967973546804574692413119045074078970341286146001314824933576136171123949059347880479363596531381854362901877141399682639465807516093831838877720202721110351402901261489194255604721665720326626374272743103969951749848733173736945121089206816269556705548967438402736376232593123002599774017888869181005486049807596529273061094042110009933738473832070835381578539209094943861864504339449225924352292223993739139587045715878997606133943265345823623524725245108211388149287459167426618780443146401713260940809089310299911138709489555766965996143816648170012039243204349540463022250899799625858327913545038417699526666105903361462836748775302055307172645349729862888681746477692198188874199077770499204810760711139843773900871426405767918073500986908393515959752878371646485403971592187015624729182551925804664718854540133857290422790256693272738276143532682071349698717503295404611450653108366078684333202817206074618288069498460074703056043208929768108504571301304318070678310182771425069024568590063215051772396057769149517536639917363906330440731133002658266475963963723482784718080079955208653921450302603376185967053768387913937412186138727965441803587524251240223164500396562127155822857421997764621222971832347168224346164599180364090081210990918532988005578815590611378608673626917061289914614570284219869712507974491783491498737828997386368208057005859244191193467319254283099150416296388978418579119454771586847270039838325447398793077483177766390747943538671719598289799033310932712894585179311293900357402930769324973522163829688753048822015397359018025403758585775989736100096819590801155088554953523032236051044606780629670612000927940526055170288463701357454483868086371099179114872708397038461644707397194164284414518983271804759411502867545103096885243127410396292145483650270468365006802118499060425249338264258265230598814343917422733800388052714057777160561096368845959672684397352174803437220477766549300432888731803755056852964358398701697874033621506425401108734455743518200839299850972075511152298431458183636810626588505317069960530698161513859413683763448499393288775644115929227170381645347263579367626885692476769581432568855137408500695534104906102987525352429706025185957472499955116878729422164508745807384349877682878055955221352905340648485775432535443053576297516974025240981368099815338090448796003346324609290943287496070746952427774994623545594056736162308128738912708999043114196076282498534871907573939341949300186302837919564655531278193007285077825276470870575847613441806663998045372796974300153504233706134513304401904808589148905958833139421470817564011320539806405787556914942389455061531264099931459832868355940102960357750527567605162496539214692181862944018527041923576080592508000755113603346755254293586812358461964233549884634666529689881597984436780462053044232928287161120793411051000327448407348160736739172388123515819552859718946818441470116793491367214320806178816523889025406086674441574823059484088752965578760128100620835600035166851200283288900555147510648340049258214355436943248608550802119807938091185522994537472838536144467919421694299391792774829309374989617084530414055140867203338710055242349902595317787952337019499917448742066973506041425384977818547466705536682822593158254169616934999003957608284223227198023903146883408930504751376864364729916383506546864623739625284216194426081774781103778901395233062389074453032437398323171993540029662603264802028145648514885288721566378188683307235955251533099078311934082117727479053663829033643824168365121221723203432976733525892199649600855284438996134906000431149451399044091367737158305553773288860523709314686737654016845624989290645137067868869887752776129694182228376334246326263809208032787315701714839064252989169397595565724854501209346211115144168305642081494169627966872330991462381812409523208192413292801221812268180619847832139984213920987847343253119806606428113593541201573243095898071403152671990361061303442203801797629610155215180116625939673821028775190066983084230710910205341329963938950799087465849017530233612963788261209433686716820553929455469171755332389643201549503574923376390697742566875708027376378558349846921479265702064987690020440423303073735519928655041980595180431459798616255734579371714105525805111957256890091987430296519208725153760179629912122197726392079989538364526159130888714526253223285930109141695896030785746633781555287837076829931430133311727635670219623025622538240306941854870104104262636626017958982344277044767462411140709639085449901919908580684324960814872985549830826912369317863727556210316269889942976726663419717793238161964389154466077423574974822730622901276520228463893546124280484492540694671770755282091358147480552300539133124821559695482715017199606227567539949789694145564796430641050392840708450901845983155499006996981081369159535616310058107479821799574244185760700022159855881927321677583356453025652590661777182679132436339842439837985797539272016917269484947948422303801161559563124611674013269576723714512193447391642759138929931498350559228133895314647358245791663071280298319989147080709504181212732688127136937511074740703456489381071385709169161725523259892923848944751837495196616185412472640669340722827032680703663008943364436667880412368463491361096376341902325477359877537770573864814457689296678914175351695113237902902009543543324040888149921023920366335075033165939291048599552433721429523219204394837543202374497321257479123214388847355944603366920897125332118960307981353939627512345263162261145038759826344739923892084558354105773746500313041259627676255189441210958624174689235056910124131002982291750446023096273796574077388995768381171214154499273024820786503798161579406655035843150804902288011640463658168282070431640391009793914054231624644157440820038397741564021797379369933731628233821985270314478226115120743294921986896055278793719564596992507797342098702989060950726482200312517079840012176450446450940601339427021865265770561052532865084628485340559562257132571334583636751485620281766943041950541240402042897008203454091213991781269402482184465772278644514400345690616020773340988283500491841241747012102203736780540155939768124407612105119098201427848935324896702892767308402490972183868754188501716419783932225722544598982671445049808442479070189935958241324345231417843626374168203476261557453768060643717789058047297257684756955812816924391556688632166632447865533351344544734654077222808480313364299297293647208973823795226776074182527058086479056563773268562185012171821405707113412977401509405553656045701194417832163943525704847020592358645113041838036395351660403006477994232570714580388456609679189555604853436467763643934806491425758669495301423932922937938074195443533124930488291900189869523374812760571834477040071586211913224933045455600657270266005728467331892944384318026620224507966969375595870065020741224479682518813644140549261075823431844467097842490572235089553167721411559188836665183932304914866512292000110927866962435379321348692152596295966565008485826275056243467141245648006846384001955759782860736676412963261665994545105076157635462389025127489600586700682072810697573324740406956857074711212783391846919460775234118373648714148504221310756711040570627074205563062187329667627888472338538844403188363733432294290089732453702307213175572397561254173439615790822421905587110968137309699564661101344662944751706135056491701838633914177006233140308594222001136347813582627397340808569485442130498976883533224906459360601160393764412503270146153322497302415433808652454403534260115747776757777046724998164183203931657098005303049074340879895142633180304546167967379831588166696922233395723007138206876304095728240990560223473311018311388349938878139042734255675534729256561619239144378636837822404583748188064678400083032254726977896873461247830737204139319101598553641966596578700475483528895239342515372033023074768683740629447126055345726066486600012187118225157269438302027486705391364438997507202068198997136101981172897367734774383986488952594473006769117770870478172543098948614310592893387902117045032467632383810195665203942050637180452886806114272106981546094873289443879290366285280906393481435026364809405700465791173729114491854195428097109433210406089070580877147635763159441571659402900299223547537506929986685271610428460629722677354624677518617353785198606170075366242427257221706454098770666952982482411000635652658269799717520532665807650482863664866261028870650235363266131485759754971601145987093100320048950255255380303357108827919600846226278723070488566635024541309782052244053243846538330413694035346256984795321436447015358408681872935782297490474197387830525502921665101435966745784576106644499199913277289455602824271418572672367391444099480638076775949455830459235880530194464886101332784672076205687349435002006119109705652012826064908535390039140115058380729926100365566013246421885812267975978549145580027640702718682685161704843412017710240935900177819892390032225045269209474570296253413033280006975808460919891010042425538791386481619895693258849022438734037540817447623609954721037771597752020964273573529596428452668500481743933108820398149359395876544807742703515068331960411112137813407431616464769099602383789756626326102177751905443895460516098792046263035393295236999035750710033573187932012751076169516468469099080137209148063840293715926263577465272094245950882920367133796556518917947999020506584125005888990880521019910870196878819581945922049377799004044598306712807908886056998446550190964097439763347598552823821640261252113756846809495630678754718022579540560147328770771056981694428856484687861133048165384215980814169423207955895474696272440269593271505588628751183280340332995908716573213092006891020570049432751523104296483627989415615295323031377625237952929709177312414661650969750624671337944597603640654694108393736946795502291532961446225238267061635418861630853602355368633124503520531831347285012032360230441683392870476805506618573133239918437746668545022106918192284583436696474141396304291611450732116198704382561790224320665750697534490171857719424514707185805850072811867342763345451730410529215235115039700556194889582856577921828859292090706685495483983791353518563039509781363472801147248031302476786770952598547443468918255504477618355476742215609402945654827033646458520088703418143902047161557746868413933156732443130383889250721059893106685883500813275722087380643882876763125615819909189973810968504181739419375882355522666552425302448463220791357121248441962584463209042916010085404502113369885964590694062559725103828945512436028258070508187483766335363025874189265220086129439838063021126428481909442611381862598065428798283624432741978235773604053672308124711479762834289269610721627341188728535853878120552092482593777711268388345797765430355765569492873581968864884961494101278789010170981022814759046247999517701314211536487897552401983697541737212603601133181376521039735493896325928799470871216239399772178503267503041923940362563786797683643289968389771613783011532468396908346434159763948544622461754806907516634343902914667851498650091447994771268754580819860665481186526760159270887295527135811183494493109241378863952688220081421497813845403115918573913145145321966635915440935913558186783689487573711398154810078598407158305935482593059142918238699383184479155485132298081831925720506464931853462644290920521593019504480079133950216983880547696039774781803956043662843847164670842543177613960565383761084332643245686317668080464182086315393590414069891261881991132920116752370989780853595140337648177048942372548009661240708840612131328997048365947986610117124947056009808414732816461058571710141101755389736365561264761115164776255109328478101622842482543156962456775844102969416945892678109846596067590106564508654132041163367846413409773447553801738997316730881088213275943751649816750026316192968824377422822960180608023827623615356350810930763714640586951564033558321281817922320688037862160768795287422939965057772287031768316932965778832811253518892828937947333490020521849144824966727018617895468338677154547889702941946295393786338882346973345084168020178440472268933960577157188144615691481046632729147476178675492045875115213461638260204845877110181247317628850885202147575936718203744916151386946529631623807338627771471242543271586331189994396270582565749110061095783979792598068947094372089730033138120775490156791018546239196853415734074332857678688561312329083889254321655187679263349698714943067158644741424021857457450851500199203929266579440346530741225769376500076817343522566102413287968021812866771053743559695899170138915933663339315243249379565777543071592791609265746704400506061022003837233279054449363013319049268583246033906727251980355239509175867099844633995740058429470278270344117438532588888320840793170654422113203260517637330926303474127024285876366374678380317624547837816737851109343324170199474164246555803247684399883685625835324966757091245144802462411365515281430610620174730824801508496929662626373295816149997839189571178580232402389317089844341992995542715082347160713518599030420792188281993675969247626617232528078130367352377852412013404870431512496688449810651483167931131791016723043140338829640420437639956719160008346163549419410645905451022654329254788403133926539931711285932105332953491219460223883304104184265721382641297975275044246788187372760075091575681642488375857443148347738566875196426607505410049202289956183804608867546739533044858327854027059212494737713362768961536709504169622789056627965226262441852869441533658744338015138742592735310581296748012381862942655522273824987857830955202917246714501455743930760644548542234717902736213904661063407553361244731429131340914523655887050313827470224877495763901682695647819510376428797639893010647061081736879213396657676165049058192603818989499240846962159365710033676134397895344658826567397880733531569529282928079714729758619200724611157698225335974135455422887914354290369656314756976929173933894079298628682794430773285204201909842677121692596291247655617152987592415343259009728842166835125728317163150721975041290683694583321057679087366635205456041136273861192698878526425396446718321482149074007085965662730202070319570718330093915756125232470663794628967700608836014008700775068027670948191279847340286922986198711349520995173843780057890976235433985242180558269838453925638198148215858846707533811083439737560761479401225695745677487503686867676147911930298228156486066116147276305329395382017873360204562924861593795302284448845160173840085273500800473521527231597501230650769282309931178537297917345693288874881501260940809439725551986131917633253301484367936048792131866122776815772491452133600803679012694692966415255773877062983979973711951586984814803264514151074499072420029091683190741675984093315955898968957950621980857505792436107494463039919409309126180452278111091315500041177119508103047359427045828110963771381787492446357037054257660829413179909768336322711396785428882456007920446922893005213912193971144195300046845778135674364284276120920482521703178589235340656533191776956779313847030789748199775141169967200976911679590401247375226285419543949397282188706395954042767663884284615632726810961087595885386985781322701940338339893412923160605018011363142901984327420818366269271377868861683931788358502581601527566348494186208984275704733609667937485253095660722306597588404991385602651058776846371293540851297970492680227822504097915168177718266764060492967905075545685651051511616471905214692362942595321927266280797474389886586037563628084144486741662024422213168797376393246606192734142415238593258414343176812964428505449233218999962926793959471160878666149519871085989789937799336432341590767199182847549491501894949855752779027167752273377166960824919154542988111104940266495574696335027356227681348466311329865426488537678321299682943400781112290429280656118372671169168131044312387074022844264435639875468841999213073797132076778759597758379469117071593511686051406899736405843259357321338250157483516796476958296499236658919686917965862311274083720074780398045542842015312843935976512005606933137196596451468722725737335970372993488886667953237846307080517512174404878205012068664938531993446094917255851172825896325167506193670366904209247550159173230734646364743383632930256513028469207303385148183449319640444509088512690093555666757537821560614210999680453598376596939796761266040406737423054510764088611927821659919795243987287541174473271944704368630230972395912976595905651894050445892486979128021637162052622918749822308587093878735616532133123935653259831624939073250755465112210876096132547544410463380926619172378092542724859689281383465268207014422704660481518698121097344264533413914136550447435029894005077769369222495961361070652674207047301064221436915147628658693334769019960253717226513248404507671073056484113306645545111991866288747607774841247959289534794922534047189200729208039615621471604529644014858267468223661475972482132918850144104898270174406771592586012063115823322623774655261991534458620679545848061339283741943277873824157203011293410035551689633738769617239179692008452770846803188650896344952438564967609233333870345460369678562704778490730387488292863681782020647578876618534159326156608332946708147203495013683315096358322676699622971415755646931729045936594267586759745262759310424464898312175963945979978082194308594169678519572061046394303296367401243958406264292441135786328722189444367261616430885368343305718453899879224341263259595025671946115906647928305009019776095773915920442969489863071715392782722112773953339599715760052087101183419439152181273967865906793540393762250836218944184112454640040550292130626356028669450771105090804047105333815179766197406253070669503881187974012753158115465241826100796666780229372453203762234614865351151991851994923269661519548620366968516735060066178526538886682593958710356851196636448423121540330282324875885076533274632228998263805618632353920506483682581878682040864246727813857172662710530299991614593856496359126792790162082544779273920573292191545542558732887687555958277669567058246962899253184489988552918686988947078949510870578726021322185833042369614191472905830416332542953252783760417616018600493108847153186309351138547867274451306717335634883411996256884929504435079897205884703017777003799621311772805492786329809922515773549010122834919604045509582544534279025833344582674475326780940648045202881191561304603871770761867947540339765763620918759419589527741109960119303352224375522727470564862789469003984758312691183549470183591510538974857006914089119422377771902868279031091277515009739824529288619009190595564520859056378929844071635143975918443842038398764574300032700340832899218868373108043576344677907698943245280550598975905079930440001034305613125170710442412377481569760665221203202001602944549333543729433986169650442281087441461756566089263793190085807043336804546663491904152396981552511393682155122302606122191874972043039086944207451307322216911278223322743302991397575032036724782692961427070296179376615717597670947349061394864113252842778747057038173885704558058106065019849522729733102318768303816411653375563314796336386230335257890115798741019508430847846333746104227083629466116014807736268113621409343686216752344002465760496277494777776910237147425537125206281067083484439470821983271486224176496896664333806243829990983291250798782507917185578267005962237750220064812405677845752312958983233007894564336841364324039686337044358000930980726213409842801226191539379222898337867798981692754184426718214877187938965757842508297713768739262811310273150924864898170670792635409745444017183773993826823492240990611245487038223932055469405919661259774035086638242687737943909547750581772768540244676805186450946320737515123588828131697262673135195482767294604719460067309568583588426348981657745700789116427667534293329487533968481992956423561635635152579159043978107306245466441127927705683283410196111372685682588750974379850821266010096234964303228099351486773900160013448344362819804272861196592378089974490342297807497710777711280309478616442745681481675648481159702341736454271132546830727745029528960038500930839689611232078022678349946796168763972729046610967597053131576985740107190933446901496831949931319407908593232751778156329414526806975987509217262631287107603117751205290710928912775213411228764274690982170031141106779769853004839170626818186679693851613138813584082052535601574351588890470166288061086151288769873278465510984072693584146414254332878836754640226509349071199155831132793035463559229555232331662794243396901668576157494980981151410376598508258356935735565379564351308495341327789904720737430986665040543953594072795347830942759714412671221986192934556523134182342231858082068732504849293874977045487277941891505526773555628051117886168080474638910839883819735417413378661980105908018020997941788555434152073589260902390328339881795209837382748165591538429177770275878676559376604406009373640188588067088801502539515694005099727394722064339807632490781416159601025282928014502469555144882826933465604065025630608750140375990448008892969508135727698253180185651205546476000919086018920427504910293300849544420935125475999391833795661630501836003832978420914413907490406831427724059785364544148131427485571833849023734226981999490831086397961204208119106176425331759258868423095150964026039830170396083102785056955708742198809412727734025205017630860572804129690666159454937798024303953791706719708527443032790789636807311169252663223741038716241565094062135210693625238239952573979411480229443501357649342263160873769403812866258368687363187573909912917470479387409472768388597524187716381810219667977456050652486333210425802236178684466978362149056933959620309542248907186123223669385016600469677298321646069272861588393664340789531545310071673546687621836626505386709617451275964543557708447139853856720492795389202036009566852754836947748021498278347120847437366122086412409882702181230448654212310871029916729827688710676215499552331059463283013597272295892113244324984611065241939581660756657994786795828093025300193655606733266705769975304539524012490560251924028968650431896293553973470684042368784423182161110481349320369447586072599888223297036690010399247223238699899144935030569886773448789538864835796018466989786414685131803679012945680849346185191973637109113232820025102762875729303496654424732044735715026050206426348513242701425162832349251196336130126393390816769228720981022814678465010451848265304349305142478782767266153849723492561206733769193079736233632735916520443431695979110953613931876082229967686062442921938796520892815722746431698868643426092161390488770806264873630708019126325174083495752264894529139523932436635847071888701985563040953634578295885852280877451248508624014132475199298510796791070925888277846434730387492047642735609240443485153751331419342985694191311291031684193098482396358785504326334547549392699818809039299316802281794114202289189370889301771604882899460988906427445391962918837769165817092988994088236393716328940016624588127507032737445580176181508743534298688363410386111459202270593002876273075131514680176332024655609096608457725215367352624899217330491998207500443669595592180626097014420466992585578344819738801088000298030758134305719208713118074724722246436587971628726027729544345397591389908419724562042013289047872459878171220103471827283910195934178760856987653635400347397021968187715230008008353351976894515729511189046135626062046206190573205758124050526915949754043772867965502329156845531240656439478582487579495119196686013351899840470605737632824013963734449445284926561217987610627042232244439384429429975360720196168382354020616862770372134908856818591208810935798987427100845108128777263739461369540866750366559318468501830529118677098607276568257948359969765291038933506410432617796906947561184642175911475238749970166342457437055780005213676051934237589298705420500166728036810063751068429790612688111909279625885913897433562500753920491482296112631303740133434875341216514736588558780704125039489602452635570817226628672953593013267202522605018760585447554284097154285332715599637605471479701356597681273378820591958288230360325168894274304519802434845964056757919948769705958889636962126305436632034709564553708104920940850633830196518542001554471804104496150507945232385546816127654789319281756614316459734034051615610375876015552952987920046662476577811281909144055778469954578136073843381551998087682799179120785497302356203465866398016634979588658884589029513638829653532980937435457220085241208604991690795989627167518338391240297684556997323193258554133619782017378720658930820257113202612599521274838071901692957781910484962459445249263635218759505792613621000812325105264139384009332934390224112017197459434037039868474217734019094113970457504330396335468168807865352949804872363062635875848336723630148965895474796721829855778511061289214129439929256077215442345052437431978192477835488923977644908046309192699195904665021716616326761669292243685731262988344606950261851544875171921217673973277635009889384455670655007588963055921186794722158976787083883716615773020441575476146400962967552236103670967743717649557297695601260216718608945409939331334399837827966045175000970049684745035859479774032056334968772223648085438581680318860610206553771816874290573880153074599444240574812323927377805230209013489502197911609712472841481844792215583151550142179923345972046729805448263122563561115578930212828844703578458516143092908308766111165728999097278233879907072892196831849796049717146695096147327832173379278707258811467793159589777117121815441044053961867119310648869998301825501541668257589776870227743481313679809661518387158513860831203603854345454729965895906788325447027926989121294963408003068126621139211284217129761781090792641175593079593145694666081546704882469531197837763932555060692715818668001149447100605676587330597260028002965803284492272979846477145943970507220750866048829524162479209429909894613212330641244454930753805126976910058092775792672314655721380043149536336999370723939146941804152150561898814434553788180653534108186778582512517671201799430324890955475274098233345644126749880239279366778169834898518434643079103089774527605722983835125149214582421275694403374711917446570892166341842386027505583901008522352240859482841412250201912987391383299743024587805120154583108679630868941601586635166000891447973558730414559082535285081971037108469127602217671337675105682191395017575955353762889410788506383012155591035811514715297245448708712057110204636164231717327959761429950448799651414926669368783632234820703988613033913966454502664155120746842420511435189659168386293579344898280638274218166224112897931796936792900717264161792520499800722180427271187346144878706585288599022131407583951395464534788710491388975489494764860143139214214848480416363759050848276483685637803464223270206966480149463608283733805819331669866109272147234132198515799467741582380830128027199393506436795796622851863428001037031170881030110707243262968088535920610317382177257437553486557984333740412717017905526669664780675089124570695561969281240378712588666938645804265251104593789849552829653116495930953471978824357722898414480102496116113409606328056385303760312708310422873102453929625366185613653684155719383067918796095607655391504625599947314729745688781643908912877259638822523803611511005316614920850518180048183573954675361596034989594788728366757483228605703304506635288132596885030156593735875748280565139515139256003070664961035215816743490032746255601273588883035351892926760644044766894540856310782518075061838245153554662738277673182766750329778450264446680829707503878140983065096102139614450261309740606795831601784499103067167783357548671008239355173572396662265573414503793605271238626715694716053786608010520259677721536764127457197382342510089464671873464709864656458957567333161389474123035209509072644898931678311822228869350023651728394274308501633752532190954831338300208720871370179154479501699132745079900229171043275821771563087314288081868874715685319670173156030263199616688990112944633037853332772787765926604815804645161729607334986173865077385857065842496073218067970369855041804382430331290030489798641788806073887839708413953667079254054413402958282742282854835653080865946078650432408571306303687824143493997643396126099892012854678691968079283606584359488729911352034725081954558689726258858869258347913591598395923637377541794285731166621396273227744769633977922808631267453695955506546019698623963856801557732426917936948231537006056163426079193496023264455652726732457033625895669680461617017854350251782156389436748260880941549249426540712863532168614959014017596494997899610411594231269351300267286970746139917837827836117182774129019003457606072008051330071102274406157079987585418759195967412674053927497258577587778094786102518675540703078776790829382161198090361240499645559461686366571526430970789705961957926364260520279423412253177138159450702470165635104792230245201190846429262880247369938813082481502617965026335701850825713525091262706711056976729420571027912020926306056615809287166006373640092678546665939002492727854213588418940012579188760306983616612121047713487139984244869524499802226116857121993421107103655357763366978370003176837563222194197305038763412013429298649514193846458159691677947292893283162046545818125026255420700197233164746503652948741013381717687291534134034112613808334718794855372806017710468463605913048503455929389205809389704488821694854632771213357396446362886760909544111359169785762568216955542902350199779938167743315039864183560017603125799141346104125742643238438203245971281963370723253359508226937725349959413509108061791886021751430480421185333907290115365412511183712548000219099746880072332404689629725255724269500873784661943101019069119661961045315691921828760997185776538898228812483172353998950976300838051103610817430741909435977563688156474314575315601453233029835753461365312038863616964116860088228356090247717381945720043848067604251277787385714107448299283349231108140501265209778372849004497381829391239558252417690327440371805393211576001656656735751227228608015120681023334011596834601275406926377478253804916309999901353812194065350040408544343521746179511005712613230052430959544540121779679369624342471886231839537850288656156922942583550432146301510803881647272060230698823514865032700959994220506830456395038956691689578850180625682582356072992700372500566929954214440217282706926515579128314761632300730578499771546869237437669330845713268858114008163553777420705431657254631086134396243860387565380508960824257998760710616028721011542027392271627191399119984922689649017727454924520313058842884412547950211580279283041392125836686532835947868149284570736097784233504041923484429884363198060276663723507201375050371654068750660851281563918729457103534389551632053836095871834719308578454514255731378555342543456589923922726570989602544449418488200598644080317360556256480591776522446005832448151132447531331014190626164220307755591624328654011909384322072655780411472829710121772798235993883387552661146994882435020437670357714223556611562164862005423581690194189077845379226994230818501767570392481107458782927713866214157288000068405844935413453458408139460380891969972760438624567901913393364049640565468472693596546372186945402356636276684069851039961488149490332260410930683459679043865767985812265787457915058699235284462967546763668085427462407361203760020339491255717411204794901713675872802410406444187916508536031039124944332879769125930517569434181772340641224058232585227786008965471989445194815633518846507846922718879818104191496510974384759228783435949567602845928499187742573474476009306061997029672723582454215705785917563767513438002770317517665145360678693911102583544676277583741023631680626588145441532981205660143179873480101934420886893896106848350524668429000488208437458173137926705712379008271595097653956364611382786022364691006163204303592783404415481697735705919117367155924585260890779300857089642432074919152937908956334082700147473003666034280894712706132986123752111048896388583799849329907036408969200613660600911251968880963947595921969517350098150149895149848759297121719219807816140529194543115969204820036472069457913216892075396992092277842417745317122186893607953581218487272870365784035879828673064008561105252039232898225026896928663731915457817995722819691116977561433756935594014576259897080776601886691155628189545084794594995452358750549055182590002200217801814015393185556414359994736724763896838303988845175739646489226786722893495690682255454921262232177433716068522949248962925359230129039876971001205070146936412988654435537397230891186999559886051576777089852584762400186634926424321873734326621227135545053690981216942174236761364160493975158127430064845952074456624096119067396480714481033502338882724764726511290899707204424872261949847305244128572508599259268195126193669215485124218253715628829930293859337953360516009541416335819025031962598416396089435483500860553141757853868244213322913549067612072190413488108677079837715580786842170240779753236249160458999026550597588470243923379470508332981526271766412691065320004229417907902713388447823077895842579826430193806115259501981951285684302661853159677188808886223760153413525095811335609249400520290692663432707410178828069873409815084447676269543288649569207429204273564439037678368848867734162417079693536609475689130392051272286022508723797827954001883359356864316103706549583945059006189719347895318923040228403393307401489319662812144048793860121030462547601258880926761872644814115512916080797777588623533340105477127415361589910867644939561319043808385843130063197540200967742416873192458311504726656674264143317716508422641437373186074902145327863480956972978586038268167801084236882850225831140705920837163735724741978404249667007434473708671601412993287395560328645741074561228216805551711123485294136798058799746466181468860115368066736210012958648488119422577943650751014091629415224073829152372566235411232063421915644656092226076282596581610342029706708202572020587887559163149705677219357711663632324729435933081700400915400217539122155880757424869656227197937618284141546250284854766646077654968398472302906399274801036510570748856765109373000467216002814609310664796470610483615568266567877791941457386960609920438283383083626970136241124537800373348279628372898275281330526142494404365926620352487207180399716008823347103555853380639375611716551052157549376380503924715406517961158494867343166336318871286507739098372757362714393770467326664798116898083923855188918895009141564419257543748159709269773021927038150846703572849337374611668491150910893141839316507805640499441494269457893383316958081258678120564510369182232520503673361118122893998502170268649449966400261441936549073945470003618692258952651850687913462814212579939019900223880805773035130913425365567566732051179988613943038896558394974101699450820641367397397724547168230204010361047718096516179616721738801501485227441640916197211965837375440307511958880128314554327064195747570303145661912685287516122744905380132242917607316179171675718848131668817473627589178690046827988246625453771148019865475778122818697493741043620130128590001894965851020684743985262859463685083683450541896468743774119562846328925930750736513132343476861933798076075881224154401388169186783513677188884137042201837357341446396203823413401862834194562745418114929066479873020859675190207435471651799111892124181599441885047521867650713262995251113012902659652565948479328948037324579569943679607916447794022257796319181250227154170836034534209286102764353387603679993103953393775464221215542353089719938067464721679343325894344895886237378581937923225916064700890440368771610007144308897500377162950827639181968465342707928289247708335773575656914271083940161545596971980927261909361886611040453366569460595333331748924162376667977438366793292719921523140903959634366952969687715493794840271119357019807828995501200632414314020641042362131230793129704212343920781139307370478278274706050166275351978396848920355976219403590489632615773531294017876773622901336749958557976634453203762675104346064851612499924935225781275818906773992594184226897273400183336240055486629500211379118466405995357150682157536437902147742693369357087336471426492429631428178626428078650833469810002175519174080424980680965187642870983784142623981899998141953457129165624919286102926822215634743325875672571244554394028589067159697352986297769942106110929139208672939591247191964577176740645642107199245537075175308710645087332222621462024756531729552565556687584733654717769454327861024815257722859719100086420728979596733860297240534744753916771618537221376555423576505129983199328746846070917620282302322757059317504182166617717052203613044184051164945658464590467855832353670980715183907184431376239149738679836306135249348298359873033057777545835736111542220415531601111194766572539734318495994526985210384276593415725365336332799158611090157828964074725825068198380774696570569707257319635593995250373676179259077999247865511068385709929361187495066777981120276236902057141860480572542960603894956766294091695573339953615324645451024077195675419730320236111406815999614056939936073413275226255184675675809296814984366059199245837508442119100780413051341674719060378290089491689538479435633755290127692414083285184468388599112789041636146158095164251843813371534427264524176886094152106488157467281203476956036069615210869222356733736728253675460286050940982665909982556413744880830762434153772305921038763778428057006741314391648758170912125203464082127388554038309354519239912408317934729539481661331654747064533404151823304354197587092843141329610071510017465395045984444179159492027769392618273381924356571358109609129349067128781996201400435085110922724611921244468407163642758439832700332743016181903407837855374328644285037199702055142884929352031282279884438266866539311203000554236158048855525295190809471716491874156286770804178477306291333814324734574955468233526367864845225863899567368216736168149820042528565717401150839372413613895476219601290359885423776720717734269913317142904696562948719621107563948205662538502809345498765875509244403864614725946932887944122116884577634900909228715471245962622505082345233317543247151914338063365006369164991538184520953230048196502916236460418639818194817248139404795631625198300381859415787718531288616556086522661995878997724693448245264725909454235109611036098757873888234948767581024631860471134903720199724693513945892442070276997123260575584868177344188159905475657291706832367276255277271237490163251562134961890707038932587817732355609683064860623544547585358597941317102227294263309014115435693262580632673539278040088250861203737394907560150084456021079168686017709806614636952209809687531466030573352648852725560284048462074686191919740473858756117909662709005179760804938489344500908589448178311026540800090205892512074930724234617466157623318904625384104682055567888743483964892481000470987359938206860093125589266574902094421078550068259939975854239592930940378067661584901668598289634943911968655067553857827538575580851194962389548155111640622015618281140183253536713205869142691863360444776673858092335979469543193867446302409473106457342855397056033572149045993638703223284325241021016552533362530768981682358599714952339217401523669379401895391069218509692735013253666474173534073671914724906356756866454784370698780590768447291499608411134950480581568902074134091741493678392160405288748237929965918398273124958338106440816944081404045346037166163076869620605704703371708942775651244605139390816877878262621434173576906032743927647047964551393473988094480698725071701479758621295445526362687203365349262961988607761459776210679279851168648137300300723542184989955615445702852232449625347065734521572009955629184008245589785490921901946991395152287303162336716624028588379841128498112168871779615203641833138803441281633330267973167897017301426977822901832649621847949705898966414244575796324413745333059196434354448406278961224849342970315002437780632128075229512960644130353454850850202354383991118271614130928967189225034224805553054291125509276890021692466416855537662731844222427677645422323976710011433089265240235967563761763520742532398681607490938699240773316358124419585623545580408807842371343384369724612678798701342079380603267600464992602763188409256018803170867748457570290098252203575412121024272749376840631536615162539203459311219934343890294420398987179059118454189767789631618196330173079409159300019501083838947316993296189561902912604750978355275031434445537029690380077733623070245363892983563933011151336384121426003975744699974100476627224017976167261324846725450388036570404793026518675645455180417150021794155401953928879326208900908072545736292312506071839167222679604250327234902426982920710400768894473806567324916011485489631318584075861108592445421167984958810621273780972369883973389066410792677705373366815808398185193818928108191005180226715884250910216763730850897835384066359645745557063400763137085813167006813632909284835963297716980188146577174052959731310713480200740167685209762370841767932753206508720559264254780226387203438292889612787457652749194326302044749897614851354741645738612331937701045348080065891893014101207753918037221598082338742257656387806454841209291872520640298490622713720116623166503195756847757708030094483809781254390454502085036267530784155278944909783706073649060632748790832116935895556905508969377782117518205790143194901153893272800377107450846739213167089957202026461641452359080405433736672290264295290560796131937780621986961672390293263012477171469141283342963147328784438968911796766545687782697757170142533728603039802693803569935009976847976532038121985055484193468993900117332479392502226335282127180119205226707021740043410874798175555285350518526251702136395588578238142059268411565393932610723440977736572459119777931149949462431099866293431463269551618544454968079961419475281815567263156716525668266205812176066767306745049183254901337526110949600583752190050101879184842312703126066913333347909838093021890638776203560882126803596034628575293105204080801164516411188821387841695275499007243596068025517749238560743958375688321840640603519974195381564558441075236100681591456990683795608720523031208891802973187787623351768839391845278765872155126731452826309254011150048314998260952392580753583888766035184411533175596714525785414509135921630065193225319000741521152511342803347994854910719065528954958060312148097036480778700032787702974576360655747873631433973824948473358983312005235920524673555794159435940614295593391972006755515656092301233903805630993981942049328198646395144404696245698226160328897557356981668924272555835005057877940491712859694710127776396439051498812687722295193916484902431634993494043434790511207351293428184703731632667900098795566186610151116842296413135029001264215254084369373487305301582916144651169693009676864797065128239078102557540188337857256397514484004426727282106848969856300106243711563561805825261246625412921952694506729350108599374887364117232082454896977140101206583856835727893636894856308706350913001001283747309810878294264295996009858901687230555403235193729759507192127131586037906190120807031063493279511750501945910047160389041622415086008615915732243824185717960206498403627298687096421477135730693960650124352575257168551768832904125198630896493564754778794033658948822386080678966112109667717790202591989078067258407054241068677522505984538339121660387469213530716369550024179165945984611605932398069862133718891772625897042080448152164292518683718366972077217752009423024791673004956710571064275695482778325768220864756256555167035741033805447662621833542688659545528778845235317332242157085311948439988748787359599807769837418954917304360712533913122239976513245539312273350079292342573320869843191461767543214772381714591996112583873454372839161518240034306344489808243650455869386643093837656925825060874901118295929330622698494692047487337790992774747951371172509676650272542618488864362466133058767287367788880236861096706747972635224653305107499028575917722521719793533412248819025563366390774580446617649497428646530187404164415000641307734182079113032272940904200421988191922238963057571395445624995256631663508165791500550258657550947118233783057565410810963971246738915470611638929288146997382285086643464416783240400564736404607890688830861043270833523937526893965635821876610754883035867420373477083537942918202638528617301289775609440385110963118966737684613301452703789092313182479043830225412094104170235213690426083953667568187530219354797434969296526733000515264625766047531383062073691694566054368963920577731123712789133436299931989699057567322753595467025054829980430066057242349216435722575965692340303481166440151262999933527969315171706056351544118152842602591195733012684245770592298532435765444188184357531593701936359580628466387779248859374177477538401942765803454766462234667176271662372408510353691127716576831129353257104283127600306794876607440434751573081841193717923999372309224993288111583425935741837602501931970059707207602023654945568753724180717388901794373639040769778008522180792369160016739935399223997285282007351242421807857457468235520919119125873315758766218956082171875516157945523867421284696859751249972461721025794535864942193230308492091096478905625886757698260230215423505668525040987243780278029419805799414249317842021282915553695049830983897444254096476197750565005849925418691429870438941840148148605892425291670567374059501139447208331168427528663465787527642949973264436699210093821823785639580993129560745474004016347005402471471786086648756600639087558837109966374309851987022255719366262412913881885907215686648183244109323677678904436502489155058361549886208958565291902716346161478504712727764864908427842416892871844370470545333139733986415442193852209487848559095094972396930574470997168677238960554737884215010063422760397172632400376265899321346740819641498129532258019284418338457356544109406410968555286733865423217206236132783935486435418653817144346664076031146397949695631977326882823868912360161901566114102529570718526178460533792983209449548089410858457329354241665755783950780724970179970138985955645345637973654002543483549315635409726049063603241005422262177698779265444190592932163919228840629337849800469273014972678681655000213262684647473966146433822982171834161076384850944974403206067190169645567322902437402284025080921463693527442734092932310892776834622852717121614998603681644849199197132271304420160189270378226419541369956235064722483511040705197613738950553102438645656749601094606686141121700801124896776479740380614258234047423518424506591434692047755229615318221621257356131109280466702324035956196556811988927003543801297292331107499441880197471199310583755801134308156129496570534743962748352239747608085621140874437549323693400907788462676633720262634885435640266627252208657929840430255436008843726682316144001358212504359687997064556327990302731929671723519570593809655967782170831987096617309428752638841646363792619103176392537812849981885649747430597661533331193786464507304053794263540618828366166162705517823269331851060862041624583837870300049768036603144823582561218116007689436413928161863347472701540225167456363552551479722767491216257658985055568432539269412836963241963156729022584514889237430827759330836084400860993519154220891801739513574561397461818440039252496788885370653601479228397805292764901055955391214770455747996655478043216176843808215256865839366716883615186056208222120660074989195674670707708433080451922987848328893119249704454460242328852290991632370137282945420651384317690814040144380187188622510194719562338567101140058161295880136139347744370534895287133446464611436451893055578789913058551872722468951295122281988860664520707297389705252873713863805127323982741533770864963468160791504086539232534938392038416300509753830372520554946487728539957923848356224283549545120820690170927539053502757649596393441104427991010698938391541255085528045501046575945993468545013680871392170038510006336571436636609680519473074503525472279079508336481965953554662832832503344985652125543244876987545794243948861228441476883610426933588780579056976346035676663831137531851787301307959680208149775531153181572486049214852490292256347124232609174634634023479361266869186934479553694476615248176831423783273742716622218570363620791361069553014654210865303727938644240762032269035599139139666842765019400005206375813180184286719610605264575131533979592337804090738825733280906718539550100381051365434556778247784172008758045300118756285015798100240865670251890803792390447943711501683812477142509327588153971366698354456666468868278285484656497976743708092750563850478228125674588520252398429632660614397786861797291263057745129073471411273571373520828750340515159831146634153684662532638209305768788736579346735617263638413886349813327268053800730074836859269309798799806954314886151566415519589287250261905083320336470047114088567190823493349244480489125710130574352599648885977787586849118710071925657616866836286282810912824062846035278027767143116155155979496823947069392723272031451918089869352669602213081186402990426862157103008455827679799943657869623103015144379750205909105608198473489243174191072928366812642387193116524470930129481075569134871958485274553478665017878952602198589890790157538124251690092067737724685276333420513057367314844629210878697437927216090056720691265774816498317812819052811971934179952921719186015912718679656118230704020001879516183398292895426273904546806043783041670570241546488022694251382520955220892080103443338954138194512280649415146482258161018302310234708323198591457265360025776208463083892971470934275409826255386501286446648459448389852538689344004889938147527099266620828120494921145731515274190276511490670874213372646113836336042213161937826316022269237033941259826730919625105267977653442646107022992589643577572218578628495013345997631796590594498088482863992183824653672022923927288269267097708748375744110630672984451320886985793709537890074062160754102092090770573851002992399982104958941993404379408295580807533155417023890701368348042695444863268228555035299247722099243298473107056716741953237551411673142856076921737891826710915721585073887466862406640400343471850775434201997719602536646814371768470819492240600202841981055932535548802874994038089914036239920953806819175274752783910374931150893504575632732309685020621235013315817232893290855610196580835061042771962077425938778792149686279398492994942071024731102148636256820225576357421711901725247633529949709064013584992404042467242365331792355516264219157728646511149999416709832455429324336759179222990613529418537366063591850015029743270223517460987038716494791728496194208193491936643648999006470653900805500290810507366989958182142012140005107590847855191631791257334902954779119285811655447449460881165037184983278280612861502980937477050679589544451286374151122327592628340349009992920351752764356737734753119686987121649898704930848700655866254942722413182300681483266092882678901755454876537388297561839571383405314316540323966556641721981791918316637794485620662893044034391461874700801330419943339269117629489107661102124419751672842065148547225019894425992968523027898332122428047003015850695922530331504884739231862942963669147594073100310906968877766488444788339892452300563284316007939586621471159768912579994276581138242209250658810189930126086676139458877529705472120453904967276348209646627976186360685643870613507631686602880536275105058768328043755248448000049060921869445423373782545638090883204026807363816573691368496795502802257146053887999954739367453925787753854094705945314397901578426250488156015969597698764421075069654440968182815807343199566111886063513656101207639054506759959984526553390732799507597524564435361692186322467701288556249297558915064246093348906869655880174366658921444313350764881714413193098939980545131324399126700055041162046903519855625542594327796971541863379222775456062623387019347996733037390162718776739678769673436219350865297227340918993923335366523885094655222573539138566175033283118494164914861432378009572452646155690729209773564760372901425954354186767874980992916511035527394023783571273431307371959491522058168556643132606664323490120365080130001756646565451226444740628076289369118982966787996194630535149130985434825223734833568977202717016582004520929686694578678187956967290492647112933835011289521120544776395808070100178446923178647760582700315821008979649075951745049211834771762155106545031119159745076867794289946798851299358959404297702592975445348727498932727516148036459958658693628389815919012035653227122168608870705631450579481873709704624617441076657314977827423159974507517943882013944213556334794327350255926396407656720490132708093226695371383069274834006475302184736413895279845957957071551475872093494483531343024980124853445670044666042325075997192617413780780930463817398053651605312425313853347089200712701815280559856028556075893134084585635569906041632728197628628418217046673375083665140413834588515783501519887325578499954644796160017766271898608205186064235377294606550321804195879059866358094767921665570769877579021770488140392956300201156664780293726260529627665708117211265300346908229529602221141063770037879270185119246363560139564818741875297322789808026226591458329305337178528569012878331420298998977995616825562759899269961546122417835195889094541052009741304556581935740793588799879665494145646412998911876667617657547424313688375494544799246165440984262742942219977345557175475010268459831180442500384064988622823520504327509416297475891995202319373285685118837319204717484778866436576714756634362626078489981813249687825489225457307094113660652644302570390846429691210167636267430394392634435198391451496590697983088294896795065280725126926821448333798095729994209176843690412923398931091973825284979051278036921116375411401003836471734732770203954763160843110582517760212098598902829483939971090496341589892687693708305378128065115178375887810059023541664892451580107368167219020002800135853117199629461833058647048838860940367865790823584229450086027971156627468976809342402334408660661270456152228576378274097270533371743176325887402970427793889091267512062249513236475249231316379189648523653664068095404390218024029143137997693410251649347120666683189162792233103723490595687722876184621352506813401949503989748295042513119558576302855040654161439075433767002542578840157571057479042853689149990530763296246858853657671492949281715503229527784171857413690431799928481698439967630515802562330015224534193742890539005125800962935819224736775464272472695853027924803925543948143384347161843527260693315799446940272359233471490534537360770025643709143093899953374590743347896534948594554620950851634213356144710755909502995428264403064600341643676217431867539481668803641449746676757700702627309339310348053144364901286385554287824870749923248530854771032760557244525575662642067933948420845016973467630973265853914285455096401162565708363390890747715245589569410996406259783381691309190912823927562052628896304234899809686304361194924486228932048410954356668270908550836216076491763720696474124784857924213190489493283610372594419119327121728371050202712562580079899582102185091156541892761982855849877962300573563619275953572250729328105021119674168075276221256236191011318541657524583578568772965295412562060750677028109433323573234809255221744697441198484068542098916564570889783340236051737155245484525816026981049399100542251103120778573980441832124459236501623131381287434594095485660713730324477217785491405904510311259448058608738178098145306262850706452383422805982771182388369663657087681697874608194550792599389298981298221213243297672793756815846690849739706417805601325044248661583522308074957832737978877039464419560864525938116086896588423734075484915462578193025012414478547390305580763333180700937070460102745856166857702190847398520868402161988355931128890852212314545965762058252866251362151205289436419315395352733024233994818101727545044850322554944048860262200303886619124305048078718331243490684240230128417125937044139373188834487480420559794230031301669316131311421272751849665180410009541498964162431952886410454443803459394904176199163809249436634479171011010060130274309717409813416933581853154313241536442695713659592062895680525335402724253487686644944180255218733818707466529234413146703085963371156434830553587321416945063781898367323004490418528614622635387672434293515589559379802548841764412269541155051992335971665419096977401634220660016425793575648809195806670834619839282161530895683674020651227000088002285680934257305162222972786094206502385167997965830483615997522689036155104015127613165728886112241532865789171872508329037716165371933877695413345080491670095611527655460898517919167200340599095366737758875051676611134359112350163140083344026367930997036057834605714546044459895553015797871957372828705873874520604221567375784276322299437453184868731929646560537217192870631808879899719724356179895804343344679125348714213154005093610338790634315197250736821128147956312315205028961542967943609562221290148477244992832517315351807615696009035934757336271509160462934845282491254511504003637564546947339858985587441463321043672512768685142711785724210662807027982463013784779258673349271628693377535632022610727040692890960456535238521835619560448801640725814738392695146160253469358864038698368172927876773605475208324482877166737177041668227460757317387841245092665361863665419689688692280355967989004204106447867017839748292400382286783889758776138170166227327682541569458587056826007503835456516709960953946767622046897760913715606967048459670223352030020769152684400343448981423921311111577425203467829063634187751313082005809548353851715508911796049748290303603904869777758591024098720214682052612410924795472576294155088107527438692180629520363415795460383097988880249590111906737916456888706426597052567362278556218838463992645578202119060583662728316614887392350011560596309329249437691733566090959726098374967457575540356742730047688462408878629718013389285586010767776123437915715979471374345660957733244280945561570627423823040220661661356856481081410120288420144460104660140000529437477246226278923210368822043924966426470363970076001994660451663977277409862714932350398004117877997490667837789106586702964305718815830407633188643102142161799180898136690317049852018852672652233551243300117887591616473223101027431488698285000178185145464045414136299511523992510662596819327097359118286776104932482565955363271967714290058579274878240761920759328762980918404658047095368077693195080624513134987242053726161187227568203575036531387967094321769414499251909684202753141830792296082193132536205104454222509947142598744567081263373568134632542875341905027790931070994137590994948810041215205211566326885531092846641436499751112196656631054445454383522171744581522969557192124893937459720695054081867220513968220985138164998722216677144331012257848753909261648605510611145215101061571316132553528696147350411326235608388917273815358474082512179775402205706414721094258467735483703849288456205921277634307230723580180746475214421810099227999506578321420545413299234683536543699252041576894118575959342924829927537883220482238043210259974817805249523961214621582756785140340614469039652811314747814921460798955423243544454694632703268146364307217429056158074902880183159900312785557590308978532092315029055018473583063011352528881593351386029896306586350853045395687112311885732092296552156319423597130838308265657803126709699009529190684917093470284317208461726505716855951535916739109825550475341531029348286235832788472144760164793399649267803633846578454667399349325748205799593169696770250741410908509758661232982870166821394976151289310296951564191107437225150768708035572795865249422933672231094137638499250535650548429777991484228239729241150228893185156341149764390993467185035500106655931910913593436241191768834842890607750727281639241503699597845916973733884353630393000491595156770906689049000975132009932518841115236465539697223015078922971447008324305859435165337115062867229791774797666367945275843472094152078821638684692696409424702013933964807387071172683986080477171027493848567382650474834236391818500250916060080729017850323835826512899445316694936686660095694013595525887705613155848930397387201273626091497784761320668763766606098258270397660638896574887858640314851788161588312120050122698262908801731526237361152432153125208402898441353927219337108352619840207224976700068392985718896450301975644697043776680583843987602400227156914971030489518390409121282116487719484714607280347251532019318679582732447947497474190484974920655740995970933667987538960683767142161561322104887542051640759764342632494292203230907177140916780357963019179591766583696757837303349214766105903290604412760655884534799441598031420737652408007670320016910787008575922615578694130688605433208834538707076763272380923378701536300999987855702332143507579109208915186051400635810347162850374356313595425172161587622662964256487295498124108197707954105474670259020532922341762286778409872136602007653627194098700516162581150124848193158741562809608866665319757970358353124492648272730141090332591472571292450154722244167296796581903944129638871381241746138261952490664057006632927087983648684054875929878351900031393747128528597641853416609503215367365939103102665569195749420114467566067667816640945708553325894921907369839414177472534439422776707761458510343490624365389658323305759652300701869861133704237603032813693765900176255618978768783860767529288081005963162371187418778801865961973100662094790145225104834861883465793093159214821323056836619368473585751418181222629682430042142604980369494948794908179169099971747294135756238073175194768716549395896301061821677818850685862105855643531204973146226283607245896363534258279305736181339994010767543895842018803322737475211069634507485740425225263965710912261148317281314222269320579442783620851667251454041829040802583821777733470983122635496644013488565842520698676223078088290018497682710866719881553706393455413003910251219274193041187187729007629818776741050971921547636577944950010428607960777001110089710992124442357465410799604274549409828434620983908901076991613021293051689930257374470463021459270673480431976105741916792814531596072426864555722835763199604962709612863836575668737594636518173859290611156991544400109860074552335267261868798189763144174675765114500002051181701268572815103936856701620193266461082542320590124562678737174241222805521585246865566627044974931477375563997048932330284382990739005271152840568418062546864236931991127166370068504306489085470277619780778940379796898332047189058413077663098829873408445531637139727886761996346652674414734159570230023456326381579021194096658672203656113837512899477685294593949770375721915448534556777025936372202370773668520930997014497873906161357698205164134408788261070617897975780352078258513431718147849030952852948394520563046915524605335299449082172110666636431674686194141090010501883936526132277546277958445100274417078694662184233916768678917373434591113575254558951528370458662399396284349499573335807943552165870447135119174504817076555114277790549814696646479511933246470192362054479941640494265674759542703966052499155476963551146330334721199742994846407432494677874668051981678925589053419186098877938662340377467596223987788608533020729785768623227096489657110452745045078572247699832421021064687669476288799768508563234527901108535469738793257094805312498519989853180085320017372012843925131689514023025506459846312711994640905897042276565962034875712985164821787790555858522665498160937300008197910120599643264273607660024785797832629589480320976421186501238331870483890122856594263313708870355130174779095207940416042053385336603765629017662825993465649024363343933251762447284966379529918579943816224847579432969738441940950722626927750817134594924479346241203147245307956150431422164110140322216583506122784617843620312947588734501736340821702572054456250399072604125682789403458094878360033090352299040102505386057183225002926233996966799315027740327838100366388920311487531483992735958356259763990329573887425588524640373213365362774340803311110718853400145057220631545763923673891529832707618477825763653357225417811939017498939816642532829998843125215155911029499198435963815544988879405228179877319825648472991533711802746343031226351628826194827776410795908592559215007392143410919279619818016714160193134850682573433934585927632226377670289914539107252198712506470639412375865014230592371570940575718785289831297864061233497284558681870639384316426901286696891691633192448580391463252992660489474420558145207549001836705859623946207001891747128497488761083613053419613852421928670820410908508811416558592095638310636222907628298673264095466889917516715268287835322181144340666449792636831634593514851751707371038083559090278289451401951765799128839549619226429528898833610321108484661704249837620706555083614816252870135488402133957896522107804245130744265965158744006402581708399472073036508624121289796455078757079240911020681068457033541141704908492150284855094409604437425174349734357847737788206656726353496846981519567602009951798058710591805301206310956975784792872440967276038799674667166856763905070474756100606654129115089469364170523932366445945332786214423223359289228575858749930291253673751782993924609195748842131919024233914369961549995462806945924695961396472462355306787262574131207502863110993840250653305925195694904183558761059707962793534024547856170076544681282040840775735640214760928850894449964278745527769839821003786502319563767478378466437274973923902638722060250383619921131265888831410239022797305726694369888560022749214162776428465752290142979511669052054307030721747779907042850334316691153629930065541221264374229792722039331068195670704179589684822643454183422354080863372941852972655718154311066076959272671602713168608654897474260126810574898820184146535666163461042100728825765378958904490657327474147110851514111972666626864921062365044789539734550104516671391402498761380580679899322892393194150718014271120924159548669365060340770338682497058761097322764993697595005043255643883497658218505027164565285903638303769874490797803645328411392423683476108100672963293959997110507481986426840665756805116624382825461842400924266556513181455045173250081109756426174084485375344389190875938036246624958293531664356290815777582428407130540050068696067197469468577594066211391835063189564315061883800807763168418839496548721480494414861659380242650646419915204753235996118421903572154884702375146284893882149782351827143450682474003358971761407979549098487257861219013970537701424775237306201883935306575942919373338799396516962908230242809879661625741445708545116078467592760109271384092858546999883887055388863011797651924514547620461318906279164290130735332326559242146668759489296850371889085780429752035433783906919409444778966320718843783265479017857807926575934801893724206681161607034408449398321401780089906167437555255276024897308588008783050411221378227877501659215497189932898196285254796035711373947362081684353499797536292465185495833411307397960642380282962857085399673565770318086378457791587990011015279808469518006785834292443160824512911676897238718041332158117825604016622007095257714270561083082291077644284346555840959911073751820438093094503529601349321195668688202300124722357340097393617317536184756257610119793388350269046148356820456770414031122875486911291045570908160912604655325825753199085843349992359246847748739225756003970850101357727090150679240309114103079287519286611625126744306089511438500350272181939222141379520440676462226019976899907872143188890096547472107154340305945164674257832889125590397407354553795748704287489549462515361520538809816418166106999546488782051938251688561155493426016486198656609385028141521575806995812271561305129237557525220874680683947354884880895527344160583612495929320089688301077840759203547759101185695804200771882035765153133098401091947600860180435779347458887769400823808656018285029620111970920622226879942152549972151083548011759899222460107167295797075876730767579332501831995236895724487414024996404952121766721379544894497956741773883398961449081653453746211108385796423140848545363605965849120694111906242506972980835693281514877538321738192636180443940004845559017359517719992190198217004242206694701918011978976574726765555149825747283039225998152754028897862752490178415210697589493318177757196039672844938333069253537622566207595114329582466107334331437993263439739535614914622923781108924899088458038157128006539501089821606156120079782752876342687843783802164517177416153712298628135168728982558117889530003769961353159119787030410483259662894292455824883061511803565301797959712792790023483174451652040585405626942943929699372402293694731067294762151376191446144135015581558850514411319802340291297599877345999083800100175727068124895992146009797486778169965602125495116040593033280802226367145749073343774247293991669828888384947016610518191922398102244064747811760816936833583701901232975332431251503125487211233365484571298340657267885652875632395008342892052259240697386669616712734203389703475456759463996620622612099544429696731781511917525732415592432789711801258863550812113225603073822228147378630000553463322929441963011895693906310033674944019071450605751736910939387768546779302544637350791894057493948481196833149930364511844007416455547156764037737012848022741238771078545585457372881310627563373845268749606750189431837540402090675002847337180658667603014175368916295291486683957945551911823295630111907420948232908002481009626941160962239388807897192111004509603795455417287472254524449359645587691261046440064299447279566449282553575694627105340501496685712652301229467878145152014456906863935789229423280372955716019186946216947888107764867524836189990526746247910668877451871738185765258828572881453016807009911982166610135712938560625899119345535839003070049444734237862830353284424221328308548974768671571058340143597691815718694772481699828379368333223003055929524948353379498167897465905843186595828103790469548212280539052855621520563029481851521158800359776021651290216367910153905114717942116409930373641594501027537821765548318480161166471541582876038458423549522241569234223036704191885892268529952049046478864488402607999380425681016072097271924453593244142923214671164497267816434987408873259290455548716798146942571733134609276404808023210790538074656827590296227055767660138287004333361207191153777372649751883922327629657447230420307275680680630799776342614482059984669652237074308803178936210220616333528374335230746466878277071027806152875890661067137892995473420732802791027839784996986499236745833907258262404344151492031125450688144252939425714711278921864010595388991996297703196617706056469086671340254718384034531527561428441689568183208991570226075705197373493406264934515006384248374840306815845336563878261350406146665173010958427590866079504309371549529395490574133907391212719935787998207453675580505867281503264923963915283096890190998981546943060596910411053382808207237655079705437385647599435000340393515466541678292188992244895982483911413339318916970231587655414433926605805994076963256042485164478669889999855854526290091266446400002859981720054543131104344325620635256368308929513727928806342559628255531245462059028783561477304353861821808738176163675671696546274104141665605370049798701793465356989492144153037061383447681400668087301951522872402655290779268487419606009662127547248206623643597431029197328852126916390839948069397840995356575401944860191246270021415490542435992636852077844672950579411849880950826314423001945518103028448670089968815428530981319657318392722902368479769182911005675773024784848338906281127117519636503004482471077233683383436559692963154068105979443175848635800344466990444406061458333960603959723641170700421500779733971300903756822667564394204645145237406812597198511325757832657676655177999408499777854739004476047876580467226611456874129220149891058691511792163472757708839937068197462901854049957663980880585939541833310194848356663967370962856043624151785789682971924897074831544066263061405596769581162230338475012644979452462207380971381095589289979355747319059007646889510324040535666927221188002296802099070096710004581685931371528823904682430635165523845983818334528067967591285418907166338525232356227578842854686291615239582914067661367912384702552322808717791432153693608012540490171370863930251354144212185669376006194356865836253463712379843304948417408730272487174816249100590159566889271877014029560533018939786084611446972602112136755771087146506128975234521183841041420526811561135142967009797781511100349362693795775967361535286172484312034974680032517259667057584424150668131560934569871656372980987507145695013511801014950726205337836137582798723599702040129116593792460995511686826153425229664599654145464649950590903846009556511853847312388926561960940146249146985406840696198756101943725943779981683390658141810992951729491394721543093488429733710712917056316414927213225833872839309692090810037626641855269272506823217644344822995242179441686452979113121217270770619748513217642945275561765301544820613285646105713810790372195749452732347535942369877342529883500303264754478464881231966429565152061913568714258956750732174989463408388846860810860522507048337143037483053393586760514211469532578885503678909497980614606836203863919162947010464687736333750365832544645125150581183378403945453512993460958785962594377293942484335567509555604884950989713823582099809860754622089748714058717623202613110362139061573215424650125770322213069049879097110130791356891482422195772124011389643507183898082601738249285844463288666268936889376997598027763800497647209315893978064234934114016635206906019715717039237928978053299673349111648176181775796249771980646093434758093876794805498850027143246082301536490780799270945563072122706058911803477439096235634137099114437266248922082734187892360016470468330329778405956444546264141127637544179137189577390204628684342035086948263970899581310210228842410830606561230397554948742475704144561362933597510581703166538080634477276760571970436167944581472852850644240768509749091302498471611146048794646350628463064440984513152186295394965576937981204839729065962860556683157128203730505721873252496432855615611330826619643630265625278908041051619902462989066487129784145900796360998198489402867607604704405369872013611337509879498184021394718101712131304804864060991334389291930341809879924627111396752110929481212373033554499635424206991746671989156373819728668912317869926281750254910599883718693556555718333044321464609452145389362145067444122164050974495682808573560196406907395803939760542308566543008968762047165080460133642826224227217109054197644380503296332109193105452255060862422319964195032322852924254435168998722258794131102555117304854283195016532233507970582693640080218913723977078098452956326059199785175879365982684109469231678908788774123788909930554677397619871315011857073921061682159979467441923432862561573263366172996016695481517494132819075899532845817096329883085691244572896525244795381338854529613962337466358581141965164458298040497091635304891037324486654316684352071276787269894759859265008277562282564436116408009539231115971060562435473601006221293410975630953717442322010766631333025589641697593199091793901510375719458601490615115687840904037617931242249078661953428500512074443535434362777932300576716013096918174840074223754474952095114157120376883424343891907778819756147828359639581335567681016329109089426694719986119442790054956537855567677167430344919832760132076147189410501886494575183172154412121807655547874751910174982406660777599182257990626492790825119106391951887904561657220803852348883214373719810525149908132568908557192222674106171954693791488051508245031637118106491365389319469087629037163911389453189527515747160804877146284614417920756053750663247491445449567451670022498062976553403467375191743668787791664922443872908848015303890503849469558481949231830977180742277638002129299756549280027571009849706033482127122063039634775078618538923227103848606976990870152593886118585582398704781224557891652333940486773408576102248557024651801640182465984096968259540188367520929506255810860626164851210563738300283675263593221498754273221498530107845949271594116740697193889627981493300108757140505214458083129751954895593399724216806320393356158364751874470564868294206160332950199852396054636105926184533589674831356860114654736154716538238508207268681753005917384442226558109199119136012092395186285130515994546890171667308499397263762497937842166952492114860040631309886668266128951007357668334746932313724274302585479900985718478133075515185445457817655395714298418461650780824358837682871785762415444271807251008524229277551515657918047087366820302824278653820945922071809446710092659881094331926503634787948273905167500996187870057596456586571563652510259515593791897263156131567267883399744858508132120509865382188064695109713314885120512088324933979827994071648923901962268433617973351626077311709560068264554134688545727915498052426236898511218883633516631427875285712682635046974172247313184325803180333387873561826114725932069059597578967384577681332934550474904807114684729484016591140969841542257549114185564550058810435622177495988689403175651348951577995709592310666126242884644237077781156179792465193120476051341599172899673895306549253559371213539503981488228526222444972389789714151138781290507789339524782676856573000844370381339468646247099516423249831120737919248358501900441786361471077712128661541512716417613893092105155160833519125086112302076113904895162639569321518120056422237748715387394448403652756157926775998715908706578786544788635410986976095286653383543652707426240354135333022877779829668176806560444330121042752673255258149674442554983558814721112157395832677679719842562826445203786327506532119185433606819064753006905942113239266615347701474417848537723029062918345034305746491003223230335054733795445066247594194777478671377951159192946662926270233903733614184699142331093958426981447170595219042092448343537896062959667467883153199321298761105979834619049169572311787463187486265214549556083071946603981119753627970229446678604173445134408528332300374066067189521827710561895715186259870914397016510653590248159422271579067729458861337049828705470078398112595776573234213780445820146218061278951441253491049706134072125784688750647451138103530888738913062851752630494557197017268819869011756036731726325436569848407828193566433186338013786545572363974651535861397967629871735151055989802714894589442898107238587597200689133589741230793454209611278514230928775287543002296288261990219638774249207340628367960648556327171129306907436895282182524843128941605260942780968963569463484333842566876672820845270659331222916650046139770938143862460304744061620412343616289835530122072478841081470490384276833557034746325027914664749272211883131268548761270130169520735437369961681442450166209100220979402023082716310319573102999109778994128671872121457704935332530525861598562573192250543054354416522952178890058539968018741580484149943783515245594795390022219919607127282494340741246136110305108384359192573341434771788297689894193076803744204350500175692822713217649813015441344196965383382272063308001483646647483510683940156852018783458216088790657293400679196481498221889142014067282113890026192019563413132893808126868223788757159342499342178638276465436962601043132571618781091646863991153327339439941538949313613802899870254337078857528878103572340221541345061807312335610106763594572473174960512614490074491184352253712757912671390394109160369031851086004596793012303755799597578587516093422764022884132316885579445071987454698174702009781339444136271642941760388711005716814416158413557966059363177717348107582577115000180148242237606364670494881457176031508544751413995484063893212243627269501465278642887891792898234145304189404297124835680817759546103401065276765199416060061840757821623344298000061672839797353583117207454415744380540809598398939262096666625173445930658346648738751141597274852298857047606030021934411845743227697331073328054315208721876014730286277845174441719555332607616047091886324040025487730931642758035262017301434964543231163834249973792207973055986137682393556544164238733933633548135734957305128369925098293392531371469962125707674199464984990652432858773490500912266096904878394347172158641404425747030508337969650079376293786149349808676972551605071852322494779385734804858929656243504539544196770961644044006761754682647389044787198383347154931639430254127820583012141316377080542510860219434621166434318316910718840435432313013870316026580700323087220510436689434382808483327628136555588744646861946093947519491528009683911416140593631490257241818053668192225193390142441748942626098932968889380921425759617719950158440189488760761718340291335232880458647639340980536614743887141161598306524001202014715177765862382031118010683670467224902087820262270133797734238562019414150837073835880599805901149215837294187806933885336192214432661082259363350682241997773064146684634863994382571518589265130685404249336175364392007785678698217631032221287210567677323877223113626628525734154769687353525416153209346644243157330464432209884329004434334920456240194464028165164804311546337492418191645465969934492499109879528437039401045722259121421454701375506949426589742614711770206684486474677132795637312117501339012837156559235456093516689156495915271520103260638300559783431411001727263709011082287407333908563161531743743844228427039968391402786090266456202899565830638925145330466254074882623944574559161717572484100634409157222290411266071215943099860690642662232391851355035320322849124557805217617529796699828639696806476290603105733288163964434857760980898646482084542402187836472424839792461721513117851109718160832580106107455867427174917147016411987856221864638582948794853481735303336971945995404648501498426891226758763632605060864574178391536489780092151337359827813610581138790388945599414606061254662287162016342876486665399442350159285662817404692678480724426298513974411403336060165493568184164679065463217279740661160773571582332903225538780492399276181892545160354838551523237371742206207116339385931646859058166537042722398161112172423840729634177701760808617464255708655518543170443127370068849031483191869964674742996994801456174897483353036349051300518835887685286499501428083607777002867755939296597772390020451695120392690260916604363348105052776892429273846155827728481438667499188938804801012839569988255011975787747170036515869154211249868419064014416466674595636123583668904545105365962574320641612881103827982235059476501762611757837474818749571806543964485545696900179006724476807687157991158978457945206681996109315519788503860246227093732920135229342692793124127992952428599540636982317347858934678295886890141496470250622229249133850183001476807729811747080759254572611497022041021220011852006079433650621783881450825132383039044735612219238303227869640137192816287589808796454784727451570779795368365142675365983583398707852177728855475666285899318402058447356605203484227263395922547857165773970579756002291854470337010352711115066233995043028724537889205843628161475550472436567558524386184251269385021866372537766833372326661040473247813810264754507618693469772308290180536421410779422656795664764442595727917480520881715467588606582995562285215862930515281790864607126310712004737490628866482374785105934483282899546140640566749950573176614900080488954195832718110996520158284372684208416485434045150160326991904805272035847399984320631393692913426906237884136226782136864261447006995930766632122899770460667553982800936707976506594440122529497278593656339861940381952867027542999549347796634353403517038546710804908801008417105843130411831728663691740456562405157329924810114231271402415155253717623898698308446761778497843407578484642937831070195916900771639440970815214467511514666367537409051852395182757457869289763714719951846449317149919772663732793146370904862633587715858158732209663516167325057619909502090403402882015016896054437364197934967714945345553941608226308748245268174126164123004973551268541705633987805041349230644380061771381933810991401941954231889111999645307878139959400286149027968091518041525424102730185286199914690697427894087467057164625245021063129511223974731037922810353249744276805354078321357493718867272104214975070240562033128916730737248649782824004567382210691338021371980315825293819456652184354627131819244495218026863914999002586126120399176347730368224907139069747579166890634779338826770293130708917536642890814506479930642710077341444051126436386575588952319906894608518711066454852301015987410658742046996278279433627951941469735374347667826847952842460498117796167660643379410651617969533526239825812832396213789170989755356166381478625847870213411086324758399649890927996944449749841606493388454587979406321643764542450067955802876070864469826461045714568500759870794706105503530346296885692995643094730422926294321577955139720148765128939209875715910710075393202200777928953072690453128382739805401470515447380122648373321692539265966061195305482481935293725991632356176762614252935890749234188521398791034428412155342150447529065847764219565172424776751700021443578134082701578082278217289453092878842057749511365334293158792950842126906543780643760473623385148602874187990228718540459298134155397139180490163873841247276421065499909066926205940519872255467309568566582032918874674908886864649202243711184097910205232663953233241308674185501899062221828635275895065507507209821689552437980857152498805765683148455476803957620789690104164732860412457342135174078786444595843813449800140777645116372390361265484663593028990180090437656904332461265934725686477899739889913837644966902997619082653780438460566981128193900341235821095609811816371348295191686471900289892488613023375060801228234672516959665842751300256546563007341647519371068890666858905032863910797655439385709407268726142826746767329087033399881596687982673871181043628943334188803371769474807770430809526672867404623193355149173205556144655629337652473668720777198244917530586182569387259088394448095830414595661284474313233010262300019303665360615089955425566029775782376719157439807439398823492242237850924181093243762717962664365599192107577399971873604099737634053409796051622175832183936694783464926413334443657252405009383892723927893474081970749922700045599751572036712223070309354879172941193324936435292779745048913651415081121338351656524288211943429630574442285194253402891501075964918814942553825979826213584742838417880786888349915644273809490830911904833139430818141959878127974484132033845826225337246488698673737712127797240818998954076992385838796006732042899312431043871199946815310537918413202050959620896484625439824099173162239698385357703421971653982126725905164612312398131234568282590000649831136454658340284349821034524259422442901691654134433407027389313968296984568319685011588048392421601331990533389911228301519016302401469066064748518264019397197880063394176336309824269111594580321408948826190523035544018532836040357512957409840755689568847705710787661213308256429207353037288893163777367766239163511280635038119282669301302412965786818585812945863857036403504460937342118165992758898619226090574735226139978675610919145661127260300433553864958629450871274461128206404726154728738495311009387268040430829885026028897264714179514967944962891544470627872309702428405277194274155127076828419432670203169936880256189399418658578946371817332406139910578214209745597065196793479527548757419280948903932938572485344022071444981494590577190136407551612351070404827121356679999701855863743975743260923084049305204596762925368130800828300780919254539907740991632651987360619443749931676662247675667521088069163488315396565484907153266327391279235657330970586557307550303444499234633066921937394885965298677994952150178362754271567905619715557687904857772968260864940370889240365804310265750798832717990345333896632379735067970701866020587922680321420464905243261189409852830236268418679061985985126638911596456925969743652165090872512760427348897625308921791321156663647042150816829126945289815264032434805480239143342853128673398271444648287195051327113021075713400538072413858815928575536029500820978436005628000044889425381130419351486442153610721105662867261024460505737884116094655012147540722866030828762929492476896355413898399499085226339110224145899550770413816131732351061604030570727019552281136312443324346009424535239542070221577106527587762220385834498144467665207691900228334272421064922693849916368685184689542980755558024783756982321527899681273554888944120505706713972535580837636109487224614143120046962964839763382398844977407083259164513973474077657490075179475177976653618747710170007323835599381761593732105206852361454787338750230991665866012393884858452707932457991005609531485740916469747042274889454124491263889050704098472488446747633046250764508724169093121188704585010679334135270578627902693654936252792951382531885354353414871955610250687494079852667542424176850543356364686841677439476809213009953995010909355141702553488917238523184964719324305187414157096131620179476077552451102562937316478039377888999234480898066026613272819307212613542690348456958609982247430732804365653963830863115656273013150565279912681824913737220057580821984788066691425675624971980667638458268513647456737193655718740312224768960655066241790503714283352655755166327304160159550882223953740441649565008316343330631379521211339015259587798019363225894149462909066100397613874005996970787786978896303163206708925742978199842690894653881378530093415991517096462151676238445386181344361372038278144343906343854312940371570135404202555107568613496658296430484184089150068977173903235891804520058316014143781470199171343389647813582132878502776326078294152344193993166028697958105049653823090428588770505094650394439226449702899360554538708207594207747722993034247287771202717407405586456048371398546063797138498960811554664268221608864759221966428979604439432007823605172268794278050009295286198958146717085098288953001905422468219128533926935174583665622227828512911517622559942824672409556826553455442884862896215904196863040543353751571746655082965205686081329123507532468553401506082952269190951523417735390593993590818885403222388773763050611658838221466550881544645681394416275235200312804486540171000153511828939100728572079561094083276522977365868271217070373834245972093621555278981557636307839782750778750405316089556177304225552424033987001133185472553824499401590118527075707242321714726511725176619747966884242451628564492833863593262679238009725781268532523254305628248965968357098081843427857973102082830729105049845404032111416942466675301757516265777568010343603137754870998764778816476928931686739588973533042058834056276166926714099933827714675967487274916087119907444746123858965890146866256798092544285224451998769196639060486114731665848034749830716892502297732611078654096502601260663834181853074992291165935905434476529803033218663766181430600277940094361956133935259715839221891394486671674900674816713972432825742280194841527004050182913588970412563261538813729083186601484260994104536201646036335067925422589583044039988804217357846657868075391428144646859282485075894276180822198462308541577307770329395747941101820273418614685110716824405642258670552405954674647898351306821797778028992414812600239974293687266403913747521111478516662878840930855943227435676291303377447384441899799831408685722120726904735221638347828145976920485732866783368227024773470669608687091525894380549649767797413081125803853242244256444998860042677779293273031218309453773765021181472040531210530777369902488909158090707184709959357997971240849873598735175997314253998765338896863099612754024771811346316695236977764975541399881474367462872825044054407505761128271407946494856192473089865242456424339876503443060730433884100203513486704642464708141705928676979335514198204981209931736805613528623964456872970247110572283874561915853805934127666963416590631908320501566494459766968788373921623454474167380218584553890533527713106686722930214414581713700656165757529576140011810464411726183836213001903414630149721682113760957958233072571499232483477628961216831825263041558666988681613803389653528559539419062862699168471920658773111496740513469636017024365679165039939026217480570376562888543743314179935876103031884461811511134879429621877095424485866537535608701452249377104491060583781370313148484368101196422545255431785932280203273828968627481228989163076130984304755296380686732793866247343821222631522381435962056261828971421510057872600722614667050246876330594891381528464830784392788125500031698018078836122834085520031156404733715638329212260864824792732780513808778863156577369152308993153058698349862880100914562331449435468859467691189298508976316794947528366069225803501118118604365704447116914357117603036567917566604558416591421692025851237590456496191746931525196474645422941400558170136751949776054163986105787473482208583804038992180633855099816698980909706764870280119148690448434063160095400370277326860556548908187875267185516383286772556708211909744446061282095669920706783539935592976513435870446331134490043761528063664904442631735348417742102595684371731750330495421062358127956539179184515794997675273302679061197704079226408380586227135038484160701944804805981171053262795359836093446005349508735009753720143787731164546732026256583008264570236971039666627948587641876563628873745953638109168271522983266611618803824953781203935274572743880523359342790746601906859643958022185434141503463011707044587734115643480235015144218235464117226874957156907286052023270380570826469228596338739781379990187497421267470052794582445539697583689043751383226497238281599032523639797721703273650104022411859615358296797159462555440541954398224771592922448093840883579542706599712112599361705506465220061568753274298909436411789916684898398400566080069504915074597165081745904828015099033566926440172786435141790515159172281133517556394538576994743718727608135439361482843225553071636618878033829685741754601865658266210896605525415512629463976376412080344414208407739472213358600667827349310137212411416634441005128043362199880696364636832249516024240681932710931254612860042574997461747368725218732125761175207865424696961837860654031473233267933971898991697159035026081496084258387708475225991789641369345278075391527245808971967051465478216138174192795021813400695291407624069497424756661337797406294155560459798262086170188946970586350210177511479190078341959149844568420595149597847159224434162509668428930823394005528941908689081297860438228168604241893025826537595479613649537133879003558677625785967116462917326829129823746640129266578905353038271969983370372365947928552227029665609659402816947784443271155882119400346296477060744237535462970971251292663715641066400462625177760721823351052021329451076042640526720047081394281962136682759801495804640699407921294020832230969784552924508962260199385658882103759112349439432218445705629924897635010918244240702570118483233048756693094532851477311854866601893236766694552209056425863588046734979161322995729288931956072322618711822459979334523520866466058441271926232158621051586469579691454395059186176219222206790235090325317193348785303975080651385571609039722149580601392722116288821816043706287665017995809730765581918537263681959611944275718731750004787248839993460637650786893073240103716052464934361362441278873669522173896031781155142993865649346239277971994566184103006702687164673611557414371372207909746429432339294867987494659335182123129263498571774945283869249107807252964760634139819614470834516365956329684091968326943636203065844546922491698985021870751670271166111614045257158996750432970023296869534740910082341670145864094701831614462728851447377372165754671470016992734402472169019664923257159845039397014196582872215685065391651212578445921081533541986925398432155386063894155232293437300777113427562670659891344407909030381726254740384923743826983876189138358426042458794798203767347392719285878864642042797148581784186343268531580647274004853172512666815115466190637728698679069623176839908098618851950502390297202717391022682127503386104344159692808289294564554277007988466913304297384989202705168366277624788612134660291310597504529233512898504130805252074588404770878303333825766407933950057762751537756022137235184513418923929142466179547189483442008642156834319385760055105019832019283192655378086629545825456292475530861135187620590351759441028919091776105353081164580042411343543936224627487722708206669373267269486867455892307691237216129624370908891617585294444437604377445285722563642556396041454594142759144185894373471259597556667433880990872553716196648551943101072648493211049122502548608722527515120526251278987580534954361451193382966697692464857378305209382313939322177020662684876774776206023351339419039573080055115728137346024587741626688858810691682705780946454263791203311237546056868391535003411360389531543539375241684234922830100776980500623382010062056283078057799983684798516209666134284190163147503925404751362541203358451718425604518362265509616353241340830635654128416638139202950591847428373537284273584854907374306359969613045441366931516102622563139954251287911098857593644666560747669798885080299159602426112684419070543134549826489783208894074350372282759342498447295793531000653193437531750023934240101592304119486513416640551657406554018067972428735803940486724654353248300355037303484217730864125008894209532107995073513805996900131420990133588556884000664592791863222091755643051937734189828409356149223241369338212571529769249595963650206251841474536173102662421846366486700233090599341123453721554841629501848013571961082418650121330073366038458118199230591495763074132325947856974977263505765893353139275093682785332149915462476312299897372980532914209869391221563194577034635417902556620892077437676131886031246100299503486890081229233167438891627970148279127396699832731006327788443003744584878040557184086485611282546939672272514511536532358408585423884820939951708731443437885386974229825381410464127181262775021553455494341524318330727171558274008743993188021170874472392561600543613247746537201389011864215452316529461469462618710217091331458312552007490479740922154630405017016960081562284071135659450869935772181273111026308998658014320374097988942797039071042418509244126681998901314212218944840232328063917448626252088204456021328357671589760819285550774419659999249394814844195073304916754787293502000715371568215378926182079035422798848431739912305878041731584873545641734160082198548260311961126906533645147754784912737500404811073196634625313670434604918826144176094604803964423516525545452657208508662022383947895752034383113511739535906837541785871476356742176777159201983796403199895878915794608346962652332980171876578632108754673431744582083827438816052331141657996200162330641948773620588100798969204611871759796246294931542353697363068125474365993249183345531446418119436129183690442248100400338251042070002085075429714785399683033569317752182026217671687911626765306610659342143820381278121689985298494282991226522152938253336418259544080223986731407021500576239897853957712243066757636953370579529190709324971847419847135848330237101710749321102945098177305506846342941542076771632720488149799667320506801577387374518390612677223202792861338737133545898949462384597183560459614704575976153785274544872263079796950228454683435361611222266681570857099867655369016122885492059156837167508445186897980749120529292138155993220214375405468604994094678606206118670256377316519739747097413449570769906588581067373261948335704201345588631423582938900856191132397918877492218595259667491752848394848668662277777743497990068528618921760849944617027896388482841471052231144891324239016393807364591821493702318946718697158621340627377853997586193779653967631664314791422045239396725371922891208640498883323781785033602863137456238168464268114567013378061863828900061698484814008046196253680694432454854093232413390030517556120973448545293195636323219358059801113509812524941600654036363416223241447940064533901030506619549438217351356189478199105858705595474259378517045160291602687061615138643382468248656923260925358459115562905000982120476591306561623479874580471953353452610196557598761222989507846250835910471456517983097551975405370421345979137915623222168287746336157343650834586027983016593768080764465470473776041160082292875740365300036162812604151591850828705094130902627408288119823056726073620412855398855392175950873615394754014933267518749666430289138475559279903848411334135677606486520893359845575339749569607297580411371608973750586317973029610757016069514725307921476474600459676107204957968137480493373738087967353492926313172041981726291365485342975448787534032784116557803410703158676290403329966894694604234250742907715931613751233236628731610999546692940816281941586475192377763292742466735165077426574281300547519167259443946189030951720116263420254786519236537175403641387024728421132639829053224637774952990695925726593737097486796473695223740721965316796354092546133673425538794063540757568691510670930561036271060785268266712291143254237325719451528753794614010410283418286396562690075183894410319063782948683576160928662664719333779378418626842279603733115742298022502593135095714889565197589939622522664373173545610499823299532361948686612523078388525216763887794792122670315329174682819174964324322016234071058753883158834611199864539143434343694714222541914383932334308886536478143253524311088402989664176574569099644214682957408058641738833191818373937389131683968869549963638930887090721121117495350337247969299603806190896199427125322313472693197511596251024630981458789210157986363795701714255310036150036130973835614316482639513855559385935370906862584258906005138869007452893814433707673767457020694076214584500926885596352952502371170633418111466415004936721586134970685247548489649849342708182434415565106931137829932548508330390247627257115676256832146060659876519952545553507740027151198192735590202529492341150047005740355430436184328934410678944972869716658428994361086615475285211180989528561063202411225574762137058456496464748770815400482687003281929649143100682662695450423667669626790584061921067519950989329116451027700603621675044276321074543863346514201896666501031550640828075967192391169284167727259149233969034065532530787968078630548530205260940069210950091360555040678855726387076965071740725659525981541140137783146568577402327122109087856130714481671658563899064880527774308360911234280063023666391814409314923129680366890164183613729660044853375963968893019519074368300527800086100026283821023377275379122661571994903233100145488446441680832504306308828105463021151648309666036328365652690479650275211242835791831547730495536219250200119387568007590973269053354715762845191025571226789075450525862229042918795991302039887227801619251939819953144772300654237246404554418714481314410787379064227755413668381813643429966735688617789928023956808441608099405413898123752654855931506641815549419338687690034677297260868247540732717705970445093508353716894633064582798802594433633004442276998894735753969751306800624585927986861322501404360369102280869832072770290782372374188813403665493145629008951787653523473095536386097984982173151512724662200110736918851601691494656938866173861729373494437761577414558727396592970419229127529260556035704684890617748042660556704868126069172687788171373418255644424537377205746965986317941313508074474099263447434847467195111341866454989915496717501864166759058829138764549635009032061301947798487689885164948598668592910406810388864990563918700022435171362336996973744475469241224731198235460775623681879362482823876482042337583521987266125505087299239393020993616943181522587148669787783101300433969411039251642257789082116428272016351130177512592716966757008890837345503236334318661177001779013714532656189773672518420755210091577834299100694604404493112539893995492483699652351649936088957423961764131301655704558370876442294735504739536332699688697242000565632396666893990650076423069428219186256839650763876478791285284999101558743755505805153859234158153297934941695011676112853827763390252714628323244100067971428069039263089555903216542088518525971631704445199398864578926081791197481916775318843794678400726221627527920149261545982238430445797834581341505985022411097306273517325554993358259840521980258293867771918069535961645965358031380027465977398039177432541674800916275797441082118528516014820928502389876473473917820893288694881127952879731173694937301420743141956258141587777503537873177031518606552352906968677883816027889647252131953098723189718644728818364122350296733723569861866401239059536181156792169937513635852269274783877409005382005976935828911150508197117595271490049601434477864870477269654920809996929537111998006017677380866955034529815429614021894854474597546342898475086585259377360717730258059828921785659874076287666246478609577817670320757802798134761501596956990360737923585026363926612269860039707103273710167975939389181712551010339459593105143165588701680325366669877308808926471444385722789784939540889578460717965634047786645645864988013387785190865765002956555042764750113328387810913596424603065900829279808468782074684918888258374568865813070629982764280907106351811596052119362544281230745120835101000493623555920254351663410754249809372524797140151542453481590963955786706134174734493274253229569055350547119050676127119865646932101843218947709555864352241723266316197002572586534868916193482216945087757993432785408738687016759880498351331423857822417785779717614125526195467472552627201634803848065420322485333631382328805292175382764299275191081610675163841352620936789931068019563400197214042118455476183546826923174461968454340545014338862293257572366383097377526292985390973715382450717265175724713154428018322183941105108942895990252757849932163164145206532552355366167884312134514140889032600467033164631200192097756931557488049197677249037002947086096666633612516348600501519482286288766184922632048812649619051842380272111447490569732648215576450074314990546828015599060067531257092533513478036511682523503736623589600865890082976108851296183667481512198482138530823502714894887552004613353463291966343779803681972184771462446743704023973122805643116503031038739115630374777424746030100531640290459092058874242215015816725560059545040878427645367639266576393638678854186512499021587105186704371307853234854776344508317524015648534624430734545080129451106254970528291913235229819543657954188328433960355306551857052294152806538332090974372194329710653972004158154169229327582431793229873757525742154483624894153696079952509006990552827160730312436338570248425856581783119905446866556262500425745681587703512737333474385665519611290469682027651144810998458249730033394707532327408463735788422870072712503301416432780897500015476821256802588482726363604253342686910197435627741890206523751431317715830226367613310326648093917614802970574492077383932899816361080074490029059765880297951662173777359094751226968433637850758496828494609801833093736946617021647940210251611492622007653159329713815535506948680648948906784433094039227131013048067597382579620593365920698746779819080386974497755469528827733724739256976250932925964838454504558281622985065338584574687949386614757992363077327038220478505975012793452593988749983998691706340028498256272380182327921590639031074406720551071598301897779176989576925378974926171054089251308581430267162973331327900387593402668135881049951894702575482026090567811655913505772197920584217945682916927159957717838710098457541906153585336169627023151959580493632620522219957041684168287789012649743763362084490711906415008813061376899399549091254092792279657160357934635044972129843672518791116268894641967326093871958572809077556476531727285693235068946370277699280429181082756480150187194019631779256243832978236202246888638084320473550551252683042207030969387465944871303930964589470243635636156608466929034863059222560039038256325589496315734030520073652029175082867550953666117202768189165621909476675479968316429988248447541477824016911168527404309787867723130172644534366483439075596964208651807297392753210412538310947103116529891369731297210507702931680329151009127869028506712586889582837497422757878527106505657348312544728123096718376599857314247630372421968522926171475897554337907553876438781860069805157799553550219539522323931224172584719544457042547996422186250642048726862308792873169506847333092017171208552677608335837368496195075204207705215746016198923786583332497305381551230337175141322639189692796137610437170178318350446295102285642064429882641678639332830038573228457276524705715367413934219582128820346179611810444162153937986154007178694197852041668633899627108646073596299374233101532512613290013160289679707156714907643395975883358028593738702701765869082257062033737799857837102092313327691384641762937483936977858320257811869709302167960075308806928817593984913344301869461645310472478299443512281450249998484364436870637895985354670183220194367805403673024981230626228391128211787908749724187553104152370703192719015655699061957647884485688679587483887807801690380178671872577306273390808772765053460617192730306087399179884807694036372505292574695551690724628780778085017869580278650488509872824265183647048660781327836080650226869649818439964810912586892719077864619799636512855719136394161427743380654553161436257784983191575137118507606019743431782956394880346027266405430679703195359958385208765851713958016340196542348233193572285475366928380621562675031888590358499940117459123283458910549312289951111172122504294306418804290456658723601866136738672455942521341549496470114260442380925939894231272574516274617876177334343746680155754325733821535378931667358002205630703973186349713071197938610470598521786129631787207514981615133466890128012143340605014709985469440511680934913363636002207736247624600686482809043016565191384819430769057766905583414386023427064595497846474513805486464804963025918792144497065527314331318607579502236801224728687468191436672608248544989562270151706723511622752855240055575586727248219738779938462808953635520944375648457079382257646627930120463641065621094597364827204661806063335120880050751380586749444724905463640503274557690492298510777566211771716334414157857309761296562067405550743339503582441372673931200807647016340534769014591606254434681745335103372751895342525694021001924698776982220509571932049577965856449765038602262257576579232248286110360982180349707414313470307691368165311520444569111799436126858001627927949350748764844932085289810813210812543634438160477472004147315707564420975104322320285553767029983546077972540992195777509629223756915420044788230625963869958059705786012267541639055787314043536655987350607528979857948832415611227043559248197501186867108438829633963663650996365694360930200636647950954629877533370892139853082985371710679134102804292756160134212066506452994644973217128386964873452768447901066431980309518472945754355975325970071111106040614593310348970710927175130015619850057868982418742758704360351235590209297470049088698473337219719460343856000352305294272701374480237262257712919588306093483014782999861288537708472455364571155344136569879104351187577184622135475848411167626096805718782265411011868337860443267309711966855817202347930334176668034748212214335705952457004064232199097778895239181039522152398040585416749751466562504585437094457161636707104030837745484639646442630379629848414665006174065906874544547808633061513272283678655645172999441332405266800638069174399774980601118460290858198497880564167778687258885517143583068692493718253624576163887542805866379866523020735171508854394972236706358209187222668468294957227456198914533367132338794772896007030637706838047182386672842700008331079883962040750304350319201371138990936288730898818100626826580849899434779872390871779099656148421051139344548961037398321641899298045443104357529019153744469705576973542280488167242510108244232843006301966528127660975071312397582281576615720388673873849195759003463809510074489699817512313662682968906833922407169600198322160340771325729899445231670730697988180193400553577706317024865261172620244966826923945801433197579345907543527641953758848734755548130269784239144247565951765815802096650711436804686119161131439504812015983594697980050850542433106364798397756486214597843980561469113316835810549289741024317899707767674752878539587585374181008515025758557776014873625223665588860573051526045312599926841565189524473985342730347571292801689695204942283330793466851226527749734930900801873155110359729895642413705773832683381100208351621270073372703038896353653419849293996081426088688328103256153996735391435658897263033031818181821272844966954408899922794668683402890365144559604405665083883670063969229595807419973571824318276917446759136785583982657041300410325152114962356112553671043909975664529866142283828706657805606635213417032580810931339067391538670466330322519843787897080287559577738753972888599227989936601981172496111295251200778104038270227479151074054996259716010601988307510097209326071859733599516896431013046235637123312147741003809579470485243573600155281464170537068270101373221358424069195076246692245538908098604526193330204533620270611686159631358220089900752031911100923873274086456826174063916775534562193682619312124657186710532839345659402106328206555947673262373486660373054251927953196396706714922267963173101792405253817229017389537797661084855149801408370993186487349279387414572191220549830786827403593181771992224375218466089191705181375567467152285019312906696381901339839336940464654225478964522542558264422439425502767207554098878318799703646916747029729046455212488281065128250081445645572305370785775020221892642221034421373434969129155792513635232291162392160429333629624693474266158697821061650015050763824927262653202142640078392777312798316109269878084832406131840669724168319001313117885201186894857290027534956910746905843574337650196486046179446448760856245373140741890964958529565885612366293378433663500933037524242835572648128741985670114295881890281336228670079845772443589008596118614033456603045664459761599246416702787396268997659588701394137138640633121385593831779650990859756476417688769553670850068934161047016459284724969016626634256907891582940067888191179420752155106796543658292155417401023277335361554443803123973657100908781046316890099595736663288945130404439352622780817117874407210958323973361571700840218556025710599096532822828361770189176539862383093105445083076722720482837360503884927461786006281825509825690249546102366294763700693612169823067975893552392680632274683539474328167656960128704369577713299990674680312965802493109161331695604341208537712062898443864582063212415302846981967258122359246452942543135182363094355993763582919560508893428331273061785464488186362501838825422137899236322582404754042134880163155667595129323379033691294895420415519935007365720318777301043360898311421008507802266827732273125195756465233799925972811320022852536729249394083855213012258065748180511985730232225415921708351292878992444737754124764311581199343209776507256055896512550607691514537728481575494902333911214139569927835089518320023293646720998634759215562643272335810898663550762041301055236715546690330889297763077356114979356445131472520074654487532155031610823266887677235585218395665100687300119564509100244860318961653568922511320256061684435883970995074218448267265832446578315776107358479902811455300578961261567867241213275988928913740072649613591989599983773827774774669510531461702301047251852103477609969307617900086086227447540740985365657928927835793988787030558230310346590360453328888206039136779128145939818013796349937408466483661092559160617795317125142836488926800781364296629215094861041674480487772444730702658188014050938470341910130510436298308279406650626597410951168390044398469092765244893852507580552799174360418941436714536076896712687251025917665892177721206505089229305158490711316427401053241283747419902625217605276389843821807416738062090890280667369500206952161319931107696176103695990766186616934548659196727559751364097791861238943213221902873833543484840963588727583033704772575081779961323901599147296588225655064563699351153524463127885162917728591639293791340119194268337829670407643915175768919537690638564206013439759665064280930460813884820481572169154439013519701154157595660380903694075257629073798274074574387991760241303676216312342540612131398287664421234919280769298293745149802079287018843318641704257163383863275959972578447847491172362995117014839427836449814215217848475591191137911993675763565327728444873546943674720919746217248082927390511675064308205656118652833806880209936265467556478167528702203563864934565624500848421931414646369013367677640870624848181275988880533174882120797269283531358353703375305940766389322916220489288632494868053676346264331797900735092704952225760641039014590191476218824987454930793265782685661385734393239391816662556117285186449123325813096976312812953073858902533511154883460119529111045440873087955308865765304619396570472467064015389451890376791184276924236647687319022592685809645809026791040660707280422237154751951231045307025080815316260195520397307414732271190261945578296074684007679278716649876335140902543614189212312953331384296691164453358649856263962779995491129988938049153223414978528717212404793454600263005847022623999566678356803714064620729212598048361601177884122164453010439779620343940431248862591981732672421042673278810434631697221813401193646834006208165828806478776562441012396477977553814953458615683644006780401253169113278321218483039662048324381383917360446318794473877281596871837863694388933031451569117364503082092078405381777389108874812450332919183354612626544861095124220526384964107227923282936701638241355794406061870225737962993574445378625280203945285439674981852189515069786854986278482925142240142558524985626101769004331840151796459832169308543143383624417124966544691697416359805917001934549044845053923905009445816609529257374146716908566372499150687804054938105854064840819357492276784377280305727261661871028342127301838679507431889145036028278797922654335682318580165659558664423690738376467094653517741530361779794179724420601746813618792896809516048201590353304276116817476912187902408966519675308336354604938630114700519685454897640391860344300544852389095904017855678128692530612065433267418361651419985835298792961659368724971839835141731311471117338146979893422568536360894397044423129969216001870235437142817414006537998975204591869843641742352235093878101090003792461983970740897545382004590013422340208969492243831540874601216551381801516349230538025595088352335089606419726639319566070353580468270026674643895294191734816862525760240681449529375920911345856297421401167812159622668540543572694740289758396988784863225678603734171347127554792037749165704576477192663904457914562606138958933570921972804970801715169567015717103305173760255289567071020087041813460441433018617575231039117493957179858147505741257034941781640757711668498506352422959412421407838633328276725474290200084516334702474222356606150595165896187632813670959242009762744334301245580071867149674326733620529523323958305809323068456950861709120122671584799233903648714426148699140459691085923660513867197034680412887838380212734813440361699356687264234331377130881086324857542657471369108629433660447294029956322152333297094581852095136911234133722822100674174469061803049656655435420512359731430145108869100497144516274925532718675077021732667575643669561546326692853444627242158084779438409366233480886652256406397414268468321467193715001510455366413687273113395006634198281072799448864616007246977289182588065557464113082394571898231109898214289460549547825494108293436083100831051417584145195730296340960595906713101303656811268473399814806003467454854953175729340702939830254584683800073760102187070635469023589659288480395517372203229160083800924548899090816806976574740031162913959142042641612543390914373187241791102400491316986808246453174140054926938239521612794004572840008148821722618797712956497749112871797324805553896444423855821248127809019685657756495166623843892766684622122295452139354592072184574056386827314812264243544339923756003431316985507880593050198262355772228237535308682745267343809679792139383776390233856530470480777537081914068419552244549309957522724592613900518047484044489552805307353285338490008337022836348985481235790771553750307766587740883099222402624661912880302143998242716264782034482713842041842917892624687771739082358590649228729330018898682160552474607319293436836143406657990609869271041647748814545694109971684086686299813025715620018641716598756653497692513701951961413690882466850124856072008047455695087875102636432170672712834769012271934071646646635665776056262193956737237769224924492204905802538699336721836310912548502705367779894726846652442510856991411339093410548610754680641822066442102902787709687823273841814298904758895201799550682542452647935732837991645815004252035538885110353033883437199948463508842414733680686378962251636776347556105907782686034937705846791195410749704201898227565609015919649299649168206661124075142513975222404109077150622618347348518618363280296329160628803933441759566683814430064037090087476602599401102341351821270377947521454504739686504491887527178735205460688828886204551162697763601406876591782806901742387982034879225469600937152009589610055603916973021582824021772983521433027153661056723519468314817423404447805463418618240480091109129716401649542698920404892543456489080366788960428241163238680763510422984051330692582951761787712300793756306928611045873259409398919350861399256288691777125922376075860991680649966907299100150300795498354869492664382849292249080038017244143855244592611479758553981900271897894719229505085774688027981517829359263463486875093660794159421433607771234029978579093430274692661786439082035414020106846563709995998279766122561917366856869868113348048364837318481294113906410496640524931659034691688647616240447896891316776976654685377187411497165538474748070793819787236579713687623696145184551962848782380012803152374749082987405429143471986421917083631004508868591961037605160759504873549174147155861362175726171290678741944882370721268175795509062682273159198903541235457240368914598285006383948256259092257549690691116873436907185500320409054913184072781054035207390182930711545549135057355476608808427548450799676890580311576978976466212061479652264361009857895512916006438077444284927588350408420438202357106940178487589105387133448365127752997904773075388163614325370112377339451095728188186649956476253864413001227497854281746136554796302482647898080119728835445309964521139009087792382476411236028314481154722113684530228629125398264805708108494922981184739461586710717331748149392089467295007769749471215795551374005004648319528641130434676916425918870843837725138837517913839117938082165197692757153947295809561690300899943816919064045862306476677816437224971836253420477399346154871002127778347061333220534348441898431065936123198115489485704602992860578906056898636993190412524153472418305864934408882780415773688525071557024460715690496037675219446670261601831745453561734594232757026225422924778749901899831357253099853534289255072658086958132124868649110043768691540444935762774958573027714487792982591910710863323408696392767825813678133345674495656645043413854878653848695649042592963115344224028687692336009932042240564743809768861824715267526823148996429619014065525182626924461616178571067376192404718589935638842470174459673010252699289304495466970665704325434989184296863462014797083853310358660824321429677149104630590448715465781604983864223629969560118971569314948431390716985377434104828458648197427587716225217185753634805233862378625337901953535189657962922550464043967725690848058973752538350084115929039143148619628152549434438882917757972995980510449818626617693022536966422070988667018516085149320671872428949124162326062442950294504765922129125621334800126705050852559992368570292000635450291045186463708830824071460128001837507083526862037000693143679604532177120949090224495256202295892646332690302158722482174747236484181501110755887166588729617323923712002006370573935773502350637340222176579053720811388744912216216956184901927355483152103847233679185379379592499553069805951510367552167091795063420566797756701691809497791431802613626174538937897540403694448547018394330019206953652253541277836738212930835342903944940875387029456207927172562708536774441671363220108513109334067170571557625404679527119981448928230528676405290181088314012541683804629631767326110973158380079389511610882882676046586435918585954746183264132026576684423755790238984822653805609298006744200853561019597700166374000819210463467919346240472053673892335549532827976473392338626591431128822846071929587282557083550324982965817392760912730292236452216175112209432340196512358348442612401461866662708447144692908249410372445514252479024594059866291581261778857742697503783022013261470191698650848003481944423621613979264487544853652062843106815106945684697952921305928639617199413632082458907590695650506258238132449310201423358025693073129852852048612878839488592451191874093797770298249523814697467610733252581704985518133332345187588310202734610112807321558375383934458648175437387324255209355582300397211097698187909758242347531401332325714974989926145527244380098619641856309751430559026598256575906230860453220312254561443076849891009234082038209494023070722436865207956990605635724742206588429830860148395586742862200924174364644232841631758296142005285176054664465351257784265697959074163411444033261535128771938757836945415072446943715560192361522269508947626618775816096668637579433482007486677869533471602341015152543743997679441676531339502258620281532303734437921241892207465352520305821712938186535365438802748484350464848667212743394491881556340032504171126476057260576616373070833798882732445441818460462082467786753300100635652063868582390275110737626313530623789198412945625758102925238675334653941861996637004227389986494579604874179169667028527024771888698771725884997170517450143950126512219837169179533998307089725641262463761280765454176227640595878109624304928082997877259821022255030393742994887970018365824158766026917083406336778268817036424222991283541675214687213244270974449279892448375610320155565311908397021067914692526466982650625648058948155768110572008435219535908507461394338225143959600824939101444742288818919155599542126000351767247164914464450360384611349455836776099814471498251942472468656376034230433514764690486323912817106076876917186520141045139067106693271476386849557429983230641410432676131001777869840367422851292015615751306232882498141158247203965905511919539447508436233551540272360607014201660499798068739290093685920608891940794695611282897014855774702235958642859931037632837810219979828728375837078446192229742454998938937195950137794911151509777283777555780025185879663346595611389366545635111769476307721639929422642349566942135801615702325488757188987207452916556817040561138264751410110669178557087851635675553891490023810513818721879691361373094659122552294189545209580452757751664702382969159885882429260289685787441036619554493374784874542913797551668466020277509953915107128667016777602585803261628978700613657246425512356620284019463001036170131856078862139303450089936668883574595935752429895614354088019684341734751416171789455224258373481973091870177540527475114333630365295694770290083900167936013717477676428585379201398306973288922656959573391908581869662534330449755898088891215414533723766019014943510578015352344775584177139058464218952428529094259305954123896187907247764237445185688875106522551900735023355417749068662019202223122629084314334499753863388156163252590449444039888915946218458195466533145674834304429032023242700906020823858017089285476150297943441411599339274293996493208281940305275342677597988676573088075468129125865805297057494263314115035061830328807951202785110509992181621590984221649805914864666980557596920437271261251725009213749610823604578799094586443098782791698385253758722408441873427209604368553136433543515765525737599053114942777243949642672316881223502513654748784547821243202653810919349732921230704647634311605433444664157335219868108782169615433718177346855848026753114353670658041284810716405231041931552021669947239887767861285657177027325508983895639083707393735510015591028844314731110479303838736276500147622989723626856637898218042232135518467111748283930663799934451760021499007434281908931115806197504938681156940029739570690207261876534958405364975188934507327369341349418868986585830915139823149080880070034033385755016017567401734529912385899541394774790133118416518760081101209588895937453682030884002696270327708471996596120683848435469065996695275963900290530861146491866841206782762087915812529318022242483668267655643236830321673295889247088845313366116763702483845534086447651716894943193164265735591077708204237515394843530108687234804080792924874105679627614768729358443515871770196724900204842114426444548628554837049696919833862451576972180799547483546610903531368376466568344955416239286981870625050116160810220062991560241641680205907003706204557402195523736329618844694663643998625269233039077276846746989238771365039082879407146205538330995978487967756564052986631146471433787968001577248093407209369690087282005901365907104883631140641361729281028477760259892585760628840675294436999340953205969353302485643892737929743261674338447143561275075990208148763438647182391435554760973739669470650582479336031836310006099132298699633978053288251302651390111564693923412580462232235090964673952698776017512048560432862109982058027160720062561429798590095860028019187012007488753013335394923863224041656230764904152004019663112036179722661486532262404057070160978199541963824604376018317357834869299822574232317980697695733920010814122156478570842561605827448222116974711594428648027640299281166824315485072179460707905572147279415351395866707790378246509189481528812156992060812466298834753590457084794520123760634160386301093871735630860166393471809045654709436864548107919855860288197190443378136823644449581481860284166748853596575277994885565687784875899485363043108628366502985941722831863449904590224693270905070266972906196587328937663936541321175534645194653132972809759997061737801031339240140435109909799188162006038127799976178993851969317228702396301257183702577903105949776068117377057697126758490658439959133995666462448161724847618802613182585538170136541510421055665320630096760912218067734673189993739971113161502096007117256022753262386959793764483331684499586432144473662587925877107232786292602328820637898298119954783612915030702135000076918833761284306167650441637233571113853503510239285932237235300722059585295641023546943420508004079891416988703240138495482657536845135146149222997866515134997760465378118833660216170879049394308805441184892731912707835226325334366247893937666587566345512355336345577845148204017478091078294107050497724505584583561237766307337914262586760968518103613677689229501623186419256574204169654864382990870431415755241355386474327661173938804479880212112046583598382362569572603790153914230381540915662843556297017402781154848148724800349265488005130581427969634490630161946430154868263571801282317174155584214510271580510616720966908919702724465635032733896131152716828640059772709966829203080887498050957198625843289017887233412602563051216967208861416992419769175320470106438729250183060204773758722392119731438493271665754760296153529095105883130209896380822514179317490712623943694678462238767028294729937563783277141329797011044069421287483211280492864085771376346228605807558113264012814292981199907993542082599809059054618061112635634989540799987092350341523798337149503334024641782018875767883411067549907673611996331499237513835495848146005139726844998229874158122372128298477006853328964975539811964127038500410594744033077376354140933975990981383928179743458971164562620034508558556623122743076431065195689608309646048055180230400550923870738618278054190766789975427288872179187618965032002766849992890273295469264707782707223678227926105675145151780020315383732714052510482153452042230827767894994334150375700514955674703228365997206079220469697493166873732702917249771760340958459465958837516637772577116523275783008918832687732907989425812291309570167639871609674896242879422367681412339764093174547219994549152225684265833330424195410298852462762787775625766889888602465511886958874142811193402058070057629449740166863213827558134708336874456690574348202493420740655433618223395236262276666480369229897192326500855608194187063700371267102926307582364030804076773904816889253561376797632008509405311446705207932756674323544584197659358606870580173909559594898662306337035348694179713753550760530938807405986521137162324531796383640306262116429697688672774853127058932530009133582430440306372062185247891984495054090515060421389960099003574932921363938060182764779443005840731583129414055506197692018006946343172738525179703388532927585789015447024446510160378815398390172121710760822113267743219140390564399870482834291482993650660902585224018245969104737708103029020124603597507688650958045664943291287816074404317068314066703601041187544537711172387321485154988057319387445676867854719242802155430667938343813367593290473489249521754086122933696192676439022859878345508405568227139603424612349330539607213656672715003989636728732644150181197784379069876520099894388008868276620296728636895087553806545992246333410781612179205687142176017338730766540936858559142788357221290429710607326440163641331699038969356565378806302337761002078422402051660450289216374748364275094881761040040134802227505253749461075154327581219870056272941666971104630518465132205362386764232414350397369369726244550384739794852298705154463304575094161794370805437389358876216424502975503805020258427666356375160485512382279643432336536409014089809747435219074286584784759435540847975520996420301248579170649855448591285373921995929554351463527966972303080853554957230647872629978887619064317448228321813473952313201938177682600760528926383755425419671408020782121680191358959036764732893914486453487429429315438200677121673845057933649634668500593214969061643923705705116295738774642655000679891854356647717331652561205974773822857043732369940728015736582173635654904927260320475228158041827779835917174852917616572148479615305222355974667589421842669616471856457880725293257196281338257439049918180081623884178438920425004466638178753472417623519721114060709077091909006922241447689775792324774221815026256369133797114151355511587494587844995264722566312607869243870975967388805328864500206578465532218912207583426563075456637387855628845965037787074771207363885699067420092287915613564860524067927278855099385240553264553730963570270038004264270043187505571601667580329741643588085406340408971410740942990323632117825089589681148304257646264375822702934565033841189934145567617460159597235729799972493801465782871656249227691713587065085121122017159528188487625034486588318776587097201323317196527333949471549530198149990020294772574410514321628215489098663750858039119752880105675361954558222767809747081313284594814812025415305746160631683805518490894065205062629425126861996762530060841472385039391607832484766973043848546338796397842074566234973378431408164690173280362742850305228425503537743405820552477101788380154341793857598648771737181439841334532764336163886448747510335555972204157713143891434807901451428118282289818213964832233043212207472078732927237323195611250756553048471360774851057803604794501802094180302454964093747176864483221473658002638144180073872722890456625373166229093982319540458514394897372669966861133104427917389308905943801942779611449162417488416403913973000491006847896609504885580076255351560763126420458511281258830658462034437063571530490584301026494714155923047317003513618657995006041531365471839267687384806609740108627822878909344094002517941627337519890432165348239482398108802471925558367615990940235699630904382493149981435787206422098788577689622627284042690562931010722577103098283018252176269241398559143550824224190356729799659229404563782138660394278880428773843777976796958843169105792910905129984808147635038789896385957296226899668661612060528119968100624193483081534815036085030979340381420509042552233138586414583353465812969260236349661212903471475177948626175362127267423108420143014524132275920449252022451369512769751038509814224560907320729558674376616912475256578855932620637584562832569594273754030829098126264521418109745144440107727588942726240308330501707203811637790039334941321126578959077273895280321999715271349344723372227156200816782330444840107759777761270562619286054720665365530045055323338541712733727947760459895332735950525660233931321812766843214025866055481679695356592260220216837988730413673497500554553239148611312165077442835319264403361653383170360481737474650686117653781122101592231522505003398124580669331342935982996326129623315149042325058225415489870195151708990416236309103508133262154002674397273493323944808490104253550323175501399153285238818528777170459982565745699997310501089961011742701629382998123799790915450971879735299869682233486291793285903312826165157154895774703580873636040295259542407630934236079649887820710369343449633290232679893800219473114281115754683516090815996831848785969636902970566008503651354394641041276551578734500006277008087526327047801274896748601623544452260151031738512302898214991739366676405683574003508124467480539001945328321160555503803773537848436840257025238423097387767199249333915768567466724568516003578876908201882686568538430623730875710524758184042338706551699274648142898848560735130671251563522704663863616106634080455990220807042829142317337146686821330184297132471899989891180487797818581063521601704846336710023076329827354034073359685267389492221414318793688803900808219763003838448674258112918767811511759117794396581797642263561853687528173002708846266399314570391385616908425642830929461989257177722728186933065101975927048007322571139944288376555581159145742451888443519605532422097311524433054230341391566347947302599942359943668725616706804834109437832265550390831355644569165042226552781781536854813112663133211208343496679821595389652529916264921495311353643869472900303247561131971058039296287815457042974646250297610350082509815498576244996321174870664620421469019366181407921067236224560279522738846250984872107288797164344375751711811781771649524950346702714644677559535805318719151977596557869437982281674960116326727767690481594865482691592812439668493325723522975751153748674717683366277579321884727029960397726144702547089656288734937217623347201589198545163465992482613010487734986372580460017727101793597021979226790281249828361734012831880517937857896688268200447612828556440197364293858486429252505592252244894708024010318725114350085733772575723354318274371468100814910336966128783241140406314345346842388535634616254314065827912979663844035214243526570678252762803869993248842173806578263598385702484414418322894694616233596434615495322634960377603934647388233712278001911735667009594317457301760381099046527928058076019662037182886128607819122376733702128793672708280263884617944082768683359639048839318973576231134076448794531416291811615196358528150611237124141980808827674587989685900573780809263741416923665942352887854351065568039143907061563908382644844156489706837260276771480204461986152848462339269837561596477615610096227190676588582217927671144885665800634542523990792501491781397283052233700691024490231879489389553013363037608633704813980426001749889159492631275570115343902272773066373676367899570128597904601975094896232352868109755636524737931256569578116600201922991317821892848410556320370465766456812813260134614333389676040333196380613749938819657490381561286936606823385013555931876961849992461754122501074947101506122553851319900426786284546732791589379243577942974913436481173505299420567397279569723030269242284207155437702939096986812550094038810725767793188402490541835124125627974326069284506264204734869282775260884346087169104575275799596145424602219681874025098242589476718847832810394236433456671054718854301723671135567047465296132688733624400955771749295587909395016547187078614020283878208664600787472339014727976437142336142686606225933885431988925155860827087866633682698150817916237479678574468064421931472959468726907471447696723687665017544592386216347562966886801867910196102735481347362971215847676112371673069575634617459174613141033833388469094449265909272828716993561737533842272334398805306831641086341401599083853768418343691616862020309263874093641349334151496961840552996888855958079774282793610917073688298146899451927415684922815851787601802884468347771132846997170350750046475596033613965677136605748682614654835237318998983936509090411397022189842847720291396409689723663703080343477397569739021735439333547880655849176010694471856671848170058705564067269193886113347403210361611351177192612243076090619470786943669933040010947681873196816342721725612995281465008000150373164499098774592341358082467597324763289071278098913231869978886460797754958885076803716455274223979022493195541181257419840826420043070415278697829915549384171474859589990293505223968585156619210902069396718605402443711928862442869161951079548059339305201091469856738134844837543672039117894740574277770056194885937333022915160887049372683573305290524344489110335911792674114401126354044110568879322577666454104566714299796157939127475104515756323972585971755107070115773522530099346630534357326100167565304688746269678675402708017449213774400673204975193428458166082382907872664653275818062683125482405575923493173488384735253605081072474251116154871100174114378979449120413955266758435648686439954950761210442469413328820894694788637395521197504296149116192833301991974907681140515290858139832890216348024142835644807618325575918820517306872233953834114447157159001917608899669193421526827504961784588382658784253061964347106831550994603435694276860734445159796259990405315259454411566248445096246224857388955561655974249217862187453271418255128009413380281021219882980865278173964652277985256084800009260342818098043660557867068615840726133946141282029805816158841117266640399400328022085711864862112694554852716215408437005556971941368085136733750975991613084158204110645239677186666928904280582231476524164701999158615254953433243648525057575476835749897576688019601363659187256165443564598318727499021720891942007265922341551334019091242293872390715566344057907700877255104137860677996552821355862820415694056293832881558385036714662286612856224984290323360979814114720640575913683601362470183067448875970108476599016283181730940270861304216136301720189370772157399182790265231276057485938297900852527904021724563179353431783115193858787216933912646641396362901765926700210898164697711056011711158280074545190315966414216411436088024349835902231221900257829141969825639296062293099579468169904669795591182081171475864567767710952204306103761131364819525142987368901303852144690274364999345886290718836639813602488423176762198018074031760606490245835502204897405716191322830867836767620005349810220160785855084328706556083582749242611880160841614889592933041660434634063295831005229546458689433640114978128101644036473063064692255472562557933045569087426632948264667245216849781927116803835572217326037062651418540062858862841446650901725095117843975034939015188609302128120769911165949361199929798356168051061337148263487833935755686282852694007250664732550664817868103659027654627135575923983543080284381607886634397062494615244561775794392583484676070957906221540526725043344004304846530706559429149244842868801021593375153353395122649446222529911681948000624078903939835234593147571329856707064144337541805944959604549161006855320548085214072010013331096580221818905000726212736422120023893908379317980759720484286339970976105148232238777180956507275642963510496041085610391418344142862714647643452703148476411956858858516903658090423780489815649093099609413747013023705343360475823946645011968292777398614534909135360504546044670213991598975129380812751528887552010424796095503135845633545092085954988727737208834736220366149186555954093016273256923096818013340475580312277335097677563882609941688853169664241781248664396273566673966886256090651273136313583146442192121803136399371502415700399832332767152627223065653770369595899838123715131614732497108098099777592328272782113697079192946587414946457986162356555638991766814385893742396145803474917574825720818527692958771406308671510595147017714641869593466773796632349694749124081271623952911374120818107793974976419547897418290424608242000303522023286974242626139194904686047436484582480113991301963789463546934547901203712572854604492110901759418955602421991359848261561923117972520406983454435706474577887435606707989908439986115218464943384062765672268547947893689576789917380348219988298710624929820057825447383311897187219936755623332191016981162365604607925648898806479274748973511229216226596054928869381542772535369514873389368648300037256213692908695826185528164096658845249088133976271809479330889486227388845094964252256566440656269190551442651082547244183155399112832411042644778066223146547945890892149663803489360646587304706399453513724216694116372874099589301977768306270181440020458366922248243485849563579209156627376490149698023447593860642875807566371339693815717697272201362914473851282938794657049723879540226692123440081937694176997481954352067268067417994895849159334773452673557214606204794263230611486474766535969620340080820601453117172573687331835341250166124200271687360839342251375736973182247092142552676636833257552470854244911743343112180103424246550708838107085237488195340301671946367137841830206680485129872752368993628304931161685669753065252829811406148645896956885132331401804479721589050805142634877118326170840335531961877007951371823319739955038288405840704204869809814131114602324442505524735822813687755981180887379485043215598731992013907632917757029897955127750341140435839047410479898249335505899414451209347422180764752100102914881903926351786384043247090934585915392359513844384026046886863175402015750644476208872794464766804200366787235527881673494119828139625423960012045124515265450363110441770842430890228441798678817327508539874544958888777895752977258646171111750991154209553654254603360579112208345263770750577684401260759361902275555344330881271056495857226114939472435352879453646915466485235392844583990889248035108301355568268177511799540163050827746035975895221761718738768221958025100923192355866939994975799911558510254524518506064322113064239651650303784307879043036300338387826850976050528188566432522694206311057942475096260206908121472940887950091841091493857400781629244928673131941922150805474406037426118567275844068343955529445339623213154624315218341319679970493683216402150062580635396276613713835404193535969289860033150935935612681421658175837704084342027009567205721946733537218915935641437401200839819559355799059039317990239356092744884815731097118428165491488067245025120978420333198274881159613110326231770426776534238147919583495686189212463094462935622852632995714127821703250861823512930126335367797548290835821116757433316578525098155838576861406638320195768442219699487560303033853798925843878793529047372867427870254601794964539624287346520525201232898349597117303161122661884139724348683365790432155479999412030314576742912671253120540670628515075010347681080254074166605504057304028319330978261844495039714472968144173322904058001422182694519106657293620978949545434763196755772432134464245044966104880440118011723962386964366681363434943626115260160917267520442962016288432568875919392067557344168459709663520967422589674808702091804099857661527431292517601641481804898600712797892126855522136893101277317657645400709171072727063377908583733017285199454927419050773909325202502952998168056958509645018300776100605566419285183702070139060484911980032726255132402194185490404890001752304242121007966672406252918449131800784880362801749342169050289255888459318412758247386835410263303850325348863940810182376623099713710628970917353074005209705384426448153568748944238053424224901127283440013785899938589057086126602938703951498583945224316815590044958602733710432512932539583603990387404542552352680277456451090294485680858869498672161925562533494299313568971726220653908913330804064937011943388020704962677413498151403550291047761549755192510701066389331564500663382912891862150233821132349278027940348505267558020411060550351474487842598636300259935914265873315806176202196707960925035923503090652269968752578963089713895375568985679416640597585495983533618733365819622218783296745371350102527850784583860471430969686911155601215822144304600451203347253684418323182617242787391018324966089547616563400833866015254631378910172018847300465888123410004760509760812994265522260801733535721750616573671453933890097028933671499228670512004305265349247523521267407058778990624634852765527508772589956373847710551707086660264224507834000472539206608386888228616946064772521883406206639896564996260585181210293212245923982962670900657062258381965031971281074568514035615998704972609246939444108162213758356363917791192838075019094177381747166259936763902340759056053766521884288527226350770565751443657105100140476829830611493143942522883410328459163477032840906492390178853516965684189810385652094081705205555948534050680296834618369311629362131066565338445358198921094314453132105902428212593896585696236124212218260181110872032803010878605332568411539128376370163369830221434136529052767336270853466166263571889282049659844560537068534615428680206109632322799314417286075546861985736604172776437316528441045325621813565559275748752100419688946551509767908868521610339945488612095655436530681212649755134254387852540490941560763268609295579354109921369233485032862054660048580637257726985575000485113311083670633874919952739607815368926841097043054684077848471237093820705885348236774720481789984972899019457144523842551807338829168474119523170571473833860864794266242414942283859349792725332259945233115701238866186415471689351544594041693981531788304139481157890662016380073860717623993829917724696501895782390452083945613544744435579088579377729856249549790764534696019032367362689773768724848283515281285643142451218613950730538916963476603718995968248816515655058271169531747002869480634978328487527667218908852862728582739785045219894669377862715255957674891722594317483085341442435838185375347349424115390590725855231582555576661902091361599317144738832513583461201524081687461072765200191910380209519258420715502845801797530621923250402959757972229498709758027140058364859383598040331793122611947553198653484614027434600579135034068348569950434513898263165580659336244512636024112218335745120779150237160710855961830207829846309613051723249289491486181332088466944082201011059936283903946172608017681740645302950073743463905497506242695510790930634049690665199571680172624795741032808073158473517112451410842794247275952166590989234154437211111522452837735104149675038008826137524722399135821141363660144584433819016109968736060000739173283954660888922854841544840178052264738825520376998949946991287509051389622406758531456507612360955114348628372745415629921931417284043969876274953916729828070421149571867752893857472644867661398665440155528622935813557804427225743298664005922376018608774648213798120099477878517341702621430222244265072812121091404494208504672048266354042038689443123331300071837425404696827430026892673798092435213294263946747283959886984450266233788262713291047047618603081739280529377799250869889480943837498460552643311809770501877026782339590087649018372769496905714259882998736144419930087303963899925915603012011456499584007044644384793903577589471306114108256087244903604614750768666662989744677819958004263249127900650531632459595262641686141728239838531136470099176979788745237110649071440176350182947306941077223225480191714398847736191340150806550633626845202812333246761021964736387696656256989581049491359972661874500443454750715995420316120795229107025766627964717690204915827846069670969419762688473443996506818365877653363396660123505199961974422407860491597245613801931749590224447145613330584652142000981079733717171900501265870792426241970031869684412122225099496166029461945243396162894092777814895234923010513709873227430723907404966819006446697328271153033748281201033590893486663109108513795051239908232829530363576272289569684966544105107098381105943140888628973516676098814130476619976276175380616364129191928300318475042918853769983561722953135422460832246781795669708052558512491936120544068240167241620484491017005972140803715212583547131523553451728025260395193485950080425066005234907277304056936746377469183857167305205893195043717508516199760331923778353923751909259600216864968792461457586291565517346405844551188326883809650486680029033574366206917619269077283190202831038330077818129621904288429394121079358523903774220281177529245603296983168868965052136997694288488689727542201629199677357391153774244602237437756054593389993685676950340145762069579914512835310805194397462429318596726554789261656529555610234777373536944787625076627749903898397954418483611415273410302009096068255382657572130534241651938508809471825802431999599872082364353814778859995809066017965799550605942132773107167015695715914566312036498900401453458881660931223560905755368050143823014974624992693674102853784059121872845959240026448776586485191039675268352734776077892997675079046446376547291380338573864770786028102761629863466613398614817788204643218346668569035754368690757286083627225547992309234732928433827595377236321770256976333872731219147796565669386182556654049853704515865649532813801328086614443489103670713100570793490572586707144432767791190792432920319462286016647589536134183532499732920491361068089514511755045406689875846375516128234479658083561131771051337877643582089169723789691972399885660082022445172094303173722543882176412250020887154632320259001537884040491726545715792681479544367585741496453492350908242975326342086334179318320677763044840365144959034460277729738921144265596134395061617043301427993552058039866765354736007438765976271422181287829241653237454698185221707387032076337802659498512638257624748192607023029307218772899460901760506156513438837420520789825513381849563666422265321579806358995071956886529031281970081851571012827341725880794088336376603509929959219674895343675675033664209540244058987869422473462793237272738215425448301168557321791784997883951053135182028945306590475097050844551329945341280470321709221285395425580966677863573511048738475600998571034784765738060459430986747184279913912578124872192763932855853171684215637286352824609906257160517230535725469393381403715767813972070229821586427643168663397702405369268820314415070385207646032726972779046146772220483061340573998310822644684142895316540693761461279344837642906500895093219887752791213507365988603946299684105501893933237847161985202212648460321197793796705457009627588835866302598888598750060644501344214457931640132736871981942666011992715079718854706808490885312235176980019360746325695885543958914075344615464334300385463528837393249012049991575835348442661631176475289510536704263963545763603213160734790179055373713063429498147119070274918616550357956239011052536526034463235473074877648695397982784129050784710720934273815636841650144753879186307080886910292346393950291039855208290836999976768449459650005574358007513493610302209981739289608177791700545776654170726446444045963435999262236169306333391144508290063947067012629611521845816581517146197551842171809423115246720305956099596446907295978344409272397435298054845007523251070688544698277767114310945302707985519178504962774243259834639288930577984713634200049301661366925203883771588864856545934389657931129970038586279620769834923345255352491501248546629381585597670655324969720037744356392640978279093648757064261166110016558285130334943589571921290656050220329819688448907613751943870281342687660762994463614551214210962415695585149100527499068471163712860474370763400449509718415568641033463981891572237134045217324557777695573617468984315464097518343223340947588352587530906696327274027652375978348770591696274681142956432907934324005205721547462490867624230693687859389085601096336665904082247521281629152797915045530304897358472704461424376176068890744006057296393251303442154431021686100407030855457070946719493228226166199079173008429714891157546574956862378827611542066086744481753531245129574472305143332759955274269228796802468505583789403641184782680895230059461829488045738113215797783861505353967631163637087165296451501678834672893980732861890313630191930281437966161506917308912904174185094182079356190138858458573176797885051962099125833273835354532228569152184386995048692282294623884954610091278558176517836375328076625774209516998316768351454055757335145100212529416639825496894154467969646320793286663043058102181677801045684718494051706377942892933319135793950222400633693099036712245627949352937316497675386379210742225682534725491432783144313160947687830554801154378213257208656660222780444070406639582628247802502931331827851640861972149354880651809375899640114061709897084219612271479058975713131429955913211283649415552386276060245733425928442808706519692932816615059059033648635391994512260510327980274163343146392357332855539003933914579650847733196528104730839575956279356868798055075397095982430486367241302517090274817309309610675656433462565045442378924274007885561333292028297897302121712073480375484889574549096952304915597193749265916303257406101706495157184618995138272561058025185031077398743963328685193567420765459478764268144519470633262314271704043270790188571458283499726960043673409138889743394407213506178910148634622529223229093863641496694053810764675715818189333283429063183170094928246018131937084064237865257015437979515513372040945276491327299883460465371591016467198476746851615854175386884366400867816645856065490878475830511327588422362496514011066617371007191668743117509148716413274477550017375793422193058520301173466966287367967473236068600300075020352482247627261237290951204356128174657096338916307158673085954797707861493456945952179917258693627312580160990713733995445394010774206419396341249673783191661420230149451826030407897794070869517055213874399219799963304704797439866187640605971348643281103970668857437242884535220424496450668336680400161279561793727057392176720499814525291264438402416573492044808692700023332971370611501196395859516929566098575312340315574947951602306150990630990625456384962785252327926760035831635944025648547275105337379405717786875819173624487772204475990761790214269376118075498014112479186177641163752337646127162525129752200221811461164833630062314453961438791493099340849565438413050118959305999500979718930219930892657657572407399634191669031517413031495689184955875842032132239045929992834338855750187893945093657207073096363372632080397024039730428634933847650836543745756927675212920932091747735526077635212378390944313673814211006704664971018927069753985745409848861736084825373842205537676139064362386075182460281909939089261166368916801650016885733613446204302398218767082751055512263183357897248664260517797595735597417273894534233902945226465998091786015656698889029062405094454454406012447695070975704820605958905882603242191386066971098274611593894930074859774563171612321858801122482561025471031198331911754900533895911503631494809123537300970222159067097327463953872167712344377574402538531854156246873784524763488670442099624121403096015267499663888114562810781679948626140833929319749414272599027176089551618617779187742926127506920732775287728130693384240203879634472702074242462011823381015127204059469459674688599610056804322048049760756631548008240446712286961917313211330704169276605711646197992375302208635869578412476417935332214245258572191950607849926684848693076415537440200942242265312240099986019464122251565861613059335132104873860504258164683433304152458934888355052279654539175186869010328038625646433343397183643867818861453741207379315300088209587537758831097775160031917967438519671949231803282546088278031446794700052422465420100549962865910574982273060125206584259066877005814682276398456863419069726961514785408875974576219733315309387990804498095839757851165966819903695118740125560224329563752009902932765743665506356663600726658373021704304277671351016149990003787881074888735695562992996071935223093763305610965036440867242711701618770926310038561330356620896963449092501148679763730470917916841680556055886010556679402306257419277419117520446134532902518302658604551052188382087693411079189090717788305410953944683445169980541983642370952035729174174605519110823283342991936336469468853134354246280514213181005989826604696045213205149562123946839792924918921213034627950615123167618754447527403207309961336887039474866629873129185254606486194348553926855381572203214695881394524083078908667935271766592890993385216636397579792446033875733623950151615800102638561473322699621058535070006349276951772076743299739935460981034877159564689314339287223370599146537310429311425685017772503975184954793074789880620156824404415467416145603730832185857476722763299164846288364577440582704307699325545614242682371417771360402963134955479273469675015240441041617990551795138059907842420263050269314264466537180984455432059096334728758606980107257968311613526732213674693335677830441988641211735171297326829537750634162786761366122008948452074740142085000181345230314678171940190886155112288006132660199301674905430414156161448786197755023115975088669717706726964066496028913042595414812586884682959747094534194188078178845728951942058826872365275124842736337764875893258007250732629589557204470543906140136187162513426428230557188731080431559202570448966685558553318277424826426358307862628819600371783332096919300772991845181864684407323033725366771936262034552948644656516760046616863196832455420111795475261178521313038682987613289797598256489768863633254198930356880466943384363380596884887068976085988832595315868355481748894183701375744848644813471098434214768052359576153080676062006236719967568857022604341309588457314849583108661836998602938009199318163769606427696557210152592658252370359682337206072200615914155197056494080976404111481696476824710562774074019436980591941272753608073037198754376787664151557239576780252056889688781068242173429787291688890368952739387768894315032977676517084086591617942666223452445277010975197898059268206236553937796788466041744882434114918601548120628922365705384928949483293239292722098698286158348427599678978680019434320052187855048581636539145702626908636271757319214919066341807888261388611522254852134279651509412141193864566009326871942548299548724528551127914851261783302427625094014725888571871095699590263077640656251297723541022770203001667811021212964017863589835915943388108488029196902492954041967339599611346338852094134595252818083940317638143830855456183900005222189624476036551185032227455132720570185978502713577162358366127046795747681228287276316561021373647089431386214863322508492043525409387250633572656277272778343814481383411625182769627666831622069824231706355185509608522960373669837845850289485924533239382797016859404771293636435934760953096176994756077791126676783553623470178292355702025420253750705104417548506044074793188702204556456247804351618805342401305172113502798658317999932038101291627321376693940304251175926727756423394865137813482785507419896891726239468086780905994153338279344261826935268180494181976791513542768458574734889819046326092591809129842566552351928548346840027239965380010522379485487657604657129466745535205141227777509863800062445304764089669726074906878917715686017006253501015779407398897462691708934451503529842812091945968817253883478442494645873609020973705754561216474290507854903466349210188510496378531939687206294121416243484379839733097787566703112697878937727666122302078820271909247803421453811396619284615695444450798018632477306030302864548903620644746884240338564387105570351081081658763087833609799957457198677142388645047888508622987798743749812839701918705278576734758994092136343668143855991130816499277198424197937575635294571535435312903336146561658409633537789230138204160512885766086075282870557333260211279821166073685166336401429968993544681589202553205792726934718989261819467818359573216319634221554945830530506680860175511755445466906984191892534511721385828191626327653470541645934441358479752058669596318184601441109495600058039432650608395881431307813842185554110155250471097851547676079676261504878257108300296328487691262426368237395185715243930273567602161377828114465385942519345198417116972582063107684556056486060613771803443678036306885227977796064099087672622542592391278482178887632659346026467569263728309726417043382277173726638416609535052460313909888955039988595999360849186531655995177018747076701601263764995337769679860791573259995579632409426916628087749203608745080270515289327983021379631198283632136177702221323158269726224387777617284577121291652014438057121054087532023334166429322187073792254235419760416536771488645415458615896354409095406973800200655391649867393446939717386859705768510428617553701130753389331043852973050718725087098242181976084743256395103229281259314616116013072859004758026497130094971605451907897414021557484389574187622879289998646788420023711273796275036930448266249467468906676503197011473885545468126927086191183385921817598482492516136641111569030956275760864521850126605290333712727377171908263536351955985327282885920958044297896934726339282067298226446343811689399549504357828873319545930024572922747507267438139671431171897784017741861547810588564002088834003163871560000349903581320606059298730972397462399482329593975948769822774579358945855390270429361885957801544458384100822058013977287852564189265694892389093935448216739884240150331185542831136137101706020586384057388770823926202466654989338584657834718883843016790283410431857387482519992603792490311134225802883051002088061788322780975692495502641949005689776902374562935485825559784604305734336162925845846816865039383413604397995307589003812495042482880770527944784458811647766818993224894449514512981235842715243040974127415051633016326601404055616118757202117431769310482395814150972723678331651907310979094804668537262368523347808278257764098235199210018665453795323617030469884448488767127272662198201546651677225019928232237154172105631558407362964961887830079817633337726331059800010072864981201318717933197718585290662513154138534721550720865648882676847832323527564446008590266131893893087004838575978308526097390823318051733370439181013905311255032689352280183971158950082213582121359182964599893160259031530341178422396793345225881601085006854013900979218593874682033516006348524440477581270548280492455230747720541782064570094688537141799593281791525018320547203986776079288600289176443888103114479040076927933573117203493976846042933624924878671356869215443453468796069787832004841788004657048988891044781448885218909049381583264497883057246466518318868535679291542875444891185783382001421003123674424764276136701619609708554900395476384682877200344057563423253290329666649312933311728192603027436512822682834109884531716758180547421621395441078976519013107518060034638933421048728441240634566086277010607760138131570182887886076202941562467405656539811223028914418482816179323271344680377515890589169125056787572216724289044600793638199190207925696549999107372514919903144396637490379040709754716554860160315216855896400803639784762016021061506515300321299055158874875957042565110362798837526449271711652448897223925518440639319283025382688886585168131353485224020039182612339380064445608429815584636098969176139432713513703217888403308169395817842627366441507958029935059539660740223517493202307922350095878295165179918549170015860078602591191720405863071869622296323806980760530520703395094763231827291271997160938008318304864816721291278808425697199790963163648385295713852446277446869019040115746210498945323527166269619049161849609255558796843945832201512671307472716120470573450107694002274683647432471919300144354592298987495522429063345020024989993014912097589767887207472465628268563379500784260634596146432654770690009438440981435742206856291339362152101832981833464876926727983588144716944023920011398217969334131661399155772983962525893293162904800269706167225221536178702881856143969476250031831901032880622233934870936943165206210767036710108864657277423624918053867465195731465128114658205765922922841186182320998977673625633932035618412521696766479948769830475310155983041308143648429265376969515613939520895745460966479883093718966268003511388330679195592518419705597127599132344727007972188148221894302856331458797710784036708306137879726428453930665543512976705424856844274366834180200421258585959943389820061433344334772771002067066009050179253712852645473969260064132791675765315591997789426395512084341068611097561917794652779911517782876427844557461977872974658645017759032451120871476650227138256960462264330590628828498570384813856912695334496673061248579245280526120674688796083056410877835904110226431006122973998908218946289656477691871378198050800377796230803096094504577810132944308503249886187283815704957450365847654881470663501197035052887480877945014996658825208897663197117818632394359051307416833124688947497808028642302399724379088899949869135513132421713801492416788025016995166504034509409440502469305813925803981282268068029103148999069653589312549795143280302190169374749959521159188884079808384591676733789548180022044519517860426852429689388794625012126977512993889119489250028340718948818550294623211984140812293471636138552904803002763497813175761433883950794490759879926853365185740522948601831516613677083394071581075130554705919592397310210060798538699581092055556326106708623316700882774849477717217966639060671006816834436440539455411503857709916729619513841374683709171904629003247991649332858812110274904451250305018428501196837792011948806741660273599804539440694449696713651756621131469285670810170522610682264952946642704519908963312332526671240181256454967620767659916687946536193149528689247488007114180036759082258624284473360677264448433506838714867652214003233217645872134697286651911073212698092284606737936987397755795273226593882386702338187523894778136396504388040323314113183319622672906109661874345903799413824090794472907356413017805042248113202567040105300661337064806492710729763171548615104276249588791248795073201369133005920931011857623507895082147878582661292339761738649280263902447836374373270446220310421976416501288935004925940695602213757272116972735347204059559418267950971839371606000580961742275862429133020980938339846356985657931917335146604897948168664836458158397880287789303404298928260869986360491462914677691684465853209557018254388720685933360298346205191217259103132119920776127725057472858248701302655833764193612136617142616811412237937066322601699763985518910380101226878540716061016941340216535474475626856688891457887981467538269015596259606646374383913670390104430396027279493808160776449990335973600715648682352179141273032701291468715553080644464401795635549098388337118922746308671187204139672363275424984333274917439036362296480612179946817352353168584819499260537314875533518362597937271931156436419307526227764168325155816824867024551753601665913242059125302229595762114186565515210356008701202217657987613985992260874080932171462720125649562023589606065775488483105055170221846040962701682966566898047834705027060677111062310463247434612902263124009942859695754792503374678521341489627725923223049526109529311397784750577955459918569991532840927045369754432018639477910834247485589089538363381566128148840665547616630323210698066743798781309699240438089055170563387546186718963353300546879988681909360679852885267095809670866398544093352906852596270391755110959352329336138635663851188232216545650445232124227487473644954547439834202931505902414931151395460840083655444623673171144778644053985586274544674652505757194872149004924084992035429303402679255648379479844907059486441572510597855358684817030829518757503714600987877626364790546816958707950408474205120984025459825853759594281390857210950377310303061459734875899558747711698993584741003183785460365499975669372915607809076994195340660923163100745520438007713749259627723959296039735676335876256862310655680241385941442141445174237766851066425764213904522307738657816204981246861953429743992040578208164526587407557227118622402575643258156139803166665788228866411770475203212847685886210892294632504788152456431697299440319420155399422873713077397322580367183948841560182257026440106022081884660082673749558757590430451241819640806905616684822068669864683536945560100695021060474879990031504836964385028034397939702905277938940861255560731030996319611154318493454495495141035853368117566699321620519390677239995195762396425036454420401450979750566156596628104626775477395747093977239169733059560435246663279210895789396224645183576618691990345584958166751698360588096428393895632178093978052930981711772162600482241735080131740147775302503874752912318787712451944202390426668561039144980729545354011058325644629155624782768506317446135870538786869695923890490955170014642520363862200936087729511340217676084326901011086331658739925050755319684508888308064485616794912146520613557568558664643105702840235193573318640173439700350185387990425342101742630051329335731396634421230442542256948661749460518838504889028409281010445838750103456263047878842690541662663576573100956717372724929584136150843208597285765617209221537951715372463432200271310522523757722622289391410826784882987659176913143997368825268583997900768038242781582717948733056364997877081520566785700384471727795956224837779455363711513313401152984622272061024669236726018719078530584500435535515305319120920598000992311208462924105537124262161146558301623985107638304505277569215490632196302248495093292956699124453396492710150835777644969501961501018938688373422647326835821600124959256984049051696467849220238966557482587968599095129803926895673283815906104849102111881744975276322958099569357676691307297223284084661313598856999263749102044875785977351082101120948243494388034413953155414295149063417619436951278256097089945193316919824201556663803793873355582522218964898002191847466221436315304084928604406950833295201678350436272280142706843263242534471272774117336491007276804489635253152592387620907401615639532045792122483057283169334795621792785612642617638519386731039217981247873922691392387020443027450354652932349248492492236429830763395707312335097888606002300779633036449363816985792882857796420296019730169938158915874908846852249318249822680027772376625164336102499466339963131647600759068229325291465130958320476965731254139175547113594055909913526884543033509192387454738841359943184306497147176923026284215558938226209007980004798295646332022704652606180704665979723465517517860000550717920454099857009703698353950784274830228964504007662885467004507285512564001601476566139615239460996776874968377100296130955247572124363369680699661333915795292918866596467880839932909872364716785429244395886253855485864151466141584804271841680310213783385050632293765734654578827197824907035153716164751231315734030697358417000331069714096181839474341034483532605252207228980031383959145745747586374389443256269898309389582068846394403525091651834963636812727287594567838929488552564866891119372909240458285581337721603676214874116879744376731344116255924169426456602765975328800254594318204014127220063296283676493858184195032276802667160018712029485582116680164761975493326638609317492048118895904431559186864556614573988383498005756786031811843652316153840773890537946065559261211870786205299265955267696845347337514659966740536997505821210047435865542081916728472083417576791985616293992124749762050873163775939451152889961670016632676122375710908140907924010540337791648735218224763970587170141377059060704061162862942637738271935623711931163231632394506026632583341059883926910900898229512782000225565493706539481936868717901302674801113727488001349365610466011381346346635254678288589572432307427266384880821859490721932430598279849498567400960103709300284654795311806908672367709229574037833212690846210080423804505895227671015496167246528216143733087256806245004372975423370395543252859815763889454699625733894411562526401848658607956341678663337534051241007699259377841644301879771448559435535200413267566554199585229678336262354617325992298151068279302443181171491995169377831368461935471664381912980662464130464355095384397005304723913950685332748164335429067553806962017999396190631254298880628605246995938992390619183060670948103688730391523914869398241247126565857435400095401462864560190958863509582838210367736439728436191073164072216571881669645658584753725549734994754409865492518103656065756522752416936316649156814043013166339529362623637261655692482645777624470320661440393773510065087190757563678543688354114097054091073731578073255146488242366441371720152967235833513716467947897059051802019132081174160969676073984284121183048063494079012182197926935703701668726289947725467366798891592380570045761228727076028347708962704011900583987664098635759770659588057742944351914963470383488380024917208222041270820391562462311483918079577809705909946377891760165849475160597347970139530111485842293797190108810827683736104912295537688557382888867301777616621451262317857984289510177830443476940757071927729402475694964628323864982128551455319985773837002126390588616739770088271306262398802206841055118555460700800691116215386442982617060937569080236660733766936772376611579168740995766137143751885113930075364870327032505292464702210878211127099645487050540238395322794185566664532866403865642514490785363848684091785570608589596782306073034125282956640364410289065305649986095568586513442424708443026982633946349733179114144803943398155674422705669849584639144441419621238110325007643792924600337462271683354156269783284120810532272284413392207089942147764399002416845716036901766557760001996712731664338845885535023220371535577446304317905871196221993241114945293166897002932781769855935513361421202572712692051059665417148748809440939831261578782882290279176291951976521560247976784526796393059112174911156620057928603509910623264268765798507657279688138432526729914856176736360336122590697098352393016108287962421427279298126791571702749846671705523050201046088022944659902374900941039630282043980283162061475633561930331899895342002804614872549432513473070949806579238120813443531218137567904328234367915913499941185021318656776589999037809607322442093869104561933719501309325374395278804958429410697026885521331366812347113930502962329914866529977254725762007331523998172087496523883206375930819661763111079405361471371243544767619859610795494269786411017648997373915018607521989626046409650905231330448560703172617283704587145053127834880002828822111802864346498478371330537601113046522505504176253812528436746466146969893707860877787445670825689359389505146743900541471882542463215135306884058948630168597748957437530171209083677597516532915512900770998987882146392171139490890669621102060831062574052107411415131463593314960083952624253766865474422580291877218093835180294321752033513035101478687260960472141650696955803803819924549732919062229805492872927150598722992686541431171546414832929467247609280443842651552785763256832537199167009191846033810416519831754793040105405958093731613674032052407213853832211661171388926768545093264665860526969629704785098708458190184072662992757819581906089360317909630271490808705291591727506294610961924511067564994870721083733665801581157215957968445468416913109924662578543911893858229720818667796721918020127991530156139612295871011261094396120579022042086272158819527873436700161731047578560769222212999372716528302593568182880529333088900740780098743546062642564230957231369082473392236831231425350156075427933747400154323293954161892763906649421446551601203840639835058079640893992280566642066913731444192641593127485543109187679752053083598086320838120393312976124213306053801308606150097181439232299610399243210227402486291924154552080702157643591645701953057883667933909255462057321972347460842063732960654230799162407278150162587228225537762162692570226767870727008919891112510942409748823009798377152885796218443178585097678026270290804516184439918277211903827508668916921775029605787893261246202906200867474821782572556946431944704878414036762937850343598824350360455316014273504871364290954487625805705318431497900072733404530133606186600523237575319060569683867215262770254951545726849539298848191861915043228398885550281900718629555910699982767336741798672721593776983278256359167377980772018252411110949134876237096607316533172121020847862578201349820991052958749187103079202666913594979689193079055804392011640678585649917308659081827624904631115237698847581929238688864466976085029407395260816217918438182006953403578119612868078930468172965666566944318904100208024435247796826489819196339833157730781969643702443970088619386796127190138214905395447150291686124387594141113013580613061111454514123031458977556177361287030412771106872216824674544145677623196703070434497532157887309026460923978414502997129317465888826537498847849455509915364580709289056069004277791861517264296264452331316191999842754130623375054043997997070651133352338694090471205374900189873116011706866725883053711439937462051296715871880102063654469210937956426993813626564492615647937715961829665284135934029596681287992569680123653990398937378682769628447330015513408950851293896716696454077975072275158966709667938226448672143599791009813581663589569747926907686544774003224538224852589678688878737925439935077364186001150073092180879164174707961745795823678126384895458241602339623254277691602797602211881096234443344452052169791066292978874451030225089680581373245351841269828545920130652535017609102855841953388543168885413503015350843592749046985803473147542667552628683247497524678013228469501791863017632523683985763855895837177022977980487979436992806690981340156231459086745708880045366308725982883994743596307473832170261723497340797306656571566200093309597582517346935128382530257145517187119511960830410380832604702155668613018158351009364585702699627451859303574679133767472460867966997119718909922356357000634658323069088701854844483853543579513070407977141168182120185571420741114236683876656368272726222582904692981024699395570261374582991980362318271509549957153342640472725865151803913193810200387236885579034589074434871036728840250870905896973154352196896560218693858445569847206474024530935789947813465274435393530545322387580285260521940915654280969498830074301261217815702194918287645918854467728291736212523215214852294181779666986382514129408943530951284220121971839993941863894454305444406881787116309736199305188251961497195599816207190502454848715767364672639583032201143518691627335655502606867038551228891472021487310538448632490028530988013098322513545203742941030517291348235209873820247849691779060738330873468422845447849235560360273824166448136783218583269126383798094965936573938041490671352050354288917058379537914653562408438880671589339140553936481503012330097525122339252131611539068030075191986637099574907645592596047801532012554939301598030004910441533115332576905388122512195945105681969349973895637217512675764661431815050071003134644683693196248469400725688827897785099000662881343363852731110427296381442883993557667722626604384462784151801428290230570505325724928127569281958559366842062007920708063657892629676216005682772541594245481163150452025407577750887812653419309887672094476295882628813782622144979325102729060280127661224744063048203940114871268603302813225983796955282914034591525181054641174757202093896784105495846388054218961122935111247204186904897103221979897374496262862143603356381308762775000957832958194283412844443945218653638954216687424221329487925047711311565485217018969152769219450043474399219788851167108475478921720732262703543683931747927298562157550939123899955448729669728610689667452608598797554665712179885081264911726365825414548098102779845059694512046780365539227892803164982483859975928510889756716067009054321354095078459284375638124866755144291113687399741191309681225762421923949241459624189109015839027937088230623608086165076475044240949882370369603716136427295332132050678040492626083543425628275612718732329669767035019265373221038172488832929937368053351976765876343039307124637580965067749429573520278513546593773973634089219253501931061445305438251920395105099820517721603749652226492246531485028962440874676429477157011462775635938058569851232136360802757768709526188184815826887868750532151864495976418126596455513660446605789666174401812945390474243411123459149720538856123609150864064359162984132369064625101328178222476370909546560713887995081586800032813908253240230669781623867608587854638858582006709804633924712948339646377105987382640275586396864926479216328097747766019385653317228281263026770737258612371919392815623911463713295093929744474700711551704946850231132949322367111161878720811452926245852517892059612358270968208976165456425777880465971488853595693638066706586007386914431788989621496371545163471072001752828377932442856037421988782342797929057423010103525530904763639193517658946903337796600326201405515274641056292091633206941993601632891270466586249900973613178367943973179359820786835353677738996345602891931623831656691915194347589899830169198312995429324190756425057061935096206798432772981487789335386152148201878728303077173990001878581519186911043596881556947667841908045557040016009580063310336075522054142695306972121371535768699385591117332713431345371159210616448281430132424921024869248136596429037028328794230332066897883668629659036973170923746006084361488894846401290577007975475420862868680627909297441636927717510147085166645607137289997274696498291664366652314244492854203069344362156542685664593494035344945743476442772037931273229661589599986593151814578685175608275778090717685411869831683147980205640625794094161856245842352227715328388268419789634047270539734561019551803945497669583532048257876969853199785181083387401396911772309097866537087511013148371457784387032011466476227680431893565703802289918803171012687680795444179889788857263015124263521440198087124763295731178786756451369805089982297902332596163810486273227025328377400687489915160367970860164582673066212511119845544446979770046307532421674929233566364603381320686857108622545713802719125580765882371435261937983722059292148893086534145684043640301924256864885675463490884612026869271227560859782545295104133634198823352851909916429875916676555825209903261675343003198383621401537162014170498588451741492309431575174928944983975528135006918959497315472148720246589616968267923388133750867183684386372776517364897200446960749792594363869295755907176305056606579640031295066832166300288676213729491215668737972422926280862278580918102195313008584879926579448422243342026464111961869870178667014846428855882522612863454063215530981023074397166223172376154222420868663146469265013686670070388917023456711102780631722500090991658419184484815154534334108074341330160317826217196512848637661468733914925416140733798135475093188263310319499407767267685016396767844379987312791985392572094956299209515152508431630753659678530401074824951573959631110368599273590196014064600855429057088126035306399380710613388108541492740131713855098039425370846444797304665397165503673221527552365984615520584060064040111905018912620594662834034963680444174253486007558998778558213455069546721776107553343862241728187568839139173190760978211824716991035218704989770739232072917100332438555145424613694157804861508104889318854508189384446200922589268973379622226926991811471505334549263914703840559611687159615447739183087422378435316436094351460840927531940896283932343915932847565928973758033634974283970229586225631462465727585297709754326821510612693435247953495036403516970892659512433224196843795099048851133676773573959746922839016883542539151565360987818417366160945990931108557537983354663402167703193088797626419003703612127741051095146433184081923358230449734551818259035700697402439707245772552657106387671021346050865733554740467085222368169816306247035997945215019470136680197411374457615027051333518285374749597877430022511444801887808027852026738961248379175626464102968343538531062912483588764828733639915770985100442817931641827005969398327572470477365984982792928403807773645696807927091080205529181385055879161342706822783154648498714918442662081444011319026541854104629429246285992234319102881208697153880072735029881286180351251997427980213039268068568138332423977291499845041632620177794014024442100736381647474648329735008449161103733225182604732874370730792001871318407950291575257800722633431116599863737624822021079547919902282423992189581199641354816564198124000702049640109068020929204214160976731039409218663729942893318193824773505126465306233934727337660829432067269104618199292525033413048666808574580300165865187188283703906969487084455741631678532503449806544489600967028263792246337977860941159467142831015445665307059539084698132659172222723131963925585569673512428596013636928253981560817827937791564545875225364450490052281721018456326535891149879591724321760889589100539564144497785395744664765609766660921402651781272266002001095205909511200951677227095713746557813875607112526451224623276928494137092206649844193431960053725539002192731767425030408470613009113283934416662596668132315346893764614345483766530473184022498823004097157518343432915109170053044871813794398546269099849938573921035734646668575024993942337379541436353821840662068468384214477871963521135872022436328769093214231944852641251701992395619478998792802898866863084283845357368003147061330254592521259365581285364826964467385663442946049044165261520252469720018933448772011115589721290907627410120565411196598887806235693285518922939710896074156767742934053799019919005679746867574718588682441303979040150356062895823997648526413061271063953735098843201404005664260569552116344424799576326809990953140015546907766884432921334757264894492357105549439870933531918097509155722398164929086281602609407266517841639860439355104681441091472085975849054437898347445190168963153491656229815231791503970319978670302172851814926790724893706361698719558932827666659365531652073573270980133106581007154494430756738333326215933159058263568013248669365441496837398203474049821443848010589586644687373665300230011422094795449770258145013526908296243547039080273567499750796199585263846455172533404084480682160439349921264345866060876325653421970889794161146953131853466529694517038476429929381167411136037558358210940304790866883826965886082383422336108597578806635851633879769859704895720674930947855682290851777836780195705663009224721134741543262387416802490244831032524607152379372872064573601116414844634068630308318575328641568626658662144773918088117355890031113212990738409143795212394601169119579809589025338931105994658785618471333817063568526353618858237215682265624183346200801240122022095181929705712559814588078359816307743583338738848965003305595710835299041419316872728012350106432338603980465488008064889559717976236448510560411049417657902513376152023411916670545693717726021968602836547238819528158327596554790208327614200545192343536366943330151019553795873704148439421290122248931088806348691941999570202016356449087543128725943439188799103082457372687524876022348953154700687854926987746394017542763243869283170311655653065692178361081590143017957074917134442769303269364428773038932822456103338711582230888835157207205543986972673934862936713302655356512146480580265593501733975694018830379370479198696888571053560061850032423894945948729711303608108528506198632097418276796670407884922193066818941406823183040068039476027488744571638993934813644169372616164833391873169741268881014226245935397966472494019895066110319109923187203799078146128550145250323872842050962393339165647208573283277910509982345236244727423161115665575098797058898395158217831975767127096728796109816236079234664214205253615965067045289914869343195125566949789038962146217011429570849511323885420783932701523020066335128830464164419505295766768804325544547461864775941686974282693589704203987086042059654225349900528571443422514441762868567316694617322434885714764681038072501202350917229145724056813623609615929867987834877440203762440270596077814534309491114442160665359684745946080148345184098130430995077834476955674747771001519826659520330455096352725704350829888711068891690255197527085327216191175024784848985183148668537173341893797447204034472576732493782513966094167309037720816568636756974149254858209468506221815022835416136673951032117545497933259062821576238514703419251170101503039886169419883338740045416580159351715945927230602916912895897741131452519964967158388735659403106347520595635011536935090909564619970999392552327209644194361163220004979531700503979110910104216738773054326184761282992889344260421387987984218473745938820915887680759882069003758336298266687391716289281772213155222954407507112256446108702623734608471425477510742413000453666663322191511846929710036555047199371458111613696564614756379534371823894825984564829252818871639131047532106754941783716802420707486099366484039860772024041379556847922927484242731283853511577599452221181096618382861115118939260742308832789874006771902270838522499061935744261977423970483172465457823644091241680694596659942570852195359256471309103456218303305247082220447151332446590449776031279717685899311009617544380694870114026607101064142725936131780931588154285024635074845420333627660431375733272094167935890381858245368976245559860107833385908660442249521284136301425640856592047869639321031516690004430999979743394664190995345480242631321388810834339373295950820970398039845208477883675530879948803340443353471871569722445504093009795411894503624844533924073411962980188066975570692531999802560600072775939573297036449223535639635478292326446832352544390354853104093322810149330396694793504866569302733222300613046172851518494896271482179194714966262514014241558604166657165334590356649614955841725264668102426094755842292631396873939178877272922273982079271532462449053008283259795312457467841458189704881571077783119687637102112527253830662139411272431323132549811978825767506136152246552840223243909279300669744029534965406957921564295203435728267432390918924801417699428804234395297999780472635065485113489756721334902363475240281877450190100517697151715991292943041069397660649674045579573261555086943417549164737790345659403555157018381158152268668292982263124170363045520293677791095877304622811051727010162181609757690670061645615777325961748280118270114183699417672989798087606154511345610857108623965647901563768885312760885109542584984577441750449053591156274894939819555978817108015510622471974217286609759047432157956155397717520528867413953460821836457195873955783067334757375554146599902843958861299305854778669934491020138603266296685613278829656002263014942717975000079836858961120311346003328232926744239695491628923025421782503204741690679715479449638274280110960111226378720435357254676020896562392983568866860085739713518629011861439787115293527183963373437315757026620544115464753964567059065133470766428049122815191566073218817264169181953533579584444190276225389361540836163130202168861378828557620947733187185851631234632287337827097052619521708772202236836014690297527282737753173151600132309358498315080824105570043549195080099692555728378083071379292724634025340346244100916997804136211323898738232737911128897973395423584995682769694519394452401944771552114294784432796970366986456267406648058374657938179467924201737827384120934584495120383385639553555269510406934298381354825182863717128706842803224614871985970232974603064087917626989342847599163688585861089207203907977553968629705505052649332128475109129547540047368250053072321671089754490781957060758876065727112912409611293587217382306927165704976786063592322324960070108275270033466652356090522906661422796966520491207480406450720441592661342998181717838786119367085104959451033148887924656388208622807752976350869163188532253323608478380524101817924958026965024523183252745625207295229652757533673281525815615736418801069995191501668849895176903836859430960927678340545933527094738254156603880473762165956612286982708608868380009138425928978772787794417953600628035370124483061363980702636059564786313411700671435738437906712827566251786882388083153273093477495868978758149521500490708263989301856187860060026136947527365668303614165013185672004667321366970851650699877223097760135391044700832303757982937893039240526782813606873049152354448653483263604280133732709518023928844946284972749096295855801980129932427759603267193838619814485271212177374394523424701917501515409710772578284352887705666358418668307760854692962117770762858999515457750957965992444178870264248681472112559360755974115273913557677386762509230891625872209758135430969652850084423220582654213546248650156216916938991874643831309693030977305290989182759477409083393391632165881332964577888058025294121222063009818401015438984333638082427550699574613663532009595849714879713512184467564485493493323486799784920365003225930678601288752356019561006144187292645966692538917315064994377489634049545737754404287194888721536703744772461518457963040652678201416991357217629613207055559463139526532158063610699411020567563949134477814608711004071491608037027423476090514091829145648911010599169960337806154480549182901962332922273555961791719786591690268982825573124416955131636246952007743316099609240386579343443772318614161091634667515413709817430718395881328443959048353449731671489023856704908909794977809497876357801555985252555215059781704674901023692449330494044022954771622282599284222982037468184486112819966785848122171683159730527515575077958436637512976237693556619941499297502704034628856840844450588947186033187356850409411814655499799687369677872059706565694203845131127824761411805919226175533668210101033045857551033264261198403022727983491028014900502114976612463124286769029297605417837026548973612307763468582838676471508515180019530437891638465715713648873575535138047031606095492396137428369629722080650889764985007732560187706825988846478044209038842335058877828372396921650312566640910520312480346232097020751200120443162633947212154027763799275767052573876747322032087046555420205363354018046381800992760159830740440729015497229502272810590457376385229970148921880792224557083302107891216914836664792466805197082289664609711251728098474223815485861844266825970164319262944629861069739158714761227271430250953524019916925151321062119828989020155074716721726426760022236462277101052568874292667940274456921469376849323996664575304824335737668520783556395888021394767935547224065439728479519653604747026131905795724885304561926337015706775365888646907916957597816034503973414322896883194804442346935185461108330755903874067467739685842811643189372497142987145907494963248076627096926798658836869730522133062036445942340858275381154543015576197100152148015428162620784397735405158262813185541398549469354356836712275969393680153766502179102331648265305943213444604659318423792019089593580154262870685906544315585106498263569286367186141327942397624953090539993676763831504548712952588821473305283490305119088692461695776652455101659840377936299438976108048038728698456792260388755527022748422573238717566047915739082631936752741945327313560420458453575447288119621479871390166027356367887301738718724888398855638548015986417130691370461490007386666477478385211086487874263678339299981302647850916020738948101876919555606116965287422327368722413894326874419808295796377912503112507380848829924480363669601877454520988406151967479039030920175376151591561801994596102680582834677778197389343784433458752244751399134607777658936886881490667972479652786361107426201399610649663464680269690974362580308758216528995626420502757115737583599132274894777319398537953859656444573679418871198705352232612224726228119199787959892017093922331425303380132576181956533737473480309146889532315587134023487921903006211342409370578125552115709644451839412755080070852426283710720427520601150862043540803038494364208149819403122478780931200120794063725086329051180508332902901237669388373865148345109597794117928124431168785122677660001613249534216784214782160288894923110782155401142868824351808132070063168178871983065954167946927563149075562680043798406139596266544926672152772885324881472316140070471810131709601279203239262824485836497146091953666489034786413468899952963782577748851306596959976822965760637037625576287097530999216854095203846114863365864210473304219541803330708015287541293961133964658277158257103283356821676182564551041094416921410092348811589619345278123651674027584744526232359422871196145184215332180165098986152759904399838551520874898818711244456880677419923960850194710274509671364562360014787084409068172641277166105393009175205746037215457935412758252328085247985191625950985982678724271810002026090701012564374419361732488555029627563696580141736823057252983795927842180495480589636782232122075013630052184413492996265704707668544014132678145714275085854404582804188661499164116973221499629237241514670780606775482264497553903599325071473988801306006745395918058217038295683339804681184951891510136849026984304799543538903308285638597562682340698517946229298589877666736970721309110713693421230440330965688376620984908382698623423134763237292791188854348147612275203675999744677657983776902178318754683953276113228957498151367456171756806444322753999315300666026012953358319084767985574355739308704958967666794000008938172002701359077848806600257933551712453442324394934188303068528648287733356585374969965800868022691872048678790698081408771274760990613406721873843439994058667321299300633216846915304885945265221361613825997847373765210437565562099656333344205031134754105017717536756566441614364183895584091910012323612884374357779107561799746993767024881671730032948435576838722025125256934217596127246518517048367997758564420478010951755048052965298745690166329374422247765523032896398449477981242804940532491463299140814819221809481637411443989345753911818569115164667344688125904665738205969093601002335320267932056042252228545156487726046463115452015279793320311166654202741085918136240373551716178526402863265583609083816375207174134356613004629657969612812044727365695456214098322652106385648271805206266930111694112737766529812657978242585526700340305773614100616305648536312564940460234258686027124517571992867973513491407896191507841391344022470067846858906458637128564992222854908078767466184575375822266020456724265455176016385161162052033298725060860760263151715497205297922151378623667755713981879920551969120899457265221108046358304007995688026766680206966608922884716059520404093706421687100510911193170721817616273415360628154659814645175621860695552909018901838603513633476443180997219990794625502971439146020772693922212432837888961426464337887153853177886440668039181043577409734843233765072569679997960500917362396900050253224095319747119546842271378592232603290932221412477542245968105577776913880025433909716755469839638498485596017828291066389815269475099668106985770467279979313276680198856639455511805463500844123650740176796971510322684760198572833165182149774419934777024135269826581461328653082171491847757987932810229707170025373094607282793708125776358370317820444083420773338221068757573034553208973038220261532686214129867090074305569658735078859320763277307625928515625198843897978000068401516111711148759725258569676783716349368407615859159001412221355246577076216230166181991661229352223766565497659622669468861588178993394112614820261975670765257841902121727229110850142165924539043473336610941967335869703101359227541688160183875323069254530211830534848820777410069453609311295149134160865421545578236804451154926141293826657130810314733580421076582576570972930868540747466841081711609738144837583363327053675881413271697341296164341448965751335356148510058877934863363468054616787607997140933626456714868213333842911656715201969956786423145176566327050086357041819370631446396125199370977380803160076579632280182314241193111127879411623677353866221038000274388397891712145149696714932929739302822641454610315817721597247881586313507559547060323369034929194910627093045078268891402960126738400660292310594791998293193123981136991318564043790096313808220678530775280807009804397777645616788531545408004029808262116666274527813244262670208035680304491879171665858590527794084610034150611252796168527319888908525149589016336830950595495906565454172752527291522219620408171559396533448472940023894681283171615191939097137267085630581319879691170404108182238734535832215639321504188096066723616638020570240759425804013174466076365160618183143392845346349876507004424970456485626709801057136516819074403587563446989899904577844434366292728907246713041521053457502021836904897987086064027863597501159308919678635594832712663615061832756313239118385606797122911838889553359853467703349051131240383264756647724935005044718654780980506314258749601128558055051138304674933602967457157051989831374227089654817676187835638052942491646087937078963228140874463535618720286634344856729633293569506351548256658784858192968138971599334225282583353817529308704573981768271586908953393068624205404204518019352634947249404992961723335503541169296841506625095390564768185957347259249417682714662205316713112889758473128853269294250503330205572204871857400050912116014552690988421218787399116380856237391076784664519494458630724133665335478568744272537338090414700491840186608010356046274137018965449190456766681248054133958276334980742858952453864913797262201062907796220647694637456545764910044258763781849695252413715947652659437635381969979715978315735659189084380046187283483494699505535967451269278345037121177294358503836333654116633101002305452552879610726782929027445932569615004754045841649587235354639512287678373746051722236015324851956407411737180883778217917425608369329948927976020739058558000343123385122446555901653475234660431178770387257439465499493147994681371160539109814072887076329989207509175728295963318372263200366405018376610262465819571418472191317848822957966522274306516420017170032653491620516439892229749217812443140841916872656494014558947933981035135988634710565638782247899340997049212393710655411720976380826324489411730042155958723181154895211148118231907691432681418097670819043844085391702812654247794392016447389375485889202427897957904381674766354916194499355710069011826248635550215362757911200578613181659704993703947721835002675897648347377568556287031577846069669021901637587300370251175676431617171076923925584720568568688796214512922295412040429254763956758283984292097831931433342691896968136140222914403193268549550483387369628072214669570873110900501894947871269349170662661662093636657319992849525127799798270655766270543463339918936746153837654492057435255038575085057261966129555902798189976932525707033214424639395688625636494927936319892218092382775435863074205468215645231012855333093249165567678587286956477271176778709172955188379107799749782035217659503790163941582322712491581968504137713593630033157928809563540488627981704934780114664899724269406660547845784255980412614611603264745634457689033852033608795918829050553504772952585834378777672695285972666477008288600189919150669095256300021166073729170056396843839160577360947678435902001943783590143249990824206499756696532269718081209873079479187092110955708252872413546072492862310944360825691097568907147332553249392158219563567256196183875886527135842275501991955552871195649963089411352513094172563623967081302643860295485350998025780505839197338572234876470646905036968526652013685279316590348145841881609921745244968146066753455614433606780455302699183695494488964193005183170417230677401162474062411762405540456953664269457298068766738511751191755393930943879685589546346332293506510863006305849162039649811988462351354437205673017857062052198018347408890712722354009043694666600155365089647676780983469337236549943653715673427382899790500203742880697449551071160103421723980061559223911912663442817951394442685676007718238667701587425196956840821825214130596500319786600480029628468199773247761770143099503646388080370514732074525060930832543153297748383979773764962274126936731567129727995426240776278432504962444584847608450313197640566768174466935785708105552114160215292949210082271496939728818819213910673485799575589913195106240008411507072006263238037813714357477110574219509713063916840371401528584296666043787324743935844612737180305317505569463885541068483059599720950574896930963407575503432174492701987422682433960585622128892403905907263119968259261043882993612581484346594437593141104121931838312246135941938364984660070371068245976604727443618949683437820148426888530175165983355863434513056033923777025370449854370718769886553437390175006846062621450689711825605129069606751295881055101765930528914187262935374647213149084854247746995211739516311891716369381913604519624578274908822782008693746140327009260790547937966248619066485788302281678951144964469902552260561775676999360873081345721115995531692831155547685830469946775300848577721164685208093433018925624331299619814630194947074759883146463730950988212557309144141531570087798426740828568310834875565331564504948629467017165317568214418032151882429308692491111727520887292211628451120758815866501747741227792778596148123268301655980496935201105973778081319585816922756349055906980845438958841478823307677008735032674753246949735455886531577875266582680960628381916237385938136350658230877906525568067479024436230036926983734496575242050325617814179911431274305430049597106621773743623147179807350262264976164114534260629253482767307986813006008657337384812611787401829416745995483334423505861594471608492191186308227759063422162776812636745654466968463154991629990804604625658486427130029749840936215782979081916965680605144091870244863934804659993722623081718264460528514381488718962065986575081205532986048023920552988204463586328280095203933787126794851413190713957874321894832308215748749595112102780431371394395400570190948881498007617934841796397551160101114841061860490005822254540802585649140727951279215112922567658291516475163629984628898916350230942352511395432930339921756841461752727687360284025695828216418689195980672550687038140618737863270128976367572321127559998365081429583543997506751720084670958297392766652288017607380646442084239498559680577232180453724576766441910722715432004102877497229620940750739141137970251662549569134791813325873054725771812385320153596483246642290497253002849177232948669018173166332177229222530510290404746090617873193621882728533500867327889640125606269443404407486263977995389041067936458631063410976548090871993110452327112354514602296078129718540792398751539686854839461956289950443346910280881102657485590907515014197414751787240628736070365282190625595647789814099581397788055751293379894626612199394982335227073865082472836560878986922936516787396281419895446777904312869988111300637788277441162805244438606161207131997219997000408605850277712443707253504329299193582653557501666221058988246810804488811241151660217826138882438383621713199316841320142696144958942166812899485147590301887849242136715629144040684841572645531010732336526561737701418112196152890700697692136410039632381545796603224647288304040930018389353831885739393137977985657174643249614329217754019296555871199867221670671201405650188884471205296924667803084289976921645782046903305921133966375397798613261265824991486476318203948532785435859354439375552033641011083084843937536154257882298406692423995065192231517254554104492466718889975619426738757550472021666864762328034969323972719347967050322355967605165234742034707538794990253437299333601581340492154657024427974816425473242438346302894077329578393653020321696261187142367951745254647815803022746215592895710388796481169083633063959558212817731440038134295559346429297079518995929829290904395867412976792115135180370279328346750376598573361973590275929153830222086263716080489087452274615113661173583156740965349083433301962574070012844628679577649917983757963948398411750203274501631314073063506673082605291247739104461834321380492392582785852717594954581488750258031225070809487074191348092344333960096433927707137760334311813448804617543037737832393063925620746128650374756075854554093831145686659092387228607389645692191527743356334242322055623644572272979221737231728836863090025448528550870083549261675595497687800236218149224681114277160381223228620513189580999560519210152083621119182715283240270370956107600845536627109771576224517747507772805208569655045159700863201890166880175242793997528366435673682236227654700138507434278207149536579417552847091237088007295454710355930831378298205238148598227274186300301592333836900875628199008321955724337323101924183295909587228608633369567711564841001145309249375359498310233351449091052933049407401479561031388840586704340695343085441210103756549638130704053000018260623972821752880121577135183509171743032151716910060214109549444378501432130970982197055649307522639485720600795492739221242137846961912301847456272325984012470586824396342421609311613248921966173433454116104937703803138179341169318712230574409376833477254258177937116640286949328333542545268644669556807555126102099677596014719707553953101003798327815556582372122550290550085045481198969030918987361623322890127162281414893085816960854224322973889801633379323602496327988351673398621302899614719329932727319134688103538161778373638833617564083670263987097721377974449373023595317149558518027299415227831948474794148554790300290439043412618811371897703100183606187747599219246131124874816729120802396683967840163450773170166253323751418558135436797847733826182728451162947750956637358895097211864690292270106611671306962308539659590019517522250926436440054085866505194865808427816585834855217412662774328708278855278087096892334160937340054686445173444091801959713095313785905047741140666279717775775685165720550484407323862533033675978032881842090572693265745541705559338408664517664653692832537897927488441523685868458957966255021493131823527670369232819898009842986421856870360326371811084679244663544535165837138027525335760304379869113301386231162567072721970503982462076527142425107539885233105475366919434574411756650257944415600779457577148785400467001522889651140022864507649103108682180034204593565817093888526280918714361909322771896246792168874123919400783361151292355634470305557073327518081617498327785165888197790611688943985616230442715567067162838480382849882827087052324652755074447548002601405023847458315343986272215090054299503068220351600530533674229747728241986089557705132861891695494424241412035763079704071163104181110622114493260469907216336042988789985970165240759701215487079521003527417503835415349939019593912452973081301590016123655084863837278509810553536004254322783409764833566325482501747478053520165085719476258102411902611295852187695389697644028642818895350212644037277424941329033522226208605971803740552905945048032957757159160463058452280085101125016050958664380512762330567036298423616479933783984728801017313454331961710127100938565247468341871428303507518213026213307309557428387988770861446628312200043684163030941695243896498516507787009679380208253811424903243774283951966214242406973490215659742208097026517680032364132322077020778180932905463281991072329243388788335021574292455282525849434904706537246498095047919412879326182727389655614112863193427627846089631835102611325218478005009904869937386489817067174848098813278852136214983169230775881013683074997322122540457452269014954886548875345816079219726181571301273815970831801962405040753278747012919571881193352126454791317124228288053240830046594023411147895383299791410282998957678617749635885387965249957742604990388459117268325819827360592474033416762685970727640668562184847774808886210946205206038232405442172271766953810030062558977113871358121941830426532561868456115655941922428008229031645732595044779902571404951802424226521375444871126952361888477501940657028342794857452953576190650952776281511454258185454893853971987970526492903685823285963554500318078627451432915403355572416648347925729692579863769147344673260035891454963521926064668727184391781384319500681040374653206882736405288391295774356896192642524826208296770886218947311594513380479559546454189015473240115306462906203878231793830481739786759480706129549607703495907909618118022588938728264475992842001610581177865199847190473108229681030985088675365457557383318759742506873639188150460471625717037154199240092556353149396149534084599343466304421316386154306825825460378431882753927859382249585339692728119958562217643188712249480083512106151927241901240376102067269160965171480509444145345423246235579785233667417028927571613385137183041760413602886625798461767607866618378013009853675730747981022024237354771546892233986611446580454747567779465266341719991879232682068765011923590739845430551931757289708543623277014201020644266342175175163063070595395143873098942776459992648402869243213055576798542928226867625875989236881007156791530165076194394895323802919541937056256398960662840633886313354439451734322791826300102018680323989016433483973089122069802064608213354542070220029365676254937187111571660173797856247360709999502332004427246927964471569622518914950572875351166619429865531409277926274904475123546519499521700251674612828117589009939912736427497132866707765340467136579669544242713705748170781799338204232232304841870007928836457722139248601126850290914561593768753871462907716947938550953479083937983997039193261600165345482830719524421456029919011001338254985523795048435968521904275609557656689027366555652093734880446105183378052462123516244008526112097594300297297551539295087528499590656268070628544304905975855174844512401950893422652278390415912476132049315372222990127283581460022540984032355686931012027355524170149623199441018431616018212453862426559815727999352767855892523458729734823663770738336296823030665439171742400503385920903370313108918134267696412660653264848034831393383590677218884120783550355752384072426416004563329781043396139146813341049082955779129264166796453892704462286761431700253212233425195053963999096709810314427385557388021017397027223338881161193917698702124698813346418401065435084735760271354869826780753107105613607700975787392543680647349337028533482690781005187380661228463082442513229850085126898045980360272543626869975979609794428116710785760469713610916784435378776799605641352261345048680871503571186896445690292484291872062947472471631468524603277861728564058939720339725229982568091455544142358668537749888180134588741684038803121181944159740307959732904773236094649214631928914811944052981586082170643335548566187309239712154291754482968714685000768628985085392552687710145237471088770663947063803403665032963928189725780410357315117711254305082380993172660477097851403241850489994484062745539911653887467764103205463235078980072217545842317401527011940378819205482084003602445744982895754563031774740962044556342160179306231446893074497611761430198041025594624220525989950609013243668496787800879734207976831112746127991064237403592748645137517849360364825112193922857561735181080686223276816795561246407876402380426601476173454141543195124673581929239092704414534784206824948553675775405107966693180819115844464023321564501594443420083103227194137505651324314947492501591397733342734945239569523147134422429254226729662926874478229656306103606696364428701102777194704489701720554210646298739749528145067877380427321857995377153215096855267441837497440515799554926354051480206069502867662088874089071962734508722417803007029026171871921235507789281368615383122617201646593699759868738081109384993952494855598749609713410916158907036334332735692336296413895216639870016496354054221847286704561729975768070739366795054021043272743489542006583055793263553890689168517057148488765444165986325453945010458755692772288922304819999889193760767330834462935060383428067058167162284104664798052421110247211616343212358337734136078285105983678027923774802493371191652684019199803320863878176739339308848617840671006642226706354276532907117993843196563654782170793449937476802499369056962588886562153745278427969606506222868988016479873546616115150586260723564409862650031555222859391119126129661249208615754225680701207388221113065149691637538976514589180052607643846912214072889127398647127447147022035303367547263569523082464859550947562642239837106464818387387850274092436830066463447336968757110480745579563633705043181614668610999694268062165171191713920005245863720091573936994174629494213681053707826061262668857099818289778143093331017780621109812800266400859097517507394686313434484268675793996335114410291268257865636690786376237657871096665049708768264613134229147563593152824877955246642476451710923740387749214946298279704763065238292805850630985870733541950232853167103600750905843594609023087197966710235237208675848132064049054592553121592902453303929040393831743703878982477875874790971237436943425584954349878758809355799130816524669769808263638943535853276697742554590057249263343252703306661035835815127559117615878972235725229676706946959134278146481075916266571505519999250508948131771220541431004502329420987155060304043124164762811114859803684799206109838983880471036626394744915285328199895959089274873346115557594704116003428483805592326809059162986105376496467652488277691314128446438469844788330588155344077623408084685972127440205252125283379218450165935034460787899605098606260652343570910710620646789863921359585599365590864022341774910312311370161493533872434846477976254616488907335108987308976215765405540918974584633733698914181172881126620075718624743483545083071079108279710265374278344188168246248498466132181216871238389663887899971920094322137523342999234328539808586395269355335823542283573087456895804649635618254668106188055168680008831577690244406743945305361869030903578118250390392652848098365255016103499313523914551201870685395614354308441693596927843928286126233291269290035516951964212325763009658279639872735705947349950524491389800038067224351838113997261428356717558193176296379254804948285452990209572507477525000740542436976378714111259194340018737346555577599505740661456448482514688376172608260514839413495092824183684050330459542886725709297419280859836789570433885294472338228725298690025393440080266387846255964786157881252422921889432054458836896774461933238574860259584543982653816595958634073312049842989662759352064277252617382515569783671106568759374363038909783842608976011406698169645504229923534458854665874317792384732388490262708450258965386857755668999552425351580268957917604126542941549905488493429653452480073201472405726040150513164728515689173580391111497013939166520208784112983128778390880066839617346574095131042064857822134641541242366230834090799967430390362745771535022783638778470023036868401696169094757783786959053412514510897930458106230547102671699371316690011440820508831808669370305669974901981988645113081696907131337824805064702897534524379888238180195953331528115560981597761241291591959629282113527124363359135342496811076767816338137922947034010158874388938655632493066898369060181616499547910971927694623795207189509675400267091367654276875702685231046681718903007176465037510492681769257164225953416362854157274381625526140324467293552491439784675303725804205943451734258346883019159684515414745177273522701586553120764621565630290603914360112692321135295449730823463237905445012594490381904033164694618083261105708387278426064631652925962942567024175439632512357984363479968741961409652145849790540345477111165018546970852641462210586573605248924910728430555329492061471474775060934882574795650135550223832475511732812469794212450132960191511814826638770626647143015422771464725499536400991826126907948465434599571606232323380632033634548002579531575783697167787917520167550263065425648606704671646005995150432690865833751418656065576720050966508369750297095925037513803464456969489225320596046096722367348713704569737347239541927608412054035353658542374034473029239636273491363911328062564934275631289781723601588912932190398718576585399034978652601798325774968466830671655508824933911860341278581613522465693080197694717117441854165862370880201755882126056300608014516628157932659999544538257440351962486224918654683279657162636661454075178491031880922669602965630991503750085225095496836927856971904015276082975606891901803287085636147956359744663737685964845255283288359627564645524575502757630605578373341846364497590987049255147131371424221564441861808255039186766176485703951305919091011271159959097481702848656693967798454319225747009834872856740624461285359606479549633440961235781533672269011318251089037706665210418970066481564022423192265307622819244405898760268827444975587624185476523422227383298389948184873970179162186726052305243826282437162638826717287515051435252704231132213326435875229750546633970972931247476218196717810513605227153408413559146422305747684646454873162286090557410156528640094554130397771103064683119691059393614292741642996769663100881535785566875310068099913551373854125089111167985609645105690569273837979273946748825013584859571143065255024011530105232223005086479055714224213138894042019331135052666112246800434265200430348080628092494444170924186109944283757327878867208052361769040897107325005569399144166653787857555245396553347415702796949657094875942850689895687999005797320550235442336511745408490131902535440154939634277817230426519503104212774914948132025122596347199205519159195551814862637773113096067781622122654871972083083934940093694681017570385544113244627253802375874444045824624724969655728794951785146231975200880590104152986089548295097848697013064790211597339131409113189944249245786854202822307066055000595749838386000612453296928893179432094217350787355872224479622304773671754176425472865521475728556424254545232190513480985876329068832358341190071269987155796868483406149915022496990402204744429217143798445711160261912072983727002983927193848038177162577619946084577379769674644011427441354598685164951878859485196817911485926199398778124989091879780580463993758354155627454185244033614255975238618529464429417420805016515729305816148013077283557348633155172027941914743382636061355037397156684941461365907997990812045783348919653201659485131293669063881304589241262743454834415486582881069048987389915093858242969851821177168899846890070334275437252137762033917754222840043454932798309938405604378548888093421023468745747602921062468767253254122393708252380618619993262185396749909129650155773920871720411838391200195308564609163416897945043246745674274955785172902937661505751082168156523951750798406940399119328614093336905668175250741483531137257928373736291373095469906123502107899769730577386972210131033095220966577337943877110437791750590147135276733911518756510045838185455475640966307670351707584927435468570879873216491608209171376588505058046468202645351893635081179232829158408729433313625241989814756537553220172532533947593226527813857110519780518961099958321401189799616705298035178383998921435504089166989689382246499323458686733334503130541115314378077920738702017003935868339684965294533232456977906290215948143266976012138481157067728053299024201208858811610004350494124652295458636288970953199907259087252943807058510052117868074391048167586678283548692334163343302526247706457846144971099740183491458349374063136752040626464827151950560029162319249100351304708792524800086573042869710631410313527612075965911819017421051274227638479007930755361718034101312068699415395872219356849938942346723405037301632738213292607893522414530074151360185324293348930169922627285593577601223809760785019652809705372985407539939863860747360162767291095958838142160943036825888142261620834644375556491471688302236860764121001674458965612153480856085541621281547950608184451202796041696938100606451622812215484049706229533627759995766790786385320981084447717184001943850811826844180702372716194101724044217150420143092097494421939571037179234375258564609106361241868684583301200831560675763515090308779227406961854382634612155725846448173961339495031733954921190865297227931283960421568597030218912932362638807446576193035930770081121161829592523228924526708976516817437896033039949479996584197893966836417216720173495694766227000589779679377675729035422565684384339304535009572080273140826310133502910666552973657296697690577499634336643001234465417911548751952180361402697931590999907281436174580334592254052728983067206439363841253101170354992650803020930514347811658886522386071743110062795296298213098977289803852774986387227850622950445112083010361437074561122216715283241202919611117541437518058203101833127559420610253160743450242253889562617600819383590830354494718997612639454791071523672615052507482591010896256514938808118930323906905392549696689345402490682579655539618517534688702025376305702738559397198123414074736216818317796414070848523482050806798903773316243870920801861753437835745551233800894958749838687193707775882966150362567732657620655989963819255882637137595730837949730147570697948288288076022088083291942899010978420219559619352651830856393888103815762947155221787065847404805915674152603033659940813733976507184080483177108526668423886653090667686634503285400325691235031594405070906771510575235135658220074638286499525124199650663875797489413230009236090782814352565335534128409735351823844162317222486905695248472181613022675341267147661376102793518127632809034099218673548048076540328593201538277667134021831622623171617175841502590451707961934234331353457895308204354742415725603134625014954825956492692690442012464932812772672691366862806012646226748397915695451514348398730519128560216415924696630078928544336770464429474342167837524169027964055279685256208489134895473294931120644998551933606071173818158433081322312058637846428919474800166167071082389780890625628016138139545781348340956506127572438173476461409809598498120663241761558131280157052108893818395225554864265153397851401777038953442199772899889716838179405687423439878530948293158919854278462735810537487644506479723282277272516997575718325197337254470911175271863199078120693440878594348715363935588932434184186932402060905664045308286890653355967105445975607955958917412366568380454688199096084499348635229231175041533542818174641379072999768702905125139193978243153044663835832007980111462523166447697629809299478340564506260967843544188506857228217286777729498935350089122311684687225902169379561205835519118291995835816439693400373423454845870247226665135897480183743940467317450862271336553889812398589069639567007099241044669970793742162251283341576891656464882396394906202897933114728205536560363186923929931257126059722541335219004133426467418149650672549668191371755129046902939298818196464984994408029501649787335140576813477882379634251529736082785314014964837751053323300466340965311950623786494360176291406685405434896251576655891143582082901418133100764048994526348603692999441131020130583642261478219944155186222162841550828812794979687613945798453096891839458534853214318431849845486427913235054496757336628429207319937589588435347577140228707563182485732573032845675649706752583879570768550724572878181165228550200658872066702027173402603592060461428579938295508990774524139039319156832151462259336048033189295922415720246887133688471537968412175509490828963609528302867919279419350570898911172796297034321339784426133668666742329588579099515171394648149638261535470695799891000501396077443443946534513180873304867730031020340894190380405344241288710938268896811993526222225212873773686742923680116730524031910977176263440456741297596654236713489697634244526152972009333485611089285127110444793322102424734299558516689567894682889993193280651500844870522416298184677987357664108438352521897334588798573306356727653755463145931410434973179428209672557134419576688785206561730091873448510964889394837916891026223533460772850131093735411436148650158599965944208980523214527304575881822855138648414127753767926323435171145784812952819884521232616366885627579087077959560908371895493325433180572526527784119041779599240704303836435810424221431827877607652932820927870150737066791698246142793140399147626314105543492089945954702422736218766055565282117883356765158937877606106663624050548172970543485373700802636665320405098126006011835939076178294817355787440688008647763319086305606105540302547213211682296161098644825007784769324312635526506827230368486963294163277208905111520114739060959388189133038195537697000575006216374271685877406403734991023688517134689182600345801784054026090303653097301625844729308763922688327346502881970646439425704887791757302573867640011571440678220492677471316159899634886903858959687096460252552229413152370782141937705957432846810212257066063520329487499728355362230359222687865390105817446870271088091597709006550233897501937476354470109185092639670485363253156490512243477517398349223234310722993455035771037524058963409094113614573743363850146356334248569972462152085955529764512353607167422711060942790135417135701658709486250176125108758561142220261165578298096348797487767206729024864629310699298247231853224465094010496035126205959514682996019781284669052216549135017411464622529492810051094959319593891457204359552340812436809664748484493828545391355893334009247727396118173785721496723674906705209043213884850637165276219946010646880947546124517317761839791624313535151833050058456615994937110501596922005550341783006934343399563026212426230826733115030207702182303587997599745055144754065128268557960608144225036024462320746874554556479911364084145389054759747085881305395194669336983023160169971544049806396836033480697890117497562378965860625014710978876942442675416030181772229141278292345782161439445038829108747446824567219630234907715432411748895032858886885073301636314724738517427118148347032489807405266016016516728415284555721328400159283073784779522282970305603026798189438610111723729576924829771773127874388665585297230174575325243756751184967045766422459628388493667912021981757341633670534194864560477633535611801409182660688258857836082515250121502189615856126754801914234582556814657550370727498177033829942604468244048264707389147248395237117465337504970430036289069370407632298749306735007618935741168168179397124543732731068534982852775150246377102011063303814146138291981260367250868206644233132238216870438248915167373969745526812899913546013407214163393767236668703329855705308753112323063807186177938888658895228316647383771279495625916159167651883393839656240040956040682096195410043596815340645181734979780918175603778844258916001547733367087404558621745270775965070326175244718647042562647999266548824725186757990778801108115883366542901815978818065069222288891835962002641330085469610457350103430361233298151120316767774623542107945358619633733507955674622357115842969992557153762053361118009831828384449467592521358191257844448403094485901254500432718851899984366647461373052910136504477586089702336142773743655016857635728655459621273596684325877386566582103948761680469244968549697613210981345572764488664041834934729747903827783001165248071944976884907496488515699993253934899725164762093526063694049664325954145202520900621993249989837090725130073422994226048761256786363364098584408767618490139057700859155169208708095983425247689604028749396843382529333342079049233415473792363642377717689283830944103033477082041054682253553233415885094903822425982216689745277757313400920699352000883836716464619282259099634678854566762587243428074994737873663003302563369230438592299289026547456049619312199963938904803855298164870866579108861009580679978276054851717900775590329172432464801666602482252707484542120996233234466333764797399370557326923880945797510202087834756817382487691492899623098577889103628855259857145123782034723859720793330162886663348512319692865254350035490857370632240246597937713976037625495562679182551120480751307446201417318176561096556236347200863084753661167475854050523475001762319779130584271853642559643542975884629105348896266519969046374691543416836416428424111368413519185193828054339022706878189978666986502004271444376894776051727273914975958725290379083400645583977808371569757219225054651495681695397490829518166750557224605386388316139115042225236198478619570766111241943037421921993953622105418617482637402294009435358818080626255850300072666609055884884829181081592852630572960191860769739261172750382483195374698378142941502909747969482777847315491593375112613541036152433821477565388067236333386091791300197447161903300189383675634301177472792217175609565041624222250128615028435492644217653265323155810938083212965726854094840499765219114986311475240940317567476805265389042505124798553756224740320439949327363210719819463267459016351258774141841957495367831855254082202687645381331038797130717505402886682119569048231928328598545548767855019529351100698208114429372694662202874785154284545897481679908649231044170905923345426241638169192597127754250776720647877342045829966021480695749526293441764406550528941613791646970306644645876549450009056350423247562967805350653260926832918976390370030624906089093273744934686391933281966844067619855879261400298021990803506362976584395716258640278516250075316365432672885172882583478235338625657245588315502096867024761355681099210518348345910905851653639748180717392845908047021270309185700284176621562164597437173259352370515145955742053410602510563858115215326619406245381588471119843772974079508042322732603476155130109132941422218019233731985283081245698449689814134373029021776177369956571924197115159243322906967308785774194404532705789299462339313267716854906589976325598103626015855346468846211767277213425556331024979927017763173672185756522160592218413500731867329501898674146424684105074071094844076901521556924614950143325573997146995993196611205388252844111004395158180235165138563720660408169499121759528814289363058160042770490478086598219580838332647239474185087045323638887715468643477872499820026835008480709480178555306205003479193302853568178383894149703443448354076072623659565948927064875491942995236533851178871362534558223521168107980508008298202387956212050214809399979871492294081383850549029286647752738226312149862172704790638041026582754270540121351034044036911905572883921097367943725891069775310848314503093077408995710686998707870946568478426224356183430376873336804438026051694191280171853424530471875488427757847332710130432360548400198444181571561248630140839352980179980758168939310240415370888329633694441975050742095324995378329819607356849695565169564245056711119929216747581852664924298506282913509756757454885618701896381847324251256846067597314005289143101449824276751729688002982532478653022738209401450189929914491447055238632846386137986621679144338712331962548725113070011591669631467491206577949436091117084287765128650570247179458654769275765225419156030659117454870458790881478675389579217309065113001886793486655977725790037806599964564874881407412794092995915435778035758886609016589763846906334732853366302283989595758594717373131975829184924738352795856580504372294255180522580764328142401331635524504812330589720336110168503594510910739764894426754367751053977639902109896545846335027719793297162204961616621389538232839186058151035929483801871332723475443046828084952358292646891677644224997552408493411533422621718031204048863321823807107992179499334341760043169018633623535946798560110721377540178975534488222857804269137897364980636070243409259421941617759376261985030138095450894469627488836060264958411842749166900837747338333410940894551961762619289290488602385961608197069170449530051212393351847483248334970784854171829712842957299921975094691240827365583019951309338850899924680428805836166761204033458351143639296966198490898700020202999463811617439043105188555892638327222018724942766809880509768006432575617222304826782334276550403481359002309609609909202174646815191450663538059982945573440764209879534261147999821079515318586624064551435798831300104477841962509406372167664393610091095312689678259880719951694438515607745795060865374329614207032525529617062108012313692890619466860088695597442213263365970961097108797449348785916974249934233469776483328722769527983334872513070352562819222373067584292189272947032776256945217588698354527957647171791195507178748141343521322263115976106960806489590732389661818689568636974690339284539321355924817385751427598137143553556776377479486991293295256726682893995863842993383412942935400648862391050185767979137705176069441083765903794837581119799698265751458110799168488395683558853523936702845333947542401808318194497106731927171981390629420881851661038603044654485309726380724280276072564136524736153140545507964742200990056436651443463997025264258504647086423597838977985454898194012093731453456706110070416600975112468663714173297041760311374155978322515923506731336266704326387953701315144426132123489083257439483676674519248166109433653381606113985003583625177530557922250386765031788133238290815823362942434777975957546014065783576580129180199973715178423669301797685230625392562302461485917958235570425178753980348601556827205920274597489945449086073380947308547758451346634801876085834467833536411183628521675058832066990949517991900044556346184490956214437952303467810905145374236325898700470109561632587646285029414725120193062576848763283698644108348836581667507065488093761996566511263413447687615216114418378575956737336528686072076763905043992230274157303261275280625447298892931271520286787128785472067082510974760266929328069628529581063352215560173284511709075228880024305854656978880775810164208563998982003413403374922358614420123757263412258440504247989133417126852378340804254972258853770985838685820261836019663050759433755553392335724054241281332307599493529940936045647060489134311722710360055674151603854694984610220054702159633837276863270105097967966451923402076598378072140342513538674534800453263281965536489643941231290622515306733877550058525153916810824659021866019391059772694394743430550646226315254833863702577795146013632384643126403378960198777034315575925897284656988872733739594446829977428769866536696113605687997067242149303833839262643528051443332481242062868261000618672556971179255080983644320966318030271050524883989273656704490676025990968975701616295439079333175561647945923085889531932019965096019670119319839035674603812711381159138291113135617506064983467242062500555278121862934939956243487977087042524609613986083034584912727516364022107353118925903151360975396264896752569056177863224347338709533090027714810778356405893474249518041173094157883805163653918142443748477643530834975337269443836806442919255762074543198390768421398341477701368430566077257463182734478994119869409479978644379433645304434172024518667531278696968218828217279994811440891433551513794228382836833311297626162160289685552495163530754325782849336164626577349977669805451669992518943469226232765299146616368797316460816354795637837500976433766360395412395485495368588124268136676549937629941930235969367991098538348593690302086338831117267997388104446206272816690733064610288621540680995001967644158731846179199602338163174907105171128287620291488438610080988066519132323044740176546401355112773873050835873867040487305933937044554361275690430975058028359082527229889114109542329016029447436759944144520056812482592620282623174937575915595258476764482207429398553609810526379013475332352107869308330527201392154772203804245854386699434268060842415533843828890083247826806086969564276310640789222571522634334830338751698396217764356328723627007090489216552753414647065679440985445161592730269080075780578277470112618172514781676300771267351850677325455218836124601898344018221618929596742548829045033431476690860513543372771856877660765975071553446137414594438908252328465717446368526052885064021594046061262865093454914756475488374341324253206205111985592561813001782380101792368551089721063005637092720975637129261390874735567588248787212353265810741431090259159226644654972681669913393276308907939815080529354832347903941859146932531222070962174466300855866994138069572977150982878898277266196698763517459104257176519966851780356036680074429714135362367507219544304192623897303453288273547010506027365858574796130198337827929208204337206173800735276375164451980283556226393109383632295654067641535725809182252686722927316834581669761561149122808404221350977257999749870629660567317044247069117998816120991505660702381644832851301798380010536358140942674500787461859166648091753189562174261100262259450277030136520999476513068942884795727377834686872485957002995385631481170971245738896447366315842974799986075013243204108015355484526108066232410729184800786265951651617079181698673041753412513910040662733292714529938315085042981691212628486745828905940555519220010100052172519432793611775867466249346109190858994539659476734087610072113748673426611952531099166015732095879982499786695609043000545981393765511588915631109483512050435472553109584914148059495245498930783091225086884027132025856479360615582833071884295193455465193836518783774397471501591873716470184539713032885681888531134965445581772284449493911681016248431032126632184749244932179487143240250517724301023539399783810220225437601768678036716660200824803476989884194126054634936252988963832372161310941178377792020878626097250025508972832316727098664267810869492471122423052886502922501571221934064434316696351765091939809855958320121493056330924435017560476002067671881182642673625556055054420970829427302285204843473164641440033703217511857917431377818775649152320920607622775579963959642988492502613400207644753722117953598117785855500782369256950877313609899483194703321957199161631149597641576163824867789456719119744295172216360412157740654882754244753995166847621889848697283439401608571626111895682821973929476268735661178163525335087219145110591080856606234526320302392758725965716753428261219483225097769061469207552066013710256454298148995254871364777636657987433199406207099505892807279625079280799880907661021984430476675933233410298083909082414919173195001431216900887710979732411450961726463904324634395791840054700302509598447311370571968345680456931585640863654740833173406495618755382199612959314687021796159382106141161712136515520585990435965010806765226704034248372466621401653454515813824251254537225392038562293282655213117503588281540086303726107035511364380963987461182846872688020980806142644845900255017541040839936119687615081456208297788743078891436397665132496344304108595034430871501794810081942646703715717989947980582777592757282932209231197313469091022618113206590636071719692284244515072506558270493247361340176571373821222695274364645160923134186387778845582182003600138931063773561476356502346110425776604300387317766865117033746645439121512459439280729966953363823401443789389360677148965491988666272211587643706457859642782114273502913431831764700335259277753343777528323193607597375817463063772512858492437545887163453791576495098800934336354509401654010158565420757984275528851430749396187122864688072419448597166381507805403490829375675427345463780983884092606218275521410791995307204313461187264504473247651626297679086574586419019855215441540712025516121451404192356504935898210387762815325758811341541198080841565597657389722938816301314626566742379641462370256397665989962924100455262824798989739492077573519266414525667633999304040267278865357213307706799060203998111957215679056051975250870468964915757063507562138017325313959354253171833415324531062317158507185278172412313838831555057162966902572916766250196668613485373574600003194877892725021828876174753912356604092647397683425299290096141259465988422501134660218436790114599313730471838187259568172349336912963427001253174584296137981454695238594044812744480021344213214983258950575629645598048476328367928136311679817162495927007455530960532409692600875358191455859273860399372280837259856187395699901323012326228397323747309689990740773332412349489244837738223339020420102438250453832513999269860281629058167909558074346096854515760463247080841929135364557385083431396656807953478509583356746074778414249270178065778246982414652606431639897109396877277128485739818634705504895960913150911091684727896185547472745182122110623885721733313936573908836209738103340347825675645440233707736185676774386761848622787414929727193191039528237547242659001126184970970510427890708917675213404924807092595205884065703953268837740770674368574736525417234643642801527223150685165750370683414971033763402252517223917151756827879114230827390767670885850464076955249469345679954501036434154932347556055688428762478819064657608577505707677824272798257327628184282702395046692465269177479583835073644964034405344451290703336132803560480702264196425320079247054729915502931728414903506693322950328747475234899351861359011553238023447401763817171220159270579628057083438005499040893386138243999669467194323544550775091887598708438796460087599482290276063267424237751296627652143118853828890436408709399499548129130345943061494649351889208410852048965374754593910985595630182996480239367644481716338252856383371041334765428399758508251880020875881637827506890595126109203226780830145946554380498042628670458520018187469961370621909786608571469676846088431842523038839612039036944416643555183797419493934357980434827641739126190865109075292007784404479625230806416446850272914765241072346828246579084851215635429083470024496717796899022444343905370576490300783479190941292479695262073955403395642025682998235795720635287062426056820428090263016842128462195297147941177581503181482717049723208769475483728692969138366352453767303199225258322941517243298800175706700278533653340238931261109629802985429096629517003401710940154232943872038171870062660819654243158016563570875234915239294529111041294684996925802116026550153377757364822097095371356780979228125816616299728086019222261260856703167066461482016662785253470325586076854391744140305240668179631315782911255542587855988251358946590081652816038963324389569269696299626781455142367134566874216401215058682417329386955678823585535273791546428057812124497128247187766318740136089027469944298459790884417653520033122786933841919648295830590399595989510535672864511161930194016816945493538503210204226603373574524348106756406790625477943809085767855931289262909462470411599314975146181245767383854370506308600940837112473273775944108819262086933482419103265541331364210883033638518798474351012930499241439683738007882340295762685675714016321909974584667858720479903848498355681527698943927916204780141127460796587485243437181069350383089555445108280597602911943300942924138122887960052788174445133454006363460528615047891190969601903172710991701646537344102943716384007867740949727998471600106629545814404789370431034555981109447920844656327603275451113993894571760999238122135251467181264458586207293993500836863174256921862592784377165106768230651942310743764820708127478209300127912226709250960263013089523304251033070138347299507064501783103439715786178942644878525934189197706017105192073767709587754763401262291301171983779986882462109011983041271983168735281715351042244416203835199271074807826443783618436814327225008690989021112283561900056378448396435211036122500314066089314642859759585397890955722441378076040147535085334981032382020611118450628001581277847926012884298382321712293628355865668684013646178691641189331857421906547188579777433644116475882168829085292089143142858105506596895771880646564252900129927625881197748196440568469198797831918751178405151978776229530619603353116428172501806197661471688462484267906121661755567449327817533417188469502842877078878382414653109803659359845870474029612748400011594347422081449917468876832665577416120733214224827769185622448461534414803015100604443751296430838044050251278909573496113353287003595583427259600374820429219436234795885414481934003845797055633072653102727877813120145381442244714747740744658496902562653901988227131308587013324864805261051075671487486805523109682102958090003122824545448527020141101119753734365587820509675786021839455629877010056473693063133078707705278695867110129725702330082821290865513287081082538160329443977591487452916597734277262558461656518549574611292265775814194409333875802106267157866405845344123372304868680215353494934043105426155898257158218535888192117413344360640074474419578150767137167645942550612378031033459309305352548390851579886370057615912268799362665708291588675929779264607438153931188342804821001076370584655925385419065753356811554192123390086667189427380570309275466805757830884897666910985175166944629894576304290605544966927165947445182794509126070242545210659354194762446144739152514178584056783548132896675913177975089024520023201559044866289008606575354801378871582181758925935905673104596680143450933250571606376388304011420299154580040004406333895026519747519636822224467081831274006670230813547984153346620622936893970423068887553299392062781375396433933216700457857804708870773474510829204325027990146294864948525604226936633162007979038804438199239781157397315911340395893183458363415403308289105219293302500687963855383901907368835614922827375937649667409067396504221218735028152844981981890858843329037524455304214222043299241685052064016841888660120325355704132815274611464740536328446980447725577775210714475998082653400014642535810433602586314919756849710864896668087262414503578502249259670890194493308934524602749539183913256314521631777248577344380179155167548692439205600419529030359626938259541249892709378881768116109021952123315012699380681084045949272367059549193992082164165964478753431762200706652423401229633386225427923319596173340074131257021169349012296812196541143072849343342034226854079138819844440401667628849755640943481207978591047422873429679958566401362373455291226491028101228902336511322959715185204371785147331614681171394970577738700837290483027367109978572303372013556272837589193256650233498142409817662028481419869591430043409607191989817912378965163942645577469244348648807174794256488062746668733051052798157257710464480989671090365941470839697711994656086589849149119973512351364939480679990189689109444905556387757116042703938361618783505286413622117396911336857109283385935129213098364989117538561093665569660918345660601371109437066573186611232333572826997735025917935534994881831859164163485388434549966883450510669216297971971126451938362273489696755772750315913083872945471453344270574274669922827482559804247192026681457478915649774730220596069057227005029854901079477179030204077902404133476185872296510954438455541475852391180065467921855886730418733814939797963649380302872890317048995970765767429833904211390668513676200499060939207715293826710386387422199051639176047739282195938933308201270383501915477345061683732644345119129713175597116511640551034583547898414329998632697026472526923041395453573623813259951338974061272732588627717042107521187739673062627106103144341566057721880512781594365110861618814167750986382671224965442436956831305083285241188645406474309008654113827749072111345686384134500461047828388632900109298148801570839097596282679135973547298862343951747941159754814741897736499516046466740940498402231091755654636622879511118567928307732512184102084382197332979299917639928350654651925372150236362277642987692942495948853221643611989458127766287646999469879791009796406289540605643115674980654014965161781269945181618678626448063577797504748067484068372451518341774191183034449194650801508122834780952012108435298408607773590706812983569312834049356842153341918077240743548508780837507290376698427184401302422787100733267807739488007168494089409838264310721734283410522271757549223593377721836511893755285448870878726942220139357620759992267605401266790657809744349661486880369536708712097243203992239618367374880028934759862613498190903627168186801600279726440000108304536860446927395348401686013203052226587184834777934557637603271764482904073092933674278479266522590173811578623805858094259190407836785248417596879104727033696265479655104080322443121134114804266848061792971295940754132748175339766136488553801215200575788102046287957789057745980743442784051685861381908891745195666320583477538600805272062788978354456205626505515475647155258346709456839008172084625031542880577166325019440889605665722651509221615669116549820076196054322720896502287550762867492706092809972124500788408375068046420305857174092418548505500567106942583159019245411210485955884650447059474275007052125598602462756040143122347792529049746161406608675741280960268845752125724324099898808590814430795241004613389242246523135336838050154205456466139158264139809998363491671104359063329911419908101578859575248105497988686965072740603004916764471286629914074288472585751469802123378976741205370386397601610508227650666990871672042479766575778123169890530359963657159529374635697818332645484058892404366012112713763974296342702131396441532939893784279430519859408408709766326265857519062124192208475363976595335033188638777501678798012622470349518332647808275294498730314504262456991113229295475266411388554409506138715363722623818902691684874015305862389584011942232131070430501219626488653885069986412672202768957050940428343333356925292994649656005611676373793099623416354154025925118688100112151280367404558479128062000819661727729286646441301021233218242418294786844583558767979691621688626751091755307152259187137916051050264040525824278707760737507520274276407165390515986824701493612456345086769938049795059259095628374995806656486219835023254261935897108282828650215342839274695327966107116413492504566452384963635340891651260656421465683919014982636888654092213948269826853153423643585300081653447758269911232496752538542034026767253883910890994841510734337074724595042721072573778530370035971772569656047838872320187077573965101921480615252368291557598235202166364109349599222063853623925483389110402745396597029807752455532141378732383754758422429518667565788023145346942525232296590988851881794501687489043524004884846823909998473093802578428181460664697454468122870888453897239343154726787843839627974213042045964611306587931710000720028131558007118324057139167314614339864185403447706753434730562107629952807288007260276359302566793968030576305507735243457854902733396066359255514228625521188769770186986212772117840413065940012287449904732855184243548119194485765567364120567699242168205898117273155118131592464575302636928778288661970965070633046890144762531406190204883306929724602634826417917544285083001823913117121719671133527032932226481806086366868896319698861585081546646266140222599196409269046208380037308692790171665399985897472597695695794074989201939489968166369929403152292994740187630199387589341961719200802097265184171099222510767881348617140146177051891761569420698076401109258541012677800572779175737158372063302448736881138481281576263090748471761997805489974758537899079988156702649635595307125474284406088641883742138715225878426801696512832222961323511769482221788499192330917006329322446578264251004809332212912918168974624655139001592075185497173697146740464212797419270574493508987805191873929804215877987756255649620230806414226974903060425411180384196754011114366474671037264138906743124959293969028646901852049156548766076469145066780925730345753192761843886006629498601799115507406244165982092827523633340640656999331113058140658587666232783729578381793312640486090068947379073296014774177802317148773249484442222028533576611557050692954346305867991045398112243133498177487290235330982562121812176678741429406536877726774872838596793375160263278044270468789183670599819978663832260731006807403090727451504744390657228466471897027852652435494565351405613033239223910554041684211885920811266585792751731060156750574717741482752757142694457756339397021859292025177510633880082192049436596250604127070216559729326782246916290506443218061656831365167222005781240385521570769653195394171820211419738164223409173068345865139191885211517902138121903039237570617711714440515136293754072097798165657367555719292495559113005950757707796923586934579467036972240358261692635398093047580958821109426669928992076330469803077857179398257015481738673117527976669409339980420129173677972917656883706362255266844073443748842989039865034482608563566078118004645514883045053984310743260417513648401713358957867355248942677877496845897417058655945062666064799770295917160448192883440828611357632648037217512767001853796243683213057681211217960838587236793104950592497024843428155941084916404790964634809453862561936816521066200585188445132798352271323876260730277658704051716437898955712585616516621471975275865996817513559303105216018883436000703121650330866267275703964833155521564482153365487255719019683160373300678418032800882722745224107405361636466272021235456355882965449277082143291646032791314248362136488221720482864127004721750234407340034840191181427429865351313195410666987297968179308413793094257659637281605311327547805854228094188872995640186713050821393123162830888550992121232112884568444025019992339321316423921238657913920249813222569091457476367581510133553014518879745972762357047890032493498264775407261267476008478708137420939812286423508197394952429813985389258385838666333901601616953667314929647407078397721557495137770655353199972936893390382685803614923918828979469115185449221175727285553890123079983491229842625344794667421882937699007334809592142426149634354529380803067787403195765855898679375765249257913694700916077980605330774717056693203108975603311742564172579301034933787054427640300808307829910540944068548055204712834653592601515344164461137851891915261522290886721154985680650581138059915603610447063145689698480848939823171744483956041030334947080510109875222158334552010298876702635952012601861253859524854040763228998036350252678917924940796121908441224066263706768843957149524357509855610409098774383091893884096620508647784252037123645800285742608558171216747055779054170657067464446466645228609258541408005442464478373022323585115878319279669534728587248347132233186437315282518947649247283636944159104869477519625491443166815064720751991865335751101863916419757287534042046502619585128135054844651673440692828613451264671197663416467508517524730677349812253815627469103273106187246087722230526905340984167517282688593497579037829999548553154867135747458274080013308096638497010081138415474765038982017747520165831576822765515644063806248349232712512790149752775402971716855417498267208148371142276517791731151306356022994045670790205254031220685786843989688786142541170554702851011563188829857162001659678412861379777069970737054022242787308060955779862491956076285517396717132677705624960567034585683402755991714409689694934967141383949966382005002052161720037153084469907187760418394128812813122588338413883169095989837175739015943368384311323649246203861757265891310161944196994176749708768255936061625031182039952945011287230400075896170581483808102843379030330155686886219030392595501903896852760185555774317884209830626112694342881065106697206347091788919250697619362635142632221974762323884624231279467415831403325289936157653770904813433532810937917723337269786700550653816208906663190451129962902307705917990926249588159907209103577623723837103978894282607507454760729471368938044860950005191567265310562866454452032526225370873652425529877365232803094789368825185431250704017555709013282687059050314036488604720554392323396690634495825260208853441076712079770154857411745771005867948473263605203411690118552570719419328647666909267859987333626148292662776996480245873792811151359104740150275591556015677998428701574786569057620770324045235471235252098474122746735109155295701309956776136167018527704662012217975728627316591982412704866715432324671587811473364434019318929329666674521256289074194922938144558200282381969095959960216357985786838783698225094550797322855693887145653305215937942684580103084946060675905000854428574241900009669683623625365007442893665255033852351505722524697398203387435169776185045396538337798183763054412930826265696046981061984032008491940350770017392069538923983948668618326168508837182581689772468344842999298883692026091924167413578400814789718055529740121499316641548208724100115979918202559062091330878479228749710310594414406700272051190002242890516684545664690719930259524333154767392279662592258244382410718982923296027741990998476328807902001452071271970495382518817109510009769711242928621418589145960375766735022609913724274199991871528003446316302253945853811769598493636061518093569291434030348103894047519985302095654543692027888258726282807351893437943719418835308833685635270240498404820379940588174163796130846530408334862204860987593660365467242275128494089189467251397365750216405993439035547819796100394910780318483401249607904741697337749437238881484670486215778283272884062105432685389778757391472902095023808183396843630512972940576472114712507083005052536675161778752659109649128271077467734545907113066818474053032203352342661563046486956703134757829585180615587400514258828594894762475290770900131720095993884928076814592652202378935732338875282461454960869179634877686284424083464069364500490544904862421020178567952295696318386988676531289926607795256109740621523000613122707912898369236723288007606772153905905440137427698039774171314026313785485464455630557240785393290807358546167420652004094530751494528304590514947208358895862892061511324393423599643524509428054546912919824936230214534257898399374917533801388699902835577874277363675267168787789705334634880305074758633989318265027313529042961169814427068678920783252671993962732823445067262269869681688874552128546374922718043226632110813044234841318373867985848029940710835959440699589162137351893954533566821410931323824440078274314521230621570745295007255909291279564457307104970948789394377034476228575405255975812119002962682214164754930048976231822742558251244424687532091042721018123070633600038224103167842231696603114868136063348943384299944153208300949562635378538626619660550067207545754324118068833954290865082669542470003330188576686321239552351019314738264835382665234864257995036983070247859730550313729754968769535592767871634680481016122822587890837649126405791197789911566294902628636229568075058523795542535396387387579142143118765945473472037685252510610060289188315059731224391206351984334587864285729808626583958587750749946626803651951183988736879883347552285419987667969081477884237108865275990576280174550488118532302833868787059060731217845181705964134922819969420330213558087623281279509788117732828700108075572294456080592666269244568164081390008857503455523440648013850407183962771535141778516867721426473135386865072140480474594155774659516247151855640660862091458579256638116789562087000148157485140436709293771777762117626629757122057206543998699559340028642434323474354229348755843735619332850911312136160306894922234810766143171400425371840816454720929979182669681578894808287809002447496331085284460905114001770759645198332384781626002086068279732316670541394557129390613225387543454279341742546648673326136224810576227400308055471175481516953968835492593502804646959277175879137391576911099977829934979154197914071794461899742096703961269182593485379098827070187570427998561456521309535131192670579187750147000702848906615715545368824704122066658816509701700316104841734692772304753210362946783497627490706422863939929099599323740832408345005191724259227739474499971694782784362662233302249269589092737734718572132997123008890558956898936170257846968505118171838975897522909129657894242686545451945029216072351818545248693210301943495877418255750579696798783134392571818331172919473675866004456196567488854957924570123473865394760303370159631498525622069657805662814492148554310854122879525424455989078861490576816203819771089974712860004483250712824252642361808388397360546581583995976321870296030398656520353960584542131164699603022381964056011041579778854615253481093910644261151795253248529352095601403056963212408028860229599054418431359188193441863131918360653251393564479469195198914093530234265067392903897354037413723317612948799876940153103587548343567631801691731116387019566226546058038099835253432758927240456437677496513859828741742001447888276095179190442200016136113564257749826151251137936155362998665420726316308194748962779675874766109171282511876762220934878083128215868624079286731083124101640626605248553063860793491499595978044957202877059816615933854810301942030390788582109656843133831929845714366309923904099271166262349817175230058071066593036629107405681971921191761930107371712905200184356709997688999111039701484922093179889699512201633095585618078413326792932338746259219102262108837176172828104660099581451492253105081538009051379363530499961265390829796313806553552148687265037591522423766454526846565979402288059773986945686430585890241191448316146194483852691908027556794067104130583371683431772563537361724916844160184980895106928371813895820540018521463550810116213569608012727321415658590043116602668430569517728768834201980056528106016811457311937327793143300925092421589323212686881695015101051374109018365513500855870559063888741234160768781858709915625967651061879281209357433111195032293794839149939980616511002941425100273535802205022343257589921527999397697081002504215984308497984190880327526677601073351186534792276414476577829434108189795843223896430230778558150161171427245955028137886486877281858803400418630548445829474186387282769887153492605913983767848687897918396124761552195212116715316008401864539640219668646820454666200061315657283905261227445265193587433272299979347471156908014309539737460663178783812809668380180399515792146644689573525785540141669085983965352326482313495251712992068485679595549213731816204300735192488486000572176320415388425775577903618261465257560269428575738359301116315431896025347028500853948248285081422374268237044889919377621410480176033903858302024284672241897446462902231733046995702905301167010862601577674665418385594535975981551017232741888419788453557456808454676958783697943686816327229663333341331686864744349708804301392720857718777107274483880446248623774213588263471719964249081033484797638606204810769448374449480916050931043560408423818146336140300384910031451893661932432380045518506240051534609192055541900035852071582749419438286631452718312280195850159753008389415698091078871019818757041494525979843038982803031966543144201763011189221690876025609995171204266598369587047472310525621043339796861608628170463740013999078308180060191991164762256785540838126097315517694283503396847115287548758461635467413492558036207335667001984266713859751121253252585665935425439243700860500970175357605108585475444987319967031544635963187260640110203076135840884494863605462481825275790358048323666595070190328423680932634761373450446588601046971966852612458109173139608943468273034247420551294896902254251545883511890081463057532158957918327475447664100157935574881126906346180875661670741667877447272835135381626824633850302823212512835210267890276874015191531126647372022617827666913853898022665586832966423022200670468621265224015082782171639084594635493963529402013227763939450967004182322624688866504676430626931929611612169559807763971142758455656004428199219016156026714898314713842301796623936396373554539287589720262726081342558815384145450360778897309997325099098484796271568909122546925891354918796151810699039567280107263617639401479273006900651117069813425565403623895768848980889350418496563237129788989755110699349311791097265333794133839513218860604476378579588680674103305333433194791721482658088582124618476875840891655020882545507699221707100046913281895932234815843117952526375550270209627273060682935206851211336432813813781280718269059395422130817689086137199609943976839354261379198236839389377425579935509009832585089912527418179181358250691890621208901719903818179026445582659336574894787893299520265994133478749079133891925307242025213633182424221314395776377439927409040536853714003877458491553007864192991389065815355241236829627054197654511412131375598724964025177977391682489534442240800550647275024068177356899199714652765423979136101754536632369882121502944504337235376866438635434222125636638629572994255257980121967390575041317449365124528412797444021310877197719226761688825348610006390449680882875957910157593609105041273038374081360729910891346055907888469695470808594404739647279278440365042468901364413210464924384192933033316858543740071544806535297331187945092250525486782703339533559048242593468486855297573759724817788219663320807417754532532434300587075426122499781410872147273005217194298004052208325692478654083670715142681998797420964291361832405409150945806136261006193153406091908208656371859144917305575476691481621075491704759992834400698001014589997808862430566791088258253164408217829294328309717742637635212543063519721734734452322640011171399273869129242624225490945449320989593585141770508885568867442200818859604305279524774164279339713638163505690369948073713534898530342126775968292308172244134167671319417057936519701371074474756873515075637625861802786320896512954328102288818692939020860573136384485164101339818711144923940525425636517046715937892119743635047324549172923333435064943330488056335054517075105607723294313265397724809750605551510519849887098760159960505307206393004407200379618913640399239476019078507463147013948799659784780620960840030961174721184493215834271447006032915426351438036782039025522839653181772709545800290334963964530378583306076370594441344921576487612083443250541952232975467058232027737050211262267200965506415564138839804166848455675813633127760925955569650787201758440249601123135482652346242493503429200321124596399774770069573140683294064469754258656710487535064440975070243040599558389562756467054417228431806918487479887601646409790090887251285535661516684663615696776589608348117897288731312655923581715590339169745729651926785887558685386796291958104653760870148937077028669852552162180198099244528598387782772835817408475990055365086059624333558209780369897353381724822130298039094089830119914709358234135535275753606133598290614585328459382996946981077262661864347108576294804880548399030431297177041224910621050242687167051826006691791169064187229278056146651623028242318404841557318327774220109938301060620290182596419836811690676894461114567981256240800609721347638309825189726772947648613209232382515413388158875174876230082421745688752209308309579369140148373336142930460899952999388775379467044915116755820935593212657776002960749381326175139410254178647578131807071361093556162361638194661762360359030141756380935804522987461870363687380496321711114431402378083492382955865912799118441751394423269096359967255695200621246935255126628702299676567912629591135403764314550515038666290911795788950215531613783129842041024972701001560990661053920231666540935800891319436014633493153399943781024188833156605192431277916746083957630019952472289016901786629370270060911276227772663205599528862968163261504547853296248776874667521561073509115181464261350615724824888876422458092418042748563409252225940854787931518238052422048048114986590375251657185228991437513549580430739725141134971035020876555012104215727815665461061518126519871227770488980992029162754459874319647868947370796518046492177202263757654520495088524402752154695044237813339931176670455146376396726262207322190785980997198647567105699100294275213964581452982889914576375252655610532895701813746473228077274738057987291340257727709053718190301432080070935039687752235293779394399432867194546916891395239319258319178779036037502766886419589141944875277205990163092505051580877307357655816082668506568415584951332509062287726730313311802274959418525470210756334761395283092351873658912945157066071030790442651501282836344069783807335567711428813733406329868794421284659542324677028255696723122177210382332191961439617539384930074664237311746147181733915872001013939159424781642604726221097362813204360249394805347204426377724848225207900033652651662558766514969740982287537872458996714671499773533588807109822654753436164859536980924474176459217692440705115679400718269320814140869854708471146823090735114795997306095114184857635559487287079468397349677123679642631716680512029210433005865884495137091289977411871654791877727782047684316288422570433331000054973894786626273022866511907436571689279940318774528488296561301281141926317335824264523580948098680949851152509719523946914248498439354435567748559984145934579428978530921510008511486344391204918881822245284476845845040910496252730061610310976885324810473010785789375259322840271538184785186837723923524124042528389287361683617591343071845645670029581257080384901516169687878601525454141325198369141478805191239245633875230230782693007164474858199223762878343651479055260973317545283121280083596403070603293238489306001190701791371019824754287556907575268298064207395702713174937571065419025181246280350927141440729419849119269208970434626840633476322786896026671277693967147396059545936425954965554071954333708163731776327228076283762712930475122523329724503652229470643260051813535661576073975093928039842532598321965840199561590018464446811800444275836954151804750952010653457382717802580789647148249799846159083208972610358104010646436050935944393942173510618190860893373019105438888782119191122821932566682138973826933010240933732695086884923681064760310923383639093535395428868232034561045048256782627553317058284217468595910617787011730851836308610409356151890053291733869789822195059459432251951885947947566652122432969903638134497922832979432305511158598983633482832457528180402990128600960462142674176295076564730942238648484363180314983979126050313024559808704716957595622473102187903297502654688577764630519982327598941824427876501125772884375962767484796908766824347556304100029222360939605523943552495117004341773200287589948356483357302837337050793922297135487031393692926948431646702857072559072741589413830861024579381973175046488715722523966127177204440987673879279753699131587988190877537650411314498301444976962391305909793715012539744821367183726092718992318079694631889399902878555655623112965324403068847161773928077446221570106425288910764230233914472667135753963348161539535395979280216946838945264605051775182638019536672959860815109319019199222304895858179565438190030801501183628611707553515604326852331364222686771627069433399949911003148564553315767300705888419361600893908390279261817761443994689028257192792009152000092254632163493597754174109622180441717100764166423411561974442443300115582268126192463960787290240275663801049496695131064880493706940392883640840884683914195165581100333363914966885475441950209280098802567295738796545661078110688108132333406462169201889815867212877058741583239677097959770560657832141101577639664563629267074113644253064099977496632364030166167005148935504989307157470635602212625805292426282058471079498374206082317011773072674646194749355738941536496192237360142867055073542307850962631273310386016502565454713385141320269540787453685965780823828743695618676509036969028358150014381781979635105018329452918582040912164439168006486606746826843887656007520171907160647629235922976515616600794972000245728735770549234768215031036271659752914333207558700412218702606276688094310253879399839864100095276924838494169932651737910966281477112135168789664183853369811372039057014513101209145250682925750491089087418259459122226840482261221462584631695312999100054165715698736385640800605355089333928588322110533749882885339869217492958614719671512408335960561881351947015987454940524285971728833955505556388948958793182643431807555105714759325459465765391569048899692129168102817423743674541366119718766442649315821385748907846843388262173377362929288631302443002900979945825979484742121079599014979832529725904222444296838352829632764168711833929926714901277600390511694715285789694125415724627206426752903253981449589998008656446025731212272524706494375218714910501141495100065109168075098813065303150486390918378833059489678942933828471306012788606819534353980094582053033520667314833037039947908179285500971619948956134505903037659765160272714752126713164716961606384977406300033493359422186170599366437218738245157251806682794491460660998101258874465983092572211571008594965656153043777932043917195222188863021400793839665551189782103589490643479875688144460485560045540877734960096873000418070060050086054501565110114082606557716272676486882511303200258421433818149294507328453659170941365986055740798612279807579101705194606813037435901168510939782872185708701538394931885056064308608244986348717815496864765440152198028785504472159499544598166150420073296471282312911492562514039820273380308792466842878602651638338221246841834812376239110994941635991332467855674193341658178316742216554185690532890193850701719810948163500917347569254932652428338720217915959468877989240227413403453124295477382900802768084277887364997962491983162574155874018254960668335743326181439636873163037695021720124625317793418729905513742131733339385575904157964782207047053061919306668246317681487076865093278555917027382940138518252902713740234006072103937203979615904584005472673720481897705863031179395987477981991845699801726703310631108047206642844714718457434181448028223962667682704789672621661438295052420903505384372718375368923938242269882528213523750316446264508881626791593475694360314549809785010998103296371605789456089737903557525514032941909956194909116646896393430230382535093806400883365376301775009532633604493954744517252936003922283787870734924796160596056963588854824540877604897607179583261978532947663209153490468210401608726139015157774979454010723105203102695855133527529861740427426472816467460757334664193412851171948490494980654982743842357222147775484970998264270450609549153354037235707215881295263547935893312772512130388045569513271852577538372146536909276498573830673973297075643000541626613455040479780853562119863324307802368830050413659899934001266991321035857045664491917704176887544996201194766186258270066155387284850405727520142006617187329223510325471022988738548198502527489100929414612455069877884500461824641885812961717276373679262884167085567713361524235578606478958769006467230883161334049588906515188426282167540746467281830188313647704791312260722965858579429392198244124708938990532844560136128459542305789424874203577655280061830896990963955209416930402667582937832593577298071452205502343823342917203029250052905846243950940236177921132380568254722732041877514971404387863416599115931349570479721444641777503731521680934222979724005453205094475788949226719635562320423469363466908617576153135320392190949161469290128039405443806231001327957602213519738813010476868785017240322327721837654792564464069737400336967298319267336432844519772076712797867737840236877885417663422029485861965848780901175424670562257496901369052474232089009465226280263394136043462996135908179663097533046119307800128069320906441813602340797582224061828178122665500143340036053489502116585662997664389226513991229117798726869083052976058086306509996822553459643965454892309874501819897435744969996409898417799927047610900891158763699697210885468370125704557813008478424883830032317859713822167936323025194631929872430522749283318504080076190289939081233986560153681138151778506455020762711651042816003252455758484045074258113380645974177041899807017944711125891120944203659773678390820503423864677602807566913111557205420561974654793481781134710490007449052138348800909160795136865473481677232556344313158289769724077916820494483856837887026860469005413075131480937505214202436293700475594054095050837044184951415778327901602590707496508362757999574132291579683797116528859183863508932214235111116177197560979380900380777726721853769091233360284951822993653992521800943433535779761319703262601399923844538320770457438607045183157774279207228802272574855469805714493701346504210524740159876645997343090929795164278584438112658785928436698408406822272635234646276085405455987074535247465401512766375619133794206829208398346775709981030851902310933991365399910298407691212765387163713398330937417844762152527261984499342128500756615658089009210935723782358654162079340408418644291216549898817233321697315793079726115990734475087791985906290557088462304846174253776228401770655641732074470321248734058413548059642772834070757700013967040428082982023774799157915011762283607524886010544913760422175168585316036227195412639635578851206465313050992886429622131528017082783411238318898579806003733613470359322498579993202779101183366841557519512125186789099654784306828590947221200749825542763038897548073752251370744181588117071923215254911088912605846963201445319293282457246169967635300764469631784909055607753659086335718200616687889359669604745974569485092575900886042610748139238491647309021802303438484669631300692357689313421691442118156324889823019821361266293235963764705869133066895273013743359773865497113435020487579965222857112712848463222817203026629107319416775016403319488216647135773510052504413994025984024997577433402915081035849337686764497881960762691700783773248149734820955563981036214541833286795526741293304975426897349346979006715658194812055195609795350266565462329196622695986453738639412780459195637331972302460679027524757922233593824873111874563265826610407411936946149725099024913817528300393599044411151576618156211036281681716799373361024507074475435073400767708980383270289496947454122377904194899595332251822751511557735142866796886760126338726338830532310962285938167417391578017611183568366235588189742277397469990482047313002431976398625632452533049098106598177089226881155035454553552200191485344745552334387366243900421061010525230155137622929556505505153019695848726986566172816768506987071022519154606638130474061182064153437600686424687731975820083381240463922408679250305403793322537149824964715609586664599557532402960211728788828871069663808432564119296651049929868575224299519866980223599836263333364089033678140437935451697346694997743018609306523022594185563266772963830506294749782635731371493132209333418056463276577583285789285293844679850978208259071675016499150627198917533739701681089354698078539681916928354045587653831569512144520969142862098473603141087394210715872351373383676288590995248926547192829028804296262272862111948608014765247670117368150272051037518551950004328142954016553307570140810224052425505363501027716901730318337327861918078619665690143279544757670949099517622208878871089561260362042275081788078349716125117607487144799788045775087105746581838652295096081748191048784452277221442509625533057261703581795622729799889090526530563320229362764343987609697202878283623439071580859736073865598969136726236028979468621470419936373950071565342612627787238021639750874258292140222530462183388868628891612688828033363006087209028506647531661673007798302145679234166827298066679391609304648693625768307201000140211154384120903479357224158328421893731701465945441709713477268335434385735354740349714231869776432810383056517908423789621432541650978710909878401011392541931835675667664976445264314384157894387977846691200390964445223174458691736859509894391325763202959412510986717484343681584500414413390822808319359545610412898027427281941700361574312464964823297486524779597731665593701516330670178307844546700240893219998058940639612610808933106079464468027852124549550176407317903303945235038482238796185106770171810136121260772508921302380786969660307231437323029620618154656381391064961800277589755800949742872727885959286179750001432607052796474378583493351233802439404626132442839985708378133305767236496335728536708531570790326754877047088228424287379311872298435855664146394735352404730025860474130167247647586430352381221472630103879952575355911724682808283984199669797009361379606471960063810965089045596788548199184755602365683726015315091570237076880904977966086082925514244889456828099263143736927891636753761460566279574991777982129346180402889909968845133976413365434733230879252487713640990726704618926352830324145354491781431365471096681036458393066830305816441632749959650227285609550252778713858406173395494963961304637594979504157690006120100989459319521448296386531875328988886447763545069148887394056316666576404353434054029532880705051588744078686828063791851938178305762107284454642588175703283009845930472452877379995825020099376457339830551651262418348549144981651906022290392507523055016117406190945879314048878003620456669669230134444922226784863894772378164520134962361156487107567265133859837951038883045450541535969522609137484360203232978473707132356968450862248828105021514212577090323327638471514663259086061021878114011139792709608341000184512123982015748020513883972043686256599178944420924978331888360310714300070022321226095702676259090298177742227397616437745434024095692612861229193627023916679849238984865277900426680128271612238221606490264014426293691752981067467366453772399125784295058944518096960703329394094859166213771001303767670331676054337962374925513512065215024904184732113511085026091116232886867394995961339126252466560477804034801623962048462872937493684867505129599578673588936055020661606120623079872712324847398713762984726243096778953066513607232642349141313911665643397158368827760422347540903816072862523391934839191338867350333254521660521532035574902415893171278193813511703998262529812020494187741146243743064071801482784280494696454195244009269693579131170769673842080952868885909610173020619139854005210208492347817046473342671483525760093952372095601162220889002899109268446878938548044875546368758811083354078162527292547566703660920327359163820711819243899198857376030158923608192927555111937871775983763429813299129515723357797287572603523584644718050712661096508842504242450066077531238654945885469591852442674632852588279363950791571429770774145512272445006634598306218119956209108342887008125006675698806852617769284142766231305200133841765451081443945646901310346879070628268072153270186979487855771313367290344238864965534416805470899102497139219063946322541291503073063202462846196995322560912889670553656587371468992209573940598694375286283195365520465151493443637450035566760885185425386215066316021675137675306023846969128046634333542898013636007677634828410174325384431327967038348675072942018310852548662914062585092781415868008883673812416585337046961151865055514072510119549219973022147218115617362474185412342203469935048635223297165829578399114710772357607443983041843354367276894736156992745475193925491412496900377842915718394523435543095157714988867378817671407913584829303771378879645626284527886625029837452897912709158047201366962617231148507466510137477175896561546522052246611342489212869790310249430161459560891207131030912809327219846769564338994618689890280574987949503531106669410715362197044307093130263898103984390099424886254535305926620004407507632306216487764717514263638592199316105426438606263812747207102787316879792263787199126749451899749277754648384149147567294939836460298094016243143764976068343173237663220425598916318403893376447831221204335624368468577930080070735654751832459591174646103595260680778661854094002813438350114427642831191462202362181339429972157872004050646719862995891775777956013145203365833398816345343983165390343337111476467818120857040382994713745480243360208709702484162424650593859983449356512083799374151722137194458654826796959356532579758793349711587340453472721049110356544347536600051993739648627952185338408053411316523848240638667501442488893935202415166243121688169553689285037440751351008070518223466918384367918212252377713893404903584907640083287574977777866038171187692312233747189976278763006903211557357939813260491888405047694517134572769058390536558473776404328645740514284267772744153596017727031279641832147050027805008829583150038084813161435121339904664703342953183594346428520025314543584263886178466486328947974158233363516590355246251574336481467786429047043614880140544470587973043074596719747263096268888144285183110863952506346044697123435406173429236789183577249914818730674662262415957050469709094093290555673853280871632753242944377435632026305351120980659927036128229395176232353057903944556566225877971553220952097346354060975040771330703766723664361496633404833544838244103809022592350798477385285070996138862923513805381144438720918393714853833945100307767150163903563116384008405485146384357546334224475820827617844100784014507143739070921413396216853265120326519996375348972839641939517475027142095227386392302238790584146638961549632952642211213740714314380369485283068166975000810722612402716470408706648850660998330620120720717985226667378094303311565453692911107539665361389087560324027024372584154592925555766019078640083498190968261070194820831220220182791004135781550492175062358598818737054846709969757809392481970546097036406287744879822069557990163888364018031657502244817308634689338110438885405824112881709871986859739757271688432143347337719201882460368371356263736847243192563526256965497583752258343599985406024153677250883648230907597814549887301616192584837580541288465326652094439778399102052747478870181386845182971998827905008377635128569451939489650281685480014248878842937162790491549345266498100886882353088707934886388557290206357647357797472364803283333140218595132709699165670677679398514437754830913757091569034661969863120851000432853345890927983447436009191819352566442792008281657540785818531662906297961141871064694071983708983551670893773501158410730479838437480663200185217161020495205279946271375208037254250643076603333016754676394663917547126638558649861493676980433418692586264924393014244036449884602220656793371776414961321701420719705543613433828272254504474165294166785037301104053407526034415746705891201780851513550080808835303065764340600206095319222623113341539047677076558116306091175645366185707898786783629269054428509549276544312039316279403453552533654352867839052637005862454424306406995528435355614201193830385978781375790660794561531594703233796493410080870473434863043730032675520964921195226582796732024077994042091523622923521096030210266581406958343648918277594591360858051049983201446456223853757892880488847477922821737463837441095182784981615076097382868122021705135231653075900644132738475396707468942640561954645337670213465126489321216879515148830935155495533695172302438041350326154086676906231769450677313579365115388338802823275753559173590160024447487625606921315557128029841295657202347338001889542945784557866054310827461463997556006751007200004076643213028821358627361504881661435961466300560346545313841631399148717402531562736239077460889108350194692093200424350088475970798769478508826241677195333932102969041461683267380613174042256916483650209637344734177172723471466116849574020956321547062236607170351489580861802689351660822608012052747764016633248754413731649237473994664047530366831094110735556715701269560178689613342475977210931538513328922966961808680587473406672468429595372270787147315936353045827056277720570564481525876632303029686625313914796843468810202206084736303722234917775143301396220147196418686998520381754343906728000725291490394323546307398159259158363174671932948614410349983299398315854728762895538485726649994725161402668465617244852808737637351293730882095726111539081299556362038987431182720157121229699704791930865633562971106182281695759348133942394193537346091951498599435615252636822279428862035246124360353589735392854180219736950337115954480607578877073499290878388454032120300047386987121924936151728034103206271133617071826450782615182381788587742201302817188185045088534315975070824213538332973255907039629072722017030489898263836514237186444706357608073294528205114039390940362693383675692718681891753967940813093089264700165410484106749505072283324650867899101496937906265620618650447534611654656422853100215903906468746339788399783483883642794516013161943787257990831706357364557929058279270436636160396117815036813983974286382843501736491728106574976919198092136732962867742251531593759635174005968631925052976759615213720386489693537998768394023854062962198680578672153627171625730216585496145352940684978944940200352267340129951074028939864274878562203086773780244771076390115951324627646486326347432758864258651357573142374257875211096440631027588620512612891917098756321121125897909769781973598014568607759704207341642634919198757182072236159714964782908541100554183462989588107141392940641867647530787435443694360001122815998331856519666799797395441643895298611331797070352003919219377086266776650533273625561783199745016712889984897811537921805878434912977790230198109269820438980504048423687614017163864089544409444638959649045409492320739974652810627139442888213599685189976795956159922911028292275059373946193438338255449184532635302075905780374892572497765189340132447109040122534792863254777838926998627760576723794607001837935048900091845343690833420739921649489492199433815279219252384240953187201164933578497929049810774665558451797759025587785340604502389267715860957034264121397502903937434146270889617259878498558274162299061015636106538466125048168668125525456191188003127449668907730327672975578238378977793671721354054781609990065921421708917599752293921436882147894395141524848071506138234586758450066120345284626462717723949460346627226440418490083569712855895702951456845169764164576080132577059474736726161104662617272647734829530467322476614114292503337588176744336574977150143634807372587498799063381984580540356295307137562366459960685776149946976017611680216504750248384175532676179154838548606598104771162492990624145828759826594631294811369413446785582046917500659417981198760122887215330092389207526441332759584163558456938393611481882903092068061575947111365278971535022375554240351120810463244164407860366204707437138901594833583805900714527202717941298885856082453190660762422964994665618340293147390120939383131716804422784148778012923778514185771969992907721095333085378129621038091153013935146396443432298896087123793487008913497270917897600281804928229010841043719857652189514820515938355736112601161978355002982391611894999400049914018824830245244360043037004740140553997876271767892972621985191936031467674170511688351254345115267877917723053272276247395906812333553177842089691876290941794555001074494383378476537808018972481190841946477612089968324487163184297256426982930483092731085127602172448811464131735908452675969198999239943155481675676215839570229217951992741372880043277017147204401488880396310369010871794589895703054622380012985080517895286964351319492366579854458568304577369498897828577221822578393601525849115981196161792305404385649413113182788371343136110198733754099719208441438546885016699951305724723962542483762979063168393317124201916528941513429347876745685965664710348571016626125243439280537905429835217452538174748682851050622934604490323075620113501035146153908208418475093008204255592495878344715727210697525678634310570440971509422709932355803619383811113357453984566482093317761108179120278696788407486027924518399580812047643723907101784766159583305024920797143508310303518740902630805759027080465595356827809417454436649918063262715862565473390888543738178750889002502585256851069326220288838714322771933275962379799018959175226354782241413352618456411593338182977100506440777298769052181163764861522900288475631618856804834356318526501434463083125137691262596291841058916067127204815098859475858276810549643050642193696044993604617578866917800899903755026495133038593386460798420387561399940419797775477471044304249294589503798034734151462121041424927218265422805357088137761088811830987423164380555401707288241086384221825342721697251650808278938006171834666828943776985956880951288179999023280801939690863575216680278403367912607537312966873710932769357795524664257343947490855823803694513673210623321792843414661148860277875737296660867222821625707726028953699655248787782402382979162890295554337538571801106076050100372483379305749870230097279730257613752247899595701343440615936475048621936008064819080038010864247480404892257907781222008144087038818816468120967413712506231803194705604968353524447587471374667693356650380779374246089936922466763933205074981284201921854446989563670559388877496659090894198115200809035264064822990687702245782395576279688676449942631891619071117425613737002660560417450714479205686308031352038209735514306689852210890089090348577195226988853560832363433202367793947939167396843670000959616078426752209596069724952704427466335011339056965632989353453300314619694190329183247420086657609951167277171910136776550616913137042991732923724004817296599826457222189513285226751088120631482286963587156300033885724946427397260568215886420141874271615473899463951934851183979414255581834776893934836133528221855673508981726894484811490019801786989625398654386325456397837276862226288551250527103475196783437350580382889145833635224428375188336948197812148919109112766907698818497847049536149322987525628878407533025221705660124030452252015683010471674132271664909035880784175302376655330841518264958845499103746281248519547737690522009377498634140591652066611718936007623856098532658207829845791498613038838876864066409970270057563618207101175310593843827902548208418295508130682539051511284433358918701099470152867891755762383206617474739578095176715989723209112339322032328911196958735695157927129486370626794224348251483624354217941231759478290395795675329110606719056065443494103561671483383415584236404241155440737788906252009487662884082165448123306976674807699846127174567117838077649103101908816011091404866359133339749736418234024606972054033790679393660079086273435282261159823438090096154010636437677930378621381905730083802389170543527874103408013137033042902762000267599570002184364011128322240347140877237670928237837622773189490641779947601181280529993363449336732796849074569073805359937842076109733704860252789272761358777569881576699862907427736424784678906894851450022184648086091660058017829975597990751209272305152292735948967495974046839825793725278419980329709978330872240436714708180759417106926401949800583087388055576018669059802139348030416618713903875305968331964620561953768596878505925015817384417421349653292796313158850884418703752138771134641600098187436790573856052748435929067750867641563613427847280249356123300727986227947139402179533646864396610839079442243086556451350059247282309129239957661821864061798655246599174082885620346422886552825470187546748373214831213328197206909538504540599743075215756427731948344683152627033144743491730836812759135475447377227916755383505078018088019933547350465638026065142913916340067848000674875923809002407396689534474536826159413154214524176435299485782329827421983237632835783765471618359202547488127644359590797628009902733847580913911089859341948729075000935633919585825502426995301323921522409656506515115017228864854115889141913530395036736223395463103790338988920868122023731678292221299614780225408790550389863748123126920894285715218294977138497643298283989583899363146209413656195909813467369635865001980455663382362789833347268174748796074274820026783724327586084987438911833365846836612651372061005310750959061564024939225075541079590219895691792835041761663669676889237420219025979198027575712478097074647873490986312219363862356276208239183639612064596673294537413977155318673562612981820315223142919260596566586272141157281144243089119965353035878055172027000321772210992862719395930972839121419886368100787853235950656508378699797976945413924746120722136315695733472492281439445409685574130231411227196297489380427787975784171866921559346561472605807615713827185089658349387883577532578918162253320791408720478711791802846689810513203735683519839482212677747568760793373169403105552625793252265257892357463735664686315020559212009756568272169598908468867813101320706594054779337870007531142122014447946489331726343703391171968241905073529597353620866591511311130288133053322407747538833158268192010972627192890009558634056902496161041227110833979696695812872665163553683235355689350981448639343168928891256226858714310998112428187728319696610155510296955090603718018811859132588577452116008966859840117452361260789489096908563400879193963982022990040072061044931818691344876251503106462086783738340135915903564146006095553716072674901117261854112763993909924568945103298554054721220770678150837074522607203863483919821256379914108512339142271803694663491427189314724969756250154525448321685715637001461125944485341711764060042639487187502486679112769445431662954492825999977408314699845092701132207257891301296779705831495613401190288115375530998814296897895696821629447461337950476927224157482681662112657101208771983126549462890378620933804592256230757974896472862040099886834309315780768753152379065513793756600144470485277072195974342937544735106329288413923187937306990161763858970154121088823999265086664096183787678346233419346925389244641132392414390356877945807418542310483521824045566390898981749772975165306212750732842654918689969497186480748755718906178710231071841586715143280379352027415242819259335039001703691251706546439572909167780403250710679906302447765781239818454664248979205529101747436390424661897412436630337105313070795077947157759766364926866493941235784913602594774744895322693705146327341951446736887549042261598043596668259690888381692082445944602777244530146348172519529090787732256204151545228535232963967723721385748503990676748143967556541565083386801610734202641435532787007941220680475120430263476597902993771795534209212655784532380979080393191242013552753497015391427100832617576797872190178508358848577869439886113297829910160042352067772629812735284464288681794275642135688289800670900598758032381062905475812580406462442356752218335639281557035175250362138620859638317569258310644346187804723192713313642842119092614324312962581405712227218536808321459768552827301430910551354755739601113090544189670370645493441243649859290180060717722857198786702354210720673991850466994730555464121419146798020048675284845724886884406227662329260382344576512846575323360189007216164138495978300384324056968497740639561882303664509963006030255933545772773410201671017603519802216480427576099152875956581631366234822261087719284131725833526337196201433673339156519472038946752370797550545143368761799428197333992806548803471836158935638655964175907113907918727653309123981760878440789698848026516972711988177306294731903625210250557248185536735323800225524017625284567473022515505001710998627067172395425704529349945802997993275219366058136094607452175656666223659213318084729239027788020844116567243058085175792915301430324226215403795247268291828299995080209040513993511351942816824360640259552989520085455725242820296367404428733942254492937263117524227545173334713285098784933376590533042219467762694427949858678611055687675446331658905729871430587444555799711647003397678114693694642609709314099251518976689586916858500546860996567827439868066723676557643845163341904141449868650566859972129135453628341735170167912626882914454192830279238711321969389888141154459319670918083039014120958094937248256210077221271579155118425015879323959768823793074447062260439291856760270215496935083466430664919882427278960210323402880446601264120800826361304276380608439621965224597115042540886867607258547292602786300097591156632271782840080564928201239661943243545033554129501563019900122256694300217376595500654675338922065488680311457083858564493316414823902402127793113469622918136864688903971424535786733131542771222515975282193396731028389347436756061077002742767980975951384110969829816201590791762296955251521209217042294405520589693804915456916601738865789653755203719693411510437071564703482207126190760355899536629802035437076424352670167749377750985989254975178405814058007875906290193768822186651516505553273371781796882977046304214522402543698146761592648689748114202804549163842140684250194441453652296063697072542395522839425348247957325840037267098836671752693090467820259303950438655198555405566409098009165611349887559662012549263506820624814684335214789651728979512779949284597040298669247315145221037679476402415834985553780546927004714940344697734560950889890392852010399023044817823850274475293626476037948235028607746415414416191602380688144406943304093249518454734702530237698829113958685039959767037344089804021736650192969541512985728100209827435172928517435965220045642803884615550648665324493174350143752767561254124676840726780829987745103308734988419652155142695824789039860089041494269210359611280036958596820645432767840441984823571932587347943744074292064598297772576165826401844253437020387725656343972170647757189771788427510398802237395651696665367079352428901212744120092311125999243217340252335095941092354836600698164640122795970756400577263444403676093835303105330537035727300941912460929862886285391168782782457692602015669901786553075178370900742158665960622023432223937264550175805959654396275040015952032749801088012542696016576144563474754257327446429511118441324522813360275344853887129204366291607453985223962505711791067082013167157262538036157112101064389176952382793957871452794147586864413672679727003423078756258596482333499654786593306695810699986696755927333350298379349037936170230296916755255564736134509689477813068840231942673265164997743447762480465875659264075341196991615785795715253080275867057209037973035496318448167873489061772164700827726501010161738880740241680871148691636669195200631604256068381152474611093123602765091051416294274085596472083737342137557362651554949715362251402807378228115149425743683705677236930351870018012794973666881877592709307274791817248344953702953025167765754748918909264111362457785145614241971055864876899151153370283636708805711342046406293900271124037028619624353082926305191994563105699119540476828960382698187697568007535330600437821333983231281378010718839154908650359757400144933375241433167276843264595818689850156055853104352496728358481488144201195360415640729861767260580346761323097280831804635735032125109043681602569641428622085971886330204644683303832944195648432610834957248010751582062163455036541593787155659160721625683564592266851673394236470451374321393252429151491022031501854997992339385207607170084096202009374193162379612190142064145037676261286664559145718612123631857068820390280873691394121652465127164297913722349295124624697832597193639184261539404303548424924414135563617487735982265958266673279383099232562362916120421309622209967559623931161489789319802277401643219241144887796144705677024635536991319923139958525603795731789201983313850670390933851138157124770832353094783409810019796495789950285105889403761180595904008423303629354912193914508077152237877085282218474061980607742050505503089994014535492100280804837827771016088254960071170013810367873656215003338396581154537167743536397334295272244738484360199820565562061088630932049407253952610549102385969719095335709676910639175044541466702779569936349960987056143825568988214114020179697909289476705156872948541558738464922158694249671713281403384144778870727701242323569310776799790482182262783440805878720016563387316640339803338675821036078806990425341568811485705395983729044991099644687099922561234551906209037604793752800293172713811200804760073079780041094540654494002378910755432786621254119656665825308758011582694192112398564202729619110054705858292762867403999287189143151788374338829884293750393676307570291977569079853392040735862933196594271443033753006853289085190427202912614241979603091993279810803329824037348707945809044638144347903369853341899677200215889182734866651580081881916061395422669437917556055021862767901425205562467297950895637026612347094900757954430501346095151868280925092988042800469127933978650379920413374408894243337772783752304524399236414037963594414072721340845954502892339963548992431357192488833647547492267398257382839832502003698212979706276110633567974231444987375337919203778082770234543884162482913601105876893493997576544987785103921900886008633447414681508534376136230184437005612684967426582824265831801200339808826418984377484058456618620924423440065274046058789501526350447649476697275416218008556801726552226267843846466842159358836327123513403234814631979206220658949147086619162942829328719032763055786158571865427928958987523172453644752144625368743609691875421259574837298931179294658113795478338214367694875144290017652721870404753950798002296495090662500220969450282206107081058576857030900577134401632697737334938641947150303756329944673952490059395757456577497363036729501619987713243914197254214339604963675864442030085299088315874246886452215811787082481487365746383930146162799179020989369913824757181203936592914261536856296456261788995760932123208779734743064297027381913727078999313168433276677754345936947188254992098671953570853623057638096465454784017778929522817821863317384581701840330283960233994236577988268628857051375982632916669255266744508744084839949417257205146688617222544164514480635102107133850451500474629078542216770811667626175947266219805409101632221406981818352496271785849879295640586622760395103131533475527561436993831780536768669982870846038540093051060257249601621439298041636076406838001003189913803645992994918366322954791686775554001224645490537777373531700993522819890246083600773947313377757808359840378671466393647251207281450850463208607893374539836907600920310450166388018970705175103424260456023443343909371545972618924379890081543748779050518983977625577972635300748546395015280542653605909810120510347063817769778787569745651256748360988969969616672550742749128507066227020941145996306381779058641767885094773419583569767488515692880502777138476082042863383808738852319232399270907740581910250981230952168730762063815005215277606825087146965031394058315533185004335441339534475663158787223458736481497690830282298480072740645144946046777611016577849895983027430997239505767333506663751878000268538031239310698764211825540182393806555174576788479810455401300238283506387377598136284644887671007768914491205149092163277144482829006970683245156435197711813694433013523907899909136316909383811141845887694518507457089999319463942163352522196250758807813561471046077260194700381189619125360452708547158148868059567604942440998547447452451737643253133213596209529116200658051074355340443230002795365405461742869034390530703327411142286707933933752244041739067918708325643040825737207531161796719074601571140993497140067981159832308089115496509106178673717509555326753713996181890853124216050134738736664171227343978663028997546962748927973542574864146893341603089107746155878289714338342296813578025969966180465537734413243415777759663551546791914761073852330607501655961321006450786981612687812996769977474447777961570705109851577735711204296901592005157068335209679168024811010416635422149398589782989003058640674245794276418063218970725820958389416792119131796951744372304308314794704062220138347807190243573023800008772700238871692229622011154811264550372156502547001555047586018825820024585310967877213335110238084247420669729806054971953765470342613233580973300797165665500999593832907543199290827567764069492394464396246061352053509051021937772806677966541645739788972464041658043444854837509657319124842680043505922161137879604313102336856352477752961823040734531303733387395488682895055903198363788333133071165474229806158226498090433010959761807604828088209700358806055048847378108315384366421766172763154921299847849597075749913026540801503759824246127750164993958482726920329554624043469083650495483472927155704822018961842433938760182376306911597314821107767858903682136424109771328255901681249171065270636610754863884676496432477077021674596346788063985991980693522899954323235252040409423665112641923808785386772212936884844325390524232952635661817535548293926933282071125823751302119437711583939886590182649015046059774297672686133248510174187881090230699295139638408429533623992515429223906736266346990030463970462772723412376960255665795237238166519862700553152284398808689522153302032930566257910052547021910761047963368426134593380350897332656792321292568314931400459833363458531723290178112633441848468126250315607224441562266311671722662872314170234087170731105194997450924483634516341216936544999937433271841817362091594023255131217659019667667062291544880350920982815823037598322678468329755761934013044901497615208673814710182614190749967794012154589889591455617525804104862123014794227973328709622228699302221873735085759445980690876059574121434406117820583607341606010209817526891714337360310366435091647483197544586328189356479405839766912524886319208747543736704175069742408900248225880974965770972872229743515718611207568703200797317078279764636467554730717655776716945189885316872414418668213608870594162474240161514838046782165115503224153644315403936292430806108252897197199309104742550956112805225462626460541891302098638977670857452087916681493523832562624306392836250593320857880409019537695058032980715207809981548181144788516896568338979820491962033091938450574503926912579521173653454132124309809146792492665931936408794754203609923538145049600830318226102767371316039822526583732826629542963299538986611984232113739340355564263358294540511419241948995865975178465514813226930426493957951345723595008786564252734737915874707053855109047801163597999326220938682361782297202737816939416711769655052191749659380258967931947207517534027022764109354570825936622673170312804174192694317725494019394907294144542362643416535356571552372891073489361542592775332410853483191694417837479564531219741289124069529600990599797739294468992461156607427854448406452899388824840988613358014416728431084235027656369302512104152278343556527327583702492124545283332136153910216457126025145179007025292711439611873805659582047246539970805901350967148744516606448795205515880655955418928551440938563626846386342332602496019092798485619017259260460312651204846499989466199380723055967604688085040578141316936836470454591159373038743118511732383384734160176171115281037740409643034090054781861127083128763125074009452702994980625057567681710546655741451654791846343551036001586097056787156358719881795201279241676268736829683633210596298327984602004612288512928120525530009811824689297342587007963596762319603836559295540849144674132096045162285426208158199136176896005527917566197254081755137085077397291941959583729357438595570349211189774014855301735502039806593045599320454683377920419637637842461610732538641675502407941237471754861204657622959555899862274783724369782104795552888393600203309764175318601248267528170670605358659527391024539827622069677810793575186102258903989538644507701275150666978344752892523234876861672297772594963003285404402167261770441283156918565530102300107651209428107089568679958377338904011507655545106624756013160082298921323126322996217951130489900083901599372492782795254162737506730473116028736178729283168443079896959795034981057639954099358124325830531170947749238394488557633969145276480767663429530661277299046318111498203472957970539355346281983755095584068608865098107981622096126972303226661881983325099240731961990697825270350008195611508739764419465340736035832615742493586050171062338653269430398176568741874066608983092076037326053262752939001285805088551233142996619910864335533534991116438229255604951244024725041107617520388615398768857660111301525487191528831156763106953031380164579882105602721317738785265518224011356424633497100159576625756023891481186906001039697627496159021863580457910155857808684540835864967325938599746166427731786873093149717903247260140492864541551789574257499924076783290638728216548061319913739328983099850330372103841744667381406687063329125443456619997200753521349636936802114509815495525274595947898853829532666874576952699121514931360101277998851482921846431357657719504657372510153770554941980034312367776354780969592923094850849035061764871043039579826362578397722681624859681261076699760717626906494388713450938345244622378470316693900271692647144184497111565608207747039725837454680979516876114037096503977336379104114045314989087071415516371915878539498128884920483870042831800176862964876043711390093028682378320953098734438108977099881302426926859148515672158327168972603263341128596796421478495449183962576664099373651087226402967383324629833587223283543209351296551097930680342226182770182208938919928559512814071268721316718516038296218629047187424139215079278990889010140972213074563040337243325975044665326271505168308166798482481277699764179166823587715526721168967733531965338094880064611583700099322203479559610431168614851948159831602709674164794434310579108527444938491819613874233214635275510062909183159252310036885688902449719724195859388694345476221534469621150826991330147043792453982276853053614576665308100925065793391743817082741722907323750183709768616605994678438568543623139125683711347590896876769419261164622070350726137845865349108268360529065358926837436361270180917492517396077706615564067778198270109510230158863392339102505020799799597161456230395715707093282953459772588058624477818240273706340146143407044382814594612007324999941494347552121776112398325890548785787176902995569725110677724269196563691016998843627404255473889606918767534378359303900556613138313435579737748061586354039734517355321775629884311430382060320468624832056416404287149442522557123289833223077833957471174289116182457383644978449922394097695477552976957669357096895251521632573562944885783275478261913774164085064757446833247868140178117282881021290438795925397120765322581589870147017163790937978569545028967336458729043622409828159234206025169025684674706790947460260966251899191113198268404429102232637807378057297859825683682108480757999671321839553623413635164185725949472250706301527741476820400927087770885440944098172119368215091543472839660009647385655594624406930505188482890054896896471434789445583622993129801539728974174600770233489768520823061745868956049160085284109818790192624772298619497110732474250185666088014059390097438605723799783583093664735542743571764258643297401481816000233045754558765283836147660394230697164454699922096530240656836257537428810741877309264826129419635432707029391031080826616981821036907787720112514046422927979731280495754766737299864600397818266875955350822618959063589947477196484643426918838052573907298741370898595747177109700806135077488677946245424531227278886309179711706500335880100123563945167013336192436020866374880267269066114172953387968389921381587590827815593458629416706415151748970005046558371995952265717363830846124158467393199028341826184566732609441861944653382407067668001479654992722931739514793801468512439446357082736987378437301182238469030540330336997844343477757366633135264191228743585457887920179005746816834623698258288183699209517241008763694413877934287464150116724681939399126546613371043013548749467734089120727557844705247990282927679341388193281690266652637745424878102466499387958776738550390218094700442296534160270776168928934882316069526518503064680250540589630080975924893791423981011881489145888003131847481011459519166791787130769224477492085482149119685319564596028801245956784036858165210227219512614241603657181670169542703947685313694384650889310124254814896971806556633329630587643679023488236812296393457971579057256983218322774454557342961396144679092775754562105739077893516771657707636792327376795131654371447340781678263368037836846022420692340866355139518236687451398269026545520179858163662690952308923019754986505168783681377119090759689504283724119327453249301160511664206577554863353144287810517904230967475583540548177160469379381243975333205967061076301726447566275633375602154024233726544544800903654118855862369645906703216132186251085775588573175741118065411218676729837885393050490946890600965900153870310356101458022679208386704933300663288597293684412712680760663546295038669182620037864264646379211538565479707369311719464267272915809538508548454752868308074348183098309498227714034302235410344056621804975589611857152976670320385959342817967813751344002133481856841909103441827550023246282451470776046877031548138945232944132900157105581227312013588217847651874609002547572792220186327487027501884678405544537119682910341355454113238298215901735419325661077823043530159455282994020982025317516890132486374493615730172353322693736840660902388129991330031486532447753474495235364167303764666948867487106135204274758032592381476456700812897327166261289091375603317157610223226467259898231519972589524087967137750275177628406633789502574257579366560100846057275496480043023790144974173985087728375239518914618765609665837171441678645533390360267460304703950488957566806374595213775834998548103085006304925977938448669318904035524488851987261844555428524230602120120685047487904694247500475270258155248736637475200662673873125776425372603826980696965681058986736418638639650426150267516304703162646839127688754585527545749749235646043827381665869096088231009770118318969301714423068686219980766953830463933460764334398948921428689765223645984961169195758666897292088856530152582224912488040914373747750572698329985274069285001827674504862037768572725603437031543582804666153108686330304064535371924403167049723411921075247101568793806959141852128408682878145161310351048679273886170705329164384241256027750628075042901384689724682193128252367422235944815006140816772892651699932831809253579421199073141990216728310937790756877372132335859404548250246944862103426083671150305160225716583751406081835147935670432120649030372348719954817068614368635610026360503479323895942634181593936942858907096386419871948622165146102064703394865213199561258001772835740010109399358776912677572504268351539798102609814794680488498442411967556841547644668626797863768039463166803358998760266878034003897996567202466765640648592620164642082225008576011802288202247524504745515439433582454773448663825431058727751113488713070248280504618589772981284532854937645583292795978370939856738531433272125087007599467175830518646615193557087521184543124919355506756761773453651371094817100343830558814506263877139540931496637839710161135345398480856321462876390610067121738582995534324940073151975682552362298598105588700737591609406228139174626528907676830507530895403177269346812290642008348721072212530067320561037897488716692313361624225124390536280241832537965590884610330823464223384288687857990686554057281630910231567627368779895177022431466745177336815515593749955454390825191409412224541311198044292057339644568678149293830115193711218274988581985514418604951186131958517929484197488046333878722675931996775649054046903382123473244482425838770014438222767510969559358169495234351299949127548478911693006066583849809151100461169794447275256583964163017835690370340062534080749161896173971022747725063516288737648157715960939479130887284322449686921101059686870045120170460433594115879381204211248459567225418924455496043696786067444501965864511955460188237961957458803514793729301342742527028285446681506198612558382044493443945162496590859403400865151972944887471357636760254375151861546455678045655422220392822595696176845080815059704288898463213986730875314702983732787671575692219619366099509639806365373353606774667646806450867891510282168345594400255641760264902503311802915564714693509987183119316834040255231695222552532087265399887296517904299425925485154946911923061780206954926732174635756157247401401019735687802851156310015432556589999574687787875708365204655620029214276265726990958978173617587518299215714628422830914742677962767531382121695006429958521443964640787951878546175232543230761618024985427539801165218408896895118708765506495401300421896010265379826127443239623240752204604628357278348877379685646565043863327291834288351926727381483467745847912262493295096366493363233152740127066527217996783652296078631978531685351624015686957865880579031766808584882452536241972823583693479188444751484590928274931299633958033075127093976816741828594086139555034887217058453452606943054096335027564313911698827551346712284362127122870955504655136736278739029305896628375028362381787662380780929529807737189557490890127833403570687656784870674430239108883782120825023507073529656117771064439899133903344658687197368766231608264918329025705619077874220502826640192738720950918024331855739515112346416160921832999471535548611698823736110594081881745139953896108005353489329408905296210969981145476872491746453269417798707326514034562863824471879321301522155082954349679906588688828981016375712768374834170138562387516243402920411421156313143998135622168290224008541008218162100397999623596005781728429885624651739760472165087166034349716619439622772126416855056502264318108270999142058355619686209375145267265153138432019315524390951493817995579994694351993367801119750580561347487898216482627488566810832918026130982161108353415244298167950206905859646509966778869765074079856378180847069157046950088782529108063688464439085912666504534643599909172635513659618783087387714360867182673584830507875856341230257159938157529693234380581689280848028724708903766507613979652448392137506233011707993261060328292052518103978519020099402819263705000862340692570613619688580329382405417072300956675645098430602249446526797690900422969503811495965681495515364881025978069056197215117196966874248576314582268690781043764021327306830674893522196045097250469590885100383039523812854189868567510950031093555020590954434700274803468466325635086255735710505384637788357150866460714206053010794772751999047673284265992968165160095743642583552786666432599073808820353975247767289531803738076108257724775362097035637412052944249446709676400741903869022533016458083308994369697779765448184859725951205286084466658375294896709791559273265895607631699387171465735234225990718562841746252455422769858061143069073168387436782068176063774382642926751564351068832995080760506200511380395333559984383073039442046998786119467483168056686798729536854149111906197353015949745445939447070811898249903516128414356418305264468542067694633810724542227746515224531696686737739590304213272335566188458332123137547082173012660587490990659858496901648271472332937212101701141353942235932202212214325347222461195829508563754143190252184462159546652693609542759460995396607955777584284878831398280449037031150111498938992425194861555774281129780056059428628898994723243422693575231366405352251199013817749561956710481090879219391082645706806834044130225694073197667235373947742444266045994694194435293314506780448158001146876271292007221494824854954471424540108633482656081859969871870204017757571193424882296845928833895039816636214161963156909382473372712212917162226849782316986597351411853204582459622687831553006856473181204855222752444812184049227108427762297141164269625201325423267848370118160709793084729681985281252914273927690299913196630659109770484970513256959137138603654208095666507771322936995034202220307169151297777365965131907003040561972772280700548314644925465297838461523507133875106237872230565653619250375889942948326196645364445413178561688950664911171971364526850346136669349632366947147237546146882726178638920916038413891933492777369789933565039738634374852217636816736438063619677719234253051037695650469028105806926732839909528793638060685993787910228522228289736493193668591476463500524416116517979630908205587096109816289351676869854070279552774789474293746090870456746096802560197150556109369717255843930419700935392952059105271136081443981942473903622951132952546612372726721757826937702770228567554571987665719913187213631567551741170341386579773039378829197371646898455799350263643961861468970625546270189440020748373259985917749589576477990326250192769169858760814403733507074411648456834164237752913565582936028409575755456004735989664939737713824513843970585522994066717311730869927780696980153374556954710279644683235005014776539765150239313970169045157264221639673084641555512520053000597423141078948315262981742224591123396779368879071769831008837285819812486523934870563014047421600816543544316735696811937558887171986387943619788319305087636130970628347829323343676644225168311724721074365099967650424151927037775200779505911831178361693417164645320153820008800985056261390873709852804308633203113886498238858064755972451594447508357085899857369605529493965443046300931382494602714169952148011332618523940657886498478851615056559742745579753466607296747418668334025715254774263114446894331527951470997116606523538176110040697158074119044523436757987546205242897136461835350322383642593381993811832975251606582578092492981766425808952066143814069095284927959564319126310963567150899471044982736144867723856216108428660512424432652221506034063080155627605682442797988842049496758305584067703777307978931401692214702880376972808258839218922426899438400610943127134581335960885104221498866435185108158468970516776365236855878302513478981844437044827783920083572697317639712917195380115048766415062027287398990088998500743472735544129999859013273347500046412691296449411461239503936741866520900866172751018473800431874510140089186647707395537556161808131874489092824894593237146419697322300885590454764749659879774022524030864436251870772626706052917522643116538734099844829324850765613251616394683088219188841443846964742460399458979685946554436715552909649590829799866852602634406286397482973202186147365325108676716361655365493819983106590371648216963567335506671533192981805069595473237327587431700921973390109212678775798282103042194946440294104625279242476685070613134101843217350132368751562353881240388579553292953456958833150736589575507294838908064390521561153297606902383296580551588345884920763679093969893910528161672429955731913705890487880572411863302120423005394460266958139449678735247671248203076697017583037357946486556014103210537308291497086433720486376867305447289521587634179995538339991702619566703362100474170842806783229798276781314821736982468408167734533685614967382609625002921302573055045499907492837254140673239799934263623925340986834415310583569293017346253316837229249978567147869529854234076218759352134326649123630230410737617556360619246922537839467643364460099007921166474375301924512547161922188121695914303028990557113631554158994351643397573045910210384450682187921705463019840599552075877545297544024153191834160530210646952154178481903802487393533218806792514309874993992774465020818880891600795816129711137495619179481603989080638464191701440042129935805598101742942012520368353881925010551025623470880615426931208017600390203067041326289262610484180490329335623648764938834628676443668625821523217024201317772763568231784219345326244512206643042539290533509220722351311675512792628194660943141943355605378174403413676162714942722776485941159432546027595272926061561464128767417857154225018272683732358631590947255082773754336461758662402164703902094794933003600363473783248746858865801102487265872787400128256355097991130836431190291772535800569126954243770987076179263442530151294625358991449707947947515076643587333152118364276531467911065237006421937241393806726946433254142292748302526948231970427265199973867776578328885984360243329507703652103324729729266945112929073062812383983018190553743576574464267434803774987985497199065669866484824905549849477191105664498987211401982870989657864962393867211837196268799211032301581053065923030290255741298990345393407389574471015388226250772326683266698725698577317743400833094048331614791289693629305858475852672334999711843510754072739637460731026578741869995991403336185745728701603534623776267722089486797612941776984854250425123387920455879151772163390535487849657080321218627138908005435795448482419434267518009269637813190369068558673344847023595813396927048211119932877631580503687960134822330830538065901038164632681847035325032441567201971102065029887576855509032241559166664101245438615486763272581638983490039405536049511902302567417588643058450885843436300417895552876997356436845582735255999786150647582368686547921776181855621646617799371430384157877843083034413410387349704493509255555863594091265008210359947463390365676514567195503325316612011913208923606136131289964383751055960746649898952940694546447608748607977785932590147776190484067840303556797999780133790379179915367349919363044656903173545624381840389445314994516376718230315163726444351133876902003414314926678893854025846829501532370972637110751894987299121991059493436075045416970556414254131769474995531171009821141949224285022452031493596103719546821111025867920786088220352148178561172124199168352617579131254144207474189779244359348209904398490554768881586789008837003490815527970547413006845961162562684753955484418460314835909942747860607199569933602482293976319636004966971541165392304418853700263638991054211008354638766065394270588534546803486344119091221314122000465278192528237431635111205933762689281635063306682611591960807541274389211411512861978595662731956145885413523120859442356561715255373272655435695179753786578495846002843647286795919688559225012477818652715733574364294858130885527824911075762651145106469616345132910768196748117456230190438993769361718001024754348449887400947188071292532261157699326764125943994906488615123305244884312177851195482812175189030446794481831783021456270893249542696362474873025962444621340996965482734841410825381512900946121169292269257372704564260845072624819053990001463233897384475643215728373307888044100146680927696664158569429955689865047480324567943538389134500038786867795067800441940534966819827067141987209803991363122178119125979421154251915103506345383297599440836815039432418031706565636192643287126878678592376658506363172291992507248378302521255155275706531863360893133730492948959285933510541974781001446277509047099250609080315835915884848739703906982090570696779336691365834694462506310464125244497381154321681347401216364272112290506325559048131789441903211756508674097165945934614248611491620887001344882263310843520032664619976905732250571040368910414094490097496314570157730850341746091088813167378390037303312535641873776192988968760576282872009940412778291204705677773073346077736399829044618609281199348109977636767650475786755597111402595838290784486747651997561643287170697296018338067256103697155671972787615650990256594962832666244779703008067300193425829842801894971904885760838061861227208182516804272946942490758785323524440930816715080484790580490077971503214798477184871106028429272950602708055080650657322440380331936874376612270369601185834754993836472653735917644449339915205882593227948352756473653799442522808208756047550515177033561549601071465638054962632316953561871566188539429310048223066062382701860624863632324896991187698431114542832997393159745747135341466625940315800806544290956820715701222703251436061177202010916901721017827763432333295311812564240505907256304708168805262765971834147361839046049202571280866017357485842000586094618958652613276471709050958496343617903232259397766698782342328308581948052443558293239591402022246123682234043662844915984351737496293605173035177362868292485073735572706086241022077191983359094710058735025133680190580049411694713110927060188634160656398102481521824667738840104430273394707828632317997474316035752789143639705027059320608857795002850573366632884410063732742253600719509665717759105364513404558318248299521381185194690780056999158192478488038695508888795266659305645155314873689837147581688233257575088153864634822813134004140101532301643889122107362773862997690188717604691130398218724033691281282566606683974907675148316924148088237471396231272212154752745074189574944050640565997275662679480974479089953008850736617708649887912765059272861320448463695751077232417209719843803161138871783049294415430539197542613801686741364763055272184846500959268720771291747588793508772746573182109219880890178200388889834830104501560640967835855309677041626161617960325184270166053822559726999109152359865677169533799356026318016997852783574452147053019139590303290788117986269919650044817678458911865016720380824459930994042496908141656281957716029656930372645572802344671167433048431418439707055716751392012341386529891594804229167540363561897709298585808159915092275862102512473042808229599003670459542913325828861534783160540003179088243255919697332611926656722178947003414736025019697353602209209701513308106143480379479050104659306835520547669028743790505650731029667799518545175266098970500945783644868247358194403778499818430297848563862941603803879640554921059358284390884571044870863621091055613014802308225205734393205560350099353317831609917310284911763969198972196243519134004182470992519096751499061977137165723817219235161005274297890139051131767806236082556669710630152600474538893094996563731520216073888554303632815006855411946042969996526216599619867013498102199361138413945771465454676292264230971914007755123813799659255888127969174211604559953912179242001881649423508405322497397875881546452909786971400065607551149686213227982211182428165604365510847193781590486892760926692286606723362641377476971044500886964738454289105487524238284951898991740489825367559856699647432018007016347768467419576634061079556850977783485378525211502984568827497613337561785921256791909229800470095200481244302738600534495455099181006845784588521499198666984106078295976917389127796712699642207271314673247672220139536305192858572568282030150176684817032343717889978957676453030394543062541660217322461543844052931667936145409751204763149547449256635962423049110582734455119207441537595000203845466548582314887968978910077581800382527262551231228714338906585407093275962033974468002974646060426935863725526535940690144968868662982408289835473092285848754476982223909970556147739162465407881819750887359317526763514252282849492087955402437135629243740950791235875657825085332986126813528772345776432985582760760490649047226266187428471738932310498503012347856004923666369072007364438599390312112428530868894010189900462337410744492675606670744809785791797027457067631391990806521028547747737028403873598288039250893508122298295752130647356624636419423756114285957471434719593237856073394794927262626518452270458294434348956163036521616253053694773365566863711125338704996945531733463983342743099899258717473073437390351233480727171332257097914416645734247628037670445927155124828862860654116214651640438111265136438145152770953834367116317313390938974656591759202968131928151143901737230341481474979224973248604373559060701256342779351888200245325189249329509482549779602977186482715273142178255099619860324719421685704943063425947335416336023222233117245086612149407699403417957387648645882423500701730225886234219735563909918420471099461377726096594315279494914884849973097225283169769451596766091852650324024996302856652638500470646644118421594956686717335572834032905943766086804086389907142519620975389390568190205870057105471449348641597790610234569566632087279984010596112208244336294418888650532843371353526798527228958585968497664414301025649486453670388166692090915176711725710414178332350157583945558779896298831893127427431173262644961829459873992016726185965732214249409928719723045884279887247376690649562311958637496636290196890997079454535668934112618158251292975797581187730082046884842465839972062022554714701344138922254138277398725276002217151365998378911882649433414740089369494098405855989169456804278511080461136959134683496473967039446150040171358623786160679976276772490556346054287388322295340029360985480304429074014747114734476322230660352654761057211207279570540312550203858855968922647994712830142064762232185078128219736395450559238597594555304535111862096124537715396045133200310896611688957100739737801340753023935797938862757622089273246389146046999390393795646511166628700885744452800992273272992044941817901934346101906165647365731113479436765470997161032510344958841895103429806856385113615083149122867916051863983152920602551869667943142774603538298742427906011116448539104344803692059668000932259215453259489241754402357550109756201984443178906915385281250657947134568398250444832716524965100598589854754874381136357297288853213667637537425076512380478636890412700367742775774915546722066850632639406589967137049787839212612451409143946990612616411408752340991695422037155212681567377082266828051081711161285427462484534015798167799545662685302607683080041928582913565852508526532778816090024920826433896771527222781358040093270645864112897411673257408903984610607943678697394956376463099904837406610389899597827738346820602272314586006585704939310445787879314073456479022217074774032250429708488768565919471312980950707335625682548342252559377759159597428366697620464521695483241812626687039376165665448277546611918302839958667248089342144753337898356320556657920459940826450548142776760920706006964305159027030635231968567221402373372706801587475618822507867650952176832672174237687047278945556830404251289021575816589098098303496779859156537782900357567300452656837119698658905871935551820149382789292626600497012734896023959133754313615422289421135743652921215647312509912943641708027016049033601441359579609482465383167444993378281399903227114672984789447826845120237716976771578695564275025951605893385546779982529362337231939874875437604952544528613086131945161833960806895395667426841000480902149334233088852685160913144654626354799755858579178997713276715906685810548335692529214408720928845936423642812554509138053281461737470964694200441364260725425041974143036939284740264865997159457906820185587092543734239516828020031891670420638529342575037378292467239168992592946258945212249048577879847622371978541135280050025502992740269549987092427354184806579919821784984997582677429002882976751712739585172253335331305945804604883201693236844501620273756789176630622743999694001963638356287182592611219066820010806646943681967467362293922496611755389307300574517779555300072383074390307933625494112097013496384359041710348118889704154812227992679367793783649600004615611609171779998197851272377269324657391458981737501244161337817233320039278195754131069247726260340764925447874610029191535237651378394729721569332181296807059199780472422816492993542124347607848538547402948459534890527867614858470501456558504614516435413095421489178742386941191840326069801671217152820222715485424612967582998550820797626673244944037599025539557099758080663496618305821152911712013415635199999476094533897514377786284766944332091297544806549160481501996538228405865871624536954935806938390712705342807859446700833167792677033259206338473733612979368761830002182918319731165600693744749169277736134670959353106667504884738454858691850063127821740244835742171109714702293062096038763193696757663559527588119781718755345517578547970457895270457032769420577182103212931990550486019514588384828683219118483724217375795489534056924514157660015298887010531636946505856272366631144560180534275408850442655661368233562936513948609280731783858770907838126722042235780679607061477808781377385632694920366002869075877140950703482296959453344844534695110182868071207762681002877884192028118608896040195749002938672217876040073027277741668532607348788487403315915582349195012370041802049363940963310197757736012405310441406137322030190034305300696305589241886323202691838907587732260829834849766763097697470385506163639352529586767337759594206716291038783749387984616701247676234308414049933364662837912769000595431007349604655763971816921478214063836317919739498859354510769591702283101551060380353115876963699461514916007484841215821422641481496814694541063122576038256726956863646169985101628681867942707067702416642085235510623395718235051607417822811796092722877893879255451005131188301012642147824055613259561012825252178872262720580092208469528030380743031174888240780810713900193407688639500087390805456992849955357851680666711177787018776699207548468177251212521900076164571596415957539462921062491838640626036435864488172942503889605075507507158597247331033132970981963431887052265218710014919232144421068026508729237596033664612298591117432522462505920584463658054307636645388376920850652056618876603183760243765785241710291698851639809163285461837435479881360406776113207491402928411040996530584160223338425514737761512026641814053086207203093003647332306760235101599903049107027879473785469312871356782297966348679916838729690432776166762049774868477485703609040411949455515948481826805962145248214670966375444897805706741821255667823871660946874223282967322222074152295700937343768957706900527451726485939913093671616173355529875170813818587162148261955756269810902339276943431328999792098568923104637297224405668319313285580730563476690345832286985939914411179959512279605959833446872664623551451021652070341244401371186460789663800868137640495764818461840242136460026105291750418530905986019046482253359520341216566572677429418514520433990460247913926577212621547689091553023180600305860101295480062389532805236835537258020557878867011258615279206756831379173593661668693137247622644418658874153764397335028715390838606956727225442877595577449794050147806103405945944957116861498624581036744036451967338037264950311557001570172858580333101533814145826407468822733638687949317664618941560326958576594325279258069550623404805509670981525074398707567518361605307203613005599147582044305592850569161926885315534036211649712375704309681191112153189722597689400005892188280305441089724705059711305032077833751015571176882963513706067323317274128424949972719763650336334272799861885816854995872382099050740010609139287984994945787354177055998569716577010063290389103043523627574276534750866525686050270630119838893296279860586043754860979831262125120503511743466924058066034392760275271079285828035256468944605841745884528402214583777336999287826884583583939253171137717016431333833676463636450473158197438330857217944774375712746011058687609188911833271737970975896444652084816658420118765466089633337606312751995336121038882180903358766151830814345855961209100209646806328243951057147106206151603910027553318102399801029714454533118953127837341888084873033695750505294679991947831818165869513494793607728497554847171404872589049299846566850904891121840927217910948616609273533616506497051342311868850379961435801167233261537110481510171278435991371650725131367630739788290448352416074888324699762504215014718361030140177122755788307114236631470206061627418932898456679653493586935980521137116743234305947506377490721558625595103778530523701203070393897194579137699712447120674302182308357580630820807397313838686096056291556779851897574431503511723708650885718803718523893491634996324695274657563317229976968865822468732881344051271353204366472346429241855196373629576096482609181611716424262165012199769284878513997041826665931144985039378985726935179654192568620358067495619644814779303923691982263723142325230691194512896636607745278216515677609486461673124528928896774925469252443828281905984169442178228550574570465478800315811351348212396598310073172067955956323270895808066449751397064867550646239269912354770473230420138071399144012876661924351461488293284357727890740901406981414519467312353305537214605783775554404781051817057055521153466070597256716162228768230434432986214207585925305661974561097101336585780398103336171538476037945844899486857662215246396567283931712939443602932290242019028349733381260083614406901354239688506262164655434400056874385569550458709749179435442893040686459899530609599080783306181748920780643626009663429614514038434272449761787906225438171115352051784799087242721164366423584972599979689095451614146284845683467799417380661092563928345584876165910377046773837219806842495208814608226549170858395352979277543209639014281196062291022960391409361974510408279842798510282647322655728797928398308887027749372755027881695970916791037691108197160154638097319990972132907720065924145400339039227454008288136877514453715741795001992560918214039920659223906394577906945317398249409207166627452676449120322093417927492000070966122669705625164826303380932137391723684877763311088598950379756156885772991601784392925462365750687811206518038501159379091930579270806632286456362215741955416875608193259602694675612227574553282041942406000152185949848841657357711804310851566811081404959881370139164732888468355397654498549519829573407054214474650048819569626425291748989835681608842201451231473057389293951620177046134924408994705958175344916611940274607135805307283845678163160585500759008614208796795019052802289051985369119551833262064154904145542671002051321229277493018586819634767893295395390154548384322368959925072867769680102886061482156714941741562547259448559721371072128172341995835791721638664846653749231512844837250793140274948117257218173624385177099627186149258885149913944801436377915588810731439405090909699856554016160499392857230018338505312075580613056484564896728075967217306153486653388109014468223214718692075595632246809898024797539776325325478269220238802521917993090232505288733389061169086578455959883408677348498085628175433597940991466070821444883654912883398845924365684232133219590784689146238372593906831420183449622742399052441784945004150403576901970381322797181018244256541844267439564223083387857507422403351703796879815765725957116554514073497862930707692963589217767419694552159685044349763584570585179058336870967548403410709145178872795986901017405143328510403206932515341706914719026146628586490159901607471431901975173123786668352172886874315093886202826073245257744829245797806648051541038683270858361579110522755444153841515084657240011350706974914079840545476148637775073930971926174680707461037726689253147015494959559983728033418491401908764912624264832070075569830544420589194809856664846127616925815629366281638789542195037203183885034041398984550160027133830233258942847121718895070361750414727759614934129654223670410398849366108106060537002167609338667127717875910209542896196795399536942749061599617548906793584096778850213555359756646981548601305581531002164645601834549791115909506564185605070917684331703469074523263929979813455380968436709039904329176196399668647929393690393992448693833664169180124725754119888139188527450103801525002581351493292349210802030148295157198519939696973887055574727238122870965465348915430685942430443751889247299674196225098385920745679647701496707246467861730125074623985983269237131652455170209716106147810993490322557263442616401275691387463935626923414347543218656240933698485699531717920592355088417212499389896597562578664745604259380720962896472022552044420830306022562112968835852546017996270395099763881357209962912641057623309413862695755797581919393091094519149978676105991579556198975455371136153503204949702266838227187952698020652749970519782094290776161433710104272831825096244792480208375743778430504699518072569031640712123939395349561929413898658358425970172660486872052121555784379625381735106106690605103135881028231509147508182020805042261017342886121274073567427861106007794432252525333389516518798918354738429073347669342046928933917575460768260354002148486734298245719451829171092978725692318769096266649448501894729741195696370746309779862506642020518785727219415992877846322801195192999749427071853282479872620941227998603614030610255929043057140869605444256134605899124820736815776255183415687762159558372281192576319193236615219836805548792387721537092049553643667931327381729097573614694603049975216386263262478537021322270910640063434004253286142897809732256460449057637592018269274709529171607657301925814942091616160330988201164688809224954961444778195264644145124861534849991438803576477976995249623113441763496714706502319776930277146208338213842981139190744587870090964528391289578552210230404643730986357088730613978710302404669650963255701661634613762077924354124183158058460441355284608439599305662078306956624095850146669251783848438057986617800923329067906468149010907613780307265079148686182172818976049928608594041303651964979969491195548486212492638514330307619884329163397804710781365044152636264430151666582559026731354359115023507095704413014413677184800120373583843856358594420208813833833991812186389682122671731809592730038191296636041074136683037807815484240410564297892152200828450201426314493599564266944477339045459390723684662432862103625166572983992530233463948542535211339259905302969469963300349864194557037987449554651674704166891848294602482024550683919677060219469681660132968532200760878060962773457446743513790266215320628576181425460197789890972117513362543800290328946837359034301291569534739248977993248089910035812317670737390920527365181054453617393232688434894255615687798180185610654854999819941528979935139610727771921176768336042677227587413163293310756813290402925587935293288648580632395341469496823369835981521987647832331639979748383346310892186934103961047037309690647618649473824708580493625894412608322388749487778376914500679423496131521957389386544183807300619385918516230331385729302816132800347180968189702444771659284038446837907245588682771454274135036516523755028329826240875410956108949266581700874976349176088468549571711689926501541758305227987454483247076197680464782696121944072499486288077826984817276835405983356033421464222361953100197318975561031999030704724272984807960424668224293320505323783087141864942059656540785234107063503950990467081292435880575478489406760027546203300329474524496643287647592963015395419467557507093589302680829189690835179222428856908523354122361073224202225751599587103205409161833915887513631330874707983185159935901815045419297786192575620114141547012349233159407446356955758023533939531668046349548292761677530314902386169582363184653212488389183561122090452946728729894546826996437695770213352130287228068642104583235733853024050587651922925566556206295908163108542744627343595899595558094839781677323547516752366871027599583119605611929615949262056221472434485156115509067455133126785355429860327669029272136472346789699217959301824080714625851239625295589880945777092121913097319886445919312543613262734518068557550902273184344994152670568006384821221568316093520114592483695082957808777509070107359011116261435439598499255701808658484448339463374578609547165845634418473353983528687210953938285881500765603729895185454204226058374994885544641954310294671180134007389624099386575721771468650714552110662323906588802777733025084103041691200858960289589009660053356463655654140188223770980125545024086687014258747236058499111905581019148429834198572259810613509226595655835800249961149128119387320675125028493598807665528799308379405868541335612789612387393368171948489341678702440498139645303652592997411816725972964874633817536791450206928513930215063095196302553675974580167509535447323830673691579733098795539310635560939528664454448543545580817649725661359900384873951096158993993983544212983345853315179060094552259413471759717716372405546662429146436148176632343635325564486002667881936577442982520853185554819897846369280915001602846743699657915777666325379479289270672426613713754269332694003949923007591151926171743859912913160698167936006073528378474269924446222530515128780838380096688178253493800428155817705999581024675782961707791851494473292925198934123038457216172458680547465864377211017837910437290168476228700765785137013229136225345985957691007350797346991165028638445805619956956747301308257547813519097822045735467273457245101095154358388752698329246707565288736467523961464577193435872706545197225617541465221301912224439599534777398203151112832368446271601488156026631992628863239760017500049363353589057750283276222903257607445578622313936871373562095688228463956726198284393500268639713044698403974507771120707488840302554618314863163415890789834104642478876336972668865174698193280860602169776608281270570130637272145023829723026319305697627401967292425143975728039913827118228983067117077516530224718887788067569695534115428457574199576137141580677676358751527545291281852468996041706171234434443082134758224446307557403712700187676734709552612191682107146689418970818724700272671771752126630214401175571787450411800717251117505399821534056203294952579716217822873581952609493618995511068570926006541286264570220688355908953539837173344104604103128144608763560003645708494578307194627060732949641131025316496548325319561803238758767164904134159191015708768650617981885210572590948861000983472796242601466854129197591017662896238958567530192309322711901141974924930080172538141885338721776229958534281407218218757379091673325535912209683683978688929528940265555927003582987389740572803466164403797546904588003505594783805505670782938351951445033136869060787338174828509259086402030781410734331703413785079321011776565882284130025373056742093253006703375720744238834570231991843015762834996822678126216366289896436402437887613319592221918456414750948354857341874009326854147754161052502922096469282650686080633132921498732477379707916568295787105763184104272929903508132569195589168008168055915122332905734582515441732405380764548836291642259090087587892953209688721980836956088623969727429825597885218934168281483173378840670052282877489139443471489985516158507535562537274809032126313681960898270125202378142136432387623541542637034517749169985113402442587269518839570926600345311487274402379132552738068836462466301557628655648157627389426110796384644060417359596161746228161173180901425164068451502710718629843361207758731824869981861671310283124374640926180692976728199288125828797795249222474434160203225698458453318225993386767270347448548283419056673800117632453993714691431537243938093939403540198290206996376533135560918417572234550297428773203432768699229877958401728358909724514492417462636370950919127994886148150793401261839521096016965626264221748637415945920784121053656773832747301496216918732062584575082039643102766458987409076105173494608370087506178146538785083397401554308386715501207440003985149373496043244071061314702780457218959825784398136117544780337732954844718401421726430553238451926666501178458037153057315169122550838678876066520054196602547415512675888521401562599802030156684789007312311629863582950490717843752325928761115732441850457922747854856041157389286154580760742199553186378102063958942716561409305474707866553863441928081902220079931154057201650005610604949496102786797656556060705898582707830490630201325435354207631178491234548894214636394112025775307826532516285943141207515262168579775590537512504325909934099981944644763714899093798923300415410839567607315018953400346673517754961005550656744819512642437125215153985181310210224254399874213960559111919475360764420096080212903513159260124594279072872640389235987074759591168861330996913198003526247502068344112613193587221036606980712808938725266378733333799708827818979368888999746697182819261289619623077484691739011731349544695624685673600262730533133924345851450221666618816655397925341634488009862848559634376526654177226290381263726558385312353851267184907560738178976701919318069194335079323446150300472490265141058577157462117662965659818193188064304831793867122129576171422463725856807400844102646014868180268848084829298890204751565660997543102007657033904986853666169460359136355433839975257495937386108283316119563402835124105795364472681493632910337262869901476863487590493338531907376341445618424718206021252865147451202997897772128821071562381555065101530338051557033316308770457860029865225821215156970763441682484995410323576262868757515027439441942282154999826498850132312747916700246400744790381072168710277220168366643150333512011639802407816847367706015245955423946710150974097748487424988292002406381561688354068270750577027304179599771374194164598133759931188939958652915639447500109037560339654782707756354689125077907960963114650378668507033370438473103716070348465426987958800225582887429770343621210121582610326865756816498257492288596062486044958904126770025047021065487761117256345994826756774014591273104238117648590128858899431227095396094688021100449651785892601865351050841763280663616107535554539283078832422902544245446020724060338745246912636981312229646879247335604048732667858070151329893440934905647375208527679712047143271921997711126446802262780377084747527068709194491157406570879486444583626131029265919860575101054992190762569946412549169057351067169447864365361225303811995900503383389217321166373874894931792114848434119983314804063040218279196700978644997473592763114337605661449871728204613436187182171003280250673919073427622371027627903981878346469656189845843758692216281579792495071099099854535554538746382318041607049846864266269234297815581966055826711234383580752643450253411052265607963314435467070943571766063376018459084511206462480247777647495010181492314838846419033586279392097544558643388226010191906537045474181687317078999262435842821185744400357149986142804178331441422700056496655167360462219542473775926404738909340857139008825223154423755651902270156934269342800886334155578686906639978752098126721521061194150960562236945838944100456052363862315382464180981671091184717072604804902040546843085714738909699681058740392185723104650259544074385860561387728074370656924185066860187345495869131079870709469483586522430517988615375447524378489956082962249135303215034152895775216421279087505625943798070782451666424476903410524720231116889212545282686153706358421223222273291249999700548234333858238564473160352085456444935532501599989657371723322244973029016808576622873903188303547395736677449248782004119501214035021923531864963608735222276091117753672319690466646403806233874103747216654829002090114055678122587563843989854888792799780145742941080971194455970779741920523259435310655689621837491381664864418332553159590709362569408692617682744364797599932371312727954335796125552600569184650829280155631812986129853031010099088605977849628571453920409468592161377747501096244112236715670633294508952926746068845659327155966823106284698849325867736775499331533380958070946838840936541595166288874231023837813471474201262078514632689187026210497947547987588938776372534862507940257961440909139382828801785270153287270299011912672262509815687045010153922293427171121112539773316205273803951011336498253086784642640790595458892254972933593548248681484349517027458832626634988014578728579971116723173173207664180077173489879644812456551243566547633405428793400708149504339887027550705259583323641728827769299489113099165134851202113197433961582096543533535922861055125473587096481344409896105905787453841538190468352766683350515155718554948138948650500504401900577829319764965162892907481790386134179739232771354660677640098417019885690593851613291372828469085538355991575473179842812753036630275351273196238636250937841345314083578516100279021482997205859283543927603838761570683339465779954752714639001870797401162310673771007129229434601602930398846797727084851529700595061960578629377698414138585576051867946460873939411427080107608066454338305978527310604515948730347480656123517679542387960027674569773681896413459666695236086079814103857982901282955897265758704525360241836044489022398871616989857160098130111821569894905226722523159188216806330204965245786827746449558106915913277186027464189869331230281345789797862236603582056471422260993690860167536108366548520557389419954571666773503023350446876614391827739305041795194259733708329052760616203658885030671180935027769405493338606940821605668174206479293129754351481421185195992757177404032703653325643683374876219399042867920985725463559238494399183826379690834817629231795054013225196076037406424686529384061776962885224596622884915729026184336799910632216967163016089708306168634591980171789183718026070174305109501946058738425843493019871295518305046590368384926713403015823953347382485192259097980856304218341204273469188290744477559399669462237053824895433079096859856197456780915261281786037693563588951737020481974653063708643195371463119804323655598084524795431362133716427178322701067095410681824844189985207459461022671740657828584411816773489747563672072434615210720832753796304985056326633289160261179255600373674297515301677557758574395947251225037674577997849947166493552681406282929298614648316354322604201069099631197532417513193556445964405571515864088324193042217871441785031848895955859349912664252758506190773545640535795524945854343995150165635738168510288962128333323607178277085545193517335695281537217059709604887585991109043883671318238051207023010684811928671309980977132157093618814751011285473018842344200406547019972385881351189743738165650449714905710655948442369042127744574887906872566809112931286684732795473637467286834953782278447193533082965328026697553688238109239488221118045876571742672315138094330096760252294861543876302462069533531894958579427111190551429477154957542097414216790869979246693077266353550581698150951334500624459432657013485272413491548025054820013258971561062577538921795153185899160272884736314857439640781722711916655242541958220813670742265646012703897656263630401387234087080978342506638206001360588252355688775601682986745800301409048504898435273763387661445300646757478498190091536777631062464457746078991051082775860770601690979845931291314617192985755635554091968072148600905643528160756320711930173904373937270691291255991930371745838650624216957602290231524490321216318294262261960848279442911847421318356614305160904772997117476026674149137700227005949190773474197555281617672486646681985323779324260724869421170209481837186397289237682930450762637889729214009512779482579311555482003660145493441562816590645871699779463555094988049134890046681647028314823560688088963851204260082875502164506462911038128662931074444685200279006261930776578524296625710681949289013484512999962491000097607016549322639904873367501759053915070864824106657181404497448464886648658046962574509406520721757627561944379451041143055742409628911463794017713345881488318591079934172973622358452364635804679300788459685873628602796822486566174170931705208215913269982013014137917019718377826379417918784402431502212516827056921212902747168802709472435467504254030633202310144952807736317732025243493838708524540589268159957557814092222562497995166642835481240736496189440988335876359381308126311126454548573642893777794913561243611818317458144121046457623191467323895584238801767541026639338790505943129639555706402842602733507789674891169242774403732041951485329011143704236283972251866771203959787050688152091260287164601814318575430918316115422426615598200735133633523531268372497693229279342554092411039539615618709701076882185396205934387769984601719435954551162875944839575154293157511964897477984606241210202008601733694432504137244865282245160064880085075942716809325858259124988434969480267860514813841422234116129457289565252828113554915691726034944363318525335364557606028279819880397656449026831451031853560878411314353442702318914475602118813760057356616787061656278187692793906372591070049317375639100305173587025586882805152499281481247721171485558140247703690321303255028266860452294537961638343212540993442307150320531817689815228753524836451628680173267348931306904430173023556938317001079805815959528394526794398052520002572843826672932600441519999805736666519047894893072954408367619891356667032502608495220783803292623600754701379505718558314417246761587963610409402366122411316272103422884130221794660677260399461019446063156359763467252612055707699566358918902190441715813853671794463299577597236170512288574595907913748347072621115614918203362059235853325922543244484917048509664925472626176627008719298748693979216252319321736830850422444144488090279470921333798719942623260526836872719425178507598173926773060928538780661737333911443855517680098023696443367480496911777564156230936822870463770445133029044765973025317275815746978931403870379482402990370103937237576104236526440860572667302425039464492797430921642943198997252918835464417410724103041033992057433921035559449065133560754139487379581112394923319337917537530912660953209004565647659530488854329555353188301377563748409031177912163828255342738277299250856378408276168492806207136929085906945241306610632743872523445800551912690165102456595998076867695925722297405778682327802631401019724547709134884661296000949023993418191875118333622283433563443731632513096856784686181781165089765204049361582100271392029403043483851977382591644535029052716223128066700729928012064132269068747583994049704503849557957786836318378436863041659975143373984968968211920207522202301822631258134655097132443057793332562236659719282819841274676044040337481057023948143099243395669952519403267058450358976021819160026761199158293029865465229329434506459893649557607267893256385943334071811938015514474525273616614781161945916336123336141885152746211507228803035931252349691170833143654774947797996922758388682566602469343876362403164233268419273550607960727321974494479162243740774596030433513587618824746476308797365080786866952657457886822455320364126144768455416871466418961375231930774162146668149542571426656419259676425982923894215956333679804770700401870185382042725569764317496022783358794922550643916134833975045434788149420085391910039286938528224287324249899157195853758245934773283146984420014457439304222015814799659516012983351668145931525030320843479220074777102190370731543961795262244795636281360074974360504221317136042962545415682642248004422059172034948486810728492370801730649652457737469411425497717582729943747076459989061785142235509162432723187171293038878707226438577094185764983089799227449238016605847229033899003973754637139883243647917223422014462309173562567370049128265423652308178706984113880095465593026572041172686816966232874828740809876428845063194984564876628428968913919700240048524052613072458164843946960997904906908309576677785684445542445472325542086695418863591909678885625497758777331692665625965071994293731783309555069241613486078377029278188063051575446759992654756910551206668970545362124762460253379543496750052012552725483509387145840333623202318571872588782076705050483220648745323572335835487359663229417130945241074396366866955169935061486766169147224703298779305758318466837204241875192338631017750167764392388724559535223796162532989912787561010396840641386542055704824717391523042291106390354568886228179607594009539732049759000323110890397909109462383949783103712733909361286667820342752011514085712041337808326005251052331549276289053617507883357187495693329794399428656719490079815600941070143347516980558083477417680455350353330701434248738113683288713952989623631497916664033544572385113316173745779164868200827111218156761583867809293823093724027132200434894075400772352423657345750593082178792584876977402215837650665021828017431552104083456631353042891478533466045407411095835064436963258087501147137706017324209486791964569678219561043978678140821222043765755423578920445732730508826456182271685715691539560787192658045780589893924854965993716926618652284887196046582782270847502177434716142805473691843890150972582723594146930505466802920688597502357287815891393756579305290709416594629492374987652009776105551576160029345574582827144773419866782664122387180462184384884522203633688305715129634478880133815234385258399286731944506829044361487088540693482691308450956102100566680312966859808512430518691809831532260918459997828365879985086980584511577038923241979937178895984123752206655117674082583336063396202173717869514530687524529172627523932960670696418165118764700553643978856196526345964375350146881947646246952206849050860307950833896579940529344845500609184628327190273630463386999063872403802671609783193575787176327417118094946216042381345403676204432227525708102709976267013720982417406243973063988805468991357314867752719724311820440980588384754456823285223931233701116538690478470526771815074615377831549094793836678582488272779015672701567964787658743942296791504261789210344078650460289180730380187587278430170942424185833768544087361442793304944314147098826278825704876517912293321494660348458919649626584185032121003395541915200536223975925019430508233959249209814293267713033313721005343103546957480901493355372433640074540615864643250011582351217210153688463189740414501447242267246551217823534281453604643841587856648475202152321089305709931170746351763074020888695616762489503073516460810034164058129455945562342917938288134161548193449670992196139510949140727210059396759074925812579643358937548054282093183290799880748457534023656326693910363648228037251993578225735189719507359467679634952201169559994457071229477330614621033260959518743014246713645402173688114397376728699069555203662716063771378030793636024594480050236264741682882398744883144960840806160395660984875579762462512845083216816379744302254108686990754699375810426231655371909376389106470128176044081146489311773117440146368532752724210072404461501995306568246872910703870340748361717873113472161130306363232817917897269757416471144620847450302615157490386260677231977731947079418950062047348957480082648170302079820742102364611903718279458899666920435260378697933975414149261596158925468793691923419106182949683223230391535922084121573594412939578513908550547118746635739534949457469822808222714605062699020567685203151289720462042953499345798477207844262298990062584492045096561918717690183577188316990309250981083483278628059754174978978808777385276708825212661148671852291599330731475466950391336717353924772503982030235438493424442035843932809579090424108074187903298002018447466714107881078347277221801381227211880480546522864451761276771718847843241416128087639636664725940303309164706437904799395116256812824277672738839551956915899288229375416955700664086810274542623685055907550008481974727207285940235003072579688690510695622567608322985552171660783522843309769949299052171131237308528036639125994685201351363014152207381863413670148098225532288343122206772691033176754947439509627032753436005362011413159842770630974221060452393386610063694972528139393321703103816794694111222666102403203272357538686334351631564763675678839153421390793384723335309533863741933338515229002829921039792560091265517923011267674664993965578221463318104733843635347762001126655855209554809191038940272619455030695761212722932659767515596587848969609919394438075875238251782336034482050668734753693876354537761563903587779651332277512648831679403993201271809121881848436985495995407436517697860933050808108042986388399198210447299451908293525675414598862914676381552784215883754133141681625555390458764399003086527324666024267382145768865888398680825569469304564343243202786342175345736745982855157097457467704776421237876032195777907814122600221951004915809134091847361661577113242510578329011361651316270255505583111160096045440983982296510793940970739610704641921469820393109210327318288005434096182237407892940105748896667175770267393564620837919573193562514367466033198692817126437366579026637183429007294978717200333906368474426958716914491512559481573501239056287928851941237724261922987985427585588283606830088983477539036008410739603394244817328623087619122548532410899338173717141707684067876808401878030554738043303478903637734417641417680830586687822641972044059951671125914781451343145740805960772947860255463355893540791644874559477653921930917505956231854631721948083821283003157054868566123533935222793445036506803537544846627894980941482474176761184134514932317907028937017563263397881535501022623130632714420857603723987204927233131466189604911654714190420033814790177015372966960911768309698928250375226889043870715022330278038901142635856918002545692772455225684126009046288204726639772691112799106566155613631927597868754259925175428527349805407147621267787748162646986364939343145064100902198269660152552098746391291739077540582632608544947638219508866937097017475277987330143976331492526881073924708130081103570901031287227346021232935926833580740082664420296780018369090150442376773919666414170532122249341660480254242269927397494354815382312258595567315770348436127212737866843349707203115523029103183772030030654974260001660065489133434485934334274807857225078045470931061939671446005838659703825355808930726713102348649630774991206255301133586361744713079210795192392317756445734473165041222490901336291902988480314917128670247501088974447148186633819712131512024950752095613797903279976989614792619187681834138351995174462429526827841251392817370478356607247348227080151871270225788429546543268419801083853809395482448197213780829140050893024019597563718985672747501498785451998719383832531422477192498775689425583538465937165851361193411508746081173508986353709765874499637501708932606572786035541144143523636027650041779389282925750205738394078073746601597515807040668037209479368738986306483737693060996873448671653142916929830836776718128942402137348755123120301761530695119751435946760235005731791628090616058667629903384614714327704557585429282986668841662380811849356074808950262567456356083754137553745631192369639679311843305490913077834429516501785096998630986870161205587195443818832746931733146243309235857803892739328364177717482701652398846225735204189691947674886982116128658191636909524407396981249058173739052123909913731917412273489981704573010292210147953796081631700195515468769971632383144648548577669334077316987496477228651303622998234544174179265454418037421641368000814086140473894303695189517208501873612203403238487250500443132782318671081104330602291295777069546531184685238797143057524053788803900541473539021114633506672003988212752854298748861387390664675501335419637523278958724156767859067375990802059147866873200451803595129409258842033214969834961529227785131769716935076336659935669173312772754413388798231367388620183565309928687470100346318566631631322514438732368699467532810428738656945799560595434379040489366859092819553740396262789610992885266040491070143315048778990090393777975285148728710885866944149917988603954740782063911321671513264092972868171340697878937037618492537748641287890357522741643393229203195579678147698021761201040672174811847783461376305611793927962177623505958970190885512787058277093781553450872850885977871843594698146547820015763412926780639852080068461796469365584741267165485296941193333146172482328642862566939061156944299833138476888427044788620034651878194820065690906078313706569117952835254940594063450186839932035119900878865503655517130179627318318069773396813107945974173978498257459728938832935845300810545942382159296833251704665637904469801258507156839160497206642329852396846801615862631711494703381597737050083440185128552366298930630829223172352679978738606535187780103718918754557209125729194581753405036547196965736479125844518034867291454574402568750354671237410664848126750007188609180724170180993969060351852860614259796273741051436028968825673541869175551199970424804245388024298822822258764668445921145399015476921547540904698114479764799043905761006032972774787841430026956207917584868916059666398103605825371077912437539192654606438692410294351449830452222729924263423186416874849807069692368497650451937789358223351377512747997994529564123294011075981139637974323318915079709804336918684393898920332442242397776655453911333767678946578535860468778681685578701474947737039072919678962048788052702768217723917046312470987905088606564868002261332440599527288027025483228251662615458509044143822671135109932628269604599463163167625536500537523500518085257819121247397167021135949087523733545810737111781243588215345594121636837995336366304238684636497444486124472475023572432053501580124940648808066524772487748346093457936508979070186884438452013894070861767475050604428366018015992827307410864127757430499186863260373841235680236592247779308629486216233406885371005119249133100657548129186483769256152323370071629590830953090004652937749174979318751823815537011141601358685068282337450068442913721146850325798413309439142882192471269636674384487943823549182079165547233615534773651199621418208574000386501148102693692357692836920007596208101354296405697905259932379991579085745610910437763214314114853371170731134455464261840040089116964842816795749620293921329980809582258156613016520058107264693580361627829202638541761657323399353620416198575541514223379174121393627947468976485537989392369894763611795551243675156516191678875598204238612480539577217808888414510295080355432799248073442533213263320382337367718386171871959753275944165215133661740323759281321386094972741781109746461026337022042204219874215701795251224538932355609210022121310409014450238724857834667271723272065892031743654314232375055779088453954560917319120519830460422768319917996109721300651754590237967279772933244858891245635825218054158164509647465399902496845928511160850848570581287216101439236310837625049656586206692373192138824715662026139822312760480657615312332728397446877150596455865715226896897966290473525249714801053868886065201138952970375782607970434070580593664840887159731754257449928455685328197899965744027918036916503438268805878699253647467295543562057470155350475565715935703969351140085590767612196742883820209657705656103395419636610656959955785294422310209431075345593356536261962893429073832014707338094772350702809792860687255843910116892925653821113911684573299849931302759358196127658713634182016390781879783590975410393578562596430909757246486373262267785766932993310029174508475597396227070629164599057344838369002205957991486608712076299999276126074323760235987128917201113009493621885107225248378585405861564701886650272807345814487181490504757858855481769791599338438961380920467673048702925904542713135733572723474284043421340512595217431276152310607445133045232166225932167212590121670890820177307479689018392269636835446305370200727695157602784949710462580149240762360132668971540181589106791549814478125301820087535902217487857233077704484429643469650957690154694868936734103428056051712436658516356134776314223353172499640379793235908959439000496169907346867254427172780981224184691495554408614996807594751283442123735882954743668751959606244823937246274869274933481435745462217361033390689609651621221209998067724823234982476753903928998918753425951054406267806823597313471690414389445896190644051078917312587333133447245092509466891916129050217947236809815830887343098466947321367460240106681382660307035024346948315000222060329917474729975426579266973410635953400252905164342023034759521309802220246945527147413098429967460616157808121359103472914947266663745156122274843203886853207781336390163350417498761506814929176728154756777155080134681391623556580338935024359140751523795305961918652132549584052601011348277482085389033061605917469385823122228571096080699812108881437565949461479206366547101437634754963568057801256931687055974036239445078378095310930734198700941211930525060565021909585167376806145479398611468817123374840060852446969684287340916146923594270811418792666314708193795704942628751424719040773129080999677169264142760721583519907481020785282870602352834914654939092777077956227456018611188494916744764338169988626351803896957376624412835837497960269501421848343715608009714937388263290630659944927931339222852107194111827090459174710540211424540216932725033796698823344247682374854408017958782463443106083601499287786042195211008140202169055121801577347552655386617378927841378431865598149531891244054060613914648753333174377804446378885951533914595832986194685074324791096648531188949651195109033166471871133197476700475406854909417669631358581461169645524538342527238333814026419622496677922757018389182748623750514914894015171050812074305808268155061294365058764743108583334836762093368589126453196914483455951135368133796292661766037797480235232238877869945298431013912726805602553143063884124190218957356590045664255653331321934670080171439082846525237049069945515457595991681691872625281522584644529367902243506557884392539710987387832299767525485778893904833068032658093399572381404738546072578935734233065961010181799964551724189144776431479017097087591933998510977216292241067672781377159969922492058421758245104891172081127474182267614397246755338978132795988858137617699585155847099615876990476468880944444862972757978326443714811338071834930453407223043380950803079649410238123741932923618561970973891590302727051301387466754290235179677169774586954502220652981865543448934441935581711702865102101804951245037609453448412803923286068738016813098553518931472236874529780364291972852177233982118233364579638274281271061330592554533581008894358231723213328796681285077246137920864041426016619242871159555183980082313781654026105772799705531312275874155405024553435295262498460144405079195925899629695165553277061094711719233382682525740808583211827698469195567715272653230314788711122348183448561484669058542987525562816679733454018337572398143589677010434553803640848420650457234253896049319743806638824938241068679008050622785735086880839129328092692947364526912075454992532121825094131183607038710999439304084802545594454676017323379317658493820227536427249915937225166088221921855682400007627010090716059167669092337786320793700922536347899246045710209960119994408167590972545520664688714522181081985839110638189787138530290702853623105508831298003859780495226108156756639759311896377404669232375356765411287066603241858790686580429286381960692842312665848699424139731987679273811556807216079214838883208630902923674343131715771765123232898454142973496757344420209945003495274854238728746717335487410748590661734760992068560157550263779301317236060895119569070442644014410595228863956751368591305998327567201920799943110511175887287612098412872212348925625151574958034779618901729671893830726777318772000310042278475870335333617887681629024499755910470298646508471766287623851228204120150368840189911572957090933759834911769545241641872793824479608101829810298355922094856199174570585212877247833050689692496242438882978978919441855146975700042233340021167901575154698042774402661154152270687538256416549842321638967741665853998708799400977702022023848029537732870234985648985170805326439401147026629725343044991702905291725333825687747362753109327569067145388086024880496924141322998804991226242346255628791278764261331170099165707902480451764325971026541102113401015665377055829759066605864838234153968987207359389328934219892102256594372568349309191046537880303017546294325459956561056139911034608252522507877926871361159116122286804471895346462301957449820252670945548795747683630497269356654492090925769517654954403414538946892700247924013298814491738673486180428729549383871313297288858099114137365190026302943339769077568893756852638528761806267442745326452321726436659251979094039530570387367234165171329666425179788116641483490478976762759161135747430375246388556507658311479208326261868803995325860157480298524534708330790330625833734109338417799474381925601247606417766925119569006149768176472515942300345769526698715722196778632193414312368693034507080456989928792140152403478787804134479846091387918891404581042143933991655303886627566450258353333531204944900406018019757331791219762962368128968454131497102696917913170207506789655405919490059186339292922596330208763151737186624824867008763910055816557239517936086971946217326552816604281168921909127351381252706357144512973180877201542144532222160543081849110183609787696731153800375966330020513538536607601222494223012653141024825614776973718188376834499264727509693054378042852055003503968793077869805560053660170944766054651879392748784578600362255967943229270005555410445551223819787084054308699133602701123908498191826143032189172523647325915866597664490606634289625126817674143463817096423648864838915210624035569214661799300830817651228886328685043221302978921550652309951896580147548424942792147003514168600680895793348669954114266952241439966748878518794129414972553471987286952332901498195032839951048398829415711151388067630990162155157009881772321143467834480998457844347908470958865291427929253348226962792516524455756592952126302636603705362060228462634618560873995733488641244943424708884338903294472696246469575608040626036917333015283227990956189574621194094292203595873243306972560743430912987040629437867001258589045186304908148629258466877932464728771677894119401234893121874119161521247259310917287760020426844084578639213726877011766845344174234772401262491244990589869273541451237097775011517362391420070109465235474456178391343334043893515673729872009155624818273557031898419350364401385245772488095304936538634512243458316659317951106460456786622774996853014336637200331654306588095701954021861460919898092806754245233063385346321900911862740515148983001199610800566257149394678574163186562500300012349246564104246856683413605245012221380951947717203623586746544975805741031701911922074477045615327900451206494237951013950082761782935446549329715186503453900990861779358480983758967050920015282379790462643256467975846774477331008318681906691828723842743183906290152590399505154951007236525216560031260894621740737028990234355935060581375435401919619626835206963982348896280226408446843326526347654238264048062890953161052528413039919946397049926487458561308738464729389376028110703628201356567557864667500007591633421843115528116336714045042098936759214389887836480131802315101022402612183122785187777441991211970903249265323772021971447064933639266879698409278037638068520779543027737552733257256447081898387498941388884260614103171065580289277990263237213083095686272947697193035330918095832172978404646852673052427099737245495955827380936482225162067421674514048137962181619697383462253457227912523133288665291136463910450166596814345647735864875812503132433583980789128785010377302678832255421684519987145557458236348756985599707737443342516056133910924538515284116577903558164711551119129329267857543493206840493776796479705896456086798724094617315478575435818738620152172081135073040452943007233765407308978492477495884358657445200911152175903688533636304192362395004645959886890483571893912685049940319931219043773750961312127647220163649294997110395326524933349921661140555633512121565187395607872945202421851597151508068922628494083776952815095660427671404260095101925207481106521481252778529763669513475131186960934357621365022688101809512911012209673096443901723310929574263621827184648524546811153565190319208735841512251958646106526284243966653409198228239021502405070188820198707294307322139114502024275112849637212595575042518624608921430272331704782500515989889017966741731036282873722078110009301821714955991090271875111677211144313262054915900053453699719024985530983696803250729520316260409206840664092634758856212532378942589741095738738144953483916670479183614675603146119980486397387552405805546579810208510045325927594492739070658690160344698326212814826374478812860183273112189730236325717160443870107600819418439682697961190203723955690696214386471144831579021612646535526073682370599719902186633693131175972403727229402142720371671491122575954946605780968503506508005457285936608334143937790731665971821047855344184939542459875260358398200093765703859571563103503833890111828512391034240450002805761070676462155095481851128653008711938154075362990496391622131818944496053565621245967582336262818031820865103887524307791727594543450697200049518338055360822654416064265635018206583958600294834877132781400764093216305336768296626841497782741467486115734736097513179933460592502862082899665108948281200676933419836171801960667531402464044009920514100507070743213235951912877206629425822982941048633425066706395026951966026591304086035442439939855803787445582322816528520114193110495599987637241659552560399184629234955640193980291273238050629016168114636765973583314650008393904142871066660936193061994315792722966274027540993559089840907499169987642108891236245136700523674797672738891549678412497806906758976710865233221715812358299365377179008131789636790107301332913714154130796271640203135318258415585711872336435003775600415225353882685955310716320998742318518912514041654887262092995676898117034746468097768350802231444092840860920259233033415761611568304467174941637578049335083616453383800451699816618949240366918442940418337053208763636135944293989881443145339137904625237150900303433228311799085993696499482768922743138313315841381501443131267001289811560265210863114798552964822378584383160222876013662996378862072954763484106472797941606794204276751157787872770379277214370776723281996462225019592122669939943526242172365497284087006931243429444778420119091586907886104394798731683377118475243533777918862543720656293574965114238000983695812734458455322501518187648122477430412952554306655510053199752754808865519685299765975194095158673888614888382391750110336205748103851946801401739363718479489562145820670942271055579686938042366094533534095082293143282039771734036867644295347655943950740878112722820082899042909951561769605902807532515685030025247944111967821246744880358830649771938171687711824771726563603335651463890444698470211752006130586427082330692785804389467011305429827703642069158927010455503370564390132516851343823013615047424970762555337601677800613514446333281698839353199427241064049045071174451256292446802948144154140530339410025018571290850817214621305480221825010828327556771517521652666408707413099567119935127593332261207149836134576910534912820521481441549980245659039087175929062655815786380228919669461792213245220282553593031423378636468933302711006820394158349038934445086234671437318701561090392191001420540652752628557669910666032566777848657091439458131219936309711758349771869188219406297856622789222859688894346807183445723401494908318427743304022166780143585781438069771983624658346480220886242268172248903249508692554983160150991635732797209155043121856277349850109767916757726882610581775746534799867920359215455020528658758445161238984576591391378088699065503956180364876241653828049223153869757646186152781068254325575211034618429583650358078124479665133291506394727010738279843733376193033514209633669911192198253860105160257086548837336213583082965491371944525208676925186505540648541438342556208282952640539731487729141446337200822568428607687661997456905466371714198266881647706799030693346746644028384865681343651445388158586621339880865509162138010873488500574078283374205370511838387775737531579617934197613842114273310826796137790422240240788467612975753278769999319655474852300949813088217292694365586944936432251143932172527532000949157803227371960482035247068344015655936824865168946140791562801287803186587724936049380033722896041771671163748213976243521730916794639577352661764808703788423906413215186214608390456038072373255791867523914402531174596734574484207284468915699932342967975929217660124101268824133033482661968086992619044970207776501129586075481079338912143064366250190794962798868864707370473975520670271963212015614401875212624020205015098227637225471750206357407199881177667579139403254986488667511391588275753467437940345848407142538889156168293089568830635705658090776534046619239642577931991877867476463717974800824249010890414886773471994162369580421006392571593001476987684066581247563313960303477242019566516373550592653284844773363111118193300955834725409995243568972524720317380087528676244492351281781394951443084940459134528075664126417017219237274639393695541208439966603419902782110531484980754931694744506104427684906365052172230079857690087272663564109096427902795444385902567304519961094717602436923499312850699237665119288899877112897823388826725980447108831470236924945574058450464639688877937011307489839656543661971454665677915458333372463433493885902447789887600756798769382011930970448988523092477897295016743420385985703125008293828367511907716939959356698198164413881282228846311984009393041361436307732046523866462317138030928746073282108906221086826673809045452588305763560383329573478425363002940234743979716339371472589187067633236173304542124746652241915129244810502789336709793248692085180904847598081491515882233965498813650665566165736372993981044123206572879674168437341262456009433306160032713758389175277291421707376899298136551065324601021585123244059120410737429950412524112360572453834035974676611101955972880532030056410443446682575183692589085018065009030890398699240744334717590374556080778814360570171135253948950302659722581132065590724253277342989569272492235613268346074893081006396759475128085162225929211072830356716511338434448432977930659640374450616245709452657568203853670412287745804919003739268661631239907450168956718485345738568540786600915655584033768279344261591238040558142598798311986793810566518304239760650849294490166679672062495156211666494486339115129674655162568783045050549198111763082654790393135487758282558217262101561460143785556599914428584282155908754563368762660771718695005648207327406583199801875190058405337992784127165140221368668725772444467139252527497656971780372563735029403849169437391283423394556847795622369383301251397553602649765217335933324271487038218643150022197191871868931782795855288557312258923649069617576824812585263357327516348379462673223314634686617324180374204656942150328984751689847504212527265930593876528659069933669442509050505129997260696165173812946930656976773554223297052771565144248974409090095308810549797433517758259929826850716088194107732470469863028038732018978342923403842328937308836805577842450174095488227383826017121409969468264739363844536704579912814409351695578945061865527400442289250509211061895000207523423433846829853527146425122755956844709677801815258283886255159268804291314595372141675451597986482263257809674980879349020205585411856115703093823410774766847431890533334869707840583758949375639060311513235819109909566442754164329983278445991851358378726584465640109401102079484245559625692439728497440337296148430294310054410203274256379108147993970361856792824759597231103989114673648853594060738862913106452358006336318178209240829997015646548450790893450213592936662052349386990526157907852754300770387188016298177004976858758154174877707238137106949706748372307923169475391386708559122689845092972562874424995654401635573906909143725281242492915234672008706191976552417562257140422513146864824432603815786965396064986736582422762556291537974327214945851706816369394837863704937677111868113678338961864542320608978128644867036833628774041877912423179036521776212913616006501653991334217677649794759338393658961607118293592265966834595276775198569642417469728167477701032759540966356842689858035085144395590022607026317372763821479200682227406815577732803386667393126698050691823245576440665015396905742198455854639397414955919477183377621997183575067623923785260290423571585236754857572276818986210005537505142311014390746867061855536296040598232366532038508153654224020898745907479147841227152127682075100782064607324337538282592037804650006615016175630866204204417338956944039853676018227427610064558335106888724103768939121649494942503357484143104721661338461062501979320822965722371754696752464439620004520945464634814066070332736210059509656860233745376378628876458220685489376615491167770668938064252006537213030115673060714360493216532766149694513646076037680123122108192079870447260241740343508412335865103475467000935692462145631423085148237527560986720351902408272534410068387477926861380573137398633925704441458628275738150235249336786433251782761393625182470741153440125424968564112288415845017972170617744291008423208921523134912165993336654030299779564880476586872171116043837405637766021932266499397914813196151102372902611846540988011107807368631570652732403598131812903285143716709985647946393553089253700122325567426781270706688418380666811316370812748337873068778522244617350444587606171777512144712974234559475354821370900863907998138431177073402082104084125831863780338972133492411918879919412880152949434991427406001128422326392596938021028617605730282699586339985383702331940366162733507247485572521748796600771900188189834405277582999246967129936128929381595163944252725373947992186582300217715961571951949074709380575758992749574088529896244709270838643269480784959728941541843288667328525780579517819465300945672946312474836909689708573315661957700365232178548949072840175227716736167620595424956458991020962923557988718163956931800154265543991337969954721326496792548096459593717421730341494978636283475590716683901301679051379502865718144120437770435393017986416430146513876472696874552381110454811636725236288071996131514939894153801509067798987632788362201908929195529335819597463811727626402569590030696003696787768900479940558371430636394190970644242573580242823632595204112249224629742446105629808080692677618543799845611594568555811386630881838783363765738078111873265512707268881618040039606998728982851694036983145349427440334785401754144249335804251893653954839227842200856595830350178714208480899311104877834619887445851075876085852540581582818053772386571645062538465927925492156303820297792072682892983282760507276812251639642515338520473633598383454990887981072195473193851374236734032295579389446933865602153600602711663197961657691941930222033312387386338583951705743422403065807177728536171855726369620755314312203475176350746055991114133346332953092406173849384026196449572544466213118318215680617755236400509561491338609951249245325473118708369828359414248958585394157035682128020351611173562069061661794591381748081868716495512380619585516974819136489576745976220442044721750328096245786420446172735862285865853227698759452444013712616511619680920104431872478182376364540021147704266009189350381612240863439708664515740438416225970912129632626175887278976010636408798725284841307093495785168915807722828707947400670288081883214375212000909758108475679803056514738366656480230902734580134861840862260814621969512980054733759951606058077470812384675836719728365729294467117104055255566070582054492392076028581499581675377667851928205043960341000626653887324991687129249248819740238919875568936508637602298448416499353478986403841274161079678567498393543354194463756917686254314714824525239203433269675587716909374778414286862951872763926426663900244927369051134987115050767139935187017673895047811156569716833447316672267310931159220896682815574392742458385248238507176639689939616655194099758832815697677484807840495197616260036625054114419278548284220818624523650633179464520592962283336033221023394590550439109220533355874433009014745261898012168402129189772322164882533554161249288949935957750285795763555093109870139664462196275719519152409480256236089658629691957709629685715290971191770509981530851337135939953576625796480808812160597821631082375235580020666071306463627250868943280895781956546715510663393666079712968418659408935222131072684950064811632641903746806501008842284039914763284062998399487635911567260374547335133635688749561964148616127559075384630925959493223110367278926562760711769402292408241240188337702439930147356709383323626569705566069243416540144718551369358612639271741923925105549490471713437033110635629075949586789466909380069242478892557285230210339000201679773004949131749578417854627088319455790428183071185553484855635973986299828912243682984631245619639717535826538835818685741670241206803074236678431586782021697844317017624469990942220528779448766452616385735660253026605355889822385951641120890079528214743475621737525426580205079535695494519562273089833846639686373901963321936390279853679703797207185289419671370890405044789997069878550644613730983929272733214681458926938577455195607613427434744556741996905720810472834194095753294026823847479543054594628152910435181060316451784324948475379887825317064143257747228784139380719341274664723396253770828657100756478015764715688270215033486282887427070368472140500894659513673063504957887036575457306863799735411589155280059691552633575575245196557734977467558903513321271637230291463215654752633472255712054199874925529834945486728868306369741171116077069749402816278943318885141745311623070858476717432646123003269786831971969456725931237162814015472865908023520696151078865044098347285440496350023955037228768392117881320062315103496834996391295793044883533553655883352166833212361972165470088392669324812876670868909519551666075187276664026351399879493641680962049113154990872368441770728389596214827640637112284877954433865788964904346941794781875252451351693344844590453215120954742224716090996042514518938474381060815784350295162526348537877275896992992789271395786904376575138283734585449944340917201949038485445383461083340260002304764974607438772854148559216662508616389055314474445308687139091939690778553508708270970929216955654730123180398834037580527237152304012097561294250315851218564760517264022023861690455132604150167385633309771405027233701100242452496873006842295488918906020042036842047901430641095813558119307322800289145604117547871455069268104150301895161905436101716508347834307041020511809107745996683919375937646452048889052502330740702007270403591292168903772318314805255008738200490382656082525972931814072165674328969756486901326953573061750505886873654727256491592618041811734470494927690868964483133412599679101106848130297027902800667598584499729780253483192869481376910662703075144802150640685387698975434970872493690393230810918900644539175004492477205485801326479362719078717079015746163533262636079194760945727481968673821102746508797159558527270971578140982366118168057721509697393601767881490148918968105841836713020136493547445602694337318930854371575757732336819307761399304839274856942423353048092235358227986896841810423709447801924130211953063099554715518812239668442002778746591806165869324521843552542205094400876765285565173240399148952515585691303340853300563695673640456135506846764651679878159730952982015848167322415269089182409610069620607337766334192865300191021646262608272151370233898646829785490998151372644856992491982155285166608248796683179566490415660481889600300323255196310346879947233655933573536302677728273318079721763192370483924609417671787625039707418628259377868942009491121327639811726802282547668752869467965715456455651988944442661899425503231073964447635775932555810937913893133457586053665215016802365785396963705949750002655831555627686597860690658034433281425113240690838325617328341789850302960193337120158087283637224263182471136302513885352016393179486192300325283816379695685284202625965897959879200704105041692586749586316670941396534906775315342812590825077322030804779338289466664772142520612100173363575549115913022490154794514974568886949671555131439921223216619429479188107974442537736990066379229710594261375294969051049945981487059899501904448616876994578428038991561142118671967263565052736647554788435835645146583242558587890268117186063604405953708738115005049685741890436990717554449016131591009181061803212489477608847272602523412820722842689195422522945537955154264317285488809649540017628546650528235489090201123159065447507203111389862527887392036172917644861954396944177063791065830060862179358792104011490061677280398672853534810165548890673288024626206428946237596433526709359731255699489945150854879559990713187778806275862437161464919923955971303567989229374750580311045622980736226005524684610550327046718824419599044063412630877300237856213714191253870743757201261014816460415886700583727647578536289607574442024736695365366308868928689317453544938183978804422832909320285463925258792049541724134632977731605196665406858561919627898085324289044352329567520631644596086681250017587411592513920563465800089293755069294558824704812103421202551387299648002170950393437216695822867793994058924444793203005227709150835434773834566056593530339060900563935632469514531181107309997808073113800426772690867266593428832580855523524080462758973698848169976230586932354904458456064243921051861950353967375166067083269145205588501334232067824095804163889013520702344858077255267592563745853637485525515358961408911300769909015664381537633128465582405864022757309384295030850840158662727696859913669982572324465875430118038864477842481456861221804536599800054103201051783372657367153649439813831235942380476403535723329354046639019302861659816999461568562341964953259597023605431333662692903207135428972088548762236083436698955282391668861861205173025805313700819652248832839505985495897965576001088226590600023852540931351198719399178914768419872752552374048906596018228218888984937090102098255647878474534731277126989918250120221902116007260861338616727424147365432578722280150413440319051728578743413766161270347543315405315099193417675843184512501792370045037563114190270585286198166920058605357270815340562095910949352224130559947005412898412213443599878411098731518862871594236957926219466635718945941412296338038118793521619983451020128551975658840819639761880843090648499934844088519753579227924909620810853036255161758603441204926358238735547334499100705295597502490147413705200405771589380914374161872814780372924013817106311846765840547638198093713043021702323154773340875526387018520890750191087213256008591065847484942393155735199750052808272576469512644930760205908995720089640621200842021474263368176277432780948614856513715351401067375349294352147612800844134515156636587843835383766891002675824009256035212241046704332199802935703818554311976988585188322139675686719683642202017467203438351909994882152180022789451511668632161609622849598155687531790914647641945743410885175381070726033387909573818063987905266815895536717086241984612248968159606202282366807662594655655165623648050263611104299552473729938416410084213936432133701950287431518377308497436912516893218472646001032577839630544085997218666332873992765504912321311537614236743979240770702206074200160014425285795643647066122527805537644021532968986551633286379846761430526262245208107566586497641709269177641414387602008548389893794016760530235739796243415306320842980251939380823078235592875519104246629300910184213858123050659230921979447544078904953988470978187457941848260756847992668379334921274032862338171613794495793466220840999610864006869667899350388130587906724402012793789259982232391937582628734933622870563959455078885880549482788367763859315723570750313593541350024005188631941062585101987641981326423356611164264608433340947991849066762050969086736725315269362509239774668350898542253502736861823149613749297955280853405436028824202054294332763586914205873541188425355489279404611668080399115803457706680149653713575170327810330830754497630255274818811905933213701849112877860987188566749973063507272955501088752768577723604700973225794072249556637390769705872095305351992632678029745320102751961028955943634081783251983402030361937766182383747295494810163541218993290644247923378904359111808871435864969848480361875617951191448916759538485109755050180821169818758626172070952154786842454541056087562818055543058328835917270964365940085155835602513930002328485614427851522497509381225906827368255901710121935330867142491623014432406594109066264360881868198619973909740287615206164011644789231066423366357180025453124599422850609281817809924715811204585599921967013677071518596068762215004244326567481935322224902667572026493193920952046004361828579753028869829437677464272570586306415525908310643140591941428571230376142133733720640004134436720481676351377871976285548748480211869680841803835053403408203919393617222781676261478719877717449343024966617979810387908976339136826833896661291377812124596339142177336199565041289942100376530011978519575385359408726723018324017690541875386808206150833114538805636461602982372304764827218860522942481626093794956117216131752075411448622704743920609140721471944238899707942751675899228517903875634397807704948632619826588733758550351734971191934453626385181878466516454532757937631953747544798185473559621950161095804150761201266040938461416035561427022261947934025592359562500875644392269015003824734591285714832897123985294357034108606069277670975830934910559567675121121253001712478879862800430326747210144192594412139240834905434211648069475962925202567988817494404652463446026633068923337259518596910587339752335080656296550037913032249478490979104415609155764575746515568815808504625461005210730668695867772710766214527876783679389337970995882693712825744258962092418590367464369761464210106423325624749269173884391264690956546594263596986078640015599920276048464378572885368731759615143635138795869150125646658161471737357102896048702527324188271665040287362533187782691367340057906793885535562755102166200606881718319648582505662420357490458236825205018635087486788600111366391033923593858416202843478698032543987229260759612989950141946815905591412475361373768182633400807225935017797666002361865325794533355974696259787694229830232801710244256626885433443041856992823711082811273184843036589084139119622785839990880056763877337229984044219805328285898679171843877330058492873845698928892242403440730741191218572480130053936536077452019090317424724292246822261841811391791458276001751395417625536299015872146292176740013623009827292148682847975111017397875493489797664110473134071306843097074366912865178396940693175009845830536723641886579623625884785773058769891579219441240345763509175087284321797447053333847226083818293379733370747985350449182853688590724341787959569765718632514347352007360488844250964400646875052703242181233581349680336608886769466711305813124146058275467286264196594532964351792826329323325626306950807358761615049868971950870394030907183069095594975823707100180011307071118552796679998963920302285689016723785597620990824952766250614922022814083492873903966470406433411490418815348451898138720834758558966477976962230271890478779139810954918151787484311731389625992315162242364710516550007569373378620739860188517256363805173252274355517794169456489533649868851163136936802253633961229352154400711939758989231667014598421216170797628782503440934365449549120856808478085941844670842575881287343050164510803602697040081744486035140213247628502307341846392031974801987661654321414706944781510422980386326909930593610582055366132710166558477596114296300241058093990257361035323786688512891432233917960734812542498315252376191527486479476452870809321588296124049062737896143857815146960390842101311919327663197440091914384338758563369600499097111057450431902385214604227603582557158630604686279810849515853503225455881059528713055818995905693330753068122640167131425095207200405036201045245076076480411423906468478459674477792738002928668753021752833537598754676869577223447461859271890307227278877151543703273693235855670802707982872761120230426272612614116168504425454470509908802936015759470917553660899581833132954214038034301821903173918542229131986445536034832405499432395091640248425197746508763260554815251930287214929854008707018265969219514727635675661601316639834637852344233060738483550521731611761543513181012160363568843342500114676723731479835584474211123892003833242454146331250842434993209824659104072007412982424084594866489554341201522842864857076638853038885140771980898337111558655121282867699247226764834119397254020089225066087044454156673497395522305361768825396319154936099765137828344704761943685691539112987199786443853836908286079020761780347185731981974910059437362507077992638844730942801636927124393445093592824509532549117660745891338325279349212220920638419503254005485320659657841841402147801946666614149307431329174584617077100005337547815588785164160816075683966615450665012619790780583547135472099531974069355526962610472799579804864398589193881740226117324469899710255641140197607102498200570122088251712793189040020495939778634690569387044270373151977394158019695522072223801025418894673467884246502705264689328145599743338213264380345663005786072002232184036764672461375248168986423334150776458128356367392482717613947438828265899094039938324368745488457343501511242851923246714390066847443324454784705449098083289098156820469179074280755980834752030540160685598507189089365822734403982395329714081326419542892736523844532026193710767955227070652763705263500269964834634610332552022116598497325065112639082665141943529528794703265442731789704656292969619001378648760257944128189432320473480370303643654406479794225399979623103813405725743802948016049555177503978689685348683035634181560369091583810927886567889330290856289778582553041998930620181613155062312479307165271396115075066059049391264122066200971859996363180114437131968609087198900627034368525966012979020868088446646792885676707150583684791552930475097508692930374061343482377538271525393335153746918485653600782380342022408173317728169043019924696059755599505901953277786925272973048372487583030525999599738185408796304605317584437233274776969857619636273287876880825948305108481307801982232455266487837389399048467952930030488719801268679997623589048455415288493337835589669414076025533667906410686815000405528390943264081279798035880218043714327629265742270590839957161633020013025043653971506573714483146154557184763513137336862483365103065514049601223207722545368750057496902897878794561556535437837205951599337444998694616360133184564456196692393749344790410756547125833686840379155673729434574863652389326601642613044042472648535754018770407981966147054245552387699043728967485558671465566991167934558890620909602876788300200855371239092915675371570115582262360341381574075312472306269287553855913570655003717898940791164565632833500494101701180427856892899658842227959973660411068460513013119538111817540885809412427591135745487228218578187983115508833313061404146066315769936870000549543363281368395884125560196737400097321836654721499362064810240093269649000091340872718161643903458780946527869681516237264069747000760953174363265456286752483239378708891853510421061776126532888920925834220762760122543049273027671481191813548601635118563630686393497263076922177186255676985682091608515280548082134158147936172307431941999503934420768105298194673250465176124913510297891462585582556267361938557308803629513737258040473271385513116580720303579200476524112892356250821113799821591956586884625268948896830485593032758880254781540947277500547338814731841852431404019774029091106753209856654697738459786191702957947633917978715275943485639897047206210370920758667723422028051140008361025619386773305706145915642484719255109024396437241300067552130347085979517073133682145423990777083379641895138363807368213111315892231291147337885867469189338754257024241944072465939206948535339249877085662477902455258823406849468252888590610372703643299818393587006213246085962066656657659398532205282366103165810159980297847514755016992955042977278603056994359191240791411883143726048910769813088638080444051462633152330168201200891342783271452845906876507817507387812426846487278015932962577359811289445725817766814545341292014965892561324541445376584932444586518414743474104150340791838570962838401511780449922312546885898603812122108131201225477715163201076274809987452366187784682630880509757280243965592558469865026838124582450020663488951022667030338674033583264834391028466031015089686892402462365278626127429554867985138198408288527840196160248485304877983101447570828409974000657721192775774341518419205313213106708239642647648188585360236265478812666092257544855958509669614406141175739891241107788229496720387001399556666288020631822490801230261883604094552194537779111503291820010008896458634091607584806870615639644524214126389104619041242662754908736139890372796271348145194988929836020479872376760319444121388418338063241591140310027995610913889292101593835354652453198607832033274186363693133762007208385884547738293261613215910755695073482463967327551794448028094379794447103942472189566393464439002339147802082801703083324748851694101728185635974690553399783756959003215168635342984704066386082092247204778782487235000032088879912975457598298989190998742884131162356699631752542135773467098588430892153153213964869657465093950307571409256622518623165455055735969121109701808469323634772241023740891179508602802815133164094784816334896465480969186157556830544847749223356430848789971543835239138720153862622367181598976284902276641733951808082511898770950642255630969023505426182259211792014125462462564686497003556849864331922572579707026866075416360502551150216550397215484906160106533901841493015498934493128735928076500876321108492919824249613411469283395341932944432292191904331068403538055231543678594187923353236799016051834316102303442017512543546557555600945744878762873840807342965156186265485101866172676801545063973946843878438689091972653805710631819924770924668532866486596442301416386105162052372102905647338862198450237926999271297430338825653500750782509786303602556699304250312135591502815700441709671031475111451796370268763409464530610520211435014313513518013578876916660117251939734743431919222977198817903166293685765073635674799268456005464081596854358731231122436687226223533836435147596308002986395684545650785816541933557069234631166536025015155029748466058913426751999826864330123520961700522751096804310511406093717860712572497283582295934155886417479300778721286738379313440046448407754550114737428991723382281754180189118491139882222017635587694009852536599207747894552159602828929155575853309958361427103626696533262271918535640337938256016777286986319389537792358960795180704431696503221631041630834092182567831333127196626689051710774962448366873637723162532272647670445602994865830354204917605723286043935127330813949964219801987502862957537747450629239801782552265520282039174394751259751500524689581875837853373723649382634378422139870791100142220231030785484743059996567051741631405602499660415883788513187578667233215378567618082958108872537163709545564298078017662150779917432144369557415773463051271266748028260521189370636753467842256475008186143947475700638209583190484595818095612141635638044388185399277848730451633151873494700256484852360815129196274504624965836572570361045152504101021293952596675976583576475958346016613058027386994180938671985483941717942208479538730569379253621961579447019974483077666282338402821441903854104900971943152421048188613706499109396283306174958097546137140407495471279292454910851663840434494176705958644634965265659907296437631205121087446176784635934951903583031177962740902683740916653442614364753037137971549558191874142566251317860987648730027281894856998449407816418681672263349638543347451639978546761845985250261889578298360362955905809717576464795968934924889002201689198089456413345837850063588375950199280496110296919167826428527030013981109251453139258641263168026645937452733417852560107949620262766839112664240265237635608854069223135847671400727334212183090016452561971305360437005154487356982952878763838454467650586684577320198750302038668466663460695701093273412795730374479651401243314535083488152139147647181823024948421250803706436116425001789495726611966045903512369669656874697744332303915976501795157213030407784814037466881916775927560468336738549149742899422067478937160130549248693770375475727509104744689346159260453107125273346703586730546761852660499927719052187631933071745959945220541963567990909944648386893741114022620009380064999916464770530299468421238710925102036982083942385105382604171826598606408867844651653839162846107776827228313880230168120591093020300601426811140596319872523701409808073474522850019538381380202000293549810295973634745120089557926728979314914012354027234885202579963722949003084625016528689508238841078024836619135197574181389064053025769355460295688800753052707235624293416023216878536940275132423498462827189747697183980654749657278206124072791479584903776391240760244054239372080231078370603879189583259318074027249158020293180988985061002520864422207029244802239765443194064376882556139057261732882452231372982608452483878438429902778624673912316433641821660926160879916169958120757009165718029069919342167362844030073915109049967883791508262510478499623440170410300517832837629590192091054510225706435882028669381974002191457546862835429535933860691974764181069141302661291262344238840934555648543618500750495266945270885745662908942907228311623257000051529593799021560332412044602748784825510330344341876691923099913523077826386078010356914831212332174186433740639993965258325792512696318698885295087269873769208251296698936703857309513077781067426165709460533626992546663142067114613469226879166897460416613757418731939507808984999106627680801497883143483781734896768220220910080096864447389205249330518756041980687242125534941435647684081902811799002386948619795588786068667851487389739464035124230197597937620923616333389924915640859613634936062214058209083677656778883123886809959776381242662952699159393092850621271056649467729110260934638369288435985375271541222297109518105019199115497408703819702321131443583912347674260508245416432115902115098646701900542152113623795727390831403614926266513603688889179382955987096860270664146327037565471248658852345192320877421314163636684808550704137776560861181852545766816386200241024967504221001614566680892516880279041324778348563985652912170480220553110347184718986429986204399542217653437067570769727599089883188769235295213101693069546702683452477281906619070821528812953632936350031599384572749769734058078291044105500721699401326968824764420723117173332093421355068827155884702223688273261238238406851652770791139639323742107512645649552579713139584297854796921321129352596482260135028383345458782199213385619040003575922735350668990266813401489625730766138851830186250859634232064052868308798751902252122219777532362124345160163545014995383899360966481477714197239687587253623808323229694445758304570930741985068303517530858936238817774991398750497293487551758758079392334418865730348099417049264108380280394312274263838606364976230413502349087844339885381910762245993104326926163046314753103495216172232928263502852555843089639891418106414191810400350876332195287422073946930667240393976420535679239943134263604174289762684022257943658790937349976668414472658325189486423769510436933111286626912893060503962790321465222257734535284972996643287906236143577843460198957043771074719408175088258605956807492949093272582879432083173766224181879310176591490658467364462534223628525755759479667516863889657865246444510427954364018810908900726838874838246084492433134536558040939774430853728200118483061763308846238269452773618453399073325010847667121906420017972039905546320878458245564128876383705376159796991317652362178224857836006816514142627906582368446578249317202270670632315509075046777367753400479285085750200603922874639986819657660953150901054514383436009054050863699491234251646335415082501795935305800321978077410928884594383783115959034766208529743170694243871805750345060562670096482880821302775510756518928208709703341610697813484542811625146811093078374293381211045241749892128459563361487920186558322814003444928495012363001708138007938888323743135010696185514241129732113412229966758285938265938664373980051947473360590432625330762252319810511701041193383029397987655976807352053982747714268241338524886250152624053281764379870494553788348834447083656041420089674314607799100048087874063153799352762763163050665504600866397743848089989226935604328679102990743471939777236245538337252288477308042176912901646471698780342273890083603800855445920274551101874575821558938859704835846595685217341896172708394928997849881446387038161721284214212227795261542436709963942988730902550623911750345994789405124145408228068534068277495069427826688074546052174504252995197570666253390831357244418284451912776097997237175224022109717838850267428606874807598911360450902832156795585267385261923238882228287822293373673154298175215418065837637987304318853931235158632007711390615822985201098887230502171786681955200913048644745499020894059560854627555188055416344242478884444830676556450394763491677449969105789909998765408011321218132788163799047605490856756193574023421384872924067544536322432352957970242298993534815534433633401302963483413094524631028538473592862011326474219673288335206105332402003458361684643324952503673177912262009770734130704685348207572044544016685729544276995083846398497082756380836553773032567166705940456633958353564155692360485872537901874818218277114009506977121473580520359678857889930787993393257515938724370946954130074177347388677562483437484140250363998213396537098600945550130550757313819931456989970763764525535455392129333603033410480444711448194268538599312822638756010677647075328424513883998412253910661405292320750146386298511985055873633623328584784517765059518407766789398002864310017514539232811679640266736920001651745097883650753743027367337108467058688829858338845171215940249363088085034472974976202041106205121805306518786875350034923448744417906664765398234066815874834506722716953334464385343984018413455160528471045889158903601316246742388820534536395388154381641743167809510110041665822672774887230277159251693864521516752132547234568101008023618794223383564672335685672431705056945416558720047197556580387800078184566280471305775934368776468309877488152778382698615738204967879816776821415733973963343586417198139382532374328905898616635805157310875940962611123347137269426906677897300821091946841738514788801557162873457774386755036200216277149127236543260650117858510819728759768410948538029055974703306138861164882782628397032699711196032354659403261680007435390640532437973711272814549031473963211048143514324062814380760097553226310114338317547255295654332406482438896244005961330270310784619604560363693867645169720914015779472369095757303737156320074074522853010209326730745465055908419253136387676409466545112851479364022397481682870926609182376156986498760892644049386135027893424184840671860623274004508850888775130077547499963351375650209660185427723584758627005851669091492295391774513578868210161208272998610898429205801727475540507478373874324084429553676632499216297529146686014631585521435752488010100459393714054597965134376366356166738498737143739732404191671660364529008469721168125121074899244098088484735725441013659498646605278121713204658502291102146156667807912540004136827451639025415901969013992121598604166417382512952970523640703120671394619928123581132866277182820895939770353520961175072098462843620014012375150415817616952166605717758979940091592360650229777588608153940182077932697883884631500461472485286887650250345849572204991335923463744183882871802285136591930343514112886109668404681602054596907758945883684336845054836283955256433897017132225614582109456383991470215355375272806111006826999914261733788385346522152260778913460198656467028672069321972399824156323558737320066790712445492454535232126089427084570022157198338314596928737502982961018844080332407257464615154316655826046225590995356683252253825778674499565102105368352786554022749679790651967306229127439561656685176850172446713716568817319487945390279133076115530701580568815084719313174716086256580943306417214078846249871522684460320225738596667415618995741562992153975655743819542394991919960250134568036786570918156918000965219105226264769039967694330347370954634977886596538145538160761947748624414844809116830803413948018560152898032283462484623876823606614371115436098641381158430498834650707391034582767238068958968410537666576876334753672553275261580115441342577427405177674406229483994814836511104675693308448647362816713951086132331848945501484796294568359028319213282049395674522123060111456856648796417853605102351575181638772137951747753555199024347558732355865440302737172224459118145211203474181332731994448050075182928851558720489102715784496270174076637674004844900123014813877315465038383216892698396615837075733408423904785465806080738487850778533608965390333535709037670956502536647480405517982322348929961525498911197402329443288841632940306844233359307930532945909804243003993792202267366002329728046580482339894720641939914509180759750185817987671818372153888641877683555302290071212333616523799584538863792211469642463788138748709906289576866945719468759878069720325506516082194880467244784072693249533300045908264829972040601278811837938840486167035914468076443410692740508994737184738897368011444348413704563343706976558689931587867874751832542362325121656592806195345700691313690812835318401400703217543215121577080775277348008368483845909321892918921999863418049003530704098112797621596830766695921790720089774991452513930258255409455269009391644995902139693275174687932923404133476669081885481338857925642892202456068933717562122184608203941864394076713088057618423761290314864979664171616719060611290710301521532273669990401273137476933470757323910100500482098121784813171804333221843235090806915270499417039859725604104254424534030791099902544423102003382591304356963500277689754911584941205621341547519164742598488794337432823018000265444560825811453675272115919449203132981401717424865613801519500551738878501691530953660865364899768533150261073894676691708915336387398013333236835151943022787215552499872371440944335637524907473759813888739627641169621023057933374996142120343366378629579417615159981587451585914390354218185723309415493652072354524734144671115338329762531418091392790947129556550843222309949415707453803127292663271020045030795584493640384378067424227219226481364442982622140214252053260913351348597810357490128666154851483448766532051853263196802782891743692098188377608526392681583734988879516271142660666038391263154883413399810029635911142826235490225240999245353846988609334890283889926324502650223246579364764259526908928700752101922443126514628116388007803569137504241184507774601046812376652665561615089542834702275580017542000611915772789496822197070792250288099884198248128045908585732530382745862214041883188346492361657507089583921281793802408027962838192611634119222082059110689641344031647929584032585650748484663777709992713124686690099738000232446889694805387847662681913484356225678367615362278969135996222641596412246890045462342026716547184902779937849000806648742424435367779966591329015737947362292184417549463127645223946445109585438298520461838182303469247167349198358064607792598399018720311802363064862324121028772989579937754955347265278319965169041492911747146267606052097654372613465041271531359345338406657884857184604347774760387583955750462509617766119950463536206081369763429757797573935568767054194600682132498846403744501562045902133774285866131389714942637020045907581366587876755286467696636451888813287619188820945129722971185855863579304471682302726792319765181778065570446835033629202949234169576226850377682737506579303143516383188563872373466110594451874157518856928076727378514298867238762370009556682468079585942052554386534497163677591748446145499315642769648685625440932063585309251154383880598151102345566408561663959875361641356326670205136849380065790240504883635903854136472908228641763430740161366638151102242851974717140447407362262754562928474566916444100771165139697449813548154566407885176608936472705397661826017928194297577430373698449203608257184533434538914648111247206434851418619481724528242574828898611529124228804317141901003006975069003332681098251871976330497090185275435263496993873089341179042669828656467483864661521811463537903806252988045398999115320196645451519563168949172121248114791490366007383366452470132904469020834160400116448689974233517099380106967504221243782790921942878460451739624843166761300271116913510706690266968772209385014040458919674513924918958186757793992992030994944770787452070868444924694903290785061769715580452082978285144623474232052271746239885270126953848891890404771371620852897523468017577749818733005774227972557613325042589591511372454018058719634004257199562364654347715127538038851821941415634436526471850564376767269606694611472648611477913256842320912793023587520592192103173843804344662415423131095545658925590055955004238174779244486678298611177294116158040672354330141999787354177948827481556414748226344582761873597171236822994268049374989615330048014229082883248130078774019188194330201601381363203535685013695250383022386936206825220496752508427926143300777487139739046976381527634631693812152321162550526449571779997092643754686971192072427787514574604762388320442852822289368140788813865174676503997671547363286874728134375481476928925273417333523600788086715195482914675265594509581547909097666928492360634729458809486306631919632940195964265304536972686480572868670558263499447105978901021805160339587433359130739615094239572413799040673266076728036582875812989376434385169568492737010373681167281848296544572557244555495388921726010434789874909462151196688032861475657703670251918591288223876502346825786591106753310189019894000351477789403786092323031406672411430973903921562046082016570866199864430429350376561706564727763809684125160271335263387971104452409802876452317231980090471088840602019306169788846254878207034691210261692289876114624368841571584613450217379734001168695123760686200474273938006855324656704687525464259649977707214630120683089657107782974585313708034721276716174758300474549769400711361754784425363337261380086679328696059167511000955590419378113380934011443065322273649648374889143554774301279638538622377638214318120141566127939602344210731169597020991004734793315557077634888357299296404515921328017247510438307690356750751439470853120150059951907224772564732086854847760114529526607736476452002934966734989647482681630803101965933176821333803158457929053873669526091858303430679809403736689266606419144959623618541390320488100962913467563317356173782692928767318600958902719071442352470145644893739885111818933523321353575490219120803098723708697361999153753244246363072800661330138860363219884407983264168762672281040289733775926156789141909361535739037083252923807013170662137038323936046947886654959578551632555799431780405084692775082029566774040581431175565962778756008577103864781905162772890808388777725620469527909665390933975830171023954634654305496142554293365111419297693694601823221634157512729727331764584403586704622387628777184582922199025197886457610954269964429707473659608899547022424338638524982516528676677654553994592558317209804190059558751056239456571619913869678874767851871480914602439189857227116476784156029885707056830587675691987251907702523299869699975882026997623835103004748188842302426736043970261223672568469008221474909641486369735078501733700882307965347287847246660147317267512226666533162475465981639657200782121778116814370290579906989810407453153551469726653723817534847153598362934752942320779486951107102553441274258139477513935331228567481653598440902983922214134448486784926806699419249709830062189839864487472464643825261525706649511668991017119297293662959097633760475779447101200679939019723331220413544461087715801765006971514559664151530310681681499168627252699550690886478475618296679474880661852639567730924590181812817060318030792745194568363894130764442500994954485663445561865800990078534309829034232837351158822218729417881867966338874848101066040304877890669584671133674514127204684228720687465287228463892281773829247597012884036545475578058612483865368463077482404939481433198024148380853545368198673594575079141594344485597912409678088764901476022626822756217386445346078357893530232782470105917043489048833385581196990365844792089473483321862309061609704056316901548272654030033220856857414415663833231429237939069718547063877529205142802987680572032525919881094150620470105217073442401357736619877263893801916558083268738181470538827881714898031922119598687321660348518590632998224041000667569628581560586775062615067056262811321219858173905421344255055651966373569286053843067636462682134083120157274329306855001147573675368267786335542835031176844060612458932070231096854088152895734779453564176674266313996385372329339580059900206889963726461690441547482642602146840853283302514731438448696304912215037207805833958088724245924228106101642282658114410561939635530374629786553489725156423445571773753303734449226775834078572412131146295249025143295964251461195297336953829155279081925878197587796228560416863276155258580665496402280843921290255153505606735230426325605004048689842742444644726355220254334050645852903841863705298539506752772685529273249664960473530357051641931202415972413501183213541249978686301799828870439024143753607429308364880027739960811349726060214711454791707989014870633890091718853297110740917492813753637552108738762956728182329785189450476891904481774284408866501379395055365306300586831236338046796982969729953799949645987559703483329948410065836712180818480663964977408502002185584597241488900466337479780734374179193085295478045647524355839088389511951581872323621929037081312551046814684344570678992396147028302774178897706267777995748854764034399944922274777693410676132352522782223227074475055923076149747729946892367831245748061383165092757108635153180264148765043502380740665509734337057437529590947927214507064876616726740950706166180616932982081333373533047647843256572910023011421152542380165873823251934376176814686460753698407696770866616391565722450646786708633570568567741060066335334784085604374889408705979416840359632237104886439818843389216424398148849682223699813373718873818416885064098682290018722055704594668205863056781804836491812129152628406690040395020352693479494695578379438088134558099954362140359731735268356626788661959872785705973785157532080388113738965649512500703276181991995771316885895960439661682648778053512120804907791057864967125331743217216236438383134877589077179358195092037958419498138101779778956476661437565100348664802224270822447053462393979445057847151336455484981459846763385296271869804616791670058602681117623211375633368218896734497670781202241338122608805908413577260119024419158485304068573988559288594895505306688840537500604618670030570332391623126583606562014776604548221757998279766418595979957060490865887819872400287786475040306371853461146773244896299566276978192808819555725879975593771542862027793697736203090677287264960169610858232734562726481670197561142741556121458826863536696225232574620922910887738550166484938482167670505715542615300478225064011653987969906886358734931565285847474115255495149080843057568484394463394070796282147675213089618960183907690101276452078064333842154838200130653196046759712548818339776319937338565264453312721665827331854947283319994738481500342527953737417563670268428664372185303191689696216809684160133074392728241976522844717496344390224374730237608713532352856996605756463416081047820953867401797036451228134717858209933739559335760982246697602563199618074181986501533401032774435459247014503206027503888805318973543314084034209794439324954998165396618889304399708059519288476624653255692262098358084656301912336984935574613178225075459267978611318513133219836104828774034713009888993695401304890595338594996151886353311247387991412199246341729606368122649763481571442079972527662751524631549410329528941546844081457097299558180114604041651308764247275487915153034470334977873639226321042660514837465684000592471807237642901473247276305847489605908669739675286593835837852354008718255543504698347273270544127621524782590952785777601507757828765338124899266314156212738097402094642430524954410685145338778156293122291296277605452054474856008293911523174312556000787588145595914357102391195435719988817662507051301691898334645071054752538823940029228203273647999155039441016301126086690492320632879117116264128391289640514893656671855544997816784762805119632349126563926022996956191284076218699368151354288173424963037591311007787861194955895627443642401202289043376690360235819957818951506942320416692658428854848306120920504402446946769756954862543655511256397379059121097759161499029689686674331394040515401643568325823701224297566011927877237982303863734343121875087615439796723712167420859958303390894179016978097472994010738946470766796152142931067895194385575450377175527865481596204555305301717213863452899476946445664399215561681431786179299346533391795183346075365855995297661504660401949299843476357133266021412249183134848536633321220884574087516950122298138624693929140467886682857528681718798549241495713632855614176944402900774078155902589360572496280053153920720722634677999195722516231715679011660746461789402962477011914279180249569485018269477334984514577416493331738569965659522023739417749041680982394280183941294371225805867504105427978412556085053765238844240324249030356295176939070699718849744077108430726962021380878546946727260323609757661164153380068730591143451690297636983687021281159996489576710052093491803414050745777217051786337386069547172410359072278574665492430583788472486813011138411058826948888410285879253029978089107502626021002973145773910173067412920985499342601353169207883104990035397727058689581202315391680574796322787125581231020069714444498641315296954056405713001102285142426445864802240934681051971137999137762874516129087123981470131856266551859576495238985375684955861948122266026884646961398823004468228329053600184430493841578753505518588570125265052514899556864030198492417211799075326192892544439939917098318000407406722208982143783476625184141254568757631282153212984228786961563826472756636502454720627807991159893595891921620983639123104577459052733067013237071250569966945208206382961157827497041103391811362894635104019843988041617405814597311129098157831580057268723827655044344950665034298973062815174490897888712214504416111652862230249468882626538945625068946807136228140509071408741257007983862082053644022191595953396293411826776588015847539123791436782757748474854404628855493706681383790734405695958578141955751167370745659019771064431762173184553630678702074016548367066298418770073284913554751375252356260476580231219839117487517987701326261468764535890805366486098155276767701451854913588386258080662875565466390239457885029770650062230617702333329600621331461700124663611466487998319414531064419751314609057197632972827645391353472376987053294325334549049316588578128362361052663854259934418863398376252492146689581043732947161626833221114626647884414360697153674533164172641267695137890424277132752662573982606405494196534241255542993873841624380484052405672942274990912800601348363175142158115171778635156863002314734943418623861110480220246498709692702482626497275925718379406985985596850408171433792796896432581040618696682375810922613360668543024570485675203780256964079093287823282210408452996575035322639081799979536700798231625902205724490577449466989137435539257191471101099006260114165259137547031065469899529643572424837021673459704328998131059148634518151802308008849441315170926640890334948298415110052894954887264356936556757475152962272886970139982225842682355632949949765169276299955189653207227322344718799027666719418970485160904869726718393261083074344852823633341896363030307626417994250816871990085027136413097787313940619151199404170815392886684091468067360960320904060787122799088864971152870632683142255452604117381058604408898651662841604250116393683659954392018490549047807446262486411557825248836338618133888256648085264852233593804245796255913700869118753501003001155541228584114900738123760257339110898458581636465988714387925954729827658984601281451484895379667367324215551214054438009417046572757056298206792931596304561303510015430853134979896575661526995429633851811114986648809125762574937101783550262378567761731773175253457420052173096556511413607145028223872453881120278511622316798366935045145227541838880991355839013239340992241134442199260545196310563516208996729023709254795788589295115218925476427721013459893268733973192362032453626346869275665160439887308995870199902031158898860947292630003773435472303501477631003934101564199332814475761701356015930465446604394611831393851185481168166447459105206344303695004494766723980915352638349987362646408809049676128602897727623622763401767495072871818316767826625049023097110293314315304341605488612051433372953089347921567118030935837980011420340320877180236986216402810298532429599999382079867596056350036168217472004157489277995660880068468483037776299951659289350282897757688194497345862434044459594119084035947161506768692465097470373265068820081486360436341328709353947263225931786346793025082962906697214749067371332640747111077715414950593908854737958004712697254487421824823526175674006315597511052256797420918955985569072903788393629914105975692225939227150887613540255000600168834414323951183942879241858507725866362298508239325609817622450662344934891620860675357930646592503926360147410575738845264189724598533351949293533474260202090420939924256199410465970437979210404459880745275677303396959035738599484827593806973393730121554333409186069308465985989213858055597835014331678557383014831365739813526703449779931568206395960969861207058641092156959965289752752848328259541525154516792607397053932612088821910850811714043395908966361039984706308646953291110336901078238755855742841905185732708599213461442292973643209707580196531367396701641059091824189290600162419190154651387204551412935774607555601599456046987514084682212762513978580872492052516401827852195352909643792414266698003526844251789930756716762060218895644023606462997580170006446948078225827980501771152176581424065924111577819850953528495346842354145533119965183474078319367887961749796001865607690638455896616322162261316965440478744088700487150634623571137136525071740217477211329453307139423053498930255981889338689180243021118229294761819016945069730504496603104668006809707030870611831283065060417132883118739758192170581635065249468886722494000782412970927574051914004960703318946866312125955798863488245979099405423886258017858319155568195315000325021499576077349402877009763141994333392514748201066801934612089199725824956155940205378089059134374092798470137237910214605129084224501561296328278159224652063154930087382166453850119163711989920522130298356125472364556070384879809326017450297346625663542095586106632342549173026315730004743677224914739436838175814859754167966835771851660749741622272515806810838130905138850085185865673946032990362187407733924881751203639718610796249471219260373705580356569519792450046634107874539022462657828801406290000556753375038358875536460866864413575578772297862627449800131481019599832683848170753693187635275543183343191231451634306995368030624321018891570170127444432918372375933872826174282007660493590058435511109338398392852225618167631376307607775153539820432213959241705787497331523570953977637511226625544404957824623936944158468856559332405517909606205965579255315602485035232843143585862337010789044319225668569172730528166934679036703775716413863026617711874423931341492391503735620837649053260403580835378534560186137263162530310284072231498397913984132958900929081638509124147542221572855046178553758964909163423694988311258495267045342809619806847826488510154792385392243448776908761032390115878017763859702197325432030019353661266832500227310103493891218247786057962168787362967476121890781910140708186514573037441752257044012589192552994832349793108485423064234829147228098285780275866172335921967268346302747091889820433069964020450012240466866975159809156432761880010727911636258063466154019197150246044011086932416054619076384074172544674047275220795022010621942578963772094541571006335632898970024712870679460741394716991450128907040189105175902966471405542586748323547225456045674964708988815416922174712037338254829765552232642054546812377854093027018282620725998450306047106420006686529042703122488648302949196899182018773117442208212470979058491755821785171284983565796425265024593276708231013411519129646969623759702956666076112434217393121911462642890831747911266466011484246524080455613956812045954657112127291738975744974745602293479837495274010874681780341694342355497283186510278848175303815748274374989582222621679457537381751147744182172569292414195543370304288521288897265903057516521166925394905625109525062574946910506205722521154070277607429966948843230432260520667060196413067133006359884800214145624175226445948772461346474277383538650206918049082470924721697533065822807072899843120118270323792399704473039297847694207706582871398099592521775650768158243819025040033099289263129812628688411348626256195491634896893638787169790421207835085565413700987903253615175284575500902473720001026465903528367723416489512291586716301082328855682525315042239914789278475883406613092329692513462271402045234334972786750851865525822842264392854328816982098657105063143660500804533573474838460425403535756058591132877069422630911965666865609229634102126788648064295542177337400556475684453530236818857064986072690277158782379498299534106216457219313518721728341254804680572209285113419819944665749969257368892593701521427887688156219132564118167000012813249371284027698241053292274900374128321394230793433784263589950715912710319337700884672686027801907608242823704164932060671343092464196734488972906054180936274704344283412495436230875379690181498426339600783147369516232045008331942084546274059657874014948494066920363158700953562298886361439532386275354931579909991390355628134956304777706090488423641642683822607363408227079925624714591992938994764552288554000848666875693301469027361874542012255884071164512282307000440367671557315080901707804201951061306272286888171360872364787622361369632701559734197384562331950098731999596546007900117580803639929221014355231581393225236631361556416264480937161199725721582871122445592351661686045361954146387242338079081656025543480997195646947459498841697748705887384075157298224527144891042623877907288210091429393914440010984186409300013682170623805781913304105862766451595677496937450194197765392252719526156754288989454425190964283226537378860046622182634942518308607797625296204311474011567664903814903355767193760105697618597429294815988781845963365582284839485016717938043519827697126724031658588923188991344070082943873400361866125051086028662748982153579598632181360725071729805293346083719772550345661244441442279574511702497510122056298962867797558733384997876574241136659511144530169088049924162803694784050138759151044135107521459029093747577096896732793350015342052833980025264617437404156404473088925071456778373627583801113406622349018958018984694314526931244365509272748628049680569255442217530202481072153327248355573576469528826207936637743456986615608770895855104528057765587119171636643729728535026102373610503524538340957437279518098976669439648297527657804853662333710289962539553203081007474883735425569012856528655745125064598223564086611543515627689612196851708363722977535699729092909116775961945570507760795728173604698802058685389280921843528751061752954898328453201468547136212872290253811991250741445512487442092431011195428610042444864228077644004749261835087902685396066491165608976959113367906311994411648612686948936052353529802139099763828662855730422548662785303697558415151943484892315620832885668488104518512917179602180684777579090686026889321302334418641163518310262533184804224311867259830272521473571332328324076815347202589006419429217805716099163834390739124246791885990314829923909125768071871689694689262372230933634639035783713698721301246549284950623265827302658135069485991319898225250970962125064222825200045146743215601388169460208398390361103937513716863538254472486155866439272198036103445370903327236510311405320139957460747103531586738868287178281462231110049473884016535061486608183592658559283479460290860528050519683526327966085388664170045128923838977661839329542733437073479785262961515875076145199442723473181762295823831178179601917303620919942412596822632486580073054651252208715753925578245621501714956233721610933269223134525243812633853134261025820588755080247136756587876530094089690910993278896524350100777569741845922707641201070376199319577950137976203985055253393432977894837216039244978683211273617503711476491056504837832879725119228142543574088319263664371810500011293323870646231006700813004594016088869980495428893443255433060528447530047448175427962027188255686797266779661992083697041310576567798123530950040331255321076191793434911310556102750394437662522286578445102323726108852889335635607437326414339807852877853518921476297158877676033490492823240870435684533719335711300260199518854470923341223768688075780007817923831567142198069174892348711452109796632674899638045176333269740304138779536145439242956092681244872104295916689168418678392450038885620221697617114231130404310014612885654861532155436638834463993760506568858788299502225184690368623190572270816293096882558947349222685362413448187398838376043283783040186042621258087318927986935575263824087566086558382643935233777820678397050654328008105823243149811665013264584111505951930776667214645342022071477525565127103279151598992765706271758634114423202653969798848711891451173271880439835804373096995803742607318606041732516945046299364678115500385552758935463497273413156516690480618736707430257821600773550591180654071228186300279334045672943019206576039898398315069440400400046109972595212835246378280010865050874214267901950009752718699425396372467811736873918327844012764313230405544807618475861375987928841097090949215380264286953864362413162379560528666454370076617052076448845913315093313190416724812550873170159530778898259029219149054358040696166549915865910048153163106764857120478950398619474418567247440197634447176957495526710731021746768257851256679044123152587847588770336229977470230971690858709168110390773879257267288972996416315656929207929648763447395000061499064440822118829338597639643680654562691806586497945559687654423949103563842118190512465198876253370872946779033896999221569078694009376661186958344266924711259915671049979112710191941956535430704610336703462178588593640727733905796857967323071987517254071443678258662624156681458703656972400269342320249236164136046303024371046038995892114439972026635292032880544857981328114221594075749113379024251425442957038442172761378808985559270663404081433389786191629513522455485040086494817698810580570887795501115051847075603395742279693569888359509439157642476771885137363546177583670557777556736487185964892176936461927341069359560188855457840710902123696949934590607308035882701653412220213776590761927604592472863409608018655522670174850024262877376972105552500722324847600247105783229125940862956317723899508392975009765546508422766027426954521778259588894603487571618115414190520596574196056174210680056764119916182548304495533515376583056514690329664166413280622065190018054529435210895210939148252013363433071965651976842148113767501623642582609685457435881052869156671416615418063073393143773530133157131892347473314733978363007792871105481857501841414246565545956840474993189474534964243566482604800418438577387080878065623211279887050230440007640345380886771430718766746364541223428002561319103399914503003880395291440072145940917771815280975234386013455120599275471368716991390992638578449758794320682482690248781369202933786020755523953130311291773779550851502301828448714785026500216171135629396388738654478131019380828275048094192726060944032282605591128826449981248624895019911818691132013255094764676527847615252909012386910875585363563235584087282605821264249486037544164746294513538861831141263040718165314429999647958346827952669179908440558152412305912920252874645730843477568277450204631251003261583880008460088552857024749059640528308459995412138781730064446726967293537906501093140523802894599185546749625163791194590875878876316062222972545372195819402937024862441407481612783842291525479447585723515874371000677953367104437961919633501423950199795779995989108908281620525180512250914001861652037183091851042505623973209365583327815299148048313777045190632507407748376049670726767600082643768998569627635991768554979547326144895789821711815851614127297918080034955240201974626992999676693746257709419025823244514076597946570332444595684847524151295115291093695186366098137267458333831002420335934748935216007713166558907157442027273470248960411925073867810025897517198453514975270788007342454280455189218530475536502199286217971453131277033740853607176728697337474515048539497350553504833260075886918213095895078634712623795207377326438404934777785865076010585401309062857039171156641988938453719971348335224423472703882467123123167077835048309084160859473801870842868244823342963087236738602757533528897609450479812108253435289365251152713529026021335007908516677731869603173532436284889030960994778503616533928706935139627970472290465436955219211810542408041047710740378058608766363093205625261889273846934880842960292249387185272490014939069305859221253042786283451022890333899907940881192881484480929826114003496400722786799192715365849745118791150193547072465637180783846090064900207488452549538001864796102675599740185303917842551506717818606620945691884246888009833663117130008234651437959350918137928760504339968246156589992990107228345486571393691356454419736775401143731064586600274944625733112434080117857644897210845865428691628164156629083911874633427352765130665170473117494416274324763403944814145507129153280955877956827491514676708284354335767500513977031457074724045844799067912987175165795563594091840101644876534309539584652425843971525360752531833543941285593097958232577728009955722434195135387944179426667533752550194658350409539194291456062319421338194309627245836525455959881462409668216647973087026979717257645088737099590732414636779388741149228821160029883891941507289011750255585453831838170194755749401471559193036757268591676240775114296002769151136848208327553276447461517886129778075062410763637641414492156747480212081024917719379723000738757152656370351585746917697436420638395502925872523213008543599702127962518818135053042302753355149873984761610112114802852311309621412870244301899483990772114242597707207013930252896836756692086400562986928228991196434933251719660686115536612849035939559422399222052919250646665848045540810963609857531564120886989081120595395767322010073925253454536715397596835704901791823117305570302244821614240064007845230903649768204980741869302327300281764863090834615735489777443129793343719534890495701581697426509707652826948293588094820622139107782114556301559334698071600102448977337904268201693176851207164844671960380802938435350333098329368436055715914483466002143456878215444040575889644976322908292977854108246168212287337395575190628963702545540258383603045346443803176547616411209936785609297526302275713220565563462980853928057593236358744661752443434331414546426259696109501280711107901701392763157916615999475388271468304738253731761879817362127694693924697791187058925419080382638338640604399832496911582893444288106088977286984871427331817025128242228614471628831678844906991348603127194899851926314456448772546623274886664332073984686115474539877851727579431591410819550688025080445626884227958698900159843711164717404499798646520039670293837652706457554275117044326166776817384138849897343265729146332469099852434217009147776452289625861394643515920787487897109507678290842055618783494853622218418470792806074181488332731932092816916178554560137957796886214569313398881698642389107099187509471162790653047510504508883488610617139936006478264212336247374905645754312213018471248397237025074486584438389269865318422238482811516962744748039695965574194478221189264369525247976283306614450515114472645848929224731592554370186660135034429806300987063151918571270365479432290550465300507546247609488493835728344527628235798677555092884821139889151122172901742285321429218567881728365717222939527797195661466279393280183947071688524692418135241670448029748807702527703637751678621513172632515865521619505701605526963749910291800623305529596879096011445024243984761622304136613325576334802222310239934255285485939839562782579719599733534360968300461083114569420410038167584257292500211509201603349228496629896201455316025827888435360647564212096351469462011751014107208786440130021182477126275955675429126383968323833076178816491228230937273618519885486067315042133628883214008615427403365602671452542090894061916511527228634396284266137420065851087753311855330055657622090510566983917037629862464004701448294417828517615077286471205475986118146587381613093569970446631759391742782230561235637646399871138155636917890547391494443248408683550404927426611482674180775343178852986386228885340769446837255708112637085211138627601471649313019950405007976802983173889950675028177195927722207933596922659416827117391366693907703392544990454682527347330756376947308483691837512903086700938478876102138015066390538741050203575924686506081634176486598976682842449434376424660646946935011686772941845751928547149591668166152504458265844037706409493593403270355077169670295656334791401386462825895625986072761822314651113825184312915976717710147396352034096789738209737917286828144064267966411106592446937584544147623407182301843152190433715115654264573543731581467355433036934001592675373281297912025170543545776395316611792549785254478839978624259075595462569762932254950414638599603103510166571848788783530773690610742065359574319008768474957713816047356882226540407565457564364998767790506212396189006221847682285651927574604373914942737663036798820209256156858766320003961712309809274382959644789986793440808825580260868737209050481680887351085829096663667887066371882203592449504433145250171814001983370843309152862630788062752173354586805095114851344822030286560407162231634786552254204680579123750237604286066221918859657023741000921254162278846634393841828525712721147791773230420735576641187757762560712071789640987605107023831571042204669957880522766105445850714951901709600758445806721024822290815646574168327738324253953983035275375528708023976196638310394169093594127120378710993616094915300774699987851631736428234914185998885405234851077532208259794460594401586213821282262080048249153334109979006954317023684450284784035179273503369509029689326054222434564600059253719966523171812501435313163271651708665953358405269870102590926876028712240062978459271883872995499518783172124618069395043300490496002055106848624836334885408465412744484026080994797891421074759500311076096607557602393231887197218168727730114317981341699971728878600358044133919051002014816799833235724465495241477200052399846235674088359618396876111116836846155287849690620598648127539240786012646454723813638878479994483564625514525366354492559210157087411083490484259295782025344044195787343044284644649822347072997579748552002453598697994257871035204481126457171765308908796455015751418891166052280200475270384322997672506045562252010351789888899754440250959165044510243088914793434584115907110003610437377946259011558462764786365871527222391650697228109375786002714988965221346377262749730641119108904321640641720687195796023504589425621082046500070808360347808845635511652105519271883563293956254822893380447431891328132847277960927015394694927045698564565404432278186560489393252367095571228946727635910359436760189343634267960337562028065276986770660725395376401441603773865073448542679746691851942826829787009763795589141782743038709587463167394765988805655056387881708775936554080772049771819543033726305858067883592615321056831217982742867399931730575380714222037911801956780914780521638464530627914391060126660023499335268009236501285479331946311180507974955280822985307771309123794294029225062086164374184782439235702758400903841979065660817968951075191842151672446688853441185289783844588556679238260335484506384831838070110865836132505514391905769700550224437458851601397381510853822979173132474412707563236334383543186298705873835704353583986911193970215527066578952941732397471406816480225072092479008231959978450835397946756654594945132171003056917705403388869659316274036910957942866860761814358757989247563494685806684175187223751750208018634695125758343543087818089525613439838640194053009020860921397069346104324760252233607699337226174914620987662287873988445437038028466436680961764822132972431341296505389784541920118846313120844363693714089385563937356966330515868577186499312771493826391649087404320376544040348713931925669857210784274961733950951752038426476289090370612493902897757213730631519756658575226075288320036481693098000754656428824144018177488966132146757009053488497836410624199595083655923273227034742037286756999647851039100375427664834609968045396791921199468155455848384818754386961754585075369312724099810962999768761803010681754338589911776214432932507183265583617745421088770795023701546770740650589011935373497434848474366518360646576313506528734057559047134963357535630050896616561057755755768881315812587249720637951876026741746738138568338995588992829678289480943055953648433775610503199646578173784494224432420753520884437841882391175691603983144149557454019143662468435828870524905071706583400485734685971344535919908370769573847026735303161058464599969240470249994300819210059738359679485430426649294975163745427410992246292442933353117513726137378770023072407685392398065709394415394481417300501495513995142572244131857328915320074002583732382936152148723820521448801210264416900045011453378934359036079101842991835155741045490354943089036667989899673093752756840288465738159636089378218196157415716782908619877179739578637278086484811457520862791840366528229137350566205193759046055627992415655511144340212131548372054161012374500978362161031623346213631550200300232501759140264222312296190027220111102971683323085765975270511090190875045479258351229750516261402382186199559593850729597550039554209186227731076570949849424600753974697748427150192997402064800249616121842806182846257286167668060683492760712152375341872116476238834285657438380719857928193527096090894975398056679377825766949413804802234737422455995997950169574674463509371722514784488143468949767164013607882238000651558179462444708690937011627095030189532566618574436280565783706355505758409837448411325438747874396365756884865739214390919485132272091682608526623042810852937246500576968995562817136531874266839101359136843860061633782014534860297341043569920989519554939650454679850944046606524123435303297912144233935598373644791052130793352671310947362760454423734975532997355548732335416268409228809635564825906610338518912713800887921735848616751014575945747471729394646324261168454704629370280482238716974100696373277587862369382301635473695266390208958642864662428885261125856488681372470279558737060530252202451768733002696348316379321312744280036288479306439982294023876058474580686489387631909264701311142933407487081071773360216403136227047602913056576700441200401750530709376570231003295363929738706691042387831211056319051223479173433921272231308440324907940820385314221154091567825318199616418165975963637956818453684903679622107335360635296236467818139542700621353201946158892714369737043908786517474342874820441768869554799069166067645357689339965095049033924293060895452716108157883443373772250987267995884841172938074251203521273678191134889148806183166693972599342023222628198065093654466639307909722179908416213541515270051153259727300491101406906041886077192575810787478713507899299302348101850130545303801234473812330594786738838192329956079786212386797171768531267261550849689354178742052677804986099840459681457045554635441239471846842654065707957085170179119317640333921251911234908605217527531958180717899351661766356109294561190033834277929119055406434223301609616381033566964353640140332374121072192279206046038650441128158085853230375001886926767368343886781437072957317194597293261851535648026914097002117898728989782947416810332286045941559689302259169906383534358956613763475309816790658960616266313214006871758638173961941134689129360789567935001511507847926830189006538673278679057130770008129958988776886824333326175828436554394740321702573598335055918397609598759472872003607660226283582660735902029678016970868964803859735303787541620414628644087719636957349274738151539380289298065845804779121096756021568326580645287787693030467173350984182383568270816438072928105623890408119034582949518468137701273721418396986041073961830077436811502796389923452056093363719849277891558416386100058178155433303114704253771384774429289793420530874203357714566168052735956054167172354337646377261482208315928089584818722408970221713481265695280491118133200985316002468011123281857867639704711376226720022204378214909612655933134422044440033867153590664853151701564595911266797697090983617505806178640748184763927799618349057057138248585824598239026038447556085129200223694173049089184619050723153784427008600795593323912598984988326852431978446204824267540460019997836243974651650683406098897777209689487340408315605822063839571499345538291342534172936693630427369285790190778681642227953478762031885471974513506389886068282011876579993293165795237832932998378250189808926658993953355371938958492186134196883739493530771515189158098961586052250058632145598629420469180026553241315880915267246078690625225869869004431353501949255971228618686649786120857684160449406969072022443769407465639647400673811921872755090206844828878531942390758455792293550876459857427454995328004508502892965109710977221733289912669773611553315331043755237540273448891960857850584156476199137433832215893666142125082721714338767512407831164463918799431610810754688843684229596462791416272513553161089879651272799265196652227875879743107259973194035794890990003462661873561518366562862525475992461429537145409796392467470968886844097230908008891975372040585367166620399398221891607936095574955764119264311319897724038005969618731272178486297264463435574914774369682890611261453367699787914399632907101970560951641765523972025016676179286716423451830549275079435903251842367888943700828015082690072890364899402073456072983110578643971816527319333005507992768597304681505456342950890343623910673649834303721944056121885422411045600406403074297719647954950077489398737653957637037451027321430955378265404077874247362421028414472725188207288114622841468850757935513001797428037967394585718222416532732577023707789956612732933082655192807525496028094739265548118227607688772228368791334307168349245986193562406507977018028688545496801227957439168345102256931269804149048526554108851349838084595374508934794121224142870634597343588697590394063468888691231952937251816001079060987087459121607031011480284700028569098343461795690017085157088653724995873361178000596443349867832358153306621222421356392681873726254015563647479711665157980061919588824755000416995463503625471704150218308408686356159073794866593816212187171347324574787797123691187804152318029843646844752636611064196761381069506016358229588598712438660625809884083986299464347144237928585100126832626945044826454132674959128828491914940673312401175394871508074631338366362430545840824391077822296976631144769871034163755185047383897450898261108843093734789984651337123697143661421605261051936453490039439337449061555761983222384419014165195238551918208992744794804070781008157241467427115407341084166106862248236778709580092810996765259386114320559334772515711014594453243428442225187378537982437823473706900279256533041671541103640564170634135343586656060001773233855567923271717455576662497901370707924984461222127811818065251535244690992818704401573560923400621598739958901458618853661328001251325635809042462612426210927623149383549133983738461521040375847573082842360113772414526748081016403996543000858270780233969545958911056484116583105868541300879363838220186345264948212822293460623449243281449171584303917117104432762691884839333934548753591317752924225986378488342257488827225410216677781421660134201222105782104534346972290981802565394821482296370683843673369105635513086224833561458593063229363275588020861720897890194036358732260393320506082634589726029808233423092937058511235601199682757438474043270218287073961364915006304895593039171506042718677715321307708659697089865970794149042202808325533699555677406010459254992525402477174612508065380075966104759483034424320395017944498211088952343120996628850141394832598987896746475868667800137859863375784915566701361031157515273427404832636494478621807237957571708305273966405247603335938474246685844601358214571452129160892194592637454854892519014097485525721812382114991910136152846132730869517308197779599181217221504270306251934375826947821467561276812880967422999539133686421762563507431548715546021514202100279166762916289987100417008402301306705723735264579657803262241578159011637595482172180350776303785140014837024714993579051335823498020984540725992634547868597103020556933905937843954261932495093242784665546359458015692271664579234366156460826618283929894193404703925341116778150815291574318999287405573983844021890316223717151964486831487257295257817852381907439975225406073871351754108570489122888058365378931458328811491904340200406698534604421319128621853909270079715626919227061412177838295703028065194863209434221525792083239878451783671990405493466919991345931116659560555248927515475808821176227347601876998638143641459904026392209917469256913908601020899443480277103850118479100909629894969462308692605888480336701470104372418408309653643270749669670764852226111434562551695660536031976678744514832712749447551154388566269680864890139410549981156282207916305961152746043843114951030538125295409509212778002605867573889153247529483584957587431815083705441934082681573991076951845217198259041835065363007618861221046118035979065356786581202650965852471237369800420190226170357035544731341410251483977749058739573484404435720731055857950453873678552337858142957146683772747654708196831290085914773210863000638108906766662700362701958187986755856249201381632683902258453921134150043802585705501407346800255992563435156088354814277733581065822764575778664752665991859478958201701965985256275575151315252372744834926968251606865080811044212476556702366211846469329498105295986891559888783587177667361792873551748942512459629407669916216940096923906439934193319901336375706462739684218053181078584431568080915936709089465380124069142546375634013928288150173891947942416060207707904865453095260999866722965690262432217689969332258068056243046009906222770857884014659930221884075249546307439457115566479964545282279835900077833384145766303522325734280341692109098036248141820516320397221815281089825390476621047203948691919391379966061011340598610470497954398315332095251716310671013846322138535098343670801325674476507430839030859742930273497308056422258146290573890829992412064964535715389277057232263972612479373839010223930827188954654184982823840486148363654853591401933188786486653869985963601650433668930134771895513281470063096275132436639617620543664131091020415943781259070108815769236823070772070439638179513741782513703668904948007680989046533605324668263364856054850491770567574848176941619251149777540686422678456101752665559501275578592698493487918967554846177264793608432083244623697830131900817759805347977382482103171658350299591211994045066098576465932491455322511101552788778466691698299029427056132744726741361010207185542072281140921748758505009878704851519639390131207146163798119520673524204605273127562853592633927930568062411268656590807863488557990134228597036921483584122456680596705653629224846232313020880328693233828422153727734604338075281306422932874606766544916679069649804871461861276234915526247847102686920468309200448658627076019850497668204164735628033899635576277511689645436025745412406737199239809200991614111035456025452109365855275708637785906078387987082724303353366061255989663672973715014731150770300096170447811172159113684411733993399982568341068867640453062776864974644181819662244010279458936437978198287093030307458217016828179556420702244668023075742529813716517556697696291259631298576210452777228833750941328180401027819840746280830151540811150162892383265721570554693217984901572165910096012872936239567917990686836513275773664696343779829996945933688829674627953444988386306767032935474922422580490833585203370293403616051791469180084967149168110941321788762583929073621103096635922282885369628903346217897335661979472488972342019563621949266327273825693146693328537768226044990891984921722381385780599267969339870644545990475172897695591870911772066256370985505988304984969219261604681744580357509794454620122888504763938822076337647512068752910569846852959538762377896998856742523836367455987704702173452220687430052307846761443448458709715524003209945852100719453716157759227849776573835285533540353063694440870329588758883677405873213676053647070826338795428448757396208360158825765161387076746857011940835940252276221235616294826403745620481715680540064430386675878480691814611580997575526368140347491935250901456725923184100886376255104511653525796832892913531766289843377267317318672095549231405554220020510045437702536458573847349215214044633476440371068236229658299110956666718924838232772125426086771938969997266685610124462315573339068888830490864908776895955536238251863387703160862378197452637331875691386050237917345230103755322537910914718198130526657949442673692873775901300313194605706776277052119186769252037683268111459803153947972467873193056065030937960896817410512517781601549177557556740552581772992792061606579771278174291147135292392955522221196044806549746742448278977542534092817692086905288767612333914129750125922325254728082183424666249492459709333785480538978705779483531928709600089503914297713701119100361847565064278227006939513027510312162949319207721090518312714638191293893756940234896695064336602891368011067480105707643455387453891013596211397980009489360424834248299521494861173061397753132367591103275160926490998521684929882962996482075871419613260744828552339544303385522746764739485493041213420213237442701153697604244659264405240589292696840887354520391945630015122286275941593649582588778139352673520963581434102603857375959046000805763526384878728763353066294693557043037774228507705292060843857664434719063812093184209305524673990681555988187295079548123671469058677027806061878577511640162195886181747055212222932263671250642463615258597875657346703387068478521683657706823763318060848247762294191290780699430013603670654112528989161147514194569389406289518920498874147191904646951439737061722276764878976113371723500254019920699388059196193598694060690694267870432750755531533519197442328515510712140827423788164488269186002143564698553108485655431604259565761557778134885297767885870611385917562722339375504776498631462730279434375024274125653244128685474548423369948860846445753582378299066344422830798678881662209635560281292455233186566837732896102330708111545338872648879840003274815623726316763524792994004076647485690172155964331743350158091663479033563689620547548652397199704893148821305924622193504022599724876441371279124003707257580166109783257885033038331183967756485409305184773527467706968787207069589356507964173549348235980185400942041984528320498272112322558936243876346068262522218462808420392733599777485063370305728050120795134809294370254921990679533268592077404179989250580797255620044378107399117177320881816867401606135715001178919148127607064371137464078590617509527936042599849392968160782410192057572392673737425224818786978318310842778762709581524618248307908951450286743871894101734173461058974063693871422279482735646811437274003293314521592319659451612440448342353517559033160176447079143972989097589838953695593125215240965480207110548905870822825219016546702628955644830320105887556242316138412431924786130045818585329752952965245735434970751492839385466364724541274807007347319287952592444991397466643724902471005416522984606439258650517183625105295466728903216911646142656994499549542056551381365611874736740844080064139738566832098467948704552843108258952391714241789522447296476051936671390763331845193796548745759406736421775271994942023250513743684230860379713151980022740341376658803689328712524735353553511273011223762464472911610515076097891082175054616729674571119508901688264298282822636655887348868267160032235445302875469796897164803723268832278692320128051257565317435460348183399539332598211108508925312183599204121218786463397166948115963213190059055507581186591052381598592845882374886876947341326815743899053658718385679477678009375991640630312037550926508975974322125501160781953699807759545805908530111253963709208716702625542305200296699054254956880843818319683024990002624798000878691339094717261440458816410313028919710974287245760877950043013698790051689887652835007125029593094476517690584919023047996306133084048538138024381526380516008188455654273155293755110471037675234920490973079128621402692866422719527669034071164176564927109943696787934838115157580273479116684800745465456263098270061517650301933186364550764680603721128483471854277652178451437131751165824866169154220602815406544853746601936808635351182643564728499802075111373185367645977258872595954212094063949021620055741055081064656224455592069436164005934504429376414578090642718595394590511023205470455991263715800924159319409607297691866581571070792652724618736904123485893542181960054114268412755853900925922926948236200219370157206655789950128058898091551407366793885248332158675198097737045402563658734799156994992992165185185639947997936494750326347497862292385256387718657327676553284556098802882727139529472417304538104455389383745556662824617672791379861459003094935894900170947396915012269307529160251248665389832300756671818859514690658495624023692854748047628859940308890860590595244589492024682823942822657417732754603736104968502218912056488993152945334782330666531230277474216686843282626808335759408280780426307353214796266425712969918060945905253592514597635166457236237187243267062612045676073808414613529097211601855849442347878733318476390290295012375553663194620660941568053992360174412392805840934431025081454574642726500190759459174263112752039452488237188460920908400703153751305209691433490264873563130615105127125232783651607135513644220656259508509568228756393245441659925369045157716060579010594504006930150710218551689372898834429294094766676286647288461637288231509772884582371724812542238157151585170392246391438925219166396733871657999798893259901700702320216628574353363389757970294247230781885535929340992168430445067246116946952290895736898295439945933957707072195065336558488933961659133735469711778755392976670584897652989986026188475559069783039247846171167692189585261449510812974157417947331505969394532382525490228254725498406017812944028822538163511260448371752966117046264573082773336277851451781041502446389746770103002995177276378040112011039767398717870691134710476958439665246005110201535675622755332021100906925019497640504740393788127647524782462859760606776499955842531492502801453994395033551640433279461520987023111111664813847490740376813222521384054569934004099536413969423550810815698135068011891693005412628647355606781414704165227587418894804550131765055963294409773242234162384947462950180392562167830495553261352602465131692621175606799978490551697403498986778380530760096206856368281831515440575079009193284710393644413431302936539333675283559924147262151499521838658790917017609794443279992674469680350936020207918127847901829205458737552951437294843709799619290551668447354877392167489861747208234047553125177308281260051217975302908792886296256019502070417625959864582875408274408455236798809347896253029817528566266174812762452491562074066446787974787499560539127802462357564860558871006876375366843847598752941206962452283801610843202024732960661097994918041047244156191792533858359832165139222378505088031118632694590381726347326321966952176326644023942432971544557426407057734954398386360673161820899085301231045415360496503784930283859319038173067761007942335883139139811118875253698815839797805174104857232354557422911020113353582063185116536475142711082985803827577865939364896553515490681025202180184769742492278350826131387530449867771398395026187756587246209731663426039079549288102490139254548786875759026843157059772024951073899880045181229349048390133846253930013378620776673874725631085513425871105796999231912943531603191429152463467268160450446277745686363056639027264764538321517738447307439876052619248136542324692587093797078927119006039726950618901513207337305502100976002539149798763697113549886795938115410592402893361314323079998680851218746899438567170674677866946919632904627886665053154893550664556659560525959414712459012422922914953934989534973635257847899871601446975799630078014249374037500448278694034820466162556260069092215310563626953592554294840814677808743642765159050542477042094887801104377874609348229718689664401467645228169834250665297341093831097473146241165283053066079964113417233742663419452145914946997349456443187386507594902274649389396731458997226623778977555876840138882837387010807485805727021056730608594191674060592483185982846203294513849964763176877616802107755841661099734162900586804393522488529519219554672836848224699142706224207240314036763714799554289729814437484287202318059295601803073304482759468364590012532978362041133116971768177105863972557479740967626695720083854285247598774372867304011718148396123042462508463344373332461824845928872067333339228772197427035842370547065994536892630910866640123026987744753929514128102021638022842081590348508707311359684609350939796051775952270906292882696796388144502051715010628545208756722266464380380148187618511248974346543272882641285395596633654904267401636191673767485844406007102378154589428044072808024856874846886079482866817533821710428783944461530060944802291129056900861440238698015505117077376954102765666862191434021671125425072922355743095636929747513578988972836047491378663471377363043629709645453978632605771471223193576378349843400772348767029154537564940279422998214979654003791804927353770861576797479699944624499359624178884266970094766442430608268955318111231071903316507812078889883267883036224402007959306342231734239968571864827774472261760402536351436504936590125687710969037848446711484981205627953643216490951760623567544607773401480689532042618998727640792286662020889488227586061775207709169462483451343612380142103727154690940001448295869994425799264626822143535376696752273601128342767400031258438464747845098845403246791171340918897204959724903176012905121313373643156452141605858532871374586034414054325928976042552421809005141275639050213262273385315475738971413756940672014478255677264769509380316087241403120458712573341063820110731901015804112367155320600624744892276449431359189142959971119888890062549393242547951255129101193290675544432151458074321636737120892141161475660139413489606703129592629814551628910819727716868116178117213459835915708343598697370012676209491867563001905788602691218024498443619601220313230851477931967746050042728949422216573475381754871340421939399686457990055369895673761513353244050631166175137913281294468243402660534281205065063462967107077922039789384906944815005549804598806347926222872542764184325540771789728818410874037794319458479793699871979307954178415838006550074868234049419486084021883763241774359042384646980495619574943008966115651682148463105616259296118636721193686530341456945626074319563243652510611272697217176796806708102899199208353008521402373793744648600534529734275819720239676671984464352522629006555320053695751752539766436259834910202544920205859949650571795176421993247156292886619356808538849557329331035147186830070903306074489975122095066626901911034734861556851641267321372003244887358834691128356356309716487460320215686204941873851929835660461128165303068669964323346066773766782458622002855435306345025566271531425841465081895775298745253642172215734276750205511126094607229199836869129415131918642295655774298345180189102791856987945233508823539926173287698655771567396694108221061478526483579206123617324107424037705119421057090892923214949347136261222372103480121105504086558127009016207506821345780442105968408937665156547266748190145072879495022366087516954982563689299707080971826308018823161727256387136775808252168293452333633411054545469346732057401913317043663088298641798735679079294321913240934361643556939979556640756818665510880897191382089685264091497518628439715172400201859642498256501403531958046228289435126343736669870013035409162231023783558994570434599772132773492959188677924900138099868078404281151993951344378660840806375466336732645617445099692565764879596331342519447237200548373032799199560565422394949400098083849684643974298724031938593320745514103073540521374179685431515815783101381819896865755355631692452314391332997700478916921563635012264361537058207592060683402365601013489673835192404989935208193349870124061796027233974309394798962384944384136440042722816707096642106503660980479674638099591960072717540704322057615338567360537803149826924844483127775072964424470992973929821005969564332588843316746713033251067563660528676427692249262140361559026951938304543796493380079512989331523011230390886427517124974418448122385044828123239795075225443048355934070085099311470418946085525398224054915584069606436394089893683715540170278489792248565661470529156023079844878563232219410190706822255671006959237138138550234018328122868961152811728426410133504884466813949655395065668967099439072978631789128643321159598148309094219222993199944095774982737185884220337971178447946289834945721216510612625513101325103086349274738996063771462688428804604244382037221114583189211862777722254132314712822140154100004526116732683178132073439353905606296472853716841762118292090527952095588048162813540770136252819808798311921178811087042207770358804341666347209906888895337330562122627829086636663793616123269739535457712037371763607855475788262055371830966309546491924087629055586918963366909546309583378732197067344845233543306239649383503902025280926989403355790212225209637947140101791856963526828273366112891127849615454725322409290523294763064337637797665419463923844905347157200892315737462064797895543941118343612849615030485915052604069717577290946708312207334591985276816390119291093662628688006551918611602102017343051532584266727001721905953587481687635645817222213501574588556686453024402264527551317352765282571541345793544915651977353967991313255271554899310246661780146515218896938796020246523468731071259761075220664070746450319272630054193563347396763541385966183849330620591601561401985612964425903930757922410724131984779177182682101701453214274165151533807073520891262729158085655670008636955575706028782738294556840620252624057668658693062848619143381989081524317445642510055135477246445598017469739208868616257780278810447233330844728895142201440081043375821277873780019257571123226907572626347892030693170197167601859757163009612741268320515819176040475997058765207124401726818233788333893451914072359985114862172051314082692405729016078524632952129065426768564412798006265585876312650457811568591587699846135015150272205701111374379912001756449680295479876651588157712963383934160800663931412736231042874133498306356057632882926580119628738295669094770458222288754107702424516666737227611581281553135056357341004293482344784877756282831851946375808531425431221531508325545844006823314484064154998003569552090674910615647093525516025780647153150895833236617558936168896791888239892742836744360429750365270315612599205950276159119508565948686693823574358940180958144766893781987329845798055299152610295136870982282951334836807002583709812188133500420867901326668392227654701549574869822071615825350643654047880816196020408598879460072122657192762359201255416570692046366183809509251943532774951465685017909679052490672323434746199826372053910892567683440651338887427965156611994507275807538763272492468361833583122697184888924486041119393418186094589118081820615463420906403173591175264919835155169664713174152066987414939432410804367624453418463967295213588739125773834719455135206795861957714300978986395203703796546325195821924779559355073046343514225121336951095089264073426405452120259386880904082239430190761405661302420262860160656915388970417249513118299243920610074919186970956129727553823090897456104200883890352186342352197369287699210031834514135534204320096223234429407172806339078736228164263444008207208796726095229215463587520784486166861249133526442509153815309333695719967468768071794255833989529707892093175147380307375035652726992999290309432171097673353410730267861885931191399585401191255654872025403566422812553896551159537963088256788887046954524741274810669239279418003764523897948941936226665560966428233523105013787912802449833453410895639220148532292051514930655398302364395826084175264046466287366924142129592494460652154069186062633933638234919836989748805013297694153126813777032144417182013663680959343724640402068274053848923897910636904938202726489358287151886401335905027059304733404570470419385925315867477696990183647161295971072405924398926792712600947464771704093102137928389720170805725291207947617592380684298066744040988158015408721416345733134715422548139411158802801761332730754037946032596832416890790562045144522721957132057880798635188857722847172303263658402179721936321582426990824434042908026114446996206732318667445086138651663717052712871071066306678586117589070165409900584828197891136569023173733984127114243767784430365770195887276832778844331206633669318989228925987817223721633820240193361638419519389871863369723926289880227455700231017870718416450767602998480445566040589324477659705983622801427348997992360447528195711884084868329217450092705466858602485529650754281212778696144248523621476663790790868128057547324257910254695257170262283661299416443976923211608212971488989742345403449231196642126361028012086975885897262427810508574831290303603696976740315197352242645470343898664008499991204311073087253394938347344415281581491422626345172479541865561349249549906569588312302855429204693815876827271524428132596088954497945888364383738095227731335971101569309294215783240406373938737469915193545517679900989493572692865282416671444813730679776788770535230159153922846130045382703460199093363543258690505984834272916111591447498139152555056463288594004954242251012641283385900332711281884760396983922871113914777391670211440139525644568822906183710202255199141800984472451474739973917505760877766741791951081556251540936436600339732802497039377690809442803785403465583141537024380149296266904038521788348091712824438892514053897407824376159497259608778445432118369069476525438770565037125105985228561905602701450553665666805686058287587829267638173632725818249773266397133194173629870228500186528188672663921680287734652218207012115237625754091453790196296593949210192961660967082249105047865647134555591242883692674343310998258046585730432880081221134364613633171972725890027841230071298596545180104438328953949012657990082082002586017616314357828670286582731548021469319809912903629110108787430735321065559297224883917800949067180902900488707005866644807062185217974905241003385731881319622642778054948193739790243927504610727184582095491126605793269400169019489643206641897198631219114125419939546178454311253412808405861159164957687008099120301366646656089804322084647475224833369063224783536500509078070100064261171222178966816776476634112332929756233445492550465580144037975998991267554988921493695073423124483999495930340067299934748382268047134723812165245781891864049406213836158186922305570632476192059233386249675405238255614522037655909602086529801199180161061783668010281766005147477224643969206946663638831287787413324836370779555353152537357029518825920869836950186329169535143508878072159052312506840398888890133070719907395242590132794189017294313132759413147933888358619351419065602243014630073468901804252292066867775628333450989122964902641018921585636395825564830279681312892007488011327478522450584967537925303572019466287391463274898068222427962756973678687664792077792909772521941024903863325604117958496824584980406597055777145125242560410893519716915124987960429643387024298920074017978966604266217163567267973818953865437123469146666427945034931678987799746556646399299899384979661735966393702901534370627234633474319580663845558090430501673207535586057390206329439408172756925906909237304422237748686889177706229733531603859705947841607031747622892049480658732132121061425802983919305094447856407808476115204478691563092288274690532793348266106504699995959396786250135067366787817629974998597486082062794318478960604898787055546856044444171727399475600483046549594181188751403097872102610219652239070524940130350282307086047844191778655976367531001676767552276582930156877824704825650054783213428000936294730146885200878346207800053564645182987674066262141955910309962855871549730775562301050932490324413059170704864616177538738640333023369467317049932288831191686449322074690834008082405891421167502467536531159679954975040943764247631095471342346328379643148459987171945124779018199540704301120782736329099028202570528991639001593001778259074691948876807701414031488662522313215785646237231271743851498912555095303261034012062958247378018101757795066986485553278300980754810169802836862499852323763307381554085700828985167481254734668671520017597163660520259386759905664665163453586247732262670638530923110922169692094191548392764251467620198004890074086351428182404270716040492025943432574922910687131660565605942486742287027840386912711454754125434310438046570012704558873656880978354100580243795023816322843398998191893211544820464309815263063157236695476858720606679748964759123421901697632818421732766691848263505601703912347367081542518916275654179488902674439613119381297141233773672859886581946689079598212090124786602258722437255278792360686206847479841495712349927613424980402457679612925938281192723370178289071347506082269256890386115649797972492688768243218811182609306843008061873917580045219594001318743482411576807916118625771905316134807531301698997510508729642498773658709600992884407908703055886454797138595909035937599069355165059043972855705155103246797072140918629910927403114360864443408438963136280743517125515255708907775193072022427134782479749505568345404443727320510149555608960764633497633459759168685688652185627149532198810500635873091577621537397235996625839470980508576146216033811044685440951071107400689207170705567260650086777812940285362098116277369265693886116937696747791325901941186703872277852664905269643040484402092150628813781093132120305828423090358354294909561323949011707634303911433240305826293972903930862077881353749393145683167020533286542656755322817687681723547223033932232470610424523506255274069884615424617040779198160564720777145709040062602623467439735018420256667888117000669270249878722525174556522414542227462736777024881044003010335481201835880446975157028499075214121027355657205771223831477741164783925484452659743829467907612285822857799615688020990829141018428596939932138459783120509807471000507914171449805326741757529431168893402014061323938488664103809234635940440549520963827293345922598554734724133987824352039295430378339837198680730588391315543248627287614183749161536467172420992573775081437301639595803312765481530482032615391011954343746761756180652952448255913234691905442295889097974876255985077720141836591147361786186530900926980311032658642037861269069820717933398918409963008733629983303786080386166796964007775142805390407719152976568772138728734378256097106188526377716139345597030956384004127328358428636747918483238659584378959084955861505811290987497525199900841953439879576251388592764422074856041879951783735994258041433390078691108484816461199821387505405747097946809604253074909887380273528700421834853552759725220044774491346883544136513076526822015311715641718399517607612298520920428107333358028874447883044087405129620793218610042517869019669763109654346289183526643046253006681567629810519821012159201158056692023239608553661275769108498056812416171614530023843530194363853418183426872559132598956278438312954926100806091944005309867357445959569767509441494008215913096772500376816918216625899881568619734399189789637180150291064687172875845708354266755564496444554392586545364719045830632917823924757325103577067009463413615781919449301365533157993277250532057426769764921626048334214598639994630781917137859078391356604074606199403166078900495357851314624868364743342856381617917487662475973825122400192934544939059352447951933450087094759437946713846112651028647050988773274906440528093970175484213557138644091030054467357673581105396753494815346712456837376376069885751269319711821965746463519426051036388322618807288219967598650448856316473256103861265981083993272625281595126316670411654301402826302735406043936881705126421634458668426499301342088962813756071407315773801934212259157484138769500477463463686257141242951450089763226006312916999205075032385048841027283203028002019422187081496111542477454439425402315502677500988751856419487188845740234703573929041014383246300257219222804856293624317808249335607037413337322796601754873858092215629769318799131588044397505494962564911969662088137419015991642408449567626579302285827358889483915709076472301666893040828336940789574135413300212004196477707771162009561336967862279959606547904470582123760243122347166985363370525483466714629085420331596687280355275885116505451146915208585992257569671596646213944662877110680063534290093269940827410439040507124519665174728923905670611582437743078343011066545588918163129089119066605982866579964677522583026081106366958288897170720829314273512524073900419716407710541437484675815734271474165680520034082129222599377995341051443096634748881958821357479778725481550390501215818559021823572583957865949572897137774790759543522657505513777088991908762592921744823414839884896358199851915557740950298404802158943309430395774461023585305776425553251166649813645547169991257010448652794584892883069161480036270351331002399856519514487724142419716015994904700822370845125685313181653668330013080555637753282459248918822236868933076461606453467056707984268716180785528822884589992415831673076187508020056193872732718564603499487427614435313595187950698973419114065179917693115135655444410916467969708270124420774430406883350734889232598101309572837911141681467519076685815317349707513851324223401505390223070425540032849954915699884961360645148101391144714212278166039389453566868718804284664835835576005900483402029464605255347974968404522651543047420970651272946508871536497663101721795060971391563456169536084230189646294999847409673499701145633304607826763856446201467656167222331445066106485822343931689610028844682473411593475613388867390096490523743648000704843228066345765049460200224410075840877227471073743874925187134627189203148679724317335018282644400071702670124777866325926334133658077422521936609043778047561036821598605842348737911555642411581317787938777154758005915454644027479336912490678648944961360325853132051786863545694490040429866302505469622224808990028347185020470895274534603887018738950071133441002228636657512267636882379550499439207054455889115176221244852219542033530218809686598983883312308248694256584950681919880689544522846975761946201719945150728866005419950479344804246899664000762346468735250574659425133748632656061668409765553953354039956103813101605847032645848021516753676719385273427909695666690364019644933516042908829745220987962098111808903705981853230559375497629535411068424555006556999589375068322426836332555272325363614955658220018095012122561133397727015644156892517337472239647993053105764351990126008835676773865719420207574759721050416514978255320315785599152522059876810043520717799600447128147455421762949545804515302115259689386627111855441605811201147526759055070570588988391459438361355945447685905407866798798126898266140608093585742265739085771294952707478535086231397544686063852502449883183605905922473636182421719223545294166951935267607312521410025464729287031187508988668497774976611734043775651625091429183040191484147773880763333422188243511218557967858682443563715516793113851187203387094564932085519856494070848876749051350133506594816663001599105902861672617048292114883330038822375637431755486780404704267223222161816363065734866967432113328208998576617328989591599912686778503130417400453741209228869805123684242258358314493120622436084446094399644325775440896894448533180393866136270146572409834820156443478730440537311052430936608127079849879674803634584677005164821729273189222553734644409818175073918068343840457475321069626753834544497126965893966224827455927049377023288051130946891658293203452826239577786797765104556146994235073731613954433630402688007698339762149656265710137849158702299637003737024778263441628255807665824471162053882556811760133373074039642079451294917706915283464624810640649019984339515050676152962888113105542310498801441594306188118713429096827894349768021997456648562273058016792260279158198203370756002564419355191036536619559997025438266359953468551593809144404701191775273856678106086199017268033615442148488014323607172726266779739096884771092560126240667376141473004877453021832377224380566014828026018523207558884323508311256095509723182926064146322605902586567176107618609915079185538553055570293007269342243143064403411293691397651643531612595177210323239556455803789768899895486752607807323726241392505839908678727962021065713272981832784770078354711610617259417271943895355204959813134702609157810635603648623829996748421995032047695671660888724636849812129553222763815010918613974924832445499927360061535282377332206388846963634345999455759122668253085706966631709295383145698643143981955532600838519900349218083006132352702740208673396948909366852418895155641650096250996955341816087265231025433975168066806228091668347169552438952109638127207008386195291279648204563186127265008914590951788830160446068123867028316018827369362238360707113321510481534883657519412713332162895520484679862597162932592349003520360679950618391891799265714457922303637062986370358780951366639031222507169816738021066331535178125560657309185916522425069500166028371589387780717083548457837774922667733744776258936910303388010467962634431855578690063068514539846393596503040625315368851747825669845802539423520339731269203142518061586690030476592676379752168290738545101965664831688034667974655401093169262335113614142179168249720956620240697996587662917111374203002546613819165047729457767992154379460632533555550176921445445143019456017785885773235956024260806044626480163505194199669989461233250485365771363609686003164576221148526605661502154196804598571680234631005357760113709906004635180534962355786468463322111480633737356267830483556681893104082791743055901409386536253562405482210419833376871906831664569163516965914716631902022012042432691900857377080923926230610480387664410146704198017678000857590324366264456719264771768511316446056414150518210547501962253895871998685969307162770485301008172452013164834987578305152214291441878639286672410281628710750941867888589298300291223357633936873962297606699069916988685727916756085887626567092927655641517658051569421351488335057327125866533775869740266754011524073391870223741896999872339122018383783253650145887979387906655426332015464713514264650393178282993201950972761719611835177139674535677761459457800457961874867828581618895510772311226172979820720771660410208228164885469697227652403246757765506909552158699800373814574821378642221238253664115242053516942770992541650856622535866954134500590141347451469677501373451409487673826541327132112514557195034256138901395581759132500166205865656851694258342784699239618091757829927042339573240885930377916382551304019029861542192722533959064750680196893530143114484838012583796471661020327781230038910150835859889990449514086455930278641801398731286948192051071581273026248775266453006467419298049271115015255991456594879265393133475902594801694710230444300025329876595075207525407178697558859510606123404965002195904160734399028099377239494859986114165958219475931339189202775061259318070610897441673902801148325591989426764937101082571029930476142528042371720286762141946512905094559267169052300741148228829498476335757697730559883180316236045129829908724619377484747938339981156602566798462500721601531060678013276489969408780565761789768860123818800723778708816038175529197528763933028535609175517214846436159380772979510148940416651277996693194664617257476238709165170270173379344674169068145859104850894763463449782452508834087775837174379203046306434442412722393399544929272052520957810244191509475048799053411729177900578636511921235189557963716778446727851456301738772026111214865249599510071439975315118033582591578992245506398892260260488948694959365929878938245128532679985751915084797361840338607253467798590861183283259304665214042118106244347973242717172062307112045852141231165875607296351038686766093911385138506308085261930569251961520772119435210439264655097913417057412239685458732452573167028757301935758136176121778332349785408808058585110109304710486775675725280629050450211762293391056700357033363775378622288535399308552975069278138043986313862595699324765608276108272747854971418693660930774891847602987961063355629333564425403401652088312317888271671897413544484000033414348861954495043247618398990239647502759375591761418144198008731577008158786230317771412695870904086084501366173627684082185206077881301073686068007737892875078740909774742024575389097948493419827078857344774803784018025426910699719808061957956135225259916562226521022670456575789502346637438985707429279675193698100075225643685303756828650612088421072632393987653982589929636703614004980482867538722068759498202459811033506653524984793064956189080269387713316230855239592973665520046868216521809248054535224572094905842141560927444065565628943541521877739664702124109552224922027192041811082372731022462447645915056195111215305347732753505862960066602575097593187810263792913039263480461650906798989634175915816277690111693344981514262780149838402481592811282088719444628944879528118453093525445496480411086442591532149831157459413806525001068358226857667949649238783666329444781342996401614389433648210649475411355983126929495253602172396744592317734370124227489213229121363889037675206947953152406689193706975211578378717456789500907166608646459194225318522834648256751821821894699687140306070266506530079914433487241725899005253425276984339301818474979731206143984007448972443821695835799236676828800213074124757266178540605736144768359054557030433226470903206619294255063270082929135846746994252460777342793100837540267028814406279497819579012143785048395751099349830107018552619804983191612130896255305880772191973265714314286212944919360683540948861160528391735666352724195849139916455883075107695192131432170710198188057289355421404486924551350138625738219822306248451158356957717428263735678060255857981245198740943824904136323813433323370436021812309733371510991624326092160834294555605526521726708825165663477887772483403198270903302530053070867323875250131700177126640264361890877628836451979043637925654758516126458525984739975466523134824013458789961086990845174844761593015991821840037612405055209750993801572451086050079805975237421970691783535931606185033021037283296845260677175621309318632209703834427884637679575350687573950142374149459675399159529538003674694824229584317424626589839166495599526937485360341624924346419994736567674592201438685865704739254158879031328209395100814646875416610043697903677675925126597323394470937313983748614309641942559295759555602859986528205685684561365699508386400539817362957882582028199728441259761658332080049309331330713013727601417825156532288094050742032217229815291142776977537507573485037651564887888954589101866643071795937888318181193641529149824767038596794968351869596430804261066146298402945698243003886358309792913777695391898130506051134371792132948607356126813067419725814997723480981293193721298358895385955546737882908255032654223210901353974975189929078518713389427131609858393133093074036239764027420927943698079469500820629648323561479679669270129530541764381297426848999013686765658058413080438735007780307779206505725531414176821561375405855594134039910587008643107857059496773248335684216091494039331745539359609333804065339097926345455220362365455969635737990120281863308236727730561226547618910206137613144273241036192484879444437447380811447841241405927681368173089992669744529164363017891693228067916883971805275509476969337874043752371835313020994022593513198040766256403494707237789827499593268664663458459734993679898949802586006478696825488177003820828865923965462470199203204106803315424870744870980147505700775114785462389631754442798326873725963255712048982373781862198628114061391469012138219661053520120001284595869971076398455200979389927431457255450640081659864415637356628970084637189902614253863626158785491175041094880294920479815444783738878765690464256825658023009961798576766895816612779174277409564436593881557874818728191919731941675249397476809043279339180227340967063253526733391776694677403258627219993692663274693662816804752773338656875340593277615877798037222033897640767450269318799738375279934948450674910019987627343118362876163320324798856282141748005287518002391920623262888486009548146381271025345911106312201922625213425535691764431113515583816441262329190288642299433399589068056178615053695721577132518350244124558693252250576939951029216439659287121327920113637119328978547173412931662896420369049265936227283247630394795089527985267873504681585275233785911391812646612290746714505622738915877245390934064494320160830932855220465391488209092610659863352426642079661610605335792106715456389840458020948693160645039619834302427581428277994844231525482265242094247979846849205296260908967149290544507373535841270513384817052678214316637057355117516874205553214245567314259925468728571805761627623529794950334003333387647767776591821291454625503686966462225047126427075146673115876361124040182655100888682094399445586648815140973522693520003389836326664134767720694872643824923041371362847644925949928232680998402358864271341090402655477256808500414337761275945328177476941874096121261330025579189243027793638012752223952737446261127346952353374616731336634671050196398119483628430802922546282195437546651096501019590144992950335686571945970237940659947979799403361801514646717344958048450176061579591745515787009506227186395701041405417926459736439491608653913291107975894165856229903200897473222142902577788614922093839296047374156720043724363064014015952156127870902104346452910224556659386142925240005946109300467132728164115226980569722284093147590391711543284911184273068731781146220347857847878309328785341610104481335883732818112206529841075130667362196570168009608549638027403962336420698165412813797294921331708519471778368648869267203831214682568772302280391737016365199937984010091553018657232656658084108209953167146795517252928797913804986827475675591940024016289322579398492800556683373110993241888230877172911028338686002287263955048586195957344139820683782025997859924407424279155755100005982392821325920305071622458255760818069022378852502377643498106974689454643326516079015461705106072689127021202028499197840338495307206518289679842353995910171433797279011447588642481068758789809123099457537119847390014842717234143793255215462141793735871359472584013021898601562472317077936520347656256616052209969603154908227990956058398526559153770990160939474389729223915755083062570500555837777454355004071370013283390882295685332715124121770630624958731924056050152984961792282944139635490537007129693541177442535663056324344705010370577189026381577383561554970951397093791743122925278842932768568488036896516411473180422428160305114906612525029880539865435414209447799755046643477402088109906092907188095796196566236694874641291667890389302698362530669066445712447107994277605912352939110072255474471471427038787934381821504290912048937478398913196098619249711686267654126886633014570661172296058886563738393738212145975750578443030551349260471659501542316298082631444895349553958314932537426435553258292602105450461947403341969132518060245196486320547621016923896460369413994932539254615318476264501921012405505848277847069233579980011245213345895246650550268076469074016055634049069594247104974615332991010911921848772957205886954099495289489763164022001914787445804107618324457634896017375011794962009270836788838956450234177032259561682974448392478342832122819442527637558787065831030327750383865279048716710248838932537508051300043688685655776129028821519073257153679615466784285952136464188800252845484626171657059351791416302110086529353951027655686017952085426293391352563139391621555345999063867044729335977763321513458495993450822565937601443123700210327116223910395849546114699385376543561712140700676504980413368972313771544617701805587309890480645442739246428611287958465935977905766988599694946188460820659030006469839476015935630785542021217013394721702345254874764199271232065081496017047873435036507472673855957151183265186259918251640433339740951189079191744529422827904964224700662680467939650210351089859861911323898502534602391266786110858174322611711080009735180136815122976892740084368488004234495745411588474100659516782903520982069872853298124669796581275228576566801969772304202509209322218013508096002527556271547429306666593307942942559202656804955793489883070439023427658037601232969474871372528492821716174983177371449100841731785674353645484855763160606707152976669249796339586839431353417801768881458654501762047610975499489697993062160723531884847687826745975797330328775774294993685401755252944196030004041044188518980013581060382906332090590996497148202454280773182783868567420789532233582817091678114466622470717212665501069890607264188484427598888243852717537054409607809959934856599449646438274288565406677764698679133348709107030977600105271065115346236491697991812439535289429289792882041153973583166365943403943784937378582511030452811060335177353106924057027552212941698263819725329008939203034481622625287923129908684248792250153091892365622871043605722489327691564072182750030468613074376516271785945651761042128391017261854800677158637802861919229307865879234344861401077020585795808552651508176998342927578515622295568212363310786835350155281807290921957371600654379422233085924477994678237284068386299702104882786335396689389153669731427473302508281857999082181326557531453558350523724111758415880490489945022907395283768782828912438861382044798149964815746545758508606988603059473162765884404114113842807307989818576411642869899882411214402618540653756193019197171487774815289329079796540270517269162686713402993775246130281425345743172273341255401920571271588014965181937193032054123705031577611748403253718231730925836960009561259562031001466170138111784092528884326328512485320445190371972872002868764339838960312950442624003597746849194836520117526826237436394783514046993029598230583255341955675390154550943025197320493222967315454685444778499662780029740532261980654793195481039054196580326863480391162691944707235477531719576797973208829915705446355121890803025352542209052113982173449315661726768351412476429393958061803998499697738130825576028282198330337508815883812736173667751965614506306927507387098968292234278457815041478306707835954851747104315616774983755585389283145252403102668350335200677931333198358840451165123252580952462774573246663450116811488465628348570314663584878759567606074434352219079164304133779535725268817096720433872066332927786644215491940606683349765019106221901589223498693322746827276259205119848482129926118351991996072026086360240876568462516580272848232260879794977517849762616181305851537730738592099638316563243447732131403619395525812666028748872323577542976336032165213135671533434893356645040763547231039139399952200784325358902214728804614522672988611114543530563735850353794497365724605712079579175112271863759690227330256596873374170156954264514259579756196693870978005292651648185276972463122444725156207324093604619845816890272859880631059944116808994222899491815035432405003548127475139138110964068242903348650541366217635838392912089799491587482561445442374331828690146450869949282135477236587570137154635995851625638253594193025697148618505598852945409790519756692852341724306612469876271795897264765761313090232534878875226241461767533964722202457272862771906632263795274304300179568552325233220158654963442770189379723131356350946691729059297240047345261909714338158254792626422730663684113906881697079848707667552596218293130159929573679858435002698418612537335526076407508049598069496469025421794958890197077497390822989957614793493089541248840509549987467358076932833652520607107296046829841727061294058289042719659194572149481963473176329078225663971855277514801857703127981740475852201587989572385754377722658862909993337075621644583084208836472005905032657236368587654728710738423719450901757288810324850225427577861284019791298064458588149952101339661029836137225834948928400333183601696029509477213673813937126998594838605411264663646843141429350258662459189229292103080796465967066222486727433379787765541741404037350886895676699879778889902014288903621402330023989542207247530422385261879396547810681994702506812340231659444784135088239939091112298388457509060012577328245343488429667830213471058513201416610439465725045894969784210133363746931352793044321884025192933662631933883461980054732211877931456996883759268862523618742467099603115560778482475187137906329767163592143416661444686209605806259893656750022869683831332719594123020214896588655081379617961003480966185889566582915729558345274930069460013493155836307426281527743982361462120210367564869770373916338593900570117214392502820911727770720606681802065735118320431214427213675388525617314876523382337277721152193931866655371258801745326827530622163132255648552103476226147375909801616796181358621259593823013106703566253596061282200930422598569411604370637430204234810869527177222733030526264113089707903872609229792740617412508734796150732479772975526588379152087974922072314071897354174339702770566279426343927666137786761719002406530462210762504891206718685131201315123695110280552388972101985922495770439321807536352256418275476643304067753998445195097433544198310545288360419182611266816426615830220209480808209209365866365941835286110425559706612897765089313506641079549969869846413696698659382517648772219022768136709118283491517963172218566424558108094596236039122812948362284950239149100169353243257754336034028394205561181203114886374059302918632288522629914393467942578551296710363233182235337112015996559956568721990809942418866701962635179321897690267698057579986309658945346018085518128732264205799146454154702457601519409499220045168022138045070629625312745835267769989790109487058855026266065670327218793382843729221248817003535365643975828281443526306123060318612528259761819814880677912076226124787903654417011980187578662634785997982592936383696685773828879250859477330624452446005366023262735815814348741020752320072609018820447578125234185092455530084546371128654431037144766143554059100126326967121059591847522181609932668186479315142880635172240522678758328342556011802835440863206340518356052213292069191148261563839121423538780854709622882747270286711789871456805573761302842866633122649748036786062353122125355800350191245740651062025573572755200575981384249874616222087536789091954949646871327226417389609668165225878788258616733970770692343255678227188481823315458672761241703385920595020540796349599609469095094235104891930572850072345508332438343513900792243663237081020337812553424821394931773908391543121253117278609475280484326682251184068497325425907263618912302970853321184508194618706794763918007965334514335232308893222503453086662299233881056466214352896716376796646902341402364465540759675231764474340687234884586414209695339013716407412880481948981849894328852362584098673119248254734235032576595616600998843336617709435787916595596529284380427484816611859454506856906683242460124553582807400953848285132725659885551824515670786667655590228262921814926567283875106334746730118630173074270365452974331175230644016664857370268564293519980223870852632975146423749363303174972968437334303212987225088627195163813156170678009291197988086514471944408937500295653815539301079557503303747467463597569226328725620980030553006025150417215833211228799366351820757681067385096187673052532862285303612288394189467309132413632421200450047540944220045437372062596399594875993913128147171329040918453811216322867087899096708837231132754306595868762651041553085363908328578307370887015266981144331268874455458052588243314924772732720443767724237892097651616840462864172589049047138453244582616588870676287000741116453879943083096644058866473477592789132766655412731256710925437716571952474173931976449771030734978622397975114452675760202504191391708289306371422997982288689308462457635186984881449909612718784236484412951646041744712665589296790216363400982392862623994516410136298490526424338589266311212248819977824819359192660025736214585955576422865836987253736675217025318643333992487422728019476877759737581595898278798105212672139430444254599973850176518812662303919226986529095225276761585148283067314292808079264654653934700923098794345254863330833861164364538098338916488271359844159522554427612059200040321409248473999074092189400069881286321190682073785749889947633114678347978829570080049793849164456344236670742158583240885946564882785227838347630918048347376738706195474079184079841036259118205972411208076221033459749368084789097704418759125116513856742413805552711165546203403784709454290504897771322192903832754423507918885216640740706010470354966338892340980139031304079805631430758069073595531584721292676327243420702550448827964068935321226815657056710846442341372646129734135569299011528196789593627858609496300476709719343924265824267615164713334260859682178535286296716099458331006332740226832605451514398427170357046720713451402950466449659272291468550421672289257368931430009259718723013671114382878814483309475015012618090481097306605089937661702749401992146452536120371236988979438801799372684331079637847390006700549883870811398258596752057243346380110693665627686113670221883255322697046172747642395661740403530538691566832635388544321533988213703228164711559764781269304050319784434101527994524719083961650376182505671497364008149825800098966843009545919811911171814963700197619284878072497038373245775063863284714996950095090417464674690253115344642928071040072951920197696749073605186454049436866601028150188176515729011635762295569818680230527523436800641472454335923850724287942349140540761954957922502777916406688326104419376464948356903102227905431000104833820541727455415473824976925136378480874029628745513736870501606869739747334640000366611530636800325791825245324112272657410536437864485273898872112537684868658480792778039422916796982185256597414149179369801380753643342056861416596995482427908144236331758883819527832670872558946334153739410656162610919906813364131032439168178303135931013636644679887753297776728623237171128205572033690924106446526167661124363699444643607614822796017860138891782138301329879377065288607242338550576518350222785391399447579067598372239867620737083351754123435370013808912848866298514439572590801668017748655419336350799894586766699272466114780040069377080281601608518749684354356618041982366881878404975720636750198107074718757155062517041053110410769671888686157491835690750848506244742614980738099481684794976559457649593755009192035992339211951790070142525002922626035804854009062286510359549243993374808068732587666112741386606370015817899947251604976654316559190105007989871159099785154945693951082511206274934377084124663293641319817489756687357891259053063029003785695134641961065755978061204014318273229368017473829056806257094518240433173247507913766775092277987791442764735906732315697457415885903003949540274158176578024277310384630106392028011005713806857886678764848019108443360524281960417223777636867628832113315019239191860929266848466224138504503180714404665039553028157035293768035610792955179042757362909981237217555546484193901335194463121025557751461520745655265156041560308858782878522498305090883137518042551295419756946778441626787468442227180932622839392497337334322084606478233530334037469753892952173578637204807394383357413892312849152990841486781577305235868535741011878282178729168159048869520276839266692365067933521226138922226921508376638168103110802672195982870693653113555540213333329535716580254387251924498205946502974451812696459591427543866707325757754070950747613063172982559365427846263315916637625202754386336928279878938511739911045732668370137347124651382896869399151138592453792305062410708695750228918884001010965594060452144341436882406840241681066740536513880270613969441985741706801764095514090214612495415455229323620391389372631612606283255033973104736546193042773845416001811599595400402936192891091120294953554662179696798225405929761011364472629324189674831917210298550132766514720364956002843242899983277449285704350048325175050587635826335300291810900605316277187644787310497889876494846444643141905548920385652747514358789702659905661271553436881141562200167438577479943834528840321812497161891675872287058853250294457650822805155669757466645246127980553456708024026300611053896067517424796760838530964027944297832648687111245473005861950938049056992027749607179447861903472684739848064353801004432632640413413652091752711288013060379123556624067598176859712630294978270560185244860268573271477498672152598406431369268031133723027664499600030708367382017674379266236889678504386493389957396252205357108037703946904549131199894778937001749322529523783779535419929397034130796198836222985678980438621347651544883161397206501612059276319913261647146816364396263016692441559924935311783599031129993577831208755025541930478592657389379380028795707471184390403031760061437919605796597367142883286207079353195029834996127378522490172026080382302235949805050067485453737676468134540587809399223363324809431360701428567938802645934515701561673810014417015672724123793359712038467141840807332884868444904679503222174690811492098613306096709624528408894154011617356091585369700503400524834386125850698946422693410762862151440516823512800768536172183996079826527973313698931027368120039437001115998811742338060264141453054096392732263335479163913548238952484010127944680508320582625128356330316641950281843117451523639898192669440256950807056839427948097411434111766595215475556068583307254850552882926335633446630908433249249494716139598044342853784150657534730427059916237414306303661155461434022293597300478946422750034392587412600386863340369033523685016795200742680883471316701559849524168569476141550125769857988307690614937232441784769354975269925409395694374970763718356857625400821601356427445010762197265312992533768160602650936491704971869888016557576508693181096699586641138812715265186850105653027952931298313563854621765683429807808887936788038616933938655310591122439108349681940337941481419893900772046684822486418056477156715721049662940876938648438794203679036518793066568734490809984147147611028668985850992999488745423722786231566628759446538098397214153482714226679378822850505395575353261610641602233600009468819070356227892173870676251032016181569598776676424378490791486990063925288646270860740389585346351408307848221399579770005278137039833553668740614392622065787105860829066089515168218578962134525151863880458350009608725018199641794668434418914057418946341125369986059562594147415630782083863966345310199494611390787161229664246599955855231600494867161547901007542557381790388081551866883065143519101310072111537143947874245047159356112962140996145719200862076666368532978460064642306973786118490693042443227567432263067485632471543298083757666533841759178655056585725042039311268430370195185843174157453299657044666218758901263051626850654422940651035372610711695368214008406536729673814877352273144478361880377137640221227444258512575691897287724858169572616895872894611448787855362589440239758362721884324740416350279469436866998934204386629282696415894073181424125962348292882118262510962497424262974039834115042251159336278307580212964308205879179977670921871230729820319230276764061670323882552937620774528630591441201369666395691217934710663208543966491884567860623279996902234652717757545426204574847054396413225881174751685775679864422542957878275269065200093052210486337887828155419335771258339129326593023771026479003164400576180177297264818421821430693370961768349245655934897796991949179583904790193242113122575434452940481165910789190261213699335825616974945237735019897723633297399409078320098864246801336751112247591430285565060681631596630649570318935492139649523715585637953606923469797356275912452790249419767183072112516021125980492217452523791304648326798599175495324680635597404642276969163724913985159863369103619015535256419407902950762362991994482628478329945529036384474899981544585846699041828554350701604878363494018150114550250326889300773699080028579481864724505797844843041426661150660387985182334820295688093300924043091926595526191827881853646272035484379795827023139125141496467716820793729008488975608192442335830451512876970358109840295570955220959762218460406565332690234613447840981085345862009290614928677616480705678097857986142912542321719460107328433341175457916195171469245562753925961864185671988682175983987595299095745231674368796010614019198273982856073971253875142415357528221856873754981086770095467300529207931936094448420946084638024066866038131782852546030671751741021078779596179940002618270937350563864205422087570187190118233574747147647278443613093964336921403809146584602087418187877019495792403602667584395352575771025584362608407581605736295064216610595291925171491660957378529659040844645038543629778866543424427694472772122240020821137760775333162933316515450978170517779258311785267671598835541895084495912698051691566601526668436618522239839267205932672263018681898038424349094078250238295555537458202125502190136528113035357695969685432173414221053332559400160194705701439121003147202238559432032096781239982689340794812605625741423305562316418941667388376830577807129096152122959074130030464685771860775692134782923136504139297470902374212340577590664625925214691014894250248344882010547792143799098867799816714280087855528360186389127395129859183727950999125730236460857722586767029848686785819233682805628995580104959006359050198358071473436232124577743299681013317347817079629950121801221581703424902560582846118965013109069699262464933000511637664926893854068967520285597654565563749319262903266601520779316165052165458148401274712629786268388837305552933988822205510076644284505999175202093265928591677360306048195919501732736663858726354665072401168897132806331288653167567770514653187419333809135603836302054135208870122440833328498869031153098949693344435742743182406447024399352034201434351904669320217652627084395295343115148785147921508259565880051820146544127370967460894934365900430759430839903155488971658140023735940747285017640121614284365818920242181891404853571360923436695955467299422123585750134755939259655742863166110341229091921745837077953070435088491419139230050645271971324133726815908061050950794619589453634979249609960694602836239842311581604973883592454137537677076553416548376352778076474136637529680422282988716131578910340940300472027421215546173530434732098490335124461808749394707448710305760811632642942858067012105345974642855511267397873363388570588248648787331592506069887742718182380308196714312773298938579966430054819166824609329537296259464291068784046062953816619239995842066595779067856034886296192217875947138400770590098869681074634195124586000914284059116078778362541650202575463467507672955619952086584382308010975063665155074223071267893308732529874323988120947322296499231490209709807633306059115682574468742291818412448450112266269572560819629789283696147806753083867699845127756818266704023976382792912718804277437669842605488401411940873973262962747279441718472020736789907865264462904935534752142183180944184676841877761623836752817675696058480024175229537086559381194447703852187396926371486254888960472201040180384732367598636369465041400509270534253829434726957626044201067657408190163241884624993505714478911817006955439086182462694400215274008872285753122374626013712014630988712848232880028590421907370053913999373992948566072780552430285900057208881245834650803525593358623509403153603412470965681824262275174173292079938231799036525791329154965847684067841714742755795539587519459911712269519600852928131567609485424004999748895356968760603678602720016487986074472634653160530513096711751555993098546736779065950171602067749088682730151077549260537831337052350019228780344724365937359329558650166712567428113643728795182475925836392859614292982333662399590578433277177914745445760216534707695963516109254135797166949675757222214722135365310779028791483580644343218279946144515713923018233353509434736911214164976123951745227530452060194795234647627798215496967815224036386518531899462158054510353168689428024902836270424153638975847963017935628165200452360801164717542760232920541745459376800605069666973292328152453211918075685239654875296420636376271766758240066317803056181932471226886321051944357425427020599149792477613376344048552831462700953010049581536865061373671366187794063274319576602346124249039082605842089209372152078243932990826336738081621714105879221603622015574196951160175321277305662981540823902517270337166934283653763357825617865453539254980873679847964972713607740542784706151522272125963197332642382955637573456001711287745158892646679320746242862217996250520030494998563202251204654447496021335978777366130590099933675426668129835897455254031284396335864353462723491256174866162141535256585408470623055035011583849185433031924212327002797369662470960003489076469484983243160178039520700575948077886562561876379930204650549858082591038821086334005033032768057789086487348448963057369759670527680130767067528561069746000020186587949573689825761065424964563336290917501012530926232298057836844033810638906807498517092271777019925913072791589044288823971534568736629166083157335145988645586687109306855135020648887142532351926976273404002687158752855526621389180407223981048313390070143913260572967187905984830557768446829617060274085549440733984251028137805172432861074340713221351327843077005754171165311853902778950998038936023893735029491449019544449252008648052316856602667748813782644303464592421836395267185885585627783968273598464384199087903592762945071331862756665552104659064704794710069132561379633451641037216327306966433632325155343079074962058967121672919375438564778780940082763689181321173365830468537843101913431032586401447942708050440739885978281064820740444957183251028894973653189442065244475019726350274631190353283068681979601616198735286624625665069469952570090367931872703152300867356580324007337801417513942078214714986338253147939572658842691836366841353141602012285102741733265583006085389683794247150028116765422852228006077184499009935200114916331129036866555142991997989985984222746520271446814739900959581776812438288067903038355104986252306032798949929489952358558616613550740831612173025855513963511767618874392686333846515161257372192954042614518927604405511961174198544677511817714345879457586330312274013974611840696846470353764907843397073756687686979502029709542784822110184164932581796721960049043003541208150362883258333722007882939512099809397670839901940085472336717747976582958896461792495261695243294658368171228894801781164755272589011412106872683793393462369776359198048365597341809257985026981612516203221847383644127107022549384732677249076645713414214374254192352916276514009434213023165161709180814070550135548970701624357204912906975032041875337828542422980601349219670042363913913539320623855589414569736021514574627974922654390031268729103957359420063163823475108005382556407474138646567268404717808804238554300506692619703935964295962010719158216871516104892821857842368530438442539397884280037748542276436326545617029075367658830578333370679429782436275059063740930349800349524321686227512378411702302561596644031733054578466617433661896476173344004462859738286305629297353373385834705402581674311589119204891120840285550755248536963047442917418797243075144968948241318171186735974890698890437585093092813770653438752107755697845714650591204878060936381402094080294663592836195592246257463347913162620784601381285642069105276364021144846948504893304912665681364640336745350112632029725485623248661945819696557031143669226666735704734043722259023632012508288739723956580170170622596251865814804535280413543210343468378501239617258438725387589318575643538488188690442860954028051636778915049663696047764789143319420864908729162504956368622087702732717967837861441849895025904336691669236239999747382953989939847046741170559407758536472994340261017298650530322334461719313705646777023620460073923057574332117524678465099191619620450987728015593558292148860162001252105989994233334593241665723631658536354501528744489142749695919492338581940453156610199191902186257569865482719957244467016165108055007277855590821558323080467867661727414258418638329553666952025710559274383704580792005549007892341127121331932661560157063710164629812582770956725500297130380011357638546743089583450263787076940787883251540074085507133104824115847290484101338113414077327358973448045151631916096356436860900598986360211929647143443326242255278237571216052572665917909674044467653112845618685437139739691290774588974846826983725650765556602693213478253750287686277188508942663849594461906115352744691944633796614697460718708475781062850278949833722008796350780812685734700924202229118422526693042643213492515311903596433122998876741945415476523397946734363642587222588454144574201616143821684141879803356939524675740209183251532674022962611838103312587967240186221550052764242997306787224847471946083913934917623006295109091707278456866600419055603939306984420574880770328178400253418232186853419910006997260038322000117077055826497407830250882257968042537906779746397007698825880703632005739047840940768308366689155301142851329623396857491841041261082492636994587971941701953168666830950214125877122251206915303862306168038406961285132111537285292760384640234589469068158658021169844998610217894174635688789774417370258897023957507561498020371643939104798961542576347015562781493609258542362055003990681963301401005968549257692927874172411452279868790164342051763494614348023769325630142234116213666153501352958212231335440607571968459810020172532116164513014368743850188029922355961519109421130154448780928839021390717848524742823393853210392639656776666672994945346862236481402965506247850267285542557149531967213288693265020903195041442317218794480254196118934213891827492253565665614959243645842994763064030457049923823629759438132493888692028104747728073537357008215399675728132754596513472201123160294281513294856755516523299395489831845261714696194429827335095821640864842931301234868414042657441160781248461943067902840729096420236624673876822681460892510847699214442023398665456899316529196716538792456937623387704454318996382300501566427602804442529490242685304781824639901763854274486891096554733172662229084036736724650001799580106841435731421005076263543343020396065576935850842793381172117997481659748430662785191907622062053408412145717464730375825430516471479573103362682157976641095609694497210338394893269596181315193528075778889041397734154521927444172899919490487791783746913723632615411348696523722132290268795294509494026559493106424806259115134845406899063207366100303297936963280083243435013052776290429784297093918236492605515883434406516049202522592765289813006872102771409385500289440460018788790133053301244960814362064080361947862333655249725745062256290486454331375940705162930608313887858442102753571751330232137151072833784623942710515946860334331884465744681605165973151421860292165754671624436680484121262457213382207466667021874081042638821108122384601667656541998241908900527400216277047686904748784365547579584749853891420006690090266336060118737931988544944042618051867225355859165022151354006953432585917164224016420398128649246172530312937949032612387913099253973747180928960478333214639943372939967147401021305865108086214065999227260135963968262221806731714981783329977235463563982583928620857176541279671685238391436003464390401005684651470949462358726611292363735036954122870796291789653860876698425774531282481260278612230018955045009037009169564414676532140848124749709031775829148823047506201154451204698967908677986876276691443076113466454781880609967145059908664244869224005645172668109933490468682069095671940501754080124343239496373826281683578615825658327039403805457437874177900276102318691561894723797782236362743947517241841281496610585159069392834949626681256619603858102031399808854993114620335236717263433436831367543105629281237184019257020996088448712810431929035237122991964364733725485357883598734484244955623001543649357143657765420815247544770448842696780016388817363165492244952266558336922298331937026952192217675844669608650055318498341959430641324005336199825343630097938930825726467538915024760727451310271773807429451117335618296634523186775199386828659515821098619760972778699408108242193691144764689481788943338819752759465760481316361949182794124292320434986106649938307010912620746566160411961373378612900732261276292585848632030813944714725740324030025074001811228323570241983574915534895850500575151393525003562923220042201501109372954634583496174726798834934696995754237335608377563391138606303484253836300756800596161812577244308384315873400964041568895244779197837855435152643083976764384964521802818346354362300301510748391626302245482984047597094882976456683455728026257147263350440185479539745703298936737730548205082853102296374475356919252981611199468163235044445703085061531858833333662890143527295256369516751104325055501107898826956894538596198069453141361715678931540358682752070317177359120436214297935985653387255262610174298328300010472340446763449585309989230935573277835992369023789391019887677169390291769511571014355422436999936231234530115304308457015931216885589287148107236867205183454043224629534996717241327206192839012788739570610500677823671289034828630354230760001327790678678339877897522362066227211087077011012443500719874675101119914894186067505373626247590529999285352617975740704203064520881463454686915629161505815082765234930332768216220464219478367979769916346799294624600493833017257273146759022034276315762768873114479734802692528033333729707334209615868598912828804923030102856095951369419956603082410349559748245950171907727082418021266949221703953274796874298972361961106130116664930221898464669470318656270915263330234603944764352913239320574466205023370798523843233276578449174836202724798820185085659673171564974749675734505760569112883556419731361716315317407572345458868260219280387078828576869917087711945938684268915873077161670576423128263680967208356679140406903966807197672001042109122899769928934723153037039873866575041636602427996604987153018045574633589139576313250272194315366006002796221025312874303372831765068082139316978436044111585783382428395264812701660586009768326334358140627489520562870284965082816521400382645177142311243189507234404138987989712792991929890140497250923368199311555422638080484165209758605755085071591272575140569100368087507196832474770908566822656191139431479707054121358575668402261610390173556383080718191607782516882994187604296048183192615675571396135944318735504502459245606574682645651047020320957105659038135546867464886097027831916175463053948660125222206342137232883956345797728383773469690131776636175616571039125067063431876260313126824534608716853200319043742188646449356879999123000753221279838430047255302475144948089532385389773543128690366399426929860797314578731403011112521951245087423535111750938598032233880806241228550964927672670479506354931605789635128209470417257140859517079553027427703663476398974400379228234083723123486230966587876515306905545471974384875662278461243699543794251245632530304522901402615751493740710601366924479364376363000389884051071118814298705424260299963011859291977364526487751519521367378006159944446971148400095462617059001928156672391793689345632947755737868068835430789693101724638311263408419614495598065452419744411224594864566257094260686935345687398338646709878263065852901978493906129343442565461350631834121430220910276234794921577214492706510461829606165696762795566130427366109952170041039238789870890902995849894793384647936746514444513589236784130621818090029475440431384062666503594031330971588179350718021171639598855411499380438043364365223976548825746799955762059724042470099167252339193706815061695883006210286538580073958353979309860759444013693629510853864849869803507105395538264396319750861513671818927361488900994105882164506685169545554636810223013219896758306051000950380157385531573854836527018570435401651131350893067597386697658899411087942630917243598918644372439347850335764340350752736482920724661562436124607306549806657354637603945935555096058211811062164560405541621532778580084633155982284363272209575994821829039327223463492961408543810510947671268588346458666599271332023168461120327252809511504810147868271871840898155713490840719876269180923027225917217450518412016858526654530702377046880050777313185449004880269778192294992543628233958769413217237164281804619817989929044150049305508491229508042705272725014056391091285391074926781996388436597128775779851964936486253583569586876285276269894218831800578819127409700387049440262756413223255442678975258598500915616448806606894851583040718898663469577185494426597515118097028922366677981438494837791919703364888347527621970279935728247504812688469135146989288837615863568798858239318992527088646579334491743668455777510961888905811915699374545512189948792755609964311480795381503950845302376559688574941613823355710425644339104895007332178327025478859755501646030169810605588790831544607344108291394042170671501996504839621139380325694311427082962181757340668680567457831563685450002158838114023096035387420133941952701755465249137779165971222703021876824581113075088221790642799123335112568266829833891658618948452306058405064147231205991633245149406807032602579142065941235545283117913965400495641535925508678191063670176260329253590340513057122160675193519552835273520066670580781212342579092687986019068453075047683079876370700504456652415634033953471322506959176044136972151396817937898533476099220117341682884995473420730371974377811425497804229791639593904427893064284874905292456922194188940499603532257577081198415547579903291961559241029653454977282749973753664251923049325974106128032880629096765756248683546240771503864658064453131465372474894857900369567149757488295905581444784640651564368643624495877817092212877384446460013134868991658858663949470085541406488270380328843042370990329417763477325296193098742065521695883012870988213337401256457002070450250825915274076144204287908544083280506000868628808674728941364305733709170732157610497276610985688436924221394107540118185259213519362151826180447802820411803367843753157437625296474444887852641259176076843478836696459358546534230548335544824504010178254954096807897379592959412969478811059099764165857065767692265201571052587087545135402137699266225566156319389754304381317070345146846241961731813310310409426777927540405272957663196867852306710330250657151278111844032858579273799287019123876741571801055448192357889634110350432861256428676133525834805624778052834517826315351043428816457811850709767577188773916317026541883113132205729946249328294371220445116120434215802069408325008679370422904833675166465666352470694926358992635130977191681308967071810518878442718538205051915319184336089483571771754154122344153040320029950541683781907326632778030062870225336043928697924202702798231251509962199393880312663815194898947574097979324356590228502723399314677918299194093477693742630746893032431820716890538775004997787112011076929576340344277900549811167093499452890873334391495923359497517416318011150810042963044022274205372497353346378059648151550208706084875891866814605041856521339692110610289806416565285366499639938328353978790213763171031425244871751866066205007986209178123479165212182065459610819018230394291482429843891924100622927346737855768170002224382515991175989070105864526793310608436848087815727223099437259708736753754319818841472373295405638505450307627018109478133198865254442871817509846999080926914493626263348289994246043419210215213020292688933773540078140586447732381817189368419705316584846445017482142138518312245964451754723386727395924900474424193261641269642764508199212799737635837115993679621327652813887214807835853434161457979273877358952153526545120639730081760464348147649187152143901838129014532691476018039453910200702625243012990170990075958246112673978232938686029168093370573806372816290833804929208945358160064892098207671716445502184186862513147686757555595898199309821497224317734234182844648932330522100104194711921639826487997408148868341447349884037164676857408889031111955313693410855302926283406685952716593116370307769373346652328519848588668394887187836204792500557935723662333852476478826312535814621450571993915155358757947330952427379369164630853864019908744906790434971386940363194444846120491833766778746593950500295380133590946606699836197036661427960348350765981418404485879802149861382660363973546169445573880621181676871441936380103377751881622675321602343764849786901231660643830602924318871984070366457414667526439160159087769107224470929327399572785585817473954136222366455072720076115947214707103673508578623225307198163235327601987806292298870439380859016585243508657326560113113432947823011478577745556654717753071908660506502369587020495018859714413427661809591221976440563590880839719298985755243471835508137803629448208256585052683125724066785136169267320169291399693105567352337910068572561899400696124008913522880426779423077913235696216311602699830494958669972581604486680433382064481325376136461697190503169930429695775109954125859902935389983757171183852176389724448519443108329165343944918862121584800970478377440082127571661496384915878448966476937130684415704505076549615617683047505005945591524273085836942243204992500659089677719985031553402539697800088084950936598907782862839823042556462662997999543464632630502994895934393724270764182847367492206089477263193463100009235522407456748873219354542768530578048616183894271593096971725277078146463273245736009226418719629283742766541010717563012238852089093295901006159471914500523001398190836745389029382461880915805273323828800838729120741304024235581658217843714405610188250860804706018695101349057680247712924288021468897409743569541923350109095807872694731475517790130987764460217249507451265183022346704873475211810487447423554802249843140146236672293451266921332469167601023678677889501742042152651063233571782652250191874787160360538932759528560657178624929416789207487199906538505676349432782270684174976994333495395227245885939795162077002554676378436391605196045316053079492975876239460499561858665737735443741512639267925400957685596749326109486023373292583584671305237244695792791749705667742778868882089891876352262072199022419591033094574594298879191673254845430474944094488544124538286620629090246694452562426326873891398919427046756256522977069681438936006920039096693217776346187199955573429311116871334823495732141605440346393259165139564920478688345753721220971540161382751729959976420177010797295430195042156902124102008051167363558979117254238216395461883312487833056027210521851754219026727201350202324679877227667737491946378918684415813554675128710661551648988950309349486112036884655846519419366763200719812200621595510667564594673905228582551129701888499235999916862351851534000205323985207863817971788335201088980484632118283117843407164037314695324945793654694001990522154472255226312581716025701807492214806185970298193647871494385236179618889079263206424264962126509431531183862464102434158365517663040373739555054042717868767552280701511041067922569721166216487017353652218568064692265644357481060857130261325792026986561781675578484895126383334247716725504393898319656329406330903998954805260300085319830008745185584337596015384221845112748385570434054817523743887171254189959255823655829728041093726178200221926173173375683638034142492389111797012138511529888192829359597722533712259374069853509812681732914268285898873699315626393843450863953756600341362396490243420099516322887846358065908818860322579825522814947486340217056538641647963586884962251905475216591179640978131129461659296595199085586624823235176322659033064005424727660603862394337051062228179296637453197636521267795221667463397276571233987072389103856934525823614031246540754183782786820664503138630125856020651970375383528178575687710448942915794649998981574874238922449399311066552284160633003812644179743686333885708152659463983165852316332417790960394045974115326755337455065281358904721052974635498251592303538143172240710517870166479537370816109883647036589681136526165560219709145799432821445241125826119632930676933370006717448160224951692850454856113334136715498427304757385228290805558221270310761808381185579006865909625513629061183766327917842688206951304659249482674951345543780079685095275476812424630834374457570616200487548471398574430307521602247028931570601386487850263590734452006608820285241494640756298797418490033967006193035819688513956204035178093571755095770615162052898199617860955660735329876788017072954902617305741131874950313564792192193387004464790716017337623551324098092076091558656356797861026471914361672150175788647126241132307575044492726057314895362956916790873782494951553172749090786761634937685248155983132577115596127822418166339732942782890426415501909501150680545237000675280239500251781947899532834035703890341285555685197674300017895135640674568030352976564990472114155521649619160693331921058128369208328443014353600666912467241263307906431014583053838553750695130906529476712954932387994889869226302093202601129494184397233605284389577518529010398021007944687146780223501171811689201941741030517976846503681454689443165786559993369877642528601345395944234665907045109484339629300087162426960032921638859619594194848411019689823952595019087828528228924242813912592914946415948466724125673508060309646295375536471724386658403059310026033885935623504250383444433869708465539726691261838486984004943205478603397614927686682560811202200648431010735938193479723890241805317889216795519499360037466544482097568200065932932878751530324945938965046622416588628161802601211945748814119841572343103832210427617281371684435495137298287980297824887212148155283608476587729930274659805944314781221654271284145556449840398277221359997415672477562392191717251311229611943995958227219238579250641073396731516653306275863436258972514919194407328257670857995011960817262284130192733719328123272794141312545717312539873956418014546982693720646807370967853345391286773230764491804467132606763713624397089576747264131035104774210099176791071676729234257727109940961776281579422490125069528266912348906521486717978478546001077456338889183242362816568590136512404285915695441648190920894202551944394534765685344461605301533168527564314723600346864775428206822283143312863956180528157887057859655078810148277780423846960319042601607589052217433251673304926855485914410925877148730483591048732955273454914019779025856826089087317774484123180280679469017027381767675201893880138371956920634847201577363910013158251827642997266621610491277885277369026415130772113343834501501568943043503749274606947712577060042298034715164999503892214985903454458668842228734559669411647654161525807705375859638483247948811361973513292751561140472727563952601950170062194500463250637223803864305186281935917934367229679742355979249721332404965246494680597865519176373748896203697161307638704998618031548885553180351639346254999171797374582358233539417288434998206889387985918006477442209351074300977194259350856364320743158299759989265161954172661289628200734948528839000012482454958695061437862844762717262279713040120705800652924625066622619457285537436045728318607366089724003010304864108781143867528612364919630821992244501193234365741305785407557005219063776185340438152036383428526166723518573711815854083173136067263505199732946805584306027625539413390580574384558239192728226803915945351848561780198652910776142057445935346976813573844881319072349393652299697020991169798829421592649728923938265165717215364999697300945873839036517005576189746128999535977541979389158500225484269387741685027917852367380820211663144418154360868939953069796796120567255969410565903145167252114192218529632574393756335801514531643885195984580792720324044929870631309834241006916065375012478453344556797224939446322328106832204002150785145758036718986813966313913222877939113238768213337449558368481621959338286314452335792791539725071454989502456526892846897434480377748787260684182554502455844273639064788159046146651542588340451588541650628578813657440361860407614454474341882155001394343211133639360240066624790566054699320701873951678547269170478649626242982972373232797531752934627234928831237996274085876838347888838985193424656540710005441405631038960990767224138209903659627947313279124012428703094821615051655537742997628315613072650561785906675143065307659632116892169539392301162604707960771310629679121623460897326516597186199688269073019105238870077921668543724672788139513795011443302558153924519119542615987051056848944254159559061094941850440039444412807104066132061506373778914282127794177652292852603805634943428408572679761950800863507959332463040596689714015655232602466002590250894003962489625728289933608023420474827517798855085203649950419687129201043632632642578621681209256923397343643095495823304943374365199593476426582937493282574801233780327114885734250239370731648397526678456299710647083579275561613555663562705169178696273191222111719058725633197149684810126194333595244562687822646919227489758456739920356160472043814684431416534905824199040025346399515089665280813590717032749646931395388087272401578609473983481067250950980777375834877574353115831626850704500284989522551377292959484775081275410383095102645539654567902767073769059425729801287969607578267039267617859744064350408431963419517947478252138626310184632204810994067060035966153090507374582388229351377337972095726172097798269677684603151596981209683722647440135106021374151228603060208191349702722712574389264937826460278923897761179807208647009112672714059137056120605125777124032595170946906030422194097945753742558961728032843799036062788316181514064947893432374821209279094834490855635184920321296504174153793811796299223874599446520661709626515230723976041947134005630234373776576375389985472818388986675259339740670739240018386436243919691593390044097200778776739111124124636268793907056924689183375036237417276786107826685703877994533569974500410116424043289841313811928211795527181935060270591094588949811284941948031205760183273900738831190424230729145530952506598539615813393657543060813906562107903344098813615749886424641599003839133850059283249950354840468990793073598812720112425659219772679785320247678039195778208540237868554754375925275415175736440727298018365348287074596145390509374016447747716323009927174863013024551198220453989961103828112381359049583893439514193824097847677826376732039665752865191173702275721988682568136211779267586500882994477132218907070337588499250165335257007181049571421348230521104697847923019398370875510437739353703821900990734339400018201773555709525601358963256596387087281535709321994514600210571692517660685173657681558257040646404341871072130434455063683855308081157836896549353362575991704348126668064571818555181035617186158645143955461721982813928678404947105990568852993162585359558275916396581816642835215516348263263693922506115493988552545164942358499200477017845321261853841879510820274088100287101793983166705425697272682455876150285844110089500727549531850743410247487930577505468491031948200666230096277938425095321824661268678021764518849357129013500353315266789788613237845999940426052086987702357278404956415185552906903833606759466231989337353797427589344016180521554252396430804575584803696539705464684189062995295675442373155900450173486304419160941713140251151293734017669223982939547753160604888170191400668570972000066310563371083305358500186708318968910624910471889874987013937757243359897652793586654457174385060596117999030330472942335140776310509951915006252638595188685876592297115282166661852223617742290836439411994855342788551926953331879905779983267088852193983470158302894180411046289977634163410325001127915010887371197305243647648387580201127222082780035328096395126791312679287935165784750284171570557205162078782705585678997256737292467766137762838332159656557697059125514709028217352567599013446076401939651092601146593110866195509413477668780005358135905730031872989010985654854757254149744408651422333207595629206475916470672841867254620050231351029866929772778362082286446761820785362992478072868956936690247500783492369044858508065158110072530135325205711890924350028707133213171775894755980236022354904717014992161832228781518827498828159335779741976227898150885599999805754780288385458985542347003799920071280881723509541373663186262810158493116323616959967346751531438951556076300907716489274622410970924991950194040165493151632205103517810018732981821776269703161166355268581029799108250605941970825408911978298772562416530098984156619362492188046147801478374308200199231513620200647855995089387720209977930159327178613435758444358094230154565047785875265576508585580487767472430206257187098028038433991933642455272193627614982316735918268874314203226139688624408234106242015093054588644111108961488338373371641993162844169158973560799331353166134950222882147634926684748164659785754706882976913754336296425676874503326826112584922374369474029981967722547885288112630724296165111532486250063142622437256255714073618053172334000520268314775919841251929033894322936911642292003996542979635720407754630499429217939143292040806207791514634755598966640232451941458680590017333736211257990496404389893856239511187754476597988862986482055381320888154931252451001504138447881708834274371266821949935228694008065929694526325545698891789701712616019755997512008255250631527548365990648892530205317365070593410007297963768576208543012180109333279719901518192146962094041426500538441279896104464891741844515413203636649811082195816159890706333026468828488843594040675571580146347881985522991194015904521068502296253766616801670374693926914050379229958575203139678980224242500138691750094911281784964182003580247360578324171600806201671224687165299961063130052630579761782527800380548485226502080997757171797395501793563745809221201815263369790596027637970899290464796306322173570001339062081518552293393083099526061061044491205840470656375958834729079429273294887195677585658592168280998650142205075167617189542847791139975817802892214424242318251653973610379224678048992493077162098072896880940331295375090545856798702501275037260685561496109495468589709309754503341727396945466111956835045507257861910087056788348774833743651894451914505513449581439076620453314792884783480816863273042572848134807674743118466533921490299164341900633766886873802442031259668011126583746602230114818096658954301243481647941510811601079611188356212717848650337847606261058376168946725589919016876227153588372027579290514122485199522206723145516531044708484182613404346234297458248384190105677257630274953543106527646117006317868417208196879253021949251526047900237760027350777630280310671084701285892740746325602842447768107874596435177566309573152020407205611492873625281746718918228315048802608427523201575115028446060199390895246545462299075880755793746555341048021809212276003105845845629198566486249740194598334907886229670040628977291352218738108948357032540368099541620130376899373410867282719331163711917020177740167286796260140868893952934702362024849597488063735107362794657933328732385606145768766163055107008594337444395965396620820284158214838043327610980955615919910913226626939917669648255748476514638011170903957347378397549648093976691007727813246500026660219002737044509365899366599344369593296420927748940383311681758819381050258215906639715792169919764317286506428194899248094382126874394780438371226427220668535385529401842398724904819026609394608647790415931397329014197131304253666890923084128976542132351544254564676392158768516747721070643186750487765749459356456326773199743657280048771207274565367062870921967848812779400811329351157474294843707400513804200522237611059628212511199309400670413427547352080488782555833649823520996892918466846204398753754978974778303654118935410803343302119594437823036016741458934991583247322950923409321296430603805517589380673823364836064230559944080040527279287927485196894031369322998075482047660193184267515742466303034587715260417673477899376715284303913535324551550573259434671800449857183907919198696312569581189773408476178864903631953172337016634802806745991025291894991596274685516317737279670635638278822918630076338855711709228252704389548696838937542822321526990747434493945482517112619837021939724220580710716683703074994098458790927353580741435513075721614842152237174174617684499461674968794392378291970883211193521854450244051166948352273123433191214516574501977055360265149141391213437840282120291078578192280166611478878081504772830551016629477654708537269350334207439136850404125278104608403629006092378085519438231236615553674457549556249154062819063326190687789796507873128214757009896034872168303613330597003176903414852287022623644325519324962202900511205789942300699720522750803264230648891567525978015232201242615535401508068003188496866146748576771992686268973820637938753131784626095991481452274277779353574363500381214313035031233728524613209130341909600031950637655658216631981437124631582295463235743788868334676682529953549620227575987071403187879487647122586485782326726578814980476274812927701019412143147086656843733053045504603981926164690486168148007593385230014017440713203115648174546273589406585056903137499203546890140837674087941551330199917608935789839872512347269741373586438448213368971126637617346238139359546655151585884264091399599366535856967089154566003006801428883172624587145502485132540940237158992142420995529030562638287068959794162674395158352093987656924416416767036052188804703920344052679486687276601939162833461142655965059834591092855498083775532094356071965094320380222062305896751407839589991572455305132736547671657644414833397682033200606409556748039749808976004064507113317283728939705464924816371400691651596977944575823655971501779724516267936368102509294612991357980968047999390082078231026725761828008445217540681189717318731776628837285614957908341747269856168184743969413775556928901441475473674527135438470915763336461347104731508551608342748856834979795465102796499246195741266651641949895316931180193893621085531751528004596579620757510280553441744698859178123555754099614154115885816132503473383220483241869546003781554723410212386877381830770731525516140197318383789092271294055749185623518612805782235866464905580512232906233144435227213270589042714397116669864560854307548919092243580446835320142910636456110881955673356586078150011225632215396852934961261468193745996043610212593819646608330142640304647930981041007477270587874866485026473215415580852027324366822476055292599441997911919403952255290102358989059506457544318264510888856822557239147553984689909112050558940100697265874964923564372257387275939724189260595128569274264519398495350112820518735171737684829844985140701166640125237192059848812231088469405088196591998757395290226869597336858651217800755630611279575055434767017222712508069063379374636139427578899878172984749393447203087157351806876756832116571661663357902535197236728229092961917129846912235224562428213541844332606604275466896333979246120996085002282038635700033874233928192100631978866366207461445610191270179116557792487129131337715628716042791516793254804103922822161033600346763240042357790983769522064153127864764661962362160916193668192035578832553480683069278702411715165399952345212828848941047749261616904090986744344897241364596321037172138273025755386331592725544170571447656603847885350405707997685961552843640321485433234836448943419745023447073215008959414459264777233503804201874139946989032359403525016345134961241404247948004342467230269319993897389815481169847959703173154223175421707706720780438411109123470111137756106379221856223761863631718765439739473401028947099353189999393198135277539659420931735841462174950861355339906430444951758122271149022288014181085948001040820737898422052853952226333559926840228786300230471028691537734142090398936475370614007695367791347841856248813388536977697504171366672979269035802878092260649317775669016545389312966427301029192168882808711774485411528254967990657696447779406106244194961054167880393311169134362770101070397584114257744708102635361789669628123807617156039045046914642197231192214683905604501116466339808805195531483640159456914279849075508061587446829516967842021519571804296049555865696031755119703093329312934697258013367377569999280696843543519903628744939923704257193704613120686770516727362669810531844389020609892011500113960618357466414949165353262848477484527501100300196065481871261270100516440500082729089893129951283652910491195174276167458195849333923880442406870519388839922416121312621212067076530752519329714312920847942318083775487572808492240021136687827918023365509138688388741266410199540077081121369132195344080584061325079821296753404357383468100270494210487645883143078627969965721368584039837124139602054940527147710169629303540182477784521990212399627278404894339596949382145819108793167307127420395132130933481844702949770409159168118544336676946419005410689997461303312034821959918503292882678671528589607033908016464731722782628325922630883970710593574051614240595190377669628674999305986321892528942391480343497959580075844057618282440705783388500337025230288294665340780260537190794685994251853820360382650508262708433331381559026992087559949377467210335157035950077338009065556007130020637787981999778275882509802454535829793021079969657674305391927295718465615807142012979154957876677289142293855769163473087642240148544932655818386984301674062545763102419360537468475220127870848115877979171943108177157859993898733504241838606270658875679672886356593093319390873576911411436325168592129420708731517119710413714504815533154950288314220990157753095407589708378801270828823079685285934085529321782942634252751848626839947701719108127703609311074548277812845298099387768923862642903696791688169477218139922583828855304759136402175945335179372756498394231339041409232843394567509485057499084283343651517670689140187218445684676211920259284271176376119894135596562349852293270374195706301023473320083294283048385239581561476380264951340098891379383331452526425063842885193695004947026249273654061837793412154817658817213349284517376236366582595950863205174975173931209054043701635484843450777719619549496921724563934542382304054653742623994170906071358187953968655470771705853274068282303341559475827126620659394621254442117720072976769848766341448274481958719846068441612282391161430239452405741084578786174636923586534829939473025869363753028460026545966116860706331340278272968070459382162237121396008163751929809938741308779536959979916661335258985772324206731974676381882459781207099683702652216625769301774650661255257740555646351202484336023879994764315771501158330969778045326664040183889344490179005337543247075431941369947213325863872044939217635163986215789868900692257373740540159515572173657604852955944465798600855174140655203498316545338603117446432963615212547820409866287877619869368972893731753949020671584572994657960304865566644486670961053461347613951504002220517137054247915607677198463665119913649300680788887384386099875601043300873047496434481943295687146501466186427126672820695155633606877979765715134156486710414339375740350208908747649649276935185013264312483755337063889111843784498031066962172225934412366827862881274429156965423595516139427120484006423156652121798324009539146075871190065310021946797411139671889705420071957649205253991723214038589221970557582090063516303449916260261547801803120456844749058152771660481291609483226408912943918626794320847550014796061006225105744165641117473736204534736003718914520516762003851054099802563294362296713410954623309222629305002883520768182729346097299742034389758497368525630336585445642208753710217401923374908750914554932144102682207748542057335691823037164539875010169472872368844526502977780518882509589484853480246577328491603471516194467243856455562946276581207085398630296143333419572686508579496616271337923255694237563374422353288282193410104344074957053976311149588179563797479800797656003624439404083990268298290616166676550164785718253760587414745004685740621044855785281150055804115903071409597654110905557971564092232350820126361995656046190055136213268320452982137688365417822523086438217923375412062047055861756872661815514748315850368321291192966067560627742474047136977259917337714772455197620800793410112741136537825117071400464754692011451034694177321794354696487366787722196431634878420015080168681676621813370268524413012991955634506924927225543546633947532624102882933670701754055673723371730027953954833191110873563966934133273992134716593304504891138135549106624383648328867765010579947018838267743291547000344068813725845890965967712833714363115375339142074757259036830615989149785714932263508235594820968210525551060797813590957107642599642348910599549962559746704733623332571763592929696285688295963540264029494078206578663896841137402446843860300424242847569482580491533581504667681624515538387216885539189301491773955186197457374795636529674695652745998668601169705442835085348373636045149343654546067009342989447916231033055177326006379345079870728849152090533695843121808664818984540028950919853033457113768902725394177877001628653702582866021432702699825321124075119728654769082235231916281381518544495419414341480064128533301672447871058727211747778003053370534829887017134291824202735607412781965496487663781124920372303633323072545098060348357699333999331185728117190058313020273455449975703255042829425693900081604684070535134904652745837357958211035667109223060618997077215148430769132842471926837549015449512584366668752523939791837176925983010632882205968194140796113589644727494672922018708816931552461180730747070029293079667665845627478402978521483517501008504355080330111163903694126317831408774829967087659305066094466793395762233138064501661334827395770974411634930470413028204734449436920840999279340307713719799626885889239278350642997007297179488713666347434240355642579872169075017073520821693989225881303336283649877968062869545463016181016099065601541009926111320406930380946224185202114127009517614465360712253334727804637017821825488773609982784009241523117162622387547661768778480020603707580746517221416994047113101254627710464263507889381234556470470848003091193548435384928898023533895121410772120674830280706439958640732051144822581039952247949034253576096355892135228949865155266076337296026965081325319053827697127987658668555500295519801717917211919568217884759525336993809916482782434180348931955943957874036748152755646510696302442462958162984481423184125379092374649697919007935798867071678210311099929492298693182873960835264580417329859029912753386498126340144047629291246313122208263350056555751884617404331311793432909899412111075295408692019197856499275389714907752525710324459742847449700067144499182512519637577369556062667341594929062404154033287149196263659601528989685753131603367114266742015600176602919942818976460071444021822490034510429479961689507417476755582911861996504305151843435021282491186017006254599557322145022226223544454620097979612954021949890858379600804177146470797519425625896181943818657943642065829983741434398942703001555197301950588362072080695625384373104586589995689886050899479685358384360251628464867595911036902165889043130468297758085283533966583361028072853798984197012166263442805560244262833446018580922868611631759717279654556730528920210555749261666431784812441299528698550505129243825090358964603074764476170247403217660673990950756892269895897599279822092650017046792544326954332681888443709905269485625600546668594326251180210394503520081905446096854584995876633041974469857443541825540779854669278686372581556615013272759368688826867865754036168375261953642477400105618683623098795887213519888441036580720320728013950364436889807087044871252327262549236072372741858341847963904340685106016062428261415058979056119968701893612745107031891849235196480803625535303623881479304152546083106997449143923122879758894156630103958439900550390792359147883493890168361261679359787676483634367491521407165066131491412205146825678221780537719628116895258236734617096351340315503206517402704858295722535703345816909088993796764837160127708558414028061634720316351090579547332341090762032394302355264392090710811622386324411622313884465840857371714392330259239051307371876210059147710812706780986874748512632868482369856600767491452845939724014620285463828006567107347269221442690774451110693302812639970215362099547868473281789468096226180697189463849422813409316740208293915003259937863842476378717090379534751632667160618356202202896847320448393424803653010046311171843832653343164176583569040962074615059497949892050384316506502034721220583802535319525538461215563286343104168792496348978177162955427648198473272965878186939064038064256047249754574773543146353769442405885901942533323863835924200406297650674324812202004512396085871284384957267697784173965490149244217290887276316017552062664487983656376176880646499882977864743910955045561960838589391010162747833232945709251041297210049232159273565884825202614877580326034625863754615151132206540802169068803435781394163126563152935622351075390908936965649889812684214771485681699716005954259537261956623153411376559953091578861049995779335331399757003492414044111458123596085631435532254472129134810672756495411380663916426198158429468110689688704174357857089250350727870247408217418016752001524304314046813815292238910080824220078101971283150596835847744906359548293963151736754227899279277006576024963537910762457484343810638595326657195363390957412180396980949910341641280071957375194165904865483748741167288433970328926761705300037240317763739903265490567365241436560151544821222475607304114927973719593669810585997663856318761127843805464150832961275966427285701149128726963164776746263861814108506090203469013190260499412100298893672480728284404354513805698518853644584833167823653886260097769689037771349972966016058467361532631767476872874120522989482550533053029604598051990540987993135750520896989418727813665713923963810666916307267961562958512307078460167096017138789476779981026918067483244172580946132006979252750896129783861962290674798173123434091011602260167335315466355877534716718627966032267244402610384258028081620447056552603319412439699601299119108223811710367363125041091338909618962906776857864791885753118623877891099093165065024276453551435529531006358725761309747814089062906969541658088234774117989207649689214704819001516400676804759249123274326746862020688337708610100752129253530511096175640223950148107390520605904315138601557619629153321690353153929533792760069994310419707133320152718961551254852635491747010963143898916974450191466164233940477092340469135932206010717446697949472703022047091388508564712842658431058148917517920581860982858794845631838897859925663948434807281103077864541211732369949208282815815508970109396321759778577478111073548866667605534285357079139360358456429481706413380870484982223449585146493803798221992856341760190032653029889573237980544501093926088289445136356029479950230200394904249354542218195089993903795725233735711286655997726027066794601781715008690315534544357110645448359359776580214377934720291435284157259397889838383853156947174079820418918428266819579199153354175019756692633768458945720288254461462259408369753991741797619327160159398208019263571162205494905802274568971127784453166007402422844706726395342362976540089749197049465916335925332999072085212730731089719871623605208678210634989711108430593495926895027780919164398950573907008666144884995612478115923219236688933879644848731475428655413018480619764210508733704937562073288410593021356986450009509133207653585631829833013840638892006414662777068869791454579195905700076611910387386042938009132501850010844947719268024188813972778176470159509226825179072804061795093014078584567351424860965972860766078184077804862233080298905328460545546353391837583910919742802390457214106542804719691948469394265734815841908863351866524582830539492184799883680726025114939735536101354041087439722986980797198788585289031401590460647918610085396406321900323026921949095050973425561007674204341209637688757486502136753117843298866296456589540654315354884709803526951312311960430725365099287811612676928002547804932742185723523736592166365111552292464507525710134251869243174033958181605925040618854128488660517479363419535913496315979027078866787538053142229256450422252149107874983116980570773618910113443599374367894335897411653055836561691128538387154820362295525784688605645439126512356031693855243844414294395953520229826293493659638207135733252781511799826227137584902290629894000278594588601436415126857868371932162748657872667943564822966975080728878360108244636018986939511612598708847469887130611481642472013915549599573523242135624066578210624891875916267695027153553253263834629663311033603890931736969835612110291285884988896139728454155844076027775971476902856089705249652696329108191757416227282118771165422539857055962411323233229977945649117899659717851120217077030381026597589570029436460313710996628887079113475421047784812830888200103744074187883384520237363899995570217009543258203158122539753332388261831978881939579565612585078285759310353405225507231622752061899915553379960638056552094678857836897645097627443202488118046999165683502052612022758016121087399007889000752579244316103703335460740157970474112578698477471326840633125415264040964767706793419007272686415276607147815094230025122425112915916111368317098419343606807930190791433783092786676641025912751383904946278076141219967708998709523059108762228412430350877855172490073161605999529981593883251074712452728664187118288890441997053840733056283264273960807809195227341504800410046101608431013377497290184639271683272176719851295994596810346220745123335203630952175571794770532205432700985722488021552008290985747532415867954261921827671698391719887145931401125405492781057422310814207173434362669702529967132046566194819655802463210018484357395533506041538903758072164480644107708799247593082960731294690220435864468353359667884544464077242566499126816994325887290135424806415922659374212416624536237089692454625878769847800875270419274661955508651186506494934141059330688902009120434131341686867339108114625174469912685770008527240569731523595539872546249598969567836673852757128164943092522399930652973655833995129578124884738052704792526247435877571998942580896034238281045830695295348738186692117631197987366555434785525787998030835758484497399723371085358962398193427378416261894333604500367457901356045366483494459899574807819957342059795372722867587271907720826888388976664909192630403599349496936007615994203541752932837488513865072556666470359054571755910997504628993613364741106414326373622434852523112285994122118901642425558281980498497718178968632463289124009195040362979558815351666305386824232077432734834621245589697895812722706111445054254931510979026617089733538746203045345620277475737040427176363123487840222081430056527654710399252701374139864086973086223093584624540728753993347732876494184073985883290796206203837064124712223900730881166745596853894346093484519024977649940742854007089147233336619426410804271580008607782348067220102813748849519151641179388957521684591336746363236918315420350107569903033779186958440706888052897131277067961665272489314691246368400273176691226194274054499346904306545810330606036414386841868033674137215921429519289589848540332380979417485667975778316886009886411141102075868531853411958886332720482007426661658522504244767363408065134569477815883647176151099828465078717461981668942439102809546737024047287682995765691983676601400106613346274511882485918443346543292378587947728095892752399460453148391496364379009538716042840735140878822828344970047873127336248736996125619640144088886416983215544452229638620486718975880769777356871570257367365641395774795760857803173371500085737605295218120553123042924458881213398437422286189343275835805708434149235800668069974005033061346823779827778043448647669564917100948414635985284679630217469181467339702529776784508481529510164741391849384526857090646932476971993199210776764564194818838035737440632710715019240258175187671252275178499610765327427638409905916688232098598752023685627169556764086106743914423287156642864314155641202497925997386157976683513765686852294187800459490367471071671030554920903868059730428484132980070466812676443687245815907256817762627708906428305040177408033340677255756310301644796890378927102054660816346707486200490211975184246590799935624052814194158834848409424483145636487274412495074486522107246527647524303225618842512882010185074336168497689009879589382143333304342283657706871240979799919127019471797410051319754104529651027114924241337168756403639850667038054780891030874440865982954118304189255476632686973762333582151972519244714970386966986985987816896723347100561047142270372089843422380177449455220541612783972097746703824104838919564197027569316202168814437261670064735224993063928069253530895268596102399035411454750625498493365740487020418192380756942790274437263817622844431223210111434542234757101073633409210294774401043508302665834263137598826342058130645710406506706266145947013090463021349389132601127836959416848792213025452918196763916042505641017305158108541343613476199532107687469731200448687759714083111556387063333165775320928230481356745889121192805017160071688977153075333324839919377746498960928064706901630202259201637637848118824584128729257967523861528026901941667263641603810514846682141929377715278295481902067987786362542382165783452784862957168007381113744926299746616768207355826380678157430256629281551232906831414579246071323165958446981221250372767915766051851407284494832148580229954957770305602320244173950866420066615940693562359061270519496781642420825528676402323665095848102774909294274581684931302909305133319010219100637458898880560300304831506017009862796980033052683071708223770277629887095105018562208578848795017981639995910209469442911824425561409167141939930346080552131777159193711150327944727841343051942482614608808677005461825773739905334038537816514467318494389153665921762420746117785025218826577292934559930557078561333193900475078177360039805486784500731642287108337637644904522784451693991059480537395091021049893122201390196352545785219453573329674864787640094692073691295959600238645413975891944298572469072762663901330018804138501943696243260989130478310680370310188258938722904485113072306717936001637302321445629462138164432741606522300471144573053131716168501935309423070787554382868179734578961716641367742680341275748857888029278010257474152433003953505880914964545394425627146765676907805004791665863644713293141146553180708081910452464296156993120704210688597090021313534329331981337369979307166958339841782409646629666565072328629158325830464114448632398545401060412751054421712450644881884024037576621449144710836291396513760684680780850688215597174068828722272192402950548529338252987954084694508751316828534925763283298173104344347823459577002241848173509072927142795867685768415847603878049655244570551317284526105580397873706594460194602133410553811880296085344181189302730813608293984004362406365072250627269709649758238385035208385361768063752013353427952345695358024187827657435937692508875898305831000402773923405840090079241802762369977775160426014635007902899238049596018071847877440136481814739128426095120248426839490174691989106825162502981728419792428874937122139041471231218334885913558839393968296303501638586984917951871553194599529483379475338862090925804509217483790442950097778725304955246828995604127312330375785655538271698110600395712858707282487376525926928241916836735768462833648500614774249125459686184325443551564363109764636063782679414513684621464609021361934608309871513243597732183903509145551461289381917349850048799372804823839376823533027091628277352792940817350008009375633780570061193497102373480739823480843764948615487784605881175050401494116412062942934138506178983848587032949878079523553747125546890735495197664252670012478620822633287602018289884750225459985730539688169746202272355193076112446763452207926932795284777437979648719021873617681448137561316003889452256807406666226226694150385209088086751470591288154676333682524774234678724512515476719365065176957284866174659166572671029520154153415116133121336058048793411849270469765506215345338678292906962363311764674550861864705960644634249061108247947429170123070358035688707032512473456494228395244008989896406720233263258893880308590141056629274218878407866672567934047270186187542795062131287411422334052567506429922422774620201550126265095373049885773973132766187205291116448199554143880768369175355467497502597198333051134259101522807406309300392042956988214690632236975085529965639828647789836005897655969680702666722317298590148943992378793484904072207403753912255314580330311090637512064337358822781697841656181699687578935199833885861195923633451550009852615535946456348738067671314725184589228746619043762505133048154811766102353447162052863594695963726431700022942734887213952232222827610306375766557460437985465412976240774617375854904137046275977370951696163904097693265201031844792067636150138035146275742688111691562288573113202734353733238657454209032291939282229680292197767623513315807873996136449523790776712956219630964198348778222647370179961208134094220198750467550055896636684078275660396335260587724643395863786898847624060847619257488015417370716672932416930825330918247610878041691625283036822775822037545236338203123578672713165772116532335109637817820192200215940826635482384934503104795187428014679815298483208514540857554357791757176608728647417882852650306731888974395458835947097474267722878439741372268224444331021348563572203446539557677262287235788900670158651368245152211320182988388032602848369143100885293612265804144370068897833482987361276040222364586944632605443985057848802745439963233850770351868508487273811370629536818167778856608548541780413799016253380349339769552624302621106568198364264139146273587217074042724042640495231882817174109336729321305734979702887540730122295908250102736744879614675953018926214437652387183021290384391647347693854303697391051746846381566599988274264445134708316124725295716013766403170392759986750594101885013921951005160578447122811793689438178329906351935900379766880215347135346206065278728676337775784238334742223292267220551257853918861515007334518434470509634982886180433689679093021085988456482674708170130794519714773377909502549567811720015724670860716962670554501884318707104601438731683594041428521971302878357820157616758795666685862596403899625472033753479838448925708151756250023473977313111863597222489157893431869255410589599206135388706289224710292072477753798175113990334679508979926910569112271087118890846297124573866070365142390408213234030577388868750023776044039898496828698469654347392976980702054385490450423199247929576171864685570023208179100977348447269877508278636847696001898930992255469863797999981157074456335706962879751047569564660833035172617089402978812686970528921089901867279714799565242445012528182646098467294182875967505628396585730700724948132090279244990086085345035059224096773806427001753261138635373695851673298531828410225391874360098818495844962258797925743252427050539349595246634446007405844059835552930991535915460227825010395432916015349133247057986991057182474513307869438313422093678731026009224724910500538161559810366975150565390155153858939578638381825803869123175903322869498274753081464010242667301467826907209628842687532050790093250966935266726465392396010262539249623089091926309933661331641221083585426123984715938727894643491773162393787512532240290309784888499826265198473899669001883954272550357386823464390739356499434717369655217995563943944094547243851898870856137038659371022976263423388644832336582360726071252691544624399775068205774807393722685887551970321442685662051404218645603368941498708899704746386607266449273088745789069328000985170073592194162845842010980531915018487355359098369789722251400928282646816782070818480901367296416178550092149437686443963044963718189841162758191138338923791490653191502557681202727662076932451294897678506529961465073608786607262989835904538002867429740218811603266060180987231018223944433404230418922013599053661337182114077341895584199131400769306417535035407414656586030369425271748633103561253133320537131512353529460575646084196772360925459048614024898615011603778647914460335031978521716960088858051544997994698726979409215591387456024470685917150226196591153861747596883275550266014668524751714861650914178790686014817026389583102707266562320208188537821436104544804179560759757488742602385204317002247368088712298642367062923134834231829416398567550729831450678340050518126376402180390846384100482367152685684974051793659277220032286214589409967885368453891624305950467764595939013908992009584851657336195154899865216437537384548772578206246500760894623786282423288210404319888236709288529205910325007010622857825745136157436323980188135984867821913060456767871991899711454020309742533824269698665188288910029995394321070626778750056240012515371500831367174150603378253352237251384600703384445253906636124327018296500548041770199376663631084336572710278437678971455102405456499311295776108614707361743955437290352791909013163060013376333339260583794090263400560534356780849392572480921517256927782015709794634538588990686839040662237846503962270537298310355437958913991816454778600409884175510108461953905415799722242573429296382526845472419944399509263390931891765430937960150956928139418856123409003922966659898047406118480905879777984321202328749424595560800245132776377432761807726069283426642858946213759282744602302438320674869720146706757527426185077190036447623093871440405017341652617017955807927828869623535548429873430245074686554448981111947177939499321482084284880850865514884139816141607849890195108741050813285771152474905222638038741285605530710717124748643604348382511470242800020693713799809469318300714300894684893388654760928224247541181188523195051989773521027942577707015005378230717234857068436436219978790026663534147452817230704044184241836226128547569805013648390538583392854758050902912166070092799793511167272207169501711119043719704982010266244096714103326491080766580434510463377135369361984597918236615451579993253230021354670983130846785755732657234612745945013756112466712595233680350400903645952991755582092903857153706188225367786782966485957991291630000371040075818772348225096672204460115297257086563205053207599683868926758938797063805757781507485717840906584883082779333130056595307842601932292972039516243250056781365781180437619585006022720931947866161321489345425311846527815711805734960113609833175862293941559413170535165986725169222743904635097779049670298082648753312013917327837629979304942353454411552942427849344732833176307701857571499621905683154757744976540950057714559680998305447415964118970462208973517215697481370437688789411566218633449145376492341316280230402979595649318468949643354585870470981430889104720356139469404035628135781866445347789828350449904508686271035115120773024251233668778120905594468231918971183363712763120309592650923745468946687254393045005339368217165770180179847052908945463528432869668512099080626608457727303146644385256013627738156031605729142119690813346937630647494905597924746081545394181008139670968554154812600535626192005327264437233696433680884256641373929092545444855806209859078525870387344248916394961617736442382840146097563138218849803632606750613314684676521393820586036541344290951725523927608002459347177698400913907262306800199851768517494808818526613637484181685902046148297630317602016547329835834601546813684764130083093004478039444332769351185948063250831166164675816531303167538573384816222766272560635947599147330145149646070801245782396908392752686459690987789592645452482340884910619789185261745370556528557540642516848699013472091767684001811777243145380665591686572159803113742859678991509725732515730017213507074384898124348131449191422272344972155411205672549720730813540780846694928216619156162941773313675282068653935945801027035958121651971206381579640478158481357352150813730788273104168636804648457772905792676016805913107676668649085577008758483413513839278553101223163874074472304996302616407025795877945233115651351837233421761151178546428093253148531181281833105927838255119709989671689626274496231447961967130360809676355347595585356138380440091892834365201824405771764709042095695720401038577836593226571582894427170405635981422070006527323696319524586434949149177448906796493597466881909227803243431854307124007348295945116480080320581985140873619661393977852349407712347069918549818723908567697193410063228299493258999842702260989893592248163205249146936468555572590312978971002225512879417699893345760379125662494317076807675831637485019914092278214697641097169929874838407819625537316287897592952331083782938274517654925293974027566401823438834467354469053269600905592089468514150833538818290418279204251923956344224623324827099571922767390935243899284747812480744134397317723049495124074093680011570043193442878563002452234242540339299725240932125571980301560157824306307676631093011594475959404380334972675082409278054110113222226455939214052540551065949521037542708903587162137244224021390846752292490458873582094853532634648761397452586915973492143907022071148045916171620412302663001378973771581809220717672412932080371509375871531822101160866873078097793396890987217918659156614222505756045354179995970833550829037980742945856141552344247719617080020319274840547346967220138340278280662582482793299590942831453123767373170064851688149353270236768393313389456901578770645781129505157729805305153353803674102507151036446814429064888279273044530867254825906903120557154990036852042084546370491618292582666178575314096663764921106525786573925292666650029786830597692517085004028354367127884751864292189175357266493574904291947346891107527388253760534923408412946458854529306829474695049004869785817933389370095273954636806844963099497940281615218922312018835620808610773034356224470172381384960373747847435465736535971828739363718490384069209076087815872403653712603483919697750165500017671176004434080718821683140876295380989827480124936122746068832998461274952129301129961315243641288511476431020934838235578797225575024088484178947544874431715145853884672499183469021629989589379163305915054153623901008566943068524636847620762475645663936494180300767179950454925823583410231132349201719777723589721250294578010240333964959451840776861307753423376065117022375499792636737737437057811348807154546694523495663170150311380368500700035884181803362765876360774382005825123731219687150366472193934932620730406023937909010535258722741038395207606894670987494991828420188304678069016734259203466062585101696794709181047544245868211593152423328201741967314751472144472979203387102345590374034919275413361461289553328205054596518448708568672582548546110369736903996628965620507453022326311439016801264378477037173364955522508806590289748981565150773235755684878294542604006613885239236185277252632578906059177195619875204439559714028245085553659594211305536140629164835266486242251089283491769821902015458281928295720729953509468629525202660692021864255890799349048385653724134513244610874373827194596974459002513322317152648777743002746424120018431290397008131745351522952534289762251437320881921896645221728441068231736102783271184928045838610799638571841469772496013765176541227874333542689470845113421412372228342373763386334728839504889856481051019507554515544977091115922706856234899223714484428513141687361452104233690027685488249130880260011940918579218066545447063310076999475401566231509156553598370524931965028785008648569398859514519321977326358462241502921257418412067300240094250659501319482269425687586933974153800794658678550840088293054176314270046836508939126048563641187757299121165131318163545270768320553231106293903950147755635991449274176744966768609284951265409383422692084354766724277174503358721973501954366045031789901023712608993125271959474441190965043396229270728013457266184712380633225299753279184428491258182677294698177232518990805607746549032124978086757737839452010110348763207568031170316319470822707505996798144844092027332393000571018616311735165188023210245454149834356382541849074035035887923886767683582375056047804841807110953095946083686005909237866468100167820033560496737716293906013856451617322847789290710362108404836262052418258295945537101408552876031565699272653473557100866895993042748315977800072203201079838068572337439363470480934605024102532422108771761692207205789005149242595191729794581248930167183694614692000694454240909592107814455050929087429534141214989093579160264417843189074802967474573421471925131229815270958109232500889836798836976138209516938793891534723519024155733473529920375901770115472586934952476007387155096660871073020037908419606279776398787160142749299172910478530081778389921938676349199315903175613398285452399876433919525788493189730548428438732798375176345992954997682808677186143522292237182307345686172422651366422421385662990361188043149797831498120790486225357477569216985927217103274529484725844456619520884728860785911362715997470954682982184710353147938897717087223763276146478433576101685499968178483775593463909997303355402222610165074722084856076722641588653650744209210712967655762118098527068141497366007505732943241084980894692331768379664184509791830575062721881926086795647600639041670726239361456333522961674953127480028987761486009995829099009292372583747873209472809623638837604757501720151695165398264157414104165918048794808848547444706653537737036149472870807008092913529179520969084407933685711231538002286563768273119551271728404151247647583481134186180353098825889366735043970057090172311288361754383037273873913053328264317218925835331413179321218695771543362573044410742944676618592251674124443200546791396723877202576435657759750375380120109639758839822060756328811347816350556390628594008822605710961155819195848177792297220686341864139989437404721308404682857798657266005417803079362625733651283248902935714308459137984570291072048624234182909501796087321206883604374244532695253604276183917699403977978557611216486048274096634896663506983590094899070039363711056567486595976577689875256047343831518178481591836938309398250335025551430474473486602665691258303018351006417792120472979644903377711122511084751358305547351558556607573123355500149857562115645139341899621799970796231498375306990473172684586213225710562921421951626092050355266434587305180360855310604300507896988834181617440929694530928077854391221551233651384985206987831795578331970865699500136259481840776320067467973062863617312309070398000774278925034720699954036933851023953469105865080395410446458340196376468328636157535280100374665340350520529487729743819213809035552048495115505458253618177293834801535223242204028036663222486688962097205928070995999008314666681436709442258261276021543516550303031615466521207271248692904988354839260772604249401905146516935489907434084940637068748012930462744246317671848672522810393064856164075357340703555087609606168313893374109491037191542448479683513063154537028355037995944167351573233113766463607023973078035058004837865786413260409657331023366184060012019485319176246471147478095540180406699020947674540327628389627028983384444846861266740226898162065841534902388384287595918104501123310829042527711244363077486428329935762956048194170019730715097352875792618682401975233981836914212554222462414550897954892272400685540552700695750888184376331457598427035722376288792938826039351133017918040895668610326676182127095597125645668139984914508000292303722772497248309898955079494017748553678645761135982135033152438398554478983238803348153722135964306904452015748348999466674247584163154240584181139978145353771102275197281740348318131606683570089949946319005252009111513698460062143273612739869985430570711903642146045275422518853412787117735211308875832761126631317590330131155406488489612144351887655254446335959608649009796235031750421055434299750396269123800831547968756716784369992751470338796805752119569046220256685550850998753431481556652235780846999579664268343459617106530784553040459983743988713217825083825234590971867716846781748879245400333422063853915349935632227909613679000503640160288415999247398603178815123148905174445722067388154100099420313408536688161956957861222622974473114614704712391125550514016799086793009098749866451986797725931624566315749432970054241782788049463029366974680870460980429904978500216995335860484683628522064357355099186696668999208388791218041035175902767443037605290022268774304489360704265798263248821264254064485045983048584879684565566212994532033599036686042010721885448567172046008439779131266225355745582574556125409600961513737230105346392021518416008062280460743157362984369061573660531968355359443111193032645328685784564013996448898065391221622457206794476686631919469033198570943537408240819662437809526032166628104585555537844213198035499704335151568527551517444663780103403464272792878309917514823893515575132437759324765414993363156092640473423593139320037985464015802466212440050624414075041892575988105836485691575401827617687183311132363103814556303702019296848644452523358348848682425371345895769869783887529675024887498728773886493769250353168479036217854934940996573606373760827474402178111670209248576411718807549832970102109909600778842691909329648754556473166690920778980409923557621355591787665875893059341713693315225344973952767901560871077397245703106915581732378548719985822874672173038653528022088140329732756395083769645942230678853914017630967871821316505975836327897990035739093440761060051048645928351939224639862855758918791994528640218038463520692041389358708003523639168362500780665539984564198799872001720539246087974575537071284002120499068777711886036835973991845956793741962493172127919209989275716982787174371156314466029451091399439518308425853724152130464756006670392824949389716718840948715280023394373914868078159161698169055718069320364980941843109611874100933371118538780189837906727672189335407882517108325315236438342292916710981339261831856111611342103647816332115166613453472105523955195551547501116909629183272429209231169622293767972292552933853683894484209401934050732662252787360342269951950665509745180855563882860433332849409033360094730570053838094052511379247792912224651755442038746383922708950648904681587005463469303673162574649484932025413592628825619521769933298731557561900105186290724347413854161854493387959105329362879146945434136922539766808726739909269853549672571713646034596918443143090410348602559121209878059097126538479121693315617397385982047981808999297666435202145139167631985296065355675295364323492381168235768683994609178613002850490303518371435775452500637206697691451603241073585665176348876339119344646326142941569760430664015686071361396668377125749631610650717440438940193511866518733484681235386904625527534900108089398466494917480172155113863807396393775806340081112805425424260714290086638537193012558726377367278855923105850087060163444530494593703565964654361472540676571964163796127802728990481671647793044292741247568471219634337309992176057368464225604805195671681774342665926488520940944526433973215917495458073258490050851043918804041181161470974480389176223172395174191182711528751542757909149939525832467863311280460089728070014319351006675858810494561835863664077873976470461441348851163286317743050327189846947700220711502202701244934168790873791190803872847887613409743325152839706329739647774483893054033354608776364296326926886937260824550131654035572724360994064847035382562953251100373112178671019706297474580821764504531272125794541641175978487801961949161277739730367157774274051611416595055673174930527674401193644705805437089618555284536558296733437346230292304720353590385627498734870992890868338592463612234312460111061533331365099164868085434442844958213402029759552440883516214003383697964828894457832951823301902593813341957778467689162280779915110000974061798759475165713707659866446797722818519177285582856337463366999261876655094120259134571821159672546121641699123551828155946321862939163854696754509189415922260088268085991998424251024468677020986184828658994283007085818449505056432944974853492643320224720910489337325549618211180957833782479085775118137351900267241188756233194841599527144205408913613804981371171898367730551720449691695472773123311917721945309263022981887570732185722886477836036317574494156895567642798910852604274972673993822063761049080254630924148430609982697032416812188160198730661454600799996942801205576727329483963986884576009673023184191352928861141635923157894431405664286793656523252966445948074980406955587764711658130589802314391169573836377511391726433153794774509571343838884621707186467698331058074335434463005722022036592492464804192880704285869547614597846591194334886606341778172967638767565678387341631394533907054755572722598246740366970210285603647158015566578067682211211554709417532681563935679429022933145404470969518289443129940879635327001186685878635026401370558859293572854510337784628903849442129355188794477752402175596269856873019770597733190668341478310896998504949760201917292803232427966378818918948577277391255090628308450219190167413710318273998667804190512217677436491147979459913749923533585510006246265842240317767213966424508627221914803131384233834980388902933585011185031178233839717362946661818062126043410735545292755878754710576218907572652479878349192839596768675594323063095485750475612488402450786066412747817419094013402986335728684438796392022594123560911816514733706470538150543166199142754700413391022079446320794243568818650802836522407199173821050972012701432831595208312141028434751284010272204696168294550377267822641429307749231662069977927793338791825588179270629672100506529060043739690779421930709208764295793531138475955300451275121098483670042965662909104218488949449870236177002906663940109830095700884124747423780117282919037487375760695256491229574921982923106806648478655875864936127890669363922729849138644095148766100128844358337379189305469795766090910991071537999050198194848827542156968781419938486847885887656465302801512877271946784419021223837793861905113237620108289875779368709431433433239695388718991668821816684013227930067179262843298993405404760034885185877867508043647036882748203683520953588952885198191988665103952450802503051408394496086281488138633814761735364024964480036721035137538946254488340701506087515211398315959570159438787123123927416274135562655288587748499464509803519469613926273776246111946798182044901229269691554277058075583734491138358542477229893396442401840251163610563781409388168733544769247135123813895731911444737069344281460782595753738694761440230744576433363045901691002127009411927199274019566912237575741398751096077177457141444682764227328766066185577601443957098525120130734934072417868035654095532888513546876017802989280828559047724475017444964755010136392006248118279675024707256874105184526177796457895329946131625994124944044960994847285552293622026598014516276656388795998493715326938291231901869026612350868587052071106298505596686221295244610542482990022398737385639043907507027676369761415983163815634475832623929210047245921918605543644690531242833077054158603871232141470512175678329206580490874810018929886202129157939696679797240679646284438602719826103987033805273347639214890726405270603009368854100509272964194083597207473331028470724527078985265624250066343431955214304886405474200991258247353006273954242728019467389270386661825903493406498646440652515913331523540503618806229771820825306951551010299088149052006034009373165869986431675911991751732005604543212280997128304753352462988606883089784163992625127246270745855263430026054310770969042328084938382757430913613512800068703395506909711106269473411083049730139336325310974517728740817502352742217540651613723049486592798727425845046539473498105701653109584669711639404164810188530558245057360956580757311612957506120968983788589430564584069872653211148195080743297631629110162337358918516817455099699956064395733006835819776199306607117902837235881336971190918014056749347920218658433391113719702892142843713669847057823320823005306007522679157119305112621860475875178989946157470896990318377782586485279671480907397468635887475481315793651495291473473652039854513648458440359755690890122940564558763009714816451742623758519943977538653854447280034497896065669161636380290995492991450380312707296389650022195036998704249513320625535540513686065881805890988370398649539545643392533280801030621470138894404991217440345467397510752986250542004308328288311125373386018718383626856671071567611017592069082532438216790786465238047549990009546013530140605745069077445023349425917964201671543618301692558199363515046266655087237833671617559503553657408721575068174900522313702756172364157931377841703455854844440423210872566142870395146054477850576889988215112494363693030996942306863718847607199564341952007265570790035579703066175876088048899415610375093103494806653138615682044328231284029848674685761773120003677254859603209037001555300407117870961162271422008627843955835722000174540489119376402514428247258536300840484192685131511365990139939987764358970483538269204573411109809225631119096789757660914215381693701353046426335696442398111294020449823409767293454163494695707170170241818825701833591494877638746826737227257183496313666190317911377984560412208635321678673837255937742002391650558952198228435261652362556729567942735144867330819080026217791052222869183086324617394329947215521291039922903640498178527733794952287204494903282121724865009641492789963187635485813406225904302759356630146597206456354504388073545964297092480384491928806255312321190025238310098036008739567399381267475935429300657106004190278216043446247351410370469101297799542250779415594655831790970746049506296082738132658200766308319903524239566393792173580270381608495012353990837209502579771211194110941523528650492984033890982830880408075181159009508326192498335858747769951843924594439461694699635910267574355929760589102802537000674559938509373964016029856716660845537881855803397506261418297043904960485866769289560973668528893957530094413009292085083675265134515632820742705308383656120085036731593147202239800720028387628592658092086259225690411312234554081538202894238422825260597299988652491462438052138620145115862385000145788798719396032315971054624415226232741941246964824513433313639863594404469135756463745235894042164583770423500670914621790941994276741162486417274049419235370669233111674828448186333153305296379182650138218891728899736464796357144073685202293913407895819135789219849246033827090962906019159768264611835801121860520533185578045578397014007043680738679127082797166564035159788216498930362199749768570992648695667772815942769122332103634408520786723391752965557979097234713890152995450083894461590892208032953262712982845682512556885762869190991479876479480859950487711932798764685012323038132734516794268360435719348934591350803837463335251214929800607825224638472133887531486127432494911984700758815634732756123068491443053589934695957524257116533568819539310673407481885506317855462629397094278053782525304458807465766286663912740363215288616100416736304774760948100645267584828893279928555837672000742430886345869082177466184169176234869348866663272893143221580474645318868640278705193762155462201277427797542856313046658793299799037352628422259912963166425477573431601204828523263973220794751126294316513271451744243813511504252974686590574160912566996595880696106526702519589706297208777677077453702589886144810842933850237174488709085603065428101812579829072712620552691964296275833865765312040895578722423401853095133208084234477031767707555154791485612923133606746463733230235862057673612162395096294130620998776946582425107185205318184623476333272216882597197872272511997863319113266414192712876162443138471050294920173739033487307941873646766765223673912399578178756623972850820396301887822356874745314413151850356154674521993378676633113991208204919140101466107832139662316696299614519602050500877457783062678844855152697568076356248661602180330741265974540033788304557244813043551041058079426733563071262465425085972162808711730667562337364064633473077384305789751523663722815560442393068625604800476085306476284254274726066059868758150428852625018695213683792568043771915971646705035533898230186082683037884542049173951370641816501052427406297950622519006647652708163201796442969437100682758887380573425517386270340409595964031705714365142788044303266569379969818838343817307916512146458043976858713832132520209427072458994868479288543658131816883180050001736641880100768463372562538200794061283962001136830893696949173311923880050098446264557340744331747622172451935375260197190784933724571742519976713723560318599689049975213337127392550883731125506304109011012002706519232269096069531827619848358592297284665450006524610109219271291384453065340732923313813584933104157902326516321961111806572291319784396932445287245930015676757029134340326041394866018657073441633241443315372727200494451030604235106129126401147007983234425292825981240364649438171868449781948347034617356952113309765075089244486666832960717983823837368477156317362262476327582226944192517380263372972812845635412739151555576583920482736969513968492223648818533045313175681843121164150765302779518021844675886146876490776026149192969722494778262673117633687742324086297150064426731462633188509406403373178293141310888620995055658387366917712597760334302429365424512001031129492031947574486070741694589312419502238304270638257391254553267995069425151321195229464792751900745467653764162884236314256107625935946003170799763379891766552207329434565799283054908967988928548988862566334521022377186437165969764340202898780264437865257154048537058096333441832693953072840758472430523177602591137183241287224531911202446640060813179808735224667217525999858857185176517828272430233550465588185836722432109223530227733247905080671551533766629476541539727786051248529582270634459463593318442506258298325697632666874711826573621093133413443453068529773388622194704808190426483799669504490694858889654096753487675104730868981296958107815890445848714563394685343505178749788593351273991546598805595314301307521474696164128766424042015082154298998819036371661476433994314119024081793859824002047835788626395589520183127523346372845140599148536480492040540003424795968604348569621275364320768761440359010141338912294412559545762929458607669883652525273843338097561768463454272132599059773411237953437619559714698563738153152134415661645907810492184568735483478146761521132515993922100100912189158174472414907057992659547217422572739516714865582745231204478791861161281334632691683901085835368988080788408755889392875758912139714750978315060145177989704226590600693655172207691066097398907189533904001245878399465346834571793932227712688670598212230122381130031658846702783751501759755628692409908285417431429962288014235467755178081369782161942752281538104219136549309576412773539478126510330517401286460727644552982040656094310691470357630747529310871424617175850234078778210973623622970123100053622437294680740274280036973992660137960109120167553752457033268912112592084447826145169825979259381488250143677633623398134062990021010925217105407586546630889401436405044905634795834670336607415860314096402873184375875484641261672637275296390735096335398527134703369452338795686729639512277196249748802959887426019580049107742108581106087055726319075675427660304031261917428278808026936241177865976794324173513917100396104596944197363448926808296845737918468113106178335244470452440421830947381255097859947394297904474944043337178809939563680269624763885346620967917631718536301555063045661238254832717751069822169961854569036045508086172091669826656765304372372412237049398042222811502217119972955470327126888242846555341038757058861656333168136585181522861162276739171425838382731711020819188630644611807011110251923030081263465691762907478582829513263295693602438756287500168465449247467515821219041235534436480509395137968130788215647203710598531537166750263894495732865294391506295024994414156220581255307438728319071999580550130563978987188112599404360614805227148580602121256525518325550695136097894807714988553346544657646725668354285093217717860395977558394933192676387276140823226747563996459848011036417514761738636158436685141022885802877270270951142732533092444799455953689382961587538740054826374092043639760984156069819152856812178672362895426364820600942786513262177639564661798446170190233056357777809838810120818261951655155770248679408876931941043747360774024829064441536582484995769052052800062684550418280084574640213583245801682417657376184778200462148945094147235579049049538341161693750720455311680627593106698777684496175676033641701496705131297845798983047251966586556034811425730296999563619470268807523601169607575937855314803709316198509575090031314215354975511695206084634745001081038863162814656571792917729253927022894892737269618524476329110881688838385879008488409838366571543776036873175308620459327176206202888090356488679199274190968473790397621595957869895383636379379666254166107840372775980465658256904977608745258493220301928932822920643111655226909207987792564231542233957303303570635357033988008402976904117377988728194745905693345223189673841414557071739648386584553780349733273129319563811846356286741184727888664632018930864682287590502870611349263795854231285464683498411828982554609661516848662467234837043467376331832757978807153598698960738791869888920345214219877420360565273907271794578448479948755663914580823704879466782199742218682665705267686417897429509524897458429586022235417616487774999394918575213116783306517430800703930376665508154969594109985427192304707117536131915311967105346255522067451251050501583701934358196268939201937860523833477859567505493332348967617891804163028778530213602251703854663198677732309442667126052158431550625374550019168879787387320120865902333632975898767527388730057959839219470566269398425777902512036707802342157120421306583609807432305749416480127564219042308223562880624100878939580558826086637187232167554845348454770189696012259856132203509823105440909071417888325269703584854485087993576877831830147532360344995474062436893812740237610728563021532282719334510692181687595905025450129892031120330821082282116535438450958121879707809939827824056881989669043919323028431990705694928090991668948853077113701429145755606150865121806457913390499581216691557904523246741899255474870069077134862608823419460479625808678389412704307930706931501026090886070030334450128723053045648143286050491959050839551620369316541972061872195323817937231273666750391456349931295171988084323415924416738995762242497057317134777240028014346913451507093559000259199134120338319558328284616297624631190540202740356621959982555330481008729573877691728551876071940358098548853897482238480432884119210322731430618018584161988331814076186389796865313284867644653857073332511364861705663845285002809087855375360082654704015152114406849310223683580323146037595822913762810454259627683262904497526102260381324489512146131944065745507647828627603544956351668954645771810380128225073017553455808324390109958235784637916845330216003336040423306444051274066174260799901476961618433983045964544948748109820750946296453498389411745763261334547427053181200654892566039398322212567910966118953640046504229735232035271868971623460220141294784521370389411297889348850232826215525388031751011989297242942146055201819567324944929797677919901685125751168891630893094910610293565339627732236764580786825702720100836638105686305441553534381292427356018075216437225049065576390299918078354570445324875007439951907721051866461841874800551659913566215827280567801993144663417372819958129932675893547298244360186304309554608578043854908226330556582119571643836188026954067600934935135009958015557854100665739475412403774912508509149311315194750192912173408349431018816839985752939654366961938974560212103584595435849335400827233701297460636157763610842621620099852281947122368598090971823308339626835655056431583876946141995248349303761339589846951821588836778166584653478801982001462739232015314468311905312361154203853653325167203790276693007326928622493888595424796132501662731488774785814595353541323639358019358582798803965792175740028990669021688858130585471651847097144961362030628880676547389425671349502275071380649873020433241102394415913595755147694437596463986214550561379982601927980396370294652645291280790523407630045312209958467457423561275221965805222419879322067485851896158377482338034853025259420132860104172310472841106090125119511277408042073277478948754588623693125108275897444452758103402759068375657264923137170255595525615881961516892783144567404984265213036725192264695699648126427201553531077373368745835571083201812235422518285443622178641263874745991303590961142516786673118538345411310316463182116500112588645167318293385887489661414800220275201104554437835730070064259654899625869403430437768936181678968729402696333496974845203620683900719430200213208296581437152318232105135318472867042911537978421498278959207897766213986787304546720406342513357317855970335149802510146222942991688240373383802578811810000419476509046716684596126964649028037932248254831615688685607864017929372774824615241254803183545643636743080333046683139983247336775482071053389326122207415651603543555848950527215007134685071806526592497615630323407668629932205117225896865900640863615574178835265482352308889206591291111108389614520153818750944379015992754834329304434495356224782222326967253078952132404226712054152013186087020843450730667051048373070616633476770627416969582071484738253620185061023384127214992568480983988780871699525950545772669292622775228397512963593799080346353997796090349496439414145065579820497235388702530412348808374621940144349812083261388024631229058450698255072777443971274247334407315601709644933394973983759530224786614871955073066930819597791876983070938441653605679028627404853691478087047497173877821418072415097370524913417874400291541506322242962964757908498993414729487595960850705216706212676497319177999220849357933661109207129998886702873949035888228391037801584886052340471774764592753624177426372043526046080359304664003517774782284479331747143674446069677708715928878223016012855962696898504260954911136182028044583399122317849282939186743892904390988546258195767375570095893321220519374552489950580115336810393980236010493193975817165678266681857532615965398403814222700674538220547949792908050643993586987898347707801312938186990553857396937624935487202361196090046891072202252512347930521852097625141802124832113264546528380604266960783164496404558968720621812895125168060341205860026741556207728077688283640297988146954879398056178396865391514171769681915023699723244877395900978232274976607680365417899205720930869535573634963952626519295368289092411257760334340429659150261123207546395662649027353333078717818697893859631131575863000283509518991754496134437559735875794963905615465740571096906113306102197937085083326260164907922927334959041791610239327160555522218639988286335910610092418450848756699424329093829420672134177807729393276575282731822775092623778082385391916163129520411939147600187576257564674501276681706748069076485014472853936687128836299218481841656354276142531357952678878499003099782511914890507111733425660698442056537914135654399152689538670969174855768950802946717134113840205554730838877575331281871873018647402397332264622343819772745798585603587434163673189472301010790493595720522663761647102703273622272457012463994997759622641578555719021574331838960587935706027583107958388819943906009688446159020157037169241407431148453317023905950598037368005589652549959790861606127234147655543677293623046196997747380194809518648839852931873751888130051860012397398212079077468950552391916004409562089258645644450172017526925576489066308145143206283647432854303762115425519738266602907061763601568661508080029228633649472418575304128028432599105547131162907716924152006537872654799386195307074721649599086037439941681611776552088364936996715868248520510849046796904021870990193836423950517934530368394124237090997736982826784990834593244975497340994292921493840567940574062544643473651227427607836029470595188779730362318459078417448313926130089082168349817220477053556367756726239486426110702985745055936298948777750356931545198147623170905497192209774793784718794849211511667185151085548562841223435835091996318805666801585389635520960988340967436684821863060776041084445060813408135028617953399720235656771285703236409308200869570203202983240552650057666363437356630221076177022891975375970391102339650163995679086289886084922895056956762587325281363628908331402949957102275159526085557756643523905097562350648502828055831221775338792407519455263747050497997809150937233425583153885110699045507311419268077602370179110202297828389150866034666649845554613857534373651310531510030456710240094027096925876184682936251901352405401354184126763619155258089502250185825131746326050464728051436810540337376234410960985710184312417534297998475505128229002280301418031737879728978553315984969926130023648338885756941562528665182687211162446456562415801531039478346497229855971007825075779543347315459980212625509962863762510523296445110844149437849145788054026240445874279788209933599899480698583959156813230718642896067192506871195020586508448470007549732480142726109109241298580607688981380335615838060362293177056287586344982986776525987161380980764826815452936406067734090087414282320275836836131125856049198364322262684182132888975080439800584735588666402886209526058255147447286928936034078851651850409069829884666703207976047308075366069097655940256268493159669406352409082208050144004455360265748720349488608966818389533030117099103538231041965416699328876557080762009503832861191757240689320773789263196431442853649513051419763492292676992093185585440375145251592821403264054993896595838523739211614417766780965383762700150768544004062484760380502673285309790636471606755864771621251125718832258048054417422410377321052575468630895511034998906816427819971494717036200090834648140288479470238493644305068891737575286477786586925287861882275774072865121208114778418169531156077581580459519048708032802430077854400899606692863132371675522990182071426261068488129353238351057262681604364613336359437422534124025780069618625726531374020485841034685540155281312162851537954033001390172946015143129941526100571033737868149401641636590710399087009312313528215673471304922194612217578724983963209023782780464315115837659596262920900593464470727972162401478303904864193031218821453854870581889738250253426423293038637627092025730263843075221166044622162776226491658515477285053833919811181242766560235332588752316025532854587280954996486888046853453859802817434245400544251024416519525824448487100531663294000278205278878508324412297755099489472864778884487894772239810837414581620868440196586643606395808450440192977701463063229434502755479811670051014876612152368497326778859802036353844129221534071543910122075755462296458162526682421206113195079240417067368250598641991778975445954366584026872767681922565248534848436452931934231909242640409262128970734770771342931561134752214999228641090360116855446416895316068482402950292369583236830140575931554384523289429958115264325356065003077849701874276893010516435828715928748027940655499560452265654026735722471948687880326761411951619866412149625485895570259818032620726141796789241168560786334013092623897179527869296096854304465197618000299648701646978194671480678227553482642001654867523019547824391843817553365567511775670215557683460224603482063237089969246914541747128469148107263810764156923183012964220771574303992396058620409899944050530600950530588713005577729743240386061813497041528785909925262233730850409046853860947319421854535693740555792787646006545592643390761147785002614459494376358643293101804283104876916420975674890484010979005318909465221815045116253827364736626329565801293785690094346763215193249468176406704649634748327051907419652442285106980750760623236047353642720255192240733223445145873113279544772595218776125136491745425946978599908577269138330971920136795225170779091963472742108629091691261314798882071172081808763549239734048730474687825953629948603044339784362461675708813279247957676420326555288369810930261436812878830917925892307827257183454657228716728003384610109249885511336847509506718099995119864674403061648527785705959520398583083294768416368661417220638955378741554342759548891606544540223943867810937687785408397500453903510641731506863021686755125559844015668961746092663917350538846736004562664701732557975068712198005653633288384402590485762656966379103434792217060000603849164843967026682693122727158041754137688555480449868726536343204373887072155709985966888855707133631426641015916357122108297040941622160923240680552125730185856188450565733114608387852755993907346203803417726470254968148538863271900225782398744220435969724956230877152921716509025814937515879357254495387412709856653445095796826683114990410356212973111850511333690028406363928351892971136781495364035518851503624928537251807699373954639774146535682992116458739863630306978272243528670088111642207080092369129284978820825784300204683874546601872959229924995543110076929275134477114755461216263887987601292654389659114140786616446296893293266760873800215510699546755467956889269341917251288435684992108781299975638909996475642280740240744253527216108381578858986838574293452018425703681222274916279262504910616558485365126470763008646903408480492270525123564316614077531701554022709996572975396029863338560056846986977634920761968503886108122397160791101328129051477105651338134034388365101243751730511874479277100922637713754029635274054581105249059713981791224466123778619700073348809141665568404926468276382385351459788263092292533516795514710497042070852069451658438229838592602777719849709245124059938524779877934298967062793453281559180346121558715762679748848943174687310526169826226262475901805482058951508216914517996193126426173663499496123531572837540339338215593299006241638308805168559592865275597640093993201880999837862488771909318103824388995192731702939511914942172112649078500522087661578799511261627713123226827374113079835062025456100220892208368081762045699919962827811503922890072637243964999050338224419973389538508918824347200619260489314682192286214752327621797361878637414692985628261821064536678038206279788207144338190576578712076777539214639010053537337328540756875365700638909522289139414359037204147333934781796844877035116156592964468294662545163527518822520812949776558705998544768395277114276911807853120236376554616894633799196365795109552426596154603023488034784751515588514791656151471412938075286233706441693489769388978946613016360502541753068250887442838591124571251767621535194260881816787608699868347591047825654338886292007174628709594388434908359957229041534915169397156517122370332003640587673275750744661346457049459353414281139704657709915111383463548597212791809485172553618368722268573632226817537077931518358457095868822382321705019012365001146535044023204882519521635999795407572242369913826009018961402592419254735061532068766670946170400673244026215407311159265787397256026563500273491709408785223923791157794894824383764906619416198584267963934132497437742534524489755983826292244111610771630623218356024909779949052811952089208963550717160002408839918732385618476888145811884991089351960407343496623482461268726485498185195981537852918812402550320623416185338942070165442092967550387937548670316459188111870758302812219705916293167888332823280086495366805468305531565682551208336563287893597835615809525803016533835673075067817168273755958942390096523266134682041105208957423143319656886813234534376015396265426649699904752376989141615785741757081612221545636054138423922354774480818339453269066893401378620470129516086217684695892821362160378886416927575603016898476907513634924772730472617446206997080949157503406643078690903012669059665096685448493553339301103416279046813664531353456219267283831255939560302289965763417673544465519542148988039547516964753209368785126896133712809779940575794473757488309388150087275996152755567341953517964443714245697472405104919724213983622807433770683205097988874217960648927631586632864906128920357650814290168856701898371852002369275165710305545898835559948260968525562276401958572896096610183913279572791099711389668188365659244707312842589485799142879439072793162234680655552069947557494863859107188907457120425853888201532381554977560615168079806848594470314810806321392777053459111806555085834775222669706700625303736642877044627591908281888434814585326591607362987202484490963102300466116549241109750948265289219314112980650700060514318938614765282261161280434799750666237625099958088447079590638929004930607694164505074155503554775544876396031905152120419067277045281669208778969769573526033012099531634969766716070757948930692184669695575062887080597209274290249798128677138380423761582098022658713906603220257436004697278811114408779526114083516768322434799030445645361528646099771457782814871397079737903724393636931770178531163413835533360418352646758471469275256093084914293818771486386896996562514994761183805425242342420932648884391707829278147616988061748668008711233382447984252845242345265673706187627514293089246656003161936638590726434942568305861165806736784492077190446863670203774855731121661296263286843713978628782410033907231240733526689892919142764091729684672891193416397754800006269670580955437271712981117811118711470535766559083877177774427651348034018571451715888155762530936192825358459694779392830818138724920865669097894501618557541358930873102955824068297979897824431050406314583816009360155574435484989530899141816872386873550635809939941822181279417185154440671212702316943893146126127030336479537455661777294658302230404071695834993036980988719863224191017448142981830838597354725426707030690380003246825767952528562978937428315278988992036002138520440267508292125567016145796235515825326588340518828559109099774849651742095975542505885477596261004175619433330175539819844838288006296728130773682868319801160609266777713465125039948585198525903934411911816852549357882003179673633029537533522253928652702435058011380426715168157115066358286479318074722885894891599032307209513661426031996371624904234337426161486904526531522473626158569244312698181080763039619379330721284005193983202293714929385789715215458161661697798521535810708324119488261293010017528987277159816488720070182756620282208959891710303018990727994534450179688862758472084138034954912112872754864587842512149463400773874410357058053630675997689895843767095577343063376207575761028562789588135426214976730654482556446431622405187602381395313665888333378133262005764013328689365025918991805988949718961664296598950250748723995793018355212715353730068824954342691950746672065705525454614986089479081094757839527918744254816742280853131213448962283841876292558478806281991933211680595177606273421757221653773651107488131591235373970146504985150235632645903371815318772863046396138812838726872077345186067187251814449248046074218677049240151992776943108902991403882138156856712391054323645756285375839848056684864235256737012970088792778657157022583810186854733157859125552086632027933931263406462937555731829811615490477830711754113950966669114966917781472270922315900106299702232170778129437434688501112059532284352977956665277129056377972322540245877834002203132133026430857559247257022645867954892529461375265969175536035198487509440893773119650143161579666419572745159542492258589666546091787039337513866277239376935038314111431058927000725976769047721153912571748268905486749700500161384116009163906890423472440308930935966934302243208452549811918957768907187940750007005688485703952653531528333131215537313127527400613144440706670564489187788879828188857032115599127968678894409671884128135458014599241983475925128306008758251527083365743054920150538573364263751102811723459522504621429915852648373084832388692874125157419006236555262177457979433418295453413317721773957798830099853461302717733540410016865461968840464721604097437522328458359200053719917657869405397064448603042366976279961609190242887225855702849982905765478097591048712149242265641390187152688577531972021692647796200424975548323403973574991582895530401091276968209549994987616523500126429862572670286961446460393254845346102310413780779728662685097316125021947133782476552045272361104353271920974481217669902267482585668946857488973853204289598670233660621732733540380965632744401211800452019425951432187907532450283307028156442970113525694091445882202773731276212992480941935775072746824492557895087045946759903595296138736463367622346461633402518913025878355901198743820308300743041996320685418723522386794512984907058851049320328322314997013596884926271361354240353781494615054608624884669586405112119462764214970608935977495311698484276562807258728419988504119541610273250391898473259173408268449435096278287996449972462111252924445752553291373629604000620290996322559355025956523538937908451691362576339200104100060918406392670115618980350491621961280757328868480335032063229192762806608204398198976978221014680892542044088148778051496789983551433169416672265483306203293825094204131124053414067273486653302800608573826402436077637171684322569402951621679321510627750291171018677548936922449091351185450836124826904933388905792890509050046267875998915746091386696283785894412404482762605714818467202386358041315350827072052862426675005673135799177584242014545904522525842545372516716750434644235322441007166911083789942382558242536276522563197292557008341340333171050937037719147503130947935999850924686336866997562594714689885226967282286650289372357166716272427384163176949690321908835999617022446966184618639115169829839063565162223601349555190218175567422368434640162126784099468600956430279711836984857188575093955995028082003783969755100626439970335009557438020412076010934556389409286293711541613421890241615806316937180673375329222526427462237862485984435610878359861709100656080780504931482844889654110182984919078879965798037094668998369170581715163380777327335436227745663090232090152183246757882444228432434822925118097313659093721464391708038357759346703795199411809205459308439961805287680155087786723245160086220315409322655498860735481651943519368550812196502723557906222930687284962755074667639901976821507554015910110741453459764981384549637772241533797892580930734613397683479767782806645407288168307592133331683875803814575902987898663890838335578821923990241196989769325110428073537398447307551390406679115291932993639487799153869116158961508335567446909445325484706810789454736181342856712135759943501066705496194187346970850488295665501326670922986628023331988550323685883821749093892637833389641625059994973403612813474886805922695417237117965612203498070176755020497215576281807055661826020894683813747460875056415014799527860834352976352999316690022885657195243145844208597192395290152997537633500897221749306717197508588982590808789151568807717563206884558729125587496905894855803530541967794580665219099543371372203088230877705413300360065172436462718370360269722920044867863023644560419016128062960987575817327941544044311842629882620910583477170080929989379993668208253073398682294916837333523656617384381592884622720936889288306626156477756970543690093828069328992472378406070821224925779718856732045873659180587244918986842938131325748458852066034769631415839651364762518269433720833641431951117072465022833727989239657664121851535840463364126593661667388113052628546621771158246173631153537978597433909867774823413981372906947583276319614452308479666712838588481968444908269019166078103785818202522357793165851277375166841040892585939068390479292676445220219902240403020103479361004236751748118084884547940768784532742797010960811953493041558528022173287693064052207739200298463940547125526393235168530726039263384003542466059085730112770607854023632775994184876011166160189153801466663218669209168833813678636725034895686769658995715275036706540013440912322720285656005374754205317683926562265174559772439402010106673181732929784817677781071520289179043984692218651715735896343148729506870584332407288769447272009727477313030309538991768432965541575699331643216682522184306146679764825406769559434596190628933063172386254882795830970387377773964554922521536047730015617042463178764702934453942272409890841229719054152690367973469194411184180379069798454550546655306521569255958907628407389897108260602310799511481557690696227244734239901245798031630665893463146437146858276120511992825055943428567190940176356675344210699928441434909633875254416630533995437235311272492316294605109971185115929189353401539369564149482454058272447644386099027525067069991115547926912590300330524149686016264676277982046171586804521036412111599395072852667568648669950488133922431543289870292285900644665097866296267700184042733987023254605513778855289873326492806375052283125659768983215767366925800817353229178146710795127630553756861632181653154802054692123353734811073861965173223178791044166263571462190165915851760688366024707645797311500702446848081727253581606421285541623272959256883166127337396381533786554517626400436279049772690965585309111148745270233015098140817256689530095248754879246659281773693040080472440841157586958568773269139638475269434778386602161505939858029845837896968052353434439012519360930781593985044580813119731685699300241657391135957191788426617236355838924106787131236191882034414188117242210958831146574101377076472954772035242351462970786373367378472036593994705090514151837406424163078494651972929263685604031631390393749814938631192423242012557505783171704153000664733542881293419946254813551686363347669561837033095476471647245820594178845377258453918262299359137523721547950124067627594963226070427581915846891368883801338140332104519715788023415581325407585537023784455117124504565551547636759115579259936778445563079139094331622422388268004727585836167804402717828198967233838323067636814336196433007405589023117134562245810123442218672424401669659640341680373073557394616405801085664613438176195677209624693236539226700892521577791444795245769786507695841228692580322964618489100662942034138974868606390942709779674390074908158091798979518114001744246473449096329510882935741165462204675329145228928598302477663697691599953532312509527715963590530247227058688363642157665353027928226289095919837354456196768462139056559038117505499057473016327811206263295470616361288923902053093754236626261567049071361186445931905298140996790955322899077282392281535848206056016160184312510653373955033372951617933545654499447914061524649621983317469976192774959432644746949253667691553252658677885920311243172345244296440947518312369050690287464385124381321860088321769704473435450684609875198213927184812417416336908922046493741376607873561419074225692682264558897094224418673828715963664452463727215876096617785669654046068831753430959937622149622451474576097021748060135024521694479271529914415235738377522570275759694396043772843865973053657252784365106662168348639640232890842473853887106770976201410696253569746513143565862942342116391118299094182488536813665602815818654429248307287685256790111009396842018692466750552127205609115478717065201223405126850684977011033435846764849602613158996179209853257272332348536500036883076046900251888964479718238451896066630612109670726758473249610125293007308715769902096973710615059047094370123354383270843256892341004492829499624621840287168356922538296968473406953378981080478583267079279148771914953763590402228723289962953393621822614203512223233871554645753582181696920166052472446736502003422251994761296174940546175397577696765143885777801260409696747996286378083838988444456269157810211546886856944881555474025423202226654273672986744930375989011522302925359929495921729086627863037297245401258650186892076215674967178815984080010986509037665090246944154407634518630486009987799808614930218525440575422137464284704400344115026818098865513096670015618232708832271609132909166920414933200800521037778423554990580075966996891391606916539435741083088449047860579900340606439244609398914082549680426432166846593817287224219157727684238511444675818989630498967131246293783884429152470533638793234569189919151594562620921790467903658042252834608677581855992897169859256581088268389800265510210349852237187751361819256331751812348389180517496781615881854403844981460762069374148292720193592350576487922418092068113865463500746852768989685030817379728359130024555813869439852637030683703500069954280628180879412398753751034635426166531771741703008094212915370880900098317927277413995223829922056546746690208345004382878499213866275520344723198842812125612478324870591375334858617618155088826311115455003583920467642292445862141636599192895224443722217567765827686228677711386377510079181279612216874424976442458246390260870323338547730649307385340809624724434249068525388430328095961159199133290928898988379917627235169859115625657183209478177230085370464826788592378451145587110913529350300475394779459229086779608778516135848397793369765048405538433186537075429562201222083408449564911725208570478594758808834588284657708239355021027038172692790894886415748861950961581939751915600057185493246933934323504517181190021971872180730993068601619594555757946519695138763226999377428635937340208417575293886268420315791236993358746404919655284852180097119078022736309807989419625428517940493240428183820439285050280879168557985226221819219497353423800632983848662909839747330975858937664656565953716294385594676395380032147119913657355172911418364721070355951387552691419641744514746919259920133030471661223262828952720084574380455900784560270137942049996001350753990768071380428224028318052749348481155178964017325555234376274408756207430992703068089691059842251668939712401797905464176373847034399867146829991680379207350806787626695096006264733325538836575698732488151189020535906264471613698880663306352638063095704933970983958483908562255890137248335177705334461319052274165893865600718308751994435309168247923102494080368200005302886878241557158227634667857447668144201751044888218949263945925065885384817002163543313774007005313595032214933260456549411452942894420411792630328903535379733674904705519082779756238733703465894950264392164578758165270570070849820918532806439741902375579330018169477932995304688573856741132656660119012645053681003138254126463304032280606436089002641029537185741586610541488874201577569761901093433085024436070122876259748923374197122539013005199294151098287304382253907275388807412918249015641859224848357301515832418471924192436592305159694151733095300955675940252014929716747686361412017593823140891789121570940336597046245633563170169143450638717602151069556548204337854974665753057489351065060259562724525423436544448004405858059799072663833960080524931030449911188242869873292417279305644490062839679488768528642798659873912121249029284993062761290921572714811397228861810633193464283951179700888660248003151960533706123965613359369709402548184421169414181545185882333592644709908252209085019533801065941500152931323887403869819541621519945225762810162597043469081205709738136126720527841026876571191735206016407930614014060368757955431877766215985128041610006415883131487423361214449200759743904150882040323704014902172894881530951404963097152804224851652856427555291763099104174506326228160619207288049380734083833072389341163529369890541904766168302933565394982903733530475236402055665034713640188727125575507441870589234565863763219246079266857382529147803057649980102498401087689353525784589102874738730464547663798685617477216253674938408156740734860786996359868291659703151006998170877537095185161976772465094914517767508335641067047099720121517012796633965305498404658026989538368130313658916311252103489255128082449857055626369301306752670972837840178701072475705393819055874592501722415537021497865095159517584283094267332130923152654752359747073482427188341111616843304739727830310246868931224673068625087717449566587957129972827088565160039376004518046544342250357107908353457889399909551392137923852188584322664943474674171034197297005540853732039215902397996905712745456700470026972540924041902405267368414565750034210398816059783306538268336039681883077366153324473639718311281861400813094335695375119252519831947192427882316257436931741908706947713966041169377690843633916589564767168559167919171310490853330383706382729546877822660765936572171411480437161737842698270393864630914847917653028918856465032169353719437790385010630973508385672907270281734444140381734420355516549545223777458368959342777020366353354189415852895722872629241490561887278990920488118262250191148286099679591512727194334419555796210505370616549173491032813190302325143566753404678252322508027569724814916463573069896725862501039473834281912480572810246485739228648774629539740674677592538771628560576492368503921203682930978271181718658628793230797703405162431157115470678068762776201208731058095324943911100385367836453182096756591521973550567068365470288415143418668646365937197960117927823374807556130516641409298386853869477677064674377442182848820259233159488429190633071851738166264946206418950372686125243417991018309412408678591470611557128938440330968122755338708278508596554722430800683496318448343231600248321623744815102953916235353115649001626524373420434860393251895216438137188466815212325032575197853327382252403564082671452194821692296234694501831748221918133117434628457697598177156987437228382599937031695553182135953035169057314507992944466699347990600523881938716985927608836179299093331957774797374387283461746318149093510405019869418221777458049426387375914257164487089570582753754454594880137166205346951701304595288655646879720908108879438017152650404234232734430693933992920974490899373891796692083178702151693889381779133980277740341273420009913394513316839661368084938282081579511903282379064892560978955019777705073358140802908962374104710104788733198872533344861879178158830712419144182944410126165505214337047704668232273159816779595915393732414415872733072324460815977242957506529363572005395848362938010593281821359765028441614814520579612262595884461683216672768721621866846380131464694895723859276403105529760644731097348249606071261520292983015966756108692155404150173128466660115786536607616196755987615387267520433865201093540202507077767387723420026496642699579021896159143418111636700514099370469233264675554405482832613563655620534377130542121504857659166107633299341069497903136716593132562297463064167067171159199275363522881329715205848619839612522935964619046665930924136482778157341446151571668221132245616295514643398116874913002130826133638457763397684064773366997363203753027478406701918983299023622997778117328653373801532463574549490262734164323366668580136706473411436512701336939493240411467808803348646732319375507264724476063678256516665932999364215020348005194584103416869599771868025554997965100705858529252836990662656859624656504087278826692929653094736275436818716893631395069995116049235017287941332160381989356109719940322418790413281743053690799654591713309333496478739635096849420078913681346959378204516446572525216940636097325679838257118723808958440463884543253053559248029305189396646437640360870866945039714295999942555381996101234227700997625823172952227992399331110514439277085316012376594494180104983942371099973453017795437117506477182738786919008611099582979328472981316277658353001943855864217348382876199609259469615507016611476798238286502718720437312173236093506692664880376919559631557615193274225520181705669159084754960344566488689288908563502432706238231589832171979834435851964679135327338572898403648241070084344622278540570422153530953984447555950905021436563098150656050310668309509862630304338420549066160129593093484098574364334473050139060720461418782662669955823802424206448211419311276651676204619393129836390801295036310359392367363508076106273158509984759301754842459478805809560235958511384648482816651337740399920880858603525404817980133752742118899178687463146512524911876535239530014687686167854584665993057579193436852074976054111123155012340295948149628895482250278320740384218326174795714050682298826536122649929806696229329840987454167297151413319355464504439127883434743268216066166181262136494383436578557354485828347024190545375473413144041087191493941135350270280100402874561361510639498049746331796053059948542672326383771210911378465506958573314397255126359941159997692970974674442919318101997853555079187391023685348549974345451011692065590436863040461191874129672758733595574079624188684447242323299644073024970720404092912124341213833441316971740806437818063763373123566476531081673339977281698765332428094400825521431720586952413993024218969116559699287852867802374003039298340721847211656185340428163586176082067163482263140172694364997043077047183482659268127725121184989269232548964532204318978267316977527306983011675929382155229897369142865424853397553720270277433325294277709955930080195744640531442829040248844999728633607440720901681608468436102231182765381069850557058028973299942989857806257111208115305808693766005134451082518006644972083108125744302850875198412255892007142157431068262039612462495526045270467130614562508388538068950734870401950435171697336913538390807018721645400401201449537593469403838491735017428154679619273721749183271881441920006185167561577029072743976514771214570871698231623390948934653893180561833991883400878373690845300442032006329722212259437868740257569756054389272026324259293817495246008894492416678445391510140220815364449603686149315573287371974686599953327021148917677343832261884300929111942575271507508896136405115962665105343630585463601878259231493918996442444033312117447175463646778529071958692267801595955997520978257045921047954125551777550187672171429746451302902633769065665509042983071966838842229516941848727371145890344699173743083664026062185324423043311094526502643910662068022143531745252935330943679778660866387846853720157273707390916996678101242965521794054111840249789318066649026353475332323738701713089426523964384726996134341768533837555476606419692505740525137074261247325198301418390854409390706010856444765234890941478057534523663394638970769751253474505572797762383748699234824668251768747672645154813101144009919154084380224577340923845070270097100266565846923750375217335264366526254995970609863331297818987210155053425524894619387195054862238684112040851298487053164345752481116680761102254868608257060384454547494393621613271317432938077864567543928640514523316030857975551358903352232278640088905102895786267499233755950351285120807798315253292034948384928379380106261845400032785618089921834321535418929366667884745819842454631833467037199553178745398753539377422813078966235474923172164877044740621164844139359915749956550297395298149097232817775632148728063788904007879507903103051017950839901337147992810850036565676084170260647560426796287743679403213749310752304502001696436315165366106560975490474868496803154453734291463775725528705035602122930485510696305696718232542052882042693134778200145476207415032065332702618065049210331461217137083030490209534053944740692422377953408494451809215905259418315713404509031343037742286974646221375308233591276282330512827127619359929442873326297548611580776265228205441161838098437467177629793910405009418754236454840064102033313541517166922678332859680801626037563858944909425982417495333919036756839848928208638078902800211647498057245537377666584487170444643476178045707618286140497895037094086194014485005357783402814702511641527591207220918850080604351967705749336633207512683798639637436922793115602753656413342617371498511623164351900312535911318215679344957211280829137179938857233973471155223106497379950609644259204627060828692286467020240786491426649600128524714372004850626506070183531804699741008832981850387881128169169624745168130116866518498880407112786016657828068593887002873265300341358761791111305257267748378461996218919247691454269741652203233527580149205052505369515266342589250681760182593683941054659871286403905258784711345332234382653755529897451712520058164656437291145648748315439941126366259352341387310968681714769795639409894035825490560558234102618539742458994342942209503799738344101321713474533031627688111737024446407500946434934803026672737475932431035669849856052627318402929520486851713185895234102435477379034717144370535447546566741434084527535323313329653375356139320760542229639504339514066399872918709526812697989206604451825527440882279621038527448040210037077871645677738117076817832368996961809892639976355630090109533499737519307080424971497244622447198500890792906821497547835418492563895274352140293449663982503038156165794178791176909488016134699507492684772262311276517878054438088617064079844287165629167902961604514741573996759200178834311357188669602756156324374409295362901721856181716215785934833224542935952949780059039688246070020228416893447254963556734193743563138286668836156272129249094482199230959097837924976511312474116187226860269541638204644270059050195714064567618907672561589548861199830851930494062103842928522735686663446268145420882372883752601635479319725161267633977835215117151255169141667883464178224005732490394234150864640458480605276085723926218588396134106752249260846757864033271126181955291175087466260546522814963664880116207081573829116438681430324511806946974351222734179069273701571331916673106791125569387838528636334447784020068355212818032412434991896165557248106674988129329653766075526307552743946445691303852760387128095431110778642443645129124975855137806150572146226280029358655703820783084703713666116872558111978427531692118478579833191295958497477132504141651382199545713782466096786984057700605187500771737217000370787998012470616791277245678786850497828710259487841373071554504772387783616753563112788109313489801094025601808350921146598618180122322144837997890818590854461893425276084406389225849763684582972140762803095699651976687783054404205409528379012193003391181037836810431318055781779846891904597565253194409281850164252851238301667192748830065348457107347097195801655993995204206724075391813126319589800454769528263751456886312651774054943183229891149495280769456370119100053923151711768824814983502734903009692345651200169215897519556453913778653492585911284677848960430533876226437731604448222741313882623585119484636354884744507756796709977342245757917495738470244252265506930322260013272902094790580329265058385648089186769310192971638594791168687849626934325125963177326973273426055735863989929218203148444191991279625470556712755555361037952479871658826777106757351491319522402451773122183178779151211151170619100474375615816111096470086619190535232584811636524631721167735631541945864771383332146142333986557135788285106972234502890729039719912686420153286407413148927276645314177470821109200975257547089474598505674409739830156472790259656844952487205831977559130737913992611301449276841570460408066050831046095329219186246545029552559465575404890474956134653135239616845015569103854363711949222549901956051875423958732999033121202249062338036835505256042707144034086640724262394541447392438331672237237491957303057447445796556071812303836062628468410497048528368376871534749485566243755036520516725884476061904055217392336598852763959576684370975506458050317629133619086590196185481672247872571658109626551712422079631122785304527776660426503109779809116819959522213485801060514311209729067916330407775473819667269629685161128459926216815664959244267439065811121591913734791988860879526516797087558271405404623079850981416849233714648734468133945685559166674137752615590268410354188327835420719185208326588382823392950189660795553664374855032798765878375801826217531599342970440150176506670863720618475849407421583206642305704022495812308333071908083564421973553697500660253582446200805113081003267920194665307274586900492861143474612456406027700885173342699804878486449882290261275541779148665910112529826623739656021347290068134151533323936291121994512518429571273476368926365377597823887013669496436625805688883959438689726908735461965109952923024256938030811639671252508831880424556014318009609710099604669504072501528576773994454850174709012309874789959390351592392942035286760686292789975113596317678804421410917324016226038316828126606255459683689523820272281321763603501846477596555740054600173647624053207426653985952827222086493265550326789043692239274122388302934081387979272182861461689481464849641188675105610885778329913166291778185664072878981098247160564208557760906646351901989482089260052632126736490214675618784427530352911502621659790346321097797179996957977323014909273215427208318648239131361381834815162525172446700345390373258818273135089713521057159528582474694353131644099288277117375204572996690574696402141272203063126164487413283011716509407949542213826137569538387191793866556363414601276341603960934308045377324845758334921258149724136949631552343676696009969298451592006747436824458847129096895243848792286030395310776602915512266481859381132590154809986932410509490565252728438679858733258039584793773060681877279006957108717864676603845902156624192904826949448787489137753601455657964231687237142976053673897153306376656791890960055242723633570700341194056778587316257132301348535261364522328086805712801409715443545221905113908525101886287490566934722638818103109096554400676578184343080004572674599217618389637677802838930871750792670992020188382389727128484585243406074890653503741818334082690808228128745159030415939298240531401499523808220052329920615634253338644336632516717096190533578394967069386214942932863202696264357744583417813541151424269902746012469896435498779845265486372089827145778985459562772893521826001684399245925036881592637047764363459118925389243414223890340367640234750190708669881764532893643377913513644445603298892196746019708311261504167932184709507829321169352643054558710183746783862740708401513925621727262351855868470138903774420144355028228013102042717600210501913028076899459270333409241460170411713401879544263132719573527313740938260541196901884470560108568365570419481430389377397578172153841997415257148007541314272628705501236787719482408019943018139377340363205346501022385233960891141764419913947349498516995142112083892189241290401401052743889045709584472866307816540767548816831492798325703693208055874118670070893405757622891173887673304055037102671098792436981717471784062757887517920373459449969191232503215578359175648788717464015139358073806392512483626433272795672155843644812056763676513972869106073552355886035448734317925912074334474961987099431562919109476004645908232354817077489008189351423067443949027235075992898270580403166005073588272801388481003570090168786763171337424580136461818343181844799099577224538270023522779920740293305810076302406670376563582898389550008672964669960211955321095130368040923733399113465277734977886174466251302136012234428187727532273547418880540440184029096213021016128975452610839173383211142534670976626106094210216132060564525636466553365752173090247064451572477892706421167754258925412494392725620192332776845865425167236612062903696374876755023022722389399329106626991104274931358175813607069140122767777487923143215215636368667984690488349225208201114591681778807079116186079390007754200803384235593617579535313925141422725598073218887869549892693255029474241319560989457784973295508948583708298342782422437083343927271962696441349809923284387766195084192158642906366637624909175045686039294636242553513613293975749098771108561113164121563549961451696323532077879041528923828877265324090696911089898804560539930111687793572789189444953341440019297489083486988750387487848911447669577890299742857308665100494265882853988172198872881474129954086512876447731234901725907267009413125434554998603997803261929912083469166053346145572980082836533818345398773302426028263954890768078215686145058228537869907984181107303733867258058690579642412706905779666221951565702720923714494197917808227984809077700177638721222101006253350742849482089307517711115275664714906756039119955843734846401217577814663348582844095935647607191654576068031512822664947591155238736358297080992728806053710771925293258153447350393082712991929743658204763233792005337881130881572329156720899990855213308161034238507511503640169517228804429710918691891036807892689352703760327443770413796720246588168372462563904982824204067627593178277497415200889979603510868149729475880851704407968593574847836804330422270321789939027851368848025470104279241082408574701941701384448421886214300453187382842314041622964747017404387268236476416599703617621444162145170391173825866578242342153712434628653767478293406222267180597261445303502012168917025107173358422741098883726618735726359495590282902879989615498775100517562635516503978349765654591584718109634502937905339156780026869022837920291557240654128545239436491284954287237267803490055346034081853928753432173599085388680541866357824358783619453167246560308409026701641326957537261442115237482586668371977641245676753309997914865298338892525771580757317890390687756013376415944863216401406452604594460494489711000558796059242499774235816583400651675018357177801795943354828129568082547295491690713377845361940379531724892064235842605105953276488068544836461735162232843967130144917284610438577960989115911794056940915710874345487625337290743632074989826603680262877546246760492691561173785787971852110751576597887363767999587385536517917205832601339041666600332223716343534582132127380392146425015682418927523948111384002119831806731590118717957486818004100737272878202517973297913283795240927368722246553221240577555724809329235667983549584028194064182431327813272066580550565920713014357676771171726769204002489609312205689356643021039930510719072718417312002404931204046739674910498567758877647810099951439847532147069562761987388738620089920665638630720657223103604730335642020808645180387747893617222725549191946525844151049297589526224518063675206255163639472848361494810724502515825834555784510342238645815983724306479473430121280343774490178807483441254959187074239310638423915278201571029248765274933629713206658532504070268372336124272307695452865439010352660881104025229024750975920401591925998898943631623053139161731625612831202653642044187146476999156256010893354293655067332393865296390786430566560034925895606047140886245727762610590380060931171068775508309511405080827570996274098384767865725133859797208383235161227460852517184344711789028814676527404065195333006707561807525035435041294716832782889823995212230141339468562487341079203204556129303887662400331258425848789402351123880419341427575965591904761427130091004993965060926403522474954673367455801212140262303215187257831594302671142029929167521351241415677471352167148415011642673719006866610325642274627932829829127177286414016798976980040603106648067155969144397825640144904156381014438494065388961910554104964858310917218958537344125684259245743863667188654225093967960011916597164925537267401301230251756875055714668209015825296848386989007507936322069047967726180760230151016371067265359113748611870302032239971571628772216678958239424156144724162365979299737040991396142402787398772850372896123590649076060226465535142010702024127501974800110310305509341922595276300975815038578560048961363240579236466093991772153600197779972092781122392871830973474106524148604364223512727274019207542359226825742022565782889325339354629739355738271994202518092796884564050425337101397280131183913485874614020998664584406541862839281380063201912256806778608442871800571745078273740649528650108682420612358567962342332261132272466343466187450174792807332696669470619138194893654008070389091733373918109554943328996970473418253380653382734336058054127336458033942659709536015580146344342995382709916074697146700164025223413413975387444618526103784735645931375168310505516546000205657125695944007509009241478624124554195965267708806123415554407921016072696942388526786721618068642304763682305945664180977828698105173701271180319973838919120953015666023836025846952389837549372532274131722592189558854648478003692677606857170906834205963869186723566533818861525463458291076845421668701171455209692040134105212189227017928130958283780284112557881224724873550383190999363793673601082553221064993149165882937408190588582494522703556853111599954542605870413020584468114353271501604977628509825659874928103754710158298262747618533259414333917555300302893497161116264693739169049726940893618214735194269430860741003592919830302398979173870985108364361798652087237748523588492442723916452292610648319147212047101304835234503809118818489326809694311052592171607708923613441545567316102579763334180181294250400714091711077534894797362535531969880537104634335928154751360701473230496532481188098424348609650735800489778326477039627522414357571779724867270494767698334997973667798986329697160158899657670170566211539568765866853259887413051987543591228665155189591853171412317233082332793621311989098975955486665330345317201399207364191959398711824352107546969858368136449276031627175935504655154525877461208863954807537717060703432518769623713705130781466784582486905096038970145765315966722116727746133855347743796033074385773900354195036201331363642014275572303034131675677590243603186070526969511741264565780147606888650695479306164430916186225152112535817228621436028940670749776121038626582477018370734843801900749450208736564209245311410711466859894937118287410794989406893705717591688984989851280222311376821218890834876419378631995305006390407860127125618647148953865229343076292358856419572365584834006427858916340852208461224520060569971964304516304661513980786474824867676988947111395413248133883995124513472857359925160367008077103924741239656726887592394314542038494391068635171516881108361694634861678897924826402427327490591505812877356822237857887606757768260288315004396102798623708309738733220886965468128756360537353864416930695226896328396212978094668590804155924727774721226940289149352678224157809700282530457948056456439136211053480992204226240171383285352209380297700683360832126767854233604548896315331301029583445785751129823136200176015192713111230915891977997878623793595368884878870552855355193902023667467396181158731264779021260240717466705113468265300700369146745965474982109282424257095756546261375891447368730280390425914343287948401077621963001267282080699692732310763239887937955492837348338387454716420220647174443132076949727628280228242209638663863811825194081061548128678341213777769652158443212545637925720180735874970968838522329775788461668920008112172877403778724522055549788361992640193917837480850555397153286638156619363994360820977549445600551499515943097024763772023284533534545306453616673283055110079505718631771144457056252024996231928865459897432995768744168600738137489646112889160218646347193341354642779528353702950208565671371843067548989947763967151668982392270250904277870938498680485273893644868614024186495385733236441274877044273809005765182228741181790688025584267499433099292068491534092736137581531337400666132192236213751922287497987379166235266484865644315278628397783944353105866719102151223723619802507340499835541209647154141038947847814531281063897122721123951040464952552940885095531961158207636183165322469758007164949141861376318150582877098122106283879801151685965522440771196528520394705112106199727019043106674763417873181687900443425437624251020323827356024587127228365385809502681947216420460990850249285778683287018755345829284847562577807862914597013941580968984512079172044847005462316421491577529523512821160178909372538591140401924345109013436368304604698884768755244541823189631793789030803223413066381158023450416533450439867687284868443480977657710406559898439923249436306571796170426119808755042927504976370437546980892579908403345790081150520269948444571460376668906409315871387662584167199978837174487363927441555708154543553072178336838447185925369276110949963051115489777655128327650043223904881672846056310406181854794390690691225993473181325575190740003643200009838953248398844120310690505170994575654927713582142135777035125520297550158121999130188648167668273042254260577163922165610958004604053547674884040117573329902469992422750661931336391287670816754836488879391404644867591646897023086035662766433340883079048002602746156242184811969573479818741364126159573653234106941051198710585009462668099537542057013819508650438987352917166552899872994340507489663254049465429378680118822977243815230886649173183013624502499820075890554790338464229008485839243050500509791929629116451497315817681639159097521267375386891641000277401640864019165014574928467195145908043354152734291564244706795231303589122331597685453362844272432980177424061774174169429144982825845978489420482296419688037593080608913767939241246773116046243428198677001493187534433999222620053922332006565119918427797990950767437526748912209464666623072802528978862244964189694158696078010178269326439500916568712956440565744637167589884460913838926670716102726946255667175398943417308639768575162263736052776841291116905504137588894797728792163192330438698020321832990786685808806593597984376324231481085406857940028848560378922230584754824536165794744652645990902854054836976164040887939428725109322538300723480516329586856859309178024121473603570678941875737988334429307263719971845492229243557101612667539578723584105077416989844180508700886463736181683352435923065438789649668256938187028897047081067338238690798146249997113109759910748714776928116810127870370358503675893684396160391039685991258202814233802327748411123737698355303866898389064390399653023001007370261493428255705944341184432252197042321760329432639543627567754657686446676577375596928059936868301689868954811031195651159220846576793033734231135999970904835486996388189356685351988904861022688707085021793162362857987792617161288008371974795414558367302433474303736726803673424535771952803910114454912423970756591632885240523568696314576072582811976621798736945896949785241036356309368159568639619176410224153397042744332788772074522613636110397136707186563796194462231798209834183336066427570948573844793725060950355682836717130572544692062969304585058987088160243692700162061918567147171466882548813412176982187637080221254367381260722882966494630533623034508686044182348805638075473814304134835586683851325467316011437728409993480017174995758527750418608442613629724107120875926604664547737077141526044553785559884442319871189830605705897079626612719643826752548189231781957825711268177921573477563923346955444264759289655221503402575812117572904643499787932018926329061774518857109849485627438031347147809402649370152094115973125612165949962682582669865219729456427409180949971642045229650244170606383105023682271778249841894195553354117079134631561564545373129216217246556972189898468064235668398695203895792841543832725368555872308157286872435416309691945013339237868473867525035031790974779177975040759947999903841550295570667549433074317233671064151325668108208875541880899867372296415323956096710618084189608265672858033797181851396426748017928627885032200978502915079358380386506709013083569210257997159684342602452943747293447433859531775237021213102744464290527390318879314092587413217854090458753475953685116914930871155923677470879777096447163661263300620987837940429071456840675548740579655859141263731730569760567766744176402143493335754209834137013863355687040868852286223229376866587230867951668337634500585306790158115736187766295562316353009879939445301208534653444089605340311882240307196041112959073953889363152323824184889410585080781849241410564913651071934174811589516875177032835711472980779800056022762673542098233413144175473525975796753009603848516580717053941071218007673707903409611132314988713764372907779825414803943582925105194381078582110876724344229538348329434955340146991791460637723215695556619690243150436731283714378795642339416048460618002172806126543710744930462674703774144853422170841783089359597877878855117890192664763454127583951793011465253538865606712136195186399485207124237269642758690380812512951450056009870356889203470743061495133795640524544285288629730261508598513937501982838513124550441097881507744744782328266142813584980650216127059710604563723679392770295976038489286439286907548473376519977111629546411556648491485346837769269894041036156492347005497299986592072771415623972107773192539190866027779001991243384225024117597477759161938204195836973547420042767834434929418529782531873458116302413891938588987291599463704354972399354598502063050500568178914868994823297367062762737498988657974821314484435590805559000989981028886901950057449193808133708616455461966055186622905205228366069664176067730335340294581105044167826067769186100883720436501457612695487864745777577186864845030888534601221462447049501115607992443719893070523884541316942602471249014918552728876632141176418659193708494627350744091772377997922959317313068690415889748324082475905292487221125886325743361453540918981221292746060592080164935014030136650028106440270593263981063220822940695396918101536066435495122419739882966843307411706668445044472991807428916234695509438773287907873220490994848321051533509897014769757000470346488875750592833472391378991729587186146292953620709895511296845438936984119966649461756730932819528677182649324306547210961124754747737889611049969295276082609780287592056798139895489694544776062972525254928054504285545923376087269710039963750801886009607702665327365170149452816256658974242459989155265329692104391382183940760520796416625802552825680558828623068376360488856389724497595574405710825906206342472746836360571854239370773309725166453988673954943106712063214803004438649753395368646252154005882783386954057285783111114202150372013840397585061795503657263703431822628549087309296715710277376258701771390536859016611235141541283069132182490598255461551187323873364125728808407702293357690945422792165548311699547362949340642365096399554231023420008188023785057964550569624679143953864588935385937181586486129840773842906024965876028338730973620434876761290040000648251955759283600593295861568819394184509729403907638676674483645175434613666550078033927182316536976866710046906409545393909865903516647050436334576159215572967740621844204348802987458720887389681281343861198790396330389531874950221573183583839122625814038081935338306065355090096563119040037651235906380789899359551371001361198129264281797449869023097045990716711742705584482072875142843609529755301940279906588254785815637923498344410857347406197716773214969069833477625236118812387057754085659325368067877307971282155045595333809884094418321639630917921686753151864040188957668742888732156416907407276806564628470209483578905756748368992539363429455428392378960032747306258006242525607300045339752473298429828583556956736190285544427710713679627310073494470234978010556444934176885085558772097862223206526494869274210585439269063344213011889586636309464997794023267059163134075990719226017250908101044847833693648709496954078915760035369588921509406130277848864678112242671988459289584987270866772598220743862186844556992153126034978129763381320939027802297190276937269651261233317806864108935581513986614043815062807426633098396629488713308378619092720620667518947606071119505554997840278833328374550962640178988686505387032701077412492312996022740421273163566780625251516844047003763518930490422922994707201516496479369399367172177058046589356805338150468221934723618481017287064236303196590839244648228453047462725517275976003570991949454427276694679689217965895378570214470723849983369004419873345396118220190032349918411270316961988093578173587141674101634259543825142915934979874165337615011393738412224812106238874600407953186827919540311566993336677475599041546782297876239458818709850552481917612112158846717155213204450291021976622793279340503476763960915988547906685983699139110703412112572599865398534992191436024155863724819876702601111575259165785055258198242558616746438968836397109065534927113674294911383373169343185897919891320770123321014948946326654368211227077676169792156796910164648358697621458276007238119870118254136072654651575869507471789321246467103152740287861236167585998135654873479814377011530762254020275781224280913572834033988095821135365437504750038564701782277033343294816351283679083164867566216893944064729872482203766735533338763178650975749510345819371440810797860029639769179505416433285015164043678035435872848860938458173679662521578237967049182195497926192992207233629438514523834430559449480561079419158044541499815058528594659056365579877927127785685107318962656469836780612045484642707778275776770807036741241849285581518831716036177930714721332604944846120326257377845475373288924549203237384198923384487854585094705154182720570258644118004119330512089072949842883446813373423332446704581931252860477019968698590294051954917379935686322381329511753736571801184661480458500950904057300101814911461082103882973191685920907670057619384977953144350885559475853083374611003888763132657673028316923504571168031927765557533056878782528873899558688670323375786373146696274560992113605751284675092012459966421319000225753490097367986642941170899843058253369247016978538698654519893560192168998185187215123804692523655975398689935427386976267828515194104510467121863033198320348113704083430353579289822824683480932603878933121746904526579097017127751154285992974189187578451161024597115309431265674665846222521055714361104451385882399659958604908054682899762140469377683966311415528193578226716579716459819470903419103201277903987588524360180317049094556881564833290095446609224047136226056359001662736943255363348423815264273603521909370760876814621626057759525168584204794767868009066338475582139830247071328073355811743850405019006900303307141498480959695337127472731740929791026709967346918007032822772577134631258677281989058091365505039231557465074468635583922942063686086239966296937202735410303986563556194055585505070051143824675933551229368828626838738894962998851143390212499314191631129081485376979500036762704412896469054984159658096331095334835896312517842018459532506536899179893201835838340466190884784454755481737130637387565189270482860776762130236827913309033501572577259810765348636498434348140413273475487915816090781649418149272170438208864770468471308906747127865447895023224737396510906967329366186902787995730074636784660303861165734655638754156103310188345307828165874075912092388083729588748497467158429445468221393447451100489279182118128502359407142711434630565451229439752368891101953898569421911570989680717741345284783610843125590265072838746501654557249925263110682566605341820423927064199733990671379495677020360584731032312978366961708835392734146972595463730147073478690179391183812516405392000728454283028087916455794515924331761897700798468568663062673822137447394064331002262576836028382241895380609382288223771419901655812648432210545719673699832101377942384849741938419537706129681316920776125119165229625410545024979511546819129433030411271477871485541106020641125873137052890129546848949705305555772443391345151567753993267674935447589312418798182498784108389351043560260143767222161128060316461299096614603385640810026542536788845835248921864770561683341100183017755864247343313678107340839373499852457081016034630697715154188720680349330551572619919712239183252984181861343219837207528218002319773470870710449393196499935601865993211585060481214912073967724725429705461472282519531002028850083958927448743962958157502666938133525662923523534447441464026517103720936535242584194295786229861010099076614905148721730460679597143884213473880153530835566424567312436656482042762493451399883519715437786046630161832515612838273816561700968496308642883258126604332106450202658552427731378762614053107040265326328452900837679996261687639890030012336797192324101528805330617003000273845800094988607116342717170455011243806580362077053411280734530138015238565108711088877795112506400264450257245141309106546857359366114823468610038364782181164625817945505563330718845877924226847400385218748374716803549577626306027070054908445313495652607986647089474714931637708320461530951658775733933101605757737262467673633466715928380510388442482833245992110346860603169562687557812087606268238061770298251635307544579429706488961258557974949364227464739835790939575188069246229346633209089684152416093469971289152626038194757843376031849128996238748967002461378313070060195540389567267375044289437222316523413881531263110103657346948818710851448910227681092437266983713988120788165500930644022631575794556153828948908346482436158389287558916646647845885924312916327762178844207650281316259310053001039525104746762279767363572103917264088043915777605514166281229044358618648115247726762870717097298152501832021822890075728116656463165358017041799770326706031395405586796179329978895404120190791243766809099943326656191699157606671902408197174281601382070508853047772880769024061366016221340272162025230759179146890938747948516187853849248470420819731363467707531035085095156275766959361041545439473350805369855936862942362074356070218067043112593926924252653699100403028263757766246563626033364192462003672218873558780513828941954852156427783039179991060116250514729090125495115260249217847898179126412506820433543095752040283191831626939677259118620572855309233194559569720805673957269025303859396084299328470613559414990717940120954777189195408332715190723656390238978761854518408356231086837100669490308017954159110758175636111466781268410592338196185693451997630984275256564730285436485168671886430306856559649591392123024098653629745142749715183786523692074395646518668442870528571137898439142851344969387152642469416994633876224809151721819275621062489928541932394419582129556965742519091715610893627080347303465913238874552701180924474329764857888105137223624020839289317219588869961265489198368896200128805291554145082054922231466141940449732589040847532436047901059046631473931586428623053804314586518890229814470949008784799747622869576819215372508864919966437730827708798531957480041117105104960739812107314546706954051804325274795956126057202919470845340747486274128966439339035941618500458131209192997444366266611422040925243450738035690456364412671010061260265735745688710103264511304292829381869329189808481188173662011061979578503371751777284563206152158714851860707573134049536474810947204267894324547894851418528083591365221427490579565927583786526655876326060507698309281590374818888670457890536024744948550660824724988178368384693225107199041289978722162377603129596360654525547467484947044606464314273404376589016727372794204983376781748748048191719716887652494815980619830728199538859983839628234189634004043058175649667135493734272105796813459202839594826114857044969519032168528748757694954723254702783492570866744379769936456634074154924691537785512886740450624621930992479167463593867357673462307599877790934005608197747941858831622593481244295628191925875885357714697660103017926128459802805672745401259370020151294087724343672269630025950692192286441367789486549869427475193627014587216970364503312150751587653175845656360717968449329536696585483579421007662084754239659913776633028410968714536453275849918252845861607185193753338875515541886887364650093060981233736081577378139577605515226319362644734792693315211127447685462802947600662584623244591314035076158515372076746405945148993818580530157553367214356819269945072196012063799144303634817563203581882926420219529238535853871669585714944706742458957303535182574502787153821498158200287489231270443413442366024426218011148519284680434497742048440670323872846622624629423393701132799621193936523202342811245399710921640478084163890657713936543982149670080444416057685783920550974387455700961910605307079843632064505492449322239410276988245072256409400976226305184978394983693299594434887492924392979881804169624480755492165539738036577765200397602531712903133264567474579784336294300978317123384628619038227198830664820571431305203922947713344800562775704760508397593292369566722439188014701721873748304307220106105655391522490140443650521817313005885062276048647549797361944915669885244871506326827125358314669589141094988965412083532608586887616377893801947506254584022561486697640063272793807458047564029593256070151827362829465672105146637632251727939876609332653568931177095899409334360236069654815666486397705457025170240055024555400992038855149549382831232791993520219601254690058291640428036281572845433315044644052821832061731441260273023531186742458135046317766519993573959013875118174784831360100557231072972821989273128878140826178628901915139889590458028739678545288250272863087979061619054131621699385352239703776610739821987554675796427060547406280566584732175096024512208613463913194728274245471145854900193270299001879106452748569335724865830292276494014957912947984845326723906561293111956929003639235878295905477034165346909438801262267296407515477361478117775743219771521951943980204304683284439070035629097764247402728282306732970231638713947930551484694606287771433609527084405529934562550533914580986292312580882302793290315322707317158245660469083868892776227121763347883353843115491912206709864128476583790146677430122944670434555742317422656371886746503383905217378690524684002002736957814541495714301058620604961993583779972057656725992992854444689781754302392378005024153093023741558003193289345990400342341269730157641237860152519881178347041606507754101264840254269797706042750388371601212217387544704411128244552349900080338234358912896171439691180231455296317096144814529391523525113530847217622164053490922770267070894490053948296720458478675678271998151335161694794169202756285732404223437753122746203733480686190311217309832470168819056575189738509713825656929383877279438875491850362364124515975983667828838266884798389229941158664976880326012453827989233331466954689518867236735220089247779691124348571685710755139887827474212072106838550828350128061216442750897338214607815753683253404365060418516689866670447854595285959735350671298540454570905750814703751207007790698010099036589760587363653683778575034681813286514065907990026767229151336377129972103123784897790097617809201097983267078061806368871612562247525843438996446382041734812053736302457888092315197502897629264732138845400985210512712583567100448795958842033613669477484814017102161233221980113407358207257934487616312736448335306536689561766044262803216580482881792787440114234376156759260111843802420951848614225227239072756689559623891617407564462399658964201141331830189481343274890023591086742776650556770233959553119899159891880182090083910626366908769260755038714704849523641557243076909244335063930371732127192737439951964472637799522407234430487984557276591533647739659660996967084873051776636666419207091706097855240483177325296481010305671748041750777098847627556868234308666550149146990451449286259169780465394815588232699147290533442944470592769884409543145721763434176415421920313215691805520538352132945566235914943799112470420086877806545843318999443292700848775899533694888646615719659719735580090286591335830343620595228250113865645311514862641417076137185357909384254129199069199160386038333068099578378906159678017702856013146908236907223165617578452514107045589865222093421018419045589050738990436405970373417274167082654739645886706665472672243744803614559952995722289214145627106189968835942299948263894334388983700631503618687699206855994217322443783032449148368624889778567877832322163297636480747469354775545175643139297376124687663005137277134931149404127049730312836137347986832871598190495708680789361883189460799713442995453371633809365730644431002981052026564348901626721049520030074004985242174886788201242788984767224826980911871706031836656178195606447518707878773377292886221930592035696084257512943210981360066549947395386208513129301880406104155811660403152053878282961462796599863781971383342126721694336639168681479471929729264541773076732836802553075097777493257989578283741225935837621527022402394565958613173477206878282809456035229809514951079825888868976322420797831103072560252837875351811407476507973973379613335755805778801355917400357045622704802836214997078263856190417514548681920525780979752307365806737494114241718798749718851885329173670278637119145070272098659893393655358677525014150951288117142948265702997296368388536189617550645243128572076465486349225538790992969473239869107839696779418079332544022717280363989845906368491639346740418651573020205182765257283366338411435050854725099196949482935893776182476678462398823873967319228069671777373847359240823788766220423658793934638211758734194761910731292238104616443311277713455127408500891917643103636994193742158546604891418698674290457040047023135707629652050490663554897191834424779131056848427624882682403774657043415947080304857116619844774249261693064582130435200018418154324525039262465742435679699331224004290684212201566709446851565836618596714367474941934465077147180883456628813775006289319368968099953855274515633146127126625952843303462294447326771956771542536534195846533552279515712199962165967336222367643058299088217115536445746532544847345135796281479753867638376874325662032111374987723892065769300422123674846147225811176843699417780957767674434645409568185979679891356879288002044780072413606072277117560272569151573753957686205888006476058279064591234942455020789716961000434192034728744689164507912433490621373109125826487140227087186449331080316805618901691483806433773219874645841247872559660921603896007302667492500541748888353907122546460798919684864345883804213155175741332480705974297254594637196328880912275647275303819254338758443912574204229551023804686184601180649797440385190478663557994451344950706700538103740412363045168817634856945064930885459948585670915673996372369406113585245573697648988640813966705107249197579549197996235960219595852803423148010027872310401829119281143682118936884129120175787038392683658946804498514609791471893424139393322854151154333465937321238174540553801420337652747494550099525301872614299439410241160632373163488644105344378620508796644299705576161317218385478971697449755358867338909337865549781114262622363080215733743271195220459451874452850182503673013146661909033256805142842651000443633365781991261328437879827163006263466074388187649112077345750753424048539295517515657466613213576592958913926370358249069595122164972502201448035681478421860277779195617449736932725892215212547291368510271268364427272466972424579064288803930371684853492092794679414798905175909215116621662713067413606271375364940635230226013322787777353847867888339846680529888697301055633310721626767575932030728432095703338774213960488284143838334170778887551507960056522499957885809104246235117258392302439176906125771674245501085555986123603809789472522001025068399129755695896828518519911538576221508818932056373287368759359441991854437581491008323012150759407122296935985428738211477561696638097710860022077145932771707993358578308012400328964955982076072986819443099170355439577640188548434695942654630618506775530774776253645813681021793252471584011525666634279750744529038573373486656326418325765044147881767640143435979345018366142062384390827417326943789785773135500792092551168810304749661380915942410392036583936690756086272430577922126145267270118663308038464614491490165076902042815243826729866951859349822173333972694869697427183120218392845262864272836030915445889880186514938993729839852966841484848687385991392694365447856405078564595679840776033749567849842866969800264922417739633760388873416002352606860421147195376483098735442996969778938665147951816508286239657879398768464036163316847680745843838699693629145044172861890563656552713030844355804662055286883132510582078914330594134827919176505665650427206709088666272503385234512331127707552097452120744427862309508251346800766080287532438494618626069513482354768334301442780770218039365737870544690214711065010325005431556595152204890147729824964278435461652641183053552255436563532466370538881193323118162390760329124688402529357840535650657374700387328775242826608549572378968316153812858747785073141843909378068105059150577477947492436667549076603495503214157762962186873370809959616773373760336700449416788425031379056309917997687047932843885082659837328939173680759532692269279490254542936912069315527191563555598067531694002914565339851756281654903529557526371009216902145437119084935699885926584127280102100539609248403675036154154577040213111963930209896082064676793917508529131262141378251814682094596695477131815770668427196232451285539567754546204325100900549670048768241307057113467480727789094207798932436003987936539788417664101872144475478226105190973960737941703107032989970131068419830074829633569022006054432057919700210041221344710758678133753103773761470886723419003705979353351497205662785453023867914496110671076249654003047053538405677952868857642860966039243452155167847096431095364248939444217228594706802062901618401160492770161079438741596743876697049511453963265827967858735850284958329515361846396383229125285712258001099501731279534005428977703624837844423070775547614332305611658968980549916078183497795768517627166391015530253155943188742618273630623540914053380426573394346872272085467487773174059475364544887637847383052297915159894350418446970385203341623300032431354093682427831391425598509950739831203742317082931584211462304553703965122234965897015211161602092525692440366071674502679408354495914356915799362851693005463252414752598298506227067806879865933262422013435252497565544354079318389786353598170579425396723324004039004974940002642370527837885054508605332904969513672171003795673412694047661664369940113059504778984925289810753593946606554680509362412258495522295921003337179631287609007070747469869461454646923677563188405639482008824145077132374168362655169301043669211313299293987230812981090034708116618346762357758612235493991141792112229767717947066838243827015011318954078238357994355497014543119814401913392156767505160301143661090922863395906130820009763573448096705225996105089032354032160425808300588663541287131231693569459553832116934433023240322705521421445542943861508864302228422442092224504802573749594374045309711687059112463616322125835911769108129229239910924833690763447998112433245592438808174827923846646522290492430309615059545993972351693071559627088683690308109606207405447439356523552044676992844256698241060272420214246570451153087957342994148129592956180818649764689354057153884800248270564382594278413569651396980129834151951416162246888496716959714058031146348476203124561798002336533942910552731292744563617678139136261972340249599458806706787773983807355243938306837463855961591199444219209429609439042627705382374912180903304748868918361921601782206248625086930527943761725657402270609067459028280782150357074009742021981460756621182762721816002067423218050227068442866127208516980925429712541522802749064201159754872884009376418452924920123585179615900200987158601274262014133067164538323172884506490229854518004685384223847944252306490101707528322491482133418058636496592731277360510868851344123984715366870786569604665249652943903060771655687265288553325868800270464245667041788551610390521917349773267005584037388579711929115697773500369431191669509384253057323728054494922955316678451090563880835943834699981477901156926543207600703921072053727776791230018446215343627311513108274698546463768071066574590458105091530097990211681555788145285691297255164984162656275318612216783357832575512961153593388203463567848200831089077723256961565964706813711733562753292456203868474844518824233888822996183842161181923254147336315184230314943679904872198182851564339991215749272762223100637736316847729173601431167523273727197344787852429690881491317610221499357820076479726907923031409281516442756252955128459129191089371163874655276994781392641921273985612307144630495848253120197722757880990790470516458015076594959384776960289400380090821901653035938648997682681115743881689314338822410668799991340301865522914634355412463321706700495894836647915550572144467206698430262819403980048814636851352630875424002511073268595511339139168662406931047002999097083908455544441664267398336240276567053469269754028731356728448176517177743538329117156502978646526859805890631165077738068170636037850774838388011730448011755267462783439646178867289761209626361457408705487827249594893418514618493006003086589154797717095206644662063444112056116717521324241853319900847174273396613133390382549934134339453091271308404134448784835098875186006770950523131003931194396762758537428735658304516635182754600534624154673697582167143358555785901809954718993466003369498260099648633948870545676811278753387167895246324811555705782527450135266113129834872752465729090699504306024532456291520972110029437177917064524668671587041132195772940499794633406400386518414630377608905391766393949448772186823987682626508336400589503162860494009738454384475977282234127168433734655567570013671279471707735859537902371524403832660085309607062733457196358155558552239028870290463003932857165580079836875024047649990048430811118794951937518200051843590399769556155101609152061160376134321247655088155161468894033810225163308630864879422831768730607002914528679462081954327172780600960249725037110755834813593555214226444542635964786345454486396537426680757390175193440057147663465252082435914761415920790236337615941111020885895342433832027652372504392889322031292571792022855110983674754163933818300804278113290017736934858168309512890893458241318717722365150744336566748121297593326113270601790777013247373426101063190456112006693576886541153389386434273053772857869879540189291848629764032502571002530443969928315747978492425293203628406251657644511773612665374777557772431017168316901669525870225245530927297439693252142656257832497759669154112277463075853070108853681422998768608688090733305884909566272163543291358147122757092007540699125324788261179126311048507261322518014944057930032920819212543213263027702125732032025311377401316365545412633782694308365300283712972298482163876384827430508094042047090814546819169169681712145424372201717387707796712217579206626584797925568293041551472156824670488292986696757540698642273183011753864890572991115270943901246008460371243629411681034431814116762231150990032693183565941233815934842054994858195781203685824649648421613686274370691932115515236416905990904588111452956698200744176660546664489865322759911466594925068250834891914506050634569491374476299880191130478880023712904214838280229492967943936751468886805525856794954629495286369180438315745870464038187077232668186504711201451535187647965275197528809479662537536765564214950146743012729705237721786724526031813539889822029469820831821852964369724484651199404496856325971280347513985925649483523653481664955568067396443386614108216141102741056133443880599919468781277707311656801718895901927900692474612548091770715584934210022525822870224352736943142890674940757363944345168096407487165014979133916435133512079172726369592506715621624748458539922477663275215964426407554652816302481175991809587346998084021916601060761534843963190998922722061037666913394829758823413294035559964717925022351307232657756172841252468402425313233523086875513379587810178966180867032530045261473734628874039154300492370475064478919217145582506288842260370603957400926776052394006523779586506007075097126177772083082020940702627979248135984726472519507670037862338537325895879033564821215084063132726564447906014717861359657441120627097931152123410715222479553233283256841188155098214927379969828958429703519513848683471086265048542125992766390381378542113462466514674714895086289888000053961069456001733735015120039209006780759866517809853966317049532095773543147063163873000696125209104362020474853314113147531961627083689574807495054916744682537808025221629327810214086308366712000890217995572047193494031042287923374939745060702288474806005966874540091896183697534021541608401895443158380558694177391891742321325450997336860635344713186993243124843245032802839821469213758045845573321552093458440095946164690278407571967144835957842598074972113154720926114277437908991191687304996731164548913495852956138551494816069347633589898582311169219465703650970611475603194442243259839748134249538026392172300010096794934972997342998614278272633393150100935726692318320015705860325781314810479393954090585556484880477524206225316784526345704699383339228159742849675285700580656623969372574827937792381984249610367587932710162705926078855713776646728129394669240235492437072213906085328877402940545102086246595361812933140383134608054265802205328128456621031968378844492136058699432423938954272763246334148090783622743765450389665923346563539842213837616981148126503826072733263560043604412153036021422365911036567818552225033889171471010000799830211168508281030734645608475914270157232297830540311320702775120339399931464809927506864371982205593561905383850040975507953144021008199401635977711216626150072185326699115351640647723052656779548200926290193739336821987359893149210480477114378979343068495765013094154318801667061331038802793911323382554886671495721634632211557544033415307170756990734208719777484110937137762584390230442646904583526512404065987175058022935991493181491441312414668126231086415571288228662044971331812115037572294000655135408567690007895429376953105584581139126821785201480188344233184247289967976807937162408299466947817647447465531377685690912609258835419157929814807720268280942823074208350779188654443763808542781719129562845819853554393523568021509687841326603352524620873768722534977056008904826073045023853004039182908471974781290946642852390495457074381478097485981793314484740191572258230693530783537095062098694333779956939525617420892182288430056985631571934668883047085303169931636914537457714244284187937226046522285861948749754831757613379606825028646810036690335582768304392541993242706473155669036106218759951650150706623550019010493816760109873992141081907259905953729257314665567035726019789305919529681862377099834054458135607714027515700187137027243125091906176631708681512025853399225923735278680439741661643834754513803746581151487004411088939929780641393759959104716624711317710336989089024078772352864297201640596058883249427837363088893746696542679956472105621870416068750222606012228186527629878273506166183939595721101366368169688053530432090183609364341887649412805980956444712485397723627513197055585041169054734727452059568758608610199402920861777359318365807162819680273424538174524136480051941614176475118056762581032419822737499884925282466762406226090833772458796089427660956355188404745584078137602432897661416506969004058020032620056896386930726811308974339531554214911874217549091236317337865873536896798753458175187593038826495650650245173875060115906296989389266604149678378310010957361748616080647860606108183883791591310085855682767448031876381405524401393675746214376478963353829438861351392734352171336496984772742909394205932617481846796059586716708292549413085929197396527538619660688639135753385992636835540371172254111963660398593000818926841374283237387184992970119562269072066057101410454150212719334940193475883903771012759907965253661985661476978167762786798419277344789507430730550767634365087047167671442260294915683905710993174052089178818524640146736207257331326191970971096809394396700051208569798142436700818344641467939467769522610878409287872795777532257860492000066050438660676350945801966805096870798384407355242287756856712405425540737640295325764217360736964984899933088619174430145720115599988449737489577516169332056535201738074033162825125427289568370073884285260116962266885508157711660389669528673039828262021965254506478349748887064283906749046088496614609638620835621637243402341859274886735631762517938326410893122993043224012058898133887891349129607788732846539254014548208156809183263622416915927846669409822919778750471896152939948236756532812420012239717676235892423151415266803385496675288428600478890611465997486530001407616240062699600357420969817124543734169906149610906734199522102068183520300779305693574273027449920825160904026545306815402421586537566155374017690176265575703825506975407540262316510405511329059052398633857700033325186186438604294041690822404549715446397338715025542783692744101836707094695124925820268657675156284489561214260168241081969036785818216978141025656654121025876375021175517139816911328766001608688635620546565816309808122133074997968922733337708782853760648215913067479451336687305009508905797678643703160540283429491276072648520041369019582217715570485900828105756527083567190360145007187038084145784270660485267307151892685313590881507205102521025757404785098058131100001685214548386532036965381309665524704039506813615578744311578770752979839502121663774880033944202386978349170392508027068011996846121051651712575245493352429317035827497269784510148437785775053896376231187231627875380360220352000339326031085178074891590747102220661553397719923233621546654208135274503653434731501442272216922689984208525104799123698322259312717096918073811526250169263958820322375664341749142122328245323743356436974727795678065550552817688643113894446906217361369175464481557947821558656060579465328002948661631308487674296124619523424790911097099201334690682216454088657771463093055606502198784825610441080451826601307609855014333605094614003643499003856318201177196249346827895509609624018417199436524478134659354729311933556092536894443576185084054804192232742901867783842705026983983338858597902300996997325391688112426905452973755893076840706728339700491536651212931233010365936988803512413761892738615356301999153562660550186107396505288103996787408820544596584391825280088790552891781390459912224498981501851569062135731026581550005122489829024253029324437576712523964504198280311155284026343923832826971795099700991682915935331231515976851375322465595881473261458470199042171164149479306336150634866041308768970899708475406807081332211755433364668002452303899203154930638889304703718742661039796768071679843697936904227012332679998192770875009878314757924375282224648014620902927146302005263484523933552662580269807825221875115254778488011976792968522560251516490636739947329691348319694424550743901932995520499330794764849601317757236649740757680946877160061922354830039144332806047014992485939723954129437056646388299450110247767734695822789895701740692629090682012141641995661215077485286918025012771511317335892025458044911009691513948905841057343604360792498663852522854463474205772641091809269398108597870675535815195610888239713267284898132830471740483413936792619241558632347975483309891715992865279781037295766671719000964291023095792017098589166322997976287441211824953888349198277421519375655346004379629223451281803463430981610477613443888573405187224384803156974030177924896600059288639520576729725846132971245115024751674889435586447180177008722094679380261823648969553101293717277693162535964399543374887760347124426674515406309454529088406088268356387990786700266217970609164445749031567498966564931785223138200610724711590470065069189559399763279836921502026904095733413627219272112729359906541511036421457473628415135464606663913422056727477212382751392275097610872258107896393621645187991374931408802445618294969267529607781504984975904011620098174203823151529563885547440903078365912971092398719806369420564409454209260352613986858951737725967826704811160064011178590137712280700486086969195854734091367777680782925194002006899388074750903443952539876442219046718164613788878360216086189103294823142134000879341340217510967730927200359196289713389776520555194456775117880967257221779128485357251091984242865417537186994511218668673892047016228746032951707619058800183931349957174351583660045735072750021042181684554532681683721774219890642664838196554225918084500497625287597101887230997948290342726170466143271334527358046849556739957033058877945211390297020589265236012490180907216801116687770835239908178276388836449867390179452359733822054953797819783471862075028346299262691185222226738737678946413912279254399512393248225670010362725064499704423846270319966391170363153898397565931241224272975078427254274190395411250898200605723210421471354617765597648621109062402891157511876784366375129261411319186931743682346604805410805917817155013564813955898720935155515800162538740129925682449680845772053288944227530140534318616169864165378821646801979885428498034721245550020229414413406051283771841238597974609116198635968771409062904060657644072494837148424778051545852739057269264043232336579905854515475201423843977680849634329387721242425433882320182908044271275080338171784432032859449943323985873465115988859051784441228247979276669689675393798096811008445358773938816470001773630839739192952214209762113702409976937517326554884281613611009848863980567997581686503595677988034932394213349028164664688894722112007628385718751203073875455730793630209252963593098327618608262790206758783711421584340812652773100711037807323376392350889392764697135783374801204206287751066774971993710210751456250129534575094394978253213297385436628195568037406113532246632083467799175424123663453473855592058691356531025950183644576390207772986882957395194188936324027298381912850889297366051257678830464668692017578685336729291200344412684360437217380644525560206293690923433800274386029125609937493431686757586824283543818974911823626469667750309670274350086952304712685234306632479981744379596104089619626051713596762574290974973739468649133236495954337064092529124582805446175694161959975142386382481072693677355056211156840603557946980657059106463881993392699820926751815063531050895609749517807565370056840053793806200117242177684242865076603232874919314318053109713401124413296778970942378393368445614352726221204044553182865369239187568252191900305461853130896580255011575349300070437126858132444166726148346108989643605350530098907361848607046618404720608823002051157131267733679208882322485345661937769966929647980089483991463484476861746007033538020412841410531951722381607354096021891207888376639526388200802756663350363297949370049275514031637677775214699761752700527832154495838011559235842699656525866724779162446656308449996239684415251906487517490116359870553053400517607404597580740663843578171071618277037608554286707468724725299392898746800977844410073660556955000442800755709322230486703784817613911339547124756427946780479873939625516988831009328122107833435289637970848296413328349890201613775469275416335255390065381360711372147252187160538635379246372356178839137268947077069966562527409415792467912247584851181428137774743251827398854298230359085089646388668540234721416821810705425141715457202451150197445240842323136858079499080928664580713764040871222399489708506698905189478304109320570352459015418080536733584872597107768907757012710026079822732406958580704668344858333026535478001299628516462249321315284204865301258824618751539277482884735216305700867666626981876110645927834172083810286199397153937013034548427906539327064944270625865999983747009211604617399708101860109921722527144054277541786061970673495586124537226092546738898794399115291809933684882307116800813292073696360972563312501060728747686936306065243581337566140840702304880876005890487659847119688187636516730580487526213263878065589985522548882604103661656080056996198148293527034295737464304543968617302589644497175339908132327937533562658626157279156773992324771676551915033578135451159111906988718535770278522719852190455830451981067090470592623415651734699068407090670195150562738950249027875121152797391448317849178976643543901564383921607213276146006888840063645492565440138356311208577566231171120934315534228452797413172788422558718007308255007435832131343687607686276236087809905082313110900460805090650536773482811163619978900954871537443756416559287384895654331571512883355486652359130380921744869365217556766544678163579928961223460084123623515536047188514758055646240994015336598410017293658719131618235442395266842169655135159126075149862263131536495931907640168612786597441909614162869474905699249913790218564778077406651336539058791033463091679254804788933922778383794404722179399884305524161503592205574972692899774229764397003614609116323332716578638215277201785863530203365344227382327270548822902591099971505874368620911456099800792911155152327372772829959954171962259606053479748623008924978271859894507845983737516899846253968805818587933946200233385774452457088214845139054060120743957425028722385489612107804850486038749663678055208388643495343049560818252756693161131243528785055860191357215902645209600659357957876162363561152002559593294221236839944981733358172005187929731514049353667609352637626082765985331522102173629109147353780929956529624698645966354830878129557748624259054246663083104187572177604123027317405416414668286638473143640755079479198277972894504304850595186805428413461521263679758072725459593354084311541285599832747376005377340070443420087853862537795184793519886984100505129655546893257195881165328847431888901037901217923078763083348743471251875230140312442432288812584213380297596034148643223214250663461756775120482678067201228406944492801967505652540673293426801112439080167890790283230404146941224119306995220295736003806602215725418444380793867669027441050724015399451845120559692348557366601719059597919128298317954788349558948705664973674969918385879922941996485905775360541069196628111130292409476618080873821409763736917558380155401007114302261596125760285604158543350080285791343177091717124060476243138060624291646733462976577508975566111421211712045301797556185485541650104648320380118730322135056123195748998174661593286934041928837688699510088409886634323940638431510791822129744217895722708692367256171507465233000350507128757515803783156773639465531616172825739518401302343823932501862653415162001472513160180450170920370520133135701272660670681992022718374575252053292202780451446871430307548923306427413686318797943377013185035777954880521292588706739471917117086471219997440508790534119376422696115131990636104069535840768591028604602919435726172323519912099431528817950408962452445991771680693525282614989009192260353386050625604655776989588006488627646742931436110531078099207494133776276143176254767508504376693631690551758569400239012111200713239466735600028219639755776330361469923472032774278832434189456496854716811758571698680307814844217178246316863795606168498148548106254034498224471767955917751248997304618919576120305358754040959142131435178636944762102492347364889085946624288211288338064489527780185102246787852924801639832975137691316121665030176004775306267128921711991690749584729627342525155806181701772295967520825163007907792511920972991292970137433613898588578671328328919941010534589834165994856038625105817998129546793508449336206291091792237907393337380799328286956585433167211176099324058683600651943626464357558722334605387590859226639343740670271111483875790487741491667138581258491081387596094653823101212473167104803434763285337472760461657589973390820658887269457332585405236337618380593398472921686069879194281232641237342127470240797903450412799125394546717504374335946512246075935665337984298023446653050791600656444620741628997738515017984617955889998757781404995372867749113488309658145451319371991425972238466302181426764832315476738639976608382932885687832409525848817230502965587234188554076131260758597327422875946199464148205733800004525739229703996998086829393336089156771935554119552247172481100731615998518686479177619863967276398420301394085441616672585911091083529349794892313894869334817113004099704567448455500278960067557732762793494345064618104414065962907300635060048727419026425837041155876384206313831603852985695541133976993975783161458539894875383492184250895838851987329753214159997600611812635916929319847337320883319350282665162826238081126621826507732768645906422286706270122335712205504481054868096911258048953098657671142826901746145716219009480274722384321071391959054070787613404092562772641166396899699309442602373113721541843767363189719606387286699210811082231803722111256306516840032392627016800005216130251541162683414713307075233060787670098276909033475648761386119880468539594262559330133244848011780690336587025684164308938031477972239618529463535931692167380990033377945134454451012619574910163168387455183274718238710741211142134294826681711982086741875823891370321720227579379475744309710147918638987920379078686366632974669206829612293447859652980242510501677287619743117755506540907559107378803491993058712142059031941281409783860163177780594855230298532668019843621216255631613148806588898625487818770987788103349604794140322052629509350606476189830683878227349261027094059715215705124766816472733739077938024412766881899388233532613205237726108241871821660405341925361381110080687476884696884052768548976469085853341180169455051694875521345073107846699236873155269545115740526533951711669455761853831706865419164118545056398783905674560241203852536511639781978131532710092745144246861204460784201409040887050240805676531154889963742953227795546272635207508721097269820139159004365528316915116413046142822187028580301268541189666091892115785340558041465308240459653653422088139151447616991575921632744648251424972493557032233371036269488581516001107499604121221555870917140907269464042900832053550299339914331845828456766562391820030622203724577156790627108241052202811360153275978771826941760715537250372007496864213230993955436338733345149049390018906361167182644956668930704913788173429271324525241044080495522468552997232386399225052910167675298337113299253375896246177264428486765937907673542071359076819054304301155536990509478929650446883638130626730736048917620780610185659666847756631756740725218191513531857320491582318793865130424991786137033970039018329860349351513607441249111587198682446718155205482076068834653089985162311745004512534950508173822862550803147040881266466850248774622153355947240271023937458545678665927929810801929215398242590244456479653026638889227319077054239303300381181515895120098939076108135998254932776626886760734326271153622856286372147657666688002364842231269471892870513582683493646871639171935049339884633796709447228475767752465010873673069260028729492817248941684643455874439002966522582452981263549181458727902656838649427119501193844561048302013402637812158366751716122571571027448843292376692679224797683759503645359212476847488516886799264846528900736879952168817707856628356830757945335317262432066986820650597467640311498859737615593856107300892127975652239340950213590513183910137164570519037235514074407288430536449316391982380932250520263449979212217234443960223482586121000815328264660473124040696639021197039430551437123989618419772734490265982884535314777308563485260671497510304401236185858200909114729979659053493513707584254872410111388185745045170459563770234413961707882926670272613597608758368693265536844687195009150368234250389404004755461771356547936481036652847526911982627721145137633507037613072566776968034854250894728330761584819410998748117665632722951195169307792399062621623291834787640305471038208225146191997349896390549660039087096449312668268154714663572524665310200679643290763166033235179649324022291802774020776802829319057238684559120973794652672984072816110509051464189498800983982907234378167331844944813140940253475492054309934231551066656069479127970008641655996818876283450904988374896870226435047882496714289832281563571610262267057897754435537470231582684468794336962341977740759487913750221814082364448178670377418352634361081988426324389885969282917848731650053377855158476660022972943970775226000204049774350393896007864092047092221734699069849969781653149506753984008660088805806324292907168159954151166528704835343139651118129028121531638671559365625337871016934267144426369450582210488648191558967180424253295622365511722996874565186888300838600440757557098107012320329548211194021773186428389105441710706199420201242851773085595314641099596795638401528616577885925202681099374697849847046284184757799540715854129837620261870553810360339902668768555400669881857706042610078464321084683086086205799576086025060560477516275859975961982126293822861108508256115472074178728624609441973263997937594379251221680744603590468419065364124436111189931788504651147331067175998954720787415077048159122396340185325607606354918727757385059215742705944945354872563940213813286840700735076466200779122772510650079077551388395154593779819756977499306479636387164142812723113345846458561603428117197609057197962460220058456055542956255552714527713482387438092846990096184578051405275675733855760196009781427536136715361188957282514054405764752685772720500494298999295835854014062992486080291265215260527064685729434753037858994101919870248083729807432560645024177737590052985281100038639802537248067030172352476882044357453821493879778933311928517483726437862034726278775641662702949947698549421908307706301324403675488987011729548595451058149772313241021414883964799157745644002285765067787300921822880013561994800173868771864969002800064075220586197756148815686209839849034636773542496251179436087749608454133739863700386980292534392242150935092271914014123130973065721002718352042140193435073856065945993845673981530067494206661972980011859680660091976158539919455367085678576991813539517381222955990296692420527013562987323276825591524617738048996638931349867242481055376232595676651365438748751049822484018378575093332513277105097625061118143879630694850567544290977331876517739052667543038083672149909133203176902226759324243874804707500757226858886388685326731355187991707098922840829621962986666346816242781716290634242803570198314036208332791613816545513602961365324547399707741564426156645256944680972235181154069695303047436423926566962106250965983265908757047917887080802059953686014125173234881620212021740461248346235885475689536005043767161024285959736461659816877664808086003625680609847054259190131284555190941409054195535200326237324800186030092889732346698704944992370628441519092618781522549075293840318414260043523578677703870207069482564498839835556290093709077144129315652798857440752347858260414618562259607884616902542737984894629254425681565542911329973985463566926598734991097061388604263739541892188458405914609348530103059085535271364425280435934056532900885411460121541475641875141441515093057420232997439701601878554603743873736962335033277152759392764778784184560256929069056309435679899211756582200470922618210674325234471030619119461841640323393921697779877013642849938866845725704570075346609091883329640567863128282782812440750595637642459570051926394967296758504663252214603329810774230118716632220294811744234903853896594172811227251566135932298744272573128843895671057098863186136601625435355132381252256105722497386939042023832189759707267698917587021543003376384490833491359212434847099869310995037681906915743502983997664879549298879367528596924096839297121246610114384108110468543574365402003081504341027800078318446546868832927533827325251732662595492614809171563373798800927210637959069325646510333054140384104934682262379218517668998978535221188606136529388964186919006529245233875660253483752026260135470537569246619997259104673478795806996326910201293363871665501880530903707470464502432939376224590670665405135121424944675562105554349181557804934941603587660572358872731757351896864456060629555336798916273495188728646885316323053178204150244664507552484544802954807005267546037794390316598530607386843361924931483746077710415974804639761866664420756485198166198088969602942352757453562856159793074322354261495656311947327821137254194173329554126217907194706648310117343439020917918425216525779198365554006237544880867625848178960152681830095411128126361134655929368520752132415937600229502096537659981820555921500652719711069222097528510163143425035866384432663884583316199142476035642677672761014318829896057386112253859885479809717129629187664234250760349499988377779748910958981289627649950531839776435481738473162474040824302498789000453287630877066270855709355558415963441287755951522691486427506141510359592793912947053524086089955603050644234544864262792057484347634238385078288868129823981357356564419746169168027903624038380421266395334210961345058986883111000787645618821695203696902245492586198507895849336543347023772083522479320540314681557511508916637279505163348716904825673639752510922025178580563610191413441727681095538313795478273427173524435743320671461221867371219474663976149638969370600995903572248591252855397005861595475328710260130630999299790354032677342681070342199058999705694699666920201734042142230697130385463179540185405147912858231143958901390647320782349126908373859318672027505175982960374000518932539084556004405742767039467861947307845654302023538908668410647149035821471752355888061371180106803556306398105627842964572170197828593107958157108519092638681049825600885228422821935489032824671731403396664733149750196305532372102978313665334768539431993248196181284009653856794898471680613983553362776539393697227281423274866858478599350452128092411247568517830752691916736438018103104140136741916456764723076298648614010186535956300670935703742036524700170873809360423888133643217051627444380463755572547647242636692955666115597743653710747628127391215799151864601657036314412060797521148683148077521485527285022526955999137426634261619631778902896686511507518052000402010540326418073201605051468089269988327572130101747260206546101388456340685472422267985728054540527966894622555956265097549189289312961550888320809502551821613223185405667295637454076369307754313127438841232733418633178152291887974071330787703535155754453563793251875326802533754912514997370538206442199146459592608382445212062260078177992213645068053822964895846624997936246779798858082288167462603744325446085082215849941999806805869852367113710618855622801290335066419024753757648716344616571639355035829471338487410952119095087208340496556211911460712047357242357644446450321535790213635312371634576752240281165665779111134130588468896776863577457561346591690840637409352389304642472993321336920531336290372242354283214756927629365195575113524860776626811740049622117825375419008390227318189909651050397682880579926768866878869969891557575443853237344148412705168920137100140847429909880577603841741289303512236207199378423389831038379898850198157630680650075699136422915855328572569228102938227204371082147721180080532666044496733092140083886247231980488370016760301834471506673811191127065366221272755349128846098906891620733284412006405079434760439444037707633619226710433967195197213126987760443460645085569530829150190833891624844080761193626576541325913444069000545651820013878833850563797442909895269614871204377486409822616944362273876086623953838951233697200079022661780386323856880359001539418043821231754548653355230268216507157035250372021522455026151773673186694346030970118556554571194942561518465142324101353332429302711974463675372565309345831001610120648322914661741943308057086371813543842629887972129603196554010653145125130800627886410919206552299424312416331423647908762509706109579748312249250134672163496156466471273044580590620923874842281886765419623857216186175440048976401852863604089974911754243433515700408792369956443855573208640286251337369202571881820628343409531783107245707044601321303473864556686468826684352965859411122023974561489574876708814145213898254511303694568031241581348389060153890480380064640234682573417240211257271271843842970080061057177943183649115803745483304784289160830716890037344149439139524338029082211212923471470061451742606955075281534338451459446379263443024719184431993738979647762817934044999218100444434285864423525705362673977765362505939454541977768903262750617623819725865014325868064505049314105644905187179889311367122130129614202256332150051676001295630100545703053253559089483591670840975210384557827575594641381839912185959148336799074188020778605889746774950192323866857464231576785514526128148979294036950990245973278737023244881419227008330775580982114908134220833808621288620411513550272338747497119963842175684737128298913130422083827635009536069323356335173085540474541126710112824587340153401872193894981545802054219838170019843430209065509715077705814963648886841589106788361656819443818195475095784811646092054487311944753877047121983267356636462420372221258769397167088222899752107294621586769515193899543352613913844433809769555373645488377011568670592664817019922226247277189052538747801790676635077974233414803955570085554175545716297664974668763582443114470847194142248621905006197104012660692259055301253989693951416017146662325659566885984571471672872230638674973489425292226653727896286967605180831059247988264646219337520979622055792557669909250777946485609172682980915258853462543422359389029287157267518776927966368324976360268720175461639085240754260247731299721462457044415161900024280081114136386182890979201810289191735058418571946868840713230913320612685545342080057152292119704456200474234296417859724226371767405697346338464209981554045486048240913919683984593806008158350070855016528327499878877096513097423125604826621821647282814223333576670158847520022352188819274869401499341789555274582277149056665696089001998805604172210906398032375809706498439435724958219060940090148029630001101806445980063610678790701936002712217609490204986860802580563324553635531551663379121885384111530194231301061217093443324733076528292513194779840562800974607210579340203549875719852341526436034778371921007580365530073501398867119403602621343928839628340804592385657166680880125445889008673790530797281804999142467903786072821361490108514532631022367615004141837276310437472176978499166938826821019554403379934944866224193942074953246823756225825575453884160805716131406178060638213485186854553990016296307915007360563766614978494154722465898559957658959213596695644010319084306079581633305304538585817949405738253613222268048330867613619817112388004913085942321826528939319261501605544423515719707701686885679940568821962774393289321198131955937286073904115514522367243592728307965230572913961168738226151153186832889885080084000895630874055818764782440512487568088369797669634040233932095335876521645019323173688190023645866526087695389407240555618096895496889962810718011348461676660754370060933550964746163555171518239341529835154189291772087201156689325094616367095494814072939847983193632843798116896645428195891810048094621735462792065900172610578831518343501222101837468473631335655657300364106095528893610456144520667709379201359438242049649674828257022281495874975371152920776036025801662162035837288738712377966349477254080192256528226173068468585362840720930625887378468651992752386354475017265038940512596581853997554400521320717281559677576398230016392486259437276009686241179276093249781865687113336627729358975375813870994290581358912703503188408065100316766439401802050001194563588859775974799183314258628785758282921695825280797905607790424661253845163823673877949092786232075913111922786306523494595416117929459831160192156334321711516141863969731628904694555233812526010319660322386968664804321953600837549597706845001138853823919415779937966422354101819362929082454736154932207854173360897860302574173143393977329884258313543786265886910794694276937604567161876967968144511332566366420598642904909441169004592302303191701180741922291957106939635542735650536696077795573875074107295851088649864584716314931799834024423599980724163103323481610443555123807409945545157444373953137828940047369817696385413318162055406290951162867803358979655143707730406087457477451325825447446871032495156936907130431254987973417108089664508307794222692699291984075351359577628440264614250043740808807344580882298361562296525663727543749786677303675160670386290836894395386031641013126000003682029684104977022834143053904819581580822614165524904793135737809867546625050335995969934618198454802201186887058113745597646874859499036426564153424494050290407721536097190467366069693525724941014264799628689325100159585676877226964023489104742748119475279026147992627116207915201154589843977951472324060866754913625200008122075905984875915059349462757899498278266503829511074747720079083133782865889485792102448539027365309773397220714292776276837048598384701529626698793920384326530129238140342637452574988599363404490070400700115010653945801034533921904728853563128399192653784685451970721365716446560787916645685249196425831782818287794185942566029726274400711094978304622466030491813096035994631070677874275223960413687062959442131860987924337916994866427944663288817228205152059498607807146020557130710979726248916905494081940657551206963872251374815040030631524567982417262356031536055825848127411028790613774882518389686574915721720619413290499101490428132300011167903453999270763689925227793545547838103977453480270817766321829284192088812344503371536274652291565040056990647476533132680160000412310973019501911166908194907490751823740583706821715534547484590511153673400766542899268602954566624113442194435729650738814906282689371279222976963271123254272383108516691825376091899010166359904645688642366867908476079286763535983084356499712561692064333617523302315796677313158399782961368236834654896958745952084666854722060215284163020141174616881348040387753264705165518098880283016822066259149326349103489868244354202681785618422075061917685299877842531031658448823836248342687906060457601608748359421949757173262713879566837075108515346285410599030142976986040606372347101858367475025050521870638169354105231636946707754345230363588914185248031976147500603891099751907592123279607433961001694670807463007505521909153286698547099892807322422812014887640829646496539467644789367918006121296765645918681326220133687546842197099801317034127020125217003781561049787759888968598694363329998505233870243872830463479068365646738432220807418069054580434008580858821097369177134369508452332625453902461119745487247938585139126030615344791916620245749552383313541639704084048786993657653536576852440146373198148888495416278902386483737359748858214482196259818728507743653865794879474200383772245210107591689709149597801303875427767293040900850246759194935489412412095627912096339817879168340562639515324527931648146780703786424802243930547359093789984592673703815952388331276058010288815156346367267994734956986629639639357909226380353341064779329049210687423846780868539076860844453779152890721586531022880627942233633974059888159244831026864492966814623373304290424855390485017605157706694063565867016471299716281699872930410380832331683976060351892103780316210277190973495785768925974700910215719023513545983327742916774484822306444125958818860012868500822976770783795232404300502127785059461428707928134555824615307602468234582663334438260379038506455076255944773063608470229560135913238733152720774373581967358271732596446828862729729408836990168742799621170759150195771639613879183481403385506395085797219143687789978907429981238860972006222798473265542842374546086121713728564971312291917400278670499238382178617179064418343377450551565384797953702607084062557122869311055891850378394528861896367540551412609027595332820228866113936645209163652696034287736393119837386358169979596391614868251601612183226397018446433697067174808870921056277327054546177571954526178990312744116438488658586581132030443795629729733662107747170050164295506840508961930895137212099685371000231919274769406051144858868156986108074910047292144203918578608360211187647068531151187505284944209972280733916339099284626695205391135872483534050445686083093461088415759161252334046042329739719281813517671221453722687655876211084927606461726217079343615878925781843023298741271678935421449893442944157086130580697848904600120712797603943522625608160271616595815731575571644901587564020721305140494010026065868164447499239531620872782275637507203918910721062617922841446607541169029939001867388745064645194678191593443344552935714483611448182912670095895621720091033620625295637560367927297059241135844520692949019003990221195490983477787197472721601444169955788982911279193255517719457122405612789663674276954460683138795791180833584406559673933005449816627516557453543112241315815444308598597568461086462988610049768487492633674873390504968251523692434124799892900413717282525451647672822662700854938609257915871751943541390116870208173155184627407270965351954086902087389616289065941941426993377940761785449633595577745374636149031966002098846112058815324753937324035241750791973541815359513580856807053604385173836816290058529556509229082306303050906695816886551909257690868513479365865750020497067410724475055018989557759345103621411180500568352600039252637825366540861476839701398956193268851050641971250406826440004372218439833821601200428436304281963695696912739844840828615391930140076392677324799247212715246916812888556861309654035663057429214433373926585084379451893978601196687508972618873338449633639287953809280659935199439267652360622735717692729608170659045702648273701728250983606847632966837752094101529632024128077182353625418076278574863963195175648871520894659155874753199833465345159294612182759772745646208379490424662388630072696158183077468303724388007544084696168415871797339582189573870511092083742997440211661194065367304048990707954919324369132032655331107626012092341813433436540527052706367666588815858780078192593024732327189195155805207536429002075369642566652402871776393654084956667964437896939706160352182784649249558705464755421286197113455622830131816804911912485519164847230047910967656367814228360849252639392309575907701789401859500296291955518629511138602907567283041892872532744990688783237473313131453669552743161701063790548384317294859019954241073859488138578854811467983043634849267868387676928681189093894000464096198515101998256657782515938054167075222733701975981564207836131899234547931549970673676761190762105302679828133555732401278352634095911204481413783823610691716855777647098519594120922943259383893277814903551466111521121020223037729436650488303828153540615256394003722413371402930426529161819452183470117066537719981501411378598679498199032079630529356991258528388562910437219775845552996915386065499563705881420619228558500971428519832282935868057840418222333202871682010300871259954385876916716203809726070282749105631921577884618374357948709680842630202820707160329271794231317432275193701967190185633881048434986961022203791212974828218203496130440935060605175979760520380365642917824304746040790006830846138834051018058325200964502836606036302927788533443824228460087619493345084665713535502143665016495325139428212670225989665346850436243571157939089468880949411025107232748372922883255247954716912361337614970658384591438642867066233417221541977858239467405320180928604335046579836152311974069151980582586797563009112032003478742959708383812646595926050104425865476703429842231416128539821445351646858644997286367583852739341421506639492135972329949757645000224988216446756878207444548496219166755846787839493739504929661416413896892078152900378941349097058187733569947109252970957821139750090448135754159919639549849275329462017044036687720356477692413009916670418533670889173661952758647043996221134959718932949806291883508871237847023203557184830984396883146809811467432319243141484152723660047252446820040720085278556298537621630548729691587118518726184372346471968746627868710067800393539818708171486949958241367880806599199305604551551216356252864162050731525402896989096711990556470740079702154870861185440993126307138204495546550802305296862619359429344200665210308597363717684864597642078423194609483231647740701499987348041551759676375709515047176435994205773119674241972339395373770712793837975515549330824955094651227712722135244726424614482704358564382577143011477609555753688794146517213713247877650109285832058467314687109440697729202443261563357017021800711623281737024486603457634905775253102797231558243697402879773887051137840580427730261335478347863905391098289229274716312588465663024193565790494850862475908939620184011798054565776709181745003771058049275845731279604125034188404161712715647284302168183056050099413183876359663668532536145546587229099167951073038329955246636631246443461683889193548170804435937459071088494470814712146894490218361422982934476909588470939694231297715856015338415707767123749023870159706158313621414107535501357679679044631631389667237351151957619928004976546456023566166694181869295056490434600649514186218984001632018674903671538595434998636225202876279039708212999919943531427608294381184434977946000130371717423861080339388586598191318559084387471396058524511249818246279017102662853847272618199760428681664070617752772413332184859914137429859397952835154501110526581478648342456314777154782563342481028421241100624617974283787077747710932078761320239344659634896018094277749554110779107235604032754696527798336442166043110047794332369423041004549140362811789571977456299728985240493625606059203763118455997565853433130533310233287973186875673092197808828272667368345147367516718662846158053340774115704678204683998458412115317033608810663795939127100393012111182783061381495370406559963700696914926173157905216182151935951908453225937644257365928093331946017214452524075560116743638189177866429391906059033582996542423505394165015425064136718080602260830309517998414333533484677802764473133692672937609676724425610031657160986462821708862712189802717736233929269142654082181960751367954669383538845879728093511921941049956453083064735017229292143608928172600404196365480437189310512725354102054030091429741556559110229401963705289770082529605942811380631004066489772257643001880968773984377677393242795223328235747642768726243973155875101126043752203252455115450245668503081704366520754443743395139648905632228706042629134108636137520071141283092760477271874573729460908235888325782475341009923890181649573530033650654224417756978075346796941352045686416386263362773087519581839120617328901715049179413541879578215765635688329733197690511845617105342436222013337436344478499555190679675544193351671126476521552863292646683604272905113579683526950699177237907690150846404484993813754137240718487605616138742814757874705200146595086043311924851527741868167041325632717919189362008708167080243650058179423650770119258390256970371423734691264433554175640700216228848114032208171223979295674479773932533069763069420687176439927126450016057145108853175787236555527229236077045821537644763931071548662639841881468391042190701020851733087480076149434106006911984877883063126298565244082577161230544696331274134581612908958624282041578090353078137757462840591380211777471355883010834823734211389012703089379209042334122218786154870642613276548968110661638919261486494708373210401613546971150126388048329362111997547405528012154473975166017541016471224430855687008903804296781430253811860892521234331215678847912918005782770089139015609988782876457747107290754515161352208552842332615137181441797426038248232278048316244895868947601815057214961038830626572006950917807965466004194456416917322005732330575281153475366976788666595509690970685127631273909053844494078453469063199455469778738793280003355776313839400867171521075614956805719098250021752205780509139567524394579239709100337955903102023253662253044861463411455996843252805710836704697778179816957603312722915080477874590860331062809012838608759874001744987477029757419041016438168873441487240250432403039569738091239381950377746038617912006093212641719502413762961665178355894098062451440529528253673219918800738570965184754849765915826957066506541773425443283359212612166220039403533431990429955507448735929705822992580986701238389941908911321735361368835578731135716786533477801205351457002883216126257982150626767009196309795524261393993963670872119074602657185732831894116564839562436635678800025817172698444479053732480768756008796583528452932230251047327296663117158574124891344760920153787897839134066497227349443191603039826431811136752527269335043964850460086429297084721057238370865205515839853125335832365469604495158311986977174594331895579901500581048127814756331385391883192775070771205207354670142930779139032224316244949079985834267877462954163888858314250813121509617141824550093092517088197031791787765166372344298226190883540388533479649284317261196415253125591007771295491928238526073400198625676237738809144062917759556519578592926376136156734613569218921061650869015671299291708450393122397728353749844377344353097966659855041346277919490408172930897572395976253543031758617404481907745941557735278841495539980226192614541561167746328831162483174835752632687726868667147073659172153421966968544964902357869590362107481438521979188700903485954190578576316415908739193532757286429201120885714736087813143948420580028167878464313936163572001610883455180950796487754613642805005034294045527304039561869613301611821988247172170491130259898582994529802743778136587040388921312186703013688722404128870922010387992895462953290884707801369768720918284153492945646333196942455858684898066635649517048573018598133760918181907329485289355957257451478360252626609047814154909976520723223216746007355285780268414644342694877094471126930014045881468181743144493364522581730946082400919275886512809019229490626747560522661697603532322999042888337616999968839985345884971574605480473610950539741333108516889638605130136569307523058602082306338131440760020366501553170842889744023842839766272728381685918975977779100918357621409277340890166345506763143188863998491521440087345391482026918960086685846215082161281987625676385312159543346825793598484129566649058147133134708618607970042456275960005625982671547442521127686211869356048072624273061053978074362368550057023599424660376316517271094087023500237234738251451124358175630999982121961108845838300382766090995941052778718855413338131494126263163469871381209377574183621105811609377694723882332592232735550168944401603563903883269034386528737701179648005397788658531341420765222322084679800867477706500632610664328760514755160242048946769933015887412974273602946882121309998792097791267402804135890454485679529838902915702745880933467310676298904878438147744907677073979125772584753719245503197250849486610617723801806180423597190111387220550164180038200123112253894245670758897045900003582357305153331686750982039773365353843571330936729018412624734644622048726288952599255331394824340945586359284528067513693363147897575824056355483079916225601516181616073967478664413362205520984106843483045649932230499116041489614222619521136464171031023558408718655130959149379103408931176141929661571180187926391090529329870156078972707902504777978561492773959642034005419653847725389296585932183185335273784230849953093038068197064128521041068013216278832539416238201166027444484820441783917196072289580411761288680349240657273474051834185132608977845732833259364646716713403452036353095755460249392550934095261559746082797291354353630192302355832658458467474934665992886824389417259726279366048947201432751584883537021440905639783643256127292486664620114476474244737350314953757243187819216387086787555208331181359693891624932640106747346593895662998339393871895453552274504710458142563933653974413797526093600284896994191675471836366787116655408317356855250233835894397123469816708149860893386443598666431047317745550888105289826194486889418569238999259951371032970052117967796023278884663774692928751892868797517196880693475040787228400707984028553412063019761795269477335003654804974064751946390914069817633215114873761875122931510709207063763304279341035016419683599478754873284176397295235883026207799322653132777950947909071248119188225913458066749593812351265568141368907924502357189560928767987300154610485471041190287886764712352745005900207852785181285777479750367867250760703141618420733270891778095062320525451955574895772883148522426021795525096846905306545627546206865117194209033143420743829812400191565927176273198598474828506313226969545152323688511007323494524123529209064597405808197387129687884865791366162350854148893420577339778050048255625525331810463112950112675391998409853457205166571164948027559686152608150250965327907248731714505596976759226841466292160836031070118328055438840248726685297416266583366782859128969751085042185351436441544048484465193997056590525958846514222719089156531343010971565806743129798658534706593836273579737494732547981555947088659397304780830480144496824179989159324820153014674514366830542332399112672266507283192494860241950601806902915217705484257770768372069191241130301516378833947337059483524603158466136431579364359676443315855977031505682752571651153127621645866304099750238959414575137573856299877726779343952568949789608211364576679847507316870563005757164721311337584926964362725048840507759917247632677312736765979433073442761615981020972591044132262849471622131753060354451646999336616018492570200833935421161974320430544026711016315980299538367417887440007369898607153638060257715273504014135866863229941105403366939276053707872923445916038730632565388188037145524111147546603517479520298010922457637784808430319218839652381576403080553177760495987257841324768934502358311824846259597457107890829612128732750258947092391392627945246933328773613653769823234772619244616475361529248377497608598676836763458598441048188216524875037334182881853823629201506859724032480742933498727602315767503614339345384960612100912863621839405788920319542217616485706373220386992785435886914131850883593042144219355404703030867916104856162933201044697816082211948993775652352527775018695109873013339470024686157729154121377719227482566309299490634569803023504156802360705418324501342376389973711482112117447220379929285280007780237786219603072381261672231572805709400059802161437853810756525311025901436944287018407298836208707117482504113555582524926906523252405607727678146440251504774629716997986085132165862892684832821296417051145317512666649569044709034284440912164345240095040536501244116082594049005024418245608759457115935789885416655487643987348812459578055347709299380371384431840756195759706464607378833576989999547924357579417342897042646318119333603426640760155455785959557849886368333314473149326658698016233699540568780562385280096725391366724734380854630955886548713644601490542387747647853298134415089524628422755212589734243631479580253311894030675246899234452982883769286136191280054807305009471150621248907472758671447725310179777933413618811843010976517246665925303824620611985717660566020178426410888751541464709719491512393907028047610082955131934544578793340001229240419980194023972454256838459112142713004700261918454523297401570686780676051208956242075464852520471320973882313977149811273017888327961629367950546989646843646080491702281911144137651430244245390254306011354992516997407925308765278956262967914566317740020419699385367186003347332390817944943521216524940277777879233199470889211543128020962364840347906102434234935613766513443307469554231172706912427855188831470867570697963452619542394090267898013724421267946841903207635036020296971668683281191473960762077888492072587235158469363813652802455332327230097989598706628992554220561621642962302255262762299170002997748415298595487716886579216410447513453941940432447177459192742327617465852322338544642338580693813566881060739115008935873334274200974319530368319050228168281523975983315060268392868370625598770425958326604075695624449075715344670756555782125129789612308108141030537575477466251954595998205088190051225424803157403088876406781529483584630803379716520316539343786205118549049670032937539855017739252375984825480203056448398774586755613326811433858299093649019513979901338064114722798968775954260676719888593722513940548988075718229024224217034570785802270212137511946105121035511692475686611225717426299520302482185727088294011979991330052466791355240028662584251991896796331617382060554331887018331251564156665618127369444682172673776014403128563164963864330530336754273607726531559227341053670809507588609129079099658397410369264990817378714951549275884063219318695157164429623782523992736842610818560335339600956553277766997706121132050525835408406085832645421854134339522013256001720239204493875744760952510118047777561563226107073134360090614607218528479099028060081354639872611915802913267851073192127319751210917555147237535903792514210333926588511909968836313679858517530748648024400023693092637909240241256078348684664646768604301743886328528864954182693331353565991806774892212543123279275475711606653419361636764082244970268023545047164566856513593745360116713238298351656904127408120399243929310926915300766658164417103016538805530364264598980336455294653315829312896099346364453716604384378840595237462854448948408727159333315187728490507049075021400701784103168256647586085549594084561689210174770040524953855832947376692668712190575999675464645582405313599231447293391999055008536685728392301934349197546737180104419181893340943108153430517821489499859097375702614158625822550534339477765758148611962211336327399362935945393230620458813605734202635416540512076169299016556045822943536230307977776634671183169475490026541383956563687991065651314741894551493145111733811570822389612789126307423157117623025895523664173911936734572977874994416550494572450849779861337479926822652605264136284140888982772550055122555102296813402273306950578234687353438310512003428737228268412925483863945203387828498941868351071685414634049380595607347909493868323533941304201296986172244062245057181460122468633309303587971804061872923219536039723310818999405304782879904658115409908036684535542493066082758327203537573404955315207650346460945688035609465067013840967811448874787004844871141477087035545640889372795307332835726565061825682235731120838250529443724611419503868425119657630553962758319592984656958424485614455887807738962959565714576840612259394006598598129203091101044737996295402392385014114966195620283599192446975096110562915328033284412824093078064876529869657236147418391325899060420587872612531329846320871675720825161484022547970474918262786918142309702565278805494291024173555554172157833258632632615721065007859370804589987021113559293389958936883133192336249376394723020509207158036436911198654943250456265083914586636172541698525887947776371503785590020494088119170164131145308041662689023394210290266546574015266080820414372067972945238645603332515162857411067297856890693325406635539187927689605530914250942052659701961103616861406425522335127834109304642820315305698256341978076815302246975284680569830924141942202876587354294106596944957969795568554176949646884861330251221526888955470445270582570516465076683226656543277166168414396293621165529756772416652388622159026523307463690631017949625847114628077663791663739875372385788524805564915651023093463253622295904331075423836582500209562757306226950274518710826022908375854388853784457148439890822267463705489591598020119426901740902092107422553165564492177230737468473767973753379565258054776617182959821712042322187963935781650873593947945161022689067246348963494582340102233189980777141876367386499130616503851415106570104668338146375717988474374848816568123429887922169658057106873420441430814491218502593830840203633049619671713179786107037677671343978126692500826717918545945814295963672272787573048765675479706896074894353847888423439811389686535128749412576591814232173949695706948142655323044218556698372559247578602773509542567805392798246895980225945545825436572139598937469223003815206214530565366101815816038144453193926640035984876055936880908602136151884254575818883660551865102963122315756946393584211974867504461461530717816831985478640126871343102778411970899522433786895582628037531819178659520004198490144093400634975297829980932792394410689265417612833146285606811086085276294797180549207201563099701597774139023431158458341366564201916982428669926390204772702719648352822892363353491419045754711897504819062634461303410418722847727116852018466247076333404473235576401363114892994380758965363649742048216528061075100293380756479127584203885781973141690692590518987380242609831457487082775656352125225168954208989269382264221921765197624000528405561162642453699483045187007147930879217478594187904710889464370537236020830667219040701793462629638839096239362442110485310200879000038478468362761041234710411770468999355549577058046741172466168070250169594484478165160690986852065413111380416386695252907582079197839262015829962676362723633358185318901529940971278638994412381589407789408090537536773716692104352047446167318158539660384267104998866130576610663778879896494759257825749300529351805074845423483418091177354562211656688274746102279953168053651191355401941917241179015780930813738428512283113773692796918326552787573202392645144371539113034548019770068832921543948155003255824747757186439091241133570609793820326109160204440343101937435990398932666058072092411211691379764150273220034757486303387492423608698799244752986900335218018484605918319997757844742347389640084842534287152423649274107207183482570095532436092139285823060481498200555631757487359869619531599866910046850840127757859670204353227770819060563527517440928078432596714086652521232539695875812138159819850262760681065692111245581379379041133715528002620632274964152397467626903223983880212057144479337108973841175652778443718587343612331307674136458209494445246784020389750331744693839714834705391500904226651771180451395462528001554885421805333617791659215860190465273770712193806131636395591321250367016062013192488110573460963048253244930502111697351004045505722037500717831068713978031540354006680629049428335915606680318013617401757150478105606217081297163844425992049198427632084283043449967996735530230740387471985325170847710610593081785493846538119667526954030452867641283477866803055498480345519799830020496128795425949537624461721841468782569387782995388557483059798713801643927140862050308135704928812689592597627956011151997799651319663053751361154098504235384647972152135462484340052978900026309263536229379646795701144386442494252192168274744105735297675819805925656115300444874882940873650187361139843376852100750097039126871705913167330978820133637252538323619192936609937538961427382513306998458395458952367042283581693916891846306988715027178618777202199470160868234674285761129447991503160414125153698590969538749695687954123512702548267697360046288149132660786589849270424745563945192692547690248046853327340063952202665386181271554045345760589752691142574255716672884426954761236013550936418962779738616511716462545340289966654399612326546204956325635815296092303077011838593104057364903620220167009599295377660141997403285718020188238060907484601511775947796381614582871899970378734996761098201144026689999810254778916202508717767702955100079050920463468038641987531764744536075434936206481201226651914217358728647197953638891249306130005157630705871001078063165116615704226886057332433476754330500159885840273739712308217100809682923472388245107360062023764301561805833592621915690099556588785813129384931397449425999952940009825774182063667945782280694638786376090721137007553161127658642096452963912256053381986469950036736934418077478008654466667443500171211389795084434980004590216397542216635375849274303585288751148462816607974801507955049413094005503616292732939876477874532608861075527959715057936046667741537797045802448485935631361852291916382013244996440236955548562082488797849781913831653199761927964603049165736106262037212013185628942574854253268181793126016191567428867379235688801504557361038176531088257284524945275127107325903434988948467823367075077453167324739170517188152446857180980066661555581247355575216877019988973120934897624765180628331522595877827059015451042930171384097989948645378500617915408323214061321003481806577217721605247188720234054356303595975209041488274993371093981585430586384975591165037779253600570774286158918317640669000413156730648737038759726839844325658205836752606033533127175923539383656030598477982373258392499843344958068361866304924010878819366746104117377873729352399519158087113540169590447982950965759888338519342651736081292166601861742711285245239850669844015546817917238771435712284067561684460329019309615814937382119690467542972760644404333003068971521815455768572634431405591024700605768084681454880051897688375800176935266542829408359986722051781366004944815052997609590192033661822838244451409276535744208968548468957927825309251632098624357011025020035110113847933315298291554296165041579158231889127398449361802622239585083516617746543455470049446201508032206750668291844822637984322369742753682871640268368238342148692326620044539060005186104156138347992790172727053022134920845849765265111141747854107591347801331038150953256819226035895933045578133519488841446874464955481860917834201721504855898225223650419287437534940042918374978422712546476768250326937794472336277092604682643166641232554661237050584789568713331303174115675645015806930273572334525169157820730181577500043018110246586532884690277942171291829570420734647672249608945890003648403366454906269095456747709965779976831184386670351192158003177380770366646469179368373489845677957542947045613878941599554318513632106915634865320502478094445855768007914771097412767330806828938282616455972863325945286334159142332150389798443252441495974202096324842669853667190384126232938159927836671251621310835299001763584709755430583440612226050144286750908267745634461156689831397922255776567591390784439775538670133107945104474260984708573046152392283909034628043398504452579857188296907178666861336055153700154792109962238119758932420222559811411719006198086300025501645451457946509170562324851219342732802202265406617238453736208327797460885982127576148648516485464143630663834751523253337827771053685795160106327117833487722938204500898725308881593769288157099722555130299483499098201160988357080542305429681510550854997180419695099264654981632918887259276142858607375921385127802377762535255435648168232534649674251814976767608305072087278864048792550519060689097814499760660232876707764404516360187829740393708457661234538889178670933940323867966688127962401702832763013684441204456970807539839843403403807408279026614315754817073702655146454896106757047659141486204938141625233670735158356692913840213535895437926844101688919381782880591894316981206989427170635356126478766590472849298547226393953029899825692048969235272849414581806825304082547784316509375604277705906393921546273625786823663294685349217904557528422081790336160988584332324643479543096646726838305507449215291124481397326901441121639295339474496124933846883538411323337580537810800804142411628017258428947241182638002151899408674707849884225554905379187670551580461110570557951094959671049019976535864255954935926526796867036520020045000781529554003195386124295444034865506921225790193246578272685804800019748475494143748223844780830735875661425993236887504659509399653613030026521223831940917654321516192891254245516237765231817119814355287474059419927555176815158948114481145682646746272705906788074699662859138062832761885536993554027849692703330026071223678689618341242868970679368688585884171866935404897154094444730273520446803834877615485187803740847666610884893357795119613291100771261635630755987735192678742697026054033486372267675570201981655528960272237573449843028657616091044452596318762814908297908901663261108499875665355155659602245426249591063823882734610596579756337647411777950210832067388609000601368434957560168487813020906136724381168088006114669601493111746658695809775678844718704017903252513382461349717288756440433061316713065132494248013640945581667671160803405781543702744354435709640348055133005264406997702647015504105913047125898017240870970730765181253632176306570356364283436413132879205919276181306549376686699407100941954066102342169216294808598805058287420339488124151806171072390867957993672137928938915035683024525679730536455963475260483776449946689826700237867663425582741366585395676741699889707548201309015059734482450299699535978788192794863104482856569460640373304069302309264539264978699670218645425164201272414897169076966652380378912523916635580720631654691851563108553644618896380782446491558691414088684106881136191118321467028821633295447157225409647585401734193715284630071464183071864763108244331922061943892319896642226523442856666477385380776295010399717214179040912502093374865380337259889606002214573045945440225376243534792363127049642862188611300429149843395540816792844893471382488323291979104040445745515978917016287730207425967712182359220615428543764303818857357585911275724979564326437966453661580133790276855638214683111010015981575199808219791182361376043666655606470883462226467837972255049636322460060253338334159161735696045532908837963816817578044050983262893640796808549089877824008546509546802854063835419283971369405466430279327971126658887154010517761518856759640696605790179510511415005047905293990116014488160151955595331180114455103391503749266244010315430410393943943565517204003143436494273810097708658794608778776809562694268875542493061411165848670527732843525681342642575290658783391735875055799043269307079126669881965286505990768167190127450009423613908512087750243285990961539017808283888322607734319839532249309477282521521978851776639773962097600693299176945496227455407058995600506567304670077258150056099395176714333610181108679125774417294309483657693202408040527342528991251916730212074295128645482606779897150374694328429293790972310960508687124349046463116425831457845579278332423491933323165002011810561371966116048150012453487440551628530275735038795097589726202175160551522750941935141625611449055024616671928455609544174901265227342440399076831483265506632990002047445578884535400342228196242970692552603351699046254198915889691133190516977129922745013031726735299468657457557638171640021625977068238121868486025916489525949405407767745239968882660104205282781883474122115748435360080196141480010457385705940268557981178689478293021999396432924041873588024081558383842284339103792817070309574583559674687873788354721663180603696787358342607188980563085995245165025100389541313641779787390562297753485635374628349544935822289012458091088541946112825364735769184286672387060959365249895990218661746862997017900977376641022943326179015590540495590091305158257833036314591492910048563897807160080886022594819958703369710624988801820058809584030436387174391748099338647751160869731803473146228278307258801367213674971095325089376198577677958731363740375636427103156277026119251774269702469793144420018327646390241527002222635075886210801955201557723136194903127948077135476798771073555478980652312882754898627232822103621045257312532990930406359225359108579408038147667286971327635237960284059264062892361218794466045980964713952468349679743527567984048540440712158461446743686416407489495276048476907882214997212034887174466170946952734880605107436099891583440319580038191926871892714262151295173139164114934939809652333571510794365549649506981342419802364357814110057851761772079243011752813364334258682768635333472892352732601699232764992284188964364197165635930772353236826798779005408615042461675865403690331873951622775977006606924115377608237670250832364651004214493946584459892069511191726897016807861520770626678135991052279918583211642777623434360766960130246932783878625278875316107523793405336851573297484619740559270401782986133260754409567831629475608588744249915587052787456468437373979731649980148922248252053745854468452532445538743630870804613359574097883288694792955808065763482651051802016297562778295243582013186132976156253874113091339456156868776779360908251317376679930545294922297545637608728532216514100971957137318883451661440994205094763228626289308934166365227634570262397736094790199659011480222817062506739838750354026365822603968672341057118381026387607142307341514147334675630608216775133657389472369631416110663764779070366971617539908023142583423869119244203928751182023647251488672435902355697998006203992141406517615469347053625721456156478290774525667771651178880918119901789347478236745792171557012320635749849074615548064167738568101598662307751139431667504443502545408359570779459439658688205978417309946492176549787572079390623638735038403632119016878652385721887074552344409138027065653341031425449714693790135780146572679088226533306795632814616727897346317036932815997703873527386336406565747269084088867458938527190583925350878888824871230225985572718164230110973677144779650765312664128324679974234214464464515600705047404204009313530864424983953251981281246773339621785841063881661924836695432773337566490980468303972799197604386051976259171709702212585636201856578401106880189565738878762679857123774111486064176606488601104102178448241949795116208803070562538343615489065476874738946345884733566207497688697825515922292875013083342467552492224938288566272976325038357826020857977410495044390697025803362083634333292931184471498228791618697258582284618573726820375304895590285381775870409022646660459609564594459831959448958660837568853714104187829083120568977263974445402296396644810391707568129692297921528651776079368195733531847876960475885929768571430785373247407466029455653467659593066649259730724036851923647985523401294406777059434158053178648812964600953572151155876383581678339039239998553172638490248044766352730604061011985407405442397068489501596617963102602437114860352699570045562661748116619951323901702342776087702151973986085692226832888214283020282299523169036827764806663028550913978260876730992720181377279487966821608149442745963838831011068254760351422038469293638441867660703609532507754167692303615602694276188478157011768842944271231306892435902691808364239167613120426694124392512470071335575264333592321278605325084311480051960544419861211690335670222639010593754026961668906492309337319153910987911238575099083262187713625321106492167052478400302548217950297380924657960767254128883961681382546680157419397395969737852528663455055583109251308570188183621417971439001375814747424058665721754916278916831669619746925630900543402722270835093049144405887908902695044590481307682502229812052914810456502009335790757486289402447362424487245456278944856807404368514261360848717518490691113911736181635167505247807759525064113222219734075106896580696698912907650465384386096286820572320682538532841609696742139078449764289164608102178149575665675606363735379616779015794062516368025683457641433522921718922501072948083476285557560228086244532424374851548100626097538814861921592339026054368139328269017961111035743229350645457739379556392626547832618883529385909054195390208046876384098413012795552076735847060104086476876428924805363011905370494484879220945660789194542044341325892327449986776395090340326283842190376875584385571452002846656390404738235360320721891893847312691392428671969071978030541414496846519580990171665462495215012217713524352398728154376226911246975691724710509381595567251208140655157270325631850445514214133584251018702350325789294645413228611970977246564063783347664059836933283772467748915244105079143808082821907443467438537423488281202886975983198622897938552355392604219006577112202279684005253522331927493379308384905194898785289507259089073885919280745525078261676026777097206942810758450826605931229255591818478179535582663452533244328975223028971214082773993446597290589935257893849813347336495068242134799161418278974938834900023838038003373696461314253694248240422410503991419117424918212474287943206328496101683988689593548048649458371570360796728299750591109632616382282773813211263478221933061353756044885082259750619000800188394722527309589727042399048308520923199126441535244821839254729051231219750541079753216114204278108709673550102372389347727079616154682858701501913212275418608596714497529227373579184311059342907755551852835315697584194432295668607516658783656778492784597411581313445655824312557715124943222383294866414369854672604293589924273771217960696858127196328099425538448342843855838576458117919777177997295731291330021865513212839876655051711942297994979778422286484824077624518584124072700080679123223700242158237208494696953460698612560288705617328172101740859184616390695265003452681879059149467916330207465995638862812665764985989003921715821258558146652825783042221377150239279624856228347960519807649150061635196485150226651975297357449402728028724242062422078506981655175865166603114521481167119027649360383479419453965749507174774919652957730028251246533323814810599246147529323280612555920180026316599119705339352254567303008139708495582465391440610619619351945054631186361585023144333439840368142193879756155708616466127109683590860134341955912616518270464762849102562339473996233110848857247891050072899316495764199245500330191246146027936621403673160564818089423255439620159997336220344929589561007846883406409086323415566909426788585964104411626170073839096403649183477811022404936411664053363003860644147610753028677835186553467701711861748162414037514232615216361071244425099702029196235930516131824522766021061304479016888014940923437648580666165214489824825715859309365363277504447062953563763351729636080626871061416437951330188526185132626961430440999957643178036141558127471006053145148901149327296656683335144813801095215471425475460247343562433894362967111715622716794549622432920849959348957680149068051395229602140907773623989961280791159834392825693761390022024138278309097747252075114992660744624303222394378555455465987634076294282630915333924433491490772443917045795178672577841139023302900796036582651998605261681912261947898676299870875505641475750541802831694408112107025667962140601244036223481145810334862785398177736151299584739257042267521745577978609997282029614644223335812898470459230509963142792725319733720388513906223985500712774999373394335804467041798984626838804507210317261072364675130339258193451968414909220790630403117648350108137394660319754808293916253787013808608412397628391380921870015923412354115650578216544455571281573072260099647136820707464855907067920534857433794271842298717205272916522224079408106292381700421510295107329939292823216888413522284270091002709118450211000357369648980987181012603225301764014861061888619225294717987642672436248020633013173090798947975676502827661278146205999873673381451560151297615382798497672633141011747100585654674462153468738447661057379100603722373207098664563884604096041373287054819431042779475488635388256738059054465771503848316484277364852603487755682526769688111394596958067020083467790763551080481342598154337706572729400191071408741504620127525164727979085794864003583547888669104208297090942147246098946713247339038375409916263052131434623718525121024575453204326139852272465692286238226074237903523421624842102722964504856494472030630633292104503159271045648516588616931721853631709537565388674966627760613491749003288696655940514307879346952975430431261494993974034573148180200917009672357973525568513381245743996690519681639124383447798255051575105652866946127623825436810312738335565672576437856620776189779787096370912525461284675858525181473382956505349899740879587770030005313676527285630081562275902319056658336717464805158730782015457724067063478584557552329101196319517421976032408571266201295868710480191808317389226146472391089663417989572738478484127756634275297327251440436367274016603555475720944018448478702764022920959724624881670672415781522061660412867058218508478589529599844417493729199018009810620258287534352957887169840330229929104019715616224171693560898682923042022830749904847700090489161548620885007899187600491918687648338600376955784433235950203787595371620807655669158510990683838554703178895635663836306353151170233072843171724518269908106724492075932572971603403021558534959553295689765548648498584929722724501743284503647097818605041488726291463871760790221806449000347994358823919127440497279009606710706064788000645427128747832750620382693079736657989050707528568813561257632604162108431025287145948010412553163686898852061146254713698461872827550437815011053452564589324138673720198411328887943668556194796457685040826338922335507279888418506661546298281536206294502288636064588198081881582096249714355389065804830474024867337135509221097533702163951326233426482949998834498643043090510994163456237665554224302897530237266651344922277135987738950605491462244270320484112244478962159541500328385038739109024370415866771336999549752968064369807991542337619971269866048601466299629536198403055724211593421805285940123979861943506517295491688745489210723390202090422908167322125280918794282914977326942708468424314172839711198362274506433279716326192044263089784796458597852280479591590971840566674710425525470884363697288524454816761064707187557238292631918973783337061950008921353572080037046042341641923091831745349274471492190524603012865592918326384521492748199334673030899754945553887547896811961642228039388565673473369984353732076033437304689037282468903026476960287449983969429020903178711171567089094463087932792092086169365826684821123659842945324350459508363249301717219096105761785116390567313318719660052333309785662577610147521307791142001897029110462771505909083700387720944156385282340298509183086875651045654375196830635337751458805092261782240626996799356839526498301965551996731234096089502566170702384479037334483943961380412473138093268857725113840985459939510362746924560892555036014971193946489201773817795171459915002811835203674360840671753642905745443735401787657165414399499983161151729021120712388769594504844509835740399799014179549573149553695777951332595458073731647924434386170709763994053482757632543034727361348037188219801087710169556380842676459434542902692732976521494824524867972485066711252749796742680115565879838594296608366036946073923225860815308037098660510333084800392304043895334597053654830649145571625157683276815052633563420943976717413652187953540598095388452941484243016567914368402191792472002559431006503924688095574196295771340829334758590849878032694024760501898436155370929758669603584554630728877050904962656904219998198228912709396980673284402279041284091952994255011808914989406519107048472761778017214410289282704600787088180565364512946490949041013790443146776613268889986210992340294581122009894916429465947481236093480303141504402304707122433410873890153329812104158036669075362104375584018184822791480592210213013879823878330380288642422642455232730145332825064103874650926512882104533998795656956316798474310815094337728151492568756171054581450630204587975607125238258714681281946747301580551953805864297491958552630297618616188057486238560162452074432097922090438871138055056534486868061765869401025930612021163400469185621896799029914799936404041696534939724131120996325071674016426258129844187478225788203020410579725176225117460020836398400496068923763352749994060818649213633939037566330393944910245084055608554232207494215425925080808960627779283972211743268439966870421293715270578065589247241569344242876141881909104401782816819612471961430963811212247893944489414153908508760349575411804298768684899103195224674021502781065179724582505468494969283981994839257856091128624826643029067314665348657904750804080309785914943791410762325084081172206536388881466322726435568233091582067267916737608419560798125678888524686433899409008070016966346978833409034298868097120172344429796058505842156592690004404104462175982174681943793709081414037208826110134241314224401524683817076575985247499949468542031655351020144771366695221655279476112893624441902863398839307071018586396154257237378860459308181483442472178799156359830146005343451959417457436334765051716428961244248384567565330629968882706747991395157204946107900743834994684657617722127572587128513488122103172085578108549633954665300102682096165978418196105866480055199599109986809234151715567465975135232194125862086551582546190676738135467540238932637542521222111485708045192745924497731009736922811419408433062599619252066443555358597963122027844705554289677090321110394805289304117071693652126640043179736561193579452795966130691030177413185312737257914470553357538362669811655305609349224345507190183259436259751393718223437621129016138024611538595998418139161641053066780530067021530770782740940362450388319124605335991700748150659045300554056289828215976505763054165027936842016275512908535076806027209195758002845012552957078384605723231785198054611480329092766348023414096410549462091144511217585453521783294411394131943024958693753596874286366696026760298165156918376803704245589354488134813284150016663510555251588901367336911727325053073131490149577416475479440845816258782048290085947016837933732126608307184430152941753445543360625426503206692465244666538827581872691115865232632245055817760112625025475695957411693817401198349556199417527325092533994967641303180156765121161187432305338881951212439459516059912906960414704264533814855746806283563217803132512251122228439934481657000761443833483910154177883022750687644333092387273532100920395273532868750085945557014625309664387346277956163894094665330049641835133961877184373056832244272183337835961284733440140156592391967333562865661420495366608717640437893489446670376847177555235236990400948972240971030397383079497561135706311750257449529974286978076246124493803109578396991939989016552661704077158388209271446577011582768546852644351276004885800220147715592045741106735301926565600631547884055967753941555314803058402413147295953707841144756912038228428718957730569808453136974308921570051833565758515979308112673634658541843665867431495737409668128179699828050278850584805079730672295153421804556910458377330591965330805152176684641683133162423147927420850977335060003796451964726794265355902414065993458346120488422047883110350939462544458915806763185959482694681804174660780171541344895212382080273985712090061061726245798456858515316646554420864397389309811992872177149357157251456438111948074604696361679508572399071515828011071562121020499488067175295502745651619222493306822510143437347015521477872049579804911207027542864171621697208179273096144943495923545963634009357007198501089087478233230152134247810058030229229541186790418462574027312551419145089492152505984309582346201738183227992726987100110303019912090765202480315778444477234000063331595933988887910025234336952427314961076000244929079620891880022383823148820968192928010006412311847827126426023301614002083136229482001952894500378904068524983143494524993568219615667129589167611971828593957510481730861960304532669780584523283839513998813583646673983730835276358040808749924856447662539078177329080871705398594710474875373176663713864279687425360328641389069362585026766502214919037664249427734541116872262086330740635524469342986933643602093769399669873770081806497958079890835817886393857122722961321300274101074024940647914304628074304491810971630914092051233268987860472448646035036449300929578838532945562720792791631504833207100194918325068005123705318685848845936623923306399069243234362594016690457063153153696809733452381718545746017930622829882114488692782316463613065429073527693535741324655515555375972265532657766887169944964659193555603248191138590928435555622592229831981834444388163870480402545974647533883519514849563484044619548903442536052206706324041708547134953481647978747196247038021972092523438547677266592687936836087755455657022280245755764043440876190780504145556307748642921056142794421366232182775172466772763430942580737665729877229758763500950503251423859597989302070067911979720502168196269007109384243805969611964677623775673931082327017451670444848453749614786468998868172002798255871491964383051215543325885503261351796807244501552706928345739240450514528304538993119814733368933807182626072477317834779068247438299676692999401244665195866073497268239839594465954026963291091101833536921041108822734255329104746333029379947521893651183501826401143978285994074376663168267740435426326995388594007787778720162438466451083649450271057767413803195993493362115002805377319723212360165610970435356399628878970739557903693781404232074080840671128649117635678398354316502544421789589933505663534592253606170493568937285618415465669689720016904712305167857241155828578603762222763498241854072953220991587920114766251950670570866124194761595448066775626270300151468384685846074592304856131367731875915816806753033859661122860822844179262733019554855055015381036469049120168291950905016142380224594479549096162056370540871689032692952796265347362595497329548841288105881646027912700364681040010151432341022145790194032497193094984924673468633032080958094542628052827305868793767165319018702978609926940642369721247080095492969328923623085857446435833519418745609796484642437791468758831565900292321208112521106354763028081247978026964514297144429836698521732817820416885527437994926189922498011072339378411512502503092023340206793338132303149144317722771893192873639460258900104716573434364376394463421999374058735214980488230119432659790993643109022564457645422268472949213640941888705299132461051587625949404583251029331579945318621355381097035444627443256737743868344955150836827111727130724483248443620292246218391324846314421823990743214158879388460204242193477508734693175031179126053268102218497188778559081164541432971308517040208159633170865790640583005044100199251843500909412635709398918584365989986718934215289821511785069839542852229945978386127811542316833182741444079730599834397143088915696309420730513908746671652434099046200884005857255259497723127127291730654259383141001435967845332383495428860270304170381021899868323250213643499491652583736280664676843948511701721415725239025796274102515500969691614109008644185486756911858842002742833805248521288280366825104299869957219724287592403032313376378344635678682442207386059106026142480910417554535671675099000286065902843315406911596764418326206620206995673735701855689067069405699109957761487826564314524144367363583166393385079180764493172838494131074852118088927284269759436400992022961807217863452809752159465012982770239553085413257697553241983057638299372890326657445469238105945800493046913035794525244600509202910026333686400053966450158991069847554662468622578980819617604228733480402117877314398584624800607912713035814891017978680726004464952153821934432834162817414529506107696211295196979089522499561611734956983339480125641971308489521625078929978650510145918926461733282402697933996891710574943063776779342310262855066559456063942954685262636085233166098663468024734266431135338964125729233801115301712996421394021561558362427825122624196162423560728813030857591745218998701972654863695776329531698459621586734046210690333281219484005252269737327868956963470077014042797769107605224978898626543680782851248443275023516532149343244525766141091559599687720794237539284124628148948977852004741124882964413596189417887107926751922936831989053759456632409910157354437544227650908458206936542467631151075232017475093236765955822827643131840438969267158872852674480628578678430407283514651414282986526410585770518176311321452395106353565827708024015449303602314634129165795062435381434838881801829008859461034320037283410078337937604497893828920511914845944193521948094385703425889320097306703049094233952644671010082054530117889091164756174016330482368317512635671486347366196331687314914951036151503395845245854212889774438383713642454613379005879252457549045706202652249476308650434190444916075332931795282060326877442365042826837111050590195176516408359125513586501639617794607847810631078924418509640083416970149253710970674717882747195345495603421970994738658133403177108457639443807855867412786164871136043928894412212726512535562168111667757353745106496963458652312212657982820751317542583396958229977474449303184805597993902328319545758913907240854890784809075419253355453187074696439048856395067886999097539984758457968042999675798382600925825824811257993072350996541570641899156430968878914088316210348389705270473303142175806510572879609221931602695594194953597861157178465814568697029361718137112261524179665427620555472451771283789212975068333546083275238123071986957555599156350934958704658858236963035006009176342931153650462306215233437456803024029120952978519374196347403162595969384810862527128648264925272737732444021671894827996882164792071291953144696379254494763703088965976812513696601777710920934747436321433632377981761608729899716754705137465212699723079440045808394542001282861136277731289126714999904479894277303856404925210198978637458956376737212834243718713752949163833958407035996833222781925607477883801421169953327545112408160116877492474908240632871964072293740194353248697544606324356281745482300060758312947324615193457844283378347268250422696829017301256437763883907105989282168525175652619412001428830504529940194922893531547731463334908108542358542284780968519126898935474069531644324005151907154654365659031331913452793331278420562158860164979213935249198788398742895558005904859440131495985077258547078046892766843388545071069178508986759756319538711060273061349182370221933596559252030833955363741970308049215193271020599863802129492306958458665003661517707155038841804599853540951926126832430891668775545830623650406800668789379474528458030119560233323786393267332077611808219421641722307750607375236170627595269938233567610291215049649240590515079503351040531644598455016997263032599851743288898300792973186790771872419339221174475361468034509394243931597363457517388231465356789887147649519365407306972082389647731334583595090516089462451270042729120800967257354433139429989808670894869484261680508771556504358703250268534559668617131010730714506095291793222926383479964293821882619852293504647942958440627120609076650422784216059198360924518595817068308661586614725603371423414890261787253098852523738503172670871749924115760102119902709433839917615804208709750692068739597285947602619346787205172900792826787290217148608884844589751515844138410331392233714325808990677029710087680694937499269400586459775331118307967519681994137376556042304109048530168152498758588562700425139321236139750344255847343609271939226003337384274980083689763104662324596150620875417850792350819862462840580065856669992855584780687723912825418946063950277720513010019350432401752571219392746346433040006803413159774204263232432682937793712819377266048475774897940745366380913507654763182828596310168449031860854625792210859740674096228185045852722156774835532564295436651314583850697024465539260232321168188397977057739325176817356670708337160398107694123251081241954458248624522972192650522559843709962033692817878408917111502745118838772031563905227326270613360207799911325810198980721471331626975535973072746388966316520487539337472610634630863310735287893367298744245792966528127208832817508115153989911598635076069830925490226720994335676970849501694599808601492068452247716918832876291082113014011788389945731614215689565264876304321891544950367352403230643123323503923660496492948213222041608083479605125375269071073603805796590889750778268636147115182969244887110872738867706667664277824696638962853865289384591208000982278462559492517041039382053169432338389277427133827945649206959551582518546768143498770922749172187423241830648844985202223832533155483294401484577203517218112044471806656414220955857643871225209736170538325210190640005831017632472205975742067862222495021009358531390896738185741930809513024768748370139318983040614131250624043408384818847040422898635545522808489512277218604451748121191065171189135654017710067992890945719604020984027923623255057759837540212898247996416592937149033183575146271191973156343346578456163749629422146725547636037569423872794086319123177955906899374931124099218045102557410034540216914849990473945420841985265317419135600049803048256164631592587042092312536515655817267018580032610416544127461818320596442332286532405601799847494383559603253377005371347500451014143461537742377901616693010409884110743304425615959305877400380118087291417961419389608798309553775274545636367068114533014370868747020916715913370910927674492076056959306915940249031831830635542090055207638935854046784478013131099009964717533685832750151408865269608679542909069661077694861423609386663173770870363932036968398981416653835174834116108983965372438728088637178916525544595349559350833064044890393290858970367222360951934316273361942755960346822891502978483035155169203598021203875805647827397662296349456231687829488372115688488165663543856136628262521171265988561444160153095627413359421951665481976419458607451454072702258437767967229624067270034627942633488255050137733309165285129564700088092981260699001778977930153072262852854471083681211730234059608509649424658316608857334589134125816965817181389589800184161302416522800991620400719096295238866356218449211845172704496406810904524981189256207322434899291773183756227615215522239536461634090608518995957172419910901707823733501447805463270426923651776160010391703589119430196366175294146383113299068326980485081632970147985029519495970833020546479929046535118731134137417782605308664690837990413152684737900305018671117984414293833847339505781238916641754877506803208382636502331253618213753611601362480897174673553077390844643195783260594024033802545031725804744034535288418928274816143164116776897005593478177331465245092057869114603025572978714577522765136673314144324134315847095469688555277253431910447343185467075805638811404923591449468282778044913253173723185513504692660916734353742517231878129196814137064559515502244665212097987605796151853447814005353761363160771062937314400921883030970981095473761640423496213431418905153753629741590269756822623302941533618549069627801065864252767184678899485604872352280698096639097261854564264304518182588758438177088446111502575665362747024439185792917022641464568660052397953781469901978289667040309540723968476386397008866036748501848220242883783795214077695870491249956746823701532582472953675155416718363539137314030031247527938861699365453999355257506991085600887389030179253616203230652534545683569944790725702676674422123099691426950699948937884090247377434333722132058588393884301662107330501829255870158400160197877518882017225665947327151121495547072370883389252323367413556900493363301282984262003595767240867774680418964103293637548923871127017223293520938250702917403423119725628931904418377231987406427119706121117508562063449957870752666677368968775776643466431660313042298857477723228058080092463579022060781194903075132532613387049318249908138527150112591796227180208222672260745192108517616859270816059552778538443702321195295841867775462791133459970735166734627850170070139240756232090109959220304933703101510626815280923587867871271397351664994146285874221897195263558641197587572964794600847326629966133343065292059692120887666098565276602840340405610770955375112909031741586927687264465369191914203808517054902191601027749436919262114441459542457578981573705591604824038208908033604415534164029176598901177080388971430051284673275616790776033467987063946420629860368301134770233524563372044745292049457104424592945045573701072759429604035415541734182093556895320193347028068356793178329510242388484578952028203168447777911284594803329016019337989693955538828850728681562497197662682003600057289529916403247045801348570771768262506809288185624827434641546732627192825494826898059688885942935484753783916860335298815413270835214788384067278015132687287022370045730168775677245832514266137572721068749204705475829872135912257829818961270073907463067625343931495765797136353401150096480133935157966826984001402466178080032838936292963126030490420800130405327371432068812410931383169584533639901440811595071885828728689004084878696109710018367128547232600646427012946500427110524146180847095175901066488627398524151196017586081264988128954852083074915070004388132518556022286671363187232751649250234150721106492691178965133183039673213405325320334465804797939144922853852170380391844710611068709003709147782814380957743989655852567831647048429064428599486256802789276859639589589887295133964070487263493952345528198782958501119186429042503142309568426535600845993899157674103271013048516900226087437899085455002569806808713424971033498790410462838019312501842478156554719481097616940078003302627653007201039703179737839901722727971127234399319338374166355457769270545682146754024688847217266437968840519465080220287042846407886494922007319909291659913702768181292273585692094278817242616633461194160176595493650460564360858857384527286738055469865462092053206669827994273880051751736118719169289026474165395037716476695610618303933579997887260794998615462194262974690346509434171185670459711434371059943610312624143144448021807803363157320649007371647615106380061453671339813968801748046496862097046732706610771580210815239698221847235339817062996941307606248824594431223042058712119974523715480005614223646937382117165384412306031024802234643511416550131317922504125186198185376261838508758476251016535126778555524029641021672333659156973423887547163843943199809070296818561725988506415221817753158640364205440941949859365634862378855939249599316650426982489371852352656014434097554015868330920877263459873877281876880321590088053950070633536816906999661153078823859895091259804207409820460077695268598927144104667006514125126567900754657451301587156029842536514922367284575602290383408613226091744774844496791352352771043798118414966753829322783547527472792761754787612941373786952131253511391781222433354870743278551290906241681174059556500337442731566871652275804045948584143063783290081432639900904700411636398444623507186203657743169956905356723771163059256501561059537047361269879897023499676970304346599852918494479663221616759637460681437001239518928694169933579313762368983651516508616499412960716065337218016551550562034058155441571957200259917930311974809175715991414963452359473116083067682735180141891972624533383714267410859539603137692809086101447037576336619469980937082601514624935856215531291614693908155549373752975878904251939582701976195543455650940945873594006877513892491289432725358425823950792223068033087990186246659152355318235166015359898636859644809858218390718429229988208507064016807492638567093126295628433341479782043497976574052043256285177498150690434681456169419451589463653729537990323664143110185704591639023480179360953814666367812851448678464150858636710185738980758927196228817070811044408525748297374379212438468385482221254388284718837085399658905503184067003212949511734979355996247942100670629606872578869008492528374429760334858910470011291257339401030471979996599184881447256067303585924310984938888603386275276877441224024380803038324748683832218292108617685619822576586018930693424934509548199726234562021861197650089248631973700032840485698736831899534474786110200249529804719662911470217510392733424405420182574199073822987968934639295217976761277018218846386590404359368739950333316309689677815888846922199778758268502526365394187677317182713365132746729690617429658751239225606572704032246429096569371635664561278271105793259137859461259376835032839134284218448699737262257209177106641911964801821005772281865916038109212639544893297585158580520322969869768303719547710028544370093549327898558726712811914658767732091622462669619783594943205191784465955096807694845203877158283601966661605814981373448898432446318159893164346071300159840278138844945402615247948892583855280319309816979024929152042198536368011961219816828263760286649111359880036415303858067841693651374848610379877522050537440417510121352527190949275041346797254827686370106584418828050751907935702504261563166295434220932537084716448054567264436697505146579813455646023724893780489969263278445348562170972288675574953363368470484386392753400536715257249373267751094423489632466643772776197300970736302268383735240494448253064431224863488747213609001405231268015036731990370716587169123014582508664115568262463775609229467081543431676553145132511011817900241491536765717537418089966532768631418405206143662517873196822078628035435372430358795091263794221922457889088316790255052020003312982171657141762927336658830744918240878760673003183622448424767950073800049950753303517239119710837522062946882172948558795070970845122600875655984680522922442614293382385534677318823427630334370380594372631007884707649704541505690896161738136047488020777274514956708795552248981225927349998659400501471637414419736424216134874171169901095787446509806315770850547897253215277958615916401562272876081213695575953761314084268819930541989614979818607701478973075542369740198005354983770447869416711937026322313973411633743556231149846613752403723411048537316380040199070710923609541002083349724942356101097126749040209712955112593806983392165931372062694497607309197543614281919029534771485510213239959436842126966119539422672146806147105472775240273654120746331187417574961734903275881409590441617700259252109803875659672730069729525940949785536275605140116330180949226576682316679827305482609800555575210295798086309227592432697168497512150091667425471384232714860558415751299798122182783030419967886070093954339805677170056131553651116916861761236715129116827298531608691589163848436656364631952452187434118344580773173030167945238730379612097793415876752669015274580923307920046810054672476189965245456835274930884157702736795055217301045276031769504822053465620206449799983497733492062822410631458033493606399046684319815833479389051357579483042673794949805052080072436895799594657248330805076933443544941524842743183221537288928796373472791582313227525358668979784507554120605396609449502414923120940418279106229968125340975976410245727116453632869879082865441542752943347791540115793284047407640055930136030538435843330465203635679779305455593960312065023741750812309145943940552604618126579042610379777009944515505284648253990259191213937429439790980171202784884149550041868683044688632830570183316316967237792300451102204275687551143258747199537874200577433701999676061811357507120143803085589135186029624967733208822163751078448704277943987622447836627795177007650830989124667295845902112182546497495764516142752620186611803164224065969688714418893813944577544010924382175882550790033895545461926987773823949222805805594502274326746065713492384230991664886538026236256532554419194412279820728032644690456699988380400529364323977467915064791665104140191600767067030501110118141200784267317435039746909815790089092133649898711098616414871784412877259644280770553356121717570278440715365088581096943683836147622194611662063622344022256749803721174805659334895472846494671291643277618950113197467624873481913228732303942841959956389309579942928359498495154718909629595208455599037113828122715848359532639193719169625082758569769797937463558751242836439619817819885503331814012654670314508503781853066211656095362741712517301479876944416344876744910762387519197683414436685060431569805140133522259731609916700824334994330898373599038579747786131038566608907074589115850281001166734987706618625615449580917639405080752338463661489304172000710541798710638909361092057162377123101428833845385859374820865256708633136052828682915578940711617416489967198636801757908642176932730995809513349340003615254783418564291852976159192630185168777723976408233093536222145468822555122560397761263799446880258799315999882513894062786285935416764416608355641183438519863117504588123775364920343491139040710696001773491494197120405418527151551790132907930367573425885848857362395800554229060511231962736762209904661103751930621097296472405962427736351873948163225846910254308443984241243144380249491499622846134242115728086599678701063844646227634749141382382609573533909990014261717783844788389555018806218716456705852461557303278189171514550744910765910178069389216971380807092636881629041452563893810590515901290236764256838933954715426722418908282271036854970324446034841664046578846997757303442935179429109139920549919742512497039313762103224840967318955576759749085474803070816822063725344360448145390370861483061443025388822724690285615653224179254063113759084128094581207425029897235375373640398367241058871969952307118593527869710045565275697699867016298906908465238309490238970809966531265416933529716374474008778682775156295035801143719945224073945994597938257002019943969464692626618618788160656764363665077409086665366391988533556641293720234582325562215083610313476365410104028462271332803045864281530974705322185816797703324928207386782785227875464938687465112397441966755270432004077628445718092131944491657611452080826436807267230398124555048135768145930769424450675214413600613532430553293021107630393782993152599742811978814045018440949266171019268842839575502045108183653340546826904924827709820290468142986185287843114848001701713832992891964635704181308223288353397151933366894697612661988144435626129958581599297149789388597781230968654240209721248813733682319764742070902095000537740956396546000647645524349712734810295757060848818280709133940883645498786425721356328486579335760981995632197060139272507712110339774027126045964875078396487584909355083608587044890250543187451237166331164994175405642993576421581450316375510236285612978514699455584455163687012710217146414537679434691672002007662303422184379401166528683686783534198694519114283587240182916431349822353850198185521554703602931260415260871427589908028328012303243445573503752473581043334770912101158199287248281243672978269018428830647955076874719848378693363112717798281233513287008500126680397967580302206898970566284213003077939519221949649148944767288149852134672940648890319599833848536862841942907652748792187416135438145038138490497234127068764074300489875510316349446250173441172162231428212031142188224968726852040960893813251276538186709540273817365960643231455781660728261506089538616791270029410203602647321834846040148005700928541564266751497018883583684309898203104107374065129751685017274091853656383343449292440125929446064926413065383382495312218864831364303927028596357097744894804713808205146283720544727878183483136091666994245787777692764077306038847050549304682793250052976484257066565327477470125139566457238793134368001964691205376651420990704008055113655958255448507765536894637859305035488703998273559179315264338587005939869677351333362857663929340089462187688197530892540551998220052686514703435539275042403581097538045618842914572125595782569053660604331815170712756451687379322384130364284800685969905582225471869482764630466144820634390810152992238827962449796118934722743467728082976613160722592622753746980666142145856433438044149436336950554981934288846907034597858261899166204633541641763683074688856948527723789058512743803619480800925676676324427315242728098339745561839890372159606544006663207473749778975383297237653092488285443000982558031318080762296631655477791516998567125821759275917902865111552570973935009369310116598041628430988048730031976473890670121577111906293458395984554320170775454637077113368592884510024360948562250265707329822095185995464356321536215144963268901369364104569117090476508889068773176799205584061656908075719505671529225029105081541971681480605327472394869365930015144225283122393451568007135611873880329270015769881396319481559475964805242446197553155802474634285665236027622058913762890194305965244053966441689584879363496532589754688047970892052339679147072570136401990073664367869042567605782627827665178702121864879716490331678071399147104872913067401579957311633766632794964837628249946348461135563917384192555820842679643246882724506790250433369179495154933314368155623687871430031289343240118889885582865935074307355182411985877647936908270232427066143502990541533743492612838347783010542853941227094927353315405230251813510063739749077065025375711971643559852468160044780533219850375462691125484969721798089687948602139104724299224554098350980157938750296320453066693000607626268890043718527988021842986705153527315187436938299585243382610891888754213250449117013864825254148349462168070095986452457535018972321357699794126523771894877435173799040412116719057589149609710718881969636425554591113889841112618757978085597256755754565819705102530715062778231494133928095609703512666317398217603668967895278307518403443219174581761840767027020834989859148258355432823856397640404237515273707910298088895866829947238188026878849217721713374813149710410182842563107522565443054336247194090511571690271286365859487399004974666873686492458902285631980269726145583448958009343179848647145089141340783769765619021372519043469157286652289804691898556818450856133714504518178236521758264368263897360818519935348811863834714847398027125853129046954971031740359583455374810754239870790211746050674289946410888590346648461142904407616453043879274231259509924234866102937212449054507394917927089639722046054651276914073041791448697351893373709952396886358462498072819050370036973376161440679524709967539511488573528238212093651982834312847739478679888499780255336156213516118374234588900900653633766368778893839208396992720439136095287273927566850531338488454892179770786966140645257984519225103930001770949695527578131647982950751242895069701102441407414933928560265562583159029707141262678992079824279622399310500158140051950218622474134033126372609982893786214152690622469058539398681842078295116522654634386098363974868115103488579212291728795682780399027905259795054744321162046540159805807860002190466691125093758391219445878813567650398369742836529671015181455977253638004495295691642486644119306522222065732075757416980110728184730543525786312985092704620210530482996078843598654533174072638463852984318145566656092596407125136283488821179529072539147571132003363980541186848444841357888785014982750443413214802466650532817192887995571207811007593857892957500535329643215617081107692218911861506953862133919363760376276084059553697968060988353175269508102471860117872874520346830433696141997011639031461210483430468937040568939859726726298804654253891009841204904575528501016839556409701506147005501375543205580174763619648412227575628520167158264532980371245268907586478427408398018340734283727761293488188992805839677137039393905045131218820607609623610641260671042647385694967156802366484463096122172693364258599335370547621123984930077664220328228919780709437231595212727152586815261698177329721565817481817349828050954543719431711213256824512121831847157497706604649398540733828983777422806088579837071020490301943348326423857990260556910851537170211362884538275344026447045397900766676068941775815550748126234323685751125288769698086593794568468107717668824245068922821433519536872774619075687661054571392340111432797831355946982251413797482813361295741963879718475917451715404829115281374303355397694915368843957475925288673987180457047858156668487177384353792191910583364140106267717500168049556139899537076816803919804167346429678808638426464511070411385880985622024863890294443712770829920364739478673867470886954441610141398998471486483148806121908220470438162236015847055382879075553955663205424685002037625567343904974612520023251349056981732532636411095677996807152252214539564179369587918976735207120292534454440294216662309245363391352804354263773305149424053555440104595532390860123726198755710612456613327700729470687530990751234203280079857311470418432317472143493346859482011095449837148685019265805969826762592183374570734477701514764545417582495821339562732468900808671707288238974821943722211626339307900233344433767223047232595212655119061300634680614113123875133803524414555824261709990297834662409276967727415911997931576067365975601226609461725599827253928528511060061724038648596483078797685778497620045687525530330221064680101014091481154731133639592257801622697554647550004820906529760008917670316887761198114403976673146137302147409243216335217033061655851840318406961541571352743595043396322052490376415450412095514161310379778798061291702563747933456904948415010431003547743423799733430869841166910762078332520064315319658552427219949561770675423602929069200097027174470897362669065030681653791015563321339794178167580543308654755962434375002419656228295666603930011867465599164321372343248523728619108777000335067796165654959988828870233574525741994037935107335971013608510416364998814859616628698869778812114983178881465242736018037619789438031224630371560840937797207931184519671899877385480736675294690583528376306683326301344351677929132808219389448738663102892851057418145570454298283309646712679183983463081944775624537564910391506557195956039565075112347587116224647146050825639124882218187167722519218970708898580704933121377989823152704237203865990121601819389255143799691621242631579973767300256656154151850423005863205930546305206225315617893588298044512161308773317448507772366392615835675505344188106398150273374933341956210687875952717671108215262169475188345121792864469009474406786147056970255305167508758305536192541722750933907520243293880401992687712775680788908610773288272508344654745699860951853072847035279185306543941245518544473774774795791914153602444299489689326315538376387622004399710869309798653993387758197917768056884174865947060810329823333609600453821153983565526633613573486131163352180908362616667391166076251561887258858584164838045659715340518593564649240506071765798104745519471735859364494940621465450606077289412178693010916862922847145977179321543089106086318649731220377665838556319740336040899844047933182718738550982487358709684575675098198757449386765961759662650104950185953788755861365662430250449808879690812404048066465567987768021889778615897888172045449536563959434176137773465000908604094617473272737922529529950470269671534342425003053861759646214763551104925403082331277566326033287496212567148648133879571370893446408612425363031342642245995284539447618768965126496787660727958766534027165813800878867367691407634798957320335076707206044630644791611917532443867245843991709264595783291943890655933511811411813916092745510615178261957788033437673505431849672471220457432011610143021234770825895012322412738637952868446785419302176805097595937591245587068585911020836667626296409707440832005979296355017228525541729263638789799395717462193531155493071078508560306517756955018733080088917063190655765435571851034445382226247560848834295781437760206925278467017958011609756349869542845871819139777106394589128103732520340003290052115231103072704803467678003885054606408429460119943716255126021890021762019317757497669837128129913266497686027327303324862169759974736559429591086352616527777909526558745669938829757339150953700985613629626525177039431736505283511244858483397488967503161388190487101044152141942050257903109886756888940594385088097449470270352055278355190702281928276338507415724552739898328340254140003680703021941509730835484478686066248043527549718518118163633949869751581799895944046931308117896425878175210028020988713542960006569989751578977808147223384286328401324566376568554467971922246885327735925057681146227799399806335538049717147032153203497066165772504615221544344976744132357106990648673845391208308634001061994494976188399736023555780969512296737822027343255115040774410445313414212295807058549343701024269187292298808277471384101291591920878905592755861295422298429744376478118063418931042659760514372579873194988084967510930881949805626340754727684134420398525599038182738407244716275331323802007436332229789747379303834198950429130410144946515767021224219416823864873718337463841616823308604019223247763822526869643069086800965201632208455809050081700611246410406560159062567142204215798296534609724792989160555088305009530899884854439732713020301267859828316734617693872482239513782295681276378758650926833854466495691435709258182959639254176865683621251211710599690727689302992542479596140719184193878124687105906552332259388896644225453218929459814827385701725632977321277120387131463650525876893599504176528527961893366555148820599156979659476482027379606272738545678087201025501670061519447566875696323888000737443677703370235956517494646018623423210106821032114283882310888793801517246336590574676517102285859610792315897469669672293953926999404841379734171301926700764332181445686571482701075412668716746316686136400229726732888032895088943711271245808760353802741824230097587517460717213876630933746276016817484042140484376112267415465676402914504962113660231584370864096204908430091679803350394422326280474217362810367776443616615929217799129969562643842078551919053074200504692503122898222225952184611697322831161336759067162000874134532793807735083528223908708389571740897452594019005280474353001137267094425390849287744562683139572622790325825522079431934150731454610211635313209751485399271700608124741314662476420164454040165755532227939304045811027442478170668620843647053267376835941174075689365435065142620436449710103044215730763188064421891581009975644108835204512729434366782566151206455124092856470734467749823038216195519075861202079145017745636308147896395745516044163070425125457976320203187140636113692217297878419858942163829086250412326472745466545384868452380152361478026460649018636459915029372721969868305797855601294319798035797140657619055666763929134806697342896570593155966988874832731762892774684615947104497355373042135538662666526787603783426757887862737791669561855530191563328889341706875724779160205424464831364646303621870457063777805989981277759856684794217709747792807059654518322583773967696465696735565287259806271993612510072155177309978571905006657097454264898772186105594511106709368977971572834665870260625542590778795394538945763443260958770771838420039502842604038442787970208759316037619880209812526005461113098253932718812379532239127448164926301219154517234825944735261751428165007298782203170356005886676778365758116409554181383886172191142300075437547954853025924773919143920293472706236435809371698624749300710184644197059807051829491374892833708445930017444802421167463473376786868179377653890154498297207445745855305020681484482209722269758050744439380663835617952786532974850704180127578027326027245610147155948919013008853916304185049924939536115811553190526995875769880312877969261840553436136054455377269436668946858470552367303492578062598934284289523830849561781446524260848902263680858723415275398823994675649805699206978171599238462598765363460763637776626738314431715098569973674988058334591347553079305440560956604983931673612488276125959106605388943918175853035285182597450038364412605648859792650717781233749132099675299062867979086509029808951395589912760609154818851848759318047383948541308145244873471574905153963085604550713718115575282350300066511970669918439905796511420445523475351072894569313504608028281746946237287082933445965996284233662903907923425003618456474500556885383201738040401701230216553694590583073535227883170559966055664582176165220077884633276722784683087949246334357843340331684457874914625579261037086308694154494229656588531951585053580831331992892436456586896852860171851824216954939611675138105414612008227595381713384607984732698581599834032608297875734368675383090105237647763546577617223399397805165052836052432409848685105676709475637664640355712740211096155244849070962373371039912690035673646344080688309252131171214048991252331212974896239247376558723743808105719510924749323660354297506833486271314789431419582783345895837145487519048189865763397548738270407138242594946641139260864708543962660209560570829945765810391388667514674001309303263554988874109313555884207479009191825916013518399073296276379354586423588205201004405915935840036213368257922495575507406159070001595988870944493369267907309812011210883729460095032717721604299235310023928459845788037014058055577781267390001605740423087049725494133182983995142070711653756476054297409251275558435120266913395840894935251342416724097004451370538214684592837523416516007240715540577581636684604860147122630558048111780643555118676103318820530640618243183314878321071337449178387175990751336310050053763533782114768423438163205650601366007937341633016196837663897313281502630690495642424200415681625302915653044807741221880484660168448930265770507229082250851191821449633716332785203703409428461164075118907311726890618152242859687765150210525238574889423339885462239024736806585112598226367106909292745473758734252490938709017263209122101195099502249317785786600881243104210774143951739666708184896469021167335670830995904349813073580021355118714537262647327539462764262214191447303859139638745554599978187336591973687326827307064107185932834164548455242005326114049015652572635553614677895332696138216506303920115712722524757133233885288406351817779211331940563084039756993451792060008879417644936026897908185103859167998507611924578359742774775161397781846721991838535744485014354594389945305805885020863890782095830235768149858823254712484840979167301014662906510494801785383531704163721039123141137654459013539075527060871949500226453343379761803688037217211324692582023566535241724229843476425282977555313106331196533155731808649326475308476111974340078399982179783386847234104407073441878272092288267941349237353428543036672950332713135317453316423551426882340428029294645989613399491342635713209912999071702647455895601127228511639439837539031236087864470583467813445549095513049137584977558788895557864345157787318344465805223559734597709399363241408051589502414890560188816226941550998858386433128458478769908059432909378030983220104225191279870621197202157299770318006298327636277854729362713039784541560494703282191424547187612015186016350295366457351775253342621469162658212846576628887176942982693947389323270979268705469898701543177520995442018221959433638041871811406161600271449433762513709788532563176099169322188271060627141471865479054618882325712026621414303904940212088121784436973946305256499673174171731429922997089170791876993381116776116801673563375986179570359463204440302357380108290617644452541521034981823527038607618355898507274535026322247900668389368789129124593436403976181990271924926928415430640762995057676264901624466888600966097268589739497348632068964790099652469755419099100822345448783040133192128627509597475730945843190144648810441792025137421838081187681868966446412555009093531291845270447609750438472909960117878027972749575025514058848087061074695786222881665317140297620697550890717669911884488726046225097995876374603764292487150292517366586525440739732945507253866843879429251418117265197306176536543368370223289244399009713103220352303516334780942038220607593061569196179143974905227400752141464460788966102398610623294234859555762547954290825974459476478836332080575425496612368841932833621637520670766589506348711640443381578555703877338697948718993297789575419127573426050319217931457237905149889743730658747928881048490366316022590052189828321772537525817955319623836746396817946490934128062506006075675479986602073710720387965978623586716310410041981518482255741879295254376554249157837762261993427293633812457936852147468117778137605658692368143243374701008064484588842753518204889939297781164386214364569994294180914912686816527515865530661547292140112785215465581337412121075414675999840307461507690152100652004995868350883242307828726941410522398436528375501568872773821415385077497564231764335692280008031110530138918603994872122604491962035772958087803100095853775732885061000988547853088111578194929651044651652296842578269989804078620316246101166659635340143746324307671340411148391124100498317232859333844668902206285347104434266421788107047639637188879755531098029985996180669411100216719396889636709879577602113961426560544225374737264162766072538045087408316414469497986108015268877102657627348884175672801610395137151729902903799029912968656544467733352189210956532400666120333466937951328202521357578832288947795179232815885861267481156606464914083518941943777126396307119801192980315648267813904061318204254963001284928018728821401194887949326358242038032303259596620150314273884619066791147463294468031672336218679160345943038006897900602888374671785758546402168662822701855119243332731757637667352332280746501451436183969244554008997154202854797915802926703883592258801288671723471049963092204208016236030849262653259243720203244477282376037679093353556133959257691028746234797073200306604585847618868450598163781920536427142239417586394287403259146634758874847847550592767036189965175422255285031353654785740377126640745503733650504697926485559963972519011574077538632375649037604793818319019864235932276758644115260495513999604045453181266539865156838404568106639863389309958589860653471716323245572883845312297894300125013020755274720850395442242668671514731107213482655163679401966710440142572874731444961697566679710050303608253383959093664668211106386839763466644443683123072576432663765149187197242030020138279156414040045869577854568531363530045211241379901203683066078084483239629680407180817898345874335060913818422228877495887968165487131514371179432698051271566041313932650349910124397984383952953324679492459834422460922123102664170238340616495900976021789120314232703185086667217337381170894152073508482274328893580114611098262629712286527365106456120873796918433188803132008025556517086575692424683358749463342007162157633457997351683759418184462970331259451181072628943503351575274515554313551913708475725201162334861545561555151542144335890276855059853244203773804460920991207039681599258549289030774682130656359343064896982271115316731812414233965577934493000427338843313787686379511437263559209502046720488763627748855261604009354933282833016365147902184958467461518400405213233886602281601628100450731870922746570627094976385792985139436242858745073736716909126600801534647612207732311297929937004521106798146119546606530030770089251941679685834391286304185169319921611158094014305539638861599717093096959852102931941335841496057036126189141739226281868163624797061367772897071396573036415346539923287047044203342785657548341093533572800689639648529868692629528970388578324788042085644103532627449005567440218805974611062761098191613451386238681130130148989721876244390271598282412752202543053007534838859984030654412192470597716841606989260216568668555861990976972203081664193647582305688437690892099757184370225349793906365181510693785218366140731359843501829444580967178314808022300534722441846013195356744330375066768161531691363252869171559297704698433923647942522406623743487462783497705486939952369137850461396987524135318265070871317356808121753347872339942284355480649355507731163692725443937434097443206553564187031664306269742405992318436905926019808324556055775711942932379476991158688100673012460132058599626093808085925901091807280079573970225592018905839112196201879978290014568937563371577337993735341056904784239869488692886858101264473961833073443418419876796734610785507232969177963176687565522128888763900198165245326257531306306758285673707883488109386623304350124035803049275828909560157101804658379839375234844863973402657702895702369119834340072153116351071092539424697021157050314515547972963517286491790300679118580055055801607498308813082457918603027868056169502042462158943670868877591294571900813712796327911501451801850726296933967237389617653806248374729322358773824516673789246506048779048138049606079951822140260977938578328181790455634196941196877540782807533883755325674998723440324785511295466959582751448459888547399828655794192655792277745942095375992211509541756504841981563442856321063166903696882436827744215275262876003451647377140241195632721560653943525135672605743351943265654275099057534105441821911881868683962316903891432138329391960162786384090056746325372177565548260846308252679895225469073761670990604788030627787392009653380293849235958572582496088091296445287068782348517240661098458821249917124888684282023422997181274292487171717071021915513085362772919710118643582014749447751755905915561333469651899406950458174614719707480414392822289336411285147989439231821073585199606009869627234243315666714607031739868009346704471180376274789040470376025722201056570480842057279395984881897959860069973956620888926555299063907844578255917648546466090557242876072319943458455378126644843815879735461165735609231753183690610395959392934352979034761847410813105547027506194903481812216292729735562122851399661664582391343424350020687379421855673094115983915086339448335482115815472978286911369659550132645945040775200352621820878121226461099865418915001404111381155282185362347977976967108108402682478718079932100668240019623594847684919088987179875267897708087442413727930956481948487308161764821747276156410679972817255467396281019181705265045240338924181181644741412580496209339955948276006034085097350334539015928009132698836127734144976334283568360161154576731351994937635544804861775025432674456069360477732392663080304475025159250664959021099235006883082646162562718906477810236827850548257686115123901498347886571709363897895910786238667111184757458867874558506576517041463780118287061284383458731106179457558844320579943812433160796328426923916509799868852949417670368278006978756179305026905464648175973338555281274613980954307186795414963918932494007180661399084065208216241794477321330738344958433868123668741933600289501788701536303014119096628370336687129611595994394788240584287124406919674235248059821498315312671915327215840412863886058486891862778203555488261658885159372849803776101994481536122736828116576103553628212396317249195231615544367671711893467252036623901815827007022666851326268175550321406821504814784240336104457486239378468292569145735032474137759217161926713586146707683603951858746566066408312219484564109751256441964929287795260039444072859488124216040519952238033013509923820422581096619747416286272646397955189806211572999493394602894663457921607149663892972294210796431776639634669920764948182476312020549331094810591112643226635972377717032415386607282846928726276516465542874541671589714344041162846836970818066693492962948118462864081907492490843347541035415874743374485714262590373676018452588266501847499272212015710012650460310872395503606496120105362151809352875705980800551358501226596854978231887131517820969693532334351844039559277400786102738947834933241404184953725995071517820851315890267494741874022335416152156718531966952746518246025707508669374136586426510629001327568422411013141753071931135240715692620594681975966970739849623671399180071557220752026191717157514908351892736632591779364203763668609283797802159246777821683955950406180148824102049538700665488911212813596827299212148022831964649838858923717924159171871927943570372319119172555521739768029181858243209298602136050116326718619662701896519227919267253192375663535806628082827641914218677053144624647452790343277457368670933212547087765268805794314224631844935002080889962418898143432292268634735840868223400902817967135060738546462144699368515137836567945193221940253877585126608149864879116081409686029040106672309043177475618620911389319840935072899532578852378615405026954853571509322974022789075004118039631060674926268470692189392593974685660803610195033719573288561374880332987459626985095509961158954138782088080054061955095643960920666378705635840237472195074558038911856117661645335466842886173361805118459425354082233901608909180928203614480551988140645960784888352001863149697769578460426939525427724624762992135227183642007957142412870359994999268398167350815018574463901018331556117284468453755988797251805583477723424319806202461589231653331719721324990862646640677100354898600986332326770583639232903117305302505613744729251369529965093359505521595941903451799981766937172775730167535874725127396970075996612443652074740920704990449632104026855663493153676581680015314709288042880774965503392613472881279935549685552173188182176718882159120630447029080787843077015868015020913766272876100414728544066388296002004704258420050949622346222010855659761580109808127218384389827907741205054204252913055500357421575940536559936322240416223125762386760430341056820260870809451333624692549782506652921163942529230847982859213974315064965701257019246454914743163203619115235680944736731221653361936614607545090653383605609258861474455830013573953576504770201593258013053202495096436362659602677381800026993869884307208777925341663356153262543381800967579339009762193730246535057185911672252492919623668524711705985903287253948527191212926684459568725939724152484839784430776605736334083051608153074628509441606734707726069248926706757511361316961256931182199087008443119009800617905400899748107117798599944399579868889770949844074870220466719802093905964264244298814031363854218149000580052076039321878710871092074824398588241977781774010775394861015023304727896051170008351292363220406372030711442989966585289093523550595870339560833820477669007571463757443668205034607269627266346743882373644597770768166668189354226868054266126853994791883623175973310076235127454127075556784156104920051382262926522521790160433314696342991490993171544969842524931935103044820334110241895620404542443684585650626483761779587408426435851874363699380888260459469630571808385206103772886907906026344598865844148199272661044081839780064368532011755056416551397967191117187213730988160769807719404290326229089923600246908555938334626923781423756756959289261676392489516854718355238840035978928835808749885644214700347408199167985952930634125569110813188023882797134356598164089214721685686797343785731654105933992673738706626201455033450696090461249706153329484309941575769852659909161005861983170648824850370479237746609259258033810092454385530497539010032740843871017816288501821601648481774468096171728552233901711011782622432388515394039781292002985303701818468544846531079134700061519275572622797826188480370149515072224975273636191801104076122706075702995706578813211979024729946852825347227013488929242452362906847756649791967084860085439829028319587430851347561881931596605037264480377191182979729178144468506330680470645917245369484343186554405892018708815130058554225226470778139912547477998945166713837829589359982245685765167588907416425474577548417409626158858271278073672689024141670111753467064099975775697847709977171004777368816065146158606988334088233827701798832060920153669999553018140680353490572837667571196233485390056763416833775935459559331530900194070599750445458890267228308376903915315622356281203516448527854103729413763955545679744937310208119098851267053085749669182921814610457616733368174168800419696447838577168385272511917435109234733343721634056935030390697328153542927438223733567619676129486874790762702789189509463129071430332263732613887263439501303911108991589939855060068554583432718552998738197192587988610451621567187737310415524531884062605668226285980764181023678864340296953394923806245989524111941948566288410886411055381557511340958511911597671620412980106104154605170004137178932306894002019418569260158198211258339724445661668878289555805088586200369378539434102728630327424340749213894622189952018502424805888235003312569024902759071221217842112230672076969866871896931202617311810680437393916838954800497011972061897628404500818816858511834305436209344355968773374900234561999876688361366320288200550586163826201494314219185730106668703142441545272863547641891447711291158606585428787747033409561095258123730486276462029026657394658321498680209380972029493003431627667550912884042439932257454168993336126817226444381570611848108358224661536304927957955012217881487169325367186719009898065017402747616692203605927121107092774778591976787223047323464129454938763966216178790560872425089590121051386949485470734252705656523370326353615509144158624654060765468481920068329285798794267959595423055922921709821353875199325315957840373206650975746483536734330183618164952772517392982542016235042013224198705230106876311035524985738420449287406783944104143393847976756436645133302320442843761882985216625716297122432186172380697354262420942752304363600847434121942380084433749015502889112860766964202048422933589980484636330072382503046588286958982071114961738136869926162578735005121856431375707370695313080593413341615673030073766436855707226827266058723710537857554294665751435611524090389718352167279238393694313845863514092253862804693855939298296336475953150201189820379801567078970755313530280364472645164570650277776326693122854374045729247054852896219662059482733449988072137926599363076293517862324598548546209166799573978158377531271074272340195343107484167386495923842061492719724269204044492622157366796826395710929917321570665778693435333132206993760367106031293245636176846392007967533618264975174130322461478554496190042564431907327186558537034605946520770881709840028114642466407337254585980243333779250351886373296275128878653167632978267696233911840681955819382716797687124744189649150219727072969502688056129207724584273310856098291274028080351391600239914777827417112739781272476289466750275998498728192615663640494986826701926455855380198141532115357132628965242644435896195783795368948245477555542336750748953766494636618069692739161376326207151428869887781906465333054488084319075771993609141594030007951225632631260302642961710047923470815167087802211403329033881097911805037837100328587588813141349676493592075106077614894339398846068434567891802942570963489978289035389628245342877668454311180143151142702298986857673360138452207543928633904331999474227206144872825127696321034095652580648508300268643416378845626347555562734508787905961938994177052227802721879170354930149163275336910573601554858775485067524572657838543193539289582398511796020286376617193917139192046468498569660970144095534159686114804746670774912671628167588171824729023485917485770264650069343349532080847929078628133296976425182795733552505971529118018978270392021323751349330988348387086872043401217119259181604900975394739476211854849417110342144309292463464065982841967806645736502474256297751046773149054743883287495539757240279142217573307805685681643382757213087510340807234111143091001534313276636133107228846245857315813440835455680951298564894190869821397702122544453042959490914698849838093652188287104400195643342995099990557409391006741286638467707320446259930628101119481766583759445907345262372491935554834456601192919566237496873868159805543382822155888679748770175334094121440588229605566162301303630823351784926543029821690900391287253656494125444854158232924114867775496543944767825489116044985595854582147460774057412439488644238527485705812122315013200441908992318130125895710599185000080784164741993194701644894129398762576133194625017825019229519417797611150624802241911847696962095070073076448144377544113183362403450021430410116534975886510390146505248184134852113028286984703131594060440748645000760470884788680275311856953464783279286083372712220464325211318155129506896389336175744712901429182822481428006494494011567183612064991006217110179808562808816055946760990023548473647045561285018306301903817942609870840694814448097432304291622231796091806230188010284079580402299683815131356741332109412238503345856068370586500104920165261544533437349262142781600539835769661666545474566803396699331191809271864291143611846019182503748844764863635765351694111486841873719963238739743898845199297583254013403111625487049887608195747009262052512177356506515263723907017922457527795431996508077015029774729647885405572040881520495865108891950198149601420973594605784929093019450864949116896529289908775136456028548625393117355560051908564503581432919421262474080937059341957075809562959338293895520764868880458653786075134046767547307472779310788084392975511511132178505452363896696862583008913751346610061399314507895511213282425312553339587395373172614176020643550356525943668325912264166049065082223337178810765703483330776217735476856701637293596165851143118100784799393783654555643539198989437684869066536218960935800554081207204843251465608777932945462167758899728798956410273738472055810473029440199717599428231216584440860625332235057980802453544604355735658719687734588111248400919073186014083822667460926531923942244420107601456756526598961476559333518187695235240348821638758682582282530801310426067543181096240975968004589646602992240137414096318463699359641232701536498019959529159888255253569212798106599027542129049333135444995509030222516461819478147349290691736868890669796555029501147705861170210628973223442323442381604332919732564883611138843279589788148461780090666778108715411562822122067391772791633917841571503761369411510244913198207113142629648510167096709894295351771555294621152209998370544274860502833647199711124833468766366682670506189674496779555209588821216674519073722736466245850082896440565196105185873774836931864170392218116897836006718710825257176614956978236315601011581147675902001642426175608981540334913806312741690377934132136510331749542609833643266906466287759732412053285061518478344083324080570558909389946184655992603512387952194873102294347568332049207026410333323468252298460237664233239074493594586149569594158634162720382171924732654250708226806669117526388111857697257313296977095377157207440706077752777767932320112826923576957958688775463828133799562684441138468517383161473761820051649322095500907162985648577715815241837820144317472693779122504191596519988076033400058375306459407516890119774959640942119247725860487716334312434209130272823927373453478413216375799162930968780033440054660718279012624493521758742668690453038250266325862985455973315482312148453728143533950828012508294730990013179595930389182890246085920367249785319461729071324925034130227163469209966370695820695869459494969020810360914279987163456650655980275373039152451258869559159682761322834182811516923165835637502063444726644935201083427979651163478306895930427096623416544099742823864399533778868342822092736848228938174169038045518920779977988248959001773151371245110911752632700323769635913713182494562236569000569382589930213450025302990726911222497668051866983489976888249234866001615181731112700297772177832060906322745771986968880394035756205065019122810207075309419142800402603433605661190871322019794703556593728919658392728622906663907250049596190721650483067519377768911221631972906794205383855112483687541629161912876291336649768103458771972724463295602914157360394984464647123093790666299044269416279435799148558530028217135917300617201681698068448242280042529432498746891716479659396509825442354972838511115072421360830034881050139238146494517763762248318714317835840354128906637423842756132206354416001368699285470179911649071236831177386061031033945380822429728965269615017539257028984455262654194112040219129044241020392421143463321590130136107777053493603890283747757148502215475472433747904920620208034832385224177380054417476247032741098348767391992679047721660924115123072793643416969336680620394795045700889993818377507680343189629336204191072922380909145746345144294038707295660120300037136039223190279476529456528603915589222764318194478306354973281334046224795994569077553350864299670865734813233447116514261378319355423640880676563908078171489242357903474930764459830305740682343268374476777703092774583657336990849236045244934787064684577574941093860528230170219899831889861739656317194812599915330011253460928224642408373558576595209345312304123907810140095031296483106219969272785359258621207227253420784607723224863509041855133694269028168790969093032188702851163759029500247244787545860046336671479152988097561518650638158815135836789022119818082276226165463026442080695510532510976967251444481332584144433918915105198070279106771624115218313296147555578639541816054722416896647906545564911752550251124414673138763662287310539354553406111803293870601813100157546249576800680717246165321062693262156212342733299107849724167643013039891463463478665858362786555026768119065468952091947260100040402411550317578657757707136694489948044208471921160416457804163944819285461328664780430691063654287112950369267659890293849826115928411029516025057969342690954578566167670663683138902714251117039746231674929658938945975364001335211701109102889765542191172561147658153651357858122095469672938563761435921793652666428882822615138121350264752752514025817152731410594391900484118249507978830408635068944905835133553676124217573695955087216863531063066505896851410664701757334957698422699323928050341812952288196080981043141986736770340422211439849239564555063367671714495879927917021578207059690995335996846250132106008704057195233925257408247033740451673312419533309234200905403694556865744776610248963816884014130244606124135451043848424001437088529209695964352111719337283622318370793920955394298908432072754498554207814621389818080910775936086672441032679245920020683123611653550996615489595055685173549877039534916826351998082301976322039731315550072559878908430375311728618657856489536730473263853875046251679979994455642256773877246687752088287934759350359717056083886401873736836405267331084586874223925853971418433102130772644851179299891904097351558096872767412268713676497599624810030046884385548970672046773881742755296928509435772077338319447331649285663615687204003664665292409154321030626489314293568395116892785608807702728975897117839560591004898287675406464260690193675095435467372976472424829682110758088720363843366452603023202932371707897290522528169593033091224900204571302757498963750450276390150655213151049559016142603061434274403615248207984102803031849571783410426318281695986216012907102515500070893023886539095883079614192553332324349622009569023903734453385710822803262100834533920858620515563815839096361650305644286475051032685215711580821775837615582491418309032556109900842845515737763929237603501912232723447214085000892648766085264046133972200216072202959563345022782518094045737940353313433567095687624654799039560000837882891971818985872794041535756057197858561214402180515529464657313479636383316386941241409423864732520326803194521793195734234782170286911747141891215327734998745765449476727565145769686843495243854869566957394029811288051573632925629063087654978580733879062660374950932386804574787295642073536591398687792868747178564018328930503144202162745152890647934656511907920424936376635663198862537275148208600675717559839400481388400355865672123205908406107782453613445999773448921093416461094531513407870014889992989962092577779031277816358960087250294768463112413231261148272443122445145929270123532576586994242380676256789985464381503199596682927765545852464414281489900736745371409189265557051325253248224862746583692717565317002154022840944970795629586447777903380219194139113453061826354030187556142320574268590221409906293852509948293181385713165261571529182265496337844046100759806361104963678772286470163770056995306685077277877362137769942443410709048843185202949703780847192009599467622168774696237846845613441537177071009140723107749306156292932246230699924673514653336035596744782928176041075055915248510873432179608633562477792884346752764559944884710440274890807152499716945109456182503227687509125415795900928679028781951070156239390634120692997346856425230592047106551969940598850410893962178498159425375579778233621954665284074536212143126783955849828236221047374664092287469576823179253474390138276249915624123083417863832041137141196968742716793256688719903420210835637326827802449770919184556983005842537452871396641543339717210745120610710928256921507403916390028044588449193390358904898987123880199479671644641885232811576540999253855216507521414695090532980741157378190193693498607639975469055996363867328983688907934854888836336957096132615494734594220537929156378497513927795705278049754218822014347943790047016983065384785599879013193937907563897313283399699072041253668821451666090094384602060533301518983513954575374117024130410566309184208576151571145480243383435915236172666523166067487120261052356594298505815756025094188390061012546263758737396418068350791696699093018816012024748522387668502046064240700049739673435096096437426236889729696856714199523736680463050634025377016531674765071005708391312117401091051723057926174043074032453256442701041153191612950174434630046959151634047347117028235882437134624544819503779748383781534749608206861553275553734327207296834481095690059827150782551620211447798970764278046595427273239229904081217936260988526262749832229447027804393925916133037109969218961593424052793774229700954583073442291921373234643163950176770703798615798186085431958698980629155228563349803951940566210407394891292600715969991110181045197857133155460411904584428949168755268331802605032973814304860671066378610921592697474433241446113251927110620729323660655208728523068086616739690439371511311132089870959699218560479799123729465267761090092360940532284889582732906923892975315374318599404727654105798948097715304896758470197727417551907287399464850367648075892797717975291133717921591098422303936636991197342991198903542665507985738148232473447696104726606358525953299522769628844440141402731633950980647324607766406113668587473313007415061274589851672497452611014665653658487677772859925214185827290518193651791923823295385705653909523253385554803209294910040586763608356361010862903809744375651718762403101289548684066531949882613336637955894718300908158054750961501201174356578852080794901576844668236105176997757373342387442201394782435401710594864921914453094065431048530281176998042555753886123864426694230800233000090464405237581701445486590985118058223139255597020477046815592549881909206024411548227536727655308927304038921951072122206371722490742891231757101429633175404688590554297556387178485444375381856525600173009551881641359024077171251609917771032626844347975583078687271695300848385066797643761856940573047259051752146964055790824116736326961089718302593666166731409762686646213705959151985622790446449106911677841676347791307546130860700172754722930419137963481815577651273749919596054544235858556328578446564994190061765577980128089365217337881636920217278239888427675590771020744333956331001248932559706872358364455774100425747004131978286561946125887652220401559331594532566093485644405138106253815712146477060575128000147969922178420463769592154311451876374575329643890646179084083505383524591908244608298286646245200781810007393031513139081394366642633220966178605054926983977365081136375353824169217005986857435421190305689564624928693369604188205278039888301069661759860090903854460409993219431471780314367241780505254171012681989630066107081374316236523521847728500325009344314033240380553014092167078063128609701067413820456313100279456456278910117633305906514455361905872917638273958927312975835149697439731640155992088972616590337865098709568314205662281953955271671399556232675513123604830324955910874877560384763222187957483440112751246679432834119985990924956226605969145885551496052800395240533645190530577421477755293770653938375270851751264827586372815558648855979208804419513259304788002607967852425085220017036818444320628393300694611907524082581934921698780561155950901634188622155722469714496712014301222249755183489397286354066946498209617597225521865078420402651467659883949813541354680568113746600990945568934227201241741243984447052932496123848654024613855994271175902011672554064928271158218116968264074528694772288915172905467389613523300052196209278496691675754056747417510385167877145013350884815516345089545086586077360932131298669483853541906223778632106813348530137093779108605073129653494233769551976716570368584348800424582910565541257330629353266861582805484320872092191086417030812855084420167857705801444496393718407213407197258558109616127068710872332753631947220363028683300468859028752858824542396809532467746038740809472803517828457382231127986342335639951153680260248283036948516758417384278191603141687110912073922962496020835563287247081434061079747153572407757786121122488813438206953197532654577000144382832222714298113087539697592701188396638546657140299745256245466817262089409712686557210635308598455146343039926743507429776474274544373697283677246006699373684356713261583152535087475792529069674031945949969770265873925786107709599737958301658819968085029946320620647017672511163034031713374888190357941340726442308946948497772916979847108730369104866166294700656184489655085352763907834360460787717474330254029284873982278734661311980351226042215490079947833307250489545115707952160969514245702753790696231025258482147991960684172992048952921664294153630754291937166444884449840716371676725744764512031638229917688232390239357743625335042111302145542280902269421642175437561969038986990231363998469751407344249582830818613488784164685623051030327938485095376430904525219609361239004430787824014319159825792719396636373353763876769267088419791305715212484446749592679463838213697357886491736944821168548877319249440370349133180987362489371386595500179601122229146439037715195258480779145902561276914501439335154667101685118334719151985444860957165912620896701297131305039028757542443006794773925696108636985425077425021135647154249777476110723781920061232083799043911041975858945964036879518371027863208609535466541591125342967196789603721881787479556917939586023410576937177926589609806570419126756147773944319537879737269519806289299776283237471471634362445614926159501557251169257007958771764992771558183520649420453208239372571716928320465914724011255589861228323077216020955881122086245594470469789410121419182912798861954439188271049090721873359023144228825321692907593564721892319695473905642165972750543526089292376402849647020072929552908840933347194416672429189188683810512571795186748362983720934686419951204621530725262579980461710918269312332569843017403607738095535319853751730878441814789186131308727361643913863345027389420514339248650168437965717797298304798754509355232055918879452799319914502435076749222388897108083838601521262056508397143589222570438700953098310367086924225732545474929601058318451971395801025859966732980601706881312298576132508967116058909093352122352873549950339533201747545541906159417586888512827761213205653852404191924016495806313589536646975246677161959081436877404381253216967232463986605315731008923592978200225238412944561356579083490739454839380031781398858968961953344329709641769469411775196741100430949620894479063987563735693432015258982436671296942880679600801305925016038139528484390428746619819384133444962552561269108893680355066532900271704174858628277956167397272409131937453254550183994681138760580793112183812793355056852795605516709365934561976047086794964622122375538979018867751284515442904100375111802309623052769976104294004832003519353077425830693765632826433560591573266983712704272858983418036259128673231169926216337493325875500568260051555388677472216953176482503470369554186314948083142224567917036127105159215173655942631099890830544197761367014227781557345903226968621321197575016987915934371323444602475143771600862770863211345012414415242824025962023388571534365530688969548372551635363372008668528405738506117635100637484621360149467393749828870093410053579559483624994436330498187657642513209547227853725614429400987928166115265205286343857541276567449997009342196517558824845025031625485158115551745368540432661331878730648077267919038036233602144639749654519518214074645830600160130110138983344120383971619242138601120622371053733424463127465019499398088751941296715253474977701716784880857879435132912332925422470609216227609934997444210352366384116054546472131162718611328589338592143197647657401258687546914578822639561875909312793549214137494672573497627780126494263230291332786286314331204019076481783936999325354565966043708028382017199413055678006865108183151457381283153254918169725404932816056169432670767865529072007917027554962383840970038558147764163561623762168029193085806943453471359091527774973874875082124561032213699518956241884612890601997173910076750488884968357793182060091586184399807117382250553336451520316714222515133397792630753532178269823926887729782848513313546035340314393670827723604844535077321043023041893986164023764251582638990155231150575403987444880496695796064225463072228735977123859455004430611542685398027983195962447764868329524413776823852397543467895951986151880809406972961210756193024894945572533989070255645214377442213911309112121927570022145004123508958885590425461800498380531851087093691707552220038301127919550822788364830296405929528479604788603451497031417959591188662432034860800097600607563845275933823631681186197929514410652075872714689023831022630311302694724486599112060390027391056041531209458661597664688916067407506620028970753924716143126432354463021497866349847856438859809354902316283224265115079791674303138209439275002665082910508462019211203072772792206526921511055803644719004982402755946651859680049551903276321723895725272970257274599877957524446648703956357870176045893503375254597445833564880616201701047891263002930816222491581296026625618590475447301492743169549928758735004621144578994961259684277370015696439335039212545810109219074508298527599018719221082313596457714072446084155679118712706688482662359159388259960789738489169194351829237599696377614924720940104509971752055303990158257686100131651811128633140545256065757891162268292390147206649859745475374553391946046750408222577987805489550886525928325222799465165131038279039410185840757847929071061787460851705820074175370090337766852342843316506613810320012855670451300799377499066695085918905303939996423055375044097145206122155692084727815969750602754758429756690392148238262707324990583159128590425949433121863595956731766739484392332856926700862478869219319781846233497583495408418269036831337715634877685003869559559337153203028332699551264253668020870509869493898660958001627940430754592328935994453606555232189926131398257836929101117289727854169800876499893660499276462010526830353388150067243634005317728259354870740727389483441471525948383693346163617393307374542442510812119557016013491254212171306157945225068671629836252775465586984204306220656408033310837913773739776321407015762633082469980767939425030747527517319125571367358810606705530902908691976095005585658869255325207205668241386184760964839036652433002863340347167936415132490868860165581923401513136002434196364760126767696656768226678410209205081269261013328953809537888181894916054133188600961839550165485005178687267826820247068678478747395978323073612915259495594895896482934888007049716024740858755894558176916981031445128614600687013152590328904596727792105324573730173325246479524269492683356380303622002436691974143431391578205087717086079063261509988487695197473071829061130839055669179779937697657587826173257879885112673975737161590993929183573597593553810603901833441980975539750301722811455104125821666502965038217077451640885372046240105222673216484744247140853446555719254047286113445290661056723327982709532248736560423781808277526699867736255532104295863781686874700479281168326583617555701777011713342112193286831242336792317738824983875748581271176091870380283547385404194649718671936878649894483019884631180465852297031439547083884348823781010768503682899323018492278086115322368893531890086658678595132397488721205415104728180800491635851141689270161348120187289160834042902623616001019252996483057823452117748647183475986179474781243821590349598098123702646589158794476872298950078787332991966876173288942546015393010469337368602100935646179134936421052339279189976922876203367071044081896467516550598217082233064172952883823779183031803223777905138826405891591365706810340139740720529910256092293539659045167016292878901203940503754676117207073748783070178449320691807626281613210350361714008414276715012075867144281602440466217661446117369417739914454432668534309002167077627169979481259511861429252921822593315755342145694243683252308481832705280800821652587145638428903884319809623223578955210708544606774978679559430171968364496585135388450288410482298514887249161925258696755980605332516859897294117526602096088370694656337039809445154328453658179034716157994806029801762637313900532691564660147108222967392873341050724819197146825738951319488049446341842210292207594709840006782670096677280347960191922173651786115792551025107150435979691015587458323113663315443075928053998833595361814182447267229084811385897436116583495443881784826927873310365171323630075507117126713096833351358472781302763719033036642737994750321928453521857660311154402787466470451344647222164416704979905772696001296032055595616447041651571215122846506089310442559983495622328483882994953426883356883462432619698532270648821551653333759543281597574817677372579087977820522197291523821274614459138941090950066426442410988799893465209453982666167830340612649017039253570847606560083746192375602970128696396517903824264861046286701640618963296971969635944799268501405798217774988628228751916694771912258057366799865775843137199616772294684687855453370023261087006013620956654842623521348209481217520494911703993804938197230530323835320792646740159831202649646357553312373276001429628388194981162256825818013424985579330162922481840172532641592723624208076637450997449690973784878977977383370025430286945660997765699084344802469477730114140723972470272935096090424939254680280974424979417230655141085894605330134862985434419540440291600089076890622357805801967896051074795053653427115628618650259159349704488965226064438617587065759639461288648920304000563146365725414664784922867640422751290315956530107226413672440588016598914327944292949805879448036647511779184097440043871544438459706226634993545299791752248127804385566017860411943514215743398341186210977630950598657574946665077838531343525275662495584000620020675119674906066375773521797604646395253357902163780689759794237350269722242353738473058687041756249851987746841595876298986177579397018688296999982096047716951736251658005593362636497724270787370836885680983900600652559742386467340098246931804944062849230591556240776291909416497412313038878533085258345615579114625397956272360255529365444779422402234787130438051445148091125722252774001362012162900958830399037746272063349121038806789001544609058570715637777872825587253487477723486727371199303586315375317240440719103760699017763833791564873171731428034928897547812050840941591703794039582433795073332374009860272256534876193867369377456015730853208971575130280491155461107096757893486787752632334341746646427326770065540816565301918766876228036239563124292302276519995709341308482447156299924297629708516362603240120289033158485337265823563903434395145278541033073347781495481760224380996648060256273228435669415379770849421665306816074479389795654740939864212519166991158565573448664139899205119274036836795418356725407548669838993122908756781960824816185927381427452154643688552175372025064245889360377780108201106789746848960420570689258739307322436123130299257851955749463301959843419459843683849598050083277328737418790058503898380980264679251140314172428863294619498687175976987933931225974009619414961611507303391136191614916786713590038946276787410210239565123622032314220654415553416715804437088170649712683075597093006057170475319472186815959136669138629368167130159213014817977704678824440324790646078601912697641446839647090351306590494342034395839849551516831645115669478291338178390539706299128940897245750693657571992429756051760205194917774620959579917240496959130576050238169033708480148131760924417498057349346425695477500103901779354092304803074614678165721609774934830007380976570246306360449671417801890641025689394795049373864616299607801013627502116111551477289324647350655630498946682152802357650008251490278673042275319181756019069974321678245464149325275170369554671867765501952759840939384858321135109488095754691791503569615841106047478483465138194056390682194776003810772105681968488816945530840346543436428360748635919129833684367467875762116182252686427804987794096544039067991857621723604527008801631007745336280215844708815200557642755078571760275438148296538022595942759265720026611065326502299848394556394114077544746601607685460208143031102771996525712264484496734943737058954626271894479782355514100116516672354612200455024281442340118451109061602862269124173729323757641605328827851746183568036370946204754421410872417954997780781632625364539066852310202972001992129301351374237549965796668534005538904983170158941435876952701240876024742530198787707327794303017091110392325991907257900864429852401421632436511834365263816794656879760916058767286750389726796185398688257001449131977203150861111436174274307838707654815646983539457646101703464177763464773249195219218101276160955372253819220533320334319286759536820258929338204638577096611115276169929880061860173588634600362370044084111805325352900324289194037501052753338337985273707220852438760588718508977894887671856173355356712995922377436353553304109656260335531164106131339107072576960887503420582836603053029059351197620987793013416730958694427974345504383754429145136792188764960832934053020200490165551956570506440665668073926218592772897571060074084717597488654844164046790901343446895867985497229663166245575105130598343959991571998790017921834395137739244495530722632893050548305555348562288800024525911354011808164483255453674326999974246859508625685026821626779104746448365263451801663904042593196039378738004548971052379562785220592325794990026099072345576813158121815082985743344299623067074929742837153016596585424531420349656914579614222155552927264539609129880458995013654087797621042443517010946504779357905626959252841164460023893528962479427023788999384156134170794769454572291652838288223008203199464157513065650957091263142679371539650325735891330220876678466293575209333957528411899570213052451310432578565322340712341260782990181627271391664907983929900661536335424064583047759017229942408529799272460227375866699651624461529642521006055019699005597774186443147039837014545949276140087538711455745150403177167129769298386218122937361733960333340871030929217159544038800508680283199975593593257683983635092021944055479079708696565440880761128638247365940886608264794923521513031080512995977046682368080626713960812043678161807267416811752901244326101736241513706737864023432331866069693195497374305474320629560116132051520631855445368427590526623504895410634529348160701384938733728807079626979055922099058783909798149607739084222160909107306487474066465045691279645229992626182511474420149653820527661472768872324617857875242049249373488195122437571731484858776212388123893970116958146188627342544358958444174735310575404256050253373985377392798669512315578538559851733423764752100286010187807525979599555459583217651076383243387139988127113283378006276622931213058100190951738135686380250695025572660456084024768584973368941996011352922728949839334071491093220290657908166125573940586057562793317045971251583354401217276156219864025094377577858855379395218115593113152578123103498442658201805015755413689744619553239828992758012120184503281482179081423835006313899616783431602982050967505622315256294738672374836746214386123228464509562952741500899135240308287934131442748260317419276055263032924357023211807587158007039255864530417946634087946179966637878551347374913994823170110656462067456903790592644452208281581561568036230252884007702145843557298721248345017031342782969163291366757995225223285961861842467212647310919473872168447534567089688380548747330777256923705222613844280525152851986796731377001904587261431137598494275910796619606731823496975065840740259417819854957316900281074232194641561326459143885106291879839572216271992040172419062405647033478048447473956877910206982619236983435801805505225864640798726417949829788412815105187035448407543615725168670362259117980157279736826752934853818756515140374046716869958404173753738913870560180069543066604250510685973562613134402494943663075746329272487726795218867256514654606034766053285877105447482989699420069286158811163656284981414110413852695879554536458013232708223057567691796394880152919566379467300475099184296667751588493122831662172123830515256643690947032560375046703812878835214901004930793758478105198526691892549578257111148768382812046341606062983592889943209671910859875439244403389541287702379162819690501142204422192829137216860269999542591294162099033071501139700438753861900833126595247745421135238203727974957366284326013775829657177976894272022454846477788699221772733110037894479631928137533086864742101106447847104786931940350074439935139256882719017901131471455205742754678528976385015258263214672364361120798690157221129918730403954263910672463398061076778959101731740503738503394732040397132009567378422697195854521094673499326106237685107645391685784200720102856938041054222275667959131475997933074657263372841144881657437551307216228414272886050960452915434834293415295331978897990937131712797847840395600596916276109130383322451598794766634629045036278912684800962529583045426223594997268351315513294379073642296810109627438063221337972233380511021689544391417291082872364792764029376017723635502323801723554691295711091433416497296228691543213798577503340770271247319309296175234884888290527907777670990145276598855605287691034982531034437688830016665417720286942939011335284516896317099125343186600059857010084792626167040096933847630922588809812477558962385835067946182898029211794546055082155216377856835596290239554330500451400474710052625499562361829358134467204015019049380729940177816325401917309933753771999067382137763001731046974668271658778036692730798583203940361993233680287838177235676925563640316866177837431053925203527147497759592686743268672630924962665218436419735413367446771078539054912767966536910729381291152964019400708091393785641733450578319187291500147406315165816456993892191851787207908951383221572977358716035274727254520589384994844763042106682575413581999313781552057204803142043300371533274109908294572736169540173016383515018065838260972292163549369864121348051423112421330329798424794735467492685677003538452785912083721343711359799864350301226161785524078505158716881187113771722910777888540824824602467331854311435119216754638445423095376036619002673390749886295964721483184173743302907659681739459596613181812592865250120525948863414547515588357402790185713058733972817298605298368646915346016847100594193451826295067468507191943837620666619504818999715062884322205303139158600996110625598712325613725401955768412074410428475969972991240670553744638594716762726148374925782041761482758777452523134081529281796501221706555638386215347095682771462250133952305168489460543455886433283050285420069713533465803256381465575412809300444730839329822231317228417312898936436994386639174365356397087117368747412371748192855497608675889461987952422489872245627057005002465545826674238248892249071257239675969888993129552061134861035309511060912789613470459577119979765630322024050791818824097499028043141064288853141431440002882798092352929676754411881315287360348804176169412931881768086270710956530624495972891978853239159991474461736673146857363257063189365718788636546868029361496030855188117928268475321640753480344473404719019373656789291509592811433263530579697334442259922650178989646437347291984731529570076910740616031387663350722856735080989264523300152735926446774317725405758269159409942033738858481869371332811138019612397414959658687604428757976822386504153404910643019267842119222091439803860996021846921044385860178762186463239645380556705146451494702827307860814978723792952569639252082267672234438605999457940603946388169985182381115551001458654179995442316562428781224365666966562821171632204159068320065048841820079462950453929793306056438081088428612866832105437914630714574519109716676254467201642202502443617407084515647792331064765905022535222981545519976603926336320331242263980211112817424664148678021575491080398921960047703185824634942220991117666073740402843489898569975857551456358855393177454049283580492950716248862093509636587454050590158194706542551327585090293686653837994267166425010725684852167587823577267211750985189155521276797573501474323904037767274299048791291433085053169443591461802484156364026298944107973891381464527936226157580339394534298621905996515001046366786423528164402299734194065090146709526911957302349459665091928602888144954337820684700142350953860253655675341564782244839561235035042048918671588563260421421035032456220834342805028029655444082601337154768695825897588430059682614272852879624053319205852519344041724271569105041298731842874193278685425718694581616915099393078578935488165237797664645022282190226238145283442245151790652607228153948315620489622968859957653909642022311957127614819114258497952381506802949619649913723094460638050972134484636840970807939646800233017641164749737724518462397115094999061861123540090232279182053581175339857427910023772078534342929193482053889668545499925867170180029933271402413011948255660411253107870066377445028801269421960212123190958724883596664308581120523175344553551701769465247174045388859565256226547809023499903458514927286883164387526424771359394673765906522867446175545325243823479002916173165345028231322212698261518275519283699901539200091447311891609609315670710500383291846891795747060700050175655550921313333750240514520023818004189598077596501639970387332896052411850470072493761036976311553840988303052694817665373787442626984846704338083264940832456922692129687366385463217610505901270579389133762073833576520284550196681635592077782367021973578754913971115187083290023809563112958601848637559098881865821962018745772585345119256466412909275712637289462954112562474112013737672071948322436121591228362494742600337371335543862037486588548665056355756455202983857200775041031079857589865201410562974165034756515911019895984553867788920317470611089311033365589607271677047083852059301268135381475526802917483011249454067159638711628550143715263436412948956016928103093074270595427421680054133942062413131209943513199094998305178231851512465343004174031188550746796862813776959529586790156084398619198305128655449321020654422291134073541590814475620262696370696033374764834654963759189310628576326152408116587240395702589654500081595158343604946072616689157150883757599230594239757285822633994022418249286395617357733163609486667702052225849566438407601141617092770048996287382630754825886661597078031833666127239867683959430426531573798223900372597944751159073460645496825982231108289077654510880072045530113186553713540360414435330256196024336323561632781782984348671463989862229999429232894438672505446911878400099889167560797881240867662909634875899687666547930347057298960195686374378583155251520410173645468492325859242773583467785605490823196715049251830745685519797568110331970265020266058716148202916967577753112484009785084162539406217367343143097506495384871193269903581057993031505421879796233568146518218002448500463015674086414261479015046634936897632578032729448457925998167896068821023763638425788334328465461086769608629941479477566744452879974086743608189178047060449588218271645560420527473164945598560444790934246382329350425807067988933523892113340124140082171586297781215435756131196561421826696863813217078545574509411212344187528159114391622458708412111514633150088822293987776664979451488211481220158173838034089107345640928609386352695631474457816769496718930753096090048221073037686742313538715695400287634188538228998544797298617903880431347764708030650514539610127131348662075194804098306470558204936979172787685374118702127722512917887265676361251376145843124098169293281226557973921945231536388977801823581208267936486791263879777442123497643054223045341106263859540750811350812558518116347562711714316024637535904445012160411447515260483902303344892046017717550931974786847425719973050436513795336732365096532966606336267344669193971716742781640314403597473287633087554295680913196865834052507787017425206154696953611732206526907285856473712079463963637867544694649095330029984590300069132332746588794375246512063866232709372449354214961530543899326038894471954751502763966050020456509777480949444122773051369081538948007946542366692562719405490467775502024394696998221679806833005674816287926693856183898405449287557753244368450364717829289593568338037014723815666026058236128132287704882478158184253065753655254194473041637757043935724765611798788258443213170586951062529403160500886816588622881792630985713658900977838664287344470459867207716434746688203241370447402069267238174063614403547002435783707612899560457501266266483105948230265446361595161921240509169815089395005313212388421677080563267198086944609162485794504907711748399435869378815324726739421779004541023021818042426633630265915331536567074218631534308132259314547994848890631546088516248874797516952808488484015553645669859626391313253383955669112053891176593663395542675866148607862075815436832345403446527224745627803118084360651742630857617188707832220264076103444204656603868246973484669903646919197325092802781366630577648351545980901501334971719249275286325922780274816097407567014381513043074075466551653306786823097265231331304004677012595901153101753397487990753844987303805452019441455648259101417443597127973962008494424678050600797100661074830053015433876837879406584210789910816623743138601259780574984324900796103490797283252105562778647194986265200061810188444573659151550259746310551270827718718620060190587839113072500916940579273000694313099608044682382800129663536973423551183293657122183716221279154279750298107329427461964069533016126700307078398141866940498697137999159745021540323279055312517839684322324832385855977171170829233470852367010492427761886776195238294922432896491984092968733267164964384957566535665408817015317959300173990703216002127738631191646270013379065871193378827194599640238692491744136723957484567123395622820964451735432751045466343587919005920780481828156127626528690532688624194044742357963192040729927187900589761938706727971232699940915250328845403955342918922826401460305064591319494793062034341050902234699196274039383484652802343651721517435376823126318842382618588467548492404902326327903744880887225729853482796493280185884758391767062664575274817992621766807350604312982445875599672204686265925658094390912212290225662796171896456054322318517789170806016454661253214534881230404689692264224756357458894120755797806323421699292907686187357000449257569986872165664948414831163752884463140886867369553134927274647938669900007793916836599335616791362893569752191044579878960003717357395803340592246771685745137441336076750982120958502597565360974025749849474060823788160976426235212241401241869845258047059500834486285425021166450011730155142635043476739914632045330206334421834854754060599864085214058033954996948539279433532641873381382175537031204843060383045213000395842151066355989523325865543876658677129913890364315339647926982723086783420311843575919156660621383391413002118955645111674538940141577073892099035638816935607595680629843943344438262363931741900098122871885755643827163844725628630517710103124958370097933756329646550833356223322231775942408317778104408328544745574850882100428055628649776595593601893639661515912391366725786790007147560985567474173522077034018957808850026068605473774928073209624818628872911536484783782190186397299690392004825573791544059725571562306499546212630099411869718167142601872262994182939641062762232406584261547737985751750787160054247617824448333962144292019716070495472589926552202232579126983154565164028535408163387467452960544281583152269511434935883245349739259731044208361614493072468504841810220714711554580498425173478505367471668964729531241719060001702279189222412542513475252328916835744639467588200831044451507944697395838340068513858616280199166813654411707228945298810987288385431250538483523737597629052013180563860069261153747824420035640357662139117088883437376036448745954863520680476228883165133630446505449374589573565051212636376233299604153981689737565872637177840467091919164609807139318812796678957446536874019287046613858947330314787423498361959830595077779752566801741112562115791907686133024514837353360066407697375936364906046453386906003224573055011170182691757677449889727753944852144633882891933856254746331832852207709995908577793474768934973281320243688515234270531696657400607004456809962452513370034097046152631676429126138543300887504922019943075246591161719061500256257900428192892384015755837948649570545325931615334902396444361312756987910318132677357126194755350537503949195615546851598135484740035848563844129560426990024608698734281249231324394568197911434169006809609370184368596892373105809658165814528258983756529953689864284105373682470630289613644323404768456600575608460925441656721832298033876490636586821691400918271017575740689440396993239355558282497409491087173813587551568853476144469138146259581734426362251441704166575846079376632595847174695094518586141683710240934024272385720130137130055167242318830127825357058971862550262824622486174877553549441941267441841315792333246636440043228160315045595358440818855250761878216880820241056670588637522924539632561938794930286600437170376249046923006536632287590091711715328126517325940432219741982538069766952131319007625455616151828310529860736900791116790014860196044504498675873312839343927206452842943797366895654959983532409773347789229920055031538232103678629009801048598025785170822724534952455927585170140323530520669382544152178378032433484212358648581690483648571459507729351819177630843538198048558928979908159169901994893104106594271120928207244875002122707751730589013422107498179747433313422733391680003370013290229591600005022592833476571787365476075752245835146259596776667165262304383346714929886950195068010182687304637489010930293484655360133197930959402653719539635105876123680958891036472966928109319654730407623049838010927728385479453653150351113350052660210104142100095466361823317697743412088971500078858508094106050729959692290878483017050288221436099627692179439313439572871578700197322169626292018296061414534477684678440112075325526128988167552359496248337226510147312431433664616263686570419473678166687659596364352431813099413610081552102797414020640326092150242362297511626522738315468954913845449667460539937022221950434107696035778352087785648486074884018669495168542999290690387977699797828483020210086645552326569607618914358039921887820259016260522682243705901520936880421360986002862362593919823453098746815580486508589512344142576331096125168190069406286209527822434759122449093837688147045411854195644211634453254736375504251342607868411970706464508624809388799891654105777077519895527206901033038507360949705362180525067372838552292658526597214735716925048947574431244924997922726846275736697011661222433132039211309482740836991903704642365513421194442248413960469727312378366429520263105591027096426536537705440172630413905186003628781168068389250708790774795877172212526059854073655191039662925126719018210991037395364158599388280524648506334058709159457903702104062660282926354795175724330139232602996078300087428448995977508309008182538188165396123763503143445201655604189321029264114696357450280744734578154281332816176705493590409592302152122232317910743197033559541748255115822544962025597667507133810439533468674770967752453185924816733419334097413073246828722268994647139090674402781895356288439951731431763947142744180065901740421886087177718992676202874857796908921689763127127155120889100000356549662751161000868699278060591469925763767794344989312180623735392307241301493918395010736566644927833485973682487129637301607291585519635918664494722438616420595058655356953168859095656472572028993084423057968932361473796080750569971293381852177552038384997160111630738172110417203662255763730754711333001976094842120989521229752384447132653921420840544250517544415456498768643202111639167797265925517344834245534368284290044210584593355593651411035090344663769005806611862175565914534587633889348267437586920057878034192718907497956474082163007965210156829042305972444071709672957050613076916262163026282914866911988420939687708991633929985943333263170526996442488586963422071553241086531723134539101473635844639765566131911257526115106800664657176948510365521101790270987962235263344041153181159307998083409791597385205804996501212954511108557386029644102317895949948796162582198829793736691730687533659284568581320331429334253827745592511879007011685653089033613270678930498862384613184138278733670119052485727244835403157841359503712905021711443152398190758893414975879376019902534400137057301986265318489128014259520213785917771781616461968052749908456234042058295770003088565003334764717872495027949427569617279242442161418597980263486413850435060801448631204921649250824880124166779510094554926065029002712341453802832904926524971459845116003937892183943805589976998676520047481956642794870524691256477940943747116406556612978886403373434516493963691556249213597753591030977487246322422938226720989391164229802407084185529680822383180975884153422022649501829198439479254987931354361379433118641767064043981734585792293487917149956331893684939901464773107689027673297231725399682990638894732548349651562974106575451200188374301327830286152169777827172288253868100360178187261478914816069679265828864880866532820315751133164946235292381095149078390988481578233582317707104876637318400258815229594749762628397610080249982287555488107177779490424231331858383823107838682006922957291250777686791662180853618772665539133853503074864857266534912532978124126110728642349460302145550678485394143517377635390252874441518428808620271441783873076470333070030714001531703798534151058151284082226112573130530204731060154056409818937411565937606419667982957866895870778957178018145199423546459337388743049649299570402006485649837809918389442951492092485558852440257846504817915579731127772258284172002348125578042591504516830146014822700149164563929380219001714772614786901854878800042891086685605657925814508441363915541443316929900106585066236420856974798583835043474499322677175562766130958365778072661143419983399510823270311213764607426038273785151730728320063493779405328107780037485551102674504186948114893308893880288277549433187111085996251102266491709893399349932367111159832820745866034738098989363638201805920472667991176472325248944601052287622951096320279934552321377971097465119022238398610696248799229167410782113242581640391270615265636705440152633402118142031225688792158270519931732871242975784773127511005847292579164035814620959779316650820010700661116960433597269528776467629353140609359581885131180194600212811909426546518066762146308891235667539932887756690520727847317501300554226260314202983516124032908714955558205992629447712234363657100092901368458836479961234760383810268606609110834700140354500191371308249357701080478255893372485119068821086769302818737472308314985566351600220344134909197016462902990618743241283221190259668570889829423138618205820268695192086893996565156663126714505559601234923443935847734823012080586099219214646403032753250713280200935450565908842938877062220428841325539638650369917323382671721140332554219669898901489360763550099156535354246260119304931257639993891774229189609241557881049856164599859863069994616116917838139223686104458303064509653984480163186827961764811292690352836960371425554318348723155281718696776696828312165583280585979334640860782190297300559015137782432587179459234001667409287966170448258060344581678183202958665155377316971930464378531625216275490396842877086975615579893441926580632187097077962834044742095974017968662439958361197092241308762611329686742524657211462333917586977091268549256276282816620080846233197844624173719857151290876990457155655770897508684821990756560903993085574908147189911765003742967947924718671466631139144288045332306265230303718157531957554235739401403066567266059857698514814530278938449438836616534049600678310213351037780719394691829363272485031307512528285368070762171171007532677953988043083980226858302127690651643095056093395138610087705879046331616454893242547024867432364143092101441926327726251448411442018309341909940150557690268628036830349869998047748228444640588083798282952604472638549435021535024647098373555233325146612951797684730400678226715771369513966653197526582970008501986938941030493786031648341464091910072974392152839795249486324422379074898793588681705528836756276455713482711328153831594965045461013069474330760554270393114394667115955298873222405144719970431492673904003307969356429795829037434638505043633988051897800378226387108500048875765208203503214891887104641265965357023558935213113938775172421736148551291608064392036957312701442022094313735742780441986759664131796210106727660421396993346205242387185463644991302513917889114052345532552715965903615444155034577132335728297631704935960071549164695354376567552756319936503916878883701846607057389357993029387331877474109515191781850051386692686179175901108775863627756661745708397274975402328632712148871322582006798044281839182383790333385913392120778718942559615259410001125519103142597961707188564638660043343162434399620307276616170791318513861641713715471392906096575309748442705902781845333958345372424152807754882696645121185489007139231849670734856362792603620150542726538695627654463078792995278893211648946525769194108300744108399727698167186835915967500174199494863460374169915840992446441524446993480318037891468471030329970972875028966447527378410942084457771442436742453046825647809159527597716042541202786337999327494354559453920399480678107330613327017513345049721610012509360545221344922416095369087301689482128579509559881764731087922962041637956806708284961439880818756969821207588447023293884948497847686169732563836437145608949545345392834322857764959997694278574884602479995643833425613808003706334794783831224560707004106098682002391260584072515881104669836940428500680452807526732482751933793951032103398321445463234885094922234173265156973425606746388473054951570440125719677000681062443304580444470782010950788623799017138999670805587806708758060572932223349653027189042775396756307359714977054620590256405349510630637515686249521014630261539136738761476963483482935929456943296855209615978462059853039494958843473730773467721578635522391591237569864670512998872707094152674384224559612749063431176849829079612945897441701911882406129906466331922373459725246607189514562164189180382620329218484699915194139937800362306913944070106110313026991067298446022487416826581583141933448743093746628251596372232337134028097181770997531230726770993001757434552233764930517509161104417975941478159370007100990639290896143941941852858280262986685909382168235548695488610832113218998594993962589495091799039995030095609361998764213388551278988919327691653986459069942514106556103959329372918204681031562822924895689592115421906582580080824563233438323875963216975284552349903104580093698439424979920029447594550750651210171282351245715695493540577135150190793007235214128608175614773097365835672264102674914043150634098377650747844417375435167945244599194929679559489382469486850067006689564584647119902345178638925873213179999157403458480869274013387353508772187420071828700103708324936772150724287572917138169904843309264578808730558075833736959193727090106136741732505494070185393505056998368227450210322003051160300886769342872090235461076651916246965023084389282527079689281109413247801766902831390295827927844619966916124702791521113573808711572521806125932610052117328719628517294165423148957504140711916272456674446683411968900153115384967756542123936363843076605149046566749017128642329716714412410733502808169693513666968907772335578645072081079881750860154186529325514297938724058006317395233701320544477960276728119374120284422512867200328919131646563110054650734966807307271018355382353693339907252883290912148837947792237675686435478636362707369001168353285629992308961645850749984877362759087627428011644659810845551368067412483937121525274343851680842254190179596983034089387547393639387204359007366585391242520311305826901926996937001723947600102132342789275507612399347165894847973395642263779509909851525694402685169338833385625896687052218363436209737820604662051240501971268005755707872203163067026114803436864196901383882749633257166369996221257218759436611013437019829273851099963664835579231598840139283977362799871082994668241551087992071481836610121145536104655936249652947397197928755248199274736070240464793219386413075332113013340071745527727171695298966990890976287646709324758261690947629321975804080416896489086204151757631801982072296502908549481159351362022856680576787480258644454696522655790857424058777276455269698489634988165846640501485791958823777090036982754009787041705434307888937675978753172744823368350574116193347663532706025039788545047613043095108415125096078279324151904450708724273246097389844026648482787867946631452337923882275501606098960740076664780434295022203106755251067965795370413427452230200521895173305491560281677848897652513630471554460018633501125558106730492914936292484289266714143840410011956107451485944871161994255526278362211364881867993317004747113307281938141930089892120120664206627813699744610607447246427395199874749174662818610705050159749860250482703818431704502880837172963488363962890133358247009165935634319755510653439523486184526634696062793339000077640598686378818263356902912661069045650057022306200710521898016498917954570352766616606077367121647868152246427118937707665649849053135210869711907782941826217459749366907151637388378134778827008348340944735217351068937471441127795868466148405664227241546824495188722903481649391253002264494217437988394854401600110066356809512192516485173198199186781615619118134825131155199354479822447086588341484623844481374508113532198117614286081552786181758073316880579126378568667027606379494780143849148122884394335179900968304372764303297282249245176471651378599724109299554430838075887643575602035542123856843701002747442099324405199839641369139970109648117543962279705199515705587900828638224084224128054353513975240832738873073536384761636097909470711577929251414457799268488229322030957385092762267768663272962019167486014482279234663924572292828959226590819725432425468724414704460534005178315985153850015934358189841097255439191406306612485893130894471598483816689097418814164661375636827731261263235459029166513722320025034005632928710209904781686307099354067390382528820190666731325193461508521081138652303607672181209518367334573808997871933359840029609290339824269534680108495036522064007355534652715533962747516795433163186134831920716751944867250370314510284286226983927979873969840460185422200951100979434212684053168293637895832283858445725212130453696529440893808328800414160048343299428444890557551867283685666125050474256350927431733481298272158484598626318919426591590082045901653377843896493001525124554003912398093462379137505368893754908301691643739408313546616778300881258789691372279159954340331222006922186521125380341189843751943455011055828355450162320909730560799281470193836503612149955169796432305668603208716027096437995311891410683352130453184916026713194824592158583755362948473153075616978578440916617677985574842120840190373163272725731791642039806032294130063820582419946733340753605048853305915758662266399816391790776158577135118268310793108567471942466068887393543490778236279238232965007891044127978684239072376550602958274932243249959257142873075003850271448063637530753972992293602666921842330057789351112023309407391867147762858830028901096589299180696784176030584091249367022007767855253552196105858468854819063041362190838074806520462107735458533640574061907202529439618163199697366486286192086354324831305292881965414595227607148318425874271949392623895096203221149048732474390919160068410319898643854046693783578480783163059467852797285586763783266452155465286417946151814754666897835007424401969396624308456321566325779099585948075154881488698410123973836281163828074638791101069556515123896373230781770942925671319909123991767140613165464003553104046658360393182480045198121655943559536717647081576077211881586891491418595272179602800370144540503275730465531473316337457287305137691388557816562425208646966311267560919779140885337272150061441413265943079424661243704380445243130490925029665843611744999296234501709133730620980439136060029688067347155515028778125629428729561295381290717818985153846672806925130999738955491413896070668457110682509282447253008976504102242605390507423383681367650773208460341479782172464663070917435937433683014566564396255479544965155469391514826903522517408562925896518373460569529966052369713327823719135288231093765693412390549699749271709374692522298131498390512025463939399205271677079858622836519990132487195156621520638059046930493922878246986967660498510523864329194755023222059437925902542072852988500819644088076264412607226678145643050297927426197881554227223687690816921751659653420830566899810904750587463769415433507369602435907292094886733968714979449144475702601672157138855708285091550467069754380015400297272820991189769373681556068627228994456417095519169908185476629821444279966563681457328564346639430503449591503098408226178706262442824295805875927366534167676677719710552172505132949011861210364259858453671582445802895593808675232441748728259790001994046333929847610569998273958829954468104477317964417813186992199775853485876067909136184099204265778483340905944633483923285128053380872489783706192615826633080325704382047924656452826682604517822248764741846773888724870846396480236051238801686753619447390762743883775686411667357448129610451132861353097420091684775391967304063714385135116128108570339148191334834370766223182582443336179837209032107540373835854520779050330811927198200192225252462124169018478232931332677405177323235965600469554880350858134913713450411580637725136035732041315439508573693689453106541777866735665264394577358618830938647402972414784257375884057798807473409404153311242004071876672480710872763997727365821802598076740100596621764383486717563818760610128336365213752557971491313391704571418617432887553282103228568630966565289038935632437685603693186970580421527865317277090528366784633287868799561335523956852531935556753430399028023462134656434215509204906607072166645350002948641002861853381684694707557298948796107354032142968176287875699673379303491980093239250757511719778532305007865634460874664849435331982701414608660723507208320130048184558407275684428107301899201223927038538241823935575158696704787179164876421048966581216605890288630053579324520238364469285102499046511191136971792835620891975731233698986174494958526342135257024831291243643195181108751458067330363247601885591378428023061678315811509160697024879133243701000000707378685219097227620679728078159476185260286088653182524641686721573990259994255229845387015892711637029740998931746168057792981457362078394749206497675872034161261465542985904745884622187270040142306737723897892413287651047848472029340202629675850190824329633457230226037378196418156063798667437115616624185465917387422362524968108911199067932410577422232751274345103430246599196463592531927154864337614918563373618968572278673943075431942511253291638261946762806573745962464795911955303785730385028008696235163362661204748815854798802746318220496683720628771834512335102259857251107820144317460827467943809230197062746391737042601146673027534653613699039758384100407185515676734683814623343739110355725085333991830935277579617427415079292523263055591217807836966596217149525365686243019781704145255527501841014569653258773920908807441267976324605654908572154045973507790844060033957277664692922738567811114654327797548458510247354489362427137293059181079247108896017387614469067030841158779207017736507343446824027337359382537284198431328498829087697894781220240236100080073962025956881813118402185887072509926091716879094621721417763777942427869332670793032806158587878292445021456268703043643578495365768153375841919112765926358972425168672077559268763191869419122944524457481121534489730078205211612750073944286858093080533227393354738399358550424636932779277618707385426248218221028659558575412519237261174380341830036926935525802103749993727090589932347105014984826089295533264631481328632840904645171998934252928534757669915244803072987300651841968620289359092935158679459468506232433450419015054218752647847449733677855047211117847292862120463368547701676247551591135758870985192461571248563790498240283468581512784416814443813482470387548796960310600714290144162584857760563895273472167697484539164804657743976636944330778380214958503320411961838722582456382238909025688745679112589412900426280384088603709507080573902159291288000436647181092050469032362228518238048682506299197691837191500672987938822988318125825234270350830943408265929721377203233827501883551327981652235318925298342938639856302195574401411483319798744940755655855869077558115123180846974754974633135714715245231550916775826549103453005729235379556313555898908557150112250647043346753715189047092455602135596267612886615633498642257235535969509307837937665477394516583212304861218926605282463813779370473403179857017844564470376819830689407022156769124656291507117329885958885337465464942187447401188868315015228802652671292927202095857872155072854578552982877077915583272961396964522804135857023838471767772973970987086756287596963058427737782790243635751871451749568210538618681519731547693196690599772538959695225573809261821637542062427585578512035492103685303164409413920192632506222725656160518282173763649487494737432377845724140829293069778909398099122271413784865661208248459553899699046107045287806712003013596470485253484059372798733818601504028778091490828001126238959027774473137883831022282843577411168123426271853280639772229756392596482751674613044000762488804124111152995102551053411186435859525895022627134315929008113427507657221051765250259532869244212188367476652480820236764234395989058408754343389913927778629916877263357217864356535715561338746766574830862141731120911710956249224675728968966591971560532343088375748651457055630569233570011798015240986999191855723886008380605487350022122259193372385353004593876989101860277525791847263714654448389724143712429444424797113813430118576534279689705660479741125273401561157987518021410039762098785117996794002447618156464761101315852665684503336040730420372170475586132174049623893375384996893665943952384891379343390086194830188142314602158115383702450834530508318608567628762764127709089356698078906776332983978024161623505967166929379560002429331591362997281949816111325261385289948361766553003466288241252715930275226478135612086821955364355335898926829645208891550618892850730848759228858745269843961631600332339911137570876876888524541355077033498432189649629120943412991186293980414428204979984784961328626652155518300007237921933576257166290119208326663938373358121999685666644736372570879104875602827762067133028628151530912814874745942710406386423373818271679444481143931439631170424850238546815582062415689293315806547234266764357026299828567856407667257043376810972144494512420004363180500029367171171851509928645806407615529280410002811466076177293016190878950482360725766792500211378084288628250544682404493429136206342161743769840571051461772379029355783562517128638014371613719598435373329388867843203364763303640266194302875082821154033102682793289497269909275317065804545438157677932224617753475709235223825392474473731778911042776853861683583215899102642824511021183795503415128594806690271373604180596899121298539935785667494808348267398711013453593068098684400977595864125146010990389900737305480865285086940751061925130870677342706473191394714333446483288051449509951723280686642479471836625132264790332445692764986380034682434830974536752422152175085833835854401411654794308806294903407474842240129208827696939973306856721270157526865943776585303445875657151988145705148957605486570875191482684517620308472707778667300915077346814104167745876659316669705619997917825823127240944783555482560822812632290066255306890036513454629102366034531176407709541422421049201178746263266572635106220969651471654657153510646732835356730663739864235747173980486406738176737164190094100726272364903239734418847394046420448468860040711828359398113106060060799775770914094781114264921874721137946281480360527547684002246192752245135967116796259820045124226486432703584683068674994506745382598977143417535058066578134117903394852608544730745505266988286281060081033017396882734587031612673351472349920851680531781577525177927920907562521783486899335876047893671710350398744622695147158356409254780001876843764946343573345063069470750996998333321873561206631892523526374596080203589857553865882990876499613745696534596457436027290528561983390546680210102510360026362549021531443955008728586314460502359172910901572943921195867580008843993021624760012550626685846119507707029990506762700500168248263264876018612193060587653213973782542159937033162259880627258139881683266679548937504997050474872865757055912690610059678977908926032147503831453784800246640912086463104130194696883224680655564638835433122089874833806388807667913300891801500750271545315329232089791062775129870793377942297503855404998650399459476448150216550051749500159810225355861220264549665123326558315639205259084380690364551743782649176197097512678762237992806609753452059535682043121738489635023853092764892130092668034891562539883160917426702689217483472514922136154801903278695023887121647669164694524965975580461274693264307732500913334988201011392103376744064662721825553004828212872408673129231209110315919521606492712741449068083445071524447740030798851053619728074048995537389938273984472255637389286126656116528065985974222308801880958016704623755388350469828824839599789320131799963613712585723189395325399747091890222623291217554621595692268811062450606372250609128003103164945446479309271131675183629849023394493163714521734403192609404757483726917998337115652883656200690016719278355580063934829853984716272315340095569319562924350991198234769836101357741822527962410572577275862015676164533318968415306218410727079992922492971269690923240341326075391132916389112621220112550616287779424180361987290735127201088998066769487471122377397606952457364170781267151986026433169139540480843560498709993184228167277562698826251942536170729305998814304487337175162189143693088563225409489105924750519891194784306376670906317591433751854032563829773926948496982634320505434990803019082090647257107380217319122419762396804275988466959354612062467808693051292972470181229070279597623561388580987704334185985399279406383345436872606172366803382298919205197433871076093350983183592745754218570793845617687646562478693890523545196441462904239061905054497101726035692233229605627653454484714972603721841465441659757301814947470475863568556304919205636732466953141686534511542741968544994055566988825560136574160859266736495281540115877145190282274894188676224902523070965120876683008402569752607720851301004154137858514666660348689399024258555794353929679131255223508204390580608989557235690483743061627536531513276555296183945796368988978130362051527995928851290953578944974897815701149865090588410510068620401288627698652957501187411129134156271777695381253397062117764464202293794553461647185377153013125328879321845059963474039634733669698788672051796885480964259430933624493401684940902109777415789003987906547926093428224771960155765271506348599211210144400044585461174337464922797980345576368787415457437203486387312840136171274729042448058921426582259400797570968281579593934313385692363996629655941456628465408207672804989546864599941162892356836742799359140531352366482326333544353316232699575483332849321277711361330202128288463486984738957303647731173041247376519475278129206437162334524091056085196612431073840230814296458752785597210886230258702159293492329439498437490776842167343393808112707714566738615021425936723365928228721805000716943495181005365120109588483141623171484856595164628293008154906570703011273900836566891506580468365699181138821455304100783772318132324901053970931868797922999295066604132688424555065377794604248330882869940184580336634574488209546705625830454678720593828460667148733136512230180017585027979696266555383879016974730303323153908761170357938771934536400762067208037684312729599079843782509556034200530110500796908833192063838554801893401552795677259624392897037632751913404454976153589797172450574259163879956256920915783333392769036424649055758020391258624489400608481459739153623233835599695625450503209578295412907484895360441945220628088824527781318950700249480236026362044609738283004047049141889877531232309501346881969052397812945862240781285910328425094777859250379585104800764463542064252799267792301763594413349194699727962410417638531610007565202569221724966857671052286359367974851731311805001063311394328493813231583500049742256878307847822238142474001255613214438758180424549443548559454265723682826323124714072546225671215691771435412364784703513117047107003102275651994591939298777608818958306537125835627186256827037396072792234191866060976454071530934187149471793177706361690657097751483363686676841335935699192087213412935247885392308153684444298247001432194458614226706909542190492731094577900968448545765703217731367687434451816771941666372103593962007990533204367956082801688691458031829569759243562835458158692498193663494643462972901992664802756675529666035999503086317157625529497451839468588947643701194718130148139775956732394170765320150480267714501727579227921067351788656143851184912512261314746722073111073279270162626298966987616342425191977224002153173544094917928901771787294034865131839882194037334118389968651637293590117251126236561402707484463371430245801481253561316432105195830429673355120593122015558725096319676832627023349664782390941272073910285310717297049375757820651714788244791698425050116882334225330582179127598011540352488090518236423147274755918748432851429143980381162641764326705557469083577340556076940251128334110808387881385835937480152356679996368875956084455828545967003699764119395241812911260585167585596596971246306155694271363636092590531277466492283741741868709914357446736890968062575289643097948080196701842663970608389384421938890421174082280049393349719402026976651960458423438429854553866996078907318709964303806912071577234000938085787872051633899884800518093701287899498969244989407326173214729679418604288267854783793549379822953345724430758490861226795366821805198843784197033880362293977348828193052577783554310207929965778377607310346952475264890435055170878180836531607086473697712793209307223918763529599136293070529854455376070756136494459271304685745758102979249698630088010396094514036329428586284822179155930257395188427317344693056583101994142175815279236678347591659691046585228303713609833116439069758587847930882915018481936786168987527289055926694606857370881852815220586782659098753543771972319858294191555954402161978150578765966208458715928145730806929789040369924616508271904712416074192952653983950007467583886346396074662302372555663821019601571794747001928419424004377483374742374310072392981517550092552838136014894177797151454496573513239322924774872968034452238256225891177968395151322846899066226766319097785864771246937589650760930106668856293816239194243203272581547323304326545890629641882787184314414544547569622758786676918603705147229979747001483881735569911327681204657551467977979367182299455324677547999360298826415210944481001253890195375677567239064531670592960308259345103396975774714077679581679466946609847108484004906224002244323383561532004495994326148075715652992518539436104437735916656207015017088542565792517671036106182287294304882273238786532564403776813681225162583841385964472697816257541038608948464826021027368535332194136516157265534876110741643805176523638835155217112451800714515752465392477391903433999321832969079007233659006553046325322806970936075025078206571939771825922429606729181652759357936274767224023152667256305910099708945348545877219439994567036416032151801228514201056167977902926655715626147353362589857269118150892458538271407446457794289121349957185721654254445325972820299383355069060537200954689358500623999522185844836844984704325949691423328882131931300548853567881884015895717116329575460119995358042890226387225609810119435591010503217997138466917537405554977803047889033142681978619151776407173795844841114014166059858908707746720827095126336654679646807568201956605507027626272608042128136877177347721343332770171241997614726123395184304201667466865777886869724052630354875398444790536895511771752160715215163512757710866560438003441884283725664215265046795579834022637312812484170369773694180103416199263594594672655611044225119102407770772584391454172187889684661422441751606960573019591377484611963972434927808994891460758939246436286491689810599841426775490885892410565675149379719609680463049894538703732092851613375779639445593672101397382817928854371107395543448441362328586727920065308576204911391901812562143932686209720059674864141004445887787891438718631032973381092503771370756488893428811010349662908394638844654131774156025166386131663167404508828946970376443080846852992900972568063613525642801656649213903233359863846304832055639135017106756131235249914116747391670668287093336477828754634868005462832889518073290167423388429922646000691075329215740991157626251549041905684708418553339999291739921898760200978402873008768247883120151044512030981320119897163412663340329488147454407083470334792206482007048441791585242518204636643133627180093373006182159190650823172198254385098170492643569561664954050232396584366179002056157083694049994209002154082066327214307801770941254911326415200876441306725709247672242707959870608599313201063989898401020974568607455747637078017892171870921699883798825125780005391151598573188569246504223535601193134113466574241208579904153981368815958344932082153494941614642765418391139033276101927632331438822998160090606826775632765441662114265876291598744653159457515615321498738457441940541068601933858359619563717859771671176074358927885631455314404755957748109016097777126237380007093224522832286451145743043082181392098814226221562996248085316779265461476031077862316643949510891419180945139344772636594890872581530059816538386626220514589469125087013316007926464672871031014176563805141416305209532552040178184656046501074089544088377940214724853741984099791079401056549397016907647006427310933496627442175131357286248690550908308194473309444047436003860620168214691778737858237848081735693754745897025494273507331253622247025668599872118852268640709354314979357077318439012132849090062148869050287953187903570345125325450978874448546642016430991124522816729786471966566088478797725778461820759039172458547881008884567661785269133359497320204368276079530069121271739880110026271082100310933175236419248358800122511625666953943163871359898104071561395538951428343508022581641526776875923019940670138777380846202441578879981736075031354382704898124455966758381413051638724723845991941154179434243448323470627054671654184824367401176082929896474363369679028557925609820545205300360810849897700027181825357545759708068577128017875478193294801552115974892679853883121460200813816172196490200323720633822809556339244697177897363146929641185605021534958460004754764152882054796917740167828270199253416126675253329641949680424759483005102795217534026570216244279304886852475516237103262596298362453584652649886445318268153354589947076594346736678859022479149015850781344944794663218347102929150505283259046903122195205006872365202094126576620592787339912417573912439498662922685123999352520075412710067956991228844938615801294158910128965427768655655636440334738170313594431705077711794653653169461767611318564827772673682844681475767506809598814784085264373791917737757198851949487826792149661311583444170791174482267261307531178441634486487161602187705011479315773823380041849201375345480681405834832638847536046899498825033966483029639346747961129046390747496374097044870624983728820041754832619847089013821988657616753978674193070379915732895466526124030102017834505937849772214236441597631961963807617574666746009496329180154862782887533339886632276439901392496535773215024863215705933937600894195519202610108888212704302137417257357909884846947595835305297803251622311888903613288586608435069135346711187924587461478399365145581714895818619628622764293448318993079255575111979184440595387334355198642957343648401443538450866638946063974717292310071388024091842489058885497956839334897603932347402706688297246471456365143333146883888049084511844107294985534248736075722625640525344213061548312655737475548909130016841583748833721575358306081014282001622136678842079879309351100005383894685256443703924657777170020190667527969712119454823427676799331002590022276264476855097641532209424586393386493969984587814302150339073510399357706133415146123035799694604708768142330915463882683073909084489891147909382126356958416636080068001162530811341629968601252374869036670159153787083351383098791551500596588865606632731191486025476171298281117418284843867320079698833938059394583318040915718205927865589044224168660155148460290364640808919746281559125935241324128575174764238294665208928344003500583097028420008607207468915073230139669303344540093464035856830132032137750031374067140006024065767911054811033389596918809575228762833319826893710775643009679149656717210752821668631907747756732325918267274792631454142407147495657203868029284514816697479769991349823106649288365763568693632414350724741445900798010459070858675124114501880149077467142266011451419117570153192936305232772441585110922746151359441121601460576267947906735053109834521880714467739012966357305314369333440070526971972147964782663151441535218958141662668839040160511523372444485778512885615573316960322133768660183103105671564095183174673834765280638408962424925101408060589490892158547079231798160786578641790286044031807916537456925270114491466661134862360785691873096257541895936049660048044608277180050599246123867744897015011518363980669002217217498722377896356292168918732771695927949307284955958372415793115774848952407291935904421699906149036063843553053538647407581673084506141842723528284682340637868659490275128461555335134446949729203851723747210815035872417196512963794588457011494761323107601377159836379299652526484170642107435753538233287646172405828925321940843077190964697797150161143791685066386645921836555564791247294246101597643760230838375382600812969542820970502060537547125932137012606172623326181232130732657830633969012465756888529937589209871587285172070209460007597039418516769099181554110454539735000042442532705638954572016243377325659124172383894171580424641963851466673603269889377210892758895417435705783889846451530717527665415341732190192158984856957585669108634486367570849201520373102816339196517675710939965527562366522059592638046581268537138294133612894401653046054878060040069142701826807859034690027583342189428164629594144732378909668990700528856074550624239411203668518724480964914130845703259896560725089375929793943613489519679095675636161384570229198678849870644201422028284300697313471533032110110203454629852822594667939512718281711746649478181877503357044337425142195853999740873406327444220782040556566561644630928318632040228297225231046264611833884650031259769278399116552011257069226663133336414002326009622254684969400751001423366850889142027255585688418672031135287743653073480053968243975913031258246116480657866172313324571477607779915141377790779367717595807155930240655999736635656707258884176541597632526969269430619928553255196950210560004719183957737272949560817525066345537457214823674360019258749956625064682235674897835844571612162609324877108840227318865705758054810340590699979416425717429037379099378585812389619322270946506837600672644002282306156481963389417061129068112965352407929385564588409027193144158821219676814856721194024244950087992940628608134435552726022790333982522816851536275459050880219341743998280166327861257693933903123709042864018719221895582402338249885953486746710393163680739803941210105561115240232148545169114485114588819846004157049148983450585171229670859337320382741211883053271874108375263664745925782858789452584878977331334446602810006808357581961674452797799520715246342169478291840118915182154568608118250900253562228075038696232392544134253829080465557762238595713411471006221291005759310601618609014825213761221890554392274518187726549784537689268147147712161854712654112032792537809862217863070559873171315022689338044632680977479690968662941124998111686844869418121865963072552385020496621407415063485244061866546410382619747910607866437615233647498116362216135369016830259811962451496213924498077564726018484117731916641880644168079150057053178486870094019987575103530615535611657156662481673961165201413738410773774997675765676171297422916126152628305890968877211738670425974510019609430017892905274685510097063723928652818790614164509618562138317029674525601951890229927703410924587014694562117846716563174786880202713774499767719257165289737617349159766893652228890696271284778424323542780679211677427767599113911630496634562711163433646967225248258393142703453521517608000027551045884524060031597808257953046557666948620007806378898308258850698462298246627583558667277859580813393017163918670406073352893577390207508594126003258975110650836520746941685820188418627765623586446158642529130314929043930835004314183832326726910157727864114561714338814566130873332118162495721682368495110404263580680048441426739719519086398761066711309877652579250091593331999495744069067334979511619166113021684506309954399381902681417766103906492830594854706070492281491310031919667790779718690515499653770304781471349004013275765315304509341584171784193951894806785564997025783669761680463021934802421827682368020498267672231840760296298844715720039774183110091023786786223281953726358211538797466157263182036408223770985013545321610117574721543519078340238317105955825552660583027537298175231690087441104661363521947192298295272092239996319374340779711056564693998470131814087776155287416133352704714423091088905810743337748814920009779210145614091853425574852257602350661505103885650281994351683569040433337452901144605284272834842787309598491056900292307398701861174902728431972410244884154842277768402260000245974280256088803951278034914933194310922338350707552814156382574183748116917025802378603351010384270755611646118251932065425125163362785304158012168681324419052324956908866748703281948546494195284826654244446237779972456933527361882691424912502517110503853633063293125173436352248591078574035065851119276778227257671630535917040234479163400199606649298293042554153508368526662796852220046369506556760329587247940009691156851399048726849205566758525390550371422010955488715859975423189101658436970759891856026503678276227340611864157411858698479379661877096877868740754724248993522379296451998989874850845628177398788511192488898783441100397889803685313574495294810584474316913064066581865058373175879779387575271912012314007716895622514155341159229019023376345200006209767065267851326940914620573699366496774219465621628910209865908852396980732134405772217777305343700512959421866262629234086347986361831138741695710036763249690286005805535357212742324385863253520646531721871070268070842251206845398831624970626651135288149008175089566972256612120416757820663197962996235291368057776555373847326482534685191644354701734306617955815987049571967726471223943071357204460589300360810960366090549896076421485974714074331160651527100619372208320977715279558033700399802779263748752009239033344056857822319984406444082998054923608179626280424861816967370559398943314143891254797735049349913012361993681907536325040529677789031136407545001594185151700173324296829848641207424143306274238987147579835815694171374474222525658675490202061951555372046853452243394455740990680767910372388273546013087844211101514033996226420106954270358729544496942494003982121430045248566734891872230697357206096779066127636127000633208444019223702215655327092034201517755867068690245427028808565681166860099786318440875546780921143819057661879166657207483592038006520452010377335051375717694479045144371983579797909152208270997713431293132252601080148797323081871649954979407358565288194988486911990212334738257920664090914744077073205342947824469535386009249967845269697780914283969005578804602016429853622610136591046717917116781511763169333701817027801274062923701829649794518913121772662636372116593578172482474277045234417422143660217272922943900875666166836812295176769650646278018095664096055914976555458490030867553395815597968320924252913561614057574648539657275181294573326844562210812545825722584327898009672383786906392447095779839831358522941469881691140698771688744330868996958477566100400887704944982855383537652186785291780004228543526181176097206128066603256355292797998263471873409634974177714094408909458105683838807929643298699344566588210316062348559990829000504586989588775184064306956498047132415764044565713122181635975605439262751686382336237737651001384181803693166373641402039680278525357370746641441360343962805250452182207045327814413123699062558051995429458407855197442345351639491224531173529558704255871472378281640630300028269649089870047635224079774683538001353383619386470547150367888327369649911459710604621022091826694029233026422003764852737072146064833464929233613040608004163290148828319683545966036369380141276625907407467545372663547763142783946187456807003442065273655484927012524316189581800161131941839126975880225406323092762951611888773893346838727235364701775250204945909690245618951937331827653255321126030823607637795274031603062259833329999843135926677882723248019263494252156290606895341510751163632140684658994099487353320832570226409536842010248800503343212727362013321054930903869787258149111170057315219295619010633294014439350167228744380515294992818920626813983514712948297930345442928797416883904668144214662445150225996136070648399285049609735246982823094547477791541675855333452339984457774619243402919647856822350693466547751297895676382313877162846244386900459065353274941838977556207187960037418765429565311119397188861292522591442103955901041576746214040158282825131530414908303110619498331373571064589888215309839137055229447974988180860126964886353378331278083475564577273937987172386146897117757611228550005119592725072288108769680814320492428185303165655121276730956406571816202224414681400494520090256124973344046012733774319986369540738638509642526827500703301894398233018557946460718230501091541994214473752730020157028242515943501412533143727681517820677200785541324866337942607419472618177166827161355438428066845578963732372887456557416929023291426440417953244718506957304714292190681920694351658134066813949261378083474896209856802343826463054939600599175930955618293634827461544209585693712063670854548384319814253045655551278825387250877941654541795148693099603120273088463291096701236274524818611900187928965488354966024218620377147239230997825494716152244596037104516114475048508978075711540410379673886371215539791888341342897538173257000876813770680196574240330365567229447884205233012589551689976875123570047555710812717879270599275710091202185086617668543290540538376286245563323301610697348155265860379806511957499668895660247867065097171285068640308490973676590150268715872659363306607686470756945652205362057081966350106488957808492692636353356923523347233264166692282047193004267446100570967044611728096490954907951248514048136385468547250488523009925971289001824115473742463895437774025401631080119071713725097732971966289815560990071436298374441494229938919169139789099136910574744192871547758061414946832749668269368352530457372993295613673330371552062046806011920434728494680997172523583915347651094042047275900673718909370159041468150104339357041461727790593425969780675319705559853209139069188226579446968817919946660692686367316746665332396622945866762694920109222397386069656717929362369363418314257236359945839312142609171863802673844810969170372926821790437956478165969998041480307722511056720471815085018602991152625782721636134869158624981180442982178278047708058024037148884062696090738985047051476612158489925508643055119691900121593311822885067612205113365389832452330697838977416777242320618195639112327560168166586510103155507574373974780267981426099266074694095245316346673726453142147262740795808219492770260881242300267581916026406384502855473577714194412686304132398419563713349537638813111038999963574952050423025451358560168529516951311869824479672984907670561177509403502076362524158378829829385404540298966797369379969001922102181493202814366711787309305989645498422672905568388028513433911926449451223800968287910727371310702376388845400518136414101633965053950064329446712863761770578295688589683736050000383109056863627575418960104857691592502251920538818988203546101269305872839434996298808920568736027505301791235110487267775144135678696984598718614123587022588964348253076059455600986348219350715839517414375834086957414577396356323468683253321404053237234030529881347810779643460038018842892358725760586156348511966353274497565695245495232227273471725126387584336273635063472076442695348155343750707935493495806667341874209644926901626559606239226361387495721639518994055343228972335495362923816392515002824000253132390966768237724044348292085841943960211564912319943005678535121082166568582135520110310265031832465478663632102823560620755256486114897296671169046070431228746820654260548886380671150695896107438159205264028981621642752203516975207318590511314491491121626676660421363819823389296817888811461659078770578245369104877693720428789262786036527018845082405894350309989311295765421736266281826531708594315630133580313532831815100474983547351129308800351522345519532186291669560951036155034375764071367559255658155136043041283957462354298098024576383136778634185830912165779886085004880676847991280671322383962204826057087451214093527849195435281823719629906610205017449889040010162390813640666485473811862005849315372746608229343762993200677397240124935091138524696826563431447072718004616471797309863167309615331793764910158700905918888673119042978261287148096072344712122388573321871387789100300864047746312124110389640049285566820329209842912318527251518595224143336541874977664809665470638711716942061317397095449769685190319840044112155109886851512711166947702595883003578776735851796533189657721385232349444269174066533900583255745443580288881614282302560079348986944928605595437612512855999236163440083459186791969709221661172320279583325085792179447433332373386523365955899914538506482625661200427924035631006466695262004112750961845028896289830738750263165349173887081759580859909321940827880385208649196320091145635675986720901582083595913835920823027267000638510695377041004836280267731282173034834341008457125349024030072172786526821342825407563147407243118241528244587812888343388059136202341943434644592129772434524499350927511563037405537215129802344210477301885164445753305735850497847102344757502206618162169368762409172101220781395913080700235219873905286036884328108993133723947334107715279022882987972530285748782659242501306870103680580265930673813773746557548217092935678255586087929789506933465805175872998384078354109847119707076989952402598601822154113915161024467993698795671308807774246297079187783355579642338458011545659671243874104391842269748617469585324488674594612728015436111541222120401285297098867119547520436104875000591035120348784581244606086266218140087313181835911378926780524023955081521450876662330552782411910393330050965661743042862913883316918942938533031749619176296371718540615405699085016506885011476984274269298457707411162165472862703421121640078494976551781439420979049920574144619499473979938477372650473356125881047602082471829407240725818290433022539714896645255242896342028048300733118142689228722952975673015422251426108469157651639645502460192379254724768524333190965840551117376127185588290677039742702055105900993984905728114532783449330483648688707253850523009828342832135227765683286924459129162547175104534391659988545137836466381837158840001584938311910596095165254165232831195086948689399108008319338080047825974186518407393484664786889089123079833475974656586753617072492178516230622574445414309923555015961713919950036002656993509211113525901858298940260244451087227891356137195561312110777826622741772232217220630777545191277714830475996994623477313304994811471317117880196081821545401534440462846448810370364534732767623757742601560779025116345519945687160987933801166024949265809038298505598522655924999567698569990849430554074161122637566459179508375224942902987803130341386058743739414647250262206904647527976312429045910538681041395166787674770075676380528265356925929140645714671769543622421690882683762136430604822250389522324363411576991052460390598874472647741735756339877207866815256864093829400221617166953133567404809905898100046774782248957250985058656206118211110750089612586917484238142738757647958622753531033392802868920862772321037035500351238795808681063391474775431357714592023754495382160192657098738412443944167015523514113178406393008342749089264487282075617010078378947767184973927865664994296337699065937588514144171533513829468246606197081359087938221531792227911180890390804450304549028151871429939485065059911466010433713388885992844534833564966122371718273934075729019962282340511366488887813745172079276518940698809302574043901010495501001882683230236708581039445375582285215718512289957836593128225711865182967766466871735337037973043767755722278651809573924353324554164367804103933121882581429177621809504804306440318593170130625435132431931613221430888914456546362731919149391881123253240369373213773383526106597363774720652930963034410358050427658044417588438187053905325708010264574396937227576243257972436510557082129721647011480037878447157462632560935919835253137928657982404227101439127272287851019138705674913543181382128298812996050868698177454249112128700714029728516906816909073531243861659479228953592170997785848040002829071384526235306050398841319799241789874043469832425754966243947737089472115084331901043021270024973723493795390657831106915360480647439989944328064904433835487476397874274325207265489817635787373551036054483554567102926394954836404071050673020202466320438520317228921692440385102164679657673446483628469342791899211467251681451604134206263341512884803524787000876366629886912256291321816351643500857797649220490136568050706550161884313520779183813500720668914537012846636773524899422628273476881939882092773084443610551025222277170786077742046545763960619942512601369006962683708000482482174105017112534288749788652026165030843887882240515936465060252551175380221797251816512759138032306126638860402016562365019074034295208797317395161123035435471049962210340554717275514769020555296661953364056886402217747573583560980439626310335760935627259272507660978756481257545709637398470718598091937822644885787518493916406316101417350426768595140971458216698221870301110360119414183921721561397166486479240522120015762404789646969301495394606419024469423312921428747770502422382204572869045794212777769879788721732030995418831259380270293671987373894419151149284699868837224885556400651499174439605721327268058694527129947958342482722292263387369541171630509852172111624985116734808885848010065392919793776173134457443661288493895408722873479502225309137827562657656701874917642027411248694987355526945566178521809958260194759072356595805758271965556672955339390688624425948899074923110069084432503559484851652015950897296802981043497423695720475898162990237008949838393668456489978385872347826636328787662417383443570900273728063277670481690568385519399356742346305909613746658056322654129848710929407891343967863833551980930106322679655562042076682966512997026973377442110268263066841137548356278328975084188490248409696150128658732591048921049633877693211589696225157369552168741376940047253385199863521985961456038590637850482429379132051389950574745707425173895794971813801727866073907436903177215430985065351147466868955496099792261455885362208812315063235001539311325072518280072466586589715224026236313826580241980608078294421468875401240184119594960570389420685170537201073585545798016591848410777886102822845918394026413475457441984895066578468346354345979554856420708223234027521818318551255498738497971703742987295248066986141831263000135029033163727336887726027073740324987496242759447313594754582348640191506834292242176324079106593444754723145870319865583518481940406908896131431363448053052524026415917924097371189078169556885918678950115715397762154817986010727625063131622939095468772053877565134995603890765118426264590003672385413984087044351491974062369820369749247849961526096437987684301180560543005493244329708186270366922018745276459587778492051675396364770499413220026290645330680212934359042779614255810609032482716982756216740149247543466964408346393878879795222141179630748089614816635194912527490739747741576528249231097856215374697661557854749696187067307858243586514438174536084146851571472507695468425891172637875450765921312768022578091098719203647850692535739964680101353193386617481484084217201123857952732645231613949948306281031756410526105838235333222749460397693881606891213491552242074190726090657862833448909612215875130760027693460254240075631827981710613559399764116809311829055173692725284729153651637282762196962073013493754579139989230557646346703519786618227908665828149400472138653520453771767115199204395561879759045418306065226964012139444139639309180040865151261317966869815827779132715317010236028417871620847243367645542136308345155330070859858230715845387414969420325303945209266585953136544486663456033648727552988277804521269457348880504500015667410182646628780512143675647974220147602319199902897896667310725547832289463044307072919606288209279955650578060315979224929336700604088730773471700618582895321186423337985313392261997408707000298226191084599043281541223511334385002935422901843399329798519332932534424322998720397868804541187360703201686666297450089797826490430519807571719611010719607456130676666113480115093615930750662266059302657904931809124753888152909324259151661088650902033122675057934109694688137790300399314497079561522064411959762931721790664909966355403303139973939886520689191240813490314239084504080686781274429340543311177047301186806994393530683333839703973154709162672701530978218085691281301158629455790757415047956931369323738390633873966811139775701182462403518164423976051393893583380838722643564909705547012015892465702530539014140373787508611117007533472752697230241466693118199814992655518146226549104130552067961069795950459030923188005992722703603608425454221109925656239852019859173056800995489108890923577260545478046922201014639176424289585548657929609349830643344277423913264145422698434481463329075158300381175887373943711092921269274651080594761971961752664016397604203217791350408219239576836978589877995694808774081601888597566149260775969572637171518508959453990685799120370908829769141386741900298649228019424698085421501045154221457058947203888252455979779743142494002311166132100307423254624796766290367163702815049533510198710931116534187977684467472722536636318664605539061763890873389800179753653751300297482423744533670279495712092970236711118788084004456607570561380179482399632590172758167165599282531017497593157767608111448107405032206992227048772809192199780055645820787991714994352420598151229580937769110108266855879856354090904320918104866158784642150385035170794829206805602874611143420929534099029952951188400033602843330782940560160038822033000399855712572804238349963999959900581687429384163772901295363633537603789471679890513514526372959803712945286623178505878151388399626248470784721670543003212843346232295093555066710624593165637314379662525111114377183769745971918490215670013502229533418211209315997423392009671824957935122796132093437603028358184927123009137956620501463537252329608397042457730514211952188112687907697517180824063343975288267279643257516070738570544225917097563284299027838002012493513054492063111277972916232978020512044483095943572334040109992451841363711112065253085024052209659440352589494442883673041779603184006307341025493162182767538947552083131484205638228781746028855121059283146028310176060022644685799705002344247483288605929185632434156345634244669502006264720420596810420946756938210636673755532221246501016471189465218873481096717347785709262246389769925933554234606081468939842081339336507531625698102874077375936335665182244122831860383351439723930361078479590302806286034397934652071251487523237533430249876529380660041381023269529842304396843019084776528382266217864827940936695600076352272827560876664841331260627848112594513949899487335690248169801981654185778903887847988100164575064882311744678147587850180265152446908355227164008581050084968688606267034723923421217528979326060874991665442750931777823572940101534055896093853306411351311533760826531905088903378665159081315485658119859966592558796472363416376498771920395983513910392494824642385852660248243817469076022571946736956695856397520841072192698142266863071778201059658430325829847722479241267199491451775867516192794225174540437839856427337195634345718221569180550960162030840711673797393957269482635222063775226918775338317165887457871206729510490238306228475329168493690914337714190636634620777647666277139136638479764041123425427585612514165342697925281639498993191402131466786133683704606339417216589651578274789023188065053871654988126418299074096577247096446701508656919023608628661390568630897755920776732361902339964203859922347734205333457414268933974377692003069252230052472361895156367481214340602526409459044218525463883092050469549726211088760709778118768497987744816004949888141689506413616134733728004813419781054559192163688592474586010167489762249534502505380882180137940624732714163999363136454544220562866382685620527708058468735987630459134911480781199446727146511711492192753160579189843773298306629711340545544651891431834998819256659347348143679247985369188630417239600863227141585881893379274473824062222214199609789835872426333262554871801557924491404122776372864880812652353181336419586442383464480477542799951151888753534703267732370017455488245768223295116749418167044770240752307609980862296245723038400488429830096712102077685559788083441836351404615720887870578382345912229667310583476140440327086683936243271426141797705838270504332949004392436671239612681821281736130255472612421888752387649367749743320928873170298258199449363933524777833887797686616649333107782170367132827227867534051141890366840656826611839885925337035481916180330904462073455378753263791924487221793075271141016372879768787270162811052419087301707388966680547193547627343297026851895608676271767771471949304681412936302455900937538093260778500292563140433324476954624314878992126179138265321747644018516436873264464681260601435849437657393737507161313007384851450110753680656107012776067014392810254875206506363895357009635213834469616135404068901326306279199401805942160781907658609472536375876887179571208545868213838783097853525191349157629914476716954629199140324565487416509115757898767754335400542959131805502974874784123747568230090350083199362840333298463784300522046953160390581499053693548843404910888721736925736460538148974864218132360255944322541892349588020038221793609378726456621314481756163322540500605517930671084451526956319819170603029516148670030490364477541237178784178121357444332931746931118751587428004239645803231545384261519755976753546792306057841594792604535002665527064655040165212302484064779058155294120134184537938309233949598433341266197247953390852243034062340970142450135673078739186999652269492983052888363719613145398778507174247788973875743785795200178603183703570174628723719407826807813778480771853524390777638453544137763091352798592419554649779249466572888811165732165728203598135905309627283021341211899468018744001364590578121046664400978285115192783273810017388825537299387153143716735085774336035783726893186397266020419076200917486904693103316197360732144232430349996623911079120428011665083830824222569273217426385203033639697336027002094313996996879253215476673673390541377438220167771102516742162146133859187160620302560897756652826849531936228770292765578608492972084994624870607002417932720453927162202085384903273642314865138733810399893193922113239629256063218316302191724586927292120352417235150263927855928352825196961092885416283422833159807621523209406211850928797457992229929925040571559150367412729609032835501006975660150950995255949536098179011127853908716595901370527852655510507786969679280852366580561700959784316904328523854135637289618965457254814784727005477734008867345053110993352137204857107569452193425486963332627736572245745539633634921319525036026491967331268817209115699058967677725989895852229556610784076120517722360308575467697403137082258494143966585827839487503734194984088246994908640484048530720702879885374462514071042129101356072667567883645509286708746626278915845203643412459933524958932883458438114648993606867652810066935941727983453544709966138688417654807270338456900517146253375033622569617339980152417479308617579858131955492987900389069770775879811117999525550439336246848130828761575897951937463698899915874496021479366046749116265760069607233978549662660243353165281893657676892123523084040024942366201167178098320119785246416626110055898779813343610460518641236048317328027719752346234513376340756599621632052721341890684910475034676927193926377308743854496501285506428370187131766454534713345401281317197221208561527066334990930132447498825184883264528656991529075629449358237332121328440438856478610833558180125341629962191554022357495464938119043871511318510133651057718884497932582979102699472707197123611003203294450662497907489023888944547297806237453515589333212685019643402885057958354517912511088673778720162422255984612851100516838974224630110661281730705321830788549418145281346037923767905277022928916329143644461276493198738320477264159536964025535523338207527330787387229181818385025733684763233546687231045470363100705771530508835840055379531749259857046329370681694428089175541951669079681298058428367616620129332064614751420682341304858882401375660684436813470171084675677197967803442018510244926084017302500282399537262887228879452178369650222587567084334657330533676020058234199416864750461308632379329982908575090767999001239652203874235059151153834470282535274850002334327052089265606899406698174781576479211042071358746776449107722220118155226251463133054565790046337676202906499052009208099026776288745023877008041365990900461636886264553124878791690696405760419322309441939679440729369092229035890278575590918664937488777839438585449713341522473604967740887088531220485062122797473445116613646719291374672862592801522216950318535112122472643243801952524431776395421149776216564796453586621193436880398620591886607938949125114301698758683786360928576850404678956335864970407301468239473742435661990728791041621249785955405310892347872372805573348500651218824652281911718753538535680299629205295058605180893548004688341982277499156773467842869588360117727769380137841487467533708670380313294740358396841025591882907099801217554738948304070801991786627206589456164623835387051185402574541770232327129647760439416452641783706318604692053117168199858334998672072318533159053369845898968083538868978065972281425295705275428582424384115898285533442236375284477162469243113185790424748558861067473156421314730547490403445178869666398769677562790057667272666453232824717056011045972055233023603003589319298779856534575129194318981454504350314715961067902143937013892073876331823344054516630592140622124847592836946861773117182487582340328975099897060265542734793826380407961881133942202793654004445899603691360133616939041239072722553069021622152396230623890372819305038458059319681210396461459517568885561023496254834211586113366787515281458690986913380373158265190067416590188051616691009945107925313510661521175106780426953700256667803185880672444640359722033196954387585296291099558615876882208712137890302965419072945963970024161042584145287704114844357082560390374065938359394076385012497397715100364618668885367813687520607231008338246021899327204093064313010857151615510629600345479438173158770026094951626473068545167696681700460824802344885799684365316261841754451459755277350236575679677190796349411578214992804947704501633624577333506270681992894788926179526099781304097065589356474497214353178804528726713508123112956365048664927690133812722133871452626778706879870807753507573182489638338198448794403577097732277917779179371943792946443090828750729732176912592940727610094428423191827356745881783730471118835231548569022932667900249565880261192763882013497113065541439354751280903066060050125683367967120264121626302881240611006131747457962370876556057196927870455480721927164997132149408337146546113863418857527321059166198653605332453610434174762102896450677846495800898786161910257759706513592536291088451826282914435118961825522152260590551739344754762155315087984519281475732476713455897966949915266266739201232942136904516826052944688944891531703786279157548045082978627358310251626709040501097479683449053981109104672131050906845712677975722600952281062423992706498186082846715264140110019549928141047619959674913883933558535387982129064482982313363709321961347226377341935130715448788323662060208281494830064287441236750711898304127690478058103427932758510679633243873494240606707176619280052516808395925190475467397862512433599922341594876640410821239740009721048296673797850386597448085430681877827447244891028169572952906537958822851316790324293330978060911704431418372204875103456890611225760346508853691949353011417259721232608174535338313248214122848137913730908068514220892022463202576949071014394451864784784604747336676452944758228337454456813553138101778297395553755503747560934605288723403608434435227583883991535325091448539607646499270093119959669145196313335815465292542671914555383405716155083207085491411516738884188004705615907509592896315846780287918570517865451780298575659495266792390435858767579392099829328095513276059401130951714996423611904682672023545970583903154951938962583145897493601634114928300665680434421648001514948404291196736158272589918591484603817478889282308804627907337789955846055671949222409481992050693585863827341122654334042378217339179181486385589874257054301975620046971687835599810741659915173124965018819364583132990456969100385239911218532187469472871041272613930476227099854508315410884881038675597554264002849826407063718255486314525270948941386322557516193485842000956577863483734704980520831083266862418464386682919842516982616712080472550971866860223764945864620928046781244436984659175744285646072977406704113266510536221020454474633528147032755017508643513057279549397201631427648450697277124267293959513849268692262234972660384884898647756252757368566692760180944467064376646119871887688722124602777022435525459918957646243111544614517344862327796658692659593030913232124340626830998741886319456925027585469149399350693557931771972900975687215904327359387186401566859075248460703814670793349626309002734335939313197348322652293038126188505232586090599060902593783526231300303985386264193790509612007650656749837808830780347163309759600428765667771300383349499613370125445437757973225298494780762754652985844179608034380872615263805650547578623580116242386741190169572272986683009258483450546854582477718729745836654686165801017702974964929555325342854083796276309663388820152070150834570065167859087252903977962185947878034904894828507678747821526784164047239920528202735022457711324554122244708444362365292855370042204881087968640259756373297573491622389100362063144452436260866458869883226283519998426424103815064632602683353588523155263065850657535269268407171676223085281120141345715658158654692872229862004826562534288893161397484674805537652562677144459756326342548241403664610142199939228853175036756386905354580437736562350167077150154659612921675137735340060411079225341676511223092035461584063824395091781291628955361862524229772438031403130156451841823333570777618081534880089737337353075253136567464253116597824203512799993468204718013321121395150971856164167143542309941810062556161559918764169316121427982711519669551463361751945987072914815413633833861135595582885341733770012330659609060680823907566841548282704408886570256412555152238804573956777169988574690510655046185803993362199830904675522249110970947610695297073827734240064669742787363753950609022588881852872269929148221876056565983335486947333292695626572016421694160548646852573653641269435955704692513121807526567940671149694872247250719721127381550739963489605709954364187436163997278605820296972817776164683275486077693886561453146206720747239801408187076945067760588302897175644055998159753614240604577663490056600803741432221718337360890420082522184565625233022413964607836282711252826393515983226581837684507508086947165291784891764424327570620047070569080548977078280638202676516325143595273891262853274472213501009883209757545503714491402199723438666374489745060429076458795249426952746930772427511633737456455245781994129284176061663176793322613850729024777638341648330544043822347016883819618033330176898018290582143676509823413018921702675957661306919715627369012658321983901895839004284233048604603897118702819210532004332702771577958230878843402103180283958656838837447597838666271784563152239565963047294741147732677223239256538640523964109097327112231167416570446598166731939125962285788889662575702578167340631170964957049576612021511345187562443631081388542114887564920420587367868776345538655480037741299712847001460823563371050224553664353344571144408581990323311957872483970554688533622169989808222016758631367927770425856595781693140298710807330710176970084820613557955690735659606138624854425051087461199371647606099371996956160685796852942563667509028267604442468719213477413094712982426519401494617439327469729985494463260936162117913995644035403580726208434100289632735394963105365655207295446500123995588752265498626716625059113084748074570224072887075730127249935900729985743933542296190268532046882269185128749615405850000209406969644243588821895905470796858122268903324858567066809739914456250411682665351679806245035923397226899034158414263792697185642454016631031454144237269799650883327908930234342618284590295539552443385244120325572345173137773709846338238086599785553857674225308654959267121409302071213520115471155736757664714444611985852621374256564045603875085404198452108145466070614535125842013258377191760888142227612869314286449027793329678905798756885089026561400295856909727042446150622610070049648681998584920157568395048355089228969973924430203974792132319681596707004782828734794769683400161458441498526330976758251792150024589130677955231677153863722146911207874695869968301484684169196021931786225010655964735147046502952726447192750751706080015819999471200479613315964572092944269689056276061283090617334128493092225481777616372174776612822445372239974463493059299862223405660708330627422658813825142307411152314606421367582747546358771131885350123634198357819973567751275713783287259146668232901656283303742789045490326327546381948498537063986956041327831712735437823212663532952786023591514754684725506197771487002662347632259653617343790591442544708774846613416200871802631143850009365044466768063475250362465277525236698180014111170056999173649484738494515859175958160991205587413272256023584786178504708006580280480097710268284297734374089662988053781453932992318279416572478772389755899120696305413883193717730576671958027478471460048089619467366251734166508489855122910314687783215668750689711298108481131220095812696634153911960724567076237171234085606243040845150188587378619278388461748964766368362557877640754157044930750313850125169483786830934186950794325088757421466728239604163862498280026969224095476030980455913213232044526875516172342187559739932966347828138538600676958747595683919160870729336305718034495544370043114553303599595100550146926860123070945546024908328940317931845342728920717315452349498769984621279441927266072478742389987646073651475961356373102679637445023794935861807212819021600924881660469431146022442320998278426730721813100136402527896128815808267118788787882219753322684182496409970379520308932975260566326547098461411020573015891611482627760207745717597434007417536609344337760686348498853081901657425868750981238006632510174999567150833168454572950465737934124467409137195382613026635864673047387775908822323732805090493442637232405117170500502604213230528310869957187917253868311790524370783257411869142485363689879282930170488106442057064298732343610133875786555214047986961257786330181987789830220223670423991633509927237717486688738874779032672161768512725495712709871737555527740629943799451536832391139247595238455174965968243897146900012074768183161731329831237369167436575262609169610062785320120891952656477452570070543131082380771007408138599758149910706189143009684721025478278089174658619439821296387314414176977341028487889982665543950421567335951631813250250791983748851599183525699588294156099505415604693717159543127244358734279846989099690070945847454248672777031630296921269151559915221831683402988323749457480827193029591332823448358912883341128317946393669393652382255325631200774663844696920969677970911755474394633464404860925781206244122290082918164882682442759546494291028757359972660346046082158721559753838619896616627069896450955930719687348480209093889150134299732867034470690508952439800186635812098972809365627546942449928001986215036663910058245241410919637162264509667432253198271132271105102556758315951893984313056775932111479963543009390033864041103067468009258498865415535842232504545296328232489282038345594195127082421909089570624254810164980846747328672161076104364711610064701440958696547147289775594318160822864214888293821486553365541279015610548662834712740047449438736082341758071301404580274387490020124172237377866933875622785407192843521725177178762080253302395096187777050320455123542817597444646823461799516999336992556930828573657838354894366787290022735794933039826270542528317122502133682948512154692596351724252462073360238572148934354056236493192792681040854416904242265156061486106444380284883860923742106843387171101123209087631499458031494757274751105181003464139871310895426629228495237899372814314818371773537930905831953454217550572832073647416899184032199477099553866826006071970612170826821155723357275816824048300975731952860552758927532388883317301073447370267304009981591418914832082164936278544321649736662675746429333011520029029631952336243666658216902074540327281389561928972825873531766633727703639045505611976463467675917999850285058283424796337796044444437815793590972559528589294859759491349332078902676635900147049996236536166326598120133870963229150755084532189714201245415585357076334155139729807835210247008347674651575993903210648769699154125869180638789341028907732932939199653452518917982235581594822307392241614136568580138463665774921267885435994721575747597148160729457483391144300596294106521057763896806649595417912956446845156827719242528821812130620482080450215622949504239386528163610542707374354331585765667376225040315958485641010901406715123667531541772977101884049432372171532095504656372704470055911730085182747835853777233700434206520281532805094129276418013761377220567822450020637685824072078655186960515598805513214223620081475901174511710646457322755266146557104339031949083959288414595272759187455413230346879017044641887778009748367557276209541958403612898530518039074717722012702315419777466766221817884014687779445307885520314610478590771451179033320105549275775307970720567774698222881897155992291356238773074985960375450802541905032680585923536856864396329874846777753738966634363054849361012418445474174627354572517237183590469553799573633035413434634714047281247613472270446317090158114977817871631806186966904714663363613550513089054195429719284054323953068117938015085390799263109127104478454787178123374897456653687434868730758795139869288947672060379924737360029385650548424954039097836077176583842940919793301532281615198348493569092683157866898050550069132214635830035275725194793494297795027731702643926529825620536051534903869036900998492193139205156301682058493009116889181477785108118645719869204540539282187394474686541591973844694427122005126166744477167460915941526520360512041497066698970887291777211950888908311338687400280700588693149536363107006389514470452074130546639988170091575914811897809836078418835369104657768408294403608228288534460283311322228007218902276086536110984986926008376986634587864641823821273394709151781951056546146535339274056684690011125031990993729166299508702644643900239865110068855920962055379904294373429889430270347109191218049656352854954720842577767012821274137869474081272505859538276431369508761111519131396327534411126941744278545371685609989890945314924367277551063242203410865511619383085557880838640653701129217776729365346748922332671570065621726641101296509073606990277050501295894770978519184040466106591839221669279433236419703764518422258754373633514627362030510816913414482443963596795181217718649692433385640327792008081944525106792773911229464873211891753423262285099846076526850180175296719962373123963081193853118316086701522421663588474663102289133426707030115790111984826537465529648438493586085975878486203429460437060826887289347194689347778617549101685895651002932106320584440399057607929135013768070487362087288361841371799858392614903804761825309586552564420432563391800379146437541874137505109204988059680079875802483675156619723703077741220064400353111476586959540946199125943667495220126208013979340320502382109876648830498051904580617906837843623386531110288540938164886035245781461090840048129965541407633385014617288724622409285510415409428070828180404656988105714093255302047876412792078758778764841269632818900538705554395148836822270363851573947479778521933661111809635141199683587846948669953002711062909298161050991264998913091764025555837933638962232101320633191399381883553959658501050446139332534674978939636850443123385127963744483184075384833749799060380624104627280099345642545537883909084591280688304266332618188420014276246664868450642273263931934792855960497607848179067573131441527788277618721049922147863281350377270028715841505680096565416334016660080513025090135981712666511573102877507394304008720348410259308992273418119844944640558949284144909288955995434838716645871736940872076420381867416114406392848781417055795238699107643842861725011088002692634213926737547981405205851259016746693747022359825282822072505466080003235326325381388221221715493052355093508166152955673091066423091998900508577511696575855471346512804996653285950757220316382971809187725785639574263555734245937355570946787972880244184323372119122155062866763248302796632595517269945690243237684740394066477361306467993911988266511172881261734974999575676828201087848764766386994794204977067466548019534228998066780971693245083080103886435704302150064684692356663829076180854432956670987402338250618110435433763044962350726977452450169089236538710080922416378824904172150251315826428536954698676056319253996314386127039671585711781842658830729992048616546285071007150797847225621895872230824540648544016197524431188553429289780438898015399674404735493073597692791635175696707021584216838426849250643521970606834601525036420088453008454207421541983389492253492930395513651788955483637453226157126797146413693822857288514751338096961778674951521370267535251143820822808378820744774479696992300987432509018061667607990205671495508646012561241093448955349073631271065264838489563660515660315925326862224419658643627632267793827517339319827128430192001922739802296554854478964040620828623291408439620988056443039907027043894777373753795433739733649031809884137505941695420304731957027177216953785491447178816731583759765529560243340418808108077996674072908069387896711766153839119931920914281049366051470047000557543335592543126535325749501168188570575320076990140725132104557999559984379300417609443795567821525986998489313032706278430663890487486773481391911411160049177928913372684988117920066222248378085091263964766189989672255241455327247261325774321466949166909580898884212484642174154457588480910138041758612582675792147877493773636342084802556203095119598225990742753861453066666186493117848303970787757723883696735374590202461875875519693917165983787231539603426044554218133489143504312136515078842764817477040497655477074632256542484927740831923361453691559039656280004016218085947614782500656822739710905690191417147517280176456930562490176913441261865785680248844147479471315706730065141014764772959871792709831184861054826910494755061541989675044114482528168083165636183132136847484061694605710416232643388225448348637629838073107887572378232634387648282396908000054951877804601681527239161180309154557610783804843544374233866848586102343770212520671597177322335231425238185569442153300009730830106830958943572990653607430279435636099424364297384815928410776998328271302542951429617924545985347742419441471162455475339271167896185636924975343853450122138392862878800310892832644512256821467455383017173917848231607218212025849451838593043013695356027285884085957716790570198804725406211518591244672601315735154193757897662604256924553280722978338774031110551195435860869434353797045447210151228275346843408322829559282020181622337577137786252387740135000945676906256968004695934208944690969375686638152206352953650888701772957905324451988586868111874191186478679558681079397024753067526795818893446273683218056094555526056358089574115756819373656156029084597243803752551562187809213218715567234725678968238688387283766110889540761409594278403903554262487008920002061782612668279847474258735042632714543771069400914991311439870418640920157068180784384326910580807378200179552782896639844055305436087896126187620804599074057513910710045876238571126619089562636819227063485755384010097987042619311391841735098993190418986966904862662167853857689673191527383433065621824477355902978287759284886979588607516615520004391398078102560449941975743560736047091349275720522264442084053147441371758064532040672674767347201519840258370661380840587488182823103970047671707787265545824383306927102050303870696452653900178091753701169035068265756609780612973068312927630418592394903943118327860945875100686987316546006505771201739365940440682620082585362942898364689251595126646844477279580560999941657354665174711106421205324778946501153755795506082111848715935779692061985678489585315136539270790065207984264858695258192639877285527670155371886528189543528177041924799626593296378919025231538074717789563663474824770593192819574524461906596377559756451536987365748456322857295594117518162214666695875064012193287907293493741659416410295749268405243811615411773636318333853490372435465572058789925741373358278049617393576018807768233776813664799557735526352075924883047887940302263103004461057726090435876680793821780546701582281855515193004158920794837669983157778800530105438190304093482720959304663109736658077597246848167099750881894466776346423787463406128767076399261788595579420224479900198929695406146976766242466404376324020876829661172289170823706725162031041907514759809872802167896535589576823981529291729601100284614904548263022213463232232107691100054559237268185927316051668299416975919845250860347230462167374562683469825987590402859963196662301875486414068605975564397711436878599851064795904522352211433582046951049719271946934845199325706018595254568229840749532584103990452144798036125274894589195808929363067940787593510032716639751821216920638007797597604346791302495486959559366598233246451632162534504655085680938903109918861139462005636426518378556307749963849686234616256768705388579955526541428553069851238201951605277638669612828939005901275460818520384490978705652567284621698201550585387018206630851581397040505117049299265802681446035438745326482261768895061624681338208616894306488548081539854686662056093032089519866520146281474491706904709252155800843452856279712246242567284403965997884384491837321065028143234611699493809702320711307851412379972597367518287497270915537782706296732925650242069974484508688092095209706035140313392676143329723614379744500550755374462976487018087510580364938277373573076065082072795632177861026473147166540001322700005252560935066193779809512878352403736792492455190764189385461835222358641031980657924492561217134528319300142711270227792769717568442076229521128924519005411131272928334055268494085951533725050378907838180108159529722206478998367680264655764713189713718139079688475996523504443112036665564353759051660882636304541280394050533387613670662876862224880010147711321193707309043158126836997206564742327056272712071905734837273262097799146739791563130982978621638505176364660455596929010443989492374244764512758275793830289888908480932180694519861611934599869193149278372173230662810169659231191796795989684634214137318022098624436010491700159740066881676890811208459841129162962377049031866948506383596102627944160638297534482367738054340446530924138481762775360563315794166622785092471172794075616698795512939041256983622866825909523020457138594206265400767737420789882824074660723460059409318838992219118657810491801310063186045930353244334976568945730674754355390567807039629560224683892232980098279943985359662045222170442393953611541337883786854482323279330392275518686115634825436698575241062227610179457416352586393373557181926200597859789710495712729554854118959949397127556479594944756828344807178121649207883521226121023028998279242399677426237335628636284607399070301196011677443616996179858448284215868070784463492095547711864695603860190090282749481108592041260452363623525580290788965770350389625466578466250027232932001491869788252205763794807441557231925655355686875966162232438049193764163732873078252149303271898447814714958036221674114591458647334138557113459025366470865649933061394890225269211496186404441339773417494629188693883932565109899144710083941767411383194142334043833619400303238660315314010353583126517213701879283622391931603047032694139554067952736711005725414662223074884855252361076232468016236416249680908529890845372555886787315287570702962071290323490524514709786385223075070957050712323458459516792214376289720965577789008400231484326673288063596973920545507342974036862193527197450135706411925010024180316162721772756239455597849827655235599414675184826664114562729375397346285351219852485636627298559661683929497892505170924200792826252146882609593151130604380263769987989958911183610328505350781663047573666116239470038008148356217272571126245716617810421020306214702056457003480367487130488050256683635655186817391910747314885827083833615548312859384024458598480175470950063922368167567633517664660280584058920547891622554008071441576243835992586494036410745623984897219171225876800980155338762751218756629257746979913492410578945122831531215334714289130360675652440261005157378663785020394388819568425785879400248808234734579540845058032141846296841574650188827378866449171847029527425815159997165133381472011882842128407886603186984366294959623532502946797031000704773232513485625544611313170264775470491356764885034836501001239727716190774381631830012022471274564371549292642918949494338590064410566804981476319494517117558737584156290106363459539408583150314915966151841551001042941472849707585714801814460309127428201750954273261529588109078259568094984660669523358596775469413348799482722273146406172683511052236282790584828950014503276150325128313089420467825818612944336030532506628628981223618709575077942259321210750567079200371442399543852335986670693361684134190352023670684756125207795195543947075076741794789534847534043212440507901509443513462689029227246123933733808926947081031597307678671884471377413522973048672030775102089586780977216763864574581731535107400600443582998448547837924268462679871186267494653403436797903942139090010838114025634380918896108961174056738890370895971717475090934942461274204542108784203182904398149948577859410179865829143098697779715253490596645838304577091047755944875617724219245169956259013981523125528162024973254646911543224636291183320955426961478757977460938280095563673392997064932745581467685563929344843262394344186752099928531938955861136773590027629187033503902393355150891927489591104963756080375353155881217476612750469812136988108919911533591834362767335604597801144801268923632492810546743395638889200571431276432415829107315087171093393448644129873810772358767013430462979522831625600996204365018355376319879119307182287487809469934188919719814141276439913170297038096871247438489697013130348860499950908569351140353839855955385017659389247710290780939280066422498164686184340934355205276135878594335136381963712516098419731941438107289140294057400713992688860127404614402196783291589237575671525329286290207521252734078268833760318423881275605571483301677316990929659642456855319407959549058867893064383684675935502190412893131218876051733414375371002595908007928129868093274745195215961014296473630176944082686431748464265357417134595019481992507034566785035918110354672700657887746608119234857373435211701763952511284051274704950256656558074703340669571544653375504510421838525475752203443043564954821473914078737686260875016475645278793870034400342744496313770477460008711815732321401248651850850268104645329706506719481421689151123164088128168248482981728725471853849028468614469089037286969788483707017102166263647345507715505493398372482891033041602830054096459912039073463391634107999525433673585901392203472869882743610618912695801144083743246196175859000289597926105586454120848059176271760177776886681548724868074034261971090292999422563836519991794767024136986672252855421568296183479405993476266630079672897217707772079365517940605478919724118777764464780641247636287193160669153550041891058773760238646289263264473427026302645263122467278840644436942409822580969430608411927610423001364198812430740387518124700248011116464413950205010281616730673477261681139240521630287188692888710706977549605532827929886857031192323233815858034887119037437145774734515883113683586172840463483293780291715406825745381389052790731867286602737686680866113872853555311767058026330488209461501353515423569365575221293494155922963785297401853063761760091883964007010740742346058394186369798732642929758876092291878028281727299287279173078471177088872283131605800468069801087192658983629974204844851345282311645820367821561744291433534566829397060926432472354217098659079456359586807282523759806199009308586788622440663026861543453990467079420784262623387557862614383543760948409794442217535715831555417287539486462776105469970488787317999836516135695177182411327089944494964464030350671835808347301342939248301886009330195635291095249927075068291361157379116867626709135645535224076220770804985352511764953379063477999004547914462831815409688619921749931837551789054729052783540964271633800734791569390317123488682790044814141425420306524563930898566486177459617596839460818151887962694153799046340528990551129216717733802857874463389096700352218730398315055039166181965910176426801647358437654687297091255682529889715371199295015354963733689152751020548893696367215679942563485128306156805727761102563698560813053586860233920421251798068604032341971874232563920433654001127985857022818262575756565008167164294614216552827607320451406592242070213410361320320153378360564642142936809642539009126640757718341129126224210388259977514578374821477261674931815605328268182268259223467132575552908163227191309649228412965840129944574757855102954785506063955165000893419156389993139772635485299909236128230329296861423734096998228258062585883886053670959710893850994385914339925795702165526288604781925060836728583087261186728554067893845074026026365085652037653800347911556673388951894067659806961025877023238843289291359543545762399819697563654847163358352887431556402114799179418656493278300615930660620550729480035057403594479736475993352882338977469054912728297528664165298698253982492534579593831865384938460399989694696509444808375220213631192687638304743317421612761900399210355760646185955544216282499697376885006516784668978161943040383761766902226179795340133269017045245065396793527920606457902536400943908792745672636869830639794217266840479493077283514473968836198733001076162340216131338645578558273040360076565166067492723507441362850495252319578447518982270365858117194883612356025009430668676495271519694310670702405524833128135039700345815331268451678617068416201902967380398125192118788545921467504431342734161661301013650303113380675618682072575502957967845292003169693663825294142431557184543738660529149970211273088591649262684615160660527129290081082694441642407740491959612757172035155940848495386660137003664840880943633159324837905429847336104026209428073250974135572996990222259565785582350018985342236119410501235869938892546000286821915232452070021257552684750560697462424738321445959206575525260187200869246595639778098440156978616371800933715150532366278702134395477426033235178766768340344254185663688158684149675706655264298227911092317835918547999871648917171597607937139859166676080245396440007200322950015181366563226835299392658446020689069758441284871485720229708307773508547836623292869468064547373164496236185551991068566666537820217096466571167184292433869336730108147176081316314200806728388514336670958198595185823680060844411405729163012184712373288139125521724653445760085817462863273241633330630023616999224053768517157267722108082863115658740838597808405549779006367023991828166781505664058378527585319906678824478587048725703937585051069639503159394357857396877135381507028763602617089838145450100955791180375046098870359159846490409970507905407538403337630337128178900421480099969666890374402437675041814884996716403799731210409209077906117633225473372730797144045444094051514674527752047581815462924778329652885578375532995421776585664629970103501110526639366756599656709595432682928576288259843492846940772158280851972316771741626592114929552892064200051924807195965552597907238575530362532597136898009364132684879805162817470540087408304791572710741717989299666659429706018254049685575503998035150256340427688114975367497614430532024494633634835427860436643763212149728203462553312046041833279785250241469819401228007934232919235356563310651154873989517877273623388781682117848816362864106680071578001679833701661103970407542806253499802836658997797912081043865254599688196852544547494387125025479178145124942827571273456924464395249449969327236243896601083980586227139803434380621718717710459909774716407816498002122964707966700224222641763066749074829372384869334630707284029470014691208466576125822985504429391555167732348023578548160159198016829967690413700751582038803046299503528689567216110688830502773317849790911197756392052220385564874991477458951505159930553245487349809752543535397591506502741215472138922835258721952165409916512813334178014288497146716521941588865793357544246157237338696424768953589832523658626978589338226905225666823110466573061817405665626126118532404316234886920702868338213372856768693032357231793853820429558940114285561992949526686849161201024326836023931127732894943518997823705515929985395101204504712676419277181321621719998316601630886793537621276660817416215845428839075095061343164407603897600568134698512193115967996308925742816397874732969355239065538499067450325639056736865046876484728427573594959890783895521854960846349928699239738955440283336195190979891187553840648905958454563716512326820370112194787866477397925321715020166891423496257690232923138864194308350379858527287237186043099293754342778124147152016015527306419357312566035753972075943578527797261950246528371541504028334894339097297151323253318190507827868357214187711012972967787776081047442638529618668806373982651629850634639738835055834686338623954702069663508534723008557375153441349835650420203070558537022861315831060576988764086067902970353554161019301090213932694158097350871921196950957689576580316832881712583439436763087767651472027964016578407677579765150523413776166483257314767959019055733412496891898610484639481096266222049494560389543206348592511544259771695499791652954121866916359881968024742629596027728609488190005553893262699970012153556478555640317940722126406061867262021777381196251665584417926023854827801490214692142131298766034468160818168599196427758640644684127410408730462885493430219687309530506569951663455103650613226931292981628946698268756592304739865936190005970240763123675157731463445661105769489568185229883743429356408383179939174999984945412643018902148716097293866548605355012994000617817066463085328938759320011280259507945651234445658274117131967657555475081867322154718249980192536116249282597577633021145249376774324178464450215121320029452774151530064818354590739040596456324216800373166327469101094381715574387350420587769163738688816062667798748101880322424201574642607361540396694535988237644570157636436988455770910142785467517702220257438844068702901355579419515740317138636526172909976491417358277216311258096177790498771448975988386280777711122287368657675050306751516924662043562543488505102516072453281523596378746875878289907829416057706405718202440055932417328558443570458618121165278301144078322311026794857725159320130987772016853751158840871386004538209090633548136424142508117205173110880950909418990551324873049673593061406990261845937157530088860876901356326418016202746742919016493456481182115573562012290906972739963696818690000538010708458736982184964651579696036614255774619047441689377798371310448074260604887464489241856787307799734623402619973372811509805286322193536244933154158935865773538776800388812513278555413320256345226159064565568539511393790318831301548074596225180668713659854886550389304318720026279159646716840005272005920803463816179816490225195321492159081365417938691360516303422536153691498251015712667783020176524911483760290685666273742747757332083207216082372458789044369673306002879667950841916286027689492583048918106702017692313202594314828846216570726338046127663231415460137856694179739942681166518078851711530494217071982840974135192283775982807349315084810468344860950522386777020425988706867493670484943413661745910755750498831043693102122573110791043932829171837513620335764136040006313854946944361028018438350316108285809229984342751266007580464240479096420799346620456398849389285645055197856842074522223511476487213871685844966315616906917607381281259900195848999640790002493319206266427923105320087395763199728390909141283403548004471493633867170493744439511090643526790375068461639318575284037510043192611199263896407428978215585310890399234438996464961073359972089854722443354369430676824105436731421853518058347411605779090991520740737150028556441200459364126724841830597272315939466817891636637357826054600005300652892254547691227216101797118028472798706931164228382771357656930137868667520534455844295421525398970524623175737715760794145455779714361434711261851280397453154588668921193500608043260928183363493392858693372012174381222250626950923331734526016809546510835809571346777527321913702545620617123468184308152591166335632691177070468572114754121205636129419310497749576460469431227674530876253518855723924938561414992589170599941342690997366891612465931874702151408717858362206439204185391071847086852796867800454510223471603295842795369846878101067928461088540032638855447015267491462860584594046337805019660497460607475226682268959678778675425379744931286925735483629282808445513557527543929407918021802535515458122586714958021224946813442824571251721187810432561565543944395306666734766063511284583787524286298241602455739564263295199066792047303124310077947703908318012728194618818348207653319666498756372440639885560891068709080028261054809301575870293953952139212125272264984521692610460786540108187079519595762249907783459828661952904537446201598675855870571078574306730505634278268565713619405121487235910579961944337745294298710055756937724208328355338781993121205996743638155182832829326852831606527662528689430863207325257401868239206131587007211207602240519692607049817662938615093968072580193347155373899611684064210338305414402630797127298986174874972380998219881076758073461294939402620541862280694125166672632635162472464721889510911698284416688924814502347085599775841629998788251077415124548405935314806497227052076338298252050106721164318438006009568397808019860285404205408988620110780451834069285206796621876365227637369483072440965456409478007817983493521366724624040743502922398570479514111354882285359318135936259357419422529676776551726256384850059838330187064109265531695302823057526519191325206794373217394782200071251697526516113967438140725139086941676128914277456072495374848173571801297778273840630915547848024695180575143300654121775530393840729528509407194953424489960516590357232438451791714054824208448218248195707130619572201529993916896396749364577279298534537454690601840842543566426611057755587734204180344126845580508434841964219860936692463707436300541256463501293704717939306359388764389461511596069289692670087547541837790069474813338461880825605544069593024112586242259470740692520056206911473171831003559851272924322574578424444794914880323954910943131895338407097074989211528043589932978785007042867231190706938668261903449738239151709429621491985669599640828150080352855605811829487695464890633389551409858310819662869818594929557006018554459772132662948959238658156664337702806600028298348072941365234450098106298680165431376351053377756608390825680613131303955516203653111806656809537990555198344816556853211855776689434938734398451416717116066341168802679500999969248612174652093752643259037937574380303673940152183944295826135554598199010222436481243024057108891459201825944076959305448734276921560548053026383391882722964617070185735499121326916891490099620362476794826977236464334544879453424929050745599477213402209455724110718059645628187173880959968518411790428572637412405170698052541363994838765346856088908877053615413861163413974819554992289243775767003545568113454962262515747711268974867859190500836540783169789024056100054868051965897104965836604512087238896802941928685534514815644223692172962829916644961340750724461508335571485451204207166037589163964197720217810933862213901904814176840321902279622230831465801333972846796730951906453635235422728996286976998408023514938177705921891071282094183355555027233847930153058269699991057193742114712109509705827866954278694876080162076745868124441815844597455428651199645591751669223725597084636731661488255248053028714132263820033436385443076533143111669451042088188756446675547183270058252700422441476071109765497889291198942370363542564364863780506751823774824687408666415178171668459953361244142056093753756901252671902135484839985857074013257167048148117724764868782611456818366302813257218874020484413503997828113849572788490711716930470604059644871984803408612016336443528936077363242219529543272447450110481888080244737745288631068586208434323676891603312660067746565991535915526815021677960211004960212687137571182095324555131129293018766446037430254855314706906432480595488883584227640680740197780498840298757216249271920210671922419807968860133411673787434372126517701842757027588019141858936957745224255070840892452189123655374278780378206818412218501346854946717786904859481927036547527528345562194570209166346791605544782354470828139006309746414151945852724771897031215772648991520247072212412384387903099121695297249339323413314046751060370345738299847545669216022016358365834239467681823787851401711971174477438144068719991250534590549808875143794854300134029771042656946589430711752849717617733095460021864815545817321879170584099360379877813735330235361062498192247811172285364691403773665915546823540100095282223376101205405936898273101870789009777081422535211383557256153008884692537116497698275692734118136522869143858282631845087178648046851006632402842314125380831572030559553911741581891811676662070336590870396933259958725578167079456469878583087721721006199401427282043251393814051405499458912113932578563259040143616703539091755687450647122108045948757776162778782871163117589998494465998210718644081103120033404929327285124034291772077912831461273476599685322954393194341308303956559674622692920013263274288253427703556206106196005185322482318699725998052493723722424201858015269882205443718733149207879917227804452690202120562230101613861991025131705444220051665063522404102324323358519785173121302551443193603796591717125099026855388121508611501695172863926500668043375683147592804579953097425224536492813755998450958072790608220314445859014257887803686179848960404801233055854914667415282969408629551419865025859428957560140324721433489316593825010736536590397159503531480060807863345825793425401410021695773250333296212490166666273591044993332333236840593061167431511291657815242838399775095519660037701734377337936841471789441305000819158866950876285333962682114888068902145034598298078428632694784110426092274234160182192142767827326134797056446666232109776947284674835805164232688065144204479257180774615094904072739843990221871974624414199541503164516299942675243199924806484056211973107602837932191175210720537079590049656969226236397572698523440011589041641123447499006563752547518711224234410316442894132387152734283643841052806602982234521997124905484742607894118436436603208036522782063444379362066121074080144078113651821876635437434642136363079748602942995698043938658560401224577716488715162032198370788619099456159757804594862893025641591345020356909142204221588967735152437738011581278841308048131545718914712805876015830326326356245594154846832579962652941648944467532747780593241808277160580083891001727917484359887901192914537990857454043197887519159384396252632270027013702458366976439585480939627055159061012286168392186446409139459782608159370569183533390746383993300927776462277447037144220155614959511827956829284951553085315746078938668980238687551953347577455405302171864872744955358584505946065853269626130650070747769926162684647935650709600928490909604735542554888916694991438504323066761560127585493605569223851221387579915175090478876782864199423389607894999778294602968856433959411503481203522179205346162567748166761602927100486221507143685649052096093363672033714320771524618507038210623318016386457233642938696667767318565718819691625049094813615631055208914548746957061859660109678882721873928206066662125785057831342541843192756589482023392706813048144604323972891702667093879511365673270259257031977066371778081225555560291485176407919057948945129830824306970644999955360993555813623459556568611091010460724941225832358742084433764639498756859114693126879243380537417129236569820983648167396589118438121892246968520296801500424373532643473931375356766641366778850989932882153491746703198471532709985765394327348892124428591390763827848781426485269539977116836208847176725047976423895469243130570101271555342800419499057337423007128089803046654085347052868702760441155949044155938618389412593326736699158748572440586846535420962576820128221627666082510047836129011317618423657567642028925061150434309848241318880726498519130476251583582477242606046389794944825482735585862987546993797435724080515969977953678660726271960404070192648630941899409429644032077397819412360370663162755286873877623129954939767906291688542285558292284144771325328716225419266400520785089683975126454488870037459342590191019299964208377732103624731848641615426347187204804213659757966517597487014503515336800871791968283338711801476607548065814591349042229455749333106738358208197081113686162374219818448394315544578717585202621775682849904336524635733810639581827325589303445183313051310707368583616246733486326352107704795729006320884432412058009806847735612333554273749809804824157927456841047423451725866251518223597104941823608536508491845891203898659587280407797134371163674674921122428880968779471004261624310851245860339875954090901695377261200954536203825528416052987922888063192595726351415550866764953575409158255683685331948598131031872155457962628391424414183600885278700972556223681777530672319265343634194814463179767697016402546369234258331979080404384916060783260486947563679190074166460348858061735966227729778721786881985330433292255252270166760808105656009449577870863141126752675631087987505232168424043976499783628564257410970284724048514588467223209551947825420616779966278020713027354267261412067173072953377581100470669721890391348624600599132919864348867945617421583448126194141984150779388019847393889707745197918489195211463347386206680856564104835997392291842831611876031990006843575929591668531585342260092899472096157640456590496491519610406391060335424109883980413357338510706561737833493922234386006550951379676495733804894663798873303426905414627838254451872857363097303670196272533445170411300545609704320096726207523758933830220106947320492913433033273625197732271642983162884059862276995604596983242157416188100543245594613365057104064144866293841756307683422757353807056158550432152425408012433200803332020953530599590750861210779676179364075356187548648504112383385891655161946195931968546220463551312671633653492490877190764787250920003945429777635873096465448658387762194934795864586927349978364866797909971127426847848623646126093907920608625314321882224481394810118557294671051585364058910081696822811342563270534105905176710602250295933814495119297927519122890382967556493898738066790028348422815925734794161415410860669394127034374044336795937672419102761483377143956089907116250895733412930296669054267500681069698476032365075764671690748936388949828765215586904169201727311702360757852266252536216902903205490754141194326874864342920210593518396651029800160446110821085139117753078689041967686373977518061609165964142118802528375564720438188472413696977895527269744491079517396367680426317620840893136602630140712771340588325370206525273133418095967392757042922431197688573117478664385112639837900665019528174577892433621696237788347697888938642068767998904898645386165818531416711769084516345318232086396226008344444021011440779613016595916807588166355773912937566685949874015909637146958252694557825862486643887778222523592847105643269686727562553950617873927808456052570251711277514269580555573518622427177813502139178722360747242518739757853646648410270966311341617738364113835913326855361997533165126562433217304834237559843315034600713168806849930178489444748692235758626184816884426693258750191540006582224798904456563402537209278415816677147282353866228633287804501895635512894850972692735214093270941029416055335818360111874009538003662628454422825242716485812399836829460086074999838184998288113918834647434031411064572874218055900748852717246928163205625129324545554007480331600257602741172831390815509847134144782075845219924074678866820158072453415503157102737029749684855579800185026675156628740112857221743901571262129356672324686690702695328522124721133371602011112432901256584690591000333796775647152447942901249933100884335181068771837434618101867746472393558820954956722414925552077412927293767995009303267830350568474001913734557666179731663904472820414228350250674656928772858816172631124422704431322625930602242111024950181701437411968254175497722333776161832610219473701176133990366440908912944154725781734942405623639002838789569076266021525231862305985924303268794394916042410171493550809108654193266027022948990438667877347246141236631763478273078844655233261169004096732995720563178105655935172739756801111188438289272587552320719416229384203173760940878750171881059689688825248519921707028855916510802718113046771504044694416370530604682574220008066468302647466397825178834878201812638432027472938026965526633406074456679540767844489503561125908557416242587574070623402439885545847523157673051747074863235476357588194958799338695014093862624433375830085914705309658985633866921949979314904543482796505953114529798650095391147290898155471808273887087612029325314013972573860136824803503103423675514173979611338813579326338914510292147136978628251581923221980599391219734235092078414726509031594115283341177287394276201647180828252111662444904264958501740183321549200381530422686980152317620988951192896619931107535495736818916650747408521778379588292118943151521906860655090650919993544140806419145563654579591755447187034167894894452079695877500468067504834085574087651730871988259173472627236932962519313105050201658046892226849039185322927581389984965705253347623671374628876742422574642586014797337324724719877339407127957611553848497189904965460400310592898078846175948994685553017773219217958517240684961456959383825357857103591978647929148135878494497552252431956005246325792380958536372151495235601584055865802196452190674121532205061065530842234709065908985169913106205904867774207617513178290428172545742192327497532704228177475298972322630330770062658476912202108473042558019302590807577197427681788575805065553657235011360450976687979907011933402413477523271182571137949412592881270106005454232325855245599394905409784720334521037350467599603094842028047379345277171457791172381649494725794072394040842701702320790397364118362468315736899879638106332936723314947514228425247753795940416976480063502807038635154489729737119128107511048291279197672781510087723804962244665890900039788128400142353263903180410548899659783893760468442731218001632577889887366557806697113465851216041485622519224063851941338544397356570163359496453217213228959259305108387115803033432209821117563894337101514022043378144229957729195082039315831317544650711652519490667206408147678912322028228936562113223628388826718608252799257716326185862440777891152113575496732609499827701879634195080499618017043071835340310194024536413985705355055622841388205563405548653221206572590387312439195297738745987491120061663544443202659476725579062132855557585896730053578642244112040783497497661670532913771592509540200625620465351557393401681197092097207679814811032985985948745300966416045074809537177615654336447975117879889389428360424257584749075923317700663225257924592440673701160520361110806735484688006530212301978712170423994031574855968683204887383633203341133896220454469354064308196140282439246704093631309672059209116744355264135666346469028972853963515937850974471577521480351432222787448912301776879380905808263313836031666329683439543926174092220892613818736385141022496924555407985648691697496406916580163310118105583494271741299518616779654072769702895837317934073234212630334002316189780330756289612733341515130449918968479168663364248536488485072762513981277131262485513256485504063193939009644809526475760510664649260360393407621477244278422978466319530204066583393790346942262566229796991644643371705875590764050137872035457548328180049708618266412371260335056903872116252773069237398920281911067549076178030770653225340323780229586214749549544103789662810773684221743250124954754211304150562269741240568419588560055055729932847044816565563271284687550175229724232699189216422233025354919936405064598399201389157414310089452458951412452095382940303264150505733894490897835983220963447375294725062928080878070084568223371000043772117860088906805474915272295025635383915896017977395460503730933012238483253308402569174344259773041693337085486862426764422427230263349408182326438126828718576366718773906003177704379142370014483073863173255954434765521027561240248814969641755239155850707105477178484339347845851585448331941616155649855075882700488608249836996103414824314435098881245550340174449902366841536026316718429077801065448172660910862614304068105715207674559984174793456972654410747494466314163995287261248412896968459024024037436203696953859230294411146866597431841270902995008068526177823736337048250675690849183616390841074431600750549682376029437881225414529761074837227674969836928635083944275377250019552227954312217022468425999124088465288073339875954750720260317013488676086552520767161204515217907456228343742484710108452825396416157715086714906421937090829511017989560627200267462541604471074396523141631734562907384568614608627699384416800635457619466482318093923071264612582415932797143830397952909970325045433825741386159482261685952979651549763824829219516012090821057920701561992977463983872148362206041512403167734768480507774372376296928832017784609872424937165133660498532955442102481837402365103724921800120798700406831087588615173646129578928463699642852295509766696658746963249137335842177007171663342616023612972476286793658534538248821518072070364220465939260014106886407214216923670371355197319950968659080555149583761625398976306469555635216878849117767817663782952162005227854467252581148228567128218641717552809135546418994380699695298057680347403007820626293931697544125657740134358519555691625318325550415288423424126388585868177684136725374304167963053206986795731081910758967527041656499753015426388766771568886158649834008853862471587204374532298900268967728538042162230503152462384579420764658096975783398238276840706487750138506990587356934987626046477125627257351948463316494923252687074443526495151163357614044369399013496670498281415423366621949801464840120168101272123796366938017605465386940054095905142492746848461987933340567522341872454156112178981597013594263468176828759599134470982239467585761958554308253117054124862767415392928643317137662184967518759472259932646674716072352248442885220263432718609841114815653180025781218633138740801746515229886246602245440989607700698657948223748917666751151801764627600827706125200099138992218044423114367376366001074901799603119249220745956023273916607673221207428871856022482874371994688321295481619192299856539208004763151301916102884524657513239566438386988914885382892759815714503717742645662836787288168357228233360247084541194714667175022453176161831637089739647364881980470858399715461780358670835437969716326065833307425176373788856669774115701329115713955546047263623702176530219044715459364931726576836078350714974455508155405503803586053788301665232456833300130758281397060529212462581338500833279332910863719364205801915532973518528366079697655664672919117019464632093964632387808632287778584114396525934221308192176163459387210759816534438275399394004249432923113747742772994114760406568373161937726452034025150216918672734640981985362080490284932098772538307389123787657471550773347551742219946636307740322030377264263288317052615033170593295111307338760854088367317013831319931120303415108722495334881202355158259188263017222044422802829103454802858414924808623574739448463827770344147636352520432201495114898059681564118407935849873721352676876842313369491285865567249706573485704802584328817185797544516120591689239907986177400410328858534233279572179193597337894437028620527851138333653783206893953166310794657693425887621254458534618775068638080909224147931573737188139608449799795751627706565266890267472997961684423546924371398355209439029654576834490420953145250722516253025528274838656480166484871998173870057972893844638930255566898571259836145919826427111795455773162475305515796600376881894235973234223908679584746587010199627935239543258864832180604439681020705578802949650000466046732183556078242112478973454859917596477953212131812413428472751620611124751386427076113739483779964290299778398838796599044806288843008243995464074585041168076144605312140651335617917263279966608146295318548315910772827916775892986010170327301308382316574532362863113285545817541249683820149806171489606496423753791143257301178479669800062284677991736760941563335800779279700264230221412440291699393541416211396371987196884106589710854155664086296932596159834831683952894232306318452715255859430210595677454067752434360491617608658165990670548540368935170831775016611517190058065782868843888760464148643512586135983313935610668561451486872845802342818171189477684907659710293148192410968132029674064853224424542603603327599928919422397637219181529650562871536187690950988502962197042672159479742794265085068296364739534193667624714319602101631422722379272671660945569897443293682177746545522576686199949383374065886969793931490744423711794663319861909048792492582827345033321946920160639199162526130711430676101396089521574112888164212908465495752062304594631598234162921609976700881308387295679183779352341266726394656888347779351354206647991470426534257220583296178270000907006631479282075533334959505705390937368871993456553269190349351249305794081746799868071192783554509332609372782746306323080726619259234299110087593822439380574016813051606351775470126882598585234242279280135432728507503925561170529195308403896702679594747466247250750349372780161364211271857367203358480902646013970452221772232834852353126621170176493789277237889780631315938857533151149335784445227583218348431996793500918372368728264913296890885231527831977937231340826111863100341534769399457973491742600435601336002047704663473444415729199017769990941684385566688565815397256086741355836832385567164317620967938645290252366528935319846801594736371178050673418999106426229944396077865102218511173761523184881055675968662627108300276063052403018619806785061841613740353231655086954374561678496037099823809015355390211880521977236840462068503902351462191719593790901792731132764820660592789650551136410746650016145865351248906166241067078693452786561688628998462087972139057232187498557299861868738230548069089120821715093909719803415120877598514784290584651608997653515230866193262334197517648061095892979592575026981550782112580155047925223681531280923688365891147088015259230775022354684302323467644064917880349691946131376311408650573033816780877300164497780858553903309982026209002186988690049026309985219966234243652595987090935915724261567442482525030607022938473786855741465690154352155912023983150236476903240080969083292934166938486535302423036266818385859112989466450897756637534329875300904960527151205028717729858787533047293824671747786356470426106491963428171823914531652139066189080435443349876373122203501423998861555506464528266696818643086298486904979291597401623895949613344804203402231624719357026390927583093593853215374976374925384984915168380458954029425232448244297491148473898633027473092554825641518729316303466362148138506737345264434567923808247644664251840371687856121935896019606221668957287442414069188916175946513204408857305609063934700242653984268836371227472961191614122839651655345636470117148695769905775899139176560471439629092184535901341709550339148013375497089956465414951347069866113621616561046200360746472955972337440657414379788043280247356212636879069747192959911889336551871944227236015831762910212901290603313603414708688134520119669541440111299728001680682148774552214022659734749399433184273027335018071176524952433154247680382064779930145302182406059737599106354633081852925553109869212190249734022191760142669313101388115919387311398600817383003024734275834861681762690245442946094555957449062792925544809621681561163425713155149208120113374021901432751722886670940916127071261390076845362525313516498571743747182911751327731626195829255094683711495515910186855294000801132210091777025401286038818140374682376362084825733112254151003627443027205160495418007357579966065989392910584934270842877270367684912091592209822426011002002621989124910213260344478449656632078326559822179422459404460348677773008270425911724394206522736655590813294355111518063646496488682805050797676300677321342275863945891663808046725102197870107899775337774294433787329384214753640589283590433217728895694198682784486693693477683589594465753053775337904614589492863253161154987560784646988426907022247224211934876775654811474872332203454267370152592060779224342827005620124086926837596103163228072584736955243015675115120132071903083935810293336044018598344785831189295659154682855745199689681437122351869857068679573550594730888785157165441583328798499890034652699283564928921334264698397485393919242737275120022852234017483933604653507281082856729243436511353315690049047314492312612261960655500323776724693218492512078752151007592290178354400043205229614805125616548334401511680242120304784675405427138078230285710283254049150868547502066441165297974944211923263100671174183840228054421397319238140847779064554030257872027010514425914507046374182598987143439901332394271779152931378210606399348151935632127967144108784226156434739445334748003752946630614403259786040790770421760768947158145167811290933696951637578361104701740113108307787218852919273069780014729564882031374329558400047984459378143991814130363587162946548904693828307162503883595069665926805815633999724748402771248134495435595045162776339657673349392535510041179197028057959281841519350407358117405261781959368335472423486786638956588622008673209677867104078788846637607933305030597112176017898321172814595409605334786708147788620541560573354488923289521479231766927252575172191217834324597541589716790820168843629502136027584438029681199384752732232368548145321368898763510001013487648618335981271575640111325454158731326639572554521681736812932013505058140904089747469315369921516434631826253649545874110892384087190137049230025332807832181155038214008400360692805060527119064143569672220998110438328556872288690712460575386332808429196700174257587572787086903197633213024897945137129003728945190339918734678069811547418550691676742698558371671670249517992527916539042003608366142271069602505056842211895674219552260372273843243803204549413671754483149318344131382462449964201037923179061113854301964038953902552875100043312945797862043576137603663517831864421304363578997973511580896452811993371416910905779908567542120278087521837778024199749728402438752454437633919936837821912121275980459439800766767163873046454273879568753437742232670113229645338877506549310134944675296077313685364915811248335862545998864299059739266288105405721853154209313479600817508144252094287910496342007762166984348324419662500464744670792089499253127482606733099222742051815422607671385853556838478332079834397114502095989343483184561709764727980455678266453292119422588655951989634393278146052240578549656884926097487618013331687620780109174090420710573984078561975843242045252753022537411649924085193816006665728522131047701147880758593627551421132191602407062778879334083484282870689169932907294139923254052310741168292161583731129509147791576334447008546003443155079270630438315386937859910251477690368551358316830121331865725685010356758593584427700138912703659916375323805505032505936859440260187488571098179928602240740254205781519512196597250094618331356212445931984794662643521585198049553566428645625829146990125379862672731770813891449833199406581640468025727368196484064139680336571598967397415445493562418278285881130833658505586011262503527445838928904862146053492021961369875529117720848337283078256119349341997709335815309966717371678497768069744584239781720572286532315975923905377090727295304209085658716837918252547576992572004032494801687192753676819221153619261032558477174410672887134118861568538709649333875763551229548995325275324678456888557127613156750166953411733818916066113225406807068528261521942503354801416757279406704474512157534089912502161697814764614957714432723805160182480707721503893993946394141089242191674400937475245252361878851645159559471732154114267018532250199499996083563904638540580406976714705243480873940695269688201109432624333253652791633704979225812816703095987589507537715286884626094745163410001020865464070778456942304285935482874439101028013471003237507656190792805901449208788100381137487509975901241667542999810745834155329598689282176814035749600601255485527460281852894183628093851710001941469053487435725351338937876529539724972447581731911541882748187238545981402897533450759967454248099111528131774910286790031183461450875307149579007121386493047818313657944812935784790368796952519833338789928731535558270148202912741232118569496791430369276500763667168535130670927273605635960179029558460326510641699903481828288610231893755589576439973208034424844375332400618909729097486389603117667978966779137026878195969870675752360336481718998425797403726982163057997262922746820409529561912833591531420054644132993875431779524902301929604163805894996647506443534220116581128606779849017433013760209781283006639659353085555724276148245720913462077507448151091476433688356733497363168346040594479561253632767013453247132154046480829917029126971217122761998932377084903440577520072050344115483154806429371089094161877627747914070734017960841763173912297630071848399826895868466282972366075319067846145180457414845014156413592004480527371827618207445131020484438147125723800521603458450032913198683508164704055129866670946931604831626184669878031520632769976942096834610379024553904181834256409703933469163364299363227161160974936166598668984161869951252836189563002773983098941066003724177624526593203897260162586550716708849853061384348762422449262058842984845597815834318005851432703240420985129739343526215020421509116842354342605793115744912960241865022123825728134497522658311557505207571639737915269220202329568918656976094482162614182642045462469932842890965172799036797167495294386922446756216525637322931319546829143619098256239088628692505301564511900340260975988506503888551395614022661567350051989084180652142667146327217274261603905007065822099257994795220984024742952570310688709696210494813540697652784010931017243689161120570397083034401815353090510469937262089977075939185819877612525907972864774548688237937138218462518609402045906032544011973527595955788820457706530725973586083454560135609015069615090104320050760226538527057658850272874507740582380369111955728105339387705492532496291349389108426510689596713739009652691836196545781141710289502395764157854906636386862980736094849218759310968188079955415649781942577657359176276011920764889149776259207802512412476710787598229906273552752921601382033618248178954918650638581682893705260571330488933053462206016049109580618410494354124019780163276308343692117433714861903326410648530025039218623688316642243918857992272510679875093359035196710886754096993182449290324644290677718420668482548071562606236573796203103336887211557350933841047140246476457930402942269572752053446152809622181631547254881683971090084676206357587169898815405436238281715277278148011268720995458505745174737025753668687653457861054107444885453240855674627961726106340334145484517360148781810931195793714605131710332504509679844881885445911296688808801541021178343717755243797182900065439896718009473614045036704986622420457893785084237784002996036884346544151904948258358484126997718175583589381801742820456049093489052596479359633291897553229194164711639830145960898192377326828897543299289413217833568280628349784318254933657361107425506679770863766481293323893227766582319334929352342402811721308222062972588918517901600383754185099355314334031237003278181498467730600518612429439521774774224824007754205856133640527667431830544590341173173595708121665585497392595644396703745039177611859181996087466860373765525733063333003997085662949654810930021375133440664363404561569719926454623260774828168496933498523515704641416539736427147063120335750445730320453475620193667095857735696649683083751507385765449712980681896123533857344819744748341810764654732249366394538451569642074642440279140880701496444621957331093145014977102269693017137166146097538452305159761489339332198757323904444148290864277085132293813960243070059910620776916308883503596755054864819924705635975288889267904078517353704346084460903796278278972030455168768078209891753549444336135869764473187037638171748298315536226186333557137629698944278971979780898320496033320594454669566885921958589624738516104327946390938411379296176213719441010630012159227403551493632916830702392038843314947393530309340859603457814246620060320793313619135522504705690480148263153635942909298500884663155726284721421323704090682807697675356259861949949143452217949383906064521984652103523657655541628345280392054586261739010289335091215081948232778707001576925852248189196309392913764182652055345923386153431055571585189464454726850597112587677914784459678041115177011249038262768755627470376865115276546855675944802566836867965795392466999436070031194620700727934367225261962847325803472650877531457722802271241790719384141127129422068133957568167124083972995455458236163952631398184328249145201849711415223612214574578384771756907055053504843668837789905703835522389513231820809123984170842511821078670835312625343179915040344137343320960671122758925554430445647025154320239150070420313756328492125082536540641149713838544361824975757297568459326970095747128481626528270461639925888719367156330516217096818225388802009822293528662604652470816230630236945679036162926004443468134675484772416652122241219431299011837128038161962483215426031058543106353433811052808254186222629517974304026498139908141932697000249899957271098512910060669357577227040380515663927319241588368910469777458488160670358448043844042207927832334394880619551053339579964794367847193498849755332823483079281802896645796489443878220643789247130275357273864910846638058467870766593784559756838397135271746155602266849485195679692932674873626825507741689108294635760447145581142042780300811742653246851936289056188263088614255470929380938396373793242062500867446103139105288586127872440276768703836838800144592780950848566095934293042909579080878389473408086795510539048019444001947485924069761437611701318470239208394110319237169828311020249980189739505806165972046590686747842824772033506046153064948027026880772576309259014126773422303901675115787120137787911298363045363708218437158560192656552854403496293965626351761752596232915414762338795539843013560213351765970086225090016660613442852265211121019304979832014873486682079030389944160971682747799655451991145580850564103709485831646895663415728712633642036587867259577654395408925357927726075571450378648694188495509391257436524804690272274575098183030876110356092067421000855308235291072227439107215016860991165326097034910245344663380848836171382004026275898218063200804174323004308287850829249396591228969881961310768691563675471511739604953917038989285975091475398487180979395105303088047078667321931874264163408586531055286692158156569731025614185779988894309125738681353195961015588602481192930217881911483313061963091177795240835716548011891767553397207220337173207536691200580509101520933263655063104784196577030262471708646036791130654475406223460950317843241119815162478003916569476281802073217561546359336041467470676619577114897185544159581417731130075966463484256005351349172171457760542117405790883638113894630238627131791313005548502278328524936089507763293515500240469156373333944570764786828149684772655023088642069392503734282251728776096754043983375735989995368987625067440175833702365389799447057982240568322016196274417951231612293517846261096329872942259291600078538642302783319090856280621756548721119144740984537755802846880944520319186144942767044566601971204974492397234235776895811952453247749022051274651448471083925283923315187013851130167655919771034533161198048624821639227605446718834212493926249712509295787253242614469438097069740261957174698415307290426884502714377062407490955623543851190914536918708717839182500869167345738317953366050949365840831942900930999365010076149859192291925542189338401291732436462597659026386420354723149313482526231068933949016597001825144438876333713393219939443625020144820790168870755188539663895013506699892460976849219667469884021500549145283925820419786161554479856599800841629401066891983142208349204903643900161996677339525459166409867891062874410025364398592370517670424918175675162852900211061299861542955488459461744246858657525422814846973514759941217067022169462828281259656812046468321074405007120635163608991723691469436340898391044258610255470170277219229886746112326192000582205851347789266559408867846923600376335023782855714783644548605511435260433318149311677628747758842517329968458692014143675454317974956361861693837111801821445704743477354508302779865385729136879723542522219045044149152272483719925427775072761144727958119311881828059589277864184003223328655873490612869143830269044191950677898051838582891349308466453286692622558922658128703977708754114391435888187248988260629253930044426458991128479116985808910028374469869875228397290066132661629231784693352931255719099003490962866373313932610414557460654086084590867967481373638151727327438216175183858684456825103834181542037059851226415352995949443392024751428047161203938216206357482431781936202195621177462316288039353270334921449492026922388656239732913560700534919245577952500528426903799183968497895045367731016061564819537064105872951924521500243674115874240798995163414084456800636176217012759276343513767136317311837723397315591005084551629699521856042160167594645944902344475800495249123044731745854367776357112748320512648181647046784655950371466786648742733258741603574841919589775333368385180524360721537580256811280446484061678359521464517746783429307568520339002306864230893758966779100922062423483003034418305526731996373460303813219224787896574215181086009868499158191049662987959303680468425400757528132267234127198715405702842833235883132979446676801086538326049841877816238779643457896681793160263555930243370263029875847212887546387638631946140516512808394383421023178902223324525715966827024887548198007105821757506116958416126228261995660546443644841038601749556666688290903859816623482181194908544346141820097938325400742828844924761493168316272973570882195950911083746597018740664405357348452722446543158965921004599808078762395602651664997132173975701980724969732935845922933592692921820337022835606814826633034063338167482054272022868517460156101576727467773226232966434887670428452241650409611570592128127349136107275568020052687642740351903458934689252650829380670090087892571090833010664031806719235741849252067680614049823012935635151397093834625161512158446637285298351105726428308068926217601259317452038349665156472351407748528007159427183997135301918535667703024248794844363972961701404733979463935463750325407447213360202548075001554651430605994372975041076732935663747709444017640989974346198687507388854740091189656042701700885029990447536041077198645800609746852860755213765967916287497069998764649986594723785515231273378085004990506379650688698375674283296340169007304221593119604953366206860155013367433650795361777541198647430611598605390994644977472428876920713051860193697615388943349196795946824509967758861438350126048417294237534656200877995331879241441915920532671657631825428779532537481966816690269980331839871357948192922004569025582885812315629679707766871826075038039440184060059739047070449350449535778852136887645276774733470626994234769110277848849366436430405544894599880716077459527821594099754632249808808098349397169892353396287580444902394363535244665521899710654408359686671070602958225539310987292002872844846973740928819356172838250102387300408348095672202445902818340299781758711573731713599857671616367797106352203108989344578660114391524016524487088003028794865860093565116969933997689188606122943166167732771555228692410696918497348953291721856336247931215340234411796078612425439149167187126704177088075558554254977528878279470873268867116023998790957020103543983961892142069467717718121032664730825600696668687549302330474280611978337341581607302330437085223924267734227843477119226575216220254070462147898690117174155320136523088916986675588909635482268026121997899359636598891035004333907819834987457905243642959056023020817099859194008616588787169143659341584255006740273855899620918799408594340220567828349295755464623458456595659982133773754734061535463311951118811605321835647834832528881750180502049495094694057754643730947438901043814326875077107647095198294527429428233344932477501565620736825932903693999063088542112636361952097892044472738620492069711899921380561298793246510255254851442768944944816525009107127243797742323571958994091870432319375919292254961847827756622356702628009933283797719814919977510940229466700284263307036920791070439800118795752688061263364644290222346643326338798534557920023874662428594983424975039213954169687382298782778547107220759485193623238229339051906407643574726516204445561341331210941014034261541480721939089151444639125884437061020140937241516993975463547216275073254034540698281332697820474131638130253755131245222662510406077290556773894076191011775189493571746291994552360544045751099221373392036008178876099864716166994899769863551473666016870524214901544165620235949619389207930408558124306472224415134665856341416482678872169515233992263622079343560881089371472617138572869917966920659409364697597439026448572875885371196972308589480424426646988843100433840021030875078461635371101509982818973036590125424663129590080976819412870951221268556195593548849305375686595512617505629924416443818671974123073592849976241904504189896371840678218452332315895838270585992909426887806470395230913234590543305384819796403293976616244405530668620352086786306212898618875836491627242978560596432130000902639644294275693029554794040652034021302686163621315954034983350839334745304912638834443770013771136962287173748115559609149929097432766414092208844041102237943601655882905133649360252437960971493908563261896031461117622070595396151219831179729746872197444132525643784555368005578238148294137182007484512823435087295965368856583301110898693305705111783727911302004330284347489603367118265418349964972680187129088482081784237727889208608621700614489160306490043701070333491658048559679533510587882757187825132142082829633640549339964061443704469084014312979360216110666489809868891560410207359017492396508819879365496567032115760345218287480219087596675147288753983697556677389300605796573466146468802178931832596574689153706072889633795839955901724886744431941705000358044495834233981669861272730350947871537689135091630234108453102248769645973777071357537548436460995368721099688872089491676958701741074018476292535066295256629005170311349312030919276875897530223695126552461952598873566520828447246741339667313316930167873615606873504734611571099990098844067204281552596138200706416436083437010566189083213781145960621374303546361650144779410772287377004634960783008658303928952360094997957284682893764405883689199292149636636068810381072231354347853889477784284482286929643177843416778550941118098627840308363435856124730934401283914782213919666395944039174658182352451462276026592463605190462709530579554608756611762498907976031167874084675952378492782828111122332265505864564432605343701985492628972987662917224962750832176241534874011180806884962305050035775230683469329718621379878790001102388626884208364817897875684528315587731119852025395308258211984337009039239994656899262916156631481496775430567922683496446522084362125376098201282218080349427635115879498278089886561148037981017392246192728456118406839183640946190663985457225584420888382744583096991808128755957632279330439490235042757823259923159050907934412762600911127502593180142849416737617177612086412123251898111918032669822883305110756966707829744279164813697328631288438813188377779198691598057927486226752886693980104319555014563599591625153077785447697607708207418134846852853304308509330462408728029754315515741091786722355060083254624771564033349390186123240281610121648075035615937705730741637843223234119709967155303615854078627391150433992366741331147116218932059824069000269946701236674724229506802192332580545024031594474728618253945744768710829070286817489080540398541692464673303631845274682708573158009645820882645540136883352394935635616554693378591988864380362836835394411761919529387324374814790150691711649492435003688239604876923429979456879395583910229071408793254921136671981382942074391120242682619152351282368828337970336504858333425092407426108489944205737262489784182901316035546868288154220515581256993269576472555202441157772031520321278953739479678998305049959145052456656424536942672434303733662724851374334943616722948954943809081968824043366043792908569413756597270334445534706494729527792040193154562291541892367035048153701683055407208564004504298784711460949611907768596253920974426230571302530443615765065150701914819644343898400177538780549771776752716515520499097355008239825585948470978381489896066178281882902025594969124936734057102144885206948011940613551162129747822247577455130019951706650165783229371796177185149929501036114318130093099754103666848225803767479272035601614857539197294960352653072468231715063597441788297213653907364354891006900502465640968707896350875368675961429757236402841896600932874714574717536530647717528037299972391408056825494767243939177661327703382081355066480035921222863075053031481555728206847150050303801967436574822579173009814324957407767348003996830047444433438464393959162831444643352298594407506359575628762778810908494392981947757536050800154088607127461196748495923297837294706937634598783316687960744870348728276559930173406331784255935750649040645438380618892622399800268346220019097906896974213821087881071659049098854382175746125405119754403247060060629922971558246913532241616074589863004900950339508327106644516545457222839795194441478922071274240061008524067353092282797052059650380720930527549647778389474870506532031985128832079095671146649255133014253865534419460513993321401724096875703355846788519858305882457040879128456983391670875586316748489397168880127264844804898054306836008602150862593200098499153503716554661433151294258921064087687405606739002544304966647437942884195887608050983381621502245020502597100670749366874524077229726678720436372496691419398385209140786378980354500818237331198576956504071816833209877149709440697941459045007807011496250712513061300176042264071336324300645756604952665264902915470390106882912913524803591384052288908051238603295538808004724757674389356821144774757877377227094521886214479692925010392071416366288357449210451974891794250457143484951785924407033953508070715097174155360309025073712886987190986296856754167342645511615825151142966444033795910061103924003527535174207309081792384207672294856552868884918785276469572849485732923691923130776773955972049792337885489069642232654464945440672407325711062858335013512805039584366116271312728297468088475382503972253649830972176125628789066992330822844894038315579472081565239743063828671287113393967909834484704691377259598797719478467152011947445408934489187426804179687416550353814424513860237635528708359319942777964317887728947646303826471294684397600059024741984176608820916019749168114308579788675722729467777075162581977305024530842104308026467378979547487466608429064943768072183482843394367740120179302266058320791843552725547948824542885019578964264152146061734009875348121294214160323206189128337782662491202291777419432302600647433504940282875575980326308481861315992737110481660452532735117953241206764110738176257950867082061996556905583336192411345877803241081106473343111293287111327822554545719537317566206718512147803481149284926288650415512384546594988936401332607088666959462430265559379149377582490904890810097893983491776041609227127739613026976530926084154750131029816219315414238662157492676961853257033872360189539380382828990632136261166222305946660311882482181648174160006758162766536500207871472267443868215261353182106224862901973796570617960682798514830430630020733561478898742661239869168974305436125268681217466498207058046059616857795202226556131612895491300997838611803645747400917649552671804011341328030973511750454369183689384856513491204435482633059830270287728952914508613275743423975172412523980395475209436187441224585965892506701318434407936971711746745513107774845494848696289808500688655233048134312066243363966424452446588087398275892056826563360294166916067429361631761428177184614659462482752431685278153515468717675445949775936381054211450660039846358805776050661954243117842963284503054729045260178292474171757487155275737572755585465603225756496341173858503493453783406460979629170578206495465990745350044453631118254911998304746509886187290118557941008867576516863354838197266657314142176984846280142452936746506333367847287890704280965244326075174741182400230729113112056119678440823876936974324222522206645529978933505090955540528232923744993948214733792562831748012044599985477919603289338357701082923032776864322245823133577569402588174070568816264036528513043502650317500079040320481244672921897696727051689265245931513934792908955772624648956445585196164362064343455042915462417213811543956503343108930577471385290479484756396130265053799097714820521716138232507373278491103770100966342355099754745338098975906349407795251841363359471856065391123531404860760062323762423686045319730125910393108209745081867058796258943796785802929391815335449224243102706492323926495172286620131763115440513507599043298801903935785914088776924854723238091884028193196196940996128748526699261185443676537683637329674227532876905564739291849339097914137091148229574755823714736305437047889307406640560168414056192152516800183595445383362033154555647125900175311495210139230386476837984983896870035750980768039224003093593766034010329438791536105395053994198374680898287745261636179072203495047456859590364691427832780509725640374970348219957101004065401804032081113331255027144012479140181835258553078285034315418771234496450984347507802342278187776884487883588697306014946459949753228956238177323834168280680480617926173165655177276530687539860480264220169809701789571225186502438371732531184717127591961959429437417394934368190088254561720057760183586931906826369821482717976412263827964965159703373959029176603645792930508703400117769742978582467259648420114129220969059886885612259120181679904181476860334640955909657506165371897794228127942796682445939186125351199417072583488738828772190006998158634704606753948918429114949346810201011164442143170422870247329296547974579952599488130562643605690380938671577006141109115252469607688134665733282696411807401711796338832475176575854014834631349450770137255447392952170944737828376894152983234934480983364339534002957376370343255316808594228536962572198704071378683243502013939709155130369073666081614666280332061468350421572422101815628039454937562180541944235149391986287194584330547087561850476329291726800358656852565389280537617128426335684643569671424078327681455048530689665330241274748980425060156426819428356764896865432042119339222827335662012123247656740661817870159777862401267792248909960816223715095752717194029118021201643671297204930967063184924281991906555444841854005763562336388773299017233427331631703914722860143593602483616940358183210088199381049776919485064956395643458045885913858411335999259771716484382437838376789616796972815526186425639134898265116708309994727882793176720971470890876189863016028021222737867813391950663610832900639284117996137804161142820102242087715498771222468181167460628889432650453384613863524464743993246921478199348896420386221190467151428594705191150069579076368514097286287451443174149755170448625956591104506209129875760551316745087402992408469726579539808762725506726893839201937735693139769885222792612272920682754634166502248883514502021086667149815584433649890722238138457373991912499294992722241481974400803932469037043600165189434641264221829658352344362152541845075810338823078873815446479691166743325711117915873226127928820570278080089538423698629925665330941958321425767282481109274503967237583156453905107503882180072897497351187005739924678123086017766372174441409759425161729386024859913258358670304989119915586950098932165327499333551344817172640050290959116379799392016550652714469497876649619952673822762091567977557972158642668117587083761452982011871018212797867661629698987896737571423037636066798505073772551424780903653055255364543577509647011670790323608672816536373208568606624443471201694978997221256755337082534408923697547285762793491260047572075108504255403772387171891823956530616900419293075205644729629982152707088684813429688526088347206030317922330268360773130577114071055099155290198935525193825368958238229745855203062639157381008269099728321545043343187037963567486503858031083156303417331971876248386510055917283477044557939303295971306960386614179968025233863326408513482876184845680872689831392558174348539209574311649578593788461222554305704390604807673164602198772182550032058134639823645468749582433605082631982640035557569194781124076752298370123935450323097671287224051383502441295686039056277716749915179227857940569702374494396479290077939817503997359240713588262152846867558128138264159867984880001024944654575617724368027281834790015747395815225960788502914720732171842960124248452598201929712825630436754054688457953702614936623307142114040762165454162108396382748843855808192398389618140103484358840779732932194058281084672358477070710472074197927143124075355894903557679336081351171722634165013161485458935042149133394655747924618065107991300698270401851359584803744165030885916960888434644966506608349436625221881582243785170342684228522629751891568157246840327951450041270376912754754409747888058654598779800280324409482968491182091138164853500327224437492966755576832828083242276950500709436192856749549851412304149895356260252502862313051325904790085011373895376472140768920676476678890245707998708005103426664857609979932842223319198801329850943131981365265663040822440121106321396282813076238830793400661970093321407862506480264110489599056006890137319061308153972323730666907648972746046866250302953968518095114755316048545030081759681994094123849501337370556098849455136822049224931160583397495683609573230873970495609229709064082664889144951380169530720844136848016608970344100209412937099007111286228046289703195850582949120058228872245603326579381210128309311549995090213748239419246173154076961370955485227514211917501455124072707483788620477564760801722213308053377226291837259396173618312340849475564549720741124661584859944724666613495007409248256900813152383733194077294871287375401041378820596266639927440196837787610624140734126241040986594412642612823793241765371433874541126535896751842123005500999048178298434085897559655251367205077302780404532869411545593456336004985534287465439732907999342508112310622714938370758129731952810169696208097065802636916600296318938249802489059002226064943911101486884987942828886673708708908262935120943252568090129243144727215822301136448117614462237410899687188441853395050964066447716291856108595777181890257318816242827171073765314652433816735269229172365411589987268545769721520613082708749535542324143319902281142019403127507209950400584111495723712520024541982542307977191655138329465566574531615201586207481375334808242680574009116726319755605629502245790769068095712061062002320073976134690840433975431573548661048154690161599136067587302259858918210001150607218683439167300352345742076617869672531631584040592435196142364103379920097312789514787782274926521184567000538382133034778872852996736548630959445706968261478808470298769969001843143401410347558718057394222305044617362022772731521340648269896562355607204587011064276060717257173347574853966726562021734294572539320565272193656802558771879833230301425474371502461056623194605589044887341262833855517628333667304775217243117432219512505656246350635614881295782914075016984173714207531645006805136896115284740250457036450017512331231012950756321180585915210627459241118438751985049095261244005669772431975956537323874323016987718792510578022665353163551352310996021246862708602901223837284893976993387517714379881186598396893867713892071705648677382710146803830494556079216716844903932229407005021835805399817061515307490168958984633640860424570895917860470576164929140015009290074015419939922078771067873229543824367765248269953050712216878479602428701516813279613572389528542490094223331783776376400003616725837964569050137687430501023751058236424152911991441799247243165459539008998363488810092125544405821631820600547628654672233741950593805278910844568243649323016545258891415818227062399716111721382393230822739526495515018621909447410955474032000925486737067309351857618595802955584223901163598620223171875455221838732110838146280113517038572387210689868717233997883114401466598283534420984534798673020887148458491830289577719315254403042179151182631982447765513151938829498673104913128746501266589870614253750522658936447412234335915945345771850567165167981250379578956950745750608566629539937512014127602312828905776069872057857149378199319046556893648829324998553383911624945282033771612204240364127900208536445368632678257229225170250486290485228576861013022103302256136178144082991798200050602443970711693605980710294341653649475907952619580076573069483409098151469666081357661882193369527181961218973526147264775773388880029345382795268345392512824787461699552085309195175626608597905866322763478155311147483911119758953863981290861520283736524504361283571715537654468744231032524636114366597511024771343693302294033039871416001860573782883710651192701106568386553239517669973412848725778918516658696312609102493987755969452923380366894301785836031998209238969194304399439609256320615952881398586569892214825668648580694704586633930781008933808951577509557187863254556920672700998228291015233290768327198075366353319859171772170534748847652132863462714303449642695642636633711929469633037274411958187007553291474205222095938024060517926099131698875748474651655250588649789348793961034271809877362164630547927104047613196135686972556369048524638512999308463490823032028980260777572296811739526180099853808386563507697000529772905527355478479486524466813598466380936579032719075616800011680571758284517545500717109346039182134615218667179696786050289954059174049878694359502051278957207819697302855063054452936073975683034069206033362249707090599109952913499456852153603007538051246921780231933935600486885379776828528624826240602777589352118734606338609067252457937406835981718861879905938106719925317676124763484455867013028071283793144290909914843826339561035826162667649634587301241954030088056103569940611616171018625276491251674703267357283520015423455892867682073383567620768058432088658768672608388045688759343980320721771926823975279248294260931658447263355784658131164878591449951919032270079924656146589799356656912417053732057622345206259054827705253533207823933566872597075837185155992457353224186446526857094644132057997419206230441074516129471434368488165271367459300189726215708510276627078063917148583656877061084900190854527405714831390810014011175916124093921542294903948936976031417031518622182621400204746583532980819942846270086538588763845941344595174216731672802470448825936721879466983326679105219406446358087038411645341680467442891662665965539788154645023668241042113831751950031098777597308256240017020442695012485210252463257659647786367455849788005767521434916205711946198201811369110390989108456445786756084179894744778861555159747884225317302666114429562372841549316941485050734245164842798689948959814701917768262400211569748158588765748551029343582986221537411958019805428961194064072133041380901105972567582116087573176739406049282576173095264099008642825098204015050059062563501309897420572486369731994538395434668169534427715535975047107259142420237072251428508174182741997947301197428073921396961207333758967265261495562303064834327910385625213546340383929831479001390094403660872623471636584582114242129986430898251554441495598459884349653387071814605423429421274620546422667217531656233354992525580594825225669847425321202838804963835677721160839540582612830425913130771524299881158169007575361956538010375500112473293144998264110040096250695671210131114849997515701804059995026894440554182502651164788320841643634832444352057142627133865129101554818039854868450009635424841683908319813180246742178413712612536778178646786678856724754895217361356075294561459295333905334623200777551382564303606287959790774955044819288232958874419456103467243538887785666627867235154869267241305584435878368911562713368692784742483493243225260935254785401623389179547404032313769656187442563231688487631235599928100343673349410134179184694354383126079191298962490132380695041046346003862545942569024841796846522997562542654224040345254692695512988983679285901603511948703827353384159557943961544192641358995431176260816032320500897071188431471957274819136534760749926097266082002750705191321327936868754993210569129089890792122630745717606060267406923608826226689214469897351468482533279995083347167941229719418036841899001781706466097248835297822422607675876622782590459633052551816013606378410382847029435841739918671436608833036094920251592607364280666774129249196300194618524734213780721234253791300229480038257303909115089480687008856488828497692928922813143079067558890771036432115156742990226156230559131427530122315841008465973564852881848831758225004342544167173999205786326345116124632360462121296377959300435821819215647345413134428395472487506836130283461411457208494394037919292498611606153767229452393563714058034547095420949209302071391868373636847040948720188745773749805939073353785516804942468220464082615979421741749714432633387007505069349895949496671725779911842829122388617660505404194625447396805486353910121664710099981990999583717295621501753202364039818691538573479891775936869910779291108380815991276179603545920889883102146875023415518476767991268974444439308997742982711068705642817804899735226450581399916050351261484083970272138573071976653812295020901586430902072557047718199111838975655865928328210630361406074173856175443133574539085482333074199171457889024953236805992665440804413739496651153559590966574861194519754260182684928099338617762582994729494049253703852765154661935158512154022822615466117343270705172879248116180237673955703029830479241282248077550472870077723412864596991052303035261240267664902929360244787462074804042171556449798623341117726465453897227428820373115847189431001056055731218321278084981984098356590583709857732358896141732256549719682628133783541735092926997915970323909263063254233678905801392168306685282756375443758930929026317247494006612432579727406031513509755846252495452108978806925601413915296986450647179684580521102153801661845259932746450203482069409834953953423960313708929545484724907821523762704734087797459405224302333334240627501693775964016158563995294826944969604180358898125919587856715579774547939236566296888500442560325967206447403724774517999941683444961628407159816468778665329353570365164919412162906119534983573547862930654347618212214968528112034655225948122805214888582812122818715894458452755114639828318561773763983872433246950914965302200508958590572534734935718063242918434311070741431974380214821351491006453628753012892537163472631590714718930663979856206688705864816670236961845944599282379893680122768761507081923732689009178786567259752690973607379411900135762361887404074399373025671551619601871362965279189838450768822875535697241752517823455545670873788129991264737860830783188730892463900613554480309603888353264315015191061115594903064092002170491159114244611763679131439327242148800311857808713600149758178542186963702823920359274042345546996378120086155915322581814637075813360168324253708196578273206821667273699306743348410492513911383365120691358917333442484977674996642482797332708295546337904660212374323383837382426449428940679602386710363506430432735678962973137892796010501946827760331971507022738634407903433214400743863468665486710616136152957147274944568377218074527667908461909887341059736400983972188753478450042071914854840657671851677438963006799040489997303503711391108384796016470936304221244126050228735736416549322484199346234688618464422977292634847895956532016650032782816032516479092239677017849822138583353886882435490703617595089698774609228776295394925894317360499158505773431900379289982035181720805263574177713183605826116367813662489132968092811061783978016500057924159477156645758142041010396537712708966441127978504017977253068917956176450056988084387350560042573897934574509563697666549182165348105618281078726295258565514075389588786388781974822099297868788098153235114655354907025195636602791767983044172474993992027282116341813382352819526017862868465512799247399501255723354175287037551385975580142256496529585874543285551919023571005881188967740449087995550569965624726683130930530671752337671762523596174070450824931384302063071875432195334657165323032496598035897434933296457379229132965937928280522563969619661723291387917021337411697250380923016286622030381209509655374597565082786048942987292906434932575644510369733239484463588233887729840156839775150237129678173554586265481941704969581743907399437920863172254396378685702975640771013076114019406712791513225484593448089448006658203188966039219185198006325150092589745099826814059832095782830933290370833615313470876854271334303978848777970847852417391918374947019201442027339193872910104272390466998596830499068398267089200138808953244944692484414163440687977520333233918534722926227915069229633984300502826122542918615163566061832437838547649919622836970487466963547187718269380156510431433666249780421011762993805420973885325142392687101014880891693446708020558995886423619242386712821148030358812317604246645420483670662818087311881428578034755565635805155868386731661829689292437775441037467056555272013305684149383335493816304204107017578265239876840782036123384123422313470479293098984553710458249267343563697425768639857541443643776078773100130873080169613006531455749113125319592240069564995957248625131481909377276085674871136676691962920856732777402154911148109085128354382610356357862501532897008261340181838326150518473694301499819428316182165279778210995835379683936426889916606323248164487234621554491859275586043762828612834763543355101192741110977692326958897893960213256149773339921645086976719200117136336799024636724255132453184630703824968675948332956891198800407226004183214100856836474189708201870578839880915144378530114907388695619971097749224179851672840769780024296784895205146698058988243227380477132380307093782421524316513419225751725009687357068129946081416491679291404323215563031762597817018606298305376107943171680605818995329495053218333073815536653964713170071857934577208911873077546984343471455693001860348524343852531693277701435797270630759452656324824645768763659498776455216905763885595807732135458857354731696200603881376556230789384280183751010459650972121443604340559579204276432053396995832256313398455583757813932743383696067491571823669189814282202852637949315259823620317968230040826064170713871377540244259025326024375731854189266756619340908049065333311201619430813154875981908534466573943762680573271302094420504574194846670279843020797711378958636258287822350712407886795481801724394572352331135029497398152296368444354776277985624500345166982424053189205075395424925403654118314789041168518272663928307006338500628954983208588642869219014905912344480600249778483561324359640513225524846528720664332180987279957078226945303155155696999099340019558099003128224833552929673554878091060516884948470139849053131973363747683552947281762054752223161270430666108683534272579659705473868338045254490050967409728084484012382975786664269909272031046500678141790732745842972619438944744727334423038048738517530007691865022824485984680132417410039524609605750038522197465908555276170047080565900059279270210762429243572764086187402912800781673347353273617117726914604087301014436424292673362097003057560781744250159071934637795316632088244452222414076156353914565573555012802037170106769101738527969451899282509321647259188178188007300609047937546613850480512430926601444829328996367345196613759043958067473448633246024501221600848953599175750182324866028895465681269969937190426737201759487078643816776174293082057087286586509213383231402758375251872170763864125214238806193986828367882856089364564710339049336196525981167750726934473470068246134203193550041472039561659411870696029824361281852736526665225990721723464376289911151958790337652333685108839126646913963110381889138495477057732557179747981507712585307316325189866300682699411936683497702528692202333929757350024358648534289008376004694737729117331853367673731382861804985222383171660096637639487563822304948452107664653716325877003297505031255214716919269951917562784679078836625905945098849356204341703535578286355747462450163520839847933426278861106888046064885209446843875077146303721950953175356441710155399686848624016394703048870990952027969737154737690903177378784262363207445610091179554011647662146763501107706540061787573763630339924898162572068355532426369236292240603747082949940268850471855703430049843543688205141984113286212236615284259320987060398732736875785896807112009887118904267120709375092863530259262593759156848357583145749978577246781006320811936922389640306885637901822902273511248848455175554460972249570811117767743083422080028289178669292333536150992937001216843311894424525296583478582484391689268496833481082324589174444978671727838961099467250763111185387372000829095430391190170012024638810045637600090146610821834075793842370682696836644652072679522263375867862608528791008906543554013925617943739140301385481315184702792435945968730659205078094281316017751945641820361117628943112213371721899621425707603231782435069915553658090078247852532846869903382649105071204704571264778814555944686963030044274540483257958235991800915190206296025145743082516617983604994536310242145625139064876414372056703025197617365396985006948948637850175670375434609661428434162348724650456675670200708090043174158527274183000511966048293344338827060429582412040080310683347319674447779465681961150102860809847691290588684013967081695471713712785709416343943877745679268516189630808507362909996578857683721303240114990168369141930474749917445186377525292722753559962763857801847767461411056071635723884278061634087548095619087376118638134141092734817532957394237796878076903653356401434733422948844346636100695471698874646316187108257395039250284883041627749990172080316820096233267003444757369430117864601157144276319029204479462546242237789181440047289842965548626295905479368642700947333228820051061396393991516426420704645679575843571444460972924225027912348995337389917454740286993567247727055255876388329252906310921170472349479909460977034092955403101508700715801753549304220943100285172626004134784962488503012379219733131757767745670338249648064253361880737524841336469100105213318707003601044235803375105365053395100525779743561854445682201344048842516406940722736590175379795417080225930977510584967897919409242353583392308960272676025690579386364260026920344913726502063145411370165230780970286759015177271651344834653925706133396821127157082926204450907390054504154326851039040105224715736757813831522465013236838609182960762624858473985186323916774357391720244160706482710753134627185607152652429803602381872064622524953472116591539481087768330386674135230786216556602096495312520945444708669931957541897506383713653217268491827913109551669181687195895227522849920938356053521455281576345384720564340148738309189315458322368295950981287708197630543300694279107552014458490354118198288927251000174705062145910293916206316427223376954504118641722249626586291042855965670963073436211849259843997402686925434571726441203552570090963584375014890954638242598130612234775059737584254051445791311834450878803489881897958121937182156032235933437592910802910577929748714036511247170682793550899080480601223457269896505336634365724684098535195364904314093758720228418623227194155371657914174931373319484417614141912534353264610861262005787475234326800498880819264802338083726386854959125902899884195424439070230254805721132476199582752019691777848948519629624006987906104512213482862331400592153826739540992723545901927284242368034777527351850614817625562281326053692369815756049679707319062050958505023696473330144075576153006713408797073919749554331691201541564402256540912960128847633671176488654663089553604628417164306324365917153400786791973587332149360556880659431346550962886243721775783507263849917570162858993946444021865236720112632984480515868346173272136111193792179034431039944514191883243359991860666165162153310533697273567785289554399782997557099126412881711833862864935570676432644107987345095405160605052999833587006494529074335209781235116387749554157492937152077991312995488496652327742432120662956064839119427427702636912716389184815803119520043325797036069230270686204682722711149133601880942884539980498617010524009428648632601285947085631900349926537240212733637232945403605808782267928581970765325410238268097085388190923580243094556099987237145435205236753946673186211284668840720716099106034117039902689494228251413351445483724676784386221221177716454285281136974991854872238809227533717618705193987478625359394270920194708435401499068636638180015553526433354389337784173302297142813434151365523061491083207173082798772847342881174422522045922965064447369263223220971272266461168745387433547560788668432027556061862198015402520225791259211665008271769222929668626230647526454560733759827427390283185499132519017666569629639841215436763721939713343985935400852065354096541467660567173439152388957565116742230588870618517594647119032481208539256361042520367008703668797693220176855846773871796825331964891038031797231576008817429972930604322631609237598249645861587516469034005633161715440902780177430883986038524081693638339204921840342742347243459011991435961409978296566785508502048338362670031350963064380031443513142472460176941711667575545536942365228704601949246104649240612636085031212546484472196235808085977300483464505530244823562643020522232692929864009743571905378263561040069716449235264711307401999279543910956355083255373895395722790009830276819693510615836243971276096356361026465661217896050425199939475515053755048009494079016023889593543105301399659938533913693316801373415194384162464402721320070963986225243770368955227507159940524139498058764940796805376582350135448668854723216139083197530431221458368555564407386480653754363986675954653358274958522348096327856150330395625081090680697301525761901100498824411642800361187747267912560849734179311446306470013673448370149275431512132109546023719862122627438551177615840709896517059654596951547565321293100263366561327208173692303228978231320111594110522424850560320227792422236619718736512513619906332703675743936299552400386999137065655223295319422903153999020331111286365963558614501712374881007059091958572911964341027231767515613592166608673994098907942468620462629287576339892228695418981481357838627250527265480249127883994615015199610938081714955063790334545269007046404253408659648088677949709202993520501928076200644617782388762247247941776008730632776052196258023761370547330889091728815734549845499901696745237489847398173070693999875172018782318945845709549208599889988500682342139762828175796404705594190828718834372251416918824529163719883452083780161375010923919897866952275673558773941059126935291318631138962548212831154537363061918089664711298365696996505158369750922423184961178745752349514481584596077986790792553752217824960757280196806635650428121276671294957214822158511291836969344426626323549395602015590812641684370214963871526597650098817628188977632772950818108753311981284622609025449553446955208303587519068782455316772232200434038255727827654976784558583086331476539706759372863549836048862554796793284915385913064192114173802924569465897732401641674280949601729006967485837435828322510677527132246820330835926299323170127573172769411753235775271511314725437493428684042350377778832775223842692650845348197224711693025845905360919151947917483041947843150780211702625229600484652830744238671713463436199999609322389005458855337671583913232417226716750280127009358812635134056381454243077373271553884333188298577462984172223330329645773495623077052506801197584936740425092865116086484573892550785712380702764989772092679046549032656227395077303010837456728353747622716137723949423186574912129593515162330067139463170668555995886307692843238559684536128048602871713310710767092086669385626441511530434915718076574101052347388982814266201030631641682221186587861964083377900093067080867842063004882993976549796211030919469009850124364430527458632365743106739917150152761797527615661467617016032834436063978228593208229518136310881968993735951105766815415835076516775502778259076444636749698492590203385346086342671136996907247422679212452356521361146956125700753925409262276162918450403611965209424513587228119915405577328375510855709320590718153446598937116173028103577893102830118442641813362763690543980763871805600450875209503572015573239284348803209252413831989970221206418656747648070998109657205619842630126107848697527628308572623707432420583948218653592346051383984951463644722812606742561336229363265047645023724379101138117363668388494735348839389614766721549899677567175603193933088374212566801367619402182353673230738523344229188019225903663764368873700945723650414365372685516536249611339014760822850541637862866646290095691178075567813466608296149728560634410536893042729287955597491573284956156372651189306419399592726534472887470415464929405532967810950371437092427054372571221000806910534321012530103648851286206906755161853042551437179395266365515124831849936356220717390093723545009697079527422269027889867054422252046635051977824331121128971419574938443833666366279153997786874182424109523405173594646522161921389218426987646374428323674186041910243346552428961071230037036926605149578196011962071607840457176164177068889380588467899989605168721419647152824693355096251074611434153453296671576531903293455113502962340706560726349099765471398802217921894119639459192088713574986541421765013623083226369396894931512785585526135156059444659684879632470290240719319731590381158872810190883146638711733384438392164202338950079984979084277001803436054634445528718528803560568867711798499726790599672733423012250032856561940119410988882756501217454872865815422326497891421678744766558160560271388941368662501766857082659414832797248683507519802544320383336159128578498675802770927116724867477736336999847057062208247565028544880378597148471907987697916237763451033782797417454228340971554989549220467427175240772301137337727352679066496776705669456603680995215820530155812574365795160821673367292938978833042259466840177522014297906489960236434435933171910887246907578439252952540553659061718360304956586220746308219445043606355021453834050217509739759469506170472520753386810613188034239002691130413465763407510930276079900499503570624145322892693712047432636961612382132284269827019382975930128362984063726902524540081038295548981411905380559225096761439097514315622612355484311217457248770232709785281682739717238993748221595295435894608875275142654860142416332581971223980268616881225837148576403445156673975691059367271997134073104133046317805911083522257346761358806940696209058467701116768968038947192817745612036628116552619046064574456271237245068389788517641212943408277500060484052477542049113071178400742481601417430435257446435995711370361387940152718023468863554541179765604676515326633981080098037421924170409890085449987496173661076596125297850392059776190103315541731116249091565344504218044165983996279992051745541221797073406467996227705679740096499779088272287442236439181233475495341453702019057402369962933232410938465336106876768272562343934958696562282323950563026862052065345229062583472379540167405591065222384338295568465747657211639217693845167736077609574067929805345675353043090151019041811168775894291759326206333387987158921319886190069769845938030602602467505928588131769006739732066163266369544921025369143977232532384804838453616034848059314774725052543289903750530920798345329120613400565194170224534741491112773035038172854415076141502648069598477210704248787493107257286244814223451097146385564633856486525512637922266661832247387495303582958616530845226711080101248683314981488682471964528964866735685128046129707416824574062143326488705960532819413759363660337575273010697917066754307046700219186731858291031857255635598957680470479290676889326074020245244463232821245876720117044780847422874695705642977397033111160236543231637715260925248231165419109316347951181544903324573585398955957058058633278617222705701998333484375638414368243475259272436368246208210450092825673911550393371618256473005168972479181625831418539679932525640579262446590464864866380955474377416628799004921136030788251703105850562817800110450004126715792148053925328642416627907318030962592298804607684466011273205770480905990800990578525175160809621121085771501000789202099171954563057827926075155928726984815846050973994604667180176003260152872496684452909287014893669835195048408185683870317672659142536223455041455668190695271978599927766053578316908660070295641580404706506087862458239860465026257159557206793600279762693488579475561962251144614612969136787586683520788839616738214138581294658027612369187067876876201858633552742922545318766584448452221933591870559332871495483636839187706734736414033546449978219800674784117816379035259517914501138839826616910041962458715075277024048548978552085656393990851723603315747737935064329348719909202461818159382090684402175697032631549045437585886098350545814802198349217942865639789335253883609763083047297406251095856753103914158078316929602740550741852332861171227832227091510712963803043399424735729947908745873790620809581785266688955225278451994340470533615891242861883351417735280811426572652915579741120766072800999159751098604785146323611839562996568189301994510068624858360834840646870632777690731654504011521581054970221828846155357659024334366799335123350291704770491818663996871554676267973704843374999125901661074438204468502128179872480012831453978011174217290157461672691125483176847642945419103615569106358052274915705775535783335439946796280452715082393344574067592719826964020174490719218374409080307108940764077776386364379336528997879275345181735490634647086439866347557816917229006602759030690134855254587105487228183069409140072136109564699358629400945113759073409431987656737125418354227418369930354008266440488020753811191789087068328282998227651772320372681032872330074937696533727155577884724421413577604601280225542465516118852457511711207539054406772546611588417691960568394966698430417355675393386104344069431978003464591367325471330146937536071476172216481442239965180349974085093676822173247066338900861898008827367043172766853261505676959065803260316228927869424254671160515428942406503708758075406448384724062814290794154479572326009405660089189110538582674862697631900406860416783935267777985362151336562287427861404916843490695215170473755088498356181685685893406214121948344053596007561914088534056044180830597762662125279467059985489812961036274564022887599119330823607437885004870279862459027447682392673017466618754571100197070835942346897453301788602727081131101885457251582363011463416325551312255480181647610409959613499758153804103394449834012973589522926382707077588372958155263685768953403384817593784454337128237705063195485419348577226506192793736697754674198444436956475703272803704665503483794473148891407304766255529369072197788075860702717187737299706942979600468334205528613411551718240664543973048976801520275420907650831273171583710847651741940384429296925279031489694547136309889456266157921733136032125185406749031929835543845974955687561762613446998325744701379759675462718761823495628014091614600034875808548745521927978858769252893514471546853678635701305697174156075263452329147660712732536137355398001401820508964955527706597947895670072132511976416081306091343534852772961780264807593283384716260051888682007149405263685430310595191693608758456405643647059533551063865037340465310712172647673838988421117742526786354251131478585284597679367311955741592801541096831224476847277269627548279427876833027522937504355513500085365063883260406346086594149373859529772210466693279668573372303822870298076767582257432361954617376278177737909350902798325130866973460550748445358883117159131760192604660011542545063039135136392214868566042035877369585734033870011426492089066680602652242396237266233497966245042699490946342894014633025128204239375759307145481162373149474799998246070943990375459783245850459444127315733928357342039581607423852476318642991682249485212458907288590579567592916189955831653769097669466235898829619631696774984814586332808738106672416879512295669161882179138812292658643520553992323664409624349343783441318331255606865331218116327878747693089868583466047217799898465679265328492702329126124886133324317465721408826986450784175509756679132437623730136898074896492733662909445345280933511274009645354151196759750907909934026058298675259315522390095080641690986353918823694844046476242195446857901348572654440389790107104237066771611017419422170852879341470842337074160365997543644113074084437875017130426052051379576976994632223659608544720223985506046245046411111810520052640897915888434860218082682714693043095196426471231352133751906359281078528543157676222643679242382895942586376115639546353373279458015548759120820106390903969625736252101912062671763753860160417618719031668271812109372498329783882681010867717979489080724994435315537152836482261906897395962336075776401810726247224305504216278153406285680262897138686446595824249797452205259562369374056325996316986029803840307812961922903866584054596636333083213834600850521523233614547042090886630829186184395936658012683915330392567668090591171109072345079413662609337571566304530837706036202002143771812900241366246988488456282785627067493764435589742512390091912847885727416129403309645908258406127967711178799886519671388663931112343586265705005374185020612171868897770565769292991032294017184994037009203859341389991071520844068745120330867370247273904204067455049126386426053869537962247169227219765568117792959961816201079537243673231902048423112867450476119328370804089977009673447595908414107207958767642719483428421799079246539405065010458522949430941925420854282371133869309803525663174711954566821243537017162812913997628048640595554125636064626247321494769458786817359374286188385449966575438844393682499406948297089988153530412198838413710941509134139620450614858854976214225201057692703720310566682478236656557092165474198695392901088585984921199823019924080178228969232278820770697542912907305132470685239854139718903612555530497702167066496230320247837318151359663780024075731802832514023264399292350160184070987905401297960377261712638954794225902748427900473793516388343007098086542177665165355964024562490837117363686845407695676197405072976815581171551514936891740624859450600913068047518062776930296507518595666838110940386865590813513589798389139761120704041618532140152518475136771867570652264858293420629749644688523870114404176446723863823401408430492366944264452620927473060058289876326932012217674379284742859570605373981851249576551714409401052867807464383532987343435763714465045077598635595001391282588418840111159277772600509876160180970263090353003161237005617924916785147948259722513249078657124269652206850623615207963037563203468688130843952071592489137421370913712258920069953630497775205473301278576909367314429735137304058684228767415138902550829947706765226156305206064698884733162673311245267783156718505678589092651214992693638326571885342738009817319842564856077150174020688382205076119606617005571299179722680555183377173871631902683365895304679238744309781050140597938860506920841729718702702419691557259807608732116205968022972940294700367633098010652597878751371710875913390207917678057140052709954055044234506379694064819265631013498436575686783835228620015258314020844959333011083151095982087665706496076821431359228920292356760860387357049598753066446590199905616073276576958257706183680297562582221614704949441994255717149868425573139571660896939969380630889167950086744967816632828228858913538095464007657218518696003340757133999807318162134366941359319084284849172622621652868791967502218252734330793836329843462962649322724790058706056236108520362558400253117922094410946142151760451551527199140226738227808820007514207197034092019886910271070069196319470208289645806957989233695071023822382180970907371432777354254163933915209288786958861444754353416188387619147483664396841605199590240157448423164118645400738693873950589261450210503693478686317066081573084944641137188520875166873594085163867738247903426015308819363882379723268257291326839884270276034862657192921252003220757504098967414312484303333307696981473687444269611449226294711639082688961979882375760161912352957579748079617261427840014888852365348006755597959651382884757897524604025568741695763815993405324325247321255295041055355046119320983734242075899499176141651844510522054315276611362401336019735780513187678169178692971333764779396461612439629117818188918662300045276371057353445843662403543220246034968757393073883118034197745959661821950362864270672339266982965001283560378851912106016097077838270361999565446454222958111066388702716548057815794515897187063240923758396464398467345065056752014977237588883517818607919686381350271138181472635354036585377612727112055308242433125616618982003927866325902697850471775424545310294094094453683279139618510547788872436383263272693589011270260314816246006570469597514164521929109754652254644628184832729233412270902385945494917465646856269658742967172247908237625474408366527684570055898134071214985469399135250686829617281402630321379760708308826489922138077319242832033204720680736400001254391061494187502326108943557680616344518330517473921361488735507944120583667008297189378285573606795717008498276413063818871503596668748307792648505876584087169165937454449724924033763225099275870302625341407635889545007418748790458772061569090853605829208221959452722188369708144505119289474204070038784467323552631263582776952500952070929094713445468584574540966726163794896274413916528270970908489658717061889247619728763223286965383049588820343484612396299419483024757411966049211176148143373052380423751691607024797164646036878184592957516142922555269396977512985716580712561307402335922401064964768242886416914688622530043174982020919009310012526290836892221570245716632406759507721195296522693830079021768274914232880115405880116534318143817245889563849697939733571446083758176090431493439057611596945918983776308664220314813411476563796728453282506243312639481176217210139022232118693749530709610628647247845027101146473840815648374583028238961642266854855676299218637533488147845719759670278468215652246456115908715950888116973264313907199769893577458070098903331512079139401711532608120813260007958973907115022093819252867770730890612248452514102705537758565072166358200845504712216295769632243918612261451985408769635235277434313606657073862844491800924988862531205191754254355603071957154479829252932886414205746191626731787744356751369999486507534196000650773160401863322789650784421437536174922482106746899094191430553226758038940763336604984896756966907402362460237308937277961164910451752381434283657058368399819157554499267221222716267110312832549709337014175838916011847127338894939255485689807554938438547200254701735781347933629755294225778716912116659461084312052177210821921492897431849351303696222856158973357560148655738472006022444678406264517663616378151899534688396695892701426544428220184347121444395325245228967314171310114183332067509263777034855659788715788606131614652864117192299879293065847989062220935039773293413027529713100541479276027421752138473788597224535819131330598425927521287978663881028882845244191228622208104912608319080851497560521677841772956433960103554687315977728526436398359697665939651117398909216674393227526140458601452139462165277456233616904494352411073413403448069625309245844766176166999181216733977122022297078858457391170099889655574538135441036360950163093828618775663464129316942343096443452389837138378777972548497670687768206989519178465791257188850882743279277623558213515134065976995472586448588540612158919344091054534921584967621227933453232336912260877458434190922798220060283352243321399713363399953020130362090120234985307029984753127828750343838202850429656213410141650601925471156961149835358033490906686680626872286191904781956741599534458836437033442397745477722673631625948989908463325422357927080941681961645076160379644022032506312455810836743267333284932822231620342852462616521704645400560854510642396715275336899035908267913085851792124667039397781313317447890158306829322020962410069384200183962792505253351766827925585156072602982198347082898387540012409249996682607369908153210490111343452317758894770779689980823985311856070200469076504073052634495238577292095812371508398999928983061947914417318544010937642768921845054584250770374363409616983547827205273390158695974387002224719139177395394545833355326478666932455551182367788439044853122156475183760263106874219501037404613144126735879745107634612635463849524778385397616293496295899955852775400202476352516557235191783555742125289178884210653004131377588956415355856644566508782318437904703465171374735590987640495282041352368630140393501086947831809728875049730963038814468778283275511578070045471539177262440138323444539229711729638991328603076390663325426333315587909025850406546459580524870284872684819999752461444271141316445077622758900223914151397487698832617255288497033300899421912851177506725615900943576242734260155363873338141330393678552321914348767644965610382657874471002083566309273215473644347161154773267960972889278544571715669685892118837207064735699691914590580470533052588230462353578632701958913983804132558686720701007595661986204430936922567505192478785549981873645334966358953029130145858870663528771579188364377678599299976287488307095932140167915255289713914752015604441726684073367741196357434525719058963884542898362628398118856199383094395665049640829703485322079046178315308323587654134722922580948277268471352967365791560963128756340899506664084438116113303655168887514922109864036158737321102699092289179287416829742912927075405972745942975206403377917314051142626951136486352697814593698575371427588828319246835051640181812610490232363312096650317106603836754356142340084393836196264026605682381451391408048866175210950025609182224011105523217793588641278424724578194260999669518810644475651182940789049526153536118094407093271761491142725065855811204996395343167213608519612266506244211948205337433556568090796981194595800195315205887163590104912988342368629769704055153173955828819372348035653543687357398595472064783483544349587502147839435381296218540623892645721096841024865095229128753390857091716112007387617550710285188387087255479747955826422248182402243468338104539387130129840202615515283662126523062367865532820490151939872394268579216399750883125586466982417211219119361018198172402870527738595895860870148755947543563666533175348391344147148179100111817875281214230718839711476570652637802935940979607911219128767892322534536153201999042598463067168901773515024913438552601222334166558613347444050844836172408570265374774990684570055407178992862244268131636013631958622302075495739507097888627572687284816575037520878264617440370558751276407529858794084737374971125838021792426553124678546825677936239862483954544839090744485059015956448603344706436429125583319757687963024822841847016256399249337115358278326426775721377821120390274660978202506564648268846341910117899528825107826298496254463755777990404873434952301909985865162786271840357622394703748961962833805716715324313507963375747243228945130744103195447657696558918192645075240145425263240364330774512948671829042232315377686340038053272966188750125999873851780786291069385498485740926134527877375619133714712200648876895076184492013743746822089524492002678768535895673418637475765986359637124964705409468021156707757809027987883285273375487160291346819780906313974328647704706340592717601805541405136235248630201707994301914014625714685268758245957133445192810797596603197487100672267424917210005468788617047158178905722113411921069569129125182357916352559901847705144362428238245394578614052826432017357899618105700000565372011659947880100803797215825652901385503133925105486787003120481073906113943991789276100216001434431217667878896644001299177580251443717123578018315741316070409937583828790359490257001432377033077586841550913942514664501835793346073669248887739856319719602950390055298551719666044197599454203544374379758868412985945566274301534914737551444498456133361488195192760982885459520652713501870277933439963274720615601545409540786440550404690794694460551294610246890691859040334718006175846757808097126031545736768758299374674549474545759635662487481406520414968967228975373330319604033669129444147371356604968845325709671870934252467183255859966519236723221918253320574191092838315141229866803120536135719051363023361015594864328033952731149030564522239193786709807818231213227224903982809590269324070587564616945097045520328040740535038923563867879634054798021803879927944911572962639157301030165444742811571886830305869640238252323507901452111945754085673143518470571283114627895328274235415906535160927654185932882800577211256869585537857851980300037441686751884607923254269987485801791232391867707045042003913557943894329363835332182513436093622586502234374115806005634972569929541684342131644588368552442572286586937798560941442946616566607932945296728042829027403526669874934778992086407356428171240398804197868558573958521665919243156722802882710804017855266796815635525405602951327988916247762239711600831117312111260884658684548063618937076838981920350171544572814381589287378341535440440922663970308863737532036068355863870866853690503544773678959131746964397992978328825832790824937276758491845734124656078063092393622997954734436938773128878337168687397785627197849374104002395944471057761393933546368277004263541958000369955147644068313878525983065925531112253216885118810501123739583799493107167810663785442122139700704493413979655696105782249926691235451945915720290531272315119950112181615372063946454549833127031751776309946184449771353941224882510964003360969810851554554033280300766828067742772549296078088344088199924325910075569054122911618436036984675238480973165534406324712536213167054987478372069688594473512698394243221703681783595251146678264557819080104785678812114424818942295330550302548450417054048661205565931565321602049269990558012883381168839231581482776323664297414834609223002691468543832632366143313624760263903256886241778961186259517260870712696041013714814068810132474441876218940312039031599114041201400580146152774288755363518026851595435200876682863783222410091563664391990965366605632122702142300763782520027401473962477934007637618056777183079599731643779158101109465606020730504615176938281645346454367298711631512194713400322446223441946124980694543476709720189009466529978929144887078780201153497212922828397187896997081686730646608054774350755927725080726336558254687060502650773677003195175977170384939322427417255023284143597797931955814326249990161940990542956516081519399309648425462650209227687972001610424152057505779170603366428666310451913608581224638396314602216596893169670418623839675109047812417350762382879649431057089624989495655267770393404718266340026042156483984732383140423912664391044232070216777553905878272195663504904206537179826661738195787250424801433293817693565908439561152088587375308775759237910278444429770980619429015646859340713816453678064158312614970902220855949926047004659868922644642093426672175950367409707960248341754634355618386002389260192468297962465276825240235086789803492493104215082310288770294245393790276444392543625678092915098196333868410536920255372958827358053918166411533647758963843018286373307093365462561189756688047372484444604414397113152204790113234229074930970009730813756494471649520220718818129790568295590679369357420285682982537777649813720772278621767423127910165635265875261603041205080327730690606555996067705864641669661767515680066159403951348923835482066471566573233501993474141632869378303057877724194669966715113992580453840099655054293836048538134801273062303286616380605967143652467209162825666520281325001079774094455167324442094788531617176646708815582614590483006799472602420557450727751488992956858226433340018354614171198047746365590488687159338669944659117921268015679429528462826416924579858950194465470940270505460236730228072920560174038541401606961667611076668468136443899676721745430721246601599325292437680631127923746180337461170546050430659307480397998720619681088989659982821203482479666035163345796819458604417443050823029535728810932916263294718219705442753642588869455798018585723459286908621891248137240759878340548799763292565718430708761929012420322860109152037471351509643074745897505685782923582130992813235606572003732487186113572642345200671874902811903417190608970394583958027095781036557459485611269747076729953996567628183025738560774593134136863482381695684159853741776837204746440879246316061853481338297012792333313551319866593153943715493922963924398729419838644291095969748936356371513684498586150708228484902675478122354410622117352538429554614046617570226031452041195633795737351320431763670721752438426111971849885247460957401375343271365945028580796482979598188985701606163249836398244851380735930758283674131681601180911718175191660495143636336760587190209047853421878974997830183360307487246828143819128847531860255988068117672338912328375308035651306119952424936156255678634345997614811016084272149750880989827374280609933958570726752363410926259094926231511274427954590515844111704848292412393100085528981115477191100463690027666566163020339589877154729040930801246963060481295228712025344932194433935007652531923286591155636377591599237824001085924794942644659091604918595049655932745514191059808423774017434294214265641150329962112920579242033485084021604948113483866562222687612527811375915436803014642451493690280316502759109279649562603900140726512445074500294782932478523697530440622402954479216698316388628307796669909669323838833590554903713422761457657492625764579187252650401883342978654216955752484284890972465645242796657342417601442437734086988937073928832318561075177724365419234847906151884995595731681927883714114479231776218745249276991886213965654066636204095191822067952089190692384965444882792034582127275500716000474857665058070111011260931584812092081808197119112947278235862992880694604193150108312622901389928926509123739801722050567969460152815601975924687932922165305621133738171149108291768590178405772548645638312132418520122199706509475305705915899784469445085111388347629668960135851566314782758803160036589465516580847872543502101037110901009439064184667308214845898063587810006022329750854010312201731524713914438251999771008062619131528255406194019174162375197985843765629739927362270057449402060380377599516321360213876402511481643358195925517616074781624226760824876351453348476047973389822440063021640620909496021280195565469430439178614565007299816631059865736324982622183727155812926045562927729422463932650301698691454798428772789608613305689227996922209949243838440005078390873522268980178208880924095910598045118952176413638097428146536878891812981662020175437988868988971808822570839542841632394303012461508807912404111842974199768845465617525516697146713230216523673081057441665825087741730192176405088118742475883414121747515544724458290177632624816752048951508016937045113934271130920757090896060256553698888040367060107338279206184168312521070155176427519484066222267769617874536212867090543647217865454389049647015724159871125712065083158906540417372639957767106251553841509880641575791749995924806727754494447887496116180586213236171125918935384048416409437114863981927749170755066872743432874542277255939819044827414671717043028579234541352889713456665342248294620915687569490112910675260123676221390148328425202943188736288543924429341095419004490937472698625096268750929266450600228660605967544023365112714996274847031904466131431584492284379373111665672240885732194436757812955831520946419895954230514948732362496795566080303405407466451097930976304694035416509884034643172489345238338520236810859544746391935115198459401688530060124981746302131105819238650578237994368130248027474636118719254165463601577821514386795216995437791053751224484872886620950184400574905348708588288114506381261646120799361733483489796126669203246349392964296327194122574875845100123215250644161726558818225815566983300564568840082538957214625005452076470908586456199446561930946873973574410591388529613388363295970162229029963460266086639170078643995135596347912142042684665050112267345730735852807645163271087969063227599644990502520659232010219618659362387767424114185228175873869249284870047450716682932784061611664633952696487941678578702924706987235077303179540604025761229567901775712822858297915398850999792062027982364159598383382731969615164383410343550675254235881406464269868221245577157080302881340503354902274519663845500107702016179080521691290884595925314980007180597718231662486746356476550701937348902832592082724891660946962297511419500073727100195210943419418133023995135073723191985459103100209245316899352094706423075376122997282267764227758868983476086064474974635627567826387434630512437014173438169743644191149239304478560232250018688003321531572540668765334652801257729552346952128564435240064275855636446625497144997293219179118214978224999459138966326073358264992882086051264536696434419404012069805496199296075402755319041200361368667436566599192125185248977412977565105182415008981458927529480175130343610315619820817601019465521480186455743325942784423798350431947403405997927991637044743386011217550550041343652481231192419398857566532321771050815929773620305375318653690375423523439714398623097821466967785089140682208802229312306633961583843932422684133647937832637154884797201975621843335103126634642900794257757717934128027191307168199756154740089484042346592255696736962369847898886614724301641053227304426076509449497196825581649677257069062170412682614938859804354987888739335764216296978560402623717296058315884457830994879808122363281717645376618371128233230983007391192237479005202537953085388551074845205000165308759412364722460046102769206980180664936016940189105950682689215231581606800903831775021022288080990962951924743098729281226395219538485516814462092447624736174357531196595010513330105731997412968704055615193145941209346277038675032146998857762601891843799068542848545527766663503231346867459575878536254161188406017067744445088296311141390601715503348515850600318642000518592090194770527784932197158835921628450588190325304899926681844382245545191601942205852195973709314576599605777936777937726837663953183609389619599353788310630817504026793196752357284653941286459098785257051515993579743174561362995205909288011574397010629095705986995336594216718296704665452937276587354847295624949235244742564224680535679960209662057143624914633579850887093248954701546153923342275978037665674825545407760503955007056080804818520834706788293222286650614401248593137424721160758130962185716450724811697648813290313424550447480090327017688666306449055899183621414211650636699576667642247521458038558803604094802478254389217457297109469353363847785616737689942333662764529216624591087128633911371830385443455159010479438419114848982295926886927761383377408710714435102203666374867684002585617320148912239441696492818569078123106404035310692855961342684486807906846572325084749026743870263807786871741031841791310116741319423456003425895524583091965109782040072230586318478243076463065569708276797703924756723751682904491595079361837026605511391867782987472586058471922004694883131285749462617643581404803497031112761682370035610713660191749544202480564660159180007384526201676938923470305212814005839365707460957099304811100356155719291476624314194137539442781699173794250703076767692069767472346785698360416067536481790310168617733240133841111829671321389792836564293279301154498990538215867863272413661635764431523826093760069460282892111324301200016792693804566001423950529973280021657096657155000242978145790253850951841656941252380750870556924528768458476736835591758857208339925763342088309776737066395829527662256689366258524732367493021749270631435227215100816826684171043702258688916291252200846090064264462112298447555822417641881740266957618254066073553640570886253404991557821187719969502358229126163808606172955506932874773346798193359966453623890257733088572165745842104952357707394560399961878687266021191168408748985586012628181202207179034584039619106908155287692543447303778789139335911884882390462769853201666971021602933920105566237489303671982412029878225872906096926859016500959232638221336400069652453039529899412852247268732320483285098434986382035300389805124633605517307741935028808125859727647317081943808091715975812250975501408959470315041963933494395659097816054722090499516957086902414259033631122595110479106204965623356523792578064880903357374305795836487344186315495445490999658079097818261373638405687559347037856595962201260818921706569637214802908867560724590023111886255535223467649641189527096121784601494943492451855372426897507893113143432804834678680219701173710080861482878949395526884892370134357029665292673884785306565582171446016231755222532938058552529492843804795237036726669549452904408405452018632838261009142116071263210848526572816460060171656315764467490467892910950984639423817629558424285472261500640293482824099497162512514947309284595227487585590108634914018857715745101169815881943422645202869102162642612255216197219117774018240044455701566374492384148727104266732232351573364855041159897296961335251096476042606004878048452522777479627868428650802414127647867427057601027021169902117474239243580278909832265751690233707975500642148172854835407903571915912463683053726078991097800089443489810279598419974543663800029693290654549337944559047487073874422245623983310426723678441830710137025454967634847506946680890604743974779705014986468960993363610945791687210273040734817429800522424379948514879934687341973781475723089240066967129697210549635618280797195164660977682998320291026534702954791307613978329029767725263566439845488332859248826437960816120885791126498536906510540584292415991027568464052408887088323939693032761058636014262514559957330677741215944263701670308569917302789154517939331508667005649989039836803503604664844446210615717624376982619579761637908139153194445588645958096652010082180619627517773529081527756501972118681990031431092789938340099527692131876494624289327957829949255363829308244586371523697593889648822660464579960248391421574239449788414403062282770204410582566399374495141979975685035662555667151715375137230250419360215198873184859357349907803638296938185931426849743922087530074833292260948633510255460844078717086806596640482638993873630436214038187911699567310045821171829808316212759498249089138716197332063425283239975898517998436610787451626243359936319245322623577060394838843368166471617473743824130241995664554793397076735758546376399293943623839161716588401927555761546316964957244495364754835898371626835258901246384445500033250990922490946658451646315135669755033615149035986527712048327539713672920631617904078140423030180637901665193436518594669760884320135319048123083944053177566895482271025177575411645703773947486042329897762469813885710017068284874283947282588021736650917609709249285413117311635583459165629138909780714495746577539205142054753103256589315992621271878635853760153769213069042353291364062505230829040029425131160889632726189497775156319724259356095132143261623336286243823907661101214596646949963724013062165792531410555867906974372028673383610100114856728156584434079138455550717168586243075669086492650912067877744899462880507912881748957334720950500165814781405940806048038754119022949763771114675284109232028143543643844637714619839753555730820932047734707202844201751933137670243689614186541495486170745060381069832053618938505384099337996454751142669859545700727420141447049840351113265342726232885702512044567599603215979023729660330366594076828411274818320230462996607110039748984915098214938278393767740577739890314822011821833590219614302074674757165794979159311428857075148713420474101232269031795535391688030246555397417008172422317498721533294117879794647315123249070520139081652765168506227564460588547916827507118858010363020803560680388423075205445978938758159199928310497580987012536009790583657382034657312152256151227384769322039991092640050150675164803254691105050810243890653241740686768387668084114830553466124473723347288822784727197382128442476156449309259049714929737695052944608811863785135901946506538800923343950952752201887266080906039163486257043898248311525604863996301526605358768922786573773042920792990334361783989382125113506971274503596502229962818490108691766093707853884115835108058717032587156947098814221996729728312478202842813844968833214423274385634458767529921532788473357487062775806550636064221405793187821496085734628687576848892414398709074702592714126651863928712528600451726383753991771375764549434723425692563786125121662324401616191710985712107797518220955842485474106601949617531368576208877053845774843731774949904069823171027375795761111731987281363576222792915377518669895794628847448521632443943895213793601548658869158686781972847236244342084375231739278826406520384291400976968170813273538047153107089775051976123251696555999113743551911593609698402605339662137147780708120162581385124786902182478337719463610509728421382024272257268063745260212566352925821845921397272004212423745015012951424816498890178699658870449310564415503775168819461482303742557770123269508480401069055913630991664573530886508786553409924121763875144641276296508518174768349041298589785294014105058704194090193964846395247598992896465640834353148775141630531101821212228666368456864673003432739498486623845513601411992004963193523241930989242953235308334543727389248627174326960161314192635236054821925983241473214430538800281204628228036844757794548305311424107608272572809711483986665405690961589261222861981908697979283701044306386823174640724184718650068326984935296606944703701382475717953962780499511442700389304717948391265261769588961998535800856432703552073890804337047351309383149008567643239892418682453285630212290256863311013325261148420044828822499060339323153136364952449505355312605022774673056668338869677602864367520545797528792064714941770480942940942286365011765913814894219013163279421369287531229865601652681484505607613728342074432537111859303294223206362976769456154772859917920961342935197246797150450835638758426727867349230887009868943013400062619644637317981887510026285126693553585565997445007632972654177726797196489372341651030443823456817244742460198365237124738387629563396061207629287672468317810408011816569127692271646581485729945373224461284762813609949360175652902790353291024939192435037576954389104677808866657078194382739812525736346098146534714126363951687513748322133980717256599944123352432546632865136592302672721431341410082115890610445940993750710514721236839868119950264873071424084280677243990501542898325859406557277773358277471454360435812990725445568140845471343354206863409156429494606631618680019042591453732739353818483944799574942025056233458114267967441223013360464508580812970405124385925196210589068482732731403700859431306187588050729564526474232799478727515125169480771994488438939604110108911437107706045311573795126505777575175576455041467293149013029275860988856101376293367802572508301087450889160846520349298422477241869306285512873062040650501163801155554947421637380667765316517260785744867149326577518536862639652486237457909949476703783232964568081186752694564370572115147308033366289073953194744526650002604988408691913466253034775011017955713848553926871330476768186581648279488488225919386624069790944860207003938995013231486708786864799574041541719028026792572708868431948596414661102455271878228338924853299205952226002734813966049869402533221137545812633705494397292925491333592554484940694155189681049529227399519088465335635787994900298819207533798107587114994871399679774823646690063970877126515682620801313402080007101357994555221269842046395154921165109039097003603057908483387844947738684761905859098779075858813783156775269684242278223233516054827480461704113074069647998345762802718531631699573385737116650661414325929487371976674109748825371052413569645428120508304980108750577174769650368878089717700320231372471840720788181978870084691322428774954834810834737265536638888211598697471692283227669455402526626711191438599743177692942407078307132498679036308563008661882683586069336114739528532098941390162351587548147879913430769166096842837899301267478799896941119220786846222636099837787575917031658160002637401618144806629597108881654837221922475683555877052618810238703779972284882234626814009245992980069886085940616775312451615463059553855335546146942011184537311796581126411686778998243410845044232831995295250553849331757183844402299714536906578581605043688824348958326598324930122749234952250829683750553411125106480727760696227767059376713165497463880037179983816622772175937602061534772012855208996984202161600242230932865624457054341047710024195540577222717407047604532346855623639755496409916604204161664332475539296567084499412348434368102967697308070092454924569726184773816885743183808939206674491819845862941710607800749080513327986760150266417734085442392556954205736202811033085135523964517612151126250073139017313649897004064681434537260698801127902512886776711972823679219900762801096216744940739866626504850036812732413082545895728140897467485562902748886961679025784756024422543447581170248259068401357093239040855265549897146744897909073969868151152208223151826265629076609434345971050015272589494525698692624355343071705730301847641525214608172846811015010574604341753706184482145932394420733441793101968561532124378613552398741822393371138738600235428738622745858059194489012765169095034767460384839965817025627863153411142841789891117642811151481993117169846618713359279592567933321831622950826090108026106330960930822527731751842908360052302944055687166563788101872983689715036738409727578930560365336615648630584463830748555948441922599743642094528696523229704057993996226450614660813594426593931859409390962982893790503189849619474440582728656062051779709279506693108158695636480383708880995615649731421789968033607490068196220865000537100860870602551090590040216747145996765941545500961858460769435653380309129265756011841300624097507633621352616119514448534101328778746088827024827083093110303119964877732586424713306932516063286318228679583053815930586032856528097104226876242425612750566460849155775738558523990543372206793328962324014161177060856525559599901184190158849200662484275244525804684822191542891678450557733159179062074352721995604883891693636588914530162287730880685815404148802266698940583975230932909424866168298265637328223799992198679624679125056106580873244760213481476939744376378701139639741101231227853320748051497084156474261044700418783060592266199790778454716466768532064300641094671846317716077329680654678506980598465768938652957611842630956189205558564122603167683476189631406260554845409205417691775138306340358292699803790214939763062139951651894811624672144097772505087699038340092964554819974336660730505021465739923701068148216947205843529428992194197988848102632660762079246503271515095136300946428142983530796831388645202044323537132768565124900149001849982824734344182669834232470267937583542217908807974519537263924223474264515799376756321374124038177677944849376258577998768465386243785977346868397892871620735512023591757264617875848602556827800764786297481206066761763230155376032564205999011055677996294274755692181464148935652671913082051827552100446350305470104790462523577473890112590836148588161097319347465714850450612081506849045134129471745021984193764942118906692159393006687561855607304829206433701522189832932840198969305740332717995112724585969486588948963404709162261766292487232160082487933085300833452027107137807627567968463082936215804281417110506551911973973673700510088073665645161261586114470569526936254452633644860691910379183799964682454608851350034582762099335408680238926803199141386214879728178787752069824168310810144297265881715380610400177661715228411632240908266753936150498833796442762475393672576982244475283135151297968261696914124007574997356901358134137550884448090378748050138316001201911176594070979051049255910969003564898926159412974626853859868026724553138367232274542983339162326726522549786205458482138944125148122086655509764152672917661070366103026126561131768923818440592659994303831675420969813703696143021046766487924812387386113147456749151841374635704707225786924847104621269539934733442737559478765686562307515530866177588846334565281862384353913931445400536572776625766082631951977521041448754084318349333202380500309522488396715872688232498480895500920202957868439144951913599091194119036457759056469884099178230530198548666551896573355149907966341685006003591042676382829847758423569739956229615931225528590503806388552539012265545288791539988282123550029870341159994633931163137902379168035062911545728096547220963462957428806418450316073613208417152470564955262602948984166983738528493234359044910084476932522860339669338848559801247403153007176465620649552594282101535692137792083412222637378725608686142367845602695018078413989156105202662786348333798814815032562839905329925975751991456958737867665248107669653979365347458450139139219464617523078075098285369249352699696141757250918469911814477591120626033403059544005738582684817113816682469239384076945215787665762667711114699961188128347240216751581265000231809103996509372704896203262058216654678891968265462964558753880308281593475476534095333782822863353274427888554879463964032290694535723927741239526062963269709166492484711727888629450486779294018046744698220803904842849013970597032991878649987903384476002468105533632360768024976134423017904384214679293568544401530273991097263116986974988512379058220333243954007568190214174670680643488950543499344205439676818483330256082470655747640058234855784649595043437461261548275710102609148673576644468260251409885080344597433975345548153818445169093731624647415637318717885575311456294737782491033294915179422706889403402487400172567698572677301589823451062970588893564779022200146570361615420930183434227991272075513126927182824336657357181848846148231343863832527278144413520578510425040479432123872302266174544376839211459619521794456587362551169224363155614166352592133666483877641610385467454880241496555634152949605547996393430653023606589162456438580456717475255103749419279508312097150484423799018486090266188827321237527113792845767061667015976721887048959852308513482916796020872411877711291243802594199366133800382383927083473752425837243858885495972546348447293505346900535060466974595813355327185446397040287661682314352073676956153638604705599772370322063986892821332371534223733771244134644045427785823013220293556952730856420259339672632940858245469513798096149722094441324880595887201787119222769237768271153399463488670807397067994954748657331296818603901228870447805956136498447684212835629411601635552164112312507539945416760078972495965465281676930540627261937016082017882446963332795109141435776905539472898169999163291976099391571353625214920437759800559126344271871536013515304579633378433820360091756391814227768773713963980603184099511930229554893386159714256399756837146710478769875762123033006252357296402087047508811417512344960354138350504268269665443355784597731793151692825040241454391573084927614143948106530987369848080499124573088600066566426367459868408721471597796312907081245760109305560871412585114122884701207976437740587228306372641570613349853659850382012523919618954282928362967485167115312840389283734342628549342667054735824400741830611620289074075469807570855192074570597903897511103225912590586033313587151815434112366009177153460475211925524142393859774274900742754175289012721540844989427009256088205070311401187341875528389662577517412270606622811785426375007013228138544839722633000338392264796727068167310378358105331700575613709377486436310313965856560498740876348273948439687296375084251561467581707432184357957887094403927605556256126317451682561025350557073806478472480177370921680461090635867280996635529393502552515806955843463639530573855102848616387011628633410547035303693498253255395681011956247436708528807017275249314871926616711921365684477178374706862219839285500064339848647641612675847062230729609673397521177995515947591679462290731674990677751956354908930196624278694373404397045543158322055302711489415231245554783609711465334139316620685909523922957379188053008013245986514998377581146060215889833270157891425483854133435321789057797425415440805904131897413238222096220525681063981614169510212931758056981417985871502413496472229455702926734049613242844994884178523004580113301951833891090945102789112061966106355787315233083021412778658306667529993110951829252689660588335738656974538201259132636165689857248714650263673976552926247193031078570427578606757653157974999481411447102312791226945712648280803840457201590584190477361906261318275641966201289142408684220057695037731803416981548185213573108770790147210471731618243996832822313677933123624924927828807993659144650273105012592013009452755250235052851321816931913085823375754112338411769508048936947348682648527522653655275003730926181805187641373984665015134738881130696535048075493455004504774637282616585425382108724478484548716262452786325963436822481442993856031909302748040375753497987277080791920969402518398720099082058009660458638545035300246254889933567811972954206541607613713531141412269691804965347609557089634653277630604475495163625478400914225442667676998363710374600039542588941406414465955742406585847299029133854874232176406941698003136024967377806127179535674828142350448045821839052493522382883561903252864184645802600354401627586082993746282941981823634561434000989651293275578138338478599435507242882113545179678629559874175372629625552706842498145208678500015023744306919151013204280904876493886650425273915907467104085887278420012877577298954198021340210934365262237484431808665061945983290581901064011480639842482516960155130794414969951078313467770396636792260506205357415427027458959894728152429860208547923811839901675088710207055349535442819381660264773478542636219649993567291773108101751584646513474799299944907385049261238627106264253982758511003766640858902286046626580839927013510361386605093111884154920787974178990333258987596658541902856503412854838080520135277056360977220552632401472400598746888079217953768442505882877950412857162451749993373022821059874245003815438164363616607617817682821140871973724482635773571352473944404187395651215320020208119815681970253464510108769726192695442525894494897466674047507295856626340081730944326980828543049409545386714474680084557595962371613542277434036975018943573409681265282275813324494865069180622277008512775512836048785774228270631879214885280563090157281721153919087654407066453050222085375769445941554352040537200714987240251671303729999507230705933404821458603323705920119283204781938990614102788205399377851832709377510707348407955752225724430597293177299704502799211674456184234966691668632419965753176004540414356524953119056383062625415801112871835195092528964250721000074806457223120588229826006786557323070873217305226540168890269210439746761835423202697857605626805504421427567593458818984710212625714755695581091707663166673908399398585900149541917940429672538541434448509686658670609459288940579062011228131087824496073078115461347646779047400430073222782260355177438700900874843391974381992134214406430230461277046942153741060763570903998511320288965746062288787124123413361682868716221171779216836148968080180445999066061496896140268663716560356462945979542137518805590457301638196612200502457521484728529377101143088456056810619495830288798844176585070072777118450701201669564041235747230652675919477910038058192063510188626778930038976041280867686877644694247386241113136906536068025609982694330036289426207568729223596415375615718009165753964683383718077578756766388495715640608905240294040115255008445146008650025549666018719129650626988795305661917012845971032721482146018637565945378881549036440453312689429778203021821064497322162732214063304847152834770920801854325453082896147324697919087286263668321824169585829295558231676152103756365569362869859362466454603920922925654255819887518916808888360087198236097285966962798928535484649659422447031196545545915328729004326939586933172901619397700035390442209604553984974632924575512961655505745154411276557972447036928479739912655389706311979214344226188106497386261837529467206798319596952157413141442527279176853611672419522811521819637019514738065371979230631223217041511678840572377692502844929336793991130962340012274134680731864892931286494806218195237543384878243276275641692425778226768270601197595385754536726224427580779761548903368269214109597035053549897260961483334094525610241581945157865190134033919127643066442697988199112550295658630566879036664873251048264089030506216999671113504812841834811602836140021360961167667875149640898348881559093098476450911668470928973553764320524990017346823094451275156549403165733577114411838818000037787596365307666482043925020699456979870758904571473067315831400832657480733241877591581778232816554956983406833406574822132974091244189811709178366097778376455680858919069218455179005881905515738514843575029878365829635002255663059852269005093540618402819463728330975293614856345019924653833555862912489555501556805491004676592446385478052892258397871415257104569073548292616925477335315786102931125694480746246936468423648223366866619828975663258646469991930800435451632268487356684919077215795871057452526047253251686594705945333994726539448214874491684160060641243535639176745765168153422389858170079232060785736399380416359263427705689475107380848627043451136577074067445607841908121161191677450739351301641721103602916420858611636408094046930126641877483958126528211355903725647685507725495572721847973256201543500757972318860065320468440277325272809331484945073520950098821636514502148322372291157677431138182825127220387215499583254844044867229544298569456374726952173278890178073136949133890951952690836403563388907974121269978818754824238562269200604166990844443745940404089766404704985060828257302032600841848326184608077230047610247777105010666749609636100618099657428894637905202087556422187399887959178561669122662213981371307747764133037356090297672582216698664221653785887583406958277555246055952481067524609943542274457143919242936463256358528755823514012515302464903602929236655407229645278783679021865027318389041669376273425402491142161363048101537227363188013941718536646456358227401839089679219126229449776581732519942245881793284186079515949091497640501720902637966936634502169446375447153842370494332632857327054975767703721584786662567790153837199383666370118824220827570192923822467619560390462816023575588065825817402110333883071947985947662524120996762750001176986352685115456450390247415106228510405828781269554913037539574766419415294946593815643344722671766268201442016731434373223858614932511918512321151315466000215075951192935495629354629078283812145421641166214488750090380256659783607290698484370546769597550610832253670368640025802074996180493024179345628808260750868634003683588424745912720201144040866467075744841923835923257276746516616419220551586490580664710828696527052075621077028340185050858474844769487544934916394767066205093796925987939330281448852511706383777738199377950881764155856145431441863035159488055734123425138474067078542555716614862235764922690141710818551629742243438561290422393840985741159138116539378605330393378018143256103929270588858424313224226469816969990089691798329896179545803863647760382311136340801095435931435934164021161949106900124419210014473549984697977518041682827253395919768793640982551433546375457785275032462810404197811647837506027918816003064366697657325963473254583381835349826529036112530122737137560810499329960501220324190989490506235511354103273881481314390826100765674636423771525486017447018447316623473988250927479530301535953824169040952480771181840268875923803809345358461927671299565140105476653223107215619555626647656187227222359203854827436106972954109529012189739804854715637940875791690707663207820505946053828953802463839364684706712555990811333769904647857103516013841109751863555755931790459910978137941401484305258112327163240283749688602607010311974397325884115535259291901080851788648506988091186044757852351735662715114894944266124033495967364735855893463964410111185804505293431885709362633293102130840067983975039111595343805619852019223714685004382583391084825350039996517484028568717518850094055281811326979324886303560510326054591508013378111747399971029146223546274253907596100799350290072851182501625809755086096421447398102317875458533463559938047926619155205040928164635133767335843758996086889117912805891281825238167605566802311811683541768150738357586329082610161945191374650026209628020313123978709680098347753516479592589644926081207591593641373388981729738022197497696358619274818711691102671581710035255634860113914083663530281017247621969510612426389119225408031545706000405004200315187875584979050759518363785554645722214489650590506990247029503731270983799562871765285314033664775279414986846199569793801849469679344601434850946967830678344886020204520062526000407148784818662381255484692365091110861836514228609847188987815858452101927672843520490309287712473884262211473025544908198126470310734260854178420231233682100772164837193398674981005650835357576429682501787814475104936945032367094257650042481114617905966954251815535705528259170131813322273315843961176026503450657917299063228218454553153787455991902870152357559672228437482966552038217888752006368994842862753906858128861848009559478494238473922409363609621753577992979613825087802300440347359012714366293901322677588166859661320558140547780782366123223087378210939411262343279927079713487738059356848860689585476233271036434520808760362278637053733857655243790729462576762160999758269646171834176282733977706831109218777319646020083713903115853331772702714248009371510980153818011796526226945217256725188307099784012792011640155677394768608979063902423194956458116507498536606013024733871117997067477476629211053976000728786401363654070334508793826710537680811882868238761959576835170006321055516705640815395750205878103376247409649449042000595286185960931844770294075018462472536938221223135861387605354670039694115652165785123033109473317011041124392960204717104290794560538909143875817631143528503974741021727064985777448639499152918016834335842812448119358951601285559319079283076153018257966333170449797122176354893621423492067881234579657215090690523100243473027797831089366202684781357300677748768830528616522418497512355717919851952095093721519576776608855352835721697123607639127942888458147277603158750184775918045482581620646242599589561019010271100719811878648594486128459258141969525193067592306482397661183569944989433721509171299002112927667301918117881931728118300402796509014515742840180451673766736262439082276719816761251279544209568025494835472402610339427081572854624397831108430579085005058180542608964221477429599908420896248652077700062889669431984132330295074860452179759671936350725075730180352837276074850919525483557198663109276122782773497255401442337075736493568331366046970886720076046954847090308344084214362624716352291866755695539143509998168116250670951639697190445265131972540316312709258991148143177810231107382492574950597752897782175275556602998095967857624435982785685276500657903430270613321664567347767320843342057847106924347436437109870271739534964317774592671019005237386712131524408493803446963407597077808813718764696246241113351000709199420816198284710946779666772563920630334390073643017274465594438086463176665677208000167719707174462777317558780787725015186232718368276601290993293583232377897019333448562647269967427744234075005860963503134620778271970911673760909551890741795695370762426059032908896366504581354691208946926534298625620461129396686484657825930414411071754710500163418155566437872254733195517165151408167115813224754994219056491088527791016838108998265390150552182290806289809743909860218397291731721490908871036894647201327168992408607818483955371924188402543827465999253305765433257029984019576056566196405186954844379742990055346385508406403584166207281674344691926706538113903150861915772468535996680126087383120049443901855019436382072790358666820800209511757095002894880209930636818166147548265656227256574686886606062745418333746316780629119345506520845561198934659883019875806684174011807868297464821890559973782806229299018860727887969120623562689065774745050600356150858885557790553927412264964963913093260224068743634123690931943264480976166329227751573439730527385035226338964559701953833018134909053178375172466510637969573256937121859097659310410557965457932167421810113977702601981808347791153951943809480329932174807025569961459788544103457473337754006323019999802775016407123028220095588847059651870903206140504398545307131152717180383889129241529671895070361473797583662056675349129737682571902767815104669532822811227498580823384799783613486520262093708342786805069046056183082427528245590757621326813861728894589012357662744546109574274479980036297915089434215479789988291543549847272956159956002757332095450185200302545512824013655794470842112249804747403880022700584732120360482470011256280223106401702948834161383749903688240056618817892715899567286576796340786332686900571874276125017194037067451471448600606731858090758563500631096125229270896468436501834761591084725623052551702734582312232749411690334296015727468811028425421533741123963627557724499652904797186710137195442731813268357703809882354104868976103632084484979773750793366843021779419305942508251893945547654208708351370838068317239423737518070406545591138200183605447240399346037121500718287957825932971617974475992336345169791540527743787113968177772469650477423503348380595660762817069778852762686376195008662093518869834150031074475942896119741274920871982518239169382414549898077543080934149486826461628490704927164779417801095369066113712093061287106784666075766605647816102690755796463577138939213511208578009793557691236971351091460434339968272322148068929714378136910736066437900414924608757278647548946261758279833802346202814040825408701352834227496102977131332246765663194163432598564014967441816873083319389673437526931957444125399259936155894011676298317431118091664530734424140920925770945565652519667332266026858229591662975656272951512452706193568498505941652489487235607091841304946025645941038970523877696937598372528090189328276987840832969056603599052990100199016939769535525602801200270065125843893320484308556810568569473397022103865065801692034882781551607030245838146303840159198694613025742080567354503337170457300483940387980477265932081854115395872304744972865101509997868643563984080155875102246154848104195912696133599764142252312357255021751059329388228604554943751827652668022423914469772433111754049305421298218952982216648269575270662744798255024000551091783750034119028180265085756157476134553236514497648412338859725600686109306647703057690706225911419328722735571489437076514841482018496506063467176043700841800996405821995938281604347388059476977413611397563694424338522551149594763581012307547316665166035231511460275716744314435456125289409412225020714492297545454969731266591480144172273430835643856069112048037954480656231626432243397897196898280504948198611411511143382049676449888264000845169700756714460397262051376808987932500167923234235550663272459098061051544273954549259856853623603351194668657890602957354231188644884451166698252709437669254260738912458593161537304168365204001599344002653083374792861615489057574039838360051234365813809896722089931174929496306937445497180908417600463981028577220927531581754743720635833684583871056325566912781548135288675361130937453848970661861719020100254857977328337715913873512464117031494699213579432478295808222095927775040971986036328546764354630015251001016411848464949213946468755758831568093394998951496846330608972467371946927094048596661049128045789080579522721144494327231582014085057999764806727988431034673786294429244131834979820316921093265937197648005211744824379515016212874200431410469480791880547664990118550862314060675673008163284556264828473193198910988318737712435821594639811745746436807243278023914590810858772504468191827020943748602194347840237895912537069421705602413092086806322453564914911636142504115220687612421706151389972478404835062079852367724614363446001085148840909537434245049638262000205561420905748671161906321121009066834565874592062348524182967242872802632822420342133825151265029799658475860427095871732455259788180457043326133489552758058210215754252368111575564493541642091728309239899406523289558372461461881319944934759562667695689068509773305956940488298084655770791919138243116600067582121772931004996406141905777872729318413045958524151788161206775326340721799605022317570548089766927171705857107530268419576304228319798228919050699413052644843798103610715197649181267668763877084408954503286789415281925283111092625390287848816830408046045406866033384018019280320036678642743785243028563312398985426309724942173693712310852396862180027123011996478288851836418248227171682479871324778038575953637022263927705160049663235281297631571517087212309897578737434072368625968049058028580779042409948177486798536582378395566414313434113333420662968301928371681473311198711825719797869361439137488685200977132743713361024166516980334466154640289253112390628750896757072866007797623264054718836156370368394840041872807517718141069320695907536725023667651954046565457647832748366715962286501684284712072095851081660289886779698491764090709613391038345397312298389603268212748311622691574440299558658476307786934421527057762769895344517683632590840017644976329971378220166182711041509424444305346412607876724433005392884060670193931212762703676016366572538705999609818397538739459038953736178279802572797569026593361872130898431847376906981373374980475873658013604514317395232266423181609971421975125191872192276791409090809581513070137444415043078145509684991783935304692295331375945089664325183506185488672565036875254099458280537138435445949729299610246729350772846787882314606085541111606307874292469615372977254511520046274770054900523577183103833072127694058845840208695297599926916207665962365905593836347278673222830928671306847797351433151404687911612852279280894608315964209683535906857980392686181545842078393121184245935054089948941707470656741925080154835117013912059795662471890902473595085761197568645572678142780156936689464190265803591549531355870696382768412096480286073544788386973051317591103793530398714856024234574298674426573897419375318999296841454044957608476080594886582661353963007254172947861115543802943229761963114418889333009385184677393416210333778755532517642759615745934761976625041511909861855874817267998327216695300078565766818903510408554435418547089458166981800891406382963747433501537973008010088795994879825340575237076768424140222479926139717514858115717195463788247148465277351423292370438671811427414501176142741308389621620198842908923563660775362448718040842289556955848018215953163211877666856454084764805620855174859513411167609759975890683590405233395020485815221740762053733877612682852977320246171452334433570198294110878394608069836985161754241286908125853627700985016218681035287118311766565746389974657267080012360833863947768175729294757500716383382756616828871134540127993373669030086687044246986132287798778158132183203189106897052721965008456118453444660108560612581393256793135285050186949824832073289717778919307305980064815435233979370633550456346271678516481798379332123602966607791406197550501561960557087740729074372532399816414314237032430490081072997581108943404673622657648118384127800775465169067247240620406887570989687701767161360363470149592892303571296701299626536783696798435743380841724233387147345082495579859627341882229559612446609172043391563694386119418808205831510285326351607299104719281147817676313679562154233748850420369575379727045269391756408298562308364758362184578023957905503574494430051243574962746716988751948842060555424719097501506704050244600155777212270935378069491077790733084976584313787951590034378895703302016876754193193962890851807530271406857807232213714961247374306948114508486334890747438833110858017270200202407388883034657943260746283035534729497075235779686454406517478369322173254220440797898318259223690947239496135750758044926528373640701588563189082688353736001302222706523609876893940647017081527286658256654174901464269052243484542840130713335309176709928061818494472328623795200224012100604975604395497911390625298825392641929896419831111960304994680259147552444345563596998909683213932198922732118567721638765854910705808497963200612670345923013781048867451958403808562760353558544487847487174490927840858335099705973750211749943630768195513942608376014338967583714225506946676254564358387410878653179044611671723099934315059767202931248428859732801548902431001281280672297650673405040018134064824577074232383670969689174166796009801407080095696890434118546395573691421541188460966063326338373366116460419775212133724986453333160629122506817938293063575690391657214386017456725355137750052530724240849994847832805352233735440707501813321719490390107714825530667533726715799826244733390435446856134010136475914216531413282219284885158663264656989174698818373216529376128192894872257342485387715278917626251407894913266391860420601339700110027743175444478941327282558608714138581053432776146123520345060123574929909109939022764403690231387129975812097673384640420675301216166012350653876792536934017399614947181736666891862402406845942452526389132087982366407821558871538439581345380852953779947925894692154548183458022872792360306527698670742807050560430963691658159954084726962667574655456850562667330085862853242651255699780228103048646625435975392014223251790481513548891774197179286526661565203449305963165324442734795843098706491554367078431644060661739810349123004300830350146097157004198695010616363735912150048932210002082277015933810481044363053809221794701137248131694373248415081377106810037478042629895261129145556674690779545487539285321434580749802467284543934595021314550930479734698340357811448894604163501354890231767396178762245927216673391190029631278646107809508833860372160047773490424522490902241465602612322127636103564039375858360797980934922064569620012605955028936547614819701394916781160217966308835616686041211282729645821647147631023098999936917547833619591780612065154446236970830989004223385974284641697892361109918235658894057463131208103971674395639328942908290358531287290916662225941422147347783740944375006697952111472344873480249350910710593091293899440944432311039510227100918403171336526033517672413261453895847058609346537889120971196762481463786003360940646759775325261900437657474199873643558932627058231592623817328112867230459247243976986957791228587205174166017026974683235740213235916139476516784434239914562014616543979287712309138895755179585477739021183567338650428331454034528925919394451614828314052690432832577174666526772899843842493859859886587985834457159372501289214884606284855264278734382415286234421789954957140840488702483333582647518027594274874227275267914604480170540678097093307933360161496933943828314102635017886815329859820422098904714006922304424503592862468302120020608004812368186963195383752891587163918088851137823351112234119394819688122724011235133664231886010762236564277869836984365539350772239678607915825323242852436600505399704281054176658391526820068048997164348086391795428477763410001607146803388520047073486641652737695650134360998540039273741140143613045491918937231598292820284353312431633273421582991335031341714680710320454914103788226792407331684214894366781507381398964444841031141990583488035620641353817133742207637703165998986347737862445520300175686445968707406102591895277891962446401313030512040027703864193776573417887618184340027763533996604912447057368742871783049582297256725783412567055250566531996058820830377625489555229753821059297906553487948293981973488817832723035797044066929947050581363258278489280657918316721523930325541922890464794016476883445009792473143567867181380172195789321638513364292030350016762869934322687926688645229230070118965078243390452067669907502807489140248708593634016167682627381461971621463015170995540461834454952678886954407453422581882741640334097312844498462617251904081593856572142038000266633119073605393610347662727122166046436017293013783763877145872172096571662217070745677345989070200430324301589184134922702910381871875744755650146620157397309698751912058756378773661936039882068882640377958268578170075425472354013112591535203000560714094019152684743086550271509765097087619628248796788404420952187309024797175223271888588657492024548400841633726069335048887481493331380063183701745999159935713178262598031585765883720083413761790955863440706326734145184567594598313508101751954395156232987878344131465038192832524381041496573191896259836949167564323348356650691648112170353710123500567074263974172723006975404876260972166998083106635143864886380189540998732369261189931578121280908911267220275367864510958761288068814150709435784167202189665796420584165952295757092041193642683998025901834218085459257772297795500214566875366876487013149353768726973925095174925524373457139899487598506647603010284646914640877349591986960666859038958537978601825472796921341748698994421814059952586088762805460363385027554732284496299516800861054432515250148862605814051635400190649562994448004090187956060405744067037710442642815300459217794013262954086487127149973391020035473304056783471176580694560227447813866599921797797569071840519804067369075188036780386046225887885197227016610994976458196994506346769418003522233798767473049350814256840431037495230177260746981947388638169268778088419631930408044514226599283809664517605455919314689856600260038609221765526297043874051690234006942144793819411063722868355069415525095539426944329712739575253752960155952670442434666581446495606044017795713103601512149509627132367422459324218203744558520723720979575856411817023424783775175463798451227556563557507925661339294485831599317470017242888802381764594906800922369482814297763696034814743088903637012263054063679277299102876770107891508146364581068956303981821615859437136967641499921948345174461288575212671131764084758657629230088008553698732023306984038150872826987892575676956755920981648066914651335635345750658529217289568893792800482961001968530583371382476638179364560012519481415522804859700530699852520596188554484880683912476686776012227444091072495734399912850088906392676092925799305288802153212618707040163159256149728231929153693559582666031191185909604021109102230686125305147687972264971473892684634854694211782624014720989784281017084073104304190231503103663109611585294922517582130211135325529456498918643770022075887609037338898750832320599704470776688371914010894047224413895480776483186921350192310377168150638617587482361649219763774918449711602810540594546257147864466907715114982127715645922761463128591018665688635573719810150849549095960257680327455909996693752688328605037948463711000655082367750290680767412528024654028298696252231119852101066723353306853807123159152017754722432975712637858308743467839507912412969464963704486571218113079724109594118552479580489181387930159218090602364027868002673474558173911095991498318048088274857723294299404847747842480256458936616023859049494197060800831553966939259926724935464279925322797893418635448616134752820019331191951543697571563028240321468478789236198047486823302471760664394877241385917122936722801877678381966298194449036306218846235869732893775319594384609264892800277185887708726064519052906868411059109328052861060514454442294265165310959552774476756561578141343356982535856512917649685890504054473044973159481161538856637196772423678884365576480255290264100977377387189857388825244406081822554316551918488474385018588845183748970138752351510734006499655555267341627193068247262393951376678075934098876018819486100009425494997173584577056992323534569655344304116384638333591275741890662962923801617070735859762748520180282332436615315654626270501898905848994602965491270386331688024563213884414103110687697441690744189174910045113571076188882963613498459998210927625967933064795614749640257871329462465884856534959028008156480603459637131888323794171773738149953943032683065798683426110718356872070122702868098171606283260571903817412948819769561158394057178144580329943605249526687938458731510222219260353910889810896300553812140254937983581920450838651763514316507384083908075299789528605025440262265927113603253642515297640077980808777524502276477958896660298704942811067670575458091757118504342576137181612448711872888308108096828493682031649447295387090262673288466608402855215990674841281650593955014306411215256782915739928175677617381882693947219249902462023722924622193131423605861531565110865656276504985394471675346024406221741489791016482447815150232295292304597382846277740075094389495047833167017255240826392251501094757774701003425666248942867663583167818594366113672267959724274918548547845866135206083659287914785829327665263572234478672129705995381354972942784656877430084768272570096571125617863321019159264054755260731802080665439069547783979214823889442859323564394110438732959740187911807997996074915510385817382059519132850014196812099657070370535365303501059452594985842903151829867694868601113868410901864312366867494076280050550542310865640106118072094521267601143711971792741374593121367153746388284211839463811455993186681684267194242003250847619257139224826327807588303894212612656391523963503451311467421545151336424411291802665078362928209108894917147498677460425533493253553658734008814623725277640401056754427540106527302065954714718968148972167174391795167308199097007850132651700937935243714130198963042264076128863554657869021375746641468197775628053302192352317991550009313542170452886148770687162848907227150874704157918865693680246704915631266240206194767556175228451786800189065550399660448150463245191774567858567293889230925152733843458463873288527820636882359404877875805830017716027331318772792319437575885056274847779403235178632577998774795390544767519911676358797380954510121211213000116818554651215421731241709668034185782448447346515291826257427659354018388172086012426418966996892949422408092805289337395593555237675364124562729942072841558581624362839809101040163847415369541733269754408329641487731263712283048283664292700675230222701569182856223315538275706228227999422471332205321481770182775360462405687619355641653956027431986633675071815269987048131905460659196515899031135204075234687864207095639573032142165397251299923907313908550243943604355581408321881096222830612255890454487949408307277293072489980938583092407351044522741916214514669621028834549781882247213640536345620311576698006487073117399555492005426230621329859336045580799799439912213443676195116154366024097881468603362610224958137551737159610374953730732396730176369906797961215971388292913132824220330431960369882345109311656856525845736615819894730680260487970181128608351366646291400037292906289492446466636451331313005698466745358678870038707876160094698925433146929739174759076873677756541629895357224202418087314078987371963914107388348420067913222435693762573308801023077446936163518616471132200055110493332637677880870412032350163084342062226803981480380305723444100959244374803939066865937403639242242630604907061026518177307192005778853551626636221469670597941494633010996073007396245530942706454149343720733481754702109578296769320237963550148287427400761809560754969110589009420883007383596521008439683620493416694896823167783691913190255943608256457654552930127688033530096688515045108508337042884372895659744926989044408338377901882578773681129117928236174671229102201229002107866678662978192178819288242740334919404548505423085132708443763149763056522270877175423737177934245614469807452067253226441490351016943283132308119404195944358412375618333980032381992042442059504979341417358367934442450999605565495934621996550266977413476900055708756200721690368205929691598873261560840925178121966094128229308191655842638008789837335132303672963992059305599329269500216206346461036186161588882705618341209381072594687081746930411301189463176822180410607468086447197556857892858548209092590752919805738467170250632795527791318327969445008296736149142141114588366147439290134060347829457673304850488756187354093712859512758424220305227274537774232663327774886243286196709303610865486386998429660894603126573017008411711391956163688519984582755299095934071728507463879614967527989299766229236199352874159917863957181598442825111584767659256087440626604086244154358364480161732675714303700039016042795165796809527172307241872372901041599532872418676588639733357289503327271568177517582448651107129394126550500274487141485752186075873593685214583751787194383868746984224405912926167393452458661319665117406518294292272865592559906504350819088672754752996884077851422446155372636662382508272666294622708887502436525164049233882505725287629203882005624263944523859032112890098750784814739407538470480396585372542589715800918071629302180706542169322745774303554782397256914539336672068175484180996864413696353681182989356763747242526875260542851847118853427690425824854032314928682958819998639463309104582950665080768743874622698931210870373591857242333652823116133767016232814162940101121285101461838068895106852782818087095188495135811098925902476795082375906386404432150774230646809341747226610178869513629294363541680760811766883276343486216888237730791395927118030580576892201528265951629341044934380135661797024285381006570208156301905207002785330285653559098039425478962196320063983513734914600350436489171449014575809144821821765048567205000647275524294623009329436340472867296152907275977485417391816027693397723553314209224089241699121186114912054677700746357451147053941706066381218111038268891670169026793071063148149707088366595002579506652878948469396133302480038179561101645747958656751290614063478654487704119693103606459037933013034023931063750236507849866462397888643448884154902260302938281756341311124277956877821861136630934906440411237274463483079868341497227238271718998276284358554834265180739560278024503124462696836958119988173901790369722653232087824643314618333419876085676692580748002723174370759163023149316469303974147807417456137305280260919029051820901713748711807572539515030801226396020620007447428047778484366022881983531839051714668813417152496424414022084878468341116803252750787791261896634962666648336631346709980249354611112028205521004379862213092728257356505464710963109077487976230619931388749295558064884649050375836055379856810360868030610107320738036230780838902109718301118817036206074027618292795336684341207583333609699950957161002738293774139720583684036111686837709449082004115307910784650543048362022370212297122533926873813874031014870484644661537860238661689257996845965839340603507834652675681651423507822989575184150637726738758459117386615710843199626415981832636013112637904259078409755621384470176315100725390554808281428533728496697489339589217915037555864031870846628436701192284380957598814316469076727955509832094552369452780200799470623558177109322916174936927113390383881992394361202682728057200155731080549301884235171618412345830539383891844297856280613505579883066668043887745067871173271624829907588035198996184353789888427270747944372511942480796413269759784167030149633380203801529373078112927876952264082919763338206652731830006175225468861634488084706651257349705562214445676441142336234745614774643388779597812439611062185979920838191910412665804217790569907654430207085150522448511795827200315986173798258243941454142139829679401598942159065797767494996940716795911389964865327561194282099318352058817411104408981264307996043936998960448499232669360906215222439559039891837997905035570807882612229127316102856103692896394047723557829512473848903859519853703369228479232094585093865231389167870883291583552127254770790102327060686457117577399877517150399657075192257747287065521456458781531603638563027214239539237801643121451725538721879024166334263540922312561123271542506116267281340114031936444057075920586038429203740533151002036085652657208242170088227679588215418414705428943934325226172527995873414388103221509059004518078373560433591021228026979036547646197968083000470694548619407401008553280912548787836996498919379948012059237224532433066170093759756293317772541911132548789377014857768931546390444396006162007872925186389742812714749442468014270384429697050339417294756877012594995187211661661655466729368616921605308417639420969812348278688144895776444203994171188783613029182293842529041622705771034983717137965200385176315866909878126115060005745651465635670634739622910026293674636922823620537571638069298388716636377141299187349366413803287104662410105701624269620938280485551019220734806947450348079799604291253527537888313771895850048541776223149802019622214097354106027274279676706520912581198689430916079269247982468458697513709631059783494722859343592168423729700097788859437126337136059562139485739681220055659079491104576422446958088816315909009055726843952803275182144524839747682733460757161374958575459220097056209367381095369140306205079078448344169819950877791101377300377546521307516053307341219897756791598768415475522976146461806342084047607174928869585209000741904302766286577278545802502194787336114147405366557373487843569431218671873104397277182201302999799133545608898753804052363041287694980802305349105611915664322587782967349404927916512952322331796018781433695832324690297705268928432593814461541209996637827146479981672172560708839423503803031512486019235828573011673439068978127847079330361668851650648573740630397396376809634941041672196823710973673141477271436635060436639672958083228556092667869411539112347186910117097216373093312494952803216726921606422910462766253124522249597374486964319504235917537907427276624040978656069395794187878855061724819134279604647956553663725741268162681748735633678582164059203865811900733641012750624960980851301684658645046187773706591113206305072341366757615920128823170004693518792326142354227924310846864458204317147568012452107991934871454668993159902128422480358682471865609124963416026615410280633183411385944584357004345949340436274249897788280412039741640873379097707166078154226588466084620398337253096342838598382693289109483504259774448710166672708633085422965766628881460330004587464840797010655966175644206164044348874704103586597870041071333665578006242631447543685018503128217692437882094643616393004931111171309179758787343327140954643984600995118135464584372756658978588828774658109267618812821309996639362688665083028654888921602874168013517733269001002204470316630878116603763174173707010733374117896426161923611864892481160740029619662049447347760159647933524286512032146493290579916957483536142664111238557794781733986441523990061010285759273760858894722383453432410077452573162654868801183843407246140782930144511222660300299034538879557723693416828406068649274120968018110916412210719640234598017517965025446334026802601077500110495349551362636337682500356707776420885394899262987555549250959655129296847810945993381484871179423338192082912983166113113890201706887711940230299446710931595043221764529913227269102468609425564778821426425817754984022671809722943625388609442144582727001185194483233017397725070828309055864492794269883463862229849499073018077436458949891936113477059921019992323651468342105550962172608722940605919563738189590672312930986454251084901413170834153810199182404722204047748770435046525854587794938596259478894474049736756034849969198149861469786271228678751160041204379144635675652753323000331399222722060217951655134343128140580271906811377032463372328163416070176599583626900752675711642608313804535352742128020913497926605762256778960915954938795187654917928501367935399590616462106209477390566293209968294691449855538837970194558751603705771151821390628089944732124156526127535173123009456623671009262756006715972971133891176197130020568064338882826285075520282976256826602396599134033774612386330522487568678241449985005592198818393335954047739619226249145396526200618830105924719877215154973951446961996660144151146435462303323142177198260055990071911807186448898302706952354069955646706128348320270262204058059181908438643868896824720223760153579834405359856904608351039201285144150607110063724261616271181837865929222699261170503247884330589808931685404428234363478410332576990676797445021454100136233027808354675547049379927300454001388547184093614388420069220664550777462288348268265589885739835804332377871279375964277283070862756986631263299530781576553970987105262670724393299653715768111825774723738111857557931091746245436131487864792737303330564574075916443735679541183259677732613499835177191112864712483936061450045313408176670486654505713391342860715807157488621819408417687642383139800877062970757929494544939135940775287808281766281997722010500509960064102080853619008315225869849642440671871243232292202481963883337166561932279552425430469061493347156772350503002670735295335717403368854725841703588288286002478041923189920999518319417407359358342657055235794463515080033409912865256716983210562882048370768473459658603008002656547426025985561666023524818134420718066231137777857392429648778714009081589099331763579104340646369952863814343643682990713978184942230907557045069005231161845252491995764172734400172068408913948523908136393874614444479750775121845545817350798366261760763235603129569404812333038107176864105990900378257559670972557022452122870609595674610959028986827165659740490112658315244096651231489007052404136276737488921260533961671843447575128476476432619039581151643522104941167112880930003447381467788459596377252313901247257329067106579436327239080029306122411198933750812766672589977783682954330065319337726228886032526587514365120042793196123932411072819464368770495882721916980481340020450994902223898706677458848436038582967646850087992196005240078352775485875436849449408857202663741603194307840605662364701614381623061283318623229261330327828433907509500450611491667124464949186156675255485155159718600077335550816148253208130720104198230312005151539434290696246882099849230915054029186357519673975767048861570240367942814526405297219138938069359660840283798026416764268832552098392647505527213585454710506493261689078777819823985234165491956827641003120760754223684158559748003610347911097339710157669637661816959442191130187857659838400135304307657169295920155767460044629173422531637280671974532005095317979551841684539297738467674848882464066402929237444032904187955623903111521342275695544313309460644037801238125145868697205429241348590191946651946393453433419330340067371107905789058875474594963688520228461123290517765900714143693121388288221641742074891644116426374514816880804844567860855208585706276564725521918549550133882507154480352140130479747494403533662989659428350547741795502537076258497727942584723838905075321914369270725155141348720310536107193656545118014773880086048294343484666745404122798583289158334501018665437581861651520665457871902901309255297336166312128736369272748629896474239799305665147621362833606730134085549773148039265765191521185106459234617839652568271908458847916603157954264316200960390156971484765516603057311006371149110896547445016537650794246308758539636488068580732901922186904297617200136781636282584662694777287445205038935432851310794071096995476745826167922380996460034174243409527102578390535199901932150966986841040791026164912592373944695318093873401180864406012952464557704589750675532367057685821533414579767582122491618206757069801998519843971738888955307746643237832000897214441663586021287716324663525575001319600201892631370115689620208667406183012198865516222184104798183393733819736440211611905738647640462534709681759958757414525860067886822013162297009707822130286565611764124576431668424388232990396901658146244108867993438564241176230184193099979855204671517502424860013991056815992734031815816378330454081370738987705638877673339616419311308672878858211791645858201523300246778239525998251827760994374095932838900768624371360314163390891546589143669307524195146751866359965661777196043864567470915783818150272374629563797756795639838567245212851141312370684700384885927688828311075348671194998824264627818220231835305595916022412801385525681018348021490917908296558890365150527525982140863501778520820242406471326738428385751006931560539669265381322100641614809785295077751964513090169768929448917498222941457275041381019268275630398278030910900250232141897186406623811951396991751294309337928718236176263089584780861083587883196518558600349629997659320200536082134054396816583748357231111555593758591223866777254305497621706198660465261889433572220696636604321098197916324609022988231706481865230935337268321366327311997643626863550102319706882176499147326910957973940079242355903824743578838670449203781025102042439176933238683958096884830445563004567969774334639978133314532351155033019459266470181889553233522098134111749662356720868016255116490540507287681557691008052489484014188067862167065398892313224717412868373251784897451806654333966687815642307570536037291623115904808749615109702691902973345040061897700480537864467853953282447197107177713083266205442487669761233735144645606649640458583587508896682764425969305298029529317101093764676541791318480044752926674764192061657091350880004136975284810558182752246014116809433489702943715127232166928331857039848088831441246517868391970176973978228788859209293423729816338147420574441452281285254930359837049589273435520396804805929517257458381588535717690168989971506350168997772691306534576538403262788700828583515543230354429161306524897592901522096947628687503943668252573657503718643493937173831379486252654165131230581945167489897924442495667459128574908876787924842999506208838187194757365796316922777715018089855266788718084345378960837511976787638003466071242980258280009799526910136406575372299050134009256265861128790091784168298632092899522473421694674449017548516102532121871753163166881452172522460879941462586299463126838581506802729592102224438049093701425910374515957844118444272204049336963723707543419125285600766820117115277474720310158628056348395901928152437067341595660603434175215697587204990625425935011413087392524689278261749652515214593791985418100736502376722519561793327356849466257524861023129787756425003375432025949889421642042567115495528020432263999545709499313032521123759585551880131695928641190179243957565718266678890291256333191184913862413534419144888047495176962470423586943057525090932316618705932626707877912181294277844990791366255579368584308903049246337406873501776030515836553163800959319838086454404955971796934265710295996891321409926200287529702058477146796669098454996390821173945196887070860159215704021955225881649344648411330488398216111532271991217112885080171205033030433490343924478004694101639371954900331020052161133825010928424660194915215221543656210233920621966163729538741063103714422378894791507633290449994634011870932653547272233759095354356804800423992735310237110705878604480854231960551478758613779025349489681786127997982498211418426850217513240650035287611481357984008739010192157556247464970463922659753282128675468150280220674350976160878748139517236328075058803899011062548459468385426828674069284863247823845539771793450217860920009130998389095094518876252706301512038430388627120179896392417055944779057915803313413932467556052198667059212654670185892115518770376802184480668315862241799354301980804155660024493909034352152579154109083563916376708320266659677558480520498580664332377929815996176366115191609320556572688938226662311639543932642583413039442704318194737334317650862134111051161779070638053271700088345634022753226763848066887404741500708840258839847188401566528127964513901006920056578946923629587338544791358815337468529127276584156489444130459993117663618011082816508245844791823489194289928780608295840916619846436419844947319213549762108524367783728843125469779706636890674098478314067969278962042466457470009641850784594268143123455376881856053900053438844674998619236635677502794607066052600890794322488451295873042162794584085505053970781642946092548169847162003836975816035700418871421791787228648915877990785305825815140449222208829127888171538286625560073099766077398960479566591786679817656865846619256154765695654707033309303159260288384204026202464455018874727518093698094382174612448549033691042152101226917977049284412957205967331366224611962714960148596909877780455368544554780862304671410368297289939037700087574290201786891512088444606371671693430051182796408420776058432447613528859759129036303951391002550642478172865542683392555815315611206789030503951221920470965681089665660327517528771826286789414180674073920878479435553319542968518151361650925845622133015319005551755267518463919390418926279104660579839520411317426079580131803785655130559418675399174177909285983284168715648174096889110421010192131494307864016318292992370500366916876975524608620520071679805408081607176369031127007864440618324764720107857580355256314533407283336813612813244970240280697374611911798247773876712572898077984345983504375325884436075711251276194630500679037610360616581021070225812127016272337115782380563876774911131084466454087913702923977729821973626626425084915996789969285509810704869288314066081377028707690195328002103379662961919752912225409201945757464065342441550743368857995965963402071383378795557518757669636198024588153273776439598562509180978448974965640287305859369312926989079893182838840297709357889511413239549652378987008836828732114068708196131773562000026868423353821919336824550934769151897933536080212047275868251775138878049582348615957841257883290293444931234274928227181989802085961665236579816812933440531591466623075979024282776542100857054669007228491865619687665702755158497434646911705136063994548098945910912986105188384309917592449972630976037558726591636732235381476782602412625771505957016892613172107481882894600127373585180931364084536596653610187229727002655857354593564739105043781770057128149654160780596817651907327740884080466967441363837735149133875641588460495917848616741774203464650340158901451468533757815049174334240094366701320230070957343054177727583988742777584388643237300853185920823149830451583416949861787351294286375186408622351529924088747805725033726867502514604575305557706612689599294700884831446395020129048003482516095027050416124339387706119445336151598911833834836588928454125157632194796942467149389644026913129684684348657963277808985008630835696440363602825539784860690248542478864487140791474929377075792611051823178677311903883196282818639836494214710762045123092835887769846541737330244068305643544836613176879303875264674112662923573328601454329993318985473301471798306406266469577002406256068018298226819364083569014857963094723420953913342430689827756367888431333829251709819251405177889129543675794024907546789337223484822292932386089592681110907932287100063173746838180057999933483331873272718720458733715401427828058792367906151299702700841515229345197220868673619367222919707174569292197403781089608028829716268163200232943893536525400050007780807070969819456352456092708660161605754473304941766586463410170649882948808668128088701457937136643909178028668854973626943724281812381467700080796656936639489483093650264647678700035612788656875644990152979370671435648933045238739016987735928940163869013564873553520032740327092591623221076322749890323778534853544677466044066011013428097497156832116376411047906917657940234740998389518202365550225761633782118356718678637971362092940032666436287731604365801294692124755584847878812711396628708210847335056575124330776213362413874211842643989184698626131569860335416503040797526487476074322086268474485703616449524310581961783886701027361455143139528131371731047054664392567146657642009392281078651917412397171072981658274712734778493402367005717484732775846486313225657156940358749392317103771215607658958361454705777801692043075988931100571589342702428123123434541247403406946671320917172255584624527623577710952491565568502169087864955602705380389495896060242321280456311528477667341103314354062990178328112516608960272767147153232408272259923408896755013793093960217757030448261444440526380631976490407292593244428234472486791084387980366696430644131540957006919233308840926948361188130147746500157348383218367872473061042038859998486182623171030604487293229166291522214548047743302711793498955958979630842021974136142196865303322091902178796827354582172781661868273921439873348242055543159385862641880493582777931537784657059490903286112217350728614552547407085885180013036661982019795544722355874090423025600009991786211873361077627892175219644137294103644351569834147036152280497902971008653692464305910387690854084086045511326273232005328863962451195308203516080537604980776417012491268595838043924019248436613646773947154416638003518959389939701317915024997622618863137983162051506287545651843683646943818498856780460035937224053776504683050182808536691281120751689898622816506541929531646902235368523669624183072112299226572202039538747908028394517089725339633259487287478933103160378240267830335538585843935354307425348984208148996978315068021024570923928054368147599966444471223624196929414505606379112796987366409016045601098233490836809694570199293899805764639186563532214710419232711420783588175633651447482696982136339086724802318310517594200604982303389871197284135912630308513016619941969198711837137900675998589724116278686924824611291701707015790583305651909615968835516058172786404046875816623504983159061001953712071869845752700255049691195390076506910811956308503020783259811269413145705237754594715755658217481183973256704321314996572845656100634842389143888581729597037849709740428069910944625000871030765154621294473558435882523167837765789793131268953981137127186863996121242694918514449144895654233656419467046525731111025310427155740812991070813608237438176808090212034422792324727979498609486903068865678040342517523347264440405862236182613140141413626060837338559873470717184336524105453696136824849434129299703534300275220055475745796858493393432579643207482807345905096491098671860798164662712595868355751009491432930817522845892882880572334288763887148833505910850045547018380729699540297869036081000240149377866933739259706477647676513770476588334596618194859876299192828467868497344252341496646167198118048205340954788724806210200350432601971315251116529842050607437367927329006965168976961039108753782068869634579080449329709025278295307527891327598505750705861823938070957942177613882425034635523998299779877274749083329862127354308414270130594682079544337018719648845517361894285339710707223279538738655143485314102366128937051462883551136210170257121288593942601501934075629129980502999867742125793152847721664159599667265285091369867012395672007479065917303177291619079892055812514982912747015634856903237820968447146382547172498742449607636432178048599580338477673833793736618580916690219829990709696508024613837849231096556646234829183277249678274364922873218418154260957982384391085702573067748852090946123802846384776428542306721743061345630840455956857127787019213826085889253801910987371909563786217840256633278705588313423413336745096475366617302783995747063043177193147930897149940704684145910620858332614853211337357066977213589372725150789785175214688892321987145111454810126827565169904909128960277130652385315873070282452064981663887799658242220985572469374006571013019242937179913890084685460703769867827960129102467557501594254453794257807618204373647826586236087211036905441998504409216867545259584390624896666049016306728339321882312068836967783457803078490856637292147463986154121703372073515987230038327313043092560695493246893766227849835011086841543749447062964114740012097161651336743164919288719040125579499117297453697082842447504555721566123123393513660006635569538711130265601562716934623789652313926716815039789686286153273073154218279319841953118748153882601522715341486214161104259490552290198153776249378006074086475613397731243928553850694684306985480748075847432224191489411844502635311966067315670171416857830709459531672348239978420468828177780170287310723228220534502019223485998706218820656731688662131912027775431818679090155378117210705856054055889193949783717658306325923941453388620104747460641584035070026865737720005647921718935601458818536325262770753131657981968623669809435235876287580429224066580686151783050964726083113260064507749220781291784406992513460454466343277465267702144839021900662018733763308247241148012103493452133600501152007413711617153789663480695996209265542035868774022210971188300094718612638770921743583858301901272788058098798319436277915920834131828360954646714516050764007350169214699221503166173573465879332125927620284541329400363690226389952297629709064427712962897084664829818189786972384626343101268371424142372447345655992303792184417836904392782351160128411447685667332407463455020993625401205164032799253496229463916529520694437305265548833652579242466623855866241399328155092943212166029310101793472979391787122440467812253672343553879848978859824507065278163921599118344812232187758584566242737216790654530608423393406858637689633130874663429712090280463578073495026520916649405111070123725064299401496850754529422027756549976309538477430439772288578621402597036063263525913393266711552248181433842326854494067178748341883860819970492787110592632082007825104025359331906585426056364539402516780186418996521258462862730428085617653845479474265238425647021252580521714445731159729207383136854804854004374784221798162453847862776420013693308241441691959314857470668458126794365741832107860222140263984751383341497017810141871350597217886516824699039558319620190010590754795688977842487492464671845792103617142389694386496477331678167748712795765120832598023399146668978459607848332451318136705530677116676659306732687721916701305124374705182285063768838686600029824355110599452338703599927581439196141886850653729668697579007766609863262248502666035533774469566544165914828925443900840211970530028428597164437161395205990929009125167066619733042205874799823359471958761330298566542245873743500850374336622545072867671240081490307105596172911054766208799861716111990463850500394771169221710383720857335671724081318960733377846832394631757440812495006946413039025439218276182759783701377803080704488960194889853942989989389829453941569856047327500493925472145107875980775842929881752683175703283213327093049829898278111154704084107414665130045429178390378826504293558388241220389720976584663259452773851230109627570239476388795578210569476068115087970132948450659128914243422718182046710188329072278634233569585719099777831017463159996775876930898828049085611527455632952251782090249881338725306933356347340147612036654603929713692200160555217458070899645594680630024189826130377791605866473744639835511300453809061341471863748003587556773262815901184272844731662218749377459532832193781680154284916321652646597412018578035582388856042730974196734907080249776475837319805572990803227193316729477574612171635136269067327329975684951349830298657264052748463278792432422790856799842734703999186198835268375893150590652952086562359030139068622888732948305702437418184423239893319889388176083353751128656517679739557926368832961472378560906265681606079896525217135770452956303575479082864398685921530089393735261702396139019964333159871159390999613142213853318396493436811715115170546527262960775905938305021608478489909218632114157242435523324209451330856621269165179486189718419555552374783909474962234789390682295788390852909433162404440876993836803358697799187294728957889298201799107888856152072601966294753324096590905880638543177883490758482142057787588385072081534692639894421348988926130633244185102406967564014381831870380600194556963580898562595980863692401340549213065696842680376857976281817378568233525381301270125588245672627876903514683973308929206083666257113432623839651148650283895992865246240106810325698665161110928769467341351050135049473947150385480984489562779209834049608833603796021559811438177986582892150983403369289938561989829926046154099266105537113281568265689770589716928087076908992568805820429685192465089084162469406363696666647964914790835397215253918217090547012492494968412753890611750110395409960276341526437469553780109948519974518086292240690663150993608393174154124953132086656767252576334789223436495162758085331958884693295619832796339107600746036235527015856660403601720133334997102574169219103087621020769424461845976928933557254383509337695110844310949193212195693555132128366496640354034351515053050977524126982528733455130450575700397742662718231688954853995896673453150455157682877071764756317610736281937546109787374224449979204387678591459100761125860358958442334629156541202329722259151867588163670270187824203202957115290307136040487462111865754782387200114868374965105001724776554820258774697833710382415545254496012214431286886064663432622652170850996713250322110591649448005854977366693673310606021653737701307087306083527761419670854094725913885461083720606608074128033239406780137958409542096286032049936599117563793160588359824665564324618901351920039150576517590684306806058104572628159536513029832699158269693986947385577017720977008634452691905226270263849614210030960976654154388848841784471055057016292730708015204384002464399072909149896456174537842864155162883817763614658813494290634731702588530830441314114806518199278651984755433746063139046345338884396200844414672407757799903576017843130015487124461915973877478909794363532866043154744340675136683829915259936090054892844909118102934476815262486716931037637269666109528815724268828557503586617387735084519834021281624468960173867766297213234888495827960022575851054412307561265842468612759586746458366144174922215851641874988209825161532544117057155531414527910920856305999272524387806782071625798357283207713121682992727143134200895647895509321578943543111416943195777994171179522340039814418315239090052325824802470740924397776380484085099006547592807248547371240280326143023044440696022206655157521107749870936197605390989811341964290440082684388325639846440092716006955855682073216738451832409046578673835058518196134427071929383609833903486742199178955753637398795142093822063560999912400122443426986415157083387887124177043990955600315184206292032525435734141904701871023204114474987725737127278809632261547025051446998998110567150023367664332032913064324566366808136566178211369949337249200604085417834427420583481815627201523253227326310665781281661672387168477772633017245268450828354967650447428741166840701571557448069620630265714025745704487298105850793468548346409696749446237517316740808498564032724103859805515775891671954771921629036982120575833150825115139660050312337189452422272457406258813509584669224981643174895463115546299658057842576295199493961771692619366900700486529735216762327715091148000847902595819323674868635683915701663682918332168002658979457594601040723756349738287157665135461542408719322601310853165434750206095795779560506948300940728096434905212567427404302086549947788849157507050751720193280894793764264331390324080461252886129445592278087742149333821475937438455586051687761621532094155298831727329685559027211414974769542494172355015007637908697947599467958227117358365744126659100724658694611959329911467654937131538635327202102144820782960156936035947784669646025908154727338801064558849797724449913051193005832746383176486947819760813519722838829402947448155640837882891316786190152268489693470018432113587975591521860061880297069213075702910900447589634715633414597937888872298896999970995688691783208871585189554176316480079213971542303210580905467915431812345791360110328358220708245075510616918040009594725691309534943966985811780737932474503110559230435602771545117759961300034792934522046650615944703441126045890592626538264587246481804923312648471658930312978921367917882879091394200239926208826666987276232547362507132279908749350389363445508619105526015533653912107839980158393675758046156710543746530376990172148692577501529758813021377711681405445866742265373062797018684157105882206356698755792729625522618952389444950777840099599886595388045609391526311290047788541635656894416486278815208516550366978946534408900427549031865707818666799554765625060194106431201723501368450765911426210283087783792284047133984334508424835322460607191124504777014853385816921299956157375767357936868478439619602682701632580388307534342071348543569448124518039305164180744393677029546379453400445653125583027720822066323787932446604436868037260008025481859104793502615831827388833935697828046447997519687504056347521883099055526974172599689231739735259530373513569217867999237102062724095639252032272071079206284355806296235684515188151692106700240314282847607410831142779291909187634062168709609775343641721121934316261358995442646609136798269368169813602820545158906679880166543142138084490796686437910244474241494680756338701744147900117642001768527227611374307049232960681302778128885623170511431555944984094113480188220810372890067132466123525327609514262700740091625139533986727091964463728429681954265213255432181177855587881834463014138809099846904058573019520821100852359175223081700050271144519840182252019619150601613330376368987709722620833884323645901497029024733638983199810811695309888050159937182399595055960439447648758959448746371413974746524691749400150999889847965247864685715210148429403307747860556980737916159168145245262095778553250439751707827564048303513061014782951761819996432105062021971513556119986369323654882961468716982073897398686498089237358546402503203990719371870106226873274352177212249333525526116805073019721365180403665919817294478357602062788094845466668823658503242346938564728621358670031399023646637696323144720300909170227248657871284460081813483861603844210748169088068578886873667191153967740222861738656648271337015765540282627912747394476412301066824219615801835649952862691558651445790052763186874569403985420792655592895294248930893055453858931197456020062771769906788158121707442971486881449290601760553313388183205015667697019351305662986335517274805792693394829917709569045790355105892258054839589315773260068438489922163918188241079896522555267338850237907671393885497904740891179994305799940015406134725181265985912590332806326701665024739378277710116682025322665481944779354708482461818139675475001877698773276779533892780748353128505698146670846843041764455594379319963400797079193250578583915719884713985123442249063650866673221684726283472637208143614717517009331829600733910102014116023696621292665094657594368565870127306330756476286672919858435782686970896813006698701133294785084362586609736740536846625068670819080705931254002611475932228276229379179040206576282641089311713686691579076968576239501037599168062737500858340277681964221259174492896652675385315111939503469164516546506070319293540626427838452691646562994996850437490830144255781712397685492232675751341091152109024857586923521066468858627752005881404423587128027392833820105178357624700542413436926685411974993466111162234947226191666525047479689630752347138319087663317509229984864989742807791453979913146306693298780245762846613430026798068502233097589366544590444789982176200736025004033415655093477513722666424914038195831230918260464364106363111605835311087016269651330557134861412627407889788050476760276605249747027162201291601960875750045755250563471909079457896439002712209666049542593606742018221414786765777962630111947536329313991854113981432277705399998910196630748525500602752925990481422153397839317951981606273978889477348233434576889236556100916182749261119771253879735947954308481012836111491901072187623937853940708452608356205443355184826421910509818738384921698241698435910545037256920927019642016554307194977658650601922158714466459016519866761129489757317547167366683477392558095141692685193291104112781594683591783334568439094715658913055573454165478206428398940265519782167372259565428453404960236267550433608480174822277255619371282284485221723272855346521412759016654329417980958348688647255857250818631838897942461920219615707528527594425802578658368310654732282070140126134486949889644311079385651404939687426430280931250452747346238392522446468819427114214735966935918801154327622938286497943653150095534667068075120298807465061685458704296254266425433010507978149525702567810006461107557093487236655329485684726831595487356068573367421721442108531892388945002017804513522693277013206043524873666633232295600410325954044602772940878486559104153209420546534751746515112582427642580924220183219753635931655525574586838078324235505383046081835065859877822155868022432197167878770122358378706409888825112405925425922853831455999115758686165676680249206467190395898328537470651015795004424760669805654964204587455046307463902093957869162098231889480097301501039952671656436851481358599928086742802675923012789247251173756416746512244258320706516180196805135526055709148317020378787646376412916828842548286249759442336587409974383865067404771929975292882303982892502310197966479088980724971295505577788687737059016341405578529523720336068052628982048797968243294109815093108174275427864418812697243953575553000650626231788890757692386512263020884002787835866374623603575961335920573184927277917378459638843771326490644424258247812711246446033036400492348514852868059412388396256444614816374454917327309117754544186833841549605876202911940245384628822125004019462785732109130728336520593815229959096087028122001378381399067774212057276743098229942109784746671042656663239164913092843122576177034310668367215105126920010191465377680853695561224470071253822321152513337856493943583281404120724360966481452308496473131696932454729836400133428119922269776420984125266308389272580671687836018623165620632752351101112158360299637525865628178245416051860665954055494265816379117766515907299180331728057020751400683358461049157802387268759527676304108261202618400290371736530553238860912170904468445344856636135075119624436553288352846868431035344162591782723373276048119000235079051917748250514600277029505154734345110594513558176582604910962970601419396787352248363486146976206466414083539144025053653805547296178102075929000909883061404249019629130057701794985930624500416590529874754533566070658751453558074248675401913826631049607653352634964940666129973290683955287596000771674392501056553687499827868153666877811255009465999119866385603381432120649930240969690613515813872393921311113131796513048364890537948497300732696596447071669921857378692677765746742385527751635295295612666504241791559637427417630066013045156880056948077203207093499477623763372784692772660044052029057407322805366240512394879760537712961208245089760787554741609698316282382634611695766641124114878360317033433320005878469729490828565385719831569823521673322344795216572371341752949613290060763406187926906032625633759211338024646850153971129638254372763847430036185472510625881509847870577721444028324984704775434098100620155953229506219574016332094773814590598794616466088925037548713367034406718938186228943889697913518051488312727975394027680046900788778551892158935180868468157770997046085738149547706184458686071689439473642821510949674518925099120784899349915321976262262809855351519721901488097083357273448997465912559341765816579163801003949631726116710069739720113546446134312069035337628736082782073615307849859341505099376849152950993033017520179145370312747641649600877641157797079191340233025485046016265769659514790930665095077521781552748081005676071137814821707436172022436754057053431305134471108664257638761177320165161128769353168387956375479143135960667552358682808939295512155325589795328203737742452963836595088105335249116028248964820949611344891639819162892086144250218866832845911060314504689134448200974527764909386532750857263796566199528224539690548482039255570326278888893877097426276186555643130173366830971711401607850607263797755870983102606641223022636698749116400597706743132902032316628622937925249325815421906863775909799254987082598048763668390429077919627043039149088497961111096084903206630643471924685339819684951963267137198932198654609017359002681346346515717791657833447821373105486710959595105160267911958641564235240005835355293527342864196364951770989833059086814213693076984666305218865694006957609662767052007128289657444593031409638707382997238426229602740138587759990845509261341044867750919463377328137019003190293859837707945859249144479607515974694617006408377529097077999158661172184855675208976076041524499182886921138916126002025799418877234751575658703750842423002677293778725098904342413340282068020848285940226732487230308969019567021401459855150383957815542317585140301215248839044334295210127550770744182267423440430924574372394483999489404854443180254209538436232204571701155475484514358293816355470197203806987337430947985837737718232320790657197310620549086103421550890610806987724664438348956946894463454837795233394203057935371795258996101328979816259879433616915402162420377967962688039897204898917302318708319770901157064475597080404784585794675867005795693653271231620003554045099083008184149415051615358221358003983309370358599745598663750958459757721635375179494176320347771220005788860465306196036167229123701924913454557358651191924515383138624653470398218555565706634809600475462797672092154151954090668658222344938943945551708152422470039396035004622354935168234399892405697547832426998890960332985881886857230613569937986255238882796386269255124319528380319435522240876501948290460094498698606103534175910651074632379893660448520660429341916474054795498183822415273983883813596073930415079818842178422132489717723718321388297258403255373757938361050377718119371667087928378706253028954448803936145916397854454758541688771133698850543356529024735672412917876740807033872590576569005394696159701540433107615481132159545408366617292059464567093593319132671924958967180538978537089073017927127955479662094590946172579640554194944460152345633810175751495049083426355590774719303782405460067418314051023703850916943642766011089711887946380452084254469141978062600891719362979323420104616496929223001521251789388739641073601096225707080697606625562802950392096231019731089242738194237103272324548032864801041436476935564156195308816318136666797524735917716499151788352239066663473798443763527750362181447063822750022307991304226684873136401725354397209885674153370910447875775884097206943658018880738244187692846648437806726075258539107046403277863053524536502617492964339697303560397886238549167944951755488262294583501592769128949016041426214175209586376227923851716125285729773715701057943873966178242505458369783057339637103162466529301867715862821736868561615044789950961796622788136842049007336532694595748325607517074852692079453770065068244642503440480040935562856116117753751846665905148147466844336629286458561098842252154700851337776509617622123607350559093708116872202184258580161912084508696302408979674925964266147348016529231190305422633576840575844323311139156585008882691912873760301175101497650135863440573434166693325857147618697619152818799483601190852147352249523372053090968828964558241213595352766607662801075236466128804529088453940480191696997650591884566927072271821118317417557836883781682425480456372599131435186733619698971640646632537812533644534939549137371253481468534373646655016148017212325403357575680167658424624097198744235208316190119181878763063480269932061182213463880146086619651770423898358397400235697002246640494060426661990549803296130394489212347874789539974366735877745747180845061339981316336781754473541020295742807737637029106093964521049465768495339465284439943979044115120926785388967521629594473818202022279274628742297264156696526557452017440956140638017200555551834790648429724168998817210010478089615331862628827764822063600052399819009285303793432213551181514892637981417663415476386062331465762829223605176935060517634944572038654215193475273032533385041294147210572900400602331785950952326017327577564282735258537270159258896749850251126541854028380935316099686212030525733921874739331094437079100103157379886285956918130272757925717104042852880034983005813727017164667599003099006190379417592823411878435467360517062781754915816078348749072837049422558164175649609862125901802072893818274711042493772481671715100373323292218866672948909383180879382172392523568809143264310723470967747071612868214232987476795866537684978574508116222692972355287126420734109322090894740178034885492547017212973295997087998177429364503637986451905980811567908695140393405313995077457698379304142996958721286815128897548982900461284034171805807882540846957756711769546717146812699246249285309970002612627304270047858219806784253329279554584762323250274641074668092221821745397686114167392875264915974728709275132556284742751994192157289364882807548419627866183790481578380602182580484195617639389301424810222116306735741359297140101480987243289359565796801348905575042604940571892938284112776817322772828894378822612458737544704069774073907075628805429375428277643009456626471632334322894722951495026056520306533884879788841490890654395714260882439486684258659552300650846200426132942247286995797400911338686988751709179875882190588641053391545767751517486553875195286146136474945613644653732427323739944268647843067892679078526085530617829601558884882065315177108936911301185579857761158362378727630578102110040091715257939640302577820267708312929966583466975210199669579317831869005057022761046509821329593179369435403275837679792532319350503537690925424939400943637060537188884887103556192684656961282045020504384884189446339454298473249979887248140476963565271156205966067027270631299586055128253768110216026403967810434624780582164569832003897189589841006355575154482316634227761621314657153964822838429828760522941724080307665140289091670711810902846974479773632637755239479219535276911607042416496965402523966363882282194488173717371966769458845184124581280623876860018055515972749849483344186646457348532339083622413315600706298555147706409990334762692018854594379201592646676341553432115018112786341699519757853221504524571783414210749027054692315158700605082374629492615891324912760683956010658211971655900928040318361715966082454724106951141384891641650891978531535987444485535285309523380092967402334827479088420301923487996705862406594242645766180889556929529949722345979669816126825442325291894684581404314225208852301899606462493983862830993847075300940686413445180766807590861332031910786185040388541411305313245740243040297908817266365739156610804924617990581263266681653336486059306251915384699877810217614999130055353048945416210301190405318207316245779348005528810902183514563658744654855773877769794438596798610440100117107368707395282017079852729597820214930229288975133933198083850992559068779391318464000257591532231332003326830158968606191088933496361032649760271770298978544329387121991752370275462854066735957060264624553766351034170183978588811010157043258570354492480628674650382751286934317547965393928930547295955062192792538978648486134499046924125185225769658093901720868585579947597052388924902548773568669652727283960275983662816670164767243585943515761601352012211355661822742914946572536269148019768814230870216956304567274539275555979849038519844036978049744262904963487496589544651373126338784232217782995880774117053207508211623969722635796882174197005417367579650166286888654760353972106061700367109733684169327501921542255346789529093153365636180098178128211673035637560001183831181103468576937258512784702311739925194260031409570476608160700734468605085850662425159732129825585966792992227414244703788304561649949737444573791806474956872678142708363290020721758395473165553508426335518569684434346086163991600958722975016542528173794192847266870922414275211159366310932339785527237833910051474535754222091953363491563113480180170162660601797315274406267447361058927203989301388827945732850134576590864601899323638948651493805084654114267526267964511503590860045218599447550169717499078399466644814261665746914430848316253081677456036815178409156450802720332301335311314029042011684842245459156040525385231383118558462187341122685812984669590281722433915162061884829060102089930898654109174132644274200737369545560304185152774056621323876147709074392190717072933431365259146944351862306658657636002519436956991136138002541850937969542435369252181546208243489344327804348716558042711053533111020421167441840254383266990015329387252688376345241988942030208038838850009077467811889740509681870363533695311320735637564478907220598687009309274289007185364556950571233774384585579233829536365382632397709391981076511519378192027457215747039168793667941203357629173652339401134472579579042620383835249750486445712371705855821318556111619765319345135839888522942965950613977685411130208634484464636540959533679123945822981730320884691504776886557629569083916417987237446642014666250427185931245101278536278565489533201133543985483505343597133932455988568676629209253788203563321672893306391726378566975724351631256594532421680173828040874939897821956009981687431653006152636330782963349245336666309774846262908527486228145447621092154217654836529269067159664224599406594993603510256501058736738075760152151089515964307253918493946855408816455090862078719453919853412603663835065168828800525969695430527980157533720937283250442882553227336483140067183085906400477159488978161231733130562554768738871719504682091007456293570194272570956279291631119111694155221332794743871254305435639521270560021332676094488712575228361290453191855682146100478606637619204768833548636207840739588785192540939561046863262916439554058380932289297928821070365060853577876313699598962063491090673887892911165053788709048995654355545230400727340433103600684149715669664887367708127984750099929674268662798145469251566032245101591845159667224876228879753600450256419227519871802338815424079215725900031900862974910357571740737347808772116078643796389070193641071988068755685966581501639309472704802571714636790476619405932436517825953227853355511652153450888413473904208237307246591237658792568852205666979111830811909970326961796929445611724297634309187835866969167525657815074849495445881331062409148381141811588549350346328243335003683084832585213176279426634579857457037319383164437979391136381096550623263686896479946320790104757445945400527487939644999174322053170649682442568320401510006221306766880350357488886564398203600201541107410676610344888963083896647008456883374933306474602353366317839889710571654331156563334189640665175982298119529357768370360958913707168891629855319395311601948185554555716502249572367467416792057323377741240542279059593757193453748510219376499887850382977965937153575479093929373692045103066513865579527388333448384383775486057807341314288367793160040744084943053323295213857142298648556769047480879836507774345169615132139824752515585498672727479203623965421678473352654746887354866011702020062735671716922434161576310758635605953860812447506941143269053037873893398781738345332993946259878299036339909427613324222502674890669102637053361493218593015369333290236969791625864300410980456130289636275243538851665736188563870049721249505084610448094488709566569135033295401174551281308266496455784478039840105757599537279191264397685001172012445834895377089356202804463635011549757850455031281686451986086383899718588945776260069853045289710783704187194596802086517972291091785670770130736262597390694540985148587862211108309967650305191933200559646103025112025337456588171773853065617865527104152008688332489523309162429431136470870562188401833046535715707598966427540048392362561156793257920410997802987163244664828960988856097547532861456964046985583703764963742999755351451577663532125676514750892584412206891680133895057111450829546845675341794022628374486987638458425869036192404885178476382817614754984410505931883810154321449192844262298161769677664171895898419448363572523960039197437898574542585518104679425563446077060860678735761976569021514745342333977336133899951062310456273290116767529712321759363522921247287629637314735808596944479150368982609640320252857116707213234792268152032470656358479273847780167965325804987668488623795082825772810747492442427298502636804762965428594242379342199166376259386882883825655107362568638626718825749432167376212499651316146309501498503613689478947183693203385421389989274396015181638033836225672256599971823888213889522893275851711267529967537363796777240821685264757055001034074891430821238994683214159344667262788744405378341236479603356381620238450834250115653762678446342827826056712200678910410910435301219484021414830550909018714695452792681037454898426998327558532155340205706394333458500428152887128883905578094727982761421487221460382946591076373952969246011079615305317036797880421676523414828241090188614950171008598972991491920340147469723540552503100330820278051912340378242350322853689736665134405217758357963818821825965274116447969292264068498583991429650389751315293937447780756746923085995145722839649488639514798533972485501800215365614188704008847107663600399514869854097513305729148606192581825584716917142582521066576216024484336214556241393632706215276484168654648632256380198884366779264792881046330298493080444398535843038976404143838559123352007280665521245506617896825047692593105632419483186129932237509160440968531245909473398046120535635845266765577901636910905911644367610834223272639141634570038075693433241458704488074029180836557700542964399505299000550609715110660678293986082030953661172920374411817099658877787805602258018906576183063070878078603847338888136099372600310202008839281942418113193126851628221138840807500833685646536430937303012161969296129205029141750691146793042904246519610572023614589111284211724805843517670108189482847575959013226810053869219168957366818504405377521843695406371694746306710741792543779705553897289462565116992334537792496245562473691759860156790070526069198915029579949536235570715030762338084321416415205896051899105553699042530683799137774800430279864178733399953610424447470188248288909050481528010677037483283670627618811614036299877061133542271023768390071069740550352936871979135520776458372672254205721025667288034871810819190435357517718926945834493127778681185060442085112044578063094810213806849484768296223074612208762367246046888704114546349135933555144492205639765554977144592014594486479729660080143178388032795179548655494710732648090312967112604362896381677785554634281834476189101075534399499542428057646488268866135058119761816393919192809227562763508076553023602465228654211900831511265025628270429745556303612478993404635306317561859533719755352550917451906992089171738525419364981727004957690306209315649813153382611942366660106928557642242124602345302404429084512498543907825375664946739950298303193294599814233302301765979476973345778492419672312528033609192706007691655267550670229414581431138721492942749273744024227304392334663920177374470968543746992352836542183253889558280191014217093980070358933134051634680927288392045864472291593169566827435563154791044092589370262536028228675439855221605886533820387118691925050158035965883184225457494059893264453153482328974987740654375617128592179710230659793058074950098247263958812550770090785223546242602700251943028230570002467451306785618735764019606981702278487272474766056129100156906134726047783424598382198098711500733195833459433337067788400666810270375661006780936193916076038551231142543054837357796884164948824034470306099838323697495513238156683208604319798711125459455100531976956732080670030907562534268091353832760232766931759661686882382379683333983380672551914712361845206075418980674037229979374150424417351256302317985762950124083030136847278233591390836813139802349436739279901076772946400430235688787955270970379645205142055205233435584444513943494100409785707368014978143518626953878718775642088374299339322644721207418566027985646709372393292110486231239845814867161253953350911087781634029044065086724421448266344451808165290542281042657760071819186449093493279677334600236340556682313150250146078006914439524288205513789534193615834171829005027577335864724504687174333735505279533957773798639795544941401284782939686857168718609800920155143747943509377991722811777038303317542328669780698009996745978589782880109401089150227253045174530595717343694053421396131780417256387993133426120066117639984877514174408179608687702990037956661731913617554809011667405537722082477347401849906773201866336558929745718453232790753685938497852998370188987737877360137570361411039898551686416855346470807802243001696700415344340458316539756725989168174915293181066233500137182376452327784246393199729940429231348175727787200979964738787331618490842954595389629280609600156495276612231663681605303095233012459350343108342908194396238218744498611779478474445605586609989480248398839965422003498589861116440560444608746097609712443186447522198289896834695227999201952250820181968332240745691571644136124693517789858241883532801289728001444816746046840561975286784711985054092196792818532159594317299798767730076210884990837289025328713268346387825426503914419831460784420684203783058078851643126161310004582670323390975270097891415939609224856775217810209860934158375514391249064682823327851874511307616347555381775520876239334512011525287138931343579542820350215694386708271653272538845257068755258202557127435263355972693666960163119755316670911577758766843845179043147455270574730085024825651978130631344285903940489572187175053263376188995986984557769998016077883376557221841278897259964413832106150854745041558077699613672760790626940100560444869241375892915514267754788612077884033223985149918866312907047924856506094748290759640983447449409741740449711589820899206642436335180632436635860403397157588369498122044809416962925944227804493788956628839539498872790348672124292081267599403896942867085139368552563989612812283806699628003004096832040600406426408613942889364752750111134744135841189888411256096307277605673036104493903303291904814327977674297854271088933016082510661889009780712966279224034382185195542413872750894248279445113518371944991796397233980104403860656306934125680882496350091028149225729107452181106445832219487925705599234833157864000868342577602933468322554732940631141792540419476104021629820021185708551109884677006590242345913547408008270523085722813721467325650568889791471255096450532133085292758918682245993452250349670033244991455825944168174459723669255088000897952542535210133409940523809079522576305244606510474660141824505207627887204627701665332830669030317403454212115323438227703973952532439745551877834530524266190522975894749457043832945314358118456435627501541456175077578023337248121444999037367037861997663088614241505313054301383357354305080977102572924865319186611451232407624125670924423615901659669004620381377624430491742428458130914368177275606878829099839167920955776170075945681891837534253700251617376671737556975064461287426311588755460150186179007869777948242082327222085717270465233405996717338451597172084203594651496768247513513835759198272315155804392887831939379277568078176625033804176478104034742267826430550783307605839436885298385355415254167292157736175456443698992431044592855388422431559096257150946459303344087287036708872685082899432249784703321864200889074186814319143139429061633392750868911488475982264207275101879337934224151464813765386184508626409897410596178199673931431781843095804957574543941853788616612535599446761624055591421131091406550885074165871375038764408911333842798581488010581167563194595704657955668272909039448494420116619461514913997664779360501539272647631758004463180129226029674835086932629102325345880158380025561609138145724407679692123906182536041033727133670227971572207571531142881996649191558930959287987821955110147613890439823171788262047145172046095016220754805682429259853877492811290920558587409429693175345422402249882578748981539230585624898783477725391759470382174600246968122434498007975846710065461195171910656855797360990020337038655041980552145896621950143812508594910843069104127772118307761860170528050275280056078249194336733187189978446059092186064467868211878598781273531930994001592318514504790522238689415617038324287093386460630519248149906295830195097872185525728232818718561262347408337912689386852565100842649511391218090230731663318895921754438893026580025344561398156688878955577496067237925177218854937591276456532748203149453554644682219304003547517515342919998413777697462433991821636075587433753015311817744344501580226100054510187868775391587199909594479189957596890728854605403351001552638931833632595167507058541083594890847178153142706786291379653031746927435531091452578521387322283772589827556515806218153469807960140433511037102289036640648945790259586518037779090582837363299036012228918745690954972579886785482618364972320196650103026922698905830784132096637502260045130826412367065000940208302649176691902944761133403534386201798405718797074343979301141237295806190381386943495667317545385582472736432820921772931742124279540755168677166503798620390914065048753144264364051388978960702688557678806955453293171970742133410319601078163027832866763488956966532456470108694604857769305527684025962682372964866204728022500585464424167733293755798421641919945937180964931847448774869028890160604322787559859423049764548650907043025190544008363348533972275024477110697186247049194379937300681300396563492954371705882764003990139273696615495839484301410255118047993346800088373574988508249278043738024366408518738584762483288285737502542040255227681955687510838175515352234544282669340322411433553775876835851485243133499844952178466542624275645618155506587772988821309866246338148539423889466207625660785333549136692122231657852861675106300336031296614831983153913707547124392647046472164951255700587735957455164084818930083346951906559213224046663569070460751203314844695798994170821755643187645011037065805722722608762704074124301407291470794521413243857746744419382193914138893770141621607294407340980270619792490483834831275323508369556053000264933842164016556691143881955938921894277981964043862411487570823326000276806601619515184232808879662370887909556190357982611635108055938572756749313262544997429688658846028484508479032381032419191820023107751289605571164170269805394084693855972169201831039977083633378465931238935978722452991879225427282636139552397233137791381371287416845702330578327497278857733883431287126195599402396007236998395133034987893445811550582227728583720576752606038374595019500565478860307102681248272644123728007264648968415297239655456820668140169215262225588737218561739158838900453195562944511556853675109513343902207774918141296977965180083654851689393502714950080979139929225849135707631511537712575940949659516290741071424648912618917512316079578983429356736965163642470120905668695573906136444513164229215177896277169386846229147680510566032849990654254004426941232239928344831506014785881833737897254827913486945700155736206623449181121275850144257105663908165379351883554679495366492674063083251615975785714223669528296292810679915543817642962398174109429024904692061736342670969131390274644873054269748017701698864165733955783120802045308430400458670452018167230670615134812205435844015481262042874419012556126960126080390975817906556899988220658013981203756148229254383402075016772775861802425271482289480707037514418570444939778890142012028660901458515560515504920500981034953075918462853197291315286959617337554945568542111089377952268347974375758099105592233930683701197390341993283815448010205202060817761597033304540817158834895122174490807776506973399020104273259781289183607233040733726589213821195652249894835132595949418234212479287558484569383634824675867798666539066347514915108629675119221472856873105078752769269087126287321199716772488524966174500055966603752339011250721799335605201615721862398463606882982904721888209995765173920191832418261757418317823056307423241953891309689004939708307200478676352125683522434973365660956935040602515619635312354430636985136300235965699704723417944789979400688992747575310691914160567947005665488076711381259760775523229715425717639213297180554288142070471527159254852818365492253311844981620468522668988541104624881594843881691548324729976646317698597068288968920451032471357394819974964690807230730922294215089640264218584512318530383787675952903753586187106394280221797823754837608852863346728216989699056992495580425675119844778424030324971654626938085975644868854623351172787974861388061248638305012547113375127806457113379254095103609465340101200684524778337448188756169882470336535205445825338395292060139401500460819519204112875548656971896815838044854877371252613819993672631765133491851995314090429420310122888505046496350829631260428658471871126882474597850641715546445122652340512716071945611269363441578264614102452903959413198381418771298322814846932270865883070941684389709466441948288049193429317721755520384610405854370634769749808708621985881421120477532399442085311421709156294830664371451737292427971495219609354384531647251196332945782712303381351754876099819593133268714646151990570678948912486461356352864542379868658753336343071385573832901447255967982534700894138362737319996060741713168536356856876740779809162777531624529932753618634552593729715431856667487965029981694715278784685436252382353769219568577786107030873388639121198289380096863578570418217259139989434569860458611656854007337239095584469620764233414100072076269122545149110736477617822059640137952499597645086412283571048967033941773494518072909897029586113606626899086200205477580364160359620307573608065694939683676912807508243920991937098091109793833840147432878775118263008796818522877890641426689143647121995987951602462249456289597680394755309942060278312866322906615321614438504213354178863439323591270101855536044463732584636972641535923116905132677263631746670310110219068770462421560735634078585188105306772589624041167448509657358363893428039210452811537235328943470611558897007757047798870019384147084791865707724798901128478941385830586618221124433192109459487444005230627177853797730748662540411962168807621870312726069326914105760259444084452125547052906982122558094089576515326613167008584081551723695600076798863510064891945272794221305050256100599676658467085313572748053245547373071800493514238638307943014922442326625745276607944720852672992353869873960160786455247607619121446053206237028494632355706061021282595810166939066970570561856099968785089868898603615219141541225479402544001316745565478059364412817593619726813795482677805534672995151642346382935502538870672909445509107414239462189106346664103984968306699755299099267848619661863310051413506211415397978594865291365165643866666936193913424625426000734776648361307006531222750725158935617877480424207388394251645241957753133771836808212809022142932723303336887189857624352751478735273516998977949960621242581996685000128024104845136579639673299020889056779768305850012231372292895456625070876823216589355077291914634298421273700731900506346945832260215178029130617438895810147838581091399067012070449746772619399239421000408102705448396644197680852665406477923520078046165663435726569982450079901270694659597710624181331017522499629565822942525606228758317580542231147584667848488046163079365537043591251420217630232590184753381487450414246032392631565117426011032120656589620703018493247736590972300540892908715239127589361622806948898798823701003970910620953843210060511355965291965709720630388462371977680417816994941027030950937168154925693888121477633463250417972844282277562015692841814727399335650533909789617083647230727854531296190671888584091508190584149938182782872862333549245229076054059283162130421586372043420195762253130266655921713664949030006656414373219642169712468422023227753503817302362540326926456671770549538629313744623272526573079825176161516145546447113935635025041985850691311774293463848376905273928990785793049461563944833459877214133611344875787288622416997268915425875579974250855650481845663951176137020328544005720857705000695998867027880581518363589648160300449350709372022687821575907136853045518243264838521264402448905301943473807926304355234280370115528157536107748536393519908104259561518895729332444990017629566626707206092801732667207183701968185080112364207936085367305049572908793980328479298795928622809325821310597485563333398791086693813360006964466413400627711748912401405234587502797118829952771768573579228661117207928152162307954572327737061287234609701088642460154768644186215005462721220922554806876675586458001673662716350730615343270736586908371881039587367115497254917616405329962389373235741089859030636635106003115385052523141741850082823790370093728040454010008686243879148518434716403387737491189056434948066357963033656206205110349515575322267847854990808612871937213492927726719769522978863751040276793107008299921484795360007538010201594630051969181730413557395281470836325670590003209582442803807266863375935287399797118710124253205877958371144356836651723961238905590212512038561238799962446306957231876670640138237569709488396948962048298892746479876817672783643393681035786293404599486457079782985811996305415371588245254590010029940682557921221393656630250048584360032208577519848922626133723156559477296247279251387283309819790458872157598068472057688982025420285214028336750894647791083268075067973169230416125416444821872038681412789146738591649941155585757895988613856442304339059098957019489852281542810841187668196582427917763728730157774267813038492706307100911959833799115697237490544359779044816248694090753953459729374692695989191396799446966468419845304733194258752348283844162687932276932054252756067996125319842909559994327606093320786116476060749603030268155237347745459598918958173656061707220774895643660033994997979770864054351672359922218381972637545359997041229834688640873661654887003782419334768150126710091992061630086090703947271941389436028953266498625274652199167817048240477642366670353751192462488093021503752460133723345287279978086942948048049512199714209898728901505856343291957113951368988043106226048118938140748522763797251058705592705397125890882735573261160961310429806326098241567740754235202828356220521462406118029082756351526586641506610625438036995949976104640898276512267795675483170415699873121881824610577320741480049080332072115703732123808604985571627026592394337216581991375554755087247535716824669110370533427940379824773771493276754674401386957672656584689551006552578739705800266678529693886974318154178898174400076659725607765332167834872581543031528326610541546893869019793160919945123304269334434793032762142522354790488008213975275656211929538420383646187630311166355806171215991080895308834087598052863639524336443697513243918992369720561885394851827254533712208163291851932104679239175454662861853159415704896055222831790593555488693736420441768621438609286394638387040529693589400192914845131446078316842053810686696383187280196226779185450841282572462936647430635848854391035309178498931499458657014680026878419177258088080098745656931043915482471421102446090074443057854914616311353746420162367092425694742319480248503366353750820629414888392516340761123674705563403685932174314568479206647291516407181187836570550908264819758108621168298358987933760286928058749692909437407842966348279365940519770938055995924513333935865082846356225542994820383306018333309788223188890559099689799388372409003301052449226772428195757015973117812897640692196031095728485432444223433398934190334181748959732116674116325569989704779802561074005392068010615003546083675494557658237992547736900474155018688185344114211822617627920283409650038474937698534421709011914133380740311161024965197819810181035268609562433123584455799166461868193028239769162008400001108226022369296190444084348253782023139317394441364875184592204515479403520491491907363113325397500012758008029919236541767501855367962072260565267930020618428504654120312051843984221167616029180581225334555681387914396648136616858851063595720540675364509683597043711818850764385125304294433108599804373676194208887285724392166097910017649951793272493874921384704587684626662198852223814571901213083243482013177690879855309301157551975466084212974191850156121903941319946189433935836393715843399279728341447286824326269933725477247548344262988866340259301125936198279204253577460395940853823854826327822448445727308757085258948244019804115372846934971288367600867972679536961137606447829593476594257210580691437861952464917828267331094769895363474618861211549435604423157032095182571101449930445495182662489797423979603686222021966640019075504657261039299112734238222161521319743832067337345634445956911132436921311469430817207643955856045440117566403137795605410993059203097584888537581014246923004077702007072458571250666942329304512047357406038480382938075383393065870733080563834832251220906728844010990732107552578488216967979623969407431970551888180005906655433376841424390896388220676582524455408008720827822948413010285186145330811142956983304633674892050037921504666374016271436440348928695442945269512856224246306386921460381057364402935293860842861301972503330842054686569131941096279062353249413646879952753434063472875042848106323883215573915636706445021251346834700191732292027431966681687740112914185044787494183131452351954795783300523563695263365175404377848282040673560216392652068065563956142655735739394023581313244722778880121607088009109994317118990480517332582313395756770189957203087367534741651293087638209969832783731514349405427002445904644828104754542422371379259675782621328002388985606973519581990189656883242599564352384954415327422998589793572868121886109020942780098430417261440613343435022754976372800578663242573279586534644539995351112213647180692654514786041670833290184457843848106768045415460191041250079077239712921242242986360985677444547416514318214065075750782282659810872635117753298309093208136495690183275734806042721734099404970824356254167237795116553198491861185623312191464710413676336442599718635020347608222831872817953732642382834312463126286475461174172970625814164829929708291036060153436285305934590840819037168783363947341257326289668890661967791681039942185410742757428125012127966520365635130741292266035240294268844510625167065248094676661456529714012740741643534654419469938124853717868596231914023528828063263406977575686381290456360908185422530162778324068717571775518769575519605181642908448535100883192647117063508821179686913422897079564900754925561171213446953087871268829072542375099000549375470305391182334381002083540575057226977810537588725409278508010540498967811144480245604901182227617439873246293702776941148163922417346983041374762329139747645863319801924713650018199735286039645232617937464833948815469642074725056786995107722364462898629489449479191313171083954708565925837813795518142737353813414295898794097412472025368875538420063036585344277977366865134030139280564910719286887449078075753108006684567483619447861792505841027557241923378862901843174420485120358710610033425962974321041406199690106727845822125707451618344892967831819735518398941736429133542907004898942668241034733844219090438595816689113495810426456737912014064540903644190978600631440495767864369344615250119603441837875957895076558066776303142123743056311921546539887146142951370736684082174255182062981883895855659298556676090877875485727324380011450117088585118072404343806801141714927890320525615141612313131355605897610899082406208767327103194643395547713003745837281780499268551765769231731983157699093465732780017108468055394436584546953219211241009895931347595087407921401129301273049034293293282393739432365962142168819841173104986526285315874118502599059774460017757830261024396963192289346167785896953286562931810587752430475773756088899150746107767166401998095444679686957864873871973792269115387385257194861343825167125981745757511380236802384408856848136831298304967659732204448792714503030662918903161058272071476932990430577014143834396726036323705668938057850844112924487306769530100864660714771968648005511662136217522016323848569954283914880550226804227971877415825172766546919763164161685837538022760079366875805784806203906475236664369427809354002472364008292969590176070313966013030245016188550059135754550192609541578699833528953424846930407350746329145202405771134676037925733300921439595757161988623117528662143953606701632975142455451275644574173575736324756711589049674935670817904158560188175535681188995232604635747182629778046153245288355746862535748470535384682008337711677353043579983740975692900388764581412726559953385735776173862606969489660871245323051274532537733534388083079688413000291898637903583268486365722589744253647969220462365663925877907768529697384271605186150455063971253430783398739890943742779819906861264179601324251772573452662593313610469102234290577484224150253831530921760126995926092736100823571842768500719232358521181154039368888838995182157294107179836129349092679079392524533037796619761678356137370393624479806591246546091806104328598207871267405800912621046748906005676809094360260381737212958847308789128254471826564397065605355471028881461708791171808577681426689959806240818424998468825326023015706783106056284711581791928208490840012767529619413101543166957528659130560198814634278989130505052918564743198384972126891446046762047145308044590313746562622881836939523530269257704770983865983396227433074586372380080562483577509059592756944841779022012316406715190950117443212280533090155158517807125420660092945616686841061423275893267018285432200742057735962598717674775767395003164108699579795063140497000531098033152378373700988910521301286846184530518816688745242037646023526225229040516092063399290708915709021756707056082858163876445744090104583173898059080065360230290306455523930031273224595779422277721930929092478425931682003670703644391557524108417566382313770475380525285346613213622633156803974850337398285685888911868730016768169699313356479371751482553165759668005962529264125547029089252159413098080059679013170392807623273110916976061480632342481525930174592804544339467095499777365831054796747646899521328536897074033850003502339478431596050679065461333122093041105823391982631916199399971104897866090854049762136072520935307869935273367491182936432686194200145642487668962723239364562990483491866358805324490887666734087266614261155965780414016165095637145789470203022998065993497663724906799269119178427053874824265219815701744055713063163268152763919133814484843334189362063927807706929832257880422941084375140200232659660120240992679730410540751237391783554188838233139098291865670353263025311122743767490808144243223065846357463341569234664560630261294710386216459558743518642988046965060257066546121406656168371759359451311694280926435966184634868977272614465660031785141530638303789970645710073871395218727558193423859549040044999974891553664398346079050086449406580376091643905567329258720439548643259345015964240496122311740103412279984290900236924570151809751825618113481142867868164329463052219726392026418531255634226396712156763219054948138133498812846808179433571021609098345920701172173336868700382137846989590955077774309050179690846573516708986273125211114490841361625555464322337265593084790807794722192950986368926519928017690439509819067030062961723698119501167929019049515321613166433058056423204932626262192263910731263637902469876729874711793377036170409959531869615576264796771772245643600259631235488400561221486478067573116172974826786371464382552086179071250293070901844042100716416754270441932381294177767787816042140928368482020820908070408217826338966164244803694551186077186047786249316453048385146701307234258345905808124863310866621989406643402137143865046941589563418419703744822989403801716196582799672622297098847870112704777084773653147918617908184949400299717188149259017430203648284969251689437736361112633243927080125315923436341849506583043656656821622886430551921028924044106785433607989598217222175435798395756298105998811252924830640133490865608541349710555026282778286593914667740159827901665968326154267492644233082718621902763226947975023225268673073105004584637086562017817359143889305366953505221052458267098839242062657001463140868009989875515061922515016803938021609164800137526862455993880721048016520037688237094432450971645291537680504588393222380039906692670166769505737250694535608232009214322110731995064445892844598890904821001713522873116348030145047367661821516340405666869247099135738780323518717311828989679117315912777860398326984570510574593434713033841324712379811581050194681738383273919019662588702247444931263923779532702867767735242631416443557539605025044306038078279285418210859367499226070334569912090240194747406036468456357032688142285542816252698179700566144466931070834517917282266632644984939976482857858752286083675504502480652873684688108500268571669018096577649420392533786143949378060017864257588610895802172082567164073483649723394316675574372338492483519811405839888346808559399533197290660462335994956138102628395720771058776582861427073982632581796713546194439403835860724433869360253301014909189613627468940037144182547048186940405387280125634251136118826572278680161198926914439588072544818383988592726670184031633068069489154919622152537301542138020767246583998339120716054781641536294328328171226121712788914488257549946787392891891012939021172959871207858522863589580140443674527763471160908129571699644990412778036318595201306168391555073449855132638276278276966412463073742207189366426243042953196077929601717478349125538302369057655152826265624181557729067218058741615676911390205264316169815609118945149787061630132680440319240922453112561263558529827144479007241739032701223139551331360516961399523678384494676334440813693375254050857740581893899022396581345173583217898773725438286854387724373931513578665270335469286146037638519586536355178058964850785529392218801787656328432668632573936525381555369275117409901444946593513627630203521982533194450905414314800088528915076553951725052300489009739094173880952285498311803133018406247070921126770243049424822754560714128911504865202649683759288162044428485252412914927335180427776411400067642944299863546064414117381900810700060289931908304965893369106706146753710933806575439770726538727633989102718547970356071818606673343949257651732273747911480106669638434529275391734374375315006474008418091475447925095413191426382470771459452616683420096406030680172772168203758808682426541912089882265827125582597940781526829248869828978479602598877844182081065484650018624268629863605369107479373469406309598717976499453464772522159276234938072688962464113181868233246115250423775494697274375521853778588956110211960681252349562624638554162931063062648044553254176758285762466719653644130554630561592377329511874233625908163539961906842543880871450681774098661101465111557169608893140463076243925273756903908338922016946248552883459481672121060147818856668525363930208499346694903475956907394611667607042499422948807765844623272789982027028545316313192182412036115354108725651155672288798594923665733510158108917976590891895111034827615114477357991863538263659433389973718052375051513233613777429644343590727984013397815317464311110412904857996841325694699729577038981488817478485388477436654443497025981031152460027733160596185437640681362114632334548034146615634934927638115254373810999707402675730934840405347341664718211163595133010497699850172998904846099924941484475398444555992885729519242092258235288964083467362578619828054019676625014205529860668527872555501382310157274463294477380174357919733644631470085313682609935385442242673188825093079274212149985770586257571731797831109674172930788568726976067760240508004269260491969232474808018213572071739404005844347761323162375808554918435202979436942270903005073765088861064420343208039256244565579054618225133186286108117598933945151099110966560028762772592924574156963962097424576642657295405386829784390530173676391972730774760602928886990242548522719960512199934154936969156169859486845293662983804095686683464499867146491987814569348972564352092358347309602480412390907609025137798060441286249950983494704271568310162480723298308793160733560627066174367764087453280514753227402096177912067391307372308977165457872755020727351296231724399744593717468495200795036345155729951147070887180426193819750996907379238290718624543484379355273395407253697162310411940851191047410771292450826403415977543735589820999039040323547625662122982660118085658091965968869178417078628494240511726912180999755598638523046020210239971870770776928699667960361186044321464701296276833085518414248750236165825312741110208593218904177499440308599065146132252679149904230227495760340593290363620097857887891117495527596851405247653525920542221329712806490481996961420476068024700130870558711026629266378003737240933740583024355389775656927090746820467286024707839974703831296443002628511168657553300953185717736597963509877858715845573262981536820108638965666211010569034645539376883758306320872482883779229231549362565148484064787595503456098471360509164574940365629248147124689420685766498945949697610631498111108789708606915841675912116702441543090195207231118226796600001900949854767094242890460456898925016651392582856494831146427686024650702594935250295199431391234353295517388366966839794249745619462229109917712208964566028728190638134277541994281664515269878037823891474108561386791101387899313932734321488930256170542338930131674171065962482003862262226910267539525830023254820754620225898580753425096727218471203292351010646725443977152210810358975771010037491278510640280300755743767227710519111023564530529843421450485290793279173873984916318724735281987673771826506903167434125164504148562990583291663951244026390971891737734046440081653619150197048579551518806882823417505013393700536429776929375084025858194750405615307710990036688535318868495513497287701067748186586751928640645173096561541797346152049532626999818587054783122326001269022651542511699627943469304899688406916000192004900132344724195216320284616953637704114036349197155287595874078368426472741589866176026353759388473405390600180789226415136352787151157030677721938932995557250597411167630555218453584217045081312882073872553641522642231484678125498311186511604441765754525534344902636066685805871162130559302519251656118126377918256937276254150661495411301897522050074690073166115452248322353134818341567763535468251842885708410625253416212895569174463850644686970935264727991164098748600335004249029382970319169992618306919244682136203659200746796585928375382357873236127364564508054656622585401732421164155991945713280447558884988923974760528838002265559686426738866650328197811701572922674524780837504636261037952175573740723716521597678244716050842883918453581556884840595996632218482600001351803824643823878823173182208703478083388276631483324236562132356298193317380056099996399536361441164968410063710187487372565073797268227443019446075754379650396265978901191844172915873973765877460370798009075805838588530924230938481624861658791681816651510310437842808811654794290640073083457788118733478174099585247625548273039287141423078289562347535127406571607555506403837732522415336487663814961458215127265920296720435130480381493784580075587009036550380572792192819870781528884202957161552332266728338283934190861302233600403522080397757023986887041443150286734100997081292501665202932131294393671856421991791299920050935728128102004113931528878790005252860384489483375801415942826948089370901159102407379752860953929561243883465067414207501199862939624210771994038281129453793638092893411609994911373548809686932446975054499292451017429878809806323151164266289931915981233173631214015698006138566665866906014512952409279072877003976836212067527347882993923375093715139273255196326255951610212899001970376597850149362305950980786882102303019174687336155213797665544027247045326922246107629781366750359701515034596077504792267871228476018131950854457847476658061723347932373856776833291293388512935071024667342499589724466584422227251369135076617843862366708190825062085103664743874714755574361939519347719890306908541140153004602367616764288289842215919948413978418928775920821956782762856125516469976441708672030242004412765026687154369245902237052383869974351765755332860269819810250600967750323704967716074114139452932217146876995948193213257574111718846734839246919543208441419052590731171086536672423147447932376957788306749534985261786601756075855727904092170384552163782223478520421321105031013412268458814507855495513974576362704703615778117011945293208492541297515894282096471583914531731020697511807083034250348212033769833137633896875222576475170596243418229966438572014612433044936996561891786543461739575498374955050230020990385135430018949164543392753043634257093322639875340389209675880116979192246876394727040114486069733404705092502868297425760009608644489150284085304399739915360268219414063363106586247392573956059466031843523680000750667531068073903543860761729542152053034231731567721032148406183888736391243035237519315301019197529151104857700477858025117515338823819507036784616074092983233982368687368253751129139560977506787050355048475264301368717645958296948842355169348107810188556516211586853289341786145166322412097556782790609360374962695827803769000353131637590378970789455431486900262921633193852596384698974980004576428915009700235028300756045670887341292918200180350229729495680959744821695045965439163539280723698132879542350638876762453541606858010689646087926061452319658952068535111034002541479737214942249708903180689996694171053764886707319294579836561945754649631212227461554590713144417738071904536858786352624047206588480159932520998586126250951255168806568290986039210118835344815760263118622658802984751184429348225878408324552336908776158010212389759172011480592497555305361753688568741434862097813619252461569669487393843303065236568564761071391544171690397288451406756667066767789555472051661454817878997867908980218196857562913417712905568754751554188741832197024188134463787944016720392344463147877549726641312434391226126250489679132121722646360863394347369695384575298394894274780674812308185238042555649598719166525665222875675395965502794418321310315991777842588983542748963977437763630097705047370566497309140552621727678898989788533561537072839072096241944979996091608232215563505091972786988429850404463830089616521291124887038959655847004481077446705584913781954888246350727784148314614708177340391339407892137590064365155682037392998594137619134850060402248432625465306890696044682125716036084515754243754521563439483493900441505586392566518034057210480738790019745496737306370381270209281431316983049046131463948475659389645042236546530113776770768216893475215350879395988965635490857342215876840646292848096128421662352143256895269043069621770734173370728524675741129157392301260127215741303907337701306612161264960753689141773544895506284025286822538345412422906337298698415995491854710401602980109653369779556890352702960253782418846162271057058770624715612265920979189522678718815564029645223605799426170801241188595333998418429427711144248723692582063426657366490763720472402781027593823777427188663646591285655385657018987250533186274468280517385693692972620383764277902668453049776516075401429864718044408358273052028959638991597665053678305223902056131799669309140631039052318292180348323034727601350695538718534937154842089626996241538307945987409761049104647171232252355256216723216270108776356526972595219671497188273328011956890187267291898479846872989375627485414023022223272936332483549349213529350139781768281308036386411061300649170737877844394015850021940492659156716327928157144535868001622318120719341002009006679463678187012603598259077853276431580547085649197282238592079634424007601845715798029270986251098921632572811096545410032816941259782582357760761791379982966525618024269712934522383379195036070544110740035244913354487866290560864425046017708533365270559333331068787756954092936704308224559266177634696661382750136076197098307558300235859756242774718818997076963822780827018945534254650182749997553196614577786722616498098269508320288830864381131894862217519617513411300281787811259093986987203621280204057533718261813265684814752599100071722902156654970723281487500552096918840485637039147379422058645293336915173991999120709855451409050348543949890608232197906797146826818283973527608276805401958303470268506267320897683274809973778748083932121642718122480491096868724215116731235390324601574276785426600546954577785578854558818064017591153560185322708351787551598522233275876248456772629373190879970365371974866312971925797359735488154744226032127530711552260108809388333892649990163950295357548622602055245453015831392101580989560230175197770746845044498926863434101426303673833474033060544851272136596659792406486089130487090745933972573664981744858405166644973053977197774445306130416443011357713390450046350122040073868599636665863832354153797162228411383566029454154442073755261315879870288294925479315707150646179549620229099856771159276830628458585831473310918703439614989108488611955572633331053917702880760746403252252053755435723116609742900729477295302340816370630558315571706994125678559252693513101516406825102345151888626683349643157941823274773456070769799205597346293601552932751420371033853840822361513674472647310155626321068486621004018756025187788750326149361074736401709741239290909786904024419906951328134623270167649405653756421713486249497118644989204681145770900932828239164800810399242601112524804506585100743137536722825354323937751489450156637738591276837717600864045551726042265249637215355377560055540174941130382219683968467077990334307293280710220764754058805962965131009192032237078974242999567887608484727202539187956140812143522247469937585885758836431163034279834133311778345136387974057739449014153083140578905835175698073301935827204872381007146173903325741118903599919964081999373791687666990036067372491396852191081125448470459766027488884627476573366004000298751714828977962415983104373271820460500459169294208413514849081976267776129913778543103891578807621922108463293031543043439414147290105210598390865873289946768385613087819646367609397656976049689584867040053925110597981806396136505434798741235815764725724084100302402913188776546843405559767614118057962342219442382936120374674475459693616378484951129762438515462220973102146760319584732072525904127968078611908701054356829985281967948946999198677795744587671503437858619956014972506939445164209726410406490588826243198017304370217603496202386995793045591901675515872942147072656536572432689041223894279484631656452328053024724864660276232256656499889495111103624557719329848055109267089012491654668604506434245436402867200215963625521549786214163025064379391169067000234053882017457475611786456341207500961327507439918597560617437153715447192450440151686557732788360390149409974644009432092513009721486344671935393916778575822943747683494821593175044679000888416533756792377549994942941099452844250891565730666059423890870212481047685446106264056079979896504702591187557917216359663928355122920433133063218015788528587930608483644637709013782439212245163890496213626018115119273026155856178098505506772594795141473092195919672294750525523326676954189781681635028533689815581178504262716085329306844995931868104270868692747761599720455141912424502668557857530568422369370734437615804057171963852741582462037946664478819047878507313165610484923073484491220943516083960719410690974270327522476271815468240570398479734915520371380250201425905205661667612708047640267221197669085117200516003786478037436481041018639644487446135466708646659042620810803263666037324869843058975577693195158591619785416235053198563566433276911729403725046027364864440174323099644584605665958541014561387092018704498704731661222775820266936707220097751290252757961685383559214920781832854771923317121021556831301610233579238322488404634522327850509583746606577150578985148592903444361909927005628419236649241770382840805355579484621375816105171013709613890049831101850285258137253405742240825794611877216871455509852135611877177846192236601526550759468205324784443540011321835676571177195547075962332430640043170298440258397577429887833520814313977510436622430763916685603302848510588770758271511913664350665236001928270042244492275542988946276290591539598067931927556874926259353547879777121780287269666997177831745077972842488411856148563574545989008041470039584790985433730118429445444671678663846107514220066509946911398557442103639739140575818684463681187391510813451966764883576400664730957069109111389011927328162892196063876246906440083083440490295393819874849876630889254154660802415411925581618690660635751747424198991811989422853753805829469422599051511250963733806938118404701656779291392740554870138010664347383063054694232316727154788386480724259099212169885708902188077119449750673828847588677522877739851141105348248526194854528013184711248062601100580115525591226322726158895215418931131971197571336421190694178122195291540309443392257768558764906065963062525548765511946834062879309888599605508020844753045029766548252931986538372456875393360091392911139825083821262925475563446292314880164642449045783004767597741187331030780299531763278680584919676283614577234273444336634481138450071604521650002779335395015218354121270117825750795940085024326975792522713519595831156190077893765663274958193309812932910805813136476137670445519673619266352576352323555370401901069408625484113766021221630436123489046946753763348984799673387997530803994846695095683710236616535431069427424942486634978827113478585984909580472377431552177383536905263443216123459357852079160267734521256020042031677053296722926711188523794066267033305215661950951025235884387793607007111150559391675881265173494558863739259657641378278751684992204212643749843699473574421367897369649752699533691047817543161148395532899189888013772715739860143585037450656511783584014789158901269604835870859383356544454023359039528345994546262554835031581815497028670804814337645276289392704421557734546955102969304400102571465656230573587239298288169438315603465046259621488089132189131546565494660063770474210714456862416746083036381863867552791736066802849483771016693484145767436238305143912619511081674101875977296681111502810858894283010048212687272398034560431850260240965859834236527396963305899156152032815934596584173332587827286319814999354869415029367877368860913705125214017605346746610294238788671954990422443722621254269836047881159942683897450923572679172911392872927494795792010447531487571299782773477286392950804688970889182596266710999532190896094008752511328476532593444110623910675697035271384998260267413867789880724174611771959355446680692426513902587152832001198160890973178709109038077609637905948097924817404802075363170141675886272233250580376060901278059519179356508128050835623153329186645994593323059799229459799565078298539492671112765039498620708344588481123959425093188280409063314495702173130178997128431355911086078580500366327885055747518558894193462843227519640869314105242796901318154493361597145746169794175095712167789319256557250328833206818665884408997603971724470514581619281371764442328531831502371560145172564464501268442739761821775541142366929547943887347393675096006851634058813067720074628567944061542930381925757994028930111354313070367985100327339991349798593494363252678766513780197669984939526947042928945739613125155079600658046184790111066224133562466676045972845983025231461336220559702549926005014960271045667977557705096119128553963525114143713132806835038728217181798203413808503405775232713520729982318031038981136436651767262562811065033100140270758445708325380814812976447041942461416288042799099005433917746961797900563341964206606993596962389183526489205000989668932451267452120629539532209681910279581620967066923090214344044177603495450179229703904454022941599176665170934375148877746210970068730396963493425968373920833386914411069776188774925039731206898225835439705805280699303522369255748738230968383909450060917094240640672474039987477690823418772338379155477818464640608899033275821848817949993517724225114606484233292296082395074523153541527266671613874400463098700053575585581508671176845648467816418876184868625011458618614211350771527495614410186324666280400832701598170219156524555733608664106665962337335335441599731077991371150575707689657545698627092599208315627018494563286947685169523554871446391370850694487972267386125658635232629289433706263187907671009060255464929841175202994615533134135450426294645635619370214326271853646879736328827505184772538466062018871857002670959569630940910044043444343456152653083622998269322970623519874012205399575220823171496157463907337294160881118892567485988822141728326153072410961206560450180680697560091194596756381663203975666052569398293952937388757471553003285085907107781635550501977669415195413689072898058175384811300303815601241476442509729042909268960754793735824927676036809065395564112301602949462805776595154463321338219270320029642718601171514981358254673076943589006104839868986296819651014395371098579114808087917531439305053614916943070795023961402978573646414851721800312971003839285058251306840613010076367388574378853448846670686878248063337408415599080296157706765746070345361835424649154911126558440178408879498792496828582041811731559761249622185668600644737130872364014798971470636460213001253805022370644399688118305727728682561624709262274034143451716534827496969870682566430250786778233418037993133739182281816451231254867457195072619578857027461957347742179789142992447941526937423785441399761534892756900865911184770336581568514994483163219545283795766599750589209769304611084839475707527697227027502413425713289606673128847199698035916219232149584649304094208036670403369034681915813823942267009988409980514805576092903193128984893321889125876708993512551941904297981920874040991976089577433670217197361196501480719994852961154009088237399385804316373463507438414106022120640291975377353411529524000728856947398873442737209497274934340920636536714202638635914629317778467754996304358211797242630599646854072266580105513896723276332223342371960197961178375148221356478856713853370383780657891802286099338405694804717205357489878243218450195674807579816919393605241534263428892355810831333969201483489337159968158668929278897615272687473727323419065059992524490534894845795061595836492676122292558759198163248429460032113952345469454886041612925269950156857378102357983386447116376041661498883014009330043521341443776021377098168026251804861543757671616891204855720410575199542229094514451038563310294539984021228561966022588428507957365027636237043037915808881774201304002947043647092872853791869375575695702390659422884934455767495980561681368898381852001355877730444873320590653450673476659348132525338308804673805139440632533376688811805554958122116714371641303031390387945314157150907695368798586818946393849484313772144105674299982309132382774499115292196755531745486267230989913537415972091714496754326240468314958538764305077507686075064770273962668547194418912031689020913441903396037787669453052707180644299856927503579119975266923742294859306838461119961924902567876758124928463380095801192234573183517080885584013748344622450254913956634761988559867791746953703550250834870026830153727899167315384096064632252367668501534066495558492235029404781183709084525358135058408406967243090062797366316615141746157612841571418679726083390054187625689544970683695630990978970965228307525164192285810950679077523478556430791184157907373032074114205028618776136279022775308439808500482821534199404034156851670843073729944310002507778072334525256551112142346133490465194757224386686359118613396227681967401973493272656833764032827328619152117480334661189936426208540672068764726393106989876342890245342087519237411565744401638271055853364264429679291512227067234633432853116996619201632264635565005303061404946706124981671990621843169255455288710915909203315236722940234378594728941453764036437914259384940863554966537811099961851162870021731554874253412846245669323367278059131749873554696151585467505614125635255484466698435911091013916573351922264119819978141769811448229604037104482635145286723546258150457109035808048174195032241892784440005011848426550961229116326192771015665303519011698954099911696684827282288865528903585086486493519342787142406463626461465851951399705505421324440625009087879280712567742352354857226439704813288098500824092707358911658328015860285345368486196278277718486779210833496720300473486287288331893173280215714297489050960383996973541076793121460389749918341840571257424209099921312129356335143977364003561679044871254711459468870093054098665218309085782756483562138815323020566540781851244575149076447830368529107200041536843189377862918119338098574229958326048489352163727633487767430264132640571291243431025909057935811165998380619938602799687907965030596384339007318456553759704651139748885311672693771844798344031825585232438631879006623883816682499258839216354208403650831220895637383664076392713104370702689495461920417613437618760933243976148772831801156294314558260890668789697460256643713732282942375665622083181761160953300491797755365726956964381514270952101016147969411548051473351186460745494138786335913400102332448289700222933388126144446916392285560904634298385309183345092683991071497803741665837738904091627077831124123155181235365223025381277590238822838665058189754747857082318024594512870927014138075677762422014604652906190605605594968860501885066604451458791317407543018386482936227143073902430632962604724841207605100419294188608239208344573119182043436738281245777156506805921626589319708677914850881493110830747791588557538640949066745900112642916709778287066530828135750206305048064988848912800979213747443809326516316407685496031956864772888064706751928491797487545519332912088523440270087720361643065701867416518872742656173264832736043379036531691650483869016698479806032999960100783999346720032040404337730097833757368940766971659932050400527461064117714353932325570905425190851453282393844137412816634053876031771209978624467564018791195943253581283299616341771816356832506910280792919398825741801831137996969796831925405785193329789853594563999882479554688252548778516008515286175320751301168441733797632641670053221352899181334087303168064998754598200397237534657714934810629030732608238143069024458518097076661437119981442677505287736658797094920774580382271722867911827864980703615634317451705167739614379082627939225233031934037164022490384755322573977574341531688297281796724338845371896308231337167784091415607728608265356616762471376304553772234061652802548637491927255830523289249673740826474479128585072698735113997645931580685964444371288761210362970692961821365646966451435509408885473312590044497309309644408235679610288010038359442229583863232980186551883745311799192840131994480202378657010829594881227089551844214318349850916073815810228568394269819746226941300509771763542043975921818250634893331184124800549383485323897455891953235218755901121665306308931519502234368542318910252312997842788274340724209640743653443000555832459740431042561726632699734537373540087967478884205494900281792849610422911830350652113911190189497986919964774452115471594240041376223370706307041318479599957134938630805428194258080205838491074283421717804814110593799959511559211950357115104283856948981811349018306105759154963459025424635663153266702578594203241119990081278760122564289956706854239005404721524465129994415438704218140442551408662695856593460952613357932636587062371719080875362588404231734071230712142606956709220310427519438600933455006005937877599752564600887326938324472953733913207323203940077664005629527518529859187578006993464613470494083104411553605532880655241671249184915345055366680990231941031220973091964348130573642111647400928565949289937118903192955489361184746013850388699347840082852028519912755449031270413954873670788263241587863522813771767269839736423161213317889358782523929302219157131593497878338179474323096159868536695865878019441009426816118988398985268322148488657366177346938015245172393755334645179762794513749275932678963856965842120042998293838171045132962980281142135536693276994806001446058855540494952017646738820705100578155828457671092206670358799853031175316717205383520091710645098394125605042147083185768964947335932066152977030372885877764089638274906811576054356378361147668071619811277785311722998283190649167299727114627046699679780283458179632770304038781712647659330762730245790262631234888125358360544766045486717684922198197689474048300954419375339846432090889567434363326299490815734763199965703285726749854847244532431822063612586716892515603369953698461653809419943468940374180300738830371305508935314570171450356967446343855444142455706621418443663104739094693776418439498238374565782069169246118735537165546320040563700855613959719047359513074915251155318434659717946328979273856190950640667453902120891090847996512671693528297728926332184198706179545916549398673995897113008283509429471602206945938580225346429219443005006063800695246579288828020333227151786672949837881220349646603619762063029395860420698335718696269591257307534058135794817542991634981536282824077148271980991044325973724819341486769708460955068179646306806311511998963575925093394525446852592915054392732476722259335040185386025836806842813119652501125137391233474560082506155958740164692968905294519427568942653349517289058054465591377462845022056866198677320828631551630377345760589028844771111243543727213386403016889492915551746913481589852564167968622131326475356837925046043459910016562102589020362210395783202890797236802785484210046575567353426270387807546939780509823293362467976131334999580891313585795572448838151216600705469259928246159708887141079513336099826819571669648414376456564324156151178695041171618897285907861244914588982877561883626925140591296229627144610935453327867519650867252001498277223016492774776452549736107465329551692297001087043740881961798316456950155393516430273111950193292315830101939555568488219958778042617480559866729259020477005022025197305265773039703105683688924800067238488154422296783071529344610547577552370607738052115307743043943909749023139084660848330668401793074053054863142061813788628428238583674129290353841717365478560557657296276536940360820146848649158564414332143225220444249711342378652085767435157202848629295504626893165825174849799539668088198636156375395107010588272298796983973367583103463090104553223956693218589568657435511746339554133549001338013778863912337519485119668358207847404932249824512714881386462343042761497286194971591276603001874244947705643002758883894883270427952630541517706557431188420343431770335911898906153865425229094239076406867710252186338712797241793985401417781136134147502470445591509885605060633652875126082655890978854520868687661684484398463964919058109157439705966375040913793814766373452798483817532760128428475147920006363676309198336390920885745012268258266424573772929969604149943346595302391609480652732371635771332582199942553748435802065159651309184357582983138809956198182969423416857312208402737001077179722834182724549387970755409176029272573746407100418549594306938088061826072343500363375517386994442915312095740579589932694246277307743442696366355765508644470443613767016361275210947865634852275527173659298967098469001469909142744016024492930318878016403037418254905984910028424044307817924104202677819901434775746348375625671637731053813680471611688194821041971693692473555139346347118080225565953275468433956240335695382500823622677410557423182882708847630677222426704048517164769659097388956116397007814687789598615807648436364937354130375495721785475111612600964142522581800184210917700259212681563632515414638992445338063493018093362051880309377257216271544352388674831945732764253144363243234329029968043443022196597638058461282353281602289308780183222889103657075136473899568138439816430417625822945826293931273793431276362111583909854118190038492311578009373846902176847836604264550493335175392718677880262128058812434633499810547432688298587365529025349661015120931897388558277981019697194238468262765431719437710800978967577741835812919674162941189256722301166090045307894204598791934880578972347605042464468514798999590314854013681268569841697168214031125428831455803517552130491913809593942713782454600081003671983838509421823494218458847473035294749527407251526758218392713242266833981574620739240978920852912342037113089287327815359975310909957718641113240259966788915234106722409382978128839639374665225246728619549621785980736090481634989535063803694356644307833329600913407648701876227149699392668733363120798116058514267170567005565445445588948013098906776239820075725413361543412927845421573112116072394807246792750936359679984697618047121312504900388021823569492350404058129087451015449019832887695970064006731330190913328854403795147918647580477389151634927011113620899860559615829057175043760794263335726037291853161910756621916368114834376660586316867741452348699560399890640674077757129308556837485015722375362228072800827073711150501958628519424217797122739253021515309392304658067508662822240886634551794422221565986685235986210498299914191063421050358417824092971642064826032813514347376701371327651834945275617452853654554602461930556947645881577115869388996845966338212182147639692505717720438513710264039667225438241284595705511771165362826712748921975497286615554117962747472332043479909451204493085169733681980096282161898165109345429150849549667477058245983538188785917517250136741672084156189844993458750265545267529521493924502399856411890647160573114920356122020144595782652745439209634246628944560412623589883453309021087281184295180024411077390687499242884541080564934082806152677727865934114064879206503735080529171710418086252074319379662153269502662942572838594310929161697607756624283241928487660804109992607066944214615698087423079139616737882369148118138076518131207641743989165177386242401231325749811826398309042004804622252452551699633881945231803193892897200736277197814654636256196864953296153678901905146086051065218755717800323418375673302247339605744778366482733910288786441774125025174820921768599587435813283030965242016906858207190275159722856932068807181653377373049783689829188757731445044342160527382302967595093490663304592686361357829568135607787081786309230601769340520457004667388621641924927487469853214643034541139445849140602665015701269070530466073006842176700780770543134571785021676112778172315626885511615488163807649409508368335659299323377868844128662739006051523508992595938893474619069600486944413012898973214457562653429685825269883997255559690950691925591423804476687654514787068173712171556334727626012346517182510821997296298516608144797038661687182593037263894962844151226988876227549001786599030979914052753477943588236417545161412230179162361314728826988090210031161492905519432233450495533812862005084814630920846904847243583675850267333211829237772817618622337979496452302483264101318396950266835256151960864133257851469109626523678574395565402309758400446469802437020136860198123683899358090933014993786622876381018468769073867036259565988150423164685450240445540576387625954921850366402349252314695101557798287199812973120761892571221550046835738822428960582472094785374957977745469136762915106817103801361290505971120237715958484574643648013123102509984292572335178227425635835102592880711560723379685995470547817612118626721981694747263275232805135557992667098846058084595714815252368273515080116710159899540492818022424561476742095198428271645098296016233775678624366787985285855329871279120427199338826458471966086586501780210220470344058015282415364640970455771863785605938365092365149627674761753540547211427927976913173656689714734119188818325037338460171968654548594229964576670223460752134023318697179569523671293101862345346307936151006219679278838102592239038518032680609955791296535870884191180239166731433446371968832002571869538208824284553991812563143927421111093510245252671530795320480698119478247000443246196811018931258677410973535908724648718137012762719313388370121075694452387930325961185653632294328295969558680032026779853389667605389231216269427768502508602247670178215036964558681255279970219979569355000079687116399071646449256097455223357369822967883617937462026120089024501020506225447259313592407373956493052144887889389458167251452464511988967242836137566918690351973417052890797053322965467925028129883581555167857544500720765203180863014122926978157746455030202108453592326410571282585210045001195807490211031120740421998955271388483897852418246542453311928177921770474775419396168339143520593888688923443518317871555535943128603056878277128495966792454788653232660611208120726702881084521737786623427969496858087848368160682886621473485729413050257650521463427116634890389721062189383600272704242412949364030364338313954022120972511685186215856846158208883289760686157880532951673826716487945121906873537217668839557404406748161155207680679284675047943868778459576511056639068813971504548165405893430509632658902104187784906307158411809066001327759748158331211170291871630703755295528045998792540680443385547996410914779219828980447397488818991036653225694214015045175375765373435338554066079761337647800106835594100273900538702635068899096482153558302579310489664289154303996603262874070648013517323954105359660041062498166437895625163489919816126845204973288354942178506717859403779763947604521986183642905493483757433064479154889919776110405874536483830539983630423909184557837325917053362147078827135209722734772547206058973626970826529285056491693344929302658359698251577643302036549457337046902812291299852515231092332730030291807344431417299030494328897038878404744090035948987241170784829741814102576522272749746330104177911164812587662106165837097656325977165902852417322268479687709366490099087311495758194994604326480297497000776034505339824831145104999828881964787974181943015040796051588833824810386311219396178283910580874150400933900393269635456552628788850956168209834340016758451609163406018527530312086809983966167411692869787002247099540331808539274972359719722857320909179331537880079281818219299174500360859737199195285613875118880705662783957443603328510947137618494084125347895920294395429454924011667788943211007407152728487158538413873218579518446271036007652431260699494109104106324321315194762096627882355188301432396422411717109362106172630834729463376571894039740826938517514704943945133115349859920212766477830122914096096526503442120609960541778196446606994330444413798685280648895038231604844888336530441945404057143924052388765259885240820880780205533557202945766363358397327527025563759839109981460187421247547994785052242732068246264265177883736086399805047247879123019751507854100910876948717839772411917079075816391943650134358966178580719009431217059739218957917188807817648582182798482256247246415584352738047888194064300470509242360037484359043386887053131694646289908506954716947434471381115754691390256878210012143345094501242935592206042826522663362152005800659598970760530226606014868868306206215946636819130741685489005874329369962774753751442743750159532574691242690700374329905713625399659697974417183235468847321344492330561864196788173117696673208652733735983428986764724201845389403837249848128366147162528610430003768295228051565226604859043551738472445459096417423869606600615308906427997034772532751140748281919180829834961630871454445336779012046426638851563224667540097524486461202982845083049147407206031187006646924119730019537748196754879761091976296386841579535516473357304254505194874486894677147818835679008086750571839626332885304917013330581381253042709113091643492171428882547395489155734555701705887728930956549368746121271904030268196348308845392506467984544982906946940572003953391662588587115436077214237612818244572613278033882742140527513791598240044584931697294333956738253117137455933516035792815972093769002244919626155875413689064911614454413856362046503099999522748332626028813191496297233681611454847581357467355552593494251070486765355637224242116567309993795119649631708547163373740287458413467900582188814029940740406925295629448189531576297062240582762967945423196651691783649409986574678057759390796063435861463308008197292953047761315510823353881116882330456845705410589071539679853776556360000347341836320552841678817087108522022672588529208164730917070997802568151811265467815176083194462733160231114468871696051415536830771440933653450974740346939401536829412992163579583023408251678470997915869333155443055515874562880589182734243655304727221615039336939557815470838662827767273381695121286262721756221363315314418263216765423450292722075916293529938616265873158553157467971715216694527712132450946788943350854335227251382149967153863569277882179332320663999138857095702292049217054846685635907652440355524349193751949957297766574084322744410836800403843015897683931964763816066041826892777468018982329494267476161461682912693090088373144845009884817448731017136730787387837223706071994554488594886024766703658408407767604798240406499366466752550920473305781261885440797137617834112669196927424522354604964333429797894487440151096829002380260903323219991672758450884451510701062449479375407467849423136477457123757682005005138574891435400219758288546382963488954980329800510241779951657451596031687234482517284960019191377422411418176566992004128979649886591391695180782137870351980412112476957603624561372539876944126671479371039552558334704918674376199165800637704292499326303798487447374408723407033128454295510758299017025205819939586414262902948862482729260793680867950098340438503914403555150370080059538573377561241273350950744269517506132678694504460877635509073652084404108114495856760045828348985529267259600780398084727715981034007136038213216139331937537642023705508359875840606790820797864913766369686715902426877171686249246437795996686712239684027706201445995694419418876529475641249041931978098260486942944277908664900016394617891746292605261508594974240042808768689707675614065125867244713897149747541151029846460676627571113138712356570300215682632777105400909687411278123634309315214228394240614213466184118601388403180753511342955753241688253471111169149532363876235751832132741701414068640421194343450830848808568691963097821270108067707387131003662694354753446557171026901349995672595166106158467928881478409729630109560775956242998765955463398451957929999460830207089658264470273302789838248395920719875987738873110852147073727738286042354228761651917267018724980458606860208967185119178278036396048422420320572556183405576063628221778101871911752301301810046706020754338807827411436331314093615213821479699660378668804728079473430265978901361475145898809340005466162378906677860284634039335968967463563146955253465883533029178600684560999291565195418848410643662461137220057667942102118897916056214780428463493878456114935292016805236674170483590524391424822183811421932777741234508196039617683392711660801807794420429112006731123128493629704633703923161608999267262125956271504113113880513527063779243298476671314932493481912769436362617971130115550573094887985499104636121081823236543351438271301726852064187382172877319808761964395621085848970579037341760185189588751077193367302949383813024087181495703608934921245929568763397773004583625280176728172105000702291780801850350594437789065161312717771017851387220083165497716883192921678211707955730912604145026296222613386497674341252593022476349923790959170705021767807335865038987859831271592936809026287052546833150607653567586977441992336452360506455303123489326472779217211865709303593032983436880258891346317219504026161222440496399867671848440676513722614628450421314578297772735858374856905835778584528174805285353429679380979471042335892866669501759507230528805627469095731149901787755595642292163649737137983531252324251043391970453429308101382934493716992724629828828036247969694534502598895304516788300109629047977499320467095956229435894326346943589152237050078627617529035003242328363567673222784059251870319018383642040788748514413286326539500196155220602040789583334853195379087175045658133063789908242703218432415290193049043816693072180082738158749626482688697325209209849587807914710882390487392572360739718219991480910382966137318693271056979663191009602113913695371562933588069220997505461895432651202520394669501346500074788888175396752183230624848027886713702317448529009894383495891791225685629500775752399527800950091305698989679891289353868193255717830722637282662692286901264361108490764948472053311924193382021489072547358505954397316510907374369223312187771439406292590255522616796366857967533871045938998125101957561109933324598662388431456734576047400793518059966882489603974626898411235205376507796431743903337866117222081705325121119080950633086382076974464255629816669457788516378397645857467292232710118453144280526277019746140944865523440394241512453122859414995166153471684231930121531738588363807230236970388746381025233705534858353981741283353572516809256986051154573888699009252193383923373834724522576597094296728526924851107385705300070089606662271555739229284593049609526716075649665791537065084232944735002155147508026749828367876261477612181468625640163319710469112994024409406253054616005273197337897435048357857522475514756520566407942156229036073847694644287808696823532728643519899461741215365199018799973870574231319137348747980899144036856589475847232600526544635721190940337545221253567454105566395199820228155895397417451584797407681908810895107646377100721658993610733334676960678919400085641113449238017248976075073935172489868138777241161896892145251016363559477550427326593024205756271417660454623942565003742013114605043557986059627289125699425295336551637587740168175328471105598960724441741287128784409881946885123417116360632278278936240207778711218046596615232944917310241151436517274669439803137581121825454555081197839573937292026061646867882589275136828215869385077627869151770852445141845941079464610876557360644471891592177918181822647267955260642408515030027401436484134145175310677857507994441676760871784894283769868844490693371949330507678440877335655396739438184602430722941653480426169045786820977078893040320604223900877063671811422039075717111751974415285733252766503467307787427709301385514347681627547435776428389075124507267417093466198995577359849798863206994642033735007752674263810006584362099422847281932822895696219577444321352785588408067402067638273310985787283626907677231750974381518602535139838718846498184328906764917118935325551858777328832063708774718294095140561890120765460405131549620926017522489357269842548183053079605160240532872183207747007107174034100802205684260151081914150588097912676712716154739040668402691875386892750382718931255055932387239270244474405235385538476532695956397449598161471219317955286095126366609431647649403224019423359847175629491667784092508819815845180141745476603451536237615666485100404022021344702293738597953054073390636705597924951732793147544324971241241790039456085319889875253725031989159827660193081083134850537192861774619039220247630677575421930685424337388835798777772483137445642785650050279676056658349235488647491202613663209463189399912247548668709954914281227074089218667926119187343359737342530299010109929132253605193359853077251799986933141406280128493471387488392723603751871460321942373607742285854199074503556204648993057280880204350130624519551791920723366603946191927110475070594696275421930819643628662108751205424761595402625727080163880619233311533619932756687622934912835228391498056970573922843791760593077156327394537435198724252793000641241390336322868202671378376828571298819746812048580500135949768350296454989486870337427392782317748928013252350487874103473456149744657036128599795616628167791227767269300289075471884359611444797810657712241137904166364960033371356036836903990057159207388859340914462553150364560245922228372908279764619667963948363946091196892953750746930913376018993902172749597285395977599044983042598300032092196908640123323196422418832155875870312571947554600477639614672164806675560030694724675234539601676332259892233572837089100002504775572536922758250666944914717827586390425126658680959482077074374819635173605489168325303616546214197049792052438616719403513854657441003181461842350814055956291173697984002667270583132865235229339058805743273762609350441275771316973173056439233332874458813817257484483405910085938167122947191007386359756678919927896457213107957659256853889875299814319903577268501460877051434680455889086907856426994262688446209332209902096238186353911567717794658373730770892125755336806083632329236991998042174544519267819944425020468758979174647947152923985165706263978825428546331140162035271255907450724715751787967692552042217963766262207114498226575957711804639757535754856918523907743683489986085748867217079184745948980326282621630939748502610914244235859643774949077495143269411021523820851051229646924446083206849178333402147529592236721766829033756762856726823942360019213679977650004417949068432428823369420364747465442964130936766164228307094675406873352518691842272722520292631366063525187323909267434806484429953437348526493421625638420728597515065655333624698341757166222132987343003633719195677426135123603181690764138369355002145870216733575985442611479369371590324655838547600248726836790953384343137029406687209467184849543224713661672489055555039556102203399045323670473109823004454118816842066322834199978266147865971565732130084958721076306264418538668197992666894184160517533732030535513613880451896968494620321195455167830076906382784675083134375304299224150449543883523530416844181944498491595534616073377664509176643254728125109534245177597920488391590831650493614413861910209641712389407278904378561712906268390796677048237134907860386617614116431964674933571466619386581348577669891609805072540050988871939246879497175097465232143148552617200976788673335873886467118650614054902484100707242128760063042422087807805655771343351462350214192642832328680942903801061315395695128996964634846108556695157114160920849797643775211466419425803696731467443580203767138355718283347359064322664137502526769742067005622619349208796171170421725822382577019971954765014513148645447646773249192848307725426819116825642139522530292856501276787195386449089199318257205884686691343049208503943390696085038881008295753365840115178797710032647819619952054337587344204757977601644362458804086692402703611528757987875132632932210536823881643100966807527543272360240662098666916749043459507913709502128742228159788887623348642935169082336528458602511537611666411521460690726527726852416872692284887903555920222393320684892284184507572896425443031325034061004473566506966733180467584936801162653915972031133447758359407469197339483050220717001973747023150754460516674433281791671392631797342612412759587630274650105707286683832229651535769689138962272875265022378640500876965656026611498765364331225187160944579994371172687538757284962737333624046920884464669689445085197056997314639286712923053039745083250031369789250704455967751259949374648717121932958925778910219454195616989097636854897429875001185109139607537122244554952931259798271984236148039067437028946804425297865315950651549631509086668164513305922463675784323662619363598109274411207914475002943115826038328164937506391789134783099299310244890723869487828468572676894385129768386263206391825829115736212815256424830588432814982116672028092222478774317396335807693738356905623833922758507249038277613178745861696009867084489761287468232077910323514509814517064986268720764847559353091581335945324908235391412071803649684940845474849827124560214047600588943535589527948962844701034410612419751035680877963553049015930774252229295438898210833948507732067320421386761850592583989254207915607026918855877729561859873851549028575608200497070218074748950689070192568968271540976492423730531515831801012557035148674421302176172117205310695618641632933430664687802090382955240660512784871636181710827464624298117759635362388973248561201524696487861125604465258224652775662329324840163684692823288738947636424104321595931086918330709748332987200332715489579069521189739166893195067141692731595737382859514445012070373694799084490681156015089504213447537716921183434968617523274641446405161074949888968995297135136064163961556141040222804480866379506576483230350306418299325495734041791455873325738747825013711939299807920612203431321731072603194371715027864649468854223943242210636523328664824057344019438385318137045570865469312647526136258528802129874848375177869285235583195456023851558047290869074633974975182084109224430686331856374392690496188330932624550402003039356884835020494309240426330435240159420554554778517068021550069280525436758828382892168446008382551950575811545507178209998322615880475758639517715119245004957230937535526942264981882445299184549842394438596673344606073108431305083113181575389031551254885162384260136995384482940211359178673900041540360205057648975447666887765182299624777282744393366401108092005261605434357900211620869791519541910130893287744644441963973323323779380172133965041588809515409910912074203264461441348246019970221542406631550267826908328448002542158470620836858189752522057202410013328608251794077138480457762881933763326073548070529601105161740614056258451024907396254609441266848777967049935599660479952271632607477620050177798233495546278565974767894589393580563349659265013719149480190181717643457936259124327062052211587083109222296693606287999242930427086674946770072404708086920933859777185198221610521491035720802267602502328354903558805055703360871923716518119183251935577962303905559774810499356071359017992531921871609867300051336279018918722782286699257377961689299511141311055214787169147345800735319860160186470670651083895266147061166950931930300236888933463085404276185824082625855892034142412443479865704423264662116124956786376702812733204240711512081349970570866403123646930357572914878738901090903399074179021671692097941005643741975248992722796399667129344218946768891248691350363524812137355556425481096547377070935375299352620844356882406621309705425765007687369782234758979359400024197726033316370774054241974629895290177435411282594865692195165502727489925635515011444528509646842466540823691683737881212864850726104632665946317655837464326433806220995599468097130810235023100078112379546153964151168165099108584655571007125535316339796475380006785025458968077585172591273907372603365325952356310108042776403581336027667368911170448428935103320693449309502743464681069854617803576465134428554858739433988093275217839082883443026682978396209871579835533585109813864539217449575153894802623081566549950170327106460638933847390916692309978355502458787892774412781544895458303647685295419206706048246042901094037112108070640247617161751061673721920996248902569944712590275530183573445919143620274381200445827748612510594651361837050910692344365946522180404680336636350210458983286964105200761748867191389573935744259588389092774589811732893063235197232961816934713739814438564228188792029513409759119991247793539989215538260875658021610439053144058192054007544324464993974857184343931309421606599165172268366799027547380328678633552032538216708099487063268330657797910026168351976273180843699649556335435444256106608562680374864538796789195832917043590095615393566825843149090366033311439901266921597912382524130826384158239826219198579862575628488438318069332460074483554724864986258720181814068154379178866084293801944276582072956638410390840986707886497777596608710835770642761999018406097653728666674097376055186060877956850513828426767550797281715866375762999071265904830253707854555566776538003093993840014862393187465911602402270801944261625490329460684387458203860889080853712241684260786706218424443864541501826303649384789712352305296163985625269411571050850232384967029645650298202973285474697500348863064371560317570973676737132515904538610791885149015872876195357073578320176808674943656037034768173845810996814644745038208089789837633082160512762488309496138376289927365251357860923091517173106441784732433811055187750466908296326897504090868923988481970686356723701515578606258572862885702112830357048294887244821696701660717448288176970855359282634476085939663068867624093675454358784803218091871859679907574158342571362326213946659347621797913227870522836556178723482842376100455910761450043666133535838977016404194757446594416614674374326153581599032276185748526449430646029211941609903859672205434423486048167372382291671534872575736361760894212984962114795078191213763987897469836814006545872289492892948956204470752784422619913343549341206334074115704646964308354729241273980232808575851717530149294799155149595333888492522238654492534751138958725255538307377231888900001722766004891441166806394088551173321456398095663465045003598893808449983783646985534744919457147096225358249041005635659551377059906212717388959621584286016381160616097200581743112033462287795634693165618588877457875847942236149934185626755732134775461670775957927982877934266558520721881387705803902113395488331428604941402107402865173292888283180743888208635104174436471085873215650988626511528976549585947625927735457135751203201477706280188146935338980835166410133322642588795851350829252783265815456753306596518920046503174021149632799819640065126830707040265187394528978425534382048338461653758284358344950253941462886432999649987452864771362972442710863214499641872056900008217203730546462595671706790724937843036949941126960531536763390193026667220831526663345968536361892551232034831724307965281170717020670156255732491906677444642128531793579482682896225908701702815446953210783756819799849782988644586414554068041940495115527012822118493683389350985550399564683422202215559211289642331820568214842211642109139754599677888797592695735865073344128558968641954022751641873157524499386055734076745769738855562334632146049450936330389318436062085949727926087682052142832435712216228104547302282566134266946109988371242981492197367344930901218864823046212953197212349804848769418452955237257234939936713423664244794410230088959445494082006268371198665923654802364240563255219394368067824955026500252704295171831122174429452644909613940812562427079166092582310558901805660698902058436537588947033096166912788615999982568525840971721825570706609926093263872420860508000310053071819046643991496498565740130047865334554150824407217898870738421217001646392910838376230570656110310382929707801267647754650990765141362272364433822262936266551706941714156642520739718805019742857983304175086196809441736701444803294103050143993009844418393584480086585228588695767180962674102580721571079887638798347846766784448160233381906689649305582768363702596090284731189761162395868554283494338559632781905370348297360684080740521563724386867807204979233205045713847875242946843255469966126102026629032079181999096517270001163029908327221232863981655490888450354169662727231385544678438028732270124143011937122842891662433227575689011331509435232193041164699822087257365206118024269097587103591941935729901240007585074176498636509265503382635602996437540203859036728996356884337723645613953305123121152808768886580087316480336563459340254719344725205095420279931970287961725468871649030029384401811751482194038011825962067848820245999338809635066756705288533463966315948932515576066971829421005311619025308013099224758369816950617099177632540555911170200453632714378992542575677943192826773971664546527007425023177469682696463972404744285292794645107271805098832166150434929855346438045157800893364143934928704231185235144152935664918636952097980866793217039434221543805755967085326714205903318650774899457908453055946093459256012108280297172840797791421884464238170247098366390881265932675704550463780382329121129468916157023256558335420459890112306450178601059410849101079553313025527286683346770722085355383343542479327102534644871463409177294959059917007337346256142706426804576529986507329181312742694339534014602564118084341467781111726990470735311653538310663966081326317263616719395223008398781984228185619544675673619841917449659327999054429355517780272408645150185462892383042467964382612162324930917401571619148379458370070969288865568598704916277433764942018291829088663012243363416709061120675981384390904012539240372006956691464701435624079563604422711423151882713100838313728852683271547692673271603273365615054499231964865454156678453879622563819301969251405391567770915039823555563097035835333644643386245895670858121282317754341287216003521512324997854675847136209459710539388027665121294646752493307357049661179705338791226632783443748143915976952816826652416862079576453945630243933485951902443035350897611577035329532268522184278362666155537480055456149319829795023310974659709669908710919910241596371986092616935852788162915434159299856341571996618167698083329191615725355559268743061452858084265925266571672663112506144506553937580787607214677487523018788197882640010303141086080089030858758529677636371225860606247205231017218854676059438097019343213165658596367760302578155870581787739243979525584821206072518461957416530439959467784916982940728172883410819071275135832401546988300326170441032623966139543182554961375646284454644816268242457902923024632543889942149533725529988643884524577236977252536404093552541198721937936344961506013232948529494861633645227687154914055964617967761979803455383983523134347371561091002045697853840493531016585530471033920324993551507061716855643047195875655894350349638730108006952839737220820379549533232863913884073551580202632356800503280367174746222376295849159635454510517646126464752006110882252048005252729395042898857864354145765928886082744158039994929476459125569232862117104753230575589043837924496281562751540162008354613314710828290484117905353654931531602204739540535463836303650385848891314904064993396606847112003689948475545678672999120980972446759597403458262337428076208844342978176191781943229316780771820271754636353357210023333769446960082158634797452290432632707017915730427488678146509892215587167293956025314146902588276522391225945233162678317671891200068882870498525569908606542297204356120975793460406376021875366794672884557267223139722251318947562328171539720683671841514907210218880704336939424559153620590686603614176205926236359335842354052239463053356695284573555690917768183098857621282972071684021854504018180468841266174280008205810403209624828668577831512159622709678158000990600727331421612264956295691246489733000883583893384585910275805501709483669748086517434136775157221463036087370776163640313807122519935217409188164335679603730301373267230410397627612525189150278087735103994962991061636319433377219605750657109781658433897300390710101470324226125843757419549815693534993995571923958594072532202187452097831037768104296996506487539652312826002456744132372181271002940245772666515876779571224701491066784197905565658623937983255628930832157818561404125298523373754534439010307724432614527063411722655913242936555986316573745533211148589886695684508771580963069271012134664216394621819474764578419011862627930598083545096881827612753473723412987408013412964949307451936914197312711067308215516329203125897684122023911656888190443850533226586249858207024341981243891021857651062581537869830179482162320402624882614448943720317599404734056848491168794585765144483576859266291350192849613345968576260689751816098334113233446086682243141820317371338569266287963390783711132848398870065779777676850689165708377346060449096203145304718410727938323239187446039386168257611281517435462282632066487427637189335406617144402352218663720479609245443209119185506516201848155619074162977210731449706606238889466479044394023002990702076342327475174378275337084786127238803058186952775191041582334634425844442414919949642325271828924903612478765098769101757875833050817260313642061196951188053917282141663450472897194305810468924810115832655793587427446733840623331701498262975825276222708370750351553763644673079968316073593264738306387578435381130477808389071441372207539440801112336834506024613721526308442728795989341284097668183776474807050563153748703705703996259255461055047777972268821431998158909145338215356026578118534771382382672735749398199426806137578288412569843578638045491450282185518148924633110534865124801519219817536216360145221216470024831043686667679173933746240792907759450306830920963822772797898265871665211316411599555482843403061519228901004387218913173753766460284583366494634358889070686557987577156011422478080367903149049342875017449878625381615575441690374454934710513763593241327809897062909553073190953552093878270758248330550337152822377451234261018766336921020269908345109240751683376469828070430965552126882976011885889095068196491679199071887336637903387755513217328362527785314348672790887218499969448190160150587398331916775131453211235160313099727044455099772741937394404058467875037256642308666233619360809928920326236422249654000301679470511429420295518776881734609671752046412316777807876010744976152024418939914390115060841723132463805409814337295378269411950338862738145358324512794797099144876640716066335982306128040464588919031145846019263348654254816766046653700587183606542960039716546298724322017709625735805353725899002038881582313995690432241768815471768202469449395106187163965430405846056393813169211068157103439986630440420702261893520298936040193942804114689677365086027285875999365596895443888752469117475741739203535123135813830105776676447863132603046875371924438348953018432267873369265488394188885082228277177754960830247119911540060495681292368407266030547306660509506154330530962088120215367530855886747089023209025228759719106048113640654315054441771200498437748516333879003369807682636742853242480233995884322530309448882107604715588136241404512498824366377050637616885490567664861705106367607029109153134304138524005566201059419869097658395163062343276396259809011566098872749642838850650254255194188481012326090732159443491604612889241252387127995287637289576569030230904416128016198411055463375092195640090085966814774120896112518337371696313495580173143818888721603035199483368987741823926799969189629925701440497769557773477531572144216062397566374337572069913326622008603355407121042736819558420330609214049657294372593123022484692853765467976208259654841334112469094224283233973296908937261406435635074621826913486575027753146791355698356285758555171822505210922626395961237054911712386595524584110664087869357090353153334070943687003702987761104458905667113629568765958168804748356954728843707271791374214821447883989620550088628750267831707219451324821799616202538406293824191114207878909103343546955345712451490534319975532250117295324996910336271081984174887249092615298544600453303036708256330343262585244600361780693606415075631815592690725657087414885686100447526553362089909594633623131206570914583609844241453061169913151402070896480478833271309810964086213736075333180504681917612907397051512467087157549925033881720781490779435821727579032357115365219347271427529347139071228728775487896527749174369479244771008450439504558108619040056501173359666315446435351635326570308893098908535746758681234541506907496740951548363568860672866567791010274675408348785296072633167538700614424500170139670326205650950990693411757806573635771112935687986668240544195525595178414868274425762044594713349162678697801536564621556405247418104002001453637136868805919721516329851765125069633562209091053341461275738963015452768561402594164181236540593711494053791223954685288353311194888342232239301100490487423088202247308749160763583379381695284854416810267796497159876867579184825818367264766446370504735884313721252919526680377979796469777724500390315991180752552541611757672439138574398737196075214781199697665297457163757349772800810780796600563851389042862288258213663966434479516277456509204685838045725749973771338203342695137852849074962104735077728266387267715327429250341050280768856942397786308133985072896134764759564702328480543905592321415487898635428309091149069933046594032384307255072452449472935914335754620073428295387580288453159075985597640016286397392192451704128581586626714138640878684323340212796476340029027788170038822717864696578707539704153122987888601081817296587068140339986459343712772685609486947540116776465743779328626448006964495900559835084572331105634288359421810527450982487869566867259690888157674501138115530272298084878470416739751576598257270237352412813464120982283439022937337157032374567713256040302082467257554388007237955929267752441290150067009748151512546228020318013634487521070418167376543713631979805450849018841026101582367375670374766205650056627455276942159775709633190919563263032239431456123699839241762425563527187298107818496342736444572212255264434114203733443331987096179375670341240832000685101170215757796522493286676708698570837751442648336670043635434319321512106580507544960338504220779164533713656203420987808255094622349904603119521350532004190327622868856993032024581120872294988516678083159561686804935817781215928487571679135942170882801914911767492099090446679676264727305480517806015997586858863514265931421899425241183114499281368803791253841824362671743791322985050247409007054235970770170263265097810380716592756842423103856867770424555831740598418175273548087572044555777363054107139082545173431185435663501902105541600731190279014867256803512819809973432704960006435356813938249237102359524946807394393216382455916092306974840473459618808690435213633867064777860119169133700509588767306669584509159133332892124089525797006556752131838787021497870439255810891952723684775671355100149160003131125358908408229023840800121402108210643368416696014448900505076078786172317177075856141993150036496142748034181027431148022740446620371142802289308383290702558814589350120559596419959268788401310870927572576949189397041675092408796828364511688771683843898062641216509506410197561321160103594855255202850755678376714690361173145700045277990815538804462065484683109951417234572355472468936873584512602701969118774452383041183443655414889096603431813382640847750106805001557030520352363845518190179135740576256832292736371318448162169346664750326376030704417341357544404516406224177821745748861804123938556432225079256531312314489690530384885544351454483171014987818326454158543894724726582985678794294770303157957855364771235008230115214630304157064167016383374481247920560871054060565134919704302033654820463128386940283959443151280007791982783134919744688940357663203190462853521523048241360828879864717706396195993978968686937294796041215772902599394193011862589087739445852292931335604473271600694119838985438277486286534698803425086942293402632556486418171850096935894986969060111495544089792179005031079008674983401128126542633529953979355328103085284549075926756246185812974311918692763453402490837632284456751289985346737227630498670759374485265545651814258623122307811188165164002148999163423530711362539941999351380898893421339312947464621221053273513848231701962868799943062338679984985995928001245402546571599454833765213683999593798134491288333654538948045053271392721585384145948932655768927279417681060426974749347444592586002960111959855710285609735762086089156815878044480710638503692108207948439876601629683878210665355059703989913031734018377843440784404422626783711969516768513019198494504730171483207230971311367257252474393969383774777930738600386774177855868501526079051651356861521148274191438406493958312472558869369720598452450176994900853287399542515123284532356695205700215506658108025092971144814084967148392062122733114194085382365172263617555190958841295035441963137648282310711608784828008443771244997914029421049702413396624040374860634517305804314045530420064183506421432900748906830503061156074468116910648190277375947120700462425794731396805880155391476381729557934181234846291894952953079986072660672171472846246535770490979129290515752753155605685374949576320320777893516871919160735397527734851457979123634845915373344099253878319734030304156043048177706992305610889719712927190105142014593766317817779040530990687026275532905856225656127325371380083317861623173352697695961675820539799907621259936008086486683675499233472499081146886426874100646472895990000055644802470936992753506324314582031081996424180969185410394593731976211884585630086967226504988298627322383566693538946499837548777850906424608836141876248972719873663656477180085703408702822173949856267921142763352700628578901935305819866035757934447999757554823859635047958124784819221909444813989483045765414753159851581208133343041425516169836505010733220797741511139702565700224254286560699668674092869562824117004927096980854653970159159737622060166314692795718209309246928894855112062721421372702267438122802611784183795554826569438807289644322715584362414098835891463678778413741555566678678411644446348918170993759362935934325095918495724473133033872594107706187779569317848345859885176081937503089758812009210807298027097301450431381948906734708004056070297614680749730370270787525977660685866562430935533511321020236378409742796492050436525187380766825707600192701259980724432741378473509276506726651642354283631060252872285208105974033988789799153733764018548007183344618864966869160504597996217616464478763946803173521484910717711417702149218351339963179405245986424310360831547082749500741762675977558616014459450738480886799576959174914099516180030823005288883392562423108352083282926470858522879196067259347206559393571699963083249324087754154985804329796351321113179153049183253973736376779728551462594532577260277001102041417066662064380857368534728139142514420855765535640443474908085882723335446036416541052463788948632161774359150005955491455268134929481351645343982762553546852497784140096732875570099717177670362445033409257571464786424376214716590804895793156051238882372922791999103484423349872303487322303836997956475842622363070920619242156850079447537154306661076773097632640930478744334641144932920661517062569416511206388967661115585730491244485707978735295158844298990452290040249815381098350161279356985841471250613680802151659772364399949215854004737760786999180537275266408426218445074186091086984124076115160128013184325942695069273450085741311037306301868193240578202542596842286015101906719105143710397597291116549024643646231900000713929295932814467721114989362656722028586443355283688745950642185404311083961009661110048607860053031160442166891997559433681433138177340669812913400074062637019980124108982048914597665691520215409510959442060302656824842085476012338868955477691838264180801499210760293878613985711348707521363861984766943917446294046581770549510945111664601741312772141411044087765630362967928791970428561447941114331495902476182426667411072187145626789562329115699034925733756758778995105737102169477487047577323098368176273596424795907216842381669231982133447231172429872410448916301775723095857943885197447885058396358579248326597973127400753657360445360649401922711236061642711662794622113005653390970373296112557720892267537412683728314619387691395773499632254121929140877394459596967935331353574512552415477567220400409368437276870988632288704529422353436551554573957811642428751649732959976105624883693405592511040964662653547068600393062375488705405801908926564488497605281998296324356193766277095011512360708917825615931789330145757263946680087813957735949082559191860580558857946286422224603704672424354398279621962282949110131101502256051208214782989373762347487589001357146677002837097898527577981158099614425838750651928200692601398146336233206820140914337174703740878673137677925588659744059391305233573644582714038388647632872980873092529450815050841194517623249721656484532396654961046937794768333689473914879826243165488353061721713999318623325143595774067997587700273593418735484439846774263293952759969375427094918683768356127451020489960619476565116097694347850438932807685502542116671282458915010667824753801610934299198604159280879582274316960802610092003128866240331347813087156872193539129806018090514750878299482091659624184250674893415481175506191783189775679677250366602785099630280077788826907288628602098019361805528630766274227586667357382266473844399577359969389918077619293323551133641538204815600968676988311925702786271640110194526253067298426560271557008754433331819090045232638287123457190835044543927699028999671425784721868318636218270104567836105173422333486336530192671036538566481034807315466412990204187520377471684831814639964320161390066490602824818536766449829869773440282458309366078432285704868482460647232464796947538230661056007350975899505768427077670552085181425562506918196204142622784161105323913290185840637228695325323669019592579985779246312598564523117713857727018120469339982196823385739643208190375328037373093165936168865508162188243793684511625168121310763833232682089372325988651760280566133369354900070794270321783173868070790872700056879566182678715989545076544491535507812904267102549304075933299704351564969638778679885420746375579257000379968917566136894654248601411841785090628404449223382950302642321714886454390031584718361955751695028238149671011311328274025053230875028405301282464451134968589599909926853759803798907924581629467705572450710029509449371623017184130327294373903728529717977932380544024199121860944271437015164697139112939354299289349071198347821634212587033692050652605866261872879852130887670617260553229657296563556081984172403207925623690632084914376604519942631625942426013631084062129138308430686330226829455603337965748126634461815925238899177371952566916600008128516515236409121235819276056725836338957320841435548953395454704752063843068012885626294237884161137024476149162856848584005227355979671149405914225241877727691052120001191763816414470498403791809928206047938187778094614842772847442731307236070248850509394858309652313561959932220514017318497037042845975780140786760121736916525851531357039367996223015270550899634145686342645192880151412997841015328674280577583203647151615089161563675932905990129269065158150326597870501502749324213362825961002650727024237760004387463330707879963681123527919123763664799883093867246460825748858630402956252485505449931729089548006543805121718550254196832488163870373981136961185923261837414976928175639599733736743075322893791487414913885309928656250629683641565089134092972477152517080440855410046129769874718530583998489780478648278563922818698177257333808505792296827190983424158578719580148529501943729695834802961557964911658963667894657668227559271870143590975266583100915592982940455808270007355407044978294840550915589794173713737138867529710699697139756044345586052768828623986940489674647032197225429943780079017231520818102739546676369948807173582195780824245849675985752547081112615315639320491153285208429202213117908276111526209450470173045602575102371194911028028276785788156339754237796754860607923082637032009861327403525482450248940362534640378988512647239472111910124038098953689607650001595417074400237952621503243051853277697669742110783097510562714846288222741165873239350152190685847693783246793643605994210182059761037708135303457307386583782857015171296513203797555144430020177268703239769901665441098534140037156038945317072409506351771303200428986662682816851947612070902610600663342915283572916292696248640920855703599677950144752105358850010666950240059596305523746047415135200829639735334317286951538517488795984466449849440058361212061964400475409888815172944260257296802499308843398450544378600609197199850948001048030554239147104454078808793624232804181897245308035572586461394418585424178072744843778673267503798822727002071441756658417773568880173738924065802936214658999951000047843939390953808452390746620439441270363817131672994498576371860910399045573754233807783487626145953099825514377919190889969204186946674378620315231285396401673998013528062960358631183801561827928005690374432144889637387939323102046862699066986428776368181699435368066102843713707647899345565276824658429435988902021038346443021294320529913196114405864532563793727100592693327685515496779433960168988681371033582138612688656831915370799168970948293169642818158025448812310085802668876859829854575281265533688356137593348955749972356003149666897534023236647108404638553915155686361893769579251008688030687977388715445114344287910108759849696593941352286633751469518817605828889534529000744644624667836065633802218365820816169964068553811078052062738364553344804471943116209978853794078445797658895607485868550625301097060213425312479316044334784933115494760453215396159494047560028928585944977045017501970072358716603175986431510762234717485574414151382573040243578349529289166677979274068764883510219948807303834283570225266233390789207879044851159771856286632613424245361665070906228363595118942351834993954673663682273877066922217363898580282429465880066488724866130855119524280883066814338152676275816521046890801768576067120059814942916027960272388191592012865057803788464596477694398902132609746581540273020736664800323107369907574906256556270039406482155034299128953702578157451319733560527309134112786988451293428345938969109175829503840815097213098943999032323683122743423775327444125578986086903676703947936696196326742263482662166834413401791924504713589335225484936847499415925542348509170616388152394000573319676370696916585488072812903705289057270883838718951256565565094313705000056253255705182634119876366877868541001496646293303687454492912135412897665152650624449010239931849931397774791262953573257147497919083428383384195253631999945096901549639461238904862130755061727357560567352599979071723745559003953238015070238370729816773729979759050371973330210725394904982457128456598594272879292189563908656545403182900300315422717244769180521815623865450157494410346111722094994154442759243773210663845878394670334306025518528781239744365173513684450689706752723721739984227327152446738611632612256200132639356108218672893481085650400670503519253262718542418889542097655532650526167247352365584721907959039804066985287076351891315058520475152219502601401441000957718014723347313978377097126455639192851111332748566032675901599541413819670420322936122078007314559104658723183763776664028727459441217124084880854374540494825952377084186782338795596338488639826054190273111680797956783765028269236904211345906117599784057352150636300237400010070042903702522740806450795713864175326399299598692703698750895108527051479602961158995771045067577531010510335307583497909582513871436940176729091878621997392034542898454553768097194353075741688839376492785611678345410146032660958698434010216501849746182359327590920873455022526276201128048990659754805610124014965955162186306834802561562941241664363333068825597756847153984035132872158369091317951722054372015407961998850748995346071878164015827387303694349060218088160489884956344442207991850216318932252938500446124852749027834262680521075169195399442332083687209274659574187502769647380489716165453585810562183377883444599027290047223189851413413719215074035865402806197796553281137275824647827809581883074043181836120013872413303286530542326267554755556287703887512468993683465445582905471900621360961952316977673568861326260814460694333722324491548235812141034086319662869854973026172633284908713532243666262055415567895975069257173708479594274034418467141197915987338647495300798024308384718098563832484107804215164475938668007620279237852867821156931270672067729229026946643699956870109441951611424279593453245341747261817201813205425871616320728702768600597847012361101701551198447587907309204435745070371189411390235725580613860962651316850705177385182927579961525777486346150838485736839835671387867693420963343186572704795389372570851951415016724052849557974306430508668384751353057539456114004275105913645372589160346291404496490682214146734831946806735809718137141835254870282456010152428101963529742802150510358873252340483123956390435660741673982903194092655308015370491782514875646498774153761283487252489301555382312290490108141300800028283488801416996595971606936159872312685116280199793999604594300823071128160291686548668073065114675344012934528970277728619391767438212015350581048999166508169572834986082184780700311033706255732614176443360134176223136085732002648423949800121233771447329690286333969783197335868727675310660818301335875519446223789832334033414974965090646512961882918862248201787554637122173144478320809128086295562976806657767545400284030795527919842704609820290595607047236370225397446585875333914204535919280759602819348601403865004341681029532877608676824203271747795183639651979621721021817769116878166676253637135538107269480565634349983542467681640332227121645961442521581798798110899533290194655017309606440077140473395050331033929851694539032726973719011116926459838799302282041125442390922373728673293391704640042897728795530961068389318461566291700568094197832367465544143203599924197328124856145750700899120732968467059155604469016842239569072850393503659784188059954076591053183397435161796269866798199036527795002780022264171279174690021909750752695469026258972327324827235376113831579740369197232293058705020234158456459517727197148475785837248568335045892961767517373581776727951527402233115785720012284469827516298519461730989988377359558376979433767519956746874975014368629667146917368365790728247646443998287572849185001536982241005527676335070905245814071478155089338970149747725002786827674953174199143532641496369063700844551120662718663070932577697074399245478535164338580125208792220310328436041104493187571996604152086949600018955700398976615497597269320527191883310829979991188251706296383583312300637695856389773381547713168043385980490409315774458592042601563131486332806056508037647880409346084683279267295177056929910245612195686434267178020181363545464387536213353538162010768969467413392420367677653311172683237880550533298784983440157585529320309842747784888662993478462979554300226427788994586300383251787302467950341132227612907599538280179496910452469902136059792679822179750226018003040232806085503297468695579496282631723987602512969770164905289675030135126157065279566042780060111533102453290821490657550479709378756121198863972608234692701444053580017105184554955678691316463367604701333821806961193009724481888980781141148369473071381571973626988667086364976268745730076774476863417532175342252369831379972455197371830839136516700047029180044266959573143607881448985731854632999827118720304589923296185175923151430319940262097709436846225628155981235117979921946062413754090287547151134120016750828862245911919696660659860834783767984230658142319291116414970940028824325886793955096140059104328945862875855139587103376273973246167602775246908310700389169827167780301302355506797430953367410602907438907993084915709653575408797361446837029933776015358503103193698395567839027306726159309708791936470803776109621401653097341187648296560340390497289238880716047570056138040857769069747783440196615421891473666540737338639678840115037785547811321965253993973690776159472097481642057501529609730573059029146793681954072390414732555452636542067606813663945394766779680379442201798934790510669230000668376503615033544565781599687925271754507920026430702975955214276582613335974896807022054059143775640644656074613490771082097728980113885418559315936118150997027302032530941626605814760338838283158603588059580182916690025450320781787913755417595832466766973264193243256061379394590432146463912416246496178155302583027582100384980576611136703550314733049737057908888003746546076353049165795458247675468522931463322445105491961312313510363426147748061520347359625852024830183366926964019674271641630544826245000768303481214154281923539796780161627168924976971309947485645027036596956600863508405695587610786731697231475773618315740028820605460318091454748402674120928715395616974536536225896595494084331214135454185375015631413848996061886254570726855984146324258526256664798465368502270978676615312142792000964213017159389303686879591170609395432747756916285784958304904379891458967125675025693166731797834814881297076936236250627390580977125952087906589945468249582357922771360042873813678720587313291615937108364823915152213611811281525583498971464964618022365717596685573016854051719522885233704790153842101348716306324939289108238956444193110608073069889285901706109999155073990695015462624291490623078059155752536879252283412099693181842903916596515156707381003731203619227967059739511566000181361085303179698064085681751960269338953040219713633501369209200070622959124992482076769124403956535794902317475866508619990708732123612020693722733434469625301162199187871756357634478677516521414607421958280155808693578592279540557706339964753244618913164360898908170248898299980893557472741716099117924356193919718891816744232283116675466333613632206605305089547329092373808561636932768150596474413750394644582088701241975777915324717907711472593089892705850047701384753075108989076051883980015436394491600349104357073787606120231876342879708264811619738671886214508415840509217120607982644202944863017935898963811743473443194649414933629968024482735235334391308611868390316531649613918144679976285994676400049298044309657160734541549404374530273720996778703352656232194910791285564357175148499495286120584905729061687606968382729293858660886344508877241605976306113087167371223068648872255242263160404789431088911815744764441993413751350680122680575710019860272658610296880045124572051568004673744282314359264322262887399380562534475429935027652056129026961113278762771751265994101806351879143559163414030258964321389419625256212705166833628858109662300687284140281131956711029119438282161947360292141216306013289207207827235871227859786391910929762292664372748409390745023235968525407537286482498829503260789842634327237679405522172710985759820149967902549863870515784382443950022531388228162208956293700995983351155003586803921738269512469880660216162393257171020866796362898758631650573213787334608339443238833509979436368276878787122606719701228953353121763958800907133809221926553010376676497202781560874375455979781185092424991281837347257075702789622641947069382750197110734630705958139582430489993849193569564299699338094022209508010020329423055165243898448803763416399888631687714946886716126252702502131892029781371419272599656280221537961501948569751109149043453359094289888890087656701774861655652222730452008699579827989202557011570939949648038755068593799364933038916163933666816687073280508065974984416590674791482519825637208203760142314517093353954731136031197342455934692271121767690737104296904006975975614796927390468848101184600272827831842663492759728478449840237078215203219057437643416051570536260533900993210644810869445722956690820880037665523007482949117076309264429829251424780717013251233019532936679980492915151703990051883550023364942608263271112686789402684628767638273899565312378061871757603606176688535431587900788165567264840079440137848863553280689813587931730012331649111101600185665591745367615343132178270352596832561089933742374035988525887294122566848845217167679845947649625637049910233309447516786881335432577317185876143196618866142149611836313901190787848279433464680381895177474439171456909500979644769527093178542135196178605414744298808877337021448658404449075692026867591075421811559505330720216785723645544780389303503222860153926035028152620186574474334812785181455289520939975845402811351221750442339350999655856041716272093850790708085437986362079713263678837888815995114644122666104074151435032380636118399517937441027231585763691231439538937536274836497021188775325060769478921882407124775912630446181384646196281164905861933269789294827982537021183502157760457976008294634430411018032568502001043016910095124799984114747944100963547328222018560300851757230538330059138848883282366195136349056956434330157518701037407569494599100735981132544942069249712978781308626363026889278081617314938430977849782649278176184658802968762881086597288302274944549687899751847819573640372297418546936900258334680868803056295918767196606962364579147277734820049799897860781723852455988666836604899799964197128290137600384320288876208322963649657248309309048794472730818183854369949247307587734209489573014735808571654237497380163667169466893917456735074129480233963039304882096696663430223076850606420118727015238176785766809523275728214720359986972730711729191515293063314431368762829536471360112106634107706991452842765620765237590809061709614871046431735819319621375482995123478919688408043294076756754724452489132291295254266495613190960706308182773925604352766732051360480488605641605310464333766045390031082106621107070183267214379693619424657886680015799608881760007192201390905432745301834379154361059332305480125383252922205562588740960924035251833883498472487971525641567427454472360790649580378111660068370942266190877464102080055424320286951720658374580738449001922511493337381007609578801926667069573396618030790893656280740012710900024252752491012075607293609718073493297294661425652130913563821453447147108802525602872401325461241720862086818410339294636557268543319887498978108095821073779227075197274435455612304399827085066147935899231602401222997785705773850852486508666597266774233888454287387739175341370188134089946348386877639191149984473975684760909475532150075104599236899189912406368433849325453711307125675180030348759678851499524954514797333022375272682073327614874728179679803654229539847962416084635904419719208203636583816725374111079175113682811437742123383197634401626074718216818989755235068381896653878505536016912671727476900982328529494840352103689886238685913355782770651413334010702945028658549764997985550558268807886356928911333780521002636229850011072790200735045967047798947270155987053883137189565387009233570282094556872114189666541836560437534113895031012156465561043003933256271973403876668985610769690030920907684607337496052399812031332192180717102292871350905965436970124206619579564351907466110453148504687919434229012455163299684331330923131209474746423756298208013545528832066212799549421546468732051339972133972746182982253555876681002856735938337325052193679292613338444490412446860178991843366778845943304193863781077732935798724193186107608435543278307909737562276637382651287512813004740463909543450123174713583767268996312485349297066219048860729975831730605529403675018577769141164546355854003178130858516108634349274362554118489115752696382198985032917160827294522918816057123354385006087261363922855548058002016786502477403709645549978239914021814738518600954199669147636306817881037090417892635202486375090991901002228623435117136108204459828601321904562080316549315660280762450074350305609363085212790317053589070240615113139689343825717462971766030240258588806408628405035321550527689965134129413895490873105042027520788472944197890542374543116701377835295622987904332119617322592978723407618001128655327368340175441228735098321650916211695677430852424355692264393501329659548609338580098997866171466846550011277719975178689522875716837543390764104236258805506441183170611397006760644640240331911758362409431340043554033017159521716652957820399744592381956094070820649637756850322256821548168159448267655987240582182426808539081799215609747236485192576470160691177191015920091458510194460404248731868822170837461593155486644019178667591990551159282859933688902140745867505487726076660382875610415208178050547760517884193195352306690177602156418133116859933974378755931186097849947102148584343732060576965861549694671580602792870511382190962178639955706737522844370851924468825443243393688619923960151311275343682173418148796421792008727271335264577044112386138253535713311147207177328290273723554107967809393638363023444226912465370121035722756797742301884781795705440975730676240304772909807584548673645240945718407983473021278829485084137126632928532612944658352897760786311389855208447935033246252643824842958177657824240488437428078056198759189526453258286170165132193913524406684028221559205084372294298267830005881736273694314470084184656383512076689515798105398424049100627991696961905418964401649441618396171647918779009746478279372415716831135041924277587047776821322469252184031827844274854831779657588852939498950467744088653805788282807006039523405733700063825248165066548554688759335122582004461498281086552455841524496596446227168186443363986842941717051111335492558660178171429097686450830585778951481046868099706481570768483678066858496622503537636743651835450611040874291487544587914822573637299943087689296642052676306499394258202948338075558832498744834814786956796844171590361136930156302500545790568411514898970676084050290490875984942422702759691492457730374323857893440676494532424306107701960909158884083032627912975655412768465693706764817620935661960598564625404021515453357552943810384569342196447387569383932994396132997593951943143295644778516334385703019834619076794257070842341798065648167656030697513178511959636877424599185960126134583603469691164007756714106866913372436065814888400736001011547923805219744633168007169424279520694619072421833670591223515745481685558575950401131431467581584799093921809772428597487063119282884688581483974583840474585638572435242377801419614698900400718348386999511640889772546850469266247133410072562752699940397355121759504027643789319486117175781538119850141188393803161737620081945663388422863027074064450859405320220840474039237424675133137476834386690794993426992028155856413158871447660849470916260729489221661177936694362712219400659821082670741580197909410472996068671762104777677665268319639626989717241347696081037682476392589187627887107320348172435164311790453570324943844599209200241081479541866366207258484813137011515842611515930923745663217010501688797758961313082880991137255780519034650388444323546564035382766628443970384688470266694997004737192344828483038021709597635677915040761506687235369424448448295694711133629752438894052331408650510963939334700271852212731828980480043217858980734073110133554921456905252417642907912397460403609023192867220447569665484148309611233802828308485371602275521886953738685411423676433973547206668852184140351120380987157973202230577822156678597831663430519390041833417553023326902223596558059523294096214474590053440052672928068978897304432500882916559794035249420386096824646544739463178747514681610692610040089168524158987815491273715070404623627961536422708359419105253499369352534934133134657316407420568635766154766778786954570230338998576637241848760005558875342136381487957330712917064067535355952293133711584551079239934453098945524893651861651482623681308236111366869942255289307168937580103846979321987492009361909174272906942255307986958969859997507425058522202373528564697682775251162656879189535607853089060022327749434485279596862833867942567291102704266654367310065100691871541325378374967964495694991309823315769198851978814652857445233760570605041870600676936479345681025145084098554752181108700816755130246677162205845086431232143648815522518571922802944641987082417345126485860188573235618303170893225047103632008989662593636380089644024336256568205778096349014864829289604060024217642028479544505207612961234005261298193873739162821521523825055135972158904575949259298530077221971149056352034415554037946735158919633639960714901521269514400227729437116909277737993147023540552236471781975597465320995986050951893316551305639500968992015715362773599495832835518168037267275546497311053442676304762196492126878285369217173663644027429816216470526864496107950565418418037619430740917657833733516556224637585079162961632979729089397853438559050474924511036041486579760230443659636441936580743677612041520407685435362977535982712451450091696828453022746838928101207487504431246970010250380842564195982745857392108461132242856070872311803221709622302756859329256200369044687747400055352510113026696356770581656884103157752573452028058489731890177058186164245562002106657125874854109718960859747020118872094136736371474110396859496768454971114762200621018008531784494789336199924060445144478697979164589633701102801801896343276903276252328601092369342072658295044474107854134860001804794277061547820432161998161622563432520853410515136634066733605158226626452351955404363780786626398874212514544487469023954204245133199009226348975041775163962690437549397978044095896758105239825433353116999306060861968556062250886002261560576738761170858461151037223759498868278157846314220793651178748077368790124112762491721140141523710286208572049177504892586327100547315143276055725693224474218835987853290471262804715610099810109973206706573727374965640132969915022449546126473291069823328280844525058885041440222561223095112954915992399238984085764442810194956632652453451136363002344892824220852678440106355407655842459159981081155384461328014888249545372293639121323926610039885848331658390271835505259454793314884498566339975186286501599020098336995616960349498453824760115730614194779081898068357563132041423037911917352954476673557361626635698965317753638521243210231721408384604161091919268559223300637266563384164319192184870299609731104769313255261827315448853191854075192963771054395314549056058951999031052882339350864994880317208939008687468994972336373544027553550815006150776158386669249029952514826213872915615789674239056726645799883527686098029312640337469270074391918883067787004928712070739832612849734955952956145265835445567729493701813187780466800384581208201207419085307244605378176579753153607198317449225710161315648005967845563397604694632427486117061602126186726838037079478252033499635692999294722563846795188673865024138377670527546732886777589756003803628490516291487242038502158769265430219959690511780196446426832940453542074538799229334240682879789044778933945539143215377841278239599829218363161694283371904901343782245135836534382744819280269641919543675867550753850130303558327838358185354736329576071809383923225580514688215795186723837087617558077852068014559897902041502368231951594907129867461592730175602414647495350851372802809071589633993188291265049745226201849262724601936024063264853745366142645088245949066027374261162397246116902123004288715870141400681688144962125819878300744806234230209908594884920779970605474692134560331976226828989007076526139538048989013481136811061839183666072234250867410355790644547076235415780376528045946127167239654840899833384248000244422779202511622901415267920154122091416076721687893253822590877725201891777001835511470272795406094907389982242475670453406881052720036204938816322035996549031987737091173892743558822556495850029619435347789504442787194052442932961582400686402905816267743556344098510100753233645463417633437758939087633462528432661285985963071067435903340927235082078526486129460548576022400761928594657029486212255836151376898034284484078024810603532583221144672501023808957254377150081958485950831653990342859442778065239397652927630773460663284279489520723472402499631052056075183998732080215842056177200831299120773060091181705395274932783221039437138388111254242651810007016854091029300639767659290219667458199444836738418742379787495333278521463818028665639223661051798667821328230275524462629600730039359554899669208006223757141127740223924261133958528764798320571342632174438282450870990872705248765774796906119286354435046679614198231562319779891619656935937481947981703993393506525219098062437555957295241717233156677462187088295324162869498189765040225619560291845804344679905296716461459803953633605385301195275351453921648996289729243911886077350922399858162568134448013281588952938025258796277870718577973705986246453240631532573909301039853631635455107688317589595832598783191070113742545948214629433180621097325554496861123258749316823792624564275761103293177310812369058468867607781798637777209102747929718385891660772169668726152872040430566876178033447843487746073836607900330206717389040584807037430986791206659185637942015268128872605066664478756504346099951138503124858847970500840709573593355825335542797578102281384915514914777631211491020931691926780847639252312121975910301738776520979280428369021179344202568972944423963718570519922902134913479733876658070699749068528664225188595821260045299915005622189001239465689692375353552615907502372360878180200737378853997822167421975703045881541004883453570652420520253154039779762371646577027709720556537885526053866642428504717619908085370981358820168863069990109107716648186343546877092924638786099598642300147405797891544181911008761261214540099987379668467245429317548204386222856987536592062198889611063065464351238630679921790516897050654817033599702210241194962220265446872989983845959654067300416344094649456326226595164003858579631546941568199886886056135797501093792110909381279683095018672704046508573997821908952790042236708876244617811191581355671907508293453217265135844127671487182620301011729534687820815036478029760411940877861493869938143511611349915686519188694761496756152785371647239923410667098866159960898260412254905191599749148210647721737551342340822325855954039968666224386541971160531104773873756846870323264054692993860825807702295237974480697502619475116467298392808674030545555566522225624534626608152699644972010285345905409370645112480523371651649391692965641284720638826068342343012175924622193078716251951578798493461392910345098337050103950975620890724629954090943424925343899120276091403655597134780436273035615153733942273565346668355231432665626011262508242742248151073912960982547384462876469203341653781811891041670536832987881741540297587577979998934883937783409589687693852755737319251292156634414391487851116222472451885372712047900981675072651167592359967981987335812708596976822032624119248827862301754036388620208107919779833959624518465399574039628316451076689650914516276330771748732896167310917375397891911128388471109401434068279270391761271674344771250729794037949855438278544474874102524665364497705422846185033364041965883410261329160388133245378290542608964789126702704908551418976141841856565043547069218571061551170949309066073380134618089790627282370346577467725018708837167566556503469373469568569135185148724883107104912693324290627493520757723786510247837137520246235600116142814843061386386418773233306924497401177457482763791466470121567261996120852826381532177876175282274769112145256277565689667237657406959941828734114499357160285541852026916722546357633413619944414785221559092955360225439317963614706557949983441999070826102650977258657858331020352781162186388135040725861108626941146691788082557976230936025811507717668627274377058346517233159729466755308307551784774272617167448618913215782131528670703371922410052304239053273780075750753093296636522303438114700951120959578692144779119058543971301554106116801780018745825929649186680371606335324290369589729771854460302004028383890859906224979642237905113533102514080870788608185735497378436849736196096128504748248072125495480058553678377803267435455230630184449048423476877729027898923235010035124763542833616577694657314951855785071770502952524824147433415684107875888617165917516758834089876743494524405132039037763082237612408968973204341644426679722033687809076003778553463463477616211281860464486051827474284091503981301122214794121309626749946769300462112790728833852131644035200833638127904289186346406097300188369443480997942806543950837203437225090107288603556446111173621275713870895856636508036372134347986213856563131785928119861186997081244478031630500617635639048414338304052062116465651345388756272392757050359709515408218677401250433143229383519992486274065619420282389993261397151248445003050623690420539651382330597586113083639246594117793435289154295649471623180983426550056773550034018068586678210290346967400946067245367249374758071803642491705554898885216342592601427950315502571098096282368484339636885902226648393808645151814187977307699883894138338173325660979178778025270527023366199053141667857454548843664031745459046255414160580060511046280280973299993665497360210413105101005115077391620775255285127712745177225870867420179985087909609709461175948599404415699858078018366922720926682330340589762481972954168856532880630653648563411970841171673240420125445782353844966618655039747950575156168145157882449208695341579556374510571383319116137254158835306968587596504664359550520574069865044868562348919378576685997459758497939669347141735701153247877773834614330702699282655081971987844737899114302206648422765358226890923026482750168783665013640239087225029056195016154111916472704494144201558883183221374244178861800624697077073048634856591745387240364376034179569711024939530016949075950751483708253180076738071003086022138320883128877438890256010269911102143524750867524557096160159448075625470233226886576096806398702950800886742849094123437280865621274325925339329386761603106539705818599163646714893601469337165276878628569641379297734948933585207095684741077888178625004269338273070136477617280687094698112009756319280685984280546937151992245066728206428666595978785878650246845728683375549983419383575853415309792949544445082842330551309345175202792969322555737286385941592733594593980248190430287229729667740116605369049036103522131734167151169628722402838842997985099224156172831980629248243871733912780855331464706747617142124686499265693265189042772658546985703007749105019836952046887043137371146268620149255216950077033830458661412877568163006608857820755648225437196720534995300163593437546427234512764491962457013003283442746145399542538863194824176063742458828928736246460589001289088389370587920295218119745484395522240382400497155506692656434962944063132752298212259334947891636638383515503737637814901536832778042655632979399147235419137539568006078778947724114850996899661196085181903350146773027594999093855130839086222020600675579052373071571796636435577092390074199375694502118287908583906853948332701746951746688774765674040036513204849710880726089288360307513416075066000148717452791508938088539199551112121219850582215388818363067477854256874571531450919288399200055554698739548906800347981047068809225652251503134164180362232984456181464670544496170073705252252007579897031268872180824938152939061083757617277975261230347393286213906431817639649927363213426728911744301136958893351073707060757007642673501691042438704949207572531174162963648516680101195898312896901524300629069796399562768890117804204079754414933023362749364645661387577444215916912844132926476247218478646901847712090033581341114575393241413435705001320002329665519793672925797067364705654899417446869587304899804759431235310820711467597297292995707615827954533746412170600202057213656358978483227966900253560513734881358821938407058983220789336322722551328013624292817722879024380884927210578108932047902369265018167199226619661662681331340202182777305053111440645792115516483414270739439758567931304935804415367790350362095879560341078674337658965891510837391705060476188038115677695058908900840664053700901249535715269352459393066359702155971078333271352571392813159462024472334978171005873562790836002981223495416447143089516529981755434170868822660898548418016498789412790665353049089823954430564850599242440769526874360826359671027037122583718027208825115996368744173839216897026073928459604471870986840634017106718980265225358344616966551035542920698159959454676292429679578920862425371230188952567394933075649286847993934638458095121458712697122937277969340761558638509224198253931863155214444443163753495166286648619603100937314541466304588544963605902027239548506209375501712203196717319539268354615631336783602880280335225695586072811792662193931921046231193512989212604350513783730462970365015901757334009264202022050987334748475193822368693980453685714074682572644822778229407820849546519235207847079733373270251099415638285474359454860156298063056046402658425938555611299587310779311140238346812897383953274035658278239699318852680294179528051958152901833513790371225381629862677617582544850331856064762582404045198232986251222909698959111079590417645221227608758211771098389128857334712725674012704805026320322658746777376689366635804720462305757644322113452953014618381914433228235365776810945005487276141125634171910906269291724984541811947220515824686069349653964900279783622691109930676759737076987695293719079471806912184784335377566909920402758164348210630866218397303048797409889387686365120381156599784285620403329226000347964180760453056298557555664667861365737147932090609974502937951756663078353366734770885577554837338272876094165080169633133594403708730306187305433514608199868590875095457936811551021380045428199316559191133471343678893841809652401956718999554366983465016365109691718520735601072456631714986788657575113711783657225633659019288439608613195320371962547418691654914397724756854717275731909589091553862811187747048811443614114766326188721736939712522751828956233315377937821007480928420500458521314650754428485356012021844875360988668656224983837531160581553408116253688030545800984176161485499781130174369842525547630053417684929457824925727453755749152118308852110508864594079320946902197977870748232087860525768451574838642499421300204286715941118240212136867038686015667542321501020431597037716436100801987566482810328810828181365407798785998946867034601476202467148106674763408897486526611981937221888702350474925013875296788562830784795659669140832138901995980652470189083746687982562803734927081079294072011397336069894075214767319638231218628573236827058573197367406064696865932084152110193374905992401167411952152786079359257776445910035451410825471772586068056727593370107493422738778431752381268768689046790888078326800504675801803768198823626098532757067254610635239788085002287550340381513794548320704468997247537093999534185442711067719072525939291398391779211861764902715339370067998832819146782850883186062658947350703026012276967204420046974332435739148126275929202445771767103245708495592279808621086963694557889595573124498672776693343078003007313453584323755748453528476705111422416578422079800869849780207270154999325793847930797759302294314349054072705247880212089022916493512712346563670009702301430587378654512868760770976586472083855505242255385778466487172173323384306537060265956874516365537145718832459279673359594741778459031105225698970663069993739187386694924878704136861590821520465532163804579990966338847951013320011575037389349719704181601841003406413389749810854430394775603393978949922098130763962874887026204382111417466021511092544093835906961116672693139621512718688133448440417206375457739599343825372717172239236446279634791816679235815564246785034028988132394120098693832226811133811884990333423270239323477119885260537638142050243733755715290482422490005320737762002296875880311899840185316241296956450112765312270075989532022902396785070059062237248088384902697805392616474313485902481166668865196107027946834917121409311401756321911750083472070371116260467407278569467995509740385431719344492182574291969322381190199786662818083727793223776408101726770502391345367390236260458979730888719507985009200741017107043082292959600640002373933483196585301703554858134317613990207711804863721362211804613282578034120126342700538698648130294219421507129021973094150345601485881956570203879743491232019114013480483424262174043930457971398626331862600176059818296353094133502512331086680151268745963221810415263829469657311469661205294238130202929739297878135256857435825266857538458659129365776399323942480624138716956847403686812003745966834410705298070754638162208430724507408425516707631270764792368978945603104772386457197062349126726026150608716688427156218933723889997888344371342010309055414722713437267692065663130631122024131349951796496581459469991991884739896123752629934338279865972751915188334242966035293290911626455612467489968660592003406300227451151964028127178848128778035386987262475357686181143975536101162681576959578087444707591212765404522623170203561383584393147566807650147052339917244914170129501468429015383820017103814622444226270626560414656784786499023822118366638016893599308759997392569298512016074268601089142854706663039077689145668961177940868769239024750915529554038214509127273213707832753676186035428810842930808288717904734902997192353676235325082814104366061747364883443903685409861668757730594424654568532251106707608269009518500757762672256886849007960263938691038731016929159996553029255215140727505081348283594847070983286066237399763776226342037210353615177986295414071520741497899045762350643807438588669363985487228449624743993124284877289421121912396694216377878036317838261544038288378597578194976956677504222241505442939932380340964887967014546111692456637635952435833397285202186190920818244190647301976225915387867656318852028253162231751904964236140086783469266347851629392256179081967297401487152735959382738454692871672019051646067522392170203676845431093543965149465178140562863695426586129028068940163352637632729477905111655276577455484071317199874444149372377519411538524546884559535673148388776219002184636797629676770110508820885224493628404169158448148804933015624497376562056251233489447752335259674311848336079051627477996308960383353731863157104674245360747951685942683011989357900789409969497520341807750145487026528457855955255739270939511023723522801785460183869939284102239161072941485020955651919812582652735769961180356562527447912686658820941749610580162250928760432840771561120643509982331399228676399777915139903652888773387147414495102459948821678559571898003688239742142642393469914446028128422213964101111356143016589492584696306955018532524565039381955430389966630891255494562416545523149427553047343314202095775311539300171642441641881819591831646464780313977234027038307040873279350780156880089838817597397088282872533740651589258638717705851809898789403353859084370870217467323819417714348632563078176870858445282192656222627524693585974166036718001168945259893216204045218559337909928432897829696777984020672643835843931326053196892651581718342920976294551438573360543018070638597794314799721633297187003608513644380409602448857643358627097852646396261465863188522328969220365842217619626755548204933200099920482995881932235582523624320652528970414489366762429978171101374473830824111430940598500248956595441999636307391064078235007229934571446571451882491962999225124395818162147066228866848333258311537732279351787642283977100912394236161564221282443987019103441917560489249312488176051267468628833456074158747943627624397678041874773644653481842103009935098831171513177568941196774207960984758747795434117060932905799706589386619622713602692548574586237759610335935002625795405124131964319804616228181446042670991291845352938418018166213688980090819496250837814063358179009508655406398460491474993365356634989410085395607722639755157072890801526166983419928541773877058693122820744445102500675044743317788202632182077012313279625271435163931216994224978041195398122663714502014180413961893308731291525648492333141501334206800282731217356179618324002154505327005027289778044039632117259870010298211643274348334306206183435215396133146037537394440896956433136308300523088896532642109769979770640611603815577231708525113642199176108524919192214143056426520812153928445944834791301404039699866029930730071614076834432833982696622029190183207047858434930894148699761914088588658752509460031529920273557113876727392345176741649819777446851104719993668635943156484407172474491266591834716633460699877581531881093264938566317108909253607353890140759619632475211869723244829662217211486435858539957825885220520192824301306035610109297891149671149070288541908666265357921678199100315950560573289690850475777245501672881343130745743469749192458433604765813908210076806995419939490563709946761132098451357132646151731831138614915203337085524960414905728750506772260100314849991493709625689617157066587424486914370101941608844397154035028740213054395799037952963343916222991405060116404158878631494740543332315034558792586976778212314637714256188102973460250063588992058270287488852688404147731354558681669104037940429563798778607842730068886170768656085994887706447887676371450995314239270514999809964319452572150298641904938565664031889841660672112710008757484205018905354405368832403725983589077469084483373815818879660311177696990449399984803312785365341840272436912200007312262523549497463056005474673229189042929956286858856699804866819137110967831043488689308039102581894425967068872192598598769622836353430740980006504864264168694178419672857846981810726124376571021857134889077837626158392007481821847884621387927999490645856616287518844250265443036758479218561061917258145360071635012334084298422151405719759974018096160310527715678517915244115547060583734758649217572665758675562411334419453158417363208588182041314443213977475783468711449219563785742786531296937833951544166841500247966078002150943612656451304353461753789875310414633233373571037417213777223221419765255252227441612705093022292100498178295152069031926492968151137906402140515782552647001986484581030281937793319776865214209546132240821783282420668303992163419757757345248584305052170901266609092670255779735036763229558959905087941580685424304816541044831523644451970563275556968897393178478862773219604913255447907387459225398774699153202120439917556118984683247518867840892827487584412781773230794386463837775566940623059265774200121331502083063391410433812673130087936449359389427995513960463799282503895305925657809663226504895047888922748950306525102912014974810996891124191929936679196100293357241721522973833946885020874398887368038124213895380450882088985491520428997414895074324117006909759744647533536101331664919501240827771865665685654545414241428346520946823719070266840549903945162692630280301800356916472821057347049198354444540039110001930329692609876550169849138421347995045217992957011094922065259765731557317916666234297369280768696701221780181481920995700551308166997449228042931636203857793980288799978177490294658933532723887667050855765976059582108875819727612050090562392348199170383684802354822984721426749242661683963936164452566921199905649128253789634420642853681260044101067502888815369688355854018327799517368057508125050067468392800722639607585935062453902903926917851088533848579569699991522299593262398605198641485458611527630534193889245330133128554094357760752505037317668949403503804763667169292919530114149795168307105772194204075222956726080802668349975003381266342236763190842318697666384935753053717176345463645199045360638223571175254669886566568488123983037383242572816853840524721465670134754491758223144795792622932012878907366715914270266072378375872723384054587100898219411237301392316716336288834982431893372147076081442753226548029869959038243365824265630215730970906346159426804679641173661072881391493462896492703545470121012713181178000762481536738072347040091390519934474783687392916220223033722516105350798343009562468603131126325583416962864779232521482461708660404364276019414839074017955558182435025727857281606158915350567552353835236092473415631949698404441616292703978386683992597804314694307914443191097957631264426865552385048410122758721505337630870439563768933021651794061874916144567463577733511151611072356847778250386188201316837078009958524022938342024467695145456841383762106752548892178700604204059086595122012359180017625341423058312161387779792053719031638727389795457510839652838996693550974806678235585009172633420987363302079565227171865288382643728593375220285704872449980502588395895037771588373324795870313621228299094487437801696855931662802129069502836539854547175649962275498608067767650452444705521825223871464156365029468901014258279161909184426106604212880154501599092677490617263579514415987390799508223925681091057339775756098036035168152965880971668806980159221583244630084460086326552423990872380426790324721060952226020015559631486519113917338471527218608946166943083190797055032128754354049156341828680058316951944926721654801172665408558182935499202846486220304091987107437656425916846657286919831785384927632470178292423129484100751898279804662283652575513523176789166233762914960516210835151574691747673458233909650550495049458400146095582966138285800648844282544403578196132641161232456821876277591856401149526822443235285154212675956834281115423389788405010059532661125288279271003009409359900998335487490978851528068064624510141439074338282898537542000983680510120540296614305453014767789765050883946663680026028289178399346993664142995885793507862027788109590253349313033604093317778999922295582565935640692760462198676094348115996777856336781850159628209484320513762624126150710766018778093758962846767212236519575045283425467726861900800990307707520902629924678497449422103666113719368371135924011885343588239429082067581725248420941752341645987743484441404966831415870041415832991822664235174514904589580797087742997679575548209400793482625265666754231281029781079089723644519862350860941951651088789859746683903384787769844413504246611069937798679122193961446669067011620699989113065867273997207758986817320336814953084194262916848573929009827206021891744975544042152134432196752074712507235551631814488540501248790561554645120140163483851371913989865792597714079175855388871453309317686077692693974512023554656987383747754685770574159726059193363731266768827077395161574532311708714676585575062602562711611639197405174025103942337693353474753968583690705161037615010431120862414465980009126832180072359344910577888458326961464303748436172785455617483762056665309306725077061825433640563361764800140048612473258139232921772900088750859334054571686157013508746015136160810533181790675609202793487866617133362895752245682479218387581369918733827454843001132983386727657343030431080902199611888376972514102166360755054201285115236872396937920228152638860853333829672019903354118409420175619362164596269861622236089176470722322511447988517570722313284475873405597818693333973395453617048262042829784788892252861059196496930144375214859440549857690025600194975847723804072419730158743744052272807703423006193088139064612453798340710747465737886578818779617793022014505825328594300595447490974075559360838268260348677949713432092861180820560824685525747669362905265756360559267664935444930485365681493241645179360134454260183744638162034893689469340273972063724897359754071889442604170401150741800540140190940983615961110557597025891476803191701605635991344553749269569097392805406692003611561184848875618324053485899365031903753228925107238729052943212921028524346628884465233636378119705062617379289707894638550408126319895236814463280182946759860765340377375784250354913317346594847813192751432465077153003560706401193139070003290293435862724075148864857581883907066968350548045058960270295086278845525471923839507268511351346209001296859693082432288041801545297318570014911403177254304278381930146187416879802958285947449778103819163538025500242575203853245877974770020171709532514713060516514455502720506462736522489072472932914665186629105617551597071765035408873447883472683946813874538515777853714480684875240905716290191349486513558985252818044980988726160282417378745579267702124079468854602982688183591681206059717535205915313493635425017542440046129675359493015109041378685683723308764468603751066228203185215174018383193714060480311017755301564334906442543028423127755489842083868940296601600215424821166805016163457626700309776586029398027745443517277340128337335710179868573013308534549058241665584882635510403301848760009032292076418600575498786427253688725132375381967600515047110536053890999448744446717524284955356774276307563095947030378343341206003219748374244958322715760436483427214303236563224570255442983417257188668469627871632646487716546804990304052746627448280934799198923640719369110398983851456347992442337970564265007410189667119124277022783486805641135673846809582046097838702062629062187690366572874768929064172992006497643141153752782850759007622283381392281875456411083575236717245057665614470268514584927771415088925418198338392883108644783428560335907100202602783255458143624675913948231693457297266164535503869914537302120905931220926238417676125257257384247654655201057036319359598994672571597353654982302525017037757983179212969322859856586378605774505898032000592302583003477612552920078169569633596253835740876074059556819796774532384286620469030613514142827310466426165148006331432835400903394283528183910830256930653474105548048468330679023944138040329734588308035489357913796394849551852131384639937135916418240358384596038836172393611193484793005998192433358088982102574638910897997506825223490275465017029115650033109703848306348933775103440896370820710503173063507344984586113070106030012395901553822515154251431555443831578388701887746697975692313270209775971210715912925436185018181569915341642001421551266395468299597210999515473859120540981046869172945298816388647645993612692846907537945279022876612240177079824273382432908610658538386832410873964443421405911566501046933044940263039866757102449611106013031107797378547979897866967560155930887358273967366026715738539533232332071270905835957722486040460344996459483178891470183432096403320582692494476343055846586415191600129159170907210081670638444761838433738562313086300119399506577799056059434528682429542225595709589621239427058290488877801574372652824956004911988710183690455348166335906538471282013510870536168098165245839068483952593189258332301875910879285579439029625709212689056860455562105944236082762680726319985807146416796262898511383285129608159301460505186338457070998648277113391344134364220041825499229695454707964625074572694987921296359574627027329548444290189355687932224376722189521410361445143766560735188168078573963579577657703875416879858652748979058231972379987248192596680094376530823253617380093943206598800445767052311366687512372296702967960642270803340677319425663424340678256912905659830286563521235579724504911866237998782035700801669758610620561860684886304833565880582744119113908188069125722376727363274629732737195541991559997695149423180322750749517090970291794905698047685365337391894749092172912709257873649290633764029913272696704319460465760505209273497043510161107856382821144612291046878265431181985641031800327092267286319906978860220952521768021948513699803972497182054234877607091038388627001329148867329145981602192495477962737208288097647335198843147922210318108938045641980252603642395979144330638750839466048435758500043313592664841384151238852227399707342980693935754828437544752047859953240811206835213468219705865940799710892855645032697922484405046961114599395876682737161235300561211330412920472809511384609987833297578385949006731975545237992578481802708714931370771485091707097237500113811553291427628921948205134842438692809721212945578382158578954543238648176145794226647665104367831530817336275931550983979375699686395616553763012154034054480888431448251066288951715640591017974970757720257007039955739246890722976040252626511350376677792743844262068992547507831010659938185705428727718978062043276458200986256445401650384857054888261728009463957938305452773304069522990956204074711983296593292884259689546837852254336453351191933346581057392868322958487175181161557164736612624393203532637693816069379706333840232100429355638351360174937771684614245698435632161195343202110745653458073767413142911605668454267562422440085024519743505226226245909185760824758724920027694666563701889598548690568271956963552477641233106299537576973938866959297524501849549118871243573128812212992301044498783381589707673319579132531519636678739549428455209863789044617080430390989512010116748952418610136861277632595618873897635077812190900092304540263208307448642547081056788364435321057467506841648637809128646094655979063857471039347288485737194169647578419297456871399248276601008945196884247015032870112757515142405161169578886742617734064292039863058262985910391871008963071085057656600881641157356390363524257602776502117988267729328055198659005728401038244206586066986900174435681227227652678459792819504170732292468045933506199318866414820123387840880869025680617946810720660910813998715617226017330144305437078964815546562782371708439917429663821289043775941246653272015400765003077427644589023440639351235919546458546139461911124532329705217791842558015010197635827276135261663144219599624839066606826120809414678417784039317318554488098406841718224524155412400644728826073007338042085491430534493363953217050994653237771303756708429362437323634516886493902478959570515116715962516285712413186468092574898673876731653372348401960796022851762646291785820399834363643540244236004016763063627385982650213626869935315552336921316893242091598139688627221666496202343007214568095119309777169235675565865218502932279353749952413916999415958886486102538026028125450963333855915674198309538857340081029027094386253050885508888207037156335244739591751111712335725732163761166503658514354979832517583269572241699014900362141099680503394377370107405380545854166319220164030121963833326956887711859531336142050548428191603367289981375146619157893591551733273994162519226133237139327235630347670248047101239946343830272475475978039852336982083246248914428470575972619212578255539750079707992641169918222416936720327927949388539650366519093209298800940242219962331806811499956651557568018204301714228019268551903849215269492275098887325037033863958959772540549338347017166986059684745051869705727434799109279347004411894186265622587789247395658782402630026619717991512640652888096974658195213121920046055089783626361362893917646651870349202261368255596722960973406335412984511431335928766800622597848852337992537055693684016952824236757946895709764526771936745544949573248981462091772101572983402479861559680495206118717313002811211386928146623382281726551241887615543979204185007091479335544470023305172247354884372929042159213341858019276814816754256985566033864408639713211503828453159333889618280168788883783687421049368711822084794371692792238738429917822148438011340104841995314965757525585775147522367239372365667645492057680145665694886938683616586204262796758304094118226128318994908378092858313142147105494113402851346378759010382862256637758495567929015043215841588848737484760869652430699600239279428194010033941944687319118454844485313542994618164545455503165303267497230250852596541138068415477526857079031693982965647203238456971711056451383228435847997874859010358995111154601076111130217697778512529802376918657466511971890839618943851006665089502965823633633825727167361599425989970722569266614510928407339885290306760395188681613786067261867355994176859520108561966664213360918421160535396063063823843854133857265449777069450573768434430647030223167131750373834724949628077677902827693760659294293549562659937694316435617642108624606487356102604061297415871438015979377349621735840289818092168106783488745767902664646141230563553246074058376113573651837132439622784556419277532353872523001277022446005030765517445349828290660500680402539116867169985365310052610583132830939334032237517109269996096912814225418333969012970974551788371098453661543843794738654454938692677837743752177059527230384042318362931779630152219815966282497715938805956553757666163669165932506494051437783104959683799318459154610682555567807544426027518301623210570424275489451457263453744706447622643614919872952427951701498209542077566048340300804272643261587920509542011752194501371016193102076734822520555509560488102853259719491441303425185298521423269866104059790188191520754522886017191660289865771992868415714681004287146857534531378565125092256772630024611514921398395407806364209977216601382492687282960686782538088921289994503976593652083820313993082640240758990320112983731562834976835809937331836722483311926939938937221350819313546729431788678769590489474210235524258135946807642354762222718053897929312681084696062666828443504666693699033420653786252161943031961209147287682005392641204431494513251931582700207279856662884492829591498815816825750349004244854536857445438840072393014563859662465285206233035105613361152725736665421360913687150339249912764344476974210499221406816655563610273352556495672048988007207563121070961561635974375433323700692389592576110823958364241772175077636747323932307570655099830769245771084083182476854740607609040393086808632835110857355267772325838333391467602267562772622757602115805188226247005139500937485004150847476066432369935239565658420213475731437344005087994528191082992878659024164523731730566157858286828979025066141522167189258126577880211252524032127334072367793293492943450645473421770075144967014020398510804721310388094875153426770610317757434849531316496181052084237144239378725156616653829038805402777871532099163761851597844071274841718876207509940759011902161458021094073800725197175873491948498677862831411718518263692187319369940311590357982866338989370098063942167031123941645411562238371264505345600567544019404746349825741330974785160233834624250558679189152363840775057242744696047145008098665372239709385939947427127049615785904827169027973788180991155067112798979260881350907686569124081787382911228900773928107143444252644155597628483459677721110560778046903337969654889887386438744074614159735756746760035283621913125719421316906310230347135976289429573462353573514650515934737614578881034496481353329237501924006752855127265289702959399060861226043723823294273342556432114831112410583378196183855077548176441791687529783008020272361713678122619287054400920046558879625151877283238893591267272046259745808683990060399885232097263620464470625698052062654648685424912108841663089720149813442737607444622969196818535703224467162773911096501061318339665204851448385044295001543161998355818505958958326910724614324550922593346912848582428327686582975790732453393714505100233407746656969811110756912782245155157204707399959831848941707957827495290548282650175827104184518838703694550953150796677015800431177686457384487181751552156036148418842266877374105953874501918025286844836678127504964529923425207664894419392868264108168098213744251372758077994133567427355031478257576451903305609470244689773871147948969148358760499899223306534988984985407020023408545394066266486073862357098664094456461557275270980903084993277305860555787622004760184390921009450189278878356068754842273402476368249266197115837239709357667239263579260947066695183704141554411828139219852916134946126271612288831895586157544568542275206477870092341450321098935992204357860849347506413437915065388405222144524595572459574540263997023895776627566305695952342253399490391434689496385487126445682759608317603032906076707052397298777702131601711477758747914370677638494892149262469423491944569916865063406578907961205530263529053225909129012917768990563552049506885678801381105113522023835422613079802314345602864765381449902004360648642629929375627556383403257691424545151525909564910384422046369321854903312089447450126944130038926154960510685115039843341061200141238376022599139426061007993048265443759916260241931914805035789945789316217134574922566906504966181583219055014264598214153419788264553402963950293552710115019172318300070150382756176921470421002225922879673815867275750916042118151807382259059232164315493940575448816531924363631034491752779005930536793853827531174484835987864375209497706258461007174315364485807787381677041297574989770441223616922574153918634955392488504947346487286551161778472547109656224216586890284848755568507542507664736788492416873106995276903021643181985346602391431271184359330637018627815818106063784884000947700419278471531096801206442264672103275779690997719765869035757345597085050486466142657882223542452480285119800941593264014947357313875179202943733896780049087489810874868535531735609011487703585041347635966766417043256610974349887764892122380506043495644161535015503924339225893546742991709080781933465760645609166332310780433357921653749518067305755762825872713584548020964779165471984201397019138539745888262224106852201465125261549895416891209996554704162923799425979932962155456397768902739230350490085707375765822097594872088551920891806535245006009095377594407459031096282168498723133392664639380877034580109142066548446565889294393351489683895278250905613670584910354295688313904300018509399087477471899816259422027480922985427893435280365402215302102618303596264992618492595992545792271191521173253756930615291700140823690027742080846997722277318793100903695014903479710406535851951813534858381496480814464940852763883538674610407841356793232823330633387270475758277296210078739269127845377523030638810863403308476146395698711702917622162308739690276272045637376735775600209684834781414673448750497491515260771073727030265210235149092566612757761456335285730559805202467449814386083031664881858902150183717028658246238694631044125140374532765741271393524466816059018533545423555603076981614888646724669661920304531797261664259455300962686961676774064982195413878900611851410897943961250246198682008290690259440860133615681734824637010671057420917421133548678131891716258744541947991557971729757187970929284847146022842256266012063261633811039769289457126105072227368067944087596420786642976043221989712281483731546028743291244055696492576005986188106411948630556883423913083332816793859025912808542721858060375449295239376420322887116023746749226918291636148547069643473300893373507598395351752769080666139756448949511771546668292089831702469052707168733115659966431106319492160928556519359193273187617678850286970205504761073749062995036501406154663853752873472302285600550195546379747280692637260217610481840598672594840900476039376340066425966530492047105506375141285139777679306148592026087736294099988476971547604034752275628746742305689789178264471086527611631207337405969255212140554275347282993656455364634474198601951161959109433597195229288324257400233322454833596809457436555040879328226136455717109733324797841385387755503037673677991150377656078187555897863717187523938344182809090324201527836837733587769652686379097429477760547872951805738382722588490718941374730036492399340371447335186961905228696079701426418429405215987514713943511942110371476240591154099526426961643953942485807061406876536479915306599208943740678722072309019621863900940366368964796941552447452596480646471010337643883070361876583884533861027335584283026851952511006744000781805454060330330705605189876933369580736128312028169860255399437819561909829321484485305711112659647763446599594500321142489575981684213420314001733265874703900310357549896569126978401590674462572560414709358223152478038156595511375090423750527001663624246511367477727940566029090670646122212081849486167506598346690305586554186074709234248859812634272588523077787189322194643529823631198047293940100998208118143954800666712010375530047570252485654376770289857490371339972795754392393820992204101540567227529876055774009380051936301490265549669517021387746751439063819676881277699426635706320376588943875975416709374950701851366047297187901669299059711229200727173354590514094165657146989128404459229908905261283971014535761385843488538438553224622685388620572411048815464690931872876000862837936477550702432772349106819484051232765806682622308555133829898462919911906488370088450065464810506301478073024091925147363342218362080172313818735869066137765802594212481642804101298751838771746020902071034836286904534435964450522531180301183135536773754234281390783747634970880080969885019449325869692931647765878882600951095293801481162830418961786364661754769729540746070678816305817808644966719603058465655851461019089390852310277128056992149658217535297440838496414338026032014062031181183770295433833496485957400240253980883330218224488047199253678260886459198229382688798981603492072912113785746712230813900694499188849239981306468526297150700313173054644531940801499822715873431326942221360992174682030519961130838689028518779558900652798423972522795017467359713702377707805487109985134249015378257025413542046591185185833318702828631597812889544446604306755087406288629217200719584423899651322209785597795181578006405100362427856410719805741293288670541781472389382764228223681313531330208437215631032920544193204533883396046708215387540746360816890561372246566092992535702389226944560731632506108228104792512672070750414577168213384254972528290209151034102849293681840423597549229602707240068227606497497642725010199736841342890774885694360204794943437079913094616518454177981547155879728712267651949520326411898547993890972921557228614715509132861475907089032828615776212230649947577922242260340711944299451797888398570212070224131295152569033434226067520556954297518991809276536742397611638974656122193380777086066330832810086648791363438035312159844874098049781956036489183889779250730896050314655052609716344586090243839259324864749954078119404951872263874681097478709177360913713565484462081200636782829468458902322201634325569111543597278910511995441622591374610467947595171146095560523563852280060334466623389432112875180837575835612953606265266162333476062014812092234274328441377926832906621312543557201915752102190350836992534265052356368214183499952083596307084555264348687493023114483552071386399079086852080961029529314857687162169914902913408350538092543215974587632188970228538407687214771684193479189167022730928287536252621890163253568988756896745963984900055522905279998223994557398786373623647899737390396703587503079900862271279636576103446089393989308451330701059284679567298639963081707054710446596329627914117684143762973803554584133019825010942158126926143442645879217607267345856236728328350149631454333642876643071643762974521320550020238776629746827202798381406814663272311102505045025864874617277192707220322765209999396399107974582181038990494429142154665248469316989079308113019138281930112249894142581189771978975339546393270903988492281130576813281320012272988566988066103868738689029783350958141576084291309554891805736064899745904603431962739057034787794222063733447370620867868899634249950429901637033040626326355631317037999843863513756875430020955481010638352362734374693721822403712612511375120189923449978306030202110597772078693070728707251106684913206484290650190008894113004459270014342845445730323789323021118431955170192939029937918080861389113934338580633095260421585512311399331322396579017504142373780325715990719908713140885706076108164952989507876446501155923008111102275444912781135802230275515442035957536698589074122620692921369242803163737409898379063737766882727814184557162428556140058835422589285903264977874750915744822964846662629551285612457814449779367250500640984938293303662891913691465295174248727423692882208336748020902095996766746076542496657149505386625541581551577550260005230403270554965725383358197726592335345270304529143404526384324155816360742886270845995701811400035765337495223352797547923659196920954298038023187450256650251512643527852612675961141933756079349998500164071967879923107209383961551485318766570641647490922353005095864403032406077311893138324641334794869596131350246185291578953373318873164226361284744300442825237205850056237895564660259740891063167751559851909290782273151518544244495960895317356736664425717846280964908122190807495994522163984379692055752577113519030895765599977371267554747799954555612955206550007981304936373838379501804013681111167642053772843179117764972639975171443744458721884891550050108223810349011682864480325003359627498896434194227637075377490120185007417768185253670141556629050529673146721733592264746994556722730095263708462657539374548257973703420113992667632492683312915908073395716986827830884486273680543661824143478495526859059971764162576066634280759299156497688136484940987164261765721159616295010884297824282671587830579856726290730395108363757269886259354951312267526167830512731377133876172145453231565798889979681100000318916459590948912572831327037289924959238555987458562938862813042181899585333748011023182883728921196193250726303177837872944971537693441488996553359337638456642310122827147915618076597157834995364089968346646797800057836734027886512975131011271553055951589394810602944129348099385032893513829630354149302912893750628269387307459464993061355255797434476298369410136114921350651491689517130810522635044818500572528570061137430293043084245919151457651811574033047931226758166215906257441407682581849047414970763592081268721199210014392589267254617705350720578346044018100901579045057568403692612277055723775991267834949230602501253451859272532374245282220059327242015088346822723733173589644129186305755760418199714780872566852045127697349231233342456514089912972469357519878897474039028897497392941969077705645414250197407950436546056581460139771772224137647988265387328440061267755588045038632895314051716303277484263696230596536318436579212130932109005655222357066843723752931332197786093060551252421588631831787926896842863031703157999287023897355275747997905066714136015704395013159969302262689479760178444504180259199546429259156453271504449338364880080307287761955152135172403643699022671091284636448416252791988768691411487398879913673580857945078244210433575322642290861057038400335290173153788714859911471181097207069236273457182784337307257066949113803015982953834517577738266022810449727161863282710186045251143575256687292580717143776778488532770756708055455300013266779819102747508816590792352410872996404348700208421734282749287408200000097215823578348264596449039905205468572283753849277008188924996944452307676488264529838401505587258182197472545532573422830121233227802192610144420898064448626758961783328755167290565949749864250653808400788730678063294531957615018391297981018180369599624476931316819025211980724967862733014940149531592187919461999726615149832614370904061140244798605463709039651788729803865123435926750318476998318919089401219891709168269794162754812648328210622792661266650172291079315813132840568275290838379445654041213079970814920181554109343592134899091997775813033259773810653720240567285080490506553861905891891080442275106660575731751608253903039952455279336766848489268854611791136686239698938548731636562493844553197038418923952012539989076919655736956276374832807821080754511100682085361526838426234566769882542209088896868594052425970938094957451058436204954472780944793420619939772976692256734566571483550871010255808856534532666339279395334262785506624300389546123435443113060728001276022759984665869176179098735651646492410986366693919401644137783062528790197020228550628987651212688888954354122868761505332720292036728709709671754586813971526712001848118028798837168223039294361120633582806408290001432054181195290732678706808405464870932233674459199308353892372585795840094905244454789221547396788217953492780813112650873144980521549824016495461765418427974937936773839446168836577816934320607445186795993478321914389194008889558701266368350013581033034235998609186679116909822654562208525005497923632719047626877061481714076376518982625088082970370178331760105176730408157257533887993885096463145578949709692509158977051039998157016708230794983618392785655515451685128343189743070531402974949997564266636999264660794781412803290017956943731093004567462857770666307666660286163099956930516046594759219989135094765383084732805976459351552913478317418004980221235715792373549163076655316428039782412723697604663093362337369812879623580505803636685414595225592489779279883844647186412072204731213498533132905351991762819784051254890210176920519915530548459634954821757693255639934529049810728878083292407700705939776095283498625286452299172673997918510566246405374949155724898221844014484569273723996613461100736556484680571186644721126206614431217553800774311507882493202934979614761241759870575950413702185075080166021689103302530242874695404031059660137369891020990039079892341497990564761322903590408299341185784201797569819739019003453957366454066130428652237771957063423573890802446211294260472549033767923176467407157020045084865192951076282541870206848148236010073077325278129744383919899606755228342427124114250658362222855557440599111401932567600410113092867067961810594636829065293086452116933712999930195014593993672506500502351058291759359698113966330955458586711604445254328415820327360412944073143503494871531777329676158418603558886235273343448434120774745972502866835756791462256777071397425920954756401062308318598181144659534424186341733263186484624378285341007392626528870185663832201633577644557032052126057408983628636579533338163963058682297963061876616223302447406506439587403208388073035560240171692630898266179478306227214534038366709896804150160277701170512252254125607184333592638453634907501146320943279801311339717896757641493745118416326462832622889808228517098691079001567241123361397584434845619040675429272213420472440991437349970485987189903416774331080083510490810940307815829102928116064201734910926403960255943056381387175432916267123631869413377538475630088945445150095258028381939343421795415072493401226756196006762417325014092246600232791334309387271838680844623340870435321309116343625388359449524158529392221055835668998383558124353010356989626018061921291079384592879250787452685663755978568469654953865299997935572393172732452728876331157950222424783411433900074387570968030541920402822285399617662128733764294396526719535073233532570397265083526784793365125489970782853103418554056424365904216672328971566860971541025963402306966508721000724571274232550829742658307193060455982742369093639158064624975707476741146889308023157353994984739721955788933709453496590695325699534110075690522641581304603842031907476893855019960320228476696103857880210588257375487031996134669715518037571657932780254316986620261437947969735561642827113808448064962120122949813159048563200265205414334536915056366767527498219130122064837708605774308287871144249214210853876809440050030555222053233600383727599723136376669324594193535544490870224925418522657543038641262596083276954352208370007455337535531671141220306824689895369311465146849835652971808766797804478378069690623045973558976634562069815900106705358280861013446021272364266928680412798010770982306067853249847120916606369457526968312518145264632599443884031241872796483539856015992223727243534779688883062968000993161086094827147075336130661060456340116783404372942764913749027152235667375284594960430410766084000369425207896301159933221080948142452905649459993318860003865603761659621310769506974916583998806032616297275098853318113316251358800102595738600951084991491202776935959811660770105080951776621673453297237054470508282901971779445159387476331253594029819390379659698101963882174762349522371356726358580880181587192328414302321837764881959405087673855508836062081351644525064793352600032043182408018314009402485962568427032186100049007595889854447758512416570435177641084931523407025737693652277824839119046015158423493605568259074805727878371368645112299326214061805342433079567151864021889731314342376031586549223421518135330172407983733352614441263020408898430637452874744695669050957851121163180863615825541162505035489442729671484834936717243323933429941155806165546469018077757114002060774552140030259222380664611609914851926791189852022763370956527611046806283799248257472952785376045370377987881623955250534523277732269421252848506557450107510541678387001953290530697215133320034313000550455980868752919017151442978776513084695444281718734482526472958850090091327391365060241165536707780644959602113735424287280088584806219794364196887097327791767547517735673838222029511101747342714164906856796872338165195181119296942871063563820893765196498730314137341480422450288357597302408064142704960816047975447761039832965768421443781642684032783417292436338180510190130506220145220885488893276541947765248742258713933306979588220576377031470377765541442700344381606101513184962075047710581776545480423173319053491129068399540495232101552880140563807539570621992083028963132645105658975764341966064226009914523619941824674892240413160039432579698597591689074904907421227316722432687180630544969827622142289821440025131011530738929464688360006558281016351734943279515040397203041981620652736674741318434426172274022860631301908710728132298600601334685113344439992690512285158998543436287737142019443704274443987122445069307653633971493890449264403223820163257123900977972220327927378035851195739637338317686171657966240618147506798261980760662540023719656006334119302777495063222250678373389251654143734908805278728611515941786468283399863907522274879983332371850128520080656206429584993817185301885527342764294287344896486147462378852081179859067759223488700310398079021586562330504275740047335381157366284471597331073908735864496400139027690129703824282803686755237494148695747793429964745611422643125856162536994306969766260391917738418191335849434002361190203468743315099251601721356695587222909350044978391722121011476415684415584780098061763196384733479086126365677062117590053429616901733063421504879040151309625745152975427906563741494506503779666721617760172926842677168408182505164115690515851239221772762093062091400126250752319958592450358911969337036730093142612971522510978738666159218543180719299905637459860419702965260561294241566707152587674641357316884477839225221871038246734463114963194974032681664555641765559872415437875701399753994043921349213123059702676326258462718404113133012650759080978639511249362002300220266661075319130201917873002313690763041781424699361198200101514052694395305222119618723313527865341651416666752128211825036241405874533738704533716257201043977994706590169606705499890427524446455566651857803426611486818983433832202822072705967668103909931234831664570084892163641799771047237206186447181434821240384501103740196106847792932771786836709015515881448497118370006559409375665485608818873369472123123208824702493337584286553167000276637044027760339965489466169032515209485469780803213066779450539469154719642725041659280668578963727565838712821402010685291234657076303645025521596638500144736182450752028955263366969511470010713479030111051183061286973904768774132492240686567256282532205276921913131344086293296193826493669520478131030809201287337807224164684453133796141521388304340921443141097774395708043935778353289460838466036229961966750389981331782785950788975135405415753685087348061152045161812511142365417409206764124545471648004157998437366200588302752954014755414434125485122739922493136314057044085566763441358847053347804400083290069451724953726482619899945047582794184224714053570473042929880795828198377150593382806936080885422157152119772289997324649642252792442640926210764934178046378742376398054513961269463987511374980634043815846151031433089119526688348915162914185939069703521047054124631427704818885061638137401735249084466356641779534036368147428350276311265613790633308825150328515858024664922532324556459482428056749480887242754381738463165775872863424800308838680273709762111532448400156645258362760744444502880250328847982319230917983440847984615722856447309430345587935340336111423419597984715608207877410114742761010966738467817727344740601348424695189979566113157776094378078171217082721617184083200344188574689861651684988310511130058312176902183875576959240611017549554072330178815268060639591019796380016336881755464478910002694397090989511778260872610595999860292966404936991180552433859823593919796374431376356382340600326021736270541217452202848803371104493389942131567032558425783667717343366013137133055630115426523514457172293036844159633717944157781786539420043181577134278143347559034284334913608825117061181876075832487564839896916572917754241669040284271642296970230808109842170846051152898665224014141641850243165121871887399195076882635892716807702555871410382296264817329967016906025196069861172734753385117262320170136282708271871396582633099754641845331012781235335312262385784630153808781125311958027551517387169028436179836962389538444708511109454722165584379790765847501604072917117629802717518981712678249262304178000192943533578619818203233401650545299577593698403488694191794955170348681124008318966736346431974858633275309534466836448395347996576673647527974881374120670782875862014040211836685243136673784479056344602802983288027902658865719362067889871755479663898112950899415141027563769869611049878954316863534477640989620656471429469941873549181367538325448057777443851903308837395152342030639536239266938205127896165998609712889363810452000447879119491587184319807442556011127460304761474342330381576334995607057240947201716673960134511098332099049203921173342665012875516663644784652067978607788867326993312410862031041241162433277513035822263069587562850826749572749184195446608576025652290361437596140241440310451871165899658589441187776059850338011262882858877086669323394218692312530151728162666476404120534174938564031264464941621333185128524113154231673980429405499142628622239160235521105956882479397351701693465269276040069811516356316083971872800434730820752636213067456417411448923666613975853519116000699456901894899914824296800745655525046349518130918486705648366425378189226463696764225669060885784409632122097286844429819399180332447871198112375719368128992974622124048180764114181993153930936586544533297343141171604977271334475368985324789009933648967670103355621522770262775061331595695114862516509582063383574356674490916788238509310200714448156747852671218380318571173572707161767813408859467336944848804590794120687148902372310944649375487024960517232138309182668754833480951513668584788497114039160280599965601918124275886592110367970150037724300154518895789588071650847470169882158497606932264945797499683965603878505400771094072626902392406857170314822455893697816500862142929403048818017025707777005031281558389262826246059531595201141045137428098564634075291123997219488423554094929440859801559163252693757201582914438733208564151245298640739722225350316988193485827148025423943651230682812451966522780306892885619619536562253416691148696349219112933328567038553850049041946067419076181565283626254604484731853889238621513618581442818373925315990542394298501400521043074854600002512643256919618094660194345882319625845526389891878717112214329628197168666776965717478938576181172053957625617686255790061632516934782652054935781787976598070162370681998672114817110644951058091010065222483581888707339906492026421098339764911500458130667313881633865556266125094894516388043046284414590278686477716254690733893992142280804352663521428727429021763837309684349387436577629417366194839201929894590287647224493266108269372455372385168051625576607276779615114572852230015433931132338674621482673881512832717533555664401939363235832894167022751073260108295419626072117154210543291793583100841184313403727553241560018277019359133331720903803711013273900055010313110243669680284384710571407270194788798204483942033549160368075970209846038276271256905916207294503469267450424734632869521082469346200841877859235878252021253332467045897279195464569376503760470294423563622656262038628173834277479759852783566102339314512297825436288923514817678823205754539687282166510676211581760691170792221281158872633709133101451928869606931209736446637282673344908193705944495979675456912986985307088854626859065820310540386711978221441485191333224129378544050243627769141413769148808565118642827664586432346585742974804050768666930217886542228074310354941646807399464350917832458196629166057383092183129383366184935249656378721262185863905311518848228824466068962998686380189615719174361574726446746018039325065327028078122734590669052839932842316627429858579184490298300352069907575439182240652363148207530122531411538461101708925724242402235029134204587065194467842344240046312759904065101081710283416598822342525814871352153620661181064580321573479477556763884133773684599664171934651935294004573964290643468694704935908091662187854178390548191839039715144863301118953288087061052849044743113205055342197836941391569821840649702426992697423705886830400503543684717465013172489661900019575185686008217548362367872933692045336653387863701304636075579145461583560784130138837711997176016208772638804768341279515496990684966182465825866037283035976685433003067041471703036204641874976318195972747261276985960670090901956670560919522168904496553540811663427608491033136065336482717659827938747389452973255977341883223845657901217733601344134528778335044535865993196688143998226518877847013644576408684072742043745382890332338132157757503773107054088379981223580437787418352028660981066864400401098971844306213637043014182187219769843958400180901902577285678233633359477482458525491169331947424931848596895581337398210782123379280822912065588003605267162511223134783505011251051361110664381135786430652950225272766615737984813544887457759721331580914899418985872093994962832630463991495192336504262218182967984890219865418973105761286726992104657956686991605095668474423440057502481437670791931071843554630183879351241777279714769825928326914638141612430221022976747017431247081713388467051749760144983785999482569817656088037924302954261796218972842030859544697033075467329574778717846652452299192613896633406926161053284792819834476505151990985044087922954906070222490388286480151177661389801189208201035727092226695090738359899314973352104304652847662054538721195122107341501360718738518314961591591508982067247907002449629771292049388537574351539538258524498518293202688963498650630033723294487770815410961563066840006077375304089021709476457696479164932885208042515152067220357277268709978910948564042010835860783167013913923079396984761917303522267934225291250377631413606304317485288871141562907504503784571214662294283719883628102585798675381334396968228603313040605267802882151713953238071727083368912040598750441032829339058215725813113621207088258077383669748465798317658251701362665201478213506107489807327165575771162852806125214455656651238469991004301450486724545226991726093089876832498117082276938291327844701523915356806606424777100394208996209777889908094207547418493976081005481483546042947769047365100859640397841709668419623441694242733703714303000050058838730201129250430697957712596733645681728932812101070138623484520057459929374172229422579431868584794006915318012911029945245166403364573249749685933725693440271380465353442763036546331595726874238239124161964791207272191294662823885043491726805856297659080860466661673432874923785012291895672756714293868626708742406965097275163510254986613707118070080350478779989167547624171748918768640710164966757039772966273085852565442611249729511086689623885668867462544655188529266313900255084697830001413381976406994794520471052664972075581862870824855577124230620847642944918233966767578240891712860794891066365530235913221019447351466240894597747165938995869611116086801703333644871789169095231042919917592458595978111090376490174112699593793214251562596216144417194339033022393562272648986239109804786777914821730184758917155013007965946892959505125305182999798256952480040496150186393246555675944346073793372370329569103358011171197206306213919274942922319279189308667490612983237096951186353600259159401910195114151304355060351376118293589608940651463485632751524941910172828726991422021525390703652004930449214134204939144688368320117775303110387413628699200839808818398069168646970928853705300069015831943941395005884809345771969537836566351150416185408838744777067839091223956115975593495867083145151919743201814996994331999270080246698362444408288207721564629585025421249017268730896812648694293125685020682952764692090990182282674230602247526953832595873243686205750126649414169476979361068030205835745447484190263274014187078659443443400778761084402527515538605191776138338751505398307173633625161986775304137201203095087533190485932998507535448077596084576183024580038836350245925475646064705831497762058666787971357248738108262653836224685796189864131463361787377085133966963566170021217205099555884851231569398995292432137828671635602433622360859243359631766791127410908681842409680931715392967799404774140936624070626214250942652218784402744050336882992939641345397008357851922050406656250793651741864218030296965513612186288798049629756340594619843286375216714569067123505829534580325809113274589152332519854096622869866739076981854565836205850071283841348088676886724273595663705287762926029649159115083957119673802543992165694614225642228013318802285310201705176039519137816110184970132654238908310272982827043046696017514654360064061234099928481212326907880138396200302095712994933394721461579959754668184268798564001698233558415790524357852357178717923536286256664308192445702663794186014383434369588443569385247725050807645996720252186907001373468232055994040928001274049311734224369481008867437591048189103652405686505940691633907513016244028996309926508725390345332510931769427727869469610094367149253331765779427483783983171523594388832498515997859797433160987781067025913349120838292663985513405867709474375492286617735569300110080677208755715381486999783066729445339966648389183272985964479995026916061521630020288331574642670375081431200529178012765611460037128921464689716693674575882630144175896970875422313088646853588004040111472405279963521293340196760188430732143046821910695941695135554515248908727191628796915018830784806007749289971137405836330604223463734503904878342971220494854592902193018960564695463266557789645490010837415151444920032435220479363301381833360933241625318079823580649835288097408964823246805838071751764700623984721920159319320029831003106245552115482937081797850959256088498281810913599265437582599508215015038064218892927345441005809384872820076667565694153292718214581487210894061037418055023746487877408251934676088121765756567285438817204378392469252761912465941629332803973269773646829775329676522783843521489086690665346445239377529172580837317835589501578890641529615624683912163269402825602310951486288538537218465832852835057108334602893991035190624740999057363135935280103270662609038007731022713941469685863740894126053336019927653339147892771685836247829570420173214475485740392118983449092287352134013741620783131545998142710469438576228673658239016348987536587821906191515806755259121356677653836554233344905908511070610911882118224193245162451482108353546039064742384112800684758975056660350651671233343925970827619699198966339291432414053999080745048131795790455893510925057352092903215442399756333836733675089605647149531410725703127150689100804979740624531007902088368028521757676364341497828730429016804521778800458549192959647254465470334400531745363471298935325322012689622773923361078813818416281726984100244370669221432021969073125178731336118984105365317148496884572415061767254119310597642886315632890824804555884383012967528284558342403960617896378788298690213613611663785791495802714566143825262427602450896318207956756062349703533105668877662426760865553652026603358290886875023373456213991960255306649577440072619968537260869750266117984335623638698956266959823256752296164542985378616131213185778359252248500126402556713847172438393117567188871868991070914067086327788807330352833326864326113248173617762988153001300830212623625341576430212475732828627472490458195376039544309771123099130456128786196994500010059597710824709795496805365771919022310699644866246648859936573633572776396003252935972378970334135296384561725681376545593818120193257815730908413534130455208988472729067852439975638580724987918593813426692615424488064724422757999372121212243578072818057550345142786850489128408533012610051479178833560479239683584758019562393601379539703221731000718077994026318997391777612123563829053435357617294063235381680045161675532938074317810227763187655955811561917068694293579893384665131575145799642701468499285799109409815864764625630503910290886847486820696668095285688505859185228786713300263556459884350872995993302950489717129576077496171626384401834276496816838626692586995764224595754254715955624301049157038153883456470266130884020792138048939291324208953583765287508139500550102422310745605784395865864675422410394354188217420135059875676878946888999715837186066096445204084289193877047917761133866272388961462638714260684692267090093785054910701145229038271574330786251156934851461174135798479636301675678858832749823182467017859523240770338234446001937592615511017408702559817406399989228591771186042646004372147727395817347676949714984807718249053218765866770305993435304394234276168716206789520970618876973314049655171144296358461033635973638908900340572205253746562963487259885944965150850377681911716646797252386386519519138307181080360693211237820214330518139876912883924827411674404697845774384164656160426367119407544541000082854939349983065025767862026695556011149023724386621603992166997550636438875625284487359594826234386978586739588091381881311548087484905888725921629559403643007356689422193452717330709915334433930710348649764257868658146177189049552962200178558868147390433854463289311230169712964108877360310323072872524175806815398416231346306838631666392637920384523770079501869663076536706095060238394518725791428857740855611021039986494222357022791330370489875511470808706697517594083963532284946909039869459356140363686102024199348444243877174748695325158759032239231427964093890317888562650291576607179474187982928853825225505334776138613433787198678586296613840138684204521263238697489221201834105175789569162752378821140864388620155134021600918444148285646245577819310230073994032655821238850326308071386392233599188511144441069795913482142346239343279211007281496473991806112696904077149144836074498650969667389854946072210464153135747420766008024394824545311145511321004579083444984239671455458708971353892204946309870640488590806015979145575863392216167598434670019432790560219230115649430656651339722481930216006946669894888739730321592950777171205841762194736404654295965739897992820325574037432535417219544560671033291904362208196017639053177547714385513826563504564274633884721371943749116021909597194262356412820248565601259839318154458276274704319408608940712790504151172698199684370755945793813335644439208776136918829212124521413269414346496190573123100991455176380378099464723663184315675880660278909576952179592253864445360422204168137146439979073996232196793302614076193614765814467774813951608774474440859413691348554006225147001448344872549127569911794309658333775124426370439838722438483751462797961529263009480213619797624357371586313830078995252681881733375839420437251903546177087544823417274226709188548541858923341436507610075786080816526993173281910838315314050588469749081567461905434312905644440157373860329296604861101415414102526923924001637161939337734696495536582329079051076845299600686621544771366615431870630946514036365797543019610361149309969593340981039083300925941868759174478346126643769266117193728895899082730008780622450739542045380025728783317203355812335586972540982995635362060007239857591525959279103938125533149748192102496039273030246679463279575870665736093070064312306767043272618573991263972308404227325633134435865638007151333398011554866257597401915014942281156682477326213604411615095101538192755575711652833055519645191600072662830279120886550682478581504192762441965559672416647553242908481170696291160355750604592007904123951866675393780772501182486409942167299639605330930136944265183966288619796556226586310263788431257944455440330992233326724701078578159757895773999210573752726363773497460843448042318986007248068590119033693946198576556788947778614186624476279946717060651675421173137137314477642218489406806274289569102804638245967408679072747573388861954074731570472296165485470792667847159940928136081528335701249037496796296199672023243513001285218085073158582743243292314746596217125878519459525239002440967222197485633726967812159031786861583243052885424756320851809069739199875197165793408982892202558385207253761416796268145060307443731310820854449045251403930647990375379083035277119378573947520608263963091006156527948785344314660713986389249247951146224505636978310343536369996131863770855813823030061094785690854876854001221732693850007731721060537237563515045196792363422016455814778893129755618598178168820164259448630870718527530191008947480880568379653962216920697215742921127564878248317307810022310468433943654708201566934679337376735785912409807520689703341163998798149082305115497849370957371133809995069296007239343999237525203965599850398080624597060755559173534869228251250874221443960622046091074782596661954077941271965515335291604152208782640451518891296857112582751245537689561175492671096110625242617818788294212374278779946839345198800275270556441428564086709427184557580829059330494351869800059240810963935209650301784462483234491776214604688999651540549212043374838123754469649807713227124897485041277349368506826381979749384829480060163566154641606699564648897379155207399122655723694210412863243322351640614780598308876729169771604760930306311196258582876599297190601718379391845715840631331289474775049386109524894710922787597245129687021892868950493835938891168409921441962124599344360325788070062903134173606549359157110240818568936549441780483611139939634768845835135710197443502377681206720061808436932739202706056604376596281734502584601438331413142190768568002980701445353361982056346199148906563738172063803270139465674686920744410713438599697301530183544462014097791236352908887946401607516931595950574185882316815341816133264543654790146264664079089276744591322798804268231359203002117862304144400409893504177326453826843687847331373322348713675082198901229105103452300468554419204963617746579079975372187595894629122857233670960758214641559033577999511915436466613455652092556306115364222240856028747534741524050733831734813958071925615398578174620263874135009275470288166445804892270928499813268781591314744798392342445871287220243126959122611644697256989359695094625731351988444444458004718174717773238540626777189266952944735428966062329299255784257250795121645973912513406932002279865617345280177646615200851193646105981371510305302163414534601705587718344065274831618029624426872318187273372840144963396262021904383239074566509036079680857984443800729152230123862210668095981037776009484397188126970412500064474359643472877421927200320893100200235681358428291625261930892487096090517196015185092338236404366867516563631128173894887603316360448607701837075810671015325950170241713145783564556990118825702594368298326355275741149592397366920305337627623413504975708782642854480589623478807177517063627332536013842691342540944634921502742343120900735818037854536000841093686816813025282705998453595425155104817002923539113319952798771287442184880913529763472261550298160351141693057279664962902375579404580936864396114939055530287502520857862188708001592362696413198589056796169406826747603754130464312486599685330157322606683147096651694675900966476860110455622213784407574291266672586580573027494775490853085505363995989713108115627369557560175719607778062155574827726392163652797485029257896230422075730224761771197152108467659696452959137245251816667728838728250814397900623440967167849500920686897297123857919526651478313121511538201726648839443986696777390703144589431391988922713218957536966915372266540482525049009491419266669859568125206201619759186438711936715306254645332904542814996991830327488163933597048912462891515380589192173327510883910303636321629107220834729815113699508332704716027559383332608278374155627855750804962047582420856211702602228319001704876241979923207801769607340618369052961365424836369373453949420430234648409668414014632260909448535616149144470754352067939078785425794804215831974233737809248140958302214568554464918422460525374493422465456561765413788256879744861321883501300230607875349241420500881663450032489352007595032827045168014137890953258962350905414483602239933795539744726745446316502261245319066185783649745428089131267986793051732787838399843691414504611121963505804157107513594566941207941533546843650946299414045951180143997340653785239838379763646402423063005642804187659516864915248303609943933082011140958954761687091738388225379618386928898268585033426257385734416610057109883338881899686028746591111163296593300062603373814456433948737295625814092515870841401112373017320637331492978317809539721787323343037616335663728555530257890551199334304449295796188931638918407017972512751555993407667165786270455624419919718542376665984735439996719449932881799111835403127775956792718686462232040340493117725625994932066222289881862218151366298327747656964369531543225644298883505973175678992858883976859313852924192739007989785802863462312834971141340754401359162254992569194183771931349754024375324694218832043534898130614394880780333229999028788407200990619262407620902365163105345737112791623977709968363797467859616830616538881684730155710580904387887680881750702514153931580319767274664617039563792326905979269894066488124429584944872264211323795119981112783298641825260547160211861566472017130115966454423601657593432302829258951974871293019140428887143453390085654802458653744186519554190641806927014518757308904204409014100427931560330337124288027842736068825507020142249074676117341301235399815509655593306674938891771060140851718198002951278231225227949180631802980008709394767813186793015450021519662139704820118764900075281853671532161474644131123807923388818949897886760792457861499512282362765437080742454930015215034495804926004568347115465726917312920944188316546277277776811757498307717881094492248448891950106910984005098577835434715882520803470848671826413598853347546079609373262222303982623331710901291087595523111462344129934468880697051969104467987247663593606366946348040934533029294646961478998953222212730629739274710209259727047179897168926530348848307629492017775506177992538834117970450207615697408448074794307952921509973565744026160461879269031069828350640155403895161030141127603746787219106823851008186188673759532496075612694738340394882737586996519323146133625943907369255525061847336279596487012768477223294624134562498550554405788212022671830186425044781925020315324875208669533963916232511222597673314576975501558316484630004915090198910236648469906684359803551700628752886553129656105727277248413411432534263848277665574885903785777843084652866944476165061659519560782681449181377968094489586171425500266426131144681464761302422565550307863702596409964955941146737438534021872306857799658062597194795310129727155631777221758547076094064248702286821439306960233783325179066026296913955768344438495209972317145196513211525477589272491957391245024200243671191621144355404055019658873715309426226117398407840574751076833532883409959108186437878101316232555255102955595962478734780215730191430323528538703870905351304918241660984207895299326771969520846363439880027986624181682881358494038366490013526712133613629189981801300845357395723988185607594351751812159948573824268810192151023007971481133287454977665197885852666812815861682037443467871180093870625838089300275893059067644867607026743617616481645766990697707903150910704070991581800323539109766474056469968380581093733421236371628494323432883856491454254789883414532991660302451286509976864719735838668159508031143659259171792902191000370296745960396381461057758971264961485271377118827778882761380149600340566077139811843778289013879368797117319470925680963785353197445655457158584578585279630960688447670504700758161574909025254050105689248729196096007404771552049323359603606166295317823965050508377405281511171264540543327272564600132822131084501309297497127159146613297346052135881027191430946188767733067187550415293587365543587240942847258749716131814950660981000274141956489816632553630127170552734828982018629374740403670876749942858479903929252283881175561033358508114028973217563961960303657068672727691793693101328933269262967352417019415914595067041213560944248818512215533227909706034624485697445904473086041663286746653687399392243544959652207711537315737257982781276623498543202982274302617384142421801388526382262491888076705479061708515284737504745479737363604328576435647066992606310926587183878915646618057767424696903678662368648530916630139187045073396957386500412431180665026165718696393261679402882072598187246384409889798684924501809792451936366348184704566541285264431211391714635470364661204674216373114941482298074571467298712759125765163061501887476651074904310869031299029758831572978009114442871735638041906515988760724214846371334793551464753089304211353116675155409777149588033498697629073589226104399529492687720382302927194999037298089477999534030303185405667068740636652797576155436083702980504490731970961629870273128766868095925207222013898573171390333732335066052147604974082417494746223934284490490477163074227571756439839639343206133742063684954804390989148989755427510004631173752587816269059358789231211903547324573551338414118364517336208786643681411380455376671820890773186224942618184519927877760919794862618770498453073633371803015208301862471026729014694424279684787193633817846597262167612578966801660848344130702782209688907212373599076950818115321542367055373040033194686484930043383017594376884727093976559023483375937482955407428932175447130227063578065222771477773789443202005877500564224138508894403178218777039955657182391476337724176339112433445408389269093604915327767057987817269413440631529181951012707888487967174794019328710164378736508590531355850740040348972120663082205796209645705913498094712754362132316305783940851879922324193361432234418720254893443340576559614419992223226773077237172406782020031878759397471558532046170558529294103310933400352153694925135831186785724813731413904095752152651413790790902750080751864461431774859599847101121287825048322956130801681870486879972336117558319472454126702766123581724982856592900121455471544915580473360566943683705310208904252729983652000172501565411627890860750910415476177083803106091753561947419026245899236496361908473578661450824167414893385228026266404746551112219493093774078209584021563532985396311115426388328172816917783570854430168702705572006459964191209588961818525486648241165340456345640707452448460838118570103912707583949681757187879384034283615221744947891034441507437179065139733850485856345449539714484554983050116841659746914369246462337783862947224651835373436224451452562493932439143795253901396702602459313420594766605046350520414912607976916849537257450443362177853750929828379042804490471108849168072178888468405304593179349287544483532346790443730916086991221125095838898322595016080012566833771925733305040644054809774387936276075419914434693046519678594782781116727261742793239512362741856482692398732513256171678380329359729617560093622503680644296752169644376291980585546616096342794790148570926612561680965736654717510249314123248966173579716605880288284594081037723029698775326374357197928162969427517399909910825716932692728167515093692182541581156467584108066160927364935052126323158915289327106753057612889155618681671005212684304970479317498459246571436292856430511720219086292183697179007237714000088213110706654983163095907577779450593811204418332063447329894712306253636410755107451146812546673290712119721917114808386817135388302538256389130351311045335220762048180199248214862608560268080489436217348956637799717383139876842213268019372998372072282545004381373407719014476999794545092795241631499512379474145811509637061957717441211840489439466839964843660596802376852786670297362395575942494868349642360559329175764881679499613986304433178190706090406339719550094952805924923076141467840613135133130090975495375031969074387745016779370737830709187183684886036982574203803027054797585728735431905440272573242003573865603882123418904637434226495756420665694392339034896832853791011867577245232616025438654324117577783604132012950615248997731383476227206214845300700758951351615985427540580019303211992627068487261361648844593946070917275533269078907955126747896708335793332853374457120568867514205448094030640703009525000845359998754049204883780804886238427470793544550794908249513186846362700611929052299927841515600259721534247845606962926847465279991579793415163560492231130058743731360089834212711491290506481438941581836081639262224125243252296211711515777925940767721236766628810945842883521426607691259032779427485453221616967233568590205310466507826401145817549334776864183318321766340366597851009836726155815419880953208683270357854184034998596415516487862366696753563325367270469522485918058553423081741883636920883399520876740136115157665023007102172874774489916669017654584058952093599283095705321991720816704771250338434440443044432391511185521059833219312176599250758636133574329300415936451133063181306134584705391477558414266653156905622438999997892056891106896656599023069795603793921560509954677394204225090564266616447075113522290038085183893534936017964478443213342383806996125478676608384822586890817906590521423666476891028845831838107023421019966502381462925068335922859832572456700525390888888627354921333589678804311677419800627171572157922411807266361470629386519092903305717013076671641198217555977745976522523647435145077809821971312892160003847755195945141858853701614692003208121998101770888006419676149267609898492399040902603656863021338888475204871695392928304341578589768455962617038258901420025775273052808988635772399421594025628350600966181323950378994281553275137010106085939076416025942430576369584215760544032650782486864151617080545747987453103603227301803777765739298722666393570043810832070176612487512697721275371194951339826632165636914382474421937328244855353597998856176342668287155151964513077728401603811545144251728009558366565855510328173102015199612136041116168727655271859457013020692837060877234155604014243616133101274395964849265270493897634886002128976050095802763677919916219325533897746154063476659594598378828244426801685613967180046861891338327458425215329645524589927516911582025360752066594454755602755951322556870180887146050013554544016441029778447548630187860566688523841963192350368708909482202065266273816285393695992002899162969765853492168342277267024735530379226414599491582928655265126045564472234510576929524702762507299153294120953852527625062378372547847423976720951215222007117503469712299269155029994323663446464466482971535591693012200148327947000052983291371134083469766731375568093692112087756681298732393041861531055040420990931562941962312763806937059390594996921628334333594857804156194726319178264444474393909730488441146161636240650570593120466855411671324849529369017697992224000550311513790751981272457291066400568543378909040787248815285513288780085491314110269899511755476722327452910059304437278910057907746341331002593088640071501708095403901188541860290045560319604777573656045450845959418005794049204710023309529019917233106639632629925481024770997006809615197736658437744161044802418533882644440920876364773790869290990909453558236502442315267305347849865850849990519449236803962036579061835552291503634012060913665034108271764825521547889422924725777682638231665212446021174462731853534897709599405736433541083846358304420981192938333221546112005327834564823970401306684852679146077779656682577166789340858146287960807089398148419287600212999873768777333200500733012546265721272375916597119404755634214237537933382684143908361312537362580623475681313928193847949651356588668771567491277805437579156099418499261722576867150422638668024014019423982422475507003343606660308917569616392183411725302867968663819162355461367104540017600008683535861645011204064414015405225139619703287624835265155065714896175912745391362906672551476275538691419632412054314416067252177396350334049176696271043642021338527229898783986990932141629561928531746458896418294503543299380828813525226477189779580450234562721767903574352651701875231608267700630789958036183169006980128344957649198704494896859452077547483491043148979474198425694972942241641572068770227796350390226329674489801643453009016266163161618842676996494358486320983073585336184706170679359461877038011179777954868898753651815771585621210168469109581760709160054631122129262284354512145376623209806857275541301190963277483913542672203402852768655885515026499274128396296571270714197203896126542393360900511494976977548895007286223223408667901539554039909593018143049564281865864702524591916030043553876758156888494250590737979994234380830506737103170015753215868978757686224812900920017439315782608064926330930961475373043932646166057845304767801753358503116721947360690869307083537863908051888503875510279278826000009083596193550293545706365751038336237697462353106060842670528778947586691415654086279963502338211493017786819873431349406151825371407499220212992000485496484863260147722682418783205386047245584329967753681478892124472699046078776924911994195139711832483025153943145581029559118707163390772537882559866920075791298368577121497875402575832407675579684129517333695985295888992238684098520754846011106556004958974493425142112531875176054196932834457898260217453822290532626113287534547229474981329960338290715289822565829849228540505208664238399201349001863037633688145387003004057966946555874028625203849642388823388791136577305865077665117117052466162497050474149241836151739974155281776294585626488614200189862818406970626212200940301933743055163315998560905080424822563073894230043069152528108970506310580128879344950677675434562144663596299872702290860299912394195570117596552767729360525342368479224128734001545428039279210903386940887620055568399701916808845649385995114664363215926989874326210864694710649389922685585557287258003430040516756484157048146241582308021729229689428275098092505361792325433769157649157628659522157735179286952184221400638378811379969033285540843605486955934226103182160124425294939307863104998269923649942881112424999228179590675417040103398289979390485362131782177384642846971968670123163522436649507066325236045819717913060017252289660287074179063487219881910410377092482932664104773933879812383275309545221251996940971485158552224391300549468904042537850713307266146848293896172380230104011658061285574209145568230166287388519610380773233209063708331994588289889428391970066741903211848823602885171763254438120024780160512853329935567686953959916985000592438509031807367842093959207287853256585418142653849255508296919003398291642796407057710541675288006438908895202863855920993005284422811296539102631818463380158900544637908539079923553388782113478175243486313906112306521932960063654637168491976742010007458614435565717205265475910618260764802067771334109472693958747475549381341806065007617606955752682539787839096040757832221622899305163905526318730300301141103301003891151444208664922693000865194285286661791594133094294055865575338048339871319938669732620538710506137918992704566423671691319954671114860494447059132191723076009858901132945679349433575091051590289378550971715559985872514335245172645466838273826322179227060430887495183282641922879698068573371480829542860623374691472388653327865518236541013861310463250302202437974352803199738476145343703423229220802221249766161577296581125734349049666149928151331150491973625851587768017266279972189247203633587262121021153972179775417549804270111314853963780651390937457218896895032825626530838358024525161727135365083613484621330901929172226663083934858797517977478079831379326061467051786469975918981948692068585996970545959513974330914718750751527203573590474726181069361883753746408471600485771400092605053153785849151793470995146411403933101618153584949809401580947680295187265597521467915787997872002820670922220652278978994641705461264512973480808346652229107332607533657693481124508406970346019492419704383116319210875365562470858517132931383474058830786031194472804738623903334991462213307671047419089218196430269705889793004536339704544508612759253867619670937514940689978187911612922938076795468140736884800787406028819682286219027406570953922954830831981004963660254286186911643402592762742458976784361404269202332003995588959100159046726318017758537653409287331728516187022883610043206640934591982548077172167625028273471822773709381569458677268952566009477024425152657731388828880989341344385061783326524739537513356371699518555539561196351239981476821227247807985975740716228885765180793029465698143696859820427234183651185366884937631060580536331696957297650828793786004346770781880681095662729981287280535529203717155927340594428815960303948623393893366405626438185554053176446074902081582884465597164959230419728992303426501918195360103237041499107087775974987918343030327489816667101875229535052080985549750053358721303457980446243211762063261739025986736389758314318588998632155110609315135194434956900567334347973480930728106649078455477797244498764309273032313369224683155441278901012065201369982328540050351754067839818362820522814161736829739431879020406104783677647031796972974682929814269370104550503092975917692414561346599680877439034675273252989661722108386159421247878883667314437081801102857019715741598903416366571679948437065947665309327829202945899803775481442364882633896098653071338018744128622542349726842351914702105010614137619181716644628035400386910832067699783158309254649488155636820137474461930566248727320547645260923027015678701430693744816401316188363363172525429142228945262741079282629815016380354684127757180958694320263370836507455707201776132149908993603914349340520189280980810091616851936047489184618706160336883650160933655835278277481766722886382202388290159280756108824685266420758959647113152281508016746242648288730407741301737197471212080101923534395783092554328685705643923606191583438409381666196830422134645444131858844696510058602056693034222408870018478599417666485057307630597353905753152310350944546849096592690491845680346390226601427664859420667404588109676163326144142081215956074310259401493051518528405106839227136768026179035760157773866401199032432283777227447641317376633081022695011040689011589223800585110151329145057890110823301343754558048695787758502953891862032244745666663291182625143386187678709072096223384820318537447431853121072106641280982321983951816850598737832124086910511770381557617260909092990540968079440082084944486313962788767141351903816862880043563348638695576505570347427071388983433887421477355074714447776825753234968193674674548760250199047090101854415686283747056907700738386306847875224476306884439811072867581848967724755045740515966671226723629207157276720866268436795885244109210826774320333746979332016825774765499253094576778798492042043123815529498678308713010255979840080602561690632939235815743997269379632629616160023528529216203303586603924774450435570395160531587593953508209195805857404906233059468195808780437005003939489805679360587945435967648395039480451391176792152076003960329766073669045631220748055596424480206327073923732748328797241898577533959667863027264811456332732030490418859347577103504802793680070034069806938679885565237697373289850572700380806347238016225700145509175827524412213409390948765760156911689483883345557278932535649616008988934707309487336840085920766309384201108022233714328744894099754154796155398863907529376897054216607406818031256092220727176963686655544243718414637751768060410408393329702974152691216005523873379695273227212217990108413818085763271311125522669351793230212025929076978183838388206042495450527642997936351407232632255073972318059038242316256568850151083038778624545814245794235679929326875434902088299852591751702649176326926096110076848699023347947273833108312472540896478827636510488196728480248442722517282661427358888368222532536510072288926145302133259340964034893667781303879178904630748912486396301585934006377167756876090897534053849315499357180605408542200480636149911220133375537424605640866695437032623008410939524687639737060871817710619329039619699949513429499707731756096721021067551215872981827453852037932877234226263416334546643723673909339578300324307044165655770853968952430356601460670030035347927555303679752353239698110554278253838051336598856166849469899013920394959516795251315678944466786619821701363464507248735244123031306801035642554700958220411250848324763673066084475436250504526053252946762826724796035095854676163392407641262808585057332443343397573914523369812296403242733224318658629431895028982391691095032039081898193348834127563991236184735682822639901019274285846543467052901384233941440805741680874622712701215365463445931994697674978922812729254291449279114816929864426931278092241205162214992437578697024154821779256250669077978951298737249131788206262000958216080863271528901646065813741786028917356940998195983859454322945518940834881570809490883688583844312302800187605265474932566994032333815027380259441015353981502077658256902062845464442092316315970338690523281138508200018419754379190364902052464899601313952368948042139363891967835844552015844780205823969949717081466833701360946290881571437009370248156477764955393355210885622845953966075419777384584166349147851119429933624833889191396038752729258329942293249156664087606255899719665061879905397520407107465778255118664284711054115706846762229790269522550945379612261129036420078769168652645748644404932821819936513681317668281775170708465598694757521717103646492805319792677232749851012759047012504612170821459603511090154936977282344247004348283442025008716058820980881205789062606517075931864939976373802147899475356045004208899071145119629923242740790816289884745000311615351991939684284060183003536644482521667514459683942235384438357962939443866495021722756558559475792259225712076808849036060307746309986983665900352186191486718704026861824864980783700458672729351854562998528276958862673455999025074078262276399718652098893290663660927836209790074607453167160094873667394900458800862852312110770054237344197842883239344065735854816065661924034450462125649956329663094316221320231794566070937226198766054257386452204516583199810130497851262852125697276861011524751456857977361752674445398368490792414512565987801950577870478332691968532010913472327649696308505787449154707949749800094652566618702691833268297198181166743191410229004430952493994897640361980520855167890182008070729708228825160190732234522363851636719084213506446705286592301454862369558098936092768439133757029744043956517517878945613257881998659938627140449207994330758128496255423536774822093718329536885026645213744376363109522771317318278784676181276119087943445815815920805924346152546217816327484222862499224035553201743070232771481826938994033515293375249459846459044035239741866169567056066625486439258371059661961343504302541177754995185596895597586624216622416279565138857909014985249457376556032368875467448275975144085387469151083555231852921865852114483371452799391786640332715151356044788711152206953264579757441316493506044755611786055955659355743912490638155566983963664222767457613769943671289789219095507618698482867228680289740352910699157351621181606477951844931145615283396701570778734204003595103882608893836846674930062021306245710412903150397151326091008525927992861012522698457404946683767020898858801221748458747505214341601725875310068752415107768198628286010920252720309014521992707433199769981175836215310581934380792433710358332411296152055837577317638054133021890855613362416668964956887597098920087921237790625731743984277319855747084034036345085928912721145727251456982600960806582649913796949482469536882006856745624934942677708054743007430150194930162320864791504883024664967330242938800793578995322918487341714542973909456834255423636130083096884053770368540652773952358055651736237691839996975996481003659380056305703916094226852540861287316235561380456892036909481889422810229205249921131052467730463138725588749323383050132785484789707258169000777831875893682135598517190020064731019505685993874919707530798683936469854192550162127381202934712395459182346803392185765619576341834334978686931492607867438709325805235457297287838956579998602267430156688475954871615300376901217762426493763648962766895093385944180508962170964080515204640606034791114419472249453516490215858394297022062845274247284444522586150430813368549651842998871965692516418727271413287879623034510810981672725386031187744701055329622788549439373108792810994060566170865523201127432196329014401868556084682079121577717645049085564304706893630937311783624930839757567897205776514071389135975937108007757900293694807651216731296448629867062874068823257975840297835444197916589586187754714981386228437239873129087280953646694502896507841265049022272784586404594489884409445761867850651561799255452670144532781288746533290085882050327863850366995068188566766815801355940667141660141236128709798239630992770445872384830344315912648801843816355775097233420327447719031386213419454036032856897916273189540748193189813962103138972889078122855468293015423666273144930973521288741641989288587323578617362733108799922204687824128877622128106892553972745189113471745596353783083823595996359028953867242557013472956199533167683439797414602955423072050006617056298265740631201940583271688352238765451869455374501813890353981517257576981613711849143690020728629564081981967599759530019205042845771250750872984616536639422542288480306657637535236389894568664269372454509938451264645873171591122484359461465546188487515764433084826334826844928516232265742983123168644749757078361233984574160587794741205575056918226819863928603741743050414634322214721903265134955674426427788088008028428395278119227218503552243552244308483570033131371351449084974038299156623228977168688084626935938725911517313929356083266023597835602108087378165827903924182201422981212116510067781707014469163489828274503761707663704902415597630969467318848434875319315074745383896713927943442038943610979549596921056739557581360309827751447502831155938934592763330659940066742236411586265668393817082916769418684298229294760223743482565912234772779834340022370852897878522928040700856378812929186711707255031142489514845776726001078209625256600721119753304819669893011516666627191488767524556831552863509861566406405222793247815405430207938082839261518374638483214468623024712814004082004963835592287915976144930176503147076068494750166520874729072272430713839654338805156689405727356190016922772221152932578828092683201591301918053291310226493565274710238202475883014562958364230859484555995337179650315999506860154272085410651984490589815956160088907921248712079043661526270713322479438960834060767584604819138664392596933314496133553524089669808476839909488460700834731744985910174527255761817308836446384033564217393124376757152040207390642221929790523066691715668518672836749274139660795421696651072185551913462418434371700906193072614210941788471831941211831356128170970101569775956003533608320215169075301954373578680540977841137273388728077005313943119230665466327990086744050566027459308834778199880279591271384790149866605990721633622164434011352608229117777242617081917732265646200093303220856416260312541597809185172578316821573978657676891459045627592901608315444739607949846988523707574327357181325929255313110350844332781673870309154542886968734931010054921177827107579623853156000518580772191802613636693257700229155406439589885243741429147784387915424360898105402966033961676166905980116209958900821433893555589071198723844533357823693897147612394125022107382385820518517533597765324991552637066344341128745484541581506626311680007387335901607449501380358519074670818280479972787610642322460031799191960828296065307727502067299519833418418216962810287945926881278569693082646142034776661919960206696665881805586858691887491201227792559658733172881701992859263474515091003313173381025108861653940008170632428959658082188466425203199581313409014900947327230026134950465436166735424409804050076089823030971893997710496778390915986419682731766531273170164510258732178074129323883808268233388492876128044283196833323452960819263038367659014033461603465668022444171850301440125340000563805566622517283010885779443661776585063957794148827786897796977705453901122122533142960334878198828064914216814515756732772851826278750965065437780394725808998300485578691720716088457378369630921793549867260554479638220501208701262633167617159505038813469670339758595832015362914822755743859328105308326215833256339906067870404069353567459737203645654536848202786819671653184942611941537881104918126867482777364314954189744587668273098118652492707960117761769667431081211963318437883870662028424401175946565226785721805562436802408449586286185082503826620284027564683184509581899776707748650531074099643400624137100406719616930777005663253973380845529670921950329144469942220069250722950147149639094259630103524126334270268533138293142167425925544408805658199997782914608154114997918871267717062856835688427959004005083545542757514066736970968095759993716388593154849600688465481924800231642609201039524912021093707474060283560951508971271217575957071665393829758349857345309720867782307987973913722723301377069270221759451778017913638160563784712641725098746699325319612805101802383548937594007425114758095576654480695975159532689144089413424611776871956626701088125465643922079475661726177827707494873518570172148107988707585661321858511021265007385003293987256721250242732303755143505674599735813968146313300975380371786627008057271487313493178746155113197022810371777624318454998228878256244052296339860974645536521645897614257791028172971731223460443910558357788693859757804603845130744815347945085127796007854934075563229814856340941794246987678756867177171519625850409070414573534343231908471553823343484930893772142222070348631976656501495916054937448185571206601003755455156349636264551731472530266389188949412413567654539089731408872657439570863751985751749377080748533246081725829707174177766671527192672479035528142235699553530369381275243079696222430014397099216261437039458582887950233755966205881554784818013128118080146932654660051944593120599082177698192429991503224412320962999527031439069820347505855212823994172982037504867594822984355652454164843439377388134077952645330419931414195656009838037922981514153012479038321561743723425167130782773175886459868713160357637268223449228148767827918058293636341526455031809353530479293404513814652315370431238544362726316539259866695756814360527153363070559765732203485328446029739472487757036850188233125219783855250941817079804742265520129292512613885320479194531325743461353233774740771086070560795544212447615425057797716439749380933477235937347664464154659591894227469864794822711022474537153658232126828272243760517002037565772082052666846164577224899500677990103035428939819857074813246255327456972845568574370553182552225098375295320586303914416087878465681527728202870045818955941669012421085070823322380751473507096132013834637950066119910546511482373696810314900869013860409882739990086008727694480703033539991981953839686461741626322128578168187666982834830133875137144216560808786755063718876626193724142909484366209415206055130485732233623480606947962571760948174171110386913327054238835207067750286086761806226460205297683534825351038846245860523541175420586534737915862474086246660109240932582281958636233214710731902699305327661786139785060688197561969294103415125205139585939776779348104363886245489861831399635436048573538153114022745104481186939171348443713653064805164150819189310532215874030275804929260553946064569939854918135861079648287428502215772870832978924730954699333936419170181446496415593787894361915794588919234521636754180961107325499632414764264137824725228779282896633932082478312527577720422773436116792667168980369230654618896455378226665226326419985436304680473407798566159890526858228855193882690671510450876300914526479757301764703410452305439574582476529003799690111768371347045111598057780977954815591943023925833239558237751416399494515105213247740980015542460324517647071933314693493386361885861928907453586637855630959883300218447079544365644738410631399024489443775201580885094288295767011630043612928379614180432639001694876078424850741825169082701264225846658072507893182873076839815563796716811298528191601190499016604580504046288598811982617247129817538731651888312671921062018216197589202764239759694928462670632508836197980941162597029662813510167017875174194552498482474758631206674807956133582816212416595462638381510656350483028727197692277887667451564571137224470466122424214971671390503828200731135014354533483597814682326649198567973774533677861345967954035728620694286489611933535228128805165155810302332645241919854352670993862051831761763980211889623401444152067350488154478778731568326113436057769633271619514067264501650841815948076729262232880985292113620751545796981885348817276389661121040455623990051910955153902793173224651367771843583537048022329707737768947070778726660291636233264403892816700113902035115722014803973087913304294652198917161189514108701849613536375645480761798142103556449038098911322753967350196875210007461624812372375344532765559957834931516978682807157161000026158932866398973074801340031127799042293434131152742697060523912063453171485562002413429849468538337469986645620725436909399773436857430758935717230739578377057891113504548073339403166363485073175321463743209999339569586925630731377114433824906067823170534149174155141744533480443514231588367628393782039387173858716620576855309095679180197832936083314828528532965896034598674857017796868448674267975772199871512567698425606585830792307567731743431727295830153029257290289706260823829421784356961392119831370711754524399213506982291504237046832981377262686918107954752793586130806172604412472661348269133013912514601871500088249717940424280652437062830540588095099353609014286878943980692207172847301741818039377398950980439137926464345391959357197273848497574731840583667575534812127030513820052609801692988971203663148026004104849927575853956265642913039996898253793958685726559210351372508163576955879760868339420613742478268914437148926758162558836433304473953995755158344919769686745101983291702900489296854650487185374267850302780981712011405012147693302364088020433393023793623127715144410821736108344823118377597961050253512804993832240305755646054080750477830432340072474499027771296455217208896467533908610959695544776237826359180559722745772873029239023283954612016828222988944372921118455349929126287097305723493804290331232529289203087019085210616313516399223319626379538780956037688545723016746844577994945025767309349314656474108410861939079687283651008968609935657741170986716194564712722282391319467006900152610029491311101129758387802335378551322148021346885530790053655917926421872387790366047633607678873638635498625772977080876316444148327672738695110741486986693156626807360610973171473897744655535153345258077266971838378569011721860192629427461049428294860367752852368319105367647730689611335485158548115430988985336900249531480255258539927397423273969550001557917546964888009657096752456104559209083353629353359712170752984740870315432974003585946518720506624170566588773843493149918164533842373607304833161211409307598816649553409856770457002144386870062230706068588265680635238086188183813720796433122612519801516310425150803092809903698546280343529464188391611654847501167426836550788102362159993859569789974261519554856873749061767677696847424462372831726967753491224012617863357088901873754576164724897843846529537681378422267574117033703322671374828937750787516020702416272427265992883673263295299232260189556374599122223634814464995892232927851761513773817938600730424850136936358554799644085368371936745834209916150512279595447706370041239380272536525325211260989610326637848948772156990768965352273349078269236854723798262518861940611206878549217948484230987888261859538544726098692327575585919873315977545496324432643895947437620059145300153815506784781594614599327291473756539525957331882558379715489111331051504160792924970405319847251412221822435035486918456653309689213733812608525838144364404306669598587894794605962547066582501790555585314858494082804604250337910298941343488517873554399763055448238779812783297056653778503318044351888615944657040663734859772840270301108112403539166188312703433902996034609172046747754460498451590929933873976336187635746613454676294022967790890199476867916981921762253718602351461520815614626089367508126968075048012050275694560217835297960375350180155804064937808031319544889786487068656979660622269281345253567054308387567042571093888531627791953376723375573292840365362615730312636808573888280006736646701964957530408710740986580425581541478498995717273708526450868025408869281938488536916064727450686770816340848350183293299936628792288747726192551974623334111609456194243581151563894155794882727591036065325776791099033456627946668070010746208265548144422343617146237088880984995279412437840060828209722707179599245030625778017094296271083523645723504807814843845688267688643833912263691825014946976924322732228772669494161068552766106163392006654960167603241067949959043608117519405099000471045488512456928991758961323232272165558538926839178930715916545703689103908113885273239985483039840550779729161457697238882801152224374900135648410127000920580632888880234544030429970537452478966770220790361873518701053145190851862040198584866456149503050390293103622596532456942501871714949516281259326220416868196390849871043534837027133212453899588617409028380436751695436347624531897830292760561851696571872632428092188774100713164069055230053611437210909775582143760841948497028698795922137177921242398110406921479898634078812091542209148807202438518791372917669433846455128982919078215878121124415218758769583433137692046190002827911683642083445985184473466142949632753010111724237026756868368717151730758826715113876974177487453917991731635668058289455045691556925099965674086322260478948783730287639405263215055766312998548089833124847845610761277213243397390834359381909724924448837983857033167277198742686644164972647471399131721820171166035541660028367940238543751257924382753274402521299810529358005075116156960429284295117819795915887691071600854931322086966306637557091798665266001661705908656181699292404055125649066838806286483956971808488027924868320315279711059003188204872682184029371001319486424914808937949030642922548933816968162771253652774059139373222695508471149625509872330308374595688053176456006517528005087483542958095453893467672684378335670948686974486555951856252185274430026656157211040978428788768888726785402359038352536764303152149596701061109860910129009477347667063868058545020008197925610760239420845539150374007180293055524037611190341907254989149590663540816075273363505350728919846116459447867085514789381669088808448741429234176696839633569446983209294922290350630102446263971931689266480792846536777703200399220915226988399873829403891444107350141959010500538141569624968949176595962523151372622081767823597047661884950237161139633023320536036735308250682172776119800512465683367256313497715071776463616944837106417840033576270779496291355487270020967411821870369073934600526952744737572060937335232109854972597306227567923594724225861476208219050509239992114845309450740562721566038286357498956437231744552110176573026385152209804550308357024698329199756198050556738913238740368430775651775833611692693281057207048224383827972537854144557567048985422325357760070674855592435094881159577334961882414399979173737246832030193823169285233250137221085649781029764845035432771351178525891554211501153899669363926174893130587270325743881004463575916560194500936916167282604178460804638606648877311839444110105825560022438248226133467071018970154346109693911100444686633067013480829014436528258478236964722840912400758888885804723542796241211473694927393058019914788412490152051638189599128600090680781571654298807135615724757654041810582663147511366823759067965472333201469373750441934818768999150385155697964596111457266880205046279217751207838546894872525802165193075675477517126210546147386191156356584748788979973775742856493779596898483884386817778749723188052098982280581655507573923152237083428180535163586051801671092884202186274100607566784058761819109577350733988113963059330308192684871306025061574828304179404011666787321251644447734279315698150308678549148791428355424288382486903143377242564116983681733599238839056823818236142022532675069424049501594252873263050653391213625099857340219148679162908032692357901520114188854507874828254721373276011801575717676035874539766947193989856254841110496988944807500070517863971577148464525365860554947905979990050706359621351201257993884789128530152873589754884769545218206767228305544938751909301393406307003163238279409095286539711981995714685389172196024430081471900974049410914392058527861414510542085889862909069088815607769721140051341864958326220539586630304042148064401064231890905484220084642984445555611361464908342739944398434568384490901046532152222973323936221499573015794108631311298359347581394456204018279644850932157400115502512448446342791914533236472747158693403394676905745012335735495935587448058969085245058340416460640879478611949910220471339456670421539680603761348202707510362864750802040868877024094057949847815341000177576916141020087374024794031731711238317768068930890725161197824831977361826606591526378523943416053755020678853350202153665460419865797005167771097287658344078440407733542260474423210032328439047782735254604243918993001294794908602031182987014529269338216308369340237053742544813935093419599379358561015306356349075042660489696249901786340076488465982244043886460751650208124013571722675465042200700024877034409046560534614532869705793972574042085036855256931630436010605404280443234842519624068102771540312483193750798397538409517229663531568111685881697354862707333626014703842139815627821225675322913009885781324278157403338706334788807515813098143432357104378289346570601229883094845286988857818961161835946743617879354062367422918268504398042906327815399513566188233910682722013824253556790126179377869329127868822555193191272456516906964641215441454403465132380310256077151235211057469831787074482945882826400262052156209867709694064530555971672989846816998233880636302172133387158110874782783154978574153426879246571371090349577353009067190803045245303450824338439244987840905849374507548345770885382560940150335821485292769074018537367022091188936218874144016556546870205597972772396142341678116904558353789815019784324623976155233119937316696972365136567852826617375923460540950634910686722430628130900940872319223376760785202111407239457670332335925286764845135477705364615367408137743397077191074690999789900384883316929100642159696050469672826276843376112721582358472004825613440950962651783814802038993172705762789116764643304603742558973586144473500195181451919304319815306819102089816985623526308155188418208340669442813416457351546325433804290012196058025848671469787956076629702791025346578485557223054477293462513060147405093021978835999562484204620822868463600186942285560456148631545280854558977044256428898944032000869077228060034808996318919634238105219776199689597121431082960801521784595217289711503029735922786711361728038788133669885955968206593915745778281473106258423211931916578469505664487150143535940323565156742319029365555611149100765311513075617301973910097917855297476188705941293587389487407939054061274496411257058156890298152776043932849762423062580252025311126930076715957690937166143317291212278951110574291782005511159528400299892752540629193347593454994540734329722454570950639181754872183425794202256695011772663759828317753809064619273746295263088359516359014842666225145685537414669612634589846524347530132069160792004061963634381179012986415864102641348754263257835669943611737051416146928654912620412124747907419924267302245898043333579642625643050031979889912445448050190660349371448707525125366174706070374791520802245012808643247770909504165317297135991456206321696493873519645186110801605780427780679312803397769624743924671237912698734089109330703089029004927721205716571952796908265071192477304573351881457415490873636646198252972688516543815399304253441705437183600607874397829721339002525104280850360166386735403291849490319218787021914232586226738544344087833637359059784130939854887535207963566031622713248929077208631367937568492992328249195424401476895904248462108360804762193812907071614439495402476902685632420163234128181195372953354995241539163868365015916044631864270140672771579136470768077634241738899507241744614852914227799403775308614544248291966902440017741550568980735703274615169497737790875193435668194427940055337092330888401781812593810668877276368976714030325262986450381333950751923790941919169359445018603245797393471632360056731937165816711298700846461420145082848070891284006237856116931285238990057896784294384011585005992562179504092350133086760326167129986434621803110802374369253518885543948862638918411520374044723097219776359958655787915940866459510048204037799583343548397092816761126682628583904774669656719135532871818972502527835115826837153035363241815025397533703714327184591061671047881030113318599789864097649240994306520431590912843813949168961876698575297235807986168247605053506716085442076840072128897381781681613487547001804929702783774662704188755585186708123631141910639493542337327258254592093680733277374850028701058454180266626216383008517710347404848326861772122196999386176298191657330038377294915662246916897283250935253590158021986881847454972267831380798659824563190077171994025975273808168253512325204385424955678706014841805825682534524461385249683298322758497036362204679170800297139568943696512606024710051206550174305712976956219791415627874496963247710297231416315794176827898750181149402629747478096331180964290165313086108678631856390035138275701189456807468570795528321167896818113445387061459120804257044799753757982255104089420421746702065319811292664243440887236214151322661470439525533292656082289181380277726780485458832717987687671562170515103984393521224189550810065460099622761470358593522252886564596086147360995884612351710062389029956804859008524806336726608160734503484280286168956160465341997888938093688917837204067663599539601460300052546839892691627803188441749207087767770320851105117758923649424458080273338988067813024710577187850853443120228869620472313602327344914114470047196978988563335575201060103508008978577613227910898588843143079871760476544560026091358542152037407325329130113891901815125711936250380770225760265131986303707774812458723851436979137550742913845843974564662509395132329956175562090945738792025108845471754697684440359985247458864644444267880662182661706362334277450410959200651386173477968609349503849488058663985679192271270569154988473771099921707481308904559130151459242688898417192645823492667464657046122914412046286674218224207126920492082605047272858603075863122036981189355143834435681934454909921614195329703930972992278647405488351811095217001132110693736294827689144625308331435531420017176310188149428779164322540967351951600375520966065111406104360131314478122742700426637567353626492935946838517224630350385336818112801869030240109580905173365747135976780192126676764401730592451626393921235748236478859520835519716053016434542648792984799074707820650051283714223441492625768759399244663677804968251093605864374799584959276693054513880058380379882486298191888294713660333180747690402454979104998257842782691634199197112238095937707080907233155629295204156328821670431210376323318733221488285684589501593218162713389618347206740405582859265773664868532828552348047021932475004375115369428371475214349843666354533371516123764737945518104121585139473237969619288811435884760492711117829181357934702427036369474646655281911324562416246070750623875244247731639152097817796239727874201711519306341414250679739696714355251077454357606457027312695722949778811936455983371379940788445951539583304398041257084838465091902431087081487453895283953476564925841950338076873106998764249176748207531570766502255623838826143190676111466178892349149654218390686169261891307513981425640215477992729532072906868018933588482578228078080745175272318686202497553885216962678088699583004280021557438969207389101918040932747224617537549845912549758713668627307859422515850438105651954889035623914282336120064364954515156615758249175226770386779523027302225622118282001648340607937348417556126345152490130402132859783111137002721725961571062828715720997443739641507300493836974537382944952229308843550897588850680464270595110161222411304251402033621159043024907049232547170003450324069408631626853067424740067773957128528651511756258522851592752681555002891796660609098721118044273234730388751667500426364129651800892005544801892863992431555750231762196275240190099740311723073182344875189112094693499367615866454653239938283230251462330104851544159232261025497452891719522378917199801388825119035893375825277401898993392216748253960248063434503006687335146989052722488632581753312756330250721894178416128717199350219192518268244884963824328363767996494583349952659628092172918823049483367292342624831687211871132682758385974662202680129582630008909556874899661526501141516052823427083080621090692431509127281807651805368091688392352999601581006510308175559324572925623779875233016256218164367596242614486463624274562971342613045529785882685296181051488800189941469521251978237715175964434962062327097707671387292602137503520791312533994568711139541213008824265480644321003046837150510258750903687329889519803578783584735608847383006314696244279582340834586331557333088396128934967104202541151092540229274040869138456061546548504123774259553632326537783287191693706709061918316721713716733328023977413112068199373348477727934707063245513774715374803131364760066910756779914013556653791195718197337586393581975617113473951962741680154042656705862949076895396868248933984270558347040838810846201302918167573294163515364909705953498418690338150364123827113051900893615368211445941212074553377120452989468184423633233458473333646910782952136805739314559419366689770712967925219248869696526417851853242984390427544865527946367214104032210079762597195114445825232819278146725520129309186398411895531290380347193655304644631290544411262770026685501363587345387916453310022576796291854110378054993285282816135630059288677882496218126237090108969130414932163811969626420719034078693429751881827163613061617624842112342029912189516623107077945693659337041813808301239279276277553479137032915503413291251270072695405405652830645368785707640424849285955998520922117745522995533815125798074912840812596932455698876146806717305702024013428050842712269222490976200084839111057395936538418023233936346571299029623321762495218418003430818137740570351701290458749323336444859318706476901845272032533538469211006037784306043178924604408652360854991057159379571486287287011438585140202305645865977807529121143825333959571599209266098498002334025732358903851355906420765741239287709068280250286039377980685273888614065141889542935622016880569300568685895834396271510953004503617401034523879288493078740561739872518892894748355852908480236851432045382070085948168791685134959244798479372733040276888379630465314087014922125568415728897585291923954103230902120465710379593244032222054918918936220163787012216007838008187671932584166680649470718574781431636161029048320596901985030105671662104704482165223800000979597458225778834945740605180240587122961055247585572099168312221262487424277255972765911500687048939609216157465057051627987505823490202398130963301843899382605635793717501734609410091212461881848810946012180433168179434310935777063201856962768428063671187042977446901510477110975488025257418226517491940851918370326539653915192085291197054057732965667412439285575700801424260223845737601043095365179930381753358549130153594953334477497709298729381433017753165705715587345613711677389145714807573723368276023383657064247421638984557345944672021697445045382004146164819696848932163519364779981505721680762271198427670073288629462264316662145937671783560533886930955609121668292870234438267491392486828164124593552430292633296247452814691403617897577842225954805969446591780934996344006324260515332661526774355326836611358138399974673707462250637193878854681266677537723752964151432019800446423697294938859590846418277115236845543667021355391834899072817503083072614921274284906218591377013330359714721527979568127086298196698651715586374666451871696275454045695219867083579160701535245367198727830758611660683626627318345891374831196177795094782222632254336421345591727229285017442757321657461174377034940130163963112829966210502522307823918209525954378705589713473934083641471924594169681197859438397837959140057782746874478071487769181717661124702458001523947214544306828617619200011105594966543386980887458241278712146890584328314379330744766853789735441702704686224264794079274526400586789256336883723361939299097456060285804082152214380184427929016441380472261629917259530470024877834653076447274457765766558460714876031484974987054835219503317655570308997125261438518644510005491387591415150973433348187599270009108987111405087022792930764849898381550649995315741689901255142327824554687544981988419693797641833487967309478977028141863318966183552000554243488741642905018996868846852559396249186181650510778239991044625930042248650523060367526979066856553853192254457345081244570792517931887455504397609863036864155797768561696735261111483686442672500520037197063904642585685712376727109881930432892274965193815166833150963651711855686352577825464593622770591351625066312799986871387199475896233286650409472146671037605961541236899881320730727258140212769326963793291475297923193967895715486146753691768065665463505524276660386963024573316449014595860686242688828744348505455315665198008719510489729448313065265825776682360393391577386794458185861161037621819178849033986858025431381406762646603394904094635358641414999570247953465764775850523465611287293786376869566093848556193978020692662036164264996301428219500222767029631354621115570453462937483883418436633031389727837548607188323416348658150062916715952163351110171507944849761403139945001998874479325573263958019644046092749248450387711182510683724894405788056149709657021014916555427191133302845896585352333230125745568363080144789531778923949259719343187135350967816499186364662014403324426209253413527691561440399786329719706488515768626017961979193458997949185875827209460392402806203470095328806585133348869748771657569667109503082385821391155514784861153072923112378375970896432130651160279922716301973706182248775850796082602254109391362804286002718560978046838008811304000737641485232125808543723275280400675940614881514428768332758627028326436085298487153571090753749562266181774821821133237512259434804713542636058904552708148598668839778082141594601647579445826378876070454174741362465335884896701854372255750133760728717980104703992930548614483544997747996762326393251352211749664802254374252264255321313731086984338588005384185858523847597552816528292871059759200210011912758213615400201391020942848688742741118323740396081405245194962104619727380431182840509759452098661857185800989913012691174321202421792422707178167714160602582495176309269473065394458188148495754613161923736381597953460602534456509823812588011430638599233686311962709946413516612142631545878703375483666572139858930473461355867823073678848663641637850500252314635111645184335289527791361967665070306861698174051665729242832882203343526915442853538968283136802657814492890627137062294125315880206278186810907884972134503356965543824473979987771176066106743702780410970849563071480585229671236115906417845338645708913482817654943217937953387614242765357154490002381161185340204932931435116544991399202717725620850414744136803578738790878803422204872206633084936066533768669221028822654103798662014763321528921141388374592941600128380559590767005034165903149199648525498519039959487754156573841796870860636518535222007394891761862598943468354225586663500868687656958312169251126932270989976415059468211537495516237349189220486895208074165008676788438825207987683634478471772748079434444551012230349503967901893217363376403259249701019093912489198047510230746531955947363023919965517724091591246292318652156488259694931788821648147525277653791165598967712154146467364770783541169541670549928298823151723324598041531577457979015538827965492296582835789613079961934955128763998571247907942976557529140081108615217885041194005079374998659513855195992084352341339755543263202462129483352494929231055651575512895120136406325139761637271891768112219327496718697244554789991054706656422272064602245579360049229052655217335497214563236126782597436802811390286265121589936481541285139942510447757720883979135990750205395556261708075511170855256209265964205045125944922929947339602355104582152393929645836297632840544895164693638727334343394717904473045121798750143094343081518439390775495266512413240295748579219859101685570275191151427306841710768010161337922107704316308239341293833828256494252132777716126843471838998689817112205237049725358183958889423212935071783875697464526474215588364502466501360062478655924325490672447865017762729998818856418464271961911565945233722666691583221225675940914100918995029655665012097239340203519352481620031743643247115648814207923640405690424348662166645410959522250041519071664311946187958225001449220271069106671525910707879553338765561019051800688489913396360015663413001661799396177576818272705114185206569371117223968169279735909903530707405000626165828928788894682350615945087819058080244498803845329990971972629157349964212685031244846963285805946255805924720087906756185465943224542833853537824813529628754922144017168682968977211871519886183508254213711208218886404244474354031875459776824374778931746865595242348260469429228358736741177778789448849317794169759976501844954937485748138957938136364881896719276682494011745088559433288027396741524890084603701705347502376845891019196102304660815553001507757152711766262270644886940073130699794611520570492292289861885780202779381854905038159280685767099443331616747122524428036085673364042847783410785675851737192757446568812082211816189766752427917493847145368943104943876992522759731283985161245363228811362618087144819266607600114241583602831492005089706593732314046421070965794560371061228923767576418428458955566454531312915691978396924134720175290261948845874479706562676888015650393530006714871391264604391205894548165885713208996538095994368366310162576669523037407485204275673701966604367201716336935819508935270700941086664428362705334672431734874695965147675384182892881936877848145651225237124804874476257604328983084618256936335520303469391096165362139151764694553442657367504926201292341034474595304525886181071573232315150495053256452307954635381532949150340077667126956579334306974630107000549037618743644921984518024802617768876764559085249186675672711863371144458205995018798947188791850719722514924551234317046792343291346939330278064971585806832373109440742974479617292523276193997651143466262632158952232801375407699104852521981963490337465415795892555915484723565496107305472658043199342590805334559678713732245612926642313473909506804068521048147251262732309147145189468193540634699793864956968186901533509978026913416723801397037145061432567755797969889780809676028466429674239684845824960186024922969568202267445025331642698302285055194067580613864400172575234855088389270215057415444682592729753506590525824719763973596860678500324437499059538928130082659908751009734549390680598907059799917327354023532711350528568754735293304485691044846492279948756794001041119749658238079511171405060085296529588177864176034370928961591964954203674086874782610587701229665384939569559598674222793335609860576915850679068740954542420894104772220410883822624947150680975838153301807836752323943783374414949068259454019772732262107907312075069987307519066570067970310244065257318125209146307247034158090917208700984627310856169813807532871492200668281024647652408159349901792212427568204635645757600163009882895542540882429173730178289659705361827218242316788080819686167596035407738639198382079186949271724942540224761176989758648173401029924061847704552481679497109883031337215199696536507558364298614491599593112824609100981687191727391551113316747204475008600843818247377379567341212519309743724126354272502776818750917756232872123131675759623920895031131633399202130785051138048822201338692937471887474176852917429406869646231826107377105032653135596127089160725615653029140805060521462497886468091121664982760744712464708728214490991112799433347316232694687243194892741475324157045414750964683995883051727360234803853045341942725627394213809630733403268140698511638819597520593375777424377794095915440348939412722808885562557441157743072764655208220367137093864920770667290018797692908148751661798764093247985550714926116748659236364880112555404263237388206025245624637959910926217644074927847650467879056793472775270328685148939154506417317336084273297604299026796008917248295192797365154827444338409931392208148078362069720721645369966927078728689089470288418746203451916959977389245180599164475687494578783469561324772519522168524537217359953345751204560483988857826698317714909454113316867215876217433296035432547496771088550185281059941589168912916882524880829546476870291971701932713351170682085719242596439347453141703953789131361620381503315920002151978292092785504045867014496568324245119245390122620476424931486242722799106079526947471656413375951998431647542833465330981448603199630071826590365303651519246449048577686765059264169950917196734809681150401341760055298029136836768401692382342275770634801815175591585404636680069981086570887946150538962252820254390769027708451255818506233365607771985982261281611033017678001798776813983371028784995455266806080560095953627504153147777218058095345227207977541900102225903919444941370146949474776671141877319459717861712507431681582108193189984766472850779115932401129841619990977969104329549514013744263682095312939244350781136387218033064403435683486053254292148411227582821237176989570407345542865255268950161592433435713556556494243526722974321547230935025724143824144852639738331135691662912120662560107290368227949450269598003118055904303238196960502302434221879956735949874227365655049487950098532553273571327901439971420290784595746708957899597169671691021572999489852483928787395587760105067250374293244003528167413050316884380227535610447772801583419277305680847433848263942918302777626236412099994353752159212224197031364596485250147824281792420936397582069753177271164165141488222627960227156627956506360400772042710783982012202636540501338566333495697132757999807296023668676056596179173221942869796846051936492124653516115821793844909872671011956450625720611647073844748802902839846253843374150070725036748936687485719760997448751342897378002395048398841962959517821861507401935842952532791577067023419575514258850259107464579705127588030570524713203514111130564225164943409081834798944602345483187722226022762221186552492324053739949011764571174178128006243241637865008939844671995662471013883267458523237627822445510679339983473837598526359688382319350422633642454668396216571226698214443823780309513146033892340662459140369849620860487769662878474827833033790754304956146787644053512556290789722889545621652840928894433135377496850855406436304088031310978173206441230416354059429059554133723204249142356111852161606503042858439860371332065610270825701693357569758336697406351903545832417506722155704872857400497441195308917090765051899916700979794377532206144340051584757421801310068629351588004513413033183984455609330196083694031549829484490411228704208458587642772237734047846771648755955526979331972642119773051276742316437338281428586526690229582785713542502447808858022084110649518401017989419393648440956434999242567702120872328395356824150600162578490182054490648376763984262817096581147697797169299407911229719269811291010914326003368022194874305894501362971284233360654118954476049830365507102117735862992860427234161905084479343137566945529123465986823128800272135168509958320265452312668164199220303275076603407362443804171326999610219561309753052122303318447451648253266168303555905250509965725824472826365566005198750095319747656119519176315216846767098927691383190307201066170461482012846164803151718681705208065336562162361775629843242544554030238681581769192563643455946615070070033930653244462546854805077329497783466536515077089503753381512510331287474471721831679040908004340041526144361408289760098578737413408402049006922421783391356988028536084038441560177598093486312215506505797021864418412782652019860793601559001908281700024734031399976555274635714425091909658284070342089947744802456864598474535859020599203970080549333141300803021727765129582966309561664341874940161220571647399346951273840654753037087298943190442210566030337814539178941542693239996423826844226925607942547950396314822647622103613072518485359163706702808415962706358451332723609133910063407056988072663965173941827412406835008520993071494249509170057408447110218829793623506016588976077780173830385703970362873888298529798419902464817009493022328489590190400425032619013063559975389984755878256738209951437931260531993607090404898072984250969094164537282060379667498188758238002759263040096340487301661027422235144649268119076374273237706344144706774299510705233569623980223785710833294762441198718057652402078418618359595109115241108450049714812742473475396402045548372963417463711368654684111873541058742146089613970730086387794468703865880828453030911813252825494913485189576596975480706067783285774087012333431013622153799759094277981079555771606755594058375176751816272554718500357765507251313430608350149035104980527125319285631279524875506377550087726591797348432399967985618919330805114892208493236717020020735356093315831564663381020736652112870398876789570810102723636342304090589520385117801325186254007732226675205900009607742307372927893829480442429156234101587268145436731739107735857560243055981297603127794829927906962473405012858021210972464548772110320564017745047115943786469943916589349559713836326790537929855866534511583119097463605599987128658821889660845217742147417661557022971158910119113081652884314932189815015224581871495707482913056078587940159083590441851532962543589864783712603032868390403635137002086696130865733115946203690219011426568557983059407203430342077496811489483531899864359182633743523847243050092454823968737404203048592867139335271098893159427881840949917549895044764928621913941786202306052533410029228402288985799698753603975874214759252093092715300751757950269096391423296291809364040655002620014014220279714895418708216151764671915318229822380768377446773268527266493292046607303088886243839692049500013390307499142065731778345119014799686574972209412537407642055837121526366946926846469899151447017978602599535400058903433886413915206009158454671278131639988747941884926390686507650988716056097333007951112276007812190473756205790112554356918653612227419645880932545056889557428294748540823591164177523990251156152030311587746014057820897549100103733638911769270173106480573267460222470194729975744239389687382458057978577466741322264057610240260455191163885532205528248420935455114040354629841499894860578413790136797015475167337067294964962977646829192717160545726357628625324928523472409269466201954857829963378600322505752020220046566938658657217096192807001572635734543541891752867517942229271063726653662044626125858087094636082175547020011790539689540200138835413616039568006876211686867725363350397981350948750309634053589080788182750676812473390525536617707879333328257490465596638776035994740286329740989535406689891783972578070587631973214645956235216887417265500175978392130417277805932857903036714269547076443262605702351927181399644238540694817517118858369265492089772862275380467588436564516886789376852936842211033293685775734310366396840918210858595326263802940824387691396805388040058685578872131509679801911764222133301943395942987368989288773102742104465872831716496578340710738208518554184222856993648909422892606060447117278270161156726313674410742973768019526746264765647952312401141054504601566760525267043316647575636598864910249469470940396322639352583410350013838851412945285003793183179401389520069803352447102725520175856201825170712778769549334123525163737696147867941390283755782901768638902169259196248800229085267092727940670710136168309073084065068793867243987872021969792022791459957547616481714116300502173362721315177380270572748769197960524773403318486158326855770309930817060966228343201081052148754326728195714769973636634556196266611734657955531544192805454060334343900824901927709792585487915258680622555214861949855670049467729480069439640963300752952420175735438428833420056036598828243790076153876561205377500787091548931618595988484066235648214202675261041839264461580464673547220326480826645375257470882042571332028411461949978197714258775886808178684139135046776952827821961885344157283252150807362644472582336171215557893785601300419426398986975330917578016574444705162494512143733105350224208302384465764819733084920075880571336525388019572558381031283725568858876974249365875556203872202110871722185639537846016139358626296967648918160504608918904259408940098520439548883368544731868137405074405482005887694554271959445074743316719338513921603140147754852424092064241223087529955450747596910846338793600358145545973605550242632282291241736163865399142296419724899994668958229054419009993014431528864580374898472594480371505784455171644792801793823303608937936472420596121650880461010195778757973121225379471481143031897383206598739428415451975429712273959754639332866691507409181232143099483421282066057129922776826585267752725580210728371711002813666431723151151413479184396223020652530275244281483668733721053929328963620026461482646428436614828010350629268009819852888657373145874890840559980597789503254537422363060343543861285237965433818420384930905705171607142715294290634657177617904240969167161848346075472098040408700639617593188430242109906061695023403509584513822901110178709944218373735309637322113135444766596936176007412246988107784411085345170647599174124998285996153298434069228862598604324618621310810411500230155200892746935766662677400288115037578835770792091042933791095597799075867253098559127120087229576800567358983491094607954546005622578528185828106787795859370319867404300676922111756547050026280400926854394045592384073214748607738356564120327606293001177259674603178640516952432039885482089019418545836588452800189921363726683395612448777346831226468575664417584475778428853604417424774693399023180750401420307792644679697065032037744290566627137620237320834125938634769425413231898851020368318343747925493081549850193563534495455277127237819168090631858059861193399209439379301763302103143804730080859339592969311031276210476905753143711062252390874753210606670928382684577907707452475897738551908987946215371215989068446118298751663054584079862118595981465701606403980092658117439591532971253449266246637196714483565113308261110000465246037418464766527181469140409662426990918923272034969891530551746689866496710739282832453166659062839487033745665735215392055607325633468445194961718297432741299379641905592232278935593392156473545257558161524024338314562799838232395851050080624013430799383002288629124157517176134318227312735136345561068601372560794490029595579183627489424880188724715146716469523412844318282227645481892368928261684140163901710923264810248578384288460723720521819186652873242355759574997481742192981965095671518999032969627346362762898585723799042721336842988843509682346773819702982127812932201526310406697862030536872223490566140973262030605540474041647058040560482106896117722122303002392117810545730977183175632788725559779552766597311375940188403468426299871264619652717568095495132895905186349849378398353286459734149692094961652824361535100121310607262723374689740823134656869096966933967755947041043080068895140141706503734687696164736043991531493919627331924826523910356756659007142905181786335982526615450260680439453241371236249438367020051824194777992997817696236546706272716840056331200281550092452327752632715674675183933146473867085122645600407341968267306629106729896707093620216834908016594962914155013587927509083860314540035735423837088472050351278168575301861771261950967067508166170629678206815679046636618940178232191923693439609411453593219102896187251066013031025529503330005080526010846600000927721621260491536658619844999493739748804598526564087745952669861492779031288709176237967103575147421616803841550026942930319261402984686023004073916284188833384148975164641074319989910081844209592489050990968233249982411125450932488299690769487061622460429428015957701641542754961043627189235156897620579221543007052157250728952083888516790485851041039968046522636785950109765166817957443099378648421975021726904209179247365858438354981007393326420566890196751948476034139032469431634912883411243104853337861437745255601460724228273805517793596980688182181779793824499625718295081827869322469713067537164916420645455450184344297730573603965653649382767810835932810890790414940233302174434736763932741232978855219728489396270337028375490049311438465594335256167342292911028562736003265734492172644921023619306849666605113129024321772295818880642588463353105628140885514775577472674747499403002987000371675106053127368877187732443512098545805942671878010745224200129030445763842853565241955099871343797114490351087634807799109676212244881713029448386604194820671521229333673527906448972779708723627744325199972152637877896132782427414805402126208567045633436472038327729869722258147981114987559599938426407075043533741262831051605409835967689622073086609181477881523438374438554270483527943862073132328407063931344667605740927539920365907489420440950592005537714244693687705315835410568110415427962832617938449480862698797602312125437480099016669350323669789783872081303591152198593522329883672702335228500879397583994571936324993590245877873055837733038132759751495592263599000149235805217359913151886873073748660624924412968192516093131269642135216267276945815269938606106010549292395335477369548169396558266190912059122807991266005288970598363846340443792031407515306336789765055501198585071760534253571619139469205311057726212978212284997202771202311582786926536441727594330356309167582620454054894619723252176443956367069186839976739881250580875902212385174284472936957802112717707518163236326048689700789985178644442619918709785734986201819629955034245129551588900787388134749896104515316030153225095541952573050788857494100982875039162439055431924222050049186363404951597053490728460701330531122606040681363783671422252210448513757813495062937915005004140334983992196172443880798069937439736999706128278229727366185589730262290410125130043934580431828436205559190021444532711522037635320388113224931373951808425173079288182409940934179108902045908272882264224002833713309401891340414337085899358570092497741805903708615255777889723917147207258389972249165636598011677468868429275231316673176392689646478529016854150830447489520908359596691290754590369064656755197135263540201695366917919526085112077060854600649754921424463949193715141689634111484197711182780394848896595157313893233367332981354429505164043019794737868484144335345161655638127574186521487993164574117348919370397165518823960372650556445414135258480973669856460890835021893045826359114615033646812309868246183830149791799711714017305065687413872694891366583753203175361088411864296968042735810500446999993604469654986612042023770623954771987234754244320243831841296272893571905790862664148663169619291744501469481994677204110351510090142690464758448275916281623579165429058284651375540828096493469761997884479057645428816266322475951506200460012422846580245820091865277770565792691513466825063284334471621915121889556342671435121857125949374203703619595603936984919970347688820743169567052468116154467231976195174566785114992624328211167027780489791566111256820072712216689184006806646665812364863859153019821025739558469531939217941798711145877682974409058671640895356106989883127613845041468488018833385409589176189204774597760732661301904424566063834972225568234828955428523816460050910772105032508377348402495900617433985909553388075608462068314243841060820397219747873385234350251104302971502568958358263771118245408885875471415966666392552037673793963388338260949227362667142646943898714686629478956707864863310701301937455901333983540702452596107833194434162388536619854552895139529342370338438498162288233502109803611493229896138335472785067694691001296551691823003803890725650386252113127971753138058325797061636715129543769023228715419135017148979275722536562131042492547934539628703111822343306498692387484644163672270956417751415557868741218150342384370814170393015875423028522497868961777592952848672009018943157929067109150040706426854585577054012803122940113336910408971366992360377182471486406418324413825526189899578669857372839079531020822175508482408246766981510425130184059628485232475094685270812453736952628004889031950304324983683168647299760389615920886106772413286187242574075935056295915281032723999524190431317681441206331752734887477768695648881520919196556592349441326979100257834235945321867492377422944495478283466361061210038478233403810362247758214744704037419750444451914395987309261364420981638167521593585836086510246909606640747799747363575772368510069281579502490310154271068352893207116401759523158478161485948157273405571477694529420671417700484304753937313901558738398436699718680091639830879844502031157362133832232096040024491720950265929876838048069835577352565378786490361950230030667489511018313827324255505501076786264396547935536711818213596888597847326556221368574487127302011272700108566649999109495926511715123839955027213679692646971569378082411522743566401227165267942644840181930160635729917638940151230013159201449266101049225304019934866838131227037120504161051858827525343116473684865539564887861066686492246799805025697052184136991507351133185752860650279811108046974288094924092703639440094178153393001772556197647568033272319773583603902163876495724579164138195820345625334101079598473739424095494269714688580567254995859554468080789784531599875779048143334355773112570915831368093664031737348044801614297911510638833091145631230658527938308365030630926390040540988717159105363454227086807279080978483598182567233852970565108317608881105192586623303898897497301351116737568986355854504212175943300661194797269747241715765250884450256359505412188182749704672922031403731152420478352859325321990182097515612418453215268998032134268086741842775189300542446769581761171558852322784890690391713650684172447495831896429317447432633315650729323358488302661829402979382360697185412831968141666649355978477066552170635475852375158014804376406883988221265676690920747882953014535029283151579882669915868393753499000954778386613718924161715131374962012768235444845578726828238082181551484565256144221841645746591558435121890503536020727320593313100766989428907423724115548902434704445903395387916176543031852841802812614944709103883253732933491644932702546234342767226382375616373255859898689046736459052413647370396558609751013572106270961687865837827317006267668975339366846291520665243212809413843269071352967547287337592379624906549661535387816728452623963397200161499682410058407717245126420517232865715309164544479702333368512983352276978731621743676357755634094008134233745172667965719263584126156855146461414968852279320073898911067002807063215982399213567001417566440533882063493120500700679728938915903474456378702890777972379463552202616433708204239604431530197329869417200223067428047513625950206176517373470015032548200762279535745628225819588752882275257855686490136296427984761946413943431925350180699034763792070046789849628494233662824004075654836175550429324909816289787331496340845041839385007133625716075686831662303785367792383512144724359061740503683097957029612699351042883939309736313305919785486349321652412535010657781908476464260259046789892809387341748520805011654626915464894236703442950435279133664772201711326385641998431453188310265974281135170226408689687771383467624825084235403114343340813089508483942872776262333164447242670396753890883900819307136236300348930997163142720706826366251797806285509360653028831850462812604308829292823694716672877129251941555141930496461063413444475636173376659940735375617302804653124041332512339108267400664503207783921010900305414394661093898429521656799883157793457361514808876720158907412953200235691836917770488702979796383567513257021336650735538621681449087404673463402439597295839590234540774089405917424354781345634328056791490917221010286735831617798411694298111643292772013054331793349768724302631490047308558694181670450875506699420593184864254289521819911412052082535541795648048638624311753734174630787096366974421172943844357518363779759427917122493018018035523822599385383506694965526187593601304251658079790432116935761402613224989672896186066396762603652679741092061258633631070281793018758304329560750022021416594330860286097520623753503397495308551177788099691675495959520562597116817660542518675828767026233426509191492041972039974754983477418806749092249945869490595902311284736051431874272486796390023828838515664032089972740900150617184433790610330347942685688545823618864853226355153280197834117388834468300497966898293022994961493940731207919517087927394002554565857002641937683301077701170062284270883957126339814950944569945817397775196137350778875279878051646570074841510509734910661727564060626515181335380495813411983970971758538255883573857024209302648192786559363104055594627412664983701602373268422394796395587041707417794066634994187283161329965024811516696301914028655561278540586963334167845119001629028809509878321738899541471028468129503985550844521211713643920581244405881192898713523872628932601963817718436869936728725505452562293002366360539569738004070657964699462027081502784055777614270570539326222781159625402502048705404645302973259060824414947238503955693035958938033288959068174743468328925487963679531201696746566544841503801454159864659087910069156013240237268308551729885246927310430121700244118590371325504969524379761977533375597351287984033920285224240212131701118184352958366860181707016325356734153132970455348368540006417724394229769131999099306157616537912101094757425783090215338368259950816153399828326895816059797136283194973849270876482310526077203695317118424352036495044573839164971267148920178888326076097691209796114223424929929596918058970408307398002857545517009224129863902050677718236794726481114487974885378736894090112701650833656313090917650211290608649146372650386431172209602904173412440135322307239920794671404593172786085548454674779262827852657127230377057745430557464613622539919437319111727482475658102408188991272785965180165640743156497740018978373880914137578154184212959921951751021943156937743914020480923387593676721951835085846018435291173249449941065476213337824308427537078350607105777732515238850951751808037071435348815110812156764351701367103699139749819512832167257338024886534763089876676042865829097513374507127606634711029136487146595914317441558647675938130939990842533564566839521723350484483317676540401068346760437437397331564075527843150070192387783162387787202285733155063245698189749803249680680881252238820793164143381587308324242886649839068208466969880665348174069923080971330128334729512870863571187976115005337853931484394744651558659770658889081112448466160425681775384284398742532298083583129024219942776154434490118430911301846630729480077654486304223649516820377060352309940919610765313280310503210664848268005517613195669255360870778370149436373678822142323230716185312962201781356449104644517924669588293303257875563220271756836699883281270684568155199896081626412269199537623077449443819810810326796651470096576660661956929117379658837854684935592443719248490081657741132860155436747794727348326543228716694129158921637119354745957745701089111181143718185524338928780074895820621437743560164055085945579288039981351025580783675187066688108516608732907553832154646068716673150603864830960186010160517207577817460946640368456173918664725789843272357605561891655194940634360993709944302278029779268700395678744101480321598115170567804713136924782956841944033089972235241841060307562767811408204514561095584809210324065562985112462746710552142870627781096036103301814923968665403426870594050374601276410999143373450177182552818180574652999204371010210450645407595043875102191793550682494480683119150665999761276567477161856763129897688269935127886335207673874988399820222924663280095650845345790963797051058662015629453286693744774920482854221101289381877871587246694702176556993072883072618154182820463893297943321137481778876450198977299162945033147807146189532057328617749096406994284910368456758862606605416280819334545934310873604024950188531683401181198713866645875024379702291562227328624727656669735164359399333521523436798176352218702277398400159985052394549297249131882319977052498925025900007332313787274763611345975606531883497278027906734410585837603461986422737015075648559984403029941696065553377784540091491240051916277462147247514092866685543477525949514144818455618213771403835920288598973309869858632551571271977846667038612132147972818746887313420585141587790166453425392787299076515148996852479425979526028319703040100800178612598134521887162086231667527096838806488107812233501269019441184598332422728574235037989147549820465360606796814456920926712899687957903854603211751004594490415144584165715730477118700615182107332887118640843264257555740449852355975623587253241445172972532656942623051156005592644047367414371473623683190524979988831007364710333196248917521889956359378348271188614626555790376847113237975947995182393294589797600264667176302904822556576409721229203801847535720475750215644877850470262860647331424158098281599408540174115354614831191646749323433751708647729943862797922072317345068669725785606616611652872525126400675617961508765865506075911404217245758062425624183809409259884614412174505425574691942958535979371063554034091053343905077949550281272755014586870613829596723931405137263092906309193679686861386119559326873662574337970748790158463617065285801845422085226093600847643309249616393519737809102612455597910745778656015500970655312873148986616782633530136815549703397537599189827813230213323024382653867515092668044742070384534508351206069524808196984122867686407851651433954637901827424377263191659573870958410758865216545230100621960052363331731839128188396461739415942348180221413875305805728678711843673410322525035679222322857901973486646893651011739681350284900849567928263943441785730984171672567844111581087363701295732387844826593950948098695578067226040054877560817354055269222018118815276890205925146042661765970779714396353817133029045987729017793631542889360848590134571771845742045687848995088061955449187552450164047134399334838225297681307995768837207537125153961747334667524111436703431101611772129022218901508811907918168906608358000260717578572907731046804868085807373684934292368015607959248446267973460913118932259921784162769639578157592103540620445094348430037649072243999553261111987187413054246086541653219195176647231364225262543919305391828872977304171283411785903654381752704675975665853759812966701476118108084858054556343158168865397285653439095515583711860747471132905916667311707140141601677852425137544831716278616384964782962380614519832365389616606920225790960019293007729775066536010577399645056784028492757736890387071368141628476096920107637698457073737174141131996580970486867608487645841965123839048374484094610676828268735698147343961651328526008076326731147486762698405455995025041227055999629402880454494717759826208673540050010447228667160337256318331772918180761692651345045577584695783958057947663755821414463775897207985684735277748320297165781064719045732056143865586966656150204144341633588480170055496483751046625409646233865838281504108597897263717631475164337486392012457439139366519332811629390645389653569526579420852698868798698540059202947682008259481289974757559491570140164681581687807028920506976865168719425813898285228382704442261254923026351198332345007018149224906518456788017763923772462404834601199671997164107494715952938887525254912610392326377498358005533616431874819953961970419816618379284848187535719545101411115825532996582910197198359330398367538957659702379402709086164286674345586533499321704703023078252169884230229889634816229083593575614141849845656754367910676307697208178181872474213503953218980024687940003797075089701156737030930046836805767563131616820951524756676686703386594520257638884518600028018547163022065216991241658667220683525590406018738179541596295357715089221423332306121268404331056303790239134504477813951443707862982735495245956020939008567778662763517951678004205542355638761402182333158404233489409226274468548661120360883820172096656213573757487799366988555843432712423701801090765719264494447732157928284691589013963962876523252030967679535259062598819987156743597782945744402050981544102328998587185447021781593265804311680400533101741730495948091943946024289077047985633464223738687952516053184163352764206601741284216281409071389845977177036117480071696856416818625779382728127338209858044112471305861480963782940084004906445551564524940352910524551141175317992100380567389617936866561703293061210531611649879558552354229739511007298757583705366015091294104007007231160925014979593152714745526538153711015022614671548353708200688075726453076787446858519890088199656622088766750124036202213136421920321740761060245661904903829278226903233882126789044206129750377411072193745409966089564102963360930544604374725220007130483207116208700009273183229428599675151477195289022381730092472539837078832215867456259394282366589858105915141809441277978992467865478476787493142351621898617070945161893601049425638661067380728216984442322047570003603418004981487884785368231751846842528085714815415795740040912989871526334752648526651108999001483299150651219229799048703643626280589264878256203908777963465631607029788070474061934516989137844316291009810809061419897989671299750285635127054548483447599773159902664161610278235814041873308844010698352411454391849226989397566121537921836172521095055423457324740007540506347373689224063148263445342699034480059170224484647685996861659578816400302740844427514360739028818153650403010776469746621075100786953621215973102956089270054891143373586398825412219598393181648031627046679374200910725926491346434481579758993416464281684030682488990560922781545166089520754561215722162508726742905926189434179496873854562402042382591635109958988380712108670636948104825404941739004131288819945293633645814762297347386303443284715285090032260560756045133043173738862351687925782697190500062029133555695621066007176340233106814489082745487740746961540428923832416429717009906436314863814775474607303712699626095254031672855632240190672340726117323767550711746535935484832563114478346267658036866159106054451657782182361771463122172105559231430833726917165680204816694629368168452994090051426125236090719286217160241582579647848048478657989663549926397475524498000012640051246751398841887175422485743523241451404163736435233960434581031494537109218072767643091430200033487471858747682035385293672339948794139622542425812227412908877843397133740408102817710805253775622326528174450833982525629463970725415833918297245885343732775519677221959576939185949577717607668762605724982633639223024257332501602672840336270530667381032745725432878953621979868367813802654223392058795446110636184356223987049893547487648023031466000115169081634048229441930454843245191858414290346512254125683421014570455922555551315252415373694603538220325960421983103261227439370210026049135760691894085719948259354087042829957909396516537155366226968371504123596503746451580950133566232700371257308714880948445779702845253407258765808882527802972646652729865024091193223373765447400528883022111590907339970497079176366057396033319303655849616274129519073623232944603803931410598270376657596536895594062055441286249199140649488670272869378412141102875141814034226191828422731553205082239005117340668908460335729081750390555132428889807101681117326282092056840840234963743072343905944158302653279760293977943706667702112800196149531876951806611854770079791524046129063018906461289831777431239565289683549865020525324929240602333891758647600866699891045295445755580067647461616712831978389230777763449394325625119087253241255527358325077741969860785981304388301464288700219563566044678762404014977828850502430770792780060740934568074667039853707297131196154384691820769307732681212918212728687566424316779501323782788844326210238272390339746614882120896132330969869607557055977777553425901678639312010642563157759715810552750118336807541479342951160660346839710210227097229129780675893840441499628395937558863909356394800823828665888404145299221368738751077662238794208666107912631357909829298565762479996358102646667713890914946502731551069063748157336142879729157788172517074702625442044076447524198444298882889910373835191557278839541780364088494816604449011264043345258694463874632690424324737769116960596434345280047221848613895034802418692747919559637517931048840872198587373252738430932969661130849708419207967224189318236899607910870872668060281826939937014928231459930515938818418032495806288882520600550676404976091944329816102034133626920842471706181494240728786866515553538678306054538936060720277902795487708214391773724607245716084776797220265212220700315172346751965134333890904789203228197401162425977414545013767509245141188343180536548777806052928773992067545962204908166054091957838843071848345786187779958509063374312939531121106515235653316698622892707968040237299554156647398174581224251258192755154972743640295503769544659562884523818815000697236524481007855545140901538231531587078074439848547943189889561264039200292303653946220490642478193180549348827910230524503630884695116625323634549211856662883100650046824762814860834415421144949993377280063207197979561086542480950542150801124934387674734145859737978166400203237855092239259343365319028993443306134849347415341559410515713534069014301941344272863640314385804054259761664744627581732322914180181285731183660301021481908573451123596597286357930933828566785341420199144903758472900160742166318520945696944990356062025995396875618548133249461479068512881967317400536118122628299783721125247450415037422436045070257601338568617473456816603553549027642106941831108718478241811014709821352320714382777586048054090804509057571369653005039595062209155169854862777465182433903980540096419335488980282446247880404016084024706203162349226104235767603330567162849009764258511341723120258048661644153829399051762908809691672798670527387189375729850897209862805865606847306939881359515120856559635938056615042704919562460933910610878677688289304492805266193225946259989362256235256085327352004550244763274523097865956120246513705219128406619869991138506413235340287094286894558406290964331859880282205991650268501806323968600939480495767673219803550134149783479401576552766681847834666634485487933863851808589891025901073647119900695015978702634938637061302170312122167876290972838058548522530959100670710064803208469936933018123399158473480442809617527865441893125848853795688331720970488551674152046667233051712090527143717868061920341425260587335941120065784040050165352326538373167093087193304358650265495412691408287365595672575299748869388222758175869717047604808648515294541388703928896318087982229509105455728500388497611302437267576737932562179182444144977745642364175555809055853917617735174999800975802888098247288567366317430437922001340527186516018414959363635232776850832740649986802068533617984428812522968380871823998108278733665413481163883376269433787859020985646045463980327204122689521197963688513558295123964456769536931238464970796387830040075020385928170069759164649717939176114671367123982365741935568432811115371129917938198059041605920845703940469293662431873764926111623113316631978226537022182453206070039126754551705355445458008603942383847240814545577965228421644844245359037838417356097955296768945853400541984601850886575267655627943337459255631144633772101346095612317799263189413200737168315105301028360163093579081069501041452370777676035611476191027054144296215969164630301089997513991869281166315858865371428407343553104924158689644072726646446123666237172699350690954022791517358235731065752450879685762953638768822134196774075315882608373615491986065765661967996526747124372804107287004873353603370566315959312606431556275526597643501059174535809764726341196246535873834352167673471908447409040223794043931086895945814637355922829966567138085206931705001066441168171555233056977043780633662711607476633553798869966181215488971294407338075587503542976717503861630625475236955941728029234952783609619970210466614045523972497484732715352729900099713387791173602920182497359504822001850922133933505234583402589482580571289111595666800107393435973036483722137138159489669193667237219743431962132346770708726673052772866224581014276342550460909333530057939430380009588088681792180888061811472374367535552834700555396947082434983499546972933968629702828640132865317633188360418919629362840507031641755900623781450095183112454219944180454113482011718367281159817304254310156817452031627338599181869388862356059976558230310815180497341844279203308651184689153746941438652764495476470510308445465324789342724487369740331609831264119363857354375988713009268894491659894114160003792773265861619642717356731007010683443436118650172689664913858026129275521996573560840726764921943789872627591558257618918441983656325837321179351123363888262918598553056688176187058985080680950773505102056276059899603754553488144643723292707695537475776819765307630485729291517099492829769769197945006426199363665617947058505092125677542226172231041312425330628414614457354582447025387915184615240857539720035177788867783071645135767389803358228782191547865234550459740766435933206719725079310190683331863927712185738460353013596484174312261906493375748340794303751901444327967271915400085180226200431570960655472868902811661858168536080325582170621859749727572684057876245151708349944256944753087874845664563980509873303529175651306103796905737746994210645627206832138204037209122659886785396281038027830606079494461093630947444962112162688303810595016990929393473720530780234960218868175483984406827202618933477730440486329580520043841206603353177737167719594410056736269655878344419985418386677135764286897013876599392293480085955426832297324626361610529473035016378490328625398345360009348165770765954267694282468827101041999496809728178079789933147343583357645008406065942755653330981668921634135932373107945479946267757988369236359420728255834361504317993905427000838395164877436895443787731330833770929686107682719979356679256127929073509677834428842496986530481429838199779220284876128834300515131782946125502003564622826633677095328306052353174073656086920494837121675111124717851899935393018574188966497792366188031610786249122355009223923896608471331607371550513048277234111192323966668612632624262311930873862227749104721471643808315120152565330127303068975185037787826133876630712024777814482690271899318522661068007703184727985343178063518976552659860379019306428905209575272295388925006262047777206957959358677780693836665480608411885407131856812628892739290415769719974683028079748316195310467452840605857345621649777577828664457461296654356378403229021424202085393031410407148553736243459860309317386331907797494353797667056900700696115977590706459933265638012380336756986047977205280898214367883134051008073325559290491876860520935955237817629459678398916523313841850875445442953821691275725782330020409508086140464664312247015617424097826317890947723259666453899735361229367737367345099746603001451160134524112897344610271820247283178728910564313349912738031875329305241606834140940962802854361506236707733440646386768518082359648073700850873270606933321802025890056449118436214630744505423995111215279771316561899409504623346939613871627823750112140306773715611907464550094351372912879725240350224925558062755558261412189357228275426046863042735080236260172736242877448604582845622193151449596434167390106346841141326010958591936238968136247654682113567703902745435446343765711116699594267775860240956197213882467021869259299674840424803442873339183678010337030258416712145270932263031931824013226233776447970578377671063746134174250128627001574241045315426847110451203595096052036019315777448616085578750586347578084704910077672361771065182597489686634351011873111091771320171484778173564926586980265468360280307291293543573094832245211492940982977740080579831147232236642037160441184897813693459384818444617702694024220824858603244215442428719576118094829954171708889449053460593995214048391224058034722184123076068378449787369655512467671314748641049971325138418190979635238912325687377494837850515248164889736787740204324683675181075881884751384809261078815423898078962289865633292438737685925950928635539075574950057647088998039492949184137883254218322694870236520573098198812916322047456335614977191310492971847307597845855767352146407894705981661922288865598603994258645684051249247591513384693552328521024027513425194558451184449789564173360121084053776327195667408752558255689646846434119218473924444891592459195915011926552739258918206201222202817247661501333042459320121746899554462733712546651768373847918282579166130531482404153196953601653173200803524188216986965205856781470684302758375271578085374420170002322308095496329996759249003131654568692775543511358178882395390328708448316913875326586309429410269998174874769242879834985075194968460343615431147337583528650561554863573123842617259257961659740073162699314631497622542278821634177144923304955502320393997875221268528394863221032646573458947255451071368528280565055501432073433279248782312481891252820826005049594856066442174284724145716115408401637136267352257064855384234732634326073691173848271753948387543238377168064550635410585385719045019150090661093448946214879703630961255436584378074489018313295654189119498046982610450115148832997703555014657316628327629886376563561025648922789303005478788082073750653774903740858845813576991996516565383061697871995091755784027626166795377929288771232408198366636755974611743568570965034049487539623870182676862287224179897373770081216365054235468613652253050257861812444223188610307725970515815313674343101751566066681001514806617863583625274728282403793845517403235518456654655651936331086734610941816204115435946426291360731835199578301348141405509349495988615914975000175749886872287548263639989270697511339537310350736826639526870563606266627114453011646300753515180943571205305419865831892519829796772273154250792255763778979930414253715190422406318454731138562927028942916612816580666951164250101278343092200599868739573602748228995515674795035504458363579995753529340486484367803185389462760323253310478693163775642466795974465276521496888632750523256182817485914537636621135186440904259593459084614936304247973712589267181800426015075395042406209928569523134555141021464170292939329865949580434109253210840331239105939802427709758836442102305950921521745698153761757835680264677726479469811593029916460811020856730682197736346766036382549213716573673339889543358457592069097443045295586963850710786593579364318206503412192776053201210656365170925788157998505845928720309979758464728318997312865742185440192135063371608318066582073023584276753894991601229286400195338164762913061561866156637174183322243735584916956459049489416772988805796263262355130154214137401045700566252671036918541454789103882289004405745928094243847165514740130135859207206475273762076037870502077804430303993769925143950236522397680610663034664501194938192483790173103296575724370820960772781505872178287677573126734722987223554128599686273090366714817217275666301946999894330191910073195086127477552160464065565582064729588192441932752724146981218673156505114082208558478869307291790918025826563491384043267793199769875631692926041100663672335524847958663612569915470790153090078884362135574329106620649493159236571583118378827764656787815321521788082128809917956121421047404627828493271870091804241883547905126709364301366952236826631869526183938413967922476785306652236301313666808985823387547960432643334382497262309773555663810785954947123183730614411498379633301927728877812411597269960092923405172962642401822267966166926611795672925170995353841770041590848840634763698297702345450690803638683782819514180299433394523809177175959278129673729452459666380086549097109239117562823955394116320393123900979515612354806306737615133759312648057628208232227213974076000852784454057889021648662820866584859855715458404253232692846331132745643754877229065971893649008677476929698152765111406423111510131453127795418584066576869848168886948039395589110033210519319265103080991419643794484319011092406425270806780932954531275543948075947515986607065418600997175352534997946617919255588967999839617090084976110433218279729767843361251124368676251521914669228693893811925300588614164396553354396531488507304874599586501723463728821019675085585258411266287741385944938953636317834637773640518625564908865516759918795803214692810509009241572293611178463427224166224816335105668001476375806768371487003720014340929580006488011287384311504473344924477470393672941392811828311976121119411835347781086593979403457413642168985274771619726912755146439374477166698849882679388280564382842406300593822509769070212463164576980214393158666967139016715664211803677870458503999255717973891322361683178796435277342006717015221298697863907593293356597223339570652821159118588335513430883957450928131596754795490257703234216169226300373930857081698569868949701167429846074258639268661055385079024099198092174034610668754159652030310458951977659396627931206194235415680811265098612452696799961562684254940064290089480269363272203658215423216617733232845646510234174246666316974801893620338924541703603160421458600241220638590904697426146598152154656208357070544642982621078607892954620226445258691809892962156568514349029045851135456830412762274053763956469159531546276240363535052861458199233565333752705226644912472442156364551644341251532761234218882412704866354567491848560539022499144390316294678876022051893303679822151657352337487727377965974187925279154670834261486277370107102540389051982517297619875469296895317954862681257816621253708312719795877125932381096069007452072454659121948458324371108019994181360790297395866822502967888327978901884778601478894691321379375087860575955992031307019810295939954234853649175802408931913607388112807242683637936408385021632529660785805805475605229738632243001495496403530749459810041605503924047835157283615585813180989481521236717124822381741740902910149459617412767902057248214372012686069936220487520104603998985440352912904245623755293027840731859438263585385290509317803702930760688314317908343760997577081800468217510885676701124661224288298362016350376991575679706760330184730235983768296625622303718751003296790176969778938703610618245020554104670701679722533446165909034782362560514013484217166466005485282244856410165954732388791150379065603779011908532134000346054200152522583278828858947707817679867020766500256342980403721118000884362187065366306235717160451098317550086670621971628133390851064915600987607887108794825389282727587848920533062681146901416709712979796964445427759976802364172919262524110812308939737071067034204662459879614659721419528828349510670242585864286076624045175629624465279553869635629552609925759937453464089750794191612823990483346052206227304359554838489485190115211571511672225955827682103280636682620745603616489141116246596396896896530812150378912307094096528890438619085767801184301686474122882320131170770167754866118776018633096018531375784448414931171094701118867033733254511490129543838851055441070528631749696727456727579502297604564950005411356599082874827681744351820544271206275359934470994161975662690438102113669541749223194670624527417694122887862636437031877712979423789340781321354215147543096136979008936340632412343846147483112002282488985247459434455910714325378034513572061128256674156436200746529880198243499438839552636003447522283845180370284211542080057433327961711361956902509081016972879906066495792822840338001697698293859327975408576828380291000347956311938840398222106379949571600936881984675008528909394494403702920161422831598467479056266939475509664184971508252301968487869828643632062407308051443519972104194659255809449215617424994089409878979682518061649270699833317586169511275350982739389013968744144283513314966135278217061970109360796289200455669765802434561033127885308971368006035979936503422307813026543680502869677518324209909810703981289393338909032732615616111485492102182408226432141696927355555676240507463858625653377802190824580610203385918465280095866552410599400524636015473888775263063455610082870533037932982099602713751067693845145676703335507649533554074925817910386590844269223950239605154911200783563677618505692886795522588761714739909241733778255644292140737681955403024232863479709133735890410655558560601618252726149693784207283412058099001387101351963969394604499556860895630735085633029949518904036278522082477076332699269708038594395957207225719145838570950769259720381950122314912232150773592992175659933627975176784291233215286592012514777175245771583825817676594339226514320006118961053213964928698581327550644495157752821630166576560832252439162996064903131073296472764448253592053136231164557447367359988900274735542286134097995043826527014359935563636318175790081850511659807587002755447040520584132230979882206242996895066774627804837906457830942889113042228786787964588977710214481259563170553622575622546162905491421012910061119213303740054230398526372106454268220212420490648114040171438061420352199123434845569828869711939795031320837210188690056119858566449110055045589847156943064265114724170640957995385657282681421171491164899837646335684395258378360022698904025359983131581458571715312813806335397325169660496973668977369412079396015854456487498742325046341367637652312906381527869226728468212377158140738453247114720186881735464222408815363397224034290908368176801335497657842320423215767011246879674569257823705590856115083660039575226777723248777369644176479099614464160932431523824592874541192659068708049143587719002763689600498333289575637825538559976494016446538658293291582512356133668157797335558281692057320264605916462129696030720862682055428994293346549980963252631193382026233778350632484620896906226929952695842004584419113012739324960044600605844894398013500435975042963773052618286217367681432422474966362144185624121864504516995967813460800774757588053499006211503052216290617783067769117601614310417571556931897224780880857254548393644152814930909213360668201946638456194288355927542942344810053435627960266662254406125500677037198284132582711801634591980579558694581578413200318635984540591931824307662132858788844293739327498078635754061674649183167478959607448367208824051672431797468903107099624911172130136860949513081714595981242275413961106588836229075596801475244071786285511545776517792795195063538969033017684084685010947182811932331728850770172875894470912704124857026347861336993863555108336867560207652064883133964947945234084802943173588660951113113462615156795461493567602240975532088807341836245166466580615821473614157867496630573826993851921119612858433830137925917299619498197275384835191128589979872487612950831887196096576361393915593839210254774965894164021602690364306004267901325122772806336602652282971714695563805494074107056183112607548954039937428562769664106077114844442964993581202888428569130468236034602297061430053959005734541881152800890498072278051213388671557029561446449539978440850042899293126249915618518987792780170139612282760100082256629554144783565108867075338838832420575538706627267507391614759294251797385651044136754151305820806493882722274572281149701872684566622328174616367372471585184937014625906760348802366888404968706382796220875851551305818207430355252014070022692012039096705300469619680858083213432215167395706928169014862474851588943423473262470154467138724720972371689789560307532315175314049758106563909276025618647577502905225974661407611453641363378815679912948154339269224852338626483052751340006560078774411557449657693471993638247971081974924408936833050557797267199960340655452634059708342647609251068751666771903264538975343560720328173507491993251638657899620454872480487746497743938023970270797287877677375672896658444342500035416349156379519162078894103280441211641001797719936009709694319030863024776932403251651927072007206754549942038032996082282583760504109535209015646652385320900216521902320126327696785590757718410802226965209875275979732280786003367555888926001035512670112306425699556990418606269493022644606516745644451179479772037613587572606151964535672854938628941066732037195384937607219277255671542494319179202367387391326926920274963884722693244604851150886936938502365687751489890203545320719246014883668889411067781029840862147074779488715097155115852649186198047640773205002960839795255268214770633792754292312328536021169377318817531253661884016211531526347061891446672965412946958516285617102253913285405759780256533131088828026799704258479338572510682060718315943220811843404422997848436439721373474262140323027543627323747680482832905522219591552957997414344081889422760261139425391255404402505396030114120027399184189992839124460147333629246968698714473070804517142630827029049405093916814211252276027213631176481606508159076047289269474527287811041621312478212491037357664237679880723009418531668887478289453152935866682806117151569923358168260520895609714696066168461250158529390082428903227449558064071582686123557271437097448143988503883175155115315012025755480681062201567817440186040419011486107114547816864609860601173591609832607277378588726853187368841953251020222016670782404045589334097037102689766323134635974674120614038313816686510638445520394392246522462188918099321210565434459787228508874204439511523103935749124861330499044024582770564744979645465501715430247817715657901480320133094529729868489954982440450191846955081591482548214109242534168206420078175693164576392936878020995802597992988815980401381637657738023703509675925820541103032966072201735302657837081387711894775269842453146907252631968894143449898236969233525925428938221990049398997785257416789446817034649576482758871284779210928708880034222445802581648660480677186655144735308441684615777566108409685574494616079600805300574622394036256415713463912419598534804389198342233871173734692957447278492072715883096752578720249726702674722557532132433325865748654338076694680913065843797895689391899433797471693602805645117362687432813222855789580576667376962804856992112410769306417554586845960379954500749368336974813501705254739969625808061258988917842475378228999464482282727416548550385492800052178574342443532412739381011219648345714876190164703532770074889143373142366334583806740721363604566356782236287408152418064166442495953487670421451351049061340535208068631072815352683843668579484267597272381756665353889579485157948342069172751162807864503654626677418883916494867172826867755011794579223322476127265799568251316298131605913956752592812139004338774001787752245704907827744202484592617361536214978330260555194293062639922735859206843009835944993716576038677571716528789939421179098167162317325040049412224929766594915832883169000633094573653699298035463382340783586857237270178350377488170439523166359144160492325441307949303606319905003466836368769823318742760794108965550010449180649739355379588411548497996864877875219559723719614178457983958273486632046407071678678766961520512931093417625309961191564598376389630280423004957367263782123308175292968205159956561437305734691712527231864989898906192599830590518024006341936993078251934720616373969115962868812385269093161986425115912956628691247152818550649326394062793000257381843227630653765031748194440017242400490963202127591026590790272516293447245969014583829316289437766158901088470646991735475996170830450917566030107543966673828962353478328745746224907909210666118699278600842330434171783177439494833670591715086580295805096070115800333576936910556578825541584382153079933505752349554133892499622056920790696364372032134491605297610831610808324471765353031115047970932419475149465077367259298609939922393875264079701197255196538162702143511580911735617734292275796965230879634116775108713462453321705804081290014874264395080078062226944770206062799712067077916524475019524688327034538838306224993444455273439459735814725286967507237750560366811141017257941063281912045680068546508478507099494808688841925305486494065446018604817487818237678713188854113887150148868393913314771716780805635668027762698583106841997901306657897311016198431668812139131329404118442173945939331652808751130328460001008622304836182039880361716621787422242689442936444475670752242833642470237103569762104746483917209606901812725110761066939356941058734600972898863431103893059120098862706494992824608202121660770268651377153985534673427416513997586630048438824480826462055453248306850036803847083025760776923686972999917457279536040909205609279279817765951043028776380439427513172413193672478103499811903915384850892511117549426658979220412450663527108127768879410113658463554690048907232326995917349476336189304115106757238658932557794289155632674974350673363630773170595622166321238252567376862091684838920789521338715058194239113540072343012606369756394693745489802693811070535781480189912795754494965074694549820633240920466607394241680582643019205857235267907981250928760692677613747497626031457513622819155718340671020888139618355031423989774062156098532018790817373557501640855255771190536435517655569290377463977951329169053564021910342416136372946500020330656964114394856000011449093500810050413458919976744177941329354592217964217123164361619144952891505525862859117808498646737009799505393250074429609920534125516717607080641140348732006771417869922979552615230714829891274951567551800656849719007292198933007913584835604412115720864905030363452298643495490424009047226925879575845474958390447332894662961816559046492141618356168896571288916223440403161236611569709778844579903821854419137184431945790200466924949414253041230217073274843529870649336343932719235835657464910131493002374427873095179918096579730389138267506107596901304737741232023330426944376867900986183682052251036908970000945612923810562704414632110307279692771387573532705645469162438767244291524420312039935635080164267113262251474728529717652882009973884228645471501885429807531899875080800939499646861481465069192283120180339484635642816903000331543582772366403555369780047512136601549945952206793495524026067680522644430613993466033683874586653161309492895914966218819124294344779275799652911634341161311804379091882080535805268119343152909872243490681864754046563405103609410647398100248651070282612499990392590819881148151517843695872256605439880056505511478590597114779850294698476808103332481220743031533919585348724363814528716939615527370612354845687812109935527800205830011319361537383075095619347284484943806100104798797026952012782313325725050803909471781606742756296212123264466877056728283900804185141122864690864697063863118033455493258098429299364859846536094840643967922858131567709521442058749964255792337024369519946427911661065722630050252522177684681823923670951779014019008811698822618658173810577239324128027418666157016263949414307522660827205450502795462014201888822809363203426263791462544536333855835754513815230888306390965863287907393122614046384420074554342141351412044424742019185852925873634475612901994444898081512800860020418258502416313444223979202366725043410963417767483180013357345268957866380116376547684730382491199234196569496343893160159193600381403106485079365822223104894626770494078743705949360239355982017396115112773887174225872153084388329015001450963422556538833741613272811298901644949958099668784681864416070907935987368977306952516034326546010175230430050858894974043965774694232697000371375892516323891106213576314535153479059606586319199131908464807943074213468324900489145677564796345778819424721672276349349540678281046644301029329065022497098604775241471359080032395964426303428987932436217212177688485925947307418252423210980650080988535384472752798898449950848203288677558195441911164329830456993217215606301836657170771365854763303462588056655840577462198356969712101021524957040576696030317527683872058189655940832841592588442850917172405925243368524762183488668692932303012770388689227876880527060917686540794384156474547950822791703707787049886099334266170547862311066615206993665368339854481831017707245193147136793536490577835232514515879372443858713215208614354162322566283394940592853779872892651788640817079639567413830523143933653143913256216049266839852257113137693326621607378577172358474924298944389399140397737406957917876124712681642516890451699314400637235722641638549994993595022544774966504554646621585318475311788978318890837396897659416394391160852958663265773381338386251446767083276827439956721326010677565313936403316098005336009671852495189057518291878633590061993125357808333740737535722670351882573364764166240010543625612939333179110273925142109325925991869649345313730336443352349706185030559592860869484747591276002838753899756394771089306038720402309342987482278343286322889055243735329521275106509761524302553441180189393450815233579279311319081132139165980186151101008236515485934141120442561764420910008036015122155425093923645703356859274464275988286421941451203533710603784062164122123693532125105007334521137445678512201262070201570568554589705797006017177773642876331101913529744613981644806799811441008606948791849437662949941520942912442813418208938012830729538911542321382745274852228206914503866445445671736139180520080830288142389393557524789693178369171031076185562123190125518813025640530197384899950375353786973067026293725447995854647676555874256325352584821776963674416946738236316750237472651416196319675799310482659923545147767593572675105396552735870877072510507895611355041723603005953370962652804166332048338325266054112756621183972781393864173024634835494542612887418435716099612436904623685511376941785418237912494404367261537863697155074660400213752891534281848005245713540343151315960349407547712122398117994894258343347398484987971732325835653878371884610087666438246832159641337107325333465900730275074174834731087173482099778182958937148310026731945769214837791718496979721152855205184509912711799271488200575521294762005180321317918779260780695386877577183452913722197939560403695462304343765124903705693456540873177198018701802805732598788354577102822247143868564652152480525145333564505430846101143418129046046854181015858493092233386646192007891556286164549076567662504741091280020462033776707445660719885373586020832165179217934257863323117161317606656000170985805172312900503892414959965176817850164379212372853287779336959352357531180351141000293827735689468452932397346908394907495477885172313464121921809039906140651209039630845393973733014552199824325170083229102102631201824278809986270505715514524514266030973026630810263435188204256066994153032591402758508209641770972774193400214562360989594860018952774885256658282457492301322597242908530451165940777506236738756189057230904782084438273763466785216881768514101921499848015504984464097352643751349476735145355629222227581078716624718681684529775215380607706661375167625245343219347628599919946915149823476194739025974810972123947884544361707690954719591819382953100666142727536000995594755443075590818593637160228369264383593018906816592146781057145574100878257940647607618245721703311612800525193603515981613801956905884919897662448917510434936072011030884846161456503357501205953781105861799495378207462894267122045612903826967054019965488583676818553148812402304236876288272392011284174049758409280230665792050808533537518618969582520526113766184577154812387136637179550572377736207529957638219052399812666947756578433295080627521904560438500840672963495745628477267529140118118478316762222596080602168665206798422228477642264548388267450953215825867342740518753469594875734529285265574865657310206695063134300893564884360265876794970353818391496563081933641553039585618956473993834604496446902003399017862179504108400928432011716521403311561040937312993563395449807962191349023290983873497941983932432465916475769763657800514885457907818108963688493708466925644869623589195774598193047736157641313901916997579617552673398621298318823834166285305175687330844291611479984915874000259488835573404046627347206808503660724618275410589684047753028375901877217445863340473839766971417915141113988311896167494267833607525552397955465709500090867382371668741662669788196713111560284144208723419011039630462789898157377177125349747685534914082936333657400056780869966657482466145257703406630917782741492106625641437500861534086115753236947243784516046168448294772878049256908529736340445940330545453032412271387833368849735112669103214794472356359564464987336428659691959750733573131209869705430429342579215367397927406308112217050141110159133738651322277545900799203407308820776925149266497747029016198772610085059889785187526795212749369756206099609793216870082132569214944322457966035832509671846952457698005788498871970003482567605184460818475095120022771190815782081590982593335330973907889152915940983486613884026505906396760141020635103606888516786398082369786575892098845719276993869980605304191931972892276054025807793055824337492874308932880292320389334271175858228497671070486479653820212776418720197249327140534272435477206841156519808795023650888358314727422313271982603231511402356956457210847809315482781369884066074509226616838363326431779841937196033534142246184308557872745661515153724514012554932003411012387483955354984425021316996046560348610245912256438923121731920846251068354538589564202127390651824228533702337508420678879168481264379190871553983156476860852053808533146831391141553421707666791794049318509531582219805564982181769258544419956097629877365627948938629378658356317747397273707997263189827155183692928861035585410255642669845024538050273731021515472688116625469296268872096927280598944608831560247127236917834792498998752448589138588238459669552992879324394964092223865731504272813730372091540665180565878721288830609662594496400946183199480682879727013475109757002036866197909512019809782552393572960991519280470489541789128127542465086242435242765632544069385752473131355236728367203302684644878578830464913791555268081499345010872263347930153191578990655402712479787106174737206313749419211944766128534243416412158085882571967748531328677598774802221683018359298314319467409215992965671493427039331233315129216363416394707653537210089641902139257834588364528264699498019889525728689139379647686452554145974964281276398489613686720017221724388191442733171057756887640411565562760184712924111621906847211951770290540421622209593776730006501990080032597031464089135822408179962178272840992287192204545369774853537795537355474091450706941449617029489851710839626945819147607599352442939996070476315250840280910406332333476700916256886392332354967967653913892349174770899729175360038627160305461664604789489192009186895015172332657216678110650415662198529797827904310959014617751442515874939574395809390013394913482385879968206159874174221432125739682564429546294071173299012972636261491120416570861552495461871447275319556057382414357705193280590378978605146801083437155485422826914789217228748399433791846583165723258877871822478577040930971695847602218666624174537402880513489883006070965776401834205280337883847056879058392513187312712445365977621686732203172918311099042788058499256998557962692016542104336853152487814453836597519170299415968726132788701559526541180887510336692719940867532771554681862653516686883993552264597134570522957644309388732868092418846625595113516957249563928576718986179446966392078354483243047830882301915419226235303388759924422798750842291257521300992646371438220978759106289397875389193159073544754528994184904156583599368059322662566842309519122637989249934912072230665150495872091123501887829933649997719892883688974852155142557672302315492830986832649562803814414632733227787050582002711389759189847867564922722033177532396715902877591215283358188849704763271517071652868863320396868456701561942279923715120370460414103138958289944117861503912885651652023409304221179558928532659932726779701374436248729071437967646220754731124949849840662081046422772542898351463440023569634352763858328488790323354665179721763256380148337074995791201596926165778335141793271522144931660978346379427603023407624129207766838322643851987277601178894001553121183001590187970714650012349742880638223242892071689605470274812386186910265007853262814681196698092466617707437384086381331968844932656822630711480265938782606466736588006889393407424189608418937869443176025697845454815714034146285500658564160270428860783031221173808128147963373615656688925091815050483025242486088629732025139255095777501153261154564358200040887511456469860762641768188455835006060732482868854279319251306961640670259494649873788202384421146417270823985730662749947554535482250034066641814609804847780630546753790735499671277352326951468095761735719570457470771216746919043706009137568888837578024314167868089661397829424848393440720454022587434373023717719429907034683600390380951790169752574380299299978446915116855283916222591707529099575538528829997216247663127126424183341029401841219382579796444069791754667465284924535815751141028521007838038929332188729599462969916326576922152597240497057917567454040946736839124634907223505553022590710063456446758399109120295153803518991828096313231382291898652625289032539237263658901151136432192451219871706436120659726030884293611325468219761697983861190052281403790580522800288291563636803083802967101369148558515429835338514822960259671723906416465230525824379947378261394248932945718342961503092925329299644790675256127053845254635097097305578935672158421828816957443579680604870631344280537189460560309302327926605377022305294764368005245940880628770726037288061627457730500771960214132223736692251695575806764474343341092911579557812136601673298420521455288539523049882845515880687923505719963701155270476075914513909118868486917322196294551277762453905311762296903876627062284205682938015757342624931577250547094927340150755577014003484715076598597102557500795960486762674864550438183425737014948312804633381526536013761461767818656873846884316295886550767262404171629808941543838563992370266086949799567152059889552791393656379910841568938439260533423583233922365406099552492593823025459496530771142321065882536087595012644024460901313350977814207780904809596084015360585110458819322881910077789353346240286716668098167788453284401350210519602502049062945190384912892618861405263092216309877640158126712523340776896373803530557708706427737204652490567424502934329254643833227773962349169882747902635592408370512277454158491893275280081365754538683694487537478204753680529641429937761631214423167184569708454543929418001985405059104908151902063059525804995526452211424024871122634286886071599859327256221770920855211397187328867467430698728475965952678548944995102645906780175535622337750219113256514530755239220666066888254854768564447868268586207231344440695617885821354274301438744788099213226843178733952441738072933513497705921901547012145840187797789225541898145672121441842302402714743500011013487317291830364380784383996421139288946608243711016551473895099765465781288098267077795051778571998176360909705222389418000627785756826240143024403824537710945814403687906124757579241230962424852052251120872317087018338430705287170236159406919527670409259124527662378137942872324060228364915904417409443291180323267710108430255283637541054349258023109175473439730768017109257665007192458722505635094374193621856916610444537488721912380877812123682756521424315766875528116647124709933347306671055698157477288947882350036264355094382515699775631573369393397391621113073788016516064496923763282475864006116980994989587056602278543198252027559395756392989397232728969798887634964143620209009543383268167428080030199029154308595613399669237569920348802933107582111996868880843839900989109047654058686838610749729524120975790827526236972221116277929349438196844129797678175996591367319855402187698308133071588452146595574713669357284752565696289139861716030742648034750851279599583605256093875786476766692399546091332186036524770745283134854716510824442178933908823501084760619434673039902978870564769733600900843937605796133023492735018567193414326580067024075911321173064407951453758053131980221996628606662347415874154496193006291066733279638074247920103780318993493294955369760802436618501118455957877246779174338212626112634344239691422867132943469817762492245158682856537857688241336896558517911145688736840438024410938320937602824039053501035195157781237728718393354550309771836969423511765613313687345737710050891802573968272795298654620865517581812138115158162224560146263262285175882586935791965341060314869427183454629915606439394307366738172399702078848840226003055212726425779394776147728533992280061750275684447681380374239836418194864560978319734241273573852486713245371141235258888961359023385193146631084184323349075889609408396125150218886557532320308247457910186355632132785927042180177861581910291092007346861809421178030268345703935168090627334051600597306826813313732255904504327788797029436529669737032308100083308493612167097498292840087469377024908247551397618914229584991450784584983135780362310414076726259586054257470492254127877735003274427963628279592478098602922261426643372830519428002294145452837306719363158110558586949078589802982966402603666093779562881774726097503754991188204410285277913447786508633873066224237820966435632975042776581426826943327536393605169058311996351191562904926220142212108967458301052564064625424108314023508721517840064269373241610779368712155846100629366893687667356142088025991691594232473084622215149932961416760409103022318601870444915837106714310883561911740896609589157245037441768238578446488734859394978579853353316707075212155800244940902533387731318011620409998081064760643399941692289803196000443623269609767016716269371745202955312520052460759327321226644726814517811162482279958961167036454906850424671761602611910428520067275496956133552776430709152586797989529322719669333267095736012839552201798096734110743156881865131692337503295494745195987270956959610265004018648750862681544883041801039747717055235927059172619689315977366724980639323205927941355637936951670842408846984517299442068103544398803750160568704623667831993550969969959626906029627965413055441567035607362947887154587611717049500156173228947054699518384832172786826122484748591619934678222902672143791710657151676879583354438635044335350255025408073852200763031601427472224185910127053496802159175569495100277573304571426505275040383146724005078043154338234224439543119184219762018914389756484957281163485202139059251064097153867025100334541116375256298155421332736964758310228989662821550085755219320622877761514403701186320791321899973347582390553190057120404449086375613489717377075312687024130609120225399056921261859727266116015513531053100724789523416566474416125314453660135899278731341243158081019776678529399646497103536486642475777580243404604776012164014975491971731376388333594425865586807759625005191525226254471846445837074292217879394310284482125750885807966686108679978811267215939973070768647174258814389006059681714059984652487810932282963488428281932705301078150867677860845285705144716276889323145903630871199710577338530796598503711742414485194103603987592289549343531310226954519325373520649283799192912889212906707622268337026841172284725725225945021194050700747355486057655868856297649565342625345287760915984863566486795869322718046257457833180982586672181226796001975525289941761820430297435564881070884021956093474816495190278961673686031646863511636480082193091564340832792045367181093774019015856926700315626947062521293616584939835321165513715694816163948276072126403166656722836088538857650919609472340821457346956981524775054435820321662344747384765038610530556790517113443098164914659746361312082973829065660465732073017442818177431537945470377605435879178468835281414485817643933142252553965258675316086947952019260803611246776473373076354851306058948722674308955504378688975593640942973766275735725188842531028364396187163228359913359919665708477987680183984885270403439739394478511483477668168964706516716725039677859881013447824746576138866462082089182159393101080937100305487097636938281818824898062255192702843799695403032853232762434674958996565592522508104706683190378352819990226072719184020065530783643154983726336502172809061633639850035228840945776709936801815396311931585307244935985935974229510604384863349146870513511712711195538663308553563483836590788070034845524136229383771487432965435161330385521632113446080227700217511145275322310899490035504009530724603731344921415030963019241343120771240900338279842474469848290938097292542860152457701003837305592223763061065808517249113247578838947517118166238673009041530288483138852180010987952365562344903385746940795169604471440493801729673692208362782899546419050225267535643762925669510902290705991417965877643186031225239693827552292934448489831683422687847852139231567753170489454350727469040309538899952770651004322993479313335021620022858981106978835325668661718275229845072438930256155407441390592639610696854464041457075457441270375871936735176472026765923763349422883524016743369286757441343293501615521571696858392194085344875619671020378100999656436001593412142545971444260576312322478648880280382075863234345497608725489988305627976608504118674875773087430012389259195103144164050793319544261392568183181114216000215782140827627624121875725098888874474555339281652169238703521330450425478985243191796688303560919432870641079538147866038823106398079422776290912015028087811130458384799868266426626906179240757079682747024083644772944491469668677084698050728642515463464637350731884063835821836408520630686260150283365008779229507114297125671277190736105304472383431369681045539851898234206045730629518518421654979426596395948020040709718166845108440671207613821723083072178913873766628981493808718257034554843242753751143846483045820016829003532429019035087640792123671462206636512968600497998623396973948427548582177679171262868667244772386739340895336594760794084382140762151541250589741085114980000581222599920563587303037021466549198404638220969444201140271250664214864321122439588972222346391197494058872365365340565443124044225340694867090472082556141555172436790327664762698064896865785007727542003980323177077335803129176137151385864621306872679896031476143788364848068882950895191953037458800695441635321631062220529931317172207554790314021336890136170064586041855584196393969817753575613064267566338192268340620595465819699252293717811649903683095883698943635931948989427677535331723269811365595256600200885360230303021061554586724548051683133902219904092934025309683880009917914746802714968079757934974303348311433306108321958556699992904997186863499873516188830675834304633528251198904081591572924839038481112840040266323732396802725892747136981633974214514264126527894048681267846318143900377984312844964665331037074309326527857474154406654421840833638403493020936453006674034461302658164837844653393990944874428657390423180338209926039101176533417214590250085756461781884137372729187803003078309566992591766125911594137393628715866841699616115976979185111310709097959034820711768088448442551140544233031476060653595175154321925490426183073841106465883822119112403900804477459143026558606971162588919997830837252802408348093194614723092177408543725754312814547486699565386392623430031621710098788128110021313395827386289117198904743057597332718451973400973191319736329797418968165024056138006945828799104395707916251616571706846471901975704509814145258172278147430101706092949148396771822423859052847268814731011086566634099203696027976868113720548983646289744382150477531638199008763178824084779580856800462941079362103602238289422857451868927850220090736744189098726210960404510885140381567344523325095141033964537900414067908352527998961411695017664873227538906304969185153232677405574342416422530747942335487422940102972921030966377985974246792739429654381997355043871425396257781878576291639747401794139313656445312327536611906340705796623351013928319289019144065438779386802191162001238885561524325051096360272477734353160094328542281716911834173702087034401510998137962969285973145960112482109652704211877896434471004624025807883964812256075427914084011619023662701859677792749234938013000732098817417157402448397810729231338830140952245193594088399636532885091570055392296705213849063360940214063703457791540198590991601107664567713474841330254753863763819197500815472108998017914807429325303418601087824610615622474037492153710383101084775075573461904301278208293791563242258062476928568120708651947868126562866896989487312688615617153651802934436894472880319988449439900429423226388628735268626016769244798750450157343765790761106512147650580060480459186527723063637586330399139370589334955301709019305407878394557265655563954768284203364344765045103082032081856571682363284810419068226229353007665393911278187752458971432772511598370113806218163375449122159824162298919391872226828243690031722653288884273897967224201231907407110532667774001023420343550649070681851848433254687439403455184742196661963416090261442817215489228393688073193605362604019902523706415329085171475611034829226974306093673532583046244783557608868786886098151060027724642964657726843284794977681456832133595937394165429755723526721883043582202183860002949835500292384265385461817308678377074480394792689278038447933696952608034723528414227313685393994111735680494580998791349592384228795797766892608224264933807291442295641695205355471024886110542527180823967521478429301021676293713706894309992105610685208636937851689098478519149329924500127469857687484674434917575661222255997065785762405329464249845714157303800200877075414968253311393335207883827525582387279409393141514860028735167363700468108752058960109351839587903325100116963917458389177299419873783256009001370216610832649219046182681596164794242133651439913021798512504246778803921675116611569528392203171840551956402668215536735875210914341139741020505223691090480224793116465841491442902361628576420277353543395742858663451853529740126443652427353343079645714860469255362598377407038351070145957379945833332080815744043912343295574306773636025581477556015618678893395876781643713027067717639225001330382419967615583847435127214455521350239569747917098673342437273456367741332709170922577143065687345785633112084875005002845915794504134488150114363314589393660393547936013161494068033347588039046905605623963808485325359700246457692082445870430371936092404447584168236666010081266046729913844213944671640852279988877354935835176137970535959494171039922519610926272717700319183035193668704698104144874429718234056418947859762911733117131412278303053907127583377926081955218446179971327401584914037217050214232575794917431133686945433877559400224955991893094724772366689519381426210200141028994857276723597423544646732081715338108594743367704591334635732099289655368145201464428950303179986005592594732911475937787088617324191636220547541271720308096077211660303933636357601507562272299483380444900322143427375029917234612114624780117263406161593499970914382885959019606381015102191871717302121166054547244261224439455246644896287014568548792283257153617398386676269707040196385629634948052795849349898444230255561303566999583890010743926078483584101264949140117848071136212034967684518815415077441756787184402511231702501548110649717287967449731192178339718352363518474858716252385571137895253171382710892366064335074926133569559291437480250290696743236679312119679521533488919388784308050358493537834639436377948121551965815715443429451625373181251531459362064798039585963373151527017691430617745423704886371316108676621238979213793015627091214170397245289098942845811815069805090351411034785232385355511136416752467370668430903062636314068291213534731679501956607423792852391922641833338401460677359350879907856422979821972159328908456894760318144734433674284919010507439842769746056796170512818742996759706688289369097748433971629076150083908755062343536640818342091840973000133076239899153757610777604440167501380637405346358400173218543756183646360284964848124847664864102104129992512867783252596938854966502172090018108274152067738747423835415665824069923854632847247154131102861241219484204250810906062996394588255894877457093252666197946804840378999853993804840719332243637269278502353782940392029135134990973174307317731879469144183348534546793308254637834467167133603621898781981778316967479680585775691664010757386153267281045018797541878271552708948232878502570230899100054642354682140484887950739234856633089821083237922985929935933190287360528359644006632848197205562624952268397741460920880217329748513689451458020180438198483716630500333402507106225760980103755224995564817437375364828812850569285190929323398034417905762198644933860123477234043888555827349290149404400456703726704131136114387394064112293038151221476910875825265430037142567170216452706033051468373274163000772419534757230868191295356106925186354672902067861793304806302565803644790355885316088231142170150360436893612394477682240702624586109319849335737035493825685017886669030274534048430707355262363970624723633468255152560808256417748906127827807203539683378867035115066303109526080592092690489669761784407192281196083059057374993296750720076268752284108307400163000539346447134304775265934866197296786494970403510687945100355141023817629151017394677462697120925991334257793221865074751253066174739785840104801547003880544933578446607004735636663080330237391943432323259359369313917849009576674330675171081815660488751380217063954098523238343655928001363168984787388605713891028180339337001553105010411498083037195608998191529480185712472373419926689328338541592940470036485189280235187121037669400049414853890942048095693746453984434279944345554826876002977978333170621014428099378834894900334975433216041431657734476826608619566983729086815713215346601517775042183263146231775210618535118886608735907525126413734574861357290168841947678946814392468672378510715214985127570162711934667378991018746966770806516756405888166474097944534872812388453061059113292732533995228313221664897930699363831644236290377483490957209514308585850206896641766361426172690049616522138638004169345563566232941012847310876332950027082367042237181095678478856689292055869783981903891822649329008153607452795230190808368106620608676524844436286583672712252104585030264342146269003398887008493561251707202224579171614118479552697113445117517697397273151186043300919875120144423605287643169246132264402571419197477131236691310893960859882735259582340469903954360421841356754833153897203682207596021348027573420596659460310421379598510645151570964507249530640596852610435547582740030136072580525269685406922200047208195001415822904562278585637046821405364202890608539700226144607160079064611876183994253964508476948776384329138635251438620225247654187373341325411241373149397825706564931644308353617291797694854268207601010610269702077340141932658141491554935371915126255450822596442858664449324182993259612731981354628872314737619331165376145031242015436606099915552546208002676774721136426804951428283726096180047447984447600270467931619739736729945097570310979286906857929288819813024981447012237571275052550739309335409817455850064853442555474749596119240375268053782227646483334968671212467570424608939048767750425304186614102502017650333639176653370566177446290492564513829706321456955260323215036081477774172652296988818829384291781797400173842571513547675671825189671730156031822599691176639380503180117152513248291342552774190815903248647965673300856333138663672657922731516211451367316370582512721137785731188909416864626587367044207070982401490103723485702302457477360417219317035277535910739518173064353138496528040184784136786615435533239033813136815858406159729202087549250437331139418119381367138348875005920905271627393178581056794781361372493779227327776754999849511046867188204366904303602136330958375369947890430844327781258138354537512942074031898213560084903406957956489599415712053988157750536681004868649035938684396442610412362568080018737074811614816019508571108429951563838607000848386675085559252954826751790885115546631751849274288298429533157574347282554310083329787243722527267777918410358460747430030736026827360109626379981990868882742299446281582698706284631546835455298149505135247565937678226131249439444027552062722340696431250765642679173647816150915497142634948589671440692063195189558274586586234547558867475406782807547652217344975514014843799037990477784214681314890027853860722093970060128548036120130014185509425679730170817585285359559686716972161023498848759382663608059344635590711697929475958239004398024656706549440116831461294051762112544580192301695483620410216113909094041960186963671982014178013228889962840058209469731113733238417786733983281268154907094550446051718310856027041307666797715766577716612117042778863901098023293287565674324352472903317802624504542229419274029855941370543382464516485132571398190425928118002726235981252884384641847979981372512715288966473869099974964633443547407177847671795407541177743674155854602714849811545314517030263773884962744890832564379070657784910651138075351699865549288576718080795879319269943854056697287489063870739185853022076217366814728085689746581106723949378493027580050134539902362079769303961539234356776040784051596210645397044076937963193703910578934067748930063243962545127007553472590380616054057163941666174885753599643006942399506042341328861503170269466660187031226425418464943716240593224588940269023892537532731874284864620803771918737382889544819005863334716772551471461903132459561124885406565662167966454694787876626627692860674588843121536568751901210311291546825475607722227630781524553165085043411078888033877598234151848411951717936002320349998791445558842505747090216483724438275383887099475542937143066914533286650682834940105639571593634912127872751011422285031993580475146505727619979204528220997490031290951294733327921040215573880045940447966707725394356775745322269058211937122689694600132358063635979811427564503639855556274099850956309404602551994286967733243847057677258648597818472571290002890154372169030325653306111544758953518765272932522835380969812021927444410433155260699447599995706746535286264231410052173158442501552232845629009486021180485334209666684441320109463539725144519008092433561185880603066282485828247326392452392064839642692648570371167055822915842085540547004115103999667775421025513589770389647796477511793088865572308513472097657281294754140567026252299638816244266519803711682928712103547803751704046218657166970597452489699039723670025549640967915653103240747571628771141514125957804080400913379753454377299467899083965941433880380516853839433256420820888734772028367430272935258850286592832192136772003907615527894927936243542817322063789532135215384097986968197055298361924310817998885842916498777322187915408515836380243365276344160558660257701693948911695040869205530108743342808539314579927550201266070554984318179458968743088346546939642999178906208921800547473842502212884571029497953593931225148322557742046345863720283772698863943766918182969375092525237069283431381943109374284496708938030444554469719665392039159402954546226601392307971800759922924086915475270179447194771382649310248115189267691100714998060381289701123887466685884803167070820617007296661837761526759456076007922545527134423733209017925550507244966152198873909870694044282710711441836335965265811108664950695888464216787417772831202775508462412657561154516976641373669156616037971870253224655547264972917763042259341185001821166171432169298368105606632178392157780802485734357165315044407296428889372371201614296204892480655525479433409982664700049385122377087896787259178777540087602372698959852451726088280711065747740530998792198465425938423656107577425086398882523942740015061474946552479827198046557412620679974294195307221594367315932170330507246712439045687559568194596606883825711726989508629441332580953451624807979442634740361135322790567667193866455445633953585372375576030956126804335716927641093489392968971592428123202971789169587501163300158644735527269317149386729194820028154366458579950620070103705390393638726780449065271872536297817078045598049865410788225585129889877673229878183641113816505189332693616981815296538868117268896373600228920139732766335419364507069476759643989351914707157292455724080114103688571352120686602969014564543861377836749451251134323291384718779697445416114112078172261332914958738623315969364796448324041319968655825453360172802718544509807200606054430041967293594697610035366202091116786759297607067570183482044417799156798907025635630786760422068828367894230152473300313527425028898775876884463266182430523641698847291063940379745507445589471125645518625748441087804907780849612083263355053454027618113661325466445293337386369325978560652650515233342050060773319304728591385878268793687983214747399623566584742520814337727626914537883098366358417117016778756321900546788175740538788873905137628307604467828124025854603896506684558679437869057617393751000118828586330487160357114663051418848559066568559735689748566737329823355144794818336847358731522581473922347188625554124153781472775816029412425076026617090172313052707565182560265007881444374017631471177006638144180457330097192699381528483082855716754617054736879596891973445612113178086185414342187606513001328037671915874848741737358944161024566908329670020240174249180181243515896451591678755429761145144337973248913856530254356846023731142838557122750311408082649433288200569388119933986150620641894811631562270748184649595243712936028277375465886521896928974945094782412650649438751884733901716891307908008659744824540614310876893575318745230310397561074858575822512955907593544430392565101195026185933746624030301945560687279793058749377634599644362679677789347293805055196774943340154754139735895374591349379644122511407127263307646042998461789336825220704899361807810876322857733321847985324589570954035171464600634125548569123968522989362077111824286175223372872043390183169819670572114168017458590565241588604356944852425757820122784129652746207594056531612380748062097823069167118800565395743349948738076637025003493828504514048288935236208380036508708341042736386219868752859336972526799530282116397318044651378206077955720196325728388947024059151542309168735599801119665183554667949668380173194866549712745665359264779817690546889790472386435986479500139021609188784396872741140849827573731915308097816970697321864284525344862117373128773735937685685851318012553957616897748919122702042034062064792345393056298520184659565974149535611597107093670695026991528007224262860795931153465521676874255943797268628652478386333834652802287282356368190925517043933605494894564046831376210170292843620275462984135526948873422702234389296341517565547531022802938257129934472956140037613744004675053542593552439289238037702800065880217080704294058379534596328456497967654442048613157290754671059525104352334207893647972778183293399265044914342790201072642651923277810361293655849135187661812532490457233433061089794214564194443858962885512030763718592454699792070405162145571524707423216274226351775064632906921011543824111936327160704516344148480186115216820833383823532268604785570702850533576716581012848329614873527408593847048445070660416248332901905243123034663364537382231034024446870913245001817374338022114518839372473950049098198300516202373827824063434502421062881668065474785633852103038426319881844357516697269253227030066906569392574785408143073003765190643999854669767682229792192047946918000229734176938622255723876353547184862996366457452788387031274455833282255041312999841768061208443146469262539835009062653477062244725471234065811583818048462612185256551858165462511556393935419040052142547810234695634897209467702239837747149207068104917349911991477273494487202483648562354510505732448808514102639218003884828721604965673282922742704288818380994515476519773867360553732655963694250434601902052567090370735331059059210986911617011710053443272017306831107763103612041921436249933891198928061184218929237469286147525969030448817845898489529597617416850494842749191054607309757610137819445055880921550096784575010644932547246365619748842208672565319820926500474226330267173510218691336261363996276910518813192652700806725690696943229097090030826739381619703775623852086415846161481694575221891562764222136229217208041832531080814174325975241551774143366351373392897609621697516036972485966789886674499436418251678686965661893791999075404872397424074200448313120004294418111730308659854906947886926350739224147458419412864179170299946706081531678832002447634671049312238776188710377499773688621428183791764966174932570174613157561181239641840505487909870957071390253737494459490475309772509531805297230354080097377924332391440481861023783477983248669718614048722514544645056463014361629612740008091045455625262472617551772001693357679823240922344614849549333963386915314570872973989065473744794143251600195758568622810167443219324112972057453840119096706295746544953540509009526785520719296715285873113527197908647698128056039980693891363546113370396296388808987827031947702513718740786028824920926022155692601350802893076996306942524620541533452571022887836128116092927736706220809537650819760067590180541324733565072390191815681831300339994719097408231130021984990912377559364192686426488915417921077032920698436519727820162930591345936286545189077603456173554850991540661022909853069082179421685031460526010278401594908177635083649687665516537536397225836915661425018606065375292899996955886767128959828937165973385192956990252104822725324355647528214514929166394444993351114662803988565708174332495583234841292721605738934763058375634400719949266161439123644219834093017935792395740013788794850767488080550347962350995541162291172293278843178861702327917323363441320331708937113653570033481318396741562528948786578796289997372100488135053643763144075361011009276471866569285004293366884934454765913426863157342082993613608740402927200530057461706098893897723585453893557978322123997704987461902981441420072041315663332772998952157418841116739634049197200946276031725284566775141746211823111009960414696291323788048407764864976573591115665112871847467409139669278881985202559958388733339606460556988265449078099053633011322510980221683516514019444256339292552276106538648758863128613144380380741997766086406424888234042320255174680930315902487626928592745853706004300355470857513491594839145595367948194196328588621513308631837623645769805127349794768526041017707194924237509824757645449380530799964589377644428590418647900166131730900135777956674804258650423559002252812362390263329303613041532992356957202825701613435916051616047130132387248422323901259373360073288594861584199141667619135971589690626248747859137117163855423225407745044119643022080369916568678792120283265713759117788612044390017035988548202080861907254215202711808063186477673928689819105769474267457607872828380880156997264641364827778407258824755467070582747390599464246952341454229653429052966305771387648263242401046343362994812624363666963964981534191241194663937981995278146928172421651351547294926744358223780309993842796039887353838688989612003118028670832424903472666882058611096676200759661436506686462647320164345458519961379004849606916954197109033435535790149555194064683121942827564950956105047378376574010166099326894020219686435182103037101600668746663007143284670538545103913886349547430959427060072848457787965245428565505109783105104375184429682173189181157189991310038156954165270361929800174378301572392494101032615402943740342861224560432987037376933699988785188367698888828075852948576611403708567926562771496283476748674370521395134337137643136562748333268178121458083442771096312362665434890573949464625465348881043646524266266234935615420266032923360775117764877669184530541256309553197380751006589902373072363959187895093355770103334590285254639949544530177053286517304129585093808085011410255880009970223644115625879988290398160319316341558034165177155708486033956915176655757635556839726798328138433240479895051712469386356168112894408154744377905734678014248215475075973796685866088760707776459205877141716596773486069774653908047092573320958955772226217845945746654871147773592274889640802243371386536622164890979896482823796721867352144072189700257995684909424836324696556499710705695356386518782265397338223610516772618015227051576797456212323426215801329785269287282350105550498121991032859162034634591653201654157294924567905076720741734473115940474588562031115813197343758760736389188669953607373482297007229356730674686749856140716732578426786255386929504448017124226001405420871384620234463521972593103717925245589313182640756029812156327693220795641666663721998226789709784615367899592259452909382822351498196647559064500806293873877860582943537939113809002341839912018948252429933850397335556543043991373766838464730606997417736060438641739012611664753108428259311357590402707643261827688391793610369446615858911178287249740389451918886570949982263109095550265428778241253737027738706614470014984307739158431092077093850164336988203352019949673518958121020565680238225613221006958650005924551704436666346248173944983170962061638868222521325195198936254832570122760146303944021928650383585389252355026847560104242466482205698378680159153644553705274714764398459536906869204441159958246547114583742191898408165107663861194093924702129108734314589485977778371690712697804234011551784558536013211989727948860433829253470779780015632116794420033184574444449257402774335450821963537731276289522281443901362995755806711768384634228765995854197843707635389670145830383099096117478084371825375183755412389356119187583103061650332328242255340350581809716080492441544185775927257769194904227929822707318244443274135208330491339786719905357719455539843606446984234944423183457677755530316056251539793327965468197095018254900219377584109149839299870307150928089489976008525493381386373571403222187032034506324989040938622420214236844268354883756227566270181102455974400650729791398962597882043326976936776934107402569781903897411643834312260705348228958186817154041120384145064808509864965349953461025150307649032084411626005161853412984287207671823647078424943290606658661490109173501855761469176993434352708397639731620519494370459330623967554120046001747720295409246253069912854412868352421797898294345447060489735039264218425133094372042983884744626797174243264761962499047831167404840744726735190374728186085469923166733677964456694272658388889847624981145674831194762083151149973990397982979627745588436812772039858474265831030651923376705522038276909624794914729760413363533062549674604872504464186886131169915005469181975675580991146370311508849449151608983492184877829495502312105396107762139188374339383274411033615896425404625638996692308961959398316067224958446385443868540459562707966451205499210187412412778596140475676339282140522260521015191209788994999664356420182976444583322670842645879695033819850472100532184008768223056520466319068107310664559880502194192004664752822420575058549126899335745550890163376044086447604782036422920558362223424209121756640860780697264725041441009502169617799970593212677985930362884939237705074368169650086202567489933727278108177590207799737451705576878272912853580260297383421942147813157282246396356763993554824802965339592598231209367327238791865075563889162014759164386798229690168306786252269463996294366272265529424523334953894664078147200858500396860351040659185104058781146125896379498782082550770858052661919778090716510270866736416343638895395189487589278207998694871170010894301544682587235122461250979654796925508010990717359683072647797260552543804853436087801416893130951210998126910130647306940568539661280018962957635693202372978971875380269203895534326678076711649749937100162049544940327036784768049003541579385341184611120818062613683217596167958385467830480671251037615129389439933382156021494964255380838700241164301249985145274448712578089538287161334814874997696914247892796876185111949033455518087494151410209039506660006394063220799437596336977790526584060089591412720223385809816059179707523823884066177254966715848367149048190378335689242966974728320216342889362384479099114860052845140170622307183283216289121807281319891771371591162635774445665044646510552111815850144769825414131911326886086122911051577822945697342197245856896964591619062615292646318448165353512770627678347009616065243468263299352715401934951050573134337590537378793057000504793321904499344578365624197062671767085562227022250165323180399951254284571260333950108178317843471945522570379149316778424219838336908192963662680177789493875309874025956295332784007321692375313287070743644657539886618750552446690410073642579336361512218006647866347731003088784257281807990942975113640372958399104329388286200398788605447388294356373301758733511144024377087319968504785392061985245979698436731063349884474303494219194793206772723204962718091445267620902135382811837397456566443893575325585017019846750840331454606250008625773926737131934779423874773530183244134347983258157376012065003367035090692217783518097009077668777867242063281510557114095162791084010826125973615604771983516729664610010510134822211473541421671311908700099673429853921157947330888091261052321473948665707487026457691280523643684437752773553799931194144426080414060701811321824059824305153236366497178786192988380444994247713125126219410020543582828462946305497840398744195873972057423305721316957733277363463164893236531764814575806720554331464828542598792381715740495493209135415226876623164316044023585966940636546600792759211353063225801873815563253673260866895099866635755974729714632803552670675039108702840427662945283701502794922540764115525197302184636101393290867790344656543292191926783849888439694057217137177418575084431645664572847655247853580896517547223176958370127824182855251919952048802375507558801713113415130649773207007400086259773450308181991145043588323992234251868605570786291635167231153594534467919511889099715478654432420601812414846311155351112841604249113689921814811568525998346041397981488831261831351057451176264867495585966816693676331068877608134765196157363726874267577981933736497009303816911291953093520178657313828899935806007149115552777862304085495274118163694293367563671457320477194193610903049921574887654250177941452240578467645325931012078377039190298447655932547655998819242044311695908602787764292668059779172576815439167624181380860837721323230183216455414120453994572635451837611946978699015452024181140060272369049173306771091530505194194892687703143969215981820554861236292434105371873639040598105863211500902319294230458351678751193553980418392895260948461724801801017290401996103412594320153084280861715492270248652408865402398132197781645651374791694193166375045454904289981467458001752736422348289814132401299349374972205001982548645555497994930759903081779148185536316514335515531319534156118047128128349192597569762874443895549109880871696064942360999968322454095076056028149608155697885924259394367537847223685719781004681486814800606950352553421644921813405857703293821542945262277450707908313538861063098670982504732497070728932485644960450836839935844824449160691482911245917342248863473921290088374080843440969239510751833441125913811099871278181379770215750756107915289929803267136959737811026648776584684143541375775876400313857736831390152909374966588964731676681607607133924361690830379673749982366297960672238273463583876935885974526451648222373156892499228201763630585229658793551233031799362746907139202143863945455957634010807181747192420586944201191741692825258252815154634255296286732307314954840275980539332638288563258494401509860265109570777224772610932480714511350620561332105084533562991644788187971565277938379017103837401654297320080185672549165719519650922216180839352262714186007448785886613406190934800617519966541815745034914443533573189874257494475072871433599975444947673915690961688278903323806598983401083102986305498325408763239311803610638039781908771875115405354136132041330306399668359635845109942444143081421948583358232560963755072597802718832228667077190350187356641477701794168140638765510415647515909100508807371835079232191660461126052187158313850614803598848264484955000157174360943240387782255184495622331510333187518516632076346989102532239771188890296813077044621004190476450287929940424491299024689533863089719970618471552739430749762209467028583742674773864598379114325961960075605103017602337483493205127673768549779670733758325156721821438544385251613602035982586939454482577305473999097128690239165410608959552247723153776646945703105503880935731352822437914994987811663373041656577461116062389013885929375823230543342950705639165450177622074786953309095658196007492978264667542510535679663278601741541448420317359857166480415113265231065399357961891625074232862878399768848926871822955011483135037385321346122650824841126713367405952396683974063309725793324502925253318319188787332483995513645922627546756958371825832281397637240839281548037008949255034298010421936349749179704293963243616780321916263234164755379786182108317362241331243195050465432464185415088860518498910742296796039363597507759233990728787914950866644356213356948128858068052265266313694213452714955509342694646043401678526135827224638480005609024905462438216297587493133706680974661624749328126597965507370018948004814061374996823452527173797641579971400471942142853192234944459135691137299562899228787566068697312013690646810642954766212130623480518528715893271740694838391465851698933315680240208628242167989357940452224457610415131276767051116926926442701922295893822438628246514678763531248641032220180792219131857997130415844242564045831485442374719880921592650810537256893656359257053801211692350899591482451605155595820082817098025401003633109743121831372351909960254788268355336239443767202466795204850670380856451232052748272359507878982185434846253272628514365141078219758643032683751767232236151894882285162379975928915616597358543477935439427839717676220941467445580194076276017063037447696583739754330507189825186636990796453332750419690694651561689853609993099763125063322189478991606840081572837566883538556359368901031192383854133907817078344001749041120307978925460452512011018786834913429131871577480042422052845596332702247728557890190834714079989091324997858211214246333212180560770462490361818724367593599143110584444452204459069306618338301892794966619736441680593395991512983618688547122445149215722226615107376323570253082971347465418898219231562494013098585980579757359631340994837875777169760755542052566337359256672110397606454356573032561529081004305101489765939825624798589476353926935859820223923438510100051932078809214762343313099711717780826565765778970954184689589526839858902044524003392099471646261639207732458144394868592179803137355463451665340288395002561285091995596008725469116116556607991387997871501861590825399888665412389872065071880002181809950022157101194173014367343117449261727867586223488877284406058397239666664306099437924901104014378857272829080003090740504665929959331659151838121927917585007697172054803815375382613621119127653946564304232804817130011437656415805322434870149427871025389179020265479219180778657791561204035042074249139771060953458080247442724880964976337127931940060586780531626481498144632095457133000744785534069432505941889384947159400786574313033423714631052998263013932578041367372991000728989633132068603737118281090297516329316220141222440350866069352601045693144087339002595995471728793845983250849465024651194295644559577593885093271546211406938152174181190149756113882963530870147370692963135735959901411415670230321565563439515790112798603329880357678918044375562261543603632740199595985112091754077030115546607888020845667273544710829405663992135709542020431933841150412502238536787665532673076379797817716729692219391702122199082637353958789676713118329327079408752687839143945568613262106921908662221515549528036863932389435917604554348054240708529549809804182248625804199899619585193777478517277787377438506934736685803914609952750934009101611222657999066413350354453099238069166014023834240653737251731790941549208854508493495465930906003978266817351309476932839992377435573644376348637311844817237305399507635933044607387150296207110621683049792260671629726920399550681214904719108224568162111135875934281516785896432527203154427078473016910954492052321982198018485701731054256572087231195589751029276100444036176722643844516048446561622766762002671626988744499743242741784040122064352888904625488789398392587111790223382040174613248656026928499644668385114144048220714463290003241732063578895007190443581210069917089071598985569407463865708210217762843535850882768255448889155638114923959379137383253214836066640509013085289686862274109408406488400443629470060053772321554785241456816812227444567373815829741419878653181130063470713707880845990958822053588379230403122296618913992874440495852282476689564681627614021165505127441469872606556612824764255883379032009337415003761663104656908311518121306482347008567165332002752493280691387738484498786947669411302290318416087205326380599464056348930993871893343701423863743830535563616916642788153279608304463281444936996041921999969449066508129679634945513265051427471259817616882802829405842915937306145647888851517546846909520654764763885393643454986006379551343334643346443855121263710523092424569678255750147038545971326826869852237964813461170984065168497452981682953801390105222987647718853349301160164012259937441432928011742549928976666182663402958429470216914508956550565819039180412042969430253372268629435596943760082921327020070756217850567983185770922220913357737717884991979327228248756177376843546007288528900485751082254573445992373879399268263284422920829439033829672696274462176379504107710870640970792257097294689912840366362216607282224143657051242123383713748886311589576670913158801286834270886215188664662210520141527144034336658047828114811578093299350868227617578076177199259298742098219318531338446676304100241551430296711494091458726370120740454902010777668544407228235082325756657572065226485257915811117473615978340892177796833792956349905372738280265506265595225183998125265498533301197432926588952414678229403879561195834254160628571288115324914496435720324135571321958342687682936287550636239565406535064122619156136656063773758101692684664755735249317366835801524561693134879120852128672738550569678720915460455446139482591257395276197156703397026704220853986807872972457803142620912534057158846441652460793572818672395873617882462867238292203158738096811500881931291523496813332406137189295512638243167652421215241008309506655747681370315167194354189225981243581614903050397928609471996070655432505181790238738839184730876849243584304661394193908593197167329695704040280351227889205140554327684116357938563531366988025137557151208802194587776394738950020074029724350564729132044984611025539517098066452293837788089351645620743017320056174371959127891996938073105081251839475688217195358388510072399179205820734739496900893365439337938322977713117152169829348153691505912384025466689131654345995023339153355787205440053842255278442882194948077684068823464919471657751643913526466220116144400497464590243225526263678390477293039428560907922860695790564635129338366325981275557389753053085092091438555465668748543665970946137383559402083697126962120810756185550650618940790270314873590842063112043960224385741537996754555534206432712695823230360487878509757280992630622543529524640061360576006329485206023419577367987085382523102075256633612749561085115931926540702290942795978071807445621157239762768884263105429135609786997846697320023031870412361391427250129854386087677661444766076148433484943331909046740025300087821431707969592733314233452231891417928546921127798624219528208001350100041439222510157054734030596603594918647970658915897705632513584310765504157993348175737569566286927976805415556059305234318188960630089449454604651761251654559830935343442260469563213158446141219481881705830123172536440007628782734299203568707154145974872691329644263364448827062980912875732066013458727831995443284513214505636585043283468969147167809999344485573406165418109172488173791283707393025279482284361386033402203434319093203020757475291682460388144319322731609542686271546076856409767310870568673830229756096566084769084605850453697919031541858198307041528182741570854745105916012464278653601475037912548443670129759692078158239470834249253410734081050789687687447579557929883599091883860297293656237638401978464505273178713657267874360363433582551410461437160635770831583229170056312259679292880694589045683067177634964975187578152572393936873156523337066789916193663609366841695808911386193159278441110659157322943994948737469287994195747228112661671959281496163056973601058067420114756526865526723308971868450058469866784074747838958849666574940644996373349921022137213301782779088547517762564905519060422080523691933214672242172998656601847496334737794550876268863525689164767004914099506709879528486142616478144675713221726765760265102063779153396048073463132465121900504256132091480502115957296983373097950073902867310681235553018567042161544807516551222624814004772728098749275217439961447694680577759715662964789181747609589687194148695781803503163891841415557218871991842509635316054831046005281119904287802962945285078356166797723722640234864381754506460694204582498985021909128823261893782808683410762026676357701379308601040703741693282964287401022218797941210902168239829582559423649801995331422952792993770978692471606130595193866758279606339942712108572792541640344650685497831690793839492854262833563965402674015277938124499366794091248945999005523542534550773466372020448855605740363634011046925064010595831447678551496660302193350410478019358708313861507437170359658402018667172528044158942771078107608238160826658434564750375235895475855439978676290868005218453081602539547306604484677069804654423057989836086722348542375753083009353648185832346483203675510103363245859831312242229528944788844970302191215360564227201234680610090028778377206543961576945456040637764449359489352793711904538243775098445243500533258503737103216705251317782368076516529603938142966922926386367426448660760191039651617553601928291377521262134642760492312786967610986630799041186516692358646137563044172244455054366613030901560522484935671101344584520832072649799305525606794247271013503011243472028082434253510770375757289432505710521908335445332308880601470894408154181489605185942083390141752944969857284135407456447200271339684332174273038130108116938933835252966592923119275449266436864175645592178724654816338359053657977239189849946153920731826984218793587440788987955037032916565404189309329154017758331497185991702771605955303697839438476489499749689841135698801781633183814717386008808631006329130185354109077480802876745773188037011840735548400184138534728716365371304148951886427292140368202996915576392864373061711465770336623269562822460421383810974193093731104931544329371247565340147591261967002521546166039196640984949180191209112185143075684484145268212982353329670607099391809581369950598419869571011421594565442957674862376571405025049996845301219754410432387748324773233480315215589383948305088139684141624570637445856971059442101337725512943539170642012011551844695349105056924255061510061582552606054522410288181473748489601301845891115068214466435073292353249031112535504772026468548667603936184110415034870193570559803566850095534296158319388114325729676429449701910235898243299200150206625350855175601414511099614242096629624128107759185614861958053681739763788674136438898278234654458691914723643857288060166536082310639970709544972298905197865521512959535702300370530666949687688496520282881816545673740503165099682562788037143897448982691427150687309152532054965283923691778346214615334692611848748960367983142092814812322267586492473031628681391517611019133042406459196367970514504117533314898188601683903711922834522967502863493396595621946594060973664492524988372519742349243997050113012129732817240717665983023469390983817580364189837730860858371803942407325726090903376955334527379865129540202856410143767492036656543675918689610245127253028009468709054057906865778727303443968129068772463076016900004182325371111194091801551352289180748634119012432117177106203116410086806602727868849452333215978495071973856681682032458879050626477415529142593178527022065220961703496410842916389748342886524103586776662524950849803374306452540307169594731625922422078350582709655703119935535753583341313918321884469033694659618593667600774658890229506961962869754484035042655364985687134540558238354532692589109129932399896811288802887835004189583935528208850658962413982582717337918520084236292010140675329019982408340039282746578328759942806594426888218678372589718989487799477055604221712882311343774666605023742600848560940887969799786818610649954397183289470888453098701663720733856911289744489824358352416379653485653367081799508028727038998513397146358650632803682576726270033313930611214237038984567396139905842887891710605145507346281616198127170262664542216294722065317592054166446668988203823000444067931137193223167926615319901735865355816415336299433695225659425559592861552660797797293987683121282596151250121156810267037664565956497151533786164362563965359410866468119689996572547436031039045678060337375741704483958965646677822969095371786714638818492762735669624161923921077470014334231425311280354714044845075901594156374868096573235745452402922751267258152879937383521867618088415954762924410087675171108918114508701851147890541568909402355042749030439623094843185942243255734256076842236433613208275294550844770793801670195729582106840603043804960275642217466898656999098617333016278402076355045021677660737735350645569022040450879472118405153880849248684893953381604306881189587061091336129492291067370294566624066568851032611426704421212919866583563312866011096663177199308819654303871637623686915087120005898486810234816064215152077886016995250680633742626811909454339507896564168849115358235398709092626025520941448881281432412873238644536913364831079172830967325660283334457763790341759165930756109371336651897670925805567867067866708844834977942499909841469695536469201977675742589324713988629807242460230504214933264879786112150070099354557612559527247447074684906466841822945794238551388903535919574913554147471734765670466776163966345454965238167006523409226189278358624680681183506685724319631293187320902389237656423259457401366545725047203767244705939994817572457713175181283959506891336711976369924661751399429757531258212901281153898536614669482313291913265028236906020193163610978051655603362191333793235591371043225686408930761498260739127971531846000806148792149926703309357702493094304129414114181612443865246994946940728238742410090105167364562697230798977367911353113941107430617792590394516742608991351415604374443410477690005716925065277795739600881711468155241469449044899327874804750925971183636196550967599771213203231648907741755442936365429202062729239790776702190686732447943524213198889788001290221761058573009390964876651268410831982212327471175100341999151527442091520712420926752145595304774327602974550445023298193756118768791194414104161431844201993046023519168595888396346441820404415083941170283921311530624900633156745877647697293659446366044483046040803450494738747506390027735244982674340476088420882143173190487504497209464178929219681493453827138841931883003196406509788534529889764288112226714396070590650438686786339766109441086446543856725380001907859135204448842065208997938899597957833365856869274589662592296523344111200255284652651134205520178890473734568340414667889823012364467380610902994298782504379409977615725358759630709827520809433785092018396889948473763794843555671185072579780049346999302837875188881204298889267194450186371371863232027374409719819362660605261535087999922411598622450035340955193539842331954689033665710991720812330739382734944487243296436886432633348751263511074011214935115236399060478861634136315057881700846122076709987859166007558535326944917618969274498910331485847750612354624992474367513914189324307314278919581774316252038220407693091433714379894339453514018382783368907353041770590170939857001830564306569023864098438278548905193599220498149183180314124330422415237732420090343819848040471678875605935456500305964838694269147864842617075470371856735878514244574174223136784587755908003384067941634695026161332850377519513195379097797223334031868799231887958075126915622164690361737016578188338473800647803926985543638588764837041280975087278593762545159924792925597562226028048772886904960285227009394645936343794676865582799317566636510836065852881134896454488794330735677743101279848055475531546494648726460723495846924238371291223462232732503454876369791196957375775357885198451284682306169523817709232132438925361215384221600634920692317293096076420093395288207007984435451199685940723126284013773079109314469201774180037330663128732961723330260339939106417116994879311389403632499928319989159186164658457304524705364293448007414844229162462883380141423167098930699805982099587818436944605497022150415406162942084995898336135144819745945250596874079986046099138102025254814221665877926149213400034638135965313765817299622259168383367640474141499785664265050215017475443074509075148769824112391121943910603400684624185153255148347619206760099793363951068056663314504551427288578163076971402669744597616657820208829540651496252529616159551922025561728834243986808848510327853604927317082938671780801354196434745909158624661077084939436368403585942116060689683679444315124872940672983309402660117723025661672554825213775019344778898042533795303124006914287250187399711846248694355043160756120599818481058440738479579859742112478435372415723925907003070481709996484230987681442906959532192946413419031862589018327629997308716479849701436242678298870988729491217203734427542236674052116866807803275834897311872444720898481709911024603994141826074177823595971221655512036155358054712878804409150807598815786920036326474964873396485913404132080784829455590891652452611896036285284099592553206439266405097917627412231113276274088878406180795396271077585791202567571331074740065171738713438387135940838847079605838198062139366229542181330885784397752205448434566340719088752985132328584227686689237886578386845832781298111941836733398450474290549183524874068239551046754662988475569640348265569390443947739755748000064498324343954608143852883097768494942774808271050712288508447724571969043024158594204768446355087202899712020733357261889405340338061352039220850928229582369871464224508766937564067632668148223814956681907287560020960274560626621852029552494041541416675894769792364693837597983226496453643732407816748253073848995530637357017015940030191988510829128185972602581502353875258520297445049496344675119879581871302162027226414495277615039645584238666692700107662626216783601724554015846501755145756078163083262425343539508366287694565546821489983885969432145813040818880872116258420546820374386061113228253512746428360429802948831117165049038502268398279922683208180528934724267435213460578727283402525078406040630246896059220749373021822729040312262509866754436760014627168419342688139764295869729679063913484965394720479008914644534599332359876215432335089594510235479453573943708536207786665525092889672995134854889835075538857961480419333235406413206612925241129885773335407437828239438474458157279684530413063522924307469248660911353958282602983610535197058403252350434133544523454868975281206431669494201357020223988920399455980616347160810315868557302865775588894936475272446270658244943734848353426980953370513125525651200280265970721331400084963941263951066862809366498687583905205132097607906459779113845157284618170222281802422090043065429046957932350416060009911037806059647418296323658522644829541622346257702223079354595583053253615853139609612264129392953983788988520076114455803149942444103057859326166531899232964150051667573278521824734281079677603194404773621158334886307016195758502562998325789835622917373199025527672016039066951085867904533320641458407990013243327233763816335282505223339978586715639655376257393470789586259992968614981171961784345606588238401858970507155829259786388230927355599917311242890728071591692487332454727505566521131626507478891999471257891222487444958194902008607004069286192363449277913057501122322694141955702222504310505256110728012598097403927763484772629832799362840359938492271712116385503391477754447917403027338414057590735350523779716211044400547859459379687506253240618333920266674358053328016115628378009493310314584462357449707438557485475546851738364481656165982321522600060676142319389934146422428256350614178210672896697708686169757449027959553325348510149144961959393430523978895502610869854563565772438457375486977286629399346045200568590594495565168201330422392642959122129587373484998481195213677547576750086778716794670311829386253065068055798400002888466562213301488947319589414866423907940573600748383300896885405959759420708152784513409032852594693807750106816946505271196950871778448688481052501582641912637221590636786001968650379497479262453324485685174095012998410652930879078137974475078213967022712287535328139079967055570627476248781257262496014703226049077177838965750505183200477164149167619929921912883022828939606317054294198434315634365941461802004288586001685099257632349214358526914094603658441051535161246595423729107102017323572981376819373473783879947993875091236930352172193797649807796797851580826060999266045145693938700607161360810091131052416011121180953486208055817876824958014360404119273957338705874394508850810468581573954370524755299995231018113612421248831625459122909595217229307860127008129192740906749587540466376026453982330077829584649417907102091095954338673734598734314718979129057056566484500168055619661288149863362133981420620126191670222894027917221012371931141772485793520594546095184089080193948235440212715270326576417603830943447904354724916672984618781688875517264910227205743486835696781473060437481293672202151586001557072431110454149262319624947273903521058175466777808631866450405356826014605027644191273596349133511090041659258283811280211530149435625313036275855247069926639168241221758585101605937461980647170331897661282252716010847181010247312105404622687834766745962865521144881777554054079488873997513407655920696116628949315818650496610313048981924862834708225254196468592304079251813060930336965312580556499868519302502765834664239384443906799580296029076175185908608052578130124363013686677761248257319012422880693843586629961825071861584514997569023025382713043907901109187279463101337215250428087169389524573023609313421202159806082099892201546831790188580073082995391482720840420442404995207541847957670288597867007728408813399950430715025846012436758711689146403866238116289148047187697320803495616507171081332878379291064273320244726369136849529037955025352889024831296905380894849476127550853471166015083085626574667110863711178591079314222189523241269237288046199396680648563923253421606887540966033891106995743060353050650659633066677125742412176932384241154141121457696778263829816525232840311774731818376531020194751097151769493228678376909690053078712187043499669445016303570934307184994809947362776462659671424921034917772565941002399468555387263729652722182376786568546840097984179995417114421427600101785533824854614937499948652179882041184257227428297019872759935802786713466461969999233299098457007819518537991856398297066939005473597946451709582620572944988436336493558439563286419625853146582645535221278718590735141737982429282108541468310172990883635674699926647194824410581742092731554981379467468325824263743286284040532669597367164286842611012587331331497739350562089393106184676552077524217213890680002061024312840022963566714767095004374106292575665113571790756318575864106608023422627282850692539385408216678483005231478191652510808942113003833978052137179427590493794985596194858023869745048623507461236160210778142639860773424890936356693323674606885039049087741048220235367570608415944869714606170857651175562227832175866563110411671666719970953082574507278141705684294056833700664207452951690953357129556072667990519545651416509610480237105126317229234532346591942572454815889927309255030940003957191920472250889413022324625375975563385851245131154972030153476911428157863483135907665556934524433127083301024310811281512021409446332393785101882596554553393041512897918314446251223641571818713912145308140141454696630012926587269004414196643460548416331839373595112255154866748742429730158081711820836148205023719509491897896930990948604030064767156053415680360059159193933151099093841254690836901420427309025852749999865873226584298255637571741877582059898263984589332788177866151784154704137700082033466010141749953752973744700748883003878882990261612128493853481753765828666937424465811006995313325775226866903132345164883914057426060726793609969654716351534735483948932960045047502166560592765335939896713098171298303742917644678090376867773254396724087124818577396576845757347377530345900877948999854800880400151963698298310278307723096516491956531529383057722201923309299071675259104753423940667737985498681550492337373104131855601571624300728869661663091742769006030049753404622463034231789447614907212341152041265159085889798531398696953944454799558767291860556534949202997858446409131456169928965519708233261894179731741935568623801367265754082113246842322248807325668428350180026021180361834112807990513617761656712124902960888846375906279332752004995062311846309501691875005234834419028000542251247389575665973753870472267212657158464296145998956379331690891991170160467025525315085505236996927660298922931401815310074653272551955762543493862813638523472764645588539484122985319625949823036279073156954163478944958840123604409878642057436943392312084441038922400832081805000416566190994750975583294564542961258584191510293174341120896316351139335972358778991995124775583487046335214348849705425853181284352097126603037114972640327447110794843333796561323278453846622650214355982578907076689952503184896149397537277779437756543577362672933412347383716622670801814545469970171503097979046941587466708321437375950093557188670286837150523359963362071797303946044903158557165779660207193821229459058386102755644357502881431103120682652537424208783268229098638124226862153146701612242487990037970470483715728254743166652040492654160847349619414127089611016469676844273504206556809363456563299838436225588731790278222531674225128982997839580951211348752855606051338306459033569738657759733590660813061864990164746031467885020700537088395134420811990073760038176065849207161274423609977011529438721023721197688044348101413244411310796770728259983070013583866719360479667257991050317106818594263488040657728971641942804728521683298218458710033860975382133135260280676707332153882781447784769262589369184643362722768366164152128213839834185599397902771221734050400014927820703648889611207528595260967196769451913595225110351410228068273871056841255151428284595900886185407633151247794409529725192763344943750501437422430691318555054756954969782918468197492924946684401444067476360609336776748801048172030573166311067866791192687349135037494419848049971714054450479358486564427743174684213583028018970942847456418420525734165086366920623413260265081897498471197009440835543150228027625893087798408001282487231770997191801667008096949934014385114160170548211003653573897094992942102813016351086954224009796109102526749665215692455339007510014654462055256616163275004545434935506535791027429432950310944594715570886920529701835036558634483438470791737468003990406201104842087866778950642053203582421203353180016799346944319220144225067061741361537180102901699328884488010288893370790820605136078664391337311064618507465838993290483821747226351015303458438772278411721314978379260709667985057803452042289298782476324999801715004871221844573081676899764824735990668739043321429032984084361175720932236062261248249677891762052637645980513362357039755536857788799946474398932192949523363273863094304091902707015872019588163031314542960423580109964182283969385188887077057533092284147930935393986467609469162077997386189124748613573838192355126746451152788942153867865132446172572522981517623675851318103596933229114730711095176509347559001349956735803704362412788415460875129147721470931693051471569259573555895728163632405095583477392086167322754903416471526821831836159699049455080425178808638399238545834162970292178247631987843237299358199026069602925671193886794056391906596736375401523715477860182984161767238522722339616667059832004206599424794058614508319164481331295926696725875172910128087593979673812991950883928987530535081134587150867336466351788919580741612196647891176587917044898206021481473781921686671466207351848941588727661474554568148310989372529846350620779454045439761821768245102362087606171606251658160702122927328860477075127017388244471375892764020369600000761507691737501663270464959802379851107118125502992430726013938703773182117393697763262868340701285892057555882182836727580157483387160962609743216805184989050253588325827701453491038368785695211915256861459471187312923519849405760050081683510894643293668949043809181682149764474372648318668046953653634366607691187310431488124752192458323584778078011102815524127110931316118519938981174750224670884883756692739189353038576166933658455163675300600202547471683039560886203812654538093800582216247779567166002835856522753965731562080485527575006490048223230969529009746607263843070290883109133721555302394968831001503410274058878319019695382745893102877244374493083215993384889610617036244832611415531039777469271582845434600021254232857403139123058944707229600182302577986378659573283543191288162845814920518013617770034665404182081408836273045362939174241465867187439476183659994445358882162284910333391208413978553007557435494335356260663201494620580650458448380118344270726640610093249277175742892179200230426322244145800313217895427572486124945244012064659807323971788074618746413056485381094648880502238286063382188388470482299629785256278452796060098440258064519480896868977785750813634421165574997367622790510773662549196592237325037179299986088106619930733906256882310219877210931720317232313826901251252420215046195787673852408763923526253909874471927373940857487436696667743323501300737983854694783343350611301638220200891601201516427494886280227557236133260298662799176442537861735013350563434686100671498303433530549712670436189557900951304312313203694709525887698728306259672415638658547577064643019098729674457006522663109871285005638297051599831988789625510351610213895271329481246311623350322043896327414094511487623864182856109999250380806066657629421079424482816134631675063900295218455897082532882478791982399030841114287441762678642256298211136511562481953913603361786859720561194877865459986245055924640431626472270169286049831247716921571579825547298246887479040177772407287972642323315683993361183248253364989983667629562525795225827418830400953099133178534386849423800005462816831568345093781319630363694792888765297031314839439777760473753783866853091587763562902169737018499358728364435628453327907495241358433784902145816680693737941688023421665084420800106986780547884892821008270026579965384128867289528250960275414471786610616192964355496899387084670154787590478160747642292351960681662393214872216452284404183494913541803165147447762981206423062759000927804049165653661539554907053972488279821638490129625984249726576511464631172618018106429159000765438979338260088483220250856036419849544014778221332935783573906959373109854090954109840378711256058208992552953165312652681105469883300828086858641557496984419253595204477232749641626592484095774695229667393350724023430067809452462891059275264622784973932592861595163607757666621173740396726839463108431063414665283241761854660466473235704751737269620371532642320334517505495046804201624051608039670248489554250547441551303050985914277037336072202042984657210174278669879540078043457539879895017538566600459510639172626023895161400329383012649726774951589533352082227902325176091127964797884154040542178451155220778787219167112856603623820486002038484155336250791529550021939439699130903156397334136327488752903290439957037615902894835665917795301626367286781071685642036657847572753070117098665504702004929690523367059522245555619718104160671931695972801815001304166113411467440854216388227275064363404224104398391436997999017869246400788019888652919207411885268769369638136386768689632310034718214243302943044276893331997320217735574825022626010080826344499119147813649102351997491013783421644840932417723811911823712563971080740113188888344166017569408093148084718210929610491230785944234542722262986617061031683003639633755605215582738307313159204980487346076789448672118209468604961441926808288444676197529368589978899182108377590999460803529376868062311346852870022852995494746324477128455962321490166249462310017942665588612895650724182083007635566587389213662741145435216780327275975071384692299775396336498157313226479382933667967524297344976401882250501059060059863173292294369553686022283224811669590737657672105038288986945890442888675062587191527180624686389659331188888832935452029920101796367931988810074777578608111261796104307986305375111771020333353588767334599153026549254048821606049717066003496341561836547958990651176654650410307717879885285640345139698945105708532405599876939798879971995676208044693029884946488267431702055780781048330544287062030099190600952895176113248579851646207542624044313808538447928577927093662458407850607751875843469218108404261446299783544699558804622072350961588122127197710358489056083745273570155467640389447283241705446844183702855119752478161431004352624960451307929407339396219338038833617594573980241896696222659048471812323194552319970926416650046503101314419993415967891209781542317850180758545020554826848885625750688767966724112587107782668734777877363970448136255387453125855418772830079934030564124394327194450388554760916494485046035278253599283670711588647317842231891472653279009061334665142601422067247336031233776359828260450796009470347956307617899351024153516406040225760272462348247282338294458546226254419691761394001596286009603025514851182548772421306332373719886601170239870133877397191209323086568527120196307370244182531558258678376488992322571815169889415357678178037741672213144760438471572983770198854257346378106686344664072866683947385699551218863802165067960308512580766563181626495591702473041025424063580616591006903591295971334325794550197496892787005090837046394219595243223477727479323390771598274871602333883542962474259764851296175338611212447268192723434676452919597767326018534545046654053912597674952733997780785181375469110435000341264273435888070381865569230731621133185889069824851648514127899897112880904916945579678896322692611175083405570586745654481617291093353914763595502674520261529627384559348888973330793833070619594469678436671674531994115568784909731435983618845607984246510139854421209216572314012923734445070977592614469312261124726112838033189572851664521284566418294289301305497726707811558600039700670366892225045026811038079105291932274325959723485602052953695624344455765400154841839160684062648160810740973343458217438103783409883848058559709504553996497157816945465309787907934851380800101988084501804536687426261488482838272266576379100011932429384439620858490643631651907192782154413455736905446218005943667786916560573114520773565191600785856210174447431846065211194438870062805393930325402269523222899247174044024172697124739217772429444729104370293666573364475240451415742942100075422478153553036556242743526190078854594111919722025377821398427506456924276673448761518136421809193740253993775640360557287424007658414196849852720688643968590364179784784063695848708675464650096914847857591244246013720438045778607197117447940922356226236016771714960758025943917109574523401242697802933901395590429471142959240977390586853693458927327978458982449511262124066214498162315117557609855324771098482805943907006953641511156004101315233741592558947054738908184964658593899780216468637518110003045546823357467658143452138405672221755872902241995389053079671593245192358142381791397920994509950849305525516612098555875796175732698345955899474791410914410708784549242676993262886850905722104253369679780746721163211774979045648518649844148585049470219263894250472884473039418116064869464830021509772093261101897500807406822200269889225585456324445109861986914773061645885971996100827662906972231158175073081443045747118937295935981565340228098379960645121481803894906295168879530594779960736496832719803633259368158211877134018810085083812468435025631636939365385681457345694456557531870578700333536560708768598480738542117802498604230210521587900604966424159840995488383898987991786028739883727999236660651034222991828983223127221875742147175816773393549244598288600971232505653455794440241802251327684244845873793664138388337221571109855712060479658228809339844271448815251427041753331311767664529598678693598682913217896390864688574158055243973523409170457361763278935796019978480466719721727753939972528471289459309632540010087787290667897697036596624971869708548708886012576485307389009035238715525390273255893708831236108837547675680938150529789793330287814899084300939260384194548309381162879125486803251032487178960822099364952664136492206120594138536418539326302362051748460299280503473497370719574581204739681767763130641975282275408001037492183219119001634055519060367007644686685794834813444491923454388157454997632045845412104531718915261897781301803634071721393431510668445006202543249498439497196561836089661341181822085825229372827577581321017554793837941437986713623088340170329329814444142905637433549312639682900821543062949692019024550729096002180292274052254973913285529439242196640539927174356843409415422423986273370441577899059775555445970954643165377846184014781067273497230631142205029773932747123104419736239753868591443667629637349777251821602542876910451444599310884979088944358147032050942204418172380102037802390055377173364326526224037597003078520210901336408752939331831779148719937888257529975270212561838223951309445847699478575505751276899549962221086935226873384911754019917064670994959317152111073615376809662329099616380522598437330716548465856304200080434427256284365903596099014947187615891782559432029807842504124244717223940139827331808031533800702903873379548031324966676653098555497908363237866958695767026129170832100421894431328766008514488012000305166319338578549492480973525464699204288881052706467338480489166906107409388562684703872094874667385200856430992488085022720715130630399038758353021645143355484188778100763429220689219656242343769533461592661328857925419754775244971968204635341579191714255859251578650725397896753866705718322209667320872176693542539418622978624533080589067629355429437762890855187768189741722463969564988042737352114500562619337351352768084997202436835981278436525395097131767733152197277643497085145017811847869109275771513953174117273613775064856256402910640993225360459815537016795196972366111028281377420279111500749877838890655022557926874582152972438706230831651400171548902530571822186724968599247106926722321812015469150979903246974874410447291995408806315670084025685631488407823801912226904066199375736290068037040344676379216953464387294665166818435613076974101950703608245149761301117312535419435495315704295365862648161894189012881275579455412201370609887622554815111659371439074593907750963998902760329464177690780696944841142952439998531237406070507801487958710600305788920290075902495135750135390126728744744629940631819239258418362800245699376918864529656845949863830211134822781249987253360428968908283692791224353073109094124755861509758768857805618988033372377797608041617500554212963836103845716408087606695421992448173603720712866028766356230855945293554687665022127666181854609328098245015826727040948808326721183800269519568683202631550005073940203331615454801699785738028590211772254859401173015295574871053792735638511375583387098160497236601133210686615894094877211333086261206224385424202095874843275249986990360830373789330926510309913963248681000297574837783165771384063331610476363863047030367930505249894907123628978075547246224564913717088718268437068348121608089855718175988401707225004216129924353462276578787011266035623484861737256794730976728500417473817776406043081181936454897153028258606693295287197786348845845725452213790190733492440075445448999031579422614042837798520075318508719049930626261088274558473362368893438478128537428144761184482545995121579414114852882326252781062148481919959958427895941792475204954614177486434871220991740272717330995718052633872099567306494322036522676057808922667323820862694635284100385869751475239166110980540755577257112285914411946310304188415572976437290310443791612590450160108178123816059708384665746070337812905901148951948228417841574463665424597200311354138656093963595045032962262317919614925294341484246677997294957463669898043937194505414679918357400231541683017851580577918164742900268498030849608911636563688772113492577977748386008873940092059360763539121344671290111982370885746822529789623589815609147150860235070507796496553853191374438772493714984351870132618232281755936850795948903554676396075263056602341915903675465898243317234858823552090453405266430585338239894763656088850160648269417955082546162660392959593824877308166486959014664846161088172686247721152652075029054560591994811209010648887322113256830081898174341336950441860512412778141204157797016924470192333139794253210647622329044162802888887110119852036655699748740919371063161430429017287738111998340862009524207128426183887080981635445205836925148320559075471319939423752596799239689719008375131202300785009477061604696758487027046607395176934586798205137319858817605711394063557630224277762744619398583879144668140167526618421308120425270282817551236174663731868550759131125475706082063631800062144883990408997696911929205222993674700103312797017282292783946978780276982807674621384803578631778322639849341526916132086388495299747942691533258724050561928545504898357065365626109133684207608935166067225121897407297596975687819186630041719315681577657299364865374220618220524854325210425906445092789193369404692917519035487836903255930770081930641532970607728001539332773120448464545837452274274128702307395637665955553110303224639328147506681988291163094081833862708109374495005275738557348473364178021158292349078037882315123124144776825520670697057990809242571755013631054754831503397677154804346417708263303376908418342992080584529712270796264462920144510063142563593665909882111020767769963749859807145218372096904419185798325254101528541196154514186671078801178664084949185162479002059121880124523292527120631839281577798671126310927574508926451049487008624856190848851263497866978623587047210204051843658055357484368729712902923307123860608361382313882976289780173678466278529250923009413160641941097548908819163091415327685232235796945290213498629834055466480675064465300682182456685145135496004548828233135614375075051650234076671515179079539395422497810568084721333386885256102562368779842475263470765243300556943780332948738583600096856842003571924750263237678704078536885019716222763199692141790480299455427633922138686913471997787280243166277445747690989073801582016534366335888899206905246830178985895772050260781398555885130415971228527736334099624149913459274427145521860899891430659836849783692862453056317286916700055381516203889118106694402295544966124842942226321719991673227068457253685271489564879101176702272874104314900874001880128589677938961699472888683423145057942459976405134493945682303138534847362046224901953885724511083504941212131883469122010253039975954138225152685183939105630171237223664490776866387324183341005085726940617701518927773873146984719330663214287151970533349294464365926036912758315025568954618496138943390944352425998936023460473797811478524675723762917213336421140724292333301146715129740304613020780826416406025283810410726255158180640090333586205238429311004578828544979530916447824667040446613152726490406494649642955406987050918365245750569677333889878345835486215175214572085349205331197032804528333193232626081187479901705428338941873398622068635260882505579533688389285107584391251550678491089965385088223005228324511683550601135398258357205493402581314752565546196178753088756655138523070740223810846574598736863553266872165806024976615441572729911520241804949350857534573128410428119720651522032716484711242036659137036603117840262925643277387592963685854240509117377242399627408887440498295584879012759759890496582233581973782640877789962992053517549026045765759785043945220378672445023896023311201732093802330530072936059392420698680564249862279509267972979468421392261378937622507630990685341030822554362599160427805321594645629310983323790142262122040253672827734787645939690824107629352375266457726054270967434693351618932932778808651624409599426598675692983305620842075275415600422178546116896419275582528818859600351798003595990896701788113271709277939385994995126277451862920582052521619819889526854641586674431073719346983703329354904882564763607054402040888564740749088579643589427913551534881080551492553934844495331048959402430827400732451541773638939582978987491700300061612354290922425644985995907089483233625188751833580974814294205921090067657686257962054587158535799879528226182546317205639165725161443016365469263976745784011213174568554098925905876888495623735162819962412164984380025619430432591898372587364648041677367854718807141660777315172131729683290290514166485567601505851132431679984406669777173314646312155632406370682040315137509000394661158703224477507474320687086295095919638394641102991736993441921324634864178665994996156657329936145968419191535589811511852665326838651970869652028802757102616387427708603741311571476282005691318141683261162078300180991458760631730172308775833341736165618284102458572493912905547648324636683113761846748183032317091639642687154773105362971374168024214846371741313240167566496865170986759939509005749199092681899038994682688708642333021170394260258207443268348906575656868801719107704720127903426145154133724201603084762776334506298398344568188136255935339679238946816917225565316225377285933369051706705994008267296431792614901861560149462935089783902919615904736485161180923533967715045697801676867851416846652380310482652018905130954609826795115147756656366451013867987377863069424486069189505815012257600127687404733694266823101460129119058455803662083936622302238645335898388028412181389380812704872682270886528681581746686612081148460039325710494838878006745287696588430749688846117065075212313941835468184350637225159838734707747351469641501617907564224743596021895865292370253894271486794163399263746008292040082091728345400503207952250023669315499643747320788720327279419383926877640158297478231667645933665505084796495773075394990236808430059597087832574378162320749775561809095175522006530996493207797822524972048599403917050534182297757372990915041019144185523403481008451190017529013975913375510077505451085238269708248231053802695057651257571109295123160790473022787666697305561991732639249087207188104087048803428570140672126917169818640995048265052641063163981153762778769975196358312382384792817467211228974688098363799612225178270984037597041850655236055421791394871204325229296898906727181450158519909999217694548774700257353635619218334560728962077905988350915466584807570880308723223200015494193580925326502945809794763218083129719237691181155902350545864447353065642241174868568583737252953542252926535088412652549045877727488300055836459446528221245401081263794307611303020127847519761566112687567862687056617752629026315841672680293216379277215213919966826824862530061471916418366369234854895508172425892524135456548628456219689168261587595992466739308422936854772561525564461348040314113819760009481167199968107284668422995310673786666477387232674239354422780935560796036208731095741246845303269814695853895994294945903252414005644269057432000482774877486667039809758939894644588884335183529995638966214354765173592871734955253284716623998078665959455845567549316861899247651608620671177856359771918166664853373615240781382182448177207450122015286675799247087811086853209451054958115846085731470941726946777631200271019943444297894516076877310944854363369254628223435998701546845946050340124801183798712799351103330020980227935604606947407727194143696151787135645341110099583910324715192600046498696331281004883415045688064220924478248507583878250495965837976682819283714299462314566891899582168227349276199165914638547882179122830832335183949775009112927310503162660274179444691684891189641352722156539561402022617946237327332389242409738048499101012908607758147655654373513370956575794080279761970551718645745594515003395478385075688523788406835944665467092726091689912715848464959821957882147138459924889169687917507502043168684267152872858342468742260724793417288449305848193718027225688438826822991707557123484790092102452491305972539284388519491560233239843053021487699977645135314019290343865951538337934788734093586913544170611293085227838440083576164209384792226275146760406338278515545420471904455719848552329365233375330163587056934404679414004929988295275826669466654712790783045423774933198911866734708530853618009938230715499624257192323781990650376428765757204853312539376111620096274850638956880307193654492238197236342145782559633995532793156773392827869563349907115583944225390496047993496192962020511937368024478550693021273682764727819958302546557993886317829799321392515818830979704307579682466702924529764274216216243736780413345460005396430184504589203177778755632165998611922394121985764694653869983802469360523245725955111650285361706123483169135982263640321799251434064308294142158937978395406098361190606850120593174186641295945549689360064880242310431935432358803859870039476955800609517837942037315423172205747571674047075430084947245660159466337710550806006606540483445303231677745609525429332210191449005142029671490650377223568959260536666603152812642395152072669008179299553666279793953969377898833947651572546777720915126289537733808455712392696823277048235313123729196985458184793297819784925970696237965590018282000323738584323759648556006424650791334637135419942993480209810626819951444751005380323315146841586648921651303754043655959014722124930459128680096527182488692771743604763454545207257814610192812622088726851045148763853170437932667494163750422864801820727806542034298247245738236394781549070090500256910482351358087812730153111095632447571200541697733092946090374610514469243501387648758878920128927025062635170177549509794163209546914882962488103291812476995371314819728080352174687595161643424990122689732094303712900614237223026687242269800922555161556959767362663446395766531724832613475955592289664986232396063521459534212720829250228718048506416122426401456028466725006478042072319616854069345702753964645612312036746763707326743777951359996464726661082644782321090816020037153880614345745804292731443782790074094672983085458551024491380447455357910253669771297243424158099196071021288479393838423600118345627896932083597468317178660754478624283983957430048049660206201382285262217876344359882448016940876438453264025031526941620420901618403574847209524474416742689307902745500654273593077707976543672401487802978954860220761227463337113057878222837047101072714685448156569781123329929959065966004905141820710748064320629680840864207873067755994615625916274469178552799404976054692341561080484789925720199139468978249251485750589090899128006089892281026343634914236331538213267049540530820740550678553966566942635916426888889297365686942560170661099934419709472744947455503688024089431351688606292503437491129164005494849158807269601168927669431764435922354894191950632855969470764573507059741300391096315095082883710947326878775111950292301088334272809028846668558433413304410517616702101060363047272718389118164381636316061375627351107720998317245834359763139063831641606474522451247459894254297645659734015207148983779857005950580722085709050981235824941941121726187190841475869747351352851696757832799412757030379548536412367996813494204010591260424362284503087181270564032100008154485103765649151687611593935422241179006350732396944805081630649677242292151805205543673486015322930639785490464104609445079030723857588434864566889826220541027165324544195944552750421912411663696121448401838577321661546117663922676229218601486464468490116115493687830310807547452938829628059681945122591011216219918629124756244640281646895491642840921081414350638331847409984410166597436923391724192727472428304970149027608390487527198709643640476815791578548485469811686707887494974069329983121665586436455182468985410058982809337066538333021056884580492722163749387505055089564666518262590541741553796864217061601327276045074294499739621929636601962460431548227499518565823702878310815299554878001639811092801323157950687076717802701248210518700062602024417637528442111836105958211373851751438416641854094295928525124601777082100144519784534786758756977585057931284459120098648069866359878706873864564826630030257571614864286458314411212418517906545458634251164883099479563123247878969024882810658019265984881898926856190004291113892947832993829061929926279958951187824947403935016801887666317416597174042379914272318053775774884359984825815749784610930922979440914544627744047722429106588416828477896183995811485684545356591201407053809014370725408733189989532277042558121831732304722385712454231495301990809674046103279139262048600910691816009086870732264648908620821912219672374310876595416658533027353360910432450688412453510763334385869578529308910853472506056399433328389319231105834280807099616776349072407653129683520056860334527469533727455394176746361132082408102968330413416810515947132578545513075584520106934229876138322053099774339755344859096990359775278885976135373816025280182676738470890336212547922814776114037488234955350125028168636271847707616494647935727462678369405852926994699887472061870094687462789285228923596141076755783879379466266064115291984346395546872227552605279781858009122251525817378559410373953180009291697133374105570959696249983297378351088123110331992280099507409547187971424534629728324296766150431073686771743430719228657001398212934840914355730804664543380171100536533365253743513920812510936468311578258129696193021895299410746138455913623768236299980715057628113979922728559068835453353575141539383286934096375705703925962226370977480188702425861411743067847023673427524028923539747358340475042079396871634819266637574403498598396498995712543310775502451589991477136780837829484032731479857232218713219197090642008337383719991076850928565567957823011479943548708173825388988132918728168827156582081694597822100624717853892731190485141177502786241380147799446983461998794174378054376724262539560611035591372380346657411837901195645207321670048463791605955911380867895356786112607700438374246031488285312110920548321837743279749467271945224022680452707844537410942793722676257333292870289556324411996000814649512062854075163567612586905636502004970315620348893763135838806715530250330179059739038406951454894388350789664547947594483993894369111104944802511466450132736760954574003657070244316185757133507431200587573989955752712723451110626706212030573709774549304321393841079107782430989448523965022098590627387420291816603385446745442847248682853423262080400855119594263006555126249563441766936607572981131184566237918696187043762589229149501913814592883808105248592269634541231073001832862063429720151537426389797310295083892353775401183057956835535797065948914872071845928184027730314539225145741106719318434598287272423375716465993918858734348834663572499103742338504879467998084445648315265914928584347743935791997887195507684070180696852621182999501649505680936958382440083620807551517263820586331221239094310451724148659543970336061101486167340937506894488283246523916543398918491648814984224919470730061070721956352020000536361731930819012799671632959376297250151956692425932094382705575830046762643287957592689492642206426623225710340729223737041779379412194078549791669117303193174427995225621141320888404417220867576997917363450027930249699205706872746314509539215877904908325135483462277696809748990694826592092590454240913175896347756116788709484979039592476029134497331476783963832270589589938315286239280126648108850882892810322973267235354924963122520555827447636578396674384080165851116968199752671852866546766632030750002884609043882719427367377884110911989486867563231931330414317966271249970943743996080610353878742531204909088856030914819107857543677579932635465237713727133179820494452343812964268384855751854981628053619668726045649344550378018232480176362157973880980853700736715110363329186641468201235671779550016321574147939068031760467886846113198026399915193237885282899261591093305097050630102033595202793730461363131896805454223781095744200084209226808394606671101307352474111712362457946153512987116957764306213581782067953336428097874233276007395600363722488755200588882200048696573694108422269114154592404303268814960410058882370803731184368266325004122212301175833746908989131705887265925412703363872000640656437044690296146836724177043827944002720208835999301409903459968580946528240397812956982902768999271153133130436497353022924540321560949911889512191565839826460466942468913095168002034430294834741938060153896928290478915472903471163176549871228553311558766343905033695730893673725582585732687577751226587600263730698301508052967233199687064914198154042500016780267062928718560936622051947205382737767407589910022062024512891558611540653228954035168513570107260573238299224723724147414279246386543035065831978287176845081405083368022180184028476375344017256499524047253107338017736973912370876418503799801500897057531435614665166617795693986164037041196295879230865831415650799322902958619228146723458731148826623391312780824406261529206688407731810144890665046358276467371125808800585895429691940802761779418643633143056441058280292801521786253960607133689763794757689318633136443694194473599695795927877397479927020601783618552125206680086906919067775538216636224237205298947039986267738702027716392669530524913049898970964373590616316954698351799618662158071941948995071709649984344736782847278209447519103664209072087375973398628879596676758460472755000553992108989411607547039347669075131811777401916317047831888332501136222707082668064472546871405737327094124175625060284581880011843218504448350077195098301350556163859118083494640920356096989586787938492341718973677689235447403821510920309674906618251492803395077999659844365402891014753531556363902868532861225546742253368454469167984441219299314925987426264388010872766262376675310109278997699997364731607491095637150387253858039736724851057587245374207199156924715678998845038005597945649570913539914941533684915025701505480947953191338615296882932197567227215551702995060847334268371528208320926067873917094576828416149975759080380533495384754692603925576312881514740779451546261292921505368648466154163840986680099318523667691420913799857827594898224334959279046858226811706427061751365578495991779182625073697791340821346616306990441179878155402162707704407476243048897340346037988491292314544817964596327850436953405544615063525434342453900400924711506149318035449493192257586089481967925688547343221688561063417056115725527678503569126841833068810918034709825995422746384307738603711464732723716764993270719957616719643747229904830160273724580292370821513031479781542485466846539597165950399100924916392665847804250338205153958741357102707619453733502695025341488765978816311311575174219960229787042200428256388775587819701439801799845708676728707765476703352268855200262590796169933872874504257057742940648509467697536091065634710070102506713252551911005567974507861180496766759255041541441024537173306908585878790448350704545003972538832988595053476846065614013837684092841610638845563262763136784026925165287800965816201657552906717402212140824117031667948440363035944768723618772736873668845667947333768050330661271567518918495961201135782091097894475089341495372660516745644847945549361084256056677541008865240928708080082421792588616063675365829333074532832429045157532169904028947849220758016914979577858754506801756971440277112635754229923401863224903497838230485394857020847257631839137553275732615982461468456340724797834131244989195790731111909645080080678487943141254985982324917913589404704940456804695377694482046191180079085141475883801084055313401233035230247297673869191260014073722799157183622986151056084793492493683712242058523428289424257526392492970798317416264682211192819952375904377164313664267824255770634454377224091202908574825658326828429178633411847164810023367192853737095367643746830558649920954553190044745462653210421304251715906042800816599122362547007394364267621894096048440545334732870487363014050546165281348892283681424169465283280265745940824518465409383857441937876308126425066007053176851541993098091661884042234440983750352786118378261661838753412147410924853273314923949651860798956222139951225556733918260761480313684758056051867560024529092769306047191016094606446775752799182253267168250936852587848037826866173536598220732269328562218559251062638041041846292869231765733683132227768127675355384417065667624384277806300764461539848298333511324437640089022601295496238189748975209526203087517062083115919329726051550909538346504884755470633232375736325036275687495585078196204129402127123825758762726397857984315712988245174679620640416966973937014132505723342899546555182023411859543545952032185964720816350800909532797855711560554370390805537578488449971425178971554281380828798480037610065970428092056667405959355789075124791349865335526915674454626087205540596073187915705267326265807717740867844019549874573636741187860958420416186551729548586617401228168602769757446524954722253317608987097129681577796684928887099774764362784089072878180395963657258833656190242510092044891907461741744031762523583884038721820072332962616403791652797465416746628323292421568284173633930990305539694757570229788224293257673705624664008017285824476577916223441332507490613413980423484526174461663975451245965072456784828686523193849777754402948038292950022920376803366439245318032828568728261315185638559983228595681136803840861314058559701052251982639456065103825140590818636161899589206414627909105815599480439686909395418128391312814336544362627916393461940143585372038648117184812372446365715550989899328679880329939494000671300320119321456594601601972619778498596088656838007630396021261109956030007264916824638396122141555705132484532417603213768577435482234776319544811693282641574313848365139536053681644544550769049224410402949130541967535541666009961434274540386787232078150366402099205205741761449756746474247802410377103299535513461427560018454699624099461776819726699430953953938948203175480912532563735159374489478601590845244567726712875492769829002053738501347678813615997343096769720988977111036063638621647072407937172852991053158085001279552402778148785806397909923030474861651736715333487614984039034120402948544422299959486348057643043084665715110735960584789523187569916719759534900041169483651260801043654809724879510682678831936294195033450237649738935836003180058648893731925455743846254982225070248576273764810907759833044629596706310685028431260193470494386032084210219906991673067642434921705534335717318421340848721262392084872550310954298746216386709189476918332085206954586287108042335681858243073422986974040096180320370571117073111430014530044011369565077037931354831464632356599463834888412493205853955604088230154384145031169874212715285365251301915618353191839644961614493347827997280028121018945627692113417047305052035518065242549288673280440128438606157121540288892620627725001267467463257462068538429025518005455628725890040679160058039179170594144459217417685017936148710006156345492449484309656797270387260814057923930772992252673835220907318591999666425591648136399324191888495286446758997394155517121517431108064905292734172219504666499389048623470109834716555760140214737393826307264359397653029055497973072617601592093063311553676615727382140765371497599415614094746635740834246045667404211414951999367559184660064248847310360763810546423209339633960067545956235866218886922696857054495356421723089111628145943970528898804704245078006584145215675810862420593227872436234256409310914925249545281942489171135239801256667443248614592902089444405718891043095050227000519500502354566985624913430745893815278184707782997929948854120728444982358484279397525166996267132170201501142804280469867264441132029010415644032356387216946435313686117557681528416305410684439683645851737023525897399527343429012185911682179519785734539136794090006858904068788759540251890973360305420948207874553043182233688902799127872101385501132682200032124870901415280131844728074668013309505995601602986253222051428802890769609151357958927925080892763854275677429654553945614900861454213107896488075587279281450880986682742997019051742954001859832498196635900999595161141631347019383205197518473767265453764481427926934154678682267993424286766672525696962611971892211755937517446943422656150272335345431713139510935218469661733183693285169600589160991157761811623528867261313276982645387691164850576076988704201801395538274199014130379155171599814891174416794347301129555291564688369415431471132517663123509965067948527092450727783851530971318351956121193684517732687517459402810077436710238066535944734918092925191799282812496379573904393329997936351023971186526038911259915219765447506067811307781866514043682088359831913324361597508615432137966060276958462142606049406744409026904230882375953353243496148620256886637091918372834841187212179984300319390341995397035630224396312927617603192920953362859713291536837460495318431208594826454905918926847890545433799643999656764748814463203156924253511635153915614047607618522632543440436479052883694867351279229206393549880652666801326142978712696705192965046840442316829801131767832608871218246844838247565334840804062928529505481882684523456978376635428497185000179309133327994963243731553641579903423736067429534674171364653532066264215945850179770002106058725852289502684585717079275561946102086964511482032071741244896736582058534060883914521376200257663859630828657180896511738021345211429066287514707088801763367093993530803840023838090821968368506354408267720024981811272341535206606335032678929455461786807298694516675623833150783112575797711189415061186867807836266490097986016646955193780084947430798103933511120798643942981153441719251629737993606465495194853385936135316007662471685404170043214741632041317033095589223921959992573673473299203427643022637589364778379554067880122188849524133369724839697554161906086894544329637888221733067763625409688995923422213250407978240294715503541123712705663221341068393713546969446358342476070715297972582096127715418165444116922459063894661836412189726379888461366999711700335408285339356009994194763724785698756717887586143015008965382459716442158801173268485546318234026276994093969708337116230949854763306018681673029606115584983410189625744211766703737504784544772112711380105569089319434537361773880931801494808290113930899145614139131533318283276511331297359665437835735857110479825399573005239482527592386625798794123116373949255697182750451429764848017763580233025344219419981672649689459525553551235350721306942606728566438120060725931766723739100738874347581232192954877188632520697042802697387565128048102175816084551568052722206613519535208104549941702676883171941241223127406676460027242381468074029388627952313468763413173304723838542294606305363735025389406640439593988658913830876523885801107193003982864481318607234589186121853026410560035158024476937199034731653316945074007914486778681433640939304223813920426794902428467680761145629356903899417160996011492349331923603133132738730858879299489358587031001648867060685739604100327245360012165337107841860024080543579316768739374297802719588873723044011349150316974625120025847839966217828773098116462549082293755135346937268839449783227515845701693807107626228713754199841543568717470455931204918785532070782810592428485383906760816521123264706975717147700108572598863467179886849367452424534241053159167973522751852520218062680555340905175335690744587141591512737755897815254751430063257773246852994118451481508913613523948863058413270202513088641853744094275402886142234101689175709045670769434984256969738495348993064662108861072767897713321384181386559650227544702939567416096004664915969387054444533472974120655553562572330526915286054006245768560147169116059719073263150460727477910880477109061818302730908877354515859398956913296174142813530939830731434501949994060421173444012084590441010525897851463309191040375847163687391836936220595108008180770258286157810782222736076328537739480613869056057905135765884690137575464389754479342878418876427120836433973738826928535790240723832391205770780566881172586231065620990052024272556275439854346595224058578891189473488024453495887628215917272765472682397030970138867670984717146570659304430725212220524888968364996729158434017609815673041111170711922151989262268355864356664912506979389642295982381251785475719943483291538407989646766038125623609529248075033992139283556493022094328601070566739226032928642740477690642120559590458164820132529440558347352387280663891968694804137355025842406585134844205779394651753850130415544981013149840515409442610908145268194101031818371304324993116923235653664650275189240731907427863271230880712802777435599732101212905635694241781475740864359725763891344626173506328941897059051520750615010573626209428875381533670598238831624190678294316530971692297302361677841278533256973472019973806779220796156265447990707920002959036516859684427935443432775851599734105618858175474746061691729607932751387907498506796893884947461203153998220959389314656082540242565445018288893194946955972812527364669858420693734709792497207246848971522218891076769028994674196741495723695399158973973537971278513296652186652314469105406161957465699096249973852795098528489062786699798469367943517652625827978285629132969249667882841319990748836190971515211778274769726026139301820843386227025578340732922367326720219388504602342706841539204233863165352633482659982196649737717118461694811995361754285448975270943162952522769484712773454314965740528750100587652405392395822141264962360151100466419740886730530002971566355353470475930683309952311019901769991912498629971317543312458693476138157022618535631121635430510349036911928318704511169849800776369247570799191997946418127910096062137529761619181556893018166960826845966919129373658960618217725918222816936014498870277782528476465049661202847472189620061546613748485531004477316035240781511082833233743745379920894491444336767159508875506700681081297097235787687642040456614267565410912684292607071378174644537872724657676417597434787784767858631413656679791227397426860317302314486653213678911074800692460570538203493496338152684700352924391961846369657207812166707077924452085318554985738639816006665571312201815694808098336463831485763137188258971582519763913411110457219567137085416356653248615076920197726771706021228135519854040911987728786987143546436708247476720551262469721422354123513180308046923077295837310865022044337122683756141254291715035881361758015921105626754957183051391608989361958234298445424586419398654547550699593163623316215328146192942064383539510522112068219757345432430896871656331473352551432898929425473638195374429592240286093218971991195005137635434427446312749451429237849877117869993180534490614560605539007428738577548295766160730170382061850822024920113360975592002651775873089385128806870656148309535997520016138081476324885498833051888743456804344373619481056090959716797846372699611722338812556440552812982490311143375897671760705414535245661053347992325689913023847611528727477188195511204913271903124516292443716701159990026445952503185568969585650043280320390711229516436247855643732933817851952738928473509585269801944199457399435142828756489631214759152735751649856232790384614845543958142817997069232591530881693346413708612172596424236933708489366199258069882128096453543503591281245835874241353149079444974615516881460622939250264645669349010641230378966375157301448206805689504951771277163006324672188848482992313179042614583707785246024800669280619089339412983657117828255037087707034771207223519865410640443080828214183696132673208770942256290285701599637076154615082151708714374478316997766980994909731168778387496329034309355518611154439824045421686384908711366450775474268175455743549699249017534353565196884597738980748519949958126536732953596722253112710019628513111122347282647511928235773913114343530052956313885748864344295443008950624214204356262111037417224291667039272995504021027501073813648947577668882019806792621835173324074980856570093699274853008732251865107848387955297282814714778263128994761409222034670993194336079640515272802728745335076005493928666932417785921000216327526309419771063414081423599665881399899357066271133070193039481408359765133589649198222528806870478026084630522530022459682391742479221828691409489618345988383200882088904003819882806860498107660438836227692627935883912983601549184516242885808864376039701302722612141115625303302452319041077412562013678878697483112102730215193283259560578194373850329337271655656593980632713014295452387429021518786656281143082777746153252255385650296613164567614881215136788321779221190480774456884026950135617746678469233815020372998501685715376244100200944848596197747624305454898791461204039800484384899740355166361535200975171068260035085555285906830383548426190227776944519476934912523069318585416899618249148805412896856911184529728006010232485305633160444195340406355920225854265616197033614979159461160658281035434480106506056769284696599878369021221690135155013058001758723278026948851915428036672842795329607400017147345601535284502938681269664236190336427981278958880522497746184367283281273244483933902715430370740733157191472924909730425285826063456481907601766610596237830940717332107138122104581842441545554755136968884604166235833485595998990866155830013206281356774762219318931488109677179109760082687144106243746837536818058143972217117236790978793546639415416460304318414426038328662932448743646165158542027364497806139572992353047647839793419518720400621863050435901376055674201236943125158738507552619380595056827550304351001973642588751366413034747319614773467066639795343747663209565087470444133738718586143967668732727786807770001422951032530067384739234534393804987149287629847733243444564851121823588472430738006678830151222610148719553570530391234608045042012100771142558127293974166077713041146106810056030971127941739216803061699672549898049802376063742238595469190752053402710818435024485257224231411391281160310681910504558874027264337167460505940231379251393080084921061373427096266972240991392021117898923350952802353575434437631783844009817628179984040805310520994907124808825115716827145633548231320910588818681173913823651546292152798772136925930247889394216972665047948179995048016825765063875710421997762618580863707902011851525308858960817958121225028017446261528397187470717685860219408265558737748069134320790267970546211043151165048320912854602455345427947293904518193757747098224828661230432479610928078124103973046902815831870584970569014444345736570056489543887038891837736576567582510469156010128564126980069414670656720304389031832950428454450174938364678752336737082456637772362621049956304009987094718854588425889266935935541880547491647592748402159584423699029500403650544485698601238387288062321216972457142857680853791228691826301165907664309592066582802583206116948516861810083951255957691892428969751512430762901280692882645252518204579346766959827772771600963953085228293405065607258349239892012060196360969216796933782132921403771976650097920656188498120635839372465075932138984690009996972307373565497950142006160396184698952822734066707083273874494392961697861770055151080700998845879841682667450076496565621002076312377438142574775364170519442097726530848837845298812132381713506355138548523475204516900613679070423920814914724513700463464708749550569832180060444056570440504815484190646294658962848957147945799623063145639807231528483734486937377964841645661980318701733667989737268667352280732350546294220482549454927403949665163167884693123583663426345320222040058360758679427634564642531950580390163183827818074481375415564558307913449499716318542229438318489098085805605543873211923117592500657474584699613917723556396944486066795785091345854377499098540001806443098120768128234107673312127002897691815972747793045577569921677031214166231926089424539746118796177458024459564650831629320260843521935408889266457399147763180778920388150659920427161901173116055819774298675569247968884434549711386624710952983349778489027203512585366627814392513783846226063581688175300213171580697061885033957730284941955477442411300201681152844835940509858383416694731490045344677498906790041120904525699627880999403609057854724460621558457582957402686286229587647802583325233291489150237542191841380645050704207230876553650910500072962803337417594679512570172160709813188627902328702512443137102825978087487020773833122972839962998287480358712981466214119428766785798052271012026039040808058630279331408606382162398342580605210109741376131791891884318999887248278820667870703035935723824197821476494605984331963135981558463323759542915067278650803054235900993510421435401794464485363789145280251531849296039726131608086021442141536656455148406740841382419493332667763585858130162814641017334117324692978162319516297277357677405847382292246502898675471892894553423445675984778233839609241683130572360733274372144906515135953961167140154857167619404539273053649011020062030231354752234160056053638679597414301519363643941385381099931683663391301030807844639543367114419114853835326846106076464065768830775710129974188745639865302548887748518755339757226313878710997141190191144789824391495583465805669649661199008727825998107780605804261804811016169712115758620346979278806296915157830584136788132506266524853728762376641290313295305102749577457254185646045833878962966375475738474405115333255203983896172747586848916741574814001948640327032435042086166001360988622746495798013532126881425827680075831277475539477047906575472583486313470365110828245865462946782299278043210881447882872330316948846088955258939315407385294331796271417852140021888320717317674921634073394568943597219805296873292438830974986834319659191589661484963656482796804562427098372382626028222877220547148805727803017573184004699102156547201316066637193712510781391083453614788081678714765720142132853072803276204711957045283056803306410343788391008555531079196880870965915134548032758737927592149179664803331809053120212585624730861329404667527463763661491078611843885160305123004229864944531451378336911326774531829598161151011150946242399046457622993856562993525773937972343698694892046891447173336121086629014805779972968993395107165525814410746520399894166529710215204299626053748297560027610200781757282251728302102942542646402937040740526093033317934463215293869575252732126530025166963556275816551900196881072108178536880688200760571973338550764314948558790776471896166598321769922932978814366058025851485347388983885911392864015069336331491050547237914077977618842790201151376788664267611586172031505250490420781080700793616094455940046655558789806078633520174166523545356409150144237405912114713112518638952209112462724229744846791628412471664770441852386216281390974163141185680107858299111555112609930307322843554854960272894816471502525760291412278771153896822276553426873026543074497471166048471632083019400606831967137868370426865652429773189155000600389068368621532048912458342429885907245777840941821690613562776844807510144872187100349665256941699958306385333796698302591141971966982087817866043453099057733935432479697512405415521593600365744824075257171110222885525318072783020765671328143878678257136042120306783215991558650240792521603621744714928076294886942079535388413682810292119652717114703937450021981857426130883904250370291175821456732590141344596949928339650425098913696172925437403757116106179913551883891809088739608070404055426257586654903354622066825730320224836747575432278701023450536442261029637387589662925613389151581141462618213060978189791202714239589087473194973761460664448947059297620666365535739629792218692982750297148516103181343225950634119852655750475373660000883141378828473860383749768672332930182464902823348956954855648300548645585234972636982434534011259445815983830977904802737680634645609017544513227261947589031555972647743951173712203136050085926698050913071559173975595426441936478828984235426001473951836448027157207133817639357968166629467215893906323878114012567718064937772011976904082070343082884735281192419319917684293128683953587460841686244171050105559376101683333066608528138404378270407061393442179821512212146490060511401998977802160533559473389205507110364354317935008530494517544921394461024998561638266383720470997514357096517253844226583536677324187234739667160303055220637787105875387122664447813337212565710720338451344627757588680905043726034634529342935292726781461616384310463266383790426228353934686155558559351901562759218578726459021255550947539526254330687626812285014455902164732772872722224820726055936289256015744500210737297884014244941375676340319846133722811935913974627086583762608683282164375700250330832736498979969604825287662808497644749597656268366586141075331686184863520727705300335965529528187458886063225452192904269314708995399507921658836474096198726153632961365514294317081175972264367539996847634996367005821968407151377724656850995618995560748849638695596378863137961250072029676739625956055026766126403637204703080261014616078897844938779697930522924650294967309641100499003556978702260107294737307043998256670593288239074199299055245097260298544088668484380255128247993034873998730636867591187464886999742714978389644167649552199639994213797376935790435548337205736977462196019976541192243049336016752153865301959393808356608397932349585292343189385525166593825325320098129060593107621976952465288825911658774293401788245809950759072902138909944038261072019269990232596398300164223014474557546030072311268511146307786912954874919325806993432911824493990180711064312698407437593362095401586974384710631199187270338552428845175811953696331775599842524824353809145192008784835403066461538696936006723787624655818179073671834444282486603005254189528529424440799682241652034358291300940981434436244698733942737881037346151860020765597427977716532585748851057842229708641176480549197212332980603069798572289417060095671023162945974299207709284966624069028380278395284565228905417931244657718472523207421698765849128537837126705112060928119146997365681531646724578259789767344475333063328927568472173842775161676640089902024645352209561785372785643145618318391462865603605788035802234623764949604107313808072152948922736027421643266052644103014845022691710420689106702660455311338851934074075527105925490884622281972125341392061907757209949189439999487427851504244906904564995315041609042133678709789652456091320039741829334100024402714979805804827952435472054864215940623770990412085169761391729212653492128504414989223222693500170660488358004546130646497594448157892428437792589231108242397514519556993822767346112992013244232568690969329801843870537771794280227163856754741667240718691638160365630760946093125458873986740482862357159500249487298057596685865082300911247995246788362792557776958205574588971669280598016276025636959240361541145136747740685694491218156927637348264800400296768549150259707104002854845234954233301913201552416862553944944365683237404292567896640755109254644841093415169041333008317821726625526935958764592971375960336700286574144998470631559431657848632555860654224419653570375840339269847451719938200649603364474343964932807704033891743835570113087504469278446609564939106160434298933395778034195398826242106335493535327441700085731744730271072707915448604035984933595001468551607115279814432234404134808146852488685063063955665438809751242244707622058602058742854795094164138213352300123316304824211522865918427988043653207227945012259507542601361248991473261394573981425012341121348033507212009352726220572241478836291081093285668417249197349907382401220135884699422162178839370184708835331089691016902829099564492894796487029762037439981618985637098155512569967623524304848624135405639062532942358250211358387676416604155484461875274720555039015901578777770593676621099194816571613026167264842587840226273163939483607214537265313803896453898970921447695787611947922916787286405866155059010710499033955510025274824456719608087660713742071111454414546800416098073090570065935655623296982865903939811577162632695938160773849610195716973107780290594885019724238300077495209837163636784657316986973621341640779259049097893986752041220966964792159247354227671215508480399439786425982342499611228775982695488155267400452828758725801752826799372274750378235384528464961207948680583909562443941475757056220097321463323847932410179949186495291059810423276947502241315618889105437044906243380920250995586088187348771231977468340453299700073752867416870583307819666139634224716885080003260293619185200983814218459156490027887982884955977335926687559404574378136705079100300412804296533590926358062640966057535954986740686751373093698229737960330233628264481780928260113321478140067461690184212347330913779230969747735854076512169452656522558909563525142585317348939696695069491720890428186083339455909286817466334882281322893071674528743638463808143309362193492673468371310372908800115586516591958630304111246313152265910919165667629010452828358936984552027847871107670144109902735068738523546495855390450088348382008377794956847997100124986573110938074335892265260075975976366331250858714776257533431800433741102594789965487116918721015934840385700330942140492927538989173454915968838980544891074502036729799612527159363168199976043470716859299580702706800530717039302667355087446098304657502150574509583580455056752502541436677502619425991804589307032408424534659692592819874441588864657587438316142532987216903684502970530233738549400883176765330925046391321434173975151136052771470835843939237502742349144126080530316610929644523141937886713512136133152246022705355081547242539339808773199565939657482326283346358679127454034363906269801985763121891448850328679185652734400319662718510712691602003469641248073570194198780527172555100760523941494164437815167729462195231135881262470007727025773665938817094141342759184623634855307627345463010344125976598196830891538989103239011840219419153328354173033129166646678029528092174443790460406092326874346152613305110632081143792654273058979061071535275170817842673164579150653646073491961246052877076637812902911948451159383360647821263457068556506846952363886411309277228384366310794461434368654421475448751778293694813254362973617266535408288469849066679982585230201458520797680442517516593222002416723093041871250469800449760191054735228521593590328631140889477564407276127234687820152154176194728316432846411382151219415916736984046152978579765764785415156592269280213695407633165475776397278804650773978362556954235010945229125862111416983959341383201869062804256268153345189531000688179747509060026594216641027676436298681555676063711398445326805316806440625028283106087847953477435570494781604877693672793657004367658489090929675283072123883258013765806743493386886944432014280200264390866304636713399646451862893590215972406023672059881593730429490187408575025885581796618885687634198787113817218033609393549373969953557334989502083851140084737481246167123022951076259767745447395640232251803672155891163922531536766752983900975371397382062987955124348947118090800229470828958231361641615208363712741140332999334688662700661958598710520165948009216372820149563506985099757916987064168404507860919923724610828514838344006176060950892880441917104131626436050287665005798736402592684419523858617827026118214384956046415446605684576967267759409562157744168202099990696511987430572617307323091120819827339740677269938596848757386098810914557302948380447227074857027708094777634303467493768149834369531268474052925965898984556491679812704943269803093831966126328306758714371350268639178186615132914392994765599865110496500658026192519767175320554125383023587361002060734572066215276368589915944969731649429374882489379875752994166347292680376735167064954972388699881650236279300633463426445734401062342402888848592872570781432524933406494860598961371147377131827960873748233409323387440262417649641401348614759083396266721071580669880393371419171041135597068952844989019384695588667712586407270528333877122397629300446728986949699125201168529104170037778489109318915510346903228309259441060440809990148782872844083172576713650058364463294473985419123791585957085322586226676483732911527390811800455331394116306009404494707051716768335279168293725490276240031586874811740139887521482581353785311330989682362608440974705642478411355543321243712551051993806483304948388843982871207455595146247328826316382725842120384090744271209216716009065364508859140228079104308172150400931267920390050045967332384066758737451806186636374976110270158847602926708366780166243577256763687790360642533445873006445028206473489163874795896655048301337850185099185981892841631153248587808705608000745279939688606220512644087464043532415322635138116036264053456466049420422842793464745277642591877490861301679550611632398324613838367193477373548815988357131229757222325073308375668664349183049291384504974326283348165794642013011953469144609911678477391128143367456736172468910099150868820447954839500168202280676453142557500380825799765221842004112490730602334536982998990210571067773820729657525410983767429244311246572891067708491099999378919053700055084724283372661771473774378971808974108523647320240676137258243687836810226029248776555687661791810130508471597204617435988561274951376523918958687564453328563257130662699129417191581233737215286949516479301007178879396935937859758938601923897100597533832543376522162198158545413225261829133973169453951765955407070457720339720827138913030195506563749852669854463286794719951587660221057767110734669617980429422870339731685419486268870881428209686161884334054940141825650458451180376771257337818410071651098300604461102386772713858290579685618228008791353283240750470739476211118876944798216810160826462010461969017359687572437906961811887117091602911619129651734874585788280594130869202358463881518734128414158692329389039768993308509383584737095239737038387737400702909084285026035245040589729315596802332927972019366772816129970806467251405485978916076432307880404258120077411715077433198123858948574877031189233487982455871531723744736637905906826237382454575292474707303787861113550593048460343026387280767626723157372159773921045236795610895547261927431739018303626035190419237825804907658266293298667195971526355923707705230724240518094337811702024282366526115586980875878125770060618737559988913883151881483285302308676575814594922578229791821750142542618522489190131305535749579935727189602677388097441945346134645317856628566890982879784085824236897645676127978959050684975356951342966897779039874472080051758281439582075063828700126014815996343980252081210873261310648371056578431382931298225694125797712476234901790794463620416803765778773869652896722813686081840554820382121642033493089954953688125068066329477913454240517162352487118980840617098225375724975820353998100433507985228589480304271072980923420096945558186977948219507315671730712490357789737044964493896138224776877588176551893536931614027963172140583145395306838284191585881750917382568095514502730108529030626694436534109141217120608093413732235942950272198903626578933095123959862152021679164329534793012682996932133271697098828886951342865068162235776209893573322308279558553768619503211120579949925890351176337941318321647165069098997608178279712162965258718944399953708487798345126050191947177302599978789004826752526956837653431157915067568323978481488610416285887020243993499016737161594562854430573934625552160617959099205970584816565090897103404502596826120776229711761969098811601955829197118964632342315588312611765528738647046447676068459083727323249608522739589454295154837725877344392272882627131498772121489131270696320951750244162309303387564043311022119457259757190268918265546071613739954653664351151836246937879007270129205968591298720448273906596083478441267771929318990879262625546387961726465487737269976479810742350019389584671814866490718116316379130233025919082888889862986348735296495398820640905865616310903719068613668325402297734628919570789387081283135964543966875083133405907419742716707703459694002326213736685685031464364618044070575460659859141445221374320705410657649523641191975337758695680154818164724915479501989322051198089532817554771299749979559219423433883791441174482603443249460006890808954423623179232435948641432381065143110881690695365142474541770343230677983055104141092586891468020315864233438741969015745892938792626261541094793845085395748159208694962899078090184352465616228099755379529369037348414960168236388418153426696683439336756070113151279644342837851370158825302926697469116700979653733427179565426078946881012571927811215768776581541588115066468673680220598415109869001579123291987599962018099185093090331360439957311653068860985870202371011918949494033657589602135632660689082226368378945560108900210300010148199084303225010977456895334414124675363185035208748334033750958010688716262228819972311985325508658530155026271477909804995095241252668218662795558293710611361731270695893683105487419804431928114089275799648008056093724000512547873201764236552662979736019549099661958957509138400029965574402652786326417283597451741927415550264971040040306686344855225442000563095271711744889190732450225754423599168245836166024887013702111658238610503147161030133028496912289409054602297271864556080535227261998015860419388933423828793754529293603360786170730763364146030026166229302711570652626206453074045128059638456148720544110649872191653777675270179275756564156296064459501786016406914639589312530751274362132673340379407387800989362262159550410757039661328297929987700472478353440356105904093892330904256132602938322736060066901327210527647987841712578363531236859907961618370568281454791486661478207643268813530792864805472962847533012164014903278145818550186973165623159136686277565723942062193266674004524748103244470501486046990536840601707123683973659007991581863652433229073285687672767363765122449413194916609185109559151757516008643326510512357126977130204779344401157454784852488781579161801914796665860346359859883787377839262956839173460787566498977988617990809560224352270104150119933650009482653813482032245704486253263204547183055586210889825812932950809867472335079837711669904022881931639540539958379427496340415717304055672530116508682696369469779887167806566803334991048869985153838378450970797582167090494949833382457777340486198304028560837674547526540551075174354343760362717027785843082406743083254631046640170170694723708338900043259698940643909332201510743219778280216570003712033974078803844096539398770927846489315960490689064913983943156100931688886057966245568376744656390698367997995801189028121050188407644903075885022718100660461250484784614030624507682221779879388203476829998071076303688656924117424129304564679306201342862456044546762160528028749309557032820174748814843973976718820292470498486683905203926931114887843703221138980473468689237722767276774966252245637069493496297730009416119583049767539931096790425534673118785066861447655510216769577109833016131090418195010700779522414756763941465388466900888406452912951137355998675869788021932956494230741015677790990012952613627367339878401978700916585690059188969333606139510973933712887898525218346354180063276519896981622759401340342311351171698995298309622407811563139999463180987968669686329017760107248475972551689742400736948129893713297714000094119245681914729671122279315408226728626596599724387944046298596811440547866155620232868370445815193364473238603199940224360477427414784552596071861723894836772575454307830386786392706243954029935250066988849048618100169070565310027243017031843115799247008525836719710108887739737307293441412712132472675115823207555074897045416314481620882508984958416576569975249467119732310870409607720849674187293614356247877197570193123077736381282613493394245704858714150200707214167961662816658077092275714970143080269809936989827041157661371000042863998125164687003217534654124753970391810603411084771026857576866450676598075046635015518654509054761834598531773972169070038825945501968502091168912693760467690560171234319070422352777492477802688286373497630406814353292404066730918372720576176185769336729201818899731174934014527598435781527541035385790011004001371303089741205583192870352364160771778746910346415159452228930896587801925086477186628717065778226646664590923611667446373420345765627069055571129659274146995451861465237596869245719137648156994853155753985807763298826047400462630386773521143332265045115374726035937939772100762909971091531086604231319719329373506150244442293842202827412802297526466834519236963082041027981490393222183005908947252615548939223966437223872518126746422259328651586446423679539652324612806246629970267495942347673205898996666994641331196773562685356680045225403450631827706309042054912731170797981515506468079394838077297964131135734864023074196106248852731626288201398453245201100563469301873688352645740319105330667657490594894773144258770818316549451716225134989861587404923116879792364103070604142782038437156638973690568759617309388836355615134798715900323125976801732892993104408313942593793935795692334372897669671347154761255202088005923060404297657742383081218542578485902300175765635695767367999223513445241320911933788797986764491818088719882953799294345121220473656283481713673288665388625404123280991392772347480498364272603322678334647686799733456191812281597547822987925405331758765050858174889181361976859733914336921006695571834442881778611954323426573610835961055682744883376664669649607898068896848140533094569662413894998765818976290622269638913757502823536502335480043861391986146125982804075167862150344581108920801098280710555521782615363371664575004149851592940925486850107828293407568996695515243018743475639273455238780155321650224806437509462654759250107787049994217260720728371616911869932282933479131232770566325093107961701683420002634792973600268667700094321821260514803459235467304243360529365143607835173914409819514872879407195516952685370098543626344595006792911934152306782389423362591709041121221475180802660098367654644334129975336043260017025736451358107392291851883470210221908063637419170170768231385429832604752140025906465553478959601820607100069018581044180207309280412288582837541221164067770722883397826025675439642167554717375776221863694128590972645638959537045685870491454779639222940746472902251865315281950949050180658713937173521611885328009846397506501718366397691436362517929661169608116494389346398138140083307960957140604063843048679112510224183177993293333559813527651567534723814915780427082343288705109344984092098091690219705734609884827020545658232392639117138891204037387797638099926745067667561164781535857777694717198946817415341954207034313369018061467672907589456223549870006409923046987993198638071445669486566410998689632484738391384686246953616361912552815196534647825282489887427344321059229381585033827407076596592403324447697389127461814154153728617353120108584629586696562574802739151293536968145552488814683322047630621958719921299423031377388642272387996227192792125664970797125031534221297547903722262632210622597945454113710993168089124053867092854714940552799659080376519101946617196125076623346852497192506713097671689819239308422522683682064416381689211715045309312415914633136726743771166094083682130898915699083807903610441461648274398679110045751289169123769694541597271641394202384399535569311539479113587505677246098296130419668209850331598530816198674249463782619276279124386309936583789821728865389834235743219026043124873216310554045931187510420920196242866913957599378510521803030659717927617848136075866630408605026982875653995500286889379558740126511464975051298915692439380538595958239188112339618417997321663366059815611802304689680878980032511512261655392026021539136949251043968125274620562900510441751299960548582084661428610140389658035732635227945321274811175274430965918150513393387868354404241212194244462458893068992819791064421614184442640588823050476837953198039618650877726258222109670453748704761450659232045923377882088161706886643336180485236869457199901719427940503853906735301686024662024750573952039774817703312351745556663167917216987894940793527083286725031187654216962429801362618772102885485077935824422944224414964835470617719345941867017721321523073384406406628335972806799866324246016219565240794632978206751406450721119934520865782280849742391274125073394071264684515372388484081317681310203393346212494926443530724625101719241400052176820256699168374578586568090482964380580888618850023962091258683241731785940180527695713859846167045047145108357885661561692944279713327606491954094752766272639221054100550326453754548165492975257045923252207517737558220209743530667396445267448888451610468528577738505138562065757912730781485992382021161054559524623725936348556595758490031606293132506996976086618388056555143246111075182380570424742504603154350036138388220799875516100539179425428815741487421163338511318670383055530090554402145479038999807757505977315103760041919734164629794737730503327153331047682974979142690449414361988909258179967390500847962996738679375767913826832633659449014071810865375933959333918220380643694095738936379005625862718348761564168451972070174741263831427095308736753633828892429057982225753817445073420447168362185903253272231324158853324683102131223165005858225585927170912761946963268292514986564168975667823382318849442106157331867495663415277818448385260320079074309450292876133476301671308633884060095254008898070462762720729471959565412117669857818756347425816002064456406057218081912748934026846047094446065142061978724954243469850408818271693223926100494703798331771423555977784740805104466747294772800352520492583515629540674293981681029865952360923222637425272297496963270578860618349525395870732239064688561782006328234684491815897526900139740334051665722552845469291415720408525755136256407000997609578320850376486085505940635137786220799335596984946863591515222830453164563967504193740281925264464068398838641257148860412590459473607381704874964164547842338414071151311891975940773380142018713916803094727581466603418883661753536612416796151635225398229463376590511355831003965448229626115430128917284303057079244599756928667046912962796447569572916882716978058125633918587073950410840590505093973260249870230018330174758134990939166749177089290200824848094496054824562050860153987721627129178066708357718896697113788610433083271901335573122280211220436754226566820630358023920347073368393212990143671777948869910905889140532447412063574796512187537140931278856374451909279526207622275416383549185472211925661892364398141635658395724055098648498354064269939237313486612978370353697301281846464780132032810060035886690862700068207930479946640457163587178705637822715014409468948670122667899518417422421153980280365250431973588858656082667027157847486162943565608375338636773029486536257883241379615076424436036579737773461937182184807612666559077846180821416952869945382593940449273553360222913281143183612076769250587326806953474408354409157998638611252703581535778577901850268453701552826337398568775675663009984144476220294032363632588563360516052273582759593656372531976269338514695456868925861183757795640341645888146945382712913115595112166832771156402655152810302670469518032341471379559643325067767860132796862326528651452602911375190869767821432199944657948236449610257383226277137222611645450008466965126139185246792514846030185450999228613020607004686104157744007927246388819013850098892772925721555913408431532522233416361561338782777018914112430137947634096251361234470881829676795886910048621391377495784387131616146411263827789127292428400786786040615728916622206903853204461600853669493788000364002622212200765653217354531768241093474942489926378300955444651983161864472255374381026444764683934868382524959251456866575858751798752871809320118591423587618714504314086909740620752526777835587338347761316519307138323631743835919684887549290548935758004662487411532417295908185109933524457675506308811105377341429728014171041292666208207354353486850620283758432337879980633610691895288867554982200251491973458314538522320634549572699686090230025994141074931435911821001584227013887329807901092849485609559278784020800241867865360261577746380545339063295681212800346589934607221887993637412323511843498349584789789652846984176095043784217672422330698502866685203311398419398237265187628712579803010840261216506927518163433266996243246258471293251156621653481472954834996453943826017923543750955201455662516466432447855185359812620403687688121192709293478917408936636093195897379453961713432002854690320536602773818638905648169766653825021958423961690514552242440687743870714581267259976032697139538637465424132972680730096585051646268436256979237442903414499334322343256461790085338263117790501198328857551006327449558487427077021523980200709682386363497244738187451230517150486185980700225256548547580997157009766698482224536791684967113275910573431177764285539826786749065865932007459897153775845453044295432690918452084986242520476694324630326365088530284181463919437065598807759736530068927942049996048997724059495423847045936104345502077135612320260009302395119951086693207898513700800869226046202664817453199255002273082544622283395207535302798072201882492048629881697151225012194346910239386533292120315172201876191626809328853864829139711296539294629985453589446136053777361214478032243718656520497345604448469419397752786981914289246104443168438168518439626630777953654221903897340348296510641187238605666906158854060736913196565364871389998531527427961500697744996116621071460766916279412709506342252709913567555415052855794625020238580680696415543030907079421596731926501624683580589625493159931346483302427469421101505306147191894934604745179809812712040011471410827763338984522083149988579408557739651964828020190608192979345064033160706561921566436592066072278434404519155873585115790066562799508259700545423082951246861083068476714016861409944909166261094299592942301855441770942508830356898351452754958463940888853980043761972502350047387865735535430107119788867783319122797054642175357487739187566152380035428500972311253003064132334465269509086555651807150747439620429417243308954153189754746953234333068765295419321939433446766699945634063629676792896706890715767651827985733153340439638250602916142528621692744366337042351334344006658544536739072381507959708974885458476047868729538662627654747879132248177956332110671310339688348009875475692252503395186920189634832443945038442570164121995718749133077686815209272777689323105886873627613815861470227400803922417339287976647945997368547259709524300005520545881587401108917107065061672230865241731139117515733397820741242394768097304661295303016809645662943604406344152940755895133937275373735281902755037028543352092647183039380810462476983995901420516962578071762156597366242785820025207667897189101463715393222736291989368219477947241486754610392475129683375819335571430545526658940587227825625145160148660201466442692861412054675734577395083669838324729276637276579210457901905845309945566737846808418101730586958249634506819673958412636541757723298377567014496144034051912732101450823757186474229147632937277644368421303552707929695478813120907777513286920083146712655805823655349090580385483258460094508761094125812266024837538283721013407777205145076643788940496554263825901218109943046953815422471206260278973609851205835989776109240923998807946226390276905308946728042547151260515901246684318851942099341455074742208178905748048785462558050775975773369282167396843174634590030583302244137633961460690574126756691944044485471633752836015666668219139463280136176679533142469036023419811446805208975502158269638676634717791483315907593524145328215930143123479272525687075033232311119184100447047913270107897965975793729467496877527372656272643971310161093806353975282151459474734210221036955513454883369920268391070184549202699430597518182359899378553640741330350355916310809321836791120483906220754115857909380397791027764688248105607818521418838512434669969931264230812259810533054836765332596852865059821764730991211612482577960106565624853496809485348263005750249005309167146054538449686509921356868166520154191639071838327718879671254259067141191559521779882335472998429254500477675894380356365093802301165002142301386178064109800043660478860836871397302977204957044030379936566130664568576858086115267704666338915263012616842907943755113230738762267030510274470156173018905178999711434279543926797809836248887444077126399315855516866947321193032210935372359807037286010277287196810043067682395082218423856036324044548730971397431812946438217938976452060821777623990646853152006968975011913010417457528414201722600944910396493110868708998610587738802070664795455704159926829865891557457785494230889796986683798927361424381454978111593968918647374496236164573396603844584009572710220473653327886458802945494974747761513418383224727581957951358068510740176197855395531432625271921267131703747528058094613896400012381400402687405321679316733894233727704015136953323072512300907767909516892630142858681904064348906551806514328884943215638492265118713071412724859980263290074361376637829999926747607876602782044652162194463272145684872673955409540162634911776085481082825376821518433451772924093486281070826187835222622108821001356287551624654619421061083044300379498187838866661471210749159367381022193064994480088991619038539542512359978725941219169860710906494032707048013098540308407850035064019709148992543704358061979822749994155448622268790453821086345933088422522485332755069793243344788704960294087957975878281683697732650339497541698725542802218697062921152422098743135743975705966838728517504160844867017362967766653816385810005625494772846963709749956654198119602160921633766943156308547111455668505458586182669774872767726256495735213713501151119652524825871761233074699877669690394452879635553429820534042407223103819212996441514809836480126928743633791053427647916726605781982124344796693665968753065830315666590500803307418108551819510540044340667216364163679672461745421313931541301991834095284294715345047980308782892280309282607304349406963166861709440089350137020036452528297789923306911408688589824150393654697573840523246892748280572122524953588566496344693070082846604708272871471931183888109405437547063692209688574565795766256194283741163007816211165365898456140804902814201006934642501018300184340703879110073086525387227265780807596843209936765735098945497403814874047178639715317553359265731253843079750086911314817866683439867365168306045457866409583275378799614721656252785680588912892767406851821182113876461378001322129107257714756902920841504229105311598014786065732044184579036155006699973161152786229065170487494830385226953105347730820436880667571861516669721051523211090522795624898121819134904215191122880685787231558831301221299187508778923629646224399706259746782729626097577889380237103562303945765139170225680596534201951959697643836865743340616864225783283628017206059103558758763926456308028884635727265748244416853322295692581386563506561234122508803452653731785165832045946690936053849507003796857635470699517674245394625416239351976780774517696612944070614315300422065867753569449422864671788052610099559647389255140019121468931824613782574430630648102520934827001447975746309009004891449330571045309755342118054016232272355239805654403808282431272664149848577319061516189418546861607009193056891779329749052535720464847925780259970320976611892937690128637202116028045772842569999536496491825703884487864148349223886080022324338349415220289318159683274507700936220776054351578201633394523559047901548917187168861133379246209406636308067735079405643210818198538479971723737165068996496846990750347767471803741438119200331175176647885981890808488025555108974404558121354349945468190213778653273852579510652803251190509702764037070450560088727551837750425877447649846628429700884092865103455488938240491220610764648209614761980976396411278746450655498758644039594364141869620267438142360364339605822864545530046146690105706574996427392122184652973454517479568201730751250254183297999301042376369318268183314203686848995881043808795472937247786613441562076145555026592075559038236485219834756130069931076969782678207349124238427286810248609724758165122444137136355822047098528636825726750677442601351941835745959000869483379449624571936793363514184553454077090505626883138380426330972499882286031582868453873601181282325082307898148214889351215046767441759977927372410097237220991965856089073142688633638539924448043176838043940434195316625269970120143613319914194252058912738438861200671356416613599385107582721854376387539767490708232407625736042157083367127909084345242356475699079449431889248413229883628612824056452845193996988104342472590702694359632535174838130253361892466506813480300283988309068163985731406754588128784635976369213203780571767313739350358812757852595962102057408749490450518844787701566277787425560904614389123779242097164843079456684256956802897847075297785308060336981561504109729365625248714154189251137103606598154178074022132830335222547413741822493572581184785317502606764500335186960964292270205387151488953762952519470375383498309802179763292951210819499030592383232173256018757371613357587409319714237468690529507256123279108712463889253040235760789093632147143253175739506946461605335374239164737360532819671311596961120103188721310702352269772100270820222631341012394403843732925069753663227544556237772673156865751594881350997492771149554791774359383252306667432410050973748528239505352096421859421942238538942904260453943761906535844440879069013153429903386266737650014635678999777611038004480459498594929802420760701554535239648966990829989198849360062546535799857865900384102808773618296534347114190247452462207216466729194733844387911808765356476087752795439760306118872114723425792629043944700903486650322926385655844895263669315918605769150384068615045977052156192060782823997510990622154123452939962751684364098635708624903876680432050316464304904427111226168767090427521738507974830797474724628442424641945698595837114151955499079393571944214832334300230599687177234324106915255469050727276988695621018938590411490365372268601601872071982111435091041401955056838756584706980489426881036554969321453795235090312446591723839339329914725582584587915473362097599406722269322067322274824384877917467488241503274074977568435977320978834127601966229795025340329794221713591093600359825938567724566636076467639871446988077739960354149467595610857537328665330770558324725806292751160059463950515685210034003802545781906146849642668859363261012775792976084007392050172873538763669557290365317541221508165939882078376578058757271393515962443498334068092593228525453157906488082434470404889662612477414234265126269743246038258877534549191630453546024480621217261899439103214895307330301315798157434259361171009384393373270950697663199561090039737789232324857874787424771173465643075948307689937256764531308006266161496490960281415055273600617074841418434195585580564812998858445507391424659774620300948984011481017933188112951360438971702682452181729679201567955158934108830295038770643730198955140399603509504430652940470373925925849845891466728231318701011109532732133604150649841311063582764964912333652186346323163135110683386970722949143069251110608555875203926410551819250837071493086459497303957318188342909664727463958704804450448966957424285835723055573089329877773272101685195251589678160264169538415195550759307233096865588011554114797225236191981441048514520629005722827267040832110747676834008360256655382360458108627203597711780488611482313873339747845465837110767656756642061307424270461890465740030002670883969229486518107826667727263845250849092599817868684720310399199634375355141858952789781201051961536425210524158233756343594730567265935025659375212276567458780649210565958696626869031890513340170976387788993376051759325848849197645013871015557656125610012579061888968618186147460443420775623513284058420938188205059153062966998338373010537670277623353892114383014126472594806743682897186285495961517951791776511300030282972700846413802601715758226741407928135987647661287589235046465359350505336726135244180577852873336480078053456142339038773507928826301606382950953052657649200672450014953911115661213912267166962898845531841507254770674888320868394191099833826271262722720219135356435948639476339638883829509443739443444292155591100853972853446043102135884725517515210926833644133395331863637496919391188613377892770713968240438525220505827561055480925732254760122437296268997070122391583863046839083340511285959213809025814722850800033609292147047459370569553961282697335169700880250962745820382718449171269501761106061560764028161873047098450115725859683931273305925379217371492919745751647383689693044710608340435905327962294689032073028202938665734765638867613595126074635935617092408201062834108160635492575494568229648933084348149585033504546444812946765386113590693315334653235272014097679052327521151993727390477684659626122735066574279814481364848481292469867358501296874016579530478003723986377325965673807632409766472007620027826723408201330673097481656269795951350937061238276344645352659229237822386661852663982757459385933027760026900086845459247936231766461663024089969713513189491981965761806740229495544151731252427551382151560080825611095160642931409208474752098423554916534234678702505851196702014003954705319034168076034999879600979576456078452509581206073990497707264942905368170324487056788519805341935451821710321620556590862380549728040950167309324198969247390882567565801632928835286763634971211368737791530821578866385303438912176399737006239544757788041552234080984615591818686647580996789993571572237267005950531602033735357076239010041298802226247294115616020038029957323701954093964839059935560029001781305395365969541818132315066718349744892694216492480116976651567178555101749867755491133511047631213963164789361023956431124437104085295324492581541430992257084274862608554647380431526119532496153259608140014246414763071401689503295672532669047609188639807988786216606952108033811567690295159898170472385440838675635445968815962924648415277659136794791544529067601408887173999049223616419533012663657049617525892893126370604764354105822729947530317817317125960368588953929959848324502375205044283878604749013835803858805213688306105489555587139965982814520529168643043131586637503598880898395250950604424685207967209443214214409411952168087538828208431639113332619234177970282269546588478329571463844719876116630682628598385634865758399884609797494069593382681582869981363295615060537119336200878148321990054970205247239307255197970887822374433734382336879543897551539517491993501014543407018554188171354068782266246123927415203050245843073843060724865010006580395151593587046218997349992743783680288078114492328383784824844442774902884279929440514604818551010810096304069659733335141470376883091221602542076841966399545992165354595962717054060982535338567989544286966892260031737077567953858296340480293935931316022644707404736259520408654098476278612759918290845384747447983780593108124040590067007235996088120851443818197622609565219110591701209355701532434451026221020389090955542912401739742685148955946739328385240097735894400459880446114848147729667872908492203324009025972562789979002980753836357831567355864480263171235508249149370832281457701907020300908620744470217009545481868532806466989903130746807867216190053857844641028838309737081171464750800717823011294226710070782460154745826138066989379514972313783639867710531236712343804804853344743379765010610865670920207847626936386382843462819721228857206827398243365417967856614046281629456717755157969069326169657474036922814113293903194209854181681541784326735515881769963309775179965385191390793104687569369124545149030542739090614417188284573781376688918365291316261073906006518129867359898598584395487519975703676300582271765734563856321443871574248217326295540684478740428785612625510204160807941814393705208953575110281898029125652907020575162260954829806876508480960531359136434611445515972731346239274945535436115600845186498741705819699302126510154860319865735036848247996741233886737893566604008894931855985311755928449250136848896612993929293768142226510025585906965724321099165022610372003384070087213732073602769561217894964967570419712510008427986798868535001800892755247727338951597573417768877923312367021251069985236216663754020163492326977437671865697922282286061450047113322748483772612564448115625032302707590367714908092924337833886368261695468233911432458232318501134447823001308167536869732900881645418915709261085905768208632682552108744972169826712405855362929700021212309587633322558604895461605846021945138721712021738720451704346765892741353526148270542791381265476794763010057506160512279103157991039582228791435605392560402819378282379195416246520994650824665524768442745174894700019984967077591314901074688913715250668416633353073420282586903367241070703912052224366561386691393226884740751336443374122535501857892803025100052045828229174471331438196879249717073715041741504851232454502981233987176976849175675094259581215846361336397827552452309090720740255562928760392149795397018636112217778466577051010781055019532611165238743521299634408768717826249856268525230297527121681320068164557671546388427641765127116101240276527042903218762622842505604871904957677988764551194891139130453565535998196590192012481220337927946116583620033136142446596485373810382825843173923340680756227774462255891550804172339501786849745784332355575188782554557701361703445629878472223292978772386896077793277755754410215279219678766984974064774308563453103351451364596307715462406878072871212046838917472625478869033325233838065063330607523618042267194508438194257186981774806628207391082116677746318084044954232088952731721818207359678320057244309291664820374958936993776855642657153925494305640825789460392938964959089439526954537451834553296471891916962819866037208511276037195207070937890497721473532585126314255540325194668905883004488330702834817087773006211226873274832825901846884788654865210699378204746007670590152055698557889115052527944943302852536828908708875841957046258697647350827184724568500265970763198354400239982839998819001664963178801818082917847446599923008033970815337583872441428509873154069652365726245090376618152749722735448316284061784168599193708880250613151714562577552117144783205461274348200493960911196436733397543521801717864020723929611929525760339309839555901840890223346147169769191942465812771705431552740677781957795637486966679198291553056927431267864421535956303995281996916325242832087128715818256434970041280107662550397492461982529393940588872983580591293162341199617817682962879602190074408437132979766707822218211848902378011766682235487489974441359708577199305245307333750230972555236876977595920835327902249709598495026218074313646895547753717907906633936512868535986562236783251184856445657786899583651885051073731664744178360738826380184656889604109032337919140174590690745604541495293925891595352687529201828382863180411328421795791675827222822903575716869118658419012115121044311284822038436306745837426457960857235950958262067895247966654659301015523989727170720203103555048363237385933458899131180339153768399989344601365290299957741033012340886598464090258684676136113612298255659062621676740602036300944017040628031472465238297282070417258829187003734200059136099746519772302402772781343118527643977548232935611731586453838702319149472119078193426367098634779244241265234520379799096084810651922978052808228580690514032037800955939849673547094880524742962501141493181302463434859696770575808996183915938170597528333224359967381611805668785468916139530893758295498251861456414021549347028900707767000383352504782732839816085966278612928416267192702711464172767490171796124385693565880409199122471897262820328596139818909280275390907397559278976571387630980004658740036528621637684968331304980764810749717044412069519127457748301443070023829996526004036164905411712077119476018447600573646854230953406039240029209808312219087944359832590353843826820987619134768069592321628761895813173030855580489230925115206878340367091177043782999955533097928224146401539349025127251250247260595662204186088204960356250747286470149788647173781522206043160482133275229922971589831508726469937652226666541655827091232789743168482831985635338312934261950723144289785619100208455912748042937987461995747091720632212886278760628725373684183839533293504797419121053323937892750579478097260215902422432484924385544621924092085863702372926370147989549735011129099587742501636734526257156201987129671183141146879492664023906335918486327935854814284791239644582227070746136162341600722089104813004938356200701855744316548636094224452285713289429630165633239549859994665905802398315986212242384830016327920919131216280677085958658825945593695975747389836149702620603644000655551988136948094756209556507085281113402402668940252790724569683285464308940219918709015924816776188477772302512403208866871863281517121241797671283832276950051378330371800023464356091852004396013299535211735345773209384569427338740022055454228466193320392008456314081687384884143686636165279699037789756566118437015746500106598105202919542957782154774751322473081497251339779601702774998398961412835668097960157609908657503694927308204404052450091832588103016133059835433196431717093746310165399548842783108156489591060147401651626605022019386524000081505646751232443175306821681857769164730820243659677471087828315647052233040491930832028153252325972764288686903678998631798965979942887067527061206668910493648383692192492328439225631622937908438356520189042609889956945708736807780791248326276519773706488537586078743371132472588676181823929707546131351507821814317205615092085440403871570546631440169883185184602682028273417677717949656533041376910413432514873527216197314690528574619186938326458726294346452536709878764864437446307917039511511798153384567257147271155977857770708741815858061654073190153143572681649535939799874468433822204520660664840563636894650191163567497262777082739329587538126855293433867537824686151906581262446014027990345789759220812265240971828826227071736056486343625491260753424227968273676362817607976889487192131079314790354975510938071573684877881962353900721825704946166676905184255023680263535330270907932128829239857507844974886272297794799828976875755830339896456712511329288063226837230023841706479127825410729814340376041869068746590518128506986727764560724385233222202860595346650231541922416652678838824855390178567214417421130189851474203743022717862995031307464490042461520974737892299959513849620028544450990717902887534084524675176571105853177048035811626818517530163702927894367721193404965979543134776404328115896667134910048318795944620437620248582667523037837967297093085272348410089921035923042009663181198421180232763877488211284901438291492628014797363471755635198685867394406174989809057419931137025833212017868834951428454384258768446908208424543839244409233395094649161103043439429394889923547713719319139964392092143577660788691588497604576715953696106849613976878628774550761541217009964621145998522278050680587507248852628942923940805394300313615309530859346809120743823436646090784489170104479522249556759051475437987914491414708659968882062624941994695448297023539159400375569934095682037367227855705325915064959031066100004561304378558593153618458372338285096967030201266013081032969911361564058262486928824752065563110182918592252465616299218143198282627973194439640512309696368408295428553788362743686986722871705912812112076300579697867149641016837625556509339282515966590878130329890380133534455523303581171238921172531435096323229723106482630613975422065471626689274852732557668497624574073343679515939850038878621863609358174001703297577943667265693772227953399170357173682486330243633533612933240516015921544723820161885237505869913692826357561295043949353720952488931459108774272789256186300734999944008261424392851778390438594269556207300955738779355352244637106648409655186147648457397916746073725179816875581493588479860674466219481249721655373585766158078455864074034424404521359801638129596282208383428415754569574980511335778510380293762373104983289555128699401812732270546189079633423808586443144335400384072478168001353546156815473714502465464195034114284760393675271866835568057483668518418107098190137091798148534176372044567433947681526746934121299652608009442020528322799970386286381249129326503583751373035527442316789658159608666675999758065990486802597260309893649909536130755721663358811667997699346591979123247084044520122150494634325978700181052830891581891202139203857889160844528561560980005199218453169457193489513603951488433749343590168936259643400138506427630389403627631018533756018064376611828722663713969261102227939489556901339080508133017661826153979738505860583891769513648465872132871976214348651650449361143547363532824142559217948712529656732538396765374974946614004521730009342241191025845776403371848080634156781281812372889984149006767409261427695830421651270229828418770981092309027403934475699301285756495056622262337972008769182510928265957632220380380925118543083336079456157836056192439606975158194784879854237467166688651691148894658189077339421089374709112832738867598515083696499864572142453652178666956619565128139094162299321023397504784149254631732383261679119130555309039995835190865998196144380834039404147736200011996124311212795479284610674280238080960193805902299218001689981918996000281783884826073458204255772139177598803428907865116450062410988906671710704386180709573248177846948244456384592503402100236486854340817996487189538558566126575287349766093792419466850720463938623540221518007993006577598748879050440628409259445091811746750085452275533837357368091955279478523506610003734331702685294244944516999038200344628337821392459593617932894649790209697778585695181147080378693744643987378236010333618515759289139280383983224202417631275838152736840540702994725223037801132928920117986057679343982073698273406988543974836077881815724336138951597671387900246726268438874774977035567142461645786177745492454251989974587549712262643069859606186922246481208823320167133497391537597055826712145709174425671583966386168801838543317381124259123659570685071013980996646132957987244109871508891765854274826874561439966300585790607979725750487312638339434337433865567459231257392440741392999824558467892196543264754386973057679333010928940470717424586705317858076893798013887381936143155859724645228617199546732051419107866322477059869909851576063730712052570400697071911587138033519991395557234273743400190091336449531673819905290245063199923497257423816194721692202899680568572543582454133122507190779381486491691786994497248046517533705938040627616358161115772023454940079054252790685949983186330219404674469742130492216159418279290139892189404705668801652053747068049149136226913526085124135188833730471934475972023031776671811850642873859647738064876991700011858862292591439323545594057537588278504170231330165426678467140065651496148437732504717213094628260203058938225527869132971894450395332651606727521952283883608962350366172489615152879221160772506915281727653948637132567551870093436573424941563453407208258960996593892935142766255306974312650979568892445282186548629112710435304819326515217150550010035648003355475446199482602327443296369952759361965164854260805628735317661337018924007459458660483862776759076976064941536379283578133495092412339208658679201505029428214122124523752168247989089728291254664509905130227251083397534606193816373888974978188484920341112504578388087317733100852839592174038409945736046252711859139005003700056900798213474123474292621986612434731496437459378334927016721127577719373743622606199968785765902321568632012876935133091414863986550164395915987496452429407291091175668611110688955529315282889001967464417301220576609725663763867326623957206363084073058469529035854421006003987806320733226750926288938641342663898316847273172714453723269837131562588085584097646001628375780628428176530833660769682284332303607964655614070302479611262278808302936854855491637717898746079552441778606189330946016880987751123492969982117236231801896264529792682983493841979270291878133758869553595230523312921719707216208645520303997493874834468128688732423665933009908682309694439187913564006204675677391385059935487341467656342561563516545612505433974394027888037538011392855254449269857031847514087539397106116873109881834562358266476421198653874517589575758489256467646134214175538323149713606911597475594923241581759522667272791728945476989863941982213937482874301476355007109532785131586100504170995481515441374737433230304457866392963080612585262125186881254095644510064515302176950661703669835151603011971505714900890115042894922423336671284203985087487016045177236595465089303070128908263907724808423074012923180722016905432387412741873883105374428769356203737359401705123309955861720158547574821643377567038832933694795014349504851073007571713570851002972035992516875786125992819737129989899161587747982496215525937013524714748604033104289843043725952899737828651416595512456147201792932259756859915771719137011765998316474861253562685617485345171673654794644035807733139882752326607348775918266432810351448104228964319055794577703528743214245156822700645365671087343146482940804398481303249061563157407029657122925204773823607314021141801335132832499417482618969266220114589794964844632792993912434405714880897470073661513914089159690933259110012077990319722396719275927273945185334199900101526838466643911884843685957623640555906052440885301497137500067709956886312303700516370930358034312372675174929411480312545168718933759719548537018289170427213867424783091621132719457573135223314769059193314925354384512812045005625280773445682272736098514747454112655044461379992111038354379603923802380093288473121431273641898473688287377069509382601982644723076645445689809453796874407141810478650548171953269640136870778368547199573837174284617372707114216974922196203350928941987603130184403451988844817033441471826998771228825158078527112648400622781355981482031612440044778176033201016834112605461556811358678253013493597558062807761259132444333046489031080068353000770733462831337717901443595441245562102523998998878109831725885430426496824119657349777005172874936853670080875761615474783568538499887784489428878299937397956064221646759644105973511453232904313248821792467721667855381671456359529837817756538610881650723458405422583397373452106347873309137727196506619197920635529344413197942649377937685766326539222389631602108357893199286508017581909756148786445183541905183227935491191525175447766409556608520950252290200522391558274505203333623783239880639245123824950565034520963036821246983110507306880484119632371929644548512732088456309869222282063163025076918250336924085581713577798760918545138885667636746324742285669751857742771943568929507702161854443401761983367931744399847448689031466847497778301293646986634541644769634920443164469939763776366767493606288644299243290209605042119927446645892332305752050916234109740341915009767333293218801128032854102396141500653630812267300083801588010872289287160694262499865879055764597587159843901166969533688746633054938792504331319095507578634988522513513824264532173803200922662113036446139826440382014626719730216215872049304607862158742528786543265789214902819434307648754532659465861155493616544696539892503905172468614003531374139714517232138397712262951122816095081473673400706597104476892490156911607062830085309552530660938084118361937587765198093154217162051121252137661871743637929985095249915853019246503268287057731653807722845114868250964378213557209928931173935249220307428294446038808146647857330162144498275756782860668112391275289708178731067343276991937108093949967816914740553079350207439071272117328599783793506759965809897442915510645136224424840196695151843711349439928987738635732160053009300116961822110917683939884179152060730920203657962579969988524159874618535947251164467739272687092454437710103346658251479475336005304905905966040381227798600829693749364909847211007580330929124152910107153119802870028058216200339313217938461211617018109270749457948781572181713259187673357252876806911298305763795092748032953043227056027502589352852932567241957268135196340371835319785155587856865740565710699654149742661048836570654980330342125916265041403533277862841241133009275777473069550059152407859375996900258680706847080184972534953696321514782935755072051194189500687590498487899461788345303682502928231343538734628762616502404417313371069311765107675030271494898911120124686233445204455660076538244182193795037351930859525408248091904873764921228177893358310076666716322904294513569120792672018037881221544860819251225899632718877136025208946519412341073996433449913896328737124744512501984364972364924229296400907669599680366581048492866322617779252925198087875593930061477419164039467418907684098283516082067347867248905522057149271775466974900307078026742865912403132692971831045550942113568503556364022148137876452531106245414482449676291183571288258761132802398587143960790390366953832387510730120635664291008349866058645086066029969659430172256298310934440637994354583294496153606864814820235755305881037610976715139027164512852266157568649000839907556184590846191303015309999230720581044791046730144295264815209710847783198485677349497591508574883585306581010434016474272782386223819495302581669500179557955963498011015684922771528555634686045568648917049369876848998608826441614383034845610494055401303783082438020395439086723740466399150632275174589564021642015410233963908264169265035361958834595689905870566419888236301916922920427687353413220824401812123801223144132101400748733508983877553212323080854707008087220277409090383270271256220598399425007753338395454278099440198156220894474186417599355426220700770512543752319643140294485376006102845460724095850458231925246577636591632729430679962593322430094684458981234276235332954539656857146205209992473361118898852746955217921003011980844858801158987703357375303647417201678956823818015991861133072174902842365403510760824190013886084580221318623549701458921540059845365412992694485862333329808238620264946855348672739619864558914504795356999930960389515054041758439539337603069173189859414747890209378895932839621445358994388469114580818931943562352342765287912301737804085657673024792202385952437393552669034455522534075212874795208975678360290703873689806595983796324722861683707843273513697522784329109665043221418282448331548547141094676079174469909813015953356003352099421709057325193925377476383610236226035931746383948936886414571793108180349164154948318728172281301011184385020195904438824616393466096875419185163624194986338865510770997171245682290995167862545061047597923050422915300089304372781700993833611891759623677500658574982719075595435399454726144520597399219889057296170467922340817104368565204731397452091842299538198239582847645496263669718087220953697613485453925779447215153203252857489608817487502738648905669251514851212440988389917669466063771485824812373927953313701943276705515696950769703001890084370914735301432982894817173626612978725093151828520131654265510331457980681728545951670039561723697369428278786606073088980632280622953936798857666025247013330147792584789312547372533890289041676649167318734307665240461819718248777904546009462290738426804589458413172806441586253809807299814168058426427540488829798053871154370234606639835828860120889369060653813817120080968926831757409365676226458996289289948637438044658252996932964024374064630572870265720475878741500571175122127640299253990662261589832694096880203862838671944739334176533805237574211604775316345503093527184242505000286867692364074512936678041119259453724527600962570892932854437544601436705299816925830780160278888741380719562073327628354669799664133311717602743089479703235561538492154472428667252892579076052653902116495382686022015561445167395561489424355832311898775309406306403498065896030046698931104833552856543501401163398464289859800755411503742088000332181007895694033029414728813337717456281250502055117520666787980155414784758593888787388202453713131196804009843071212481706073579687449704906791844622664262584636609639822009821454852529602037753519151682172387442154248587983142469539904454282775025515340190280787427686395800110890833327016588445583460222882931218407796338581782885936798293899868675409545599457853938618066277964093508126300406603181672546638393964194981629081832901116389781736672313413251807256667837596325397167738553772711654129109185223294456178743294915786012149905925180074476376945315186727977428362420434109831818505921638139035596471698562462375616300135621661675569418169352737435572601189815524193813681850266608647576199935498203295122319594059966960853619002369818800504829147904240628877728490350400995987381299621998681775395475093434671144702675068148001684573346734314745256886869303780815442438962439579426018473420560343367735075621500795984307681803509289511300455996555178057196823909200308739928126352271935439575703897290313462156035576072369369609904929190615739335569278375633279334508984393621947233786572264783546614603278188685168980807280791946269812475750037706058974366072119200607716524883441839754721125078084354154024460711159887511277009439849169769383613271774331176306113327188837284164626745786279993548503378364349584739512692801583584085881129774926600230908291232297624048259158592920891141354184501020307146279700127648386196964619889376904877876852872139153089513519052903803219912799003919222505552955357090480642597197644358923752509784832652816345520900785393533264135779240658025406828495018361931727310843700218076838691146624767201172915857055271442624544159936043313639411994847039387968064586132394792865463979505011662578233462594731715670901249875776901384866869930936302810795912848262603543600484039594618257316533195603462064215053219817723722884729946414413780454229839557891661170580878401800605691970463348337000532792716541499539698178812629622881095018348302769944520373245228212503192801786937716423358422309908463439795007581319244529658108801888545711628299988398376967928909841254246750247757098678267628708157801641305807558478636875116418976681805412212978564546414110105259714902451721190159436680263260527032256878213838381934398786345139102604459520727462123537457107919237320356044372635899649675927621162286487344825862651767082681740477172439376219122612448496792107589959366023486025465639416085614832362533630891772366932663926606082426948652574925192293881945507526935604350676561157696727826848944579913213751954176201668239660987360440695506116878990015283011781641926768755373422544922491419562484496559332735569891902242102963750163092936392152736294819285156295293249906566870893962323545262724800540306640936998969390405059291912298859109169994200583545605435718989342883559039606230514529300437479130713362191850904468119220294350235483988191847447927013242036420638329777880897616738077506870854172581832007643766892999236781109065822557452786650310610096719891061388252500603344789108191209463219047086945237282730714943874794938987863842164755045771000401126427916166227253464811798285535780902673577074918335968595103697787935983396271109828741520675489347396028116886429778058557375587270668875976106966473120275535365486486237922264455920369297839565547067146829403174384140138821939401019735584264599593198389380024592944997696820698162279841977923973466124000551967614861363856357147793759756921499539712212633400574684381230273606245503630231359441907775680364987606245414607693355712052327385594022206045791864787102478484139247512969994638785432339225405651880149696377971577316932081552919946738855393280400722663531650847553738349411131799059309257643306657205764784370179707493326197353065145776704386339875023524524368958798076196251632075069060365455543883236682036101512017732510468026226404909327093741856065143092769389552410630194228356079025443107740087241054825122281165297378808226955200096189384360076172686421531982762925188033534993328669143390781493461922768536873691901406532363376726109521737908755760696406903464495476897130411154122948392554317207636692857130279858609779848157188644406530276202632151612580519960209416374904605399028723132818251965025702267339603134053387654606056124351175624460203787372280105636428869061506483842617101016068919924887695337722827772584281947641866452177807957983256507727763167209517615183133518261374258473319211101991918445636399014051363976272844736807952423455258868264049828561569423618702813970503775774893821545420797409433547828797161546762549414908968942005429408833012285235490832977958227761191059426292513000776771826552533773647516034469351657601150494728106532968350448779983478932827949073640166856874678613641162356077711200843686900297226464678775708165293511662593434749567385842880059176310826438814073742169635767612263239825846887289556182916226625940290684108622343722092658242604532368470558702442168328331156767036950492547387461619792500113283606443673343568933929707865071579300983209670814429388056224201198718394158963973311919560248506117547136706508480434751818714330376578713643594308847375008135685935001205375533432043288777705338270111982726382291099051116909569279593850506570470681654201011090469524677619845255080085722244541875658653147707864787028768132660427253726782101020108031981502752600942907644265185806999952939708084793280797639864739517821988370211356247827712576435374089301741004340246189191002189139077419589825785950577879344996469119572352465683538283336621074457644420368431429906729569610250786417479341409404899626755698003558395308734603410987055699106485478181100961966130773381465471902619389963943667511683547400622641615114908938910354273781215472420518740901127546881307717880945209507888135966618267802605832261121126420867585922782543394693583297597413586991518760648339690943071616510997993076317827372199211600293446279443215617033571902435184837247538218342513052394466876345212230403382764003043335189651235173189412768974419299032930458645679880874419454253781529904217908438228598910820019051765843475983563358708792784049819758748244383568108506296540581943993493265855863951770851968955058806504729795520235291676137545029466284780577057968715173451101685795027184738712898518618448496572668738362963805266043029746799658078030730529077886882947249347779084834409225740312696447600552557080672481034034478049329804751025091669480674326347399473521283456326257724833528213268309988131630626085446868715184864073016567821676333063384302964756356238201643923326209849640071396667792245797847270846116519026894709021719880697368123750101718226499174164482571084950489281373674213690693859473332500961518085770635162252436726031313517776298478213704369292909121791349019629891654207536046492191738069531203873807286931872472101994404930533215663372314630993899193563704432183450426988829445761960664274458801022560032485877050707590418807282704015635240091400130024363344671105283735328219265501023235055049658332866478409661023078985098350347747565217732788611605552474663003547203547868813312935881209468577313298510452291062391695261380724853132142333429522628120770108602436933139241878594421336680168177023303057868912599577339280877902411174194080804439144671138601212967773084187197482911089622829506195859546206371840968267002413905215840225629221034065751562265342158873614413677353109063869950344666754381080742655680479464932761887039205330734495507781733661633983989923857183866797962916861162364108785788085657341746265124567416802733902994159143054632415121748137711666138041079336534135068224669289224534915289745780204119405923853765932363000685026029499679250399675949854583566720367851181246049090402746736578157799821487481395393317556396516853175182927351330026365494826118991199524916101345397477305097514831491821595740133335104173673377426211350106125002155922619716528409074479689917240594732397483787160297400802995597839059687143006269810709934915144465530880750658336793894297981091545314706723209988927653712184133726037154107394318572372716670643307580380375932590935871867556273278614521355266558288013818626634146295074027456041301518658313938128222919303042894351039216536741822112299494436899929156179754012278585492862349610599254406972927647709152837981899848762241375306061150652568976557053871166207457071020219277380576261090488296415960311577502291278010409051292311455625694658756487730731532714372523687826400462735822071831295022640628914915098980521988095378179883536146861449294095297790721312977736643889187458465983986296888642537303907347724394185451842452026143877591070876621061580240467372331920951660150682181341375995554673614729203933484893025606128059463979383570309095968396229664665064626062778899626352044776131328242043402215045548925104352925901138019867286885623337359507538374584716805942300519614345331845064564095316735310221145994289291620504226063823962179343935091027421686292335032654300251110964160019517212218860959865600012315133611343537164252574687506509511905046637786507528956178833584921259888369927240028751020566651523391218017678718569747577847975447911748233240237233761505228266853167304372630456450989927254409401940931335819672147088305527662914276260134333560198735357141303571285820163034897995083699599685833596955321368549418670138558732733987884774571959903126188154255586622640615038946209745759379559608865036024276443262039794295857115218266097211537358808229949717674565223705732655489615241271632890146774953639037873359180074332876804276559969007169593907321473147511671051696368207413941789383494992359730633423955017066251721470930293770179335162369213129829688413547364590505613872963801100499241750101751197285121196110421389036392971673251047509705156872288767930846528807263902068785147699344869220400491711449929402582120994057080060862615707910828083486178691455667428446290598390257996837797108496045266908965406634826402952077307764765820482695986414972052578505712235615216358451625596102560934052855953322476236639726622446769411832289602368778050913207682870672120830755179352005724037668438240312434791157959749848831523981662047484659250436028939034496924883480801869061518295744545354225938185528972546582074882590144191671431526281492693991267182657177937370683665457751716676523700807658872599106269668525178117442590208884163840210217413521509788671348567503140619415136194834321872756655717034299973068226001372395831761377952385239890178562834284066068754859802627349224257040232380694911312190464013198911780041532495073422755184557142913082930725473866947257038305704624840576010210961884297008036642740065529874054684212942404138795678869502517937640808708265182234252628901376276999478432165700562951210363503353948019803747210298232518499193987267513033682586458199912341803607989688993918306484649070276053561983803917417385786066230925466299780372551317122743270072286444254051979331924086523891952238326788088924555732659373793777302011500497975603958682618111986165746399394833310612775384121866153373307237108622802961439929482322068147309583714553609321397433846518971174344445921510334466230487009594542092781202344175065886542660826398329906647692951009560526160955743339487509810135206717920089185303841375747477843542972401856519306405827001205524939287892855828483893226761369429930225102653473798457030941700794312074149860446621685335592650687419895998541726130192255173666432447670031561232183230071300157001818868495795576616349921455870675975797850627358628983521998824792074633720641398732363555452841700950799194195192114425388595531580263796161635337120300691347152606577133127598269912702345394028155532687220448568616945345186022183603629743513183583480443042473455595813700914122211798762522349942664051411316517907248986412506495245462278131838343344415514012644475965317719081526057872032968293949718997263893808035046975645360791723172311475870464647604478816773871809085598248024034923387133091162918525462679179153347920990142891970513658054896129093365532523299381930978547762143112694003160809702110079751623592684050513018746589787255803529107887853035838866775540344394444555866545217643142482563116669218926673500182396926765418977362541370468790790837790153792326973581299139488949104656292602933769192727622066871932480588577582081836369605358795987265850217329029963077384456846287547744122555310668331331266970840681728959048220032645554908056578298548799517949194851695634636023278409608509002499268816677354603449771734217089115741599463928935613357233549020693605567771866091296534658056330335965805401095816866340342481642032305803817029554517603778486168354858065286412423046100144820644356191208936846203083588456658376773245741384705502154665346575354567127035539780681335258833812835178745935057180640479140431981218046927096811411783635394190064760906630402248842298883237236703744983016638463387416927976486931978520573715120553266653744840321163504096666467054100960066377023006744765887884726978463253069978048543570900715977172538271906910725401773968241670453616316875584664520462945171249350499518937972426851134470940014094301960198777430815110012049905684687841206097158391883467402839042974700180816820782923085609620957878929539341005671136173848782110593999986181215674011712419657153702056938599132926831600949878987961901734533357710478884484263231715441382148944777834081831411211124720406211461978545962885747217395702114259931393413369507100138689336573329106599657100944090097818180046964270304955520206451217055963873132603646789796345796620387873896910433742581462622734618719749181824142358776611193997010702649054856410460849909090764074967159566873921512460415793355085298708650945024418601234344647290013863249856522776388843837592801813362652000683871377765094051444917537638413451058567579200046061198413646189836151679916914026149858492625991673052187681801240247931770654972801777038319899310628824214624094377975311889515989842151117766246574895213955082304147608925193973863895732422381608026224469257686136343700579015515781646922379050799031330730437712980425714482116250564309675291051949141843344525730084978284727894623727708000624915888071778875086592887739476078507437275027174365502043496889109588583382105960223297921194582726535491572373597798204957374251602506983236687705625356924097085999200671372226744413468123886010371901404396724278800060592889842346551425033680592901019892098785290857291636480838989676381887474426403101071743475471803218488433641025450494406289706546654395828746013807878753159253352538624894901923013084642524673178585305554763788729673451730053115232751748962828631370252417821046306789250034084255054402874506989652373681856223065831243274836959267409996777791711320421035563904265918335667535083462760043937969063688919706424465991986210662163385842697478072583940130653625653910890382534903351226297323378674228016227023166201614386565603333235529319589636911495114067473675367638555756877194045378437312350885650457769911875324049751025534718059786161310796654733875540899219914288294668093985912569481961836935735831449217016401405933628534550651930627801042516906525503995986868383745268230861883214440536420908119141979505421886679135610388653386791719286306834016696943997142320932396119439923896734179397593054248890407135191840929204007522514226544233041276898051549716575524987166949403126848588407920388785814630054444194814067130101211984528545493681123025206745774105546128829655930533532144614371492979296809694562637537242924464469643289189934222523461251013890143476703333261988005848662229319036231263423381343750289037499373136033511187751678907967359595275965651423153492641263582763868536660553592236190850885139052498189171265498644954269170678064427930618979777748913514952548840571768322575770940683802312449990426511538907741106626976472785748740625018954403637777385992921510867008747778116954105536879048787208491115195270443104025849935717161028497836493792427547820845169838882014137340550426873049660506895174355963243757820022094565122725869151923171582802557615143844096561317474168501109734744484076501638188504026521514061354398490070338692559387006738892923101199468578522057113751404790555499478082481999226259136848125819658357587118391106644325618502134977029266002361892889772900284813429858878218412274211355329073781255877027186490751800364489395209825284524174942558132615609448003147569820819909290749985290350863998883073214818980576271566458466001517006744938411894295386242144644579214249409669414848883666488984136914279081880960666143962151946292036034944672163910540920366833574174436396733042040500455051540670971445810829726124829519936792378520138813038182065405568506801438753252769106563973681479600329560374721971833028523927909021279161217954131279448535962391184057986964155921968923289381043977819831155553657755786801154539972388039761429430067879818517896245740970610972926891473246920766188055176346415906624181706839178726933601916908893734425599270708117679060533338537131506930312002402164327977241915687307891044910672144767701684966268739432107855134580156231356991754281415832916542663057323994632494800575723100838500887115261498237746613307814993065049317761305705591103573379437759149598562805380485220301039053120441024764392495651820278929346106974883932106909088473941855150900015042654011201006442130464779172634331686597256937520682400054260417126836965709306988440699704963602768777710434691201566434147366075002465434632463328205150347157274080671349581820708547639779356944528956957189806270484378578878391079624155368835949834540565182648348307228729553451009135634540586577039238279143411329342194566736402043619755666695106150047664526813376487953762067649456037733040994394115692258567420020436948077268371165413946803893271180365189391306890813943054955529270480210410984189080211039578997522872201410724649423231180735279104565369317501897605202915804724955875993062434695351049801449903612691824862029654249087021161604665605099621908243628507503866694439863601262437879121787499451594510026897662259181204258345331694239840586008156119461565437430653959298597911830335924177300514807239919792090434129808301359730635946604990722337961745446253387067646197666429561824050795453062430712620990115156264432456994088175053713077403400171080979263040815988087446108324875791760169792103316622448566423227447378893241368039251876418757263041812958941571616596701613361184373430762045969267963325988042871496729374952192910135034886258230960171808366189441290740416753069864399163493829854591496105867867849873306789699540049512643421217040561916408289401113780212577799986185802895601899983906622178226757793881952928279055537241368536691682298906111681969006170086749271850974240179707013539258375143239380995852390992712954545067360210229148818036166262455831626144540748653797682427831633126211882391151077099223530581327856818930255999094868093030063093668900977745159355834501374841520459103714563150055341673649650289670208350083645634058926612275675807414603583292431208922128570272646076196208897821921193382987521025603132311455464793647542418743081569584672413362287297234346507390328922369317139831215407074465954360410753222693169421300137969302371853349097348544986575255976930519665940259602125021139462449896328762424572271351415434411952702577569543919129801763253806466406235963324086642281607286412961989408197054650085396403168136548164923592987037462813547309780693604677617658470803801499153870722602855595451080145916941049983447207064231119720546088285493705206248851577272106422581832744229835984718128254052395741306904756975841414938294149075136471788558715815737685431944491584540470188190621886589479848812163258050672646879741697757611398919499803870326589860233578355011614947784563527263450127038633029161079744504866869804922924074009125438288865066425062495806815838088009310767633645382069828035590041250725824947683445713158155614060380893696158431995400502919828497252719409795514403623101133349027320609944125050902552432241514928240567122999237456959942464340494607195791754706512262519263752109735930624594337563283832251474609995165627452312629058353108384168378080765167085729356885861033222953443604398135894445167218239183010677180311271361104386704650126686979645347677116474763671757224765368187625793339705589164136508934777335532587036617162606926117163615851321392458613975852115764247686858922515257348457703748297786818551961961614523765134752773785075554804309116491111934707643509704180104672709434725519176888241584912926372779352677789793065517802746909387156183724811045783391350049853095497406082993211749393441957107909702257164294192114563899356197478278460732907655082546228118784511946707865413956520017996379673278827918835525862191481409077849551032065523503761212883963876134820984352089749694852816431265475939239976463661231001950926855682371294113443757734013579084749666606291399835254387802041328150461869125239097092564895308089569118205793240162076296791445199634504424171295787649557881315771131393741135074240276404342427665409925714994944694742216232942214975704179455693822524692776856190230011915850636861705511688235747250141679874055914824468740013376130842036458851928087341646284436570893531171212636218185357865872061473389911941057617077416233217921057442749624178010934805117632432462269961959153641702641234981779705063558881146547782363906869984177322201623140947512767939460314675974202987719407192580705510255025659728735893641505671360763053432504647855000376225180467508882256582590384179219603920697317733294377777927305693497158145297992343039605508027927590039585762090980630320224186932114117422250295273010540950970283236263343518757417026898946290314380634331975587876915494967644648119905779225758605945328080329968353462106209178547609355073556068380569220742047826633727506290272281318510391254408736892011707299372839110820745289577682927192616724094566139935269743515123016251541588802035038715179347779179559668578598987129472053633501230144189523536728545705428437132465119261330896272063769536898276640993084114414997886725649173833706715650437001913342647718131325321780700602136701077494366016543405897868987390602100030162919317054461627790087410665329244733024910273406663859292529499687076464441475096455682102159084797553881913001400727937858734479209196089918475144969162604845476103914059959043019076278506979715056692013861665057963365392405096505321132084716975222512925907795924044949796442594512012789117326701145052275882012740247163862428259468489438490340982486102792831034434209345890996423692916472359345252095811183306775507354549207389027421160289543499700536326468597771587385396834003074421545564814756267877707895950615299822591187006967377187686424747517050531531463294443367173623666996791729997612659458798571564370514266895121824283767761029084833278214647265001407483684103362809928322055046558614175668474660265852764598517302062192581141906803563915029875512694725113280845598623281698160911739839650303597701371334070332061895323035540875371802861115961099399668255326172776882029459072766687266048025638902694968306773618251647043588240275886120118500373221122444700292669887701376520878090704313730710622712386043758074578309218329272188804170706426303148177044599819511040396748068749144882582898237184887070345359758986459842689023127076676315819519062615265164976808230444478036292804055941309985095089365058420691058702394139103729402072497496037617021483046222760835510446890166482185228617306869640465808277971994832221758312623014839595837635322642868720976657798289430963840643349777758889472780452762203467703419419434377683126780962539672032181803133699242433734077530124387960059401138922165090014321319937220392869945638254883462118722337365183899801013712447803455194791004627199868118571447539710899641637826672210167508330334121641727109103831059267433144340673284254425275780894765256300498941030888507176576107321475423673396186713667607315767668005173377647043647024648854183930001508679559043092836455956815881491729755480993709104193438597223218433576704706788059114640377049180910354660362166347136756392028110552294673492047482648864972284671363524576816057212938422380757236516809577925010391911569750678875764045839159043355692289149002316382693407623518381929669784421023729559138919794982770956851276068297833988065464835442168763677582331046195342651099904661477935893044030636740860971414317858310509854670773785644457734762248687857362969383123070314821805190063754960385513396610446041668164719653507260565223877414561201134319350883320972328095751095826504632490603750726366335948254814365086556912708653134386331873485994222868093570374374842129606792745788422223853181663892304381713507299427329797617012909518975401244563164802265128604416946133520948060498330972904275313473537705643517541116863786177588129045863390296037463799143426264751398458111749873128309024848159138020767783279821347770177003964121363133086857131886358052907188596769526214391258735210279625276625442667283402235072888390037297975216015284330591678266009322782892981107894487559552912112173629192380036311559076838849761454428328971339870753501728283149797948839738916148769770483165659959220057107158997338853017602698161539024435060021149714427783594280765170868768596205803240326940472130136921805063304829527817390302052419562267770676308994799938826520336907192122900898198383139883024508075421923747250615113440301054250020916764289230296456871233040976051750140864981294584031868493357427513806621037105731149361610085081336077476679419593525294878140908059593782779056700921283828939761516163127730895660749663047294493367554813464239881812935793147255390863265270772615029496804245075132146858316768455580851062375293816772593531048925965025906787169199658447178091925361049945909940845565039270465987336638929354204229063502979085635560444873773209528778701368319480866675661055533479746004531123338734253163894894529920560941100375609150638671998365878748769159996212963746136539864591099673215064698957009476227428176387720867564904013102809858244783003711976151901756564218531004352143922818369829608253981231871011256328473296608662404660710773096411684306266910021936777050871839698777499712779158558367634483648808517112118104006968962725751859618611438366488712295422254325331486144710089721252107974263774734633051578134834348057648305287985859265004048688814637452243822883735729360517000617851470370350524626335280189683618114009590515436257479561114459498797712704842381229741484453301600108448898919794673985063345867702890379281653834171478346978394569190161787069990409738483385381147265754403120715178814316923535689419851128155194039479399899183862961441922916911559312871501707646520310981831173417946445401554029244233266135284738022951135037020231971991752514994418190074195646288444866691705153407886842422105172827861976624606980989507973597005173763155513411700705509700743019678582235847329328654722439045744385629926120879194190522682609635417023182529329351795924934458254836932300427895323098525479848951077942372507466926833633091183150156426040386822718359063614040433727847695362886967258984393844957862757911129982972790530700211305038554420514988614061698276752465782574657268381484711902473349320620673676843068449607555236770248139049976714853819908201049744761629201167094428419878313194635655779647530252553462719176361170856536628024549784871475210862096690191298307620264832124000739868743819534024405467789904279234496900792143067404349389533886222909737736450291310353429832976614860201424932241768018242588182960282166519648741186804368414469215004140272563880220064297433103544427305918632119392177261095645667390955836084838238343302662756396641601216984115759431931561192097807445531867644464219455674427468833189636772409806356252234371734158069774424118679323133134878964232278786234816134874330513974724442525278261480488884542915896998034628272742211220341490117216293951746815912370651452919349712311769727125503626285831635404619022819996605290031907584020668660184806246510038388376584486933913010487834662495072244904688901034763053280915969105459369696377749311956916766691950032768582634552665396828935847484746465096625705951522429740389932905575810089614484200676856395374413955667076380875405109210630170236502861048179684406311358781993427205861412702431006381018711258638931455854810337571913599823430340923488547198431017781315186700205526991274925120143293203566446014577378874836230292845095475424473097670126463579591903694663084362130888694439848709400466385265639957247893089869434179567865903236658998369768816412930105104183276836626363016248831263976505817747505223770545460034808611922271605890686385448709562921761280053661200728307738378569860067497918095022501151869385084100306210273440715794852259825192108326333051591648331028968058086779789187268354632604035884797049307449095413341265489485385192651753756814662803620813465135817792485039575335883601789320222875675679366018591551448017794998158869054325455132918175769748511845423860520780393992321828436909157764902392018895105813314662048157931558466673043809290546946090822248374650656506138015922787943821238877322718809331289809272140597645683536447190450783315244486116647298694969646824583406606445989884947602816032144715021664920767728009561673387382769297818744168724978540190724400202551120078596101572227629032805599707423693469952461886452695514878467229297237428118792158034688619664825365292829181789383323210701644552863633023232124326577466724644233861058496622902213301230439844344043477771336411518582513265606023989862950882709469833137232088960206214907952359404511901359477016689307309590458156669243708579643538298889859546641281535926220057454010432662975555563906503077814693424099942974074564879476342366429794136739266833445996085484258410365930454115936823537774924757733612663472905797318069297927539246356904685927100726487739234804953823942848713988658612947763555880939103959143156898508498083713625403180427983619768156822844987188082927114016257785485014518061077766092845163244189208405707516338305655967648799682284233330221903357682427938710139085165236160441574350625502850923527058776274842957001690885442213308131255756401455585320742342631243849449286454954953358345610646375003134106396304015611420056810673457828141982969674248310344349260608341328616883379883982678305203327240290559588679779993207026299697162437937711100187586983765834290103699288479280575152513511252643479809898772322892062782748072071282463483656776966602970897876687403217436316826389691190985969290447686760308101337238858283626453661959277886541851941435307755187771133367411349608475142611248002874846920886562688392120681572797853017777831824821447530055822284852809814680582213452898236644099814545399616393180385271046952440593704880637124103544241533659766574262933385048379424872601368178517022361059127522686086840968901952620093767423928468428825256878123118433486197112074733885642131442032314896759389904836765001176639984443095254180075891976099876959103946046883197901050166487593467838160873589668626346982692096718234990393937633811700292528826946822321568637546072396206834795282405481397983592986783032406578468584180003428691435876169144827776008798832339395598706313899137549493169839010492433904218339253386523853762431212789436812168001639752324287515643368664880542050975047142992505249394191980473171976575079574135250241260717798615556159548944073389013480188637390491116496143914251020021445106637406688807693364343667804675682504117627859243581606040094196883351807154398209322458988537902313159588976381801740322842226277258654822542471438258064840140242439237171706763523297714023101694483474183596438740920449259746606317259425310592882117294292495987125912998032698308883530535823503112796534272552167695162301702778569971877664343882826694033719837172477874540122149061472815281338279042281242034536050735517834872719772143746149753061119740704035746456756024767348776797134276804829062952358000795921087831503224909109403867930648728380251972913177831573342239287336451372491043866342092080507008054151950483255436053407294948373456801829795960787632213684765655809655711993178985143279779528982517112012170839414970765661589420799785043751684099100024581380463775158895741953541337051385519731662972727698506219253898869524167408086467955273080808898104708999191004404248361021005453931491570323403222373332566735498505671337918459992135318116571257754727196598943232814656631355488580400589288113888365405642237698027028203753300216619168445769382742925264774475841216232187943599385673030108718462859814399752780466247739345444840579583702424912594492787971556981077193167920241665422424872289655618473138599476384800116033020974051913057186817619582624961027922980095627807875307591390256103751444283513116238497936735305567654567555437214375611179494364028692496165116605521715539054558305614994716937206158739168591233402039089277529312214215726259961073079938571308154299346770748009772652495986436479148659903449097617985860524296338116415632717486935339142013416037677573742136244369986362002113727649007027494478134597425519056983302340088880322195905304449597938910423462621917985243500405721369788103583216315116057519734378334981596047276397259704503587785225266981348054715208626603767498361935596008252415254856881089003671585504212784176685871680583461270323910330398820391564313392753352963334097672846679787362111117484151304091607500426549243119703438694288231326772820891267007270171360975974323436234078167631287159444780009827284824708022284231409102243825228237868608758145403883068141786558053449587104467362142604565222167484617295502982142725838130912900507809829809773040148495317080142320340565837916742335379889617201738298781294524640697886917510194318830226768431537539220317101712083751859027063513935079553673329920791304449578238042917822786421067008780587668857862387136362703454225543330538550495749570829511602051040952488575359100230787754942534854342454345304916063486976309489584818010730761840960158244091363589371305192265303544996468614600457844964282568621950144174734864586672748685569664223250088685106006101832962473575957145409309024349101564497534420630354511726387126263775798579901420266244627937778932055483982631290522087134245758876024876658396510020553011209398618562214735085832641648813238566695066072016588978073170932160964634891365028699461279682074840317195645966758841155461673903771269051451324208902082052925231259944895849737003685963370646927632192159342367806802278581887002584305824539656028065486367458454087419603594755041258391981470933633256842883404864269038033197182346756063519361230486789893667104286501537442442603251184459108222276331450561429888091213624788841183166191111743250819844863153129103020932158139405810229627322179124649028580173821622684283780070027849992339790271659727363640358461160508797127994157829421855493031366514119566476242572186820338654479796146715521186988512614151091975463230823544580759277802776462277585189757623244142474701224732031084463126711575348433143539420105575771856089702596859704439184924412137256392279229602101312420211941433259459348071216863201731443632611931473947985463372582347143075749645901910012174159123010673927685946542542069705911086808889333840084734070098474723239283338110300557576036993694195012100569975146485151324331532385720486872197766104154439774570951207538009022211635062937405955138694949600252019931916087488972785476311252307031538961652417422068113926519421698280312069079803078795989723663022872581201384671076875149671125292077699321775155747947121062063320396573633958151085927523832410403176613824501583312543486970926030661676111639151488437023979432774889177603731929400009393492000700921360962177728064218116113166936021667143039619584545431237303733240508984946593159513224094215366089154106618433728629860594103251208428642715486945011253632225701056802930298576716029520609499119177299944504172025875773406431467908697313940437687068062572276315637803289855870571490501570016911344830319221803609382957007383082918890609581105907008708074996149261858391543883132625411457167851931408017593931354635316449825009611021661582529226820962817356903924505355523087573162830400728688605122109574283029208202957608534439445277645828166640845904359367660210110378651209360668852692456114037768446600080345497758160043382471556987611393815047273130702114109576778683648936687565673011552575099440095920177620687116341178789240883066725309281853209335443260582340847444798149517842971163474182973573371426660388916835203327935231202113156595187838157931814041891153619761246695570609595987320648630267168378001077836668297637064645110724845007340537160936434252488559610428989478423580365433987784635044107182717252356712122984417064464859130280447762791665632881015379018752622824333156382475287543905286529156825862146511632007467532669135086784499175539566508726616107850635599541127452792121935726724785251644654903045920366210293762387152276661305114837445900460706604520946929235436562152492051420584336862305343224607248922232791662724572672519662961895041853062672700306852568102378161978463190068190496806541429698231558747840788850237823778435225211938721770737547861403287961143750508385738968148573770014534809344871403282290670779573957821861879545541080791576162709317925313149242453268336473764378370041423824144202852357526971193651350375845798596899082560234065810211001448269743657649329339682706887840840938680890292626232149974635383765295798024520353786289055638372299006372163068572295026315491962141535900787920968522590844962024929094523363730296525364738436043401469748682944287773687684309636352408199810003950072009076975791438534123100077058797509192526995188237964251500398297923572681323816886101012441725865101159433801949450701363127508872789984056874081941291013161289329199255092714721481802335359122875834100846615647283053083423358482882873486641577695249986586311722372630629010229517580173690689647783303223822901019854313974632728262396359975823455178503426926287354971132029418480580390828824954493404340181934704584795237484191934626257659529254734584320305868285011811012958044896145834438863988149469439327780018324323984808000038594871007674564173462908388705143224462474276633777699073858368303063527886472860924727243592130536620632212672514700582990962874996178782242014897172828343728217832491555541549103452365361586884074727261357344363916861601842453807066677713737414120346867772813626189970953976445020987675568670132792069323419047553205762296793498507205365185756291214774034782542010225263232523508684742039092758203579666972089827647328008593545692087060275848364270154858787948681988892359402165955248947710704040064763680071117053572236305759507561320484383550755726703772508756693821985233419860737911794987367681215924379750205351054900920806601033945908418902640611353194525173489652344847191176221218175302661443704468597404750560911096924856647306400293789024142957638882244212606724225146798401693098809309393981077451660576718329909462205785720744940822320813147022704626688989913379104795231535920817573916733424753323320024551794704937255066815808606115387997281054885183178393898551595189708360294561534853862990340946419675601347904586499480132632764082125645179257056678689776086818779675319554024261526601644240114304690936456964030853380911066144093803296726541752902798464487548756219199484167680153502229260777108270034426416605406274533197826295898735512376950547010544189694055207238726544506534269634359120763383243434333027910819452566145721684889042006434701792551097421503726201396069957535348511279390830634891771710712226136004891323391507662290389567176928058329986246905828834955511262412549360027770465604692185273760609073289168866444956769625481825384725009469220040718458185806803844787623459195365902633370654762031832924817186717863144417051656621078859776279884875842480808027155539254073329763684786499091475388602065751921913947166713942450371742989745666850547847282164121808340329875661467433056177013333965778279508768917731716403079608632855829423370625124312989012846601203500953310861926920052885233619166321973378470623109394999488241306982164158012747537709823592993353546816057481754359134261655907816791122387118761459883725902727009167107470110558557502813228224445933074193809867655776782165216191444009620140633735353109304189517751256340763347387136737453654321131359170121078671839458238789929397970994453496420892954305991852515079285168379478675236233959702172757609260257205579554423093186105469192522550538331416639162656493376362227976780261093967404077667507966314562858953487959851610877232018979739239188469910135971221717877204165546894312236556689595628095440142611965097518563930149610182673885034768180522319051077805098705911995327231480286274454568822913214604588540176849537371023282858342483178574422986758650898154719278470535477020923437433546348742782657333624084238590411398758798278434216179989146459270546321810466722202537327772586306015242482672451774491972363721588208917152076720133978154344482476354706966943689715603557671214263640610248578861956535852589586421402915288208600174943180450008648762108196076990083361171455117936086689406649134173777746599191657513307337191534918292315584465301305755844690010802035310901566943494202935096609112491004064090530354030558405824244090152721144665447270207696922974822844328656455429714062752442573872049075074907867120367591301403441069614691204203118824289444173754338934347587709895470362195494777687236602557113943660287241724707350582972851195167538435880992923700788041194741197433324432936823950569741012584987467606280658799507725797032288534200393739079247202657134298855381941119640643030252546732109882021788168845176161639839879086000538175283436935370662777832167858962883001446074786626423561554951444759766870061703502304938521257401547364572190104942671851192177476970215555709011712921540853665003695785880116262038982384820682762840563610527376250530894644064236214538808904467213604782094999853546232434420990686877559482393810839593709731972782480760945103809939884535609682146978490582533165381094928725876277367611198921865242260468914663707472266696717552017830068740385296570046745962459842768866672652559012898786837878233682082852036522647400635256363862728265312195574818516239577807755227529987750699379682733972304236230420718184307046211628768943301176676974135040790475677286802632466827868829576738358800293499768566233532161265100024164278556139027563289397774264764723142965183211336130033893832073434716165186283062156251413693055596448333534653031703875208124519051625685151839571390978395075790768530731683152639964761720413245803528952147343733602465174094149178647490004851418671056942611127800957060350681997971232684293984653737691803970941112282132317660984513526262294862164628192229888170655523617341288759973512404092547667340710766344971171905022882215475200632007138220960127901943743204296415886449425950986556387726104509577032165635588021391862038091955263713427933434936560230169334209246607764670392257383333971678594400748991826836557641193214039324574843708015227565601848522404936238479432230800496622343092740166963742616081431881244573937615278115229326539010317795743251349107950037181856317570844006632143194895064437622822705669393280226245994066864756108644735790095060607363930389114636031995807000095603500852679188936565285492065416479756285711981660720361058260818453260797819669135253888906155192984383845398799863760966682385963533478531293154494583306258289394402860610186149844253019768204829079568124329587591307774017654364103171946761578049746822325043274854792313890286251079749583701261494840411588660500471886494592396436029102688959557829882983676277430307964637950781881856476948897022048511083097989134722669534443221121143040567316624351224353450872543602684524556474549577013994283075841861738200974377649648238229180950284090534017006839345431961506805891251526907346894760360500263701619440977734883989704066551001381825766560181344999426678900882933334901118498054573803481844943858901825036251989762231246726110560436554178188255803825422284494315429447834143086940453953778086073290571353545563887270450708603012672227498207151160825671375478598513714015722107406600430112811677669865360049723617729535786843616461653021460753913140390837570709291701876747674433427273306611124573079711198659785161357159013795088684776736865640998718371039062199404237612104782012849760294170418973441890822719893417754202707988405142563838615446526540225222818587773778707048176287796583927665588391055526462203718948827480390292752329041211823319738665316506540059111703319247864510953053774432608136674589972929165481920714659423307427795487670118937082964034518293307854951475164307210398476982494351820693415282075915134453590636569897365810935040726897629119516932747133148594440799520312130592782213690989393737804866189341864510123881696612497699133226173502999365743313309403952173354613870203509276023057929176969316897246477983808332664790457257795708742300282100985608195970957994045835825146866686531322273844007498417625685058490307452426274073178347879022458141729611063920277744353594675138511428983680754222490229247475014897551894894719206192952844643429259005223962577169358948477504773911292127584003801127618547847721471896956529009729486402615713566450218706257355480092608310758605352498974151818889261958789997989043018675871811750794613666169410244310202106683447248790236921483625096820136809557940902669133204903750399570200509521040262751157604281722798231249367015074505519968767268601725223194995593974819285940420255385489725687428119037463532208119294236160598681413534134175329889252760233821940052251370468028370695733000884553728974089953466385526527562638957159657227438894760498133589893924574540289221526609362632823167718598837564388842752856303607861822284189066465829014840657023819335506322089462616915601002679751521049820756859636585848698289857854377376636561484332609598369812378750146821253303634527526200461490867186028180799653498614728853592182241561127368139213250481547922074967984554999635534380417715014992634680711148870705306259910437668802474420473183857680002043220076396793625234119993746063701152274886353283145540373918832194509168297933592563174873079951943156338786507459773681192217117575973173002422969566818124813659058611887278097835764650538223923358335942364546476562788721823142603049437643750709581599010580712520409299807340604446788590264215555350367294559061580559182388079572474721713306382162650647767840000592314968311927505315450312416360279726312713275621512673994480605896796079035938030269884371013374341164982285366064608837958241680329879554423292140462409660287235925713444023868294800994463350818542168462316581178854783835065264515813726264664404731722252186263155030824358537450562913693485509850577851474761819639526819210251067404243179268865080984673649107352987806767902866757976709360965727702475002624599358267573083681624118115266777031925283172408925903840446269783088618264182615940896095593961224218413797156378303191693678397083336179742855444761711283187723223104536548424761025770183252143257360889082476669837788340853153925983743096775879447916116476982174037169915158817135970590593985744965852102707862427901095667183055186147090701833488993687798030744342684155131567972545917496112297020125886838041295805235150281426870429555745685306423397612646337454735424630426346009619327610394928075929027338567464409051637527760957787733770633508152447626687494519766050190501244492390264662802963666254288601233219375664965880705993088683248340762832888821015855613426448937521567912960801278386659578454398772235637336556829058024545630183012898971342834260805665012594527668845003295104126499953930662340261652831877084006422945993668472120450793644161470697726300703571028168014447169497639665385212372333785763362295581919030769128188650271362744154443772059949593549436317151662201519801575001088428451023130082331973070119816199464233834495986742343142236709047740506166023205834867341577493319067130090535884003596988315676272328309335298880319917637024439107483880027226912136881762810498471306762897976022862344398271642958544916702673790710353820246500993519333920895878959344913857791472580517793444663064915544151316835453028061762678606805499291604320307187023877657245526751974248722492237634505160782932875110908572509502512837251265116303126394072217776632866834744092869616894944735188499101500011970250160846751932475211482136725017612845531909955628696362418886572734944310632535781522621524843974366662103887613283001017537781498002311339667394676643923843505858312088064845496055869761748353623017336219607294070497941389098932769320080110886205861372096175622716942702525866634672384994513263134010297578494678055813130601877330517426271018190132550978665877345776633901853995694619382805641054528417627025031025840100881458514389807406239385942805621697217630972684835397169619164938179221806589521464736777241243785464859032225370474319691372704216829314906456502390395914349856030304246242740534851739475020084654463078264382253386749285842167139448839391590641567372589290598157328240394344659392074425646541592881110005601902801337821100665699543284912202797631435119201317217603130472055666200082605322367787694481448217441853957299220108630996195398195013439678096568174391643235641685570172137068288753159274921568964287188974739555893841246491407717487981778129173108162285203325307489292932643577730302007633221045669627360998449638450688567167723588065918887675139514542942615864509964771682176398980416497249410227375974564319608805040994383098341691764716728556294099313347110124226473464505457279344915422658296570322186957080560538510761992584939416401144636990317405080333522220251746423410944192248437759384441414608503387697400272989706036497556910004464076772866563437191627993708340485626574846668401487372298526226331793190133396556510018017109404127839517934593689494758440832923198124689153552654668164967258635657962673227789846984596983615989448603825200777318479375850742871095732557051481084895655730694179694295802825487894995003127097752749543919213426635180605620119846945456988500175301835360980044036144823339882346176587786506089171954334433004029773848778159058152587574714126772713305716247244949004654687758853868071733903642263817099168259029141326126965430863179487937007056971053894462860570738920526298324380609596003394997257717403586254435362005076696269533709564700101812573982135013127851141393113980363634254908605268600659685728211576390292447835785400893089008335559071109271256598445297102592945900884809386764496932372117851543275761911146457144795225973742938700547242225582602907698507135611260178179127282748379754019061267534252502904189243663637874851679866304740524307457908234142395901813309766572380353899400688795025301069037828268193858664409272919198203858755969238116164977033496199652370801894457276857448543205913656194193438982593241005868898537010298672648371163310237173119328195851944745786981112303959100803373757023024115831778870896273925560833973864996838632385340167624287336575928982697410167477368299949871633748914614522481326106645586000169727784286808230443700472394368238637103552041801329285507812688267000189775635489330502517902506092062192178146750275368178562686137459944730335604617598905282784485172000133337384182634884124520176953784994724373224252841545195486665032147133288443444375054829145912638799074885781028937203215550246548341627040307297001879941336451755314095004437335261439134314168648156056204224220004852215445765498602196889010699131208181130388928147503717186059055072470967613702948210221958573020385894618512330951141544228682791547646684569162142501059818193732032289985227724758057730634627447064275131214003826831064956303121262563388066833660281905000008671914934674413479381074948062197745563489544579653010002831601125442779750907038966682149613513424197854132173179188362145949724941619946374130989203921110547470384111740532464426030511642851357392819066126376263599724637072136140133642812295215420652308723013676820072552612620539667605105598180321928580212657613620228571696151077451699817063864700076877042731010744781768280237797852637528313577953066879036507548649306352526210576633341952567045100310052895506210591749511707921482465680914253438877221195582096790076175526846120507287910283899080382579641660606616716368618917636177815834141533125418791484975817536096188475185846794065187762525621603651428140350176597761482563832388181739433142628661702353484828010090389854236306930346172319496711127553492590431331773120882233997567460662521517495965804799477184813548301112123984151921143493348965612826084840123446251711758484330507157180608537439514411594380398603667641647908903643767845885036605891900409407235154541366280522298728715323908260759414023992106393742759439689234268466939319744584957028486553842704241586278934964470361205644849707426501581836955495133136367901221700956683939344182019206963806332180954388729407019124371906726976809705581816384154374389632052441928861127501218269612309533008585894133633839827567963364319064292105866205356195575329154309383135296499576163576046933205210870017304860871048842536469809396433874880149826020776737334083464068920857273447352489120972378906396041165368188433356742282245718938250296902762397546901956828995284147717073348233473750237178796372860992826019570663246345222744692196344753821934254116964777513461404851153940897660844704142123345857230490489893854653315416558175941717568556053546515554434649452942892969464919837917303316370369730880773623765746882382476177985735420010038338266481834754964510088466114989402925701254649101277357853220912247370693862133432687847392926145429892632600225179106115348759249459995843710617694701767348712155952453054134457122042393830234694761834596747431670984804715063467485180500477557727287284864980460134519774768783103948898747543228136532581021713349979167540050901266187997536328769649022147094750501149482293879643313795002186092352819095172652799181896538811993417904308754941988781723243385668543421351821460273137631595408159751373952045173283342646363120828966439827551113034994144897009841891618837357428307913394803378674864640262857324564969462738176141563623383870126500763690637919179384357360725154132874875397533775740251530963111675002291530118893082083232174239077095860397946107186893829439524399004581062874900398676197775041127666191207755803402119266632874525460712638469221734207522635098311882714003871427811458415847399189795457758191890732886119677685323298035598897553798929533028070069121704694144341074634927528908396209987415855467561858382672729954123597656245685090785667823603296634241951404608028173112719174809324722931536015364068046794369360697748755457884287108163305325054643702497004696081390557875259714685332287672195038580709758592477053703986786637949097591867232689488081486374497808409652726512187337443753873740705284607762644093580937303746756078127942804066299223115703192638102334570695089163851433951624845002820044007576351807337168841574449244908189702488091793391541371921804427004038611554727442936533621309051429720509613742792504456406428415931320327547932669521271383731551813232473081267884125960825302280597664285249750848130438556952902189128828110710649112403891116993127349764411368101454665147358068034869381268273511625553610535413061929376835852021461598612974823519432676508725866935516428015194533210488442236529728679946341334416351519291441590509492161736441922215312332615348828245483696084703447955049908095825205371909667505269625069524107268236316167952443134376934037839898849546255159430560870854887035503194706474533874130145368048453704274746368337442813335686645573233095761244154471499615675863200963557360688892373767663528111027663526882285370655479022778487542489976769575047899211010739718161762142257321254021566090804543063404240070486390519610060932744719544720701622309335542085797871555669741435044533394500328170614946109958673096928658199025882960440633242584856893818433239262914502324673977089154150628600891350011154458031621745831598577675485525724758953550801365297726302063192366341028481982100102574532304400030927826110117011662426825744401181595004207507963263712584493247416737018311247259917808901115435304816688112832506434549920525402091584065190609049924895880981505772584005740084295204046071331967074326757206884852100288105046968390167875588714130563636968523029334470024419474485365574555290103346931393409117446689609525727093379394700177535416782308996397545891912206818785174178671230125430355066768905437756169961885319485151808307592209094716747482009298583191213687523104952981578136886383204110882753744706632969984780203726972193615274837335165351291625288099016707492507052644778631939658739332066801338583955066970075955169905066819395468372266714893852608280937080499650303094863613795805473623112348530606256910475735223294644483739857188494599021130296974222931810916476110736684687452355478082668554926375625929607508935736661816931808503294840372226218529851222202715007847237343243154841416514899132344645166668420748045336807562789016401533539835030700485372832505541939525349264390017128971415087319936731627143329979455728427220426757294230072422720502633611855727838708090711762798167948813261299186764858565331607035933055863072114519335130818741137912730346683898799529081526760994811602763335727957761104288253192634923379256440437190913115406310173479107324828029213916055808267979000549068689400714425105794670959574653846435867429555042495593805560780828676659243211252869793353015537242215021329450310769273379201051657677563160847422187923337605866904383434367084376230781281265302984197838067708548386671388788313380876968755719916630855029326426386433553337240126629607944992276913330475404712815832785706568385776965551335568289314476672880708211996374448193124651492445382239818604643150390503737283137608808281888426180765742172218750753024867445331500428688738742393375941515833408743571617167890883557742862461368407900088241144332357386844001335968285771700055767765069704610580467994459265112943015854166467178634047980243432366716285093084043121001359173138567493043186560657465417335752963195906027185139824593586310080446551657708603387171842474980291310959331951370832935248012163521163307982830251044242452122538185491134386231403041863268503698386246713562306485124618382177737331165474588427219430057644900308071337974188935955490067616505129343973883199448832612793061561459641625346941948437949544815778535560300039983109115512888493738203295804905818912602709811010719909965627155173475725553320303606153233021510458131745837905541898829670387524710110899989616090961293267449025981430881506625739735810845633367633639434261475880270894763229733334895105407465128876182811121550207587446570934961685012951970481436665904898745174696736906548379284538403754422611999931010711634334056392644193593075559222722736182505451774417779333925172869625204529671766297566190586669055148500305884265555588800906492989877387039356893222537811122469901389376291044568260362857123950170718286025503568687108449490548352814799313152541653436741099418162840264200414999085419433656343946021537843386586346772369920154173947710010795747474980303433068702037455984564240245217245917967665574871708470980648975337110794405027057090206464285602294316740928086385195209681268732392394819634410829080644621939475696950022998874173447780338715769755383100370761013699819160342799467504937238442356704955914668422247807331773386183247176879953171867757675844053559654273375596071942469528811372067251389448164265424652679872971245459976095325432789120060617144422958654342237702764174460464057959145385664599102064429586154791380421258446124643610537053091528656001666295983528902061721003093282626026589951453978333443552933624582911942375598502089487662179968092985385341146773284020998459330549284848863000553587710173190894150699093377991285432089753654554748405559836207891576691559542205732636606835796605208524050217591244316584418491444575079787743435526648769465883648763412333476426191292406900359859865517232688278744145208236791255604988567939102560218464948407008957337994265973027066000723286035635881044984308411494003819518351940165214042977780363198225359013496539657868872167245036852203382216704570565049932045125173926817873506821056404885114612545789853725368227123491020504424180476195174205273643092235546915690253966482423876701230162572643010607024796823651595611751812909114175032737348591459537260051641724399256425551981239225894073037922076690759000018482507200432018726458359176536413978617329543481434700127191098752082118977955528242229463444510994318095960894482895276444924370378581938742260960509095401328178129687195987682915693889672328755349888685862847737732679347197541321331959070144184166349125030950165816030937545133177855998916539992636899422865540354337208325480843070966683726176441125113436725757488591900953854153025246311093952851075467215557574054859129402549232774525530043383744058391890847855898908748434909927677159929281667762454978389603087786327952093840325547727823141638322460557009082896284540682027861594110995723889360038055053675280798477777156740703919166828222388654264936299904329467036273769022391100393177661168102265084574307947803541060337911163071419738849256864940647372005518119261778439584154242138180980440060833157826112390002781004816431034263120646588789854077655045291110388560905885355135504773367649125645721870286241130399438140888575083112952164035937888972054204086675608512833000867286660411377588643641786175537381212084300052361280966789588592530183190391744052260586711499803880725107567571043319205032372855023015022865613043877154011276474232809095350175467773763283233575636834895075254895013397922423989834215703069242834523574737785969844342664568013597741136016087650385302948977567021898568409239807230107947778229932267498952067624554865689801427329911304438810914157042308475869090191536117284247346954693841978638253226120629762733744438896238953644771955824749169375728767861392458695678365571704233859082760263657529780262785242118478563390269900613621536779782431496802125081858173495120355300278364218473555467861282151309032154884850805538966709575804126472195939897393533271973357480293455801312040271260381131726299091828868987986065626956413519291172569677028358502093020503978125141650777767825086167829050668485392705148801430559025366853852830563573306562128783613469649363860240815754424589183964647924347659014523160446746842886690330972266188494934734139166489072376033631186707908331215069620993838711145784947525793235135062251217350484997048770717252489748318161644793263027551290601519524508891418740686027777366052546746426870480729988631421871034765393798875753174717101224479020934155620225496247996640914463497174601780896650115857732850429799986053015523448287053845943927216854948705502863430892713397243008845905000135144564255864117475783519641858967551718963242730125914643259101387154558545467714867754395221435822621022416344058061327060808763272965175637240396836588580205524118295597169431902066057549689665731346019219634701948284919219270877597570221691290981467766949555417911301213734767017466315198893235533239856879640454481310108219996063444505715769608448247966990329665802096368724251625025173622882388968413828173037664544684501296266783334644030365251162177216125890207525041370096668564652895469572165796307862289043025215505473002050862389371729211223455458413218623529812348787822584109988879734885470403281233197455241178984858076281759959358842082197815037615066237340490950870305406174097496818727328835542736867811175908377781955346374098346362203341310756256561514281082224814643644691425050566374459934726666389681819161062461937556568520524708280483756015674147775049228561361757211017688016436109054793505451242317665624643186088123056580076625194566087549417609877872722828722771244281473348690059037203574105818173015171452258614620033808870907161473150584330155557411284168665177236221687952820251359816624728622414495985823775292564534916599421597699053211619668366376173168439935084321280059018146906352649936200746079547968117755141164629877238232191211802891386535559544476599137132169238079166159090686876978176040031823104120628329290945030212005846490924826129480204269278590212042252117617420340493109190299352959789600099171582433585769705660100721682625301753672797837486280046837811909299458692749789588257043135590645138969730436161989883229477076166707186640686484108655007368278226954546380763437624302818942343310048254206255205494309848323011333691940284595918091800300097062831967749301967384878785042352221230838017004956044119850576171188598541466893187960618873260665786617492170706879073884373585082730421377572088594841305496210476274024567446037772585511664363610224575300565825033620147234243243422775498045975222774297268560301772546662109197424185902104294976608946482339102725352907656697377539177766715319740022187916599144186254321345410698310774407802584194999849670124138249054992113577210989860314697152734771197733359741413457550692306621659026903294636733686666217775674523024681354423488546245155687678686622961041735990028774026164069324511670577296329140309042034828695385158286724615199969964623949903277888911438714616799644548544391874564453031708568024669005616381078577557155556146373872366183350222311946810113590989240456425297762939005477097413763690293194647193789489293847073615357094725040232701253869203613242671860997291464267973323258299421067604164616765754340852302140769217154484909030912646184821712390022777119293267854576495134687864351271790155490528125168370859037541107722452852049274729353213179982058901710356885066001618418281822974349080323801316319979110121904919456466280021028265449369512918424513448167243930685807985130528214507304641687432687984122070108493722170876157197794379068951666189530732319315974418762814073944835575268188019773727744264063394750337784622922426890228971532743786245698337569882400925532100045268802602869075847184998143078091577453407235020728818484182204837090758099813985153211715319869907257846274987023782500186546885365225134378466207073357218040633609322607412158157005917947609375772366120428887949677391951815829553634721415924301338568633274734361529531364918857885541559645006778833018469322958197998756686976117929641882764269683466600230126628023657411241292258655797263893009289838409742742509261015150537801371687661875991612256851064781040403300101531529772553424240103249938525392326730442517536198610604954702940641063963749742180767703123168494665173977122829430336194523940263595405156444250085974067790524298879738626680477248409341586960660165028825821823899295694812960483044684870185004778749829744780636541824006632342455805214613896824447582323546849114532387908607969032264278396215253905226215323973657781587852730203134254337541707927204088566946912959058800765929667209720147856837981454469387256271313203054302507835785708477354459234200598088413682132371384956512806670869632038556777504855691192305922282642956292724356805084598258278009656428891398164616246892110881359022563938708833217831630646949533545637766572766663383022797379006923196742192878329087762907847598012354790044540232225920917039619419389768868475719506817462568936545972003255558778862286534174579045167409164499977362028226133484913373651630015237999698579676577777629597025981550342039790200807011612750608684147425105566293893717076583539087738114325313887212407949880117086353933423267303004443396641751509791980552743189446616268739964477117384829596988819399111501020090486981888626612506195053278849436235042860384204355478151342145603496528888913692992709715430916766725627917168415096065641701128267119670769673910944663362264981092684051303437527689120324209025954426559814970136063236864432745683533977964465000160435548519641123180321286176922186846255717027425763312557995641979027337054610056120395894550443834044050092464704945493499627887419245712981185770700063034124682170207094633786321376481352712540918659744415500180379256408289721224659051001378700732023490857922080964036452476764295776405196790586832344093514010913680871524672628829158279210998665046091941842469177581853391077391537689617959702317634903253036787719584027236401783393235732071453836323474400247932364481008871043804071381210464523024850867039000514274599661591494295317478948897941535929607368245240025154785439649803092610528862918641184550243681595411679429117659667939961520011687083489667663122917914319230412363421912484424817432885220582711676148141002865838188397958166168335335760383802624512643796611288205175419277337738315184874654306067216849549185631178843671687003978342457737268443968449939882624043041827667182948674924962813536446392000610999739743821351542574365279573089717644148449572183368000379210526094299674078145439671751382995155600507057845912766232408844469077535413951322642220644448544976115604348637487220831174266587258709578972283732183137472340813330244793917331653746570691431375998476157550999568248827114752200256272259625197766351429664621407432294704973075040756256767232801374534977458719041462341858511270702946438286676001367695892284142007516919118887510034330563345085336677903052906777032559188207948233599594574837944655475328247568102023630437053649648305918370212547359464902040809090728839963383016727710524652321362721808097706833415355708235074182697048544446031688187216511250731011915731703615880063077221937242947006702864175084218967503251298093680129404726670223254878992987498258595607205708052575125623327114313275768726549579125796074698644433787180428747774769122516569717523989790975530095684357528620234222187855102816710410411679694203224644241215417462450904297585378202921174911133218831292252044378308439956449784693019588337517849995670393369921642236300064826470335041265023021200030364320325792997061169289165067407117339320550762890396448239789300298625957830286443914129349865889546188619326997778960855266964851768177301155014932697708446520552529073975582697751281135940186349908162339784893434078082131448424530867747351353485859676986452077447026944151746424694530311687443933973693425484086925246637087471853865800483172425976171441280243181216321593301570836162372223135281967080880348171752101350027249666522983859621756192853126443519421882148450562763745170324195758110821031334349017902223238715280850979413968578737381135075279117979623776655830264949957976483075960311415584277380692033305077907893392664621181865508248015517101036635040438258906428704923552244128805746027285907398927515003949994488478884362969534269152158302677949361214509009483310206476553414690505438177183843754093168265772508301588664107974199425151030805691735522685372793270521647228386798882274103916348962033642962211291608370578105822757797179441735292900853824184673481325462908221475564853404574115775600220677833148206316893510128423205196798024325667710866152910983158485494000682017195512860081211836621325782523991800688421325420162897002681141530347040399788579486380048732144791721224715405394113723480423964750720394048355607585713787496344932734975376338024310067204259019057106061008894777565485467548211242151942828509251967418707509902708535132806633052489011706381763510760556778974275405441260115329707297257603668920472049148192983815479723335513458048447552854926043733980792653629005957136049730643175195275698303741855983918962152779376031774766765789470016832529649544352801300334291314355400639064774896870470370800558682973956353242284127297707064190125706421441436937002103205819188991233533682278099296252434941806208692699125534137552591269829395935961405422397033525080463028748829657646872651347374416006195533272511386511753517702582619964127387982279059940265154834278072425382163550055948862481686486369803216058967410724669482759315476126033188162009642417033910837024814816699043700967790173891914946957296135137213515163603885605439302292374030575406276236105343395181411377788908816941629375981111998769864282246651169259981826014073729284285244314568554608219882592092070540130812094706920634248949526719567830077510534371152473153420406680624840127039605889709555308378703344734441247951055829482417630462483866531533096847575480180696164426671948585902843434992840876767800384165051124566856401312224045592280942267856571304031406016014483571302282054891670910390622514492470428797096420202263465758856265969156134557317013316749984925574168397432410405313390024903736415442749522784769454788866624222918451576636000778975542854619462593268816860392146777785580116326955528190776011263691096624588337618095388452081203026934843227386314334764486507217373015891301349913937576818502323233091545400301387334521734552186545624263372075667142031657257118529271726648115883304580933136368864032378671070842836961106313191276919550669089383271754963623580047706996827987599549283140995919767893223628635964974820956980268914051680602376206432426554726628225818503337244213661295013174879145640666711673839902547190138942896723556074584693293536108985953394942340322247585784630471850353287723856886723001665617263805097488527325873382841631671423234675308543336974545029229704248556798049085565077009198224553830487697780626626175013559279506132625730857474267185467407249650665780896384191032577630624725333219830314093597975017788397384635674790370332581090670172371891004365604442875475038133227027467005706077723259660118145238996567050245771074413094636493837749887783479666742537202625210340402935145377211998637510057667465201521712761074374905920585521098567016182513638919802890005499324121304989526670442241573218535635679054008090508317093177875597584346300887457395913537431773169936228599434310531948833550806738002440730074337731863735713235581752412897734474897654464510406631590416660788397379766721705262130647462725224954059341403560524518801230490422322391222925865942912101436699077123752720262458830597663699742726098570084365033320891754987553068116905384108825209790475064233033966877574070860481429952590537984302894848182331779499067678839716678715172596626278825246540537671165202897517396669236108248251132443687388380923405380915893737145456984412736995634683019868185006459673637206259062584449058982934198392710242718841631284852710399131695334989168595936569972494939404591086618500454025409720688548925144906355945741575113695303747528918414766630459557029739667455912944649729597409484867821706654642062775102914988142003626969302475651213072668576227035487873156438017823703903262078077804605243829837166123112096591424216493136822935631119290419556664324161683357486525070523237030877576058836076088298038108698755707180459005490791549670424983831168798200028337386494768800231456697542254279948788700282768340552829461724683069920045225845447150800483634987174234552038004121051018540252948120692319742802003736537132027899613786072991683153420649720392051797729986921410529346489986794758504096247852766993069404820866536860173965090844005043170445844552892777582362931726604376749437443305693500236984110366120393509047357080377276740435764455041299744971446050061823705803638068265194196251876795890081614194966403581106881008619308202410825671334333716423743365016078343120474051912704633409938622297561286297092827743128674093082952075575318689677191088725013763122907436527106527209067584457532876893342609898949341513830115803474075034800189112182783067198267423213433008970334418116604565762884258463798321593317834487063547616324264492622574926669509508853174709367851676017072732701483954318557413277170874314149183272234145771185398093483177963939334855570684646374935232775269910331669648463574999809587571266541612366820792285390834652245946271412928366062193988602353121911178058994176696524679185206679642768714021792670478998736269641031608964364964546122967688922219804180222408132337963749935651363171528961434666413025704824371905500743000657296519987740911710484439035554683864842663363070192672542404178154104283129922567357642270377279657044536519906841273485223065618744879113813765310810361193279733455138117923313016381631664554936275340795162521115184918585492985083948298492252355011280841435468111943167123856573315280439489100555399784255171612592830231004336711814226718735571510323405936278843112488316731083388415941129604626074589058902650707516630675368146898516802871505699084109405697715517074193830868821333862415296916093302952301565609160007971819371163421627389369623518892550008778582890486599894400991967592000431855851898811818999078236769759233593754992599077227230473337630511399593112097952541165366667163159806518277606899628027985778902095087890874125686921233508593331026481882873105311839421948261512167181658521580192034891074535456353930683973122619941921085850378149473986932469382590840182227064797316852423708779319354982550782327979691424820157729093075129709327468443764747623988257630665375940214963746989764586523489468761639332509824572027429991302393499252953002534512968688994682171883739397883061915697078933827897211486725508607823796907238019547162532345845533398771615161234413413855774698379715429680457124672899707995170181850532488790509179846044746771160387327646530633288673820935719932303871277474841522557979432842774041272394734525874998731713991062684506396595950548041167810393817222513143487139973947302988905805677920818681443964391139818979645057575962636251604549967058084607637504752453983111803349922391888820805573643688222445256375237775990707207865116145797797116225578163710675975570714666877612266078686499571044411536004398119991381139306646736785042648666352720339229396629868025770165604881493924974680675359649941611898142300994124384469433522112372873118841091287047781083838749464033797012312826678355802609546165281216290249652323956903774772969960100998723757491210540362692106361942864468014700101731595913413827612866698528795451047720275092009019097759092520590087435333019316220150370318862583082237425313266128626431936579923380991535643758251000413177792315279367989979460853208835407245038140032193595419333242508990433697883304054389503761977490325401952504508932954439325090422230442100269160403466678471520704125786218705659277052408855487632647651688164464440405822670856003077434896717997674530652193446928802153498194154565435448619163286100657454419726720064237294272113552923785867979186804494920284403161728175682037516556273689207265879971853759496945059353369062905757777421945622081594166794114104229281706511633424043133074933632529396716734023071333719051187047449744161967720878829548387663883835572168817445107689154574686421908066288661834080237082534078554130715841332701195072929407300927187877949757175908660079899265639408395434109203071699473641456779529622812581686094796584337476660027796129441306786375745943201842405401132578870548877130955026477369574207445981136433145045151369311989710368637730143756243464935039149549723298602746811502890234806514421070398018959090216436483283239698429945591197101024840949224071847094500348262261891351499390232839712428913139865745974837210821084916827145027598229723053858008760646265459135889184705437487863624438475141640479257310746702360794191370693120502351349427821382339563341669307316502742542484820586471743109985565756801773005811656767835333591723336455562859458280001987242397377333495145845808591428097033885813380393785399816766342614133962015517630778948292236010638020296140514822338945934709737179328152221391697530886880941014431500052692269166728623004705208899034780953600572610193518086184491209794707775380430293917551902862726437375723427575839815805683838678307402573515811678167090787373819345919280046246913578705246259782451667659385932790411393781436032004248799045632598555002703393323969505363418573397876425539984086491923068866509505447437048861619795654547832563615693248318556861651446330787758184968503598635221636263244289214018598011923335508864078146833365960488123083592433593842475960674068248230219618578326792615038951317553922448592274329815391205239057873573950864481588469424536725948711410129285014445090552968043780226304929010902906963862016785960287072310358003786412340956661921763532779309514823634044034800636201652933374001588031520399020127829143076073487184314915401083781997935850215074544695631029942980705270263520215260915542074555082291765962745582718736719801543432362292631958105557645516596313378870486333430709205842581019396256323658667143610249062394949602495148634202663762224882317522026599913916556574033151414094940442778908689515774816388244577307569894941696384447766529061695147007114133425192244724370568725029013882296101495287864071955513455796450088867659185071051642857249401397368296306889456705380557453359293211193881295297132180151189881066305279793465785590974301917041665834485927518983247720192325146483681122854719891057457783819111357093438672685184113129680240568805044981700377506684010742982625897685631868570755956748577820992464091098242377778405326365008780274388015171080718657124830159927234551194626233082956173281463999130163574616943203188181279458271855167825173304256773475460074746136433031984842262745973835566735860704559853427752380299460533716815826991997625308672736894510718393934977628530501472049748129496887872760213770728077471018553092184829440926355765018380370454901318585032483870544005056790540164514542810293558666808951390163616900487125235223912980552142473602597379278859621387780881703466951115405004831841960615272441547327760398620454752330698995227397758018874222256644855202774490538287107996048332269752535713587081005888563370521985879377879662911528300266936559625710675556287408220294208111404341875095477728805470949079056127121791681860783198413464059613408113511247452033445138275162194707639651214319495766250764925732322602335588870565008611881966219243001264655255140979250200173214791799625648759985707897037261543135443308238175307938735764997734004272599618443085488514248091773559955743826532700855936041734213761525727072319966461232765722888611526798719294096329735168150029410713256022494268935629728329500537774792902199163304762316319824107724061476705085615994454981280984616133013814062543278630253976945127327358692654915874689768860757609307237517975086835780138896421474007122780447598750090702197459274781826108255107895433625293384003422546621921725893519107807592530000127252751773752135994019711265655700351943604355232078522868852772993784570259781311574190095323906684707804151202081872674582511422465581803220285212723954451307382011901840989614573733057505438264113097537280163545966223432816370332317081973756435607720282223687845077180037787797849667472986129311058755474523726886424534214708342275998225350286930032410379578997810298403086079687422090352317362553482768217099671910738044717734280743730273759393476939362405985592649076079236317470884114330121631095884977681230282205758477348269996754289849053726103329315963972427598093774083285525863239444966961923517524614898616127370304971409244760765784826588041867646816513660282073056854266916457283243105202999004616263767049955342910349134308571744517085155356784055289928191812066199756212382541225822984580377781453384240464469123434408945096369991992919111574062216492166915183392692044038755152902110380484982513230810627031513301024837924808109574852764183167673878920401351021500000316739974624354795214038550466852721601878668842880495487602792673673469030597447657787053076394394392614185093122356497038856191269056253270355469980738843420948207368766303986474986553766188134251394493512382174672973638304063170250729679235258246862470467062471511491544414278197943602200737329201250751446041450532915907217234137585944978252423136713631756684230961859715801221957338881163766464634411801360273395948204135234536260729298563389306625968120664135224286192377342509221111415029640865665431750094968037955187372007185264797211835073417849934216219835215811296321605054903672683972310400035179194480823304763852467640208878406101503745320409313147075962330854323138699118088475800952224564829250946003973755740598045775457639497770356053105637203813052373355358957449860004806842026007417910897802113678196045123927582415834685247133642084148247530966270356528337053447451094051339486255350245281535914680484794643155033323360783760433076644094757066659200234399180212768705469361667685529590110393624545266553394922257709476109818756558935554088135848916668181237588530102657042426825580523785426765169662254360769298116188009168211892714828331824622071461010813536513738298491970218284761741791851503425442277928700566964470939852393079169753793017471561394795293245925501596477280325951089633931227908415765177921526353666987339043347819145993831566824368411394760123748409187817612081590050848809620781540315659535287100865948194103140332083063200090005947964078349655162480992917922838796143093892672038609197824305528808392120138686968974941853121050712718775485997313205540985998031343256374169892848189898668781124522087560779383851823828361467326925709754622995643944238292596737341778958826619340178217843744357100629576540832468089039349308467051624212905781563808233300821949346137503408812955115745498596531535447563341269776917960115114241194514135940875208765894924213573382725503738803397001821634877497007835301038505929341105566581198903107530290712509944041864474563767724283968983391783732241575750304796586419305466018426441690873746042153985405582475085632596664823503807815213868578214504497440889268328233780932735473628314787082124647544822281778861685822563527626852877434607816330919607873586275955687712001346318505851434053811872380531264012624243034008854389492880059236198055304031382774692713152718697726263165026435034235364094846497901796546084443502703746035497608051890323796309763463190786378565171263397846783040708902234147420273858106158523218083202359554875056567209398279104328913097462147390907244596329472342817076987310392323420202701734269367993329107161854178748065979903151028739365968639111206775422366837919476084511615596162315207942288470728910723625835338541562469356034891536054159231890272116303687174336115832271698370900011035435621869189836482506247473582783650912619878833119533837839594553428628739170230843413455318409257626027987392137263957568001666638784977432947899447786583243439570222877612719198213922613794054605206786449789575533482655448165651864847700866232412618656211312371775985856018078882391021174010426078598415342582334131059500152582258932930076922892799288638279005178871500905936838396171414503295904801982861046272641948430353641493801267301018701767619835060353004885978962242752835782068722512498756804611445470562824719007556007045382775009398594763575035347035932241808178713837586931773555719746624343795187553591185776654976937186386647684300210436452346211172892584611825084671324834918155382187246091405561243568561266747394758492581718312568767030546143472781606671780911254910128363576199178706790464810267864751202073114427127374438089103935807380027006962051103174738055742948860180291359744133009826730068191829506244067121164871505531107306990759712814427964137812493011645330000889327452917718169637011396073481239180082108768431044532509404637866330196621997514428184546622851993379164058689024125130558522850755919676891117066214490470668153230017776022040669467065704150363536981534747575191660835347998130043851600247066079164540371510638982516899529085454849763358812952042084213080691788119125629763634992970334493042281840821956493742781897876386466280525623848192527547909345347388507914515100866256426628809927477727352823299127257783824666225015766276575653351094583350688183227759696094651722186240042568918416589094824559121177712679841478251455013064014017400515577823705771918506412952307940143545349647558919271851455445421332395778076542776430809221988149877186796511541575468239342089669256245319047593426221931572723645679756185614372534023014841321859788292482238161837139745690683979005172894606004953416074799768929686291818364363163004230321142201084139110024215629268802532844630939277372377910726528891377008565217531691793779112203077372394198484333925401602487585552310347598413422386083116757220541521205846084409174466088908701339136728133075589848504835364639292920020282270320466333391414031422935191466802039770560153196622342537518848894515112512531214345931959975071179846123155240578392437658904120608837945270478834309977250521038532156929463872574726126372463853807050095846983986385201536333482861173285605509948888018894058067375481272021926690837855989272456346023351386614277819387045002721158402441248304920784919441960790727744147936067434722395297191600378795454685891606447116773776753242251004810391130208715546555538684007796184977182275311184577802191280437536638362680532088370279686727071265585610481415686995391575133510363818539236604074192008593104407970737190428569479735444180160349612835954820319497601297864804295911981597546562199036227269048054604740178065376089847494212011177860587928592576222902917598413373850570995128175493126019971395339292965341028245890447891888765418561494135627629233163964334167951788821413878576387956283962212036558021291374243389662168706665560564574163080747883547520888702737148597207729142861958732213817762686556002400841608242919320043019783729817790452288417070138997207153513574778113212598230582642434028642472055342964492593946048248731198598670753134354573533936375103041572989972369697514994012652989862234836474135763624766561446813458702095612570829706104225745074418418368764353205036392758517509370537201529114835137794464563343508711906471767667674870898086834018474403618971558506893304817168719693330467737035031476739209642348113378833406096228008721535104229671783006664432318484953978485461228989029597626844710646982444395083225174479554529969657704922228215721002757175973104728159322200563538084395665515370458787369406161999869049251028991936903665015094225446609696646966625142955680121324277831585480880274447584022629151989364324013162584672408779801415676668311134795110112033565444843695556547783615045965902677135057375235495471718787861308108628424644728490329418879824769174148273150784548870863833453261504051091108403947398340216134056248975594637249704165374533088277905805286604307773312021067352200173253867315137014219501061600249736639855280686153615912571436401169773934320234971060136432449457566638381940932530124354375503982988989015742399344884948005583703181061248316191782215822276076402733331584369080027270478171820999189595753653827588090402324954506757711299811983065350571708428226801313316883062809082259346539845100678564467278679457718691746289871643242174791282217724595736644413869609001013537347863531592767367106342003829500996170019930892240030199698951113175109900891963487041740842579486500505362203809602365075192274929475577947241188873102613052443492402674439018458207005450894935077542894561794107479164727245495734650989001702139030205739854237565905416982402419673178787739065062825082004632240942872121606218476136274373350254614595659717407324608205343159515255996978606002017347081731569581863337877922424855116921597122006018354381475156713298526537413652238673584114438610391810323860710938056998059230990171837235140285875574109511437058975735194925961384307841326665241455943873798672301916745689822550003264590661132078346650952873879918050397252062245021834396580971905428838253432666727772225959299506082352835495942987724192649858010770928603165483516247493542832238459268683516164248510973724655075788269286445763641766083070898947780871503746263263658208374484946338007536641992631995902253258979138738329581705449496511176177777280329468305807545701163026112010590749991794641519391819528407581783114253527242882504130740894130872669305623020865314159141921919556918955160220378222263694182015040509481303780167405699698222294940029007183763758605134303298250693636604179096524606215246970039671399419989178270640529877969214952170400327883563012058271356727493877217606870863846702819359479971776501266984012324081881343200763634203569095951793257037629537145433385009536075971941944705083265930535718578211970681775531231921967611578698435546641992519802573975185181672237779024116046709147580317201140342387662072245747552539331332298834708095229090714835258410082970877122323126238171596283508124651680677036864698630572830737210106135725459166222550344700828903030373942363346639104965619774932571466917282983501063350947266583606959312468011753173923888599147205805295559544143731678215529922785833342599147136241645918136260847477477093811721295514010001153759468061026892050233215010248152713977041248725455946932477931291448825993230863735346255428082570651154447537044248569740974830168030446399992884359205357426344933120701586268381173010293496068910033687391409471498552903917378727467488464983810318364742719836179594702184076157453610261554497936142197015095950719403206017559098682616125813567760538324366690191437248411019931691811186350670161438639021271993003454734697098840939213956664903010058739125638058002385057314782889631558039955006928118614685399321298305452878490057378039513266559335766921232499571366940576992409328227923259276711140905071883361586989921017086261048402479619160664892166938861542506444847712863714802892055874719935754611127215103426865597373074999503060344149900505427939090865189329646288878700293431153100182684275333689399981038051406979546720757071214361945190462971084697982141040663659829176331007522414045109758482752984198433558402217664797325179074904466708410468124256507104106611465626027987567020026310122699827633973148059646474979562028581269849839514585662992777589413889116438038190061001256114682313354587044622173738864305118819252992612292227157608632780571740296242353740409558154419964791011291727749467277689839189571486609341669516136792006154299680985041997776058131128629163756643398592025691153224139806144268245439484438275448985289932378500983984127141639361064686577691650361176267506711105262716502216964634322870554601899082163254547718442645722370623344222066334209193754453825508690708802071683332069160394403484528368936577674061769603832936256901862753869879236243135754703577224930169193781860000358774375556234905472354198496931576786826995800160807099646751484666760597422632987012481061457055161199872607569615224147770506161683837560485681593762245122679602109823513650856742983852818619675943692984211934178087090910905861253742555330935615948972241858413138111830099506409417330215075063075079407030816775253372295874601303793924516549233915854756935179307467318886783325487953360248653031231473419671540082116750817543234742659007602577586258856525546242926252410100144263122962852830626817591016633148577032870011065781802524647608086892980625356520737551893551063255905726067189641512000367865200613350368637369377846209961783703646481318318334134659587187256061288709913928028753352231443017554663417122701524923523127826258590321726440298776325736387717894169772328337323226512954782919856012414665167006537306084090799256474449388942613964445393383041065872792037621633771236751857585596326542754104650366972774550556742067213293279562298241932254849573395538814442900034401179215357090890114648922781620248644071364669620053356762335486217375145096519465672465090401892858137867313962153068509658731835876011254650074073320441333417056771223249648090218769202087330479201021829691589941049952535617517011427952867332685002672458168714048802602035943821818692948414631116286128776239729012341124178408514907899583792194762964044328317938177521886460842392609214148082405443647330056971321402563619989444647158492299968130362741548600967392485524669537086379222388477348402798026465272026468294744323470343875088401249710842654183697679510103920813089841154219839495724839727712754858989008024887380041279250924360915343227359556508513043157404423096910332845445178479383529878145549217506599638386589461666362851725160979766344529690238359303494969502222209986846402193288552927725857507540849273257912477027279546259952516736467762125389519918831096619139783529864996863111257114722529422014358635934271893343539834556615303116570859818000316549749852537643175143847434257908416365319180892443283664559266602326544958167550626450862628538766905294939249263641238187912482969234300954021368023030996896450339437203384587187058805150905689508456632539968204643436438461761603976755431543516320887779022678892218983011102235338219509415041500304214097090426303169760268535140104916901415466980669140945968278150650073060149422238538393073830617193932505200384840650540950345992509417630938664191300805342773368463369216689583977380935179953540187837271201890226441246128763859779574107952917149632887453183435408173935162479118834490882532598560930416648136625529047425817859567906867952090230855051874610656935708043344452508271636183586410618625065482021308672508224935896799032347868609013492854737661905930082421960116951774352077325704752706003699159514330992535582998433823430633614245792144265752647755482740277406760908623715317832688191176345977389532280111921840440303611670602318705013785924310118332460008272560259234842744587623195464578772137345011284403035855748676467370170314961291463645509793706961317698532436764395513027311357693004389051763927226050174912702476633436381667271188313896148560548042704846084739345906442081363875294718521205498471229839254889262813313526952185378120616703592578796172316149110124823472030615533055949396646848281909397902488108586457058552823751468308514854681802066122118626004620691606236544523604382734113047054703181272589774989861093202609420368507221862256902529426152777756742541921535928612527800665674927611096770846166461209089562763879734057020185680617063981019556834050596340737008846385607344451262424209285406594094454203142011703389620088992825196448990260603258723519364860444359552833204297860164944277165946050987971247792368646214900414069576155126725481232351912657938052590183454949067006458174376886109809724120848421237809248806303522739175321546227409081833052726154433084285588259654515747058844988476887192316226045676746816023499231166098359784815589482005146014451144991082129222500659595270517051851993418677728571591762348887189327046971696949200474246611622370734983381975250251250622094448437347412614842548876060746211180172316431813265632674377682824801780825828907988096065343848891676010844588103412800294236218684355913726594748997022064956911572191689975382631924922686281901534983823197415183016579163742904334685512972724798155213080574756518367797678294285776496696522071806320554398727066683123437766762816990403277987937267522099466046435658986549345342861044274660614804710138449267503807839449879804357535453991608363044722379943125659661857741708449136405013124116435733292090522577904369103630952538214009657806744740152373086522534409234674627403658965502284789015249571337540356101881296175048597434431815191989024482985410749017280755725371626787584662095776227477553912659410397051170067565335416046123430288673098420801567382157639107089383129582809298219340928433917985789290326918097339590206573591348597793633172777854528964614579272771392058049146486653341031516521410376608734163981502668859244201033320106290710952299869078367999623171764548531937489655594662791634830202075890168812074155501158833099615823038121036987153407653145949167236854530792570054028509440656853779681908405536650709470826842798604779678448262030017917036524047084528019530307335069574724243851067308760466497762012565552575822196166109469406955245480615032617797988201262722081378676852858248628640582357468195006863780237371019637363283982709800072929117059096319076320161463213590351922209712191601473198076946786557627279065994205496933447337830334496484686284746272200593023184694659784334917529287914119938421023942125534710103853574981421484972834762196773687925729101296555126494352930019043294899394234778862423903507184140865728566600500628779032392848041392445991253593078767326630665022620415739292015670773410435160814677503350383947382604447047781701418641689749495980996027637500103246346601139381961847460622509491848760948782252129624831032308191420652065253595879441594011433689286590444525011043248180528947136688270294043269349984509237841386893740226669641806899908918503973226622955937852165879113279223115584171311744760534773151395431151351700561527380993978078517282902277317711418597509058979724446971123905442437665260642025813657189361852369671066584525470139216946866445206446422876040494506957741116924565916273675175425857413532915498090223055497973205806050452187308491041865305614981803120942641556405792445305122951652152063882232721906632880489207105004459338718299612310073723434600601344611351688142408550578213058849604738058565758005681334203280994707966588084269884709603790743338225990610831243304640174168647845027843908382013064953168154366243749251592781922245646662861899192510538858448614763376673348628490935102611621948696247970958085995412104140593729742367397295763583183152125741483351187335474084552879898557054391908720122411352839824915717510479461676480837259327782810287672453373692374110758623101080116175972254300736628638568559047271985125439924386119753199028212768220659632962790974495379550062531428817116237262155659190158268820484380023795736401913715442312488464516469229338191080722107750797633357514148614926776697783189997419158302572551468019032996360826312177059744326404171713884071642159589512124800719156521620500096453380778224060331196334502854363903422754370405632575706519991018552877617284659146665727495296699453490385117411213267010202426753696134638428323534284439114032117325180745837729526283821209428174684440237070727672232989383790149011340979969464464706781623260171730843341158794864678906427451572063419499771307816266085469843322393210757938625281655476917740289636452995401719722798963469784310614566110879907783272368375635606153416187998033099224591368821459270936391066640560148931300901009604282072007336095686268997772808800674074339442078028754618593716508429361627690138314966486853127388569411224926407711064941860841363717088737721831656374551611606817057162559018223419585734158544941190815488066213493577583381832349720934696292408059968292748890084351210564021582627231319647905977179052176962782908038048420975818912376500642813875667724271734212171064465879481297609915892409777370786926761167731034654471742623491065371703132020970225944064185635206268955518845982350866920001959036274021497190794008006171359061210556983184327770808422386984974707738920682971525738867844882122500300667797545544643090596477802768602291723948854491395716881107315419088058016445940619470187677701627104497287715039389449339925896394511328965317503357479384277583271850712961872676782730409727038981762311510854222198758616588367467507595012431187818974064156787190055931622030328639983262346490179292162417643111872503135716590619811921820326096263896301560884197997893961743600029291854324334451952685401035606112316507219623140882800585586491316437418180182436701017035977122572027466962677737296933180589987370503585230676874297530830280019189612389259120258196484425900832906252961853559662382092996687257335254523389270294079439609976906241464817345886277214569621740983562718144000063874161584426328491470696973249366678917669782855079439524588654657993276030118789009279978601021555644264022997004579985462690634222748115742712796693419826362829995542196900458990902725246733150438297354682499766481170872632105550356866261647760317598885499937496494013599104282743155877299854883621071223240454767561590363129663726814706399652469874569470044715296239550910871497544394957823044531198781585281395660469814971316523682083188092893093577166505789050425003824424709513729118684891439354625626939615620631707056493702586383602925710697355257886269335572280937853573868304782822212605615338526003958234936808941175327332258745220954652592188531490279543086755431152293531846437583292946613522908586756897477334313573964299570335069647518245544246311214372072711021480204241543621679363010556321385814622669384393329461326631786689068726665503565709089107386267523510325832948603109024870269936768314262317993091007367775048859498830426831389523204473664571908694159297690792576065322154569787130299802392868416308084032774410377106415217200794269875165616872844984195574236502963123488897226160118018153152492053738109832788866030518753164253261994660795044719253575554130434748845468234588094326814531811944139662300559352713671482173586759258448284210207300425606252781127899840535423473753061227523145424470448478821162891895251282092272251266662079649464204723590206871248112064486729992302676607186414584337105485061530400038123494734175294953217794427265168001763735326693521551048489193570580457491831079871768038974245586994882343217108548124357240546096429165684544721863162868354254263922685541860938590785690403569270329573207219220266050916023789244239657918468029457301203009407897690111484025362040356141707047967244475209086546815540184908931692375088942385658105098199297866221892903506512054464646993668282298924991198844669324340857329205647880983781400755788698208435593073164577796169705508401459798836644176955513520432186645485046423796095305835737190724518971650450761838273619130363055303672240558461857367734473382446679536384366973520271376500478875086211556445942151501835738470835868737650800518916654647389749853829774782811399434875167966795382604380624001075561659407199656945048582717333541583207047325085599415689870521021231703437167762902891109361625432640011171839278797963494518954489756738511250080167324408031665937405907162146170184947984005981600580540105768190424778065598988622722312612636761894388484038549089691926531908998021105869600730378745781229757829054171671372354870814406340723574024780733343054446979379182798252122171688740771980884255974269383249262521301346290396461907912982995189698974070725757359961983706293512870006427935263465574131694009532465862466354965301175742418480431598520524400179099664296819101060154814519037975754854605445745228644169381483573420315716043972516246709708779209709262973157500682813237832980940735168268428171964374225554872779751875954145833939054664842903315093449598096864310474298810802956366515182176074667354883111712746392282811212438730870836252208793672885034294294970972702692237700023745165881810675208121857236225717072455277426378348919440130174159110961758346111849711024346667353767027264791195804134385878946693972977175128494849352061607480886774195523366970091622001617024634810615579081510694149291303998675865802319055211896416696308484592871935332021353307978646609937362058399898404141457173984756114859983673927832473565813947874251323748746945601244468210067724706503233061536669539105735735550464954165249387948448396577482713264565196339824911825000019043357238617349433986880807151312482480476131145115539182948035922032570359444474793899483649129899588501920103350615728242390628810144578546270180075516962003945230426038935847410175279175540639876910557649883964630326538710592966626577273357308940716531134209380299191661480526545023337933699529557904056672784916833168939381544095479140183668261359060641680747434007514154481435655144431827066314451987322490041033398762648535437373963555434486186976000802340597835151077866917186635423447911003029680736674370991689509355884829133274627827873278371417277990344904237267090296363106411449775324987652104309068846813035691426453441669232552605723471555690904544412430687083977833160696968962894257601201799704266599783943518669955980781147318817212461496949153682682999297903924511865110512166413716653165490185302944830512805488022560744168139119311677890821516526647265169271897632299705035600890018639842005047075613395288682870253900032613183258413032521651688176692564763766606845763271920779695405592368910585715830169915891299293670662219732406590058264419804355826802406078787966247152684548039563615263898022811596142424253085732571065282972541459211070380276608490445967044664403989764018596741887492634768138472412029638415456997090691217707406536748543753457400113386472525962334801715249165708123079615800208376481080638451130690840875180482369607826921179291552054009063614251694606007781893697333657321895839638861903742469576520541692730568298585717981109599924230387550300597732569328454541487628490348512678626308210485763300295639632669398638776560486713911904800403088115472014315980195681894663123370275025579941126412129862832389655688296029574711919029914190762436262468000371937672323695873227653988063515561773985068445499895005527362166519552753020631825339155328968624563497055467731994325029387546498459708713362935074087689663306616628022447561259283416981950855969382591411311548415893965962109055420653347641504025753126592141644579410602462153192405259936870397119072040698871160121658636292246156579130239265047297165489547022581024053720215283048931795162699610184133659513886751158446653077710304649175938700306844110726155091267564776754562235517569333767088134029552224518323833873183138802422152947912571243512069102606150178014859111695513324798472170494019119017607089860642518056046959521451438855358045119748259878234871410027045017751143735672703288733059595528552423376320891520974723192309834996142276344584233292694157535315658417016110684678766787544896231721939219244770830957593093753785860695936038838657371241287774701109742732176536643181954258231230987416035928414084478647159942818256772792801141855805068812699143759292242301654923296543785653167810612512324225068977874535384050441834302706662018338402150807756167564907776242627362933923404641219796330699803944798522222504853718967810936518275765648863090597179513369728980550584387692284486775664443913106470537610980271278355444354433122166057413325431648661841617485879110712734071812943953471494367311573385663099377089304510252409865654893717532099480685412833431352687654715841780908202867862635708989537315970005687464566149953518582006163005443997016954742272271795745154378984997968202582220403722844804381832403918841710929997641923549862771013091816775851312503746945179352296008462364414232279494927592822839759233117067011177946773861606838233211595001927450951934766686578314123118531857113670988714949264892671232872742541795234807480701890933691249153521343568935407806357543408209090999192943160019118063797455862058593375960175027006237689978371677345971485727480393571127398731358189881057716219476496247958194585417285138811284527942491657094216146383267341927264429254637235020813146006501157107693277699499954625509404320708758019568842571254223057251096497962534602282722356783771311832149817348230607137645784500312715832678774979482390832836580325119398861199423825708736542146535161092441357210121205245551255603527046643348533764310521678559084076796641359477868998464682218877462127707889359100780803455453814274317813052620059632449794599647933650648046176116430019068234714384207718225195471559959737051990635548381058286499692957364248622845966784136881226389051415194681379065878127836105170602525013799825246922370929799516606957806033214073501264564666817206009499985202871659972640190326492652299105826201226474503799045099268609051958664212388946956762077522243391447743511735156798828669424131038086600768250221565650170171490339393689670729654088594508216210247152156349280348469365605564180742668459985042708551475229292167516828253636981554367127843245324428808712278216468563777506860209857701102312648618818115502047533907536664442335133249769121300793157776602187212777738359625604850330224898023171504104866552485419092433738158681092782058451673158223503216014949719704122953615787706408507246542251178544581210827420387970733494191124184953832495688656156542560117487194162416021490546053857667555683672625340049153185849849333585405516569788728973177193768759266529906522694766570820003922290378582905951030195335294008189668924318204170677004900638839838627614017527399541063881932151469149046273484092934416148385641448654019745204662448000307374030370968732195347367118400590371251809201590539860519325626263783922216614434470795681243592491648992160761350800397575343821242761055474437986123968998059884447897657400279501271786851139574772895712733150445813352274430343888341921732881872012684056504059535692159840188603040783238810970932688109503295971621609445397385110780696277073020154255335858227087489972955428124084914170670140472413621422954142729816775439889583283401556542620617045523477790827151405538524258821923520029757272546684270508334369463274587027098596123101297848102240638575018080074680887581169251820502500726000956462898209847873375612004302294889604976577453529245425786180297197978055509302993883111449144538520325282676406679835000448898517403715555944954637431190069310897185876229208250786317778734277688309530177867310746657268952343584421795189520961190594578589725677566340991921419356990121623721822584183952115400948603852676320112510324703208515155217001373759841217415988268733550669142596689677605019244949161416928335779633957624838047864428184723120801883369942047326347532531571760758129369181186530686763134986111033049243875550978124688870900603664061699339321697820036263511669728213304077048235793212000862410214130952818431510610134951137852139880924662276536918949603648065615870186079271475529265572389926733869186239965825902998151330829934234800844971515431360066379135765636007055420164332063616625614601212438823634014122648639081743243537483593974929883192572865302764962249724473543058794950870456777825955032677416762594249954347297983203402079121731947213921020954106843012247750384614681638191551859033134585144218101986410411775348957305704858407233989506607158627095384242403507118486922719954174301137162906980611748643724334896543104241754688705443071723351569080909930725313254868191743948186629431920256625221903644139284854189129799524945145209403701171849949113465764261921380183203721768491058203314240763538948124490870098183304906150232358120122902668688116079729837998244046166855658907744677006632384110982769268923827975033971727125800453810114248483718112474416499063245286931642333073819346269290240591744106055583923076762508677691478264074698347314198803713138044589118158054783210258639118462131335098112112202545377307221283561334066265037717631330256133217322443557871326339295632161343017245720069809020106403458707655858887199911377854482372990494706691293407670537228541982987016634645599096243410475983097935197265353816852161618678087010755866409074472606601837416761468565723665751599311773010617294276526238529035085288684095087851333633993438042971110437536961305632704077345477351965249268200544139544864868209460732463417875191255514687704477436139625318390458811055498323997830817139252197933403142575327354357244427166200070969369470191265271899550542602382349839948945439654357661789595303936795229204618377322604834216497964114705200893763796490320921337886725625063135667638286378864245742427655217093092070267223088729332255856607181714535152737364121201737291109571536948152799875737653338646639016893033164219173755783946359188787120790743966476542181482974036072554348845786943097359530691512496225700903805270155418782353755639100916290049540084878169954376578196911063570075744382665177421434983323843750298173131211320515390204643820834293621072684935411358354677269685852043196631001097761231111059465118017689473913325783482604303450045985021858210018655132761013611989422435989303295369393156575465513720008343176745136164732079762011837363630804663531242730622869028269851840726566457374435780589715192917530432820666319295610577055800785729208752494213904587976168560104775299937892685229759724046888961542628733890725664029335260725974695986206691880390292615311641820676506530722540235353216729991651904194231524394852676839448149352171750121353671646017721648501238025562310346253061465990111906801877007616196748899264708060494108807744838920817480903013718889370284763194283582944016764977386513195237074845471230230787636537233849263599740935864065994201342257700413506079203579477423316444720896924167738322933141355656640749642436614373458791564661340163570735654439201709889071417983525831796564916258036230408457862264874400433544072292804963244819653518496076652572355884914124635354986927834196911825998825624236839267418608390214162138610535625729263317821045102084538323581152674086995372357827551353493056484859688237968854596987139448300225626693477161865650219047888800761192485049279246350187445415917687047146355499090549895798887607192776159366305758576087714954495694578781693272425434799529360152754448714127927334708251836311744297686571386487240755548827117373614180987192011550568218251288462503841530739283732779563350419169853896732030546291834090442070855817526975004937365059951630686484675877725420395994248506746533684683616903713611111630465081496383649721433519864667136849980691041234769587071648993151329630851611676533796309888563006135153349741008729834825560568554496423108258695057312829979384996570329555649074659220727900851492902511138340686453614749780901404960304956260080381260984834180011917868568910724753729735721759214958112315541815622622083239326593229959048808989141469591971804782087605317717801302442356576833716324800996701287851991362396963574683025029097202695441370120215660692800889380422782935796220209918342310688903313149728251568906580179168703833875745928133997075042764963587620311646436737912703277875251894842596379797463738155814544641563096725014229801984490065049224222661768261680237052784027545244619439955229616982053058126544187727701924570168626157126425683389418225955582975758728462304001251793012818944844345329865686015878713360174573158859417784847312809537392617636906475118094193531941603128534848461254112806269420327028143603798891749509710013923010551256837640196651000172959688533664989789167361401639538761470694248173833278766325718900203398379649089118110788857001781063554196718446313326861289091777174086719448036462678447291852287169381675335966933883777145098282433545552281423013569669380551364309662647106864572908278143400477745593269764429657359361670797710552267236849650858165853652400275013171039903524775716362214437799391450556317004559980271999582267814529456689296379955503486487214042271460244160486100835608123708575817685393488761005428145044622992733879970555606046065233313114500610465158604994090760535823197200867479714332342501626587957368103526263387922270323488470269627338980770552013009111438149021113812031686973906900677665483723014428789290599853563221234128533802048516328627766636657301379398046932948374887547427801023531247966893890965371973132611086200756454268203912992570020420824312206027086815108134835731600109626481954116319124918525031955908374365376269065125755826194026503158490101460851814650866832807119017943486398254309830196031806136062817433678231836745076235470367244848581253609030570031832798314750227323687782548426002246277620478368742286830404945795694218536810328141894865489388318884287096108003379945098344509782020870007900979513505829764313424590402505858441144184900181319885051066886355747714424012754793709481455933895353871921912380932372421857738727434882706731528991770000949477905579002601489171487936768894744538277634204726442370018639318702714043896821308731738388252828832134207361651509814366129294634670450452744269796069206927569107595309972368312448497750098694490214646513570471302791773066339507235137269852325645985862081750749842955182069417833878500640565155664950289001543212805090341042587016346163773729510033168555032384461218577168780352377928218239889375454652030964358157642442787489967764653784724386350625653284944328588194893717351192909590321336667226267089133812336551325019864473394044153273899552332197128323656113720440764751124496390321173270752575434808736197552448235824462588718066162535700430345144844736819247569472366746468995759822068498659693743533458661266524841649374929672372121428821860788546435467916460557229884435155051422946144752704644694394189111734637539377836025994117633097987588893648320361133399148319211927793798068284047532482351532008344905801830449324752061361315515307005421826554668783098908541622602444943365217637929443074319765190974249260995042944726923033332921959285581902525159653754546672795292364472504902941092486093717240200961291054692876741180529558550638247485765403704248190571773149012925700086050003367173188903367026906443468082754879019268612022823229685000540284384174664250428904084441352347955076877571650200144722531106241033831420757677803145860803188737239879161987224148655798693911425022464033744854035899026166437210629869074433325083617292548952156618509459196375289695746618952112795824807944913436137973499300437665921218870545444611290945715330107341855107546679169939241618445609452337161252519600527874540303751957608109959140253195516793587258905698358779222443771522042813066140618061510049158027130518024035963244068256497037668585925139160067376305536925603864653185986964291183443386689630989512912315862367940721295484014341072702110205079510669858770369569461748229461903166906314684243572699116198463332014103135363792671553429106694860102940590359656745268445596877864416629143690445702205460600034393153545549147792106815499731839213895930115738934043232409507163057676763600068663052355645304200513921794070793430246024226476121595208839797688446335447474502494087323791078945474147505134082268363942842663600901708658048918766885992314038760457825808508423199647662452386733949889072911340750123997262055948035847701132445871891964989920370521057867627631753316392285912574519068509276417953090397946765122941083639104650700646546402407783837584970645088925756792440798808918124498165750051801630535634935966785275805790989911818458953821850997679858043687040595175749573353857352607820183544590161520603899271212285584671260620298295014825516195567247998915148931447694287679555937545878185513905729475861849947813331508212582591425779741278340072642497842903336698424860737978118347407624582419252054916773161331548045131145296702098053968692122916752310798289399711257213358460024400648605303520424038058522846355599409571512870292600454428755600616090888381697148553391931328960095659576555213227490943175402962534025042482483528615219038670725436521935160819684683474742853209681972691562264903092523464312546935200679850167989517078098383884007905270075668753152534691751658511839398404181952556529436313593401312494091365153433728734818374937330017006542038576070883919861018463086483507688510885913436338885014992885866444378452755016467138699076599045211143629819876411427105639822108961860851321112291031793234857193410408573407694543977904881323529099054504692012108399130738459724760211577849525746161848245219614123145331974779997282001997178691937559352861715915007395279898862125408244521357919715859143564109440380500667285517840140564776869156599011624842824808191845885803383275871069482752717334044550194659290292008285874794783226289353296039930514756243842577416944530458115029447216582962999087539822237845838513424713250671373289694205213551287467813311235058434495970751836167509067468611687175416190013183457847599291467826698311803378461264227644712502976440856565727789591287131835650626270579169095313886175194051306329539787368940304906658213532649660414710753378453556350521341300172625500717237525859975164976181046472718558618104792651705914812977678665377751125278021445088469194804406473513934054612989088847838318584588589141606589394693055472550765566894841851825544010630107553723551887295927691255015807141211849917104008509178025978424293913673218154276741680535028321446346990815967119819190629367767072226293621240116509857269476571279741008347993142565642920543374159417421984472964694654065591575764547675118325122918346232898746377871576513851838506850605416189990344752950492868985082014290062555968530616973720201516593643293584266515675011483233218233264685061645542432298412367098432715311786564739831099624107557384331397795341343736651470135441355873450065587564020256090842008428596855503895930941689608591962344327889395113610697425317749131031234696140639465683270717466703125714630867468878327510460101528046206620616999735979995519958753414221823745824821578083523815551257791622202016924946443056040833135829382618044947555405928357725654827068797258101910495719592201807448990468513669282165191191193498320421652153193716871693422939545707218252439653294445418454652244610520047676275019102593326508824101383176792223135743826064240375854277369168241544705927918677971077740132759157796438917923164451983922393927923814523014191873657977409758078413605470330580117924931478551469982285874476211346176177084629483364800687417691168233826603546551793113984249885402884362699067819323185995458937702333746060430241672407556145381526779124309382645404970079799147491020341066983585885537053464267438958075447383354897745341053955533047520163522028507927760360502041216010907877396391461611942485971869882451892496488184650201944181006691989387510686277827032655610116932775948687516286006716182345559006836718058764984805590700495156832766811946031477712760942213929764409420997520025259271246763326241939287374462875624213724599085739166763807080838678517078786414380912147369072615804950507857465426596969654621625241678329691768212828478808681636020302698627577565057212695933409727854565985350838729228883920050328076749097694745510983183493843094145300368934179202143647249330593533774872848635809709719917757552428156830974966365006859996342795288320404496032452408434234362130395392402274805430631961509663832839126459267991679969493431646328044308151062175448887286515982466861559948689579335972644833852579741908409709748710986062058217586491607034996171367079324703145786166083212124486470816683182506277932485005401930740816805465460190894397246919070952509209834360925128350546052681187052592937544205178237640267654217498938336368605422281737432502841387546765683315859205630986386842442919810951386899157197369113019437721092551568318457932925452588518980448980504640627536471583455950255983020673618969230802273116770519112097858223878648508721478193717726382349567667102258326149926841250773395467211152360444518401754245893644816459054526616420907403861834115871650715804556509926065461297691166998034342929308892285273252204373663209840406136241433444383663300555384839092557319731825278444070300409527769126477415354173021686440262094762964120944520164388058966245509035020004737038112173750742863451799810827478918242337027833007211705228513655738047700999207193404375780393663890453404763153731156944643612708418644518911876397828988014128711973606963651282142558773107207728333398263675189344218006823321379887997538451667690979578096696075251615780980957738080127085891922785757954523546104584171900825331310186498143104823477235929204248804940771835670994164981494433536795293282705165316233784740566771954116828491391681834712900937742370256078765542096431942071485212045744506149050731075947432906630868628119954151606012593363555152839958471028007413455083788550313188394609071568248249965223018374328345195326964382371267456214236604805265391665498545813466703136044980517628161999389146708974867944263094800652800261724035118917608041885213583578566947140618098834024262012148748557060878659529310017824355798544867159784198852063611223396433314335103362082932631708599794610879226405239171886919387809625004183210886542883028943102444568515697084391658685644319687771964987476848995163316456142007883016321620921908421402262565987414354541072618429999121256990016325453188944934085862727866837123034799454937321741638712147160847489356702616701914007620652096267464124238354882076112398343058558520347508480934446243448393729252744344095310882676399755103674200520870021867945476375974100340997098798201698533242978612904390912400381367962259433215316452707854008210681320099481874972265658756094682658706591453508666098337060847450472013512696278847713418667391990710741047657218835676684628450494905016020444066369396517763796518536397044874982231357720834386646226210202961409210627342593923659894327256647202224457737647564629740720675816540980516634626215210247522365445852476915006233790426295211209802633895335245302247092295912536415117446985038744128154392615621470974867237027537433921480740902654412109187103088912860630354628116671555220650448222301758144018951168596858169960852084404080804875192460463136553861825997935170114145516540643411552011821184599714623366168888242563990058157323185240335145442502105115238829794323307248374142978056158930591227926696959203772620797209373894660689433394118181546059971332141418449014039921228436633832286090303203192159887233302968388103545804424434763276925623912003366767702196651280976609168034961767546053108002539464734723765404606443112827985037155851833703349546276148822051428074409651362581264888174977322960942246961696694758189338329184401916494084029774389128461377743263060172029403694250093671461336176876955454568845430166775173503881613020205905808780644068378001666961728768141682257823680459630476760029390922453852460295938128203310552681431661649113529676985108902377766414362064914862841400585474720059003895758615279372677023412425186540734843611243449531710709085635465068337030283538895295711463493618690070252276977408898058126810010780493413853656462528622869871189693915952221137995748637914862695441528812741431729683370588921995548030051896207982540055767574599997405598641069295359213350291575644836197814245571776351484938749441176215631775868544008247140705549892785153534884766093069863393379214281802332992279301645020181758768701514015194148017535348390795498406093285711289393021975137307053200919144905489208781595817160340678975320972551612728622244204779112850967930144699089670976246867348862427798306680078329264711695771402260744110783297642946464357973855028157519430492300958695726243997979428983999698171786015602856724239792788396967264873414806875658587223811559925877338989121166378831455097680155414960511478894620674434688427633097822616783412027333281345027379213594634243437311404302064669546804753656783675525567864049935721236311645118325416208279104438328960382569137287590043044114211413237421640825740410322040937627826158900062048475119236270350466747891578650218940808223236108049682362745276164663576289258216840070691239646275594940800984911747976919525883820222619331727683471636041785382592594597310171002494495176951550945128506640147530064988742766828808225729842806022015704600901117629939620098500361484515976771713243344379973612705010512001365262654639422026019120434598267135307713386868931262399654481352630133204398938697851023984607001045130399673611845154821227307723472071822102045015313244066761002628545056493785060639472799032432148703036405013485300564550312955857535027964716401728471412538061214208879451168411121210762375188030463615684554154907327798766045041401312147614802546343062860620918723076173351097111152837881948263758007767002607343813037032727520968067915089418528014599683035709992437816913338262004668174485130084205948465462118889963941433344301680859545401674505965812368518989571843616714728528865203551555285984570160008395948707485132908294356695659594467410693071144768532494830651270031399343122139583843988831703275010380383261915026794788558701752695313289232141398867400054211427476724005045161253005636238618770943689171085363643914557182270391318601851066237645055102023588905468782222053892869098049655113180939258398184823720026507202007964226703108607545476065909823260445156306768660304265821314980136649477206586976797827466252658444096696433086060377645452244913522468189728428656893746721432586461437168387139004964299709346855106909327367953901670609352382120417329076675669478150210615861301035367297819902910491765937078981800622119890864045450302135584825018439267896178145043049119741180278260006087612820752372939297155618892444898257546980576012727728555052322904739744546138210927230020071874970310701969966473930831870039217073146342518388631575012398769739882922113927746279757840582649038508461357017849723976611449663673602578856468975220983350219425890900305254917884547516945454932274718455590631262834362114701992359061847785961520620267101346840629292396659891715929215199388458237905726634666819142257949114012714411071172735445592026219629661900316982526031389114032132815911663737410067617604649256243183575047867295055354803634694893513794989165412609374320120811108075030603612937171524655300342704367772378989655808181635315643333603777161690129479046119616015459869431655052744664569221812435662404943403335170635514447325046487190652537838719231964667207859144195699041385899144017028040134031815492457567353204457077080595109017682657523091609895170008567167300060228425735974977516098174261075904435976733083095013307928880835177542144132635394718807138837954987334407241835262904502190365716141275929768523170292946948611786660333642781779838164904505068354595435360661785213373708342127690864636000987213985112173133996053901548350977553717394112699146954854424045939177276208498812349471918134334706860971118614685890951424808879160092116690197520031755231986573021954669435206394428554385995429641079966225620854878977653069548764760929332103640545560426825627228512765304255744283946340194648814709205866002633878960887164146158028629896402123724643727828802154860205670895180222098470051447903264658433165978730518068158333676712521362978825190549978577500057805730821666105016779874826693066534602840668665652863209029951251594704645888639016478333457066750595565934536009133055030705506940980050128733618237312597605494379829503531772356328711056455735996570581217919718802850756074266131120104268826251881765932454540609916534064019836407572448783114047162767658779834227084441238682717179909337554247046900614406569618724535841121433202311854620440939987247038975936112726542077832745813699170120655282537551655105977130738876111170760827306568359111593175676278789988384261358723984767620251254801690714514601908484743033194728566452326541404233467554211830176373650541136577326638459978228261129492646038573024968679995909993571620493164772053121300794231105594112016307222545395933044920827665796768187410012560374093130446610794586905011838199923608975215938117832138374348549647847942866602688235800406455121063267587860393836447865432933648499224360982199713727974094641895970102899596971299506139738086522628677337799956106273101762598711109987301741802051022613750847184078109092056954895793464274271807496439275444927344440158922388370241009638375958617282958372805704970075535717181536269564084769540958931332513773790297543863283284346156177806593097097842204784072261488426890034852772795773599289023713859961142119529870259477564829679843710428797254627059354656906599446325580107540392910405574885176861653975297060852448371300818319541132785473799829036801810642634934307001264932076254272556999517548204037724578813837350211478665769354125523582319325993224760569066058013954085821313660833512236203175299159955145926132465186289103849548942591291783348941347037530231577599970065432693345537394782330664847071794244537765096318041887011200218855026801334458451370428759139327338772318402478635772976815194342360716021225276339592806005922143388119731319688664625290985987949162058867148258637727282413788714719292405346489334923769150388180283193144232772573226390569480255184273652821887426457755154488525184356139372788353417875508822712769141203834158071243001579696016520385315297452752982053121550621209314858193439199547781924100052858643066835943313673604801853585200239079302524578381791534175115995161058380358539310895307506522718840726572278990073942012516520958130712930228467742404876121610580311844517588994108908319735722221261917250001424084809340728955812522166131917997276303834578932384684393575304491597435692064306665932084941766813422100363795072238979676545400319662689759038194628301235576157321353065225844564634454593788564989973920401986597616891604791918140611493886219660954397048640414113162194839755296648558327021034231849297553655166806671458949481064971112766541097358060161242572594250005724474875748045484451779198735012839458659278357837252022493200074317055168348362798366150757555258889667891376662165495573721551111554872447473858483873303397190807770614320096295470256300744342979274960552838738181294187161343134159909288598393685432535058509630712125667483139480710756656834614798917912755200766046851361090757113718451186046642265197757652332529622298071342048883731678944177075589744782916480256819664208334563416671053670453767443173902719681490705048327121381014270262348268132615171380029995971370725184099088886570005930760031113218444071406673303715531346616627015427051948714808559834769235077479769356041407184788076597418392040830049864760482748026595492406262897904063255235420935178374081351071868731362884653857411086571972664249776646253554071986659141548606762795328601842459603806871140012140484499453776526877517760511816403974885072279420172828941920279748510393933194740588647057662220493461970309784788479489453064731963372744867628710295020712539164912981020649886400627147473309253110678311742659749897770379665365039236074250710035752946409947370534695333129088766651094558033723084538904728629851829116620458057820392106485039780146675434773804232938780327392364529596035954093213306367158156151979592442389049929258010358963015114170943248540664818964899858773471710247329214891849481629027299486772715529997652195988681775734201527007775334725167511752650033593802778621900684581791378203520614559427895528994776145151729593945782820794790565013210757439957598962750603714217353865221652337089559778631328875328645358023445671460983594506805974974631239014787075352787941190462211572460827135966497038280279553674314220606716082299649754234430922265082634477540981265282096215953421086796664252878092340532370214923376050239924727125861977493427335433605585585985421810569245170082030160430870069608185260511930488695062294852479862826887760377452082629390924000219598000495630496699860717681741647210133055597337163944494286046972890864689613780982353106707588016783696669223512702252772721402460299288585061655426077579799902969676235544419113156472317137238571884618028014768086350770505021422299533940626247677075078825465791036194806320071629212624185409249758642639921760282676887539611063569699958469913534607413075303170862601942288024947566052066363578814800644650092305267225534213730195936745213822967083259368782343808381013992647309997231606294719906075226076844635098529346921759107497040664264343163360955198864762489377185191096936870972834711667849878915019472394535915598216133888171419165550115321316194881853982508641790450465117058161089226258788993429491163491671861745201874115141801684637367403151972194052221808616718162476551238760198468792917349282291637600882605512489321119156354577083445147784139115017367772674128653642067958304772061844314517361141819067807062554770001641999787534756744624802754889613605793863984062207846256095943565012171493572264266417778724204079683346099914537298101420086523970737103901335293504277128917483337314670101250603858602518741101832180883892447750525496393033399688649454119811033645232329763086882244961299378827562694211388365611259285301065498917790064071335299158123258725931328771324012851946634950702070586198900019964431881514337976548444856489536181583279808023624884118318700123369003405690853493090801885699768616125174971260039308564866259113779246526275641482811529270814878268437888819250852961840868638430978911994545098838187630992849716571227384201510476831079159803334439161415982974863813075369710849776950707617550248639229835663715503235408479109032414675332329252438094437655700769413488294315236610183086584016610326358278080775064471354496253076584405376740841890558422897924684247271961416144464967045857876628505569874398153420654794647005203228794092705469807090885221684870201155528593136411417374820021125652598225729960704010316140121908296839745621366733237831839280227875249209945213425928829646455805203353536369943473504404232547627596725195137393870238368236712570463808587097557375569798495739952634388187334224500222158840738218961149098839239787014489184200160808792712340182045375021240604898851181797652115366698785219735115967130658070109687113366982375333929804050519564173089993139698327724138277013327989826903291866017224475351321929041741453261113271960862484974864853657009529827291504203979667871534092953009891770142890526206957532303399630926445238758225677710649240779419552596867223160628018713239589387348139665081428408303396773545730948139934248028161914030613272592949861388354133088196927364302572611514644029590490604825236442672210263486257879612884421667509038480412946216278861838027707058076286631617675393645268161160505844585730455014854012077605028301197402361984937147586602815078284830538168158940865585049499682055813505526228060777644653724686569009595722165548826823683365488473391108001561290496777694016569732135427061096627897747393172007415008134497752697380454743249537762186658680034024258951643347448268375877694271586979342463098642508955750742642353120562492173072592950913567227784285574325086352025030265537765192835725419214250521882559272876094289565385829212342488623723671692981064796184210108342278241577579165044091380240437721866371084710534908272881785866495447021137837659533347264826410542814127339827509008453055920601155218711142487475073648014538324384193890883402375516506017641117362546938878430644423154897047283673197327137329746047922004930210371111918000978689529985750321272023556548730494839166637410660055359685028484217621798162069106779384785431055613167150933573174944195290397387008812267717574081127502244663980787565961349421083002258311167626375937014810315252075744360193174171727905958045985491911907949342852227241433117594284553662714488735644594274839235660998227402140678012725851903495905579845257058470563937218944963725976988913106168840484805916667578637594090489212498958143305973955512678316556731677780904781914295037948644924594317077618201696400955660799421306390166036806030713384994068007994520375461828775848065913205670619675294951755611207951126752140151627911240388455896076499302411326143981162371589789827545243584927875882849539313511823122280266503068285117729839523881514366729237700964745330759569659182488775137386141483954325966659644585164831560845804740460971330400781015653829246378487757652474606840205338152206071998120430967801576628628057850300174768334445994275918066383661102856617098642218903688114410146330448705365050324885983877044936625151922933385136632226001481704933608979787631909158563404215909338122999803187905573943520204231704451309950278504230040095817638737895994507660494188739645682326939825627658383988964528887724446384009604161748597559213951796705007100745496086726644710766244995230585083796762593733330655129954444783956270793573925539715542268820584507785538015621418757804462499114982813061571472412268981617445956021654628850997515773783121561620031249368903925688535161149707520925890092234599276558814153490109229696379681831411094494763002244292608295261402066789593741105176589461173765120110618201583132725641371125412562383328487036889335380293821579087225068478689089620284603242774659646130711274745331130124118618925980589540030838627224747367676678096775398058690423426265472564217724182893121384412948463429173475647292360708022664351277087425378109539171687452887118680575005351871022823213009074897743795967900340614674390495200437177234068593261781526861836773076783563338808443495783907352854401652299749771303600558349501629429524019508260399991723068972961254454388356474251986155068745150891755956309892899555049986858622599941730643400613391903620342036062629356693915655447460952218745953878125761957350531325960942144610917800531178866557226175327355618996218888617998168634603803684145737127967916431334226494989780907571619775862700628327919686490950080223627785808557524553247949875360734062715011149709428719671007132056962701088711606388133868540056664092525358462967022971640149476745346360835893416698906786800419196368074150498157295552639706738848699477370165033912283769441410055451251680805125825341281646517850567017099862351796639020318281321715912899354486731550183143384023985985333708040352123876661210168967392083454976686282109063668725704590104907657431406178113577349098272630044286622065028931695131391558429998557788631788991342827527154385829462213868434968348441036996685959214294859088738260536347484470057701146163417483595098449872628643230011103553662100293259178424449874401527204794034163924687932422929124491470922498595669460243610653545139830188261695290327337235064801066022827321095006850492291756344186914477924215793550476660832079683633765461341310176805914900304610469064284562157488523738560183767001886919664339952355755671011822489935501796224058098253074794188692388290526239168980054983201708835224800397541731047320067445105860111950284693438125372927815412724344136006461056468905758154891506182339459928708312526779155592748924644406357766486366634733761022371665521244278589229705076092931086255319467141257762524172157099719236098347969555317413374114344427503690838626029271602776186370882265982025455943699325860358703631065152785229111716389943512086971801415775777380140834630059697828695827686983296393477628645107400520814002185164528463869840452950918407962513100800187496543317377369481624426086996135468413948566491225379215417590583872490353964389569847737967076824833838904702150964032462833007197397639213096259644357640468125078910486461895071910653491709644268334457523782930379059046107263810885672648254158837273791713551968550047992320081977846847844566840987651593885091976987396659126045784891781988118131191500482642030842779300661168991224000151326937662824265061877500834371582001755194251374065514345541476715407147324251720734514118839992768833951665447586728034504475397702756503705860085284164864815501604090358787845849351578759661033598488919260496752043836808259192888459074044383475435595908842659866350391952341583760972772014963245947861487244160702560161911914720333615130278236537795750393831363815449958478297284742196336131253315445981500311519695221454588647370570616957256487019840954435504576107296374647105253247857065626634598845137664373086405631674034853309992353557970503712126502953870227310333880104283096745178253193379213497331959964006383676160733797432452896056521144431670712252906094209487156334974535844586310485842121807273430061199660172617323690637593065267179851177600258324301923475035252945435817131035001713768501641961608795478736582172022247484285840286211169643335864005063746632600763918442280867194588836178676004123601633012631048651520195650922628271415127032704694030281151912015049602794090084051067411828043651939709307406149806450531504159695389671924402506253234803505671364471597393292990137440715410021802467921283157202595905714798451143654114969125130714077515584524447485800531619832203909915521007960594336590735843252153266189997236393026942061163767946054805428402630130657382270329677325439245989123647086410094651219333636939123355089026266130426508970350499150954946573279488655581980969176669647957657543085820061733621539042863488698808604779470850128423735604989451910099713301715755246873221852849793904243341307912084069266319204780010484727980427983252437835386644362634937909289172230168567137394564029381592496747751216993435112668961572349647024121412820141797772232561611902164130979987113926811592900269424578306720620546361703727722306457595556270339531322517975927981534206053614172771225865920645115065382542751471839124911699363931469852901946585500153222376072907908054506110717178717783739668817753857084699541798348416389430414458100202817889018251482663918917815478287928421372930318487583746839574011373586458786576084272125369194240189474974734036043351704949496978149946615250880676341290937040273326389586935015485311012720893379782873115086532189860525052243339415832948262584884334498311042690968891865226836635680912192485309373346469428417676911884395748291603492073327077774947202202402593338580200077011554383363923018288712790026002973671629007062738156575629216817415052194899051043656020643264410554685523428961158109729194672579420163210161886122285481306285663742867163174837000200264525850196420265431625157952332001530290321208679729983045562696407700766374727407379682914182185480676156546358065985839467636116170558746304899270984168635180702309072568988438900330807789553658295359695323907731613602369771108171110743399737172779107096255395761855648917522043663881385961118858006724039001331809356065655215568674356211843490414266042569523527014771612907126075491552076140291081994237965111381388804657863063717131341951620916808479666819049689984682967751433706643744233692092681126594512665574527024318279276433603026142039556127347918653742481498030565849623882413921457065483296402032258934371306673346378351212033931655073195530363265619274843680174645296297701765569065095007289281823216851668838965396518715377860097417569267852793562258050402781609814377542480921385635638498733140871634164596315435526587328039311031304518236090906243036077197283473920361928673197405578736276421635816877396214856908416040080556736722122978684390312345339392873625172617453274664114723808294139735924585967579785013148863936427237709076783937716145364293923290181092707334403314754051196652751878102853386316266969292991602641382423104091207264492547263108710134060455892479229210539146265176287874038480703438071330584314435477095731286045924919019929109114069933224768663492496985556912615190068922303466127699204481321529007807064753474710365260291072915505165653999370542353122838237410395585389648444601690184410748624407563938000783961857084753432784298089827232115350800245022061035247983335036366419819894359809114915372999004721271683669016750804568314783802405494362700244465278775992788284879869431519743400091033792753806637635222371831331293946156851816977871658918346901594380429027060736707065031490201652500983078607917625308732162922678546064129357427916524651328999100828855397362029304195254059338935572320787638685948450675772470703243718148761322800836692869030487869453715082610260724826437754224129487255080988706049019291031473545755546934760156658157850245639949465611383689525552242514326498120459829269316216336224234120263831371255359828723522729025699056233885805947604065552751561132637942927353004935721447358247879186151735529447945703770035095334162181090137029424816623066523819965834394051059910020548257197530682073499130744973390255946608124728881719837107720303913825718424399460479606889711349201229256195908932452659434930491375197405116671180475390598290830396810684373808325545274398648178093130700934226073547261503588811302348127107443949148878024381598639179905585521794646388303408094140718709526304997459715984694738378523342183459181135537953009514947629394855759604823886916460684655034658839833347239498370969304295072456760136436278773851802352091000753841099900057896635622707144440990725269260693886536854678157207649559019793230237050509661779339457573597775226451970667292935315571167097303245893896344918477590746584453933544440118970628527314902366115616037058259237814766059732605918361442985306913180924926695907007866161752687863302718307507131291310324312296742034134799779471268500910201143825310789378479731539836659288135991107299656894220169809091238617184373517890068112057165184176663985980751164681872293697447287640623094274646906071359504802063484743349800497490551971446464791432017853497452394154867938701014731856266274298740297767736007035761418506429303764552069277704339455131172808191383261636591316286916199644178315584564067453497938116714166431578538005410745834474677096618094348936727350203543582770698376342072044258545486026448325870022808954553888999594654579997933856359359679085436279314164902778710081725807721095248664394923726129453583121675734787624792019313954382989081477602766406707454818887933525903216596800052929570478378646706388854094040043422758415226835997700672737746318303639015576110716040381424965265625217787833103089393231295151425049710274970336290911479471326438524730395372173122222296867882693362031529674663407535444632006450905776994893334881281829638770240507156166739223283511682055635568766072992396387725048269957492892497618033932050874672837826210550755363833334645400877183106344560639927844109484946762701105626355611912849033285430118170625865018550553723172068661167378828945851159291201633398141125003726234419383294430793813386553303135467113745937157971888441312236910299072578773460131941166733842866884425493416366232508844139668504280479231607102844878672517688072713645800696580910206184419283622759655074726656426282971608209669296717389170867547720865084925904937001987667118298861267684637539437586189002721231374001443905484554151833843324734228158671867108961660598242115601888725966398831445052859163840819082711745566238082493663906945839499855570851368787312126417963288607648989453567362289158580049192113649215113761817847574882346798305234042541565825235335156188985880033902079315975876721201690504082644752961591667249237357639390518458060500475922078686664613261197230161882614653333650498169044548231602352978730947553986938921369027652258892095953882700926585215116367331073975900867341709339073427369581597024653262846127880835697992718588718939616314656178162902509794059068914221941100075434726015196659860345114504927126882398137851733966328707272802337152538831386313083838958633226558417821362255540378421822484965444623688690662841341701385043186062145479656082561905668556584545215428229271800119299255018911709860451984430666844888895134280681241236027674735172942225213953608859365852735453109031979430866207304572339174819419970282094971502365470655840678160090659298572352858771424767695372042041518563124816328285087465699970337833962958644078789787742468356298446164022221062474188403961443422104919556250312587164393746239057346382156462928999209994322346076139311296130219558105228775829633393534377856934291928208690808551794416285533786543514533643139869392351861632014317039716949722359021218896722297309232298839533289438372486622838521265595872229939014160657420531949034381203500365565405113938074333906680708908457319581548572601390490121151607753472110535164195000714249673765011513010934445628078131798705891513343935810602794641051543932568184986520538865448071331196931042705897654553515651628994487111355388367464920617202215728207983920398733769316985834706786468915911150091209898196112386572962945658879122572097915369855839833704918575512888140054686145077289141702098799974678611598500812250898942383799097320829096737765310850114095393446031604611183229168266468524082712593935625711541427701366319887776718195138661513331044337787555800535676620081987781521087117070355182503284987873120518295321136827209752559865859528169988623827096074896441935275617173000367952462041099301576868406706582840042206875833641884168952182346033424392292313181804233510125870983972078341858083527128824355137344605791035721993395995943451624725250930240065565051538932244805606807739957243299495090640674472264014506508132318268226757531387733186689860013388754119153459285612870680512185473748247049368883690882907760132096322147657857526653279284443585905127061397613132605219266413541267643789903604298297705431415426533909710508061361766809717341849806785208958700471091076637549947550923235826060392346110246098843262095706004870057966906267075188208644947975522231984900594154781457630299706170741483829110000410275304660136974507664792047932582088051630360075051859267303695911529312495457917489852602265973456842017073381849318419572917345000230128146798473180670880319254498467596948456091251918130091033718811740251965257955942427258384968470974321742992666064233175383183849430397813964887015956168996062151513142013830713525357331348735420019009965714245166815708485865018601555153575203839043205761712604570286633773936254376681392402467429799729181256844143878745948312490512184291859276092282082876374359668845563110266173675340833417308020956318868164845780746700361441589910607817880650489791968584814217498008679974529397195414468270098087796118496701863037132881198648853386641817958700977161981858723261973859100672676338844892253703332559570672224113270506245078098630700264182089666549334910558054414572760435451918916469908795529866211459165211879970159681906393415564915218874726054998936280345775993213423600916249808139270624100078534733557028402969736753290775792019558825108790450866382219263131722120786707267007005169495062541021089014728242375473516783827447765437589635045127724193356744029600704913923192483979276497769653016710339347239868233619288545687653901180461680359864860580813765068400729507672279534254744568095128353737925710904871810872411428362201128902442488191162497338108258671609068778659206974559901338412486428215099471488404598568331397020706453401073152654501880026771599464928676638540733550267505889731639157778828593543430155683255084293045123698104584969454224626537686057821071782061729402464018373615285582347541681451109923769144547265283993968187759460808070779146374883387658329400284862781720211632315206229183100813103899415340600514178777081378285242507939209677595026216013276028345897835618645068118264299277688441743932465449349839483408081286657261084296918924832675944426753933760782025453684930903240381514443033157974296800596682503662075003939932526734492324545167043508264980989616180111050739011539842655343725641825428004847675389223628327178469059457784755916864234737356693596175651497605778767437875558271435759273088197715654085118813980614408934846973131426830599740855812628384162969917341938459724185357215220968517313176563961710176158242038053065085313991012230957956116598031536488012683043712369574243460116523238599375501382347327038056039436071658491841156389564737442232331507725520657317440049070319708829078172597683379671913438884872613864306321969592673425346468770305860101354298952229648356843869417088311024787789292967603228855025978831257844372846381335891295200995986052569926882207350625673710822337375708700917550571809835219044567697151757428932856954491921943038129241528962393041278148946001482830957073674625760200421540623360218374736854793481163911975111470787808834936543564724255157578237219564692342512574124745447253180351589044008567385519628512059028246166711970846045207517428344498964927992735814914296893907281770810104846811866397674787675878135960924990680458946335453521239891919927576130123725327265145198466502508234267597357343094012217870996721815013950591399697768127790686373743783546161576246207341412037595080275997648876142561470524990847990100993423966770546601996101230709719896765255959786618530918092225629145962937441076348363515158868964043243112292830467203786348056740519738394784084333600267746366964546126342709430351834825899182310872002463796670784348743645751615730733449476280922366199310636421017293032077654584474695252273577302646102195904585808212372576456563464904318535848638051846340648395053665240256530394799432147814867419110597030564112424295115081189407652469089046388139222438785057354570155015814166040318095363510277712337944473132620469551081728091654395642945936915653258968021607601494875544165639798226656594038650889290925510844917178534806639227929357658786691000013286427706276881579733881376997515870284913244166807453476441101977378263760536613591903435988116470883904113229848821357359583924856191446991612022983924859111089050803909011684873004541728436255759996000199946208882278582621258500267870221541678549925264802919814749813158007491278510537465189403913599205062588679066593909052376033193350723039486069432098924342315580689156468796861656774164554590817662186145421191850248858762159800599108554846371670803464837853625947050132473269140339517375193924001337694607714808887940261979261885215821005593100707731077003162599554407298865416431776615920930729262403089095932625215648204337538470109566414870594759097238338659321463976503736264309530793014110578269405911131580895318727614529580536535380783988515457772848997794833495652421559916222799808123558692859501505935042944866198349265018356147691859572672380467940189854227308179406136499458218991258627705307562824728242492288104379560551561331940326203169722913649419303428565554936512753621911147527334315172240798336167148901409497485219582511843377945521560431134614854357355709818151965993860049559974001436212348599279966840867154201352629798850122512518864931027337159455350551714503149174027990709872857149014178518646160654888850475057839802365086173673477455643755437908214964486771721567130735878221393409865620755339226664749526992812128973713728529702571052165193430805342128167945005065071484094521930017901963117914124647247557450040764417991583387067462958388843270167572520940352933439578016678484915981831880196656222379316853976020148238612662965650918996191554757031706247905148655800714578357860176237602965935974147575094261034634098998228278613708841350460564875093819379081151945881894440406100328499896449581805910862231469174848841536994937968094292453684135443357272745752408416601463627622414990150766169579943188695142818011044274646413209529149537276868156446637826169615681232259359621909173831034808735667162174502396845351755178288574224999503127026839617707756770892542665291918319704331383849710696287046438901329666450894541019043529796882426206014828311577857907469227372142499725122349757192085705606261325450779771204994737502713368948845025161600119620049626553096798047976590434304601084000724375973452241579147148275690262215379515406159907920137689715080540824377997709595442274141797272695630290549630692591692931168387574961658851626569946476307966972269132538189832405161805069819885686294742010791751880102850419935173108813125056322248205995807405129076827122762728873521155829306213150376891946082477661809556019715201187218224648572130915940527894530763221101427941084185674478503018762858321076941292083026931989080843525202689653393342839557890902018115174515990680626372765081352625025387510340893816097028058638207642608570612248141013249318453984098253854125694771339504578871120718113256237108296292027108675716608975342628941067293436681350584783916782533849229627294099902661285919541879549546542208649392658636255685079746219528341557174491747800600076646547720641316482608860647765703249426636056957636065785666478955240220975859073377544348051392224940797569790108154148907943865966479494064796883949656463779039494992296607151230426017568303811253040382832851277432242946068206373696843382809679519143760716219558225395087036247269683498556738668311018076283600000534603234033993922476263829376500592851991140906676192689533467336005573167471205522438436739398998054333823869708146848580221906438204602938946363675438191677389815457117778983167741769616466338395309575146422700691031764261684273020886029201087675403165308181635465046688381025026634640047071035297699260772245055871507131753190608183300232242235964712321597422566523678219063335980139298259582876020841730248735070688953246867971101272052198690851097736993230085331864163741285311020032602345034593527459126024361269552898896689276309971307673235408238845836563182660686977953891173333252196870824598317950787296305660737270381930998561179451977528617684345622388159342219394243745603674529482862879450487260671148126855686493528989598237437262228418544361834639898360994969420215981243863533072955646646113484590659185350990866563174023414138826819732722024210791859941871257806269719843959401809352141678890558464695779834924556692877811078322886478669323474180221287808482610731837139224891170557591077184879141851037706187202061167031228662812962548498224160097214299507052684441134761595698917013887849394725472980535076131136783044265164090308382632013667641593719702712932872234669949321590150800923601474391441577154722811209206184256828824227915858000967908469332034366503927387060873352991724558486066096540270967995532231682634229581186024358718090907339296966689278500306988159859574300650988372515038330550432869201387313630854496301552400984976655340125028586628664232773001177875123555812994024882798167168064996730303020851509550343241458632355732438162225517344462792130801553765450951282559981355169282181183534169881167027408224071400088535429197695077697274436270154916674567215364714547847652554685598517783242166388835125317810034737208938553388245147555871412345036473227213631282251371452280840428054473036672331924627783379387934329402946787365447122121721867454118808537140462558031432781338024093820467683710838363142227545242256868828993358108231466732123392266873038885838773015479987981813529699162495601743847291768195575886039224133895242327955449534984903937771960440362943507953004605682436488573268375375400762484193757757551061472409651149369879985634033352541587714299347632344661158651226346713972836656492768429012077870094689470660623268319859207360940630807258331777336586402402116747669014357694913353710831693461340103083150058549036708116578388198614716529900570107585568299127197021030442389881759106940906306175030276576120339087903643679145745179604534277502925406443174602833107415249869830223797468734753885234600849787126063627231399303151799706438063893665033872491340385088427805173663784061043687113844655331346884422544405920628194936543118112788011654877970250162095916517343058802913126450217882813426578687574123138609421094217491057492640798238624528591018451883605105886820387228863549133312140294583563116174451356138975402301140313486966741546398161323452069049231522659059427826682524516672187947263699076985615273735097051814019275529400330678839338013530664308612224077008342948797138963695628758341336452561410142844597290175446583000264367052560395111723146572675992477662175708341373353467747773134617376853184946980549512890023600829051418306947956597582420931993780237105014149472663591654510419077595782503664991096008529039795941724045188431335649732045518213187959578413650117099508910860050541431357882255755291974166513029015649096138855257145380586673419203910573691356487213499213401643133465401710893585280203281852844602288935659585181776289774304252854515176817484900418181546333262655009177840004617336022146867078305626478596231993031721123512575675415303305657462454877006182179053171717209161917773630073467373251982329583878211319108727286138355170562467546870460476051192267698480122102934617230060468528622546639747202419111493131127523772182545805614382434217631676008345920500135089398005358564191806757270220014885622067301219320416772991291515915468439314712407032157057459147421166553987336335127309293114748619589007113178999842231357390311061008270382090712863467558863884301358193354865993325513963797721158813794122428956750234319636311946093379628431399306722196395587425186471124657949990918559719149410921523160560089691736111295723503268186249763227285065429602744827676604425159117771702321558061229500630288613454931287869218120585607096269228979600875781264002835130243380552350337662055894214836350576889912314577058884634512710190792328791581473904221113397506457603167510185207634192745385154126935461346160482106118106168328934044224004050015477870898306228566569334061403722542317265975577553845270092670852606979657737201664492515863018028666519687179027551201533378462441863300333520835217277281507069174586175011779257887129979283420861599084490592476363152301676175770152520348233581470986014051225176571748456533541464474960187045384639100448190941776546221227649591134962406531964276550889371554868216879397761335521492165606402848487378741576037895601745006601229702383639614783372079095301252703004024348980554218243279582073528767563132507507181869386746762593793013867848482888051757768658345495247858582935751189609548330808307669007310496580010194202256845461335277293411359934962805211521808894640109816507812308518018739177570219044500909396814853940592908525948503811544360888929074449256821260510996300507797530035989551247726035346693721886325812515167251082557144113055336920962510924823822902341666129885954768998160452334124674718764901762855996696004637909421228960541142153550964695437994016296203121336419735524603221689298416335478889522590316805128418227225058782597060924734194783923478158503743413259529449791509443199361384572657272590771357583726594323551381738461107664157262206444768308323554928791879982383003361512330313761571306417726428503130436586541486615800126030433929100788887059097811137445801560653458095302801493950211678586008742471997402786588003173067216037117641863802543818378970756451456065090064091347445621249874503132341460170423657260607251553490419835534316260227656072377590809809984240371640081970953747280181534630941171503588944921178176325812855479103523751509923956196281284415472466017073713237805827193003802940946899166114845089047602459658143580394228723408635163136057325640257213205498758989551844167969059498581375508821978829798218250359593216218411321862628260271349288378464892470753770511647956082361133991634099852417498815726035937884232340632062497504398777966939253674442487695354471774887379624105315410842910792856001548070137778322024180261599237894179443155767899740541258708824054075903688667363262133340733768074326486391911363697475911701320644074439439941933114745716011811103955835648771581591594828007366942901041936830721299093539031237387601400498316947028433646021724428899465814623260326513170844656397002092707987941550371258113940848691981033528009627721426672038864158422319596540136636326419084016100115460266177404520723438003388221479593350132068021873143076503910940274400880013199365342413602592661990600691648308900639390518205745095099650486822133221765877249906990863694914658237870810896450584623275238204755211800565919341249778326210322317677978801035415045843586433572238622421703489168764998401050537850226721023437629824680277455826183304841604986763299655486198783956038292072156832383787977355007887537280240567308655737619449313041509614638281254330168720258224418593279980116008431993645929235573532089887350400678021520545500181282355304388704422071745093524322985111879762959057067923607864438082976193524615562586291811001937251367393590535704615055955548882837231624590262944924267653698786452483205936395582049965100926786691729770999386355366641353056870351038940509119216467302314523844756367426406631196669846736312801890047679416434817836388060480399501020000311227421381632449338838403154384687272107982755314650219276566771523475916280375240997502478178767987664422868876311678809789620209145198805046473663905165866082218310420953323468645909962597037215350280445390087815078295186781896477434442947718363316145179522258239194489333202260545290278902294262547605519297518085906756929019516743052982678221848105541669152536752576893414780121356254285618123950588992139360860825217950800615730259500804894986393825651106442262304767953332900311848820556477298175486310878447096502395546012231330114337464981576804180456922133744607182903509890462709146617868384673868194424326961081204446513291280347736269095297007261399949425280984303200521247814826797551792511182809727330485893536504811398134702242782525066230970400489660901936176467054469652276349439983274174571441907468562471618479528941165079127343545985378517785166878173432968844492376409336207658213094019573478559567253583192809430098070814875748501594360922308299319682940809003518558975890989335431812619985162729127002876694969535889114811519018927547796618857632946473191349225514357956329417080067948819976977842017191409277171654832596711793881274757823917812964724813115287050218117599883074117084008197147586792312208706504041244630010156287018844669408182314484943583530298484448320844236346962335952645165676176952751543484395802881742075087223373443805143366847623581901864364762789109872197248311959362444749756489646655750911765219034700070110145200381171971551533184167637625717688649795052366269792715445432151184705567393480219990207705926480495086338896923497737268057766688411252427822597366104443267893918434779404255240239253842262925309569144938297541588309383399001691963571820053408548035224443873140819504931965024688224591350482204431987033815375132743082912211006254763550180040282918475300630997604452306342864970436800565287420305728118847645154625746098703517396926087440091121695191834052454544214173686228155573954803346020454032628985948312111032889964700031021020127158334240411716478229181997580196245276650325298837784508709981764196113671463906571264867355330114057251638075085176389188585443812570347021715214070475188829687036515247600370609706091311159266282159598708060533614344110112488365687285176847177397654172703488965484542158182454533155958182617820069462779304867285088540573217312337139011888421460848236104278992504305563355040255621065618505806383694264194448066395242715298766550552268848641490468690691316553831863098680074183110729269411606380729291004658019985272497937300731888029947786711411706240866933803094313911878644041120912752998322239410776063773804045939181964065317735229554889849621596905880986873872999325110179693849105983550786818728670548374678173685170494967966405111239517318749543352999402653379186605777586932421724477022458736644902589387306780391856245525197511471454418549653939698581322511297090622707642566281127186754044131329927800783719880251898764675641598682550623446022828858954229948521017170408883423167040484629306432654983704638600919470103386003786392975553051510023200995357080757699273649043810534087228151377451839123222204993103352259770125461025492154593690904419724992745803926706599258584950154724640784619048519539920086930616933821269825734360367836539406294365914836281352212318081411028613013923326241680084580692017129499878264631208081727773405937877602060310542260806417659618453155072378776549192695917026033117694993192182769148880589693101855986846576201732355873111292449251553770155216390167576249751466771179720189357248888799729809004470482203873072185509471266336971902908979204638463244944137260277941768439510038938428433627957071011930423752276359189084392854432137505218695942091146819422920604703637008436852145536615826735542627503125340211923383553270238095820447308435622501222807411787077940886806521088719984196217407941661770746962161120060945268475445486688978262077834537407563541774080976322170395983910487936749238557291117053421143153540464277308512534137778121602632176243866619501664552137955364903811951435509134265051242821678607993533444880635758957474764708706634614608249939481839472814977233680453062292825833187432451790038061915720635424104122921443264130596705779803944428015671506253386595545527229769732178955932234668290726051370282526835649046880558690789437924369263062950293557256206590837815795681370762070027728125244476844498502718912577015490609115788033706490280129455986589593296311873772127969730082814617169079796800216956706292791622409488902588858810114595102188222139538485095033388266254575302852126880466617900270162129326088630296772576791435050911885617595060954841725041250420599510146867033625139423758319858303427004331622026072237875578014262850154734465140960790711007896252947426304489932697855244033283792942005941378171328967384631777281625829732165511010507849970957243096481990685857843094567446369778305019142432908068455145397138326371556937556261615703051596692833895648887230962087490960674959305304911224087588354817081312382755284201607446522814994132624106102942421359634147395857015170551246878971006773775756480551339651992389581730432485216713435691230671842255481830140934527174070982667635238020685457811565053301882371852069010770974224006750401003521467522428014831758990675447687382365146389694995940896126486392922325624862232505780091184562266662206100814978273928964982587484572422851113228111285552580805132852177485533922799726061521737165577736987882775435181437547684274149594729183951254083054041188824385423642976949024276158689716894644937300598430090715368187056539525444568744596598055459458490055032236978399196944950315552277851629167091226364004399471977217608117667490200476420384634198956802494916994043018502357278838675893653401487384120175953749067075196203018142746049232934175355076798352126011551389451925042565907721908805972982349026765613007699416415559875253915949240733569905013427974863616501633903887194320112557283695585012048693505660376370930970498072010632649249658822600690647078378071497471259465621103338883784448430621620447970210568486386505740176683934718998088764358597313800463733349655977037231883842199069472307359915627717037242828529377383798268566150655315712634245188849011769527214897113737789695648211877641458391463108122399697515149101740276386834000201746825865602827441578023412363658827289747272970287220907797850416914149961247254067864014928913325960299089723402915440246929077634105387644252936033419825844562502973447253062883543494360600394243625777483842524226734010938487908280167032605349861677461673087969416079559858125071672388681539041171924895265004848575992574592834209063340785657995819424753729617069665184245354191320655365025021057789338323215136937686727386521488200018815830411477906577859054756455894406531639442370114193149468256100101637332032757137908974098459603245366441165501181796289962994481476103865186473900380250365616185652340283912557880570118884808952786629472341142751225432837446133066405557368802740039843627529813073886283940064601546012497233033244590317617944002779685661911106698899892667338925604737486955235175991332009519876499050569933344926546181417825815098795132435345531361765548487665083773311302049244028871482885241344162861343871393798349538466915186626523099407730702631442403595078764680229158206175384290675442457037887450922308888712554918012879665502841982514682159038737248647167363687145921496419186650232436466848131658635288420538921465262973128417262109584812255805201008213542182089780919606010308656101878725900680760954054878666830683450660986619636667002765387526168711096116225213319373944267961996718312166470932399741977927610873666520838076087407487859909075369361188812417444825424636378346602159103219997900469251486300483567258039580654488725634074833401213132604553050713917142836454367152469100167942740716294704279253604655931116731064162889968300403122605234173245698237725948297392609817751359851355949868307937241849533063226808071409102186183655169276827844301780436143212661706412067326890380381211572844555726210091167684157899797497225796829386589389987858865059110817152073747899223341771559914796911763747902826347143200185275897680024362851656611040300971748362694429202646778771345661888451800546726426848391476675104887870971789505330332296749519489750355028658512528070938447978139083448601607228036921848570264569348944951487969409556987330817533929060886325863826411372559390826198118040798419678756781394846038983056775329010781334794071146801031295136291207759384066660909041285226559758039468336921931575978280604837086704284703283166190157754840508356227699876401674721196955220597378880975924940347401936902451556384700924661235893808257115241783369545618438197618733907409182773832261130471014222633975974947344435315562740809133934437972769718813770686147636195689646218566862234047901460601009928248900115066568314444143516710017311400348042835304453629880071008037897155787094007095093538942654823631262580555225528571170074111142126996348456781381204764418591505201327114990735353094562658748047011547488167314654442150635412875129181565711582355718899626901810934947090296580410715713027066810138778495154633584119566545217150633241694734869041889196190892882253188922196100286304762492849012108673417754023855904474018834194122937389084570048704538227191226271717413508468349535817996289256563252060171619526967647363216083109499817379737427475276772703133892052909140389124810213262872212848218488732960564897632481739920600932978434522394167948817940572567723000854056805565527857590195451174550344667189753636244708610737525593902656901241210116205499908042447810193255558277188795023436956701125150500513256258231442282835700167388638926547195150406788838583570256082204003554838226696567357991114563501207972715779746381148138187838018010542954076694358165458663071594615836730745786560381589026730621748363828332052329633493446390254520454561734812876860025726697609349991486724212647268944949600253323194037479896434381957038335784058489646771119535764174263445770733633430009664864739968769720958297198513420659657326141757225787150969234111010260056807935361455620578932421826011241990703509881005117455766132052532183876373172691706924705478983798999892632367309806469609161829063426531701536590909730373636241346242269521283882088098427989449377534971446523101598170361371378929275513441842840585567956124235957781097966513337428464998058694462168051374854313007004949315101222837703865929144017719561437747034734361633796437742526118884398749254965451564739515183248656505485458796689089756524468621185223938899458945042649057019769060940808618328588193748802665610880871201021158259315917443751517048333280093255857612859715668469506982123822103253547855045480402015391938822708485747998190274846242789714896534265993872463746772085572876343894319162938497273389243183711900062252604365906522031672053682401763472330479637841719775534492803785134730819801294553316118120507611300775835762282102872423888314570657832977081734730825166298709811177087797551505440400622461117695094155288369397602119807501231050905800221266668071931234634142609802687744057787355382639380904774214679635165953831634131629800357898315645989489978838470952540673275586447642557837561716710138961836315377859276565869884402085374363051710285762631291790944385986714214520696123548584635378854327586340319184223804549623187686304229839007733768297167225688247911326793514195507601377160176277513677466225176453390281338155310736898220911107359712662761802859199740627784545593133170268917061615655409662183519175643910575620288474659841451902297023684570380725901607255438967757250992849311574473373200132625727604312869683788776024301903912173065881523999427075068461694567761987805730187277366808836253554347975127261956248754658313281967473832527947793322010347658246693384632749560168017282517059189023549278608649797580965868669797624738515094714906665051892829827838726156327255307172372881816173223282841602272634270352650565530738377097016578614269565887745656422812550297828618369783791653757225021972406830427976334219625118604958209979146726007908818350776627999794682952667822770929549847483505757082696139533333988602701599977695543462696842051959070463237787112572636383012326374919031974632009604436348459673549271809622888216644368691381394033188315967736916968817038795915818320355509747770794481947489454143552139568790901333263327135727511762992691466953632580162486712738865963336917627026224883618838817726040075526809868338750329172828443076414190653311103300492768371185662615256668307474963247126076533514269679277765689034813302625104653183666453724930607363825649571185824235964881644630387526311689452326347765259527271619803797899084549198200159730682269048589514545962025931544494642131114642193700698432441781932615096873935987082700432724679897268236359761956199940997630419609896597170416550513084484029994231182159673516674190183696427664398120867294233515131552220635264189832923217126427556386175566277895160786823686364924373916151037863936065445013863155819401420497630969825646965039837221319791461132196826054385733086412292692870858676054156670887172459045893832825089248976211622066542719643537873543121911847910299068863671402039286370977969162829541696407740612679191411517903337652062627449932592189786191149434185840550898176420419199301143605718651228753985637281404808754071719825157541590875419824378425826531781894118080695686179090835636128104865915352063009420171032950810376943806023234582798007073893760979406559350543110912923280423598682194388412746612107360108765622776650562588096879921593965491624795204277559680182527268821469827084725444987759689489137398573198584751108013142511832181724831882071456623557838394147385799530966507799883970789424379063088178539519552923127569179463475216803546469013623445858154961894651599424894885025834108508931787892549993581524479378743144094549538162744501960105834353748731429289195352399441596874590110596953439816597644951960776687557691040970503324999867180118503573372073100978960809996334954687538962764690801726745238375845146755749773531079838755426354972467676957435485652918758453498641924770510635503853698440016400842050799765756257917996811075043354285636104014505671229008593764102288094625203437937450045416168914225374572223667262982502214137445577911527961566120642301854188429519964819763447577458629903960139855302551318145045150112795716627703340062518374079643800788640516774363024268737051363387277870424049811669159381602016989057153235992578440085613360184337987301821728599053842620967660175328486827434153697465158584612393370276146012103932587624665504616125548620946191993622302580497072701607975055984085234071586443405210065531826958784161701740507441555950798689411866086311336987628923047202698174905116741859307107830025970326181120662588550121406907960652322196057802964116728348339625146248953358879560542205113051348997329561475333279682215248820526823857701157593352960029960318472184086594653980387065327594916285866024986606676432372955985180718426860752078531878486395172102511007808447087796733064619477070958864768698317997916378173010587457825260093202564480618409163629098878876406348905274182137183783894153465180056544278972288267613908108275546901837720721396395817906453188614801890743594916868233028170412393613070073428562048399201421466923017053316285400926846641326075798369395047874904793657239324795205086235091089240122638533235104553345982510797709241481158421621240321127954360923791815787765332077820905217607551311556704627050552553420255507463657643701134664750935346232373389558965338588974162263711839995869987539091421897616194209525638397489069108191112255284795830301271723783881433776623782451475191615414675813988532475621467470224186944190358719949336707088030964223217457923331944878842723702612302112797942274246202812203170885512242755767531205216427561179575525657464429226667055929535635824509649944939608866044788640902439259467758813774038551968631154860358382203199239897521930880687642188378143036809762334306415979050371611852560243385117948265855690667806803000326428067578515997349773748836634923179896161211774364502222060336925687191451197816232837451032614802112900429626831712488166987761821684662829680060076609698137262102836959902321291729676848586669065052039685398729184110547306367743555389048482840334301973116059290229908463010083181220925347886265342134462413506554630363738246944909833301324514602928070090993215189806291519921326095185954448660207897505617395415416685233340815994353374677271434189851851568504764542879771024120606795089195644619123179660896799809588679773181850958601824768607037349924486636230075378107639512094261914574735830465447935846396389378354199776623438334180103035095794924220586852237761151279653783450538645922225252106208234800045489059150081325947689780521071482967731696703157354723207532938639216061475499358103872738199455469938810479903130472522283716189877230904407843178140622851498199905769209241417833245404590520612316858948397814679996632881530887444556712792334043167105166911925428847944625307057990749374125568145408477586963037691870804951079033551991319111323137140063258490158155373234012193094280039399663271152618693823026750738672539855232843466792222631378922349611928503441651230035988527975877334224071253312340029353292015438994786435254269893125129351827787410288657660014728505534988673914125280768373764506727554512483319185350001731406350351448136716506919334127340331040860791196585020616341025845614239891325188399329805626563686255536470083201520486746248710024039527926640278157811512170219433568260070359315015038652167743788004634798416201801950802052515810774712931844306395589873297830361842053529465972755376101991329315227588547311562746257005020180385901822780333112234135086601135426648465151792742246121826326988820035535597099663219755080010335509052573120170918205365464596638055135448358448891495880827627542592639221022226088082821139592550791049818863312543921523679049532455564827913024101704188564895238138960559714705424762170473042521156406156746437400025623697465744865360822656663060723026460333892167065697009437117819803727230935779181977887073142710098685697836564106609881026253102538915719955668122667169645403162882092702617100783103302853193232416466345251851552958437547032242268721441746425029097574560519236986631812559696229757671166299858681793794407038672701901656701936429786353981704396715220315393072750889091940314112939789008085389623328678251871886198971479874602988972344076700334116439519851959344379518082693918988777830475222568311323281605297944205612140063343585843439341090331925277249833094981030085493516282263792579997796915093210679062117510156247788481315974622330675940119951623502774410000759319063737937758145436251230661831807178309157744702202823130317711305197748099695786374206002585917237395409307338596086670270880144780663159360053687567278842046497702245117464148821757855828636657099697986947035691842760136859714331828938066049619012583609366993234680689054027915928817850103257556267072803006875617994425983977997061528251814549066582285438117268086533892964637179593961374724324523312268642496014753669149261832734854047069195913483181000251635565840362829845468804725536353854823669913023999380227866385390768119250823916023951129443047395227202770595183844660027558856110237685710494536290486234027907016890717321475983498019925345602101912777455302063447336439371443154539810872927481271329499162860395459553506574957764293955592786896395106381178354275569082160639159948690487357725879082588249606345251129980305351783255674531316695997760958426395753134388201367406449344133994146270031988909682552309729933705731446763090567575074396625899208623679297553542985629051635498619299949496950721913897054826909134027764441678926332633488363330273582292622502682177723361776571715941067334537723745010383137509335775492227677513370292989107814631316341827132961383524437021125238245758342845621301668780952441587744980160955178307149847672201060140837293917825598156824639640340672187108868463043875787515990789079409611224201232022226815511692456607967988138861319483015991935255099154743879351472954888085630105393810212206919426107918911928094938343831629784479404894026806014355348238181416458919723550540699071094793016795231145656749303852547140423089270861839056793617791046789200082344553098988427523581518078547455202155148607341045434619425878403934537227873434855461293335415247460589743080752926561613272981311244739266267086188845843295554295973293057784293502459344929526109216755703285090105980275759478729097646296462762089061449929815667570508610522709172958129289706463730871648118447774773553058714494188250935824362833463078830399996194881673161194277854287052080941722981178773766383200213739360783220426124183507046867788462046457379402458696814187021995291945836492949755782237135986584224261939447293764734963130551529497509616979191971726869634428230105355335280068872743332674304774911799444925382670082025917786579496407398008218317549069344394085449256380955451725637208929312087458164373234936404440700149003997370986279545882756132592326748338467954389742766416860853845187827654730825818711213903020010294142129373747283454783604739147151993000781031012779265462706188394543415593719730515286467933718537017323663970955630874243791515858736511484444975209866690784835084311465547666507425616250996840393727694443535730205841512290003233898306839189516689425739078269613401375188020109469602181031604223325562496241986248672950378657876957602871508588374385930724840436866616435403268214940650853390981580617955608857367278391144254745697302336125343691186358899378466831314539756810599500642259610540792360958217618543451733292834932927883646259961672504583960253091028223616345635171112726693005830437592399229277339120602537700784942831962470034810977430265814265230427989198893514805715845931735872048711840904767592191057336277663263232107475278237992641060511201252415694319140387398624115456606770646384720200375805284323915607804015530721389485341068646645849296979584748669091219129954113585867199830352487392238243638485414263423732733840741110761351608371477201880996851303496513777490967299126744834594296800405065833133518689558208486352335022984380619490492373409149522360597808860644090617938086762548908486598852634844105536211068549348495695691619447785163791519968886219474448424329147502786974567538745660373635188773178243017696700060287362342132207327723735589900109794556363425600938546524079915620134743082728617871513981895698072266401928654234665501320062958801769451798137353859285160110783324253266673104691680037264617839426817146932416692193929382425677883540917137677921735022348616640051343309460571138418261543045865910213816147812687777468579341836548478577784587920760714684519824058512183661272828268376977633013582087674977073569453225535615581735304055313682311406045622422113812185995958644012708716220949449458760552036440184429918508874700567553590402943929672833168879820077642714538276359482266090250559411122880835627082205731352335510014525827548474081149970675713529490150444279890538091531225579015940994322395629891495666919479105707978649703514885038017962443675376876160251129037265412063137520542912558128822194280743739213036411314949604095187559492196251820057890997387835517509722876767056641480732849698020294219140302559433026617942417355447346947256889077873277809985049140334158727985514297121324673559109209778007864565530588351025642657445515335949662331110159493383176999606265621721844029508912895411283654603975046959850666860128089198203033150829278210947267558652387262061864512700724132816560077785576770980392597086480105769146710051209405910840989958601560826247146890348089271235198836299419549648920369923973634769781335698104128790629175260892982559560863340457181058189234757939627000928029723356654037206931785295517420730785561072416487227437740432030002850332199487254299827387399976825887188611405745852321316603234540192813487655307054425596271877214579218578989613369989970486183046284716716044019309882547533425449805454543850506634706393261188099733574387628482955087540798159719577002076270785491020887843652015345133377165901377542920447822179842687883320063147652626674445934055797321617773348956676574368517992983819318650632458295629249307150600147556254906490704691879957946453547683494794857105461724075413184173554462490340858367145584631128997446613335960477486363883169012485239863784684454773667906453503909717156622862407766212269580387826042090542071765460302204373303154288511401733791894918897883779403292119777402876376281831081308057635374342939323275266762543068215239449777789559727593272807959955630459561191930384876701547039936803065432116146839021193703922992576161080834559886106930965601021721294180559672704466561872741604002445635867217702994819674750727289363464815786514111868929716685321521411038225346198396617259101871320581883891462975161400740402735264103525034228976453763720901755414353530670720854248178707386144346784628779026944057224764487725657428071663484437884569255653929477601679115973680035057916899529632145810519728063578851792008347083034917087872368984286947731450212312827917676340671730326244191064849017967272750372169230641111692752870967963777588806386920933181765941281601539117637824018719776853499635767846473005429972208503063005564827244634351431895120237098969884625475150408901479467328493781807077550182489462857604492961161857373377671909895361810644553466487037414903303884639667274274323539058353612849342855736403069751288946378944103208598593383118194876726210742075621211549625901891600630963760357360956518420513044428167159247068569845337766641062733206079795831865998874562273754760006712158480572129466286778709266285263911527045208191172068654428293878415424333222345924741871381775347729705558953549888581981392853697633426466953252922413247444112559260207051349310319554087616235365271047084632939210342514006412488413408114702468911949024210717665559577420387685093514948103006741700939237185551172966156592494281518183531724978884313666212758494118808268827419959257406419991079721193267361815861128370070295574057573259502543213388054782757714436286226736941975805443405860031145442263527185822957289063116266661308784243366060251276318797264320387226667596342702720997288922181476568267976341683322231206861657009306790457782631335100357885644851976033227223536568629935081767031957308591770468062589089607727135670469565803206675421912093877565586339368673554177107627725517656308575409379489320705133509596642577447185677993274874068091255010498769343900090120569375234790876524493508630165894616461290885787462611298430000197685966221553158291796695584134246246395462236839919325951189977395112804579287244130597585100174183606604179940922215276927645417986681378937899608549727651939413480463901343576168345097255736727479486090719773717751729843468902490359735102073874839692765231358962023268068112626214447080407502120894846386587624041542512271530648977557435086156572024216157406278706108692158895563208875611217144940842393996196862957577213577404946092786785067782486293295250061379540262109444502166561216248775223819651512604030961316858063288073396017782546739474206342001498373900458932069852564622137955054187238186984488566917439859329425929144836810655474720082089944710905517737088994386323434541578584420047688177842395205980161092127177337714068131734055594523952386928890937752097343545236028012258519618480694195459397176537431006977214685598931711423324784281035782577682746248243529394892407528805186773946715657796193870494530579427773566166151465729013043528810591514311644977131651536252647982655011659373432303490837305905447269489372158097522520453937208818033458048398688869409382123747542871293430734143847689024605136657939087185454569780530046169684850374159839929215108644454668405900464820114321533874636466648326821781290278697597579763493573678022250716157031735613448862742690637065523629472574549928204891523145987164971114704265083319875559349817235934418280217611514041427580766165880782712006153309916373898507659815664520391224508076542246331501228112000614882669623000506030619567266829239708064518068152835570152717625240367533597879120146205456325061712061787505837724169431549646468691543797945552707087098039245313847441673442508584216499148470716466629034867912750100183605715233664966607930569138892045940328340670828394156602764777038662072535941082371473094852534344171459539492078953732408105698728751064606848722503529107928681381465294232977061276369695827091506862557826151183059752647875747088846287487559628142787022155676452923019387003716068769264070335519540208838652614818388317680358979408500476331391644527168757082950353254415112502266182567439335732467364562333433745554348410829524287055113719570963431384021370272457305702460446114525396657718516495665034149783272801947615060103997015473414736266066686016791086403230891454350202980372571057863937058428847641892083338263800016166840345623693563946576742603900499068894613002190302081328082208952235155804358849681572369878009789876992575439659596778552654723741476503281251674447220626450486235620841694469104749675659727085482146471077448677148176216738667862536421584810877318142718952073320944381388048762839289197871077422081803687980388653869839989636720153536086783458950095186280367974704850826084166607331106214326726073461119470303320771807169144967711166974399674514444085549631630638685944505073386752052365544114016935501797571135938127501243653515914688707036255606667814808977201514331652829820770956126993501458925945139162804746760187745846680714255792844341135913370088263612248679950252658057276191940660793581534021924308488382622585788760925547098256884421823804571807501040955037240760702027036335256156628185523120645859745507476020523151825837294405252978142605128276192987927788463205552511539536170957485513972289111928198068296753051627438029500268375732051856675097395437104986234292188478789742367985672571539368541578049592537249985080204625081218521980275418081178591222429016993613187939441744172158848193953248817946518681871809594918285629825024899032086675646124113724256572773866071615715918277381234108518905551372971300965241594073821852144394438553676586623143230653803698247370070795653805506833327573097930519894964771846143593699512404480941279849908249782064933193180759770049222996828279680670140191848911305015724148867682874062649936216651711014798625460915395575059561120565540418556956648984982127546748491749620814874906368182540099465036306592985949213258381990314266502316355288950027417455405117075312942006691586046148502713687290635312459026933739343312332099049494810867926955850009278201401069988952636179963521845377468834176535638627691568511678193333387836701934257420674502442486380219349449609522858607088311097827508413903130205902538048189686635155135364986430420695896577814200268076373867933341250236490919677531005969588295200706490382714806968296779361049518687098208060931267202958270864822272931359021345842100824655991643839342636687195781268785613878624354748110329731147203443853288747189730476098832928999523066068037111890139380303809667800865209010515441729796478169488721486180720421288604681722586725371800636253525830123904465933247425215625441689848303740463450571589765843567319998896678994461566201722963934436129933893922328271043319079627744228253285643642422055425571241206378646321285892866154821491718886862895314173910946909127892069519765295228157685275251162123514644987055363133890054058801024268947046380239752702888245450515753158721437668123515854730192833013203792071200110488660126883289347333017897584907032626465374653579774887105482166227591535608579704582769954513631418953908564051884777738319510184435535633204530022250427313227445207999357564806702266243469259990179991878917410420144358534816079054636901187356351791355872236966568054780113746636422535694308603168023413395401620806137846859082487310874181009404443590376727292426660775716881883089244402872619594635018427543027498750016375717550715525195071420697752239611593946246319919255197080873825907173859236266273078614518466654016920818553693737083082268163470464450845100318875994350536489914295498735608705919469285948160886515791084064031482174085828562149647392493614464569375711286872602076757488145560903800175226875202072095060801220081983276856722665313797803184538421787684580097278192047273726040569840688940051349825348766639260492263325454224554159932787836688295128345255544072582529967511247646589528207427887979829607997630796589478151497283852285061988888894095898107369385950296043992123571630774228308613507670671437999994589832876173378281522510433911118907436752999267177755137616217552142267422142861557073759771743490777587748685017382189723198463086502617330597070280017845499062412673591013642636619725231931131082756859020659397820983845744865797092347642271763796956688066157612511642640799200920815997881836033826335823809449594231065521679879946975036528539020486887256552076772840691870772508808736661369002526958468639336282270396917052515032825251877062400878015737005437845961133461818965068617501925024806437001320520928560214107743794210679294980096160445597499552211704934550974157755797510818255127691714509899912594967528223240011170432720366371434010397014015310292280415447796998795170834972785644544958434551398579050205658872905396977906212352482496913984340173861661273062961153996100441672932497579072932315283872271221369954698414052355369107945846825756127443897786486833960542690354686532031963358279608734032212787482583589926933613494237623306776309936147737569729948616985736017158810912003793210201792100586005974608051018101156576903657003619507570265249127552114184726425063085985873875312005244396539946101486664033981830139045860369371447562511713090809627041267395166237205868577418207242806844895085505947165013383536135226729482258032403539069522987967016242770616652937330559429279460196321117726625287209874833760745793696389067776135150064247493226191015230053189258298608408998279579848189541644474685378384781774188499562754641875909208278548396501992402628831079193064933910439553726588960083186891876386908476063696828636471609375041713630131282961083738987136948670876385874614570799018860008922817452323120869006162703633255306824149976956704595093358569740465251483889384295000597742152990663028219158208936777797341747614320465975352416748549880584394562197016605533414094581156624851876471490402837276172601993418909068966803712467110395574417197709100360027051544739085834988590854403770511781431487747351889774764436641397630133511924758904158540714495081755359997688814957441864316378007523397527559212023523792261005472950134886306971665023228309128240967587621690662210410671920056684734856183746113188972365063395089115162914439718725595154271375462691886431232023002772194461405308970374482265342957391164718585692289228842749901710000220832345924122540616568349187065285481215287194472583883776238985114400981993119254333188370481492981312299876957125779385898519508325972239735659947784165757553458700394987151383368829727384188414795382497166423530648080166429088602277924050234062181297972343589725888955399652357690919509375256521793256418320544583556670021128311592526950263032975332083121933696081077161265996288556451473763293976243944470498748419898432192645188104362395225838287167655700334222568412907483761934426591008257685209501576354891245858160361785242349860360850201734312783145998427052204537719217093795164611824629602043948551656267231955284551622340015102624561836434013969536883597307017961620243343761526964170300925161656488091015350833219951374273125781492758892100911937514730747354087697198384268971124930167984405761188276817691216729997632530925088256068193214135946571118452708099369735922525472269319122366872528642899455023984898680880647312494642679416451799009495541911389567805679861213280241601747226679637744462699372531351252224135376514206513497585685561411216297973276138114844651837146334464146555772233861599339111532393302023431697648834396080718647270747620308787400057755319439127752401977768660462175514634914898936514362398508921353648903129708424222893332606135422825137181432254915719078599336652706998801735727366458571460324045801462992088372619171438865679906113021471057312127202506394592405057828204005750248975546980484315511699477415910877774537350733069944859256878890619077571176104919949423748543147367987744250318411272588213835734024713821065589958574474762327326283623446979609464422345685491268207890057107304115625121503273981046880660937653173761687522371858876117243807075763568248858084491637744959299295774160648014549732695255464299284182906803986196058070446845099125922945816551144438015712035877201389455396875523421040464923709376424950444565830880928215647076648090587611940112172641534153975407453891128186615853138536785372066225247704845290234401338926591523879490467606638324104821145475030980344205138911712394166443223189889779388831364571244950228822791709857347884430643680736980056593660558230595144930929071402640731487979388022704320423615668121311847535685918059398076792870106131579767306297030886257719352107737482585580859863933399285893749005011392589085874431150076897281482951221190343964330938857989396010782360548054102774839739298100100658148053291695550220251780671654347788304390516390739747651457171316649320791807068447591332134899898879384131283187006104154278942123700312779908866761472455186235285109013354872254952967216148792231532572635654247138837536851112712543764963700040671786304783583403154245056037240631518880302615989115083490161389454964545579039595665756437031944993949905326726829298135712766485422477690857192291552614650044688071959192947686540742165023152745463882386673511680091353832596129388469718368991416754550269504251393505259095429535593274543558263301188970599344264306476906265500835473435077210168835642863447011221021034868284314587451724340341708237085833552465525112089550705605093204308904534776764193831979320129546580876794958623032274610002416874077623334496762702618450087412248160871928352502110770955420961688768086190890347696935150958770485901890008046565268132343205507365718388298947336641665947081583129472614287535085419460314249905074458239201571498304915761026512034828296627426109522933046912994575865378671207279358241625876098978938255360202364213194327397887331258844923231202534099421724302452579572515090907172247000375483479496588688167668539794279800555497783583364625149208063239431126631736125827545045281921338808962571946662325839441185734144200211261069903712953491433517729322911908307766746372257577278863503054584434473503217401726805442987267973223571129381926556177337173351614322461155346699742334463539153849251630077395073760936720988117394119887799710685123191929913506242049149864951516525683612715197450889770344548067260556760505639051550122371128029897641083332749710786728798522740195741474623580283292892512150375641318024587159999074375863751716412422244777252040078326092427686032895521439281162773265402656062533678219260195951892683465405508517002579449307431329350572464088172449878680497928366732174424044659839657000180571832768568754098850526894048301701782400929006108110161812623352059683317734320133690661990059075029608304671055035287781801262336435550548121801733244994518760738726334351241437192844396295163685065748130504042079910997067226499173000965082382246097411706896922077282629862899144058692592664647203384727349238833556010587239540931786114616590683345789775907555081601018262418770605349182281359543421182692866663372302081791946677765240508335032231319020830120028467412488303295401346204918757059703122081337953204588952209329322899115228221424568809108855639116476432099309722773261481865129587656781581906088196868084493195956440447202024653833215083595616371768794701430275312008591861223552059510784272206731382649643875155006280787766257906417215087868362452591161143468710690628343980328565254633830037497876465038733546086519399484928183792682457007159694237428238046494401800089909291501566363695717861266361898013904686019406086372332904730310208465423837081596320570271453594010211762517331867944521050672516968439443449603691735585134213772655092478375977992933030322201252564947599590537272494533770740858581676929791921096551975832436471327951479534313298003408953059286711160324771627532883362458432093172697860554700374410208959882291783794155457921986271204873931300287463403606515871720754929759920869082557714685907647398939315517484205663012403023369013508203070247307606354492361296927514423819948133947518423378409299684899126527285622218419039390670526118108803834054920267426870993970773181391867086804220337893326592873925489168516515468411900209067280788312655262874903132231285219210054078551562749288089705049439781751625464974377119496024871580403615793434769016723314461095584432420312433527409556360889050899791406812281246870881293863135886267733280232508515928483864006525363912164697787038842107326498889760696949128664293586676131044706021061894379650171522998513199515483292773350244815934625463104353476490933783009187893066887863413177368633954653943109528738747393390087798427338405494140393265378849645221629269295368296385829819802263506369990211440675055086312653612728162764852713408079616938334498754634240508608377118973318901275682375329639938154101145632335668271556183474438748826501025696167098613696368855186456388156064094056011142756014698103737118877935435477180386365878212373424028189425467711685105965258476287790921441806897729136033310535537745001711394005388126231464702812409376994100738623471751752208974986650727480458623751464042795382536317876343085370510333649149404324799987950168449424356296259288268258908889815645602130067823005172425278526149670534902599745509140560594022865693185230633288930260338932994945701891508917615218299084133683968461546705297346565284966045960961949709420796048340422223189015279918258470091556747581838073644297063906866512102155028522298177735353679393481776962357305825982374492153514385451654063314273769573247796982602005412157166259084928727848651989477516246932842699234146980549200362793148682188452102933163305476132304970313521181149691310777027124214268419829683743832110002145772171660764416197382169626925126626628323673279146123006432893720420750441368557968341848991538629218223684263139066280827499112205589166138273535192343321651535161369035112137374893552607619569329598986123358359663290208021915891464228507427141979051401459888634877630498997800975919286868892715637714764163171422404625934088341449141435004646383575055124533258239761104698957219632250369022493274310691018146540665839214073460927295248018598416706835864879745029299146774347879347137343964249229266470420248783199370403490973155202387621139574280680767914080682902835849537677599984464642842949007612118656945162726259387280688847372096913418308466985495276283766331872955906078274883971232417824792950036686559871976955402726963268904133950718379412689184233751420612586455343265029821205621932874847983109364110488133490713179067342849362159934005178851163978606463568966148054865922225071574926141882032588331617892107090296870345951872083083554776606136352692686221734452490550200069428488434807963637412697004200722413521908200234371583401656983659530114049901793357444437960277979753384933703354415615501629310716602806157973988744466530706439974583084755397174772536509210392036559418841172692698473736981892654707790178124574633864100610365370744844565853072675160676229868437908704026695002875472663128667492118648625118496938394914728865266705402329777757431302725580488699787794458084669337927385028167528490696644088833303498309075999619936758079579162365971820160004600444215963155792364227586307851772692331601570579156474987136976427508230466399275631293897676384614681451637428164874749559031003158642008465051987249092528723773092054009170970059330280359293159551347764598582140182879960093238755013416760087128527570075767085646860748235289979354018866442163119548915121533249706119477250007159271121329037270878456954495950684918856414171961137283353059717894238510469335808250808152395155933995916433307390992276723351460128729718397208077424469965403510958112841774231325468118770408679457391607722968141396607491400823822777778079624230397747446804308053803808639979993435895419569949395233472489296066675419293537900309958028835367432426437434389288213490788950105950446288525609404406734607350369560044545936599532563632822609222735886284146076539394655398073380993454394579605962922629008765533271378664866183590653223450875040543323778407780368305316129517498432102117924939999243118857912428980483726024036648587784664771553716015353903548657453769498325376366382740725692823406036421241219577995253607847162026776911916361771753643392137211423551734240774605349549014123130889213646463804821915077072355343886493725969250892053323638425333941485847979289784482961667790826178227174179039200494071774514640676373427458608273843805742527743170264221163204397981641855983466004254239018377256440762153351621801158365685023453123125213575616746976005388154002039018059125536922380396027653235638621609440914931982475561434517366926985539189288570575898069652986822075894760342089135036139164665012682523339387003913052528483054401614311644034291025279562836249272641297700300100667408817343944059365658114080858526739368442856165094401205716815115700924679784679527292575279772975744870590292271569950920405785875297763813577534261761164374862737120101122215451434201785125771738197412495767657499709552611538022915105095003381045845418543370778466759924894603323651331376331345639794637848946329727226357073128143629791247051524198688056108550749378880101692474144168107135254554591188868514745002228199337690676541645868203096005109752385153752461808846501690368472206188033822695630540612208922945535077876159399893400194455520762429674389724850681965172610307847663663706647878724073938771303465702109123496262952204520810030256220962746608374995455186723707593974555259754811699156111368936784462023548266780837725164457522696583700908219923985649065195981167274832875029923591752313318110941675975114115324911555145799083448140333098302631320170438482570305116763813620097411458711689918140506251979923275597994457444597169331875328004487170466001408412548015920232336101755832379537539922643114420190692586098056467793969663085954432741450887312217531717703927232433679279651683130565710862155166812880158072318294486927066918887799463012242137426140967058823668723697026619428263751210215877246970151209190403475460460387746525975343706979485903154371226484406512613641172761714607107676087532980125347407575115076029865874765446210313599581209672004578532905272966162382042708285499122800742812015956225076235007337209511284683386576377794079555918638262590581784458523226947347369001148090183232810352783183123793086468070565522468898593911027482148319999607062906451396488672627414216890348425294550557210573683362491155066353814310870471499411287276947745787051833901397930408444124148516900074871129719623916278213205979734379929711772088412662821104270988724133162913907073514126992377404553205002479968464118423521706793010293705536813475148517532451878985062619964980804759565122598741323500791352660823865748392496155406895678395289728509361588132232524285584651005435948112177910965518457336037512206276294660283994308587181833828508910244057696422409135433017811372739081560320767597914861431190642790910777698041377358469536523622912328269509461336376987627357211981473974130655564304089638933326430172840799166483696069903928720593336733675878208265401727148723612646216274795410922755845791603345375168871106354659517158798448528593667416541677708199902320256588909026832894740023907549393290368092661906494589414185328174736326961145388902095825119169250598498843435448052387021221705964785814535787908015067329434916590473170296401781426040801935727038246659679043259778216488745310236253282824811697173090585115514914749939577021038835665351862892379035493378869843711639763650588764336909308893086004823951552603495054565147855476105746479263087142852700556496318903476853853388996215312554509373264411000962427399660507970286337850579122792755772730689680503334439472942496740532961954810104472821578828487156863596418178321405319274595508732315147570613758850296408500931894111733469980271923568263897856853527269351396224041643081468015669236269325756784216704465852860938262844955062096297091226492874332093327863468437004974769743665667027665371167222287712608415637211152624472012523771953563699760583361499596889596361937507953476358329163803800993438387697772310083517975019393422985502962601462185854549172527831328165201695939602635684699406030690818702920972933549403763406151126800328143736292955834207676227903612464605405509560798157832378374874416789829364088209747486849228926078643748146181368294162530967846105933573756985333404494606484429327006959612414455678079806996039720759471182099416309928993893413179323492349461278110066187778281463770758127650868836555894072119976338966225949591280500221954365658988375472825902059735881887678554670759439632852205715657815620214572607281032943779340325587224804930520240617675435086707739873923890152527732920697227750403670793840776599430582783839815047084311369960956702366404890037617479954153688661498320436291282294844003057659880642932795117568141572855444342884230783663390069760485837567563710130689793655423092412544487866520870545401476044475297736341174756428727849331946000304904583215848903951793730548860242502086722102668679163809959239214620126630607151591791547346973096026225714262139419085076580544506396176027916805723525556622310887945569381579093507390119254819970157308127492580308492238229987918512245725967055314695038412943368398169389400854859648525068767227285573602124949409631355412481788355222532967157603183517012604966526245803991770272026427631758142481094520276863379401427020228441233732629697276885518247376453889550009832851206222333422579579531212273814245944642966589727416652235328345337923460621185166924824627329834952651347331117753980877109744985890103240238934489923547287297399486607917333042465876881702328486033152753609902901959847187482407840177419485188594915361468480008005546078331562127975144878201211471512409516880714118954679272408480843311244662612754030456523767832422891160991535339732420563557514997758120106296752365438605970889680958908241124475161590933177846285843168586429832291799073110061241661116658162350342974437868718821158842179815893371211948297637237368070903557567927610274892185657075515323275196373630285032866836047323523354284347710175242671653911676130367990049433572844053076522901960602494800070378702389848078302935083917466935842843245466462432126021364804847814215142253323522525186742061708403381950595898496629674812264131803461816657723456508053283263527061966939734822467593291484232902521104156267416970558231648045389187683845218986351183269626302422802283019685854879382105942686627992947362461732743441447095840832059624627018042883116073904661742209520106399066396294692810735900079267621088529235592938455533208964486660130862245964997107672133938902245854515294260417087217424395185705316434917840773016140726135098960096936522319223324395481684087151322192898411145601127295786117668165752368640112812334350372420409711436299128270504488330007374063537448786674706390086995302164264973955401294495004438294114176512399953997052879139444709489161348467323878930080266698025171264220365798087883648498471264628867011545372392985921631164438395681420870035465591122912682430834325795523462519561381447476361713144656870862233511840986455945562088805541048072991002348606341096023763623162863327455617968402616061653795412464408107627226968696483951642408455507455254420337289516543358325621551269577774214975338559213618703102627864439830328839066561869682544117297538795041407633057335806269669353584899188197378279373252601430762743101849905103289422749815704509164558755756802232767126851668708639717930757787381596237512423774783752787790269520954551009706077389561934060438174415718566640399511298063275116576837913448759858029647460855120791176977191770559349070416408075427033679477000045728507164004274497138706908014305646312274687526741763856905502903336684019713712834815415640145882683285912531938881555861104515035624722680804562243091402718236406623444616905896723535889108535942076413080460825193932649700864404031970428708807659845617426804257116199202911573268658303771943565913451961896255121945567930861840650239343951512704216380467755829214928490025801487597818663467833405820274535750422503013427068303735348115419939334636219956771189534659073626093806565641457137282940955522272184647533031868131168166455833383835768860538348271162611657144831476408856886644822747745100335724312324101936606675215717334440240668610146684975016624862799666498979457650442124597918911634733609597506560575211035627676337533658519525443955738126407192834269489879809797956549527892577362047499941466815335419906435216529159768166537449119814297049819729706105509081944085945028684184826542886699610868032115664290666665500934686074023502982707260936423101587264917441201294460500044599760287001042587422336884917780516354836238293449705809122813058738861722225807980614457345798645929364084768663441203103873791873120308729518276808193393546002278016018939862857710044144802172369217599655749835171182443545757719917126657653278538359777849988897297098461564454786404260893927211773942794580103559121297579138800227906593912490966224798569515770589274049476935364211987635239255514663658937973337885438896649822134584626660403212056554472677692075001326554432598981119224928248461804433345687405110022058716130881143747620383985438158623813519133496178280029352229180335093511335477242400352162089312826428918748452610852712308685505977138067320038387067005112133614902239384447083807811139538066424468103558390738647310195631753273036845596563956765182773322708150650837208469568978697161476563760026741973042095313052068370971340755268744932295531358311634227817061082856325621764937992834725557574462158156747365694214081396224371549931938929599715888984622787218199086206644827361251463466599629736476311664072505363928442475551058938039526671988771683475517257893434988856121485962311429311203585803038935365034836590854376655958954894902401488775129049216757571788875220142647406910210315992776511186474179743945830907909188785245195431676765280196906513749938474363882469741455125371408835587813705781225610781286689958192893439441292543752105585436351687048820670944200427843643942781379724098111580912110158415819639236360267019709117674011350965508419287010661342080084881084343126257190263335122407990911009856983906926408326871866166227132380232226851483368021126126972347488677307163268718785790700616272035171726386307676839958690221676478414911601897826056672000578267463072371271242792983704562442676571900013819397506810356127204809077993152324883391003122643503569295339887071999499182307982835079808326075145942543079131593655394888144573707850716698528458204406778857188345541482558343579658812445257145902716111910267000974892757793051127316526666143435349880642858576298337346775052103162992823159180816340541565907418575806620698010713430200755135125152093543919992890495370053763165453038992988875181519346075920833690580292814512437736863565942872534713892747959816045115187563730723939311376841033786010629509041195860462094675779466510942172046928368875368338991840250482522059419838864142897078587555904993210430041873195288819679396074366171999238337136685775316784849458281603757342474884490367439314205056281302737965711337891149043274271966719521157246495738159401533981255689405466525915955855307619429662499493518986424097229621573754874824118072866987218030740565298360725789568443204011245338084295027691872751612481128298017557653458635924262072008913539504127649569793150415225546821574758367210918379697821612332549458636727932298589673842384107046416707186385780250822309989261222745954760542541527255111798829214066293609512746639067062806356427636228449043908998464085150344605138908182640327127943756363273938055000315880235699828056778268864065451539694113690497509588756837486638262574579196188833685888894403848913486355355972825296911709131500168873781470988760786922943442461017621777708426374539225937707637121199975466742010488883854626910580416475137018140255347263155047206962152968770354560355649894661472329319087232441549999316239391649973306885410409823826011721225256775897381332853791106530640133955015132297052033942181337228349608699263989339334251428923036201160917331283228947742766207389519721254726724770959734642907346366632228651237574497148084950638638993918839129069216700110427063035560993243780151732380972820010768705178270200070473225977585434366861358320531149609151315930508609860406132476547578743675146448227078459381439048455835819660482732206779345782300886689493648173855406182762254735617349084453704879455159084639008958306974612654069674543222083760599360993742210170595919070033747379708227361039317209490660819549711300324745161230984103698288747450357184168859122716291327464815832579111753774279140247704745793411588530612548361047456070737864650248809937025148427000113887124143553108821861168462625605839189712606348572678046922632991497812055952307491720105678405641121629539377089334603339714160977744046982127929855713950646103658479025594426079762612030613774609625687812482607706928674573307092035171356925725331657913224859205137690025637615588222150852117951184900421930078890437135578898699992122293510119841018427788385252988132989465927970416844311704979929092440995060150903097841838843010895159675460490618670518268442947633315763166457981189874618482944566792933996026309963236535417249025897916205211826576369237739043181852902654887695580166429552048902454171004553352970534006013641204641077691829501938306456023083391481570983270667031325964685720371798116006916270280870115795613002048446991740665085940826599971891757401519947112785881914383507539699508167202834897110386077555101434269462844976798487044415916993056737597919462061354878254488492992020202692255532429086544260630932885314662103799081295457212751663378954957996862655790110091564843473275193049725912560519134196751012104691078080093454584383883253375777428574201741624410396499173361807715765564154981877979866644095222713388699667052623085875794045636367924366892609055608827803603895750296146694706759399902248692840729455822804621082496058681505470728585410788562083061622212050821491259343647735039070114708003447621592484436459104048079451774496491641613399958819438559088146890616956051529388812309752937795383444720920725367434551599192921388400331750656776083158447575585431675412360435066449945059698902111388192763125096264753776213682957726781500220208464936740749590032202555830675399095189833669346877592149872343671382040730453192863500585064416515165676595861156369509529465792408548770530397666610246613025368482244543403690103760752176134916718855012691380399826607549917330676180436128782973392124224248589551769771615545944828742998527234126799781503627910089415914834712672910947844890120450244827677718909458179243029072286926411548201265638195731894379678237386105704149181239933367938926107594602869757633124190460877862432939074567593904200303407167183574076002833379271329043362265614604004100026365484837351054842854627730564611194518843383705052237604706793387595680091457970935747949016432542263328371217435533849180672814186984498217449122603890125909867159242355779567379465563807466700814126180695911980746906317416466042294704280237766267847191610617920362242847312185945394756162721423277423706518428015438735272390771863433683278675397537408289500649131304125453383491560270401518499257978246919055694709903217913872527638754598210915292532862764179291218157557484435420653896186095366882196824180698815358601232141186710366326386604754491248908382210105406538064998806457570453160338239782593279390885459114655256252441040333509903011546904221532973086226739640959114490502901051350013648223074529957732191809310771904303296518634430613957502526080807013590509321275414703038388836183164116677129059159598402391008504772154938030445686838127388639806049521688923376515172210154564719644497511137585528382062571601019168838986547283984816427885479301591401788695042633786734700698557997986226454834113697085372437877670529029039406380394198476445635461528416722345400505590856548035355389519825412604882521201181226961559249025691578279366896748668589156094981864239310317214295519616260174387529462097180009871138975790247860504118138672412267871965699733415544437860957144037028658894820384999949385808263074185089905916802468034523206378052392255417471633549529531621706175067782052262290876261527314680638665453643453492832550175560393387749613922990319151099582213034372844824157195020029678946748624642259454558311908917342592434867894659601401764215642606568970571463189490229736818163316327619265879604635718317959877348656325782246572657740408710788585965548993130211886511014021077652053691331099946591709291077002252300003046207185626559318334773609300160595466363779313525802928781891956242988564022829061344694410509778316714914760693672468772747417222074162656189261434284393085040423713736835812875325336478371865043928287129889995418447707793053377287576822337030980668008791380506573954446703275523035190821359396347667602895112527232218998725163493707215895189549216223338768875349226722556207915857659961089242241440188509296063135114126408788205177451726013755910775703549549966432608978682593860195263064367225007124984895380536260464471258850098707834756665917376926642654629422132923546030533341923057038029375079974706439419281496125157358673990470187101928614981618702364176610691752395109330242201458106600953047451905525652533713073278969920582585220760697358156088534054118328259347635245359601118940400071232782048952139230816154968731435330975695618842502153061715738143800563857702577910591839862449056799228469874366150492880257127250692894116009665889422861704315347700284152508336125796067744712488062704272543302366842481958795247205540400579910947206447789967275711207722235159211064924749627767230417414251512015720713519228095409850281592138106550607737838762532507469240643513382167623263353482628820248145475999088470703902874929759509083344274255387316747935722771972742315505890231791861011706760848705401308708739919376467877508593929196940989622285239850955109401189551316814589603732153775508310801672670939873846870974410210247958962974170148442102752882723183218603807143231587916068488976571522274814780349152157808508486414144256419116422465107237982108657208406622839882709320152592690897279777963680281997471436951418317097669499436689227220323337363060851870875895100233235840105677165780983924337888130201654930840864217686179617800659093889477315788128075899190862486621822038230899856169866916022961515640866440787855197706698578235803034137199037438115824165038524638329727759101146838915100871402249452402869034477448552080869599859880535354296464922286747989189414308567415107790421476645914371371936227964651687795209959701437939974079332799333590440873959553924665779450331466464761964216310276814069556910710971688843889145236968835102440557610828604394594820287063893390799790900540405006308393523226283135437181031413128156389496034522585391402600244176297234048809512639211736084055112068109832050545683999066211209310706385194792528698613384064341005326037585103026448825610630971293424897103571333931814316850219551516703823208123542690399141086911887232524740379485486870989858643595889346719714563069387269674455876670191281585821201239938810338243319804295484576199580749433089556481082935155436413175664410798238574392170890914142362936944420469851929550159199887890949033657956298543528070022613954321169513902052871990421882733953749118274990424581054187859185818442800373860973030710047836892527736820648495714203985054343409300781747642562590242372302458541529526859995421926409146187292732015933333931090496987712186075579693431276342714772512275290676652347116360195919255911221421926751181447562687523074631434320228583602604323494742915539822355914264313304661013655748603582296329913159089608806337119810862775230018832539572508744211726551550463819361447938204465959113627099151090721468949950704472235242892123063837671847231192839401479105257337901729275211050454977606769823227870173162694444227862447769348826843667921189043496698042454948896756091095060412893157092510379689967930883293540874901827522954216805836160609400184909741813562693260070925753771784207713384808612999747645319382399527800123476275966070550555507886269744248294429382586085684064063894434286180941548927977559392378770820391729449535587764193676829695960549450239351862832883939134038267114329291816206656731635827677680234692944861235778750858683410758805181908004802603862122118694023579977460957577049695558709628578220471767204098178038992014104233655096176680579641523000020376902403590247931015899492414107060732828717413461172005962824805382498480394402678502620082045834039254102171272940862551052227658316884831666262146640083432340866616428677518656027439702274424285273251992399134320256758867543537556032981593253722460745567427438066430899806847025991093970717318958290644329432978158470343051287470047647471655320477596855958244854259258606019532220280987167399704835743116612917818880638740442540459878966277395972281818234376052562579661109250488250315133275996603105733975918131209841943399439929869625012019724078682105745336296161743285658943329478111979323803825076327631480423082106288115220788647653329507246487026444316581851463091996429874337336873838136244736194355197305826339586701263771514402780610284360442591501199586975600841197284514193820113578892906299534900193422484476824303667768371873147479973619416248907647619080763871378983778170684675195639573462768233188893057318701443967042646726491371085686549411666188151880776905815593386369001987987944873924772862300588961630549720342474555876975610966809210722687436767224370088957566002346979148867433095867440509533647838272988705214165694572800851608549346481236666907752879246360798428306125587455930721213913609302656502137885012290985258882555923151107210588116522948536058927289683813345389683995912956544282421967491967858916706768191200881282350626842160578922072216328252226852943505448649014635993407823822740603034668324229215986042202719544608042864069012224677656830181495265162510018033724091801025375059414198721546681261219117112297204837743603795619388152923290562411101793699835152205217161818976778428133716002012125275358387148494471549315655338239669543370243149114569009791063553978850479021918292841575012606196996503582790337971319462579651452461755313366753948058143066440539849803603356465504355419373939476100195593314813221121464341295123599983802817254793212327244380484539596315824807438296737776384602722292130563922787646920806561125849952300952648447740816449046955693078943024572620771023987914670244534464787557720384705238783573837589056905969789225566031002063001849526080696524801223549097500964251196065071512963427685241325909496452348922715053399819224202666007559977382428203789564525567991565211765765458430165360827160324913641443192885065464252131706368093944368157399793072711700949334974910529482392812969824504730045194624848372376898737348305291606627307611847684424800559989958086452122723576529392259514717403391146909738000744863195574022095881253629277274927785771101655079749742918969855076909829192356978010289297050433408596027758068153655348253634145660608794856020415939254967512958326787630584050968710359064897449426569108277519089300605915476819108481700887397210603178924206513579451273587703844453702442805828079064118280149099918925476444060731613673839865760565893983191239491173132288505707046638678263551663222602793581777754417245763393000197650651037760510585348929870818733713894538798436373406705735864597243114733059966704364844663063293392730880621708232491418052849282860738661618524572640070076600137456435393299931174459057839552941643372577664792300119732040703171607499875380176606433893301208326880054484615151786056585011467901358762875009456448278098973416857281667385265779210034111827598742235744054032967935406995528296044690329517980232485265342096848496826444382771836130895394389365017340607442044544077150851573852730335609208235738867908914617950448815024654255029948083093328367053555648103621320874926899412146229466063261326737684324015431922876676799885639480057172501326222269630834457709552638279004297561235573832131490740015556824981950336014451337405439219116792322643008900378718623335793151217686105187688997559905540591390441130711498481574749938874684557513727642548981166370720680177379267880987707290133660089626324576969713150308054635134358735048409122835133360723233326187605328198942601977221367496374016214896649288712093969749188339944089976861485995680585438445790628025215528907129371392568978707092535467709122940475563684108127949567490781717366018347124929882798280015229044019181607328570348038748792518487346723259999117178663385166622403898986797414467131173074543074856229479110064973347312097760724082248663520826921897511639750247048371158732759652230427816976785183339734411675164645376574915444888740216644260644355886349116096479904691644201083620853159778619075381529576078458475043196523922973779199225147628228586571011727649060736324327950067862245609679472767003261622411569208653912132822433710614207666738010183720327931756243708680562049625035328905829889533624333257416031766682311460407795904904259711653593618754478616737716137773744582668003185937218378824544850535690143047756176330358598534315817536388229775196900404708202562175618070546060384468997417010129951961651645883269394855909940873374620878082953874003260548384768111155183471931295169833520415322386987120203132066756759608315304759049767116639546541002951586642921511816335122056622832655239772049715371616807087945061364070368506624583528900612250356298009552001895775323787659388729903234419788846176949844727464604447514305501547668935744516452227705091897941941431416489036906349084653325608184310779692060454278604828427778093259083284273961576262292174786493761641158789753605859509870769265331165305509318946774081387349632906077964282519936299971584012862222130188469816266456990578130992071195536013285852385956962110593405263584723296448559315073696749470971399005793182102174212586473399751931292458294150610317211056170786291337270462090102455002936030352073525829379170909399532187736296913243594019958874853840145890861454539209834211859455572602106303421014221678413765433822076202348926265619749204224096781974484622102446841711309829880929647914465237967309949131656835731571304665205918652771831334100513099075875461615538651639387267958432984353258712286800376931268751417574676540782488261176203079927418551424597037856144911057546893059079716115320912792634898888299707802120478263889551197658433337598399884442117527191799226714968960254935291438473878609596868956923846002563821470249480761789401592847095954053704221203330437580304479420938840554606965933176765575729621077244276097619940332524903889150572856992652544296583884708540822148265743904211016390116754720135348354801672058222061868200337793426258410713788207053423374964500032325435158948425361682260035505440122683225885971320621896661922645250824356485807295218668474626386888819609619662814410838991390430049650708829672883652798036662458035656660766268446620813329733925955335909001512819924995157139080896824703120905820043046938343243955083737312836851485166234981027248228660550782457548025231454802145424591715834866850710431717595288930471599607421626195705391204743169804388236871640074506449408257456291908171973471490221989670229189263375173172654355073148674094566308229138770248131998813430363306171043159995742295179136376551546405782610067346898420422798189724523268646059540909663421072280964467363976478215976884813908666145808151457730407116236806315496455697756569703952035761516196647567990243449897214452769995620550293247597136470376331536562383170539514009144005661361575043791142797789992012691105900619728384117833580969335450648758990568540555378502496072022059477696762301833317901958913123449907362760908437225565088395996515150863035011165929587920964493451020280206618318489003857720599527141383529170511091675988624041438913159713933179118551854982799864424100093577321735706678483403241462539319073143665960275355151411999114330979710156752329770262908833035352030792194023178664791615889267861160635365093087789392863696796450149296746061117599280462191146675558085105408974068215063508902222786333536517828363855219049373431944391415520112679349661940134692100986119149233481800949443359283462675507865403592975009446397489316117925240242610245726350710545751045832219227433420592079869927787800926421735464509949530976264284324587492852449973521444481026870302276091065259737364239146391266301590806595468336131405913039286739299131869941154479008046084022015419345023358283738501951430576675893190648839828859522510513816382054755935953446169238866395464225091003455693424672937024149363966397932329612757829458648647720105024962394485337388028506570504942158726370349544696202614876566193747644975595421032719943454737296469590866221520564252433072479060027150016601387406284219104058182160012310063293287594260589722296534429205057847263850802769678142114981378786314944390244447097716824060117183970955455527465771437012538395866346379914944420375110775515531761851564295206448340814997810988162542244432541392873135062120201070644129293244868644054280452411816454895360054186853395226822831140520624368002083665491387397212157426546589697743466109276114571709088431060924347736378484069468187910307266465049844054186754855837033319465440650105399350455142563982688638558273890276860175282753405006737683463724923676516229887174640216789989253809601527149142434427856315609970226424866704451897277633121737091498353068169756664972029555000282677042839940677641944366395230909773989131586458651265003276481020463726943927534942638664422157887296751235961739142243961841486895009827643466115069488595751300110124420197931830741064280568457845099557108389252994534610825496131191678492437926638112644840678573196257133244980952666069500426289003949636849610618763626615689385915092064757440227078794108015745809900084020596332341210043143681983779049814314629460006201340872567532934315953489630544009331704925714385335115180875986533524020437563093230790948511083992503269524859114242829520491975664451539620220932456213090509052360086435444987049680408534166115274988034004450854121009599524929160448831180210191928234933077492649522591181762985306381404730908799155725228837294067996467209259823743235553084638732868234572520811125362027045428957005711981621383435610799093457965547910402243438463188252448258492292481695057422327587522531542743290399568175737617651133577446510756330684052230533302080458933316789800271275205671709013023786694570204037112708396088245782914541420077232873432387251847342647611594543259626319326083247554933261458664375619741038440968445558837466857301852280953395498377439627943999368336933826723401839436270630918758841851958859589612482908603715509911730287305298222449417747601589289657804833328514079070434723457637733088364018858624201563347263596770958159433045781288202397350589126906665125427325731825902301770095096756959896440013803686311225393369354417955085992274598069405263387339217669413608763274521129660703135390439864399091608564553446131253756101155839542185188637461250659907791700819667472604195963779094603378320269663240567784700240248274253723589896923881921785702325627292975624429600925417514994613905964336198580166063070917186273498826140392893590383822517785469348020809636566963880372235393219696432647306122976961401976587527639338428917690334812930912419454371605018443788422230499002602508770287481588675689025572028236535828619247878909959534381664205426113807462195365108190883944177577729101033096409069834693071821339313551241876628229064277871925041186708616640209312391999301588230398046537089207998704634784267550858628185800016068977917983680117827915394228248019949312846381271832447933996052760628770271819052308255629348936023774669839615465903764876398868623944377709564353731519645840979065902824851726036069150514563310540431822463205437948511231647195472489332712342957007705642795616668805639197374481165101204569529560418833028370381624607504438634329996951886261265780934956199397379888470138670161556703188619729754339149342707896862016224049791964285601681908647910742130529713230572251523673439451048111206390147570671932126792384897277873357127239880665541043945861388500161063688618749238845542230164040026709593677289924447018108614543818858139270304407513867191912163792010480919433676068229423701326173142797787309488613852838002822530149580999281515112630467571013333239334106650441466975865259403945606378837098353957928268245932861796485861580357268941489053794167331800946892508092177856727812876652261885234530953532764395021322665805229077294259345334710618865425653194264905673359605044897366926804119558279962984498503611645280865030207798163627765068298399947396511828141311302769715850794397299489891549271798112958399031948585286799851642204620416417078709760208679961058265163705658877618986017120227163792168290806022564820812424662456618427605852651707942290942215968816989766710401244486080173582295787423548275237518642782313617930448751820870137708648667060328042063438092907065280004345649111964803321560987496199441241626674320908901025370147144598287783834896817175712190328512018340143134962407103862670323673053439014182960758990024751733718555280633516124483389571196258778230906357111447867977645224898703144571409515086162123758553721663145834255132317954373835991769630207150945844743443688812664659023824337903539337943489202906235315842260903228009517492568076923738987527066242861063931396572756909087325554597823370884493971898872620209861306554124724290024257068045463239215550306789819746110421327357959587546816120188321393351283755327594938932956119876227357544511808869348654648256537327962466891858852355487066174238830454694850302331899026577710835069057985042080803553436236999866431875929985556727677984125216852096633559479104347389711620800962398019404028950994020008310876599959179845664123397411395370915433874505062031578093054139904880851308972708648536375820863774332113407631325242407557646469453386756589687957715587482254178515919516434225777777518358911425701617872829517462025298306583089246536096585965725064275073607120591100035684671918695634101539783478114802611671231166994446182320535781216734672756465441966498874139830918289719549870773670620653737242176436723474048467040373729298742333064603619736115340435491997931665612780148677015780151647915755713518716274331713645671731925325165371484525706766486048859977647643955790154232903262288017406311501641568854848191251001867668707921634341954319403921027964258822850801213754199636614527267412886567398709310260438316588118620961623600340708584917041758334696710826806994943392885706641401942407627952495599043807032475129766361879573332554991264006242986882446000516906737008970951964028565374823210616915705864205445033579536867864511385100933783746036028830622535190256961439316010309294290246367560234044944114371708883370244343952471977257276268387135237002056291722845898647022294613073930266915427471681921966017085035394665467832955298042138612503810212642007733596082473282967039324162236916218224718835384716884087559394647171486434396202326473781758351100101189415622666405732208816386850902054046208953762350187580807587019437935660727801016961916661645559174284512522637769321518706968613423518105737630394134907618883422961581427198715911365969634443064961083495639843733100065207264767269500641666178761921224627816968729573671273640400493196616833250610918478208599982688612777940493380402141382649968464714681642931668971471232193290275955322251823697060263721328143402112277857358592552602455625921313562027243262529076464125016710737045115121283999882888590128713006229756612038510501646274907281733406219587798381908437787572638220827711421837844872402936499458921261089606072512119050718064031143096430735422180929724698931993187692293640463889023598253992849832581634257308753401719155388396900002463361079080341889205520791944273659209540021369307853710565640062743946453423265519916648882670553977365624915683117955497516606169996465055474350947537729567556128039438115228442823532673203411320948435978460758649965798888877782451017221351874659832958065080291896387413611133173597963885842188273976185754592038672017114310305719530729737274574220322989430974344174371591320576119575628290460858892704696235388644701717947698574002633907185296477361907815940556178234001140342292660304596409385283436711335294623001650677536971650635715093144641296500318794907080845812974072309570373035443761519262803524340688427039157703353662450857421891428942405461416275155362910831527373021341424390661556771568297111402732695491416393774728357845211518602996375401588057001361362411976126265259706589647392842539354195369838678396523454137711199166877368354675508835006684508434630087303221800022973016558048540391007346205924957264064916962994493286927394834268245310844603456518390094267885110728398542702490666502829977705510268546450914219849504028234113819735248885877602113998341948974425389332915665306011611697071798368754686799995086174275662824600556837791779561644228522712541694868578176906470800449963202604529028831244215495602508764050344919853776473985888275534191027472867108638594514512670409252980892486633217782967198561798416556577744233558711646260323951615582173947806110932815843561765884124148787278867386422309325461027043970054209110769133649229116227722679138307534195705465976439971951609035562932708498287793718414829339845658447748367323947541794814776983402108949648727324385127896863988623126206156326313123589507322352889300815773327712066589316952076416953902998336149501349771064166965985722366111022167634155578434505178880865028226738207075997903782993168458770094922839772520701387576387351268115591791049317026259436326541874909294845224680611688805248311563716919268859178616313764900396663895072850360571767565654312917952496587354766391252737324562231826970475027846868094525360289275629423606214276556622251664694585331265904140501584680720580747863869101261117349429453347339843397007838757344571680863897654333875923460830754666909962345588935444361097269831583666892071223233886647525423161350282458596841850644587773553299778158072094205438536516773258878496724221934246367997695781723376256369795541082984030497136743905842228937806117064805649667879392248705900673141592966098070963362534051793953009158942334198332727692507324520965137392059973756818841240314722819008801995140191383489029843364102361654975230260646655569791284092728291517845462481345159416805936334003406796119348893458484772937709885982775824209361365239933935122202957631501053175025782331328041527350698030297807377585778804612806264204130070903282330438261806645951160698491869717769121755479694135487629427506446962848865795421898633252691059209938257386055656535950573502588216066111009885091743884658395960132268462638557166505516658341496611157429748855514406668131187825129532160619152873263129072314431429899849309611234486324582860183062220402103019265072495451048943063791995016198810344919886064455657842635467096894179889768064976390931371702015604700982687481616628935827845743838888624401040585762722397165203686194414150455298392323603512282480965949629740750127647203424681992434718463532277482153570404169809039360157563115115865760828453499031237142430458422490907286561822718448933986907588675421387334674178389527512086561818327179017824137004837468670679486724147546085735268978793795609347643734298661043640715242639765897327639389056829529910648592356067514316299821641874375705071864563670707197819616510752779102361832175607178445475354942076182751488280635598612056588175630391495742445110310608477498419069875641041590661265485754599956773476716781453560672629059579992711626952312813195542173001774530754335801412793552443350602071573601568766467609161337497643508176714195842235222399241017162446110790949845148040262417340862424738478589671099350823601793712579666689383222407012360573035760010985361946769625905864457307729729208960580689675501335904533002966652148680714809166785170996059050097393937375607455082036734746284136097279781069924953358666448699627893964715193844520686242026411759521761003149514361192789630520132558794062654059857965745037670764111298783176827198254043972517545197486645167134269665585181250718644616373838635933049384619641783993298100978957710848008693476864371942397919061009377855895811471462379506687568909097571920097000299672136817084893123266757326709038439868304255613958184280958665163175398298984285485458601500676046219672309763890210107518442196270343938774405829350104397884360935375956169369069871876070576202029969274291570371211384521058797923274508330742857273165730636395442372113317796925678667877613067965850369021177372062903971903025079973940139635188218735337012297590215192948424786903362007656224676822700188041396478080014535944671366317011364105850107457063209079859960964883777199473143570632230718209781255085534645869405393051788265364269086194835160415830089896752495519293816096928440919345822627476843479617717757649433276699745025048892763115283533055567016822690445076443619243304647456691643969122092052868868781997822640267254362765990131904555911889399534179344203319687033001778071282470613958998832403044618440520884119725909889432961815075054856055210560580019045881698147156815880040318135752265940568535010991719430225079257057065139773108629796079224586939491037757909513541976184902299276034970359406148027379225061284808372195241011868154463895133236922656539189502233776653740130099940486906839811614698017775507244541568173031235282691351819565214386847466566121070503815067164092085818424226947353909764684170322299097030960689721106592148080970526149897202105995122896015375713159300179003557804699657973659659791521847519003187304578793017643499130213025262954838228793691401037864153670675990504158218538528028235783833350531819449233824780959884460794243529724194263431247742646399136684440094197792541063201167360828312939535229070372615253418564136542787678865467573672063226853717460555859446231650980603107086259019760263793464883175986753682401418846790164922320642478357801461151033175327820351578452901157329881875768062181610482616176226820146264887763617134583590119252620237105738133168399981513304038757533887661949331303049655596539395327130709780067332229014147929249370739838904921347799854856282074884419844604638372257628352371437363731085752342250802304553502807307372144155190570646238295854003125781837165838043032483034894714229040111865149728984708134515732372782667497661906118523948359022297332258136860367357373522479202781982865286323808824520053742286118789885408383356563365285819758684828181285679167292323209144271426269258497380249640517220183477601267131449173321018863583434349380992836767063779128629617042793476257727294802675108247303496420452144146140009591077444289718024878070849313856187038054566835569368360614182850934490636988257110894948763311782295022435148894790664115985012778986588277969253165816625954997334689841786455074807713002106158626622503116581197693318144349658552581629036241334930667384508915390479659527384232405007760263008314969693795319066460781730205318966668420953123294687120221496674449003620373384045813468614916097358134759992829884398886811679882736839878356213628886217733623981769770240692846027514402779321336469914174234826170518510842339965956774874322599034192424270745408347133718261638050953623223238296111616980188190044485935194385535412883737422197929343844679791341016138993856511357460999030542118367264075775576861724740776132010083891445178559961286192600059305006093461479130783908028309171802125756095645121444782598954794728081664698513471028961762405031264409168283046708308620558236463142745944724659518118030018514479213199050556521779800955607860543497994287585893366096293928067568123411158317443876460668682787141077839834558790220860045365031619894065261344989727592340674177078991778063508642487720702290046258921838914577484491801823267166640568151850656600617639970787549687486963619064348854021030844544294564429283606586290459384255257029429349020636383085030313146204837048368969549602655962717512158671950576543953036675747634863194681242648180370230398829761461208925464778869930353629513984768418577653713917679536961898718879661579547110565082709639786511457412245920740420853702737509813524700411516422623134585802313956161468055017931692501403660372647262024439173369316079143520866009653779335531207494840394692130371114713446389494006809535742125091479025305182768041079502500238360693912790550946583123237488771338054297436158953096206613652498457385562146511719110180425244708937431923512725161023689010828021086082959617770674419125366254617563274066034129184146369329321531473049042511419016788771097571017505337189584139429796919635196964426706137753176423059281247731881674903726057515306617268036500399160029420107573159744284275175531524033026831330760795351620230161336504747700326639248918033946640681395892044604562997511411705620922922186634681571700407679896517671337593915715585100153028963349281253803505352068479392675944446692260151208718782399888803451418093481410406906193595837738942636387381280056700108629187736799741019161866111541522898430597715643723928936655820547882045908130225610561257537310418481018698507600089843124028376309008039857781684673647990605569209390460762815905972725559742399591822792791592563172475476515248801431335451282970454192539276499435733685690265769618930509058612533319508808261564203697876113540975570184702235802157649173103560579863868005309266457636675276953163299660109119471369591330623213769237769508706183229296033241688422692116272181132759019417999997697962249313804370736831564689826011846215608516118149350148277749981165999891329722060040283349275141078844706305952610751290348689116798026058990273242681618430072504786531512470571120393748401786591155982744167241969816760056507425040294253742821551564607042232865187580135232574598292952903390963655383668764437702158374968656789717167003062094989822051958929839634889623676670161482747198120539895531536831320087205475952349726227868084831151858473768324300683839428489698574033250474497986750273294993646634155713404155935748759301697617750927894710053984986773223583097880041892019743352758684620190144856899173820231059392945784320132974381600771663277428476121475485284822533055868298024690168532408677136690740804118038610327953706054188608653145634867753441951212604559994971401959184641545448201705347657764467862464463762911454003077840636590878405870386045640753336940004266580153707396550183163749531023707174121472099724726770759171697683658523543965424744769057582643620558161968109676974847515194388806677861368681702175993831739388572552578694042061291661635090838399487419496675337695896370465927768530237115743430514279906681966387762441857503842003127317239904444753352574757965464540301918724782130813034698449136973458720686893165331911454805032199725716489290673507750439726163579557095953893158109538791318098804919983075198382828600273983608496037494693370103597146666612033414395724677530875361369334655306188699178250211321419566297619083001150355508443248266755471861831083409898852820215804560860091313535424707307230920845210543742210871568246779893502860398791197671287025940895272062877574421068691235938688351273438766883788013170961673342804079225850847714585277403654779733570234453645597829017778626732648533666299870725513661433179352593638470749131851515731121431911993773498487203450168029016292275371612885939478333523576446187576001963555296253063771659286612524916207825742323045223974432739851245465105089650914782137604489265097359021530432964405843636581097308195146203786874261604115419279443687536369617186262630288884825563282034089571456528543293463622642049420556613183161064101122328842563765394631869829212679841560836127234810593493694706038354681780655955588175818237764473296417670225168309875311962331272898210074613369334922901841624764376476354835633360267585483144413773323439960987976941968590252551944297598005779129870092481902149282178168710211375941530017929502902864030070808944027299891182409753380677840644474633899553577861891872276973128634777014876922888848473589651084178465716125674212787851715590967207911456434669920511192815825407920425290129548270343605916053624388514667075895826700928805021911325467148732942951292030780292671048834915522666104958657388256576590035435616495736620742381366363520104157000350218734164579803279271856632213698307891924010917278937518408264406461869955778574005652333176222861292803222249982341575946986116803070903706115733974347018454413483448198576805125265765392016992550454618406254253021779191784784854920354051224070786530457459206578806785694748729350409258905306447351169462934307897842135186100447142927869073523415512124828613479726222834187963074908028461170297164243082560160795013978735852791421837717799353583292864986019362939200814867044452438806591336345817906406013824513625660222988200083307745466175335744190442147478491844449835999658452523430590339235755432704608490886709055990246265633092687894301494292990500466545372789606484142672697498960963384074100246506215834613881182234607461804226386846974399091954452370185767470457120586562877023986302611724839630814747591288388038344664599852951126331045326263819537641611056389994404604355479940568861859017753826025595830085565718077860264735679999391819958192519077167471910405490585822039201308192971560922841589555986627136059698871823048585351311950672512621629671616288967400980127280281275847199625045283498269937891520372300459086895436111166291715474985069270996268105708258081877564166044732528430370302133985520190761846332339684991351209610655050713252793078988572132112021281376706132058604401426257811210516691601251361907560058378777564028739852320618726574759377659259551578291331507975317140556936121637433799103132608706889879249071906761736180457945552076222555143706209227231202102891432030528200451132673391850564295798980547072681971887008541931681317600589565115617923925138602680412686411787639140048116923487607658214862746356957753428526773054814733646879466778428242967474653818656423937979185589515434301133482035740193115919574385065946081626428366280915160988099790518129287527880211838005418149914308491189505893550167268262663272193428966401306397892389523777340875361484366199939724134996807625256052596528133846821605700662726342473218203456241235018761690795747634041304083350315617847128557202703693653954969706298350046752816022091898852900864099760727203450258870401989838120533600550876520215457850622340664967348614625282947007840170404177440543128460956765046246908501695837364090083156430496075343698757982389291278949791539531635596821713864269852415820456533949673573387175833922022756590200589848831835731482994196903410942988878516190310654021526543572974665586095414158923324692135929613427303595886668047509500476062926059027847233578164598928316968871999406423169840920866929897316564556976364631978475033337264789260542683125353991310900117006376296663547566875207945549683949325372172049138763444769273405314560296931131819686614615199282480586216987040595776858667514232140213238639511284699259545927095123353564103820403386507685780577614612577216295639683772508100879360974418189427559660979264470078333881073252323860239111884194347198528321698736856799473734057063539073737662489546763295238606095217151532771311233669710028049479263094274768747086807541999161716254496142835067833411462593380801016616867087456832890996217099267700515900655703415935540541749377658631075721186149115785496961376054909154876342385514314010186480943202985535683476780818410435713914913974385735348980627042414605381621769811470660586594336802760307664899726002232592978954958646615814986487029741275182444245411423930470408722457065544033165306332123015032970013349894239068906830776113683485252227151522256016853698641178847175695794912952383535847344731178336309370117683344858022857104880872261161034583955116975213370755628486357971452235184590344946499432295695771757244508901721576908220971584094624367001799125999430168548394078507549506250668117029329909076728756071242226739131725124781026699169462738353252738364545033267118310229949999686491677241617995589238502764423184388454511567425868740085675933843364470162336158555118080915795681137022769058392205118758726904623776326677265197290545177385253247425973175166344842096798394277681975103384325663184641796714528097294982639149805573926339253926320166694473201719968299586089796543203318060575945126185269076569222623251524622879591538861899851979346875215573793117505385745534444737464521796774835214098911047113205829913858837453622932564145176746110590676631719145124393628723737372435434705673451476199479011717957974465195408014504211120746780764688501434491405776808921397891960267954926878429114189728597571952977714429388202554945261126753184463618892686173803556195720974744195786952594444815320893663126300395304053972981359692309001232327933486198747087831753071748535812490823043038939331905511133275373170750911129390500879721622686598398399910031559151628993859811093641345940714358060024907662277112677966315160738855530329548628062293973250104508579777029544502678379883114771451135074938424018792372703077248107760355390961298601680938165498906878612239778201666577384490966373883251164533822232180138789939598166093014595614910288239992595675410101045548470978374329827740396048330014294483497284567056229569595132075091156373784269110806794287509236669675021018747699314606504265757645634896756583332844810502730489557946236244659197547461778993657958418515614399365906972323878591531997155129776389740960192309040044040267499621181155739527734765853973081958971161882532861920248987051210252066328513446111394103811114222160634874403400469045798476028244639104751954745840974044738778317781441612597595647147829350516373150675473852533933432329773461886116445104073312415136905970952027607831644178600718018373030572501683453139771147558440284528757010384931238726870757491744064473505885092022064825988196079314616187877832579253992468578776184562954652467163568691948828087779376710854143812334023580686259924552707290497983097092085377437829802552583687135551218380131695707749553915731284847263446478814445931042441495523958758850434530878723892731511141272690866108968578479719022622108656906461083614267099196411470782579577461922021774135970161447242323596065010962712598664930935657061688438341418017252502064344321602782387407997320873829702278003237216899949349712156410919316752805929117992251417709413674303465705898174294529592116754421701461946803679004004913125243875505108319181142321770423031281795313579886166340646955085178929257021211586487127073533179379037160258084949818501744454419064880919244120302867588060261680536740828897417003983576711851030073361800844979330635856592659396287449009767648595935932596505751068015570137276196004168797678810692227928985860588021821457119847148159855320853645631845922383950030582499156569098502303744704302432803102185334566403199380356628293844176978695927857013672017048171962014138741972688302431980662628403742843671960187244082484104207863815305971570643564817008370270109986330084356926011857914304366067843820722615612756275702562836325534412129554698558923676690547777189137929966677717222664550850834208997413914176889008200318147884852045443822113259116039315216956927609622161459822921991919222053206068351813900310421565203823958078920276264432790640576293942254561401091446547975268048366619451864408609359599309978898223740191659009551810415664672673868644279108553715785838702552550393534687452912923779397718466852946612523122233392646738021791680277008083083286882136872543186355602784590444504383508351269621171995458045985552291728184296809549912967188466313294124007803757276477840872686658606778994511583020298849363292242189684636356467651369703356953422861704370336082233475785353184404970324683590412315981849710067862943049209741585302797307869206142435863579374944191938907285290509168484420587227163149579157202066646189219917441192490515589245359576644995398684329217489328030290893194339856665433387490967284898514407451395423126351669678987394475706644499052640460688578054025892985989119905966014566572831503337320841386128877003689302434333747581409023777045027525150915301612328062588601815012651713330192771565164161555096748909867883872041761354271128536388801576326255897157842954101513053317718890923235632016106104956835282083606906614621399435766052063848134940504244119542962697682262102903026917364442083119788163760577105112032513517920989180596870549879011755439457425132602876786713993943310562704611426117614995054848389472549530939553834612905212425110035158011965505974343338239488865351729858937143658883067965314664270568565465214507122879478641701162742683761640405124663065405030491750079895051888644142692305769184569714712721478828195959015451265897431459198550210681700819632374183963708366588588973020934906934782549266532114609200473854840286307473617134679530867506337233543199251207786239016454371356955618484987079974557672283305093998272167551367838210189270938170588291512579923267275308044166909615475041490272141788784649368095883313049636225098183736505077509095746378588964405483311122527608696214231801805760939783224894637687044110168623967849600094683353816793840616372639135394692386053756587793662163246308721475245566907510972476068377950314723709166091218905116665515676034772782473166338644714858168371889212233440338788874207130408638534303934491873402085023042268678702152581663208820644708014414390029301685280103229746476995582042878618633532871648123265406982162746686905195789970269535029974834463592948043415973106225550853969341315996532094268052547058330907102029504428423779280938272765209932804295661298377977831310013140428426646116188044454438432565589079647626613726237411994279962454407153505591421890407399061112109247247241587935079073456114151567502551833231042114797942869270943967575866062649027333617437894309976089270592869215383027133423615662474612954294395430203242602365856124092800874842724564412078235632428937623765320395683675188242620698141223402019915043622297794548708391899833812499508683869254129311826941488776097938285385486035212540158892773709828970862746812628484064182527320701033017945797299158520171313417328468020754258758214421218031464896281490849533070077355624590235401708856146075164454791816522335029050311547299581030598215198327018441735040184419098715673191499121802257665706093776470354610730071612244776123980594639593400572582208289701688504078538363527451734882743047856637189785464148840634581246484842951181588491114183384216548084660067619179577966514262396426519699267282490263326420774285383658276896748224421848163925058907284479622020779785841749438257636351968751062017435938130783372634233364300326203690310116376228152573281337650407791359004197926424131887143245344786818453598445847276822652828319734150360214095148156382931151932232405133308528264673510053156459981994066512375688373950304215952692625675766614527157501602962013099648108266223019800887246562365367800221806094179992731928845507240612584529742209296398984018777084263731747846144489204380727800079176215539552159965470038157628149510502029502872055712964515708025632198601299742108473617250066518116102723560412192056396314678454033655311997994115332303262433680567730063242673372863337148508044072502576756715476631089253174924602807395240871016078294903528253179982343753436504825736676753224380299608044528873639236566139339262733057531709588862380168094765663870421736998427248853950951624871620838685487365331437513503587754954760073857512228034571279192880614623242114140125284408952811948005494976154521323658666625715841346824726935386883689430205426263914292108913050060642527305429064279807928754027360366130689023857496309848003178437449073407985590469288863874664115973956623673068832087162266539334406567815450649535757660931540423216175233087094823547136933760675883133543011581354029743917403581173859050427821326249126620020824694874548856135653722754521452688866281428610525252364989643767489707600921993502513720099782456790514334223742206891721679749415366833873582951326432773574762836692464423068478724889335220503640693636414248285458214260801456127484247000939550652623322252048861707912027666942525951536618593463768635754067653809196946678447025558278470797322911813849799339157173358430334447770604312335442522862989931436951859160768012421111853726073899893879002857433431981049729544883517136077911810602821475917082994319188485517139737081299770556918258751852326130044268222098196401696671482642171177359138219274505118666425481095072686036113116929284910124756192912837698391610490054899427454343059405547890132760743536756845855414899175530241522971374026160511708247343856231420808737075187116756313938231400067147969700455094129670220654326599289504087637918919531192848006653827065512245293308406199035629617754008123822511598280109358743115751606633519921966041316025186391880041929603592196744858713216673177356470903891174037290808645055251728870385459893619480270068566005273797530984432717917002636294921254934796628927112748486238886585022763861329980440616588326590641354824270115985284839848486023657054266660054992267474270434883132701735233551623813222762600934345390104954262233238864388288250011960830899305470125576772854942118532630200179754778814047765093944905294886822594683930085925808815513017625414586933234736466139062322070421541496649610978159772705730038022917883827121751087576958468071623067437758800447310252835954206299995075474948602050434261345105167307787939779941234672328295258669699634838484637746859430453049709956974534653272637281922469325611982809392202890561303124080860438201604802135129137313167511496484983688798788780149829920691794584200954621768061348153362390996762833098728039240550318548991149089908284144034153303152642586041444216755419689190288538216927284313308818007375126616605696134254777599273870724932177639094558831033611126680024523946467799175410697829306075259971812957329065164130998649589601041038369697859432158776047401232263489770711955266443033243034939677783472607133279905003821710481614315437375894807266683370107951062355297191324174751371072489895660853007059156849244438106702144210606501149937593059558319271862384571905920533472618806067705194351586703485518847019799767500381363771702579466273818284744354971970105397039449743873956104986599727320958245567567434563495953820087776349332084129721033172868247173087774672968105117924223298234244332102971890683443140376148695497707554794162532254866693588720663870462307470680013783501792528358740736631268535267445049567250554880317026073149983949317548335998283501899013618625351593861222974931839878418375799151714518197716035207542590074146619406311665251635956156709729347458701687515752984791309883362364163562061966096439514604350633338172080114932900766910260228365710429569790325772954128480183808583002803210896094095826935264834554951023657579066758819907746182260582523083978951306703842840255919497784473574621466976762729141449379065659735505011225496296268873145093473210752845037827374090533161944428123587239634427294475924268483621431043308151000855927161451301600156791597132421768233746920455232304858067685049222282136025978949550885279537061651455031224128002353797588550743213805837671949970227121900862578167733902597528956719960982390786566571114617117465926329141667769648281408303235714611592686818337598515496648492382142397379096665101422942507949651229147638424883170636218441648832003274630686015586279968170630466031644901605172803109088934223452069518284288384558570195513777136526041892827931771094204055353206187747598969577929986445089594409943591797105953434215569339759114725010373004408183975037632882440647085056490195705722485039219480896202427880656294746604560247963241767425438326500446978332478042859881870972151527738688410880721132918383134066847617511385803773888860439371431401814909349343451082682813987301502056680562862762335081877709149823467380908428454695281148165837250389879316076819795235948149853073092195925235746910891253289164286466856521606802930942478397997217417633649863672426151058166046045114115493187213379352870164535450789231114095704735971435602239223368466084310751480188692908413546458589549627913689523391024024232966429202127872313068777837683109801621332397093229121036013724086174208841664175593904308249798000322952743267473734699510033957224890320998728745059321641274808901572576860837258171007856478197176997362223645065042521371598851634468362550813613642251441177814055648125627573741406379741318059342982250128061071415620359983681089436010990079724625240892531204750540151750164473493670454547898197729088262873840621453826188543553305141790931803969246227242914536265458468165086042740620710156592290567715013861664239015074872904916604705759655031086859365865777132546397553005005535907350253761608276193411618488844916854276501498312888754259035176544473859138538587263781847526056874177259165590003096187293897007425381263509769281144301229517929875461100469348422074776606696236919647010708949156002402959091792849813583708255986659204790442305827642220414275006785844252779528359632226306994757485086719341274052656917262536827136991487526339480074525450328259170244527322203611406612832885103591167412485574837498309866695739391173107574660532490380072717678308074403378700732959268392541854636852177659720462606310901951014383055964918299954920374956315207981930259404747910829186142023867914310076417896389651702788455888368245313888165201933643016165959829847328319154684202252389917688426274941719714369197227679032760905831232939618306789091414231932804050636570652879459202902310104360360345363431163492213142268690770134636561158487085831588997604964474103769302428550508288150256260871763370735417271115693766777442289767624434477269244069355942705682652093043638382637406648902434046620215733409407084842167558115984027231544010194136950748572643184713588957467148222806751893150589845065432098970394020857176868118625307287776392682398549150937321444465507449754873814239978354785014525705227460756136235399122320599890527249320810621311838071888430181518095983692583209955762459196015680407518634880882013907893441537388008169743180348898760399745222272399720192298665666341681016840460922635029275040951500572928829177711196547740019994902001051638495536103184267651989900099661940320464762848561881183431336346647372938294013384782529618435528625430217060333289565109901347711298696363957241326852440528303379168647847827176732314130908361414281837673170789200907566588333463506931514678993564024937770447666485853710918965061943039496988144547646100978786302137837452991409440441841461646478049146732064998580007037647634927063935065418464751736380749548512795243675228211818400887977636348913616323750502599077562575966011539517081161688066488251920220574553700928906307932185486024454576682156542824477348204244800903574811114263786327603438159254500843628471302683595758008564472200343678154797274055409228384070114036072126993392339081608983698785528405448178301414022219265765226254974086988816800634100516857284475621019447672121933373207347471521681679659975375806735054510972665878531447535886206924125254169949627241735879815592655485957224192442331744138211199338999511992796876729235479089955315716707597535420073325979985635191573937841809217131281528487627747926373954629579323870022675666886843805292232424665336200643372542736616324449641478183415401337848890047371811649077714314001269173984541197226700639524207941934619216331149437765561964035129026401247032568921197237065153778274806391300475440631821706344812547702604235577520453010692866746357856211871683456181447331850537242690565306771934272368516217351959490220783542005101098582694472461822958922181823374241136251749529727576884248080690320812527642733739685075421034772078162008243612144849590864088012324423315460352500286079812629897888857765935575875117361664874199788709936451954379319222489619737540054850008211478797537256369554610233329527162664759346234378305292238038386484452630174685254585535843638087031945765001144838622125007490708339472319413452824829778548986513066157534239921416090698527908056851482522914078912400453093021832874157192675250101549740585461870400901570907195057428250267886292895376846021504390497289877490948281848932958334375182183731845506869370253562293884275683155668802958112905090824532023372201434914887169358196468117497295477562371350685218496674941902578170352358439722468899106532357927197718340269815441558196987048537399483368158311378408396433769593313448127016232784734590376358464275856735845335963025492434141540254607682338849436644775751853526468046400435914852773541125720019898306985085860659714444343109181481499971196469422791620669415675897294787330517733249815413723372280758791819709071965482953937619167639639035326449109224593730177980211146224070885902137469017244233137863105766140109090820143380095702662810660529016845883673230604837508456894477056713657258714919284717256685820393109340093049504823921444559800341559103699074085608172719054227600859396541882204487336128216404483161072439020229931227963498529794288351652888604074607329087762283537164846921895532655965781731888578305770038813547531970014089305330958042202010345404944419977650193237572077641182847192076940493505171589366925701028841090367889199821250038973426760741164526761430444196318932843191799450592492231724739464704122163874128588452545674972308019698247345334426043824213384317078680585987637647041716094263666937760351889748575581363543748570288481868108250668711995433357995388094370164220074656818114956500021331233478527012030131062311976409732084879911699524887408096226822734051212898330682730884207276957845712690033398829491626223161358562641734026344266409944469183143437823967387427694587062614951515751739864893101350748891685893664647161412793795398791194443459392499057365018454534789571943664858470596599309269367473493907926118295341446060785730590174375331388901407834239101363921861884163029222802724511044254645372655795132867430854998706141993703764176809164025116537318078016640424670968888051509095767211730155431156864256742392519109120676620113737934613370451271400667867027926090958135020012722313810072771029059958483748222403566377659225572794478937457289088693786483130265221334584961556004147296197680357346654789035114166467684072209361605411787654558706098850388019320757532723598300720855915257614883476110648150147826140832606929889409101142012702894652567153819235575361518799934497297024295348777389029689444415330675764666656824465421149680474484891433755640026766596704366003527938687623941761152574879422822313005197643919858217889066908512750775851619891405561946057084979881313104182600038836570696532170598742747923823917439013426845014778262880181428936013050964805895052896764294384251819886544482770992853533661508955682247115732735480894777686006267528465874430670797157421006205806467687417901773540959451552192370106698776964406090213350488816952397403325499282583186426972003659102313989777370606773654539677328900068099593875674889634046874672683185062979520430554534068689455030897312625421452917106293989626913927572667609471098755096863740238164793952055532606232317051651071138661387834567150838548454774414569079918836958517944570836370358719297142175985742078976698323549612370626154513495838850183157082109444268182450761097286520789322361004302320861046512082889615280702940519405025575585011061368440664658491178292506725186047766010154812374142317488706818726236272333422268515371520089818695399077258722691903366004815037353442951093251695488381304199853228990122764271837791118315494621772558155157673993837463678091599746611428434510207749491600984958531290018006621322745326482207540956771585951923477951820380245075768129619103014312440892522614512515193630521063946638437870996823205633019462554511418868911757179358146397722669933418202365275135047247750758197509558689580494387057541210931404109768655330197503562767968608235959755707363210002258968522245918396123219037997899122551366166643262584851624179854899277337641353075448457303594978802516454922087777260979447846444121925520376356628927075596918054254102016617338902821571343677645644819940420441203912289525590201272116629146416916925338962018298601164846243196739391977246933543836491716264973530527950685206444508072123605404889015814496603543577713924194015152853080690594980791766168107751440622767568578325537895267271582820105341147634575173931835267984729173404603016834554844083393174273699803774537633691126436067748062148178853703849771291524331176846361441071342920404101215821881844217607999424642078964359155933913252999588216298195813802602654781247839709349384595566525478592276651695894859046959756716783454403037682655183654164314856001016950904057311717700955391046546937966874641045551221778168215483923696700831357997588919817815463102553687635007708083003916454528224198471625436011827305047374260592942617094690245490309424742349230354177521327024799468676221367644512108146930421342505458185161938484855713873079204699151037050580690389004226631327745960987428871038693696782222755173459269921126046066236826967482036253176779223173557455284453219405205449868658981220103350457624600541384382771279355412520898547028406428661086871435563819927449485221364924503500459700792473775720919538902468536221889334536011345609036943086872989968671243708731745180739480239163302832876904203920355405702734654326779341081014107718298530560304129319151040779016833370837319809640581990765223051706920505982459023948693914988144116108720992236646820498632207201958392292034310901383041704020282270365272110852555260660684075888981409966212252304971241572367815576999867776284405629055974624514439023524342857604439282183208738804351126740376386944373221673849463967474258571483884665020805825867848775257810776123279540700526979457630633980809907843789966204713207741478646735199630023405904343103281304652342330457528860801932370592229973921779860332465576727694395787658300895766009792731375655330376746890852435721037798126251794020802593747521730380009258940119041617706822729585946513194161048770770807354871863399625998614317529271946771584116669198314563791713063988085379368415667650390167493106578335102921778559600933587205442523672483244664188350305957904329919474664503806096410924365990529270294837288072000921190021267811819446011321374989104454439239286347418529277117536449941376280298150467677641598084088276152485201795701166874835040883650445987885545854763519778247456764163695464893001667951448090852106500086202296139434685648562367998121574622885554015540376728532810946705068314306015298501102534428377355413176800791330672403004552841936455809201601912179278251335310229940689509042211807214544801271398140962623256918703970180519205378540481673980366957916829570240386295032013478836112743033170742225152324639957215634995024376441176557768285048181458988984347832080324021258194685294404672677213297255385579916415919687177135967113315517094990301767325532063357359720982132045410047370949802919753175122290491587962220413561505314653433072015461848201539498482986765454203025030936259648734813176877608230936010559643985767633653152343473816169036167025106011478402747285442500097099834043723928998161539051113622422851076550448822704860679063903094226129339950301621903080200354972602074905348297245995642457765681974199061716092561024428949796899502421673344101583770619151048297038908515021089875351793089768449757642878778827071805455215968259229570262279161263054983992346744435970379625857934122369165744372299146900694620505226883605500148088559459214668941889898590894971956337405762311832535005355493773931752307801462852724166523312454845895834259055154146794925332805603354460368769104303763622926103065100083420206031660134595969730858106059031070514484566482810212916718323305666367191285968425837083079435170499053878264037929329555402996047687710837752368924033474336185030674455476579731156268676628057115596422065663626829909256768952980635193241683780536846149155855058630887941014041584891661464921814365458937336563895459306460862603491090229664839815950217112489387065441521783240205359870397644052253881446092924425708929247254520333796526324891335442933302398988037853835050804447967875456346682226963274415677751329708192231618953241029516892803942030691244120460814223910895610519682682214638978674454259943730415403067256983686881087303874608469513772674976097086660455943541282360006365121653439837867062419363596840863474648644760240595358138707094629670687373793884216883463180460254691950218051431298074914555397404721791339600254353166113481657138169897780929847240943260033950331804562382411303418022925679505263896263534642426026420177152461345360015387423542281697540100910700488844833502788254856574458220407050393704838460606274012040171397612612114411527988808854707158385816834764313409669969754699819606101017978576136893659023292986610108878280106335695231672640791689373269202799550058924106863343377278365974063975206031813647596781789836864209922807734965011234479679455185087766805554460441900964350547667671141324925942928460992942591777964331879393030213186443981435313676732612171264111512637248117444189643232508666476666977006052306913049755920518990323879872048225498084728597966531299157024227337407546638246898745226312477381243406166211239439603849554281799866910054186236249317046126753187565951865073683946584799239520353381944409803994524345604701332495589186587394201878678244172319251248245279669930996796881729275097671651576300184730347131906076266746616463793312185890480653665332302695882702151223864134107294411062843147201052568822645548246052674992474165613728591528578663656233755316772423939460148270864341122569635176420573328805008980636131276819741945673982108502030760015506571385626781330419605169639988166179891040931502231369251691737936795346232709426369385189377745546999292480720943948678529817701142315191912721148969931461286497285936935408872342971703163520811555203805129768421893377076073623843421925189821917986831350163853744561777023288947035689095398372110521729345915358292456467113169198028728569432399056280906375607916447924816339552441879699571972525611271365485968205394547841721954420540780466615713077114739182793191010902959912470087939666293852588922751018128018676422548640986789514593372553168586790198036031864617254813947018051769801968832852692089202569784319763536038002663745368174104122389653706413788427626178905549763804741206048671956154616518276878592004612728416700440460831775755456769327394277439918819581392768491713806968764973095802409067679647696828389672012400762351776427430884248733324195795367160176162840041521364864770422909651296792800324880592594165448853921576492089937742240722929981240859149804622992919650661271224550789272367349524158480535334472558303086216717724510970028853259144766439979868153013145293207166606562466037161462043430181224570468760774700349045441874306075080489330953389132411340704634981633403455384931282470884883850430841083212998219071043823128177402225824152265173668446039222418196294285322177301490970154328363107476233564429734488098787530204037243934944247866142326412151957825005955400101779495414251742006259768808188667376047155057961343161785945701273800063596861224508188748831556605582124035453257242545004462930335445748627211270695438819236640105211112787583422104750166862607682977534423684994975249427597525625897046912572585373064693477174966099691518768843162357608108733163199661940259687396628569141150587552666792846330502279925098063121352446218365370745666443222593432433642384075254577520639953303462466160115552104742304069361031170230401965240228229672459212217242654962441427498312200619974516873579505655601155311549119991994799036667620389081737564721702857534117070169942404477206759634700470946255489523808228602621370289428877461241626308583426205989319304592416216563732252037463061231097437309258426577462009688182595368548799577037119295146392395170220295146441357822686371674459329900514224119046239190968597281012464031545715338657640904714575619684636175947008996488004623002098011575770689992248302449176273076799413042040833453235861079284294668330951907807400437748471823230847553384634718337004914620066874518000546983468953188520547671467866185196096161463683129201278366810807910816761141840638984967085393399011096172806899739968378435137859324594056616114050533744708952322815761161987804488220345964974458520220628588531835917890701510630707441062023543591249161952012566451401978743576791881147701921689572168052855298737321952398748808085745480784938368772527956320203259258502522356471902121667593310883117815447192070893940244230302020339844768277610060967527881585582162774307978085943110578916621709558622156214957348248172076202536846495278335884167266993259893195516804680687466885554475689114143063415779615864121049557083195141890535077361033157368659170605551654081372687172622168095365461301042929388509015055784610098214784158708447366347313924671221859859575504235466399381417746390524575978436841700723988173684122860503477993942254231096399987768360995827615148100301958320312878298682013675049927610316449766011417063791242168375764535497636461981379824913973571339728661445884989052646840314322072852535042052172702827571709165414432554606234646487522827510405810417030632024390921482672836188725149289154711487379420334521566748032074662558052282330736109833329353978308665066078587197370447276094580625049453342661917575326774407152815513539673556571756699224652742965644563027923794046684598809616980776918854073422852476595003301355221325791535197385483616639206903134694492316046353413956268453796799464141659651009465066611568347412318953868474941344783590543406029251039538243338572075622022648657696805984407697256162936059874935553616746991811103696281244870644162694580940686632729362270360314438446207064698951744367334235081160337776281536469961394399892020277479931006027755690462634299436707177066948267001918382197589382963264937565078297916642739157710936568460674657099740500612338681241007753158333378799605764699489731847541956539475236391476766681499086230263523269734880064153396504671140480224309546642397884241409327255924008520517207262509244518106856064428621404268618963933872508561723478122154017936451401917202023805477164006802956762123115520642665270943675068751416140149817722952335680680919273614630288887575253500913775844341609444778097458231011986032629176680166260432993379278355452839553714999188285667320590585381235128409661742904379448949048096986747652998729622193104253602977578635453997968929916333645731410527041653963726610799105825325113289400636915807095229727211180430891651798254830263668063516780272941333499721600545278766320473483135442851875026143152587276492043245964414710630707421706992480209978555353806873680754701091867974312250787353729209639784663065533963237864881011799237101248251814321239697651303407381133495573660548462284028287206649200234965032858635146898121377479778667356797107829731001317952989543060501449422389086900251596226568288269336287356825958192610011992471681326597546658283011671289101037362922641301192776168647410047434304957043239599996148993784630168041708362084237226323486955136720647936482688945411886441093973734262547686474650976950964491707068290401296039388482763715775556082763877511800064325872682081758716766715034940141104651189067062686955371884874940730968283850983395676443242213841528496861181325242251982694522869237028480067776548904390358953172117436852819380000895918203832659297419021867671120795596029045356920579747219771761061501341486024141703197144398406498744232045346600607313859916977915613452154764637977386654214448677259001819925838505579402001725546488493204715294525573008948432214127040191636581304771079256752376313108972529882965520381111513149643430907408501971262656701193182500683778006694531619382712239349642614721284562665799440497159849640230442692915367926927569118734832611940517647217733299819839807297576416717439403886394215988273940136489565149673951316376845207706517492017181249395359402063804185592508913612738492462702122920589126612766194838981844320520803785090947149770309236845983843158353033608470642575905923339712933764061624798135343465430052726662513396874418293226058777306299172549628369137303840864190267124404667635646326176617935402151679836598554848859993700827892611861200222396005697363298407576933565469892380794915286526606052508543167695776987681961429334979380358620780841591239494159516362527509512754282225559666100592971234484316172764756378179900303796131914748461708547575377887513253732918604179364757452818063080886366690732707058348740741591013533243336303488759759120218864181953515794022728250816175873423701658316567298441134213057528240033893796307710112196268975142963493384439340270260465481786961455535551553893289846915591531078314892317030144803682151571355517756680089190123422122577150846424098231300559533683059663530857501406843672524761404011685366767036822729480809765492878026278322982526245020388466447533697612699482808226044997704737937014949417038074720168965812218459015593444949370009433228870633418800574639447725934248618362943183597442609267598619265753276811055239703098689435462452182241998239210414531082226189342149763031443492952976682547929339925881716745817749334237185437462216241424329851027324991992523656557505904015825920878334205557186226713497247278668111742876284613721030227267056847906013197554316085733474407984610291926249645505522957482362811063455902819356652926261788395319947074512247813066085082957235762576098461681415263024950821397799460193046026344723455164900223161324197331132983974294335058858720868493610426811492980015236385349813802858155664221589055593304168115901516597098156864355383623363853471104764903005160530774430374488668752938316207859959523579245040866895286268426692626691386054257552093828661434573868164292918305251309720962752259797323741821409804908464497355586386408723536387761523402342047213156462426049966482811983760951038692266706362395703158716986406710032368113633287828077580638017759967647023110551221039334803154493121971191594871318308535499918547864137462541637937716656729969030859939384146179989484555844239378367212225978801887815571877513977861376743095971733474515271960647604855701113906701211872791085518223169322215637826823260014415240581970703981079820996533551425157255120375820432867880108221781947404174816054642690718527726148478087076246974692852012438288774875903155792680295765876963737114832747543800043007065852033053449028951155350679422887165831270259709421431451943019032333225499013112891205761961135888752587923828978827293830821344315004786289029388567531803667045598064602687884825000377688223881078595044469564816727444827244991357746205905292203813505952502879717894289374517638942224917383053636662459590726468982161865619939470699316295212322067993758016210608748488436105906523722241762797171358139872075380203115064188738817030265318489282826640116798117035784722311288957848088377235822681068171800685289342279698352440159210076643009589882472622424845107982517998164093417508533129457304221414820790499617619756239961191705611253830182877340981108244151488330972044201233689317597283240946025533811105233243347479076310535119688061330762446614617244319296854996250483300162391252850148675788278748793980753744776339950094275616663367902825710170862195984126238501332749996553332703306897894745298504252324295766096422161510890140981913284536261936651562139469403123201754205315461167360791010572825680487730887349097241298530419106231244085058949921193961425939514490625255776556640001009333331017304521579771694064141371787894488064276450458170713170929884058410903475546913096893340069131993685507568945034260053646424003659248726667511366335878334694835702758488363905035914894915884599573440874832638913911652303490736347869652365520024079839934955757834539689175132005325858130064903794450748496405985159262966100790216233761512877606985403823320494748479800343122814638861150467049559472178180726329328479520982296410949537702729790598256453063713768476174477091201138911725027813022195220929798284769593817922453894162779509578055799431677605659432261296907579502514102638949995189713807567893345349285831008448934479742688938793246640207070598425428030627826282861149462868725893910450914120413275998273696563852776215824398597594686900706385879875247282561135637919885066400039430086930047134611175628794965511329423804063721020732496910788375257639636061408345592975574078970451809817383443026831702595605555537390452597817302405250002271810780950447059311971737576543935349345603156880687480716800341393796188837071060983868699832033960556931562877731321865275176676529941280137317256532832819015938944112632158622556801712068631686013358395524060052444853300073461425393502919346074988565246604856989973933543944029099260518540632323111316506133416647962092514356915554883436960014861327395683850532911840206722193675675924461414124548151912723530140124616797656270100576357261956922272579311772310631100299738203213608212584858739142403969594331454913461303018316050812286594816118793439222168969201963009655212830002666973079432172229706531198125863506249658970222046739327021210877501125466912635640165533896785987522714282235511856839484999674621107252003108950041640428491688644742706966326829905144344044587926250935637358165673096449237019289883422109560167688630606214429193963466604315514141717150657682809823009610050140955497835177428354922597563055368649761423230731478280251848889859266767116136249470279868006520868182641013286754801781366797256924238722851304619863562059383605467669851498660505895791430623039095518898249880357440876104156395782379240041593958193882753531411279227501487227410185554847357436103888245730552534922218135552473100376524961133648254058905412271506558462557398246839664468312212391504846340637905787437896789518646946065783733354763111237822513141625211780204374578055020561691580470482815658271294550622333435284113220555214529071334625664196726302585928554879181117070955666276090222264533560529281006656679423521960134445063222665572605853509862153679606840816184658838202802516636968056724038792997405242383351601432874474436923992553233518926961601584267746384648899542953759785152171582489569250577801276490718653898301613346523760259282950863459875196913966990243554029626264240118045755214678892646540988415303362195684429788901146726839908884670173503168883553278614017943522549760543469650176219240622433750778765933728231945037518916917532694051216384420074415605053510493162197988421380928867226361469266316764412997422339232565322315858964651587773982773302931885408705831538025150838488072580446474335398486702535061961489236726686687592168777595327384330336064350492602834937527267201347006036020932876655784785328410977982285551125742851556683202505929456470349150822429127033187427796273680491472814769461827617485967529998777131305642174920303086098389695489188351575729097135632120212030087055880680782196411913820118652901753690979430265045880609593184345496627157622215339596297361371875191526615773728249293892363982028950695023862349195456129423611583570267859598128741196989969545494402772524060314598972657401169521891297106470744448875490648894481360892492631214997231063054744131931839576137766202150439802460302073335745095860886143496332733579718463927043009983656191644070104685476645119737100256698111491079217577047020359278483404395067427812128206685450114146422954116980010155525095772709431215141652040686675446676625108998031774794638669884141265168606013569202075379392797408160508487729211696853509444716643231795065529611570630042247639471539057316759419982766256811138431823478037350793695845867960150966542690113613104015675255073225183323037558733792413152481634241379701791703977698498606204227375129471200334528523242469559185606805187737042566882207486709157375845347952065826432696970166547897107214927912628355170634165827971021519209552227605294153960298810599480098067177800967667886813747237671013162573880412426016851648674828262807221428410182179994047975835759725738006312892460908159398652796839922542027590125801362633039617576427395169944840238574767603171688509370508324222017502530083609578318323158900970471635695715789080166889310685999625008907668640118152942822572715720784686921445782255268136321193721655459350419736369032359648260068720005477012391606167827571053158083887337649513901542780451548191565749415025064385329275778995438066860428924115864810305383466674846318787288034648052175593518347060758127315963423837311070861184409088754235696308636272230197424791802959385206888625584858221518477568055557022105133992540653143432850705621277095143182755893454311398250235542919741586799540636868699094577511710670262871416735920992312069498253001996680238493115895974911660536071231923226095244880240105651525266944197967349110373470487793843050537660918705209997210082005000774951725788326845608789006153265680447474986910328601561270028222275991555174401657400292490807138768972816082889199917149197151806326403874107435393006164478885892760175777613481679376047889160708609711488236976182227751345699810325926835439170752981133940947543744904157459462380436469142589385912833168009274223264602331391047356712569752540211455754697618439944507508690078208169106856447727552248466380613255338458987737367677467458087873246835374686215126814097829533938527931364778838439322924247751540467401338869663243804921826128828417067088802343774671657866065057415975283429728237071728766372719487426747068238711423828141172304011179667242074786808738724089541588929944140403015463325988142107859319044240911452789805324228451500679796884576178733707326492177680351832875747389222866151955435988596907402741366428240560131773090039795562451044842315090025613262542369224369279593001353561928413084320629835662704452652349485090065493853877966771983655849542746821750152096337435487191056434965797045174468531665875829110082716202774200831313349626421533624387221276539505333656966858902043203155633977832314563559239527208560867583786182947072352930515217881912534769145797645013323617259376035973414782454146876153647588186492993807265218569804661959837816295760996917270043021806248312491506638232192474629635551527488144787787930208848161086445242265781442563559133006919412373622731654443968707507598347088646585672522006737917083703493582529894767640044772223837760230388412149996592538936452568018572433499266473052573934242608760807485944848035631069960144219134693254103727916606063564745330384704262707499332089405161842480935894935824186057946683512600691910779690219280861543504796234625295007512750049189135745551675693695809162551473953448645395458426050678940031179442064935053057408499011442624083361165104142014355140380968659756978463997630552392890740105273371495284590979320314909786325216127194284917815759581851522041137035147231006173604888758362374169364552589808789295673277400255439814905959969469760914043877983629086429383384718174586718449851384577918778437439164471256534060601704206040582924228384645309747794309815662677663308882062816075085757010502431713265642962158300890294911138985609185398105454602654776524364185233598013410231254589016919930284364661085426055661674719119577506777543889080722992202131122277658536908876095009414548187444217460066508172367635593479347599348029642330484631496152429033652108953044134560185967298763922943867740200189495119223587878799588562692154664227860845644404282855631598629906587288249039121280152409644100965355112925537484082326672968894732879447166114473267883168358883240318319464922469668606744689359526396494491847895987832164948314097153327067595352693904408680652375067122581545068081850638261189106216278246782875500905859270848771827453744070131332557556967302338129702621181256159407271247894954555549019116480196537620340151779975542002795507832443735601953975341701749537488909596060731976123461205781868499153168285085772264025617688054186143471498923743038713618354141074166567416778617949784419113371670473427347171944408150498548364679372767276417993995931952386286838192275260530287050210118285155121577461252208028373938490508674779222361687506516283629082554732134859898865348639450310165589044967366517847639194808643482832350326152900354313876039694824332383555502196706333098489948802426438614403435647331041996142653870908008191596359223119195463231349076647245791541232825633403124041851721400764322204014224829240071268773322877917252045274036716567000016992851416928482542667307987523672293462908884497749290461332332220106723525291126590352507487933083822487120358105996643098777321752346425889062234826277345805926030280118408001455931742117943794549703048559861210529398288505055588137989978118278969109717587458002858499447177658292799034027367754050170262723165799739469324575913532913808953027097502719448395494058203606255405061208118203271434832804111297599082725925773623880852151582320950525054532999166341634416084352443337766845060321619070759364768625549406900939473558362790255661939371731656709919113487122188372479935530490404474076667887061907715020384629475703624988599263445435033279734651058453865840104119191255664862017590646809050892583982470069058797727783240376772560529060289620780646879836248809058417592283007960478965284201287759073426498469596351732756864679565570702864859926495700038325079426930025217444874626534810118504908217426153204828507211642709391963740923328661515915902537982815821123676230092249443516481758707404325736467478946608289308220108587135812186558733473644364730931163708846178231055733556824928536130517674779777085289847373847574736107824696076633677524526610331022914096715402789213956197191495593265321992476732339830475426493203298547042446304904712108200649674270363268612969011548007707277272973906099577791261245511083512113833022194069888070432175733341226842499227882984214682024980544562040997727250916514428247978345047953227171543842931331734379893722068050457903462151232634677872144767042492040509954539417849392377125370230515836570638285465792244836850409275184833231702541758599637706081275767297071669586598066224291268294701217292775139049790768252786683223457402051008339234121219745088720213460788596901639609990816552297536208193584159937127634777790192340076347050922518628813150627854440896892378946256131319137150190719986845672923315172099593361107091580478322695277284448097757729904637946384768422669252236503782059311442827741544249429386715432292077698744838950095375940062901888607536673428256952305596208218306926505609451817390356424571418877111841880418621612147486415461311890380239816392306473339692435926358752629418263285770071538112793654205495652029068382134756865846758379438922469665095581803597609343348244516408843646793967195769525814568411393667981987418244266792394274107786524013349931467647690563181964323038016127011716036337863990883829122817873221443571026819387385479150837537554734861651939555843673843933882260797199960542299139253558206462093392893150560739478606937261900794197042212570829746576703388092692260611423715075370271339612873131572994195475820893316306092956726603611044047532465893112815482371283220449360233204975822793573869921225307186126140412569929785557645174067956660987921681138095127262022630115213458023838358794512927088081674777565270352979980680918090707967733936348343388881357375747525337322614117223476092700825119824346488577968268519331981721158052112430223303523469302439446695838837718341811452201342466250175346513644242146825636884487338618539550402373839259005691674084319312628771177568697522551063898544267648450848523514759622938178627020988545928699529552337581904665628620370875466116456974088933546148926464057585360930917547966711489802075446640204598493142600728108244312238328171813239020725914899496245519120165121488453151513843341393319946972008792769147141757036447667925585425088167318418110385400880926489415304106904743570553512423397354955589970144604920572485312277380464117875273473739775729880370174322356464698460928794981323901402923184355106965247353516305607420440172054194926631281246955957482704126961912387196601103044491754748154327664174415248694324931564983874206868759141347238273876617817218769678485568624509483738555504425005824501807068651532078108718700760563568951173707462119966615580054756174891770640697410874785428837155111590404301067173026653736320180811737084813282293170473815741097655914869925996799811949637539063485796860203218581356772757030992903187778514314561413450468720824882617566560531636129962894039337712302577228687368110771180710092366775547941706161188474880259029329872210161685576584139474056023692597593052784472368510443033267155600308989397711803293086043074448720399065514070574171119312048148164407918429374318598577901004061617400360427177844332731148958687798183082338019672499584341311742394759179975396668003183976346116370212572623118185104921143452628380868199993486779221952043653001893563167280396021503446197848447788845437672623414284905538437276658174741466976943496314047190947827817240727688504445334250685643714600625068184804646664371122101012009533284553861916839350548205331498003278239955016067841664310118780225484672346334220640873817985100396618008391306273961707571792930708144334723349675556950288120960066414373872289012290183551975410775987217051880178695592412502482847234821657210147129250546192879024146675481421615879967438531389199849530881585063706241491076973851451243582570413645570969834172557108513620959386883117985224946916201409375962051335911780645806871673920369497752071589028771776805736458213002738020628781768464827280631883988431410903662218261187975311739901302508534489876726222170515333886058323829535797574659958604095907103796439923285066894130765022739410196632044510946503209745702785290641990199110457148931893877112574280169676682440877263470765821476908964422566502306744100014438185456476948509331783409232818718745645997776372200871289544059123931271806214365436170722781508593150907997446964316170977491774189629002361259789880768118791324909805170747614637122340111303425153447857980283170839336478624015534755953666100379243367939960405621022459143000278524368672183919413887456918711627337570602399764890001459729192202199744257329056045468101577027039417974328521531975437979639492782484202772171006727652087514235480416517660151572795717817641308269254990622132690767754001428543299138222494213878834553497807400732316866390465215582372714706286729086577683760114838320105715453085365404526919032741259052038644044661573695117185840108771800671709028590277179121000094701867992986125120538215922117521364628755413921511325070170541451130515920203999280570066351145809456047962072725416555723288755379743837614470999864394637889214829498479479055636305577075923327208219848448976924059670051607131072671613256973453192801526320604923584062932959635168786666838761683086554334198806812472468111681359435694634792172812575153118503844488855498880908747022462581590049101501073960119412681326474066338865444214766290258694797906607371691700374701645238560622922829876865864418680736284423214104346552254149872914684180046811634748429700670901688398348986799824706937072152336736092790674230300009288519567394392457410011867903975033024271954613264151356235612829400433840472544582458882980474955203478886860000112337156637174633856679480719282391941426562293971066724761507271496941334417963790998776268267142962413868566209396998339871863697348829963134314311244721554868017224711889482700507924958937271259291823203054033698053590252209792274284050045045876411118614895090689893153056798329289126690936083604332103585421686945506743459446590887588922870005024683714456082213033868154633185288279920986687524657691188841751993894822871384200165263860636206391378026653631946844989811946651847177110088297527498753841068751685899390849257192785197206758714878930845954991211927269937700100316714233387143309654764287006520033402028531795883010572531796932734227185255877935703979122808509109890159107617996994925551815510077139735231079526745734061706319218785759076705837464063225998085049134124156399434243803207837997889852684340477145855882717964388444575614097666646654340125020328328310657584720452530679048418147555687052247552874851305881540535947220873527357942457774517476328787642967637009364773412312719001269901758275878662709004891070305824361361598205298389126700980451526511988869044388583582779670708696937854456601897083595919192254549024353567503567537392252777215627748699312437369203145239248838062394549604774983762258210408861585191231266264030792923153016724167255809944792448518828630865827166730403986410687933850229593417201356445787353556127599493603392866123377141577102702249402061843468445950881677999405502315193022451596435618401819924707114437937945646036606822524598611150485922318428385143192377166273532743359549116017858396049453512719925671803032627241226519404298068804322225294169691278320888998310890534057061681959528143864740141247574425976975572045644002388122790131955899208010006905322166071663186728384392693075378101784950388661878508405294015482976325334348278328960409183697057735931582073955515922052111447942865892794074514913624854956459833941636668711983139073977126412234317614174392243275398839322574951540814226137044275332769561088493144918543406546756291946328103372863754870981500413011216613630457829554036053254118805568266425654187549713966864221954415348487811489023703078472421838693867741177863923435300050867154676642555476510419598492384399561715979439850677176999728987253779979068138541831480894761199420778727717951458674326231698830896253724329862568986722908972597740600621108526173589570794238886133405228699127834615340695787736753189530155703558703034411975423690415230787612902834292891735003043780054979477190242749030456120494570761369024743453365854225218317069669352367461874200671041214862274182287172087150372638641762337403177976210886800219623615167178945457071209734445903104776447303947660122128323775876588001467343499643722004966208965100538204926782821793577525486575683667759446903224123682021341935533290350881678641422361250141533733666370769726146418013730375691476623344214122071819421753149949161543506468583065354196824467223259357607809179670929488498932296251210721187284771719359693571332731966098955370271633073370710637290774233329729886823483222596026449800945712993513479075868993809003745007429421549126534086920397676081699200938523314407974839952197110426037260124195461880897713627092459818062617617648421291880615176945183097128904535583893823581054440405419759438991413540431425451143320157414867265266327371971309671857899845529047072841917174305647669982403600038158192613867122682065651161309069437479963926028674094183746458073319216974571949055395955597933040061452564993233334116305104416156602169632053371307411044269854409732444502358484164613442729941306703935425297552255228143764282872886488808614932223682666025702285522590471697322256084402416934271347280979401704560845868549044894846437986230054840049351688661640572341294970385968692291097382774930267013603400913372204993095801110673112491871517071110837432878771923285731089070669359158865858005091321060577438633754528597848095984486933237280365121522642629263872705618270198194905567957166842540928184072627761769534220358526717770997543970099383094498493168956939962090277798417320531211941601556247010328657437856645440433792430846299907672763390378530277259211663614863697851652501567665548969362100321304203210020554481357344101366347598301404039652744873592444906104666942193887824310302551449676990850608023872372555474203330763503541358044105211415621526376550394503631288298006092429791904758764765251989676659177282487108210529461513473815105793669080114527818377994981683981183070533169992913968048251473968934275671527995645265815807993288357896692812386385186452817059497692960603543317200536910194727512371492893077068743208715762078423336163122062992335618819256707169713149256375269184964964956384729845241286934084583846863491011023409671835684222949288784641839907998854247210472500008222321212241707002693547873226708384399818481975111881269260705297199337343787685508551934978844074615313851772145338821286312841838405289196645521181711994272344208283092979809897222839107394684651798656258512142493434201173734671362775289789852270014389629221693434838552898153108533096166318740316994437349262646351747971864328228945946543314871875443597842041555268425491903016428494563605505171563111788295156397308924194282223205804154211988664243272617440822875376908954706237367636069658000157668273465636299441495384301712308704938638377688740776369338308077595242973758561678393915611900827057798143879922265663627381106555019188232672372956524905062611167486735947843058089375754145528197330552142210015178586638293470050720315691203277445052858901567924564998807839014337743834269386161690708623607990301338270910931189763650536074625088598333313030540042643229280572938113841971107320950153312070182885341901481600551825826803091550761395684499688066266011007572667529491604183387526628763536219629139421616974129790325997115757117069865158621101011855432058231833073894815661886330777851983769165697345275351103897203762874215021511167285697202599747033909098275714784321217803324788631317331732060277326150015931440693262605208841764807160542052547141250432541727348077676843863066319740406986481199059158087345146190103954706932896506530988194249946115175545610333030230039821595974704208827426436653702438569732119559566522567413745730455758553110404632675872928296155301750984319375797314900969578388298344627312383044774835899487922848736721283518037777834623329665156339681575305044133710129743349092896275249769150969304925313554910587052493889757421722024876912578005091033966281723002293409132262908592420795626174398899531618561699589889049735349243166259284252553834929904681212718610822872850576815510023773421568707429150318889224413856265573591514515252064356267833954813841912125465824059267016931819717256993930958312246559500612009013969653168893867096925713234901700705764257530997094190050919301205489731966833137398532736280580115393908599116947303112069618152314356994473083058252404329674934770179979286775054079158054011911630746228222855614054966371678741958649463394634855260380110733247107373818496601171293471257589019138825939176961712291878928442784657887487094239034813641904458269783848840580341196436581904306175144676025310651827034744679309890891517411417172672494308274424898216467445138469103398945619940975196648717873372437916335193815189412090193025468034637617865261173707464036189780362005966236471900074037510571219791516379867337010065650220337359586971672465645416797650845759434436594299985756480966126096675997962983549662165442328371919248625776548334991267877218328288068230427849530626741486833851201255955908613651829921632391715319826317579206574409484219725994847379399453438792211343314027358241564758496095581026256846579489209516187379591875628612999981048719741590899750900859049370109819800760893192185199312784871287865332889611241335452115242758218239354116338019788847078705567124168617704891925087014189160463973236023699362330971668300981209931591138026244897995538187242878271532522373963136280397672481796892480981862813729497537873033795699156248819054559441516401674584562351082764222413594912704932458230612363529739858003703705921245577031565414008444818609517148830540592434274848774612880437654478212416452236191294089654376053721116314348819020993873544778507144054647922331068080360637640196403712652824403156222403155020212687357108437471277933906408696250763328132765364377572685575811745078736522044554043015001092672548701295185179081936345993226002472236615610895159004107842540816415950940643303024551452009726464026546132822202040722296244545611492379571897224115239314607429670791003144734513983030827820660259315511642125546050490293761202538816640529357961857631943607363798183072652700025958466213528207520523281437264055240736901892643086416006903674440494043089261442465045960092528721380977467301176028761303489999804198581439095814966842376033297397912128087474279239949711871155856402962312714665954975659871022768813577986574832411336022567184444433988636447753577850821995679929374051376419777188166519147879569222498418315662942409482554436429016517473688102449852513657243544642932799306062583874756221834945119979556062557079850805370676652591331803675270558784255621756837359979207279442329128133234272489088149556943150251967939930187920901361458434937904813701986970611289509858170699343677711238774423113136142501081207686745540291364084846896644478236295693986010603689727158690832472674237610770725992933596702665002398222799601916511445145536802765965073850592797026125389949863886333000919362746479749339175503076770762966647202065839953232581838007844778033744321748897620529567813241420919126520560187772027626084773789222749392556333803738072202208750920740940027549203926648527646240379178255065225771434649807354395280526005206182264424996376100470456594328444575559145920364290425799988282574272176125785897450582541389984663069300270041841405025044270913175396214048700547121167101682376688369241925605851390092913360330643590454127234754399663074436361456923592523596115738268041947016262908106963611312447255741825119067505332166046786073828863455366860338965017607994613840753784773062652051903818891882141414573993286150661968883914539820318485068614561259254240648735842222170302365193162934264202989610235454188028717282363128352329828560413739159601160744271416867161919713106610405791782615608941282987553770464572561092453053561114693237562693358304100959652024024406132444464546552150434010902981111592271009235421742164588043967449430383277718708102834497525282875351915369635923664836600180347858466063707351779076080682149347357492213924913279472564742953934379994079502013930761068456251511288926101224123952669661267011506972441254441628245289682115621595665364895353802317426909775498905515455543866223113493838637097472960245932008637680313888008693484403300225157369563710171027802087117049897257417753122962158778558398787018766375644626867414535805925632868571271499971896850920532702205302648607063899631373402631332972556556775618680182351926442913866693388312979064615991058764993754251717583273599423566199295198520349856041996014115454128384591673350234795945308648504211934276960777941394068406270933653846287884363830149620037448329347003009812060137720014533277382269008192732297386392942908563071894598901891639588434179945899297283198052419527173163016924048257522567665864009984093564530944245519709413115754693245072529198315773859577618404934218093603712670439106304318175772794272589534394392746031264670444081753516033697728881939262160411092739851291643204058937963706296491922113101723511167934858782118145248292285503097287197408677481266609153864345096594117058746219705129258472142071000230087401897551019945359538197811083349857852062466260751381180110764576371414416177318369903931906660728104964592162100452863249001972811078257224103373575059590954296386969657634653608326405206578504839111953104930068536407939505792029492073480551991737203482797650197778533782482449028344585332716749065027700136797999296861299230151769511781261757785879874703000216714286143266467415718791154073494253291861867093629331086466868249347797613275509705766604120991043841869782371636716735025783451331603411234214258531400812309062036989938739152986864846614566515019283233697671082723740872353078968856368540478223740696472037636833723582768974746982484376700016265460450511085359814335573056956087791376071185680744887546438875593987359872710360213524026696380427181777108274750296558375249328317876865826312143401618296500628788858401640957435033407857616173028546964401007084190810941939333295709923646142815748131967617436231181378390749422832346759478865891922405609986068768975568703174524537132548658116458704449030709278392304869179631906367650505134143177938608061377669355637393291206985357433029454472137020317890959547631508770796315084674288107655003445184926859030217352529482560162827721833669277864951968615066807984680323088450527501372990177360748927887037106958474102198063908203710780280122779486272624241968065668127167665097191692269803209695391774496444328234975100243573633145667389357719557010466844442619419871533549294520862972941604663248827985046211577528686765615324587375079763679898910866408313538458659812335043833369879338577076160217613236899922160281759974955609835708939535825756946878459265751370716477672570911272968679990149681257838269385732148265014214171412049178479755927537516876234989200345801188109968975336848386968811091126484217418351206773078854829038867962751128554959792569943964558548736946755172749285956840340386761485700603254581778929160692852688735569694175701128246445646394917085515204487131201022105950652435416759641166071102970202842663072280954718161283786082346630103439994836985411695938056253869316483391117660064847788068806787574950983535738408374124260524837652284917529933351281786567043750936209920625517897365423609144322619283104990197579157141256964170591927302411126615415529201999031851371459779313642214055178866796836051830031558425715951813074382052968125583457824837396657727487629638583207752520216039354526203347478533864336254945356292400070259567151700054418767902126690759340021871778593877285337726541115095842565246172283149697892508981451009747766515685816714866620932973880924567663324311558962125301946110722685659587965148707735487573764717930387642176547448015534473134487420361381327390140636828963699920203864792733948150239600452182778535579661842376147910847235511707406200571914891284542535991869872528634702986523616298263736411120241603535134684316058717648342571777433249894053526153092811587288911249918442434639617285113277128132995199610093690198484273028118958275093919597266580784225647737964172950200464023255406435916440162706986512159143850888137131712846890340079173891712050208172244787472048614669802729455324163266516307345321598433664565969315427333774891434782739184253220237538190381304093793223084647303258978389683751322116271653352955779559887811393724063622841487989178684838832720459717562271072107089001083872892358242817096610408591803523370905006403016898092203927141993804543029695035788145706505186307818133643163581602898198988319528911452054869718876710981473744187737363065121228026170932331159158158145994173565365021450483218546575488205768645989635100082591942447317649502803360745835320920763839593758584774024188126276757130694995864396329455446283794002490756364564411807472781464887183829755020756055516410099807445203267681425806829627183930036484442812196952717492112800214775373444950517997016314122783501393636839544641930850151300395643842317091096755518501389556604688610240673095604010270358684436988265960821331133406851671706120733304505783983852587119386256640448956486647348694475743787579802217518756959440392881273658287130148097824383516070570779069890773191196119664084108613649804718097954359517746807557864498739396774130379635746207825261865146000117615365965427812407522932324257733137166453120459753283233921154629293290665454587724613670116365130152343519412408735046827456008337823946593574832840992361435787044196636588858542299152623745459475169456937950512602352907833413250074223613082567047098469345599445582922592991712390144456005685230683467165897652114217087490060181585883307519887798348903489447593846627909019891603740569487850466534335550233080521659697447342804411749913147246028068120643648622562823133609574409870869026483803867448047610596576281379236314796069217250725679268038983627852646596585515302837861673701885895844382127623037253016376940434798334129527467425817247105041408301372251624932103278325253999002523847316843782300456069537139317204644264215129767375994466565857252033929985035813609392104317341547112092265409495586421125088775830010456227196688520568863996662902499968153484294629721339167636229299522970077196588379512168648877289690795616332986131257314823204324172781091506193870000310406681446094692097614271006451321576085390731428882953410355667541523465581796536304298025731322986956665558568205357219621992105630474846200401094321570828502541258875062121380587789120287357932936458976855176435832480608482395033359048461402416177649665538724565435889371895272419280652790591192341367010520675077379570814553162974812420567367223677616651904620806046400882986216563857515832077188073910362173368583422366131754918716824228443451750926127033922004737760544339832377321949576218262889920510106246426779251170342665818361383525134637673728146399290166252132276635711138015405421678312311618343215797820529040846790613064701593146989897229201947923129593772521417347409352059003015010335684780616483563908397553920662367356671769737637064822493412089751437051304569326282246158406985039655490360207083807113678233444508213491405839415727101374321620236187489806599402922513540229144325561849382280060828404654921585345507149423093074610212222266615913202300846283813361866832981731535761687921983230003298355697285915578534031153438577992650667199883383969794226777131775582449075703167146720452319207815401337792639650105964693562661203920491533377011595602213165033606730341639004455656708599605042123189542871857687940709406342178880346202133504221071725726221558314199297074170215530863301562403734397316652801409825933493090199855326492204310734605264346458459311800843774833347933459967399772606570230060487842824639294640133159028270583447788343948245831245140786094431201562247579461135295123961923727370069140504224271212454459843877525635254619707910688956872679130333240071516159372200069321090269441412423755076004308791302349853001601603156245098574185257713207107971784809245771022234955593805811918481623250176104736176806357495304220281508155601117525257398884261208443119706540895591743459718087708090975360151392063334489240052458240046076037503913596765055578610952040138769713748943888783854588003774513785192297172601123970130709522115299979222638219290048252131948092291016784866832339704934098925994568593038482517773062877836061694311423384600124711931883770259548663254962162974681061770647281670109043090380463080699972787477993038385889060838358382832246859397934159686672189788720127056539256087037093267987778068938595092228865716784357262737309686125260764309390360752452163965795730123218160503666102011391294606573725500132123555636617645238472438380550458302444421803592395146758582871821380095157458270278118841060761622551080349990338107026075742737750576308192351253960626626942628393433217356828172342610321363010625686314901734196908868297985564443205458589195239804092722882478356736934671828795357857116165120544300308828770010941912110955777247363516369526267926429159364940348457570334443010200321045362831761039245165243085399897052291844629232164916029037495703764874868577932780993342165199802520936050871266418593792846281617668469883574687644501049096437901415164415474955333277715122231004461930594114767694272232506909028934423909436844372566084547148094419023279197533349220023042692425014478047133226867022098008095227242314748297358675920444578522908786645626266805362717781468130413410504448766235445640705780658937351337471623593399311676183737570177092031648379883956297980122422976395595003239827537524048491301867738363427026531009168006110974776919596597894748317551803126209890255766734521807982063712375594836178103187384400422097018794766489478879009998750307312412460997935667075177214267170665042514172295440664301011151306077088529937496162364516160544983806111820745715120550237802862660883927730803589588898726378189553173021035618406496103668082437696374622657281421884854148835244093829730465630715282698019827883685380512987033661069289762607908253319026666872477727676236553280496373165037575391031339095570638783018153082711155430381136097685806210490978738698566267226339890493502213683207927879056699092886051365676260463382869556156437459839560746057888371587421270182143531638633386625013146413000379378841523578267062105630339427075034651081504504577808493965061496141406161621969381245510909474087178177814126530810336307002565712535954721170443776636341928788684160033962457899809335929789657697541418126151331115961245088729244529627304637224241934661354980675727880658703969462401717019243430110815883420658886184267133533349981292401256937362555044849461741939256581779151555158243306277198408273387839122221856985148995550478048785290472745820328222821801504323805195438877645281090466408132506830124920692021778277230158269710041706180000323940818674854754433730063893985554394661142304197548668004170340233289467929084024481685812681723288191939188516984588528433994300025190213414476630809855169782715317703358242340892341026748619811053785704777893607996989675692674493650934289953993085527476056500596056048393796223728120184546469945445781659047732730614015155236095881676303251239944730090215563723385720000949621088477028054234721879479276592744518238508428137081495692736371444161845938626224912607539678628892584884597331990167480276234195907497713303605785614932774254267917664523830829160856088582863461538231439409986792983032453145291657599211725424128217138825656032304517853723842725602193986967718338213461118297562846668431227344658916967836006035987568118894451239353050092428721532191881672096206585594425428380618446695751873782006277799189592587313543793124996203805516176432090311137446270019659844327236637726501106413396140712139337866781811124414302134351874031310264873177771689678979527212885973718679616428176115308316945200801972052817344435340744890899386040771583274220301145346110551651398442224431345551500486493086287631569907720688845765942677913716555189594540275810739818053301446081736418603074525964375739621006946910874580222503254064819049193396633204739719750619425877471536892045012366221299784125030153630682794604401592262945720120850153502567186632080882212788384471596098045281474485206561751143620466409973811527971242043943253756970878568521204088440691491935836515948958260724209055563625987277979727575447510032745180510463294549306211851588819152537025744366802209070131445495179799262740202720289453757917544652683987239024899509695829294160699993818886374991407569604215721493193910890704899012006566570105515135047063760387480476536936912623924593641720550305204179897357622681967823450418853180804743168831019942628225149023625889574960272569186753439874833231089569419759111020992929077855620158107055796531972800246238557928212078793046117353790837732684201176490027464164537477227532779166289979710500684088372477559938980399043239181968192062257558520214805801047555305370571954164601712457592968917879650754806565991539431881015603629559108645404086962142745821142262084578957443233985446929663489610664733088930386479822382304785831583375077530762610064663886456763272908287139906294325831026067114357812920218783363012654344045802305285581468664347025999189551688465098036648778844104557772012034355495077866443499681099534935142654139018620334131055640081367185577494705885600302111826369338246846622754052981180676592023110752523636655604127845467609469316200915569367074385146239930132114471001067629473029469341711615251148114808686615216493996365534961832203813487980873124587873813504709072980495022660403730468510341953161171984348678908257047994146695304866846063267873756307722005668541125195535466051538137908126186879812337752877958780184319068727883076214552877538274004117721709511182330896092584100701605236537476757020002587629744383048342249412832125478591458357849364160507797990219005704806236289262054751939524792256889780389216301045155477902587103241525498532840041390301144591940517850883265633005472190999112729107847320132556389079292197601339028706535483860691423706867463538583798042130771745569398546438239303327612061532799170674037002503629374395581053952521643556609857646403461291519642831889558964982516801834487718887180589685165198932737196873828283781097118546802789731645751936977368680203338637916663157384654521667350728012818227423077019415707548260635317344356798974317712876378229623645894745336900903346193718374094620554121739692468792307908600067523810118337009856371528191073138511671408689779367705542906299912489493567365663417268137039984250047249908662746884846825557442276368412264535525146755935058403638163016298754973545483123540985208438964694670070352462165140962822439415225963390510200759859231542616788188425625126535080710350457795544826409425083221246340076916284858733337049089310815528117914937856886567199690204077103064961169535804487659881551218022946249808747494626564035642227349728140867436155001414154104735436229352488324974739326353769030671520311489144604644403882942852718033045739832203432701308066829441281248924187717881108207544558365580722139318338610415084512126188933149159523915466260574676379591881758642937306714821362201080889021390841564460987256031404780250757977296517078631840120430539371170178541878575145364487083504306395021802396470377581481840940135357767385261774445865619627265749981853680498930425748951343239092228952562938321463955328877908290439256912109807007746908242696435840813816918147555650424492432198891836424797440840539320267220336773815769544043508127197559573500816302377088190348128238783157488209733986158022107538340911167248931662151351276960981719584486611029036615337602712999530179838992283291493759472966663961491507813273484701185863886648790554037752805838327803120730184673646957405395382573225645318343387486015127776461565125425387254431806711092691148563867679392380136682837106950429832294652867287412564643946069155005950605377748338045736231810572618144684016542975574807582632726903336931341014716369224627566005703558729358927657394077780252732045599043527370237300994517185883079953445113273151509689586504006599886778512622544638008192362053213351498807400109238346689162707892438177483865026040362400071336386696436140173709530388858487526846836196051595610983652236975143970605563974274728583645359989961928709650381948813307965471298290746447580283923228496739679336627039568653899943635925690490753170953210532845744282062946763984908384353908653776395455009748846067026665745311033621432052788361345117245315840659653974967484717591845844547679037706275224374531417968428563313458231660584364911891572992853279522056671532307051174312448568193278839999826816842312742196381490714863119377833071052741503493135981453072977300604668627213648988265836340811037687972509074716891776849154781117862084361514752410836114316192758788525455293419462404675530403081028164228361183672637049390179500664030193903211664783051361594882316274758222066252448363229085232776292207904461198502817053707100612233320103804683941448682452195392416038937756518895333110288794275441597614242360532147443903161020849507635752701351003692451321302866427062508594634272871985515416440198762115838025616892808005992051014278824403858098344006107587329083903177019968110592580639946708059513755450447030496798034843341678383350146751410625943630794036743305322175141715223032199846046689919732287069390173914871747315160193372098324846521772416432380943265213057337519212250886048432537704772569132993182186470108258855002279900891556881320492030332781089588689197985021056216481560538071409534285270829698472423212550569282225029920307264495639974221335547112605059311791588915278539948177935483090250651130264145137795220290024403711033889214875324014775470259683835263529674465539409848524478491954432769114269370066060236575718240967787029013821907256109903007695076090292983610654262481833397509884329892640906167794096782768685245310099457746347361725330081174689508485225305849375856626703329586432862525454345708689770549903369011425163087877316434914417099506910901575530270546270141846317172876649167660497138062557478235411956625784816244348954875389471833749671112514567926907060190730821858941558569495673950456966271567533565194744825908445036240517411141478902344972820530183882993149367658902519781129778971801500022065361446483260942746940438433682846263346008156550592825444841649380829354649732697410274690040573730559222761766337856428778772267887411152843041403453772654406853399939253553585347125712770171441302392861276119105684675689645708119963684193250474423486594823706809516785402156014172727655557245965172096517970778572360820906098024219376129554955215635107064354810905017041223438191178634528376624927163235402503570504158745343101527133463955211732221143633562965976023745588648135341846832472354277487715708913863103041990575620286115379043189931402392311870628291575572830199148003571041854324680679644934823937243759979870663734577276899548203209743347699729675394746791839331539046617433155209891218418325182890858327903066381714997526975132823115168128642142824523859253251091452332628983186627942253123904178548192951595501576573913206635561805071182177716095430832771461017355831901753829926997263666873239701161469446750939897879706413548563562917547803799983869329690750144518008092839723739993765755605612663958355565058734908736780469099387186020646761688494180266492529681342715823750184082791341437363965143614215258331344839575401739480604285996195323436965174655433687168296073641183698047889065287068384327690497321583379728313665825445501466506245439346252007341222157890838362458571150043992570184192677729067599580001121686153701101996688839491527168662227830664008349578213592643161034789737974211387751959972280845258094833069313291270317249705159944748809795305273880830558869321893283495439910366955857138054213091063951563207804055946526409117956037995409111030893574636148771488744806433688895674925936309159845508981761521126856823513261077012985403532500928636433127669732559745361974446935548568289528312216644531910165254368663919792669297452533829270239871394044768250702613088823985435568169730633043044485497296372414966338000867687347346435654827685325906022481290730410258687746538864885807794000449488398019967623077403584459756782706468662826329983554591902187163858284131304017760744217140310305252804871108589452389387052297416067921533480166049904707085749832806799310197245651201020789624275988502872791857138959966250749427826392652077897182237162493895058896564234621620828593288434271598134957055513422101104765843177920338311680586759381498552373222560597537766787686098500669594199464714809650974651344684149500285788615712678947183887724680105891775682429235174950007702957946803598375137371344278443230855475510682409755147321258030656107179374447585864599353620508121135950314088943443000000541549185021342847665415481147325514952987913948718183923591063084157620005591130377252877583176056663678492478072728501020739572848196939198562247490766590094854776877569949794765756672412166680603673021286427069715052597013296520414694768023845461402743308959229378196284238900190995174391791442001342582426899505499350202857666380606106759600825382200592556012970716123401809222283724217238056081085541344590762623187988878248099499662086860458176422019105276558327234828500271691418071638746005448653800045740391880912668326998403698106595337600678028082591856634518127369339271002126378884450903851263281774766104011888454183718666460763931521821773443828546804012468919718576150609150487530063979263297103418683330834460221097231443999730728839819299590001128430358170983079390679943846174269179364921121927930543280741762655931919961675555077601633586501075834754803997864329370212941227904324830362642201151673513288041452940130125365588068663550176308704792621842897086945060842657087769185229102040418681923320897652629382382959569714219990443949361987917995204850655723933451633224301721638154873333519461182034732276978666548148775095283574851245290116388690753735087924689831316379828858372448151030582780976131900168035315894742204779648465031842865164620310373911709000212098526047604751819898182344460759388699079844470959964483918078726287618310651504181872698088214062144261595094263812869252417732857158124852282447045436487219225986373605870839533554200819094711566071455694834885860634623331839712854234754334486141325362998704980917658246742383114550802878643880589193676801077824543129674055152685848236975164211253456862053604524274493359954965192269194015249191053401464651353683476659841770007200194639940614880269686380114138984452260706332376782061180186118433274300571970340566445657035377569742660438281908631966276817173729244695922442270076179305720806550513913398522808142454126082683368051125139715241419116525622383107437315668508633454908493892731519532029135429998706185086400122226158731826224699459671372444168531381237398627778250996817111584113177123230757664519959527359383089663709427743921750008623740730482110184298049522304438541042429552957710823832056094268510419797781894057480010540210509545309638142381903296244386633898138906921858333728052428264597357576264546716884271021216531268019282106551768839451038630970122952216418463253162620596713877431868036415758585786231816398449175817103560312203466633598778918569262763092465542813036796322824467429338289906921375135219100112276017589009684892225051836562797750434761980034488529538164266494648668697435354887833652537327209488542639242475940174355655436114049004910390346637618512840730198747565405991831281031544093954506588325558269965755930564959722919632058820416431806187532186560171575930771351067008129294922378826190664358212312107423824311182086135845285869350358786464478126822028549351685913249897119598760597740663757082841056184019055637346158905650387622962958517621410005076796820798794948559020301810749118648077800527145203826678704912162743161267551416111917139889836364583079922455447057101830743511431266412497936173472599329291661625184589998483862280433314156696972148227695866073306795779385557192856761107247292979259806825773527458883378573656820047896712780857946885599432888996544184799180755397445708436829468690003323024604325381736082307372716188526841246952855173225547383702238231171822840246487377258244165494173821801464091144089933168740737452905843107842300185474122589639178224218795223673778515580559294721215549007398702141309786307867460570486588075248820250671129362559835538123040225699468920967644899231417705930800747639097251560057701513989562705517404740739006816561819894882368282792557697259050091109322604341864524674237551728866671899811211781433607675321398237603043536240423165128671298402442629468507043213221288818433318480642449057650942867158743655674105496546337904674717482765996355273167398103334860782553980621617142194777292399371382210976847747788681122857476512025210846054309116531487257132322284415707517025257822015711539408953982536594948142250735785852384500254334471551887653053759656459954955305520726560877062979606306958187039136182681934143938916117293661758209998019686986204389007920228556700220960870737388981010271850537372964654659991426399901102263020349446624686459950276576432854973473889661882197858831011069687673008081404984739785776940317802739593565354104546313973888012526523130590699759413616189152004476494635749392338467718314632289888837785405473046946417759328495610833742893607249633039041537122966761757795939493590541386101395277795482927881380536894789927462116942185913154096954707707599517773517530939749108434859013128556936885153882182403045036907606792025734737881719011188349469889791729230980458439777037891927287889541576374896636506368490844499822581847243870157066746296262395859012805131323745013636710681096171019048984342726834516157161455774953390445125588003175077393630628924816668278153567330894182486711376774607664918746540246602243011971178022438299779472672735157089680902960603139432523759575681086223657600484367080323131672445040498375829858515398197980128493129553493627264030484434906694469707694541795874822894993179213540724461649070517138742104998974239745455532975174967837839331231106783892505766446194890333999215258452368452024853403714236114137339132254780980747656377079248877459015233336902391877167649754668691240573839342706457708291557149485746468460581808432870901397577837730418128291412285786420556147422926996249311620682009166217588632584826773846245252176876523490016406286815968766341387196030240736002850490149097299515556175308884905497665936941803530567882858274644122906495858972450235352706775130135470807422431141519917540727064856943168746375133836563119596093485166544309311086553563673095362268312000962441682617620498318608358513152043237150826794785789057638646726348680762266995374833821346785151412082973310109541317633458039981299561889454435778217738976373591072667164882480115336762117652994544277534407203419047900358918921555088700144657628907480522966609252387827656546651060464994674143065610214522944129683849548524714838648232301342669963843784571481723733473375052844573241067395039485565634662821896374920179828177118284639703778206308955662437418489613545911103424727823852459171547519776700486154011684519474051226844970651163550088236590056251487747933220230727933908247387965789249772132977573818045532816449731682281796988013043295761471582067709121640478072892204554023811063061025877940327759421565697410105206697325492419041058476623301013169505736427242669600667177194340222839410300996813250341025881720881652104958744062190940715399749569338777915998140424339940056161355901314704660246095333112461833295836274405815544226182817856077340604098812478057962289136556864105062981782955829502775856663699661134257639738925400988552139098452179230623901877029096351919800081880355868838334114064683156541052907362789356589568531439010967362794678815073977096527968101943931981689737795594498794570058657031278381733528371628079108505377239148866666356426224825079856730627906217401177848976512135342594828066099660097557358538025738713494937311585326976515324692126698469517159265499078125959823120796497720765325900023604533538558724771278687649765306711419632946915034324513798610419044674710678896902730733599591055578423593683747703480601909982852305268988304997844122561473867414014452438289182324457834642222590212026893577622652306744926341923971290263684844584910252588880171696599358465302511884934497293396110850798976411752120174512759768121498871672068958659407948913949615746004358448421460217583352366294414298482028944572462356883518892440444966164131833209584706462019921821548441922389177769763605009673634792166225295202908950236717675955359206155972618107708668903418791860967801052523366270076983246336517666854366157047788520984071160611878364625926268078175723441814596376857472080521473703339173311669407132488156764878184679965931650913988954300803801812278778989853840643713046162640335147915174858843032941877524938337466798594663398315584552406258119052082596911487743650339950119690934158579554524170665189419988814276683874960426774750460607344525361402304242229747396097918724931675967087606512076961977457397810906480308667836726660885386032510577512183612341344652334545750491824166896152572536026240926844581845045802995417863305697718129436577422541492440784613114640356496565710937880986220237757430679781348972676462164516989484346612320083703026703972775425704367870982048294639054272253192854418247781145822464922745062747968743673015597928304528049624985964794007976911395711034031905596962076002592661586506873882146735606610083947227198651999956017473534445943835891817503493794303092586888188067273191271750884288960320891228037531276410525586640351948570534135209402718365663787561167242278089558952069316126661814487206057092186996314339878734041636624042125861757845096166432992991214962742789028590766227119358639708793090367423948429288150014576669885684436207079640941993962543812751710480345701826972058503119865113419560415679821875902180775282032250681811434135962912724294158899849805544676066444521030532327841825309501883593680187364722266002620546401969148895148038569496004926968334702877137639115169816102460411208362384987623324769292845691784402140148202262617833806793461795151436671845959282189551298542880911054237541703995085067083568722239737098600027494365364745389698975655516835197447062672279006802842332924533814671906382348454135948981163758838972891929510226866057352165663711656035383998724126850705266413594995558725178763483076083767448556090830346729441072848415967548137154617299630771620907640879067318563151781353225247845846846957490628862132451967743140391313562106541019009754179404771022986660624293040450389948031171576432012572115762486489321148745069407325856370878017812058168848824894838873857674763271807209720342244719381759503944930821190241102377041283950359300187839416719782901447981603214155605539726277699417608499258820503230653317636291509287424624889025461466171216253921542112071132554086015440249249102095322383759749627891699539256179363913867335682001110478036998763136915793845427036767770802513446483009788093621871795501294610874455372333651490976165644848352340791208652329921132579040069588062812986218852913054549643653290741231296522875309189420249241405335966857807471010573640951259277214578652389407459135466219017978630568127848313469767452987450148989138313400691160680749764425188620841588478420160860762819307005141394667868118467988800802349774783937565066001680379684265656122764890193831392954182156453066170914078976170087536254855643640983269035433423575618445595950483188009184662610235896630213966326338108598445622378534034370251728010201411011424251293480113932891280184712352476703288500232591470405402245809530081846716720418053632788380799936320878050611568601176627031548740092281980283828123400766916810439710153217330524585353692104975668443248943986649820906486136073085574163181043763802294202323556314167518770640305273242204859479965374889433378807130176081330076140338790239711430637352777610123628477004864066365581202041019784103217358488660211011027960319000758005479439532170714204911870188002845046897751540260311589022184744280618720740471080676906359106559247320629061917615564640496104579641659820788785478333848602176026329026772894119569555869678662557972856317092851531136691687447248613731788030374232289651996306476772920322690075284224519496487338628237197960334409995248991463362816094858324793882711933137913425547406251560623268544348213844165859333050757054498009255037296606159965245231747151488274670841605414051012225159306280510672802039608429139581828452843403881044207424403464142429656337757274687501245831216333476735260871249971191237501223006329125043064255131020479724901907208536791691932789852457090461554351494198987513943621341395959170470085511070488197991477208481689321585205710727646312756091192859960040666857884596632290597411864322157187161814187680603860960349460620958889347892096669677226176017618729385347423232858808545263173872963761556617027758134580522990870330237465753866914898919383452963378900942926389462443755765864438245661106092092944815474838788606167455691617899177416434766765570753030643066210638658852222769080371033418315349613369811067184407210513179834374091646416929209568846906725768175302276234447643833097707361865357024654195761970081298669381525486379868504161881789129417529194990344833066557943964858268272920329635960504497025350463312929381892666868539536064331086344689771349228876238003928216273673669960259043878050898886521851446555628874266103171066061052520690230412699233340309382293796297847082793019564115487959044446558767273067722084026832872277890774146535912372225780132360202790914754261972908746951180268537868185215192492924782636687366795957876543899977761213525111404188072759238352625579015569579331717014691526929039951019588094443996200761591663144391704815807517801176018413013816901392953667814965414092887016631886185233782583073646732652892067285407238300155151125437662620190554652375203744331907475557221429596844446860038623575757246349296654231061076263388477201151398982361063820112323757816680341197871888418661377373190401076926707247153465389172541395918703910490147475050371126876044963956443181680941194791989024232588828608388242193497838808838637739815521143386272200346192324644189545841120917737945772081144534732305253315224367932563216485712955387522744541632755162088072459834732869663022271072795646767126654445804510505842088438262691567339421943963671968403777539403203752035643522976998754532950944423830258610597243632680798180025438432374812243858642170656664374968439046947916938930103358554102142257270952525603986115494661063160796396192431714520249035119976174948441620013850020568623452564845862139485784329753123510877970330998723278199227602810519119091628082136834841016093043742325583729082746956064113859278637002215408434336997863359012601205455492157602328582858504971276582800543835253433248514502124440910111294248891055508666397267045502199626043744010609645409970798087832929345409891425458446740805293810975430923744390757262719002978017667219019918162590420695074447248745638924916319160279487614645490801749529111619259690780851271046996256042008239960321470796232948941470493411213178926740392242759338121293809743300011711322257694860944977209403117710279162137417764259239733010276943081166581246991048649789495768982159620220971968924068509357502151623450560611211912646899776785003593751221705520533972409618590678822378955695108385988289566263911516916319849972071496251667741359144247416817010481639508255512281107744658749705627982712050623910855137800268866878750715354173821060158857516883959205862721174987458014880436597443074847945947600800524754679946813178973802312064957066754720193151333391620115819880144082242455958671821393372410857907968426508723361105378544239111758617173255645595721071498762006508600645231925413179859446918849932260468051200968940928582303006690301609925208892134602424099008136960559185936260842142101134575115149450767513319628694160164131120729364785589839126180312595636956288728128704724633533908433274787957842695139861403045719655861696135631378503252007807556300128420246989051190046178676201463308546296892290124687878403339195881918406407179330038920324464043394441232161252719292002015538940914980371789084516969441518480599047986506470258894258779719893572038722276470724248160201776856046585650194808311799264850833166957404200732565665086124036607732348894374749390980426612962388008449263311316671370506399641639912740443316475227984502852088637822780595815299641755553903006693176445119876231296614143374846176514266669759176401387846520809130037427335574568284329345850607088149308757385649152306819523419669642979497935289061849603767571019215763055283147957954440122874889332710190378387399442527125247341328866985924803514705761129981456720679334392934451373866821979306544899569587915051749173370351793735701553907577692152139341493202512956239033599873593485912533916476395405006153709444296739402707511300546984503305411984803495996489149209075890351974473027003456374844117976033565548643713933127988670134081920762287148863596765565924693310852416954031389815207128320555693855093011648698078696831402146436971217879171715709050753227889630903102197134878083196401678639980812128951167176860373146259676633685069750780134751117715541223632903254719603599388820393467397479437738105022429555494647138070436277671466926670270585952203224543372062013467408042967624471636682936547369097649214554880762812204240477050740574286264814560205648738265598942038276402490361788619967675644273331340057324857952712185694675376055641382846474281167765766637740983877768586191580221351166341280886817133891338723305615817389110616119708697200479114578595151666042065745030269245698137996395142689575928324679058198364563180295915254067028767706102077015533570184334567451993757723886016566218796423720520193449437721425305790374594214413903902811700169701145075159155213104253469632234807867331456094783902640567560791884720710780493509666683371699575049381482261096775243443728269803690742886434173345944466937258821457318889058497017835850224995308171219656698922517091546656420283411261280775952926678897202493078376885189942878663950871310156388235118649982147321075632328469559651602028500896431814175610155963773676174368699596665130226850038575623532937842820319661436948840158248726276358796323111086196666162512088515039352374314016095710782227414460203843901088071291586073975910460966807781265956743906299661822720597480710635413408323994037212099375682094647901253664696252149383454050512104317567607647449589433370936143556747217442152980956222663843270728921960089675789938545321264083386568166678989257224776448245528942320341173327695745356825093711658404570697897608198874953359870280843127467720349608437021688427676611851788522041343543412750903382537911267433359980923047812603410775158913495579391196816436741556355547076453525961189034855578441841104461019743121184787707039606548599338891719473411972031941073423530754052921305996693437505057980841543797752356430315996957817314622515467692107332750564784405051077705155166859656008285801781985940880603386372432553993143688584571265416280431831604765667271961938391737347470961985655779603265257091592462393174914697164520199232412796054777268844319026497776860439384942608402284058872867200495926693623663196334396234131127718371019649216057468513984676969792409806828860693550887852254085954510675711775820737252098669640792620013988396651629382489031113359902656710120884157644731740516915049614222905148777808846652753269157444785042357947839168137851466574744193163232251829048121355257394395010799842653376650870564724255929314620629484690025787142912089648212838730235196760621124304783485560591085452410194742908572206039546845166445536725395249916246307768914261552399759492720887301535242133574972970598087426896775369496794074412198944488089020436388635713312860808156476165728214810048417719938105043243784823375613554652622174993710959709096424889836111759225370547014074014981943791490057194173858705539391102450387967311812503845919102484909205380821793885469925260613557072713182659045396709245471838456896123565272289639360750947519907042644593029694886718500734878484828067477558583267620174948045460925381311552011740457374705470133900795456818474742657563813505163252160279381484613210435225606334879355631421269682596726206808685433245470026544562540006927475601851487554783424580559237902955621080145624498974010397487413697338898993913264055738148922019586059961605100024996198072803385821330479146932959314960235713857858465506245209505478654200774504014284235611502409238022487006555493024633382942145727576295489023672034245331003289345055746993594224080596327365372295491294855717914517811179431231721453164517609942585080083094076647068123450795707021776948872199460255163801832866732373562965150107741563095012010095832982580999498591087995523871343754996299328642034076894336668721356653429634539972894288505396345019088088239748331884870404313729311235232585297476945476945353081820315774029130377670263615230808325500291653917766472710981241873641675224854243717473914517051088080996899837739765820949394062344970319240582118337095448131580720255534496249298971944418231532314438001072599225733268672607726666307890240572215169649756054130458453590359408622812567169314892616323647072810026301682282804611737453461547395562978531451268725627056933620616426122060231428849859710395584544370566760860090883164416268853981037302514237718031162478605899970354128095885570524310894324862669429659178380958512664421518181175695916028175760592288308938913344523621407590359438351741761804503188794198793466393697605256713887012314130283091289516413942617251691269910694617973346781049702194471123816266446844609490511352591891814392623828942848507306460839459443082961626227113862418242675795313700268829410868447300882191834608144250958497815968707525597373752077299288681651328487423026445702270236770528453367522584001252743990111599064858476705467082032814668156006936496059417792834612533780889041570137020763551629460375461353796999245544826693258073443158044444677454251980843764313972174007542816661378437663005142476975447600330891073993264555039328466928005913417302502635378021793395486863990343310448401395774331143980539058372983980896828405412479124533848186521854095173649536613436387387893032145590427922933409006148959998179427516556268562653225373598466461145663775203670624729256391422462505239810383097837918501309992959288239395736215454815073819676666817284559049949137737768339863382837269207633846127801174923899635613072903753072568426754274964656398203793184901092198429161488772767620278379265309951521795164960722640027942465340664315702971355309227079908392139434421511568747619901081038711843115257779152872901879151625727270002210912021897340701428670357567891710780308185286158654641186854194144605872991557372063784141831598952606028464852526751907187328986422908852918839872558605161919376690519949197074053605523810415039178766825434535652898828716799672663606914785635838994639640127587511601572761862998766682340762659722964288486181000040937793245960184506662840856258316889042260264953805598585801047244847274020517434061330837316178880963134181863325216339525738661041358365472996565720273708910073638278406502131081136594055450391715524054776523257258584157022064141517761938786817209657327558951601646412634116680046961775727539064784346186895171964278303227411425971143796597363238473859569694336883472161258201637343457022368005866111800737815400540667525326290161438075924791598660015242957960274423984242397129152192827588379100897537452683707988581366321167505252951783607310437117782109234229883050138218729509977261476199542459895081375180883056222047422984536803050543385610708134722270924929131542752583341495297712559447816107902938567697598972719006346474023027479813369565424652647268045514338589544819152181744736874270080459251825781483366300339250116035481272264647320930788901602980547697635874089127189410092884004812348870642899004008114305692232053094243642141663379767409357707377526430703686941471232167029404043029069809947995936138954346819050171536405948130160716099245692385422298321416459381531486560600431621080703367516960656732916098576736483780094093001965645002830299380022321307619873263626863010409978089060880677302546774098626181888366967260421695912434248213465820596041282716070317773558690544298663801075692025468591766732404235456571538136068414685457933020973442361828169271848680511651695515220149455402179591141128534993847613375866601561336717579791810613022991060410512003081401236123073514996834461989038163757911782805950975466806619377516836264880761921834679448258571927243136935894954753030148449583307940122794509708330258763488111955803766001727523518105766173029149682418304886351295450861163406891237815112972485680373369699239410365826002480779564717949536494443550020144330371207807225486048967508941187588536377159115482585869450291902705127970727057668862337808443341348090158565880550920254047728293126485045724616506692098305267514572633529383711656985015355814022606181028160028873184179398250738928284402398670934887627949100762655974175082079639225693030983801951515516792703220443652403567243338393618167724928963339643759055322292169054140647723762468085422156111071638792723799026751270313495214707036094843468512456945638048338874324169698600367218870725444263219062734437505775847235660716176149651497322305322938816471943684159350327179050891738608670896974097823960374864989542927898133292786891714391819625426643027407731579998886901281556442733514665097456851577381911209445840018154587831348693764235184584584068460002221849333330036646206816322345725941781016438319659365536306348281830059309616323234925473924461313841572971103648108465442163001287111105624372936976644088103435286663914619793870500881730170029844183231022658488819347776065289071724833448892863357339401186022654758952560024687085438971500563086003860067244313278377939155603656773558570373185467947995006471319319074057381641814921119770084338290980492022652089731907889735978725091988078415645215985114536762641519024162918606685911475052425550984201442514611745922512727328303475737175714868565725738764333093232315935401909326430280361787828200392715305234255495585340069248268868023036084305093745744858802405594737732251210780264900523350562686075619015131301672891926956674274300638854630722263251014899395418056509765810018146605845939760283036422516086770741367421347947547354830396486538127727976912959830056560002671952949445161584956290518498946672970740704636612130872920569746978327932198481031818242888018035993093011691843855935741427131772884828459503858586282970165683632958540134673322286010928935511642439515136827804669369284859302387333310929631775585916019440542767834790198143852505950868166555596948135500623041649050222688098945037935330210597828932122870383203803100373132345856614473437946963331372995297234927289330308269392869043782451582688875138765428706279446131818419351787623145190175986753945550767237986143191089872927735907100895060416746350552209289964607828620107851546815110204712517839213690396146795412049379955461927379681017394444881582425735651533804658190968018186504527234963529273160165888230760237886608818142321453448814670766749713337707445447805491656223541169210327750671874965481169130974321449319060851971653198106941915167173756170071455279518129543755994141602141180392352861517158160496000633079765761401246480977815615028739632252941081448407108609447769530565916736784465653761455409678299558142439171928810695211330058589718522864536268270272164852802155954434359793987007802830546460255199944148418954467622220199364770382075223701116189598260321611243761940894488663035997712612806210104985923086964647093424655831859445860257320553382575066324111558298176700155161803635968977364230624163867858770749034003932698104197566801790306539997040464846463300683631102964262213031804777271352697457767705902885030796701615002554745619882356318066281573615688142264717763104753809614285781155884326518330301627533167654239804827499700307609270497140358298197826013760171743142696942957447376237298472479820749378729927212953580370919696564379258981494911270426635885885254430609637261206618160891606352662426491081852750832059755896348201714261646346364958952859832082310409528194111466524840627257977862057741415554755348368936916260800264283952194976956905903127230391744128087996055908698445226829392989375175090353050302267091735427578031858538688536243473278584132851952840518537252874707920365718971488061788815296080179895821229676104993195125885075113402228901311181361711177667933029634905000451586228916544797906119911571640571230444452082036698064255231368160588118074448046188445560429478530308131770619996247298817463170791724127219837607457434399520144565572054245886160274930186603712962223123713369645420680213686689841611742449026074722904096129415021184394227365032558933358195206797432606287043209123871144267385817391931638751213140960008326014307066273269557668185348908782224917753742004684809864426622450822622998951636221953663003883339353822982172043411666120322818695557510408017834401533539733534888310913465161813869261657228796090250672803719095189852628713822804768793959941018684461046094487467414493755248481417833084463775374287730188187943788202266728769105581873759682281280408492926797763981880726483989596127776053622216174798784205895489669617702336872638591063985346323255572304105381774660824898813672185654767122431154296910239162251255004574892230799912398203896067800179416560585755300519684593475005815729945134952638221132998684742557736934726157154389289822936223843482004452764374032922299635137144526347865185201997931396012002775791067007626265508773285967111188217425667513161044813154315157788970803236050061301335829149104990610993057934958176814201588079571985231523431021584043307531268327899782602504216318023870504565192008668281724325166620423164049488599207606355438498539097306341638587352316726235212607716213976260078801295235928112123156149767011969989552957349848348092298933738738699132809083485592817651278885443338161171376112960312223857268831672333925302479782491620332577826605403209494658032848468296785531957270473789019149599125225610550689761346384841117745561128482506037424765660775573600943973565612202659885212444779202438818446809995433222100207377351656929128867274655800216799810476499785875099016080711540553891900278146910785057432749689132518013794864021733619536968569116305983159108376132003019035112889822693585299155079020901010336513742912020696527118533634869860030902788117656966056629886541292622981363330221462198544829120344815683931360734751344951534839604798479702080328112150459395169119412150765134837230843698573619027766773194820024979287169336481788914896194717080002414870523509441151841307476050323464672706608638299774722557403039255695582283289392473356382585746817974943908078475581320396688156949047644829459666105089101729081469432244255870799666619066454287636263362442684467492365224888569417390744699258414716220940896140935091848662970532068278199694789438292999827773340002041877145152110853033109848940136519322775755680163729073023460297991386086843102467374860169844183118089755352324389246002886486074370315683369627519748114849955889394722937540296062753353196234532548383643681775587573426226177137069987049412799988259134466725892502341100519105920458819517720869227720515445582917012440939778455696125103352501296611145818700348936893720896560550386475817128126027104669740502079205708257656881950973734428115056020107654566792889929358999890064735240265762906030021017838343917303773986229226883271019073364091371729794581954942725163738402559382251937070611874928058595823387762570242012508673319097569751441673611494773947267248172156160837707580504701444648586767346320515718157024032694495519083551701182213155537326232140631673506459820626420694542250626455894628185976417353341988702884922693523424865385021717614851091088124640984725785536763325581148967829623801302719836979077832346382811231761196524444157583719932802186843072667836727881766850927811809104509946477961511084238296470737649339082474062545364522792259062125754815681035934578526265866001019547934827403986563860640064152832028806748043434253135306870334941171186402549177529973695891970051334939066578442884999992339158375188726623587775586355772801102217230449889676591727723024384261001602830519628431197290937168448681489270952116834832760182723591600271954930607488704769790944189364940997847953214059901449520668717743851231452369552083484323780608302451044609715232900988244166519671788369271473865027139130665220305509573697760944981186459624476123485139052454859075947522977486864674340452667786541630852338368748127705955914812046093056763036939161082973408017006419364572040933906091757968454184768336891983269306091832052499668689801601616910219189016701490815176240284088916688328684155011896354843293560809538426550801709248711743545614929220802841182328920968779029622989437783020079868251489031038223446213926950832266826762411341834281712756054263690406033227863885107206189928237679721186126559899431635876473647706264662035640491413800108793645033904782712513844314470923245692094973468571308273216128776784708056118140468219964102134211790778876261903487381405674986489931314597968547200185171769089090835581946949060761441861622601788074405442762960997200411249479097790945799462307264428087409382022164633312766822673992304036326508058773320537466034605889580005571351873104309482694040076807686364773032157276033385741597300236914188042310236109765174343603767092789590561397451481962697677191099942867760021441311923977496763360624010297543222261639173575464931281532322754003066184498561546487217509216224408678457362037594188211126254570084303986899769777207454897310372535414823440276512223521619752166592013267798505537174029537217474891414883601086110211985584355352830859297598046984697006354915329484924875429083492054206685526482761527313126975747560969485022001913304612504357602574375739403454252910983131049631464857670648344873069140717606968542256358750486698288139102688479031888405937086980769348100354561982350899302890656405322254918847334064299901860031856721221956657039909584456253709703234860175498562543692498881168468393963292745766490071942994764293248121071555286273431565320380691307809987528716659155896814915385721355989962422292099562937828397275190087771882076387497571309438752696976929790970711230084387809398644471076965266516785242768775572700865617960481791763389234615058812769612733895626323002416611605668276971527118930540952469397814073118764708017665834515812835145625921031473890134314992779989155527392062885047897367616787704448998948787241959740352517117716594997591561482268126935226490406358510028458241637868047672973923346139110797097892631351108368964004297932721708762115365994884646265559037737250321699720070307154325529437624931050393275649036498027397557454273173110240983762268174847317643825085135815997135442093964414771172534688072739022675023965235462650018290228135938695126134761978675460304500077487192491274738794564414591577715714102327764670363004274009666816910231566625995490425908522880595420562815750533733391858178928607492255499836647105341814406202746246954336483128391252802789179057524819566769530955092535030039720466545906983950897791646572539052744337865594331130650084404862957293160725235160925201993817559649347743267407287909516093637042668611901806940967324373867625161744650437174153699413237023100935596723979733633326487956266358937734872979541687421476584833933319304154472716976016106029910228261973505921203979945592502380646471240960162651721536013519022722477358340980246661286791702571190799468016735791445575078350800744048026162824360311619810561039324407461896812271965544510643893239916127529329109082608441667767219941186193626891685469529800115033592345816887391163626035709790922796652229811208135563748606408915292888491695904285834219661832619831205391812762971592808365483222619688786157429505121068130033102361143154244479949873761600875470003897792939787678270617091789573860364367331916492186144617892349320326964430429185325751407661060183719124601375296125285525900128763156796619578688378196862063727737392845777690571561208864829896770397276577045351000907033964820923842888524397165369431474955264513368393958567949432482960408655081127025886365607733691119818829674826608313093198151847139560616690908837955539227817607147666452707176760254557771926285109203059684390632701794862465509154162233064172899813021469586872508269051441885623388990919216930506759563838346796046336417727357692516591014771969669119782977400643787578111204638154285581984491936392425115363507342201095002663640581467622559332695093335045776616745028148233872027867803863788305620956424214247305809884434178673597403224917408560923480287046359300681836634990980935315062826110776781430087841867390053822051203224774796107217664769729161246080046121483095739232498870178864361281878052031400120829228104766121179371013825413318149092591254149245239986682227822866898199420384619357689464546203049611285476419399789517568329195701532978924325515208065031381267628278046807725518324438423863002249447197594096118232182184550883924663095836719848423881593446046139233696528700968244531370026506534218693601728574558127639863820276538437397700442839709855697222134971890107006589248906983184779658796227701404848905017088389056835158354513773614274718220227273516166091617731548505253981630633461819245150081342619840255680950551208417143059024463419035273894741651735485689325451964700143002975605494884707219901888211950393757377923937739146398416119695144538664860105263613834229938742560379597592560205972164644653240813469528621244618766066703150464362592766143558390427448417002483659493928579162661140648006840757633026103694178810694609150923861270398537822140804594314608975689182427551654950684511777932135403163073812440984501521342104174317286514013751454089606877990072612193268860630253456989424491175945535785532969303156349913503701754084854889201485054448914447451944304492808766823003812307945339123072115820050474717542059905010364804581515558958696841969043956640914577672473642548156006119267386138866191351708329438884402578612278713524621604001786658656976835253829146724966077131613679193127885986591154148156587459276527011862096839882732831258076969363630627000996518995726693673938419555739689874528745027376392673314090169900926828375939822020589875790280219788085040644730629830685580884920212825431741065375929397615744803140017314021248257007337415918365508781526836621706644561767908582513356588618464465476108645863988845375702612383403291325339659487298391787947230916146523961641718032755765302180475959749582779463645706559616389021046176493996123519905992102975805572610645123406858976695335980532281878472739861976584535410863777669072652673203838831127749509613793222087403129527323482353226100354412268898357203546094782562213374424584677506598057200539550269536169036187715133377736175278770115060114098051036996450859523290396501983338638920867592683473319308485912307213654517368764544158120022750977468512309842037566871426725182030915984503964443546520838494762226001505802091415099908787656035713189046223844339826701992243678523380539778939160794756055358701531050173758443721983677375612803249278826024132321224537451924302833847411575085428911450501941264119584897404806037857152568708100163537384044082027501342125707742064337169239773729909281396174703706201607090444110348425911131465882529638370752744149742788571467570178027983360707378061869051561884953368319064516981451029907242129924432295652346492204402881488075966582079370708612629057159912045782731429317640544508240739425866278038266846295482742263500776564367106226538488663503867665829960040002682393910736573966469167742435776122147019080773559907210226543418190332541233714105418431268634148745464443602237739811800567772508547209456867884510391787038539846911104275231708913544185249824859437033917457102962310216531134927151627532979070092930744615069840107013333496798303565365217871431128141604987534827551492337543884399494628833358709574922539675587791752905048437514120886897331367355245934812755713776194350455308669955021010699628636898696126421180018508124930617652019329193727400697333537481294344850574141975240170940428685067323933313372142442942612053505923693880009097300136542192278294746477484544561718984753780139428281839696448594051581319129432673718832789327869395641404597463478361104687525754413519309418987346599007440619378945905716859195685389662022322363907366441352260408547851594750073358430993729179895338633970601618746466857060926162140131907179279587636219275385975295054361421939852595122284385258935738742199254773940950534181416959474989251922099818347703545801737642277791585928746553611592591143493321649616539246116795557815720683669577952552202410668649201315650697384179100365558132442723995001009868206393438658762655441312135087732130973558884860595457778808772658075178508856295646387540952625787859692198908309775506587059528776208130604677430514566020183415720678842159484353848468286998928566971800400548941277236082472857109882493391297420274331420156846698604359581961038674658268972090495977970799915432538385227564269905030059598141262380432086233497358968903494035479975142543060659442620851216120841487491246163430305120703804165628001261911845445890615350986107093506380977608699282098484842484713765665160360752346857837206910567234410985461411476020737857855359314045378175190098115803047967717511693317364785029863136439008760103284678737314806652989961386011257052490300130451623542463604768142561038249758578691507222136584542650334574111934617924318979962459773384426557002281332020213261728989107333432943308890990239818837436265598223313062170635277382862385359255520393987000639655030638158558274410268149852000997849768315180351941203971462312001395472600492170509749698255581759999341055928240431997783619474622883043708855525483607224975446013045088763921963082746412277863274619694894893902905434470307860990191098541308298848753062888659594307974159308013491347300035351980373053375293343904924390271008910302158646711491031505886413508502031431627186032834247852835465531927402104482920020308626768748510201645367124177654500950772030007696899835491454301642703489987301471573568387074048420202427208766120332051348633555021156602526146388722525972797355188095819109907236591974426896211782854699139215589680636439857283451103314577780949131917638732830894740856220047727403688881887089109791278013269650100640150224160764097322331664900860551677490845635121771840365962718614062791399837897414507969054131486022239633369074894639257951097349543836967324965052745210142067958287583563781799784300639040513538435364365903427714545197527303416122979004341219947898644300989440435693086775624886577454597252341539540880390397127513325115345867231955055053967459049496477672190101117766562436354512718460737560656277675173885590288460834971144749186306849136924263687043286032304349480485780580149454858769079785634557918717319491071655465296415001904583512257246759832080694226462966210532841885617609548877398138018597545777178532013701703620444692839225258659438134123675797712677611132733658540440443168654099838078072236609355744550053314228293552320178603595290243373262772652162358526220762147682034419362349015772897217945470798293370329297583415867302061480028921288474809124179648158428644879098243953830279260485077716875699018378867429690300283775942941764529001393335383978625560141641372591997143700340667790155062003648707938899857097657531472315476556234860505087958666590927257510538920916020490979827856272362872470849256949054146643402768580748045870121511294710197594954163924235595889892458110470045637349518757673630568346321015068622898668726513365721917346499294465931102637780487215094012863943631258757552853964589492682656458147945611404013215261510741340317181080721148121551324893679366782906568186448179309775596301886429147898098916707338640182113399193153270744613267788311860579218566611396485804373295106488687738637439872186475831122621060208706147748290768904810986236628920780006233587340798377642132844911942768904917765281195495826228217371979151799461564158694006909057095826336476822473172527692017093291930268325498619812267917251471005756873835423465245953745387652499146697311302316055175892201845809332435832132205367300277911514959810569487806224569455622362126183301554120818804425889649920902956698596917739455308144953675522787476382311793760590505509078380455002720090956435469736266944293370056079235388436670062843535667313157888140062360011783128425580101469302011689158496969192227592277933009450643657331363466636119334111567621328671562690160995813083029419053821968332942809064587252841151751633964746792033830968541594436116556063019468598833385297416542008565447589648585519615007979921472188624834257336287691064637545356133382991613446150191330765271902247504789324878175974280000408455209352181716237165217439494350393882543748471646872310639880182360351448739719348914955942775057519213479596351672434776690116761100913768579235897288286456574422874709387377359017739774847580737243648016046150919914958446176176766785895767924596169247252831239856661285414566896682649254969956836973788028085660152376446309131079850680087599786333303123654929433859288887104738452044455673318133740543460869051063125951663346607776850531459861385704387563393834958669294582603231133386233438269409064023581790589907891629140101218599178651966428804720547173078357041131956402515956178309019052214004814323704182072961794078797279623888727424617974399530849481522598057979382074513679434624539710848228591931767895217393403672333075820242146649940497722891195089299578555273695333890669221703645230003230346047480976448182337676222694016896109788587449487140742383274413145884350199385497368383690257236046681888395854168644235338943013595210344500996190785792481148591559041425057262526521206575601053142015603306445482835630130724036065875784699744442057189261930342901604437373439680534282494511124826274291285502336872529566096780289873605647015249613843189993283513247865748534832624217823796515399204557419016892208569595810609853768948706886881434279761525809792158045303700032959463857548617486595768376974805573267005641668506450811881963423981190085252703427256551081618854197823362159807688263126969898386133342728870143544052191309273726642145588704462950971134993807664644865157222651607154099061379410546013961421277223191916543798783596910154157953486403069298172383870267892406653874481332461270526839153006121504508837107302803296351320372834546091246160325382321028411357904392434860349432503361746052073500533959692938893021851930197818374232961175469573139201861748624354749158685094397278619140797944676587398279225971070684104127826904991471475424344973351128138300833727615277663008733353230211165149970124186045425669411664029533284081878952818233316041045725827264847206691409050672759190555814078468878441364965669963688423621298278989557686155997401783095595294384108764490214670319446070236180377035408297972495431861680816622496470607090859208730184907955385257046516322024085472946449861676116591961216283528636999059460503950991272166684779516179669216182383852807990399005848446252192758823837770005446052502952763490280168736130194973758284681851302348701563500848899490691309343984864098319045241216649789811994745838849766878823398073584934357684566324053349639314804151313770903308334132913340705158174060294573707010692641444086955932858980930534915129333539087332631560763778329520862091608934562243247739059768628757888227621700240599288812002930979556347825677828663330519451632295875284920365939922513406041547277613036667498937015286715503016002241993412389143019230183789076893900890979339153451212159291699962104007585558613350760313646701263306260288203932756530540124125863783531437123826391841245113724648095275024479141586218092232596603526740755747976644668358130103434994865716782790951567548846983248615856033297753486972492032366789027705027574009943036009037733204346765144172360671140151316833082897337421552669780760436679848503261604038758944625727938007930998213014596102310941811022821622563843422415156967840649194449679550945254082640574457385872049444669792285999737625835452858898671896471212793048096280750067361974152846095002207479865498112497891530432616497694074318563809727325831419062308540976939850348802622890259957922500834360041089767224344003316631338641455219489777894888806371684483406464377510111114399720330659232465252139871063387273773467588068399787589844553753151753436186944690844885119470122179229685229101945926346079204570327010999586420479872668721263965842424231947433744898294628590051401741117104637543904711302045402172809117243980139493001871952176378549176435625096666351306413271189110897201596500859338021782939373417894114287595770899653016788115448810043519938671380270036392138315919899259314500001887908513406484989391422950150875750263676620972137629835272327764209870678518377040130740561237793007751174635470108270577399688094125174886936446102855973296878743126097149194279051058436401918544600398559263714660461729495496724040339342938179214380453435087692873801338886278994570821798554915669935294328665363958040699837624976897514745586445828036202663124305064225243544715212254483318525518000330742914794258031335285037875194091056470692302661158145282347392680175830625935827709961508245095302459933298375465380571164175282451052753729413278148085108281785120286553707598928579345997783585996264031170716801995206536348340705284844756685831360085957145831553364187966416614842698947169801044486510424605747240148677948190902062320679860065778844892628417975741917216260982746549346826546455245056397833688019995193054046137731405989205124683381085367982653839630766404575120363737416381488392788599938948455953776349681387515513756988424133283985681850569662853475669599100568501658456263890674976839421826200180672246478212912919760821727549090935957325875712454120361834158126211904070318201103819480295494370994982148446036994385951884081907734751396619391497372275892570264439254883559142189576834425502434775374713209034073591746021829017094899225454155751960891772331578681917787670264482053710564959317385922140127826042534077145251150634230306470040318073024143185431977563593539784718532762269743456381955993712754311387268087960488634453405703441183355434836428476132209636915254162310728239462013517364511043243912605871197733643211692197904040623871561947681727454427772644744147590146606079013534400906765249691357667818650157420532194393990212298901441333540694551984308382483478002542580911818025891253591470297585014299211243297962595275669627791668138755361327719406107003169703996353208767277349395616040331875017715205979983161072887110820781831807127254565449174858904988149256910769112790245782616478361125018270996786976909289487131854002876591492527096674388042855586714380715858425816989720551953122159586216485153711096154241814038519010569523745571853487552553835760039119441723297328801102445264188394238382686227391490049202867438587536901821720644425027909119769038778245886554763587657697706676249637799797373451956797960660416399971046871327060536317618416368714938359128066991077205896258245438916988377857393807981919743731511306662340094656205230559885750499039920390945348126379905051064111821359891974073207162370659682707804989947716336936618461815050905620489264779822519257967241670946253482708281296250284584421770912285781446481995231511553655155651463617580076829631502217334267272009415971226432227607957402459010986288923318469891296829452581526789833261912272897437037991707402695249594447411376119210155311159945865613593471012975433932455903699467439316624919454898275214271170060663079227617940218656618718402838782640992395026243062186923593377197064303437417133746511280454739491808384255836832358871246604286573449859279986212603263689040279985171160730759402321755939584488885659617575030506351617126460861364238010210723563485474192463334573403717219450336147614274289364101796627838903567101199509888565684410355073922684083843019478186495965460497602438080851319092868041958193309961855121784406486398387009721983263841718068470927931889352013330627752498762328315897398755156398333748142616264433114251597891031280124613556926448783257764905726224796523904580826671286005377366933141405962412003847263941014541640269050171873427993401400551254790612296094777939732969612878099007520659886920391962587772236385102291580583141358883883919348681326575961632046895742760093573782570719284962410071281331609091858751294376895110504029115964408440166236742957386653607355833389821528472889550734053688074014412461186352558001512433668962213723352690571531715446985791275178470108778720421902167518169893569041195874750401301551510752504361432450299664842760369806218362232600986214226640417752815309462048548855426017984178144134888801043007827145763821611397587618726778980501389791279360043046705523569205337276079250038392389476117644300426619169510576299950071500077580423613842845360884268878760057894638898019804197784875929857959790692012340244693860206493703041330220904987306681222159395078608633177671855698165772543104046249599312390905551088848385283664789647001013899811657741313565594049763808554830943712981994687544601736142561533826891856469011193580874836659605830853929141607180536067526901641991760559919161535223317987851468790340974943424795721892499359990175047476700830422347967684024253036386774352527874488449282077143214766992151263264400875378766034109081228566609545841115651872548667334130624811766260125180540586287614160789172641370922843450943547177937223490739482915016553772668350416769297548863594705175717716525977790851854325007713842724589408938982664455399043683417779481392819508118330538470444756937688000464055256923812398221000492783066711691113587713812513494141924720061578249508815056085484593966092862174504912948613011729468999273102856106138533729125349910394988084161158283784780194981099299187933879749039945409577199504661813004600847790499811599812286139422249062712937689351346013292130919108217049194760803403851446282662907495743112738052114294965261329030849173401459774523240640903294076002512869993504528775724781956928774877702589672758327327338027854046778010011010046388731523456414273123322446689916857777868384706851262939191554417423215430498810688534619818567098929063394283680845660335865121543903305880145942748048512385214023438923411770914715049269625280527808677779895799321623869816578648857716822878786317090194355099353900039207191851218825658443333819701854677125354111534444122654477719531930149630016201130656129248491478308730360756673795413005865803405187545760260332699868321220097792472850840527678193913926136561531756006847848059794202768699696321658062455526105378807889201400172294133318524566664925083215291026062847284858911855505468646077011313799070205630228773125088845964465932792687110043386446475275708635558279216224524244889641097059479055336720537749241526608678378060426321740864813661580281248765047736003433564874578226118933454534477145901413129785951505469464074431366878219928344072169524624215772022932203258055341076845832760286549680847196652729329700177246262114485530308299790011428244379424313500625007292369333672243672094997171489500605986136466798239120787591990236892770294385800563923819804379849024920061329518412436016040616470559023849751787081125499534823632086321596253272287805400027840302546074536410947973605184875380444606544487568390741495541218337385705105279088608937896678076910144539595777190608259434802414079271123532993561340914315018646774823412317177909974393801317679109446302318420024281054377287185138022154300881770380514341079821813830684565193303814150358144606355285920897918347810003544286490014687820851227813187063898775275598338067087926017462235378099674072121733713754693482552221225679493434388132740371731859322806941190181948233358713958598470211666735533261762138310121974108340150704559954951879422652553450182234393977041545155121033767049295371071694903834502028258275642740513216028552435286746854014169191941901583687768471267047678311131387830512554026679076918011264272592638789971141087363678388588141980243054725118590377355005160206562903073395482794224897464754690061427841554928995914854964569473164113210987472176788996843655380624128028066770005396248167681525833027021566274131447472834566703377247574763890520115326578015068090190349931169548840035064358220404317771966644923405281122630961180850614362624877667095798175576891656336996851939344908531449647347482402062429211511897904578981351000487462084996920983996992182270348894295662362879954242165211295054454278552448889849977932823062578778218338564760963712119273709973413715384425150978503335854575273133290150883601046304719300128190206732050269914022209284596142462871371056947451679397252871854792458481589955289545215605081958391925757814245557391663557537404616313325059778318105904279478066917523196507273001793401650195231252465640761738189835674051867768226241984833562747149998357269843746309461573726298734053344312845793681669860308442412425551299283246813742609553318755109442370299315974317569955535268889128518277110110723464117469403704643348319596446109469009189734304144552246009337885177508731009834742059723117363477823683301883081434923233052452017019580982907271167975947683162402181750028091356434255137558369481347171219941049598210849457994965510018389286896776568389467744747267607667577588625921965713558465655594795814107936944086789578419476345139355627716487536350279516916653006565587582300618837503935615995907345434931970539197401850390472287440868770529071865602480906666152683320688441256004205410275846669629416364576036608347085189936878538314681488809387769314807072992141072904536665328761892511290471275847093320231737269198164572468891738895665576432531810038316706079571211267879899703506483504471316255941944500087932365243592175945392732283837918884184479151693487489143870251257078750785302553718959487096941825186440983804149366831614499627188633456304165274255047807733679862754749506817985566356743972872655019097076856736383068293133626703806895829096626119443883846888442755374941444118975845777475499672380517005297478667958962247541838918754998644553009074666058752658962272923529901318840263245156498002303904282211687328812202519226245554745013190823235168883490163887613187490641557987676731115112159749478571231249228195166176907100022887419223199597656523636954412190411251831266585091432644415588783333208177688680124029974658240232224515538237686497264927186476670293547630508622544926770836621704231454750576022425078196756339808938196600401051123389379350471524057299681624293847551281240500257524660665015341294270325794201866351353722208862584636398740379324704231828670857499121342897142958067425212596110578904457480814385852276536355519556561347076796426184596653493302333787070429534397278718137189552282411793753431235369674135255391581179532136970419679392122947825640797437838508838182372938194770574288812129561167427607398055825564553914862083717582125470330022532654766628863921689111048187437116578790159612608077149725355997312030702862057632973593043967910279604125505201115263157506586523246770520572522650883231858863832522095831153274873713043990061509049516311450217385178430827718080057512768619432634173281953019832114128275433134795655750146851092201624841498634447006885950486205596310814088392725905319516431381002065478418494643415706043722163299905045945962667965988772355370575344248372857061929032080189446695162930509648729927766945967221256728108028895715007254439107300436830867513868420877130212289961273594889735213569049093110369286322939048627576055341770746626514271848258724831368592513063879132002693323114021853698506568885594582805324161443729434511398795518279100942751039533376546733842295872746821148836074677423389143491994108872302925280983867767171881137287448102895777512699507723358028791678589943942721224188026586277582549637266767596523108075657320833153261045850995457813907596510231252544001247781762463390358573104981794212314857167697419216696697242674335983775259921625495517993974621171008707494255197261222949850143962309423648336300888738772951277675208127768246057293605700553489531368410180211865551654565907471456992882237737236624447182247650502599446597925533158861838998173789355989963565257071571759001403310882291529859782282756545068729090541829859947098053891946652839720161071466036233864365456404707500690899734998812143833866660070270462425138171911922067069929668797514072173382481178198624506390963281856383895043826563976771167584064621072675722190032793829591306444913356571602155425980030253860796275310111622506492551504909011703543724545265007795973884615050965467554445807723895084796059979865843110832672788503685602525114411352323044574305003801891470071812328702692017112109727177406815737624941056625583568952055124570064590351258417782381092879089861856043737372482132084739333578229363293534161604953362903529662906321955838560374583649595962320934828397873281522680730117181712481536979210644770359024473463214334957452309544236668499063331311397591059095811862467174698795571359381185846964138006684578255076810167812565774195351993882267007756224407546808147048622698131179947400573636340687219950777082416603278716382950137703099039896514428600168065517160945443398829900418739893918058240742513634359152805141293413121153036074351652545280587123369347444652630414295147326121942789753588756512663448987994782122676828578695301575886847766395866493893547539542615525715009579924196707400222262267244755655231153197946196392495332797083180454478697706895088724599158215841701182608930628177381028928902161619440586571200671151588187941134788922185997073420580591501419975794903701376602757278930213861939939089663058726989389612332422839700318809250003680106217485977468114370858358851099780958960200774601857955837130556046213063345848485573391548744092111134201202800640938257792518316450340726645720392495466278531923166949684298127979257023398245256268332640860343660503445572842331836363623205486122144535665637953940886399004967847458200852282262405355425913500646306716144927779986241619749064497213891656591754255189143575601698396859830652918664652876723147608683815338024895527913425812586818217669082842893231176661331616936333054832279446494546718769669485182770594880750998936293494312977970188934304495412928827628849824181145739495443378344787433581534134892044882805745458684558156543036974006405467177887387330513124390953724004268658113535684945552880616224737599046643059444057461164641561460605809026113227850372740639908481160278877577635528183745837811913087269458161289416487176670580833243986829603583352679056457500762545638766240446042118818355319715483956924093788253901391172965936368339750982222279681194169974138441719340952285451162061893852483989244750747760188578197202774588393235781740912731225167896626047107221748532496664198163828379998744050326154868526543355609535682111186005944406384169452118974693114331233787074359380172007448602727993901380748482062376605891415625640628843457737827686179776530092041590798652638216883209610336557753250384335793480021604584464870364028816253925546495360124392402180552544445773178937797712019788821321168730084740472286931214904922399395845779437649302267314696669953919583422921219540550298434173203793497921136089931690893512838287633917519191482329881669556604744502801664511313212111949380158824339844542097558666434110054795499575635985390350388331902249691225019670105392442347985116367257189596779117308769091836945612241415713449348315925636659500418659221916864039771609356068601028623641409306308424471851334795331039258552734069572734568292450286567579929369546987518571157179980611287063079690466510017725731888614881292921864585266961742607823763488910704956739551460510779712943528758995540980134993428170165473983681038650957037135305912765656540649504242642073709206674523073294493503402678603618811410728100726847344322282327024989524833511529935344056655988075283446529918952586895693619237526871828313910812642877405531221009210828896853875392727798949331554035168559675700590315128239156259866306792169353151945767439343185702039001949086832400621227842310340045450485713044313239795304441678053192162879963324245192174776917705684950083475392352002852413219748507131085056665933776320867565511322639626130326372020993040433254783527740284664951032950133014732113389553397176254297038768671174111675331826091846067301827104736648163010885607127240250285891789890488663314736054586756955475076298824294400603448088431853947334898155413089185670044854767813658063478308868666579071273136247801171036632714063354740987241318944027957512281172966267264420855249983665479726160407397997964775078738000880733860840975872415313476979098964942904126106382882219964408939309021570163927800186702323405121202806563775702317636906866590711780567819472420805285330545643274802274309211532362046388113001663635008400415702624985234289367240125984105011399164982901477660160656283656556725529188890851850774127293865396744410261311966709504996268279094401587523458429298360752427388005415536642192783173171909275939255025487324674195553436736713365617805680228704755477877158164788975138069467101968317607717036498715301182301933485349133797178201299512336404287304857164294276843479370854710298181187131158626353989165907379292527578137232349367730594922964357090991448646471075609781633607425762337872591829108795659716449583919713224129672094440750203719403467557965253890930703487598247060504264944482008161642464344737403544524802587416712521954925795769521347390816976521908768788335398093633831251563316170561580117618676251740015612536015269539604098744128049444208803015656383620227388861033199710924169011121547267005716431543578316448134507291530401088351292979311083274316555219519983579333056248022180923888684443633001675335086315705560166519644326989017812980620197542003431340896862187774186226335032590961270025881289766660043719363407384421373907025033312693000781429395148077614368749913001390774976428336780827884370952411575555398354522891341069204420507346178815544023175181642174230095523345932018855536022879711780369979883437817941904770346713656791552268636175308821091792380699928670398672680151742254977316803115923467327082747278362309602975307858809889684140681294821201108154165788548179052967431245760425553731260745146767544177018408346073928486453676615614491274381788535965479585708638598776112273970369819109084091350190901081092992384226226021099998897233866897474375587740552142101557765781705883541851296582851943790717853260350849055602662180991845029573783420492859376443521196932382010712820329242481720233718748585798579686526000490684398227330458102317821895522810877769816038285546054549137335699983162042745841838954622701013234375917811573396841898023623344904078470273888323848630820436459487348121480562775978590018689475437851646544057849021025662224598418651781467396211210899228882816619852140208466937895836562822062627877383903873200874452291501107188126720423402956011034290359583455104984051409082656784378997602425295160909210222625344682809559646682099890707706148144921050911069024087039163996344238227955694423213973871266078611176185928805455251596107151391143578849132698355481899023135945582423137226169106760484710131586811187411690358004485421111243791988873378785101469842308420392050244765728626122138031300215734871737200428664036038713726291206631177607682158465462739254525185105789855962665896667867165175102324562017354921544737675089764614243953526996922392694041041461683202300816665246865979753822607148390780568720912942888643016795296056386318632819866972577515744150146208870222272608062301489291020117757171962798161062461210258995857522027276771852702428458829785985730587613600825580405467131906998309724515587660914341512922696350145496352390800094644037261929134954123815568236630220027599291057618351166165957489839037267882726150591514113693134691127867933564855938646977781571370923538111252903734752347743577447450765924639803468144264996200624886291668997309221602311105459888869511840057820568857924373180806151308886813810292217755880653908458844425176549714126251406295269706457836924625755621704439396000479160511114494179962652749679743002376378632471658853165436515046426135972156394130179296064846664697061752148917589093355544126141539164115167874454995361834296906441442299593914114572617515359354706166622649548171471631401610396384352525760617038349521266025919126530265324604168259436472541565603808535236922970398745401671603040837948517486111820606559702470534649377438821094782845174581087075930618123245568373348496959112098371051482420936736165312666957703978694637500625654681300513936729603180831948663508290746120384861091102508217778428876565245273776187533309379785405440014626748286303392588888641601457209169658326787212180325242100031804773750538546723482889743544253828307295132290945731656218929478184258020342033184524730388621742791570297760717709099758823517428766643586002022815364013931992433853934914879744311328113338524104105286191240641050199828793948728999238483114006622140597505487646497438100326299336651207212261303439589115753219838220413345877280252370127425031207786073314321115394735208507960716227775964487910970435556529521576984622925935030669906762322502131241932718254439783893167563170714138534709388794268819242249653549194207843830785118737945111113848785775759597837881017738734958258580882312909134369301972781183918258708271632297257903390409043494646736637856887402204933001472827083923096295145608728777287007667500837300738568374393807386752448389365789195255365870965662167427581878402951293578677276522767762973644597730882852005260435562882877805306375486249332294689384475509021905503157265056509624579011333720378286160775119504784650683203495253528155317359642333667379159097476210198905894473197772271234469773444734212502904890963241444308265501462099573427709396808034488212586890609003450785962267537291443112991129272722060511854757761233456911984937581168566210287114795118897103382384396295216188597712890575686415482203370078656076504074944984945948358813197054093781880655751797103034267450785748113183829607060547083684103460215864056508444539239352165382355596025716472298419845456384191882253687467493642556004321571001214583621200705876917153839158624661076785550927108112146365715041647312602865219012113061390420057111236294762602207950843436126421457585247153073138854783485326805012543638993966014960817520419767854693840432120926260848522430842466265233377076689981368212718467362950880666103091779198503116196488957584936625047052770690827787003025797482274494219614032950977100457597895801002885344495948601831653291748037773572976512474562042246642398527677935385998509119382422300701715658823257770427921174857818753302054102540279520821917318491590035231287091450686809092438393396127855474086788168471504305816799742272681229933870183389522050124859686553620762324320417288254109265419562575324438774793071342872688382439095692005230496316080597812328039196916083968404947336136341711518484610305466401985010930412543741522952844191780583199999927346766145796092598610574150626666325770436359230831622499812320354761953014492529924361225705625829147990278623930958363281736441111636574289418257154302910471826147339439722414745161751089602848277858004076918587091066966818713075497256012738984741871405513758811586218611250426287032323464083094977551332857032995814931720859704351726025241300427186903657840968693621114190752743779165643042330034045978706677553975492954434397049248343209403492356281440275810370865256830767318590959867960652823982666178234237843191734385349759752621992490838861053962442448248508001979959396219859028571446528562948831251762554581603351074640686416471408717426457181515396439458639971803329561267946644865929182869793419515724143070466906694129427835591806527939015705626750079133995104629551718408294975543997292586803547912494821444152284517171954550091037519467582127971662147985359193484391508857134396439336653370219804737579931115234637468709599264117810442734959603464787786829140162387693770470604058496520109648864962637560324327724471988636840481665120666309118290903553910263316927544226612672397361867681823523019187718539434464920893960091075328600308804542998938031740258045768701593777574797818217560045665036399920923108833608754240423228971531233709768370857211981231443517654294542633615813919372155481151449989675690411826712232811693158030118613541744742880103828771391034089180522397688110492171895666028234111774871600274774827479781025419981383285337230556267718224268960814938425222482718598356259395405670446058858002260950650054490904538761333392949997628523572425442905601534496334548068230336485175411312989374157261748394598803632287845907845208586698617672435308068687306672547057761791544766032641320843366381135065934028211485177273877345624544846562513249090953019495661339151673232362742571390343353794575703926663009833621691978748677405573478614648258242650874903243471153579536894795756264915573180802109083824261255875881073672888481275616137840623856336665136486884850632633487973198433762107564320281291927970034030910915089247845694872030644505166016899985605432513422064632276154458196040129019519628488011013693395674733867657507268083886791802206976994763952893867650746468765686333848609154036651944656763964051727527870469794296292160485020806094143666765009934839102865337142576142610843940416622645667874848031238113961137108573534156436270703462068129426746090752490028135799169546897645110111332508734744914290616738396076442442594946137545618167080321134408125306295293230139503882009241293104684247383857489005854453366573509789501798409556990214149634154922306068550117696120785909116475488271561613799692242231717252371941554570039314359979266519295769065347957258316577864951727052867707508363885942775761776786399089227649765697276534581780747878652858799937899534914260820407121067895949244274926385792840638160302221796938255450047505875685990154867230788075240010433082734058449396907218516576964101633228444005404095649406866266300101521347432221394788750677141744246302741193641712652171213998819651300082660412349057459051099941707565718579140886741316567789979436951174934519505344727206240142819894347358386112037295375226309425162813452045895638134753351802883134755165993338016458625439320282668986432140765476722060344095160471399966555732894157968026171210188485416099588046808912625248806819392017797993975016203946914260043636365413220048869464001584222298069510418628838855252177417567916008894187143783050231971102081129819200534623109591317909162747475086653387584980912210844644071158709430612369767661705876554440186326428326805719881664148820602963093479590397887524364013353426271777774390323477726871067530228282783642736076346357568790607745767211147075052020179004977176609172322852500465273566833217184408563023595589020483785383169802497765346138620541686075226221697249213114846702778471144478890628667651987732323190516081535219248672934300707062718613358801630414185835959631908071019533943452304400022157507307154845876195932279718420925304359519099256573597610826926236296158994358652012377583219012571410470097352060383819243201026255022487437062306073613363434452834718684951169782952910042022148992053859949441665853961819397861220099285874476038459372648886993864190428777345895100725213035999274103868393512160607819869960623483363264478746614160589631031193681441334890945966859804010756541922431624969758200632132715040434926864848508265253080767723249529534275841358724460724658938741041644261434032146260830437083237328433778100714473590843900355545077066569248197025710063052287100525417488451782645502856362811853812650172375449787824451598635774794304760256156799470354447840800591691455558764291434672557596565150923264066428433953880669031473003556183704056160191538475474095486156902192803438976423414348046404357242865988881293373397394255721768677520091034590283715987651358056509193822141987015640503908071362612826862303261653129253981208120477231039423067583476454069477729922194384158635356174631010885759298889515851454926209269507681665147396708388222481971496547608578112535492198827333459961523670485894130851814834012105598521501481911513180891082755875900060346597909260580057393194252918859565902472346269163860690289013783513509595350461433935929558710404042878470028955730458734737253059984067877182606478527620423318270521140108259271102986877449523463030156797104980120605491089037774379814365522108013227121476031077670721323615685833606263038372688230450825514341559351524984181925496075282626769954578311107037249993602037616006108948507895222676658955909397552356088545391133458614979551973535410129984276366432756881059168372558728393625853660267072960943024115151289692907925488084252803383233759710156448503893581816972179217373042610333061226441605412202934287314493490903716093458725338389503807877637385680380530428685939632907023539477675832475876566561254608834377207872442403020395820958205106428812723992293554998959421202709242273198918896269416267607485309297451591845402531987830166821919688310861622658599628396314691395625006212500446671751749128019055061741725549029605121990945728004711390955403444918531725049080872551902018974373355021400827386824408307636763446826708129689011734274955177995138814462101262751736044336304873014767521311537562427052636426789202069420177228950838260569022330037282081632318612001092425383430198315044151732610720535014418357375987623320423712611272250875843765821481874451757442112664632649056614441341820815593822461448316146599988404306167132316006368218121243228127359870279559117726238358227387845542264730961196184564307380978096096669042577332321422692513294831159177706405820200337749915368502820212407267763265625660277123916760401788964249913485500795429470875266218393860900728729102188571658607411136676815843907882692556714625845859055940226978033679082286599426477025632101020444324497631398949730954221727895405472728487876303737561286683196809612464858029490155481498686467006341260277959158176232440719365479662618105868629703257785849164519565896134789158956319216291825471390169630075078388988969044294699081710679411710872931417707855994888869377940587751755801880744883528239549205043956069575753595763891354015506508801954996321799020071427554621932038766423979312643312831305205980632950133357666413611229313615863494474615034209378413129758749933522489279706261255796192025471741025109790602837739874190370677900423268061467286150481471330102758051255834081560810587372891391302511342460976738404166868350628037334862895756613012515645023580953895232927956966402570116492916706599340724621967686445811477555479509463761829375044829765046681129504254149888334780277049204298152482792942085357536785924851390110405518898519580082042649095340018846487840936357882343746699598965615496932470011775720833467953298004845713436998610263249460943506188842411699288231125504650078905587989510579482501120544337846823164916868367110260065446985964219003764219516154873321447182173716382664434862396245978973130036475723397356013432227574475198835396776233947921735005440631024928515798098335713703739778469107031797642800786699431289542786271293250541199997133696543440881930854615328937036164042241570096157978229828785179801391340206644887691392190402764389616324881907573515089763433006623734993644833629333164498674280329097441236639776209002872263912352705142343846923562656294797601558138397812921747042868208536501095410013799372844648931857636072354708419081769379962267831284506265782630352222007239911072284187960630869335538916162140406194286572991268234568082024853763912739065807798743641070901578543071665772380169423125011219033206910771843298729393084281828515538082382140302635231850781518415316665425981998476799927683235163366640468202547144695186550054436384843679255022899081365039225333133499268826375023310592516157943216339866589100005863121108968968460215236572724881524060553315781015199431195462724724719641837380630075892777246777757447099746979460241326653908442858629061323076245180064552534021286528482495536897312944578877254258111720104478245785613593411944659211741255633923010326549368464576465866540100952259318780298924914214902908400787725572500686882064369635199412662503502190259999323799108911935232077016076687302997632358490140428041920563306495625100325063881572756197722298484423466523208961623874429871237030524404282029979926958680039619508612671456196039356014966693594301347134154469002281024866605356858665717192068098140618587317410959500421631327930202775064870388062071720179686420120131774554913556828699276418764456520970182891297889400662903701482715006995171078829882351449308132753630590662478349323644255149676785125663006795024489639833921871407705829658522562748534017350453419810110433482692642421670412032798565594249620922944659900597391562535702710417254531675306295220038339595093542773418760260098272988009049343834881675432841843950111616833372584471088851129692001179069808524960222015928217070881655890485461992086515990182609904905100639815796309012063224385758941369968066376890494551698266959845834182361094757167022701364038738235236486381084428464800627017795097954554973556627216221047291756100812690566794139691892627865523714643608793913614512774274379346942395558888661161280158601984189573247868357046763804228436423176589332570880246908102188312908335269349204448454050000589124017054822740808514858353648420965991221799331308952448288582896535944576314859972186258914813556244242342076610041904845108054073478152450189384771454511377170225379257040742604509988041313360311890116485963968364105731110627685162326768253314045478530336723210462722727830979904017576816278206925882584926657353096420154731071324423763002380383107733384794431353534581846318156021214038977015437055410593499753713391622891350273333481389051207108555545758093600080574258786286913697310083659636217770553904650680322235617998295789812164269914558060636078129004893534363658381104165064325594198262890542940051099268507193142033006237481520407741205919051686616179119785727982046418449654103229723007497306076948260478719663408194752585203817476949739780219717373365988113559840197223629013574353066696396225606196261223162358619461532400757614624370658573393681638137273458359500335524363814990191014941191064531602652443990496680828175897634331597912591544105171064953483000695726471861764071541274707406810730353319743997842576690135032768932719752519966086564103454460100968510024008164758935422557937512386112669876732926145474354400235539224140072732051385406957722549575702825228997220343618022852880011790935136688120752308247608758432625272794902256141450035565904951725398166992340699868911268615630966999452155669936896135328706402862926905580460842732357808915739890160475087853857306896417490828720275326973713562079697900531484040396259096611812788004455093097699230142169238258304376758577075684926537141655474977865810634792337606916791118944027644009011643689554473348072328282847843316658028957954330750392051764135820302523472392173808921564920197755595456320847254131718288173968038502814857532278978124757296771777311241884433390583836148552662676480364442207169329418048460522351285419458084884032236969098981570863246168388862435998395706201810467808808334450736641138784932552028246481368981251066401653959817319656494719478123355915933572203062329514267990899317722038019531673372736717927310589812643956292658685204239367615233737224852117029648448014429795824674870772595214703222657558675335259175644223297581147062347958626033465884876567850806953139118960939721759678269510513051479782100548054078170103981341221139026095824500516927654268589487971873484041271993745967357059415165749415794026460904861425126895001556076147176400916952299979427853007569168498839691801611862708662798172182616408734059859282268218687205859585328919359699357902206464462842022117869341896703739929084628045829283898802290941582020883304284695979672693646601001334883240282739662202308417552276006448248851076736525154958767767500792373833538028012873618802321003533878372956314121131331976253489975259434062363213643505840429217919819868032817538064034670751541209400857622207033280661958394419233361620420642545221424407005376771793289839866485035117280853250775674112654294791853533885579083409738258086545735252677493790262641103847251718967046708816637340396157196504002096544439648733579443583466745892648203191965076670420764567527310957719656557693681616434704457361773881988081794086786393327534285559784445345937037286538021083733148015420485343038883000348154465290247731666938899644793365911106586810386680297570224860909213284878944919965174077111009927310984266340656006583349707265349734188265713768273973040841063286647863856734834672702125472657363126923063509447726738224028595879593806649309414224289879676098804093644928560576880987033143628509549579894829024042575187547227943497073468749089811916999821042772075953531501518830164214952889685084545255230775356420092610236865028520357690321078732913550615193868112028445925662818865619628538444336603448140534189911509593155655924202616679493234464127190991608689305100689841755874040565319465521702686924369707939195569680282923962418932362374400451879560445768402576578680509702221857829611474260370882917643157505724670429913580852332100264757900361459037250991695334676606635548155322222244322175427068843089122689235930293697565855408129697504344598677643801321646245358758332336514818873645554151661703167994079127926272810934336254359216601502938819028108089781666599636529957751888107420278090680819950723351043619522377699803711503278987741295911009391365924419028914210362044534284160216766901694765198700144483565981244935138886951039175553356375304417247724798592158673192961563116276822812117554152126953542766866661615799442125639345157861412786882382628615535992115728312524481378867334310876756199750020043931297514290189896507688422908099431800486157465323507819021627201473747821925385361938398176620362146951443065526542358785137372391013504760901328631966765682587044857976542352559639460687783880351644180627364016808397571986191495977146045271839809352281029772022732804423840381721681076346162875887548063029567187366611182970583292171463235992602976521981590588104681390437784696743063164428206634107876900766521978297045735142112118591150919632194407277749500410185438495568277333873126172328942432451123471624514537171412115936527871949610883989718028140016388476379602073065810985715289128767447137248640148518991340240662982962269015927983902165423086395531756034758602011418124090359325653566208662870977975213931677354158515968525071506406905841711035435831904263334060544046300509498166641491385115087470471022539392146991165133443251388643395358928243937434377765445973061953555762456478164233774184293538653832420158124192686401935360526448027532717673385200967048716114185770008413169901080038265671566929606252414269968526702842763523433066666165775380923732462227489455896512450571884030577773955129471241441074200867263924585444175823718530230741207930014441174082865298129018941683413972678626551110369321649919953571688903277998599123414232633001572014725273651213697835964678876976316485879540370718428038654939999536293760288452402391331625126848690901307890744382925654802757174309697770838991346299190228751762399896726802511504480655460947648090104184670774864674229086130511307818053646535125345783478303905612130408984364160945272824759867457033139917520943561974681140807883246713419582695457741454721372291844928834025501250705784743982950829526459683881020099347087023100078414835233697922608466285854650585712175628421872786807793444088810875933471273109646318507251009221121491027175692644676421949912454333318077818440092062149296321036096080192382507391597300258918390388824257465855865494329618981841953447235305979330633427724297495185835474442520823013097669470125014030299153458627292088292504343756019183915465946543817358995127987561636087517979923157201205903636743421390604972957554886351403064005576515157274641985004326426482123797493011869550956705399683299354445889361509859081594223496671486652038075007898111117110993396064677518196526698870084571617740971410628804822174132708837820216516288646212992153792915346232124706978185150367809121055810568505863446843299248745486012139398275151721124837457760676993789622684265178977328714609502437223673071600069817169759521610016465508628491192688773983637421380914847124371946150499936356478660849299637840665912376424926000073946755211778029245099070416751158395122509738023972642237973554268250227226797788839602242855849385896182250271897873529684100541289501688472912817172652460644810380439917301045695169239802190532292036740914985322073881014185047926384038484672926837837869570624003726955764660162176133988150744664213243252816492613235096437625247674323599997972495166057105414315642025088230790378697654402276221428935445979281526283176619066426232003365937024688488142706430767466027495707013474590056586466397442036472356286208594350561471699847538556735913354640904960833099271448959278756367263985576279262379949596830165058806592907255992094911710374219922747807846820505515086010841402808515777959872282996591300214151831650584130328140909307833798788958624828048069268730621375494075423762645307406291636278343338305755726044204679726956492921817853570295629430608892408372395261934280578338492252685129646672666276166127246448969974197783649543888646879487543139849338043614328532040775646489329935528984012813864858774134469906168784219114695168039719247927036400072403058023464547131163412200480124167074783216181379654348682139890487677550486061784697025855541418265019734733956454540867834643691614193596517505076522866384423694888277636740938294560067498491521288689886744786480233791778263432594333172530151520169870068769356714103224233413794486162433440770758550581701247625860103113160627301471007124714017941229802406864700812843738033479528643211756079064550105468196059115194817917403041110400607751490297968307843516096105141649092254276211294580067482878848476588575772903860233912863777904096849918305207331499586511817516484600572399434205658835517898487456033310243856760420938406356889667788690604002630006953473105774594756341205749063570895802402658068368533849523807858888838037076447477837949227837596694113510825112467742111887775148447771174557426491474862089884774727155534652513493495548753195806103578380681655245886327611312524003605626248074909486979897050760558475000803199683188157489795185310712876723551997536904545973710556523932611679169819155206722029231300081370682586769128417622380075115189757315439719621200078793432895046331720230844777225078826120168067206691414215655919707768646240256248355793108056571651114145505117128692272149218607896599131110165591743104315908830875633484598610406867252304390895919241691734409593408508219765219724592642533832682825311005198942853959158252508144085855367007068074934736413721848381920265482422071004379062264022355108264849577444491098144508146108080935009456719931280247027881691286808402459206530204915209884023023830888304474583211967539213352314886624007352044070508319069261601820699950983274973717696745746732786558262732479870892897038632707685970627208881922862137049081710295665991791551576664535828715444345640711252601402840977942109390724757294941497980025938582140522796026611989057061278962936237675215459170924952597867441695809001973331989267215356075374025164756351371636227250422209203756241364713615136319054447217034301146943001839059088485856599072788543454809657105297662686051928221863998000314033911605082809759320276429822945013232615287587610985891241150530388155798190668698888411189753728292661826944291292730309704857557741623464742587319200936749744063324916010280460810327209283528683673867594719539731804382682938368231039184641428217971479413262517057696984514202794238594093542811533415726838901206289436617768519698759688017952846508192080406904742838849074330585267744146588516798500602160781388499879381805749860356291532545033813093539343171176910583590864156355120849351809224950705447970510240698823987147885584433975672760574290703810752590188108665501525741434988968813671924075159686748982389106186214289814863969500923465586015173144858086996520604994449251753735628891399096131770968108843052099217942911924642072995434152038808268489003965648448069679019960902969172932762157158402647859598819305949482090044729384311592010974464481251504674165561823705529062829087911641854807660119117638200268635660251230083063356382805456710057184540817376985748897451520037969813006417192559198153749778118631758103873211935920035114100947384522371436904269187713087486209812425425629038219616770906476705752957453220893366479147876743893006671063868356752328650068510685462824950344714855779955870051788060975936486258367455771510603988429838690706268877510181785886631108775162960855560057179963591039325199201744872718347079600471552255394970626191323613712041934386099993697797482819215009588285907097176245817749723653940602413995415529811496370841541792112544815149142597532222410071895534497611695350037318598214070083305728957703422846854071755031480819064360336157089396751274588915136962153308732265191254141427377653251213244684160197311379476403795631577809444203800340378010814765371494657330498590699300415174828796964449484736963776287132274552799260474173443143200961592444227952475947619969439711072378238872448141150552652274240431525941086770763643406626300564115868172053761064917771491052733483975099124412141588001512542213128305779997266340902568256803611661104066217431041856792022242859843196684738353397632015194883891082207830136397077227053251785941100841495304578035594905139576652230523045532242154844288528066498161644503857964114967397963515915024099371591344027860889033222832289891879596115739460324709763554346965001439520928799372333424067024525459944149468872009578751909443545464995551144082853932560633552914466437317240269904087137032036852958394377301876030952978032927549245240495861742199160087443971338552761463802961757568615724665655352158054840510950584710265486669915653961662684686972021326063796974095118861694379490174673215522913709676274946674978301952457872161966576114730507744701447617172060653651613574733325440122621469108027220018372921606538689470845244297804575024170468273469051118216213164570511022580079817110969503931713219867233371289314791595044624982773760405883492311629715439876296543446366799188590022938538682083345345890138721048289527683895264017799721555470983639168937719408423221359235502417660682478780586646861815672335820553456409651037168696930134313524151175177403007342863803815514002144017912871028711438159748087548653580808187643056217270976076521803669484604083313747776827538323223101615870768313658499036363846290591454882951209942242898870689042204933503834362663569736592577611747468011755115333051224948363802419331804032870120516148373069764505702095037200366691594441738992085975232841002069294869227821190704042877654482241744312094590533165551790786953956676042484603007952757992042431257095921813921733549049080649734414633448139286000833316666158155633623649544876791558845560659908851905448337107770916059839223607733605452348536308011987550424525822276644786731528521940941375541491339769233987402811266861227828501444506336763075659598858811648191166118676486691259740127723020085156657636581786594226301943480430258423332772187397113964876317575242918203032000083832304565581177773052861750195652093782458622057095730020827601639215249610938814108850679922858599016658929905787831873797853532392990584461501277344298930375600671023725302401197476697293774283569992205088119725457319016078196213037305252309627023934522812891787487613533055784492481414984417833474004034616638943566177031401577619899179254639616229073837683556180542676135873513039624406621631324331904894037369167339334405747014057020851110918374273522198381454646630866891067995540523208388858236861667811277773620478330754752219973334141671241699511931629435643444231307427711899066545289111491159914538680995529574295270412303040549067336315759552678040553609366420570484361429861135279995749579619577591487922895186155152787728807547926772136345670283214765280768723255822899184142932997562946821209610334444807301515648914088409637893569514554411015388423658206565446575452426505688293863293851217479071282692217205130750890270831352800987357480761753754115387714207920710569659473931210238213034330289134653289552518278665346158417249410960943627928324924966817442138410372600532251915859628648365423062432710459706437600543416901475692531078953506471995227849141730975299824157464203661776436834375633652873212519754974807205951309864119375045445032505779298295030642248866332340666018624624968090441788490998217959621249402528448099927122660962322381442378901794490952416013267834721837417687416627301172824002473510357996243642822498245544944545638712142190322803372036149288457817486496134645013064092522672124034681858774993586248239871220736075357319757063890417617752840421653113227002052064726445176911232419973661769044695858119990150185778310652290577232951213566885055268479362058807702575827095223358466721133053104958990687005720364598887119426458012883367704143482801135075909403288840483261425427784848899625215380403267303026807924879041677273858378618587910445933683070849163452812696948236768671876952254910922060401622842127215145799296476257084721949353850365238345698211802320183881606486974164123551348256240732567012005431632255144521695813519110698720162673473061269547197306480066384952849092771469412141275247695254330556890309083288632291959142709395886815299185456060408943803097109866905269850753041392238421763381504956807345599969912654708078444602956676569393044288940141456111625774594021875469502005735345771906010878961796034491303308431724980138630679188739890238458223046944565926048925796576562970597885684815402377223971624142570557810044181618980396335656738569677199004369922159412483704561815659241679409951520187033296048175766987677646371704400662487406705098375957019409963733056045845078948427749097283056797769673223866789088553538323279541530747018932962161484348441360448053228427717737020842278268367803401704874329953477580155290562718590918303821435485099627543871720660253541177141254154428257189951713817238145417325024244836462387808256883819613340741250629587574966735817981045111184514015703861477214956872895662743319348809200252923212310231249137057023715865625490244499292791488061024837472230039668525970279823541517976462409302177144269758849431534658118555823807155224255781044276587360636295144627935553703662852430479332111002968651184408570440212664517098999181771035379850513281112395622311668717373609234758698142380930552755535521365691031962203996357594715316584041279773742279303892168294218246115386308557117971917268643656341154438939991135837629539738600871799372264640256072804010093377200945003933358867951622934497450073674416074437018525229753388675651551231350196601291761877494540521983640926540405638004978202517940860966170504997957583524377055587048549008792936704503133836741396247637497275129675494603277830645019498531885527622883752049611367112343994790601508220654319437530352512639133978391792841113885954938105792815891578069566014482514952685785792356970237462143190855722192941052276792992002868222087362119256953368226785109686829482146032517842642322494387908071580883154330543586203438056767414122045694635461191411082810001361011407470982942673738410651242665547331215953968166928721576984554756918274189387197569090607441047812117176938505546674032701980724060129325768323125500609141106161129513327212018535580178395342834286403832991201327848841501214982423866869753984538618400669995889953596889994258139238543714025294656096919081401952211257583641352517893045827235921300395907807137999607607967003492299186561737537945051825113415596939816440015762538802704128818869463686475958922285838687603458209097443465401718801957805702984543721969062040336991034473820332943624455162135323379524183053074300412704891476883682292539608675109338393845917059574208470372347942319374611671102182029013801903274559107546986349876642789208504599998058377782039119419803993012730898685007220444193548837414596198292926972767917722909389983225680828576088615233938743334802595780731238796070815529971972959836722275949309545462539207378805825117991625171084716185147128435834561456941201047316101984624486182169861943952062266703749847738105291519162680296794521800766459321106828274093738847610999218510322613683215816836384479942433856017701500768309283912956492630305075910818286127341552382231606306922091136479847184125968074464287020004260902249182031082696503316749437588292928422405408817277158267741874967629241663049417524094402420926822839244241461438724582113347864146536456682846830229914216520756526987098320412861486437873684582181563630566243292375206509198470988592538642613385602548607417344519618472011238415522346719462484994999057313262946114181283139220486583066668588270712216385854801972981881039309316599260902910151616109937230024642220408998155333719853691440830839146179134124808260062738162780824269212940441392237183201817364791381342824430883960251417694656544644583720746410819118049988181145870662951583451194471972016602688845444006504715022586991777393305775996742174082153389304723531417082908399950370677980733671415147765383990380713234773993941341060007576339061576279677269625239680847955388354600564618814882070909031635801259508972121264404911950253383894258196258358344586239677778133836472885222842043482526721179391108062061039285655934811743991987797272369192687659650649441389451113965385515956966460729046607941638917038567500873543144698550951462662003867007860134635993274070953190946786998351260289448571676854948090447039551908126310130433020218170686854778566752363242504903756105581748010193383010589259694844340033185633293954943929093838843684336091962441566694828192938281151547016944371016144480424165729549832629306557351189765233126562878857732974923540251992558826924736193703514549949781188701499408719832638398359289865779211064474977112281087007753222913304158705256738551303932559908519861150422254846879088584006086871345863000444816494640945585025744934143178595268063213147836541411551523587844543378145138744681083499151156566793404552240359212289162612774224985218040830161473830115541487974462260471222905434331314077523148937599400158444664091265438174888581144939854498039560287977766264479397378674918831333858148284301356760702392043755256799824866278442294581137582060171697739704408376675684696752092546513420480835912770768882727091626927478338186794197831505714659359098293892924398376833369552256166901763859892416722825324966006892929386306969629741421721578681575204165850705384402244022573147436530331097259348926622846687853392076608001976585649753198199526911161104124923369655772625365168509446659422804091397799653737416348393502769541761366234956502453494629381061298777984210704489967448875963456749439092486627572555357611041272629484098836361667818793311697361261812545002498634933680712600822029631852998065987715890009272547719936294805137763155168554002255324086112890931471345686619393853657718221779403795134001463520075900459327176549192595823371253627279853619324234360190164684075109925802286560401004140013045552424654717755650784463643574782250635972346398685730878587996410932992257243930857014335251857616905226309467834361930469450286520604029036409347859789803828496797462295650925909488730833588002254179972877925941028445739614101740803333406625807590974771097961835565481282430581944176754674397949542118925580901767591224384966041283335171751412991307901699108918347121490463842115012816357559946400308135292704561241353954479467833045787491399578705130074251190599454029775268009136363239717119892512554325293060931164099531574225948115804767203532721969367415787582895112988554339514648476434485361985776967296860158589143070068363222984492510041982486910906925688784085019048710561422191049264755296377615573100326828910689107117596604225063839273669609231114528982424230331974092082556845031082466855077581437665616395228642023447571265584751003388430433431147196046783438957405144132277391207054567947482490225366412762057738820585975362531191479124819510141020765741691733730319104510495850343365295841546607594804697447944634372914031036258951858300495949715519506310263662166298062661337422156530963538291978724404392478129647107110049135160401324726540312631134211931676908993842868339543319909397506215003706674984000489814614237693744511926480480668109108894770883897668747495675145215988462132384602079038318082619510829282385778968746758176583516892609464980281952605005742684153553132345605871500630960430342177465065111342932236214676959958820610286695499358043248984522322876758969530641646894519426515161682649761615572664056169636911993643635814773838642012695121593124171851224048583346729299090832971527166235160280814209751087368763648515113738484530396696397329205836121685516688723404321906337918720884237234393628772250833367752476487059758154276242550250424143996775489964676550265952468515190415610810072956146619723730222017220727203074682910129145039842366027056339569661970725021308019288426990132309834329017730455684646083451670316095919287349582248299680454428880256800366745031866371337619981497968605120715841955181494049343158838947819195269748621126275686088845681321720880171731970159836081277708076295557556837933880038749094901773618805384470025402843922219651126466094103710668469607569407386825597315266505948248796702233873130126641062754148768709440777257760453454722701070611930663820511885003153366968878184855614374309006223116296915755557511881973381945548240489368440344044237852597614333274590827678960044052104770534451569804213197882749247263961960382436929144152204919373876026662524520903417509769108691273087978501212471192101316073391430109016830547890202812626766281084869125617844793263602752128956643785693831232695362852469769978438113504287714520111507360400518505763788525227257709456642637674662985330978323204784618844621787275536611321547340314319988289216639274585611381951514091658919616225243502008539654899024683153788009281317568553445523127445664379170929178647923433268239257334433258051711342814499484341965821446647680536311407439737665570713311373743803341136428771301786981872760921348080000676785269692384581217228852039440489104821958346152327663142897946528402357631675213976451772329705740402320698464569226760939264535707642468014101035514572543741048490656635465534025230096113023966107031355164962399141610914450379427047142851873656013028113707531672855355373721315701993020000881668617627494187962731569832121835602958968311938616157538683969286271463792389619886936764913926300681006521149953093454386469759952901386996668654910712071069207508036189788957997439202047258236523587246372987844060112629045209475703271182863355619105107483728648745644263412905335577073390744115133216806561192083720054142712641805333670793281654189124540799779420842851836824656600634468970892427854355317471706940750416654972292104793916802851876698980371023745472008982428129815252279896235001139677296036040935650920665208703134801897625958592542535290818052386120592262282738969486896538406022089965512320924915650125327611039377161973175005240294593903186186821724230690187156280762400959687561626809750843611475658624989413330160002167762355828691505776071784671377343819259532384505694424934968790302597685860257786032246647532128311524234253227309971610845751994425879619557018094477366843178069458079470287522208224760275187879509527850826375362377002989858126293833655309975223005778143975075078680355728973764403790178583434171471980441596816753405819330690451615037506619141457574888321245073972944430721062604386100400781141625528542214222816935925949002876986822975151405669024246605539756644277956513350329810359385244294334698841633776390820155383240079697637341956731407372262615419856846656221554461484634900657943022849083511919469059842234925203038431183390391030880692340875957452927336065845833087500160398254509521523535548881330070134654236051055329501256865538593607106729241737807278411844430645891206851392021796786977105530699261469525099330692098085374147887423139626496747003302421739702613111908215476677727859159624343285546042494717798268430892361088729182814785470811127390469871802988842412887466140047105589992703398677911093384010607955492147459066108252846090271954963868591902018029735846190760354068817651571313024586860460247167428550085864707145674314934678989382481453516867582845719729701619886255323291173894601448470389496022799341837934948790038465979568023648439835899177669893615976631185587084387948221682649367145364445605164408460813973969165426470111717732883683508979085224453225663922377451014208678638096152066392872336518874480900336650447255293721503163546502705818969224745754950051167769074854270622862008625858455919550800241013515755757518508177768234686246731218947086522995143472348463487732743206898425063916599068990545108661177098651758332645547340468786131265829340021302827234240438846602757073823488608629114294125793279729099609507183757713857493760883164606861821120891692534218240117058094562625683322693294493921809188447142851558442553136826195937348743517042627893971216166008195500242270118010658426726848036400262745368369613860700275186301851151268412058489920506768698529189544940130082856011384310074301227094871315474940260472485388175562561589751873451805036506296864435225142135253729821353503141626096273902973420171414042463135317023737181466116956934995907492390400994952235922546998621260526171692634100571209429086016954038267606705448742754767346523342674094476819001294875481785132286657698883841121930963475533450220608999716811743858511710051064761954475691412034767168562544849954043649469958954426241538123840249673695966116687501805968062805592556487023509974690296066889108603855746542563640844609689103259641157289573619290272704671247491515284298237081882934052591755655049203096040432974176735481331556667530703703047951367081046152577214476976427286075272720208992145585167828749030262709382218257797433562845777734247647845064930442213333972707408120841868485086847433512516301175232681841887699872063050518241369601624516337051250604618862245902781582457994004841324410992259522132184550343958285985182045810143490127137688934213807952524100232440661398358263313808509518837684040656909032848428750789327636709281760585804166234353268513456750951081716456708134257808199853120732989497315419441942169360319467512429885112321133839887137425945657464326423377876458331977993729021242230335958400971961928655731364196901332740027553468856768621646129734338401455474711874400779487875567547067654560389524489052854530925762120187846215493503838986093746648956543407438956310503922461072970732036708997680056796494468151052086460560750144095415176198390310569860906499285039881158352625842401734791734502428975783369558582967702632928283318468626218360948894623137953914404390065511441325470322133651599239869011567610397596515293673317001807480321528902339744873028357212293907946537190602198661382832876339338797429903098662561567650006532421163873926786839379547798544663887713104055299486288319687881355937567203518191990302218215539301711617475343323767935330176710872421863048331065287334364933416907877712332055884063533433278415203995250268370186472608289627177108922433418436476364928507755977899011312964874558729532583529795603004319172271358651046466344500828529051768074782836243394501899133320275212559230275891162926193400739735331842914807302777641813612935031436407585957483547604452167889378652756291323532271611766179742447389084744014718400830424174096146682355417354343934535482510396361507251505361204091428773073206370609552011359350292105939834197770640990085657579392094372290324398896886095505970673184941375271086340120052058735373939895095108448424777904661780560788934977012411506521216290327189380304204670943566782452500213429163032955529782747478777644895288465562466348065499921965515766791127191285177337730962649437716100130143462602648590684188652553847169240160242920071755355645290136334782997337708063798390078757042944579856418296103811101724433971087080984791694651790516238839970479718964252020117469486758895510698161696437099887981008231723569212946815170159506049541697705368425349901879581928950938541336328534540740137822316706506182281130728051335441520250451041493144470009853413684190019636678028913030237095580603460777739399661374113477185320657928956443787080588188311550079736987474013958103926447718523013180925534007058741881536438539076350887106858050168653716828320320343680153045298719105555562939484324740066954206466248687221030969938599309081733443340984091765607931247665608738190711044840598997228533759555460030208711155567888682000467710714397043614876670623092016972782249486948015718202218865298250007810976505160682107354772249911803763550069605901086492508005820284833816426709445637819974141253860091951741269228810512762394269849156544709585808961283816064662934143399981701441692287334302670627168954361689333974501756724228297545887167236261845500365075751704128907376826897663535976463867714456575973201624065086176219383045631479934106155664292366392484305845937829819768434259912666671635544576660321231077144010374209053972674022407770925005216871262067245258184627844256145754048231977518098167111536058424848246867544966366389477498861615471983822714650620471974521529196978278522844217896387868834779510676968973573551958231543885607622209817570938235102295126716493706981375450257907202775821233746615964208287132119801457608891763763730581091971894716514597240848952787787261205383203849236996052864621168522014309045179583453838040629782758189539999281909119366550878489222948205165234306353195492415071440131400769236164733832968490072242654928181347270705941061355120783956442144021260086969605556701443468606843114122603761490764881711632092683855132704281616918698174469834708246459333997652289384016223283409568483220921521876726030569792052296927696662186285997291827654957121551959209814618577844683262168840998056143622513603490286486682027301805308709705360444881081606271887092996934864516577772396246865757083138283894030289941140720385857147470863079234969231413433500097254494860215187996413747282002624366773179827532522331023828167738778638239980289787412960075780408328988428949696403659491171498326119149222308658396181801917429129278979310702795899959784375898863188144989161900356667192783319382069303168573203899587657730910196935137229379723795437498574285828664841951955923430706353103339245756968358542975086306508587224165871596081866063859434759873432885193445725114098811038278319458569160522058952000715972464633940442892388913648762437651895301921265822108385769183122899461196059888349722407555408668438997592031152662452900259511516590784862102091212306962141170764266119716743635968777121400214666451490156460349265376909771395819608865145663113636436033520135876951667162552698634083732382569245216864013452019982278395731155891287894317983513604172978687038920931619449369118766645415241758905252122466734929128282037389812457120883457812582808958810945365330165056148113439801301924640962865386235722821449142214450675817044715116018357688957892603563961345941771083379289257676908047652536286248064119337219890752634409797881050330705497609200125507302070624883677612050953945271585050165518432823715098248914032172520349274292312700258268201063880492532609745989958204895815076684989102232455734362660247547139827868576526974926654233264047639219864016493268408556511940946195481457717315663563453568014881422493081263744433704638619265545243676266642037250765314262576943956313123832916804368555014295264037307104476459288998829240137563469957950768185478904949716796618000567239803158105868387317211151562883632224315642942150417307822713867917988426661368772729198433140971926097875218747550526534051261124153429741301140450215871244210901389954460497264944752348435458311871256161029104702021257803316666679651665002342845623924658337337474350834640099156824010714942941748192767700494428877318888976474980794504694411289576383627095556447430131868614852307160004981612839258182224694880176668625142856106219076241703608258760764495956799741059213484239181226997409831204051709620761873793544809836007652373286903909158312206200523587343778997559716768189116669436815336970927522756485139135682487073941489927510583582283856408870801462981495058301381265459963171397867483006891173523114528569618816825661470722816022406396381744352894492668732496602126858872013993247882434725896257746045573205643872841788831574303744456979791383589958206591488932099872738502005241410115951355476777920012776482974813192429989949475726953526680098885906132227440636681087964092622701221010501817894246923028280584068740771963021894807464505723270081642996279653870979054238733828650922097391678266912519106388949912367422129927659689943069715648481550564123483603386281620387789535865904787323993697341706634632136393171517450388037057705954227223319014825173883126965557874461563655129105085022434353103209573044500423003605498540220430742038162378505195076281512381065315081577768707837925522947258374901400476360725868243095509430082730218723708768393060538062096749585697685445708408290029995157179416074819783973501286221233922611174388592521008975453315461996466607701096649596342841437966055234304032077073291102889084960739179478449951078501580955947191717692577436208960801742797047002468925528735304431662927068691764929028890314502550524292869482943079084223485334199902757613362552662979217355852351065606743842146037424902729886592289313946354762328091779720245480847503891093676599550614422677749202494821748365425629485959790454369941201372379028387407095477169505698020185757130692263323085427665615151776126456506619431004190240114735184104842903569924938805717026967554943742931519951306497952070888685857739472656365353877995922055822476249426412194987952416128437194711215249012148977298180228789869047633517931521972288702504664461622675259770900489303532870188224457549780140135489510043759802954708059821748921376063377677901486646369330933583557062908548340972288801839189918841019238070958466356256698879181816351002167960488754611071845869816931140178522386964946231608470208271713635567224408744891570938617626836939273551812013280862777484870139347275442471593082461240785117141776089634794617612930934692428600873592862489840709500469307664711455451281925885090826432078693822917295928521085856095670078543502124433250651547075675246224999603565738383160351562819073433267145207467676144673428673270428200752939362242556544045071993316810249151388406305140277996244397019598121285466989932504082019818306087097543393221652811958299610061840580833068467469858280758572161577171363893856912552903885300082098259670729693045504120173845750989533318968962156921531000384883708496093341192556973972763609341490555969322528292353857545162503097005623766225622768606879996892892355794621741576461335909722029437710195012417823688458790796973767532131219757446886941449252750187015029498077989007766522403940989674881937113342566061260981082588761272616684183308686363420755666437198967885385433967483641107273910347324213392583485735659673231379988683307212296989764610726770381799016662860704192181911107987517589615788543318204937999766374569195461779305488645813251177418288009829561127634078166411673153093424006234672222790386722867488291097673917885526485295549406226361103731191752925771689211772041799817886657798890747974303708889986671720276165381409824584107421948896533464039093890944735041615479908829890955720900585618638699983511522305274879970106334817180500869012786789651587821004619332960027515925924794430222150016821680947946174887828879950927320458356586773006733699227186125655524534510257749839693859850312809837513285273712420024948172712193978833610128062849734583827263503620235697618875632560302682661036609057400612816816067348637908849371144086336634715100889086913160462690326094986509493430953001589696681441016411921447891297691188157736546580271746146869267409639775343607244595062469694117158849179814578006242848924687673947311141042305869193333872277632197876293138644168504404437198764113832620739341157208815983424858932443105872689004748636004202670734378440900616992625767602568045713669599038337436592134702530413031458089962198936875090435777973365338275322081437527464790769113124742554255539615328820058300287621822271731616748954124553949537441838615647965102444928769364908327212210835266882161875938842876061780147195456140565889305822658930106328819805013401692266672248118511156621939061723179639194604650860806718755112042351417950482882740727698478795821093729054548906425034925709340453830252283854012807088270105118202091803974134992356068102470072693988880392256897799731870037420013204918288563865943618479672702838436817103124236265239208372289470292375992006379098213086574626447489473544509092298465888594132727516322677926559047971763282887835254706588157539936589034564256423767467243553560090903821414242677371123095590745745829243919627988169980610488379289712190838475898973782669161936305505297226573083324060089267777605263058887049014419337657140074523635337453562088545152940416739084460996790140760618860326897972292793027136679552992280847495573760423117571622872339566427662037977997691564545121686345967746275731100023588860627611623116296034500655200795982837479063462721583336108590364640461775639773325278430723414050567711217252443312559600456912337157569838175075858194087577145273910158437281116044973718659549573272422571510746607588155450103331198416833714691918395394915409249668624713617129738282051577055797990151835423615679037489488819339920803710331049443076111526376328229600063040197070401190996809062954651888075657468478321782208846402316041329846492691393829458639730921719802062413327525649464684279726795182100846623920571455360930398149066718159960928683300758222625170521928490095861557689992646127212780300085297468411828400796495274808715792603922803054050351872352233028823933828548970257458469612667072833080056264892715920591683864573333113734849500129768956841944530418302936174340202764430074757914088117513056142555789546884304513016636081078265555190606830288232648980726830393548703793011178031287029012450839549680367559686730187077746107693138766384496519828301340358443867977473677899042608534809462066969518699983301855091225155767811066129491254164361437071910942810263622258994299422168899467347056405449213657072201577010147650286061091151356338678892858155475055268975460515263984884907162307517801726218897177164452333375149737453219683341229521148635097825326532369582863716816039227746409468768389142076224842974214181997413698612042333383745645379564326959691272547511040307121312079392189671456549854498381573221640147590182628387269346069335266689702956977220189746159210429518114470239702134013371456834782003602299894542613973972664860106780131254643328156319043604699545869548634808486131248265658197500290131817397966893772927127722048660847712234789037420781054741724097612062877800618710566170340137791469782592470071655106884797614773155955930541271027957802638352075740034300516322879817517512259844201723847689256619539263896952884877201401742178997454010708554986193052029458035954964693944722045407735303288300167657485921717937208264213515736125961675778134426058729220991946602927436441224134775917014014216865550686507736887484822292640479848420060891685807575262690814198593879114691978978919713062246642033174742556652149188447029404637191075715340977216773534167925399517626048106732409221295883806670776849545991672825357886451321979134972590984594411418816200423629807752363858599431452610739407339742844067454871676709744342568314329650835281165587968983795478706193626937125112798006676717221764008639682475116782640950033710421202681967240094349300469845056228315710339285614079780118354364043400332178021357861355621665788416601631984497997299360652586933860013117270619604799752006612517913718875902249236648972312875566374589268854976649478443013061299031742391141796114126644213969083509326022821654255787580400056551635564259498927627278214016136501820085299410557659327124153225579342630494857216142004597313138042993362542511346181477157663486172204401716047993893838424836059368927784851396030091586898590095884309636654834126412687595400503117129596758122061702660678887124713083833992056404793325600651729803506821692319558781675141000291087916815013615698011205903413992662652479749101554254143227898029519542373232802805411575660230765421698551864373820394922430687056419523233281693591711730504633471713068856856984890378571391974515465546776218163596859249970201342739096789771967392547396305097027409338620925553734038078131744998277318677670324336630397480421946531387457536493027716011206113827327710768536049540255076457309715385408874994024536371457139689425026089737904733018302665285487633271035697751336701668389949141017002566375451382054932005436993183858791793934290920766534292422939688360048789241334173941728655228695689805436348629396668788992172538462050766582199724407717585551569065846107783835328073044210620913044311559609289250722705847244285525617577906665914547303141720757774615429447086101325335568396000135958144116367654900000902067875003689170505556026938281470128153393123875083082083539765241934572101395998062374136545098908888821933452227736284359648162664959958583127372236453345385924536379578552305837500832998090673270177739970853219095511535435022946057016825764979437664845416036699029508807982640598767533788201797652430435614518034635751595212979550932267065451544765402308637539635276822738649545319344516966305159254422590603728332877097554779011701172327885031428192383468659195487802800011898978137875967694024735168082741635263484770877983126447341543540816975987713428424238823623303696391165233546897515132818993214592023972422076995604979029769739850350286642230948044690802258253511376180824978278859869627014074928711447493608929241751200194587683014798601646401444078091634268861412150886250449223691060263445617172778596275157445484886469053948752434326554917430180734205714120073713580993137868497582123930468165368396327646405983954597768108520980000249440333163983454509681910862864838100257585357351532271693456009053313899017187327623566196057668780834561612421879775551693120387484931203338497564111637875898902963552818099323433626556713053712673052685539031614731754507467860773817324100088698745224702965187880421872541794637867233948859620322767284844318067773453312005925537560414586243278111062112724523540747090964817647317278917932267499848479544864601060582764194339577753641361415107375879568694400939772384296574148596204525655718087520210251528610462305957918349805343344434319843237674552010290165594763559148703436311199954164404700763808239181594650890575338901782598046318027336399452903181823162340484182147588357687365281222671406039518695213444226166221295923787606016981508380973809277905848434567610623027903824804126949624644740148456225712500943755889615571352449196423899103222984131942705648737681727361556403580025781962830558264542497811730797337593023953162921477985791778627126186070593832442218234859824412364198316029478365336050687162404567944121782556500714842703662514985765040306445596422896554537241537628295108498809335822150473836786713728074374849771768674020883363662539454924764684685205143756859618248045538559374495919584492476321731608322488532113260425401641259979669749530290430627275860642362905259808782586308946567971434702554238448940196742383141534857869686617680962326056255865171103890632707568522559790751238770290143923784507413087446568948701124349034756738908310048097422941172458344409693811599376387835964622428795361262297041007528359329162386869434989441164521396366486645234475228756689987360303220083956786461118807856945675289346849385345832509988302862200466512836161611110687318378719156413109685685691522998030763298941753065044033095790794180965216781657842116801996562465126040897406793172634651287974097482319064189302102049547633822560463023197633212404482682733426089654042110554304847169121485392073906649913310312093477220913777098585052174816823356443513984779976152060799624822242551700332631923816165399956513299413352177106719176122328548223389755462007250740938447624746773311574768248767640294070565150647343249446697689528998105379238786095561190148466217807538633168907872790502483612136104467649005622477688878875222751196234073446770940367890258625582897995844855411570000594702213749918154350525949419126539087718317125571912605504099559495695360353811070884956650989025825502262812875721639768734097589316601506431190242236255813926268914616505530572326859163427444898035172111261239168607239008378098704114834902063273988169416642139691398853718283403577930409345828442220709258967037824886703011513960942611981815524688957831322196624380421530083822210597760605678986339182974796117936063947039679239602266413910118753510890987506640644641658191185818824531242249858521837779787690821387683872631084433855004463694882256707209456906312453110370385187271141458913409216770256840701497141140226307635739404609055298667657416662744734622908630741721920128471474898397150661140483029156608815316679254164352620030819571419759295132961691677711766496127468159062143237396940621100577290555144446066488515855125656800884837088598935840881099462780297856911650222194131184306427931917166012160779671379408797710845975084297407464474619599128564435104125417764337219325418915620517999881017916530196758859132512899746010868691961138784285769720443366756660823598891030340270979238215430041158712228268233679336806784400433328864239158241811102814029569149195966202971608837367631549427408237690488264646390677713592053830842404828804787594810544933299904632789885359234692886633772735963521279829335809773810686698904447359707243841699594115589230810669319358114261570095115364750562233273215589900448938613373856726299828326977117374276414824100138305945407280825933770626008979478090837864934799923503204482062013482803370079144046139276610138973684033397039258831428900446532313876361523681545442752004683605669247268012727891620130262273883566946079775181113023413861893704633064631627082678294567982219313738551127650395113067973653134153539330832748227227776524109639687521412745465579445469525881106568884814523423189331142262946858713081185981837203466236682160358781516103543533372760823589725246582383205044323930138769102804354921875935673598847959795224308778703121611797962103762760426748111556277593950200947548811942321706560396773595561540525167216016166661455230145857245519840604172371684286306665744766712931313882475129289143824367269833069706216958461204123456456388585133955868225065923923640790791979854528520578112394556059869972128173824726096752879807440916766978044812928854433494924548178471056921036728118448067158235913516098768668427909166831793252321978337069164420552357017606085928061552999572783721413990355000097045215492270958900257445529614268909281527459020538455447258317600661648706989842323907638214199313417416236527856074065215874597974035541642011000573835053197192772457805278193967850709568833972195388414048948186324719109897333705924884942338491037067789910728150317176705675270394432289951715841836872643391524679840258184128038699469797121407651187087245251921271235262743989735730411156759869631433978661610696047627317529189117159619455576734762568371358653600019141981945247747349432847139035558756536145835606572810506190515062760935003980863407426610304064425571645864645643022777511915049588375031682170267821549320686186866439722601045921315698196687205384292353149876825885698959696598374293974681825764726789746084734053554220025853308319936829791686558793416283680745127739707335997854722193071261941037194721369535141865220322976213822293314884442283359459816867408887212241326576158550829732222161586908951248736333568410028890598239496995199062465950476954846077190099007903209472207877997575029583084489692147662170887889883736788349056519356532226156015093071812389867657312319744943643010699165252905584021398247453829960605915987112840162313501041608867877631786734036699213569589612536610146553509983681937446834691465658254391965122603931391123715628132732691475663464264062384764718032050520297528930219610697418084464273558465455636296918254284484606341676547781495433460156082851413416041569507936197420706022110879175841844649866185820312637510993456181490787620032089762721139179774356800671979964657253491371534619970327478554868773685000681265650137576474108520513444893253463060078444687140734730189176548464505622922784028240504906793579111913856618580600245757347998713166652115371368825298791154910453931585794744336511237050004423453046498401668416213520423254382952335890565568521095928249064019108852410368199319420672766454468296852102922309506036509447759934025399008655956619444056331261595350643998942970721379886077032084435362717266826410243187165713929664839227271373245295322787968514438474681195249855496621186605550747695688793778962392315033090706007578763350950010831182664499320620544353829472541859981711276014919982109964926672735334575413755759994921815185150129804241247283522027248476024800748165667101692343365290252022074543138149476943594675106283414527532811645027391392260809692162759465301445301239974971160560116821717013939868163203554132339240445320740242916995872998687053434634799436056695715751223608101764755294069206898319325779597702667695655692734899689110579980132092495132260245814733173149508375782502936600834019032050131878260677844789786057784182596025164419193290022200583105740522799022656590606568393275440525950998712153784667674515333453663044502677206749786508795145349034456134514535187566385387781950174571254436543120054378262607843558648708385110504377557747190111987212646289365965366244204661022624132284032099538303948152711135713154777349115843128235007975876265813551373654090450026172186848676697125273401381404857798547643040116028182408703060489291594943390099177221946785421489137307166886185250588324119184397928701636288748662449782179045168256961805792906276634039743873823248799176675678459078758339580880119590728212988418554941967482697068386596054541142028957073720433671247485977338597169472455276586616440270611090693103783739038745777969807700233842577146256541284676813628059603001848390255875589761697691141485113189549754884126503176301773537643725074642451469653251175827030948134610073359873556554765022387831837628172760011526621189638482503647935859082192627223233275597003313068159407955672351859996207768614711637963800545632991771698692568143340411504765507753583300906801924867176679348701471346063452763329917958290911921015178573045220373662315931551452938151603930670945792237607090997212369366873093732435724310857004866628126760768260001336325054877537638316191437347139898608506960992281895382887026128703285716895834075135494328356129653802673085119934966805114898564255769982017365837783594852315936262802919767654822989252099443139358071254998093009824814580080352707170727237742840375909490633410722911597552211864659887077351445401091108384718268990325454241118287033899109206857921778700245342274027756338195978902335114832731225615790702367638175424437262580957719044584892602718730320967042408863495040481650237501496675638251052122732989820293990762719263265634960147957658331734760859364349747651170185289271907057318167362567817345046375684042297633441644641149251715981086740137452580148265474623443164568435076404887650546569080510072345605289834406269940249034042209337682313362981932210708586602263347512259540534520315028219998209103986494316553298097219496355120552522749318651860014513437945289662062774243635990482140509184812161111427416970990037641475105298950006277816302945585847591552805537826053874143526167530232564799178379681027233017300239564253828246907619797975983777622337823093621527351779010479713645403591979634454770884476394281659552018064554410327130797926453024912717144731461600807051157863743388083128111161328701772043473089151098754769341065160061593022083601829926002152645071727637892396062604552988158486981209745348188142834514370131654446621340891027194906926365184818502020103956908865565946419764559574108226663173843557000738510551160721085039183692625496150837304282698478680712108898879649500719043663412026686644223321899582886356713635721357976525802040399432272860158780572232204592188092724880254056475573804499226307356428579682037261851960100510898550175333354665981240676944585865428973498640068328372570353385653475306115110129939955797357986119855737340230493809921632725647932228273771740506843052447651399520563365095099937036017346080933932075480443216271983936521970702860859093673053336010588319245301193828830385141136689588768907390152480601216674600836208792407296753809996342803457641353260053311536846386299885957310239487076683345821416001650819701619883625018086580337326939346586100875706924995773071157459525394123720404150535613014197658154752785384873639168323419278627646571275474286259586070956445422651013784977274697009203803249595426476671269104777499767002048561264287045271582966552888542933085111901005793703796140076858120682877235442489403904786595707571208761713239746503434161811015576985499857976300599780656921603217084875919936814455506493851939675852769237905239380817352552321695865837994115788916660207923347884563301252661771896926027450527498572747124780558642067691554522064905897939443872096798235204042726569934020829559316005812688243206585907251420494830671654435552183396361078556131468362930795399012365585460443123894739840532370341255113363258610281969946890137273512220335904090654476397210804162782180911569631672574065446553596181011242966215157221169421160233735620910639771303845352459879736001400748187591125678371756847900596404657061018427115486369284256884734768214842211699591176649900518771296181044076199217720490052463016236356316145828139010086513812463068619603630610303772967801421618960164909101677668698532604750168150785309322471143316549360222431062712083936604524776235483757024665896337349590852962864626015833297945720197116023258585957596573303987406015847226748585625277269947265065504558548748759292949309177272247504296070183378576113891542435856242290014162797291312327207090158402133204578679305116452176898983378898690384247483458081226489006818501311577478546775641779986763310931160118950481230897421582209590846753308319034152326386675674259426515117413789126795060621753679904199706394553840951030886980419335078083328160950668499167596728768150845003810688482906633012978987056191001328942384139187693638559929154913074035095087521858071958024491647510177557899799063040332972431125074774768067296176070802540176451225244613084078979608679230460585952464424288928946992900809546168829716929988126563129091493754653132296354491799498778818985623192072087349210916990885513253114562895931806596287689047492544393384216918449706851993870779619862411270275832513192253935469202917532759000974845399010389561449737120816884050468424649840388835462996462632523846818856161194516344415222497530765045344950756354669478444847537199574708346405571806643517182818661243015861135293955606823297686783299151879535190731460695165264465708592579242266133011491973796660101668842324410853214732021723673095758921362001221751717939448099007500056732769484076546603203611977496827617685927345823347378941112522209234750717884981750577443025160950660572472359655671367229076150494199892393080981869355801165423190089189971646693770213159047398152835531595716716874553577812858116084723390863732939458427564880950881510612101842856388659516574038124232556974485057889549053797996454811770404430319665321702495732261118893565098645913747185591989565824268836297776699199758657253485440446276098135430927030299037011908026501793113557966308340033410779540697269527434208291649890692899595989731650345839583560821598602887233229025002696836904207673987005455871004322721208255436132259433311857816776768821749221260609570213295361280926244333941434455978523914647272053049267717587228948674996159048347448982807819135818942561673989932856085717523040304879810536156401216119542289217200457139401573023328915598630907891346208356240538426432766703076375996968928411229127687797906125926192078087735282156449234527835794112307344846958544123186922280887891971698089887615066916575399926629171603038067275333876031079381090621195653074798148852856434987985671352691879131505942095610685612214809623788748758535569793617180626603578138377281110173974820926310625070243650645251033624413194703389438088901693488510406756413532062812351036517528967114794329976525949370528909327242453544958346940166326256614305717442298051693730284160357803907711248127844852364394659326727162929085424940369889853798627020731921530242719995251759779747301202478234203586844025516195210784243685734812788040316212171588984440524059830369183967232868485660489986694388328183749039977798202821852782687655066030913303136833407299587844725622255590864294412193736492742966878825491815109045252199217401889963382878876009118612784766081207980051252560715365741698119709720044345165949383408342334961907401084550366828045487727112683147351303737325608506117793701524133546312916353037209918271647282158963082885537169229106791861975721598587418193865799788329171438102324784345260304993104166265448156342833291940258966398319413961787785033292789671808623096541303859755457790545959898902488197290723721504126707625659978480868632893560915899801267513065797259936864666530962182407756497139865927452206599697550122961708491064952847356662208680123127429016517371738812652464281102462768804691896244807652467005916609247008332905351912040032079285555757202993765014951735974225077225041863810272753445012400573968479791106907342822039292329036591922784216814145769334469280292562384146414253077742220118876834942873176042330761601829090686331228020761344475776791149092617304626833348989432306283368068022124152475816134132982764855201846957931041269592407989792756071644088589969715748816984666659892224520145599839907166365451978158151074869020839247256924860838528190744616178446121659840167573159256640730387284930725697405144111244048338873779331941213928784947591733444757956532583327682211223638386910233120926484176246619614429327622577182873501199867904267235621908231762334380175966025504967282024275873951311531026059582990431698570173384612447591429637430299065357674694455266691658710605098609834482714096581814101818845824072313084720552946906071903664589212652036581509322653691330754166632863248210585675846619479196139143523404678229535866999267392959832901850803151242710826337368761814074014362563747357484846893035491268180577957351492992590746184879510118145239941278597328780010462441871467961408163791451873138075077882607485084685907100616627679387690745629017389857143442629287745584643299734481461695759964788820282571113441298051953640709829691608873789340183735525871447186636202534727987821549328516308182005171122377363137967277524294405190484740346329255747058003081096766525074689729744069568947287530343278480809861953581082370972576111157691994595848147896447570161808030274244695367561663349689763886522228379695494409289876877132490407577257458934686045943174948206933276873893079021289403638061660636966522197633718717212171487098506204748301194171819871493018335462715884931044419597741942844264798533642031264232928707329036590972781391404997365673553989364987941940184230461307096066069179292304880528720272736674774422292788555418177191522943516538115419406656860906469684910193210598227523527207695937612328701102663794516839696306147707433491974109633725647828785205931829058183294576714112598728723535161055892135802449609833250765205293068435166191834399647833008173478001527714437403977503554946969416199098725388121313668806036919944536899972809983343011091103436245643010426112376952547207000758476330670072408916540715550771275299204131922085564425811921547044454420823030166726809016168328742481230790742951798773517754626969819483806176905995621345906450553450220171234357615986699509517880013160166642389964380697786023829720583568957822511113299849971258535732377346542515681004485585621589694217150434411976042879158552574202326490153149966140305976624130515107438138886362196485563976368679751205883578161070537102633955756789655361512902438399006063563400546759238270618475015012598664657159028827316023598728630237980205283316268662546166789320976805030546893171659204920086482572826663582016347843052795289288055508227627286521281117632129529770217196293046161812183655840178167317689382239874158516189981080349997462079662235654023270235786859289349393599325311083194000029616800356116443572608870598558845776693148004023276825443539550082278164855075461749548891561749160729907290308474231324286167087226822014963080252500676658634596123688705401574670771117408665700308061017623191291356749027787116546468657477591974754067495102833938561916748207096251035222464276351434839073462935763998747182621813118316955290816644213764508837601252095323755725989346069141405890728590408035427107825223918717627789972978880334929226481588014397349745373972344787607533384227465488551195331327269173982498233856774093902679686230842833759959838867611236857157999866014671830844201348375543839637559520144063367971507130646539723062450892078084338068913410465664606756545510975867925149283678712165292801928130220769837907812248114975296126190405883250151530996080222490328693250695766880049398357896692041401092005159865930023870807572663856681795407561839372828181130128231736210604671846098251863589452493398321436497870217099933895767963078969722347454188667082444199683052633372725479647708562723378958407972356227546753862170765178065367056893334261741766709266960336052774107938841341744853447888963433651637323334314978668738210608376821457183266935570781982308239384345681615076976983337056789694238390502891135130462145279731140212850609716080158514504014864282309683931306008800255342826694026186986901438633135247070294587507456165180728016136181124300614457205746473634378100792224807392196142775877038417494320285044074438979694243224768997760434939112583783196492540371229778016426444375628647376580178044903468653601029201223351614080074897207488900081623890896676881789353830401615766141630963370030062670503597070407715539907826735646444737998989451922688674600912154651690467315470080798083725346841449006498009426560758196759555679584019978996565203492819918092680026526632901769649340194260780521964257601463092711225772142177143108025788805043157079431103385540586145542696401441667292172827990104044919470824910723834339014382087286924526370446940312165920480280807166373199418995946884663373254360910078060346873132534528531036028122520681720593523176552684217913409077626882314536419958376954222981976602604621111301272098794584048409343700719394739426578125101160949850759152338971057358774785932026099012985686766022686788619961160491841053994265247767847853689795946309899243554868844700070441458969026741634434393967883834027894866058934825187002451887774363166015501735994633114110633053632640259548826485801244859856254501551410218228033938104166837382811922487678506924473397713957107803559298018554541421185638749121237681230310311113520402203765563085751694126907844717373963965058232370969641920209112653140175485722863101366650692657872036224437467373911011093931240165241428166656592959579707637993205574024614193462618536446479157829750558551134794193327593622849957365872882882229456062975613819882464158374010008595002433582029597804149536715597675091401491254997906966505649530683229200726939902490849022602634880472773277735307325820424721342228073206024941462666014497923712830716346975898496334226422469552288719252238620547191123837129107930965751503838093241366377715449417308330004280080114414245468971776457304231706298355016880544553615600235108078141475248635687290610607161678852072297084161942561503849983080928952747151402860163956878484189422525683922242108660651837223025945373062936978913702195611034739065873371381860312698804492050840608114511983594627160220546415656593033624833092576750772941915435478721820335557437649031458863911783214394118512496746421472501929296508794214097820641918401355660512082425182567000635719078995123459953001847787317902872805209801674472087920740246007427156308021230760193870999608547010030964004493806527008220374417108825470466053156597243493248185908353522749649358864742260107899143510256804171404775195871960370729882880599826661476311857971859330032031319668323022607446891629176779372991240742557752798516491511719053679266259148797527393023758533398337460505527263882445743868368094506526155744812759926990495144904344446632071556072163288287213751264401629786803034050974319524894263594937109603738060533014391022848952856483158314895991996030420745116042226546121402530559190597727413098253629582493264631893032702929170199984052820057868732795322041830428765030766650836076305616334424046149045776086833645692438049886033230396017674310525616040310518609045774008883971112010288261727690939628632474175001808503255015373822176362614485173625192065798769057208227033757582531607655195302750285332422933427874505898313222265408521295702357825032564436402888736823960564016329193784241755610634000731261666423412499174040799403579338416154811735794649126105544272784896945382973013778905938609312569060985268526315591384129914850024600418330791670651291348995415205984967048717785717554407492997254681086484656584488490154559040447798090756258640381978454841422290978754940668873676613083484183616100039687902958336366648599525561502448852599353439761607336549421094462805671190961413437780001308046788494752088855578075464862936068907494587992544722504677055074257570622142666706682526850123260828764996500242929439946573976135972384528329230043542895108955999518365226160034599009667422184939826865312005193064862942595256668411874884224590856266256341506777894709939645716800872996379061778877252046794110329098435203751079035813121345796559931847023818877222686303310792409112170668293217500407755846305735372691288735384155151194751541258841415847977659810965873238132763198410675984655829706265512140761261937038174554386560200294006111537849649391422669706095113776613994829778411184494145912083746547739098645043774434290672125230262525825410493841480356387229283310569530192354015452458389782845126487202148521893149378417847411639625032185183016397838663389506633402538754702399976137352611002919233695637675060029814148522121419433214667771247174309256886751999485129393224009978795059584399276911330091124245524992771938815454403365228167693281088644189853235366173970927509213663592537556982680196657381749020961586399147247111292316975527497119664537466257771303512315631224030356123672415596188534765187118984872659736825171086682531823079614234902857401273946161867834885044179143518215904656281995083445104967192472771016045236187621121531796341026083870030903450903492182976359365069470696278230179651830721223949589931871286040223024409745765111716084783940774179459934516968917195300822957424505991840587832888843915722194876364767366690249978258314231697613744460802642644691830939553677757387028362972431709154987400183581165035875290698353744882052352451073507716233247805309211462334684779705477168316822034662493866151771881174866420965343725771073264626171050183404047260491797911129877437543888635456266889560207070124513759142605101331274334968802088190708174663684075525800932604489839889211417074483462253013975522776091234896397794240984386625294664964247701793527733949983969766124190648578247898078977028043494844683238271355089851823995863781984007580702362540046565309938993942649058963772896067250462523884905331755637067964036637373298243838054894503965776410358943314024394428326389154867844722989933839310677467694957883288677450066692076804164456766059405542788831335419389462269176856758982886546870423309786716492885706045492861029287203631171765711726373479131441507609206928635929859017300895881730462401128093231606355285165735106836931193955105031598790642172728400847448707449195545265945296375907982641661541692027184408092259566091527389910300945487104310334089313756003051051112880452301622676117518308363323623174615780076460062561864990538479462402534919178178112638519689930490046281060931532111859945576011843249048025046390566424908736230571667621330947061832936517593197240179220051828294070085495127513941507757942679211303170038387703266643538126950069521392917843954278633037346927466089168082991280225497107361681657540068609655685496877217569361639520941994088336709485160589152938629649202933641958502488750509210979205916373267749728153079911413002902802096443965928585844640301822857751003480373054459006474820328974250320595879647151723513594217517715195496490596166441012867589355853039174784516644642257677849143416354073681656014041666806045298533440213070698393350653912055204945268346288391430766613373625011307680765871564578281087053318576917442687185368975247639006153170053540349696266764384718057243269021077525170715626973667557752496346846878442115154263270740512266733353940979860471278384496360472758665055264936657380152137883336998487238891687871640430055554911482211117506002263291688650503071113088476037257133060275469172056889602246886358762950685457891729029682205385833670398438276263197549782019705587686262822920509628572301284688935620426171441269670955248688942425642579879406863593065864472984483215671331303478369301543446098169010770554459736840711232305175296092226982644138199017296361445663886374575951429161567066131803042864497198093565835815700541042148965219329811066695029819478475319119529533803485814591920102443938706823351131751395066661205233381649064681728990301554972564946382417420846792269585000081094399545336450482455619349309334269054388175892888852642828370626657483335176191727830321792725713626133663470498840381995263673839779697257250009640739012959097901241160284781981143474108468180928565463101719700430569614700192420679458901620715491405888201748338536788668928172662839676186809651407745048649687008516289741729873138812848034311313077467990114514717574446876399617538325462527940508912449342274691325147228952316309484584306878762438389632226253684882581907846602354873053831522177030106371145282094004441710737251470539504528592109061383133030862679688964940295643019409409385862336848136265023594767610431965080506475165633528715407653286084928558200801915900118769246719604392032461268802433369516198594869516241915819722892044020667271446293563081815759884822625745663848961739665829302467746605511289776175501529772564747363016538548038659020598331590041613572149500432750790470922100574886058613440657868581172058584709048030254746019815374521716786277870341443048915545090617793395092846475976356213209827461361939645053866267522757190311658685403759521449394253219366043918395582381682977261101115313651274152712301432652053574892472104806602001796170169640652479312860036815886438870251133053120076355304698646634513510370202383483197918651029407136847079477887091060704015958106850017341003956368542693759350128147049420512797542081106470824253067315876427771541690730757204637507726960313139153301563010641302293584018086517522767685249003240531387234928059232330428490347924707417085260407771082278241689662083694350883889355599631654656161015770915066272767775384218178503458000789125060197962602426059644073361105776041965722507812265662530096402812994360820116731343689895104435732103624927825223465208103374591647453049842257270553192509391310820261176101531172269890772643968745884132482780108027201292784614118327501742483047348953253495324931296344706411303182165325548705799371414707822857863927528832973158409521512716717652067038754756481643350673563803159827616298439946243715222831658558809791027706528835192620755027068034942557873978978140891758743357081636650035640803443666506664723816625294344537474083395907999930571819174682464613884491141520957604615826314410087437099321734962198699991615381069330454030110994777109540272038348767354423919177643093115843712517827964480014062014060205465478800116391614162298058266676047576538107189180687919707685142760142515893901264682426093341959004882699423259641659157602139869581221453466750782079827427567674489959178677960549783220280622449972212181468315348775652416559326512096016966771988855633176981212682679497636341225618721827500350156858321905568205752618355778314112530661547843602060221634201220249870092731963432592675513469603851342370094936839039060077970457608786872498414230213540418298814703208466075328287030784571219296646625366315119163042788246991312622481309279738622890784442267856918266025840987413718968746725098807671666250809872053233294639976032765237020232689650439247171406447103614543148721627945343069513702122665220905513720453383007919781792278868920463105689498798298493298862302108437001699678537073062461685494423788883613130283925080789183066808662463085351461983648197334456160796116762537497220660660774562515081729579531812931629568538219407410285463726764314003420376526570751436743237638437507940259498382372755288967951123529981537363224259897758443128184393226223141714524516544930613661595179739125475409825785264231682006871949553977601866102941934178149034626087847237449322397033894854515341137082195617757602859717928738347246074364301801895502057331703853499058379842217189139419896770620360724322555005762768002826531392448243518193111041977070757957086534619716991230749391330584087417361634173136752461627908030071374716802746028864612710471242042814601437100681120410202630671904192167127494099754648040115703365666201811062279514884410752920308945453521932051143477117546609924679646988182833708887180505502169389737672238272808493097909845335001061339921369009787000638578965651840436592455616502075289280316485433420485367486532454563579656391995226885358121869266861054566939891198190528163054365997117267939478430516945135630236333623069301313781170675309960492500419763376670567534381467629792415881945935930248294282740704558975730959361030975731525641698910929960246537687283424180685495595490903961535483614192322010370502833416418914879656755453578989952481045267811711016087905102829165168318102302932770756368881510310972928626437185728400416280089770394793260925522211093999297985318918822119212858875426413996222371926732249934464331634607078552933463884539525662223207157329285077629780601271858579469999145808746239189018413390393745750547499195877775567338692912671933123929127863890041851681700319993136868102795534410413441062765426184210564242231594308341428146004946799597228026585781949100583925504652557078527550647748930116685856852100627042709808694644759574944423065423087164443476189856091425810158200088158640110377537509099794875206195946566850082035951221134250640568992114414823764295339296146705946935129681851605702977828386965263003857693947620816770265199224607606222004716124483874719105180723508345942001743363233244826684938919488481198910124312205945165795299095059898462973796563335974519914818485453140075920016330540183596214327928034633477989328788808745325897911913660682922833494393562535138602878944176808444498261549159154916836128381523407440041495813845091259686813134743078867953436721279720215342110625195852243445553802508588732878559461358690395710669704999299920007818410658075458810218533773697050647057653655400555357500394877984278429937041756247492732466816576847151696089608101314595474028327826455009262276189337977626386622682825117032597869923034065308440011008165581313227619930861242871419441701887815181015916282976112738305831563796271590265648758711308358238711829393574359617236886127861002725098669676380135509696640879571547536853288370109518483481177419002927638178566282208532756540067081149030281043472351724038416460064996938875919598527451250492294856057351002447549565905505540911542420182301997198612220376557307534641676867565636530864284252459920298518686871652543600527622686793836697957037889165534358539319960215432352417570455645160760688935975557251645401818352932560218497734011719682000532369896214644488159005799111255161414829219923176764293628778305152523388694429849866422098988051984204152326793163257847111706402268149825061710983580866692576914697215902718519137615168838245931683192624832464859313065647236235029905837111769201919690988257825054081431361388601826237239866832575346814755490177396026812182985800115763169618007960813813034415717809137349420693139522606066012807707815710686051776776560243211919161870130449631016805661055474781521299708592965491420488024120395731655608155357761330592922462604214865679846335554219999047646730321386100373523982555031319119744974022110752882059296282249221504724415200005654621538527316720228802075094114390603670411311249438212835298172179146812863519251845274296102325164543139864464760316820129581659885113321093075849075720961959723291993319966983415975326668358510847772489198453086032633372351550057597195479003088153253667990071502373937422472286198426299661555935336846714457619467193271532701279958159230946249941709316354314068350881514682357304751416352040513599917528233264445076441805974616266692173517307845839189570229486285044064857748429938336160040919010984924432940061890947083233227723339716644828802220928598857337726510371985502303516723371531819634261262258508456988137790824227582948364394208225954251874404370354425728599135943995699436697855491620288247565232123324176726953239105813821038954308858201532711930217839893798991482728990578168427128429096577287811401140492268466863662808667512796564502389048683823356959370073119987772050120724442923294055198902501610011015321028060522571744007041991816314559439964329608981891309676114256667981101169231216400302648303371303813368898602665600251076311628658043744150093981020777444363848966498806518549892397695692048315541470311957880773179697622622737314467407422879734192239882719761967533661095889985064626087850540164483949140678390164826558630657764090045385652197096517878126501705454267436528817615537404214964590065510411849341917927560935186156183680026835683951740651683503171411023855166969021919491690638295383224086512819330020249585421818662605282686132836747256076140153655651010194309896393867095220569275424070997412640713620702908946612260537714259246051014342693617955119115326056627710402618781471162624173148537632420125019592900641618974727185644719249699475439210458438666403192431968378506332770722454646981706901857157039584734324568519395925320743670759402810712794572318808029060732945073259632855356701762065147918568026817925985889552389487397996939525487624977614651414786825545638619161328781348138449651360240431848634933182382376007573840070947420803945184646929404661895722604303675539480390132724602820281191303826937890434430279369779247244205881721656038785340852790914566748587071469725602795040697439647185228818536530701148919579275480532925187886815836581834015531492996613173637205408648255419461671590573597130485880842340107640104396350583393230619642037834439871658190223209283797524079528212065635031901656819404739526134969942939782135699431373667429697563937575722538735068871985128560224300344011968409370794879838086579457714292670639665217454011936632690673463040484180330597953873159420177645978785971039383138368446757930331946323398656917882392025066379818580128193568260726088398368576947859709602344173317509371499306273106538760738951683960273271517819816992458035887729931486941005734971623958685160419218504031768310946349044694612077697143685987356935974115937601096906237203918987322171061919020566491840777812620715827756622558504480367537914552219046587050090613421006948474797084384400118108771904717286532699886539023754699283163709926381918675892780119669405499482150299446734791248390016867488448146458102624530175198206663313888552479903149044912714194975380251661061011237397891452070953510668431297995203674009226050964203410806641040579003165511318278705531349613651924976856215033292289752056579832488504830705370062959152226429636200207458730341939940154894449807781770903941306336111933687709210453465799114022624661965887243257000809023836131240187096701644927136774150227437159765127017241101521615700016557658993149995525861587855368357729642483874990623117535336273155607302810317233692352063708323503927974489513449532221406045968093492458151223969994050835265725804765784844411523622597443630513170196746662775276715655199343962092917007238623188530761797852421461090606905394469288396378661573016304345082583929702484066757874275014225075596820816678747452410832172042144085804464554730437113910841230292998398053521039426407109638210394875986631255464428154100805472131180285004189875805683893270801174729008806667715990961247166409873474744802036674089124576520816458162391843151614380979927173741700132314480212616188341275042838293419666735120352794239390753504535210160601109627829078708928153431511702538298289381550196631133952378882742368061462650552645369076832567452029307244357859177037235923656172894158087569607530539348340576381743390820138159226890662391962013956997728441678220482130050213179214323681742797901921701996977255254471618297059311638842246339049629941050257091419308370780301798678973814030131763102895844897267965875761122578966796209253091630843929252892243800147562951508767942185311423926712674103326673562432026574663164497906113165443280912569842911956176270336258785587931525424540659170675400743691561573233586026374023995576786746822767922356773865295442569180916463530659845608065082809181987613363838689358058110400236400071561634046294705690073423311930890721879589082591327317898207831880348175022703773225883200319489284979820881830763654569646820458636109261295210932137500984627322836552819242343790176781459645740325347931249382069230040706802676637693540332541096178141994529545323382625048258008863644854102217019025564058893950541256906524767280055860303732245148337384864712859733483051326787700212375290133677450620425383502424656747054263773206751652526688645465920219582068889920756459874413283199100540628407792519879638150688298391414439883843781476804545445331741789469062085100575199812486044749016917663166417067364220511453942020036135782175251788087589850639407504529871827597934326882064753055174097565482867181775146066467999813012312795486485109968328487210680244173062407428308101846671383448326166255060016364023512558915236332728029042627291644397719506630639655598511643433248128688836075945157093993901930840118065720104378187725745782059289542300808814642168849702301183437202271602704093343247966497413600096008643737017177245104527009931631265835206690281798587266787930844884682433367681180223192133632644096285890463445745730098156702907181026992519388940021375912615173909025850441465913721744178258057194205756158551889291692726755133911344159793927899892890095404989824390910400438153961736392331770700196432090145073877923568626723965360818173567998300137204261065485132377415528486929882478904740549862349510934700974999901446147093805518698528542663444518867411688511434674188420628576177461780208062868984173983897056581241583711539164144069494546505040206812783141434619529936444732446030667202335543083637749734855021470513787013531540593945038604901450249220654212528172549997489549332183877906071618127808980258139824632250638760298691645153152912114617479467228058364993470360739409301161885881403872767666807929865962627937347365025273689921136610306499091368625010658642543605569395882655820442274693921266125997323155010734162440249637026777378884578149567850171613020734414749214960778003713753935919220018660546846212458568625956925357168551821188651046343182144801078378122181495072067687909605927200102127555993679898617875428312763596233954100998560437394631068533269090646195507822673548529119923138625566514473176219340577473691158619136683055996291899080232390186993130430649480020861827306175811023343358525457541565668860120636642731411120837135872045570528857052042004548644541259788946464011823492192325781471941249952715893485666631473202937600468338224392748863110361791736226254744115030201824466903911601425089347881888418209350264200837683225870792583282916372202326183607078477544195778769072311139280873520116853400633373622708914744865405805140211405917263208605392035890610748857032740953583966905916816179237037946500388751267768941904682521169546445376587742917771999528957095722863978083258233265466686078048811220032217649762487836045294680497595787233643354612547079377769804375987231535867453009285771655191643352098704714504715705704845593090446589035358314366746064300407544936489477140755472599542174027317907147358230858391167455599364634471700957009780104582747237246407574410862755635186222660712910965514856345270324217540956273923994097591986965353789047776042224230184317006077932685748149979206339785034868531916408386315935822667336575477407118618479207610602778475736298785413561157232153018795254339866363955189146163256741088229523225877491974673251358933403356545552445208361570124886028001170016489390116578647879209281911887116928020594878820529595413423158096779779608168389431272255148421815972698085032294114055537596517969016083710405511023694859720389894684387295787113755569907006147514982822814487531780004260786944146268144238339716851550928965692956258489850937883954208848424253344702182974313519332685004529020510611520243460330991231598335102958140358485227607473196086744944299958756383981711005288057453602139201521486710130488330165267765590780044322644891171889693275387114700563515303004627341712643899006774197169684354626341588000196321588422816136474850861529575760167696567608643807388884380991360566560004139485782635395728565701199429870441842965155442971550412049737098233756758800937467468138357517616548884175713709440668632465244226661973638443211997769348622551809071950927041943580498599633974380792179338250695155145047775451991632166897468928607491823360418952979575778880857444235565830461191413701502957831570359265630190120480140667778904993783793225693520935545258829134189540134925835418682734017647425738562741596231502805991015327682344117863503201867733250850836396442902948108533071931520515926849578638039988999251894618961457112144146301759084894411931555126034279666939930850551699836743044364127524447233871204136967129503448450052257311066484409145603374578501620549160135879875132195352193782117519792291366090993511707553572289696651826429022662937784312102787436467234743081221448063410156681888178601432928763154737003706030261121188574283796048257377772591124350754776069138948740209339829981230948058588249846286032554862129394601904369247913631804322944171355361378244107763201895351045833893867059480560531735804870988300788066768931912140749172922952709059763188312305898363627003713270811473053758672858432522755265995429081280642837489135710363400118081262029645278403405550249880309761710885405456117471890882784467228864341544636175970314872122601755910786067788613907465998246845342800361100013793302657540025304472770255060699437310337208416580969476531926716132161474973776837604941883428537323603696997505551141758291587278917808544348377299901114443836000792802692204210379576104054308368194608558973228373832404056961141410935725570802849056762314994681616371628562471167303734880441299646693101088985469523175229136599441891292535486021050529203817360663461302151049063080960980287573824811700725365625094422188423634270305371667896017348396022722672738242613321195720898512469078851120609036781685855002797345286984847232479305590542268033808486385914204110024813750798825323894071181191119936666222592028893604685420675094604606162875558933782546191095802368607256654714882894887683512390633413676440527012787356744720609794687281133788071318838440791068625868959761681761223476102702706141629684425737289140380635062285217238556880960035257301975861720042996089245389054513169922354969325985563790705524928642615843535814691865931858133491035058552870166695655462208361814241042597245217062393168989777145296326781383800440661861640569600634462717124057197422751789956813022687193123582246793046834823798003354590585344751190473471363561412919752687035801004833590134726794092981402697440474663282475272142839582439560282093557052662063575275484428970161764082495382883021982286581490406560608629533754137917405291466335457022611576912996625619289871923565015544901319900960805224694201840940510961888204782319643721782414594193629254716493812508844855522537949533828582472271809839736391577219564602985533243694938630259351611255493474271143881440539618582504850233626195519150018843020723443510852193924016594518110393168681315496081049178253566046652330623093540016087306659633446864074018448242254698725600580410971902604371828953893246193593789674636911382911273568826438173945479334490989571123184277984530232338676367031825139548481428007466052910596317211561149385419984512522415241594996368691110729036992237116208003808113014935254601562064676381465759593671808660937163338052538643272126624216918453599985450243042744548043305739540453253985129566255756048611888182187341688481225035118597236098360883655783094696790937762468453562289417432359005902486033954329303432144883480510391183452554866398609541955916783921712893806930440541886680664596683999741140054415558050312573855171624984006005656770868017792955411861719093881902408799604005618675547294572239154112140017425684549874881968302314411993417575015498011224376721359619107718929843514888320502022537959007938040669393801598302751252073182470322170232624821479977959913443740438177401255326206541804374925948992520474810536284241747064061353318095067894670967563434722271851948926708908928271878938699503892933284388534291828958616745798870603104261588010279268285617430582072245650533175232767546591370600319917428507218992170377087921110802080463790923855736383777933938198534503977582121732474090104360657369074832375570505374907086163208969276825777064924377908755699327233397124398952727258815894135992189439551772281390168058951247213859093242198810108211440384677425536275532804794912919447566314872015028288052372344081885121337395480332722367567395099537639906247038094918801665213294321426358142197451772763384979656897194886115839693802040392770676706339679897153477352513270793899662922102831266244849317024810449982907592917185626597548235944403295347577324911782438499234921343678366558933605727002175820888541580316003740440945842494563084651687332890649142829385889944011490652419145452080506864826402189747773095703925261349013050661683939429787731034125244578743406299296550125542541126211185557107999575719028782552433838236607888024421642446643366141338822851271120188297225456360367721782780540019083475457082505652458208413347509966189711756988301329498614781455143765394921359596451765536091673180527946044745721332263345422700030588175793448713399047651568303976317651748848944132969244607926355491155149260255353956456965419637406852229036288179258792982840751489143005986099368653223329020572409118217221146748587752109386955970456333848656148336420684272152544278659779850981789220074035802731073673665719890434224433356439543746702843823510287127401040436570505454244468153046326663201091753101744789346710448718010143752478466618192715997918091584824170057521318798954163632344031143056807326391493751311964698697659718993635702527374283260578058018854390238578489514137972624301315648658212511105025010749457166011990379457598997892823860826286800855779080456894048017781271263651546838162438289053219550497066786206898275443820762854551520812975988771926453501379830072167015550391508284770555409711072357254081495466698168470835904643579981192005392737140553033579783097165846365332324570319491736219416767867007548261080492921568100867067195324439757562873507255885931128094147830589600397986059500364278106193425982659810119003128379902354590782804235053119358738388955706585974586342757658201954107978053434841876115939520930584415041610037557203593870670656511996562151346188385196798028437086405090921614437076748783248486488740036886157481085724649973237306894751819721062868013357805825368117750246919555602191175233969048608631569564845565420083082221736894238025829542834033360870222779437998641715789842250578700625880638622616856928654708033134823160595447218165836115174734571901475096283531228334517386336669047505005393444071190136463258806496421439977446930315788554340237653194061893212218332307836901725910713832817371839894084880229298191038648467258182477465850043085516212515879312624376285567839088203642691633791005813944479712103455541843380450012241801866988110843306365878185019399172194416488677674396285756218090447657897779462503621716461047504002972704210034737536291343408800053855414450662392533465306695981543977301320986221444458933757336003396328459075691774999514008327032151953930583421384560790590398485699458229569747692737102459522621378261978993362702428128701321293097221576773564311075556462442842842049688888249266075211717693848882716466536676203583461472962798783682627167287969309474802217014768267241683408182102013388251884393931189321278648641904887797912234566794270434524312736144374200356687617513829426488254555199062553693140745074689630962038195333186456459779812552258047012077704257182792287514916718137398216835720865460024978965738455988187233875944060116456777538792137078415985868430443369986601890389544745560856849123266929529573777568669884573026640099259565321126104960205054392624197000202561291137926904727225985544350979051802277699760207459540882841951782615262077642563339530666748594825202750523317612337122543596008191920616315349363734677127288730701004016149317443103010195533480649580293974499336897324973075488156758887590674374679988043939218927840672192148505295456775135459800875076979513965315791895997679046382412208736381458628291644997460123060242652432900329452911942553423101139735287232760042939806497080159718474581769204454373527245338759983903214856980319351868988754078510103197797860414472929071740364132289664378990833893610683976443462528519232448505556447438830375722982590516692791507104063939267808577327283179106771360762812321352306172209652809605130882247337079271438014152964358392676402151552256535532352417161751893613491992793522849786260292555571522023212420499517670045321294574108974293512996454765070178847675438930697483495138717908132578644734894730257263259842762308582468572041736628450533287506100050692891627649293337843159562172360210725744045335501326859749659431840105345792969311508418553963068885433798794515459639350534816760963597376455261785126581292618753648851481578594495869388459856860447840947983018815488453464331277186863351250533116033644271794050170423800677691233447540136521534062109686669589445001501965140779119392510918859909868725554083741467479395309095573047218324135834286315954521937009353789885907437918873867491026990060767850400195283784019171317753677930458448308178141987680845085484824173006617039843444252377929080029993787296061171885595053799114378764181809964778319667991914813822226117962166158249510959122316595800134794033861751815543847757389250458812538659192569097843121693044187227625674591267669891240586626254058906697337170747128429184345767464393857786188438844701989228899693652754284996675996609230346887213900178812227395880162863462439865682397393538403600391384530828347452521024088657869624976992836115262537779637212522625743622631804163434958332935789280411605130206290183771672791529036398117987119413881969696986931055912556492131850378464646681875070017624584914757060329892692583942245585013178244671544603329222766819902137048630938032767105828931660855023061609974318521006738409694702830587239417295991397669211445495906484901321637426141979820018555923898754984195334926431615423384005603355776586330465226902209095387991893311393115385076736018771395994102121357315660565815089984744849178241975751885970004082788042115960901849074707091608224229475626311821804199126448762706375545184905582126776719248062095351054851009358355399470891242847523305519720463325889875300128539249767536821724609217896664425676507565493479073347645989795044088237057351001071030837844604484547991566471240143372163540349160030591489161271206037373111689887592756215088108578821124208897077622741174308444063516563055134994153099180320919063926750160739133797994450748224752183745275464392108359963108670443915117764932468273245200713748134044121050481689789765756431413828263756757446423414606923748946600705601727019054833704876891555927245847277956695875671676281709102365976114974791906903170039390877447678541694727689627608776033555547732460826296687940798916013311157672532382550111563645844204361688952944005622608548137708244039121788463765614861949201233532670428462147870366305192930096158009779571820243701509555121679258838180249390498182118992750718128747876984400834771286318680347449232220210447010828641094448673167616192894812469089510367205767397612600915754791635692428705778305238219457167012238496441725399199377794648153550800217918751431796359746015638766818838944517032831747513945561570774456688609463945326533543443302321054295485180867937001818734186378906171843841745246300954781430067966596940226818842297728166695533806107933600308640201985513130945143871663150774271575860624481425209198087493340429666000797862716939376031542537684330163776818367883314581699177125406845399359367940499686711422086019978551481685032915527220179295620374011801107440932461957807840543137055368301293149420006518227457931963391731432023333983078669235260853270435919619464653392539163351092723148520703474371219875077799456112960168709315151545443340030072765320235009492331765527559261259722467559670884762874187985806199063913863409840163556799378746056358444945550473207551831943155468670875575788020791463156944951810611472508722271969014454489020940834712432130315180031138592899092125874455058164767477846087940089418203384853951035370598997847734562544934046497036696589202978797233659774044996402401007986382090641515164344543372703489787688592309650478865563845089575005135385758030826705130495649446959684582722329305008423563434929335181998060643560570549522786902879360252754994992464898216601906606485434246416052040980231972940194860635934297186049648762450312761066270230503974812522462216883814178753336372369618951899827848614551829883978582062540054518033621793277558474592352150521536716203515762394731824753687823510653058597626479384433873619585881665865215771476612587877297778400031399266491714629464331766775957153215830639306149234157567978645145322148903814935730852131394737772763727272532191986685865660710916364592034398399975913627635773964399260466700848658418617216185732559264526070640529141910373105822728604408621587540430676780156199952189929526169778649031330337045696681417173037815240679134545403403918033031011753126682745070305437953772689759716391854318199608182709822417715157187864373202624946479533759368204037475941915912331004528558711359847467356684763394765819450858120367913407610522484845266778311695140273384550198079914331472362414916201800806786398882040229358114671999427008922756257725599193553335439936019139059664457177919862460063754177263289622965182530844442706796675014361697684256198047200632892946020841426656259136566051208162087250461084794646989376264283984237137243222262258073527479012097944243257448653628838065185084461889926410509606487874155289186866868152529492004756627139206256077716848020172625166902807810241241602121114693189270429200094716926213303781689000933657702766077737229446736335240275367103846912531307224823700583154314084100411259765178341961416795924584113790515103800170168414860222711292517422689185459199824190469982644515922973032334752193064121017448469666466597006183093277817427040886289082036733456046187389798291770816462617564252143897843674051736925914971207266756495488044118276851537482729628222475654857585759435919211540683755705633160039803162909363986389965063535298844013577644325822458675797357349326418155270406040854758704552506196419271900448848290108784980696344261049111309872520327621031521133483862688356122497072270902737437804602540625919641501019665758825383993258849941670484155472680642177166168682204335692695540569112514083388788933213025160338279001473820384054864014667113560205864883923740101528887592655422703964851885824493735732781767719174093115703636444219155752764561171294396743858319707796084097362461315826216802139157045254225093333746782709832371662548497779109378864266300989853528145570980750145455026658094185324019845310611030154843939976793681108903049932639066601735932311481715193170982963008729952009409565914960098056440454159424878592559232535443682800409390318071334155723798703715287042982506914256604528483410305605234275444881261881381248934109226829905132143856981250345441583240998785932991486042535231960448657053708132362290623963547430438588859464208456886167836636899579458051957536572761940140830835152789451893479593978005841402638224710365105140162564532413759587018367383999693929510509662749937344492190187097832322502436140612636035336302824565708548353971139454107337040442800432933751156638933909508928952750973535078855834139718780783841295786240649617334721536032851151579947272923692498384146608500101104916644047157955376665589568295337866838383288579937693178215892433044624507495615039647459228234852489997990187961265025827179173216556316801868253321077733951672095179476808761189122344031966096986673833250380366461189716816801454104442016701991225980376577765692278631074051592704801660982006281539523406395704829422928569725246022533312802512917861089284566655540025692704489318635107685513933879563260762586658656733380778896269438152371339212572822979586539400095682647193460358596428134618547614369959622284779765505490074747119517110937302265187786386306394177253260024764699365803226996825266966743383254655505600349868936285181176275218894307137937079057016486085766986448269884739149183199838639764910107419594135079443811482293136876170165718046805051364255743476885662406037425381380164680759538550087210713193745931812016713494019072210348816349071031075517987020230692028699069630760375320452245493717117896703350332592042563945751011351377332276442744123766520929338513043019447642935399002441133564922368096428083380892708596304588685486681742101238169747553334673379779324363446622677936926248326653092556876926783720673643932048796273195087373054669442764994444074697316044410822790682065224236396834717753402353976793646654635449706517603112201765465290973469864893271265878122721530288347687680582376379204993788268266114600194453994944174218947916990944618270946380600535766809412751895225467828636965519249107617625159857407028753626240144272574096120909485844576485879156402601829046585672971266104243835697690822521775524154036889986498766649148295193764859043371317435866513750944166757416584038237357828004778317414478107597790070373447789365273770802866007645860461039627600179716403363197955971362984944493360896773478756980537236238607598811612969427515687055091617717899419083396804123394166852353910556524764456057894826283116993137123895650539354379260498078491781210306294459355731473773256527718764150337509553247648195528301351154205584147996262499012609085959082461228807041674542924050722997624992897717570147205141358328198242570747863019270215101839726872003162579669985138412488665192377047134589111816580255390974049652595155189945186955430043135424150419878421497562148093605767699179929085460278896037553560010123300277367398069435642064441715502612125438930513147310063348329571139407895607706418342074023899647664979481799175458631961219480909784960445569575649253453970297067778357876229515733968383575030401833652162185055287396732723461609746497080420013645265733920461665048407190494407411110713233607000296797917442195441083325885833082832238830660195889214906742488880362544306070715065213521202878080919572584227743041345237324184621795965857628834709357475762160535403185984690614980057493273041879474440657589590879456319553066673968782290745580612304020599820348582937749702924227475187648098455314621757981687846436915654246529096437645148298720444254836385138492876056330209831420323235940142360077019309113530352770323002890451370692764671493667653803581072051109771723798450141272336268028555325830679374027765040521560161710296410682369558647920570815559382902283991247388133537140096351879891480709434302521415077245788469256949572255600095068887192412432370224672113948444629966935634642664910126730921658981378397023267869525442531691886639064742260486691215419087577507028095454616993576095388209774993698644834727325349147221119075777613916992585676315354574569271563384181960255367846476337942283591855141527478259547068791771808111680295241924935924727123256894637481131428191147838660889660455727201633075495982180486808989303262465424494914318849156247863450158146749479877601122351037583449834732959284390096666882311439158198215762533268005811119139310077260524708293601071882272021888916566270584326492787489205348147982421511327660634582902328292833547084729765834306955607444603741436389277598498475212289997845289127483281956576353219221481697244096541760368151772174109363688989016331525224018240717144990201059015955181316720238173391814911448374241174366477892558601065421230085518442609740057336733678209817234861014904484120079402676302932390407428448581651054902421421908094426667270347029388219324107173567559192418973556962621811219604160371015673565348024042337011659620835738423862913060093060040968349672445369221068319254451352207283897368329715706154981276011436624676940376147933778153765193676255583526493816472597996388344129490810931568411259995101872105962016133521305405220157630299116777603926198810275593527477623523955345680790357055742811306791542122248696804917417358996021937002305209763427775126971012852168080769001218628371407458434079129290073352020849095385872416631087013642039523740474062659197309183418466210310570276231816534616635140166217431983982267348708407222946626776651390495783456806883088456769940573803216704120248380578519627580335647489666356522703643861158761527111895964967146780978538442120062615118322603170050067761688356283566411579395667050518246801633004430677144047161148680304584895569847434546975619652892959603362860639980764815910184192457468370209935766466426666924972736824148629600676489359476773979202212115908937303452794847872310164416507491891522863189690800921574426420860737898932645470177570916824212480025934986284635903347625216927120973516557405654033234763681642756486157980945905388765359113472672526121835521379119078098752055549739489527817308665596439301088961618335873732994873485127348449956233179675982951073368668147708472663505066752553150507119195220886096362584458337425888621038905446350757951326216241718590663701479652178071537359004236993166441384966975265426508230566929799598348952889003685841922411643620204039661877809015422915700912642803227905190740369819648477727577478868177608972176015110478700744117190226740595020264922969032260335442478164151275924824204789338343393963746776013336771338876825561184340641933920436763574692765214179679446678509298191087347074877460517588742558552351869659011354960356330631867907795286771228025639281423318705693515329530744529494416504961888071207394113269846034284136027304105013193459757232796090114701431618853827043924407418965435555501634248804216836998499667428191507087099071470207432613088112195049128548724245765010106386446469577848707266983675567446039320814251496461367846402406178537341866474742077218069410383127436178170440639813652280333043301877597919973650729344035161176257838312889725209252227478256635350931203339437659248456013653828942010058660769459642163363660029307347065243695971117029043142733987996180386286271409685424672209883713537676325287270146492641917049883224679010286977590070032733985154810626768123210971092119878013287361453977336104786240631847862735654271108043974806934843342495057463868980211482973259412790108324202893942052751968264621793896324527037343867033328414428933453998818728838970170202537048184246847077257281225602862435280046363332492727981793937985101228742690390390172875843182135364667232613712511867485302559129209314439451032315658595548864461310748248742629101914367835783374447198792982121788129696734210139403693653528940599264671709354518403795837552732750093500967468101500144843835918076182006147694952155816850274031983090250235963273539012754550499143946270218291738280822227864121793231459671087482197238543017836352582335841111895887872514625271086542227281089896850823123406192382212163752981036566377550791610655234491178452655108712982044525269325063894573748509796471182828504336573864794209313385407795160898555486728026593028951689310931173594288715806476528134046616482973088723742377397845479597433568383895610578793867937396231954853862141660353599695867440793978007398149953228042027441776088504261171506489419748144817426211981491319112848390598954377587507250212865260257123763979389539538509397026467970211055693127550570935028416353242867649400661987832951579447771223608015145911634249816446243593735247108313161377121030245726814420301888675111050516863093049892555610907804188168803837643961439253556887543187766461727038914381967261730486217125724652555673081693351099012033828066889194241470538962101338113487442452693086865864687484111258985883895179300766278915582705332348171827525797570326174685407084830086095586149304573062548497174507097531897432883703067576858190961551608886606051092776220426831363666764007052353592055608753921448230699965053687535516369609294822900294301094815453303324463102274715841883723539746937134590302675849993933408767053326369763454582009217319125389937767192664741466100132392623242308814846240091282225807793137356598183595472930971394460364938257760544265719787367642365893790954050224399770007704066975457524807453109371150190792767333506741823723720495232055783987050583142617663427248202028160557634537489078911278406180634992184425713723714272145541721339941208060663132771152387141180145392449041849307785704341086399860652286524534991506475576709004945634289949695981792420808867518478853252547934427120267623561628267567240242545895125491195599289074096725746515216391339188792814562867532102583786751547805074081937771086334745522131526357962943557987157314872936030746696718854227398268091461102302969034386557214147391906770159253002114481292978490964335951337492813089604927975080756136264552509196316496951965693636039654782308998465801094003542712157967724215579045274552843854062760066627560418003216098714683500879536769295232274929840974876552394394155402669117912169184597009122875771014846385303153318021020001886798656009239429079014787944023140552494164567034423579870453198634083803612605800261523462807749741141712970541027406191181578734751778269361822062179812854851309870717846161612869688396032393199642738706714522758827043668814480288566222069997779941895582479242505154682155978885436214819542865608685097818689464274281416556675607517972740119511601727968090971669367385237467261669857521522566285226556960706096087193999629379096979250475992657924915903489452382916411693716111413807256857946816402984304023921678003802927511203880625764861467494044011743589330980568797120346335909915408448690349414362061733637158086300217539007525537634917164275690337765564513487392683013838574930299650173541734260675833165272915915733265822197163369527162307853587576424423318768018331217496887706794483020142212501610055676352019991582438079849791799528826893037814321109933019240969941147916017015837743314370940674384666402473430101975351304069736522510192870243904974567462820911044650009631535466948854251468536269354448025813356474921930674163752790743506070794555943197113194141862836328028027876939435707073284977794897598556391498930108752437278478568167395376238632474876064487013731454154984688023479727826927481068744497354369303237996967892611984422995972417011454380905993376715443951096046807135498041153232251018964056599151214061639867880698112426490416108718879233555061057914374561173296669273807094379128032490957366464121153001334643948071444592016491294367070893443686956643438139073082354396124209017998526398240109786084359181693764675459851582978657361273376009134836475252127640036528715862235549472059552875229521437537737079013192203407247033152914210949257936851853114959045056096553442013506986112837870487808241322926240034514059979824254418926185373936185216478694078799231971007090634127161779502547207824280899190309636307815584414111864484054030967878399252315736700217705965034726562845482423370936605986579897419272178312483632138691382668322144119463771294361096780265379190080344125387699623864613962344452639617358846506075943372777681065924877715513661599178424989758324520416430215763269102815191366343116840121840573353766890321889321258208397944455510278248324854996077108146109260631306958297071904779875978638307699765582282634315222459051843888744179909722911683805339606944890351068382436047090463833277252556532114423725128147016392445570021592577257841925603802784420315967960578956671122237319022462892423811735821367244984268136079996346295890993612963166555407020509897218264559461871466697254159452878180859377604160549473388470077481178324130085398151239694870371044360593007264976905633797769820887136888422970388540495467785596848617056277506459537726852487582156115785792161126404490860203991092782698071428158665754275219695526060145476584378079104205069775605656223688808240910852502337493972977721574897142048710776973021923493934885848473347762564072584802517537637486975914972519255731603538822437939454709262188985444611837936156117084971768952226380455146292089526072454046853162488130422605340797972245524390836103061571009241134980350279606044431187408449339179981682543874972177824888733352556542337475584931758928306065452372186448944102102869215463447081534642284604152277857188642130257609408774886137546864238705146070917376291513994148368915731261984734011687826858558354036553043320439129839113879457028101273584731628615665027640798467275959635784790984481611764178092290646228817307350814495972253493449009312065216929318495228980336626505122325540428848041135218654380418424340143775060010247053241631562951031298888103670162701016612228843427136827887589693063704613428447217723413307749988757182646546807348321776687264970430288379144592060437952751493383112389268681437152426943886510552560499235293748381733716301094819643958333819208249142166282305482998740271041681925830474050180799496968989721337581858151315861197364454364679157366565833481522302779936709285497829340520129124607732812493420985001745581630793073873168567002887320389302333463776928565605834335365410986251481867821065645675264817292067245006502806706416310090322189531047108745229891350342448155724449769425418870130446304124211491941317095725724652105377783694006060066476547153438615910590048114190124492981659551217179195084801318741000781216228846192164333287786094607535540869188509168924683852066309983813530970336866696396571465554834097992171990625901640091264651116438165936190444003841969746757369053394609533328700161395623726318602266884236341143245136244806620143183879943472963945408723061510790492608614637169836927768094130640882900418610357944296280669076996204766040873005262451072814257843525221288333196739677899551442695236567612920360697951187114694356097564553912309211164527902218001477907744581883125304558771760033731356461128765203215045745727667508315664114107786220817067857710254980434948964986009524823218021102309984271547993475199052842400573191942461736636872537484496409953388492351240026964102894655062208892273300504248744656138292135329358501253365571997491013223100685665063328329447548625523614757284871701153256940710016599454004613257300114816377684926381905771802865773389957705114920282103684164414052759998412600326507632873024130170117463700649381611051448155907866973745596109132178678768537509460589842100570830586157247261536721355854411726299793735912810634328181045038891471840285049807821735942615962212327504785761781029967955997122889952358096203424381850273014767165833955996992466794071488635144141875407135015441036857307828720171310860621165883798435634829824214216212401224354895548469205933088591018222856377750316438003407466099148697389819213212395581797304270666122959697957872845380387539935900943315930489238135838394397328269874068515596724929400176604056771326635289275108830567788669926319180404283372421157663655018664124601183830889417675038099205324010165885771114439686474535428611984346482876852869151361123353176026079095491775542392777959358608411041670662291054682153831826172429170452211117960290232374748521955983459463389383546252666480820401821961165171516181800357578299237496564724037853924437127902181015559106421123490895428689563134971631218924109476265888958453176586999177863528166454872460893705380935982547585450335074922480948657155525883544568256786052298211748526074584239897600309370362280710032167919490204528613462479039071618962923030960564285046107954864614198093141747516089943004363011852131312081283623311052524580390693495838047168006117665024111193715185086115438648928954198350205406003886156820710799941805230995744014237761305830874738290184055425241232748051575111047234897514085106210976141385902613103368171849340210387866138572953154733759265620638201253074015704796501877991197774129495697759824292429737000710602059090090105872577051386832573820339058218845153670198674009579336657544652102577345982065298523190562488533953270102559600501465493867873124552911894647619907556653870517203701408908644928310753144260348113046793519281525875698023836371726536498841444496804164599381196726531105880783890947748337849102082521323401433221134445634225694694132422833665112671193637384180937116456717639901126715418449393356820956904749204364093794597722418102133956911200498945968974103584510230729676319933553274041889263290245475560789856426332249273742139083055487211123650497557614531254086747216353100897158742721692379933639083795349509349503463222316963507535184057164740641623581435024525734752877009972647938160560263181864405143357610205966884179955105278825808295268656102758697191009076493326654443538709757120281695785576591583764655944787797158061822019229383762375400400274935558254308101476063143984197561661304394452411494576214408108811897666640760363079275298667461293029339476321053902830337638359554427614293741263719847246105333917211087726687630687945793893356027650389676927787830290204754530670257986269552285398287017724738196454093579035981050730863917499111405669992772589882114508907091921909063018986106792499874830297503951706651018614838125431791032531549028504058506393707287035241109595257212036412122574601856806146876944397335197784991931576320202183503150699699860457484971960447633478864679847474184649169789789082191844852400407619738124513635888029910138125196684480369378098458661847834583902737768864076802624739032462612319176528577593747602230393528593980057973790138821798633147328337605446349241668494127817741871504484070070939051887940052148243224490710386449933211784072599172166128093323700209390577772507592482889225215065160833930129330821550540489796395697390107446214888204064597111394749822301370780288764471254204042840840684358212686763602750980583612035853215142314380279787393290022867724090527100313726463009206468794188865759672725319387251892026096634806117048881876973530723186187219841557038037179061707818814333518781689825951406295293786251963803713274828323414649658603860826767819103323953549962649400093132039650035396797784873377611401055767149271111921712747912010901722147051363119107315516362440792893056853816468771898216647378993357073957643720823097130372306951084745440344887552307907943456861946386480142626445065548750462637961771926676871341367220087440860231380427431084968828764869455924681728196921708055215032215664597523851797018982615253455789810611335012883645505694622080130730130915882425098962587531149145759032559381971231250659035574188629028290318298130967799989233731157551385808665372980406538883547170056884877377204469957423327533257597113638598632620144457879955789532195805720423795172886703636380468177641108678092586997303110050542939553266252172210166731538203656337933669940311563766214013513904701589069930376460866567560585986597165503765469916715471546802881491588285569387726583288037600703079416809649928821192987134735847605214972972715375395415304881358983591634917730547800601340042956653994673644452555683916020763482747043004305531635407300640776796483721411088233754150904645175025192622640712618880398196895005901012539827451156167941518875501232490191127040169096822314338287478276478292865775198930701029503730289405408748026641171267721098281804477269360095664032924225330657735574914841102431175020557849625266479346263224725358865152691226266195246659447126829650965363422267596584404115878999804757375812493457871750990936452202951571671584359013645473914693354433422221835225421831605188217085024946420074220385684194899171637819649875445156258653276337644994002820734531654912729770375408650762074553586593106408142173634712140543269427467389374033216795304527868088323423503140441064918840748331756662053723432294688026221722786612432971181833064413719566568898039743934285717099014085035507749014988586673423599293005488459584415244858578164044997299071477559807143712840922144905797003508409363364923407712221711222698062137604865339328440008462257982477489171745076526604264830226247346963265602387983872885767555746346484126019307056142370703161081372404739425447454575352697650159218796464619811026377824444567988826837810458666895668667708302657047171150555111395230791102198468968872208655173762630527739458068679532262637171626753481202488287687861616290798874384446780700152006121593413988583745346437745731724711411027835525874804632606069461163298083393467354441227698223049400085571064063729326782796678646505878630580319288097475815502361887507224638833677131585515863874839632555222333669853048779453380545890596128094100639969186499006321044595876157975346939770128655186567235715574392864806320278709580965713175405292238104790967782243983296228440209808677669812879395298482783070573920773423879904364146469814728539675184054777971015685249402858978534699075471182170698962540838880880453288643328455528762721101603573067181800689637891742983101147770091586287934229210635756074564924505342294698054300706429745118045794448832270415991902593401317728982554545571819466639542865378175755643600654047215981257700467620151229179801873115330434118819052539935058914257844852131674208707011979326318845873751046598215280791896192381651508122325279745339387242733309891423961542424005011669885199798172775000521301411696182319830525905147295889892074243209740235942762871026514151430256081239591040720439400022959819119022148556574255903395370179006335351053522119828402901272802775225358397336305886017872686957917021971405443966886857356225178846840425937432209913987941560182424418915288713251028534489872792430577073930884579151443263655246383628398351472477820303628574225942673953791690772938049748532337020674108738609601201034930448175841895580484554217571991270163595779685511857457910512908708388148185254677177151838793657403785483605893463869047484401312883831910955063322442301379418901958612763054943398904210795540525324620756720694084563287836950470382215004061963090802700434816142902312366088351652156654898772797962663441693414199571545131248495654701753785407602170135520181237825172216837329780139780677927426929956908838516818289793320475220040804495730448646022006519500543854487115903607615259847628696511776614735283294294386313637650241697634547130830436774410533561569902152983957241809216863701259724301692104244086610964215073676816473386974163465940351678241969425517270007333579041827612831286276102032871372021251344007449538275201541794892423878467561239390357609307723580332640636076759722526800736907562083132161375972076029554175985293748241035469138030356573378957179549358661524247041240335170782282035487339759190653165691089882520522710153349341182829966016213438800200114551514561065388960495880863245957158322104889530214956457928329495010241624651641732251283182013018703472824716100486905536239095803381374834639747994083888706903735198747497587628398057869719293067047410082918325891680684701691331024045465889085665835251293367798465949057769678549653124016717129911377333751610367457109520522606835994562866427784734693268870926656966992020945620588380372027915194310274633799511522100832499500700107956095674935403663015937585427757628809180575932042460796552336844906246181240624925163346293519473164091348787824397929248593414475301754310047793083737051407390273529287368987655952569272988488647217694026168524874250118992346429942803479648028979634190579276799146613310415256774649328754722603696825023530138261758909210896136330730662704506502439353284798032832014306322057514711108650253016607122463744614158312390106814250485619647110017778267867109033239333228888979411947917637952691759470267663817998209134143352527330888326367350001811140955821086687664594279693410420170311804336211803051112628990653258549076805782150078290953468820719655394662818453576615169062583783156483660972591804599998266306708621682855358193566897401430496502151887929976543851172771502994733000039822724295568999060424346518669578198752550138153500078600034881195972909043541726449528573112989899679247035586282059884202836323115775174454337466517339400441518088362183415459655835323714291964999575440621678450176604945602627230833672536690947792883256920728615413116266116508330549158181570770609902008067833863004920889450984721706465640682104286944046165961545906934654104802036602225346976846682543039383887448412043985839506821196199449201637949186962829634409220298191061040967203835524212089405391843912373203728750881551089532772286654364640836932773097667334111229539524507626582844779092312076288103706626081878377644007150304556187831205644746191644067322715451626441696748892222047417597896727328651018488979025145892845999680878826356033742474588554009167235321723307851273293996712005842675339354651629544785729483634322496523111076702700298137578393793392777291393684408617704726330356977540349082798119089444405950418131417191288144620799559313086781907994801496732314869325108424647594704940838834770344146857115520357579741950411282727594958922122922861358729344329694272226669415872446025464213934852794566201432667192940922168325847076781690165356776996901982507435856325489103131282809499719152537171207201895105361508952190043402952937673805037773198318516767586926402923885577160735687919417535582986977769689346092238257612221647013836916669065604460330382467148728551557292135907402166285878649560327237507531541662297853845417338073423920614514779211034919012593656538755235229836130627865784807183797974565138587510473887776516874128423274152904512553144644504294728535448026041901742890126034744452926679066463323904583473289766842394888962451266484116104802320213161750504414985783640591305842526461474889507293431339334409776288401015649683616690698901237897603203155315163663741268019668894448606300676208576226913885382897002798048222174381505098386933144744817322197636032021612956737774616833009394771734097253234224559800982479695879000177230864338354615528274652396761643629282184470400307226095813667993755528440124974902956788552975198006651468094642483312851852472645375497537895774732766116393099964204271709533821061908681964263157656690500572631723062355514846288917239820521201598071470059080343702354268050652695597863722988104227971476990997505120371714458876651857344377964251690655429207689288662107317365041744905070007369514571685091242226210333799050520053142975564647435663258929202810468550708010759990715535157956383762979971167155849643456143545715859826190571438583391430292152608727836136594162723108678980142421420825468188692399005923985016454089179340054484918804653291555163974158752967778460991447637862232308377158360748178365543506317104508117521632349443651756915318175433657635920899150775659884654905726089866745536635877622118880634860119149637012906119767293269172785532451828863357346880179320050420038893084228074186776585478219350119706847554178513537630565638156139118252023813940678261359858814867833608106117298161946068487334973395852081155036638659335942421746300638484099016601212129053212317429261268162712062070958153723350127201883836738299944072804939870212229008250130321723255137584315701434681219336547286316382374914971766035188687723682203307463325752110863848097878567520425062340898248772090859779641344971273608380280292744439168279116383297688429305799467915623542174217965281210312378069242865050272040179877580975253502670997182011401501570640438904468191974035723705968202463612364529557382384966025950726803252816947879625684879182934070350572020472799813983959251272405953331593402362580483579174455040490616814827857785709069754533614532569590803171128630326701049333899759248645545718226376912464137337549323151142337026403218061622809892492962106283450521505737310490338707630559034486055988243005065836819988194070921078700596993128451372275984837752108975254142479629803617898855517921932164561516809553140051198068552060150428264462814583267537378992401640647381085121569287529878282811803064890289958281193368570378465556259290038892372767446060833455485130974674018094423164755017546550560841235361920652388277705944025934925873708991315700558095558440949488196060930185914822986030632710912475041685543830865470306113728269014098758518595442438720237523792216053802404039886613866909675851388445058362593941665128672373842244063743638609091567637548962597137672968475559059200731390273335816687244129652030508629478731464914083002566054191133845485082882083370666391981702800752758408906573803425828446907643560992734412307800237166692019544723694189927725557035641798405292757715827018205494218393376303841092869860314412325272037496053376250926456432468899551398019307884233308805350650592167978858639056612320286337364708884827905873299504958751983493693147050290973179425853825455177356472699684518626945598651048679337086084530953256078471389426012758597158111710860374675156066147499841823523489521396832064148352638806643404444515074503372038568965457112935262689272303385171598358640240842784649480784354176502616153932784210313289380028498185589261412328738495963186966805482168897658635998775094003082941479666976376532375643732661966508261248017935972090693449135423557276013744464707426678881021593594065633893401064325939866528291846937203083667648693658571907346481960662516270394132562640506269334508773484578622140792906061403165473842161647682593243786248939615933179026805524202989418364837883572463977993377364878210770350362560866612149571160790599531879498053136607244156133978676330653187855335685018542771990575756981430586422946019833384497208760475339930773902304820867087342958736154862866339997243404140206272751230280796088476135073013122551811988074180122318791214423832641326848673116979679818491784198753169244732160616393188053953068085838590010199867089654906865191135743866253370059190452692066626588305453401354270316599885478499325082386796984410469701240347878370058900127208424459114121179794786259623663813873687240383429894905529984977469236187410870594750814245697091594011362664503034504751767384439329545633261844287114549571590956725403466379966788660665156350777612184144593916976539730727068216212605310203050295536188398714501009891296719905775751152178121644257026442054505296956437457294197089707417581784174259847726414374838224248222885724599766496158030080047320598648845859261674149645026989952692539121724914133057112596330512595668800089963511223783807257084904944117228301581152125105744303766100370943938943354119987375418552929687793549664734402516814908335916499370643406660989362986568331133228655569437984019875320669187959999159572203288917322392472525043993269712441370897444398177212847585304305219664765940782216496443665021048170918757630864321092086354815328402632041755066261617274758673316292374516942206662364055368871902522004444674439858241725624042646777158813332202870271336779206854263296870207468833666720221714459449930969548771115227639314606928441432466970060840434129778346946396407633926392810830842031984613354825931669139738005723026488442146561269033126444919259090146499718340732776427506512387803750301538054101728206948675138064993837681305315404881285435953238159836199092541910229228808689890462918892963183886157383533758169880506909607462319236177779373860515106673967282577851004533278145765330557153912024465810888366390859541805185695961336429504594577607409157717703405621881227817327212154662944987465191396597806928710286752884795441160483523630287861893698905612743219276271901934409493528356570233387856554053434406301407252536305930514967390933567918153598456071639522170354283591260255384361057082949639379941149906232075706108721254125600341811433915908068617227274551958058913918711399461386738358353909570022971894935303934515013359126192809045338484289566351426406784936462855122546301644196092788905895060231592396350600398421814767066124588235870347644460452017193849176792513904430724983546552639965036815700936981051457811071933146215501568574828760998616567523912976659677103921045466608622260993346861418184972077559387495108247904842936425691092490935151172514420061418324677808418202753308661835015410393579007174452463262610759005365997017582466608416526685931439452371245201376658724772782242767658501191176892976914754703934372494487645434054621620004008333468598919918837865494723228835464398735055162486626925718815589392731527289991152875966929040643770154564176092859430900482500878959703422265742327688542570079023494434289178368304633190814701313939627037208885465031979541175949289817930423447556802592109936296798208028511926781572626229235621927163806186878739691303975329434828270608872666964893832832038678678706138159295704839175036647977220232051987444795616545278318384049441853672494145153250975360788316038889678576233303167310041102730632022352248398921508121058565515766544246985187156120634013314488810451269095274280627743033734441240962348658778964952658103110464891411142408431666146884709772383742150962828665229006950779801177566726391316227151449361277902615993790439841532382665533830832019712499744236346596419027135351435521256291199754141929099640920091976035479195026220331740938433006422776217362638103349800935333986002545704601033878094186051126681928832062709080746056999359234653416752927286874956177608216212465270713073905634635550518348257647530124005159207308210641407471605274079910800157048502253396981754887732968228184639538193463580960482837895290555801688114664204272467448458771967281279198772491675980229790652736370673603071620357745173856616021619024892492651343189677714870399920656896201987668407875976522866871168715470686983014380534098940545617847880424610890564188148025251266005919353076252544811000186483381058568248317923130090141015059756621616484784481876966534983317114939190273194997960961347105922626274002989003795898458438402639855174521657767642679279738304168667748134233604064183208395428526525758811461325288530715589571601721334701881378467744551793565966880257338531064450744882821964581290615179407478355121743175759737662257653867159251020868953081302743110199931910743110314636661530735923790434538973584095171550640632535844129563526931788010873392909058164364345438788593301984345941175643368887555335677612241134552192358149977171295486785469150187350497263248813599707923082240108138426917690175678381867092418248656120440871919903543028526835445634668202874475540837389795547557930280487174033460394087268456693924521462028374699477759930403256218764918810255639651004871789563652350288774377114838400604439147789155825429574029205495283408653981981029126109392604374311233997478033036205123027374210003871483926734491314646766701089608237282041570267979744689980344613923962314577240969093171555429056204914778018724317369929977197981978727317643631643922226412610850606066483760308705053105725459174324185960752896213001609622656663751565544444800905115614500493503264765652638033165339171043261438817692238853417942926353846532147793312554872401831583684072638827861387644923987075832267230299127329019028713485027364031334948985454289544467695838485934960426970496453408321380496267560976441835741415908378745191853196678036781247914287998810923639509490442832391935803548852808705848895116685969749031348341809888047193574503354338164064598207432804192926267204205136282508506430001001677629115149731627423445222107699892155843304404025060979570071324334451223975812154604897634936952161412237198353362414639208229904356129062345252897033214117903514540098961851315242576958477216060165406047247136202374527565777221725877684657507244547053308853195449347293595875376870518693931678563823828505577716983380099153197898709382398141240381723528553611841455642296772915323548239039707048788390759524916198245403724866929588957382286842594915721663590674890794238968658348622628157883016543631080646744631817048303821655254269720794854858675238450185781664539504314596561577080582665793276447727788727749026001822023981011003623614367991030810493938952214962789903598659945076023559556610240721388561917502915649004987617937664065776996122405448982679343091857046611020124416646921070473962124040038783111576950951445881201419494384607668024379974783944049724293184602342783217795502774271586886784824587094182944395532309979377538364440816391815339654549202036019595797476939943521632902172069648868604346538689434430220160571303108317174623261294295483206032984654731133371034993101248363742490892488164823702662183357097088860252623227535620864968186342239552696756011443799716208328396026950217810851957809235103371637606255627814141556585434261487725515934985980986865760207093334027673241731704586202835144232992330786744411174762861989746148401376683888395824805877721766438838234166182126877850190761569645934009012129522825788073326348958424149728970936147479782944372124815839200262420139238315708969740151352188541945504188175784629450068836512062021903260118239597579349253979076939507751059969501474629790641580353444450868914508394744908958476964582068951733948327911628557767594045446311754090553274737449542342259305976836961918274554874365719277044216208764327464955094346481370660983591084945783810068134914205545008773608807462423562017807531670602653350736550502039151742582821605565235916759873934417964217743599488754998896310198249193769092834086458869475401654073977254709949676022610145279237202364228586624613725893939210694718252493054383206976383845643814776335068936099273711323501809510068466827479411256577823192449563707474225856208854014888878923510256573203694458821613449280125670483729069175922370609273934590506539341635955135575472050408456988919814503432038282605585851655787176336087580098108759642536910503789646917553988427530651507158469519644511716142549108010440395894542834549277754667045615208771589515176034096362055319598987960532641952045418049929422827361461599196714038433121430710680774233519486709531461316305121743410997305550516967432057933604328081353734682950853671861696867121869191461592541336457259863366973795443899183200462429743106793367749958136578301112320547217735208239740102198327888838072492412101077297927114060335613854553986769232831205638086552663915602249007992900085653803758625255540833709633956025640743784135797757747458984376714176992028522846747883328029298498168832676787233777949559118227823323450622969640636941041608268748214705637148493223451599641255959242729756082813928180649197600441588596124917358223544709104782555011854480009980972030911320672595407915414160589848245236761742042338809737395357259136775537157053187466882772759709846185080415869011854574811544417982848495564553049921798591209865773513303252470011016133407889304678342079669612748584496817094805344641354800695181514603512166825121712601882598721968654321521082554255629922127413885642020776507444077337929467040525548325238526164580043526217525903793028857276000850064863947394888939403736535211228234927020627396373032037039247106386546708049033041727323689621919193891441918079985122336764090436514010478409548383480513382973793242842310847041668628459486665160267074557777003208788523025420715631055416020820504059750473465253780803695426732631927572115872050592956352932325188935554432506772178529832400024002761758417646798739223573561294100314366211213496212419792088763298329209851490807288797334470287559181513116761570105188821087650608453812363314607461253433845841319739731364913924255775371322932827451761742143804531022550721129218605518261986014491506829935000469984067792209016107621830706952437681510328462115227961658988849183675708873933680404536264553095968511668640778511315578103961210114508342274933645752802883421022781602479525466553940609395916503895206917547610971595340530564019383430960461444325325938918771460370214122853595933976694424657625818497580653713638974254158893563607945302582112584635230261829640421429284405754256537068846223258184994984944034074918590639442585894777404397197156196823398696164289045225170065506335927157863510841214349404902072372714412397151222818313196020083941256477617284192907547580273492489865956487844570007374804730411649537504565270496810225620046853500694648492329195624636963182296418070884621400315170130932769221697663227861981694680018940011610007941354279132578324865242635623715453580437651223887305249622819078592267136465338790638323941774240010328562942316388172427052432368845849272678858023193088869155278420773617745921529846779984215555792910705672612508713246644648836488902200340761112706978964767933154593904548861355754769925085607589139952369585626440696658321003870745385808295234910599249980774429422700222107150627857745625623066757919549215392625046892916580946999297443380517376040529872531033382894179043211514690865351432987114629051358036877223416950044755665577417145245181969446703012047102027550484354603125760829217816235911415620378734644500544158089605279827138081377885388255335472301239925254002450784888408635972786685640953546155930209130626806830796008334861332003215289593468959500174482952799594505479094671158085080277978645941084930328317407632387179256690361377806499954951963020060725046800118461954485055887075362910167730281643900844553748201604926399510330020399907401428309958382387449500357322609421428663977325060101107070003081084548069972998052800813495092341280605071064030632502060422402345774516472471983344171148261065250238896158331984178614888690732476983047835383867835299048650222954498054393711881623741110305974021143354491306469397077021844668516712798875723217658568266969908042889950631685973405136130198447200815260015189127901893808523805070780485816169734861418809101102297222324299180895024925243125296803803533112791457491747311696468323365864343154252463498188688035587804138859999245744051484888946682694398101238991748009983294782962931105110533063275834062193683115235977058169708547715611744390298364337837169189448630529490254838338084941872559049896316672260047512991657454063035380054772844718578361483542823947986920144368506692004245328608970634495678506202176903603631378119173767755771974522943303262307705116818781575628256215149824355618923473551783061796596892844022032215917650397007558508214047022083417609125166168843635375787565717114643107993258278660233549770453164525146170631021332207130166610864309040618513992351780690412599902660327252816733691625257918793885350557571580031910756543913943255309612591820514116562660220253676768451554615804110346467714947842291234839708831635626230297039721076000898763519879077553384023705206050219597302184364959453570551569853290408004173227141149641740850562584202142021868217885150803520214286569384657595380721317350014997702391741397737184972256691283394152306775888858650566708188745599627631128918949234024848999527850583477554114565789626852781366874584023730834741337809217973126146190816032062484149637340722501251115850084549429025577600962212075398105210397096962484887195665954835903700641044502069330051344556294955838780947669466198068498369197820766752248125784368065020000659762248942021249690138259218017302000270643404271137458073828136529360399697520430314039719425299003949453308040869639272957026777894750159740268885158765779184153407476928743169111595074608013715270215438389878298158727093949281460433899239382922124979202074181941670556100667864106072196140243298197888891568228591276081151377288414473239603364937994805350693477661203811997059900518701012425615538092315839384340646407108783431690173650772990334215791125849660948935516123815919485605789801218478645677474214975083535470948119142103178276737328916561039550375814902658309463722423871933436926029079531642021132029461781555292653158056761211947356412688787826948444484207880664315753031519097564512549636258705995182089960247379814257402601969571301649366869558894046800881791671140733976354036714726031345423370375077847309145378517689270535340322739408010747061087934508728789641446902986935369046393982460750742593860672328897986011271662325734103806329195137907823494841991203443615947326303592791811252237811117951356303662480175119925329829345638686478581951031299803977651159672640121699549706404450323548911824764977777856618469100089536233117309582957526686086892154077390909869268510937709383580952813607830947180522323259063726289982252125466405651827820706081123688727117614982791859812403372605140607681699184388631311827010189179980066200413049786287645859527226311148506303004868079452452428106037886348089950838184553792219926848985071420145280329820668993567754635333695963961492276544490414899002389360500205290234981407925936297856712846513307876628414215518385443574464907108178517725080270645530880058633563592195418692617727024309740695442083363690581675737740200750363272053291789853230152543240041116568878820039831499807602686527415434588783071647267703206586501502748923656256567918121471906931279924211230319996756067442924559170218281704514727283902036842323236888665664596334038843580935517090493492836057062621023937757531380562227354160581973940204342773875851550100942459173511614392166612187488308746473034582864104256511135331457735533139571452558245487675562170878093983695219207020098465194004208294929413473838146517780611834314037151635597164692562278641254235038968110760935114674449148783805609097006464022283526913695012775388592658897218219807378109912344237293199660944345387414644594333743636513203430306506917968410162642191400233831425694647664410302424589979314865060146754534338938954912517259583780754344172247647270337332255698613006770505700977654939001754367473290554079368755163236763316772724686147690457760031422633866082412755109034747619462884114943444334412928777883459769675328906589108092327255785195773792025849790721432788941009051880662896644234386621300030449079558573615951763248908739169628776784110062241662999907341141967307514529493357689177980225918160820730248029526671023239719000148093396706341171187176335605720617171498659661725242637620572501030130820427621005821042971926790627166320430526143353532922575587531345830917043342721995913047126293496958471818511265652334256812493923549784122980939860085910979126977033808722113694230685286115960708532062938370591268669181855468506251339218660047259793811124372367079984383220098602759575821383792980666456678847654770055644726506321957832669714230338244539312444485857767254674251794897108007251468971729345322880000117471862891280861874643363611459516433710836354333730629081014333781631474354033607012085147285202546853000158718965949197137655481986952041724310021729823692639802826852854271404210830341057205593883713191527532355910654780741124371870885714470422544344093377257000720744564908936201464876049705631860252465838709968578057759207945496809996977247170680897544134292078646224220685148148309164948513464456146642624698184470136851981302465859412877627531475298395777783557621565858450082262721273013677899051437655211000454876240158860621598479437079456123191355961412889468924626008166942437460773065664162795413761642917621608891290999651188308750760898309463903319585311946353352501916943823286841856891215923239894695438777353036879905085761919878631869552325299841449962450872169049849842370219298688393979538286287011396649389343020048124640088165457577369794099215087843656885195525959378999333221439145720762034298809951074099737073590764718782073397783903101387137547653061807380871667263247673009350511074392044138891594532003272209031346161396213834861506424132079627969021262300874581220098775671812269797722108201628038207423215106175677758278697654023492406402701910577155432359816719509886973035375169023270695247545903488818073151313984224932984115834000005139639666485293933072477716304005033835411580043628653414787545485486843331632273585286465958336965094362735682814745572585529039673591369140158958501672404590462078599471362856167704327122130833909538241330478290458512619498676731348691288328851965362706995673365065388341066155890538583147626481965335894224588410418686288722547852618614882259902583153927734342669438970070075147265962536318859173856395504183385122486674016817841388162326981350564803413405033646686396160370650358041842933883715631175674703790558961133621431263456842686830337888290374842551767203646642717018503459979224298273429117501923077252511765164096260855656659406210042309674341991909448618033711564791827205359503146756468315524516833965950839029813825126052719356516787972962608925166093139513748709113294566284529261974809228134343445653703690996602576222977754546810945243021135691019891509304083621337549743213324968705313140241396741549301725549938186381299095100549641260509574816747942468784877455839078915825149743386320055385053234802367534347050678299087821481575978272074062820824235580324982330826616132870458563267547109117318362705711937949316718876067850156944351725043488565711910337047007382770442787541946709789757412432354146087660756395178634583515884837310220185987225741798473976091083240767980673823254340449600666301877170653150985299131627955276101600294640820148671731860170097259220815527865486426201416710883542912083824713627050502369815782580716767591983637511951944501746105012674609417369797651006961042825655609533570977198751314018224442964865606411296805177736446726251388472995639119442488663826505096204353780809564704334753979756044477660800187479476654334070747490132255815477402905431613731361447918952593928344903811999711092116324982007194740674273767334692444634815979224675068597394381832454909099696540643672873991318878279453739564584553598239229270734005486530605013782003553425851354338880629147121949647899755115507456256366301959226641002733933425185438105729509658370769882797192231121217031713484049226657175639920499591516780493261216102411803953922697579946536214803912700710136958802050180107047974104025922387496317412835916394933026616831016807713056773039257973265325899403323382103348467308695809345797797873303535144215115858525345480698818168447113537089690074294561399247395534461973193934755058497100562138545788507231374032060838760887370547437457869325250540159190604475674029307858083645536968521222644912545412108036041269410777530708738053128979255690164546623412302629573060970953913653795472654459042002825954632337331728685542805438863034606650910582567354320324150180693058321874401733536141676324176251580638050192042454307792117484977464658141874529206540177301258952845595501612538375741817750897869808156676238095430942989836097854036528814141145399581969289958100399012232099473178169514226683233895550011067629404239713486508275422615153576675825456161960887756926862664588943755448132227580845493923448346148662945794353192218804994733666186738186627405483943706777069612309811439680544071049486039475545444214238390641933796467717581546399450184122501532810393883781236835459122145602000783407142831861412507318699544850424759854200079710543953083670520533771521033837642499294786753245028098673127267027334819046869673502935207034390996463220608500207320521107208129659966741440635239644039629425219868650408371030051273014440397169082829193079405593317236117611301810606740027411464636717277855896343245878918474193208651838946811552748392798995213777344320825719849067507229819865388296491847201822161357766726608208940068894001712795028030072148401615089557932564396334958176999200386397600670253201178036905660026047141590826449272894022378396436638817638454497884116572211526497099733612423836926448115750836028166342573638255483094689951892691939157542480042933708200165586026936287866274218872942936107090110557595473963306333476180376207062550680498812954082966076784943498319578967713911558756635874844681402890531430936416428371412982073572922723379248038075759660569600613993333175941716360816195036233600465827904845254923207492529387306357850709013432033931046121685204909702043395636544042623200592698370179806204698353890959682437381719724074113534071251547379938181631669083006583454863675326883842045938482855508882476524142685895504317579283704864365113110974893396910837989753312063261873923718546497579294393402354904865778656747148155608260884920001616637735067961260098572688293943944451262627866310767747561646551968936698827181855151234631235342366685373593814358956349752112175348498511784401225064728164731276468963590875239406065290320711683965322067712506097581402011251740888114242619572251169782371270524928896855242075713936251227468601566170545517663698675294269471613557095092572746758589256412505152318491262668546012463629995457104352503583631587392409494769880837246179820714817070361401258927829134905645895295772005738096269726036203148007120456577752453255768561129534871448470803927516894109141268947868507164805911205648710029625626044222844518025443811940443674703272172798891547253973332321631392217566225919441419423691253148067554769102572770531142848233207350926229410881546534666623196787140358856173096719651916325831970727164264057964882898270904567575817579375468525175411124950331939569408341612657060659859943887105684823942372610014338464128347271037892940512798471092218185969101160800244557272542697532683472454987774623681685901687606437736726107475840661424342056948955742779266014199019103294689470675871859022292841781190491795248755594542163765844052807300924091770769998850639901984412670476681054760276137929850383600578876774661610304256945492428568319918335791246079294862849283428165233690035578084964029586186539551447582073129584576318781525729501272515577623032541962771420375954481012589488509135782417583328317696305517111689796716185953143818622497532587564447095425329811861330641175425048818606705877846178551756073415330982458170699581596488407002184076664343064016315585427305220274045201192316811836705103017096662156301764076082175423069898451086596941166107999070562049418789470564949865958764825874193643261602640831694714553207599389490566784558950332589242757914402303493238608381601633856137740731074332592306224982177746008508980516498472445007087754493741277947777053571467262861175840738935773623432104423659383811180145689589677298907460571650439652416950269579590645418513114593185246547127544339257001818225987646855062689441052462439644197948612029603611154986152551114165638811815848767636846796995155122612761892926462106670840382206666551225270179765427383597221678086014310258844903970554039780517714721703347908815699760181570654150961583311037659796973700083438203988500265473712260375219699952058217223468965265921457072220414424871620050758287623014721242322573880642207151512033042307394930427198879381682105767374492048480190865513473282841171447146914064241747406712548402038483294112077324037309915807320175416243976480898858296637564042111191919625041461978835741727990326867561684214884403646167574881424086999713580297973068099079380590927394903155472035067121318378370774705624633944295604290968417895483457960450821200770580422827163136376510405156538506574790474920682583928241713222033728811164419679702281474510832208675668023326958032173840653390512562241086728740484615223601654697809605101563674710633349078709625026288153606489661668660648076022455369892558464276198013679877750044530375206705207740854655591535474056537211114515287640199022488598517083385869770721196397134975044631607145633528357368256558393555904034798973327691146759356241225032303076216198345804181283040306389867364798719058518247143194217508886895104742678991864989655546677812606669165700296595564989324278162658019798401418228770770206646005257159474401675841216558666991576240729317087150883151984620964582022476365430077261023408224372419613355019702038451888148888858551973784581147810371561228912521054255158396663245750201643166307247382738676226235768254876915987310904230490427541713497780009108401229987472874773293687148628116539326077445440333919048600799698992146111691200544489837608317358357262996455512262373843593896992940264892119500007303942915701994636030120198839660201633374041361179166926297928582318319822689182751253671291988330299340461707326362334593982568168705003290322801442416478366765559449659180395886713740581649771168804186805860515670972462725868943341659494237186186780089936503105759729267528785338952273666318722912608653892655843666789273484119575428730299045091194899894497520057745524456059812824534888992200225541434864988608687472840974988353799315025276627815384174604431379894968943615536895011934790130454179993160089924000310729119561862567321036380892326425768479244524857282092177149519790645120522910019101411110559615303853272510294433140370642027316805343739708639297480060081274981641100346937457892316121639711386921965951353517620385445883839193216826757526266152394749698266898820798479491576787990895615306268995349079863994808213667657690942188760945485420947318956426953462592438289192379632865538417435303090400600166734397877497134019585945318195798268605965626185758140901137922934417796650825233883890953445355933565282452540709339345003179788745409317326498452720959488161427855174617558731089382129307397903040709921237221325998678115026018525791401786987883142954912341641310625325318035202593131193551084753943259397998106019475178980152429336874901953527957250028656389300712021239015415832804688225437256679450054025660698574777437397530465874800911618397572013953747615461526708793660845757234777758330521461565251829860521666526703024184784157479188927074004118487993660089912687319944002330806472038843571132696241436817909077742360879415307676424604736163280326809304941381265191263795422708074455911195846450322059988988692556473049106116607868716744402061197133478103109901993761685520336772108048553749795036566676147011365471825576969913880223761404030818733325005613696178284021678478241711946252416553789598743910199605384286615422529841309465670092779081632125086074008202892575354947181434832465619737636955554986527133935921579043784123239122902531396155360554250888993319849300639792087131683096347410118643366426271943634730028263968645295244233028659898191889912154827245980154681438403159890858046941201011218145591896751667240673976094973652094293140814803406955922665797542037419715469638710308522871084568483148049611755418270389450057045944375353123990083907126374890051590153055981908566560365662596485756662067411546636009561142164897769986964788615032345311325131221026831848221452716137979638584398669860660994744404156295092201251688326505821600241446903288286058231678535783975097988502116000616078362596008113248743346147881084681358895993089031515323024232063095382020707772210848551698711116278302935251623743385844178023461048130042902749366802847913792465549271882688520722317909610892350059334077692487859250342645099222416820843711044669468215571444080154462596955879836099880526104742064601069514218465119718842035011880848104193549439575183511035234564763308086719709207464548604798456316108380767486112484770833264960797687374458133862706440920057549356955820984169701737712253790644912723082668565937136564250008603741970114209133160137669273237932675908794158897873844759218993110486468025370359021787418613210209931092185867389887381595783051281841446179246074501832960304806196129276359411429811416424552441777892083709095069305991700537124869555908836866429604817197162241711788124871958248702420958851817414949241570022120094114464978600146914918317219806187377232383971901052231313368706374020000503186072300456644136943141091976510523538656919024186748179496287149517157717047438055368089610630877650693010422471242245493133029938993355095996542188388401543781424591870848230234652666787281815622186756477194718283570948224293302937777762770123878835502764778346381336854133240338529019093081829803441636595776320660239278020627545183331632301312161540770480237824872587023504801456421098581082824710930235398158714414325451089259550634718855551043141634357142695616952628878360037076080169997857561709618581580667467914426292986356381794876603370789903503687790168257204024410442395950271631377348528586626334013530072960299826523920870349566822159598823478803397698539387757738661888249731364541391055362797067457622642085454181081086496868629695610046916186286868815616654148312323943116953799880141445610289330511925007256333231594277886076292166987608701002614774427654316988937660770952514727548806955788624523701292441500307097956258135599378742925142140890552075572441864601785388678319728230427781873931155562585998513844813519686551456073094132075424804777763690299682772959650007298358527637172068724455557864731923175588336901536903468262644916028465955875197420790257128950837902005413270239307573610539012807308197913306211355180339739453065911516583900007095809816739659716292763507710919592150154286630718722048999775560356624917460836458085973786695077078004237097077867687342898726796011960240433196607277632065990748017751254019392437876558817576170074285556915176680451700541343809955497648102005886382892447941617835575510834806048835304513826066349114158660553673438349416329610448756309529401753014106747061300699199540357290497069431177584716873649861351570627396884157707776313033640693914564663416959062247500192647010627165175101792275459922442376662816259104547903207182638100672198395876893331424472210828843785828299725658047378328562311340579517326849787264483814631735626423828413040441904179204361098218269620009668470782570998275800764241142648611561556884541289280190927377882325386471669785750267362769215215434123293754480015932340436137110975123974995129663802960772323519978900281399239572741260463386554792902218230758075248263740103799288703682566611215974532404614924070921950813521938600784311296508350487208510666346813144721298513977249242884272441399023756068146409858348898468622550301925994495502393945429763127308841286095290493648035206822891275179647819866356881431000248806670837149888164629506763206741845651691132786305655123879484293426481789449198022368474508817690355333339172691381744828533671339353775344244364887177265974006967047092164005444455000675682366191061974872916957271295663291024016308732395294560293746194263534448146608759732298966895904427933728544239864040931103827866442494755914778541299252773019705358954649272856290358150397173065065301624155373344731415938018919137480651006390487067699342119876766996124260591368002776825493114997083169853058300368161953899261260265288654162646845638866396159921375654699644570296789878859430453408107826720257002981330664554506462096173080920607338424113766489469771383959862232542588240991662486520739913029360847586212719495078666756270043597603898991353513410028917682410006137843918636603291018824967810233747522785918957690368457266493404390389802214415646577284498057435812207315121862546244425417101544368647237905695675394171682473378423064848794288529069392230986191336318690097028966068824864260891570671120962499269198047986755530612674947878379947385145640926537533162425535722313504047479910816894433900434893308248085187079508889779682416697916602136147812560289118294687366432097099077203287798792526760367251209777360704970284475981033651800681271693250800414005468612057366708998395717526365289742159708309344531382126123157710184564942654956696138981113469986879548684771336150387262241809643865597733356705910203673516133449982746524218500942141717529013474797263146359676953145392476498960490058149459171320161739664461332884891746843415546469019826486899573903015667091997896944408042660521758180780765553557053341730830463724091726970095024142075444224349487146384446565089437081428571014128325723996358287282986143115085227104759166218121934254674189182026380673855654725500225772183524795115577721840461652302150324054700465527320539290784768086280838540697544408532711071912001552054937031800132485112295376419797029098827262977248043778676643789778940471529494660688820130348855875520468835303178415284010142981807341803100667175049459368178200227020025302079122539591145192544849435207702562242038338417697067437323152530012103175122720165325958314045536908020045118342454981340528126503520580062417729370572245929158593770431561374426407095503229971280166606247024739589067839487005575277848079403556948702712391796681065051634307175671425621634263802750238086977301564375558116106922422086151063840462514039968513650478298828086716464483930433121302718292567077612977981060236003823073663462912332384213449487181402739336218656428050928040068598230423705073662738046889380718785656001054668876541002824670099358782068218280867437476749133570024053303268934886062350026209757772590881890912354109822858680951587774777110047910661471090629820578490151807460318968790791679373528728259316872559937430761682852701743739407419425799783474388058948262400694173498233243071935472632665167252846240383231824592006279518748563428819873374874504287938698514439650370603707374510019203922075581888862710297452982692057084920759812964988493935983397856940035525692095973352822850510273439570186032537100499849780521981164974971607523111443476051133674726351536899501632856207004846209218044503588584202416909848056067994626220173022024080001564611903791822793501906327660729118439395646239218129203507005995952279710990226293207442623386154093901846844874643525609994255295034623560206051586572445199245383654804164322785214892766502984624264179018761923356747038637318142258436370522897042015251292708581205457574211140757162227891985741474997818756862037391043179665103540291659575280387132019565870823522512931616734453313730616721213359150721258988727407409201957682571191857044863070510179730341317956686651280111414422192021022695280928314835449249911060420500775886734593835990274232488685834354096121254856977497712098669670062407195080452163476028502876057342583267961012719027040200234945590918787998664207452699949480387240861818229008426445417956571717209422309976861913444955311291847984294789674431406428358202740407530985526555220260244496818933780223198820093180054360251919469222167598134780781774597898588750170847879569290107857786828109835988646102886229390883477417229844304768872867659379589279664716338261732416263108967515768172838983995149979875639026947193722740208323142739216237189479029250920603959923302421513399184480691045052034249153706418470638169752081756983025498450429838610309420906963293180601836160993522863117077984905992390819251646576802156094265058479411165167450052735599163953511715495572509675360057629009878516931993967305996642096943045031434924239002340296967008822500186421700963286905754975158299711764332503307337636471129484846425480689312299856881773135563139647160283343478493315895907292314697652928423782959104224240350513043163911283084065526041996198172462717553238519088578002676699413223908463912446244544024509577349383066363466259018747643692801131264917717375504965395460472828446852381764614901999301741837267986265080843257614937874637976757324368917389241889584477981347711172829048295394513920721494837218264831640250873583021343686059715394585069233517401127779801009494494807928848344505828308211847072788088808230236569599086713608914822423150696630977327553475572773125418086421114073331668773641977432773676632242781534711204979397872446980290544620993958082408202016860878727491709318225902409254223741962113800347065742169456865120206915832048332206409768834716652535299974818089037799594219584614500041253556309645573914717737155648989722363424606400625450423439064328690616934402828667554511294347839796772308494345808529471942625703402962563130409283140568693400034957290771854324141250463605917226432977865488734327329486116790422497634143650919098556924622270614598608921542647859861671941210723450232934889635050728697928246126875172208388963354793415773400603300366721965406484079999314206191765357254277747970394893974198459658023769885015526398914196131338973880052925805465255891699287084216627571393225084699043146815584717995927248822884798172974100456339167124405244285416979356471940991483855738938603928594692543578369801549231002005769579268845570238108102394400466985985816820587090179470407087968694689314205201629296393355906172211990921253591565657552183674764402819768518864528299826328601482967913266584050566018333626967720314822231258794147976166704940189657251307856554538019785830386786425717777785740894776826549134211968366100434501031255033189536724886670230579705825873756907860991381893615516006019023618896735571547928967647198101520971632940466527760080065844022395904918791771488546445307759207446174933137632566317116089438533473832925805484970358283727585604879843659964010838815515833437976224337155910603085123845560431176395966416968648539646977239117585307283580782543256919976050428455273874440963892575126702593379716397229475131588520479001128004588758990762094515901622874401168485124427608326669111849290723238605088178608736162161355605655890174476023428655642477748757226782152927031134365678635497530382764922181902498773367542620015489093744165215598163989962370112827906044985695568323721600065266382645312061233485714427440817630906800371842913298485582148025864795522085174391163331533363936622020125836933176076883138637027835718983715745845313803746673419588408430065713879712984172252313924418249510945404043706933437164185935902610884905030445148382293362128739298014138882171773609869615141268956743648483192794518423768381406855756860468501266032157363158020971654604705952582741093125723453589658477421889533307022022953511546834733757419782338535777016526906099967735564741167977771544609733697235355274256984068902297238614759663513545232904914263688856420467140179109858358823814740581971413369769367999595442168883204699514592468933378969790572128978286957505260973933102537840828728718220782519377622527101981123622300992535300552057745205177655730271594799901672203527473071444897858618898691021129404278804828262005840310880760212915881311374861916935828328180071652905294906991920528857193553922786772353937367897704625088262575351009535438677920740334123137194293900270444802268217808100718230490009203187962587912403321861010094395072654424074309258418819785440650982634406713462656937361564184687225373308097005839466957198865547217001321680038931369892616400163999440490264632225946525742972099671999377269782538196331443605409981778472283881652686567084794909366760632653843580382994819688550033199410536405063187003797361485306167200280030678633105416568511172719813524814515169260744116872035621553783620558496454684170204925105626001234647130270473285838717823108316768741075826677670599812031541684602140855850982788403523887615645852972853633618149479137235911135844161118961045415401091438329714258764191831619552075321441508677466172346068269680162514190996474529760485594241235137091174840401053029762684711434360601521189549764657477940451190874715489547798802606979205941033180823014070883957155063738710115457972378983366390794344129346708462086843732186208499688403986947308967411926849485946562878101787392853173048002640476758892840057038932623614493100895271822615732741156744130347565295559592685977813587453456037451370800511492442376852977850867024119453272316873562535974893854553007235773814279099355200798945151868227348459888999744051241911693673502441346349903530419725545888611870480956341638618365771362487786147448522801106359557757873529016363587551372459097799327714962087680248674643418174201474740898595890454746701307829770116001267697168943593984303858795589725101775685505419345009397219713299828417633647113781502442040871168648427345533277778250173554256721767390915067000637651557485899962165202538671933327886531432471070909270097650564000451439190610701918208468259451796806049133462616660899130935053738854526002282018669834242295810874201057578971320991397323088644549482999805846511156038479223451762689369062411662368805254708497889306394809979531899526226262046190740224179472991947969494767671095698223555536006156085654412682329764480469691265750542706572031369903739095754665439676324926636021609176501258487476733096488251938984129318886090563196569131090632056499491683998247372672807868206101308369749253648701154812116636987506882578246272352858599100273943537099475483199766408543931318087720169742128546525508036964179672319295845643418849925534689543959645503642517460095741519053380228101631801846893578095382671298322223650377993388501094034074957651917306380476384820047652156148795121428594142295120492045133299752204443426718862469815791587760745913063509669811218599501995499419157863609257546350366365046121067472055101168380643320571448558627151353992694635559962771753627830740637675678772843409136539531390250394472234038917423230128218190172974048304058170220783291876817983454682608352189202674926664619482114573137219540890524682315387309457689368424729083255707524329025358695975970701021997409186119588161349495184257205159441024620188922240947656313064163548221277009689876757613169320369412804964858840937046054481911505767897435158502066455859601780703361692529652536276308296272298460375007694807902926497884835138949214530204123769285631219096996029123330265144057640113569529298754866147463645754435881059926751261337075850105364360071272052217999935864360613048914063071323850854789189830695047827579943606801518254518868656840044752330796695794526759731042093685922363004280374527222937165140389712160629513373228308309627633439775597225627670089855905255379759878818960675456721399703183364675998496232608381729820269296586944324682982823706853964531406669069609154556197185437629068923073140945364908092168641933576651438073835010229589125127974019687363156655227230022820082794342736561612416019852245774466841834751196933915596245447543107286756012321221252576294858719870822349489116865193056201604411876146360630354630674299676301134150503277720132267260868184006438680428983381654121584273872308448523313822076861772509195076614764910589434857827734726844902077278609125865920557103815841097339026741323861030006662648110677203272386932155675853243818474275807534504456771504058726054484419849201745981761610586928055764562206520568212497024689392699803885163938781893277965009455310536904189288354100170914017470305264667596110258513944960834735948383958103311363333800561807937699528933554897592554247134981247340801672114266025120849943481269911667180283967758794274852161103502154524063993617067474142786029483952001027850937698220561841423421892424018923889257708790930370664476907427131169788837463292743170263720785343769445031685014226411936255632169802166978890790248057449431786663065737768415030074089384940015239995489181051704679429216908760088925479310109715797965154539232732851027071502861022053980175346569524534928541623617008340165001752234328836120004818631635133720522701290894584547532094616588107432046937508399531126648928590609563955491234666565352375950652233062070223386455589108751095414576499938198201329943555244083410060893669355414216821992837334303690273358834559699366530015441312460381210009179501109282482432853639547832558235760082411032542857802289180557902931613672667549870253089156152554018768677931163628937201343884768309583509204733416367451305440896366050517027619604625538330257413875627233220420775994666610748656060167301584613821621756725482693678143936969986605301531866101072577381414169174129704931579684840861642230955483099217943051630005062612437793912216961044684398901230331926702232045755481294664860471375950022149361417796403527006638512306346858694194942699418002184308571175559884253811856333476794695975321366625920292367776577678150418493439184786233118167272571094680547015934327454098241388637997206816878840056256126816727829022224675034815728637696721999323461897684684502556047312153636635847802873089451684354208151218790850082292819705496330648182218611575126232413912467003068758066314883846118308674424482240048582856315984245667532273576622328026166887551768563998518782785121788446335178854287254985853821024074770734343629817250702956883924364850778345970141897031788191353775612520722187328513805082398666133395983457443167599002135424502101627340662832106388711053826073921511369634858179071859053279920399177529378856532454369677608869113952877369699462035184203926538047496940140526994488423689574360181611530524484988250205620519561694728838104728737336361745622519693856087559488052943000688417691490679551276068292942840702857614939420117736010748332859587566735655528260305609120876071681858933518957285753695446217693381664561531884801031089131320124530459825860288417154702438160182545538947049714428134395354399192170842179721603811422036706249834930664040150851695820257589194899221795210885991787672233355561064521445362057572806599020729173556203252268789049515343121609859466807440395889746359418671560499350737753026478357208828504592358299225357293382322241963869294680599585402891480108318460710890827322688066244285574788536885881957183372231441456754080529850231482433329217742712630332456589782776363175149929507336390241880413117547816441788953759726523212887224326107172176207265861887910407286897353315926896256246646077387131594704763101353794785771198499936034983662546413289096086070634213361623075791282302013437859430874613688804822332171621027125434743822291788270371208076304147909091393319471178507588833114318900445689242407710683585710270024889075647170670795762074467230562446017820747200705981037810560994531663345102638503737766717360702250469756912556074458965942689883055126753430327257971639051956410988191610059582996566718130812343987855808327191314913550782525234542411297655523603502595604654577734273108725907840311859672558976590559877782338377356724103822174790816425670792588621087091607264841303054173612436987339277496466108940994325097056110617033868789516212791533353536810109758598750007605145886030608313596165965117994963603299114911160321442514447004785143248395408424753512879377132454586349959898263247368945746091492670419790837291821681855650293032381755456200707588244907457796991047222424063160868958029101435166910710127646282774981092145768410981802613267692333886997720343723667615403202462682160072199652301610836513028388166336176158903206816150233658494094307454357962077941705122022963507422596195614186577756089591895265428671534808000546026031142215406512662135465184081112567442948712725138253159238531768333704094321665102172911178859038731769850515007953898330984204792508803379557471071749691769288084739275096704449283533355947736035367091151229985624434078252353942703466083847642193189032185099492205663174324450515215996783278362506647760669489228155883561680314633124189186004965830293335885104663137427266773090225245751450192320579387485673702583059833586284452312488668677784571714800417985270518225308871906376531073870149588620404659748163499000798722220479588821872599973343083967678207513833997076014462131339710450806014010692452431103596329905579017217404772981915130727153666844839519238709426462126478999888265659928524045747487365923500480725354194227847501418452150509600408074886565202035460197989511881629017876517923697163875687134491086662971820149336482680087740156523123652905533219787413718072077098175733858294233369340548138645534401028917808251119902853188187352662386769992507194817663797353467875598525426713488042583772838297882762605423415831970295640068002431624576662433253496670753967850485311003955940726968932632505217324190404324496552214956203609257154230618167868996056635834707838847919824045927470119062714991557427797558402566024167376555910682385014053334675491945350007259861872472687411975476776963995239297689996513473091336875507536113154889905384913551950768051194157459389780078541553093115918706776839797376340014049155057216980302403643430081210101814105429302633685038278585318853975914491045016597820216966922940250406463466994038907015629950650201774206407363001531717282130943576907661286469864678255244534842318468658860599438809161969193649866048145030424792043551248843057815668367973570323782666116351113525036467923766366956741355867471319981353898810266199719428076374310078925665382603294568847301800923620034754131982618857373202068369164860151626754007339440907769566463795378096141983396073193143799466544956295431838136343838988115029180952048486219540233827406662499241604117172956866820499817886873111783343706303436017231719626143740150214493941217379096292187096764808749083015422211603174937545940031024281780852488614167099870892273355541929580986819122284063833021310335063615230256453857034678457833328424526929957607467052162319677478895745111404580304548365397684613934884706434026335679394221308096544469754122470617476146394052819843725266041278610408470608990151597561740445614159025029142820391060505107191534602278926701096139100906579825007719999567553890387271299066594448279538587709452864369058706150317174498798201950467309992403899197545578247949394035267878827714648989040419758564129162892860861568649116608737437484989289712633506495864990670248198654242019832226451698718692798855329088270544520079404956516465047631821881923008093473108852500509161959866012973904870508412340191350827838486242756485242288577996540756393525319870624648156521693816391132382996429830001679248682116358156799828640606604308830560964949794877281896063774087529615641750214978316643752987522017920048899871011086949680694057785830711988045809860986984850187760471135049343063308435725451862052620852472423705016052183274155173602898364000910709897455857031092266008359090594141554580441915481050567008064179835138553342376718547827177154506816284234265479534033255219241757159640930561426159979628947220485801757576556471087276997887786578395481295472713755348796275048530553595240565163375813163322044301431100548464646950190365496521978936273202914009237276063989103795670516447929891435985351800394251753284903658745991915157582009263546349804199992349847366344932460047808036171494751729152378159193357373945504016206163656882151459217322557133814686657480673075372631567841988889856592613368182731223422177560922619826131695351003647211396696914106738490833790032521547889939863083546957072046896027170211507902388241547337592338197529841623740408433535699728590859902433626730435569895928787167106865319435938840193833585090665524485900312259335633379267132508911827202578600687576646080842645807967204853250991849139216615976267048778340418059273986596732993031782684695289246237400884859415892267840165677806053132619025140176331993916399032673157947807950247037649880549933854819062645636877200559480034308967711660436252080349887660534570388106641220585464656344655843295962637037935071744074569032303045566869907171284366104655373178811616189676747966236702450736259806001803932463978851901751303669858670132281651309554906430634252227099914843446094780257021720176762219659470247886186693739064564580798593861591555027334191442688054814800972761248697633764272018403528841008962724445261645903361373510746844092843733435839617775935063650480724154047283219207389726565805340481691356455781411273931961175889720791631688044161522572258201322648991117153342541472639074194265312408768900187310512337422343378496089637432812591283289401651492378672020799631586350252471160363293547781884695578508259285026446824763861027318888967629577199463897112380985145704214874962421693450636346410469465235305843451181576492598572377710621160267427036835807500583259449195139417582068149743657232398799959102857815488682548585072071404361918066611465451894118912119562603927434113259575515347861450779345858363516539093833978655721242217500229471212640808208565777419650361626071675176704704292653820455493270975526656569334867154888051075685775566110269793360786363661124685623770552295685080092764118932794989518406211205971127281668293190878060281648242030152691625727741195505794949173082878117749453059018924010391324392664147027150359104217488091383202004081218480772629424796704739664516628737595111378663213511145781238328317597533416617485835862556525166698784436676715163342931128530601469098175593137592331198750346075341092906151866889332375296597315831901085453871434653317718056984792496645466987768589452747558518261339328659257306192709852817475124493819564676425758456404478452458232787802888671834390092523801333407999583044532280909857346237300617197435348809029096443838079059611591973476310484896729544950411216938808703650169755002362159317593683007810616145043036629164684074226322250393260506758229111076334836737184620151678955974392413114179853587556944512112785423926202522789822087563215097166335906505167303878663725067582887811913013412622094226990169259965623493329927102374732810912466069212370711595654204593926343065878110884403781745104993900732002094538634325825461004297335595219779631815497938127239290363483082047145691215893576233378739452998833807946284156310168926292942886307604219774734491731861335480243914613755768087962356098219580914114729905195826246722187461059021370702157216130586995258075935127226808939685798911569200077877775126198457919099000673398741230341869743914602971122095420496269834057751269940883355944093642090833612802477067292745761133169680781031415301775742436615346208054944082214728490882926159289910157693897510461596836718381401249394159645958806130724341676661995772718120331780119068834189896270202296115266400408200401055343263070056500219244448117056242034191467826154570941572727803703838865302474977398747581345714654841640263423439016520061176721853942731181899691183522819382537739595704408572141729681224582252090889911804171607679935339484149184300507318570302245350749551430487157668655557524338476404038434401830607964827403667140820689396973746689195778308809282548328132170009169373768667211504546707583770732764110508394411050242632401173983739007118769924236147276451742019147305493643953553990840567569843463845650746394092116917162444839010819036282577253643631757189169595393316369290003341830788072703274758606309562838107191529182971999426428432003745996706202727156167435453350195236113132555687021924099331537576301599482623587472505563149891744732411987209073391206366144430692685102202524622637565631726926768981246863635948810595159354331078407309812531895546586570525284388512861741699210768686245259615699676492554684723080239288028506685964718910535831746293823966982731664341617641861001233204716037524137020062744925611695500009192039786918630821450798736284313814476112089617763033733130858048132252193748403510705220819541883023681828018327518539044111907749150685112728645824153621316010107134542892593451729146188482747069243481013998911678518362999743112638315873682153311232363444339905563273997386308033528003465130942365962267938954338480908534051288980309103312835276963045436170137265936099432155419144255383158746444342427466025233196673934206274541693685936385656107667557299620488271131814393529007897653921490039742707994699174113628513345393753212200661722978449750563502353084795823592390728590103987190916110467375957146743632549927143264646353938268653513902074812004853779822168299415531187274768778305223296502839357097155412587150434908500556763149114146729065652485173721604434877182452129000108408389386038695696105426132362712022886923705759254632468561257491755615827374280698913934346396451625527987125309456438611815932886228680083031643402335306928630498654170722300110200108945495550147096117216179981353874362733769210578352549945087597927831045190399442071831169011672296511237321387192873140605533450022070351192292921585073039491538073026133498348282835858663183314126166923856654294682941344415808670485163186302758457114751917552588963298122686222733904242615917169908963481398671968175056379041169538565292206876031635102804152696432947524046329602626114137724576707681312420258139705010480807985573662609620714113286558232230882295235683626846811265139176499855949986297360181959322555073767378509391534607754174154022121976521915149400214197779677493281529481907660738835317275471756271727532365488012898912522411120339451549966550604057468842999737958468390477171392572746014724413141175994155928692750987790818099123855444120906709169413505156395750135771980915250978869545221106960208720961434727798860439705459003292601530708775613697134653473062938177683373404945037923048739551745140508987956325720751530559093398089696401270041826814946303563358737661529083850800568315575473829804735612211578606559886885942231960993029750088060623952416615772622317084829981354736401619288480121039103584826459712943746995625083054546780010358349786125501293554823011744710881593734062067085298321981548515190927635321181977210449228746560768990637730556174126959518980007016193254271057775015835260722669312757649716852804315656169429894025439112389600826100877284276053518532662891847667396463205219288090099687901274013387967321534961114377268248391570135434082065774642998477636199596749784707186124603721511292171282751924692012783731255354890912356388716427342735142987959244136095670521982822161467413384938093557457074109397972975547471680367978893671713569993522237206088971488644471489094459198832617028717969870085589197881051999604782484784872917981913136289069819379305129879095922458027192585021319485738431943067680252815032557948304697225253227237574542178031670121903354711333522820318839505108777601550099417711640467219557398879409911928102133869226917118599280782191844439525528503595331420894012092732104190425181623706376499449328378018962743310281156261988807904569554280538126901554717102921543602498100669827907428002143077111423433018215017052005636509668327324913774789707390695656923853891542773419683020949453802230967481991069384241536678500500026566556821917752798134936707881816078582567986101558358871446887955366191159046036754158254056492256783811874562430915041523245766900971723473699733624872336354379999996198292786778453474239705003351658128055620098874297362657337795159633874510501559155059709590247130524681658848286205472054550899255799673771744140865437237019697747811957708368083853700684870163601927140592129060606844207226397733567207468966842449424317410773342282705561186814224169756584316511651738441646499038735645317122134457956635615824166034765579672547543891553919344845440829046156163194325398699549136546355935536569504135945037900829051438577143718303896543879660301125931594028498991462522604944266878220659044129965653472322490989088234044750676933990121711785042479433071412983703411298647996141004113222750435757943020679504133275476690295274991464798728600731125200195526411229433218122657319887995483467396901431343123105951308958006868277837807724986615571936312402630244652654641363057706158744106613580206261661362472379497714364209072941302309334643346804972213711816236822988109552772398144218864970054055421222908855308158177394987610630135464838340881740592638437723780434440665036009051931767020169575329313406627753048099599087777896015556870371534329080388527059303160874212058757513410314511922855164820612246615557321598849444398743558052737248819111907752281928829532193004778598084988447655678988238879494671512400986518569259267693997514251010818623176523093345799138110329957880501705198480745593018405239807023869414760468092862207624842469646173004203826178357233237762613753695124169311836604648297233103367982520173943600399348197456090412651499464765939685737928536089373766602775275448760343361828524083821567082144183581240170302909063717842534840790336001635850110338700697553647328753905912018787237883247760722892032599420457224153054569551397056172180419319253652962195718815632038340384746594578364610809328233858032762193406956161300736068806875780880866921353077727224528642675764567158882074169041257000648262673254578270012468173209066727509971478384947977865265719047626505093323019392314426548818874842276582800022873191029564368365316435728049595026568164565504589361976294184847811755395893460218870097375389429542512336777571088915754896372671649817225322591897273263920342393718456607594514287074513917793876329692524417016742485546952812672520807888509459550249011389912040162950104142135216455980254400615202415816738725464434435772813497431775181572692951011197548958458950985465017942158374395758816759519623672279419766750100529583352011847580585559535923605455166009792696174129802153589823936910757411155642541345771476725072627200202944822815344665065767397098660940747869890545960538454463511421907213820456636617705902737971252434895575908483485055569657270452143463240412650242845994679755541081916843574724661920590290852899779285051427582392298968605800056758832245619149985431900398796661470955839912395243764713386662720820475957730586420413648798561660176566758443455628439458862089337600912720647032147330245231614195860473354733740797779088977554439686055743748845824252289884105771378228398656887442877966277770069076593454668489707953167570539380819223922887448262870429745479742485651286445383327319885652084170261654103513996770329237465828596504013468575230821505888468881794393992362284118973423503930830792020864107652306281275750826224444898177042123817153255434936129528065987530926846266511020321692661903467058842147424280141849868311230906584979062444178563086777102582540875229059245145792314799708915137788197679099969484846825990797706184687726171446744532211163406617966233736185477786995373934681759006544181371126892378056422038626496977509262112389083791449222162815694511139337688707873124935815634219263099326356572101724997309868673938206334939970069100700523086283700972791097303555787246451788169792112028573104712045527200565880811429808245810985466733063833598945407553612087905568014905572116603787908521273060566489899462166676592115082529572814871007417806439623614062131418872991848453354234538276783313122624994638031169128610241441828412699974364092403815448302365941384825109988549879534195752516039136290899983317865166558312500916590813989908448740619788203993143050288052090575425510538233071987735599011861516236819135837751631767543612097802324451225427091046392426490701373830732484808488072855952047738998419933412607884360122457407054732378419491975926919459663006121543030073799624323232053022537316973459867652651028636301720416931588331370040120758039142562815092248342580004195633978883082786765893049296400464766439443050422787450212387194983104576410206423097340823754834494112382939356023867607103188368467136888472385816690683778038320934863045717141993809705817618937839394696505618548437863806873588362162024037186779393232046096261933823434622893827121591557997020214881799126155355424032799291000564153789705938089932956895679820724890901312357106006101016475982218700374166002056534791426554432943084552840006607225542827869015393193130992636406452739652993418269498127730699232425063475484884990497481277715288581869263726247767365439221560454794197612625058986441137909088337829860114606551687915631477512178406695029164394505497830116562354325831799791728649622464018812993930818961507530513187760063403651952592868977727892095901592795830796644127528264400678722095329925622222774658155620764402891912515154720170904739190842339631948925088708624575111507352610306794196710358564670629843202231725694796691598791439410124453404652518432532773991758656496089266332046833313770098614121085832544369548295864240157798015943725233375394875394987265613735180534426887840700660318918876037578605469773256136997015033687396287987865618371109316205366744136202082418871001076692459257168087122733338371907590739710382620082861428102340609363192368303743225481748363642135357864468432130978451587238527363117428881976370872092241449203989265138988073461723866627744570082768929451314885984380312318248981079784018180801936888018300183046055998340625724649171073446014598583746703822140508469345635990518731647955912949269233859492694920365002558278099663472449940038946384466576358393497105135642820644830766575810313966729326221077207495641381079713705994005207530642142444576734588815926360228135765258131200707241459854226091357898245930875439851533584784159920773694898408524801349531992140686726028137307897462333283696459038320514190740767984033874756071694485868024309237566589154985316623455725924454215962140652157163885958933378522437782252710915380196596975861848189779446258922819619857023572723870668836143041490603272620531084653232579857654960279642342463908551280520161689175119595350527026255779732684036418522636955823848463249959843341979576733524935543049795413280268219776769686607528135674046379634188264999802591136614966656257055333208598972528662817551591634300854936828492368548334701056441209214363979974389576428993032000070032480638830404071985298673300801771203837173766344825900545196703862759065945904887053537311469299532488087606119015531617534543627321933694030153035269125706478585203428058510212986000013192689407036975522556538638069248206655919264611038027984515356657591921485736766122763460358492213967004164004359203209456051616803067511274685855591532566337202064527487684683816799729977387593152740271742571935406233108831477959739714650266122922195233222738481307912168733130351356442016742477031150515080776245795847739690430872509411777039421271072899892333419388487652576317944126479665314911697310159296969541651412972566912713241847911562796920001517126459360010128029277716716598028023150500236533996544514945799263850199542015106211383767170076070644725619119559453535968611200381142505717487908395170960645405513989528463352179981164282994393053612710529686939129074873814687074836890766231419484834265368214974266644786446098746160672588924773510313143394733994776988196018220068167208146786906456165651691976462139710841987338213853726698882139671453889042334836437068338808438745446538094025116247648306703381109221617154476495982017707179184460651535535221836497363385254943333979171064425741663251728915728648661308016195760287509017274661890328983921346386490688508399237101426721101731013423739383299069872799499277114905165860297790077447557141787622202270091904780503310824518072757560859873100911727857048521908723900172318910218937295923438871696149025727068430381686580090714721656122037814957102889342844851498340286150033733157865251493072608268715738182300680529108844452716137281598150007336058195692339350816866207230789071745622338940129448751193954379035323118554433281695807808094956468355686649281126860124114668878298682375660594573122181892507489371450143885868043229941169398976895255278301309272127119442862636022019622916241408594080786837810446665128407905568764509132598890359221537559891414200412206933722408481800619271076949921083586671834986187607246161459592837714399461617394359031059966827807142780695786619385579166800574988574877816853276268346717457520557379397758943018616338890526032929655985088162418801140730246410218565386717976603136808595390785075625430235222923203955652346638222852800884666566834821232048792653953467497025069017572326896121480166144578958888441048218814756394522042578450145080578410880973666167292267159625135563105511836913113207445276107533275809339693081855859740832499034072992385245276957047106684940314747811860439321353624872335532377744759430849910022084716565787191690276636560320084697976240348390405313664125901948718657630427011172198353974721841564423755979994772359863355642543337994465605466194571362528133317399689280250228877589167013524838658901145156071960374811881010106772771624430442105605474910856640382533011081937448679452785262211392725053343854360035914271141537044731697466617638142793535550810441779917250976353510106785185776100758949052232334696246934730279283055544678817648961368637902522227584674229330973839338068577909588061000983077122544540523400746225763037489446254774970973319854853788393520873106946462676835785606840672281216097786897240123483917980401723133726892085980568451986955356612687469495450575304360130441419456171273377920633306682298643593344195144649033125499389388661946347584337820665530383666354115808802061973175490449829445763048198734146196398626284885321010145069951557532884783702112175601277178061647298822432837536698566126902089084435664195872449451447322322656470836215277216139650895618924826415851373396153964414340579842878791940594899019590700081569326819106571631888645092523774011166570666318474791710492078050321567514987380752075319973675039828006948882136664605905654497405818501302117970833993622097653306948509669680434538685907623486288388532323732050355222938307347229530403252353967457997007887673075929457330438223171899087901672559192599738486637434135983630065959544222054601372194977946126895812401349233929948407342854074130610616883108769781741095474449936772445667932940677614209927879608731747019587203220355647828054691106468723280261011284698193535229419034206579087685922308285030725384529093501903581621936717508640095372572317428283076092076478517400937235335997736089030094694778998039630109059939799586665452862654206461619028110008011781689075109571039869754080474801439338984047740751731616911286382883461075014027326772667233497107068720132019060140863057526187227513611580896749044259027113507796218149901796382157257123775007879881847943257947099946570660720533318401377955218053467927960156308953028666940692307783194852658757635995080238233032034445406507006965421658656208569134525025517944219878102956218986683799485874125403663060550091044978074529912987133473549987678524374162785943431672823211162216614780220967966053028387887278437892748667556270643817491048763306148602293615724906668744506344596831852829700002246077709001419397764004949850662299924650694086754313834940456259361589789554342585679519669254258555448887247278306103560956406618211735710014631342727628669827446100557738531513324887245636302652236778782763928410667889540116160673862297671038109360622576129167209408048978480708536426963471161221524444044995019351213477630050460799989192559937639175506415833431295799805333260268950921276733474764168721982188687407023728585029439432271422047351309997961652106770346643834275729878723989505804317698812683028196938189228065796583734126687183318674083100762168702874473389387432112238087183204673081223030966910819039335364597090880754625017965885112733791641787239902016510458738824035672848718078310356358553437124511231243802201560613089658501645860679011220434089165523217057549887798769969661302263093133406023073572326725784118315610255156775285891969519495636442227424398911794265676990528933619546734501936393179425504419693064825610681599458109779494883541572343937195078430602531497036354459346234119613928102269507634578400154312982170443594622705185455082604570701588010209763745532377800577065025393077134937613925669586107328486583645390462342374511453687778563978019961168766253748459153828459404096575245206370543006165821153921378742044309288966636648297400714681740008401956527313003541546489751959262943169131484805715055629539693827707461459394534496897241634857390700505057611459277524758005188899850360678061258855689368976324926978270025797220226514562556787917850076740385491940418362653704926190007036993045569070098271660546798493965749491993206629499121685885776513342247489745062447583927202196988565716709171778008733328393934017027262801361991870425465403203235978444761122426336069796707832601009406163765739414919053271602604185556774672834882748696112471899878895050287998439984183221829616250341451470402060985048928541159041074739483850165454468553428963935904179172506014077018746755413764917590476167663989837014815895041579724422053054148947986999238758790916172798741570992844091642802965670451008935304725342192075099957417482002937895621751269997324304862852289017520565534724377305239182834701413859654266057243411857244079015999983145423964099858474903681549380409082992464546434217504873645540852798392889147572203350364229151452525376921793576666878637200012112523260401638803301077576096160460945751415199507395569073913199996056871687234023665557604466200911023954853017473197197239575661713813735195562581843717374496797888289120034465974174455585976704749149131753679242710910356463012008476229076282325464745161276696069729014589841483952960626265108973996765757233188259622229099538965926598739325379103350722461938361509206049582749279788555874233859952363398840296878123384215720101189119857388235689652489780887732733899903098639634259946604381805376697131152930586886402149072325210708404477346707552036991955403422776063363981882697462405982738870911750116632825754929548348312150220964769535887230655363305098243266010374899849813737310863906772281240794029652198224366991739107066522187410262622460736666528340096920135648137971178395635292976948186307398126515199668901855839274385246395890867765263055247086377594065525096687103569927056334635463390364503432179489212431255165129664649913496765296573923227080871345741507170774360763966773093492632387953261164859709015577455128079050446894466516250289442956945819921636610294194925616035143492752009762838584427512229776772217501112097643632801590732874379781573662414123899067569723653842533854100262843638658512296626061151367059704839974554658811203071233987618826550240671944560030744972800342136791891451852452427521490796214062078904816754279750081306335979099627083481864885258927051278286207670664580190480284506415754511436328579792594913415935610675437970869265081658612577510510971377858196005515724196157794696009698402825269356202349990747542179692141176024912328577139276747271401893286070872659098039712569625892159172314578110424383841935563320062965383938070852218453405153135757617297040330797269123860554808245908842310459952626710132279404027249257002261187404452509263919395966318480429239010357279935914217639666832935778302626622548723664943262122369662749595397223588281103480099363160213535089999238194673717931429465716787095049056153318727216340647234147010681231335684364415986556614644768599301751974817550731836388076603976415093201928156339420768352483078162475724089648697603438537989582909112419857109313511626821880026615863038148603916679816856881838554453274558935143098408250063983546025008461105732990408912940665347598843515631020724484860863838828474297641779693015458095765548255931808154732336837710162950887951715317348495443934198729571865071250422565945492922419637404954617773241418794268783820219273920951029952652155942432174174979658870747658971896086433772255745232991246160516231961724691499732442890823157117415254792767262551617645674269641708746153230108092109565554588251023283025821389768351719080534956709106838515712900083372588086430190664976604495652917055518074471714086621104214452693450641879748021704530241756539634390636865463080816880123882090529351712035950447412104964154343888354203493563889390805037802206106553115223192546028232270436860620415359806005985606415699752717907407417254664913148326446796159692869836950508309909312643493543999052058020102426869558462005119543915899629128408514958334933580343886208937119269581582365141884566030138648544286072037919111501472568766695547033772258318645573412657908671690560435836004489816421260551419454263634156081524087346255706259445761157119979856547143751480504647997038166460193685304655081244687322198169054230416644410495301507055448303035565888921243121259623726207979998583438100434935194343497960146081194787347814066154307512094504014355941582337502812435515753334075799395256334594196811057906165516368739685657523959640889708902518681050733920549228392738510603782389746314145033569748128783787659678051741771255047586784191368655822048825809493482047157639268292295171068194983360860817338963837566679637330372938230684036034332876526164064476687138926464308224776906591911117298429693096663734807911524617090569122636515594492069124652716792217169048268059336103192492753065438850797738040396979856699939890544397853178887140843746819982237379114255876199319339486203500108399174790006277798913516966434246108175313482705656939432441769036524465463801678968447060754706141249493394492588525677423383221205349726073564272588236136850967687783423437413683417547095392015837707458427149391449437993713990391594102328861694509717058136115263005460382776395225290535660405875596381007062005705209147030819459551753586105115137822075985777353010840652822653634806935068767929073297503582066284037229892274875786369488996001563329201089736705772162040245340039374071099441348455432838245693680172164752221188048469729048902116045848549869244783053679942382170719204414371221449935641953132301433416968490838805481470475152545327184229402690655013195409354705551204191544884423777672899482721715951383962054062982995767147715956294618478691948347813573092775735542832206106040707006195135132669391046734081843738335950867789351115276677869080924310072164031935901745019385735980185117600701271224950758456155768727036146947657956162673991784846911016738044305069739116803489648467621932623498414271414489366297357881336095139104527867241829286772628316941268422651578740833644287715115105155987973650525359393639996919795387365582052553803973462395343609097910835695129504485216799145677879120201716916269949685386689680001501457346837959350377120757387776015913258143659066517227262064822018576214810553223895988628990975992912584234394321449427236369599711185345849405960591023376699346005897770865371707436153214614218205289615442831621245524055270680257791964443361860609002344020195334170173672714140825309133721375422598265989213957332576002007944926697055862394775248358151339846665286996828796379653613966711684891046796078163145657001933446589627558906503916892956054675257626631579173565022973104406262135708895625886833826007244576988237019724536810443125270526640795316666025248042803498741790853947164417510882467010243900909096952012404197962578319389228249255693130745465877813419268056857158105773674079484412156783610575660609806841900008534972534571830989625411351280892760965122770679799547191196691425080320726040297900990329798489352811220852950259212073811640690663740506677763126613754644684725873580450121482701162352128773087139337397795269194076324720912972916980497529366430069550568660626878757614125411575674007367284276491660943325040026947142133597416587582001434209364385218405594939899594061961331573820114291314755327457786308333309680549632069159089780651024572382641312607194001755123988547931712832832587924486128491950525328451557321039886486228616365976331512264867819432252433239718588266562613236559552730960662358604061861446373530782975381808391688483823637604316551994672332823385769558091075998789165522131814403356744477983912299075660095564244387346175323848780766717477265849697279929724665482435003329385277661972411988858180960282925290175645446321709240174779232728705186959970305370036755638307326877853898292750567661176963389267941338752111605197724572673543323670691708478368746641330121134481803381361011240629743086548190035166823915862092939714518022631338486516493762756135523355406049023576513738372261181042473470319312931275580785793080148026227499581277679198680171510648673351433139197202286128497787878256983111033510176575461254328765835223071715251610112082765833330354477975731745163655784512001126332133037313104430307060290166445282543919335677201489940206688262695395266043573880575267241937986977294445868590809992495303003906593909854150434912741549888801031515856674671402097207113139030785936124006746079931254529781586948741181877250537093110794405546366452830058902895231541817916188791672021071667550503084276832888028924663849944323700021813593379440914059157255106019724588216915746138131806426062359705136155014042769951630732700692267880751029010238680914886032025631637741419573714758808029944511014280352968497135495871352538956659517113869715148458622618394426884611290717952847340978171310986672316432630035791421124780681127112851367839781063011169351317130659936557860457920289269178346367823550679363098397956889336547428751412020465582662206434516656808405935919908474444210512313016679798435748557766551179064368679037126083267427415501568085374987947041342620472852099831393297453223168309342942012144198519913737700764878734046231594793616494643790752521734035692117916628334697832527476865241574493239623792441896863265388521990157506021677450241103469854555177229165670437227039135141511361650736321063210937722328707379724622156146452000432710722430667071670936216425786954705411233695404849181537275517686237380138761733120679298554772660066453498566572479842845742712144883625631296937298381504581553966971480697928269767488529015824985888982051838958776683215265720345904056989266605063629889292124410474581062549075144609571703299221459229141403747338702098647090998087924071962914998243951269271991348721903940959912026164439628299733430774941084761351142445692041159511550916305255286663084870293069234303296808312112461254273049659232219961381813254695083739238094026534451557251611671757409634528042284443139038038585328568943725219811119410125332190958383257988208461184149439149191298559364497754393332661052339111653072486584341839616939676535621865783898501918938649881705278797309275860157870296687497529796148979220782167173757530423990503985952589776028350275796141102395907138524789603825721760082945350756477166160818814376298730803592085256594331955799871375924741321814170823161565335377310313895166855406535675971034514226861108891938438194721332200515618036189381725407680629506904216131358981360700649357535218556215021364388054442359684771482176531503166210128571247577725958436533723094202984509596440961612202876207846834948405369624318698801128310813805736758375238810874636407488501940484476020330755357025299453022563446566591711904185562717597190918984768699795030287889778416476844806473613873112045349456615294838775858796547518687909648277741129604843288866161737494948123061640565270751016116579960156029458954635432118729134351281515316415755101163408959324900306937365940655673323366147751517057381056537320227684068283483067891970135739302986679769141359313604441768719550247263987013620905584860088449892362635871716559149837360497841194219899075142040636816588476809752029268278150001327059607624847558908552155983719019690845923543468381558076476340033997912918642974985865744488020756326264551897189616397099317600985112080822284440805947833139881568736664774391164848191575182189644552936803096527632440933100969127108821809293876254421300175297806806019884777122217467210452346712709702312994834732107181942446381150612254369582152462644904464288570454760946783727755694331735586810275003457688085937958519740351945499600130821663686395204746526703989072143469854612386813883839431599259841072533071056398414475958746837458420098317546444085244855266827502073868663976214929427668795260378628354749653601883366769174462993372583115675459709173792902615122042588384552016302985062879225399570365846929942050240394614143865458107029345268430985740551905157693749900809795915786091519708590699342799612015091803326662193924254261456891208277127785949325902070486290577204804955066465359074363286829204342137301981695692129598230824717924213344620262234208253318875347852946149730340487509453313262015313389612064546800632611427130841447930779141124131350726177055480480850056963321361407202707789513441257310576718588071081321301733089450321197841208345547030693818796313205917280917008153485559332437518528120034185362137225825893968186060471406953894289397178048699028317640421215280886343185836983113117416695345056126885031649086594521466404915140963731411833334223541404132261283672968282024928192813987241665074965383865734952389605972294213296601345428390869118602522739521007796292415309379256398275975931123688272577786476720414273678086497771235447023774568403760460593615148414344836798181940491545931531672225348846074204684170135174764153500363708938269989190273349506838857796492366845601214214345210245851264397712661685812550170868904694756690622443250041174629720830301427183925278669465328848887252932638111473812964692866416956760957217644634080323196244350655817763917124251965783697137895744403127868818437244496188171537700124526434156499438792795195739644083521718083232421900289677252675459447165746370900272056343200908256861643165238689888480627056060577318997880051866670745176815898352136582361686770750320558194492402782824203511466316751924320298084943830296588524145987393862060893316510140902106033674274507978697042402088397835632449478619552979353219434849697305827647327492892484077467097227479060858065095911951194764790357187437251479230979091909273566652013518824781524045711669644501333059903325286681570276947854773060297344263589481561511738361889768564416475694269231929139988307992958692412614807590665986902546125976556293541788450397465956236015862863676439982036029146430451925698061133926739985114064712128257755098478382887789671707698976700981744349939995409637940975283550013404443831978406739433967983830363035052357779917654653535810967793262149138245811667264522321256560131764021339489641117158893685099808787341587260917208129161005223088637321353853529099583939088398896663645122300080055064040361644945365909370901590917847292706307018650411248026518551271730863162141865826265904438065334462979714192375504497743614243793302195690596420557188614996378398674384799571874644416538339680125648144881614014352828139303498998419144998880597353150516144933531088248520150654519958125760757383346743227543642412588329580440061232095054862098747206395722877217590194710088743098000336428586086185215321436993424768035006852474494901230981588604316774509414647887749257591433024940876345106438925956775009975309378964322169141224291315721052112173486846921504095694258716255823104602236637240033073952271079594941657269835943007160249540074007300542484044973846644649647323006714624576733652334754442053680197796572442562156010781233864821269883019714304532724555028069774730906721401193639329331580981027522372871540362899389034315928910520280624440362634696729008519452547340156258334409171449800960924499915349550968297428497389745529563338093119190202500445406268485431965072935438760227828545012445759549702456057723072303822529549986724926311434237788460189245079022042771961062534408627490778841933612727770067079333430928186594529756742910098041684092891768917231563775163342784281571655010684759769462795385150925029450941238109061287769826432624923468645432116824481380583692523659284478558073766781472868569397118732051843464974983330939627255237989887789582483042943152762745347422372150144876643406859241003202322824622592243815958314963498603670319205043620631990787567148031671595172587934813116493472045004744086359360126983550902590767187747906832897475996790166588889389584698284598874580670223013379390718850236508312853917738066356341765139300250044361254319798799365138628800418628842253390855972273019693051411318314904781209808703232561160942068665178747615583667082081035152445081901363454209501269297059626066848473749990173609708863358187906536809497113302962380445871702548932234510636572394727204515275290836014335017626939404897991620193808275002975334036439469227622482295341131448787605825916626296431374334671021510013882546549860439853808366354987581407167827048716607292155764365515934246913145952857514001050650937556250059319942167211098926662379967893823602565467449900025466593104550070310610313511793322903915736757662878774175879308725314353915503922430237979322796644146461096625597701692607018460328212495092046060744135930300040481981743743546544331980715297346230071851971102990525710777034221866417354714446149075497069556411766876676452866428675266969829680150554088822826261726456697095640182116341128396613653073786244341779179700495378823829320240180153114705764738505157029599671965761961501803665428119307730094525153721022182364802694782187481971228390837812148308497664154270196965794671371309796387865655663327921129789009267981183218301607872844099446224064309925239144938979149566814792150846551177213310452563294491239346582102660306081986319074818436733355801064844702276146927806307669714138511737406249270612130639465595401049195965966028100039923760118864303546565824375824543848020630253638392947447347100184023001686748644413965141533454955180838228960565458281992233656195376915769832900740827987749492594913552955261094011595287458363216177762137275333487853272009819764301807553250190780282503377733638727037648079694188926175710418379436416779920716623108859622594920856266592824669417110097809132909031841089388975808087913271967127619414460138279871898695400021856923013584566294054723831968674273864232109305424953607919528766520983836740839727719135782961319723542261985165358981801102527889284965375122222818214184243183034798931069541594218404755406733119898784516444462914299153799733306515017028932180913676785054374460146323382287958169965199543557091725156405163512676288361249177721136349973344596276598522426814986717202515628190062826510145479140371807356534145983565009164435039617124820507656931715383289105715771143001073259207311402988264999074215228677605210380728195806185097040091090993499993502999721577706270468370284882829260238347248851055964060877499968555194681356243647507170019409061419631912888601413754544646528301489333000430824662775297092272561287048231357967970764154403621490754983222059088636781608011707076134369993243546434165979721290309114068067881169693172276207414951715538954052084947735454426650772002831286011003241865186525879182330651766612502558450873292863831719605346485173928329041285357023384275841465490024116759415295738240656535736028058802972116999372385552154523732946728385439913381787414199077158767491738061391158172275624693821587317519505918168128680473043664918350941961306340373718848237090732648232705653045821397707918348662463426482304622518348403609301783646879474073756738727880708757587004618660286433020067054349299062934058165428834488129834228274955281074093767780799774345577132416633530362732358868130218382323366889084415332638146309820837359234919345167238118562256058699588376863002275715372159739448874274151822655349666615910296464869895566990955316018775906047161117428129341748395429005697220216577608020104040158479071301289392316113236456228841789007093182059410708477396674162311374176255483062042284947243207104587683616272060621501876348049645256081450739325788791354012598309820106586123016358182730094394184827534705149285583324381861051992625538316225137927169876875995879005922694780916414093583731214015409875984312845552449560041021776078112763428381858412709923911025548557356755889138333651703352494247771280395681402762379648515113123100166361872321112817200203614746710648861565038290316052264363481955511379069295520848022291616949286691501710450903654881910536269430274132665092224258616649855686558356304932739977585451556917571852402385227521351676999821046343927312312141503537720896295292503802342169678679772578118922970237723449162774476188838191014334856017515979277467653913612623055588571492513293425696946816052632466238576512000731920756409129236985916459421028570135720281424921189809868576758688437684861569264097229175092618390230144373665363706655285566758796352802838459713791514464407523520144923977663323995548683283607594286336411840453333059751596782905972834675424621223609766300472753434622940194211797529586750946261858932699100064282305607164996719929583568685464803621488548028843590178213846478640262387087335359636329761257068053693132302438493713677955688652238718658398620798959382151209178932754062551830644241445295426229773758820193572829747203108217785802759673733567736927102431533438003788339398762035443271494572343686318896522977139557447227084546059993991821342463476576537031322395158660054045112837581612942397029564744220333852381144600309009473068646049204404822142282732302988048224987596703944718703320753282183272251832014016748602753936697197800235667464293259468863572122356774353280581317417909543270251275882092222907064283230171063542981223944316937056106327711285239079860983585974121787452115272315873786901569677503566991560411390639177412812586798911547281523467373601975558308097992661804165410371697580903042872381894592749933080458695828705763723030991709897526793918071684017728944584425165453159073689890419290688169417632523238882158746895195246214554639041545304382652801877601465936657629063585900600621905887338642842447280571633807509130550540782381705584536691749163715619659777781221086939442579299839047562339690695052431485878297811016439235441284288497892375452610178385042378565870302343607155180163900930579424948502960325496381753227577253159799686124882891419620165137496221510983319780418662042501881207615924711853058534793782737763596316904902789297075431473938934745400855112810194952169768573432994788809834349375347179635140307999427824453898613311491471357582002197888510038079374761846442786134520341373742490243674018831550117273880604393257894698087210768565925610034729630814522374944967275563623521576939180623746009939760930868431642514105505719295563760687344002757926955265279789019720913144365834599740267495709141855881296582066604764284727279604644956760110809700138845492314772940649540192708811669377683155594245850287851922154046322222007929395783374852652580166973115684679294426761678231346302900958143875352663010187342941722194362306154907965664979114825179489511164526458695015971361118879478806126816742406013341594190436841962098339324600571953797137318370196254056610470988136308407990286185051312936139583558384746326944391421673489826066317750636399737953975091336510540285178099775018080234853180780762947781288494936731901784341940933821951432327716729428822104877412461052473724499892213400427629112776664763261826646257229339998545599157359709588531622786494363647585187309256741757951253618301264233354861088999613326449380809816869550569406644422783625179493984963194639247627699680500817576259755105731914515980510344468921965234209850278692493821443322302742972314828189403337379057371467463481068517093051515243400361381646444002057360117195293493807881121789804991444437930239420329996723764706998922779390231547380038849748009236664727377820923384168357501253228101739852040235742095948141594016431301214439220665155688958152108324397328988043980320922100136036964734766453651247483488951358117164939335339424119718931253302357024802180293238981409504883344143185129768633186752415842771107983043307596040936479314789918223185507951518828767862979624002224451205692846323806760036932475448735546918542316237816535062782856804171114053336807599367518510898801874619403258759555469545213179516647453838464555254899749725955671304670175210455502630169024895028529716971084320805459226513301988763443443293855105012439592039673019638586868508143128740630579497855584841477187939875689106285885153009453826766889553990864195441080265603990575228580855324169194429508940172027204072512440206198155632597796328575592514335158802507829060929634045021434654902090129791813213150757721591693786228917028911151641849967483064063241015647296373098981880317215140142881149621686336924088523189239608123185236564426991391372907141548467202294852130736492143570379752515006881221570264447231265454010264218051818053995619460245085137808094608705653690267662632353255634491719613905932575623299917398945326625504724991598054429715709623311009827830534814533224852735941042026275170509811393082707927498296215699669354007761602280273463904420461999072984236826807850598898583098713897143464046133766944387641212429351528416853035746332169310886283510686276968843693086747836884927421655313354192981080705759034163360806096462690668952528678549004542660380073007482508945885006279049630180322800918174343539285670991963135295176491032356290276666342997543659800019763333270227785407837437313182000895683365986515590225431158592359549563512095378824145834312820372268794645416381717213785441241906984149809323472562731735433836860454510117703440363837066997830605988269853080417663916841777624311963321365861037956968843686664225453140375129705002146192024205849462905693941560482970772129095667001050482092070155575906252883072829134486090047128912426696829481518535799239344424489353417833483539194723534817627144912529949651573329642039811653165361246127420338568689580086679222643913476078060522396865459652435194245786589346646506920978387063809918444596870556660831037638465000084601525188125014485534048463131818670509923736442615164007982011674161971611580762200451288011569964390174649846126866958532219596321458343003602380083675844589408761806712560422996059101027994766504049071049645209233120332164764257414864209589295335595309030347720704170061067386463919334542674541498986526811862926608660664686406761182760854082828129696893104553591177207696144273156352291486938481011769098893530131021972261791162197705022829457385407327803260793113180005777788340902977028527938345002572605962651036464936221931450818839846252228332232514634421702253389101632008116599443440946667931193138044506092250377648495466419680546543902880995258352240807418393682324043785747419533985750235118495186368469418323151621018526327609085217933121312222350912537380970666352599424867782493235021893801249202960340747313416381851510600205228237931627394792220192973978459529832743394259294516722863502088995560796458918634822180972837578907619268463210915515873317831693174417519603627777294669058467681288774808292314767745237648121847045728459574985355034905892269541241205595121764067755799451540697351004114053607198623233356774206620423966584566738260408725671539207055346190558020260350389564619949696919979135892087220746201838384848429465646846313534710075294209028669255412836424918214384985494622763709669629704115870057789715835258599456168236776415929672032179841260001030132002409358368286639225357744327805872804337953282074195413014450058061187830047389608459152647709800084836844564259442839776682335293411396249730260158469253092191833971353807686088140239939139219373780367503486286727126386155238961721203311219676178157516616467522633086076084828256240371626493489788301436994415354560840105308149659099765185824638688101040582816690357798910694863184016820939736015373079395616679251418429814079716748779716961587741798260359538638782875540004126314476108960391629946260616991826887144486564885076097079138571479956664090753585179537004503894031685182793168975028999537845257487848300399979468327532975705794674890778270329972866624629044439227613810334426552338137340210984822389578534567202520132202452168072336180225436638723192446114593462121136204816557852507947670643211360954366419509039945583688873671750287727034404184187428831585491859208225391246541660278759331746848400475136051932865416298383458675506634269020240374965878764384588710048648596214330488618346263961284219883093139345815980788135075640586639498848149938145103438107890349497167399313725225818129585636762714553445058378936104671905175000212146670390546169810509312152279484159595254588410917153619678168363257498238288884772643876678445226690758796507588304518143219161950774062441130930379321237764947286785805988965866750285825766029834798061759594600080302189175343559333043800458660060502760679268204069274289803524349042320992765758110799854322842292774292495976982406835565873871960333116823596752141037719928018158940398033611223250393560852912555768794889250308950831021286282399347882406857008112102360786816565598608697145376177466263818798738624311013290935133255473959996253519685438779029892696372587988078155582962687355906080495020342484598927925205010320416596856177803379633866000536227008913564483467981493736394026117493269469518652438786240523959695273521871967932151022963854329161342750317017946004817541516685334338315481140346867969652648833841234615155170096193139601330861296416414950181785834119521813912662616074278830207270909198305887031131073444102389418450088219135874051059465447461354194408606405731310804142486785805113649052136242603216190552801733896211635181489281946735533246110849570167001328516864867779989106562690842942870083257409355186629907121615770438150898564006912230140383160498421354234510501328463904578848366102457887315044851023444822792302860391968899719090750255927028811328952589299280493044157986892268946328797410476503230528637011651658388356307837182047168114303451425513465904519243969231165454800128536715136589418709921770977692775220856765608395966177909642938568541254728319760879443293000119007128133068547891846998037335511348128524857294869687795876368286636449691816359354547465139982734866203453985894327811636800144686858871843547461608697173552030499561306765238586263398122391938803076588213539380850295971684316560171112430303196318769509325083418112127334736762905397308758089857763906351059291555401717603367332728625267768450397952243717535822516680761174519984150326696405886557448106174921793099152835240573640624685140664617931605908162247362031641398416103191156435347778080729556121297703574206809447186805775155372704264120139980068772843999180629804869550548922840427919361264493165497401191662797454569934480512469860732098025050635695804597660798886099570374576473500014686404115187068669796738872183461233354682510457313056452004452422451430351280942947821892013388434576559997194648749780251031087921470081594589935863125916023586451846253033004841478790446386889847829894901414068649472885222678129492195522146211720872178081803755666901376005563320382288716933262395725072255283779431212630703490643553813686562401938222383872288554274804611583712414626718194531289733080291124198578546434756337418430578223345082364167053062298353568515608405315763124971786759011233321807930494660785058136324234241757682227706698611695023661434136881129648822085997754834878714249745222935481762970602666606652504510485047879151963930315390299752187141132684951785147617581158560004708576985453918493852739412675635777707383737826984266991427463207116009153657724489878560541348445372943249915069621447965889946630653638909740495208809864081463455249772490315387743377361484931862374762730456601843599752322411856956208418538606645389728006342293509285702003821656036506739402621644577168135370504664126743191985868298836670665463549849232053535957584560198877005482832972772988322702005604357757133620195102020298646034864808630561681578694390213675769082060223948831961717014402249205332528414164649027322142692665059946232657741769228771196790102827195705277513477803960270896840371682608408776244009634101208164252927010783125332004095111573410211452432376209307249605734317508197559721732953700600615104813079896945330207345822859630018278358202049913805220530008471848571144086352076576328821435232980914612962701348614781124148503716688556773180315449491342766989042708693464388031602465918056828499454001047183615686974379116796449835745342655424299998201963475174784959385072997149423222091951296768961583572471897115783511288352547671337277068223781632466436660908372449565824896558887522870731167069513687255081853049627420843012597536230136331171349825124948291627007104766968451189984411069105875576177010396866708725981795046091015538405116090280255888970038271683543142245538800815351790665964641273265445644517990135064010136846085342838539728239816447457688442041532872272569415935586066630756037318880883829182729782982974876876009608676946769403696015197185193208646843386884696843330018597539749516832074778552600745803833631214831381869611007474137322403914431384708309873553187023861032222030904060681612648823938948994067793509995815921001006276336188606765165304948481588329227828404387399641611374838742683508107665457538692811332767698994608227667294275662654448920245918559030345144785692791141664785746030842206163777461773492593737109534842425945936555252498922009023800344974527821383935350372355263088247523639624978233320879828211182874370304363375139454773290147136282448072932198948270758215942169903504074257073351150948022822131480048074180661967616332127911120944048743170772632630956314402127233766640543051715243092034337431941694241296714376578355591178292515469428086200353442191340692136398602546286585081470961998044244506316927515568774516464689726061785290161527589263407862816913941474247205403851073529403372522333975351510590593748481788494268957499258369907517813977550909190366833808877546944370504945497045410628317225762003666430014802959605747382236432797108713523752302083198299529765334474836724981263654572914281973734298577304392007066573469443840828336615193328287472524498717865425854944139296740024403015249791933932217659977463318354120890739819732504975627005906976106543646383279035294766708304821906561849003274558441533957569769905724942263860401423074917243471471336857351149843637913284676710746670491726071583998000932318794972865726691364552329790778971780207785173170819996913497812293143463332104106708170874122809211378176198961323984617923887908845119569817286366922952527530963917523448660639679992328610511025808202353019410276027343146280439265831507621794313207466591672527654916726183455950889112036540920643267067992778099862062410054472143090679954546535716198882088701884317031878746964296297190812268702148822503990302128264705102705591748566500806632441158413733021122395996368934679044599261800227317071874697687716143837628659522151335583441975529641738372728300392889696657766013871416366503001700011158811604359195635628029894093053840438122200684681000367365723130936877024818379750251943088731328943331650556037766179166188600816651201057494169785531527482822097303669117553604520961322406966260759494211585365374794932502711652139965136039828620835476705069198297475564133745132552538257484655609420753276497971073725106680040613977983840387179826017465465897269057365032626361567871960270854229390114115857414189295959650615224996809201191196168934247488132048341588827495358991063775447146779790741584925553434996783356402491386321710092454700751363685050167006569255304537105940576049809114261943156488888794737804773001989811076275907533630606242268286026248322394236182718237102017935043863052163771369751914951833588599004728673253214352106310662571738650021094721242288566085925451854341559764415491997021462374159140947162298571947153318647047665314310352939297255603021663049168908514989670990960133619686876579899209855774517277819091509300896993903920729729305971025609157145486588343745649008775767659165098828041244512795713526160187093098192367487937104700042599024525546255105478966004305661022745185758898901638651767347421780740567464238815938872328226783588000120203977371467538165465770529273230840719064119332295647453905563698896881473138436173647394239001651411421869391284459644558491156621939293916035433230325931759013314564839966993862374025899199151294204257452391681087050039127527515092076897067562339582678909905580397385477614604110651956658516113715924611217116434304929602177137090437988981166307615452457919149998138185938472375648108413614675283641002012180793181224211388799922498942774215281168123509365480928264483378396292672481288356262600548169716196168263841942970684696739267613756340506853630386625385243543830419567397532265856363083697551026281922190585815905349410198387547174614037645978050120079257541001923947487549117722231929041087081818247050845768406592883277148966970583177530838550141963120623693620918201399869372350777752598282926775747052349080363816906322342643179456490944361953259741264892580876194553300348645876037168473751968504593510615768826798827407070180830611615827677527789386881731176846358044298693614413737408255117759336904808603538084442854632008633346202280301137172634968772039477128394422766087038744974820379564421902928543386338897671481517522898894750037313823997416259527044439966665494854346719750883032236223329628735997253829814271793405111015913049517793462022324783154701546542812083237723289650611128819838452060044063395360811017177164201630032336975847890830501836392443199925420877189848330438529480804277912011599535975399275815468838874407271540400661977933881197676203742436727242643469811235392201455644327578001378243112876192227788584098657701503866946870582554167310194369510698665251592330544181072573670805730736006123736671152907709291808884453784397544060715166524321851433522809409759234211104615574147422851646212618711400146922684763952378731648959391437713516198755070072389757187776362137225459642136105848779925415361414512871659434543021797448237441872516561173434038884380317344163429807578460348279104658254485062889864653209307706294457988820439511111543137710839368884225855402482174198694185229382198076804134383438908074801304071370703884748378805761594743023583832393382448648297964607390878195278994459250151542123680400851922054055429356647333679343456013568436471505901019677705996873006780749329275952615121348783773586688002458681684505326485152874102421388654318328081460987298512644087805472441511118218256723618321751154467246509770277187644031719174275300209996395675469640221099115797419785674093314591762291955298435501808751077694040300721132348226497370021589306303053141587984914143068804445125667036885247545716829834508429939314439108859305877544308047700875630091603747070230347075316965820717858906085090225541113190062202897623117108532716270161360415618035678903707085230037965836179859650464587268815713793678085176989805461166576801187502946210548888264548571698162684539939283189975224156282742059873171806475846168808805813329677104650217004786533795665627109365370790164897606246440377853979778424504732830139668260774641777148040869835270445526613167272167506649034294398841353737890818248682061845903717486380063795714090273638757639970843938125640866557597782375256744883896214321294927028347811805442617868873214206868336902184232949375430646152175792283334734105104311870216969915265440386951560314742170219038644063016359863527928786874054950171931471480281552243651931396251863432393594676569772739135001808909815471596392323504526704724049137299605252591174941586129792001293302249369435339248880609373075575932335255684853223006756134718767484587973630900024248668210175106234576916655021588930002192001410874174296731224296764456352140465105072472390376788561602493316183157155484307712398169030247090592212513371173980709185224250635901926783609881356759736514368539132606205870238190029275244393149353336993796393198578636713884509144138955121939795254890057553259907145250931439035094300007799620805819000523535784331687028346491998846559010661992792832006800226231246354516723844570783973528970486759058304546707772717194766358345471733587300859112514040503810847657875405840115856083361318439501426751351778970136926826773889196678867667941092491272404692612414144116409618246255107983667200305635835702171907814211205843446280091808058001849043920518135412545200533449124249627517243222134322255927325877231994947792411097875508663302802455643731596992414550686279178940499980333702958080609502199726261574352715367655771593742173897399639732197568813849380119295395747399531673508468761005076187902569432237828358803662509010945883002949825959903586009212822321414889503619196965655894430609792916724385836802703932054874398574507466088385654746938613886628192141234303585812607092469588250854512723268870888282637666978834598811309226338500017621995242224943960200056709442923793850476618957740486013351456005660926125919811525089034482287494926522694526129761582923119083303890147683248675320054020885645385753184265867969797341327829254601489097960004470632766303154337058918459867864910269118826345203628346465414854951455357885259503657021422778910518948467960563004138728493476684748592257161079566945356923143512376994403967052690598242792898805166118579154995072357387979685011738118069811727872123443191786486881952341224226555887250118915907126359124220330096866008274951141442345831592401063222208964596857307376145561852381450538501939640829938933723374435433583144361994070864626907349064422711730278072000839390953186267556232347426272938155864533337556606113185038010174348146291724689047962893251099665984974257043866161868158552089794285441733662463786298482834952060912304199203213738922320423612575694398010091420046849095398159296340910393448101391184528760735357380817991798957594713051371005489816435883447743741296290084397576541458884997876115745591517923750530974574718867429229293110083225482122382247330395519728623934076352264127320121413216182380444942191001976781180979773889398101798803687273118420054033531008612552259039287190570326297527839776994873673656920605211972185702958723482223202726690699519464209817254202229056538512190434302352991454808229912784653666664530371355556355741371258056635694520771962568320502430915335433940375727215233518284771233341308035807889807424702707310427863957072909427558842912873677658180761681593198573628495067749634966163160395186083782127746935595512594727545560127684622172784909061958231656824986632449874187729070097764531987709508625593086785971496740997102030794611554392468511175504254199797223574008679951998030068377781390306577054871286805612155175697946867138810751236975080049594818066755068984605366216011496205000917537850871692000498813907006711287807693392056283892390097935242276863738118494762054888972618390431602568299257318564261780533053517875849549690266926056598755410255050066015882164203514642296474552566437707200217415279354267881169603866711039436679002283835963350540568107533284638256159612971029598065303705419144452950794464902211293288340736182855021194276038036125539654777145167420065847903256088548270788108035959182179079265415441255597946028997610484716853385153786387132855816514368557878668839198281124390067054021869027598825408814869437828383990455795462988564338335809997073181762228291563427995433970796542013200860949474323162743153553738669638032903222745847960734635166969769916849983812994569382872569443426835044024008853079944581914284527744587252274148531267594315166846230059077728672600442593441637641726318336032657517099167798501180393329971588294463011692164919428869729004004714606227472958851610570568420055219698387287156839756757423679849582431073894415374568820241237111958295826202934321572565554322148957727501949179035643914644188354048733549115131783693915082911530890581146613565709050815221573208756354087933192722853452266071055837011269915996884740007135842997000703460490259243437774351019885317673300130056161173677890093763697456149792748752167457165798703096927372533947061953317175441894539789947383013178985086029085841943529050897165072222181177490736465707547137092441952771280153334595339170754779279210654426432282345048268731183173715984419801143969569059175400381199542196580604411977178809999767899034574226811766783187345000635705639719888818648679921734380261784605546967191159448350060263470886848354917649710115767481477935042876201137985897126548812089980216639034674535099416873568565397918872443810728975524137587031291836860645302017572237251011203045457942834814008350255294195297952110547874685189000369170511149388372824842495958204985318271581048127350992498026767583742804904336449516189697674850174892364079110204218697529641771908439859624792133694860345630348336005585850624809964366629518342300591657822003850833101857805156929992802504900640159934199159223918728050369270913100048331705221056514169109284712827941621309879203285717779548492569849382144082506028066391165979528955107029859885791473018051468760400779779326806660658570517374429578102885116666267347303177145290992035565727471145222725997935197625967748021285306236306925864956205432524676661728590698147017398574582894239575399308237928090127337368264495849608801625472724854368944368324862872526967633532319189837422294653752600409540158128837923781125581987696821134316917765167018817719599690241370748038656611735871904312846605561643671382562321196006135313178156983841670514113246646867944958155016970469191842881438934313212505194696944725477525966766548429918611590982344506049726142994847219188803910694104956792418277316167345264434159997224812037228825882062887177543500090937975547547689366566457270607371563725686635595785125131053640476613872437117888892109988247161626196893369901507399468631644691358060214824419166151366440080229580796116697157130520595152009695689428959012998785074106382716690801146401696028154359702098437121569345412119799092855621974707496983307558166590757512964468002060198806274853159834681169203939924558117860097420935664940486192716012046637836332503756045143283602723016769758501646641435410714373922976972904706997860996578871647055714346342656954901341224314784736792750180054874299933939455926331119021191621267568579023396842797992921879865731122523017776243584145820980180942069662142696217066864931963237451696921851710551612482737996922757637124222826237291707252859747054307488004815806793922934933080174733963734115982987796157453888769663108034945802405898984845172184446304203322987340170801428481843720153236754928949221765561528337083105670199120650643176826284821211489690476537083127973592165050478024986289078626358293747442254203190861510956697639449295671139799445255491921902925437844375498721507483389718899471729635169648080134558121881448155462271405861863430665406863061509802399596472046376377624002456750674109886772033483393835428863139425700969457140923075494941569422097544785076110171184251834246053010331054203129152364672456858216543232942272685302126804993898672525787948777141395944722416575287462107834127361957535705493302312124518365488078699435958311458502106992718061843452356635080321080963093965408038561105556385702501140271948771095064840197301763703774716571329383309371252400196935660183188059573499556083793835878501598333042343697002371187207389178882158166004924654738875865537079606215562467641351691028394543342134316742538874535807615881253830028211352761429791055318248084435497260619879446459813268353615778416695655175128094134833284322520680701396569148371977320505774287833071402495214627535086506455957336847365514255806098723776314888637500989939765703474571807543017336961685244344263435374841411641490650760497365973721941680614011282728196283941618966312925049993289912517128912656153423414516959510900178203332648964160695929118832609807786331658599844934752905535177263182752256082135606200047218152504986302445514439809553244916230343251097223018628320717617992547871769751634979012095407958425954384911970680093734714784195278821358588060924828507157836569451997951927362401656160813788092336699257627970738158469752281119899485781073659167565115309145437185904180942050449077262035495772671046587315258944125023181035284893764165647780633122518346185831594682025427820859193641228816256091435919998028592620074576741653816045485730317971536586558601727447727636402714629488823139068088951956002859825088058851727722141716590332262134962191534981998390173925097426898421884692358521214794180982609677165772838623130114091060930253885084580410080287069056898633379740237926410310580150714138178130106296342328053906612125389601598668209779156740203398043059996964135141837626878453307921000110591750844653139696333632530110893178573448346023179792207934651427187496122131949543863435507069610013278426682656570668043191490061368700050098846448412246682795991200183401173190971328014183742350327807736943538699146753279700886309434624435231891662186635094519477478384325477526669049816332719188883470701227979489834047857436552581952976225506657672643753841188991263396584447836366737348741920577905888110722576438447015759418694717543623713477455055144046591866452619619789499659212752533112111374800508677606376642020900279115634723412871058401284718878388289244839555965956181350121109688369769019511085324142369534126729178443421170386423043585437918351176527270127877503416312571466941885625936749640748043661567330131414168006171289477317195333696344039618766781710175837653212602417615869769342210540092925046140447169025020791212427820898898068689735959130548264855821319307655591114710121138098842790726420081316618559476553142371328869784241823800213115436539322135099208805105632958424683912726584036664166593659309798052104238794384046696823457689374520694882271773004954830816494675658970485735115782894940228254394516324484368759306777893560667925177681145638771563081431893695383187693980891078661236981316708846824394943633364852102678394470071545192976471955560446302131012870933808630986198684530364800787455667351269564294245632134987553480203326819437986879764285646393191458302888736716703593074602759949695248206468137481821564551601768919614186059368435334657486064593158663997191333071356579741413019481941998784232905586839326286148179468437121933327144820253898702593302228466714766274328985819257088441665828841616821633180651345572027803449147786083970367186647630203545601275605711612925322325342040863156447696600729532215669601654704767151023970448007334798116136514375096709263933852400752548507242282113451365915388371179194527676914198899377740557261590937612488869745748693804468331719148874015873903823707767452812598639855169097295772568441781574615373486058136292878127549843068228670771633004096067193021870664687072633462453970376663561121969395738190196848123540671272864423569286393549857535751159762960087793251968039994984383310941722602099076047454925423566287989438275045904417859003103010397203358768563947596292658123538651389822345256148733712004297745930148791333896465782788053486715625719814592788957236314955098308812537217986444865128834903889991652787930792864819629294118819286718512192211217855040057883526764687011179576942995595458333893463813355094018221875047643384187825360153444662921939336812646292572990489047217310169332087809753824883437514469660185151081766575219705689962573168340166109254933527100272140642054807107409069698791435670414731496799571916410213034072237553779423972512169120253761622724029894903824957137062257322397304283088517421594008272120572106371559447474093231540206478424578222342682236891666292739571155735339971101652313021942890324855794585003760662522447871234513544059338711358221162413766883178221109923246575649336286974929025832252948473105582189172887015791735731059074131084821611748690174288877279688423442763556387103063670149682128863429028186145496304710655144909187765337539409525308227596518485712012702069424310426049987728334682187586906052351141599777821489706369055457953308276090072394773138449705971895048896901871352724189755549049805008963345166552019987944557864289036032928685192623985421016803670566845900337016903962752240750318922258921668620642676939418007773726180579573615003988908727358171065520919102395692132626464680956572672796491716788598824445403531014773780744321556418972390409496322836179332457868599412825896633010018701439026562926605266713459510172764603085353221047391308537116755415116337847937458829496602428901052612500914908044006707575895632507757201772481531924397910341884560846206868634695106435975610899957918938705696160258506698898935292433123270490687639424447800579246368252095723099377785979884971579788306136752891770550432223482958187078678442082237712776111200069964905923138292712963220289187743420466569738167510486335551420652369359429272911770835595787810749957139399787852536632041921736621698816864671282879587172436593240163379533509609126579240941208829980122809064318780106400117351659526351231700003363394454114104774567195271456302699880701410968877461527517882212694125681906646828545241664273902838140405810554632629495682643169816665131853057406505505874508376219836686092464141884825030646001079880606425253684227542810082777683898350018869924709291717810108317073493981167894882978884050681642813335449713221919957324883084266309733515519741921633736629630164615773922598208102584233273523013029946995286446102690632843822598751929762674652172478186693859708118877757605416468946100642217132159021156788254743908088846474528838125406480983061134264817505132689003205841741479300433385063164271703508010227220618954316445460712688109039515958927222648373901574260814965398160792876474831092818274386592273298275840401891896159506049994701952077273838866727248217777400065696889912529931769921814034358698763211346009629581546318067381291182873800061757099588719707592552069453630304049208859004819863405407681184711951476775501993122175201827804349412064928681860873835305343621740640418655086916192942285404582506417473259816862958501645558611505035815786886020445884004640040906509774975016327735019028426593279992431364608915443347732238662159076659124448467829271230744646298214588037476140287890374480951565192079924748663066801089448738460745991674841499901858708036664804999411304724333249017439233125241307653473864604329819839871261474964124554852420414452270300817734560569090589090520035437404938462365631912169592480052459379581111164372995151923806782271730917136708155188689698117406702842235619464740664444866959063036067591931211404159323075972866911786205452435262405851025411219856916366950277524129947585549742396929008661197567438054174562766411046547149824849292093202267134482357263911669082001412922211196699775910207366566251710101706092580264961934216515209063460042439778788360446486533111623088705616609011765997750232762244709855073420273078621988951141990550258539582833624556777904238696821022679276553998187986299673644820117689069934620052492492073211680100243334674715381166663083937939554708521986260159069974691435971147229237578224419166324319448675421558520507329333567974590356658677438996390039706903702586209291107490291235768301467506273025217064476006467191747377135130815384285282879218773066773253083002105851470620249285241369953170647292440163740244383926114051030851230783942344117009239060079134743848037843419993484673293567297188072719065785402123973044350880069087158577010842199432219791998721405773217247774180305857397849289978508430862039789199402014128820518683031594985897779127954860892567395945440614094629729600118323744222634883864704426813478783858821294538345771739443685448880151775075829167485658813018293666556620804148461909677593851434315228171088440759732607435697807440228607037384670382810968189856481882299251300408209075743447900600346210746482214102895720115753054468904633551921428886225991125627442597454412579625601750618060107336563687897737836528737362907044031526558054005628765437446236900811961644049568162330734285186865142153564215298760462960829877486459043629242831331362172331961207744258581440475271944524392520032216480724065109977926968065441791085573574091710991678651144321398361293820847090125459672112557842292265704541649082819686617123291798264581772607345185403540082563307824554691102059902779735382525523796147992284299573417793375280459808107400581554653146437698168648885029385093258768328141537828763478078230708878651396893922838576380629830666429121521576566864456848836039397212108762107297643671293008219975943275431678034065708300547743570740242343603159722096045309898533482731989472468001610178791906461443925675180889915226879619220342462826210268192460687357573435410982473020435540548327863694917341948309598972130720582363754937306062301489541923576580985631417014648433766217524374890240767796062557234838845911123998957036142529100048391531912620869337951582425724348146826961422209582013132202404392728716515032923199852955976140712104703359438456920289538325601349866217715091781639765084711750370135302712326191168833379808129693522505541107692565320743267299353709144010098527468985320814081541383205947157081976050398066679503054703195012360138919579859264079766905242528526855238752494602309654731539537652197739885846465468396362867096607103236933714690305532909239938544494813474743680632545376917795494872852546606343967821215800357802093279257832451056629041556593418883060499738298118114356606225636364453329504183930795426052206703517533336202339027242735055522072496902154308900270539208735330866415533689545330550879176678903241276344211830008201224990353721473723732924612354599106275210185401234203937459169466595275784229673988066291477198844800884188202819229538693913334821086121270683607929166787863225708265958064200422113202178663295730260419714864927372821738315941578354274234889706371460810740259750017355857132182738628094198236408845737954930741438648385891603000847550374936677398412651729131560370529322588850742838317613036149891117689719641585289597713617196315674876472731821527704866510406180874319556343970405365609347758485369017926491449533580755631576328035387609386562924851833835614465357994179168965615139591649872082534678585348254740625144306672760849035954908047023424382818613551901756344145897060335351497796783330259077185601699422068701917481944851227790977920617271428050158092135461107060907531936300094426445359655026836882546355385788692672556729479974701335251793602731731553311164963416700659136667255006717128555578120533892290561877352867723117120990513114539258380806103635299991844791447340267530310009262366168222351191660603642045696006759434925191139826678070344712344938690987283401762123139187221868059938342653350574078575839263816856445234915720321063549496304510031454561350283251499710266778884955794554555463035657520539080957878899467928565957147060900913172500557142401681901385016377814764873889727995800516385957359823769535152262214776187896478910244469227845017643607107216067296074728107550809061864630753107887178693500515821950516046963479905671719772049074967129664602067940187340973010847796789360180597710885550364358014733451772732934196483579943652455993881121560269281371686425787478200077892786666039377043239438457922889087105448107672671633707060479556170071258562852789766001647014883867387596256629596829419945210172305202877634478978366951762105889126628644000890891597077867082810497446143838669461846617787605786773940609076666606539441389555906860767116352246908353063242524532963061942440098708173102680730298182427298928932705476014044284988549335208901350647439110812276346935134870191296881263504538016935858612428300056295425979207127506090343095189165839167695902481230091388906345991739908988798238440052991516908343063413938573086820382660129090553661605916811415067283699291051174194108988914512856072203853606413682134718757304869564770684645770355668696894995809874974963477149609546235685774668968416628031990649725138031247702537012392113699113127985040527472818651666448380891677910177389200905704368160990097370588095359225798377575278730399035826539488400885085619183212536853294667871211782131178071150540486074456062053980019801891569326403404112488053731914764370612632982889525808432192622055162221658799464153104132724559203906203231899668964585535574901899659158808088085587482166236176227656617026391143132978017391638135075669752341200532723101672174792839650916461346905194704312860419136040570781808247036949650982385549305813840413727886747787364442312963357401517687282860361613708297677857902234529366562193574193915210522743741331827377082695374742184016192661269074458205336807368328275867483797167458221739079501213361314183639154277038625280452154469571519521303401153039248995589410538719888050549179805761520493964121744904651368520477901785338049458552532791682540241986363219129864803926093203788468028427477124254455536187219585498525716596659390175528258388189141935296797208132918021214491235140586685879169745483402998359595450329727815965181869626357612076462398913278605626002848607755111243656440275655047748855435852100370361666999603481044914133361958175196684482537224386771971376013502334927850634359050845631687197592649714858865138177419180885578163439474769858974399576125962561128378721423521314351936696422171952035324099159405697838109145432014162828592849763760069462648993666225363107678897983701320744036920227483714690928812774666536071762303344244272998074978996265583226537209605057657854004193462955267135185004139489781638182409382331830772088511982871781774446908846312592650586858526947501164998334134812279192406825896288213492448121394950727582169237520621659493494251375152305628118313753125869319456050691599840636321640940847309650937747857332285102574246240992779302117723931838882942751893128908634578661316727031516515816798466273472513289709237857937130837063595301871741781935772100907448118912296527177018782934491987622214292583108047474538322898164154901997599587485277007063035922042420534500877747963570254828767666178507170367216502721597598008931018054203228704659900044216088735875815342672493842234176131992095370788492991015078162838026906150696230042487798431710295683390249912298527730035478181833581393550379165530894531637840983081901105973103346860091511460503722957815660453374451177033060693709224944513246274310807837833502139854304919609822746063283626021773878408988026380946727895690015918008056240343931483448125785897794547264826578315057764972694347664367276857633932028247761783358381482226966078602377161125003645315052817286812813312888044750329957371449312382694822916887905786256125714883992083267669333818655962665770085428656586616992172180214784902280293820319859167324900245873019228967943276714000229711473384850935759068943931474750672237835845731668646756783395967586291923603516300671488974430466506264610330655641147638698224406879394983299299454300178427006807674745641716166930081568152002896820371854648107477188310367619896431472186679437051289082091692967537487606377811051348050035042960422530976207967468535148911034540505489811889686515223677511744938181573144467458513498704009991146762842349971016554146206058904426554579633661873562189162519707464112305614148327879078232978548164718437396378509898015169276389135381386270108360505779204957257816604930383044105239310038575826171517173194998832082057323863255248060588616587463085033554831417537481620927019828044657003270853932997871755157624131798320776841757666169116111124140383971472941886042840017469803496527668864879825653591303949777535103063889953102251024856200956722963873196789042620678752504084199435506533356786963606566541161872015050901063956602139275996976033860446232453813869550099207348774051441827999262341068695686604724170326494757615078879274182392036551313924235624962530147823315045985941266108907508167265590028497934083563552108302787304996176044889198321076102211494273081610137965699847217872366270559189539713036699059632944459748017478598394300853941129779171085881709402209256487553631711599180656829734767572836259199994376515387818682986473863303667200765163868320104414059668642868938407435994925496780383620348282457478422761835860299735301081475025955639152425692746909177169950629815714499429901424108068220638627533561484836741746848803146489970413078754170180504220642678047264737005058810176667552209177533175635026095987297020311253619427834998163781976286175741715373336492387764947623800923870596092483188134215800616272463189512997134396726748455065341736730543765955397745078917225532459614645717392068916055017480311802991322382508433251771088511052906327678764396943969717453251982974409229783445349106256786239017402584482438315926776421355486551984846765889441315081247862659994909246628112407677122008020563042263007547857014261093363605963878456669230669252593999165372617253048748234945481288428503891200878435642989238902387008300850441086821718615282932351953386610805597585352309011839918763732989394682311630872768312120951855802900574941338814028284604079383195412822459455772448062498011157022297674351439759576414227770054452790313018907971822042086959193784589322984803806645513389806852137664013026139498738853441866860218735602733582148877473830640979865575454728632314401372726545029942033245078526430294616870416255309784344327887964088402321179279405596554232183714690753477836563216535064177008974770596567447652034445731712999554124275173162304911515254907090530225172284823465796303038889010862723278655280914254180626654121914106983175017645631248243332224353084576529985803408782524689188476119110841811309014180681862160877604620221894889134995331388626887557408597596209232753221109272082306208091517984064971447304536859646151944296348050432610179940746479303020544087924968676510359888962782359761189735014946767743992835280837384955800803213019964893408184363186398013936882377561878591321856436099688672289546193862498363014069365880667488391286551343704905771154504015123119685801213109419161505639093214679270575514957031952728227717723071942612138856031257018240983170759687212149146225676072524080370770886133986730504676877222016730015011712075619248305159815674480144903649771076287008330096341629547320345774668151877659567466441193502324130574449383380690459079161973535536910183893240955817636041531588060580543947819271747633820725356491206823521879294105690640180500075216938327911969581034331278407551427384674946101483810169547048751817462730204091037913657575403687933438676882112659021577122068161504704210052136589402760448035198341851412331777919192175791344489017813681670213281715129170047116741718643269072842913562908134391091740875080695330584935315415322992126501223308656260260925004516804717766182957243993907358123549246612068969252379466680812014029834310068835073711936336975434918516849076514734870481009273180158148260821257188033815635285096761970290863611840318260309251766641582053802765095177351618487519439440285105001133544283266790659933615591814312349414246220466047130620738661675970264757660998792602175431832776243092797209667104320109447609721306377557880759426846877142491129785891042617852536425517502785504749155009012679078469892608688149531020663455185629022779220228350153105585913625720643362699575503097106315074783907635342828975400984148342514323010612101398274238293481035662567788533008092131602978194637883194351338390954733619808421413211152804952490730618239955164555941318888608527773142703187479551360149124837521796188499635871487169103730992195587557947580705103776776434241942584211821169122759275693119370595925685179444387103056823615194691941650786144595570141296611312715171557791822660065769766173838518918155514978827245841378462860940121780553661813281545807440094197117224482704285655802273841981932429355712855628171050113648528236289703300447999633965850895554275259360582175705524156740338850912685594771535146507662405959965217693382433402301159720790350179502452202220811107758928201103391546132405081853188800809089876747214597161088742807367669710423224568407419852018506690819618050108702951844881141301667165094899934347801080725275037889676520405439210048385499537930839734960700306314708857498220310801859477006088524259774013932772001579971216107244936379313059972883206550764487799533146838181137590110100211227341464272148070294895060200304969554592583419683273769418292751372492731528787439232629407665795336491092690517055120643438800588479445724186011835385417555608963106932211254429669721721427416117967200605811949690434541828880990362844988379749791343372954097795192119783975280510482475662809921495984374779521885132482053540026709708527232397946080148181804169285339610792431847357498871920130415512356463129884147589485960709071942783655607551255205000039711261485837371956810482363311561707630762287385746072166532804349069319079336157904990924978978266311971193485493900836805583430449596970039497341173908398218157752975583704340511405731708719270418257623026911035045136671122521576288285403636117183649428101537896920505391127704515792255470454144588181245558683916836134824612606384377398585610781853609332881060802985045193381710225128772131605638204997668354740496760408049287163344765401501416801735585243071901548367423254227280408721248350344259484012440176489414342817166998548293896824487741087335073537479374973579954870601564934293035044866706643607788270237966906041051396205082835709426568664212826201985863359311365236390300535579696829215657274716018943337832198411797013751730412994926247236150592141806686227619544881018541323170343765175637754319793690803131288590273201387163929641163807622598822430251253548634222895559376393871173940766026904826763091646711170881748114520008269840952145982065414464742950027054675226431136760353434063215119607728845226535175312401662347636003514514770659840799274895695233056902599841904668935344802008338040488477922762787788368452646481354484999106072547509435814543811354884476808238584443827133084903024613277131406644767080188887485665753021629003778115811835176819301285895493853141082714885519887983337863918802288670161365883630674353392390288254908294742966197709152626265474908259344470545649964378432417447516732004968353086957501836898724976042842185636663813593898840362221269660489888576717255027083910599501394578789167559422633013023213568580556870322674393254600066613264609789382867229599725670086492699669266325774656650917531268038590174424587835040991020661113080463245922241153320897222464296685551009073112133073652499223878754530750643287232183679846076088294853038900051037589722261874796753991392012945451412178730011490752892839384668501781203027804765280456442801895549370241934476770552323335231597456109322410075683562661524020299599100624697876195030159283951935875366936910023198939190369747525268022129814212648424373667258120300619105927249378092609785485580823991994349821169580617445529307349613266477722058588878496535076633879244791888723925372297169062767807693109264969011289861097167725850837878610883320279768657995293496414795241447809388661063208727327492600905386063185756800578175267600486991082312941436036166029012801137600440705127348994830589683332628285415820602022441552800342702534616802211458379642362276769429717240497755907126796330400985464892474366372127618936430056591633167077843911362510726550588484187759722679405062391677919022665098251274935707619449668554179262706707576704632891288251737806798284546021246262406695978214018793286876645664726515193907560392752492216927778030332247415913053814088971311856211185754998706025230795995725495816269069832933289791605333726383090006205047034996927506584389317193346597552645124228409018209944308785014449396651763742790683618164315007028922425459595175143191893811225480711086109415981028821090486421562443822956819962026691484463368701757253529175062846200266783528432572603749912651938136850880231101986660389915842365398711567073712740634512798480405088294606002344188139019521153677396877742640080942919730052372066211682585662248720360539190844843887258840225322503702004791408692468206013060785350696074523372796368767018121951211054527676541654391521941028268441744226224417442650575796199309756306112871038990652102531933459304536176972577725926156123055790578608165522105052219482193203705835886903175152350362564436874560123423653700935078246272815409777746266318904351421062024718399266482479809705286712766038984800612266942060643236972928983023247595685331501443159813740869883897751910415666573736045066341713049777642015746909019286027378846511447010344839649288040296964250939667654098148612803142458099561425108442168082364254234429346459443631944042290341136070735392221085202450710678633964540928262922345087457425884646820963768573622484480570817560269330243460513375847489755439034724407787650788882759854623048759892503776600240951462646564961861773991331665055551342597775932661824878180824197687711838672624312243473159026641045201290465913008866035791380252701853719061021130545900097578831195733556616983045690385308115505978564268832806355828077171359220357804226200325364791225462651538090827778093789462816682825502449875238678038580711118106485480850399475102782970173348714205000276050309131617853405522136727872143236262365220017506841350299506608444032785492236855243292684009385383375505939427409073009571925437527848021293586253304000641516753614910707817186105999751325844744607445210405506053871730125697682578196067410949207029262680428935706893842122287962994213260998717058745371661733246654944712718117197271251098939627032647889061024773132394025871661523756346801976670886728370732131910700884454844723571392148805114564690620481530362585870155511659437687713111717164788752073595205523707800602567382151462048463844835954064385211405409214720707411225928726635940153021962938860959155319518358352220849185701538473131955116905037976633509409302055470861711736143475938639300251716176864325691376661802033611784976043920654393423678846897632192016806335040077291510723058475089099121112469190053453785367928955602098811751559721899470031146117332934453740551377800402724221959099249927331841974871081224781007719608960695227478294148833580269229508503771731091137323408485543281522656553233104902201674215893282234795992694181139347184001185873116337478708038514088159698006475353121775084808319172839969280842028614018675711024052931412864933955392948272918806898441804067146477303248392271935581502116553387151049977341774498738080899203073874595416110279579783407966032386803920649666054652179437249582757838237969538855735358453319323781567677044116777920384908519940841452915951358476258421179554821899087003296520159101842094536478238970541246788921132574357028919019930654089486800096194829880621732611423990939617740115680114621301526775338063265367889893921069968254566363268792549440344545407519733986740637775070134792457448971218553679396029045819236990212406856953156720379590573864854718783184308563416323647678774539450267816498983297508730257216215808295995832033610255674977857674395508319013636919701485701426694889214172209527827354659684731233943145669476934291064518835905473800425428579361956288238442751627260240579610781620125316277982039905976061745798406989580692429448833399321763895719591892737492977048422456284837516209162300102229059486784645559160977806483805142262472718693546995571126212776918084150942268963613592451897753372055059932986739515857689669007909954353078387477355597792076091603699411471995158844819162774119905506949053878948542717169894933093767544954132297763131733670482842870228547528479150795346370648111585581000367619831087838086023417122210756264430709915183959928240895011536024779347067143367956617329726388787115191835205655400879574949637049965968098837227041536362597538063915403145806349906297000399808013719875013377235987567946325537943197434322769310239983353742136230061238742144291074037226481766299467482834096561076526994870328122600211128732737861922764647465733534831548833020909679710907037027454006248426152583832523705298047845724968689446049356787693608862703202291702777949127285217352317248102941667072661591215395517361015616652652694715171870091526718878288177168935298845240628951588663164818164842917160190072932836652715604087737627456580431691462285230886023778841660370561880469668756375395990362736307980854696351578444386194113676351882918087405385154124640603032671153692544502224881905751197222708875205046338449650699155745623206919557283569520259703475793031897231481513214944235793117726044956532254528463929270970962800015426322102694274386117259169326374110896329111353661547408011041898060932715940513034811703895657627296558763278287531092131747791079281100552353273481064629326647506586519650004793677904108363709688283155774599794637081856919196181996978079262652870882174914296740847243662396474580070206283870748448375534883221564631667247684909498448291243917560476743127718979552664326191709580654323915082820944151934918986431859470843814292006165958101069465323558170066109133881358577759842669399325670632556638065281231476955779159754918730376241091967037797068902842835533166705742191170573799881892412784684677888201923280025869900024600817896441146332768295327369944409693691532966082516122065666593037045132652109987455633097839252646253996932995868214898069036265123451534653947751377176212657171739028495241460490049122226960996877180461598274838622306432856022271482580699931380661323625387365868062198131085055554378671946448841856810651794217302606522869021641430036520859978638557053754102384953720143746774257126344766969589342358219372197792745179887075360567169337574452503372565617995477887593675359194392448024659159332737063670748484047945870075690262914789115763495409012759219895582253129208022114456374836180087911465459055249157362625050955405935849469513411879386944810218060609465731390241775734610955176477832459328774691579742649971811900911384091231143467098618246967384707623898909461173599937977704941931488875611188268971053582570965929650955618676248933322562513300459854307755255382978353155353215506480499531585491778508963122623207081345585592859701283632728860690547348092956691528464195714542082918266140895097799477119020833235918527815163818295107255867836409199651368416646562528842112372451443554411253161857868009788839114169337377402088043302008859639961091402160844968455798835107960790247347829799779542571490731609078549437631516823507896496458197684435631412799351013838687544516710216505075401624004870836443773586123658779384427501160620157728846488750012482060334001818176711470479110779441056947266684053688740085422056734007981530716407545216781409944738635142130046612772816568940787546273780788249292170622179479545241008630591707004826227735633678146470390018008704643512130967388920247469443206114813931215796248925949787564079147005175893479294419593392604487156461415825950861666212942727547893933387403011553578640353119736927474287868356965485680445746654742942498577215813976397176751464057851850222653909728796961808838823951740262818650620530394402877522255730666023765167995370064006552924050746456534853179683328213109478716916643737636541745192923361742085267170942557523750547597687929139358796573409041772418216984979717587028065493105104479696362298928237903507775404805802209859519814141758290192915510899974041738049460997443003875898511743853976321886379452209577366373019981134254944155733619017900335773024549213346883883422072615838009085836612924037576330304883553288748533125840586743188228085088078352291209747083015869307603486188482433983313271503858154779040031902313284010395319495811267897849178970875810006112437967800470622148830936957584007335480023023627168243122612859493835044647887485531812906539226771769097690791333917700341416406831571076830620216801374175317021758002455881887084946577384941014473276367240895696113276900210202054033867551167928548610639634587662385913651690986235269900993343279698568121224067338522551624667960329348045008167106432367405258831391729901015451727370477434814588753075621436202054505249836284803009282367233650070975802937713807771293130582090627996270659798691511948202252114882017846164852934992537555606777748970222503085406019417093526810652408072743670817966885587072973355379193133074113926578176508034337459828300823808922140818104208747506294054874895831645731854929692747000291997420963118156862643843284140051580325171893699597736157752627147185137612220589685662178517852945688870286744618777893338339524863168463626323553690451603496291369302865774530966817561453454643489974804325780056713011509950732699890116966200170486048145355347424730001153394206482289122328200088340362748776523625056631539747250886422661111714084017445849652033609483492097038565482471757803953858414713902017664835447244209505446773115344745768865091344371194410225988699717752132228886330152201404820307552274567281503183840108622024101707532654368689326327776321347482078739331969352978041971659057246925234917866379542096209533552354313591922869901116885169863726065403498867739068315571971573645584655776115746946935823434489741590325963427980364657915630829351199426201765887794786216573479573800921041480574649149537015073517562713478755037499945140099192153439826780184362881043869678068485239791922388629667474745409008465334544604780638107417336548866367655775601596467702547805124040194149757050634999067154230450517537559562242445714965169743245694426756497862176242598708485753771530782401417904875688575497540826849048477278217762447260016837577845633825414793909748000040028443220484958470571417838031581149538652815469186877633344290099737411358203335289475175756149158595865509318110638406692551228390253286768987922796930968714145460661738806311104599485073266538976275963770092785853548387444932274837062457126760345402611277672640865815709084417431595247965456882968092848567800434668912329904316931252262284118307006088280363336443631316180352421467014874208725652988841423869833602790171222547499033429195088034135505227428627809191512150769735918261010524748629151256424009377779204704858451618001728775104823998334911074543132259697987872608191126984674299558219460966039714877172640510653408834683289781885961168436771080441958862968403224251729588791060249307002202354531654047186877165854777987811480394740558667969096153283144825382184019952331429682725019272638892431870905873923064824628093851627976466023877967354796550353392661872282023306779117453864985714629903560407121594533184583373586550349287243362003939549377628469405672347878640682990960335919816469255070308817927440151460352357382191131952160128513782891092745129005853977506700371156363147352757400855282738700183300333528686698082112982122343516430830873054510281572789145045763936853222669592815650034827173129279319354901167248029470408434150974500240187161240374484245646619474444314966647252641377582884474671181582745740150249765131239427889134122082128647277477342301681590493757198095547231340980248090038702321481051053550511381167920684763971498457645633334625260499671183425793127402025661020130589327905160935171702596864631751167719267455716648846970654042268716432019842165302297405947348209504380498697761384550101129542862518619530995164188269210774230710975216993617474250492030161880002780203672615351577507718403490896708867477200934570135523052715743711455433457294788404482038393409774395499627817597993023235556782303104706572806626335821990994799593808224616997310652483130937742575046869116938465236553120468897023238250723540910415505113736678041001974479443300622173215745211836430900251618469655515372662736201829337360822559003877751878781860706418590007706863556584902032566394853658599537098505019135401866130239421163850428145361858051852731494932617957491134536237014593349501780704530066398089533233677369822544710201101831053014998577021407951596646997151069282510673570298217764951641842699366654781905095489536138117184015447663857462763517931529813606995192348982679759062375969062291222975527341400636923883599972323812734674472498133630041069398577974033232498907351730487317424806470251927348418052658994196599810919613592512392074339012132057379055994195175197763947036545472402041236832157590919081439159593453387750065948005768016933379682229340239140843203661935474243625189083178816063357164244001479764448879070395484741446985865657784101983237769445736659498756851507186417271956007926201119049066884131588515270221372547392628423895985050150921442088577392322890447153119289280605257414792438928859061633598840663341684354827337488941606487310262912268458912515717172000946783820202487055921788002437034649872843039575705377497043345200763487871634773430402472083891827628889996638305308528309070768242265501536516187472498126029717895774782301403688525912992823417308164895492283604795197639482101290855190182214909722530636028505998797452463726827649980290529128008279841628765025557448094511882857814649965193450778433781511799167908146362265557421798599475351825544521599907906999295721432607395952902733164858335753194163025887548604442498065051409578776407116069809722843769768959751107042752239925464661927277330787623590700112065716615055516568462884074149540081554022048863458295197045353472719907151006229795929440202152062096978961575408826655333164917246832728144091370192639243942405279832870860641425965530512632155077328499958615093257991059963851246689352756256508592293102946299586041138312029042834520812441505648764282876446746683194505516673132116703518632017936505727103059448818876330239432675452060250961545069516964809488955755201418977799832684186539529060109167724860537064209919106355614629720509135179800020639413136276026668030918136772335663360161407917240518246573509103330606185416053180893185070590801234658274966687457387802763106194053663531631238898379188392324257788840346596349477300722715258712100745199510431559613862270489383710988028084274160930374670657867370702471501694753732106094904182093924387235822487900500687080818833847440343855019783971678023960715486620051405089345630994473631712332637205903109776741316178904376466372588585597117678878563276151893125328369333695053297241117213645356548885421601823906892282865194013391873551630134074675299311209253296654009700445474795613753734236757219620574067120771111736935640235952093824066006105637292439408035806663502285084623075858717248851197805460710700179417939221523422015129422538039395464495564491892676875802153828119655913408255798523494796762894420729992635337535227406352803069062674162380968510211621093580047731818105811220905741604333609148046910165805946469271976644234138182078064357142236069623201701263541316530779490660208612993366539731817832398303020647093884774043920755623575615300775938115497793644889356570829265338343975911426640004969657904219169443059736478882344185985699244995617882572328935342683585351143817728461342074802308189430377842478318668882658817416303635464239350008861240876971001249189993081449540238890090042388130431092422625512530680074016542033521722072545477900037707809666737668452387148276628602547858897369261531140448998528817322347337362734180403748736729655477406127028610269946291074728483658418594277491088993120631309802767696258529320628916029266856349450734618073106266816427116838241470914182750880813290468114006104042577830557727317310841325980507447096390446138584839541048141413976105133050302114263281964007855761923546859618947559064907953802223548120484509714520937925905310877848248503531040189162454471991120577740826341753318142655847315178280248021539012445579514610527634516126759491752087058931720565446852436233889560676775538470499506817428333917629168355324125519720591734742830066850332693947081766584249449004228276288856121589846740217450359469660322586375491171550652645615134022273837425418523335421375824806561993297255530954327890847718990799846788987505345710726774518224203655824707997286922216505758531370168898119193138741576107179589372996657048909006338344451358169415868390579470275622698230325776557038082743157314653341376364599467857812292365256967496274875256998224473738244667284923077235032973798358072410440757910849875494954672033337280279691220524638777546269160471828018493783311298862746227656978071826077437025141741297063567318825904798585825548180355635616190039286415712977244466780202186111263519842083095299858194831000609351336809118881847046850146637251820921338617348995461771073329917548088192031667668626665016197493269773135582991212541114166448207106073705902844886558688584597536300448787706650208455615075172475346501170964416662399494677281388226097942309484738769415197864261440853767865338975301450499588761069435284597405221312627391850590977272620484065581179966136059034515737293075983294655362678542327540231357209065462797855594818175602545009014069204031047854680937954820314009506292248694619245251868513050415343606532964813297620771669050536072727855846267713381053917339930245848252809987793268573121278538593089161687128665708066259063939248668322778214352130569057344686756848503878375903478794022194517651315768556492028947725300653326097389687135658287089732668881664144667819203207844817210721155277131397719614193197545026800150057805400035825459359588203607871679346843754621544279367627684620470756728981913740340648549751106889908117154293142563427881175159201593623313201627482435374927422820222057487870667736888694021751379616110400703469186332100379578257409485069795182781483282147311945259261529726874999993596372671044775026467117085453632119560582781521404550060799778551723112847562889794351576593504405847326123291731532533721361713592343834538265690677250549539499112931125149715591131513852473152080915442457224896389265116185390420600774180858285233755939586165314155554732027776153053211176167344831570527877947814352507875290996591120043708280184429389304147877834859173252717373125087081568942040895350784571781590102860455561664171213163163129600374726355772940300427248498381706896259685739916816778896983240422517073414896253465904121103435019059523759093252563683922021795456825314750265358989370079215647571888452119945307678950918116293733368647378047437375974415846520848986283541854530945369521462207724453983388918548000737525080962310858194704460241083537405465232391968958780840214727765324805112035029191802319134495255833712303741834205386842785257579208939536852502366141433034942584652480186436182278338287854023887585509370527334123183642873527834135837595428509945274569493108868162919970179229357455466325600929731632040950765697992868882460838917783544349945936035211077263807332766802523621978856825858112294849591968388704114770839264537694689513078933059171283000686752924191674802214451309696846709835468845167432363689606290371789204502855683059970063204692287102626984653909019750253446976421093461094252976745626818032079956899957241815149594566703620067840491341610462718122776312139973916640130516652188082455911665741594282094732009197414096564548542183239144971159403054808687379818462739333158731975328064939866677841064675881354437704786564247350976928887332858440229055444656989979904187913761224753370248837858581503401644407250136469257661223368694844200934970490865192736648244933563736889298158749176599883129146345754776889755520142183381873710487314595599182352001935630934928982240382818262139165457699839821663064376304414423189512667237804034035169756258385889366144851111392314666061002091329703566134951042013965204838689211985109010206557955086032551106426171860101834451022437159572345557039139337549978300760260340556160387458809656879606985541364290804128894116971153783008950004799009477187964085054021767151829578028718027513411148785001048020698736037246836675242815052341453355652192001672409750477723335300543979804934507839971735809726335417353594822840103677955181868942940784180563643662214113450463305571033738552132075107964021594103556455023089724967339105109708101748907269760718072153058840228117154278011359932858594510575209752792524468181328759191668255951131851551922353772900556108490954891850446411208655849544376287897145818927825752699415812829861218823070023548501654799291968442999750379018165889558126074386530885496664629208074663321582432000662406929157832635023809932324303541530704889986453657597804078834347839755632618242262154772797029640681986480999167170022914730524856636696220546094374596469782699601733677465843338159557933786770740838298176343645298035139134147745679851118648818051994230511272310549060390211976910672907752422489726453703342338840287301356373683089633138912280345415608565429056275764244981622733616308979573002338068493218949370900151884274631221700802095450101446785184197843581017573818442235429404675221792787224208728503038443648528316204374009388632696930175649807948924372843697346390845719268911260153006053684718609786453022630811320375836314857124167548973288988625136791452008263171238189269503417147238172597777548054138551871827774466787571733334643181301322878258691447225163762052564758224541611978449505535140496100715082846508762251448189833223030527707732804425136024992793124486498645437790058176656886907264196279535963847306070111943667467278718574741950132259245375333842607429313774871095587694723978786795721403004001092110110626464389452182988307348111511729542894696109835054608873995219474661449839659868525890988412774477864820783933453392243239143368179765170893353698411734330615763984451954914317539505047247656458130369117759229760008825774336125646466533401258162261225496845606211574187771808232613819252832807948254684248310235302361137302836794859662331135427327560979425489302351060157588441529576715011065554565178261940384202474552832363730308928338669317603631848009731468446085753878703215929561253705349761165497543576589317565012269761250179636027858060751333946731142579643248814353517652177482636457652907862511543084216666786862289920503995043787997323635276255409489735460407352416099237999276012332115320722929364737059845690779681532019186282175280080454587736329087605405997957463201061589503615306005970818612015302506478267286325900099590632938414729620609884442967174979264927745397026444574239687214351729424652703842254043549325521671977775420641167509169074580183032396523979135181945758351674986202671492632998385279815602054833365818565215863669860537181200223515458684843957150044829693758696176733568775755395933411982746166819510105341663307977682874334605704581190539727079555091099043099163376474871031269789349605091134442956133193147567930371837363232344636188706437678234558643719205355634660495692444855044590105657547350102436028051388585736990235664759841534842241254523914882729895746754781854461245622076912940526210082279503041719006770583320299535117394224113705648986896294810097133710298337152557155594680756211478531393676473402735098599494459439124089526418052481462305428006038922199251011007536083057352135421161744361148257103195060332759061477636807297531173553599254154948884373967952099830752678216485785316374201264418100346246654447599546751297946127474552446486906124950511149824739086228593675637790792596577998766467535259417219635395766197867936177492149765775216928157449390886525280484826684703212637939419541881633980634353497724415419506905618634574104114163429024265343634059107199863946436381506165332472567145201087453050672782837923098591532096928911120555703158803335060566150028046521023410000881038659782863723030206110563349170467584284859143458550308954393909752590457295421654369736930850182072841622106144119055500445924754389398941580487365353651459060726217046190146344824270448259385476142211973859995693943908372488606741489198032880866424659001259570743906629753916461295259321214882038505087938809666080074733479247798356901881974976481218743054797921688386790258961515012073403058669050232579696139856703330756557365787834580777279707010656495442913240951517968873928976001753689686254789339252500036897462714584902101075346301239557121218756290616854551715294386774735882805674245267380087813359507858202908696310493146120835935230979215212096331076718477998843773282142896467485029505644323098348484434254273558628339974794504033107855928366596283669445137697533934235586458447635395800860044315416399767209003709570279431977781797690514430720848242632591264105796366468196811089134061636499448376224707455531525415978658836512453399730765933989393528987493059176946263004419269964810150234374296512262896283625430227780577466108871661769900551471868911133783254105113806247809153842593949233198198683304988764866280486253676933434316612170671017538826358478636629082616702684047804361758535316613528979881451775823206553614710641112361698228365442839460618866326381286253013431188597736816348322472617752112581633385169399934911607860597224034726003070334575841437684219478718262780577631344801724570262163825710689471328417646335504567233525342767372294503867364636721498393905751916905741537334917439061684350747586975126162615768546299137116536910413104094461794932906365242821024758113376405099860451845417584015758619768807073091757532434475304035620374579961068658030930146553820311462853109563260085956509423090146514124247935729070096755029249981730952672872409770700184611850126029553045788256068506844278500616538715853782654880126463634162636141559671388992075011688839201008270813328064037414164479396043345912697446485152937038250969541772750949288137353875621004197409324305281972025180241069201022115947852942811445580508452965348248369490003634392508540116518195348910950234697886755725827780019827433075050846190803863306820228665352284197358237964692087848749986403170998709850591791094226703825454403569767202712248429419348894576903631261515389377447569242405332488214839472481162608755208057312070476779586933078281402200968183490522638728438214514624723994128625069992782842476656094976763354650563264229911578273017939841090706032655010694028249784257505551948468967813253586483252759358581979264178102353639159917036894196005825374156242352348569563427980786783652601053343331108258805706094560691705913345761100955380890782772957932226747386596137461834960968318585165655154556405941186314015114271187971408329709399372035642482682853282959918539498999416561783719078276884181885717045606774079898498722631840917234114502970971461876027004633327233539746997112836892857221983569063262642793083097878134304547596589821298496436529890663879552550583989814538797606867401573182423572385167021845497328716594611414173546320041015689993336394413520850112599857784773879902193316411139202570972153253938738000559470859341824842266339086321521820784365949993364107558935758498744735774899781618148378494192528836424288444626242815410922093473300998854951913621839567703226542779286024773491207749535290777170011328372858312286177339396345290487890087421046541302924575354507345997022031179843596239482808314277701731156089652575285700233708661599275146364910311865865293480547989427841685111845640123730312903553032752468888273409858907881207699632373922574966102106501679065722918777398115581262531195339353491842395692463466746359257826542599290379956278850877788821336158425107846454852304406759256074510490386166145660964639632558023782122610893131592330783667412362949022875378284938443721228814243337886838023918598159757475234400817982977332870878823388410446145328611878399889899354115316890548615504186438089700701011575844135476320506966022632408769362594932115982801209831981042992614184073428730648832489061497636932555135347769605479935803584991579090584644137034664438354957440364229732080395574414849213361309489189603450564675707955276868461277507449146844603448799428129387787997651107583119593491524023390564772149488708718621084997848640562404046862803135995230658821726612505980220720458861557458923996164841060282017079130053079864141519401219357841310541200121653188605560496172946183437629313446611307263774394141767994791120745175298852303497102211220845398009507948712192251356927779855616553955912514421659011370033335692980394713127929050797037585894424317190989012484244856032044988728989844174539976962372531910471171400013382938522975300809709908847149738811914516574293944729764005221796190314884888467359660653242092922861924515828611752399975703140791024331942304989976589146020610328949360301235698302239182121226177499128249417078955050978218027132534880713512353548806425704307080384780490598505556035682126443524480683567438458391765974755773043324504109600405661671318818003055657346329180326097653478754504920623304192926559127650544408469464918394016756570074369286905206140227645435695626309392906941970196562796736572339014788029790098755653706127225122214073255103043398550750916865860940472110978706343574408744879175848128020115775250611381101384478400744556826081172292576181181233881108388207362340656188019423437361035956777348553040048784750471387381483952138591542237371649335099454934410884985461033292042878223244147884594187692013007446287883881873774941110220389434306211865677688048842252414834691878578201719616128577143182567678769403437244751711548707321113476240463968033435035727122363560614764972892891571700843469168125032276290554838708672295824506679671474047484534252192695061898897516112515952414107571680678023106463122718079676647528205484968249342289246491831531814921272409247743872524291984215578607108914412367069352874000666040745552421007632706787426188912247834957317194248420323702760137361182089881991571545056587676669354865953793235713250524885960139905073674061122285327350990705696130846011259443671217684344732708665079044471444569089860553648641368340511188086210380532849076879019230039329354439645472840434148209964062345289927257728517946551687868551819593378395908166396163207185802828270683979637724505879839862312578313270529924684152208511060702642613333470235156067862569124977201565769879766352863072940919318255204155262367114132940627396753545318947162148796814500868608977708906598682204927700760609479799239852016607153846841051822632943930486537998556673474861416939086752752653252493115774102955696151414424559973244229183870583581049223894978149358314653482745791386082398436494079993584123333176702879801384795645150514571864048553738017173316929587437321060709857515688615046978355754386283295460628565813913187454681095790935940278166685304518595379711134333602721248432470177820753919858779493605301206202563879122849601941671339393077373876204698852613400712921084576966374724349852049386165420447042018919525115930056164099870055960628881661274826678968806254889860828798353102457205892617146133946212734226658037571416333035740430800478351636183796029342886954966669908610357325923687466341331501305276414350521195004911077110591746106808297381338976291873982835680207701569162606881861211426351797181111108923620796813851360426645798093302569887747347067124543543645186298655272356872313069860401077704355007702397657478029834962924569420385201472387563398178431150067344653895754196146020440971594349050092443305174908291414089250278033823746727117683321033883138404713995864593077924921850857093017859106768084707155652783268484461162636590597918053030669927362479294682949549814128731210768503146539310206665577968843538160514017853119687848505096752846633135944448867727007515925536170636369306368767934097916625098297124927503796962488129228616271742898623774270596538543253768994633401081289686537613053074174237628838773764161520898247642300513823228491200304047555613546713479173867995442685240359442723308684269853100388995036213064040635550891986440175310359554327878463319134164695643987831053662069413818940100472892363409510684358017666448722663136208911594400839448966176626154452414356539388435402964239172936701884308740282848256754314528927733960108419629551047346378012295035434752765866434265555128972415618906311039007291383078702909359083772126635393755458065983567196910795974534354029532752506777870985564416321245377657426158451450751785558419887356253407657941051578063397556500093502829207593602700251907373644379841825851511504012945259837574382526793602846753790751251886072451649469264784742634880224395538119970174280134098664261606040002950237201120651892596168531138462245899052738178857378100817208345331157743073100354276743810451549111389999517241905789494908537301677764752709010102618774909009567597840150513645461365552011169841219633108843794782962331686866257136954089019110936914178920315514634619246348602229429007259903503583713863942753564008022037373551233065035731054732080396422445952031159211366906396922815264403318096375237758952702114535306200921080992874845637505303079681480781047745238342988531499154857879441902591633394457238453601876160528798060184703962711500677404424326475466318603483651106262478266377609237920996916004876019097116520168616632698324738794651332876918201019881697831970313423627639740334858132913775023373704085524923678896084402448097559814126819754841032685032772204984075061790544925907693658753094983226135812577946072822125020831298735922148811012210296266982407895414888222857637745189732015832083894482993184766784019468641029949599594341080415510656628230036152259864269198303642779594264490629975766119209218719958361951042723079302077604167131606668774156839976669256651235523188864803483308306236658512370850823619352570344872192917198043562700864536423021191858698204079036622072244485092237446296017649572373988497369133153270099095711545753421789917046116759605153758802311414142516269618366853532081386623998721644897746342205603612028025001025542021462836959941661300310119311431813675901255998298672854790829860359395626450437690566322888239780976303896933015805718532406477644776286319712324214635017629311658486172645550686894479755109974527907845734676061925098745999453048180132884651939504229099382476117454094506940082897140168786426618757271817269223420325962731674776667250401942214183214805231014625023542849601602582955581696533083586050805537138702379789652810919339500422319126563799117104306972019616443713587293570081704944459446547719625517818456302825459380756165810149676301339096770872523284550943558448125741626162491600323418144209024425192976809706282732136922675212415901171653397548427649959119165812485888441364172897025920703777801604644128676609996390894275374327117596916131843379632001163883377794268321499703895321174527085778272680277097209838973328703164107469129890371500376687202372923231408286130288289694823365136672726415103006618767631455321044754543872894553588143764032211166043909320785525085982957863587147653518370538278837714450473389329844772995168163115349040591941198651621223466993177805611390926363888799045825960811164170765748047630027601473734297290756896985860563982920907682435992326286173588884543755159911308021594670092298094975858121197888888123089971118248012279287858456940238561009066941968569834657954536153891718229660727700997184943751253397817283377797061769708620153572133778597859476479974435260035433330239842960024050276858435657592812551291335395265409758683683429331152975706109332631288497401795033657233429176692229544836519862908565215811188072820568128927942565692373501518326039802083531220585611721374320630360996343242901980512619633477513432666899593122257872440298373056979717587560628520062896544183265656054972800451816392180761991367809275966023492045871365922237936967220068354345427333718978310396030153660133959468866209896347514592658308045373948411187198156977766296852206140984927913777475551878805301406963280022075155494689501771988308749915808877730261935542716646596738513041078514296212994380486205815583941370075169320548754860673938447947743070199021394940510686360314546151157189233069296397218067423176987165310102205057175610152388787382091856374576007116245872596288767342653116711933418206797805791985501353579348982988192323053708016802453352584844519916796915315378382160063055996813954534607973911340703509724570752137051512685019778061002890351290447132827456437628412973074914754780355527082916111964309618526012622417182135139076056386433718069303484181174698793977137712955077114410852560390518273169817739486286912920085028376920154320713769209344580680312168051712927261394856881154949527082058519831837774433248076629963927478166330159252650940286343542576518634515426596291105305372899753285965608411410271058391090652911728773854169550284591775092020983731483088691197044179546680876762239756004651018023211517966038086608233961100906489615007185923762198598433453190100422622311334790175310480132337753968207847558489477241445810456567879390520579061894803384490754157628820511767988225028018357001688698968365262630464333976400818865694019135090739842736283011396621297641103525601474527164345975369594573407075404309976971604756911557239141702267561548806607713581062108615270453540606540461956650979216158777438310892768483213659866217539394376539980856037319889715121599193985166008691885454344176094258566097056080214367964204874704763077226189282526248515590227073778370217086563568886915229675958294602861409645570798403460785908694308130112004504000508255165220552574606877713008659414842504726974325801271776700889653120778060784238432186701709570694722113528592165851895198477658170474453545835254322139115310503306572432284924170478237727803384978040092013314599978046932470815361446880452982409077109812161536088063590646228409330876003252232826176411540239019997150478686178301521166918552514271025325880646780089581358042895360824784283290900925538877305167572878980587029970804669195825783363168713642031018015253127735110696631881054811874013076969872678302368750740793264975134650409569027269524757361736349185956932557232076515144926152458497145016955887689630149363949395673124704010601521139026281193543509407113109941655437872887461230680118795186555090667968342758053210648638743989272954137965298850452627432502034748683405130631639005369959190201862832672980208864552440123971942776363368992887793664025453439511442856170790976763233709861675587887068568788037149821799335906833050470458404784219286158655102629197089452638774444026298273711034391933759669870562118212987895148268250946061367752130412187689839925957146676024776170692648608419953089957597296912560137355975259333580470394460159343215240850562400641380158678461174129530026161113674251184248538621099534786988671444522139312469369246935531147013347668950677782787312781715761247115200834263673137043134900813509093414981652363176300810369748219417029928304368505568723083317140938035018170437723959325096493307987863244376470843910438414328498307457979654175787021593690978380778514320011731940254883758890945232989481274087231460062090050162661264849219236941990756159662617675734817316695047171862159432511386698024387321776549227852441754138779723506762129511244099266819941651406432559647951599320944771606104308309667743727071010945046347317953401445272739918212206735735153593432952279228774961457733885728170265525401601139130515722779940598081894238017136147150345910108505150135791605351010402769227927024767585258860630534289693975440544198490735966256481513988838239013564933156942536975111501243846269513792162102715021812215990439042219215985539002661690338984242132780091222561420103898519033836795797526178675287061571566253875008656943078016076358018104301963798840493210782988769026959985391755137169699539735305379294667762095660908256661043383107058706280940815998349751545419349873822345690546502013961013818381806003903913932755787703766424706424440056531777374113128205470498527121117454399851997681163712986306591256149041073992611063304244669114173351617903943134657240435133668790797325202862250751208456346678360335577102928147505900342104631071343407672158224010507860798482802952724354629395434393528733748045629658957149120173983703191693390704536682073276646806401071516081205400561113705136908456063692070436609060686518869612106818215921284241112475299616824983064766482404727657488083066060095172728166959764515009405077124896523562970764107384979482137685273673128338728954255807043107264807737113518050000525877617992241442371623706742994100611716967971047551918543764039358662346441212667713293840586813980648853870005585246679476126750213779648456036974964269453089479638979986069128335182817764228602125357302644667873795694731015037552896079002773958925384241694786106392433918744453250528067577538922187546628652563243799597394025264228541802508058923174188393850687467192935549930467535314669315036877871248328213341002161032961424381232562549815422374046706475125601279624338146063044925505722222704129574154779223813134097526723406891755125830898988212684248682982081694268217591540025995298656997638464202004589209866458744030135648161973351263536081674387555227529800191456848689413894727445527893747782170891866040873403166420103601930838083178289013766015853629748453835848979531148592718773084461223081954276701333871397876487887712932097122383100904721800377295255129878517418450516738907057310404733994550511078973784650643558014205966854773850251914280479946881871360239433609974781330682516337990227222747724182361659358484505653907552035220540463865631730926479104767397982882058845372142170378334520772000333175143891566129998644939081537299162791227300460695098013426119479145951215708588710463450257815722706421041452531778452148591606844612062209941745379302139451355757451551933871103755726811205218043719623806986964209584258235707685132151687059230166563543260719616947473779401723335294798464297244579708423254790755549156616162566507305176583213741069794437012404980307617531123899279707672834656600680799159579130563729662370838431352286331395372095062436017741058117194909783010678850823613514147423821776667961735679459327259219317594092151784262757740944939138701951547972357175651788248545182804142130654808386654239755946443095522260418006340223292337631814331286913409504154965298539410269074625059379012587698325483349172194404601207672982637009684628751044785415088923984193992401853776785051331798775088657844049216143337665165971283277243806479769235120375287138338720951136564480250353583060631221532671669663321363160783957154157842322555074940405618549998870721370346676122669955142806568904240305507440209796728963533504227689625188995157207566029662938854396459602825374098701968843100225373975398876275429312013390710459867245567174149050737017125997414520131056697592467991831661883329960181872593238941796079023975591004523159874900600919952901247464852086127536874386247746211853130443221658061276024891776050778494581957549653288341025159308279868283532954036544853363185644184076860794884253483931091332519754232321687722536386796511445611086931469503082971538455327999939706456011370666073831800552860000756373439799258573694189945255227893672192604096199750813797736802412549366860959011107126725850922648006317473951006359642994313103358226655046595773478948484389520751430314853132739244915291158877521289985996689967983740448922642027804567221425335232315634754774201299040621001322335100276999600318827380233070514155091040590460783878596653549984032212614180232597583461448493301438707087087348828730901885618761459871700339256087080001132272360290360059763218562666084379942594205485353969655450985680479998359967469272748551873701588100526293324136643289676137573147380951281980621918558163209327279654386104505344260757981576969041709835365064376756310930536585030202259743421972722063915250039070575557161838237114949631688036434552746017592303453951399802600480963061946021621375294082160219418125294242356093199554516245097877161887450621124033779846625500877217435736177421451244879924350228829839696180858218786884534698634293472634011709665469624018491449748803329428132709532419540230222379078329784382353080768531487805196870560063984020171878125295810777483772277719200382856681737122460835142900034983755658596453491591600386176036202285178159631731771958452860773868418399771553461860233344132767411779355926468239186799762164832647928560278757820349538309743014183410202256260686016560472870910428656158515371629456391647624268754262699830880920813850594405712066508083388076156956787364654971053740598270634390555121493971925792784978388402240336445897649520169190179437612176816155938368698668801986613127597710807674573216486604514982837024749733730446380134531530588302049613210938766508125206873588549011510763109503257167505324783010007921451020769227488909020758246176165489952980108562370826609928802330104891579476194886905681288580087671145592787849806839311888932158031346170986204906099097746954760491385835174959786948511832121377635178573451855042552703733828386457009677754456335064741395090647512862788685276213364858194655562203202812495145370739972191721464388045852265205835399239194424910097813402948598789197719929499270544940814629874767331853218245764478990811360556608684552701129155574819550987231665650195295205669792995560948605900718688455940537252272133306211928487723149868698252178912638471595580486510822242480688914367928221079738390035255635764145994046609761430429473344505715532219695627755907741458765563492470976966430604296896570227357415833552914782579183919005647761171407333106579997299839447842334557201188181392292834544588625499349020228951259087309995477969123687053857432664372820714071158572964539819336789729005303131803465142548312936484687676801608763732522532263678481201030751173138610704486974552469862992000530657443870878305467909820798114212916635366082256202528721444947665169096287105600743385185023564540107482861216275031265088684353852042515770222608834932904283992373483544834385356764031843974311503238066335218248963788014151873695622595029329544401930996574732204301905188765730805093767933259447223157527709188674917888944467671477892852761126782492894679498803316113782911943917382801807176541844387197218697584465648977968817650382582365724478540946280217902395687353997326102505330597771023008950370146471095528093855662179997561055672460072207460935413446578256967764733248704251339822327619999601154712968618064192669099683458502093061911899722175632526865423570686688648024412759927751135763912431169399751433549118726255888360777492987218986075704146334215082351246815797732880527039026979808586541181420660340888386253500234092717130764802707999417169965575244328550407325951723870602201176428928067133211681069625565693618489736872639507666123354533168793970414418657509724416090335733071771043172119054680734129040307839629028514280876231472501211385870894734914751334419363143271878490022333506889958413638623971720938350183748715595904417626038431695628036265710684530407231006173631499037011594221148720652457900642846150027675437237875470191882282583136956972815660186359968611966373356518704725547922925780272014119156974937315000361965159896185409335421480529606789289306336734147158446803664414217142155570983243628369409162008373055686270898979708876906885030882811635369876699949002611903492258880128481969535383885972240764095179549880913469439003434326691920404937639884463326777438800876284681293191457898535623780830914706570169444696499036059157351970679113952009039773883202654596366104168513591338592723389383406386470223057373946031960568057617716071201603198862066114994431849113249349802168495874979642325339065433307236848422334581891210947588439657636864210299329732436951212373828118575896845201915316655640969624207068439068993752098223655217137199579012417416120768880905963813840194197781123180177173930143744169999132341992853529757544722322352931597989553993976686373781980619086591652839495211129119176090205322061009482694503752651704901424058490504031550975297938263248235720137252511374998538486207112820395464483856240143294810378995029655310423184267399891448705534845113868651940223995128436155399123024550048013151987487355760565650367063583565919386066499008311927791849040732713793192866689169753523919836199486198611179296771282841573828132036419956744430176941087248731133906907884507334199677892115680804313880416309056679693564660089278750157506540630274693536317266576855872063751699275162063976350250960943715385909933520077709546359046709492687207977461694031755474898949738443961595864126568172205367677748957719151048350036072585533003926536278730295230629460492924315807976444139516313984197865162481772210055201844719179434748425572418858713229025649431092763125880802816301969514178235989816672050497409933188003369131975273166210945950117273592524550223406555462448974021228271599580087693346323227163111694850549594955680715250730230288009988725186844024377569837065428359755090142844490708790381215621617265990570829580577886775691789939950622586157047424885994568339955145899564581766639636338529063299415892433705019213371003548286749189545760532623919351886648792239890528909352445240531888134943457876767843933155613628622950486524262477452226483431157630122232344753285986998706196580217531400144427779578267071689709914223149760736717052891601534258654174611723089024154347404312516155510469380358383272403211925796848406052688888636365818799088016753293965930956665369471298064094220241620459530666244562944051041241024071469876419698448133638790317477826236109031244317579606852179863068981491008280026310060528304743402059846416299902745863966775624487885196555052630884749584594547335551790388669991808569205357333547088628888264960567075484210306261140279764123329483583341785994673277916753652123777913822753333490905096760734941997960642463225622747043177627644424102208339859030529039888695761719029588975732635658448997480614833895687789124040011971385101868874493125175071667990776612278535237740768525974373710516432529575172151792997964260872076825116923569183020297435227276559284495078318378542435341336128084324545267593263316806965565593435492871393129903606626058283840686031876381675690902851898146624378688933805579908786883968795546261705316278538314954957009353518587684179853641038221083137099771074004930451855624759210007020662988791824811788471605696214955712826277238963455662008897075347517295955503901697822533776306444559019555402537736940308406999996620216785625033831411717769369671143550217107660430721064203858320862171596037196940949560946620067940493860412252720515848084982581155855030892221304290175351354990721974843819964153798241541866293175706232714467315298066145833482153944377328908712872370688026573287623232021039904921474722453522016812646010638755905973244912258958223149136403361732178165093434698969509094317860526505944943774221219291661060287790013306499544330902343285330903542070127814711637802601066700862424570179667739041649484235411672568471617048672289958195902072034784606556405720303871913664017692788936962316627904236849277491611685846644939858257351881333189229311425378596627969775445886105324389277005035566054207281677942715062290404323626152495982905951719829907273428655207865833195208016473044643933582603671413323061779311135167713654003027861840288320961052275350018424056155959233129930295772627176631609775069119637809407179665809854213782284076751822442765451543097112194387695881363916960639320903707226662023148795118737285551731216676570305534254589632331322601337971111891617943513926811837810693815345162460120356124262147563449037050760075470046229784173802103118973525447914041232142762656216989075527682814999690947827697214724216737982825271837216170015290218507207149862360414358911005139827709048632752284231079320196979106454558166807746216362318729034263581983911770105292557638231206358037445157157617352509984617340269441057480598339520336876892152326954516034742012416032069135705966735912127809789359994649744969138163512712611491778436173917713822796824638209036481432966224792673485326120618926596923489863620343944056720487236148827033213959165222308148270994633338803206199915653732308401866282636129107670658054766067662506167869520956595037651547643408096497682034002366430308207026229637310878817354860519382197941395775649364194359191831738968069446452119216508007929684486217976593736903426581720994502793301678966393824992071527703023264322284468055655753481840631143023071954627971848170048172804948613223468364481598580793801217835370705500952958853613632440958692938499242786763903604708918931684669560506604398238905982525755909408126198127277323266938288119592969179808853467317336869967540169502039787973830277527346241080390627443522439063849704162457625126696092837767668391275276324495658108781132790022922168759272304905898021689385296861591199635374739241180687385857000149752626810004285790218096659045468178351675275611122511966969594990671520521488888302724135827104170201826940700750608281263266101363506264472497785855286895763144028111937810529843726171754325573164040673341000339333594007550309407318275348772352643570788404968547900645678314224646960276746695201841182291895012692400186362732184324912528273397647787528824340926195885219536293125710857506258973779771885763846754613186553264608698570694156621779828188973885845410847896031774190924208148742044676750037287703812971533086399201182745754113526533632852298376128124154981654256366824097698331647750688456762302187401486934920929847111639570426399316479141350912019520686494444238155186683121146933155260891374530319700689056525966696770802305790037978756576984671060523033287542104768018495241046387579783849274743673225763904697305228027081941299337942257233438116710942520915737294744570248141659256870891127963378211643676400086079378431023316823111671948250046816287404185575039741233957841054135681829815265967717416980694791276238447253897923555906735686165949552205893274747299082451786826097471255702637833239409634490710433394790940090924273691875843075326060453321606562502058626932351086660902019342330223912901689869757783081842285979662463192574807404340009795766737092183037116969510570120395133508895706160848686962056706526962663952029192053791998454659768535704580764733604065390584134214186151096351868281349444560823612702114398812832198585062534147328253250392590115825713088184507359429475750110110313887252337305490898045284096264446893523566665707579607260293033457187550716635783273775960169275686742233380782423861084842847283873162253766825419955604688523480929198948733228098320992175496184468219371041774822966047882594209982363898671551544415458734653200995769929713205358764877554167526304214537699880874739078367364122539645630945711895606147616365917220310739150966423447963025288836793317248588893295149626819333412985687429764316882382243553918131621577588007008147851667639986573367837919019499078426264998569587532054180898637392870406132990956134230563207336003578790602048143014420856572524206138101720934968881743731430246834757822594650839763364091325810266429904721213142984681652435334367837820848611136741909977150707558532236740972896596157044186498492309771017770363459857888256424484179401506588561458911629547156087305405516349187004307728610738488415040488350467252179861611901227881122982818650316873036327520874276953154591789236872064620673735523997894613159604912961817800869717604978060705576496620201438565095938190137174380275431161805812576892415728478075535545988979073741558575562578220026114753949733375454627796680770948044196850357512156474189904828884489247530786210151005120429388169810036911931074453906591886649007998063337569288744293468576930634612054959670060517879616260308939865691293180887825212111381498950895633998110156362390259199029106327257935171928322672666765921693934616186959392035914398595276543277884259288245365291973768750504631718231965491478408052636501001858362709237998528981231230645885645742506655031513301301781057815151361735268925369621954544512111506526482095136774301641702537637021940365614916402459172341104480912471777989890770682522851426416375235630919607601334795827436911415386386101712364913755270063911645789347509962520561593672994259913339713634360270707932527165322563157085754143221670124924474435060276698667106666229572715597762605035757208351906929064095745048526063292051194162193677955135915374164663602249287118877238817392895238970343369042355956955326884409807749724973380502146582890384938285725045132159055005020482907521326266193837492539874170319292874356753739954533354459237070756404339220997430334922312851301719826227339034892430798963255637486436145600113554725172250142693131556938025175815863588769108623331578613252162099835497285272526535393541451389626267593587862673622743243989457684898415914750762915458437409999692710631713866427035624962166612150749910614913988070479414249891868747492897695399621042622156570616240089174336534239092676372996924951310694043325683879202659186288299227011632359392232449311842323185737267012715474241092963622345426711784775702161841842682176269353113798118680720603118501979930416256871535216681763429593517495644557047324697897188150265226127061583017015142768165306300079081618897772513334270350421712870701363487625140165091367625492741584302979764158718232232690063660025975105049110211302360783341334816698142716504700587203980072202237636695857681554788105735629032470170067872914700947127489701663889531556801495723637541934648921837951817857768376662323211674534241126900666740390245587532733689819976469215257276669302529037798865180793999773265736847987679503447939398035678958419226466771350101224749398200546038159577629402247839388062090757154418636146140523385531302795824648539654021618936534549925875665551815888336526437560029858581988851336252783708579709565030779079352167582879441283081244436299575675619065749698794410302933739799729695379076881058770040996844975923016266866576202225541834365099409019285499004468484636962118840086476310946611023516622655996557424343175423850497022491541087428794753085498771160613254223115342207757699629554358042010923860418849468996676803844694452806783783117850149508970311363247813292651818568787622354446747082966841194948099747224093030007520513012857226636040359558106622025559721060728792256446709255115774906269317947049345962395382545716588245162925011092040676415020804662809410225506357514657624291729237183114882591878674508478739523169909770892678272858116704459244458121052821721620720620840233747698707817549106035482878499318038557599894598614526433759118114173417776609508372072428936801555625358306838468534120390764005163994746473644959542604203911681807830274285583789662656417607978859055692179593764255534669804272953935887299268643729703984870639249566558061570885782280388359436876587825903406668885764854501486339222776344524975885417065805442938850561236486302686413055060780700078591576465038430036856913961018912861987241853846345075434723107907848676331673616077059879556156001754051418552980738754216348881831137269032276865011467564456391339481995661658582397490601281569461512425434684068563525998331803579178636613616908731912355538334452798338054065785376909553547084338084549426417295079909258633941096450265095743128946932720091519833385624627662697710520944285066099006638705168665104160646146602375280643037906599331243737288858829613542260066984118576102826970626996363456388615031757139245221611681700381144142597891303689389593971093854343366659066355097243049377214349689898284557890826541286847867677259007057478237905751959085372326449919348014614421588666606659118194662725538084585431329367854666424907110018170715121348011312517656098335009858007858322464717456364995584753822686289902812808825138362057532193204966326956342332902544374292998302868862726528481723820012502059101182309495470337488920681694018259109726073771974462792855904122583810744698911623300114385103919973383505942638037180472096652156252672439077434096238589610366653386656719300526017080161893738692290541588842854080419083423085177157786217447727691041216708156154012574835406207433203583324445756751523663691807870373835402740700451770156701248468902180551121360135049147879831326423626266666614175244807339462828776102549361141954141833324050716740011401082978439535147246318755197048089041452786026483089891144914006991093449662909049995517237011373459821642351153250280456957519765111013214984570501583355250914061465752624121617967528996333566451866086474188753353028490127983331234800190885123256905642934894507502217823654591736980654470400247557618849354040842068994271167484427247431970645595963072872437787314093368953493589380448218034193358199617717123522269659565860448406284383766182725920399461271531008326686647314569317794565527484968732466201072346670796152493495835873821777992628744441134450431831965988618266149121180321844000150448933703272583604805396830090187975101542290511387867934270360383608292513836359714285462515728742322535182740553719597938591528183371333854598613302563295815200215293202404315370719736365822086530489560760409615990462403553543413622065249053096632600881403093260582602268504785858251490563604561373133787006436297513221480575320856365105605308857623457756535576985949901275879370506176948885444175356242155661283681470724860272124528090425862145318148031493745474373442570762233036135938293831122300342939339393070474542490840008400509193183794224417912887819204862681761259456723684865659599824921544756444730865901251907134870453357952852957271085072192216202335000189141480685151473407876986897276174054182065742701829652573030475142527255852860556179862395926870957267062718533391628258859358608324961899472557721155258504715959278007430493898206689407480428846410705647848828180694247925604898238586148097028845221148293975316328566788091407488806658841919618368874244089146916236767877463488075563048846742337554555844927118108872162859541035016404011565916282492626842415522546472027410501261021475027254013964833536736639506580163670050837636200064635872190664524197844014994135418723493360454276293315164928813854635808307592574112877882865695687696828655087743549794821577695685032839751170550458190899564919825077433154296811639313370735032760126564775373660080614731215942106717705904094946778692619094037923144144216686252866530262216458452000324426915869031156696729629356074059698914168510112005967148266128334865148846198035409211051937837666762569832588778254342948763685256029145070893862979326757504753317313819331157352237728165094603409160134382641766534316097583940558414332582613441756831575040221052100665602165174240374120635517964948402612224146875422890084639025869873227349638011997498858925417770063933912029625032461663732130001546197578626745001449390655723330386319484496644026036051618636247637033734314895895810351544173556261633681339416806512829896031923348842695179510506236444841450378407757006898969231197568261758410582735382613268937223578744445727289657676742733878830436753994328001456624162090110620627578994965275324431203833730953618110406373875155890255688483914493050071403401501996881299674911652349792252903124876665774456651088252863400034772698588106628188039873008764533680004241570534360409414872996110336426746274405187680395082301904985263497200879827425783038997990240637008577308303485589164992907526479872126051535659551483584972680041438955911718537025128372711526233068461709449118918490533105237480809359618407661912590456546996170097476617696279394931329340428920788194041358192785400771836717143241141437136964055287305165002858583889355446760371587709530704645570547826480772806605260109280531417685709303331718459241607509522549158093359257042533749417349407673216917450685919831367497878744365863762797394353812375508548521681573992554076022643467837475403298945047875227508676280403255699747391371431626677013409558980977603044905053032610118760505284443192729673797392208066962299565070318956794184283293929334285520292888357235408591001473796353471445144838712172063526857834441579595990568587811518228264416786935731655775456923532808745526013425152959576831113880492981387371010292138918657719649328350975285587057443006421607881769596273137404998378973273402899336204176440134919655502211792519988721972145997979121657253045257488920186220520489379632111653828851695630445110125264743419919789336184941873842884985827230834746626737651597401483634903772107797795795295362934957862338659082519585300509125524526547620177152775009930053210187946031564458194393927630122802987392197067965629992070216898299930016577191138032061025053624431026347976926215614396216292495962536890260001741344284762329655333958064692407292508947549994301522135834294210530385238118515038428070912997016840060055606850627547381437919656709104184377155002367899716504677437834414611119628649476296973284327095058829200945330674833413391567401556247460975902651264538844335356055778429521934964780643275329333382169892719389902032248196999948833071212439169642361169915869492609207127221821937318889569788046042514373629499299259360546848660332588606427860383236290784284604220952267681290810889973151033076585996944399586468861760848313529452170076097086799421211141272428539503622875131009217434445913008157610289885567759018196067898248586409623616531276268600926312057317714762531880839422603157149872153834878757586022536867306848108603404506911245837521940607305563740537868597057725279459372273763052127295757255825755884712994313037155804780257601523498399611823930100890539817051464621352971809140634190451132017381815691981667261242482258445364655521675838531969519990793215836552840621683167037287507095531988884214727853051849033653242162385091933623944956568416758748595164754406399440772945296271187288662548898188203273117038139643402132515975536782420362792912236751739737644454929461021022563930142116979920641211837470649872519783751016450535084185178098959009637114697649648550879281591680111299193543450377490243655804642470639554428157684513263541897234576422864275077729409979770416275070322670691058285193044104786529852821412363472403849527027596985033818720162851308988585807864462344395933816459745210059823742383132022507903700074127637939952043407919112203685153025290255288728643044824913601686186634926849465902316923625564999004671937625434308386603981159334094067789445150496821749971497256224395218045065601256906779190035772846623172940417363570660318468942644434513401165120708039325121328246807805856304465078493595541770756066836238417700442435172970916123845524479883271438261114754373843152610848837475844593376785419106885118299911127365336612418194606392237988146452060986605877654192472192315635738401746068070008111996659679164411929226634717387718319469497706776197130480904035268973001273429575930102500993516559979451009841928487832892743791300231594045344653367984885533595357340756900019301911112962701116325580526300229648461424553560529113140556740119295120622938290688674287277470761884919680378090469158828424347525086479186514397259528504171981652688206048640639345741590746756686812657311768073260412322661898015114679004882825967482701583683385337326982441908799955915802823030339185756773892942659161813299319373827544552844308334302189005951787143729364598218899067286046498182945730165628537553803662207386381402368099405780853003412361106544488892670577406070128864676113471130297594282576191280200710523522308255484830226485423072585356651294365482455433614178923381753100851096642496014160936016430552782285749891783361073974087002444092240796125829143861656345696247714774224060448350226146926315316954342475962435663557793280430252470522282401240351941362245270277513894463894405278339858044956927859005247231063680946213035864421601501014603668579604567789402676824464335652087380411927918368813446711882950749625201993289524940821518382815632605339923827085875719883047696304422524218067718234083836858105393330782996787379846589644516011997226218452388251693362782346646345645804228404785248383121085637598726142027781565373602152156241616423069097283171190355412600533109038789254205899471265228648114353375639445900836065492065969564984988359648167001140754133273224235110582240213594244157426708956993559653676735574051759404232125741921307469500107502559177043682491652498240079240676834730444297290200141036278832329968745037735185548502875563245793290784993262853385334375829431302840619849772280746020512911072341272520310788091407679432067154449320695095745190419029350903959631366847695738392080114702115555638458708030090917112006475038954296292154116248285857925359549694234752854894383349640008064785707680643392777459327825868116306471066905155332921989069608116031058678739237876601208122576935353335632475814467432430497353274783768357192797888629221725018981499603143029195980609477564052959666225181673264077123120550949323238367906299606456663134277545552039502021972994756608688004124082900993078911269507710172651658782142561416086462825112184851864110729311441313761867203994615838597370320675726965882214706180794233453655014275383738196606300942017993575644928643191541842810064112182060552896137005976420327928532618873784462909404151891117631889355229666250071177236497760577825786916584246317469076235515308528462023779986488028741083418615797247679377897820387726184165190740900193446293852887586877937740867577482734100679389323012918584165407905387363938926453155650600596992270974529262098554479721358558328273892360169449965879336446429364534808045291854505750298722043984600424569925959461732143195024673063583412954454274029975099561965979805974979739777350107358636606438257679067819441762673672597390983380841664930643211433674530001214360329765057255880770395577565355622014060574842693618929987946169445732057346008967906994729784122080362471094331099668504093013602821098853660536496959640039665823926679754638262605860774684567729401119107416331836495968922417433252847869834886236694812526656885621586789292794931852202601010585137412076972287452167482644482581608076018512889565910832253147086673791712274922393303877027044039997729020797671035913381638964345401141840424272852199339040522718633325138289342846736149158344240315970895270360050284671137555264127227426224574779286941907290670326084561051092672763219720031893015645775910695161814255938181787368053383000165513723242732505479205237694674887532417963966443529946004586340434517396390656128243101387360749809946718581485148024322640755523123737193801728149908202571051378064303715065969555815169782058817501878533487982662288496049123191406632218909816500939216306869539190539505370753636206429830034854357679086929227051506434452029119289956511803512453605397368956210846551639219972325044381549978315544514858682130796958048071927998688082465716095239973977810510219207273285654521100596409482884181662318271839784094019631232253584762111806814455261666134610952064554196569005003486130542438636192452169160718336663446093023934325996888907837056684832732353451740665157984274139982769649751710722899506098863772579285206051864162194898514290228693489074379528749038622614368526552183936341822467392458909236731999610264943860097467864097181000962091182733291233554571285619830303660576793477635919811394268565563495716264781507581080732298331360892637654804819694104727993093422102480955892184765098511430516096677709123232210789481941114432546058435463990913242033260593847603177726529006110368137889675587634274450303701391809159923174543952880537349123415939477493054018730158145531212529029003784438278421351146351567882074370448117344640796531506808650877833765553689386632518839575742353116509356315626430331906607260951252811986594452395145365944812295506185428130497166934413654171703922570884247726570805853060687870775881253144981067099174175702957245979134074597069652748934474859909831181513639935015090383770969644984938828299854428155969157548910526794521801321765066322165187066060065611058673679124056687451847579714652059526728556238962331995274772514112734258193941434214754933003044215612234726991214613754351519714120224373817622166925927924417574017001306382054924080297170240647925054429455866322700349838972864852283333208853070630696333624519590992254851595705759861923654082522989740636470215556263155827826590195277669197184643847419161406919477871370219689481014706383383539666094354543890945125573089921576205857071951353411902769033998105898174810273938236155848593022281368841232095100296841785066308998184226530034925021898700315137333995590845315352971386742894640331313182624398388087855478790218633342156318818885315463661656970820407396540891673468367282671972250880436266549688248330954959587583014446984071184190061846997893535626175101299773526070063908329542778818106217436678700039881216289330911290772984212981297445421085583192742294500895383975625295786380237966134435865066679435799263710775826970752631339668667982743608125933521475522959286932389678392005635955457161201064238066958532861022299864426379272583133863521735649775610887623564050523120006634177731893167299532107279574562774595350233218131501027052300321422802584151688124212422940125889010474276328820683167162797651719296339686584398233514874611435126369911641377360462589091859592251543341465194711492291424924418558876129293703347909301168969202282618093220067290703834266215164948760333444828690790439859156044184737761753791869103999279309819313824594446721428226628926332491962386492934298472386042618197857173870122267030311153706947936724335190314213059039455660529062021038080676568567673089119102825184403072499497036954081114901032923589825905222248332494193486548549917865751405731377680548410746120465915012564014923668806632924408935809654483819095002879877405703355578339201978774832499473005359587607677841497372862102542042834598679194398014582100666423191980450155746237381553563559974208766051264111167867213395181910952054945052086584093015329201185832256245557877140555869385756207409650342804081174552881702576902696244051383301219088301544474098270111469791571938992336060508690305522730429615158771817976912646320801536426542575432608607243667103564143156074397800469697383258017445868626888524659382844337168426517872225472552905750866934628841223429201729221908503070259051424815099736323418227153775135765798622801960656610940286791919572068053350693814151443224812577556378596262835936922606307696807827116831321379604424729792517507124491956208171576968160537958646241547690050867862002233681193381532154617247873718506539663725876362283233991573672012748117691276853146652515354116266898947081194003035867477485408646803332667426024298100958572392475477959353731865101108116618281851194215046866184691510203762221709703873829262719940234525845239413243229524835969774137099688149208139882522618533948899529688364499972893613852896457252303751455122039384827366631461791429881053269690247172341520656947231116565007124227039181745422863613170949726320235128537768556233797197803236794231067426062306675639355475003124458595857282204266399881503134106035284514142870349139815255949312301929344302311675038548935965254142190304066732714494708692179482781909551094160421909761727051103136195015978100106867512786259517859760205213133639875433905900813273365723578153014607329534316341892313224259828465840361022828841832318814141925283051171966685830717463206497208505279666202455168451878020630564908646116731660183222233370322473269671884315923567006816607533583344441633738705759150299076378255241708335692832468656561202877395074642855265112675997006856636389096178209155355986391200172331895753967151071465009903911802950963487722326405857938563866954049052183609970875931296764421490290646428784312828603999102625927002806310857059277090820120222518421684222664703757547103603695736349402296551565919729454589581219632581554527645593952531250229782595890085577019030763178234307669540901022544205270869881033043883006138627440981076077368236920893003432015355729437115488891154366661544723307433697960775777924256630931775257525720114613537791141649894994068498204902809453406371912575557504882877201149934693175808074626148786485345347322806404867800099393217483198153097194804463282780573128720951388292935447913112923597889885196925290397567871677165971848376541077009716383949838170379845642404096555264309179129906346385589828481353944120720001139625621517453476079374358802208883430608926240260906453800124327139644527856374909260763357337123114262390692702289812730545634615325440256946712504780607775830724459836856538612760143428592926577149934946025524250079886413794620486508695969192381928030802314696518314186439052982475971146163554141335627637260558801427656587965957828740649639244650401872957449264385470779734676680355501117708132150586214719844115532524705042951442182317854421602009433572118585277564549195246687334229101472900348908182245367394539369355578696143472941907000327813671961797709179206295816727012934633779859617996107237211558743891709410142220436097157622194341083123602501490847688167374610437562629407266337897233011707202816531292766341613362338400288245499861873404437011648562549415563284321329874822826027946801115787022830054481076713814931120064499656493662284781957376817344003076484205715856810243758648257878969544928392196764264598443997536135026354946194430765649904881261281799246405057236906637154924736495015061987778323895844485456578894675385163679513255564877292404085349362824741981582392595694276826445860246693687042484779978152704395534960957395353822518378142709702832029093689906235506606479371174376411550053415961701952309291804994674428999415914871836556603704790033434439559989547715891935673174596189965015889556570707602667420193827224616620712292373439992978428852112644915616980739819355171273840543847588405593239110895036271169471968942292264081917654648179130494896375600823393684976532116951107689924417950027774587317059482725312577720549276727648641617443609458736523883137089246508402352035567498226217632169190634767195401463885967058302690329502471369444182559126957454877935794383693030460883708447623623228316053743967557687153649903845923365745242637436713461660680098501989421712893128729094480843072615643585075735540809176578539969983981673334518960795036291284481445991602577937421451493699583773652080796259351523866507270002445280019727038852059660716653798709802191731631349346687862746203760245779174816189350889617568900283063705292523361510067662042610755296246042217768552250540469987077908731603344790516579102152524463569285267256829787893214549553210693575758287859420129500953511545551320884998641770261898485114746595045771529377302548049764997728202182561425740468513613852708361365240275869787396831949735926983448460115831257467205500573780445463411384378912927841011450075239535890433908690802725733776735337254048982345166120472824575997868868494114093386532335316559448010570736658647857933644369159952026633099072709107627031602519948920533361901247517903400731712206115690792194251522991912913819722909897198311684153652076165199680585068734029742378474760845046611636504037358171571538937732511648067431917608376938236553315272781780488214319910519560199418212415774896691898859188694698097835849207555748028452053355423941425219818273320529944366260282601923091032294141835164034022081945052713315695784591961740848856798074122017540891093801241843064695219544642077508038792999944576971043156174602421425525881384303692732742495116681470615012590845349409860441484612466942732564020883505107101213794866085047748655215468354044443546518635134122428659236291581236013739808134813670534028619240079059258202552175153562612465278687851054290863505215645482947193123966559716304643911560158993192038692742828899553972331356148297644619526224353217582633230734492110659864229239451156260449808198525750060297454259106952015397416572867885135745640818952785443272706362954043457264240469419006467846177006206164938381036548616272623480742856353556204927646563948985286654361918572080039967668532114603342580636460142002271048521187368604294750847896083607337512350433713955661561715435070649995794161340295453545516733406216168157834587684008985027974869866713530490085383883572366502649196504054331685471059117322560616514405586659222538227715788259921138096851554920380885327872697440748602109395753472705952488354626255548679065879032870671019111487022728888758860815497037705263947906320948947996049143127031966379923939066350357089583400727556231339074127820110661078903111384463074688789095881241998085041391290835144143002371979083476436319652944286659423323841511696367644039594022572549236826786956699529987417657567099640722110493687795288959911022024143370881369600335244126390954532835953569692119742015414949443268159232253437790239115272356517819833854937031392222759317692872807712108061512153621563118742135636938791611238407702780456993710664412775657579160709228696410492853203675224376501349540933105929340429248301451698678144564383200533787509240258787415662629571482162062106999332405801926498873637054140569487460359338482099058587829508639450793378486279583682473876174870694426288325016226476489442346254120220065928775731822379713619682226939037710981660134059529210849146890036104505201218239502807056328037706117489664268316217751182762893249513548048956637859185248256576440908085127201411240259114812595162831276729912723438694650774000168453574562255029000548076179029069588469408508236291711025407974498934105010397964610799294853307306369708714459711103007560233859286069439191704264232580258080029913763755778592938055542892627940353979717322811621075157970553673404870453549862464163954033137818506736982206199576360182418890092171007268985530307459811030144540011591708187688031900055110689923750883581720159546010389917880125298038084538510554090091722143851936825085911980898917942582594652308335420088828938624128167969506554263453437423038725025548386030319439377846949473167881974048900418577790558576806665005755445086023101077106595396701403696349608797530205472966121088858243633199666433302954666094662381231777769413331064489885770976400664820999066471309773283976106412226356280145819231224948354462473771084767994552606767829892820561992577911107859135315710658575274646476807308662093861941588781325970393711088158873465942991473611372802230656417387059038120548089066205414877173139289450012746871930786514881179205260575468049612186849025643661955056957428982362042686902882803977755792898678943360274673892216167372465519473732614166172656245292701469784622355858899536821268297403030062908874843582139592971581979367900133400840380340152413451320466505849993462418330505719767550665145423358217556092026704472799666891102092873609394012555386996353153475015263931229277437820793357207617652212604487477692614328974709230987634762531693303685097977126330969349574466827526234462252567618178609385069222938057879692359249690808755959662851957095835810110876141972350998917627505162253254478574308684219548329899421653383303846600075074177629303803309445733627248974951325883439967430008242534272339197680809911638102767456092737770705576915994857141675842846584486035662218971414429705814775851410294382134526207666807594623730300529946010212702387964741878649464585129714259477270672180361185291995911647204285115997544659237131008135543692742631333269281272121081070078382383421563031349556392736809763104538082576400816094130117995886888688782220802373431759564906245916368787304661726370038754654106347820525232045854421928140806321660826791840105488195063233060760410573262464760161048724197287791807372250593200148013694248320142965496106544498946972777849956019026053575837356105575033679008342153042667336579599053232673450382273371908277357425811704556389895487400327607537717610235626264742908238080413794312060165093483372148826502241446170741015512436369130635740110650911364069916212550163125458545148366954665157573622885981597597259570986311749450838073080046839166633337020002698250845066482589798319690727070344605873772017580188776260299814329769087706017809007712242989850745559555672621405299228158483023698381325246909423647703936820833226934965864371051335184137023935400557952678953564486133022535402600598314785312764827208912613824670776176827612560290360510246551210288453912143890154559339192577035733373542924244214549669668430019526860912878396611441857827342069499750785547077298977808051076572933114708225119332992214156806450196237017759233978240513188747035459375015928633767913712779913548067720696524573755332631096141640053680986723098971134703431346094159371534902127153875816161451042628378077635530971980403983845806120399691972263220205439126786127594802210058579750334329781600391989458658745417967195542401820390356320284370681110297854214391972599134574019046733746887964486422567941333710290217040947225009924821616683274776981853859603811013263710309817299045082507730359274673760575929318856776788825987031641409198870151935753417147770973317175132908527167030349989143125717142424822225119920684590919661270868683346319132480136951087207571905805360941281006918127186683889485814343270685445839287603395881850534436239762602408454040767936489870849442071883691461445284020461471514721041031418073002920125392662775593745681028711304402030937362969935709638663565491497613662446920949529569253221007560613456975255936270176658705452279940956079014689218709934530241979699407694802295533920186073508888403508795961179596605789460351067097650961623151787980566503175930869719300421308215543101237349039230631687018060316894469440720039956253834989964611753973054720822755275515476220357466314091749433363397917715019942652818630423319987395975892539708137467562060357299066542298103037264538815875059906679018611287847027065928583399470956817031036716789015654400245554707318585543570550867016083589012523464194601071886681357371604330744098265621913176949316157647261727135126449648508423900011382827770256147310734561633567933431184360498663068168302448919700935494434386158722648409410667894592884201143444558814070764911345368994039482570234418145413912152910756935029299286315056849281392749386307783773791346345413343149120185296949765902311297812383408052067958035600468556489069246284090961309128282012853507242670917192718270738356113645003185383670532011884703603103534334405437918453501004112117595984355294585138090202246519782550800016630217788135988402870542943426331785582801653531700574806393880915278799380389532629754499974764629349849937553624110318517822325060417433532963440698780788188576370782580986704135334821180317824303199485213343331601529153751467447770819086095833671644119208325319647732163022725268921209573716866578116495797741784718092845696954810642552701138422698618123639972781095653541841540661265950721704171299224135168022210866734267876910933839186708928786464779550629922995300769452163170206511906015875474217137122279838459391181016838931849110256620654096677798506356866692633044612416423804261155628404767519910748455774207172222177266829663993958574295736349538081916663950153037654975444916673580821377753246061381716587060215028710959982529739383365377362497137385634983007186513159332963374081813574112642337927571550647836404138680077324271481329497072546869643287713372181289546356012957604343265049768338297837522665231851092142192221161266194641202276013848897854443071565200449745938959151477828767266817220714286121137443331190174722654078173424360686604107005225062373842262932936544199237924483254373319639581641777917958538020152797829822108270781620395197899558235068353279770177882778344705653277299949873606150946582941661327083905278442555283286780601437933473045752829368084819756554490384814106410867225348503066614985622397176797905628569269512215041837035853028529620658641370312684834848277708538359880153774511996028667710845871142950901544849979856500935059189362008733113135132726997822337847834557336272093058449053279541269152043243341542503679802203325131753153306921210729115983867827953744121384569350500289150548216227660136202476279713336520905407269148911769016735847381561856465741067454348256539986261679997884456594149889400695973702874016044280064742666237827373149059652919381519216311033722956164301495956424090941292336274424003409141983585179548026246886659680529678910142173273418762781098471886722166925879895044917265944855178958922964100227372649040235007561065978529316270461076811688678988033543273763803795416116603691635926768277790297980401986258740303505575181903916885158538438255870349880389507325571424261079572672559665173636628235466993813408971094186768188627600020519939327455286606197109992270884150112520814038779714676401434608755182729067088853075523995071394986659005903186166306133075212412661572908618453712621071167792541311892837161155354647243575376150932017185816687992307585467172760063889246763487207925267642058882544887729310289727950270930195719575208021990139108470023062056712203825872623003347557827738941184207775750479354898035521856479214112870517855797083763522489750393805777422808615362945269578747087763612374507964182695448596165902576067097831952146837573928104156733439952105262026224100134350197668887393294249538994189805451449414935546313694942201459155253255800563234191136605467934319695314099118552524160481597166656398008080452307458239542575272511962114771474515099287402185719423212061316918405501309328015886861874798665475844734779323422372664542942013860302010510153579892496450062814404632622176636066435014217567859921458025577063314550181474491424134405327188955133493470868189013020854104331412388127874304581697548235178030509142022640638985876734538970892329867644929463903480060763960107838455437466556380358707571787493626815448770966907008202767559151100609510282235571020466947698161934504248148431896735342319339871153541105240294346168571965048101652148318025037769920448102777898176721638077634498927515205827546984016855310966786397560675995325744167582859650560937190846713550033846794696612463631031458084511605086229751633632664170503025596891488653783528594993206675885973703779332314016676467718971607977262920331108862454213341242171516113004448286826627019533664314797964486445514200347686459502446527293673034481235471177054841590231248303078207531217849099861383040663982321297515493569411419283289477769991878854819020776043343443411013603578142762755457741319219984233866320868632315168002976062815193437578851716103999935581659043953592670985725390236831371550092181613902851080552987127192059790218861929388418603305808624925271336718255801616755972970451037313124347113370793333820846047355180886949156280685904255876766926899854535397961859024604893611119275526236688471299298051099615640565109434615202209502171822944057393875967855790852819823885585946100762363011550646271568447863999278700414598008010534635418426562166223425787925590935256691920342356610301012907251836013537506395003314466143053889150127323936697036113142493888420199822399363140348046612941439296531251402467419494699485427248510993687750537440581607003952761704859152841948620701052508879243338528562480179916939297233209728393400183915591827457858595016201425125548053121135985733146540458503042065106195595884738712071227879641959319270559420062857150233542754854516954522942237506267893158400546846270220788500963909413024473615645242666888195005355853902102596678447960194817194054502051933798089305660376187387004332338559736353832255487524180937154195176870518916568355987668456042538018406623278289343135574806537791404145214382291453353662936372316363988058456115051911021482439511297858685083770742874922756143025082431925399001167309395789301384265121523181106992811166223770423104496927757768420145675125957426961938916939445297406884872194807588682075838178129028025820828199331747262006211407919294221659583232189591804027135401579511474492317239707923845975756872141650964947635007271302367629731245523182087458330291481326768298476240040016103680213411878448070688315501018618502606941362690501132270245246379608541290617346276899956369039523526437909280134541207460537763648518585091898625707729037017370537442614257856193248197581367682567143195260188512679350322440894472609689639335076834743355965722569726222343142784579468357491834489591701429004724627073575470154490912080271630151398166142434281948670470631079945684109703109894833425268796263811233785188273947797602593102291734435481924576861608027640407602054159595366126716895666292993758201579305732172098856367037467208685616004055151332439310589090929644387714143567747026513379919015702479842844642578804586059284901863104819869364000569841051196349225764183418353261825141110408340584492963613506942880903303288225052465924787904236441304468508518084170651377786286677185829026591752621610351156399582677382136492592703479933903133355005156105996410318046037775859008119391044886614146927725250315282707655912168806787822845595363947802511827297400174990620496096972668947925159162997167904377993007096550789489053503860538694041754076392857419976716678338925523650952616443559833287361133798837535003602091377233376542036718047271101124091718584660047763909029275928697402993606900379071996575612999439392838824074694810389030465234129440245372728407031888247610624931949750399248532363705595087778472114385067260534728690547873122417577956324261216054526039345001689951415770826476277462145732109674731597928672482308213849457472569907354640754340969126934465451985183597446551532629635491521857399095521067696073486449585785323432613800476271187267574645122883530868531998154958555038796253681182051038626984365388133956901664925200607136609912281999450979475153148363489801613879644136984639256865815181607843578744742631158721624298089895159843022759948853738109273111626519649156498917987044466708485076228916198296998738646440727064722337480075302674995124245105113952565791273726718423298542073546461602180810108258859283493505943794435827397085036299662496045170852040749374694873037348285569874558699797582710816728407334019101692549739636997483447763259157203994208576117824979820644693723340639718163008942360797911798831691530900091480865993776030703301824320525930337879421960588503184674346632425006652497168175578081441299167470190208999599384863476144255753747437049555166359085616980579190961193243021311641422278473143832853576466419328273853776056929250132197970950456033010212697092202381609029430823571778839162056056018188722444904048194947998945656480332936062439076728121556760577356809338111054510956500909639391996856810513140293799036654421382163901723236403500391760041064301777985623147340339171764274727377329818024053747552897211030537030053245314089136652212072787325991051256481732634334684925779761192403664909208609057868152266553968915646970941630774046911714854024022881360212471383166365922054448314719713704152112460339784638396898000781145587388895448821043992334917292929048835920574687821893225657155081307573452946829863304082388944754521425384855523047506398841620539383061303273483431526213619108811830122971430235271148102365816178505789902386814680602675527328401627201423326117590989983950310419408334662435179792280353394753105492573098080453985242802268772785823756020482706469178870756503545916790936218862152474370324730454316392399148173820839564917151046942801933887351212092801434081098192875755974896070000847919549408658409693504682139376904267021156856082593116603636919861069338107247972644910471976599156279192810425523930521058335382982356398305529013692669521340416633883473992271161818371846748061579203734083465381365461868983721383312850599191442707126800789499307235852833976859689829756823582596626211535630933286278626479933376296908895820899197158853284496161234748802533038174757362212115043859412064025441926316244655646476647117322359912601832241552421759055698514472519998862129022687083427560948727791428155224403060189918017504841706631115683246650766976766168641078305333255818074013165163223630866375867828696818581073033199351467162662628500093740394534211209142531059243118706133807055033404390522169819712617464643183826690373572229202256171177375413176866210587426423285591808760119253046791338304099774258753417372508980599615989407007295766476796733290603766079759602987607802929685899658986572685470590691226372253611397669451360665747958651640820486632456062330363773859910712299846004621861636095338104283953091323011011753773358098672258675854906438403333624272195785061038790306971648445712765184626235723369198989352704684824144886262210460744064652946736721677211263958758510130463307861006016549977231124512648710967477808986888054124969837089438986395859635213792337879355080020193410366881488353679972482387417764501805379753049917223131937000195277760060221206281394708997856808778273412008167327846431794421260528256075320862649178936824152973715205077928100223851777579358648864817235689179753300374588429598355527809961335870596928457376401550731893648542886444211528535525082612653617753397231376691719750525462667093999184848808789316038480570561973618497935031660218389200701498226967014235873841265807543233144174510857418525884947669129241444351863388864201974346197089442447367633891263906097135871288027222687496584965555014576359868963807537356649086887395239661701052645848168489959380490265775916066551320500086548456356792596931053822037369775374440542926219381116474935171017151677533485235465229058201276212451957468644510345393927656882198432421167591621124023034330828212678725936214171626521374475746990727504658083465228049229559419068336975268779042099637331491790844153931439897792830834208871554288732019884521049216039315741984028494894031278694284876496144604885916548661694072927122081368435058047769231702328609460127034374701448628734317209137028103917321963204510803122528136132728079992715975048662839965271373614951200704307535424706712155789942626716235148986392848000734206648930731074420929101361683017318628640356927083315246768152247730642639018672937590796644369794029234939550521408740686076523473120711054150903025838792926694228913567329012327957900586755204191227573630498924082226950008415353851984444827785009569942755275010635440637467202705613490893161003365682629667650143333682297814443798714262420424819486170033837838713858216699368666258395901720974534917505996344513484958156665817681145984926789036799935475361759412039646751476677631096222883237114799266255067743815303235496048033840798414451621873032556796227888247422383398695773053499632710014910551462093944734529759941497753607486316708292263251614029811142758661790504876974766628238964047781741346844815887627971679717817540619161440258814376398862523849664942560287979219741833572474512100427416080599542649430740704276411298750452957665748737314491026120755159769132510880597515062220277440211451602314635443192358177141296057465788522151300554028990086059427760998138420858785583263256519206513206983373453660183414088087378366472931703036666592910004656893347356882050272548736827397459754493524708146978436267644303912647504541516250557372568163740934166129323930414117235694286606336350162553499920086991237593113649435146437152985631826702144297248698636072419845783628598430757074162307519008653199532065201417077406819090699435903945585331947870348689343922983479986972900694975496943984576442036193887794539808674665955906415276185814299656290781283116733417976454577369713601843761042644361915385963988425091688736434498498327063262575448380684612107481490534133601997571265160842416264165076952483068629337726654530102227692792847133920327910021606377642189791351408704011841689184859406001599310280428679784451558767117057701601898075787403674385213182137832166298736631018990431411702060185551697465944506719459938704893251915909197239507400031129757399337422492833961548861681280827957222044716819392519596013339802849807162548117353595767556523689391226398193981104893944833591132860160945233614653432418003728478340316069677870698642771631226488822145133295501985781463283963521482008874456362227999926585290291413861224048559636608497559847210005168356354505324481000183611254935819459389160934286155019646956683054018671167722433322199604968619203331353598066795107368924285382490636703262726237031709846548828177113784001350402039754319691791009726945688577640089455871410453970326551953218352415501279593013626519778673630937380999213924576596430361564389973262486363381525486551124185264163390005378716380476870655935433482909924032058633377759377458374119739684444793545391370397127980455057254664057753513225594753587470808895242377749054724074864820543027455001123382221890478042964690364417956254014019569859475286504546637307092685171940154407195828600013258544619693208088071911150245211745239866203674321533434879128249367026857068092891641335979849174451635172019233867179196122579712446625570184717809417701558894258553430091598502927937140132230116431265829334807859091311019683131602500876447883058759711477837021764434711904368711229581832488549202216815121706592332676125142581505443310950520853127754512155166335949237098348025754435003986953555387940574932585795469036225851158010672010644954873400888689123246650418549396004764617602801799855883909128943605107612380614247651942482502415685083400525720130217082509989647786295173492738493273193112028768459124706088076218665593781412332417086801023601963017416399479566573047117139251284968619238809328494622431683795106037612019798268671496419746854611732177063316145518881770913670645768317745706252575385590885347834434075962242455690955115709547460434046527785589160859822553482030699324460193858705024712897936158854775392260108504235856460242733940300728689214414786673912618475726852539485264634047417649392376261318644421883008404039398820815603263288312967760471389151411716086561548825141025435236406385615100920921923620162119692121920415339792234227495998739952445065531328915444793109474880755372845038845613850287687465315865331547904777456802161566321535359554722953541077113368178535307580473607707867743277508088672117033578752453422710284860618640327735440946750409990654171884807490905897722196477371379727697780457817453122163068675668931677747285275174511501220868563274913487721473200275331523070066108150569553729021369370497759293564463410881151227363670237654131715854559893853081855655257506929571753467547272408045724816473235956898471159247463804457685502186176435403472758275483526393239791253948049977360171667114891079480012365682149260335420223386640439211992185387081699921475891742675231244439020903418300823869941422833477114841339102791689022687128446430274904351265611725683538639952127959632229387453464499300788724743111429672030695563659065630015348068694402562339560823451696123623314150618405922205177517950739325614534558645185248564807256092877976774739903637100326517302708313218958778006275520146565459889413858774061766135235458404306757912688946770647622951446232073189457445491428603122135497511452826987996107348342404132532595763749885829001176430590363759474250016267026307003363104663884504986969193208626736831732755334949412132782959159882361298014072527219310234551689357995211756190267195896483559804670134384696519634127034799169929278626441784343513096277684375750128890804887318813875482509699756929939232081629810819546849031209916729116521507699458227207639395578525445590479279349695109903200827251984168881852028609596302232967644827720505373286177900446339883020394670199669672754137771549308493403061518335523804117520501579161626201664166789734105936520798988628105875812663252767746771849812533289249091557779100095244549433319438237221029841396116155613603509013293615637589526956534491241420970128408019191155940286851609425198939887618614407975882670347766180324564633057222662311289720737373724431734959700606092214745058780265579619487216621644923148926689620065379676405955518861327659799374715401410643327835341130907224603029671145981630820537181269692708552379893428579559768203150178287288799605751357225327345928611621697815949082494021813389244639027714704872978971269657353272329303658119271640306189422911759685003695872571577519201557481520049094040105120616976550313643057495440519473718085491007030927560565706259256551597280620810453598139728718541926945647242799867847699876854596758137163640118494874230548857822679689514183178150801382863838650924437826084631717099601802510595504852004928667534365584564878306057529071839231289134288415455827387970807039792239450032467416061645936219106717948340008656628880793492648681430907258163271414818180310657826173342391595038123025779352824831060573949478689035431955736070408257989877661663076084059521307895493137477302950079664432151475021780555410928708310183322866218947101381353967289281565539328632732943294166921256583485453819400445036892385602411532678788126258492727013614686808178490433823575657890691285712711302262441114351781011137972890305924888991886555609386108705665001264657566933420299195596222878607501579158615993250059390963616668359954050483379415022117400745433570478220800809269164260409691569915589755582079294636709569676532596286202898070517101483664746881664834021491768151562366692604933127853573718497480583932831541993221396566735216020293507574749426216353608867145058502754938664785139328282042221958575868959126736494615139923454480081596979317664278847663170498083073259510704969972459948478984554814938508261341723107964818453743953167980391038175342375190146975869721945142852194440889050014920039396363313831872003381409615448516747068631961706001851394138324041401620568404613744518099708246429442300426456919474559959708143309440749774153803297563259396344771379401850452141835415382654040851807075038682620526389330019084253570314349646628634118906440178263204737065068836691369054885072387183027445043255245936623854429397066719693657610463213494012895175000856711494422042767341599829578918838616925452074700656371207158257972331647439237137407457822650183800092072437437816704147002352635232582725226868982973903770504990559312501960035122756369105617643926479786648946721975926831536137959732013468391947531340357121171227345713004949148678125467802104062429418631563438062143862639382408508728986893791953246879441832095100541159686262897025425082026611752056682295931471049444343556885783575546783545384400519079279409575037473306898924910950772815953704484469288408303805569180459905465637046734428355369711067781356220734583471262144061946148025069718908135150808875698126484665767126953331495118089784288188854978229806208759584696954798062236730145473522419655701750208101893217992004083154892351626829822128740323773087626926542710659664414626944404976029991985588689069288486701176672802303708744824659763182304087541268900181818193560225595107076462659261709394029254923563134329327764055965156220868725179114149300026438553477397623258233596148345292338939850610179245204027360577071701456335069546941391679057223311825664714046499433099166408386051562360233151356180288575201257559375667194995767696293157281805016232916058553579271291915741320519421654552767273632417081989570176355437867223603182882443475928050135690707082940441135549330877733661396853514923285227015188240789570004372877685822730533915252431942142215573063635407958903612299949090366936062094922932533162136745757464421182603236160972259069896839712397436734464064453997157541678694063623975172482677467636303372323769660682862056534395507008979369564539548452573950578520565504436650795356531324501823716052381327766189023278599417517422209137515319935220641274235126820905002207319759771897075228990190160930509093560370428127445329163314031231450847908981808633801623511899961736128088503252276009519591764986348892485594066620239806018500177163990120333342372194287421278696245049952775778813856866427390614458013777187347730860560576789241787812507301384648398943871873262596411200270119270720364820570203959793791041266996251956204450934467526809127228147495769275646035463307219749263100592037781324632410853172291635220525778428404277960172676940381158281305662339166841622701869383659991679954257421152290708104874341513827427976766294281180320295791051328005473417622091391439952826040314261714231744208318034308430316185466736726039663433886863571915922545744798975202769076027781552006953737607376118101766875942076759339819416839192174479400551605537792728517540688543739730418123404348144898975103518147078214114153648429941011756779741429664449962273677487107714823420001694312203469574599983225808910251042113647894123276821877323915666651615989640478108757816075228203488608613750174601129957449505823679440720324850879906420333913741047926971143000758168288740107716756700374867877463505983020225022882361813426347841012787990207463218107983466670719290452882667118411087056562247543778580011795253114876625838878578041361691742342640477047264304538836782013253361388923118123564996028317630503263018952557462712651520095936626680053456269299665996445735677995503549139978431181963961700946940780853484092435524985558564777600147738067480730234205920844597759087386698674469419431520416553345547304423695831256905227405162883650857457810285700491801961321375086557544829678599911305302929926617104618985525005808359041063192613549635643014244138144528405532509755985304559429574744370173639994199315121340262150003942523621853108812659350735736250446298032256889490390211883082586488850982044762911818068428616465872518488831759237355451791430112546033331791675598106749067060828210898613642713717919097773251426939788145840423727983171975144406886074898134748091123379042553376176951902960915607789705708081661709976705792116062353226397497922825171767522240066869186573351366634773433268348533434192233251798903688179945651934813003165596616495750029217401379806512584770506016148344170873950016229297806839388115689146258472845875540221771033382899574953358970002561435808555716964393167509732503499116596313373410087371202692845734743578181627320777156184716490684850360321043175044166840599147774341572244183671344128438754331018032617226244436538745242791692174471355811271593214692004939510599584930884650197213466938662226178285926133865467017315237711603505618320174146923507789435668723926118548918021034771966144829001334317608025845582051848371621591428672302744044892901559547092694115889517671833111738823360869935828549276935511528785485666776568779645970448929277197758846990041462183553562325974405857817968257614173935042893228515558845364811227704016516018760186590528476483999694705920924565510670980854054523752896473284367243811181400589381277733493001792680688417708360308071434454084932110848796300246793133706905367793648696204359337145735026732859957156009497307323423402471839335846108803235461594192718144864664189293021618102576093746267746110610544556229952248147518660271707528215560505499061576419458636198558315916031184236552528063649145203826175314275478206549525611262847983134949266941503278630181794148696790470610630894813045122463760539221502465999041333048277123933828097071436026486848859780924025595887085173560231897107071839333452128498553085277928087377458150929759460287311896071480120551951873405515507342477367763800134817833321691422854897531080169624121082894964582927007734589844801049432769510756599416248931440995553039460182057555656850590206947940652136351078202000597316492306529493847593551915574097128416725820594680037485971498461623216683442585797497010633553888341735093771843037288771182424598445380992409201542526917909957082786289345654046235424250924479930541728132152271187639027314582036174415075876989009093666893700847528535737905945276481773434486140627956637010006614699544456748020277627501931613189437854695140840507355199849852886182658000505417744985911330873666234550160077979066444541758551854847761727216598601937941452015154924384096589724745154321262947768772441298649702726246295321981700472248006573472165493196115961284835024684933605842308627069533528429061130945946456742955204071092890418242939025398379692340924551741905577816402588546376341821031455397536240760642116355492030162506498085783505168631017695976677110260574739589770237006745515293964545694941394207930730311710697944083499807343477315288138752375979834225561416198809854289156090132025365119729469605539261183582479343283141873512206920851430069741633115986115695676806017233870345160051874882705123326933624288306235457790772210753036451368921971469991411955136963751469054049656498680761538470806911565867885541646850730990998228107487971066074020199222214608472720728332293460851132877928231270319050961986378112846239083484994988672669093763310614027620000968852205448328332707207921383379128162661367688871984310218880311628069489250021322668385402333511393070510475321175768577119284423985162679400176598612776216433067294781111979183738070130307398421624348518239469020754783054199567932371184883781222639509289686398358769224496858424071786329051164258797351023027316604772876400092347058087732626500009730620731986840814302244099197443655173747056163657926317022441847162973326159158926488498332215887741193871734693388229563469822475064036823604927667026097142693743161954580451886933256946084850661557116159284897028047794713145697384061021687014960378789467379119572039575392074441409600935803899253714845559827362145191380212197937045806895022718393730237365223848720711354235407149336931995032959490475454409099018777324200509656900882577877155865203039752255423949426704112658223410845630406106199521910845474993835494430726699887777923227055675239409640158594562921345440546674308100278887652342107282945324930263991242268147901205082801450834644666798929194978684153786058750064092025088973060679949681465620612456596666221231802792984036798978336294001106582118510880914339262495990916073320332554143577550882252474719908664387263885008352634592755024603054395207542442310645043591115555110158683036630392252194418432504452297538078022692623207931158458565317733608615727740461225464623307034486524892776529480388626331215126465073996370415220866093765141403986510274878503362799602622088133867774028501333777286885432004078762787008373463080008785330327247596729956511870646281186395595620656189435313650290042504755537614763413417007340151386308732881333450362995302435878259636278577061161264928137130537020538322464319795302280177133041839764867233299197852017943163357633573131897083812701395992895496099085400426045912780644883814992036116153208060789777268062473238501385388264290877339122719879650957962667692501821950855686360711121593262428178719072512013480429988789657814642765054265583664798416555125937644340944040797158727772965584370711439341431528338975918152146417484133116017240745994326145392450280671312769111594625043620063328788905555816562305522189343733089831723369304443929411396419170409224143382660241133128718323772141246196590585310351008130736632321271193776285237045150341213202158773955798498261395918017028159897234240455760112901714413878512666525598121579067321043825504667531573758229809381539733091112733223070513843651369760797766037320443760312840429317662530871686101157085074123014033663045085219105179458424657348356722027383315929641722469408497372730558747601756368254763236027067686032565892368210255073002043476849114192754825240308392839454941751099132561140992056662219429647556805086895321467927760077672064851807600611893253735897878090395611429408492969336151833928147234721843535235067736808340013682646683515772408978427891108620286631228894626889686703398317305038527626343400938600742414828408390373498095172560787908900197651387308754272575679303686443211940881064997695580415487883462286989025322000807447256959462372576412285267732297305004351168585443881558750516257022246150255803028305939612987713076123454030176926227857868575714632196577738526429672397026587318935015656388784224062293046254582172672826899729010308497543199736728803296503725456031850605087481060919680600771474473590295687363569256306873699620935868905832364995992384863026141551866498184302646213348139068135967788846312024273598563846123168899154100446194659274181655807169537410860053612194966677524160332973159017719188987452792293041144906175466843930490564306098463885098141046327682990230576393805404947085769437506232385998673340770839354316931621964051953481512152633614562775626069218182166813397828811564573624439576437386987171602442595259837958058572009778720314322628044721087656952068891268144085957131520360994001443861640370131172953534051965907265009494909477793257907952271995053747955488294600493740884336894201419048466365619635456525497530500048971604499620886624300447255401902519793691687671789793760580646800747762054291194367694538944548472816048219288231491276218312810895224744007441221536783013339603859473044677612398765298095287891145155184762488525241424022508113202670647251777839884491276467992324954535268485424644723745179120637184650427984921348979431078047560961175944878456552411120309061745391387103030717740520372965961291921832910012351425098702151075793423305675218703928894483646333537964779277488273444494143906142248930086010928067756094987031519948656375148605255039461948957550168251203757464160567644611742041565803189373879221949693401605143231318886898469465234228924668350321520682027584716728708960599318809378260040561619621537942383965672636169231642900224713422432257930171298822593821282744570480923229517496368687659864624488871784055901911291110019261932068529861642470720051436293159624228934393822330226453000371504830954748558552762241877998924544373774782624156809288803525661514410400085195089975091726020585525804372081160086099811499602883858181110551614119310026120698332795578408266228107166322197182965440202839075942480444467050804989274524071105453886948273891653185634059058617334331157145585095487508911169547550331082979432831673121277243363380219727980240129895079817882683496720692223095083689593419939607448316198649930492739709284185852751615384374206524446809375392097870474966655841458926661615391270667547026106819640624457938385372792731727014684114890620923471012379527702869032861092249310343749809532635560720555151788591443550321059971394282915703059685712184081206795858876468036843964012962524743400599341128249355661222232494995573291369709260695662722433315166042887900647066402112691433107207174933236564063618709479897524979984561426041654378754284975418923134646880463209067529742174826265654091798476911611519944340901556242604588919938309373375328834839901930704320413202600676208340897882702880595105894911910053616621907100999445863651670852327834790375120224278571241133269570361945181121743369975323524391906749252420111627802751601752802174202822761413725093864343443421410421323916589777998938691450150387622568158123437997077063558911525977213744361977361017304561545731446578378188034332700505834392466344831779218028620971333432159514222558129298288511442349547761928515917031815483444647093621714446860738028652164966509441379928024077527396988271835517976074233275468315479670653278846342324002207789468381731415451245505346041503308017997301455916466461098023257517627373969144116528267082888046005623630563990557188530262091167773836142023839773845646732973660664256529268652761535147975569611934569069333750756984659259823311279259734985196877485383929954052501862014721559960739956802001600262411239890484544655450507918514346167903392273213359035587193545634336230573835163998468646912639236523874712135760985989997713856582802380145920593743755738924114971307334005381451637103309114892264364924077148985630153482546351980949595973259534179539638406574217032778006682918829795103494194084485313603321406624535306548457126227707287160620885169916138326773462515973952833946067218534973314956703688001752479716809762607996809470437309830047379596776046102119145496090600069258904188085102252450920703753683685190207207045409024990531723691430095308956420615540570455258136293547252452114316966082133322599147123759063675647361520164453514232619112867190910797293952027335769967823900080011288694270509348649689347974584626755204615353209657895180012265547217056533233910992591493836346848720478392791370178234097865156939386367959493755194949949587701173239327658285494421890221029114241682955725126401743129105289732367648216474430976334224389851672996014970530326751120599970167345817981077514668269507659718020115357860053287035589166730194199122620461986677119014509917647803689293858436368437372047746193175716357267105143387884217711799327017128914240101560088713073924737508874801916480484716805902123248410131329769212269635469802352806182135841499539151814072958807749404218997848785607393190881898578050265641097693231907368328367662640657687371654078837877105863551373885180294594404958619865470314839884449165144263348536047772018348925611626824325633840678934808060310526237273491067588521135654180113997910608715276500109734764945114945775070516563102960017239978138330107607542204215810066974509801190891576900670060797686981119333673157053832430080399479376035248123965165679936754404399887429390787573881567979494218605166054537314509304850778567047166975393794088870301315150326569544072776510509628890226880121699237078362855271228932827937488292835164413625773693567578343463555341681836126211372023954316880055277800665228592630515523106629419361282940119202778211490237069836849678048858416664477138301328228812828125052137222620158925723058127225357184805954019997160007574466338627142713147185463810719327584470354450894863167527463846957111901977526997052259843606868897536318180668187056555890164102842728103492007040091759251490147983139486154380926695810920743751422627534099111831487990516659560456463051330227257524125231053929547914948226425028273630332210720620853976931417479685093104771448930778813850078490556514689989887646987049685432712807884849036059931405388317313681881445398629279100139648887261686636909596463349036700878989235184342982564222711072721389032101634971826919035952560224197619676357976955376266847861169986438995031308068767300347881406776234016749030512061041708261629885720870898421159703078498349873184623301027425557262833589662319198492861293786431472652602198825767452696875464272379281315830803349724925058892121777775556792514027139800965013076563299130026670911913183805667305178485869967996391341644787339499973901663235535325299619560105963647074340439486346238995480918316802775024910950242389270094235325433548939507151454772300434527020551562511804350522447464744665314517131468428571173207085208667244879755191837613589735907482439060625169342239254868159295804991297197171328046093476125778638674364234527040392438125405210169256830956076679902484845919859955704397007350437380622931214938656469863701030509515120169748665704201248131313132927631008163788557728338752822046844669141759629578015117479311853529608848928687331030665286311598558990808742702614686680298156350576133392183613171913668108633713185670618224309640426946643288660564393836440548558744824301386438775454811399640990919126748810826825781337704671090398646364379105233476999655219186312219431760441577242899027393618080156626102397706557853159269109472395882005453888636632093131376127905697895190535278990412263915307264193128862121789563245194508493333374511313253363211564404754369394398284122960586607673725950513468353083387051142360093855531334518794670176925518874302649205317319914872478972102422607884775654114947981432782695546118176308115682918824358486238361430196814691684527113640456148590874996401502649956207345349436772081530812000488024046611529393334711004600501911403218448670556279222491279829620265370168064366839497417559638200501409559715160830833364284087662392887182521845461228893502925302941725923574774555560940992050208693217352417089160189787141161622075245376318926568993032094881724605361053938081258248360155461527849788153343655035378129696769739050605281043014726179646887092135043549241166274511918154335515137194127679416209216688637233718355553436102010484816857120843406185830692104063770763530596375132461792284390596316396228941425164977157131480940906988564843869876955848995666538204374077597957378826917606556679641791728944029399443009996868585527229136981271487279376358474560017445006199153128272889099494272133790424264663729708362631191855682802283441778298736029646125808754187719976828720841431940836180820192353483487092706969255703283627415143370201184312112413579308955732746545454034390351343605706621703971561711693694195135297759443079765100854965756566458038127501822911551879849271239010744961206366706053541439782559209118548101420218412919168871493230971823552095545716711229588186613456029521462347899412348897199953354314904002815022487079369269566376157075509314530175279614745210708595752488434288136864285224398323003836750625821027484934424616230927658556421956744731542049321551238976556474059018606311216089929698672490694520911481290898353433415412968783047484359669952748240250265217659693343263670673337465039565343667179667047356640350239096757957957836157051160135413375090190861600700230718375454681439201571342125240542330362620920776206753588843506922802464097935734641023437679757340470453679879286891105035737242581641318310571744848068709887040716437232388162972711393175981773363188580590874251404547580330664645139863101621601821972221611536868104363480219861322104480855368724953627895611239907525868558495769190053322410417119392750331493097723151904793615573170647200260821802241828675187448968332169857411009943849062055470915550302369128044984320288445615560924996057909485219793101406497735620970905442693560185598865825988767041318965877891089403653886389773881038982521020086531205487578700597648406202038813939713268376991951737644807011253013949393214302649538345668080204903354029578114579321313085271323658550554368659966280851925531090525592810297379762079355438360449352341969865838014247142737602289640235630089063674134863434779490556795585277257009109245399314039537013220783545336419842706497577337495473799160007896593021299665842318355164655812206109340204130484415245769599378947177673097350851656900244970122608824380569704323736259464440770139901956209059298992831641785751293546579944114671362821927855012249998234503298678733837848737061785594716104069833148452661872895101085887251379590557763609830790866524535505318338658194191538601710222709088877133324376917769910958609323106800820737751644054672520739468743634775042875148701497596207832849554151971899470109971487151784472057076077891103971345033501345734139227256700042026319894177565285107765079453470575662377859852720407718744012416503876888464456053177399823988940717939499522968818333645636863389462150982650650538775726053286407721203597646153485382529216972378414553846087218475701621874591980121843976473315387484164506860577724853585508244342988013356199629506230271670233815082101054917736139953489506736357307137430838504163175935967034149370488555422834124100879960630171247447061674090124785647921751296900312333227955075463227037395029902481341529616258413566160513536173282940342863420675153244170200203836105581308993855750094668046750713479035298963379052652721569390042943178118279155466352662707947278283567342280560823973160430670415384943560299283115284176651114492353261035153560177918750822690688820645907589105056254180264122061471575404851638507646891756856992668640850314153094818954945662895950745830289568599842139271278378730891908763285041623469263907013896031770940630646352753253300873570175517422649660000398985691036195350227633862396663126327669039064539950486809023760918477976503001804381014570149415624402685857555914307585949526948542677524104689543127186878399340728823256796776545828521302595689971982811694208942942408871412315511119353050798331880586315337663570525073928395819283754854905241709074577092812682795576588603928551455176889627211015743154303960917921039824599109597503560644841032651827673232727225458352867207428138803218867381811661290433188704419689418282280167885829182703433586712896476552079258500611021192141252573452904095311918966901383491773375352610436171199898203468487554198963128271329121824612354341543879027124113755672368041290397389905026055408476014536272519119369602578016106862307234604529611828446901193984038274033943502248759384153625421834505908734016274488592298340199364558722194416565844065689881901539860884586907286381818358656336342015664251221073571119671972760109250446086707371149839426512279946987517697690189539404483552827734916378454278749188554030530773534807865810167239950006073733364988019710663066266878779227854695914683534628200075745323108215382028024405491168608217634953808581859991332637852950190227713790189796914908589042454682658906399608531767991988558955345187869403651042621740331569524653547378788440458875662516162058924000642489326925451334129534294865184394873681368094508453460526020992340249812062555649851485793705468812818573119490105711023183397144588828411816797524091782417804414513863759653908641468398764863423349253346160773869507472996022062864464002488794596000212490690036981418503013505248144372777284451833927069985782236025424660584206268996206378636804702644319021775150688381170552299154124308994012706651205197371057370822242076356864215882867531507793667121845192551973845068876416353360720794790870772068134173747859297397209537533958272549505829863910983957504673229927866131729450348264936722231342794646534819396690857346475687282246304522633773287197402300418506289328610423275570611818779308016264732918894588828581474535157096289908595196817329956093488820613939581943405368416749837952940090112800575179273368146965564011469773776514685651154554148608588065034527375969321927692288814151060860814189356990712377087152228819127468553790713754368503663121865438081086483648961224562381352807530135142120179779458525887141160401722843652342909455062018664384235177136372108070967226752814082513677638792324350124695839091420819639192587896047849572024224728804617230091624815167847693472183036632531456283379628079274644672147117822184712989044656850794522518832499474441551003874370859634504936683581197801711644714571462375949260091620620151852054854886910000082769257768126832464660329426875816208982152103266607832013005019670487858706691782286625600441626486173212436376554483603906014535774768866916750700717678864310694468585014873080501332767484514964597093669202983994731168719527670036636397747060712391257523290831968495058698935090747995037004668542599946198919270687940597937484231568089148873105138157486073061596627375653883396825563550228629091608417369857765471126601037336902428124129850939471193856828760902761296891626026782444059739997720088633672822823865550526103345181591936369321822524863223239029640942475198229658381446499243745272747142613098548417714556226649226802250775781131781393368492269977407045227250406836996814259230684869525001972404335655913210647969253977594201338306751774539181115259449110056965386987508038810724178033370150518711317247294212132103480811794280379060172784358241103467618170073610967571195381445570051392990480579140383279866485113180617413188366566397548166832845468218979850076664203576276039927411757197265253400810379170129987437606436134169349779712637209626677378102848739197538037745543248180864766690090515459438721233295430389952604300934035903248555056973832136384581352546345824730158297091067030938115052689126609425810369936783783909923607232791323015778938788722731719861070292659257887109643372959272747292144673633982282368812733780239563154295413250255432174098510441921569390866687384961673797249899499382173564320430340280249182728153003695239999676470301890710573035421861135339610298514485737486875825529231524344955781415991689208183191596161262792886074568273007574585150159984012076441960635582313424744873327983888304009048314173613800849237367352140063577811804508266826581206800460004137084184075659608481875641059884852782108798091883935306153457389421414464915269200169752925736374518231802891714403097960558448312733062528743749730810681603379462949417608986991844619863142117897066953342020366971937220806180935910712105797645719457145373956832747346851333052183045411245156651582735523552371299871906544267034945453224825101716964788300465224595820671023654115828364958835753177455065176492980214588593436076500226594003483962689988520334251742722220319501637343213937643520188346789821569169007095389196413829581613237573461873797163184856440809492591787926325989367434886424381928619190549588392022000015871305377000099586032337146438942686732233299897020841921244945060895494338762045869880421700395323155412566680513352709711646879638275958759833035521127718151393678218249533468562571232241172680169567869037166605469324664627050730751823229053164080163684812199761528926783231426232340440034212774621104901436298316327731503671266070650386958836679097520425813359853378320612470583091815352630568552811534283490262743077800710045334612695335718334903350043432264907311219427175903843392237057736382842395596998223931182635964716833256240590100904289936946086434509263268293618976948122399882218580152734171986600981393792239325147154389955987560383731890568554662653718406304853644492150844976530019193849533572083073086416210030495845695272456605739134223698377419378443377078325387018136807652477378321277637552397939087233685219443243482259945771174238642454012559589393245291638446487167530967658144669503550182466119195024672828407941575997445486565818659368065976076768832623459188801392629485327023571500143094043819470948650061147563536198847906342833676572087351315406339129757567811772894785519437765153490614134482562292323509241407904205367039531655290455018736281093099584331165756587086010333285391686273913908569880379033632376998859723502857560994939381846328812350413415583284590610245894803871857335614928205952963279563186990626432339602646699284603937532343660354376073926452504883697618498642062460483418549128515345392109356678596568135720487860333592876094428981600621272819478270966981368277928981728712941264218006194986862931250367235724743325504251823142891199250380034458270500279636401182922845179971812889804689640415505415311251178016560649812862205923000246515449805847485754891683192827868878939900562023832045438420833296417163825602070868752505086642496352170310473609340305894895555384009789350777938346945172647003637878106979844018579306439597036846412058203444405778652138520387552366406350280661122786043432084954257828263990225108732341718920606180730450215015644505412694791457781999636230228213666902719931516119293375446777456961618208257064008836009686341631534113504305512574571173630454964608910906651432180330174438391313752283576155343275962609963664571319175806134892889313050312573266312105756103698166028593049111265673620402759882085281001418590470958871432967370463447372755775608845666325751052882850265867265773404465517521609280738702123046988010869943921356489373989992887762360209256318996033790116524303998897092199163816073424415271582058735098599204141290314491771275640665005069994040965922975637540375391348536464252037363185819414076036675625169320637130912681458341851943254923798299813435436365822718844564754462960761830839976701786516876932709949710334919578997716370484684328547737545335409395483576481906151451113991642397528242450715694578837986874428464870143554894215636412059053351881974500536053985546264548381422839181171960730559424219691001458755362388917116417167736311587449089898607400883593091524210636059927571053939210173735038847516457236053344894226865377920458233062230643251089475980342007604215442146404847262301688844977274677655225619188516956205307251419934139053254019064270190829881420671852927762605203112000679435385022705329549218410180647755033430719553120269938932149756723417576898959576264968821442634933685052512662996636236237425762819367362458461991030032710549597035009944810652439238036715927913408470155374762522679814605719218098159350777534742442502636274996184657630505164874345194834498446395288678419723894537278082438240469594372371061113647378462408186791289898864599101323360019140790781829519526619224634755898927699798480700554312811189474916350696146173250238560394076588526403505625597532804672732515713819317088623222257348462548176510619074339232283090687224711848390812794793772819154626576048893785622412782868429632080881096423194970821045625417588174834523266595422469053373549129017564759975418105913280311003263792738057832026992463888860170140004827134318116629054637585173102702776716719225961115258126532046413967314653199762918918915450988521809163317100646958281118518933828358375353228935183926472142236150967351177496433117538092225157800779252124129714145762414206899420100388743015180652489217319946469495094083521928587960991247447833189039032254457395843134518231361648559588305010250037670765351331887520676781285776779449055197385019325883941909719387131954597243940132486734173952592687994282100609803614406205465730004839001836842663794893033218209048671071359300630417401936244430203169306728503839319205110512011405667182471742094468559638848185839444734030941815928070278411318205382459695444351822003917072477694686621715523521374676448250420171577569997815308089274173658622805095958650205546843791960835929710579539377335595830862291204588796767409395582889657070831941875936610672397024731960578278787615008232667398781627605613145608555066243860199414908501086235986515649330092928634335095771521927676279023709440806986696879179082344244770276805996127586863039472886722994538993871806611155955013223537918936258363138119521466690068249710950676700948296496798425116622803666840939914109821278577378294924639488309444454370066565130657746072994569226242587748700523968318234508425827843423848053308323521862352340085648836113039096971366460853495902626055150948934699711611584600460704345140943969668525418214964932682546539970256414887609931535834690056321281558429714113468092505725737590561099974321174091529135006718556999288846878046699366133001408997888289857053021159235258674369187104889400702260400764137937838505851011790813941930386475944181096128886044657251856672143767477944369518460798518737328062087542752245699105006306007355017352433844692423857207793259521392262991165695247808793559329109581113443897150471764147197005722653017312379608807965818097077451244044995897541777954733743273186359267322000071625919016605851911446713859190289311719520305791576127607625862882213836251238516338016447051843893210316875404140209962079253935060733545070996303796547032648418665332032946430893936502530535034717211810002808321135039953349136054976262179304370509871328626790941944536628384083651348472683602445146806155966433684094682353313511623111483951954348169105556731471802950348258902930515522640700853660596940370543983884750494480220085494073570962351829536566328549105411275678686208667117659927315129199079660798330494821477586164454963352660753891408260349418923928327683012870380321098029818929077345281862010633436093550798284701109281266293352448863764542051540577306346099146646966099774082251091956373188535268437722599997826072261219753911992680907454638195984157730393898276025748261194047985881362005837613785124143194828544266332862480711875206059151622802706748693144153699746935156613088876244564950440144909150936073857988447092229442868035781014352176130876413350562321736663108012030189524986414655820633543791953302658122998984338412386292882078089880675026575006308188515148770279535799321319883002173746511741463997094002776118771562190734500774822502587448303817947975629303591487306807172139555424396441843745048115229046069631067329367050890171655823111997469192309073057695666593003284397884179433346983209211705786895349976509210251124813814740003005580662886372247574239139568922353655097536229970348825154483724553153280301255975006939572478519371436296358289762094018768185770224909667795335075748093872167057546730820025526473885401830503432837144757853593303150470249316245924985778247556016367886853752984448458194461472531758097072872744539037844387038181608599286175559528142530843909322544761338794777141214156542824371457919569749210907878886353222447852103304349726476376622015543055102133062258767248597586285622674017393627930169743481150039185967100610854851730161614469279520384616566445372300804022223186681938742348662009704489636415696630633350172889234534213904652124694488501970678244128895487152610281954837235149347059019562125196736914527102314908589440805404111902833867033733412945664389530813971934990197361008572239275423550819130258819536667445517752661542159585423691451095178753052204102145506662586982471050365141261600830246435480143327977346454353904348366011368539150678541412624889435222421101754995114664973479190466097605410395306466089664906743442677511494605418130852365434274502784968727500605596706899710994701489008207626761252101091678881026541303256138735424249761819838690050803418637831929555311047813714122750233539941852532741798121340707928577540049661935104301779786816996070041711853279876470665939722100412187434885641035928232674435395320295317154766751169870656643657602632806734431178712044244265961576796366624544355582841788049800886263172855835709413366160975839298377764236486444372511252129344166437608873069699058226100666969752977395566495072653059480758300612545038279717923144878789734527093682120020407113176725466192405534980665486078176534846565538917399241775533579177386816372301446421500797993678291345284510038042839994537051426809844765319033302180660584823146012818785963560792676865383124605224853957994439715898807488935310397729132186804155144151047242627169587087719805182439687794435061081392604954312473536331755122534466291205325813052836393466875811293495190537759513591168108436501312367922159957193472443490512883521667959973431507810354760078679163553826292783642585300671322205000175252469387847888717262300081375339448963865467931902550488700381881248144324989189535345154207368537132722760796492282758372950712392565291846977925966389275685132068352415425227141682848017233790762409972664816902656183690556617207681921469260809492109094415544816815459406056780814846117066412842104095988460358628333366933929771189887007805169371418590816547489588439365861033840167307125236021351261281907520040501245551188707143351972682745639348528555348275510431458422129518808474322592604007327694884317684975615103620934137193565213751804365199071378320247853095106341616048391217795196153795819526154613563054403978556182857173214652759947666086674316166676252405568310406158937462464497351793355502465442361647632082104236344646596364602642541279135078129090658489627378141097887968437492647667576534736291738206911878341876052080126716709146828713131519812158597655353945341985526957069386499097951435735157079417828048229432361092657251160998161895646924587199940936034854716421707249495161763262110070150833070026341425421288455018887361843398427037049043671408391015411116043234920642955279506171641192116659949304405999082533067443250105995827366399408524269302315003096768140915410501544760071346141170566790771931022343591178785971897840783025875636490975045011498605120689856742459687144330208258598635680449419902117667246246930062271553175894208374445945572822920339277409473763523416670216883014952363808835757815570965576436018370381459566960499447798878951011513221034109942870916579527776345965294820740610245159228005028002105159166303499488559271563661742720635936096499056159759393429302526193186022621540958101492911451218781385604978052379968932732921269012901569357920248895450737410871926503568928204800149123528874307309152838579872032166608257458692972438998706569278810558936633098598947964337829782874268612434362066637836519702175326137173120225596517705224078744624122057303978233886746517731903393552405607647158314183440720980511539803969486168325455226837584202734887704132586451566425057859407009582598890696809120283334956590815933169884415443273104864598594752572738247244344758140554050985807333844981997466255235367576108455443305366255799996406206204099037449418391724670020837647822707750978754895699162954317272698464799410597503318953470989688004710084068997387385597077210654567673201291094878328901409973232782005393753647375030178227841744633797769195519056984911342265880628349835348449657757066618068846784311389727988855051738361416379672858762905198475559907585332472993230202725307906639175378645864811687715874202770809063854612066100841633719343316756812694466699440822643249811773661789393905659194552028430233042984120897273305639898877261787584511841894190496808643352118340859925728596709307241492419115206549916135786297033788006979437451020700789080798307631845194309608758268889308319649828132885178351687778003853742260534369790252893738037822991733096427820388657664631771657271795671354738644729079809643195123332999328238884547087907682075073338657476922595693853774291437804092528893158624671522153721617055161066225431505041760392710352125200825976145784076175072919922666395787164521701071580872879059939655176836480793548923095567352344292992479505067436962020524307125425356788909959422788725476737612391806384886340332760762211207267290178971621160508428672146524146597277315137108958883036752736961633467594970428416300993134266092870311930155034316757361778128002223283050625636790008949383590101733277255107370883777285152375790563992294646078840101724039560262750766388944189760868322194382371097079621854206967791684168678058556333753316456100042665120699669842338851074300194104595759600766447680075789314139258719327995391859943867178520373068944304356832054626708243087374656803972986593612886092835987420667636708163358482317065128379503226547704537608086375664381960748480876967279849871361237272235035434830390876062053614313971666441702481124974936212135829769582335863043881712031589812638646440480095743248299856194986499487071912036391303574501510289891338507314040854903418099390824488309915108321761044566412199868935841880182227214462777716962533305309335100590662861892805961783670865964183917514986574631756176739061692280195002261924937469655499861423310640288000317186377302237364076444059505606130128677831003875767179124699464317237680351483695717298215145352684114822407172307314561185404066173025726275620399838889747384810892734653082310524633233483879048684071932254072453291339632818267359640307128218653059732445975996445181695488133585305953952754374269997062835572997694494869509237227391164444640564466267984004400114247796124358152710585747028706737013819380278111652737564080519042194194058679208762247686044017312168916960272935695301656077328442123169722134681429801838590434916236324486079157184741186570899169186977561689643808628519735083869953985002979417271956036710491651448458000911464049806485511619556938370895879639328381926831944877867680961784046548487399609981208367329673416300610812479598602996523237458727691517468303972555351507735721489560178334329034222365508912140740980478209462053854781568252323207535063089008267068055303058160176605438910563810598434933833926097379495319989849394462545582830456753808081362083204047451247210472508241162867818516139425152436138700749418781240461476481225824496461955840743276925895749104715294317901748938963684784469860732864335523275912666581642586529904476280825672092841632999978048128974388180386086684287883483323846615089227590321602448920307667592758846202310019214982152906613943105310608158621016964810784352217531941440254846896184577626558568477559756525787697773232370549326483909706969564982412039496352001134760231058424799361773245330542140020559063151880394129265077069159421357685877353522019016419881384963726403800229905432939182569044976803578680759742345955537367505560368224499507375662692633026303583777978909037234609946853984228053156673128983546753621432833750467358583726520347760607105760791855815977139678448440252851581491330795750737572558150169380317014142763579511690943970826834166015860128727109745448458666590211186912720459250320743059899996573314644551813867573297863722372656816859846887381188792832317074670541596513362186843827528599590004597372314840502883470227059810447425355698406676018540527751505487627279161001142229263405078473383350456259112652347286929306120723002974534425378523801137203471373598345304144091828847276482812422146420361061474415332977954380375601309384453891175472168052741923981606055321018908065064367228536958074796666604004768780867590979006673366900485009202320031056870647172793352979777486612865471712832296518532787830786655361650185607328249467421661596671289455227699679937956721132683829980301293339912608203487884804974937519127695486326319166713042610121763095129269850106953696626552824446668390193956733686465328752130360731202212117823808861538281201579238190123631102335838177298570009655251501655139090986698266520736100100399934668099693263300210432504308780115834097557134865524365672425636234127647494606361144364734972327951867156220610749450910347159977914776995818978769184312571758991661113093238582811769135312619251619571239197885603725740949354036969548103335422156363103498234459243783178002903263757733353208905218634810239049364446431640447817241116604176846977493340680850336032145557493195020774151310729725827750192874140066834676254695166488914851069024948238711934313876791269038145276499845796326388161688794396769715280622844362677082809705118170973642265240748043912892348421146189135807849991317779555643805981655715211359860523562096738304096013608341148491173067403111801391811336886903395297550143115611377065253657426561317037390470639305277884117574287568055580581868414950099812482089482811990507149000119387316232803666897971341860350163555465535762650345371720824101320082933868106662362568171789919698262699582062841124140882479137977529010394148970466677707596863111412988104319737595260941924814012286252376536848021611442060320353047372936879524240772512662622530242433279755657772507905815160576959778311768060172960493903179417406853896668238358539631615141427018049620246196237546347736880009454256345042424438465724189133091343667431625472363832997822032359233844059163901211952744259305253530468545965124942905923938078493043691955476589096537501526151507559590550430315515114263941062851853383846800690365442632518146562680880901231582319058280274689407307344058557650181520524932239835571122621653789547588686801864057785230115239530374727907065371665236864038326956518191659160950156735554953061024147614207415248432408619124587596852436225797310039739813456293181454745849963240817786950334851338769892873859620051412785587612006040745890371415983150970094252797208443675888650135568003438157223038714472217415665883064099419965769268507864813948164364680730706974546424680698750356752764916398025432340650561317743920338236817015064436680822993465442585170900040259972949111856636503094493990513635796533523658761100320625991968252587651012386601005051515297142020424143251817991309825125742806426427053332685999750598901344771533979259104133584847673857330728836245462131039374964205728969698094292886157697913120169594998031129068660422497680752697759278328530776439204441379967727816104759030129372738823601967895947865162178081452861582386465528834364833181285473342755619759999914162893546267702304064114055955199960721691633503921573105408197341827722268728025533699968085819592425642258537950283480614923420071024351977494818088484192325773716226893247112914465498001976387604758374361612679956556504450794986464528483855480441125509553767983574910360813684477837860104609478161394133644506992069193029588742354703186848610061985180937923870181920740040211561711840246428703374665777857705848612872834948964762213100683306889926873081504930497925982583837741052035674882295519314445544345371941341390688255546582615322856829673027343447190606832675263185109533701987352095149933070889581674009472751026306503437727256119880041570561692086769950894468072056494781587291743780635748314496836550692120228479548230432079581014054682679202678695229466802290142787562517635811649766612761435527256683362040322797424646097353853644528882539397624170922274533590633021985609130240041142189947676784692423407797442326551318981439308902101560880964669714775097867063001001168999609347890531908075766498958870018276173968773062685138758645521593024659785047621055721012196921391352891785242374972751488566876717061881170562081740356778065738122572024421705136554370279636733112835099530475514905514905291066165839449469758762947524277688699426308120533291564023679762521055333140839498996333860865710239801167550500219654563537265205336448805320479989473595872990330190674594022923695230162212720375701924277017999428669703343004847875218734442620993889932327989290030565023276095572952616034505699521613853746298717800587324794754277806131043637214247652219945342586211613560403104647745930861240662537721104276141612586440237602189586032294113746611406966794976669148339127691127730023967466710802720911853732362032262519811208842570150775994014607657809551557042900812427993079002469947294259321881549553643526135549263619122111482356462304916110776591121129752567043257830552031884328595071065251153761073759909923029091823864135151452786475001977941024385169479386433502183424887359387131431812474079725512957840851453588064757910160237821712375272700607029710000192443744957690862023008201944034801091142242208286292438406004824415962149381801368525285275158959704095758667511655330856002907099610694631069298325749509538126599546592969809139103008443788194339872253663829876264537640694397183934488709063523827190011142120844068414162590015669106366593624572767475076509393287532166808937715961314534431695259910478940982189713501807103426175962852538953556943626245239551422964583570256170471511674616947447167494428979415090896700213206563194433496322049242882680972375693183916789043176112681955571634068252423131076011488578163115039090925156993894051235694723611032555615982645680071316262601731015904158347544851618658968703005279967681698717774948832320114370176354814925400623888803346735502470266375402735948685121847897107227390820801195696002593887677074181438133588201185690342663951805090367739750633969123090836143375776501164542096640278794514601502527884398605458953226908093051809057429423133255152325514521881371322658968988127319785355798640767378279711053194408462396907141542891609488794587819337549388237834588024034367696840980884195811464437988802844669980575484302667763897519262090506722488562230868205414031058166018248775046892615340933714936632037374530111294288469457607369933087071776923528245696907228508573462811753379538937831750264635773885939923884942950153175582200312979280907810381669460706589544825405915182427297242073390131653271566478276443037335332505888711953362485151169452565374372079279558587868979652493118066485954326526700212566394676218569587021993568833708555639017343059483955293356437829123085966861090879475630184809910093236646869777447352577677262667037175977982904948275869291119209810468266632602448511282461046729475224289190321933482574813668648426060581255916959991632992997312634155119917244823717932016743534223714352569064231201794966551080706679665505191064633778072067035116106287495465016083594965425230697674018659945133904229049485537312106522429987141785351653611698749402969985982789669191367304309146962586124578151275200655391397826570630131946985212162154747609778872642435946863885782325721778215320296674917197442567537559122969898579354219384189602265962202165876551453072489135407102766547608093917981258997351363839137732220452660070301893359159273562875043950163187555972969643094280447715848361538360742370456729826389787950132980271027786501024164200147742282008481661895668009485441067040228282635074888260241134583709308238517323552211200323694573097652298637754160119916049362002211349352252602986568586652754879565268199992698192244008803939885453992982427446836039879468065573178858666458246592289456400411887477877942867565879648318733613386392218747662867840023463701601409484262806718162813248242399533381478133147719018236464967499732786689895154348127070908658469883547629172439513319620047592757361589509248825100574031158858034128934849464605301208338502995269399099148216158287204394331096983959126747306984959483193455553390888624917986030641167956194713566434416837741481188686789962637515411791696813986385582877750389200973734375730389729904262534897615859248321009024068380815129305629465623427461686793756264861215653196184780031780303515257173710703671590128849482183077025921109098703787291952920082544589560817170313220851768246945411645671085638511700543349239264074130633284331891880812108644504728711815725992540615045606249010299061643031702604880958582381266962740749270427338370983453888094181085541861676649146963343514816987011398389166255516157191227554451931756066101475049768786195324839806399410044733107594771596345861949494667320623828496884255788731935000797116758173473322782943126642145755765231690877755828103126432241866783678337804125802021925097630000640573701193142056526568018092552032645631475757242982755353882806163111485041078372679657101893758521021527811241433533116677518435609197647738593634745560802774081018224542328986773445218377346798263690767484447595434410823292267460195575772190798233542629219942526784593131652018682515394119787592956750735759607424035057378427999516560999618667637761517010280171051758493192911139882984685288230666813697961768562558948637246281655092051514409682071369317215683064491444445503481723500749376340531321460860896402901470955691428480885072561542332211732294192969705874666509660067980803774155162765512192317147556733383588777999426488355166969618904558410515189419296985482435730529220907893118430490765161574856356740642009407330478937228388426046358618568264483288359577600238464300438637248689257669995439374068530415804253195368842671727993279566851137055169805528062145402887405887506073648389076832319911660404262686936561443380077224966680513753090609705675554435170587564735888131721694795782381718179284770338574688034123297018945926263529917597170295775339493872319239170757546533837063438259745462390590366976939755912240702128069105615421190114883996904281817078576969786516950759271675734992429635821619257183928688361604934649785553482485747781448305550672165756822794398740270111463793401574436435301932562253999227752668408659326503758509174930302866636445744305288124422049177811956243196146036204977838048898711640601443245599498041485576081890532409438946520971113096909418439280022878944829921126870731473032482992193528479694951576086035611046980060993330181537842877389156894200569490585464379200484194780589472894132292826016178933929115452022810411880094191111789388110882716974795177869914667868574610445734105520927296132041330083703663574214009390447059846119594314778936174452176451857423142163465449624472817983217260226836106124825921626279408741268100045971251196798679635373622800852809006435338598112100551953086548029967071047152662100609127806842639541766165022104778374562868176446744848029350084602382340795000299765471580381611676067703718801188348264445635982458072772889326710200849210672554272429660015196393431551096972976850518024580523612119607153056833420422617315236691207211734774420646800346193926227334021561701329250220160568518879487774105711606459148559247157780410210339106809195343006957592091411953874666966499255611014651212758973209711030103256621848873715052026646085889290090349617129823476957216811671558757565714514468339720477092223113002163769110992300238255488913517083279052230864007802435266253412486590448645912393949291678069646402382119597092478473511699909277939525075613131964904939225748253337301142780679294107916331617349348248140204131843274964008754946339222444697622456497378081221395464460041194891707059642907048493642747739422552404061855617209469743133052969419130866926821833596516853037706804957119608387620035882322834162169027132490859973746570748658490118825198367299215853065357977542606797639104878567748159856776210220061754395646944406160254026484172055517074621204289677526462836503859217367998331018497128249964619785519584718888343094761881239314017484190148994813522142862461049174135306943722385985678005871682617666132087935922524536220165572785860553329031794998489916481197705787440616632547546853717251151839155284615480839780489955036591979178730401045674938350000995451158150042137330372883275963328964643336466754347273238861827764051799720748473000517172101756902709120509155974134691964311730966093141567745846581568573900953907264476295399152981731676423187999232306523246083020742426529950366479857222640995461459846533695462508313407555998133913110295281230706555740372327076573703018940666617642387636944007486578482049447547033778361490754118038073899939333715534137265393135983866885946673574692630418482534960161677219257429290591122113115807142124380584802844850945673888226607725991596812252195042398803620349170949819344950093282465573038450321235042630366997805247273101901735840138846409945323451424241012701540139381453615641335984174882964659670358913718418928500787976868099263048010644072828680880914946157165297187838054040031422045289001385133913006623394622338516219384839623431635469078563727642414747512170570220183670961603606181781247147023890788704012417090531673966324084951585589093516448381942263666906974337012999646913885501279146403826614151630656810260989721303183326397023247650025500143602452092056735791087324748495735198654693550874466995665376899510450993119436419430869110530129165267593542656685444110560071506819934558675862308248669047635918345100160852048807732554628262608023530101053256439859450682835581783261607921342863398980715262220397309838274566145863325767199781534612886622918401300811765791412682522635856404671154309665586068661689445849366106690687202607722477265282311998913132754021411554649991911007465154553982026368531622238361797603649372715359062640605882770220106036828487018923405851371887662246014635567174872599678732371423545887000373186052776046144223914619545903292670053816703676661764479676803987490878954519074963919385602048347027937312418993943461268447562422234807693485150755174828476868575595819096412052713113515782547834099118519115469705863809904872866200826276486892364471419231377970724589500715241775066547241047845699165577951108958982194084282893099537855584724134945464328967957678012862468063985139428362597583678433416516258550138763690955926983748875950868390656405764075687974705730362556603259227930314558885981246571859226048847812779222937293993740953588590950170503985623194055365387864552033050427302522335731814953573398474980705903723796965758483956519105425871648273564727162873058161388575571805808444625983647289701630506817086086175284488702588974925785630490866263308127901724812938105149533752766479770654207050025222226242231135282947024973883914283642136809940802296324899355593590152522612212955555840797274172231288091661399820581416644218181580267778346234461904742248408640004072154366706150426853119434562369184222843483120484432676864299732930906796855236646376728639620819645074635742841880219340844128250481885545156201479204216511616730674132721674930743898085652601850140269922995710984144979904741672045957850265685713718768548859855346953288123961789311162046687003603936960372119660696245698863418881697585830620617336172655443588226352425107104840729109316768458500197004581233663652141880456245654397757863602326326470364607647189594826272210637545510634386016823113730063667144242856408137128275565753645632701252565066707136378887525796582555674516654652977119113175061586666904023170385197072848025169161971161334540710021279245262990455464633776959798149808017569561471988350353332122473383369095524324443297914554191747071357987226393774688035378378793839533852115238106617995569994958670878837191813916886735574717451489973523039905587193443350825533584251935141799941387852915447052050287278160855761633124763716325939854741943095489327866122579894433081564443939779785335342117005471956213982007561618779838332368344560912179261009336960032808307661432037161275988573497996588422444577538427757827529905094708815660747873748115148954071442089634297641841947362031935404439537662994896425343795722716363051821584996845791094715071367593125958312000057858434980472307562599077131618624609975621265937063276140078123307276244716719218672319421755814104199836300169442124995479473377970225070837491392407572706927558828267042031921994190879346513982909022103308822900554296123402663678824235189270401069129046335211155030416090607536492341656101595780993490852530030795479202544275314650383954677397842526152349852989809925247087705977019097175185235994665692558122494294068721856669989074241167930973027691615563085378122031667841084152536458544313405306692885119809718543986660431780005135367296364544570236578686237369433021865655481724933010360428978135243639386253137020488204084927699131049083370689934898601441090413033804082787742451955973878066912017731600399942785392064436207430142975319665368422278356408123405700737404818073906818112832657968402135819677138407634684612545475520941080544064491914444410116703796000650096998713996820607235318631151211715683089411645871943066057792719728201156615923960452717874742914099891849994368243050095261990257674342916190114780714705333753393758001246012026266194656342527817037430207564565943082516118880805849803345165939713158022000488225544509708608087361887882341787684645680282261296818844070460937020148261221549228887844538816765870836853435452958880835753457292688974321006468080792833937860581046628952586934102863339420808204596487955580269038173535482510810309893638386011133451483443652345166305105799760729503068911382418463798867528036981307451759023896240561884825210324428071846262341297903367949419067163408765273168302556696763455579884731453390761874266258185681023718763099800717971789286697418874906180774931501490189818043592951173353404224705965888136657774575946292644146926052816079619010933387634427687616494579168167400759844229420598728174061810764294086957204953992092978700317992024458245874009195298846564425666136462943131028614640746868405398228979984639222893712604882489929716150334651824761358758802466682402439321324431874581423524739172256074371432216051223823950449477305536266686479338346281264413009984273210761518815516914468299667097740562322363931184549888827293799912967481417130202713478225431744776351124618192071180670484296941175521044227446238756646135035846006360583315319561044586613790655697130727660609492382311802986052431320962770732640434855333959053242534555885935113432778910745337375856090138086619403272639954863369320434231711913783176309275442578397823543202891517958356844822217054165302827380983911862900603481279797494111584085594402375845355276695079382403806223492396513252444873369715592524402371508631810796722958044028232807435123915104033618708784294952956211129781065420892052359236162986398708984375767261275396667397755663901702651224807383972746162677423597865127259225773166706740519795085126616996332007471656997316623439352931192496384363528283142456803856883209936385003012631588069991574304679173840311645815625836134578362303465454725293142743708723968855317566932454572085272358257986001863482261738992941330828696319730708454098951027718383332412738957397376943551926008249576502189110867545664340439794453480819856328143694408018707417228252759949058310897450232688931263502699117572415594159020790433574826542281302638439703966631274168448100416436933069830698213599116435102996794314309215825691539701993967159203150981039424216342550758839234632807669682105882627100003171052874090770995935512589920981369229466023102145183025038167224580354865363055046176882722251964455204289650916751656710470201646724152178244386439891393375127161646824125513302093829506082768444437606768651478513496355269689905694668343782290434167063661567139954262965133575480941461185552182752458060786320997642627058852581458018448634988981792557758718032383301305776923609140090148222369705209311267228104414330560415022515654529197127721719502361167622573791617064116184513373089267757376916763139033666803007587431630114621965835929591134655871409687323674828326142648228935197005375044467267469113941382361191687699366529461166766477650379849165908059601644818445206592395616838250642277246592838870266918458466609914746000734406037269167997909753414884382816460720739686514406465398583253348190675336087125008359193126308089071814200608478576778055180987640147627151340763975609642691260649977616208874952468476222381370875356200612037777748256618653537255285350187170446852366920794989386436328096856489966800629577038450082424551810043236562790960522966171065977097221724509280799096760715289714184649822278169499523636414965918434313300321444254530514499161438767511381398195389561073026042199920837178205088864091136033951223865816083699565055553637229512702825806952444882773871759931386454644820262013888607587969947812183419570084570847249328969412218489173046159715272407849702925583651822251582150461345585846794667445894271401833258945043242310267999231117902834822567652772600101534155970986632914275918542997579013222274930943323286177353152776027971222373258620862569721766317915783873361442306075557489763591037917459458404286704774780613406680961196567831184916328443238564013669931676516959814374309282490061711561274238461786825464335932088433591670162565309287540901356507171025181851533500752708787916297949161532896109601113064941861604057319009225710589070617557854699217327006834777258470234479316891238567578935044332497802531900307089240276310227218201413447599535294821530145312361530101904739328465089318388754990136813734724418145284612276625956794246330816486648279630287664035758503516755134018897941333973457215551137080135486663526407554503342009612161736910336313840186103504745949302651596313537126525169830797098863437834128322988125866229300256025342260273771320337832907020533763611151232783445468993177331591895500588683302125776001310118380421519981398628999806330082670908237181483297883410289866939291379948172439735483523328199493524375013705088411584730371986363751463397092583236845499460888666483331297598810301313689132496416555407058478987313376343876327486932043395672252639656228736444973832522073661423102213993965101369196225394650874142609034983850099271340037473591230216991990972226173936551909568008639520077135551888159132860235457090631681661705229638793240710242712557169383690818130773014437678060056849642387578116362183090489874781927707653382601689360102975789865406069069940608107165868715293921246005941549198044802074535348703689643875408143420419464537596720571331821867132614476910663367255496176124699634822289140671431123231431790479428489624600193912341708691931522318611271261496355567780654746410642050415709606838765746162562169885651128171067530425038467057357358104085732972923178836446096582850571099803311483443112405921651315223753499995871043053200513026079463516827089631994499613563800097636338140737738799587133913018511823585478777317625410675635640767488938740762812140924090177026925111773927198706973074557731840715049876328490026288418623820771657649722989866011861031793383576313200066302596592336047254060581508020902399604756103803135287182558125112177941873648814506134205420975687669485124506574683979864206392407269284590077072434072296996419652731097088680614264013888704093327748602383359856373615701721446322411979901074506742078106950355919372289315235452703743938160240877085817977779390425110209721618442215204348376416495322192369618415911574631558466875061510655926055982619436262318757269114726939996698843598571187639976386790146794415230807498359926930359058731065531840845199604137628619385610509325151079841394432552997122679065849987245276174953183325406635708080471233645178846844808698110642779770031072054595567061706617189101265285921622800501703987443691597268692064504864833439378982083476258750871870934012728938416480251823585639038594441283957165858188961469742756414736193095685881085370374023753018400446012453377222123396408800074173547685660330315060333696253617238325570602328387243699122815693783139897666844121154447484950169553861932733646754936072117089460390071218672224537833435868711122228428194706302846534047866302384674701916589945270190060520580454311946566588663126887003254479735099913876132369638765113160822459274472276257953785368604152614954209437346168506058505234271133572676675737138000877769846229141249872718940789991946502499456688244002157729067309495955326438789026954323642297315139580795242293069649574532047060330599667422984257751047562241718608783955797655790948695715626066059158736994783118218918613011408710156020940462106473300833190730368881492258990731337571468894488510703538422027699406617586112671188997882949772874983079285464041966355855662055602441796342656148546571787330222543738075839911203997511964202882600522799453416991284371913535209562960274699826220378390425799257969017611813744572532341357496806278434992856382126862426153088785703653271769612621377406531842973339295177522704564818366889596333876093293043080475589028106315626670367032398639236113028678797521792654376271353523660392666613705167884702031498572700662942047085860390365698383870979015803089595661340359378271105746310841331421378806502408286897018732371103186099782193942903183040258836838304697549407351094913083934410288508133265085083180221846103452457252064038827121192934698840647098253850514699659173701416091894038502349452628187801433892969314618837188710381674067125988847208897543464074464781459727012551386986660862320600524967017403464848311251109760225351856615764358428553898235814783465047515121098298541443863366236424622177964046824270441509222932118879625362086539545389107880548797569478991837235260974303500726581722989416104402946025407337420658548844495068667755340662961754002657143754044161963969221545182094544643841829579324424734672376103699061751982112803576651951245441681068944504351160981725362522784355865797131119018852804768716158718135990407191200630575500481004047868395438766336577271991065375427708345271100602574009034119085774948121081832506874155660620769905013119956065945386033737724349254944876091309078089624189354210902253872286869554057592800283963389578215241154847929547260895715170916011462940645325530617911961255694093609647773903987415071389566402130047498802579516037985673385640844142642360120127961142536569535084402212092766712206659488024887990017621459231032350190572771161564068814121341302362602516475422343437281420133702426685579889428384219109129835933930674494625127105383323780108013765776727712015225294703597532409747191556490454622425430229910732872851157687491108655636295610126369334854939389547849992045120091756322745685781924232020637600789185827416969703248134453272041185835270663792027834656832772674611222657101514623924999914112981259755684784467035934148683765317742536041952858515712372270299780488645281935782727448456531517826771984604563840769760461758367328216569794979176332821576358829966757114755301619102469695120015999375581216626284790868423159578742799490693925827033977516060606369979897479666717331226165441071675373596374685694296800271733158950710825352443486694393182247227372616971749599215239044631883120317077665846475615861456567884688490546812294465651727841509467761424083667933263904820479269318532062871562630639070304690066879460792914166193742700411383551331048025982190510353185203169925884143937380586627401206786390235491724476005709419797306090436675423520207677909264311269450945416400924781813209727088304825339219277818087616731373970041756248457277877671075900600789570301401188487851123098148915772875175640848841066353123599616684814565775541534128510871891613549569162526444456674084997166903269628616707186174368573277214189219003135481745017315221106734881207981355202373638800254324693339265428592432910024854150717490881802059409015235766697079731197907236834301661129848826855893831697047979316583893842041665341604868370204840907294161995427834289657031157119048348767756963570338413420389866157774285645495035031486040343327937424969729909857029631297145976422551133274850606567017312289825669734747088978711073730269750557261106108688434011197409678725294034456728706309050393234972973539056069120685680328916905253188422761809520057552854173075088737167024443033211492169148414228972089648647824025674943534673250950536027704004244343782963276510355750950497701488964828672672130582243311431654073257960545256793119924834416274576459128964597826467774174447337828136014419594102429428137776298529491150956718809122308273109408193537186306496994003937456945567736629326733573010914164665555116684483899114890258791477215214560818767354677840305197525949240463958540358919410181578403626161178428245962897736061622378414996429038366383432254132588793646017480206241381496825956934902411608801670970171312306716504187226263664491004983823896569205704596269096639716739053745193251998535016404397489726363161869796014350781752089831229427367927146796679042862988937384223983203363220724395522400402378798295873043054194412599669293130807239780160658251868630698336221018900235608421041313676035663176354685122330398900177075833574392314792385652584480612444231327863411370398752769794335611753493760487726078460560327546386686482553425623647947229574156125524445580898982035471676846001580020695002814312556500336734393484528849234734635446859230533967466466345318932466660654574010794583332166192410662379501800389821327737826593532216970718378293203067797258183324517038439399659428750559264647485665965954085317371591703712521680447597014645784406929083086557262698862774361346920224413870876929366245555607918873477638655753408296369851669869360632462553970480020340230332832785123171225277638438549845997264592902462275127664940049978324765211682369980938187803614217758040879857017502560824484100981040137556106753602625998066198143300360801123890352162029146218883608898782005800664714664422443272689203167534508600293398940611924724472432375965375888913926472431457859087107454991920844689628849243752521867306609276643899619284113634593112421891438077951043468670684932553037705806968574773066567123570703930644343188256157991030522472220381921584380000718645407946077612034582600017117977800352239756134817699529262700598181717669010645527262504621483886313823385640856700309522302559582631833397777928743283402902881111996094698407607315013832220222575898761085197694966355698204390503548178006193486100963070559197035093196939653356808948896944732446670878213823304378651213413444228549593269068347046084596770559672698957447225776212639283780726758260373350774676626056942678125438066941439018558939045789441452816463165107102680876890072850317001501618368553583475307736838606863286451467582990063308057841737851590361243022505145703278632406852284272414509350351006640821815318171182830458353296951486600133778650144248376944087500649386627121516136658197233561239555686663279677666162928299655418913366386602234344506818764146745540699215406870268612066533419188262507754391028665753071247063632016450793635522228782812075845961276934959482086590757068422369932079268563813451893423584932990697720448733953488815540304762346742338011651142073679017628167845320329608585990671103131747388097913958763165180401767836949056831687244982742984231080351420327815142139021634490401080543366286043684979055811452615343419707423004368975166515237987640809576633841570097844533069263892578929626276237708494549129628265209474115217766961961942272587471544886263652550745697398725800968403140743965654476188830077418120826395669136112366695220888514790619743489215682894500876248476579844282429837848918897686891641672201110772714883798833556470502459183620329081687062569920522872348397600690266192244603461264605322804910403885589795225135370985802975333132403959397669463538265864571168542625513158623790263771757696721300533905797833314945605101283052277001503372129951513909727370407490476362665383870240632954093703393508729974381091182657397570619974483287540018983517398728989954343141155769999218747979858112509728254835513718928540473421192570852234298070488481898615131948414829869191249558221511592191877345218278267254047847599032128336420753914240827350482240922984628590791969076261069257730451849241959005614094357202440142827079675511886495191448942820318460453498125979012936274806792281882620387832910273471614137452264220159045867342053698959829778193407138557213413760935491925603792157325519737368969418491624257701903490641831661944726978432619960763730694582562024877725002952353937140332795240406774140886717027500723025034446569439417439210663583923911589053014721500935161291609628318163038120084846490328114633474715842819151666599798404388350972311246334386222427804030618212961676904815751573670922220903987284308144456244972161794769600105259668541691541681330578113750698989489078552123609655111087275067663669864540371688046887811246020036804643141399420463482711802476697265004630525563939283142729972561926383807096435037792519196121990047574303684050565154460534681828737716416822371152874656932888947971451533880986050868133366023508507888528275986905663279780457840912524362839620285483639884074568031318909197788609452156467481107464038743770268980897970470887150753698155905882955024609552741762589140407854576212069493073053747355904279461811851944467387455870490891659564946646896838890116067963504602583957735931628070379051865147866997955394490864467393958454068372424599557002557801209111741527118720873162181808114189792507991091419558631727288822714450379205580117813043995432780908338203244480913050622547374094110617957519133823383602430082838609199646423048138774068402896713445649389641598844326380055578231683529743528875543462705500235258312147450382351282898019871884676637025591445659964791895421988274358578504650860407782675723107100231677737898460812606734024569580817962986670868617441078170002689372741247328487159496150791152402608261891717514748587202472281196438006094350145843600934540255369685907707243504381082215161374978573496867163257325068836660597379046494611447707447426512745598922183955437215238261620204020322124851809591185107812641977394835379528843535477953863109361738693221553678071656069154485611508484286480977355097424607235445105933448165688211191952499465376142528091001961490064414013496118036751800263753787348544199407670575577217571520102651211696835537369461930360766601114416093056294325272828721355540477827987716619481691495666492270332995083818927177227773225931207746151867127319957646607044301707272692599092182957068510119432714853538435647896864033735946778641537217319108080399063198273239433916721269090164813385206554867806451203505688021742192756822737414500426642386640981155501818928600392143308398135892830244151052769701871844535086501250648803401243974028248168165770003124778034580977700900053557491200510666562368756368126838594394632809221005284984764508083037196277273770722127376519356494937118627406623236917896380923586703541250933967107160784752683006923747850825730926181712934281522807214914377009710584514015301805837340514714768354584278605531391814740714532987101664057364714908466686544548436767568003531556593355088828696437510106031684730392678854025687954359002543255643145191506853220651551067190794716435226950403420569940868761960536383225435459453167778270877766763185213895013580300976622399065493904108163652102533654730386012249792142756038842336314062529481748808949613331774055990042290777047144776599088894698303697414811580796508754738287748604246941531757264113159621128665758743344471850507384116081875491360482601820193377343678499489307514322517441004153665922574510503516329643147759798674113831142767471183483482616772898318198706785347176439799205864947963995810504801896176219667514835325570883162376369333061017800123822617184643641003261771803169172022385278014730301061029702395028848723083415832423163860627166230986800849090929234570941805847996004459369190327517550063230733137398894395644563342551400715917194003902216495050621392874215358419284665370534484068558443427993806584771096364798501410116616600240002169682268888275826791619038991385184335450499237111830843940199484889841833965733251701282818552439577784641258262532641009189800761605466507511342293639795292279940561269523262222252486510642072949342734550508125347160975494018088254887000297369379110285926802069607810100640545224530243722939897801414668783814420142184747396006606202277227644552178189992506719454058339953196406470242780369597441398405882774311198191689639179251726634984173020739954238057716649074338656499913261794468604067622775410572219381042555293076609238368478115963676682255138935602244641617994456889065722908376814293877408015555446323748476560115786671882394150546517605670540301796249325431801699627000645774003143160545539374380503799215596222854714895088677181162280190656068422727643978014581969583059571387557988097798898733232415158127344905465954998406244885220974593658224501655471469668636884357672092723532898204628113567296398937268135381925193611354563898693378567460332966081091815817257513639367017393049379960424618521907546206127697374836086735523648984434956722328104176357694490525940145542169468770342385405645472061593182618712973008259905872278931108693213934644668932476500366388778652909060385564481465456498522793129770580415109072820592138692469293409650514200888853546813341873919696697133370793634231142487296607744519615915407052373585743693477425596070152295560618968721652312622653939583407880580919893031579279406769649467385750704545040320070993358537852562914224318615960813707854211710281897871025273541142307915801439156336903021986743402132131705343211578648031810916100715073084982090038461392008139610496850446221482125263047375352673246789004856065510613031571054198313671252490076760261847195765555663333827631634385843574197691308997005878560450021708713196027062738370023956299040930881304443042102311111901514100799683247220678679554270155108197555713433239842042004847780951459838643159904528010856788720312184331277759849065018145234346032025884626634863394983353275870378313223124976534911896998549282461331092701649486991126128988606660325704246991346897808733911403728116180924383622787816086615746497287223993952096853630948856829288116536398340510022202063107270961471489840920493031121877948191928666563242281562048572228397196197909315519082953585584676338028555735260365460195469378172729038740870707760603407743242878307905142259155624973328798759982183937116170975217294266098628591003546686899438482467641985939534554967204686263837155442324717087585195177897242005517878692574907706114499032733799417778162984924276792588926504045348808189980028157367485889369258266771990807563103325695277874297008066081572800482326817512797319321996777012849425391183047786638735023280051029645484304648449946628730009823123789833100631539698943514201463330254898815099383466800909882889665931809770791919390525124425621388368256119501341901518987756886890868102574393234753451497812015945846273460510062789014147496462137624373212851113048019588563984615139554153603504186170350985501463453370352464186718426659390377456085819235159048286221900575692753855711811814910894032090950209969249954346528792715017876335415796841319411398318293206986542912094515039445908929580306324773710377845200841542478692950227181280295363396894079546517852956862946490181518283739656359553115611180252337131073038236982459803476652525257297625897939464318032476989677148966848475687035563780296156551487050536595335450555534172414927197963238883517310425404764776218718644910111973647602336522691066625599199452183998196379848579341235254050073234756395758575371530794284688262086546244783087989900587589552054912736084877205573426603654667677789288167071963837531129190185156155282993556842848088550298567864326967530508177542600273347902672070678358191051819809116445096348952812612174723302204832841274808767575773011132422102250005666739858501099547760206307184469499041709242813177701135596180294600402708770011480499003885636112929566460475587827864104167609664526080247281312333018448442886035846350266140424177873540274517053074928836947612147452986045875717926300257302362658943605036444240516987178875531080047003076395496379500774019770534082324599425670766190317390869567764490153828929923109898089927661224887821713364798425885793779110956299872832923905879094644832838524511781089076707641380436199760227576389276250980353013967711067348411659083667695591613740699102759046485173596048340339067685105964869048611322737995524133092817882990300776344517832572441982302603775769898524934987340251247584451163317286734153615488588138838911668634154490704400707118687613853628235387604237328038481615998550653419973489306756773761862676289679037749755336457212254701207344534131948878325520857465703773637803320461344589480916038901336941321082624555599570070282854863768856091316502825822028017853170116574866951202664805277116963929735264550116035081373602169771819997298608972852302513225033436233963233646541785280530177383106305133110299638423106456325189117537222921288651185197661323691136491372768063124940102058261748202664507660509844237347832129011890873904042656715527260126869404557892232832781349543702015080266796723236581902257543756240860294007242668922398620549058221816320238939260977697518294914511446836127908642771272133937693501874010317836975151124129548809551372112324843336254018110675565921072266909723872363440776405835371930662246907211552690482716623845245857003266876519992701047118626914305550988117561847903812460005495491931962030133125920875623856109263766460298121685433508172623443053355955952304012639061339256533412123046611613663432549884992477585367809992571385176235758719513679785217393767120948081255510164816055809508750699019386123438892475390577271661221388207170783579299832216017899359870793989937877469792142375093301600994454887820050077013193098363511198459967531870801872576145442631289652571013648101458413606869099550124259868323174033068880928011320210763019354622975003517446418965517487917193227897166579141892456575785591419957208789897509294238817072333703197189083535239362367075857127732726796935532288731803016169397276140235332797165570463382700016164074784363392361813407947916692654780653405570716156465438553687129206942077275123139102145200676385892315658843985535274775468433416078018986239085452915155651760014409886658389099868879712679596919704539365678439007358729836297829804118756460396602763682973214290163673806773849069039640999956804098596054263816111138368726524072194212842130680687774910908274480817945972026698526064890837949410214435968823254195534254362559373236063724649792301528759445913672730790999242198939236007614040712887444159410913927374683922264388376160711567750442417433478966869826566732866952538349082348686853722308183735241070661105254437053180229619388512555263650536352740661035867375414078320225340782154278426269576237105542101439994637020189873854088530255193781797960714230355898010395873489312825734756453306488456458245684702537068075602275426585278444340584199773538008326701293439195784360637181631956198393877412222169738578236494838788845787003456848145818202148206087553075113186722258019019129816907566494462895013649067451034318634969516634897266218384666146792924729833229974796550873191994721442551593269587838962434668017320678223534102638548154145694406168269429231060630906000463799811542666422973393058199083884603383226733231223652560890025327219438836988791666088176904449765069035412207523607113169643619730149846051357433890082769457852150389973416397462358721800462918564740160089982342404394314720875094658790050142251150627394567038343631034659992411478292641195843635428624350542701234833561544439414749725610890865183864226362119996367111636462115168128903867231530032003444330036342422557558311872335725308327432589044792376709194121289362674767769507199176709894779295191649542136865906884424253890412140838802279849067116850381198684761288845120545542752801066930192293176117303857760684252996892639321654551472744359470669306380985290454777704756609661033490140216848188568306426987600813430519884557953639828836790742530844491604798891549914082821295260114239960935049124445056581328229785859992057094662516996506863238140829086899186060880551797976186987487137484773814108969965825278934323704418733224178591696024736281214024152900511058452480475744675073101760188573012036625000857242012905721437810007527214469616928569535552231130622157294691438496266847913523986499615163412986578783200464639304445070449177851504075998170051231611005309605298581891874559286026388027177394222977468254961378198986168128702070546116749291604077147211045006659328850775406261640307470859478622123464162247881267918853724009117451641728664105347261448071746233900937758491406015564659479574405855461818988351160114723575075918937795826326984223391239343184069231347677644656180896832048423053381665765239221081579474148863282590792448714339792369748614292800036897327263427539813698364915433578662078697013143779297272665984708382414088136689281622488390098441271982282297657725430234744788297288945222051767367926687612976002350912164798649632518319363168443032437114321450150011669143869823662158848286661435717982812982400612232819903700549566192102118639919913211855515524322220908244545077619958794092660704183213359825170833339283733824865536199447790707577707790380302742975116749419777232851475530005029913964617471659310852679283305729635417827730731523777149713035616387155668514300690544389725359860429896531000660531773072160685440162959097593987416295093255766288122145161480165196777228434464525364548297703304059784106137992101632778264834110337801422925665699315957506460464108107849559451236011204831654878014803102723202772942936316410723417411652978368151895813147210021428222095539879682948003046553242097115961916334703723203229202794120467055448432726800281677586295031674293511777098012838217818931833764245820830399386216056443232464945157802176210164591296436488328765713339937636190510984819408695811966923047583229185122929243307201322270548934764618730199504375029737244213515257255991593635728092813907265769078626686944859395465590947714545067625872007932208408021558838863256762323965512801294337933298510907466106297033784925143466719612800434348442497806883345473791065797317797390237790721492453710986581133629212856876562384053760872364045720174900500761871946351766877320066950788994049879056617161634011312803249746282817831127505846340893898399286506222709354127221427424375171375536488027386334591855646978792347038537598448888412460107236747405190164366394621317666132939305094788075433467462107745534138429036276830523558342711036503057852442282176773723908290656428869457321390634848266640119562676984082525225312633098016362292550463468962206842962071790452092845865609213110485040368484269063810659341428362254383521503725443745901397696333354817447640190539754831753297451761807819648075504802207190895015168713559616998287420100551212986092598987922748140655743234750778091439813437901982396949854913641491599615407359829791045599634453277880911463397120059542128915873797131079340872667158093172785160326046599258199008997722457783086408243909090106777803539151079010271920593581770530163776311927139424117593602374884714851820344251254633609023430775470853798438943815128451946023029164648186834073700485078593629675278072556821606022908529534724501085297196388547989009406109735992031599820998730089800684698581214064081029987628311778258830690358627591019065292269059222149288914762435793099097935794438894252311981944824193467828853068994823962676837289993879428886534993376181121122447045409173376088952172142976143868215967084395058033845429504339221748940477939733155628569162773614777475186858380896657731328872979910710027625547669239418388316612629398337691761859693843113299143002622351734773785528076223391549538154960674768797339115401363685520737812726248712524247788012266585540686459255006868288406434840887019075753808543360966360995508450720636583221897946334756593453911016151848861360824822929765315113424104028998438154479385207387614659393267910322839263784288102760072395299615444334913820126160001997105154414094930457702707239584300505334809673329549909136592688727937726495460406192037775776980098114456918929765349207693006602696717246498495665745705855972125318100766648598263476812930850525164031450569336297676818306549351370789498517286581055670826936208852879129275377650546564020632837225231970462432867808824639984985603108641863864723909263627383295937917031983578286177441966746899822455779689385808877125513078367005350274109061847614143732010692120949927142792249595304634674724716440810601214523467281394386227757222709215740422110124303579313069494660772509805671662151199994983529780332485217978342823164357862880286397689047862486399573250448209219731761074454107948947769550488919917612431547839859573491026486240216716285130546460528244563921572984592553461177985116765810837376681706301798553630585348966164490030049227627036010224952410616271778744538843773539061173302984931887729423840518803861566464056054022296700318709807768192415096211339915717323275951181130856706941396863503892658020641574224203686541935803312723235969265406433872813441327720071016936560918342134255530670758671288760827571780337357243075428992434625468106066134815427443714372451175210095868388615376276683391328168879427320193613311714378420672916684955186335580043936720483112860582179112054390125912235786995979027946565210563408415736517533506046114161778669732671593407487828598908843159887015462594759980417179536565889282330584888725297700502382551631338476202651663185096199744556379834158610107196359442426710688642090461536010492089416836344415793163808835938746682941966827884484436082998534878756841774020001508039287632435988693093357984399342330000800193402730697755915074652297876881687971181810759108779229045352825085437898971994137249256394439216252106086414220770316464642030000447193252239627518401852205922465637424308148694676511738328018149277430461622548473119593833510783485946487906920151997289407431832259448987862847012555825716107329246558361277417009135318294972056335069788885823724533104626667300932831329375570468768860798196374563259223601072790260019482942291635607024206404866325513444954350348702626863425171900144331556628447182399786321701088419796869254146766666489074327436629634881037630471417033765315704495937047418465909577878821345036887715229509376775916831360139496379142207185740683505490548538653806286468813255771043828575789998237152845347056647397922042882701516700553880194857300870421597764837003293337131953059398631707399688196187234541045485586617325259121602006841744073061248896750462654746537038223764134737808742174267914800380076357125710558379058915033409820132338051477306529329074429199302586335770740954449259974907488642606414955042237996038535080628546069284718508684704156083998288277248100983307008690239079148725810717960966967804112010772133826585454651177876700073468443337055431052611602382457300805417480158157385627703454738972813346276177485479265627977617073734499519508455301184205984142607932585959017573169453852964882794989503590399522214699876662488100015718291217744675103391612495462114302848575302713655269147548273136965933334500975581249608165669945022018105151389420526374995640493114132918974628926895826258297588828042919993062704372697697472444804670484569816332877076951455876273739170390521006453034404961476890011716413352298672034234729054703957703862242444825596246605572762416643267598135554202910923739341656641207034864706239853040005665321586418233734405801171722473596252209677869192484245963453884684458794115219854571112582645675701263840008389767958164465054663844171385890679218045666599264726931700922824210090916556613305275839697234425662668559807315320519210075965798834177903218267004706665959009087045140758695713564632618224435545326353052448591109312063891763104452184510703674460654922622056203555255893710786795226436427463995683596184335235937327768088085731847951771673668501219075546346608984900221131329779956409681407565389967499598098293973554952100544101618650255941772153978220196978649519773365586576184728817225442819162340380105888608734904626135625932119689998389430143650147615816516865145456242635018853718938411706275873541235312429771890223246361934244934979135718513606222163177606774839244152994845503753146518273879069784224124492792617690355637034698285603957965328327747918169353901169104619501110468682512879672154598929455166551290364447986089485909427036386775465588832770697217015636737284087296968109100167029191207664552142154577057662237016220249466364196721310656511568088243836976032275281893119341160468891029909817468315879358377840803184107229788414072474785686311455330832778123231540081488134309593900315724285600857543049709329799967384161287739281407379073835406399055289638467410046345799655986591262431407743335681014898109826102173519769490234392976322229536205453348485845417052351718523892986473237018439175125767425632140870367145978383553002567947260170083217291693379446398320034046773318343656333985757223325057540950087744143149072202060990779973778078895114421502482809375294560943946633788924185551299564233159452223876839003479303796750184198082456165582255786157523949430634561472096477455651842727355641211647179525741085563007891833878507580345352499299918871890990589229786533423199896809110600775987960855380630293865114866909856096892026950728777717594309229872826170949556734083690190917948513017366801070450568916757763194926288520942296395800735844894898758274538589869327944504720477057395765233964181906731312514323872940496509126214379245617002820795380681895711237651935043587850749620983019061194266428007124380297049946877934167862272027666813343420065344660285889149244833733468764396326410691661052775434936391243120116526331506433179799990688651059301467729173020381582018083060749005354249231396561105550505762004422331902508639883836146085551288710543301898004854894633859245608044010359283072974640540808010478846743224477348014448911725573772408741398195257683176420574570584062977004340872099125792606374592849711133384624124429655314964506023485213642529602845237576752887329339743154213844617453242405419205675283731542647858128824614593206602315481150958733994419782626550833460692763176230316155354621227396287885587459630682387456052643476654531561470659616850810051238596860787510761558000137630167768316377425313678502204863708014201095410980417716584354678618408350679940296312544824463483018800261340157618975302920754619214884385780797979758095082168372629192541456347453963061839259423320755880195316423440986522679937838546958167534182870641252755185713850598168127033235476462155291699562645023426328944827651316365762256980176061586821297453746893769745142705724541920095005250213009257422592285036612609514242772574015804233564335149105883184842031436478550148985269192423966703353305573383876970074074798563725442619712476736378508797972915691233980540514429375425670877254037145326293263995324776710384557001817338694857454073768961609796007709431938148707631889567707569708462852038282810707689974168395530299427155561992987906520670691919527052642879365641800645725577400208013468389571753729846777943899225519096133521493363088994549077926717604938061143948374436608674524621887350541991487374342359345151782287810632924200746457787342234525385872568049400995869769878421752459974595993302295698481846820950236968481883258166360157756325955912269125831901597355555311153966770814158331662878694069515498978656191892920765664161472993709137898474859191047775738343501328454679081409602949853582563286780856029888897520853292972460246591933620814408574695163482594124149827409766569366661194648018052867908895908052964765736722124286777814507620453683759912068843289444014552999950225047002970828876110794416257376025614181447734467828515398219378190452896013520782796209873475554785303122352663796059322379078013835357429880906258528141316686142263044119979491350410912516682610495952973038636949062154201866511089791261291283561572249627364797892510074771550171862191345553417866647344983334754540724449579947448956051452512734604054879372755600041567253827513343212383653935819319689179147553726585322619919929527817850853239031272696765189595611712650503170705236048825984021973246157016137800403560406789882625577250957169471813615787341871167833145520261948116412288160496354369783680711294196401275765209275876665944915562185880465616121069747785978238858444580487639596024108539417934289461583654318713747274789708589064494796162220320483712351464055418068792498589922782083229847421183377548470608856248194254508577013639891424841807642958808238847564010517292083290939652434704976905784206348132982542523767572302340991144257236491894013283740477983200059499090173552400015753111419406113851777206883775738871375853518510551049524452330543996702172372911656935794491095328520330326370482578808629195177095052742278599211428696144014278525540076590564005564038323984436280977260072470784553672193713742349284711509316347656528345520548129878605426410186721096467881218111558161064857906000163137610891850771039115877900443587567977600083847019585973419462003161934652096662509564676022447980020023586370285563011530453808912984884088675928821940574070049690011676626749454411677730182823775508540105454402624457432790241656173432956648472711999155674333229874387554153642699873094826653195695512623814889068388169079373317251598428952746663427073853732337428849308469827219016832658391046681067072897852787758167316905957209720279265210144305153765386090217341004538258269455399812908091659564180222759475432078991035406804869782951611263097998469042594752056895259989968906424149875804686145972697554517051319067455766211816100226762373202075409234729232161807015703885370383556377880091357580925356846803551574641043527466866380768815615146476806740846067152076407690761033787991846465648025455588999305929647679577762096441818308829503300079158324730350390774637944446139420339855658849195067109000254251735134960132472879991296486095555923815972854294466617931956204410753419230978804038766499927398631771134518734340219294752278404693607849638703957345411429549269768840931040583941030322855287559829683517920736436998312848980196043680265519981618129390811396783441314601365227948121148225310754099571213043629912778584891073761744660915108392199398209126958260669368644939587101827441106610622375859483396961651102444130800833219095969179362704422097509490977238507990542512715063817666614828248977588244409648289033458476660358567112867744702107543917844434359809647567849262742804353475874094088276691958712280246767825669925679727310229246548438259726920174126431387225780777644995079265735406439812155029021189970730973987027290346801267624724530353752482631388432963695394843593694899124142003633073480413868614375268565575880755246503180491712785187282565879365854764415834052137594739627581423144068780499116970309285850127590796709739445028969331692457893419062889135279177306614593343790281682320916169985397714727224105730862686079819119899003482274722456421574613153037974530927122178885767971795517667404250201598544733470372667261080016115829077872335765345800676112707587582990114389597843520502258207558435278859082768384713300165308980938574774556446780082984327112614951930257122976811084813862952671597134401963946061333956044284525893422000574523955192674712436547341547740200254558024970840002917143427668058114366661987569054163826444370852469364276053305702626433035234776472709684718426410713539107474187817451525776416350958230013791847634972357091798045535912102499705435241003908428485610075738478697191624966089001644922842060109618523784575869649477361219276045308515043948857736596120503165068133678207113464073805952838268855447295513390875757199593536255651481725515153573119082420211117084257613176763299715991188691686213719363695958943600317599756649356344602411702385007307864871354895829295001073278311437493372694021409251016753265804383147902619906605244814897450325076598618636134808513387891015213668839913081663661221220946888947792854364124245152788717571251141032759525108421630994515863106460165251606100270896735053247981095714032758010745923377765853388149195186705301097381409939398141756520973039530711688722376302642379777945662096554717840344951793921476553032433498349740135078049578504384621915876277463620402519537385006018260152869704062616156021780761000108931235573564861772359361991425718877974174150884250222685859743088598101906455251060844454184357702673974138422395746150459166969761238313022157592501033980241310372108704085387763130644807108621344666368561878684896631028890376983538649171669390973459885401186942943177888121795567115913938436365533494164399322448453979666255539365306281807212434239397943748847622280618221569249676749141601899031577306120148022907581189008144087927016307392959000113185466275604511939994881077653270157652642247463699606455818035003496207808970098021733786043996813924050575760390059585236144043129376588077977221312240215782809428163727948794747681674065795777250735715205223729973015158161225073027801573437019773777776708515798645127561805596700695130436834674837441019012181844409899664885506490599677327937209074159675553129779107567410303955846650157791150426074366404302183842920806643225729029481489148441901203183974629435135339823174993689272228096827897212957919955305182872333757698645448645448152921377371774423591366607056698739709737102344998132306517114160985765380896319797053680414176240825956744595983612323366873294420189837935483504361983213661940709534632405383327822667328459141166001198056034388629282815109292273622317302481821602246410483494238900760216109892247062539970235677044623637267620696613035076760365789096149483714714770223211606592541651783371482127045922223592378695418365158137548483477676543638434177091527441383838619798241901666705665432918990381341752180539235955436959093462566250617718559738455947011022289317868661926349760475718259951493503996152779720330472994291061461323198634385377496829954324349215615964159645362825573892085349770215297004678456093492615587908014827936152805896673455169956258509434224666289661650143954580567737097370520126147633554221257847309190459786490703817375498500295130301859702490818274176487659032275944123326022264011938469398165077930175315554087053511981168201727354213423071544152642559002618427889476766307869602060055616543443222082413455050960012504334560696800399893717541391192803731404027644502498940992551972542606332048618845395422743490451287369775767794525502471613297007171875147620120403600447515115967162866623047644174663581759790943777532333850364709891296294520960039274878613525016785645031662284744735528059003908160545998059331694134398691688402579880197010244771899495408239548657167351328796086131507676462969615510714751001003642741348206260634881164487351168874839610535338543971264033863445113203380814811647037619868590676206366919355933781808293539128141400025445591261142477025225022227965185661121891461291065498554718536220746716520546423180315451130405919203251235109953980831688604270811899326103874219334863962303462623085256094759607390540958881152906646105947259820882913294066171605020156403371687341990409881040091322665991655539258840447529473290149505213147975931975850685166137717383500988368827682122394567277607164324311542692719634781174682800670211278887648333148141969034102651456591733126401722274305516251553891165898587251426386847277133316201127067848712950661615337586129373491156183401154448054342273561950216076013124068591350211724732053618056275676487614413346362418238533174922989248456171902421129775510276524133826188294804323240304432264372858730310640297887760884454186391707356379715050160153588710151483215739421829547642322023803320002748497386283935400931169641982263187187288608487763002184533694010040890789959870089168866608788871289319074922983286379139351571287146373333178162182744937863662871684632208918093222745449023345350797678168658726094639442746286357653343426483160171488605219670647300285719512888994905054342567124176890694210816120920041680775863757599527650533289930808885754087745412872745889203730850933444694057004869545372856499883643621237848570180981227012381944151992280091574948335622337242647286772486997747717046251238454292668539469223064649649982746384371914828185298905212122543166257090627192593817418976446768891367658151890654462062221109191957673498614808277816222914829567047966188557771478868645844934439870764397045533165209804913336145297358410341988781067407801505024762128874294032859332272843053203673882971436075445796259675809270971948139033288788058889475309418736515124063914436712501442150653664160256907120487413847903459926631088609401238676798816470762605642023610037749030227807210431078580140764595715939527217270139933942592593046680729744874299542279603542378756917335288039382094715861460844189325244457215890497768895612493836331011253786509529227964404554993082781340322738149330334615340364371677646637970483373128965239170178480765249500773256660038772563502824719286251183381289840218163758764986216357041154853622191148243903399948354034547767940952398815052926202681285239103629375053913163570570904531814980613260651787008831634564840242590064136156528847293156773561497758830954480962667989081689921403006330027563357270830287832455574125516454561220244366900197035517037201231190706868021984832355809208826082531827465245720735174826435402672394415905444985297980573594414376122815800294973654931403926742615747397515188153049603642889218539657888271371979645362336650691949884128680953053345305207420980330790715421157946621830345000150167769733640680139918536869441305634386294629805963193233551492372334543575005472122341130800074531980904933911873545995138177718809077757557478124572659123910929823483437862409547462699212219106068714124286071026420660679411217719185108489564182103697976177223827476746831532956610797242571768775693005272807235761738503352494478233135645550359821760601646565872943266221485407284652574884327596947711532286850308485934589036210066353408654027914883229726941105976952272432322087776041406168797460541395998647494416306352219960020994226199073789745582662222341612092638750276905321169108487239824820084174395907553713676939021087869781752191099139669438748311873112907474589438524002973714658906170529965230236173223676843086008071201739110880281435907712229057435275661228316241083502319124627484916590855767688244415654547673120415570585780778059913305665359370579126543885405789448548836915673719038166485307492652058820654757104717015918677776358883016637807073249912213601906790138233236171731733430044269559755760616704535298739695503282798394331409561662978767850510930254720202028410039072950998059926522876397998929247205636872221347319202701450576740267436774518981092940691724116651607761660801610991456139859080063741588845753058330667862797291621580307862363664575854945257525474016020772421143885559230370418709908084054959429214440995929814228702513717905379636972785528127071741835110236642783861782257316895023726497820628946970801979420256632844601437178454321996388975560339811355431933845705594777709505771731849022864918237470901817958416182968095554449161491801585397377437708629179221662840162040121606858531785416248699221533806200629881986667414005384855487827872196661620176094407299207999997223684820741091969840339954497962950643454502919573403273826522496839566546337503371299597342376928948528744311685946693645423124534003570639605738785925126777436836891485588650324525538153469256654836883459660892330747782771613046881659797971276799791388695117357143601070253647950649049935930115910085491544400971067355673287706825448307790001067903120875624242074015739985596219434112659416785162132415749626523313589719648703665595776892076951404754704415882406002999177496581937419702285138991948466603166248069468978151357902357665091407457277644117016035745391476715255722673304540479817238122299978640338444676963667427498224335215404664223708561395619428402875039453214045472942501130590356289529096709854516988032255574378893834840902521946806434061183159613976590669131219079359479489927613480543891166078826319127765535361653891668895832731347920756452828376632665777719255132480509106428529321762681590070531103296221765564473825974833331430960662953054502215020338674541839405166283535626404898889257032156839943832236083718295007587258046217728916114150006034841389289321620738619117562852382421053057578247419785287146454500322847862683291646686928748927039265612470470556224534874199102542844954989591990885149810791092369128811764309156826681027317550541780128251554371342976495870906184482963434795964756698984127525361740599503868345102412419494379780490500300402514458847920652985960143123203175737330018139276663524334410394710135294037790397406641434942227936289310139677773947382189365796740815646439914449027615641268217485755319133460576454758211452473483351323052163559989742881132156204902562576827505426128664074321758362837804255944242607104709883404748212776593621939088115922150944945207268980702635707231736545913094082508480774058501703932865173684596796109590102042581837613281731120904896312241602423160488143265114093766314530521081346426261024292939795796612255531101704109637728453334468914466399044085047284557523113802130649551849811470717033236965257779924094341396007644848526118829296963833795543809826051781711579526506183305127394993739264617736500653163979834208603809434074134566227213636597834927245927701004494420534586181125664899368516419219525982950661521324205399674079640595946918720540406250102450513714146010462470802108739082949691579845348896830290121981250731167241683083455517784537870212088351277220257136977471289166662755966766680215371280445351724749498691948929032972101456684930870845333976263520079581619651164119733514045517265787331898809130680930691317692162809139714564829186170342186118604214255477770401189621158705931562554320052156752821831372183791488859395052606088861525867662373491555166962118413274585838767756087442487418661650245926720455088962922472494902224934140687838717775025310696173110748740209035386124310320420047229366660527486700646991597013991265151750106842924521443648796619622850711292712980760979500037176532797759469906842433375220962253500548478346639197468099517536747153987812499605061935076858800408995293640865932130048774298341453033349282573120550430147749272853299724083123134178033709958569551024623189011789112783379558289767490238697037593214988265730227919480157170350286337121371742397452909368199595474091584621463990328245987883951106443691225161516758804432933114865289695319672686407055070689242980612043416552200640472327267059186964285580721233871959961003918342562613386132135581553053386461543487573368353553839562272358998081566293788956523465435301681691140808782042719635485296220751787756492097784879049801326111176686659708548171670569976495170469282889992223903322928770999551000462414493197412232232636545864498570413932417202842199909555578494429127398652821134987477237388623249632045522836254148233617951517048166613787395323095290635318603335484293847364468684519980091534276876893280509751945193209139400378760340013051891093422442727534356774324756625251388976557688490475816178390427999252283913998982848556278037290651842855724700654382600967547386057543658848842651748258243562552737630791909275311420892442139722682716906224757371768460267968902198892451985472160942917488873159584426982202747485902205872362765035523920615195625363241140294018788379854259265103787730704992340580219639397769284188951099500263258260268189424485949202062062953914008742053960426365815474244865230346755984300422011783734690158015556052679193769089299771966734888258095900210953663387973533653937857844945341426910806914991817204635001740346483357667213993374613001908180692240630105332246424900409220757317604752354348051969612275802119315355614687580498921593453929119642208643551663228529344707037864735147733213185848097043699815072294506400539076953652017584158662856464480059808975159177399074212307517292825513352361646273869974812525470801796627191562139142350425563578498860280807134603638170752327220470705008175995078349738273222952586921787498297265242635788083574687012608240613309008315204214459313348570963883885188649989279632930453261407626650282183244146264230441526394998956337789300943977097351904123781655189984557420649040363200723484206627631671957527865013183348282823416030014535481944469560505917463505191516413728720839829177613680283878238897534414937200697126258649792041606788353010988277895731157040519545405338381096205521770034402883453209565543712991311648980522275387373194139954863703676866872126337291045882733179645509519982755650276793827911826664165811157253177081261153396588465538769025496617646286371755732573785634696804505009591447820623989890697503616648559576364071087331136504392557794795574806465646559496653476942543146506905645440914326953614443091913997982474566887218988672056488616427537478603510118407257858004164827819448646396420457122375955924384027261180410425676068039761419331874820213556333048575570116613236081084776905312587497303983990464324898184704750181197314735019502889124579166712092356562783241368390570098627367613955042480747264048613398625299799884407807745630426432764303155461915694889387142779331906673947774006172897208999840823792102376179739736721012733841682935746049557590638218708325250760672855337204056154497037114753350725261932321432725700950140795013220164801288847868718923205178541713337800264440205363949120642265624627930993765641175564861425457881434756299281651779055971695696036849254162155007823589552738468582436503383247674760239917956086144987217411351616019573484751525112923791314618405379668350195824468727997817007281731182977670464446592353793807376003069814114854667091505160659963197538441553635364794779656453981274946697463941871551568564804950587732340111073284642708582506156396470029813429984289540820269665148330370658945486257417205015094138398068305053106579022137922912751687563976948740214690930322225501073886776548058590351022866722056299001404221644576874961099646538512499354810022759537329787972598954447010921821805531385859507984273001969266285530716358926312073421294688364091224632552729098723171725936109783394829838197008806948347682416348642391202262466444595235017570405539560711032139204775754202266076829302146873082186909064160479782177787191303325456283070384812581636785368388036194730030576315355427672520082030940022396152383506711854340493663438910761765052656052071593915246844097229805389435641040080889235157633656384395805835878183712130229511226811596478741847576680710248402851850461811857324348987434445925977836845562948574067847284136955582241473090169690760900101397607010061422514775239627455630140529207333721292986788283904243976662265553832460006944324575253060455720225315299729630929928740023977851838425770575830299525540132453294766256876731962937763033626865382835684980620047585045120267038059280094535650650632664365101005615627935675207838854704177758303792410193216309888644026518408873521148077466144344836915169099409493840926608754776817004180069426522499611010533044968638456887340584802991829804604581883194579046890441639406836040314515340523385031071691786076408030135184664108605733670320330023529218938813564867323779718861659072299461542289281026690068579148821428561845633991459615172514684655311651352772763170785538763809793311905580594123110204301273119848833468403803620700767078248334727530391243375266993692309202909493058524905775886374206367613406015942613129961321983827360966303758457740461954677930999037746052478475998983324607709906122446665410387726846741438147761262926867669161628440042581669281783235650798793499503733476506850979697021395317645046405797395705487296158371172045030590304588036808846085939159609425659974909818675874912551410475660363052759428123709000864137675693361116413419184109871227602423020795330250644202173709084278073168536518483063874247487030470493139416271018282127501838942093140308308881660964908964203807763968937441556865545008949133926138212007856486309294216702957665209319471119850517182742035523317826983105002316028328592108732538910659871437217008779349831320216216869688177818203037762254854915849034401221736291936025527795804496922594201501198356676607200975684150888703854442461638641779713248043672632688883892170950422410530858797262003999767688773936280725382418420717856788405164566113768370309202171268953611388136896984454115033901780934595195493801223600370974686412815385274489763147706573562362142009071782001866583550242701525782907797518681375316939312404606903720367504981819638030555525276909041795840230893110376615564653288979613937615161563225854321703472591022418308307668976961955770099714415699847573699451723047148593267799791549073593612134236231139004310441783261098550918908098155690818789624659993979441113508766731738364359776647958755012840799228282363336032137822997019721680461259632628090191303022947214560693937066695299187138635493923926767327027924026856520866939430626227789861698723654949052530376065825052926592894708188376880339531301257049538676681951625123150466984934753043803933970250279319205402162729864339095160927160002109982493722023177482357663470493023158609278188449359146081721903959824466179900843567111494575371432923649470055423924761251394192793854772363590572838553450072055577096886194464294437150413149958781397816049631268115715261437255366992451250292224485561216854365144186131018040320803437022420926986809434044051689425507308920023295577471677965619156694322272502314832859341278532017753356768332133123993160897976430983144778942121512814456348816246362641316958097697451760784137022303863127476567049972090936323859963098945598290046908834354238800873723882992202102787486003045273678653158976812871132716297847528944450505848427134084407645116134922862431312154221374283920765272667692692547112668031775111587909232824469914992071008432959146483649527800954689836820438360816507567065001458094054297521991845307768399773553263933158941027552729296893342064587547651924488361662662192540320937147103854494803488652884722007620984447399022072111812649732563343837675873384313887401363372853131523269962851317192668772368120874519510557386039701573423132730255664520078218304807482125331291464592693474936412930823735091016317925822826078447559809025067954738817996588236457258573211688676086970184100569212610358539889624407617458405486174360256176118269236862714396281717232871172547496650881124673484194261994188278318763807356097204435346648819358648296868051615241771066350815953536085802408187748738575365548384533168845963195915176935307853796333722795558101967713886426043647602785714866833896840472023942277209807196076965468852452231415661815506447559200383004307226151462623055235600529757780596148625374508477714749070470695462740872830402835916832517456416156695694519420074469818605257171754606990178211197834300958762742064584363712708407302694212613554619596585677519797670972296424848008400583154123719818792791315745693055392785042908765660697982909479183805415217248151729325168741548041698439826355310791528105464790005026806193519848282293722368120301028071919314461292613153126998430528275686966557081215525771223397562980768262252484266390821152414288591506525520019708386291920361094462696868787296192341339867116085484491445198121336293965444452354668640224563702371863697582911047169316393549689523383495588519580385514131729476940432494573018211463011762435274876756194552908497689189130557293398035151948472769763284148527325055032370873114586233398364182876997060881752504472992706443410560372725151269417251927486998594829058326066309739036774899315375944647433004980946043996783874314183989807959502963509638526146205281046691965773684103587330432892793356700669281361170826928230599718987541494429365593656752635995670174603302381852345079976723184034408738225082065915160842659296180824621069583603230431428322404002697436884973071728359209775850645798637829351768553224388607084602798102974624408905799796035963734231015401001732551005065637982885446083505164825473635267461831979068143283228724705334361380660291939821346072357455189608430960440251467341980948889866543703742255515821134914482781872221991292600346451544429201948762289448697835429094806321816883558398128909873511112883810181951419986786928808702821235208936934382038441946895230976178987893701549231649661581389178910935225434304640151314045886484724175960324490970002447999514616706066738180869697437960432078979259456977512211400845891818006884819902518511578915565244768056199967297429105405444455724720471321906950648011214328759244898074274018513299908895305393220799104342848805127710518235038875534593244388491674415376958318896065384997028402560778856699362963748105800492565517626473903607850081958073443358799062103166822707571518256396885333519929997297512640209468615418291570182444757676471575881473023094493672656771074334025275978300330831394812645220236683331696024330533117979709532764739518099988203580979408072826798897903037667301295205956022978484126269658737216764463073669326738862031380173381795108284089683975455556388319043320899867908292986187345302990294777694259462160909581081887564058327055131894677233627607102354458033514765395041481365023627761355081871893684086519997807717466497024952973481149835174496095792145624874272156892033123329004646544085995532788882991310270072486333832165125096708154010204274109751598321501161291454209708953570415402074652762513352862524673030370149213397010122843909354942437354463380955815542761854541442579449604856262994053602650400508206978744866271503126213998687433870626278389138583846148963385061550473943770526738895068139619573893510109622333559366274305661645564734139646435227384230041337554348700797533899660081154360369586774163848195653260163641081958484547117105727992335694177776973225862848111749278347174819669482242689781783943531362105175502611627404531045419957997080093178480728223052348056884536299158685119969323840776340590783312981281933663327844993827342661733083799547339570511700439017559385833401834783648935572086930578987259491019349103951166753192862519732307267755676097196409528777947439312242613558434187577158283844402838295770949284184401478212796109653087429869539513739969167830700805523273576490090167798103574139329238305762348244727335804450484951881137418455772917903005684665678809276768787546675953696989960180276467519262051711284899469454062574263176116016404274612272997948767893467219317946328641041291634533402442961855459615883116408245374816119347229402735938449438410801728978105529322562775276426392274034992039624324650693388720006688227203473893796578609744114932957658372441054103088895860890620063477544098234777070393975541027217434881635326862069837200211937398533160001075535259951713068382700829832475157371113465050137055282424368533322546877774470895018845143471784801201005115343662817044493477359946408893721405401952526141935824194880806884456310231932056956173644403919285490979773382259899572184790186197745271807352772413882507870160510217820114123766149038018120024521810003039475530319525974687326880715196282894114305072686510858521460487965770444335015408437659493897835523454922000729509570103970243961270280732327769793692352172538276446202337431891078985078836752351025994323878946558428830699661033482174841563297251301938580023938792370140564736439196968168800085130932525717822422991816771577228829993553432552270318726628482784692129103560039549846501522020210426319207291276676099339582291958689105243202369781662100883052098161564728029511101952862053495341558804881831189278922923396346454779934469738372554364995154756662272647049764404695344726730417176200831566794503981923027608048018455183477132781910615975273377698759866006242535706122084350872550296996602933538615721204594186413118553963950861005389662762544331085362952912450965002264206608550184774951046027789765708546233776868195586896675594209305074787641098451177628022609693766655785497786108213159068641509569236636948362126004193566945006885759480847541184293555013425338804348386495640448432570111734395951769708147450396134100792301816526150970222914658027132630564449352848340389748080890776435670057821113355282008371806905896901560099775532586862550119039004383931933125478569954059942571283539637445628597441015240700491880170522398552007051029347630339454042110973179189325678354072412469856688289147956531016672889196309283383355075481622847721474661167141125281737468646475379183571020645602342129008850234127503145510741468042031776660242042511822557529345224172449107477691226216697721028470951414816867753526982041593460261408446724925803159090795951469510736720400322055146625104678040509559766565433734533627730681991942042370602862365338106759002062347503014228610155287272198823837702382150323804751224851819091227985317611221342827288719383443004497970599827912003107196635189052715210679426467231914124241662346469667987273649842577240714204048906792892535080007244576872261848759561077610110649452193754971683419683937018579441814852079264847901525860265353237491568104008640412209996992811849137318822738540640917947395210645775149091332512123666221448185347262849559154955682037567765757629409318327913667576284850173392674658358824845932339521042441920015176494191606817156832032559569282891167759862470793709374178111872248882342610859813147932545049054499352851988073515957128683000297303576589303004519688794956599498259135491008345849545730187243577575971917502789698994053783417084067379129110290139789504983492071849883098795893526729039060860026089762583821708802010744458146367685271407055711265475755539952564114472063510921703185774634799675106686696480671987301323731869462713135233719036978090998710211667750170850289012568078057302388424610432291778798797719618105694103429673809133787036087368920482517444483855744644596195200624376236594602188428137648514731780482111123924964730685104040407839475099939517912650560277228179702052726183078819989625491146787854347056345368088691803333483247839920804661180281223891898485170775834223668762293771610860766853142781240519290422531857948351831498554323043394265811651027241813052022318433915158408208679469700100990003471696918752433855159868033190269231318952637417596714034154155807663434349989894186311209769580602195564840802019760215764585910406840436392075523768938837516742821385414610809481487016823857021272731233543162517787695179758710405782578333100135724945252595596118998199359954092215219770057432618552653481881869913745677477636291925820035786893899200703411034691923795517121725495375594812071825385257257634053114186165299800712488291744232887959692521375768128373270654299008528054759278572851332239950853284407950398130968936618606718718773673938308889150362664148880885836926504566408065792548694858787492107160935025821221284164369405730627485637222897946181494341330850740478431582757264179144701298178099298423772597619323881340499186593139085247181995764082845475458942728750425435878564595955656771720546283224849702111284531369018979825131772339713908167347956581132846590078475926845471574218842894096745200056515626673073821541064677771853209878214477405945673689986785064641985148461259407557405728557383561880641262520718051738735959485984759946426225058369303352007864949269597717114328917990286288164439952742605811647565266502716400028793524521143215386728427371293306530908178834285354212890522754948562030780019551238310712463587458600576798373171837574342860694487560075389083197096978951802482800185189554856167542376752546026929205052819171091550116341782421883008377606989625913124604931572750737280052176117020588098080985429200350118535411254313445074256282161349386205823794826563954948222426813423490853935351734454566850954648675251848172815418856211089506861035057268876786100072627111991587736266335769269335900851160238358189003085160698061854270805805602123835139893082578543159340112778476562690135684005025101728267821432635727857663395648514688659664769358366030497859905319970373221598534385877710094383116876712873736152851516603136551621628852395209123803096337727245289738890234256331879093503166671311349758670172676761649487692899402922740579269376065799973492214563159955165706768317873976651181611517867651535023664408441078929401463573220916460174080077287886078030550675920453638203203887536050566766735670451697108456381632990055445170834511989929646434469354502123075271131931277301629541929275107329200818287802658160707103364567694485207018169511255565592897207625647382535024325882551424448313907239093720636170164728582603085431029985500888035794549280981733319757753185944021468016841983991775317352346165787646398621027116714433611942593261556421380071743648753869035014203147766183182972693742046923111345669284997538935886206738484002604836125456416636207407200037976952452971286098985011076253078321841584481948766063186328115498609293702558932707788376381754537905333672656238217884782735752288666526003463911650677746083662585040841683416931300445949444868387098422890534225733398504527667096090228937294809659217765442445683460142854769690621760730129569608486062022774954409165198952663168381534041366622451669374147231254057055078491598927692192302173476980564497328145521208405724826357741611482019374656354490563791568032497980770208634782052103336316494917635581776329123744863455662500010232295056625788965345822239413591977485050569485879948462632370100767916460438063291536336052262579227363453233577054051253755591127359350014933408155850167733938400908098117777427631047077621623552543168140071685134372677028956218786580978191727099814351377297459653311819620812716326241370600594156592532631401320527866181861470498976486582675696347701554217212478766301058024629138117710343970858866082887988566510856724928806032174905680958770097607146614470593722388630717465178387614892268038109878412655321452128077208173685384692444015244203281315084712509409069203011929502317696479638622070666894959224292347349828003576576015674385107891687426672854705715429444194619730655926964979354823592411222256373872708168436256259317757417740464660772549569150380598589971564516905416685358420965060476415636046655589893963711385645008810452162387522197069164667332999008017936335097415286644059105820661762611759774221775539531745964726680805872949547983687202907844558295489941294111749996286037226514005955458394832984623432304644334297229083267740932448521103176354284742422894165015149279743102631541122911085207925216224023595012718114276253350487832105286917875997373741401546279937925494691480335998537119061277652055515350680954257758676759450683350886095486673026229988274310623037129622037252716301995085716874918838035324748423414835438803303319118486338044834749560377088397000730560686406648255042597230851824916874244583752731072608714031097474538083313733982763388983220712493290558588944498983721713927386941134793375191604802885813212312098666782633202588220540824254827936865246332541942630962418430030657597942468399085786640422642090530685393966209003878639521660160039385500794538572617936219970226835353634389141427179656557468686415108381078863741848085498513307253190852587020152679470034731772555982275535276292456237665446637532343684579345360617039111061628637027108165982254457993108892223610909175752925519424947816089737910617867379275233019023061192609528202843230520654256089331511293450642170166390965908657047267338935893491088539232915415326641117253577991196769956975919330965821170682895423671741610037809102792354683422636962356702319451288033785466493161208662904301655431250183056206664997403542271737508554327193275057294736000634883431686500827794453285939764590342937700619947354256311060519327235301270195772161521852105802144161409513687283094337283512102060693763098345807561046909619318825303586677133863573276179825909253523776164147127831729668751622654821908501269853193669207174307534912384300298482348251680061550960323570089418867537291898446476878908148449973057837608637861841277463309228667217493863244716727960404581289900997299853031796542843022014446622315127010096813588514787374567301727051665119297995532589638616129926487403587517733030743954626488169610006129195155274117169948673379438431565369739123040276060053552157492783244384111985690619615162663812010925440960369913363601065644833915103688872149597929413573477747157051270518357155585582525698489325406104241392254395941915549638243484258521135862701199841143451440511378576961867687745682104353363974460742385549245630517978195441492103647449375956864574896297326003953486382486818082171225295267389286352202580723292311867235842056444375980841167158965631718883263720888154611148443263701756196485299904218388041999202223627729313178009940672382011914576780954092891534061914773391150867214109035149308024746903102522893301828892505523980963728272055614811677518542727236303531492902918911287404796377343774579027553183766925348855349602743927760464193925291247354781910948323183284728748929726186878797235634837499849906163585622628653394443074884245930269545513311433932441804513136215115679233178067754631744564489715715582183459210229490916675362759557421414185223000748874438646364184799878018979036090905577270156884124622796209892700195726310893827799192930603283772298519222518449751870574315516009895777099125966822286445648967606422467984556648120731612477350301120717197771816252076818839764133681449423167596701336638409682439395005940628863216853409109274640780214815854784767705425891398036138904670737311426307187225711620320482154682270132240616054279537527250199248601787701095477592970469630086923163845086956468794561371887077366267066579340318003112565911190215958742548640843254070803008424682796783466260963830790359103561964335605584338937208447911357005231337801137940760214900266576688096790620227662843986263946810435024483251438185002633147784908655487511553866393573796432082995752054536054466335346621149206335341817593062593976776427617547611867641659751959095467670532860908832483600172512676084854096597839913962338744311418306753529266166849221211269740004464890289580135290956260522932411294777376051373930402950349465002930528066970642765184238598755035052756180849275788141924341556837250867087625471515208847585679730162033044325322159315855474167475599559490684184226895849204498984321029809815296313474056830351706341047779156449948019296917154856923199709804878825096530979436139957244410624382172100554049424847950394054725631788317844082930814125823635882517446064322923675427763675901918729144111015380226539890290997575370538566128700496985231992947322384118023571157334007081431324667555312185190173008296499308864714743091985598893782904581432989099274563618620477050984371921885503259517645748286767330126575291577039041539668474443536505368574082176186680994116944870678774033002948630751526727871666244387061597771746941519164382357959031955508163750484834620779506555583807019719185577470484318014385793507194466018669434327069194123535362943430911673356316877849968366821807841240472077053352575995521043289062777270668931328523959001507536388075113499304993984311896064244783809343373776691979641258436317224027786490623377712807795098457366566030323142885510657680937243303997938611887344070887827794689069693394360499767077156686802670486920013421100873688997395695062115181686046211066236870997464165917956260254235143709163959968272922220004928693555481509029393697918403344180088282829972782895863972389937171618805602205940494737288432609209329367909974052261718559956619922906116976284487558710310819491009431440598823057340478424402380273900597163399123502151314804974308303273878293715947495984402460001852099942032186947850989792992886530353442018538628788226581621799663765453505357181141396217328860209893474779243228267012582180530520050583962431977500015831773868598857702929899109512288532960064054068698632469186822214572277104101731953333583144895661061724065399650140947335084305150541790581053416880284115871948756702608934278530326514478392261300572840147467395586300463766327267618052864337676514018410606390504094765647141255392167495804285894665193026930489570377209064408839023347121347909934704344232117922320920460641586567249379460810102225065838371381268624074494613892981267885601458350139878193868294393265808576989956856923069128526752194601559090027432101902499898279478591399453494101807165730521070937348406126241733036262274387848967468260044039932253067000988644266484953841284159766806935601249356247627736965128133411607387243979204838314329370913034155944596880457102465728239414015112990792422549563860426598680191568017071971364925541475551542062394121734507047180080124727452621864356596235207469372964170867736488969927895150220661008987903267539800420927352955028510925068933229476051105878063078200680465296402667420587338751706118046131751687874622529689176129756976383191918064019025497619586530143435819524562960582955611429746466849036689346029009030220414943391331661859527386480551506461460020041268465316727568670807792664704841296656700368116288670527396950024623111446033412569681131089354895138431629631339214306764254226902070735015428265317048001480805032255755132262493244009615274177966901502733112482112460355969225508371466638827043710358856135602287271997622953363284749426737887918512311508543756427930680894538112391658504246571632260642518357839727851420524770869558736374354340728950233249639707450588247786804987694585647629504763497918965720009190719435572872669337173845234826465160805970338732190577227173195461078062829299235764685790465720112350749756359209698385143601514041523725682294891707019716492119374434846479490773740211298154736573002004943729168928770344598884210678854712518259462389315752300188038016044829024102075595196063004861197584861235179621748434376247588513906076026145472766982053601165849558094232398113213940721524193457698883547190938233931032363785459473280965576950712686222918424985962066828605166664042172997723902388462509022742633270067814491517698733824479224459276654293305123369523891843319790982440037811358564851502417194274501258196281071640757633065081252991377234743284082651392788840558454398595525235700874462811860666035021085993944533798692688023308762565633921953862096461349418227489399800919722471285097400396010391499519420531319752603439188826436908984833127776949145784542611863964232387168588972099413512874068039070539503841769404495492492848512016858946263897104023167420005712416043300306929056037665961516010493155418543723202054347333420177885477998042032896579027735359310077374321285873230676440648135452053793582127652701749649517524048938002673865814982323446570407480213785905752529970930985207925099449386890940378346614970610427195297557752132458159187383322350864552866951832034839465426347830382386421967686863729958492795872064609155725735547134739111998466461495611801144448709315317599804799380425737173272448796369115825090512106832185181836814708355439064760665498128613294569066235915782547613551437687996828664535869640634327829293985288578068125276104030194169402154494292677570198536175034311068385257490022933179967600508824259869115488779368230484742721173556525426643408068808775765514179343319175119826459067416783631931586861911258148811997137997466574063031281848350251019168282560987488359200635010724895106163686142623346416859297974031275096539678174758150638893228372398797131953852770707730078360337969105722225943493086463247364254284867866500173580123365758653764460680387099724506241624990595523275017639141890588106140259569844098643357445878057591446372011666622214487114029474734384924255766596945834191736757027018540912133845359252145783883544366025235071825492063985817406371701722279635694284104610607805012250389756871753687163099816397654291615629162522113728758080146929836917505926393509490667418384480976580567915854894383181531755667545678468732114615472835532738104950949250434251287654509748749858922013245695208254936582838495974911026522640191722318857599809124763592677019696875907365763760007384537152937765063253775732737602988012189806462700246510982464791036511714993666268597967695918564134466245011890913058828449530162378045259170489728851648331974750549184538112506961122679124765965566770241239019535237886768762549586865267442589204119239245665233437510866566348928577362445198544949806277066474680811993085145685628126148994046766198953981276130603270283227465258023280298322182573140469019549133351451124000705546109986710109462245970708884514348171751492082953403646839098801146655093991967920082651104945579468389388952346504909543380273394672345599379337989427261175668628093188743272988519888077406264247744691539402519767547759672252498677200621386309912596166804726811439489461908983458618215981340231911983666571592767389147267844821474410782073483035260603777432497940936120363032668788835811493233784971662297218573796107305967871601314044033522511123187112657089639493568080719580839601952797071142076681816795659717014312446096866359329547439543645857117407069861230482435541480901196919021058354318500237133722316681383068738576862159648176493363772973897997831180959374056649207301575910457597703098221235819367125226100781278736600464468235921277773647574307058741880584532050919997988429325742212258309591412933000847000169240603258902887151238432447699138079756547437164806173227629536075469451446101294327625762211665700043228777185654136695879190658967512013733876871226695309512775852735237518565762766127903405760362212102428479590037199695833752022477743025191794190331886748511695623496801968195374209251038796437765558073836188928995895646211862387121462229831984703229845368569190377815491885975604447515432377602097273417515807935461420264189710277665464056046072289325104868346765089039831545442482038772292319218113499954823154455096013455696836060130754087530981935627712243085858790616211747211243572076437810034135367142353033199765288213419226830189015331158005322083388068688390113924667372332433515066852135833421348493083185843810742174205059257787783078326144785161061864382524440923863544370828362807304779121292923702231596900092056811217606522566404181207699576909932210011753351364766018456606118204575448269182672594958969151979543747386297526031570538460971737217430270236685051175933023595430857461141725302887271163023609508106493987677870974063972141158627523778774456953351979859568032938149631811839991223558284963267567049472848785591347698850913024038554895395945068758276800015742500994665038201616330893750167296327647875344031137504400302934609656793691245328560065303507201444073899311347527045499353554354785086836893073499240473570951289006000393031620839068051557043919135810652948763002199842849878610874497734262676620535017906811047688233314068212149262204828502922648829228097362369259852596064162220000747728673466491924609057631475651008338157070322000847456042483223987375347679272608938498363311999657351622930283366217529502824452750379912876149789805931598125175665079373912548804204412616830867105367395556172814596253599978309183156033648328226663650200267600592103637418016077951088026554304727895216928914300300857352072512359649209958051108232996181925914294313803263734722359516587042024253669369657636323591283215108912869443257973078663850425065402271468315876853672926903470339448937646508288560814162727587955762648719854559435116604007676508512918810799806730451145850017750868151804018741609014502340868351945618872228509449328857697621518149925953547554131460641542216887174821501455425749897760615501979413870344615456329937658918485737763917650233978824735081952735267395481079761703270421271190534587623334315412357518417713667978411238523263357882461050642475769928351988502548967790068718585427048024187488689427509155241704627780678613584042092641353203971800002472076360921413739788476973633100937965434321879562825170530492291752573743460773240728998720301706983487389454663497557641358982767337555333763438021852945072949085754999672835107466143042287284226804320148413236075433972986633726581609817815123314432740452213293129992373764726922806257791056733395496109327695268828376144724974114204734515044456429922476499371384003249977492851442155734604749571289950749955989679323767314438784846773309201186509728988644455653156937613737584537837649280998747533568892858184543908716555134428164872368681856330442446096208469767903989139732279729502562162584232989068264864687827575585151929046790562404553932328941754464392141463433328137138749923718307828799789527932619310749368990069588696626330356798561516596556245227784758446441008209826974960074697846045725334727614289314867705132979019371211547549048848455896558536305129493398598960883245770073925704815635033031293375163689357302824033859401371377153532306126943935846143849675428120108422385857419391062913368209988393478890270879211795868274068166103966925095827844207492183177189219331014730585320559837332718032713163715306498819448210589551815095966964607516723115493437746371574418873942454503317701523875582297384987773942298844978820240913331102021997619858845668147549098798705580441163236157568190956262522924739753903924502578415469708341493338975574947750581734913614838525342877138165575637244298273343085679315083791313896490370339341848944590323559676297575856399785425824450209868358370334820903082720781295716547459289297177717895315408830875853990446634632432852814714313377386690409729463597127373267122996141569662866400517744813694088128345575217580047116997932435977759205216978107212518754611390302914096230006381330991086288908294165036734092304628483591396086780997862342810815253582454051652965792425361201213371210539265819163754858452432941958700392052026522466331273375166732681908459428488196701072522405438319260342672538644696192092296915996267697975296785242681947330616484700022219733361785088439167062769278623701083217370460722479726517427672457584325401402210836884561877156410988738824936377402586661797399906753762293199442766770598053853487567118804100170468852563216810354210044749370079695128532689291073932410501112056370907715535902553375281334438824920888299282145681974061679910657714443714151407000557749502211662290914435429755598560838658827235465382001904590685625137429065674400847937244603635591262912369770758761510447890366352054674543379382317658670402905589347170818125813115746443597235904608846936589255240022064903453637367970430244280150440873456096073654954648393173227419511343865421443776775052271029619351687331225141237562651216902806244619120055937563772532991927898245409566031784204152701864045359407667403550756714624207314472687698456427377446314711995704628069918286061193838423477760881583492013669942683039623710161258120099746221763379251566450007488168780168761809155637896461848051359374124558419577804908920969769399990728750995153487672408979908846523679559241651197992162522988133917727473821134042681765428960120634727302919844925879801630218692722648649922929817790389113734656475700168654418661862031297700069432994302556416810951046582262578378500928874546964424886522358051056060364382612422446633599158871545242174184016496559368201942242609182633232299084135560147940748569324531214641364469300279992778404640465263733028277538413532817299154747200835088381133158276652885829919862194235742362256886045343443401768412094865744862897178702288387250184312157155370807273399510610493738088738068278393940771699587851530280396313371629112496005459920653464367400269693473537480536128070620008469568997996821994445345727077444910848585730645203428265666017302746522152341439848839629537132700867050423647566235988350470171906159920797333165112716548810618651071131268184317473252888321582637204938796800543343388186529859539196510036696420206627536639855071527797391612489665082883419841312772902283020782768032666337236065683081586198581529587878519398843437773875810280094174570810506895042842039531980344789683878041940352074197713421486485219468831221290656790920680909473059657643553679379122025845396498283028913622036906278465451164962108819115861458621971717475388591232041063611617858938606832684423460176390366419238306112196518658751448394207559961981688012257137711424180483921447752711037024003881696458167120779732153399200147157187472313679218515545512179929964285330760745820007231865537711384584339644565368542291437438444614374018274064629600910732915382377847843910052921128420018217224626074005479034252690821331394639910433567277293115874357390676938630567365796493221498070316247300403811468579370424852633287093316272450601483127855571014176124401144121961872453616430433976286603948982726158620171405154877098229616070370586124038134738075291132618820291860406085352775457943047430412172612229582040844719536620903883363684103350678537463650772526797628510082514962715425847851027478748231216915393157421306096678272650364749606757740883350149733417526618165097784743096399681208277088702337637342422002873559914689467052839890331979576666093163406068265743072328433255213286378096985241417080026335056831288191105884318923736790668073655145365277793373951691201223247757167457088340501010563488518854773308159722926422299006153256684445237063911918952476063223591955376970939090879364736263187401808767996228214588147222980626612440995412284195427941507888684215038499933308746079445402824909741410239898920848804583016742910231302525770176858095313177568256535624374854291640480843563519056280319932038399161855896830181346823534629090208290297638324352107642571297581018584392737218637960825341122259820321261595205157239875730459521073397228472601003820867080035219351880174960806103099800570589940924616996015359243713328322695312653989540798042924668193446224551544487285755195438417093190688108027043383186568179382468555952479829804781824245421569205093237063870855095001895417933629458099802183438611141125487270894965108418601408283008457140478436923146227492742023079455971959435538784657641674859713779445764826871915438322469528046817598256373191038631158078901571060002001033098790592213834626283017211612513005453094970693923325213124299928273229159126622578839772824164180904617457703201680902845708886639398966463880370855279395942301655301932973117505272356601810909036176121591814029820694281031798478027489683273374111032296371054501600331888278672516649228297393975679874580531304155725653869478675995226913111920779161746212719192894293845572557391280615761143969844538913690818891153363610497472059514697135709601319843343817212477028194871936567501375804067800770913722106998367845408723755002363075274001690066016284102685227808173554965356146713104375659309210641282317781090550917631216918241826033021208034261817608554876053461615989895276079422955464711036303654371034814447915000488632417821006840254817688450456373197946277590512474154621203999198773718909170592620044168800875845015808067216156006253183334747332281587850742758783196259608378993991413787445126520784694371259290003122088355340076308807673504558356965589520007064454754193200401371073165035229623748545016307173593257794882138154375695541330211482389864392481675596271025279270676416824004706894878169017676890202417148270286186463190397247376157754239993164698256810243966954787604180410971036970831919568370098424013419916520551530954809771377013842166525371661842480915779696452390664282666546419128313453422475442903524713951564694904458273087729013219137341252834710122494875146650722527937816184910405639695794911449890797947149401460719685053821761217001049372451724265892424368987854603530597980451687532209902098533210436964024795927658597610067974821660779975722322940642086401890532848233084652463655535838690882670191177474730841579688726204604932758653802660288163491871528585925401058238182338111024470383312378016697409996226004972374958746120294337063345378308564404773130339496756902288785756229793952860242442783672898337129532744344466962232008829511758775369456381852218472218875073629719696853806002794414823656603558100475116110832127345296982097398747950791587294696069178221092303781197991648308123972528426996055658610910230491448748828058291568855559990314231591578607526799248307020746452301674878868628602934677592768090258039107713558100691688950517977385122742904150202455166783883850062040483455562477879065193405091160503365607584777140741579984847984235668345995520455793671423036358611445150287419850925490050972154937377845083992652693979249832329724979540439799657379527462942687593059850131815067034834429669448172832598442748073910722490259839656867143828617781753442938923689457114117136682496453674369893159760783868964774518582368763698374432234130142260747853160864700736439398313602144495707338330522979416895169688580826221469865717172030977827208816353351388867142041056950783061736232515650082792012545762994405254732399078041075964753000979050959583909834346462466112707539791690089012386481944307108756021887151892622841880438713345764463762980962037822073482567560841140286597120462651146901935911505508315696226988426576960383426621127184240632520120006904206655910675342023972038438657136194231969071954601352163489019141509077230476435914679654046695148352725030957275648639553819630578830149664817578643275524129525128603922192371695958133879025135600658123173044205050494867944480258009436725468498901928886786991402534502446459134204431318864793925372896207124664106455642576700527203569050657921192305930902236472679458489639118028438768731585013277523127185369186746585636652864829408386140557221953300074108051068020212171163872425084835879860769334096353136418030558857961811800494731789263684524657700599537100692992927096870445658740550582708191517323633280479842776888842431355024294302457173728744024787579865266064525440613909950230667188791541668162357677426030602818094364269530173096893897770523326438589934029338938309271083592461486041137147566953936400048638468366715954809824640682927042923728080691005006917758152553420083407480945001111098728855052020869822522556642739367815180202491907487166581447316376349265799035514789725250001139414097727525129090385681086707932408277790221331612353943274518229440893449463193986714072597063628642953390575055035885536855995900879052410125392073680400938524494279351985197737561594526285485559562885551180264200352507848964749661954369073317800098384067858955171275504591736939420446729429861324247129922811235013993809081716824542649106484037782817319904109304396332450839938242770368443727352146398996738172041227094402910062623809174755691268800346482060520017569524047910065298327805862498716270137334237726639235506058680226703097553153755032791076426965207127565054515739652402098741984980108896693972755082458277145498162499547633916896702162577628457135303152194994279936958856154319136032248964775833981572399310768319384547678892762275175264100577920438866456057365246562220017484490548185105806405756187476803389279906408938162505326382191482884595341781969702508749501583537298474210137124937962450270340496368850826174016774187412058307712115635946019495385031594610622074013278743226196859706936049859210661551906211179997629600331506325629924012111910812053913758845686929828060754236942551566569759262839934952065983291410059679354126730378012060077137295362440045123050034042738787088109474826214042677191152655415335359652170481167438867736688994827777255111288925842629906911108115662404465800471226661298516582409879395803953088636677277065071181124436914786392801474156809989759261044583972046005323545670325828695745066749826987778892469823455583632456859223796463575208652476344223687404625111180733574735984399546754711182396983739136742045381040515970074944424630513577082198013057854316326453074107722105660094764898595989126670013828662957267062395845594389943266118582507767189896850572126751229236243053790984527442915638427850938603190909019640003349536422512912426453354370904222655248410553454663749087657307024706988342829342227690233373550164291081593046270304949580450111845070383413617095707040313290476599271212207790536445706557734386448969124531561331886249151627457345460488554863836214991093345884741254725879690893366419255936575386144694448620277836839175963601326842039164469558631276338891540228802797212016376525242976451033254368682343521489923399259147096888630526280393939612383074144733683661926474280297111080674219138778687190017791881835399960420742462837694328773567692245715178157132047850188758118428609528147089988631483877276706302695958474643497907220786909576268432457682440658917226971073368915271627533822879641005112461998525061728484801193077931749948200459712743209186230820724848755330713829213954564740366578020594692995334743879073100619434075382377386493491402761068778069765428242993714175673045393220907813936609883410331672057253842768194356999880990627779687084004352210083813086986821443267970715900759110053917522799627859590970805101081309508993890064366932904467254801692704223666213573444423530988879632977510987281019748351979983880523600942200404178506251319848541617251013016223604624195982742343602679175360236539916120762000551693295669544445780753942927099941308761823178841281781999210041579811450558352526930312742917648368878694208029772974031727730312044214305382288575865993319365533831632024661197346614580602092528497408373055855493732289867651983882178845826754202047643014639401158064149563553000217766895148444418252684569600169182110446422718684103335247764284934939174639568251375965052930888050668901650698709305301141370143538463709113303735736173791189894619994071124018803162544190423865406099394394897538829112585429966989484422266951103940212789613596332033444453931878041848540848151094859703484677726660878449932203001935689900838332394633029078482880702971084119662075267662328500275512280477623033099525282696558821666108142015879492644125765438973022165889899541150260063181381938105487607955400961848281420810674672683540821661563063162059429020779526678849615948388512499108429803954495138377877353955426343792034572658663625787051007666506130371544022755602840033848596947624616855317283787023648009816101598129111282129434347884086269516921287630704944298464263020914819494541686859940130258678661967884902165512698231678676378760923089619941725213721832348797430413318325511112881071386590168295543267470085585353041503857916769437791910890212366663071644474337509659760923345527319310493636030834928213219478317618764774840442508274685431885658022532765089595061114584892543366277399460960062745291998170656772694796960725811610161774709891046167339473499508084586254338182037197942188211847010626159754326059689519738878678020395279792430358690760155858916826860945428131779212004561780981331475774959339363184700337311770555035753966335930271137386745583018244216558707057939943096614086159805195682408460310335418847446746561446309643125366572327862256567915445565020043644515700613419754656803143950647445720416614841197407300383598662963859524694186448989386250284977916901867726206994904663786851930278169444772699546701458845028616951033485778153539326981366692170438140488218638510396102063798777103516010829298820417383871435067737260487847436062539971661188592137916819739228744001400651368563702825550375123329658892684197992189732081956204534390607946340557115715999154564595426888810565267700543911870412468837017177369827855036262244960964145823784148809447638724323680618644425485863619277881617127516447438308243025462082216465167637592240718951626306743945834414027146621700721638598237917017067426977587000661101567607671471165709930703763905987577478703694738571662645919023012693415523573474257694161714390423219881530934697690718632571834385792231807762078184384768202223464499117965232718789601499114377138314865459260381924261384674649866516581671109428061014487990996824690596192736012240336703009418637714278449425009144972177624711921961324823703356982477677544008353026147492644339695244472559262294480128992271418705970031408795656041971126406028859538200558385788192380156430253487956831934702524578622334395251493636175781872816537385792391593261472342289632527927835034234701950984778851250704416312348400888178906853954982483543469792809590436610850775100484607100468718793855723377854608389613678597182878993795484162961701498813611936538051989544503825665115591722184642230408448110350650839943841129622830328254758738956926484515685548480508445144153884815057180201149739981380721490719438184854146569139293615228648644516178092076002149068747221761042551438710990214309115789379002549619244848268613871607259123610587615869840304213558098447458953648059446669898359623762586861687919881358906266855336031299363693620560949021183940929840991603504039793755577158026438456030780313005884973368494884034092622896505246204001655731692288415155998823356610699653905875726620644314079879950502493488919672402403569182492895122994957932173504603847658597581817498295453944018828228619667665141688843195627201366611035828607605069370518360944796529418209474489833220704360986130781201983580937855981478611546183266820831340330432770460778028017919483885888353028807929394812100961077357187966342974707320847796503185154330340769288381438548674939394408692514963248621296386001395697288028677306979730416251364607650660776150450736304002106491245572420886426759796633161244932086305075297724408964059785530288707743724540725816233408942946751720907297722999743911322071337520308626590980640417138344814675439671749518888443822529174952545827010636408623757959404850497710287152042484696541291919330317078826199786472763152248487197100414472587392954405169396625892185683038602103834366585284660210997756845436300172586098319312452077761403532770198220244917048374616253273053518357128719021646924916754611040975386177795410799562173039613550543309414040389151551386980700300249704857876852113988340943129863585075802152628070371105347016965379041882747090711208419253351914231720742212708481975829818783921222665797030546300083334399143947837721726442703879552589290877409336577715857117800590053363146549627146057637369155036630105272023948402133842756551714717230410818466825776507465104685109234808278848836814787727176914676871043686355174733484431251790840144351808722977893847288482498973672592724699570917167146960751581525260503749639879625902341535675733303214144375795216618709496630213760686749431240077244419983816789428060731941002386221027205799778939838431846238986670867046163124826327152588397916683502862560355060555752470728046287831460343429504853971448032046135471528066058045564092252739873694402084244151237362543481045145016440271079462997304452703788565349181388467429186809120573557622540860541811259590070764864070363464414741595048486992599418959937594845428472644883899512657653531085606967711241077569201880481826054064107434447230966668279382367796213242926978625523202251703279542163777630834782089278199042066337099292130221047936279031919212264163251705030355642782458330591446765599184060332968845241612307116863725451073610484783360360931175858279357279063961354250701403588107669958632018999200761479311564728512888057424381682724484324287259899024639924640773099220300182348247911822712242460242215433605642787242890183108358735490631533382376710750440239175384272076737548027585825507012030747771161027626111423959016949891957587765653624497880062898999926525186916919651404608776341465801028539479974436920661984817663137445697919435813615540902775422516146913128545202444804258454977499386056310705321471805743704146996962829242734634525869961439730285775306313045688029154103025346926561221582367197115885392101962507571658347997741466868599077792556619995378127351137157373357108495141496596885115605836046695907468206314540530251822432858725801103685501530577821936014481071740688863970848158519114507769848048361111383826814734916024246327194695304756553833910299482658480317121606858224835778819677689162657131420317542646704167005545958862801882040811513645168966691937257231504253428096295390096632615084265306534984937921855908284325600313524833311723169048935213630775208349533682195738519203544264767324753710700970567083607600100944298814521054598128300684520114672550880256022922457936964374164597803404461682189422848919753940031450697512701717112402123665182896307188672884339767031842156003615111957880254396545723768531953483577888912674007500529393319382237714099264490700839532361410482711425694345575376303159316308848876260262261663563407510140709217817204631886529138235056431627618149723354093373760693224433481073930441409346529832955211159235524072996663293608946882734083678701657081475406942527112771758616733581173639044158193890746869206462150012223479751050995428635513647892330173159537091906658855417961858438287349827311731037574814597167790104449979132217787647916630078366792738877816581018044533692150450019924282418810107779996249765570702271991975714811749545499222553577489982486253859196187490663871387067367221431553282075787567695044496267583948252537875526713955544284208233224768577578782086831066673443929597998140408427386038635415372605801582469217347247787386649336004980019288270659381180754579225938521045620296985122153087413293257342622845439838872141084959379360208246243311726691290586089410267777627158836618442172917006452419978073553860956975346404477517600138992023510217819750203599031092876534945949726128359173079065959628383067779024982949728402491719705548139287932506932478425839920857501326115126869077408056010371577305146325063864406300507229441117633096391890280331589966296949321120214711983350661353262365917694430016231339438502624548258286492654219148895286989624970104082508384531386934360372832689072928743898009237309984995763026335264115130838505563927484736010661800667919495274703523681253828856583961370936788282752216039663334607957382164354956205878125165535830805914864762731488930894642587298461087545023151715517807543676836437049318290237560939964199209483101551769712075467202593270631557699113375896220803282166875030167469705113127463253563406549149374560905751830041906432993939259685706768242241269229071483384779736671118476837825794661447796875354771514471842115867422801133267657391121636132352348030591311712478214523279726029489764473223376712053920761387515478684710035014981602045162701129945963473336366990618857926429903496091303334271700497092350856326096517982652595347742192771397019550014760065086952579670455347786264162882903884122548456378633714076691650661895058501169894609085880187702942248989040048311809019199048797217388898601616517491707070760460044702448401378671928749215104964516363649727514753748675942511552743535401854856732517564473573110982172358885807082612887696632526065917825582685938890558559019382881074243870829389854968600278847725023796890053625198732604044391428506731012818346525750319585783258095864414544009522682824060031902868251351494023273828860060290739745212723437880598035023360844307060503293053343271247293253452205232907762530764451161302874449083371609414748483761202067047423284952071535308595917773065348930740784886052502198751014965203867930009744721452412450445251557457503351896374570031413709868399382240335572467369819345431663509695013051644063314778097397179644016678416152048015071795274502990166655960408794834275074927940736092153409409334401598924474996135670011233253783241957344978451900139047001107548116222660188548531454810903951425976122085320433283407829007741123324381872905291944696131428796347596126630264372640982835328205025657355571691842559101973123420246875938484161480697357180144815502374574873378081436243037853562432585388591763557686701273324522236146137304831115814798917337602534182580765399869777634815517533553060538009385661449970990985881821082268874612555280099160601845613358748183704234856352428531342117125835101056394497494227203933905511106438631090919076722774087769720343860519513320765576684487060887926664404713348870287642453380618939335149673455041925177324564554572802179520305394081968800892463950294594625698868449939284681069462761284670696066295289297186397610900754682603573814004067812652191890662983922686399253149021558844780903289955270095924220407117278767103083311907846326842456166409899027789563346572108577591664839178303413582827311033321071874177858532125250736944335634853699692296572031383886477747891868851215061631848282287655804796458321663655992375384011658122291132594897209700138062933264073247269089954591056433793700879322633815018202253804139213206750697018535966436206205940608915932409863808982990918133952203264245556406252963976458382730117100989075462189391422707083971864886233698213428370480195165280558050105908304643848523409497973509215329251782493716376340483337183423283724714549538480946555563872980669051831930014471081110832022139601720945319691661457116102016167028946796879341223002331832546428727099180511832926435872277888184625328132177324510263916403849754512611126329380923857951634678873978320310199629482558379769765919525613556450396016190582197250443114911496564111703836234603460222608636750616412467787033633596012869852728318565576344688032636976532253556809707588304152082307427364279849024234975294124300932526979629402004292759309310342677682321761074908962584025291938171185574464711003539979745612803417004736549640163889072390495224380175014057833044413657138229787898599376177566671674497604565247506796501319206163686272573842619071526390688216122603399493735543288015442272816515665420831429163101910225481795800104794718506436017278350046422126364608304936734624683959262939570996956657570636523736270692092825133226093188851588318294894326624138561077909875462984133378843471349818120716631612905202775364061445028151796389573735174905906864469592794028547456419162012260064185563008828263277320067884246572119609278283039216246053733413127439160646023560246714302126488027473387678520481340642736274445501444301437959010792593823558064339202923926725569292856533614290128519238309116604848104123777623877843804949614604689030653385726464370710689710828012934598692831404600125886868568646799670412084831563467701576448369446315436493594404988070011187433280895032764822331327021543295098329747476891562769056997457239159936047178310344106413048418173159099076705300634327335071305384219340676644608910755263288405457838300694045243272090690828706368146351945645920349952287556528794039837708341314685518787568065154296722247096379593761719926306424373354431015455478541896604946694726979748701429607013961770401029742564559200000871303464028721735546153948726918398618515293478716818048029919156753051348876385138867184620600534659335358302332544149053163767407392796170186269141524704731527787624558348992896194826846364176186928210399448127497689878668613386258234127229303392542159302566704005217771048716581839916036562766917345539774716618946042673203993531508138079004732074212049028077614269070525656187783851107782581178082251945613361677219356967395304067075398614612175471224383290981550084129254714885773084706290633680145208568202524520346322997343986526954222927949291627955098447097456821518659987540110954249444774930542517280336319540661657891741964338766846483308939110654737339786110378412653566241920376070068579967225542669049501120458471821074488372899477731669902564911627373734541778760231960240234269195268754348099701835107334778809679585694242071217716255866497658026051834589525539690687113615471413015973195856835821011213100311749014539728851688261237866729138006429927280872484857268977153207745087743087824194423160474598374299288983724488116493684350053786526311659875093918054057457442686355216783370339255936111065539768714432662724245559389865793804937892063650170329393291237487230672503972218100015500743275928757353460387339013464801007905854396057966572146303869579898869427551317624187621014759238700239506588196153348366012976243234509776832003596900443165726049671096813673310615987955250812167621484274781913241909440729532840016811352787474096144032209186049038311289506128934989086488890165533809625941775832016053728397876097157742198646941686866645811329897315493952615200170332534625937314515430583116678553338797399029221340302981416655155964359192788111771339025119853788320005385567459062033974834172913101132248236976404121554185553586126862686199700969921523882287597208849099430277076302814841362987348946600628215377778967334210525093664964228198039041871409569980656564721135961438986908431650103844939254632853880087297156654948071382408154071057997958033848028787038949436655053071539555648432514079481646806097137388063974850733577893138026483700345177681682517900284712983870378196344890550039684225679879486291942876113149214415087291468598159277079259340052259580279092613173275455994901239423826426748696989236160623844883392963253141554759667579193817767031662324568913272096604704233404116783993585119017840954663353315557268834973380234194048728732632991475673887319900012228025209277973812492208466191102480927195213028965135072794109025650625770155715018057413134611554122714224568014595625039441427541955982016409577637458102797523559833335752328928422667142385257003619591005218512364519465431489901616889550793131394093902634752900650202447755895663295568037624135287358270055609860608053162030063407992225257672175335822595799780573674527262554926036464068965842703602708170170202384258249399002259499469274633872476825176924873762433109867871890561803111117871342428350591841683508731402162471563892198815298555646433976229586203494621200371920363898428443618794259787999523933445127152415416084542784961047132509897596143499670335715689635970832050793195748685720681643609890456993489481521392784687138751263297394107329978568329369566653394901390043701210596199159296834675377890838117913967169128500604891991656738302943454091527008325343362236732695759412869899472285711915603637775652463249180879471986480813242339865401541815651052205836294760387131254549304921090389441705924522783043715632815141156735027299010317223787366760251760850774633592995367273453443984491692150353385655739472064695600878331902021261134092764541413606120204087929427557921486601058390854829952470684901324935711571274317854307586831118093914043877783205731979135210355105029262711258379906536930424460688816090960806561030673153621457141278133377135935388958718657526260708757950878182471269895001932135178574996473726799012993670610225886696692319482428462368605141227065177897176553879515649174460379162677583702143490364438974520356038508156178948211299761944673095448356503677882620503589760773638808409397776966474003989404919613240784970238051758314602770145001489604182898223109945522481680142330406370284289839400472896891540142562378373321804600672973079598811453038633642737309892405712989254696530840083713825327088961163721308763102392557672177168655847557872178660629392591750865541137878788727597308715424455873155200371840559616698367945066987812875714281193936393849925830056000217112579206013642807609088701245100834416999056943842132336183420162851292087731109279813933348585410108223906842360322955387975870835832092069403424014101901821277027936494588160131526564478539545046482034772258966561203098770429522709953965133928570347314298737509820279454474959870256956698498260097716332942297062103064950734182792281872759635669409305895804622110389570048316359675330967349877316435994566774126987049751838532405602480552567404291533391381983704757285017529967636839737453396068779429774655022330779995334055698024862746119378066251499590311710427890724959937504486447028495116160390102236282143777339636391082297907108845590015389419308414695268959254504778042982242681996936362819917207507142426426269541490117788362941071484097833180329698207783828718098877136101792897581116923481615750944679678140417145629001846900231586236090182224680149995601151989635212501214941600756422220411999408405015680874933478776483916775013315648501644987591054660429018520228154828943237695874465621971177437379408417314036712394313726892915886410021860514130266337146614729746400077247537213843989441006523838260902832977798723056093636600471275648347773756817566876867385228368633702203919478037576239238271642129075326566350807952745319138831674079042694140959074310898686905217219852665947842370527617054338793754538634672476954297666091461285877604125915132907848609581759465417668294192571275259752980097083653104151280607528376671461340745619713911492682554254100030043891466482816302415656359375441310431022692977313762212070552094640111380130912030138655796726566290809258425205039324637869617611507636546870279302035690720889965966486358779692085535367304399414295154398197308235380417170916149719716628036281665183463521147601830385638758214271424955975002401405419912932663879787701700563130263821682927827657576874616164411788026538387302939293895607580819396701357858440475374071778433726931419023519976946933114018646472111560198761050361910454181553085399909492629916354653581803228163746813405768642317008547748801102431423564092525361376932276791043425256602485538865114881922814797219170421011908452959076640766178313350780427340513793442486748093384461316991649450364059827565670672594252600548887628842732948762908507498627147748719471854705290682156797512700849500555123663209584649385908632895339397527424479954494655235163609910990098021797219638910723201265166957006226438251896197009091109429971271228273420180383795153660482576658713038158071860373524292286966715031664570352221009800450287957452378862197537637110785054797104094884561566578663602849216902544209589163583769536950962508145539226266410402800802930044496227561552777028970506468013306268111770219326364633099922988248073614179702664772222011459060909959310696882693753540544953334899605236199619387996013658194233248105837977007702323310843775610061303717159714678036922730236790526473322754148350929522284112874281974433421167203926111515037133712909521826412439783440127952833096397633935486798369917969021985401505509601795609814798413664560913311064068011693399176149168728538123990664542269235775399186653863466904143894077706475258200173903971004275487564165818785861315952985485114117080067481767971117814746997728893511979861391616716646622332518592529616240951485561924946821435296448600975038157768086465640216533231212974882847152275574664154378961705798160892985732450512687543676985113283283221524423282774631569863975074116605264894609612258950801710013745312705792136745443418589862929854455437355562974769515757957546775818902574899687825584886547791299839256506218943173540361795584462231039386498766674594626588149748626981244733969478715513383331669186692564437941276314629963672583772431294368753526528301725812853870656209298963724265322318990648462614269659495079920939179589750543581802258885429548488333827229849710920994431179150545778514076301559255425101902116169463830545689756654442381611891673662091990717428450547113779247470959888346932560200125919109758326895230162163541999111908361804042909861786679739909197965917181186708459180385093542215419294750225247130802041728546909674839532433356340149644270083394541452375695073607178537262878370742974566277268846961133018269864394740556256375581986108902879527928498808071299383029808881942838912092608799772380765827109727168115535258463288764131953138724277500073720063554948284593975033677843166309194820383929244121672901686012351498462547459816115649455617833884639660056449455417639784259006186232027250804827527348279321768973319260326828975835489435175437498075532323370444939221431798286607837886624250148039631994221009633756238554726647768525621011047070340799737284096741938307225135170621844970031570786345777785947279467748442754444763140214846550303073784212532930228505418617672766424243793042954702807552160287587674711990077447470826769564306506603675129121285697686157348788963642917495066200389582721022631894838779628763799029786269831923985718583450609050478973845982785647416377635333602327996813810569123096224571758756570644328658390402852217840807336955112244274522063282331957515397592003770999390469195430310098570451812963682718701658200268904734346532296838287520974482123850422907432166612714627779713190810475075594752993810692938127185326049862284445727309242420305285052341150384548494671585551148613870738737014069039796144731133852961749327517015720202992723692006465797485053526547911641180618353927090609001826922049406787244610443622932836467346382945015111764700769833313012936923911173172580685644614518901037485055687248908190940221212279062536179207114634532256840782669914807101068800055093181000454134798470702354506211191703235874109666685131412774201478650716716211313045215858470550372609722931497940766714601950252238375585960363961585344306187305010609197669381351000504412452871400820186076350184549917844171254500707872033972624916285459561772286832264352242709247243647694477226806481742924781895211005820681530182650041205521298075297312281847556021494855812496322012303011212114524502170772044431776884335829671308715752744813169103313141216298105306257434692905731605459284313689967880026822023302344504732397724320251689901129409999999966542713326307235866285573462241426509820874457505736837809561414873699588004986589187429228339243918680981510333048402242345952123898945854514777026739354729903324372229832415195261269058534591279865428078292072432758317473107359247072357411533606058548216756166338543926412056627678069915834265801292075364991817954246193083246948858383773028134083004856358376057844329758922267818616205240242830938833206956698601990164340848159502802258656134776156275113632648703753321360752724899345354649451805649444484155863817469366694333024280907828319033549053110897943343504682039326807418209454009951751827935591610679329158436249171196055748352016551049491255182707398558011489623764109038940721806610367499194739521524649755750969140692679420323996570683820392175639516465491600184082932584502597805645498896147188205568817727015845324768555383339574481817873656836856262682120550459871144769807932968588344621398725480452842860843191759653164902435243300965854280077054250812845813021433392985910693121555796345680094899795267282717287616735526938128025910056159069684631728897367340834045390602503389436865953779245116334170370501553810061252629763036350038094371088449410340768584159852124959024527781151160945166232575387635329731159641636673463523894196221716309859300374932433150320099377007091999157921378144138933004525002134348071530341872293051851540552543995244636515452494308755926273265138677546878156786870714317758678533242244227708905329433567815543911522307620110263039778246987771598960115741491451001680827837894700190560954724853229780485481625885147800603876295480079394764292289393657901940845275892316394845753745705751966771041839742750383437886668750791129713272742205025163579473299472169217248402529252448669320148962964001944838611807490047416515643577589902954179588285155775520842390853366287182286486139431329536904259544052814467052582892443361545506772128691859846112540869873730991099274010043389072680720347445696803151915979191555926577198111874760771894338772191380805970350856266264784027949178861225347455572671944223998912206536746428947743906450516395256345145034202086167257200635460223633773754257778208186808067474572639728435200329434446293824732064839739899748693944276288298403307718077186697197273960602748554674455678620419700330871391472940409899863193591767651542002325907138527236427193081623901772702951160123360762222413178808889982530248965642371794789379323889289439960739593811959089099514242681946282984664529441482007847036651262234242511394937360282819508777020547101564272148659852755619263495148292025309179548932389195642156399518771406825104675236583046325812462544863268296480149092638978333740908011977148452602977732602987024948417699919684662505193257612625907172085893376866761299055578449262560029865582365141358995536837931786984168919030332896000138193184701114875931588885763991121362968613139638640704977672326270979749502842191090207610611479092911093357234492599501086074932911527848027790258064641983563989619550353535441589327611311260210359365621973917386457362129515729599213715226965337784724243726089287717443246486112353771651377356762499689096704963611581752370608848057628005375602825837587892902235201755429468580295586080154224457680498711592987483389521326623365201611068168364262266109918883322007992993838185059895136997826501189726607353223534073207792630357805813431741410122255396264284587146281399627586468813775896896067270910347572641463161275727435599818630740396768918901018957909886049011316466062552711146936949019556571218204707363814750449654435954051047079607435536936365295408120993619525632476751145686899855548587313536761139092371490736339628759686106534005706160671562251828719713210460262821629412473898728931957813473186369734157193378629856264080180031191573100965766101826860071116942197766129067105124822666306215687980392651508471518679249585313864519003631242583220146027180034914408348536811604273569191469523225842563957318099676532123281133061395019656760409018632444704435473755524853690732554310187852332304689354844751003966332023496675591264861180520763953206027808882903498599613713731498072832552655668922557236017776084147047398301532244639974886011444852667551756216568603088726371486124192346362104458424705974123048330876189471411876040599828287016862712371744413258830187568384105312850996083315886572995789215807427446332931162646846749133146768233260598449834175083335081365062324975452307444369638136510185196893964814869328961670119078047385534590960102373129923302831331080815147290578776555021769849061157407280428133956932961530036231014549265240844431066406519587371198039795097714673330081308427597667827973610512427140352252350876077509565444243047038147377808021084678604259690191442444088004906701600811661976479480101074124995294701819220127367657645230207407464138717898159493356265544483894535237398384358869217532483799992242391749266585476156831815658885785301001309852497495400158207129319011605243726724098070720788143020370536676627295806824824019989617172853515127623557621309161902548090591573884017060863458714266824821871027041095480027076426537509557256654072490552773693016823205467920611749508536587000212710156922847990964175724722412812454714088638078969252109218275466255224833300244327199561788933993647770501554484897632755944921833644646100953740598181643508789686163994738850553538250817370985103390877390657504827541977007526999781067684899323556744350589508247743193289526394130347937893080855692638134047707034302073646684683262962240370687863806893754331863002400497636693943074476562813699685305776754338733149117912412901124388708125279313841394752363051870572069279655218072716694240437622946667569649653470797934727772500581818719658629797159182508933875368421250274463801786375540959691217739317106855158249461879150675303373029211253402923602173519901310014548330370944754221833080198213035852899821944325458308734545230687970756216737515308943570659806606921027200903279279136241492450031917269234962843336458759494124179020255623430505730713203681592299475717020837696754897989658269566499767312972643389749652089576892210766268224667424614814873216004702403596062098977502493506337090773633127398266524960841737623713139337866056206172374795564176039011338729729750273794407387961921911785379732974255148916757716330291810683626985505645099375988105462410639587616243163395324315552355710826553738738766685722894514129895201973023944931361707803283474084707455011934555821083747394198058977724934858101448799598878236629051200013907545902093962344330857280218070777545381980323236211227202887303158403763167791720226994565284498815032659964346101033236150502513331923182862989844467555608633450638902379675157249813467492496814447566270561181151534756881249257816153110637315344167228208990490959296033759435916887533725927896159899412366094337896755180325322459499031972627640919366150532820158477720990925644456750623104931411532428084502202754976437582591264826218637715529178840756364705267845207472850530153184879840179945912338490035564766140435040836998371556789635071787243640829129905955510872299286761970405571863043034791487748751116397270093250166417071183156605796004825208742098995513191978282408808228529634858249362244444925026698227575066268853970973673983632796654490271295622657928366033538338168110519436881625788067732772653786867790128869919947144195183511588030395523948203421977708485118786582083470269537539704143770618542846191170681764102508598999248263382987901954170260612547977381533058256229635368489956680927193537819949231824306385357374326496353593366758871287669922215176785379608333574658619837369829939865230122683634292978845003986894305117071563827372778843731776088873992373995504261493454784448685880367659534591705723192038692678931932693507836339928555219427928463491142735204968258262759441034586055153257421652104267532862183820406287772952568413443465216203142027988313462254397484428249886849121748969894500853617997277894890845737183376830140596943779690359673965757815118175382459009041147804016132445865441099386123063746738715952750607097788333855049985408442599036079821546633989121220962586524870905660564714902722658728445103263100651022448661351227329628702088630505702977171816895858880043516670006861843651224720317463103938669587179604077165849105396023697214478175555655618468720185364531063671642542469761346799611144691409972774859435900873673809842131402917192125017803051211728570543477740385312948578396893995750515859715471220386175336586011540609967258775234682068635996614795791929897685400293943346895175110882923226259425528849496951463274855148629395456651430052014135295166983091688274540864278645929594054799511477982120691197063281371317264172788641594848536756113847811717423453092674306955958361494799104859956106742115327913639092765575791803318803501106130062107635379770231156010095334184592792588210247902444725484210574823792467814978586186929239354585720985556599183792662237564201204916993080095493185332457074462558986012449506267457830935221296430012799024982332628292308627973961416157098679223623580224745346392674539311640025989070980444479536662061819951632801117142499966795310278316477764397984385271023988921965686059101588952076179335915590176889774038667583582141864055977509755888000868779604204374106053080663370800760563962927386806839338240037004310373398483695645413500045014648428308922265604265714455184729177394111993440679413511834711433789526992950932714592181921639884435783183342431574365255062451848032807563114989847017769660211071839132476519386732871388895760570194256994260332240028137752190432442269716334927540650548161937171667814395195278397845212328182244114780832191592327829441322393481233716231057416281640804272347028524975872414690018562411859194279491362509020385802093513151701026790611518806305974362238545420869793398546463933327223682310033765017768684407667471912311767597212450306582858343393547829260832157997915518450961404895288868385560287599217585743509759442235533076784629936262311127074839165430552100852679923293007945098250100179657442795964670339874845791390850550344872642244072240624027512942379202457352534567722027182467141342801655810640587701636725897799542091486045098267947801356661819794206585466936539180659186661495102453725700079570712894254616475826062237774054824251131234840677725339179206481129753350310129494102423596582743868707998784533372225337310783117297715712978899058130589318191233729431610918318028917060307693135882719901907103070189595506059131048215491457830168512231626237462075822438786619174611720381822780642919085794902172154758004963322419089484575608561401351378923677025230819761148411040805275242485288460193111501624319202147692433659928937150872435515252783705703669615502912840661689757170592666047205925981060565634839637029234345588949413994193625815473406854596695640187867799035596487524082288684925039335948063175041780246168762259048655482543227011939588062010271430185352754067836092998166973864882361184139932145785556805765764203846097553697424667148370978883225326393402161342559642874636276881073102158302245622726559193730358231052974701679208182276141282389583446869152443174663712284068830505518671306066733589282173580012633745127080472519931569314413039154308580859279185142827383622475079380634375853626812082976356885366837131932015247784957616749873697635866986039858307964505425582229710477490746308334560376664216441417971492282566190540696788986015675244044872202831938698945885908739521629931279392985525714746605883540195248433492694629558146845786219572507086580181226681197114983443810122874130747118136728876678651356871068634498123508365567129809977936660089149155513287963029897699203369988811019738705234375070135658386473866882453545592108892582561533899072777443356175160900868558279633180611139840801145415725750715479661015177141285565276203697980529624492009899015451143442332259203940859166743568789854693753491900075420458228655039702428436187603748302836652282954206146330964434098449109624456915264560257840362996333220713852299611917155911998919317140551124366881062524804436912010280502158740419294555100113332957821191566256618569153127760118242986070818325835441614703068618364598453419946645027052043198513504523612310806643772651592978615225554685173925334474618727135000991985071645647463488915926876564027966915019973604439952036306712149229023227725747961689617618628288182251267974672891966036716215614261080535103690170812695122856962774298836267759704458041946686094453383935316769052050584544350419579020148843788051417009835176630642266381370145612332271743091900467707625503732189469035408576756572385673853397449451036075431521802867606707320405877406604460347238332843030301306966714985555482903993222758549070260793229621443867661141333421982449387794981799151133320985186593384244332685500047496039196707455698642721747357273282935546876426098292815104513804587386739537662578935484849852726150499350206182559390469053204956569910897246509224889208917634718093663082344038482740982818823887621785187058030638401600070181622319952546253292497672376041818063431416302472866624782991281141233551054992685820180050384334177039976848487007380398928365745392674754953340910852634630893427003168866486908218480450822409595551476538022415484398854226618790766728416118173094463002808334243597490060883365554021899555964201834656286441675665742641016366530640700603232251172130377894985753939556561952520112098380067157007175250809133786768330213653013509985209030067875273037487368551297295162265902916268515152179936121373076846655854481496946301513342493442971464290239742168658906729702537475541418112886422686860272587228832594732210466522887376483666678444235766938318201884209987360275720842787340604678406953794956382053376672979867875541864903225322285987846559453677457087728116113269631839470390390406101758114784443508029457078268551874908343666102257957528517592967959566258824578459721588101600507075672879976783335497720152870929647718467035366489040951365362977030085413143124208872816468743893602113369334428317811306435072870380630871759479248868191995578680491064033635189093147614268199041444496393774330986452564076226760670132786627382142443625099676897785953597845333968103282907712932444272027392768527953753568607392413711741020540488911373690805707921268490621630319263343111453352797377184776155731684384454377928355527685793967846747370057858761260619478874979575202591559442809869119176363895602658319879916648830411188389090270984714959207310327400875752349643487160846219807225904743925705117790105250698164402464906795029222306837049991343539884845715717161782544184975524816124074243566558213618558769266739605772676426458872189274533187592183049634172562938917023190733487439647651541453861526403745778486764768119281426367324366320792424693361845970985312005449725591598377593142504618892075453738677781192171254910951043990368153827329086839774221368070354785021265951043287191180614655884852729515153741703185806724320476267149776246618717513896388773985518188388805452866496735995107332393657568801786741711174432621059375689590517866975860185165690297279483348635939774427138229532787587456712040479596738571873041335869358154338585042749158638443125802811651940679877297166601327963440829385607818740158029232833353858161430241086470135380729548268476932443056711838604663151638329713409915916678931851866230786678213881372692164742098671083815482167989827953585829510700311531242388227238617039997593003536399638089947620266281275215959078566474084709811549089151526522490216894123097794099963471678358683642007171533540725990023496202449525522579906951793624078696893345134827180118086299667049121294565031939760545701220829992145924394914535172717974529942306608704582238435381299055744996555424561750136773833850083492106788927991570694943186015397247674171191101062347456559883644494266399138217574581458893453925952025953610333213476166817784246154553854193239570777980168928720859127447210369815661733438988757021385428597039925131648679811761170991066396532336335838036246094047302714354558190106580363141340180905906551959447966112602089653105241313475033591246322684871122774833360602260632656726369543894894984138944111508098570118211780576903933913162620572337312846860695221851771111746206328672534352498449496821170156513800829073204022943511123242019485548598284004415553066862907098126162831157453671545047935810411384443688676084785768549116402010307828588686020322959630293200140233929782491787844889337855007940685954682379040704456455737437964670327029681051359097350775214752978128405657807825151599344613562380909220510325691078545597461556158935644916621895854107922268983475511614752836989510363528846616066772769581417905919171272548504362377261988289852196073288965023512852807774408964123803740244150824847354355845430587490640566028577605190235508119093646854137314770647006912108066951395311896533011263694294888219144848693273471552332753410190805119460205493765417720449911373439132575906417517386250751119559376028745919416005552443148775377240501511372458810405331756619717500543898534771583991110002821883548148160525572904921381015069484769671045390345543501793440777195951289390536800494147619757843207666606883638184462539040868381135985469345881057320327163075264457706305556155101663678979649062228863323549734279564008554180467674414966168137911877433086550089703052821663360632161998909868979611985749603836370370512711257499533686581062960049443839329130831550499689251523933540439996285256824289830141812857430828621528405886875610353522211596983241442389638849432901554935107826685348437681736357879871377846970496261732092498796365130962291940533109433398123549690510348041504236950323883112765358488087157421685262535418825000789841444911715511991039437070332040268111848341239732308894802180815680908629402774132789133890142085988900763175271711421224276858399449368167437732333191856527539874463821837611540901500117559451106171981379289783769385140437455896530208634948316989389727083267808754517977575420648542727503649992681813962074756605482174722655905621122283166408391985361726440277989154978319413000425333544800884371995736841987092208348860376512466494876093805290958498241260278914798950806021248904954457236155328726016803243623012909327834230040641264412606556799556852537488717800780175921550657130738623900817227324665912862822934203854817727729217756553292774086826412482372800995140680464795893593783662314067265866415660134856257436478744998817101733840496285984923127574362272940519929330259588945963200937159559915377006207943386086169046264660946300549983662558670670259462075870629293743418093632379416358415468138293659659733850714003379770395842727783297285680844828353750351795127986218149397093615303873428387060300214000694595341492329598968772299648240798033552399042849513105669527745011935991902591010334137311842283811766458945582075109216577916997040143826067378405321743483512180181230277796444602714942551305929499299093667984416839065366869394765584127605783971876012677351222404407139311605669403204966628395840440059618709990572157989505441898302084429511272340095787696266447912884283807580970494444017840278974717037518635225526007520532095442150494639343585084503768701400048624980991715005283720116391983183935634970775432248042335027659817022099548108238956262077373858876767840140793401908595832743512649626454401010492830649223432988160884762504638576077257942701480035244011207634999669600010085912199511462930106373728724054754328018064136631069020741535217123286595446883598786017293031756337142941433707360939391219734802427914768365584430293970977266817966836474701426733207101872316313779068334765700347422189834986041689981534244642668923926703539305435053233401117855315310532205156947769500963099805185202336084098216941174320107807740491022258629676962714985823790319889913785821926798722252670843489558483448314269005951847512118093288990619779084231056311027932631335054981397947229992774787629053552549643440632035922956007046629166916936309582045231913729431293909046964837163819687288595691444102512927708129604972141641115059255069492830909230026717800197799224418066120251301137291864605882993977778005851970931503276535215739045363749841320338751850123661484748192874461585012173831639812245491304708051607127648371860613229227945261331637303901802605705584859190757346058322350967845326566960931474356163588773908458149574321033905839594587042175016289474148726662152642420336864757985704618400760386596033552491372293096168171482944465482842152433195244730961891099170050191516794025568420072093953238928554923206700666082108911732493134150785739062068920860855102814755070378899352227824341031860491781393779363908452683889066354196870137707014142694605512793648849152301912247510641262055042343527222326018708581172601244821829560527572495028404770888985995504759553160395085732935353213463692935365777519020569726814607811811591954522277018870895340106788228717969134366087167884033777373430365932803627692633722897770885805950938013296354543397129898294345542667631638332190036821217157245299695773709075391065262811129079223128712860992355494645865422403165393381370032344733697391961074448101427874788885153303239552641197439662354871948784311893895307565025450514933670518518357221357931831097962232598979265198367744090554814961098335526987375767259992499990306476651245152312592052979619163820646436217922888504698533833988884706030471250394221679172562349779660588272675800885062115612776700979666246159856184649975939735544167101969082042952544110686607338224294773284988818079106525680176153352494022589305743596224357647268717249686073941527607430142974173088874297481543066599263862797116985804119547460989014236344029795863774407596012449450915053877734554807110459480465418489862392437216910243322687845780544318762373692719356080907717313278110588821594564548927495438614147904218970780208799636578993596870706141358364435124160930043487805108747495521215420871915378257436524811669490970229195583777317256882442118069983154145625268485576180299477453045825534856136198663645837657850986046416203125170700237618841632434178127264532749761097996647331826797037028769550042894163467474207212668506133012761577629486420752287322931649306431021341472924975984394972776823349595585484157051879590623975888131287169013988825771145155044469893214141515642771710705993671378955598895648683526538987581969875245952637325293365437440738735520770734363433416768557163144090237617324398257046023517058188782463964557259299486872150380599175240714379250914000742414068601566880163984139313527714919233468682331257959355453541309008481655165695392616235233695653549534024038041853730594278352720663862909377084535354175997358656315173929788395393650851504829403498389518672942224878142189659180151474573061104447876842025527579000415840389417957096998866655978274676382195241093530683313354301288781066656136823870454711581319867367522546463960459853276535278963413657584140034937818627147466930696607733486448208859047924503231915621257977338455393087352314538302880698847265355583740742742999117904697660832337774899444180614359308654441358606260158966277323524559145246922815748795323777060852255744818919748390648532859249845387295454736655990727859031950843473771351750746524112674965220963712923527298230446531813676911682240675973306957627168233090657104956715828211199918803227338143322191320949591969319639945490368698126911193946008126981916296328858229065531040621651712919965064701398701647817218674318995528500000082544569709266578973470897993424977187135885000252931895429875852010894128502276715073869270676165433388047476821696966923490602046860072102002005714570879729891742974961172426296889737643407642625175427524137256043112332940013625251191662123794210095173783388640577725005891958964274621439891887710420523907591478584482015045868331705873414087137870638976345024500755731918621964312729756652688954472683061398215659102137573744878542369549484197678532466966476408357872190966955176651241627648704807729841957650520402030127403366923729689761584389705204912446352014322848611067208733722601889156802459980001955797213562356197499815361326717342516085062873543469324207924250830397720909505791541660809982732447864547021006992814981938014479454256906159732800981257223714026914970539787604181173210685356253114783374563633826558818688310997619534590650313048362875501026151277899936242948577591685535001710010196171847652292271713528438312791375791167162875975182990286190891627180698096589555822264657430257132989707972074707151323133945782067381927722145659582288982234594633338613519915672794990641934711510404059905080478645794370450991785119299900428480875183763334423286686305281480661977582536627491356215606868990460033629482997933351878024733797623027342153745036516501365408578161411478143473588180126990101180555509194276811355927022792805192071080044540676657577219572210375857183381693022420325555359366761270479048679786044694618707591847528420704184005032202491534973179345125931812093712294818813458636646830181335598337570960546870237263813128178408416353196904217017576789315478496608379189939832776595187860648033081370032390109741591228032071731152384547241315175321157197833244796619941613114448023876874675116996346097217037413618197419617893300527197566616859392507258738656697766662163093418020392602794131058611508565226237971190151570666155775247405069505557550238760589799454910023159703640438242471241587824821103536466148416982370175906278704987107708639359052524578895490660626369621508086600799954110862825894296849018745317279469219647594147507419073247757572435313137511079568695747361315374565193605252986141774649048980517875028365726287326717304180883851847747278282321609747418280915004325774557742046125275289440469470761210604066631048001685876653515859120500219352269044200438451376448912201854485194461605206896829760518518995338199993231010171632022281082233633549455571708868962480048109139150854080202272844971473886334057808157940758347280386015979744578241831874964168336807401216494509753010712547453537578652027943077288786324426488922913254878892320493880929241977285018633703749328325881802322064590593651452806761653845333523703685729854192811160963625664332096257355328370341451071463686534661384732677612517554872111765058595916216377617149749029345864702696878018595459492913801886758135302978265799138125386847121509645679733400343587869118440944367130112282084121164042638678000801289627809243606461647128101313873354869160750452196416503265479317572825951062056811900560804192584912254518239263762401775369484625659513274471488414610201023106702620951205526424829588906381402390369608274034429441720975572006627953765199943524875758946590580735932047989040596219165646664285112768494834756566417101724753906618982798703632531971886105799652026605582343561629808993517198592105528955582989551971308143962581984477665998952309442457960659149873567704061490911601421594348619573551793034509594473857595304874081986565439911276449851585734573469020610782354517755096406284608865853946727314098615632556381731827046211814520146549158873277434707887719140745982305557720210701308835220434120122810413646901732062875200721751517098545054329871560467877779044760173332861798033322498338452498130344958584653380301155334877405322440014513191256726104823735886329883174856699892465466633502867296827419415790002226071489156777425891514447702374036646766220349998675824752210542540952131365729123197861234499709665467756747977894443942751155044577481348265344939384692478195895359589273875941983890463608948093790068969456136589293226097648616185945592116035482152795869966044479068753399766936083556917478115526954636109368740110113888551797677385580491067802458616528729911148119713846798502343648818402371210218907682032571783738657677578578368706474129038899250227648161225783917767545826730451526255094556956791095903154290733732234288390809887158753684413637108989070321974074262639081749583150567479143625893343553422126705941954562141941439457788714313597678053374654256117577820192615697759513778834556044513199274836912756711375098714833363573126595944425094132736851634370905713591827098439293715091576853352337627491902224646837821659348363694048477029294839094754604942836974580726310355071967144141089392821111851563968073808633807163935696268297080612529701118248572584102724084010906013570821933857442605739997235317635340858734761931833735972929847117125698604500460006780119852290893824763464839162302762993595687351804329640294930803367231047511927187545854732428485794158925830145450656251199104822602284953794325419660257730386924905132132150710466458811269201792913154613783059845647483582134716116601457189262527431247846110838818973164030641905778745636957755158155882949025122703932168852343627634374692273450624306936526894189533369791235664455404744867743238492163486118067422578563795399048110813849580419221840869954703257176068765345959409345855939514836703333640272780774543353682708470856008493811648751180358471763984145725781845112433188637024848334631213444482930049405523522644710455422931364944043399270000882121867922524951602260628408551691522046353573346826024133150605246075553837217399392743264442277756089555753573222356414890339662624408481493997348820765694411930123868349475942471993115931320648305678010260635367934161195527248665469083714005514002068396349788212507799910361931212659145410008572794760779225868459737604999580396779767274064790141722671395706942920852769517387261702052294539844154404088397573347986854570224258228540463185453706780011908526188796189668837763155748038220201828622684063931623292299414024965645544520756768652321811132686982270843514397159508424794304489953629188420941656988768273196206127733878630839360463956124187362339494159494573713985118995468002523754908702654875376235572328778157442060557879687625662854573163311578556775600996117093518336982555553017062400219735661591418764698238541251945163093927298067671121026247466367700818145883230065933342310006237882357429370090237803039311279140559189641557126872195795306348434972466149152683184086956755356331494678722907868071858897965676945101499423947400350501689619275546781689882242590665122476442392199919861784607459412880045536639848696269252584710215468565033222783092177401865002209511232093293233450423907278049326113546542817782225253957412313140125036216625332732610622837722354818644217329333041813507249953387546375193603866872543031519569758075410716166347184282966530402595844025556318405428522721867079740928818246005659483649902861748584526729863889631934796613430651041084920452476605546694911441842172281803581262009366629993809821897464741423217066587559690834486062258831666038739699403210489862023876674798492793473685416924251599552378310354736600579072978856174121834362262454776724823324388014280323099916629390528269142889462560498336763063802961840713281136580339344120903373465384106890892694654803513608841792701354133626651464833098512361533828220890190602579655136064287581876476600361958369284035714433155378572650616327232716185907564826046379359753497232193462647841605844194522893321439468268646213414785228510552821592847589127276708131642162653722430040983790910598676424381315699202214061157566777514370977740503716461417906455939726897358736636956721590959397235530567168068017837512780947271196046482219981839415772575794133221276325210701364605464869983706055993372273161737294109062849457276176797459527317605987867656767387424013151891064346243618165033823951396048104807941034978606710987115661245896499102527580677696177876745888361421355548659151893740146850745063122074094483601520349399222563919499426954233615636548697851173937203701144586418797240667937143257272821195278692749517338890496481788026348735080986378756751580119788666455107940006301353447683687259145270893481809485485769656418447088111902270571591948696536703156362811482417692300726866482143992155460476846492604134197940911642347437486709030028819797427174868571274238785573694202926909665222044248186671363538476554620788428066758761562669364267232092773552606254291400293543185549314200643521897842925134602603768487277130284938429704418980692677028141085332996010403566715407405847374902615312902267838550327061702889010585344008761156830865460378178365544183131342713802208894044295309973674045847491875180076208671413949422826745216123450727977536330751119008410045186703213516638863278083219533287561496779760261625520112190966956367089662447452346255986213218151570903419601423693703996979287025035172766261791841091446453929825680181108540925033361233479063253343775564084797653539343927624256775260952452521495787139633513185557413910317710615903319824685388856175551304724497020432441627659864543199746243997056814241071557359547792873276809913891131815347789630407761503975085419280167676018741690891420533950051943999570411119992173561734828671417971510236232414128372337588177931075867543549886067617607301191334296501717954892603550108210618759728034459065837695538176935695241421729270362103396656343056083865192279962479465275277825439661370518152139981877094340949818162996452353242513865087139080120602522017300921247318153116988807617103452000878755404124314851392675823320130948460350522635492989247750359654996582911243459243691133986093123199319845990916553336670188223714740442135919521323821372710007700586760898469540813632287620994768937762338945819440640138194777429957960797989832390240332914176479732750662398505083133654216424538070432325433902289728136751029335775755949270732884905591727969146610256041305645696671745034634356204558422610904996705064463777002112650054309351808427750202389547484533122137014119716058821923774779516141928686930171837982281712795352263773968893587492826789271336666482758903540181809567427948681996959250816946345594056215292090934925076299448106439616937090421910538339849116200045079531244380441527107744152090122194604828429860902136518544820968529049614876190164911917612300513945460545140349995955268814956952854339917840074102142925385179988191154013594395191073296797569188792322848417676384710526739788902291281310540177024282642230868355328465272644782704488212446698978017840192953781832244270661138360321170005999143779570314572678048991332570151421132955204429811853796359566212826503358298105071410887616330500642906384333727233691103593754649624239391852748862822687401775510272604538037235445657252933189713162092275838598487568560967955764801953038554852179613687431377572820397556148773757898943794052932681923660743636745711765564164846770136687254706865162772802218609803051148332044144770190166590305826584428869516092748893447219512844827607434615028574262308981270270318310314449093280550227690247741615214669340254827279901931844513600989600070045562114186200973162301244542110738196914067334079920095765520150412150681786027939914404087876041206216151591353637234892005127232402249648016191959544930932900430630029958435920234301948395895919022526867731578581264232477573579585290107946764871935828757112752597579720399554202308303785493190997830529686254601189442151709619239507931959058699682713196383024099863800479961039750275569352726477623188879744449281228775980372498076661932836703233213909071500490793057907668405180271509255285895983185104939563275313220978087684835081712352887500065829912598861143311458759774091329263435670543741396819862115615416690821907772986362434977115356039533423263289888514625464091382624843554314531467263432115639640494618984833400306277543252565929984102201110521064596477099249209164924336054283279417282277438322200722377065712817112658388172914018144860580515996757323647113755627083235193010337639385474863168549130735354004988526452492266383685711407017044141255951370869740846937093919255563334117855129857104866608599251260037461506119083432057301117095159966971943602949876422972626970679668528342678521885451083087532492846642609178952150825417147431865666420814113482626776320118391600808284503213671987468976094670335594094842512016037891707475421802731324042590778626389649723724884607576979140016167884510977692813606883985112546818279200771619468174909562473499215106299113937867631061942675048434836500641408442519435197108067284298139926980715742480610884692575615232981967890676623129066008329123657002810891431984804121895504934160548576319779200344593070095866356566063971549505751710487280059491280685104117360141230245689099416403519310225696776796834930778255940389859557808343247968767142777968446210296273461305668292962926392160258002771740188532618250829511388466856618051495747217559490476569331438612623893565023250137803855939038424448160175469388265616153871237173830934941405016879437012533492703956741149548744997573098703895143483380296614643714772381473864441962381746488807772415887264886755497644891111035321899428140633266283697320314836361345043210598742192910960736787474824130763543797703725268094331808121635937866563053900543795355207883839180067040916437640643130455698424833063716570956548108142887880001036322146431381157743094643266872949200495330197160630629287081435071118375152707159020233247782098073445571869304237864415113145943100797266280748516261336046687081527791948733435819032757642275572227610661560070225137046351808854853197738211322625094655087792781498726631762858903338849428233533010486040844791702286235529617968551589101882602319280038052439533705647790558719734905124707608604004139504275328913176659412584520467081885154924525978149190293708348418933675135958725071874284346172152382482774983590336790566419542900930386383488832233815091310994081693908180565646895413093717299608563037191961283933663742624415523268269493291698790461849095769210115564056086876096246406759069689549007595381044598463292699608122278043786818447280754316641065197071129057562522666441733044540591493940972706339872736216564331521973858635945832326232428856096333950373818742771696894079080888803134706542259071001150971058828664110080482148460714290233014273594157392108897954061550475155655369628448352487076650248200544554360808581054329777012173064428035567994421055920525807346577408631029921631888080936079839064875558724002169546303875632911206972353869355600090375812481744166893324367693637997294483861831350577721105870525867196665278301786261698749122685659077902420708165199260077769750763524594134766283044878823612908335631329912869991300537270123869240681544366057722669105728735443089091143017724099755999001465860687659547566531116040958297539556321262442304229304634202880999930058109552025607076717039201258909274294819990391273791377051572449959534541786352744781645780432146889271633939173399782849237690256216599752172916534333743567932006164814534212190938224918310906681183912963575349031571582832554638624349062721106483324255237241641495288337778809618081360089567819407540900483211448994169975247168447241654071867743500675765768520031556330871280771401441335994250190198661857862345716520062350143370375993672073781543083049737539564498482339347491896732978706911095158917774634014606247039582456958960655301130991746045132379366187989545191033789765842649499898200669794549543182901625291657515548256694641163011166924759272996928656333925068643509664334833151924067424703283919376833267618081826453315200424955269837480560325218227917490078797450982853046646756466240807411032707954252460489937031768172066115461088335160036845614448826089045870612921249421567191202699381101780160031117174186865341532417183572389781555043292013909191069748890112367900141354629955752463809419718290835597062513055705142302518868214741978154900767101937918867515671501488991133336206746931423059646684016000060649537679678189170457297592132139636635091398107241318531285867453939693511981987518449982033887019564473810763049841481489056285844125790420209966810709504563533005631987259333254729687582905127005431860961102174160325954027405588557214918015613832236702627110206445052350247436189515238954235468342980161174403901602069681150821152993673289188448081466753925764551893613816867211873733979618863538909719963067638887218219449892845945973111644747406109970287621363199288945893271612386571066572323208809691136872594804576006432127996575653890521345908670200520267495553923128158602455910197631414073516953386800281267828067893321201620864867362650031715498152550437295935959635864355971009786287456704855292445144018917693317550897078436752993384408043575024040825193554362834331400033375642366023599951494019083913921694151081279367485425794859036921409713849861027186097197074515625699052512284496501184921080797444428717366732131950366606385853048341416724137263041341418148831434931911219548937694527507790869375478944899546036066945724723223429968916980598148925260607877605846970602856030241130235016975776357441633808692686056262049065289774758046385334638070230843726200132679681592626069416410707065145982678314151160107337157139362192836838619578703425346193006397525700928731887042093128528204505839137431653292611007246559330077565823130142543763300797902478468615237209965617839046099260694568615411407564527757441953048084861447283948040218244301643956010431113345505714911219953896952002975681690168390935245075476655191140045601491891412375210644351027119453944155483629194396464747629850140758981237703627630275080916668368331797028116102052435452494633752523139823620873238059650547992010883732891027394193711113057957663929090583461333014567779374584814602324835487389712390019173042267322381583584691170676082739078966234173713384504487339836032797281105995369236347247037022667461151145893632892881456079460293705189099930999725042624852235828421633102948456797487255920863857121083042672064455400386106665527767757384178379544053398924934469949420195278433280351237055658941039288464008421740481098811753222733534613733041223079565184804222377634409160753769856107854317501803145599508278195700940972189846391289503636516068702836770701850921753177106335027722514460848611183952838362682027947490007243615506989628367231395503813257175515477336548351668229171956743203549191753426144090370059490509981174229408940597747288211488670918666372083746191969953133308773872926766658658336273964720216883702084638207704929450165903811411022037572818404062224863243395253692267044720758852262690683899343845148551246517528820871684900891569305976332441783067590521933198066693036477966216567420645664109360896621920547764930816900030117568178657499510448938813512222145290911625440382371572992995717838128897514010644295266232987176245728632681750924868079048250498899433813960557529441238675838639866873472257402481206634220505914312244912456848217243520209111131720021734243185747013911116727409349256741215766370951326908227319297950632232810015692506024899957122918847835796384355029138496529704802046831332365777472163697647826219048955028506549439644178627437741263942836745220221126297756952928836841734220724099335691157715641817201908282397732401021648585905767374064528265241118049169595245193450925391887746263312293649160067589180412361847494224897187882850407927689973135080366449778775650908297551675543548007388889085828264357119434196769746084175611614506776376734859652201253558077035645512210131072855220872565928463964776633018530963740750074774563988662879230021472817552652662832850837053908696551746062256926180498999310632433867301660979333049854674388677033044612490326069305231977785322429461037675162151883349047513620431967539612904497461052484596634838699719357952206203995248175024581324080009421646575709632411413279562046150825604858762655956821495828893853357565804327274995073279962202970023487483147241062031636942130317419692045027335370404748537043893065107946070677354998503257360254014586332077598702057012166079811427673439181260132338738107263878464702087396059317433161351729912184085876102564564225459836079199605665991195917893604687684657951883247851244599245892024422020380123687047130654313446771650497365917976836799335716143294087006172738296926296847409860082080548401790203122398464358907320148661592492489577070575616472276739752414647793097559055440271232970614271679104253154530130263403236517548322493060430318546380575850294469217591189850855626981450490998208910161231790976666860656803889390934990766040778235557854133325428953029353579914082591095724236465319432446544183189154218044222417540379234381600811839275365435834257656121099023024326730262299109410111837314686408712880717916219192864653596351686672615517912880364332752273886037228357908491923383761859001348267615286975178061083620177809953649321447515506191118745828066286736754569008337579741758370011761754346332598882265950880453006057662664970448304506220044734817683528524961334873145505650718053288701574307293878945266453474078396792846484247667713277018648846233701731698905665163081262360152280439459953048004288015412198105402578451004152414002199478185872988446435097385175514030289851567746947718939806638259816665214041868487330298427947320933827993179971563428987956904903075885775607622650694200772868421113021212483366458257510393571065816046341348452301490083634353337791670039949437874335520227714287063255168852230827899567540730377745346395511890099978988072435415477117765176242973935365861426889632332920506297349989824769429071935786466190533327793711805139160664970968777751602563571497675039977050401102573079171062014283743570051134122205483061220497022603694134965465918738619408867001838274617434538078516335593225169530343908184136618354938143485784496298766189583122563882581509805856183454818092729849205772637414409617393224342673929838348019962223408463946601323505588301081844058994839515729713565592041770010591590095109710645549987102102447514951755489913364100951161801624764024644329044964399314714525014891030258184322596827652914713021313374956012243947424458301165397148284782115866184515307636778498947181168457641742672986879700148718051760315950516658170248555213182988453428966629115430728777600882664513050035319848513386068592902622173073839898293820282421510093853635116443257068293551138848045911661959869229186131117648234968404569982174955800734922768166434445302883077203090873529765723218272895905023067043196263125910496129262212210892388099401860206379947645446685556955891987516817401228772967711632887815998980382715195882934659262921326205941445482124050927951231389901293235962232606948666010514284782917376385272047710895138147348900185179218475067589393138715994068069368429765300429747696956617887292396656403416138856087913534728254746932388259661022327877498047803724782674458105724708804187875119297167545454864768322546492334256516359303396048623420305229675282613361967983651901734493468198843626930356103621045311416991789082999763767241469711042860971867282262716869334912493632831978831417808501516094311847843992250706350533008677570765643912635468595476157005875287169983921854351240569758186857042726822571387869767842273874537327081886631538209710034654568579768601370970006764788826988299948938821038054940887103201609808279161800301623480530724470973578438047005945079047249687223885078070918753532922690439763066470856809782841996689241360958415269032620002993261720635852997182598228322296940468686291798853659943698028648721742247172725368309190173924478714840907101159187679589405977872829466060839561234365192587586241170700088290968184308091669869380314597258549035069339812399139756075912786653048268337454701231799557342036960640357979048706978530226807061672422271559087879938576582112430435549336803756196530920109508345252042447371326850548763477382795740355264576598769305509779347952847437882537467146605276322939381873876552266337065271608066279118582090455733774925981938171728170962286603264487964755188026637422341530704574984326703287444780720444976160873651616765144131359139993361397688090055267318721646559345943288935333725404723827233401306829455656126131265868288547641893647963760579881072509053482057667197624298937927828416304378286251717611824095564173635971099183522755668276471744925012840667353851969695767207093686108787413272554916464710261055579288272698620527665097598921606708258280883567014905543325490955538791210696372197954668781169109034910560333201172562382800703252847944394733037126921353191538116372137337555190113407125964882484967536701196507365476950079175166560892578967944982028451063532527550479848258550236689658449199915245908469206260536183676870160016958007387042962904406589233297206960076288868981750317120726185486624616608698739229294262258489918930453369459786826898417974823138854248046548013723388673103661056949424338647313642888847010837437058804708136082650081374095966848195054530235566334596250184352896684509781177681511906229071176822332601886836642167206797748783684841994021142071345571440904910866683350400196201701954543578703351826775445987158641743343436981252899831697400356162772073911034779876920866376662448513626177697752777265224484136579662620473220555545888256374779802339002788479762397716198391717711805110585515561111068744856565151389170584808213547620583687470294275933966135034573878506809248854317623472080586134466655584796438955983265008520041783066291625146188026082535766597055928812702335941618609623864636888373052204662387742807651329697349216271476956072211968539598592058091137900181112295169747098914242676559356195153762241508967579500223056993651271101232485526157013239045531749057578303280527430538257143653590829332429489335491177948507638437051588898515645365818699653607114721487752768671428709202023217178562155619771329299173290874099337962681527656124565775595371158174631274204106539383553383144687639232589762941695148537092106973532278117578644469972234546613417783385787328223716804137415373400862419688840243538315280863478239694189994865801232870820157445634088397687852868621709600557724890400490724848125895363461248920766171825242908434402273943627925400691523872137347460326074005843542294628059466852637117478700074735792787459359689898618884451901983134097759955802731022556126498064576826456882735556745760108771730015256845017779237166488457250436128250471289324694703918069138599937662332108607195011206243600934452317222123056540776147337544874545564481069548931210237151258117394878093815790848611576635460835103878042633045030632166828834301326044512933628484312597076887134181694896824146204313380826570732333069543683391320071943611497052461202299086270235003080507654686355297191682425759363364859805839159218414141456017866232086161796301441393169914327469929331838149710499106894584682336454366251396091949111172200847723037933299243408795122242239823075671232078846781591079948971054561309177808982784927263781527444877666278657598083357510262594080202180333727271020648129255176178644426296977057032424574390036055332980478889746206383777180317927372726883961059982154959085409520214712958842779512929323549550119655684849382125843669235140340587292146743273400230056628258238724845441301710744188434864290262969748257369655047180212813639972049720393089226439264685121946224042873497097614123136940778559035271600148365229915737774103953127225289930079266670428352925209339033197467515807786424187585559884678254720632243237176351556473096962224697401858696592178501496399455375693882988594258837809854855523413523383745379594938962308260380129848019131093313446771264031076595514444693621979545652710613929165368223405935663846379425662165140939395444129133915101642201605718020570462534309643647836824928617847960606529041272072503045239726236276640130382607142696629221380737222870873683912489588546268105139881097221618243937626967349352543226936024792634629627260194312488780548356829107682398525694116367988705093435992367765274088717664501485181413819101884560967054668073941031854168890220685693806228595520831044766959563701030082716366490182543191860446383700751576905674932717190047623197579438440211633535953129906120524859271961520852963648983165900581634197125149684091828186995371945803554849737556541031379113757778663081638106717624884614383187672366802057097259106062386015399646375193368804208643683227325118887142723745513936491873890947082090062870514822723959395271489239162369864947108044457235671320008880495827508360267717853908166773590734388486271872470315910171230622364901306411376264366526837768662057574342914809071085560841083610054325461454666218099893402359786395947897354466020954376461750240098388077823478458727139243101246443475357989604992006258265423279311966984652385205316202413706383055157193964105339508125418347456499344350266111969688722486392695175955096149674760417971565478306915820798244742656243011768132996570539072240521959621169139609316084710574753993978166876623168794707564140174247194729105104779935106817612226464663843459766739532106029425458254754890837711781812032406864052980165779522896349059897443923454112362944311129713649658184197752600606471915463535392674166704737903553449458321527453482507338080397900835639783183705418042761831995344083384564838466247211793461264309238989899820964065772366896766227102902697511350674407910232024614391559978784838079267644774930515628485841327293690521686718965090071628782067658671947007694485807331063686394020754128650349057006676966724164766803618508041832817884317121567200471051147713248803230618311628480055367845935206713279993055601473319199595235495220182893688083199702863619036325986791994608332771688810848715300532854777512901408658572113893836887742524670989371478813853538640062688998128128440630687587960698127524859243765306997715243869160241036017563302017260489090592454314736582800890103644616964459143503684166828144460475648885760441446073915165002895529097001162232441044712990070681850148361149199845896130158665416436591030307391374923276272415022702145648449048760669608868729617935677012624906492785357204153446631635554164030954244907933649501147723020389397386050991347241890109421287293818728014637653444479586383313594051498375958103463792909433663195090910132069422524464314320064468432715259385720627720305765858964384032452912273043940602980761197428652258014500136101034585719510278581724973324969892634815764141607686365563819185809541366481896599856944426269993950204692987723752682446004168145317225768272066922310437423879122175842799124510765227057413787386180921140934234069112316170538819928843007035288143390911178692012412042576629817855142862499176554413789161401607509042908085928117552262432492935724956127012894037359026704197519893636380932000696664756056767992550766424785728405828923953380317415246817475823198233284731472242525672167103141172206992058979115362169843803672201628778764800470332761789195778918048332462606473188617898119691906140637960825064100636970112819763287637170627488200662191684938421377933951227503822403265127987358784821431404259994613088340709111056956834106409783611545392326852240307294023098592850229220948098878120816004314191255039433743611750090234141764457015946613716845559032538466295289204189925554479167269885236425949288545421774092240289837993204061838702712605314275328840550929767271831489741684693960573775345221142731051413887140936666878326487175633933326108043566618001117694839835192764088750328503472277089409196182775287710520852621940441953979086423126657734467321835406066007710874694636645806569802858907502766955044898604942680010681152182882095003873183575060315812485966219572697888659911692054223892386921093540908922143098459431269355444301786413976850422993386709050069575297909000754736489591633327598316981411607644441231571815752057430865460601159992343688349895140492880511318286406521176315031292451524191537876368570413736817720774479874784596376155079247835052037813945454109620829922452924907781188664490530808271721447074959192289196993734482940958881271725981798726671841059783045378807466442409374293466289669493056995493616818640019548762801782488253936469138950658838992834665556047068109876238266545303110132138596606177889502560703836141702692061754238437577772904148909949136988321442759382801508344111738209696870333020956824489075084583677512603795964698544844263983759110511117978865237916690513022999919854361582061997012029323101164167628081935793798143084589162093492904180048533163903514599872781736290085583088078446753963526280047011306893844044137806338905783250729804876936452770268251421752537159545242003458000425022428464510054991167155431953480097433784792677175954059342840546083603071963066036230774574322513273348359976255444445753711065472459723726709314575088709266179884762122197097300802579368740400544225605846102674621854289987063052827574363118947411237607816483396694403143080796132139284339796572290462205220192120452185386595584733636947736163890219190312967898576531965640031866470915059736375094605661073981340064014690576918367948613754488418472097615734165161294323524060994162296274595116783388573063572163730101600394352291069480202236913907555898126093209020090434280535454947048094992466405011570095928582944004995147515899523071433934850706120499939552061657871052080445428149389947188180243507687331376527352601424286744958232630353907293395283705077898988132351831683710477467509498457824576026525789492457378569285796585223441523008594104956940150868072312487188954987400565569643157251709100084690783337243157411484867130745106608303146080052818280308587234851958438624663172499258197664206009502177440535924586007775269889844804146237811823832965555981385131941284631933223302973561169462962488260110538118009525537459145346036380819953679160821586714622709277067821265358703649357853347247481912470280936351926068438535899798967262878684021716454164239014232004041889464442522434698227139883242121397723254527678962270415941428472751523000309858582730044984051059653844239621177394030016879229263336045123361967112158446438982120080122840653153272623610033905143468175938108870686088897872157123005557826187575463536005198355774344731091693750986076998748426672304802998360717594190597935257132743721272483615913421459359071713245934468431546059920147996699058373698145181313980968012592714194981828321391911140135994606449684625479492330511342886056596021025524538244423593189999861095541467691054195865331136147569310427482752896655855264810474798953790987103348157884894252408022662416010677482469057688786499909490833316618504881092525003194854373279679864949355198988875520174209641590098855009948640627530741137748020093922286407087785824090785189160472451618143350801671247637309898126234094013063561818481746033910748156089815395983679919081293022014344078552029854242607300625240385430601108673932273158770008774220903972536746997284941131500209271425395370646827438636347423869836372758521887212178233721787880656521298085505798732091498371148640138222215647957701368983996389817420452229011087109707660603170263594143381060860766481304004519024797707413855689628490110753859843905404909584402612852461172895419594199459793426592847839132082868781058833075335427342048773195827839684693064199051806789801217355210021733969034330112229664667295038640555252665058487787661953959273600514144625750121143038692014452979508759586325194540599406153034353482700720550249185888070415444123479437531802624266465976064239345677631600602946468106561197212210463728406279186224704541586007785052787620366220593751373274306353330931513649852098794635665241712754830614683292761846006392196856798151287579458206981485855931609955190015786224212043506604438129000335829799219930150413057474604297399609063992166782113108297948351952088435425703105632207477109586333246350215178603708476727481669182360907745656101577622912657811009891248479705503047476478042344222435130433316206355437426620682960732495957258835581724070359212170978136066453472501423659653078017627172730093202831872688821211475760715501419765062240766576955458066537599890285848155170676831135602148971807528893402954650100281840606241106230318046431230845304234098492982347326189030054566326647422381765900134507022554886594271465881729065576937650442420236365669514573553343258393861521515046386029954796900773652563240639565948329979569393878507581745325615810102366813856519856547865455221418751062262731763278846853704763378210564617762760870268992043673426113423812747832650824288638928117826844918920642925226511310759263554453999081486055522871993301417012634424974580830713280853106219323908345130973037236311597277728439588508554645144116059745328561792134312630057946758275645358876559787267178006567705266919123274688365152612679447660467610125572491272644634567514597664671868675108385407650310222922307758261022280445918008309555736491889922636635192663469989127253233665126574199718641867102385830407706148812922946812101246685682554257405788495664150413601634439705883644570327754233312652428374129064164615485005889259638054302755185724390545301913427072660117144917215469783634520834239565319320787620305479734623160153197363811514125021108414168951919011588853218239116275228599907401209332434436321486758345887345628396984450378412091097347566604506625069582511771582998775905932636976004216064625942327814445815182982232490507569674194993432298972571941907385659537449768895588135978914842333273299683767997868272769081545250670625333515825199403226564323171858471910835633688419633929830041719922880623825796724675831476314685332947073876324370579315232823182253362723373636364011530587819071520091616744245779275586296557559566280927353565764035279328054481689890857276302214870178206197738459865198699074994279767676923491486175737666192978111811762398034607668727700252601839181883251603816642991854599247457792160960464373332302970101918981264201666270255223079971523114661072392534345215103524926380022910548761911390463319579776237543511500754561818521119889752475704477602512965609286076060882400276254846399773758996371569761184212775702748163268822039315664568519729416503751376545062325318402481996119210771525652968613512088690848148473245792575034266902756962805074436556035784690935311663189081308037911910443097874311338775907833001095429564447249639401620228997589569598531319984334515294646009736520791452665421070859178832486647302412748786679052114820107812079271244995133503000100101078380125193531905600557022227938945511554547710654476234232490283846097095956986607624279001740533138616745575263290903312835279795936888719477645730750443236531862797037176737023793081088916607197049207182673837902164804967387112956473905587920720199571793174480226004404890957895661276635663967360143721472174554020825078133470325749044031003153175711676458728462835564761741626599294939827771078800719258428653614086732670941065778747140621436632899037868047988249607850519660357203951633853167076566448541632733127844258263357726929173328183671549347024191972527803572244372898717024000687924392074255325431966303010204542547664754566780278659650021721562777546091567268264663787761268979935058486033713670201929912823524697096971202077830426542670350993132448734871158873484202874376754382336838045936733335116381363776197329023996834460029381593651383883333638554481837555307596852165507015857377444195754085753623486842534808310081571795628920257993262481872088749876425793842590787650100348295334215362641168267715552626947897851087773698880768798986258919521843958586039975890160321531977084768208504914638428018376169751950178281450904725170345237424188041845136796331751400449844394540278163136822458996194411556166154050883849288863764669353547554221829047863220917563311347724119986229348640340241632466532391967100942858999007021402824025774541270763311334542685199801973945872615002771426816093015195590156224936245597878258316582184570609094786869043665601801559311284452769004497102173061893776005799137575713902410192069793219900581860332123493497220711952197937084223643825278566352591549736700427550096895055155455979122730802987534071939167508680072284385358164221086721203128235697666376812314157656040742346022270540805417173205213565097460281250695815739184191476797435404110946811256334404094824998832312526764193126617716983264889758010725306479798141810646681110965127693996184950055329950085780598832446340719762393832143383992419154818165782517906043001441915731440360918969551239231591114483362577441866181886279917705118980192149643340970539199820424008354173300910642112841552566273475885413363765134631585327731986594724056250791339417776252544339599181913248000700213225049744827274760161324861611955666406579622031852318436219189323406662429517085578800911986738701130573628126318279816330923179095248814380052526400554602573186758881618544319317720132503841586892890229131258118910358392250448989181897952597059607444954424436319690267749076354206845782124711466425378081180572101119262212193716159071413174874811172615148236349800845304002731851736925427703555347826666886030283409449372243851718494103778346206164140038171257117327634455844926183930201360254913859914574355989012623380065875134099869730334021605040390859986681211300511871419104025230977692992967982474375496081431748722086474839770372923115120104938736873302223784049918963167732042890492034469758974244507262878324453618192634726757257928008271941188250086388138801427388165675973650662018712663857149019073037866715751455133540272108460884948273554007567562439955644274057115690514898481934926117646490675430644099748873865189917650380398562682846440118096039916565808702259285891582647299213258884378209432432432048888891382466808302546163292656037583037749820669779486584439300998727802201058359811308833839937213332963557916294945320707851331726075291490192185687403522903790093344842846138065908573232150109353813382155417629050011996341760781642802697035406693263414458675274305142918043495629342817365910148033248544906612082698030896233374622972136886970907061670408868338981138956568005567277735086085205640198926162767190458202095283087899540980368906361347246336698385085948777689694768614013650540563241747089065278350928573472525171827270119362680420561758404227394519849031561714370781989129175714537391633124898877525130258939045883229616450450870200291199808126655625411324560768863999039019543560559285579550818008978808904320951518695340940680590975692978217499549965777254614157820584832622783838914936590953617866625116848860675322676788029416919632183168582464026624862220280257081347346714280719062008102712149619470873508611391205311050600197100450933258024062320708431135989172003287702901298698604247891331230800148205543289113892280027245176442892660708157231607938065537081488051357200478219989714057949035182742694573949927875220111165214245133505573420282625687057604890456027550403335033830924639004947961264413710489825314095044253011590025491237549512962405571062011851043226505734236490960663411532055261249704659623165628284747596219761606819969113084171618838218855888962806367561236137511592087652492972383348568744425346653414337524502171243987774441335426149453810318189540071475749351706659318879773728310307953420806558564395601619348132068996918001270993236170272631761223131471842028320502245341463090668276522479236331474753864777234419623704379909859717712345713875419092747179998855033293187458528491361719291592090432343138924371203264662023583771002883131931011214128434263407487347646871997852303830965578781141870734148916241163231094053146603612390948204691539826518687603839846514886682397721673364169931357880843606686283420485766453781559762317114501380892094183983640537155845746054208766843649993877923299557484103177172232683984374638393805010204468657406123247566903338133272798156703925600198155513589954053603811974607000858216083336189430714409721191430190817435397940364228724021690746951559931392267794539396086630987398928737513217420850096259202028561262614710949289116223414581657921313864835204416026807682858602273634148660390097694121918852374350728246774196708933507228264716404807501237916717235773455267636612905122246170939487247218927896838443452706685789149167603019328887003715445002382433344599754478768310331575480660205697035286963524778220534417597570453556293143242731128766103298531025365025601393946281882323527080602608057520039966977628282013550448977854013246207578704588180317034171924921000893667962754076097875021019098711223931088241150362772413399305190751569153686810700179763193445581993413021993998538133331469717604240850822690755943679900161035960628863660450046373686642087206876958745430328941388257332883721879939286873866939956024233106678553498564295401812199537801543909637943037376232458085012295451753465265562242640857336073045072234720849140913414349788193604006223910160443782723841948548622011056681739846747399805578806754222653806435374187263620239366962651383498133858085695694129206177150698246839924430914990457001369830617981755781400381167233415697996797390435377172041886676874761219184242083657098483677639768174695400311211415195941681783492787197398335277820779386175025312381401723781052083866025241042930651225150203070357996505721324824216730562122764611824485870602015757657208041186779364645588255457996464993022266554223297403331470426106814608131241261211562902157435638033640744266046284107093855220449721628122589131522098436565606765244657576591000814258020517050485052598785579123222384209136280119846073740310435012666930909827311097050178291684027702400623861565158843376094518744100432619258332193602358451921780804662081478170136816724245729783181137934108603912483418211418698391555234737086031111460321564964713106428729431227221264396475371922570073676767930175245207040872406785710867751758978755260754208243795281009144568712794650827666987256960671782086050630262772854360340190848481805529458933092532740407245131313198746436409845811402531763100737763493955499126115784884803449879414765974563943433213373516144131217493709166843222168082553403894061225250188268242674789507303310900624561803676943102694611987853370042807005113286511202285617999805605333856041283633387012520028644931424573955269952852454246027068814607978430676213745842937216533135963358565171817341394216796258047545033444187787410922773094246946122971208820693744783374502627238592676205733886886148954027413310481700573563649789120998577730134460904341428435409145832211881039948179952651181314326855906398994451359417248045997531307979557363302447955243872423041601392161317685861128632851286231423807384342153318614165395830465138834279963283938171094983468905510801603553448786065844351085149507563780093645223217082986589495951571181538054059161197023549794729742158772473870211054855609447214562046150066246067798278868812684134796630576296302637982511553480906889127310567372175904602475994122891834874827643357505860804569169543919262146146912203378951234530748166386525412153412265512767767824032061706875721201771834148868392210599631110700497790293371645066678609356317545199110951263344404810339037104752648907925449597987765961073997853994443260657334695653399738807703824622020653798987555865719503177398075492129124646790582005681689325441876772396963559313076083747586435394010258885789851540901689187169843719772045330540436473186793814784123027810008911094619573267072782724568483902189102075936536555342282306798950320510624445248783327650488216627590690814856783509474717983260707255030797732873637555675433074603212555485348350391942309269161552227370862071226357804990128992047944026761512072921260732018089768066778579750322575094872498480396995603364206979425310587505251864792120445261971436850588591242671374311254366389500022649343540939864848909773983947667071180273091703625795242948250859256807228746068504340095928087366819932169314835741272525397310304633833029132628478636614473370482000823938036995331773750507161922382697882689756039063650752761946551106422822326946082394049930089202574089662430347083896914745851008724759207800924399813037957958969726077908310623010509477422944035239773419753169710475249493912243832559479157954589076125909645970990006740547117495097817498618804623294879080264065866177916452645321764032072475479459381180954192040887296951617570642946877124852444025835850798957266976077082737597313440450392172445253174477144426786762631573608070659483311886765822833417458047182395426302183849163748272113067277116085343352066169987431066438296871397877842485473395131244673918622584104462388231287506077072140261619728180422516055277038218738017717438935806179868214883000261812444265807415098929698695252873629282740968900614732551544842690579459701707909518567499514502505085148133562837657703267783342020530265578875339288967350022272189706734161884374899104495711211900995336696371287929460006107981107093624453931498545274618158740692650586053685369855801305334977539828753333508567810485215941177954071317449360493289387491658580521912250057558618127183840773396646052251254731627715881715138846380892852624840508876015076276359471632510877702513360811264994990318696200685440820011867850506243351179049326319989286933846314106478383696406445061177600985113717533073539914956569932356657866025779877421278167866264993292497134290203777888573816815011919091758200338834545787197033656090165179854829662390523283382649497258730617172081926712070738156924463772717614732669724695132743230060831990042274039415865589963637109408181810183400158088306808249830216491872481107942047189400463613669077139908917871541284582064401975186346259202212364470231926907259450282684397079110830585143468781129549893538578862199883358416799318507823650362453935615238387899377053432619870688378461207373704313996673165368653714948528254647422082386463387968069677646511644500315259165866454703406332343509152176595011182756534240026577267917941155962869195251977887821119285807629996561765320886476546819516065690356335121554649475206056718109047498241920095558487719628186727674077705227119883864867358317350227456931223024129991560100004550740120533824436246387159103757005712138757827196926709314857475058176389222872504113015388232721761177959827224996466974222008941321270659216599345557596970469406982295228444809962504719137905513182558891477888556244114476428644664067073844188543360645096701855769590271881591619296073083458392855177435671603117064768840802145462105188371369638546747778455612237750945717844282318018436387666706295837618163597332486755319216575912609499273005820138743421675822593837034296499051463960897144908236246596894576320492630593655006170116827948199771165944556988535445435558162707045286525299362350399650456146521681809248703596698882760210118264710267695668547786404892609982514534669215688108016052800537108728032291057127967037305781519931756568577576109278202827420642866362707389246978915589895042625218029333239679345477465270146293838492288554681987373659264549850067960787027459136646961024557093340389410026498324228049918866213845964107285364944759325485290682603870434447176566553213864208727590907583367037117927441657893890153266585909657643015863747484811346676064504781004160632082275806822883107824392138686195626884089245816992721859536287510260851563672023603899978592810293136637001201955115390522948570381455815675739420634964998778508631536403951939627336919956957095566581585657436222504804076188840156259809670859246806414401546468859449504075561889813545499172827341079603113680726433680984300977690684619941281811056907981173310205509828429110873870551486366932752635466642344844213365655318094599825475003135494628715873502976714420090117409007754166565074743698697293491993094405972954519275591254669321089945040937907252894042152115215137294159733234215953386358953759941694198906433283379125866247637532551567249614133222968839358853220383802731446484611285030384437426332446283271500806657518413353472915644506881842290115619748427877552043459351132151091793719929092210573529189717033277709574108369351090133447878164675745910958183037035809213647625727091051255742317728399776857923858003002362079615819652842063274665646201124885649585482573161507228810942812385493219519148833109117193278995413905714384677174620036571920230970623143730175773058052656621763169070540881500961549882934185807724446235378604208856656261370215796757917789616435834857134482752157673266441805077277201372793051021331710080088243649881951478973193757123934447577277511349518724400590080137893302556550527463409481161103643742024509440913531233470011233087428012867049804345385420536249629376994079533727969664281799744218975022285182837695496207129062690634840510104589748452242191213094405970320546370275737316274332996264216873888997933030229781437759677811533054301779016134553254765796995628831302235338445518709688435727683942574905575060179193518316500310549116211999309042138875742494652103827013536644813229122537410645636600110894333902838303286227464336396135104538514818001261830774685667163555092042390388118557911545329034505167124522890247327765246520300275932719251904408471494987443018392335883867963571056044921779662135927726738774996530101327090727981735278365907159498211515579794738221290700676962039900698592692392258612854353022693654778153998748240138721742100957195246020408161611457070729889527958603195547303518618985239348021817005604571151984917500958247056212782156149892697687054600542618430711697955685124747750653495219500969760562356174817153777299351760780446219454045477666260858781177084328093144465006908760306261685158597800783548025658145471539890407789605383389712854611713895442496538366061151744066628656608898396007832160555611555027404508727834012219092949133423378782119005899560939850298313383925010211307491169904068972358104034330269377949768654007293189541936792271869159322466920131995095580368367844820516146285455924962276339314630252859115412606175162741249765597673125538485390752957111414618523032804179951667413682026262788392133875903061493877542036320967641409349424459273981859202443450950456150391460393346483388756573370285811393288642125604057278324490127294473345645231566056668619776935320405375517822940792268985884356137086580246358608730586551466795990336037556658292684842138355475500771003803886351112842649963826827906168228629525510384129060313473641198344747971013251766886803064397101098324988616385596842599402221616011448520964155604040726610655224567789960420718202754086379811025926840788330894950276405721744363068908777932768320583319953564680684793657453695552555857894489589248170158744270379024765262702758781542950821961427791058368624440983032817850251937252774337848439328638828214165249531030182153610373678350240379185254259239712408985926529244476598835945919995832977323742183414463011030175527629419159726055263522509766420087514235139448000058525377738779613655706187629103463490714748582851889273398104958571839420191224976159683362722418887678242088546010050058689265558007178422949609762406043852696416203621884142619951736303270526572168030784969130600696378106013325258885029458694312317689862490718904153918202591111599896492012233491711312276531161794083420485435083851905965123657064478414639603424132800717583451170886676307338891098951174449105846105132877557129595093691189563413006053245957304974703255589111962776454851088601220011869682270812674617256894953435458125300572536840336247184497163288298740522429186916032604880427967763638090951719917108544828301546075150721508951722372500879694118832218783616696942614363887871363957198177586314392532868690466073198631110861093961371200375664355937137974164631815750733187731345599789481563977881315330409447909592276914535887279272168187371900957714274755214588782893920688471785887061461391001872306232087537092275102565709077887790495142862821325050576958141987162562403664137131914234140283976918258071180769878297952720142655028379955589981299043932205387365291147569797158371573425623220266494345046295630204622997873704599615732422357558737398834040243103495564969483197133056024077973396121834448584666352797690917227610253968568212441423820619059210768921545912160945156659728535519165322547853288759605881371386810037092905327067097699704231344400011257077049730356214357795366175264846547445891612831653348569463682494655798226729733127664671981002279062529110859298503468788138873427703959734814128975887411919171350205079150108648823212470934222506861948885792532064723332399007134116830334390724210824047418733559545909251573763913764797215313133885428812976650857125110999998227538337047563682230949223038314435766642331586576424845561881714230472589775401547911504011243306896156112124343310410100173526973515126949182872683655176416375557540045322443028504080464515663157831850268574806156419715148344412413192346530219225924917828248689291352514868723817520281273732147219142610482358642399035896705826306144875689466186615092573830877427474787496035766942890642445843830804782579799132793656838041555258150702066798924909100362564766601685476589083037906418619775250207947614463286620405235007693263266405991605791072372678614782734261599255819540625826240108556107305722417836424371811796371484776236494551008805413936491921705472865505534309453547301221355169414303215166781012070567219821775894846031226300474073513201456908906556155825823505108184245771447573059556812789367091551587092667710004810027913503055088559200873625204365569782859629878394467595116633996084198339366701387144470604596186841396641954831165008725388292013302787361671887338658788785593251331481361149977775641313907003048868042941752528770213463028749470807323289626730071455175746943303105586998471660804904385093045918084450346841833682309698339099295785933784819023666319475779727848358105015791981479035526158709702298960621435207350393168507956170605624064010852090514423195351833873403055041720430710401473038888795124492892648864946637390623443837888176674765475315313737117779720344492468584497663772054545581658930781632445611021707767047610369701305138402102995170025807652947280349609992622889637856743602658352571763821917226321121703445778157293194694567166119382714144304336676551944136870690528695021612896478985049837263090934042082430875936146818907780276195853706056822732606150496777042189156664231496521915285272913768231510596829559179542780692596436262463587917448940299029715499317958070623690818659596811740136804127876113312374285160949421147543558330451476479733463248009420339831917479104371956948220243040046741916250835184702114753619939034643247304173051684125191910596170347121115797282188476956106777133104268117636004792529394337885576555119505749076078318868816852688996102692900054995585934983624830963126391898892334208588749417384787030993959131753730201649181731944191321067951643974857284869281003300055333565025188636442060023664382384239416323065727598541178155325892151851779668238510410441184215497735633803913451615717291052107734663619887456202946076565762822248174326373608104111833643431544391860633851009110764833326616509514128211140712785371647047233725917618386087271917536610634283371793963730389290080826500444255517653771433409359799896556422506462687471609020264266815027495007250604555578665220982318055813276602245145941398523695141039006460187771251238676196233844684278337985688151199549979418359368248785413288742683088905904244357207968651096434130257306169256148117415243250796897526068816665581917897118059907925283980811948577468596656074580254434503610771297040364990397296206452153281466791476721664116909935789668657157163238455510471268445127186971495446888818916467060457990840818458640278719863165040477608548544417805594435282422917634023928907850827110288264191407517421098579057830054176530592702330710265886440587221302057581916640885960112318553857063391567507968065930247393075500487021016475874323992549192247539025198933381112277191256959692224956319169762841235560112113493867044598646370679376592961685719227660303080519961687603115982886585453390782945149600514615156894555301188326518695864158583733099018064880391757858666729021610703204408990286697604339617108673266280715990063563132963907234017429380057974609530583616235794835953542556107537091002905290741900245595284223018887082801526890976314050815734794974871537956971052421560235642019839852344169126070756404407168525663034335224353354377058035509370057633961276651876955576499817730392558612668513954032298856955690754611890609826599264560157285321639864515635168569666587431036150771077993937339947359923472216220856759986283570553390025104528183111143702857067118390417006081642337952466918574844882240410294603315627869731686862243630035302704620745299787170470797968565881859563383587997603158598413939028842780275264498267510662780375297443586371810897303919011368016348712121540777867725635024336246205299838866507264859017418526906102785407675269253491397431865092015946076763302606073396598155188275249432228851308526271787447223300777931974408316829112674528664746248906959922706213721449326139429625466028450429321521595821428767398867378695566046277906723870341403348038941601390277622079630066174790089633407412579166376188626390373818561391404722743999013056959183078941677433148473894123406179951963635791573128600229103480444395150293442591364139400593043992475898856864893828106450693759182804140319304002663961349925223047467145145709325364367255832891378649517716754751294337228153443249805781013932418478097806931685415451038300712546387510066292986735184998227480402786550584740348978239632819495658089597512289444438053667961979821720848603885529008280202002281144786334402023335988101919133239117939188484881313905183697951822067749185305661451069381597371111390073852369686912060189894591373985856911921671314546421371161163035221868311053059462981553978333999617538382491935306671551866404838364442031347301526705394498217493814345366064876850363763404539476334023918958046412951789319691422712190785806273769202529156311211393020752024158155410467818597120124531063556266689686472316094736612476914554537047442857638691690142195118495026369488402785906696531173867918669381611288926082918475728127666716210812603914986862219058534763195042617305621586767494700560081879386219856803616688951716003516264592913651617095094905326803789295275378968557872617151912121692114361249233473180959642154330823200751745963361511456650910833298408657494246380580928346067174159521935932297384909634835416931415247605098747609976121998991267595617608810883959626281618408705477509531500592590121928147406476394060388371905966135125349649117676117288889874968869682406582151586869458366402382168270735090042401687161573640686542342817659595976169242051185226468565137768979124150981672007047867150452171537372285152689249205634737072728793877920744765978835555949336248406653481568597508880278930265586724014744133757284190164647339860611136986737841774748449465554072037907181249339613723909993242245814679952757968661379418435638458536692565285756477799672595391885442975758830050255081589033531834766356494109281437755127293367351734052496406271222123846370746032622068602445730790313401091685808386530362210859279552702500307305391448044779063759018072487621595765879768723565601228905243084893131583137644450936428234611305862712619594252695434631257913517226600648045680990503197395241075241337068169358171161911098988844114988541763791400493848565448681819435215905435669056792909746609539068267403558404222325417807310360019820150824414667543215972202872755380516244283941145480970329233888709914958347294978968706016803152982345376602303795046554443419736283415262073432231195951912843574613350129125070992605243631721936221743987168049424398360622700434289928945312229064320941940931279929217028484710207493619734678090572812299646521575872872719271818514660010944763690742913787361300368152125530007644396209837615397653653948468032097706346533746762770909220403897583591807780788576310308578338445378931994901799304835994580973853139508259025207181425664192268679508903141543186059221240273654882644101549115280789977061677433429684575558113124132139206819419829818801289521483515629117404195589681076122030474370513853535849494616759175878355866293657891259784748688980102324939606428313634529128299018577084507003843040339096613700984551485334887740896713507596578496312511001567071927416944079949111593704579585092607974444337510301259954895227025508212977395840891943621294683485153630493278589834323195054046208076882691895411597656639286182526703996981978679154169204583690053559018553230203300991291770019306582976535063143078245769388931041118488952865240659795174803644131310816683623580205541167832618770363238616076027225201347405100452610395072471319491407535097683913632387164304515998597438012884111073736034016808572690091248311227433910821416117743570381364222811576498205053961396803337253371529591702242390787695300089043749260565420988415357736887897069037023357293471711886373176361577122071028544596519500346739423331659690710483721592334159784647827010568665810202610745617605395846923306390901046182967014381861685736401015676154497090088007109086226543862810022071292411244434870309626886880298035745625604951758825487121846691910444518618278408873956725534621132718433840427547906005629260275919031182169611150953575574882158216402069802570406233107877772996420299532879035392302496097057755063665830978722776864874364586052270941940457521040619396944377373720351701184120803150674550337960625412906961134437175318065427160887264092966784524541381820217236904042952621085461693057338572577666860005380507960742397924373840648748243181035049222661046549023618032447197052011733379607713213720567922530609684090405022977753681054723356483369996885313923841033917247480519509924164569737988029384802455450453679900182297186771962925396164925137479725298308766365878730501044907731383401027048066691012194263288417775320797122905936595567048239515283474585228641034424014685197267775390593762914654775776282487677358330087834933588878472300609462231979508230685273077624064972571526652643269466950298530200574652746038385830417607023790098380052153991215908104029328794955870528221504491673595742832639364757856418084429174410592759476300330798945170210377640673129340380619505945513666648334163823860551582426797566307964687610569655435834782004544462044668595391835052171742205131798184506266305569422770645744123925573335812686179961332154452366758155612726127206737317671035488601269993646615559414507618571657497751965715661315864286443620527750355283330934005974415196231561472959076850503781023757459355193562319368488175250408877804783867802106387215627537000687228113167908161575506552596793383561625753850600675396518475151401531269642289294930887283058412719055199333171634682393551432002267655038392718872991653150907704985981025944686470549056398936371532456960131381694808385646577783939177776929651945242961571538272439770127151098996029780109866436524320970324214291626705827561311788922005165318417996335126763982719553498476115096336295545982226098196937599190571470984382258500284075067309214149438265299159197532085568024524975019794182936488201712991988861642032629294762503114393960489211083493747526242093922433015525389805040837214676468702474915277589066464357867962248933407600216084139238090564274852306275489990875546216099461070815093060201543579871702094862789183245258089552705205667787449654126586341052077313259296968957782158256357537139104249854218944844259521480054075112657927240365335509076579522241847345511566935608069088699978767365148616591096829576516774681544157543297008730522069273815786756448158172172081262636500319960146228047432712923989994943626736956985152879342305181446627732607107719903376519515017791859898818602130428254810579212653332284910154492146137773972864976505522097622890481539377692845024485776480813559569664310396461858692683646117281818764193112643075259525011373113289097476380582598771100193014759999322612520696630434188085144309557744247446739364981645563907650319165101054643935166991224644178142197464828929691511047914508381490581004571358645878240926500524863492186067354240135283101765179849148125231636072554810460856157960370415170815760264072498995026103094041201561207201361077267944311734465959656959546553265007682279538667450266152259529144454694394280154507129553583824665854266329587063692761053195643516185943306324074716145841324758036770353130912405033851908307982686244868719215253783976277395794334436616135240331872358424806951490994878414340923118629875734110337180433580857857984260742907956010581498605529715998410915551636639331556988812232856695360774570960360303919687292712865580380544814688291361233776272144160217783471016892509753209442097830715094318141340934804036970813377606665866532263621922573844187310762938593929743589980071720188366635480266718747806775974030372931628463259930127527451939315184845507948227050662900648700823756781378562184707037231297372678973219621640069077529508426883518557801084163923708368457334402698689237341449102211368339307901245596229725165107943211963444073291425769971953682441711016769556836633364642300919033062008496060497199309147469794110916266504945677654337368661446232282870964665644256006291075262008394674097844226872374805138029069593457453382089802554730443374781623819138462238767635888616648006493646479226970007854926044292118261909406843000399562850469784946775571996158201517331499208472467066352183038548083496801910038975630345602616539724841061424712148893823396464916485477144199429412726804274943243839805417866035671112920413705159772708128264730233553748585891254194124814755443987575396568796127491017133410083794464560641662508609141550357274102208348058333406524602365515584414577738051699107480378118085399741735193382449978716469135581736652073134069634798430336059378545410947789081715800019585831332633471610973286369619892796945739615549736768394038993318951192393909491638117083147009878922610954599286019470726082210883842439489007983744620988053319129584588360044888614423127159624317477200179920423408674000864200209080553238834712500666851327236896788513497336037862850849755040423769599975708783432315081235076368640609631022353484699092729910485131073549892038233822106680799732370730590050813134675188340383585127569935952114962204627900291102281777990190491655037984814048741950219773653059773863413271892070878259609852902132453026229185752765458657691511142384878598882069481649226113875144965411934372895932729126265888820179379913319194869611877854487915724258855315407394848690332900718587365261638810521713205374728794786529860082134620270582090153211349537641304243786733628164264631476329337667709011896162294627488453941278641930702608061246684477170700426151823200059756334302298439635414483945701264327972249682905950287634953734867213941469344040715614519606275113711545738022430380369865869702615945469610166478011935486824525391894242728261514255846314468070199109141137097349815153732537531819722423472978002676721210221101600968273698233975218776993882844362550726736299027336068794892462625444799146974145442834413792732534091292182423835429337091937095401979678112405486477859716597246564740972835503138929679949984770835887405984379601725566899327247452684647022646887007245991364064136740932399122495699394670895635654878089560152363715171284935879871147354881963678367458751401824033543090957986586276287335482015606631545435023814450598273327643651715584196359732621737983958707767321490732083265396551224023873331901134158885693751658415364317312102978198161519422707222940368694449657324795696375502573417553619955012443610131373348030139575581420929134171545813535659378903256145965201298142853233505302677734408834515130678150949411141497533554118571017486021940219412811022433837929003597015075298450643762527606822107749339964342319794406410658721900020788974682049297237718943662390037437224259987670186482947894744922568190709865126455389834373813076025945699095441726627175737767899395709602293917621772681262203363188471238748292669683097330971656228757492500253429037554475337229718174517077752044900079044340858959477864735595006186008431784822028093632675955033492916512101180118239227252056718800282044737698353539660781194302086881098878224622088664412947408169519786239302040018520432776598163503332420681791187942877352418720558189047283111843689063105210249340506170432103421067827792194315660261125253115982075310059917853979410895368661111918740001105232087914117514266102533742734110976373569053608454344515749971354051149246726173008457023564095968321146332564369036680808789469894341630982242797825977062216937991767981211117295095749760999281693472066912213363124844258106681596630909013935979923979049169239023619757961174177999259064183439781749483101005276611882952240799518294389498201725743020090865292220913987073147091332660805346341476106822881951205145918718643089570792174793664864649482768689804687856453436304807722148484100884490555864229567313576165883000445762133954362066880125312111095707983648090178758874443059214286498334253495059199571517512148084531509778873408790353497960040606971287612746437856657679118737337098426567349724059349781775057429837535586756402662896559737811699629288924891025006351418944747989785463590698503429065492507375188428441308046575781067461550536680795735558651593442446792553240330523557896083310729889185397584069644228913059234635247065834362284995044983339942490410866521093906877851863930439723299726037983899445639451125749791616951876284434678953072103052409761585866998923382062719836082307867135104528932525763398576199910087050706724002303242039185665714523077630342847333006677676155537373795839992818995811182285148042096122170435724101689717638757384067292433975262473047737232565030517027357641013458794785879680528510107703036950849509757865252094899966002119251721328797534681923175138269465659425554944997288464181112044467267537242508841623320835590767791779851323981513241110976282761466408856409555778310360051259179624732834602114517683259614212401933153678214391912310107376063481654357012104262739367141092285955599391580892442174461356928377020249497293407740771354461155025482814158120004198771829302109188301019669697950253567629220529181025032021661035951048582044814692792973129122776620186764344984703204481449054080699144036970739321041873807128778030002894017361235746699414551271602078885951382209763211070549090971856852277086270484217286214232708543721030150415732673588821050846834083219462154753759177603759543695240379129854397671743642162200608976700738505009880999438619218488025538211349611776574604557933852826769873706490023140866854367494075807067869387888982810013614220422986091590470445744846344327205083648914327477292353136289961798224562085969954334579283699161018472586184259934952396428067575815976412556620353628858136327483134809053549850581334676275979374859358388978345625467412422655908334533417773219053560398695258326326619581772456383155699166604475724991527330808389020945628216890027367813496041910627551366302461484461019641571878695508155662974993096973731646075868783789650418941963497505927250393559028399405599156956993923314769903848140430089334334361502624581550676174248175075356756215120844521499599288223282677580036349060006110707287852422907017072968577330514177260334563941055250291552336760297740406046942033779285061568671902359289774249833277064745756023208770202830011228392328474561518973432200642420303582236833687204614904007467790162777105222152616461911666741249838098356889222486764102591178636679759889534600490196132260284060873102283008476659782275220598523490532817607043925128460133375824120978311761113287912771291235628067416187956408222738141263161165267941902509176309942061329183921403681082366516931902418508787947459762000894069780231389631080201302007913460702563110587489303768147351948998365869560277279866277391403892536366744618977412477406102301709656140814457355247002586385503806805213749673361988607644307906973431436110723387926263400544759247704743504043475859263106744230706704654007649259349547868929749025276472695067874783752681322548841770557930027312872796840169846125285329896302614065186774017384993007957383714373873279394001647960782204715634576318940973667188684354333574075312210564805919828236351328412844510518873795203268362883613765066298598577048496584271243908300985181272994456413941434479387003753028581932039202371973866420954200863962109164273489406188935038367804936853357117279104933048559742656295581341428091598497123726653581790889232819240465223363485468728301784755397690814854779302763479982490983361673573322203787031561238532257694283986032826505088184859616953397869643943161374278141679980641709012180554093046802438833366166130704105337777697213212074481311441848185464755284381133415176904758099411535819591854504158597229706363622454419751749061270874192384371558073919254596274593428444471639683741586136514494206452989187294277851486178968171818264553845661758725522161219081158109763683081566743625400203901726273984431663081954353534092667420725938765055815852461609320905823868608922909195145701310644776324389782526787622277481685318640441787514899867544129760147472802988601097319314088853861494241573031376582652291560309369311102621732748157192282146295253236731639629961056650408387657827147518806267646664446274940816563540823142091507028830995021407700606715504757518348084091252739160185550650104293358750248452170904658737484751334137133293825580116178410939304363034070086671088991141887547181038745683570805689872563266092512691577064600452009054839415155071887063590670259371997815770175858234272174677783189891638848699970214051501100704059036632790855313490141300537849144970663012429197758982535240358311695814291223532199509425515442951998736721325435984457729089812567125692048782620918610817737886140771556877581956164988476811764132702414212490359222741972778603069274117886950793624973709256382661801964761011910580145676029796087821409152166588636151857486138732917177896473274828077996621459583606209339939990784801287608626739215365077575591592026207147630522137450108313564777308274069892729732249665977314945887315259964739152142312238635552635383349196436830424585227310929722730476396367527066105923593701024938855449450822970918910213441189590334256786414089430564262433689288123017228441806379073602483486926719153225105129558577486995578549959462942521536134060374161005150903624109714254859511395303186359692623756467565659985044212274326714205041909323102386561370500590266298873510612285915861651601291692917900553078176622866527896324765982601236805484338938603577388387056385851173822714659279700874159748649935005525059092639387786116674157680359552735944654030936856382310526397535832509376762037106839978440207451576835547330168198674415273338318324048310364013989830254605198400781606835491295779315134050066807336964316358600656700445188869420975418080368478020205160696701420132293736203220367160617726610949082040894740316537514272582631780228413414849438487696804876405426430999724391351873604842687064454964073544077430815150181738727113587144545857488715334316672978408804801784052152602761024266288866151303712434888798432656739995849951251344958342100347455180888740318152784580435719394909000312222495320928900597832756911796634687025108908978165599124301080199083943498345181268222933270962005247694393893608609482638575929504320361003967052070218225297567384286098780765351093224305138372769070959889007132007980234665242429914741248691426372029148206232018528866341132361284232589693870589234150372577378595984120838150208303968388267222489095115049735321821050583664432483787943448402980147401808588968421652432229068616247000452860399764691619934821812935740284050289352509092018822743001235220428669010301054712687588399826902395777481666150252336304212202081616010746695215808745152007345560394636421534706200452773072019624614190579275849548279128293747158576953823733166313297455109191609424778238988782740756224424900053755420417769143463012956765282085061883133249680784075072322891777450094333103898512275823159506992621372381118047643130052545636891899544398700289478153578235539328687978896710594107283723155552160007901560529464999854361614829201869226061052094814305376277342905426216357175348152919422859378732139125890109827122142696395735255811068799566763022184332468886574864126064470180190570247162404399317919080325049177135835873195948984132646061079484784797472580879300246026249390666862856596973300317113216436272178141012303957449179538267280274279556537530955962586981072509037341073813881235964687357090552931056797906809858127391137720887461914909687012729767900506668531136781382206313411454289652941945156720572391563110461350482955220223883570210371667686088144837457943656332121721310146734358692681418582051380889231527653025724934032289773275290155080848389321828751617092781452625918906047834238282384060611608203382878038345273094349597269352958044598443785340949898236192953170048951288883013859659361476900343840253369688930692866598730138080360867270884180298338583723691248214928979656068132701965898702402566482268213607460493561258695371392789969479431403695962883998106090951901422514362591009088089986148764771838427806823450506494210781397027569062089850058674638130175233797662376401387681486909982807116632708511924510782015843477355862167083040443158215907469056240265432638304573822086417041895686407934296925053537580258391778212671349062082483985408451125202751875366146828180254846209285048058107427048426640783855177858692853130035068573099693551374224031746025541696662304995650441873999022018252824108849681602820427266841521404593805917815266991790506120418429412316952577375052650786806575310113569454646232494909696168560944366016566507367509802405565551618895861824846138250622582291750115614947918509952688058457183018052363880843735585294801843603381930123907867501024936246273482843551093985270075631789378363123998900429430968350851508411325779755424392343642148380424499259294500359271810419583897040155243920542155098967818646627422858625863866153886250281984495596327309366928328032993746237544382184859718489348064009041885695269920791895279730868359531309965089753069229496929306255685303356267691409156560416601774320914874690649402166075403952935683325209416627662247833123309383733414453970206792405205425615874452538185136349798832313954338316403950360607902096708071032685235711629912619389891456511368698772272543983063885272166259919466439977612080780208496307317649322460157515437659769801753015775791006063202953304150296087985820860411243071704095196815195820847106513359590040186683852451550955285172666993258524094156591181827878757883170430141202786112829955468908648667729884521667036242267466285751775863056398745007301588696346494080448826827778455772723978543750903037750847054926528294500675232249397998023720272568145224410574818627634547439888395579972318419416016965760588666307592028180231604094377256566935819883469647536038569119334094071888362699056405023205262988405949750732238095181599328625325348262519665128664473239253577613207281938183354499231055666441646173002306506083901912456410938672833997339930329229638074877891376216463057320273689629571325788621907004663214303534684648417215040043459602069236639216782063246913171529381230465425323247981341371293585975047857180821325797926853323256937000946427924737309232694895639620423896010407925775596418577053679072432463969045542839445467843971981988853668127837964192245657318362571761892639166071930375359471411612511750733519175687361947986154480923587796471280632853690291437505981397581592025224587302320842511059880830132272660779144092045633349000493789661524369130922366569433133100298218502043130072623621016707542766412671846940289127211609375403297017508220823280443276101923811678883354744311745645714046255837410414705138823965292677993319618340494726853814053802599401631630910308429167358311558490646412784327306272773119630237120256537285212268045346812978135503653028432334443156107264006320470866898957482942252583452379736941648957019887515247444138876954501380799860912905137727016652799931891326690763639754831748805311823437217748614955271939017007750726058533129665951764000607322797984635703205565077602461078925638058500696694992324225781366194865558899118889334127892839328907735937084931908461984266056381261702936724773319011827962537539919031259505226170701045345229992641445186613317747732503879018023340715030405348524427576568855626677980278755863910045494445981702699108008854272946725364529490398034389938236592996914624529534034996955387092708862740638164548018142425276624010097843905089584793575365319269050843917398875050710023388648843863053198183729303185000237490887514136788426449034496411234484894651597829463273117480723149961728198674616057813750499713995965965053806877079121996187763641734101190884701836584895459963799087752358376338772471868128343967383244430716024210837864237248698710758535930030824111949610369711143059295186528455567046231907967808863011670417448937554505860465979084943130505146146896015981349348570182516786413743803605241522253785422769284722204567671703889413266312702019031167545054287609511263956393884466867668922775365465206160926882416478253224709414782305465079581381614721609304760416775216524658729432105965813022673040606426565381719802148936958856038395367454885650538189941870440277263090454601836196659903733309515846424228019825835230886268211894803256331994124948183353789947569106832378912231360320008969486911904031670248774799321196293840384152086810270039607065199690733864540709692923577185627537437881620700844604193760044784948429197259170934888744448102051305579975963401372665450100097714333807057002465223072409395475030152532568933074245141827857742346215632665542195536049849607701158476575008794802266953389095313118794164493877555322018680313900080011058506009110304228687141799286279673772709659447002658800781451965805214497431288231059662053660851983506361496900488532052913357429241888073151473204189642016604002830495286720713854488746654449380920519733798912231873245190957387104453206979645275022814218642385350164694603075014425970716574137855983138036427251059853569591047968217586482479572958523274005035736095817357423818026413155563101352775167509051596198347522183758964804303445873216950441476110738525519525349190986467151357124044032617098869465479274661083145934350353954950207890006369324387270532499574972819419930443029288063948192313464891594869729504524310896128903847436970457655110276537109783172211788132513552751742586187136669204651863484326462433458343142995080551294878585153751389636622823237946971073393963829302625704233653581929069135892758135031744014944819937567706540766318078543332102759233998188034894858713994767159787351700286051389690573353072738923707997259091617486677411705226922562151808836124915501773088808876459934419763917368150082240219270159665901646614467994211135141120077406748496988518085842504520486579316761471774557548392557161635538906885829832194635003773928433897679026210383409962993830977496817091703286880811011184627423790019879005675258359472997713437270569209041370967996494959105975407965133256906050104647671999735034249723512232613259432132740957861007282130815178240221075039453920843630922806591236806161287616049285364321668221643873833459016302582897822135087969444118003355140274558566034108690999381363869876517793359618768332153986217352296880195002749334897247929329889025894809159010979712341251344131791066457014765633000571817209555723459123670218984027456047767434335714236176000580785887656237201084576221425538779832030198792081670516921557071063615520684565479778615230372814546870956759705066008198644236656877338573858085396481154238442077750320681763055986715498019335432753663486474390845849663448395634290432433238671647370462712561628336463209349534017909092029790580249084732248190381021183291140633568308178627802395167192098563075061945849949699694600444219953183536676016787695815496161719893985063263964218391862350985789835157151173525394329913232649253830760504322124815505271145254670776570584466066783486081982271703336772725955336174197568863391673059590076658707148982250249009137974499124452834242457897992698545100001829914748915535124893535285084646380996373367872445520222140449680983485052223004267093830312971542752413925384798369804895112100384823146020008483636651742660928215917171531529619266497318860443249978451163565211418318132011470870908157938662051263163816968909036568866706248488485617295179053715674338824184448730251101999661743069490552881494563812397401583238905011474340348269836740417712694288266552568849341524439383342966859547939418815527475374572077492919095236386838957744145341865168679347701938721828820088334156160160551126305971638608695204843460222772258549138167798144783299684155378640685469395552848181693221216908850765205722364891554999826903127115476400856154392197231070745673334783595177863323910666862407340617494600849875228941749550810758380319334645630668591788763076297104626114387014595683627108893355400560776310714202074112279492623807193651300337203457751733675021457307788964392550642472857984258950739814871101152201423205921876244303722874542815296922983533012305207022342702496066414095820253446264523613532753511514274014268498773622211320755542651115949139031253955195132554546581983675682835154093289777275513121820066516539374791165731978880404187124177229072646062738488094978979469270120926259579833223336654382907517524467299514327097091683029561634321304764576152334619307028927395898736045166867981764775192971614994925986847561696506427610723129702986466143119285064845743253689502192500743198958511848992388085846536306132742621555783231067858246032565233370239182325276515575059445187544741591362601075199103758224707509152404699881397655585496705749293662982207041921468276420601632695449619839717941118830087889779994119485668945123437426286100943388888361759106945020721370354003880619994163690951707955700149264954540875600673189780101125109489002993906163427080226879643670097259424699707392328090642717927634487394291043983625996005134619927355634751639767855338350124336700967822047003397764567575787139661560676101351264886701526191672477461664696029129520509840425940813327065176643592436994163400829244014231811772471640091450135238599665314346678965345911955524671627742276031951514434981341096164654222582322161404629791263712052479115838478294835914613876916538859541953798918355110022434868456693332695202527445779684755844501841379317211444117326102846004927589813583863155590229688449154124871413307299147893561885808530773125767153592909273532594000854210110092535302637185367774780049774562988623578996092380126383075404664384426768664843176704097027239325163265289072217674949606585557319971346752782469714464126004795173088320683817886021068335403950213675698127261224649808814048502611021452084800413301614785021192706437285215262737151266399746437248360194009486448589638969146600393520102880828465488152926815487353122369726393468013574385662103152892537554229792384360396866485616178223508577858653571070786541450956261340624362181375051382114726700100886160219023564281978744386919055453156127914734892333843606913513795468177401088654385129851361263368664654275812441737605395796676808236410481287844506912475893246881663313119888180915748155022977226441665355000943175792358585623431195200254071369960523692281931065777152009550371989700094193284145029673551820169787768128306172576956006838297521470456482131048045023567200885612752396338940415886479082781630038597011854249778083733247159490882099037812365036514177437020867853649948753394965481102106752346681048855265870323834084192614868292757876964706519884832599640328213568961364310775568577040001901077385475278086492691567429630755905285946551281740714149955666228758750822477772417300554678947892995586918705325590839776525476758128982512848558216259218270454894631881102610272255137236902247860509011162867152651311412501425166275966339853025294423111233002959502962203112306012407995984226697514867489383571018063675845286818559279897155032348210205760027843539207609237832224434290275956878819780327829175829788095439993083760591601595190424852893247458833434480750957456973800652385709413027844179553309903936133395191603819440452731045165963286447293168535063541440580448670533801418824930970809484122269742175411684966410935899584229185759966197263392288408606078411822716910167715238505454091156537246503553706498537068728801264722077022705015253498380381033684913536536360652102566078552579405875044772066529134600277825964651657427581810152107575123460162744477150207697240779259441642174458699775122763391561887216258649443456572952389437888789652021619752685728296818706640882055722208556006208454572416787025198347210885251697456744158678820487391564712603031172397746559053758626099653259911083825831245721563977062678158174167083815636707270851141704269571778163873712695184771774728381298876772017147834289515228113056314955955505508814748237707306214498194868289865912320923346494265101111024486790727138926494524068067329298489867570316453071842702103795323752714105766263709130706175011362204648813195747255742392843647706571220642601863885213529831805789367033594167307947401740048864391779405006294039895945671148719825361842572172720749160669790157800870730060912978474486059169103250389084470113758651211644974713322050223097185141629053531517828173099197867476716895870769188185306768303367098864085244341198284462433259778895190309705407740562952855261237180774567579948721902087939306109511062635643108341486478415821751490180344838363286442073093382087451756370855012060570802003416750811612781634682027706742309979605061760770484114306205065156607882164562745617186019409298802209081774984493083536702134833541488865312312818067657869240455075062572010228070516022687387911059693289443623142218853485003280441812258748062888311154096307607766951265275486140516957688461392486068655282668280654221690073089877578420565487407713248289241174492087107952503066697397958052238186268400290513665994976583901885584694252937383360141585030940123017724385553879504287118089827467544463747393671073743813202432776782011731678997854902280738993328053920550984997043274889652317554177592812168874321536382025667599195339153809444713324550330796863883587057890988182789878284844381553477454730002846416893250055891390139777867404415724532681465699024392912018232325487935544896242433222445959998662267479266407744295998258859914041120432903855820915348944886140270392067458017916981721816104274706540546904170081783209911389046738400386741953203633955095574685946160985930566941113916619823119310695188531451470516350143149433756266760695501133050772109327620951251448296310640329949647009508193693248284095225300209810901139230176950789373903241162438853214612835275458046493545177221042663465908326547119201714123403124950768236840712067238059321843432551110863799212771110378490499956229710354417393199276765652195453192121198103151787347310009849272270024283479574420415856261477457260810563897455303055497802532198951586262213371193174097387489405247846664186739556663332327444917255567060599467985677689592222372917287252083653385957441774105926096190239066825024272698312421070027808868829578886643271629357407479764854986979459510233400383264516727180268209523759161526337921738703098087941557755841191329507949344423014072447572723588517928964122342861143814176336217395714058814132376940765311085701401650827343800907509693688508993464571520104508242262354205481706344863357963250020861251345747057437825502506216059486534014565170365841017786011714655661943219205704173719421682771165499481879222844807586485526544186259305180007643671092404156349292449331161385569915704266644918239031076133664149519386838968043873112660828405824538329844330785670717994986296340696824769138791189964768386551469340882421736143812770420944289139640940084231335945775073773360998063973460940290191033044705537076603641239602553750295803191627473227042301536393438956304461983413042604672002772333954315415883768142435115759742277611200649812964853496415586523599958906057416500872327454008828170129986564151993726638988012648383234387819812417230313002390731010048250999587677387900607182949234408524839078679046959550202413041619810766496797296405392894644692877722602399498253526275808305399894089651308465790635341495790982924013028609184011806937565966582257920710136838743923877994324090828907956350718695078399069596540248711275972763502022894965927531440780777756713022235924548050143733257819429957990450129816927437529455131118022564249847959576109043302272667150624372692786675237936451270208198600320310665606735224889281213130703131264593433446642994234001813595654005095936857200082892164606970178140458187613214165352653685313184509830054138733059964588031377154916137212786716073741489338689383283757710173178428781582991521107926258334427732397036029043823704654427353318496316781169299846233435858646102190924876522198890352259700482458423119763746876014797029556539252402338237079769522382640037525239286300920108478117965554876524320950299533398642761087305740059125104235287874111964582084034127103655385117026404336873852482069744872954726280710019227030928270431237470525639306621046252089426811290617184032224549264830381469448389617609948077947824978571109577419309341735502470004316071253329593657023213837721377962324902694065206484198527400055143614426626610156338779377338172698669325235863216019548593495807447697154575721839507465414317748596422021128771093936223695866444428233180406687426284230266394396383784663071282275942732177278403826467618205238796239557712552054310115637831645181815402379978478111652581919756058286155787467583536908668561062955923150406207932166852672811034497281331822927114014846752274051464370041339545009529468052494806079599259343284598486101561492744687781533516583781114573103742525294186856849232707805433064248224637193694938066480721580144070223793691706401715300359922062586777762381981990458586143489784752263480474874991405622142854757366605091235227701195615466504605321414412092227249170125575759719189139956207945349622304114110113574117519003467970148544869125141827304331662606287737421680603732394425274896768785043296061345564427218879057275260028089471522261847561075711450966384640541389028509230286632049483817488658978985213972592087677252668674931964574349768280004115912827302967587783527262988058953494839588707422796710444992782434639702198761449079390264822057947554006529800201856849567548868305446513321286243055867392661363487032671288155909383624239036475416610881094420488214094343285034964459206805215610224458198453455163581718098600068870486739716042782531816898504072649333019488709019456192762622861469312190286030747414915628309278653188392423347795676052112672052867287161130779132751269662207090843309113089967891450933799200336205486332496226429834223700888264588808563901321596242866236629840605786222614856063877633115897272721028760916235011285488016430280970164014479063537660366761741259242229339526666319957289237338172526635995775134513186292769179574747266094819530793461146973230964316695469979382005245774886194606890429643066318011582548419244738488256479286149990048059968155399003762700630383078016755938923023175471478684726990245619574925409203460508455679247626971434803915427163673075335124907851937464515218197766315008268375415951392636527873160611345991412922983544530793658335988642708433709588379406277828937991553371694826518053428700426039914225959901936911146294664597629587120021428424900827897887416433425807235744056954573764087172878478882749564673608571891080943335424239898900632156586018598175701459764244226768686148106966699511913520771646885851517859277523975973817693250043583016356198877751813954637977990168035349320680584664694536768837518477995247530788821960903661867078662979760609138989990719763152280998280989578940183846444039934754840370963799993739584842603875125759624319447041462585180461565461917524721543657894847877356858829110857128096722069135368534781425569928529075834742279482330328559485904499311657177793477029544567762409277934558054845226482292827655594491691857284981469396287261127265822154772848817432862035688407603113990154986304613579182370658456356415667874987323081799129106094124723079560782606903928671073172826976913849174131998881229000497872042150512594128116321431121732966979902940405642405757709504957319795136152870824230405562806318463360695444884051063829542236905430365320013090756925848444610069156350329165414716539865074068588676888107431359735783170905989857895765452239341476790454954991804148572837067177836505681447080791225177381783766106759669263578153959548719030165887850736100579975710604489426021172079135108563364061136483285496129208085777272418490654806411411496078870786890551927908804548863045180063158165611485659119011692557249193070032925927844950180209965701841920642669648155820552701691360018099665320037934119236464645878300467264141376082416818782443916630225630050592446582316728045160622736789502199748806323736590948040105948138726132555828323198546040945511680338976556788933622932539894790181333285735316491515791686586941318737047765406700461229878212727231604863530555409442744825459703883116891277135417275137729949824664931648197717662867419748777541614351813349933809923191881291565883494998452349513043636859346062792893932641398330763753949381200319422426131816629185723130322707105183216334714934410421873694722503453868469657763402634828749640389525738082215902640784931558684235290442867827287616713849281324939577729357135250418688756642286172466358862698048021122273167410015004779949877883783238751291389951892828033499490886492081800461524237001067951583431935646475489024194341995860127947950762679104589855729112056794923513526423295440857690607805658910990519913710447421340784923118713868771215743139132000837367657659737784742353144514874912808968545644538831744134508004430441899642917865162259218118793063254234714376885487384432199397752940158323871273209667936809879935055154857572974523387503099507328317266024376505936149553086505723380161522671059264045592671597459171848430167524619544999481289292218319241162479281629432616057607914732623431577815598215458194549604592500146497346899830688451595253941466780759703666893008163513380470144075204475628875683973983963461388339228302797583432970638331362424711593745400014969618841400900845006058858413532889792076815576924578315008984399836633285592822832771994947997136337727946675716678290526467157786297598445358518467136176207881938947451939994428054538667657636863183444791334891316128698036928486011849528997472256288655304271215209105458125362463419103332154705539222903109753576119431618363637647611050343779620887912364166840941407806986073847390799721041908027018891243089049168100269200924653315761854531549000124170615606553674228666367068592181705235737638348056527714526513032019239425291025502166568539493629674213657019074033761757607414476297993941570231747638093593403348532693779897013962589850486744460124348211200311468680131195605311812582119586819748487240436905075172664101160008321568881834196456939297994872992296732751384395877846485316369346773026727605442952484201817398136173453542011669116907108560653389415745156573336067547374739743800700407545214420606208155973749099518895166549322448686721479422882302533056885492642933960058329704074355889378299470827500163032762476732174865184436179286630320017626181815545358494447692561061608395090327576086209553468997658896194679439469652970618440131741611168641405139182819367649072141757116535301703100019362574795051092681425931174583852789089087467492471600492752539063461511336879802531562975187612908483101604982186235308421196274321788259562388601863057380275964393357458226473062222269523079320241590344671007230029098484272100596239411896741220180793847664809073671724789021213576713915069087851981547121990488459713835440254838034453008378000981608925334069124481886865451281866751476259614083506576921383131344900933299398125211018309147533361752993966909489868995453210492312116284333323858445845754176412082013984855105227157627449131113350571091265777135280527316362317334739955370128094805543546621358538080175838979309521812961597698029940413435028590708131637035589108157644248410900432424482538897270365867720218233561611885059444215751698548991251220023036196769325113387058520842858921154242772356842735581578600072149655985170627534195202046616456812870944689445215097579207248065628474217269511299143948638362262140350430856697343671215710403469211518138623926452038253159607080727780406162210450541991771515419896651317507131102014103160189651523461052995025361861904383975505964830876905301004764214312947285662808629912077954715476135796187416742665367654466283028964422385197012603612369333142444299368630902622217616130937585110814857664920860633629796687042665992751246945839174896085368505542258385256200920715789210700223040585761341555291799217005995777025755661336008028727676620181846759079500604773053924378396930979455361798167982229854990712777224592269480745563339212641492207326058087247048044730546892723964555330438940112780096105206047720005441711854472207155010934295788797146611166143895633881266139781262468435386859141640135753677873134035082461021670179194197072915001718165676852201255100938741583963009879949306437347807619772987748879518092794966143881776966442210046998385904017090193452993669026839547864993320182668566784477123896998175134573114939194100667715335189573239449062593445409399693065279907782255971743863471135595778611624818036773950107488168747512578485336873304688609015408712783792179536056169092297106599005876889179729408882132081807816449243047928865655413600895897891031030059726478530509556762651178064541951152964449291958557357006449905529121745448651870044125582986031798720963478160331610090179476757270448530273930627705563761675196666738283842034104958600519331615865003825854951987786378331298204858652149804480719799746287859205662085916606842791639214939227783680372639528618337947067956398376727763532672274878769943271396218141711569681457283185903172746762419541974800759296185523914250749665056578692877997555395851161186723785871558367516980102332227185083297623751687588969814223129965756379920570102484713792579021568340969034393471423894927766985528899240284237608037231899151277223410555698840721451290396596492029712637917883046428705269452205720285754857625504978122549046839672852350343399447826912813400600599732418431270044242950928674678067370806351682453983900011363772648725894004425559190961771449881567019020397755770354862573135438883083495766889384984690510986806910798016644272391900461028535129810942259249990788901536727254289411426605838424134216435254153879093056712960693411292251353609993519074218381057042286414778285867240297661122570228546016479731174867202603453650999412887183300942395541525303517113907690673114414416262904031223721980912270372441571635742201975323011984684685689471057313240761368855762683826150420417888385260182201585304796668259982124980146789039917680117425775150206277494561146611212363864106706423107115518982355459229298394487054648519909639162154121404459573556901597937039797267104789693625530252760466705917379201276510529019851808690269654841561003016717660013982539671353030775517602080281325662054241644553889770105809660230225976037726786227336156834562190476250355536491850820056383954025112430859800865206331924610476755450956825665703166580982388596265943250193069903747503153556678455459428708896614923486691956691468632175190339517897696046083111285151336082837418256108170433342517210457413238316305718072667283601637391326225518639252894019428346160107553442319110761259004038634198741224301806389961204990096449151107367827808665487607703554068769053204490802766554673291921918262005023122311722715687473354379153353124920753595514862693714132534843732157421499164976088202553986249960658308549557285709284798937872331671446316674230179682783587080469760240669772371242128501141614621183603228429795679172233942862171331720636411032964662666898027459039579444545526667381338682002221527231066942021767211076121877417049286180124607659374501488279167074263764026776066133834787928887770720623546466178897730095092344078729577277903384702909152200037183982587206354522719548066329174468190906459606338714595410182484775658820735745733732471261423056919119669667542956921608724013549212515021375271347797247076073399310345131744802778769552514514122247715197587867245455652676188435756944412161825763206960313046976854285976249979166838183307561854186221940284814931532044397367119254184393182126163568267891918558104184792893507402282417172060217822944320352520024069358445627194702612808828048975797540914806791163834331530376391571495688503555695426651672164789584462706934102215814129616830575151032590847272811360830843651547054406438926137233595899441541213604609216131476714439793009364968290258585439388816405222304342076870240134612244246414527494856765944877877216696542217248503105227355969641800326443052221004349549953370545857117668348245116839083176389261606436298089695152719327861659270414664585425716904227781272276752045270118920836495680053160999021813642032251020638968040562292700712762792632645521562603121958047039517477262369110130725400587801303406026274934284944151925736524372098857875604451286229393488322344538659888121789448817791301050033979462174723874084532402264390072085004813044267428547703315557297292554805155584008362497347954486317820922964655016831604531514154957609030357351086653537486858460241803922422336995871360009038663603602421568163406436987239838721046191453090279492044778559830241146426630654814958187999172012532665905266853484665876457283867466490730928529260035588779003324026487511041776755716440454051593661502508807296975876427245321061380409127679901175070192089754796706458128352062218488133966211656410672939684767728241289854560346323935827259330710469479808832814160624978503061422809217851527047563183933237877678215048905385770655405737611007408853750468114194922355955246147318560128729173738532122538325155676746897204182390159717820939440136207191991133084615662484232839258353906456354517291599679857395245433483722639686085070979908615927271667599311090524400991127155348242031251393813106364077392506307662532066341733421384811089129804886732010838912027207701496581166430478020539318561579948086021966999755987124670971558652368000762096566735982821929659658208310286862202000979897100303234209932446431768331886156256541911532438135464019335840280930374688608175313610588174057927244147660233659425984533914348661379861419792573418236039541899570671507051550586195906727944952927024469847300661725167774911839068577803286222938039674791592024853975569189026654489852338090173598577815435963591026203168663820035842421109418005167776538265902539574375694072059649954973296047653473555528916118860635342968530766167665953067894563503376257317874044116432721827226448693842221538273356185652415377466626548181208578845679794442383034338667495404415212058655982747778056614936788490566031357015137570957378607847135972254711236422875243975182518306118798984492573886691852142248982654865097242577704547194022897262938353574571219199654990140154933014464964154324790796835994890015963938204990709942488961306232145769777738523725761344770618350317918137382594506342717213254203121622871993975760794870788451961337651666746747204141241917439560335054367234218665581651423976041428167599144897570361201810490167946759906917154720224111063056978483532243347548618938953341984494695116176444626097640376330776932704990073842956409100203896016024889656989801394056715113756404222953754946664655662937343844859178845700691354939834781702442668635085596666016442210708994764183589165035832418860915338952946852217191440907728091164632018179277655940365967949013481314798752303075668332898235808534896106031629713611313161526562748165615546404819513987297850276921406409201986846985871540735727164338786344729346561568083322042816000979866958872644866580533650387090699509936227771606845546542849858594793913354971924553599743527126518032672816834052150399487363804476858591126829096644460565261494614331596792285901820526080316823061045083909190642343353038571755193317051207540554437687912660185347642058616758574590402971474155004434342111762748337412950199183934012505371590686824329957390659904579691270865273238819114486685442587820221448340976493521780600561213801044495435363725747016154287031938449355835570910357464270638067259604347058066531536591240616930926244797693697135404734326545676780397960084648905405697824894128769935849791413652815779273373820626835710547413465926425948977531335827284557658263355144096325039092340349912091250222497373620571603665193307387797095871358248492985914238374826002180651708520388656508121645179358036135498871596023704825918806600877751583434738854894829209855703277001017957639632358234760143482478845845081851532369557078068221339417926538341748539763979059912844978896960451896894994782499043566913354895775030851008262800111860007160128633305022139308472368054983552474432703620788117898096003743500100469685967364407629532191952990949955177876272794641179076492864288648404608738561197885867171985455843065937437135741017786272407493574251216064012171820565440337429695279317757007977977471366009843122008247754784664709839187441847703875608849051245267035132188073668394485442364196593064461237142620689203110657989652484808330586413358428456662610044886167945412502177097778036740607653217476953948451601609385833586967520512995240573899962460553906103993696974607169317488054844775346129765038301619562179517361065356758253761975199728066862326162376741050338796836414563657414939703276377488686275201900437989245509924423635701062778725455624703197185824544780485085243229653314105596035776235999762395141616040386159339356673983654832430407239361280144544592435191769814278998596756164891009601593165516786302997179078604749690807768756494799268307830273089775715752891313334659717730707605002290012627088616734745293567805249180907558745622386133672432780500857507915751939534062644954809001819362654345938782722281747982708628421186753115733279604617410190331591066443375527041894717323233905349508886761787398084166812063669265906943755378304059515382455759216204058495843077367807872315652925209386898331231491536828000600464124658642719270808225464599861450423190261340046246816335731810217994871155523393720231485822531548824404757970979962485350825725355382849472756981477905299863393730177243242546302676529792959587758301056336422185550161107234041049488995737851447770094033610588484517187190600838446203921374111339067810678441277485994485032893724908031473319702188732095773017169117842519851037760685807558453279425841760489133589517331254442660860392303908667050303173494549204271623902674944215639872977492610058378640098280396851154127018537510641701207810307922367745726241978622529510831944467588954837505725160498696553926447156091436926660921764155602519758363084683044472481154193905804168422095700594928130028973358354095704274924866919733597551840265810527780252678576230291447161210907393472967690401906281962150178996481453089343127378676618308933542448558838480063813012979008111779040378809326306775653557094757460107528627888576567279603808405000671262051800230962205336499248582936535860712148670161495234574312915040674509313357953613618423673025551750951375337465378664519373057886839162012591008365167732933893801492285265331321950845430362996608667131614618126109235503481262486038933521796313431607908193733134400153801306547495673381368732386747128531453398745638156527923386780395566407592862724888319771021163836609872577957547589681519251125213876464885539940488639936028453946160784745589487603596380466539195044450376161335118938810127815577487040499553956037305468599271219763241130277230792399348009031155068261272657055192009970441982236432183549213863210918414594116707576452349091471231208698456799654394972843085060055712643707881877008083006962202815003085374400552658431929825030298416833166617790590931692961416973399967808650230391054778474728334517444338800733132437352527476020703702216100092389549470162035093661223956479831084321744536184410265410032572504146089404425660983623882646727144138697415022195150666380941775994725158652495837928854428705389464750817125161317554796268024256477962607489366216516188297091677776959300248666519822826635140487483445684011193622503099626366554787778546316262102312902362485109567872791964596825791397871275972276624407837161710905004397324387023314846017033772100812447444959720174077215108189342634262475867417884046689070008754423196070667052764328047230613774780760324904630005382759518350899261248985430638281095319378787134103431662374721593589252807666904842308059289481815109485160940768765267173033557531204628652120791978905761022083727500424721860369437362046101313673350597635029119307729762493855107177691711315002755077795444580784521452570423657780971940516916211740247708617069678748735964709007191709164506224587370523116550890729589508888047244529120707178468443309741375919856815784046752742787711630917246117625753781908884937349226004928984401859136581714900188281036784764389072209555509854190133534788316883894148072361063326738935446773326127734223688126242225443668850906973618217050355760897765598586174997523178683433227228304014779830629312255962488600758071645903340361052699019610997634857299864682428067995753631531891827367299308086214970074697679865590912273457306472185558102016545712389322442439557726418166433175916494973116987106679142701148171656738733059012614204639893658437465372689953982437065742094000092621391111182231999387279709877863310506138694405580028155183174198416397620771903652485061639901894043036845813324728007283829694465725113756706294833331710951475870350238354437624767190216185833171738263178458014505246091948939990748188277174706324500720025922728658508165967924406196870843925296231865372912036534301083411110814069898346827584156240671558491846886892580708126155816313224897731701168471855109886606721018874935561623943171905751624810599685715889433967227842116778610733036199456600363116157321442081068490139276620139162589960839275885429943721385069199787732530803135241515599671361968113545311614767172706230377925616246759485102486103138194422129486235231550190977404166251929541004032645154226405518428694635196561458360757494500077051795327864695382859821566089133356534859168842967959523847883543890229807112033198848756821188792172096562725068728362702179055823073993845030395236398676435786770604864342596400705391659310579469654032874456111869401131561274067335852398841230065465545581779347451013398163461855924883184721507480935577176997486551121797859238942417146297654398843139261772431457433267791296124877092435577053376415866205038723207700268903249705874577719533680708555903329593027437690221105318026987191689305551947964286040713499916935466837435641320327771340606802198800343280122777891521759962701000108670227760153977710248703272603104824391424073518360332982518698617931826930059923189047209792205645102293640883604335126689546443429649582895112202445954022046356677256692835374681932344029852417297838153982770536460705961426790438749346083272792594751183649740231416633682225227615863068218798250201643971693415255900714636348605005872124238105738554010035515895658814129509699647976851538930853409545454989996573113510652872269105212079988289799266679921207811555534775123343800004435799605646572249701571215623180261838426024383229583011701030335881442070885809007736394881217642234216627600303267343126141325694474080761903002923857102469713806139857715340444480694098284355496148907952121031275722427553446095763817530660431022270411923703148376090583344611361882282118209787723528003837039347203215808949030584192462896590286438853317346132480265125066070988951234654079668290952010519669512279973205804259522675753201152155057404619682694443802679958646252047313508993031543931044162251847278761116970857739902330987906524526043442469874335676299854841521122457665516644276254134247960730270486898744151427678441082700748664615470522699287103393572887825747805795003963305345804812923128291358887629722199394493726254521815631664469676078323224801355276172274718949705412442973991816265037937675607404368829756791096103552033109397065710586545630018575049687454661552610460988047387299441216038530314393123190833457611726786361833675627320177661104247753776784152707619764910129802101339299284738162893474688778840358424966684784823028557833646547608396915383337456716930694346017257329125931769558203727517561203170347398753321591873813192493522973084317375114710857848751326355809802431394123224816655404842928894329547546959968118510065486535167999642982734693660647408147174810364109014112056339634121213270000271449304014174712787297526029885432605811115667236949676312348164151025539466129468327987356628100514565770971080074745777259038541102322337480777028600384156286530256081418205519311202039445176320934138746125599544588868291059773642557296429630260153583828360814765552905913590491419430781445106082855298779998729924538691513160959329381318989106036950244978289046717912324917175238398190465270734628739281026764083806438234786300715455146457059394456733518826155935004947512757919129212607587431451004025831867326977644319136353882453498240595916017921925557133835887556638379567944123619811686889539242338326703235576554246723089199671015272591911183796607084370374909895841841269533193210191266629111994019539980951041551464077187047512247852361030512422193533472058152962205953779124703948544668354429183366615822711250456965633281539642246026326132563099780216817902527047875206718788387769180355766508885239545444888901251504872879194278524910627570447642166150185732946343474254042266931634516054222724721514445617316594840455672097319958702042676609952031181938786122909450020991386300800296017010047182156085998596685849115520173786889937267245793698469136593181584843487348015058869277560162094303255733418500693313543518150889011892405451938114595839569807108937165548851159061146961032112428622591648965608482659680804424285596180083809010861038683354894041230674298372099082679288569748424914863332829755719253717771888357582927776668205757260525247091618245226307359321683964212371594430377094933222472921382478212668261320704472227924337916688956824979761702468655585256971054234671970502290700123614830529947875565956368289152129291397625640950054554345573466067404656953468105933409872584506251884660949129834991083910170960701570465898058158806700994527877129845563210340564151634794070730862519371751721110888319410927868872447748246863391776676316398856841021304223424784858797911025148843333763670888252629120004397030632250873411905121858179056997581915364681084580122517899977554223226984617796302703309543155645120249511632663028139421341987329076761910217749159440346410764123815444822042113539386789945422157067261243893130104500947410184507229474641845993366555257316019368523137030605663058705828638189907113359876068947881539004531012253189513937998117414898964324595714761178477373572313272033693422283598716537493526894539192869051074806465200186793818150461883074519549837914581830075295328911514827193249028534278165678014626320629430801990012418770256491971796846015992695850808088284263872769533646233620769666625963497723415517928387126476773886791760914952640153137749608562542360229939180714835537723659266285347480417742367624398937778242064900156460036766703123401901224301043154174115324003186792287968604011053427584294877374035043681071016998543774362427378715949190558911759342820347975256903960456562773005023649173758276811452442299628138976080544062004605073492110259458959125133792064753838501593648649276641058421457553756206215996365401962954366930459379671405537151766306283374228038829311248092605614650000133891480589408662096164524836025346418520759586366437095503733450268761976656393191749446483679882035096744200170777933236907935365612748063095683917500645792811631468519857376273293640804434673224488631463647491139849559329833213974441359791743663996963831852884671748287406941764250583811616539491713835954902290103123756588972299151676999802458704491628103945180732809325971064195562312832099098650429736934847667683754679624684130832379013836859727175646013311824879485500772105684558971482474213636362339512540393532677587125774364100732475725547659354503735367249564744691933317654616178863516625572219334926230405783953225535872446110741739182957764206382845849657901469060641743977115832805525559159316427076603415990777109328518357154614140738198507742410756728773408766223270494490524437770989396633611633587427079216088257665360387062784933876859036926044317020329804663376107854835901084674856194184576989009576027467215877194701769846041342756972701953688932911012013233202168417777218789588717578466869716109947621894118875243306254262164790089173186635413487073133928778938744853633577510630958394178550144481287170142524276620825695845816905316840731446712223248218508137801538606702354801160653872273919341449548789827875770329468585145670986077687724736860508300558651092753169967590906574069630029310013364435861142421941743390712354488952054549247300661006457815122103902414377376683116785402340373115545344047949169692529131388933136597190454593594179022363992901348204022213938346874470869933850905696605484519822094235974954364430217542097581553106391799844541086251466782591768046171698757467652412242259093051460976961635044889612105316669959544837604564223323623412182542826168398498275757457803651548717838404722463326999556936417496669789929388902599601247803904498214810365148741074454242699877504676420843667822767392529464507843055050556398688522305666685340849315795584112893429209484175566817181043815480005508336791849535094030649787677826384920431891008188964572195041253077251655537546619890189344892782936125683905811719552434219505887115568609117495818219260286001473641518418151274819657977863397454801946692489426874326138959504874976725821409857284813256493561172724716266506614960284512652521989899057617290439855018399238630748204964065974458220693533944187146709079863165902096974183551505236293374499863087252402600687461057231791682893417262373650995410768870818469848891952703933005370877348760951078169941236578444863967600851164616305890339806217171846398873275464952765703826532472536532094670899220099294860440076776441684901369226695908101197248753154785901294385617463383594749422867827536487361539355752779303866930924350736486541621775882960733100991986976994012190210581631151053697530785175115304302307030498604929098067239065182523358216539276027726690546597332273204877888898300190927751799382026935079307667385047214285001475562105575941171755450953038438781358518982482554751334283344435792310896004808914330602663782244286772778018678643236494655946137637013706504449603796914773703951226789615291144624862315811776976529434978429708671193607185463167059486703202406306039192823418763229740868406195187658643019000178687838124094530033544105777065795167811988858950956564551782209678285913109791188163601500625700039238877746372277522968583617541202368921228952672896162676601228775331238794493776255316910341816972258013305072332559150979559665293183826723121658163863022513634861557007189283132256328812138208048966294581306253179204232116286986355047097236459940928113405753232598235751693789129304041208440958941218563304727245749499362919797396639212471160540559268078436040604726170449413258363563213844367398234177419595128488356502010370354514509960907184159401241424207322906921860099477408627617521488511085583594104028947422766340980924214306283359266399698423842737779584847160227774319132661650722462522331338190061802581372562606671977275725012473088106576451826503990948276360776338966454716492017198005572732937766850087771174965647385670064382927363382744400852032975318165766968041146829179684632304424639593463254845265642056246116993314499766785345083229311339844041109500034955558016851593911110771310849503478345506411711008348022743032787749817034354893414697041222845717738900691735652296140013246482235966876512938139502801546343497880026768273135457524746706893886241388360775178785764175129570567924005514730603561695901012129489692294782585964649436139353977059252626480414932315337722493107875250634116665264810191477407556894012083350056470164713309982671546847049372442605719260395082604308147265992127850436551456535675682032489489052068830653433962564336143074529023811872288578057061965362396490955381804539870869321593099196813339327995538070087235525564417773550549540521369448995987384761538241041935325901602186359054993762101627686619410064220213738894154659997048443288721761102257257701891104297243280204132739862814193476282385077446755072536021822898339897818612817572912324859550351701339687052657969589015828525698402377612611394262263230455780053811238820257597639249716912473078916456147839523629737573580409483906705914308891579969203619192415470417897276884671906375092916633231474527290081007375942000541169628373092456651705167244000918253636376861647421189691419566189680033894758378550237666591967516907207308610878313502548532033635297096906559378506662857042914299177975174659695107647701744961452586467045014284842445803475637470194050662106002563669457992334103348973615924741918073982540718153560995612391826456565539340293323404448878037968693582129682210117337817134498416825020913126981496568040442535661286531410602651260071624291490820843822989219448042295890361560475965975831409201824864203875548517930075420121539002341828305706983559291902890348703370437890452191781968949493958250964429452363647703487479151149814065019339369428189193967929371198430888269862461614191464746009784428511037587887980830441138977172475511527256524246859042948343830482540337454556796550974839745104993812733241247216122493550311553021016315730738596903715140799981371445463476878323544116549490320881635782632459336246454812662613785095946329782549156556278337338263918738609326854120913098587176288474156086784293945006532768597860608675519143770080221610923007348481311566230743967914511834856250290599223771313313298689839096345506359997031173706578697441999671264995007186686115651361042261686708113479520968954991285977214412129886984696435780138723661445426725756865281258339067210565012727440012884522045640722179694294862763257629938971300740459037998261701403079528313671569929874317297581494772930575207683153363403795903288166963522400305036184768943660600617006057010245680446997695277010426832714788503071029834029046511884011776955478544683679445272882680246223045824878577723207858172248441091186467028108066110397938858261291506636855322564783204542852197493395376221113741562371828991924915913695258654506628950525955457050372909051678892685944648174127929037320877107089354022674914628892237043723855688686483972438422333195972664388056792097827339392492083974694684381620668737603032745472756151636261642461878524967789315821429700187626509086444348812532540606074680175824593327421829141395817975668574928503711542943615856631047905627064038123808813459595722065734006068596494443354271269430102055532387999132051183326337344700909067701372693509599657929520134020008493971847779897062021465744125935835285282662845753348695558985058785649924750034190514532589524557798115546948805319482913323515278930357842510041306060116375438926336344758252937721043275572372782022856648983049905883866523124327969776869004213688849969396421715102663385574865044863356262143948724973908890057174535208578232768793012662779141507288551227208278352768208163682614603402827796396540280556866413336812923729492286704109693194714348081138943850242096074815294410203716835550648419594851156890559468164590674736265285764232866561800140056051529179235258184484096363203825446798401895875725092483869415660555250581621602614876831560474380397294994222428611130692789960464212445747367630111148824871983073039362917086394311888530086771029750209006582028148151910400285766357333789464309259767207849027545096730278375162562766958437156409731360087769475762179983476029522787771648300718117356735808894322442202808280310938762342679625534639455241126773751123314436797753948107848186562676097801247521793997225463035154104291447624996927721944271919478029262211798495035247089775855751279235554448852502352847244381256064920080773669925206281577510048571456400803436516795188446949863857957178978003673880663023009730081932862086353107738383842525406965901870752197294820080200479785680270822331138386703145008393426876922146014779402319348779758648704282403287162394850947374560940245025843939006052560539366902507590250491817794476006187273613090467820567070921756186376609518265291930533539857860761990670946031546509474044092054349313214505000125377741575423304514223607298634040423032756050478008830222378780090657053087952366528775044428742703757295688073643821020217924023903214554252585184218478904946392694584159516654070135618297889801431911622409882571961057783626413117186693915407263285944812510308535528113675164860270417478717876792500748926605668278378579008672816677769440705559421147451605942304095468885470369023448878305365940840696170316424228250473442769398040389641751827038508719372882464878745534607869699016655962927398911467295774270424360945208791046780082147895842291878672942661696035535103056941011759031686937504628137232368454198021097731560534321659441962488936077047233256217553932206612521791709432211882190922121893714592680196989543806547550464186644652162842992116185357955963668529593548168975967394813870705813643151956702716430389825162792964896136505096511077840583351977590662812688042594136914666198013431900500248840468414182805149535577037614414479608210715569659077191975222519917404494320283087266604054629968070399146147788456222834676811882174694287943946899629654400020813284123096380961479983591475969684679854970407011159908675292299206714394318177577891389086176931669414495406167726222333980585320218257722714829523619529047771016126069790365042233746688734249987907778842960470732686046829159076793621231221880541419019469328080039788635517878966573579888216181861372999549405572349024508126155480730435362735120317879741523005034555790732165752382562097242134843382609863318415892685794271333404615809719554374954087456465774235624747487981356014634148078570482604936398305937378424233226545615831539194534833923785481797591002932546739060507840571823506614026411905022957103984005144017229942482092018350515096517927855306552109954729124390784866561011416199542158741006016300310066956412128899071932845208496150735257035886470251643338245033461175694878710890995524566424477663366310007653502267608503220422322369140462557746823338221108203556346719498129139310355847839994717390583326427843532435713849995494410449662546571673636117700862142490575911906274644975217020517386724550187338613062703710258547670228067227176165605203665876552393362224516843402046322349760963680083513989896764527250751812062088674023328359965608468936325395320242408228512829966822687446300230730419758464726211096012591355999431971167063461592645175894743691128854413758691346388540539952478090959281041842964873292468986822162828555064296176360348065100534817087806531716623078356361190210528726556469728436540377994081514700022435827229065817655069494282376966459116295310581036866710280513598872945620751730892207553284209879807105988459251254585809465488136377743284691928098697388345983613591270059065180152264882853705388626351164207230827660242794653855752225557861767467743464345332482758139665464568785672640178146878362835966315242858601519782584644763941147736747616845777556255148534130211187957939756275685664841497918795467579432000135410970475969220577770646642349573084054735160091263240950510717659020692368574448662146583307529810436714161614280293758922954072683721099167648829924953390829064785229546405732401838491269322952697662882543516756846780354870591756188637482670464033956236327660765888973895066226538674313752547536984984534088246545996842394388408026642264762886308405733666206381069213530416671564013053333887646280052875185468714537366531468005925827844285013241034069495577595085941371843834179451183823783658460656693915078242322754191889673765376400552025449222044750061873498244238012570960820354672472272065251271530050603462196594581136370671019510552690788574547008560609069021554034077920977420010895051490835142505452807199591208347203302260880016706894074923339288638047345134850460314962648005332652247915795766627879330466421421074490666346259795270230532262644997741813782342414081880872611575746632805570788839629110521727276510170562366765563275822314310718276465886979439757006732803359292669753790276813160620680185354618469484361789062906364879006669506343042573050243652157382808098468363636298344645045845992156953612588014055742526467879027712470345339425396147262941573566163462495321345666254640251581134541858602831724410293915650055963557667514367671817355360502843399050176734989731647975931555911143103700131529276781982884546919451157298569140883348562937022554226746215562591661656067328281662327416292081708370210076286698239542369333190219359540740423001769523255262235897429092267802681395858528513188205071010422844917430437328029230625058228864473320942832705926000367084055307825851872443036940339164680527456887734219345534160285935024341855122775407607810435267677622027084275842238119193546819844945902899793081334691003306114794316083272136764378898395723248536680517229610176716852145833701119250349632903173761161971753294466839701706580530822811591751140687763189672184333802051548636855806272937607095582265328831724337556477770357894288620714225360930577283331247699770259957323037661970781295246608126145839925070008207894799093180044132487821508663343602897469616944982452527120749395263274782906740685891442221983564281167681558446995842060460219455687111447550132329452206153107610979736553764574205493361217319701852827641154549479345304566726221129079174097497057767996167612590638218998707646620073155418175716601682112119119187989718849744863232644299781271720766909739082750633221285797772354139370241499588878586362264271780660645600769730498116780814809838452551641231601501276157049424632450366858420499011564068935564031666192457560217455391937091621616610394506827949908420931148431535895227419804149101946749007177181804926020251759140871712889567649024194514526353196419340512015561791159238437987785766862864214682854314960373001051620801529758764788314198569675144060655029481062782563562711985240556551681833460716772152994300954711810162373076508720619858751903641480534348435628044295395492792893021701888015226931084008632558700237342094910578408925346352455162453659618367205136317952022407636468832355389499734701219452374921034948812752062278840714023287364109221725072452848144057164655099767863957530394232717896772539416572033812394174715136616838969594747932993893734002597469580624200458632020827892503135586088378894387803626965096033518247188551824159537543116287500927195806022747408242140263081586986065419550864268600945055535437839935039496305242566048679471152241098128311934845022316855979372332504670024852772494844953048435215946161491304220668686243227574638167054533840316583808933956694475648762671788052796931570831220034309203833621709880681288132754690039368029293512816364861655964413697007096764968020896196903603406648083453615307917594093123855602073835200112479851865111607465937096091994542707618328158798592572042210761016884395456122171964579982768722027658791168064738262271438886243573911084018467443017470066533362738131508205539398047903632208381443419447927959951411276066044653414892438598958092283163017751427173062373639319160847927153482768911021687294136129812125974020833143974315066786596398779356933839303441503125822446882573183536340331582315575107556573362611844678021955258083902125619946119334370886505308664425165974080183823508346839681630720921074657539822406042158183599312468525522067934983649689128856251681253573672847358493051829780727859962544320755796323719958626618369318667100099901275344455131760099679007799927523684800126536440888868262885827841443253615918790435095658548726793459847873668284783637877348811496704832358579470862033402042827091332911897418301577131278239292230673653808839884806950605050048712933533466635731625705392499507111801367737782223867281879668142235565963747208455167439523181330169357246624349489422708333431948066393237130306412761584245749899103120881589228947228120050167548397076442129971735911157054232451704931439505564285766998338237137859207380632082023490405188120783713183875351710068170391244803920779419407610098099943471373761629778342169010630800663128818357369000879731960155458473321990984430414263365670927434745020827380070495874660698030442464490164877869047464772932071563325543625750671426324820976284829958942937525529670816968595193995583212964507130637437960162224715267647828359102931535695299691614318101328530542384769410875126160777234372855066538578112842550799371396349435847587102488076475972120228181570651595047336253727795291669697279755104580038456431869289258390777657413472179483322919569302544642673353087299153321455529640519587540175856722316317051701608181618877224614603156836256737997781166094589727375452754897041625970772233923382090435492372916966410382373951646354524796864746199740564978299017302771677609833516041101323847116420568006537418916172590526842736088071328167586263129442016104534979042242626880081316520787885208605792164452486399424666186480771080229130504775377349803721148436531867799787253341565752530153517020584963097849582194844267192205716849504184001011298790138570410635142858855271822190028433640753914168507517327311746000887966025208297416833952614908197564700528500718136377958757554542181931906750174509279676239961492464566917143329988297321353593696074213547552697306362793175462794382698473345281846908438923600634837327899448887893296544115223237419409951701310505193803025284868708128901351982812950851667724283711407417569488270276908887852166675428415454409793772808830668794600738165918002768874832209605842278511138052038244340524173385077377316491983485886668255305524873415990114568452863355894836878246441344763987324078803902937195571380684849522558050858317282923306639122037144708394596529804051382424638625286132772836113431487074254962223765542108662392335391442332155836047133539319136554516360173454155972406183297483872734913384372544402955255230291549323437361211444471742537134410582506456318445250427195786960724633880052118777540335092674715464110267429589660863905551629710656768881968053033167571329742832575084022887492156643616393596300304386690630369926374215987125293721173951186515017672272965913507297651267403842451382313976119652324723573654633244778311352087574837207509796593991312309378347019817158895430492324102651445367828507372303920810972515759348702974361163232838384310220624424241451122320911292932524293000990013641112888674116166822556513948346172674975391466764450078035431024708671551425440788298600835816250031508881004773718556924767352885542703217917279232470843150068736813815281707016517749633648830014365152875311572961137228361396579870046324593892730561416423475649978493664082612785768414580449448738511084068429486349237672950580773929797977127869304888824395496539089248361202344502580682278343052501555751770797938275690630731716223496251878664547103956561453036518836004464584610218424875291481390741025234874440039845228846992159742214884508108526921894527717696738641526667263969599712522813658055508621084702546981989759436980236947487868567617338203629342398450735387914895831824281387392862908845487882453703372002185853885371983921097661156122805279131150346440568317182961059191501548237107347780142390548450265382477787176350250471293877844666334298715933221449789661803361406397605737747207582655411251973415016971879944939501103950448927708076473407771031573309071788560522617318497707903985401596827951703986683353718605688078280895100974825042865804411447875741391402003192911565030982137674911239515530065741195053728328652013385476868178998915794625699209154546964200840324228143117486576243617144471158057189792858148512580461658784279801652671321110191120720930205530214781105321284346623960556926251660510389191441370798634765782864481963967674422625902202747757634926244655400141745127401580673018726219124922181362250913986438890825799646099961198411079413448808041183448964223092200798982511857724127880482254834061473232294735031597367054798841181641878705235962345423107199331154367659842450239208721311048770520881052850777875602986272187711687078697337390015872866127829107887073953419635562994666587222538232043215230749677252635087787567749012263487682298848201440936475335708297221268897950248844591856397601531163850215039325320193047109930353342110173975469513112614847063863124314751027433815945877319722204038670969103754456440737760580407191399889839710906982074592222336369926492332926616921146054508838528124163104858378980227548400788765905729141497449147317169324848624628563539323503288887893025986252826136170546484590741557136487479806570130320820676571499045732433712094535297073759559209318103253115486712687927865657929178683766499872855953128601428730427491280891362690691360551920017409931879435867812167839747467252976823741947752499661850500514142196785401840060902249271081353234651482336062268383875707338321957601505853659730415779658811517320891188153528646250025111152723026070202383241349963397036324450298509485784776821471290365453964071090079373022783741332537532145154045085483065928235530983276812170732498456910586771547323737780487202008825313716305159675002703444011243865725711773197070147469955995942917604287708148425458099586208274148533712064617084400207562662373851896883973128228892257955193668481850241465439468639467667870709980452035323749987091060172341082225412213639363258119761290177784064835686900914767775240528525910120406188859634559183039241396281185812974704593979307440190758680614829401617097295275877362112163650220589114095097475306745195293320864203367862106091802042343693741951357745770031386815828959017570208763513429697450203440298111975668270185114358588838185033180422476946763865083466309551226150181508962981874961413265638312198358173092101217495658918927540381180052186814824779349339761839234701002711133814930350650717079972696300590621340037550794058511743143058426120505839040138681485760858956114455926713328476197529127430558238584982664903829359655992231682663379086466132934256883469145826433102342552890333030911491074074827490778709818666362049170228984437573655181278224795206277052110902608758511526035275417493348993607645827842682494963243619992653276686653768333252064961844494283413847145152918320660881243699352085578285305592458118303073928485130909135435266142881203596916716887787797690077282930430261850815747609542046414446718108581725561193957062834142866496474654117123068319783539403829107001321725262788756896285165545236669423198754137128499958979846942607938879729535016661634323376285413985532030535706487204295679944058553406111050883860474212444953255031374397483064548209858452279656894275252691093572112794541317957350166277480712590450979132210872607320754177666853719766377197153395776513252076308698873325189518200516931411952339942216445315079123636450792469316893150539321285744930180904722761798858341716471259173187629171950070968820219244847741787168890170234267044183748935197566743146758266468092724239086327792991528978324348775803636658267426741055914812590188339817956055052396774654850589495019257421944049709987662281133495171073217912795732003413667210064869269117034876985897816274589958830795109699172795446034468504250820980398477528262971112895902331752209959176493602755363144795305579189552884590447182130243924191161603984426532360360265782271830005352372897001543516935945518140775810132863200815789644840897533987729906920192656646240485542674901310694921475216123926391959289855075214467660203187501253955006755140704513440879735007679339234204480116804969799166852667053042702864907717075166750640348100129226036903768179203553239145898866526155230191762350143255459104344672708927601970102150765312023051342619422366422585094891431869921939849931165516081607071586052625427218722106503672603077706042744821045441925246481239221329961264980160339005452926128892367558346330060529023324747818830962857288564136228802959068821460031321848676111963451688263556042319113338758808036276363081480890922136608855802262300807150200905843967259110552352856846514579009020158870440016586075634589731586767513393534059931274773124842870109786691905595949687297153396564873419413041261471100909669323823848600004570189320076034414823716232725388703775593612678547780556055706731856096001253829184093924425587911306803415345005581583733627485110940508506093467274362874660926386591552682422941239432805146598600678330729767564365826860823445080543100784991066599748402404539693027333532726032497998223956708198701442410823438053172154689247159564305557213722751979014154591489213349949994355553323038675938307640439117136936347329661822502210368355812808100830335123236449154093133114836974681132508987068881410164835110404966983317005657435045877427882195774778859500250947379865254070886857937607152579491173596497827472551919803488314913834855255361420490682390402181552667441691368587066040917272775668057665952182697978285967696117413511076397278376781431642407256554458719096981320504548845049723896698781773231045919123621527103828935222763110756123866415750999145794746759508576409106167745244861727534732185105441015343648103269154100771826210794425251177298017620111425000588901074133008590857374399520349985505723915590070939792413550862047681899205037749869513430873075880602511100944193770539197829317857958781949047457417946238165856417052673398076486505203357686258876943443762980008785611872699378728656804439069346792228585049587610032299233644095110883796729537115636583375171729558034743815997451397768737667109091070506144312159308899570999444050033439592862232401625702464845856539383430095801228397856652257212024529224912450352966323685975114045413636272364416323377733292636132568518648731017626129289727399666425596686390521709901348455604077666777430878593887564445117628134964560146728176971972859679151554055411480909923977813860525753890562897323934868525614807175395643928698846523013955933387204810503353372597748014219916742033559445971258924998194176280995540351310160155340935519500627744487841214700973282779738308625332500143872601927674329176808869163157926717771838287335701386501113751486542675717048571027491828840725495362175057995742194812053515125725702287901307339419922034448132128420507699698183747562139063571190686426468351935630087133984930907730570743926441008796816309470195840540038110883960707819217600119882146591431614890529445357338632956136364622601985359201861962566149518195916630549353111869088105840787551592581232358665641495193678672317987277245054343485631927373948894819845999394411674088430732440632490157115810075486799433145814715445274405318172477143904768580817786469773098519000569325245998481148109771334210898757921913130601462495012465831801320687266349788352451708453558979691032545799432728403060994531866890530950853912709935663244051425378537433296037269221670751938486158670353122692852791841384284449045611377930478853026793465137647744382753949074636980910519823009340498791343287072192628634294881683668858985541939834438694016543423284778690365375829944090170356109671559278663114477961338207061250001812877270391243830772178010128024240366008867492340269131944893818555599704998289515119698344555769332849181211556794614390134741830642266690077945877292023008535217626818606039694212694151316340501096075042406790794241471108977469731409666788716487841804185047007060818168049087653206833112976492653715044320868055670817491713147018072439363499441879116827437369222261610144673052529034411935417921680770874562524367609999271645957374480430274735504463551040459544102096153484630219648557850248642864148575766901225663048948741741697852238601920048725194895491741253792269914561077439806758676359434183187786894559634124105036745869583316370382294857999148701612220071342667316989732757109842867949059253717771042627015791208383880594434502084688505451507813117203244487263159629454092546842470328893454550109866762159728855861168074714418104773383569353959990115469130108205383846118387550192723108977641728466918450944855390868878343010195054839215120146088459736296322258515997993845768801662472816852787909352283990581367262556605342788167320762832931566534775618221690833637527907734919651389876638300828008746958118140527286969768552097692902997644738079161815748629398376764743567921336033000741515631504010084177009071578729553106070753698122192429156387103908832463324732141519576112725035155020155225623682141329303356774597467229564703442437077676787590023661025538064659062220607334720284677249537071942204202229083041298826042321703824528053933486571971112813987740238772163706086752634075262660296931185661715515525248030950110979569142413484492343102554482247937166714763230458818329148629637835584587052655399078679846695651776055581878977090428348521535828514178890569547825644397699531297809655076664295690545651850454097499406807049847310231032337214826841966025878961676822880111952514969531870219547506652304949540783568274266475711676622820194281378702780494489697437623840951981360730181587050032496332492376323099089539726997275084127131131957003181825905417638740932382463916293574749075629117683378957088015109437405926357731164907054534507780992517879554055555896174334737526612399599887817916817994336981020053322690980987250107922166915867663019562626986626461924948737685771138328095808700142547788162567564307207358989985748011172106903813362571749262636159028882588403988977641953162714943846610040389482548318464257499759233394033591463201308792187676492375839859584265160506734460614604286913203945541200481614884899791323249724189026225805712292281491682574088336441287947426873819019187346995526092839738835170191607749452040713567203077921359375275883822033313039951295265343068393071564524562289661120015287700892306383381466928803443328314372851632205765095360456424634128580265133475492393486266756517921491327321922014209190012978499584590895554720708049701982144784565529777971728435914110225602997468297281477798393067989683891928828333997376381542591737023892219861248310149495214716652519281533834853310943816432775346017973925848365587932974874233933349981393434109034662074163046158820538967490094896646456798378320979634871806732014401240824978207673193426008877247002917741602197427004300775506551705564028205089155933482708330791234548235895748262219415302925596728900730903978504965183279351899569399768708213279063949286792870501706915608530099308545424964676265926176906411555114351176238857773099949022039213860708634650947401023470888728110975063876596585797272535574969453122580610803126494399144718778760643183201355628699447381261058779165711448834357266795616072534362247591654652432163433342417367387095401929530317008447689029539937259247108827427715102070869240224038128471457463337958868693534853723818150424601841346486689769120358490927217454322383984497730856624489281517730287656688607197826393238934437552001858139005095171647416545588920651664939926547002290138485332434482641579589066105269159334350617650990306852535000794285511326343216284152231546629066433500212479491694752944337250669026262318966035815977964889560163442202552590144782699283197471129058239738015182094996565166488759222737263511567787329436984028922341090867370090796217005907590078305251264451631559686648032131755877256393134613571930767123539062786510757414128951987707547901342137765482775759301133476846451751763857635783279273877680106645507795241265086503954019364013190792448366220719143637940707880474005978622774061050391719701078172461725910294345772354165640789700219089464466918710244648546149601965975910430517357485765340370724183056132341961828865329186869123902898724978506986744374490368534792737582429553048395613454888527689338681211261106320486718058111418572367306547531657404092259015670625084006840373067716991635624997044164937129005432840462929695504520186293494318202616412513257372246077829892441893308351455378979343775799142125683590530030908560383283818274938869401928108020576628087533704364411760161277827366472149425986278739598332224927866752846432730118405659814197165992261114769000743234370411362200233866506520832848892187173281731364625937846500530903251757039709770879490498491303715352857699143448616391790867487646081847472457559783488632861573687141950898410561404993027167279737724274789468912710342391966600946955641809495910105743076467544125927984533145206632003396170183760421563529618578055270870191712718196870724797571654949707644310977895200433651766891304889862793832407674979872491532296947182679656112273213048491520101529471455691845653225850924231607312403322737151606015244661437491443919856672737500508504659932247931403567865623671069310991706002936065969490312397444843554287102235723412871401284282236849050617211751514334014153844242664591596820746798162920775863675792094960410722058455965517667544979532013949666258058221424490009978331339464022307740136993910290043986983578862562805987371005796836976003919605237270192813947477476120267144701509903291833922821267893293709280771729841292077097692045000215441835139779603355182110099128803800241641669640717423949514182495205485630879072161174620117020233763757067034518396044458001942557219754679918716772863368513204790491768604319873682338063265361746397565142109911591495671293262863784577626576735807618203633627326916259573029522255879944837633301648028160575893689742228734203677099834398961873475404776549850803901953560248270271696845854237315873935859798856506249250405656562276566992668477879743646969827826147348583687604903592089905331633488661120834850764974080922325721996833399553111953625854443365553284597863454414306786567395074597312309304011705904449517382819098310878124044357925507474272092944347776102558009135091931413315189166906884218089959473489351632561964645413858066784361481668079966140307471173280658968699805149253436496024600566539389645598290204114498359272775296070054489799934996267129699766378595191336226787176387174486747716566644305877119355029227479371628482801467161749028267370421397750824775148484766095170166298077966008034639629216333144661271905943990088504450092666329022094959397887601806279477889087481023363005844436147606321807380745034511813961635324906187243859819905778720295626601396732099484652696594243192340599063066948333769167820194441028374767427390176895037749968652658654393638325732885291892191218671758017971169275508913926926853833237595120765263166728449907663120091016509146635992781454019965944401589004042128507370096275603035789475371012229721737592398325223042435601887566564837462544338717426313231552972662223636518338284090192103494247861312755411184827888232181193522161463722321979160029693132404288981712492656292826381227391211514541197923561709618475319239230561619241956645471699777690356417528500712706947165687277606533446795634002273730598925332334219300308254269810737476947329966259986709841638320197644309706194175409229825783239473982935449226955699862174000444785020622032040386229725879903998871721599383705265847251192718825133725102705360307842377634116873409794328845521700419099236504233130690123560318934718191293141722271257632740128073722447623251029758812973427569917610605769247899490471094868417742530034519341157633246174912894621935645691797337690656081400862360082661273145268995972008179289994654413167286948713137217191455631234544282112358434640821404069088611075449634159534248790071283594139816940622758720207873405354985005962659800812859891976013692352387492854565615080767335383746541330948849965938469520848639902361346440739486455510426512686897376905005926362104221590191558578129832196944606725868195000703368298199406694496832109770562022922398103153152714972404601343645655114958194506232157998579640293078640274546102487427033723368868692903685968775164891407912841201921993494377219201449399705697444071751027866213771277134360049770464110268329947097845874648166711995022905558052195020424724852926323401022860247788355683449006794280269175979200218577581494759802435778760359623095997096356934339414473838643645279815314500073550014444917338574851813301495838747667371623065729111495595529800252692536741290274517449433734208547389793259216911527990964657081833596137353842324027583451811141606463352899342761086719046654549146941289159073215689406241720777301036935831692739536870921965428467797702236234219922347646440421836296575642269420500854066162294518756984939901088617616269970258774171721982167716797346709699379163331559019161220140549058637378495262524291469982030858077982695988851738702063710786789371033900873714450382872160248503880775584404705949693184415953873736107928998310802854499900323703939583101059845909254935310406493143610092426716543296728676261521795401138059904608280107408123205494266541088780383295824804191364358480212989737999501871458055563368509260910863688233177374691652431908935099603396497506468791933939943489395361637167408933817595905865229016627492726831844135189200680152675217486969889346125419401200581587141309300735001043201191287444091911248168046626889437859207743367424177831475391455242542832683958653062924358318097397303189161339755356978645195304589613906974741211528059779384209440493364899152353734141451263780869678859954053816478725663954865865208204229416981569417751496700048075358947347357155000753931394718473957289148428399041791004171442530328850068965214290429162888393077605409059213334051927417861156079187771045087955695580250260110171246955570559277749494113131613501047195482034728978142068918961123752927986533089792110685432060532344130426233266974742647403149823757089635663452332778718427230632358614635301250002609855240119414917334117031195493338948300958109452163830063185586800669006927202682876211769525686307793465857208826860514439469095378076762480083623812164141367491507276336278041550505764647363804680743720121908869099712718234833959419347245526500389434396507813696870359567747452786500869713600829551172678288493196586365266629074331334690022196777227600286743918961498158315065384255415652774771240798421380128620820991133370691285907720641725076986786809982209575487917728478034698921961409695494321823641291169221384668232209440046698186288409365589722149504905753983832401873592817375500315958305373467326154358718118971284974620214341241442701498761359651493001582005944109585326909549005296772127322671240715838581512800501215610613269639931445852742868121362304108257806788733256818170066645196124976381895073046640740388156865296030635053022579981143176123290131315233854936139036504066426859411239997335429615437136584322749654271859015045713498922501832936572889910471499102231566496004619439539263373338154732762131898598986293332556630701298026763405235306753975727467903884812634830418782133420249256830136608238294909700407871182170188178783500974702496248809052771700485840650771753237925560725040228947541418238896960422482942343549736667970168398472807866259060024825572150499576093070622660304781992402438943109869369612637622330932838497203938617442503029281392754300544362493216376749760548959150458497161123682992456102059072496675339195810246295808606375311592638225238185951402478571639938320681625323343929296261015079434959215556612456139774628061718227257392924286299315357958912270840160338360639976817470586264319442385235046829293089396919305167223244922524315808070076795562784577797743611414530397304662404896158926708055327250766604555479058649659191445492587054939755368829730600767074362501829922702376865796264169807720069659772714346842663898997442758796779702195147963456882761211476624953740311602741437843699541876170268887212161842914488140523032435600476372088592395639638263606082035898223346632513274634568157070909119839630086982710903123867696305462821876938339744485221915099946306044791314986127318361249017264642472306557475020951975385040249727217218937328240314905395258662609160820350658304513032220358534744040805526641167127165473376633780783212148809657213208366280169350791994365706555612297769139687493956279732838823845081013287653892031320417654292732711168580685490585864866418915972593743161530318920346139806965135830562508773656705163414577615147154519741857589777327904298681443057359057019232472461116313090275315778061205983419478668885275048537888856123191572952823303582229165419715224227010951248360130424103978656074155718025947061118103013013764958883951245080714230963237171838086885844578853922747899932507271045377182321585744063972065216749780903560569993564222756438535378597169005335181179902047547547422134442049899997668730392575872947810058832871379885976147262531930453115454932762220742175804594183993665395672758292530601808970855248697061927488503720742702124290539245982117604381625266875395740046328322235503826095434421864946587105014708312791777623194533713584500748165552769822995665483120216982406202520728935521545546492729584281056937569950485043227073446995504963056181841290350187053466925394101767491171236271597784279417579041360352807471890858148910497212882884107019473339407608324295741619839415239972994212397289778690405184411748383215651633164248374107159524002857334010948649370718888519799713770409671493929794139703766303695632804596068620748707164573962112736881470392627506210611321945976113180830257379238197371897656713273612179195057782340026190512771835859944137173716477037911170640869559743592263069688368220368777995521271584459656527572502043367798498197462794469667684442472530925640274789038224086996530687566839958076180608590790270452900630754289494368198529867029764076997500080018452105099910613327285685996255619010281513486172578692261460549915712911634850151710036533961779960715920807420943034460431786933138521280012957517566970585376634373062020602613829470379924934705642643354223518643132593589564053853119042846812170661061233384192442936519996432838987371504600627303779387731446655862286495647749313200307874278026521856407243690237784029388927209766363619945909789763305944548293343788607315184786034894860499350021977447266328085746642361765965758881319631136442631623614470793994511244535391213171561292560860708943105800402889804591663527724625995798340548082009324255488132455994269318473965669125636687723502888283699920047807074812247284056027163951299889952239214580340167471337098856870639141209976328928548250183690226118308371331161845944611718695784023627216453674836548987768470507236727650000899528792847969616419645821416451423434841108471300592939867053039433296752120605342652469211668587327629662071479106583754464745142507387376402979774955583355316934696304286466917106229201278972218895564461984779768359391016472839416674078931179100320071369142872727657651853737851736876365873148441771961519129086436136813567875467460975642609546104406825636092344378881825250531383341713061627004564359792866393533476209424022717425779503121823660325705344608489619725760343366832407454588457354106814780865287060450939617845416556321499466760023351883469508064788149251741919780374754527041255975298419571168855171589241882165260859614605118805672202995595878162016881492715967005405409715970105679102425983225361066777816697228843050893449437398722146325366766691223164328469124426536893158333936107395981992032025488251075177255727155045882069873360169686905385942876519711667800092718262443368649034431825855084674459409105419498600031057127825374007575226167638204394920145248119838496320055642240311312120850065016282206990655923572486473637120855298619325919183184833468390237106641361377014586851533964228486198385758156129235440002140468461890883930454058350277278716160478688230739084823425357970574393140890112402281823957291772836823128816497257219888604983653701424485830802408914865180208899979018452368451227069057410849122465156389959212426867616066561234038924184321303923871342501589830153757446553935704044781424062816050792402277410972510778827081851609515354937905257950527601363485107358124998404882060737595796498014792215293823792626128625684816247744712164835400865450661920962181883943287189870305015977045624995824428697070093751136792671400989623113418252288350296586317251918644984184672782921323952087916985959860631791423737723534755702702881828332556635634049126964143587465458150522482295148413727716167226023671094127893564706199542964156892611428903899186259362427596537402879099730255319716536774439802807897000007393318559831238835552616230594250579774022115023983787041941411359334930535188571943958739983918746877362668871034030265813888326741989278699413860510798802601527733122567957946760349649415331744653168195352262576944990415683975077907100992606306127727489951874703520987441552849845486877136118932651763393594395501994853091273652748774565162363190421275683681510823819747856544879532035304959016035868920995954557037100529212477067601729959256348645545325010510674927415300717045718934950019728197332317860202043632828046450241090318913206194688363777622907043457005521189035718439363437271534682290241139588455602016154998377189018567714709943835617948606666491502495633737970927180672983343296864693077971863740539071415528230425331529897303838022143987979222546360074795705986841023232742118585468389346815695978574361653492077726173174804904094470681195677995595878028590664195682606378908557696207449484723966000764361349941991663907567831287490888156624077407365679533668688574102573924616017095127471597164821593090013515415202820141948807341584650196716405160811244395435130070446538461579982080616324166532038658690602997769228950702906016822603025899560753017188921502997743399960478295520590975293395905544127460823690056188605114327820285778431563262643670970100232129903365262323097167009107504227373873908867935451325272857622840936080023274987602047198405897591711091295262544450811844525918555437381051256847052439062246053710467162328737019271070082428752461631302863888247211547699925055609320609741910154957992450828183406496408943803574541812419467920638512880467891127803837517185542933111247346191667034098699649715796694777862530350329298654637311277535329594318791886520456678189885098993475101334907590227898864638276623301640791207218546011861244358258996312033994098626266312507525926698546053122582886456243670661156166231818790065281636279941620001755614671883047761250389038379617279491563007954680151130966858907853921612051086946704854303635059781738168387979733956173609574809879432090870377105741605737662226696445446924980830768861552528014557718272768153990666183275386170773067960700296107719598355363953751678422746865836264335767829489090449922877003188297090044954910956986927646730113701885295702498043826233547207478920123990582883958980305873413473967373849477268276133350655850789201726511943079330788241433787942566827388138450030268643402208898622453145758079491492973231162328733137530811336649607226597586161126896365999972992973403801662371841634202588650348837251624524306947377928587607017823823771611779253086512484637294770654100348212808783146302983378704461538413539200419344526930335567650415389931086370767494756529418901533179419904443907184411624307131675610489479947139608670920554381738055838819570958290386602071161586396069580962848414678715128368565699007052012063232949942299682659961658977318531275739057164268068213444438358851351751924972844819476480779677759181753014387664906171142782431416130558935668271234810312967927628073228774385861116737380334763363263839880204620528676549819472599937515599344556559275461849013952401955053716339511432591434394970431297728246145893318911807079766580224435815740756543444253331562015810419743060139144356155997525690561270787573558955242904450318210330217569846067152849337987239305096370135331925043314960504891012979861554308852547988707640823147865320040641496392281324650096420199462969912455433217320396851579513769224328287989456299892271489802269742788818678957423931714281549648533373736563937593590347761934647212196395835695278870428770332497269048392325042481015384128267800428341466534830659133141889074388157677373551940549085681493978641380694457686383921790241309819949706523066770465818070497403324436252892179472816713584345539087888915585451804642769921462305666987731720078378298851459549214687033172040423989746867790046153095458165377653718186755821681673795912704652175914026425858190274890268207907794772302589136978807767092249257687494913750311390570500157974990054489949531100948485104033762617979571962801191603260080394653005260191101886609252539048572959207919550030595467660883753833143894121186132460602794176817824032487754261426672798819563206154437443281956700927573201040872510492725733235258811114433975557394270848511531631712483481893473293336060005887939067699634980772332658969571474041040751304209434776737850775553574547012750753424174268813464396785672946774341892618065513292225519016030850877003699518222181884647939571551453663291287194811772281460844669734264686665426371406894575474963238110537196868879059599164798822438376187159860902514545008589528161790675956381619572137478277093953829053024409826195189284122199070541113993914000298182352018476819016879545728752915544857185173429689048067308744187894384661378277206866436951593324147265831916668878244888496092120179308374629100252652959101831424432909033842083982427631974645978825258317099983432725032699827449746274849342456523871128982916527393414824174317780455922197256954828277942231583407119748676970490143887965446200938256585793892062408523860769198890650191535884893323501401423892365703152418975267934047090632574052659248039979723271357294834425298412622446407674049486635353112175403073343626160100289536428969209703357139920072071124469651123834484868138248519508468876374212359430707759751680656331423868186930283198192715789494875313451664566026493752808217285514522120385897926356503478356768641262350753828584356992842621603453458995162729057779443416368449108872155582163982099365408418423505147441745841037732619022622664181261995913744235278872803610642459462790076575026509334909649067041942684997730772320209765175008052122821084232268149223490486505423542696388521810528428551497393877924572395833924156904592586486978203384093088590549707849423987673248485387921019630556403773900950230537966189859002396478627812910283309605582887945253879601703742040631154760225047276417561620859417544537882192366066063385603511682327499744413867169435344731603585430685472334384550370920400039029221469378126838942939513065519797663769213447606293196053744019338017928929671394250135982188854025796640547970622619973913593210481721385070160433076792771673261564721600869908077424016830401258780360017286359058973296109749309234384471322818391988268505423082392435422693145493170261948083716542442816858735797400972195712095042655836630395559550668180757536354249165707079473949467057839077810786532756885661044530162751932114883298413950199132704122171018159435295057091099172240064445939807734849503021540998682072438871079589520047234604441721430376264272464967442718509378844876168785134204392022176188000193682027985726406874251418154847662025724123211358940474977725665135203229245135385595864966061097447040317187305320344302030752462172297101668468334013255033391112689102696201065980670916460425582012841135318037655448165041083219171735018210338226866717722631528207491282832793087372826403051908815464516318805264353025295971271891309638942375045151653771188029787029391871667806360310382567455062645987424956822198621573949431510664370599682721475127747379932535844082153316590663810581603030380588757446324107245318828302782621968381522562954415194640035285954322430239762921069608714608333768580197159078551933299785930348374367016166424662691109588746201255502951177016865907158670762102437406660213648081619076586806415730575278832031284931147645502172851074740468839467329038153297443915597877811277045345968721734310105962254364868639937000955936796299552809703828728736941579488199698218999424722545137203692823446796193780952957246414349046977594515731667648298502805159657008933905426546708541120807483736754439582364960377224493998699579375018248788211055884919530262574847914476938070484629605967001099848086351922527662022181088792258669519843405762364030879350610168809946304366141898020022465570720110761474881174268693754606790788905371281384952101845471340348567336815273080671047839151495789083334985760558300650018124124927139222550883086266505647375103120300166428034285384895537999238225375242544997829366604709993987217080519030518209728282305250201463788856751023037308887128992332119281640104616726535499320823383135390022741559389282809154279422711515802646245065178032044983409719465356104151370688224216179231757707215926090086082120878218147174051021458657885843246434997826317318907041535947722124192128832390766568010564726028837185163286870925447908800078407127220600158639463012096053389872145972932645849138090615544814767019173569640047942138726346877164094018794180808668562388986159321389789442339944711013584369907837513199611139784507663828433385585494860498476294080578212953391899595330017427759613047168892969976595614924957061800822014593055182930298280053954087213566110467368970707833063980867886143555483337915581825175227223740766537195247584249913913349353126297324880274569691087247620036863699662884662774859558702920743668909737445282226400461560042269975776817513794030384360660893987290309429938172893076146462137096107399752626157393866204173394452453608174712226757862585145801441029904482574775887012053005242297349837946166669506488544918825050582539047250681693185403120447153214274815011758821006337108861206024144555499397700215523983991579110176895836346632097074370861830057907209938812736913322866388769788689294312066949470670148926396127790827628177677729117812917908901676842816342403167076924277622934893195567338535390035428537661682930015682870456295372868373759552050299770520625686784177527742157655431380867015903603659293187292673574375535019524065602210889056543029163630490440435941948614821859700308450784902630794168060043141134916004363426246313942300463535391119986768270408249229991534079638515086407081237038524908544280208216278591729999432886926447458248926058666319609778699913763143978059382219200437403695304687945509744416515724701099510412064576099548702460004521741866640892749484033266072025183588711963415869011024022804638389855209596680222361935348920455238607077569623409032930691684870831570011140636587315887353320433339168965760594468429667382931749924636342858403172022869214544624598296707689181887069368910251656062269928377358031890582706493953056536867987594787967979297958473872152102528446111900903446145924150511813829717428839345143342189613525985045919435165754068476206863706208654061437090328070135809344227986863516812615334695640264275326200137737105272718747449985403589478609583176236942590573551456992834825345555612277064448297803034331630740842718723993334691887591624387910724974259126984461678445128326946002528655912733649623667030260070717445711898692313692813188909496196542169924912667798081326854747130034706658311117812455484253853760417076267245776220177969392274872977130309006576700381558561433230681740219813929759290611913027781232604210589250672369872636463498314234016591019013784307720124182904516348124883017543130724052289486086051344754211566602190312354249084687852570979888455483501461986809098155040893882148395527303610116581718304210188900705648139616135775372315370128374929883906224823044047012949509101640295063746315011319167744588596711443407581276384704976598075969375232502134997229531824666943897342435654459315102981610676908953634786035924358638892650203739449169584404389624136035453463927408059599101972125156203185095986109935593638012393672839574964459596970042571736536720751910626974088378358947641684048586218514405253957853955750794463398203013194620553915140359490733405704947492126239020235381813819649803558530617302330931989743117058965864709009434876507551588893068873321034518347922634705317657335512512836852410082509275353152174364789298472567348468323988327996029063020180865493044362398189341764464370972370049214291582683175283903956356539886686289084213307842370087804084937963786209911735016620196099339215053721346949966694703845663392654331873891685221756842614138267693107242187754971267125337446573103334121803889972140488192714958352604559739950232672482610116342072568356293023286958061971253535582554088931719221275551945579090926906001101168635196714815433741310338092236956546830024948567881687915846367919993130236574795812351480506519426862600648287698513471380534285980357426451593097107789691817654454971114111141140445309652454191561742040172888593012463870059846640922337816040793057315860212747770068884628464051022154257387878237037537773394770610362364127881416541179002338044066293594223139067171640489148915308047071700476046571699094696806578727165319156928375127520965770557258692997816752691050096387218076459660142382337269558845512506013181217861517288333698039185724326380485231104518660375525539767988377624001529220860317007597924729703311081379846288367604671627205673239537493830508479047860129914106618870795124378241323096912367804829051417835518336451010544919402265175577452306947701782520761076857075200523210136158210235543090635495773924016058508395848188662495644781147086525164587290079713590836838973620290060625275165325516820777804806835518545860021717138706223698542349114406223836709423870047837199767844240115729356064746253781193911306349580843157886040820121766055373224839435056914853666778209359900212777558073617519840961465525473310318701248599001116387748600108360500661621416603252199343634664431491903856237496896207415567189473571496589829991838609708310050187125706707006072966836109300676173135067769452634711728658389922599369668429881220810980404946104085546682159534929823172903051841277256787447559785979556797695740709112658078751401880946458974582644802066653109313291173281795629059955231125439555439061517870902235048874431195170456484744569212640971528722293890902508556758401710883683922267437133764833086646761132191889573987470996798288903042457834643914749747420311259755698173506662410730926410239064348586699642522593330222346671782081399548913207505828507181780746969615316654978466915297436740554539067270669967891673450332763873330631247218223338815841222533466594372938534900906794840327007141196773020622416549988534187073006963135628422029989825517498291070268885084282529475667042390164033566996843857785328606455739305838080504464980109390129267871642583124086458574662228859551781643638123011076233493389743257368205162375130892122412183702518769767429723843032929147358696197373813099895697194347335481406970669354843204289719410014899103200025940415597284137808949540388744062410097672102957288145462857689160156915025815398405471620061875372338690332586252855120555179644900508761098995299519000745575515206042299855634587574669683907316195321347149763994764512924361868589882225759613072900868954216291398757711810284310508349425697706492421990640855046701204443132264245108790017482600391258286517430475289487585648114542163352598909258833948940299494326219542056360038734941671581379116147096063953012361680394165697004079558372318949429187523123048321930452168145132768811459447290365646713973144660849369281293305192993999185654318559529457033757061090305190388729318683129413698158135155830632509399199399567560951673018543007271404975418551883405976004820238148534461416190296213871734764254836904209877008745119578338741001524436371485059836456861310687030863628362383616075245596886911804855660050676687014133624892380831836193609021357956910465972882968823607551079947426112105514164386848545057458110594074274809503841129986345747530409816639093692731576590500678921514541222066515160723053400906227809220143950024492060612687222632210165309385106010596677138139816002738019577538268029247730686077824602378571919595822135338155476566018555982720716801407337042584745811895251617589937592255335106152548694311053130553607751563162509991238841877758170682430853828172495597228357442145241745669649961844929618444058844497388486370489132393840366083804959808408280764862355262987464549213173978716436060222484686476143159431822050778378301092436365556822165792191186200578634503530770998712402907256879121088986178285852853931834851789711807522154117449371768206606431862334331590903813799286333292767794152927211640070738452095161681456731650929133234988738438195461187518178437434823508001178052264601471656506167764756355583040504698506517806607708345698022201996703214250792238236779732819770294720733393392313365838167818591331384180213167336861400446572484554851549143755019064259374759377499447349521758871637050939097328470443631244944798619421344869701413228910462534646770514541380884972587010693194635292314594271329172891729878092197786573209338073278688445078739078112980792495032524150338870702187919011627913895332168235617255490569400074825768417871783391415558126460508164804727621152746913266037809468764152938905506625127859709683740275439756123501196374384572072872084761155994291967125356511706091624819499080966513040847645658776598473681593886569625604041241742611802961108987712259065817902498809178424795738581736552313701257241100558970108948405400716700462042157596076765322707556174989470996710406332364039248517111584127592536181108565842376099560331166600646718464517163261678745804351502881441217624525319274704623715508425267703054340780472586906362648827642479464675999646535928791367929706182334390084195204683208126831469504079436981767284876637768185224679454166411604296585643563921192306244710160028332802972644582779839939872026271150223510479307164589283114020600920582373599780976760471925320726547025681659683992799637706046426925372797130553189469433421998488600246702264656008330491654446869045085911783839819911407090583943610702514256243792790496707698011510424161713698976332716063077606588192287553239176461253093174874572741669600896333356305348497370848557096852821382512758860810047570845375720717377621471705843022248999390280664429325130454568756658921140067164025922704450537541145970626789169629547380993560972309220966821288002572796723172872890807648200555058236633368905498675931118487721852933758299711248883285219488306206582812793293932795921320951162031693284494764172026544337487816411335491297925579568355103093924842807810908901552996083105845893631314465377038693264561662267322578315684213711504985238169001369888946966426605048297699229624197778908959273559100846093306413670146830608327956161447615695639599694958008811335968996703263385420749374819314364312983130382080146785094649339162589497414395500274458110315613450448892824137710065911000836209885147122600826376369119728358396064342220906870567001238027388611947300327445774282944809294920011020721008647544483960102636813418313853128934706807111845161820729426508626522815578321974797592478883694742968948627843523361375494925917079765476152900642822276440808520818108180029656084383001265162609121853842582323664425104214770378870202291692478695767578210231955800599082176929978940445130111951863898472375576699645869822513046956100274502143699853443383158677194498960434978823970453030923280992275582142678363039148200917273295682101207158993113426138045847996156645555933783975896467686467121961227118416493917090186854067446849509549763046212737274597754332187472457995937799313776176800698451290377574056779158788467470877816907414348053321795260534101613619959100166988413885469853814962098552889081442988557037167008494480500236706522527761557628856536671575554162777933134483803398073583562088124638938722757916715646624099432145094838692286080938146244630744890726864421266639294231576081045015522238253008864904415945480547803090823686847675981425262011748621722689144543256985583386502671065249071440774849190438990546908069905859525411513458692653353855450188816989613774736799197517550931731840982634124316406391339904444453410156141904141356407137637430099004331045574859546469153199390316281018884234782018772715087402790529493796015009676343925826626977415346772563025834503566794765898628121744997730274436202966679292021616667593435578432210387227693440388513594868272659516935469095475164604724021783716608180460053076299824077488250678447173748461925354287251266528272099422275605495587123857197033943479570325262694992577135729900587502246047413861573172243670531573770277427947228244714361773557962154967010872229348053805176018120336745676072024391365618453372912359281045451880919792139066891816660125074366933326308582789521260373074550031525890871812091148831767761093066592564322516649758618247577694362770700590493134995843005426336423364588353050945900451147111267744013295032762332395182197082311008122264999963393682468018316271554053801137553573067296415704805272221925072656987652474387165814495030772113356622164485044077568295866775419397248904000643580226645148638673194844234970271492400415633043998739246265068495835234047294281356143530614454839179723871023651390609830767204714318585579969336273837333645460933491069427222023914101897228434760806803546653691008414966435793522972249834879034064306363947707423416268735955023237358790693230892211406828394159929996672585582108696584489044830516192674270495232769564581372554873366115629824129434212018641969645005249331671977473229390632036932975382530305426197917024096126662854915240637338978184705182547484301834791611794702886157867953472495603354153412012501951916251697127813745787096318869104377261480429876382237603890576942709242277352751058702018114539788217035853439069513176434367475318113741087699499326288781209989077447304559978493964915252501317703242167255578237240211035898403459438830171826886403818774679951632207701653186738820650354410788972765668407504846754198052600340245683921544160354188925679859812135763645047690606574003573555704314537556798801308975478050891360551436728323232578386287013370317722285419572569029619304223825677006933292310563304966116023394679865931496050098230676553377822078422679885555682664226811007160262447126211390547526075461682979937384837887826856424654218775356471716843827899824522585727118544998259195230479918772361215539343475864533305341881025389408762538400785683180443939358605311675440123132644437354708983568684919800692944865214869741833849092702730598583866005111587272509085171989652774189419924950198066227631033212089580933659423056459112876768497772474239564013353212659428829287524938443583871418381444390221801196948954328710008003666575265885040145761304812464601006205568377451579594622497595230216803524470214651529383484728934327265902842424044800399806248569609992852935045236686561427845924189972838387061912694070034299500403331108254825381731721151704541330559061052329649455778516125600446006760327456557978511674148783550033687594973033039281574405967135213745743409173150653977506771490917800920475560991556976669905767448867176795374978811556361518266780235098253268371769748861145670411728319145807137964396356878024978221147831610657585680908397754280696088037794316982201034247998341555671714383987224015097429227188829395723591726559297198924493976335058141874653172983255213383968507710729229689753484672314741417417284883269833341847437205918334795665944200249143346702720830284870633040695890414105267953250005537226932811427475224792542383826120392470200692435788981418642536662478503549477010896551694535248804104851392516983211680900481927595329900010812454894069011230351995710894275497827766154352120013873938195568574254769789901856015614363190805896726852506686897181920004372427230779082298089258524641132672739294650085827925321384430954244118184147755845583428110333371770431790039096392672130397606025462515823358336440410256055749074932261816254827814922936787735063649623971248680159486573832733931688389131120831390696659301839718194727220185311320968701196356808244027774092432270355952778402304282412411860240630383636709455523555037935397644618296873865106984736671490985359896759256465307289304018819361755160319344930556508503622504529032827263244863631760397402158100579892305496070363280325222169087605451271113577793026592829518244852308585504246084162376802902714439905604030290106046172826614500695514585249009367163631299010209920874460126628427210702939444086472646296982982475150084393369328956158693275643222950825347806863204331092461091850401703172555452692328654714344465249123976352200856280227643882641256174440349003057288221323895676422269542870029016352993040155804693170200566170039120575825462084568653278272053823949002116639002373844382229809982323039639006864073431201013630661818747998757091712360834393914827170609307029282302170037183869137079412848058987849399026958131170680805877878232241947900968493741450514123554218236144290046186938548648933045327914567611676106323382894038135531641820451494294375538361765579460772183254567337181676230177088562042170297719435769049056733242459516155131941927886333794168359025908146971378978106089057406745354491442111886429253809583978975517855199204209859630013796880954961715201805570925897176519687207517631358811645912881462115049741805862471446929466859488111847579760539804608212883398048246270791330819690884340062207358300554478795049453202123052922808758839329670827069677171064010200447441132810146345732631190357782606697025354936454058424377589391431226117356606524695479589037135990805903116328755889761740843611305360281465418178744996106902219029204807818228694965486697780710039888482500645557140657334130528620986759885289487180100703199546939227912658840119032952667729597354769433549147857566079417959884517800231143799315975894713564367546631889582925759963226269964418159729390629090896192385928425349795425998662398215565576229292359809064048878379660262370305562871085309126871293137492764526392043283474521694116487090706909433440022367930724679534209381764306706710293192738438111918615135565756459354157714208798064219548308064847432610660932758448041158604069451645361823085202759995035345351652973481913808474372870366336725202618540982045154775231440866819312063143536877473453699535404078757804750931529910001859741951051476192485063580030898261329682076603436424428615433624133606960731025952868984356635654992248392301106179216691084617030059158764442763250377169351008295185219318084850384461016992579979201653336198285403396571779747297792203047985034819044307230157224052949130349036414924650776660450611651137698925646619296308053912035200036805613113176387368385200441530176779374026453058873170078580512978344840303464037997051754388826428063428193424503917700064737373967793045052747126797664544147438422110955470722354940118497269576913716962759874270182401308539365419070108721864557957061577531117994518387608052892066113614459481269765258469680424288783675646151719735533659104045116994311204892977505921376223211528598557277878605878641364345980162101087008182068930021957788605098475184035249746457426767847027324092464524500438316663190432010081832358893936387313777197566098752695805493277196309606490389694485413037289753066285472805829699879148245566680629278556651178554113503001140273443373489471594768782714810009650118886214338653057161982577541141572695704168220085727907290215406984956525256413250011060687647614742038796622353627931791862270631504777001042334869167729306698313490421356828211370950018238672979766400141113175808659975812559952836752016023786470837471513476838233739423596364498334038177420111947297898129646309837809858214174881826430052224306470830585648758502801878996938156599107076301513536145415629934712642427654824880552350092696721272447565447737664926446587779887024781509081250219215585288829064340916873951080093081145373269141439728610488203443120789226240770219372356117721632576938401338273633902697720072500496598441830799637431911110705405733571043533058481343445389539723868393009002444148994188012800468682999459168310673309723426903217029650677725696249348521258225573223642790464058935419481949726930729850200577879389782157477985938510232782406808916096905852985947395930997301040783144495865085488150645447758016516717622587774247888452332242155656602956021159561619891686983673885241653439513102424223640790104573722002097101735746079060681995416890292752998228898451199303859414782990879068011830214421097157738874258609473850024413282848289453380304461032559830836718186549924049950727289508536465730150292610040648948529536840174673674585463887824775236367651255492390897178835029933393788505307814479446350931852747167092010418797156624676216439102109866809425171735132582700319848223143316431737456614747305262293070428920116994384550085455525935552416422495117915403871079844912154205397315543128732595608540911647152150764986268941511047554850613640739186309239878918109717959417157532270820425938874378069974250062897933019618842055310711917479435243549587651966497388627728539647772177348797940197349801730814674587388533303221279359633030236818269637769910503672136795463789502426463505650874785117334624532982321156597715021614787199918756492675461009635779329016019231640210493024688311091642795700263914911332263430738132734191655089773649219027669525797769832357627126319145477593721827749199678688804072473053760181200253441522596816611719879342293729023049334266004425657318156037573228104821121244004052418384978684673093857474933519968617734601560465783592268031310658904544115434939981406707414414155204726136564857061109130606422865053678543286746244099781096797969246562839576468400659234852880969317063686222271138724252480488454623280034645601702579761158489745134271954745806076087035118567502689541808280999000980623562236298890738653324422695343050714277832536987898810186631322283116280340003670199010653079786788790213039111333695852980266925693892138909098192113287196616491105303758163331278468202412434389816883865530192544532072931897513349674400352874276219483253820947458743931222245927355841026126464118986657037634562607715808714755020002084317192530045592812237749182082702750984425191107056148530575276883304796177934448944682882117161910193587865911672530037767911346167463904552882747538248614052637703698455326483010956561765372410069370614101119327122184528120715120348969473812833235491272104483013108064100600477031054073874508486093125495496203875792503913964243320938239608108950918940494144775215755140007348331992966938056304427549427598141901447402236776926625954331462536100536738318447658023775561151930067335596350909355804155375282654866730148326967268566039129588943711886909444534432603390470846429380785305932665926795869029322421383381415821301488190362596620217985220138390653642771440611924683506652064295322059785671897764445327611614183826000673095016944889263082667486760659265479550614092004413028197287143665623710792363286738260665593466137572634359459310484978006303173328106459749213382482990232227611255867364522961850304809553694034335343713429272650633378826846309922557766555824591628570546135197122613019766855663870738589951009808138695407338003508721602766171855118953409570160798020391058449147227206277578837267005788992830995824525944635260214912328156534054111590818569874244451866003611961099003093036502982711730889218476776838148420114859167073893272377226289138222211705189259016423802354141263231160538289550217995857684714692558343237461183827309946527487145968799685992130578553623182669040801669721632882057526058850462719313514681939748840763628649616093638996258542643516624311202324446305755508463888158212046336421629764694837474373292742637024880869959686225562468811502787575545170104166306185630820195274201904424955827224460195078367296275497367223178080156182707221466499029646291790625138625308631426619576063852370595191733283818584482695422235535238767647595313529618797944702126333195934096263792000734263154551117964992063419168006821688599645008449808962682835057095283819345298999346895368965242993844713409155797334040609684508034993314448287818001342637326854832488523540191174624088255665591399831518287036382653833786066202682579430630539203965580136875545246834945228065605429781423903520622308130125063410321734578049260966355311955775384289762888441906908355700791711589058762668446462994183848040902956182200921464040702641203871155660078365577512226488073134693516117962222115419371707283075725593784301780932766763922832760225340449370731553226935447836783336066885217748007097307981165742999660330526497584165270077049388132432699580050558450544424737441906774065570779541782786879467816708705423710748887582728282752329367819709929224965099493943114214910034839810128109528509610212114987749218244689052659587328020703597363647149296669433922565880145026153509010195439015849884135383740022053117629444769480863376697506086295035231347893864952869167788657765128991181322197066820575208861384670922934749582992658597864366843622381993443423501564834671137970245637769179998261556311158230674445267601067560661052504432041723413123015302827485441972745937681067095623002057631465730310981761705466005653118180334435047835833920388000053445154333661676354027051504081277926970027915663259802762374412868055380132048963904601350732830667074558134870295355718410374142615023358112293373787928525481753291450069183960163382006163961287263508349211602660708774646376643928308458568652037068329306111199440322870493291437382153917120312844296826083988813643105521662548550129636583965438985226552926796310325185424579329592707131088056819999741250146839433808739966907517554721910936733777117742037728283130505365524377185817578819412638985489378183712360657438003453441717098139913921821754800029882540681179300386813811915975562262773269285547178309240177371029769742769729770050714957616967435153938244594196511385745466911161311868863091208699440940587733383575053109482378131563497364268349575723305251386419660361269767446160210125418295742097141282863596988973466814905492029663384419475801216005118625511459431035192262092540617863019405839125595428426942294410145449685624792832992407465904842370463817592040151000303173432165325281225648678798212510469793949387414076512246795032647136670715836683192825330039345839655956686698343445985947773164648301880103291847003341437548837821231026719446027534779829097483406305591658978309195515706876882022007236845112072299192735926069317814646926211299141679994857348946531130569320182044109394666234170743716116198980917494314831478415202656583449732453146377394984645179279456338218052664297596621934134081876508433797029583156225125129602328886488639370146529611829968944680333707379265418975740544224104107205599959871492009242532929816665271948354710882467690880871135478031968969934766847421966856113607861061468592917178050316284026728882915813960390222062999880561722995224764236877849917222410646750031688463493223481608039377969486451631013963869763215225850929986021714117418289665535971755444763130828066495711236696890771439908688429611533950429085296194768751641557378266918740586204677238870656880157834230540612770062442515713429565183060808356168762798838860764359570014869693573683437027251622218457951732520511776329502210798354375107420665121708156045658014515008444921831116905266576864882963271786040550368881162681436144352487007156958540618444992204768184770079102082684484853074383028125227810030935212586249767944750381992205073866596116569604689929386500059149568783236975127199687336056325238837560864521158009465308242014352567552831661996309135805100362665384417667722642473942785169840755776694162870024251128851673713842444263084488865458155698096662401468947709274311255818243616235795439500711314876599084428617267867673169582911359431602998164944594390698361114505832578941506107993049357435412650682650638020984809108793452016150060441687941249290849940394347207307960990704280084994503809673912264915368630213361263535089084242341486785559213901033168924884776167761336460015019858441456425487741768406493412651069845320035386494402526997700005743357575071080032913451527806149790346670226369181642723270068579656042062965704660248491774665336501792336336487924202966503598751909258817465290929092596287259813280584652873118395580559836670725580608383362768188170881717538084630946269963498419062536800254129962094755666149562411924704633272950023407194144400643884476447858437191647058265162522770383086540164195086087083925255888493335226872029041268303099393362106877595011920424154211305583953109593569110516272620878378573356983264342542804094248491946606099277551928463940171800595048665084347384055290221944038514094710077495434440615170224055133477309098283339779721773078680452266255078020012284670162415622060793096121810678133236216713810196998663759398638531953194412046719798515409721137151365970696473361636493513839627660926324777191153349369029920301374813373231317181555963878320952002925205322664061521741850212617515292301232671540970173119178449118188338237167512202160380757219813785024540760456789112572824638431244488959224707848147064421525439885940718242794876527861379264238087427784480322648225326017413714477471828767394911488803638809124222078589251794613961696738152674628864906168691511507315071709412518806277629176644857362476857977946008469372596645085268075937438124741742301719915395514763113649417378022688652949325970736598811778277019348323266662555465295929701785717264157877422735606970415305958002149994871282093238351236944473407360427798448857649432759771935765792574245924724995449221439825382495026637095987337954033346454003406688605613579644378106166269014304388820123950081008897708378462945542653453252717448350771520276696628808505013641796114356357217247467410894160928001681100827140748017355378635891593404821191588837669731324262459691435334857327106634831224811373763727742039590125225290869024087573109837133427245782578522267071062200966804937496682220077745171857020233879806036576945973870340893858192445962686893985640914907060198945357570976627272792670655742596866575321348149397364074102662578630646369049962884830895995245625873037751185053995834521949143260711479909016012234182211223115833350926480155861849124414011591656019623236544188168827254004156596029867324869736175136909872566940474335113799043703283596394677863997866778402458903095926275511774597167257894049068636720873914214164920320668310052872081511568116264265344689325015724436219869999414464497827669321228941374908698983500139703454362306645360939784840727589859160587829895549028828110353513534262796655905654985587609526923461519243674521623972661656006189067725602095372413179516846454695310884504972314615972251916072595732540182908047489264913119020247226262232999712626276399497611883995760852955742784641077068232245138276255097470281589579893448381658033521307472595505295565860252095469638573480235259024475197037233048641791344878236280187362904790003480605561373216822781179685407772337182853348489496488238408027285295140524002408061153388820112461845516053835901247521430709811035205101056475853685228973409105492643282427535955145472485663768108718146635582087024308237909320362130208217537444155808679465535188409004425220720810048336388267007703092616240632880347280600086733410932639484204978774377155634233855327003737596719691146485350707077599501615233796430579278370852050003328008251634167827680437885808662273004039851740188316216239716711114842588145080302131982006008739832102841458284519780253076744534734005508283665650796360254927505070866056953292272444627296484542162681443465479867068661797511257893685274889767201145279074907299283042662622913468429001639597155887049615076964662499389380444523775032704206342775672220165694839291994191449799294378727853363178679599412463358008619278763711524734081444917852701802801707775064942194930874305253282324565481613302587801160528730680708527887636050823824660892525661896363651167465875021402574647862207956903019448466558726732319239071763618312798860456979063112266330110461504109140966223791914507965031012092238397810138857330290897709118956408580021680100222572524599711383671299613020948476481355465748727950135970822856831367396887608419324753430554120107283151402815821550280396974433184211366409998753474926136911142772582360313475230914994865921320176516762518517066775253148240402184998912396840476518548857610609130761040760289064812693874942419218044131208018025480097767395116472973529536806515111978856374632119619844798693819362687114471676927001174279347336964067419477059252281835268226459832178942304935309720033552672370862781672832725428294964078138388405894976181937606399947903663042163909236184468703890936797136931897827512994906005788241892590343714742233877640589804831652548741275516866457953044627218300762794042515804052850162040610912813768178802351848419297027998622969611597917558381576369710184423268411779255151591620927573856619209163050503476637095813799867829412468496964133058666062956043166617663364021101769978879506100779258554424481185250168741647702280370517156383171046020845435326908261862564504917085398495910697749768498054225817207548494537758395721892274159226454903590125123472596721322058487211153228035515189091533530033817748403232823626102069704115119272678239879882187659485116477849010980305602485424074301762537934375430244502317501227298819331068473857678023522095123937272302996253749068699458740765292993069545790651797409014121768521336492756094375341416602026817131829762648553153770572421068730467165258132986639859937842031804461655509220170818812727987104912251867677503722519417631466170054892426243053045967419742869234677802977992694737900144640612130450439283073783329896264627439487479210200851976799857739217038892448438082911069531382229529411847650553153580374628677210894347797744569967043965521010538151860118695743717367648025738237610106229557645424287531851183590286012965237409488481278671816164456858601559912998602747968024271425936634446823824782162451023306527804755556785916517694305659840653096438441796873412381518974263822364264036653250401424643528092890658597554300004235689866535841681128886576048377863032583139642026128623966915695917992346766423764655857349674095243103049943744941792409200420711913643767842452021057633395349357988466750141487961144514036301277975535312519263436774332211121252293769205875284327920086600348230914467578349050799133142284371360194950388546875708576638328240444304295529772185069122693041020173131028160624320828600399965490232118895759410939702317098547911386648293883773492547870222626152888161618846901901641883262547125704531133827583881566931411585488097122188307963341930276310315681463614654630841277229744550691023739252425193486731551863736737214462076551103282123414532177083058371653814848595945517293860847164792908245705885326763257960969060152071572551806581039502012122674250854357555415214896206836355467541122035368768011685651183326045829317824750325825173491645952957870901419405820948537586175086243428136483487940431707068051914746560460167167890852897624225445941369947919736165407538975812007276406179541029041289852061443413395992942452114749777298105760128798309885234976940710890239749919862774938887394758601726528210506722199988670547213815199641980277217411429012033554154967323380081520227452664230662874528034207912021230682727402914144354366239342896392942077894624762331275662063904392680402769842854582257558771003478172863369508867674486449591204340867374893530619606584364469018379798697009892864197384879451979605273749880947807379535750268158140178252736416301003536641307039956588022094406632847208095332156388085107289592455075804937992668945491036068342046130548558644394894033168747729101458664309260395688703420599951001707455520954366640800452567153157989905536364515322966125271697870241232780732581791424843867540778074881558341361320124654863207503615373631267710450847265514110291240504867516984273675023547511007967949862874063325878994868561557824294100192604907801628419500024904203301990422199221402378105127106310139370437069712739189574711542352708631828295424061016793719591966151772884827537030097337611924624436261722707292709678045676329159115274905034279771710214111748617940165154001875673429595835900829035759190529813938117211698104475274809813800673687834513867853837699309238992293943513529808796037023358186916294973824899222169981868832628474297898401609502304642169553468253757701064883618048181131965195880380072622149499339257539639357410420568615059608710330513827935778869206765211081499244952113867435497393899725383822954197455531158507473904493417426277553480066626984503330552187223998208907167544330952251167257223885789590154885429225704217650994640438823538679348415046736849474345989388243677789956676928546449531417695929114216875287950065663247260454384465604847637634591593648829135796631444741270531856764224919993764664787792310270494670009528119838877785644727680279195702106957691091906017911374876296136310946174901482989023833541300608363626361978672958275725469385283308468343552712764160357150459204316501675601563666545553968691734372195639682696623310357742171637960805143916491974827158286047825320379683430364522343379335713059540538636887726457183512241422444145903248226811905806297136187012240884629065739290272735125036804851015362554760479327323563544969222805323348092510327421055282799423569263102586757460188779659792706279074084603504628462759221357055048137531694665427986272488297216076091649771898879270220376643418590807419142767165222407439209837621651105114166437678466139437853403183428353197016220028402816185045738969850129396679294135620204447227002509436686547516222481669645726819484887072619906757644861646819359186458801992425324267676557060156394053437745188325591233003322239174046325745907304324009378434000259562466375617926266204712210789672191291115899192124075021315995659691274267213032643019272459766256181474768829268078794645761327947217518503601587329999626814178832218128296570441569984092832597427966182652017574857077017748866586553487658221613441525010770609268642448822259855534593476178142157608977262199735121907475536195375273133601858119746914096785398121578241592118565920884698578429524058590851710310811360961060686721928208185019160873432475328781399977277707899168169932627167764852726041532929194713987999374844458642109172394322490718638824108362653220831760145971437256944376998234936262188355053236039619700963765687824757508514189158456517337359489729977213590442984970179485731651956274886306815048243167136641161345554274121655239243536772564925342646842695463275298693296131267795412346171868120603033215385925881104566296999823603674786073228079089529279786718299651158968491329112818204974876207577555104136230776547635087010968794347658653370894080893913129947850630185987502932939221301445345795884918793671979055404144320163046752617293551240292442529432486095473090898303129876428665152316228059297189750236625261785863776948461407102201416572671761892811774491970526708341928230531511855974861720145279842191748846762322638791479470474312146425022047918362230868581015769043676034039713977836213401966045448988318402429059937456754807836126419713377798948088818140477919062884392498020217533110941076634182742573977223531194718809430346175486599851933880563247419069577131167502212309250099466750003958733578134007481625416526839065586578926419133079969860988908602986164644577318111559596130105453172749273012867776851825817341014265160468769072763666135764998121621213541366780017595260307435923579621768451655644773538719330108448142642415287663708285235591782489091639007589649974484291029926031591961998010312576031136302850711810701089662887616757951998572394832042381689637100506055184382375267819621430034950027979496422195288790919491590173447038685682782345206416446506143247859488394540055911302460065044246841527156359564093616650751262051913519333528083261538364196171339774200870649396986815196238090723313497571717395774402900694975510866492232599745105619795092635507622678036844289403031755838014456731370267411725126124311406946037276347600268707485903823937265944801465235923714049620216265282565411859145291789492303881733103361884884230200009882160267402146412635474039663970583516446143899414187494401502904348108677294153445325075734788534582479391304735574249838907265739125390552627507069932041253610342191368909689251905075005939109669165790109046550834914328193749320557259529195292650728189249732009744963631726266465650356022990434397379478656447033829218044975040037302298558704398636319194051670331527274369234353866158801874967203006569898830089032386434301275239920098545690595144037352711838622644421540405998770416540926641451123932510842600492613393541401230792957039400812040945785746879271962799307678477357397626305124557164564061784941680335160854974769003625759707595008927820545359420855203053917345218509202925060051876118703539044389553214170771961365514142721822170922839259108197613564312603297753564216824235108615741020221891774474829258892486914351500144550712654598738630517875544930945203072785475912735851997429572956727860220565842197054374433477623807718437299459131122052946992717549632839977174071411348337691777783362741803197408633627736665787448035344624541138352116015768408268793313577337660648787912769946959016702070114465155088135552240917883284951974076267345130413727150852590269832191816805287144553262856864718077462228249059694347847978879404322314075317105765420932720460265899507895720756797132432237697231281385854845944836098709057491806185096136817293281142182842643911299254475919708275288903204283204753861029516241695825570251304729243390232639430302184412297555521357092365096195707947080609507245576232859880568873001937583602487890574683750979793860751256466708126659675932119374322521248383175812307724399464955403136073573186605040693264122997187317884365439540639601214091125545627159130199400330563689100820464358970981439620021948186043238532141436937474671175371391993229065475049001760990704125774859982985765972070680937170568751889667236860198316468480338227942286864442284704117541380077803747396833568664917447516313504484648151040889978788710141377910845717408930227108154273616417971896797722484475586558597192242368653501711016558483685277591004528279247920953076913215525675266030055414021187990691898424610994151546737855205742913285968076692792217500250513911726394907581401553826253610295256579918708964129972629793011773131527105316752570929930507635922343514397472558669353452343152484735390027349531096921382658931217283637027665616737946953778460692536485267108480093398091225311231492171049058171841479706705001832655448724472024280021262063357355107734342830320758290217268782776889215795401205989122423911608197623627156187896783082639276082703060080976627178564915122057555798195489382751424640851572290718640931415106554898980269670449889040233019893663696755288551368942334610564118877821719650050945615465200205228787783194163026185320779398616321282738712340431734437519151024449651596932608741694631487848768153330825977892190870327509529632453345025928289460265539402630902364223959775832450171379210820287923435071462218458555509924497829263849800015660056020407014663784168352116401936263094641660721700180401583968636139873676961535267233135593545438341365760212039745453831260293052606413781823788203403991956480628382353775579061592896869794026353598650748111041665690998671038800014565320302352032613033576564710638694798360188453266787071719810812378413401181638835772922179813562554806443365617279223055690237109173100958945369918039458729842999703278804466204830652492733395418910127534533921772766247219082275873760171731183769830357535358796622991105775056504588518014205858483944348379671877385523540944654285049448980729948358458470272825901444283790040584709679416338757398033426894040772626084831524905264318376299848487495471189279344465971753285561314772119759786352812461146301823862932594677806121159035790577469042711140477879883287121231159684226009592593757931061814705994695062006979421053662693759678711672298088111950607285347718457727986756064738281566187796169461655890156617787253075479567445345694171193010570412250968497632019425342790287497376844845837071007802740586921801658884230030280229358529264403011662361670679805842276064099715187762910612020766420084377511193918334190102314066391484946820674972170379462833460477951045503378306816600923523600672603463907104482283304753812043319784151246655318471712915980995467805405326010684183632871631573207454555698013681767074224527281331929654512702610970504112563321282578452048510226910591657859176296344574876487428494610721995364238368053690417151542231460872455699799854513069722663946679912537728461133026187007005592465351999293931116730388718166179421881026843619516493895775037531302900738043985211735829903309044647435798676156380429134423606425086508213147957251711679482574024528934492516467090976202664496657574046024123159978821764265294233866615195242903924497100232350009381201340500828027300163889098099803976755749830575609513912634418090505578905862249972890046243896168039512442822444124376266775108805073870527834447261010392468669713071815408201710454134203243371457179212322804466878136727417447893081389182123146590351130099973849004728094592542369112121768611490089795699341366186372853499106353155276481581793304267144128748247076024842234079154261423591215501686883109506687035166620067587787491015415550621243264666517739842164837860186710988099779282907231734004687485367708680863417944517894348820533284212477819629553174333010554199397767420746470231930285538012614609452478236939372617870913708933848501045440054779447518462823121374014418678772225013328546765895364292448674890509985656890656347007159425867887306024137777626424095333753106432720000289345530790509222232670191329386959227609224776055123234289514670930585339434909682465476180192377116479022948448699170979478155686678675986006707346238149953127185101684753650620290145158675310827302170617046185728071975812796147714790788730100812838384118828645778077071195920760121757915573497466598894531133888094017558731772861246589219962125387742759945785896840838594792309889254920538786852284505532514442617026807665456181959006325345342927198965966743267155953721320116312133887871098806573964087441123059386468977712723914867067333303484608928745377314383859684323988998300984772870126771056765312107695867719321084339406504755142399298474773249698484939240241389291617678994538871385691474837732266981001618249476241422012308846938158809522582040578728629773746813735973428599795871702901743102731864523555601917403875618376211000402129416815914539136149702606379286300228563102365574564550874761484536289473462316222067078441598097105072007840963336574441090699606062509330815409678351200979777015769734745029851780910238791933995890663020048344501938659948848792564567563326489765384241858785255615216265647409403124632080164954932530870487656363777435427340623094489429474613724959769973753220274182048557884605843210080121082156552570591358512690801430066060093719286661411780188755661174590873006190613700183596261721790324497994096613201293097240535002208065701433005094790154827965250185294692266616305478269611810966956828509607077315842192453232626774496900196655882520619468654405128333760692860313515543105016757032661547197983898200516827474780813257277557930840834457757977186123235010051582902617709385700281530818289915024894008135768754531619866268662820859218443494647328262023750515109188213878534771531394288633369407560187822547744980248743387079980694282165165271191635000372690121080672355022580149352661266471365970277282999764398852059051989982037680049565892070875289558670704454783312786415504497963066479707980817638531968719498623639719477062632530845943245011852773250698083089932013971163352222199802256696346148299501036052482178694764425513009218366026255198234889850825432801987138417066176425560779661339398644631035280809807905658983770514689486543320504083939894800624702300411151701785539493675936571210309607515500280024184103230288751855720057234733619788773125667279258512275692430397800782138832580092397674823482293222923262520736148607263324162329583417610294501074390894939328345607858657597459132847087751393236864277253165856333400388002390940162558103112884938460102272285291352443615503988700447279458030227968329425344302646752806489194534136008876449474120662210715333284204334377620799455849672182532352119212755289614676064669534492563238341184275815699881647196874552640259575486560702246631026140751071346437578770279051691702356717530443201523682952084373705279219210543107222587758837122588074299734781721836136155819214434123538702445325561771451835670722626878748421006096688045702191188857497269184968495551205610500346639168797803257663714804832200628126693889470651687242426479670769629164016542537948638714810849642432537518014566013526454522663666557295946992004927658891751753370559180858833863495550507648390625559601424456761270975032743357958000692352046095047004669138721495205733670219285024999969359023115608901542829182834505445699376944861488365187253641653698632126356226739373957874198110776912690358013843792010396158325552503749047449144204302663983570793552719651221576421454165818426278545867748111573028364563210469846123307860383447048009120810549566954314236198902956518369829973535659045219659883322404499430127842346753433607938955894706536169834252986075634252332642837116439711934820974558563063278223248854639576195226543581894619653144443554854934709445564713512178705661191680294240027886066558670988909544824959826365306044733370297514073177134755256078302607191034352990149538975136534567925931134311597284416320428596917778514936658052945784774174908450306255102012065118057754984813785964909389470082332353231612158866208057894618202963054485424569864805762338102667099529848179518565946705168853797472749220691370643832734872272257332842112529657326898858713915443211525352151058706528432646978921883473476413680038647965665983127902061673594944870690627681604146013793800558025627829761776612364940845924914408709456042665220111409753280296091915127411462929746203332334127553524444808649757461662140292491676244855814017148086958325899881297269484772804155126168360613527357789036172356730770914974282099900983321885383918140194379150465426639653113064112287233996732080531333680920474786128696601047185740511854844818837214879474857040516476653480951204664740245207717091829031931224654171754285917237839777120879841674990179731197816326952284739110445822030268622481000301259116269719947940331516589632604994742764992667903802971079244716414391183109398299561523046110714494054306226563818786715779618540653650078640467765584394628320787744659889326489820498993792986892961445159460873891280946589695581066195539103831675118028580493868592001715423548814990584389757350088344039355027689527050486229174512003793667907563868597479695394491232039425648640488065679619553780110288924148825515675892047924712559981374030126320213867554708725377078126119241253728606887846649008085382649092212102055708025510180166735302957702695086198803156169604253802329296726584009341451592814535763540524523897601088511569937306756203055952359474289812821943678869611300653924432487842086092133636783571399233432713342380631457874700970156531008714353372734422555875940718208727796403952009677176372717314797680607892615576820857811622989081571219404223909449138901692691702144786779862268721246446481112878752984065248192583667829270124371835658178813013792952696607783834840975454714435080502439970011093955215072178776789640987601303210529289334253324949515846403244704252495105633679238782880571856974242240375032507436394340746879052015324716223560933284719547433124635869068985716356310481227404987000778365204396502295643808698772203246685801947126448012389157420903564346389223610471915487869013202998838731067061140542988679054663591613429719269673045001386279858478330018449721997494676724669534983142320272365511805775639666117708342122864032063830005318757277894422854013694590989686812600746048966504326302833281090912611213195951024682391524912209338815443984479970142175003592895785052403594613812166259756769179137449567388282010545738593336975110825747889563872953936417753158524010666576007877166136457880236553604950143921187007022950062514085111071802155068959584830074959855020336664879539975520814096865747828847843673703352188469956053834818245042160117847240012164741706493802825159177395593515084820444842962263525526755774103309844527183713075853836656432012048010298716296901990079382661982339699597767275949398388213401216914735316135609858316883673513598977495618128871669287310555240275131183455282191496326177647775069842444587381488799288948804088043466295049454226635766049248784907324533057727357897036708646178015647255932497935721465325393588756534698607267118329264507789448251384038245022624252955250559048899309924050100317922431445529031648447150543242692015437531487228641251857782252539399071704747433534250206020151278724380758916315358567306146915721047468378710674082634102410814222607034432385249197304230405772872911343068169225251318865473640993595680108160255068319504793790902665781731841712943582166179940642660986074356855604165899506439439666914700777159502540186956151172246498126662334363665740758981800914332944429940378445868734975225307315928329771389521222909936681813777576590009841720966660538325592618523176445179637969577208531835692366127588093604174388299172483686404008267263504751199520548133980902154292820430598938007614386837077503906659057737054197568051798600772315025521010785724057599005823576945069839731543131584123879360247642774316753854850009059554054290213693272781055771033355190471083376484166357785726837713915869089810007229036039025823953713282182242467655606904976017355082535829242023005271909104221106738418035563371587599214477536838272513517117205078616676723214265409905377100824318675569511191870148511087166236538581391857248060072162189505053082048346057148177649568194283178797528356338026239389738220156618635266519720556177410935936785867483115531043183736687617234265931001618880725746655922408147205355103922853700458373775933197334909017540254048690574586172084635276024141741403656063953406966705299992503338937992676427221701068861886233342629157403990804044343599221564636256137605139636682390793916009584953654949545747204618457842073789967930962182241892061577835662089175503365999544668243580075686759159028137672440436460913953605403609207468031652897481595028801909935016754934711228653667726099152897636746126183953060934237439039453700784333544669165683689600794733817374220467146055614410631674904631407605710810655664958038077896157115189288380204261561540182141717328730229033712361570796094160431998958492054093658232550524258431841950376219566419157617502597921212358498538919662616440883588675183307256042344175523343898833888568606928065168651903587403024559300330865467001971365097805845947147198048031997278851994319261352398159287786775459120265674189138793726540523362219160414100928220907718174583752105931220525957755026533989927741231100140000136878047455745895515285598192108249594804432267670141259298297213290128792930639463553367831502972287687034218358156904655528859268598223752290449363684002428431766776715963620182135369326609506714189704987295454651013827881116971040623569434693937428481181484183750881082771679829110591956524661092372002810189789264226724363544414506124196086535135871880553367848687729836025436745261524990493202376769063640988402482587837498332364262577519546002147576366911535554924110469543436643203505711500926398458705624265797865772100636803820706591599352742887234821605825884252208818828591290048091747782194850475414110921508720095676710994976597573677542441651800573582648509730422614857183882183861149142520065481492499350664153828379472909890711546397909307108192262952958725331435436925747380864135075601315545652456731157603313000760919677686975297258597236937625116675218469744172868354782556002832193319071115712571669966606512590018730727389310873664106125196682647930188607345425685325522094921920894366076714667627420469784589399545279609125201300928426054421495683382721538832698371858639409821506831037037748641146848717222335304647830241673693368986957082318673714424030084685344411881362210111956376716789354649301319741204424227442707981206193069521196108584733598485968332531133946594887023574887427985820527312330026701167829933279501925985527632879693492136743444513871375005429499405671652654644098772306413964350144647153829972006803084213823180047338143951814225757880025024662742432019428182160990229056467201374018639072954226637073148749956498174283681419856170142274720996247762772177913195300819312243772563934302785567896963434543935541167020008859703627014567926494991590917509863404557849034501379293491520150785906123857402946438206010058757901683185641831273301637007485315210824771439712711237746972268739960352424493996680515863403586000298270919815625338651120967879370924179715357349085160762872837100320544339911624285777389429262994035592629446976455176957981672997774956179771248518906663995871470384395891936075753406818983117970457789287137596509147746458614584181542655253329056310310094293891491472615816712194080300590309262054520556035193513369694728560303192976924498693453652867037415110022049573262092917554063321800523718096642530072359453451136994001703187825245295502279264118732534544522198641743404342672984399312968738273093409279906540458212387092099401885232315939163474722181699120916243326496566196506695295070452334269943413220962594958997514197230398632375976676322486252178532365216433701554066648777616065981052918799064142656736955191385366607494998283088669490656495981510848915572804371092537585254756625085108081378825483065497279594584371839310723377431392603283544687168659433414139124465999876992800399740087298252115152570026997401048349168796904471974881583930874037902020375853136668026346624473302953234929405739266477776029016779934599258060244140029567135647746442523855448648642592712177395324689249352521084959658904023449646111818594838763357882026626033662096856930937515371292336569758699178891369728548833293299332752943116826624297622327755309980502432896206011720486205663620222335592114523110529559351324153321304580390797227836860769869044135457961143195298793645777769844262527196653380721537859216619496005765584171042897552091030077151916465094103061781944296149871151720171139128410260952446635714231945282864706145547279051308203574526601533449875066047693933378623174450294796371658178386824276862040644961324325022417285808481858774767539263377121351719445367234264002080659583814076099489042224366414952523939053972834845386657092604831941527220638227904426585660866521056429899666172094027456600317842161838120373600531847277191086751738123299614765459713504848445488932859417389590514857600752366417810380299009691835974610836045795410055881688238525159723153070349354704961540941518444120941473912307005770890038949679495929780112511419132646111885101874870735429434677776569661638392379800735348941484982593261440543919480173119639299186392892494965412192350529910790696774253817806036572666385007394557527366854914828774109599909137693429946891918386128749279438540401631135477960407728920815483115292754526928023001898747499895905573152160514483313852233905744966391569656440007549306017689418339441827690907294544658491375363248822904191281111350713534906636799538864110835464611101894206151237724450263420689109170139925937380403561404987136998133042771526201345139528608912079786491451578013371370387906453136154171974204072454129073263207584604622162815280359158394853774660063178892030369954093407289509004108938410092296729390164899844213413257313085161494003846205156953150282338902143977533775859834113167028507207444411606830463763516533205316836819060999817906858012908759520525494122216698514927962740146685931589976590873461403883075107616888419875149456180653144485770230369898371548435602576297668928929015991407559492279783816482956882475223452497599536790358435017932352081927362460775847581624649454017987713380535150428502795286658494261053586327267742198810505934889573358631520620028124657514924114675257299359480133268253445830049392154364361031673312908312105415386684917878406960696910022765006999899278230097490250514734973997256834945245487829868387275166519649368111996556573419073961881327473247170857517532738936916577951992110081762654105098834173038213684312783824596914621858203748577427464311354342660400434176279827348708855083432468275312296565001397688599407451557639048163132493420943909902935713472634071643552940019868728167415376438035135570203555751172662000663514808348722122124981937240907078789180350727288856637159068534259361237947870820612210081387581102734835991289718179765203949275482656143964367038011062056445458624164136748885173997018142005222932820727746108185258382531418152843410543278807699324803841937739178543081221484691247680584222232469449105759693101541391275956790202498785292741897919469570266051565496161295612131275819245058493881003132621108962947910817702451129285080753840237631688713330889732484326861035816660578667754393942922820169938261079713942902861143600316450127423167031579555781678117866385874129115511203966592166395323863533538389563939481169692493947012205526725033129510093951154847429359768991562242114520802945582844737219330316065868012807335676249617409699116789837029625586517161514428330661842555887969550122609124915693376295017168488663668679543803862442393532456551027983103079626534385407777799459048725440396468125881519906583256376779503853015155721524525850063367456437234029191537466293368537664646786434287492702066631486333914697568674656401171845372421980079958744222642738435244890490448114023720610888483530562481024926821995804885266569947195200147114755362353981010967157899037814537200562981681986241789727242869201901769518104230573412789996777338515987549803577116170538182213470456204137010092639138098022146649142586726975423969743692896343909439011163841445226778004478107603417146233219736868493900937723349807974484197446646737196832135585676054262154670631953806921073187112030445864923245684700131957179882716635622029645952393416134237297709291855382224215624981839094409181856826547235251174347993915595818263623417346547360098188744487339304304276251025648905729990112851650494659225618979308549790040888436844818986896459000361357172802931126854672055456628454604784832685631391056399960333893655117285913632096608917543333426385490148253055986699271174967154752021648552304389324505250798855678418989806613615787443730916054929954860203907498973086570168790376228993061754937226293097130453552432020189145805755695428887633804517548474298791706056782079299711490950578115235208771129004685612757244956010205051421616578992195831559557053277345091511683636525042440573020074217486045699538279483936189224602579157476741658819769876010248450534164453872305658439824326594571887203817099886748684453401074779588394685400247794897501685829111475371082539762274007515062269958713987289880138629993277524172614004647240094677705795410604002989659419131498052698478777740966249274849040237435115822541919638790544649568943867520538392409707500168997454856458168063909590516546716268052018672620416855691710454388788890396623066866157510729665777390468989040578432581927845415531611381722817268156296780858912409296680972937935736447205106290307217614770492880197932225176198878249694031838705682467226476118921706208294369192463827467737491578044223047645725646170518929760418254549125866881530182254975650529601426995271287387836997264591047829577174955297738869737900123942129623664541752311636695027568430179948487426547616503748205400298416828855640317717673938632635377935689111197340560879249732713211597117035604384114888166603054434454419874938898227579990265834694259189314750981487366474739359577110042881605754908589485244737809353544162632169789217935385640660138897042351788893269689522759305196081545779635607619862249153398024709355964522868235375562668246665464310865929209530944678108558987620688476719377973909234751465224008646534946585379835035551668826068244324472587319132020020810428665332890311287099212582307620329503850642736749651332340405074797280244352035074003375142054878591240726536199494837989310523245193290527257967441358721775034702030222238157302266727112915668065090499338005669224009603158606195983974513863677165149432398150486528821948402139032227104970913140709952636496128232248563239603487218691364799598333149652715220389111968423501811045834717391025095267810932248267870432378195403468427406489133392498610471004310650891914017786403714107802269363043012061587804082461877393149673108201717655699171653469148327584108648632688003735581342861773048543892381042557913345559937951129455270539672404966120457025706823854576863534783045505064936672870847566671983115369328815524690302165138501420475135895124346059152579082350127665759227120154156276765008373015918444084393296224491356004202557260474265437461539408259345482392111581435390387211630608840965609314476144760723645369668842584427786796761545452150051916785401008574109686228741765962616755912281598731810149428099722867468872574209125433047712048987747603058778164130056755223963031858886050425125205961575254780110777724521564841613415214153062692239733328337989077496615558845293689669492868221670251848100441873878729573921874228754383277712567460207245448730741578853628041253085237672244318942307898711370454594852930321175641902929042075437267451438975829034405242830977226242787625353226565182248173591871776299915864427884493866443539772555766493065954716874257366192154499430361447455894192263771546727937489988789772787118551674780529426517623541990145792721622384794445543771966773183012346493667053136463771138428209146121882096581081236070298274014364092607495982351840936590626814040804503685128326761100288149470585965977479302442691648441133226549427998360091165997735449029351609390073995623086203025967142926829534580652395470234675896658581805384836200248951630869538955712162634546816335103737030321601102664030794405121812166913622848689220564543696138672229712328675411747018115403906794916729477096851034494228073918058488460297506316782412496864382932335412880961084150125388808679808537130025534614092408377732671320027018993243436704550921720799373530615135346630192608832145174562688493378918444192815383194550932319919910205307729005104246174440583233449252655675285131177698775936109531860068468547955313100272075219050234167398158992691275356175503068041227769131175326543950482721484105059910659053250885008272524798077773883551255758536908485252393179308666435316874646963509115318122825488087852081699650494115239110029527475064139299003366639131751309067234513404588031547115496228874307057429117710301950709595899555483616997878055424289684958908322362099215107806700462383320357967059000502962879861666724345116926232580209465860443134316646709612839815860023188528248080626140386798569698827560901109939484194606924062004971625001478976361675477075368433755474394498303374960877742057234687934865056026492156214217800449953297406606788176841260797229353994614097869095379055751957900825551333478085899628568611491423641084511152190742044122073351301901119874082313332675225879234318955456997849195782409859227617409845813109179731190814437320123932131283648797560433064534119819350684729963221505385826612016440755540659042556391502765839655444856951685625038427267198399232298731466975769171622203457231191663927292954859186048494848687815673126578643492774081450597877248153404855947945632209074685189210413716032925402363180576911273811068252998008562762368324442243683497532344004690052415842718197114707899372153052842597123924098899002837487330760526554096646122428496926567790763404057118128676420975383959773093623516024078828500657621229761207624074962874074960048866556306711735724726615742880278506582181076814151013527972979411054492952530841695541029442675513668361137177779513179594601329086312611266810150949693578818331360040034379271315050207091647528675586516310495909432110552366702755482648514078762914969203947927597809686155965359488393879308557597898479497343022908729243303249259024398410471489801941494337769646109249723047156556521858027444193891009977220484551373167612517060501047600354568269969028413999360876790419143485867365490613180943028390700235902799266795729476600581237449131881433999830510412140551002689425566047477818499927458332239570824940604187285905989050348781336201720731605102595251621948220724946106275174519691209136788529556591249024507468512361974898856053947103160717891576605964184537887140442359804341202768354058554204953930478582505080593735610619119144432520301380862615473798539853406222698172900363780850146377366851430102505154722574013584219871350400397551674502430583386684023252444046630557784292890023833850558259641151798445803184032328972395189219380333292431668871619421756066753556076409846483009539571717481984053884275275022463610527683918966650270908230960907712195079129612079052466830647951391171619649002939718180908292694100650306599241945974560116752772896482693240144192676227347266268225788494815875179887712846529221921474929912383856707661509688830912230483865066707185527446662052966384832670492539503660943908497322338814206020280713287578307547442371081795022712411331608638125944212840396913381205746152198134555547480757072485584894876890027825242075130570089614735773478860234677186553899808960578610007441579398022584329880530825345047424844662317285992645078330413662210300633124624212720512071005675026972742306064029283045478699389662658011349570000839399216519706160399614959903584674364139989795854516609467636558092491305367693682008309043774670821309418642128852137890756466932406261138468504195369534374584562397812964247678855814708692275105901464572432154173029101428216825239221799519223283459166611180885347302356777911874548749111056927198563131805321148941574687800990054823614129352172222150514250145052783324305939030273002525554394838554418862369801985278799290712650868651703782326813890109133914274562435058486670147082840394490341026983214133531382211329399879483806118203878721584682139671417464199314821637051558713496385857821354320413948339154348354793514897519115279960164058354441919867657341657273566877553170807899932911887704570402708906456374297608274152717606045798196309015538545788211525064714237403339194895409302511985760716295551439704003706622311622319334047137556762361998792551224815155867904356805462736553972793175119137194992995039655661560498243027974445705330307353237298471259171680951972891708860662094346779803716597245492217755649200740676538258682196131622367212148755786282060276235618143641560427710262679820955950155276391421079940481935542567540110899024451479305646027838285203861388648713124113956731724478308182746646360607792245410827424620248519481229104086793950547396601861846555046604527559421444699082854830494348874699107861908738314030388225204995464066605725409512109247253898131829622553723214826018012546855692634873166605886213606182800718800101887952117555819105335496370361675225400911352820307685642511947519956247269938667479106776717593034589225058240325537212692686943326670219011948378068196804838903954459219311937232167984614864314526501635457774177518069957152301636634601520025357119887120293096915044224353667112571461511231649012649051393507161114112270552043541045541594521598149532211315303337732873782232807482008564631678373506365104094628949066295483865315206350391020395274803040806988263054296267596341459986561879259577147745460188178681531177876247209495576175065586004385582445185764830286041657193272028264837087101508729155389081729279730429599598928074334034799768257372809971890697386482596469876167711128253235588424709547115194687990110335209882986579249030381227634875821244228830844413195641684692985142475165977122191361055166975003124431750189167147888015584249975141891334116400667008770549300409291250493538124483399944866843168483950176529039839974411430927356546264703359656550186581928415375192738061763139322047576197620346246274768368648754935411905142145091407981260300571046086518635145204226438469456146039954989466956927814469907092150039647768961133313182242767947599436187593264157752720888051979535574180958369707081642118383461059347452988558497678719627120313091220983843436523598679919432754435387038822721767668469696449955554018902675983941111992155957892056993263659739204099648719846898480035360141160446296419454606553663961966058053741231237975067482098490565249773252489733700166756895001852880495413452603776964484886306319214078863573641468317085756475539669325375134120170195696077932490186109666675020897416413126509099557279838514766793715056204659221944971460104598830171879153274096165493075016957671752032857004613272720743408780254604706146980657536943464883728727128968639182172150352576006536960107975122916865696489930463956268909533915447779486457124587856198345487930670832943539937604481426882611395847391785526593836126238575251704802621027202686517847237520717997525908285711738781015822731891611222829511551953752875906384135364326081552766300557733125997686834560897339604915826052450533487694921645318026178548027978511788285898400252080170151998370957196709436682164536894026912614055907977747612402020406789161176670056056089739182347997672506039537903414269364205462003748219301621745230797269813619179659557562285341124019983147956211626197294791317078756894797386865281770344953695161774955927823799478498846767496158152084302095140549086306272591811067195989333096103268480349041333124414668514624853264575058152239806866201477064023191844159666328795563757744813429936456260692476834786875577396022269663540764505019522120051123807059468709129118942802771853636717474639336484409084998183484715265657674836075590427482745394683182208193463754252822966923917639694877499107509231611170688515886754010839057731863593484214649004861800697846611995117088609315082938709024323372886090519922677233979843011852864593576404266729792854793506728399752292497105680498390452477863283770348938128729387339955470156308939633563664050968516332020943064616607662287115824232465196362004651032544329872000407216427428241807007663822096208224001842243275671996744574447211150489290755238408868041498525099749320220594707468366493045131845552846656267668427697082068535920077034747174953537685643002082535575163137745474087659302378194758358201930174542863135116803620187607427637997889000949751994360121435327135402382401936047887353307102795533283048518829516946221435524938196411560714573794481890526638103096959940146974484795473997540192198941859722954429421329791871692944478453823219288002148931683609987687595244357730270936419086752193345375782768846406041925945160514902096308308274359920290548356764286960015697548403621170193481396971664108469769145220573823074276185417606126689488884084794368334544136575994073449089024229276045513289762562031195056452018985407189602807472196720797594759245550033068344423976824074063543937670977504547798259556527035325275482458940779290702088355256942416977686490531109291814893461572908327088708939851102907380909365954294240031577320998982739783807822568267939272156499663655223229314109330241067317602134758019332990707368916335520887949200818531841479415499752930523336289447163105494524598086714568316040182141601126148248897657255610706357504282573894995117513419022650228874849903340867990184070123074997824699356742949038016288970517939088052710908752671243923151915689592130799967393389766430121790980407833305042054820252295272187853076857771254969161529743461149917674166133144263097670300993739384248892192659301242200710049471173645175823329213974944881261940248751749168147778140188144729661282829450576822918762426720903245527863677246208771921137243082612000098259167398810087180391324951755647207285207889901554446911772541046801043081697982290878630610306644576285405115613745375355542779647168438459115946896397143090312017627798680888851271832294207358979079880678659735698534896775899830691165967335181530473463688613291879669125979613857955682225719150684030853008480965965968231080579291802038181477764037556534272052910995372598697431324533805533239173025854650261374734995635851664559574140969588932954043854283223628139478907869188273182695795066924545207153358552740640505947216428535465492037893099955468393173989636713957910980119086317598767893051108118175865880730646265820236688747879095135293396541211473378564838019378954498418128385318145073679425994842551034847465815291763459796912576617202351602212818465381692879449421303131069320795156400210136696302561347768230934539799441162875856855776726116580128384817567187242997907664362993952017255022006030957045611466158163176613189592903598936127504123931096695423197419702373335848802155153583925072200588217875408178016156075651888428050244065262711868822333870472634391025316453794907598204081992110937653914909980638258077158571382091646312284128772876509427236787410248924625812943482021692940328885275460074765407050706438280139855970880661738978714369882679097015540711624141628972893411562647526957606391823749287521415611004568899683137764406339055197926913215794982482858660493496855516262422116981683356175986574593345876093813986770251028898654805952139289816494565869663684666805102737699729291102703744472066975698867840884569065156672283234938677666142387217847765202626029434052070556460424940104063986159395623822152580598247725243123576643455268162419576517882913409008962102523206765713326377212862962398005714399960415823466082711505362265995564357109087415745874052847713147862419768164057558349265607891694591475129868890180903260194685180220996007517466078038762849645846407549924133469239878577708700528656137280696096668708370763135431695379766763436981862172148448307505843121016586573932656608806935829356520917593765248659064701804652417987400180019570705911116591573229676200652258017774589762640148973573531674422478985130636039147219683745813812871300003234546804361029883202645370448346108933882206714965156297191411482313682956747589005680769600747390812113081937797393383419452417735756936486698552088837215018436330996942384797625861660341594283317348615338141542036576926649061497044419572035750062530715229241727902163507269730502032619494161432513062962140725794324580930500224321816668268014224378446449471626492016198649573705042336708867724218911246755167033931593304965596440796935245474960450416860241283243289482910037118292289391320909296346592714288970538288178727254857651740922921832047812169624242162156696370769935428612054053180101236417436647792538547976738537608137330328097214403115203153244737392260464480818433595135310312375759312372114729748948619670915561892084210742877365798015649003769997757051464713786788310387946259149782311900959867025269967234227175553220080349090889351758635865121710615951182438385111047190414984145502127362281414171982797453971058335814711919267060239243812555274996421586942086092821522051079259318254170853741269481507569493575705429347751508848847210807033908427480457527403710462593383391637623836506418835002433970583899348134590223930558664146054069279147348473422604370013883842167959192042866720491292534558538955876017970845737130200750775176391459623152331128139679533984863982221504372729396470237423304948374719148737768692640308371800104602109398938075617297916936467080462961831997295640094454941478095691998789907809517020229535120346323971422512095119927068881647988914703542886206203960702481766863050249119827771958443124342742771428169229603543020889209793651799769436879129565838004165359677679146782240118610690602441337356425108599102873844347544877196423577935552402321205646570992420835085528878747577997621405947912916991078393787894494974287822664290275753918606304790045976773249421674151880220935681789583770191517470971927388555689017920536694013170806487668475631807736448478502524631376589946607640252044231029382214521852562389988893615404696518306284567605365542398522227223251351697892354549483515189172612657364821409879262194385712256466600929029545646917350909200856565463153930645834804144604787459994345216534797736724342388338424873514108174544865435729326985919130499242908466403274225710130387345231203529842358643613681716967911275842078986757013145020706409202676972687994975058776705793177705410981245691081157672353388330952151184848210922079982598174466306099157389410066507944680794640961771592344820822868295606704391863033266901281760375224603403763748007834123215321068211884181368181689930097565237380527677255504461406720805360024834501203894853046617695678867923967186577850425145958753524131665834550965037635586513914508618911654478414213575806850116661043473318905819396909227343032623268651059775307461826178765532646118057486015279667334638534763545691082461980475151125484271808361146285043549619338580880503643398622015939588363125605998869983414574305139581689076491401492658514417409556586997759084285345767175142882520297115583511590336399896621186612768052815854527786558761798758871396021069665388761541530658175860957839058906392276651605396740869430235652887565381310727458925057988726107310366738541616882941319592372138583875444150668204365274102410791007038389819343410125316994721547571507500856192947774691261679904890370886858506947100753535377220027794712943446483324989054641475779889454131723362701230397126233493912959090491762402801017508264308828769152774479264327793316493724696158293753200549935047956292102956595126371042599089580810430574675729825165611133753880688700527528977690041267708189935082297317021374875642491457435678247116238007391925881422220749125942187258538785917189896626789707422522022380634392161494008898842862574317404921934963164566053187970268533155164018009825684114386619322600520824813656810180028406928617760819103170557106055862749205361344454750391178402652413847365197919951793718123977498513270252275398951145909799156163553012322813979524067769631005772758490449942561189133342431264013912511660676174573604967147927542632023055043740720670900111649439557847959012588929383651638602852936672206666001341948845648526649449392973720013097245660356231172936400400732476408950127111951818615715169017366770643966574502796883618513915016746291620532157000399200019539509705755395801934882543012740898199564933315160497010947086353206846676809892214175573099674237995314519381288077653065968802921731469635451957868742843346836138414829077407523617981449692704838306353904643014017485002267630014789998159436886241610165898856604994655021003792659038800719816195141419902188354485521007209955736983184392923933268508639528393615157789681550330370205784952977610220172366341049453606373285461580212436969935273206159993819433147622314724047685526043860011183718354810261484572226053770281475647902593849932204823214962499840507658673328224842661216960413798698880031130078521764104950873485184330345198422073810558978813308621762389341239566579956632342541378441548839785290710676427113102973892575499896046032006968088641702972549756603852195658442131357200140658149534113269090938541564008768605561285931861824671305591180767581948851381507789170148254538439375424724529785863660541964150267953285705893857491892780977222674530825808380538373564231427280330859784122445954963106054628531600373839062402627432402101072024591001959591713911728879558055413085460229315894230900080560152511805327649896587074538352734342302366048378847161925557789695443536352795778657409446017843175172370332836256205500771740138886520286817971585701223843409542366915265689948581177632368386236002755104994600381593383421668524531302985509119770757755459227333799326528604839319182074207623901540692530505782054682857434231768331624848213736147144350984681960205622270478362948810534395116673331695129151047441252268122647055734249981486575873163559934900726231831648827802003652741782067468982522267132112082798663106720817286501756077073223998070810180893764628796428887094029980926166436353718059066381641083225388018114450562632180562495996262131943782665380146521416649182769536417252521376405476209213497481392012154862624991048248218963184109342679620642713185448278239436931054919115526350192675299090148952741875953682884524541345675176549834875682506121645159934446879421713020249487441550529114043726037887793669484569286032033502334703717381391757190188087971143538065257091611115167434048007147295530399761280575510873408823320496592214214088213795140325339098565794086060304754697460258039177986887100883422531205652364353393813823103543021260049248051843596537086829514094108730236426619576433280396263344904876143754450508052978443088182161084502357783727877664259130140451262253544438333721420888889979466159985632682368681169391258296742482221267616622261161693391997639938059861239850220013187506415743379365710969193729039795174434347821852578586980743645398381983430790913586840473916840089945011958125731041149180031501287453804267787209581258338013016900482013351504909906466228002740967396941290281364609194642565699502212802224077648453953145321446094430734427782132920381501100340104631565213249748714865124638575238898973012492048645695383758317354199816514066445268315420318340679731549455965089833880963746265677206772446662246945409718498198575167048014205496231889944228386689256608325518805646206128738933518208960924156447249113839594180866738985228829010700246520613325407408156862644732023309816096047288240155418017017965374038906337409756001498678317323939193219850653434530816015248825768223646453740153635799144528689611847351619095080851143591179757877626473582485695263650682085271218693324448575614684332450574246478465822618870245366093247291577447390914222260528911145480950148688504262086932228362704110441243285707442491602244882149630435520847962997675330654996085853289019980618895135468984579979506262318057663306387433904978298292854238025845469260857135618326707973701401616684822144360414594710487252512135281477559114000978888131498191809145322500824314801579634194148639246549541582089983840794924574532039145220576440120357630871138289582276918643470630384803938374456256118759473385858266739929521000286027101393043210128506481269379237470648131950872935337125224189794060256657276098722061727693002290718232726287347148574392882393129806672247716749033071267556579538070085540644401158332992582520661132818972354543818713896879054750637595665437528729895773205578564795547201736306630808624517651866582573170932474228441542349874667999471150820080460442146505243636089358208468224709043107789858979939382319873242955556162665116634575963760234676946051741811006196325405049779667105105397587925230879280142783014105320919717212242495732044524768753137367907132583380554051787766437135261876522587679706456119504767372460519834220352718553291735947150220476218139828553061922248968468225839368181357960518003820628708433416822643966753197398908282196871172111731521237272811023620300112672034196774066627539914919108371927943617571857810588965761887448098228999140000763716614308380066617447523837149261595964164900515931605558076906128439869088956331177352723792987791551979036607761349318062019539076786880319713199754530301617046322930834997260500206680381113257997263933819350425561986387449936435578601516229234088913662444937619032184553867915863459771346063131974528204894531039651454224945024469977944864141746719889226182298358594947681197299297787069140621008740648386103420782342410003612093784230505110520788467770839627633631665179707086850648901795004907654872163154862568862311277372269277022334503350994136932343594639258738149842406070875832993258438269662080679446361204190872980536813606270197926375550171362474265740148258748547713931171628527603803647710691700772878066287001543000665520764707806071390122723302376534702450547105462024344209288489650182973771056540929206522164199345266865819838925882016442714008030087025430262737522301342349095863555237944585773360469128025653389408745377156291332762578154038057033402346532584448958015102664613461025214176273112860128288703059745501825616508066179794731396774145573492119253418121646574727161743668244267135146289793999917114866597817955027023974668189245590921095144166292229553788699226973862287193473921540865064021101846293958167879517864951784541545919903610539481991626040144500403118546495663214379671396005909093819156236025664146381062602893725002059140269545025560417282742956788562304529968851758924497266137816212796289171236364818993517027214130702669711024819754405385236049447282448320125115836649951114818150759813948895696936439528912997289107082842063135336664774743933375624550991497206439776679420653716127727533327943485478692064149458533978238592810367817025160756245316989532945675083293073386161717442348013260337922699201891276625957222852066656384609365066570678304600295237707987763148283943287526851032404069176688138188004593689150124961295987715312138459616465479679183681716396406778664879984612538597013344116350696906913988191510507724183114418081257093380361508259873289750372539287365856409284168484064877778183041694673191576817638924536963780728949420254252827293465520935310421336186368225374819096602298547839084656793302422739124590503825844595380647898179557260898382232094523949070903572148627169304857299180520271136560874741696057206344451088954663234753099955851575711126302027967823242875849353065594864004528384550613860884303305049142453275979576607012153939540879579954099321555869954128609544459218353519162198699698731410050631612718270901053523745380769809233259401909116283220884054422740779593551985348755863908787405406015250776467980028443302543399231559569476155306381877890631245862545438959802604858039216701879921213118663960267331544452475664724201690187650989327493268414965958548531507652566810688572711075713851053949496427628727500852937146286149014861358035115941064602898409136554284279518584114498795507786241630699857806890812921474454762525726504625360437841941077899560310934657892665148527048850049739619929426860340462671507022129988036063710623368279004271448558359538956715649320171356276504047851211090109815731251928577385595358641687855984249245405991685490853104354219198041696239955601035834455364186204450528689587848930047298953992934536194905639203427194905639006091490589084043049104292484617549466877776147078980297229973589093663966991883443423309017447471648416984588885932881351463414968896908664019418378405165412905387533290864650548474020842816995988732995783225778435370454210410012832098229682137750423182981638087247977664338079849019827990171751748274854542022916454181521480388041101771332101616596078733479283211826584590500742957433958215611356064888146952056564531088582602349483398798782003369435109730896109562633184641495086197646584990177681416342236184622308015923222614088855414864670811039004330369060777723853708569429465684194112953697179378559290537392208428314814016330774181837702726266780299649102331893388991110565761527407373834663833587337793126413341127498975410488718552252463328784728571899566334264209773889123609384219127781219798169854596703935334980394292473610909198445824067320098742015008076031054597165606351269225273266614227105252653139867275410011285134714260642630878296913873257081920961671835153833111987794173478631708050983599214624729147266543545505961389370210999386296947553941130089876077125322271189639639442433360598301787277602887327586300552239919494411319245999353127569085745833047739909332116076138719438996441468708827116491852876810103698556578481401818210980589265786420740977657584659879767302964814685916106653149592983889873546666396513402949662517015614632795929259448726659705501081149548847855042702184780793655138342473224191010664330980106316445302968430212302306573891949715413825838305763161058577342332416674633351688128669418766111010713476681347076667329151781568457805262382704409371741973472733043521108982795701539210359676418406030418839133425977215949493818442195577333136842789656681699433038609388255316520909427647317710357874100420673048815324807932832130263835763038827021823395541103344747171239876484258285481811539192633945789362256653436144292893790831872734385527178156571315196472051473734912111391355654772863728661638150926762954585833109554790186265378185085404596566205563192558406126009000103092667367297697057205295686079383937334808578543851459682594960486284751753184705943555179480950960675139538714522400456345768851680205032402794583637685020708014889902122128699224964921784297279329046798295364395448573919709888819604378410464845550519728863631311380087193358047938108811449612535829263713210054698311010568718175836739014480130491985901019194270898582272131985949333503730328379915927198730106656727549493250541613172388715028415132231373260584571093884572360247126887289960709981892231290030866746912092769621453267703150399993033641923194158764749286526568226981244649388845380627402035069328171299659001418859802850952706872047814897541530618503390790493321164717235957707575904221500455875281816206900125204479780951708073329369623352446223694454024057829943349042107415261940397311556181578011967094137213631470977491579768186143939525345167300210336135828274459589881914237300189487076908087369848844632781378881514538945269986096269537752940812735722007977543896713152634599639594936277297768859182122032514619945334785081602160983041381168414356544338366702440727962760446911544703097025352109910257993305110006597116816067842064845638720888512377371589816966552267721523108905201781067644602294182576503038387304570383330140429819996371744262805033983404809339688015994439873236495379116580430800117615961054448174318896237233972297388268471535876135557239448785299725261355330858994884813724607962249188974615838328936863104395862917593950868474978113992983575000229848808966409819003398560456025304472897455083690813736947704563911472197910360572157462577776909298553452681650697470492052516373288351964066539945995003877956504725213435207130269302768598082282419582395574067698584963394892906475814715265266691238137552369454249108912859302506582414455652557331229632532018888581286214331448891011234159049707331152625414290797040125650852820672697143719598428350605236269278193023223226594429077122327670067739290708323075775419760636078233324100036457230190233951452473386941995936614608087240584672176488792389250531122712408279066980364753515098981973155316381597899817914865345164063579253094585006005178754210285580454266871420875631018106676510200443442884187448867216090089819611993781617973450589078940333544355532530324847317638931534755364047655930619535867911321560558477948425168208542711389955785653289635314653444523348431207974981132116693802107538983682293530128184103207061626296094382439637561464442730988366762858693739094676012381105858673384895215660511958516734299005750469367487864454369402100363530077886120155800126199651947920015782865540804739734556321940138556105129345149830185973036388674905014023046840258606094924849700585919750512885814276333609829466365091976044383768772222426052797411142133050714889454236100725804084038662274298286861218820711331434305062650776016610162632639417790139113653043477841187468749729300918739468866434601802455587411491857670958759917443336239623501483570840737169699429837481739262571484782738091077853851916789752255381969943641142910027710567365762791266740806364479833873838058725195894977756633965787252523340373042658068520141222686439924387887447973202005802436012026193127111757957252606096694539154553925269373655270776424863751031728204024712177187143462742219151773067712155623131888681943372583673293417970496443519652283107168663789779536513299660795375481911285580262904545449118301033608992254160768711946381532047626551124985519100951350152533844648369349411444031859545845533024389517923751123610985072787680423285513815351022666490217344424387671100652490479548433020603603914455311733147362187781627369211985316148439183606614466811100646098207494121840014665058892931797799243263753169155844027965657543654717259140992721859833739003696031344970672083988007353893852607385100425421154844020802055680428400793017701011209530709956594749378385156107544061634572966304811128313380315698733479008393554230583878894921967688924056701113969798377864632619003190496992730334383290593753553939515688252120482584996580963771881440939601314445009579005981583715130551285001141822660880978863664105952908756306658026128226974273445795780439646790812050919096986923320736605706436923238598903091873922802678972061680690242473270689899937227083173683015639214675625665990598655174502826247702672818432750451355828751069161979965023172287826860683514598869403128454434407518651073055650791761665926360839113517571774803625730853798971498350985360926046771911458983436412661122951445618890867615219977754728593791909008435597341934449988465665716533203040106084016354969998669952688221509863200213935430675711954482357517797203381708699011725271172025701507746020667044211714087433821338713398480397041940821088607411592380302580304027953820413602170949378664761204195587485571970812395687304915317036204249334326337634791260724144075378054763584928424435241116761452228079860857527702140479441903437556720607238193179421369867997299713591427986065979558100109052791064491877756897299266794508568146190431376232401211837813629579928088409073765026340886248253943596885958403913757263451517862865947580443783114490907496376545318554092632391285721721611317515432690580875682601760738995406390234189233885449777750276777391889424737296241605660624445166824514030815617441975973322182717468589639341881562936313022893983969178665945308749635260953990597110225032632814361901033769861530227846321301763167732215165131297209047402427232058795463237735781566669178560263003911584808925708316823369467171800469517637678484078494779354635721682616011507847014807070919044685416031497425808897913503250883515159209275025204289893293604977945125780620324031433290959394909934318554778799367208542752987372254244138105670321521583360116221798302677880318255013133829042230718428359271657418823404355451258197535786523283207781641711877720065086733018375667039608833507414734702416742083157352805868052938047975330169186857730624018739027423607366406721101282556641272125697682462216349567829989804317307725899294328420189075203134918618212520981073537217117706563116966972119414523733352537850927447427786099190972871586156454957858794985529734535410705304222013742082341762907481165451775161239007850676948828013896881200161431049252881826253562858732236213753535701653576159558102927308255069236550846922926781539312160848982818048167549697664110166761041763676145411123337140648560432000413908474558710471086930067982347240148235947579336111910846475207305533395246167871361150045389420904584939763276282098465321296898185601390501645543528654836823380145557388593707502450815191823385544677624134582468115962547607310799391285252179637763932076935068191597400900484383959360352323609066498809032299877788137278343032400752279005743634545340502575769564168639428061694675436145423259578695337571525854850759571049495316821096950349094360050362293873861257893468772518872442651838072415485906754639628544077945021256261460144342795651249457111362538263121711113259633433848599844251899018857194998544002111618847009143368950496396089064265871417633134505545146881914529812953334853610170137623150576936960057104978186614993201550275795942494646105072197091131426899227455590921712813418029068858089054683820869941074694879586419056443131476366757978519799559935416196237964500248098318742054232507612753157964631055607559503634029427732631756925246301807258921934988789653705643411456138643013057847939032436305734708624038173565335163962945443373320984043458403995435518641007283706789809016193874043094888667509545586243863038806153210025171013185736684971812354755784959846344201044369647864313067085080999772235755779920405095982022225656736906769619970293995162168876475182816295621162614523051257461613794716046610878238512598297603341625216317942625420922496470465057302305543965750709497042104634492292394021492964412857035982551922699367476371644433238381135338229227291378658739245542248452642862160763916466322818352998129470312055929396792640672381875349969093013476329768355330621517542095563465734418933752170164572857616825645733552046925187984771027988245532173643406225263299145221914436149995736801960831197200700832803381688163253747278316652639200795964948191061819286800760053482689069607940718723316570473425386376522557617091879439565461560197407974301597767895589263286099577771787533605398524047437589179411791067267347523612823031496730139313427660981878355787354889192956060180087895715745821011030710253128093178230960511452951170492463593692694608512073598905713681686365023515294229837407682409832548084992131923590006811746105596573854731761258216213131318169891649852680276459243081533585361336071090574384801145493558418961578565381547151715611980412530450759463092769201946321020642902772682374118080030439243570436471040464381519896023894887009772843518170590755828116596062134945456505161041196222764314864371254916034201322849477661644572121159243896226198807708522362611169581591191180807937507226635691840503166503843565749901435155958838648284185843522478749654217448988060149620504209240475863915830890572073843871396443113298064923712135779974833532302646119538356901447247900109907855996492418858596076770052666818536531397420644671723480668305938562004965840737546179045184777017766189178637398814330219052000248608725623591487747721691663692464427163893293821898186308876849904180332300479881450740767096792541776260987396413992853748843817532791505797955436304571199329948966815114770948648037668984038555557890056037263503780065381757192614582506992434555945164169296170922906550492228186601040436681447731386556105835426126525436964910623981480843322303183271475204425308589568898797563145941938454969009925389683479096826912667544574096535093957865753960524374810963765706142320224048027394905968205706749217932234642864601938612154782119922133148702125067858506931738980610251830824509691231885067006907020008698338423408265670774606083273773674679136279942433500944487977737006672755821105984766467832193784623304902526460965955178242824170441838978686514319245046293708107990865663865384591956052677774117852453558056970196343392783862038227810071428434791327465906428774933505432416236781370124364024664893087699597445564954980300611257818712833292327927722612403950839534259201765254858383958135404552378102509059187031543675702391366341392118526301479596551689237612452383162676272482652260693221841669237652776006654985790508566741847874301592077277595764652554525248541258865195015055980128908270532344897073260734425754303321831024396795645572216208909929797700551766212027417323523792330091584254085131095081457901054213600817876176055818294134089072528646250985998572906553097984831111353728017344950749424167129590198881631390421679340463740599498356687474764274666891595629512461195339581102295903091597032091410900206440139657406242550831766525553578041375191985693727045557246046119391440938896385644672866521231271409261122729623109362522752009436182943779161889739928660741712708565545246889401086394686004169692252275491333003305907817440501917547935914675961214923562736214869941134484821465827233181491894120767072159234941531912872264104830040344746620868772867440509575428684101685047715221333372924923967853429388363230083697262518771703548125826514350045466074383856705057347388282737801645760913766707064857152322261015828094482651104351348219593212371314157087931968787780564707126864861484790711779155283961000635400220171047679928217352686362264986999113405323214195274469799974911611944812955411175992886032290039271634502638786169192580247778257798419992476667326505125510675630075794725921323564762269611595364595238332264928352901105053047215949779523678844432093933468175999366502663696002318728147419940890568363943711637948716029376274787397856246751142940173265199811381491714490967478185489105513636447584346537464501320542028785754385114563568566108648891500955349709209076836913143586990557633965585755900644917751576911580842038646542039467671455558669679199017154521728705687060237953427054010181585762528982318531257926657253070447479741432757940601211133007348878426486961467138682585575591047196934390052659850340598389240335431643989936636030895833486197532276687309572228276601340825619230371060053762176429161967211569560155767491033734029499079626982536616840881037446752868064197482464763291555292449406543487957757963312208325060237707087658580730611119522969481909011250237518052257128941225998489618819525514198001971897584897751127901704343610298823952737777204078708446448438747403997124056804220504837860136254535724727950055687879296785427064038711357269475137339050931139436346309926163064445906589309053624454336194822155256473522481597752773768150588900659347112979111907972802255338669705037274536899801250233457506568230205372260486986658190773694019752872051484477483866363899779824848715504788644954386099667233894678792588674025547834384613617458219533284170339279280876527747708782928204108722825353924505549838117711113273026912424986407604853409249369857997914608624247536012134574450405784669548843873962130928013713536058112252582383851175102963009897913147180345643985519925456752832438701575384554056194351566631377589011485271998983972891307529316668067629409356464568904993846515386971377920751645508725764124963590891045459929386559148793765545462106030224125746472533480286422143007575537498660443933822971952480504616500104520482917021211664145790378753798209786943727814695819840966963122505739961704688847237417589885289646155468464802227265286100302291794178951190805233024141220631394603826616814711695679414476425876252710991499370282318980336262826669992617350368241689407721680810869919650429089010145249393653718885752193850290986864961217407458469685307694965104098969473542031127677109475850317928970236756975731422382615530952049574210311434753510960622524524500050064080792657545142873164713836663050353257597757001056477348342370025014761676157154061673243571830269396939329892044798634093166368143573629884032761360659876447212443750510612618508753241611447387486406242809659001372518464959953104463241866027751214593005889163123031198088888739324532990453234466961735444805742906764320755193841100738158909858289341097138859972592513886000535131237354160665900021611625184081350071731726578945559206379200615817682713066909209044581221335226556217724158233979353462638267638926220401576453781180629147945682082148302626200517392922755661559430581991614740163521693982233835400435107999419976958649669454309421224995187600024631026382447207135844289073866988527503788603209574382156709043246858212914594462048658672618221125019150254415417055024826290028673276792206090137918455114499934005902377004223687912547316033463968441485958587291736166346701664539815367392165032412266084423237625397264880558853307303317414271469940780518083973155190311309281844276709401332729265096412647251170485288356763528938850265687739543207379364072771012914427914229170097969909105569283240602259648507464869829596878405175497247084459473787315210583333863741466157417656973490799014054231376489453081908330542323417929620764523054056026942690112453261999588582781440128561330600877467409846919364732582617090845582052926627191629386138661398898871827292111169935950067139009519432251535375758732116668987749907948713694314515487032799217765945858407878245285429898283562949273604631421743672261092338690112761498197543826639274064378511842476662157680281653576272414543949888616700568377982238808392577204810652262297992158722803492678767379407821800485578979800215116677356984835000910280289661015431740527922367566727135509431409561241914382639249720777859044655456042863011598618201699624582847389284817447966333879871101287418969429472245831302274817962784287162707377578414656801257731807847651440488988002610909413685436936203912395480987520439241865852333776651090017234243848928947041572906118552692898469377512008204082999112326253870348031766617775404110006750423815731057010426476095055834967019005573897752032906467102969582148743328665169016150595670722109037326502189397105261754393589468742811243039484693667320197280796406089019670547677625728743115145604125309201845594069462098904020620113575033702118289705579321818272302674098428222820631841483726077508109669324094415138667939487017542997189867746713172845392648610782642256300341147654116077456873283112575591244173128486645803748580656408135427883471468865623863662802651396949360827002772274799293728826093921471579420542328694201184101143922542881612156804218728503573937433827562076597032062138918336504770427863149956883081423126326779214303646325994594059141592196002123250315300504454497846715840422555799933379487040814959709267598340577002314147952877508210874156810185814731255209356996067475135668571799115464237310154267348913497675510154389532368475668399204582680281339106619316787351894707145358446466646714472593257664151702672531251221870068789582923747058077465758614473819019954740175850577508838171330235053861662409348998594343199844425041945869441510962014851840523439739454821241104229626988623197815633417789794054247209444387507676662928147593389400672948063273147999062743805600364317965689682375080267781673471382671516624650903996859326176532345271332050711601415309043149170710235014994838586968802200988518089771924335788630049076660639946322349642742213127134272269098288761067667534105497459017334481435844650905506567905051469614916694079104709571847266674809071151532212758698493659267367613429639013515412266807809242469661025988221484802887706669694006650157343093122139514664056256157991531372967635945637709736094865731450879350030343876750207213676120840168444394860762172647461684143778251293467084936160763849810276669977631234542120566794238841663649465855708608866928771805248995929170323881992994229987665193030096486438975702375126726721894608037050238394971368623671592817065624324974920904509244706440194901427133102278439719783729536133582286586198708959460278663596865418400877679156138510493343082995027389454813971328990030598649630691918269495523851561619850232025845276601409409642177620047916539850692545218704904226881496892635123048834468281041364775068332050264396882533527543411369014624672001574442605368101376212195200578748387344072688911180075788613742652390318534474434160662136040353116282149408139615216421301071271757676466674747437329353443666359250527126165589573809263900276916345248733713302688006578197981831895064437344357261349343147643710709205148977204480930194458449506963372759889104860858275624378514178874327254510376876272947256002176824242301059403898479508696484370899760035193773596312227345564322048575190402794744023775955392028957871925749312307790919230133343034387561226091533378556547628804212187736073301140476403665067842276657468889588253338110169636377103033021072817218654563427827317428806620922062288393072612547303030603035264771060859775823981778053875509343213218357192126386191475395071190308597876115050389305679856073535290187976218025150677521664689205859965702437582521399074911058150699854457622328615930530878872419323473930755842855408283265764499369071136781171282762406540122114825383857889228603493703030560007478363194126150990399380214718398756393703764673939075930556656062002385104643171763594631030043712325434266233721412682657300592792306389999385366795972950835670366263149829164430814562896060304634523061607267734531191167417173436198043273791124166504682107603923496853378230461829987270289709150239335460557801645604353815471086512829704167224457730746928993694169334251623818315135809708915734633518924942640503981826272457862197573237907598095084297999991765140236220882031367003825424778991429091083149850668242914215066504073337628842114900731231874106429109627554092765964571437250594766716757554927333079813655549939336334754787635576147929431833777243176433544902497057153844616100530614072715079178613503746920784189279928161872920820998309801155093909526476501784500221768036866110821122814555521209326250011473160482672028588114705205081812351807321662854733285240286031353744468539878097125459877908245344930244605034156373141395699266280473586954108564801382256302396100472271737894142390501647181172714231872687571773759087221257277477275519986986737020667397123087567568484583661950739745150034274854708509939178149534168435112087174542618459491620494826404889547244870743489194697785032042289412018397404907734833074218322238276334032983315172210561789895296985086680298886686459303288006781599125372448211720860505241610746176744967162454140937584791792133710218267679338315549316638968443931516973935006216198064899778485157673703552576892357103201070646362320342287231415456299453821289314775494627116626589147036551280440571903659635724786408931992620229370853290243001725946033089128395680328571055976924740402724402655621108803812291594994589673430340465006331275058621432304059620542139070761822069732225148743550081191917816012807093480557810435062886809637242172509648614042570391613832563558985762804171453634053594527458486569611814020406635760107654239721223006957927467112098258574934963366483073297696050176115982894074620520970509484169910100311919778359534438887733365690255436947305663968874259575758991766218081841466829478736654024851120295981101807549490170405772659054293144857025694674967681114947466091050423392605790880480250710680628452172377957324572336038954276641307934538185978392313505691775417540002194217761505706066451682315972563282398893055192327254189368585793241127443169761252113544681696056448686191590631005616777180142840091343372238793772374898320235516250012535472825311166646313016815596732741241071505974215921588234637825209831452654110671399824528442313820087092128820187790460032394964124626450886410697291167319171799541030059771954514251142121978857224968604136019826504245655587846386154901336177801532987923081911602486536747184864594502506554777821554277865645938340971889300860944587170149768083949163501386101123573670798531721593849232812386157043444795005738522222661793771145140489058128608381460833676414878138716220131543159742921233454960065305239772224632252158719494971048341471383507054409168522534285700018619764376545620128821154379425831158204230745601257203707240836965659335306067984714044255635568083625963942906764608045687160513383121109731258292233501494775652870827126576852923442209861871794041078076883779614747486725425301508095207098065910759605189272276481480832589072756924581453610593755210236839132809442163690373285636121839189414612745806441241574284110844815953844591161628004130357762549939020507503043458015054521288800537157668872578975699115883216702453215233077505459041062352590459996472124641830996611926575687579629180456126352455152511273813398066405027488876029938221770818523285654016803881747705726758944518187694968114378546382655162525299371516490602906325288091581260620533443822025837628373948395867057798544830573695597870562798032385263962205428554124669347811124853750566803092323521333409768836195311275523212331585983840022627883425753159046811758997844638779187063305719537169553321346392722667583994147344118744833759443205153903190281999442524468621988606422917191406283969092761495160193119799133570634956200451368036861161225501134827875234356781458326566665161767399950696005325093070050471434883102274230954175892892204842276878571116016997211183316181844625023735974859322673251857309029479210290429126915280360352265866356442523963956289504743030956435313764847528045027985816123264993742186443540764072598052738823708277436247387905213896110510648138981156635290601547685932032932702119258929218904343675066171212349265089375285955868696770127185583821932959810702981217172528962795381702259986403591097018660444551286349054081333106476139773083360350422823771666148514160536707497685354262605020591908005158801789525410569534477304228864614632267744782662115276509996729101150719765682855829943494261679368742463860913815053384696199066631204931192561165663741604606868215338586815970115560211705965272691276153819718638500981806391163587653603984843953290761157455114753376006571591538065417417689411052498327725354160285508251302498470796867673381069148065387033240582602546398517664502793061825176768351019041750598722228798031611051936046202454162184430915788859315631017954713357086741447574311956460433908130530343261430787741719978325839809561884324238490194150377362774361303339377686967041839808654235793580280454173278689681134840741690750894556148449696430621473260554639876779978933294947030415056925019810849022282940345848900492251711949346946829145567980919857898586717101362251083174480306361737826271766554522523929738497946314874712055195635936935210458705432703317168058219701553792191276748014403292673551446043190914162026829489789771046864391929578322615122348742309070490078452878063154808794252345463720891001593225369247819807678414795401150809444535306294894932561477869135975885434519949890085768119115382174785746780720689178366909834534416027642480820806409528556925108715616168823206506275670771602824871980384437400730665993359865948217586138278194868706416672455994291652704761528951908789575449474969287796796816879277583312172308503048495716769412003058124169711086055156157666253434371680908311571847380397884764610055704282084379153815720001140629792556784444092045577349996612659329591233939305855534137006800306884869148434283509944647259300196383087716195395803014350242173158413575193869721350939824714424946354958116378368205192346688152440662139708027401456477556068747820851936281226374730422256018601146185512487043332717762076580054110878521085220555751282541285293937533854880727418610539219903325821613547828250792777395412649234429478616079351726698527335511656504295362505670442994651232150447443018663609717723560556347260801055901881736043918463272453287920673627693356665449328672695447905014563221162912592759311680051575301386769038672720379904906235438813510257993832275732211651189230482649602380568212540316430476949954363448808781909424219037990468138728877383233176285255539292576798600608268509279507466045913973159299938465859455504249076219280765131307932642034488880608341663575194018489043360628472404000916166583958473688949862090114348073788947584565988315280136482642921274968013493925827927115083080548985006150665920270695324171294690338364235364905646173805488083401111574616246758777539835554698985603102772879741606388399499661250673806939167606795999930411812750145657487524168628290546579282991220922603866433171366183150669001448922209442429929460519713467140818887436568054003180320889402796989226269551067278241953261713766426097019897910760783864095424184173797740128795896722400222689854448774940803741198348889891677714408701785732023425568325265475197748753368194338214664037929062656482090144953163066999208776493169298860395704817019273984481747884395502220130139180786813567983911697518497721105909889894631980516134897567466256696146998517957866767453891024308260984111635045820701057457229407026079640488380336425206400903464701206447240214719949442326273405022809088073690302699154011783661383690050910805426946691554910020881451058762111168203722556388069153892590244408425512549870948449715622038845334151497757746030626381276852923308693947092530483840561893445103701744749780190810759254607753000985393412707843126637370722116370448362716522324404087608501577284830542399953830434772460260790474054083736597439441994510172826721242759548905424359857427425440504020043374078019212277657471260174183062151239010809754471779381932970401559064310670310795095629701139663568275624375227004517648708334580170339841036972717037569898935070611743453392822927912915960539462390445272205222105329526159978508585670559796369235759885100602208380710620369491376272577546412932499559215544107365033908094253488115923425236261718233732844092418620666354252674648635710640426551881745370267788037919828666288771428227892371613909790930078740827648926311838682919154332079664707208766944542860442925223233407223056515289669119936979490236593518196914234385398840862576777996655034252150103971619613382688294014234594965536660156770066091878636028736151394378276337224204627004176335311893736998852768524665128642777783940323035272871992016930291954627230515142234805219145153037128946539826079415801523761801819494675238476315882937344272798969803187313366328159383527683593592604100285327981306185626334472069103412544345674067801296584484033185508068507461097874139750022743060639226627572652703271171079070782350679779916052432056343261405100408465633386421776903161264668629667940311625398029732776360130262800848384207664257024133137714457240053484891667604503113626841676494173939083047976539878764756250297975880450235573377937077647491918238848743754139825035530060924738242434994664455141295544534845814429898376143522039322446385770474216164820814526909373083890655954452121594344615643568327739800021568786068742945253389159183367825253680720919228498877084780136048969902081289053378549227995074779737697017268289386724927231820822053344869356256810958576825313596939295275127224389624852201663629901075090877866033114656564097542812186314211512493427212435178602434582148391750120359761469179090243933087080722689742260859805532671371723878007489969514525705778039339914024791916281346556879423607609560666963767851177642577614685395632162493967073729764624744969522429198043896468760557352268578461910690447280439995405475575357303323450729634730007130271738781848125289796743117116120186575553839815746704487485486800103949618705906924458560211335834984087441136448020147495698260118707093268537095660546535784017185142931653819283684202387443964674699478864186570090270037193136989603758731432266270564176792180044612464170157806275671411973158111883365762142530114264186801617116828351252399435366063373093867508369581161778376214877553678655785466796888380970844805455900552962933602335859723044601185896449796465946363268179039709930147052439522927506756092659182624508999125823717353280621856333543383154474534052697200461438482483731524048783650700393106804650411691958927451604899457564152942400903918011627590564713465108307247729493400106522154977186788157392103755173433629112057819664560551210934562450664897004498300066311840940899477581166584232649607549396680297066871673891284545072822503989841375560458893066529096779829679820591426199803760889759759155028659022219737094139756613630442900292467652317544785833818921355272288623202940206516363352623203036076559243008016937242178718702197399615599022893689628364495346172752893298011360353356861472462664120093444220954117977220234139937870201278726991205462249398567563146929290997790853386086713437027766318063582637575126257005451680485818784795445104920579172661583415267216149491928064206837506541485069753130246582793137754273995327190214413703144201437985628833061718048478188325109479596355760971826448056231556741247890467752141511134965690989790164597439650286014956512924561938605858956871235802597877020096184735026782634154878137936518823092497608636775429812696951379705483572524143343343919838095849862977983245791630031112869635354530722263384447294639197571634797404110512312240600719321355613210423112774456162722928045311535291793315223304991012165308321971107605955485926265790458375031716490773634507689755781400965331989601619279606726707161352852806938638159806636312049012766957948072323925883486327913111831393910698048940616845685876907241875826441609816706993360320209981512693807099702213958919841938875317522056231756885526546925752744385332513955049518452938875568639801816474859246538763071190290035734087403632790291915537845675841311437894670335437610968353763383676887230596480849750450755321864549165371474219150858817101106271019347597410734776297249052555752432700890327044309472993154489114945314116288562807905661803036342039032501772971541540841086380060255345270507970564211707970941886308147857908674860783164154148977865902023064554517304311655538026285876181850283665178506668672617125017892464739367150934341230532173823382309041776165329965130774419277885940312944299879702217745348244959709181085992838593076542881863148803072832579062439048005571788264664021863673419112141112445967013030731839745417237650702139168183020466631672278442863391151546399085074662162710306133777528460253722405227834249337525697416572871863063204315538473203799615092071764848310108548561159153373581194540934609700991527379805280234529616526376002294067674230416597531158420784715650919314595447290893013995891376881014135690748331645973387710191461363149540840747827962409251543993694915841000444633978047794362841277879545365707408894856968758187872660678403149055859212782839178596814580558541273759074857567796261052129186125834939560513174164569631154302608866940536959223770861442250449257157268434721604072043321919162291805493109027116168283668614036873799920636448604481780578217252790125613343895779879055466899344578219760955946227521277954477254974839423918623018326287730728091274865536681916729054433429139261795748235329482536647793489701524479701669015606969194754807813701162544926393632669052870714806732549967730370291637242924291960892191711698695647954148235990799274055221913008333240827948743636216742210680228060099424092571282412717779609130605613001026460626054352045674946076891454657280741704026069321756130714888497867279197569852779073306714794751882771621704108443195355913203610336835008417532875306717096498398807189297299989663629712657164669803909508101515082861248976817652450440833188360928426195217334388573350847437771639978757653706448427355381083673795002883192525723900609293187067208794921585682259115587030191744165060262908508841477942135850175763884700648942540794379610311279790866402718235353949853481618297936663740751407682582034289564456006355411267055794028111600492223825660043176924525825660746425038763394584938399074359312603215290897915429942521070051899555000396712702681374607519049664914789034730504222678494544397177227764380467379920366127114218110749761445623086674679967009526708026541553274917953744995707956887833040818060468388191318542957348818083008222564161657805124639855308929222948522072717175288638282309257029870754307156268287880088110421836475654739291638392203639903383641536653110962980645190207887016337332657876574793279506270260250998556066488777597017378778095319525464434743940392435313278897189842517386059359824762775181829996029410589618926331827714139184818387199455750735811766356228660082295112742144157615479544137134238097129884051274013584008946194036722824712819594334196253738535842072674519432112051432040249124890528367530273049747485651694552357465500197352927706977678071316345064217772835315002874957047807193321964461307538724741189417752359546964177573942480855756353594172649790996825013579950785542890518774289980300076075094840583457712835389084289724328168816830436477204190194178014029506777553517270629196230580220039332328695060229074525861254418579413247466121505391108629044418494497884520004895922750570226471963054823772954463650958323505308739241291962444714623090605427782883004657774664547586907728278966966683640899763718666135698028589367339743208158091596193094045729274710316369722735313453081066235486964375055753707660074947170029892066501611998005933549052109892566364621923005228452066147946103556998845820180048639680337777225170181330418004552899998593502910187824840279262306294836414493770098541518415396933281661523224228210144784649460220682957499664865858417284293964538685463852746701792530607994007093626160178435626033622290767879426504924223097181298856359455897968892548648846242613834091863585750747215375281534479156631029589510137858624345417007875845078978077729138145982089103214321763816106734448661649420377847754197672636064930253315388591698105679840679224315610040936858517648630133601597896878655029302230283756378790413152259779798916511667831435883015029875901640164597905949361313003867700483977543003019633316376268116439711471646230849302552381074936069239687084821847176422187418414119163878523197720068882209428874267401937976409646322786766073713378689881292571126281654992817997178537935138420720814755965095498603409870555992773036369858828004585977725806975388333881141873319142838046686365517674909116118269318468365277362852825945158661555307331888870825840392831630453218003700085016878857169296623528420670892281950858273408963538633941991087048535545700370398591911110250837394897398277142043065733120887501020016264329191378577231575151507442954494540226819358144331166567881615268078814054096571569650082839687292696569290504760435428724486461786586424034764291924795632443808739814724834956707930601358886968111986975521595961310053919183473586259749714843825405548252130352647127955529386815411509700176908146741763798811335590476772415529941962874756382514536251782682581825001279000622990647984237879028662137538592932980743711308341726032184912825578637242645164447701961165600957115770796194086127358046818724601836257078386128345267586895620902489172436435760391290722109608911939319987402447427222190210807127825185788427031310457505794944672313647819837724378453911968878005529985700518986046273478540667226376152163483331952803966528710245970649109557767282866930615799174667661046604278074751450290128894501973139958359325168895121334471075657919412572537396369460624337268124529772915973194792561094803430770035906538147082925139781502889799563846378976442732602331509302692244549014167164179734425170450638278186939543613077242750676707069255445625967100572976027895928114919217453530961947010420398435295327690705600478572812616912237059584314920018587357682839451114445655366235487142680363412974518471221567041282407952615944233646734360177836314052919402180398195995444153107114282010501658305728704814486001105283567943248577424537930212135013353289812361523510857774152833666574611709122652468486994498613026538697227144241424412085641800702158713933053399417709384699691381212826327175939604314868098307117963508261078129188041337031768391454606348461161760193079822732320575365388507625437771266315308032350498373026647373490646171671913379248204577786990852607170774677156809012628416080337814679793173588943961917542607610743301068442418932803980668617140449577294171483457862398857117557561815217155550057158019431628057230726043995722690848569749659593835274786309537016062148751693664382575196377430266033198662475284189132052014358502635848163549652107095307735356106710032730815326054805758459872436614178791671921097036123719674920852115436549338105598594447133013198907720386024688121856837795983389307098045909009272823615517940742080138113019354848517039207380875957686109726574596689284073548369783040601107585941884389901831720649581672474822332461604518331966336740419780789237957674995201677622456770974117509021518027339811028926117051482089026477586282011410456771180596224544488517013427637480404605442720453473620351326082967934415882735360231088246168494376502952499705799034309450210954124192029160510590667115308964138819295390626437348611647800878395926939129486194527829247880541840009303631141352844585491278856704880501518198867860704868941709950010931079814065347174215745131778321255713610161429635106125376033861637737101316947219038261262257775159197061261407662907568789675218574488587155317794915825672222279424889920408067582041300981351613932926701678660031386887924953248362816265100703126273336549684841332509181421492109864985508207889229291396170353792668004160548333604393905499314068538346116538556187169518423820474970381810281908730250744023936828737450121413458837412365711399085640351764671922824194489484311453804757512582435770157898913971825879717309597488413195160471086782602932307189952634857246850553201555880829637879584067935548034446678844511966033299803051300248654945629883383994328642330877193446751363426059702727094135214846018909176353970198299374593475929641783482699612582317242139738190192964759125306477472202612756723436718694102672552880442234528090004018422094279144529363879226190366977629835796416327342216279423601662065929611469565898802671567706895634277934731460886180134045161095481454194761219878316564582404706645620666103801577908860916837492894602140706107846570313783464151275921108202561402777651804774252739247783758086218975443381868096334357070750841086293722600545122133191862196169769401676171391218908238693123295800176587927172011172052715598271159106463104902699261107886146774722589144866639697475791764936588446562552410433795775778562600770316016378092773032813349020009311595767206327079592483562071858835010943445225910991008210144220771458666705915384409605853050521971050161085342785107320854865591966537351303382964303891051999700375955451343502627394540666753891411165155678754305753162389598624584936266622849034944603344860139331404957291952522314897329650628640727398603662467641356847956900462672734939323599412514443279728772106020033030701231357229643323681414425943980190985486796407828902746610103715809081830701737329838713278650708321124947976173621639111269725687565429353883142126032443127969999301515226379553147924766097709613622737748389845571937284666061793925486966715587486874012573309217293843619287915258596684194993991084188599997279995149440388793269821647450752076057324057584460129152924321202269130660963623221431274911024650739346091868494401838349161314998846993451398591098422108092499641133620927592882013855833726190149658187024078632313271599268898240792790112300909937542059857308866384805071206106118325633133143047882834173275399158439315959516538557326614145217312385684414077297100866576219837157921411078612786770486636397221956292301623368863671198172825806440467122670182952197314368971928354013769505997337719117242661634699253872496043577105073611791226061506565127678413809690922900302380507349535495655995049885556905260431168901980640960712751355457544301685328069471501761364631004621356201766967257103072371356572537735767074397521415979456776168715733242093651099858674956491108012867525511271480996135590347815912860865606708485594015502973243900371698181149285784186685377079898715490545541055254828140957630445913384293865174030961292868212797412723187126135275757976050933247967574103655213489321607108000161811538953517821422921242484488374171356529391640764078620607092972556807932257642126609850007384609530276922966808118030486535295026566391879685036964506378239496233407046006843999409371610255336075093375511977826686983712682277432957002068375228920548637190654913917290136673614601700973716981789941442798100281983505660411941881825350804673358570337396076014105606249993685993363184717840980612513281866324978051541022114608451711348339793587974873717766090676876789544929295375630709343679475072630639917459588190525609319119189348727186758868917174580602794727208884902500872164889435815526477518148775183896586845134369640674783524710574700726428530319656476117053977060538533900776324983138974471791251441355248699828886705270595048112236489419569130707961512396603551948646303276063596867109816742208690839273039509995932437781915281064621192613841480614832088752345076781131790395302193517689482296136325433821603291595146649254131610810023950431103462968457341891551694773536214933285780545259048903747733227332485268810887588687338811839748466442137319674501576939871946551916430337802218480794129858864172405774536821683860049458105213075478959814363145306482276471974757058778475514592283485407025052386527827181799630341795214954590032791082109357696465362507988761927762443547301166487383584311548988880788782245575685535061158181216657367023037020967849446385327779583389589098488973242574237301686565777426365766787510465646020065742538749125179626280327825496484241420213508259248033597660427437768328039188115818241410990931122642530501386898057788249936242892909545289239390685130615998092909718908083212263831340660581175191828365993531128621820492283929225064423969034580533868941064973592123748885418399530728675228169497581130266292842018792805958801403017440331422984940662929676178064332545344333667541442824717850996478181548506196047993763658487623607767695351798296299570142444103436448838890635784997706865456916585580893487877664343956753969712992579781271217232855005469442180853468124538099369516511964793751385057376901269853010597082486021202939240777455382492914659717276228002131793042188995965108620724346013355172517661008840208991173667600362485723696858158445820684373556021177389242361460781178153152116760670506959365006107599807291984441497753302445669430004748874878693585718571611859300280783397682111376264400337871645056311089141789620978309591796483818358954700190949046368263237517536822988833832075347200507938774566841555267334243596804791585883703505137463582214867358318460372061510833612568263567419879556812840411653218716800621281183654359617356197947476560288840101486096719871923791167482137625317878723842521634269319331114788113020568622520465317797098845027917172951037073000854953770194915904134786296924810367267781190778743479344716539584027251813248165091623258556978648831510145808517934560023992634428322319532800911450643869625800001539081152146166006613172124292474357478531701863367502186730919798870550896683292199695709859435576200084705162362821893780970478137649596787443313433132001917111077526942207834109148687831102464973302662963783132706536370877681637392562555882505985210011484830485656281451073364059054675432228844114472679120199515314568110751950216236378196160942032858500639443367517167215224661356662531016083053952673298232879118466227224158096620644339558388729237846542223122732707601201383268206602556060972144471612557362673225122893677670206188715698763779433640220595324139416593842750850076219819200582353960413051429656320184715367844805781287427111509534645420712571517202768679721180427167918956396752876934218684246021061187627554009827333896502524670716978659518808052996480254637971663014314888503160552264353464974870658922234175936298629681781493960658358065913634676929498518576070517155972247943481969522780476858066035742599245923656294487363719126845901836299986832339832945546756003393973086305790361086834988233689690257038007971557190290702638099048854485860321931620227070009376542641382689334225493921700932912928455306384575594052313291037451513131676601111008426458930751126838939020065070980536027859342082945450486281825719359607266258430826627802314941993034988147044709074422969199054343510762637488168017782395329655694722155151772409793187512174607576687898949197671412403802720187288654745258753688915676874376245261652954666030173608248455440343793719413592390122535979371344130550070007987959762549154070129834067396551282487773607481693665048581389302036090276335641615525664416396233799770392887773150119146176107933987187727079638894876656704413951273725081953857262383953150468530993206780759718688830891852686487314088583056705369827685966213563489561532944083033004939570697826010954281558085752768526252089225172078642506199915956909554977642367562025704977385430814913065689358114788490751620137293358983835624614670058723300031786953973718257070722057463500453284753113005445076788521396527755285498809678536094408316122510249364348678262524926014174945163501251539935817757018391157756827787331193859578587064229657228412090425566703620926684110281938402264638261703656134993085896731793402268622024517508672851902155807621671422976488069842080748155277301457603734107619135227618697592996931633175264098964186759625848108602329189117894671298329464046653969894445532807804346706481222074660796562107156964361556308547719740773176881170370390270543460087649254351452674039449188408696012705212404193554414785416465227742889607241953526499854036488089826725951421241430464935323900254083358802906977415246290911620625530531278458525987766173510870945262042317173479704819328655582415754343859677607470166208955123446972226365522107575499034161827393519639784483564132404636155345183890562109545816994624507358629703623271853695756306955772436456428207364401116405590133105207550473433109867250215871322843507791143257129918852615117684565703871109107820097260910332069731161111582080057041234383026405418649590462438735799735327845666685780713084022150520630619839013258973141837294756705725621025607783729426500560818102557362898926245513514171568747628502751801405178653605946776443024563296122357000636615588206916628266689969833164606316385604849743864697425596888109003125444360693189566520395132548882931744319359227772534434677088450673219228933502526638405770723501773701538050166350949347080757337087471716342546120408068120937610905894766345034946898123542085847123601572139023673152297062261991893360188296637126288012285956073719090060800326728529221695335708269122172157478189526312121210841246635400045428825409230055881829022340751675063302729970378469732783059276430451238457765503018808146394121778986764170939450204700540802873130458052709196905886573538095628797145722441126096844709488111264184822335742055663827833036711170171952939170163369998790097181358250451312490586742747417702973545740799333427153601038607282859807847823340785043432258752073257785305832832163009085808561728038398264860000645023028780438271322683495037886027032608339771521959140401180343686215262138577398328800467714316916729073850082449695054134262125716739863672586636967733584209813942220589853771127022295349924738804645230566935313013725516523540681967367886513132985389435287983787415352019269841177842600507873924623925588053093063390433495127630227717113879319363899072705892241985436748593354532512850986430302353556767180733976101912762811681003389210265977895764339920533268081261424584904483084810177970876445578637704221576003365062658149458878965764059423144443230749921339522163021385896939941721760346655567894941761479527161206060016891164634434310544537326168357588757368024006239873740336759160855732071739073817901893314501768644913446550012061537507759622305533134305981456956678053913028387160572440292368804654966097351784470404512611447658546746718435457580128051828834655871751930550164987320850556260928619867939275809882138681605974115057094562079082789364960643940751901765999979757032861914341015560995042220552234554621802846930981597572976598993441687045840772260376025405597048313030906621241243094877531863494079540764514400744862490590511966397874640683351964572588235341008094474152917056203626248748706025872888227301134556895922596221150425109808242098336421183761359131328889216704806460823651192252505715953384892551400945132903709762357237537061484915281330396957767819341972196829262449743379774139845710716031251170359293389848477206211688970803888946508206873052621859452434088279375430043609293940680626448193641791871387789334660326858466645551068881667119699481329533844521881744626374394672426950568108459842405758147466523793667593762614893281838744325563983595197484521371629039156478997946302491602925744573593952873857568504297301215698736496109822243216003952854868263582591240349449601743748881561410294838963121191277476780663869913341315190608241619177971648426388981260894537284610355310263832030988563131397400174056498264403220364980026794274031805387553842061173087881937319894147653821869445355708653762143078048095486480886308604982865318620154309793397158554104084221391307076965656129222682210483653565154572560603208531084378706566023779151319688627947925469273090422460613052266429052899403585358829175691559152978264569860379291147323909859083314051283843168061681780396479571568705070667380109187643110327365424245905874742707171291934562914069357845013341901292485484684090090318952672317681200973253592746730160581995989794713465360868381939139842986091240515925057828100698945224051695875286787299916927405032565096813659574891607242861129204606484719009833271714898298992527662818212458210512674884509188463996470717452467804845643403893420281329048751952730016036592620372555293888604207125259079180790538355704014894357986482808322010246038188103775156271877769451593794986913966442179372819397334561827376677711500196365552416739933287014540100862092406441735116297263837459502632611750078868421025881311381128549993351248720847610551671905938632592007496685287284872881081839206027813358902037561501604189803167332806042076299898888798183274398966050257542935255643681727044495472249209261152375027071791809832357314496681421871704950522186517711534289443934697020997642329126878630981811098125747891066910004346384397381772663413581167830093522733515639374851613573348364855291800950723092352603063272848822034173204838520065394595642842550685066568422603637488919252980681391029001802350090783090406616816736535231974054006420427434249977721085749670667364123608463243318970007099452549768959430633216801380811439202999554987249155559345445990521640822816112856869120080174989874419596038172498779060758681987780003137226240992609695618350783348702033921110061863430395144342689273568636054068882996431375948859709661537408929587813987590085368088120686406442959245401467354447336918620731024030451716800057984589473892479327024578368949319570381476877684828926634327591777560382873009968809007944411613573532899433452107632144744674613340870731532509507373118637531332770871740481296985801867469972564656539843912285007576802021310974588924764613811778052243669687072825821803971402462778146304766618042084132483772387664102304645225145562476156744588159436960545823913693204847930181511887275222717101479538171705011408177526458520115547991602899969118198865650937765375071629530749620340386975898238945565788030495175202768587863610068137450005630019902510944889355934410716255378378492624050279246870687148663612805120720666876870709946708428823926260613967405932364295533218353490751517896127854973866816754730791675254625506940444777954463055685368925328075382498621301989522570379703603391469016412277879866544757447807209193932803609097122963203817941132490253103195856720603400940048808368699302737119171226386446189136228180141080575476010329495986128101527837827949026794517971196917495284544438451592822716894245256386097414663426222300719211468151592750798958517124074533760662071595352840294464175466740308441426778239739851200987165297599675060944276902678847081547774874869977351027299454502089719587939049558007776169032379953213288384056336088243593558295748663759118988994996232165242180705977543074908119926224736953834894991122723933764836509064857626649082611588981388501437545440964996457298135329834079495104524217327931405264460912447370536280381784851540447696374695975102180945031545260069023481173950338886380219848401965968166475166656974105160463850364330640529150399001916133745082034810778305701413704677545169468566525215991164441207953896434071039370390996219960404805440342444109562541800336186923770037650364500585460992777745712528123710714487338323252829033357360566380820402839347552069131786699483267890873649990822130297898249730283438283448214672551270681844514099711215582865422117682688265180299786668452381505475052524749959255223814018193127894304685526632776731424795746881966792434809933082213126467536913669920457685411109911722034304285715196712143768888637197751723215354693276376547770722075571151989575026688059237704204858408109195869914044427413595192563769750981106811114710124459220066064682804779595267409015857002142150747800366773313548176218573149019864590083148837254213401517313687534977955164013407359699540611408688371937318599734084979375662687013472114231101141877013465580226757194315818277984338213774148112292665061676332046038369298073411051469236652513692259187381059514271529685698806908854874854668948503800932916753775402853436585835472550624350460037663317451257665346196411401262078319401554277197071516439607423376029722362452195405981232844734747774365235166617694569372592880871771833979247445322455678647824581275261816455928301561071324115382337751280898005519928687074584644678626784602436891511223126908777523074020248552628235669374154478631132114684632962803773798841517354930899797739202677116660990270180836752265132791336297495281928021155022777825576260427778576093492800550188925159346334348808867132657846757124806852332181074412199602553969631193632384841411735027468791022299204033963200470522849536589991645656728639557015370229385027242869848933194147317897447701430243934766106520467807171989563492854742564182634568032089616006595775143407671556264523116386021291445587777786543048045968543160138908551915848423334317990991441350555617293257776240005926822461707998883745567716133933471683866462297080742164302149621442869543842865068283925658234792597926327070764539588522837114031086370299506224078281446447120298214620697469104883988365526318970042726640508903947296054580543526989138773826603413414156591751023907910225432162776060142898519573462035267777237283116140300127904583334200519660311982247572240158882186352284860612736868112948526628585486415402046194683232780700601675958977753787892691308365957658054098755202655893684182886565161129137499536513615411408271028236040753867342360131131410634715660551737349221814617584533394864947689825241809930774796274478750378994008166489800963957278568757214361519298929183307287257775006326227332214435214351664386068403770450098116454052155939457357623213718282245374243736459431977389256683902232954655776901993406586392284567516845370667194405644133575846829635863294016953776493308594146569343590549019502701885561173899308164933717691804529880316432619361087508606915132717122916259511795413897073572333324217366740047884339976659395470870935218839848844447546728807999984373336387846880716800045458427750118016772598073733269915743452009164912600820323672934344882771804539344408036980061309755199299425754941497288122946264434787472548739459262358337737336943941176277498526457485086949403304463410416724912318859773566431950329594713509620508631906486037720505617172425741433984587973385400256875486841006828312205534196108988920537800991725774723587285848398395463951049944582738070251560686263256442314069550485566228826292259868519826355669884274507447118945538836503161580339678695542096137397934540568084819871552776355003595393276932807213955192611446435738331313434752538789328010256188766551406085154325576833934224857127825299589389382586787200768259756142260638174836206811154766908043384559951623828023779170505963686980770935214674187582893491183224202753316300741271398421085544825150995285789764518675279488199272260825743607094325892406896412580462676946414626189749818552413654734524854124200024218982149472987828570712760091859394206799411202695792598968738666971019389443601580579446528352880880816178221045331303328201703767873152805370088838774980614087409813965460603245076910900105294865094540908176204479852207790096227377094536185027603746445968503919504685027158127053851127640124360662594846448433388046956373909428275162980128825112318185393588018524485843653803561930324873863495582435805256212726426412022081809174083643238281661181490342022696039621123289881509852358912713419677010118372891097991781842975912870058700267378201766769370903648892475224920732117568934067621531003453056787695755192023408161631205240182468432208251929829614167578965160479404577094131307398085118336421704193340046824594049796126850161280260999666894814391149215112706164172383709965206174151694583975346118669022754203855266076616777569016850351198776782626809152977945885738895664662709353784393110810737674013101789002380041557756631414398118160626238675791093565923335142448924595639760082174485958032743776750848796210263060282182439899554853851995843964643831404073590697192154064590893124126106467390855371804929994618719505452517663366087091274378008225750534879412342270885412523345997416946718669594141071646701920623859072374005885469921190464143202800184575450670661042838172777370394128280404671080731989964942029192373854186200199221912664854294447086727503924528067723493840705152660594140829338198743228567139850426301420846003478298871798397402179708538897384939587466459184717438199543888789331728492966568327267124545141142540619005131727919974039147194047191388450709022679597794409994418436390837400905603436533060584987942642899690085731747039082390562887238853268501319201653587003969316542671311643067767303044587905788287066655620615190933450222258520470928225059470309172082693337083202799217850563804004766254777532093044966228915404614866726924806082507897812478571720195938016656396827277001536666005085883056166891701983250918558363211898374116966319377731770583140143037667074362871665090312609423608655167337877311157871296507771126487657290795042538634027909582950994196055623343711737912912985197102504456663257012565680293548229476106970074403654204267968560402405575922076414831615890544776977595313969786143805100239696633676648034919810246980240995649699727058166505184284190446853969576960965323638870638284968222213411610138079783481702121815247879622142732307357774684459615827334086433681636829309349813511295492306393109023054259235609498266557727711373265846670816232391304366699340736266591395640415835651464217234708635562882049103865947303098867870698387666821416438470136837337865026624247199198471501519798928630400568637823863209825532564995495633262585147442052253958863858171543590946778855477711088852503161371530233690537956857742403433299838972339508063720898405484330822600504349800240022142967052873573579399790165650549880536551902239883925466201959303785936259511299051555058906417917594173855707231019087731873896278240820562164871114641506234126275224097155329939779509542364942408825929704935663371492765898886073407650267684817192573924877918693666973741166457407333170769912589211753719388955252152036885670604907481312229943372138452741010677143329404647901741253781766605259393624519865839378973370898337042929732821471782521102745627091019218571243643477685263903290744293267034340843731608243062354068170369488570198368816703261502829041065741657972153934452682799786296387100541370905223082569898200249346794891809664034021583578149502869778650240236149270602886442069004279896688685672861499242824463547140006541253873068245858252389830289121207551760182485101298749181916970784726053622840396210173594339206954423705173925015157432025222210863094819086315060919860660860093164768778782828138208350503632719760502864296410193988977640348514822044663022269922148049257347081711483397463557754394652797508476307779056152382276048963837140314351050237912736797288360506272850866644659072415686187584458887914864168980972217291714140067929106982262713433393891300785205039660971997230000834728473185783889645573481758444149659569655383825645653179217972103653479284556981615248285242706530041998641819669776766313348957142002813557851405806546664550079049364188974435778811644475819557499740662326286267052760556665125100854733494059587741058339524245517346981455389951057787715607669648165237071813855217561120740502218717937869739906884525240610905137510702583766628219540376199149282827531544202011567018772871151861416216500942385938016020011074610682195538560616462573572220963575451460180613888010270587158928397051477424373041130980120497630983042224474367063128981006956639388111242474037597008706303790258748736002147931968768055310937003563140935057854996525065640398835597459668665962384516403346013437602488332313610421096605810460568337210923092045533228369161010501313558842593897740825143035124508908970445818138895528822437862079109344354745765023832072254632810308928944668829515559061859912390407812446063407987150927514901186538440288855862266518282176750168524487226241566119310957997256930651021831994105057653898764508376573782127671836325787427387806664146296245646098893635372751131773695834865257504912054850908891739767747532739713832485389138230645122529102739455421255936683716696653029369701801422351563561011857635424492338852322333943857681377709266987388428122969278441357730539628854151172007610133288716310618057651322491456799841167050001525013946684848297377062492356670985866801209699692687409995505739640247577359211735420223063217020150427243827666389569775760860070275495394522778181826701442567644858917935609195296903271820170022894092540766177904889896182853109603332371857124774927690623803882223642710067872960211081430999480133794112977376909460929022935265827093619890424158029405585250747290640834380070836166096955465157163360811843523984715684718042780150333399467552842490056572911485864359279990924822329307597962290627568455349087048410955464589245598262920873287179835394234850579273929981378180034244254242721733759840252088901238296432908283163357061722281244101278336245217219445842932183413170541804566467585551852929065824087859078774063435595202096027819842068778201373415156233057782472311005537334149229191110037911566777110681105470169165483200462764806743198421264630971750564523552063815643574999039084153274554575251621326080270077632700355071711585373349415033863463538441418320708542241658027726774383095455669282092350728106015783030133605874189474250674332487013970368535913414395420929270229967093014698656784561935093650639791228191870604787440553063411170749490185325600294178350711683206815672122245709380529479749376122768434566058053162637248937001440072394690428318957034013819207411228196803626044999695199662521803943226871848660289993940611603192901875426912555504121478702923966884749737220624443900998762091091273486401305404255855056202204121058135992763462306601614123177772326225030435268211866461402888616686134592024525641877627187372368034237767050182716270416592682637176964974579415755349233113529518181332195421281576987049132175577433528640516562287108764821274722121313348877582768855195060388815905810085153288643842543897132907570227817448069599555457084064095526545985314029167143961801106843716196757528581374350267577405923835981343634488386589175658873141476274389303910018039429333057585364186724427021372680957488407298010330957507899721924448718068539266275058714250162576590322823193020257088635694370346016510677354898503210091308182763692596837681222131979994578320868392783307065965345892479629818190107234757908447914888534129012510121250662905855234557082470540453461894441850358055320567705462849123802486829896075804399713803403050059438081725286974396812427737627786912091335504924175553919239237615878032651546979253735125537308221001606308166095205369353378949600828251658857461644663052000743949035070712238747175923003235221721754022680109291901020830774698208840989401405743038784281127998921069360379584731053115282811756768545565014059877578183346641735185655053720515360968062521838627369747345952730071762770534208918343689879568064256663064814132928824139718723556732218960732845374219908563101859005788505491630008724707913553518032610601986548513532745287478178489510870621764330720071691554610997545711856455663637208962222382933747991573141543549187206229717160603962150103460791218778732684364746008092148940723612973389568615937978477751741547041806596569980069239055284671678881273767508633569338424616233110703811055652775030541538018803166382203071174291973827450125502150394783952894888191027533226470080187480006195037814876104951938788629246483493794059082031580905518153343603629683265705156384143773203458516037549945431732271694212205109572837472530003213856502767725925682531367662797330001701612205816614748778471499829981539696568722910091076653835123743618692904704048919571767717166485292855888664632737574055100121458960718737697344498588429411002654410721693070039735460062373578152105700409299784429883626836155423448708286288343126168426976031491764243604194155806496433049603943515684012165704767949556217427015775552358284937425755554584548020609279096287699726685653627759697433134452194812843270890115835042016791722885887699097378476449426609031025159149158116106831213205355106489033881805320983661923795218092391368230898139072774554892563960511251645994359296091213400337135035455929975746276434787722526240039614691350519303989918816917956361611784023920687118488668490047508986384238914859090068726153262688049453389314416879369638360717082136606000752523323748532230453199076344853673204444352511063249201714843955465391748866633087032405943450103118202425658145317792974927948982034287884582105250964158625755525446373493096265447112544366167607345492061400789020330002401572536468936425340183067857933816506461735355637528111543440735306311467926711784231978460448799446504591123857759950902338030756248690796713452830003681654271037514136969728015979422529175304788064769439986807592898726644162734465246362324203001963909551827078119771500096853692872575226681644378734521344358358689949454924723863777838157486385384937301841093983128476476390153513951635113015322446555599602849076878059890500848888826060947441790669999744058752623791883697609682711375440642397389797448553550086849030520514442577271397423256607780120712198928353026804086189973831009017113938779600035464230544282172759430361395199222253068643935836390210297255556684948121181429569703932350251539231757441100875538779246446685177326071343774459255999108143825985159784210981375742412748825496847424401731149947774167518793235114342957768967164962913700822063154755450962438641062478314870796941173349288654852590351801217890624790835808097014093800157498596038671889395200552540634556513523591453588854336685993517809514372924034665128034272034307297766474587090752595236567239824863104441131895674203597869417942286911515802656205427840508517453907163705709359143147300350574980300345111659995632605581412592988914557694135133922765557938635582254773604102409729809740865984885241488427391912257181424278659285842267580136135663795372690822858161585176183084047716272172271466293259790634895656998892345883977783984404493635637571031343717571171204325972095859434984311327117987613986104671979667206561839976360541387013656352339582918008278852510805555835411016297705309128354952837807274125097936457419045654824566994262751191134946957995756428737068871425537768218492473321628963090421295524163415399499292420556186419231107410290810398102390691097209283655109889762100224409467618011859294753332029748993159548379230358894139473704757467973823480097193711415934213419653936768001050407561990661928689919838064923609024459824258871032365911864680918088568921791169629660129762232762738555475277751028613302827067996909475203658188649275514724943834816898791296985222857704819511419372499229985399826186836129424663671941503597531553664693831619231253727215792413464165843230013940822110548871052040624319678536021612297101357548759098216953977009220500175730430852086228592606981216586312167988287672621676743192758654310082222366365940125195840694565230632892854711010736930360160100338190693494746543230401369144511857497275493447038975797139884688009413530684301730805468755669899805124118628404853093457632910514736859604143159147248592857449244763762606219438107052063359558234273223592236677469624117576777088599464045699775791509165000454586764038354556881868298434032249614306138129739607860018736809668487725703960231053119698749737851711860527716693451177617564838442239692181530821635954017697330179857976698225045294183307706559461529714969138756907701766083376514232094974736539377956039465580354158943181439246071401760324239717614883766255805339104773777579658583195775031077586586918044936799047185202406687046444031479454229391303909823370642836052503723790524303110581983596976847455345452762983005512553120123217127621997647872457241465361668505125024767083241852357189597204891524665895941312037799935123841129387518690719092348449564968942449556123824309225689394068891497220349317018481807426600053576245116877659853492224600903282809059871117897246123057636513761299896893550246916972468600510938530982582951728982101160642300969412579295804860337944603505156580129585800129587137716648473183698714067116674801447871442461224536950805728273924079504698091618539559325787516044713708234407269713348634745554734186163251067317940008984507441352776142560428646007522995667839111737872190843252824056808549661113750389562928428107664660634734446065670726933859549777792557367978584758962300641699765434255921287715787624155342514944015426070607811034853729477222770764340349829319656055662041121594446559114377612369720958208705452847534471709536352640534704145999093371021060991994438518656240226388883821737840562171507154526754153261103227194469038110306232727411425648903655959550644554678176543971141774758201441290539825167099278956101813651436834574752275710618811940985873930804788498631301789706565023109373814453164410338797814548615087328640494610705910269842103955885221534756334389486616105240861179270790750927648854614350240163531086797836328086473673212735332626137802043665513988026161126477148631637863719074971548512189182880208318895517016001538865457661237202228061051996186855730776235660508118274937849665493908101194089253730606615973258270247428952663664405925158588097528857352196637014668008852545566753734877035042151990555127140108236884052162188822441718597127368169810122361531420477503668493096818255941616016421627501352461590314759997657192711683192526825452324376150642757520759286914065361150732449830042225576460062361287354757217900187936689844233214974004454785796109760728896972347978451020571515829620791598669009721235566075177240130485515101686818553773109321453943058983728681707177769660243699262915969881793210278752988640516529963726136546929601688258460884694913720217354994038606496171128393523909814025285567266482329642825196157068558195331921445404688862191352618706408868761455623110229982215436667315127369080190250873598624176385289240270124865045924468024380017956244765745167557700056624270800931717157170802844572976364203836408582116912310747555736905756392184584866976359865217756042576393604866079007092091042789008814508551319106661334696526295284837028450954435481658551030763847006904279691183161651033137869426849084396768452667459784634479705853675938965383065778418234901517728505081590263324705056511380346319268209146159125084216217493456103079732243036873141458157743251121690224946790363443440284799450247106567601518326433379427282235615604556902918160633317613096653808979317805633227666206271317806820585678412581054634245653006333084971356318726583895909653507445877344460519638602086202315333708549772708852390649608883155070269371027473747110647475520682872055699621936314157344939847987341839277484548818734168903343796343235584545058643909027864258080270287828081093503621325078755233715342726275773697016116008197007126356607117524770702302508149290137781724297499987459968709934275480533775376423879545908863503097517050284977793363090573315898855677078528811579579010163282426855783406217780218553423181117507734725403662113533355811957018777282542798111734810456303744305301887586527845449432982023056626765145904832237271299369678751481309757782526766610161961142829573900357144395726364337943895718546908084218673886682851304944699868820020634673154142075521735049949562061683513341538575423638648339223509604850520618508566844937382788882805967114360791648753897687289909406721214923302626961096852115019889011333608099607858945694250207926560026058720774495877946534130907070153784835509807285248825387158074040172311357801627646341991563712723714667912164867922150385127822521530546447949275168343120741685252735436972401044103942444807311574474282888381820213211061271475173511258254826531960859705170395087542780788904396537982655544506371744347941686004657314981233800405971768624652692868016557823613775483729121630547631856515875961880997030034428686906970455140542010468499980538510034808176778180551873238260941711419310172831137273528964245548328254900950691229697585088713603860300226088147321061989339104047347604177468331389256866522722398673882477544407410429934730465595302196891000250686946443815462146376631291742214156309521179117562080387371580138625573154467163088257914257397855900613008880387238503625456820889978239008897838561389018241557230879980378261804857184756070301495728517277914620169021382481383947922293225330925485964376278809134623314793531785779695408170259889348400565491989707705982300081930028265528224662008024567118060380300307388159434506458194369936407207914704262867243341582949221638944947678853387366154548459200563739682274257981515996960804223956630267317063168332107692095830537859639167268554363466453233762409095607955298362497330207927366706074154219734078217692451444440533592467563848191354525705019403035676080692776113770835088790377436950030846018419319216461511690040643062981378418181666005832915538998915724356237325092634396486473500520429295313540397771262026644865620709022333587381102809510916815592776956522225137674830229641333072949581792625931605613873422489760112107876006564930446110766484133680005083497248975515191790026978349128997668946784093243878923127776739510275353844775054477740703697153237484728832298102105114677220722988919834141120850150460986500659453403226016878782540923733370272061018378495515896821145074082125593933825735846776710896548349032463773378475947203238527711057968303121516256530916173904468925897123826954145828196920919153252323787664628497265446781829284722366423407671182100974518909989321049452719555809644846222650681928904143783883173395731920195944634496999759653848370349316722187988198583950247962460926502350843347514940044103952081902237852929332823647522705675214600508625645514471041546063767345172371570237801052286540169383265526278497701092974229463795005270271441604540239831695307807514540764356232366680644087422293842686902848874294684941027652465643136855590112930741261207908344340415901493856790438642501249569767929699740487810477869743144158176851495943491742963617547362017805889341548172495143166766747538842127460117667878399747171884985612445191852939052740929567336179102804817322529022345751387420317592811215476652101691931969268840901343197481430722691351562425864831247665251636916628312367708031490421554688714085905740458901461865590815115439398008868626856897397182746983537856806083665767427077470446616469734152725168806201160840732481058311702364370233237119534366327639098130851791769974353025933410423777667996495027153044310844760365040054266708277459668794501422964095431994904383231580384007094827596637316915763336230225120748557408162676922223697823386245045564413327779451133757148706364903042177974450222682702679497173534698607191886302489540767426383515254005771688013936447196791487624127356112531723803276888669685081567116649848125361543192806587861995564027691728207125240247733415419187537373518420023659292610166046078776483515177120612966784286003713646473351822635471315788703414474698028002891060931150605520444873016452160318859026588349312555903608268570365874207929050739513251462362379896484684503676767365827074194418995022681145574986787119104494366523977061716962261607755706226350836713388273891154892516841094497949194820275222621970693049071435678041906418678799754413478619356417998304712223018491409175867113814483844787336612238101017995388647190973155772252133021726556686981208201186093095130172296931486938815023297946607125751553429106584706821216858105540930659473906646250179674317484384502167272571564370222816290238257708903103629685112890194890744290526149977616149477933524377791528341820425540275120226206887764283820841238836546142724671326741962136450925086470636623889889179598271631038801212613179860000580158473080492781787005886863971495021429520407753304278884973322187357726838319819252220353595909278825724308262506013586287429103960145454113297701811252923652774886645710691295921060599603633686079288992337003343707706200360971116320246669079999199318163013199746585484107002301604576815345139822416143065708383366916388406567720075076115485103959427133340703397797651735584960997050737018580537980650444512557296838228039843408238263114209842831698471160513667614100571343296368465015382467499199925119474429882414128548800600544063562512086223688420192200424811390149459722197543572387486302788767178616542015334677098934092775842540618188376245391938165423183657824786084571434208512153630852596830469253228569856896033102217976487665157004612968261372130387928510504182099608008751463851810283244806040971175924669912523188943934713344124202553947979478716173101600348907210849411803530270798051544415088845280563696378881980995348269908046616036379252736041326263289879975922993733408640523849035446972223721453056027483803010191583904752556940295987481835319179217987221357488245858227573703849361744714210069532130022983956861322192721821784050140498112415596234189168876615891595457011125400469994417862034176774457192709697639722101858301165274948143363051151488555173717438285522223783914794158541568944389157194981407835115463409657242102593051019178850880761351479927112359084501351880670946378360792259620867185299824537897460446560461865136730179073368619977023894710001171741040161066598264242934143794482463551544512978017402010477144471141516447579333892893134538234063165438032744473981892101359892974737490483497852342063171178102066469070017865492444071449458057610566019044926707510852604867921213498314954817562801664229367548206642906737353900312986605919470178696133676057171372554745694003961061237631230190418295728277056939117366689380843942297897536183737388613584102322116317702026673855825587242035651908826253506291629387279465206658147993364413995536645953845078756924629602408004483259847404479803907913809935739376849869714173771726659828074341971402739508063108662235598506939702703196267614902607937358341820904440185398922199946252641013877753332798789626888395668754407192890126800290436475262366365957513958024238493528675517056603699290902230779390788691746403481905527065893094697625140532470364872860353651652191940679430065285103453489250742878771987326283883091881039603393362037296045718493843468098967820515745065297493836917150600199630426721871354721873327491722514080118670691077121987891542038195246318542515998747182012630260105385510818952713697970368404849208371234394852754887359956835214630642119320656708312016955376330131555615731313922577075613231182122746766417245424022426127332743289358204812506187230228200990441990707433992857681012465215872750471187997723179688444702785509132840070935882449355707218983931063132851960496640573930364468672214514679666654696277468713335388379264062534075592683295218816122558680170731193205687940252463781385853624178620027250994536015934721365832198041810879499348708781897311011027516921882670491247076608720924002382657527285459285368874913359508616850677674253193937420841721250493367273400104592893646719751528680047773049033082359670125382268558600138335754383717288892769419980916556478038208075113938025305971031052540196799940182573590274477167248197719665555981902256889372404682303540102637747789924139259888002786522301571039845467375667847603659355177766083992657543879150294316242444633264246780477582756280798827426684285403417042814099695845362482806272173968085617992007537888512399837119641063255078951421520716225679838335343142878751129454242687977660667986622377465399698462059582808276132540699131320476034387398824883087705789037971227303095750413680689045256634513185677329784868416496366243464248981053139808973155194040590362610253068073754044958489456109466219107266204144913376533592759878854008063308771252449975015486669679219624394414176091236286459676569284530560758958742178772140953974670681957910345660324604302893066606983956587499798218280496268811055359821573823914446629305148273749094171623980496410150443741905356971678874271942904688639581193444157179197335641349035227276989666894000626539602903127912932164796143111938494510242367248676021688074690168600812464134032367307285843813439921810629839640107894820532719193408912660295159891214391541356023249843193597487143580058742820706502971780796019238213281469597144172318363067724850492717841440505907476909441120709825220645121735130950589503439264756736190590888174775422965017047614942393495180167900318036717725857258132665037040979850039854759712968868998502424409840827507603404449773557647863963679660181794029587345764242109500115340456179429880264156793267356187415040347616700710930297983934889248951906000210764314888079035214743211961989089958970205238522605451433302438164430049349483510170503614620034373596783268274594135745793787256189391517484118499419041710132719764404766874714191134662762850635772169583825006815952433555821367315986762243231120712950956245119122856777974117438124114846288266616450408444471247978676025224893218101870840882434759619986699720063875332479629775673532172583031987353820854177826056009205153116578960541960317455610056975636958556660472692098304264439499398756624483754787980437485987408207773040597190958754085764795319292114337589548493429664591317357607093813778152038490736291411410801595133838318526938990551400622556661569293506518937251561385534839069088139413442794109551983981330963503196866160345153474338316530486070233858601692703217514771468112463528943993147373195147328916551443888504284488875759106973078313055448251502541782639094762368720923740735024144448399142339019976679934036469058267074356351967494127678531197823385601100981739963728702624791657704364911376976002343652210996400677035187181974141889620387131782719568135950548854486652889983174253884457986054292410280605782184814260258734303465773581020363606664746751256869161219509279517192721631603836647432182823268761927742579035149786873714928007799411200884588152206725407026390114146415604375521849229129460568564567519360295923172401729665644303842379329880036695138268800709929832161405132519147122252139090941631961290960012165387055990483987254318652673827302372726766039304962986439331278008484611624222032708202757745296382914789661370404219401834840693269839944866223594921077873453407874193307988001103656807940678651884402022717153738186035021074683891071315863408129076807726678653384602000856374662442760646516994756449655916327828762928054119508934534106251831202042247306967985631273644873843836934391347711622054029908211180486784422677228578692579947094188101687181057457259444646884841638696065041028173313994050684103853377480501237111515656404033259600302915467870188285384251514448315486986471778360946305494319080427851108462658453115705135314580033913774462367121685875489815756988407028708822930535711839191939076647898626658238830407871838352670727051966141235469389243685108824475855155415217385979517721991702739046659499557687820780751085192089662939080116387753958598058669164128256123826387251021196363817892459868464611353453736213615206780718615795586751698745675834110604944408276782005179881739666651580544925376376747165098114028490105190169394823568421017993138492218385021136108542184676668437463894215267086113147095170639894657769601717740690963673989707247263719172435029051824894690252587225522093456868934973425577712649226987586683200782371344926317470905056504664330687476551919263445756319516384245954278362394481565962433846643390191198352718671110611903621674018566564274847473502740498986856117729640542217851369696779970072746127810389145168475944593396145339589028085445756247140118868759640697306654491118549792674733669321584549807339324329069328802425790722870553156033574762731185640578476181012015678147669120628910102186820735472964948502732999048114716124639725830285158522266998118269861404041366997773988785828023043624344511541235916964915817219988824267842686291598942727130483928373560076423252614300499366055584911090781921170689071427068099535633256239089311119627680583299596049339866374006221030578682852291101713669858098263383387681465221215196313322929789325899535405511868328554474144873471146255253554230576840287838721304434747921046221855724386445213317575749534190535550356334130124673991793740234366581504951529998708371340057206718948450918057352584736280600970137008754708514823263457998986032190950165584082587517761973537266105408663525870200133776481280226446785982932990913866328937331278731590004246655107341394380439134119197580259636741610101962261372932859850696216028504725163182683351855405959513516068904207959725891245813368181145585600285286383216498148221093281080526524150731073992860619920586982216595880759011417992798934414620928949132319356441171713433041050094036654374247428778338918090041687680436478213205976672647344528464186309625452357423390340299581776589319807166211445983328068169289509777496369301489056223295590874888471896619712738703807425328583070155761278806613517337810320502292223398605505631186283813495314501765662119576470201325766192927251971993248926909748055323634405687590715469079785760169900660720585909889185252752745428199387623485843901716993241994357474868202433749798799870141691202888725890371432505282091206801437014563602937463432822524988969045316840723089979672156427344698221308461334973227661295290305405121518276196188612136555971687652612289332593433465324655851793854650481832175473811633345687415545197741761419565179264547761289627826251966023998053357935559390936722117115279749117947618386568639300985443323558996356046522753618121853863912698946618456596287559247242412913607246718267452362053210129002168657483087140457153709055260537805559073250727102215411447001345914791828576569893661099878761329024946990623499061719741239112828531825934851439776388531245309988377745119511791574747508712685338726157167973399492630435777323104769724849071619093385613260345587621044689224292344338741335301377866033724480411193701322812951625137887860310795011715287957919638040351633945773006603857762969207714776440434033074946373323441252012288171037438336975495377036561285893627677473213316797990178012272147237332809836162272671733210533723558583717864706687631398260958519405860188875434593498671299546081359372805128780430893676812635277161597472790564047152408278454823249810082004630566403559885169559263550427480391333882364555626693927667866672265361629681364595495929486210288748315253783347981760943386807197006805651182011316357705072047759769632831578996171524254296859020814709327154892193892297283340384170060312601647634878433011224379867005819770133277302017950309143548839290559921017370018323511021485540006152302940148181085056897913896723706813220732503290643866323224856790323152507219800851591769360060879746131390636770647206022662426423288098438282610109436720153096265903543814637182683331658236383605134483471289769040318995015907147610674634568354943311926647764393839024318650160107302797945664148436671399373171784516919472759816092432830148176636250072246652074371006336975005134876388811799201951219370153780486544078983702313121478799140558619557327616456059308894074919196346258591254496689036723906460059405173470224126208041161249803165646694596726646692446648725399466722859264803560039010809048134274325164735802070676952267735700762250714860364005955748778456379328824589306517167890183466456286496216324478936403517888667585093303442886661577378666568229547852910184418098753566059909728300590746746990115742548211510656380816532436171737104432265496652333996588857120925031623441444708751892594161268020097592310508697776503713590832990967663626096244539921699988245648198607319593110277932604989390666524977354825087033856245234401757583206463907714788728212357524105446514458370883883958756168303674321813345290470007788802086743087016558749786852212335818044378711304138788896994711124254106632409551578521678428325870171281700864540818114719226964987767780340186897627728054392135682968683288868076357380327000532374183506089177698327343802786436992550193874249523216999820677299752995748167975975835534333021143919183671165959683129770176664761322573988445573817575752236136278026182045775745154164260353006685296179811825216226013972615917674155761782715393053745677075787983631378575831338662276880585524787930204187143098081868935895802715462594885760913972576366752303006501324887166837136430840131459140417403343220959638179117014514934744321595923845681576465466357624159115510489786139456889017153844149708682637821445342199392598398897811373013751555909288061354499839077898445155820180596399777775420476528760190953614755514746692547880539560989970316576061781706636640982360743210185066342642353133219734276105495339409368248237551816679945804690800822164486285149125050436887448159000380285242711765884517985828773710346883821384358852506639136747393785762995949411975480004303889330432398319388946021632630153598430244373955779291351883176079599753658079889629922192955561417108294327986697398489472997101634466306129101871310598127698199626985600439362035306251015472007577809915833027440425706297676622918317733336439614647616618468277906294665500496939912913755299676721194694103186640904261938985592350979539073752024682716111537798170990008772964765773799783291524469908548932012862124413193709615279697147649350706738856890100388238142032736389797785032214165554295523697434309317656049343341607585893316835004454206894020676042077298960991311413365157983821944520414409954923040697513983202538867917414835565168572528278078045214866477412009955796116633296803609369484512563666342181663809771334722643412357071429846532585772659711809150125740938357767561897645724799379176468587460770946732232491173374003635003598846368071583304728043450499394196517589765301747437775615942071257796491340637792031852051494791437941774396871089265982901723443428546964914456306655272207187638057368794420809774495141875857166124284763293489634921592449340844303176802478198918641874282130480675560347149630421110482921396453629324146180068346757921496363677140703356772435696989960847292187271747740885280401845801725088105597488578667688607444911469216456519869235868392692988815406390026768542654990273378228245117340896197687904811255881050550139382009708333717856988890683390831219443878825324172607961411986728107325187344055618902059040761608176434426586843789174466741070179442635192399632402125224280593739216919715876350868828926900081274881719098264641647705406726580968064378167807245683240976898499214787679410987034599834626650410682023164104511959724603567778138031678141193539935309707934749668292458372425195219883369589718761541607857405403463507031839510800026780944681428203061554053183617617510739028007220271340433698510612410660364527278974457786250345795252975639587957166010139659494293360611951628505625093336176977042309585046519091107015932174688921508480147221696576804328230893076162595854006663481084487402490544668156474689974768774263160445091321021296431615805824499404629349558674951888880312826235543599231776434285708086565489421663666482447151446840431955261622079738170465554266093692046782134475729465869205393135791310796437809712821431228808106117375700312492038905624777430761008151539144340314104298073089580510467282295001088937990443853955408633459515159668404171361095831055429432907119211066144233014146877983559953263696564006534201549654001647141941013956398930436554490973396276615340953047475968174206414977176468185384380601311365829883328645441917179687300638488253205121063445769985131089666187263077171149227316062230720207028545323076788821161679016339969109309041031755123487745886748325472048168094543882661944118674307133645247770076973141802003987925424038494080883964948866751666238926714825589499515388659392290182121540216081652876733555642056209382249039115841536234113843314935983131692354910413544077805923810824883769129324385810551592796811087959243426043970128223344887312986405926742885342811457567682037321692533380599002460899232961325555347964270524197699878245209597180455177028553394649084062748023085437460684828141281921309700556159979846542784390098376753624942835259835323682596923736561981458558688426686131229267519107342406134346841813174520535521056430787912333702630430693412441170500051095042767354202766229261496517247385099028628350305927828906131534663387726534173236808440888101154138007964439244633631435119123982111586428478796059458123929123228092194030517523923204301578509251177686898353230072790311150601568519382173076646776444117591379362134418082484922788677227399055622191389315492620361210504310976757490939154620367738069396740068489155536541213923639403946092747870657341592817071825703941009248558384570055008478793980845700885366455295552121783382139356194385748796420470285084499964625635725333860614020294833331926891162840721127917534250792923888135515660483238398439365893118151558542176720725065170030278362312633504310047045461809273033457449035481356965252236891706044809237959612778904613836787457942829502546995317142951624392480414139895328636597211957057826233378327120692968367286232000914834894351228765009493174948262496090752063539290636283868068412436053648670224985334004651922602268402339984985834105617865895787342177187537517252852471483736908077102581526851732583012354762800043700560548664676973808987638485719636408921816603068210060040412712728021203698006605848109705391102919469918076589100691618976339339216377245075492585658480538817426476762406537334582395169390623334164063325693160380334777954749730206527338058591646487347898193960774255679187976758633443662551981941644806891066974814913385549661457755483528679925197933225256777747284382395015295000726705614222115058933553370008660270045131306399381520159952205462745599680497329181151171670761127051656006865058549800641608204644722876696916970142405541021498856926291233751292047841607258541555748418998401658546222093397834437952627346831949379242117648528865929038473785834869140142392501625628413237634142016878964718598143493661490372605243257578237583159845094460691081040386002892741011710463770198181239251871894004661394230983699590048756674129841223138705490536871233311013892170701506947676787770193189402223155802171075927667771640181377859869130436071468757439904038949680427296411346436566784935602691422722664721394030377980321184436432719191270205706914063030647228197862680647187242189532724128141015347367432216048262819300025266720062321179554075988079047475453335786381318302991293000453021431223308243968662909779453567309322110301902032120507086422247104106136389967410492076298482111608149616472522807692797468733655918964081322242681657575230892019200865330256609507527681851423757056361377111482185235777461999685951243347799372005239537002489410819201405085861320753616521915731779382445783188806747992678513169362139667064373472979928455683870308666942902595646197247332739976084285770815515347734204896585255971285912021670250732312830887590433412450084033124108856821831006549778658558091516632756510451528426591120275885744788521025802022224167681314377405536573840614730062303051405354874903860559697622340560631515004087464430270676536241237519598001469442812516113830392653952800570153964244874122460417071771681981340443919875060027327735490737567689627289068107170713714597854242965094738643255723861671651840294502825928550111708387921592215183537512136847275008707125694590766170646477768236756458034997028572610865674195362400509643142734788948805771728304442182602276714322206176821962738511828140965560120243592110090993840149402512703682687176071635558111188460833165387117681819068074293412099383432598957595381129129092306521429681463836389946587007147810562106529186488893543602932897553407572853739460233556145169570583830161415028375494324395754629579013117275064537798904467613768082562053662151576913789921880731795424795232698868711573519058148225205432126653127615947429175446209770076317209671344107821832828843289310320343796784390464471140819628345888399810170215435562454285056565080513416723440482607051712767168592302522711531644871401905411749888802176288219265450485651001042987366127864393044325548250869977024246784242228860087901940838196092651093743784606169644175936037657864867065458868284884387922140808613006832908038876451042495165127590072420292872546587386506807796254634064239423017374146502194732719973945383582467222860324859371821605660281436157224128853004714512717943415029602313136536926900418610659946259603480000889362974160252975991133779606883634761097322879879265513615765432476324612652143855575209768172267386425840184684300099729926590019815178400873839673648547321184960381587317234648569081747257592288245060481362582540906114397745970041966051709283914399198474937242084350697192024864683384337871818766762845403288787817853635646995270209047166481895883363032005320163141672382985683716345501938995654899832537405752321838152875537142772431330912705977351649801777921043112705651838633422144363891367368798767198592367421118908971348751710636426115258457593660260511976763505351297775057356741096910530255565365333371920252592689684535871909814325871233521055555790225984570686323016303406327020190525994644391566372484184772241531510140009496694766792583319128657506129511627138016681374355167530841210061414023359558747815986402188866733986680506153785107029612726174337136350693086089718520032637126916240077878418431832161025099353910093530891260174666900186971770920430637538649167491511908148950415425644206226790397616795580868334027793464205368436027894261101383407463868627982833851126324843183187803434529420560881231626635356022832013014983633007403014695194763097660261650414470457119871624266169926518477756424721289549003980881801097522828130085347168934881725342874475726911723722450159310280573872673867836896788004452164882201263309421014619771713533607342898389496966760766565623690167549026987130337907593716465251909057112096216113751068634060136253620885513050177645354095048192586655395992202806862889918751944107620821506997916012966373267872169272348362472901063995666503298034267329437866814515055119262553303767189601305617113576994034559905343525880304237141484935112622488714343599701173737786035965505472659061548714407407972100570506658139283882194963238340484189343939061120875133786179094583671428102794236341723537715665015399737705926969881182937658759110907779690126884406152963088563235878970992077392380713213291911005362037357285005989874153814653214021672195362322547581204355890404302967422075250857726099155214817917710037340575578103818652176968761221423397627212463018234087463250595929134534758004409692502421184590919121744660643569839319442909727993483317916232191023001011101156877166546900384638929527500746097871209627763606753876937444936984000264035771563325610424858195786386329566772286830804444590235895897936344707745640631976285825713831002041876263384436466055203065584821608676527903995803683648662554904448302332333213979353336519168180119685184514960080195529783533524527580466357811283482502573194180975062970590508512796443012570914409412289222332724806473659313406459775355070512061391554045015924541753308099713135003234763473621801354546576846549670223907583633338634212612996361977651745120404592856137734325436803377645700460155092795716871339815085242030635657290685709057301679601541216994525884790416078858281633628334655802254397492067687344556203716308669012842863727830193772661540681753674520199074138637906035354312227673461944459392078105167390309846416278231787485340678045422001961891321960485902936156302353123781280793535305498040196594546501640577177396543417018862173958250598271168864678538951152803714702609719648391481625129084736510609943289924437376678703324560168018446987658292214285889378546599752526899611742934570240655811620408866916714929053334941974016115980866871592473822209343277159781769237560689379422240753993966742632473382880477704039914779072840127815186804292394472754823997030882789380686743248159200268247679086877595305717477265922729435888190432519145468481984207609301980232692067421478600674878304465706910643406472309917457982165210703738287316855412628677178410822184186374090607069842086906534135651540304045475962027141767471639195622152203275647383473163938464788882244880435961666546725559125798922445496583496425474075431128606945486274720438880609529192443043247704145356500237288639585279887634026774387907129682149201092938391926611252928187130089214267188902241730755840023698379849141430697187509901282317947987960252470897143837147748515859033524882627888842139966672420408571443483015476287408858231030191932047362527468495901182466206000798937356089974281029954310911220759776463021835669712781884302825982767250775336808052087075330593458696990613673750779356116088391846709360397629169151885274817558074403515791754776834528622522542698404276098754591791081027899814121504806233389351545689325181582954301822294918982147028580046770290133745508942838226991655657289583144452382110564027063455171106681376520023367636917629709213277289792216337017905834573347830677952292162451893995807539330315837627289336021736175652609717407630275277329829993941530979353580196008616852763805171606770980113256477414857802699404324670109158940693536326943974115185335460469486488807745744164102141470421346582193198725509968062195515274809232796728398733899895430871529934628381340205409839855341803246528821325238958620391690629884501785111682603084900566942304347479332194802494499280479085111255968079944817813223740037853003574350522395381399956236392165757324550784013353996718080421281222295203061168778255238014420618480343846879469701066040397734534034688335901812420166738766690664501412331885286879410857414482985661905330325359277907186098588350038016294178550009342362492052418116120727145996115987243078649345127930370229564530653732758641349686123872748613775754515369391729952344770856746211537811180392042734835746039703293317445613159298921826419914674420990776799903900197306470245264080581293059850130590505056132664448237648787427241267704707602259344000257502341629746901358036152741507213510841551779862605368365032757928015227540813491651448146220135663952764842736602861450782696938620006927719754327072545607268312753138334507630600902108557627799065746440107224790894758005621690177350255641909809276522487162981209715193950494740440677765244494728238511351849813466970107304292442690250586854118695032717259326466406083306698695982062562839992566586775355599334060651026274868807299073200237342551861859065164694925489546632243254251568861926555760329129530584697610235103422584356734424665104264942538604080814426701756646137506634098062283190754854043079534763809533902403028142898836454186904165723903264137791545647192569384154728209892196941851552949465582333913618101125617287099350568136141405842320603831442919554752724140666279302681537417908369148485374760163381315405490416926405255423149767001420002422270332253362490542135688288956299488620339854751040416606522727342141921899199880252478246411950301138024724866368831350688158017660393999500290585259618696944175143127815396101543433212244096140326192007177022675431243822480479102220282565254488750783482978649388542026370001449323428207505940740306805174645799166385692315670591786627038309136277416112745681701700805520326175196364554823084213992625086780692982585115412043758119464796970476328326362916591274169755311050113022201357503493100643910476572882882396139805453213264189121205465481943050248852110554951740184256998302859513396332860185576713277354156188548938779049170486484576654288020500305644422752444064601624916257116258400001082066024768987967729646960593776185720887832112398239474806215132671389033498215132384843188157904385599400646889400833638920946658527392976315772603046351869635592572872366368418892664218873183980231154748193537165955725939381369852013397530574994222070468082966821625697878085168023734096582187838730682862128479092213451253772439955375324723149233288192591835663142881843065717986604607530325870794846346690213771165758140412207140629695157968762611567988193777062336095858234653653153352947013228461478412236140972196911446578341240399307648218020581498712402525800867977801927935235301391475510932940713788969865359829206926951267444214705640291297436557628812679208386860088775352788488040331483293130583348117612502352072293778314206823343795450660487874486220387545350253808138729972465955069533740124435306978505100511457355508245886517728875789734030581415101836651282543861047247012475683290009690383560191510503120495115243146584340368767816707240458027051581802569365242057293337589457289108721866376872427776241304051310769784876734424107647855410848540987336346133061705967350936745074731925959542597181114413983947242983644364886107236859973256157281381613725857241996730113514854371966223860288462364258268173550494899676643975242007140640766392509300612062366724254845516317914611741905834755413953985492160613289796212117322976267221658995891787417392448082458800702093515046837252880465714506435923094388936071476473129966763144777942374261255735146707028200667997452340942915538124872963267873312949969654512506735637506908958348045459646017815057364541652566217679436875256269593171258644124541517342399809055630432522853612778971759987526759785160813324080886087331389164004651129353992880684816146057972347796982542973035878783573222740619764956014055198735167544512225147176962844288414019712647866709935849052664752364009511115275799784829446062433155828707081673253962552531481660525787552906020202964768062558470118371252872108777758510290814552433002280006216938298906700400034221904663554988914707046704791769939680317466883134791227636306721675145446415341203167060489641408354825713199715547784109808432555614452359624960239360011310019495742598253498389430572263499303485800621947978433422848416941340306285484959306733221002646210005821128719750980234243577154435151894895183243276889561888272672638731406961711481310696820324240874580186475068203101997574849196139863074364343584701457428301191615462998974776371100115592616589483199559240802114352550081029983589751731670492014983366684096166587083662921069975533377502469272560160436669593562145360426676723284081093881604262777235222005792680986471631621997551766086316821526317685388402590193679106359057238189222233329325854615608579669942260589675320982042441479843070820910459326971535534826843829116227851392156362365600095504579063913880602227098608436166051892883720024125262949185143735415117272369476564925769416084657879535542237202086117521031448318424002157778899532582075197415947765698644117741134441724903555656203586008782738180439464716951421959570754841921426817722120040606648399104051279724148217643496321994605678889432465549006188311263022452245976035684690018599667336280588383759405284346272475317891870973236910262714249135418088000255408598622492415712439266473185821638301558260542541808054987983466856968932394967764078960060079792882110987515437758369253912643920614485028377410154596631539623260649713218644306279122184586586559296374798899910406058525253098182399480088643566924816067478548432871130886416718854958287925976777475571195127156058048778992739478109306065680416513754674650755075617549721040372915439846603551461435920975271797633265322988857951754311790806740200973241606196358124884820415393450756065220834596757420582916708577798887293917498189559749590006898629357870625944964325683576020865143119871438337533894883262518312986442607867709559274312585158883456938811851260215466756981242860273258265558525601197716410535895496234267971523941805051340802799612035993358007093409043704002414303436535322123967430163916832410563141539028123753517961879646143853775088018726584504443274895945322092559094930918990110006856273303665280289188519167624247886247783377849819900738980140691603980004411540381209573619754813515701659803211780594347091401835653371775806753976978383073525634025627400501355740011244564780055305454774529796576498474174159617712999400137488876374186783573860167306875330557917565915206164650170211858335676403091452970973413581426972841721395502381826505654197596760401674727791068051543620329927895046798379263142497206453181489966424509011708856108772426856035694356200721388537686291581452342613286755285560394973742040505536776487092674416396207592366024168196578512666593779070704926558404487090618063583950184793802333116101529852849234732943908846866324192784218393653658789059862390628574662380588272064007324453151743359045480403739109762831211548824584227788765780087499695010241448529268900146284038293289489532352858841221900017532761208255383277934497526877807936259064159389992439131088727088925831970743999409039225275494562162758746022747056569680502891452839204778454576145423943853337792657174824848603707705294662123838836263226724359813304823882424036126728204879116499490277271505241035135879991611032255613189459751718609446557906816767454020520810312590275527176552083586549187365199562567009177481099076174789458159659347868267404141426534364753592416284737620860734963510926849406082859453657410736714336070099405050442341225728339374517455040751880139539611620493158644052661135673373841328021046933042669015188142460431348618892268870028838752981056625328711446664648570169495451136055486161598990966833066638414479247417855937852092557338550326210642589066146795012668838939706507963478543245021702515144933239628717012858041528224331790915725622207717914506961970155704495887037272282638049960089376129310731174473701733330448315910231332429766217287479529113510803876196253419750447554512992388530422562353309923306187819904356363270057419315187759069086059883801825628208492212857654140068022963630626624429813464654322751480004657558667739750824076720536577013236150557198198976743981880483239278649718400854532017481918953512822804337823409573531798889683062492750356044604687898625488267731249708001687645754803705505175240459069935375802091681564389791896924487977144588953430596852846860056767857688887119943606650337620264434138833371196187939230562367583426713138927824044972201088216334933370652165834100254555415686243952135469363163388280120409787387079285056063220070589642166485279269585409015330627757300350522635761693160611783549566876333499328893073213758226455606137292886273934085070403827182129474043106674954314728888390569183827547149708280360869545712900420636093656581442830150692363155364255450734178034004645248552892115163395245798786652376892023485486499397876511938797935883420380723844502924944169588969892655267470891862813703113516712242760405262720404632540642736702542324064538784704017347749242437969165186889257434887356987368056401155844165259227981159126123415292361236961156063147948775454911982666692754963462349686448688952591057986089950686307702773378807585950016509847067326163948471854168201623625749004504768601500341827730226643208081329988715034345266429867880652297882721821584385670763475426212610169168614414928905985476457142528057928948710453195183907154993406622072180047506592171082745370079847336505759207283426169399255954993634711083739792267704057044543992563155493191300059301078683244485216316794738762249307286366125370976653424338870433349637786761336938897936957975447618888604619310213659799626205831098091279354460442142935234948041000800345412309386613508907010737808384079974207645530228630767611345440514039286540601809803238997885649813588262228337537095575154953533802162050846009935939023212352471577366133625986044218854228611473343755850606498183042793987797230324315850655202167487236399170899800798897787467111617968522283530763416735713724830788294598473470689004754770193324789646537004460542297254317635987995275491788040205050095262888118488117097432163525481964269401130858417788667103078924765273221156038587459812128125422427127375906559672147576683892503260964145461604128923374081155539287964618365873552324056424052519408874675684643130066848945221597769266374088955064776508226817524618138452040410943107499764502285501473743113035902655893704847712969621000993205705609746218951995913626243477878807486449179471977963406328468519238512267785830888462017694673502487321385951953600073783801722500024434503207994988835059725582201739710810559255882336722841209287518647619598437468542372528745609328010602014714048119102540870819114077222209924949968622397823478772585955386648454184318677100582598242658087695383100173667043465133212645093012764614010693188577834762470687366463644124218064822362542344515495899448962358639857867732409736463872362659171214968872266423959676054080031293609390127701133172900998488532290613023196351279149664113248669941820127963814781551028805700461438452862805177623296137465664764411830234820102857323837174915183573947573210316401569897877944733113297563020671515849760884383638716226652031410378153325737499315116965925886700571254234449598298559596144126055084447489765726633392378193981059907784107806777483741006820250496801426929317765113130761607615510096644884365568399156111139440682966927891306284974810327062930957421496748448498002647464633461792802915008796062612451860269162813525088414961206812627187151788524234252696066278638205257304227626618299175772389862419306639795362202557973387428064167727432273805114872283311224275897656873823102446703683610537219837956457059224147522587436998267412001670732962349501743344427384854873659882771309726480751544571308801165576010315295651262827680109704138470559174616232339809591263562550089861995994339750074815527190001442191061085062800355871382795491843150382249950242067144428745746081885296800001904472503350992000618069337892874470966895280532068056684195329509866335310621236013010752653857073217466135708599423863088811214423506292235558785756408184541015376262314424326032812588272375821146714740321152942227394139420480476386268759625950455412520000180555716926479403539378805690572916376540833591068122305401981997577983695866241097629185330190021409529665102964107587893921236577645416066185551239803324267708585059714144532790943049589173698188608521895101571729250650808334663205389915498130167876396656549071154951446262876845462703337193455662503949859394725950563396798171084341140538667671452133467821736995024980281017626075742631585987178002175270560465280710378258548215346194851749073411060742090108658401859272544025734571549776241166607246398036809442603368922386116309774675564234714221978196494837834854722675923426701522705084190619285849950216236586438846876675548722955779143992707067084010009245476116880386625230956076901208366617030558094197027083976541860489360955382133377278945214425476886573185890954108672126557372127836957424530147188748072177089996521949351741884421744565306379595343288305551973691889771364148551096431071819417897579158628531617098481972051331091090808435120498981318391786503101780481267517746213130880078130688603985957893480735864534624983537785258261010713912390261490128915517761894773808635982963690475698887531095677131375850693160325639082053089721692124338909709155035443233916353294555450089141066215056308666433779720406046168964930104957503399039725796195396090582443463933848042534761199724854691980045216775890068295304431420964776486736564527205941123230015299038499269192051600437902006137533158804486969420111414818623724035655030969481003177774783484713799747732571691132112294938353715830417691742519829310364093465340953248877374366365072168632185216361856676778959145900832971902023284673127791303551160339116296956311363499984740517393375813179724349303691346288737877096373571544263798925619792306384899937974274722239298351843240284296534459958584267348552255390333085048277306609707608439769061991919554718148237270917567063148159318442439004607104184329302181167477899998497001793060623156355786512091780956127281929500188463790901471150893018723322176473983165084495264830436953270887108326273044377463154881911645942396141099981218047500967640862560123602046547239753929520989010787772582455799460129088965161542731261841891952270962814863768815922431571551616416302820254427703162823120534463483655045964386614088229508724188531599149194377394811562293425760698162793377721736161538907336693688848137102144712504012124067445362348534043515786993999049284863420419158883023253883175157784154872898147052172422052145431158030043539018293965505816296837597629627433623875307861187213979861982185133378766808766195162450184164186017755854384346893034320361885242013397679930021249713291709450575579026693040091224222657143326307524475635266561162403358373089988572464377369679425882701829864096403794164687286235135311983389024835566569435078751628369395794142052904609003937391354975493958896020627979350141177881077539048743087894019709966572716595425071525559736765340091799953040028226734114994017921493300983916379076684411314635925029365756565411508799796396276572294203053174814239865302433511436522755048162175839613528718635702518857865972293996684461387889227532298867094914211104072960799001162728238498002007585802093212817285780697968420691444158762277633676022067267957074357080918166627541332984884060966205904432784142209871441155164879867972146678745254712224016681446479990686896464411444856862755811237830066339068093354276658478211542447739439584056225430253214154339803511617901154357933356109479000464392824830619223911256493295310137434413565750248023252063868560377722865338459190711198212356849301642071588539277729345166909102870282577115157526453028220307096955144604411893979143936622108807633350689604778781684218447305737379871557402497293032234195255146458675482667882925072298017963287973207548987855165466208413025529155727503123828066081253530578965195439565427291435692105245049057545777792742614476662894084914797032067316172631434700375192321329560037095427234399605680162729787252200253336576101860559344606217764820705729129876825831141414360974870527073779039302477674547710285938246504207062311664575782330553427278501615202853508950459126966457515243998298244115230273872814512922548398719999663236574825207709647822229179783793588539179050187213438038395622919926089763746146714190881736441453523739359504830387254738150485890180399858259758738743912809109803658226923078996532145084205913205704321288185529780992409523286817651302997593518347306172661842088786419531942759305035932739539968631524065015102706264737416518828239363702771145175247444019656784684616064369383277896261529280525981180370877304973738507725526364785593566500404125055129334581792433263706173624149411262262339351104482614189829957968614664150898423604369565125787488297129888467289306532536208483654199912563605350467592690371750479313305342634595880900097106279283126244901926114486829829614850100029575843417644592005260814571826483447908672432983220204411393296473050663052818941214562005843470416219743922950880205205787068973266465555309538821524453203046885476328234169559057813198155043298058260613630905153322549229548782557297804410174370199909237559964836513410065013113187402569661574250679027245392509635001121603472565535539963781933905064862761956643986224294794944749576728089167274783489597114315582587589379923373503371029401056793057524933017679695188113584436294700895985068645900680266171588565976840334281095844939725700911928572045653735174010623501302828371472401417683528932313472042508281424027913605466770986820571461133845589850805912102458846841489968119549975311304057153621587010753646572214534027119676883374356283853972886045515458747533634052516904842242585130895132818021759352939282108098168155667842060304427294975480097256639987080820901421108772209777964693959274341686458912597523525019179812933418550842067140837021491305555762132095102124529017595543559086733911227423746629723728264586283872861432033724115036098220396390835629531056090936524394504757343850377145819133042201944967479591021617246385638857332146656026550291842043109934237027757549232064765725629398829026495963819661753994146056162958604721483462110583050129467913450322770203885414971425863093221139874951523339771848722058712891993445400214331915021377992960593595987183280926719148944698726155106421803034782022384538839717494664048879550871217665606503133158559514823074863495995546686665824261956351051436696826830284797297785830401833843236839631577306371195065368907186618350715513685256095277160168313402982225643009739125482839170266059300583526224140043179019457896058380241393550087858531236103446180028161873258710600187212214283519776313011418189639925345479824846574193161964326429648559213998034881405707402791111873765885181350491242424954170998111214143992495221441345352044848918196421016971308593081018884505327662190459676816126454461630904867591024165204793938348295937155737270506902683836317757746916009013080172164466517521815345066036396233031333756460718427213685875353009635000629852064240977910157394467439564539144257511360194210464373990960834896043065121249688173107217894991391120577502527002740712798960892421360521927850682075148617183234037871187073785107693826937998976923777321665346435967645433192460994325802175144309816941417306863776816909337231979722642292569216923910954145191183531971686410528542769770336146031738199267162028156702126361527254110452331875917273143324807187775613135369039539988969730534803655217081241973104927741865905188151096608095321022504613486946015519582560594416202235457755751026836547240884796313090945194375694983208328843082085212531963242774499218187842738494662541974646859406248445001712782744859206278079897812682983953201934892115841759883653818861627679068744528373841646691170554902438910972520740885768455404536910365082105653678079195829029683875022201768972380817786531085864369836359084094504510687947350258543125370495157274029185970056975637828178940762569447826850102387357911131462976491179936774647801624158696224554227456705536085124132414714565793908568955666253493560875999317874955519511923295752049652993763705143820225870444551382254089587969128461123046513862526219523544735101958170710793216682231539861856752081690534501665268280993882025218196653466261547418003538659492923784714589817739238915053166255222947359512609537220236787862469174683159394839770913818120784068900788511360451107658458164586521392623185006626968070361636402564659940290183974229806919625485407506449399186217266013667648160104609770003928060173020949622191797660513637609825010001103610426000250669445840625740398515481976428818231359671338432913783943140644687930872324064458527508185295897328284789967442971967093631128776788629942728966497538621575756258183698571746728405361468571555938244654028105550351011060332734422007112158784180039202419297498649143436493598889302487074072803094041050702525877182553677462267100758016872546179908698759207484999098024839376329603367439095960875552215289331206258650923834565956344957214576291546330740185851104774530635173543295792440278004027936503595294881893052528379209644481721401113639545814677097635016242810783288748384555099191788029551681116626397381872463947330134542627925768061366430187742770589150503600150246370154330034918040447461403660788782832682814674641672933202199704407079445971197384241964689569890960052538978361785554520406786535334199088143237927160973833410243687280392017915080482727858421511101374140290266148784923388631667875668753106002747021648797393981204980623914597146533071797983599455560778158652008566531284162366444365935135801567505333017983635094038737308583095908649508939709118288892844651632277909703182807809746328779902099021711437370140235615027944310875265405181413100889735205555557242641246659271874780786082666640480682806125788468466841443504880861422039531518517658822881596175197937112095573134242347953607878763184412974358470344879318385751748334922083836111812820550649046312609023047440138923540534246799084739936080823559148868532943264763411700470568686121945221258424702660038911703210575439617048471353635566071690475964850541466802411917769375274350849272790952031246698399936267223959270729411926377694257206864770528579452626341879090152167180331426489516910792401321802209943369859592430306633204642075536382236728597904342485001573755768180686201949418246073074988617225734880892909578899959449069822951481414767672448490545825877421808936203757052008442158871379382367841797524066259435569619335910226924753792456480142791235986707474486470024313330874666689091388872110592680651667021458304428193151452788254863337700831301845935902934740174967466766077326873221938337656286613707978075737908033444523538341872656051217508024938475757919343006402762180624278323659110226307487455916109190059738228622772229075371835345605669340980357528180679322319508016964074304124558986025025877156102282767508121107471043797413110363619705173607613869546812144026483793995426632715286604878724346800856911784122654095044711639981628715309088592882546740233785415395757829981797694619123945689751154376413951319145512015694736879309568417691283501349077117282044058614126818352315720086762666466059349936166491109401425940979865972794679628042984665623922019729685824234008742779018311968235668562566111430214341778125755427585222455495628979222825205339720682745359832516992967201303237332352105390279893568701072887156740614813682987443103461676436158817484530892421167986837303790896450076376922350294343674169578513401946247579087269302831111434059288559806910169448421276314615948875101846163409022012821485376654568630151535389055185708667685201941535767099024801764833232687389522100727493909343637372616899333860106194371386838626189369241158597337653116849712693995545762508744673329842888595500847453146156951945887350256368381225720818416340260444402709599087952441541386296686002677424724963768638492030764887514832828084709591491122526542322763470050163019920899664573889762612519834763947769332789832989334892659597666259323467246286671670473878958628349041883796617063599178243343504845602135525229936626744402151095111559597654411082925413775442355517658742061187516035949732314078564646803761621816750453244220311893624646921617335782020694687356514813534565109227886402742668024835991557159820669029893873315588984406065358263317028359882522347341276384351005525943822428391000070300450836670134004416336818164986365026960096867783620502765241254089179442811930781080613698683518175354088891348380053605766593058421954070547835502876050261384722866218230165687032694872782817064987418784289188683472539783217315711135845436144283044993104943245124654087001373478451507838871650922786036997987255071584898847527915238671453008188472467017747457094015980861270982831854887891659499924659759669964321090570816550062757305527193331941005120836583741205672645685482037512439292924917163492269768611237862506747708931047381802601284853404017384045061919216607807546935834193035183809909344739967252091287690720373145571049314190305659289496939626225932421061260039482230922893337368865848973982629237929064990461203616433814640375739106951081105724469907287161851981389433353176004790146000451903906513459039461065646380061519550058053970575820858044046479500581375245989536113497215044321980168239862726251765059854936146212974024532970600837240380951304218820701356615394015329231124086385943523330603670810769456133906556812681087431548992726503336513988090244588981547717804629977973743442283133703566936194630531345437366444555929093015644414002429483688775099287978507031324056714249846174784923123316682706793540590664620415951435283238109651879335634215007474418786614854332482645241523207539262716651403247768016785928957957739453035292011080591738393405335555996765647185721360617510420022456971232024874524161234615464398631629263555562490630016488924921222495062944414663404745555698085848944981840500510875355007637979055992235680831906981902955326065414239986144699693522067939800415363374206769463050358290464450683669686544950630248301486568401845564612188747693580856248222019255688627130496610247492791752096410863939310397893393222869309734383639775356465260926908995255148470750722524993443411192052597960346530549783056898536912564344900432163923004084861237833260837949537940257825066991766146670075213416976734763872680414026701537357451976169001882953596130905369232487693301292117771856565740544468884703553312723573541275830606501591850057925198514267506452582072739980175404282008751146338524529304652255010433379693732612593024106737354802879257980848953457239006051086173455238242465562447874072097169200529132544226962712885773991010888194203444650501363700043272219287918403546254748039872959096311729546182965189584398810824225350495181805213958556240968217282090333939650513934287984660050289484978107933526476690630109572765918281864486157570225880752094411180851485601992537666552551718805833442396882598255178849701493860767123768846258873152403724914952149729441448831968473779888333458125383385605895147645307244479164212800424161885407556823769731838515434751071919241679951594339174252088493013322009740179521083633284370797196625416628164233750471373018105246629262996651641878929554838221220897119036964832737505503413548269606541648748061684816932985266784233986968676447593135518390796324937509891867383781247384647281890000552042825996026008088328182831053916110476194675112605357885011095338400925345983661374417541841959751731831544752755150246557443882741413111244595607595862175123889723947208328717376279113309058006336155310247734588912400933722714201937406376777092553200502101572743978260575163984231519004760985797189641118846636302944978127668049130032710643293173071637957020648203023254539684620171872826787859001326846744312786290253427315731971579684196597653756632055869998580890876934828666536238058848734335155332253986653514717007219052931640391150709102940667512704544478345514080218665971373231748291213553714234489615856570349801014489792340980321021598854855126657870499570742767621487926350654131999048596785403248125115426910604822215939687177020552530434919177928922294830363780863649780924813625220064109826220122972949825364553666651068959169393471974013524070479497455344091109747255238925373178531022546746456578810784529579257920434079985463712964983464288908449847033070991819026866562701850998513357156757838358339906352250877283732250829411297760359727928264613286329138058862650931995282979476252674577596860630287367090972598747719289047094495674348164441960712547720345949632352976692877735671654047025467034354787764939862270873915303881768057341556469802773304831602567613415598682240098269050684624154167582841376478056328632571527890813530426331570480444423175509877334355560509051422082095146036760322958987152745098335122940050414136586067291459762345901759677550447689023136611818229767829193802779004860525105655799145814356578337471633027838649136995273261706392744220653960282419348629212116540941032003827499986327690481342799160336722430676028196082343433679488219869631547499763771898632977002544905629412850584269465684461902337536914826025285108486074912312560919458945031266950395088515844289890545766306359120386924826884861017304876038414697895919904351314856668691664860462870210835741238248416080105146069050974678925321854089251375818803883747350338320618707262402858005962555172055257023633904664871931695819543262551388818541169275111260179974102720438330456546453318731105377265236175746329076653023888270202117600828871138576964980095287558427233439960583547302288027742786048292046474760929637498214491044690635162353010486172041452900837875709509543570458518507977378242793575511145586999169061557432691110299432993417729388126887050374950391723054009849017734597630414153210050028439191374032707571508181068058659374698026513050430742708166839658227987490457036860363490037726644724410465780047002794855126461328308860241389880471603165087602049345360524062805543940429475675083706614800578092301369395402241086260348298967353590429436119191997053799751774577714739268369525541099841553007385969313052721399703328191245788019386569029081093075902669343579434881226343807514324141026347889005067360028701398436220629725879501745447759821437463029245587453824671631397480676100309457444147150566592831508441392400240866771151219350032494803930611725281548322110746624109973948663594418174000249911428019974411284546092841733053386149062589522086350636008243928413102432117618377870882101281219621691108379897073629733800142628762713680037727805089979091556748959450712691776124107492632460588159395105527849497462929715212967639307955460333533429227817561913959331520222979973136248044589405992338456318082137170092654689634278915374293749296116270358263284706073183382175819299918105859994183799601861572829646864724953462576041153385223983078613136032462459701087273515420203518809429970427300547809736804379755653695311063652937847370151594720307075657661996097692675393736004516106829062033013691156399525231705167459454892295364100471457030018601111946504268027038689633059968099912366542081431828883179883871018531155318990791463654977832598782197709947893278466622349456270013785885199775280877302457362159770811613754002635542522797649655903013786763307578360557737828453688239489879011008445342248843171792838190425895561190913345830061320437658972179147115325242650192020304600738136270348485755247079972388127836503602546535054617756244932059497408147544955856725470652169884890972476675652843740213108727698956379877960991556165252018181612900571600130203711216297053455185333170608635557950971103100625298493541443526517795563835129716573582344420485073395369601595040550523624052977701500200560533006933422101582287681791288229585006522314504766809172231133305779922079698070449097734930808986577582391613254644124225192815304464183379182778809785514920571607570549334822319068253180405857880977179258053263441902054939338635848709729819291851939365080555305504861195783743986662627886315416639875992377683674940944082639827431016249197848974204082204860292896933711301335402643847839420301556158706507214069147304329300990152231681826181470577565850101894416109236169992907984830629383731065105097868979747725584035779928866545990398299219059037706194085660854432401785071207275381990025129687355143399934598964024580556543121497348987315507463203780875819210692706395828171259946235553904566953716702468972454837223195315355971753743530339061646633623260168210413841506373249536714342649170948884733398230323181611706685470768706316659826534396827384839921834895653417880811846211183951233510295994763386699450869392627039572640644201115017776577673386914255649554720436931208016563123948693129906158119671778512469772103269243160276814012207114031058625222611599681580309407225920840969320037808643893672363202386807356128660518446285647653167947985374079222122062526507518751795574368491998923998062555962156810903728940608353184259647931149421688618185123589858504239519533503809590450984455541401707327324078220359840722155332052023280187913934291507538990572508796348393341456681820275896357453190530814856695551722103121626556699591224063097183275318962734217165770042692919134382573630932895157592375795487009292403680757877686741798591016033547952484648644749166560470809261530708130579049751679950868448698027494470482155337313912141768451054887003875395652627893056492937295074731806851387825755793611248027030640880922568947734022165134135938876494843199843840813072370797788179578008988130483730374943007041306180354742037317398156361645386700581910266156395305730691070451948937226238086775949873295299097838200073559492423397030853468739517738805530511704947583187384930015915898259682987577627874119687856289799651362992415536432318479205404838807006634092621589568611730714482481733157706438991155396452845735967936716326632420095607161737246770059477955339790457139910097066360585090590364062765950256794494910075683481342045157555019052878663023542458222620411033421419555895928682765049240739272940188521067793151682870135572992743592033116076951370695463585129926629853741281630136919588467575802471042636944134876359477500475349095421301848889876951404791079729964712775851161438473177319470785644920925541285422438204119362402089083787102733057982081138053243248611940467272445492839834886285359233660516975141505027733888332958300068971073658255139972973841906082018510292390805109075645754362453050958514214855257464881062880845769282145998346917226875144310004569579839424842132395274973874229763917293132791265664163212471614332625512524311836021978685751191345990433779647580980311009412712525044744864140636434903550832612201296655016424645488689917282799501628955093240391368693289007535635475402682274392345981016571974279840988716886682052388150193149611876196048624621241361209974514209858611681210627033173537681270238865946717920028779974740005255368758242056436752013897613779765292679038555870731341179221706879367326878779453674452721572351036613052746997593753248598168949414004925412571341242240621068618627538973131218037349389843723009033449111817578954821653480588783620832395559878105222698468626011265644467478487741092084131695688899570820343526070793596850050233862391879495649380717373235708778137048276716453303270302758347490556390373343071008203191469513661557869450201017499289815918336712617334354869290167499005812209133933348429727910561597177807416504650801889289152629743725418746750705069657902430870846565363733192947913932213360801892961820900918082190997456769326626380730736036669880407373736886921295714479099566548434883657332117568630842154708844938152779101363301080765945771825012977445001864460764148125818707521346588077205213406063541446184510239414463458555302399040899234454834469013537160500726152401734940694394147097149235621835676231608520227964995316136462198326788024125348769763203041515934853246223928576751909457093926457568469170073906126730522339662456215636330381288207310669341026657429367189722399549008667546632266952212167450716705963328286035903654543317608177431420362831773330210491852339681267531991013141104939812060080939045235794044251528454887538586343394071225783213114487759601083052509259928258547659116984361086847168221669177140082999087210428235070693556837514051351793793081484541410707215327591047750572558772303052217217092614926068669126932785639428706953810385597148790639958477408163543091330730112235472877887332468630502563833898393002583555427254545740377644840082201527793165114331913410355058542483530142847550388481327089057545246729962990711937159192599817143696836943671770901396657773607330412191324116679418352128804272093628426392934855147959982036431591001884869940506141159624634517658288075746945588680640782100287376038579878380702477093836144921540340844135197811138851534047298283270976325023478867375772062408184388320174821719120898310693414730002260973208373424237999569864338132803973386129557348247324804565511618285748298315589729996926328578085244057365878706193349020780714608688552945599340523168542656670044108399522037593101456134544789343990854349387570874691741160223304204308970615974104952555703620530135303742082359210463352870952824719190503028526741394667566761539571715937841692994727120199074105584826577288791904000994240323250205525096679603306537711272080772097398724360265203305426501064439959577778579778427459892988224545474341851646341397271749535185096672467296612538968090528753167660575575056570929386992476336866749535633090660381604711129839016432428619391190668349539152129944174156476171904199533563071117586246469275032581445488982834671382530779857698333939644986352749053681031002474702041477189226781091127137768495934140980167545043009426096341628159705837702716087911471572247550928035878204440832698206304249549436701086162429042180397041391936370056848307285001683247666772304498900826527666372482214808361640471500588478121235746343546986913807237306920576238438379404235684984393697729648723278733554370969139276043262332807060651747462944083769173408261124290767660396181205628039275955489105746300285832067176765897373021626777512180691584276821590376600757645516032017421768424121718113095219798222797193350420198007688564542983357254139797508133467430498630400662635082850101233334251104289604304144480991006031372075370002334267330874122132483524867115902668603706343053523287426644631426672611934369122019901086015309162442583969535673832452235906947904070939935659406335583941690341613212933073320297273496748597721925164460796619324471607014552609808205243496005281600825162042728695629198880310982784301311061244397076043772107079647515959854872412389982022562402831648357038135719931632405146061988834479806397402395026706673178457821453042167052588003056247897600059174334077569471864422415796741817140604320862640329181332986354131962477735468201713942597715489987116577652508937528277176882072339110830474542842409028393072653983310843166450704045138995906894964745846579600253270313335508942733986154086066368227079956547562575746891700138304401673146802780631686635437118488585086898847124594828938313035522399808168789576175641262771844587839100284920142555371838709831241215321816643575598581520059736247776378167556642089536069315906840777548857992515735254576105015110727746929679317136143234093408209990306477567752030516271790193011356590335039409021500079320476308764659166003025928835770852903905770864789344469285195084785711056005801454862222289599741560034750808336429251608025034418842472688751140487865473188376354269880161151479862890099086238890485524716442156848098601954685260397839801156669253818902745160623318183696244723886914403734405660921430449918372324040162179715115533411228367605822720934063373309290455005886881855112686854597327469619366815137199511827531092088148867413157669060196836992660960855661200803702685687679369449067529704083926909534150453174996339446191065171970524358436957505473544464790608820989509399876225925813117296747105603711127113840352930343253018637005229226263201395245880452356740631627706714477845948839973096493511377860216224956949266161588216442952996544092819368269102382327716152645709447068041528138598435557598551269174287529584797501582107662611717779434802443989256292235601542045009819217771913144392511207952748231583748753149226869962020934454174264170598356231030850340168678773070600334164987557623753645462427736416614902517578019926264536503650340083737981351479139672834534351453264729695601051083794869980348968825833433580177451921963083203880246109071502828589242188354821890774134598881253471133548668788679872669742879539120589927812834618982219753919391951294058847105130790480045127835813918102418300912269863944128823394585385051653688671249126906346648205962771701118454104604586324840410658293872505048934702928652152511863590473242743783617448243894577329205404939223218259067055143579626237461460459255801268141208985171994273451388204435744788991951541934351682571414108409035278567487819295656157089976812124065784965746441011131051895307307816122369625407002288230967491776607724161077279794087881701100149340434800312894310962649158983060832830132405598656175124886976428779890348996659188595490794065577819045036350799752678262893366808109609224268895732116047059585359272731141873231710516472808224040965976222725340195547268199457563230450498594316579791432749269497291688832178664206678611836422123943299779655680000628560699795155157397308405729042914728472157053563327997786199422260196781768391199309538926505265948631480402295738418581218639047614330077298827040983101825423684836422948012051473114406669119358313908555286618175636497121184415234480381725849287584680519717361940262849024680260711563659475655324653936540265263664475555128127093926529391788300326346138749390112139518736946134296526649158214007052639272271306689737164763158460784802538040093634887466255736530191511558612592635226752364138965189296589719379457602092877647136736944858056650095075869211197121447542426670445720790106104637325365428596337956134442661034484394627062215734368409392041334521762084575530246238717384949480899905205878219575157443350647138865005453329980854029878678212929260799069463850298170992690397187979814513360420890157886494480749614013229123107770425030181634762889397475661765353782011924075851399656352817347105632744701497926796976662790009991922315367454269981866065687338733488284990969574397415902839344278435262674789229542800804690828429892497104320780787971396864456104242581650716740199128742353267728505669596101912304810318226928630239389731524457801415542014851145730266444578612917383490425782942349890179832161313925309512969820885546433265134425888351402875303178497711435548084755250055637129376069161026876739808948912823083140892405675331131929255712916529893093581020809137783435294910124846824026562403916559615943490793439792441855871714032098539706844614437900082284147219683081622953910257855830953116999706071468609154759201049367894244558411767816515495191399325282464007544878603804928436182238002657427112375574360121804554185194256663897793054778284416460100688082891491052925076682725516062774680996244819391955487164637002253221010216775321081427880970964771796623186370939750746948605520706078018885855149872116856437159403313989374330607478915970402639239421646963469222826160743783926131377468272888383175068150771183710282137847491100671217099982802266350112627032475429529317862805848120176731488270086701343540050079389491157788603674719672897512150418350935882890032708914992800272163257999758342079173952660441437871128620229308812054478396568918182815482182609571353111143520989582479416043290536261686083370380360383423604882709750883758430787664388265981323078297613319857066876903804443356945639440033894142528618636933886006877680860906397499098327018370034965433273518616622854794894117967568796182729610693728150716664832241068690628277644312860382750594943176648104212687510031058843134176445100645844763575764105184431332443930991942787737433313608611555519463824430241387077448525648446932891353245484317194969880015976381325966004954103027787023575180294693829871886102038587450286515703737126624822706057842618165209245732160462522247766711476665320011752322509357688907469634854393539694502227662957700515939068266284617467112937252851262549298002215421851195642433174760992743239841907634771775392517483294082221231583162962413413099700922921930418819175567900276559748618038035400023149817863791627920907023918844782183472326202375091802492003651023017327609717575004808458030593064765308974902657449452045832426130396174994896744315798390069831671823026099361545840848207492453013967144277942738181659152055301034215740635769049451524454479391513396942311648333194280321819478993815093067813497726286383290373715320818020236907118018544918323386214847876286309476255029605927947939081309298468053991507061802200413863923194800012727536827843077989816667720800422824253980792246729076385101969285303850764775535473353871051250053895920829875364477684898500756407298910606150628351139540781083962194779766589747909179027578557554752282105873489671618486416852374023369627810782004854956192768925453042346495235120860684028488516656890956164440388040030891816799262979861572147023830600733397264472915704726722955178658573006374357119631757695240336873714350170066263591815297413491045960434208753987469376121065517339647694657775186615190673523030023909178873609717453277630496414225111220765160233136482549793746518365128373489481536476706951809005520151535400071678281437564631290210968171360483127094655720697136443148886534004262804460352337811083597653369677820072057830380992493413323906615864722081390938013061135580461904849663429596284436581248394961746673253557282171839759592419486526959393098719018370223887444351547474763597199425054185972339344622941203406605408626072979591638976823861010249577023579218272640653752682087026384313331625407753391432214355442565181405006192298916984782790574321446502076890494289488211149323173671555598850463385055356494710949563764844482573855138985866607554774710961880699274984907311103987963625075066535417049973399637891359966691390504681186059198649765492255502004863070602525306511874380355994210361304612356329913850135567737275598810138172213638205703460781154124331558479015567635654924540427155006175360821119428505616996956880265684745690356285974186623206110101149067583739893793427812979090581392451069247059601295659995624683624126016585020847337294271563701456658790887773444842342085877815942767263120193106869936659905297732351957907319443515597134254226808906837784446648188857336818879904839754737345052507786487779363225013433329686432772005170106105836032890104623360443669222646443993334547497236179624206857988364435283651208884910591588983893857773420526656713812178749919844657546402117698770590067078491048759762333577895229734333021250771789821642470339121262493618567017309465979956772400622331730005882135933146467655220716508002947190412449131679658104823862236411355593875856026017330794572084388013044926205889246236209775622759969274217185617823081934835201535151559309271436334647946806172595483098240228951833382637438476526978419477690165924604267525747679360217234451067640261685246002354137945394739776314783029410256165910528423563919123532655909520234105178239272219635112442028898993849721110767199106332689316305369569175574723049035447791949351916955888002415905836549599040530210444701506643165161598004088752671468635178193318720525143702926138273817838053610476526059047992866177751574980138782904540906861903944119241146488819308116881661769082114246657219139739795184056763749642227475156427647693570779436014503425004936498067219634516640582229826372658535829292198039925195250347276629972933957293875152926530440460240476970868594890065329868958986830598338425511187659642470729756660119332834732734450928366789797755123929505539918121353671220074654614129391636860158284049660921862514225930255340317499505416225120214567969214662119664551327441578864405363708303203636224218309488366171309264439715285405914571946452256870623784334730795248099784595107709164307030474363901889521634479299671367928130752382181147696331422896243204137449399771613387081032694898353592110467560266801319569036796686589962451611513483945391626650791856271668935647396696960854318258184578344662861404799309002804417641653996089755816084864447479116921236244473631483955164734727333744990427040574264331049586872016770026179472982561608692688295351716209452537618009907637511190669955653921504509298686441310899054785540860611277428193726275150856584654969846327104888004964268981222747078207510066640073449938322263255489305039916255267344156174547596910216602636285994020012118174889843890526289300909264953837988921631242407338937726017196894667761891848064595663163514335251609665207557647654549363419612181568964771295372897616486182709859722999198348826258862832939094337568176315139289167027806555186621392366737924011611139769366258863809244512803500512686000335168930759145972326298690625238638393068561666115243941892227965631601876497040275163022798074252941811517049080794444417258858911679651583781616644388762504793089718780166067288644454672335958331957336863726977960689410599925333339439198082159168179376332862220340720802467899526634750491055120399821299495592256987043833064518093766720944295628116780772965736394819069647613841689557611292883782968581016026137646018823384277244622027351914244981199364059203733866486983115219358723584664383604259933926845585442687669210075350330617257845114788662115915182105468650236583387491173517006128628732491143459620746457201748676962504545356990234329071061911239851957811271368476866884733866208056995250458798468978099607754856322872064133128475055181548037849909972988259069637959364997228523135050457608038741929195858888782264717976304415959781406197751641770408238095456257760419106562853408202569303208107176753366592470285915997317701142805088375049461539053392846986689841617238247879898237048372947848155893031213128777778384832771987730997514147648364006735420583241271332076435375291882709727599597341989152392318787565325717114738766638521799584172284123614642997846723433304858338281889161626342352880363655354542255687309020799989150261444704372693094188138206275256658020030967201616735923407559325258127078621734493562542394681005335031534696342219038404206116370862885582149301360417888672378256930062057025191695219662944192275964394685790540443502861038314625551605065948071034762151539976811102187982048180050841449734524632653321708567185501646481656191604725556729566134787601867930918839946201465884918640672226567736859312784126743346261551606003223772353642170883291851081716093710448371339252536903892730617765035169231227767162730135143382777044776739160200039753313386779488018395787229927611350472234494764871994244501465489721869128851119287727129667275585088888337964729231052095159880046722098819675155267543369611082482484090103197389673486540136755066442631343749198005377481421537945253843189950224813450722188485610936124376192221602980911241802642191851456279500425656455730965832025761817626232383496890891397843107436810170505280118958690209542145924081965384661986679145102823177659540024046078642010482189566390776916469873645399444467040862036233230149069354308004018759742268766471016483568134681902669876603108812117965879321499645813243794328992195682123659834282507258547734965759671580258060312006997605978666219312479801782477934130637884253416071339500691263784000633937884336777236245138875142858420830583442551117397970923852488993115366222357629029290598377121184920388300028506536814165940690123967315845797042818497056645864288844897112148707013800291973729111942121082950031933964236877103785827086079350224356242851978408170537130252232997584331501329470266823375688266046752107522814213489645825277816855568914676053623811747621416433391775889033373758830457846833276222254188785343348224934909421641908129817267462333590487008070891273100148396534260701751561957973878382508792401680278009998387838928754156060280285351346436994443422539067807961735839165501105268026610725556125698626335855610921224949528557489687385604881314524789364680366752828698411588103078451305816128816246691264218575528287533147273391167957077846356125728420777382119978609619054782159287385946233187740271560280467963028517819743351538177339183476776501974237462507640210032493710257085308960834790146705801131326644957718529138691959827409002583664358358408062544449709734855909993604325099505901537084965011586542467997597291944704777351879119482843809396042748189141351797352749021371642886426159464968927113307421888377433960661700123363801365990814344485067976504599423181054276045997003281009543395043014274306216218389901409915134787453070225060503219952068339686297232730150646201727025769255702513434994818887148716771319801565572304497231798610139237061089515315681874682819355298170929615788359606406378243610653454565073091273878963762186105447072445692222862906352262521320149325714736071007820343008386126255315226567196175079841583921030795415559932247750869431570869139864233659629221013996918726085970216800833357967850984230048190332897557700619507766578394382371975284567558629958486954199213113405293427775665338468978381711012025774253538768291265848250917628050063934692922073447720892774009405502573325035920954740401852531076565098763666021166250087628108270953552832784520465169599356042068834543293201476911120291978493098151522271928451992186296909101635726895142215198827533790144001579958870735585205806032775704863411395661937715208416437893232856107810379454789584778743292264210197205702328875317762149193626463291350181505724706228261932109136021891361100704092479913064350771317303327940220412861533208849146461116266067189470847629341740459061283330973322264334064646006487979910774597985867987418104472049623140232041235715427130300054284334297144338975967883198420160676871904902346886733577645539966069751045320970451154445867205490038319387922419701593051734412552759432466656539405214042951235270790117368950763310680905182104935584788655409047358406665970275857008769340335984266635188860206299774919556100505475238109475212801839918867950850320539076712395573682729957622708060740740358079235844915149064095222765392785543759972019889956117067949771765745670768335234611230970411872176947617373787764121829431569964152085984705409454118813825196454373480749997952181603146535389834378675322006334764319173172023428950392842531186458608594066043946852000036764740848626216379371314355126737728857945560724421118604116162478730851710703527590204590178808218170977527315314308963040948870534806225387552410909734462188125401444170184990086586174143651353223612150331641213231362163176107283980576943911329747402498362449607847537325312795046641574325338533663032823846695339480065758867670422715134866731747222257640566160934023892947165290852134303781748903647651842507731022064720835980676300633219304425039871066699784363880675055873958565394599262626265588383807251248495159592061152337011261707001499644942552309907655913953687781636381812523516513160867141161262461385234836128596925081477969414325965826527853731605162634519375607753489531667765445911996643177741379347874986982598614569401547754624895995783882158585059079479716179319661937103160739446726095611501708874259863389072674742087622886524806906730238434198335257609379248477689129603737916381519800198299316805851121115245997762365055526707646417464344349596172399282517288697939370860216277242750398462166078337852495287710578001564572434950426535636211655866363889541947632325969103948413796809126818303783558173895772019876278179086376964663283090035674142379025820368846774501126209958858844015841942347338187989447341607233356526142094125959279122609681989179954071072497407287032508593988374673556102293214114065219074913028665404067350577842185184864418123892016071412391957062583408441178337293165774913968592801018001309719335935278734755888753836913042377788059491434004967193582508198132536597952553807123668767820046716085241721923374220220509982292222224138792608510847813596209223381136251386306443935623249816326960533787382889552821343931447047872550441505474571828573233203366414371090642461653908519789206033769709986993899446344567706314250276302181558635025873599224289979983890732426502333748415018417746334799704643943339960005050042643695089284872344077757039317409837810522131305520410385417518869832991188574384473754022234155718075488368463815326765560488314507565230139393465754472240310165971654240179086055939002973296114467146140059496092212112505806180838031765700777537365819853297265188987647451957327144405546316921155622123960347475542534535921397617471303909005517062437348677664902306697997596626107318492077935185397385018500191487972504414289433164212925649700541835119068814245659928263177327163907278176865603567366252777809470371456824521007126238134182178404187715248683372444395007093054161880676231509428782535073907746778119914824626818581031717116437687658285446145638219448977872456509977009978687302422496039014013770825150804289298566336100357987638898384555761458557226637659537792873895293446188718081033792828830814333683497072955110251800613719394619104230324877487288000259577370031171216516541854948429544305608398078339560270271221717672062897078663727017359423213045577161609004895078246444834145747277887221157412527862442509797279266672224858789759030989218609122559000197027106121930951189992127921880083737291866792400956130688892321128130040530983282310664602064434603120980758145247490272952381674537231207594029474024132008224405530775531858367533285113241885454831401792071765978622671736360508467518084792564914498949558498577007673653364570615851928284858614923432789335568368848959250170079296559751983520375421313089494242964017003099799949401400903058996666735701013080259218948913508232804418440017884173645563664426002057059046433905233667758711798180445147124387694674843383816130809557772877744437185405455082238036944221744893268949961393518199004051448168056247167786349363195200172232321016340572185517003909812787666427186908955244304672217489616555533449346491651157734370506869469748618872937900329027920147749281484730013171858939477476592168965422246564450963464800835003293241753625944206594264958186069403336913348908580342539850308996766799288036378124279495179534713928708262520832173217534963400844444402306693755608096522852305087233207517179614473234843596206345034916432306586938622223296427094366490214558591897206038077594013116429589326513715895926587093569135053511912357701017429496024472841241714318547698268846750890248020527654042366275992704227115462481890940532250220778968743828122133506066291495664563413189928791884904876143049861792226529748246342512735635332697459341575925599755386567338099724946310990276453350472402071887741038371506318422138211946032497743857701054058577359979266830356245258161142777594434008912959748395002310325025876573317046414448320909296963548201074953874705627207305965232719742692099353641298471902188599509548789826898312152544944868470470658092135450054489780465962195637032468542986182991762573026687682268934690576653562677770259979691038698575311618658532497664733200842248714095353964664707457048603826968379152912648710303211438270752208653439041480788113944759743883819600001962204298328121985061111406668995911293165090892328550965717433872723169436017819455312882382195151443964584075828672799030623288072399518589178182427468886207966091489490950981032461603665032538991858404792831911297041770025216960347802388204603279303779835263654902861134400193515731590358814111655183230650033651827450069270679021220979361329155456321839344757161231340766012091583270446085913662010709961096604611552479341914556557067748490261220019586416753287605316569517819371075022422930917023940601074944255816678290559089316357437874386973070177360949712655422046255463477793025331180027786884173729059573788492117401091405136300284411930479177525733540397428418283088403038853621513126891760492629984841150732182991751314785694899143060907748451994245412918262485233831414685892937633498887909337860616357845725444577345558526436694962101636479759856560490095720372957282295536972953373764309114874726747751824930742995389329772659064043514386117115299919346315663936201461430369722609522960916346364035907008454716232755587262481806058173435448780693382983221585446222400390367951337066253522614111760552447512735119553238022410827057712221064158787990160518413179100463353852672661397790612824094697697512820471657822650717451496522823164421036580369381929577020340964960305986901608494982795721091811861827788087366728887145072346312095844484197701556844454770446155842346309504416608154309731835620277583569982035818355656463040085390993466943178204065603911028721218118711412808231532452944800418492944965084887386616884000199975162778025778754231473060657031929536105234701492830923845582332728959422848891371875461664395156925256573811111942395534784159636121472416739538737774850684867785245898556575004472352729152434707646911102056049392265376838189513679165429603396411031263315049141476789353413821837764644455757014852498361816048942852456490509786184623716667804026109983517106856622378129053408848708932544444581362083691748535372879216508227131025744212717427843632291351557115317674398144678740215144927391035598269448044723159676947871463620568128046051456608694395434410345796417386317730507181359839777356797824062336746809084780434855173545323693377128900118404849182597852212283082120041157640755599262450734377851721730065085592505346193736022291671724663712573287014020825170289401916202527264654371581102461626818821932359993197073445787194699707164402208903465033357281000502365175457168778860410105209904091487316452131592817564281671221930200400796266345979426760237343933734206129710702248078852987332957868852314146697867806169916558580461108998545618927641707781080159463302727635384508563378487019355921139799084181798729583794061055548044486798194218915239345001694145775170003892727209179244644014168669310212035598160510964226879773275018724415801733333930102092836277212956438170884454770925930615315870088035605731779318750659382539230801221587958948524468562928116686465191873538508685521471454643132643945822946302180107664573849689942403120214377743265846243393496576521136674567039226775787157710172209824124552766092898248537900151095023906220978644497099652438075970967947938159382375413093007524991969962793087996397363175358297834692931705253110276558233632318621682732943092171749280604889258166411121068606178734687916136852658081242345593293593185746475822501794262169810406070237839069723039520179611975513927508472219378265567420210652698104414713423737611415465035243804574846082772062359466487480227228756800677491812235942737648176398168653747657358826884387160409446497090656925349482840743226810207454290479546667335363714431493079760449595903506506657502839830905264164096649302287860867100449352438992851232992537067956361286667676703090179181210374353490125638230941885715287159155322254562672967940527900411576555294825312092497901871147048050983262816682987788135744031644359048810794107307951202759628101561052083429662955273822810598494541861161275624925886746296999527120132445897353966975861685973481599686810830293921700674056708247316148152341264004130380335173795426072136892108499736639370387538221324118750773655183752621920374347315361390697075680665454712162999588999399785023871640382274722395200340158186966777245730903964520536259060673379091065776226481683483764336815557101071358665009652000690964871926670850092593238554135674384322498402498942400128000123349979105869867611834679729819953707704059094910062487455693298016678914738085583194094544973362193795303387838857853696814167689912056186557784175943407240314748624681588829017765433580590938668984150481033994432232349911503416869545878679892851732838125380846711934553545641549051122840834441083101780220220661061154737161186390981845924776276929036821457482508892148509592826518397523341246943766395243699332743271724207004753208688368707092417801770751549659644065106631167544723905443531371865670257179698708936015277832586382496295102923596681517225384236793949974947126930541635997544739517492937967612915292534387412092559997134377065220397154065885389858881800103379845005569049707913473907804338374940102672146721160793525101726001266189367291491708167786628007733663234310544815661841579822651586048106328099169059434893424764870144526430742840075257488513534325556364966524665035325924968804930479430749645047363688723963390543980538426258562811698037792000937138519166233216109370710051251718032712717060032290081814933151447066117129069014964310221556609988805819906768065665203620247342140930019329982338100276991447375992452322543992256571374403480154385197058572704458876162709356736698770204976960675591719261169071884346987961388093065199147752900759951906048784807513040589754993197267417603383871810511579193221428317851496566271476235413624031518635091352225616253109245559202694863052672424813641363083394301580400713063613629611143177684144954580727114664560206591774632317248499832865371878408584486853635392223142632152595025250679464341824007041711942785439470367601038634773422949348264188075883613100340058400749405383943508753802466284835323729274627781167995425039694042891217207909114267050286503894234369950779876022968640113421433809680059086512018066354666144484329493073899369785842367450392533295240498712351373904709219603239712296320918866327324947725321484037117386639439496293349264614777015893364246554465270622139692161144531051806034357580069569065155161908125311572229365851495619664496063397753297947254208401831552284964131941832543309037450963755268351903010103918398790210031938019826144386359116467651344707156330477479901786674657035817054859582086343896755402859000597127421215711226824941956015129202167224145132935510559310736610691518517470782691155908990295575845342136112719861503190229180495343450035334874628727151589622105099970119018189191953766984377377378849321553546453722657885896700330376868196646415152113519351052507342707157839803364218002083291085924803366517860910856287536371605415275117468730761439331810482337918239290422848634264815911932744445104738976166487013571105655694122870243487751009836026832602723787470261993633940991190935908875152361158947001875190233051932551927924086238172254022829143018195023165930448107092849078884317764903412356624704087019091131858295918910062187775875006707336472634009320289826567137377822972094644297258207961310800996653007059529169613538241691361575108265405648778944891032677704877372837565224152529029079035150722332109333005437030251492039925356865510815625353994564691993279818077987455322639164332246717135379802350925195706339370355389596913264153044276225789635271095777865196101682127347368407556116396488311281662996693543912428426150640353612252265329767535289086941008429776799079511717322159217560953006608126556203189392139241820316473182556308503526676435094116591492005553157316281792076973343969268427268497727561331125686622404049450371740374443010903671893932500453895770260607067919773410502622990018689317240355892819185408431119523568910406904261790604180421041841697061065923181168823090967739818599864103160847272450599379864620761862238052484272309121938141198907930878421802840608847904809406084975020109138258771144226482942470720420297433951108982473246296093553388756463972806946051888740526043679681288949816873897369156967564463568846017439116283314833600929481989534095080849642005063561495540866016107110213821008166513743500883018518405708380121781806438461888677768172571924548660995196171049339937298442526480216594852842021479826661739941501480704913460595325184663519385818193843135721528305545063260340133502123512724177384049178684074915979752832650298299778425641793335611513151767667812539661876968451879530786819716156621140551558561867217166265917851925120950347695242192785763484402315304216281634733860956420162545089710467817398086042878835670230881993432861228438349833055670192490534231524063211136922691383459860086821128671706175739106743044904558916553016904122189117139631734632800124680767558460115201381210907510195011315538229336975699552608223141789037454344059232582874931573705606883461663550220517378657423691861857013420614688304109615086950607223881169344075064993077344296414572148663928073290089815764587478788830220744142308970539982444313223452460113302062157924438312129690546960122830001732518690077347540991184977858434856353239298691186452704588235372695136296438212239243618816717378911807839594786985730530815939996880079282736105459795960294021442695652322256854999296165491204917162581688129053866389551651952115417815339715812066903890317121650943565775576897904083918368006893736361563469855402866557092136962975115681011257800989975289269077806983137725983543676856533021211396277364297303130371026924734979305676706083669108292684321136642559342723460219019617259359568635021135415552867070665763412949797695887733443952450788090179559672636629740211610267444714127904906566856784653063680706797495048944944977003723332515131413170235964350515701298103542704150202084867486736225630342961894820607243047204207759327388696475802169162583784846746651592518704192686937247323169768072151402868077775069151325223070237309331483136171706081852697625160237288054849892514816116124469727778926723615318807587148785272220285616583011607458394545133048983277516080692990641867517847642519606578048870653047080279033779011135407826738990208304686812302502308820416478716840711031571482085664583539018767454559319074074623245201788651170920563088428047553996177215221450294945262148556022112484832802505795018462251484060709779830713130685076186932439205440336433306853074643621347524625615602832242457947527962681497114880140000995891425953582826854942458099816552608423332570404775012415749053919133552265353897515415604250807158009795392648795620242194579574231902259722184654129151098051270011604428889902248319390970287110126096924500625897124965880871103911117220993500993876378334989545614687622879465378777401301087211394878575972147441004870913699558392176481684453906085068562120260965446014339072026231958954818324344684408378230197250873578390201501526057925412379162903335420758876345736621513652687545367468010170350210685838989379678743044282197276273249231484794730428032325620613845598822470143998156146188330909593945753448914225131732157303287880247254115329571882058148440177654628304588890946630407794984944090973217031251047057547603735331403601719899663847226620457319939477371095616574895460941851501103368716862693946851401169562356898480168691396233389912389104925837316277565252396953304585750760392215817505337120646796036528509624587477815907547780896421933152265597077368211679788983623363382582162882062714107796076320085490337717754085458736275893274384014923661395669253290612642679164859701044386294410729314789083519733334686422602677980574478421380963249173603070644173844875155712424245715368081978495865260818363197265707671439772723126447610812036831428675130236706984251292796791913965766462042755104863904845427635147535393617219373944018630615416455305492213895078962709694993662334541079094757287210956621519843262048635263438580894587098518705110020676341292273034044854807767972385925167536064311990192317182265790630324072274146522088327329894411570359063019981909060331722797625592444932211490804752869009710630370128084389421591048460029766083103305473983151689832680501873069166319211618844853818136353880035916131965166842071946762862830373456936271189229870427970391535313821060560130320903543660034587326611384724937775275437473870342251379034870704589395795726105270649766297775643235202529345620764888003399104328464111294004620472493221722488832289400901655445709168369310662620587764809521053296690953034465685081797903532923409473188108095664619280283873544402306819447126987183693700279221309257331425590645088342598765330946725790219635322121242128876899055472066208222097363807829358869528338132604020715698581229650516588107963206382226749258786595043888345838943407609005914600160511754813843848412205857174394458184402666306279245935933870251046541689388973669826838587737413765990069010739887734414307949448813320494496209565850133783018974068583546228585402237303090266814210790538183660353135758373655917287522337439202276370238517620756917785969099655345603103210098701661186524791596763028151101123203043490348306964128605569738057341937150509533226076876667807232274687021515859024534043142732455112887916057029500692600770320004727224308273937105231182510516931121294219184439512035659712128829949145751099010694139329677470398833175811587770903722135465393535186679775079360875972145130674496904822082739321503090782129992694785319526892286096434313319436343910710798239211065308057574103374948052003733485308336713142319419480805863557794123349498969274082311375248779016403325160508776163667148970340366184848386155477222506731796184173715307305671814082488819563043244144093371180198415119969004189036243133235296705476832216234909286917610419314883956676882558671997648865685964587626183241178500814156218159390785195599789248332796456092041884209182142958577005403467463898643183365373305700031289099593475864563704489113978006763388494144095887838775558939835652271157220386030766339333627869933692463688891423843565202650692772533724862625010123668904165161613261515687058258209007272932554431811317816643813717534734732092746965338503156993677418114928690664979858384235857463639492186106716547939714609373668205561784207688759871627934303593634997190747885263305463731440422439711844264138170231646095132818916989426841053969069645452265604444464118333547966939756053964266397524227530281508701098088643438744236219903201341330567879067272187747113025549712534160355345036319560225088902009780524887581644353309790480980191859751340215534851547609932705220761098596191041400777175226040159183353102373395620502764681097418611346953212717324354362544708679008245732288442401706089153453327421681974125191213633860122507478339533502273491165915494391409998410089833191281336010370288747533586930009922474483176517540515071474467900779650353406871360625413159332455568946923944790964215386374958489017615648103607097581197133854699948312560996981526127384635923999472027950207943170039995970927087027855232148173440198085384497260908776560663831876635937628972995470276121591753681274940404213183097075902582379854590035134782111867516245869600295597774346445089577855090203194618363175746740968861434273065089198737967507527784229107276144299766988449267526745277267099860986349092762033867831079990856649764646840879055875984547598941521846240272314919987898739147577118029053059855585553940590655213905649935111456189956041119300044153382377841122982144280643046505869313739271587335987955024338978021760630444134739299791256607604707218994878617540227003542738845916128295288671750548713785198905054988356094852864061447778565288744423327936687553406292294816858696445638086602459580055411103448864356788567176218062894551009622020652447821198573738864525144225929922380444377846947046745092530552679280278598305143922741914203540294921851717864924442306291663026931870710269818122446014941726709620199004607908695991540362123258772828524764930830809905259495925810122157319932971811447325033196176066190893034511615227182536722157931400525634739390072887798815893166620940541156245526124978191804631293833921774902207683101643824702683303413636499614992048293340009347783551024576120304956240970725125595201622633024616825875337866719644137103830839153332584096516429669890798583827798098943355633250031654318249353544975033988458447411824114864063417866952405498981614692646871740724707501694757611174255111815141313739756791975936806772313858435699176435058181806022705429717260086096000035299200754917175695281395360704222803964175312284089851066790100938986403853859973529320495788716512192298934823871876071117700382703394770532915083500629605007281136305456433395869035187770842955386850346079125413605861512519888172315862015049269311164755744785207618058734880975337882628738551066580668066161133974737184611066940763354734644876544888605829122585602160545339214208821042003349009383801598768120645948066652720778141278101713031874963476510671202439005590489646795531228046734658644122606505902291527563218720942660618845929655371003172031368945794400902315167591116943639509382926502284091641665913850439406155604446838177951918076242852517555900673107134963778638562148404029334416558746429335390523146657654345838371287538180178466204495312199823845121819529378923099033611672322633403254114173776809938589302269965607535254925571832057918131872733353505245973444303093133942356981461828313390001477949882318778721255528393262471155061996336008531791079355155165209176121726645844225871556367785739487477614919898908797864208871003418139814819106418489343827681451681319104102336905647190613722267311714156400620310951338482190626204203157379066295521492119775868085614364962384849017762082421993209189180384668194138082180069171769694924492815566288405028498716741647414666710081484963041430799613056649522810613081036984450512867728691155530353142810433234423133555818414161716081877148735831588516292918222253174602195544072441914257409880912301235704631553879454419803132079903912694206593299886280523886153443653237646792452394758992227766301116771592198897979191643789535474505874473547037072612752289415999202771991947170605299333345365768852282653390473363699867049322931933127140684973563769293567251891743747017747621820076479778631024267788752618450517934295559967303470206479059442999419449865244418408641111747148126805896952320347123458315001874622145023222028797424590722393805385603487687554162115953754613463105061976712609813368756543256402571105727472163263152631963353392424846367863612435586013331933465068409465307836606152057944472497982445143129484353693766054376380558652636858777959184728366090139485449007023848982743903238284586280710160103590356621334700140063741566507202111383448535036915024112536696718107435743116737034031209283110763081418169047238865514922129108426106490405496584580772660457636141565322073817053074726561292318044676775195524303331229098334369394903597019319414494382887407397571474415884655076015520026890826275259798371697807324941220998058773483033038549779940121719120690977115263326188136536649706910121340203043262372375011859570759723776727685744631125782426028496313782257107804852233778095043519752413689417944458632703050871128191666745029541012652503374622311854532912058838148907481049141534303566696503455350856737397050229921308510529008246328072802595581747384837486124010455840041313206984918416861174801688008527930724497742018823984492633364850658530530772286943066702197772147671206778058328901466227408451292205233409050170290321944431812007961964354665217907492573558105065615735980585797355602674869262774381255407573741658270134735962343983812868928765262221569940881630692547941190847804157361154818720692806695385876985423728620603866585615798947510790754169062534882805777536068659053320830421183187100183959674895766149419175148710004301370142547303372450663336138777965169296132619776688188222498876031049098976336668553021652784106520464587418602821566359808772506141913326643916244444077003373677708254128469586302980484189032554073543129321298495823694361984975368049392942449528091083932589612950089203738129990099165232537030124886742785255800994621701856741447111791292871816974851620666161054009502191641393681673420933166267854113729936721363846825845844791010743924104887967731495203064686245303842280459011722734642809213955570416497888633189127695030524022892052738563526864962161538791456175695655398736190117538499439133991878787354465359393523280973287993585098198726266985267713638519582757907928995270669398643458556911607183674104968454325532309062225299818439397053669487612619991325350224254097090262805487942578348300882165422706123515931783881508261086319085223101742971117473344231013156731676888565136327314231111909968175056685560514390781544405905902196981409871015622043238114065119598410238578043837333119168515359138062105939938793951092896032955309894462987308616194880196338226562372877192958388245483273341364489283604631837217885464398654902409382384971634530257008348627593200643016824599402434937690071711537528770726815022918593065735330552534643310235375527804548132742041482542759988365729911339983126592242570105834499250725375549921671200844068395510739069187308416466075445688762559908595227578920617570105191517905836111180251618745221723780890366286719866930306911794455897856551468417336559349230390997528863455779092624478705795834986005568484241297115993124435368775797923578790784833868708115438757328321825932902204325447943971230590070763745304149453402250616658996703256923974575174989260031013002884820125819079277914078069460418175716145795807263498733881292629935155499392146811187868603947758326380209726619787829938062433924011953617402597572345550403052172308830638965381877194651776824881390295179988136680306125035737781003213729275914503349437691522460600726015388962370818532509138252698300760448419466678466086662447299693579114569190406373309573563447438459420533023537907711733892345800565773565916915566022545998808531118334359465576200019260063095756568674834635022216909601943063111058486539608039772645533270952588580038437403115126566733240706857404594961798438133796250412793879126632010708789154409706520276302991029236168025489958513259144867910531365817044727818687570455986663044101801823572855040549215419927150849611428928299274470443107872766014850661749187533842635751786809354849450952343392609177439474051925956445574133188852537881963309741432499513216996512254769150016635594094782204500858281713227209676786263928257616164410675642037547335113498692203367912757631326961198812846153287004347172259516764760666288841628350741693489872934538507766377029699875298846793572737038276784126700067461681215957962303104423001700000181111916202905960065198153564062656416611858384803399476186411508280661814192867116684423664255121705301944910556120770762147304106835548313350387171399015201241970871365726756110139885191751769427719657246462281675421966419768523098022185062687540566372878160042939958382702710938552704218436044891656671579643242578388476851784374827107306335484728670740101809357819846276885977695258107943074777292202551586043173937902405294518138635018565911884247333509542330344590652415922846726992526392313315862926552406534613974580825441612063479827610524792861693839097710938140737151477011514012963916469084081606622891835739226627849499277897538740402014866379684147924433394930057949861852623338135282688322185558631076140510857118517944346271359258620844500821118428962263660291095233898617352199697075772101477485890687084386660209118400979155809231943755634429552408050486318234807875502592296493468994863488548817821262517059419193011471534785297044695525619221655256313255082454129509419311033707454398335588745489054772828114772855325226281317911688433353350580013873115606221446121927946985911889990748169415903374461246790448495374737028591525539713161318767920324082330840410178432623808187178658789214542340432921718799619245335000967144061576558118100142439423755644426854562547036803471005222502635271198596699937389746245440964526993980987672276115219173844315669848471953593132331481971086025645403112689999559546255230653471932159114879276861103903517104377076857690238875331525885331494126032186845711441074400439290429018381617109211921109570241122179307002100494295424645534770848697309033189985785081115753912899232771233421869313823260529144213077261551293105406988296170113733948057322260442991065961494672894796752033223259656146617008721851043521805163783814980587159786907045153336427596228161895530224107110198306228953585793490422417159728603892378909644119482409508155313066201741016390729443441211462964732785321847597742357581035851178161881978354279143254957258695801849014574700637544524251740468188695191071820630938631018372105276228797585040142155270716929757085709061595866019980989174652961213693963268882980099240097987684784922051004853621432526770936904296392321114277456058712797469126292751263668175990242382027122411433810132112597071376465113161506011948380719798203215659737705638980124038864133381429594929151347819427003046907362609080010690351748662636166234169605709707162350733284349311129192451949785214949822331223732893396436309340240497053320217584636557849242120423669078313509601045305074636736119026948474275115839987505375626224214622960557091368619434670018215566716959435321484940991606576983690995544646003494735632000742501139381561977372104608010989394383984727780565821825676578231563076570832199700937304492097091046520826533634841061365553350305303226952337153234359075279848203093215335299949998880075967205395996900921067641483954124342375156329232985553686785063107955461272532185551192949114707003331940973128948159588092136222150211279932406952328453268286328399433931941517258283641108319444224785544444580695164461100194421199258145907328304315912484105930914100356915628209342184915401661244373609711368372210758542342506501673561707392600576624274659986432911108671328814152324871354595417032755206928685719153702451423129499571576467322371075916862155670911017426551402562814582865322226823646177182043763468857980173570631289022666816505704451055528509632281782657022627935575267419089916544579731275638679708221128530345598492075434050765659127383825776196081866796821278427310127998569314212385881234822507853732347102979656085251702861977858890441087044888007615216031890984009628913755215912342112560047088728825721288021203312988361745110562586668145245082946229385046173178788036490395327042116451815848511101295693715999308656401084395732252597876903196673035394189462016566562414980612086960196514883881985124756401251516296353273323515633920007588845054732040079899605663596180193824527518716387988008883791211051529295653094359621912597349113669766970135395211009054406043083783511900715562049072721267988639088096938768389481552803480938667276910047751115857300037020639110324821852162396522005652430264657822754059184605902666136439717236294993031774447488199215745750675116099806950988499997318624077357159056321516920300994679454179195501869327154224750649421946559291196263883096611202234409257291622268869457172942740144059049581298634465911095671929255297007345564387608587996315483257533695107763222855664582358620838306809247699655909628434589079984460458950032468838045261411979323945810425687988243093913531756643430194394820122167981834822968876040254083312891853329282285329032812516520946336512202349517465334596497876695135166457235085703822831365944809056994523052894118341147584543424120889686549668537932120131637564582045173563675450394943639896586918472121404968241476058265686086809582269730337355179736678540684568804251333344506381206817130708819536533294611964469450650533110577935344978019061753897666233349102847369938891934934537255092764295766553863327167262112581578753690282410803913767718615706011998448807423214509055555507848142206320828710836290406070830015986585960741969264579934077026121654360177310580954528695851343118277578564221447815352296868302221654015362304481400552089353257747615188388744545380286054045392694352222613036124478694050867159515302902172926562679435477167810320822693194610975970280643233826118861579374457279266941693607349350974389392589845794813469568743779371380102584738394861045657374881630040540576565018336002246313986050992030934520900594379375282045645249134058651910332264019450848355368234302547016288687481315675150670138970366734403016002843375809624351301125407055134567826524107991888888528576756596153740337549901450932567877190336308510489127548805418721805010548963122123671384411726150073744179344643989110126440046219881691114823865333151797086728708694101153036764218687888956660001469441862277397969737018534697979396898939383418110102358630884151301932771684335077543846366597866843584948179768679201295381025078148176613904139279981381354916938568170094460062225662328215016146794665119411619755625397150113315818790536268593822256509212297936628826662736831867511789897152279608506396888842845781546330742810685854565780363917254236767183629430150520202640046779886405844947481877917587851846278262935260356056321442764748039905955260026379595430914062243193983239045012044765901981044494008417833657523265568991960380290183438755848595530784473521925518117720819948569634070700328199636620836610867307101683153283814804814056180167959464790443503907638912435464369575468716563137786622763123642142345283103238677184313601988225041121768296665855946448131375501869689315438064428733969244896540984462469142442288494648822761611381948639509572918439239796353764844974497416224695395651247664202609508538260344015338995064898859452127644880252074431174246811880258241587215339407590885507867519445108114498024148893066996761224250482275836497280344519795379906175216719628669148025886065854608728867056506696044567851786377435425340731395145779413517063685833657172581653012831027408515446710089813269207234832916328204933742278711935820845371415877354971962505431475022555809629374202201395140467417741751514529863999341775400268321371600161492013753003457455853405076925065328248993671755273068136056755462186540843543825539173133147797422990592435173370099997281606521999341160353042688772073261074279776065502477303800657202250915206494460083898288260025661683986551503648791264661260535246465373376194181483079282751937026636397279319501174462100872655200991212683948078825648278492206154444366274430714060547243600029095941222203579499719692659355845467396766463211678490499078820491375107209685588570096764455309922831641206811504679019951811102475147823247344737476710371128247812679534103600152144013563594019477063547412430107073689555413381698970681855860801223931809812381167086630628288262539699536666605415555322098630362056624348185184099867748605488608249486879399334964004864285912689176521015743605522798055076005062771862052358698087184425479680818195766921419094241890098504880534497528779285748709948700173040533674023974298803001727803246560442074514876266189535908322852612630517609517734542014665843924621799936203204604000887338075827444063994364584114968097841294778096808561052153350267994805016691746866130973281242598579528819132971081106332725309981972073017592352783193778571962661947995421659209080062332725189350114864577679709753523381647500381770263728259769927701559564733801238810577961133682106056726504751387381764771226001692649369172973286918039813465212372534329568602566164888482545609787909518522836549097360127690443287514575841112146191342355660764041298841303663594520222445892396174108027972713653565993355035024360495311842412590206001650034791762704845526098593466600353875379153001150377487026560144304862127555895041243820427771763722268298140760868271579328816906245309635810829569176300177942567510521955976833358504799008417823741269531319485881981299997590502232011354509802416980971064117346183479241007008174594332679973498455518905119993867594110949662521629931549518254639488380879730211774204461376502975541292832663568825208368664656077483815932255676026480665111727609355434835266469767710298943625052841004313268416710214249755921815293818136809244190822648434653639737587408566655353195479867809203214011445395981857992038222277933687459560796723450160291435621992875536776998864802743065128765102098418150763231257732347215596688031270658172182088472340836379633835942499749074118595371023449692794803474970671612747400664542480841587912084083062985413706062201264457102508977879921468648417710901352533708550535274685927065996247975266530437187225270769283169500548895725581833736476654801666677972442606747649829736474561351724205725650038702882718332972667769681405232311617712329539507910160357304924603183418992957705699407252873799730765500887336767971586336350243229468868068521907236024547300994061533759833509030473763519750060828889517128252593830764415412232810149410197034305334435236689357214385238074401428164021194278897358903223806403260389273908212473706725078728678484174159295894970940886839188642232659961713247700661038127011744084690809115336631260566857346714042668705488036123794488310451936167540557546476867724063211322618782132500479712087746258313466947664283528179004283142899281229973889379799223955466221926504469515008935397532440143775828753336089735748036172989224680979713323227744843205251555152778172945341795953462949512144766100992291732835802601235508470046139723282535424122588762207991096364663384370552350023134193884339451317676004995947434893820617698893317611098061985745989355535243887037371800513307108852870337525987525580475780445150654021650588063501143649948829946118673913640581117862645312677972324464880335295788074303938295869087432045922133524846539628612656497268352400254386333887924168733554760997924781222477583545763653933471028767553722214709387815650729505437062419368871399445662484833512703288243281830403764786329698417666513839342031129800248486285351609758483030104298548741899741426459877397125431459578123223239964005046733094789849412158046826981908609755188637164680429401063896416933844409642185794535063134305725159724278530115149737396356820723911840981050732858849903680409438354821863215422647920909186774352430757720872181324288058466137258586078298219024261224311353499292938241914537508618238866189419394082111685598270483758017384381368102474788815368944496493143247027345933015885552855237145532816256230608408205347115885595540661876997635383055369319315749878303103634679573562292545575399456508447075608340972000019510682643329187789285562928487134587059140035953143366234778512005109940481910518922775701295273327136590022174414321240654857116121402455905570093526474230364354612431099562330970228166132070499065158172581547978787598447333820186772956116369068379255996562246666773066598244452847073713920899649357154921921481895703001115143205467448161604901777696052794675361310232681156032844669899110761047510101548079931915837350637554551913200612843188662372567811746074965649590302937023256503647506526747468996197615097525823321659388079213616600141719286377366433808356123114103682884833564142965381339565144245799676935938233756591892328610152171804246305172630935602991252687731918378904941757789807444647350053981608760550490416407878069214990591162622369360872042198974774852790708446911852973623866193244221626104761139248637932613608711490746455765475530608372633542011666787394103465148501983716712660863566561346163314925627756628233654219248724732068072069383255172430433236777634863112518467998120141557295103355799749434571350436284683985509981477983575591716250125888908063666740032806099949239208954331536850991255816212611030447642534012422403015093458231409340281717438664021104316301943329756275360722525577467958517532468104984028278367326939896511110536042887875423586640958291667443165897839870399197729765563301373678430972954267330913830322089865581666412175231438691189382239271930919284952249056688976713260197599072819817400220821814309928409667146154848670125641755540495195334461759490996198415849848051344961388928398905185934340295177105340698364863249358798929190610551671639472487403017269572558740993891110729846222278873686237476992929601400802839254952006246748766985203283776761927415388551756051372952185385817033514348000092569319859312957739072890554938327305691030475553894534852020898946416728093093860059852630919000017761471094593314843068638387461249898878469334944113924681147616427144003920755967750364458686977918810707177367208175879548505376338638391572317820747077705028741158164075299920636918501123574784265483485005717582043443380013241240052861989519075861883518028940822526016015038167897754708602603546148380880153237718771229007210083423140077716632049873042143381393507573347206130196677921438013296997826998741050823605902000667296301319229448652507306552189092817584342234175693297814608138608382880866215631340699869853346038209441220359272401368960914836987278312629121500293652633123868056860511552208053431589783982022135584809520130022492929531476480112367708030950256264826226565458198083122514235611437454737700705619946393250079633870917722779010867085173380055216600994758265723924545700805014935293460155060620561126029943082882840303810527284058425741441983900498044324216371170893048291662975331337080020850368526307402312533640414965806233547493212949338018484898861821857996072243047118518372861265392527578948226547785473667215146448760310148741357468973603551657201658321388011741069489366899455937644426613411205418540430577235238554535427969359063977751393983273203706744818703610003931835048193016910569697616840801071421378395701246356149500046563911036832669290916121248765466103140979836921557793846433222759764425514816226540630649128622029392981669350104548530942019011257039118989458842549742606879518951428312344568502152719693165833357191927550721743139089555590742917300644017449434373934029011250702660318037256725456579478484270514109311088964209834450984969262808953512111227036779483514758225460119931057577632499754880705668802378621473355434254459077148649840423495440217359358517691135467747393615822957265720548297193066086706586333586607962456639639258071850649742608302456551420388613623304174276282505821343655384870832018556118767511121142880929278159545882334070964576237248070147278406009982133844777990848090335086403424018828283919300699431533624168025205652654947083387306435307165310111764276424697817395979624883589317211321755510083528200495954965245180947542829483238886623568875812793108583105425142113534111450349568768894873524576604221196428605203740159033934809025387872668015001880443204973623869518667184052261002374626575418435004408349499957619972604698853370852876965089708382253134886813134812490676060306482032081580347108224893535118776825184171513846369103255120796279463355815718287500703031616355821910157568540875170205324950757200932911979168887098557401193568529852211972441881018366776474592326598921473745897897630668091968373293496940160140187914870215080579475664490850800907095886039862372331497864149440490701651746912015352873022365885123343968362073077047442875115842537836426178552816066060386300757476926413133679310634222051919782717846328955478647400360004349810479293055918585108785840819622298981917261559360100987918201023147808269093883221411858993583977029469947389937624918160801415830826176602341869794526611103623056316096859064631774925052765347225528024354802026671276810525721629827859830487024195221525059869454481849473703457752010536158899079711052474442086538344835553711910984015597939822114249115157735349380961896889028099741537687430745006434870724035462018202652230940450260999798620912788184224230570468078232831405166570865378726222815370124790948655334908324494446402166554278479367771506477553524234082314437658143800923005825244332046949289693551332177720654181980527138383886415660684005842228115427449530027455315442783254818122042155712317889136366610148894566802210370722937052754293553989681254607943555948480260345200217566120331019567273496866021643841300358349025496284732681845142390685681608737671332979200463067324792418669015112203915986909050294958884636939746210865716409919998202097367684488744416429188154147846507851963434782899780044462855972566632244514072470515891621912940599874815139499226056676348841894372256475530638973301302917335786162794420294388012605070654330612627487582936921974519175722756769888046465244376275337310345478512459374336292283884331424092152832249061179865304759102044055994500377716870491808238763001885815609358368767857626234351532936996035217677969445185423642170319713064857160819609052903811652347908073217675208363170457662839959935223464820626093803550603517712909792823541882759530671277314324984277517314865830143427374436443988730842949117439952882985870910695309516204744224074758038988042866575378385033685014597552583586243409131429499227611272180483293024831702520620773004798042831289526674974292194123622288537348491675855924220458177228365365525743390030051875166749526077454136878865694351764977416869240866307514276718247748825569800190255158957254627090050810044583353943111945562323660300163568599228900313335719022865123885800226374466346531058226719112293886145451102655691204955292423542551404569536659524302421235779743806763444014070406483845886348008853940705150352087279733730179738611947791655252787309771768853177161845638130929917636096944604470720810023656569150151835421777090336413263923521994579558129213193489868165103826752262425986354813958738182729609963543899333531990857877036579522296541057154530195228295434969524489281942461572160825892326101053480426534813060568481305667825948157176042804555317595627858624689779400085926811031232201592114059634444432527605640501420493699191203358027665523667990530305555465345725855063064353749822861015136388041557522041078437448260062774655921470255724714388884378679578148544344968318864175511264314363849383412946340638567178217885295075665066690526686698763884314656543828669365645089004893363086270601323067358267857963980306965171236224211129734835036870289315868851572124853087558872526187306790225764572799527216351615413214391333659632837930111951208453761203420757105977881665408471544620977338340741626861285059308390184041735929132203294240112999593074084787610873244007445370765417038277002825830035636917342589851605613435316388085316607992752672815634209167734568274188791830184895554340536298729418288254288507106378233885613502445329174517654463494702824533369981397219196033217166525189446610978208859545029803668764689956655072542817570149691600793124913076446930219449538783758882574825576345268396749480713545668481352550027680478204843091510080750564569816985859624673465494278621988817965644800141843850939389514663687688905056771663198361100006188428114723800849697087051740046803703821500150598160901504464860084706707224151638642745332347920970707296525529281070472681409072545907998985117353449060506245209556304074025502088056209331630519769426651397903074570392164232704759904761431455806250240178906454429888841716529718029929008278160310878221691798861566112896332449082348883907671538394227396870808406696546868021741903025347645728188237690720206241137616544030773199740807053676029804133066541384013115580120628388682703055222617411010507405046874054799110735047422017223813450308729703901088887921324778002862455291071739834394339166485477654116535084649467517480860731954915940929543968070015133809831032352131900519552269229400728464994077212686742564090607638317196943071957536517057433199660895673356048941878712514023907569270078418987524423545118535569867571639417309429930180438094132433229624943835341891169785779746942403349186466403614763821643017450144227307594824714592921887857343970048681982017580120501460082957782905340523993292429997387462825644895634221581952600815170448757585044466547763588957622624914179473695528529711525263504183616497619413433868745380889244381296855320909862061503720546640891736813445857719306997860127179384617071652354730337736196457207804221682653134522264735828938966120681628940461653960829311237534880894505484912667063996595345147154551176815428194545660118366622310096617576939460820768524990738692558847665177300578595614215724577125347965442827056144709774226073223371774561318227482629344562904319386930254714954390356172788007622312650100660398079488948884287660442506335968508557937955568897544315033406138236446721720738046605100041624776701734270582994480978971817544328127640094079502421305946807394111162895665648008540220238403485263724001678786695800575522512091155070058728784265702281358392559946158370023772869375807687636807153618782503745394155424199974481215246936168718857791116707691612133757462398390748911856703314504850831597404207871026318825535252494526428280440742562472363751985542784545431741481792563103297089293263337126064893213851166261627961383969407680382752398728028230211328070685558404593621634796278456213410679925282328657009493206403335360905065577226512124372482556865726022392430430669424568854911189890513335407060756187783586969782705963193980195642734659432791294293389818254414350261641998251365059993747340377629963131972822138970339586085124930163359885874936140505610308765528063158205377443136645442575812601928535281078021036908043739783774519999500559532069918474770481274869504197811153996231398775548376031261968074369499356295272686259130986492549021514456186767269333814884426793181553892367985996101213232900053836072801801120457410938757519174297488390599740082804638572489332998090134076566143932486987796096705172521056792074542633509169481737722898791516196249889994527905645456073403556844165407891069932836988372940428552271692567440209918936514214363174541577324411669315176818164094334395164570240991819810687187554066635150811923855160110239538411057774203556917993175447847082696504221715032226882079733452446518409603095797589858721515743831629653290298420620259354091592768409778109783180585349829526651592269734529289494099905640317894712170115084068716048170317403795346685358139787143402209729302144942822986711179576713414167934821708446112195348680237688904694377921893963303823817636063502570834248018776485441724499568912116452762936087690934863061906102970699881571652233467254526240876002890859965624277333400576088351655372682115494540164475215276382518296632420540725857382572838700731699697753790538429816519916280562093772955528573592462984017581702205202677687967470280070089291250116908363420469500412392833312145351163372793119362979914043291931041910065758115791361650547263101674473170566935230390133723567315667147505279895219903932283058440666783366436042215199691965523828678692736019513626277580629143662839979747086968704861063288605554920460016859528469300770369214044789879812357514786086905749187981266407299337497047144804754544780896406355419566217504584354882622777622860212907208797592770376888507290588506286178334080950682848861881695931312339150103950109457739445484225618234615390168600201060737483572135325133076298488925568025603480895219089340984626765114597801042663741942919556773691861455945937357314085838698072445535434954684098201743294930651870125915595582848769522504124080082502850907949700390148488662757544566840975126604598927793324804142982213445023607700893438004960439953619695596185674626029661828297397174387241644756229109810007116285097068860125786690354828452241766317292599573221463986606475883996413535454080481493729257339741877710229306591171346382977181129708493876139848454244131930842231410965268089328379043746225730025861982327575574710238645567737002369431151304622188289384922337178691654738700274752167796983456912686975123820906903721885199210581128461709762087715167879546583688038737332959160961865645625558528464329744269385652427158314215539415017764839169150711167994652918985182329433520040595253417091197847142066498068476220683168523496250357188284691144590294910853395183812349364945815962160617450493004587873824853314582176015026779069865688945419182541819483096679063572034302287744181702981687354725927231582322062955143934619133471523009850524863279657871995474838582858020771504698678059522928685001024949900874716973078837440415070359279012283924970122221064462634553030521001468660395140776257556649093456852903886529812246529284087698287059353209685891185084678707826536766407562490065237352519440199907168786693847178917612377072649631460686841219956739013026741674342261485467446755088338457997871729558752209887580682191961265762417767062010698216769355800614823770008159149327118914019059718278452162473115436249963639748265182988065782906124831231992373700547340262063096197535827330319634925549478014014009457924337151099916011712004097513907502804702075460866053224983712027838500002982504953247237308219343025338572601197031854214232162313960991002788384774843255237114243805798641884979757988523107184796667788784920967433367413511969821918759273253791306470418740890192791686032483829115663802939338685285258908943528155715445464476422526480239646543016959828977275958541122256924902652904141493012600956434134746436767033591297411559737356109945421247163485854804248290838095743300779206934910491445769185615333787833846323190175105624163082833351282103335685841070108216743549790250335130589959411507065517310761621105721320230833762277802585417328016965453171101883232773884525132215836357624435621231051343163007701937773888337268401854367192525075294276210665462016447177048120860652050384118267540187469434223539277057216048075337089173617268441278230929492490404578789517152204481266668574768651074781627938078263480976040527022544149121875353609619563938883002672287285525586748250853416534256392961734451392259841167295294446748422317044393904570728137175713536392132307697422133261708811293661618221069747654749957614148307766496436836165142233827336801225461383895644811975375931957525509213004772761890481055456767858012297896872523283330985420782528204002241962007695879952155623774923997791707524398919593320019876590106961443814836672476171390866123273524935215405635380521450123059625995380061332970653044842120509408491166078649576025577054888535266793194907751961953659979243535881107698341385066235129112613593016128277157738877425843623741778490911416206208941488840021226381551976837688784917063736942304083897424250754873619808625467121567458242684277919127744592403573116445634965920834099298998918788037217767266741741387392300833351527311476665293435048558844863647680039885750291938625680422168524958050471130436985039744192016412487487355781187947060619845515464416244236413127601362551139315762773834270558367604016542981024954926560426233013058142697009105589008183133520202363041091411495194636013444679385023070116243114891153509223383330703871165095841283813391271390301719904031921099721914428535454247104362939054166998200500962666479558671326404788493474927242408288319808304969348748664663258993544720212444905939212305952045881919190094147378316570915004502990568847051140261438654400292204935586113859999661164920841325066688747893374216259562176761130411282865241036961008174673321387919656507313954606168761323544533077182229783888581112728940042271484201657660681408743924930947221047198261416707146029092479319004529786573801973185381594566421486687374168472120475156025646167115412930168618117852244244971598678546415011461820620816666147749537638540311869475282727449310327203445663991411170410984708364223364438381839786993872733107762284285379835135160348341980288532585040774003030598186996219550508934338553023144659586601407784964427330500547977340201355403237936122167528340718421671456798445828077036263171746011022113680245282592388593347475512378315163209019274120432455472950491342723176195172255268897160557538943556509164868789979425327449827652841645222388429332907143926353364576209802357665672476096602610569881469079206590438277453811888141997279305575591444966178926448613697825389614368646014274899945529886513557124253581526400746607677743684893541648693671478874903563870282278624537179436706688938080319610230888845825425518466682286948863028621361215376869479973992277674397114511968363286568164042510095254736804775444685965386811125897341780432656476593932720693003027786801295925653749991446671152965046992941611127795796252773130416083356316935995152770794904413860238491970095901314494285343300294226796011897037490993362460826991010646114063993499197225972437715122087216706571687005196208747280948142664595082458885821408077933762731864021360594029482985284925873944914456888521971194544576227712138897463076036994002880762227496119493316602646326027796773820526125165529264941169042921030393167619041593650168300964075493086259540731929976974205907408106787340954165068861410115090584027971585061968872626027624214309665245188023775320101405066822187350640276142500862092041732398433914005928699975397840843513022881060493144024340519169692363145194489178707732942518853181954248670786542746769471094285014352793618712982888872628943579809475119503832673453025095276419207890517917966252748278101257648691752546048816990005901063154979594427533370884562193274537336571362248645292014762010259988148646920115502033528247395465701088932650823493405123478105193164830529053513944100193992138526889976508580607340284724804529382293028624254148843254106121078502897763882149987128947827909055250420864678225882847195980296589587972793978328896468240886886954565879468116280895710830634864704359116402021688091892243392665362162710179363588561835134815650844259295949373228546470868373780456848926343524513008192054828245257390997014673572649414778162851517154493105077955363703842102554021383441003906915165674561672075777440391558412877566064512386661793336390652417375438162942940730183417584910321073138994998459631554716225010514228677927102104087427234971109493395069459270456587705195421174078891577056392610691322839094694483246305241923760396200228521570038335058250529330760827503839798371390864106187798196573935464558734962961565122234937883711746841347117908209868581799524559170893995080547959688054652087295239087395793006677749552844409099920127948403694568041940255324609425925316869022872057096445017308844896101448148104973081312678914094951177333372258103551431567284629249469217480121475448954310920133973178603349444490231181729844629091749765960978514889387617013811998915239677322237864245850877832607301521695117372761417868281012635899166791454744456031910249938475872217086168694792501657497840206853480483004529294820218260803189618952579919709939931351658115714122847019758658917724838204694759665382984828615882677986971084980170203863476996120933935051902900990627611087866430396042429014686774502850536090286725429301605231213734427158706342481955745994907781956673012224725802560727165066600220421250909205286827593438508089377073404966084600511924571601858641743618395148279837246963268316426437530662426708380947436378493236578917412456541273507262850550954479671975517683783316299362040365252732939496184729833075837307077005530891539526345370108264994273058242529337326669065326123235863606877642101988488363713566992829383356528086685454402377469171533052842488980612065342120967224419860431264218046502190848693023974336951565523486402676494160302914069761141150611655454372206087353766773123893435969776543101006074040023346999426796955383555184683102228408221933160467620915613128730417734395239457379554658139186316345153724364464239531037080296392854580185034369289970117942130883946513304033789710762739659410576248275891188765590491673715038873185804048796825569046166939453521021822216684731118128098872928308990943841104223300332512899604939415386082861411415341498768998623284336272939976119961386251711585425030241454381343881763781299146717669920599713136566681759899582475012812837336783828692190227610861214346157423422511582597744678674750599926306638679563865810043319149954060393775441392730553608944869782344479028406093025767764308439323678150274739810442908693521253919103886173808860192370117333212734399415194257824015187161181485428906845073820252958527477661145864376327476136928005216729070451254647783771866859689118002416705959205665602183426893374270842802223761900911348719638294620366117519553053127577974199146754981213426509218365387958953731284044195132884486695679882721901586656022682001860705285990084581438177548400910869659491533638831591374760602646909534209282751389366896040281346518535297811164805445168749613130757832801671691505481262607103373727458091119081221330469614915348755880916530316680544998659715192484227076389391934679569487766200481131686642464012414396708990992108316105351583685832500108509374491485695806261035008601503564560573853639431839540579965066228069393979483555493326767980235718838210114233325588472879522793239035287210979855863471763707290464257675670357723763650389346441727703120013859671013362967847909532205982288697605727171885638851500840206801122483901651750397968296235352194949085587127433088548682973687758560122439721507937873094375941466221849270605956205304033850367470628538808449319490565563259554424972303107713835692012125248608583173025746375447760239701088719753371466848169916517128010069027600837040386683169885653010093469405878144612450221662687399478141500954770840150088739526818098231319383736755667425737163250826565540711899376070810726053716044874795022155669641426973334920746788013422078737963662017059912814935467558381094612112429541120383713365935085163238536057294814981373175839368935345528755119514252371978674004433386351106756974088378357777800226412644156390436470919984741536441950198103356494111525643159493553120733219431609847649120288488652799589955269470536709095580359871572860303916503483195536859659658881644216294811223142293598792342739038171762187558054898381427674916198764233317247595037664198103149444672056523511890601667728156872325678618176167632876748822414949217569556552568260629084663691085925416295488679619570274210542997704691143519873122941659578258241984004325064217615666530838697175723032851588346204824619922865302299150841999911330506403708856965837054833703738531711288019542320087548722349412866833172074824107531546275082629036420048509518405107791609896061588657296787553016585104122996652886256936400121557143452575090822091060407603025628583993368974292891041861361708133559942275572553671760883118893707543304553078185268397368905682078850701961744500117908552336602297319850848026929035818609905415789777125462105922346496289313361255752632272347867609111302610132628090601317268995688935803629163038584030704898399039008571365588970260755795003551793312121816438820656756536221324327175478559278122425652953081319117933538412510930571061100379322345649843696105477893090146843644812411885541650212546722169710477548178014354694426914081536580314469472980731384648702615374401697335295870549731983801800868811938123722568830624053362353519384318076391819460189187859621718735761844547297298839896281408657152595729597390795623813979892559346689687324338723550296852899484479508279807556122327266998702717155299800911504766651486222839559231717288928879444675604062520891085188899593815046957941375059048212890198457013498155754617817497066791935959167011843252502775921925798595164968059309770103186633967134623158543395684155624552500712559493248146339077941681152069425157967072840330025189188865800500745718223497514895983384346660835913686768566263064667043005765551056901437120843855211715848185110200945385407560925156430863543552538624160391980523739306522746772978687447355866291329830656375216797554455169687355822112967275362471890368695938457044893356959606484798719328685998446940700162114488580991824465415323350975284250198378176104236303368512440420594266481658274083387994350358558204234341003338904310813978824552075186375400454347501007692372385308135912894081220945184758697489571127616818462445294381078401636603548797360420927061782303647179645753999870018676289321878725415389220274615756459380322921265801304524818332416393203656478235549798841857105088594330510216615631294004472538225449596169945513296896024496884440892286082421465472606626442316572027538423522256556049080236461389361402257225204257641025372143103748444297414021368766937224132801308444559910196225163182409238223502786397481711482000771158763341680085394179245952383600658233347123695126690571745593467819663793437256566190721616515717884816833590956234934814707498423810676863934478960639909363488288582953606200760562996971785046103310601158266391284664677456083184202528655373536383919304800861472248299085369235744756430521580060960828780924966722096954739028642381049097956770186295879269204298898712788179573782442008781048405419721235594243342678432107548684842104978779452160666747979352078979749048498024425274767147785469244851571364823458768315901512763548181149699698271727941350423317703121697510647339026357441024511284212870384553013325086533701002718519414587832982509999174366303731671721739829455801907518536965884672392236106513834956294558420668769763179627691063548580510720526229809926329697249381513796115731011193100394541741963791225777334695495743238566003596747277798590180440689983145371673718713063133685399918230721621287345263236142056310178700941730359726828356532107640730633781940610424423544644138356209189850991876975358789997963462627687242915379176429117139650325382237663151361618930167430666250785968420977692765005070387910552362451286023214998444688038569353499098937223773735166561428478618318055375414587277460100679923244537310797413916740243633223651336027889570424246301784314850243891920688173864540350087890340302515687902042795783512186069001025162948855857627223623267218871665943536434150565507952375737936998007934119152820481647171044947389296238158161885564233373548931306318064403215198342900962806169091042326299530956920859091475288101646971341552128198933299480907344859379755788687208542887938334596605459137838020260625643929634549687721615742066732113120599187441465823053890776537885620438384580179390913373482812781784542120798730327145163322556821616859029377949225491632357836552037364847404242663854602508150905004951129402027846506789799711876387527626355602264552088998870030170868535594057281382541273041303894325235728686125851320486011009944597661875704769597794081269983990954576842095209034747692596004846018623518708798716633006898834138868617726076756382065855962965189580381716641805559401203588860410467316284194583846605776067437026538085619513966378080927527120809940533864306064416251818711935156325502881879046662619972441316891908045128545464636426609217797510701164036440224847161083689409305414511873950516583880766559083712206525177357428623265463816693651950244078864704711441062568916119256498906643855911792777164403644975068766659911902447053797598245704827025334999866709899255807509254478997557074012278635650195739080309248834556205572935801530547199587884191942148425205999025700859116963053657894764917000905650694118773839053399875542628079691117247269512251059385776689563833629825666754579451607424376188799820244944279952065848331055937711777432048360700075134726321620374491224504027243849976223089888912090179026231253054579140640481478892296264656352513691583536507794005448441864004521005565487134925623631828596816096964580910021935636501977019481166950854579835151641398162616895047743800188292532811816294814284805406471422481919316381140853971308755056412797781691960747136009139866920844579542969816747808285686104502133510036052077359593359822489149957970870832816540283645096657363806794708006933730925365054419309255731242393680011931345015050482448986625998484951078273435609793857479871352718349125111239499641612185977668788265868646320003268816024825843465958009511248535988286658159344020709824085242943477998969648857217754298017709428254464951655909019377711923801838046414906783473206951223611161829594141052200011620029814501266612098754307404548733247628678473454088049416907257484424283111163616629449918589817808413378532349042261537761290896241715717116826386777846445848377037406092312816210374656848792530223033718984893407435159929559500736837774708775172595789048330268378390163624928081265204814317863200933753090809794846468110405442252285470560762909304691037701640894499153616160146211594513331312452135229424439767196264790626052675132095367286837006934977142265166813458038267357924054201540825928218418260906248894873189760583060092606555327080499610599089818699762747446357189716313473080834710968757878631084020332030746808831719198699535279384575038929521497621874473083807014131782794508031785241869741093482761805732733507842140663011861879078728978982248842916163742983701766628996122013001945989504611482802076823931402260904804552044617513335907009458237015644843796745096900837879155171510385395500581538092303784153176212625253650128429573022460504856213961349404663871674874180328796890089586367944303796904821781256284505700052514132191976149526133096702145603177934539177664849091213892424551862438552612703678119405626980710979969223825506800271728638118340608403265005961914039829821957620954688965997761029681236940305741270772181744780194795255572014641700961138392370531247495526847033322145042121184287982216350351333704489619703998827289048584200440105576007805977220604913256626994841776007333687531652240877312231896788978136139905722207600296296622346093622157357518132391972533177398325352081341571464182121263589170485091522018639491431399184632244369464440662572292118503587602746310635413755913245401211384150833312259912675672413219750332930939040102983241332119845720381047154518964825230169427420609198377229087334812344204122360945413405792659217968852014530130964838108162594482387936307287399007329636939609263912789313314225865396288946416852265980107864726154325204595063165641863965139933995908880851916066926408979187811695482154091038686515536942828849762353570151745640171002315474437026303515423511538790187516504309224253426150749983556695103103984677925854130908998221828599884092115992124571294163083561471651403527818571392095067441069493842358899931166286196332960413454688894458814939160552906427180070981856218608120985243600167651675006760125836718297053899795568035972592426707819010604083939420688576302452169320519849094200874772861239772507672778568920004262657968976252784547394748783172503575229779788383521667390765484391173481464098611982600571623616722636028308524929374562103158283753697957769276839864280859568775104825836195214824763948985788797211709161464904090986870153237906857438596399214968215449731428942669638482659043076921719514201965524307617152254039610670642495876661734241548620175817752450974002659394836295269357839386698112603411359434548723771559641011158051749997574774268265530216922271769637629347728874909433094654051183470621238773319348113904833488420253488968956875137555185504973202854109984762730839103058201486939426949063487999164083946780315012879456274346894594212872737072304188193453163630263099408884356803392011395421331719581213282621818049560416402938051477176182890172904846826656250015240581847873403564538432588665780016545813231829439711357341344256580401823311021430018051535737132476812525344122287819485284946715762068543087884309303615007177546954714755958860254505973925713121722795273417135656272800756746379017029657966687235569899849442915180139607742460086837459607238644508047997868324334099969849966033956533546923414829301081592240573617236348617808888644511648608240258270501575768172095499892912919341285466766656369178687016509745858072156993541174791814248120331809080490751991893198950955355531342171885219052587092023517537983426784836454067584888633171942548018619904221460454535426134143330218392384492284152920711359042848763947256355873550798397223645838972969440014910062311846668740660273841317022729418704277209796664243488743107590691137926048146441296874277960428499300625348209517657600844693548232592106448954686966463480360283558392391257639630990653658915759918314926013840255912588181823942011761214523522858611058127352004871486236952522177361452511340864236313367834958096864885271187627378347049033277443295885745037758416723177962105413783747205381604483484872732667388412494141024419423814646731937628121917754404781096573061296484827648927477746944613927857642149108705804415281515038555713639796208852903113681045638776587924984404507196707701517916209887542085300411954038762706063446465855799785005304600774596612104747776385145661461381386356176932899420233224217517181652751725872431263284154497732059168440070141484877789356970210973170547392477141351035003428590476534577641557082251954566133583082249809570616951235083962991118059337176063807384874059674817333297239968206802489582300800907898860113492294039366190824926484477532290102297806275759707509926396814275039812185042218205719780966957727453702885833982830317400423178162625110436883741359265233873230672773949815572356494597624463371240022258230657120997834682931996431119819117669070902363896688575423611655275414645931168298216930642736678558844427555754926902187384389496028828077189839261932546609558357466660233090907882913814292073685471125564587920196353170042283207853520878749828659184663574120169312830957002522951321439878495995144464162104546608043275686734698219404714148111938914391202712707656598053496669292160760196760759410903968928715624243080111523513874363242022522655780600562996213373935747558921727826105650437872955001110074045441291199246599310979233345017024148693492873593242883298934663615479533650965258117459744743447179018197164008699386548012849517562962704061382060797974220589104428016841197870085807929379319637907009943542936016239772923593883057273922020473733733334569382286968360311987019116003612397741413068137018582313259741442163692702371358473606020780141399512430710214465612719014871168882869941956934421147216575945531794407119261353308150822439828428314005255565969096485245420801206265212566279531511038461163872259827686644194809238616453928016485484467919038476293882723996405458810903345212249994199909592380189889972464809180815585125960765534999755963401637142295097844017282647445857677857403071445663091189616731875793136835568953086805023517439929621517215392685689443694958369601262705673782932882972215188294932579422803180303127744383844777405795548372871996123008805963929701308262436331742872070768720064138191278406069477532692160259846950525520331897742920750135712840375998622281085844579953960382544587069433803205312451185860857501748001119016752146818940722866896776853768480018373650754184853298898431679247088412108129163910137895530052607513831970548208174631972802346387079925601895201539276139062446206164909012839803234282656622874117280409905825879236789913178748010459968306707731172136499004088315236089136964199838392600694120348363988032124899191509331077640654741232968149192697339424298398888156613451453301619829159350422295909855540484159157833837935296530393646121935484798151149511213769182964236299660195503977163958000871850488681115552365439546297060653636433326538885759699971233725049351944341494304377916931464727959656786075743281796761533210232996548344607986310719748146021078534471501028796501606917624170119845979597202029407439323331777806449397333034527485452724005341891638162242581097879156811919269180167201607188428840039806952300570426315604712981820241604181952253506724317514363094653131074467617288159081903555788853737244383549100945931919373068413890956295215529283515631007975418854001232624074884310505302854740525714423608310027568242553089777182481431575848293703713452519983909527121727676735656746903284732399785785783581275658826454283441364947820605291853621911119078799309852614845160619132781936339323773221869090182663199079632891201411908913638239047587579048514137392657597115343660371599874120612739320563205352897131284609705029494375738138910371066387560814828183666466434521143540417207953222330804058580398773072310805118383568715944534255365032589130561037147407297030036860189678858864511787783154319314589761695038799224046699183174949768846433120813814236021185076622397700076657668892784659187992784629001402471511240567991878570345749076496288829796305039080367993834421365568127425731002731027047475973636346007032345157601679300454926846235847585459771724930808620880276643550533349504602827040490387307103085039137167519521493300636869083830932905535500842470755552848022158796614133125341802450258512123939916364969916417728214604475358559196922424973057989742354336743666925908006476979949147401425267908371038110922725345159545088363744257232725848742751269502386165171457084190751741090057103066194176594595315976042517367154854984121680372550600748868526101048781338274299410030566624642099364946426017504998373133571215354507645355534082086899278376690764802137831209816654772269834725075452233022391929513962221833719434911348714519188329269656440387142733023505883714088158619189530556393485483577190109878620729021417784874227181877254143857313056452822574527746463440181523088094166200873526325807852657601103708223152756191680517788617504596798559975575865648051139286169207149125294336386169442998302071492108805231467747906838268630648153457501845883721340079590068566103973882578788525349704688015735639113813037647104206825396654498814254301185083687178380858721815850797048102357359053756009770027529927497405372039354774777493457316791211700301273548044400326904328733574743272405399551061187647852900163132011615227897901760210366964807615315895618218594471129844535295211024238515553282760649269150716326500916604837308226171925573505494131749675375590382002191983774306854762176279029111649044990999660490953024523923005136880627969342852091791604199403810966553359389580641360600401934902395081487186053385849369740013742062792690348470119710800675598576205884660741083073923035436386763551894748892104676022922649372590589060856910743736842533513806707247614369625399312550161244693439394967642804182278115823852822059037262598436315758958061003592713615752702689175494825303514029945706599650540097886994338427793040316238871175689954489387058456214728562193999645313510948942978892968434700345124498511971247339872711813947989015916098911998599069002297126128047771764572658083862221097860270343906142497730643823755669619088717161294917073396514258231238685442478849349991621094426924423771253064476573096355626009971911823891132280883313136403314925917487999456758859283755332857591013744215731479221717822423627399470513806664374343143397961721019749446401564079662730047579361795679295489296026329983277264511979959170727599637396171338897268382995255494143066932142879592812184916124994092117740579201374524010025598245235541275826572882046899354143839806609161015283619450697084870533952486513092269702199442421462294104954964866685606427178398299867883074354502682843883713598049762783410236729398596747606432003546070715783249277192780041230680124951895487865464720933050955266499898611652046029066365431101720359486289496695988598682272450220989883742576792468121092446256252818968493807395711474994265570941618614211493251213335732884262449680440758868657923388018260603252297716091029741145382909014376900317031360140866103587428894549584709931037014819421352555229495177528932676775596176037602181672431028291494610144415388528610102887195580591154575275203620134627375391771726725064300580001515459488164735079980421629488766991767422626369520207030274541802297160311661877463195140983281966441004709218507621382762039966219732832090160959774796404985565869453548395225349144320105867630690208858810074098184334128441961976422695373280543180584364652035412697614691878265921525484091349271540228676550596436362120464748472161064334320641304101454620209868060618765420730498831461707998238378523578217936947702668884147794593358256705362363956813416759508024858763100826589979465174655253009947275881106763143529314450205295555919382316381804064998821580525889985557323058287714770803243124157685308402670407572045036567088548863455130243107042648182427826370803856453433635529242863079402873307687051858592771371980374142074162145289237473987661163315705094070307407090752837527929710973295491649325092196737537952147527191069227102733169499886319583761935957976224750486398262558187937268032313284408201660627280556471106560298640465803827982859707961919628288282008067622655291295085443540277383404754849358466497063982409487175835987097824145927052932426174401757948820740339643802343967986315407933778404308778540665721480693370360774138468052581465810480581611239136927780583663772915345014929812402080302723752746711680159354057475726597735963089681270866917650472774575353017187416506528510833409990097535632225695196647637869933776182786313202911313089669944688950474892962314039559278217490861139744301686578285802407811386959381836971687604623544061738242106694265274821443964687097696787839963216526418957104648918887988060970331513107141998488948134110119984746051923665746974386713883179875207573323114071603628653885226396038869174875546930789218221836608674663121495160811672920910758120171689215200867168898670524996913814965193350569555284184494756446760649603815457697128977305676251635535082752173251894927089500548199933158111814878186335679920590626944647651976217564529639526743770972158342728970326600201352499542911405460222999812416201144092305673417127357662407766741341072948888651660255306815170591465232849145253924608266042214405142273102565391265065703060074703083189262840894635189452157235534373194860957648597149815522253283173493467701711286335981943441434138253237634932981074613819059993684528070473323598724465918505681012918301849771387639071434960569217600244278014166805725912538356009071210021901499450786605672203370729753232018818482585922360573220785510122282747615067627677926792552702532657732395308866468216154805011826466850354449349772641931892355730016322788854620946188094578456922440240686247864540264650337518641384518043749891202088600710959581422362773348881947979376304461837241908370476219796254725962428163654051566202819604334911345601269840637092718780285909455745330090210880731381877423035842183890545851996848442667308404559415389504820790939325200028420267741141168146277486682444685116878112355122538086943058263156869123883213644196397302892188839163516965262827129879656734612877812867050127678257946564613855855953531443045411475031024513227165972663533312090765370171419410880135285496561580039676237846461508449515419483731995321312698063884338679027860004934421076924270923893007926876493744240424152986149064923439834154690548009452544205544443548940793276439212433291308202789691103627942041540886425861151342471490020349179460431201820057599298816096583850859291378795970999807931423545336728665198483635676375040151724567568099583803344777651101570404656310756425453378490779145369255983533059129779576835440923865215290904269252669486696301817079342383434247210929512165458729603081872248319443373508110427520659822678951348882393501431024653732631204842458629837221958616705882810806552097147481271715074795915364383070336852529082251451696490866465889581502164582079799692552564588206620234786346707864473215104252464985708299135996786483905037429339715214170047612545715693339981018611330730780591348725397195962951405299423399841720356830814024101428694864477014025867896056007350292915881192008552533397460114228841227648307133310561818610850604571037659333710780577468948032407731111885773732985685826564303915267741868218328700984808936079073879918420361199225722641312932158347762791878964315920866621342550987329017001316115151639494131204986134704864477946210142267104394984519118679278636160840319709846248091944066237232870286561794425421709296929033991337771921239593757018477098924843067971878664544497693849899999357073319662020109021821093694490122608528736237648118082008454540344533428855561327103365251360075186420298877233584210143937395006830438861213394648863221553824508355536327517674937299834655800536784197047579965190842228688813890437309577871005916157004629613539773497664152328987729036400627127040184180015137610842988778817707521299278670807217707864738555150145728688016042534997088524624071219952226278739426690734576349578466368118171762544657223725597679765601807039166209697074705686449008456692442852535883650114686183245314881050898582707137629706028056187803221847998008342795533065409453462076886320356857180794491188738206735821792259896650714204196261181827671052183761315943847077320791220946221258524970662251380003242199309233813245294168127234937500411943238435475218213808421839405691315941842024763103009031770907228946172337093937367813988782606734195710574793259921597672755899628277110657010275508237550401379033988244088293227061788879508813692670989639256337923028571774899398235714995975033367833232412562622662071232437305058040792729336759657290680114138480318387446923487311343177883829401882434684491346694468564522482508163192733433223645481968158147237539964015476715677935119190389174762401029609389871076849364576115023711571397321151911131595469314038740514125328202964683260778986075139676019209875185238536715164124751936485575595449428704444913291001060212278057889116611262292464654962559730780378511179858928546707835076086400893690161903538628905877671924404819903993883478750521609635999511472771922497985119550861544761750095127019684662842066558536610062726021220720063407263067583826881803897133467821018339199997020177233127396698389146082142076299538395541687548271348057076019390987319153825020161663278813090833382060911134411452074960756054354427774546206045043992308144420627310831135572157014571754628746799470451331388117540338158518992301528636522942414273819484638230764533522198250417754584134076137610707891790902271660385201932615078560153255700853809258351000468019780542016665652849774506888591523075073877220656228465253389296353926339170693572665160048577023437594691711828018988468189420747860999327050856720878452035435964250119588453590291238213126225304466045203833892799995091634818885930093262915965446194598562440031570550900152492592820621550828030069360104226288817539891258790697230769744698684231089634963451547630595670744881749816676814287801935581378614519871146988021025619448442586663770427735932680634390970562036142846430995025744455984712040230929038118717847797472342927884570428432845292703074202818181411433482545054766085682198357523253921798665718331143468556502142894544931559173339544730501606576858919544029187836633159268923473376520153252548988918522826894847881814912259091552657098337959011342392772125965745513020085436304415064106870954671522891911173627930677507807372872701819484392985133000534388486026592541342937035376413664072338068537518079887388366372709217744089956435325395630205974830837504582357767098823938693149751853450785480779856788196043268642760362807568680019931883745985530556018360715399511205441703551190624182022356678959254540539577481173009604845755829168987168926938121110287159997100319509085652551125415687025929204384751804227249656963388103102975369299879516250400124934687678498628386921228275090931759633157926326921108580144216992977131630137801911348390024459262655528387864911020568584863664682123371386474846495200065289820621670624490848549719396686910811149400328668232262167641904658681393443134329275433409287128135563380738691267409508369059227659233691396113266239199564182265171636866002636482615988385575907247222572194274211515079548445229273495574063622782366608424750814718241664632491085598364987570726919114383022201482686533218277671563973403824745865404199966441384576338033023288430631489308072436213305012191558478817383785087339719851571987231887752741199783218540752595952687588097774284141991461631192799407805738854372775343927902638949377267105773447721521454651143631311083725838321406639497386859099534328508247310615102349034413023393975394780842876047612953233013801344947258138740269124656974224970018725183703510851905108582163860047810909352129997910433602411659330618451783396129726598492933633997754498983599874301481786743095265752212069528599127471114967633755729115430960647404397198833817279216532014538097035481140667188320039345471202694836637492352922831731736801501996483077533955081994259905960210604001796409166143216517657009009844139315057112359093226686436164595182800690884691110340250857196607000036025970971092345190643074788572868820744961604233450508480296227858199194490875815593981570035834760392250055524059545024730967534472670658100482754877577862111284211275862783108446827785421843816479021295913376282966498159068628330212204017191410043604026699077940307424172497289153502161696429512071046901641872400153251360864164857489376331523650192966592531425979531731084207687699041322659872760372109023904105726830340836776690456950226407680051777768777959590768478702633021635664353517193888807920451868753492887711357172497240607281828970767004216617462916104826808751850091497965195196963298188164892888439073121476031790556563459972783342037957035754242649778764410458780478284784837343130338945733555559531289898244208761934103734010217081212968488024170174590528371967538376961985343952091216732273151138976328985951804970698867598199347050302848286257978728525253751231836760407975509428855109967097595301825261170072729393821452648407070170434037328519856256900765940525689555555168740855337243567977278631592862345456126618786103971711399089090803757331981483187334366675008397761694236048496173156675776305937940430966520186567119362784710828064052394352707013579832084747474730761582686982436698121899353919063541248795799642141677721238902581865532390311109635003435704291207852689312947839600559359587741392094665001825631002785919034647544301064435424347302338352779168954597058181027662899138194378651606049532523008618419943717810612747555718121903414093336951281075205377673464142297945351984083854676672593423445452758549553482540005100384169183926477044144314093753937507960077777591058591289629601793111055977194332053334332145988992941121390188178146671204478791036111962797260514900247159642727030288893526721618139765528648240893170346193365248701895843263902473668036640621675406876355860906767474608440348511873601112532734287806069707140612733953985314673080577954517475471111382429120396472344241018104236437517829329260207520496081223031603246645101707604983150558072309885754167098365584703533290386105245398189062843346810072272009694137972386762247726345858967152931488936011528209622859482616646188801609922335894782748310057561021205218398587598778426894823121761190216289468744754432830002830775586534634531581068925170451875687234274638837765566460143708968512061152078350615813364185881161716585605560476698675228326237324470376515680145079466307965330958975544334777925207363626062042972911320975245424032083729603569174583726008836708968755014182879186544895415430611892585460148945920301390025002730064307258563571901287001989831960610046599217186847342359413508057223563074562163473535669048117978124336903570457754204417594253856634294207603413186473146127079446702113761316673782196948604247971964727198241603808469943044424646126200694668114170669367162261588230690550335111520452856943568602486404427471544938631168311810650542348628493084205094360104008670913015834878983144694946487457843299221255872590965614510261259919972495253883854398684410683713612385219625923474841691416495167732007680024740587236058657090787329465654885205479760128564189247873803386670091893352432442821097197153670829782770792220837395872954811356864617493788775906202190901440440116349203686680970244714575874662932637263157638075520377792086432356919938781272263763570982998381537148716083554922921728567011828683640463838655879071331208641326665192687112181018906286806386652999939216596356434656035636799454679228245543901743427034827615926037646599438240311121153585089634994179507884956866512234373768789574200481030027857656557415798279329512542630644239133466078893086969228359377674975427572046509354672082769297710998771006832306681924112615996402160857585730062378617406802674165100940571972631967531885949613061090674233184324066774158201482355870890309490953073020224352838056078298011291384120402771004848429985903879622101327934553738880611369099786388973345760877399668846260204879523041384143552032495661342144313021243398222919694865966100136597178220038370616888707629588132731478901709792841597177366222531522545308875676879272359321377853353071945816344121602108864120025637935552308343956281149069467966272942430036848977706109443142067533446958554627540249142635147480759699929751192941463458244480828015361586929323309147291397362959530926198687449107629592084829637956525589240061734858515634161803311637200644736049066206687380740335709043868244549732834049971375890494387991235418278087822346300009210332412294735048846401153162801229770265523557812656025985569467973634174055507506229738700007992950380121353560517687641730560808400668037317332021882156639457361766115246525241077171254801028420221860825533918090842821406249566385752802605969446117140589330703518976025053189856179595194230988703523829012730384383322555438719426466151069338423619012874123382056580676714088947310321693684440334601304357792533789435969998149202184065776301271564553115384184759202993747397561377074949548555936362199059465270356722614738190897967607661236357954308292501170931389558922210211898944563397745735153784963573772534764491228135010082869008296903534876832978232909255923376273077993049095838853518673274777775511344453913170246764063137271199345026403899354181585838972780003785915110600136626905810276543657071626496578682511561298926478664495103443137029834746270736950533526095246143929100205341613245573735468475611257849356706348679355699582674786004915378918453143745992139737843091125033011259940892603539360821579652234729290635339820386117722996470054146154355159988557796295552442608149556867862595151457104177397353298838936614788121176080354144355317292584430755658718613145808200586288610980826875417708768684984678715297677689001225447991866538104202664849334113264393805043326718481693360865220342230333068437116243553963781760064789028582190479700453937469427522235650463023018878855799257198676548980965419268047745863118557034429345906587625340279028828876669563496265187889575058239058187458773595200925129985387275118334065325103024104860275256518613770406785741510151405394007041086803732882970451859568483660980458522049122034366886641028103169105678939739154838410325150402259777136087194949866391576529718084206331268734804584293442792954848457411302453703809309421464484698806729850218400214416193362598489289131858687989179074001328540689617643424913126819335066283067323534814298762588463101162843407041229529390205563039488972614546524423872268078252031042225631763855701233726411686081413265105819566666304039063311079763306685270971131268815543509227351160330681987244959940455383006456943830803056507146450689981120553216745722685094928940138748122879184133020937342579403004354575764193393372302314436085424222165400431505607052793764657562380208056192590695003597752418958336146343498718059719816220014439046828026261957624782881348831735712198744768545182547000664158324846798834811584016989527477690604191346654344786742428286206562223412263765675186031915974147946095274307809178967066118203397724046382569808407140180172107456382450301521929514198262237898920235239564671941576645353151061392657067833738222282731390544417822378721382596857132592571587840002497330012015497383239904367946105890728077387519956498724193805811614565944768521097950381144508190148412025149297324984853263455466849856719596073503393630917973617762353585309609301439122288284333335418775435332035850688895545073202912313222448349233806860660305906416463503894406021916236119610409228736143714672489127337753852702282556742889016858326505268435051924106220702201069352497532625776307215777859325751376780976353955157945142092923461729267935230696523189895789162296477029671702221915608847168017904722029996636626211598587041719778777320097037407973646315281043076028016497459350687533976510877421952926581588288797640467994985371705806197080603528305191528339209246425162377906199912454087117283422960573187885919106483323407378743801541721650664002712987708286967715918056138818289772012272848588761247401440819531412674010477040762147002452599350950544728816409204244689330956756554778134583274009825410382337974735003128512717801442080833283957879524468563961682220179348088160798275728241192411841408638727067590045025291674491778740604396130007574816951525861342689902119715124355271039905003784041227862310662623948295916599235502136064544885459203367100706877988582941512965032876375530830790182654292701213049301891192628448403764341002748264432489550486584126338418206480497269082529590082463807460928725729573169289488186741180293549979255641952962910432144623599338364415529687079123844885340106981342056067616863724089780354173639856462861286294932684476938888825878997886788607210764704506681487202830140895224874750172976290223441456792346934477784032065618094043973383649529297292806045211362831828091456886514573002562859787680746136487929824494642517764641660136306991573480377650226932031130794825330200194717642413894836305751683304994237631167508567553769307670823254087044737040346156991212957984275051404888954428192949977977731555971484648564371711444116406224773650550106848909627787617268995025094248067382066531585095726163406743005727035141277289094988878383331767084990375386052388654023266297086558273756583921011724026813321697050256145004158222800618113781263092711091680082519773771134366499324400707066839496137179904941648972281216803732220922828297616547208594347700953387778887798400166582147742456303233753709491751237705947199696336094133916199326437728486057029780844206556088914330603433033218802159318957656181139818451838082245607308737138602125435344475150976298033975432311544805533227975693651841670183276253945090365945538369666946696346067880729475599294952923687613760560533882907426380861447968158548798739184962547444037048961873164030689654924160539118952728815349607323061812374647377998768706666419718003786679317308146443025196628443701595701833272817766669972352226544533909356393765729966727645208934509057516706677058393992198283507341986679143920676624952177245295993405638918213184281086971793799405088516888133788137086306253252604984191710238336445897448741756695815784846188677004577957616882709199048265969867730301063013052848713748019658085388664999257839380356081975864545773680491846711560423613261728821091637358081082746021525752113490446331102714248210463913780888996021999917627718432836845737702756030243095586868098693535320437471567093399069444163205625004259776213838278724582289286385604025325582119739997907758420144069291539864060057072903411972462921815806179056763533813041391572870345020772149010742982894987246778397193693552747966085432193431136958140215258106079900657838625233898424098087630272038801314944360886374571773684994718920950949301712078203043801541270472262003728958423232583865491669213210090821549802252812595481031126383192325587067858036021590032243772069552768492708155208762746693521606906730087275565313338309933255979492143577951375349190829391980575172628502011870018660630246358944492840584769800568105391917508715309773695999273645169721670472847835956911174098365929409300763115587184980092234575903978000507151509006040105096973873019586287334621600034655783076735173118787096836900414534187142893448596956227422550854893564222984011953152318673971826957227468593091737839552912932916381657207728318113134010164798386911201841248702664977728315864745998210834330305184113915857714415327999781007971970389064695460216704614971389767303160151740707567532384845433240185773885879057898473872105900667975400041575733152979673578147120295159156033935038246385612403898757122662838367472125291353826841543547325573649583410647470990623560831305862734993284053966841780328666356835536489790326424826880537151402376662630347491944231221412980874235305760103797749169457973026731813542544212816864937930538335336166732219907175141171047905971769089762195640631724939862822998978861629790619352228739336574425979276864818169432439351944286604875508330659831747682848480723096724039975741974396768680738489096527331245505495679237103553136956602416379640406582245671066294425388244274821245278321131581088518950540815488773960268597998349603072604497648848703840902887235987539128439422726435954468853797351585231306047656419354891422028869194946426323049296388389953570697714603142229941554393445070366603194892052730371334004801136887784202410543606548962961258828427739839420575623798487966408383671217111664494992596152290607932188792662809454739392649239412077524295973373486600764093435910273548276001066825487123452985541837215745997732774303526828505001150042801447750869305511937572649436450743150223690201740119878599530431023431535769610101990531265203645030296433046920184953481249285898515179252126297075528417040932135983227288486798513827291178752600180696676184819353337883862859790966440187532734852140752130961243817899349141703657145922527469536571944031361386918518623631358704401323433586744550088412881590486668332852210641346129326065542338216945097389867178139389598071900812469566481565218653159968425763749022750004416880372320488389014534515626185939076401585484926683867917467583938582386293489856250123095560032596936939106868808598006653007565671630950279799918378827112055275834953573646683016837482066249580528328469876720729640273776657148621977381092296697503574661443535726674101706423862796173695017893016650142974953342675010184513915868154831643883593816724930365982541787661860428449530315540496825317992145555455714877058354240114892667134860712784262144469434611301203144024916316963299091756252650031757607532814840479998232473135181710062625002577850718730873841052320068279645539553698234633110020724685531675527468612936841749218293602128979179288075720464846029627761217818549903598059266585990871578387464546592433902402989054613277474625819060987878598168978416839407583808316546321741681212055081626411353848664476744509978386023165498425643775772946714056674417876110033253932477817835069011373650175023153213846987071443081719321015802834250674049959726155148065513829092917218896493794134213289319379993226306521588420021663356518210383180384960377017495004383076806859596703126103933972702321271642503592270867054549876244827147051471198837795986315008759451345410824821600120372640111218439547208395659661662954851394447375303828158228921173918531351241769356406222963255005483160414038298566993839239020737474069232876078359019094582156079556418127412067065140529506910841556481899023177680965231454683542620396851176115171110443535038792481934804826288803492379085758457638140145929324324202185692772085512145034695718005251626759692291290303690975854010666326799502798219444454507406374019093448586180418128607850661466195184901136666984721799272151970050936878584191932502465746932184184360857554189335071879515430806331903526456650138843151791621250712400400192653973270074961481179030358522119859821388497744535591526581426331949119334333774070515371048001831053166063834524780187881398977593180073353061469385192312606094226226366993338321534892674992672319429328715688872057507307639097103920733419676640790172114465178916448640678665358252380805139853267480064906378430693377080259844405973304943137919543397026633254179430839103629125603979113147038890259889958981517030052102711337213170555040457563413175494493017806430684906531472323320146599271019817414922434338578319016364415951870957915588982604949033217856091756673819254611236253907125445179299420451372972249449972492340247193589510400933872880627848671054416735256369322670839760796334239878471019748416714039459148287923444767778461864690101620648081505321071476392988770926728646084001046309165747964850592827582283068186206842550663092840196954833368891531883187228824856528531750585522011282641318389764353320630377546026129793665734396270737127895622123317641239273270525245249962739690218592632363490767829213534872059759037883796207959452583322483166991233699615385193627759390569543101237058885295357297017358294050649672127795180854669185532262419998551061269732789763573996658413768259709003021061554007388730990091561595400663702450488259548074374657798366494284430536801914673267065392908608253241288219312011475266639545949860422384590673518446651641024935373501255493191860738275227524657096567787301276041978150651457175385831839273607258822973770020962083093351883242125134437899910760168512417261794058856043406983762472311927379560359375348476332571027224261759204091564175122180625738562932324959607726627350540610745986034946754014196747524674702206672883087244869665358379828880835625101780512596339795273591578792564417236153863621870028089355777307224046133847995066619396628489060199855172106886191809485252451909018782770753183864074864931851921819470804833779000659112904535463945157725966035578332057042996745788807182361621117908607412138124791953633220128264945871171789681131685623296778928222709740890143592548570724943341896159901560090655823334308757758830856014261344092420099707048133556059893088651292070581392271322614603821018056709233190702294762759902839212542260505924879501502877757461906073422325691015109995892226091095500222527352535647071228191719835962831664054703551962630860823943104108684068053591249364446751130488190811177029502150403647682321293019675115675288126302005919775028840066820110882425042303029581685838120042756224424220003784082432200320123262706604756791838581086729233463084219773877600069224102074911258542535941137681122396976788297823545152664784580545915512183912689411038755981154706227150437403488889279685997522549398309472575533291518965716975372245343862676852822235980534340415825896255792692016721619344061987958926431537056548608180763618748615763852840814088733774320394448150169307965301080730048434734600303812081593989004732977735700602944524138706247141691722943296961859360631167303723996099692512835312911092566387335478063410753107249850345978758775000228142091168387173963102503265977383187970763844497308803243423500862066428284688062159898142117618817519668125786596892484646065677139203772992917869273196134606959001916931361435606072234008991399136628588066899437969419100124829494257435135764463391177840107057410470108473006750901954532977897890682112972827876548516247360102171072382340748201461833537306171663661596290594396362873112290209979621628538192217906822442453311172306519495017741180393030562181612663695997068370719980645005536273044800637939730571291386143716547881867642560768691096949964901679647374168738905718177680810410698283072177371470171984990908499656632558753011164170782448594700725193131564254983370270014180311520098202888241214972454454215500371212744161937172456093241012825459783144779349964502835057416541576397908666038162534207680029258923139825305328110681015010956005449069567531438726850100164039005988821082985894638762330389600770075080075050878018729432101421625391204647112981315989053639876162556888372642642144092631232995580516449666114696984532349821394770141276226904990832846032111416697226277567340857818064356233470071899203229948268835450117951819660513287700521691978637231411541775692971248966518657677066163657021551371966138310884908926761617609465014928605166265699216356900718936618732371856741499817143635931293046790358266071139450741976915969972108736763198144240222383131509178505026196961888978437296197647877868138292661067474096946381754166744440333570644397973894669721445855817215076883712224739220541930622350929668164818261271477970598851288830815246199719287299311332785181642316899965070017491801790050937611053018800959008073653772615502797097776574253935529908284269383709671431963259859071956435258374620910260425474719115891892325596958072703694931153269411693419222071786647286819859875952288731728827980942992966840658981449147666322063614830879099340540244370062455718203536153912805304352461250130595873028551726800786493735392096079040018433615667121037299596655415890561515394480451881707408359375319328577266005055438892135425567180633842333500638634069157628794217933339122115147450180714166317498497357243472397728613332779438691460523158078523180804931641414399076814215201431534329217689676763853449401956253541885288004057031269243481438402328141958655308547031142947789704587709812484537900275161062981672468514487567228957238411634837915868596412550308347699529200806073159456179377612678029265214558709489316877446901008787356137564611371965617208952665637900760456038409796503474705244567314482230505856910431803162048565273392947812094764961555838648975818283248600795493666723786647897538920239571004300266934212437308921526856420119916664000324643846856419251618370254982904272500579976906965727246165210789505628213362675333267669537444562932969656064855957940485066695472403585336429988685640958834723153283873505956011325450338828251934014338195261797163430073963708187050044469801184225549305675161748689404302818679316489527382774919757516298094854069743953232534573798023381951040382777249294533231250885557842065372705101909032007949594505538179683907392074411551424014135617893716874008475666318010558916575364723428767383199770626316285890475098679468702483413688572740767915048601029602281396174721114270376094166199937708385622881287638166417492821289623785673554371886038069923968210859293653649550073726259844180382424060473981870761622083370453801867560092755603479469650898629803102248654000619671587712436198458081654759347842726990176476208311320523514986842132033415856721740549677871030870274745103338700342548300337011813567942955572574840569905445973690800459907249788211924976783624429318195820703815645774709300709410436933049005557697338570568510289173157701396784312422271082128320376832689422852904983022547908604142124499060147431370351454656043050980236088676680512987052252860794622722388767554771178286429454808101844726818988938649282709929564904322038276612277250585074675673061928385689735244656043395230628472928099874810017193073168734379654018197848253230190711358876811954096096982090886209105148299123253328056342397831784646150576737421830921798090784940917814260512494049691698946606348620131419459476318884124362215091079404627652043560077218956636516085223168903200045391980314523581427134300875913366655215279131847679684685939743841843644269907666708624795723916752186349472533241828233577793598466853288647311373476161428879838001234709998204622777881736148821515303942880198293743597608094090125669282198304638890934788450332632135043273631969273501405396535379508456980576608596391857863470152945873237284599390931153651835623586000579615319144631386484429339106488770110862258939896373331572769675095285466073975434344672335372521268117997546815489386437788013278562469974628293153762882842785030727101305775407386740694927049218136067780983837195103135445292222130892817006948060999055901145928244044636447924820631008802291777104873830095344674621553516183874941010564221236799293041714597183446944631208637961957178963374867813642513180988130451569891085639083897629770145345105997626435763873119574434525303006654251756874122754441696194141425413509132516807020752810907367950394515739933430498374004224252837922291888603943580319279302253246369589104879150142664422868123058121255152934312460645330668999357285404032630043839514376477957784800319118221145659275380502589416877087170877824432645342635185991463275138114149961867308187784022706999402207029461340912333940941749942509223985083291039763084687523623987037280573235931935656300197729201014224958317886179478585182158344154081292531615473694853204063033561893804289032891935733752613112217224154538229700554159581454816069967860374779596058513635133416663071982082098510504025846100230775785122902527154047440545267697841466798074883944326066932149644305882117132567139904812933121739845958960722437888983980450124817082789265853858481428913077522375522910286919248393744025270226311248025608055621951249262095273595600807662459275497496875652305546400057509550279500706658797769929266661310914260875424545762446565172284631821041193838270058951938433583160883353786667523564857111406328828059667106631117656510748897178848451361848599401211848977034042355266010410493551164856660326115604157833899548512298223837362199313701884919573675260785224875957260981020481522981078926263355561574649334377311206546718559341975676277446626498605464410860960170225236107144684630870178979530180945374802762268169874617061640426515668752851695828536897069278156735523500745880020127321074089643420257947331374477888117604842734968615138412536458524764451886771054769619667351775851452497323926970337014652257348991438468153176054266379842445356446646554669990872547359911305936094277001007155536473305447473175654590729932066244323870369296742558550923228507585011475779000815353825328914758139207840771463425887323460007537019789735496291915887582516746286396134132086816281685770593063203503417610601550425431248967661077404398366277001991041366143306967300801981273410612508833887342773445722043437694488897588776241686107983267618579842669936167875496258959635527674971729137097807027877514342338835084493974313415214524639938026877051158222004756782559581717676185228047404611536997677850734652235607472137581080303137508383384636649673819985730467886780629909464557402686309466124831183632114591111577705748343254645085711493028918280955969600801257596149426068181147338386365974881966949297249523347380598026908556184289135973678806326251031884213327126603276466722945225912892951274079072906020936850867168929702246155004859262542671867203713288737558611209189748721615937821747163971499410692243866712992173930813528667493232569698848391216202180569888833252550879387564128555054542213455212927459547988434062451132502007145414715073129121839362254479829704237753067328870907196371317168092727356764907399535527158709637266776096915894966919340636119954559643479563626420664997239281328834110864186912025167156244857208489265807940965555477474611600396261902534176718550264808054008303554025277758843828145314249169944731243592175873939490755661192792177776360988802521111228660631270942208312074865294621716694713863298579272062735494514815246894247949618054393562460557994404571759888497252237816242223994369538467932181400032982273256915408366852054800987435594866991958324654502190101588810283493138064503220648062443514200376006198833582985316070710619397023195465995918329153725372653424568491144266696101625123600749247660526496137955062629854724956107765397864567363374877710217061986106319095058302538128175205300538032669105455174664414030450231016779244754617652199276616261316506135379220676023485361476643039808019164076018026156376315259889951857409503445141860400893881052850835229231335664574283684120131095014235495893398394027158978757290989362578035355941234223596272208267107321818027678727156772635717066334328938881946349731580680484909354983711149447445901716815261460636815938622873159943870106634398878542482001313237121103783082506606083363814540074513251937304986763129846394115050308672941247341021073450581979682465721165180764178181489690332865817525060899026886809852769578712127946981574742218924985635804933945890048067314631508651669350583792081257580723921301503758682686085340960195352351988678762431836678741773496742669317753237572338715717560675616329354560123470261838392151737740471668355057170238048901118739163575272125938857625119120567980754541713968985531914211904378695644054892003010027109938769697104755167254192380146995584322319419154200508414043563619361858062410317644616088622100753958434138596999863962515467557646402480171682571553042326458227116205852945273878907918993510647374752448238163498410694067503716065905209316164472746242650448834522936793750931172124885280966336087830875885051750152592470895160433179682118982690859215869839261226728886800213670204642377333760072859394360727578695299294346517277382799412545354118239495861375094560896998264372400971994026195016124980338243609328219827158008709566184227030475881431087947288331708326620027553136665484568460934342059727771885139765521332052510802530935828198778591269008046988686197312826484041977735494559653904878205770325061127775128040737546384281824491033473244977457270759987862498129337796020361217855011048553452775634160067481867191917271046907850711802460827205426598264024789161425339386171715278133916734439037354464320297732621700284492861045165279530772862230999414572830077949159804178622026754164475001819046129558894336525282250569564720497857158743379954838813433288098992184220650151551421392784965363753517984579145409176435443117842154684799471886241795437192170481553691704048869406084915178384378910488416836496622197902469417939825308911084269112728412412941017787637862452650554274552857453612406730407492346550116674198853490931270408913152921239169861634420883808295715101041644848562249076903624792866723132090468220167810709816433396246956432524230315086062656462785584876732626375811301416329836490323273359642672436296199530601896312149612600793402076740677247118683913501624468780787898081916250941962252720466769012623189845173670487590514393777965648141048205540108139466323760101825736430678815508270987588233356044277161204480531698077992218608491437876564373117537994797641714679117770405782613484091439027210831383888702527389176485212798256187011393466306943816821019586659125850188913921778020285841709900962913834340709074127876571487969776473743056859021443531695336452903206756519253173905798397443509637006035886924610986709415052997293205386097023762614074992129622604311533290294876039047850338388024029722520768214487378679971724331530415016652837945293728504961909478484485047860222778003915359143218096307890539126587459249182281798915100740247897279348036011930645973067180302858530352050306991969455913301827561512462804928010863339133806919175552466613051966430117819887360461651744960999951523480831567571082856262101744302065477235242707583088891284624656075924499476311779383371615428642571919100374065116987088846001570543083481337895961289968497620583996441732509293037411557578899363428851495141057471791669306949619868489112322557946165372324929390067611891106273733677989013238082328055767469843348983432417053323159015365225467976254291968444573539680012341012313988266369899016020920202416847032681137668946330272619861180959589558834697337329402503412318913330218395194261811592586454352278010777151265731267851887102053866026838462896422181187845277332818285827171454889420510986740479660510994671526226298941097530609156436311556290409209245933335642017296779774944219111592015725964207641247551201007775256786556147807758786431739700680505402277689378679761977713860590719172526562359882588111871312310648763254610212423717451980323156824977248069428339137371580034287444338957519987649003601832872655206034845284365872882470854229993082509281117033548839105941453585730476845968549472014350177770402086148946192461591533281468233400793555339773048035338634793644383772561843328406795221824391134633259116026316713120223026511489807318246555435251041059539721514635807940982144475536170980753267187807607084445391378325444233413068754713443982106633348720933184570475796220903450082146535360298811109587239476380919520955629599792801061836239303315654560374767957367751628325930310666087351005619338421463622009455365197251101382480983314526598450626654448274424389430526483570323241268783115124774120399676431966765601976786425034755258229449781347121096884803314078296773090204699060088415745633446727126800405485594646052400174044724670755489509384608939012414272047845529834161672287807138602146253474057729788203302274353944767055008718568213350958591300580245817320659125474452429812362722500714806225577967071786673174433788229622721200427296576798955885596149666595066327731574869943536083988461440443932697955389263195225465242997751200650038568083739544227002159220782401784011666423690237300020434115717013396261663927584494428666454096221048737642505795497871135446803430148234080990877171316722363087225013614116426760760160888836945887260238798146508904404357273145415149183504327722444837723260361557120047476150999372212536746344044096927185213285876382710654554362524974943176249358682413339828887488783182974951040620397726577573105452853596505668365706307595365331859084138029991286177340199287923496925703344956740154929466366711868130478707891394959363584819567859850796653559879148884519875237871756034938216256906538387839476754685086822535308965721833809294687402322458649044228149530143654587625763136148920197923140383478897434420171907528355369874605353806944426450960279075475179649416788628596639151748790507022369209638969693041151890379727302393670900774899957158396305364310608372983858860230612970611752154906562458206484304607922325233631304066049987407800697171415540252878328322786832676233208698900560206126538622764166939527414546424254836052960503207920269657646315986723006414536456309775589205855732477980896809700644473913672031537094797489514991805071017369131295971168987035405391451391148744976660267748219842798126849348673804367053871115006929579840079623546812189861216879161320537569242647245367438402367098052833195621109860233280354939200274628662332994315263182278485569909213863171934563630031257502430644997104737348294932085637564915630332116601298986949266316419476509394871783863707599570239327784922400314941970813276450853263105391838846870845875421321891888513024311133605850281351062892493440526389042922980780945712212408614388585145149916767648275991137144824669365252927816829991803386785843839671646408719737296151753227466406863727008562139475375034776561334226618279009839820939669257254403121501012502817558367565769618541086248598034634202635629408930315473635459198005491503689679162850729537519856361545970106665749351709985052336462499466757664070605084296950574280687677859883968029185313978443646783652049115348958774849800183514739775375567826825737777771592428091222911373818555160475572060934123829670618570930151649756372675318662130608311729933930295786865377842466933953746932293213087279930263081949209638401614013779877964890179833757772436888865506248614924917718957614206280171954633942386873610730480729559587789375689507219399610344095769827966066499711648664502809672598840103210475005084748078653759134439256281307442383862779164524611622295578162145556127567345849592865716782244979080683553661539158285019767575129178815944352872635417677419559830556642148876060055813501140417480438859013634329815200121777778005442298166411288445582287925795144603642591502552058234161093288257294782619255139201475007031807702234856221763261238703952982721765192988144943823329811260047731970692551841086853974820378629434198510477891203734516778312861085658037504602431943267384921973882991705502764077229693454652250286255547411502387611917877192892819711036306749051831134900501238142798791755919883866302577629674556222243162790829840534096052008769762520769641955031316966361479284689911938521271611241019867177573788168895912149863372171925505893225806406790988100608026485206327002915181108372432315788195414095128364745903212549236527945433106249905227357839205777513465567837984721587186953367846225674337321357470690143958131637982129008555597167190185927554199270391561047259632361257722973962219993242612672260612016980990168459478141672811654523953108130708123561950134112595142763827547326100240680418004796529689796306048314879847286946447518358540393559381933097212596554850656551864152785896487247474131435356680530178015685281928992834956618806106707054400526935589777721933076240801122803266941527844345472781328695790659734150828304788242931122131421082269180563066828111367517287365517819871516903816555120333227483817189369264465649377581623062900994467071743902425129194767202971791611784502185989013441733495535481165946082850390217235543476636665144391726946978732521460936275750892337520771940873551344409681240794228137912771999124084407307844286287269670021186158473217081773160270658765911407929487481740550740866669821567648279719706825956984121994216693180029329983373811040387607721492077311111010624020458965134518034765486369220641883770391917476572916504392353274545363962995173400905570711853772697294441864183801029172033592793402917347799970049563228100758366807935891066287453538196147704491184393534673225225174848788433362552504616209829615893114349601734654055098967402224149034261753073495518195383513825215666686794084147487708225491172896095397692747080131635247097384745456349381448187387358532776203634213303070349002000525435516562538356924862426062939287879072320334819808741269135436386759738712713511508054589003349988690967320084558109658585584064563987216198742632879006029091169019347214611906448959455277359480009566630834860530504884060812149223870317361705958508707775796444737987374401685659926918986783148331320389736154363007402446396860322924019950509861740337805570987828368538506440647217645576821135374449818902086335265295217494025552792021340085457973480088096659769046156292868725103907174169975828987814021670089674532047234301556461595510458350065239585056994236949802855282359292664739394237561824091519639991907330506449305280521447711365096368112868672909931598438720096263133863300880634705845006458002220805425412980793518618173304878333670381524707782815294920953397363514131361299680029084978900103668321388373909922791896561331528474320341694741158245550781369284907777501021994931655166795718611519966496856968182218734522782796952982265549881219317752527318506425414004422523665290451969299122527007067379327948094029989819346613087259760642871228802471605074371559636757826399216197402228236388755195696990660928446367963248555067816512953256800540176056726967015905662736031946734698805364617730461881507432483710531238335911616749274154763591311158839226970919147494822101730130826181812434215847635749723071989417690875974986763286618636995538017289698481376250421585439188078313546792058668099701708030043257792955869719521881062056624156943904319317291053965718474486080361666914659801681241412138204843200278011595171225121997259548960084746590157868617351656530635242705257100460068417139040456752753091743840884727984088560000731501651166158372032965387068717576882490308620602434316494938008429155599008406602358351766576353982427652707276763696543366215604440544524322194006852476525713324941413811707723456236357611755182242871684513592725962961251612570736466974016581829388612804290313756479282992531747681796371629525325688528180433397170515527585334014754280668804173086905565149334295406130259547307909931419057608564144242329717249187663011824643834672401403078318273725635491853638757799850461969158010576417157330595378450711989518294722796805730089788376897362023324051913837485382055375527398066041564569271953365068692955692870299519310252111369545549952575233176837294422951661646440932035261811864958084613387611598897090196273776605912525309121019288370785170639130414416725581763854626223284141433023421483470207590359481137419617827433868091254735882649074236105898898623049920225678505764420094047888512581974170455078121062405180741826274735075012723106301530444415309509238033433996610408632877617095007878732631125511043242914114861340734253024889880257207969357645329578931955212654489498278906212842730735803102728699430706514060957286150743389009623805741510939401828232804037620519762315547276890476592705439706411094609217403560099048449719339699832616107945289126784353891735608879338175825150248819662122105178704231103272284569573622425710303198699422731001291697914475666553956422415234666452576871199671406136997656365662140303356744719662993859772844373788524295376991614665709856508736538477849191270791149400397384535417939910224532773799304283453773398375899171332192311886254731754401777329263375844775088651623812976316213525117377541582336822347945153792611756628510013992871159197494691646840815727585697248957087850471431029692131851920331042702852716016797728793299137306803170435834475641796774117798165941759356478771845679740437509145351760877069034408098269844599935186348670365972137404440587260161652014147197984222237509500910592150626663204920153847650847285454689898319512179648120074407997415338934975085049707465087709705222672391153273483694715550349367927213162016588143362918429844943817746388674240509561682535143362702771195922182871972549441534956232677082173931841225840339365755943139094359426610374030928548077299760702179536613730481696976803107741872379060993463670112784743058805540568068762313465240702276523632934193911122059628007139834013950168559523675163501429580263184309932105127884317911809619322973647946668634504102889070890676710638878448115486503171587488160278469143094106056676943028862654338142091547028394018584551458759526096005810608893110864923757486332498069373479212704866275987973546452199644683451541837671238755540248561259726676192994232151550709987142855896537161068814110059417982034857518627407797112594824947560157119993948727786052618677574038885485443544092756670313261521042945418336664021891656300894004486885329074150757778193916743038910497897314269663443633862753514848023035940320697115228353466040282751961020991962824444797794673272582700524260027317798732276339149283871119435247840102840568092241242374122249206184743454897895380052984743455968795550996640551826603241061973711185565122141294971366331674328927568447521441998192592045757082270835067021073348167917255677629234617511709645506423202522360256609970998999247135974925249792684912353616620873565048172355875059671653664761597361539787471701518767672789869991490062025449834318842446254210550421652249117547592304124752848375118256506033222141382247922802170052146116015451319609121661570046903668833919670882070745042236607305320743963995415958922233653559208031883600997686821961026580764600121372552465455348132523587220987657402387615336814687786861076269543224652768411801232886692376158886869437434674883570594686635546804536907198540396824223198874131041087513208386098666535855423630633410911119695151061250067139070709148212355587890161119914315695019459944545855134094777371643848933351860429450430987241171362316424487619590056581648850251842238149980607497783868845618225499123984601455087675652395217218139144071404757520608092016876023702626083980819068471133394326915135321274795398656770829633610748865480880593055395987541485627522937066149516339117455736947819899275445403108394520812019073526232120245858517265188188928537323999174175031579179457223351764120793643038806842701711311172640280380630823537613963122449306082999454211307013006490207249100544830472014445728636133056177417577152218761038880076543135178377074631139421175279609956432438226334200625938120904788093776706103143067759335428422532639592778904978853513204608680255077165386428599051483701532048330562168685946677717344583711855144584762595390198389702304152727159192107168941171538666715312284589003497771266088009294928806931571814956307694545120977783541032234890622991544321192921758429840883030822046952646159674045235694180917788420739672983080442983168300590715796826568872888415383291757206501503229331788703520680156093099952653024600637416439648530303894050840142655199741345578115278401343950820642636549192806921627770515106095764498313421328958717301222822300254680679261875829044288437867278105391277821286793610640136405285314221521956635613078207149208880524915041172716299301703899940394865650532040248521726857011541905007155184633705446940352910604472826235973453443130673811784707360699105707422378540519636690934009367096775691069184299721263350581219787415541483209616933862385482921990803547487159817448276817878748200381325997014471742905711881418782252436407040415429149279647707922698169183268322829270419020826649888578097434907129836598826713728294949519001266660787864029653572277983690197837044205578240561405546922583340287841896837416967134903245376601061398351401249922553732288897368114164323988796400459930144519059831986917280290920788232698621857845706587924085540828869164790675265971485366683776302577178586881307940288076479515658184790544930769535933776882849866214836977767353289766999974336131826494421020185577846787899861188906507281597160977908506733770736912577935747169473895837860288587048438789336976399971983923243994898158091862333538166013987997579278118394172714250658538025060850283966133771566977117358999831205206488742970656961927374092254619505759092538152220904280968713503364665803969863845491745688252567560124854953913081903264198113000549252476073017814486296111463959562428149904738731819638432797041711896042958829146973784703283001035595537880478213750655487856242346761312788801580918126498802850984346368027066966088947950702873989262586334320499775247477952384448941302962744281487454786424917606073833601398539590008983169931805937312111890587118419301167317206813927132696608063956463751484498138614240834843143201537854633815221083252447746580725097008581355207189389320886278786803630228230451192802657022966600156638337953509580573931520739160461960666455432025764933131298521107733366073210506417683205138214295433642951173372960002970465678436012978703089521278698628629444684793886347924401152699658102269769968123364814881140110393771576920480744080896659208744350216827556536798680419813608699795137750710192438979269372659431708513267824739231272969756698625699076164094693203236551515706474146458738460592438700231643557134811334466381353632262546691682951302430948116460810985847495341180390284567117517371155285106796571813271331877450746098632919309095414650791717898863706307254643663655548568545017707509637169291751620654781087562974089171278562681273580175962301902007461019550158690948553718801419065713032125632361747042253234930881441299765344212553758850388043606397320943731944564144512155957546500821584138706812206230006258469972314091001158040191648363743557980064447420311710572472120094659506724144112758903427519065003630248238693588392598689207456016068839758182066024067274625117470267501508867754154631320289381418455126837412246000163361516517613048256465208793321957220443348466398551223830583014926185997949210994341754341329848847706553099577614348630399395089083600195084704215477264205295778114818535330104694258592760493690356839400139892910708628623622495741168703244999609275161341455277170851372702612174632837101073522128471817404568935248653180537678652747734552797246278121034230487837795817073358890697492095996098655735023113101828949473032127410538394579769334462986576747402206280186663448142300868261603759720521231146793210039203979658998079525998476024316678834509714355499779819235141993293893169049483406706805738049397295944034942485994193120619975852068220820833497010095092277136612380189516804026355090707553248622205152108833686203847117144696592275797809617463909058376776769900008925085894386015478225532258963999496438944742085693666108820808577259416514563288701773512317301206566921489454350837840890233862592416638386840231735328193195931744896462673035710113270864636663496193816216604631880683713352074029010836572177599358499284960057630599571463460262778514171441860660849164528800625464053466147165390949087086303491091675856235058449531557463530449716644601483527351079763146497497964870792339605131530321779800997016556220745936587771872125835901009786870312045494521135613265761832193424239838448498506863737236381130501922851490738325401574088594750251857214959563658744250191930024317564692598228846623124332242631916186695986501682949391055452317280403589937323687704829061459804745798431527283754744593026507934720301922838905181002306007053705202261115456287255075577655639590371219183350941938151311765263514598881150902929690421626940792348736067735997497893082878506745245683162792541064197478129723578940047735442394695627409037367608036172105169144936378670068179730003627500514749634433747289810922623273093765458951416893215880939825866750312282287704474875339847375856354902832836750505758471674514081945387501319421862693999879899276723523845430709825387424789655414687037711860294206335422157641700514740524646003110790940560069283614241302851440494026065663958253644506190539630283232333156221973327702688599801504444700494171554288306234451758460833684980396409713527266189125836312314965056984494092287242064682267683530683901931650754937432112558878586863182286190497430455338603099615616616144848568321426875710562035237378665743936851305081106136793480135913401909649219295376831763018357414911776341618201635542049997346346016704338566940558916300471195372372964681869878878686717061793039375585711251505661485369037145176776554448775077378004849662304990493796334869483014877176433045204224484558506053133548671028513734821161392928603411754264563082582144335712024281295299876310642289536880396329584380112926521696540579682959104144395848666552547614649900617090267542093447128936869446297339593928675468295128120969954730723874870568214101600986632215313939552274048768826532003080557802969154754312184166849178759816207822476308787592344655761591721751222415687587596495399175194895101223983559268740890753988970730129069561540536043853782928704734903421339145939090213632029334613112998393815195472791424437451852927083144917918128371184840137075124334228348796564207605286140994474980524199050943205730746267868994875783999606589750687103304958784895424019698333964557986534214293656401999614515445782493119661206025675439495366275597433979699213602231223483772316866555755434547772777182443812837076871672056612925469704534456620843697329820814031669869135385364265222206871847024496712121560732389484401017053430945642940270708939400968274013006837165467025396905108366660082470536487389182583430138947266101178367463320286090215315110175926279786823856059473069905675522936774402889446066982898761325083926865473132529895822391693924527604092675963949081391959872253114201111448387048713320402702428004695520361767382988674716199582607085391339769842353741323237510626878884559796442634039849493677444619784664912359560279183337988401134546770334650102707439635312381596713818189401698552084116578392313509452672216049168443295682515580436904374088560187139080624607091233423369395002238233156486933050045613000520645609650473096289097064787861125960748796782198246255852848049456585194557668351093471557387463794837682405714372923788302179235080620330223783230074375848104985745805929697685356141246309632873587473992368481038877953049090845068000069099541078747046714861335318570865158466755376038570238733246938375944642939481540807693885412546915891078492690736092538975169490773754471433981940089268310100586285607606612242498126424596497459240109144659870370733399208355237681978098679861875712687837841015687353542493585669830670286950809171155596381128463050521871650241575586925245629287378099382212393670882760226986692914076753567781235344200029886792857923537781778064350681102874689320512455212576202430245318699532559514358286731788031134444340600433338516374511887732975310977024828212108007820773236294904804255808025279897069751645485921855133190269593695633127943589431176438894293209999140245238844758660655347455595877150784959090934493604232003563438748589661512686283711842903990592107214148575906266746671766383269152018407334853732841925107079088196015609266076756685178418097493794689219965806688768912778452168360126209927827072830700424384838309962408107973216590509218299812229738840637394744477363935960446947277916800765515951354255835682388264329562084439571502869906433956583095168605070138052145570470513825675174817916658804300425484159363580606578036723417580104777383150863308443428281843803110715349154689570050389675120591642268207957989386568244674739100967300985518606073651367863621228065302797865338519330611163247626309325186243511648552227666008281943247298808728392274719437351163457961025541211250561352508600553418947303454261022474341709384876990236373659625084927263572233092139787574544012310006038409271711616835387416061032604691523636302158114167944078889757314167572106946671518163698766918812594053262471807507794505572099444568460073099825843581700158521386029660419701188555197899471605184679615327443998156392639527659378686669015545532644671665106193516338317728410445678933297535125818313525688571196611622680540233350863686998093392208188142889690728765316544526814689489198953600844731830314562260478303603957166773966015729941745928264470840098703641511834958003856791291610244408132601186975396380727190479840551226696536733966888780539945159564016711198130361105688777984915361865386057870536675277367076760231336035447621089084436913361007622617584279676068467844228222813300118534417436232654373413118413758162204841742740448601481160375027409218012781700946568481583840992359823018310788888567271678366301541177654308612481847532160754237982504937904024849357427409389974105278299508880994874012373961858158995210968781747556317488085016546948094479594875465032269055889155549354928431240626076244353378409325807765651345620023901750156707952476530365864320346054659945182558867585951174244377637240892554318617687029791769799097207337478185051207910783793886472287850031221400896529368793814635793884998363825024134564835067968051991687147040106091991806329078682559848040726921758550619917999300033339197471832331632318539458809761882649635484004901411345853412266762579945846975569969586088678646972171704740918955807876413208210240772293239452496637942600041369169671859463318536805481139837822622119749747818107505309415215888123028862411538169196531730802265257704511823616614739383922373374282033993217279234929796544907295707034376582861262651529908932990691111924899349985626660596908768492531630062728998567979652104872420895999724131475045115505976636370350037434578682191888467918327478524773308158143391349953183814246420688563567549898914564735192512401112996878164491877596630732468765866767667922620008445012240550617071939035267563862126795968571645998321285551381028392419690523101397592713442535013707092798649699108586980029519217739895626399991517632039923015728483635993704814660754143063036061997106263555881432251670192404216494343467458107515484387660985313536485818983051250526191923938579165765898992674900302921720260569339143800302718858726553931559414912599683939388802030953400971780970198774118631311032026793076210722275910317944134837347820797175949112632111390806957252718765991635782105871558676263882072280677555009026733922804111524043157304728967925444175077226526729962641183586968378522895604581105065664470645565364974349360695821445836516343780751793499452228815873220192042079288445088728018159544163450245466871369473345204012844446751629548077997511317784437220562681199210177952010039589897207895992217061306202025191435893850499256327012187233813696567817630117816779142579271076439218134401327171239893016094013648307894123928376529265875145005875366625582231265402723541303178371365447605331570245223545271677370197728024070989925775807728837971856660800262943815439486778885071782590467757783024570325392974156531585478869575798740500014577977226063175611647843606041354283715930910717280061451937828455136013372161737768074847634689036364651772669622579330450104204446463516093388906719365402352481555079471442461669780626430971771949732089026685636332912915589717882460470259273204892679995392872126059746428123510391060154500879187606617092357870051324397329949870931510228932145264476802331587152352572406907410893944377879353474905379932705302646122467900565920672812148591889221259325225250849555422712729843498608180017133159400687092549324083262137731308881333599545880736328502723971479044583947343535516969081401473798559382203455752014726593459941182676366543212986189055928021636280341722022899764788930709991225182000793801114522198774490458283086520415188149761853098242572379510690249160277984714815664467764494583716780455295516302163655101387930334349491095407589069643270778129097811239351037391425364963395724978690212855511032605110640471089260801934412565409734102566404811229820614288265807787621832352594265236899466805655728438367834290664578411495862566420043938971076695810304317593068011838566171616710584176429127115341491451429669644796477192751777576723689026258273601645651544512493491468027299177390249369029823987092903696944542614268937114368372352046668916170635309210091722110009149847578393894996318247909179445792268302237978879565453707203530521295777403573436380280103807938766682627493384814268868474437399895623530362090406770464682800051324669230359859663355014335002967663347227964003878278458382350685965405491336040603814660704696248938842056394327444241700970932862269308261438695952324661243785198172336834171945229387319865390621222401720066609074861863220595940455716480364008124640841850874086101812462092723064997107146719346819094697487753395023585577392822328029510174508172506241679838907427075555363306087613542652734371195279528657034611487764927356105694908712251819222793984279385801535508036378829202845141958410429163656987152831792160268779118470262976752848284906978964466468651842590249306863190870627628929305295666337217515810721333500048468334072620487235376723690246374500408583354684344450681952069010922089053227969210457405315926099776782744750724678102794246876046354729284051776118583239225358794287505260075980236213076300651320982704457285204942931800301701776134236407996664605144852063113981368787223995908855952173434381051771554446838391869717608980448772006128704273113886295728761727759325856870974510669367253680243816022150803024796135866650767381419448588808346087288514275360081486177482036436395099575704862175389945755304612319917958151433260792189327964996103638651481818138061998731935824799066195137973091046669770843603236589372814174530837592552292057961111064110100945306262044488659726874588148867450498472339731244586258839988979127508906102326949292284915131131659138355981771226223785660078085852780701540675870860793298581794741856540008870444959011244919649087458527861440472761750085829225749381179167025269344529662883916661826344057175515316798598552485910306914347841665734346666261735590255731065619433712771869893528707463254152170846644882600349520369641256197153242440116188183618079701533284726150095200234071176392801263673996762587779691979201467472186740714366425614190979327475291673884770928035235750551156051687787862097315404584330232648217588686027275749308408722589506778305467252303009315062481015378583468693611179738660872494772370335190682938186827736077828678438978126349110757965807162306152971843794924027384632299693117931376572748638276860310500189303109253843800362729382358929290321294471432342873124442530105790882062418159697507915265539609374520758944980219577461129964022046491020762886499856374667573196313958227462160723645657774545976281926099198145297222893251932129399832948544324333920848744921140662181188057908575930435867752688199844524481206923737439719817101815786253898555143226021362442040388583770396323462125067398417400274828225731202526582069163093113383724037732582273708340729582359866154883238741928413854338267378335625124505821185914622409599981533327231460672021904308307533995456659567413402049613532487384468779597731425772775551314074679028493141468146521229637711179155614192069571035524269464322276769508702307438937502185736858477361881527147926530610356827124380232782500961932643410734263620185002408211021946214698415333330028075629000427818207323790576527676323299180283961905951381398116347343290609106691470249763269031095366178016749032610856636918011789479124263418965384922960096846550226741065218147298765320109584902928448240911001512494915300056949175667680883508635573584604119212868530954250248378905489676008380879613064066982761918661013283211009920543816450018880955162745817538687995804984194661438167449822320714792507506348452167460470745292664682235452121421101973917188816309770990890847177335021998585532347895948383369215103968699643520631468453891750553956510717795078391098259626546401735623255082617797346379994377268596195729934527966217200996815224535067994378495126655928125752595015252127508544050570760737244976690343779808638324385640917794557149485910112951457669253822302471272158198783882722428740887614522317121944050239275168548356063757712703821700053910060345458138951320176751776097504498228803602320044571842360941580606945717220883247829140485883783128650937497500703648989559402050538817580183366789134143309368977448414953762452735806044891433222939110756489760277124815051857500746770677519139039994413144989957715799918913000076934077561666849418976130178975296953018991018542133859133184789872338879855861094224538131064534372932214758665483963173090473757978777023313788752467204188466291057977205812795371465024600850378558481840354982201384356043259838350227750848934849336597257903231354107312750499214122858723107713257017126582641875008297863371968903879955298439326304381807476121611986518086737434933497021881503896372209701737814628053747101743734302160919954384591580748815215944456267965362284688207684703100470004900524856233169570055608828052354285005827744004680772480090508763298022471496212921993063192328555280690053289673663219563899712179175947549016529982720744717225647023211603682559144859733616168784424715055192561615272965085846455063198130101831070854844047583651139924884564642524269241562313799695162413254178766514926526645528792174453012829140866142802141220231126863538194445520056821330579482889841806425885592373811451571767743460097963314954440136005701355581567074300221581666236206154258872261024642186861303685109987504668518995985506453832641734180255066250795614003264704450831641458900353894643641653819330259936233654143484754473394349417684923525687922706312307202891921591612714811943108906256520237629709292129231043707911120422659676339375414726785023112172138222501766475742509945199101133555662647903225474741224987831457499244911360461534102995354851358901237648801273253831327657224634421334026114614276615889871991873573943502175694692841482489381251685440657404000822536095787146302821445533940274347669819531860869852165187470551958949625425558533006201125367317775020639220643245677040737056076938454203657748835143058555306271707555606569663446980689405996950799294164887294916584458429122463994867256858134812044792945824755786268308453705342257856007600775451754830119940264632778242283376068242617435736761640918336308129565188167308615808971952782179955325028806065933582941527726997744758964602108394672124048376485834997591931883936603798631333312206126144477498655105166241590905120960799357147840682797964240535483603656698866308431416832207035642953627810513155888961556178063433728480678616290823306964061803341806346674105895006391048552660207675780572567037220741529452704411654519588360103284586064255611431464497774834977412635736086812103834453011142456231409116438481424966096407943790036376029168455893851986957457644875971842926366283683487443236978415473608620932601474973860967096582944432797090912282825819992708086231690631465725633394825612237364669725557969126377144113493991111663051340196606931105250034360062891638054932331319712669578826840644824173061930033124945355973876269528977426020385302382635028538472068135178902125375774117288916624032953105218682760028692753653900302245046734981266042240288746277655832929996543417432915775229895907449266921686197297735605540001254769922894414293853171616155183856396103113712390974503781918224714582641653672169215282995375115153230351698741866783014797056290217096030982768337557266040266527226618005178491071072647613406627371933715145244937726033497050147939976943054659154963565075147801579036314514876763504102640251657428897969662343272491508263086831034127067673827135960858659694012309078560079848598800311934585530928688281914250817421092075796418312685727384888346978280763100261589253588007495275997167126376437155792485388648631037466759588586670474083873526913766982402806599223654548754970950194559056327016467530807459190769278800925041214252994879413940833583149035547208819156556950177926063201476115938085047603726380978124354356159816803977024986612241080818201911949682897492051335611945355694125858322702616493932798010458563386361980365889668944044100828102087040119232178164644920052593559111534803146790840967739971047491914190262851491413732972321469473068240929316056335196394945411505332987521969087179545125418458629480717354742868223224833982245238974986130186014941710244457565112010232104509023158520131571734575284719435534223849049482703170907392415947251809149531755186178391188514748449849172206497336554552809627568071650583202895665968388707214479710364940273146064339013341408172803466124682252926861672228714825299170326056441502893274011990267813587886151768318293129435110271793191514227529913486114564255085973878605064328650751332525639850960714017042311290343930743168745852901478725532905679851998790943256835910987027361464214810163502419643933560778209937288161655856453132380619191145207624349947987646819717885499483535633525977709418931883622720713503483011039309524999883103929423990807816527788592729735580703878023797673633204878976941152130852368527583894420097164521101236192376484180855232817765752633038259714566777420261144642241470172784018335593654825524218789945636714835092584239625249283417197437990436996906201482455200500103717964217884082410863729368553994252704004825276651107413422112315487424475897083711165167394348361598067338765581780205135267640133039324986852747065223995532254944542961759489273398634705037378715997724817476486222599258452093376287256454075880595874817379762084321728674920591206134310494381049952027914534410029330668565718668535301081923566790947134325834494501139151512316835530629766632591564132002451079092182398871186940355890670727115897526353239444572595616282022081512361500517171662952649160516692329675006853774554370591887896046040929544900902799510062741165092756202217241747457245578695016121570720812841027108641917050414144483225615487612683922331017184760120836234179874023114917212764582865339560890632662066055371573854075944627231844936095747920931018155649297389540772874780183527938432000525871828864175717746084571780241945374936610037852140353956030444829001047974532660108931434098844709041771860667623359567262386541455921226504419218406917225078565045486712259098468444270763551026233598801705731993034515118369598578439641093465453346624215723943868617253235719761965245958927788274945592631529217680136324043220784021091199031428074086705628288676987070924530915548540137580513206580247795164750359380563851039265106480453980405875420615225279703012038949513928742875517248769562493741663565394427929712259972297318659096336549395417469535989899684834290063282253045532909516968117706114642180794391812857367611019007401269009570596167761538208764090686729823633203089833781992302756817041825999635578479655943268296951197744488329346444301656163682928731259837999669571037671257661333054649446236667080208825965660988205302014982104775398125192896291656957144310479415961563622678457372640398752446853566648524752539348670095512243320089446574843721755627492492442496675732724655083470820989558379224092909169162876594448028112900119727696208838622656910039103964601943191195208859893333908718075078598002190117544386648785529777980704873776213209024994968183983567111512657288225035141515429549977285069098261213913943248259769146445008153954081602044163588953573381817858656033467875773527972947616556453962963123737580194222167155192796048235517196606578798127697080562012095293585927157133879804921719338805006735484417953568882113835630832813117413670136274292676738202697355041567991056597699416858977033964486311614674919726488610497989610900292237364919642272036319623611461500558840293541782461493884127067486707188843391308952073079494923071906120019200544546725308433543979645045127181220237147532016401848467367770221108395232192176163213917031748550782727741822255862184805651159031957593344021283338548986786987463427474813603006276419251267878393838562586201566398754853355401023846762355672319068843010029154640307625580290428515082126007920507955869255238981178627555464919093589996796606591416768793186331911285341733743690291550406080615878642876356012455419987348796105987585607241722131728165188366713323438306001850423243626962840117103062677889429763612904256921304941565150323298221005433615481524759925375750800589805171146086830537791624815427704235245410269827546368138869198051396309787139583975913777637581652151682343055156659980601355041729041087591185623814030676485234865528519375589276616711295988365688640607707382859219469806462566139650246057059210144738279905977474279947343675822936811985653449310831343661003857915601839400342200465834196615757084255779339842245204716177301677694618298250806975037002039279635378941983921394391386839576687823522313521312445610814184690142824251447731546265298302849374863462810955754613418818114028894710277049932770497935789848875217929499990352062665268988668898899709873685696622658343742272703622868122629121370071085889867739552419849474422538858648492119733398421900945078600542691299741906198241889062121848077989892111844897732603564103750479870661246860296200002275184668777604243807428463309167225161829745137540280076695472203093475410592408465637240750050325266826281493429616881862747198684534542843336295959652410316136191170113268771915352193553120151619814506805819359848147663591504052968821456865965297815517962166610663926386868795665212472963962710448332749890516482905251968489543439804613708794620454666369291158486197460615915101187180032529251632598359646779969061199519518250942112872364627726107054335292823682014537055904803604259452138234744923216413140219059025603876755559846163736732344603431579453093218307440004517330378386309532883360058063752670086258307454654180367673992138175889865612196243906911541137924589363489978606342081091370980659500242037108808124718767643688185865359868743626426290130539621327816242749499741082600668084042323479507472202058302964164100353557673602238669457098008749537451792869290664974408818602509674851181886906783130087798875256702603723172311095116313219080728236980449254928438100182072988700622868286490176931349807780936275209847041590746820962765453525335054800461923327115181016171661804572030145218485848324431035474467691394114504083939393975491920598067682299795975447500392136932549017894950997900921826162704659915095745177566490941112198289581852468678967567296966905219771075498836480433122464539952010611363112492359921480347711633301313441174130598200571950221668576386736741178605216949296707474534294329160597903530156197370465249083634339977262700827722288401426455776998007587769545946890292358645992187155444383182733796662088933480773424039852466923214361632732756102775726804465020378631091697090408753186937823085997613020504553712504398266519718274024960654530247734350467775286488020945901131498319777710381989138005658803015013235294943764448915563331159350419576504583174079360278133457629410679371110164427478208156919654029093739617456898483179856625792329968475729921118640574323873176320073120745681831696765876526552350822000264305410724803469034528253687249297750259634517211762564236479539329959641494857560417257540503421654210631679126442254229576366707865548585645685507923488768121903841050744624496132077009733843120338375742607756622809948165506995471200457344441414554564930905960362709820954120351492469440797975071508014347994249341692866844104362706593834316721161560348341257131089138106850996252239810280335256481489034187862933810211988147624996359989235578746976522026264915779290893419409231895060217393539565780651146888222043790802242879872870931971562651274818943623284685382191446957783240070249416040857156992235480748729079812426071474016398394509594249790236672157571967361350513817873864150246109875247500738003128132659680711925781921219492586238783832668611438072237461416739991763168786138257986306908165393137673462081866791958777777504979057621108906818943632555760624015469108170953937691949960637022533441411284570975942132052842217289344309472741817666304996631716470887859343902499406566193546175418439166809199367282404921233745499255946229899818576946918653049965576870203018502180196666447008421518735634354021341594639031713942271231743025648370611025250770460646532093343963203170182030768075857509498030493950080544329244724865436315364926528879822109175814699204847619191833757595212338754368820172431705608137481622600664876754953404120404642407197382857416225291986032796397415770424119504665955826223303529335760470055026590133204076649528663507338041102288193187425802980769539521538303510587659643617430261780133905783593865070348283596227805989573063898088161912122156412788001944200363151030974680370720575959639587438745517155348784126124469940351392090868164118599424805872981672336333577562640683093971294735720710707316250345693096502639993820784147409886144566985413808910624460442123494214801408603842806216414878683155443969131455105002484074229504243308385613699037533215601679654766162400245567727325768216500443049548878019896338935371359932554583925701979570236557740553272382710068585189830368876488153192261848341066972687943123512801430794823607985095611633083801298276801398504630889465006330980587369651167152318255336872454333174145663435281486575030507146186956403944389666282136975517837345520837268302315648228472833299280219782245752152234975653587274778991005797166411633248868020774407990906533561150068239070988747003978131466760001195564835228678983372230575404169845308845825779647733435703327066880894087445977389236029128970180799734644815908550798545125422623301653916666715322257563668051990370936718423579505940147588561880689131408659188689227315564568760753683521238399631709164083249922425270172240866991300967769790776757787180169849597497017620507988132383119369045057191381700559838155738930533693696630968447498670224731308325139272883760991380472903689184093197085544765359340664823324562265866458996064094965555414781727137594907735683432505929761214298208668510519784514768968326148109847288412745691212253040460241579655979792252188948268838421362822430074919342825912761269839666738323082254170137620162955702118435475607187224320415314622804896050193515261392717311000658311480011013743842051766659643513388962254497019780294145988869314037939343443109279948350087642009843815206838046283461996776708613126467164602011271342623454190323269199759048077005673535826311247000360067372456388176261096337570352340390907196073332925667545730638225070421900186750987473601087432294993927329264834396466086349050551440808572428099704206913259363949981204712303295498700339750409911139608618917576058909263821140445413778840766815914827291692859214913216198353862226592021680621970009779357144514614398416588509404813306746155908667186789576002566061640778645705961858898325562669840043805346367422903004385698314905054962759210077352121054000694292638146982748279704031028998272799856941317736038455715784082829177571372644403926295573287476847459886362009864431243287514476011177928740004886239330564569955551325789875242104614872106273143204011795894914606213967235297174075040722136812536715848514725300660069756893383586397205349361291229083693046071992358783784941030216789161522010523270772852182890216974928876618592268821966305766295347203755116529573182846545286010880548048168428965605166110978907342111127663144480661930252751726734254283697767543097846666101526102080281121524287803041276316441691264811161454916640231412904458850659795114424425427188908904298825765243843343426271336446950002861175499819049112078645111401908073193233989193467321934069372200181443159514880636818979744587665250491646227143482353166569157256310543518193669228718054427383081836932417810090867449757403360394030259946456151386003051909951327380781422861386931400846595561372382566813730550530285030057614401191606161331022302098214874470963991356095915168326249474407469437218975794675637292387439664233213355987873020100748501311753876148218263924840931261273457359484167708436236416058888186498984151988694903744252818664583568075389626351341551455100257589178335742658974224547213965827584343120512369306370665082408878734947668505171469934630728733067821385505497136625417940043581638888838010601353080233470139292016891929185136164259211030435119666507775833586320701703527545565255588311620133141449568212375012991316108060371743746735661328272318175128374365838119538147765768366561997873441794253293853868693524356414800081046551981895116977043097797462563879608747544081368489035438131504580289795117528105877932645505998446480679099220438696439905326324576258570104631102165188861094369887157330818934688981034564335674091570950610911790411022496951042695997221760662428901692213461173293249611075935751709962513743920129474472595865978966388708252979081930959759131566472791060510280351920967865359937740520549211113243311895011195745729110112801403126766290699167391923198689301198555998484313070721286643381103581903637598999926857600041997545989506749970373378981816042301532080789813420233508732033986633449305360921042554375107025079124208670430793224610418890431577984134468440462047705725383265855456051063671178823115475263596781751860325223554006204492814980234208014285877964288034130392506640362243230699414230939951699106672513845902977356621759981840835318665833979991243226413259321444595314476160343330011333108152592567858766401476994970040194582880817018307752471282095263915714315608834746033841912746408806026928982680587187095794368614021686223050784964390462393244333779200923043644674239340752044660287193272609857756033373536969883867278772561075497671687749803434031032596842269171474995089116819680454610626345069409229167073216174705178337711109790597589284769918378905999840641494446866129213867986852097542528949054267278659831995028211609269904332334417298923110522196245916120512298848031555217418045415768210246075536264642655450344888997981583263569982398203437076791185597170667866128106804173095765574899324478465846193379666885687212952774710195348726045237787812613150301389541037241062836094771924456858229346342284790068178253673743751896319478256434225672297962275387990168392358316306585667860002210950717124726636633080320561193755596499244041437119677215630753196989757993612396191262539117400244361200002955995347425675836399573034532245279472369641799551884249125844625891686829556230067920248573435542396666738987817157203872674034122667000533901357830306213516983251665645742667788322826166997460651459719369864771190779763584708744546906981589902070721258115379759659039129758144496965752792125049480813923727373413740461914700031102847712505643106497680805172065653716454239958463845490821616120646655442568178607376176252922501891492664764880569286853997400846689895620441717736295632073297978823498448448664182886207958076935084635418221407646697070912907223765638366719226047181455713290903684505284878503444164345295549283234780297934852786192077617925740000640689197719611020173861338710787347015765861745062732367467790835469417172817218362557886485390678687193333904441178974521456184932074086747242421085958824192537492889914837051790955646562447298890527289297300368496383525456567280969257883999071902539306050493864091542302335937692276198935956808132031536279120256929725569450764523018851514909678388847111216673928882293695599350446410183843916930554730442577872934546761576035756159901454209110195344008850652440393276650840649941055201933174626325110758274404612942066498681913162840365654415938782060947055714016519978239983817919616771278791598523265545011863862316117076701386670302967614915258620284782476956490395466789487056849655825093462069104245636755098640075571237295175211945706873229313197866719896407344005930891826155509062666597644092718796613393548503727767065238402587519322161075715159414975216775896887735168133533066652277015252191159534453131455970572252103210156785024948042823423134815393134243883243460471343573770600454396521929947492449565726129802844415838405316267071039652732970464324524620293135114786130159908889813071471852723361396625570617842365115306784430052172043564127406149788386059349333382802283855188788183120741664926490718429425968689791225174739784953085088638111828404441983202087847876278663129321274261808463997544777576567999811699954451049458517801111546928179072859146083465976103952586701930027324834648026861493576837299780064645553018161005147286118337529284021760187283952719872282947732621512572188654803054799138823664270887899441349204218178871231616417194551018620407059177700299619113582420103594118244512499486923516570741537884468567398515683088017596401199265360586606242581315910301192848501701511156673552606589696884231139161319941496944260957825047853562119284284998147026901230023564962261968737071875262080274774388735062677822177334010138624272406353989111639727468930742891489741921010724661957042008787629872161744526245341881185087567880695366374977897701286401668903028123589983494140357477085638658735225197994509156240248958688236365265451123569854833771803198503483279906005418189699187705318684024152422558070486246867064319718296921122915588413651138792447201815171701088226156587515618061117444235201907001843680286069710730702615248348600249788295964118036786099447037444935366115548840979978363498050119569804517856178302381051015024011462496294597149292362087595016439819947951896431890863753849355837405940258942795367845489943490212155469975384344854991411790273915579388667187345568918549106465190445456693809428631335258708855199678357421741931378806975185346126781044418087914316282541732804052966482724228774629841000515564631775903117678112322034571923076021819046536714594482890988871647543514315004737468741180327775247262336552395850134941552966622731039042696907087656208677605581367391058155252282885822803470166145712757339699219843786429922219461246944269889829034636359695497515170151807702032574852264405154902617865550610660686944681333198119502902239301557840563819430988916485828137238635135886388820401986288948102000424154046615500057910938194596253702289645822233432320409277716689182837648578871583758110414343863623868411838285342147689804503635874372408109134349627577289475219517491551464142411757156299611163739131746068960692447869349584094691752260466419527342082415814209025414429096265215763258291078078398979425845338078938020826964957615035752516016210893411406913776146325126150165025578283154479005897220605296194276404937281177146318908217904649147570636621105024803905168492137229512113463930249424885565264808400471386412123789088654346779033874036287714656412690597888614135577664257794477218039941223094778079521077780136091643093002965029793965090008534353272071504002766277532622117687432073704185974470184480106458176160902500010515622057313679564747262379127458835908545569991939110758582700580151858099102864286498816564138016791988071553524044687416936952922412927682318522225546136012290759652875217904432199850647396069863780205865713160828798417658125935264883021047079102092987497179730117503993871691862451147775568972508262648329318704107355212660627617613640099317086103282749343750571237573518360665773651385738479456289062854245200334266091070106655359761815348618335235283490590883447135747442561875242516186742821446636146837349478585761328696685587039475131358635270660052561575555065655926747588383024685323334542207361964272990848154625715509271549287213456471905478944457085916053397004249814287933072863738456886832798695449970827563651793660973029658110608309738298993632591284928099946152182318617932157414952522332614147142517166627062569970758996305583045911907563820076367921155172204022958448977211799051253663027945440405325544415216535232401720043172663215437970764109798362387631609489041983129158146269876172260118019830802200406777186978451818646956335657252727033302122056813995695019086621952877741615378808542555570559617710439813949173675499314959938296350561735523195992854680608625775332899878129534111826952854014976494647782643867868052651223303267416586859719868765358605625015847885400627417002166681468788421429550293304046281019083989654180812733729742518600765513327938632316141312973039158871712363525001595857866368473211435893903454598196117157472480404874028465702331904993943397822395855445810756670258603449400667889412268917957985022840800876399810528941896990477478018125328155077314464744351103540426351568248970609599120900314908200714138394974745859281372092410209195208915045204116586542637893380805654549144396198477726468237922588514181950592980109853024009362576952418018174630835449580076382626116792435545056326639144372783587419040029240406634430404078663827708230418097331033053840904328529218370087498225960844968106603007022743681397903943845839050795083035361652077624759183570786822268538646152636652147304348198273782382745224570377356302528700386893810980939222091110632889017374505949486108072673139603462196828067838605964578694745336554496762803979788534623461406215336502954838066271465893012604107094198501993568831106423136577564740235832281039719180358351900913107536608471197668953218482171510876698132657013951783781569784542538355987526715723750999218780125663514942789006311079905653505216487033600356967963227513117764237391327654977263537995018160335174030339378006824826923295093825675003506332745155731943230902330284096977715031126197402972883197756894655812137696060822885467062075812120506209171201207246893654713523352205052524025623608159746791595777572605387282419173889205960605156060415359688739464569581549683648699816568069580010612553226472341473369616570581269363475874212962228216182276851249442236252058874444534597378531572885641683161200748620392001861673245715528263070083575499409835014689440905643747830325859039236764434924734416606590785792302439965458396531907989939794983020207788218997801110070710154023023500988011435891556691693562918778871755480743146622492956167151781890512351513783824965401199991169227347265801915661211478341472053789070472737309651226127744846250360121044771548447917772187830499398350711156876505082549246871273688375213333257202602259361837523271209458122115162496065286364213383919595346683239321675404222893463082752148477386835973857703977540265836538045232216054066937752174699297521615438536150295422607842373777099800738446304703064842307912626079412441909220368187845741833952372054126448148656076707225847070960436317062844279188778448342183176236722248926741604739705614222013527954455872489989468633996236219034829412583738971458485874861899416361314003557257034663590065427076577234412590316655086379748720774644695885479900335867711436719890409098560609853252053043271016960196256388745376874763308347245961798958277364866755487572178212531090221284704342262571493847601495460430583268896365278076142848284355527988635958552809205789455199492990834665963520767202827712907121166129324621116680532327290525674677677913309806690143364280813138724105660558483321195907084731047239636608592453292699160900518710003304912940023760705185295146429771566811956368071149207666856031927840357383866151490914535332399972081833389478590413843038926438440233572094135819902609210047410417940241888911688485039632838562337568049566334059867660027881780445923659872338687361880562644376511557740659195304581796662578109470313488193235230229096777052857751684583149577463748704724024124874805630256912102529645693998658346345391181310686262385269507628583956466150104841969167843838770630179108921147043916003892255040363673476686201976212791094762345415380646805483825668032720506743183691065477422498180587193857496571907919032354125310225127757515630722784351427041419755768486557956123741361945202184156778854330215682522825077030708664197592595622364814810708962168421779252319623759615113765797403481420504021463689947247189437437046701653121155524788479979227906178508182634132859450376522950349621448853419723327265984083828972101761575259660741819741048529148591922909421099235695616549542686542057435578943571380216598691578732615530536949951154392287741423533214743446001022772382556576153704660688433337491674869210819554435646633042757481976682105302021665565929392028606409056111241453293105911433544276272468419261331888622239870173768505142990585446316228533580722640287445767851027878689965730471779602613287598497587837032878586766796804869146839028526369558722410385681022254233534864103383289927611212106320778374642337940026102561036717844767411079395599548669875860992940955902659082394731957559789944640549967062891778243220183114754807148874616553890844548338403710318683670063758828238647586945153552050880874716473182177477590277955168643965307563796705010079776174322497581770756213939407359542814374553160628845102429500244296307202623306602277825432981996429936908648934437626086894620034810982853225619003120357331711358470485882997431463579811967370869902038499120681429766106203074896921948254113577838834820465194254107601469384356856200044504242803740577138137369102212749176734703267144719429087361410569577632291046497379706846945332322318306308583179200933990433278163704480829618031986691985543231189327525611087336435973757379880197831584134012375359412509617766517399603042060959670302550221772205798862709598384241421021830416383291908392328708655180119203366013984827368583549382998621282048770408286299657483889463791920974833616055841822679918198187922139388020006485053124329438871428248093091802950602444704534507144310976029102561551628689738305115602442717136294436657742308178557390812482291268097911893486050507595148969978428529443634325834584673698484032233779589598117389395382606312728346333302227431010731150962540121711655287500396830057491260839910021720364947464890322331430614995283446016260580530447925413587573840551335936228496572320284799926590721525193423992789118206017723457633885459793741356634633732757685877822315767766735191755406760656857551933566516119551625422027623363075173716711098818658009046038381917402185080578311004654128109347712198887022294762604074604740843737556437914165786754457743468850375022026764218170278602105111123391811196626086284586558071927842302278614516388806578480708125719867998106355712101009201506150258662796858279992617888874520486262427150087056373274777346856660766696883863876565966895233111793965161453199939175796686094753344114164004280832025770111982764202050094888252946964700967219933551954823528986265415042947293410632888570153854532289948959306191747413044863453227358248220919405835221350857957932654380100472785966651349802125499243505888101283888445012706138074879959512386296835553582930808306379154582986900034336335646606599266137735845299708301947634611782225136409987694882176582983788607819563485010181245598855273385183789173325776368803486132943259043438837239879467882669135702135227329637951286503399615386598207070087650568874469437866631466882519192471999749840276904352145172662405266533209065421303207073316652195856218422053612278086266286864990956711404672218234261910398115815480885191740076860235107254187016367965699721099616523604877060338944173517818363445692071496015036798923543338502245358703085418949814380719828154156709825565227067113953672936535540769210522119969421821485650542614604776206267021938317482222063961646467354803182517867910249351142241605310980713301191061331204341174792486063212484394953837701787980713072921182479274801985077923049514505181882641972026881676105445099162245228387402489953007244079553109795754863586563205787336094890698849650565438570366252135191938710575547161633535936277058459519763414954328582849387758720141584985877555412417686784453599174046668416528069729589914962412555884436266739579355393893018489549223774554715225088392820196689695010444261604255290250721685633785402049786075854556150033857769699032957467907382123753362679215889772187527229144495795808110189870710556483342579136658136789486886702961373650298681033264681823210697330312625818177983333387429938413687342962613800302159296572356723015705059561907001609632545434025230488172382273253733540170234300647455283964351941449573529169917417971099471040228089008579481628171740640479706276299473457949212761503351069191254004495250458395406361444132815927817364380248524981899325593165893536971672717667627571802391087370406436721530745002694127681247795360060463372704335791632600572734331227338558890468353987664591862328666439885448866217305695821193018413459759846128632309956613794815010942883945684075887994169197892245390335027247031899083354345291576120544839397481515698437440529185139067065723000511767830966939154503863985180087542326820765392438235597612990483880145939410687582393826905653422615442667750355917289785693194279028662857974669146709080052678044008961209540529376255874433232595130854094556908251678515679383190281857249963610202140936831943289765099273196668863907831261463338213605945458824434607007494389960298264336475719549122800925561062792168536750904823058875767938730804000726536001877479294488029980546460672578667991841456198068722164445749389970391608280925267978822265230830617745798171954850553001186050715956603087084877165672261229099765287639637146532481092391849998463809653815075074385113903461146065406421294409575130065786698617353973166745907484237177229050149074676252517801412314058909488450554024874294785797739843278550324877534895660398457043300185524660405596223327787625909936249059870545930131191229958374364793930204193241362430316958497812096388523229667578008047385203797375496605536561940078651205925717851367386282286453375520575734612270136637519760463838803870615871520770362996637774134611392011971076357238271892337679668687794955878520776500047856215848417616008624562235291121459975186518132674397908994885326768954658863648159697612892009516596590022963541804285349012727917885184378340491628335050349947583487360963802355526606063183385487255546505791766508624619857523733024274049666426615662415267860437032341867558266050368079970411101798133336284443292436128881790962745137265211998048978823592112655943292018941369727929092638752865026342421600457275630612874870747385766255112571805351314330600536011447412431738401096257118032362395768440332825274069374697900020443769806742292838557485620071351569939343841380939343356158618515824944107978110763068453950490137924726139390859325562015450906249926844539986908922300744308649768012953694446533801614214241827079157047681708084904987244322133994129790782381951502438297240957006920486999776817573232280533302871298506910556276448706675437926266444483047433782944636379551720516929283841857137259644533480198393561934338599299037631254054942386041348328321565206767636968878629992654030886817584383143758648592119292584392072112381349191555083313521796471201525729585827246951775933523603145951662588888566783465750946849166188032880852900316908918580163104830192490907737244451112854876366283485847782937789803229305770046861100710640875293840333348805247093799715389927643839736799498069387092956548971823880438794400075614125723088767739172917464194283714423613373436408389617862901506391535336269370201973704938858715111198188621935321315565238741836150873806960263382881322353433981690350008013624294873227094949344795799349677678322149068077571249122151204145782907918442299320208508917430503573970411242558989030081403083982995459007370077626441935193001976110261756236046887237783994715373458782864230376225569660021310175156755640380487428797804926521589315567571308030760185419691390518931904854712231856013071241738742541823895981728744961556748514711482476574950291207290814789401834044544299236490402734349194077445960893131575749956981141806776752555885494592980081264732538177914327117852711019113421088265683321263582240019475227869018160162106998856874677235872435421410579386305427248379329491328105081681173198964234205010526450923352962939676963589575256935582405567813146743127261204935441295963934557886510899861472696428745007926067929167827919815429077800295318874439944392640973072933158385811818153470042174093672342605160212184823231521990199837972798215909522101883995769620624270197288701463320505849055538698929285984226161601271285312670399835272780328740838883739578054148470150356020031505739248581335634074608561346641654586949933599090224420918477472763542487517384546687570599642374639473166194878667136378129978304976090809446508377415214123747061568398813798101697982917234480038111985949518366483227560875137065929440397811454818677404517389050368179864069639002284000899524517859655760619838622617060417121539445790671475586533104759987365806875654466076327986892508127978672977011011652413060901037403567706324997126993971631488286447665139476793264652389067597531191237571921999757844908001552604516145175550286088123202521280081682176106930291132977705948654526539595942888925445769439316940584612851848138407545075388049772733412778167965414521417594104333162803128760795615110343123634637512163562912869799235682369574691359245816268725623703856945365532034178995527226260255070275055503813287853574003995626125169875772095306880042650954999910196938133270886667406180462871890225810767226944004115383163445575574816145588099900718413488237866475985194867728423797243577824501083174518203457588296551508025044367730586639249053995189835691585961486810613085982637033957407737200202529167687525824039116017307832324046846230848511987417225468977940606689658583153624364703544410902794534477113469947574013961348649990596179048701039708618401165629991185884258562724316256997128831320009338463611850539505153368559947273252397455535410142130485788558894891212031392254266383639532151976733040054000213600450072512755432203126212112017417434598071935964337415307364082697961985555209470093023068692545056997863046355201241205427543539678023377851066307619572760920476373367249603007672013163751959665489419473880762665853935457768444736892467722673924143660964039873303935565869489861536585217293868458645080445615822800446709298274962062426543142059175181470578785520218953249891529781770180278725819026748992334053002398023561990436397451902151920935180079397356522067277234382484031637574861667107057015826757727196523994321019364899197579150374814461244414113455992476102368604668031559581608993431596074585335250292138861209733827421048779714022413521555727298285348509742296982782881361156817704313636254728490276711080611840564591718389711354128591887894794548735305858924764506758019703545870260501361746114556889656291336646766634478015323204982778913871268633542313826679751563979324034782431115329784412834272867787815592536898466054226483659801834328372571366225965667750662764432004892727910019544379984471448108280846406536446837106254527632263768883718447256667790218926922483870216603595930327426998190472199359755488667233972983110559222710625454319277581097389232361513240631721883292931775988576512895903204051785742566599511948418708890482170152098767294272357003278777499124802511866592363047290889951912670037668468207740817922117006557762982511859452952683786198969845183294568498064169843808002640337654808891398266109805727253648122270154302418765939545861829380827689394520402990404029004504498694469348267362924099996326327930666548093776143090346566877297356554913809515147056986796665627974335454120962383882219225091270569552426850720999380411092288191091695630083221644895476731808941408032060276066062719830938456101703313002530549772969882387115937861436705576416851480163803289790349946223132873416720851439600886005961183433046316946568187711278434354430388749839059338730062668231538312883265282998302061416623604541655994408368723081526623012412064836332591077326373296171921187407792189702555659199468445127049175603808133182277357940669207936777936894982616127010166607431699417820267414145115487944763306548822284964525220407222591860913033392910399000327143963880846323848738268854572924402797580313752122419900759490996462722920343608468841294872740003409079814333874943582788109951227600148450225999616763364554421997796767641323011685774194735938286825500999916399492709435786819608160164345602960621874904663369929593646506035277135098733091411796658842859567384067524710614034167861207875754449732643169728127030157833760709474626738654284066152074360724281998948379015311866478665137038798881393312033182169033591962227053197176636442368608248130600704384253709319369620168576254379288374891194624230065577404048652578562149558650077909310221175706442117945221352101813966939256806581544696735615393252889287684407770253657205136365513698736302726651113250250786915043163154162055334261050494747324343712448250898806893918954700345756097280629507120366234538000205774806076793911160502675715522903802068379092194722533816606883476252411985532954262900863672238518020813445984493691959139335079225002834499884464464651890386320763501059152942905937866316992595528225457771033156484719966818075896415444185066950825473602466966135085200042256936582473370418585498573274070100948624396284409358520906589911485817427779798014464511749371357944346501594195278116594279658859740465245465207726584622637975124754330996434193686796817731950473533896999944561763522265940316616842684938127903193299410207883554713622507755793555957359759452145370308448745766486467903330374829929705015344995442540511221504874611269466159873309070838199582127784325111215757981795607865012737806900140790500953559116085937840974522511509273621635415229067391517792579951993000809968102506373268398966951775777981928886997261498735625354217282145810479258554777046213916150801801289745575267194302286804422512835883546899888872235890926117258207965250823792023775761697401734184276541505792521207042147511302550363874653371727630125354995399870397592063692227747867506875187813624521507744686673009841808536416603237367666560693530883982524132945155061793536907783554345065733718784292278200183064644206776071044745772692882578534382764250560279701414517342984820625021842216961205797309141719379994798622411431705954783165808471545704564612341322018632485279650231633834830867105065645946445907264189028241252803936214897730771710550599614681637459509893767352588112776544346301429684140441397739564292705784295078868755786757114850285345301462695572759910228645029281761406522149999899388249916458740135996759856878249496978498091879507884295935541344354178463733608999803962553065492753898427015334284281298045696877374215337539368731116635542066654878134598296464134265512280590473036853023129499305370663025849568183347208159992356381325703505634905068651674844143454445824448679996636833635178397073671739996410780349099931291649258806048692107307302479902072013824609160967972957855409741357956952192517982450052007411061989571924222154071164810167555703099220854713975779804994741374311135609670085265940868579242684325647395161788987313483380301623523585137270327267272446320127302993906391664928377851692851703054471531760420542834105331712200888353935511815207485506563079743611992330142382118079087970352970869923014296566973296866238866118835746928462619172171966681467535140503807112996991645296633497387863181806159084351694830443742657725535087271652358811240502554429433484773290262363449684635031075543341176107715786837397790120490879449427304894129842839464566251298406033777965914414921841267057128022413168159699069192324135454331489104820981729958577912538256800079017130512296696979713703675032465170899446796437144392096549758786950402067629049274258070216020812510138570175932863717142283553765741774879935528125501113593939611398863054802032076362768322240508052026121367030251650616792034653777801549006927424262876931825885702389917646140560130449946025556000041223435844248966282558000553961190141757194568754640122384029288508398571748171430317807933262193130925027248175524042126769315752633374579136187344550666009167637115624387995188063687485129303091227149351780179550505499753661013846449080196435381752436406561030136121464207105701117988548736784088811416068109926033820784099698281134170525594442884644119643235308159746524584131359213051001654426161732216715385744483722081415179229078697819053308601938984000849658758442385451419353253313274168692204310086750785075929528781977080003109155367562048009951525259414554931648687604847071935714247533718981602906170449230595820925894482761220246509496126896712426960402884627583747606923343368600216791218013186300723717238121981760443134197715795643726783063854777832508256330098605126773693668601822994110194816527535257838933563712646504979839459319508345687333058337190654200994198229397043904066663356294151026643513043220670207533519255300327688535957128478440148595129365782014123844852222852421772224405645199995157820343254988489778711585574615419578094409344130652088349552807282453915011551912632658286928018969421791465061076171422357052759009747130720446282015364402267762935480463018316539088210816240417250362286748801083192517775640335701398876468588071367461319048408334295317663080460763121281672614752608473385973652888711276422404948303217540771288546632146968425506512388292414418830273213350870110672511752855632900459265240245112148944207742537423836258624192494069413953908993224728492636605410599398268947529204274727954847424275335661552037621027115063671547720982945668957837824836340358551979096497652962534739380860456041002698861260095375543392523019448016023949445637650059673621555497712484537422800402087685588425584027828085366164930307359668404223386211380090512226439913091135491345997201488847694909848823113125572886919921027995242187583055046914516858868678521198587401258807301307012281173926830414174141246431543955908879556692514215232124193441359007128256882511675764165790384385477261367445200652446037583141505008731352241465526747429256564785727946689115505816435624323468626116163401362767121554176020320971701765407816764560699707588453445379289233390216809894716458554691272568283669956191713005994621059431838048723200511364473221342480020379526163270627037035036454062187854538653462622233101802159617555194480071809744036009509021847610079962121077576333146343262309714449068915749178762591792198657481138758591513721353766548679903299224182012288554254820651567459553834872542989115825503818198327822499561148875567507934874548937177052518340823884200727116195457239279693700175079797728946474330330602365508467150546446245156220548018701638986516637077447305653757128863166793921792974995493584878337194842519384287315701574669288117116015833610756960696762582289496691264827940526066700656498516827550124609224558294110978318830416026707107971456614625977347111430874874424559130155086930553718414921803107727118663015630799725073077879676494972813444871473787178040265161926984258939565420502217218499257975114603021809989312009870078470205735321344505895181276726648545348361614655666462053840156625025871932247316042907955241572842036161099360113178520908150449791813722699127763840437818369426953831104143474600760165732349355198268245710121434185826033412239019663843859538320513402318099955357132997123500879398971766865076592926987539975765804161479205325330843168214138031322675634664830273057137981900675240760551055948277280251009757108205959638167777448221612475458633579489883382333540656649285962261922425756692205261504579797991091168164917678106558423068724053892392774366989028672771593291984192750551439293394132480236501191055223789432794082554597391987069090770159008544470756537244689780944876740719525787912002723788842506676840237337989841365551486464118634122422179140660042899291396639869501697576312943399236602674466275292346595291611819990743858534733710993643989351120314516555965472384379843803358776374154602297285309576659804049793150154396686653214282004281472948219283346955722716566846405588405856808057640111665234025007951204224328218405227497185806798585099972458638565901381713441020791172780751742322699250103099215493953043936639310088699673431541781277847797561932175491027251740999343839095153675120657899693234256353133687762846893854190977733323944594527689853885820748932719279489640418495563588947393940883633243466740707396057698813905640671266165706512997105417966535285889096437364762188720952791822754841885053179278362719343048922681537652102704841348471857940043750572895676025457474060628438690041702846585747240623915689771308154911032984167682791068464222670474797759995742710586287129101047169670331186380834663768864600063908569140162909480487900102303995222740389280033455847710003808089542107182610911708327301261384380777169275677005270638911357903706044679829737330012678872971395759734764401153102874898200777965859609913406809123884149656625760023462250640111032146435622040242403455482687844362991662506124247348464313820810005317945479847490652981430706252423962682662262340498573388700634972367556098079921459853085591217566602754946033333646453022060268324450923142181337902572518697861831663459995913004702038456844060240117056002752427988230334506901154859255596620563087147470270639698506549502254306297160179416745720749392015868480111785036978711868735124220004845898883992436678201905506932895351889757377162537464482650738976977877331021815064403822728097893823379166970600825610273474388249967295807812970275543498673223397653037387300885335804128061216349703505173352589393184935201149864014856345070388037942463866647927837576805582327622545245336320348154965274625195472850889275991842208888685941390020981772511985932946280087380923161220293729989328904766857011170262334594817363762756350218465495921635726888317992583291806392269057312710021431561059964753412857521758449667944920469086584990253996436235333462574527094997662662337564566878410218016315625118758743267423528951286717369051747432624775978906847187746059120162735573537658623377820688260670222107259693991911263782273780090180369213102657382009663272234557131608544217798650902072199237822675238101040498078203754810204263882563087509590749568963009545749416948809433872787259874092487455210263932126467126280761545033948710700180492241675208592501457863503653177779192074955230119748810317780586398360614021112230729565307109692833394714990233972484063520667401085908281957516436590852072974854146071736206799197712901744713872577954651345215107595404128803778786276926373343997188060668933418787720318973409415147170491012993061128236413764178053264887578073654219786537797492021241982537207012204493584059365029093456260329205564410363655292132924704474355972335871939585005320390143979387389206467579549849821080665298333808901849144427250415100384485067139160681939271536728254265504275191835733520463699724155831740346351027386743761046953631369137426321507370267695402273738350630629827734554436197266888860041692500378080413453863298762931269253239416882932213678020099282925070492976965560829953881660692110803152452969156620000528341556375865189434071509350281880025898123983484550717217148828203736449275922940850108890865350641770890070800511979277427114566601599394361252682977843160584238861308669425845885076736796144043657426596934071831561367723925810668841794647772858032699166556574217871607736418897063895747420250806030962439653692492256104479207158523873030205721769844209955364343038697294218014845503159385654750270054377995986043039338877803267602071534615034921137408195089523182862047854431283226565602519882484610285593382111548383014001103816309418136477080348170941306748580739132114557412260441564122751970927833933968197639559458658230445325841800325841462193484521571390995662228485503189527842412450676259687700504844542996416421868277471581474423097501183820770710026229105150774429881026943479980264448095417451279830487750476344328406166879883239182616543050995060845537767516010626557858468625262313693354344470351659255339967886999928834399156536887110603353587708038045971184397678761608776697857670143962411027671594578615846966648291193947640648524644087571964489780522079702230255256728463922957696442642944306801881689464774344206207614448766266885780847731662915362406694478436693453133106492679288524213511767309766344312644777223998854515638041539582854170870752183134393004127354222438039136058729798438215960785570099719894736945362747508211684954959496375290756786659077495934069145363240130260664908872781373122132809273211801239275999140001366036749139453643094109269425477774621951405198983466668739193558559781214285738895634033035284468610889090958514540447034570929490084741373033019377399530048553784680066367763692990479478402065910836190166661559595064292683532903653851458727153183617029967137879537670762413236549212645620749793044192033560535684836450552940488152542122800771994002573892196746697354497978235413785383300550119088288758378260880201534543880867421366009721902034493743460022471034068548024061643252143438446306166454507667970474953290615429929271231595024866248239823146057242260464404223943746221240017100869646146669424473241417595623947979559514271107167605162455377736795390851655665379639675954791626431633469101428496022002857292797399082015767003200195025994691921920673133789743294667711358446933992474262384160217478433604813075848348800082224798431345981566638069864858823451811266817799306940192324136864132878261307872105445583791604979832003576661108474830370568172175544904597578907955643638638321870531155065183765537181523294118638992519159040848992574104779451701493507117711647730967384095549836661448654827463145623344632136857151242564431767947411106961963626574589565580185917600491692809051973314305389835316195690923389540664981412627104461183728317719628553650907325516827921166829913453785474310404353477292091224058003753297545858056753101705013498649210525297148021785740434192552411904890759176189803608008758921188009185781663494071486747951600114705000728542367063192783832699621510720683845721775500215356422894109244329711346413352518768387218798804415778500272530212941324798123776704529200822657952961444219865844570782059708561333132103219343733852682848297978555450667922805323468972887193497703162225783382320836514395262661709671926341744410771645081833617091801615150632995659625100286576831581875286620831398191654649759086111403579984440214488455436615690384815901660949726378333900633673006332600659635636751468208026882513554830913188190352320126902654044278608745019654427373650496613985890320517637947266610631169718792418959377310743145788433621239240637226395777565333966751678397711643849740888449790065144948130863118694299572982980993272955916088762973922021644501581747877904931983116729045833940419058237315583746263204509811865709443032081252345694910043500053205930486115456242578176169498750943353858320592168067512729120445028800449056691783031430804322151700050272317439873312573816625307326515307368112101347865985045690743953680902919488181229588947110856699807729709253248083173794339728500518623313514477467393881279589116145197402717645477254977588764539777144087685838325533252885308207860791819693376150321183718464606716979810729377406186380209002515818424491811413020720497007683019294036431018819591010993080194043533113416203695038092525042149275386542404374147785970628230589000973257878888366970090335777307355146584690163880679221559867803874107312714362146398591263732546532154890520577963420719989313109755640274237638945648626334715669571203821822526892567811467862456354964808024596171797436905928680063117190261240755124809616992653971899455692429822858196239792118978307772685502271178799104129249036353286612058170124140135086476188735910429815318283201385781819582074767529698719880597441700085044849861737741222243178271970302282131187462151359681889149905431446257757650054845796346476353547955148866827327782795679751501559077801829032431878571165149973282827843080075148787664034082080257114086001515382738041308265742991917348109049878682795138487443680996158682849432570266773416646762851674026621933899751030884385225801912923234389707410910044850258565655702700111881166252841161972922626413109395804774800050187059847464535838655969756436782403769834571721812455070982629336765311451774769604159681031846520773768984858465539231729955129444952185974851721620271322276330703819393144931642400416807106595362838908504733100274001922835960924983176767729509619850107136126598227984882765153558714966996990463869839580268976631937606216548134371643210942662746567875440966495325163212265201861272602684057311517588638815114920568871964051762349510404529447769772231153787099430911537239714219344973142628502611544313555920230270919135082356782330348526365382876157172917976027749354301423298040037120012129590715299302550807138137737868589263854926694001227329725807771644602546456566716157554092973595818523596116676011006456602058324824796236675202737170954582600828572854519280054307293128395809251927574049370833522817276270441392798713960801748080131511051078501480723975384611932468851749518295226097305429218313008288315366194253313009048715115614441541968358284667966120983866633320496913514666574267143628597286071309001459627079501649690348540745000992362820075264248103200129642921852378214121851994321025643910559885366168420457985591233798640805570171866289140186245139536154869737771462203473837960371103855344121750142141518102713544921147641974177367889257038399582593877558184724571807393691132638126717518997843244833742515517352656962870055905970738266802274220884553914349204825181294844793108362656884438579545740965486315917716401000417589141071590044671697540164220128859903605858623032141759835343600904581256652518046715992423103155620864373157847648316841154855143368789331390778981030307236810815577202751709584984988035151323396973829362482507392457708721840738362543374612359645214647495793076394103851123490213040482112576597970693285877232792853306266270232900669678029953512559888401535495865930906518245855072639292553494240132454886236943728487791857954147399210929933348875899887499576575206805407572011481487732641784760932719252878123880733229080545079867734485632349768622808344333454782191366788885369683087479015666673580034927806108768605149185815299073915687192045906988891986681089850398218378974630109718760079419149538158594524057723006403825817666213503632599728233369216611139769047105008519403298333175060518714674326863150203813186978765995900462038384730416015542795481062518683846208272128627669545173265931413335623434335826798709279116660558604476485064876858017913258781283622934688845365612180210274589404818729676481184787152869346412570130768643828882603283514647408513845629227154385744682655165957910769879632686645928993808445589520666569522445013846038796709629294348744939655493705902676607895647984250498253283474020164381568884624800049859647927030962884414705363900179859545620884722719737599588130461981816841130116726053740632291661776011984578671993840805592203145979533201756168121347749277742444429030159039238125436346326192239177240398111402669800982575609762414819896677820767512940515889885081399952115745522395312643941796592832005519256313060861979169257146476189882346655299348302054109399402689135168480972417212801870628676745365575673843881110487956499195954868490738427522582010361432329949892594009021609361845241721944768637295393709084951822820762035462562187577569663274198571070883049027912058577767801296001438958417917135344569816035704698938745287538915954855339437030461464403381728199904328257824535032945558743425317158526703003996569540883394228416792871140383362685219152856836552173225376468859353247053588883588412889268328514727254541348954749948327256778320416180954280291160736063944047688161111684016704095361158481395186266402900660545353766901489591967951662975069069102668020785115090635502910414535968248439449551049900470461669344891807962781864959504704263069484016621152110078637924450379497124762003154788738365581344541381162704536045840858671945714486216656830324129800048580564934691177967072183856622803604596824499752808366383853009251011190996816555708822365803558437676152529136500955339077393093263145790476072617254345083945662896450143707389998309127967130959816821297818691606156898579924076754874974789921907400518149318226876945417795657083654687712549590942361149204107676519672184114883888080044522209883840261503962752034366549428741994652678113939675454267799252551298633697887473410089850677769248453404398795589027557867235215910064307737435221981725011789283321695180330606955135212215186880677156049143434439920918721538401947787001783572155458314913892689667867100814465321923751607115283192646988925416583883211500326320974451555820577236634147326938068954929366732321735599107287382979041179360834138592811830808688690260528108411056488648408703177114341324804513728600963698744755914992558317849493188778687569441789272514079352945028411018506986640419598951597287213135922636492104505010884241862183529848197538865298857717740889459119381660775819167621475510104719150199003515543377875771163473439752150562279189865099206341755133621755173480622892173431672411083680718401838710327813985784939424393504904905968326817172128035947213149774991239531542527011091838263243858290505000006892258609292369674901546780261984441395092491999340243003934617597783283926669941171772978795214165768797025413780255110961300974738357716132969216227065549565255288877257925223187773798801036780802181487992379592052453834994462276520490520877068808048732984798661302934343234712803108882374027755036573321573667596393771086214177626707771823930326170501099369962146353561025796969348549051069668522551200374904724507343180173380924564191528512372427889221700024377685409843630679619580518668674645956809402211197970874619785379992333938279202063390179485753825310053061229381725205830968893371882721484003974675298705959327032413111181960096732386631590972853979873942575232092522596515078033161255114470237499618490258894230070429919163835385390446248220265419969800679422573174193647274151521300554505430739924725538860303050891388936308758194311647622049612795941166050470441232155568999161159943822193628884916979245420735163996961734333726108454442164219451067767934456837221291927792609046511621008288215360437301671489726203967400650757417826863321304378800662891275265007659955895201505974099203614349615134530289534677213664445514265307021227102747561128965669853524224073689185932961607591612083470786579622156612743015555784336943795606958088462533815916550931891322547738787816228505302519824310646151664686989053312585513068207431629964600043379857673515776753153121447148668831352071339901286725068728931324674956422552877664326273989531526284550083676400116476199421039242996190414583544096124669699784660800453868335126403411958524505434623906774666563328936614892807176995882590353396965156469851199141791730544070882188046828925534177586317572046517597940560569655678081156907563471740494018517634275550263559034311653611144270296651307595461823815706415923603609044986654920967314517928853259553771514683172393923679672779344990411247382514144361368213518345190117462139664550826510422390631652238368005333275990641709826500509156570019388772593829808936629093496121888339528513229010582091173563705219203337395337788508974669245526672719553164976919165239261769406118383031320942073659230097813836514608720614083489437136412030020337900970104096578056821926730447418437696190595789668749432664340840453697211626095712421109017107276347140601657776530596671175880627046545596851796616829709509873930761719594773326154515916430660823535043864819326594324941141407083431160731645346568263292158883035410975054223692300179832730697786951411842808574805876864397751711185254021317470963826902775820187105624022275206081202892065071849328430059588691282475978954568911928034043248947288993176366279615524332386782151340219122886102334832421015176553443693206055100618072457290154238297577181023803594517435978721840505590267231848148495242056364716750919966133521026379853870061023060139983598846273956499225195276623356042032990728949028354864672946494978388378281114011069408716563096071358787792846573317093144493573607268073116419424003055925622148732091662999844956648799530111248175444970574460032450093385903108026581471926569552330061278038823732619794066496621575569189013390315117005653078875309164267091390212407074146406710547082181466840697933365743310428670109118625233976331378312322749960290162811491447751212910893457364583651063204489323949161620428744944341261029142791535215155839479310982884533787739867911871026011134130305736006932232231875304059440390538670051795766214820291663968646730086713815601300985745817570080909917460133791245578234649898353963952471194302128189200570703795646028779043558889506940591671160323760236939187485635190332758249997885668894202125083102342946758475950292842179787215676957309017807809307239110877488149115328184862519470648330884731427440537304526382623840593431609090607461381502936420647446578084553042712183322882427291640658601657883156177900550925479736355392940571495169564256230610523433703269444255409823451991773759953338986880699746650111533372245549746380974513402772410869169007885168241497398097648016246587525396972055545702757682428757800841646891409611331480583265604951678455594279805942198842527156408457545561922558090317571687700630926459885484363782355890428417441863142551504888726220682146517043272895926817670333175056156571322236057504785854600335817053455933031977068498425611967782997059341838879975716569436584662457369969938368247741346795093095597846070682672532325648035286200790038122002309657451424572990284860407741395025707515897139232790630541221373311128191856458020596220041880951338744434198607765632383196111396247395956797250287639178968108519737616610985749113387737330839015234931131943184149982941686107875123559518498990608021179586878049224717259788843231026328268857100000678904274012998227547148956762860832204559155288280962878429795797667804564936814845261828260415802813785944096078766491257070617823821557658513056779394173935077647409405862228453418664989711877512674186266961293690187716029649919359323248088573562156913696010596992700091053659484988042329190145349882222624659879115287427652316688027482257450386641977745715291542111427116371682010617192830769246652880827119040069647347185908899333428464050197496210989301612060664519416620047311242860105454705186913352077491713172135502541403813871978626419686410596056028187204265970187249953241426361316278524058093962348085798218134714142405824367256990501798770552679416603201488525199592361252922846527753595279931240208321398021575050428035431911094353945883727936556477075128106961779603872843310877756112601185342870163576340894677541744555945445653696113236593075980574978847346690961779695980828274347148732972949005333190239985943509195716302481063632615200095005569381153483612031880902002596550254970563799306827076831890091244400308613773670103698964065975631036209894367556922131756765453822361749413510203561678771373120515302885064362012865373964186881917356443690454410875238088009290523373917729251627493002184551346367482401156337064493966211840481455242705736057786139307854795109048135186985647739832514833562748721457433297331299888049222285831581606360520080300474643871197113168053684922210417149921967975758864080953135826314804051303103559041837587808133033328643048743199075893876223703352386276042232437696096141660455753043410150633805993011110035476644965870652436471834872253193651619195577609076032686731459561673157634392467620266172745639914572518898973656429440383495285659457200234400000336700750449658383683749068396873976760135477304837958076202786665589563941267179848062066171024306825469987258481241082704853971721036755334622819618569937474076666343005476725598850583537963093051915032827309792770351437610644395922106343076949299312222164640086288976809564758320986808406719497734627957806856521881500766129316968591141348507096316794198217313850288070995246915734175703803758947615033664591351999965504267874949588142471353128402270731362440231717567579938922092972942402754203513469657869552364666424292853911258666767509923430550595879858284107024255067782185187217572835868060505369965082662590001589931382797916384634472362144253132017185630075481166386908480503762976948920473450385070203247025012424329336419682613744131717217245331945997102030831191366535451951225226184348186462793799920965646634218706049604911096555379595136352789725327521339954213483647015657639274517126552326197212191877991111827505158363178416291548005527275344162205479060415335184068070704593460540876379461559176804101559086323124044646093753883935282601363069067574188067100205336481227895385166945505135279643125421190146284971183960253308634298361045252700674352766685126834603328190008701136448445847831976666395995189956161075040595538588013946745551138789352816305364740427833943953949630401320614447454227890390117358301488085971025294522284298877244773864169651890192792149486963208015241987617107837138677316041578265554418770221930493220513506849775336786775643832242853367143883582378508552813137840823811593914020609076845647685178222464601061985188512592165504253636669921893156742065597296572193375332311365184257955428418671542898890776184050060476196543968133888430091543077962400432089805618952170345041789369591417258555029464807212001784860808472559713857018270225110406033718862266147802817971679468304362024819194720121391682911257290496751077619059733297108796769287382121968881355324645151726642690771081962420576837493782371058787436816580154390639181924413221527760186148814516574810295864373035594273794371337436741331098894917676344251402054363602005628336256651297598602656053874699422246608860092777848172706377883747249353550099865782089675936166298829129299947168792468202891939782523500599043886907920311898799103546488776746547173077464160354327410550625822445592849954311703941148802008991902474769881234639925985789742757245497524403363235594630014875599562942883993850725771639864056754963981756836715980762639552026398638946130290825763262000000582214004442511653382420838637054271666011013851354733355586374326816719506818606228290505270540063695541352527032693482613535600146766713421132740543286553966819538930504765627629556945794364334646546459703701745110914622931218170800947222288676785672229730225955641081655979291742778846675033544367197868810419044368012636736794412472486833304875567818318538961660900160040352335204389861521254607377635851551959932400790706163009685187350027919739479997773612099905958256770854205884590493832612072906184182375168486441526997626051847151484855745320837793446773923383267380963575250272514617629748306162920034188127956161790977675916405357280587937796729788301696907735933533501501256360454783772842430014976030993487482592245510570554393962723625138899399850792956794161185838740514802065132262641400138493513550368776630804611722833710077242921179454688525292289840195382454674046056473955539485604321542511504656788756031187111402419237786577593831000410001565236603005998811666817945242558084272240183126595628599332656692301427505495405097297577642495405101299504771696209549640739030264728778981585533964237725557307440612834514064479610961300656933590154768671473127197465798233184114023306891539029918633863023209570586678235104342259663639838398604962881121790707029154758695093764183979284105317406358298126386664934258490342140345832773367513488651066407861179754755626864131634292087745184464287350010720392852665532388468257588328446269152950200402452717614406201926210071587452090624993949464690231671712646859412320786372069597446004207720462219394287849369683388093375101887724330374497819704348605071822719033394654912215942386703212591027897112950214167158468247227244661475218944084404346361310560710851426428872012794908121038340536052229191577634986255513573735338927926068573860585737720649592271146696349127326879437555592799584610426627852133381401601688029229383734569586638023691161088291284853905130510204283942190389883472053529332385589310210697205909084591434828212933617653169290680737288321525979352959983382092413082475647251883232273631000009416320696371985068500719136576910441409265296161873138491185021727485604327432991146346880445932888696524809152939830230786116850462901625290983881121647482630120036341501403813461707854544347572816011045684163187765758311933344671010185667892238531810465739533830134881549262943487597096486712956121035146969986345718091114480802121015982033235995505704313623782066460613110570405616077129479320428040196724705038724504626569814285853179077256416028449574457762804812665537061560646669007326898271602103077920079067422403619276280047767112316998136165283128114956106276687434989130682404345425424361784450555506419997833923424771211306624505472621479271182537759210040008314281348059422440222566864634296906597248842266576952937515370017569480818204205184511079423378654182364543175032198706236489564233914227083640252526915708994663542296690955599865852355110133253136112133143913824312644755670817320989312570483169950529635275160751760567677391055303822372132241211618322055017904890812671212519234685030516307435480827150508950949778880281707331298616240325202468003026159934372541563833899998014652049982117179800445922351286230633615139427394263883071437478260351606642273916438851487571375716646952482077408332663349737900049049123628034781651954293036716416467775969014261499752573026089709248065815313713507240750568973976595264628780407795941879107152390237781433377653623099547315300315958430038001328224308564350560388260923854987803158825706152470498265965154932865159765969715925722452464443336934227185279984759715819202999229978956407994113174365185185178602669873771681754135298577263243642259255718893145504707486781396490926420551823769118427979984036313963869697740178278127438656131413781414482188564012628569895131452603779830807119069512425492716392583228004686095990322108746455180075427488791651602293728408350370083388530055644502694597112410439333328507120162997167587850896174325344566733784853960039884427974101030579558100703967117831781616825235761518993724235546930969545399101588020704833501466820213726419014229491120251824290833340273075939840654443270366871636736884161546252191126715660768410293133610704182855019835865907386617087846791363101802110907798353649704225920684870549924754996436534597048673247038872386272357355966179127995625123301034534937810656167282324560104700093030920598363935628468076884055493531299699126568773415927918242699172918500892406812823849754370512352148858998020555975243238597900483787070620282225329953192477797530892560296502322681200478918129296576905350337439037513826023980703973504765855277831134271811462457576134027663053232652089190470375611538205459920206592593550192751195795604879665610675300403622979568433002881650521605954751548914162104470786457497927866673254210405363896287990985743744825668369632492448457403639389273470793639967782311405342111955255081844131503591805636901251429626107527049983445048152599074038997479975788758271229144953773439083313253488025015536861351204814949059273705732440587065980696298025289915461387932135667018359145798296024272810385930729621084533937465260099939094838972429580391732316005379326518810276156571655374026849013209139786579864494316864977506690768825329819657112632865353286578657153482382559116263867203505170339037755594942320890123526189273426995816675714406352528791279676391388571147100611486633164081891200634942971225630955413443098092340031032993306979897613828418691750176983252386143349885562302928378260616388679435682935835870343117698021995419848540087999588871871606136239866804250925460901445338616068038815574196231529871592737052737465165320490267145007601620737111669258262027422113318148045692815583996944747302716638014980388868415805140062860674745640174627770518323071537383059513481648233512273380067913089985816479408041386554259509251212468826574626758445748374466895415694422937489704781230499512456314043478979699832502872559659716948599408596630712371523573403727744222792180746274316707399341217554996062280621943494789988986087030476408677204612759303522401808415469307699620930159687137588398857513532061559648012493136393740579593784187868308406934797176827704272809469709454992411751287485499354927908354228808201430409631000783729446610421195565791897985861250498840940767532168953075727908149613840499633387089596365410488061984983640871205847841753289924936961612994587739327010536156570280417035816092174762368067597236661436998264608801600370248297836636208897631113656540295347301487666262308260786242476122406595314710254204440650034118191214805555906184880433508980488708972580603245064965334946866900987690744393900125172331645037565923381781522662741664167736611594444348997333181441498548232136672298806333975465559302601679888826488352461865818613368304987786535227916589830090513059515118743498556685316826553133943366593776826973845951822978588127839560597123277038609028907240291426638020357035884635139565963661080365842673698917490495443519154167434012153023603863559256538237467042767655328346290365279079533038908990017903586628686813412145954652303230782021875804829280903188733517116923989692094416062070588622043331595987091211513355015049031582081598719435995086000724244217511403961476970377860456101788962576421000968788207679926632697623584676595640244692562267553680363523373307722101577475383059911567999428192706612469150503311198904285159873169199955248593295455096741879765543428959061242207285430538833023258282170390772899736945902253131084856043072400861778571507466442670153372167132966254103198344652279101398573840304333502520609157091671779597691564722655361549849235949151206513886451799542620497288758235418084646900237320703094729949481635605917477014865442861987196026515398979620780008096524667832938409568459830906611355639136851452508671526068229243020806021710379886416191625375953354006122728181719978471562572656264505982956336795610502189174862185010515004462650515888829641780355723467273655177829165205935754051364065657668921232710276763613331040917413509978966971711418159694591914102852639501431678076692050753248063859613439763217960715864251081773983089079183767815896957204550388230837464869149666414425616488886082965468241259126788141555415231946207906843632114276950837269322200501194771167403808581183453296232202851420220700440876339300252085501058096568643247822828528154074322131250777505949596139500535773156439289357691100699115865432280037482269043366922893724030230531040496068983342510634072597394370735746130578053460064794095279028068315559635640811336235003153845982902719628806851563465800706440339180463044283893640720861292291831775702923465470603548443701185375333441005431497779964147174322837105937687325448160040949049500322426202473682137355308122420408094525208779593249696029193819584242791878788286413132147766153498984950737964839303151525850082370337829143257736595273654465820022445298094857612881563305463568812444191802183602501797283771006044266175647929557050941084009999950014046020132055402020504862700345469325149684093216014448838974031232806069981306279356911443538504013964009667298209739652465650641092926974912067015712821813278573409744596158640469630193569555215934889722078476076423786593771965790619484517492478930788169767385670013843783206055052396450152212164467682655268802464609625211802094255221194509576486517586214656251387814304439631072038579919504443973094432273641623544366392915636295102035371107690113130389201857104987893960392912017965254405502215875021754582002004983850245739060016794314428964544385239704066643602145188515295442116767488584103198485494966834451805073133676725481586673414146342245960245401544680380719831541313163566239904592250222188521170165657509925736085640391770288183463597782284727115813200324580146710656956865256400108949625671614036527428748355980794449359114422389582118809164315667869526880371983422028407720587012233123009490119679785789725959700227460955674704345234716569943019525295731728480239067935846068037741458238377187766886826320062137027471845782917966884535471251149176278521385708836969870304701970520784254305780717558528175622018388702868501795847306571957458591159098397510180636138550531404355365888710210688189434942705108039679783975543672681618263575833658500493986763527971504333337200458656056279011766980251102599915229656882321505323703134664052208735044241538211039041791228919764397635433626375686739724157330399760619866290666866396305256849941520700974432959615067245690689752705814675833595265600635379616205602802793754583514713203724505628051060007502673353704700020962059277407535692084674561011383342705330872840302799343942196070819062213545309093304328228766846792673244711336841444331872808078223927431421713596850712464920625409303859260612628254185648628170155827030282424337188172152337074322191148669708199675639649206317602485019210658843842469594413382262398686323400190001245645513208612125672004785281043363725314564768105891784150418994195495162822911274741580652697938909973892908881303029623252068675794456939519242200095888498634514132459123037817116892466994639616681442295759606510770452275678464319580778429766240245561166115007103380562804809711639490470047523525660021399691539318119710855950416674860898591430851815257247366372555297710233581636904829407425919689907888046026679253796050332582511491654693091503654576071070869526712837424940304700748790386910749454615775119001876841717458422407255424450302496845614608092909986325485830411628293196405602509997158147512069758383584415241869352089845496880930316138501456154308628128085115779910947139803398092940001644824525727370357638350778557252208049404330110313248491230054035063967412502673195025476162799041234219806501987708192290773250287435151227611953898854226060333442217508825075803874250458953867175098837313654879215415885611724386818303322754368867727116899047726374936277076306019081913944482574940292407557147995219731236808894348936643805651718602700912851343670211432519566974584024833061779164927856027156137261903890260509661225131631466142640137690184480923199875342758377489976897332082102757066844737959102502660144112381676750161289859409403291962838410072999470967619831861163825988257371008751004834325637853908131116477524363068365386863361880876219365730971331457677204252523401900403889218392446986650945977410892578539426101256726523299070524960880433549134734535634564325613991277367899567279054468023506210654529207920869846826249080594253809062955075452043408257356256785753055910423798366765942449965765639317792995849001286106786585591060947421046238139327842235004259807120241109860196706340511113028002909509915671582902736665711655250573136630913149543081354048146391104690875806257400037313483709012801753252331215804869408339692775354908227254674030816577967333270822648155682111130572271780355504707442088959435737162807340594059132244271263269763062111815117218617713245735817590000452777924969565346573366760801909162693652059769116044335918471742390065073053329478205812293641622254066188697861850095179353459166997830437097626750026755994281288629088340926080990079818656449722793552213070901940220340365703362534331098698441099830388396604606576103672176298793311473041519019357450583473000554388516834152810423274926669993587529973467339616211557897504875017355867750882767500732544213100789576721617959557247965689334505848205134688455743722352238236133369103591032401241703567881448321613850366064412630354590902166330403436561790236006582568375646297596416152827182729093071868971375531223529058552201801485795110845837658579866812744598005949312868790196909373699184746185810889409932765441770222459364026288540967769178255204190400442445321853471454955738533952990251922172192879057793302061035715546255253556474534286169946404342072152387372449545432343315035702289201900038929918089617529949336653968447125777322363898735388338501465304610751553779790200861452116387499707935475489811483532019161014041164624059369427037250679651293123896873490884568195687907688609083287924438337790038704788655897778208027021986291876126109272134189471535680978174223723886640720209061267519853224293462469941622517936539107209548935379279704703652703239443957678680056218986101808866178346170653894297004230403016983709085311179541517961330436663019914829987370811662403864118878381216375114188680572241662113743367995325132619115814053225052747683273785329267209650925599113602522706020956354957123053591362462687864448841456749885803853295908276505191705819489274930967455512860320178357555609272255587132275763951729123980658857710543643752437889549634569951225603313439615341784115134573262237751094731445758184703924286081173623793400294814873374881924586092719784514576949980200975268392930876783497458035930560005984831817413159312681892122889330981603277797018777401408337560021085368079619646438129782303549179521310782289583468764090252840522928440724789507505412054805833423881027585257998549252159214023989184454966438009399853001357667811859130576378443602563334382402039327288781016887519626377835429054241693316925330531721938861119716916612247940429549482683858926662856073451854710194878532155195440616557805197817540516685827654281959124122280799898451387483785929865072542120153584508829410930771753680450754053206509840984435945792409489821395249535600964530152475058251708164598992545745308456130323966997575425390438040118373526795699270385296631262493470752676138437244502576314707472970575359301624183659565546131076256502261601475800487646928542049942972438712182590604035175574342639731193913624298265586303815787702933702060655979998605504183083954040190841780931558188358697607372943097315595720214378162632324163094895701712900003265621870482455604858165289829782325675134047928256489147908013868912993398369774303566244282394988523188646792780523531448071570983810571770908411325847078048174643098875419326235090206406078613755834026104662092091529255755149077837917123928169399689871181743748255251608839694702716503429525534061175223945006508371153219777532616416834024687221440268923417047028749784729025735351272713984078550820801583775333402150982557291218750699743473362376886825013197275465126172520727357032512568816053553694353257558231419507442598441092022682843921273196683065567894503570260143492992299332629700080532419390010847917679440594163511185977003445128948012979589274177550418675860448447529237486113143595564601415414670800207767598462704047788226945810643584109359222655369455485165418361502872373288934401228385257592031366788481558995969684510088300325489586715779987078593424964199231602567265907858217924377734077491984534319600970135639408751306334522051367056735880413604465416611646419610457804072036983462882888136084274858916888288460519532922085874438088868179466522062194380125421340341281415613451643950742423309409525732837068308910213453557956235911354336858067348140631630277269596468018415392937235406263714692421389426783974095069883961010386069022095225496677678781595131531256009268998243636350082741360712356535266871387520028184331549866462364517613544728018365616976585017845637434521405219114489537108891494500730696871229032855198378020279923530206591200981805603846423834045920754736681537976408218534291256661839405286719959944135804437866260109985206710572111201302682828656382595130919638336133392241480289046363127313992507170449460832875139607431326436389660796904482247344300560665046384782007740126806439981662570873626968065973682286128467614665589121266384789604968365096147602889237688166597058142846499222329413980926636010972932848512245839263314962934211527694283703438540806098286527408732696947451735826365885031030323712695632915567980244340390258908981175978564176131582258744724087163280847175848376560098303994786621978727099323441788101450638158061179871967129617900020907972677385889608949241373455465877741695648557036793787970252514059280212085922588476585507848510047811966549665867517252871575998651688314729108628106448106818916209124130375581859058755760282960538562249970702945021802485568429850476665061469580258488954149328400200976048257594547950320655816944879552522168382291189503971874648261045338177443239091629362975872807707814598548685913205963056671318381299037586776910169921883260483637566959847693907894185638929237332541283905313580236408415280694485277207363237645260358978844485366185874860588671406450828569000838274835727941992174092685671030623586346655672600472101352652086254358317049453726501034817024297750387905653158703306263959277376602006110889240738889372351988436860647360813383240356242518857936968530002567929472725989832874941356076656320643611407129796481339318300071125354681531998273069058836107070526975625264765546111587553096532779565949293876400067802793683571360414752053922467670780445465026979417042685439254639320636880902521562568456329919788407978849438116248075934115292183905503322076837174169662011892075253145463741286681990982064817479013718248087022579164417616745392929426545147897076646986217914743410894502777202794203278035960312987696455469099075038722620806339865895567046304155690228704868492361237107204139533146164249220309033070321381485896505925131709692560089502590616323627420883789870052494417076968172031732418645906626420251245042824769087656557846805057024658553336852033808714452955216974488037139242727388220703606583086478154491372203441096102708840366694488221086270168891187293878333583520515961974523415998538307565744197958889060726502240844400793970715844783740992720809001381832010084415065026970015503392540799948605912858977154785198447256380873964019920750537086905527996299362401914783798530222608945902489080163747660372122278819266920583078809068104268733293655856599453287610217561755111439394277690075235104545443718719297518923931032556085758109839625120115583631907274652762031109337100056782776295190179693272971489482646476166070390030702670462821247785108611573758942647528413427367813783291272200994063850006883308060803854708097483710902455123870822473192498595531646263256227963380029559678922303142423817037761794808424538036620704575163100794170761533017343988003714184884430904701816878360677827458683488160582589262843918198428805688416593887223223810660901970550349775689965710932254699099352692070088433823231027074448731951190238910749575887803042821176852274853877525897354520112041962472722905118752932781114912658406455706748988409131999788281388210930577948730205519878482718638529519524116029955601782588918114710454042086705123444749027291367316393382278417011789421048487759552120021798735106108628397148263060230475036346083050510459488416038101196249153910589811422627935566808633951526189450919032560805530131035927875428951604390648789295455257487411481059732562714618002512186012680092042210543599236316143452605312771930579901391996130748675500404083917331596530964192495605276887897213742771136587115768941792417665562563389470685101462325086017851119619508299021944251903593040063852293051705826606056862014693923548048008269363423716399145420338791717557007373437854965324482564606154711466950280885463411533961579861845469830001880769154961193400310933605793551594491198945455272038485714817049360511068351035517289740946949600489687027164617477441009620395556140441705550946834466248852007490549411737625381647500586523938992587331996902034754855732454607037924618155474232918019396427130867644934970120323376174136601214493877965162407897008353568262510786488689221202097001281812533665555211579762346324388261617715306234737397755057657590459852380989237429647173273475759460043134927617036943599686368131937981787083582376362989523346657631499096829817222904588266079616613893873373583859977655032947782501684967001308589649257039378026329334464206647193301623730648913098938352899152612526535541946931677825642980038613655922857761454042512946875371134897311217194416041334995183205268295224253109736320318331212017496281863319227952330783556393089488641095650860084324953173701679190129187486327403080071215168760458672557728500060356277848423120885726858833013210917694672617616113016536855413545478230735427672293129413072305441382691332165412689880928381262696899130164125248515482454266167881662048328945691672042068153006943922386681851086627032159512928928901109673233842312275164714800130492200911148505488759270159436433753979199534012859401800603270372131471763326401132290257643974574348686862843929615349331163762257062047091537316894181099653893573951903901410439360165901959327221210348771100392584266261296730460777945375985564914001207045464732267444501974023755512030261317045379198273703868998659673122002320870202591786796088464584888985382489440109792758784819701779000019402890289219541887120798271671539059102930699971986676614612117140992438824859960517999937818114587015324944360098902841213095321018015646792974624522163661390459972911496609969831848693415563149078912769921949533850897635871995891306961861788759956405507379471155840522800933631864852525969515051349950224416721400911983791735106715283847953025705726362424424315787693441702046517814817436205588955850560577688976081266738077154633617237201221043499127368618198161342100616724174788660804775651812396668921902331191902780934825222489417800799923519439265333550380806588435766056663631990918896458169692737244063310088022485544295672049980569981276458479818858340850735786232838584509984006552714532524784614890064116288475983909693074273277830480689985613895852230596385598973739049236815020680525535040863624283703163456276512739200088356622020987540464386556482396832099902632869534192213373929342972729820505352015844286836094199603594034586008153335624527487276100634597702741857392980422283300839510792625965462248207661425448929130534276314815558213438836454275310716975420147905066992763734443287473245078376021857657218271845493021859672048819638386598738825772856557113460115003170644307527695300896414728318885893785853458249420885467894513168637110777798700874858468432624163239251556481955897345358107366179577636606317551880264828444944424942229532685067419967531009990080672656671249300699164805198317311776619977866167664343926182465184072809635865109646758221702119872958654470866093222891204718505807821656344013657068775538661253390994087043604072070980629410561637448175654680771153391696316374481168530469190924336284372357317797289341412494786389411362483729715860882990461307691204286035339961339274911766835826961875351275523660957671754773209143804050347607754495562736678838195177231553261105443274918585527476459974969059902484350825488572444493814202027881795426213857471075629646102129224236763093622856685866993212132771538012433441168793539587978448322349841660804505201247594314949546148744380532548659624482670895378293839415386536788759562775988253027018333921326309891200915295068655739690296393677111536356189624178372490162980548571826697611491209344867403851722828572829157685426604959917701760955990148432596872839317780616923954213960574686663640753234380921481761046334708068682083835641338829020673293986248942987392578143791776448089270660254118728127128473118097456045053781219282770786285898246150832984362127244489617166367821604363230649417620194002568972835373581494022722131362287134119728142622386530602364696329615054782613117570775412255362216757602637159344781046099968584696813040897022665913840169309642593759222784478720643185150992360124737426238682940104201355185127589473048457855500038462613448612754752785374216717058468274009634505812986556856905522232803757635194488115838334516254682256595265466255652011767877849751926450593801276256924030144972418414402648368448992203231869464491451573632804164641783441095942873204153251280902144390125485137772333665540203312094850556799912112400464620032580337657050911403527672468879338645261195869334110581493422898062432422244288011338851602951501921836864683143899761677965560040771604040740357591586596457959274417826167265118390718899268345757104814508436998866080012326768454088309604376589796555347688333015659732994419644314357783082484040764054380608628706627702143656643612957092993875554887252213148374712539888374202802574751046777890390768185260589087858491957746176693405536154322645708275717297358246633275482984426450908500552331657811437526570791608222201198121045881645426875609773707508953610798352979018122577791067335587825530035896625963385738182509396061685225261772967386138057872258700362795552799145978791979077259811829541961690437678715811865735364758813749164404215321076322766173202924677532068094097638477214425806836132244552765196758035373027905602363811100015098206758874159693796061579311339483504139088986279742284436674884284651092770792016215816563076455938885279799447220283281223080144300911718755432155136266973597226641063162238781783412899110461339949216977907435122106647358110377353276986869834183143810800246414250109751321820014996163664139585543991703095176517997607026818938072135396190673762618708581893691954346026809830442062374653054809198224515759106562064036885201648778992935293777403691097943614416228119558142216059220506440921208216148611188894902976938744296013558715767772773142601756851881300107435384307428892066203900773363148600822510759937855906472053927813052933126972629265272207122086719516880037386656398265932778899296178444217610688291749728800037501242329498673385375240409529688485924710288206941646724154533969640461717362078156914638648470647656217056823059950320417408329882978342118306171952979142371106503885212234050414516078789502553427619600692841593935780493595977596207428758606858594358941350923899269368218261426065052505877226823243924877651332519069385054526049852060172299694211893007835486936610291537637735389784683754669827934103886020480938933141622410645113302281965064831336298737002398454148908332423424022913681006704332311615986877127032430889482443221671144201846096290383203749804764427711531866320860386375145960843025154743620276618839673750673080685046356069553055528295060777671741712604754782312992319890423346398454169513293613559626442965230077865807899593928860287336214032121065194755356955894551898657103657139577254300521303240339032264971911996790665665983515110112005403880728904184234004513927854788915674149810624835661570307207171519988663704087150171327131495880317581987105345763227365563413107550941478971862229806591713022853108234845802105967367593302602406253483894962020136015454421968203135982346853945141282579880162062548412959037833544321488749378664347868335319500799609546222929863666884069304295108112766018463131696543809915791884148643522349158251643847242261102400678347872307605067115960538863997319531638808561046134383741937847777902284805732359822459751538182543832635378505988355570682226491035342718083886886553846105794202013376659243602521775960621993181353661493763432115508308642495608860373115539387650570638906330376529674438495912637014033514526443443280156833498423334950132915797023151236853241772373171448352583564261253651298442453599865547478254546556546202542644583442548490710975342242967714191452520598145865888099447551440697002863167099052578885559727759958761892389074039529535448029361420564922121610609602600480934552010286628997325462207655155832705552610801144059841332844028278417036860481345413587878797062694692348280251904265420681968309936678620222633866539411753221661987862050220781631960195388347643543424246221886817532620630864782997126670820623576325624172758958771813504728383342580265470694034047545514710133544832532556295335078628180734391613094370678407069500065958852759561603115788199673195002678429390331293982348902230401253225430373155385804108974033282456092912449423051561070659577198115312421749184094841232001437832877230598234120457034717111889441683911644805068749689933060503409611126751252079757048400075472004510658531624678540380386059644942432356350377417923738740715059224159177469511683831415103661009236863122659054312849727078763860858287052711887320697593501949400602000908255310474059444657476941113177841076434597082432973236191245041367123345063680565687533706120628762330572414003067630249813059784732617947372302169864113027425897551459370473811130004106268350347735641311398415833714343168990692745747279408334959201445768114717736554833646965417042898917315636327224953378673131098124115170816614733754332179817999274899208252532832416519941833481701828328153282945921062887560598915599993502000581005972359790953935666725676542252624792765707168705038272133381886132421450425006456014195651802468765347580727524057470732904054879874728410780279664520440141386789537797443258675499593947965346228951419573012630024740221383388390933468912215543144945685066079103486667622931404134408605689920048972474201368270188048542995663070118975144308051817519784850416474483366019581060588201927192908564488822133937579438455030555635073633840914541181236052325143423488214467874838856801920454335751693306675253890539944114504466722005673178432879046165220543677257161221385435749132937308480745088673972284295782807251199876691076303838427872766233225776434490110309293627300856286993165756325915603050393871688290649857141338718823325597389199864307802386744042274271958579296629198016529746551274553222281339329662541660912031728130654385415918014689107420137438164059990591345688961845567372165674225910069836445887122546983659230526999253701606072286702133618236242005538413224379453179800847977263854762913180627290979428648087449576244329359731113700714577295062655508695268557682186175179506057164708055044802705317279440861799791694515501149019506028108553968607910663350195446455596906465262950233947034244562617420072323855823994976805731293288123502260462279303364753097202540282543572231319688690884846938150509877874822749335050243434742351525738972910342938136554795893075163244038811058563218582242972376605422038587777733466199960035198178631067749550479552720367094456245338214841137120020166616703955399806484355517541214452226400895233636583912780093081760944990395518741406274609239023017695371611579808840487320832333707130971927789514596644299738314692004194359689325331068793309862997306913924536924188760397429932665145133281179569630499060703806252305498092121714754142890737316116178144595134962879803260700599387243579189324625204059652712812887422837482395047895210845924376833849088343718655194801609597615805544903047946924062732682573468037550639941831822418009830298576707035810505323923156408444751164561369124224859180623579833782014053347504667700304613619535386914827014065372450457897330703461857975625183435148532869751275299468556711447797688843386653919156028735123529148657198023880856121652836690379274855742136435565120801502653540940918776238859639738908438987064685121060408379626977228435168306994105664633398779187435083251894168815980728670283188098377817411365119150585780230337401591912996071121929072219675350963222316994300177220267121663754212264052041951805091369301617290768212886793124423535314797469629282140888989252699272356561134874908652367587284561428138141717007356070187182789201337965819649802628788989251519517513989993853472365848148147351827902121470606042431889757496248357873845763575553790119060140959294544557451688726848310378709910593465660322018505353556897962435009359107904899187651354192955302332286691748924419402277417294592522246390075564534506373761819915574110279968419961680755777969580977680880118082151360116730843042637068713658795200832992822621258921409852590447489659902408642483877187622236839446939027137438498285439247367674143531083766232638590296354792018921871318117857584095793848474856526235358092832290856529815426310647765943627568568909168310513052455135950242848247148053346506021907257153056187441834006252745113121894404037862485661404911088006290910284689943586661907887585897431602128671376642876873591446467312760482396050915983195568866026697410691441222501548245702865661298413829858367341374764012548544343355929170085329618440529665624104749197735009413874361353187703750049427133485211894818652584038988086345116468291841235976220650713647157958547385926892343377861245471182473948960311774819279283620711559354499536821976471770844433741144500087155718055033924099852612878672923069112076100230370952801493691190607497944568388900583183636846830147250088213656714678912268535857338566884485163539410124683901360440467393242517789816829495687844590209009457991435406188309115859231323144394826247605413474227289794771010417166872775604748902451808530616314182708541150485024406595377358954936004592586875580657746071188573369877303350161349860622354318071391615080783838933287736494733388174840941110981256055822808483740811002402639370962354523740784806605567049003706829839144998986418459516342759628759700348758070724592924764164111241992975040998277663772213696841427991901240343969977885131206002209975234988328314196431406818738502772943256404332170873124732033714478383924701679592875202520125018149242789672298935729007723476172121094023088839601925825417395979214873282363959560308437927616354894632686798450867368982810876202299190282781226781806869825463024373088563404222099932881912797667245968085700034135403642395858572565692379987961399769034492185290424460304931007239707953310072191227205676827704893202898232649593195897338431897952230785565086501866022052793759469887883845951176263912702390842017467079064904630836744240273176774881872785413186948457010151596829457573775629505293443314251825838480785998394761190508639249446416539225640888734064235635232308784528935122255014900401370372032548802205606500290941841318750372081182983681452524662038360275347136798027166895734611898283424581182758111910706400010152305660564400789886710332173653553998563790790815963093901990740436190534677003700356098817052868348245937675107809672064879626912927003376093481845959544440912645947803477293861251705021296297897582728132836363749431441534386872643810643197064130085272593320820379420038326494114633427371158905463010138703867478295199610041060126125054625407149932098010120105610221399349539475470477036300222877215242753787303123585506940100550688420808795346526937160726119745172977757060840894573469799238799407230246345192213134080032937553426616999793211311377118918465959743455559207363355581605234319085004802193548844118202855440788974274470318944231606523445277239469450499472016933726013803088079136185966559964419231381782386433938903281465410688092013344560729280995555104256562095317053698561591759767162805169241315187615418920323225181296092681714959170304053502371220460359934233457006837518126996317183212138129741812339742904973664680379479074946662091506455240127956189714880356015687857796216845287966999118019680900808982900764914220106197387647257188447950059668541286533396795950770609339342979822193637218362974468593585378074096421030815569009708234590573730211579415714859630173045636122396294373749140864799992046574379867200605331032154140223543500228515524650730961986982664547607826647255694884091790310905522279085040348873308181800136413620045906120484889685994615310688636176415983102947886062809618820253494903312377602539620355987256998319050941598521535894402420747635378113537626082859682621874306882418391473980211225723418493689284868797960515769731090562417928096223657723429186528417204348164271355823904173941588379119072566738608229573846666371180948878146213552400261887908455414671746676177034930639259743272380206692473374922700277417374328976977245873957503533058062261107374949343671921705100079413069667995882468535756088517526617045187931899811216485986913772329053152729979010955454495983332500478425679669226127779521130191194778002291054908821018904057271829525648137991782434305580106134153409636530683879015167046272706305879144406666517030569177869457373157862304454926923719114140081235985775285834519556694515719023422257792978478232005241169956173723323905014558712421911705676162301255180091273173409310854705982490993927924594410965862279368332502684085924731548543099272686532819564922979478549800057919734112437036096811820830350201981154494811347149583382970357900511255040429322874167659511408550020239294247702199218799458515527621824829236179679760970478183266322366258824067222146887646495495073332228758624901527927025456395908610629006181249009904297482484749093892180553590689195995909371344645163148990560294577974122672248309986849442797635768480540499788002441238470110500767732055825554352106065003911704147914543217804042166665912766721394849798163662540124979694192407681238485553540663846211117521927365594518890860324947254659109388163378727737514287826472815540153671937689243399429015305313191611658886238852480036999717092126043799967175834685481805518618227018284853420235238001471635566554448677889143511237635868511510547083061697706926867014536919321172388569539875805073180464333121839557242980553180541072600294584899734890740404334754136101139105495224800675604153896497998963016041312197435541107939765552175904407907904071349997903315359929138145040778758130597769639879249077615494877673913425685819183544794254854086939103360492738442031485713808187090117918383256593692887683428292243678364736782542532697147376450678198232891523158238622570541913085121741199324258061197873257895215714907844888882486765285395642872543272133108604956347204103855230648366505183391038437093196685044197603271468395737095616860097143680894761924246363782863226632108729035787440381884655004370038457530005973536172361760177352589318796910378961137522003499991855449784437325918490456867122870310960943893748917539566541631432631657803681598957977529935319484939232717569092772808741050732066786054062323808902662816877493893214066792896610884561281452684467439926786478354761335140410631070701333094970293522943391172093644968804972261459348621533163427945943149262861194168064853962145305281831604168994445232558673539553832676966630122730558990652237849822950238972390204535537394714702723305276429832326907166230893968959742799250932339757273099307819060455198891650889566926602519795645805692639396331762477212186066683599844309723813716223550587963544346695840058638868424345477773006370630384117708613489259467761454147726716356222308969801645841450730454380012413547633201866068262502468131613477303511636061696549131791242731624489018578821986433021396759957793797889505795411623488001571052541632331192538744264927498567780499564096131984125724387155456002901780879349474895116213625437148695659617506445200904703162489702590697325940518766164494930856606048129969811957935661281227068236329691956721856240336066717696767365027620181469059205945743584060730981732268523405200102955964926934046533878414300987327700769869121804998724253486235063816418623626086146264624720471008372470107551334293916466247926267521174647551483113777835029365985052154424093394694736515072395752424566865373139643049732163588627016422049007212352788988969574598218946657531519703292063249574022071677770071412163840614592928308485247888414926499780443697984875845476475645863840728736415023785112749746984065030502332738483517510157475971584793147034577108909838213689261026438814090471236827021121698720926729841951267147613656879552060145495987605659223356583633468751524962308663981321515371755076601774196291062240695282924747536579770613120873992993400631039140164177640396181098692197561057029823468114897142457743922278711977618465909140770818259202690044487712041377400548216558225081052633859683876458968425481102052455858506367384297540311498651543490254599653260420109677347879071350604599939177781755407777416663959783187203489511241819440369378680134416463879221791409969158414228606842725505623183619455057502947296054561681978287257176241575695108385785203566215664774059040913508774168358757025646435302022032727671464540925058820964802294046182501436495382354439725726894660376696545381396495119880763485510865851822247922990480909412987948008957337685841165711816242507729796405752989989522019837395989658003478610458566740994392808856448149281228381757571332592319752871341004777148615675838441047881153757189480806964335295279808750085890670309832112777599774279324821052555456830390022311948382931172949881719747805251087601743294318155950874521498992889057079353440887734658765697910407287917782859932838488498049972708441068530623121972177333570420040970627629704355612209710088056089330816286189852489112900871949249350402548655453653026605814974211664184145837895953571889993243593055495273097915117364325186468032064236047874318062087579929817805345301352330837279996423815649342808389445806600815217763517837637339328193903055471355416234077257307567021529839118470732397737989305008984597076193986833155270146717409620719323592388340748243107534785215555484469462801203036238013405677861134734613878557484456270023762315926898797522348466784004459019506325352108234329313141546783537457715852057706012674361046445706564765336519339204419854044314010798606416400620597541934855533300937256616924078454374124511959397823024009238505698533341974248812818740675687107426223602362255773640647863402164234607388337910120772394174318620094486730313832600092620456013357595715856245207192522410467427090587564831186502355994657124269261814007507560119884901686392875888787422789532899434066594486463337465380515236571683774833254680154471115668817226534715297223898513395020829277500099135337787943338347800811628571612129797232313180037345873734129458568554936570443401873698447339846582913712533967756656105787204264635399957392010031989319602188701935565327933841499037766622284818407698270519375496160095048937778727477145144334899912585347694397622579819255187446059072552786504185411415401056515922357626097426173100991930972445763682745520950950744137413206329687860274851214759361816212241099637903115476522662437051982667435278032743310459502235346842404541901924409580416825755503700100195554421372496811035906304749562117471288270283424903917281072355129195374146900005057748804084153594271728603900854659116125824843225570485717375304051865647820698106921465578099867599274644561990478511017236567683310359725288920114510829440114405516779201775253406624851239578062766745506025481444643127278827244532495490201136322132158503108371967537454288496170501064911844677469285479129252481424545082110766563981155992786133877578660033685478980974941654256945023167263744359355416077563783723639090105168728359315263243580728654452289056771193010057975458534094367054281555531827225134798528073058644348511979974468290133516101916474621625151487894218181630527211147659169423036549159617792930265843566163820651863071615929031449205326532501460938579354023589874369493940195480109148583608431219120427278736910036833346270192586143648301850251202479082595931807227870811086620257137601774849520276109429436399543497882790440839835122052641414071539553194362573646603565356595355448907657186483805093644992214650280644766668769721103568355479168295930336588699542148937052616056489794193031121278168173884828715757798564009921529842534806882409469836693485817376240812906513351126237126670472071578844332715500613920109624473713516306648503079709400435693448150879648996766094651364279486907953455873642859223077755026139822736635860486380152366373615627338854377198312153167925943902100064262322673614176379531294342311911322365301085284404677104815372286032505301406760165726242724690905370217185279593537460054357564695978514551880977891191040995493204292126678979925948863647145233846831341392704172971039749502574446485758657220269745914301374825877715497565132519350559408520359878460347758471179262580455362944611035934136701968327761715020715588492695975479388212322048005057785674297521007900242264636124688971076209780261915251233321913393910639278869445086226078933722743529302722785297759673088053308192234623094605973032097088022128048634512549347059073869260708376552482929384300236166281129658791239809744825802847671252826568241311125342034695075543653583969623850597014550007136107272997480356415559432639382383538085674611598026000552865764088308657126751078469069359133400808757923415327116021951421544712828173783620283785672130281050448947113573442003810623760944894204836089135924955920557783820837298929670177035942418029961699316835109179410765409747117632993742625911969896386530247877882274054056180056289034409032676934918190961572439175887032679659004803046773817937662236957859869722592225900869207975836214541634780911030040948378232990299940238155675526116020763786349865134468675694384354609979822193379554461601896134018058368284890977258359719415934350012196423193184444122013644938490864455097307107141620930445233925241824983665930105667005535394974041394902350644441710813688007945407500002163892975100074363901404495161739799314331585494842833603260275170663103701687769511420362775712456448024993024555512698792432391544536993834154902431616920351990470295121382597786156040910179347653010927781082288755770616271772203686717398854768346703972049808853886061667079549499754972512215805949430029230451755949077783776678895720726702965292989498619108472802327789792657257218577029760840143713734544870546910907302500158409005738636715113529149727721288468784155200089844771539457185285529529666915006468043417524396109020100516871089695402798845094679365373977734436514410845225178551539978338127703387698895041246527925528737231137204556397661083197483210353530779237056181333810416414579659922128387548947103341112796307172606464160556151103015556092360193716280590643385842304336625731012568817281423445014263820276505507795991248875472493880182748997627493152537576678772280511240207898814657582799299972346280408204489230893316431789175885203774575029184858121968284254773666504810592067763682758554924912446331567163715087051917527298154807922540343643106330260372223023203203857601489376162007118492442190764559383760311408675821803093637757564163169320268136894918006234427916676209579303879112628793631586576216398414033054661057744856267365710535174563354877639267452613494877620386292076002894300819409371475454018071672389668163451773885959514246721380995088500556285070174233728430234549857397692795512048463627167594756609935583811229929857210214591806318524112076335616800535267331299487470928874823616731413701959985520066055711342594982174830135647016930781006949362019285222811047166018353723875174884027880562947807222816639393216443430829895138889561139885023404892207367743370024147560075677614807045873538601579922025813133067596952160783314602287030629608371076692017408393407755719827059174959517376729746474046098263726371572639630233422362277246793079821580963784429406598443496654074517747911271143280644459210550454541876838551756377901157617053929806926473430518694204762395381657151323600035880408592857478526745758402221750947913844700587827980015553164160493336942802327501084389509185357468532151003691973953536579315288919277774336796294280799874626689388550296489455479474560604815041271260891021262336768163352332225574157329480532163856743904591715739382185447560771997328077616176663780690101191805107039745473102595225369554174568895460707573918124237573146779723833433668706273832466051878943942164731653914571308907125724289151674023986863066537229073255328092199968078249859093278787031584816850805320343081514564885770025546235607744061438529783082596074421810100766801423280573185541816938341171012992203321029813367986145285697152747753562115224750345217576503461641428602378542820087236071734736089810205652369158646496752236730128027498409831990776694021860407356681562966089206937564195858409447876230435014677649383880606197175103633859139456939451380336487611587649737221487931411997525261121551216959768868657457579851658323847363707632839500549918425612991100140064514258392701356592916252347176293189311268469739866662633240097645164199985016628246173701849887517891066305531239388832834946822986888225300196199406798145525037336109795360847692217785894293066838856889868017279325568968725335029541128083826728004408014644377601670199132563219367598436271033444871280474662901637593333180437931603915897039461074044340313011268796644610295631010724944463704258732172178580126595437535268170858075614525398079846987696736581655624290639346260516907273845016072301815683406108032526810764836741839460274691830261117869915364359107727777568605269085279398513623758676080354349053844087947897105085033449113607694699041434670313986656322981162112679303360816290695297803955878863883938872890349021587414838816175696314027240320963490429865854012215761657627040543696579990603378741398657067366088332894895219837986433043297306553791984374527215456365958097350640926866085390252240751982579426777101829350949402061873489447288042471002460390249381654951927482611441298923156103476397314467973715898551381378524221159705555639877137044867022128781648526156994370306442539027624952492735398943659379319484609010350972893337140723980073495944290586775616457157260812891482119993304434220280634721553149996870370494832896330947272048008052899849187361832047123001203880522049413656058551890473409345345849249984071673733262663633051281162676052073457524665017031014712380034677968031348394014376080069042344572722338794564045689424145284759130909602488502115875339859959346507550683332839852108175775616940142130145493896310792753200640327837224605861189333979355405166220663358705901041573119935308561054237100089758923873793211492006336817847999258361014174133570728406612036565166056160971837963906693468018036401545651458015020107765186195297831761758342753495455588186889399082109686829892648643255351138015601299995140724695704103465901290596361883682304096271011012909802893276346014288485468823591833798937904374038469503807348546459117606556276183493912921021144208691911011222286732744281394053924891707633647147927171958297883526999545839662580741266551681159565827957875543322912786129089902695217961060866182792266165675451784018378139777994886542626258336161896824150703337145204319061621729565244341270190804467294517249775577888483747836294802599905951147557825873655217081724268563586460498215696969761282433266883992695554856744345627066368407188047427469889056323526642129067727262061442787013623340772216724714439898082261174512961147186402987566023697861470500404584512638508205856631203638139265379817037285991295413240939854458468829210076865138749450262254621249670954248904950366354249702134803024136097522773815593808953645640684056267120719628555715628720788493521293332702498918017975357355664357746415089880437069188153600069745010925901216811353292825218140673521207137599714305267863505815119022489524786673022777924482792584238256958501878101728523063702900003161296725479697977021618646256705634291569960465969868330998359509387696694951957526650206560336998935776987690160591600277367578193898893231006794076143801757846209902230374704026680924156300430698884080587082427170124014614245700090712103100556376001118785628056746833228898749059419286914265887981864825607829584379738568994367034510511976347409764346370044656778928669673187018842327622661170747582312152976376908236335237052151064122903856623464602988372770800289239901646127476360254614005505022552512549459951955815893621433634209820649920210706524068894931987302309146779297541561667011958710631396376650283534928184986506787526686687295152255335340277206852195795594511320137294657031263134822279324679202613364127550871684938605816018903075777235522317821233554374725954875036616827535084515130339911351234857276535211138504265919592689800537385654392131284869109502739465471748914312488861961074540736090388161848331323162189413599360087567943656774769307622689782040590606013653059815082953526925840543807070794462300316087898057365919276939802936112974359295296813179226018972180073878440054911543548900004088148199070820749443031080592388993777371725338785203060734823251728859541065855664791159788605887010925427613859465823186937951936345934330572555793916123409563249122512228829759339263015018973105200580413562624667283089346844069904779130110337569740720833587632067844321972385290777466057819769862261712005170908187383179654360887650433690772367704835762627962386279890227467947512997064076969116871770665971222236944973869909379078323132185496505453234219927093679424732816310375273196818236266902790282813779671069267985226270501732650537357402747751611410018186736244226191339036290460583656945032065985964842243727072387434698879326152258938127432302761827208116126033436483811015385526663486567815102718385440652814656641254253095366985058777720414365306627976722047334974880848868393490440981626541577153677332273499821581892223381701528854029722770300120203818793656292412759135677587814965925106487970648984415996006287138039585317408347689786366192895986294545839276456301423428930502442646847376712218403860106520425537322856125632143486948204822119898582278685264916413443072318498652133111822374367724041423017680866848294487625834983458596229950839383310397262716821356544233347560469901626978780299012132175626657744246806135068979592780489328037619646423593512257763510890397383152043562813750812371450010399869411117455281398579156130049752518331509524322932423442919863168689880890947627286691021931305100006419686610494853295110463340082278586266365743715238013519398625613526195689569445955309908052757983016636279306316742140048638443997608552332207132715950378091525636051036092544957153183293963995044046598335336674482447886828096839127421192563888929095103836784514266598408813528358369491990789523462964841345817052950437063720694373759889908919934217479682966742756345523136626092458753465970103698224286686042956612936444898603362068470306203676493234297849528930261111921937600219530333376336475864806403848942625875172001217677272474636658614072272950864180828001722345637942162235714628245624358201491289645122434459515868640981153369991134955907613290660116431083741247463734894978418466267035559185452269726814249877205443469343202190799006445517497912311942432224838796407820676959534822909383808508002157126457114751477943661572773936998005736443630631927260250237727063122618639217418531378576225704087510232669013363014983632095440822886799204493941709968120107618146170927177069512238143936089335943209022683045398186470534629991772584136971368666640723437309867787095556010716652797957327383972915760190520050817659897473163327910002917564596625672524322526668882360560792784913521270742703874189820532944108099792164355535846287558864974698869881365821458359893899238469377193000117507236310656785722374751949414985296155559805226031379121377553409735325101153435416113407757737613319629491120619133682877617854934935420117265244277003251889933166866969116770787312866231689646286458436354154671073223714307469202253049150793527447719637257658966550599802204146962153909764791723674241382056666326603448612360327803597053356100248301636901129632699471672799571799079072468742130632304425782387188618711675413215027223931651613786875311920547490815809629211025979538986351843886385172299597661107285450888484345288620237000311209449854886843837969761117036070551392393543688076550538237016104397080727264824099813734462783647509154711929464086938477865108616953433559888217636401444424923059366623353790559510469328441487591301555128558137402304691986674332999313478650878621992374505231976179332332233088417619411316328084743362155367808500906808678987346004938044071390027013828235798289736193316563462601343127380127330702712572592662523513170561358745470711333318335763957291482651117934316066601706057461424559590186722226011811879371127810878481595960293550137955903663894902378037653709320625087987444809477632998421041166145706005622845542485183855120821397804808088366411934007797897161515228519123926450125701717073485228196383772161663268853377753776272194966133849916533858166420065402786204543135344556330001073391628292125952188828199069786086031897648065524745147189843887263376960169574713533563427544726461749207662414598041378515763511336326612354569380124314843267319385749004313680856385105475981270021585166801218137339662487530912527737568967097911447537842912343104988026721809376955720760957562598276844685171677476521809999941845862343268310700279823021495976908560078278230876348975833195719933631651879771339484011358723255712628075988393911446057644312350957414688651974344605946407260996930791246489416388268410228839634604192191094393576924977183777634297512356202326581982312383309479407160113626036021728222051810114995235065927062774758351355823889173290302949970028263241744645520980196040239955119654832357488375478355510112050322252271202090247960118990034380076828537215947995216596798283067231619139467294820355114834468723833791017707106982309223951005830838292749079189482144785939892269850612329954832361702905206571795860679022658310058730733763547724065150258245684397118548615157295813517619713051326203814414449161646068991602948537714095323888342243245015725745538582786028522761935446932805344852870965679026801917688890149055606520457900658754859792152703217672001073379933704754611020800727585446381733254744239666419876840450660847731082485300913548692210273164311655843839606060589790024644991103778608837479442243382647226825400293560627736544714516623025527534333348458222521186300007980680809499233381112714713965866394160690882775713993557729358909796637836582111917186832354184671041459532276921510195731882099443733894481548472306358823572734343220028901926335334700868922623837778927828459636058568105715908468775599510895696189504214440242655944275730554956774549155883290801402413024489409761006193035801311551047033588759295029092326762316039355969944757109509119489406181675019808206812430958462518295741095729290161653962468693135593773928800138771005865098368884415406733460091805470855880908346809434643596043104771624523984800350186289015610871961035916821367691882944905258114017563522366810174631879823964604000702729588831963661129555173538840977688612202702616592195959152259976214273244028318119171406275864706457696532114531547302933960672259956988830359939925166671646694983899385753232038211441559199192312529782125770085482244629684972488546380655205695426490227594371879379667068791817525096923424748851140812571124311183576936353837808502334422903372829552359927937940350735529041485107177764913866222547405831421774597725077082784014588497388872679302012742675313716485888735186902434634590941944293481745443236108776377993814767832784047579522169180564377215751875788390042941110523959100087060171660036471032651390696615816845307198792554469649603579467934238033578678489629431162660760108306200705486823884793066360680170671594325780597586494774629933781676607977220340026242890486823887569467484367084262841411388443172432215784539593369607022227511461030565370962369726092370840896225907669279587126844395761771148327190030583152284121117109508223862763919961531157895677057045329356248038935562524518453635321706352371595177458522659897357677704645930750303318396686368493286580037138084873754631524123917138766602632159353835149142412172126705000702960463052905813388775442423883034041897925019233511445476213191108367670142949993013980747705915441287352374220113719578044731235755303299870698005947716300924005501509936211655711471130739409402365272417639091545422611533976532337871898043363172680792100288890525154948984727970785326073189540091239283043232399852437149806814027405463065522214679172181020686447678564552862963001926437612842622393516070956617724696170747767517920119763258709187475474191413580106992073121943100764076409622449386727142630684145790969114724530442551076179578044286526219088208033568552455822959397255516996975931225276794718159250562768932451123781858838402330012801300446567596356863559509908183616791558170078230692604358511444587179771241136396097433630772248988683191045097159983057106630095705103107567259960767440307492288212175958270147276388303712620300777613842133401088086115627045542225671805010882099229884400378080265022808061296172041940073489311036031975160675407826858295321807620273643939225333244244285696886285589948983296770707129450421179449964735330456292769250321763815074931123585385512960313111212671364553199373871657566103291563746894934701355122509989509949134493795224639451499150406980706937665324812816848163376955543359697088489810232583539173389515809106371515877056356433905061862965333270080659096534806116108283028960134106979145936096401763882720634999528320803855322021976794181004506655431017596175584965402616809971129690346661381976362202891203415424821736664653433351853147790174534611561755358779753462559419298823148673603351899438716133960412969024926652061313423113145167545737273910430890585994963788264096503693323115279338116653742714686585546215721675533210666693917420031967518988874441275303135837806702993295828374268084211414628504611546764574489776683030369177673589275034643012777039627607295460462786935394281811466030802598126809435405970866677885194287455655017643830013589389751810059188258925054951102391624012700958370176876056764100904685675712236496407015220662949137875401713961910575777652093598930605816181901695820701119393307055065746715029613648981342436123960853299115452843822784301131122550121443875864070280303269151988316103188741218585555269762775805407831680797147674917447486524756266721588665451855384260459077519985163946851560067069890894374821929067768740531074528694860996724330126539085109981115976126074268971493885669544712374206892505194540104063283930227551616890405941791144626812234899724281724281857968227736081213514576739191171711618007260479741839627784786592045302447021693282265691345770959577844436593183957921082965570478354927019503762303495535973437488067723133161270485527135532253404249232766449289361001916826269015374571710846626735893967311405998857774922162100890367610871518195393911171717095155151296496182315336682213221818928459190209417739255002781368487001277171166770012911537565145316401433243049105190986160305530902524594173104798089288847539941953879258940775952180498784932512208706016382606055810719765083859555526897026149760087850820460203308241395980203322724700590843789172584477304871807462002948366136950607122429775992266686323677419691560876680711206500679234251819992014414084085277350067133978843806763829338719546089346098192076124177717124040697657893714894682302076728524817849281026356153456960912884752414263578967842307307978107303875240660225509097611036883830963917156830948657567356253476351058415997829486895901129511738269738373251777830112253953174043857603976939025103457393914076453508095982403734427085530565452015243769921847164906791610811067978550716518749636515978044846290248974441098667605616327077647192115889757770500657793935124032189212256617404198400210101674199401142222592226350039072382902580256631000479761209789533234847726035009216400446405152848172024854940966953981693761472886372545021442888786751740994435989703464000167429672292588477376045006678506713981283904398924820176362938769044977084913739535709619316571939726835428428560583206557997306834945476766541831258391404511133350306873815320088782029669732652250936251723530909171951090702514671760703644177230193902651655763061713229031221685776183167949134637320664361216276315565712548285068599305707949117183407234150269470120269090474962756203475402996735781244667761172567778580059495142871354961343604098325699306918729876119433580133177268344949160718998754976504908470150446054594517157991068388826510598327326487129522093368351362985267622989426052206383264707463211548590826646073779075400161378163586589373077904740049734343934534940700737431263792582618289294834128970083029011670384083137221661311840710784469598696890900155119753301493457852396414606864313893070818082615681660945288077800039011699928320414061861764955763170319141143686934040216767938321980179086837507640677438656142609441003942255198904707046572512349570941466041151469041768453067870612751517692243998401002673412388384079474507481549760844898010170969570880394648648905104102815133802751028085914725958632331768126113454872886869952390887004553563326727618831894381480070987708938629948473722079317286854003815609496971912752906275496194913960816134736387997939603622222859719253687369444197560613607392502691883393580104905390534412631725895895358105085655665209152600202711204799959186086433266666125953218465949319336099503785760315091054984665999980889637106871750656720330810713477656623249659102249791100789717893570917516893948380662064532007153877249799631688300597848029788120218428513491769860425469283002554800908848895015274982386644320743618996679834884518604541795797907631916634260002352121108101185581040897609827516430386985655393571447370938865603578576382389697235394667241430954712680054326497170628057589217926275272343259620482023456020280137520453625735479380856588245314872109867148356052074892281251830912978498809141784492725063483180157903776607898994059096681392121288567568320533843461641607853400468662648113985491219439062314648157325456175414209532469516332928585236116934648687232477093664069116670811012896637828391713726887161766801693135851999998481763345296879462860118633806363309973726714548177768942363529237207034128186190416403514248459436284697216365065431209173147010783185007555420943209530455175563378647164111070739937109426436288987319730729275191895433757361613503684878434328933937394250338717456772392681163827354548610745758567207257650849891801811100337126500602705958651299867713851159385197949609411618255980619845112676909082530835012407890987323527655218767272583027979066504584280403687192380397809283414495312596425758042386584862468675125252933595803050786407303527846668256843380094456159082519489923558362413469661667581058899008835455815071141965047934448393885833230451506684779013463089693869889149973504070152533204902741569666767477757634450058901058743387466642783490267571333655790558852524382918915093814213851593753134614590566455411992785480400333620622620069722792299227332084949084782580795122829124525734611839709470134955743369735562453750720649369307243937292854199477778570054359062853132036485393965830709198316460661508776816455293655703203024194393481285437171260525972670316806116313694878347675185299868303589295447737093971608436131938067326626835565639948004222964688620183901453738747987199950720477033504571668569190331904713327648812405139799970105746069663756072760147260307147633987002549889792335584989695747827814300147385626637499900790175327707176054543966140184873851220498971442835887185925231132452566900640662697538413485841232867972465972332263334798380248347631699306527315092049955236864431215280027025884596563981702255591655448596925736914150285852798447685660186743955014814944956223288402818951279662312136851454020656438108026344504659212918839644228499671946699113810085803316945777086716828185684785289711017006888088111162920425005450633644938793494468835535907870845725695835430952932102161735237882560046334805290182488762365281461014431327229744057063246969730657052135154572338427040075444369653358356313294612537545485900567084986494123388500107253129823279633447981957122385177142242754301372169598576272205755979163257721842600161909507453295852636459476203629138290676054449015318768019490282943002284727082938232098370839992672401171968831657862151241308513907748769324984608249578438044508190980934511974228315279090689889089501753366222358361831459183247635681700333199862840308060329541931053288798276018308901265973639270845525873614834154742249285829769179103568740824389497114397061176138994775691551580458425563467706629290721621252357037971253137831730046784135940706680022438293150354032515452292198323552819043593124072581710039676028802649235701748078451888878488023211132512192384144872611639403769146216446885032237276669454845972766243549467210320038561961163660631737819601006089038449656170933573425403902673918713807787463765861669090780675891245351843248126754160752645045197480057853598409709589877322566960788143793274229629672930521563032667839849593905703218136990948270942349651418176960072406682500139700610508000116393374690910825131256910880980712010164426612439916111230012413127203963958008418823034905650068129021081038572526067460731363530482661925990721444009636485700167887397318195750530987124412158049892948738195374874496455543165803137041916449627043534139947203234996580474386514833150641154568748613340828746898873155745472980219599539845820311561499130647045166695688357870166832586417026943554445464400719234531441491290701529840207064391238238102106969633414358257913863137524608135289040973250010379107566242990968933955458464470252860778088599716217260855371636864817906257741163949490089683621267615220855536629507763502283373549025302296957372435702271344977378225111653285072133012663929828210807432785041735711838090826594215165128889546971773350337975725335998921560002010854567462726206894783397499655877899461232509460238230159022940898147773934858935950510027206271001648335994454302647741441379988173513773462618304030600949585966111437879703989780135082257834526690983474522107077456234205630782994835971122817579631261809745658378568416630858297408766068240845773004373728915511771288437325246628747630340018706634148926620796129103373069887605809556684728439931844102301848957078765578034709178460964538272178011448843161366061585805784706159998268757212521453531874066992811701239848862579112677333775599765311871305361243355148898262724685148902850376496167715780699178094474243559451283836082536011546235511597141030372789993740719157904989954520346944219030069857006868950128228364947039557788472212918007344048291933066206743368906846609387938179962413383574709706712514676448118833610565262253690503466063853085271869007463027763086426447458160845726017953398470402701510844674075420867453365128992307889357199328333757937042495025041113995806884647388798483397564548730326022593471139262098667699831261650884376734422283244681630068560275572940891390415442614609430812883823171863158347131743794886100569087265110411855845509504745853970939566095825867558498736097887341109783314329482907907186497693465937562767918760255110725112419887689912409590842122966440580529858688182500450464458352816168880670056675979987786312856320001119823998419484904606448927832776322473180067755537695360147270918206787502525301972866449808872275023806202647631036955821409867263097635855669110799129230967534367524575288554053258927803088436695138062645524385735490144392057760677591467178177583327954787525626289925674705151596030283078329924733211386012538603864658588136031423017531991586149352143265069558736066562010210248099522552844687958721225264109362029962354617766849076207932548365841869166641752511764513292903719301452519763869895638835621550565320973928750220749408575764136533402809387101499495194741367666457918290031476637802166245484178992401066696242453010514834728901504944213887516727692074881669962582220130841998481947420406396698748128797924949321676936167079073743793223933362563102655529697736788433123480959584807211724962207880028644141170284580645595421018204082405668950965983307304269965949952740193896971003890021224461939406049455710463026021706765893056773184050233655346418599767236464790311789348742034538482643067708018616384709376836154907014510246621903744843882372894737265742644614004192779127602518638587125289258974796105274816126180647500705908621404638021599164911911685234206779620466111785345050735674924847710031762810848669594968697405572949027613383411767794187657440517844295673031760894468359795009888230680376876374547600858938171522275969843670767151617162177625899241422176463419970174822456702832482340207489151358369435909845751425508035875595748710894558420168144832669241492368549356439216205065251138716020574992457023010043333028684020386604434849128609844085380852883257588621232407081856103883335132619729913374378414485275315890775763658587169267793110770779437229953556025746650880919894333892509055177595395764767515358587321610544450393046495160086931472567122816932339764155270240584203236110524342557662287508788214234855670208575141821668940923750735466172379691531993993284037021368853615108433988799428140772156077763920020732128397992763155583988010628241257878683452468478387364523604413802197592576758279051189700131813910464195710497244554608455890941366169248379212804910826738878327191685678411637822373658662612727392676021215517747237558610999944248261034574361164523945857447232552725854495734557770319545202846447722230022942749946333980685792071664181498175859407594294543169065885983111099673746783947878993475188839729986725441985446020607559974301267520304803328354188605920927973638179723506910622436522189189424876286178883306973768464081993616556930913929424773618469307955584666990098105450798095600634879986482530203721744165985035737585889198417661854433042313504317058740760464361301162814604284536098878145208769780931100801693016257954811176835431683155124143191841829252699453971520095065899637825368106949942022956260071234024554129569184464372109537667464278885924751114695932985517508497777896252133463236220869476775810457092681298534738083823330164093538458754421338642794439938290835894945427982529663057152417972543320630383471773913474734631108171422342777481944603817217523060625308320557608454734309028917095375868729146940517635849949210989358192619748305486388327358502830268536070074334291320959824733222735225412965510892149647341852070312988533583776517092231787159327469381901147537154910152424368842149283109245187753738913159821076714127956465364867418548786889084718560563970882746530893971987969789334055801869327412687841327873484268154919228510097170831281709795553917599662657105542056410975760663500128222386487898487836167676107233726241026431871909698754050762833435539080038535599903409296351479542922619667115880580155077909054077116112831996720705083304572797025180561893109516841602357944818963134834000891618520397035297306106348535154797292120449427688127558665851750916536076233212316227573950219740345344826808044843267799836225975416356762338071623648739729212341353350251186280573672346038496376179235995117392702817732985058113542968020279185177046983017036741659945203183402419499860630761640899651462257023479684262786665031327947793057142957171262044956869379929020536145954614443088977573045233049727336439851919975151233957543525228097850497288695476480693641908714068204026431030538733757393038648493238565161169549266932067385188151363146213715669853487181821489985508868347775493320543027922799251319125910831964120561823176586257158448311328202876004749091662908428661094784964368082540729953714002019722640522396407804571730623943057033942834503227003771318300857212888890033545429138282209457498099875915209784868496049748809598158483501124275985946561223511300921311638800391449657461509114679540284623024877795971280222936292846793169319605183647627368090864448507146446487966479793572417324599517941735788762342035393461108411612239613225346429375210276017005105298767594129886725190238749995557291625836290998285688543543529736474313890259112650067246351545066457171037283271983946134982531510585711462433632700956427797819731976616121725595957854960455242883109725326022583039051203105104925384549769144219761191096383034668555873182829814545246700602420206282465959856146061271805765792984234383362461443545036386679091860500235885084619240879482002453395853520328576759552779138972160545499748483974587599053669856333515091073467978522108310953506592596756906394470529884794403371281798831790378455716157373764615216208072390450975132604158205658411919827926025871230618176833831539757205349075323843314791853376130043581253862599525276329041556566258760837854562812165295743977456642102030564891383788520740173743640085637342009985360805264151537143415786839203185196035836780253512991786696220077647416185930992391642136250345781147631065388389372847205020316502178106184427904150897602589392735004061790354710832376069243543746960958323096246006980505048977899516045874867588682610878812016791533710641054237455063421962751700303840588351775751888931952541541598166429960592659957844912454157674341566759352059527801155955750887898702367589694545918489613456818255771862010108552592734144114220854277524832383771750896214863229965829090316209615862291173158198842954934847551734404849296500126559431246529454511313853098805102781841749868424892743564731951849159656067542061587942442619524133137388289145724892578855078727182062567263610223976100435612705739360414508447237902954001606976944450671542688948817495451904205442337898674652979997333049849835483008981227956996342493303983889194451298202178986163822908522651800805641739203395175322222081878756851054531025244237370116609153679726975812112292359964275215185906738459401034684626585998916070212065259544618690904330798677139510078149391339720806164498420129134984510696186031192390168150739943895917966383613755447366402179049490363280781236332087163350254098575491739065765224427591342473550130933193584584829038015009328805588781939091152589583871092919683262944283611402356952108094661515185191211809918019858006369691951388176654886976909014850876986041355921128521512383408699097611864906381348497046342286426787926930913652366370392016074285531047555500103338503816740533304094123958824915360098426067554914552555721300100665782170393204585989181036966822765116202100427303443522627888246684091918835311251991050659996824273734027929488713443716684331796998498832389158841389196622519754585138821386827741031754839557030569558777648723431292558307170634312411684439894715374919713498657578424569980758343977421530885450005836718399670917302986388157712511988085371649500679235679410662663651542081703201060750549647242562456476579497474172008425466170609931969003198444175260599468053801162309909716672414109098986987920473653749267309841098933788275292458095548405113104895323479908787095539594049555123268486521894728619947864346461774369504787270841018838724251520118383597540571258894872707492890780070702900844945545116202555358365302113409577886840750470195221920188314853245782424309685184813819691968785030313766823691654109345248728177975399066152364282534670721473093230846430389474563683897277235546302577189051375232836495445484449989005654307709344929075737403300547641323449581125961644933836801365954650199232235123035914845378460695813265761917091317186941368711497438064675701930229717424798526910598636438018976136512875119086319378618207983535034941093969843087581868738194100480967865000363017713299099766686496073655831220966053072128185960348566295649660311579882458376516452204024379233623394960806921016484575644441432467731631179006049003594355520137567802629080319412522957933512835962654775952863838318826728201511035407022338315855756937799642881571507085512898794312134429993576896851054666667707225710047181882961143188242288302495506322851924380018006204081695685788319646082731731451991371524656074192879178472590964473743884855681909782887636296876537387575444265937213104566674907350691141820858403667103958675796796741854984692303719345717077575907455301345209508386912496591940905502692530834020151710245919340702748569339364724394473099412420524708765395556446223765368569221159319106871174144848131083073506030584115476252775587963679432639577294925121344047029799628728110743643054476378978930054633248262783855004377809867802021841628984903901315593076601372428880071635116061654258753835863775304399448026997962888804267218064506179144536866110175607059556908759250404855783260523375325706176480949635372095455085455602230090011697608877954877781843375905924717367730744743933225653104914880652673113919750912038795054831351456217516610363255114412032985249992203345105706265101484207695374530737845040964452277016899407555773144341162060468792874905120785204705985147946578573962278816183532690847071806316633920534518443863634467591705330928637990677519722442126666651344025067031474923271608905249733412184405601712772439132703248198510546774454967792749786691978483153251076359490502063385461182846486987055024449224856327488232709484901113831450852644156253022489745260172727086338557227555152010254547602140389990257510583497810253317674367172112346678737005760240935230501457117061124494396347959311396296698606064136293316870813240424163339724150764137574015196219349566930979992151076879637053537452694520095760700840734356284100472681007330927691900859049671844840815678224438322759880841269878973524623124945890452760220274430428065092419683874075483965138681582597672973047623843417004116692573821496733439530069013085832139443970291354895295580393097978769481558819044612344710844596473700301491884993641157710734576071430647774799767185964980361103078461870572599353802902281423584830670642788643505956140929205374931798694565697626259032364550469663975045218769722021724003993792450913195362367340306627764970038774946404970481229028051522004754043516313596890308424208015554654452203600099515813272742100094180463114208021582059515581822961420166387359916992217427990119765597840518933636587498696048875165408568770172058190742010442731486322042078857488094326623044169360727039715243624732584174952645665699757638179588273891430847893744154060540276337757512774022265647758413282076301645121047490853465565782051556987068075001553399035070678516335397389165982306311246629403528945875891791821758316845630592734592165809629889158986951622531810485745309397136335528883174087645256243002582228190394754254361576921554921741834117973110458010593913225556651375859842345349258653221095036644079269117648408498474857868271144382158667355307983514966586592074670854002089625164959332747833620651086548168164563548938250389120220764308660999641981925398819019170344370301203994919953344123374153809669711215803498517977981389394002319832241830938018107935500109645058652314998872305624698208450956648107715315531329930554882150148269477018428065336087391317096451946994824039675881095202090990989754413781858301295437499198231652974629223361011364444788501719926819984077780493730817694047946520837270855220232330754655835835924711118848574565404807922033003471965191268349872019049191622710683913988680262927693018098123411843884641815177342294596902894273931399678519640711186048978802717933785533976919098122603163090877458213144034061143336993449159472381551049433249312886576432941724255655342702779073721946606741042691303016641905863874200821377818875360491231867315438568868831073145241776909119112384067324891935974151182967646338321830086724194602954813048552904561793183582967452260714741421381549880119705421286158561858458915311254911277544824260361408511299358795085424719459774276666964717418347912380218032161182074899218311649836317951955478044259165474997068795070522081074121418120798124437956293682120802846692957201618177633955142401863252940953657543254503016144378825863797826953821829068047101662874928267562740355212213003314146998411379078943745223155996590607076575833004305506765605347609414188930138880075758795164387974732818472442685337268883813954197352579726269460101005267732337121973506573528203271813439083141545440753176769237087161614693041857242569841960541603339670147480753805300232809985797467884638799134756162775635265128786438022451007092965152584437072293038834229060540895585876298914453397521144859081237819877468225761924466095184755165611722420584017912802790921169039517488989984518628856218144965389350615490729406072320901949923321278483824510086696516788922697050874900935482159976780130578887861479066395479341818985539280269525311297835144364104745330432704553105164178916465550123088059113900716800309144996533458592619663141487521792017733585628674778267927769628237713061230694378845817359713317826323281635471626180635582051402432024644124866395023248509416281590647417898317135372329716286977811015942095914337469814654302974807167750225307822982933697882753666444069081262490947854327700671359717289500655631103245035134559896651748977106041354798743761620972582704610495911836467780003973120770501045111240746401926644838381958323179052694416573162891505357417178262191504017398728730260561928271599899252410400885602091433694405083583706077477941397505665335999049504568859140018434455726274909346312156854366792671401476197473836618831163140682705330281385413857192983342389858539828008299566171966212886266225623902214358598993990833057568094647493416110569276047811768322514528629727245526940928879278453345846129008266992076901117208383200230242956156992602557341133959525298497000059989781103474122825416086037306184127063701463845191968685394683831638392880476436444215820950909548981137893782804548698185581763486442140230129302501956742164929989442975340920627049078590092950348920988680272749825771761474894900972111963350327369501350034258657269444894875927754612546912801283704340822585615808528530277172898777772669643713953379240046244190496671229043917065713338397722403766857233186473797452360798570383754225057098200432263410551547138337255239812870563355939823306439948471996102422270497231747756964774579499540373315981316199779001355224093093296679961615523507585632757375148710781341809196513489900756915757926924675915035649905140614874811190424336767313739594042255306222574288252011372428634513119110824610379708769508427858968753651094240057474428672916380097977886668340524156534998103718045015788236940275963790721744872040958762640423307562179946901689409349037564203459721855216242656837746459860803493736611869544756722213802523902061034987410917126534394162334087971725598746930683195132026251893348530407264707024192026380702194183518495162942136405011297684731571913731632582301898861724553590974449239416042383238462380549743078148227910790279716128741409106774697597024374502224799306469354971761816397106333756166849568628393665130213422841290356379566230859471424522321267002171785869900889323147311863240389187700837026331273522414411934184786231049848703524728702781949606215233715130629995361262018681097114617168198348769826734599882071946811800783270005706507019948026005588763726646335664847157288815775973696710440440197614803640749663102546173682826668642771978407984206978356905338849292909474339419005539256935811137455707057299809232980141129208124176667339839011018013209807306816650400927254658989275254131510766169956959399420457684559827339713288722848587077549145518542544220176684078998918441303233699972666839053215763579410237176270183344622849081269829032914931043085497143469499521648353737308661243461089087730555019550415198666329260166101187566089444743608023818856207210183045184561648264276296142604345104142645807680890432511613532564550729048996986073889504400296285123218978628169650394529380991732788934663567401399762432571521659069395617411730948543005328872900025591016490711550923826230453584082610187874469599134886104840555362892293039362932478414629051416787775161659878429033810072996301500669707310688672942471282960223719400645233984797798009200246302042051757550710701560973935686084330289970982170732022684313252511839688735735618681627940458429849939805777937835644208087145653718714965288270227427329743377552119987071002991081214215691804574969174437627415879964792884174987161972604564406356427632956760412533173836104239928259879489136355126830340438348113501848610869185053862489978746367301292629911976623813788022552905553930372743473889292380087509031180313872035634571523212247717382682338140606208285663652651678966451271381765494964868996966141069157635976648212614204731462204283712252049524032207308989553969710751058311403704876485016654081112386131521797972649600123172100499842694697733810631719970874300054118567545823514074877710171548536028894651834318334773255385944541140849525147945281405082525624193815586046346669778290151491776800012115320954579318181676189168399598197067634806919786760935347050990388414532307813000790556109646160422310484328939395614660817099884753843647562507258623987721935369738354689108615565215699957908182340827523155559252549502669134805183378137219417057761533312676756935150777441630613194380845792309611806551995643488545894546214573220620810695191853998829791003432419256853963787122030097931683557784443161946386291136262500676502399710636740338893672259074263053708498637874269926779707987243288304022167453636559769840048608149018953398532665450555425556583576813836273659228413257772499239811708379733132731190113923423720109254767749178016669774117712643546369073083792474494867802398343310920513182497222354397268379007013115311834449283772552161399382884427588931675149123338560515092322719934379305756567477944985316537614401811848994048340940063590816942909324827103257503788055528549207932047257880115424720424948033245184473120145149999495685937072677796014438541218329238691349592267010429557503925520949810462339926824450025855328398146409379229022973378250092850921486352870800618864286183247257343053872599503689681230160418061694522004809926599240654856839417862875172481474261546223474310147206541605425662467317439176741727986667251668711867008044015730157848106779996099066992788734897920613045300667159138349830629460781474977096309457270192011520412576171743359470171623413649222741295366925091282235909341999084057431663756590532524812161791920429698137437581334453292491063287213961233610288776646813818731462120412084600770906723228368799482952357825725941154496928508060989431489978203856380801933964628261849513861613566983459426876959854358961722019377552143031736639890223183017841066341056384983370758605892959094114902856656104587879794925197200430522783474547454320898386216311313709650865049223559436896245629656096043880962243750435393692478422319720670264855865718400953272409713241236908000949557925001594202723374204831511505895691666600713187543282688976480049460596367164930313344508057563562695019274887944288389306769375018422957421277946956349795988742262620651310683301957131979145532789581203573105427722705231571838366721208907399054904820772597174468224438308538743008459125533646680317300362216970069394253568562117331549022225472063527943522665338435352399213167038376348763684249646321516186391345023343416602723005491942974432362319177578130551511966001401585881717655437385137572765961359321452668844420395440905719390984414279086753846030376523336517599748910602808978342659933129688405025448531019518141427010300972615750549782938577305467579341595628803083102651962587721534045936786028109078191797040441397313695466407536628820728591831336169362905339903438772667038575610614119092328092230930283059200525116282567106967088050574346380058775200517744254487859081957229444712981718604299074058421195036435339658108509414840159969590828263720649817437516459256919972489828918212816099807748966205509479723958030712674418866853670574837752122968114503969562189603738443413371617435192399496113288617020044890681901639608236573992255249698953772345612586471461400086627053961005746883949260831965823021857164537238754062833478728630460285879508721102616272447686936585132881228500242956873633072258264616534113762991743450556770249244687820475098037713577681339822247537686309909498763263121802320903639531451554383344793251764934067443649491910150536413023576150615111008762359141499143829631180476012939191765094669277380807115102212371420786345527216977619325312877417131800167462583744350314801404493869433934819175583813076866246764525993169351576484047903236228525593048753581071517823752154496321889598980321335738803670709462862578927417721089366859432750374224884111231636851084608342673291393576495224621282535242011761458962164763872200671108323999335385552119073454237644677228324177227239980758495248908705206616039349435420540785765096445267609567764489398202556846150299493016604538291545034692975467497362612409189506556180011073459556103961505402665064423167308437221435775162256536001906749311415510373788384619430265348542366075222439365078222270780848421729548578181624115999346581968305433397905021957176568142175608928548083289294192112702443386398815604863074733611907303241327590511753227898063991504519795346234849160639449811801472212769862201497938047482942098309639016288681078751639808897503555774005614302778086481460783833040822610885886239920574599472331807656738675776275372931591234769788827172935648986812624169816561319923709559550371960705302520793810492589710204070357382471001527580370662728427008703870495927050227943941184923975735068310527261149078125371347543444303609003660144994923059752668252097689088408910112101292616100757722299308864788439249031732402449023895640537376958365523958536497318530122572294960083773634374477095519872702333143093689136475580555460520415696798047009866405411236506020406265398145380419412240397732199261101337345703353406087340161239134763431955121693818253607488950789557081053053421550419656335884160772238714815771991547338805731783861237921329014245335526411385507930431049801466434733870482743400305505451145957995050430916699943272938948767748691611434166718051270856691472981100729225828172614109225596938503955598851036440359187978831932560279208262896706410864882761462274470438210659847974787517333817243732891431719676958819321560567429594090284440758102770405277287715969971895666579393233407881199846138692857725477317130332152614966690918212820545673603221751685696944687773056179023955970755374483796225240367694681855480645913342328612865072951750283404027833939549638932509983000017818201130629883780166045613531617567826364932450679376773219940396728167025684667096863269313008864838599391964774278355939071676415247002223883384877442719407395753886806561200538324667745065955664716099234043274896423350643858478470184610441455395772089714574078599850104212036802647113001762311764699072231558158085257828045589057005397351868939247378103838525473460594070156493295770442375855665220439965398739158279067548210887733236525712090847948165148402156002393830050542863147817373196837786348408928144353506345656973554064197184140389995468825829619185754977660363611219537655950685124171273272724351684347506077743387362491584563965809210241874673098170105894456305441045931307086289441304479442674287218695140480910765757243986165233195333061328460804238584500268471762002826871247517671871121407198095253188607907785532803175349341002593797284069303889864291062390553415400890914447007483265332659254344879730904687170883972522652909146923476779825222407153518831906671683098217359788808908723530054476617974530012249943407690613323196538759720091472040231581757191177009670830062031029588678444541351493345329669429023708212510510851724894185266174004477728448906315651536718358754423904263163242756033384339191756105855988029721497418114112469188662946888715314092539960390906115633164116846374745224405143380730271993350816456956200915602787456095579058932750963335678447086892858694573844562662740059391654395806687465006359820765487152806435157644180209586078798904583970979284706791608800267653743478945587749232498215964403823042398885867750605424614646353739142023066095198480879545007398853480370682951032694830180166306782180477435381318087437774539708345617001644214840857936470220579092165314416939069954955565439081671385582987634197462119987746911119999420797702741225104180447108639355136121091607709893163976292252303025068030793986943277091374580618578739770916268649569445102449514742055494225492734719433292975410044485001068662205917359929148459363147570344763832011203678577640411890571807076272068993014447798371736000121762540727827374073403027839672695078761385563555563157651037348449442036783577470806110026675845717258483189310122734199210630634339680316791039515365312356880239622240535804222394722501455239383044655968727117054221891341445698154666212179462400697816934500641367817026287616359275461344495267256866976346378926619764543098686227655176040139464454531664164641091744650153079953940686382605826777247423457650993646429187633876937645140699639365419952132107160543851387678159320158408621228884338787152630314905282796817877213390625385645627487692693467766221077376412305974374733116331606293205046403867542805089124295676369365686477712534360080803556504576990035917790840202038323392839260491790807242095665680922819109151623199491685548094112065980631682753773007840545719302129388514925137747720237769063527873823951485119165169623252483282631593062691633596724860656402550346201446279149683892384942017504997273482379800933065750812896288510240368289387300509160589517023558434417934156319120566754084412448063245127525608457164273020593556956644445344545754877670533256237390436850810846942656978656077415568999316887412362349391764185876913409945482680580130974889825366550852049438721380081853120548199549546562204239913084160727363151935453422878391540153526896100825275064019462061375964497698701738921503065884778194214224551209970032604210772894700029362245073585015459584258493823614694105018330613488323032284776391840029259763558780481618564840956837219528415637972386792512633338603589415041576403899638080407874736745774910414936791165801351598306501575742638888050787809473718486287388653119814242333838519444980539511527762272514421725266874929510003355390086476365666965146090453229526644143805403647353568585301453204212513536686973427961497153624565580848875757480755959928920874875531589400366184694274108309369929846429935105258673189165050735409110589976375846756185399041389601068590053651883777989381658352137709600026906908258726327976119941901069392140008279897866470714219539278828649185181739104922518209455097050534420557478633935942703053695327232502305289116076690749256181072338208642458277234034171469867643322492785642701142928049634256797263325904536897450533179116339800048558426833911722975386785005760953166692446269830344079863317123677743505474594520564063308612550303501456234387904737496962636269637257260633176250013216039998505262715372094576804894421387304591904118428601752550405647679873832324057261573476942828993584967271806201041332748922519565618485250365823765375686966346197952977069040034242958991938522489802987314221036547148202988098115870235533893505878280897248313042056531772967778113815752331969141756801967609299602454501761809725370221744113739296149051737324547971318972830591654694894608841586431803272172700662091155014266077768069559341667271519904395983888188671189166917342066447209992248194766394210251530932802367354348325717168453693246618418498609086527710514500177859260755227476592271652753999683590966276708870248407888968996902130331861759078811552481143575036768833934066608472667237187723318921841301800946361825259172768283786019912640121047109301835945366134219266777000492939707164589020609549865035367443435452826275786015104155972496817512827236050819721897980475443514972818473664204323073399699275191029684657261933538485668543827397368237004787824807757481178905564407999421122742630003131632551680669504281472274676307562948402056193538538917223531722384301019904909103444586204771665065152623748094693284711380954217813067189073118166816886480786500826675004493992188464104310478410826942020488457083178461229689839451326459843052012068716694037124798800966746102473536619960205574598549803045239979983050565869285312886126003028969378409247789095426442150300652286085279738852866888308842243017893544141703804809694784354729837706759725166480617559233300141415564373985328293393717023892916476861515416377512659997654194678625252053984846675963018426604358193730905421374349775130403525338198749138842111490444959453847749803547405675605370127395053023424571199592395026632892478815602519377373365409501338766973263625154692438389049610674944952844792252841992370414823504511213352909470011647547353612939806147893894816276375275293831661403819187585477928022856868276412485500023250323468776275080968601861233037330032548227412307804355127165712271804850064888117574955875379313371543969464586464050875926322358628474198329047508096006311325469088228305974080580800499602792932946333305204728024867806637583465781264085705578137231458430077705215357998961760329064290585316724005794487288976898173247350842488652549299520349437489873159516849697544414508211915229249080915060802917185819744817461075521852256117819234393499463642574599737543900144032989079029455290197732004166797136450952198613740187389313771877913901846990156288826114262644130589635010343316414499148831072905107538934569149037841365000827109203497606305107887729441805945079769181413632975625775914550823134870035132676436010445505783931503500842788285998748780206000584285052810277916074099195404724564299828441080987824711771254281805093913589618451672515855454944769397322867575791151513688742599630376103550493783075117021024793061686558358585412325058958815944415864743201252242004711269227390880188885184665566384484200327958569842991367120458879336088351579641694378585507833922012625222902404842387763949367155899420491977933542622024861542291619037934560579975864979697726377342598352745238933762501385740444285060325130955268660719801043940633334628570710935089542009470577521381138094634281670419120718223511172565556370643980995335293649535798060229688527309038723904614501211632909471249089034750611704741904546749653781139877887554356489003021674843545791443441302803570716765292471344444231758423955902538823908994482644210511713900284823361224932574940983134113643898273192501932814079282685284853093118708806695996640830015490366448243071140891935731671012645084569571286992136105633159530831815234019047698066379619588676885627121758765280524552315560140149536528765292851204587354409530700837282824934067887146763952107433834509513304412707489043037979724313551120257688360360681943893038066478066480735409704908734763065012883138487208418308146431202952746725043844707276560110491625771450999201609057754490581250432850410670404919142316758259380153238857891085074170927608076663660715481742261829407545836890417931710006589676269837312356928765511928531361455949539284393560062341231223586765736994399389262867695929489431198171590260319994841538096830624845352912295372474398577757215140383739659817826873810928014147266048961822431349261804372822345523517636868939885600385387122679594059881402984275747832812107257621020062592122504093543759034923777015416093101504669584156318752535306051049098226413510775759425808487099295739174417040173849322196641898813928335198544215814143677038361093250276352966538879989410537166849803504369194648253605552180300468229659887118265273320703936290108482774009828422973874014001500644310879779664069845868289416834285645395510244508060512185479012867360211731247699260640643843478557347484796506967292750509822647265362534910394761691403258088623152708070010561294081573066130747069168926276652222262319620913209001088594618167910272406694809400924429621985110485725112198728895779561734580870404522921897453267618033555724134090268003491373000796943453769784049594638447396847735883539204988446858145096950295313881131621262435829542602327366792280103799028523364952389026038507653702256076089367920595095997408654100122184695754893521055758582657411270154355278274018841821767920507323910313402793634497497195920491114732859696698581539797048312475722485456169703778342904893478412677093281725698384904589586842288174541512541508448000170131857258537849605518788881891476474195529756295009661288317738938853975465520841751278333722314098921226808716770047737874941025345542630715506104835645038155957397173201400087948123324494254675944893832052761041845063301965270802589176939014795160265315775682076037146703794901557360716834450080900785949760246901633503273748128014286359968812403563618342944037155513506562426213290372881497354339957278279107329583441243114274459695992245579186911447277330080602836027813375539155898414735379221339278735551786512693644978039054638130713008581220056509865796998385511768812934708336322645617397438472432703039392308956619337532350337739881880095265075409817301460710416487789665530283316690205417150550162006955526072642418945176021223536906277775483710517994135244763285945214905336908862750161159947391050967862917613320192003791250736504440585548624993571964568827587428547579981636680580726361642426721979418690837833569345081047337214674138508254981010748452191123277167012086351269062761337400454714380708463923653163391419490758931816907298740641956898187748542028895695050931448666256198601015058874569202227581019405873526216224663066754577556290038454557306778713199399236871789947082337804189736621620859648797935559987816715720753673923880029972704282404441901176243541832326066199030951396778520582749378854080344531071376979462339620420371457781745874065480593004266739298572088371840827428711076031918671528442470179348721657037897626645160315926187033822120038365560657863364563595955510682295010703080379563688545072848452459279524806696202214310817886740980534063211580276033113993937997160936137424206729477326891988205475084193333908585979485869549205787397353017279541344012969450576977742373334465670530765965201676642848335277147303385961396152009093076002171012140746653675656355992040319053130621383985385628645056889389160551149934911317634104879307060928921266097799277391295332118251512510032942522260251567672414044906556633207516893770078747301973434170586726782081869651692044682858326085944730045339994751299361977262487190432480229331222657026532214481492886607087262642294094913959997589821628168712637813439288941223735040896486040693119070043322089811147094295564038187488645252366914732334093097931691909186420967588504506584726010614726162164010479498925637601953670156150567801723690534215957634618130402736914889831810585645476116067835898307101242459102994815487761883959629120630673082749105522514354406953773312701599065318356903131686870395140941316283375881252868196838864525980886076596497817614603739742742354526219632240564511084397607432808067618744071073829547177905472846249478895345158176912533214129504953170677199934336359171849696942433568620538086670068623874702131918392377588970812082731657999635307877315329881349498409912264066223378436580084181352673749511504345842801022155285767327521639484942801681217646657965898370374681407171159877672495038158755278867637002238430514626432189171161165883914873879404849257808910660161960378435418779866983248937457230647131374723535088074104023256351993334254304241033023392750533379737887203462620747137432589824596450937423664442167990414239070757573525284104297274867865857481548190396619328572428363215880606351326371759503775644558545491568737478880933138678922586091162596753726057351049123144636792708903081388643375614002547464936945236008223403304325614460605188226045540463501080935179888694213266287624369838072051028509937730408120122467264856638530910143555889669532530583974046445430786237597249340689699986046502275050805704286625725126533200753695753827580426294145175914796816797153671925952144943975892897618107980174592512458788522086599533337842379187573501793696534400706782600818246549392512507191302626270881511538134417126097156362067499502020519684979607544596351472047275024202724927936250875065174349137581000734712173440822935211251157210856209719674311080792877869159545216726704365158554927672302412495545030878115811486972330107445853567949271090380713542704639591021353064354685937943945929072409291848530748039403303002392089208023536335737059600714430002606801378760746955422480616489419228333331835535275822174929711068481964130390006280276038194955639329223911753671173523592520141308293185389237648399738674071237316249295638044167854081599446066863871918361493814886744290600520844392453254675298618043927737322129399913338109604840481848049696136364942338995740537802039729774225465054143785019865025551638796755160185235418419716213925520528475688532155735810094523784140015985330864677807773892601189330811894212861244645619164246565329218553611777190654023257189611427177789267839343386175228060994827218202523859856050371643990028434619509273658437232942230366598779035643091289487549329994265717170438311229882293424945019398177646493604992859351639654920872923234836044627905285468831908326594207799087811227667884676612361023809777830545923906028935214443524348423416949803249450424873674880921066902510686603307434723000743344632819636813489519894322752536594392105254592442610240818349330700519933655033263044077739671519189060976881236018698548991899365125640670280602291077103243701824196632615613502170730113922752179935575838246293278665285477663779919327405044400393402372759178911019706628642077347126163675876484682352258443514587876166272770967664470683763969227330421960617553246160787258570336066043332193496812998743782194339295419799062477081194275439806008193375373993781950427714884047877678295578306128537005346489343780834748607223504846639781914187612890918019913516607587323013500580794036577046008750581593014025321624395724116428781874209761561447903230182808113501490047076258288448593467179823118177562642774144457154637857365017136835139310901664820988706457940891543141867809734386450423387904805304797943798478555332175048667676699635026496458150965400593796640667952930290678105234225670690705084551662626219708580406041646034782463624421867470370648775977766623771131439723489469927771797602181279750703670008192492875114103409069149634499313809704916958085982828325128178243811668113839456597574935922510254446961603805174743152931917754180743043395696292065848756991599428489195810320087243039284094485867127078597776813733901962664060060689090836638630999981024557582795255608747276281985811404043934494041856720726706695359873804797643938666331101217149212119915780662913651000859768869531852319376973814595750850575389597073072534870803375047711504509967760916499363587581805878972960043160278408278883111253986838090616874294101563608853031787145868980740777825510576933159480311175496526231086367072192243464231479469377733347454430730064703770000633924066897401926676379849010240316022173607684466264332384393211683487441587002037924383804175907733895285567215225973005727462711272574858157919212122806516673475494424522076301569451978921104784142303456543801309602701416062041084627883847976811924183003956030319456423875041921123798649433325799039767356469921929014288100521663327069814021799420423784462953574963054867084541636994878652092910481825675431892445770599284933060704357564354037357250487693269281218221035897324496665420091690785108114384018152047248880503967689655463992850578754647721301137551968006610136356749446513373624753367237877315126350322066571879395862287442209173764154871328377432232350543837604494397515342136611128973807039398521799677556137904902629587504823722082203686335536704299255305796582695167151553928724523863580136456502517680131741998196753616412752889092924517819131105720167558469923193348428262007587295970676855566547901208643343815231211503489309123798944473919344240395111790094928323104887638433102137607417840597314455182495763503136616983220711586477350036491732470842071794646873664089784673219064157928614505450494084846601720365457739624359922764486071519609972518325081448746706962770691459335775557242720796468818691659835853484025721126176641198286809497976958600788890480264794177008607706029545064387110379583954894405641268400045941667662167112215188506273602507261992827359566495865573532784832560938029828288953769749570655035405574890865109477715212133526492259930029866952377350538439059150037278917971973896062277313848281054453391983819150473319031092974243570510384794401447473445342203881584177780376673862670787300738181709548692123858693023796232417004968245918634484184830938762309015177951854824777571152413471070247868300886625670164430178552333057810344008371795528742830398135882897912399536836923853503437861895397566627107810202020486866682099176846824503181292410353126198256888193398542935776903747963722964085816706529096811873636675941633437551438146385561707390725032607136223655984515416284343530296769224751395057256317761027619643127732716425867096616073708045262653151669757578184744289693756154514938998969711045179132808825612261060891877788866001777700908881723017749592834534512586545614614324832749607663784762303011999269558889821681834566717105971531713465617340167100420822077084346509165948508065473573208578313660229789287970511759077601290089151556609726733620265193300788515124050222672336896044679927070664815579160647953827420132894391097502764363426733886359413423597216010054494983251154370775452255444006538862626193605930382140601509480846674516071900677495665923601933871113481557283608511547469066797706860700742803637712377150459460417054438005628664396609508132045773796811497867004100823537482335743672097231672325179114892670684249085727717728595936468320327442730807623875349200822926527770302588886505587561264035218213724226213954897272936618086795418691850720977281308070620687737792910879322933950441354402939477417301016038241919360223678511051976672518410207229964290437010866087006280945710190821275506567147222389113497011892797430765424447543967876928472337701469805201386760595084037057643590177163080799937170981687978054716321461768655065822877895223353497511159929228994750793437018388760127937431318636775546770489094932796244353246853030332764909243426424556106465330111845445169033209087959694555713501448791821197444642353321276605955030123656813300447439335233024536754022887797994626116713980289764393115161753284866447906530788282995098060775758201276241991447055942554825511010544144010737900952759139269038226679372123692810368210808771702478193995885479808357116062780207368076854985303987047421922835726113523466848820289627089584412996237707405554246727540439412504887824605647339773361506323887928189310078617193114619746280487746285273930852188908022037309554706472471524388150976973865847710652505474017873819792790007360577023962318459780353416309693189979545932179305167323225053482341449075843807412695588843991758135798956569272153780184064727501325867114532043121266031810165867502147400988505730707132506817938817019187818240398685022887315066868932680994742717511404223651759217593296916691362126225518863577969606334839139647973497819702898317032254640021141790177124395388362855967477133152059796962361163318905488874501258085677981963798089262270982906984530474359447243860166065672009656244355175641116893597176384130457072103282065764534220885061347755807957405932003322708740226662609992303438372556982339220709584796706947195527742998090323851450053501032802328619823211126443306609481688528898832095086922820194384794413612183440152581783680668954627734170256644596541424450305492941267620080334062089998389094532663271902708552848548055576605946229576080680465132675274506368282088893575294176552482799427398171288854981169292470630742297681911006888804247386404768872518872010771052051724483956014615924851025694727286063098906623401526649964022996709067249230075215273456944907532839276223105699142243102454333561054536094980465454070969660112783953611959970511270740786940834048581817939680866752062658721490749076325639056926008728727680421928541675946124162114414281934188763762682039925622561336099054026642118467919892388203209529782083102135614109486017424773471393795332390066846194955649180805748287436904637144688352116134948499205651736379791255074340199397996611516097311237612167026204117597353377946563667479038269250399006349992063939870733973541550416485968663194089604698460612089095209616952888815798769084823146309151679466669943867318140028759189304369540280879668734434585179941678347246260061372136979362506648586469680284578779834274284353122520091201849252510698339657235690554716584122815655345324174914003555568933872239758865462714467956185381998102203813268062253478852742634409618100401669617111399082367358212395656393219213368415609792725282271031805811803219421509056965253451858229024816311640063512088267849169794698406074337487813626922297575188663914584814648005681614761479958043058752119490507032950495072769368975009556084960995759094937369292425691667317220803831449377029389604615329968644676742009704367675697917430547222098111746860521254299717752140620910258216207416359796725777933625379919757184864955898389363551116967361122965257097214821631632272122962017337977676789686437770212181922061774040957047366384813811904345858635317803840407503240130652924135445302374249340107593710361714264957520221758160229835309077054371799683055166555029576172932234550354195963480609494555559195816885729169034379681693507751581245067424760590023374297792125705249861121472649782697274988020966160955861794161989942537354300996674266775887595422115263386294748696910783973103045903855025524715055809819000322434368529036924604843272397963283961246708728054544726234113979244615611933065897318137309722206549064397571875274717810884240891975809444766845657851032850856469017874887752461450364964481977943566795800243639683511303697800624868461935234081071316097726807022160477536279025802184556475950131833998964284562213373814752821484919428296381302825701327008443862308479261280151509071819520198859034373093999008086934514618241374397424330877576436401682259544789477041744482859788708042570734136664165994013916055747096723695886064331883415463838549598169896693783693189609674715976202453449638995688741396759712050147992440481890035387438494536333843182646342501498492474020470668884426343046099041282110434588860157829602476303005247293283077702097011227935191716236174766857182415388576667266877955573587485795368637519598324932642738415722032270191549018947433740353096480910718077271250545086018029042983156192786656819425703571075983557603068137622627333714355050472084165558280474471236452696626060538025709315811134258578798934351121065495053354705489658098737848145626535654246353096794827961329713108894836150928588710885895197117449788660108380525792416417791094391523711679582974021483225556733118835496972699463255694307476437574960908937020792765025486886514307105168942499603744758856987483309068507339417875880880634643422406412045679225121044649711434984998961279860316891207759271073038429746094772811201879853272510605723601635697195096202652864826914859463484240330916414384313013114540245205817846257045767136660012047147108013655905244845318880060801513972108095742818446158896613696314650915543652184270330693415017623205137378566437797482161416232032431190305794833275969270930237981265231762977095730518356275829504790922081500381784819048658231696781102418566228371579806060260784940357524853300042548088997548505063379242379153300770583430546761355060280786337493024388046215723807113669053536501051485023252245567309582873445609894914348706859238498642669789401037599198157948128589118147281509303337460183876374373301870247839382627222015576729734993864840457958156411919190705564795724582745076714325412799516206607547231922560985386514995103681721735804917355105022693614372595261306262447411216072439863283455418500008788568249238237115125273147203921942325086038554982650234442752320613449592901578204166929881878116922227978870319235782700578232976060550244624131503550278652918772507243150863790451373911820278221676618844664261677993555024568818907410221890379802137967259441731156838599222412797332423271473446413229466575089136356421513058972986922073894604214668600649998200853022742147161834315651026740922313936475575765506638673076216762162234570580795961717494672583099054093622675763722881706422979516010014509926930619493740064815573805934259802660741969956192045535684594050863771197704487596018239147559240733980763102036006849240991638350549087026624082925626246846898064384446332993149241439585339645688189046358529838613812840371938590604244200785762452370964973044900240502170669674428664782608488319936554066660697300658260956685929927736056666224605431760660418349160144496544017059909106568893073052959738809316693925003966141118431525516847648615138353720786893439255565858842948689824912412631965524436622823647679724668847080671002495846143924440478339257180039257729045727578242829549420406322666628977086661694666782697268498602241579061310821892343573658393294138197795693365102916918093962566441721970770906814441506882947459757867278373544104175115779220796609790405090234048564295303676838725163049475785784436367650082269794941576284844758843569960793992923004789956385562579330277388821001352366073541833695760022082179264849417920356604119431068006553636781362768744176727974742187047814912328683749498201988751821668455051663644645287387195869963695134842053862637997472085599099286334554292659933137211377031523823564438324376236429463834160120669705648351888977747079674423739741656192138326757683961201041705133054150861431246319901828472862821792168922589549607406998616827763089024627362635126094228110741422952346875164367437409320047052799697283951826053184041858833357373556095312577110866837974035508709417050350941337430699395601653066754697318265925201271290568135180832928985651932909067509360217402001949082650321895451703273364640977906403003452210213740608568991224767005698723726508341964274715918102237946339972576832803983207465536465736960699278763206173654533978526289629928444363939284052815078663412337730849352821354824340413883615209776409920440386398764865642359407292745941837379146866064057231725074201356151610067094331049505926392296899198916413973185946012864262733840005083470699107542398334841078096289547391496291798207919763253300286101584634785530285306315404220047365599708366086189808432969698071817099632695826268156859012354451827975170675466561071887020905413198144372548567877021284673312377861624776504718122665841842991992230955727795011492043680178856796020841058972629050967410791834561275688963512687286826638468300432571338200619211850901807880981285530525262410851080072979144625219750598904076525742133720949007040628921152810481318775016111158364671071487361651502619331482908601489596778710441096310071037832765823640362122039204712742579678602570057404449889439792326860007345586708256892468086181121087256614771682864666143431909875728868053910000997780375250108558179697527645386973994695385995132413650785039245692229491626345348206288150591372889870947165415002613551543271859190693603093154904348597325695720678909723310570034361252558324490747062538482408089209992497319352054228921901460749498012419658165225043798839573304594227403660173172667257441705835246406379878136490773260852440714157871130095450561330806580494556116447779683816644779717302977585046835258217357262525803506837013378491736228405126888210449678554003171790325627775722298301430884755598436695224705758552087000020529017929953849633051400663229583987485090877497487513559395933958462303523371787423368966366981649773169490426108555813731642478477849563455709309053253633851828061814637316132862027750256534233422947486532283911176854576032450992305906848595251774900041470600723135993611786588988555601466541443647427446375820106638713757270852376470779240297403715437599927538912012206135995780808365978568584896674017115885350919040637927323969747689690056868008549598085928663038576072444408448372892146783691940755082898251824342439232881404370148342912818827820632996777877457918242351971597228776200941210851951095076908548182263126858139805648729043503759880940516365811297060545284520522520063047625202106781657251420683833684052878509420152175839804638654635179922305590985616699397064444955162953028844787860412772192530843499911222041093808549173112544300206006843866827101064915877854106061403442868328781812180949684259340063986417779381356575896873327444266852992016828774733870046346562635930870035487331011078887500049156878363891530470920723792141933365084109478643633854011370570153386559998565053867804914486326990609494571698269937891834262489905942202132792624662827357062235715234559082359204741143287611563252006604885005693437556796405792632991330886101567832376212871989365053856412018544290822309682778286881131456317786911673517715049675638528010167960649576297286501695084614420214298282569755730301115039851473852744433831950157750051472635923007317536729402762144494636203122808318971140259194870482685524454027810687741988717148053622173415437181171712062777373375069037505138368340257891720007783146167419770244277731020930875896907943854760772569682475006806537533284515898997734511938132670267557887124575498505700189621407379009116767823503928796857095994312614448540839786238938623395256878176344782444683692452227080443139708364933559105334062113960594249952627121815621729542394303966172886434551714545835749202988875636017106225829461945868500601615471610245390630818440915546299095788670591838351528479915772523842667135568657826600117616806115125970628574504098954177289157721331483200987015657333616315538684597258803451297244461263660555079350748865621058011708263583574090181877175167603410947611423034108140601944857354025819191203206548205440617207345822356505186747211343868814912797639499873263075832103457200349058680879446394617293671856519851324237143163983484442933728739744976745990409270388497495109190068470116366823695737797650664274179280258872864257425762270791774648223574184225894172564827483785988148704831240132845764125956219853064643781013422138713445504101872928657678281493309500064616120306112838525920889551671482923558389713379982215807998074381201005215964379896324454911981312374254962637101076518892865750367646444668420115998133502988614385461513894765503613936746983996448452206926278873422159723168131428079308516645497105769275491594441013310639975349973095243368915582153369369472485202445272695195210208403156804816459483712416398264377708546247105786036106481964068307462687732890245443266469005315018840805991069565720811011559653942609733839991502511379514362530373854536524057005187090781875064094340406110757456129180075219848028739406503070873100612916767152731455719230526522451466650160202300448766607737656891899680428320417069890538238738973942083336405942760062318735105547181968497160851342715180888887069716649296813848162937645298504405948327347661095272758627944962780429431550568771569231192246195985790017495486494397483888164772295607826215944553627781188874251642035041982667250857743915653632589456948815305456986305465788367764958741785830366996727058611304484714938638229995738677866690432764466224215833016289925622911607674979341734678078522416690324164873056413057322463907272530954986968994233735946798331493708346792492445412131055083085705460340517984576400195378796874532588700100285048008005102667949550976970050476093295580299863828728138476087001581293941678643696192102006383632038103714135760066644035658955543460499707424452781643256128600584553645817970507318024771516461475401100143911307307343060854162768864267608536474866378880367779723591862185755064613789158090236277698759955121908346765609474550621862274436984241226331291527491833525650828589392012493753727736877839575343316087176306752762022565522958772189408656231876704584958857636176626072139868746302584230391926103576201889338576244621877368952957234985252893015116172712085248978579572624138006618080587563518828154814772374472219192031456274643955551234468571227937643060508170012758396013115805873989569164503852523662906127830396680812860278912336793034614610023721435831196604278766405429840804295054552151356966391037646553070740295916574806701229948078502946531226861331475765443128290396136753381168782213788530887486752909477555274858749102973197822959966129722330126924307709097355693507378498093383803158505465315378015436370441814318673498881173563749847643471579198097920295133698286179904100804661580464991328277185166764693386375163249437543899825601243626298948005602790312236255422482023963363715827336419476955340178295859184525661716477744122084408420592352167441438637169684450740804894663217129840907467174568555146042341889897414337467347755147873612331203460403341687537489361047061896077203684489144896449753730483982749500916622968920727841875669437475657090319154254089785607754121677856794642796224383822810701564243694720580913842931417117349934819877958249408090339819151386265146772759793295857060540316971591413843326249868716723071232844559661498422105126505682681367990087983038731238645255632532891618350400466807323587416629479018725059174002837657426947504349330366828108396840593095365740756373849330154452284960801270407291507398760615550759167279537509790871428065948946133160561013919886177144626839276816705801824584342069149902916028862331284038464576294289446759792936707656967252126252819081682975167654978646800468474526309955146551870804917021691998172887713372246053295509502578045743186129936972222728831652313132866655968295298519828249879529731281826497283420037309114969542061891576957328206994707340566353664775656502081644895231739193572848466066226282457302434450017948732816920510794140857799561455415909532821115086019955155769771551372686183758821803739616815077938634964100304100882810229356454661181578277308252718334538356137054726174648130966915864468634234322953366874471721363673323015818108068272211605597743590978396265889689423975407483981337003261332608610472979590859908874471439100681674968435456463673670096027272338083681795770266130027754687430065063395692884419928448888917580715763579290000873387143198455314918092743880797395082296036513492820690575334442774316299275418295495901400711429055375376453518842152003249525280016217855782172489094575800798239080828833252206016363207776675886606135056555290191549827974073441829973543403698411476314141082939733824537303868940560666805323116902508852059068159758817435720111641556819042707948646362279045394754680416821054323839362857086078248179547319927788136318725362737705312808743873742169133051333413011351650877446530196130935556553013646072805779759726570178787755307319031913876014631266715527332954199972334020864214614080307158881700320265779734366006737299382941071084955538181521636456389569895080043044626851924023558693405565557744391499960851280915574744840146027124912553139369700028166086896533610034046895768798389424712714351512580750221857039873039336260047670524106481035136939190269799708724765162709006115873344323814330889848406571963428515862142388092132150300283547799783066873507384679012550809926615337262733243864392594556996256973858588493884335697432595188812065554729058057411734729648760016950108335032879212223821454998903351922337327302661739687648485314480162058039486967862074488534997447281514001151367554105376775540762813373712164313608051119416976975771156154357673302885776229822116778702627702907697792249330849577308010338196624920188210463762786850986090166218542752795042077158713061637538274349023933522786379349869589748158338238189772283137571329120240769648713363843748338735909413825399982934877532968154156853892501333043428005942539442150397153974594079934123182099823159019708910392917741375289734249078924023185033835140162107526960199750688926245395663425430367925285322068086533921062043000176237464667997078069923721342764492297034226757298518302837328425159170645092604580460884052519727774623930544957848983607810125214509755368102547585537632887073894937766458971873614843957937066510254289301404414833342901793272250106617048445312965272355439954195729330108956344302525000290898398912769843937100042537190272863738521766455236037072187288812476999174340061738015401672665647146544044603341903673523178962697171994276696425478802596252209539888032407302862818152538459919119830924930397013822876760371920839413830573007102885403277097098375773720246664305444509257144906816039765841590616277574101071741869013716723560288978513324423599862439730978224437347432458098719369011511122369604009577414426262910588178482253359617032207209120361277194518839936601350834771740736632729619166177951546884881205881052483889473491997663027436876527579839368750069549108674466162131848476502139008209734781610879890045121009914596775563117346477648010658280641622579376672428677773501718966064670196588243830567274925311280094233934101321193781490186674988872766318592478336082628783397825456130386223990519880924440796872914790534778490988990169883540700099381204457218611214182897296444317967481592679482943121883915263900598075483286484566728360028183438680295622169010188631534239065936321945003488063828727118973672553415190155767195305041630323902357192692927789132001614849968518110704054567985217293507811626033399503046589490940881317478466953308495480365497348941066706473362133558985815131083485400242938955512113315308890324996885880820862040318284992352160031320363409002440672499765990536631868403176855425092341594894446562289537929509167568719213660914308038597761180522154907657411261084720719780484654988565108448276036826300569464683676000404465354188101229904723873770901994422580611546584838772094148224955164434918866494686743595595499078579579970879136244989993283672615362800952287749678774769867070233050245273502624848966945860206977903350725721105138239842995608191085708603033143332811897300835302621092343309651382445124889177533640234337949401640095895023613225187030094744041681897679569081391786179234019722430444015376363513848422773694798996868474864055729527167337512386145959761363497292992486896792460680330194724320743464731254341126603153635582485961417621573383783467398914018085614618513792909996640051145966069981576634832017564448930134359113488530719250990712383007320135930022827886951542069886839687277747122467338852377432759605259159359737795767643871146556969607629794205511218297989201857461440141284223397653238970197983865005648435704756242822539084644888316136370388371233976824101781856369721101464533915789957743944172186821813941900258305112305358018382877599592462333547458453054544481547049003610834516445745636426046144777866611678839915307013910090798662814066547812025443443007395156561761414772124960991943830071437801873749588451332001851286266257862144339889391228331027801821394488205010050142599719342965960617848250559256858519432359237080966772216501958219782953916457009641143487935025529742351584090873004066706553989846981202866069290751355521039412802869049260312266881726396201512963829542374760477490171525294047345498389687437149078294189269798459786914318650186391412541511190123362713426168786280298947672323484432722766687646729460016280111777119886570263378265718799206047397840373486158269667701760432420813180181389135824332325344707758864912356557687487399515603868540636057221252099704017148587766358289517998806300586232425957151364000767925794241966992949863022285436163221380744872554117757852690778965136058433035534060025065489426298954052373149223451854503310489973064399873346541801376377875373853169258496394203706261585553502024031086794707928442442026263613159331652997163551084912531913386957970342278133297618150723450576329862287640086144437425919551409597491637839443923400642637586588131738710439685853945754090379173093587918005062298024365672942717502178616391182456431009971961670983433883579057564324063663934259876477898587979121796925133350140500741269101670486562529996368271296592662466676442554781548432162284080232773957089298173414939572938532624468933629196293347795301694753920768731910431523251228592573330768899956331863466903251817298120035806501157572072938562223185599755991427606098795707020358511853221915686391217391429838034389735110058047853844616191482880097996203547566741549313583025975740967279776167836103622949700673732232320598407204984688885797335356374770147528623835804130080530545126475196213583704810959853034602500806908340085364855183043740564373306868868896154511247906926353535002618458721796633303405317736282505327104580977782891982786348732912108630786553378351034598009393824585911573198536896115281997609519728748505815917342390946703099279773499950527384557370687648773052980043810271927554625345236917836751477006511314956997983699790159447006776916496274026095598158940260361493549448679452076510036571336271937333768916093302016829904398309203103301717893970966908995417499327264795843915722444553052947752879286617222116971669404261437163567059974347536291038145686485638116468052095335037681606033288261815597371565104883055269512081519497251308883981502009126098914435196162104827745901597784364532745205630934773676760346571703164488400742713198428805833280041137255086609407091084293694638285834172028068949895135619842918230360369441617538669750791673961581543347943686295853871413057699288741372227067030789636895457880411470984080085064421350007248459042834813396172426314860685433707984093144545716399028048114836548022873836697304292486994703161070730147479443559920407250791089539925789074508559444039728161947250949225388191688480203446075835514570466799558747298527126457539647599215182545626184774390497617535104441885024638974227173077456118823092173394258393367443323340027955150234984287715701580594642510225522838789864047790012789555462692896789058693932152018585804241202200755493711376506643024410870688235555364806128691868588995536892959089408505013622604521601483374176231365538797985880247585871329723225344522021970061154175096240577791916337247554751577852041073379116238858223348828716913806490400315196211416369198556607130155812107903835016846930227579692611024618851980621223543793723802123120777845271891435679626680008761872554313256929233334565024590832450960825303746323746734438538968184455663537177160752936388070783220627568862553441423628719280223250756386723030983151218989809338202990977759424973845785684491465528793806778076457859434736987755730105114752298388101320296198670739819529412252904868546592630799944355438989775498630044685218362845938335813369155568260775852028751093335190413119897162834685578669192430149357027391609088703719863611601198945045960708288227763067634254608212882629252846177526276175697082885607471000516095635555103340115187233474552142397147698024407773062362423614710962897529892522645387908320052854003069148743737468354524322713170286138268198900089425779705550763073169396005403571834876598290489090661204315547798748413002072106331167956463940968371309679062536998757768654598707498679678000950893687304035420254353941431061564774586815851351147494005228182941680913843021865010584977764042192709687263195578540306432367361520663417672321016618864232120992564357328749293879989445090499433039880813518658864211670275197875123077549073294566600280078446934511986220072427447303829634954688881999028941182872945591158275270403956478567561400516130085080391620701029742053797820621687686312747028362201573937545935482843981036412573542170276627842800378997828254191725177458504072544769782780159319047165110346485826180039624973467055476797147986377688215730275461376439825151696691689125198620100665357806889492332289748728647660118999784058774298058814772286912417650457794329002215837745023657279212558639632256660795254244645027093810812815353431160208388661935802022633408703075650366334532451897952301130652522138478559020862107519878536373647165353068365974036101480999711751713343634099306736866573034457675657248163205438100494809284172717602831775310823410642866506129352898954632346766692063206645889695110944179588113202782113080865661452683614725833785968713028109872002864664270763366870095479666982462586966044213306045250546380714632305900576624771526904468935788517761596364575920491228296250128621627451542794622973089581733103689929080843575148198200708915558574506918942343674873435584770102809841829386552941875148435441145611167141488982214446852658317040594532930788572903767663262835654229761540688777852162059639543390569953738320005302150638340357303883652940121480134892384745785597136512377400096434826627297586738094154475227105488446377463590720121271882848880103699608569438645381720893979277591715684140822342797460675517275484573165404373446883432790735213863384841053834338354093919578098996207754358228374100642595847589045123159947436613297317085027734195814009556191592093850709964959741291379150035240328438673256259399021227029272529601876872217317793650184671979084332595855879955793248320472749130272399247766795400686310994123485248273398412935847681350117234825559189228867388372303721603318362823474775786273937938451825364405747695887496888752569445837425366899929347785449295905176267110181898917972020558786068442091212146898411321915313765277126601459231663476009436009915531394648144104362442118462796235792594045107911826909795602099769620093252285219921064118131568562687491270533780056364631246840085191156738041608156748731912913259899010802003295157192058111615460678824143104300552829537835459210123446011829193554417479470017220054024366994168980653855316704488111006657669797774565143610779772223406725659431929490538480006244125163090651256527065589017777738559721741125091866124068585993296333267846341090706097207442165528542109351941910334956871149586150584446923554159705713826876122527420475820303744250610000204245713262002144588659603739805740087334025652176708809607819199565935590742841090151626227350692583290773309815358149950932931589665314500702037650633818183565760065609787059805992087681212720033555926357476543455730058585199964406633367746324284196731364830815748771706899677224162747848867471684060402906619936574101652485272561939797329636689040800511994444979000182405204101320818021516299159656074816450068822101706782594067030219539659116862780292688013700228645999543673601241400930994828086194568395276401058393514354132506286074568684257872169978507870841021313596768938616861392924446487066915025652021974587575645484222639003812953448096164096597334783506431755793518061183710418226226966909038468421335423765666821330748423772283471749848160707517488281853779717556412868856707527552905679502394265067601027822604487188166706397364543460393481113188111189203073832014439829086687862891695901970744885854531393883589813503537374663681063145043391160556533278174792020642477707013773951242145015001132672803425449152674515631854627542065725542937070531634171795981455582579396304566451783709128701402971107962455961314864621845404106017166807816107426218795361605390210430271343603930428758412430035204180026598818608144513634673287189896502051514172669598303237259242253451549510394392397297424460758142530470881373746714406863767175119997487050687587573520012830725943366743786125264818552542590785200763926305907082002489363313762862514381141352370301982527277736020188579839454751377361089186342018220255096008800123225323579550810567839808705777865927861964092272232319224776629564357356724938499604490271057847371220884194146761043747930208155710509276464077185832464521200576225047301723071566364253658352455181527074182277115729494620282907362775699816391843407213030958288528256947921449026969563927785368538095044503727635722208187582505942966095772519347495225858447122605544157651024823754974668300674763590285010054296684910378873456296617443440973238016382207132172208979957837125473995034597645898398807341229219581167960679416758060157359199309389054760619749374875671519951365868451189885832496146348057545383017199577791899853808170417724932919561302041236776102889553739359149026104100838625784701280189610382593815498974014235992544421964949347628196553844261423609569642982409008746004349771062203081382923150170540052825908120164249692403607013837041035291056059159064586909994304043334288861183018627198511851641801391085344719582937007632085131471404426154055337032744228082458848220394565618973255255359692414604323904762752689777425225645190559776639229530681970947285029121907442117685245964198552550814769397522078876745318695081045635880289596934153961369831248207273817513415191557915480129977346993780206027492880280083667871113178744282396007252140855280003663158226654261116815113654568414468385106800862653994111629519398668678545654403891645506278913705859504890780071729138429860606773239532556406544405712076825706317397104629945640297373465892251305400537280130831899288928697744743538396186058378329077338604470471693943396674192650671011508229645278078088713666195887260415630645082480663574050863823402528697516765576965844298894403561543021969376579120308668516385719767024095519893233484860458555865999299966167612022670483317709096408552226189003105485856620498746010607328277380800294682344766387105314389144938791609953224097515532462856880970266676866466719839789192358260722088986803231987973530505574430981565464840324870237250721882400874646189318984308234797780827897537481321827204328358178587909505217200965724541018308515562909878388844415235844670006455678834801304011407769188286529293066599711251590993859797260803133912779419182999569266770269303647679807961938226961897847944045252337654460898885428130178034184319037189543640293373275118236977288247760411778263364598428704884210203285197010992158521491445205729406291341056016091355213841357363930044720814812885584541810067795069312449390757676309499721076407353349446062133048404597152604901777658136205520683219613433271316587475341604905465025480974781051464516832492224970313749254718862129604278363750362407853822462887108719994150854213392002595398758726831220808879771679295215446288284115510766964183617948229153994518634042485718171367136194230747186891559246148785358742502755399039413582813554582852397783940320168957774737117008543791614760717152367961647047544918307389633535544118806569487292640660917367537120589533987193654904134570512066926996768948935130724082111836878847044975710450800901682142950225022971350977330681860584235309769539771129428564798354935864785217586614198383659399304963057237198009591991849057464571555773710576247040664098346742823922193913135538144346652903809032796434037266482644594785591630605702075163509332623882889721563249990167538638779674734069463696468481639033908651262899086746811434349921341826539864582901638542193337252302682466101707885753301896154961664150469754329179847735704378577935934291761555332215684670686030190283145952150581908040026762111045074185665491176295864554609475672572733913272127685953766196326542454003475777991242891212164242880566242903335176673166542498109769257783166626321257186067362359340238490311373822756361423833201634041484870060367496458109159837120711056552871653258368034658597908568987727927690056508802350431642345148323154360658415080828048857726262182451137714690326697620801387291905558641417836519609100913431229048404098671047276334822431663120822545217354661485401013129347658314586959135661013255623609447742672117756720227896488750886498196651731541079701072621429173493357881302452852332066491845254133884383987007771453924296321003293044889321967123057639889619974034014816237066601409500416934708456463730265479545850759007370488063319165774606548938367416106653829371567100687157921065727065297837409337669136029654264750410647670118759074599735190020052056786935673885103337959159535277465321159354093862155021188683761569063204295892676510493467131003213185881015665340406666033694505819586966398405613016315042039596470698808650487288072938292085891607944987554211439479902681074590226631135795943684182726782131126398733860545376338614328005908844657823330848286966817258889119395553310561309022187086187246205915969187422047314625415016067574586822550373451804684806916957310136135809758322009602150944447586315981884973842752640513514926436276834886431952448018783035486958587723346362868579730487715435280259851327205203761000566057422031447979645265107946784124025045270337611540844523513912398734007663002845113740554489646961337574182214462225007064818853493961948430960248212715846652138867236214497549132908586209172512248854926368390634986782172762074648065652498213821550276683120419536802565276048681625676584528653695363664809731439742565704770548674935862184805886131691594617655370425685038766279408215256614831571560478751313922186380765954006007346075501745383673454284643830088923270917363407692412400385973427737034390016812289443808036233588673796092116763961498948429645936985137821153046520836487539998083065103522151442001512529192884822341867899613259721900724498573517792148263230062212299213022365397964512631996996626420721711927535487748246629394427190788949733308784994029500630244050493537601534708319054652325833394869668403703505735848871402315901369899034999923630614799222378236390612543307137871127531590102001595699678166887642281388397657080586025753510427322146858411433587319946970985926888460163637696372776747843044239368296702210550930664369634867691172709951764262006598407634195472262776220043997408528259999413490628180010971567139951226859429296164249892422207760607901081589571819530566576403013804880538165599184483046174301430788927131167734393615225474395784668607312605099019425433495033417143254149374558463304659757815332258312537757706271433377267383575480557811244897008893076853444387256110954022946700060149929096852959348966971077698628695677055244791694674198506144723538914250841535626021344500938861312591008902934661310065671614382691479495402347434143130105125793928413493623681253814711248902148903646313166348145094968882481848890528994876657694870281704732144930924026232610926003295826962582880803419311056787774734288548213334441981188619802959673227106551592656133111342076333567558943524675394619690162851737781755177006311348043256871058327629376964300680193945119490045732416008975517429506777631810626006237156310546561829469611081685341481027246802121433480937361791551303752536719556608037076957850409666671050430976982841349757301058341879322594295819405888568820906587250645255348818913440829172688945397657951890388920282868711590423754048098250749154314480155341037902082115756999460600831300299195155288934722493615615364017545150150603942911941806357103671011437079129772646042313889687646143842240968369071388814540002544299584903217968792185380429763834605880166113314939125418372041448292962574723084137812541989305532300596941067369708636549157154744224022154932543794606064612413822052413425967137265797885457064014755181868032677436563041988107192098566386857090395980563136740948867204570966947973633117675608827670946594336432505647353615534084475194186121886929041029671996635350318109350639141358556296916792187533943202259105187508897422466406647930477332112323808361857446599896000138989496879673380131540904831438382157572963019740120594425978775552033198607276429114200522127096110646914810590064861245748997466190378391344578067908685346126709229890680656300689141010212583377084933541238729864632345334770035065290029285868554203047686939181676832381275298168611740477370000268708710364336876918501239377197506119342930464673599185437745681485083285252770042138057447264854223166157682870935401060008038363097578254352531628054648707587076331652556368420478616188675468762671949097328565002765223961885808203636083585252686002885144447251655528483113259038386897021937624962513204048858722364842318562838401283188685315440643930157357622364513746875439112988347418883272844787331635691852754125285731971002656390321224415628216059328564110718248325440157468389200485999001115278544166159867094844271121795162963636650284959723826421240871331307012995829284763881140346418248290072278981294791846944020312088235023633512508975609202765206550970017739728393116916819427446666972687474730563871073777132121080528617903103916480528978313414390853431292063065002811132256848841547215885906946099315182554258890272865979198661090418746208234532092978905729744424994515095730087159671993673998952222010468637306395421806955438659620448949141095830548882998273774025942205257324018515549692318476367617941905464382881780982990997715071816441558106663577518722020527814601410337161567787231724750763959497102620857846806160916015735198456886811477213544357713343293454527541609046642545573632984195094669653846336632652111324241338193405646349929765704879728455786869972074752291306136509969891130440418092896517828030890331322268409743243595916737309482344332746521778445054199410270659878541956117819362314687869092213156473967747822886443951003214776022965379164101639757276248740279829093483610934756573419820701209744937116742250130604657175963427307400900084914071326379946223852262085059322428511504099352028183006188922025964447302749374288889288137301122212434549244226754571347429790331389633867256746235287133111628328220605430747512163961705734081438228697131194712188467499462134801083082625256483686594129373359392036582945406361926490458153591593789840018895175701127417618279754168839339248307674336934773726262839964341403663178586029359519952292453378165590973401878934824855298309229870912307314027066850845376702748225510004827910685976962975395885014081409290095671483242307868003339256759391994110224165736620630424334358945820613096409888543580639446572188936608521375724866582311382145670302211803517767627757917594073930618142555627394401817527725875173992203006028193045996791354121259227102173381680068738636943804118933759767299959562217259683147119161998341458692617943856881379768250377945689034798448849078639866415332407762091952106051409678075433370168969778093094791966101268993324161554884881828891076639886386454289026248176692046924207321394152882041979654404643717356960832233202360324072306722104980252380953503795496660339471657165661302995600657256364613560991227357253954947771152520114041408012823139394884839136003568533113215672341259366560154063314646781932350633875216801402030758929952887513446922784230337403574807444253517626719881094855064975879551317792733826436229253346601638807235387944308211159132674061855829961487773480631156666245429966543228216615691608426593558312696290456276776883072864985360882566403874171772541701029799379659706745235860032668925281155001722144730113540753502085438164147148065420012610123965498090350919920322951432948261180035633984336883870430245685208679852593217733679020222705506753518562544111776669412392539459724308282951084583052619885678471172626094378387186880914283585183040404735177698130021333855694090081260161408940665794391519989937924934888365408459523724810580401952019876063898605486364713166166060522820928096594734510646894311435549704936861903598908491006286466136259003512895775697972789709667868379331448979506370083772664615488267153885845119433005428683186146561470272632615616930815035491706529524385039937080690717970021690934036179655592511996389327692608116598191095314577153706281717672120474955782386600528068008833993253937599386206168731831531747630263015532788648636981530927939904795236244865947998795215004175659084274085260416231595118415455415763308017532019598491590857774474824663419860308449683680546028846151853036924558131281856052474171934333898857520508842139207560161341475677602345869711094430488749349665079868843714861766503392434471741256375967011525493586880614093840790817081238202557984824669395283501164203751186752536216910427274367692633060595914701782764416047895952431431348732520079709792850660723744390606949377946058785622315591759271449497026752740246632664429486609852558870401887827092581520263185534698995388922464637307611419399042786606079247471456125686446156751856293304327016258162560026978211244282969918422047573222550064757176790959817637172258003263474875960093177601663886891802790695258615188016122435945192792055088346088364534160695295819583252052520975532387393958249731761148810684232706874418044250395329514475933540875804990122046408648004470711872252517526696185967293441126139965557044971923163399042774374994343058448400880394671685706508935312000957009308605797139495105923128754189025874873615428295409216545407112102867553227012714250477566527661017695306724577163286614772964255556391892558443279180786469312469546033273798040606321322802883068621667319769175180383712539245554540241208168222947607167109541097653003054553774962229535753048836338560995001376189657597380702707136302883544841039497423067176520912752847337844806548165301632334031368294009194830606099551546299363393455753313952333349200172667454475220036606325327730308025633116603949282880400605374046229448470348297054438440154109875584346337024645696606834135228658441279172592023327224745602200495735441962796416579701269689999145246168031454057798475755155029807202464188087593483343626937047465709189600326445745208766397250064872918814238726094560254605094124416845640934470041509914787207185855878501175362695954330248720376559530833269965296412802220947490821650255532637898659933583983136312876496974598814191367537595608334143401000978437106500910607664067299312886465599688661104982596726225615172508156149248039168436465702012017798226315339974359864808190823601656416767561780026489388884131966406325167772260098170279277104287031468507421918351025335401106918355290827506840024518574542403792244839855882257614501723509668958087500747414707207712783623016598026894176051901642031613077032472887741084458157111423283318980768146349808894998319761377294658258248837622913609403533366888553476793529601108127715901746879784178509488656216842245542495370327376323132255801246970973563576001229522599283108480321689341060694965948820004363026468967483043567149112061779898183191465304238240272551465305895513232225632450145537918165973569122591437477288998875845148828451642892871997314158442608953475614463768302388299732924928123976152962648353049863843747079946796361622230835381081261362682353666209271000639603774641626398230685679658659242068064110262230745936164141165595561592481621186227137244978796614707039257492577227962934807943177161434746198422736654591704583333914305056979211916164862006195234695886034118062125105252403868004289705420682293372673387521789324924426616581557678594859192374484680824985796467351122938057715491183604419440562685360027399402230731636149874306041028349607221643989301830119891890238611185536853050502749396836555150346245580749510919798465789408002964897762935819441397377978268978093412774446876848706752104749503611374208693630576854829258935177491370130008779808576999284078228225607753619929644985024362333740403528538121056090428154551074914570889463830823212157996465206919167447429170739509277059502359697791519392623931354336739948011206403364386268145335767369434075329865833627455641613910423559856321508413066267830908633851076918395955363990147939818746472359124492724027304940311874964324844914376913932567955782535917430290017975531819357554729296426484646531178855386784511512563851598554053961788562980566083812423773085686929676234038659721997339032918052630291130814078158156983418369698967599367300517988911393487220373655163414362327427032803020830367031645192664180593347841753716196856104666230518315268928175043947149209567542777975981171996503917758972254306994550669287338428662520481005207657972911443455762016898937943692405436278592561699867194049476616584918710171959269144503480183473300165771166009881276616641188718471526394695800231249531748805785747931986332988541561539306495703466055278107260696402100643400590129619330612611480607609686200400595901756327314988419665226348044865251443834698990690138402336603208657929937301391713285453146731791684455993849990261186923999965420134814804842590610658467100980315041785226858229960188807657756736036654603515639765406526762592610672388498191829364044948221339744807728575944325278196405527576507571778821053428343367694228043328112303707041929246977178677595849916356581782225494925129271079849524417349377341594752775039524532573096946183978612954263954946386421162025142127292695247454011392549675889968605753758097722080480050596306148568786216031451712411906119971287555270586074359751588414483379508876826336124271511518008530878011010372573512593210243935215933135109895770194701465590515735791419378364138375707618168119010493436424276400159665971662503625277407322477044478598086271727507302428735564952319681297455588562388763561663705477150116125225830346859719373716727238464829018484681261527160805112653962885605102355392721035588151265365767689401836449508307158618801848593788586325286428231095878662701176399376775505313450476515120482385669948569969270945155127174025558810757530846026658651188830206161076194384061820043466946302113187542403036818958447833657205603643889639013417675983324159397409774902120040166185290723753280371255597313421671972293665140005569328562449611103564884224231393501454548924213967374402389168251066447239207133056387291967036418147402804030925869198266905822648391184526417200713750000427315232087334562031364529954864580473637309805968032019518466923154197017833142495402969362170804700050322774842740002530957380242265955980503601700844691500137725153689864784421952061093133409816749290017768951452059073172733031444732403410012145983850733887198623260901029407250418467677361376768929536872385839707442454681910696971165086075940205917924761954212281357800709318018949114337710048614288504409621674366004474960461236820456728228407282532275277451464836861496503714411286373765845991532504984823880708602344988256589386359949376625350594496685066752081335772119071438944048804200263305329698675981458247780569594748266959535694631365992995951195548906180509970700389769591424419296930373692022219417514177315610451159805497489120862488875937675506749193750976249639643207637066065003679309975930105418654198873222752347541830342503552356463568347569953090217676857290496404834573483837977401378712825262956136487124189754270132481082600411768528536622503525566227698123760928273162354971588330707439746520811042930672523405583101916444163778002627558399020266029167731001470149188149448105545333623566794161123397797082756958113712159939292934017855877069180455186528560613111901665990895589156154276934521234714281069754891485883046080511621666155389209111052025765670155647725926522575295540927451761634619961809253894879036341773938068678760774792939456819079719055789139239569640776588365715284710385260012432238925091364300289563964053202355262448675669307994214711902065596198927159949672246858073171184326929675761477227353242564929112107087183262077884754711059731627673619350740069313742478635285563604306997045616249821551628610640660858943887428983683043905541651138469188902087135251930507787696038765031695421698919317247713442063616097600687717290292937057757036939048972851820750815765030521082896398385950635028439009887757134717570455762260419154413206177473930629978783066357829158014013489067682593049629311175279995722132957600415160587083568379450217543563099907917524362414706832917187821291488034420440901101584939603720942940354446766430495981714796197809973787505726356649048900941370588829006184654269646667337836350278893615003158101042971059703076189288078176999240963734066349577192842335249733316293015898077906742245840193699934423738892022399890432690619355408496478269281984472225749983608628350958298509883284892104728249004901666652341684204143210185474367784925919569365552936752430233243571240236686992610201782820465865149612259905912052175753683930585058138291748007855102651417901174530001801074098181441698815503131679701169635311416591190901244671340643183617232253145316813035684783373200910366567299921620800063631355708765821661924695007793154700458357407318282702609655408146737768234496253425066513009723886544941396448775822814602837117352148755852916381980939236710736219454688032281225995892918935536635635781775541003539044745190219990636443115477131982149948945861845988352247494592369995206505942802575679893300911834731386083493099636705379619112716228477145584666802716857224956871722722518558446047767259353989003151457680094272968558302026449123558906372432500062571385863724614278582338269606294884797113279890812989199236438503804728933578049928411495914597306781630424650330336721277246596101077313780213643479651889539857278281307572910647205459703970793766150966577268059789256664813341688281153024426435804662631046706103533374415321920691167476732081499290015635471513114504763378697060745373917127531225812626294797288424145772285950973864747921980640369870691349961051856158049209625124738396038005050463531926029761701919143016882448160988990024050984908902238136007393647398776340217435196722071175745277924598542386779224318567894233391951829536887283765445264342992730354418555300816183085047235070999109198757083968021390902546456207672136739191144783997499812585931032571947321877045322571171396579127671790710700916664657024925227457457697562643994721011568135154773878679902235290919459227219204815948981335014350446268659121206349431749448096548858167436086437357375940414113366688012042486580701632078239529311234216873678654604467626992321659818734413501021085117991245444523582922958275741176687884979850873961612414770227930617677094097075976463845324508599876003547153436493295447877530377642740437666110860853629358777239229280920150440397468071028719928197476040807079569226855650124869903294917765997715983781788632693734713730445948204260101491957575490438360547642484877163876794186071218197373329082705399785949196725753747113042814161937845426733033398890476328027897875271620512072249023954056406973672261267950370277648936223784070307931648968843898039446608409138623823657223019682358934583021271718723975991272367064021174139703162533149989158808673804286877711843846663071017231730552973155000257876107218942595699515833970562921984900708001883965358744620770269153885205197052282430647401942343301558742231287361878025798562992347963005920151183687572531879533398185745594347268969054037085621341081912223458120082008803680081640686896985505788141558442419269772633948276614973528473569690051052757542685962924243290186802322867500438228861220800198715883398490175676855245169016360689017221200729610661271221530030065085830514996410304699562691435621353549312577341010654679190347288260261574198131210666378754773561106921277318953011197742770395333346073493322158669821519425881328240019606923654109836154821236882075393011331587456148917316092355354717371372411257755861970218842951259753788936536442576016997635100773214799552065715707778224208830481872291940819942501732283032551235900583844435752873062770270484682928166555297412647906254951518646751789362561612896588637114938013881151981408698336411325655511979871658705821062969805307277125351531147886919714166717966463417855240009644409979597874324623304746973002214960646288635438360721458210476461755256318191363090007540088159025535610359009646596400745598343321633372078948468074205522770433624694903816941300775129608514902154071459865358980256596408797419798502438929534471043321294504314623801534839190995869746328879553613027286735947793471835725646397557677092345526611472971246486277575487643875409035999740333702581099731247343383348459925783653501938339539167318638278622049212740422483106291534117294296779514055771276776325875090699323500272173827702985502737654045148423501718906997932817085667756377023373707572821918249610859980155369044463782180688460772109360480546830592208050866616896492168284606119085962562691465036540818863084467790269035432071312766793119727724550797444634699463002196152616758911045531166541595664642656395686068420079948870834263470167770100930421620131396945836578777000929421449288625162356540316592142764836548953608548176847052197963792946133941734813973090736741473069439258979343605974689218311749162166761321583206786942718450665835878663730856075062011122627779524360051845022297766297215345270038761897869456968649157478594868461359515378485320053346479015837630159003337829725507204035707608378425961793621932879825199407058245611942633826262687360388220741932912860189710395521706914737160242211072885866030947150270555498778875748585838869306399352378682887634832230255855658244353082966143131001479255711725211578517380096958265507069975218185660221164323634620477275683741854538536665723879405605360185552404262572031581304811806570483351830207835876636785541294486254287089289792867266548411416538243254969129809214567735830454299328892170916539219782752639948090829742237300578426612549651111154464819395625854193979484836722611736697695754864866524407137283473589380334875315421911031555370982917380980817831976000641168784175450625871067697936398475194832233816499400442259133020134038010508859717341014111005824511555585546565990838981250866528234276138134020378609416690267821821856499476789784895857993261248652918904816633737600743192692704256082297097841719076463335393058917342983745600218521454425815394204380156600805180796877972890260643811148232401374630599433305946948981955366000502412116305264247004898295442400667592995819812413202275346477212167079195860200709984829489209384265158988289703316757112022368390246336899069678021212804085887864716379732386756414219855233632721599650156692310516336868377694953430006433226373780788473822288646388182823496197509532505456235421056193625165004093596390563724867858526208717518720126004723831332501562648923839358389773527555778595816669875763941016650717741605483113202168876221355572523536242961059417615537000134173549631035575444982256882431909345567780279889325401355705944541711613602544213759905443915490887602267352579033734511998453590512108028211394469675952480560801272895005660991143926293720542863257545210236427857822610822128826817639854696982794168391973177085691342348955356527206078221085269522100995536010939701246850127338289259148702623828812127789093873489854435457734120079750690182664449750871063138454574377528277269391796198660102120969633404573558431278893123687098374929992362121185951723105059083728528911335508951366564194871600775805705925801064558975393764061520025634388738009627551291740535000212396763818954616626355637775011251779613128000574874831785647625396116872925701275388933551080224906559084853782514271834441981035852912860697182329215576177740489180216392429560471183579548489984451661597406565829616854916600592455828770511650435891692885704314212827418690990963492523934159636862965273446883709189921779466856826966456520668940397750268907681272971794593494658860697960055045892671963241448359035955035506637797064812019229037117546084247555950879395666690733370757315896694897110552770528418636869079806141219697642911049874994690445647472291662629909072769709927812219185139066683676703302261475836802612577471823007167672730720637110460617523717092502140570550934757744936685778353978573564874328270085030367194462386565828114804103330453156592346978262885603127988302928499672600626809828239541967753693846877791922768779433436606856685222093705234501019614090100514433927342093856316590949506136485790171675531455491812522030352153610777155491446157397268250716436056396272978355774045815525443495896992118911321314494782368260621172241586102162403885109899207426278567392019085234023025742546921122354138658923684032948991674432386073700276197503807206109464913156203204357257988241703342133466986622981081887884194823746202513640201129221326484399612683195021134944031214455503417172008142345385120576102718734396922103575522872921587699189358304240781242043936241951308377821488165844965981696807809975075424485296469761030953184903910716638760844303448889290831565363689602179724633608182980822415661898958943877974011791389838185508857149015427589238152312010770458572795625319405271300950942641656506940055433528448644690721135275549242209787657449957209465641503368676461642700439333455062131596442743266881712864704162172723245180355982459580144903813777780942608589475788481823701619121914697606708634062695647732477616447971238484053042176611356905223101926163614384168856644296729872645580578497536079469195087759763945992353491441436254320644540271610347340914921689891451414938919751384029799332158236256037129815294486667326582754991148148061365589749645193082094002234301250854705175052789531900847261993934708209309885800889711023968975349432559761272838753096561601485047974533820370708908918251628885934926249803778943118135657147295868245619939063348319177282070969582133474370285276973161581795853130854391596692997910435837237394701551118523061452640654750957762262481515395060829405735769646208290397959976289972717898162812018922143885604955738804330853866651553439212654879979262480982923014294610829575160303571222286530763534236645317286729315968942160144811916637882172475350336517483430261662246676906582817479288650864894567890505047028062403484624634296241322271280754348863571919369592833596379005132988279100492526180678506338342973289782551756392359921183093600805967618870043429610106322241553892789760657972461061417645305408710087157404847347275673519375846541380600605153735670982582231012888607670105788514826652418375279324230127784031735012415027796945876295337681241030348349477830380560285871140727621422279950602940211536977348340128087302462514866520470926157546929364910525430954001096374963870373011950722479013095605999235958104717788851086594366070240382039995606915557621681109711408961019690841490567769293344151981623343530993117651058370353347163561178352550428543056092567470690763260197610064343355211066845797092514897642044161302465198421635034548290683782192618179499193992936595549573597325028880658009392133861071954377722472682444752399411497523298733405711847251955173259117208629438123296365686583477481688207767679338522136496762976456245095884560855151258331051976042050345933768866260548596958045310323536711817145097960704278766952890622055809227026743306094559748180572869889138839501295656011603679527106265925246230906939458092227602886785172247057284852345031665074409249166191217485225001277638721787446792365243502584005907426033724889230316810922344063329563973140592296247554524599357876157933267378865574518845470500017986197258574598612512532485658608422642816666420778063039327758481303229662214215319403961655314370810382009447755002265314325599494440967688313472821726106975324699510496545155153004694689857508586881747437813581737137500356012291335455913153627187051660724540147907909045968355547737501315605821492831032275762036970890410110853372183208359585399408496473899577956268060104097962547397451560408660591922047231202375806661625638057282382545710962302975900419872194120997584607200720494710943446199551990042185819535824753280702242914630631519666087773649233618239605815645698406423488917285294303335150292484743787968892732792824801922826425811965254305159369558217112620204107905064802254988857654499116296488136973175510742400961942338779251417165949730546312344690674840310715227302690724239354143054934800694934540989088566621256662521638210868563676591786339358758804368431596364367277214814339113878605766520516021353660535069151839203349605604525814177429065560713019355378501675600153215902818177207967780271599021950622229700655311733502821707192970985871243867592100617466963426260013712439207038596558463795950462456640219275038764568917861833370385003643355133290066696264557697406090299247970339079656518512018792538984055301322094285693524787848601021244091351590073372204872783613465019058270702476496423530959588554095246359836044065023153942464482786152237770991020224011798712433922499002798536247157286332951001396320763498109175169182537490150969932792316743055304368384448370515233554295078051603610639495194903941615868029376280699465283129058821077087315080214051416073818139679000558304431011140621321308237568113445520062969722021811382428237449080769821783363680717206095985637351914780061668485383645346808834231857131118994190083037565039437470651524594362011990268379037643522725438108945697429811130885873268434251911979076218481761786290614905820210552241382726561564744740482510296709747518240213840152283298347361170033683168211749114046424946320295182506916984057569846863769792167794788725226535722396058418703667160202057805338428059185638403413986120100823543468782763377971576159730096172316195830299332340069121173616064616889572270017888862654531634441805255629787793547295293044214530405848201124606962321857923087383713689463731060487920435253833217800142379827331291497711964856222274128467497836975574052969351450375448866167554624704982844233802230093830307246461757137766183598954643311734055268179176394890293580858611723838999872698745993854106196121111894787481675610411085214357671841250231325496672500409125479205173044953201653252228605519893302785375474362540219447936465802032936150858532192651371664327832063534652955618647229206051491967435977063289700838285402075451104091036950276949760368914111327215120738960834870083874290134337789046412585854386926093139589397896567871947254849550899230798049818992180666294095380427512282715897965102285575453089858929445967718333558439285579158946379761949228127526384172779895323194257246779588824085603521994615877071492311099229509023920304719122631751570674864265157667458449429514915183113366961057153064406728742255705924420017277275565435459668137821772492381111414997314444512811623751769654382859864302291078271421161589917488903126532974261064661200191839144484419787643289868378036440553723936510383621445319816314030820405471881164743762915150747423827089892662790851852456218405869486727751925407002763026603929700937409789298949004962750456368207416503458780319793687386591119146502588751149629042777945529234340643219449726027703900701096922148273600672431962712907593923263482460135523439901838410496022733058176688213482119296731827565819676201982249074386846933375474302769383359200949650846142081707486176314375662002950372019379310176885954756468149070362290944050047084878104722123102424667068014513428760814674715641459373619978960913758732153198470564458573881123584652357157080453604651708167883541660880486806149566927558673200767720565855510618851539412797358392001170853710661842072307069430746516980580093862085189830319238400236277753427546067755616250643856552031043463699288647380071275215339856002062177625896072531915107399302058524154859813743798940648641481095122173525044212965413881606516352997547076867824065262320889381745916762997468709093650943141317063256718127636182750554671709095753733744025940709645537394739098408601613202315988959272041665170676363340297905995892582379949485574683138978450263888048513376717665194999334511492345975938745334593259343361921572455809277074655918930368216467480761376352624277819093055785492359344387345779022331277120245591381514750804061153702800744754124452530153756927225534513245047128365010727975722467266033109240875881515873067613480278257868354805892888120896356490727126989748503332574901708302783876252244887801404172699080837125714624808360256092530424615833399010648849402470027986084980481718800268825948034904177644613735192689366148768518135235514555843800515060145899496069142404305005096174042586342741368289513659182853692587527400506370682988379543482034025761154052089263795079340806578595517143722979180269231290841624027888437959485531661747461853232328113760722230169661562279131580372958054692048520451232653768472335752288197877111537098789933739575644581737986795909351536982254371283343684993415926088945219671930104046959563314075764748895016956473389553051046430150715518816222687517773628837945889845085899715586991153585279058214934674001941939635336239213564673010820096461519571333617949954663049113048623227944312153704549287783514145569333264497031204188485684213891831812112630660511467207461684513542082306109513944880523845867343876850047521463925598895455535880323771979717546528981632218144007490427793606245021259652976544220292871566700433688287697291709462414298466070843730626596633197213492691441016975249953286554577313216283050040438566106708810914327858017430968563362326372558464441812670159767314845945581641804216015740779980383699528443623119556856121580574864138853292422093949784419091384313275226345762435014361590083314242330215157827638623609594862399911456820814646015239587849262029724250343983434019982743141033199964858296057072100049038606189299301766162394149046289406026126591578709977789678551202841454975631682842759859477274744780615277909763487159719831198124430884666662557079984174446557172891116634291469754904694926474441723236287098030570956910356321862604183809002112968597488934428687126717077062121044857702173015917323244129572059072173340419689463033354462357057902441680868974156776103001098285355516807677199415182712974953390041025498968736339549949977742851765357477692834862178202070426887624667221908539800866466643490334702972735557420700930763488208867983455625381675274407180470295166781743985001195265840200367958177105243051561136912193455275693804697464121488572339217179069995475254881185372581489681293964731019846351584800937041455920636450675076850471962517942010545456350615941787909172347411999249419512097528525647119922421159200528496828167441070656328837621249150957218485458139011198403281136839418786787740811367456000942788803469395931225721487788173786556854985298942347323374176371867685007143823047740106804041945898108644663135751191538857989012078143138618577543621709279204043243081023694990209716247650628539946235823375528011175002312365976615305105374693269505364642123393146937703949460581412338605716403710291525483397883930675528555433772859885712352318042993238379131204804402184913068438428954842514448593970265688070127110565483302940457756889605490300259228655343442793768813142706550331478857546959974988208504798227923767917218514211482581337514046230185641147338815966136063004104811951520006444673048811512019513844067945544399321045259010602052348296430484152042829074617669708447375114887408942217233609921985503107409824498576571539003609912841045625133995077103334330281895351053987898624007756698940995995648048950673967947341618560270242988784292682086469667834802507112644432342565817970274676594761187995162634420213526404911710317347525946403933479856824654449624551948684345273779824356310034546291319232741687397640437545590272537005294355327047989535751075817727927751821014284108368079031142164298324611886227009616344718393097433265094067575797470955787924625399072802556666350170377318807442783120765485051396126336614054656747603472660883519328983134620717579508521493447162167177810788782446542963452576947458167219790953924629307081656472645644391685623101174821636433078833430925560207307189247640359887406031135444988429266229836005752167894616180610187318732474335655941666139917761066257284581081127558975677515637430222637824029229855739654450878935232069215379615804741583434255918250746759789472393338833537178440561697354871435020517496574305275485727957065411563728275804708387454976847688280107509982398181422037414076530481213371699908202058632523275260197761071032932605586730924683657293774485968476246751974351416506459996131330474693076834487948867524269637477699019002779405713731229012156195751676686252553732713290030264250889659164082644669329053189074468248416067380610537408592936136795199168247670113902893185069390398671191508653364653002985369141323600497417501064664033653393529623951012150822355359349156654324921850476393191828799519339984279189212176562348678791191479550965416440263269112330215197126373537752033514704225366162180177924002678817805298659011469797662118480605469254577679211119873522490368815434435968896333308364000921184738941072520337145194783371544248250336939599011237848788484720594168865312215398123520767237996440314920705499728339516124792542130528729895977855816633629428025682293831056039555298036071050108525638852856607889429810713363658114856180330298738762759598664624956670000263364983089734921918797783247291145344465680625733921313312711344061461443804006778047120235439006215979728121416003008723855427158175766690430929115711375638124225931131031614639789975073389924944958446343655799848797905869065004152377009909723315325614520953966487014403904342323857922764627109266620261059176622681574736466391894208123942286015781041457659598778704383139358647382952484187354481390897292310400654318833874312466343550298071256194229564641578445062006835421212841272578683885093770202316349596148843443977008868985022080269963464961218635935198267768370142145212822458091841099266834665606171332012914049078764001745675296619192490840386065569807172304922910030125098008891172075459032721489666784902421746357098397238981075876068843296150015383798432061507038427385784262826752021388312048549484720914699678556007945682297274905638273575959738003927915775744153870639625572315585436807787535892961738506303986760257268563203451128558823095666669690263913978777902019365601106314840055714583701542125797199616855103986129228846954811926660370905624656417165945933063745937798966848864991877299634238742950919841552969413323955770999118172696519046743519737496080959199510926660115290793739192505547171738233600938272840303997071860594687634574189713322005999129125553633601819918749571099193716020052935109142155315144470633469415552587703053745967054386211190834773128099185787642699558885104074976034357505486553967026658301594818459148024391239948103030793935691671362973264219617328846656564907300546425760808045006538496287830339157499455197023258192391754527237204555721304468652906486539382860635259943175498747901728076264779021843099301642399375152129850143726869077565937924009264117817147239901441285379234560826196150561555659349429181576985145281218023475851227392031293381918549454195724451747985324986907063162921764132327374234433333312139548556143299031984790166196663952325949748621284496895990875851303754164771887092334832379057402851007258663621499702847778981579463057662066205403518076263638509807648050451547734195118766569991072655738106290828434678192865542238563549346492193103316978082225725030451555647923088365782913106432205791057209936383660801020237530309899868879448521758922037345114308095715248979342997180714979527518612299067279118312138314263479035005595015817581435615383421899810194425459931616902612174928601656797616621047080874635535978426986068947205009964300436859443281395869815025438995158046202066049287752994471855467065780659830182143879679423079318675820879797867622739584801615378865197825293860517342383465939802246547917447399147024121027362034948487281962572993173086638313410539684576647108199306275426000597539968531418413706869413042932013521383184686163506460327321387615711917961040526977136606723438685894230949399920917154091129056019532744391484970679784709133725916428315490388787907150125317994758502808429365557611792806184235318879500168626618505005169537868155785950706912455694731346446642584702584594164537570079108569230916724467848766989064904399221252971658033321953786526305403907754048505579817227343610158765165255209358342885927604965750314025007867970032699632182466179860585177092751459002685893417208094039928394188583421140949771193801720109538175986289295887193748970800720509109811300450456703719054200715658206516984710170282250870898185886294612331416718551763772914347010746118047961888039503536416957393233603496208461067306788055714670513810899234725415108847180365790672902343745751914880997548186294816072256192729108466700344647809174868004534014741709357350998360787319404730536445747841332021765273958571507076193745162207667520374390171019455898123578691909923775953353915096087142944297222746445928988497517274696263892704499734955236046137528243420162242210555795165712006348029816371695416106982240157725155069165230474203686060884857320142120381720329924140176041386789056221856727501068008245509412198519402095364858963932477027434728596019909236077604302248855590309350348162868608928696897151786447070520370182356501284304305211607138837019719374577459609232244758781322487053059105300055764545913395323037889484648170716752118174021486762930380044781386156755162637383743961907170231917691128185208614773931738463789739846669954802944623971492568445284837504433902566870522278227417232248961492620399795160514824860548196490467819224897474555434606344388634815327628843981908569063590140180992779707037178479177749505313981742899920961397481456781903483753809873403954433305284873767186651219093345947507538605027174242627647458993569559290222704332797446528575955707697052886260515087243912032442804343134433384901963070222651519371798759100809197150497316086133796750966341563750916611016184254855551809734725298052813408530616336669492523268758540497128758789124466918323453130934422886568413450328951831208904609918742130844721608272333129457004474038249936534008822136398394021881451966995482918234716687891609330658770744787347383795416154645734193896606740306244569366010104028272746962486709348406912679833406898799275201999266447494120400968584452158532640658540547688036691949147077255034774740962601252619343318317689543625248287170180953431067559889986497316568712579637292259951877577935431769962617281848319496696960451161507053544828676920254916992014517164911701977875570785627450610414068469667064755634596291779627656728233543596762110375880989206955496881045282209889871545905907084442841393595590411068740919874541032095803092337769056025823714724188872806039690940394158488397543291072102698919896859868081051346811148844033881498640158217263190287461116760986796797501134983322821441972430748704476670041404677771259935676734222288974749133558511218720308941134756366316439922816280472159463360538159525525872646526128325432584173551723400662469323939000706992339518413103065272672899495118934288290707959729161166728976018384879144572484450231767176837535366198531959730710735535105552237022831698225188118347343778730714425592142555976346924778728771767108906047288038090768539055231589242353236417454495745198545562191218527833288905775054026518214662965790086886401626713781205707424491061399358360973775907270848319049945916171248883263585988144208621694635174387018339781122859126443479967632275405722674147548129390850134669339181067189324895939593998174306394140909768080360492814357510544871834423505891789742851395148214152954660646863612994150692880929714716469161288710936004448000011656692835928964193737438470363163910125412059893350057039831256818825630415140844168568531277689715689139276908231506101398810313956489682757210485322530879465719907618844673370159236283545410073781545436970560050199671662754180745573615536037125278593059129623708620775992600792686703863445029626289744194312988301849716729744715367142063184502291460214614870218617299039132939966935469577449889055842044523282940069735085831999062077466422574247051148462583175214819969823657074216473962641357966801585670536162820224004829202511124469121844733126048922781078500597212866185495222878977999492228969235080009426978951557701785970708009498331833986491477987413368601051935787704243555755940271200980639610701365463580519523069249525234178984417097877245301303147723940894848080989244525990358987925106804269037233445423157767669734911192528665720662542599247878753279170274035691738498380804249741691662692164784847442925043448272171084794364804785155990887031668004992867957225006062838345481270300603688432067433503387683472682999535554939496300379419675362103002754685349391791010511585483189830271035522464406969048894591858366943195584216154180325992045929793537824596409906214758482340767191328938337691312928109527977643758444657873020986669321889091554906119987360949716330064044110753872025034265382498377485293709771372737828044383506615732809589231357847626693482443552326769097799728353204983074605929988263052505771768628158573548241947793844349423147637695905143867479783741910605965388928830263310817788256425172417881073846987633707725830639700427173830870954348585998023653753888459786663643155366499301987980372116670023330250546857339932547018358755131218444764700592791857402412513606467939043239906066090068595442535492817521689284228446636360293878523547829431187798122918903702855296182066807948315489972148945985523358440978762827506794699709570838714694342667340241097460827908673059716182480309735034816225377160214306391231454023167870168971973016506166312153286142338688506189809438568318741358048771011929249995173707374251439392952146269746943513076365850846559054235587613771528042403891543014048310881488759407707058694163569017970861621905139278900843579905056689081057041981846320576182486250754696580461000242589194930065181173017267714692511923792004923969038917953837081379482898413015471115920452454698983029853866121107429015675860471461574705278424187238523559082239471258970031160164185954414034423889636348435453960794353298462273816516851062742107617084130943566825147242052342160734723546738709426893413638372137114176934939239180815051673498279446377201416366262183298478897392016516679716146888105861076606512327017828048321305205728354091184458045170345917302553407537257552288578289899171645856889980508575732856151354886103034492839230832799960564875581367956355204749835368817845350787708434008274073014907378533147434947225504834780896114792995679437006833266829233008478786791930553661682997757841255004305923728315103415537698991155514007836119947335500815704155029467748791142328624948549703929385930367821894854317928260739413659733659569110726096900861365874149124684155562876494763852130959821389685858052617833325561838822674064324218275127239049054574167370770937546627479499353346990089961381236959668284575830287895899941007474936819144060997331903526748609344685513526314669930758184116118588798413349672475603562123452325696844051182650341707509181348461724489327623378465813730423567871131640115966394877752432476932419773375911497739253350457663098119205050348546939451475000243800103647507544795170116479040032875476261961383699800523237221560154891668607759356601789252919654570310844230397844194138155847325220985972131896365449408207403753201949268061697839181598522604183534122411119655795113101686587209250522698212424822561084650737158117296873231462983834206261533870831670480917116016431589799785047866220527189182906774080874296309798364506347161526851940415039803850909455681510962604471046123596313045346606757009324428579614899649930173104937708756044100875619865667036858590642063798488626598809743692163104748867171435736776990606690901430647336603272217373835201232441356199445853744470724025032707116294121345617665772529141670537906988090157876861350253146680254506597868807671701408097807883175815260560126350374413817721217411974341493358007790086985918449564629323736589337675663241681350924362371024579208293145476680604102864942197729661219683904206099001217593311480543383239654694073544192432583325764466218684211211684513811928553173657152428207364181052321083255865959067481305530684594969816293713356689249628656460509483981493608182780848492654699974540135977595055472707881067240806762035825847700833690964114599186655148975662310042000078981815218260746624962684402249026881316890434958315994498291117910834012574259428726446480256749050740318232329877600122018036502937645518823083463272206720540857218393658830084635599617530640278808718261558443142265005486235792014260878824301525380786248872019041994933215665463094069021397078231438393450932225547790833782290624204372009740417379174571501458865650886559267802887669977965097106644100087646231906530415740945772499693623764917505921962255203564657027204611617065110251934756552472403126982575220189071361718078417257977004505913324559186769947226769314715008413895142830512302681244438682330579354792540343023121996566110598871195234830558836992728070032722676210371175059609036418948240215763259533382309109310330652191799817357201663692897824457529758790697063578729100337537082904599071363666821268860147429014716689801259695592944301260683565095988536986038760006556958172602340087378744028239885632332739758750436561973354717632800882270264438558976490695667029352332282070422797439005955702733226976554602468243219026947744466827542562562254039041502461481612881290949438819450214357908024907137716528924529436193366730845452732116026903240455500651419412870531333664749175723349590306236909953393587700411589756658997202076066510825402281465092833124109371184038222478106069073901284524312233978183487106483047688304855995304048324390546374656531961081498632778086754837716643360770036763327482653358503736833434108142989551837030043885301584006371900420392115658419170264572098464565354527328231106926390698631948120952763641406165535049151263447272349836032028170677117471312229756141979905592181726030968223798360551132644368252397537714578507404530353622704492494058005724739147912840418999453080849052588467808085588359949694337614525630595679862258355462537396511138307049345588491920966346337281521969422202922582703818295144467291463933192445234869651132621188872116954099198386929662393346067855349733539512872502172122226920020282544939576809121809812448969202396238120239213104753479382546662804537015946548934622111856303467036905090679824538709711863645057301526595551167969504625451921162514603660050651395293570201593717724688584854150605907090485409575066727087023124900757899093317576964617176233859355030018983107307650375594723214105293165095422134226243378245235437992183091840860232291128643487341549749707615729289949080088262141814085920882475666157777688622965376420911717690594353858151388819441821024687317878294638156184795319953171678093832660748810555239100207568077044389418517709169445903596064237719205738921693415193969370571754737293218166196649161746308163978881409285233426574291078545569172750099142687732256092424465122490244564040838616523811285381788721793340487269840836075602836420447031223083391376578661747858880852339069921450643706593905321922652355905527122500050079876106419001270663546944398946269543738583360687863785048580877711748473661922015946002519038977664729305018771974152923554622230082405337034193904021608714705306628307020223507245628740413771542575719173976185051802597554626975757501577046307902192939017353410652216605660595304304403979671002274091754057826585423852232044204212902063109364348355543025180694326103657828884819144831160033329339035654893955986725720094512068459772055495076751301405374745339933877896506518302977178398091980463002946578132389077266268577901988900131121888066484537153928494435655290405913206601034273685538340822697691308440064985873674707920239780385534040022559228951097484770172620345069838203812737753997916614337080700476866054883815018320514632296671154618598959156356059784557796396018855305243018251109158086573075398538370955110263766004990270226823764097476809492096146738886611777026816074031585453580771347211992206154849942363919312661977666732478077974730216649674489337309457860261342054587846931181414231076135311294521773261301201928628595101703138831572460947077884710431415515078705106002239935820548739143490116765461133046718824409914590981529793934225953160050129351955460264994691149807448789964842728961960099890340639981590617273377587630800069492869658018040904843766800011022973802070273123879509169464666893981686100836222751682633464726990951568320380021191379332110246428843339092598554469912290729326262237799968191123888739342145057308480753503852237218497996598666556224581593985087223296805993059355230745327811283811030677120466737502562695296124277069819002370258162849397955104144895387762899644435785154926958188361511642898268339027096962776133427937180263247277052623738816639600964734703898434129176369504210162734988424874445424132823308784479809197833692195968700163331401462965379843759667891337990382004633608322035833987018680865608396942613927240792767625643485379596317619532234825471200175056677613643510985453797813432840599749728335337367969630045169389384082160713564616131469194022254537493021511657354082133819315498852579748748041424682283364755265878387605405899885659288783370681682202986603728188294319897170271371634071313419113987599623767079605279402820378997120455307809951205942483893815305530982127496545146845111385984465058378662069810208531890739217289370178055174184875851044230413860792634365525509957984971585505955120750739977091220303687992075358969601803622847104584654155232381591790685015478437524672983711472402937156755710752940641674911172350192361267822788165976528762264303520662354899792713704614642806135469599047857330119061194430085327845205606816983816992391237167936432437003667533428699506297096427676034670590820620833414943548106775402363522832777657313244273140645834970058290190391680126762249690042953714962904563541198880122855561189367375448994706871183438861679863829102021388300845279883972792518436544660735413439170296248643166269599374054571809338603964244736996264758591189284960810978524711520083425252035896022944305189443947553739471444550632889129682184094501132751719927810752736540651831510528421017713321001409499919741107737242762763870297446169198690424372944679196874059800198037455806844483582690087272414122807695482198361541914892901229827493432409579280885124425688183271605406408578822663660515332235764629500375142032226566093384719017959471699792492705310749779868983343784294726571994681294881378843556217396655040679941360285863134989396942485221337011202055910565990126768770082097556781928805766463986634357149329256477547148749931585885078192730629269968426941179157457586906648739273416647833162543387679531548913202095874074229163422056118174259751948672726845261314984758542992313453755136426928930244557567553909186862311215034978070643180787902192705837748377102060327270977031249269908805261003235999748277540782573545834169793542924745242017077505273446558452550097940189773556629844467570728085639729022882328669212152958476862871444740770122879263728541567861212965332631612745348802698044733931204964712436786180556528331413150221203755239786300666693434237805805167345536723726050375003350449897038261526121061642682878361431420872934561485652597663153108074627770794769669917594271405807418773739743222033818301365560527488918200115224134077213197694741920681776824684138576108772035920766018099452560386051478078508421382726710220755286446340759095147003992874369428373818815193662242841821146599462898470830291515906789419942339745610644493810574450686306508412834527743763946999965130766312464603281832688460223644266080478717298280785982873485888426123094173964055846805363152016054703559737379468819308041566789828584733423524223082114534013918401597038345009708322184921972665034578492616400281006815071206561262767878695786304652927023726418827086639889312857732814597593023168858902358815767290980110848735050200381127600868878896470839522804061562877628311781597522186531092826914540700091729290877236464812607279462998314969270295026188791961604304728919524448066731539707791429783257060293241456943002481379560868837999795430656943351893014966576604753795897013136904848264886527746093801050952855930186487424494477196471811817823679006091328387506905008872287950387559534115174685035325771874902324248200636977720064740537844807548676170805596698343834682278579684428061778300234651104405462906679343967053699984924425222019613023249641992080825495728726456615758002473343054275854390458183173899550003483124750120384996774083232439202738368017446773491377337653844552046156391525132543439291789685458724146892481739181185012439807787065290593092395277042317013696142486211817749844647808127289946894464956927062290677519179867896637829581990037734847105063348121185338619194156047480588743274847709476304475614927287329289477971984765250857160176716584000076643226110013039425338875479906921853146998277552604411071297352921020203883985984700965653275659962771269982063331349206240495002050171649259045145810053558062639969776609822732983394351604207187405903333729466686553769011435435991750708581448895850400401606499216385227196913760459679391974213024267514195813272385432255570778562162499843466028688166007327418154478666472702163915756182120822151531657524592928059601339348026849747615810493758103507296561580859169638727625400817953721812479169706656662729088205255740547823646873802655708834294077689119423778453056172874997115643626336285330830943398473165063528674150134290468844439974578839042765833423747582653897677143691769717256663277455720880787035208889591690271282189392272063993052722822984544295633895783744907007709140666186765017698440044380557800436328653948586150166300263524624564079831026626540649176728349703880692223432134662490015915639804570218704682783103597944168792747795456444039593929728677399937145842382815656004699256465196796848299737756641582254197806110633006812487977153308617784105823018336609282693825351427099012114637320298596540355158086817886263810553515084988741910262177491657453191763250791291697475210918125136280474573130275044845394003670746818359355612234516676220008116973541537486958959980786023256042463614901554437246598925887730139660076350174690749042538694406469222733646847468146452619814544642817060051045835260407315268100581054682647334808108708595603478258407950476838219796764141242686561850822995644961116071437594441425312055019801692686732773858874217382859278824279535588107889624696000838642274901892197421665846160700509534154227570445279544960334883502915885581259168597235362756190115394712027526061591802693979640321330619795129460146823913117035148319447773614385804349859733859963638912060799407484460883497605444602330333892899874739590815199635580063397570260804779384325227930367956619858668011105005960282715536246308277150296831333344485678739684716288783630632209004287026388906499305358891027415738644709776938916041320240589816164138166013217476015700476610873899889153624326255567013945786010464662794249397166938154199627837547471865195350269783941965911962882976972652661940842335984715464178621291242038668778515154357555647776563625016441999363735456621472565304803892854674054614636161157377161373579444984047210260184494855087573127068102593157501294844257300186167897778826341364397438011517308715716620547039737760150078509688969625068271530801547246576443637803594075338972255687901496340524174028878749788748534370827493790805473788655672037103064589399906317171990350972587126461951202999410747175774463822273224561975132974576082874197357835599798864323604723212273511668180310966729160099586213735599660836792552417825298452004782719084519874233332964800613253930049760843313586836200662988462131063229583122703337689338629152334921224957620178815434585432888256949694155957480489795835687808943903845361010504532575339482820160004500196769335104828234329301313915973479132299003682268804836457896449811451498115596626865675774573580060391735230569496525010317439500774903575706942679894243195231569686755995696102385419544473998595911496015911677679828191132153750447081893504442682919671767003893669077242605497561108683660611674821070096597867446376766659811113755498785790544951098550904570314518011756242566642998544594192565876484831611590287655735234535389467659123897638566502458949913836988928481731582163632428576639698497561450083056291800350265730053177818363474744304724900414233706219540947583420332919026956411481248262248892948876938729662869394989141024098797498622000198118524044015841520368890513297588406169124613974278641175393758903920428955110897717989864982799378512688293684487435745218410475613709362050930722936366304372669360133683034869242376447476990367434037378239838136592983210558743194752069974564935037426020617695715753039722677924512909454319705252879542177436343342025074394160713973762045015962444675362470135808263578329952749158589147230661732724659269221904125203755408614515734284831750837955905137795602483956450245168212496514434607500787448566334483344421998301310507956957546680531662610490997306773894219915002471345289209662706912667597710913268690786471171919909349421229802200012583548946697748400939547616338046790253250836521700777815987724466534463872686061444047746055891869559463597136408277904506136631567763000039179010868444064093946170504097979351902855930212871666581488651134474006397675687027953426125238552800963888946198148221085545436494041680213771089733566938956071655696647445952697890260628210923741549916637718786493560852874238195018412943587114161278140723711306535602041220225379511233488256420821200664951700408873554204219357362674713745673233879507521292028178732198402512526471726999926531229861674025827747088915110268041713919055330769578937729217735384186681579026978158047318570418670097256832530893459250906598248535908037130119631798981821218309520314842624971109420349423027357854098033122538822112463332707233938515000830954803932869173750382252766749685932207626677161786782068183137474524784588448344590244792039762589845816833652315980251937415944353513283457396393191915964952596158827518400146131412916509452699424032763598288147268553994035695584630167579848409838008650617829856107401148341042558283180374287431798495137663174847155731318720444544287269141683804303183292784082740086049034002424212208429536868978048411177942736039153723111255145569474003159425215647011856392923429675697625411676077115197149348209037144024609420000425250539223453864291600165980505791446851131885253453445304100422373704768339389639112269300290663633341051681221146508101155883998545297308419989822619907253120040360665277873183190765014053304087482901213394739370793848665062047769913819941190319025302993005610562524319808475809798853049617245559771648518677504907621795378162018789375342104302831822813773598759437713160367520138078307119292832942328358673115660416861741657950654197548924839024133519741248920735262958806372704240159523598098847958572006106928396895659617354344599159950680703728624607854610518393658170364068060963105120547158430100767943472046802993346580011662403808884910925024218162142472917714757903960530458588651671478952494402075250285694730320313232156836720246340451684079640320253080000021868466494347333671524385859714915838459449968718595851475897888950642141575720463492496703033034822148480497167804100785882933605300120526972100347484593563899662926698265760410639947848171415533940716863280903192221846070855441556623558547066490391696005275786053798671774813078264248635853667808821215349672379074463569459356432173569412599781313126284109195145475230786757480860150071833686801690176229895005415688074365302940432594601317575189898751351847002665345052492728431025658715669183892011142736898157334775772181176294338196525682478747954674290706175160721657689034834885904957030758471659242407239635876217521291227982807766134278625385382770518183553992191259154130967012112819699852298645168934128685957015604387196154243756735705991035082344503820141263231516958169692821955272852818548572020764932517436669766332977512530503802623977453043402418961562478933098661464198308016803771307755342419390388428590955871211797666851012847382190869165081926851368194011747103863451012847497987502518084410268726734939503295924383072084511889431062498927480730597913174976204065208531528630731460008857834088655448999145026489517436335109341793452466677526308300845810485490614536524129433239947531237184335351130448252869868056181956020161545572383844234421060128911312666661904655566490005689784267037289613847343960851429270981029279058544539156269979703723620430169911973077973454548283984615106665207215744435781739345368788078247500700829411801931064582829748683451645847624385447679693897267668163168267694414097116784430624663818976520135438446303072902260455141961763221785687653258033631492255218892965129523550508048463364582726361067641971588293669344381018537765903038065522695802587997260969926109827877209538071410471539517758089310014244156133004189523263913176325173315418428123422248849559994128931798619285288966132082779266319889398041645266114865889235795270610204533382643778758924944707211426161690773946917615790847682371050587104026691071666993965912825258151982845251471389796829687690110833264954649196344238105356463451132477992315686019135160491787652739452488151677320668228438881771587399632870983609231450928679408075106351808115547169221792628559375668058188446046137845681287153652043800547108132760945935227228606124752770880968619860577895676768680931662013691660558287264162963088331578781758190522474756523883350437761749157524269992506569158005006263498299613429663277271848700434546079127131924009599255993031842680477723603081021203820869106649900248324423401872339769431265725621264472579086853743969056695270463896856230218831563096963277572314356426003473094791052477695840721688832842162147567055954448179986204229485391710285692252700087658645339297663703730178332653668584024926064740567360831342345771860984339649439063124654519369410169015111939027682349570555957038717007036925942504027928666699231234059481644210553703278955287118518062976500643849743435022072076389230407074588107656278332185496693656690320115072226671041920359492219721348991870569196158489725886844337804586144260407026584843945704630168609783346077536517924391895525083525015949391049381117628946741538157867770711872725649517465947840839151613365248958440112528232350905754947015777402778316861066695885073863338645478733318717777868389623676789967388245500166654493590167633582993368410505399340963220985455856363151377525057896022941647376876882282821847517212816780797961631551951357924437344310055296847874565018243230901672284943900795448970190363045766556225335847552726881312734855909878236606597633180582111331614340625087891483439630022427585231374673253472220601614886374661269705559675837759478196466616729554347282250486272207548090830035349922482573806850532729775270518245049272918683058009928661029948188437163165829936900621614770260775137111427937756353814580535567925954251547889173877585273267038120472988879333567304684116503452074874757407313807348173049897212136599499195107204081505005635071960549622374990316481603044415702631249453268850053743079919965134848521426069058962977786585156903112062646957398126605041991261080449032425437982309697574433142276721207466162625772601529936662628044933207406408378859353234955888554333242567587951624637349378662308992191125595469376563102181620444550460422240781523179308367131134857701900458883341154002898887735858187263488754339074211558627204782779786821052582264972356408204229481086930341270794565181533748573967522482633063081807105778694904912089702139783574572233941201046824125868927860322319319877114867563747870449566141009732064669192857104947239194567152604535141934938919191335103479883630460356623441668453103795628501023785346452270907204963914806939432770930162516542755582330927282768413783909844968545181101839176581987864128513354065809700965290679757413139242193692033869477968518673468455956567639356888604649179974842079353442773353387767556079246376280075718439455371214476103817676866975287383733528941145414707446690178886748867860617547947243781388524948565602885825632488103369185365569870048365480184051119050297936946931139892904188634340374471252042391065415156674162247232440295761491478877041013339889678197894696881865487910635139664120266925893751492415538375086986729975476885940367472161907725181316272803402806695300043513015600047042405418678277091004595740572892267114292599382010588563124353318282794330783141909387012283739345864259424573091599938210427600402244302467195876896168420265189433221810757288620039178107853173898629052256505073958246873257263302879510213994775571173529348846099495202484733089416332312800137660715022666903363320156356463937394317356542252465302506492005759063386154261580850559887111982890945571262854502501732625356788620854764235171169486394228836794166645538698820669833766121932591882289671805805504743097089219599511517090232809784616357990717217260279677093744525206100177036003927539732474084668282715278280229117558386594913090743176050136939561217674635899362635313671976339040400942087370864813279272133119975501037665970002937153851531002095072384879970949151817646105606332367056847301724016860126796183918564490106799919776745980392916702155635208278878481047487397649188810580744096984143347313504747345369343388429039930064781701435497440452270993077478023342289481970767059801331506995131152369747325911325260523227523521165998586303567862887885777462947617972468815307664734875560883388221581172019322797096522769233969626018404069796982129664046008700608282949308432321044838973439163325674203754778210411488415966842738381694015979038145835671301312057284836530024745461193682091322464144879537001030420772703209379797393148122564769960152476462563452985087987372179981951200542283598555524289710174844755171057241625342213451146611500678424553413058013659887356321567972321072439279583416173247859497483518420023637106529312042378427931246261058285252592979686312033321259079047093435549899370387054203699546743206023228472218192107662190356687698873906887960236666182019288221463679716437153948861588822081904406831649178125609650934343876183610721983120881419330977790036883317978155298188932780987791729141198012367358224479061447900333440123902584275930759800320133688885047942395242447560347049765926518707852471709370504545567856498882007990621297393849828609732481279186864939733669483944267763600399583487894698657206745953667006421363441609069303927791773518498688750496463505023962135061197586158170448241520698160780483105445753845377460805106462037564015418926127542288575658861835675805079710566976641434070161336181725068406955444054977495577916333686762909255908478332828644018756113098509293057292353902710621384594072165056139086016564033515049958872575098058930911957077695662178715823559685218509423161729195319939788977004854020396322825894150978993035969415051104422654655213522288118572557524077240277969315785461200464849655909873920786248012065100964397546170824719237339707345967824704472104148623853590098933699104698952712653486735600217933506541332649907053858251834878283713638545221810671019069498207224761829684561058778210383982496169877579704201456733727301568230286513625296123637015292929340019953493179209606248023722124173873777875515371133465913703321551066787864635412923579347672611139948439230166855519148415885769420088714086923137433247464322336777928999525233101415675567707065139761799061290203891677385298234632915356775697632648207205383999398569229566772446386821899037803391349834038516636041522297851194826806256851845382493656043478833421249521356985027788832458568108167446346018341312770201646248964819433189948564695748245338419124437624803957752711998384112362166880468524714413693888870020983708663279854399549027733672728323062844468724302914868214767301131321233847365926454579528389393467957534532243827490397237071440613629795674144628094604212638001345117600606146523631772940323414201631170701156572091772168933426080456534982972174052244337415984107634480488402821007029549463622589255133760957066755960384526667740654617218582423367708951355061384065112324640674382991953879407132176687185324391915080924166846319172211110145172209021266420264620429529967289089353165173269547298546198485603810850023948111432984574626432533341292318707080452864740614407849858930272863180049614224586850866399277308377039401595607340193960554426235094364919537139059072980492746538641990640845377953608449576287872871627202824256460215205140883846555339201744424861027847735082857077167320883108342948082396804300774490570270715963408125013144962301764403481668167276767032306547512058161014683890214407050924878177576967754471124497996871940498010836984983909805900219336564215639324701956362707618651955229058657506807703904475908940883392494713650774096146363821848267755173011174994064038339341909780608299017820040885756063682921432186240995108334361977160314975442581026123840026854845265731652103121626839904641184375334954972709419453840759410525726097753190283763266968318887929033774586648521584859205371021188460825551568443757459752943368780435820357414120154234748084859410591800799020262562267888736720589546262360672884529418397555631170195281985858448243926816660927079609596016567565031299276614312061117894396931979665945691114055750722862197545457938498794050701437443187811182960007065547779812494503939411695297009982310455849266303954771596994981476172990611940241304297848088766787292894728815584528884630723274264590906263506797860472353607330966148926896217758083007696527860024331224911801261179538897312640768254363644479204225199013763303707524538122480063320581845376110187232298995784466486570409197954167845600951991204440569276841321332600540294672540569216230426277137812981822647194274485839564400113387952187860537745956404330285573745752737680643506719409138526626328632314565894274647695153563075071615546135799579231814984517138558193706404142082372973348878819526045477729227564360984634637730760395224411200718438775379855413727909474486155095799611129828227573967721402359990906711730872206722625181683342258735006313193307347502688901017043916456142857638783176899379616596762690172410403932871854870325921700595951640547353528793077928096835137553075485129951433019334112285398200391209191244655068315332358657432898022602102989680243098445328779626035206848992354815353778559448634522024599315384727391499117925572686415958537505531841534738515572626169364073518256231997775779722420114937677701739220465533384220401843235070686896216348333811224476142403678996262694393301340800126029346453773106948248642405044111959379165752017349514816613270385762612906677948314358061971603044105393897536253136522679179079319424254653591796519822458999107686907153470007034688107960976444583258962963650365209997081972853200639385695856699078079077422381935384975206149480827353031976562207425118189494898809291217577849050145568635282734883302761783707525700949950211332105192778859454966426581718592846947824008493395079676300800256088024461005278740212300710496255867723229856322155846176744686208131773420457803474570513184509584172395639157792384459158672762836085524791652061883991625776834902804763850715440580011263851750174140178696209566800088848097612233281939799196852809442400500634268769625850862248919895864429348309269829220003699073425527989812375307871287025545645135232498294006749120416385788079518086372855718916303002094638635579472405233133853530074881888861532847699937822310157737769066583169208459514884271621728637350329353268998545909868543919845830480580307331001777648772005067418843873165235638814966479916537831947092224617523361250744867310395205028054291124676430712998340247027932670513393477612047873066550371248566981857696621471982818920148271751854824307822129920769970491594171164505853702082801841807727285071514361300010722448682649663331675114549367265382739011947909342334240312541438794762876952912712048806091790280378751820279551505012063138782817579861989800728327305659868198739950657680949442875700028573132006038570271463542984328147855207255079439566831073544189925171080337679917165212718962494596035640129155417613567813295321114672536827476619984229956040779723536206827764194553689196319618623649788249582384678050720461043919185984157003792403055016523903603207502314377930624539767518572191999647014564716739597365001635712457479245928501239954311704023914997415802400392234092587102242889304153146221504142074287314849930360548769508089469825959098970001572745850763945677613976995169007616930026725515372456795394399120559824479744004042880212165450360653342172955351402797244350127068787034343694480162766442948284419061413853171338798775456097666784027340804557097422656482846170988172272251009082825195252707783826388476613353232917092866263345748261370493788909062316884650209346817740298952671159179177005392408668325517379059226365187079090720121917501303280350190590656637555098794991881016123714276961007395134637130836048355495910172897276125616585175441285809102413224140051794932870698587229855287403159556512262340459286652727507163139961741587295126693748902616610746274716594222264981523714300466240734337413286231850725559463425184234722952606345569212645537351155858824827535156339674627689209574059449187329032645043578686685549863659448790117189025456750502382028214789158142922976392863981084245277633409502007313919884289402335091661892117487213870538718263788236793808099235960799161706350200203184463694528324511243957842951846983994020204180937731210005847636167661542638320351200573522198038203559580830978062955889564286264204243429735128263394645798241132068155268297925645306616476096476528235555541846712534133156032041503864753771367566022261914208479320764161743709700095091007586829028313833702695044924908273357140823411181491242864822080845042298482011759211114616406081329546107297776847473675569483951349488112926766444418534261900153954523111698224114608148196109602694384273434506530921230725634359543682991720289859632074592115256670626543293141814576908567721991368423249147834265703696668131624152946549079321929397913785395940622554381212677970987269767964173559407722936204292690563900039589427781094670373409897789536537830425382418787589444997785757007843379602327047447355718084729360440355509400080303225557611204728254396702216194780407428529319796480441187609165147436340061676831259577512758977892492974205129727937662493018206717730070717942229911920568264700657860768259895408903839382103968895579053184690623102360722116630857899700980832223103655402562421158596788955882703670482199133193729258332788455706993928461506318776828914550815338858334376029745956722902548490892437341558566912919762524052101699220753908414937976710685461615429113686398056429627410110250108804444926316414622488339163555424534761174133033996429768056103631760596092790793794591268869844044087772731070144146486084235707418160678156645117962092496089288662763722697972221778039386016262369935144344313201002938042409761636227806409927517115759969752835447192746569726018279206224368462957351739073508730548652558390825092334491075868858766155115566864274139344678318910896481275935195517238421812920508698224315721089787669698989745278023868801461704233934343645409982286853561157216141008348072794217702995887257637932762238956090388590567397205679833068606215666126795791563558914853385185563855195800462910061895420758552905109748359036654181182783338392974610110782493566540962973976366609256733386469866908805036043398630223264161149500220095120509659657232487533754640130329686795884704589195492607274431111301442188856673583115607843163170741123197864370401635835012816925053040023754452557100664282232449114773660394302713013942015198791069907205584348521806191298938590039287510778387286901223617722557574450920479377836130981334350158086937713621090307360255807203095777598048607885456241067320820180028515369909026566016460549535871645054388870417968633456089864990652987744606917123403848658709042481696500181001773376779887187705424416200805167003448349689206504025727318505702408741169725251573972181480253088633655255938348890554349603549589623477225757982289547932038225135799743953114583483568668532454863532852953807811422365136267278115628104316322249039973254762361365795155678124712525295626231148324254340579950638807031978207307634623168260150985576891309839633911079205975397586378135126737006797031376027092811028593767438911020221277970400152607202963438258822990003507348432729124843248522953748671851663289207438792558179108173888583187234828569027920922468505794262668079814191416088073085207191711275005608860506130997760012492443849429502181133545270192844755170782062690527012201745483536075430995757221433294477055528040209623107831816357037914509821314549944195104929974669655377237600222048443738055558930514070044902422988589092136229472688089250009516349049405755839933824788380340572449527623854466716051683843651603236427786237736733354499331922776697218588244469165564944774369838808639076202430021114598600038294330111662723971266845162534321492266463061125116411558452783115629463438480910911572231133393725504691338183655451341347170180421753941469451736817319662711499883533416933254365458661819432265261999505754406614259938041438695747369954455527983795643515831675551328476677506934936447499535537867625567040347851396272693960353675408110540600759140582769865977390045196558863709873103936570169426405056083434713317218420770676087179081998805619312496976786839090657917136026747802808336135782705870136750330408578990866367742450491249554770608331043561569631587145042822865558955349677218756071860602774908817308593991418233951800578290869768628368088785028507443647197311650858200672267707881922663513057498054502515433660448214695282341750632857897292250846324368861914684433876163930597052159055877566906080562001587220713259059527887865261021925811483060218748793079845483918922659158397761079049303309171741593856446922547578320120495300548729769245372305201959291859552015417398509104608552201122294329548306606414807247614796781998585850185496799609577144946728176760201011030008162917576483011128037349438768782545347927995583858314131935633231025645926952112474881759474401312143670823873647412248074560122393192239955986838195749592042128379212107081177074358003372931044686979054461798113347667701479099510123256487011780774204200936586243027191845079258855176651459036028258580333487853282355255840369712495262677902364517702426620657897659032034643676961352990409391665828978376276353644249860903788857655460095867779884469416646107680139799026014734721360507489666665115900883630313001073493513326727774406962054654997386643615812077572458611336419550013740622890115598645702343063242546377441737408777722062656878407363057998292419190517707149675703632038210475124409834242574271876892208520415545643963801860847183424050375442963891244052025004051845905368653406366728237651731441144844554389880595452698566009451450371270983230795399684662585641992838325999964108098049879349086255204550054664697803765016441249919046797112708787912953402833049309188927817229757702974315649961174410691707326791451151494852490588947690094393377170937797349535812193833602095273157582807691798601862024729050331970772013263441748656130767024666636545920488603528113838559424621068010867191244519353270131190078125040009624883332155759119514448253296639244033589292059990358648794507945668920040578004429107632375904977762783251220882775972398063735505359922103232946669625961447219492817087200246740019555685286372058000027677089323630027686196421606492666654313696154463079314982676401079148726638831756065812341458780089612149928981641538634618257080006566258468460179929072403289303372485684503406352034368974416608304659132448271141599705171234117642986909556749993870416796612402678276159637341897516085686229857738250804209248267790312636025532417081946437447289588409429195559740394830701674123328325272926630465012176769654517564947188448523853834333331259797857854609822329586136837542042869447907737692209908343204546135924048470201504973449109876845483860935620366412362523836016449801639007467335882842362415223825336361399404822447571459742311771916743931940769407841454707624935438632930215056227696766577145967157174570239779183681289146626352209343859439272748744891098231264746907111723728071724639641968818881756394828368266043046710615629639935199046003360137743274019847521976825295885747489712898718249954187504775426836965797367659203128295313858608134856981942605203313908658336107339022534783637869582941469814454290423837670372875074417647257509564175501583572461703344951813313307563243428695198376213445686910629579145663927129678030450324874194046644935445132322432149825231509267757835919902494180042635607194077063963486867928297080697897680626584890990940517885045773293302825035661956003781294864188935425552038316809205779458446239440764375375266218583734570814775369144879425368699609004744322508612061792414839032373774406450259115711674624799383668223886433526512310184818544259545970079560721677639096622370372937829136538961609213920846173091990353320179740260524181700220990308216779192735311104340557288501571928889462762235490174919099622143941976213460217087347166214082071053069688916892628168370299347359040936336801922950377590164332849684166763207366961924925640603638344141140060966076796348916377082241986772742274914714231079739744505498339658258331296265016699435029977134166953170176777920520052819020908159335415312632410742416501658066393840830496486537105755773588935135749544316833865852850519446649800703286353578013375756167517238590739919070795671802039941086180033096674636239711368354525410264538329079150603188909988975621995257180917323593860286335067102120015539596852313141621251155758493878849352467946291272418110466590709240218465181593698162506717803482113639716583654554865190730312014726659946188308146001988857052264696195317288522753653597250622515589683498723041184956921320631590253753773515544436228821242860806502368343347833983132377105900533062096559787801777495415777441852817946901176310607291881561691451712441328846057385681947145492273139146889557054715923057941807770469924560039314152989817751579900905993404744483957956972126007506552837958577662996026052735421641025800546343390928053626082715739123521972851348687218407097865891040933175452778285148224374859561868628779873142460319289264638958304866009015184784216433736634793643558321254831426908942676212306106921892792664351243866838343105488078553785140530593244817155323306245617119269938642332582607267112113147820407743251996695173505253779210239950779058198807202344404193774754129424844632375356276131655477143339572055147374895583187231246079016545521530296508698984499226655624966071969981738642936296608234947884110048808694812923279487708893944423347455377125098000319691827115097677566881194605155703160719236654832533263649672351142890509413220978481778811500516207582379395136189167982498474249370286902512845199990319810348827271745010084280724598479778544396876325579315079457240583813186405996872470355158097066631099066898933202126807013300048743681363170998531645474948877331203218442478061247137212101407424457284939915851222073832905681719843162371170494615721135887809184571919913594832737328554688375639758091754683694366063360170569356515518354209498816901719941753342034012049292150207424417828057788778708512276685433812060226999865746993201282841213470633297308051022241444096282464108598595952369143262422493272001123635829006321186062526227550164787463078998334157619927553109700385137183997910198968293163165113030518294954802861789085087464020593254373738283620438771391718532242116519115961307689566108353223755449131229403806562256792497521444709934642988287945598336515462439711505874329486177600013291291699776117384421700591178322249546070604634688253863514250255480227902381167162763762747477208892972765724955410388797865841504890038236306054678522451016010410750609768012090716033733718886772559562375874744817276903884429779071264896822016037451736193373515606592220807889224459197430264763979008228686053011035658506696663252471959122328080170901665052469243989999470554538820281476391480033613578547074760138329128209197642195179919741686364249227651875898651665667846764362507485836445737723644769180706522512639624466438669756021407765594240953427522020346951538784036480887601812333522569975898855394284130353770483641580386053392736352967159690661680867087054775988880365358088249114586094700364078421531203400544045975687984049653715495909675226745418836018782174654797500636747065223741060632788601621161344576507202517778980699539018217298347807454508448104170509512155712888479654362567330274140278712900689341957788648565167554943726224797892232415244638536516872304133227772316882750552659383342319291389603846888971370375249408427712717008959195030891022992743272313449397458370485453508381513935245657979588101627489419088778334894620770238537671555665076513117750829594903782049529985307667494824998318495741778321727363096866704269835200345612228677722236234374733893421051054111473851929738743488558226062556152940757214730003850690339363937249134878154127765533182310651304873139398751217646197744734563541637047721890697224210021159246199761187259628782785184951032974485408658272660699863440765127742138974673994699873029531730741927298748796804636575451220473787182826669664815476022115004277169711349557997187494900619644184105995159809924477605929297550503189806006685246011880568171739010695778120859801709867817236295868938902623768412534950965148975644228880107872047340511569366836718261712623125139922470032031983825084773185883950341110824050409081288325226742892309655971314484400997796907319296314888386601644424599063484694951320007975275058553068043988450482864338136576960515475293841505040482892956283647492608789990970383479443535567395846993991677681656416520408260530269731539614918237997026847520710602762393331037972161439273202499939938560620042919426106339565604436748223381551401706779446224275850860000174238123395787314551051740590444387373564500793416779935749402947663521657341547485515013037908170119159672839606533539880202613648546771687335761042885230771791614848369631534931155915569781182330831441301300758623681305887595857900291761725705689302840479912070108597710800814020179272375715925121221043964402734396634583564940849839327448293186780426789613128207441821726033104045394776216866836478301573766953262496152116213381933822000016681392615088047599070343694245974280587597318652446453608145593592595544853210871407904149452123274921752653858834980997361037831062144353805546611830127898671678354454943590857417512750392467881040018898668904478519378332770534330566358100002694512601317093910070886875857741247494001027950036837247956146703577200505476694620709414323771284270997971432637248774766036641581822213857666126031191047016208744838082014275075097994253372833975833578548064050140993427645132414651807467514683315180792807652591190420950686372439773239519364615452336995363393794187208068141331888994401622597154377399991097957529309168329417488403017077308982731166107122598888610058080740996721895040518289097790078732865350762950265356957867826024233771689855443774139251814079017416095415949110447237017887209824402432095266857831050472247370934841022198818854670597939458414956524388652262306300253950827975110419841823385695375531801268353114122748368495192157936986074030717237242629453761479495036010347448136458492229299739180214210669266662812414820194477462408218857006012122450001499886903491784040601874889881982052739079844935423904794659977694639853097335742794920158186644408323492813344494746170308871985186742061671555608760794641073139094470906978264984261444460946216105230279063403851195692555343387859312839421580928993127305663622257157618054186127450449454991410957709503663233942332123742574760473732426649901782502297019251785591284513171103635050173985337676669730138715002993352366873679014753021290070765192890512915562419425327498837482018525380275857414778707034424814392055456490326277906935681014120482197538824937334407662886882859321811248765229058596197477158661268532728319974702217603423597520152711744713264453688565308093333562423663696696271493802197493036389575465558094444035749771801293044967827380846106009709230830914437388667406893249496515451032476873657651158137229208958869383352791749943333319995227988245675748832671596079447945431972793524158776279500256140624659261824990594739255188921039657443802048451618385520909554780937916955861972218416032464416420262346462108086931723156222230552478541334753590518948001803244655619987281691498785615189977674902048875111246564115637807932802963366343924171848570701489467924613953742125339625212103909939282545344328664036875427399758843030803980133952170101298400141807392417166272129907262206576045117631725063702874572238682746277338608790470387083790569315598194957555906519140501918822841045016697491609105880596848516824681457332675314720045108067391668060990626319615533196439366276570830091842872703607542645969343604088559317200165875097758115936790366829789724356538562722122488392529431500012922635851789556705654247706864808623458710162910359765024025695063069224947307144071116028500667044236061055689929855337281289752213913390374731923619734907693439072346999166154823263133979404528921399268297767196218631436569953370719986264575423899978380616535425580527100292328000492090695670402726776428518343040810950537729521926319238122389002754202043620185042667847928887021790540393568367757079358591530875037518285139112580708798428688062382139113246679052118790169032948975754224762024908361662676500005757737274343830264310509681005155357479750885671597712731703757523606688684626664448957896871770891961861785909174064921715458351309947046697474660327126171624119233932807874760861557438990186859845258351451515945383326939679876463117838625324469054716790025961186590716360249991987981487743384721902093061850865231072475016621521851364983419414641426272289500717819107470056223748298127489864554362086476523976449793813299483300274580360579190691318629890917433113093610930739617542594112877963515351311762655531312458230362184729765414824347836664238713663372481877051317566479481481877418616519216847328717837735718560607770762079896451758183282615288575364957899404746932470581676942634347605809494213956831621431651401988735331467535617923449113028772679784435733482602485946953244990880364436176963100720406726156470754976673477132469659083695225059568699641449712261814082586450564041124757515307196065627294422259793261410773265645346576272641701248870207881473742425196710795271807358322669003196031962642530787984038942076228772132136691595147467037875624925965364297997335936981880323970442388801545087221944454537340045746813802308138197115955259619201799900831206865457612821584281838417684252778902270847136575188829148707887049791772412863127955802777976896214671947631513892148035522735436297632768419780129690044945839398211654547153982977601324050756698482928257301729746120571006566994636215969689842002996750283532500048206086502475621554260330049853307350666570759080329449228240470710236677344997695693104093621702801054707493067630384813844767273229466942771191984820243280802777712926541206023999070671785948579888949673447714938134329343205065519787607219360289614807111830850433334115324587881064522868904639982319064898279213683297516418569705165890004411424363254394651030924582792122074438924700320081109880627842402779799668807119823764681111352903228287113804677546615820517176858931198771900266885905369590540008047020535802139989196330287375845362985723080458004140625049650605754647064043684847458821692850556659240142717204647583338095949932520998609128784261991985814553949677575694211282401922116291664668808784210188176604263098395493080658387689075744373804011677901883659451494022713784630870178183409199300601300677080750594536036113663547903361129202366756540462387233839244213689977904427477058793307107702203144436537123388254542853966983470408415542710847995480658432116001503531178765608982782107067803172843373753280537945042218274675148261065145529241181231485769015973940071041770517446253549369448237867485646577740394812445290121458726662498130585761028617561234152524288917686726383110990634396265149165114969647767831052705144136946651504901231897643789875552957051441843315498796182423769811286931307777450386678824309707259996812513996914432388132799535085252351079209421601706459066292400929781495359766280047894176309717329484662548432875287041421654206713945039452409920956306883036674890538341667364185021654159118387798571309338528667339398804470072714770911152599250461046905988796455762133790612780886059679181054925218568231464297577805139025644400034804893309470385086005222728534784528286102765747190827420414253019461091120262191876005061514259926096247348492863945551557587552668491741994561833771105010552012470800637194056882536243939865929694028859192476868209102177780399457406647346322926432277374265686971273801851310594726375954171623771038397346733627856456357602267100311146700606866642733277458072413196574749230569691517201774898099114752716443064576087835155765660803208389205457899570813241171537161782499354135217327815300444205501292598253531925285541650803677054100711809888158858911308120253429371492873952424043101783003965289833181247445211573684460956251864747031905577145712352927068688114803966707248525355052990244669617752959706721301226310186248576513981233128849557162775228415537929520627111130781999274648307333132425297196853682287731449668057982879457945289104231391276501212011815142254073533866702122808507105651866731834556002561336003395565220161495332267874872437934397561084255471653404433241133334241521667653613817264179710289637272079613327520214192158108925117661996892628723441214591884117277059349990160842732292074819351767189945575234580931623229550531902000884675154622106668731874817159524530050822713179716115916086987226911831229160542734170784800021709780955004007657528510230124470879067988338045259118397794303738075266873257549358134334662423003803183330292564730674824306621302117049334994915946108964274735035456887341418174986475280466350295625364375680389719865524571006193168202380144727830390877429737442731388682216510383740452693418437745974560356851979087891260291605975477367700556229899238552310602521930589872041441600432813571608534781444727052120010212527742546251843688062445481388354952018878519167239726155403694906448624271172886737317790123855985679254181653697549617936193859887618387593317414276033697004155100119180514205961864585080364231334936494199405638581530472117684694277028410388216323880760051427418246390737290935948111111338467483610445196177659814049119541020836888840708046578720669962290191730488322172327249393237615328680971780249342324817436335207176644520780202862375217299405386047666697028946818871098973847652560020219340754773291507163214551085843455357948087812556432626624350521150089059838437691158110946638767712243214494024064473731174848922025161462994657757281271429274611575673864415783966836376638109974479518815165567811104271988098050726371582421947091976760132810396798690843734284871559371459644112111081955090608978014870943369011146888794035436519775258560464117582753876941181286508846336065882670145049151872085313567494632013975407020820572833908119097044243023465594229378099945987192511705753914442341797652400149111348988712873058985736852590765677494023653172098972691389751465941659665085688706597434796018708882224804735915662447660615870913721584078982709162119963098331329924870053749285117097375563539832713320975261863138499398231605899908208928196306699540483901351569763532449732025614213893216760161821297796633626486682702655035418682536905792597520289302203017215635556142935501284819938079387173548966220560877109312513139177219353406731144643332015166355517062099874097388862146485063658317498295712694936629311268637794341329370872336472516809355886621029165872565181121696898561912538810530211428029753740274269859845540792640207570158310435757442255528527163210711882980498292599203070908827772199422987789736859363287472796613535840697638453290830573554886656938270339453355847107025044250482188825934402249266009373957054893800425676933574259870088109862151202027154424893539477595733778595275619555691741441026430327065407142352143869522389366901613469110929772324209134214011039272199681445045893365740934792756688908242054522813041346171340066911962507160615870731024500510235970965181525308027898192503091163015939563277030914285564134049286800622029465557398548168047912803524589442693396099778898651989658021208436278922159353695104328770243984510948932182400387281928896549255139032542192396124394958699838818554642517669851673985947670063961062379693555151572717716483623253384964679153680610030373812470909707431718912418599724658538785441097267849307779045823717282044213249913721961695331853611881916046564169064794723690975437410184307799273627678925084391380719512433144135004969078839242579195237373067556211856109824829112798398234235460294891066604762556983619019183672868984745039321462432491391321430579930182534196853580688060777864763625715746897483531178459274036084760864222444970203828462708110096623100944270822990549314687235736349523624190383707831301876188456858010425387864248126612245822573920270860550007761761606409422764112790422583005508736034553106138095912083286440883215818871640947784332678943957237766387070658074522095259638521484448338336030961170772868274509062266799336690851170088639759420441346965886218273006235908644548923542684317462041365819476063775966826067542540432304327378580755266628676823492248583582508075534006432795665495835134645823815956795004192913691128742123097956541096977631202499742444982984768361060083525538673702447086578639805459620434782917630610755339338864609623331413520690112344844777560595253352731919528289464789899950082272176162162308888599421242977395986590145692232928009414561033965471881581558819335804392707142818657234933442756736729879976915993731818259266061165230710008148085031179066963524803179463542111188109976960189142669130861278969145153791668488956415965779846799291278843081334900836545771112620732018675925192998068432799367721560318104492437989301178571003714527326479408902760204766474341005673212255341604576881391715458146877543428273460189113407744340674292767249524360469682809099785175939061089677456698656368940279889301456591212587252080756568746272687661469552203844190683116265896234286213307677437209274769832136274070710730303242390862190359067467472939033594296009432324479545041795826055142005214801691732251672175656393802600713954278949554312586629026723737029816738185733216758847698559660806592116402165275133729494825856093520020842161526884750517442515554269628391386962970932577148596614001806804651484492222496495352020647197820310700976357270190928342717165346519444675389941018888323632010964716730560087500752537155683018382566718709523098315441521199001655045368480261979657889848845924021581198940506912897688414652222231185191354539827430929941129911269179970858560771570883256965662773445045767270590259359233616917676952682967793969554311992719094491855539510326569121773962026431245974089276338177659162886290234812021928953042651866873784225696099513299310662424571830698866212649739694532221840450499356603700757014111651457796519301737857089913435883007766619588013625515733706672549718897307473766170623073832858642978904448835017316867763898318660895112871959391690038319319677965835020957169688046450229454288590561110608888541010828472038867231260386168344294466290813633414324374065384057405127353104323018159029643210821484657757231267566717298644701924124809593498304368513513902388555316831537618736663671656837521380304590347876688051411798198840643366256018825832711330372949038711954666143542932857696772230674099682413347974536318512835816389331324978967445398127939448917656442908832721406561272504694975658807701559917637585954705493285584416313965128112967840393804028472807822491020380764553221974565279078245495147895799824096570166259880673652557523655579071398253057241443189200461421929896681659755210308518942063493902069929191075498181040428243556580851103329338845255094781434971375965804957972348566653444034221644611887127627347283793377213630084921299222571135216433090994047967923342962787089517019827500872236124231205442625595967182371572148173277130895003236718682067205817452840677548124952965607326972747882040252394227474276418253834447315893658350883303625199105694789102420791624310732132232967330149853147914920545750778600054580182863452665400960727501674603075830835639044229241794963990819944343059119362037134573693003775184490668216967611269414013579563540526057807198787321338748480768804120545576883695443542338583287261352151212876264668929381162811447491328285140730695431324318257780498720846199241717293241992253918387777165361152317991194810219076186892972761259443451733982738357001213562773387564229417514387196225291958050099289989516164514552038778189786204651699172003266624393537605383089007275051354737289255085172908956878339665322011987676790519142211824041230419645042086877213892688439853329469655872938167706474896208731095250166674464816830578764136795806975524947131851791711610468031057348973138616104713860439283032070004951016536010781855302950701940465639821172326144183451754749230376283498037376463829568676446955622142880649690870182396938215388595510276742024241163212349936182141544321576160956415857785168662066841774403748015092318023320845332579995468691460034561717919155177163415495136694921151960375796977355853448193077788155460479960869211266075397091804389789833887508502483855228156511271542125067927385146314136638699748473190133766669811490073456026193855018243539253230030416607932825589241135528834386414544811213212302243882767328696095665513244499213732292075023861822975082225437715042298949411512947376481852122130966865389795606310514172406821912060710971841455402336307206286269457353758769549515831227912633456789252213516316883703143936297709186954321054104056082452097413842773877499598342119499949355325984084806617327578304151339619055388590418313597965557648183731949236054112765910247349770476682415824640797720777376909197199481787303589937764964622880781152898055488704906139532032612811819797285236474416438741822595188756568236563535434329757727402770119969244369606256232395076760005318024196181672279464168283255990566923853260469148407181818822947367734346044105274028959330451183830474102043581510023966704454835804312811652963840168724041545371352186659787714842666592953914029546607585688684813907358166190214761946225788380150294618236386906113198038160121614999326734747278269012693399408430615690586425376615013826217647428683932313547335404049456277426015081887097151566080863448638584171992657577342339591394295733486798420890219638174497650522222504648248971727524799003927611253839933018573637484209028735732935256019805078516175934247296226066073025371910251998192350713119443412411282941527263262260565320275127524274775042552471052469513978332458228311698228490100434490784013067048662147231061965936716051395202941195899250384186470979561810963622589698602160074610093181799481318801085758957230173850364051245911180280354484850098547048783451775166706336198378438402714834362431049439812224912471359802528909453221354571838648306392242500141843436893346492534895554385792083137309929905597775895275897939033991167444632804600991086534953626323349840580098266102114996316061435169827717898692622261728890834187715412819459376340436630584765602557377451671786124653820975679953176250238230552143056386835721561182065810936871716155909981153610190905138922031963028681959547031207220186606807156931575463087190262215955204787516209222378949232427821728160481004349548503857289166673974077172750530455700231258108521623282238735782384932558522871245837419806840979888811623879536851650846222369553915431069986937321953310432785964520348940346219924097565090539888032508337517769548840535719318729691385440057532589282902073398824144628405352451863535878651583339777845562217398548960076701445071105662745739390847164084261332040912807340449796448123704453873118974914222650965654239778121070498171513608137696500270578321530735643524068218708936950669202564210254351594649592162423128757850104184917860933044928874646528569042030838617561747636671444579356567516713479573196458765429577583434243970264924434851940760766616543768403787084247790028898464759351015420965356010904329544062840852694113048133817483516537633933260105453039065782314941209218212232634058585598506301207723756269871263321958878034751535328461764229732536924880875950068205972988010815957571074372010361776132951577634838435000026557551403925373997375683554888914947527367682260285462016845872994345953157910062085862868385359679392248980391135979657302964876473217582747194292344780818158540891146331425116603238725878472687630024128269293075597841060902376267986412610082088652875569220736160681609080940616627830372364993623198360079849210657409664021981462308418301712477179537729595684422518813955092180149396240043136419682283959331778177885885917207671740390132002748847787160904323088404612598191181819595942486334158508856675463216350718806373665591716302649212078925786942684595792904366186501894707338441569789933085045190572413394331424619890029858478684460208990958732042881792062367291938866839537988724009145519980953831891726168000172090374832205628039349752360753218893786969462966102181388655412233352928822342955786925235941559113993684160545023551372082878443038858890933350849226867875470357989854663531388965675180280762665820606899685111856052979381328910700546595672647640458027585270332617810666333190181112252452461989461788177856700128495770519070230665201960003610644218355447244065850602547120401062723157458644796454188258062968419051581116658039779414540511541322546900067259526776609821292934270451274165497000623827341352798754992635546164598385107503842838462080518442122294774330919291885619174007099244099266931016164449091715580841350835521522486015299758161711806713332562324572117210782735476391810704629161168769599742258427864119793487069527540624984408179168532192980607118824971740625614347814101753943643535952451126190717599277517420647894766259255733141385193855430790913864584133960410909778660165934787562179594067871792469316871758255614018483168341201807371653659949028923356559655539346552585103688304943472842871866253481381419305912704755487173624352978877357654213031828282199879006754063325780439019836084584030917524487505854177866447466106484495507519877206777091662611144300283504819284887150588213302978312498844330694121820608783072183932988137765375359312698591952918221676844695471829166527711741485970782554144202910506674059550736939663025840450657594509189863402064866189644632444534964740750677501610691503191664028913797936321263527089003683726501834656696794779528668556114913902441684492535321695598532399087076384026347748101957623370966868130095462868343734166947073360993348925424381967108852212991279514281171632961932392712267669007772101907293641351011659657363945757440449557057910199311734555930469504529148874981548739445681461252831683786576412893851656069856544487562751132365473967946697360954174206654599840601807858396947611014084201683035775631830252061755512420035872483816693259216738826519041193072763551725332131616005950549712951876457869590444916230702019987449587240431328185931254166141192572457133722050842355855164785744488437363443627354238994175360390355304914647530095501097959223922226089589534975837237873685219617351854031579246411117753214259139776536044783498302170072308147503381430523508701737586889785079522905496774451297862011742780678515872944769617739363288178805179512617653368274615509357722348071886094579252361759499951199925144094631839361701823053158237456416421830207644457928905083789736417492651632654546740453447600980947292313849243251486547507327799385386862371424857189871770586798947716935805948121700307156761257592353140036876684725096201434232151393171107837884607791118425964120525193505236516687041909049571482534257828319044156778496695787875154979088303935250864537389250464344823341637361288041721187012423512445003591139264729172119666248700068537057039348149846148877416418547186546550992888256313774650581885221950741815450524179754680849676609489533748043292407277223781491679004895109959120814438806771941591761538588344255611191289380045534518339092665799106981922814292664146329715580254225256981966105701565577440778838272392110835445073663237425556290057983239081463775271536435733984431705576711740208925314623222752513191459278479852755519930955389374234415050415665631442842090443211273120717808347131895754699367374964917532120089822839175412479751809612350279570111692329293896257850829774646014643562072698735060133858155602955631811806648733539001520480320240497609742824748256934395438915359013232724916235233143220780184045526059754814124434931176743895608411919954351506811873941233014265693981131187943043916829902027112941476633457777847629044336084207249349403039219916515003407059748649436583499851141681673840006689513127593422300817912707544985518563884818079423149107218366646910984247084744983825418054312321682428690765791165929799724595084900878677901519569960721486957490473030891948435146892254013684614806273349343271483131996044317440041061303913327739206128191216175804988170988703817104706497091083543621205257653381108067381684107435388439009156454565677772277537186770010631724413288231561272197694981753160101049198061366924292077131697381327583130442344848120792535769294303940943541825230628373279241108223945781778553350628716492476498557263699698580123286463514587717715371222321617853874810140057454795649916470498527174295479984825324104042716277397655935553870967696037251945483462209933861125692923404600815687650949988955596895292436826994171275404637957280982031247471107612089096033925649845797653588543335350620084957079421227358314351384875529035180299889588412274344869645213478451194747419532204472117053896166350212696819050740950468029691816299278032948164207747397491305116776037615849354769944451430008309592661753266370332165446789760293369565865837349347833801660373810276605055276025792765905469922435767166729439661463842269601395518398339728753742471185331523460975991747266659506981865787520736272773986534677912769649351745574981580036712178324868271612375039077132934707880674191692311777344912445271873081205937965187396636041620039616006016240599040628062177087842015959380791420913593572713106691084187238055443141406156794616353081824305958164066516816238091156615024045091722917486208631507691699287123279251987821791591801979280697738634955329586753096779959503285486899287729714566021300301973612592753763294985943554043535904243260573892332904493447800709808263159415703725162915819512931417193472699854583684344218367546731612926932654856066895353267041561363252268317133762924678944318100875656557155749758700015080057780870840299093385073853151562118971545767609104012350457721804425689150991132894696701605981858374294975051504193835675583427955035648782743134357882066151928498892565055351949197882066244251495919072179299853226805985931683547635874980549365272850735154979654922271602239702262906581904123220988473593437456297503408483053766044293421625559588868695566233117944287256128552822871061808380946526719117252749369615040667502634393422376516624123778402128537178412396677644444884919097980616176588935918065708540772086582527962914657587857214803535098341330203513954743944021912244997882585868511732757080278030567616962810355581459914730758153347391671438179302853729811431796212035197519195749627299489946678086333954252560835216730386863092895058637631246334935491443172821675477275501463275625499646857621586832966198807577905008000133395284975430989423033589287035158381072027512829421289886061454428094117286562094169080148026091663854093431245399089734149151062542696100944543563253482370905405551243295961525691568713800539265913205391305469116413739605185415121710622580769780374516218228828468385071477119794484884915958471960514247305547393341775200942765599427158529490735483079128390440342331321907270807934923338366999901108458133500589854281165150325285365857413402582824792397255449921029543303652596422728051442845092913226281308364166802271925079123000607676438041576196301368464441092871220033196990594684085984123954595891923932490488384556860662268357778534944788367519318271301236370871562201869618507634575117868096074762930611287215071953855419938583321000565608761451175632609158101738858392799100605524495156508956543440747761119464603488700980713818153375990971246755118483950081329274707161500950818437891955848310612597025519568960599070282473047351118711828012097871900251325260734395043421462156811134286772784532843927529140294864359155767798413773962717791925947641942263600854509531091192294326133549316726014700301265888191388241249608526453889445586374985485240594635159983938661717693784338036403336666948271340613296838119403555535660449832808040369629399803852060131393600831451516186850916565150225084217592222776729725769579252967491606965734490563047462919994722002843807043153090789341671609465670077865915848276482562119003664935204007403665256069171750696836207184057402636353457462437497980836080764721726988119483234646345774637678666869798330969744644892818173032193181860988861162922643482825527319636117427596945495721335855666286151289825109916767133512890893093198685493482218392602284624178243399807160983478868938194566352452417749997530874936095725966623841390434943174664368971174563856769454696891358853144081935140815527896122588233106887914328743702600992987611857999913749943279894160686822744614752806295663941467524480570859550072217907433142016403550779974298245583204239710908499091373295724035964781396034893481029556664250173428988208421898428658416340925093199012468991497748020574267577561279298389490409895422248310688054557129630896261025583427577662973735323521489347482993111155307898159674000969795511651841364840819641562366536899810190657076149864177502177285797689795223970346870709792729695257882599178715549695334864071936128116930952584294818153437468214970097836708583612404077140084393167184848283288121291456185792537224901316554115062074617749840986544873928774506066551705307114837296637736833778125090924745824690616541238118801912311009008328814996233815117345286011839605605676456266696294726502607592189619645388831394859184542821894086480321515056549771207204652784939220637042273749829437446582358283200358480168152803865150339198210422618626006631999709874635662417089264982356405754232074572993451542231901638619904919748792394100088532882395724572891722524867911465125617359729377011375615490078149731035928772812810506824813870216731096021190351050773264518896374310432688406028055553061012657452918905700851094172012269448637996122844634413640272773223865963595741697259961272937016981637677636044051504106680618070116031720746170535416426426378540137581202122921367926212935844241848136899603657625836717473108687963100032615722415908873163119401354671452068284766158424623951454033263817254657503296515422907533565235270014400358926170507307545958072360635625674262789758976143695876878514365563308827335022275255015198945040234370914584646110013232839750607769203856709633627922577899932301997245324687711389479702477316120314328621816995345122093303328799840540647925792350595645473642281260089344360594430297708167137701629775044478151233875951946014468636086692031156949205457152724998063001460054935994196139850072460163587646073816800682654438445600193098676689846743982167159786843534677212630435126192858525662822896479283853864695251188153364030327330840757813135571423606839488355362511615497034900986065498418407864752546894325327122638203938185767548762426561796910720867169212913172213928649142114200813698420450091174386019947420886606095420970481917364996784069200966603037685642148312480580075915848424716951686104863723595966540156634691224052451854871227603486805336269002901851058808253018386123198888138806193630073449921623708454082770354077165731355058001602252008136074195004481982288788313301196255584590369151098152636967789272806056740383339106956665839629164032174579732012255140498695077489166390525493537980754184771605633938358520103047711342900087404767726339744969035817135750563299414561857872403594508709766399127139502199186732418976050215043788267040107847758580520340340706747908561838985061176585926095977868400172653467396741638312694927351423770442997988600629083330326351306354788567373827311440165835006038614750796777010660909821591615237493169809913019672559936197958252365918163176258758394158373818403112153771435278667292858062424974107021145625131852846073219189377975510862572738858173951100929268577631377423965029012491403250259730498559137648505565874541348430519951994794868778140637847920441813933689693292464155466614322549926453324378751147118486211261064945539563436749379966953429343332385534194123344887034435444266758877891567900216449056825788234577924514418611274202028201357187225265332528806056219646077921221519134389350495608348163781519533318068582823751361592269289858360550863502374775428066485321526229221332641777944038386761059510160163836369418117843085032584843996132098108085686855387761710347331809415378922925896872856868870828026351651227343103605788003433999943720997222690479221701777609080080108250618663961747955251566638398452760664842247235207233439669672391417586437633534469365975957389361479652299893025408505113016004300685005004135769923197001481062264939070923767092383225129165349015655317131628680201501573001333798000716470037453860626333228727306849968355558279244200619229032202417614565757657511807705025463211873693205744894651012230878556199880940533504384317307044219717433115131536192253715517632226252736456839018358925841974163578490846322667675740323809491556819322585492682703645182236482708509917474684866428842108236595773655691011666690819104982493364619975865404610891388892957418582367926835440403749942819875287994662948226270097432377225960940964578408094432208291527618843772831562532054528393479481410748716812154716460314895250210023815039300465578914603644771205912577275488653490049184055291480386081284159377923875264940077333095224131931761545497734833582557086650101050589812574513346045688897034930097878802649676584866561974146290474170362017974960247132243966557367133374122376726904621244343089883027458953427645010642826958815013782125031429218502042492471505576551219207969229254675484322414549027525181742650238609380024687563684616666200639006125372184429439076554251387648024467610007819328358444180670708129995888548780932814476926778709084158121163978094889225576513800572028450227233987046000294553344124648887099369850802110606126007084408038593580933112482069239953538640906678552754962774124492635306947844022327458626959881100294882609128202470918344180671322837651427637949252221063968103761170672545459231020586312778115243712724069519060582246534292170841024503119685980416553828522004277715974110466049143796810728347069321173582200590506482161970866472367700620178363529752780796551229781224422860289877736424119730527762110411456883493266302496807301244102078583221323374281536914907369924620910946451528527777670213569680185610024413839600169339945907901767241665436932366068856210435005165234006062723670890850030969677155698727932103271727465288520223878609886370697005923793654315072707423248717168253339056124970944084933059090016326693604342426335384389029060033360475040065459602199692938063069338864775051036453806125313073367165230865767569033041931765779029370850352190214703961052845151654005429883376985128639152924629940320220917112166733360717396866981638461993062544063789949487475757080513791254020202560105122770263503674866206223158231987412674423425933680761416404180084523172247771177569145896509823408125002648963070427106138085676350112998685070669663083533852128258683168984783238297834161803173619914435380202510516506897289828233278154091104658957258322704587356769458121541576021045159538084793562216991020257570241796407908552182977497281739757596414673295776628745008458500532773852133013090940983250475649103678792675658390254875939201931297425487150500097542405827895357966378765905546202903187492132763423703093542242015801868392273809848617847981203784270400440797981161647367442513727874779551161162756637590343740665526419551252938047878077756520327058485967234908855945430965198706526585645198395610997397758721677806647977467983332176062724404423417369380944813857345266842092633789717932611144682052756534690969420086219075139077430373028900560080845474565072286245649000382526363233662838351142239634105134215597683027314046435832434054679574946455961797047133529784633168976889296962290108942966268542071291334364161639003351275556614734991270427956303995746228776160364351426612660178148031297604805815594698791747571233164408242347647590968201529797203731312040592906089099596163257294906748288096239540713225820511266789352187374335005801238431020942031817790084206618782295994253517039257959902234616593084760390518292257806686543059442824751307401238453839931103984854066724441891783441255516443947992932686896420267956376153473287857426174083924807769270087433699452834293424681518507975118744451851994009162141760654827339583993746755219989209808583261967345280321194521367166736273627849567095712224124703882440244972005910021739560306311607370894902581911562519543322898939626117801225552918006380573269102906345074162904304479157612494095388198486770817214795624703626718227266709847052891482412998097057355027416111002718067597007037006305238972121971612541127585525376212811715386089843213927626804685363504657077818754467072823188011513038861996181177461824877159133462790342709166484684899300112163236043126919055499561721270164053317128008790313218938243186036356608237439151205100212561144752684667627828744072973843613706672298546742028305671861325867127390745813931669392973590101303810231709175718490118092614653425849955324251550753642015526280391514386442496141646081599371125104560130534120268083561513445427873982077502516905618394029519431603736359922925265963298328732410528798733709691191612895048877581156834286937450373927154600554392065456127864397621212843209378012290204598010918977650906578339995766353605115383909416559826088483541707557197972962455089198139196294259020407524194777955723379755500475383124447498437681842671859318759322511644393560043972530564910647518616207646051968773805931687451912417885710939582982385289080213366621816030760788774546703147183291261733107631275355460808852465627584722747313259106424855603141672349753918733327624665313102180801164090276982031594662400957966024563579328070224669384088108729053005518913428645943142923517447487824897087443378264420503777450975586228436050978583505931920738315918862778239249762211373003784698635807254584574846001012670289701135824317780792449079045343772869213399999595125824971367296784819725483599086960364158195777725723511464789645979457840780793293709982255541046591962048428710365065368842532502255536701279365834782906468231457515184516411831503007495199455376540675461020979991680140865530327441206967875064120698423324976067447848315759072822417022847443700928213043411831208167544961864739304411182359996186574017714074270854865215028128020753751506209811340992430350148508166205832991535670841164392730876470959081037546898316783907574763452512003750301724003171283604167537512963986927997483883210710901745544969086757305262443998309128235000254706614357527670735926112628913184543880922987735557103378111686754224498546734532298064627548315020696294912991849119601191094262962412697450673136746741016335498832627733039499744616192797558398103374590442669569333773961913131347288766998324532963985723050422942913197010765243252385686363347250829296552785788548746186858600427350351800181426810232485159971837568051899378831527756140756885848913759043919143537216245761209951836705244387360676812814667287828590055548508066330758225296159916510338209254454456051898162020109871307832906004635930235078807315188460770805087378032588025782051527793633846967727736045820305037922825133533783649368891279481289646698120979611467840321950357692738291781397910034829178180139330279298357003774300675932443182795170128595612099872213394867165644188731193191339947222145828198265156665099918630435440551037415422511515942927904035059899293108595239854391549039486188016181239327211020307971844503020514335215082619899508354556654790744233712807343075547162540983953596644422694888078808735526978460524292512345725262096869733354773486721989807112444010483999495841064253674957631873865972312848214396210191444059422101070614909889848641927072271632577466694739374672408257553260401628127911560093669691901677309734621703477334285661630401905748443632362198701024708511430642288232133518486950642960646536956662298474294444962890814578444535010182423329174537851192351731629715765477157193765288532200930480654546381964355978373628381786134065658338891317670062241927138548749948772478273618253985292182419676430414470577837555913169286237113853058440079261458056986834588769731355922505622869435918711463959480367293621324068456032006620901574833819162865137470101951173776273474193142791869493856428390139544198289954008784457003140163668620592208973211612476777840548723688061478796681849817757182286604878970833469127136260190080402993834855698957311453561319588072011614323230032650360803403314871405598220580190603623569716586101886015964165504780505065143639517020094618587022235299758393742354808669393436448139828232101602523159108963387012456367052189115314382174497387708853626915672208788600354952957347761670368408688731966326408364277765766537866580681156014927309376874723760345401364355607574817695136923858218855827317521839092109252293197576798669147047049895639936004685618889659366126436308119816806652088416665884416026026493812311530272764327392601601970899638547676929661119535487923533066919536590613754684322196354013120133752369200885153871801714429618174953811132728930505743338791481897009739074005254931780823492756666348531972678850142105389001722116078006320927786790377837809301124589418362734048030253726402675748163889722650275462041266504262334225933696365500833643554892844591620279194487074031101908606664361202510909347354327544215403033454859568859940749999918125165417207568460879746357983428110620261460840791140236788805620408579059173731719181243192794047227266159814124367940923020016273207707453685613486906854783009531555340651913913830402626319183522250561862477324728129219914784359848454531315870879852867399480573239248245945748900997975107564216785629046004268447626193477461862487128737598430266539149611556869523814661470392365527263966660016837944938282017120924794425478896645174620844176375068767363158900145012418728518139540373077166804697152056550730957238342944821867623850956933954207181107714174723325123476990688321024577504530297058256977824335877929778276416255334239567864418196836960623616936760642782692807611892641964933346258195755332238022819059453197629051751524447850509102884361015143212698955840522926964993979430816113122066702280233869250229985928025957135978438411423193263510343271702157273176809248779582990434122931096493758127877876517267434367207483521478796512475871345626407320264569575300123091056917624041083560934115780874575955670912737618229961978706601910340662243114974844679269854377247096226867990136515347662122346548217238574439695258727407273335117716317605302506467728490227799579233175252928194636414530577340183401035950809207012898713100923474689781308829757977287454563611653051229939768751008299922279288375193692312144214790426622083923360359279964015741438480633978637557622931070071600822606570860350440225467452954298865026902469138216193577730127750354050812827064134482518552433111896048173991759701015948800994073055172996571158437773126625080648970187578962779205843608111709308597796908806907493560934648731719973356349740373270652262326667200447119280433411887883487371458285437772705858844618835341936249366027912038446519690580320081672903364916391586589043434481158032767328148131372797257971172535827819854810251701900726774970270199394378699057016335717828998782500806724740553284781136973064889506674495164510769099279346793650001389839872963162466192690659253807017825290910943279447943873421414473560287143066216868837676412326076338801922448046317621638043640875754142650959545475209271062122349089864169818392433912037695386694524197277792204492842292885354790659825453092669013629263751010568925970291515289570023639521350564989539420170974586640329162227989435006241330502336441960158639030482619809678794594994921211527986055329372293510672384910055692481120899510895077843390775990883522003168448698360408277959236914158500906237866691746114213741838366104939835001899158030535960399838080256704303182584714878716134422736374527268188393025777723901637663187385183833518064499265985806742090542505128754379685172010103677670225738695684674732141571862618477859874093137241501280752725422787555616156871003306058594012886006517223831163570649038956780177125610066515500195807028307604812266883803230930227712900640232672446115266273541335330570705185702843895565503635703931506423517982388370200486729705957812760108419507562379653316650304996177298714439345530502538499087705973096893439906612367826498739015188376502080864268729336636349049520537953204173228500623724164068092453095219464391417918918033432274510783546944932626896188454072645621735486254747206662924489479859045690039724853682977711110780971793918336289546345222839947466326239122390252768053213104466302282137311333359360880794802907721379863254080001273809813484610650092088820546298949833604958137712706133265182032845212791604800902227075307266311456048603984280410111451320624036489962110914887914503123349817007400357422368212851880542070148369124847612067323528707543096986814651869602441697806829000202807859450467762560677188316099903027305889562685675885310030795751420199008422729206052124309520096861712069368185405047389008924821541306981703352227269800411907519885862730147861608255632304490124411742579801511142857119568531468184186784898471519393405911302030128649773987219962458486929126004700991809824891979802823184041320334999780018969287769970605775765895913168658582928927355084420901333113103055016333565310116629439015856891753640549353998872980120581235203155770388503657475951641142034895855146418682654104111489160625733654847809551790379679386669777843727673862355207236498373877463634625224592392861682166214113504851479929233757359079906953643922027554348128863835310583229093149570416063663234829702469461391679533110919495011993478755804860366850675443318154526087454296707432653704907524904036395889987120509094270994722795006866879585324382934112965132210536738981587699994331888448511486060246003814638039204975933431613259690269242041813044003562584148180091401255282456790058749092203442246099791531777291765488467902627308095389618065091368679125406299630509897151066008453162513395354347446627124300247146979193345192127280788646684886319770247611115990479948759496541391078208577283591737082904008628804764094632265443021217518211042798338650842224132199950619253918877762132624081136280670436985739965630220348382206954176087623160696298749725024407816767333521403245197226170277958294090160904752288277998926746167250971664201776202440579506821739744884903422081220885246347923935081814668717914577789876627981029336842758650344817197696557568110323501208425154958978230273305451272658428261174494684094948495027309293071635613163404817902742924196769495283335048709749310684620573122567817731930956550165798919938985207146739272016305591478739682941464572198580373892575513446105874259303624580822105471000217387216498717394115958425822455293152801356671065825373030409523803286044731369736696089096301546310613088961029218366521248058474556215272972824796991699438071016518779793620722511109378681643503292398355858571041142430332445981332273242944877314363519428644840526203584214886788156382549851073800762388479625799524621775116980369816748400192756597769450750254615248137574399828908362366949452004238204131218506767388246921364719909835033811762786882844843749687244939346028020186160917212896503641847650849188319557515874090361155537263169400990884651459401623536475673620286415005820536221367460811337698006053902689919426510365884792149022310683128115267157863723382371703531301258672823362455533261207930930392167742510226459367973815759603395815156588071476942957696147652534868129575794201595260160544233900815557449347634641722498549881261321487449206254605633196667188649269510222625943923632797822934112335494182593199729681670633881214628830078095661307814518555510845575969258305136055289669632445043931300524731176474289016000541645629813370798938913458811466825345425281991107768157162633943682553200600329726444114536660898044061896393192899858155493875024392193078099970403599450490442066286198982226827363457743094038571019733628891981872720767741103500286429392665561388694117800907205747918905048710255804160748778649546989985518853098968140274234439677046778847425309720044181215284381810686070230943506873166942994511753957763340011556700574777507867389632411762667889280927855205828936138011763688212589915732780220500690527171904239132843782393777256441410860540794170971004247807176435105641067416308101742562118403695523781734252132668101227372312184135032029091499235908923692494245054470126102322963147393874020038792207322193523831992443023973543464662697967305153555515618800832927546008658397361782598782258811503744595715993006008768250412573525771368949410968903647166129285027081590763418312850779798394619973319569013038113451597649926239280107069674370829198654783590760706933596461971252749901595249662426801226101360947930466550911798341650613285272817564885704240653324240226786730457880278265883843966782717404872526744401332148878062457062394739361221915934455317245332489527965090683023379948277776599645677310052098194201450503852354589702939907385906458700703580494355192905592668974976802148736072071359800657310199100897510664894970938636971761381068860198191924204653772177485642011396398924285171859994127287042081795538404315079487437930369873177522433594224442400528294035195424174632918052450844152630227641542167666579584552944964904153789780556113659685866297922021889237467946776692673030737268589046316916758132804694040395249583845906752363744414419668098710403733143208835071669862787574964081293720307685432076269363534199573303990080156761441247283322838318125645100689781203793793565060764705546045099345281578992492888748517450604504043964354349775185078422856891368913609370098715702832062809784305771682020937330391094492409140455230457508338977016087666723397609177390232164596298582735896748491121615203760578759918175570899922400085738405391122566235684275916250971709097021450853641079505678488250769921346491534699411530400191440080583338233869932214451555421971535730985886968088529752936108120144707543411458935802994994443080886636777642314487003787923910137738846867869960198562190665767327967512864725096267941424568949426182037527297736138718159887000541636748091127644042027612535534057178606677866764641154619252103770811963537844515024099525615514227585544308736811607069996847513346872306368710596127685074140068767164256667424218968141959737460549769111225569228933922190820472382089541099731282922501545670920078770558976996635786993474339980672856172947547905194438364275881396222433867532486817986422354190173622239138183874816505583125881560718730623464793670161627941349912464367521184381146441136727408730343491006565502828946140195145614117225554362547359718880529918000694455683726884916530036992368092656813984294757727202679010459935449850031598994120042514556927346300746206553490286831195894153629465849932255264562861246197147126292947843015164746179971553475409782099935095231842708600028275824001885723197599169060543991990576611391902743258612424520027474731876352112004461804910057346655861251414035980880065913155570877067236405314316404066062995398030548205325285068562647248806046388254214726596178478680837036572513559646736763975507391420276372779321412214092078466650778393215949765772423727142184279528752316971579685320456097216104599008134981776605874275778945096647684073567109447624705437560059097678960352868786041156599277324247362327621445478474696303427371096037611044797890864527831342194852393484429819334542046692135076796343808308484720336588400546750016338812353457508106343792525478677022510333062576991847885106795133736379219194046995128510635861616989806554498431359422485402778273038992550320166686313137067530815444834206822083935621858443603699997969192381005511597080786228464559260437684421397572872686311727306689937129547290153067307867258136024945448942490344146240964552182713372948852089638046316269072165163112371050353495646348186952980633900927664453685893863746002283212817550057808434510643442370514462404313972209026465824428436475629193253014638842761190398222369862015313295578598607229430317353232643660747325793188370090852802238951416030344829064932137040371774179921788118562643983283643001327510431043460317481389699787200830185759837498491337005022495079494812169892006251792928926475218208161136535176446189632884672410762774158612069848080895497517494022723436302839263847835314370707818407794343161008492939805197062144103961013122145133830172667083765524095502790239078547568561057662926671985417096832822894503426394005764608624501094510284310891051462518510105960887368835797494676588043307279963650282210831725507286963057941479794297881463648894267451335470210159849635199559703201983886725551189805541962504778437983085220162357334402950026558055451695717542230210841746161577473307771054280176250890753918725103434634233629149025276210173922031516716516067182601346170334634397290345238369025315451297430667606406032419784802869175486950391291000166923537736879515729286840535945525738377709236871229666307949898596692678808483595585924464734741057499538432966014738271122711004265827766395057435527661087811800380871021788916924061093718849830250398116616430460778676260960246907384574751088544870386001537981283252437730786932022135949762433996405977441509887819103591742425029101751737015102152254047867068418069841846065403382267116517388291626968204995413005948501057234999066413974656302852319008919940081392161187348466335730902895745856493258533309819600651412958144344664044872625909890360969025710841671943042190010830522009619094460700303767223119352024642077734623312339789264885734862277021187251580074978782025619956533468943038579445110347204428308895265621832875957429922542895849910156107573186633113448146671198229418575616770372198318173769206974444896121749013240761992864630991197608001566153911498190474992610505428470054898506192358905851800009591293229833701617151185876505234100442289186551782304604970624254247615447251012388608506030786300344364832853619560432195717308468596354827569309557847604501258635373872634874610779173737294531180395979144893436688243353809018806633561125073972605930080472998329700920694086218477543895287813016086853604710394556716344063538364177493115213991533147723440200970017655312568546643740525807666513470234854858137862406760402644824250528101926066566792496891213068756565127887967902296547804487594054926549346701528057497364918651120929703145503240684007749248035380218356137964021548590302766850291657816841637891648041598385113189099988277766214397618765726741939077452987891529134763178888861846650496285787257763464418062597435292763802408865751348738953333998425180585199924396751766674928855314103681979314352466942891698857808830106371395713332708547920059891472756313101431860456774556541798476762622613135608923789552163088893897354185861163870023962888700238937721042531498100912443636317677993188423602590637252243364364674045046296226208171736550644568543674071093429037375805752270016644593879813739316530226388252702049718710492531083788383195855898132101650519272335127483925982294125454256865942637114931226855616389006270503866621595231521346464968857906216645158318911231793232708083335779268156428881384001690003670500528632490744827177929966350204186720085731093330037829436503962863795507701765530315789549289407784382005725119584165941462952793770876105436717411342950967936467927064891290884475106672134798455681830625440306451943170548146844520488948629145768852322356742432125485201534603451433406347633546438781951391570514494612594923838145361386422711235221690449583558167854999629127131404131327963886162789676499136426161149130770189224870241846351027287526978571222491257401921235838981357102446373525507259799923880917904501952480069099374339262124041376554003184651987130947079620363854297932613579079742755904919127264095936409360324526166419014318147833265241928978352382794310768966863816155777387074667170844073517027495117831563040495465631025454697088446969388683220962682586323062751938027367296113825357433212006014841080791185647042505725670262700215199920643017591850742244199602665015347631471530442210231557800175334288126854175731306423573003952447891401799980842614624403936170625718527175955032675981706119649711478520292259918308746544854973830494017618723896797402739620396904156719911990779824503311631551179083572889893291340148849395540106154561284283784179597670022677978941737317972735617892083983722717237615129891053838675925731958747349679349038716513012414140058852023954776462042673268633361402641611081729868604915368660511522754127758570535501909889030883822039112865691269398501928844296230389561731627720536006811713904849706399522363846716709545963292376326269497558647772157583555836956561161009726970076593061031629291569315618387352878115060335499323301451599726046853961550706637305879586893057381418907338895115978821376931084994734282651714260423231604720688187282490885756466277074063155835028138811547447663245774058135493846791645676781047844051281774796266841456906380815849985562090455715977767529536011894941375891199588118139394699465444813349314474105853722192562706279087969466336556742919468982409832634365938301852722556310044608535222721442916522138329956762121723711690331371839065838777983837906467424320210744977782029516653265532974168805587045616344808975616333887566431681778905721753661067808289403243621011892316307359440786120345346256256466352008246967646427322790921066727569946579637275197929670137710550949411585322205114597608812515810718822485844665122695946220373525457542071105945128100286750717258108136542128654486797662011434716373954078381542361940035587914368790677101232458934717534457302048082305600989519972491483306413609865238083336630534659283625954002731241126307277482930848547752271053714779353369343450473451389100215639895693411974880399015447823765378319204115932634650052744626217276897749050383912164458681646229359619139198549002435304485598538408933925772274322286880343288923212860509509381224888918522494356630095801084284795840164243113238492374282451158575619078505314205834425150852329969320793615305800256417916370235801134624746742947399011296656231377402432187677277121025626007245630027628281337887512379301560617606867363377871736896199543813983315035605701468848832125850557938825705936481515981563007894474876064878986283210351026745121712143112637624564103816770776281291896277389102327579406164617301627302432127491637442852792033702501756826270980065055417214754768910778356272613983581335705282187266042880833638572188407024054799321474166831426961499168332930178067971688288213670090836325219226093433682202975628301009204136101328224160886294333808858537071778255966239572893865857504182177194771769554180583898825008252858886734508961300465439149833358630178212788602956575119949728177913376786392706101218236615310808625853532641833308446698838337467586389245587627739055140591546555193158908938869467361898238052944496718804777270788017881766249533689794760220756784769801425188945735074580034147063097369447172901108158884416724881808303079129364957497124012563749787128377469597854599864908655362700002525358762118035830834263093178134064095432312582968452775688519699166543143800576101844584692277517001488771041570813416790180671799508044351666928262440486663423425973427699930917885180909248343704021589424108638328090946879303422082986223386145283823216147784554273425499755603720984042821250987689024255050185130355258614831495439716868528152082874601314961893505810753047270340878337957055500802678492766294033271524024787003450587159519733999782431316092293099928837747240901277254459782113372064057023309445331601622740210057238545153840424533686346165747928082041335099080370558683852261022807387938533508985417925665209382024627583826890780925230825952009416278509113683684338574987769678174566886730075607632246003993066863303319868358595439299960739607481477620834409300087806377645883121055557352912477845053289432891817083539652319225131898038751947799994658348674294106469467837497776311806003549384845001139735039557618475207354913337557180469367287937839701598468692455254941612721228862850726227328810764248505239131033001627959377778104930024959704136941188029495840436329052056133619465317519135888598290082091957982568250585471545929874793739162409376909551330253482198426421220592955286521653810177391364210367975574223284289559648699206627866272855274874839754965065270731586707889868509935235000659064597022309285880470255604732257170423855783743061187749970658495602353742535901520332253468467508628297858698881429339915660424238253752921319454199022649517722066555237453728989793137706470241074434187989085498814542779075868881315845209361971247011864283343816711482208878917201031903675855858778660669114499977475862447156151969104548496766226963385862336353777465707201961415925313463668907788471892315292953416913739078715760101054468184247253761823271422639165735330718764099471507299373773627432738774666912056291041439632947745969009252265804245628456657671598389930564322586580091633053782562476427778163233309629605456242139452924049356814476377426335385490295035134877852594823926676837930826607129649906123750422325165513743959400647978453267297444512051226876176642078709790629643249633771199385874718484682887965920958954308231363321134625485166343185122767349017641614047157345484459026236462938377988901568857720084151234219219056284886759469159451700280997256286630528646258789765090729039156008742875504588849116597961864682290139609572567482535602553066731211939625718951531280667955668347180568803146552726996610672005656719995935562559971039149729719479686762135172213450994047078897732125207208506025090289504235242922282679991694795785092865982998038851898854775235014577513827504313380535391879298531435495705830601088112516391619879571750719967785241616581839914880102422097261353739557734242204741750607713211898094343050536190514298764144437803608770438819917944795651949106672527537307880173493613825525881530362102653273991489492860162718684482474160448034330573183773280047614060976995156061947255896254938021012765116415490163437276215155807523997478806735268588305665195858211365786102668016209194528983027908460597859547592216730329303277160003808664686884891286997449566638053002007909568964816151077738723905635304419679985143533063536212285771813271279214008038896394090816544687075174416203368085995521118098036450815300995563688621582139099113844038557067770383303790653956531309445613368242811610044920519436618784649693076835051223273657866405215137839192932022390689982854652637977118758224715347939464454628666164417382930706743171904595043457744835223962610825107689329493201325385815570476163372616495032436574856337177875074619539305624315849660691092798870298049184325522728836351317972734476818093297772697749011540881892871957116060748450159628669851407116878447730035154466975073802913518917297402049532590507307558406051621727838647071516215558630128374413739727045461020216854070426952608311505244872337497440939585457633856631386457944838723958417600621960869816560545803468683804791947818504573488699463884856147983280413735115853633494310125923492476208124282453510060602620810178503519850404577326787758280687440526820842713920674305417097301086569888896952312332939941278045936488677309935204857359461850955663787313503904634461015020646905411831742522625351418773405128740780951887435586214170816797285170280168446421381049128812564096322264496842424063775634279485284123174522240300226154617805740403626413151171798227965801557280539963131717207593591157474282898619819674004081233484098542166241219557225397569326444680569666513013029112833966584947554977483437542834543424379450306116188945746930420442646434686181205572299586773702498850854931730614825717186069349398900956465747400052836911396874080404375574009073331919843354081883548379360486263808279115873033329046309569034691199354092730716540095148776884421270361178317634175825371517927648729069627096305206974516568885923798740477539531269273195232848529721824293120411745103673674627903952671099648477230090387095890828760452804595731874864104628981156709384470761976413924778917339370315249019966184195797073960354637724856882767168719292488917417945182876671023239793728384107896111600221712100680564455392861752810979592351788970115516232627711806275015416357926252504551419105652480672190057261118388040255113387626252480999175735773317139954145220434346295592028946463040954760290328662536995470108195025447321628007438821024682910012754819602887959527007411560912516086187595080917672679057449971524618061910876063843368312568411915204170992646455648896322949542752459474521239895311314955411444459843643489512025459467314223507814140668286783649293651079769979441901288779446749432702686485328849455381843125535362875940406652039323443088447523062770927966885066137902699973348031163429127432027422623437299812050201204070293065039909181852165864262707249590366198372450497503167444722178646756093811048954026536524707810507179767987948487081494730348082324705541627047340755556039798727288202176599656147464700712105532680463346870011148602230995940311464456097752041591808639875982256454704187648702789750006455560802378199634941111508146631391833067947115052657016080977277722568577984950514344672150780287906886450768555125656366463549404471198146583182300423458888901764305007821327644629269367073109247044136202378711763414817602719537448224202256984326676684241252253747252296492610499404840519184247807223983538417101283094959653530116842651069427206997641208953537937706900883351223176478755277871500949648136075482856013676862275571577881155865835553298872553349667642397449113504424940406348616163897300272808838579355060597378123473929481703026868119936318968037234281351339241213239900467779834996482977115568852610207313032093237173079680106769461840792355305082157933947318505365674550894863157259500180662156192381834974155724893182069679919005075583428197125597960366992069277051510210244160302125964025817141141245162883614610549814012290259248783724196929318172985286183652034670695113736742937631909015501223765166570548075527967596669743208050052580730551960119342422482716853124021844850348245832085307732520152955308491260849045267742892694990015165675298669997409451257373877879493029963816675502576502480997024498325443903036643477231743169183439574593302345909822522954363707892142113398797508355719778187823147324079879830101839018563382446971090818222640049246585236320414494290909357243181447789808471742172362884049411679069655947157356432528661918552754708739874567423661233863306190095559689471359116045161723504843031148503241970485081964259286537013238426115866213146272046950786558939344324448985372808038372962964137235965064014571330809044964714979091693636290574870134279971306597541123020609569229916628657564699050787979896204829104587000680861081266140288086448333946811463150528134030786647048185431809732544797743380747081994962447772699659668975191960233055840004283206993988163667299123263919097972444041716262926252867529538473796912478321026956614943999548460793555136549944903387815341315450399618952895241806968982730093679263946141200071601652427113268645439011672416601787143032672956851386292388810116692687808694047901326815690897356224405787687515565818848002818306235663254723538592379303824006543517473998765652304578798566682228050533667267744563987671548358876197474691760907348990135237920231866202390314494484852158423890735462452321849312352380483650810376257093615905521515855749683630185524078727980647305014457993009648741681885449754322026474960191003472549486911023150229346887429647874671876335213650454533055823688021867009801234907437391695487864913517956460830222050799288928207471297466551980794095367148175256922015939666770990360187188868884130579377290549319387195841859717490827488721403540393754853452543478343375959586660661669928751011014635542862834477261185269485508636053894748187427890772944951358636035365142839291080885598624783167580371207920492199098844473554149552562223002547401603075450628201547426493469184464638231404317410937016366964363635132219954892635344316807576248933955259509006198037118939241835317534110938206699276924667459910407110201798383555760709501666672368028407260456031708648059593761942435991782818573301470395743329943721523500652669461658790829831051949863992769331544023514432747124563178961100583503254615361077343312711122252551418489028110625021987935988915039706179350103978478859203490551051019096712198108589276277709314361418164225986724538996885650092992443939613956074758297914798765705949048074563643848433943697415764255339301919266714470411709445406940468856853359279268099618593104978868383746598881632503714235131555598266597684077857063476196253921022549156783119910444439216963934620601700406577061962383663098566083609801592019237811986236856665131754810869286375930048948209998989028802280489413308236301100397697294001985214894088266438654315319370919449024936349547457071048471210687221309140908291494623668649486775630648738996992343283418704025897626172766138805098935733513905672309299938599927416078757221059502839743539361189812227189777322798804642298452204659041217463686166730933413113802996255675500419886196514225254966762806783643146136312276319566908071448056263200780733176690030365582037211491659131452462802577560168246236026781026463891711091593772094406655332665526678563378666355822874033976601037849580722755099725430355596719299733065936366418602100010255408935365112000790011469315002129516761130900789789495486416336508843497704737227871804397557492723018891471533739196656954700224594733688900826965438545297504845932291678279704827096829570445266044893201158750023947216542001427026263253692146202469573843608393980606786501213770266754740333129000208920992176665454592925066719724727396119910889356084446149427573888866906217032284974824953160007527345502357955635490507298710358377902326277720412293861757218214327935026949979156044572887432415975240924643087501493422807570653866399227716405236322743022998597240113217859719801228319345466913416549820758590211922382753656465960030043232427633195282248102650417084954389311746343392111166715313635728559023674026343268309263740107082558116029502645263461170371062443233186526948818542339342454989517577523842986048102611611962470264423838429819931932100541573926121221719987892391697849806950915957606144067968716115763149724184678802240836530922532595499746685864591111474098832948992801577872882983492792701740461346210958571309986815605742255922815949804505670235163357125699332294314391035069136460025698274894829088472582244539437313590193270574854293160641432849423249071546581717692344544516255102642350428993816257683106471430834136144239046512586671677766072007630404794881148894061855090317117069165711189762441812649670843180028797726519008909020424005790407304331261305661401319422183466179555141834184477845864959404151918240717566123016983756370515827336161600728404411189556837616475307024882804588212126892609084014281114461275660189032505915108541814872503626656302750456307269307011180898067705116899443798824432878655187347335452260329769561074635996606070977153178546966617159256987853479878634280737381513787894180356628841567871277463897049788661772905880156365297330286319433460860523637943924950640744260792938041273771974430860969580658879298960735329355050251770048726239945801218635693148389711304682748935306030760298346614028572950254112207312106756697522262101699939189546132510086460628356764733094486887142906008654128207201444237375317364765637402507062627257222288011818344081358694320346131648783452624313772121469032610438828120807064157834799443345870295298096705330392022987200726138319433520287863201510647579921007211389736976257296974853136670981451099932848632844096521724310604242214065746833380859419353470173718246019101171421594672299302206739192213630732350099828765300759478454028206467027010103438752417864424670030158043934555519356988312936446547237625052119655103818897743990131219445989900679535774071575564327607058696324946311545587817617503481738950907939686433670905398467837124658014201206765379435776296796617924385233654213674024418278821726251915970014976223097518597750747239367468927582053515396777881551424012673087647494860041731598529819994229525686586536843249293484353302185196719406812574946895682567547638518788218281005993553628100444027823750001255687226839268054391432624497096459573758150954262653743694361509670003599557938822672870726916003662579586722624775526594389491132146360122318656489586978333896282979563628920366117574212069153814880593079700164309225319988654348698574970857649228746957330394372241020893715120047969823209760628610072519669048336663234621923505052498037425904851494508461663772985634182991844517490624599431104968354681313744222801877042680065295331948615730149592790162665936033373875369559532584443029342771855587053293397431924418870640175899150608106618451078321187789859064730988955381992402880265668953046415539917261525914188072677872249424933398573556371391282095949819780638575999120861238683203254199173920944923871552788008500753952727793293558238634184891153304053478241115334449719222040674744024609831767834354092747527841524047718145288699635363507278903152769668214134069892125720788032500406232040905243506657512213467240112524190030535507330865361914026435810378381434582315211991415089105316946951027199220694167980496259965092263664962804909351685668719066293543246765118594385163193625417554934377939985070975548186959412755252877834983471134369335214002639565825256626785035770021888603832387133504065491471499947950067773608047801890411065943308730382851095233176196104916019256463224814998432308165695364546388489964196717718744472446742797221183921109448521861632547555414448324617967548318448000128111050829595098789920512458004256584304613107975356860528755289568927946010268809486152454727290523852124321408791228697360783756536994793382033504080025510131265570080393634782395498879447639068003634857152614126635565017178173118818517307217067848333046077638407652974186509920608046954258341622263266705391597528466492967680594253660586891059035959293804519368531451465129988134802689239415601032166859066100297172812886483965789298964118970276306956583407396205711277376814734404120799073277840336411556944402147440788284847260386542032042484881174642938579931475966704766208788142015972298559602393966724856320178828951535039305179861658658291715125182074421895183562557752387069691854733656232491174034682900772125471271039870184419091424114948822167708312741903815725126986593024437222934174110106575656396010428777832770997261353143340573082091885164395860209091980891922278008362248164652247571871057539862931575362213693169273480765105226744320426513046593975369886608833733929292760862451417309178804197093228464744803098886373167710997441639961851231416501914185343150867488097150921049812892414273893834333434734224818389300984618415654915170356824524210049359662592773435440938042078135349363107966677779842188041999274268101605710535733524308342602570723817643983949181444843162486058155639468858058343790866374468098443954884120101963559822220196065551169655607453294609078132012253401527249239498303129972802975512864896732835774526609715637137034588123465006996931774303792195478014540834539091430630488841168313784477321195968985829026702308694749550576039321081775751430116479667289260508972297787839306405439230521053816136357977164960039457110709645345561035630996944384083657167395032324339539038895035696864939796854282974833924556788538014171037930836252457208492344112791470446616963034436931615658794033683295907608605478437024721451758169263784479361431431536081886271297681620185164226445127144946143921699376146221462029309109562605638035896868768118970558674147322603884422411372230006949262333954667552823891324089110741660198600459120660462849989540880230076203793305445382641330627673460360941288303941144140008979662045133454429895335806770807439458349776606508460827500896418416538714391182327911336563124396139786879846729203539727605897627514052425995651257890674675550015208906361735494541820002969808302790412925594250358322841781900672710167020785555480054269580638805350853132517061740200792995774536563785383318155929125415951344598151137674883923421704848620392051246810021902961672973881703478729252530687748310092616541084450229824063818125070180705263189181200049368122620415499818618263656462234774562078886146361888778947067655051150394604010047050601913003542938143520296416443588699055278038789934919272297863763102428929465313577281816828548573319514785347293743996256984756193912725487858267449906994063718388038957309561979865200720727293247223007491440089181089614256802523708446839232209215773206457749207321820311993396954008468971156232832104116407164485266383713007593516352123429628409003250115034075886481410690650679503738931010623926755805691908285786648950486994706135379775200342711042826127642355183934100522773994262912776298455590043337366769660494574600247018464083815727779145625684434038556607017683984306033695836013817883920421078254212058672478115967187310324248704774526392252728105893372333718567745834302270452758438151778776177748179041562361155284556526443239200689491331106286241603086676218658279302067324453951298772298010450311743780433343466801519803247892618512814926310563191111109834689165531902581154609185366539060707742876990419140788477784583664769233364055768868156622025941804355637134305158938173604845565641938220246278923239578066878262171240616053344095945035324172478990039717759608497209051025138782202271670446272661065557390159315633526319584019246352698745017440984500140316974067451987418423027184001867479971986981227867812158856991643567020794632745525321825964278318601582645863333197667225850289025200170817995688696014239050586506782042900015455145841059175495246121022628306852126418181890962292034952352954960865905494428336841170963181985988135545752621272279779918994994756605571777165610825856230556739622072095779148047307970121406406963202396459183919096090676309498374625026584529817459418292695951724444421025053260430915699695452571371741138550597897274306864735029074794779697175916686693969795373634710337158341601898957417120208991632524030833512732805912285562981294419738121128972221028877755915440360467359860392976190104201040142807532648225733073452271327791248690517064046021037768010844276819116193638447858767548108109930271979250586355414937604977163468721474520789296732657284769347582408875637941890331374289178078603993159605690576084733476338912396187069878289470740135749103741537667974291746311251047958794137039251171134859633767073703145733204157149610073177390641700974457829232343582955992164618805227491851843746732132068675659494401542719811092644969130330058465484012357803010402981031773097939617298176681860352961200072371046626725973376611309889088457585620372344888945371533047060201864109990446706370950259884814212592536330951300494256573882136243272199429973429997998058886174759343331949777063515749514024327104464893174356506255939687838145288069604671569810299774635379836002196380665161274730947228669225737393262046105730012866931919200840071226982499008165646446944833547350750728615199023008833259692813478109655329481380498665618147873894055098596544554228683046754336337616518085307758525866433026221322801380162234060279655088212086992215356035138567046764285228389468986813277752678908771942280337590905066620517682162036011847387487216793853691558193195455621005049416218170749486800602974582135291177698171498176448313656063811039849402887993242519719209841975611418118275527360322297972082658036310186801789583265462223423842354748006466192435236767456879824376639874177827813925715761176909254522776033580175902311606907908999301881880991199083155560555580559811135230640881451476650184980450194683792900207718307972375967505895777966584563702216844278435708257303543037380796928265582570574863232213458701461827608421408074619330457876570033903761803182170897468985048807807722641681801797149648745566291391452022700226493509819530687448053180165578306100907015220002406677769042725670621353678362418084084798262202000679376535814463829465017167840713825077388546696876258765860698998455064047596556374435589640213052613108666459639522704556861805026285348945960192850062223031386334916388547046298612169501792218484216642991355361418985447670606258341295490936746887812425227780123050281098229353009488642983175879796242274522401570052622495761592069928814503325148760317821492026496652963650330728060121321384132907921821332193582571953546386261443771714246683201317519132817876231861193808163967416206978284749707811167723015145441497698734991598309500632071330179970702549871697381605996350336523242138888387508899047171412423570905734210007647815424546542360824356093837249592060531040425516006558203100127041742977295322871146640464369117203920105213534646884977355253329645078368990537113925728802368638693571325623233901223203218584878562797882926333030005519412701222876694647170974603457454999344716453189452588724119259357795586282274359942494714455203246386407889687304094212388117272639319926894425132990500593126252221051788650478937230623390964419682264589954354087634573178226807219901990294024934607808089065273130990145499727298363060444210810634598186154763268050301503222119812836835594909640632037370587930270305613982793093379580518472999574169523566008365181790495693365177297533103776333484030461675843771636462426552946628936998419957521081321468243692538110344666721494573324258464943140674436718009111354751104336205715185597175425684007737512193222798505721725205517107008511732288617020988691480296398961529585945678937228954944396783176638854012557007841891636146077449854952425356168182028583339097820930624491484257796698336204831967883049875309878429192504724864394432698972604424593572979472627189612265475685425638519748345979899537129592602880129189239346867943389714064922495697516482104201686367824936495598200079066907610997682183450204313933691308322392761464957247898452535330759467323075028701721475667145948207662912525432153291290010227177897672198444846367294535705170433750722395475763842031018647627897054015263934853924335766588239962659157811246422357579407812168983301690553123168180834028139246001278208103396405832216213250521092869891227115453776822225678897660746593585859364864982704052375912811657523096036351144118944594126320768835470624737318032313123919657326568313306576491973001627992008056822616992426020753942090938921454952278497768108660931098784682765195677162187028024676896265469964443827204403795728121635703188624680868202014573991537827580582879878890374178019380631269827737377108254646976474576108158018409573949274689178773524234417819051309680168709494870663777015814950952912296020882719120492206459026540054032131984950069413864860794171381020523873737836979102383362265635396457851036370186556323984075656025739124378545607344949061116943729924864480570560592434863407815663794721907472231152522421462033574455368881021089909805931633463132851322563127032499018965841283032171255115493173996874963600923544231322199641412434792064771234956440206654361037960409570624713508295980660146067604399473695045206357686226710117274001259426025812569593401608345911097858274280861520321055153236775139119827625228350418621927731628849468287146290202570852298439653943600672508323633602239997269802665831868991839533092301527872733512866033207724797550956685437044255879285818913123352590413589840804265994215851276245486466418902862613150336136308308274022116560269971597554368356119070636858303206911011071400792192685919425002270577452572868642731008890776727756893462300247184822766458500387818728463293823522353181742069856682158720511086507959231995952521980598307638044731572510861548157526405948012601437900793155466149998555606827188886612764920542070535166268919021385643224491811017855321945926542621907508557472417671461093873566985372565367879807422948335905486188813015073940371788850652912120217972960402567165315029880782780768055828101448833219719525635236275645882778474271243309130774776185966600667996913178623179977833508631807101178840682741555275034530657621181238191082750127514881049144513589181483895232881815139185296838210082325222865832002254125194677265919460536945944674108751677020226178350423521389748645248372235924586285901776299473725569625040919595180339347897448733752488102502613579936908774975364923753900685280552662144684234566787784837386142186777206237104960627592786064436300948169239262832765267477155392805862025471254353761766699999356954617327577805427868539494279333344891590384292921377437720768139108265695918697052224409787186620202415453039281962727223826047593149050802158904433501701244177211942787404732152124650386966439203751515924309758689745590078333629955534382203138514809202626353122357944277910666324975748077600172729062815037647868186417762866852195466078245750668724457591102340334399800371352694888591885484248329858717743420538619931929245235717758976597535319822925800857341693705858940681854410270210628827016255102694303950184281227116848371512159684930727446090693186823683667112651970538804108726021635977356191955107773489384448104075756716742904438393107536231779714551971528334884571134060649621394121732669897493783617964190318924868052086155632426313406042543311371469756497055319465189365024323568901292668607126405577938142354185742430415659672038529931865587102114349166426910613476617723211726804386299025177552763387915810478408099852370300897837764180195855421318545733068945105592370330540450830167959275950680927257527748443465577127437948534202867826989443939591869018994667666582817482720611208212296040559313502906061388802537099036015934495769542172044143289521167653452990617876442009171443930220383667828326933770287942292136661505781902249776336555851697254728229763447020815370757867207564056190312706548714492764895966108219604546838272273159643426535715784941703783652390213901954062658729623865544799540128656028711336416362778586340077089483605458889441036353195126157287822694025345614334966322833005826760685668922077198784987261571178845212764616598584216246753143118337810501498939606660220720146470426580501801769495472128541807081906361656258275506620859373136527032382560391873132624020831114582910439138317777544310102871828552732205367119931112970595218254596323591330920572385546562531744008924157697925435089153200617583341842647090687991749105716612872576004369138973156436534719470995854289690634273002027983640309551731563919819069069873268052349980537356514907980955236121252680497936355694257757019303749387669389542146657154430210525170337688301971018529037173495546066782533479171189303724217260224003753013173545646332885031973445946526729022935428968541616500991047356585883836601813365227925999509551057947420520317314499891368662597780055534513390134536203990748627040584169025859874815865631077677930859361945767766334458475442764016615507796170117980186002806605414642882648463672086968975065712195092126424531294497214601172269480309556584130867605627314876669993128862645319036480510342254488401709747649635033731916745776701590863181256509502708741756028543671101044724479022990915197152068989998470575086713139788883343009225229938012359433221310082726205465060208312250219041646526202701035150695054136990387331763938324311899231413511583600680466989348461430216647027142002287882905466208722899551491337552196096941854995188290601004824673484672583144540218588251015527499073129113968038843205966869321880088609494348412313459324727745575454096513303079643303164051619820361343043667203306874809608723605505469904180151953258051682526000229821812069911791857839590644232533559487437405211032898148784358084731890364518981426353662731418451422881026945276584641159550067139250291884394529335917057232223711669629687123609540956251015617003289623054705931666965642805888621940986744841231772218336589613113161908483575496768369015358341507413368506799062965895625589861401515585284902140838306460774601920437940736050563662388814824785140770937064315676363002497656530479865871385663185297755672653281365999178400964823849750047932113085249665920465531007604780423028285824313299162051153376070193810234931487264625893478018684531709891612626241514787437684120554255279811894149349241002017704408128968940755613695208773160794175819160729330657508058838349616683087551413246023893765906506143367269385598438937249572195955596273269257747375948798159240528796193287216582880132033468635800626337588168942318168532147756108495631429524082559752446257898106495670554116072319835867910447964440930038523136230216176018788605593857903865946501042602556312793442001423691226236860585336156474113459163826830154212988419513144698987479458171344725513916122034950739317906514246687121203955838449450046036054517294214360832879121421909446633220247531190621099255612904924612453927380847252378065316037746467519748070702212932815587888460547898422443895376432359784928320297068708359761841368772102190119516158368438511710419958293945205773080896622387139995507507872930694201181697420528127110258146394726163341775688914438546094109694297311016186790697729787268686855966346959178539272344039415821166230114456625410673695040244149805382864773190928048092107885744926133989271526195172933727890851702606878410117428059428853675960494534763418599916843171745171389258156107901458828939237544536864244290495654396904003753324884388703628088414054738389102524064910132483763259885564596787758439402070154538763658967606583070738901395197212578320179947910735219463601539187076004814781220433669160293562539025268167107978729010726571516627875481180481549962541034255158162104126869171108210193690118555539441753096465681389216317491872066794875235225878912612226046869612170658454899630322507313534144047202892018507414105166154773799133211368489020352439285916076367712485788940368013146711412690412432479923909749397211355602649999430466044365827574249304786982467175338785811570664934533395290616003747538807725049150058447055285358535508360756468908771280225566872224638515431487524544587573696904263313024302515660382593560582441023566624275561158064097464151193673777827660555380889629134938176822583706792599469043544890586389300218804497295828956663135425509111238857348306866525962753649881648367574335772183836676330722560499534129823334485518364025190412865244070607290355259998856399694574761924772017752090984631320085334511747287728449361279290648939160900804854069352477163605843079409477760374453130904425828854027180345786959661813855011826381725009300783554206402616266541229919712188739656677597858482995499066711133966146709479878920716635971997482131379757330569350700307480794656860859532334657905858319219700177775639433174437396227030671684103552485492435681253421990899799870084500873927007375989657871459633850266530894861866016716030845313132521506164661700233353307295856236110704828349501991486930794144603483152064579123172658121936669913415127013704873034779361045308549703654400478786116821973115011503380360556915537449475681203932015308789303739120509805564517032470983083785818583198930996393740816090226693952167437851256832784802808420306149538865826684414018917479180148900876957047312189415153852171020610417323430680709110661163426506087909330547698998155610994513937154514671511438138441221457125080418972541572057330392075579494838085976477885071338779696762843462433649517142179814229330779987969593867433522257797696102283626864014268979342438585563034009227336730073182951737363934990937061004509864479174808666230130766732741564047344467374271296010485809439376867936008227633936804371827600373085911883755092719784677702910689412995306857521569552860368584729172304083077964192096609112208288147573523849550482319590820022065544971670199530830135502346750061014109276503364393950233115136855776040154860783364488720749933913725452963265887233024092410758123551607600183591004222646288473665401870471478836163136391139090540036494418207424702364257451891345654284192227960195260974048657243609793974291488518784392461767085130868673070614240388811633621636540993532611066096912482945550425096552798103700801568601164948468549821898463554346577603414683670073976335004569084157922155478828369065516762292455145058091461893405940872192017979475879064613387571475430594316053844417469280721855121113207433946499733138025549736134386520784996378655518429634110942640921995564525960959120347905932526203348219994088053835946162159567243853621103316259366978825775949929992343814393792824237695268972049041903926310338272160912013187304733882503029347061403054494319702347271028465720379230696089223316526640609122212721384665324605694769935828810998700036508691283736992686513237086751332578326162242140447354355556193520368663599309735610285965080226389501106518430691164465550944148595054765352560092978633357083117286025071240232284403202251920685598814436235679132518575833143081472816589949235073041210996843819149531523901152357110519243772434440562585829928541326102463952949319993956222704522342834015808760064897483435336026948559500417175702073636384817019622262808766153623040482990066080400301118858439576708766676539209100130494630038700655781103146769278553407947980724199899546863335172030577475994633519518857263126227636215109260361436674196820579374130528955449023103347459837673721601977051781770653299780580614486619703754638568210154831922679651323989806878442248352037604517382995566202042487829956922810736188807102840503463937265585869671272038273926720294633788074293339800625777444256984126798403901318026083403762487845172949143330132369003590602726105464048434943190616999072450936369268484691972222114432487642680947743225694736466670245204298538075305059654736769117478602878354325778473045819784690332956101451342637477124731820200762426967582011096748912489192461886300755223846718335947469637546528874326945387331106015135027273730482120082414954388826942329688806313309720226238663522706021969908371215599747750310093585940459367464050397882966649021848400835004573495507473338587729909167153410102936597715570023026658282607395158676375231135666481448888266056428900002112666676707451062513857465469514775469089086595872217017475775986679196082185642574812397153790528656387715677799049460247041774304834821582817749256746597821934113057302812724851405287332293809740378025750503174349003316025901886898031744780063051792851044450995296687918846812950803165359859089035198051418129654451136168971430264277168678949163183948963042827370016575879451003434479074012101981393711662493088979951885849687059955413186238521394821437314389584386619217475484101419105451773030420397766771744315624377055090553982126848171521169104032511991721891435559743404964453011261690410264979547803308648435530245787335639600798442313481464467713651128907315489195411793001004855271888246327233966644878891762247397720345956040207524351987841101346213077618524045179747678398743000383317287709247725976350910197842187817928763965181315625028362073852622149196729606088658933628695567519070719095633486770272653872846577161636445455213373357648538274177440392779659586615841753004824435711543968245756532608107855858107365976794339939039663601584490277198480986221056218851921188390894359109522601410625446278726037619788934756496368000778467569921501929157269294546770799021230527280632050127206133688990630809138656021958211549866563980751985895059177079550455070391600123450784288328313919868534498851770858663971596669585734716032005438481324726020025234505024921631248025839210742206769215342100061475417588552076977604727907471669007873026540261704501464868734354622828122076280514836992122230552493962256774627506467747160174156521863956955793522105614050551475215474047214674541966000645190541377737126175630381552368579043947439558407464029863516096876440768689593958392662291517532129627240084393807489580680143518073130918235944344486637197554043008500953579641656890649805093411084580743797447280302252724799676492281971659856187301855991349815076556173442570882377701969381665866473397850939055113163229951293629551999410787176761045685729749795722019496314472368385942790763655333750308282983503609536489908280964413513085623818777255150131302254053251532759632524899111613637158522622516227048217240563185659468744513392847318789684098268523651020724484234474561071482060950136311680225193215570530477833828268493320451714711501241121135788651361221906817017937982183110850494138633896177975311965664722535067319971055080326795347819961621653943339027755131170632613087911949444223442822749985795279526915297224934172220829648918928902053374793980744445934122956585289090986658700551259163848883986519163674152748477270204715921222397552368063025501670665102784157989735303206258246567608811535815548857110324817863123175150284700045640000241626632032097684293444134746851621012131051119562628751947560662461587102043223439522233217326276973160925038741827693914242654726253527071040320941859430300931478557067358574878455717774254272063868984615997466665157518812194965184350469887634895186204007822158349400020580217250269677504470469581161465563086905260422146271425806991892110044460054263826349264972291046664553551221379245404413173659960162871115851005209285724341664476119374841821920840799413487623679203132337187573091127835381300697141761805381396496581077953070778934174760202711388619427702197837910859875301850419654654995341211889770407096824639466041589195181669190555554366657196476376136738567827101044702645879472609954033912676566581130102033991751698585345548699114193673429080274534154086185066715426481448597294274489919296750508576133577283115788645501443414824696764259798492354449239300222625990135028056327792499602161212829040895979025105972178510425778626397164643798464365926297106725162714711083088288481583731785468078886273508236376542626690965154871670177829044306894255988841498674787468140219404363925049121452108356240454385019247885028889880435049026143768891463809209131944730025633233092594914564078700910957582185068314739769787570610297269877311338016014163681949159065472652595838058869014866031109183917882743533519973398310112296449766878092258146241660629498030382022446909366444923158270003850008983586574839746908792843973494312497360421421388409879117896595563480283584998568235144367268714349495370710828904555857212599532203993845383371706422299931798224001276246376251518559142738506538095730454553212289558427260926643065309648614088017280562507963853234110954404141446152754869662535904826985444402887245807008047853086334686701824837919725594114771400950654912512361393819484789738133831884126654583996510719826173279351121992381893998868509393595866650449543827617227657701493699652999389822252180739012089817504521744504913351367630576356005986435368815669936145555018319745447889943895333670889867990110532557798111581212842688381788151720194951643014111096998099177449732955647009615328465668821558065979919123272134273265362662316792987799118043302119987852876123044433561163593754146236894069936964019503986879038737429047410550738607882920658231883058860556638413656232036671808966252261290386740310150932011107521853039490656152697693764763740442289156165080509348762965725613058711926603574332045855525405819528003577147700982210769276374115419958713030016455343415032010657407715162791574746955215671686692847659905415185748369273646208077768583629643491583799894874496538537035086036861927520754795797626426259041345880250050605483732327401409559931326914672522656352520390225061445175217299657715839848979494115843614252409492956816784389819216525397328590117438817337884408085618226755584965284648133550508454875853233193191896630069546145160308873221672656298801364663930360029418651032958887367297208589443692247298511149760698279882689641952521619951377925542776768082038665346734134854920475078955319038485909599427718537715455138719040906140435600768457549686828316922234626669016817441568431835002062000166195750698409617912954094006621375738853496119218553459829155237309814517650431109364247864861885280716690501463551318482314760594763456928671216598457396605139179005353375475454083243138198914621897057099026552314838984318709679218756182000236039427983219429723137519211755425632369113742568899880856136617983662551440081441612906380034284924545898075426992912761104587668876632228715120984332427377685688215584736566896355209361525645768998068034235884402057395918815416850564978792494610146171032441520061193882326546004087065816606072768010654597899455844804535271106268813250899394326320601836023391038005058729334250552333368430284460363442099185415297926439197659248173076413241211126996000700614055776466417169482467693148241072391339736126625313311000577920675795848866967509405537274948414081558082985929493327690862512181281086196518119562635628304744916254561973607752921268759918618691721350681855217967747007521157333708612769712274590559748995058458560563398137121225993478708020079017432000388304991292114314188690656860089922701523406186879776018879636286228558321783212925425897677035459121911243029693867636811441375574465068760481670099205996770209198653608622608767117184897750797174234758933015928797764864752991268162232964473600157160805747949914837520813726256785088844198934960483877916832369683882107187091486773479318060813116069608199892835346372920223683635092760055742819028794443565495640797410801403881761128252289639638242336917915354045177958083885648908362619055405546488252762896731464097568418961653597128728922092610606406588503957638396847014979706174372456776296446918565090622709866730608469644282939334680743636954346072711775628961920631786933635520589277111213193391032837320895087453939557000404917587568218241249075804329798719658547281905959103924294258213148912725904600665991180483058282729920397276612055213248175821838507181759016442027631641773197992338444264532743624826838124496455611481154988047573724661889607370890906475170135423521564606700830904535789113138894450608974678210669466412628860762787415269615717050311362235910356145882749209083268361997354458367407986874709659844312805522999965595225988487017738850018885455973456635730076881796254177427686080479456645801281450014836728814434754269900115028167291094700450888467004619154511095575289485164437719613338694547119227056405980990254416550746253885233224122040569523063966382255011063593346480255385103468497629955322246780268301666532597237735634551619623989544523619372317981321920891158267537134452819141045680518164125309460143309735855726535268023315606483351029209863836952266464391743640028993004484964844696332131455193333140411450353876455319785696849799980737866777801652747409021905285920469679706884878385776958169393501819964424861380404242843172361375471565651500886140669954333387091208244577824195119396703474872619810627736671630895161342480362129266224315516323572501759455346452870334659853993619535250613043196143245674392033096947194968017168691173680469350045263573224460758737319458140153161367699173111901551333574558355062994405191130553136987987143230896919403376302461783388463537887846564215025262868756955408669673110110924620205999175785912547604010103684964764046393481282256504929038481560297605012099978613303263380346493890670433304572528944399135922858490483512426745637716699509696123572540920359188275024099697352143409383465926827398706313181441207987077355071287899816924314026875402681362998423343206889352956292862190266036282714559142006260593307438630339323231685864679150218235069229722651648271709505516017735477974646501767713955314454395785939537480050907997865900314018861416717448572192849368839345737060862135654595123894653614786297483412923526634875048142770431639966357945938248510904163161130589516713443565417593723901157098516701127181861485572090481608254090264337813706597073885997549213815524752597178353128293406362941121486170751168321914428156355620891861240902112536853742107182125397849465111009183405628518117999260653623168863429578959728658978265612465923563927890306249693526862695429860395305710447967990960838536577804180424792265052262943414556225124840461216724529260761952355973704263949101923128469452669608980288576321453369404232224103658359039978721067471490093596732621054234987251150861856736819775109339134891353613050234489049083132514192820058729916730603221122775972560380535088230923985970317673927175602210271954241301369965995579335457393232036429414861403388802249198567435064326099515006029945657586686911295082368215970291114749741596722150703006810222398743330737852619476927392326576382351609309759003271645916871254529032813890518772984122677601329583082432087077034637195992397703094169448924340807061849284274830641395016870325972981294242904217701978962086729166262417700358766171804088621421730531322422837716231291586205166677792852932801275005707876580727325144823002240770355251890557057495340020579649197201081759664968874746843339681205130346271426854235410960402761951308879320929570728460054980102497183460222083346382935321374397249545265641025367105811524174390246878173245339331611923117356741595149289084400250814895869285473182663376808783315387325710323772721603667434888237558722598353253003322344682876063413349863100792368628082800488752866187401589169765836462552429498080204355882489750555619573744253307116514485363003640619331979680008551071903681387747472372105749874476437061917586186419759358332140035516952583484194858779276704308282361982516914945591869321484211616450811088547178497702943480935825142737179185885588447153744281545295068999577159976265936141070586726815544860796821915092988711364296263641669120152462609544640242970744354139842651451231254175598733769348572948368227331209306174954276347588711202726673927952545998635036963188639526910859929254921213129487642761334011791781715040596751209478738360893878675546886192121553212456041009366525191612251967166849774634563392978704298916734796191040777451671931148012219148615951061482228725277719740246114865260517273218741135113768050117188575838085963404392077873272117023207804255984487300927716785069946175970491472349401640689108283390694086137295071107191950961122402683039256978431360357414375845100907954893722507900725458865822939833882718389421835086267086229875244046988733311580427209909983825916910720119021389751254170494230116763877718519221881880287722630629768042733004167432740647921284654044896494566313142222080696829187868415110800557670133171529641158894501217464978906369887559059159867547309902503078667062325706531924414565934463503344048817143376011921652947705486210088047808264004060877394505355573622788969014495456835634662540171309888871427503959174610306201084560681748680034452824050676365886688438083854587699201792287809371588854434946539336749671644354138185381297869848057715327953707249165829504772557104869842377742748702723033072849787573222056050028920273776780189714548318368510609270219166815064151167483481602978433320224495162690059188842053478454542021180682874060271221202413430272294687542409341748161923626800943517262632807873628284193351074239243260978653660316708322691759232184908327534709464714757648201631718743153510396287868535481576738872312568452468734752148421529537205980082074877528026712388683420824283518710398294198774548073889754475089533385865735937708076864299136630189818765467379892438576126835062114304486993855906610325163901526639731203002977257625849299336168906615508369585508476550165389005828196212204521810736608484109909169505241101512140330177371616517641258700226609471081549650377764163130826248923451316439674680313817624258558880983776997337334206315990267673507618559675411658848591181678822129029034137950248196727683695210480845669280767367384674677305491433386764837359246564063612649221386819703097309422262916518078183875476413893856847790573862972670244463676361799522409080475930846524459702113245289408779662819639210450269491927194436647566564728909032360632198788092794088565758435418375523671418392102931198880850644887483165402862029724207020514973645383426291236894653146868208327968130650311313895445405322721414013042996405525655087250441691953031071183356601403962595759669499930527458924806120490016384379866540124262525264665395803395195217420498565362219357650269921735331661783154130482641144642549265489458865283073294129669946895220296805991540600965283148436264542425152658845172609657775803913015011975157013780270838657779112982929796029572058104481301895801160240313583839955995247877151545676346827159453192676358192959240837463126244856838295198816625899268724054403913035780594655782716841375693919227967648353794313744018769342319664229705020429226223485575196530119993286499741885601411687431239004362391022232164100982834575981942074564302255583969440197189925825253934404707073976139303405496182553488333026852354292144202429013751633433388772780056085824206777569850303742735018095889742323065546682608355395922193137319455858580336808961163290299454862757362782540646036898646831249744434100190312624486053801051282291138384262335750660544154738472481589438213193179576504473725792711206183946672281326629709823363265444887093624813840895710179042431554463099436169783784785294797484163240751418917404448445345711680277606148796457410524939674887338681163867788643451999247189468820559913053885519560540977834716223449451666672189962244175823835169196724657601452864401753734376735851907547895105014168210871524747149145227401647543811907549065160870086700465719930503019359460772298849473847717669379213747242321988421642431261261577876480081659226998978829201841993945205276211092081246784109357247548852871950673895955887158588082873774538346858980860030680282363232589564850405364965659238723052421197804173939025841532189568584685486106223308869820897496422983926313330517811880512861883954867008540404982734889996254661645462729713335692479091453177615873602547847370672943742199234470201494109839181822388963125725250952544906838461999010970628606909371164273028089898094992204024407199884948590207692131192876386538457150726686427446367949237582293264234002866422366746565130203953159665259245634523151655905938189635025866783365552660820209920711227810714306505234432614259080143940224152606676928900874245868246513850860969644896573082483372547720445808715718302393464328113354947715555384866789577924935309025574913311218269280214199732902085005905363299032347934618334563410455941380603828760187575018610697582815198274802024372640695455181705945352550882244987846002744096158530071866927176813316789112060958539669008936073803048846519293685012468990444671444990388759441871810329155573826737151814897175108895805037117188413281500351189912095780263119537559473916830603715356017913019665106270518194640579015230197713680335870862415015848314566459832714999084520530971165410854220716269255258763544783468607246356661971943893020935955280834197320560487537470934465591932002779796944460106329587288521115402045494266044926004736453848564443888380722204176744491580225835417874644513506898037356300663928158899025744463072670355158117773095451288877400779787967257851770071628481630450448054603348020117171251262970976523101027330174854187060704274970725683684383166933934305325535246124116234023551649294895415347201292064870750919373666238840591776906363580789443020605278214335605487901144519560278787696884440734645144458775441742880992181185013834560876752445194170031965450302750126944438455531344254076260232005872921014454827403506954215845060390152179742446896184803667454874526506159829671544737252253417909042984825305849582194208134945231026351973358565644614782556361836239504994430858880745079134083900674499039157619749273301085608164992861596865487468573454519562710677691650752761040109696566172656410342201692428968322283645145110315112724392732406200513424742212771291353122042562709611360871414443734065408973430774136743124922062435918449267226628330464597727724052438789927428551963561424455352814968407251208615551715804734783950528777075407598763563712643166004406312766264135594336243016414938534912758120881453402413105676733194904447148132700132567397949804210432518696733371308773830752460455604193975966593271033568182725341539641975562149485211328356743200892522042365057689797772748111143438974259163621943054500844353430136460198217375849619582466383133452908997492202736576822565357263978838126622341383097322194836123325632832206022194054608629821396741576591945153412197752699881642596189407821877210083519062205406375675984498968988814532326927634355854819664131103427681559294155198890434847439958790605017925054856514604140251360055167890294795798178777719727316644197648983692779797046568892765490539832722513615596259197725348511532666389742462222403205086053609680347890896978750073995916756349092234306200171302172803205285344436205902578968670991916325118493300196052321658369836163809834230359437960591712512526762404416355724826582289012759587304492938093841762381144728253312093179805252592460821189915955051386588068545822017993924923544407892013187392113366477292382931949374224567813635088434165177364559052152405051458380495805080877854280774406886945512666151072379376049436793010861126828315742751600216222560588740428647409315584330909799743206728901144738913885820475906647532969307962526921395514568363588814770983346589159139400712698976474066705466085569435584403012152045892566783077989355891885713803697174822781753660843724124494166839650636776831610579519749921605700641176725243149661467728039338824073150680456141320284745387954608882899504574995026203683555915944771781543203134891402366631937368269904593686537832672896125664131377316359260532262831952538171037137643409316303381043913467755340738330366675406116329626231954340436426513362623186699966420547014680570370694004490565480566035360471974960116054553648724038096771156170204695766998824825278693194000343824012735323572153545723937520507100839699275059212522830315689067315607506755331817923169286462001762754409901219927634517946038359785202472736004557248791597548094210333434495539771888602717803785662039637099238139348626116849695732380947710964793333686413390136722654915981691847342574970962507410164585903315199855474886074066647444164576694074347237728005104422715762011804648967369745026564740603793226438359175190524215166916855933364649608108791734887449873225905095974204522492363895406168691410151554278212674776112396338148295282132254700565225071062587968870564351454894201823630444150677573803918401563585927282574654040647463517444395655163628099220156702298828103299547643457017638767817168546130910206545857606745198576522466338325235120512045008669655726579531344840979411101323186153115378272069430280082123684928294570459259253827493579882465100871546597457329426790578180009608058118422849636303729372771367886766852257385764085069893571239295658695067592080106800120062330589620387656169385995538684271486690246941777629042707141532419814875864429274842003622417555269998917025852926454966710690093105637672880263715972169764748993081020952793155697146723447708531695133444750814112341019323204126269440381506515690730418405242584639396263804493470569721646588149993345210730510460165897667325487928498410250146521856819432673305104819052195312277126982069416855877393276261966074428414959583673665019433379318211915559073162719234624069710369776414531485976661292099462756806334293923025157807630676159321534273461818227474790650709871507991902837386265172845015985247073062807832017198629169798992072387104547014791901234276706553969165840236896232976743346704918471689400911206718884983958416984675057963419914465154958483667540545953200343765467840860236696737246450007755061786273959131032893294730501084177100699385440719641058765538145518713626435863684922461020351817249064417286184177224626066259956446430165657066856236044906046245461804685405859510628280842807338825721654025280255539204197451483447777895741442150647477760590127620892180399865730039716907596599893298428746009969876937683261106713265919155818412860915142243952039217811078837639388794175137399090425358858471067078971676802268716451658343780213404374967354902681602951964076901220490738796160222909798265747489163472216511456728253375240196388486791108960463538769036199739475472669610351027928219156723941944246368850214711362294147216847286634944973687671651833112191657588193607659065461366097584600057776159427655491858320330292221044010911563799213484563470595250254515713261655185981501689301080675967008154788081047403071983813946986216643346229635528364392073074636615711580854215995955243455663822059399609499774610418984553673077602935340868350130974861434243934057764070270887692601277661560727597009116334992151065568562415599051218863627653027134701855129528597945080608723555272429150168345562059670526232166306710276048001155889190794463742564301710985273335555642746262301920241771343961699586880085884683240198189435462190548510598872286096871025203878635603659726686199116670781802932029063866611882298644531444107671492490983986001957465158247978261391012698776719973153901600581581706012696113851865887530883206344841532510783102028006978691451486460462886981999019459992784276675269587473134350877352581049269451511615461113836428323095429391491310510042011100457546937731414933383636065927203430489656922618055912174606375471358345836145591798587782100880473514640374338464885439651944169556364498439507726919148231079002447370339927937004312955714086185587986910909051361075760066285263868498794864967940115390375663351088771910648648640868174751844191750072273577497856035777209665202790624008251486906442981786102362814848752781793305203944457929792557874867584537843168081192368752725703393312010487601863760290838246415278733249007386804695780774760235592550778913350406674302050451968376382331536521212862000100470270844481839711939926177514721782300778562268786655316779353211753618846724007986879497842326023312421711913358344786758729361373155780433886973376426794348718592828219484584871519107426095183367917498106436296990239699901876567169870679547066566769998307485579339371012090204689900503051318141698699516222098472270970117705038528613423163039457202608580630697199420855958860889864364711634023623227729377036219087698959867026229958045517099532732173832069168955730232734964149182401358672458071258660235664998000651386799545453485497746415926908447512002688071948729112398810242663191999001328844883864529825453085737408140958497766387591363275918857588221125865935070902830956380778348809860136928636181736908911319407680341095293781431534962603132452244740190755109867302281558385700823857645902495229845581544179776130522574582639960876743960923267907880315710915350322785156627366244483048008336673674741751415109976229749974326114729220838028774727818634862518674556266388939838392153362255587496296230858032227788705497383817726233907053708908955242444937415143156926946871329390087250550089095459779232066805506408614028784246784113845900821145137901008608186595103310626597770870731182183079789650209097826892916592158746296981157373901885476596495806141179532197192094169986679445695883760990797788553637024794935131472619836738515481672033837028453332409786901948384141198893473428174865625501892720167766091278190831042194483535026908081433299800573649891508404403845654833221125167520387322868038772667403820274890640819082539829580342641745354332111895330421549109443050077290477140130733442168392048495155287483145426599278277161032324751191529149437786572425223558113866100873509523244672683160691680868864173171755870766123567892134427645085960430482689667639024534131665340384715549397245516137164499551471503934962637916601449666105483486888754652797743684714448163946046230364729770822081109250463186029312603077826339186063984857616135148244378221204944777842433404750057018209445245720037978629386472594362777418242110431555621472906466706212535349361833552926168724970237729722775265559893236980243582366840579830128420537025957381357552172347794934561846331729789846012985208109290812825636681420781537284074054145010312071266971621860003447536306372174770505468183762816413163960391431061521564698655333147109939545680860652660440138584034748490735993342015170874554986043403487300214547369713153596719092145799703819502205186650383088173281111077980013758041125503345098866480111971773496123058273345490891941089241287344091342090999046754107943716391039403224287105055244022245885491923392872833367674757005773995855053725952051255348404585379759684198570954088403998210403637774989309732687046225547329863964577688598480422540605925651499966924578425864352121914536063404110982182866952277386632069493251028781232628415839801405922061026379874928776503623491332660380198044766942112382542197830359542098129793439418824081499742555017363021336037738734594834279624865402114432590757360824254671625077707743717341040568455839204292991512280572916335723538219859141823221119377164586794300865631139256434772449966339369720888555143637828352264973040581333237622411377218757083398623170245674919719211421880366580240855699549804451696389316126053468539474469158288478740895085800293367016055861651159584237368714462130224382270303032852603176141206488685730004727663291931033387613050339924060996402441333399785057316161202663884371742635137658119007438140490507036119859171427847058974079728620642214731628568776189180913277669672328238346060952680998315163104910993116582666223348426913942837584804017748813902115557125444624004402127909574045858206673142755382829814927449677579087890375566049666164662013518266898868709434330740965990221469296811501863354814735573396857957087165074923303550249523584215545996054185874050775151754062024862371309322755388344727625190529146688219764489529381980160194671063749875856968723619130746318523513488841355960475252439902169216262288931392651961290577506521605939037152025917489584304041327440172061841590646331649976203388966668713109597025321579405169839141494077447130325739521129317689542860966801718275094194289898577326848147800674410777619707593121941809770444395665211066187896087004250694271402056683338206436917392395329769685368804548679831937428558911136555149009176563870928984122778048254933070668802455169254561486268976122575038096187796165682250846511453490367305825693658950060823079368476902731109689139431628120099434283085390369101419700446972674803782048597270464243088886804010325881847121691525178743474929651761173256867596048057407309846777056577911508333523236509466720320035960809152319981579212873737023791182806540531727407189966407293077158412596843408777913734274577051773772383637842599561069297100368162809747016205268501992259208311259601827356410131785994060294978567163015668430834926164799991108318869257304572652253468670722023346449723202448224444836075784697087833647866935099384990946598052229027361472172248272498952920030034668012411968408869430931374132003109743175899399272319509041266679545294666045149476598134265874351173654038908897020519466053568254472438337544173080293216150099195362923770352416995145753448816977320537631805198666784627676225787903237642637062374545972662173032506985480067841696018106292886213714149042522803089739796885618581374428203578059264152666460095972208509992471778775447200178387329243898155257491434109553698074024188904102965043207187986695623726825876144282663674549048361040546410228590050557598846362682144299064279570591616404784406745218981575743404613258266420039244153865420650904697333761024665645653798808403798689023972414028276226486160770696767807832008568879648758538356326086127338899791609828559997424182076074652564604713517169510715059868037314345222471957053194692764190525072846228048089331905075239500170988156338463201710313740808475490552583205337999610151835131469248126602360483100102726168540470441309077770340719387886338218144521447694837411116916597009481406836982567294883043381234715839481142915306414350486165972705423698858168151794219722499907406944217399100355493069677411351114979470882470679499445460853706326216419683822705070894173699019942006024295950677281355908011054443482306760304124441966095058952763935740130757210645445868817124263603609598701851065108203229534905147580416335666347592376726828524328380265149127443054917802259302971239562743461337005081035749118316453658659424703364254554692501406885112028572705548695013656554101472100609523930206445717684421176601274293537147367727531507483689198494133672818894556776708245658901264801067136374596406029547027314747694273370362145416492921559459196667938620566259288035147778126666426193958949327807620877461647962616854455024569964252514452963860692109614194885321089180758606195767969264576200850141118686425116548109623676116504341095940949790961243248298474005910438167309509190835185948937509747609829343568323965317810228864618478289513061029027268681572104334314656039834657495334098508951447763522195366046635478244845114200966460285728498272151759167754095630071615598048263895980153781483373536381855332157924066198540583083320286090969123828178950764444616203978575782983249826589052365355806960240596642328840793293582197284754308929332749116638597953036528877443724587539342284557211731559031943033447215116154875609472022429114963268280341886976912587033480260181780331780715418586952157216797219365953287147525418006642003942542127925642215073331236726419024896419827870503416885990851244347100170565903235717271053156653224620363434778422689729308319176840046397155801602682537214048635205379564495376852652053720481386281586553870229325866524751495097942451050547426369691417123179464907130729969773264137973883397771865390617265379992617383323314449418428569735413934963034421740641175219742212824082985101382823614436797781930969174242350398484335965326265491816063130236675554883915017703364574428898935042451646051461939458546146918751884206022810757655482762093068302482581704525526107754157028300682071021305665004107163814339744328736587027381312467197961399022485649042439087242429201839199907232418772332550335691829257524896308542933273637777996339202848851334042887801505994992819601841127833844979278130989087543306517676845350627079426553852396064359060061746693527083190637805254842822226379285106630935233273978657087349845314155037439047119767967534562088171421947603162536972625324264435166905104288126343469486950232208467638146825469836162831995987725734619349183255831357583622932724824184474713254745418674537518136774369403209264025492611897372422254260221898493259798136781567322131024318391833501800803139146105504563384198188143766969847955174828922397132206763502499896370342115232772400005883493077190456000139582133911548810195232867562058159380070108059576327596482963978773396553951835239487561144993368412133205644752711948012411997669985174150820861223928320851032946963168854440538131680950601690151128053551806444962712240776074034696961271627375315701479906743070631286949109281133452856204924970973144151197180533210640704951931419312864624412385151899110016304711039834747932619547849822308511876211260458394393015705901588020752234273377918104801448415860127436765059665199244520916814957964720507212221988307006733845673141242076261919143752133688069425572233890505277320328856525023287317626569435505283892882329334938690617392483493838914085502967880270376796394630502540615929695376369169314065042025911760429290236402263467679503045049023326233188433985683722765644225464522938245591506511299531070743219114643289120884119338980159294710154035791305903470883010286791934269682904166563947304117729398482743789799692621897917958583169108513379685282096510793860686018552942826070162190677165491986227746719272429644200881498253937195135646864804404861553927978063706573369015128113655015745257445001357592951950105081435772488632709377593654042469439501639486948094318464676195155776323528894454637155610755699322477223485554778942279066389380729289875262016571891996190447546788175166544020273199544022346490179154757246625983010781748629896861236904157923492269951794395523694238257490726451859087770923312378416567702025330336283882285648518720178788400163387950785149923052456052021175823761818367667334228143347459250439537722941872462706931127596997559375088331101111607727218867618274175403613526913391151405320048479857412117412783138847916830513238216383841727534075742725517864393973308495840022842617353777818763956700012797596513052307350123286145396352143729919713022489313513412719655821861099012410881376112897049704008618109677165117578652115142957107903972183164538813494361775767421434951252861932498948762879386789432234089097635772002534020572915725823132728998782495823106751576540403457980103450329867045698569092382046524943378839418191479581266030873141993237002769938285126266608932269846425512838690909016938204997631881846770060634925008711035327254235356079949769680711867603593807678896395138327847654528191646897497649830996707688500983116206269036321322818115910834809995819091537834835347677268440265871161699461180389179675291481263193406864408136999748860954111424809364673983832764749622721745183872297612192315203477320478772216801695853376139102204498581125169513230537319409114288005957897628880033858444513770937524486517697085100426132746873844395615697355063123044502684541163031841675734364296474497696117042859032310517275114689274335219352034407149340730270543236476954261103350063412601027688202176868998442619779196721220698134978993295867853415567116767923192540829704481166111381449524147379690852116362211703046591555121503876950331970367062916384933810374043434178025957895598567484119603646065427775900703872563507256594402018867343724337228133432628229835096479150709308632501833646171868915879716207455784811220914751027471272739812129272892476172398864391951662564509383234962867511442280363190172931568777761932934460978853527678532536133678683042907332241691648550709928283998200871341175546263143504699039599846063301463135484970149954001272904171927358452752447314112132684749781618786853977473521546200379770887719347979953273414194283761698454997398493988941843079054954922540873498749425113098670198407760826588631061091187987438058314682844458798639830836557369556904967880449547975364140331508134080692897547217097048432789881524464353015422376531777024718375309602499620742964600425737257391692568580665273246509711695919911003501222409376707918464888469178804945610317481577311130514777752563032904037441399922514004752185658841537039029216209475755452220232482066563899957447339955966139244550971348232440324895307930013376902230698590810929298570989512824264999723753030619436793550570089304899131285687945049354683173281826046853197386707257566637199332253683463461037312582517723333289788411367599337738029426521812301800601212159471333786564725075246773623760650865594913689396281932650704946977459821723274987190961524415822897902812132232776143026262538185456819142532365535798141790900060212235390049997190380648469873426063538001108095423575180305616000502068538782138640841596663461493974823783094195489024918468793775541308605486353328229971322390575068383903889648554017733230849433282568335241463824245273516170063990625872055442192086979918301040549845912655731042532508684422227051890313641126016087922645585093460731472674852959897312730985709636995520931382814044844538673768530962618794011259144742878505382045687984208993313348688583603489517469151700492296518787515823048698885780046139451695716487281352374424600655546063816807287386142239572538223408420585408095890952335898603976892368464407928577708711462495817972475016152631489003505459357705778723694945451161971961125279879935291899631164896771330296214138824117403987597219010841546738277131217454359226954762611586012907895765243971436824969398757246234034998274785798351947608797747072311402436878257382173029434024408680007839806017974332320482189876210172627405946665916741405195840179466029103543568841949661537017203233311075591788519561554656727032281830473851560756776505220990929766517333404268986440312870993446311619432552300151503628348301299980634914992404080300720756841525836679548117996844366544081370342200162759486478184143595568534246700398091897736439831593115656952689531670296554241742049473432238548902712626208276387742561743498880405420938152452119587431121361107694834303370995591324208468752040817736960958814375460627658412181631982376706342091863971124148025020385850603453759139032387855913534330314841762051654406754527214281163074461782460708443645760380802877374826990883443639453428260279344884164646052310113088701144203846868935508041827764307951149610025607397880472580347675554374281194463347985422729786464407391367519779175618656175459470719857717206113964689323132954157680231592073672023120413013301612092497933446174290601259366491573015114899732828841451972389333089850815255590848911590125221441730261504192571882455211998099330573458226544952293210251698643150042149645669789909308928153255224777080226424172495902022492530802950815046835107756757414727377158373158285101068574860553648455567556965920114664646794876765755269145543569036576413980203650145508563409260985260113874143687611565324599487484298532628201515700702817224846763540419195436232557850496597082339909603298021086153156435063248527804123525021729798275215555287879618544077683989493533495806887842332843025085362275788647606305358568776162136360784991302909536039732968812151258118114643286071814880939348688347234127435781055666432902521281554264315653698659382917614055620928405640707551838280195908874916033940053695038477011418734658953282667006547492509943715342475618813761680871622587293429097422873592857580372220678876407337360522491760306457358324441331363840905137904545460878344044300876575636712127406916851258317174213231391746078286106203046839179537881567187739822777676003516616151254386750835816333183035747223205983487476335909443144767082669601898749571935438394252291757825061900908536578933298411167926535037445133528514257641522295182127395459822106448866592423057833281802226701141250983705839879010469270078610130295102224433178131399886930925718688301805615717178567627986962510403946727188799058265405672298368108882215100164404843648980113287511012249520032531693445199619835297209652102244489913283656589856489465516297777386230720397399599798413894473179923305161791328466417814049745641571227221930696226174320506661555733995342055816455273867590135879263802948696930025996264781488060318810323630578716959411503642626679215901233288987922679676216987477494899762357678038387448429305567760625579167982095677783309964201461691638706751897309020116334010262937436663457403755063537984984024609099162656902630226047472115796874614690295502967867827139900956558819286853993914733369811304630590888067485891489103847946812789837115960543266083487331476506992179989493139492162016992976697339408472255593436545651769369857456106383612383177786960738926397645649123028387285078776172338531560221600861795904983543432876713123480060520502060538138352632434661836249992703401515134816829525234576124041519687526325704340562499101921942961279358291710921745215063449995332607447638251590200695765879895912860456776800755866749043057526231993587148682614622217095335447661130975266772395893236752024566217545530955704582450102899485772951027690766996898413004913647701925062508247729488943612574379631087054115974205761867526041197667226216338327423992668477034207725190373176490330433355490917194091899452747998140990617347049235400842602271015288880158100700070005726925626341530277149348778627818724432683981905931697234629396164006467361102802312074657234389292391607429851897390752093863869470307960947163663685920251416891849701188754062195821931240828423445504868055122010012135121666196381330680259436574585509189174027038495933985782038717497434203500062524079660963412046080584016200343534789591177996274112497783050113490406349411142483959634049754576068487017568258863427581732165184129286665460942751333365965017069087607466905068932112756449163186694250386971018372630478819697856042441205605163816884924803524521425256779272762371543860156538063771789438711147094443544746963000290369157223652836659734101806003407123714799184437123304242955152097944158265820492884186234615312483850615364646657955166729082331120668655911226670517562518873176573185203465813100596595414109425168788725952384895015572680546963570066343219802687194112285277607395666233785829495839523744703030942696821718002894662231325477837889011557243487617510277954417804937915504114219762545420262426227582957510798271183504871243788886393511148907388913673376044897852735318895749679182315002155050019630708576459643232975143599461905823058742199539884038089704383599498890626423064884832645002978810162635920480110303738059971748746726094260710891878265623977373013103704152590693241595981948296589447213884649809289474910937559077844578685004461402754585893080821901441638004707421979069951190419346813184968228430120297982667949692462079007003987795190071317768790196420230799542745801745645435460343189524946797016563668296379566595630015708153625582146572011988827877434796330907128660304095781019359619189008498790532571381975637587706204319391454121670416448129608194641113612550488877001310053680604082728893483238377475653498224077867533924540884900031074039023435885834928136131314878121594531627817177547027654595704264339195520169067896010005830585173249986589461660407416849191170934789977661360758508124000528329091591004997715989660399370894194736845631562747655819585749672478105741861342407907045682773454365516147064496452982091808904212639898964629177198354957118917914445944567008769067615706823419467730693871517795291715994660942121374939440415586804357977960730122612195545642357166408019849537037724497787563893468505683456738022540231871029466190739485141550955386222697793217674636869823128941217342657613771132152306851832203677701544334903761666648363707306384297647663156634201645171006310642718032164891210029416816595887465516992870699032536756481976530662408595198964509358645917275140933773511858862335149689856046215074552781173016617424102155660907268634776473881691104473949877045980105962587993688427935147494971234602339581875283598566411447635389132755491272820630869143239243642335136868960597583683190245048044034534668111915273051448348488954619296592035985710222059656490591039430559521445881375704667782931645671621122163517276812542772341861830184139990497314850380906384665855657853927986739843429558128055313253983947736723290062674730861130764471415628498814993601117310724254571839742522418534741790642121407370293396424604319215836150757235334022305293760461282827717451724157079794805859620156268784713448666610775855232262630229793904483615771871650914440885894685681025592480844250692701377170439478226730234499064892440294798183670296604316007914681922377538110961619170489465617816567421051810680427181256864679342202939115968318575922538706644649415914289405616528642162699178085931813283758506555868710180099355961994289161863461582736027427703652962693186211232978467503974681262152482612724763088944308052427846926359227903682273741163532531496104390066612189085750420599934659451231802906217356091254723841858741444863543458331524200786614035617051504734645150871157502502706170737784416518800194516397983725170385272624054590323050002781479944296420909795450887131501238297813411894970500424281984702652705113824349632857096792145392636056496864661300340201125041689650248750057201678492507080159670441613000452633817698398287387861106151961441912503076911547953952061113741297618051433588816637830701196676293834361457234962524733194748541948030031744371601316552140600662813437576314901537198902369269177757302225806235135232256633020765340550170188389756856980350396413268095293216968280543233096693813964630110279152145298440082841422488382273413929764717125927870502557471758334679562000384290479383629149925667198181399436041079068936312709713088124018489769530147399758832405650823583887754237388326251836722047924075788071114825631118593327158481452798206500878643757641803742867353257551287831353138138418105539814423629416050552847294943863354153309943571151957677294655109470403745966942420664453222691960648969416409391347860144594285210064226335421688991336396800132702399112751312731910814220524781671633407489981198647221690315457831132689797253193082613614996703236574120232924231241225246213841194176992917317125910725723857095744616351208310049766233996337031242706500199300015346022812880528879827629144718419238318912486246008718050745479186618179362999981353169036223740843376616664265881260386342628797931392359031903339208187445700414512190556109601756493378225927721911716982180636709229121213770766475507149863388404151231517720831927928626522608151991418871788358427407223578274032542356688596691227997278334927694258886463602394486870437226247972379043197217868282629457065166862742162212706701675144692588458946526193376056511113216762228639708768823399059640254292739526206967473517256731678133458005719414695104244991574829857067526902018729526301717131519602854658286249840734669031228053427886744832892358554393119634941186777018554553629760884819396087128193487666082391090350479692546448605594721080423412834401531461892350896944590040781602660903087164527013288076174033810332780586906215145388757673666813218404939207365735056852965888262465035316812669625254434895194701627347067270659020936070969069041956287174210941124414893044302171572359744116159243062924720385343675884374573823486671229526814102652410012741824196293404616108264018872994270254518446951193673065991775964479306631896308112590548138337249481259630538494365812080667126229527486386072264066150098577465548136098854985705048955571539000918072437500377308934063386499179390092382286730793878643611821241237474752114428671939292997670335825588093656618604870392610957203018731510783798353970869111836434419536471650968559555643953330336215229536610976633724736148437418940303929816689100961182772715394156963668454020251374458649338499074243592324992082250159429297169574304376785014919425759831802041289459539232835880669025783127970266943242136884733312119309917642711294312103945056089700943778854605928007184550450706853543489717694745448210953265395838686093940685343881703241000379291576654882909209392467940833808254891679600764719163395865297077647906030763227045353168551723251455628487715528186744111925602375811729220378289809692690715138561840263376749282809017384011098131175358424208913874508481209644764720127411490852607261473921167249099040024883578558158676255422478864268154727444020167609823966056846300958160352329479109032790588677923649051597552465532499575230198301918426815755987868119416178236309300601532872488091852636853264989682701673811838404675394917640594756357275909737491860400847276553921142895538468012268032228482228885358121279713905823424377172826433827282866120003791177844135513675948965100002102043527406050695429599644505995436525228893493756690723657126832707449074428618164486184582936818726639226860811374502141689302738334376564993568843791504522750806829377135278594834203267311053463968686918039018885483899572498223692783811927892728438427416724780330891906026222557616760531071940547950417685513820133397780356777130257028363749853352513835260838615776147323240031060611133418373816012164766803959934021667229529316906129534034534900298405556398141361420963778726325194429386854353684243005664994545831288440131117428108000712907728676184818926348499364997537070212907838576978525645563971680428058495973894610318218342926177314385131826601784522865064029687540705462081764948215404223046072818298270343517318841007822388025216352524994836527035390598695586598579940890763889224318180986514887552620973967336746137908354177651784309901719613470804410994724708614394657013158188695731929153477528521362439501759897135907587497168001899033472132403817772258077510968218863755298016177689501576322456215968349239619569503650669654275491408294868292820336656869420193521671319708709747129936391125685481051696190360984624215826004860950310144222728576161656291623160867228329587552751003632035223729554844577035411402999629649213387373562858693142836314568923527460477940868015189501925113348185368169708347652381232777478370124469715663679755459969599345346278457249079384639314699853008620733746048085515931068000096264492447618260431240186971720533620982520524642125270568112489867988641756152603638040323563094245860221318621862000529789332382674899055491439563160741950091605611131134844247810057040784913579527516114712010518892774031701011691305522868290654449193858866014900161715891194157980763950111023365101987082999366876089098397801568360497364071348478237320682830811003994995030882902472967144689681657854344913084808496168523069101297818569234320539421673318644249470286826625312243721818694067366217208585496445712624832881175476894046316655776792971927402302757832962237518913575982526312514635947881201400274284293070245534819454679853367444609175749193715395405886276593918988365525949390341329748830646261941251980638931599538449763957731436783214249880019875931021819578340718538078421557407095481229456574302115429822815664872784508414113778720227546673368228377862031890716918293324591968457605520934673123504571339999036201082146338176065376477255982885489310030663707364830131176586223770954056878409284129785336862063021658095534668828148388940578939506103878984569761203967445714355689056042590713335122490136692497252178742823573407074759697051579648533136486612934331476918254092728051088597516538343898370488101088127916128650592509903992493416473732280878732899647232994546982937487450747140931255584697472727831859667009048904211181896798489268012812292188263526649909970831732392098077164060328947114597382702701179862453381654150455418931376272034992552383991083119725994445617738194272333968872177331730039268635260543705930351817428941163438035095797713166940224198704385391651158031913787391513259015978512630251549377786125212653204471021421451765435917304088044232995009335945372714621554299687396714424885881248472271569989484798180607962193260851355518358612180260547746049727822702508590112097997304141924725138645016902772977597452641051692309220488965472501242732044298285655565365903907834088882218032004840985290450345958927781528679555164511892473901283146600545892044430136596568306911278887648417983369377677506228650985807050530550947284418636943366400513893324289473707260973636085178651919742101698425804437638218629234312823940646412981627807121706959703183932911087639170133462887437001229258702174023862576485715217165612326796337560735649605972711247968210810386183713063051651304431210620548879308329310994332673806855113550502997528371572026008478328708314091410607908364700421619081502077706633688287395238790904263386892615182830517918856046696161512400182734343388908548725291826135452409604964094612822682374761505432917230446015355910288914824795110190801022856488139172947131887459457780083888401084584391751493540200850703700689175483875651429914280106453861721972240346869492726912014619644917662127809456877231230739959519298071622504319762295949910374196282194035347131770114581537360443447790445214466075311153149472146165414137181721468817046148208714290903170033397868924410000677087960772209696859059836557185658769679909254402649891078397705564673484613191619598406904614441719833811339373778919833118534209534674154814987663495148327620864475081275566432051595340305494977774766307007943010305428706919790715212848558354324919369458980367347475411138405275054593322223038622075732357115816517893332333423353437574983352956638629460935641295909357883686959999894763060862823984948160293260706235857545162669500989041218488904690230427877337738448704460604661520727512404664846763839677387347806420746226229006085672688629868738600910323710417484754406738601060498327867054833677021005631669696413909610553588182630369016371399474367431740053713700812908396903434204948858841756221470679993968987225394170994515015323151857334499298915653663276758849213784300801047454002973514033914705231892584097630862511057123351896667524674616102476509344338999821508530518059937381280360457890930553366645089955216173461642849972770161632287401445219167579121191901253123889180396953449361549558214993874990826816611510579819411406260135772482481621997228608905973785358856114583867016470474771809299504291339637336104019501787639139110783323527417399966198571492585925794115142394166726406186669826561195321351343223384435452872229599634980771957056774301549341576923580381783677035521512574112033740513384448355876854660006544346060205852195535533237530898143595355908006146641009560760334674965889889054769130156372735413813377863522589800034615991933333486403508055947974782821997081354729874785903615804043739902616565060183066889006002546037942561047405949044665981609673663913588984650522005751795066235863749639995237404198910727345333368044518055631448477636144300727384225712020796148159108117540896694678659471558812846680625671566981525082186837186785325706224873015647186318348959418761413291111342147012498197514325362551072383713608613265649277732728225387762158679192153477585726536816903410861754454518334013932992099710805060794769604977314594717093171581920113638593513525213567917171327390693650339752661370986894063836530859456851188219196119348479964305935214516399075481386086142496887404383239338589445774954923916606128291936436581665705258225180915109207242995288093587637228530791162815485027718569495953771313801389727117698027015072808906215217288579339879407693021283085365316301065069717151182219378408276591516578283020517172707764977287268615580717974209209103254740180268927783920070101926713271110247252665764227891131863554883317459971718396205957812947077947742737173703561026604235040628710458634421973080688807005533290702730002704456288027739694545346443444126372238272999567193351890990054823259895789598752971479466627682129191778620771333936697095980223203221998927007002530034084574375327616170381909337034621353524828348454586998217702203418123372974140194145481339539777776794758787949345869432966691915045761459203007876978708514365812883591213069175347422002919484274731103400641967099595043951139817696123180995818775794493221107131080156203071902512050887182608113249193390627545508811723087158924669201022640996857860188035358696407540510205648493470352474887052569914700977596082946893346853926630318528164221687841733881264530864319440910234115326391570288834500539394850804356659806509637818709668049014288998073832540348558304278255348844088489108690131703754005242756630082613750741560680707961281578085194516757544660236238883857912178089010629063818113925298430983259781269215211727303296986156874714330124395272582706182701341142262171881799620550482129749479877142113631951112654804577718969079372930520764310248882655712855835987150306277828620814815433070992296810698719218225913387936474009266514315126626935890916285613797023288861178628540993772097615845304781740192644239560864034189714439218609741417372011580358769304430042346334244743308557723509771534957864671658340559690714054721024135359909203234261422734379555617452020372832173288311470887320914729474422189823437061411531005361573674370309118406527273768789306620589965445641567089676012728734659722338334606312388921011630352030188376588100712167447551117813478385399472489429077310888799048267311876782714993135312584684680514483774261232191742555394507222207275971438589078752840766577735635019825801278343855858050534691613056671646344724956571081399017306092099466876601844546844203328602514739006055850231844783411920306432644261634112555870381685506970598653739620005956169130437283269336053131834981928280644861390188083292807925758064362011803456205903280881313562781918980792559057573515748739982993384268576431180831587296863680067028718291137949157754629837875877036512369699487464346828411764455097031522283524547005056010286853007620267059313961503270631266560832993904344641925206973410485399356071833309684622108219273596397104584602655866464153635627806633593416665911588128052293922521687495254570904766218911977126050211158024027370169212656112704694681647906460017370239264480979292020217937250565634169131418554384482772428718149272522062286530600161187787887314650783501707326780860922414307114823873739711535380428566115214335995546858322850682804178587424135612919440952164922693999846002491323087202181623393888425660136465614932529224937230787214663317759232239326221957529923555314449567446501906607702289891244831547348994833526600410483326909381173442434260344189327885346931772219992739621354755046785613809739959672916042298367950262967627368432704083174942640359642151050241891827055658141675296426494271131716486044055273327604250561034614113111552201946629437094373135149149190855248221064608550878860327529103615321939311366593703203398656673855006067167064137907513471446730392597138418109998570085545827458311856706910495097266357647119050464898176027131171215942129662213874422598326927844488126872037999464750928607146512638660102853542024280875228456980670263452301128829151847774620887575549783874621062640490150666062664224966413086676505408466055344008345857014583142799536092362268451212691906554111110416310444341866009843279510605404722861270829198871798341113876882262192556027836693896338881251803269802446926483917545209147331332269154767671295840443402830991834994533016316661852388973047085895419138507980199759757377598271964401122469360384485957896100571433288566628633966669538876111184994238204693708926117368292964593641421220184957240441727718036223552315663451929656225428585630916758764506586912284143214180796921148162546746680422989976679952097768225396817172822102844863029824318282672130550702034461771809919224567638980215048049330808300062750144763318800750370153891402549641547342592455294838326633290801164631093686187372253863860641967456371128077328164886647773725741901312332133973784663401305920513902564161781638931150107650906196681026787575845136219639994486065599220635779506498780803817732405928957913647477355344601278173415745322662071694860342688333447051389720209557980103888436661298411939332080005023362948697638014102328370135449099798309108880411778812080007458969767265077708743890322451099822339761130487395425234569969571649217364063925180117426624613964521199383917910274057053949824610723586581994770914601295961974664380132219686373219926938223360722635395151149945074955023528145247205067202326942939352470921102457923107008430798862614767165258005646578835969869240910585066666548715811885185564494402340380379100952832589419837318595527874121752141540978663293483243365009222573991420596956272441993339343254034179287588568996657062033470168941991332467934598587526087806970400994401579354365092096016765349960461271951206299075415815233673408433628921349329813143690499241696349105185893752982710189599891409634002523592096716433718127340680958483186243755453243980716271388548775416585458596772395925558807744997143320626816254550563018824632899527295850154314303300701194513603621195981372810300329488101186572579552901310298758606285661062946155348285030869671751217445515157049456695825997423902977563454558337539462772238604636164122614011415905013862304535255578779112616776188164929661485198137962732497886096123956887332031265740438896196598099318514768082077036527910019375644084039838001130708754035946219229218358483622112037843016550914909185065399420180713328715450897877555111389893110137168149417831681871363100236699351171908833263984329421583440206565118186935040836740431197881825468088889317712904830736095118820844872838441937381470640329915137995705203894174168634195587265344162506284185080744311906626590822655373145262424376638716227069277946473612586906150500727602903179007213956360184535806840481810315497580876302755170739054805816585192711034519555787751421650956392077983414906494091701805390742947623683463495858537208170195552604971235864682277558118084297599688464379012456440852348283557117630240864126641713599659723652658583362549354208053251064252167419149035017058584022465246957470838666777895750064507685570312343576692759891178712027702814775727063071236388997141665039356902172664212521608794094954153456272337642261228715619167589864235660287600558875537269257565567199434525087373389374312871638206525511860756740551933496256066460437065642423488939797935895107742973232291685339340025712337329277741759681226345477571542415726049278585818784916763758222007674582389413560727745476624362340978828304027626954041909637094007049703154826659190731220276186524208465493874849729675435317856855798066343677992579289561693813812287272205729164513733816206354400072359378136622262663946500803954077222534924869636647354044118879209976907969141104866497123137334030533435193248397301847610391589015253234094133571134572784873960916676570650924422239662626710849064547329766072374179081736602403314877444590072923365396759377396952067431204729871744116656302473107137148598207447822875894853005042451212046121201571425360675037099528852194732480541889389547826052483779403885993603630411529137965495350647593338023260350645602375021381476796727585076768889636930867467893993189923932769620565729133503576135363124934340372982799198637810169448654010698622325062549297157354609289680637206291927261709788830310403942035170568153034353287879940023021751756239533093309674650122253109938674558391978922477653855087923104029744706360812234759282811269749727002047643816419069777246603742854676556584665652603708707695471119279495234898971510360636912397826171216718721259864832814833634635676284840018334507255493008159741431395800807885564953248875281933079350720328233768146739137869966321642075376809100911458286541103721429113858282723459820794326062796621228842909775367880045761544996955267987263487386280832042160518426609625938353786261303890646705363108745512406563630303427917579027180186355121430680656762807603488274046385328044069270740250926074132922836107324015436641349072314132473348759055635628111241753770032136240653997815529479717403428665840524321165929578900706802874438727936746854120152287429323339670175060657439122468608934049701004082130034672065805412939629098999395069122496815954029030967701053567798112494635586017427075174172053019956276316134875026159844388546346117845650409984480797377410674059876298578228588525725554274731575214054653568892843117937470827616804953572815647434664078532409761908480893599715243772117199101251141751469285942620432382940759680036310087345454934984395110854386169767281414904773878053009535930736007948072646322468680471062139013308947786039042877377932391861930190288243447466689227866825118474630685979805840358356707783357204078632792133021688669810201805707077044015793009531792651787367123884020102018985781101492712622344798309511478969730065148409708878745391611174687369545001433334781604717578121348133423517890811466581956549611062624786664929101871735369364338369161842493637163946141934394365209052125881156299394749948372307640005915620524877410936481230983311333723562665524880313991928024200803149537908773487416872398326839963000740310313647086408967355553463627752746517617185500910401959424206309233629231237459796416002414543725827356982047850558087177644347822194836765283371822423699609433733831312942408883231715431774085941762015855444886931132830388846684414818903442257013662855204482778042803156452899834889228472733260579854267280709000958730689875449520382045119225320005952919981686960693229456910861091823073943851033681141023039988131098772516482534648437494324189170222884888958040782490534549571375180738898982979650711954557337884213162207330612883283173825296667899864358210774217681167892383347517627505622832123985958786775714751856717327041214504431967175177435384617037208868347582742842026568125425783783437892742707635923312629913853799184803196186223869611322626241777563542035967279022953139227856290540842736225360032674871196453846767949952593455176344550378453950000997445893944000070347229081218629600598836578779030944584424000232808445354528048103987744748114795809397531310163844632232327779808511980593051120269594039998650565940584102932994572505411451542201571947416370990400830559101828525520950825705911924107387793946878588070850017343235967593747663091285396492534235021862980536711015272436450711520493481624812863235886723204623080753351252448426400367673211173982642776704292667972927782659243536746650983821361452138493690649661326378727485547251980194908792155102898090092243173020753714064551183224740844623100873774013999833078053034981035697523379702225496630668600894059302983411799125397809191221507121391384818990990844664320206794460558827953629828960678912796941279520692385411207307450503849349799492522450157238926991310232493387702241966933771480671422171093838172896350448372687658024509283562212641676502329350917113513444454389935322583568305766806314896167164943635244926875906417060517820117811789083789890619864070609041467530103457300990034599777391730249453303365958803152586150620781695863024931316398421174781199006725501063783880020582531430076759580073690590305830165642846105156870679959964178234370989513527817819496698277750967008940457690350485732495824651520413088616783037428694792791594956755337390709512860344545453511747259368265822238684095746881044223683459420150139865149330053613180758764673883676138724985029625743698926500596480790240599991367911781560634174224468340448368191251358658182080562307784444270397541321807411325380737662248540044799091265823329125378543020271640872577983025170610830890667629294409575086254484939688201948043579369074491266886998738521915129623910005714986573903465398772257971846542403856421495319447939219678873071709433747405471363615490389810483726675158207812625312332335695907549752825535965785100559216053677581194650143046374542161505152008154955905906415647901503131974049373829277616013646485309909621676839793625871976201007395535270840056289190392102988550997402823961923634383560842825303387011991313189979376033301360831547683792483144198323484824700300502655434324497954212699102869271754850541941412036767669787175926169782136760153859077810950639772674698154096549736814147917629663664976774883181633835753168843121288823145130102606525768147819001480858721869836916249765109325021133460604087432138796984010138403843756931948772513446984862279950370913702432145003456266523484081362768791318975953570526573695732773720012051886582998095741718846384491311543258805031230689481710076261400765659557521692749303341374362916155825360194194119805258351106420514941831387742385723103838309417215714342140476054040092588934018434696538222596623899390621607322868174463624434332981469327686798627902864842900302976253003209378306464778296006817527549668081274352721456811163918754695925492094108739525010685788100975665781197159800622988341633180412328257106384240763602558987029088306948699987420098330517407768450894640813025681495295932575477640913999182553000326356063630327604063435262333518003822486929407055320614433960839280534123484362862423308589485977490201037962751817082674272620310631445292755664589763344597075241825634111713614166387175959262160454940490907243738557364081070228532369827189788590242044850893899847420226270426595806457541006739067590080359156377943464385765850320494633784027206572205315798939574471786298778806298453730135594037092647912643630279177330336722851732038240189460568965351060343590503780544388053625927883419046265229240716161567935621127047328496498225938095380674727375399584939735087868867392848482990773503933043906934171136005107778155866963030744805277748374253457621887000378861020557191988661858811160084459889202566922513399140331429914916283591475603902171814016668129299042805817425226053937528442648067465540855673843996559546995122178207486365934655692441451534097071400957949846488952498693949390768996029964914203428773528273739965441977930202952375675066509352203401761248650613123237565081131475483751053209444013249556663060118456327275025639014978784825373141022905755324031765022758696132189685489292438723218221150682528025839471007588949587340352417497256753037207120255458032523784748337523281942069024568045297823744767937896427999494833867235058917048445889496071470643062629200847451552114348643979218719798993592077008765169313259591279998121007447859998272854664428603617982397796959912003528269317767741837126532936417998059198398858061453073843516144803562671940977742935502355747224602241483711193886161175841324865823757680294836577836975364357147028121407434260831823735111771515293383724286830846759863008075422381253092197861654955387347672889289727134013059260263610339502639466668958911983365095939405072103651923270901306615034476227147177150173233552416376542666781378330611403896261381791922558385142059067367769437403730058787725705165010025617681864905015944289142759824774192240757410819954407180578393826451871988867340965528130017066540058988596350798104094384260601263350888512766587344472591252246981975719441345590040670410590428128755825427742050832522727541776846650824071317303245823859956968794226786532979381383024720904543203271602840876143194031828400074861365347032304130451924229903754525246366344277204787246307918345602658847673194045824021244201121099604379639027027628408628938504690606629039421772042424283616996958872621039791828252661528230031959155599695185109321745724512149831240110295946864638385662949067421776116817685647485803144036404682332032114258476826932242193867384130163609729337025702108723611531237043326627570970416052578826003446235872408292064252105315863631788844918557532873514207076823555164192221019299678111760020643990271518060691945691380768286674384006694170772257334108863792924421389588000158633979619771912604607072047997644823590515512474679474408079651207560627166726954914752459442947790629821313309490421945326053541568971728425353706880754908663236076204224795571753923026193881314461405543749883837630725105013787584195169048672362512389510549685561090599010000606264580512126514018668264708940011252851981429399584906397291013854347667894275022999138608969127866992282617103369377348770665411083220932601735981189086436140260856078968069669869103039591284711410859662851925963040934461282500670922414165744263145473467268281787335799098729179597962665573099666373604316521270976640281219027011370488508164433631082840001521495621538510955211139506434296678763709176450529659069794038653931591140245308466928181587010573530936872455895564957766292955615530215087724977459993828308359325892788308918976459567685228616990479449433591036481568745479053699497487180950989044858301512333024212712253862824106331666536839364816949871244510133516094732551606612846358934406198772578333614245277594610455828652756425023583780329275537140200092891120167072309370891167645124711920864016559444246288930025596082482216930214786664585989040052196821619881683778338724472197687431548288390541476299126830341079942185126091797716533214699399875254278928025189028728178813891450136900914101516848874775311118364605735582234657699704108733956662743741355181916924874235128331840267133032413026238354573006579121261093591082628981786320842056691602106389368783222871582315637346030753426219788197432000424543263066171981729979985268588996830923563382429820123955417539738867358014294558560371744646672092867414159626681747082278718276145102368611545350192738139160924915721657775327378550528775451189687862343786994851565076236080373286085188014985215016045986678169870622541644659811266499759841233015195178658983351662629847072311156100716226946718080138828055651317468258588681357090357885850051805251082116064386087908807659974204085836939996616249255076367385121441984303673930784443888309448405869317005695227501203498314951812836641012602484205903584708783284344725502092530887512607392700194630730432499570848892982912844981745439713231954438914880428498512359186744627204653460224270450548285209215526622754911119873961032236808357831188067861223702481338834227178166920638248616276986743344596840205784463383071676064039638713121664405533979482598531204197391307267419526062654205935741178531534791473968725083380949398728326952304562176670396183663262826959977541778337370236865390727811812373904143630652811657145451401308185837912442176609233307060381859461239585616754994575160571424435990143555229403167146162560255213898238078896584968146147922754157487705369154336735410741523327870056274117896198062169835988093582579307308294762428274475790212509721135356493149232820656830792265457815497624226648539588609127220161846326159421540170079974126747619518809145225207825160213204357462850470698365321531287965311553383609081183044114038841278277608996467900911856110647756636665213562717689943535088810592413790655171229935888247198401258556536991437013548323496293943158506041424559687429423978948593412088122677910038589931219862872210626421208760457074272364417847415192116540816383772422435466125349006164973433673565699893440383230237366148660602366720301692225213899798258954637238867051562330128793606722825140435286279068511642566985545152426627184022133055670971673560364019418004690448012486051829318637391472986180610141866778086817614066969095280694490214262890615085101681624097756657402203334381268828613125023613460092300497935915797543922767907353433455756830771075525694304114072414774136207940835654840100213017912640449478422507149327772653610627336885943552595746113540974172862882675591056904496459422489155469252064628081750078130448003523985559659446792968967300012330625666028812548361619416721350503295315903035755819081174914628702077444729971949710742633072920457874122555397466494031533575938067462164036585581518404600723816417753647671308836771570472553702826520567253174400525056575154597327847291339064022405965544595027431392224590398432892433478984870647245652527913007991147339807952281238932469238114778553737491327214407994387321272506884563963963029772730710223945912539033520298555756935187333556632521289876903107875759334976924891541011506320887814795101933369773387917017667690990943968276557507154664868211846004319206575132273336175067669043350497450683377229546566536853196134561553946685901325205949369681505947940128279757906048451007290473688188385714339940916228836376636882650710076143034222686492620146173574579562578556924704870865077210018961539618590809986746684300476744660498355768107294638506119776680700766023322455628083849407459090021127279794153847680752380743754033367550224549647274094005057270612035146748853381055290323702832170319100254516729275764918166371345855127920313452092249289656775070416058709090168285592210656362539146035048528177563787146904298494260234975396630295809434120326226947692698498485980949385036556967396424133037431004146714562447929887822744002832158620107001378562248284191632639918946147666893697637511418606733363353742664742073930759245747335029407391687948473529670174452325501168574912735226552126689111925289070530365856192434942758016560539002829863825826967787417861182988896043499776020781089303460006335421454787417386953561720095590672080175996716104489833228822834758547650535283565186871890642774151805059145186936679526568670009126999044444821789358874946591304733178821447775430973733162890749627724380462353718398984959482398331719103661647326038704612462848451254096218094989776844014071032143206773190980297812946535905428060046352561581406978453236906932398041630633098989149670826647228684988763661080756937479260218986836027436405627728850901987335627940120851197584609838972554047815224810924542977921169160991060016077869727697734543458261465674979017648995720116569329557655816927820443803684964610125373166273904047954005118014669590157134263446960267680717003851605623895663623308184324007401358735734474282252710752663329639543161556591434726316766934244720851930295830147284940619178992819682204764361614519035944649145406441423006855573194337983879523412217092239476794274708245262299971718633300873040076900937107937234523618195463402625462032298795574622510806065017654224817608289660378802751935587415374493954228581116627420545561629421885964150216192835730060488562363171338434301366329280622246346441688607208552865677593388448841983286317945913409170985719106349206005623309914049605960234694118657938554513300825264559817195819581146665674790112842367370317976516452977182076544094157320144417580191671710520045801424605248758212660889359106941529035137338616792071505972096979068887555000375251152674983526497767614088815048423577569234233011027148983537294149822168217129668116160324955056992412358923638087181998721932949690748651682626252881349596688437425518215255450753210765604218783025215043220390963980360506061684722761974230173202561500056697236299651359393069015235638010014687154939123969823861950807541469122995689943768683953383816788981854800819941939903526681778288017231320641975850255221884069203322887282492697141805542152735567577027948444397494315107628490488286183001458745747711519123880149593246244534398184842364047379718036055143938698771055036324559786954165469978797143065147332783357422396548130635044470639569268391388427428189176774755397223945304394532440524630543532691925754906039166527262378734174948097902268997232375886267925648350807645222172249858888273629264407626655192375715918459210244839123925706124295736237160417693335168424525936302337244082321668708857612852860404399023338454311271593109351501403930668811603295483034245278657317345995644557350167227418378541250499458162448267336819626357542134771038253851804633267556181973151802324693986462754284496254102959842598328110657148835541902204418220534569601084733278839774324819551802473739280608876118604818965371252652117987681444144131683290270727502739612449999891400748426863709336387450750863835634126221069069160240594218578437012267881292839292636320619992302542767967811509326286565214851835859973924562162212291020623963752304426122970941341874849328755242657371728522083433471444984877493305610336280601946093354286486986072071651131390904382016058933677282273347781508675368201939038903726583087759475170582592472224619975453806800962342669126968141084233721086974044822736024188697989283185966324597701845546196892079061276248685934308577283900260411345526506371506852004689037071063304884173199174798325510663287407446444491036779867530952569108108709374975093080389837953986304755948651752936729767734380914464409181448728926518527745469847990562518531397689670450102824240748709155022324185600960428782352381081703704114623564656033028461407330670790465928397950790939290088402052791785917342816326780253012124427158810998047603547717292235866079985147148476375668398014984500089569598949883376865464083486617399964532515863347046424517224906357852897403442934657925655475984687637834785249426058406762434620114868719176897285438989045490727075961383859944034651129684888060344841453146471192946668276099801730487460644118198362561148411278999617595941860478099854594425465150419921540094915003640391314201927104550306954584183572691619047165623767928240531550396163814334668379802328779814821858307447096234990760574325828231387505145472454668693905074207589591718897846519317812688667381041528737384397797953888526269476919602527860751165133100622212740506981793439455067351073195074435196446011300663701314522111653661208539076018102600514297747285143939599219339326725228087490229999288503229548595422069314848912124983498668097530400538468469286332315088641892557983035271460090278553462259583424957761115952213803902699136315683927786441788296331011424459133850437791879218016065770263249525156616820845707426406666208221375014458474284019633768632858339838132316235574938894599997202980480790560937919649427970092642009914458600785392963011903489896696823407043565868358929207931799380002108014345014118438333733811482162414428373253462539586985706775876553750687017997742806800510751932279849710890546372435456298993245096898487827187814863988962373844301435600815162752878216218010030256243836706044441111078997795644273522998297338393435818378950548531252413938041932404327993391325316364770748313521569116611178210014999679720614117453460240818747199397121203807114184753510593162304727326148346673037216569707300108440878255426139388709407422995514845623411203189998859791991823546080792776524018881453246070319221110043017660433115004399467825232300141491284420588467864684858380237297286387899531551823035086236970757186347037768092904781958486220834358252611242393647987887736146438701833384581180240630748757433099486012873096122504933158023267297481816395073688420393344309409924223807507028595467152684228118631696362235752593262861698510852924286895355722287336736383050553782012508781099783759013573870120651596138369780654760606983217364616338146707391981163971250314511910841634399993701245633272469301881462472188946894234712851789337032198348051342601380111028476211410718818722986549141604149985697299171901852591142578562118485723686634615240037927496286596327312670098771941540503565841293450249692034478667740863893827240087970206694953420756859998283621858718164998351585115753522459985636493956831318092535467911281763489835419682603157690403368308766895440878740536408093250239777400705140064761846138874620984380475466033640492146576104328541684674632390140482765731255116380795727568647161747553789377466238801456953191105525647776860050907804138144340772806470060821336998993809591504894913841890868053635291547613044207008611942571389951517574459104811159781388873317115002464966289040080345077930577585809449407306831531827549447567724955986813284120189678586157039172932811112069119140173125882400745397126022282496159464994444140206483383199959923240808095929419713050336084389357333614873835717847698055914021924977241476606807726402499842820277059365838108389379907021044749335445482940624235329086647075510681453739854285911442926267342579184869110176428556685443914706802265892829681611155301704542653900738233510192629919765073070200407367750118795073889334057809191057471794778277403198470869143812263956505854787465789159078014738951875263685729827782046420527762065602964582600755952064603873628783966697376020909062833501348059120642861196654692219739634693204787436616473735339040609714125299046969808160824358075442427292848595418759618849313487553981946712635278703925408221666764210249938881222089228341212818022463474989776247637561283358185464024873850126914957049029409710711879582757685488018726245168427888136863610002569553134678741221154840215773180199975449698885781139213754687231237619209351117400138871994808242789006691992569883285879862922928314911511739362528889160679406243543693163185235523576618863673212468750806281343605497113835580366019804549476038025095172175210453099778531066539840721208314795541701610065922046120505309968162617552910053315341736422122767396808398461264545997736494710166780773736153033370569755732596187579735173776852499458360337302129295440460461259977661989463371022731086220405228162854984732287720447568583474685573615728556319157010792532027162111354667681921190676683434750423454609348614903332832146176559744659380356858806944586929830485850661659327496741486548528025604133124114668092248804934405355497425932505175329702468043049490570620218267100481045855554079901947645801874288592175348328567459373098298762428071400275762138735295966525704712676502369372951078940287649507062227754234277251364525064435380154807774701286619377799379116626083293240571040637956695284902698500460937288936565219872394181299524312094238584875373746189931500097020698560512131762737065431566130649032744253792480712929432568414932113841936761330433479648243154860538853513671129453622122297959524313497743543694357322849232067387602989383508359633632599914570417826680613671094841555116562886109822225786036497495988540985985825214352217105517614389737460182462715522403051224337345915173120306556297030176378409268319714159224552726272354908141155745678676262886690456497341134163218740688569427518493078424332971022997504162341703599353840073626957335808241446756453394083804151503448882660428037713362306041776138625278835398358740829672205939329403617893783789056463311769286829356089723500158736059096798080486495423087970112469867560737383074104396826496568065611067361804201763628626870735042878719144994771248597657151778817725762522894871442304015801198755392762492512677675177121847509408263161095555191686194254564916684315888527539107059470566273538863741355158242959782795180498722594994593178583690641321993873208428313438630684110631343524794345893019426956385089007623229582905554756030218222968337929182736504323440430377226515857005718847316850971980353867102620382036149977956361333596142225345447214702045468850929049163370010473163268987461697775448960313659061896121580847313060329831710622597479503683639645385652269203016038415808683950128914085689363584523143556265689534734610810238358428172314770191595801797586168302498692323191324418830619221466598967486645521130648381511926082806777138996465547105195204668936677512758312665880455643578883959469312343672471206780247391364130893938577812213956716053513611377320149915544083608444067524732981055877887126186922555291485176749504949972725162667964523024023503924750441831536390126366544458713228387349574194467727874721894580737627880918284115389822949357227665280351454009438616019686832181415260466165600955884130628610082025702474521508853515096305257412970467023797733442315545693939520288335213201547082067600984412091572033382863041054489990356059240938436156953719726047327725975483170694351683997888949745058015122774838191186625149813904158559994460518182864843978899604877878790607395807681169069228211535509400635971893715902030403810638265539427767359256174733582315880676857559877909413676842709552773261617549737163853052536916208633780850966164877928035961833501195721217709203677426357980303173396509604098346586706955315873623427306954132706238053881767842137084165822733632585224178800611097427600046439740784172308201702426128007802167702013281445618708639188497251987564656325756593769362816240307678261115641403339475108610799405860782994695762677491034832541659982138706112206235447462858307562583821500490568436442527051738804305582744101829962035234807086382526687114425086052562847328803252443857588080371122023337120838316579185168768357381925039301219475119031670284018537584998627536680207208797920338684037396432610734539725069976811009181306404341055127368397307860309840890781484807862106709359991915579672865660124810260096939983476302816107817866497534344888699262315745479095645826331416999226217730018796768956533717166525662374197444460773972768320614541023643217607388843399555839149438005355501066797114424899162473853425536429734046738503883992053676291905043363893400859891844092526223343721026169267958356228523291807856341016806196645663114025937359853034869806510147233046744651366698960287079073454626970854262170162540156716108042810831933740630557145724905738001639979406544078822532525271237517216679941024206643251046234460750635257125607409718907446881086693395070268346585795324233543820442460405297683624493172839702693029294187092297759916011930809628608998645697716017933321602342827113504343151271205425676469569833519060363898908021618951770055356777209102199195152309650303411166230879982623644166425729976830543171953657445371751515650626348123269000802562731179480887314656428159055192076693903174252516832167157984403079382112671493873227149841353293854560805873460760776630472439329687367506594740342481633260891121497696353624496931189414417600056113409442180119816682945490162946110718898611001236262477596096927229993250929903701015279703433122194336849998743497932410962801709012104417153401496926608325280689947067766363663304405219381986508458463370157991306788527537358716190204109611069317611042619503800330729204469651938485555998003508831437887197258322949899019632118228510209756735511547272485551819526806583002204432189955270892146941720188397584962670432582547592370116574413964058856151724782363674560064626617174573410162443641647108077586525845462949712235110847907794628013814957540375156973155858757662989910453831164505454030568279359447802455710748007325398859017036680897099875631286362584079202362629429798751392206090464148855567638393666498751950508948855646470221278648852139812345400713152702205034057030341623577058518955335918350757929427453211364273885847838851888237286961174952742602962047757394117851793752097664594957554103653391493218168935872461734943146144554366053774491196398771114562372101838538053823843016726010171282716603456988154130847061444107392898668806525886514941972941044389697724996614293027919818381420399019316325132146744646276725302027115630390308722911964843926436552558124942193784436642321406523487003330499116752781562455728165479894357112103400155725761954944801911264984654313100616450537295362513199076111984563348692865132938245356334671406330390279379569226378853809742816626254434549673874946837756346864499419269459632155749939380615929580218510398595723864965870339909972447210840244961897772779466440411571605287170518919014717066150163524643829464841475991287620088046707635027680735305235070653343661748556533059789452201053620638219766834218938785247485283368792352405863545514418711609795161950249136401936568369060074782702505142784912089961950320294579324193839674852819797688675779820379774964353207387384128479722447581422218910521329832022268303768184628323573756675621804800674371887953463388836554207582942072220333471151515201355037890824148628115491194068566496522792180450412850649482739095840794628372155196020810601555741672561317575885921845831047445278890397735485019218333143234689899403326734569175704631900577934799183074534142206704420957758511063699465235172884327958986945036950705880123853082957827441076665351599961427604440331596805194508348660082914123360625515642116907556124881003624507618130564209720043789461788272333094484768391942008585730274008759742472311014395180472956338392181440290954842544930952561360818021780225684648506372690779148363306221417249472915617777765077184285948061857913029431872941242514322936470835596898760926277554443109655977980029065457491570261942201649971242521015988772374928116530233106167658752130751121652004337997680070383410590633654644618559666449644700221410215457267944655532846450793302560140775236487619094385509007767240061753348650406004371652497897581278403320817024194189498491457871257312901812322054060573004812273721758733740587080934529331479656105457732921294014787158641414291526795926557248312859779063300555238382286542769176632307778749606383502012242384311362129440086681808447764985942024921897085723677377748052625768002805887931549179473248304284179241312257709514649394486543976532055259986620712124242140180098083997216049559743964831697918933978894768784175567819682009185865033759657430590184463223295128709646882750121894798133808565309325079630192341307744843004345357011998675719375360355596968331022716398649764507166134757681970853329505870624565420276044274653666662918644455374254391206946123542151282248748501533495237838805898127542044490516754480687298607162287859794904108801151824124016725192726009350836866618674129637894340803548627705010014260152737404348615130334446544006187526876046237626866342794776238399918314127405239816900653011108322267237419797404843747812532673422776836346089258959532728149048589112748651228794896091893359800320933861579526443541632075771811912563063643233308982544976071514547995499337781175387782092935416406256476995870172204439994461973572760195410318015170340836028307246439436780038397081828356532539931096541077605448309185384123040743221584964175133298242841748948069564544346808873598783665542661744735790298141053124322241264691288508603065229905061036842888816268898057602380936630252080645449847504537214381334849279318791617961936995344144284743297263248141342244172596364044517453478410166503660189036559041090587072583806235808656822227948091991700412584060897640102920455916795546349987137974259487464209431991778665142858419089512137264262278572141620491960027392640624305578368375223284516724636840113633633809048823386263711970381911420461074706617669093436667051173476180434085577632427755288757271997121608506432154555021928756502518463770177813119452154960280253197432531890735162154471472237846516761335574652323240426678807679458946613112411997173052448531444352810604958419328332951364371968794712510278930914886742372388385839754444287718964599686918998919222610804080648203197587459802235064625137117548688751034210849056573241644592874608566668060512525045570764698219220174642721124938197179849719529788279509716586920176398897960176007206070405248531823637231254611238135937781936142527800236326418561603836204753265379113404197674409327988526210825069413336442842590614663317748270052079668997680255494384884321346783831255925190760851540417454617202735699716838620556990689946809110384276926834180860244507176293119262237885760937276620351016338534784583997757480951083865469188505578998205916816006349157728668204162951815608984622816088760770446625073469748064349781133700182213119041710602393093058582780528429793270019060857634639232702446037210903019484061875175939122786110465863678519994285166359579026441662124741072628742974669569308113271152821704225791712425748976205343913336589495302132719393933892015554437184276941689789231545601918377314378376295319985074726416530770891713212130246909949104610699079807669965042566291740989946352883350723922746564462320264637700907824619989506677588722685911313965890913414955262894408113352625265556423483569304334510478313349084850458075746562912273501566714500772679744621671490270746517198168632421594779660874455753244153589027623517653990262336726246302874157461385876708187957019789565846004488729282927958024495875171767040368924394417632178836082823115325505669767678440543703244434989453581642243808304244435954848100853537085498283814478586645287123831352267749442456122920370852835926298623807444266625217585854418027071822589536346658966146300817283188004590994787598097822572547082821941284482886932550070849833951974080632326654219909068306817878047268586086869260465176504274639277458976863196421124483082918232450518327098888652246353989427831635271129365411199151987146623125347983651099029064178346588107011737909396113716162601911762393005190153930667992230567765771748272012209557661916423521005517832614328757086835618921896007029174987525755524928827960875406779706049278436469739165550040025566344559544903201843349826711281264732451024216705117788626751985414210031737821605624305713370810803127877011656155344038649604846887506395300867443241924608589260887362418420578933458469072022248457752904004956933314164276059094707907139771513797976063271320023906396760401760578230058837327043728199103274562975083424758171192856827129668900127158942956630228677535735198933626233629578007860950164822719824362333001882167958508682640905445374234905552679834575936710584392127827439919427487714817359754001414915242019168770122882986506638552736806140281999026961897005900570813789797026307910716528157270261150197897705470468552768676384734536422176666824698854439843466572454974313350952217927633654415232628176871586295033070174758926143884305325907367581672335261486430867353504218664831341795371388060711012226091547154199838980623758325894485163908994095459568169829551843563492231607595296282677421779520593327789703796169897887694490978161800675431347126749177231982938977334318988926116825970962593159971309113408748417447485974035234376910076140251795145313086079036045624085872456806198297532547930403689336626863361785484088632878092521544859241165880195508580118646927330842515772753440567490186728017470263732483537955394336953972018845618409633230638211203313476491607083660528044703806667154930633724724044444509934526401712104844994188124239630344420532269303353358807006528483318635427361186563897505815612936943773978757822113774875688960874501954830068426390870930422074692493468768618664234906877026501339677232091981577927198390864000129435733846815912469373961945327174363798568210598333687238234714042495428347083005119668232997450829658592306331008544377189747980433623556621285309710203181687494004425584942118126969085247527934747730105733063886224810701891448828150987098090877729344053094195950132670518439140775246907169959226172166353532112081151193826036199583603853050860140871681462810142809705595155617615113566741752707837317028830995845641195983561683104036665253105086993734557276116213196456968685146470988800764175558597787754441374581689218861451078132317423679371628791128943994967892406947452233292471485707555532561574177800721867348501343077303168219981867704099646509414878796095436599334876636181992912967895212694524884613373711965395625038776379333726432728809288121247080388833053736160965517197817646584458460286141423502984458548427989047405667188793846899453893712490160459157399750847452436540673386266637246627848124085886687489235328092902421299350815821351144595835655389755288465785649767421409679161033790485483742687086247333976524954857950131156934299868609394480177598249974292219461025906748780113175998534241456463131625786559220036761223068759597696479346147273505927217495900983044758480520271346857276075504063883856746070334377797544636588408606414508556967998431049674285072808937981027734081854284306832037650104170227103208573837923274877616794858146190957844016960125367128069373509916801873020031461223902265276485031384369748807461337228352984050631228253323121774770532497457352797275943147525516765246213435186627741645023146614957389327023924319965667225343639732905413316452917330316083355936533342533974307428900243463396588300940485894510653627435652456098086793303729117276639618223530128733590661741490294334256709237633036827410063273711372050642218805608715043170476044712340679806521167690155912366040573836346057603524556101150006628322563882180025110353399653287766313183246417642975858493870203205133269017000953689039397018728286022734247855006441100162317434446260656991438961664215105640198404124489003062842477206176717979390014925160695920194628725632438613130014509167849882771862106595006429638674706866900435134970116162928129858634382772828249085025986739602666186247719769680989800523329614855872016905428533261261328993144989329054978452348044077378514019242627256463823610609913773029441453549322224803813355373162132437359741459973999046482187359824959578836772864557244317842567980607956177745121732260403489687196439888262084917470074352789427845343802376246727418239753723715810649570161573286024485567782133080620529601010873313154472903422875221735124789606860739799756990280443390465310775885770227282393922737717456395240134900781494755507429308836636066091167142458982821639038132216668332951319075997789591377696051230615184554638175155264039239420885544430418890240021269494164587266870156419325507677808239676003081092100249621571112368103249600116251831690617210240570293434533103895020946714157846672843577879260477623158799265304128563314228613817112248666880619449658964414518693345289098601730842937429930845848949280248748518962010965084219398434624990409700317799333933866995835144523402468280661582012019012135674220168103254488566509492824117411409374769811112667182462259844862563857867606597616915534917092776813289330408995326330309058118206237960829957406526743660501014839650281065236082059643178428832482944351861236284379717670621756120562549954531906574440578315803886171495875692764527024541897615855469545029994538069513590845924539132520563658092649276061956135619700970504717393528554704694742054763389163659663944417760007377502643093479977648018137302382817187222268531651526329251377372222545069830400079003209505569567232089940574088498037873663885502309532766996336690176318013644122177160049954292562758733585283838171423571147102791003070410940963675366560580739700911018895811705201854798162793927102859037320228048380290490342846750198332137053463028628812273679637007234381186057799225902865025704070620596536988352387223365170660151329150372437541896581813925802073227027875751659366918919047394398241310397627401247134206068125544274263555412860950773828068986020723258320114443529300647734915526781943657707485805299166642852702158113312593072990703774321259467492672321053248245544544659242209461263657217284456734135370988556342314990181517028567805481854861710023110316989793300908474642411150792403455218595537263635209066679203495712642778623965083144976285234635378112181966867006104154754162856758670746777857274215922284372769698460380429156701597465861035146481205095106721110690835447031103270816665293136452846980107665925498835775004689765092779217358837755767142975186420763200693877323044371554435543559243990334076077101815810893622299771438936043343528729346582374509009580797807404111204158384938730120835113301844579705931316741997028086007913559506650704490862332546150242328950835533831873018917908201457423149281912190647981900215431509313153816649559073745409854522741288163963399065664185112490626760451155092783844373393219748013317037776533956528682751283789135496280420260133683639001149441032474912992673691837775792234799073104648333965148890068219760040529882933002183494338922630154277284333079062878367526852769401780066523980141946211886347083880723095487955373492826872609213512033852582230620856537540365682206411761467924103687529485990238897016214481288424882643618493074635544220198941206543791423591406264955462540665332025210034958522165445924176133505417231430893455598975648801118297064994912105722455852764859961740703668900318315108946875297385856420146070236977932422257160876725344820743652195825186461643296366126169373594849236649449897580399865196389826939078724290118556203293744870314662913927398241861965607203758074061882086096757572695716059229730663538418748716101006464390775938041163636134561687459359161800066317473961682783018869048237158712512415017790516797427670099776177559090042314427873869554755704733685409069758351115354319730390897910217075926448504656056304033365917370257955516417041855062890889592163155592892906962146833730135242385879231970204567567062157138331816435314861518889215132451422164523682504251651909756522433111779575282951574632708491295609386578972743360560552509024793468534161858399728359511633299852848829433206620048282703534437041603847340242972912429645767978650323489138976096336517825360260164006749055671508258499277243641231806670925686803913838243862637275598565786655810464873905471018368146371945942398747140111611239407370607981747561163207053864173352974591141744472948491362798774733341042390274128076591053675305688580963586980662476212276393226226158134832545535558157138300643429040518925181956899979391407987740294680703766872554602020459560693173947015977176214171385334428945909556479856709432840133741384348648106567923155280077749169186875120434806772682400860110768043606763260206703565952561326747044268900909192006418395983972353125776575003735191682523092052099251118877355150172084735709244342941124362075358954368466026288275813794910052356020490317449007451219374937818125462802322723214258130473663794717969946936895189163707351602357416169440178911896789311497439797266508793335926204969285218816911126323140018607837356235778916773635743957220679192669278710826273074062363542930598658987138847065316791829315416359875970447777112933560643970130761287104107236371536979553339463045451171043362474170200528619218939686153421626948387679241820843050402616651773126153914278153101782927986573996374032642715832261082012145552194894632166982577560041230395258576297767249480325850757668928482023399345687083658164064051835639733719038161787274503951539774154244268255208228571583708637999938527920131775564762335327607219397610938648013460482815489291517148496406218753322882057294710787226301428284401540213083671931286143743901665149133818813335858129965704364147501065306757289688844409844369028447071918155520868483079663154230101022679008068715705478550152977838281871666524622297277644509096659038272532618815461059176629433501255765839886102199588243904313780340995153058912286158319657974127530980696635330315794134231202558849470605228033169992716614738831958590946704483400052448549895893007816221334691272773346321177335782845388400522160460229319632376943086408747158727414032395844707675213466716541795987256439029101364153002173672177762488474307750738623536842838700213661077470689675835565956234804237635184196186637096622403250865462909907466334086263262230023988446372623063065569575538630097695900571847720856808937939492112050481983657333230562072991128220851562872340981167537796867392307000025121804657174435472615315745707551871127071790722028039818572371717968403557787770873269991334889429861632037489611915429800607441006437086891543568397856955645305249193571041801153479339845340318250335069005007488085708589683445612984503030078228493739984911235847542822006157719216230919722133142719025176721150418662128958366829875676498181211973621998255598347976147718306034108631536566979557562443255931386304086970924727163368372090308160480929305650210376651462695058706465902369925458128479590029895544232119220395932172533208626263210990150980296860058953013631401187010166403638858858883357161711425039426087403087702284245786518226742381489333172977943273967773219498887291666482663333877979752440404433805989187093579909755438541262465701426210790477191746816939646378898410191650397120734761905135171820921797050582138145718074460775962770008592846122796045150652706427373846011333503619040887305254799083860958267370986174909916391592917945151332708366705415864992138311937097446151485698240974858796514890516669551086784978456513403170725291077269042806908722358553166832997084963453830291599265530924874145442277415026083189411064230979060803940486875989712604396425623645151619214832483738611249024777133533482165466512894776503983568159720778580393799473882589476051154869741673127822340906999846895193521191489566647596034218298834406599156120802782645238954519183607587325270034126755277034539042116802899392210475133283553523932322038324611083835358667824235774343291816562103922977061660481059352856812754014480756874885757952208524517128088272640655830322509044930459474372001390187141378786938450150489539821385406481018817226019298210104849932648843057610131033336665471407405933146674316480160161372513107606188896270708702011206856922655736546941736918855898186997727420113626944633433640015128960020783107115218146945821821561252062447280079900336394883557554708038295092043946833794173693701481221645875938885056747225639204851327177524205651188793921944680685482267092452903322336759914644131317118141014710393225010252363246418652486350532091654337184143260583194808522329247558039749372985458628558943017876447930693215396045020411240830203853129418921367841113464395035595065892506294543903603896181366947278641102671631719900579747042853682238104339288310666060214180353610094825672382820756883111857250180378598245891535188165151745958817269112121043376691264410456306059270022171184586555880725250949694631242080831229724676686338229833342976992487841058812144210885022490453881626504461030410144477144236784840071730044504430609057183971415438483345707828914381622822548464160596241067127487850374941458976077001518016924310354938194376490142975627144549371322489881281753475639147406292812868863864086318593359826744840859820800224709718084669226243343568260234992983405744682914769271972826600987492490916528981791966977558624715864864579881913393302912531460316020061003249201907065661189018913117459066784972809215044981381558360360675874938112710850246569320047327994707552162832894024810082067005443713457393404809258464180212672590872918938441618298020262116164812779224996846032232269989398423923277742235371666189560898237424543035597358960321323940261943163640932083484939070813639354958752407009298719517358418286265597293377460149619349052326308941738007628179997678118975404046846744916124890197631531137102652054631854125216406667115330144895139031095850971708998952679253713663919603322249636911205040575216786381706602698865607710066668389797147351126317312748225460111418153300987423828168517076661412970670302409677138264466353550651877397051499073141622929840452610348821987501512155277978284800951311346676636793798260834197077285307404874093557582310486679343631811649508983650648460732488050853913392683777358893304258573329256802641930324973726577796403256259778006555710288033480767346034417649062804073066322308856139510306789477266565184644525739562987001930391215664381348318026536192263648493344986593050879594626813380004121795990646565268823600971242823438376055004302065831431558843386739476163130554621210065390909291981285800553773838563268865332544163163354287815915889680981266310767407838156139848334655838913040866665055223143993437505433072758544126234045009416687757107252701506996035509784431132161966465231072846815764460200161827571314647387379915092828698190958882857126942727136197628580067014720560802583996400492742081025651478910963072630867189065182452098216297418100196438120434223430356735060724173257095938292500979636126869379550750926212028768392792515674262955536078145930706109480328865960092061258611853336233910604033808807156888606828720804168153488509099893831938093323044711994688509756828413954849043860337636533897979908134009996939653973227495540264714648696273321273305021996699105076561702657070335247613586899457308525906700431188572034321447211253094984734392440421052817971751566930776698265496658184634886024417197374926934174448807044095828050814181576351951659957206079543818661624815675386382683908605988565071221141435863295157248883501477684880315139050866631973268783760100649964785253186482331574640159014940314797210688568640446906931351796917554886480933268613564188261317173308078274288451120321956692494200637781933096342691681715152304696377626100383161823139067851785219247618526492842270190407177781737759679640725966911934392903791937917708732056252223218995880498715631023244207812976313710848139130564037629838120917820920539077505425047148226934403656581262345307134715175319154181137167627451271810596521223761490181090815191869914567442082785641192483330641565212007873716276604780243402909491531384329797566931425489667263415488314938299075626353147747195380960237601003025539450537906233404370532248657375696099993948642393049143209314200996890719026006205507359559676805502544903837912195880419329728945186733211341677727968707136035913715205164231256293292048382532446831743305505673456889684895601774230639400564566969500025051180609267749310645341237315049173731194549903456528387034943442620461237223936201933076418486764175389505845614941931192943127876905296989264907801219096317843779767799686745222298101810842485146935461568009075054917260104961159008622788410261125481811854435646593949050407856874331962366988942149585720133351468313632605192460225010178439737203591665925126561528933690453589933542153668880599231649923578704310292104382001100881864606697315326993039079144950935294752542981772295327422061895467082110439101800454529123999794773046552577913335822447577152743791133398686338243378312591134502034065633564033643733235607207244391735062120503170439523333039013329160917202600535310398459933229584004972303195829125569608120444395549402983242168115521481845465445564108729264039633175521172075342000827645088022893120327283243700570399655323720685363065312846935656142784380298491716513492490993077892332793380681985396681058052656750277857678162158573197323098311025187043746110129566172711559766336648136963183297390741843619573167982561404038134852876662569376323583970548334507056963775319000992233556944072711280889446974892781069782837521267718240950233293841565534138976664070383525889405620878484482363700737477006905425184256452497079257592732009971162777955839814299628985486745753079009704727351215608286419673513150764025294153471719280761822477784828197850315828650617402217095823457325157531652637728413102671318395503485965197712339036015892046295760901826873334104298457107178139303823992179285567050146226587249774499401256856667923970330816760939481110467652953472189311622588624523507073507078091755171391916076259121466220226788368518226156973126660539387435629510875543745535094926305630763103132562048559424095628176672076288610810790658764858171230907594848116323338054700267041961004989781333716763133326407325653396880878502016278970068689091909023378976399542288861212397235189869295303444800346612428785452714155317218252314266004453704196660124857344248052128567392836791233981773887971792259132902983769492960198585078603156396403847475419569391317634085184255327810832231541152142216350420643568402722818769535705375613268872213517348524315408261342459451957849862301802144455437076970855537993289133195970159438298855283651715800566749302858990032655907770035840498490617183349334715716266214726252188108600760089250733999918768482616389995891067651044142439718407678649691046700314492466910626488847829706224647645228159974496552229846792559680474670220147147308485846883239952451247839269727531573240258754555349749653517221088306082870147911375474525975315589811432781590504573655241177064825334481654030021216561540144755142755741465775227535625456706687035051308817270783864575157020337343845355767821602475256640413464445297350745834296485158346553489536067397561060785192410428560037387128171697691813729388217787005459662065288105715662555313673501065848247601195272484002471754751827019660630711352916312102236254442565033318925918866109339511689405089952584397946206600873926806259562071697693050374775377008396363913990369634253401010267597539717859214159355053611119480531137781894694590152474067557749274181972654463877133976886733100792612371628051245235656801398323291550193439738681786650776088616391101949133464181527038420047550290646092210831341175297228189491368823278480738382385256280745136104202326502599968079671161384027116040906708724049633508325127540825640271196115131801641357882128235956680773995490731846727898288563107802717712395063597210401329380878401296020808760965209558798067454574483905818917836098077078357358438486592716171205967940228715791153520409746195042303746709002663109704559813492633237427686979491948271027908006639941945767975995771482038898668911257661537182674338879709306551940539510548659590169914587006707521850545978738124666076682801293743448296450467013427703710133243442343622841901624224034959841933305669721418740732988179255640797646468635415018717473964857627134064475920380642453170500475602308550292432322388671053753657420859422522487431281693677030229643154928156353990610927158743736516671867221215081323302497884879300328083008156189266083279825048922049700917685922760569069627191343807833145900889413570404994006907224116290363469153197643224773489286620392692865687524680815907354675487024865947324273319361022914928549858086278757312550033280527645296116206917261254558219657558214235481452938201370240085812412157631599833251870344977981242905544779420159728913702442967903066965334645891016146172616289923657035973937904302503390596036087702847892826698412462396058405940610511695635307438326365781926966156298021263862165509874141708362892382399254537161628364876699407259597501692292424288442824473046616095204004472655883988773565539442828836104582141834278533060590703568479157260837893109146245552844588112652056975561346784398449640497608271792789432205548995396585226036877340769836446229644511460479118518351299221060558038638321486317167635543621763923115537808932166918036586928605831634260114410932901784591073722792332197385109198109564124494868596074247429234703865293825637621906837234674556958349383131718905646971795037902524565556357438253082777017928705179942279865597479826996152868214528998634004850680397509009239307246436126442795301505008966112694591214148323340684490221631289760907140319314776718430338234812794023233416475207865482486808951128187735691442969657238495302048378918096813898042524331739016154344308644822378196562401750618525802715607034664419136324319341398156425377220819671693266175522501458950610485553106035943883878654705770105218460388349343750958280706095444949147123759690823390204653043142956021618008837172305240090222213857294758929634578539203180472157682119558465313852312599832589337983771955863676689205456555402501615137592911064763069826893212509871842952292684128810753087864441935262333207639246923092051968731966929357915103907720891253549011590038656409029324505172079969579814722612420385920037464069162322691110396874141747171277377388019782145161218152079428903699657227212503438216969160974231309093830304929101143607262444785709067926927334355977338098401481970020394118079357727961731421013532075856172509112058458521772664438484296956875265025072909097179120730233494124142013271324761265839165002043984548948235213520401189707417230694496245855451178621306732405163661269742450301837164511826363299511210148588052718176766344105859991665119883193731545332745466204144900331138500895793348197746638275109752798044483363426726857057265406056802111488074049757338986154415603208885720317022937102385708755809859509739123230848366463843992923058291979132122958313509907305262731094356729169361510887676795637315036039762404412353989571828202070703568115385421357976088958866041665004313348961274046481066741305187599288917216128019501276883330915800443715122121362016822687329075327090786953257941442248421606276830367119039098529842144090187225521759243676750450644788207769728493434726639393524107744959959862671712322950363686019383355593004244532019040660691259658409765503819873093812930393635641183402116443373306486926760401230123841026763375754976226838144791712700829691152915294670573965315397454800271470493230819805184682498457108434812384575690430903879574062681809468165391517836174070084945999067561643809751421797522710433581974017616156611785954188670992104339230597369901292946037079730817773501900361340454162510636927668745108647546538646293028383257307785700539751767338383039174108370021365904328322514068326109626424189423849924056127149388882044802866854175748289472891663319424503612305958855875500467910328662400928919092923551837375436107735348501532689796891705775080266639340126040171012517336879199372407290855408821392118535833801056745747091302897914386333485041725960217551424478413459093589839622530855504506923363158692720651706945343006312323263867511016223796378421859866122003924965011780558294186009649475986048152830821142985055777378805327731199455888974291972294552442946898095326790777797906988313371445806118180089310799599981060402644437525331190363446786167522761536122451778940982355687511576623117681708435536353999780591073976096905238518025898370668807945550894319210006900388153654523232323554513138283962069545440552589711200396902759752194688105328827883464499936487822518353826405801881968393072570827020370321693519691830733469437195271589055023837835245124227026010813236467646622737421161590984365912507755461199635685876510778868368987279529419020507487116143989414407503513756766094236897137713774695900970447803276958876694142360967425383059227413625130451247549250958874830913557179650542437945512241282614477841013731702736473156217982589653618644842202551190127297750563059440593609210012145562969471612412688224518238542747793299879949551633057574767840489036302092536001991522418824911621551541234580324034401098125933141539835873405570132221918179056905151436630306169902304363751741810189791320494548143134370395866389720109856832117273259913237578732583938207348082772481328384673267650241067108802977944300631812055918740994231188071345798439176771166788434493437003956706663964892942710649623065919870612049871274015436390693174959509557232622049197205456815765839573807622131678785336931790423981820845236783274685312630276503045000129262824264787612763302808977995710311609380435982008871436241958469217857915958657032839495082225195250332699111662976216546391474837231467468530904062688770639550022002444602329823532294396390222799759542105699415548811073024190383994533663110082357411551736552139201591539399819575693194949613971125828017469557429028813123554550563337717298102022079923353521038790067609982483385084747466773175618237050969601079062260131661518539082669087233884576781478235658357631224569851367771768617489945267848480775381263140649124213228780503258175461137127476804874320328022706921312353636572839551929103396951044651053921484804712552389672569691697992072798786669380101449805531206990820917637669795787335130976302277949964149922127870902735343924108629075564299958980951860716254881916833242671159002113121670984562954471982034941364028989657211034077184134010798404154767318980921558864268564951523395391191839204156289910412368218661508874441774372761111587719297355293708020869471656815262541877247375355985714481009646128315053057673250035287836747889767945527744130280181037979543968967340719947159445777046400575468034455748817879443984365940094192112275120345908905008046889094902589391879964470017734900620474428643904826990277493875071481383496549057317305809783854858150954902850705107517031120189947165392213990794493663684080253090390641513773864423834850491135749195330977578332770958482832360176696348216886709375682972908900836796614238072407142407539512934391644762981468076006227846972680122708660168940612828017709925955150989578569495090056740357862276218681396285516358813136464809316150387196875805901715961133873342606716394818685841271922128322305551647127190859612022630246752630585937683803306516403018708228067200768248760535277557682775580893394031104505791698736715093003250724125813875943418744319836377603901240837110545179288347052611408906866975502850080461358737279693426201380172398498401300660141449334530876899912032660788659419583580962382481881912171544142594053503199793141988053122372305015456903080471545765913185612306425375153633644850731203298241519348006723472975493287788912060826308922543921300413295804833728099485884853139428940924883229828926875483696175280056433151145582077871822165877467337070840393838103157469143231766453551380021594259940285423314884843911843864871139516438976224248767858011487072657302971923880029201384959186082942139886940412905834813509817250781997988000353563153923386245117321115559594749967653140112926283338124937982036544888124993099466696517031000731974121579613360727199647915377511899239020440858620541376630566581544926311342669647147074199910634046192574697355047369159090742625719130787979970328167154702462043459058568281633459297370325248368379215090699428120100617437343241803712052771164533748231808584931827429276393064071876538297084453784209363497816653778258962243142081699254889648973031267004451112701836430086090753481043001668469176795118611015409191282159681188581409860005618895251759636398545358594737614411515226092776135192021401846819300546388336921292464412830722787389169187330411881061644554310498105006730437247154993858879872552296735918156409628278844554437751937065040204002261189809036941072430319156067333177391711819937999915228031392970861379840360043032659705004148705300470206548478653581385444668156335613614769367534207318638387421047436430247851989341940401038270575024239175584311526680499278826435099675756291124404212590386182136608554804995438424802166494554695232432506535031870384663405040651563794001423415818153375993149887696013669400140382332486137622118963294241048095600173571701499175678194950154251539820388555398988478314422422519734780473819448649488852300333324153025513790058191062691474037077347759864813718868132737010754511982999722096401543240332711050922149480728052140756137013466199771718445429575217827389965092819757282601351638986754765115472814750678474860493220899052303285275730295255359484175193114297849632803786473594511546703989885412050969959987513782827949621449967100082317219099808144434835725803800434324750165716509157731618106094405248730311965637851404212650714887908573241411931911914280515043286337740747129663836905853343888758413742924520256903312303009750928015396442081622366270682450800980676176680193188603360362835771019434245427630322935723111354616209583688279567945542178432358236476416717879125033793461146601302428120137180071514051898424271454344383122513065716135587472495838998786023079852390542786563071263830508889633374108554995693232828384747923011817908831074902243484793201114607258820231537549932875350736250798914762378246450625300680470027605063902061787148042169818089457469344593801156333130607300693219334441112701147140054580948111566503766116701688092836450282999411223721632081142204126648503291884292586839877718931997090118762445338709614158744601499680518780391447316904049855427324071583381887759878517891014970797663581143253774082230184442333029086883493267814333760179478446227421509234629285532523404496447024758543226413442938449021024671713810706809417285546301390283860861723914126849021649271116544638813328359561715468177977662993482218106947410233760651817031104465081209903442230187262009490883897605093913172392788716313745802645460831130208923069588628637611407572253481425517697575126355920329900535305553207809323344512602611701336761364639745754963813777559023438496809993328803050860036994856341053337251942781252837361608143432227983331426161865459929632105293512319955759188275744251573114621664093178461123482662366799189551615613125778502073407135590183897855004597243786408526380901686353085508295521751711288803002880150586309670767165725877591804615830836232110755886038738671095602868887624435731866874962444181388357171327132427563193567893080707132592795247043118706246488270755861248125428133562083211822842874024459727387031205789144747691010216897255932278228301316797903911159551223316144983132757516999467354570171596376044920671378475592888084435522120581753070234989238982012048730996903162882026118073587907403769048274316598413446611289438150795773567485559176500660403426788391859318316213750064222586782178300324034527847454336632861881599977689311677471716534045192377479558359697984390789053171089334468980999846757150476130227922445026688404997601695660006801752321033828073956547156381902569998965097968999705415819168285360230998180842739206880802079694061068971745562874080451703854855187482477088089031056541811905021471709415078218433211116148944958443518893221957765163207719316336601863372197713831718851035791341400796551555123636282073397993616691647490948312704868079823769176720191032626200293566373999504507935349651543079836910909809036928485895689678318002138046953987481263626729030700316113065166188184713020582312666387569621431103250678634642374981749582535749660071195247239701637712414863269038217220706432618956876614185491756477594330624069874476440998411364685857594204452700549466345021904368127611932492111877301628762004336049160080432166779556080197363588155400931133600825783145868258542103473891372757557045091577776163708450816075298592771273655678895826498736908292104593117371528151977409891049390452214416531092908871069279475777657468748500762036067143045594291787080583988295134364629030524530536861496645804042153150968469162524100367177833101714748989464833886550703583956850806576270363603147482935489823384040292095601191772391762716052852247431586765577614071294243346433149207361784975550824082515542176844449027410233179223091623214391339208154724724263902844935114259258204080480866611872318151301706028228175389141475862634502272980927610651181137969080873522215186903002311592946030840999730574673304642509245638875561390511443534961083059789784892202327944426146072243840821686407876542315968156379130584199027275451893129698506237423996397347991865793569258745345782452679212174076886066065480719106880984364768632964287972263321632416084501574146805617177738173911544233255818461833229967403575526756410579123831610432001837969782048486605275926458581951207865553692198649577514872943103364362723199495035681512341556548547976723038460255441375464487023913675281227043193908987634750581408042302527495621231639927447315544123506401336945083208550731918694701220689613887590342235013317095759846613796187252327451761757260294749849423229020661405467784496034950396977265083712859003846046635519184697071119926751550504188073553165628801814874441671480350598408694970577905884523281484315144208950668574582224416956661237493396525026496386969310483977722377304479005914333294907336124570380788764417958195424950103195503029297731342776637732818709233121391416454607719498677805866354656499329855259849485841864554369169145001128862633746749167796165914772198233512944985197864474063278130572370212637726094877485441065111750072334698787536690654333650528415298874609684624678481900184295043895503191964830747060045101574566273640471940297254071485208179398569032444411309806646673540451862415615942500496619268991832434766245850023271271834937844840615983181487587881860441189480792085753682677776519151585578699575857133533795793155619632121288374796111011685369376603291216100582346505859734508506725442403840956128287053277846662799039480815799804460164745634026498573269856202732151613525993608237373383281105194533946094829035896359902533906761081022162715347579972353944643269685118780779530800531489548124527200515235096085426840015672350907298814527420990482401594798704831980682816230997282254006901613433496513026777148059183837908351833534311282421160209796748475143935902631789623268516320402549769473422022606118950286024786341352624432942864524079794723753325146317481714783835705329789678405696519389181426017012560124352239422764205408096473332299696265703026137772885595506511991576657776196097897874068710595726864387957046466114213182538132059081930498911667359651842286724335226849533023607311496435951233665932057703278175817565826925866557581801790471072752400089588679374815787423277746735111605179010294836301703468806538021832032111967873683698106975690759830887277002078520965778989015320029346022507578323571944773856907166301667253896360643967866255687102033050543189395315364710293374584275482360295484180046065341502496861388545581710216054795561291124204461016491347086784470995813564266815049139245648704644315650698689106654625933926367711316698105705990068593174746445483259350501940206546303452464067127720875087217370050086707715071653720004563083144061290222941808237210715813230105185521417341543037955403475078941880924410823774278035708107901578085424373015075354535936180925914245675833775999492443141152986520607449174871154431353987956708604612396924742125462301605370160435973961860943296931367155675596789905775679510900749688393700620891378224754986151898493183144104727896370898901206517405408977902075105776606606785928182086703606034553070401087873226358967057800772241826486358073325805141240463575898120658336716662944581781873161905269549069470670302110608712708785197240085147275276888292824352922076339697544374410027233482554582571712447358886916625919258757298536199853133140976486944245731330139580837975331608775529244496045538805536525831593172819820222138246785603376490317856581689791023534209848214742646061620199292500713934101128102253104453693864984669575206706901225875746089805524229673774803745641762916142495263346158767846515621778164788180117083115604191189192156617660236211701245700618480622043246206664864564690941406960345007737610891056502535124973499441329070699197193999885779396305718620693199412850345554761582546947122021284634657588975596925126029821946680368315156648221566824090538985906268554956847072067846829733081420104900273411516853688075031526662423530470829262518588277167425123861400068752233785111201710879349248218180409579516693076108671889669819982538346843943497819402982562144497043454472128440506349193289318355363912257639018807149939891169102802128208267500876378552387826297698224547422169198154315145379091744850063792946980547974823427352924013095896275478540659193001570415578143451705309813549301568055595277242221753248480615813670415044905153986909703163360125703558881006107296514375442679633481944439469098335902933131069873365514603706162354373757847343883593685030979429974593960319518758053957256792001208874149203730773999684968467622842502220994451693020326025381344616411347257089150371886351034634392794885812686136109202247395243589330907020932320584883974406808651331870505136117246664730339666067089311737847096701932883156684352730312167234651738615623536631763639362529171303308767020989978202992044736301853184230365934479905750845414703475316062669992843105167301395682832499470481212544168769431068006930761851936940430467182721907471380603561380772065087278795080909581611219462224019295484358529426123836021005697773230324023269549902896136894297854145657568749507914606988114059944074646071876411739992957302057645437501621759688578012625846111192369106232953900510521793022036667556491399534933953022968788290774962263564519337644021794521136347149727252844671216660706948229805087801571016050004188255601461916213351332851742304281620496507591396498997997891824700631643931305473720436365218173254872907685201645384796644689290908304133448635373508149973821764907589439736381371743386392803148863419692356369425628393656337615207067203888668014488106806284262108882678714181284616086268792111906190483309798849979309027911270340246488529305030684634612590256923803844999959585999222560927920305706822488820559296109329238689077404880778346366261111814012272646030127099387740091869701263843812980452106465091222994476696243257212077501115451631043422798452663006380394442830732913929340840161599735780290954452758075692552708649886030351106787083748594146691482311559292370173719006629733811558651641864862289782355007676436363251116650184129364494443466926421288412025635597307556001110176755350459117082484644553476430763038198164750182365457987265925938753437592015077882250901530123534487930535943602873886972327939492519457784860304553091705617022101477879470614323459879106189250285886120481293246657652866973747036709876241678586569330038337884309527648632530079404299425844145838264124344189998338148130625027982967296652876158580786090007317642013103691386330155017068124116947305424339311622291449857111979783592892719837075550879980262539454289459375981685582197828072830871278888881000335685691447703667144911360530209634182983921315780871975737731048241352657885987913599686407864751183596541847858893269124384705251829426262090964985510698183559956784626744533436695028142102409093856625864983122034430558041677181953948000623062005868806082981548557085960953988472442508552130749632664545467801367704664601566520209331450920459508202518785082061419582942897744521596977642194619034574405118543699596875343622577980291599614571490958726591125363247404321738745010172279966564187516576572452296136382208505985206310611066608182314140943982777246163312797999822352079730475727474437761082186316230228232378102197936465498665925608221339803290788190774828595356638199525055151607052612231949441808308364131909854446532356143312970480953094690236368311926669891502133298475076760811563131309715166624135261242785946323121934448126140459259433963911257031462160738627292902683010903312472399747349972959132775691708342857845456501369998730314599065525518886790378151266358628570470052107912834408094349998121652101761951685167110221127393937466521907087797599644279927812467110701648035422373034175079327963426017608843708980306425241907372498094506742186444505884713579479431189533917857153990528394728115062738956698015142354611008638620802842055446942199094545577737243698994822198462975581067286148095536607900126342297682269750835634028845519784941777064795600735575363402268012156281132522623825416283553781859750829247447786049332531238476370399083878450760063765440067190871131348733196974989744727311606559647941584391548504398389906078316611007859707420632715298335485510480758973255320064670934500925027902636521794267987335345971687517263773086124207949727205800363452577290309363979336728509894092743616545539301955937928395096612786328237125935394025669860642356369151108931751716782317760397162990549363844582537728589552677533760672644284499349469907296668215297484417026134485413338609192383456098735050100902930604591325912767586202563825096497042952679736895227586297160022517401813567044685694187746539429408583507799813336242760857144200952794944289168988531510684728958401143711555743335238105586176377537387728816221333169975554569871854067006923694088846151421455020193477748757665705365649918001226418609169814054940020416480025027708362143576317635095957424641574104385450235715781695022772163809196490514251273306090282274623409475386837103899359162194308610456636716125431845499598834133362302672527230882827992652508321720359930098012181420675858922146158363523194395168224416433848393724812290441907259835206951022606579845683872502086514004266922340037497733920152672132255245109747748022095404901369591678297699681708920774565869873212869892527060080576976851850164042596452713801276198846727956885181017347383406221771061377252321160885820517849494303044410809999227809680117989905418636436545807558945040879098504630804413317042177741317207750326672156272126269044962070954166364306481384370754019120335414703992130980505252385289541063283911675599498512484019278409268889072511933706082461113382461879234177867414820150019343194309334068557236669153953025723742338920816408163533370675417287405792844027183841744503026061721851844565971900934823334253118280487056883856678615743633998244044064677063295484021159012713626444629206896505284212050255093147939149589828954922932744192102779576423712052055838546186700468160947505710657158159573905718467615640021532537582468697128951689075533171174669105189219089440729829066788393228747540374708552389601490205151312338179530744164187212511900803257196601312153348166819240504175032529188311254956917806406540434559663465921293248836156494498627858239587255883154710414164323777260762986700737321140566335157678540252849860743941302466657528944857170060768000268128336645325600510457345019686067916734066200553358061190900957917190116414104929383692268972357995771805160080045985390424747571694572291572271737335398099963870861661946109436508328441057177660060421624958357135068631741946197529725949597585418249075601263287960313623333042693152779361825759170666753663414835706997708857472613391115449179047122193215457772749200947828825497579786674575269583842291517289611830310572526437538922224302211371928596215483239351282711059516546918981160523092086422951111581629993174662780118349947851149112557250734974341150675922532051945022891322167270348176645895501425030577667380386127534588686696932995149195688268354501994867099407183563811307567006859987379945484545799504543289899700760414464214736026876031498191051664465809097333623503004849591612257415906016802392295385650273406923629626738310284893236980660504269311044960882288598098623726934695388541334404563284757465736669394652132738835847674813179145317157091210824434653917494371907940560292232070036047153471129651298619175711734265705212157623007712368391503378277944080117467457280438816352292142169199629427224027363427830648161872911803548116858048063410454931481593580107213195547446792623239270444360959555256037904522796286992041028263506929455479188511006332830067554154906936602108168254056640585970126420037061991185178571010452250208936568855683840563653026573179435990838141683867771813522449016015742282677955330219282251112476259727941862355056182191127908645647922911807989412455141706955989534445819281689434142602152394864428737196353212143727310355001765241431301423742583845943884733061472535811772445230986656104785840412887395180868763525645006960828684090712877749730593564881912628790016577037308217128870039615769307890797431352201224904847663453382829800752790268297224424438640982230106401818986193424441884907988529072597219715776203415520278932248341056927935375665134907708113268602569738909821964158544008198356207434789531579901665885532658294055043530807869026501163060450268648673408563198706849325391061446435155398328000906570346421095256975613142059282507338802045553916676780824168167334509381320806051153588417554003791696773924814323854084027617819991612592068270592074689976750547973415277267768903167154521865233827931916502295658419456882316065111695262549408822361801499822121535933212811942769937309598720533144241940913069990879970448074911209315494582316247308503662751679148780312239721255718868516906531536349257381357400050315571804880524970794659115096260956545970692087898804307424735374402393652685854376565625325019430306953468791137861474965327557120136744764263042956315774131686288334742812921885443542499941294724728776749769227366163404952068050328896721282131846852451153778792523194004698176967826974782591670637111114026093310169661494763102720087722364758378683462789265559101529905227777098124507557534059838774578672793113772128781590581655908755321026198553445461176277202829521878239114716018762501049909605269385097659669508217922883065429948521149877229511361267558583437649798041662576023826772334280095057360157227605651657796240540183261786766337592525400169086640394237265940469015003956950769779441531199043949358286076869938144272890210741028073493811296509110253303974159734372339409734910816147927028363397725753488870367329681702493823109227663289713389678258994989453100481623636441789010637781805581126879708987626055824964592291807295986930101708711054827148785041938487834445463935303877751303226335865051485808009793317598337477701477817092684470477214019568496112254382011651341164665687515959005978702635406154973614624237216627519330251512576622084440436866469191948435155864716271514134906064291773224522849737270742550030589743160419171792014480217565268818578901355607339987032541009249811336512537928232429846227295995504092501371141186206059792711767679140280010471693390417374802375247087985802501813765028980983203818976732738059817774224806375410059188021666453402894976884447502280178997042377607078334915572632205823393081682494336122826422877275552722514145225627268059093804483895848541490811945849054132712133042773418282834687927357092297219851782067345362443120435728663516849798287939580988794065509919431364606205705144558020329309576880131753777023867949912789595810773356043722524846717710779358873994627016366180108583213792501340107051355623976241609718241574608571200118894833846035512037342213273785364994376728206936691765848235272604306692316914351091428023147620727108724616168617701722940328864500652646375704645766581413241421381919678378567545967369148363642717247877069035752067053544818995592734430689289063972271083299853640633448523208066604961215241806399220300608382490053711358555235998073783333691617897603715295674871561567036393444478647648289857545862207801829843284441351982406984662148261785316275670800629958094050855316538492415096994590931442814493849013934472295950349193393761277659545114586604337066336194922293967658707640634310344379683755427848622529193413961561460147786039672017189399900195048255416194878634332081001161970579238942137189613959961584592090185905437796675753703200641351453244955523583669503858820349937182813550338288129045065651462007282631122515228106105545929520868757757325976551364579065697920623132602343226356332047970471600090867369667057465409751500833768289401584204448071272934167956198085872634571775010538191774457557377779007921778556928934976766279339191505844850892301189797031021504670793801100726770850532063887329175197460345151852868685562612804953438822412647919246453902108615641105361575810585115898137998778877425820558520622698719988885736705194355638491191765662401019087565200602030777656247205735762799190128855216321166126247016509854482624242721559603031797367770921722560770539964859609781939854913955915525058110998752256334524551522680496205810665567519802880351091789200818332148442660407435367510424824513737205397340326618389480965633619226403233455452781348579722424938525065914573591472495125070290458191684889583675509755242833354470967857097902150783634293084165763324082229560591344522498159113290221553099145420886307951366404207621541987713325198017410977957711739890171957783451817261140549808134915908432563045142119785374409802198122298767870250027191421472034234903833412169361336388025308037763295962363279580396351229623518333000913008559090182627123393651338900177823991010485156760064972602368186446415569946669596641946970348117553487417062699698389584300775101707666979966223032776438906354300747819304760158742680927581386424294246483328752174465212616541513000671630714511210593922812535693242334160747977966009797727277162126866798045446345942526376411364352426374158433326126321152717362785765195435763526556771737646066400863708049728973003255851725384293973584338569933453850159306164664013273497727723433571511826178442185015997472094950324453524664868106903770770617106692821027829298197787896955597050712029725101279256039702352997245683402562998223898841954776614124594488678619164162824839582276870438722126367639913033649763071414426662823171195841321601319345612310776049342508112709686513994248466267793509906852058135531206820114755704059662910871091788933707467483059902155586045900929807980337480696166467898506855813190679189403092241383860654942127028675125286835835922723767024709550050545881544719871763362407114641242792670726735801829838773123430746102329787190758957337986862197227625056105123249974265240984686524341080232232206337813964757976713545301960119397368499201846105897335525953708178276391805332328575156874536978275956525450620651141633073398219195484966702812482062733860427081291149546925174865374014520863941381835141713603289337951078958602270314084534139136695261789617413870519673940163573723144610016922684821065208388420425179169963589002450000710355046460699963230140145552511049308506358442337385794954435022725447682577140757049275388335830636809930889923138395151621771375805390015653334447382588609993307322044125738602683862023805302200362842022006461167347858033732690308453404540386902072661809382630356008216961839084853521820402031751694062272035189288954683878774898353118681138803240890485205579448569564707985264758691040344307255579372813391666837984786806065536896110006254117922420868887235873643999400695648444690303815774620984120283388628096680820315305289414237870023513354036689742309388775697033767745278800991905640498512699149658723768319681171828805650518519894144891175753410035692683671276569737072379771480682072272760750921355082059115201411611309024167555809276405815239923138780632259177517226910869235400363210167462889558223953469474595675774607413099150206083451529285925267534019581362743649563424970283912015848901654326054966756222864296064289162737360498122376803653080616060942065839083371073289294397422035386402352949604637379262194412059019694094505931167555525394807560168855651982138310253817415779049121806754480425707491028419066723672847488367209842958465986971091946045260883423564288834100886451265596168347177593480911573049030572871829519885431828669342100515126162383822637042086189132133545737496552517692035280186429839086681119285475836486514152981912141338364807660735473018789691429378953534113826077609127723610480396103124438713300601695214113262329561672915829817745481511686583488574641347094226434117380125886558378542453496441360683061480295542153496244257616433464605611094088962078181417731313701680536594344274697635620222623061411900388318851303095415840571362325556430167343575785916665041139665638423335481657776396605336773020367800317043237446397935219786927192329414214454655368127926337069231191634551051282630326914119886455368737828826113603586824851908468640411407617102244324140729071582850208218732216280568598481908972631756556717278567396633152204599206809144866083829477888952823787022128472466119895116782806572196698798807545010607041950147342480140352915449551800768101178857011387037548352497122116583901233684386335557718701245927787098313047280352874140575522001949884921818544372431485511985771507617529966617925441236770781326915860184301332114364161993269173876170691673094714812557554390445641175097140860028529693392824099854377638310719124666448106336271657841461479882047517885843404363477014013317148373184453914150231616233855645751093804978240057377960747538888947071723116785632865812225666332822364711482085673386035456145874159078633543312682043091875903407868388950094757438961483843151685101666388587467217939627496772992344469929594311613111571240438875628887431229653909378366225882732267006751264553888741824071782903514944429885461821141777542737139082116943327278230574776559151941373106510487650519499118396927062398924842392011510476469449290024142242641693352435576103405145802398078581784275690947228599752593745284300822758123220743485672421602708549840256226368137168122565208056283072510673601092895073912325638482470562908190083655085795616729864859137182969143808072970382973451714221541480481761874596131918929634350318344757344615145782250106938163012970474334284608909782379046504404529331999224264080417231333367359885744983848498018512082148121108040373165035073841953118702050647353632570451762302829156369910930965493679563103521651774078612154342727402281112360656036941573219980260731255588795744690023756797749480281162184074155336222678421856972192741248479714319597972088903035046938922257661693840420401261972857440779986649904380960704650313818220337661989744588019780481064767087899602669847440617445395939961053676310654437388840690306059898549271886642482652614963328154342108324999551038935356843536798445805475621752755819234686814775985388956867372145084398911308236640219743188775200857990141827558171781420037629980162924907597898563287204671522670928784018813074333607080504918097238641007433453449281621670046161911514166563962476930702774291918111937419883211531542803656416729680341488976272254829989174972682113710372554072560427606419435649205561949018983220668623850720611023235146315037337061128074380239126625490026758621623839655675654318518272609726771683155345018152770151711389370301737422835361759248504036561598504533179244095056702469734297424082807732599947777238156799326865014875122840004741901698229231991438640296975268595000675456592608782139677729973891860741988614819293318364077359196614502289333600415431194194959046782345766727428914236836580882662884548996402433087135219274249755666077852659578863400405915979418391725808599376893904081283633883640535204777885991105601902611336431447022071336705191656942101837762693889271930600078318872679091854291526605146701922101527835222146618043856608142748606028830262890576134152236731782064526200210383712440455837707232729699211266620807017887544834740882546040750019163495430256200774092959835472665819076930662843617218613569014217699542084790347784136195652293365147632749711141167468008509303478416308528389427625597189086809592994515617901445683657573622187860961970793494617062775888531330114778277044516171880743958854893624218686799299716197790316010265238821374213777965792816731159455453049921078247126026126171751226290289465717664479795418583786627248338947898018215682581574959345048493403408667909305159150318298113035131715967642589585149610498774796211149407168161132348320836031217207035980922297803134730403980936448920562688104936425138790168975460449412062607221254222650751992852484215957706166525187413906272493104304367588945728787184700334350338507119491009963976978682817495801350364385742790570905307568675318827969119189498530871402959384991104912264451714673900041836182591116632752902762517109899836120731698532599184566981523932677687953545722714750082990742520356683958895725893763745655073668626626312239351935572148957802572496596079592600444536121058961306641426318446741400252259226384457222487506907077444851336085793320764543702660173865666321266586684100035714158816300943657696687868171684707800230447423115117586552532225380076909912313028223191181931318229042453995776553734082845576763082881477083931264856295127603684839843644874276031209322661954123758884980035739991390997026287612800236510668972112313816191160998594199487757199709376039791858369789338016955362564730020105404930361139599579138397088168357320064769150734470428849043206624593945555067227696518675332830383990165022236355697261312680361052855235721764825940794964448529319169985663417892720385560720324037769968157786507449000685141857619847418690692726247158679240397650234583789330112249612979953340268172952923883441216220915572219350296813069978553289287322172711190937715273141197617564617050874143915530226686622083289945285163656898850724497790674097810867707270705779280337020777742044227815280606732684104914677808801048262193146234733827923206896740062045869997170686024081545421616164022186675347104923400400926106334414713535670615829316820907357381536768855515506810855958191027896536129653343072761797224061845394537622569082558104049029818478507583568165259254913703057540821869009771186127245761523890268566457224933840975657085489565361115860055929475148837144927094326811201706986908191439234154100215762436463991510282356658795350484728511068306100033861977841880456360028407635747977976097307815921822775679098601792693453071171183843586517332630638859277023127778118341942739787407608054586794283860836310069260390840302515903545904310990232822492610674021447260942139206080558563836863943644269479526032489972720154200128848419754562320036723100921480966126820567059463222423518205183397251570211860855532105372583465146089065575244946251057073513482663439023232504244061729986971294509966342577040917043169925502287459190250842218466979066775930198278995723035064988386183746755662701928404094305769282431520831059437717106352212153648802187069408111977659316809517402837329037974376537357269171472606453752863498970710998150276228853041584295822488492169475821798003156055550860250202844478113135874000922330518786682941540322822546030234275139796153860093738194935184384483861998058449068286576275890479972630454266733349457695450225507447125492723343737312273058809059887918617365789403087760118730650335523337839431151062717465163474051742443042519423655360612745568388455386067474709301428741934202682678057260664184299600771129427643980965456159905604688861558291652659497982796231765340379682791631348425389472590038603876580340402114559602271978690872565769300293826672993587069699207617610273896601564276490257801087314802282767181032895091392687340601682751019134884404864288256114298683956974567953389590703720180112552676249193907393421875056654704393674085892988057800021206571086783765188564048667083912126504025860281557682607297360774065794770775673502723193016825599696075895311547450071763974336397365348742488450208516302225069804986695354988269015037707742505440986334150419724296692254253129079269817405009710360754730908230431385541974140176502261002145678441668080429233582125966597124204571543721613280703903013246198511303725085324827181064755672645973299441758376522151524728891338459740971553138062094713366944496039003470439450342669718033027364926981623520225129926016353311230962810606334544593439013389288574869462980685549862655835057196976535626308645326784312022441694912430342526966229307251783819799782792629344640622796916563337769517940127725388858067759609869786571081840553818671411303628244332975481408196372023263375712752690885093048238943424986379289441940339266010222516408778725484987534193236535671315397265823042388188860612273639471555982688046767770841754418852478688839797447041754390582677543322499409634210338475527650913699380570573736282930619377963395568919798382562625219177971972570837302096469995591149149207270922357519448637164025199792984446480269829045465881354674074069193183073567503800934920720696937778422936367418388773515980226420370648800585680496124823628264550510163105842910234245178244643873314366720225050396980756513284604659628507651155922956837534093732446328091762817990565424652776225342701880884802466965582721798914491486571713731574349245427528997386816857209031361079058955007087401063655256123823015206062739621889271554086592502231493902223980461274551328756355822087939396669617541890644281067520492567334505317241650764010490885470459876854418917258188356797007245177761852072256352563100940209959686772402263885857667071726966547357051346105566647444638393834108366067271615544050229636677826589020914837320570383617664761807803849417986755892955925640792681860046066064972733711412651411679416473551935727722821176245202562782620716799488403118192999761220768397978505497044456326151756493279581976664494884908098376213703578868790760664782017055033006336359777571372875168546750747067577148745013136999770660081154477525798180200819420571815473479121332338961724492068183453963694266593616993173836126089534898092615501859990196650385374820761700632578979190192383939545183080756827867771816942207186587190774128061492317948788122396390357695707791665049324280898098774774847931282570907315715388060246054531665974846160547266726653940493114238531253030767243154110509343158599098242883064115806491070564685370844863580732275096571919461126514953118512601001068665873186279430468736147666396699004679011918638040852034275303246051087374121282726014321185147609927695865581742559718684966201904612657274032350879153955357273676036683920031032336556883415377342647162347164169951327639329733808988258589899638101983294092147922167508606601231716896874036936531752582435696776239341580035069306040320554680413307623714143149347013988343695502539749827878551530962737958252477231787643642416513702008058144503114061692035081752762893330386259604250625091016565017620384763174069443012641997347159499257663891833474489808533685313183922579336397425322439950617262443446744089171091400584712071465073922801764828150990948409574096138721515822515909761192533646655721086270255925891547400089989851939022993606606281472112460551287977386505647742427869507835856820137722911794658746289487578306222657994720944866484417213211150244561190190920077885390033525983674487987944781464855677598673861378971164370954202556522869987069641368019425884913352587712705872941044762076273837409434688063134263888431560097430923229060705769363889426154596364822355663387010076449723124396439571132017045204478441690506226109972636145947592590499236594734708880289527835124517744314346448058154475652131669789938286575623499516502617487408890614223861462847693061156443654260286771306099271176442279885329372053940744542466610347475358271338722703066549975587192482917533068538868064698963804445199869413982581089683655586557490687991432349284474194870443703580074176413407830627062349484438654308274182418015693232160235134951404237336261060138424821775946604166062134109767472882755575663551517663519860830540028642668730027298480377199066564955446602989912256749978809996948753545687771401332549140469498796410816870819085790835836268740427758112025345971101155874371115038918679592529462316634679010579032906486197752478479867551424885349397059136298637991618719345096017814679114941121979475984636666971676751025659991539244469439600968416848455043145063263198986362989867728177942632033973770199718165368881036573546098449596955974502261934180544954672312842165687782284850114722023642513696483746428852943771767296582183787522620568142920335498077132667157525565671386533962415920233192514522069299839168060087460244143387657171782783642559976710500737656639887708166355570307503323595738343542867970409386219521184198173344296869334430977357822335853693715572776570080963998727865257459184634284813337468777823999891360075273520813687970298364619329264516651514181550125149267642434074533928116721205796200372419293737327010502277460147581070584589954959766372494952221452698236107815423624932144457161935508011380725883317783415898993715059502520306049067360488919376458204732427140845718261056146701634756432987269664345866648195162704071052143341597784765678395695064412150207901583702709525460905658087457427261354569644587829710485430329923720460699747882753613158492291468176059918973176298570843783125537474512005125723800844598961527302530838215913250845154101037616934049694706203021506179826480905763151034867612975264058198029634697666011301264312611288067895824957337836989798812008855851779926938700512431049753299722155783578638944900704582187183193572448244302547678024619633465527572310468217890871979536764224246200651021585419474237085223976133090329994754160111668365862133772359185020527547709281795981875852063294575685430282375001104940410664915131113951479659561845134471243302920495556933505107455255190540653344278981169748239174976964932131650848013107153965215020771917843661726130200302114884695670521103352560532121941533087997512030256195668601408494355728580397008027450747485423957675686608306762637679495370752426644166829105852402089797533318480720987811722621258747470101762397951475869706208003638736896422135908798219764142870910217805845646914109487343735833676308977879816032997865190515016967059975878849592709751146816388568996300834704768930968930658715977465696146616685928582784699693294149775575037012464723060608673220506276441812303519702089937171951713183801375749492537170869413311182603909700122463067163835416189225966474385675860077591451772273269820436055081261575208345974268620410641669420597258107271544351179116289820003813052491257949765812829395692700916320678746678458016385244683336534809838332602660240327704368276473390093379141204436687489449703226791038233214814300787531470108967149537346622043892582442357753435237504136430210097404735924319735502825461192818011506580995278072347661741952416313508820506314981445832974540195047594620123230915185552802414530483426398851487147035754092919123788024675525341214073042951520251750689616118625388118183895857989922793213946836251628157919542778360971321677939150244173038302229620846928038807992694120475639555508802939847163475601282979320601551075514269811361668670141765500000415194825085471389147139184252416980276310362439468788624559626430838993144970135655081571695656587890427555616131562758504056421254227437445779149216795031332571837885351525977752554123220784549887594420527379527175203892146222598694593836096163166482572488031119078565464975065085534740287228147442937823076928615638371871272921480589471760452066383267229782912083599039817004483787156063037692148246447773228135455374128174444371671772656523298012702181284103259783923552928693353579190124219734957795387412699916165435519032055513429388744539657880246017868830371350107257460658320133242372821107713212253326294434738816072544119293606527388075191062336987511716320457306354389283313832573922984838739612142948190141426679194685841432599714784612194911235850122023500546494265465292677075890858118329357049612236166581813370797063959988723104824449764032316855600710784933342627778390038507936477155738567923709402524108130748277775603059236883110707370521912953556546685955221291163381783100927999840481333113296560412529409531937445245312225244214401881914365885276533273658266604799239092831577923921138783495882588477155568884991286186536459323618136897123138392663633588702680674140669591463198039479016803892607819698295831182068142275361222589618261804375061358726516689879361762587128544610081441583331727653062911647463300460324915281684502879977521284021386943218332155936613961073547497749694537124502040450137110562153802342929908598337251756716129055828995092579024719056046032590695706988819393613610063522797975504410630259715426923312121859545217265481173645596797424327709703876122168460657422674420344521652973264398094732931815129601566176715010728075846007895872791609879458454522732163527618344938713754687912913796859706463781388289231543819210288732940872146910827145192632642569423345770866611890206865143103681443171892107538010356037419112434822924294903213272969540320655999547681422584751639502687570845067313288130365579797552891996347537775502347401647501958549121366645913073373018976895009131806594021614624205294829666077189104304260723632493300089299697653524689619821873643078411955747593516526364499548671827721247860908665801142955204655732115378501260731348025457455494116077188983150423365625581944685212262603810110797285518155336130576394171647192923185677231566623879449473551376252691757869095996446192956347877887882666948881800090863609746961888856166079521026759090324314638427660184682455233141554464916422887102410238847172859634420907095143291423386912189700237657755372529938586979346944113423316083014498781352855187117134056527296526462165862551915298211632893800266224618113301828599706668526677269845491750942240834775099640936129746991532255001111444383455101489918322267320936960126392314438661198532239984889368797367063651846996551600613515119621639818605104414585845446031621048133095066208647711178210650650446253271305928863090495008651818810217504523276615538349781232327201546232178550143020083759234128928274828285210329079065286689880355522397955742637864021528798415904630627088967968842213673037170910567440381948702325844948693997200288791017448282185479596070717312160200631336593329234423820652823069238222344149568936378374583873542557108436094897703285383285264028693268496456563357277244960443950571786538062842839786527733689129901072624690713042282429380712893006048542128421286009405540002091640173118837039879226652202515035190456737444724293822332956011920916792792961091323039833764790700629874363942110691472748560353405450657144446709642781764098404101977569565159751504044387215524341264570877403490099744026734600283739645076383337444299962711378214240743472370237757536263254559203563653031485096315919423408360938439859522764122297236194400504577432303934242824199139078339830002134335604230343084960251384997106330310012337851938512825705583282475182511590900409717418647999271737762068263266689615962006787241101114429457621022257117491872962892427697154563805809882472113106576160189218497132908867987397936631355431802526718917861683982852200345282352082751715721099751958245552666213235477453196959191540429502427851763422291387900806822943952221022463976930093764566924319557167187453019346647744603392366529487385902612651652242213855974158242036229743311802112534053983736851379164265478523867382201421223728966724079426178787232936637544966540343228547678271090692302506212723309489295383098845400035783143258942356875674959419477527615592148465757769362673113460674340091733019085173795876878023234272785147616964706559143225372178476643951307415595885659432120615763450545796088194140140405837109598400842429852314713080276720944952059598669258567990183439776381291027000424483632193968690115842563200533094867941026078897640519468394775598263120533623014095378142660986686368206877140611424323170980186006821445805801191998267320304355104022475865164080955515415932986414256656082424594115935974408631480481399327850218521997667893441276997520752873654348761435051970283175529285383100457756727476802546305675316174336080379426872772265536986831785037431471176892082898149624615051683131463672324931077247008791193483538107948394508045058558167969050950234966859516309403819422650981659835437031461719788033301890293295568666616246200554656314874559943289908812879777444888716564003018722508518097393056552995995295546602289284540601211306124469962455209520930132049500654305170984073344928164935478320231992554945500460202122350135041745886945056356560106471283877268611420444692098685013353550129976317032898992183658080174592102517881692076595941636668249195554056451936751189595710736885299182016473620263154868333079911712680644500024087667874098118154244112155667175352653957507149026792638766691128081338307953596366792843504235982039957060418464890481438630302179723866217821208506396990540228793688790464843064613763097440938634571574498444932384226591993701838678004169513373538736734599661387409589607238049557140759599799092340845529604626178164948300739878004044054497686340442386142306881145170594864598259536673983896918059070183675112438456539276784227130613049800337982918333049292287119168246578837065179732288345984626910361810150893855972215333421716466778886026004361555463049908589340589169312975607856877989646547393650967063512597752620403471326148227524566358019470637895902898065096477684325733042787557111052906728334807518027247005661810842455780238947328625340015993455119818444198663286965960213107228479934649852728738773223647917722006537049614292684967048004603894790472882061413026346845222885427817256338773535865511158158351783832100731103407065498599050234334787836734329555909313189974309171158507468975719359688368595453382720899388531414626472051449385718765252573271038732236435779895790277550405961734025087607968234583108487309794789324881869038978990174385415400059490355521214849310724895356588188606394794534806822935360740243546555193825435574315126688109112774875534707456826587397063282157410481913230516778028021118305565151395744621210858996593017799854260363790685209596980602529302070439589344611121220043011484061428194908298532943511936722745633612578847959155880925714327605698091226681152580373200470220548509100168303622479066400425014717647931419456493779869143649164229042756123904853210540485324187033443056816207406907453570843574699590307379638966688708106113945823943029404893337704276978216124001281974653890425640497717341293875451884330259727020959038407950582868581537635983159287003835226801136523025086621426824910511497027892747718530895832093002727675587234864033847691219169067603023019966903306692059854882168393063735813887752333393259829436846578337240474658715182131565753985430840275432677926544148830702030658578464026492440927248430070209455914260918401913888612873755563138593155132690835601953821461337340479764320880274440043411121502655078143864707795656984581111014920989041152620643345080139914707959483446099426047985548853263659248351828958626616607926627982750647716926567683120948702963188050273728346228730868514124546752689729678311174685421498599106432107543425741670874625764582922083450598465779522439685690502255146821425416163257183193306058516555253627525009370296512593629646990789652800773531816691922206654327092660698048168666733254300858101696968478910340055301683096023886070190747236663465710322833416456752446144149645233704771610465177030234616729866164903829535871269013697918850209574493838292532790786839091770515383107372868687219788812327638283137851769574777484841960504808763304853624573756405737969434553033116257669860258666797633121282726897751929462772967178911855163671142178014140233020061879887754345241240446592791876616675426234845406878379078173492004967670904269924915315171395846868848142663528523591277170986084274741517181989174905884653605216149853411187505759385391887914146693125051121970046257560338892190533244541243208898208144202070984657608239353230725077696768034579226798709739881386540568620872554972804184497845602311618058296697198155767242458207671544272259362311353618571711019159555907565907313888752839945313429801239902260861359667690464094012475549218780733087588450156937709789551694532782348500131949168025121354834868102665750386405980028653860222067466156809769115373506333456066689206937078746605602907449798873832869920984666901173032802818892484036855879298228456902823875324291243379656851563722731403949321017928439483536059637091098986064606081156917828554787597296566053744973699457858226956482199034452171322485304516048058930483009314734233475673437179861005941773014203056300879925871036143163892637144976697301037936156709899211027945713270787737315240843095797427033175304937081864413688659818140316938104375177762838374976735978651230306880050621383467682843708287416351903139589493924979610475097125326107964876288569385743551610560089870081181876556580398368828837572729558680446474915575948455274210064328070956977121891260594955152470073142649189333576190751612576591999224460451547234253520527015102341876546841645269151863527463863255149524057060589263447805852567266747683799844480941810451228346392382711026769243148465244707802261099655920633900378896670644506553352720964716452337076048920522944973317726227689660722479340602436328115015509223895566252545710323566380677542581302684207077506745321584340500694774734973574461058350950479210922488000622962729982833760822566369121834025486408324128083431837177241523883541661126281231007399652320574769877480426061121357774664098881595788140423843905643067883263872995350440219466097281631816176094101790652360415623728930301196642937508382910552711972736504346981154703123987446035614215094337547074010240731263343120582745750655555337192779226754177761442594605733813193100399170605693246458031275470193199959655765322883240536999719775245143966284049835829009925437000804345899546553071234967149964811323604613722436753506262487994371051983574708402859302315311050047511293498362535963719330882766868986409615733906939648444033886355033592526017916989253517300063197412707576746001023064081953335359393210315238158786449878048980589664761251570069158772108618660949437208657143560067390242661924942311275568048653177638479232682542913956648389709487314441422418039608645879380794136735443418288035684610036897855776426270362964196691807964958543178163302304329894419224242302984913292396705969266512094167053176010500218874900965208793023989568321099533104856760114949032208258180178964876610668592578158236620432577141602714039195045796988009049540264611115791950909567944882842487465096538783245001631819482096796834148451822839729139728358346212934904699689414511264525653299730543935344918570669251041393805860270653366864884849102513816118160886016715423039216430368153710836348922739869372375223426614137018212898818770330147770197146875250722394196302604781436312675582024723379853674062211380978462755601204036119904784289755977217722690700510278878609447101719405726092559288935378149181061540414183475541454982473850051188845979835296794943631231276704693588961895745380788206924265432781967927342835744461064144048679890511037744408993840435013544956175737112367578114839191644658990698982650551226418837807021534798985774277581406371068470114942308262836128691253925226106895533463070892731879434917322726760962714233647810405802294262924921235068641835105890444633945614869817205853845012341251445734409181702036204754681991901092352482316150525771315599358109575331042913679586957315266541287143386285652155811595270212708089266339803569947032283978773580263429324018144290300465644128528858486115884056524826353673271935481534645278686881999319431959047282207851897596188870797911715091173548756933691895854984883640298316508256481531171375310294799694435560158330378226958237688875564728060780044080141906956724097875306844362789252975711757482942957047097710583263337415371958672367454922697013528506818559689094609787645855102410627730326579380310430558979986661957196787213761253036146320596833475777257532293162147438176729835036518703342680126813920545698697371059919015412064646229926106826299829456867197704771070532754982258153519922130433150997220808379140276837189106018230948717338797705617055705478205772103521576966032633918384013588856037095936814799281367797197654024567810402173792970492445933999644516405858032181372732024054575618970749789865581942077283010122966078769204504485781591145386527393863042100522209866056847876116836038049881737985735940858732226832112020830119056916976931254298118602106688398148798960392200985407026508471303333065828703199050641572261264150165805456216181560719840644765400639857762645775959008376223506465136525553636729200803964985032558108637410311166612883638303590833542775373293495347864589969610720585066823143835770391382173057757086055626976401005996220677036381785524093755354527537499248702700510244476396556141865162420003100601936204981388637688381484949513950347887274879556296970293421789514205697481056801422287832721229235439157889549252431980320081349164645123823116615860916417275552135296679336622672685734370686373500669583288656846339513107758451543445505697325858336276617749295245062400464110700808659518137629300211423758998275200606852167967829032873495044533281525469720542446950652510823076575363947841363430330635645870730376806806962479599039274120018380132912246407207852907940119948361800772617678011996707202136281663998943261993753087681527691613838836769522460798840618494098557988972523582013308211291948299177365783972725763215484500152880943472611146544888888878295955334566376534236380909827943739738191575078976395704185955487900975433374852198745820564859213165062742913241760958682090773060529414450155561338310627342116785051440851206814323578117303250723443189595077095115030155939835661451892279164925398030798929028931594159720328268348583381325218308596558517843535587889868906631395276243729865817050206679964394495479575205966784392597651461780843754225076843752366552130674188930172000837221460016849530387580780630256494237161424917485625831224637625417281091252275856214814527312300151064433490255160876657115288643648304780675037595201905851573471508823412819472807938347560461374820341726987048186781642642323395101089025470309229446496181041114731951580086018976693579043378409096912904159800688655239624596482560669093415869593207587439231620315088991968708880728265420432543639904169516586502343739707694665729538949018336543221112636702342966583456795149217488648861276229640145370265577622097685144013783797449643285659316244051895870162476204943712740612692701209574372672102066882846229583627762124700381312484896149491850551476667179399817023590428078457793920111534345298002371825859347761918615591556397801583807237616612446085003827818023256123867730977421925358721080596848535255394182755419964791666936718139058371342706539066579967454659831018712885826717402440531569096193862247388202669645157567866086285251628985899704592162990838432874812173035124562093559447643587877092302762730235746324344959658955623399074193628047311492719022073407988830814812221227649652881015057190439904731906226299178399119594115784214376130174886626337509374659020444519044467158873305533251449522742500428356326371886479546585852646132672311305109448227015537824150879086878266177822771329126768091757686045923167343761154069530021817722880470493522694739755658615296845577260945516856419972770755240445903310404729912394150218211134094087874115042564578604732905868570421887988959167324494845013742548234303802752148714275235599812327456549099211484760932954551304785968897016567619410320907448327261189501601903392188605652866083239770455700240680118483329925162796958727228354384049592240236664882121042942430627115152328257324544941049977098566242499697721569059991697444271480097076557646868031282087329450042880516695273811780383890248406224144301123658882708815903031629748657485097973782249268171619199616254859758774457299909734913641882560210591222369003835331036442634526866182072142900740819729105311587229118815493485259592447172979381758152775147427058863223168765276547284253343798619648640613529854534121344694643593982343270382588272425183225696853823231017428128759782857195753171214131926398000860228348966584135673849621661555357122263736162287211515019600168868054345105183749270582365656038688468008028345361131060271239279168854266429963101944693201889752549731932522715577803493796809187991607027611449689831485836289586760729338493271322929152795628308714705384627960330123552718213738211065005638836633886969342326365792980097580699550880157130834360434662754725217971351623690766837510885833894407651844061206291273031670693459682939321768007852825761450402913493095298932447043395335027167767041504427937105826882224239823158616162912207235098580827750012656342906183818370811880729778523677925897583513943547772081891986355416060740270910986032482712775873770973839874705157686509258651094761991275525856706154690777641151253721050987679185910757250219639779774104094722830905554087056363230284436299745236194261620618672649177798307826159701094098417917396893614810305313256405917961179920439825648348269603082974823464660171861993140967967546805064401908490791791462068379549544106955155051448128908873873982485449150832543516737969887669572931227574218854834089003962307143217236215806802294182169641888629288055555036729168677074195849888560781682646186244627209774631065510864908374307101732856617802492786135674286797849361325672231036568700564063316602535769540747970284440240196950227680280729542170179588378300036196978737109527093660346620022630995669210243203872203986833545151079384984740781582931863529549949694815985936697654049472919582844087038083108823094646436607194891770905678468180023668569069368557351638449479994648614799493190772564541844666699242257326549337848751313320016795613595945865843874958436740250051458702307327029579649882622660638510411118345637889495458286037004629885379388609953398102590431513723158540484861185396344869187256462700728673390512527428215842391555490890509046093719244268059386378235838182692489853521853288972898919179441290774761342845176687503361596669338841763084710559133727546810461241506881539186151268917732140486170074179452053181493612547610420439337499060466766977398852293216374248885054828662936510548898577704431505001412292018969568153078228215739961036892123232133875757602979143310788205603028905057035996146811495833728039297336596806418484061388101471770655549413349626974598678409350118400234062094020911059097703098588252166656710671211807070424321062717106296401870783229275897102539084238142807388021732148453542538282054044888836160240859946761825305499820320577898283409939789145345636990510790138391639384465038110440917868164933531597095379134788934372942631428028104548619766855995139802894420670519245114091451392775814545615072563429184251126660236423081894406414606541603041695348603970774875990929623790030389638340656285151834109675509339386051792684820892641608264436930440164850021538911589725376117252727339380636824218705389482007513535469742870636624450428268241577644072666031469694717351403187730375932886695307992177256863469155709553337571135842512880317371797792207041934936231872381578147145260383601244197974548096742177471214794994075302356170751664428910931945717440541586400752159706270330815670327631843271995002084146507146067659047721666229169385159451823390479919617579560957754959246581524418236423758588142632143825798888789914539954226978566640628852428816178152801950425796731253196841158008276598650117787660121283852363386073172289286347880276779306785324459233883232268414872266122694877498005529077438726106060938539573440930638815767281223386486467329788268477811276949161569561244755101365314375001565092453812835498388200283007696700834648656872600774688256268670207125735798136426173487492274089630135152346671068053922240042588246092741622155066827920622109899264069850938790162534457969015141549225731385097735528639137238231099149591351549865817534122138390806063110443893119084063509849474927179237995637407926374110795682713340122980403281281707367123469261313542277240367432253304789010452512508794403233852272447628271133128482693020807448046221672789584478096533865353073066141672491328814909884057020285805118203870733718811520121769282877135410025700595029125902249481920582171419572534119645428047632974588218681679655570504635265854545108551529579485879977962270025727965267662275220531918676746099201971835469575323941443859246794408854013175215694986641162194712422506516698996749581499555749035598300293230816388654910665469063275699144723462312055250831869705841006653540263963737893686589827077089615857218254878364431340182382801833615023641394620176310965490923284006559072602345741364476695775027859029515020175460019933516003271395743508980902754459173183670530568780317438622952415340916496034150491688915892853722008772932639284910636212744260781950436175940384425090897291712868216276982816017916307678825717723220333498293849456401112938776905464271255635971886641165633156967767814186707241413135609131550591293067817096543116151279737114491617050482110917294313900936777951991818383938122851718475093760840120266211409636126135174278892654660940352049470410688875018063542619228232814320470251003234521689291936807414197322441711485801574547605244385631334597036713044326968799734049243893031559815810578802334287250346623627453257587720112044781452910606870644790743300316882051734112150796584569700903223462125975609890783355519510519772738349878216483820583288333037095954897963325127337903620101814157191577223940016216031803358767173875481714818131174558173752452026695073749319787019320671493430153392711928257251276864427330424248271347256589019518313182954824693389752857027637531139682747439816424624823845333595579964129605492296475751434610230984484304683814459621745322340209132695497938850272164783863141290921199576056525412884511341774797305363134495786342313361929919199567675549373648771404805028208629804134202148014937164761054183821484798195874178404422264263568553169200838489902567391106706813117609376139337059167973733618223993279123507800429149920707410171422946691995969590897525398276846737596940035378678394632105912496968261448909455498171403498306267932827783064066503679692579906482822029920674351851487466796681999524861842702818105475583839210471802037440260208454632358065135207168796802250337655909963324094776899301712767657343157360050540894493154621673835723179920009041219338134355609415320577113440884157419511833192319347236413856248097667105072299602815932454586469004665527514140666283197328754712244023940023652961220951912252768532497955619218539182277562809977611924753730432338519489698881622383835867930240985313584537965583081863791116899776363813524480319462598069956432719800974932306683942647508466402856873411459453431181899098754303101632411995655552555660047245122834473397342696561044612544673034500826446984840787856944757058439021306814569206309021783268847338634982540279197739922066857559562456315978955565071464299527190763195575828029703205644201876104250431243155579762696878292983562932119421520479923190181103700270093479084151586223805541526985486269314376702200176120919213976877254545517491600495870391245259160852841195675172992056606501055186624791033695451306509119775958129988489841911693838596674983530094601627006498225848985075888234479461384643322248483984662868118946416718596278677264445357804515594447824499431479976252178786108509417534921221904372168021681477593664409934266886043912301163128125812074436109345132102709358070636323923708181508783841537640386333388695625651549066335993672762846542408683434386005697397580847728929473627719304501753627898662617330140907653939777131344777293349869262602203132495366440339484441479865078230706892317297363880240012994634917662148179942464915977729355452030231965896935116727813225782180900780312474935396680627417350734563635379620669323633278307504622488628167801373491584594900676025386081678696319178070565081242045849853366936039521890421390016925156051679017063367854793403688956558361481039282298553203271508128761119122096140752221305124227791364334279834008434755425760377283731073958491444620584824096408836296476472089615145770274905951127113973397327461522891510208126094855233557872347981824489506715840337008258912335476268867624528868344181491183392144904309655542347028707067379158256012459554154117402858451260540047607196088112998818478909279424943385948586454472793207598313264544536186686400565487814225069825584110480974121937739446165129791332501497411332018143818819498687422152026857335877138244127580566979829487665371974580108798060646654410374748761784620991277732132146466807349089033150942543512191954086830137854462298830553063215210230345198843658328041684851446742532654371053850928881364549174095189608572734976868510370476597424997021545258997863749919303656935902637651821291009312714286060435652613827588612084085760446584293479204494344290182495515948369727640627751578370614237141881222064737494577676833877398537481945577954185009898160945218365872072192937087104547261430623967686674925185596916232502476486559764982988398576900679970167037520625736595950948204462808594898468633521445324500877567861668080392527224507364342239594217639250844486641532185295236204964700210836398287259934963280908501688530792392295435271747230991303184351996068454062673692408197881980104024540522942913226135677605042658406646855192980418982379159078583309748537367588662442358763589391479279388087399620888040385595185188205805987963246730488016328056672031342247462630283699010248390108454045679046658928222745787295205180418190734536970106960600505909965350570119159393084993989053691371512465204156785851274901304142568592080198375145429154158758153649707574015366919559584501463358449151694974364364632359112806392628349960135642941381665184769644691295000423137169867638578201798010739598576193808794992961926651919612777318129864742952279321095903625911568240598382202380435174171476063465001902096076144206331546888555002672184362612752852940388728349152040702107126201287181040784499072344797774269008982307654343204330412893365860334112085881727143587351798994817800799998628182346194017088993634480754636094060751603395326858190562921720805758067461765172611018115677577334869623422056349175168855106380778686723558842750932880195916550304528581873553181792508045397630609303242497233632955798749966570180943008155393076036349794450400422776661851774822636907551986046057941817953258645712329255521018479879869007749774150902558827246396632023244050474713636391704204792520995242419867122238264256040553725339227834535510633683586769295751545910857359938367045094179345083096061451461382943803573422281455845723900784584316611944237635763419621048325467757805167270356852990508443832257406140220511783857128367538031465386526791982033056014129382266805102651115478729417087206131062329963394854190768737300826394144162225361765233400094721548973302117166843719231228531475513550325978088411852198041691473797894480856434399133758301919789003057942225587466474933452763103463563188206516658525902618321400066035344670144128028493568142862559140807222406621340522185309910466214907704564596679444141282770552688595596852043809570521746988101034842580780830262200507964469085348254679737034449130589539973947642318376924578809765196309376092000962785295974059433427451637797576768018782593335483588927206330418281439423239085119541596112557779821361393728470094091240963889784250867774314413706471788917990282301960413874486464825493632980853609803421974172675229667495013626192429274822439963343487847172989623370223130040651172823074911569106507054707542765953958346664929201093162165338386456270399036725434991762011248532775901251975466391349828468529451294665183700816764532203801558857872770075212639270159071006865755027781576439735052796813660739487692328048463975737053739862870307548355391199714959989887380242345493526761889070574756631990970967011309167092367555711318999427657194536154080836924071794018303523379666193961502501175669266838274376279836890094693814563309887415615865014639770748956135827984770509743290007574380149461265086611001915057975806705298606825171703091988278319510039527814980792471076638753046454883934975749900655503897305130201982244293725051641322858760757950845097465213491397385898869820363603301735418357080385221426483098361255437403958879785062538958390200797187084527425182032516440022103031345699020481417928541828530882832809104291992516963368848467206547380180068747981268396852998684003581792816763655649379993165455427570520530661867395314797792768230293152449551949634825146785299518235034933008624076440545259628853663598981803528702082646392040056263153409983639771454296938932196373726546409680294025979507068322985780270127812143170156201822661427092302410081461402242807367045479080834291204685645821152193002203858472155183501744548358176043957783248072588536882287814431104761757933334833299822341587269877074846340250614202393850331886950773493308902168257492900004430688167636842194667151604916644573755698309746781654187778973445079122364154623696932665920778781122707478077909310255263389048009400488406084120246768906073133568268098831063313481375745668376402159904742316181466810325894500510620593609745851227838686883288390226319088963218304755522716779789648490168510489159716982239121795435120312163787206578954250344237767560132369975186321872249240326844136616838440412298169095096360592483725225493184603621997466381314993221272786736744093467871806946774590237617655405376155755368334473903991638874120369871013485180936608308117950861922229684536852703681040322379224028943316812184610969359059654830611403677674501664135492902449207221181790140255528728098604815497577651494678478858318793632953606912200084078995183287489814733666850788620805876515160513949418107042272261921007738160122311005769700739975932285087225889409791202816371382859376788712074314001948445346583276461956033400413299414987034942981588178906528529132564675139894727033782947244331815371873178768121667845711874195581108257623903763439828755527076237187285747510724068138284452137800199635106776848865992864939120176738938606822613097969650483072109919504872964892776039493534287430724701467572048039401154451865874751177296453883397301688194917983731794965274421550450417910917370647552941519112677310565423869972826304667234772711911537681775734364644271771947056245159172870688061226967055094916270654266926907826222870824486578235787807433192582420717368619175502219658034292569607843104463127088424521931692587908650202886140213487975892972421810356672551978131520483443772321195645366912626816224033211512253431685176956710638591385407612461676305905528339095384317434977078842341187964750440467759586107737254471346892819993011151388403282143190059258131674894819851822287705378485669738308715425864241653346749802583444954492379288515797681527239279090785298839206870091458313496030838348723950820279453614602333188368162752790753031650421229720153935631841856222210758511559310257797653469364517649472040361380441735945580153474339602283896837604378252660711268230355910679068370208384107893594311153881768353137196727606000623271418216117906017503386394845521200927470176787145981430750938734614387022626818598881419450895367838123235694383081425449970874102750300733524187610814038841083929288703577706596861668003600165903148914887414663192862071630697146814751405522217582497666918988687800682378367670380118691965121600443196045600438833076579048232432461370477810661794550256642082265907733363645751024869894284983249382607412430346166238284088952326174321991756920909816364972798428954765439973924675820306692135812121552942407588933467700958810994204239589800928874064954308814808630396422351376820587104434492115375908120634295385669966999494788626720727460573134673015586409921686365018342178997006704571618607919409224381949539714913623269117016544941778827706312110568699597531413622495777959790859188022197001574456392871622066645984535546959364897485495294321605710682211716701305500588656786502425299021152798960303910493737539173540729479508478802484296697610577236161917282745301751695825315564447287150032832025376092165739968708108362345610964906969119860114899261846585238383933768718923202432802742388027467487445973310285394417928030142061080277279089943518787550634213841664887143507662798165115169352161256661333763845176869445632074985466599853439116771532426383027649757182944972264204689387080637982999370754981008358079954028677634397640916979727264843678808429102634554054271869423467750760350534102600664781332194057137742639636907989790793599971265931239073785277816593726823052483820117689452128444615237409070879762783919440921136043720866306368216442917469385984627948113125927255633488913959637658229756985272107876077994506103196583377335643813564429964665635533951704918013766112060120010994184154937825735718413466515739238864142835074724661303864920914545045981632502680082294849083279806302923656040415861885737261185634319224573173893067158594662278146914142390338292580255453850531604879326335670853310318374965770560911802995755880267969284782382274192196502312278478330205985480078157377102841730048899753574368132632662770774750104121668848306542571173563321456843481955013510261121562576028014892231588143390037915373381311841597250580272226172741221070924560107262654350404690308476419857276609875959535215539498626838609225349036905103330406112130518397322763859791243540935049111375664955494792282880615662356847058385174700323016375575353744602856489717560916632003707821845195850301997990281082707220601692478580985687529434905345433446551953443307201838388533454060299899384341917958538087150357914999998951770803397439066267475637910960266029188373304367327884448525325158382679169042469459521039796649977274475982582852723788231481501879441069053864166008558683851361951463351922040309403076477772207493273410402406942843809592038582656511428962706081087710919556930244151413799229832723655743207798710450037108842994595789283340344748817376931538430189539254335942383973001030587690153471174111560303768341024667573904871723650940282523200674754063197823423019275533664857076352445485911933428755129062144799433149225292477659881964605272339240951906959357065417258608939584341186061895802017188475691795122268548180210906258552771783563992724741722271179450664230613799551838741482151655644970393565010896677766543353061819854467030698155200339713905724637068972269285723193474150805477524449109782371583868087429882874155198443004323116008488321986756856715815685557366392242753032742333206834608045397380975725453024020363755449036333754549326194048990425977167041834546517636608690065061413539596978324679083755256898458352129010758816413429716716308573502270736591550855339082081596300724562549282610314696514206863847130175645531853679892115771654230837849053845175445620356107897642248780170570298035473155400339933582999826439706956838386622688860115251445956400653761328643682726554093762677754116327996465236596783310289791176783968210322714556705972384778468179016014105981177856430063120989493287734585606461771995753490732453203147800442377758949831371479611312077987826543138978349298144964889122760073946120480924352281052348125599393870861677910757991053375160080952381108939784308082541237751062108558311014710547105713692844300804965045738478733226692672866549500354371871259740137981110935309469584583414228098408019020795371924328775304653565771135397828812428578069007260298865849974108974993717029749208184371917390870449443943946626467868587845622581393212393151188295717867974857881604714557648150885383773898578944181956301987107167145207311005534814333140258963171155545212145087851205965873960474194556496715460223746520952053419211186522852787769024958552089423383860835082493057571163218582085257941315970050268182645895858699581353728788271418991850312374836337695131735779904068126121954703061609170960006707780798716158000777391503644324111059722727283070025824448336225702545021691624216927751666302416007994981308372752111647135050070304540769886249664233906220406658318146455532732168745938691808936858792137605362770727402153012842038031733546364949011783994150259256638558504993933423882587758065752913520366164587627208817440386738757020585999297046924256992095933976771264064089156978585229898672583361425759720867481960187987758712686794580048790587501257756696369704328518806374000731853178716520087992258758161200301244255661851035096186806992100905550795433948379810557952279849344427527085768708682173460355496661486982103094197995716190754097178187913068899964238924814658385204480628913802549761406477864186582025274023986919503077471027591003977619671967410504870656513324669222146278204522523868728897827157177018894829195049571480373112160373551168221363278971940341955230801708400912727250684849726409483822915052699381443484787303764337000878932204917910642807319243504696773972308233045751100493270711880036353203862979519850691227027936340538956554760494029225977740076233964389481550414021400306321868506008268546853576175523871577617474621314917891160581832868968804565535545774152718686053338742587703800761498223011834703383757166542316074771313181725554396800087602750193468814984361247387582665440397175966965606555474049071026904402326069295549800558969448512619169195068250735226890025917352230334773061221870462155616960915936129015923811800861158705778117020166138558837643765763651211977464687187930396106440811796585287961061493434729638551950792838816486711403998651310858763503442474986624193047300859519026900148318116451212604954951355831494352587573173840452826518530888886411453132220591315101624451673679012933142341421860921094776079454966263615209446259954783617084807261666898760854607102680599019664988637961156242357375667873365066558552147629920572252906209349940482678404362057850621850660915282588778862229571921158762654234614983265104918248647691104230324385877284941313904098049570298376354331864677959501794518234977675597914351664464221424047821797472383568136518647090554864281271734760803040757449582933955508593566656319618275961565483019880564810053437582600851009953476552894835552972568391512781324567034904573227989116240310115857784865459399730024115027052104758699790798062566800146391054648557896728873810801313422008276908596783236133960617212142222260639584985481773854697899131565730766973916945075466508347939158892884931906667969932356788704980099292114038391036309608375238234514371634111935339180852377348358022734786032814168721144818014901036344870952537348657824236675993163896059876253240429418784870137918880771234241996929819936968121766475885809046808839820450351982461471215660934990258997614854914938457256505799590159644759731870585804985133510045402857154497757258251326290607434308518238658204340195486557301753187392368547023886010646394661929635480331416152838247582611279919517230895566765686685852521953701907681204183234652319568582105298008263740055358219109349143226524791757293154902477961714724731855241068481347680554334597726184644295455323397677317406978649030657666628587634739934957892431260537135450994064401961802012277189708923225791937567857409270065059642379847506245995675339950965685176669237166181663670687028830358874586022844702908344340884722916519372145001337515782783555164841612782533540868941076320384329415778266515963114476381209536702115059186265409112087549800223466077924845272033699254675820863571743176051225818648828512677684540644532314111290810459466670011490549509800684602377395287505084524627328013717439265913240283064140218089541389949261577503162055058066249059901863535765021176527468636831876191215221939737279441588701930657346630305539539700423234806834744418774386447237154146430427008620152800675996981483183786996795765877856445241537160358336581682602596314653654836934690641170732076430961956649374885336628937045213834361013157095653564606244156274183383258062400587537434370364294113010326770571030025044316888549907799708541252358330492844102002013115215057781403224698292200038474286127758919600553540844404094960917791913852002763210733822627472899236304660921534186035226395703579289117719042813314009869749845775175036594941565287208253833336473131504709951113666564085419136499426915995139143607079643829436933992652741088321168261941440267988105379390009908348002059534871898594694118374271446562336259142604073556767886574936402131101808131657206549200735712217549402180750683587435693056113482897037738220622839367146612755717469767778475848309820483565169063944638508943187291867677464164637240373681078755744986987040743632624762942972145786577889814102325510554922926298335916736837981354102522165503849820465752221402625841751270332054288539207240669359750442903105689099218174433295580911081697043984019701654467970182121269138175318581764702485459836876460601199360351027257677015223882083582483341625591775627511146807766967382855996193413500893683670299567362530024494732852204428408523262732263215657719099940016673236826903681317746142778535041190868938134033282722438580211221056218697976953685834065206897848573645793988135129027868571737621217321202298171443881343226670722817892239797366486831326265394640275990579104527872876817853669042214024397219076834400159821734178608471938437342781567780138729369358244709338795700172290559325427642357537539143652624776957307177091306458784708388619124360045443681723560534674253150197006813163033208996637782889689961628660888802309369483595005646317312826526563914037851627130930078143660105768242349005220468440683029144440633742530160885802287945351094405332005745484915217993437808178536427545634047603921509399718568184301101416572197361184011705535686180656830445917340446217231128082242094122843810691621656374624148614629537263629723072884053898957415249856096485655716555280089414268169084909345754582833363541661644572090625224237848179698245350853356227872886060098706500746424364319162550675699331829968033913667482090663947140996389213532009708751823486160157961691940295792206752435254378031592429478471575474944615212929239780174271385861736299653388659326092576119390501369391656529925965712894754412588379486601827091401296972058769825123824613023649311170660828674875959571774410761389495046377948155344910132249683937510353485929311268451133289435814834945065098385031553494394904040396726290354699598724313827234589609007660461032670616710937013336191401514337665147004023628354675767093304204350772997284721351980944176187730831937100757575724149118189720261242114655553714789602905312334760469695426643902049180525601429483921079438135557187656055761617296200228641021956370873335371824186651648660937413027827509565348269027498326153633429140507575844149014415788656339341520633209723252648174859454783927841746201981367887544031742852846953083473489240204334486107927574996182585178194032475119278599467773639839296832848475335015296221292289589353657167167623075813074359026004364239633804117487526596362839253950333000250898003652325248597432636165219813924256103754128423240968122532692882991686092427694199698183074725083759612000424101582677836142553842935475372584943462866636750664526071167384311069686574790858512347181896003750205036887194520739953595952230067215048256608083058725426988732978427633977574453008291440935623989556149494946788611835755114921698647657553070584274772437205094473183479892100677049572445610118904488777873887417767206255491767596694001094718260256450023733582496744386968101954471665645333871852059374774765788851524766475511571635537881067399854717490804648790704600783995651584689618839442606256821818097109768005113682813283376864708380415650354308428587138054624457658513182175312073342484024228514798187408695150911958084641650115995303992220508961669299565385926193599734060688910838040594757653989962254581182344527596070291030948227183251222228648037897992712476345426505684872114431945390651899936871792707756811345622592394397642795725331583053891367252379025932280037074191344864141136662823177754452445644573414011968391979261303476858009594350748002065047969037989110152585579799362950809780671921944973127895933309131167113239010567179288526137709125610399800265212727986440558684672871736023111028909663201922138861980340061693635206582983671138353226018142776691911805228030112420696292587933849893973989620153873309121457836817666116518662822179700090011249491520200814076688111359914127164638320723073835597802848968583095288708967433870129189624417836955117581707256170242802593123397772843729392013113136777612395877934944201112471456661803072082933639105084323332992806101365680750712654663649166983500071881592182833406623458210479015612790308944611654054979844190483175677416756069194345509636359525567656296541762606250432783473459482070512361069075253738465621031644940275928283239799842070496819509564713059568922074460640127503672466057605901702962560835042177940429530313587111888376353032806843744465645691440856623879620941769973876758615797088721567846453833530876894761457229720396959041823507940031328273670096158926650700294551161819965405733785621480800180181903492017372744197072971618804527040963232962477182705833528200565690593314735213952560986219967438129900879665891041614400714185715520479493968862550692170272624570206602161301780461847996155286057035236110885929564418239183766220250119602065795251174278734892267595738709395119389107476179714415674260497633787864923969928790357305540208050480767294392984895752194958099457555338028709438383411116791044575991311637737083710112988939210429169717308363481963487402738707109197594282623122585772533660161276490431523193107212113957553417444802690398208535043798554510569740836886468172126409350546577879040769831652159491093676098678118891943190742427774454802350127945698402325166369631069028199003001408035508966586038681620511241465036764868779933518478745027272446861055457608872081000170086241142311848281889117768589790231107879879761873883603646512342119620274581195347498195817333526148469018674500527525184035255985124278358986886847861171190953682864476746008690944927707611034719702512964453981036550855432041482800993413687710070661525733211812160227139101413893941117366634694141530903201659708505064720371044078163786730524202682280393701821252421716713593828560411477634642631829407138876084552520958632919711363694241790836542803850098191555778673016385745602070570182313544393653526461542025648007864296213757630186017366033026231391776379157529708542933858647341374677976897706280166061393366345161385112824674946986339780447238966079069998915781939135700983770311925657212041336962067363115415209992471835426332195385252569425207396554119536786427177193553477345772907597235027417377389224191628463960578303289390709005789917085769849321735314321987139332435004002210839004235675236859374168563162099547210287286261164162140811105717854011957969358634115635517617744655420520783615640485088608655507722886066577506637875225856857999076024021091811135901840175527763031054057260675092480968486729118527419341878115704060961331962992828130363826481170117993497775386115671715636456274873556709656963538135683002338358364113811290854875565149922538093626673517754128014733303576765831411918683762299416603951484569417701054156220574423786008747457339727275044087502642778702491300889023820245288046976163397651486183443856922958145426942870636713968644392469726667032096076073143922942613940610403459124806749576463375608540921851744590493101143897057503047165160043497359129335000023775851747059518853885435923588215003096396770215203382914426156373346956549659521831691145253948737122696204846619439665193643666548400836055267335208136219589706240852932790158716529669628276649803877461414417116711690639821202281856380694750827613225669453345570946581443904170276271437549672718129381299235779223065254494732802527617935195706073246844697623529554232339344353260230042634269305239940693501526838659334113994967204142559868537041301221762020052265352844276225742091944016704941395320667848114604399046722748186548836013851227146952899801399484056420577034697746012443704202470513414361276190162911249747669816833304725011025529045491588152896967751347216271514221134370005184710993633970985102792118329743966455262286434178876803839999231576613625006931583253571364856351334021617296545330149273039161864512422179278019176315623096949873516044051953888100681895576505780008882272071005784714309884098270865730614177661975217131559827720544851561950585766039671398298944636705556063781847537886702821308565642989768561760142482582176472661900313577981632994358650174808984328504077630151545958372362325398705483457642220497547248978496893908309287837530003870700552389742596041240957412557600871147484838400377080497683358967501016362172114526576590267213732722443485754169124577921013109812063441067083936914797977344533744151352799362317522015915337544297759151708032016585383125837991705535656466401525985854599807221006262422710643606191354946553562708143277259250508492661772930906349358044644912720923674560163295284844253004049408445454307554894139514165200353630549848866283014411862716343430144813606657886336808923911098309830466461164750729688563354685102979835502509810362916423216981033115388488304606627301971536151747693274699876682206793046682534630101347799853315353262646025876314578377803100104790593592124410537929118644866143420711266280293827050060202316062399056731240454841842605157789034313843620087271875399114077641755303656870404778599194921473825409741293759271393390995852856718212451755251352627946419305813054601355372795765434349488865282409960991432634588769536043255896743290344409071102852914730062578056455325998208308136489132111980500357190362573954755527857653620012985256635702817105818393973690350417358821679645839464721005963400184367171977905926419914508282635389883440016315620136905541430566333041027747171736231488936178528465882155022175722376797959453214598797952120652542780949942397103788092618532066967336689262192090561314235376395280244527485292402112306047918735639454547769246051152941832517711572436847666848015517699600059447930928007696035427985872449057274334707680409084211271818638112353742541953396874613966419513481611902441356707536227075573241540449511528957753820703093580550375771421479523543930509817341227054152113421563252739849845168044882385795078760891451267985198728253746025631341573784123285153981798248389984898402961006547912919208891586487843771029211668802961303220799656156614177548513118114375530794472790649442379606306791678700860472583203946643406191344486751437160735822568894931857384788284170368309194432151258030742198176239574830122339580508548839806724254196508353580498602382545952545443733717922602957360889579295689345886439380235341689196741929795698895940044168907960898531035002302381131193181210005325558758696191289356338714552805796392975495205550916635262032885141647660971216783025104581260565926163774613816962657820294759128778489950441107852557042468889987460990324610218057650551478335045041941290766925297252730065979341765697043569424822389765648531598847250731532005859146241454388270122046819950459347469393648300449790779415988475211408631650829669576397269801812676340271714955172174542548776580448748591998825674131099557594064358347633851502352009194879691015107677685428690090916027229249782184199300456994158456436125612976234543886887881839111082766724927799537159078247149712564317844026857724144429403672623616380651543581123313485116824283806808311358042229448338274736148223971444812957909571302263460216160192605644249151055467357895139570202729216308103915992836587557305404815647545488838352513690871485213822886003692489237371792933870954316641846658220755765923746349345997485797863697580861967446679499391175186704869472657963470389021610409199077496948849645281306289995058261665645025080100911567323167506089084959803702385879321104683918836526054794627981028765031595830680100720187180409616829597405780636719705613723523010988470880824677103569351503593166485888919449374716052104870252062493531030639969081760856996808081136033462529500250931926631415207495401902749011743210313972590841730856686347643431071460047356627745229922887778598883468529698737910712620700403686803498485791784764731466162212338555980648668040364494610941614604452085450479568659194333751625787410198949127876487196377277803281842261041398258645978501002994127392658436680786983785304910626099537818578268738209123431166098900010393349209920726096929866129422663621816034366846779794319663746535883423380666967196307085402193449454573160298104819572901729192917904604866512824036749644041198641948381474658450015012480957119787776623714798713502474307964234148475772347936659083537475353364928408940194578090898590368892143136284367525217891436304887861200281620722946124996385555753521197295727570230496919268484205566866514235958794874055322744828422575519319655478076023774114422038676293612725575469105853389029573839833756895468839227598355287916501621548390242531405164832370354665155181046847964989077254183158782903730521972973963224340551049365018652095763092332079263371423937574696423767128082896560384848203498366531086276534498330980457945005267092233963083409915711423112574273745003475023399995461979060083765867698100099725073912691280501440257096748587087077039477242112937816773043517099652669697720021372891985467778001616509744510247151012822427558342005620111054214390921859460444173777368564710595060481436470130991795251399960475863579277690625350653768420100661322782663548595383026656103291802214009161135139902164704160734504892031459774668668611777592003071955909871196135095032117610825591347909829298967838593288806108918689149834543117846537190282885421923363612715353636443906737733109428447094906385002476010562508049686675834274249489540424934269779313084250319565450361887689546743909160066418806758674351083505359248913330741270384102368177784217731053417169099153430409161255457071596277472571390442018927025248839041186214426703683205083361619283434795759867358507970110003441241185429984527133344286298164546652187071300743231618501699305493696997552582519994455450539286142828514091875437362538248587847086323147470342396457930446826052641996824934452123023834674670348791487461351428796071618713587243519606385530118137759034622041612698409956580174060715887541701078682467251007632354915789241786636631321615278488777031956621455552699542696167347663912550394399193821481667452822653455823330885711593361703721343675337141852865933129011076709073878859623875836304571490515424743563442653590225662859497376349301377802890216947942363721137180205000630172135684670532510201941120081457657062594995322583827551300315068088923634501524319615837491691183928276485411063177779471784073755442957514898636749647179376209640036943423897394719505667744448594687527667027471029551586723671798961496308003209422787690196733230201226923855497496470757605672878915730994229255626786130601460362843736412537333956392056880880821796582632458893158781150041681225417933147098176284731928849793307701600090874118757307628120334592317217049435415125637780799016869575691577400895289440759150122128333398944440376704675673096634613944151875082890608003736361233791844189957294425880261781318147720383822722009956987007323499901889637583905637122957420323170931177500731536805334256628402260330487694361668176054803980841701872960718700510200949294204562825572041169637266241966010206571619393063268242220445156009719068524271685353073121936157065744995675569332217642506228881273013533243530640843612871631412176111859063840930107217527045590663604337363216119675554766959821941372601103420697640600307235061544842882684431506597758063666184659023371827794539931286799498812998737515542424794110982452849034596897136082683602509838595574609609577558127688710738919931054587370500675371739885147874813244507174416599168872273754161137179433904321444264161862021107436314266861504055517833656982371520369349955839363986578983510259604566368993585216490249056051183728931516856091390702451429045301850054138426010850168871963890124169444134620424968498021816127503032915002305688768600367309017331451201815141621637173027882761383108790057259194921160772134233157954423974335836891387327595104217643257053628800744821513837162123049133991106565205840397928347529791463645472620462874960361436617309949058375211677646881293851379830475485551492997046788930467529578708616541820115968033954061395089532673300445572448179414172891281810521698923101183087089665751434521425548547049929139328283119837511910194980729090940966184448510263781464326848242327086468052472609112589236704985783315829011149528186097039517423743795017521470754387797074776306348481536033385670016179174187251042519726774721748708940296818315465501450907091102875112875527078951118848014486310615401166263671709280154020817064392168077527912907914554030368652991618328544936475971975670900394953439218094553160747199478543518060298642157900235303001911569418338709144616595944726422776104766751810740076170252967241495305807284571222235586325434142086258359167609188687407336518867586742420381109444452308824569771249846122956711048657305484385970161592773072722317408283423294886624028804486031870817435641655814932664777573148646059087384334653300939887884678437668796117540891578820296075206856544625648258524533895696584832735482322398987394812358108533135954825305305713355329647652397460146949650027507805221324911129609253698718081207956928807823240054727745147112523920627957760013673095681566640710263242901770277445394586282063999504391321735075545799152010157326116089641041054543816177417061824234801174224130474954714287149379633389865422578819003568932518581093157220622133896960177177953895465034502396481802007414936002678720832266300746369205590162077902408793685684202950973906201328595710968352099576957718473277512321114963862678672800279588477690968739811679590676036395724712363885836574260977725211836654754051544728750824604622544888335925554417289703819031641888639829726870545117233390783001008118194401997933487296370085748523271605509460714410372655222324062687400443033114940450866540489461404573180050202072245303966658866124247258519275990301756801743153000866686040391108213512731991493082281815694411691276850194370494902594900764116791419879835581088380077331272951404130300795737888552999496705826315788319563098516364288666756104793341238529829783405413163631432443221426063697084100994134914047977130963687741619825484127219135661460013972772334090417284588160715957018536526383922332307658109576818045609505438577972392421674574128019497714136504908632555064241382411319514640592323058327753342705586823190796255972791748647647529331575020748961850844639335011688313185133982625172718102234127142864584644001370451687736037173181049890229180691397651099489092303595191334305090170755734570956626074927084988369628399799843937565849257815938174156630457509686603537650262172927662729370700741864267341845239120789303157610671108479591464686341664517516709393529243274749291262670931934843815798504120189648661638083387860999312758975018868697635993956317741652810932855860423184816860015852171803514349165766273287380377627911011389806860087604094608272663554271956351914711187161061792942214777522313724380229449558061558834889246300479365000149341943530083138306892714288070708589279148326226939888768477895283014189870119877795352512309806681453398990799598902769229814331151345768248621457387724943143775135957781756816862131500800525506078073479084426338027104905265196506829922761639968110174822238467437402981991089678833061871160969575395193240471780647712537198930484414457519332880665838804746748318156260074763775806385675559439035641308834294133089817005871954147715286313997054378937798040526221309590521050317305704577993039533284104780500735815015149579542282167043059024553930092554378593236374525691880529448008638894430054199056831778918319512765818012280263438262422958773534184771518949011511559980268519731355883267386654513451263105512060000992074969140376584742953981056397481052406614164728492802528367092332402308721096216072589276009608729482692635755153329781822347887922535816920382411602725534088628018676401593576112710308849010452546869744286955448552086771397310961279166256715345665867817159627387451211479542253597305304745493319718410022420548471623390363792853395216963598859245598716801495221987992582447372816103473697562395819151367691786866956294987219019048492349064155737378870187285626979459365367746630972185263878492390142380372290730029476029631932882785185476976676180429230520580601253260947242028094260060647739056794347545297810402323917281829288378593473017653956989772558799224128351085729989989842290540744905734288037110259252113780255221391290440729612350574515095090423294922846927765344935224521933513156426154907293504277047028430580526460655332733151497321714262377150649159797410743678533542902730837580275204856312360847727301626590594093982876367204369881744628453891541388340383810442046910944991398442074552111970013042163114526996628957608612934814708352135903725676311273077308816371407372981247980802550970404493883589246698577407186085068363060711533141217032832221152572131903576268380002709550288068058420538137272530216248746280086149127372954977514876385405716690782593628820606917787126085702253438050304527173364282526176737987867877412409788318322280582188596058549075518965043195697523372994746231089299275248762189200478362132221903509699663204781931402468086643560533267065226625379983356816160616914096220198556010819214494564307431953230481740012071532680519697666085565769346958123295547510818170093611471870102540064755421270322662176723041032045187456788040291382606377934366410775637221675081232928783152838248650212507800205163491155083361464037429059694627844176062801661856756965994855474345970265756138109817586380563714853000587377159239799827795068411247533069984502694482897605780076436577041000183873452495803529991894676369247350933016713974840286921527264302750763305391673259511847601464271307178241782660853177086422363729448701568478815288792622241528613879484381454759898408254122771426456595037518709787594803027168336352205275407901423780748682656392412657081308095659943304706522625371531550581051183499481263096980158744312524067973486654767752617048620620238065833640569587603334494328412753949219953220211946161377269817397904844888775871137373389042816162202807622257813558883731995129260977805222538056869997421373628118027425014109073074970433035075481377927518751092855098358266858526807913377435903439795014935727746032331340243304799003871400135185807929913842508092235726265073449308386158923462642682272960050562992249642926792155271134638612347544945475735454328620277916240544909893891280375320677905336371462865523546437239125170569832736603659018082871181143544185799674512859048291622265445098063734258011313446845985600451125450710883371603921936117003623008328849934898086488326766655030057556833498098161598522196351011308292876148345458931857140677196917289318711067073950352421542327970357138014790277522157700536798155021826140919823088834899726896427172059097927948755573136091964384458728315433477858107778176255998049328426301298054012825341164689172836759926841778314067852533474365324749860086655372156727596735145490112203314563674419390110072057234042199943865038639359220660782006461521589145640307957361524321273047588607350408587383682981259099260537252331026835938163788170502890708216921608395981698628122499437439799315791951756730867207041938486601366129659659691724808208665570975613788493876579668004847276869825820264916078755911691746528238499478815524465310487697737067629965695727508549407277722368630328243797641213185585885032755872099437180377441414331195588448221133330025019763231088586429822570374733210635987684880965941384889360519474162710776593908475478937496748241240895432559947067695993230282531376323605863417509413530536838215180308058647918860777970435502184674533389932148803095080110334407113038232223639080715222576821797401893245422224451229774791278852311865546947225097198926038687218508443219879430197164777767040751669110736948478651481752739833026060169074771055665757994411271214977512446283519932922332784540956467036747843582776830670279880501814535825601457798335045034565357949390773754583658663533670352959181621202800513087625663880602283038804462164601339830402254962772061766797941256884973978911777145114252031894839426720835275771987000346393455976074039874196284707558154767364478580714151561623880781867535563021813116146994560430052747698520678890958892490112714944849612790027352811179173869356263704314713861220831780624613682929949630009097358780167368881116888140464498743383773022359349491802575248942231214516461200918919812305234347032540549913825273932639392934249885222875278517775974760668772538777877622946854875826060573735914302467932960383373733852309458353251239345265662247904888664895262363437174597098438420941290912008196554620966853308508522638997819024622283290785989752545212969662277890936489202836207900867849826294430083651646704311490474147901048297700617684510936626721644449379490640125611582495282852040353278104292441455854916575942338091366326424650236797199437264742970889225354187375237482788071617800717717609748248853997054498050991009403739225341969472511318615747339973089052039217368215977245051607862311376681137299349016853851800851200546855231674878311198888970103043894998363300934255514994209482747007253820453232859027047190524209999183916210264087771075831071089861170027300053519318693799001312416521969465991403329063455760386772639909724574416274442803053310546295639315302411717887516308729078274936565452475115461654349048704124340519479464321681836225812267692023838938137128833712650314431587293040299877079801256879999797463678800676232173683121301038819451264032153902889684400289227437315781966142034295610020141844095919173320312832810298035283718215114906724436868455020514635910114314474491058519279538196236447167858654331432181546797396300563393385926352812751137949994635537563000936146426769335572991444112296654455124690760780902478801334558306264136665593220029704939198929687041166545344182335656841713469100696558962406145048253596216939519326356114508734090971251162690802596063673879643356720552151218082191128227165213339415179923255967743696242053443442357752362339284512282381128964359531873423615685053836385945077990200680841451631113885153200953305382559055872247697274795716376236457367714894561192649176959686108860617285870646881015523372077488481338165284392302278336703957823206110253048010168118204146009499423065590934198609357562502390263098935078142188661317500928686183212634075369195046564615353486951977363715863111316589385212087257470206907204098949619684461509058201606865284441488900537671967351794268578169652856013989868525539282763364896490355045572860275393239381818481780231690548991526427709308559828617353304170220154420582286110858582119820678119447784162394265305562150440097711692050050017514819894585790261300212650545371204922653892678188782037365556351468844518230319976628744351409535251126968247133474859212400214708746614982087182544009640553693127330174089402722795163207417939667548384298527513494109171781199148227517663832379500583861962693604049532272402813322609043315137431573227011191594665666888977030812225441420745198157207090393764939986728108355605925284644426195237648562609965432893306418737824645377854640275182397213081904477828493462307634068134799904693998074465795311134485860242904683003024645776972127483557580850212291988350858012246146108857223059380695078120089947014956860775939289431379362200758763687420308061967174935002997563144493399820063632414559866071940834431904782581936573709254545192357083788942282306243885700898842349170817483159267813363826766510051134530451842514261103127551904825466047765172540371816120345168041871040535559426232070790328068175132986961255533614020539642445494301466754559464576165425261492899394257268470363198500815602466323501237307005145853766762945911728640446317143164418190642236045857472181620072252054851188262813483533627873745556297115312339565063052648664564528888039623596181446559184525228268859128430629514360757095346802195537890776092371145343716532564839177245272023151141833142104779425448317372430699587260710652506673728421869908262288903249697782910599652789532150636224186621960101359523290147517803170631080487404902998811018312477411183049451191772363843002902317524575847610269343038135376811124632455409414108066207891070296290660545638975975824649406251522243919771860637193770294741754911180801837993933172129620239179910685679365954079539244019840559733679253418324787415838571530498720438542222358262077432924779799641224292312222949753964903097038484136584524008127642446617169989473342793570865351871736027532369862744116134870059036638410185357145748597422163824241545575771536415811146098167479346192522916664009896323539546531167574174972165720488746266347165684651678163823106549390361140991925146296835107948330998928894926655437044241761486406189172825041017487732866660124064176447238152364490128176314531610092060625810171382636361650780652935728144079776208172677085065186029624166440214696177655240568536477590256558120152591976375423420810277305959122316439033960266867066987900852307217672072907924546946192029140815630072365396976469367464220904475674274494735431976119527631164596164345823890805845758057856412665574275096771502582891064636758387015440244163025803119700973802618312117787397180659417885075250640504144287718011415681182998048208200440341590098937759341638462894475962439239063276019826830725403256013857864193853146104865402109496840612219459752724593815684466758985091707646397699839912531024000001718189443174573450648631901830665559622195518399682738853514792465472815281920846024615887197678703200393139850834450608895654973310910429719472478037115769179438473765187013851129089545381664039097980192901685600263075653241095367153583967047788568037227121887684215223914537164258710241548368137311913586937070775236429801373292991729612312376940898219114101323270840116851167627113030881736660071365217205864865635499777253251957322411823399065664951413683547603623873521193667826852637220518413066153252982553263431606377191731485480840096093456989642494197119100558887436484967268251279783988321424838711495250270556425772300178454653396738466127842182925457083376427136392831380031088157937282132338045156573655212109973007482591308141405396767107332505600931826727021213091598709646730065445901426403387680085637077701168081832299498316651692390638672836282695988207543556728974266517204531179288514951129369197285402921253100099806636576233638049291176808154488823966388696855535292829703543120130759848519481529111442948420872127274127583279577544006816457743392447639334991673907952005161720604315442935341692268195522913613576845352377325428424801788702128412849352333886952923948198328422542495413640474139914557275924531059560716331330495744953258512507344271882654840830435547979762828330518235011922082583986696379046734216634538898577595003928935564277186823790998607922872595307861255739078591785359276619265570320230586727047532196411812587346806352570635418392173117427952004503236179904457351118761865636750390908837965583079872047816724121739459703720431255984828830375046990926445780599816709799660238842029105387182001553132843613597257658615137384430528283752803672741516414119834345843457405111244014075007696550196726945456796749964033224603536968436374494366631585654140187182489713367454358869177508995342741801949980956514058627924441873156168819814717524640186214960241578826162200277775189614547984808407935623195736388880408260476795160267505132095903247060256570633198475873605196103667016628593718877194194342378746774211583831127067834145210772716687895186293285633035218568230971394782711277151527880490744158681849805598613931338339621527853077913332842402471812810566678072034190420021965542303165354123968481588648115755098643013098834787091853925835270250897032160299539444357727875050804537199952176887370384710060741742496250543528998147832051065204305728526461138017843674281282698699219707798860713093666995621129505711291782090887474793691969780128630002100460633527530287314302792268269615684057971548781733440836940385544572152071833986926818895385890552820272534268134968742182560014971256606595837537657759949847187054139547598546942198540250834020465849440795613242426363100184540430902947885113908331212840398623240931411424727187910516436909211214511832081217493211991227241956982443273542800208782647913367032527016880588689700394483414645816840026014352441698108365891100507958501314436779251723060352619978683194088218787591794650268654725047553556716436083583440236893987360295548865729372846913134186615426065586952579548368257663217980869384919393731923994354211472900295748254279456543195533948704545662761343006458192915376827670963400773574735007086499522937634815187850023286470279462454344874692379379324952776295694869059216222244096825752572020876770291339447903539248714838008248005396903998172812013474587294050366948239246194967535813834854027939567521816900326190535644471437447791199174057689145267024711490307015144964078170599393942720172470656121787694808229372416731210123567708491471073948631397546510680725635282991042124850032296182056063780265350887848063590114646261871714042722070998167658159347876012358549057662970043995547607790446056497872834963381720290130127282926035004477546630223287362941762999061784228980125824977191245600138711827477940583421622196636770642960776868844974034744433015929349232787752976647229570002834495966004596240464746956167293168247980830166740345280890898257129305296528713964866080089763521726919928369592456878902346733914392158314062663058161475034602968635127429055638478977652049304954936604325905068999174364937550434912440330841958881980190863340996604770704777772875679003207655793573313662866428090343967056013827267015921879000458962049138588946885824899547898998888909880580190856290133457927519863493798532209166770802961233335689198979378500211985137209234573868364385006809651473716201694644848778208786374002827042417343214945782902915975719592499454112391847922377232861180794522634382191676930759194114606685070893359659641341853148916358612348779244270108095924025939759765243110297792870884434879265926952944036029939307224365257196049670571412753754128633193851482012466943613190870155184534038934466082643923521682310062038558090371684480726790313621008998813583210564746193687776220811744645077697806400644130290625904577944684287509519778043560009930379250677744503097750253145463920553657234516131836988853657696807585261790837312582110565862066075595470245145839147688611766860735285046622796534428167770960011933663455145043584539186892789055533214273867260826671763275318459739967442232354573592493981120636639728199506661897071232803348336341950990712929414299853151036020258422318251414513574259385547692928571015236401080585164852976335373961079892963191122679983172472842929915537658059577815059798001022303536038299879839861189075147141387448385332944865773997278174668781428147809303846159290415847092323567706779924951187671857519458813914440931419604267174742814227764826822163453049789286428416191222165205990571918136272422496089344684106619067498268705964717555292100155325891216406291422323150801061957371816625853584663803489201383281920817002979049965698132837535077330319523449343846456319651628967045556154344973713590594309050126648218074454299422500954016980786608865039886985755820389678780469353959345505876371864715506763743947322536520470904649632181644388419084735471960219449083656314239291693071944828502865897265164286500712606572620518158752823304645644476319423050746294479600051835683232429623589427555092999879842225764114386424751935297929703074046518368149032194348361865553893421293441249297258116071160995321608604100485479951771218543898970933561970403131313049612213484288461276098732448749123913669498049394232343362707143776472768653550822251569709952611898533814234418248752929952670316762006633712159467583005360662947752875938878306185347960606913125894426195900603049007636499926217175438094787550588718088312862547724308874434541455951108796567162616661661492961328750127070499452561629367708205638520459973045627552716191024570380798881838475346269404947569970479440595707444563688151292465443499333301410395671734511082530359027856014902885683508585388215170541185071296328689803672727351311600852792335773306639425308907161579283816141812497647574422752229153845319204113993582072101238859109050085065648213443323536502587506765253875019505766466811511483635615098070907712949035847255101266772151529006492986964015983397691122470312817638232407726016600808306847290883825670093047989116875741138457286098530450630428572583002092080269529051333136957713713794723148393473943802063063119457590731902548827048806550168162566016697205867657708786724241106293966591460742860356866885948268684338179860985647076021277736280043808017181758020212905754288982024934027501257659498195611633572952304590212835313547389629625938712080439215151834271837933494714782347485766152677790389928332304086168393839170420548980824630850206250281669894163799959162883113255752710051812275548416915856149719827815493903950896206295399740674049640106109490033938774830305474833898740616861777094886688556980891075925573873692878334176146023981608431765081595805150371427816898741679891567780855062335378152112616412836088004660800768083726211567958164961495218332916154705095705405835086750081109774248542749324565935912307406676820567226230372781768258163670917783418708888465344444001286570393797277278115435343964209688148035965212582880325140448972328127416196042009540092047364167675221957584963003201579333831658459504863948815687471178788866874225673767154242845008044387292541314620603284199863525097925298976148719147352557911771038754833298370002714704323979429386732428021494237423656707079265693921772120351396010970053858178732389679810720082318441775469878003671432994625638601366997302596226835384680636779377032991218281263998222026277703206721933356396930345787388006630091968155505476152483174659968898865933467738141328095632775025178983716600831572243322831799657206594095163447286838717318266534119432658588008581101932539262457703875939200074859332555593638702179752103630804826077601474800086101691549671377441323061053310802352772605263829627807344969706865077629543067268418274702550168534075354747201128878375940285999864853591766069415053783599760538064462206566372631580987571979778262319082136876799925344864266069513723976319551382699783301282103351470392305351126679618321925058314952415652749224497589447552279388550539012124104556000016623980377352580367417317933110635855123577082039252586925977577943360531545739625456112147549748218633822385544094737711941223599003406765452480631988215224970104470888878581831169946536146910082911838373844947581318015693034502818590667744867072085763948519036291525225621662041849767102727746434588838740730336323727111168124639359880483080991950214397089340899669452225585165299315482203429164864375873819854052765135913182220271350418067265985159879982361067459386899556959949852293507700084094300409554032806847147427900083327776363293863676804117481618379273913688921331746834011565300747972500069062054304172878833414573976739485799101506896289575493060452486071392487240204370561344024343897058073540577903842263582294369442995061472716784372775828347424898238057833017388478432280611969994417637698045272755149046049339511305582839431987887593254141910678552961859596699326885498162264620027728025433875233683033558600176341946046989122312373627616347227936797580060825466957191495389818252045047037439082457289364837429709346932979263722741198952674373172824533988624857529836849279743441321580591935956050347137704433741340903725909932784107117317930611267568761278367100720105764819102341641075975054219622019949823416044045361672782859541092587390120535299047355217604381480474832965658163896001008720763214169316652148593640911895895804555170125896514579190015573261892492203155018337740326690085502228261021671110649435567646267342731019625828322159363346323022051917444329190823317267087423593826746356360447221969112235519811817925229565559969041688750503162342089043792996393375049751766481241811245645669807836925085230403445966500944146234353277868125549323780064331484303612048074029119495809702752777703672397702901409772220259402667219978615066664350929532915246914526237905389085767931793617540745993325542384728975641256522755955104600317689791786971169905425638457762400865435630173085878148412961750016333664651891301547957869261509970411512646501886359962645988041204941023731222592980478771480988941518695082980035232980027903746515380165253843451140805690906016436336603326440247805669056763845292965219555964196741694913450101420590019792719599844813627917370865882092301158561410269549351426526745444402568896408270558480365172139103323419579295763305531841820511237718611584011298807011717323918107256177133068270825981001071621204123028226492125548509405536759484087820528380929839182531110509069121657073936089104180256724797436878647577839613090980544328788627505158121740414799173573548427618511017557259173300099038928708638642664446127481771011195589016494020973662704250298905925829411457804249616384159599872426813299235121052450932475531393511018122942174853563903931052342672139078781137048298934031380602763019445226940868138380831088081369176238392971358347489761148095140262897533621152259021806595309133013885790591947526420660834217913789919845864320473815228336695494119016565972803420233834875596467860246581083101083401490654376891376777873235680140672448516447356761623793396154680013834633718829217749667826020668973458634940377762268592019203261969399414469571715142132950133435378881377936769930896940355272717328084416444202637087308622658358811367629206661613613634005819572340340736442082628026266925490275175334420793227744176133964956176798017676236705716542725964229622304447949748998951356024017822270604635142911214979469678121409781288143556410624514750399885604416704500952044915621511947583609586080536348866923470153285427164417933403730862296580958734774315839576473089143618225649957871999065095237935967084194831651956820784267730291482572538660829211645497448221534971303335073317180987823150638807638630876710602365642246555525586326422982261424320199584500492620718197419875504104129988390902660775653334735964357368426890988537712554913987475650921035054029192877985095846560399057868151431894550329010725736692670859156168672524585045588601670541853138185871127834701456001475570326702320444734597363323996853422643996632768362779727175267178497520003173694837357648193682573849180604062729429964585377997316639205918964973471805182436890581180547985012988746091345943636491401656494634621745479907361328072962179898786347548899456007679153383688877418362809452940312816402309077000824870288228973241600929132883517943619755292832554250137993234615470968634599654546247491329819312809229417786712961077921028707229857611802494914392890465915408337520242551416420115488088407176627816166959538250547513181100373706060666828561524821676470720791478419722087564757707419947581133487740979523109310469283215021188836447517891009920385316914655587086085126245537871857561043305472640416071433256920727304838788673558350113799040568525860501233537326442189136072309507129374867412303359187977041043023958285765983363599904022773164895706407446155184915652763337072833071346592188470789011017804460175711547594900148565654653962926603169656864916670456452116914109484068317031272859789967988672761509205877238987332064346903089403996742247344752697290503483957435809758034757280639784784321389340951457691146542845066772503462458245614740803264425233730005527876711531962167761847585409561842613593726153743138191600564358483453995573178893172742813728530796182271611200750517326010158715599476463425660084909738565004009995216611989098472421869844567939531891678084549384339462378868496674125820453618516673872370971837174792349707836745730273108158099345297581156695190450465092865840672808714600005392431070815835643791897188103114287573299303748847153935100368329910968398027069000092011464632792946217876641965244511061422720874960041862762160024790412450140595553054557499020858713653052701559643365718905488856345907965513490275085998525906672372110015143434707160038135450067046409218387032096750154841614470962126280268919627900609362583352356299377923998389488356687512406986285900665382111598971891739263218386842207105513057244264216377688992141610760076117289035846364333700552426767745317017661406472833261433636669798386098978393513903125710981326995948245811808866146578288182958340488832463948560929438565784588006274623761422792810656919975020535768645733287960207196015142085637202785270124767843272607588572880501011771868763244510520686253769603327622799196932777472505581330943292866903056325633292059871610842762920815543592278210752719524486123689704800522118181571730607184284158783799727905581814117760643974299210728091428485626742680537357695097897937768172112004028839218354385772617178360134345365794600074040726777464726425033050882165768682949863424970009948207951444949843827730524197205936693007306054766641363520979906775641198627821631283920295333928993493349071500004513907652475725011386944738832518934009484770826372202531223582337762285839845758934372762073648880204096560810694613800654301305620367470089683525100417539735754250943063423541186718453505393815224161201303853679653334495234263700860492466561077873744839493645057363658780388297490781759574494907153719452055007156300775124625256491654539701142786401605148074419202779686836094591662199148470100710388360523984409487119527258480427427667375566956045066119312815132684856046970669901468785936609141284766902977674507957583619186687666511119093417554830334503739930624354766637302522729737881426904846086405639381011909129773684218329571407655969665999738640507223825445942136016782053336564492408276496769456891059290023085335978397114838072597142385888336705049550013231020249562278826060789554309249429209945593857725334486321693765764882645092318965928280382171762819532967822339169817645622621076833448269871477881385181769122095139687395494311750571139687419366377906842075478962376488119129934627279828439475512867546485417621706345583660818939990169993616128088261315945998114815287830633398762443577285686515743021146476016876879670209516942438766969938032961748023622008685762450503503635909917825959580105375752134005314365795321160837759613142158182158988980033919311472856570321006826957772932996393724455926108067363759321680883747983886952941954944222307659827192972551283160430760730566957983688351844182302458532608047115459193256607421478898918621020073645896622930608033186297065259031430306219326084815630035655275509271096388877322215626464579477800537116189773468174681753661939573304062963599002374002338896755934988806045718768081319225248024261456788952357619536411282563607870313371276285850236924041793894136228514889408990378713184779560336485167359615284996180745207795989204394732630187683264151990656305335317467654320379142920075990259137957297488419892944467136371458091660043832813399690113970441074462534260998182798441777753414909078879782900801758025046169473411935167668691483307612931518245506178190539324743313890829680859004515186166674775153452564591380720499539328936828319668260884619157374682444167042745762131791518367451479593930924920215031929910650734687844770448854310215920784527539087039481112364461025863648499874886031602997490114573979867598703945729967977469968688730481303555712454960547632517815224709977282232429125197209951955350261975309627709692680602215557316776607295656098993534652954489302104899608377647272568593527931039741536335474214340015676975441570754019577359624132922414885688720387971015556314195165380347034222600519685763047571542620405035265290561767318986248923533004645576728933537560098494849159493817243820046279289916756223230865528342031483131040197401664142324497817305346730703387307716075083684425029794574250086248953246522569222915416834165307733942335993234871875829316510738909483193555764878075752016007819444427008038162203719305097446910683407351168587408938061650092032220768342780679494697044679847130378787812800647911958600036948943877785060424440209754220038380232840918791338553133252773928619645863931531385075950125310862640458653036221014315927981867256911240508212959470081050195092254373089344575808998210365087017037988512591052877841093921550398803165636313526206124855575660336025362353426919770785359863648874675798965606000614494973386144843739808339307369425948389171827227912304606257965966341886078362523067070421436055104191808130247878773019918791256517515103471240277224397297076002220733704323909443480812415783783067425044346941473601202123363883438466665496771634605749668847042072433661316211386237411085469890588869396533400128518346366951735745980105603317890407816739617343943901400954582539669443376151810541524031240044146253185736222576992071612923141339057579787268736084041456312074408449267405863366933341088965952763198157371522742041316139779612573635289803560784635625266990298468402900081317870015618145247958050728019242650007338437053480407726060199039899909177640875698145774325669947871762204197826310423822351077246739419670708597819373906389363693569837238352933257219697895944658478814537331608064182693312810210745161916683145548645008799948972735637285592319765195009604667956847233124351049899120179344718759371027875567214655016020169718594158471756445730325951796011761711561728994366048838509885190632140578541917577167254091057640528421608011180537544131348332332450467574266795983855576614968625104556501677005706921031882791846858104448764978383351452640016366357884111709926739610418401846628677995277532702159771256253704817553344760935396418493912007986193085218964459560873838276134044181816018750175377001299732001469192052187148122831125613053854912132979825487969218692088155818799067436281497218493888750886716342416831530566013671964591843157145868041763195145075320796325590629021632063953993870572064711002784842788246530160042919591229659640362286952366344784735993956029320843998583213936292381281169960683241269448527654577706038761220245951369315208498316826587313723728673131116888596949455535177885631830118736469003448003727629623052666724196954186846233318356939822304801262437570061439466855217113591071017163580895871726186611847146760466144680828820519403125290405816426277195747487921975401655670639666145368004372177414516193829186142133569536070348365791350238151358677700391434915588529957678578385910844561931860669908117455045567850286736781233479640340061226757304457053427522306158511474681224719062019348578002378061546927211714880642401023520575621298250539544583026401743865849757805229018167073595860508759726233583700642161956699542826233765797682048975785056167786590611142664525183578003795066527310226084894344399443860938533535262434230208010811645713829675570761606547017245412501749550770930508896333619839566128469637123270248177179118908871442195790268073092929669354811346710451522247221051293292290016994401431486240250450728196100544496558828707415614577758204723325330425496019348887778379321202369004618204111286537271973231425411842825729404626121612685344068622967186132496455650638620814583976162550372813885593508549979170968300104249275504226749621850838266922214568841990435751980368034890772179084992814625696098510281983338172110806211048606422391352507846820472250621206091531588108020938763481678615893389520163052793885770081879184974126223820309916202365927825787859639115425935141479323661140974397507652822912408254902307585233207564415852756086985753080416015892763410014442740621234481848847865162888841649140305730212589145491951030164730168045564917488785170497598237183931748779397984049916220658082610410070563637902254936453768389589819361669922039225695095798374054268351221378567771005881866495277464382947112456391131301533648522231337062374916777701121133135059169993324903566222734912358857513972889283059024459614559249580314984984755899781218732032141886706681753247087459216408572475779300212640545400433722641302076661608023217136607254170867518030860432973616632897461137107257237827750467233104545734956417670938960070506878850517802811278639346735795735835157941758259498519827642668064218643887030582132097987633585619089416768724267997625029825855229375706885324291855988065846640301693529904954669655305570604623428826156931039160055678141987179612238282516304816246928423489144641237563516821535484339512555581042473629937429642011335072911283897952432308792004362120632730245265447437606773094238531227824006313895466677522640832552002090519853246681344239487275415946965332692744981883933098270212502278071585474265806764545299726476647369963694866601637179161967562863275952419595374671300081773892236341311505808253730824732209663071320533567193625738923874991214574390961025242979539081178130686690786274302408576147323336622538091724073703638614420847705051404607654918658274220703008954090668028284114815580726606922009577923092874985869011543442946029252528697050123810745239853351607006522455586719298633801226671396296192180833166884083963116338274709545045080925270466705809897864581626803775683974538519972096527242427318876531447477106742964577899432617718637984870520459219716728440919152804573341221926770754533830470494911211507164734031806666564135453538166035384779675357868705049607266042224268419785014416474280891484193600315083849619495099928842734104067069058146387893408619105837472897553429237131264712387929339528030823655640351205718937285324273456324035694946428255232774052506708412458855585289468908057259624220066409192587558467893608575292537301555495465170651397757526012778982195251281149388972233587881302477639337304225791397585330468767766987612576230416148712693925134133423547097420653045151477125856945765243462111387978011279779090800289464106364848152888013639845078430640115041955099701058419052816570138888638133337020216707562196467811648773265498144586123089605950334096508707634198787976289875078062000436624717349574524215267911129750051064286262849521790378383633101752949555048418230359690922160111244728002514310847148078869818095910549573472223155985578937767110330970193689069137510262802204086145155351165533083002235065184082233935716099422996909340346585044639557789251950573151352828344058021907335241119127959738405359970656984412659597085079190469705566393724920292278529569576112435942810897676076449769382881880990145434116924007012138939639453018916994308923362658378399208915752228497456286679231029462025404370359056729590918218454643786552937037320716256269219888549405553243875021306587158567104049009126095751262232602815800758499250920752731367286913641085929872620201508795875956817358262978486393328674263557154976036244024615054935329282748712210298542400991369112528715304581408260196341680409257809879783080909992480740130590758137375553448072899297828780007220189637018083945646662347226278142098450257427836475082975080724616862728060175346544177084032794750816812632850614114014051350591219265576947809315716128079416101702504174995926584100169914558037558815610786189399424646190558155719852321874618017941285271739800881205002189680118946791688095501149380384056185604576257710021854003808900227795875795803913483033721484395972061112789652325751010307261994678759481003720487726136746452195544296782184658960459719724933830681104030405439165941134544182394669599138255194886247651635853919725310481226056630622971978307181760294204824762480100184147041221409211244997529483398856994587014423856220431872487346849409482140442914505012306388529951834243163226057366966333397887048327415511698472217818708272685840091533433383624640235608465673246292800132111314325308100798403670891610616032089110522028410849065769746910824827843604872128705615493670455564073930833285183718419389507528951129465555554820708055138586301502271301955576698246957442067392156232901050183179665943765475463223906760155353906742597657437968629449767214752420801222462546020914724951638363574910412831934613988687837819158526051382804342199024530996933100955064886547485293799240085209268474380023354522950983391605812006781160606538237511976990850015931596946788933820263551711602331090691884659677543188169328116453680244780192699084107090556058836999333570615726384133496671217840581738306343869749435269598088486195539178904179075266370710644650706860580785051299445202803969539137618486133166012417427763080376952824470686664417581559664261855737962553963216320223768842405398086879589719303339203456360274772700168705160926221326087376348270536215720044166879532589408806504330904628136733362307431351230222660469709303158332661711996688844422906547153743128534501969522772036043731450200407433657896013708380036013522362589825177479092056712576487395940212651731752095669089147474483244094608390956578333555071519154931164981337711197797498848979741568790947668198661369277764884155509982167422607358526895150926308404802955152247001233913896687927005573547635825894647180380543927853140742714445132921573601173205676557705344301162311177098264967570683707709925636520873226124096818181692664572617174811833645580622179558846044430278314442310007949266366202667799259401730847307083107366092622485491426482925041767611922583163509375738583795749778717583270063346897218850983344775494997915327882728686883545470564023131460304868422315147721804162968579119459296599632974400518086482121845146761776371056432555410951978110803882433593579681216565105865039020324039332529516308647731239400836676479232199657153341855315985093408932628080794018995408350436737269474999995807341540337037210819849597312571314012119759059069851014178730973327365913568988268802465544109172006174567831831325927288720463949884232008993158352179127652626642600082385748132046760598295045210572649542303289587234336965235228446680321896570308481176429980367334145848416600466053309161013920026212649730206630989638955337051425171879990273226673214056601369502884904394375520986246268909050340171360314053124629376565316968604051533470328488252786211372061066564509699263963429812380597564802102671631834781393236196463109153352367676968518396002328926049732483825887243370478031427263410326714212720293107349137980434204279264341772378053719090554421522765752983884422348131278100481548035336391455016530433505255485475353262853535778663450551258960286585305245018343504388253834416461089031827945481151469353117419636216554038364917339625452615173122218198285294343760911517841327232084991013109312543964674034621524412516815178454264516837780649272264315759840194167110049625256622517029865430706872633707831384134970355059851242300508213711306635809836657746467651041089854829710172995814042166359514758315458747776258684808978832167768798775310904972890855496697100592379791906039451258743252981192268328913804786179424309290452804327414778363548407672851768082319014879374315374395416640060174379147206345043109101378746481097900566738385838430594310002325839091352059659090841166302482612469150614207734240482397643998075161754402238967256919166287977278008288464224876959576469513033328416775625825744034304310849504157061957714520168835402170427899939618780701079054509847667268594663471917618019482938356121449578763285032124314969011136366049163647267297530209706742820879612984550658533575305372036324956914270517114011540690539765437637697570497164366226632943263510339313754268683580352555752750487228004707527518592109515755113458562329704488643059830802345486092098643300253373256797808769481170008458450904366574031870826879334835923081552863127611392547459103070433211288826348091711963275817891509858219466599433654193591681485275362112070189965397154211312956744365839725042407128694710707685585437490288783349260156642179522230092475664750508261549993757675764682317685843540276318213813915056941533002178479270561608578983873590097297376615737598087818980156594500197603303594533106231604752620125023344886980381539314917521699629419196807602944348543544066147357914385473752074229717191844886851011587716089992511761438483815468685324356797369530846794285620473428450387745269941493141562707834329054149570577354355378617340346304112570990867354801505326941380501940349672467264175155464439407414769778274869611301279189957206324717636565922953888382766050846877217915713189910967255665743632624119220386105854518991983098728233369784061019556383678364825631663639422522749144710006003038952434575525490493997678782936832650790401515444361317968732471840053464575263106028883793158937534298893025217251716542387666586838684176892922563932282573785216578114754723839161045260593398423113425802651059388686833856143447440457886747894509200824444405838082013916339810854811120980156557359512909739825210259794939437669169155647151438407177329956523919156710983074202687024352410365147523971423562399249377728195078670018338541108646330959124007758347449260082174905951934156888013707491428846398415183029780160439110221162516865944249853313322340814938688622726644590707377203143271418782146476525569580009619936292442699792143644672005343780616767803447039596521055502525377115776634360059203920445313903025924179974109564503110032105297586924487441614876788354948519253189061501508379572458047126074793575740624150317948397102017256551170698236304313283082622897833818053055292022681116227527948296824690768779724908142504702279927146105105635915819386383228612980431195779000639776820749972883648693088489941809514435632246869285034989418909638247590036714290492031667188541911126927565791245839814849443684262722434804231244360750696272673763657925403439239912898341302023926522052234171577883342740886155195080773436563611027774652084721186663865875145362386074959511164881428498201541218321200888450203585134211623662146646817428471769790793805412431054502533050352389184782491962807297685047457508152902211185663229465956618260769640192838212976886723337837128931710024425557747859975398527932135178415914186413144825207743494730390176712926288379173182365708803796762810172469078048552141089542456145992220944362757917861345902037205620969944912813589424923156900247441157827990725731435967316396190994270446430851663441264482838754942559163771695099389413567971501065711291960742093116712902493286214979070923696993177523241930396573544322384855277179353601247852078968017251746930090578677422763312270358940647655012116611058251416067633711020889257850730987322460045009984287606936884911071388787732124360897067863140981050942129594652273717711936588499978499513086597580491844871971280691045317555289554253403576287995792454739206490351574607555933000352928190346268729812111465319710185067704047572718965032236323222741294115803460277207777204387022607882536721226672402345852175216597358742120977047198032711292245407216911963143638083587492328594620000919416805334645013608953597762551000407517629120741803197154967147635092433882036055046647910171281867801528440171003685045675806457370095086757372455131129988240527440881903081769759353752751417539580333101105401513000330586759391095009170971836739783050309642086637378054694697658858074461063919075100055174169469403698010934796740905460896521700549876525076997736388195792009457762153844576158131753456427155275506082648682030831065079100216012670830543074539864403457346921375576517463593744893047190183423393981794471106733005368165522739989187973146249361489663515838159789962528632245028496296465140247603955301825167472395570589597859276278922740866469838529054414079554729869324564099704584136128470330841170710878732648720165710315714751649952296197937141635177119793652109373958216476378821343528066220802271938540120048870017002889325373594454704225088993775510415222548837299425531407336115319877168607931359243303190727122211890624255291471137571184832216167995119731031377534360485539408738209866292529581821078215955689434205389639026616152619165597915653375474874656738402935654450027132988857145864984369089097145699418199350285944114961537645784932196230106533497350195258242019720690688669682060325469705205778759571152252635374598264787206352169597349261880318897852430481181295505387873016947874850791720818693058975077206419995739378909046301976682930519207650293692400675790552402407237051031309022470432207561482002334834707547025501361439522819014279392593772525050955124932560683720570207434935147002620303976590446420965883805133083144714068879524054624838159135327998251338486783458555132474787761437889553194650835458290372918806474785692809829609352219056606178635834146438974819152843749306183704891916757121739479472632849104918990467171702351568862528614611193127768864194675993488646041806640367163214268750335778232522587911336579888562096707837853798671222075748159445846550975026629350736335141068081638554724945787327367510271253504011493621316890134663323654821142528617064387464627986212658518467813166232828454330752561235044237939616510271784351550939814451489342810586904423526409199236321501844031422988580180999912355470292998360902780647078221194720751294785633103159279806762893253854592871925840479386020948293440829824137419139000701387953375171962531151368133780216840215880362061538892366468493192218135242662852924705994848808409842736973534065318552761992055808519414865888486479566205165272327421968170436810652176435140322206298338938664979080576958876954054061644883083758166625487488652369425218918253424320867320557416379396539870417769507776057055618300177295853638521873020947874253777013937262442260623561854948790289539912521046530689828111069847237574881500767233148172287817557404243413322277315644893020978304095692622262255702744589787252741365030383622039580332488240135187996805015236311546786456383487618600264685854219885723596521197833092562006496178745835497367095382469675812269368173494442789160465885605473406748018907201803244280484499016840283407797110540206255282827469301673346155454664072307866287760886738740438526273046803094172308057491060923194820548685184827568941466569696131940785521051464492380662106183220297470484502529034569634561984425223073198632254707120651097640811929995684088959533614191741162791591118816330389528596961797829910142936993065043469426269194168123132326913634503648382930776246406906971921152257711452275674227842875519882114474816505519516968772937912107113693440402624513553724454239013028165526811596580591357476902695959028387295585511165122224851869374109449678356269509271500343256879043296368716339242000672402008736153958626415572667566485896644978101140071279436105850839541049739603074790567592643438337095828535928564340758783742216649893672711013139525837042836251198372264377593434173500003669404652884970555220658422890516630062737468604309906004647605910517855953383894362067770761145516804498904010795644856008884751272354078355410989070458897787996545109037527082659926189154120550282630146313209359153048064205726988619602006912283513288923252447324131473362978392955435740025275026945255765670709256676692789510426334615845980199361406090531867219667358388754730789971989250527171374163055167245458744920837470924328993205343183017382676407970575196177683024496272136593755926092846919297039835869921210387368122415895635565070240506161822866008222586648944832661278452045945545223478770465397385700685249485005830515553928282455575710562751633108779449083626527108307162221097694813167940864127849268825339818660494111409689645339554442376951271866404854464674319572855638174470160772043269322358253186066053597200555712963887736741427052130524879433548556071603285725676589427214969896008575477691221998052683322860864300185477216881843178080354796638936734517761530699530918646964878617271856648879868874801017320692800701126801444400879162609186229303562386159684578509707937082799636483770891205509721750884398245199240917040155287674545809855603692246150904738923824481287067890502464117175605939649384123380414119164792140009331961695514449187285062438420146621477648711821950120761695165839778030623923747700576392472128432816184033471622568192020016892297905597816626102889082815787121591716946430728042799806122061613018491184722005818000257738283745335295240247786052688799687537006887085872593698921642536705326472804962803471373350654976600166067763166460625927707468207312305358766081849248785383412817502548289312340469686751067947678103797798264132557203947300180054236026633967800124083090737537433152632001410684572194411585024283151622969299964080795941890666646455255298623914121143902409234053622862515627379501208765555934572961453926334872204108715485758896371818489650093069021908498957079107985415423870043951802334824715411117955100923580737140766671954038189064267801837632544615737512743604327264478858706695016908938456920602799484249644941004552134904129209525989851169372611682303765413923149568989900796782111134956834977800967413162174806448321254443278485001071166567537954057355732111453838673851520087825041171037696627698465453821029567362838682571478991092536639209797244722348514436820787573245119954552201943550669748314086293828026956302119406022927095792714266259352993750598656173215324077448593275427057223605755419662660321058140480491941819081785228291557005081088815939421489889915030298413830921940390688557945014735641474311379358182863866726685302537982467814288556331042986114023654366631788933682996492143186957470777829270080376428960877003943975923392669136257563401188542868122661916091191165346385167523254987850301436420444929111811196576153076644014375596047555480447246960910367443983023194326496072847354639601374401142201193034180033028708860123277492998141370667451848413527091703012992856536991056690110457908386565577658456877954046457451176469959675868635784641655666778716998543167254081967753092457176007791147950021170291685647526281751300438778079181285338940520052287312233151976097792151408601576962350501176101494189926830004897423801278792465100418261537578180942401626487484230586130401315583663773200971219225080640129163826324591117496761974504362618248125828149441893349322959005056305656169878816417996318300807899496672332340252487794626762690277159734130739003393234617731153727122581876233590162478685373803145853525476281706861059089087815967224889674748386981785125937866380815399037902811939139015264424046608737551888664117607769819346050621682982459187483484964212049758778484536262985810981412122589699093907439793417561017963569983546495965612877056414375609742956107999811427699945545416324582206339767532507181453900036272265450703657908973200226018321417452193701022862592227998524139784916597448232937951033522218435725141488149570779202089111468971792944831638521161626002799209783169053108999451993044912705906292261714680568348209422971106849768030028583397229062156236983363416244840227680304967011873258192593743822798287910005802988174567814964022819348051852010694137217220625382984772881644703868230263193017672195449104098374246123191940641411569855021115037539411525210141212413536340688334843958491736834860069541255118036782497918967270478640935071439077129824297218169024621731341588280385805869572038777242283497734830337454677692651002488411974452768170332500442372582323077200745531961903432616549522798852341576152856598977198619741532931440627480293909887014259333866171141380659688876094816670507805245047020530425316994935548516885634219613531922002476281691158416499829566404453614450309900752250764627171714289583564050651892034992688774647862983979544317304489027245290110061323065932118233036415166649046681937295466572883045418323903664201510384602924304825855559768225220477888165243703720161135624242208066569157281782128056550608564683342948814116183591996434306273098314443634298926833853237850325102314601962331398121975355451786192297620759966637503829780783447559273790498307775975047161758300114250197008027436633441829241874276386603288560901680081518192433425980288771958848919767607007894079695209871972025923833447335990543561088548995194443108254004747069311538867446699311158923736118231676267828187547604435818379367972214079531823416926415426766249047581306380391909066789981815242544610550156445996945196852533880534955111575086026704913537067478713949227824050785037585657666895824454098254742259672769477395573784882261351823899850157343467983418513715913486128287989032247356780416849870057850057986819853435130081081790172880625243900259735743314812757474456227217078928530386164954085369038903804623381988109116630378666413992140544566721926391651495209592453440530309662279903969770644350702783836258700616723687793836014130407820323338629678886571400725607721787391309048298899018793988520906894098501352304991333682412076269108264700899291996865762249418633029987364311391084770634038699783561914107984222649511427897698679111850008480701425285379064832823817886515182428073441013767425585448260513275486710142988221547844776326982644878239573194378807573650344329470616083720595514785272098556011506216310135894618656823150665038577522840309863176106901652201812932163872008238085805892261425198460832682426471138023449922837398223708352187247123969157803169385968990511794016708615815855674014564755358028927413770307855937421604516809670293091564084448583662220126490065699542927765712206116820473369460728561429566375466231080060616683402369364241681419341973202998951448202287665209757085137522908725682367672496964273978747658793432138411465630796302883170869948426232999685866407510640362889162253532305280389735780163043626658237613050581332334551825765676049036161834079961652889031818628953201641086933445165808902906787070879948100568241651463934759803460085289735609537307512931632617237415643756820431654655896085787671288860639644539064158498805932352937243548927630868477128145393632666630039676303397801898784255334762273417575775508997361141262921974494021149550047782512498354969245589151133764194900779110629720312467284519414473332521686844633155918594947587300386687963617852388031241450036580625600870712660693343456764423413092932340971551122019947801928049674581471839936057217198328696303224199781186265756944400575238845010083736754945710953197086021739737874395305554532729735890477770772393417207974206526060129999907123015294160217753477782257288263375036174841668164485937960119821041156356871144684899975411788651476987113513891278961463228911421402138203368637423628589455002656530789649894827190781047554382643535822906261915180448037863851627004701821019584807276775373546537730540642342754719738263761888745831380296873291176602026363401641642775563363440959944396957874904845131425655158178118201294262449060708914322492702091126872424578194989288922894796550665945164213934053833399415249138278452899127745423872822722319423822829883451814325356306598965333253998932065872227942177022566635742518877916259269260577615676844594003105292298333164577469646785561495544120713427696622215381285634906202779731061857139432492761966124459854615451341551577654485999802982209642941399100293804371953042241631511983929560232892517046484665470803826533493985552110683388015348599671808088738982877238381805465222099139203464106341886695105285759884194129945068413579426248612425106915775826267611168227414026261832563845874073048414396541564606026424755099117451772870427380354556823705714907584935053240696943463987960027096695184176181010131553329707591396113593426003333089719089864960461426786483291148306122431189416392525967291622488018527123276125534869543398869254176257997914546877562643722757596983959575071993900273528934769965709221843544147882880218177373366338445145833315212635074756007687801597007890875520357471050741150310463477659045668043816249349262743527542410522993751260462468212322593003247278544258958984416491726998962247664630492810342697889458619065971432133252711276966283310070899819759635031720812719039428117154559028087500557958312892403226366515667373374278563751835073913569280054249820851843894369887024139433016541870296750148899707216396986332713892335075466881229776643317110778772116072910169025104705199365077727313416095227539906607629893114249347180120115825277237958055318935005672610773214218094973329062561727357092732284303357778971527020284529659209144924286270212445181421276434294800606332795160879927891262485974758092361324002037932775780789781939177878497918377839252823209260240563160205272037110832279623349858831568289873844499344182899837974517735312482239018566361750460675122831469140179158741707355878177979079305292827241266103881617796959226130747292280866982132920239378009889291556649240162765069264617497557479892633185019834700762108746627966154321481396193914794698596561374332101926954404180977691120156057409173985704842487922544265187698980350517080583505813113217563854327918490836250645687910914779738327518976518593004769106865640658492232880920450992700152076045267496343402762083162342287982226259237258190325832481463254019536403896378795715076415460797595463308133356619144049201147651002039691095455424344145500381581815985627687700133155482994711846765825017061332289673645914633567102678960184054480126877677721712605740746379098456964823341144667017562143107427275527291323977449984797567268002830765606609665761785560758690966472260431913148692382871410831267306201455380943946754916587299283530418252336407605602046293035791497433675497650866786458765624427653455266578170699982327471532646698174636868159623452974489978934805863903419942975624250238852265030310684529446009028622114229270096910461608885043494042495869592936199332290306100248186337260365851039928932103145633826632291342759721256952963997111566014008345193642583870233192521779824962953776297376226969956856612342923452145471768156065563822292093991440050200997110898057946947204269555167422400804403467788545036962104433244692799547827502263727433202639715655441764048732226894122288002371164084454172960404332439777736128471048102910185018287344833525734084511467510078049517057998424084284290299901765130240961791768358151550618342717826004967692682503455105893766553576384414206066020625059269757328253673226466088708536712523117397464498101316610867042883113242909980494284181721971370303047675167186648914094500906843313838610641181988203615646007991081747943292004586411231696323354111786474204899737937538093892690291779639005369306280455805438693758375116341755471489910424156812793240494989743846073858555325284150727988039333714146761739322432997584726928632312069890893502015520867977205372215345497245529967984691941737362301418144034883681733467164731754985748440600161548519907875899923183986356405606659284385532015398756207543578764288398939685405034610856867895641849525303503354228673178845855280067579763226086887967094202271355208210424752807405143939850802547659601976155248842616270089209054769239794994696915968260468268313959510802877723634760824525668897207633298439357441975746953653871864255866950991101094010307790180988931569928610888757047739833959572623068348863609091713143756798678242510845934223966744821254601062981937280690914176423803459862217820877301096500132799082024699612547335782358473035152933049380972307910002868236986984267909371993987319178706639073478899725286241609044490786090934498330163197971338558447532578032887418224409686844160799086719486950028557690673591311194432966863415297766178116315157990987122875623306260280967673227795497954782785379569021691826156932642082301695498658477025979410036507285956473437027184656648111744549980161072030732074833655039877885564973009691442953305022975944024291096867540417450297871643303754927249142607533042823113143026942334634027223876341611777640383671051089520915855758616673060222283855097477694775535109006686745917225487792469825250909621024468179937168271303177892587333644388660167384070294608385079967052951689922430666179764814888061840253015310126664396118210449487121373102381816656683401963138100719751418198101662666024199300922136432169655424910270605356196704433116298219151995575372362828398700000216566666153262998459922730957040105017184498267530048617265102074653030179996280781407333852203967718645774985635225411550064711353777224628233771097645126813987293623145014599750791178010343718730879158778801887532400902295683016735668584625124655155429589474994482054570044861249767799886298346589423355129607800551150620253235211320360189685933329547952739460062654971519089223394578138972733037661821082934473920718075627227869591349906163153279512171580025342222081395548180684184939109873264561188323161329902465635384357390107894897511871104433841011455637565125274541437024173997227416546071992236848085226450120699677688018382938877852557070113873198262532476142696630434884090642906172167463514914823040202940898883282835552278717554644191480857192222692063927506600601073277330355943128723146720051057686740114220731155559519525355600022963682303565323941907759003654782628691215916745131923702621283120885176975880096260300043915997406056193144060588514810470241768278614952129945827182425711570255305949480110195602382911282357835065937226123027468051953037148625442348171520960136558291857573289842383855471591051294904767545505881636501905326890631142689704224558247567184399307977496566854925983542410456988333142683340376516660906815524910212051772827936896793085318070896390684705372393046620840857728031933427314322486874499170529749137659163235604274080346740677509733009491935652108512584100428981287579432916709244936962825677971429488827610845314950139524530531494396644704155710953753146202185870424336489675338976373125219508016784522248311003601956282519240210540529225797760611450271771333266652698735073587344145163214782221570767496758866436461268540244483066675434335051177164939803333352635211959585230784471160785779451636707619690576145832332301041822777273218234391534573755539583966805792503637429712293920924890556634383647400270452843118648200437738618621846868923034418809916635741032060629041842917628326931368623030720824766849733535550811275063523300283888968570106353634712276153046129204897686902505451241539039437650733304869258316145687789634786859866309209420640585635893750498299646019214996574778817996588920153721946146705877678844257499335486923324282394781812863028737606522533375855767531746258356008948880998940501436974062003333371471778610640713864643253634911489692071776073828731280288636948892049306488069275594172929135078751637288970680334211498545664468441060127130534786036228081136389329874560880498607093395973048272919608284444279317809470696480323140610229483286002978365818837441325282973679016763080738650979480745418831320998934355702844687108726628224230412505841463320319450774342692155546455548932935126705999388519141851643574660903396906536839355457980765275789867871833183484397709888253453154497370262037998137106274883485580351270781575551168577447897928521243137548549176857864263443006368420102338322706978016617046250912606254791190223688151237490910901441603491640564661402380496322576923299354099421945979249705396716675328617830242292508201776397491404680475098783344075957870525651602714194726257572173912138773511831260652467343507891992208580372878137145015678024539276252051593304162379943351472436324881456538033155993627247557177245358451407486374553779929234853448317430637960907205730407472518610626349794616846981513639497814462808355184826394477095112390241032169208008078099580189221732314950218609478730143711782689728368028916803278978535123180261539196042711695171926622996193315541022256300362945527698611473524350225822526242988549453529808122020389978604738949940877759663180445694245834506927020442303662921588851825172166880181969327982829638768216454402127535016832746477576977962623144201048479605006498582047791050947622864313712413330967168088063666501012109943888343197774279099708540561699463628377441043318222064771540367356890175803000328053329815647969989251476588801230097461023437916114920926177357250143885649721146139695321068508428171378754351210375891603765555482034977099175408537845764826067280479552317380821691799054256243458671206009696020986507185798586209665437415210088185789429197531247290599068219113907992051449523814216203435208954524719210175329394701207837483977353117490341426609734726181363382134799568073837680483359613205353495172808648508988777711225199945074684809817344132465121442619549778886128987096972373268038443826215889712572840840049537840757091384578461901599603998445717039128407790386620195111005124037835584116518576246516289698451094180507742328231449075638537791570385879566315660191352051157108436588467779635531788079392043979853841998821215838274790707305138488746561431334890907323334996336399323475644302518624330518568268896951651245055200178351864342658176100567224525908462581504457088928168925718548755500858967404597875976548156744371104238976390935719679334380639397898270197615764693963116979565139747804207196601723165847050184376755978948864681559705392184487933636240842870450402941737309430349176189750189604018770090556348296901201800491054117033733794761932353946988791661132807078695075999357094199003326166676667058579393031298190646063548548651658799943698325614725330652141725247774259966584600125461110444400416196450634578606889410317391110430384613359370129066648455888967470549414721622493125447943988356687431618532224302876557332237749989680440554649520328924134568206546103809968754018714332111909726826759716973277339443151317409606168139802159309565229403365696174156172407698535461401444507394035507017305982545203167197360075676885966822929261418222888859221799676044852080127874328997023808857798375204688912249810312893853115148322327515064496293525916719228125276645704567274173578085202822158460044946667107930948057145125665405044650714370159123129716871153843453166123747709450128255771335821712608017443754138750267675336804471156333659855798598200068625693675602247303856894067511176726650171740787965278140978636343408870947598294099166268175432181293743740882512751145767594519433209767214678685919917232403029415270835970037848972741924839814732415731083920902882750696085848619571736276580245368525827074828469096684968962568034959391818575339505896566080522848093766635626665817278738758460972148394542163376351422103378444138394064505108541612753792061236922544398419165722984691762652783132892562656382756613770295339320804726313807128169854275080468676486745497120344759676787796454251818698551494547620761422120044512382543520180384085295457952336710436907497482885574332218687413885601746572043112398370966598278461192207098376898291565057041458262123588720903711929972207920061976699885308061744754318762689529842823007910257158876152311083175259399885936798696108922537066248150765369516425347414371385181073432765989331064139457688574639510350819571305394293149169857661673614329600357741136531018473024480852923001748795505643325441476452173494846524106059661051693166543418095329525227732604928209128099088983871305319042189781197665679149349613790566605792799965934000965712577951759455712310575263199087312854696900662851585182324417764863933715796392188506195433697306862717703571381276857296839143957943298864368827827689291069126916622698982170197129294380668804096045963747729262549570054378046556784540066929331145823645348166079988235164142375961830385087928876793368202998671142881143936091334244753514741752980767439108372859634073171333022944697416373768626330790971264442748325364169925209040384049552660701159784240376119816136048525735635386900773438294157425876949763241290901063506430194419406491883099660153454995443223782800631469905753347764510473516867401511822047471218531165574221784153913379213676104503262994807017134284471811203510550000850127624919112704342646468338732819694924670995779779196697536025243916739474285820163266516934525800270474419333817066386875812671015378063408405097770424000898148917181148012225594584542113288161981086856983565579602201483832616806328964912231402720955748729491314819701720516088803847474338496663825985429412642482325539436158564886080413957617376154082604040948357578549015839779689271168463593859368388650178753674066495083572133537998639124880515173720714765880072081775790552796636601575423014686207439129862045873388221022410399900713779343073941461517570985695686631398132990876225451625964938986272163027668116691976891604496842241422025861393944994512891748569121578036742981518344430966227015797192758166793020644733600178300011172389953231472022459494527093778615733312885763853294404944577269219784552248559364146677717381400478366057623220529955698278401262807251750398203282360805528387370430387931130954420632898822891468950458289881429870111794499651282720432717877996314504717260867128212902732633655086287453232844391543572857728693930795013992967409764810392962615620376984004213901754376045278414993215823746878538345185093078567706698785334563829389328216738507137734234562300457086849755228847039466428747667378254046914910874768609296002036865717799225251086196552546185298512143745449466975169488517027591875382624845842428341599790890366137407436081418628889825851653264755315572194478305930356307340684770772340699775297497831320541834682607190342345092773808068836893304125674883841436155371825751538636322903464996880791865000370235448553668740279027510590763288223568551263362252547046514852574064242713659388860823109625831543333685155792560838497356008845733160114348028167781378899541017459165797330482055128839859383451347371698062304018417872036394154251234552783083955994119346374950811368253531527714730828950319949909381457431734403015129576140801421791601129433446497921720859512158716745237000630874947173409999760669486739900616531249763001092170323310588492996096709229978442572511955936333607849472631890519701761220347740440610785513234341375145411275201003105452507813415578110023610380623679297045467186920844011695760164916184719702557649992078862266836123940164970674537128612820704530410119593941235951082421632630238591606795757759281725579061021578952794423646347119677098654146778470825336824773366577474917851335872460181148162079540028383087236112690491472078907781005224767220103241369750033617922510846290875473395571357535840571496729960046191638617169736059730967670165223383419229712453466897543437888985359289232671468845956054565908547840763143859475926498157126576715852374378840288328590413671954453854326930720334228613692397305259153455851880126203604373222443927460166000623250780053080358488202911860786331015493564360697629898120059869650757590444867971659189504166106876872258273313467388566509998963708335598113922339687209927206395693606772592599981295063149484937190156479140955355952639078358763744053313289079155521864412345789417466800959056507250959965257239766803462775501511253561453737786176441613171344640289982237477794351855634264683758934089288133349739218084478375673632823985869680207469055430581152523975563900794471855327337170012756124102525409171321633339786533001262501737461859257604911025415492248365754212606683676100903465591216924137502589037942390994456818455130319358240426128775688960759409981954665648197703946171006975641353601877433228277696822939922950724158792987649058963046636205612597159862941081875259383941004403064392002991878464707761084586559909358203255639260718285882449659676428388915223903003886012516806373277023064852944244721300183921739853138754387550500131795781606690913207735864765434622855928983305463995377526609191345303771257177043279619290098354763012807583781076773372034492084566423896244160184275724895620591671273586792213603495875675263947178456455924159790561069572298323786281113916729041641293283488115390800222171946170714595021342598421268024449244503838838769161200944156907979584496785737138590803882020769457541010117085112218055519669383552778463153876467382293368763236002953324884154658441567218772977365183986561463986121576093655849562108773837017304477360976491681314570702258203843119035969849718724741177086453184161955371386480079955061563678229470113900321280906097018408799472022220434164996284241717808856353352896953859311260347762327281675474596818386838174971214115262034338762023854620784486707543102316553850884534653312113761606584152045966365397529513374410114235864079260703185524468423869587606418156465799935693262074914227012217658297287038407134946359524573252441105460247518836934732157816367591270708881712588514693177339962339903006149065415815926137664481933778533795431307636818255138923742752356445838499288292388027679893918657774140086829290789831727642532040727245901138709598454407581603193520268792641828373834460760161498561677181785027561519306574614024121466022447117947133175993970347796806842323682388732516212594298880308454554815752240710330873888513556288019031462424841220600684428479949960440054213620391237938125010825005337257337733783595424074030393854414271276677797189396267119139470645146993768357459263626601838758192846406716546559616938142046453155977411706498158947506020617300425800929862926927666169101960763101305395331325693719831213524320193429847325877792220579600139626522710060492918082452849465927918930272087685107469661819221712266791037692766780106833083878096860286909810012993864538937636732637994764455015801961548333585997748385410151484696196931262404749719288489054609859815593560814363404779155225279341270320001644308345872706979584295661474672700707534949033820498005568281940112837448652155744656122388290565551122573969539458598431048643879829744694802913169138622502201853815498582672854095936703217398223137072116415927176783446144675948888347084257031005453658639661527917337136674772635408739556549324311654088092281540277382709058601875126128713060807264371124326195271558954891041821881789968360024404632430297311425550290675748374955792907608086772958499713306918956852342424696054344325860421194945640582501115739030462204027905651435846451825256756131031124216914943135161039995277629501321302860741471865742374920980095302680479838982714941670496010082749446165543197059383818129434817787384573628269495391146656445726109648326130192730707230460800533338929208438738385947466850936614315602865829613095165921072445147413479644982483517563531303682894077330164291856878138294363468101019210488766620879453977505754542919989492891269943677292195883943337421485106226266915050606433787614560445859573222139671961461887165707493664189805646977939054588937746132768333448789031465796180553588289872125154844072644323645796864323720501722408664496592960079158263272677706807058616286832644949219486764836953823561313354738102444086262755295517933579773040686902218657060956009161781005510548878989083287761999819344436556080046773654711922677921697348181121389176388649520141077235153268159736453348298790056612894404384511869227009940498562024606559046685042505967758546775752994273342200728854582275880179877261406703799816628541844744409906122716256271040940730219722267235104918162690495488143958373870339690572838446109200377157932776367095694360704476460507209005869432056987451032233191842289354380738425724535413810470999987686879643507719295579203634642057024229593788119017783292288915822963696926095256269641519931203724919539647282495977340730679083912832106371908663246310409316093940528697399857786922133710957401050254796752946798956915227251839367149853149935300295822839127464241268408608783769431684794597831517950312638010307687567930592520574430931121228238985315086045176519072127902995171753924545988666394277457279748999443673320208923490064443165263736397207181003647975948577544864408811625429143467146631574919903146212662535766258453148148847593006990854559614673082943981770101365971915461121198148797477132000945075731423567910780130521039696800751392711805765038727533767338423553203701029452924724363904326880053940590746591874806507253796718035985662203385800985672140947870152504304270839251696199013076294112682079297264949985901005444313921411132863206052960045974475403732577490977005571367006642741076139034876661184744373376422730150171962798947698307993108909159517322100356468546481451639731804455459626821777299212538625636752198769043188831410391745089666170317511288188871781135090620481032405323524521445938507894739174899110074555019243843050791443017681090037551101199901006858130856834865731952665194012404788944604960413695571545850680635604650507918213297966090227605752216545611037263242329087487850727692708421992346965273538428121111506543327368566136029057967833383836999816708525100011153158613086152581851416938849609328847816424931394531764821929256154294190550853835409734916155871958219226532930966134903308641039216856893560369708830946132050911762609871667901339757374008446572191991292059937109432426235534492367391844725813325857243497835627223623977412043231287255454996601098565580170221397909663709842560370967892705516182479754017728034297724398143490273706030364385655304691226681280360743327373923996311817886086140500008040319745009294400468620546499987646682540345400385143409823495590469833943039306123170972060893926587493093777762730580655006950154812581272493134358712246200316913887030568390951308313974690707338736002688595705146157747658032097380114958610295236279418552722076429821987928033419546323723543481919119190250455410143842139385343887136902722914148698693165461952856999515465752202795465637553102945448379825793752360090333138204773406819420330926137090067697867468590908814256173083915290849195166916160124677072057913380749090447536909436117001469583896916115038661712102729693924155818334897550621637111681757181455365073044401710517166507690764362501588119589244195094956545626709564995090690584666476539352167511746587739955379937518756289747791493311396390295093950937267529901014903533419863581701944843906756531603737085494049888882865515369326339220281599929721249424197807792119869331796933072484258090882974268630441402298243755268549740305856738829525375883717076399408786616649100336349953304983194079984191873185328075448808236544056926811910748932776018474084587842753189673640574840811786927380294809116451218056110412419224681013047995152768461921807533201975638230372904226881558266979623746722610958491520322173519648851024978514357608661236715579344967162091487837326093226865911241818077635670047633693880063374063541696677333484830123053909526169551515063915798157151649757557749269820463671316633176117595352787462551715743375359483766702040092565843075828670413745397227420131364004339240233545806556119320892407073644770231690879264396499707766913217901164581283829934580737699086902027839029208649976718520806641232816518792886785201330109345885347756855855958480612108516271169507885791685575298910538852714765080362913281876175099368555010026792468496249201193557737317475475328814795757582561864507544984520400103195207706750409683840080897008575917173102255764552769349537939326332244614928979574053073513732629866294929167301526953814200207181252881963614640532742033167840667183880171197833722774394531166301925380337423847644740520403090315322121368758619014248595443847276729582000656297883614101331897887950232167175032593942407442406683423771198299144106711668602972202892061441388383210449065346810888307935051891795064232817449217589805766906874721867687029710478987157448138599371075003790019369749687898407778371190356281006038953431076198151778921676350293556237353262835249280372396307406548174664767786318197539341541929850343033156888289003873064972290729355827953043692032716141461233720757652125996926142345569861587510706015421473824190676300441683649880448848590708880221619196254911683487969420399172541239058801511667996304014367657393450518963922038544941896892084732028175164993260045302077683442869118127276235841607768783621820990270548182501423656093887412609828837584335520459006042745934280933982261986041007222693187627318025147888350250138726690078971065712955399017107565183808721929183173569175416060794656366162419551770708422936538474309742740475621927737431421074411223162987796444913448773963922421240152309912278121995579580885586510713427350449043055606345139861880536288491662485538479278141932973803724962587505836008860349562834683657552001065245244975389883295939519245965581556567068588915846596296642805964492381138070479335922558183499968968691518807234802239111046815153447950404901403291637972963506984366045112286946439495826288449450030569679586111555290138882318630827458478702286910371352558169911218499708494558453098982191013968666396645448242097944030810366825597930126901246925460166652265770770601514153205779604205587154333478911119963101798646887378765245386404017016061818023253614443992535050490093749418429526466664685065517192874837177980849332677369471321108019455500759847138405358587320604979504493680192780413952220726854817457914973719674930789329914212370385445487962280406023026663420881194575071171823591000801224184775520031794868499990685428848288528988376526606394291463961922489349288927709366981681580778114449639193157990111058077898224526321043364557562830618046313062272238734720742579889368881324156441720337598615647212441849404175538361360010385310101779850727718895027744214762291584641720155104199259594701704348237686506086911640881692363921572701125598835036333390822813946137392352867854075786541369792229906524588600280387456906212008756462346064765234076824783899505538562799153927578326436064420954268574024361727514161220650261069791016929450198130746929344180132850754009308489053628152553614271415938154568270415378148115457957674984866485409366229418620260086706324573122720773326404913420522163917716107170696915446376589613714099683112801761437275028418403767510032848633887510576559968749164387597090431499722594174867918468386915825818029292168929682871631253946012364682585173048055873631041362097244214858329249425584619295123370504526117034558048172351987689103091783204561893384801730262883256995375756689355036394696514210967879851092455676283570447945524355983663285466646213917574800458463046050903719018399066527562500470744601301845280121478388630676160203227463672378616014094944704510524362295175464812918592760756760929874100003065619095189854025520787512122278204737029248060037619149334845121517159229807731804103391751559440898621553531901028251664804020232219396869355136527480262961193939141130772424847741101803089440834840413505523929042502674733586790909675788151564349161763164517071361173601796369828109156777136001128200265086072186560798155476007099141729430658159797252579402764302008789611618930000145894212967514257619185623966137755672669201045175393431931793734403434846092722590440027894302707854168608857530444424084771881803154628433700209003220430471318626424657051509872570730478145685649957214344289513636882407822820519887185436254560892257213162031844396545289412203183558187871529189361753752371724012635575746750115550173352510748648975447002073933019207354973824720988085945849734184529000886881468053683693314483930374510722204291869713531086372869607313050789846026884400738498645424496753193400339396013271228464472517241805197691447350093903916988202584017321134259450308506105621214848418631980723825584514887028637592908412335814069142675313672264427989821360890670558507538564103749893711785075664570904472230479877914543350098718909384425513290045346338333129004793113308630588270986823209883200975962215884259153845727121518357370601827791894709348364373145847820142460794782220498808320120361921065959571661069450169008601510209479546557511618819060500153743822077897973441631045177447294429689932347551088837458492866234198116735771152095906308529228312642939188303907985396102435106252182884711169788993673435615005576144493256029190102684881376436848747569570189938390438744913490426571346865036804559175939540515741918142758451261906714800802353648621747490415636091900464077465520079879168644856256250529745649774578965327264588221229066344929446548867767955334104208081750181976023789901680236715176594730541089238626195456101991995347899449759424878421320649290115097172240133418751908419796914707017376149929150471311546150916971550060058922246581123758073703769480487486552722936855596700927896374838488027827627527597374648000474009920397712006585873643541726286808530156423617217241693280855498166546114491466911796628542204102621056407640832081291360169020027757673336803488850233573509867701702485696032612791510429315915141705491847454479668422159172734309245550919341109857237237208816437301033900174373463445362166547512786938807777616721135885672256677677012002488429271899360347371995480079209414749344239080378525346283924857984404347967657086673736524573302174086694613119535040448020153864996518958670395677394430162028507408655854121308017343591476605578595038011612585271016667836855446119350903044650104371690191751212441558071741140001259153024266956185780630143443498378313861109048625949102860611551235617154646054301101230696008160924530997203506004981893275318302018426203340539802607860361690850436353563166628496367382677419769152805535843504954772595837308716110778819997975250315618644799467941846898360669742295418357787866715291197615280690866614925470044310111406782541964659425273051820217971744426718303450533022293675002394161609570527801748118779243612319705837148578797676811961033262795416825514148059883182825207333246550270142945685635914666026186927841815501323562810098897147335398131625047837179938634089007910055506024759026748190818467114404315814706857247917553680926480830326856007801114759956959609948147279780287529036622491262152601958622956411056734251202773665951964555462644328690332615862257578383187334393714837664216020723010099625530971653006946377641060296959425985928374864494197005114596278491581652355622775876622142512716788409638030052963128040727362641468804346106886962859106491696444042721096812753392992393048721169614979137550118538203481646803473190934577078417638932680358313173452960584460588622866089689997157036235533667486920711522648619877723385903010795588130053280932437591495784119334316216873575786701291911080277512209309938643638938267020990449353003401537384410060401376832839364638862779993814453173509482346279872541611887850514547393216502859599798177440769004240373509702119396289010417301228242159341728570228547404270507934181586415658123119649143913401250660965245523484780829873663870885717323923382364651095312757319708116250986633752950532838223421481073623815359334255472396792319556506604882871847439696440933303387827854180433370113785918725605087064113715716525301023731611765917546180885440066957462875529694173236435362253412343140813046901155004677742253039290708654877349715033064613916383468075643540473770024701691393793182909247628513421163714543528239199785031340630061808502881587286072382866340449481614666008671572911592298991168848507882529923656209001196610892022622107155248654644041172570390920442294302731372917709202574632160908208304402868595410924114453826297278957597409947947983621023563476441642061784941806612060455785327932324341290963357563525090478244943352259522593498447976355448472498964492468765036700945502214370341686954278409104579468271373515602550369846047872847489123080810454312838191059284490229950848967827899603214888718167040249140860753729962792882781177731758085750608285243528582688303096698121511214231322061514000541924914439275958155172483701137488296166467008343851734364659528880176586944031404685202140405030710273997602898776349330558798901539384885179192127837352156266117443368593637042465873728775795535654849736079464636311130121451873513115527930496188958596498818443691158079834797354576485457391349040053547432977317565845115703592409077811509663889172183579973467874742554315862773996733330212323529454110306399092946592191894500277816736543252011687210416194875789404532196421102820774155674812616752021467599872275808786531682019377574607718173889692135286423100202528619967916216790189057816162356707720815765286906805025061917518559331078932635490631000561100119273279442553343714656887982586242540739079236121041980577799003152178472085142724465128562599033188637867149404433568914880620140512191584875369219954177278484585372793984328296773493279843394360971241533531582038288343498448020770896240904544651397393925873794807935483296339258348749978689113702636824885882615756548976927590235413309946698560717632890757403297451385414220369380748753435963608134439753676904060811381713523898255196667527224975774825552646951877066019139850039248110542355993095806714927124521570645952592532013835299583442242083082302991729429175261775655301754858437059024821635972382523550074225654757790212357425552307144985243181323623715408743572943068304730599351701641154065511183034926273711477807348228025389740442949731342597891649399701003500826535112661571100748361725896105864556564396796165342295625991173248553877482591389257346119717277781431924640094235633422326833307543930854437266918098693919445487132040923463804825973862558506196844016143362593507373483242020551040646433409041806503386443347388894430869341109145831995015806777505968644515922614619566983910691670508063992319294160972227989200739512358191748443167750713081733841265590130150779521001328854834352383640552098308652993429582652113002338313184229193488653603470932737471815729580909688975917043781288346234739327849555452859411092401111214496834049485769230645965109470338522694302724859206842050481066437796493823272908414925406635400161857095990568674104867158096251518919417339330955400815008598445882055471036921940904124465269357285883498192252623639315153641162515180788266197274711292022640949494064151092344577803574796169951321337150006462396841496442757482974102189024503950052430932519198434812691675719883961243053806372898740123951255147079263166363006652004238753746324343967530220169334440909142579044185655722858837504190692706272701828381141603364919822990270973740100743046887171139565410808489421368431156146894912021202036143784332257663145635126777927995565324529723279951798758610945629693258497772591589322306600886773890551476297799590455400510626062654310919986422629142629534058434363864993828240568802403899903991481237018577284341851928693419545553611195697530635562190417352107103127088823196030978633408875572908799562146189610980087453449132255487717715410384213776702698424537595048341924039015480750160210052499727991294056587947290559976895670988713331341764557367559910023438096124290169092145162174777183031910014161870965909500272935306856101371381963408357812151591710607982422743396043769571086083729022436360314458458195969927381948233682331000683603607094145148594954721636776729935605071100067248839539926831644829429380673665748258531938131671808401415508994377428871390738490184302875347308218194375187512437281753624523125701095306984321649074930465484895828561588146750246475988684773478330182097922067586778337792775074653812657056947229505630167797130230346883475796658511761833723590296005704386705450441090138999381820178494174723961807646082969579076023492135948880125102948888481040317812704078716983940131873142645576065807960018718634094231344619339851422951226090408586214940264295949018532216543222273317929293825243530144967722076509325841264524202645951081159980149728334674496812664431820216907371740056096819126902101334467845812551604419750428997302291663067596083938213317934934677770876288148962299530805783727912826644854144249344239740304650770279702274271622918982846002147486763865772966542632354535148016312688688746912968051709280846275890354514467242052801327835474647015970860883144655913156920750050557916407484975858487617848942561567229157415217842040502504420461643785995952319110292356599502277698060501230885884477826302684653074246394482393847482989399994295047917472640411922551592346065182828912579893704972636910025604756090477451602389180251792518175823606180362843008552503012205383402206298249418216462006486349350779710731015245631687076569872861159059816024690813833707091005490531886501504196776376787608957235536294016234037218296806869958771561339948793111798505109453386731796766588555797184612627691802912905536627617089291994539387701597880177372295125462083571748732232148973991472718728893637376084393741347598761899847766901854293253778824300391937091132319469511055306808441496912126573422877957746856130794533901292926376768942569102948675564144962414092793048027025148136967191737443730978189901922407486420802709650161152625977232589692193532451985437729561210579295680630121528665630890579480078574717565807346372856232850816276582710230880073479219713532885138878966686989619915711786897898207815985419637152774954391796975137625559091761231688573363964384190246270017088898457883277167578797796735233783077473942599178219954033198309483066566461013997722614945924052462525032110080500505314510225302718698748739042536198122526345309820582353955466658427730472304626894032701523532783952729208916086305272720453865362006080015533028057126663959031217478593286467138089976701124828938046155047731112033675613146432749346345049014219564348041075254758089838535652288392119619250248881170942277191866212712119423896119431216678950263880848778373680728974235471975311907420029184262192471230912187511471683171854684380019398227208363359883728649259457736284586909639198450823734587572630523323499112417668572116240490455983609402618924445921235580447950841311705443713225180134225404744953376635209595649596338850327163338771852676304065435666882886829752103805276905305575226377978049233367619759869994930265121736750529580191964724520468336356402011890872719191341330952493360368438408891120402711291360228403943240082564654988114884843887406497041665795534094925056098432373702206712801947141323751696288765588798274461925358003051359070344008132404091809200088564086256375965320590551340700265200636634640065699897506428982310171177241815348666867607024739428508723315896259228809442305816737927367061960766210339234486870797874426121060974076205568793697864432373110365731613840665392925397181125695443400583439950028132281542810250889943701950689457003248234950540030475899042291379236530406026376796579331625325209271117209441399687034369695957590836854922840067493464734022103518741893104047298994170460063022230465984679749599404816357434420279191993798098383537232867864719342031530255545887812360387687051697625134189792030514437417991866017388600715536431168325767690293452744308508680342745793771289870184904257926455342765780175876644317986677338835230397099917771769536817535821931278873308378421363672597051259506631208315802914367801971629866280420106244397133550014212122435029617647585445174848159682133278841500892470189251886647243394819537804026932863783895680357878854323448702414365230427965425885364822680308350453316995480537914172110483723537679707191747263658977047976928780943098589447155319651656297597924534796374118396537682768509100949829362400734404043772751986182617335395177800444995305122417184836007927139309731021970160289180615916390232150376213968463808772151124730228460680729541570170830725283478802422929774470658706828005807021852484633517001021175895691816721950192367257917502833679847974624338374229956323510673735994639877871175931060899396801572075476255899493813960442966243399879701078542939567356094101084440745751262252614163774623681123877888396639163088385946135192160085109495877007507609067333103178973694617951664304080456832056983873548242349093376232881196837653816584538053919038790272643263911805798463781305984658250742664990943471284836691676263806796385656270340814589210593483569086533676974405771211754375129454888773681756410677253220017592883761715282561776565892874814005120076307828279425657039142862534691392483782197121013707680042272589445972617374218879041740009188053260245788889991564336767179994988378099991629955441423753181630833925761915064757584520955702541582453617625432571079404047236348007887581408976055435522361935400488571336263703335366415224737644483958965475397195712085172467241776160466099669157393744720098677404323096897221093019048285240214885073014282227420514130295376175930992441375065097175054672611639432295810928303141145097963917937755050533013814815783654096583420265689358597492764127288514921368189719661713665100059505772371154248691856937860500220977605301835497460178247784585521801180487081764910713500335037846915129151201547107398436465025830030136734177529009388726989113223234923431350325515276019945656523503011647372070095898427923185520517957687681681260905292678227950437060177456104280816792876820010641713846441622178050375535773862289558969770449333221147961198944434258014655627836506835100098472610264699843410460225600497005418596366632763903598566139745348196242160032509398643244732490431264550796268269543994266504316494703397015974902069480323949531784101592788682887263370719494469944501418146147852878124563083205941977427838340050176419374528283875282139211387162297615425171472839526609351900102599576609237131820443132607173610225281838539832018707207684271267226752799665035544559575973709918660976744755424860713006353353407376008444358971791632630544702482696318867075306190145250660339984914406557426970564664733732063563033182633370985143648488501245054027800225563974062285671933974052846034850379283482876372125159696911913782524173632800049565750603899152123057633408618865367845133069243583084141818352307123070832455568527421944240088948088423467986021445600750480756014627470392960230023668250168748064218930064280979687483226107296694967290678163954417014000582210798738160486305140011021752700714893875549632749199697646923832632565599896638429105875382733471488120004425579349774046152757048999003932515472458878987757769867470068645177439450321249722531815446483944944861121625508762343497912097830922349074381809569503366450251031413879901636648921274358774142847622534476691079835587895952461789795313168894914177176108974925716908018947018631191884694645789582258762343322290464445413367036369041867062673283782384396468966959151490874623537815062280921886250979327195693462517206902788287864302677827403911997632385312063106820681217123204506910958085841378593113910519985573034904865076619254750807653477810948113331939317344807610112120392805506682475092804320273077530471850803390067353935454706921575026395202696980110009005263503182628884685999078814804521358313024640675676265071586819429820116575220395138702811361346405838104351299066180448458209329433040228856977351536523765180663353044387279037733349450644526088619529804654388105496834046154527722563021770756166786482295350902918384687914961030311592001272974390861182718816680377408411036181079429672230773446052481450337216421478718630366476907025914622879736080233616834603416009517046075596519383871899495949044180815021638090129674144572408712190298852666449831730792521856919126522649011775246855243206380923030607244543727733536848223752487585670396091621732530892631233506702982086965853277805871147823920420965453508344195338821874052069644691409312893310653628364536247935284293312653958027624776232806022575481445619354678034688044690024004979408893822050332944476710223468261032575765544313869680282533821605145117460652100983166136768388078682879186492047448669218283780621556791238692964490676471027837336943019783252234947826227778556696902924791195773950450753944742610541940360683815636612273553407812003402323888984019750522140133988741368558294802567017026125632712041191518637487871496742724218514175606332153899862211456200119260512378888098746546342326011171358294682035724019614141516734026373341303136844739719410488729806041399340153944090843805829969735949645234160966606475105181689921134833939772140544240784694676052497525301285569466857137248012663024646864629740092810098985649611118193864813435481177141810802011076186291742305316744875978026226924307766129134810341940579922522271866693279127822202873940654575820910979580230949810488185710170472619161184726580237798139062892694865204224284451921637807714403119807863773780747126115464525954239295391935643765028586865716642165106562498316889730765522409753784128854675425428010643777210478050537916586932484478837809252843346162307033429836035922479637686788512676256667749159214700189591065430712781674316546220135093726769040609054823885552201559410307454272264150665386945929716698906907630844447953371709251185793664334233237449823015313487410540503439867414988877287864166879355811049918625521539450756913411980850183969879990181953720235200721176555155748251356328638128496855501339761662289682029157675237688273447094983641631134721172031077148389152685515009204426884385974871248797394927064719640150405317698783136126438263238570940666574913039879556337624728140613749028226185267352345059574103225952073050047872613252965277621595812851097111948007417885500701839506768324917474677604078080616260344259274987271848193086452864031554940867181543666184908615228815112482790078343491500263979276394923777012681017293910078480437962426692222206615940341964034880817600748531293761845298616505736815610676622175163581156245763931673071687410903682881730827768164719892837826521854523310252959692817751406164888049931022377664235597636506550056126805301002202706505685101258022091035425963929468103292008917788126467156535052545605870416906027684390580242074447260982217229099684357989743282831758771102965101899088463249391982729320831280554650243824047522929138981322019395159618456519088500283600397142111015499160955272205242022095158663872907175326796137195920924009498726075787011549354309652359084940300525751838017897222599803592330198621744333773116582127559535154915190315393050893616509046643210447104688728862746735824580404558980053053591423428661808395854278811560040265424381547636143733807603881541005805724764337280411382162334171433503605556254243374380291003859369477992204594106474668421706735164412773705499789244003882580446179646844683156447392222762357792799583258521986480862441069278861425238655092492846837471536971354801131758064426648212119489415414152217999496331997627967901115993170447744322331206186796293525008000855262200503413699559587757500401231893308411738237502658220652366581210060999700447281654331777834461365544445358302731850826835923032876228840990993742013406668991022773728060610121475953718865997159827519863229547615116748910393966305414365909495404135800272496975295187142793275559398044559066115426290303509467482496104832734943902504996769167744687089656207859677426431250547286192799157400302181343959300273880322198990691440249153586556960262142109891788240136847099975316350242199102539677230422816891559043094439108629106677219719844221868145889259558497504942563257703439653258296816578834078436945789383990247136889065636997358939172300184078605600229538450860522909305047875834637384926598279891612321458772015691250359339677028732196355259530722774592561400716680747570624290537854425310097598322330133829019155917927884757009378103189358366970175750457301733789150520294404477555183547694451534795191083168414418666526653585832777943894586256475108529139119360200882571048129629258591010583387523156211601496591715193818383943130962894905144591371128267472028995113821286779429881854545351482585176185433034746727440508576648650200236153723767913151166141376517067647059120361274761661997553711588507959410061172614241817758802476118117030064268114268122986659391184132639173163103791575573257867296507317195075910925259043241412013403718293387871101339890948708456007867955898217592814265837206591396442415965630620561203135149134069060814499384311541337206239438448981799853481284722804892470210941210397094402899490568244241235109853648911590976330817815394750601656946555452929951565085062914484447757772199889731837666489171016353433984007244319104560540883481006763982864892034962768600896744310751763765636760952264061943911139032172893173886309213675922898938483048766528175340999956010473193520503808411383026485141873761747253936868217952351256527178004115408429603861393895136181932958618405715325868964303862591908971870772214742096966096839020352074085676409908352996086924398063128314377744453983275950949230037151256569459806241879562607068497486704144828722481203496526793503237187010594694320961825333238440788188762468830611206862039098375130650054466445582159412469065251875782547977490212322655805618270592674660191883411103019451704627927286113179827667963914726053632225964205409313773838888992552784679474645921551211562255327753966554115931512772440576268366525535741305361330076315748204758040367765399607235261363760977884395206369621138807192725769659097918271525987279238211388341577793665465392171333300780026692085090435600708508838377461094422561955573885379135604577857325482352361493996389885758847839956144456980936766428438926209256899185932684693654228781603301041124139693834606560216002692934991790305419386283426947150110885155566791375476029864577196114389046214047781462780860017141790978119421836914755388034476548111216529118089930490452309725823388898923951948372477934221153916862152983847716581545052144538901109785525431405833099204077558177036930111883370318898089946941106097610286261312485709539954591543463785037622130675453774121639208270961471608720773869324379010202069602481071266020487779359699453251030021399394868529104857904664823302341704949184292342830714992896231150361407196437076340865083453445515903010604019483196508125631523772895798302740873370712742127895092684993549310035517113391877388527247178739729931837426469527477165148731858935339399358107958673195576272977794259522262297305826441222792224718176570693486747799460918824525299531646374578873438489569003089776225651232807409127965967927849230017227211745390786262718558753958258725943480331506028826192506054619719694005029127037708337447383310068377491354982202829551508987014342907771962724197846843875763920262372210591331026748577625619771612807795794997199694339861420941959129099265157093647876725535692075860294614844427035089100487408869611115076350545263234113539613123528930863283191548608342719112669743545420956614116436642078334815716877589719477866148597720845899174231096533571056319796320928076859991910057493789438051975495191758757268773590490397631131227233101165138049949060448912680741395120153507011490069110140333486761953284823408299729483320923428679682358175261738941920699400253366890133321998013138961988778294095613329169285875446756964807612490176802822159797689189764672848227353545570145563157019548857174499378419034796790467951044014907619266300457913189003174298419275965987929391824502007895245580491962326451585927180378070785397582623253316550792080060372718840948059753057655449650937938135764620275557142458938559223899378683419262068355327101298430016746765773898636721782863918845278009977548924532874964903015771646247412209304279398714163630117727429546061280537589828067739732845608698714673772000709306906820863467293289739968270183545346022661742073410389988900539028684350015311348407211931391510724688798369526018128906121789145331932762803951071821958843534485303908561670480656639139617119366025146037809430320841342435058240557998618778828468646064642680827313458109037292662937025703366761996078183060176029499368651008051497006989073050251517651832496654167592505602943501491613278357456874263010486985681795858761653269643544542824643213445990390031351567215986697993423196723743309798669249904854544267919687233445497707035971064219836942001153238962879195533768873209168933716129762861706682054875168536132025561896539880424963968085970536541244119362509736879584752908974701057277958692516889415182677109764520371885645811151619562465837848075930754678677080578836524925339870832894990697283564601076737736993438509606415115953619984607469427842653430236275639101773254566086508020446161554981761591328521081886348869602344464465168427067633978756165578279725140079523846073867133183791351581672336920425499700533761280379859723736464855207017606723185211957789752209057959409764293275812733136463783290340056226818776547456591300902391704716420179931989944140181225159036871344374562711415073905755239286682375307940324656675016859646584527398287079427016736834538321853639435259356195677043950144812325426934947669761587987876123798153057855789945958543924179647767791384446669810655706131092162769437807474223304697965907316058895768954466663497797027769370838628164297014508986543881254834325305546166825104171781455224465104063713130830981606649514121685196753372366577524553615335782732392861189389833513470594301571462151766256308920709866912872773649008009764791387951358975325515711576356452146999398710853510050586887620976804525231574311919743402628075809008062039850073759377934601392656464845829016020481847451777702702724694450476041540314368754030135312220656891846356773833991119593927398670945624555794601379494979348141067502360575971783141503664017885323407137427725427180717561107589756374428612949419687030598830023260673240781568198615167971485852368954973708558596840592804540099385406509624883228045672116871099419213099796075897363083119314356582622406900063926789139348842900481048743674835987759805686645845524759298877128008310616282923333448930740066420549059604887126777371753198470005569471668926793400929917881198015014343955760940844096483869877623475400702752481451923674548286525088093715555322066440764145766530476749578899463410103472841299628944390981287944790251915289863145890861139823579638133159685191346614885316836781098506424718063312574467003280677585155379138466206978167982977461014584899596369731723245503214693514622646758142932018757755782736900730085288626827511606343614501321352684485332846925025361530092243928223622692734218502462878856168465691962018227805969841883427477064869403197000855396499407599291916886346418560084350682597533963726024752682553251842702039645221949778423576721454115261310208085724586372736818605267669558709064589419997172541601365875106799704311061788009969041994279498391885559675954577311205156107944525489747680301047515042075775809553227756770074880728705731794335049368230121069187612747963254882304477634235042373761139271193781985671481799979434938497036247265920004424054313487411171619655490995241346344639118738331558517204782153348952703252888563666960014813042275056588172729252963191363699771668808652247418713506622652759999425358494113348456267965072170282430281482611736707318508609123534544172736425162753732359021715316247655621958814222792479208135502825084695204777397338406002710871786224713630771211150931541283374511116694696283373511883163518070698029186694628229657608222159752608678522394776424772377876259363161479567937494195887498078453894738862527379488428224369006991238796834580786037792736583669953500964514395345190379434175348766007457442150151245845915142744362403443841504062821367650847946758041082814387919208594563029621691328338141688182002935064832283745382536803718146220884312199165810706183842421953869346423462728671061033135617178373860314553682215993414564404697044934259784225348673217078107444164890648533968095403165008223999305184044678566644762492232152932403964162622739577761733148915346125227622543120178168101605279612266357432625415579607351947175869957087163188755212128977033029758540556160594218981155389150580462663631312481206711489056250474779485541416249683720887784685570605967907958326838327433459444306164937785503980659703070423617934269721537575610289053539232377396773233644593053406624620069713020740868757313301952026381534280407128678358805694745472459324601216613240030155840701006381026446858102233828641317819394216944639090706251284117611646588899057361300924123930122463752037442339756888180683895993801207894998086220659405243944022427638002270226705605453366075188863082462203476173708672265294228129889398426967403769715644738136447479812661400903797804696006593145743826946152963362618045552141666142607556805882004005712611461551645622498729210294191780971481511875938702507674616095423660415036787937167142107301320434929009852163812111242607338109412340347717519885293426428380753319304885953609532029163115481757160613196483899379631828827268349527578165365989876597798319100269488299268175303454358700326163907865022607945633076571341909027285090894364643255405407138935013689005460648744103693986412381920088850507967594827342666527202689919580441009371164956357915675157696877694316923095780643272549867349657227113121368856652634640287508461613098370415497129786917235647568229361908376706126173145270350231567018809451062613195783717253598814259248662863707323242054338079160834508428505752971333202252520132652411779198573569831583464118064527309293959548749224235689351291869245453340070751016421997557803213946559364987939200241447202513681260453872878380384854792221497251906018815921090066125366630435163136178692262721553944212623341361389441227814341439732854603690723788648479624881032443840092036206088109559314097542050741277204836045443778041840271404735767608526491423078172846373038868176847227158283079117395253362804350583539269510417213965661178709107414542205143610713211184176368112114056974130975185141188487998150090458695955189072786947356718539259328906065683933060216497362430134966718270775970718600043045660685795385972416103931931411091174397992560111070179338291829233066385774286071781495297967413548179371059309361460682053720052915786829904638543432962224144197884892782168641034233400537439076731685974053996765503607117211686867588356042641900186801320564366005180293026607451156056892568257961881625932005134948187828325278270548721247792911474890493710096138800291545319239078688098110793438888829861183415513187215338969918028189067167800873304913083701826849199204637388579978556009411071201979002142629760186634461940391244827659991731391751091108480930294036908682467956523659226855839795276073402408388866746975710689561112706876883526125198521890887068478011039048714781980890102775817134161879465806438215495760524719187241329443226186597351802733333535797120529381672012626426635153315803516013438479943354647327845790930114980548138786720571252901173131012738906336748579972935960482957085602987302256588419273431360791048352645601681964116722437305973519561308708034106965868801307530511140440793938806360258292655197704822426974180431438250978124082969621872988789745128809039897588095253896375772789362101181591062432100758933792988729708475243148132207878954923096723400415981750881857358055591396391797691712133333824610500914951076519589090446707183949364390435348683928477392555624108425862886365460127038899950009085510717438908608517429566656717213408529708603434750253531469386702071116965244977583337360968577536351560177187155586150255663520183990063822574818107282783685187292725416864417758394461029128042439455748353422130324952554671299377395395516880651288108588453959077203457017469056704682514681310471496323252787977549102950154634921556198368133415395181024398195286965598233067862776631744631435922076263198445848216179360231066816409685753779485158497644275890749504821169519351682792206132874041564252354285220867664894342115124276710507557334596765726976420484748362141043026933768560375872213733042907080994389476595248991390190199655269886808986987602475480079056492949660719578837367802436709568254004525110442432374242312885177116822679494855208478737704316252666326179444969777560140903382197718769027738976615547730320281966292160054531698603760291416348125436082451573012981454423037648218465497817949236387490756113726674162775079791378775716788108292516022369076716273254854628979219438847404821189148231723516092629983585649729323273039730672880173248724477917123017069571403765366953914377609716077710549747152137005906295812355270050139608203969040055473002028519081453147924922151699571084413898601948744516718465702528648598611657685676416287712682663694361490881866939830106584436770779165985406538532031456654004441703821571351719033892009032037063854693166304327202167488519057184628833546105415877257986896080121600949702291973959529515897966868837686063227697918385818945935646069053308047518327393446721599828742338386306903405817120140622491581741680688648352212323329207321249039947423102608033542989062683448413351032845881536698708296662110861086113666616802777394860584688151057445191977582052449650734327978927459729301751310694279647709172780378711569549604771805376445664530730823426627264796225028228077186621096344850421731016424334977272325368978440552623736127003992532935837356168081457155087076742740966703763412209278965446745436339210869718470904804722647831588739869541042449080784999676625837139722472933737711172270372798934275262503660237564912943690881007437132717188614442295318638674438033639819331759896631323978136305896693780727761980899256857569984557025648130334273564275845552070090563963626655609243454664209988140840595689732826712207586715196318697657685452976073880827169085442704385418467175660342747818081058770967004790895072021109172495511578633426162704680286844150021691374471068622768241787759502920525397174479831684041429360466559706440224288467875484366671895775351624067957406775294198909476298612890261263084851207319209735562833082149848570158860934476847949469276784278173679647723854127018647863338928242159501862135797619891935949197151251847260389012708652929663007653390422318767843154909142049861674848387789978944445000653967444942710204177880820054681890101285493239063393289499439312009767935267019664726498752467233229384904369004857147475678543028832550635167061959079143050010903470142528925305633603998881120749675479587643664448584208192968194706422898043123804534239941114717156007406394251315170668904539375000355996778144607005723947002556642687864992017662350529149813730565329657338300897248687799633147759497543483560753949956814144669248365471777568436761681099148988937303246302440660677678579245539106530542627674176941702542928243033029112797356299084542245534523408103637316713762342409479886698561281738987785426508055163754061222674981942702673752369535728867901989665630816756041078003368107413465566339177622038571954358491006719056959566149558093973001715786572678282395991285027632424703990693737787998914472773370394993439830664743060809052512649483611006066652838510722234138712057265358510456116498873042837975489586606233389321521410920851397419403034374030855991887468973295339927470209837813655555421480643402182277452289932577761491245600416383408092448946615382788958549300964027715981727331321513186567531763818353140462868486462231330707844550043222691395334544151398272261613599085665535917008804739704247414625006759728862240989233293449392072825883894723054437720785117903821913818527314041263459023932395106899245736939626641274608940959895351368198962321813635275044248904551375813762553574822251307422629533511704307157224284857702141200927196766666779827146331204223016259085371103346894877618116775408917711629025954631253240577094737047420741954555767072407223778546054541756696922010990556296622125754932125096833248631318140032866921876498455980286742466495306992018377827839627633241762838604436430289578855388220659567381690926691435769793268121466226630943000466597660301052499805396709383804461531156825734970160362525325981063335688773088864251506582066345503992183977602268480478225482568516358810824579133118654408708014668553032536263914925963980878372753599804602352919228049852204463054029204218026666305622487029200551172279492143135748215216240894678316515750560425547477895106435105693113030298044103544792276656349156381398954630676589600226292805375194163674282363766325122991027389472055933489345174565397625502548241585791948857272531568377301867463834980004850105605317738660157813364175840151552956894252984177866179967579783233092478900192348149950121985585362620764146094172951190795078889899915450020388774428183717705561803759402526815748171895336640687313484321628605529848758039928371938322712618572999212940274574461544850552515327517058468501280314442718594732092335941113924720120830506271491416485313651949198946653098746820875455659967799774905595581210046231762591444985466941596427249535310589900424315103817577638588359568291250185058602416987176466969974023506430244259580669093846117268444068652093037828115519318228698175602813908733584444246481432514624502113748048081628881028962694596456855644714136875781327063855421271107480700525071968331108332469841713383088832007988316958408968371338413540559143640159978609256694629163527702378931267495705311703366660279488800416196477746100258656669995874121300201458361605223275445756735694929976891169893347280692347489950443404633836072152808572410619499464415410768641445951221724789562565345684842488380765716315320941650342871457765501650592506791981334392408310355684142081782319813745453863002106665184983537188326738393248330529454164897216845357747328965394884661688946099064479325536098829679164771253362873946308981741937734846216928715405033737552258412444788730172514801263214746053315996995271415242512623910664896307469227150322251761462005653403931727131583759093436902168493336539550970609333239660867529955252984039955258299306914835698476605485941469471443305741611523751067025472650080609266859586292352601971561981291876094989523025506797649872181683127755567749510696559752939396524727160606702827148476901971522414080005421013825939626188671185574578173582284420237685729832346721451120124578874638680418972354159862392129251702088734910991351648677142679702886485026542283005368347013657328807914137991995589852906517152219590746309799904363498171391537458456887594178833971464525604830501557874741904133179806799837507092753425968874548921845241998046874537525812552768315110268426293284809799027513371207283644628413559555589591725264864329104828149926788237576306626997540647777025250812903904183420814073272438496794191410889477339024380773859613646641388988798222398834493497097126614578636728670806685699168202914610358048415347604547730342911198469054407554197462779341225272614404406428953605021916354868152535058614553600624413332456838795664816327485421336739687088195776155581199366908185855504975885773678351380279956636407810205693605051791855044749241423826529610685831359646400615724175273804388073963130946641189777634201530005137734205924592610080913699465164945728037683261139484689644631260679272893351935306207161693553861155052238916129731910862826180983065042331677578192748679384968001775551061800581691398911829116730624372607044485667045570497714865764859697553363974927685995785283925599116152724911947370853537747856646947610237946948547280617711172527375056474078777103978679485985069134996311188885187501443750903368642187323259215939021560030763808868156425397795872832605561562439487479038359828965193455798179969518018998115493601935293355641508531783336989646485668599992562677186190342778339965813177089190032279475038240710625061198954059701201216995313397835020711263486853507772020416558132494941270742767033938006050482617074349435512109059197523776549219093951967807560121015444132549213083533388503794185474513452032636197244327718866719104368003624967942204081726538864875121394071060395288091713484642268341463837076247940432716546783417233214685128045661938920604995485655899733049707628959651244068941097307995362570762500681151437502292451837287597691964432362750655891896345701356854677904783189219150874786863964498237711018178564868139509619469527305190399696646557212181931908612606075529192064704754192075763945440991192606692755586818323197514499573670861439888848145774497089922727555327503557326679192371698257854812160205924922509400785645073771913573834645322418260621834936015174807462784482371542769688892304803498367700427397566423105142670786280647186620171387878484623655827364233874794700332848095804332234418128427240554823721456846688513704276724493727213842712196931012762917619151116933313809322893262621943201753929805896130721509371003775643921413445369163048357745507992521263885865445854017877253988663106327263759917413033906467606740169417373460499606967628801315580601718010245913260575678362550582252099999898007552976326882568854197956170961764046071071343336131973830493568856134785124234181016876907806561391805079911027800989659430691039075239010366959618920383164660192211204804079931202434876499286355507273971553397054223694505407207612564177793853386475111298895734509015998563594690517953437620392309018371159742451864587944643645026700069218306872832597507432539257667796260929295056682162830866585950762881637806912806180419484104569339617329691449597440999684919536772018195178742095804364947453098206057621041674676292322078819824142609419391091500354345453744697975393289940047593355132381081243619330484637830002796300895564728100904333430521382290153448467025967904309973328497402075716256537446699198683638171508818817602385670164168257166569337181808743378086984355214020102845934413625794400774904222899711431806444647550045311937665813297992384230536471625850263858763383895551668079868776354026883892972990984042674450140123840836474918885407709584112024610217344983142386989999655707579813464093046532060927126890008089141581111103958326642974479772203235215389905381086632281802819886934187908286507028832126581756001857086347464432825706835326577520831614651238898908463946628331287617428989578430383007210763245077738300607011165286600725226518855214045205411946466369529317143560459607329399435241890716304378261665488938475401112216218748441963039469711405279058709399567950406109688851060130558522882393419255810965035210313999702613292949438359517918547714244742850149151110074414137074468547957973698661544621361839345383592690169555199020817088291087027048945806437489344905363263788325941456190419044236531770395807218309208592589664084323639633285545475464263466002857807047007934269723711777557215764679102853366030240029734169981002381577748415771943355636897108927206674095002941017137020075154635395247824749893141498398294759589343574126586557432892181868042936478505006546280031137140805357774689451160745335851767660040433304009525014718667773488952587058457755128917474292667343829713290298597783394858456812263998241573872599194667490656698708537812793995110818333334106006737131110446388157887691718220268540550551512119577937713729470038089603731014430464616439143495802551660568258962703350434490695372360986069945863095040909619790783104163233847208960691421869593175244104045456177078567957000460717909986799640250837753156504277966784815801444801129477044477422562354294514695038476967396380373908089517086764930122807266882332619554152484798734384957838552379636986340632463140962011264769378042994294353713485467054596031381243085259667125463240990267399623997745502921982855671664584998660525608805649884967383500553732297204305233683674565894310702557673569964190071035293284434776805108415911183073647768086110362153338478537931186891143363211118054801716290655625247374795338867930005658864459223159864633423906883877801849245414217954518060064591744123117898065265586357400900710068806755287864587471656904492831528494201596565379416130437135337879297663948243208971373213438112520854981394592811630730619927866385272517359676652500604072943692677476323081987915734742240109729560924015143989560269003199744647395041689543077553217586120152979989399086581755764694781327550181350514207736039624266836145688524269271866358603030471351425976544869521782571772735142747014065634731286136204879869335068012662861930181990570750145467985290818455068980880096110774188989383035395668988070756750202306199705089202595107924540681352822329602408166005630964448368329714289608732191599964468830544838941880273566698693746739660253711531718299718495239888282874880641262544875342738409967359698157216453758430830090970862440657912102093733411605531239166797988118356065377628392296689365097979200122505720540205174539129666731241435501888846497531966003222206740106105456606600647674643196818467075013558959591609344925244964552219091160896812952781477934790701820331944944199459771864528398941244414534323262309579645123469809770978605056749456131165145943733825886565057629138450417846394660663027790783939315793118075116386631792239186940412159962236919149929458520794062246534105580823221428382116292281042431008654850235824091039092768909315573147049601362418573775858267785355912138562296147358657838939510941762726270805018342831414246174206881376858756642239723809514836555205329853621891749862398417338847895105559651742037304027892422126068464838875299324060753796491183228710151848125041251719737261043371694851451630091796450246630734027440149864989054159497582940511622172948991158348730775021374741831535876096721136601464235758815952025544795092868187862883397920041492722161733207537705938733993149674974880524372964057940101890014032819260511915825334000649207940145560860294715928314073236796021191647516260744643664404918680018229209441748557578690114899708242630803488725675693646928711834013015397231233260271908587721086583891313546414630332449206703098375521503170328084342928632323953049459870626810794666870671890013784512988797702264688756278794133029422314659501797514402629028885805135720257788726623872982161496313200322541248886097708572448141521548310466598704600733232288042018904493889144222453795575550309872127450259138595143071505400460954598184268088704533501137928193197967005753063258212330693869073157465411884618278121450479631293934366695284435926483699457250959821599418124621147322560557109915807026789352037228543707868052683965947618675186390537772738590264656852498522133063327231763518782684514819210215809529983750611269736033951660738097278856150728273072879187781506024763415896327000193177001683030461396999884818724212236746147240763016532258792904177421791021776846753150985738352277633777702731880977346717522767275071789650330777973821569319569334113449070024015262146733470025986385252794735966450309527486551428530660333222475706726887883771910800747634472237052374200700819044445929095767859500649874160759598445566348629714832252753928968379852559260414576097179400839214933722742945739321878928578033115455619506786367256019119041013123041574134733290928173311941637698698493910812554708686746826458184671659980335969457401374627852486533904551268052905163918525655466465311709073524666532945683496550661938578399869119710883208692876659917096195674218129615226686018520897120651006807761630197197364971344456364948230972077140811645819155283909270852909764150197554977861498276411714983207091482184220254897668515313421695864565962776910239715735908095111846156918573870979064077268229029614340402885106341057850752184200888599690851789054343275924772708162322009235730431285166388700897756058097297792646463785364708221414121706168375354263657816683676139625634889099768507380201755952360772110188969429833357656447205715081255278874761006778702097332375043510376220850428912396639529023873672738603621071328535661428419594052957974426624817789966064564767962870885338671368620936778573303217408430850252258979924271058003859767747058245455781464881458096067085414492686610666042665624739930864495420135480610634937320372935518086430668040071527657325980561436937700219415364884974593200572909620450220072490762257220826522005791368206374149205371605948564919155474935850335684603120505822475997471714082842838072177851685711084840479635030993030188783157869714319564497327676976669596941019289323849268031187037467032739403624678735185175053072863420611927712063655611033586894462470051760934125756696101859735409890871643709206993671145851445898862552106542708759795727722721398522564799255395944541462758828095481079212475186768585018942405168998868563906901983498343117189113654553634208345355617100682372997822503413058769788608549913451843366808733345124123018950265901175310488061787999795629031218610119075711194395452183228766824824703698873415155483368361067626095828444688619016433127104539424322865923738802769574794746553556557155728686449710130297769641741517186451614431881161109357061631910410189392413110431976168317908084804732366043537204077612231063434654553554313682858975378278030569370251441697717639385175164702004014959889128785872040657752042226772350122211682702483935977691601351669287965680856190786365880931662976083010131106834295878844085659230786245196658741823390801547258464194567293692531577047810261370411016528981146110808958048309437922928935251107178202921793523089268731158261114466804417660102501725815491528149659945721389792538858155753158212959638612679728586282185426612097717104999231109914260617793967379466715814772360516056475943706543111290691795419032108419258687137039586671656694030414384389497968369933264291495904303830007476738064674859405229816951828123729432690825045683386809480330766960753060868067876810120278941395956539499214370843706279320088709687322537372465459847221639769942850036312977217966710467276192586751124925467984915254879893558750973558469271385831686014599091219288665041926135633408287667129494067404581452671848725361090526686883831718265609099771267651755313953949729577722399077866985548693294465148951376722034139716402282907446374052927059031055984106973872353706341464584465794504074385276239269844350567780498861555970681766151521589190011568684673814482879990429952548133344241160552809066443881272050962663552831354005411443970772107029765929381550095334302799521484953771436136765315181446216342065771952831401180833866438251662550103662856667904992227455976572242096099494657030051651871889180036781065863462838825570456547299012771919977553306152003565822443811015352244833034040248333239808815632587975749645484870065440084725979170447463165123815926287214883795519940428505215177066371286429549979793739941023185454529391214348536371712116952224239372608560997508681099707253967262372058764861710779536873920161362158053667470978736416431421828263453786537037533034199374072613951031654477635614524323031322269314621366773265008165919338437609036076057847700693912467001147959816320017427341036453438931930529688842720065352553212532223126054030358412034267146752756295205540600481208050982701041390549303364544265489844176529963737169635574169475570413067304823814629532134976094132163145931803786364051621556063479255428352897860334646525095640569537178884410590237871432596848278162302631409420805359189142817525780241397767050633978506358090299891963562261756033880963205929247123026604569646722751549833925392791069697960834155155282879981837835891875144702387663396346084225934826914045127476345748458063993552220022769309846954624900428332151872559565503185982012048508983076522809183144849662028728519430424227921027105378499755438284066150588912568282523231857525610114855181507135474170125153160430073111372655604114174025713500742609601603876117715460880090378186777152053088424448983279011442138852522055336848431655237471379815756676365136577958232105524631787629493105580720943326496392625030121393694621685010914417123568768157670029100859889179750327120741670258905705815244610589713131164535250759103517758764404309841221817957747576731149546483198289242690714235580203110678434171989855247776016845342139000656839827404440436559595451677552628669215085164754317661019260160098490665086243005064265911315637831980536946963163179603645564563484395810649044060561590952565878033220208303420022480205775015693553223286705889808808424919528158860896859769242530478714571694731323372334556907948879688445904907088791873146732858727552083692286888475855311700159663635388473314663646970572446063874191468174956049652854937611834139167008750390862044058412628283183063684843070571410601651911837235909076017941553636432086687406199264052047472073236947835732434614423889084127719965151040146533891429253682488173245245784173410174102694817679573661408831549234209365803377890513936474019076939861178389933230327934015197785037183164151836582966602981004242546687573322088326848136459387411093252001007689333188184542226781428790518265288097730739349582744772091799663042982450790882404634729228132197282175598467229165023828544836112136216089620112649119942786517881555936830711428662773850063462497494372778568012590830003638043707007969097260009194123868042839541908099878282852331222784025004372036854151090485371834932319734123109895276692994305418188533153211858960262665525645365047433829016303029669648393211201532903583868456899964761798775867210889628456889407947169496950535664197075688327831424939163423817816992541200909280806239114113399183178382395033026540650236830799037905886723842105556709842730963983175210879343717441488244675046255007170705972605888750614002614839363239148081287314866446263176129533031510429168912071626288003478601907217211654002940349767355864696422598495632264209351904787612044060194174577092393532769788977616754500440343693043401549696475787641343843756888499250065360447053124917671466666043373375022067902840774408766130048720443294537240008641146490401459662952356345286682379144396320003119962928770110673603099796818710496006092221522547404798013822968764945663161300376497952949985546521754781038822524223699459286971165741732292889954191720680211229488975894063590402233390167559634823964828414550717904277093122658111858850755832792292039583547388062749359676424165882609856753246149234228119427670587704258837826304339040973923463790489843387485342277867944797096424855405504823033076163587587682227953533616041120882078311741006885171181846586336756020278806808029273525258715489156471409446021707777769364670104021043294195067839798559166777559311949130433439826325344481816678804074260796988683120521349245144589426151996133774090653380319952687511616164784452036664027993637980527720296276639675952018223374602343257461458166768113891859317108655905414171557711230885347124139162702096160536387719200371426808653614514723180762615748779217333707557056986275055065263748699780726643904767378333411884663154809099712184889444169928953262052338530490547973330058879559011140314007923868957827166951607765084256091288838100671561156627720808697090394572880733977759368050585407161902761984388615641705063439965536235260934776987185924936352887181922720620628737218667769225669740079967851067361193867760496776834176159796138883309553548502134898620499847608971791341835871117145816993501008458500209322429373153382468523421410288674003296684687821997544241834198910544299531794783786360781729570005868384429802102482986292362292863240303470045364982208515738263184640774778971306548941811733860625168437563128335758626265570075928618363625613860425033157905651019527312119355107218139159659687079344478725377901018120902062326809609424467322967248330681163052122368622688391607640017269320059201217515743466366034884238441004532125987483364019002857091490828941739025977047326248754990023236366589268213913478304452066220663764162025952284168370401403193456592288148484115550598879713017955975107457362781894457988394285198700771613212837027413100137371588720896340968285560109014802978752695343684807803598299924370524176767085388377542231798771695175768169122801965274588943532245346260208412121307343157037834203241388126880743241206299005530513813173535298458642411296140669485571997096162803715551965186488790422073984372307061123513054521068877583545253290188664942247258328157282511983959840877979422037174736042552670036705942663155071009388987527887290865344095177118376900943620133315057443211333533957307112531099809740979430223730072788665026540406924209596417823079970370370305006837463318801774172699104025887589280003131745640440770681707758208545309403293692918721866338590598286681662792926432409811543923536828733623323809639916712700762512842714920796866141390770878795523563825386858346752223565693043321565429730945844419412171262398404480186293414204695541676390819851082176268614680996795857243995541204262566329784375826108062205509441657252870179262667620344539646062693831659600540100127117317558225416142125505769246178585261053553083149158160556807630825207905864231464961192471860731421592133524330863926427635552016119639870910258494505271804592047674769888926319743427577920229731244353343387502618328696401215175543393293447437083901650588111720297690322646807783482461570041499527080531259732691607330796192966051814173411706237466727368254226566094236602398371941060874947555426541431719663888513055181441797662876885984647473324202235992776341166643514960373422355406503486154825470215357492747272175634983730321524795875483412575928170243845571865137163759390587244244632540108914773649135177377649506204372744057554837450944978049201972191652603375059739631138810103982394582727925935794323119691304057694568417068597571493158311439003171829080262430687743857789290600324497132238762407048035999346108535368805030461661814191348749010003741747262399424312487613126397791458572533487802563443676042499016140182659403739621352189455198575271187542111992456314009418221605674932331557175836574552913572855057538489814759464718137618584573674299623520747484347050922387425534328169655089009314257892039548025473447599617054514390717640269373647398331885178116776132441390309568893269737433981048836552285541050839120568227046199345064010537744136256844905223773517315486524708065916655589232041022166769667547503744419822994482481817246836236549228529134255380743426817060834248342569388887359934099732210188073696133778348712833101734306828349816000733816044998174837091793404507710975635488951776245881785096327980452920431836614861072523740629021217826740187569155550228999271684673656596444320576708700572876239835465182177951752255852453804961286131456874255276015488048061577332117713510337610743781089088354894057415367927833978127991612108720269469443627097680760760588248748497744913605316439702057874931732885319679536462149446223928551439561393649590549374708958331019826614073030971545903310966673400224079002180423797643152825875030526246505234165761597157750852681178158612995184098476910225532142685272097221654818705141038834348051478189367976050168857430714318557131952940503124448273840174436337794700985878328981534012458754835524871276449913857978494378918502726654143325131077050051084562519490147971598280243111298795481030520206079268379568924803969926061514372109731028696108630108593208952540344141584359106147432248515346078709578681656015012387811278874989414503210606356200427200770854679715646155185642606346903704129812978181748454443278124808262804779657388975728229963439199389875181773833510745832099222714177364091665898900853825087082132090737715460967570482129490441958008310004115343251109252797121395898162798606996826672432785513550927270550854344563914881339989244109614623611882752861498046034864342216245535797312738186351111589292021748743163393154451420975728407600712969798688301703597297057015580994416673981735923039892367509030998467032637156181886512519079614813260904783803630450899468695685072450565406277338024456033594108794367340240822958274448355271141617142143799871945480394936386175896317622328596883204149672946022019903053211296568397576676650429544577430480210962793670091511802588585163461404839983240175334799959604171958393530840536926936026415915111937996896018911731350202334107563984756588381592864181360226494168473064566970619079351458569487646858824586321663977581474587029888139721333466489334158492279298801700032404971356698693665881290717233105031315777238691378213683577304149313974358559189797571758006646688127106276552844972458681123941018043423992901973843950133085714091952630922990936865267878419324820881570423156418280581201002877608077462357790784925473601025073074370385947843122859789547341464009043034580383444761912224204533361359148268326795973777941372402015012914219229991193352743813460279772496482222894178203276143439849050812489287077799912772187936822378129929855382079412064838255197451607505331159644299650327823835200507143133578958944737490780192368374241575044464340755186382924838297299702401326193766359401118256725049063083911547667861116588436568513418519403339357651271634938034541185059166002974513972042338403532946351268078178076628021826988243386106240259079432940282098124412743256468692742118561396905533631896074473631664191063144102748129426692893632544104142386726457886879076154185724499132609209831368763297632640140916809511434342670634438817471807542095781555374973200384325309226793212610920189616781885802704072402215710010033321214522087705310255718651206668414252334987284976033426311093996755576186759302180018457182491675732475237831619662616215485510259324946907021779134170103828449648728388597098224638949594283972178303172309245544460606804804869067617263917665415765269490633819438629766388548287180559908607500995325718510080113205318770813194253328446580661019048329958120945955797315761222656640656443025542433514273237908017516379856359339925554587888667821826660479164538774877446222081509270525490494220489209851447685988938946285142189575369207832299551188707293542648302053398085747698772409848395753273885344258853750638262020451598048055378745319940650275348671691213769599795266180036855651100413115397344437985337848275825699052513864021379485048948116240248751553673241942231826528625796624074227548407987517543462704374285320735842772386636511192848419888629845262704057610837124551969029424866645214930724761619969859267106778687033112268337655851967682169143780219165116081554224065459470517088656202072998935967310280931279025389642891048445372184567282948524397430309408809970505759894528694400340841577864232393882509686059219007440040329218150783377237626615994477397582616067303646329640765468969739154437653054205780704113861997679764602014506984559493337725694407843837643502073956360702447395420671411226694010623659857321011978637643813637651962291752351356921481293990024694449480242762164414174779672248319701478297567033954411060404954499275780734512843495749098989769002048328514224323971033700972877720983818290555506481765962058888385658776682297755303353789322941502273122779791036569779367889528386409172438381687805862052264155631977231320383250023794157500275770048700788193643402335274181216928934787251638428731272349366387057281788253721683292105403866221405484833937261688276166103444543960479584490096873787903997358679906297043366266438633752917308957298201071733779152938345370665882604507505225999783803969925333657424241404114370658969732351934171197135348617727664711711241225892824952377474446391211831903219452983014170047839999189080489793481999261707735098395686764733390332432709550852024150516006994462416100784115894397489243229096705542908411500957171168518664914038569510204716792371019218581748011830366260793208787986094282098299250707026377964917504914274953216397446028655047259923675403298345895077294693386138188144352010213710086517892303562197455285642631814246030272585906543602694819927066710077723109031376079308986557379159127328295852588047197677530989135386060053525014779259170686862034879943314420911995479195028662441599115146438449677435252679989296706650588490144967915813337301482323880736216747704782418191511091623247674544729170575733621599902950859294486366990492365498016849519738865902137684661592652785615759344786599998210713191342885665378723466500736183050127812881963872863870615453969396274886713331077828894532086346342813331624965350325694948556439126094116872088330450129603309310144633576659049744533114325648248443064983877719544841730222188964877138508835054423498568685332570263091130687894042849380996040875690129469324955882832969446148445898326486440619826010194296709449643283796013350764682992843609207397688466928288556219243069278933180570339525221906868937548702618057574133003611360166731308979802316087903651546884135656888416020661067777706417298398469315999997659552520737297663265875676422141399192546713637355003770616394286723122270548449084101849340076183892099379040226077514178954455711057832391269574623257377663344252394076405206550484457563311728345966681938812638300407114096976486654245536784462067691857915791256295876567836132197544464802083688590843258303580214573260115721332314119476324851014015767925257713250843585043414942658844616653267842804816709634085289078095494680296619061484887673301434805917196146953381371719658752445958289485589850666588040939258161249770162935546170010000789699302612088608222539154396336070495252065127349371170424478429775843321964203444347864656088713341735709614710505722537950905363269838021963716655393888776567894763149652734449254843584217541678687386993998195465799876772634524976268514823792637007767498411088912291974182980844771112383122545791640892921131808621719628507444450557073325296263022858117281343948698104870790279701361480980857182086862669371403388153364893590156468113589988036329183320695664695020189672005768813081108344410970099397425634246268900304479805250394167070249673253288286406255059002267593029483664821378447627998775082089910442309120769543913757822661755158472839194214591517601827019930933338760319912491395548862010924090949366862702773407343160804330000422074508283148085747673824594239632185534339641852488166495255234840517361050292247465236316277929709052988261826889819005902184085643940922377733640105684778432866558306533448909737196594815098134804379967449524531235555896912020591213496573736146715449771125445485440314247181830802229726031554567533966229041364384689626888210407807784620040120964446673188289543842833972631220401750980066218270619947940318750399871220959250305634914695696868128193257760008652526923154192514601362678876171763159442884204380978279107405365378521650085322318369155192029853269549664497830978019311986008664758732179151785057195797680659675959526148695882840264103547252901817998389349777992438220994130133238901605953792460230500805446210192238712689852584050332838900433050117755176255035844190591903473070986401182003357449157827522152358868713992942566833614591443390484577245227750067057153593974098564796278630961523555693451724268859346798787333833112003453187773352156257660760083056701285824549047494866467051150388553270073378564076957018145556672546763681733956266774218252015422964116872147193827241812685656470507714326096962294683096956678074301004052940958114767582840668015383988527914953370249306072834070323403525329810270272583461098193019361063664672724696513005532947214147598240366316691360954172532377579048275721773823695064699050710860160295936319489396982931229483057912142981953862840681448012715502616029607879599134227469560077464267198501216069958958981246771632806640577053646202236352400550598311437974702926955890901247849053786743230430546077116704528600314031690550825137581661412703909966723505557789848179002679113918126902572266837071719254837457119983262151709217336621685915152672598457890557533142334523838039762046363024941869298291915885714808391584692162318817458028303381256762168277170801214582372684953507543529085076517575760753417094001170784734089264027940766290220117969071722032164697747683331851953102842070186309098888420289605532990841241732972281069603587282665653168039284463937095150960368053991933385445161036379826644880422912267053061543811984569246730753096857151402651573676622227592804632180238691275633299122170293466697870066658774815182767384899532500094636079819385649703843403873943468792339356668648916387129663182232031599121202255812829812082846732033053764845790851626045959470564678164504787628230323714200309430582188280036215414770166505880430674453460367107866331741804975614049888693286143028684139884942223662324051354141206241705582165437111429295154423455563169295430553500225290136839772870583336799295666515608793653368180999511194393796540341511766773273967414396913617568783139573505586488585843425816224530169835106050801935112832147094927102742560345758179475790228149513975697502096970054479480210772770977252166523481381656670244929313850700793494111563609084078486227294971658598006767768375480029469620022702879661378739803479853159979985070346646232762493564796637161721492839225162971893579392950587557266048750987562654833107334073902859405814788612669686565252498781670026971070575398712680346790132215474465354376493277881083417593576905636433703191067911155327902302780094076903994883631782359770802902756282951069687797539332037987601003240478394855875214557711159506272177125419067774360098851221467743445069557267004722606257637718597230985675970615979606740208694083058823654934218939790002780970868118235792633041210071598254558425174944056944695504711968743935259224673032984595182963722587387008404663058946704334036541957549659321332148465299041794935437551828679442327967451226296735683003997881440500547346557541362809481219389854190778277406881018971506958197658046031048064429155239064497368480628211152745473998046468021922106793842848419197480459867312070426056296304750411586799443588765774195160075775819301995988080570480871532110974206582406691103539894863989106179806893987548374838935780410734693874536377820910405195402083469577616787528053047732759085830700453937062064018191171379712335283444847236442353721529083944052796265381738041683205477578119395516623729884207693423082159266482552493670569792863048712993330350495790448182295100101340153394739665195182774240023572093453718739042468662289517489333518559921235216679966228187800705754807311334565572251629904867386993486569475907333553673555442713042221417287780390091834686506380965791352269389495636045197106440669556336866544679031625639065973907837065367547170659189984944516390368263221368280873183761631979712663825324179341639423752823313770604273252418045663012668872515367224943531366089312170027976393173107806793663797386227970946342483721527033259114856473824531500838993091228638503288616338628015333949049345023086817417481699300397473074796891578538737105520850698644520273805650968097016245241120795895481675510062281025391175748424675529034150092357226847135659040451025114072027559821548187926388330373039179060254417247481598684555862275130001013758625212570058746341948008101576357913383849714559455047208536782363584940067782899984128832283058445025901337119141828024098508310818079005456366249249924833185874315707158829964028257761263239571364465275122887825998306171039571442358095081067827137131725276713441484948604778595361208478806216511811508446240571100596616705165236580034736774169449075371727340649672280388363856743522357949309974001876015619151976084287076560825613010071869312534026104021885890567913072128101357058998043464399460061013281438774616771268873285163375517566560871595119634090771558010784279580154341767333737720962964007982286173974900809457186706401512650428246080483923485381180240422035609496742126801491811121581535775035579538362877515103371366120817433347753492135104259528719255241921758699324776910534467393537525946725277798815624541576858292201341267145473726871962565561816219032969733408809091894048230102519842151480182171316152072150064876267849457893992826609551910269041086874590265250695118971737223852687383009781447511430705220479293664276099377347265052774367529587846260318296896729074027321132910405699670973697243866857534386811220026773255659251013852415463512388975144061738211316244913497388780938498331564529113093065660335294477196734801413976530377530628093873120176364109919842632475283421423378238859201176605038082325318776207851632164219797980268964895190435891804505217381605438401032960322500871174681437630202542976744996954161825858054623762922527755195360191054528065688258069221356326407075275600746280431972058688970019274684800173118603575683180449307460264221227099402681168010305835623176401461665597370490822315155703297042385032306508741202800285071098548462738429058070328701033869142603814689543073966580586312104836556082198148347106728854078314914158099367060857563803520356123521949358826899733993396008266405904888707251799922878602286688103127155470734454039631751298122218979816482304830883499140893876358737659832779581197484395138886439335469159486598531864224826940205454395309840988466241582139472246119082632538532712610895050925406358935582601312427241646608809443425792254258639298576554781871449793341245159580938996526807633044888741745608161206041745966498752235743490983251003776140281424637009202012333718784361186016706921623586720234009518179680863928222674595286870557189581106047555505979049458823016546623804123813173382641373461657674585843867547073385982868028043355494890040464304945580562629028452807914831436513430528428191444880084795531998485544867636374733429704787647320791854197175047830331702500351366903085262924630174379538706248378118216554770331031245660371530043970483652316794466139239042176140688217365858927898528383204803793906625232774800372359731132177534172875525522922849710215169949872037371890413870056638365655883743485499714458339740543527638901848274183998974874457984529229779859627297601333798902998200875163452978728891141904797167616323058203239391338618197810768375735371082638177926167003408994040816505641106978966269439640213346350839806736691068522400012265600537700010466280945445331583481381096259222152088577381930534838004700465772824992587212486439878987833787660948015608311208113883587137161656581859085801457596737839271847888581665198795491982987469243456812497653502543451979238893305143469100398337396270213837642285604841623949408644460917665258720504203613037081961268800862792930581479900447697851390385151937970676830721579793903342279950258255771572345583923320455223993109567991314521467257804240344855692830346740413861457039143505558965596893154659846480793579232354544545094781719829277965060551909162688547946500333315976064133247986743410903931577308900901014893211889156465163010595371765242906507537939828077095291675097036890390160523117330659868702469485092466395719526791094920223414558742765294184626563976148635136375296191323123704789344995837165179135045167322853579354692809076782651445600131380906493707964579550549563968296831304932762999207910850137911628903332853937311390125284994891869519652723734686865484390933989404363428255078786387277670374432777172002135387884490879139325346149041127112624895322228360370036485941144004295350127420093174964744755759255145761467090342401743912977308164606528003516188706715170784068079354533533254047716760431439867271419676313452702540264792820484793653183284632166196360595718181199412596682910192138904379509514915756350491044079746260436583510776637580940206586765267793533229423501272185750448903522276184990917202641949671884039870003987837637470714444853318194816610256386724569716359737452692524038025586515729713862743136658766710359497740018110241280922606076817006311918616389330678976754856165941541660545842728141993873233235691028954189825802281580049435712762848941877844481442031453561408343417656376667380116822625473486896790636569391297309934623173680446768906065967901980018342109307533995114508902449328994759980924623737672432059348973294971200828444530665494345315686786374512765371949219992660202253348801587874520554887243309054559169118576121526222073769032981386653262973771701225606363399665655109070823252930263401916097406585679418461776265774567351453445402659602415779131494347547468104080588215274396074374487729008018733746321056215215851618081127147887143840759513884017546048782008635788588690913660208166237787349002626211594496242575623502880822162501682733871687291193424173926050466037425418331205682508365436971989354607692784340187591838099223637853963627909255092843290886393736463226661885043797502234491507879955300890335145365653877552580333685610776559076901284204058463451848723910386911814053809677335984671351975107954114871066256677190508670659901123343779063118629308556568231510983764159598673771275188530552603230553503220981966018023216715560552869703511335026932580712047905089164871387701186908554045815597052124049653576577437591295187766385289862096913062451417897511725854913334510036922830024052344522949579320492805979804160324522929579199659982484238867957944289630185178690582664447998188383112040118869378639961971739967689347108708537384174224012684166868113587410499505024828022374025543314210933584007597346925059997553199733896844097599244747325669867065807269321650544697354742479789292622742366122238165137153310395142189036389063395257819238603096067123797693954728319975396647361300983402764151974023179124577304359399615180412573515984771644831590394645726388270158249971711678918983307583573390147272045435226341375774923663273549641900708549503719129510011227248728242048958825269184969389736564150479564959054954944823276073416576596544253904645331937688126819520247126678714236395753143882732545634995121444149727080268685383558553654345308168983861559392149626958176521853084537286960427737743316239481943256760268274771765869145752830140784686865721835364734916217358927806955846390249738551048157413903509724321078467466582826701389232672266180106805225323169380575550780440122111015548185923927177684622132966453954020476112295133185903565956929933742294685176891852662306713759064515266398729575176803764079071213486001838691582368346871214085626397423542158726110885341766859937872580121625084362973164050918357267070283856585413692904291467449719718081571425655665744292805145636713661688851701065645025301946897344536684504113017719152392957038803292845697780155738370168200933536072178944770437728182042543413353332264144724426305035876744841000913952833189814124965144368860935081337155854725045242920939081259844139697035162402106347399697336703761165683172143462983013014843040212441519440812322580814322629992708665320535276213116603875774055522522326857045602495299647262838526102815050425569032722408903726211073583905316727655951050341673661151331596040931953364495832755594711434456934361657796332291388360455715701157066605627742226959673836918284348351783976893791272771268700622876501017644111042808132366814196849702913821286970281746531717907500067955063871284948376232616936620662244618157018990575936660960092846791149997006434014923296267140842936030212657120624129815213663616224259962168382946246658022679119495773679505698837340174173437982253342668389883800882567662010203916032579635241273820597406028680057870356468891599001766277139469614805852706413306133471333768543364639634481369936263402426131620237355127760253208669109005897948335692020544896785516370366588847377172193307747723091194650896501193394069480066491317627609804773622043681933216533505262534875023313964596849694193014405072961082816421752999286717769931515201097561413145148124082179747572395320547862933320726880146176572975305019079836114180360804956348575367819289355131836366971228994193694276133159746611604231554843271602843708359611386592751260159699965726277573021663758504433495812397406765635950365117076792866636314434897518444280234824425787286896742960299023711053109041168839048145446148680599047165539017236383817775948995511493917715241032970127536173895952311375560533911972821158057450993146729017234018792431330035227718370227397450868661546814674022227710388035826302022757986856692025189375279760577512793386317857567507089521617142405201684078535656541563194185398676795636779017002695498402909943519124188258200141543778215171203989013797181431133216516813104356726098458382691329776747257149526149969668512925553799407480119493100968211528924484951224300712408130378946025126293173474648312947916317556953905002547069870182235866250708752083498754106895012571567958524436457490549390457662888641869103342025533889804269932254530738642978854169311554204899938222171242128791085533900909918771285145497741483432482514390474256708689481670683232659036386152536257353626212543848495812611481466013571164647623162620138826133999011231246789105386207616442378965134872666909294189665470442553619974699795271863093445316174766786818144702117454944719694212165673307795650718393042577506438597119613597852583903450968493810851148766591819056594068781153197369189359069077329081561172881934224152604447568357859125479379041582271283046500618426101441899970929089783014637117031801590294684322909534850220361903038107855166483259231490766448783315612697946632352555641604988477145825126359868502522676253917233760704483526960958884462296350683540230337099419421874496549177946515614594035537339950439942000926462405321683816544914369615131398792016068271537744684830037189127178479846779007550855910958733103611916987757754482335495371140567566722124808740636378570793169070639180538369421482959805316201474505261194426179899136595382800837364593456956588721405175593756053143839899262783187856106211833903214911312569884463138722523051169491105859256818387429212044001415885765011955935246201423602348360301942620901467579347697800553786891822509725940373178593631055982879282041977315491942105710749192186603439438071313020265979677070904151985695929228690612966131799364068330294028159717250878352474960783322477025285152878316616373398325641666657311089675091574014669189427012646898940614824527349955005340541816623472367999620921620831754986257787195813851880406583333697783951395115405067520027591641171968112320447723661313029723288977480748014456719899847762594977582749264297412405902198760243894666547413636795220221120571680760002891260377432937515069140570998313902139959364403918802177040035634201269023090016261038866451524685898181752717664442483223894808299317590315820383418475027913192660882912273486974416280825498270543411815032652355791190154342683208969685723569282509952077025803947082877103478738483453823689970891477662187242146763903090965402554668862928585201391187312786929502898687952284404129113323748250814201595684414011231807278983726462234723772854343907706306316410126510741720059913162524788058825305675817263487894440952230469459454111334876610026269430245873574107439083233600731270327275348518036826223236024102277936813683221593607920753797812656730566184698977071657048025019577416485904917365441475436647008877864549241952983121237584363736021397875130342496242964740148917154680246800291288282549958353207672279473160196372000137570955815895477905243516281917678478328018835792337770193683368606818585022063062689725053508267190959911532171093166912231095082646993880868935828887522374906223237790204069104799801385032453123539216946640640574548409406341283998018604275472328042588751511966672876779177197269634956500861253716687103416795887025038292713665423353853891875655648288537662074037079592538561244036794818772096945812973058887570018318165376786261630836288523298456307385033269550579866350766272028973469221993767095132094716118452531649241325572607528510905877621079424479931056555135090725077074698459132218334520176363250441245080159290329570208689347477785242441645027788567145133091331812656546433814858181538735572480443531695679298188862962888867863326162729658846654124280593478019200008439064268866013040343865366919008199099925311340027848757519698777527895475554596462804809773111516683932647781877523139927598774467928996760805758155106287182687871907746544186098460424784241890946720644010815606566395979468136031179495422151334888062118873493105103182297749442969770645068335021753829509205772803623140733306342469434761280357599003069294311742684208654612519965620996551470450796878669334333294415794016058509444524319385775505007795482677947451445823317794284381043386314827569329675838729418343437918922766921134393905834933891835905100687865968821693253223095001463219312277186934022108235966558469400844145872054693241573822091130354980581296490279655108062310335543501707122324384756487697035626609368238623130931055333847813480430758190011893906230713637989542700546864798075238098064236549584328415674722582541941038313814126280463086606835810581339410033063647375617683161428820424550570590000340919333700424388134799815638402893510642869028054329889668929030013024053867514437812288737052318615248579078000063646197922300542826211001241503641958493856822156183094429649675529936120911692435917032557633504161239359679928888535226666957373616846187396614927632844493918789973040070989738999332880359276596180967214998850415858389879322669581025801117202671763111047794846319881504822036410121436393366947990389656156919761834825390370124334885093090875185519623889913086977096743907069313753138088283247178285293981215157872432904964108138390960231673519692031548659228711309052107702194676874510392216311192594486297629922545349780437898771719002309152406068797590718265288238339175797294077900156211400362856467358343956449344136055841516055355347874637137715610719830972312570981933488565832752344928394755146241928293303437003362923804845587237109208193368864682368202505549913255849412420836735692857403246044618961508209119630130692793834800823233982218159297857999246584858332668455682977037579448847692171074328248351135904063683110827315141599737270863799190343305256288281739312634818581434711427623595769240320136926999056526992578783433009954581709948994791448017795823277483904097294233879801497481493119418903457473445532005859646536678766943521423338708774325121371488070566760660575915511451581964704418784738478900977351495361290658654312430917200649275217176579174579515051996655253010947456934127627235074701090486846284897150934288198451998445562381840016007373057220219188095256917319300110686493104236103071320632471341768762573007582970155429666578432640856925682646684453206832564290186861142501671785677754896020541900629728155247763696477029768526537032340685606572059051482986339728569663897885312351244298368254199789372066861515844565840855854303929367481111633916903314825359651340030162196439570770065071694698846486493586492539109268063319782758341986160233609333872595898884689893977214848087396818566230053826149293764708010880019269976806280602877123302325027918777610170462270291575755492338230760987258348723621650769128911377738254168713799161063089280408885299582968495470410987723054170846750685695599676528784266323926422184956624733506224209978748773693361953102207314623718071199597843622670753586001280769303457470686464304881819124044582033063689243758761438515890786284230296685148251232623488108979962632781638434175277460486485643089552845665959222133164662241813477675626436028416789239288472499287179556289813814353850929941606922848474873528718667617739993948932814266642954163153624948017910464258707194117459579644649021030668449740133946758978598766107369010740649903596379854402551820337797215082927373901465773689163120095881481236577852299133592369181195970044427677325999456758912588727720644923681346369379828353187987482563935162227645416084993860410456681719720106087019548767081054521399073139556600982701468414592067069211785444256302092869785417345001530540258297658009560503885859041669108814765137105786222059784153870454115829926303507610763700188829350724037542767484320177448564459396091753390526125188099383605742493935920608087914268862308960551943775970827741814306294714211228476885361629168335722885967683567774563183621967344196987786172706375781454646481812542656012384949098082057370601526171761750381994517804079844747052916168914374498812544768327146844626160222367368181879502433084179410162956541809845692348336319285517019873680417309629609702478199477158192088309987691384093048898317764062609833237093615320119130515974663090121726048168083427385350051729843183741515348790746289192055109357100255227412288490191245452804599489164842880230534636156571084695577983725032748906883710078318851319869084147356297365486292800488122987050220365604088523441859985875880424030619087832728506216656227369176994679825415510485288975055380864408614288601864155452221654397772191120836577081727749773951692300842183761605787678613253713892531105440354093783948032167351884008204237965515289558208791973735177222877660469648170394465312351297305974024788935331759409141566603135940482858464034957093355035802767053827794640981255454841200627651008977071289062131495161106709185217847620292535217281187109358411394680883510292376312851539225096917697139192234664274435961591169097770172368125686855901967878026212976090414258245665388385800753685578912042073237510824243251007466446367647709482619102647861933959921943964268818418633363364827791992044567745008592477404410126800430685851486002328183228517813105839666569721743645426925547306083499614700819866226615472392840198773417632199174857134340549246648039985127674950495004362043389265566890398357697154075702136166824150547840781909023723969637262452604014010926269356197439642779424488578790464408033238412821018369460023321777051495596741970254761878002963310085017021739654407855680486919474070665281387204453816884580486066221435420547310874749816204781199077669428780980138471297588913721833711511907869070685578053908914426245790407654481219332417687407983695166005938002178713475779861361939004893277174312051314669710297718358505211550746946552753672914534300991664574007290018625391298596116314789547912481604910674458120228903872175332384388107405488007629359072272101909720963785186265318691246898914186000861351775981536782530034070443582385219116348585624849020168377843815385455053043775131654144003139188413410289312739362184199046974660529653862625874717161529794232125887804022435287969276056164459522222941385917039485666271063909393518346949728001428338320889089827285942233825857000045867231720819652246745987780712547887184226333166161775849610606335545790212306548881783321117337097740540775178996731660917676967849055470324517960068269823888978158700796045735274385206444464452803502036956498553113562746981245752750242534382981368408879297524620870674576680754167551723031108759188638929443163535468225334315503143932769969984629987715441917964117648990565583520840760102104406305348507864823437691507163856753250973986484080196295548997074527365678988124896188090828004324972270247325085366608995586262792887122229953404300334181432485616095856887539473498885194602343834367064631598528809457365273396051624389587421468801680688695622720745520735859899998630925284288967423969382470198398643759397030184098849319749244953952512589929390494139145551026362548044114018422393258169617459894221592211616691399424926261410583119339522247282730662170020992216830435820627550555014856724831015826783413402029823656488170808065149450005304339533818592902859774334590335671957718871244617305206070233609422969236575300788948499451805877818683188973121450142405949492881369978604425979822435381898983936237665035275611778394068293329262533284882146055858937556989003369324014231176259036388074561158376649465619224958326045016010691261165333927576802699133678031131434937051946288837004836238909407294986647973441070222784042610241859163528285159595807619305460333325344704642479447369702808561166056038880411628180522274107718210955039281427201333944467966411260354995802499542367638078772447600837812749576557610666044384903034403726712315920413279257288190831374262115485391128783669107968037895641579963085920474963396087430789431121319467599304605870373279104696450104969447213895564303739377452639712437315198514899767741429672980267448167599410081913580586747556414213349584033939101019279422862274133962573580483975812571930761638847822992150707494184693663917962118768396443496984222004160747246681989607579656150991804197058278745567064498063478705858843106576892694261194698083868636054844322557103900197779730921134988842603900070244963394112793457631599583482990231345667992042958218674680823138423181620226856776030742954726188161353685199836066022855054402236750941969108088962179808396144085188159522568115473012415235866898271832745339366589367791559028292981010616512533769547256297496857565798139145823255849333531652984420820765811932987995764571784104604797255157621850314592282894320786848195751476206537219329320609055691264964030713658584491350152597704274582168694429457199156840352181380733315850801166406022321806664033025448282195018258237547455576788654687787901943689425247618523904733399447505593502312971213323259953547640343006760008082305909941481150012376897361426892283332519141222431160008545642230483659454445776806195210503116877828998518299254847665638807472139758239726854382867618761592626929108926207135123909095626180246754813929157289118538013976430520284192637848895154287493704671576628172953500539410565578617010405958902805568333625542008797929458496518930418177633490130296786416150278594228793204581412243932910297143116691230027762714377451243596442234008362972969055866856431174477778533838990803439838164282407288278523523013221019327833660573856550031757661654624335884526268381964001705459125893877270990686644490979444853329844934183585666173781046024837170597041298157817228220154240374835899667720060469150504814082978624449585385148559682588249905836393736620483463442678375653607014140965914800557736795155968490406678863688652263258891217244793219965398197833309014818762393841014609021946411375888287155962344586563364162381864684036305308034541175658737884487434574785808455934898745776473867884953550400840742854284467030880859493498100165912183876980409487700583541723714248475101822456969636129740890524151539217777504484049530928442873578429990907216964736484366714213144975740120529846092884133090811614307126463522790074750538384857415590825517473534063633844181254640500492644068537224821333572613475301435339619826710233749337091386005699421924667829595171359635514960537827457146835578409115027428085434326375886244915288021029959504260625712783815830012031025975737043523957167529017805678941487025735384432402020228365937131481509119676769939133316099423076384397336082225225865390903765097274596450441961537161119037947111815582575466676798096016573376813400261236261496074172021260837535020507846287553483868560192820526351620597404118194646886002576935222354890156890741641241414518226191868938145545211742904149461298452513908827034923773242242438509028922468721742911002818205977784566668466544198949075615131520535528709807399074740377809752440346223107948010563628139033548367079199994352410174183764323934765395732930283469311295541086268582862199013782145130450246416606796318085150753853634319735663698216293582325286436416783851331611776087785648106859115191053535942507545388256960419113514460770124298162166844486848893391302349505937296020478229716864731935421979061697823027359258238372490977896626758086592010513852028304420574896897722733215301783760088737947803980318664504858861187585155595504923637560070222698683448978583524821849308909718018011000611981187959672161654693145036478671614867890277322090447771048963543588516593373371521190014523682716542310384906519609986830204096114153828100740205740546271052004169395741728830187236444327408121813514909454254058975819413946788673847628589922605569148866345675624931004253976715173107889060092441107611650160114450779383638806443869749819707631099784112355447877561630679621279237701445081176328122119478070287398817329178238669348525556121770055331002028863035827231056850790277860099454619806596656023825568587484644995496216302918797228607905391745359811339524305233554495611018864546392459778967081435321639843098029407406337540151989770575709940665912616532259660987923030791096225427595935824172652298031029332202851847382896327437316233985280469001748724294538656797627746967993189772811928856193290586903277913519001915864702567239330788710997806106335958747368800628176618609977436393318902775529659849038550356589060024698056342923412295050100440557116253830555730975510323411048459860572374566518303530571782549349249920336999037341948887030531368503800789159263264992651075598516656742534551867037559770338083761239386775479830029840875522256431472799560416348634567428877812831936721187988536452220216295680214806401805277879680990625028804685107340050213131584467811906050093834215122486261246970606246682591543148546245335153269746827226642590353381029270544483255502425433243415690316336987180739620656666001154148106517242353159064845010356641813926035927614868818654560943685815429784778242105039016373096439060244399557271090624985532317076130004284447923831933626169033253773364411888207971213638006881139691295540161480371860307791296395683340248117892466248933019918825121408285496128849418553192038116846851320835195788635645048436913179655959087471733262489292822728425856377273069685790380142876570106814339917467378269686587128771483085506389151178049889885490287708088678765881582068662603833715377131821477506753634159364768673362438243612947191747727897275160663002485301654426081867353197309110734534299537845314423531610259566269303846354490824873368799530473317448216506823773031845056719445262462537428628122785440389839634038390272752064787608019561379325290589260435922904482260315639983267357872709331195279396911653680338787569634497044230894896887143190687393066951819457113846962518765513759706255188539207498672206919914647235257925843976787582251754252962178564822288285092096973821610993185373680205331162886464984910886741258626538961764953926881715394191556773858589389381453914842573886830555229398441280603268047553583001522954492132220517768832681274581655933444813535872360879274277614486565245411201690072416073153712805665749089980293863105678800836160807994350170222806690167036283317981582322230782195627186320011770500303906080317398013830775360494511867055633546899771752610739432022255678630229748923575810263552580819399822742366111101115843251243705255112946913378226531894433990665114321181503047603820017955232101345153906240314652345452322315442253624352594133314558717228852771698086051066254492656125704077388132300753041383589676612389618232532109669823283005517351341811245769106513055433207213566474652742395551492141351398826887379249811286120224577568610787066315655842640125803376463541859351456059548118106320473744552082080993775339590790120033604032317701473205905963906034724134039416123485184877424022489781569689569118216861904125994941423359176136624655237701869349557178956865618013209848483959929681381114271302725693659254168102395919051368535983825701445552260919814703899966910812287294439030404797792393690742420409474728239274033056087212155283186880594070963729784516509381859419572464634638484771960978900047558119502685329120206160755984397078141900536374043811149001109602403970547228716874382112956436113245036359013330566954000552205521198878876734369823394466256029047640458849479570686478403880362494968932230365983195649652477077952140456991847105818380237137614962081534415304128967999280638837699364602046598080928666360756709555946486659079630348534625882831962176166169022175972839965164306276251084762863284470816711163479541149167024763844058063871276300747042521636864183958468411841395379387376194578763137132614481483498307789542651689509794311639996862476730572716201562378775516186446554416327312025124794168945490568193774216817228245821176467629065568006139433982949805078180547301119686373876477183835728040954886704860087291806396991766082341119402388577441808214422418626777023497201329520800311312876195413366181042147950101383548120499076997472279965498166465897791636630337180847765778322685239368088969770414157183394731653158576903723074153457425071580307781211193981745662224696272961366300279040440299946613922520726413502162006018719279490359894634970967310717259417606854801804266899419491475108882059493580860496410490264508685240816213283422072290798980780783457398351060093057616891264438260277128181777908821716942836338086218939575384231153190543664558400427076945703827538941850832394000776732263417579466219261947335873045937613078003673709782852649368816723183471796702944533825225253134526631606871419677389656753454961480946586249832151623159549152698942702125288766948408984298212878002125483017806474610222203911056295988854903033124054167317333245562339986146624317524946280262229106748095490531891876703629113153465287558068632027148593874036275430433622923099310246523954760408873796646471804751750814182884213109601600507166818734680918337389812220843393190458293627554774306278407379070236907156437510568867865131322157691107980454018791221692859287923797949007944595006973372556477020755835434719372780788651078506466565030976214291276766106419640092186097129720863007939001467750196873850506708502558644364394914260734344931664269118653808935071465401684030757512176567736134848903800886024491938402841291905419303381293274804244997015381864376519800168407858571332389748925431949274782655394623560135220851284034036349994671393572301000786194202063517443037378725217636929530801243262088357425997457542354784941562512323101176820390553566459874928008552569833441760510977783060678433535458549599599563704791456447053520599276376773906733059627230422295075285190858696956026022008579235411795069720930178945567176662851734450471607167503031650636702565009659411997470415757981495422506649680184161558820118254744827848279216744020762143497199932888331534199575420330967155473890905108575454866989725376222717978836352364543913922125659872335042090765588916828817079191519465890346264989694345964558932192447139870146203690613245060409818143686281794486466741300384782407190540902308517755207519556967159757980508548959782534126713959824933196691365937435286908636932006079205552367110493197548258771916795962529625068223119978197520157429879646020013532574723936679955439080802399376435216347396630551407602034871573649755139826236414077967824791546958325846972532873030439280292628448539785265300320407167382397761726742941945945148194556985726908196026520559497497674420735264867391564742185090301477918678750024286967649802816571094392890031837546685580958211727297856955634232776683215314419731723107698291210401591174297976141671619987381563389224426538223369864425179763290096716571047487185072122173461855960303312908620192924417852586966432789796058761545936777244863056546947421220206816169396382355070537338610369343837171747578091665212427711491058970070331068561586178354358586684636162158417237350792272162004246815556576690130345539170325301068898198616445158474020505311739012154521223529230908393013157534341449718497391759329864803136550822070499553842450150978197255014442004340436146906891226943768088285996712915634174653508764977003568403054282166578343025568224342856956770060429765639680394564250540118127369115717992137779851559500237495369747905538087358034403566132643512051308696239716394059670414175751117540863861500265547827676060978943016700670049602853337418287228933191001699216723190405532277055736892583346038098308130164055554369501232958663341783796054574109768122227321401709843582948886862339460046850308242293708775186666488378656528040357260388035539636616195941287886272324406324731318322105085618939792681152200458067600915210111828625198895161828626295264573018478710947376481164426046676534205413689493529854661672205435388673036451830558441259508532364231350721841151842858213948319560636023352291972410269206767694766607738045647310938407743507661904878946439125084140768379785379831799490976500923626405856594475494863300609312200380093401849383422910434396522298343536848086506682774038009070701308687961548139769084267788341358168104151881980462863668062708611554432020851812159009498982979763367291062888529766082240908851553481276822036110841374294547738391143985745494127423130669925648223234008612121397805651824852685850598347676378335653921614485102897527893608350195593941652866396590060531894138378985226750428132948277555090631847500914125671103511010845838145131433121954471280035464149271565941359963281421323384601469197040610379044483140671196639915803783318499783680295530806656941793406150494489710458003192558139318854713154591925310170229912217827456613075732315678761599172312424959372723875616351001081823508677339347056146276584028010344011392732209494403876888832424231403024646678876312126657062034093368830547499825268220690615327739723591001278577687428786734056744028578452264456389453745102472321359022836379704952125244814212331105285067440619901667995981160332317662922886985714378101998533308488383509994641265577709761120255404855665748225199323530245724157574578815156592686803649911852617439326718395602297528658180603708665272987977789465044111170034458662927665618508966934031921610029972664359738905904594519621117418298505893948937248887834531487620345096484856087712742476119216492691035773316848909738536213444582145454099358836310695848160752466297141877957945105954750333080845298745007770437879428771273117723884668357789976823661581506625260390025755659924545154969437655344906790945901551759267750067679094934678829505582678984697987851153834752918507115756203048189777116992202445103993956561960075755158410312609549723592884698952084294214778310419440504291762780323664479112109972855697949734304909881679015713767677124881990677856510297569363251235019444034280594224983339309112109091085847969122931494348383456213763032950834415167134184191201352141584052055011787081803145789945855909372395905751843611496135182941582043314090017118743384850629648529645100930643003940108263436693424544061019762460155103059551011580735185141716436954536397189825787456664903324241249048162568052137818462884099451504962560012974696183778265903026053723737513009566278620576157217428262798715527198232429179776972630254740838726262298078851283300045388386304479171479285540479720135061913358005361399671201214429239922606181446678062201082965408789289734839772375400682697374596973260912844824867989283825403912171599547444602887789562549964412064924273164844135686937032241161378323290808880591178873089276558449671289393328677156433480377473157928000416986740045416208178434553340477735015129027472474716186081679676540394190087509798004432991221888472846762538742246235064196341682280051691240963925821246199242508990068934005279572303817725795351377682317978364805018731674233662403384549075999252100023210394238647100481250607783115725059420020752240731333604818661595687886873639034196973771078557050981053293759442625344683081676143491048018990512424091255614232012520954409608266900315436968632756781939337464920577771455805059269766130644071034166503385655904684266265439475202637821204891057426595980166231002655200713254285941888496293113851571309633640779951687096137124097677624444751592428949822614339322170047003999267614305255037513910216286662886586538525645598564552795954905644196428019844772172179399329130968985907528894594199896609206725118315928911995077190671725059104794815266155811535085150275820241097593170068524676450073181187580724547299692092939439228263774720004437503003361438557268624139069005186027498371436795618775616954799863079740387440105916560394170123141568574113614791390911890237944108042632178757046321632376476138475665935221405333935676291430295163608788931362070653949052584507939703582782561266574554498592297062723082003863713926518410626298628137332348015365411455713531107237136047528953920347849841915169150652815944580649043513673182195915217260182859130426463000247843882899582669598355513816084732252426174897973034596526488204077109593188078234641372218877987731991534448824288163937167953242431587636667947686181181895021127000922801224244305163011315364740132688396257044143378446844960744143512123154184297487264487877678524477425204615356512270052682471674854226555350035739197582899368276952690568384706550267662789190983948884410192755327535053495853069568715337142979564521751699016571284550366013814631711250793442864013825881318562692098834386323065687539682986995769936777826695004272717088018451554619902206211377808750584747724887488743336201751954494673040112365165343136195337811738257632901273151837403415541773255650353868727639345100560715927149443194937221583818538621167338745874604150089158177121134617520659799558032188821721531800069273211169490290575198902745170262943294029835773143029143141680490793133183236458254086748158784582533046751207332882559989732483719585595453556591267777188287464950395462938713096047879924913932882492210519207870904002681673377583752750345184658487727088938548651444914894515817742624155347820034991961818913142180675653915278086361968622625451618961778216047275548149746959778054207865080866342165218304846333259587535915922005586198937209687919395388696178699138315273663320556301999016562118991735504728857584482321371340970102163834585883192306113335364054606421326923080798094458550076346032978637411620000508782151410018063180814930712892362600115383456783365272589478569075130646950426270985385042605336225921593170505005728871654276737865171612413844163205873817407406876554956662348465521420864149007698059679239614098808972003396806907933045298369518083105260311175995518234437321571919614472302000736025695116862932671373611630209483816109393210397032926823934390743489718496607725518557113573279345524111795063994736247930886429595069441757019398941786383359417549038699332229388819314310999210180364726007683277777053298980191890121264377197571295629768587292646237338952508398097749587741874431932221491360545052039611100332749780749963584136770205374725454165409349433339761516270531151972262030926748712445182840861789051521694528665899197894404963131717337135175389818942589145350503560988163692913517058500285641421947633738361980269566112698513024334130924935687552068638639260813298684597482783334988046666218527128558680424870944282934952153130785855440155826413183295569593440142099926800645799711704711505945669961957805409099082981168641259741521700095041691265952381890664305549072758511179790200877884115306148504204491550675567984427495315285982799417761691158151419458265930311517059106554013426586575876341042452580832521197902250694869258567049072600238787217202445213469262362396322698117465996546087286965229014777143513150791468951812668391435554796067564256218438223496919278138961316004099619529728620349689449602275894682240779886223446932352183508632835430206213553961820301005965369610223892555828098665972976694601557790569736407644097636945317187888213678826819424629796258236599845149760081696805542690074890568965286886732130840628535933505637486457605176453037107785337562287489052805215783858719036837952819912770484360935704742354988405228944236697678025019578218926393969874819383074917288843852536741390340213027715754277652541301003709270089718544787776977247464984987879438872154927768884684716747258207395006620789808960265416661942135961586546322963396220508570665502671576613171911873561636443059141472606133096784482252507042513898136589855355081918712643302665618803144510725713512054116532044243397276085669760481461761011343481742840078247860059446402571067779661331273814811906142707090107000641634290353151438510360979938912145379788969310609013455759546758353980415715306104216851744904698626593071888744750100852286207964551470146620508923400345129854712929366541645591362322109252666603606970939022336549840508781681774752587830402993534692620844723163720766795467509595767347943310969936872706410485184875549605578721126523634094595657204158096924974136845464375715430925888257489574967471869593824962996981774831502243314298054306761864557306495843425981162067004975446682415578424691677589843498314564044662793250943448880792322115899175227781666065286312081013980574011136956811332607813924941369474251795576096568522143899995633330140372447004893692315177347911660125069189477853734385798283810450821138557715207490302690901041754877227430448425157101281873424479731277090404758606180514317953927411545154889333079001104660832834501734523988592741376881647970743918429059094661530208961402959300558076330856779019454229064763556025264493687663261737157654210056157893043258065373408451526063100793372235981362413615667904995319558431656828757963510637016814129482185198297896320332344099086733979889946612773475813589759647995049353852009144735067954463546962811052466345765360200550269681190836528842272503667547282397880667608949388223672672618652494086304968187486103509058716574981914349320315325082854122879505917954409379111509386713038076514613644445900915835474351775824970416873414976973147194557885486863518918273719387581548814739079311306088969597308054392988271928238541530656883297555483056860290200580098681307495251006195305387160866286952736706266470095622340680289016567484070254201881563154991970999549430596726819866683102439778725616121637505975393115436386682858866355286198243499703027390543414810142558382575019550062956401755604995074984441472138154425432790717084304366969629267447422761103211803084907173512975404730304785783500433284636370328121232315226003594593143552603765570889846577644543332414609232762570594760647457298105141202675154078138748130995545142081435184815377560562802406246124762858878022714541425175501949983169691120939818249861425906031406317500566899952228722281381744018035836408787500859774667116405550529394983235865564683644461057668108190952588879296057054940105931664610991033588428028932178967444447515975029920759934264561445210402991032487341114961278153195810640492176507875416332091056442164127011069474980206649652726232462136068700307135361883982612631254135980829658087942834041681517172979135885807433157091790160247481608987386613057236091487717468014262093260408134756740740224818664654944615776528036665483135941294206689489312857003372804463430515698331051587377265444114751046539525391962165983960650848519011690618508165642585171168775448975476251687080611116829129825180594696203314494599835834934445380454664149205779105889725869105680552082925767740741537714063083192646917428856222584207290544870374583250231152410794262569146353639222172122180127470038908169716435993417232856790921269426930575663563752357428343632467134455968833211465267926350345369109290114689162080910014533400468090026534976367716816779109783484176805796084985947646897058290281917285608419574803425397660503389519468835991960273215245292534738091373268295063858290294703872205472216549515977260346091381482319815824057959441781429485010767683046903796932711659041722311381991427138267519851268464310812337123688063676714944525308319108490351163306704924708170461592710507018579497335155567345852831233024972526595525449855981650469001450373358534804011648404749036043049678554996454663260878108321754411971246812198629691826195817378854150514506922191901606441469274050903533913001752103767525004613537649307645477067856886609948670074677801220123040854119621971222296986010242528943256545976996641483893489276281300406982043403164151005174485074376118339526184296584867297124720395879228972298061173821035380947583606357198460277282395956402232432076758902778926088343532635677988233925782644542394664742732340496530680638072701267510002929970162914330016860508272800858323965731234509060691590184566540913442210299783752913745428534495713174173736731994104074060255243770546120013501618739843307870861975465741485263522906240016790655513699551767896306913677485964545243247913033378448190341658420316274699044180983625844406679546156186431752495829624125520404599933501713966913297517402580488914822210149421778962932209640037843225005001111745456713515848815111713804831088291721064020676112220470966259854245841213339098052745786993546163097770444923818359357011540865968522542938648380290405626714940517675373484178023913746417260005923953822436618692942333700473594912029474761281756614619822617789708997414416040257063425225041515251020872244008395536128771847148713914651601433496770382679684234414011666995011529863451844553268458320754300094650772073955987928888994531321024488894445011662238286697447246554095729268079820840027986582613212010950649586026048872744233290824929318999537767265309163306246311601966235924504265181500209487883451115237674178549004895288954182913970200909878303811122738280845678375039567247282641574687259147587726900323088765062995121689383006063675139876485041496266750461493507631111238938721707669153556859005482617740078006596568513028245805189541094138960519454451536516836728620854388621155786123772090392495731078158363310455912350572192207472372862672187005586876031294385921689205484668976461774223166335253338878711923647686843769200158626482855753693317378416414320860476648542053112119530422696264759215370198718606984472449763688319227107446274070376579159436306644832921333839187950854817128749792307971363561213353358353656599491328764343801921856491379313311634895935453610871293107818655407183214255893268532821143180339386959383204802506053222409116392400499362245680114385219149126834796741536938898374077386383577698698364122406066599859654349823254056763548399258607910105233102201557129128990913757070839238777885465171359970460396587036323127610356569718261670074228698382891158182100952545249528952793365199306840582016938416916011235075262925257022796994783932380111337097894644911336731180838429777672726077918462914488485372609148615432328967016323184848112174151619387802206025941149516974937898849548932872852905520745178982323587104621129151701036169024887561076225498467475730062556350207785928123304839987754826743415921661016543779135618764164485780353765750317005686786100517969514368174490384917253113623057150543208815507793288508966931140603987878814040223428484309132858124875672770711182015382567033653450009263664349349466703496226634971865259689409812128923224647561202674427841466240710309310797202701935968643584086973159663219105361584492437330021600512761708371986657102152646399583557688536552033267608782308585599336415512440037533011898170782530481692681206932752597776708832513596092400130896401486909362766184506033241177839075431499692781202436773792464382843705374847025598281838150416075264234140729053111381389331854393248775986451050412547209744164928798788263899920506526223061798455966057828416758028973166279943438798775492240614880851032990784834636599879805947581592925136900980938771988435877489351754656966806722730834933449837318783590897655632068623342669082857198297382498194474646343475394057664496783247531026258583893215395117040230770144199229502519951578698482604654100468474144863060681065212401621318771555500451828755263700468874779079799415008295660870166702988291939979930640971004483279748225442353881243295296813393550289954146222046662717898973039876778877397326643615326331841871037165560351830552293041968878996215536358774907284204486655561148185844732321337828721841360232540296375391665658655836087592931785249452523055192139488726972608325916160452390141181347194037267438634933016584572720242651479406309012433279180066795373108852691098741086465100972160418813613368172304362189400372621750976315782550016941144452924693879467257336632545416660081597686964356591435714022225796153653224668202184373353135392453017892109650742351010174365156194617933307966269544888885518170974501511327787287357101247498703240986147058103090580589741605441985584664480548513719188318754983089712619374352996492083855343254606401113202838191822228326234413210208778886074978986265636545451434643553640357938125744422458994045759713954120493150216034174956477877272451944325776651297886903404931352663832543199645373053996566918958540335939701860718054346638274948358680367928432921395573664561717307486074831041184223080713825896946525265672967897091748760601934141941962841032900131231920367524839653450098057048774543403608839915405847004386796825244036698829652158328727320986054951553180427556872895499200377544304926356523817086144994756800918249320551709358081006433960864921363622607562136084508290756147638835892086273252672940520572637749203426965583546608743246718692024654746416123454098289537497070494860365717057124496671161370955597966460060388542146050020774542614482943977854635309866339024097585339097186239063276534148618181432203417224120293696063279966912200758442975455610958940707521545448963760205040143404753332142767438585884091258111504454632283475936414822977713282460055788108219467300583021490374310166128889426341186700656978393521926980559986009390643407512275880161068647037771818775986290593698202834511235868904002359700611161977214747054024508695751895684267136733343373620951283000317119264745070452256463229864867636616374118532900252060246015628189151182470917803641039451802525387624861701031929599472071862054797275445289333348560712972908624218810942496664855897061304459713657007099742157214818905372485229729304458462104512965361825779263431221258572033767738854157531238164960229730483547108384424737760436446987724533190555226737093359132356910686580019457748571851315800787899902523459741297109716987711194078185614176124799942587419466576398870785441411204574452543347554797031394351401587358556676102076741718088013418662483399140113262773686242072339348176411900003475708831503187939802117349318726588449977745094549761188347791593753204781229617506768461495262981996067533174663812287529185656031844179512060347692632708249985916346925968984761314334610502060326691450635736508275393812491923377529090630055032249888460104462522522392432573026912828043428970715296425079434865251837102323745764647635705811546813543387467000007259976617931901693269487246770694305365474204450032291235873831954997627658812476092626951408433746336624522239541475286130682162158748449025957066620693486442019586409183541461940333557423749301661122160459719233363006705184990946611446070463297783288792496758667156851623689742826794610243795998013527206114659391747094075008237521496769160329648949330876489837128811516315201591455755633891292125466001069330258312543940401181727990748280475328895264195593115891838071716865516158076283172253989389335366543062612924537438577857851649067706691729179408188090835847032358905996466432038276819980636508561048621053299005403071584892610907155804518841544501917081276908288516638743936364199313594526684910442894301729042465176047622066078023692891651619757273689652324521947857454048334832869705787800916354548454322029010192413977728274508280646399919091838519000331385755097055705238200924742546810407573958649973636381047511902897107391687336986771173646323903868446002925161749553530702176399010766362165258617443632731004569683662110729109781483251717635346078089606050910354662407451449942597527085714833512577690848241118542148477271466734560198737186800854890036525699242887526214561376249059378929496340750910236012465734424163809403886221814041013809638089815919884420214078786466065437890492527145566858648695883730433611599527563703677949834421610270116903981063671668582840889287500935990355651832114923120011463036846431499047000582373607988802698708127732108072559324257971654983222799941988077906681158630556070774388049079558600612629082783511698462183808217678242708452765444747224164368120155070568738513112434993372888790744174235191730328523175007315779621117058920112495810846283790104130508118608264813431570969136419128369058280449838525215331550888166900573386489861459284004860804321850510997600682922461935282595467506953290779613289386241582190849817905836323862021239891504690019072482272268650878467995955238233900179723032663244288021052783908511715913491776962588938276969035101983948223383649322791746669312798469408053495629818125471508724081716146153572228119033683182852821491481837477653660253727434094127337145426830857954822980986256107522595713293464457226642287493603046691604936024545457886677657222371506429274265796059573422114711740003441204358004106994564455581064817884821399083979817676537007995472861296778813762685997441560247460516168707146055474702038152890494995432468275838780617593022414720512177432065299944597048627083322622942416171924622052021901742627706006210677532819891422870714699063862002546031764570238709803076112062028678123037716422841852095865462431231792561596938628487632268107565119945724788440027557903444714031749532716216649912151423765854938932013517088080246910421074173216601301243735006117148422065463393789435299167909730098688266575618647494089759377874358407858378220695476392832659437552834298699822863554238187948035632538523558921002668645482307976203079807445260117781466048293551226728504809333122283329726909795034695396865329417697962423071958619148222182570547544273926777968164268585767542375096623529540622422044263181234217945570010529887390093608239875181506695398292601789815759331589124089716747813824321253358054540163620168095079557927368397601796814620259868192562969434946941551145194493144376706730953498801229633931387386996958148600485440645468519212550609283591941916334019188861878296979564629963241321731224786044310737314948085977294244575727456095462868353493432892620199533145957417914264855815283835853028743303865773786119091792041137852735345273617235550402149699594969555317394492240176672751208668928241694328330082410224839175127833138153459204068799478214160046561205578860992437897899961495712993259200439003287064598819880793083384060233009651417120980160643944083055635625174854660982753728933297860027737922925198280265416134246416908390628101556399698770576071539373476663546049552885227831693834318832631196705354247978473657068428167303791444342055929346135731666780410937997150263954505739280106403943772363854711081210669589149555184549742817096850782240533111767128218552349900310672328058945002706627377869322496326507230521774571659018001741228320927651751960691745070539197333003805096590505530206143118623578182690159679438403425320367040553650618941831795320160173909413866134986881839337051459124829507164707412635267099547284979962805242633797361828823866738764876849485235629348168565098698611960385972417296892404206817033137557425258367304530608821393069749118514315977674220293073594954052108591361420835394855914961902391249499548780643445957932401501508554506725991091214152495051918715374215963140198017500499009424924961471410511837721917388597866267260842325868419521044841227799290131376835927016511117498592277843763706282857943838902415115178004434653542860672008495226765178785910060414896988609090032089049044346392457956250073349729705067675561817362661237181817456049524657820196484316931529842271973925726537836279157177689753425671002774842718684284076539405876415063211024677459034246221684521914527294813087442939581664962306425597077380171967779644507289560272655403879408545417335246630875909951926100460930726137691598537829653308103191324219279787760129064646915060710176058102683956827283971982145553828356432150058638673657297139317471851668729419432688407074179208399486245693461921026813459057247816206373682515186733201571213933250824311474145590817521627373458437266643640701090930089154392644883722254453755053808272542362234849032636126242482299107125549611481441462640516821031589803288312616915372366454490523127266222361979570400188595344414592426932582773719663863364491398442617398340194068248506356565190308397913270963801635881618390016457032517245359950004103967307821185535630305387372174183577732513711823946898078553157800271553019803969425096124356605392722657968120195025292016679313395587741692720123012772445553048280768474310297561154713261603505747507750353426186059049946577777463333196090595689743749308845718177040640117801091840636675274568577284433560880800514782109298900151995480003020472905409281403640906455475941142891895661248799140267315155940332304733291283532198823056133431522454242447332827941974025335710649437059464657821485736787983794820862956796342688804415931836940587868900821632196065926332058906387098226035127893516527505519228545241051236174592614442152408272097161425235959355268204613507089016027901490709629614046142040997089060112683034406499727326191122213225889384970126822061511223753422775190573226138436858242054712236127275123048836290706196040809616760403354437711622145065650108107475808784201542681803528431930919850541188720135543085785432122055565169795221993062006691657898064002532370719685108929307497192402837968314503129325994365357386768653649464545623131125881539030051429886229901716389836994314527630384226511393837429672180660657889165842797575501359739750310421699577521341597238959269229703786531982332291076518299805810220337017191263797907045747686105638416756308765678855467028418809767873181524290938596383342108938014890826248159247527074225004050174233061208037866513360864790903290320503665064499392390930191032716689162728471656416127478042187893333238993237564894914267444811417075402661944479382600751241539471038553796114915872731666147271827679961586287186447494264133706309229993049559685582489157116599767319746367823403521155625506836927542981511281583259784531459514848652583969200228124180805117013482716513370071877266535796763196265365484543494673118013704028603041164711636057911750774902297984261825348590979800181460652499664183777911195798792831085619777511520987732476408809654370821289930124220866767994955714665168736652239907075244126969638719896300122725860034102317276602314870165943776832580611455909417986611761094821167095977167565863869867175072600707545522842302974550972906748697361906313622949272767701131263323404025244547605476743811782866642021623543309653879499995222564282936365064255119277079228026619450988198535080765720010903639984888086036479357675394214000622229059457074624835159806139754461312845831122555499298786168582324857264545498898155323761646937310992494327917105760504377373132315173630939314024528150880460049272524562140966660281504164326809209256035523477357458806482044866113906952273944504254573907856876160466881318256705999808239516444829171370430868514053501955211088939583588543188314038813655191001464236174417240938625225354509377994088256625034250646857961340836841875404484346581378753624905650954580137628669384915642069275723432681618294958933602720025019249204817425752367239294542399366389712674069154399279464701388242078173630906972016347667935347818662126593855863139594309048174942320724818410617540674515001799616496589014610322250973781581362326759724627706256799073732718246794651640606359797553871705163098837722619827104384108671504900666541332915541290828583878792922552718856003449898937294586221513832717518626878650499996068557215229181068643321933276911516411135030850496393197527087979991461349212756430264341924355319013061434010693405002309314244960065729915739618993449160431910315774187858722146025145714552645418602984192719174721338933090179174277512450967106780768180307135902668068387376441855788420044237187580021902749266956178945793009828291128415318850307950361638677933641758449490483608734130702215837127381760569530818270880186580103540886205870195607160882865013208123384485639786976738852088899423566848631616347898717922282788761713384826114364540547890748537424356842765370988250842519031290045246461074751636594131836459259966064226316554015899103009710724838587821482838350796731520118012823720363718135700631694150581079110158175016079574627656251995284446112990539367698435399501457002626496332583901792463887934476231922018463060552728285890392077279033781319750110116332884573154642672178983047120568865755198716307875860969544836206070163068348140982935412461018037651364447922232653195947458170597234970345223378713848471513073532224580614654589359020355182375426167612801895286715963664724855573058852069209756643618632351419772245841459410683779400560069152369116650715109395804714788635104621502266180511473107452294541718611358558353691283786835278299332807704047073629137003628546092854990954533147727758657899330616707465772353183077368296849628915516785827225141001276612476244020481896900870517506815333176144697880104285190435050249606931726461731461951189172945508883880624622751373482471559065858176037660143825608580126145820879514949683157965429941979576570896067607447777580228762261804003469464990055514642768797244666925871120934450177463820879729153469972082416883324809806297148482816923955046952415543680559924528390920232403891324342707706582070034091162814983993020603520727872072340770299237560437988397866059663899460093915947767766411849718302470261004657514382749096804075825378801555192635477099183348421710851841018972710678921145456309754893624779411615981525318443351087930421958088938381151917193914914566699737187306198093425155559409743341213916404778628257181406976206300729523213204666892084204252630887306702453451499913046640227505988740026151425777195729747562865343250816574321318812668444273113490428318259581888050727309419047542094087441948385085709727637055985951586842399126314440418732758367626194331334495829345149670297136608833970297931441050668729477276780915894054781088408156042081291192424509206730879458063055233527054609139306451218943564142270785595427153051219385083490446118996061583437119075300005499127282123413513301024354746032439526346934533958092478704290318740955713534460148182885766479220778148575731005541092411070715610021707952041528661304425557802834822835546165138549931051286756843940912783158585905901121427325945690775884721578007981878045320214208895440280810364138125146108903274719974448325937525343173068202667256823445634306224210798232639873879175067828340518396816493108274036929136054416505820927208043664248511124743806516136915864647489323716792983316647657188191701926536674092912823166587200392652174717618601336673782276544641922832061765392283024605239157165098212955485512758347733328476728027970343368453637564963483772472623769243775638146101066946616097743657009822016250793875128255629504869694348729114621785948342767344406773494284888592501108352248232056197037391475626721150152890762563977307093936152685690059257968671311963638754071141093490924334421395960498093912818729131513078782414041857375157487575014219049766016244329203234832386230887687750179537735784260396086855698569509230424234687288928983365853649812993767414360432693934970604895356090473355273048713896488687245977567639943339706573247119820394819943680926498866647167495992911710011105849353327638680887061625784994413229604995894620586573076018377577350760424177749713493727994833734006282567780407025855774182019203967154395035156179220927300746774919894986667205259124104305499074335936063825072137014405531119412652371454637232529067963078866443701910674622251548072789118080363014545347678982495164198198308709629349177878779262671078591844517311805419617387698717127807577356266274991972209989097599867558525967628084013323440006000113522089519411585551295941261212529264501076882644427588267598073057356923477601269301979183582270176100688881745962757706039676293468911960742198689365674292283318575707729986343082418436023221663764232323813968678716399063550930031824281877405849811445396477880266759844491449943701914382837334971804499423715749925342801053212774484609713424886918496920715684918642849059552080288774532809076736145780781967188868786339888985573752597110290677972686523545650224512956668164602782897955851567127409859936649165712297527189567525014098175298875526499462409605841421923799347734479416711675830834584382290758405580025220642870127843266076016555173781421239848342989031496773762723962687597031911759456722549197730032782751170384301095026690111521384191151670140685465294820617263111627876124069652330462828675029670206614628947711924926433772932285139337798141608137388000354685271349484985579777987018388271820424438375899076618288090117648051649433740118064460663117831988333860539511505232281052103356479979175805855815958312810466816125783687876706292158019214748836571224833027170207242445237637343183246993678783143413047396958664411228916725343343424994804106152932533066441547057063459704503346952681391458798482797851712275292621370994823544233308794008921953425754145456749005961862262752841147418247302901192042523690591813843045073842270359191808179078512294916511553318689818350010785055330041453602155783229489554664183324094578580648254757345096046034885204763354652422996779549023584284909890115998997720843611863158530770490965807257750942934472619475624380622140965234545411203369052265809313121439376462441521377180562931244889905827394301813887779633685330875782874043056071926711875199280580445452968574859993693460116998330942359829032563393086565626961950201196693873983948099570676118580055048757636590075364333742947286037558286835318709601554543233314483887100860726207040893800013391070204047099438130765725361336341027241428361938865479145161724252554201515639635425887477745184825992798442973688377282155863781606859603955879682756498625072799796985186860880566186256472665986486288930489398591093560549856171675871722599386892802678103701114542358396251730978131125977141283324960684256594301976256787919642339224184923161850188610735792009964373528991949713925449315016927595047071562020819148590294173943422286989067792794568150160791509917121056658034075285061729913947204636059918033551522356380661046066428495671620794878541491945226434604779620528930663990163739131802302162379211466728035176067524829345333147215672152828808546948178832876901907162249607582714156107068277632777047222632267011022259184789840953553338486998363585966266248586739902748499477847159049205426641001213248062458274196182253446868041472987030787787960449347045187285124408842243457590179045206069870386857905439720818582453550167641421784897126351196707844872597081775380900340054204792291686573465060027694553937207803095723559349454641830309859382526645006007515419572097469908693717615935160128670010784094766172377503825140621971580042348270284307782175713908338393809962353756308805783649662594246706974059207528358325456512925805881388009675134613296821947577281392756349371483249910826412581656085719760259834664388826848906219335702296323719968196259563018606793478424918666265346364975349947004088116449153344659734538223241794048531925917886923158615165346808069662469116215970074382762379594656685224095014840945229086392929114935447341696133991267480237465925929601131848882898112717808180239477591435216270042494575690187747575653429096736263547310884128672564118464468512819464489674307167349993162289847149327493473365448258038348974020008373950279110564822676978650585975557504774953335433968132284175544350528276112775080747776218841261977148669035160888170836622108605530446123282285219284368430053047303290955920818123517356115365587246835260476284774419081144356339665790816617560434564338957700101709160586347242640190297913200871595076675798804743547644226670834244181237455991644561927645838750010318828942966839746841164145953464567614277811459471791828714147398714899787990230151036470187739927475369291115869493087880404707062298968990558990440050776402527753117946515018422741168817710445065262134785626675569167041007106527394716259125849860108021484203700322140493156601151119261770625481385421366835505899921613733402846534717945222552030852105315457832769362096036654177372520471293792768968640012264975878380269513908189737097416198853047297363872145288899435232165173512349237906507633288719630815775374939686511001546129618204958384999371341166705580672116302759452885509774641435508058413397654641792584871894672690403090264865947271254657036630710780350825355988300659168920595615737841208653286248130593168947412665692629489775473827828392957654207483905243914499061923036510476752403815744355329329293131646642376563523110908108208995144412192917305419645692270000661531776305847052918761426161727119390974212725297360232475704970401810864886632344888732490276663339256886959366581446858973381346479937400291275107699324562966297721154508400823560705955981438103580170331353985483787006306619887481033787008601033878400051190738638097417369787354556682091009899325871678316085164110451863468167816828447258165470018676381753592154812375294339645769843552004227275115949719839580203187574868309838718884709362229937119233105701965201624232044696697304402447078999884857299414074235551839970931131052813420163187866682726049949228741217291887163436050776785039043771894700167546225209649604332908277279409403343018032309804174590881815744309508086825909431930563352963359240448166287567045063914133190009700793351301646285439090457925967883005869250203519020448177176890332009796388560480644332570739029731111195985823913720641423172120565044039753512059501952820587615820705052427844417692998010763877191586188691392692526882780006895635925454660831455059188539993748547509402327185254465156474552358509236796091101760647775487928601224445314115545475114526799343255051240278004594281620481189465746841724326864479731404898174235760808343052180219088603492305707839264033005391507294222788406739556619111162298780599814865127660698276357030356032875385858208535110598347757771906817959734265312088145999103379682424495104576385880556195766200496248229172396609918531796352283392605877794909980575961468679891446330957558700502287629665744902061644336412141735493248057021325439660596506360874404725761933631348090375259729229307374607982803958116210697584077163030897755376550624301205599048863419593471132007253800117314633857034387595638982424532863426074287246608766029801738097622639514476867872668292691191650914428826162968099849636295373563511995646467566301368583079516241500603890888554644308439204074731549394759081120426814046888469640149151852258905138971965573686244634321051858883314273004209203945764675498599461379591878292394524616373970334474065900316024386917937274942027220730516970057335669630642837400654570141628312526617121301396175289817230360193255510297456101819708342658696475572994944868439742704854949591244986513227661769687609650006392949033766753753513003889135455740540115733568757538227373282053536324373368653096919938725937572246949304123491496602926665338224942376597690851146857117554228228597424249737297079860133963954036908405731467110805879198999392158164495073615034875642956840588983562721490509017799498772641738552475508883526953397114196907254942698533822385413710737532629478114573173728567478110753643351108329522934257259927275269289500788276103015702421971437444419510981307552440858081511298166342489402747775250159756164115908693293190738357004325051109912443268770858574561326971257913306130745855864036583185175889054587695688459575957979517634755631288186123495849801050498570176961193435322259695867152618939886624596916045316741662292365667222693092862897428472957765663405694549473063880644866832101578966318456761962729881423994635303518080550856935954159156719277592513445725919027865069376460502242313858819436952616950369929687815993691855422986201555730749484144438896302138327312992060357121290466452927152744884507277306923437984637189498037334084269546008528403546462793195772393498930102266761427969222763570717460861268277041249301630363992703155327818093146318747271691418875154473547350029262408064129339779797471127465222811916255912011760415128602821827964100300597096995522161379273456520916693062651577634590306703425400377751899514148297045535958294344585030811357725110195363591760068035228318132204330759698719562724953456852222300981351477817352928061682723823088810227589329656017174805667118763722932183030336004108063667314623972168943765238308658484505836814265304672622657232082603438482530466691419148886723419145158874352198940023155306015842949728141615453204732253180680496863500351055985446998793657679735083779934845616136493963967473433645649004749228872671271678083611911717981733604665275668177728997158372633717566182043157820057153627530750447325572673515353258737489682180002212564856744320500337670042892018397297235937557380202699235989470264723532563619757279215223964333178050558935960261317912603008979493028492853659298382204727276435498442976339149251493069089005616791259745331700805271896780935278695189241512238012102445033514063258759291365202074761555625479264537299380741724131955449672776613312107397907097984721482905342258784331439914481518658080192830297403737012353530420518353228106367848442220832046569744150377259451384658467415801519942633019065933591835492214316696805469618946286348635289032574543779130257430779307029516175363680233605537689007208647245101460182632801800293920580718408862690792311070327408255887313201103935454802230716271191424875423447598145179458120489822984946434579031994536784572889100330994466253651711250379943036439205562292439456355207081274628363511686072185151685320693981058439440229157813726354491076736855227377989817320684197537211198651520079291257790872080434927934186733110372240864524531313595285271493217276602276595788868471568229498192793199533850406442067180910464820798041475687160532038847048100543082232183659583926576967371370448146912656846015047047434486803628467737918349133469101174204149093879372892699771573911970371738270451721039154602225934366840812600488773088908121524683026995590540649818860762485929642192352713988082960761076641987021983937468358520586520802620069395394019157889253608438446962527064821759060177748400175630420197778886721608866966507721522473403892401279390493529394952734175769406956407691989458232445106875348415852115947690734956962671677761821472618392292299353329660375864494972919990381490187123207575166440039546919109869734054599804113559874210728912342450476070886159941831096178647212178448733446931856080117259921996632799562942657437465060487425612546586265504410882276644225526835771424820704603375169114419588473940552700998513321461879045743143764451512587883912099219878248480398607331956505041622975004209319548156350118447341669407484702137352910773382717339130191305028832943399625320434175067050019399301353815094707967415407846914331958960445818982190549372295763036597260510882523794184903182108622616337002831441082647716602933111585203642408947899982515271265113300749051659026682946128626848207772797365889751526009913209828329325828637113489727105192156723964956796288685397064525271676945858735750541468414384204002448648246400614277011284277173597592020120785552321123802813994092198290034744369891326703314801380256687965145446804344660723578623876171917569553616675490717863883053436975288108746164800810923128931441888251783398805221138463861296034433880990555954028483630025336088419050917573082803618246763636374895098664959115164564322967508364883566886033214979373581998050419917345793876378468977343097082868551884591130733022970050839272454921239646827287179910165093841133451404934065859978686695230676717730473748357582575740515377714898805053411290693530386864973895591633155555575695414077849866834893199817945214680983585915547911192478702005638828820720018301237661788087030823587860545701550094179439097874852817938880389301108232402799761320731310379067970890109075566789706682360883651232300680741147881872366518860515495869063998200303384535018646849382126134810965061316946960964585427699245274753591928414304775291532777315396534845587241182587195698133291513644848695373275173520197583132812727670781375220940329361790989057647955306643088203574190674076662654366835784255806384228267377103966067744966764607862026342973406945718091811421236079080190480227481599064035567581744930416721187331189931568641107372192709699447266759864883632572976411778526420190575385011506336473243159658450568369285588586091269482873125926890654473082173236158817758916152930003640097430040768525699632074000009408853009716438675947988502295508364241232961733584061078198328151246601865793945579413540077471872243097224122338347959261400415269891671027154361647213540851736666983482542727077748875228214630769043037747890917849186760572266085450595405422184769832946346348882943630605380768353384394343869117570961727304087264044447759076726486100404644073983112362313720237524545641902403059410288015814620427748305185192502652495439824225348586515948975585848417739986521545063835609840416524846716761642999569469968470024274761049205222096870750687496335903988397504487223506210412599982337584598662262401695541199632880313073339831365107424179008838745163674776208288495566782450756852283118032526496464663281797238085514089764433486635974987230182729326525886302853598688111280451688504876545276324970783065394936941790459179124673708556686563361099834293735638085362420303994765879683304398060471014570151695093221864808946373406446563844090014424179547426465352095391731823723819107228370375877852831263787288808108194501841395283399292277094740702683067957490326830413423424905433669780246288574023032305907935348921334455529045942616224637745247659433099653221708719023051189766253967840422035066733551016851499450672938703667195590295597181302866624941686633287060922509505563051266017259553628877236103964915123044743789111271007334609525862564677667150791699037342232758244506169100910007175707203021792504227214629334907909711000985110496409239955083304771517325510242150627742045814758353256362225998615761944988463845817809781337617215340417464980238255727615986401491601188124349232485547050459572107948775828532269710727014843627986305616512351634227486061905094267814841170605074604646404625887510174635510661450778686799444743246160353351166789536540736572638708006130602550867845123664601293748349157746508067398606816668288513537129107616418685037650190709493234633815040272468059419582535404128966993785187150858768783155605245632227691674421675128263070244111642794022076529088795894788778992762065110850195971079606253402278068992397781776659136072409666852978573680579080667511108110835960070279860930763241965598817861705435417630995869354388645057630289022940540770229331480952989811009781558962960407018292398168358871186973592744688493577089983695280401370320255641795043498636423420180731671253082536020339590798670914721538623309179336768522952691429719850872361293238469347050186561038322611761570870170436733394556542939248226333801025550075340516752566728947425484863860953259343850916079234279232478888048413338859878204035390374050531326621374627842413710306078853862892565752239462410114441718196720242620838703260098916305419405085545634621050067120772951079364642597341491289563086157755605640202175281851053272733380888043396649817712173815224806746920676707770258663682519325895040573496983305066739340187733745138054741348037726341836148816196535462823487462854902995514940538432660688834564156224948005595418265480752813549901847652449224590907773052933599466516581966091833027756611969813355957000311066266971304248045252506312784767129429611713994140827078659755172756314277322607097504562135192129504245450802234643410777606225063801046283311189484614677147325859982259501828966056356963062365747628626179619610363755325263278419462583354175026441103339315606149209918426107013956148109499980129882619577843122176930268457238123876757656325931635455725854866282366029891637420159848752481336444327029728066256559367084538980385287543644534514059484381694185341329648908000187152590668979276933098633509395508805608478791044617856623425711111265069444969531800027547722288741607898293380018624778216899088036388233151586905739701931640193434654254756391049643934033904371014957273030279083323214983566480567790132281991459789223700020211880539193035911774189730723411952606495520657283080813760053536243240425524803873244910440494692963131542757961833194770290486291136256341584787235797839698016059252256303344274962243222314952938561832171453229024346142879218536369210180849395398562724305717047605680682885081099162237171865372183446902613310132252461026728306426408496676775323844483877662019187751244949825497397519123451509555834247123373744431727476342005980213256028394175216278343886557015269391841666891293794573288010404876158812707923011002028802204993033414862841025040765738655111225337819378049332470554562370700742515774332153985642437724510613818959715527057782895338625827041980205653269278805698626672564115977535269993940425632027310278528655842574246782746024113235532045149201416884150594088312344002199245352361002282436604069448302291374424579457738874652403812979706067142624149309737658060040658616080730160622260498209866399824801067343193135529046138031196424984236816579600818475549261499713661754607163543089336826011668714143593456982004771072695112903311338966604323821551199986450620508873319508903395234998448683226771584198297987284351306710891474435764575089174801691808948413148839142998307287952078976297872267391113801221033201596061655176609415533392863671234134562280128600410904419885619099961802429252714550390287922346931996723565396778496114001752913487284262969804999158943945252533696917170574043764195314592582190912062594823401116442707929498566666395501666596025771214323124044375907713198132670556719511051621802124307997474305809194447710593156226815844529953866735485337794465341799768975243267010793183299363387919163899203867295935208658847000469005256585110341278978695109369816555101940267803334747387612239361122338613182241780855759021096451581899699648843790555437233072609782866211546898691038058385686803782966739805955797313271723015711547292855527701509127765137649298829124093889394307726553364830160462807456904403042612055768701604942086779529720015123468592720728267692783526360438676761703789520358591525019108680015424175804545693508358389251019393089577962833481399212857307317362909804304558885862122733975764994504216999936617145953591477077275603373304598304836064709039473684241416021718681978364333477945320197566176427561075453927748510810747275868051749151973861070412696152390583433138154342204843726545925154500926455417481562441801952373747662706989892248850039493984219498195959411110504076593738483667175292181333835806076110723670734860612753972806405243073191870143068650363543942187913964209848424901956507147510105943653609192747952439159789739502910155869517949718528009127734941615540049523668046533533960154575123727717571183467829472090827346082973733517770251555495743232083725419605077651474209784253424312047162925363978241801311394416973271265405672019957328131752298631115955793669404957160516148957658329805810514972152601904477454301769931941018888893924074036471826458551971133540516548772964511020964525300520622780283895796609295817607376707151855569038576766167551143936857185790786291604809649109120109119698973194321084755890256168785758824941198242747082095079204929786402390104607230630642592695425058261483307203932740721614116461044703217602466276417714674587038893005097765571913347873084246603716964056176980708475068889588417753468637484834311929425091522399453743260594358761337233406212558125838350355412306144992189259972776789457907731142966578644297541258228593075112950332812327275848809202441369736478387756278493009939169714321018828288953266503189874006952623180689244445850933190692276924607859701406954984469751191102689013812474015143501331318431128699176125218584070802778732830231495002612434962321922280519729968306034981947884053827417558566478586085785324889405456485924441477932987554018077867687806587301674847262544040457501689059528743833523244977247537454665820143925161820345405163037600304245888794522697796330859156744893322378708320860829711293859170878334519350303480263880580179233903948488937462593137987036712025524689014911815112229692396080018458217633958428297286239692740525830029128844898338095360336203184212379444846179578024257869844775256673832617341587564029236702635113720674676669025756508379189988687584338780701916040248804054316294713310426114332575727628958374770893896590462482234321015733694653804274157969965885768115136876907789404692645941527710066894360095644117675150736431908900343996526788979596321938234872744137205954145441562427599624942697422058819821214600382597083075802338565448807704611690831190263512728711046483721003352086812130129496083581851889293782464458985197606607047517821069468043449343524982186029131673051563798530387389199271722965956166489798456454043873786030599971794719143229704390855761456983549149023856088364176001145407866441978043559824583560085833210025163439469851650250502883031404265466555332613045725664202550240859108322020673630872622230741177621995083885750782204339679563454123534281353857953226855919111481425166639879197958163924218259263275597277596741772658645538553051200529464066076659131516053901409163898147076918425449861228357511156876452974621487387283770834032905467553090662755600970262143568713084405868144907671856297470139178358991233391767995410169868510385862998446119235063890272655456381334178693812595014425660607555604173513395227591667073752742454662111568239925030533517202294084243055909764313600602125302505497032552411639757652860114445369282551574532324261790625468883294421519930603356418448549669672201545889434127343080720416257516191168887546093754306623680888552219932315290653876277500421608101344621782908289182223940573132710665959921527345393405315129945573385442522612129151383999645147000541541544557398137054394813326075494499579945205109696185409824799558136351555270256938649478193836159130551817500827266313004367164112627602461808977400512268494989184342869927738300544688040255945719444501339870690420781357608724815934749895032408241246282554348853066526408245012453182601739075085991433087172719353363064661254294077229225790088224474076529907130383985309391471753650009646697535657810964584821599699552283171387726629847627344241076012033639307869256213285307290579332403819101279495183087791941348141063434572153639651100597339260385078828670014815916071754197269669598306137996981802564950867684127947649558264959043951987344398000561169189286588839828124965199718919077248057147504451601852477869389472827603770045867317182697279596897907441996987550328338694515228417115216368672335806375050152230372365979945854706986019248368925723024179460021815158647151320088668359851337088973577296496638761986198408120532022158289793955361392839851328606465039500656897151869055700125599458186429550086958924726688710054870525785344731867076451541355168340699665457645890431633783653901819572695452684403102385995285245769784100541346181776049223611160790764281474378686653827085218337551546283962286968353964373111213838160625874213880790427533136390952913062583323158620804311805361287721426872707631111064567595988201448896369148699075639960396990605934140125035708351212519289612042253010577628493442600382050844625965655741068418326490861444171062554576328702293324020084369097239147634860932574454984219602854421847361326249137293869309618464410087530411770356576894823793338766705313656674737183361299256055099228721569600277935709455652974228856631029017250780120131895830683758407247712168721391459949626610355162245588671847258783687934599474732639753701997192685996781402126515593779976970039693533599370335297462949476209331747109859904316071093576015829638350392074444112682067535075020541730902047183274892238877862747337310614713324706036063102928839225194539831208582374279985514042190054835641400712649527303017232068734952166796692644341019107344599287552924132960457941886636248882115185415658463389978692302299476122240370400204066506659687092617554067140683418802740343645054111486795303910696897572610320879391016726394498028705722496795083316332185405294127435060622916447420725900796385898063555281218528288007832168424486378437143296972343956826461398539548708506965325784845352101623208582873418231380204040040293025326478639938275090647134962472996437789149846779784132967389645835411158159940838599137051197121176878600585447198596467460042750542111393249579455188787758499975885925710724973494648678650099950659408380282418168030611770739943429910425520527613591691387530224865383135304786963062400866246154640986963531120243108854383770176097998471779000195031666131846777579978517690347296291809794003004721410935561663464413713980811306179381205683267741460579772304138387199044507921821135254334616233205533881107732313000082911095324412962294738142455353390841796843388124442647589833054139709615783391819175264027758161966783031442719459179819711996985369936608140803064260774934516484006376114811626478189206776398051234093349394301407772840666594014220246987026075040047185378853792288931389856280930022558566968218927009337925353919097936645796587638086005391758202808095113526772694915467060166186402059417758989108674511119292795123167516408840687453648443736708947767224826832714721088753525791646852887950444905379714417173986101148802895592413376978273164962631951026175895844835395707153260747683491059654509061221814198776330094689881965692608622737195525958168892072895964969800848376268040906130946489310181671696278713192301088215023248431245272715390499525176486803301804716747943080390193106377278761081321670437732406366959166505850432174573069674579191142115307384751253417464268469241544128189363234656185889738402894941090005871733662637004296894867285298966827267922374460948511749889578554237900786172221937166581421600958296871491231043398904258737167104484161411921610274276549864961881219767977121078150632957590664699133767406455500741667358798784204490754916598088769410968808726859027708496476737953923983945152258508551464987809509222881883914271559003210064778169023355826707881783692144393683298926003179331353170568549259352664445489978105278981217989216968032692015428631675368478557569093270952199845566337715745386468898970071501330827055277762803697102465514598503698094941948111416680800983100116863633504963105536683989396316337106629400461590433304704228628999310252480521411815480713969078323758591130014696491159191685178554251581088935565800298341104803667552429156865155237027005523713672592471371144095462277955246662898535206646062922843352214643303505839057914788660657460189427217655027405495643917575225970980977241010368120210420784243790602821793364136852065934810468203220358033110020758677901049101704347450807869336924594531899238308890566833095806101672824052624410684543735573154851131680047710967377940264453332265855280444847279928926960293577513709454442295640179064391683796979387869356938761035414061184281377305750741943235526799967745893504364765382247418255546338880132242507160034960281545765557868627184223986559722820246916637331130283624290113373111537558455394767690258644613454548798046803906132682405503392994677336303268197522017995312477519427378647670731178516591357562135439480744909503880827407464529572320788163281071255466775728245709949534027167122377545906941158074262217515346386088776737737181620645163006260223277769035953809925996688479968275956752112377190484416662748095232178058877160636999081987851433766142124907507308171114011294506740615127190920744688767950987346229093695767452189861867379162730227611361445002518079642944125046354169019142924454862226218705767466119656160116842702087360058075760135950965813192835576314127255407025600184501507029402100563011597671676885014882496442846783000239897379729576480029007301693934933769707568532334430627191517659133157297127675515033602635254131100606000843668899071443317513946947774523604112433085420727500376908968799220283166679052812677596053768093955515245060834653820320942002647573311182503215227304466837397467971558747884215843597230130752864574856400034422933387839325194729136968173552552266802516437326233436050592976055855911108237710815466540885582122290332515252202325320084164449676779149042638612430543556729540994530253439315692878923036045605162481940696084166483880454430138926403819100911675296847563018588964178953522168599642300598998613123904822932770190076840314148804393790679766140864619995095447502192153472247920265503153010712614855434192137907600082560359832812941810966000414657919894159050363071501330284180089513989631896688924716736657980638699964344569939460814527913956904894603463292304436512493688148807097450605164279003269472430982291610478509618091725597558357891657225195682867152481641151613277041149384598888641230677921973115613802139920786721150592940171478216549810639816386029226333284916485035356231124086321743215420914062734102641924442397230089385699693447274469311791738914993749407475894182029551024337916263941831738622396422481714351039841133608436995320527386970804281235950501278785197902923535145655485482927385794877616244350809604386548202867214151154343662206684326804873776383096999339653852747509311556989003976029024464185196695055147699093159917453065597108435202738492076993776741043443753828020186453800072147183816057841676356071103981514499301399810401212463961644438219425904911027452364240393941374340044994879282500512746544668175094375606621571320963804362766411331736756825378785453164808934415360405851716920277149386001493362661432060564421504929945780140233590630295834731161334509126284065036095401259062534974859732981962626691448072433544143713225272877407495063447659900590214117558357174994583976017700585987662361439189043127701438092667702167783249321984297909874235719029208973878179074288753305799912074714298440443520037623136417386788965863400350139377770974867113130552625246046639340622279857343873537257152962941540992463750234507940738373313424979390898023801870755382897179618840289863849787267717587627404910586826660032880779032623190008469675835249909258975799775400189877757298059359031786701069749622396728740982285682753231162260817140494403912019182407562844726188891402818436498762181567057272478591177569107975194544400550626354057751720994037658604043022167393429369790278388547399688645384775188682967092600367931359928896575403174978268867724069431691008102909421343999235215714486799915843661105224588322155337282425182103950177126463673633451433427960523428165309997909735055380378195780003641349920920616276648417390098086616513319049364098206830418897792935274591474483477957363215790214092735719407116655330464623393170123975805626519030032980626202731353967596026479946884983915318126400074811106978533459212494835244580383746715516603150109160858982889419440908546128253208785222812781674937027864612923035217486764922270615695985691116774120653155141986350161607692912167203844626075942665655118485128067316470918541584442808216059121131598393083234781612309772916752776037647163202088204128192033194969931812065397660528721398175789984184531928950714698976012540022146522731126491715824356388091753466433384846937137522625140443030448958243213787187841689795251711588019917359583796143291186566859643291870069139905600864618421247780897312155157606276443408661458908562935246055904188687728874308294318976137937079851326388520791200103221418222071390230459694504558270343210780746561510855459808253302165441266631380094130124192387277588625603041143963435132505146465918752460444915515948051890123971328280767522957317112290226838406829809592213793945809352441387372476020059402162457686585072320638470917907679588127117531520592515240691859785966183399226845148567383487125467448228322056922031841551862765414112407406942047521000545979385727074844720003336062366791924754385300391490303761820509087789044746417432646552909809383970426083093759541746603271158316149014632544388015508174933296622790546903982678121874125713603940906781150165018916247883629503290325520788999167746282494079763104164393243666531369578224018854036807605408497499332981127933129204168917716048343957855266664687005202384800402461516500637573795735013563994792297433128452853630642393002866088474766015025103624220642169711847377694860079543746641257655231873761407631291131599686940739687893086296492202394473926039391914905353229354234074435401889849002460079165984084699387842025693698135284819748095841051847925269815416332349072219339261075183230365711054081174371140452531120860973067590767698274577098022456771698828119779621125450843248562952517276531399719768884941230839731686459637670248646103308289255968675333846969790479322350346330448515641839491074333281952578447207665358231538989978456414450339699321601151902015242054633045886259137716401729833376340708846621245828879734198330976721310499427737563368490412800941532526187466576970122003662596707300698594996821074642315702591142272126228605520230063099089191977111940407827598547226703762943063541048113100221204794991965903429312551732136657647803849820175729271483505010262283854159087155569600816850506977220255597284002297914584381267899617053015179726779006607350072724463765244556010723077391768770737084421489951542442588017893156213908561765085609560823551693633730002484358327693640889424391622982795915748184967086472886668403890989430550754379560275751009740857285716342893044072195726395892337464677951076713449754636427196882794813502988295831457058599212473789283738178699161105886855254191563659401903275804889495221110089409523228119524025155813536939771343101022057688692161274528926048415609132224862699411254451954057526044930252545252662951851432087114984968700998217873859305647116648692008723108002697929613291552852915418766820944351511538196132115761206847507756626785444774749883534792587528599675746373132497707940969683194861458426513150498674765852635650589458868628743014926903571747697676463472436774069067719235056961781719740675383203538513132741891278175746815457581443544802629666929900867909586383327054986516971390921580782018169560383573770858470053564500613374277019960134434936674260042713193061050100031013869228691493517385365475178173133883693785598527116518213328140998355838262571804091788444845657504015105752384780685962973703247672412368312673303698836742643937581864332983658396334660466541174512767151518598282283073134341149071182999123549265908044389496829188389464801157598733626986432958439255678510442363118144197313420798027742951218917782285027490804302984886842409213679216761792536430215868610020568031672679018630893037358849342221266225933651347515276452127717296177022415599246175186522889119065266526011292558022058648965211328685912598225813914338688953142390845953188009683925744766206534028503061175471458267625268196643634896031527706571990824427314127856406246107654462759459397602784282140129543058846569054091609613312282212627496764339378039900990924326368616202472306591170499581602660682374531914044091834217441508880561201580985519792588599693091727159995086884251666765173519015061058051932537508224761622647154456400076176600004029366269734231378684504695661947412197905387416646558195536037999740485924874207164598066408257619666733156068556369672187963113412988172739113504889386325745546362771485722024958871541224005106241865419441672022128251070901588882025239614339088169632972093994599317548812605186715200845376699793987892988552617726285740513561156541395596463834411402974696226932716413143977868702801946498135119583162776282465838674429558751139815396994885372948374876979413827540439932816499941017112991711490661726821822633027203136712078726712587822861554011657926366743476350450861436531783244694622595297641238470351058119610363060227226805111445230124140041616677782232215781629955562833647750677596485689411965343321554841412662945965722226300916948868264714961984166175275382753417901043274660422575325848600504175693444514071531017887717062273172858913770451213226627253506021236951209619884917842144834828124361182955854915132311470106845045419781007912132045600810302847619337058646164295618306199288576911464884980143474931199404461506710085403307337051450116382009357474616338627974766935313289345321337097226933448546858348775767856845557349194554617471871022221734764222601194545559515785096707522152135047144485079736715611809458172354224821130201810050053837700973074482545045423655450175854506627383414984017558774215011700257613083041450442590526560883155730912660605800299097159094355816423532565613859178724721053571663192865522914574850734909585708200898314896854326796882235756579540431445482068093215442496358013879156874568259311859093944048884136720453215126152965802823170997421909116832623060187264671335881179173517193138121948340696462797940916341117144877378475431310337560466872189583112023490020905680819309290112607830440226222243770433856773502718355211141837397509759384440500320061394223194923263144643690408973652208399958129347545680411584358896599100254436280873955436079457890519675554894178468538954556298583471056481970131460182447144740821204563454279825369422471819726518350269393958037453186381247459320793447328828006786614517352969430223393369093402833131692961977495952248890172776759997510694484377668249967877544814759982760005870242234195329947927015877112103528099594715311053339174673951130629072522934915588566558248848782236960203830341361993253902250689512374163372820429635711707859877833147566640940860858287362386751194719820089639616466145260891361254487507305528069357376166099685030382891327492209373397915650605748775296052668563360144832377992262501371784195807893850898065367680131418585752832323042351165600646977630108599272120287094827888958066330414078660105862789642983517394936234281028842798824759080198230315108984920916815430239342690061280740954962494117529954253709969394743325664708241831594375734312510569051146195719356986354640781839416369141535121365540401737235895196394606185937067388983529003410737887831800121868592613909758562950296062556667515402943932666098107427498346163424231920458414884875296197794336494739069251439525586151421544190299046027212856368567254138909754438667589012172825716294010261966576443037763115823358333407990955879900860477748486757851931321599229433957289967119846031823751364810768642620110192284453851538199364741441160430831398255290740546627630215545184101318671572910101945627085687732893810208856391631238244493018049829223667872054049185094244014570707450076291858698055524694796570073415547726441726927169989484814711899947684247588483030557144448762586069829075243846384584647549947826314389187689126979018420927007051039119236977333431222322446160658283562022225018130149032083049916579312144714958295099774239861881065643712319781722063063681693015268586224213387841067812974958794939381419248801557523944007732961345943943905018858957472562078161414963474272999455542252458923026854601657032932654625095653477584990806155984354773379650451448178291245774785672774382614154315805628182554064386707008339608556681820454570182854680171722891728923704198504111352279725345868884166600184198469462559632716598020061347678009310713745292342821226845440941326268108298638227514767817238522785494261469753564812904595166627418606526862410335182690336091751851851923733982247098670692736614187183039516043731666377300178288685325731713270991617759161048854615099172306246505929205205121851247475157512173730642901014931533626367906219717931531675863761191041682595112838683501683372708420584137607602455185847683944035799989517964895063567788463672297938298194253342250445297808515934267618091816149991441224752459355612901244990222839742404046839679855909998717156029175445921320795592991755298144366203095361548749911025510640938767916852167215238718363749180465195468332459355372226837262700918363714411447017305700369990517634540026831883540751488171437354037353429440359909352219501392644636189080084355876603856306822752437335703887667876469303637944080101437530700457561058346135915847650103727283342867936257616034691445966834120252281205585613488617384942287099195903201617991328393488963950234827103080408336682473531430584981641656623326654734824350915913515570145652462190322902950550323672580437017881361414266746129518227979949787395844175258012400939542668359802686149223644358031931713721725287743270779449878683090034237653917082196792067843227155149605250901279013220902978772306368817020662314384367255057826412789415661193180581946384639420506039961045065022542330477608781841414118354802140923704529210339952591545218083664638582391931457658492848736042081086180124484400205737457943806002190568868510512838802394921903942574112222602142450206124135184205776296153440214038674070585747912867664075952873856353847334838533188156351901882886174701711286427938796053103143193863459895527671320217590526977090389040751520470365417172171041606415602119363924200132897945556206880540147920254345237615565580367485475767604348241220788099756725766710655019149149969532136895916829915618240323377717113367602967346382631201104295795477031531060797727383298967785183691240331807030554533905862852569574952526389481355204677257423556036702554849073295237121223427545653900554631167283532342382383907211900394296301315822713038616567867454593167306474212086993991292737724091758731278184572436684970260655631425381385157698196239867393281011250989081495360021124991985074693950020281391684078477988150860591151181996663995889561957561788514669895611500690197811935538798992828593179530118218384415034308683490012644498511629367044299405417532980129176856356393395185246701649328825377955882842157356735676657305638778292648164940464795566354256981416962502267801481702996026498046820103941385130353426822169316784123502256578563856245889448341898436882040516387991704654238647029160326882329265543793695976792194067437997506578459321003995073672723019293431371770194727583740655759952677034390167100397944972275036808192679507452029861573594541339263935793483779760600020900045954689997025686909419347977928216609119750602789393363433409708015736374819187559236284108894100847338510573084339207741681710908224036243179343985801762404834261769479252548642230488167480929594976358724541901164096935628424002905074085567320665835464979391392391222199164867384542251400524434421449159551519178669121913956113221370209839931915496373936362222879569048643111517026367933902800286661763040655624253429011437494313484186535106843234960375894549427320342583226025515448290466640650937907787221535968104196197357593909495610477652007955674565353118585004194312469765591457013179675629900785436403182694411730868335645975074435375382389681619667090595955911728940682453247181877199270640548555975937367624628554427232177443198660413371368763662951729422605338359074479344144693214133358911715678049149187013219460023857769352408343881659608069184054195582178941982840763667304259585213624254583923183567993766445323254354114207761242483288925678654577236444400898804194532748188954532852357393725007427790449991913841251303082041838069904715042829155811009912122521234146173419205384554157937114385005406000650946915780258345824398751670368930683618131760676387705947157923297243306359422598922315041351050997616174628159603622391105550594405964843317433658897133694172654728307598364225776308654920882944920043165707342883621012463856779727939212205386352744361560101201998476180355960279221444252245632901604719579408559332561509964927781975943377585153738388189197328951439597527424302371198734864445620525953430107801005004083070325296124812251979207073832282308715918128462240779994821530973021243738875857436067881405136878090398487087936959123106394559420329627313630247303178499688657368514928924606037955846057291422473799874109961983633597273961254080283431226614377294380508009527108392086796380520848178937074914493831033203398413686471423520433085042673732452105914134895639609564723125416489934004539267925849280692607886119306406408426646309747324259967406617069828908501406088356663705025779057449185653326237976238136248466735168621324290941464396822441246536470797633585923913384967150575224357459054766500032158988109575780647391251068983720968471808648732250899498604663371420931053967768435877451982297963121618019442533502431014504762892918520211029944736372576993811147355688910089293320915218629569700844834199945085665868779979511230339743752987694871617100062235917373391947903038652042512485768121150271454909344514288378008052391104194392146051918953246568628577878517438121477179841122492314338830315248520335480139474656346892115912016590428842484433168981525968468304373772204033785037977693218884089172495970721236611121760180871329707849790500181381995081094912372586168571009501124702744832956604574802165577771268308214777856206727003156570247371007382698822578688662301005427184348447039174111279145736783657382349545245755375104538633028172793350202950894169536484708854222432292671384032969136851091485636588266838201509918579070463760271605825865193293375521457514958253739092997143877448802559850983268989834991670579980707276806393236187404938107475889940445854040966078228147506853351315534782940955416503696647375914940338069769724703456440999034539548009489508697732404726454454558525943388685667853508214070070500658107179838798808924634423088448307107495820683627197935717095573116835863662679749927099894866130119873657225837013665073433444728948488427929623823422220865215285945930426621410917663243732874936240098619294196910386671121096135504749292960239526106461033913829896072510895696853660435418766292864316149621921398696528696688853192751560427063149930569358915238510864863087658648187801661413893284438128369413209853965793947679767650900470177211453098935663629783482168538265829396423283691981913254651739214953779634085768688043380446116471379166973197203326921823486795375202067886730458123492594152657285581353072315385518488812269583982122334145890081284689807673988885552311099880310176005920061651575870212240807620654134715106503953050905375694387239584376815801798055646662569634773052020947142475665538683113392630332370769264524772761685887297491747484352809210952717271473234814074118138488960296513809387697418070176217881869604396042871227354239897110338259216921452896921390091142951558275651419705699279101783091397384406238965514049064100048916043774690386565656034403891800527358667901594451078617368847175744648835250429139507154551161552591849502530876834017600651134904170671734125733792614573828234486321277211996105635553731941560979200825703617062501787173189191403291619018228676431021666510363070560599857497314435736804076271943889872108409419191612824362851153546688527117685890978218929019732072085633598904750318801107107750700248134030636326603874378301402430755593090093873698323825862731299314181024001721743856365292630290357225925532882251681157554414243720000263968200715007775679509709714400227996703168080707096876394833740379993117190506457930863544392396733106083090436148097210928755681221304175155915337544264478468132817221683747946168710681090544880067963882957910680451092263447838993481190103949107565311207462626886632378985053308759500585755752507672381509521316666616087599460936755065000953726888387283771841941192007347444623042788757642322224674062845194616823237000681398826186108320475478043741420840987993339128409143935430304407645215969932836377097914666799485811263655462143771489688500203421794325778118013119611383861618824477497797517501818615540324330265961390872629265531145211994080891106918271892479111126633013635753521983852498146615299683623695075982366442303469182436485876558980673744553593365780398500957679213773733634713286099247297206525451458738408345745751761813008350823409391419850914740083681544141749126890342468263143581324253603168224485580682359650157283845687668490257173041806557311158420822809557963629686892106436488105070497921102784677836263556488868538203412981032556238564320957232922844132747574454113964724797432622508330893830082852613945114475756982372280867105946527852015314693993803402858905700606456629030896636400630998774185165559986650898346341339213735409751549860479352394869714692763155313024362329655222977092410876246897696594278353248205154951284021309057815740824892403799045411025141485949352498185274546055758797113844948897789012044157575600589412641958607378758508340218867553423702375655403686690528366645577878949548261951921340701041070666466582669622944463371901159829557872807447601150302583923239136209921035086910077107598633764618930450595990039912618999379139019695699913892322752717442017447408570936069497842339354230409405279505244850598445888429137546503033984464508476596429109141492300572330707179874332923365927259582444997515893583768246982029492843215857474171843144278625662724011516404044622290802096345905890070830403552536750349695417529415120086005107678543511325649483446946748634779627700105090177203023979539018632371080432213748889207961302329724397995685522219429189204367866621240245395076075270891306234811325834966533311036805569524738613196622704266877172883331640124431436591280990062753837103053655640613698164551619639912223593296551645509556517939982844220743266324406389979352499825547995965254846183298057748291940298319382546696880810888707799528714724229904998940576844653045135422553702518494171884621887389702243917002015098031147850830058259588030794187105519898044597204310754397170663381659149252650220632890108370363105522536572367508273489346570433807352778385792246230372199522752820907078383709201611393380145959987031692958710299699904648827433622891723780728027133079116393478907352269291051468821829892477077667881938842973253326153225842858298795672129617429274104012699208274385677082830964206277365993542145692451085656112222257168002326127178785106898416756529422588787119735346483829678282252140393497057640061468086896686750603006125040438509942607603564795072818864011439410594154318596478336619284301655130883016599947264001857086645485914475376872710305675945142228642290854958445837043571020697422604577802500328459913828305813257372956252387902443813675943781100232048311208062170037496621212699141720455065822934083973811138540300237466215567712915744541987016812878776162920602728831203526794249587229338673872341405778795123034430467770993391946141642409630986205908398138282085580411331950728971329060711997855901160724323313192527353009347892288417718245365029373212864881823081459281404712092139028879406051878428692526174125963619614851827963229227755757686267566334557679441794063796437395864381111085261759417599387466491338832854939693783031451276867020385834936644121560715082180334844152091445149726803626529207552206077254490497146064774635398887086868146430956026074549626982253196331369338250049519090296205561056052195770768733480169054579154561315536134990857105513827843909064161491429828912970257538726891560514818092618316926845138242631117164998872654590597421080291397375904606312330951121228580679633993259448147620515265094224403162815351010191447314098656647141156160096416098252624059051297514275166192016170301624629067320290813185396765520183901598602812327004446500937501057236521918714197428403213210049555297738897783783915563260931742565427756292248933737773275755875803417043402697043103448356017677294030464701123888479290036146702350779934840188021968848360573960477972445121951749347852739980714959126818570988567980796725756529741002782153888041951343715785031062852113751935530239783386123916162983211280220932507083020534554866638744047720452330087884146549176778716887206358798109188319527016633095741861781421247291850787265559507133596106862564855347873681438486250442387753857890710059269693433328883997527143749671672681515996489406262175498387824449201932763523709543242206042362616247948771117093646895675539389413129632823347128653097490985476317507221335876018951923220503835783333180456397186260376787272591412273342740538732614607865921118612752758707811112126767061851531873878267276997602326916561227134943715185249307596756460187548749810350727002016124336928753333393136775456583003520614538354384782994080979905480328433380773993759925415421073255997013907319687420686666008644478085463295422504277736511965720835599117724211698052317497341972644938743864284117677718932986110162431633302979768164298729040685807634691673513905623727112731169218170932843700765554332160856810111464438835099790570945073902007022078840869009049948883657714473860172676853908697261999518480876704770163710225391032442379358760386148479292247406330376064119301020295210860943660524191937915505994059687087613785685707193946500813791727349526145208258242628021093182686620472282181727705184565030345526189616752028601238027321811418909148279724474731275465910370284909527348070170094897354730578884307550394561927948768411502806394828945914236711246911984869428047203085695418688120844064890910702626075183809424108353181400791787429851325257321146749267565426410481830576700303377499589248596816645157892747583830801826310423550311904518813526158789283448765776486055469746855234502786602403183443716909662051198748504336017454044538595472922525964882127093064998510225120161856032292854193248080409853998052910980301377758032987795398519232026739332588152190333508441652946385778219918071207294323511001428589850734649695603092757238187624137640917593673916079024047524379138443278180624282525805619038054111036372909716942080936280938168657567812117060527491697586474776036235260970459495083310855373251809622944755652329555589131433233623110936875646591725723993630626631659976602980743232151867978206496440567784187280073750313459961327795275980635702795696830538242487990015138976791559045423303645127003059846069001144078137535041795375163025971814419047056928560256126013330085263684756447539804493378094983395621687715795099544523915341423660023145359968620558382796389306312303376358236876629785060071015324047681194938987209723364954920418859271127088355046618334352324162453356186478614809050194408682003900972978018590000654461668881768576202305440983301558711730978422873552497705475262742893865124989063492097965540743451071338190538385124012329352198960364822621794826772869268694535375624516391642320652331861234443594599719394385223725930214991661888569862826836898294844105432628684656221201854630180362320601320278970245622708998115117961412540494933429868172591512226743041293043290040648846017841868836565720191977018884302697170730251177214605781431663978429329018511063519576940106552458057248637900113887442763154382882095947157742356836873469971721900606636152759445866633678068558698851369132797993834902956577662320014205858503961112117114843127539179366012735699302965604378111233289267683205851130146883243191557526839348774225963168712839234439078208243645947209258411551113742457270028102039426705267307213778955397026148582212710896781253233530237475585414969533262261238754117022307255887750411728700738566991748449919277260781698086516880446324728643326602264980784839385615318452091930717460530335697177589477551758855289166704553402118880726972914979757987329604747324067726063317772429977228261083285481882418895971174612001766863159030692139681541951224191191789906936980837025627780771194450870785670038748574275064763580203178604495529420555548582036117247413616001110646497237611310279728217305170839383358449821632922122487006909883974713032018194565176359551193337117616016946043733202510685406161626087110335218198532760563839487944037265135954989937843046470106541623566337841827052836471776273047788751686071312945834143046104583974472900721625853327547506660101098734796284950882986809275913993391581198377233161150331775360881253209644570010391464281872306828824323309707771824036608602517098591180257002145220312528064902782958970261621163380184757291757138317046753502084691857194075747001047870524113340487349385076100309369822728026769650998204150795370094284840888038148110223446511816194555913137184892762636461989391048135852424987559526140536434192844219341521047716334659958074386081803747239013760613147221182170862514680093468909245712729027196426417238738954646708396904001163179121657152983382015225855640849088651066443041609649484493865903800214100533216706841263620902291698803714343189498094139119902501206829466027142003094941814323735928253941956806547001041194333916439583318326449508506258639160665815526233996794016567776312917244657603777935669603972480358024139482368032645742583014375308912566744236266425325101406437610484802860182775716939688549004690477354582647714221164146668053106643641941106425221073602329498041728367559020026151246365033364694972828234582496694417566838249063104977760150248343195888727322784758851946756455205793847476123242893659073776636187858757720310177661730282586433268862743318024889755414816892918632603897693356643491704978331197625601109240493179779236187362753652283276874246978862347685044168509220177478237727621580214835330289487257413008135265723050580444529663615879405192175521021681996185820857607890043165424690254804249410465462112727465604549037083878593081568365685598750875509954990258121683254239188857992821906115096706751638412339826166616055047931957473003646071843697821009258219267242264634247819827717865187245269235678426665670937603300094915181100129309228424874327198378948471456875924881521211214547952506920175997339397715916450090176658492347123362909402005671493484534197514977509912064250114897857777604403239309549440368988643590412797788181388096963552360628418486945269020479951809633792523045237561379807746073917757843397765592751474868576708018133109739181688008272446087538618161571545124950900919813253092718897197486293049349433590311568666069778328553150075993154701710793292172049321928068799272398649793069114212506579232933088757128517446507213759935679696969170322117896055896181965312333640972867053433772179154519372169037331024602344474077723359302310061485846583723149398379104281013245822246161007163841928476184810950840136024205315807139374956817168856692612759285381991327681777679999222080188682020231182535782829400231740653386443859023480832928137182324256504572338368292797788796920191339145911541267410980666477320613783966053362052271335482646567325250176873565320492212841767231297672076967571488760361364360974365292979988633373732301763129110723901838300721005237386260439829857453977408981044021042126755423571897362605961510376669076603969933069439865521386970624041514920688181759416288373441196467280517679155607673592682669247971307473217803085129919056372082912463821369244707405909057818999351088880726749388674944431239499620581832528758824667406380206174603792752808058347212214017188713687058092037803697444190801943921438259422530743153329684987099417667783252455555632249591403391904701067197284843845426877334977188670511782502533867569174689420849793916395091607847928595144626895745246746482197532394579604256598384879021322221481106089697337124691548094057329321100928842812735149233617384678852268042784109654289786262893723353869713622308993494374441104495851013446404312891519600387996466579100188811313073965087394991181534084420976990286694682115610085035481870813355121537381188518635024376766103278144126297223431031798274393814142256454400007664191887049899657671552667745222766226701437776106257478350341675393658047747430902534515407724717735288959318423690496367182385632673170296986434306283008063258763773207170785835857296960392887309162003270409431168749026957607396010514000981711646723197925249494461184847377313402674847192235561552825572710278418524097326645089292790142984092643340312341003036109069192418391963535595217036938908666452573560194323609939559416652129179998680500918548471918625436012673350682119919937762685794993044679943461631775753601439321664561766881026571919253364061137568022490297243559730221115675524643676572310099530024822932951616764797181857495765937749914851625545515495213628271546847430964089851582453140748860903821025013657794364703989438167148695801489166896602197569838084580767946464373602169893096768490439770707533482962862211756675475285095063641861020745782921256203967293595630866534527279514949001262931062445096205961447322935781431944812015557042256316654096935428485758583445092334717955447567730406549924179714681776319219088051207905559710143175167680071356182594398418737652750983854994170193908277809901917807167549060836495393847007692746685121638629281955699796900630730755056999107217127696199207940266280306075586943814828407859225857304762718987159235616393598862032502982246819649459641386253760700682627540623474180962573482446555940143805384872818123602469616336789220859073045824845898553249391704960902591175108866629820140815758917381795976097337917909391921784093229655815139154293572590879888844520025530544916841429734288161745470513412377032589305599170390505866473947334039950009870096688268535353685114448248403780790723139126974536686072411633027046203439016726363906475987294334270359777235273262763845506522582094587567784927401254370949937338765008134625005347451873976797999884068949121933454709479826813240339021176135133476776114287566513606371489924345399668918725181969580816556345437878400276358858183382250294392540190201530536561874643941325658325698424953064042541972133434617929592516293931677424531134443586060728753687766282757036544573210434979258911383819167121191515205621964154771301321529841932760882886838479614683507630847541564243877191060619748500314635412520508342626198997640022603492601561932823605711588979194871346008510338750866397405460717209186970770887797583186833913827810670688782559225171426059815461714079547040348436962649751234590747879106380923671141444877839832956075357918543665481043713509392516187279239786486623308172172201584977302070590993689745804619267054724820486658328495156950443398846587684181027848377292850073746846595643746416269957560256767397959822327008994209361276343245095515844963409038082438524763657622652222967193679228688374071395509483608221560711025847533113813014008465978446944605019131825909706169496877078946690442544044915708916072588690753384719908341435632430710714247545989326554753036197949352487574971385090515509974018569753628831539037161752554064372381812592308151248369200995662359932127981624454896974501503280376327607114079097891544651272635410868631495058706650622119254328907350816077333373382470403497133935731384242229753391087017865364037642410549444429899457672413860270089515597996180882248410880681912265404626619682869163854591922552302581268597792498186779706584732894651577364324321042609430432933241565879259939014587460336083482800774081989503121124043873885731463723494389963628775138036852862726365890093739012943107521380835361479991220434272497348553764776521082741150822586836048108792647747700908462488025873631384740566366657867594817227145206062070064527302025254706044582426812878050309317199729019438570345299059094823176867998513790921423730946867415517864596122861100057498306143693215044036770368524872051940401611168539182109412498282633498764562975429492426529405095449860631387085767916337882380124809331544746159021303010283743443609178081688719531420842584243927745072143062864073701004582554772823471411981185205745091535299569823428527635901394375653338109984650454665193095369252717608929047657421094146258961065559406624679122912684557050148212513714307857784190313768650401493911717946857124445619359528307808937762818057302298744688677446333198278787716802719647721068932378969904810585776085200910106901567770018518941319575003443329280932421531987955336740100485976193404656338676635778985647931390139504328284162192531687888120736193156128512292689130177368010409419687073399957327092905448083935475137180934532285673899449767932826322138103386083020122846424435868444973379820015473855828996541626502487096044774881058169864082459087444524675081211497713904387099566196758872309249512201320082014345389430379186410392451376266857401287700669047638641392364022597139396440631884005133456247992666075851025042197162109337035230470341305049575720546486049237414117373888611640017517696055127949898228995131283547333609570255770268850442768083899270097241522466226120943142941637087538982542373139568319137940265664218995339671013033161844405656859451582334037669169617820344508675785486840918938716387576020842463228142394409061765239537909575742467428455026958272846289369737022050516498549700895411063156850226846606022661954606518066714632046117856862328496572734543415902246721418383352533664931100278694183530880312020183667602154880171623836523736724374147647073504932309067279922671576663745900177989289927093867341619086158263161810080755350660344824983894085259316900887982027494331632491937600127679788127397378651934008282453593935473000570902170462742471823116026537611012802686830016382134170476277487513517911722722676490438586299693194981474709199487638884089882528179663799625942335662495525036327026553457177175889915683881039201803985421894531390069557951703467533493240606611728150121805189795132655548312543904975521151614247910140571148360058531554969748193809817385920192475865319245735987657281437951539713930198370729614371646980409161698407691510729451224301267726895912363276626093585761383647867329809405001289652156301176165515052895563324837463963804729031064692738987278764017948168458219346025070056542931095963714416528914334704873778825429153578784923023297601514613880048790349867586926263989981895523515365337822824143679054361649187217127905054070355034895487032946858663334841056560498827543759970506257160753416774567711508850748033162988267207021814913787042402288150271223233063123889650582122044056964301897738740853696367469116299351582243047079652673501139565117361658624016558385045862360045246776053314455511068968588370341087227107105340803918797169598602691558235154517022781785285202861140178427522430943447667678192571631643501117837066607750693009638902556138992957884910683425589253474110412494544223682940102753553387019356846501435958527458408017237678351888764348646181676536103473565168611399079373051572642594200416126763461162405929837204840300954215171170159793857880462169129193771752436324636925800346623130375929990872412209777402914655798527039474428386134859484498190915428705442017730381385525434568051262128433628418419856830229765435796209352599407452995866857993598983722822119397366379293244756290141515873745522041648911548120773060056502114781051260665378939111599205349680921840882558073328256839369348282162355890832579637857811200367539294772386455029539368439593466489754779582780094170011819688199944061236635512223744461569335802955887571679952829074577421847673379201461310519286370340429743850624578697985023671052023130538691775095167101419380108359914506487257940271071496480103740785947263897091126334648984948619085433033883490913776954763446217320078914277355544290217782383082239579809945128352325296834271683586487728744933617394834562574078912067948960576979625884419028449532305133606954895314446165404091695694082947223842904654706162494431639611221296188783768397534929256310660888085231061228441804846480269762400508524770919687348758906523144174087132210889184039329129503454648104198644060263743571065668609992883971484705444907028633976038684424012098192918615656299762427794533443474368321167564467092047692818885742517891599839217710635370678950622983994600667675702011663029603570070978759469779778296874448702645336730614154067669368020101845209293496555303652154494985550391054994359510732909502430552712814906098866961958800210591600182643580500710145562815962108617914303444934716996672828900937046096861549389853944818853255481733117744469470038308205749382963535592431297499771697449209704799353012022352802896980833084830796699514424163007269821405142132801024525298692267373101378143380385827065196755908414892249021160244742855530414465408010780525723511327211509325873364880574480853769747370319515827894286149978369690860277001814967802219141762807935122999606738636546368080759279058377885810693348778862992003232208251115958134756847412173428509636636452136684233407736040147957833781007717848845485714401923594668480362606404649419095423218524455923923783168605574795154764940461043122035731830045985722967202354348604896516048665079909847134242922866497263736512512006851178238875782809572514176357484270731392520911386374153632099365321502298613802862550029816664631435932719792290798627021504900897496650193693911697069812327417371916301356077469019207923554750593926439486039992440450796339584189941868729027671510561988532079116764356907935135601060632736331111516007078745047933611449957038368195804926989801068632410236485873878264912126830349302988393374405119151126045096127504347736822980613473395966425315775824505482927439462073056534546166860322941850208813975179137713547415175154734836796896965172340933889414011254427932988344162555608517928620442111199511373104979522131223709830052573436609033001035798614629727456019176481648877726833668161650752250383021854897513568864995797351833371903877659111112420324963305431337704798962245316281417360880622136267175419428724033769575893877160093188214401776075623913058792418655950328878176225358578978626764057737721384428575267936225772892734046825320251663492154922906463709049370240907325032846513864897038071623897472066949593620949413895527357037352120672100419522097019820716858711602036485430698223945810050061391054977813050340118582894177594545072698790950290245856253888563481583765150280827653533058113325039816998824628253055658778295558641528002136685084576911090477030496888376239068590117876355592391070530348548717550752358940089141599382888398977678084634268864237244072932293886940128800685660797154158435512458475883782955822608312885974726691116014341852432723281053150614080712035622542379324037630738197353842335194833168559599327514255571281135859089984560692019399051060794058124519977785716536241904343526404950545850212764954847947202627164166850016237547502528871217569874849375138323263381963564151269771262842900458950001743968512633308057729124722969847300124011746136901841057803826161741034375509777091308033983858500034882657173668372413545865783453389215529595463437004536709776595406382735230199839781619214272475837997932709072427732982567346994442102512694763365366978398634490995795252758119749373457499107039821720358677389106490357557624157016941524534431640033250137393498092254029599306116893147025973108590930517867600014377353382655504501695446573553584824959723752777332568410929313820191269116127026641610484473048143747221837268045886602399376840863956044383499746206318409290079910434646186902373926183306049770794387621134680484519845261077251860043254008099426544133148288563995528104962596483776765941155624713803533720378420400032639083974272168236783515107319294381931841381808058684158673825065329737017560882582434829937471774906143954306215566407604213072042818460928347422335405019100488342690004374050515663541431522018746147542347259851043657555899225808101632391097715702100450669815426530905990061118423146754118561323217967994497441985603687554503068382868685567184495731552657229341982366539155364219542382813350441152477101690742841159389573984392610972235470167052923142792602090020786534287634270239801984676054064965886472094950757604792043526726546017877930746532421606835441612923792286932439733640325616741779314224716619096638910762004095604278071192969160384175516728791685107132621632856257653700106926453942996068870659611187961234172580149562384626476487336273691035244532637803713495175606272587658012239523192895719804090890261630983351239890629136452905906302061605796388460763677678826957817618784413454896489677672309860463011775603685343879441330706488842800425854078310794167663593336968651420563363508983827386453792623653069084112299139134350774826095489625062589950342508779911363568084884012536179655301301854940315387767742045792285040004980018729280636380856487152326822822717801441297574931550681147557334037459470465862055881933359246377475084360274339027918401273292193080281673218742089723421709684160654898244510494304589187945114794462764603300594164561172723152899346544981380919662442601039151729756729353550462198068792712392151740960135452078048842418317875168617522559656580585921568642782388451007933001269354973384481129568435997634943022660040305141707405659828353469701139021023079654841837379436924120645266518132827828417068249956843709342474165812091066205618288733947878662297643124321682250272294036155602722055224104948392698220209410208713189209666607735027238526032553212435390079042290967509018226269486407601480893386706309805896755620734269350512050301129053214056501061918486809441843344193231164421826228798446184108625117621102659253084845653046251474122280399418378619423028990713649848722893281233752279536762493594185418304670177367725567935158555087967291553035278798372400556291089321505451434793609632330892171026123148196933617965243766617676234104548518624494465792299221841359639753640402273850006640940253253627944525297919775018454611118607411958685437919079056387381896440572857063865898991715967077807504630396710440659787932463673552216946053800869312020057950270065108013526121434400787578646150796666897809318788414393383787411388147620405776662426512133745804399340433785692316196993071539768519228183379657637604060378674192700192860931175650410854863166278951070177935611734618044814035146726375558859386966162135991592326787421536279456505922339007485315473622510221483593088702936358273946287992408044225816504373572215810538150894990661489977551688102735886494032410436567095635637156538744655522416182510698684600476770564603224843202856011846426532025060177176736357332265479382394984890238257894344342635996320810304514806327238367561512315765893139316344733485050391043492578949500822686703820196808100571329344088822599436881211367045787835026020149289066987800402743468647073280928450154730534272205901416712121048846097870608515232179127690040204205252376425019370624102097351224150884507202085683263327248785105282889545392765157451129943774249962362522823894403702198670224532019179612764643319184136114554696343632572087262268698469903786452884542809499928317223422619037432268611054505150229282278562412065349684605393907009258978416576095513373361275783584233195365036158104761368899438572933226339077309486510796177958783040016598006556487593935809951522968328806607355279261375733290157903713754464491376030237771799763418303208415383843341395585602056787754539381072893861876322095780371443869411716327893899509943113706986335893990048376463844067513559597419066215120451016697236698507587354202317197418706576422252536269046734622690401299868223473858735880188091348007234300012911834669907188536845276100384960871864283263346279529027394673068249198229344523170507180103659955868394223816773143965757716816973258284103535834035977164180881353017189253331640547797401901604587457630276211079193864854697771070406652223273729565928552487879020374732825382694710210750337421950158917667173317602625565056853657138484868040329998959015365513703575318221898966946619174151236381089589423381546812753044123245354618308246156252583611579723242885425413196773075711199174579480063087332610814673516712254467959057852153257391608069455287994391553615016424180406223270837931583928406008544589206707779334797808806633144656618537033861182220328965358425711777214730048311781932384926151657647187600514033219437838291279340621408904530642344113946924299120717283822744660914188033808963814579827614468254009641310377387804738867943023757912840467104260080543596827444175506466457647171041063866695878499490124332469553889904919240124262220246685688796168674136410460428926270612401005648799561592616748911899754151193564510180947929598826966989865941475035556367787660613291322628487288816659139703670160444924958679560705449567052167774744799070540082973685695887905767943730081218909548904682225562934740192580777617392928180097478022371871725116761198219664097214614703405916618086270951840937396853811567875288142808830887326171200885664521380034672234793913104807653313728931505753337888442686261962294257794992757498531834713429405761820599747434542987254608326942821181069571713406029936339717439725148293719167664328167176436156417459272160244865520741415608520002674765560279064720648931674265087958077773795724647235001931597646000523111850476815718424601301833357724537285282231654204000927680975884100208910084583903062696035976972801991325814063632789006808163449292257344148737816402845623624130610366000647113938554834979447304910240735871488958135871632876265705329271084886001452174003139572486574293572174025753553415607289461538029220125347910718633883177644125487739817125582991851050578727346588516626059692940297604685211271948618231572192259239275228659584877415921972218077662413470173232566118213591368156646521638416860025030561750885690825990170417664052324899611943777508041684566000390427154665636007478942815441486040867669622473826703504403948288927893832692836913112290029419858887634444480788069180760675605482078942663643668094004574080129300608180675853429138689031211321074835476951445543040540695560039093786916513265077233593168953893564444920639214908523596933111929257058510118218084990634664396274326603206560276045506472656215748075583487126229545709659792910871335216507786688271288061687974016472838520147942939244655087835557992150884464241889538355741456956205503932044861687879618549996986827801323363363454282776639585185637319715802875500657901767432636125330057322897547120166260656070752358745963955008124417717532718344636355495227147618485923602914391942224901067423578280568584782459362483185138402841093636212618550208269502557651507905456686796298133019681812498941631902118073165873799853077790262599659817993368988951656926835143387462083677057498741441760353864706634374368119324837521534992935648670041040750223414282876120648302551480037606231684977451943066820296534805733440654585112631853739710131493635726850266157045453660820318524813043248966691143080552290424590075909803031311659034990597992593810478474216095791924100393013803362722155954401336192472974064822218624496516879237503499152732849142076170062216559893176416298868326609155886654406698973014127735972046732103412976477216050693110864528648038790372774389857060277066428062689654894691033111815189616507928388575641110914733736971914213850108985363576624781236855876861282745704944472068509533237089133557613691300579657483386174308176379865702492379605398875617843809284394875903816450718168499022380810126968864468523393634593757834037593426955928915251193869343215062546520573534113571908506796693481802706985165429112957350500098550757179753374315292694699993049796579408327500736622066738809588682292371829034484469516430794157492207036437368342576734134078988236309784235108205284247670436864327380444919792511246375904668588031993430245690530384515332553585656852589582827412771289346327438269367026301550396075534888539728410744478464253493810405643438412302614600254067819793744312137511165978394697453097591117418440958326519357116451120764795630817574728163548995914910452922556301442874387815911674626877132401619242410713207866805963888801900154075181220977055907911112970781772286242523579041557979636925625617899724020322877984080821917193439439708400843182807489890590666395109754232574475630980708541616594375549455336361640667476983143929574329313537243050090190619496782586384601854430109013339122375932663262010085196065652069307061792159521179676001081097655588019359698681008019068297696274489261205893509058937061910713178565971255663908415814356332624306426844199935579458731820545956162088716751721117442826230150601761636217484377915824380512475244708864087846205052362006898832708180654114952369375948621563150940810945145647861366503924794307400234498597162902510515915104071897045523435934438860757281871622511397530188116251555514068698288731572557726656070488058769416958639663499465748512522722559712371828207277452675196057644411443909733077600166937282978787538191259530957417502609434884181021134399626251563690463393640843577014608072800778496219487907363406529563336178445363683420159609714685643558254339299830941033046095039996705536084357740873440420362753824253767351255170532848264285611282482192113345460277781000164037574397192944421722702825189740468859836421631040992784047356264188461358923011641130134531897811985970770144150433724706695202723504404977011576601175561008557672257395870572132648577487130106358047311943632589327062692034527034804297577018812040140836430832320949887707523102711027420424056606933230151673605359686372797397860248409285734127280027657938031948904841533015435127925682087861060922171979039719109057382611513157103894617743768883405179531318384612513395279189073782658121738670969239559521219624258481825347473950584617904796114434716071914465486858692422044882288759992416748742763508809666672318536380325548784143900249666137086859216688145099314405837126646838547556692851222024093676425227916912957944783051673504627918651515608506750935939768882913016413307724548126118837791918468691020787601736753436533599768840450197992931824093529275661945100030104210775075077678431791050928823437151293892412042552285809191961842160018624059117537720004544978206822922763196130042847713861998950900268332718035535584710586898669379386620970279899872663249960654624014601683710496765240762796123138442984613663834184807632790536071934238339323270788593703922413494252132120072174856095030055661115239803226580689068902849952996246895702094160564348546255772021344572925223932486519743777218594144730669262663752638506361059934912501926604875671354029102812082590786569850098169272640930440353460530444491267429411596112687770920962142348975081999564135491756949358505580054304680295255917164073244712774250802614535776613247890294285251283744646389406102345691851471075285488774298149669160719514190902922053301940138291090678595295521559182127931725287378053761105882570012634217351294594762261332619957058541177805751169531302913628813203319230935357132069873560342410604464883117979024422665107857800482572246991499401529677120046470423069649141244872546346258005323015261201063188424866876675434630848087258177175822818434441986247604589546164436279472325660662498787158784191369886189638448066625124443378146889018098080120583063327477550893768289648180367002412176489889951953818472624596914897544884848350291218764589039906741907579307840223283361260759061862553033579748169488535856952459587874088725929419438318734007769045890598986064491230065326797493625329709007789540902722918710270380900558788283964573804638779826496623154553955854523237066485032064494762309088876595368630673781999809820438465774995893056991173275749433772113972305154440875485729894511757954438829784335690651073271786125778563493402341177357201535341043780475604550608904433180846193493346070593191950298180729314904616462403352769771680471542815127570238783991171752527430316890565795515873304690267834369043176938073799106992152978299259850648847616927737141045154922623519505244036326081638242472475409446462329824299329226945677125193886607833170187491734100132057805773394840124881703268875806492442590122394320185855399716042904532152172312454510181426498568287982500192287116978734318465720131237767376256926440327572810358960949740906701302897897534385346744813197185613547233010906944607284721233008363704202344513431745031135233037422026021881239609123485964817218203826382576137406727187682629717382239011286509196308245404985053207544138021782566798851884148158161345372044829260791317791445762269846643115474802410779850535464670149926471091501322938307751759091350422754356456349127505790977682240653864533242710104364975240210994208171778420082468265796244936866230857427345292847409103506814667398456314785827491820945604072765867459592321483385886492032567607637956537813253137386737644659464956688120338673086063112308206636143378819602304819621697785210291015831625155260303121240050125745338702820054589759078577514162448693343350106314240546662606582958491475672461058053694873396635482734704865785646515298553810487449235247858380453107375843794595117893255797080273402679363906155643152594726017305747764863919802025597054012036041379281400930916593600072628417672922267672748692614993473686281518734640518099124225342656691443716202804847954317292150713117988871436874375505035645483575635298290353407285851621885649847290149477831032369654011682359101912947551962342503690309194240089472234924877832103717623437156799337637426442698692144745756291995248825445912909281606625037237147109764182507120285254885334539817563201919231748769871079329325611511765432411581484739580343137464621367700285904103399158710454928414019292573191684064194502946396215189916271012586449141324589751601990657745360052509762584175106581910267577938033209625406512333708844558688460446011015509617925992876752281062438926617672446271146493802723517590993318808426381386501112104876090508083583770807148307220091003568051566735257883164010880092774822431865542073245532444121746394836425075697877998141596581168397870405009238820608236822281433264395059031078760828395866827355560135313234750068646271388296484903389847412906211380902952606988804763423656111486512392508682753501717370216408622954660531978874136634327795321217749452887048348094390302840132121472300359456820538314206661854451340489919692192394016846191116472455390203875017710185916193569705161765822996795657620296623739116386515520171833672949362570793056097129769482735130448882089027784917654683476290752657960710340553283545510290084872313404585928734192149530866037859323550202540019898614848886277209997630199389058297582446427696054092463156554892522789921336348972808666362080102150107393190100949062192142870558795434738890798126968272225687843259857522206974416425028725261877433144531251344092687849314981954705779371201407021000728286226934187905382105759671675466774165107876383256162971306355926382200624275049058467109727256425750859969681861775929480230568470034002281587787462015675896531743113281896837438531187043364169337837065244584013274950134855264019297793240269221811379266209334494572732496452397123734338473476780588661392498589542708126732319002667149470583645314776486410169863351782127431237699947608522938523424007596920463022988991231341284562983199078129644661390244155662384916585438012776089317048625138401342870552173358907938924240447917628057978277817171858859614779349871862338241735503753090002501425915252794036477897370675725694690541484469729356498579012230309944759745798193448822838174906558478927324155154199786109271880175711156281222737865894621382166311591770084797014255520562321934977878307773064686464979475573332798006272896236061293463041430079403712841622244701466279027176343397592844942398195026399379362647810418204443433084613872373909341284980804927172969024753993086121832060760040018825629632577048928027114749816317124965404106132640541735659865058381362342153512704803362644863410559004880783287383868408953262990121733421639870068440518992617089450767383350497637412979953545279604003659360695135883618258257558118782269594118629724858077456539316003275098088853560934737381938837131504390689079739087401399931112294816753743072586884526916328358596106178878904067850266445830512354581579553942228191900526734011675562903452156858854682895535525131166746924550721009871592468491668491871360646483513443464299920644731151532992123853621666341311500611409539652988916932717272833291907773191041655446926185669874761207774883910170940213009085445842450955505750269154958830916519173840626844447842386617064126022837538156102979117254553600376558993934462962482240039689322645909085954993492688150333850575330116282913264835325779115680819078204020581885270125424092230148087674548332418084542694495242154770391055998668201851528789000541397896995075022018971427099788650082025303172349378466079405457335466330854173988287153075988397134286876638378947721119781756230364624397769880266650371972710762136323463278077219322412356402522606230612836642257752884139159281910724003233147031227086721342506882330142394335276533404083309661493286591361188415313515737004800691568562865823674999285510386711328339859385948013470748979866567767011348864934299926968843177974215770444468236815370906235870016462677548886468790156738065653399693740320059388401206064716375525751779066469904548818672703047051297116064189991635743357863959597153709853403967645728916124117468460782598393292579444490224098615075689256576505285753992847299200936795453157257587569883754206957271702142389015341602437725018757667748765726139187913741129249247080682989420272597219483463244962883491931557887732965992414008190738470046524705396787963858124846528490051768695675339928690191115799016321242813240340478244186976375650196674459503315620778805119358920692619639125784992569484603050120378081865678897748861557920367548842569776855284180583491633339283222685668110222741100915273228891157898584259617311236301786884217996108195755783478438828284229175906625324371766230154456731926207188391939013792863731081239804901013853078249182587715108534462550684646692269071660829851791831824390122446935029435151853697187642891481930558910849087402795581853358448899269330432228084085750474563331426555015531853011425117370951318905785244962362692911584512528699793637018831386985847619854422963981784356097212610378514365246727079962749577360571855237306872786297767292999424989657668082492417205446006114669930316313487742586184709499585559257496475327143371288932396810236578832993553041370407218325614813939451199247213742307803731083336453017474395234488012921557549737206055167504534936799452238791126139373162843012527800351402431816945171338911514806245657232139291639144667156111875313912685387727323484760191932221922147923221096491555810797197255546921480532295885518007918634636856042036237210342275976929511678812734844800508949560181486411672345545496720212194794394923545376267993501120644334319286178032448160452448231483120574010043088163064385768874219793843179981881231051692032357146189303651780023238723813327797574454392485221507092642860894937450417919309408334031836166604352229655630130885569119658284253537148463182297901899008837900455952908262215941994749414392817584718586759241176235348856713705100870637235943468378088857266585284210397054193829439845093403859698974936207868909952607073684376332271121769755810822416509393695976737332992922555948295887268562575390780022624239649349352430215298915766172473469431831921600196932845424167386222691192392816661557516475448945067019572265820798621719215279331880916928047449638356856285382590853613349141976914315135895653910604986230194120146625404941711007317087028790813922611414600315538654964375973375161132624919806973737798669569979135731060395095043740462924286473509608217403726418845803657580123666725325756377625283353041444033348506845409740638323597351602202905560885134760782695771537336197797801196808470068540540039104568220259822316492561877226798161631743390276319797949518250037302749888797436893505144135302184730703900974380701172067379503497049392058213730788858112397849261228772305692721967988119364447105862360895450415459500786625869081035327299488910773061301874552327416173221660562544306256349957254026851391430101869664890593579809950498612249279231807891232119314852712937870751715691007153538475225743795055400820158681264699152246033519134188568506965006234574712599861753003458404902190338197847285232185825113025216132689510248697581660130181210364435322717774181596379034251779397646381353276480449233053675378780121909590074864185758123009871438114350831459557935885938051137498124089850475519619479059274183409130773388483878049183624020819823690417710688808437379691721720394004177345236612517263340211752907954255421785350754802187718170666472422388961509856312924107690603045832060561944007586033177773983411960387034239049779964986462706674813659099234449979252175209275067244562784775479589828203211063360807432484402121993785339199402024819120321500271142111644255105142399112073056948667342487226758252402175993194523585328941886007473170727872636286325917994049151545580676605842806211801395107363491188894434449028491805667941923555125071725591541640767997660426370336066963190902000636800833928921104781104407953407952801660777031164773783514791808623004837235422686044914228624184437490598599014914899803056390833533430812643910389417322843983838031231602953500026708227295806841792102350452747061346930801916269231084542938274111051613770894085437387708367420166998486443515644102896332720241835462933953549509844180265537332803146601366465659165424756795317219135608921881384055822152676669927497233348344493304540117679072295315797713097015475113652183792480058907379808556441041600494266046140030732568286904405993028159662004654186497644849956817317234980770352486392387425846595262888452708019788674888387516226332537989878734748695308430560321679832269763485685556909524192185209778209578878109403295856707811919660786504895902291449997128888230009399246153809882095864900958791726137788999752537980285780282560063963554442370247660113186856588244798796316621939079454141540998493388843784575697233020458390430833328126957466012562058634097569712441878937362085793616844166441332050193718288627640637355719605702897553740285957094424091398248027907166931916369969129734406442228619188577008246245271213849974716043853286378329620304190070931411251953069243118579681132901308384250443346319867998355147658452413139289815307316460504034298300265258100752377248692638094054933728113332575492623482746822996980775626495078533710340337201496737283471149575755878990078116785103208513569504279082801697476502814104167597011889671706726644297017935223295756543335507747433480483026077861466456653396341845909363361152634521090590898277814445500929416216354738677678987533866734907074277729282824987444108917862890657889605596839009441387610059621110851204073072351257099152292289882839904705592587163812828827906989497814919715989539569489177067789580808214217054224102029348805440459839801634198639599431419596309630304900712470983235226347956283407019150145408809025006599098737811627132398987678722888591844137533302621665660794622401614545738044340915154763981119718162123008553320545129388829844052804467742698278831480780160370704070709186487119587299937602724529227776274666657613111492728511285060979491892998168173325125613897163785316401689079278444420481202818137854050961341803405445073748572109888190791477072670834867558929855956687415519728680432797623085860307941565217652039636772164844193917245680224935011924423116468310007550836158462830581974029458398399585299004635641582000673367868636240370151902288729441981940885638918003843126472246813644659044414280779244640978676047543208026104110394333919478359077747833847038049446654190373117369249253634459289326942641987446342839134461681957630932502411010058855503988504471792595691903507126122354753677775163717092519768857122500713623986392836087499906088014082778044369303124258158648926374488748835707877348806438171841388681924551971008321806774275094838616539266555618443985579902146757410224158492480848704977995621198365832763819161293342046365698814213458000554997228002391118973488910380995040432466296445266788284019149948288666656790233343698180904143947362351973925075176763398699371081786282015122251114331804064568450636996103944091188745344391342838182937285437543862243590537920543384321790002988444414614248456250961054591823483601813179224049253480090600556327834842337185885395345094913551055850318957235641040687358376825881105754389863787568662127362559466348126615775235729111900467832631635197540944356515866539308157611605153094420507515047917935591330223823460954956584285448860508564960774310692970372996046955736861901764078814898315211563800694701454799455093666345743711621923612838263712895784149606659617258448181589308432996707476160357020934207236553875815366508018222120116233847628852295639891308336625613199298876864738728687153757426271758471016934907325861194319472821826782709782778401481251999219178047254299646160129675941641759088827444352729543039291978791599954315949967314048752824867210551984052873589732016648829517344757560565929099934153721117535299677779229304623293279096865652251359226715702416667351504521247265322613848013402274818102142979493561806298793251247016595871467491791481091169396899411151557047893770433169096398257032471902198025879633205320036478753206924266050742566173281870622505421229632502069356671636776982713062870553785135598145577392576904334156269432631583713288129800235801171803870772930511051646368300524487134005139533191752545029284219650797634544995533318348453914995716812237426950100814519046426786912975586868914960151185025244907723087953955586781609138509296639876267253674648419748985572081546001882423185001263989166642288021928250211133646481927338933191473035071582247479788107906740568810637888408727188773251395084210961174244439010178660060674742171199543975164341506684039843240695104985756056764936650707212189030953189249776880309576759750449434069045067124122683881446267619806618798841600523860547081685150235816710551102210610068824624151303017371613951603304904240898783608561510693244035397739699554859346252995014267344313865063506310158624601492009724437846762522345569546142883225361356119113105293673313154658467765930278741975341342024780159819401585502340722282962592124547100820135380056055911060454184886374995474542043315795983341962274882735509281906468947145159381639873855993261831938386893452794410331953647554985401227585343730103813840792269878018141504852117625819121681587100665027846252972059378415637244481446722520531649733258355926267328443361786383127613741385947445692665497379944209429447795849407236199217808603354060627623749471385932396931547900270169162932701593264637642285468277589634530251016780423068564438097996137447392816610372349625595930520281760312441945904280199343391889541511170357674326881386833571781392517799648966148724767793671458023194392964520193875853899987172191112641429196240644818079816758194858303195293473497541456351820023188042612438866442404110048818829897010564230201131466439980087126400289908331664534420643682840277416665769303929331545529184114318059289600978563862533491558762137452985291053328623440618221959081270643307342500434913553908975121351400166909375749369508744908032268373698457841747466148610186080670219964376813526486762328775349302203855894889081588895793158150306764865096324258335891062932261866263318190017932099039089609744300923595336847723788250293404128058192224539446514678407833177183222365752183438865799014844038161762942852606656296568301692504123771737298974815105002850503794502748365229226540535398512092697640384036380175455263982665059475398446910518497334058316471766184918126161124720367944011450946519105023723419205640830576362178678016801600204958963319066243455574946742990501364119972998370788254827171644191253382752031709514400958699837549141380607123487495461867057448081263180824672837002629919646437161697079854800337364079656269123220383783722327491942330509628234286907953765703787297113760576907841900006570509665053199487171243317150075915401330465001500635585572863643293485127150037901588469726442179236307831994973421441220163190803032958810308771028558681223742047054780897842991048213446786217123837398852219018264764558258407586656152193716937522140109819600295683119244200081338626366265759189103605760211152598345312776070515264371261948372285307168594018879793527882471453399463852028274559865621759601165032296107296463159567003631861608704602313743437981237887190599547058788358071619895569679787087279002640008876189744039409745157083256953725836497181730294066714265285294158944624919464943963267373142786268716551457862932929960477851628280146211480493511122388912331807568652714202618424639885281079129280243259178852346066109836213058926533324233976220678520666933668933693078700097957718250307910321013669082012719770445995261638795802185395405018686104031134014156994494596005708307247295859570807701614936947293327953466856932048264128194355295477746073643532710821878493789310329065953861702864694229908219645513439534601869512086002330197476053730819837430487405782087771689659853253023187973242261547478976472501662361981819180846294694688613625787846867007715365227235462582582313847111508880490554492674914873652521945228301387191490392871556420331839261389553642288085168138747506124731583720949422986029632166603915198879892936314007795479390919892826251270441718880600994805392008661296506408662303120555615823185416756264944835638171391674718053803819348931659426971588999228161457462153830570325324446156650298856422402962944547576516706093151333523707227069933920059820714911548847354059650594733614253074685430596192723718055675130415199963840502857512349241406438744884552852913493229742977695501959241888690190838894826909242723723585491092856620055255452057490330671611148407140343626865451561593129673600056258446280048206710785134247289389808681108727128929934554382588776131810291098758185918138490566474206476334254827437710041593758452980703791082617213684383525200673626321266311519425484540083372460699496344128773139545928617061268702856441949044711584071586334924302845896475780285843166696707767324112294806434853045902936308464106214809295917058028776760020830760929851981495010173343470085457568468668107263728579534371134033339701694269277377127938136624019323639784068222288943830431422531738214693889968455721376172003334624495472103535420513639800020595519950791925209447648535129233725209343195932369538428742799798697794873871300678122854115960700134815317693159388466433411401252236782581117922394711428668800534562411616020597528263178023920643140395592524983898506013308455966186661394450282489619201759204080186795923933544995802677506909327001289780624570037342040494968610706877999503078744834597574061619967012399684821605689531925835149862973203939974872112875894380766066933201428577448533073590457234662980015411393250818270669706131242129828485181592561647497449658897958096861403043924760968096986463411298359152459386790570946227043321133141485171222126449993221783515081024519306355513593098658377849641614607163894411465638223175745962719023623449650776878670589300115021078966230537467583631067971199107240566041046415497451894867836994123393504331160675688408985715713359964308459360480052749968890608589856100923014575025336599599088225724208416336448263803159714127817071891532282882101446770291607315788812065701448257810151672616823398678068094294070816620262715625846864373665167101992211271061837680908609763434905443626965608491926278336133721071189045254028674219339382722894859295673898183755537353066828871767186574388339169411441499753448513457106184421316988055963282122788558758466582143079422707414961291914813134252453032416770666927249473687520012026948386290571234803707760777159455813983840512100415212153020396485564238302529896708315851968828549540627071083967564817813423322573031271397387569751959083842290352424137609914371138762671103311966665003062247239959919655214503601133938724438527364963202767242368683996068568266045563357566876014374119122396947278855517369947316738726668133615981539974214665884727901727623562654095724495469075424514260093046123089306914013319114533279322938311476428969743791444135266875665152069027909423419407933422643748012983133204769845079010602686665141898366928377514341321075858513436071793464151546696167096405262747346236020756406871259567841851710858315408414260200357591472170248832259031198596240064960359599024939991223421358840336951885682449750149247522220525925621742658031017561479050874475018139153340644044343086226295515572652064215210518862934340122195907707868821938154976595140854133545237894419190613959662994217872190679641456276629132966557409642037123476128067937239561255718854205321706849954579946774815039420650839057641944485822878097670229971977853528659358251366486439391510952847639486044310757808621247507545471312772225075919256359412330564068876828921419084146329481965762733291087664849177942487347008641518689000104381953978935380089210617927143835897063354692522567685914185811169902881474155912437087364905274783242842497224062922461525969769436985257593106656337820166749074877310713329765476852395044581583492253762927788664935276475400085060078235634084561251181005077335213260822834797180579224943994035176301690347050453277001925012360279539077413032439195113411413388139352343072417634302592497066560221891849872324509092310643225271672769427875158633892361610200115744319438710495645521471473884301743558344268277088898472335861521376348138518744858688101808090449379356054017313185151036923709692723087542786184741057441389519198821860009340818144988269591739875491472062245116475396652556803685699792894445379292815480075272006067703895250674720246773044969285308662734702605071575740912362172120108400384756610741375926061764131699151930465313791129875557055709568257212765402158739408006592396287246319356469534196864740377911794135038924334623077936949287406758352563763284225313212237438219810133017245086428477570624049274106431728186913118275947596260859236335358700475716723402895960428145747096707557095884414050524396010641002136905964688052473772572864083349473163174929257352996464176792700629194457710050880704142857265432237382279540996205895859355514521120845038979905662234113952728151849453053042213833213908572493449567550392356093939048129988537286125023077046242666165687092989362494045027931767776518331933570401605162535935757009587120296892598563924080159534865614804142778304040978719770395989819210801870471855588523674266379465961792914706884978551229737997921165621374988286256446552696546913379165332139946799391844530207277056200193899442628809411772644948588610963150703507880640453264067601691129292786533548767432317646729797875038668113160118325152513252769942155098652706320492619824106173830091840472207094134600929634990292628734145069413866047748316667743990093856828848028354351061481350949727590479809449583985463360351116973884919393521667606510108308812161126199108380838715939019651741738941639831633082043957350641177229348865829008454783921205750684071838823681920292603503104053502127062447056468344830369642039564708128796140369654089869665374250859631339287084226437088529183274630095524061385179375063326113562999727441608951451045902751076762144886790021419181897424852517514278827479580543289841470718942003141569353158103547906908633292323210802791695036634412690947489425981562110623421808216583789647035704388638107686618083374442460611221013838985964274953754198431366870117306376730696847891067286081008275552544777870154552736540278775105086646160819585448483619867528123373098830824799218188993230403184715036280917999655598112189119840143658369514970278830271153973277737335141956156859670662744712679396633115459923387098790044740582273137297902827022226739232804327271847897088065701666341928091995716402035669762259129704768400564444850823750781261429613641157320133940152605062513149456258552863755096547594122298655743423971751973958391423534230995284827410971606845594206407346013911122517287658364292972517105043838776624173741711627832430940369890422667210996746910472678516586372703640522727009363618698127594618503638863885325597755724098810868204382789582794967160345407077642362191070156265997922229326706133454904805478864445611059279479920905262997706948405138734562381130062414695869310995757273927074536837228395179974675966699905647211373742219181506384335572805270120959145473727299273466427674397922862133108265777338316800466703056280480626509008400611417992362940586735542308913837205614428658710323008605281456041897001436152262933194493876535250410929189802865154804686967235812967471837138398313466732457557673860165028360572045221736273414325622536884125726062965568722796908776609298807433295070733550087245062227391225138648486785667482943832690918842026575801802103056563892806565287917760012101786266637099983248904217544008760487670491944622752444972801108953942170689104380971676997087095757209044456088678908384498742435324024575476991888016241102806804645631302273838080731757931809077029906559896582405896777712771214089695012608714737495084376614994539955757670042996722184794042802897356078020221985647923316274539759885086645358812386266821774063229565853593123950003996901349336818853233773023582773059504160080708225933602681267202847618713182664927883115852864316270572385235041760765015921211864184746571664517614869119942820768993686534200660925367168736657857345492054690886896500463992076613489517243758516824253872823491930153838102107849161176159769226813463459505449673609079304491721667845272700048204132634665351208312087938830471018656049117439421747389762271761212352208183679269256073773608764034452983757179989430555815066711074552961559857897775563291117885911079421140456997316794842112006341107843951659085100105546833717733322378229074988572834940369895978683007361752914364807785901310470155571351296455168746221773516639578235720250686605630309798489152858681615058389249642673392885028563810211500850389530506099691272946564359774985890117084284100037255510884967198907755960787532060613592843658532418740809194786533424695188470126547756319964291109340917586003654624221501128089624321725708524302572154058774742514077067171775419142610790696802830080337579384670581970850970674199021831156139392131831849287058339721522429005772862011997636837131845401903972234571733453371079822915823740436124086047087910767413212860476835277823487558013164844678189042550468042514660770065643266105665177147786383139211868615283599853935168090238818886877470736340117394578436978581053450963936366095192355394581127378206854258227384369704157096855359279922650484778146182054014761324257274284123968351076089587621168864549955770381940926587900766062201298468807564374305599545684789489373174029295286271583362169798225665750774965188720672371325282067163456134265018834630276490481402777904922194689050171312150274270088786184084588292045521874877574756212892096680559017119766890606919319004926595675423085417452800060783661400143296274598122338195852284235515521275955158904657562522699532435361281288660780230042924273330531783100369055764489546365652795657178310314817231726524517135948025601845795714135419831542900632086526021545045598289642713609163858637718500932941484746304602586812908344822195744611944023665948614973620730455910520629441890541759711193345152474561073890361301387383514497194368140415633219119753179791425095518379846967000723054261798315027589176659012094258868245097282096371079048781737261104865808263808241961264094349907582614447137150008818600579739067752529197611054984588158572016114669294593604611850602802797458688822235029139442715965454743420840755549344747391695347000508025186243247631964187308163207620313136191620361664639878329966157102181975850347899721694156172443686367968536993971941854691310189789148928723532933531472632354033271884695796754023452128340162851810630297850559591816738424420303459815310154002489785958415343830854698383390506819987529987097502202215994169114341243475074558508328650379453222993941090037843134553118544525159569247596754802585980910274012677389882992640652704709798336857367892117630582235774098607624936555333229590947410702705873085222896501185928089672868778026880115871402332493265157206163645245674807946237102599425728909864885376601384134615574169176452038265766355402345791994138607130136229426428862164080934498285725525114253733866310637930425123750988475744762821722698760412863468319118280947547364902086047473160517926300726401426479411075399184224826506749194970676898062797432845669036899887026899625330987446675995356597463305984524287311966875733315485741025704519891767619703958334689244981676250855779254112613716726389297590502404488134133448114135903192007003322625989055709093097483284517601886555962113161433231100632719998443449623427713145941442355055497293652266638223471279942575905449729593898701248253131184195964737560495751816792833649918692060103866416380484686551605547850764989542415303318145700643574267582632994048047163801440300618965441421757943057275064195141274588686991607602662775178470963075969716021359101503216469945833955635577150751834866023838549511555784356237178328445876371010761908401344577241530244889964949545523120184973451025540783983419005861391264756138874725222035101555763500296295350537761311369189201862795235623320081257951301012532509034261885219577579523568654892187429079271159666267301046001664545009952752687213837916094196196836244045366711643690999682607290543183711896611604596039963809426347707895354829422231532674725078529227756769859059485126477106971773818639414336004111135857705153277299087821879256214126796428500757372379582316380476086352790208941904390049533645159616317410405975491443719420791299354739445775041429890204690881386322907313559050832398631251269597002420425111426165400058279632133244181770258015157347316156901459823783002773751749075864432379415573928255669988343041284597932796016482130398054670483092141526608722646105428006856665316195688510759641789153847653614452983835194313985407520718465454037980089314472080991195542322280612894928081397446648175495418571541935941413213743731991171861895452356248819147567376357793477809635471731331933456748926791626449729010064701884887651386921037233213574655742033924358647424811038246018678744160180917209052916749319875937150087337615045896162294459175032995085284306522570728962358258696426562332613414292484705427318541145559345202366293061411995625504350329749339493243350186216904323667150002770225004948243821411914075686731252995024886538982578657650540663081358772419811468153730419350011647781056366807327869943593759789929790708005065968783406673334857550964518713695957534694816027170338399282559218793131624977017654054403211300604205853294501961001539918677985614812909870374677031104955945483455508663959240094448507885460679954033094476396321272846044565876859770822650387291983649341142355200819344985343503320063315565079518234641650870238305449837277815804739586148275392551651304940602107542175862188525894926758941779252765215396851714746454570388168862426055982612453785304257490956390178281085465823875607388216420918637817901534989095465334517248044581314498614554721006052362352467158732997548416029682402963172863755458536325999551659783134665874181599279627878067320727258964941436591802140228243061220193667224382018227249103934982451684295805921553330134767550222431876510247798152066260340531302789528273969889926404786759913347632335727262142881271467060095929752478691515189013983901661980441288465469855267398757720898880425205159812718210760979736550496604051448805198521510756187826038922926149388813123724786748936478514415745977749963133964843958294930624768183007703733006109153099522581299305928692642467823357340440026698874334430447431416333014440541545043609694710043955888459730392878840768354721548398062397293933326312444151867755704067809944817113438380639643138420840178785074631672401002842344172504297340878747544868066735330593648505959525119902283141481565490299417037333960012312702742853533923832124641917473168466367884965184661793147041079532314796740600462792576993191072108246175545255596091943287869536133219513400974850692393976559173938967892313311967729490358140682207294347132059077475148539172236908997426438722231137563013698978666237275820423548135232274801702776607372178165749266376438564895977700622482650638067236097516136408029245758231944156104126002140093331375818535796695991433241315663074624557797893014389925351471340295740848730802476299572078464289860489791083629909826038273443759340921814798863970927348687903223254705587263300576014088240743685858660815659747418240258120132289156899978614411089096451372531783140036511657625723858548570807502974206970125200432450561851549681289917433793884235149320085584117587182300158858423229123076099192663517084038473931862677146768765191764450626867420469740291519859786578181400871038037598773170358924248029154213686087519760831682406416239096474871205266681778208593763158651481678036311323499799271833454081174260525856889171474776519122008733715707932193846584996129045044073315280847684159222853196202243722765167071470018499930271169500139046711368779303322067388763669855450387116296558168621785373592263025161866058954710822594438918333237171856121353762224335250196488257544197609691946759885934708523358833895660335700052644557815014976555268064109847044272283883325080505988724736676666856903263781094407256745698114336299671133609371603573094411836972606227599824246363763443538369060899853004338213186585782837784738102786593486667389901646068150396691586308222445333925418547226997070924377165863283249610568751686594789995519178608599698586835065829720604289044885973128972306747550598028389380131624881675294409680992213350312137587961180069527818425232653577978402774547170020307508285797698636804719083572647983227437561066333675363822181109742362590564230473872938715083840401144762699745413558166601784388898404298260926097188492662285599141720999675478695220015827527637260165584793054241650310810033325863413836398954743137268880376679099343447702001221743646848731708199819968615035761604682618084717966922392013785022292224957092136634455900117219641007063842138314037768159263242354321815329782463090846061605914417601587262927860118850713429866007333136029712482714367223323132441376348068205649926112153596074030708528422670659399225320546860853484870709919320367392334656042521333704445991054082414820878177443422104993571673640457139172825468387636158550919041622312738024900907277440583330924377825205919661015755207688953009574382229208120317437047857767007859915587688654863043562833025319178805825943088870196578297976923891021091266211923487870788690761258129294415183444512959661189002906162306920573846246141408728847368542592820835238185805696598582561263433864405037063123337244473288861689835412653857388260125890249260774018113330614235014873695238576824823654573534357631713252314400984916493043891878042773676131523902518883568491795602842846209362535367879741811722297040132844503083254575296515197740104551236164901284330498464275287089259921167839764144422396739031035981454534379312054952927767312082684640723881183353011889079580276325893541571454346597046884629504057428751550703025759249268377679722921981306921465733682489094387593216892290253443478230885217501981353052840612628059407744311064549865161067104759056833780978101102053095478479432526160998517997397280478601524731993588515236668110830542924865187826442494887070032184726608443757029467952241284164969740808836029101133700800180774901198135883398518101049112019995924339518235971647082118435409869307856056014936713716893385465536078745163215132904056412864880863538255688084380346826461973527022110353748213483026137211485371122699913653740808699739088981380121454931855922979612593541456922404573865440792568681411424899240590965427745157288764154578906034432214003887224312663970967752052559449469992203608758943773426367524494344542249992143340266194320634756817614169750450210566122452450036169587038234210923856113189146220327184830992131655454682719493325793278665843319949413685989837515248431282921513063948510650880893503665886708091152632926265072185812862159124007331747016880213067424731346835182750898631734406918709097536649883820616327263679944461873259440521682103442827058743903157545109845348203259798416337713904905429315651312565214869707328113050487331710722899060968447905186600178339175286583500154697809872800846097817455946332930364067638012283836456740690932547296101473319083245188029103218717314191142152466456357355880798891766909446402319148467468614255850250432929509578833644683505200243392478830332014759538344101955036186200233227161735717820163968637239762172757996349877973159278664327088772543088875649398419317257998809629801514798572974180849945516232404535408611405209726680816645361873514085116792416896291281465628955244741536782085567116518619435663292339409240349449344764743730276680935457457236296226920693425238770808005650196613534344239737259853227869554968643141544831029211838958727962606609280330139097047741843075519665556227590443632706088909360230344825577939914110618074315034340694866241338235953409283503201358854850013415390567004240845107053940471251943069169755375919268578140637210876459848526604223528141124340362059495535466606067195237178648162524219753755348738427236294744236503025255310567311320728806212800719740755645200218590072173706077680416614004767426206479969358671705570358936084381168489919024629500668568565135282828022309948556868942222393969476355813289942909725940407006799483363770773075977923046093727948198824378462708418239686625879254544366956266365048120033007851267501416076127869283956925817604431803057403188498441590147354164050966338598314705202402792613188695190284136771639824722773184727548278264127220437805681115039971652269569340957078198594279125619022861670407533588548361363206694724484586452799741961659718587895271942495755918061694857407277329683544482196639114638230360138938813535232667043323464653080203439217686327063060631690586940988241010008542207972349841508019588904167672080496708050556943565877037700944093471637257619478301669155613290204291338992790112739291563315998422909245727733316456489668569000380667584523238318574406437237047315967667508642561526957296555034396456375435183659103923438586106577337305164509226575530589979932062693320819552956447756607790486200520875544914299452413674706139127333051130486857576681639159105874448867874298818090528524156234785493896671045182892076782714351429091168240402831544604141634003518842741851957795735004072446682730218181309261895577590316328540180389823696811345672205047050625780484757222102913751610403908020877841388290434636723529431521344960766976225098679929175851178668954199880913703059367818268734757361526107110878810936107733037051255389584321778559941725448544839965475066306331085070196816280604483700112771179736477297453282307613310890575449150008029362722723982962135838684241238816952657955225093434834325256603187369315070124329843733152936135855325507530359139808136638713555666326667043327873970145648423116731907693542109944535418074551887576472795272977894965229307903524313280926847697804545105956314009038105397447952301340458942850778576452292355654311459492185213299301174670937464656336645892614462581938765936917010982871258161553908778741241785886269048024970964663167599043906470682541731588169437221205442556025712688178138150291681913175578325739131171825616615231688638548566986904445692573001486115824790291425772917744745249582588250069053449197489325013435166832373833789285842844443524995764409658955503460993173812127482342943333269136998119914898975350970391615198992574273182833139701116786523348199672106534763684810253755122303424628560812998750584751695193602795467354728313686169259847426955519532074312409702499100464523942179450196518075334508365156096758604128409941861309867577762965978058355481817423899008493786735776061754725369469795289764994888622607484352646911117333131468756023154372556506082354959016866328788509060468661998200286855848174203021986998333290583831591200682959307118925453932956338985786050802176737424371209330973021505886879652232758477640208193646810599755933030420554679104487884856070182446744909920730680379731985497290940093017677914145790669469655444172341069535396526019848783775530473746442120565493288002957240065034685558606878519417671361330246135306712631822298661018154992949437069417581502215286122789107696620550954716708481430564367429953509597401157949648643448015528664234814367259072754178714836859160977321161653252514237537628065448267747094685092258179575709043545565817097400540313824772840037395908286878605504058787648173015264871491168725251854268418366482214693425199253340350231730398803656417515692544914891519537874645901028023999522630366602880545034524338345879286801528485915434756081791197591601114327064751606676837399829973758408192667087861813004646176783541094582014643781272600019786080810761293820467676433887482194681259231766691821512038870116280498054243617654029451625349576283563136007882137731967520086997886591477074373763060686973196442205644861389098049336638014204738054703597235615241222094492999347907293903559066776458442659503906092913643022902178596570746545105799854627698917214600713531220362428845656125713712592297154018255093009320085353548495474317220295821113745319958047481854204681869892205221790639024812392937641228543061785255442748835575007156663818134508206154067262304878302229157036911440395454776403623952352053341844491889951787781315342575490800142510581593937593812381993427886055421195191081416636832304536420425899123662677745913996699894107940028317605347802241268606905634816146146126066937563454429943646531894206145204961793682406478929371593151959080119351014580216711413497012280405294056690730195774693852576492660926497796325178431034842443061851504854279909219166653962807629005900007888419252380755319041612611965740870990860409769250068597368193147964292759238261202180330900749617119532154208124169869248902081393278970693590798065454312259595309593951603588440569512830013179077940279636524695202064244229686620639759534179441430491885813405429233506641827276532456054981590695340509785790278399786870349730851781743221996167069302137830726080259525562627124827211163368911232207337678718124679925988252178525361601772703857139119566310082933569404132487769627632318163010186270693474835860799057665054524986242492927505090908890697801652360635930590370377219647034587060227395461852659477508823083986551435847906286372535798872511796964415144963385757524880230490828930972085861101459448914152452932944750611678896689867602380677026255728252717119998419021637172810171185169765188444406351174855329253973918646515272683102794104536512953989938142594674908662068117325548090818689600486330647297787624864429445245288234399341271475011399398590035194316834303701291279257300817245954678220139660240978534439883425140062520276737818288814474543066030740200305860758894729827914463848892051408063834787706412859092442717737184873326885411686571720266196605387326876126874219757350641556374831299092990284487321165611827874526954468288206251493052011863322924805615333309383672328307202568759547987760557397336657987435601573156304343646208590823762875143329431453438742837334719020826518672400252341086110985940647631130720876489012337308160962569400987759736948378988804687445190591215734896136656545468247012900520286617824782709062998121891310098871889600847080803324015807681419168388476680885217027873997930490478056209724509851435795342230069156858929111941926431747236993195217769197166743143294209689607773813317336134023011446102016687118061466717544075303777862157091626836691436904837101420176322621100941023482491182772886182203284890014058847940699842316213877288906505636915605880673119758930734280180690576114910620630538039554593759142392738538301894750750838899909637286657473508661652565393243032899907187714583260972089365118534969823363453199116367239294272701958662912418816415027869995037242209518828302390050243972935544126684928635363968716590927705078647743722138703602287575283493402278059251216267336271949600204730925005200952348333379865974296838664579141542177707854787972239521161318194124810931484020447201670468465887128615683413882394799553298739105373696265520142228084160235212109002461046482217517433197297424753896581204630087604392148095404797436553334025333583337800476407008276790576324523089671812436151406476457868927884686682397918970971737418405875431645581416072290740171497895740381544157756658971032476668753918793594665187968754874358785064013053871050266278817572821970165677782615482595775803496714269254983675897403004948816890438916009023540047756083111565295998547411841667822066089536645676829865436410492477518037329760077818344400976535739046169063079182970507180320640159544813988117223543565240421642731086157205297020855564862080718904353042473441579266698966882873957574294779690927245368428381656354480622029557042448904212399177218080796647671960987982283498991413814259672154436633854697391932856293171642421150277985804842360942590514805242547095216437245032714328298699546210144357974284835104177516585234398091951007581941774937311242530465317526172218342584918759734658159562556598613057265896890919747291008893838070628393799096167469506425959034849666906316877940299457371572826955829119634689114960520592394935668566077105394864300910408764795398151050243429099478718436805841822567563148491155553495406961868521973919864006664817084776878940477047230549865855699835057693466127089600001530370532823247481513486778486261250320192334412379476947876064949751253517881034793856488724766271776879984337382185511806244342208655591630002237003085539140723254044291404915966238822826933407323585413388511262468710471429485099744039947029640579616345896719972460436934177758460243311988540976390867616131963022426905310007679218398839518527697187037452043877607180528759070787566395839094801516692239622561196447119142177921769863880813739214129972366319227248099406732528037692755598157636906384488141976074196263211890471625728935490793306459452430710132458806988577809680340674452666125798925721115352765310043599108308772982062179638185749958026913086441090284588088656990281984364359496235385628452850016334149387546182497543881127614365880577519794978894517748702513882320836802427771655842667281401929905497233945872619242779447626050707730253679401898388572854086688185851481174702289190153073208844481733344874333466392211697289602436103753120786463145255726309566712030288204838515075806039962982082433739779743353843301022710715523153030405961340296082004368764200684512050855494800351546918628186630195286701170002268783898389955269450216392956517337824826772082070755591266482312597908430467313734905980488463788021276593692678275969068921638088937663682016623526190846858043974219950419160596375792830828940461368238269008106445563991746553225240856556449367028980087440949963590464904645013426356466971892433629094867526526232918958074044236795227379253203591540274261110942822114312815388162167111230302774603857731778343146510563568581101536033048672192590048720568538175725678391564421692500222765804817958941174851200503414259094497498445474455213393024188065793512700961988841199192079094898710949951670978007213863704088553091146586956023468086771365608213986047884660962198019035417142578431739457779905736954149790295310037354916524386640939087000896274511867174317265926929052659840768497549439241116591547747553158706269137005135563781047271566280436175653034698139632042466046278404900312328241635297067726697818727206324397774635136648662916146588442908517003888344632040472345910492614519661841929226636440506518025850324241573908181483436471543375405167066991690541144517524068945227272957614614012757406885676062271872340323868692141352248620951832237164581110714771142917257786920766275623110627022016044783261623862154046578872366436830662642211606740870219898602809262342794874557702683352157478090899706242906285350941982391931358181618840627509611775895048651465570813113639254450972000784777608735872779162008611572235517512759654172425892968122789694887593490663500459747794032704854064713343418495859965272796344321201296537670717127124879813740014424223109554869829717442928084854789116762586039098224747472573814271621063138652104692817574410417905043684899820631629678428959045007356730338930010805391618659875996866979254905766888543012489978072082784135166525542350951889876885632708406696443696774130317090201790696346809334338012991600616370946997938646861194775090420818420769848252553874222703766737690610919039104144886880980339651896857447639386978752859226314499084230880189422545771423272442440753615880153555312863651300470344434117709930519240256779390251435471921380601828519633332341713992031998663296145614350263480683270171533366556377457680216276126687920959398111760565219397755830105382968609668580149984549049786893843048267826569344153625644160954451620184636066599020128788122480321336478261380171828102449564297279925027277582409792069496905577956726363806980239088162873057149470313551093313670355851089712905951559921414861031598471456014575087732556574253233067243669171220933829569160673314765120363112016721299145505664106389730050113570587464400562636743545558826298422060198360103653875772772934235439319117222982196543831004682480747959321014575969001415232961249178573135951171504724221922450050599918751884725813649158770883991711811996726552285159108320764147536446348165240037653395109564406780271331010884724538693459338090076690380384765840597657490410454348972041456820348679902531896777181065643497970207941162641501893281739328668180502210842132202411156519388896162044971441196064593873382939800777669656363629055742704405532080688780455402299002720564884302981237621121751074126412665665062827105687421090616640841249870395398038761178445826670782560866682506332529643192835959774222311022114563906506760616407785943202656730834388825271663558285661508867893000616194847328534532882848070664480133560502084743562800799226647562043406741105309742431096285974401841338602898776316850550404478804854347668082752748783684234884291056243852438363228039807220701554448140723613273819727312029692730910906217440721586519052674476823806694924332986364146377914376872171202580510692674441472915221027396326177400476054282091848569005728600239935890342934035103201046938069324423285517210949666298734855416497692648087336312523529127990357430049544055992951962882972623953019213814858839181659453486439372139307895839827834133580341149488430393880740369961673678764882758764150278685128425004776009434831022647464720952003942053597464093043406318913522476733876537924524300545724811023629917480677369263078725558285336744404752632740522954242280973591745302634676279167757251905332025098250274938395720737437743535668641859290160912994955034351911333706068742277017200103329973890810025588950961601945862739114107662026960013002842621642032559988222121555528426033168681249680905087458052208707524902381434706936061334543662641731267459765399366542924809457886318407290699404671643303952484053790737970572651569149690836387055887224576951512232937559820363281509278521997826365783427612512569476770466190969787669093032650077187892245027924149466475567639725832172767136609057514439287871740845832430292600673457558439385225714917743173098897193293820606598077449378514689409781878740222369362049278324837065578626180248251707312952225926412301025439368155952104019217850506004785471379176335352421865801219128755652985438312993073581870069724438175591170334963607509712436986628724026166679176296054486109044122031555835124264164144717667543234199892056393687226415431073910115093793982685178559720502371070728124230254305841221271343189675843176163690599222120063070782164293376577225241974762854745628263886624150195107490771275467037942443359993577316497967261732469509225577248813808208054461549688306902907586312522753613561278262447307942219849779753521099183269567462138846905132280468688961266572321806623166523078099949976806672366317927634331796301270192329305585243286581866791703195717118843956944001065326299628523339933173799525512656858778687261006261806331813829060353617795452156203307184428115500955362364246971370240615218258898516248604323117369741466086857175320291262587851771924113632433550777652864500818690506664742930674901179068214935349768306413475324520877211709386195707441983871651354948732136353498118754153960291701136512748170540603132268524544711843344727799157034437119841364012121087913633394157855114345418751101478273064127478239673034734063883598940875149411717156475220943600910396341083766130404440370948384175236473960096860986410730218052005092462878959899970554971699040615311082376878195037963517278126249348287594103507243966078467024642185611366333333706468213976858846391699765366618655344787573114315006198288973256452663212803173822089816122161450108110357444102560344020070479049229121203420664513834172250592464139024066562505323361898450692098504131476134852517720014769341901111714266101833364342971504257068109306186045009158081723701670962722992846902824632744613062544132147433808536391541425289364614989605387774691784807236456736017656454289545965770406420265781108317727947844890893601588945835211970569232451233556458382116863820174465045526780272738151337438482744896768539944468085238687671879347584767819340196531723895292495014555397114815289946659830333948535880731371265766807606537191083479503093698860144008035086075995342295579532610642228439872416605354261452524242099119972037326212890458799926119328072980190753983985437998858943753442426876656095442267942244915729850779016407913950640823839877077654037424542402298555478743722880296930616587924374708884923727033298351353189108518586009333269222577207861442016975551352335114937679931442209398314504283183180721069389614638819097929973140882589602489402888612258539956005945237494546653921154449041150544228696618877371814821692638959513480613316142234566556641866976064523975269899268586599367076246839789617259404911374728619859514878988514966718384531744646795369087362646169685870867324856108393782426320371722801118190667697380218044092783958938836618061024009987263596902271896088441712606059875089815702121271121533073883358691065123282602473463701932832672247269623794299783916260809247412720282914465353886964205525517578394917528282258039623933031404304090730214281963184239746199430324236221464953291560659923258397675420167482087507202132901622796326148081595241414677503926703528560265837787676686691261644396215972683135546983428971584337363950083727239075867947548266007445703434798407956725882992179118611600327377319402506066161797700301061661536176878831237975563321778565604232468343341221448198080530622654016955828342530473172182013914945949329656287433502227061595828715329661268589288258297773699769077405326038137900313790225623831145900732860549531889402112416401985229524408482492663701553166810141934896464604534353234335605746468815981276304652872069813314977742558134919533419067630473894194930975326169307842130454320708076208460943334706914043909309890572831049741206718712427265273141307745451335586070456624324206727478778801986312272486810480514953655792829271393561236268170186693034995429193163645985557673570654627207820755986999583088012621633041943559806078434482341812502411249250933297189802663836434247497823718403714577750411403553971219855515625052958180711039391367088614750247036378852694597591141814494009476759958882421010042259655753519560172610015356390432533188269242762273507539313747946402819438446082760940632151475682353878632952522443168711988192950852503316692905456343752334879722631924760630436072943927047341592322763105731112221988505980576336633087438973108188897124302956397799962515193210275212643095247756307502557426632067265260997717119726934024032764497315282126169517272577954643407546838831380720094118919053869458319977007269143523820832979497928283944862348918976176019724280448273309632132592166357514314597947707446351902684121511967113329900578627791193785434174707479757649010449196522649222080404513340159072806856287619988209607919253527307606813940333656309514134444925453426567786659956551523661682187170314538616538926883234014699715033075685231759242991843528971176047587370530728405255928115819831331692971317696098014280911712191033208680585216875386634367065565722997576575087533747148921024565818465631624174765407140071431823618410901947363548673070988281176676013075251072884843843942332846434241093119523199780920498044357250735164525292096105374185809393047271307378684942456131037334676819065996729133742756167202214497565795088799051955695013877646309170034142380796136873687171119318306264613242851243995144638273470400330836183165838873679323965360805936221275073494790625240275201756287450722339156538236055395748183638929333322224383841415946146673187935786950304471466896499347566354889674078112506110340530165654899364754441997373155529777238548536072040522462554698928874403288358929881610589964994607484972107891071003390297343405455536941789547439673464227592044996778343612305981610042519603117788207388213901656172464836907974010417394028555838139721738671111281292966436216216545922291619936607105430363957524230504232164809884768023200661467101289988936736019901572786487358297325616018578881353439604122986085533437406053900428917661207293124479330915627809504794119710933938507705754553752160843718187366672069573069933756896882200010978339528987063463322775533000169159228774474819596477250382874759048339885615774705002309424746759399567593579046816712113297115487831117218227345799918901181439704282377488189746631507392497436348720947655415642622711605905712963477081657595919300004711575055061414316559511060033851698468727581446172030989824274516290795395559245726202807586737704830661876333383001929513386265070876572627518425551539268244366736035622819328099759082684187292824952370630053558062504490108240229804075325091510332644271176091555026967769404217329477494412869024824544193347135939599352253850108681509513647080582671999342457641654971592633005373359217813326711844865102663283532786328746467901830866431691519337587069244266099732427172191922362511373708845032458385653349768966121514121346981586983879142036031124602635795716351348971520148027394010036106333566069586221169722786651862947546404827796532746259675923490125635223529861927919595166067648377516815544707006659229278399993528661363309094844262962469244054859389867633801270689278891344009809271480198184700913989564014120419653660749135765925774821750863500118527608997942543607598754830837445725346092236019891399618045017853809025255254439206447126690121710528809390197146829572392875283080954771403001421752644452382802625468559825133819270258590399731811234872901147577926644224336650486392790321049760739468999901699639534878471118913281608441755932751144152566150261235584150888085884158954267144200396509460845735988073702232620434462853461570458234879489990944891794780888854719894494817650471806306871483881007963850570616370687177584093703521378649644577461878833935692936562913932864193224244362203981979604522483742612273531863890794820869867137182437169071178541721821528478962108700427686491035059080354729263866440969800412927979544908623654100257503137731432717277202103724728149731447024865181327615972247988735823086113845644570548169864885779622376876948367862988405158532259813103586651911963505640726755181258623417151433279783798818602368824388518653080535384845070786742077550021701390483462728262560246854028119808425779960253785705559227118744730690852503184248196876471461977258620390502569728903179001021434622006111490842368375693246958114130527526683744308946907971259069212533388408410273143942841802547401331166951268080256275562726908816448515579271627080161552764771243711060462550428832295906991569541129476346974924651848068732380027499045891336271471215038416925388527900491542353055621079904710009268927322316297534367616031265178199192384215906919556830979420948557569485295791568707102411018994363424692087991259133493907117186703545847109346633073936568258211077219804356238951214494323742965560072874839066131845989287638836648199295244111428565402402671201600961556646115202193419019194399145133716337401778189727025999856128063609212416343792441522671812960283308149003878221182731102888233287221904296342368537487958708928614617090207340815573368861593040717004897343327455218437367865816933828694760318396364216708918553755935580127515760402293124152752971347703050232504367052107023715447564056789267223487573400955286167118500248064496401331359743862717270950196410324922532691497840784254507610955634335102702340190742133875548088673102149775647849013830538807457660647218836638504742026625514958235620603498718557835250833058781478701341837163725627831016958222336717743275662111393568665295771912763460046090918550062647908896286402609438404421321545253231589829175684392352353221634072581486809288070500350228549711117602582431653671640839519324477505989332680883671913024611383500129315547555016011898049344760322417518484104561608327776054388044283855961977397089438228957486529195845495683738419177375050547935774965021468316614097756716357746036577770561567541085042714772655531565350875184243819462078630893160494951979575268713393668515731664209257991899897987550722520340584926460364368553254649447726029339332765256950811755237024705083066288236510394676620097622209598064454743568475993832164827560739635038923974160244863113298547967645227055117439527121201981784945640023408794924551902258046997559067335172024628809634687116154370868800934474037566269631501013954022040297335111666031061789726601192386841382996501482815375012476828129617293613216274503336949704152774379764638572901050290558736173963496586901511058729025383622080180231895163143025025772231931290550566098914857438964978999953029067815097445528893194858178528414512955208886809979745789607454841046121584408049076672693059041013103539221356708574956604527999460944686778936103763830679952964704713696298888696638258564129342331633878676685781252279938947589189811521706256290050656147732653338714197902187652783492681293401639068151745415495646342221186252674010461874908695285874188206094052878131115293096409083149016886062698680218627699988102233068330771354433847609499411170799835369070228567309687200101495865711196390681319401481371819544617614397699996360600921466779646888556815310695169536786019437013368460707379371054158061417551667057619013520125602503953370385476557720675264026709110565903740151086849550522896791802776720433930624717920205147180225200192936011004162154150236811782000419157858172479778052968816788038635571484674129333220997278748505462964442728243193512550089301984517667536440726982870947913597627106405659205878557743777467012509177589920728070510852102982820488831665404662788813461722066882679616399604919724848798323670364478440422041454053019175892332925008284884438132681293952039356848707819781156400534700815227021145916616548637598209933055744839750412933628851550097644206487937048817900545595353482904188543651818351939177816759330985586600640585837282473659350531711429292816846690733551623474973244295005307188462419707869905274685676375135343988000724672765137724514769053708949880036403834263721034440613303702664062261674815679830760196440647953016960450559740182569110412393254958770295947141019401234309491250162416214505450575378169871248200153810495757245511063321203329367648080265858817290138938627626099907671126686496847844868375609514827873226458214132174745868389036552488835050109929674081166468322367829244802027920046365604058948225092930263418905813582027412565509845093821394370291644213712593573198137432235839510983110754823410669690334022275147289364910427957860125137280747197827209161718207570746192897979839662467991575152366837640818971634334136426185863414717260817043373921496421707335531056149533807594508309210371718290086252716262638991967641071619225107591182917804047923144483877489614642383923677407525397187263784637515831078626289355030800387388959201677396820242511479447073374781282734820537857473954736181332228269781687281859580030750137940653746302927809482152510008414310158383245688995916725748826505520073702048860394203292364035603987933179302700487693870985028460174560782149746335261867885038440670824548158598022239146180899731088480498433293669247715877078039772319903252902909266752410422132971247459020837250700939410972502145905007210036412443999661723413562277080522251491908270445076652448557940714666894028927720005278429441656320134349979480817643257071847375436760819522150117546384971835408727166846828210689055190297738942004723936356872859552813360598169905359777877077826612072223966110775576472523831180084658686498042139310475933972986919395452778580450173268771714811558261601512406876081595282687045119932532416725466425140335114684151907410877396320512986533340929207455459777362632757803882966997476754327199089807965086503543523562850193330145411226459176719930909857294304620291273266461614491879194751382322704762648110075358623429497625437313640847042963178050091702576657832972195945615069036420492134699964692820468472194906799822749217459605607087145260583659125531671431432102094977201203168440432014379464107498796119523923584314482770947917052477079257321001974695894147768234351756250025144355700501008714548589887126802571522032166307290788005455232581283058781248053922366631938137843952768640091345466509719296645949303449056017367437369760578702179447656700193109285255161606812340231207354427964802741457429388629959337246905791291887221343635852991303773767034515311334975036687856708612234157786613207533258429092492979734584245125941131678509039298820156803358498624883794824018112589307204076507961640656976008124347723330062081839282683054807164652861131660389753201079522027640532553074914817283707429812431064079820870991152043105240747354132321758171187161075061833173056064138491928065066716086878059107243901039134623201925646647786737356389601111715882523178534234202466706169614956820488775915078907560950243699416673284072538771528971274139898228471848851959272425178531583863958186479260137819367917232870894305917602480362031962157027149584847100498919575289048861879210689539298567885726935462366320993682413428756558954303281237730932728961759749960692090250712630822018335442154929499359710537752754595486926898750173095374843311406323363315386869775052473853884433893961874071376067822487445171877756493834354734582644325773757153477330344746183818189622555941778689071848401774464477471518199720417935483739127626735278333295292164278333975440460843701172280170380906828956922605110808401193850902234784866188056702494982871325704009903855667600131813087535798392561447738135296203250898076372787519733929043405028212890166262963683992359549047271170671007253912366790584007313130175313681031273739232267853899775377089257330003249982234260609389737773597547007952540735420078441099535763974485346607513131127404787807138114514438797823727719997625604892446745183429713714198989579373798763700811650827703030461595220105296105965449770535107116967778366395140622602063776476138390439101281974996501150742271760816625489967802017914782792984836198145065640805397364383571029750143217017476079847218625332156236074145150402015995594642865603972553926010505628319323736512852781021026352227668532527127548148971080159667274115622946842787783329053439012609191690083661046809931791475797633329003810303225516827231965281983647423708700493458713098473728200231231371901139611656547567283586006290361513822153383412257663163021661343055980781143099305200169509600313325686941803617027839951145640978717173779602658069871528321015508879137449730092313016766004838240261729854676165356928324279000890878176412736858017361956395238109020692965848581307030730691202767972183880018928579125702838019261659142180243125398208728942429905028948313848812923556005379756545538832954319076073325059446582541751757497061455796183732063484096390704122536864072327185806726265294085204346569732660638608168790528065435488800306167334805013282304676085993256603682828793909595942752028747516166528539454981072574345171281506446997696278372379047227325739035570977635119373618344608826797720583648756356458088701973430544481815301444673188934757044155029979432419856514497782397374489959313895590847989691552591702447161582849212452481775509034839534072595502386803674716508645262369401828984340714580526362635872830965917115327736746130774712234997812852388287762532368568262095273149728070851178118403893569094809589840388554712531585823681206576125313119640697494846367636765428357407358143009761233168778780315524289511062752492182341211629774842921102380271576788852440289904408410906930941758907967003086581688376893186632789839084373774713177662822641897571640801661349365481856973640598132696772681206778237907112287154846328624932458175083693013327624483583529602761161443421869196997972543025959367186102616247025275512228432935630611193756351907673282329744211522240104877369993019070816840357236008224481674491343861286936053165829401390158057398469645734013785794863214090940065740330771274922846791664167602314932766092774789401898057534135553821328788944799713994146382801151518045285825580315675195772017322342122024157688744350672067772198672281246478172558625365561137197580126587116854761542052630449748365546863985602927818521163429336414093287838667803681938511549148084210429048584179250344057191725295668308494114265086641802360271526959370711638386170881201807717367356736800150486175129553503654995897819844613165597186050565628172835333571676163514735877734853937033417267510118300158581429283248050144505816352652891572263564692125848745547286635402267706647586463878829367470509246238195489194414014305971504184638937058019805206431415405509796043786035402502612039832364008261590355963734305472762640730582354023984462158844472880608032426637775390993077556645220353514634250608930178237990393511686487434845791210972463062560374517643626485183403760374220815397641421251667670308641333907053615133638366185987671994396996792759246066298084945739686806134377460135499621085549270018284385154690202769546280930079488859012564475147023254494079244372197409567921901819184857555310268114128132208233501114146150539013203298892830248629661120257115740599308708931448613945069534646877186006568729906393724720658900372993945678404591115300270053633364982164544988826865499189608816225600177413696425993310067639964595384276430710496716930332568900710586441825268215626059555674518302857893340626221198154208775902689525093253714335988707157203915689486375497135285934075387525787487827072213541176545242897250676820099592857959290208573582457822067696225259018027651087837286785672686921940445330885976135493961340158886997557314155648815635137217566053058978524072866736184258014577732294212911526208109635014388605296654236182352044865623280622205971982722428414993082286481689031743740698155673828877749013867822081873611044204733763966672745041027560251281388997367824893030169238408483031910922116983606678595513240629309559556630049975555986667863726454669133332976202507510113644233364930701361255934254538018925087823085525691796585178472160162024937400232619776762693255462221722598058539366193048489345376255199423769146815119858721544450505109237635370200699386989732499453656955150686169221721189641342010177834807572972262954790696285701957951661610389373145035599783677885863921403345505685123972905394181606894070529840131760605514309937900510690732394945995384524814723048434001842493348699193036957513119031875193775568398059659052175871393959590110551878535128794969123265259884543751584976903689481568462092478940396606487541326037650245928798245758642860494253953520104202925471409974658914354203217961094347455654390015391080110334961415969996125739134843960141259350984121395442663125424644049181287728559110315921677789418892493833929245768575535756938589111328235649017341055933407999078407453808192649332093249117146261998675419490908881191681123965402780018538039319720874440304800198236726949736613545575927359716593172292672722433069421481559886809291179561095507480832950361995098582575390254348499846072507587152549425725554861475825062471740402003518423253526190510520863973941997911689070657727170664816957708669973310948205772702125656235539557855996130343437283056006805687601670901380705400719813135929768108321972192752709474597921082493716879066997915328694469175618346517170870084006548881419789864540344298072647040158255949324522205139378705311705639525187196859749676340440081706818556593465830190943714016792101506423285390280470849048457501746101505835801634104731540854409780643323510770430835336804403982093818673678714496805276847669803209690298049622545108873606751934341790408566943235113797912432261572318049403272257888232235113644590911761843488796671509173274357129117733300267906086600074797312220799563202836939444809767965750211405258396503081788402454526616435387731016839983688307950152061834086815271051286304076552887285227621324961244544948899274840530529131356596017597808743823127860132606201601118550236321208779220851026842688324770917821607565231316313729373764761774027201129478366359431474776463877804364523904361665445173855156648086277431249868429104873318708639818455109743068795020001931461849009256804223497132234581289494881078452640341933707683734633384996764783399152374363708104895374546887628449426097049006522707142612705373762056542375210695830951527166131726865030964785361199754448792938803203556611900687795476700264580760560110212803673831644679496355237176353808599597669365344375598051242561709370319604701789388212919669273009200905018292382230780924691867659562343732750691435652769429992106579339254070091779017155224972080443968949803045476126306626107236991336754045174890908239383988686185250962418606578482030278918610437944733135049986803807683105887850012912728766927944924876531917720817023356893540130643197344258519454229714055235218025572090579919421391084030316976426362406418976827449300152803910067075479928058459659084165227995301779362257032409349171456489595294123404767745430290756096070969481378321603823642739984447679232978377470704070588220463971894556400983571805997879163568499834447539826495781927804935691076389078289393045111872658187150167873811510600786712196375657405851244020666368719151077032058946530560200235972723149581235416121118534221225423273137887187582334803251835720992033077126585827734622510458107166885746605309563304550435768274076034933905800246906609168470102986328906768121278724596516967188192798222867235229234141127545836080845034186151848896154069509427130639710570889348507863788437268132651683390993333276250936953221418119689749569675453206560451560815676374105504384465652816332759239429470649017470960586356797667376270495031135604353861485737475607789188546378462054979083382740705502911361987663041651430763661121286717958821853306365108324533382133978573411148654849270284393685951192676699837435648089649621144958496263108848380302642792878977372654333797835845133767952684494250851072491319937197169262628289345938928875412459744549083466681547259703338501465574994170430565436119190116606931282279042293849758927530138074322627141954220561681030204566402397355018860880169537624655483789475998015172039410185689594730667437872332892351775104127165559083077528502986183511152495233744470509485307349726728802326170926759412587277047583387058782677992259121330930649216226330986802139461141829156312195017103233097434225395728486488554133527833154692507471431152550720609559716615204535525062073046874200190154973234396193415642554366003299578706775106728682114204602857967057332544115404234703503190710160404394465049390883429946340564584578844235500277480930596026084145087529941516462087808203569806152044977070432152540520201192432570250679050386171542025968922654310646658344511270339061861425610167744940537010058252848580823689061024490730756904818174337752344175645680733907962641576267003012358053936933198827280348623380790225450897488246907317842954795489309962605447974496321223737679496952044855219749555082368790359665547978531626221734894118899076943007325140620579918370863705562408782073174339354941884102620775372390995640296380144722949427837570089913691665926638045881227355421007557404714981791656547335873102966631602116291132110554352026751980909335914343224974555775235504499382856004099888989976758547110749319352886817457565592071440286066823521608485667600486513334232410308236596083607441926891992994716536126941940188342548775651998758641038850346540670936122098031227782508693633200125613544812208504926941158129456700997937540879949930596818822785924005902155148598904115850515914390120498944624841263427331442183376706884498598431891583427352032484171925630123611220015365359965236001846755648335989979802890286864333602759616548646565200215510139375972453035619745229055842754967321897797929202250166246718294918178133722336503809996831702124959603358325380979487027138042093216071892018601555575716241467182344271089438017575352236738832745016809534778056742320995593480977069307962440320625273155016267183206900096316016404766692461624559899193750440873663359780071748741197403043370557645807786718219268893714937919056404844764080143153691542325890744038330457854806749275950970539797205735994468844062089327347226228948843333428425287303408912722853123564234115177963869489148320762872644557381282574483181509608019001558812236662435547222643628526224568885940150180101060044434911713709191559010131203928597233638070469348728819774359722258340872685866563785410545463519509775453136109613162077799989527288147083389011240753983752041608901332361324464310070499260010035543572788205507334472899065474284255894401023208273458762860013385814044052066997473262041496043675765530010124009299996367731040297766207088382272527233233027932880606348780421201123801101257708839401865801036654273087055715789913405591035025795098999503316016502346221869828305846733284133700610494220574031326304808386426475631920354296995893219894606390370884077459006083379518322860107686102537997350645841940617312504035910373668870510836089374056818518140640433962622870108900535481676193087951229972979339073682848653714224671529988939257917264523197672077103295256317943763533042595581072839673046920479925906989141987469903169173102015069350834801570558683476944970736450549034321873839521239295127855988837370397125327321077954006149446233985422427378677081234021573745549262497005796890899983253123434258389475697925565847334690409857282677612089487678359057247815615221571945511637362522702171964998409897817555136770776629684008885441180200433797708723288035819893143001873723203617197387589793413089875305237111219365225573594220808726238603348329742526201377836630785925800874576687754351177731324882318805251824860864812760304910892112943356707443056540798003908002305011144835011455550103676699009853349763662710350505494204335402250367527832646748042688238692930653044936896602404382443991095915114951072719761185338505730854358637577959515607243390517904092684547843030381473128083675882560239388174348176882259395037655355921173830047233194335381417751785322137507312111570128402996454537230886976530183583520101111706835869184096849208403913703091278348678674017837813065575287566609577803792251627561595317764502142360013384636955747290443938821626951061507191001169562209712008787284778334464603207107600368635808893875230332537856117387033249653686473218704455375030536341037597026705948504680757815581518326161141856753336409469499648552005266277287918296549185691927492724156388060166484147887973244389962261125633814000805774837720922218066602306076584365911476817073605312176971641918451558813741537919758397442015200691970724426705180883109348269613177028938470299931258374617207937727234307448006365507237465185789418231150471021264804024542925753035619478010988177995566405450277089646093922362769476003270261907801993541060973804673299082339624574836587949773666564450624218915390854562332605829144045186463994701459144247636831866820885965941842211933675678051978093306339192252866322750040104737355988414385258060082964981249059967146543066745963865926654913129139476525945364313307797769696763842278318052032017078060199058496727729754928932454785875974982202794242810516322105247124810907130653763823590080592313928361485303227074386263493788783722817549346620685103919339467167729950049604966355885530758734946636190942799280937059985661689502394059692506666160613087976325903566089048180521608493304250774314247803492353444947271551035727852803401873632091916220128991656837625886759027335500947465357960856325385924127590779448392730442746870701443841343594847347604314586899579913638113407479429771588531405952417654064698624671943520015192384863031955782267206627709885336259237599226820521869039093434734713992797604309376451973672143903614678932107338165494280699756009850789596753783914883708246859735951533370892229978750964767222542654140580123388920005657469531425112909440974559081841468153637323078327508442170244038817427046258412771312004714027718423500052301938003866821403044426368561863649083196860621345780771869724815944542395846789695960385988152693963795887274397066079937155196106174633803465244891044227842241453536637595296598694638963311738768050342635541802575334396525113327612308994364499698619991744952438867383437702500058172570892120001430468700892896367341222556747278574692110158067576051557594343125720662267317132237020680837593128099731244837168229855405545379161030288556843100015520841568048808092165198884882557090236081703486501740737218487866643268557301715824496163423362789260802428175838225298284044329938514105729395035198771475793679815116144100406806083432183419152790359272348474509748281191969310549886592446682181501111170879022598202894291167932779589956179324097806857281171766842852462119092397168884527403770376728998487317644001773550506279816230757956528482457054884075305413866562849441304984851155246790408562740721695201967409170135561228694921852932656965260214924775213516533707212553305282453869157892341152512567104553741082498614465141397388262482607426935896542316130338085140275918819744049178634905437848214811721812234272521511991983235797210615726041074051576590135200633829307704050918416396274243748770137328109342397272325325844752013638797119435178552951745450552190437168098314319020871986198194796607034585047728535924744290941836338383831679690983179289786253907894884737966834946528569186603508163803414181493164151765008030490910231792353175552269769138488000767988800085666949324050437668364019520010392416412201188492956455543502672379155321375856206686844197917397107911059557362482420672349044464493263776722678084492953763589003825575670811909169990082730274059312931194052647877891986250731357033750172854089276455646195856991191459030795965009944140611273899162247574384225991659439271525971779104670327916523341669081855813031427706280695656797495127923236617132636143707771241871311068051711466231606493694575701288729181566754061283737472438231595078074526461765398063800146107939313874093603881523730576024297127570776849254930864910107707158018198718538820993711632556725167116987166655481431648229047659437206378960824267023348605500833871618989891875982988209986434361101504750161795056364697090533548545117006735868922572729377731799682035528908974166734527028561054417484475293800570321442815351680393332851614635293151422447058735489868510763997539357913342357580856781167976853758598911724268943250811195704294797990105142868984661135232517323177414588591564326522558883706626049311431889726879111392684899521282176182438341609136803459794971730421197895344723157197390358158917126918091664245926096280707118787404618289542436355247350687765599497739148798890814472863852102476657557568621391593143946013308518710181136668808495505933445295494287436011522592842080533257246748383664595701847738449542312702536386642800370276551390241834590177055911688663928425171488271631960573227343053182853607114017153528526368897915898217045729850817871034760701268255781904596401590590798877133334749906838834048996972458215073943095616522347465210794812135417042627613619818743780568620335875279015143364512151958719030340977960741357163496285870626313965479409454124228113242372237305745382617158827821664344979772249585898067056986735539718514607371053763967482549762897963571070887813158324618306446688823201779779706934359071381458384142086215300286077148978856597501468953265870462985808488185492651554233377859459755903010874451694623581082494605748759064535125603988335512567342862267437937137925201702142340548580003563825415194242091148593168044975272317901969477630999848265093971723003236656816411313385759410495070380645522629640689002479832964081954331858082065701409736211698398622153875157398006933981913259325024065665009514086493075528791387776851565784611763080006223175820768109434467786118230199559057166320865908625145083113288871593824999984427128237265115027094079219068478269640324437008656543785234832147787174210714917406376346522544392416731461839810301275172138452999417045485309890872397801684316775302178485529417027865991355467018968234298712701593358313148981999693579308717899613932171089251621080776726248820945101278351793642104047261049593132140445634114971610256057426561265531176949750594505779364159863370814699132316313450340463771646005709562242766406068195329954128897888583466562656461361950051627456230844504458866504866850941135447783743547155697407024202796642589175711257054898032290652848996643804026269915469480792936713838328764842995831865544613786602663790174538367795852958264351118333698858389934614635182821988725818369834948475717936344154300790980642315875898272515285416703991272359265315987753151471677288053049185074585648441337106996886813371871952507860649762024347859373970257243108239325456828279065270199586928237829234310080286616559976927104510770199888653363733802999517044110096569042094375030050192452954421575621212666789477285456866162839628740423141413124746289821250711625378694649099812877910110144562848281717577939223634370048529416983866065395231237856487087609877172527145464944643560651567726856221415134233520999074266679198309983490693743995214899969239922344205683231934985582923664430193114366790971828952008405120852378882937572925253351946525127521019979160158452066944715841101317717816541041410583338708971649264944577734337087204650643334385354205236598893388941293705624100292673891517585787965371532177090260692858426031192115128625017516622328978959833453502184358738974169352076972958396464866398299017399887725147914364606285273255221968698248321590265683362910468388346868920083765806071248989418430682735645520317482239373134563941133188164864754292950040610219172943697454266089713286121988356837189828567076879398619030684093676064014940627409449436870833936568979119239783161548381098945289949960712527721921615780511993826047750766498865087244731498967314610405588651281005724221311333304185824068278757327682764556840604828187127728078131595860840360314889749678803537717815589624421439735512887561369022577058885599198531526828618572077409909629549113858580871179502831520580266464513294484455104095806333075620139763433309719763199958919862380916401225469873195541474968093817328735397720699141268045758229512347469479450997160850273136734243249983234631763662851423100589405290786338328059456506416063665324296845493146695222623894993300246473610376896861046516796910616767957207914657094095706874852756869786446694360185472761207934126271923529715505814086083253450058268231531073066692243940039525863711785073817823927863351133233655274644263949896917002128749202412859576011249607552041026062053068929775042110467736916458331228512671359362556872711749221360794980802639677900997812286385392832940159737987635910264810732776091713414643245978961040216219431253190930353316046154038625687319873597706990959438947946676917224880135489689799683888773094912164250167931621671192251661880928908781835123960373203894346164799657283770335424283688536591954477657479408943885283121511642626912877195527126288537414402770429215758435375813361206725633896578407620461139564238369704363563968380642529275197036823243000162580330965641773814023326423600326024322138239497364529587806129028234957787335241790554398923880665406258616319713039643762997968789546132790129164436875397195639421824468047943172857374495078416029383697257116990936359503581497446487286251961126675449267234068355414310045508964982045803621722360642975709533879010020364065939791317037932247177954758504181191502940487418791659143328506841205729972210411727810246155289139830129104603198797959021713537705739687274933716992137577809799546810957768853099693703328068655701680425471650947079340889606964747130600966227972542554848017233087761214675545130967437392891106559994109411259000484662044515948189878519347177644519417821589621052863859839562935023656063919028648257144714623693416340866297919652002012918704468679294658884324688780352374044720953889797690224975603647814546298786579376222739897424460323846941799630698286223037264096767958729064846773941591379157715673799118166116261466584999726458379447184039815955395878380620789394773382142740774104659885773547744648493424002135319516507515785007953532586171966488478879109865153553248627624402769130641337124851230977963905518652595697705379196557189888623652207942581486380344905514733370423784659603726592908835187417169534152429106240456403482147712731549069897042141307544823759927535433628576328700809510600649428287451591555312608975627943010979973647562804951230159656626658758504183839657706592280342352782666742095861842137453460358671853195828963768927612978471470036630526665362656723157689997149414546987480628585379122496124881228013068304349413785139330404891208900579171774206130489718609087730585208401373294522627268998642448745803265135295836085432522012999226677664084153127810834682720602777319996531924227974106373345198942341092072404688486719328459114412573783106473231275001446174493140227527936426427230642990278657678249678767753577617685779471225967341894325619183673820118378553212566422745548264583716295337073295318638622440496390873578203351313189903790148629173446009242344279271777224215698889063923986273252497356038360595536857575303280700324334632092600796107287270512461042512204988866361425992877971296109128768931954710349749584727948180220543448957037536277961965074544799538592800073941378864945724217748703829187761940036373843614508923583207361817911261407858325708597224037799662886257213487541785491598301586493806282785043108211631849235740465269160878801651551362828709967274183870334109477978941859096608664503583732948250415377649794235515634832836707971603438719091586954694189400139390159608087547307145423295315723915994366919251012110551841492975844392932403497227838299453110906824910772822665689779630860461357549226536733954997017696343596402636270693613486333467071696111205040463789633501391337022838381555686310474582619999198565136209275890718706293072249812722103592246414350690789430069991594628416685900598878993998856255752842871550025416330816970614811916456195815590396311014253401314672155028610050846316355891864872865940951049465961402911176174251129487517396320013650575888672027113052116569449727105592182689565146038605163558985312405146325355522323692821528725526610899026947061832544820394520846772764377257311270068784793862051234623894795820953947819378107142010238041783963741262206201987112369387720549331378807871242308516249904869103237217141033275373243644581083906215549298957583150492013558712211338110512420612445917911581774155108190348128652850885285857470619527753552090156161803382846479791782025906498255605465785900772341896187195901982380018174855954828831772694418503836382341657264630520945795626657974283602478792857168574923840285121140637961775333383275240796277374955861860687561759345984330142397122006231175013199236846476626679898761622215680354246656316934191971859603419180414796253854939978321196585061295691851290912836810411661646660325632185041180027320515258036283418799276545382440680193309496640051971063139550078238801025302595845351228179285165117073739261037538302264050892191065826138907093825761847525570919968073013170733105219938683706602014775674113947132189917160805932264165713806606281805628430177740355947226909744096207714015548695775421193528042661530119818625487695751305333733076918569064408232118075746358676764630971520557820046658663399960331620408822221197036438610514952898976772890832401494827480575790663494878146315436023713403012192754448495550992708328862665110709538309682184583176626203650911133057018797562086863232655328690277213973550000860972838585579637988678299010779623522345622379497915432961361587389366473446225339194465867915866461988733762143972408002168062578226269581509243452751105780914901616348543542672723746271077253548170627551872470408207442854371192949490774696808553148023634590111261943492960662229114890017301774269365746241602551789558328735310760367130862804526420072680753788340505719983919213961740395256611120121241634884934714171705242894708057655924383099031906911629953764639508265462985897902613562581921678517165149384174872789159732999336217908107184489156879801753623783362603292139745240900005457711142024218045526562096837957190045563524372208910889202673291593352084780184653547023244365608606944232110466765554992270776729744074193319215622802212422953547047248007091332021489646774627852493927593134117994958771050641630909181841926598147346531618996988502653114383106797044693231168744466598881068822949157016982585988712736298628722868809878025629760783742320293216423105907270265307265758905666586394072550269390670213765659298358232415660470519271974790219882566412278864545294664702911546065720179808865033249378834487120990613886430989852674208258967417128952776316550772359974576648110030703143781567746076895581657932475512595022691557218628730151312432434556741014539867111592423183589822235070393469334164146188994981693714097222961641946736325525503224035737403308488824313730877394935815454733469684860771408793780191275196147888988070285036102171838952272564699250849208152826091836717942455736704997304655130372104936134935439903274005166245070825274380571380171931006914045758993205659929738736156194417420941608554542278795371699730801085161748547512236904242857068042475090798051777977949630399388039448801379154289454508089197137243914980029894489609254429434248187070198204698226573323148748976943613795979682613684383289764157052174253077659312901562596127256148679841191172563759237690370772502704360668392623754220074278031320204191666439169842320009768819596981642975487641009467610519422562640311795471247857366549584168806893939008056115016851982635495284429489220040051613804578460360366435356695604696132342877011370086226525478232973808101184736962933845503725141139088557668957017345693883730860387018528908578353776917646132198164544070828784874578013137551686913815711355702250074818594779449684390300468054063485860109953762005846672527476897676553193747748032815077228958162323591519677249070712374942403868545055686302426636556462392068391257287781200791192947798385924662699299459573514515134068869391459921172774458705949177278372081299538956519114845783742829182005875884681195037723998334851989531505637964513575563775035785253606917129851605555579308285962215013065523275912972184046490676980416301759549571951908078558123598637642521021776373536319553396891404571100270714052209086121012960828215462882289005654405061182649621237313202714061318104121546450783862221104059970112617851896207887581795151236467129346951649879870189407065940331422133328487743782703604499449301440178937035137366693938246614656173635799609007118221762354554122595572257757509922053440577004270603853021361099688339448497146895086689715128801983950245872277010331620197855724745976138609085409330654922616770783639243013308783878548156771525884998301620790234665374578979831194114847277376863190245074067807412080884972818056433795362913856867881332304580973373848450485623021715946455105553526038154000811070868546049671953369143533417858401467431722140539138307181004704929042461790859698941781199550782416304572400447273404738115548223638287371799922601587322780398422233255185038126007272382425545327815997934968372800594566873864039662760939631369559839723102987681213140409897824158201928749981754454004995444868738509773565816496213238787563735541914258984128318480807917502967660481408094854918127249874831948803839064915410610099331568237553649867032570102241037290386521138718479575939516771649882382820875318730188674644735369783647277944845855667084075722755637021567247959895767543558509681203106689462239072763425802462648999480216406995824563240529417068675362592063551842288153472046528673592050412751667642604034296604597459828067392173359003651573223814526282261889578815586098852081358707825515588194811286243156937480154122632515630248741797470436491289845213863526446825031541297244450841629938965201947517772140421388155463105151579533556069860261363531618265793511688818892471158125553040846653271075631939430653616217564826952438897552341983397044263300302152821203986241668954627595907907539115256655764596442307356188173044077586126063906044936615274989434191797901816054873218355627375263761925091365590540829440783908825166942200513752583585709542025647669876227843860169363955513435157910354705263666906556710257382769274425464821275635224730223868789620414171679875020247112938339599671066916531515442340520394485909009045053333957449369900051710989902135365226629915740668639996710055918269297284921724105706641359677280591541895040449100793149725656319105461410567366335012306285553504751636945498828444999874209383314743919570086485365291431019275689005819171789492033308109042492522074317714403812858821436443307109679690746960010090252249846287977477309166525733350825654059091567323124535339897307146220602377410990719655675771705978239229662871140088435863381012377918673183762834829095885144203907511958646482668408584052761487537020687349886971225491540618588578877964749285954685535245728222129168823941777280311450321196159216894962738260477045738665384144900282136960568715364743112565458229460570007036111274357552041809582666558886557199977918269276625688587564361468614529914111449247052456783772782129634598523853099520200996789046168891847514157085573761205594062730464694221984326318034833155500057846944526392384319609674136234295697594827335970320367505711140562509923677708338199842189515777230155530510778308149002454687172310580507529069082821310514112244975199990842067282016790089026920871868841131566438130930644857526619233700041606093328484594111806849315976408717481944712782968945811611283535052022696450718123082472395819831056697100318951346728485379375909871655020416321453967491934354697773731043419991253983596823712184998853602575766549578194437245022679333160886309487700713895424030109463617629751513799949684598919704729025737503168266840289762606856633856417780999850863432722254624027227051762541345469247656210722789147142769014922326987537741519769029958136944069308187514756555836350703047437856002961208476627167410646521552309997126516143546992335600258576251130776648063390016308824247879523766232801490072393878396686257042019842327066811450078092286872266032923868612180598893510526769821587454302895356803313614462599672312672316177624376944177426941646598483273970160718873037985376663211113436323662091841796131549785309176344343202631774189434199632682249884766865312729553144650707784952964840892384473257703071282830551643201518528324814181807218809838680220323001903491351947079532646694386633219578339324002888614952834995089313100264139351829573456562773050800238255149894883109825026871248354107964527307242218856701890760654398684521133462011366337062111743286989149406502149194891489180142131061275707033813584757734124578958181871569997539498375659880144337804997916336415296388658167124676050783018168882037356493856524743947892648092376889138407125760159473490600512068949372409353603083657724145834775381728351883249277000344485375304420119357948290079739133823758398553022561034054917611269893477562761481172799094678371557881289312097634343266491570999175847077779623970925985049716629662813910819707158004859109115433526855772159144160754905573656496450806596069310170815723933358043564873485152451716558353516415610127693765039688698684939149269398121180678061158546838429275653023278659651738652681203919790500288708290242259105876063217070695900659553274907977822541081780181165024716834230217335122080613447809401930182602538523735792197573636873875353520984908739562661470947042312716751248510676421750311549469961370740022323289118060710041372908327324622032030736317288651207169052673741936238045363221016431789361987552266544023488177003638636608742430878425181550280236775052793442067010017611882016987378524458287276394886837096662068510377196663352508046516021810754158531889985229474729895669680437368594307763527619072860692881778196421362060577682596279432265646585229273010215126501747704527524612908661944086572723645472842339332759640432447979434303858747250721166796096926933173301102998996822894678642767974291694962430678876795944393138169832240522513805139561498234503837925453898640540011559562571748834019114195788592217273120636271810623535338395460087270879726294732969478294033247152550008328214790742784216009285912134730271015791657067168445956186543371084519249468385085420399419070448768796976826873602308358374935974760939109912708880183363645393800213839476790471784701240444128426232329445345085308834685348794588391691468817249364532576642609318928873631978529399761661128143616131745161285118337732909542103666028226864234250932022651377568499581621212927762161873793358130931001821401227858149816704454784155292130304778828051131266951334699653094445997955438233580820954664958811688982877650621268353092169818962114769204511951735361592737076897365598935590597667318750824891897866712619717689184389331346854883521256965323748682818106261602729461620256789513491547657878255644778129441868985809151776276478082518097859725255440795003654008758610304963524067809601405484157499014262026926437893674313359430460011108554055937786430973243597820895741360477764310275789929081589558187583866555312482005346459070656627895925175382645864425760332760450022731879799195264947954209730768775886477702210989013749510313151881425793692092409481977794996164880543980646097211454240322772680307343812784278592655679150302107464080952150934792187377787248551504303630903161189225147202821425387502943379340085057421855132337594389602908714547914171052445222193161811482911050239987117465601945044117707919844321202871917125505167248798727280150954463161331749143551511692474854104316559210578130187138783195126579208998293088347811508485324226136324184697976381946417281749894648050624951105347609640259490332531868046810196166098701746999395485845721381372686164553362894985375594725714948808489094560522677313406467490264786841083043689431808570778908580330514255480150013115981236232654112591633089349009819290224136151451003736253004406612919590093704957340715129415194006853062016036660219707249135875801629614633728490662407577691857266196601467325417957613279945388727702751496095820012486250668905412843948073385848700546199694151151724310551239931179609973403882682640916697595305779093096139633240628399575306212850864380782687082397548249582000200533835056273161851281522774898035818080160202526600081727298143453658489279448843423585859134945163824209027111307463876407209315082421351460335321869416914798705174758299118933242069923551439612087115976335625139039330073588354403384283391118126749873857593037240159578641361278701647213572865781841867524225851999748824131720135375657661257610095777158285824724169487024466945304868169107144490873050029290825607119274177189021805347288427949697699661826596503892430955702750203997461471874081869909028034256109599583379821367682769957320499561615046180844971536933982307148061692413618195063107620427608858809181887409421159030897286266973518083192867842307773017270720064459420079159456673642662111976486236774873502036274846091634518512926214693998799179858061445174996049731777900501488620182887044712787061676646763873054582264694023151434480404213556293472033475063738843369593333430381272988402214912176192285630505599266048321165895027255237032155216459259671685061372075110070455947661375254293278587899296289773818605777288868396929808339218353747845775726158842829941644353338706941622013469939831517714145298954148817078936722568685592576399768068138087826009891494639201112379912320604093585889541178244881562987175547300626720688501086186878610198537250206043642906011531991455566460138620791490107117227307237032878976352823015828168931888707179649657613698640224283565556435012106561506043821832364831420322773711595594887369296067496101537671811544385163769965720673500940996769641775899599508346895312255996791768230328106211415465066031759945826287621894322410634706513473934981977871040074192157359551955161493181345464775041066216212237844264825047051852510795014083336384607281254383145085974638311792665456865025865247726584846939659103970307492885975708731282615350132998354332287202199730637794905076987186705792169744572272175372127583333390251288074898388196157398337440827366467382249651716206869348972453466595673339873926616019059735894127174491547169672194246807447319778957242953750951021671711592320214958118867044211598457171013357663115630799930233069525492742558538157516789042936668995590575862952140352039817182426304851760265569577214979408074129464371472443560551868758977352508115363929828162861363653275055265477584641605867770270834414425235937686869473087617664075288972483553533461682250123208290886205240485788595145684663155202635845730236798994693306783462801877748589881280079389540675729322886635097896873498495466582870654806388134248417310907196066531971284419323430306144882775974652282660506955901839574063389801928623855570626088934027164177472616496892942603435727852345147553552103470477161701392032235988286946139531214140015229957268103361955968514572808919068170408077315931351899548123714714692214223516742207037425388541475362828775419362597727006992760097291852065085276533486168283904723137591747821347100807930488060414524273655262655386484497243511937225265649619837685019141715658998037337083810564689190884361086275120969981631752486890142393356485291811965455931566186967567713993938592526668590912538949453063732198259395405460469946023591732508772820810733790779484741357935475999406024619445799627585791088192235678931953797726038820599241823022918165112211380151804488162514231600107894170588976158344396030159693506777593030759966425025293368907829740388674288950425241908610821392666589229962735994889486389788374470245491174194926852601977058175438074935763197648726474614576405696729551845798616415646580842845240289180558410758776710212178819482975911665719836178770272874368146660989917552121598120530445397756948688442455757976911331336635454973912306641809020424040360633616685004620908049735111723708477479020350513147975786444569606574700551029288279289885565561009956322655159228880011323704766054871912288941917868051891440917902695834368274355189049575693729545847029487084216618011337142895811286944062696988278103511464737416930021302065255516147378141951588069461143252008883401432681684489043687934973183569449563674546554451465505465285351257211805692731123494506323129578328863005129294930933380889489174280519183661293419261534025723328208912204990828214158174254935991776895667400104749961063087801052518403455935234052625820116697933498057040259692478377200219423113664740944058733091988100326089601913613600720700109713058772847467302358642918117359392343822889891457888568265149746359161457651178661086114294106042162293663943002637702676156544319728749964812795573559820448771625590239736434607632809493770185488936093160712914336602145446004978885127119264641546704091343507338357309823853626336614798141350323643827909210072859613176009082684435959217680778737562304776719750673914464639912824605285367618113396863918170936077524634043099779956493430703292269372777472555078015383431809311625696150032593239906504774221304652414122617411026412404970225556393392247757372053170445433959321936489041578793277411155220372771635479573256537281474241760878629357466137469138403168333338548725557562043628858669480635139126347273158957008615262261969530671268949680355858435335156800194439636420594744083843996411954729312385715201631061871779529774652251100635653446607394923193476746952034064239968702477356996831172756859581675507181348983789022946570168396244114097705904184712398635421475365428154608374291825129887998499208405059957029337022199086671836515662960824745613993258581844321854729539055600245579560977296566745187424011021443473191283238446106736412894272543320674552383793943366104159731287760142766603721942863525666676127008428275987483753207010685775098156229518575651974222930122507751816868036135053456203818792066134165607575283649470906891984945772900332627224751194491348953721497619955515516854241282683038083140087656076268919581041146046439501887311355596721580816710090534414336438861989951565433254006219975330420241156867619804395236259522159773770659677998889297760972821945378267348805170835766136747249799669796722899625452764760633989321016573934608775508681755942240089017167747449872291861385686420676464611311099238856632182685616151953965756917428879003596496445730360386782889813492482203411602377642201152973808223323064469514847217461220709819749531599705519892064179699438730584085429819295447702154378720369653175841561307568280252064710499123731489571752168803777650721527529638179663208549079348664634864307959170198752379101735679578008716100353255477935773158163458031686897619231495543026884809334358708654414903090950574783469474742081505710363116403501032490665634660406036241040392857931770479247417178135155275560283303264153035336688689885152987270639972993012102538981288851853487984876978018447699644320224670989235578082467096589262515181256830609748741665119461584100093345934714952387837714035701861084076447208817281173196419817215807026416960657441193212751109242633003882960499716996247700878502074376520872611992949647909049708069848629393788439500199767598445324352498592786737845213044426798796449397499850708536637528434071338440397361390379818292863004845179867113876312760048084083502617923990835944072710760710841084153039891134465180850024738524570959424420641442408472471046277107548702561202069073328843174978848820887369910476491149325636072813331108270095664415445326437035915779226021084514332980815451306366343762866500504651767212372284678094557442880534479251303565628422376820552040331194872135038901601320841236636856489047093510624995619727027706404487080102792584375388975305834534181765620889425302261189935751691480615763475969669166947464836110397107084084533794185613888702263540387148851242294161081853707056824963852728970596011516333894184396957940717997814527335726610354357924573202130401631598908501689510127582245813035897567376087059883635057312152810324709355590678643713279682945525233416110387886747059760631181763741521285197349670733786791603553725047393175100960905886847991828037958433089683083836833863980451968810152218518486215942200285723708474066932054419205227729356307502654768062012103617637802232564436989550016194323480439522805973439816820335556084284212593271801060075424922317532860516835069505149102569553122606268617967779541904285152687974107878519022416725503936158751885761112341203859252612167185272193910812837826201874122684120526755932462616154151128277560148690780670056549156553856593417215093419163619325016961160977356180486823759665762918494685580084713176839003270854220942460844800563493025479993762940498621006134819695633349898767511432809611886292919385539911397187427883986545956821438390778428585328631987015457652164674002518228192890515891883794899871920257860553076623331049870962098891901864656164759032940046510437462590872164246184537442384273160802139501016462953464183456547363361062379822306827788710770310237871071816291600468693380644006291592001144172393849276491878379424511564802202327573349852105222092748831785174148603963284978507926911688762083409271455444883950572995729440568251427924850646321396200576887435847257495209880524247507549149013426795050626686302979472042289775494663095104066079097400881378588438378141000318817855680269507692899365644266336633399039994428772301699848280476048250292428414679495795416904048671739310914254853043280891650236451148272127541934184614095327254449543415630969398374336993928919170371831426997456950298222302488592601595223362537683754713976944334454508489982985058224961329934429837633109457894317410423598581595108553260197623914237812754471580296454315151220318352303301223789870241265191091196485255470209988035411939004293302129536355842382569768131366740791196518112997388737948776552745088236264448339341924292418227487265596269994744807060771170259725975073955304628732857697875087900244302180872302272094711579628949972109643008499535030109176815106916274308943267243725459217830482654771307681625641188636026739608657333733860871301060813996900885109101912190504499764964673456463180109757740156225385381816379810440634471447828280658369569814009559697714156319536610605431924527844171841095993243915504479947114742142696068913005233143156404414136342164817827657709768209249900747170290251213727687653610309881327885785543120160744291880899175323080739343406242110014556724440237092059101508101019123868783872679087137785134500924668431939102145137000577675071061594782976649128846185337661404333863766109802595646213797629382120910395653320819750972960889076933728527562243018809411898045516780403055941020357197754515537340008935377321535893648712841582388302557922585150118591621621306535959058437653460986529171249485074096696423590438500629377933281463245822164078431720580380707681885116917692905912993300458096142714136060757380898232531819144401298330569198270621498244143993826965877614208820369823789843737644131148321856204900348209816079209294006007064120569404774694792547209036840455713492291907109822751934325451632957554402361039258679548136929895059053782343622401222592831314487584381556266022088628432075100443973577066441448568674902533827148139320503338402767223675147933580353275428024447402210057451109575351641835412280100671719237114821385362172681104551387969877649814506914184827402800201517066847746006820549821189525363064501054653667653971497315192510857283040364211735481110200651321556814644995438118043160726445123528276627613106639418469365188897983059699620919139221897154475099873644092945523902347495748211668768622770460788947059089915533500701323379457669526641826139518832840579093053065778716169399754424439884550707589855740931786810180368735070762500422527295713611219248281818150814073673040734294880848250360362093715289624873570430656444671750159616772035975291213464639802994501133605293272892957438814837217271659792753429031095419152597593488243365814807656086829424346108160214335077843963053220162377583065994615665285287037952407143092569548593609298539014395542405884717743896067395546764843509024130440750560016880333101907166921432449303572204236343529985833147722331479573233353993872460359534035623914613586187303345217639658834223905774467832018795453132356356209503817031925833393703008624378134034426940455349657415843164175669779929796900869866013014060550338719964352453728903530163708850517548825362485992830074466509674407847918626844171962764237071604164954064908488965717328151960067408655767549498261740075182456389151012671810418186266866345946279725703131157911267166402162092397012028700977443227075974987865582820747165147258547217948608040763140593353601849960218584375210791564901725309700532215874087515638268233855294377902999574824906305750553203499485545482336015082288607625418580603113548494768997412936411996936770636798199389995865742421297675824917346712071040518563215159065957018751138836460275889051624506225798693368519136780050297045214742439640030884572788273210835062636961586791377712693873501264177230057509233549290766330464479484565817116769172748951243614413383189156807371811876149186826374225546600739481161333542190104688507349384664857319986954533643973121072547114815162079512222667655087047065300848307555525703327612109874372408247924513082669152399883680806955718006355520580938262088727157424010825054955280476906720141649316029661742622525634838551060378332963407284684065110906785418531612241563999010535585261897801621155049054983199394714913989798622253587134279991311011114502028682975243932342647764357672865543835872674569894516028427729923227374142876727889819432368215022639041048755807200914049041657181308043941249702900766853501344770738258295983276725954076369489010340051475959662292970548537634680540872297294414725023642024118812622806363912450094116585316617495612889690138089853766340427098258208400678615639771216312149081957503842653011070033581168422144438536203451830229333051616274736081533897420595635103130413639016182346924387507429365831401174299236730311488762245731413433356424127126416405851525325129899028221592293059681850026742258616513002024906316196649345709437781911317788485262820108800673542185377208747894813286092572211782091575276952250139646034184788225809030587397720849057873024211990644153349080283074375065038777502485690131750956210321059783691819549175755544226683650488222416022903739648034177758375849985019208575155835621981339418293189737744919662059603608465607426615019324748082602499495755816715434354798943507108167886111085300646624063998881379686582017311590076482111634710182817113707052901825649947472873559507826829311603873906267854163761812068254941084704790655246890779066868322181373858471723379511539089029691001379656577474494863523812165077555199880753215118464169046713390071362049127737424244325541822186531195962343305435121354013122036791489018378070752202556102553324200926741797800829032620147844173542117163553176594455815775333277949488537084719831681733818261256666945051109625465935695955681161294809034083768799847509795842719810755338718428467948918124051322922160124422030355407250684182811336837544144661903597536565558895247251563444109624114258766045151623301512714978820096491856566856414521208534675065562435024682464505556932178321542888806693491623379467235197039639608470241604642397479390488164066085961245142596983438246776431926593720304100984492681394147508417512596295398450883906944825904603044949352698994183879758962595748822621764681498786290839083356530307282694402980761718675676427781060342804409999744517722696785013857823199310396317294732318934231113492007244399843519620422239460925095912188774889114045316046652685986761060159225955947882213983924059435239726450007287181578184968515779198326532498900648615081487885274706857903897532969285296020971458939777597999273115919145078470049828231551046877936388883414182025697720643283142021188356312016313188783042625815718992758598340432168658582135215225219360756844489286989171284386886058509338240313166931190677783802990089700307309109311031992711125596834051492156746894247121728606027518336758896092830749236448066185759063599189459763026588324903251205215817230716476579413056691332333070038476688127379657339580933010793040354465966928755010897029824410833264586625470485424698957745207952063847061091606810163881828785782790237598634710950124986818934203795496030468453907819825208514815682252469722596933555322870728525400327118338063662529476988239057831521620899675618769467764581791910130895057128396068090927944689368184377625237130660079087652205876302412200905532470795996136575226327608434100774300651530318624198354287517243047727359538746907645869445433303451013959306818362910260083672754572732747984603376470711685926161629562472705116320050199498561306247970240182513499108664540909651727914708424224166386608465675829608023163071612154029478017837676105342877729750881833429937007778292964093365077246230742508897792917094374046867127730592346764473541490436420353468254116384515016996903123213403373974302643040546790648723864781889147232465966835891170606516247719448530182754667064476865046558946846171135367933339719647096940466228552893689751121558521958268077431304173823616597291790552866707932023037897360220493156970567554250272395034040688294302691336018673873201679407893443956968743926142448859894845040781932940572885619076512901297818738489352545821130585559894606249485927421648498424599544744998657953678017824499350634647325518401097769551847171603734480767959788927899628141565890540572571654325299021701693823591996454378314553252013469746656141792775012600743601514639492005853642513803508758282660696674632653434981105451306995309147908289014200091071297494756193880766548502371410253274344386702973186123403311182967474587751416302325964531034701437715789592684422783196034377167021249235622800444763246183974727183775603099884010622673173537630817798521967133677954362619943275829249736317711589767047233959062200746597862378427444147435153680318890212430610509903147420976088838399964946588421555924277442476182448447509084253869582909042571950142242534580813133364671589000282726462776612596461511658387820015505386981116889202255059442943151608546634222124298585595233620835809921219171682768834322479608729228540163755495265670892357727971404906490579334634706080438760322923115025756077830712333148284891196766869941041125050608005619926481161112737414580732142842585032882913275962601507318088874366059485788335548947493384435466880439795430197517351775056536735382278674841091149697085069183333262110048960815013629048015653974479999273402241889856236864150022628142400102280968294328653115665077640999882127385307325906818983690722342939756181381023947582732925769229936315685839455758024216438239941562006958923277047170846832588838116824373703947845405955439359192765541822657574716166502740800247019309609878778047252872907253939737924339286406897413741154579036932676672389289836173672097107283339933021517616114503651537339226312093777785390539657926329606015367336882169122786696408820467635018728889168440390599297217405134222242414956310644801793661759043058612808155215025384944055102571839961538342123170374031533969222587402108802613086230904414113030974462436768732714064333133018130453351261817007858558439493221185486601707850570755850789682037696312084065682397196060419701808058998662578048323437458824123734321345515422714715656257093374507960876284037499331410141404699965833415831805408814924844727335092752192326656503409659083351321926337182831311823896087237779832153010046626813251396657327153367314464290002010525391981321163398667056507371404278309562582336290548829921627063366338321350150586667512163916559266534312675402420329942441104423264166156750520302907156728623723209257930347009737139217268690703050628430417809776302122514193512967201226709688298568327622528566847289086435439516485519921427945120488258666186321793748021809547643140912966430246554399203512009476239610302080296760709274346692568584337878331114479953182302591570261158911464338362240926662261009109047029590394041882461900341599618210545010728815765902997227710157489012052717594543364742602034391986209264261391134227062846917657642349193931685107311259360634817111157355439496453020136281341350800036519073397924747131579616446535848106798610918235393461492303821379900435948386813365348524356245471099073420936884924061037527716855849740625264634621266770865570448701866576584242588142506941672935233901606870896918660053657196327373902244134133474164549478297010464287525844024256303680776503726825538164767105865783929530658653327604977145174743312197193964464190359041097162465222891241632421770650240521456625747219561863584774324013158731894286742824712712595834738170577363145797677025400209888590660111134911417458246822683707700070354752434158615690937420848444706576979720593940890990241455753367909905303119751645552909857212618816616989687931673287473883183129830375532901503330954051260877314631835757504176980537610895683180656916292656939365410369915547354298804069044681962947551038492711503591337267032338394206096760614962560709193713857929577005995711000495621096842329038381571904503802923584003694875344189267392488121816686289822095680317207742945733910240291949267609234840753077716014300564528157759024559286832998172441370681748318347128813957755737731204264229688845149543044839922006659712559813108492704638442982859660389387790380870387985296498018227872659948662797845622364420251435880636471013639871400813019451001542118235713553326100274357387140717547794558318515425968881176791279167290800349687570385811408973283405821324267507168801412617768950568343631959941411918017392029265219440554044616484565625612977079070842564690471374225541647080619705393386235423316219683442482985738957447447155353160250702369298532998260706205487684020897136933296575435510985895902843418097755517688698476324424192927972817765812119583937786479033084834572873419686201654259626980241389118485278811907654462478860505373888772512439338776399478374531162588143351252389500276156501534982040214657420143389048075139208644211671451250605039277559749749026033076762181472269245839977586536662144124048745615245498630257454228645266627852456279944259067350254983362060570037008149962851191627095978456487702226734001515042129939396132809533208706213976326016799258850943488256566814181988870479956702802153913080392291922547539010696282597574295732417703409403350934129658020040011229923144574008187317549065238289723527023105054198543082784020217201112204117382691860399069113304807699960631907811362322547727797639901687977539275918953814380350176299983236297273445136479676154366696515315662847030096986714970551969602654309738015720801553017554478101771555691504037540054982520281372653285623348420555811256526693873023428562536459448749727340270639276339415302622854985268699243434702385449059017145655032153274628308794120686016254015001453884917095306188231098256316591786138209697889482847279003855488025214435045420096678622006389615646000118880244373053901147653312827164231654825118035122352552897224285470244471081200508413575098322640881364145958356712773941870254862120580885564529765965122151936125972879851283793672828204871348764890580053023174144670682438096734169378329186908479645039753648395321981872625150806833466492398250770049582421930403349604410359902313804471690192381804063785969244351286208647552973141518582618091404632672303982273958962502298314134562128146331326719545281908763154374822659629422411847967308724332704150278265196861659143120028995203171544244287510316004345992136213154501914974418630236573756700693634649026475241103232623995080585457443273887279171037435349558831030991086887420146367074054404021555646137792578440707218181026900499421589411344744172755340187222248513220487899479253214491520161181256755434286297980502723795824844800231839192446484977853423199012166690721194079428336380514340088187954837207645201833153338805210035146647711813618264628996598006338678446951184907651418849841430274423776845941934977441162633633668630356196965173691020996706106371930256851396814280958688764153514383513706623241906690539550744816776770706081286967581315230045666172746355441808429087642838794387534587140723932445863531704787037974718959958583241721852223662791539381545940861477142328314026101999449604541239653114628723664005731384053740990151288037618132165045776204163764437268250371137546494724471130924101928659625072261867634869863632301912276152196190352237126212114602699082745092761115145878620664211047015869834272422005948457747210655626103400143494846095958742593169704112646335844102255888700590647775626811162710691024801425581485957524650231024216951418276853821374990233949454040431135698258044961412307114769530204446793197479620706114163628176193081420441869705599956393610939695272858771215916615704921599411659095711559413837217040953588576964263003108789909246596941087181709642316524450944363463116599559477481468870268432416625292658068397816347213820434750863895688713165441902480933050696696009986709457424015824523906830314855487264736750275874347180912216907138113655691210814747005098112483585182268578667536441746398968328790463279752917272414734808578467572857943584385155712347404397282427309720497096322761221275817406948271378634435635066486194501516161311360172604058126157735424427010731389298250136190212523914705110367792105531348652959746894260533122678077798785920195374729718275304755255656492482300580402036913060760475566527755217943407162762928396575771688845931458100599924069527521026174302384363586728200325923412198475809861484081608614414512363229873472022258132628274560129791343169139375488552100732196077349138069867401433090972163721529550770212923176062842430794087068502252785420840649433568086924294592505609538111211410813802111667036039461734906904135650871741550005406378070883815657129738410334863806441606420452014593274492963751746023863157552150916019669816949840873939439522461649371451485961228516497578678112342237249599792014780254235522701892498226808167197292190549845844351937989792814949274807453728868607809440398588189585114226623698539193886104101294303793303062091790569610333823737382634033314256181581202553819816042807029239360679772322800135387162422914861410018006564892313048771293613998939771473277686095476049145610452448433802305367520687782696568745343451858119470548072408075784435947074335529179507292373600714517701811384312405767639288867734468573203035160023472618155187301020772372477015232252328465915565323777437120171819158451613236263575949497208861195316801788919468194403711443366992708540064888173808056310458895484231589567953311499888419319693957273447587757673748918936391210719257855467060290490586454642336327078570127550073545209757314753662829884117474965214889347156138824488471445883603202660215203530097997724660887901602414106935929843487152158082163751890284515786737399196091834870640128910972629387558484823497424275912945065357699072503245249598600141682226763476606798686055509186597378073224626644809747115762993771409249066959940758712098379459165465814111460242014949360144575932758214341596282359715659642551591389006241283970782187316952932553720646551634264257123564334692495847302272913115606596777321905435065119118375447061484140887191307100672362807032801423184810916869356498214291959333489312186140943408345110160391218710008522858458936413888742725767321156236761800996826789012044442606545343646800261046857280205379024307045692447902691113607178081222222785395412508388460822227775885017864178365645430688695564308687169603452177273869023601199206790422963534416357813887217267512308727107306903977596757308767365571685894595281229031097186503155551623129260254269100014050724551383564656317399810198961894350584169906666318087798078652534030653699261867570087933976529494160137437586884724135312605553912783286916792106281047050695217035469077900449179158878077975069548557311368005786656949707137345264858357956887627586633785447180447176610930454068647122715642210706442631356010067652502496386674537790350390978114041616759626069850688116595221450334521798762267891435263127878115738126646378762161451459634368103799208173452190152907967256422680704315486431104216319343958339747193245986531923704306028686487563860563732746027493562938933979228415056452643105560535566972772893127240019309677546671849862767443107329339711776600957076366305192426252071613189977595961665873683959870809373355822248968505699045396144308269808723305732909094604033130470296353346800875019843748377996595843668982053885401265642321155214845373747338303855926359832644694806964607344556251160478436875209849297867723918287698080506149156346843351882571335999538552140486952596516185340348409362095832440033489954332274180494057062575040173754434076244717094168467121447869029137756619661778297825303088715444208793430928012776658906932676545626806538199601309330990082032696931269655059096157755006085811914857436509623966467333063254034645439727986838091432743776878255797821258382579674486648614301443786801584638661066738050016393959275153062135282788192134485239136656148554434864718337721742164595876421750461911318040417444324647154717317958233282476286041581156519201494674622656141973812376473437595135037907802746651732548632099981868460944154504469011744960340604414593752397249050811477402810034101635686296454711136524889504621313387890652783466082939313825260063802530740938351771340860637867887395844542357697036330095894459583877952918989050722821925473401348073950845190220172418352098931468231284367099559307986390770399545002540636128056875302576123978755786719022082546961733327352763185909751055084394465222420866373760046844638052575429810152790925538291856808572344004288585112795666039533693800738850103142511522686604625847631584084625735667008261679469395338486858821338973670472047329210181830790904039207849888157626061220569337098178353356913543031801018880700886574636785029855061967899384024493168577151578743421311302154729937155469681846486501329236441710458604997790628805119445511521462589298745847654993561885206357398238213695277176867532267247550654048951551668274354957981018116737752882115761026662632062581292594684514972980843795173651015527374964063511780494231848860552074234826662949778957144861909756511444816573683140676858550597023080723729846740732527947741764061598000438493572249694851657336149529030094597588013172340618802677105794916640588278756535752502367832945939136356780326516411193812413138716272985182693692367896239413142888576262341867006820491071612043592272774837299737132136967827888977509831350052411841836869971272202698991216100387072787013099383211465824594985777745864603815008883125026026307661793630898375766869633217909268082049004588347242632181959382533969471615371326356074934055163390405697221842028561923339142516318470355377150838773125769273603435169479566146392120152863778854344606592596969740761651197861128955957530289937487498859527432558047202181175917818689051430015386658540880511404228653484517833588565656180776395002238103858161355530371219969950508538794970687168490363861031062836653870936922657970023264754841417957339339680029979755762287420292329534916457575246747704701148265611310701862362674764896327996420349520348604890457093785009973655510184214985135271870141827465318957100360059633216234619447760938668794082653551990308526338624245450658235648886974951365008065963810611049362387471821280964885532785322089736462092137942278858967774221593612916077115357593886499692484475163596661111273714882225531708961335025306322026112578078717968017032460163880837208816504427964192110147694684757106764956057447258807533154333039899604540168925502271144500255259039234977949824300415542535792054277814151325271574194320325297094007259394159633024174814362868282485550296524215815237727357448246596581669231965653593598489295844843595731894011677909202811131398278142010257350436849618150283497189249217684849392603227413570878619994475532098849106174857865942208619680527884134702158529149172132264900079995864794732469815163423643185658356447381377514015926339580287082078063353203370264533667488403714203262548340900565762398630745500043288718891092462183381518319301821181200337904142301145667489280394317582997248627076464029952421657714558851612915419685286087065769223131950046237479691965752718646759809256078859228251122752725519775911498224279398844976015570343085990574118799736099651007247449604244247985956408771115217158722463237243511072779128908546015916116742134967531533658093655802790379717818856480623913876509265535130879390025624373131498055513963733485740455940268376520728023618003155275709528995767666977303758567309565634241721003084280939483274301753470860249230314840319466709972204128228078173715094004803998918021081994368228541490634746944161390920357452651483314048308936116468807076380482289158710074351410170953575003844548860998385734659523353105489509319529394051719603196099110934582222393860346104452895959261592777188323694990350199385398795289365536646558297127658983492958569836736569950580256860968105360717017408205019208132362532334197780813230181010257913928964003592900782880633257084778903558046759196416945241680175086984699347028459356545463245538660281624748912481745700289136567810640675870131241423404582726935223637753401654085351291996029845705098869575658912912118062177843402514542936129813549554389419775835333120347794741593047920836904915427198256017654961544310117334501354300168607952865643288086043583097926948614577629397167395283295708767709159503105957684560319169869780279189249994842781687219720266384391157991269161605887146141679370704982885369176079087990799883420951086606904270793469936388328031805406983201484661100613623631253853743725144752765675672500753933612344636483055616650759846425847286880624817539461444910778780597787248334645132844649072152961240203944192864380062873320208496553908909299850656529584503150084661297962309276957335256776877980252253434523822804971620326168879411386875394822289892742881225236098477174380968752923339137519472397588571651743795492176425464831289618772934298394615653292595465974139926910348489289880815011535075251841465993083399881362620309660472501543980975122808234280525073464301953489369460971880151978819713436580741586493015151917349679299592509309954776794247969484823359451657537676026138780648923109590629718214957824069783920070118121231396440971715195789958400451980491166429959046032888751537012609358554170584158242558581953490234345462893614571593399874219078430739699262459256018873953147638290060699430234710438552606809378526489550764314847766520221947012142067131982285732376555220484052559740269211174551968146499560601074823909133534016171677416903015681169172999663043006079145414335131617811856400300440906653346704962961965218029994360930367165964288178177468130283689188072530855972955835863682741980900494653980837182840705674506606738279709360636280423407660038246854134002772594751949243102162394240438728078941055520135116870505425516671499476896622996685891952305912726894001679325341943379787958347621780582384043855676037634308476988268393334159415088073526926728717638965130483661366186277174926964428003702175322448210144479638776955772641464573021741271382146823646558741196143129682789683747894186322973057416306998191145858304609032672721216057518778193274678416347817360277973422414180840688354360249730221381227178514720825743097849042804738461049266985728842126201112335875272239510653360374565631585859986102004939028278177332865336907132930981891255698811060952690522295963380745143088359132396665236569699909989176913683174941217848047573397226403817555372753053491055731847106465585290135243870745426072860847992661041040477664963820073109968115459331182027298985271069887677810970817066432367671181332976749625450101296359767124245951047027980839574161374394102761419343638400850582290098367330183315346799203272802369089748747523745146993122086137967187055534467174881230603206748159309490758874595956652354772488728417015566709321307514497998745798545310463783600319462093762641052759194833764234668965822056401415249405140097749975257264796468200778403290159434972692062969877489842243571135605839256118393314191104227265441122531857430913388813128557702717067339460298940937320011362672984687369250869682552666077142387120594501647069174003046789841667748067322155936402462016673553990763300391789352457213886256470300205524384353212779519043529993092785405835419199065800508823791065851567790590373649545218770202522780048124080636381882255786836585687639795508729023223215142720551240077883463914667649874608557428660382942958311375682236870593838678630940643356161801984099146439195926166454217856213755626950369307267739714101278100151509278590986521242625426044609900124462579483337374981962697406236196038262947438796966893412049941665535822021227018897066506148377650616075359374663744887363747910820191049363931349404590891492016575738320260492724694902446069540267070538059415338376020448345859896967911382634163472312360846752352160922286932459737381516846983732343627158366710498310790897363293291720899600517260932882089455157500646141381158153710468898393380837633133564711391091090885795768697744045000290620600504668253172738565381531576764628207360960649461695019764969185833395298597665179295792202912048557434056276831739774823033542511916843894849422883133859335095344474335965726373651810179205196307375466094838065141604478437230352683115512794764085335006256295061566309571882613188240482109648270090414827260839291844200810365379405869610139704647514736880929309002891039797847800478945867103760358822580140502446897586962650606641434861713792345360000471287877340950998289702373503593327670502008143544524673779907046391929848474046879733485411871426799117347279061439000164252849039377136859572179575186238563387118674497881530262983470663460557191467516302767415530293618752400020289314213779630533132251722471486125559393004489907341253324583277049046009430012260174169628444481075085542632831232242004912489644138047327879221083121490792560898437474687848640715551299346261592365330974335026907340272039737152573445965137298977728573293671367235861539380284302114086361316372478303486298624387442874980297227614571878395561872282108924305580444766116247346571393785779745801215038366433811109109915379213002648511223505337881824287587765319795334800152222533757805349817942315979972919780458714274192230922203521919008141443696269755914285072017687677215365622997117598820081209526869678319082157497393307653501358844798347093251499280719535677526976980739374670072684815220562373134303636072201795454101837211160997575295991356692888050399028025802063531986026483198745018999540558062391299760129600346897588217272365008491787287019257950636344347065112226725565100070434604315628636421659045454295961798117245542755819020837304242874923172959344011321667694067712129312408141504205103814681105387406232059787075682503208002872284178502764817929297985705261893360937189451756339400795004989103270574889758477392309191475838801450744272326368212481857942597875091483130379619309389148436340139926736155304536387964699113417091794028161202675972400605632221439809884509389907460580229828466915278076548583721423625854294021670923383999645756984033054669585928361149948614247924009062026124457300923884067772921018717198671166428985879391042375899818552130428438911135199615772628548532025049299840821553294128355503014075040265327309442773064637061188465403271413498095584690378487376309659459083480709627523388201430884303617394025719240587928013647222958275236706510583039631688542289451182603308001102884408875581574812527784665453297462199115039511395124908469277013811616995636318024322010744787700914310086899484689761787897013740853657741803845777376480642814202533975688911498230525882678137898933137260877915651927218743386148848223480927804357222228125118222807853134733492510502927966677780446474815606672327559577527307419265305872960821907025982280984743294728815017974721766347852694452697575628506194897996737964251008477900294290835674950052938959045336783204439863749415909112633612075103906307276439365174016364256499994050964694313952349675101930856965273772231119173733124981533907467590207973242633286680127504508509286328911384314246828343710691520427929579117578243104104359875059672186987510064634201128015592596909498216730335257317356136257238547130432719921717999106809098702739054261376837776508837794413288792861110076953527209484063878267255854999590285950301058947973190774622636499432169850145901215652295171184561495070138593921565820129359121719074814629162036636289415710473767658779500481418938129294985592504295531092705491986207994660629841503512740910394411613071043018086104596168479058633227128607631692918069830655373739721193117928188352037711345240471502671665128516961173636068796661445335508778354972430148335267321212133626752826682731637238911947727338882505130481976732619630201645726528904680843842379225787675711662030661303365718290112991347217420336898365317235897627648871450864795615360494080709840182404192334988414995831355620100227267248616899526975588122654039757002595970972251881458770945801902224730491365402515063349663517806065018635759242152328629879219038846077917402738755437533657787092696983494573179578391679938139036277556228762174304398340888756247488548571856205959756095650440480617646448137337249827236473443161463282431331762389742639128524535987517674661760770525621244589177751736975486217774890034086639934398402928601218661313138809157358410567467910747630896908734826835190659654868000341179191922652194329656705765027179047388991183273297048292629400058520567806603696863611094843024061092615529816118180453430510685515537236762826958628656438030792589613971813354794873823610404056919049115071446955328826348211267738260337647769425181413938052934235876941726462175279235179891073556693843138977611394716091267126888149547580564062136959640431851513863293116434408822247610765069882060845563581518891835652133969188235957221461989133618152319578472532173773133546826791566754353149290369367524560945076133821616251891445628013257354293017019629964430311766152793823769071583736742434008783539512450231390552342249260464176255994128244628640904693897740163094782290644488401392428400773226428411747292591487734407576122889084897717133170148335132214031699153487939436570720796257735254312989560082697238175817254139946578352452392428437109802229449990966286798988584648387815352635977715731961734944741117617129014729751798628349875611078289783827504481447852274958525315853390657675825457409037640071534438359254699016944264084862242340948598990410118974057305168200469135575481245941762354919569114053498565290358922441140410990981226371821991152026275642363765270330120326822277165969687481941133502778876788781304361726958239221084880055884363496444058571266597138998132814805612908195038671760476399412701655735604354766870487952357038175788209962362539121935769803032744418787338587209854934788831967649269990112929496479087124150728742942079764039607737095878010552593763564044896602548111019475677773717806677125150546355736221108251119621154411484276561349885732314629053365089738793657894870776830920221292707973943252106025055600690789736432582418882921349699178255908679126508298274628869777252447935273532585748081580044248632215637986461024342673992592039492617162620554900174311406806473912745832687983058899725800589449991051883761483880736780639180848525987847773654832040572431445649933329719039396756474619594234328098912543566303831632149784552950802821155990020870907993234324534900796508071197830563691970010003154091033037815206212446306466373972920981119507104460220655095106124713467288872028654700378138659126037319379014491089962192861560113473426362334030045274176918211963953095626012693500244809703073493839026435502461885045000211669823798560826605000619398916210787474870312965556886705827376812007232168927447529647383172045904380267674169608124857618226092782150697919370067535703526265152853771222620632409631443748659925556432848198632995013095140222751786812396685862921902786443030506688363792710517013427592661714315636608645530153837529736247386809481341595197504174928573581008018252577356891483569210667767297418711029787885690402616079993295064338256505909552205547220846554379520200723445008564387616356215056301099998666429132064051513027256760231902680430231710025101922321097692884091593805020708487563913270372896293916235584718218276210979041065293805867711280757581069845954959768330628542923368502071977737153178094260870060501735210695476563962641192882901709452588293598799613324571520915079833414411324901727745620240788750802455262528718435617073123387210354499747481671096427244583294748157110313267681206867929692745177123657859515679277530888879309480881636596810155005102067283702095337158325563672273172652065578624414258089377851281274342116366203890434684942630766247236830591906162462794136468700611412496485779915882633640512742189382919850832720851294751319502407813395582372382528877662698393498157025267105407811291356039675811218141471086051438907308115114861248004519993255132555673583641051108984891083727229075435698103525176044110003020236845936007028178005797275355983824742857600359657010294246286195344678885852962660450858148164133691252738830465477233947271465647229523118786175216106321688506706882168184239650950097533451565660688501010375575517237567824767695764255558283080713503569831602379841205399042157596501281122238828985771097208127114105449244382138805542641720326188159145839736435323492533655378246206408794849515235355505635217338898668924108770169752395636166271907519893039006942106481946251382026466230835522343133282848290986969989019122942800339809999399920197678450437555950965465728209975844749920809806940028310898814937567939954457550849749009851289760802451223819894230940484446623774815142350178067368370779522704957958456615387846576899159872635836842463981319266603186070021413451373396842740572477351970818626253430293708224800152425674774856431373521473815428849664562782982475093750914128962581985847072895919030796251566562501247741112972241045609967818956133092253431791588451813645465449041216154099818100452860101113889666834218121085396372261191373602525795727551692349476737797305134151271991619854201945010691619812901455857712803624035399573905127990253228335475597068774025624375183426399226078167433814685322944276528221909739206296152712452695678342769947592482852675969746990568996451407055566587204673963250018281218978163703534385940320213633444168652374561802385127613696508650855401019703036975270445889234054533953762603607652893051544361166058673288608343127629539604409419350565044418397680710412865128608544956641827362301719678843508421081142419049517685888930016616372732814224897981383002764183473241976993085267440348662317229214588852996217188169129617885292500250230136202367132004459954226030389498839074356096656952458729802971248530055529930736206151882864791236294142879996009149380693109892719247746208892235098343852359461023414066700711135799638603185999790184912599317047796931241763205962511377199949731756305192891316067705915416404604012375749623355476752875935862434818926159217347647350085826175791647076611037721372879000752402708801273123320982815293329018358997411815546264341566899847513772270402226206126025668326050365583986831873375553314028740184427678760213320535324285855463654862194611715726678189951557226177003433496660758230219544652961362801963509533846014529916656392332206090816754613173226031907777828320583086665246741173687836006363777269296217474714315956872073821529792635416767901199464018463315315056745177188098231444479568254782652078037277168828916161812233143844891549739952209127172303436900645670499638926507271383128989237372514635778121117045064596407900851380972430506545279571449912744047486217858363323442433508487756374302154885133186061354120215934818990807107026352654089970918117935645983438787836356218738572840378673652645789119186414027670279636417866441485876977773823196485423461201957303026223761730492921848837164880975159228526053600158911686130723704547500586231474140519661963894892392209446813861134082146427611806632417505472925383797260283268101463862133281614873468647459467826765280024264108596357651158897293782376698359846727396126292164388743766490925537174708148127024662477399617642032424750259729786712123434691642292776106249560548084044754725815258483174960763336900905272162630432550144914717358279879344226014435606430681559599283028295363751153170092644154780962249311220442281365136671108032812699771679757689108763899353474142477225182594891007879576704559092329590212776102921068753576595699648161201999459589896832771725610597379344751493674878700794623432075932570622566974733059860476637931311019266136215928323611664560195002147526409634025785469858880637809837555237414728059704073455016518309560475627301245544237208699489993473850611162878461385877490584971401376180106049502083946740705487432567740138544920165534148490801453281502981542805192283214547990412825101050795316710449393002625305345711189041648057058370040454101775752350813720976478454662401818744154625253694878839018012255080535355705769779294009343482634538332241602647573996213829067939032084480329806725473111363997181132653801592957006209086758522693068231997545331223115578738714567306094076742957402437494819565024198642409028166254903757478370216531400100683566891644252250680687644685964543697896904518770346372023055997462658770185380867916068904595355553923011925159872177299506565279591853149803929136332681421168164219848170758261773450184046072899192854421752931177808268581850344380580020384900329296328592011456302293873545149639681006716864895068600003532084845253718462404548191230265748201329566028021514835717080398160079408928468135403882310871648900042636604450641060719201941155473021218782918777242963763815274474710580663454000985450625589495952416210746701855999461148696207547789619565867449086343684389346554916837737811112881511667048574247171374916960838685001940459663064752203859746920751966091817319369098111646075366332713924066956887914272543838530162884855495510811439201673468955282538954842007898242132073368178827413208354091939077612784345814690662998568890061068707440174364351350703801011925839479504197896232576640885649444171947857816111868206104123472912287856696904023039162438774258680879843367577899525585665434673249670683694473245349224176749202963038615427857348740629858054061694443578103546100135703582562969688597057016840630307134735981380774502029091429287143382640213556794671819257201669735894595751101691492633086859744464174333650578113210751418505008345361190903732811044978329055338795018507161190638658102398279165154053575452068829009259871856246415382579182356484760488115005360227118619514267873982794090870642723252689851833522654999887064558027666636212050977889056534924984933886894865175391569957440087025448594418914611703219568661415661074642662111811448308833498354146721590345013604089511404751569686213645685805255088406312876131878616407283348185678989532824252910157781680972126470133533350444033898594809204718645751158257299980773308294465098057851353824827383724743903306187575877991242127126428320383941512675252484611729576514125238091514186614056029166865446799356450435710500852869873769141431309384276654511330966274315449588025778909538996435491029566534622613194375394689105649063274605365528993972356674312171899669509721280948164764717950934452766645805707290135878781500698393540873797879411076138127145962442330815386644854309051489552385062860396474504284253182172616642557026728569236904079336633564143546320759311151127995966117414548676458997851185055360958456227736794735586371386265462403428831863778864660318059454046128370266122850335226285676289040382684671259449196081856822289032722439082428752843499675781670304251985364645591654167330501135499782607774674220997422321534789684020358328196997602766408851920712537020668003317523449197863267601068115777128036683316869878722088928365230200686672596786372907110789450760038691531257072923418198585242070409516153044179032319912407931663644707800641974719507460036907179733260668180832845204755958843980853799159449279978706126473601853792633408833090950894268664896477512576026174972108060959158198110594887577479268837449812643184845526508338055426713012328970507661433448501224619832057487568955403474934230544177864364652940088991688741528418024807361871883121032739574872709023193918234974432566772934267782290290991664206457499558276013328978874172413308886585756591383740313457909289797725242633088087155588554830258619664275402871293217714309823459876208790808485785746260779617382108674486936146799777824682143255617217761731785049111401285294003284773823876402286779444387931973331541192416361204484246299390791257722160620452997123990703399482314792406732958600818633701223705150027903908957447092666965592769103523999411934312885233440264379928689840321621916071242117793708796457417995956380525199423585938339876674591026050345164783604751498334235462776669569457377381280551719321933742136765631963078440612017109619225021445697131972327860553870328953535767056136076973134255049931248803815590644256133641309380400330476347930838117967442095728157825134256850819260190976410022180905293998202305216097532708603346113812749831159082426139426794459666441551559221517923905786023185918316221109346690140839790711421104774951777661891153958786625698019196432684772404657810430941001399377520348836187373785435967007270888179535345847800373240244958098877794975573614535725782966486223292313962044059603993163978382906045347506449339812896392587044284631227277513791303716996905121495617421979154065724978461308634958283391943478563038557612091992689143215161408430027321201970387459685670898827083537169950448929968630635971576475907614093417187270885067101102275664279799069025370610287099020396740767558853328300676270237252754098268626972243074981109320059547482406036872885274372222572134778566785038317166797568293677945936690540862275631561188878522269717796292797701117379972765523164454149707779029882478678479525257122012255429135258505225442557100322474404212425317492786027468702611771276696872978869284225815845032610324995043563252764302607610109622689341081175725415645573962102755011610554003485361783421200627581916477265451407153033478781162313701819294686965540293857152878836620299807210284833012163250559396858598342006198238235670470593845363377468775030036830223076163312061943546807587865635101133834336136316239187601385890270612170475431551989946010353133715304413966587205764126109903546495706536844862146159029210259129149801481195842879927374935914366669133531508719813791917798365604339637142234561742476667560132272106464299161332786357979617884394028066171301893587132069768187617038390832147125829560799903552527347009494207993696124187838486268594935533039955616759520592972795673472919178918254536487826193645265190458335814814011953218205581637770934262728528933233195270486706453023787140968001872041746023137427430298130504415205978003986229310052217818232916789900654966219062092946956273141830487499723371939546176734046621767500964871787834341965780525907693928726127980733588640262002848083582248696031771047294599446483041448657963001242251534760733338178049580224936804741189933596848094705858345999601780747890446967497524332115030487535709538053715019280175719026071862141152749609484848265491818078414348918870805856346937708791855183954902799662115183742600401037127655753693284894787656066376000750369108474120831896892096972946158532664840329211660671327586015902122724238127172980263400011497466173622827539004793675544817950567746112233507023243093376443786376157686499193324120287345760195528069271678040464023235951856246206778301936489393266233938468275369413243378239641511828716233841331387452466820073731438008648624993706019109219969451117443427788503181763652417443876731020325273234852521265480538644329477806517704878497171281873023293903694813876051234080048497611823659264302424142274104053446498526047473080869095812367252604302481393926064773606608231334875905511733072173088549596656900373654971326656534933236942579437928803130275717811099503718632652184753524956649006508134666055110384963744544629898796889964452330785650750859925186070640470185603745303721490533086622281202409280645433971727559161055587801177285012611376155028250425461455886874894238980939918527197034363747873208709907758125179474824482172204990977794588412240567224274794526251468751620331985517786179501873934447190478619435749290805705265042025042229570168128008170980060552467055458822005363996700557288110918245288273013840998163163785229030857370607599458830301781271878036113492251110969445813395681713465196391100441634468421456911725892665176920341229686153611130495299537581996335076594929427406709482115909839473986902561566793438749481054941073828096119150328709534315865069147786518999858532990577288389308078703596436673273645957535721070914872101791408949426689768497865168536837057713174705431613688321398912840702607750156397986107660791654206239849349077276669298246423147562287838067299777416982262022554079637020460111937382415752166548915209194227470008197859060304924230813228458059028400197810110395242331233590956214123938356301916987769895589793977571434325349401942808875786463631993798580493985115609049689402397170999291336710869261029073435599685262412800929432190152624095799185580601842457096627121690977032222648992616080169366896043074173554728700201349784404079622586406772602417561457088271633731000751998286848155421046024562762090046772808625556435748620790359402580221624618681061762108137603053755264646531398046379482738524443057366992892531295059097861215869645965760437266163146249400961325616129898722241002365464086012328370820815627129620286633767478692248367595715984616947317956499313445993880194228059718932621021511735400072897257649786760277620104821771978207371936486082041046508575952281317832448063969419393836736500333988751440188898516142770223123104957374811294078599340151906837742284406165703493263224111751674873335809965906472576459076223161196120762865914497751870310200614893788302018261406088757887954394839316455946726705658575133023447272550108208124840094854260156949766589077165883294377904709189974811838810358546503342052362222604150054144907334654719713423342630737257200184067105494710867176459334096746751533923474824533675285769254480435539732594727626332507893474528640789335096644882295368044016201216398303409260180288239132327436926041470005999187109808100496158611499436334731628377216229411514363839314934448168891651484289638689887704892689268466399891834070141501128385567479721118531141691611254686779265273607895593582192886663617174208796895469485474704242655454029425003665228495565183990996762813312406291146060450809083713624784826066913891473181434863246651430696178510277051432829854279231346204763820638983683183563084012289195777590749628649191821024771105114016373332078512335859202002623328861164472881880170232186069308889547258255680714173073335808734084548717511355140201448976284030970390715914677137770038476977930276456667537538184332860980911211243632480754143464782524913828222126047941667358497435730972678028333750148530216459339118556869080489398314847755667990761499602277621571171239499033074126713149987229201513193245360127099493200228421510626304534833943732212539149672009353948358364757640027370443063452328441119567776541333946745668127559422976909568092445525230489879461174016611939630443758017022906184573248968478897692247091597177385278301614568239656382280183766659413002767218641710365599589542894384902886527727271965769698432783292901043940192188276030743912900357777255380788091189433503408834982587858511375157044737410009300375522677004235082820572256258642456713360210158705851347539185902136905060260080931966403466130553943950418922181080066481708632840595686759831527949926694710178118262858221879704574027766919458184086886670329723630309927736701637100421518161279515589220561065579621637813750737873549180859983107092102972891521294226463762361043363224776090998481110952135401913798029173471019624128533474353452806062823248681714814878284069477589901767214983652726927079773608400004200355617020432567364253971985749137745036363862455472616713202456039080645610781776059955337280709876448586306008111243064624457261662452554727335924108403169283962332722765813737024241695852267233425043332071917359697132537284648998901832328431210960620807732168773546536727646768307769451567322210637040493492085636911041732808356060773959657466297853687942870746136304288120183376816245420602450875432489718694699166556436263820679917708986729066499022098974926596697340465640349716338302995166406657254117837789917348147831443772637612741797067418634420407984333021131745296320029352666366731008352233887541860094848963224763282810980547681739498765613278874909272340616650628446955091838852049800560861874073863992452646836679719624372717767379747666507383517406890702818161265651101261895507914142317742147709798495320141992685574196879328405659169641289040504847845831699698205136143816183386016138844619566134453452193387205531748816642455863608919537548017219237947075072139997340911548835289959871829474106879318893473925815921466156169385708582760749954591725913469832730708133201533798073635574386986442198775791129005373385061174318332806752612851450625383071155898281937397311838403840353863057750319475524136858537224196206714503015569745509667668015231373141222233545815847554846552943963034435266751736433367535213383017211992313340971481705578784164795039017829055295923587927909418896222644545508320363734829996374789074742770204207340054223131002927826579511673463316997785095280994847384191512959929239829739191775052881564608143993546683085052603628719356763675097795428863945042395363156477297670233031256567559139282706393596552423411507216057740303038360750231165489807197939093279563843514510039649071372831652893450883946932389930401301139894006994887771398822003212207460833592774392061390502434923049320675856079685042549250638316911483657839633320556599780866343926873131199134536485243884940835108322531788238926652189762570930928508817722060197266008277254089471663679086674911267853102254566685552384907199477315877501517054796134841060823766738158041994232717530228234173703602671064247799885232098463170112392841618231583162343373238175187331967063430243388570947117546818983368365812795433238048931718214497325621432008615856628870224167569934907455954479085318891706048628427358455862863153380218633620344131296271963204583125330218215712295812072209859447800968950160199939285515899187591652607488235350597979090876363707230037380503208703125851697804557002322497081131030691407420447743678079787607934390887468757009902305574714023484700309407775293342936472795297498130956345582395689863333669758756344159615817613110331052400225497012903378321360773544935049137917209598939884433133727035780641933271255115873516560766602221661928899767149826443168649617734907279474414039838342903470922767357713161707263140836889417003091723534821903154208086623064539435463462646298898468749198194985129483776157652608836519582936967737688901911519762812046179462575233446612033812723793667952599223739675448781589764260240354314237177119116965538230497411375047687306206411715850162579317727295507116200563618387112874909739338998819145160259597389431217196845003804832750824438802281347591320855410276999561940624616770024894968871450654487242133838883381543222472256066516653565384817420205851883176868742399337280819222122739410036241866541164507034962187996409283621976151575143176439558602551334678334281969247599894805436522484534070438800199238307077369627846917864905624945180756212052244740536116297715811440138890170528258401896911032614060492251158403839441128664448468017483396625628580167664280964349093139982368918337426469356694810774599873684610654483371171113347184140563990727429984112582770043351912820879155763812664480402444984829931643584443446571836753119264399633247334687575912727498037215770108674650446172467394318419183060497823598986118139272595916238495365547298212133740112158949088070520501059794469526557260002407701568979912689660353404919866844701921031908804267063016018245799378595347342615609995116594843952050180100197967507925532020562946798755631006879767612983505182160540725816942247968442403466204481594971197920817009795173351585919263360864670503354367424857369101989723809339014872628068725328664531210538186290410190685727174442816886836210100014572606183140666577030576309127442530046910000090560728202677675439362811249819844473526857821528584841516168950649391886812196307415462249367431463738499861945404240535136818075612513977410783695896814450075801630580129052849373607102027548375328359125332230227944328117598416114442881230167218629915864665853314187377386409367175992266493238944238630766083144281095654002879056905900057377160898764320035156500874094069505820753124182581156706082736845215739362082970187938389960234618152633900035916470866985383937179649868024218020984886409436755505213008824834251970731792467489449786497179590324015493903877999463212173423873710738878887916692205643271967196486018807819948723843194868224460213570811691032890967778961893233507857654608951478715167637274188489990962103717703977934402646111102966459936833722841371419559747182137201031814423227465616576888497661095336619390261680430925682987488906712675985011516854578416373837103707710659033595484963165787996536348607536158600643853255485177211909108880553364635404550771798341400756535618329899841169385709625936341187827479108921831522014155761068770430323954919882952549707495289145169587579785281335047074207264478058475309369657218925932338090819006796931107187952942570455719982686638476579758555337593678010633690464680721161118997627137481564316319645917249716832130586755144917528680796270836877815651975798911374131615832422641572008663361614386431247371060991277259772876555199872611941778010632289291321297668746690635603138636659360626158037103348393850922327821857308990834869746063078500823101743510296217161870984552123906874222420067269513679523619548746501764099471068333332634791333549743509180687786872592406691852196125516965623463112402258645592349914931249621418930855279958695413014646889660625458693240195687791442684253818976543309209362491615638729773630667000544678034471466769812375151726499619929339461508688998168981807622265360419509776955844139783550037564619539013087717726390993479779794220154989293154117635225425088550856238343520416553134467871737535484242306857353411410220637072052006904893252169300531755881657335266741666608534258164687640400097713464080979680435371364909662568760520526994879558959375808516259931079473336080543482679565511139035740419217097455155537762152026737039285752072556800662841105880445310741157262617104009439995243112119055286107247344758274920140931856288001852940692893519432074688649422055991312318301114706025082614200587064926935500246218941705819283377416831952778959023688674260580977109335676000823862603140681233308049865820641558924944213061501318835157695610064291716563512436551035283795677330259309057090253020472580053228580886346249871068769938521822686362458237105662121059496724821818514778507678131827791445440502496906267475374626991225037463102085205644869392936518840021716226787719229720345494439110503128520381812072128610238552132222605078638393271403575800952905511909082482978540262883563361641332516650307268326912732038555847606109561563139805607339298389310546975749781455684789380638698846795931776111825064667212456950146189314802415000091411602474729590424035633463200205120626281116231225177844115035471407195253359844837145644072639971877281783441408846788310263174572833599517337532883159393039315324853947060971047516551942111320139446687369106992818309434466649581878307534935965089583689603666008849467043905889967949800901375678951605749705464821197622602094450806891159286487586780894669136167709208908468355959891760951101824568557996299914771694740227193437192648557327909819340308859370531798415593461691852357742001021041321243502803656989911785157331775471675769447354652093016328063537159388363906444625064038256420316724202126047545176623789805402477138208765990113462400333278782606938847644330775474143227681005779966773240524878641148157279194200996796037874692061464955139621404514638358544505346828979855201128435021784387623464073624256913518492518525069337051505332643598848193155533014890863413999765056661501900946375607221233687139978428637884152870573752234823594682841357256349008027854783974395968081798477500054840240161292251128705657818295023418617628528704080478643060115409301741826893692634603363250108085666898470922344819053982607391693783472543383415765458697667739738144274583715357555928886797993555435425629559317591751930640832300068017199374402710444948832125260822796404149160966677737169508569773257205479396010309277341488297769854125797976664500767009717160266033626930758107744514952014848357180380369169873083811574264056269352314851783117765726184750476955367153986937049567352949954060915676613024612802194569610216417017467372779010462733511641907915848917878139647631747972700269057276630940936432755638497064557574294314112831669141278810498936049257253996045340915330895781655297640424258488252639253381609505741378942509621444950280511450836235724024373905901856819005313669054548480953029725168311359320724088190733335633322273715166059646718814549486996236820327321778720510807403816620892273309275060267321470309427364954026512851250267610107113410096110356914582423655488516467252491910017726637833696826226798820699494252756517926751628236245487864081176514082647937937409904281854408986471254292231627303295177412760567212057447596106600558677904937635164008928401498304773429962602850869445349023119515607914262997968094918610796085666644781724728760943568169849958083929732636804570772874117591241374230175095441234866197717342455267895621077855818658445157076986575842999888865121932774422886167521498464009054889111608235089847341864685408579875846199869931028158391430068381966532038721922603572730362660476862336873243063269124547712040663627186697483598728557534658716984181991072776857447043440287398638019384766694649037956434274112530536913741255144422098736346931582356385242428027353106243164530011789097142028628272413194150581971071499006852972624428305785033414162339968838092731031064965723876009343142347323233596158396410695187607463957275126752522660016406136300614683809458728938815554674552414701727650879128837655393127888292522422202340060731997422785471462700886282190957878918642230078282957155906776448398867070065534102901848506832092196367646079973546042365980426801934900815164986668156357404002398534022329135017797484377688691319550451569279843473647282699360226440307544392029226324899621876382421561924983800098446658673845139907697413920274858353277477481554280935938377937204850960811410462425128897948268505338505160041226896719337053408479578656545348281245294288344160630319424574344498296335906272086267127167362169956948336355218469621213046687732067612377945032578225444980058377300415434995764735882236171785637990010576253974648259391872889671733256501100628142783412650039822602839084784149521346749866032585127911335684520073499967286792893854646757703635042637465026652217958032111321616513422886587655797693976107263991264322075736681749960981305884467107705520431706289306954865655333116385580426162430467879798264805477600147897892678194027603996012437859605476689760396252488583647257029447948373938267880917955391951886295552619322574557623121364813397545742319934837375039417422238410073704014044966077701709314944923418526910642689999519081163027941245029055865371741691888414322466593412558439778367419389001749619628903663993167895778834969384505645534649433400995308376316325600009212325167242779089570952818157000902487289052442620240828428654512135003094697523951165857787931295462090879368051378624983132752244969357844640908832637801012067361212326804581410754073013580605835423634232658403414810231445530508244893002518100069956903346478295587699123551569030319514552801967282791221106694396671059593694339344644504395019524677392063141325274602763502199440172193945335529589468008269266263602264139688213633399929665829097525365091985783985552428696045065604775029366367356075932159047837568548305165709351890274876335838466638330245713990220171044552085804450350879088574852791762590668693361470311609106801413459692015702986026130197308751879314626605599856403665942959901088743601624550673384197716629383315578474890309421013014207599116290012875484745208294119548726494574046589140994568105892301994714157456975052425579251588300112452611530797491588226559371273466081055061934914133729084903990790061444504795846922992824531598144857380435344540406754344096147055608784270532160447079133547327334435318448663732308596124098423557086925476548809248503295419498184946873606117008637241580848978355124745436068041230061329841559428517180434159569384348346881337467456748887865481045089039787633712582327625914296367939497898279677431990151702093508295311370143417274279453407510926910008133497946749655979223805393001878511242260218190557706084676660789512601183212226156129243844462505213429611016508588294998005613538533871589502752320829736922743746070614841103993094029481123258115026239262438451250370646347794673054651182761674649238961923403551950960176512094022790428754717112993287087890507172196939592676716244180045204454578218431376058715495767621297194481562681690078780947251464568763215214451155865515513172990902766011957071708705598815206963746163336455194185357646164909159467895154414874216985135808363192265754865332370645167651023113258395966148935517207255181254548485369635828570192459654637754900701371409636816701888072306014614666210263103081101423900930840987599189879077062808378785456861756820381021404330902411804356091648086031530369993619071395493925039359501184977315283824668791171495331886887237054891437377216184832522952781851794517720138687147157465857759367370274279144274347902461529485771131278199155335910393357608260125517592605224263891335878559424821292809731105494173843995627004244673609045130742812401772908787515930928717244247053021409767899188467636610881778354153835331933557680321945355054356282385746807569884039837323523660601279757965791178721008950610336486857857126718417118550369847222043111464790276254804342578417988737033168550130390083069353170278226237267722292180021509911500883680338148789944652598961064259349523600336357016778656757003285144468069495621782654747280428887228572652383091276002530962277455663976909023370221597384402560922498347005764898634928579717975520416014728265524766148080383630597638548948993831016354026325514447143736184947276199077924435676599344732503084144973409373515914548044135358559074209704298479175996556034075177126038320097380370515684979640872904729196103256929740352668291484730885345334798185284891623562586986526270828495337521217411016303724706283673073809078307899606681953282033628802391031951941776658949224526652824803454186919946777476337880151430028418807300089975249704849997929819563984849749187949718802651537966588229204087620368056455617865314817565122568300905519530699405705756558923964622775879813149583926793289751086387857779733225591690360057185564698378221799239271650015009638983518351380099373714201198653356894574410406717331483309488667695307970067866212560920390357485684916917125688743760412870942447214870548025080653686120520857100665765102800911939817457097308496590304354122174339681298714661522057132040165362048852817056314256186605909085255205134742537835560790727504521778776296420937764126556748821533628050857502068300150229056443280835627698593900657695969161572312437935788254360213767622547017727293915276776641916562950822571078833074889043662431888632858350460956350573868124935511987174780229134278196311723580817723637794255456719605329232491153289729118999541716744545232419035465976555368499515947717157536853186582168268810164868523384642803889117746192160118346867959784387024743458714530322610301475747662863401452841108896418773544672679008578681885962727319654442418997877776051825355805287175011508137456214652344594562720135111675397421217276658595704633555288633380952251149245669196273429182920690742726251462403094789453958407076229101199288721760445934134969163003155699438017394147125346047320059028489234689797538731809243525010246649650896220327286581919850599778301865778121968733261233105672574740108950404617740434707574452985988543218214124532047108283088388792222007873262941585011981219049982238847551893653289675111020625957016162639830617393549602002787429962886463524573459138701966368382445391934366165705888434754805843026650554828490733154779626416754894493333435360965137837780856419984868158432977094237012979261579155987640610040466998609564993075037746156357703974056687657563839242882444293345416992768060658844755690087184348281359260764102968782324133608964436554778981585691957823341090053430616800466683811144070810582495277859357769124263734523245069914610044139891699335916326519974167379914298536575836947624775551961943978274563057011347574876000970909001812642317521637097257902839381894163221230502418811238367196147209414532211041433680968819732216927503706042644021962150991031651945223006372168639992607502583593454763302839863150836068038355233388367096009027863169509186289289914887497603119273016784701725349116075014858996743260031609215747123533554517163672610681968393570129200372836441120051784412038342213743692753376355208280673103969895588347766974466594308131031592621639152713660258214828537423810525856788547018500884068773451480429128369993533478211099350231515786730375358879690624036851726909703932520852845959955377113426094930856228979374089698273415288242975947970585403957056319919131908356792300558086816383620667673357724730331597829731789911841948611899270746806538724778342694783741327312495687862706890161248664672408975608471282084520437732380343171630062260361278915595585198262437640148530885409438599933917438187478290077657691108805867549118433855487276707469826017972712335442996462858915001205075123899639725534451621600843377902909089391206977045081129782609871811898135008456927408038737394918188825004493934100480473408563175273800137523029056544918307251944314003793621476562547258138397386073151890956280420120274158210621448298071343922117694305287240968331382218028447323071000355807196199643041860253356266761756297121837463080842491384805534242533062891844855089030406782460699188338214168567028840134738047799535752542902243802313629927970192796284826830935229541563342727124646871058630044732358879072906084312153483500188125798241535604478443622152246456275308727263238870086314038451705208882182707698372050697393654567833335556837682456449151471340668784959149204322325529345558910981982485219096394258889082881195644342280360543991990050705504041273290876360163377418157322013931777754492417128577329393174270841519172649786449317428170095830017178757713749468933176578946520601050429374724817732610916952740108360066051297335067182441053568782835320174078176149514255036083644510274305389396829899060553202210117381680317093287334582307407675159478987166177518837720771405370687610650080700225837142571037136255112010923528109807902331046411607234709436229518405590674389914973292166689227648197551847754827971661823651843926213266695322665103155985505784542413097844886665184858197461819651721039045812006137242034387324538425093806043944790041921830858284824241244985655219455004265834546101375583801970311095748346624163960034377169083151584367879206350909046463021239372621581949536131997728874974946102517555899625074327047034392727099712174469567176062318965479902389041043005778777240273018887108798203909093305346604187950479343605332428893584811716831345338387121896498473666487740567723073175839118680029069340432041453510401315124783774003727807955357049691285117898367180557093089470893091648212680190867801524168289397531234484067155625155920536444828446800842786598172301373619044753815723885733928050913487016474896243154750625197862579823349422997489430528387039624843690340520629753543823704909260573551839017715169198829773717509193370677065767907561724301728342057555755853271447559135127096083656110565579207700453703477675997592045325649544484604160375326877295799429954120422764609108158644182915298337914623930440341585856748283613729436728784751719917965911669750391817456221483834784558282325049270772432053995712804135400243150783268056509541374286335262218264494744381926084811730081273385138144057957262529218093387179596562748287717318810138365826593077483766462160155677310890892401396166572569838092701344034916477332722110878637113108587422787850842887361208201939217057247616891309723407455525016200424873746420125625257095807440690330457913817038315702813957540773223478233723799982568403807608502101988454104955800180950452787126531804590656956542690937531895368738146496326403217754155858849333771211399527934295771562913002431487225895259317459562877746288767160683686878103145981712348356102411495536816742241935827454871886643574878632124967660622511411561435249745344294823561313494278223918572493644920150059890992323393239251072136623685425819368624382777576286249256096539180703517622811580663979606298441059995786665254680582446118077692698209442660525209098392953511079871591665141820407070305556160144707754535232612382801036711997978973018268372511143585649027929253117987692906572414836469218511041289908284188933040042984317739163739988135172392200010132156404965184374298627138952305741127319732478282354759498711124099104475300702284884289588599877931594201989762099395282715971253615499617404468462319167395236984494457158025198622714637526446617560562261355717384725158791023238822440456029308858182378220359719205932750424993173501474569637765600993438966335024352818545880961163347892701480253617325300728294749787124553643652623094270367299148902181465813698696374957113208712003079061325579502518936526801711627500325364659255747174748099476590589970175259793814513418313285247093072818623395638657306131995335779198999504391793716105119431325751703157103435547944009217118665694938707795162315994770903983915481803159794456436026783929611888061681701524428391775801203788655417279796703114414230050985702546523010702955477599172462858324261400871119306565279443487485072020174225385023139116553509302775264875684465893548810416208550545463194870316574391990903410556320735973134564578500102354392801875226971153286309886579490780860157886448460147130696167327861148194701689801977018174954152448480614859125761929918832296037722894985284667111441588815463166486306587392300357839282689223624957142895925176332597160980869720518763254647499849639462355757069325048463007635298229477677903897534870637589142591007573720346915462521894104967623863920993296703875534373845474842081130155785005548483353610560221251870328724481250821088255073572453021364628412234484238568768626786952675436799519147032736760909256563937447742290924852764712903763139177875193910937048083224739645254900156943137198168663627415636427247952553838930980335503326188518764887649441453489799337212555887861976229023048703867558908767895271730632122605212896139965058175592262191195314890997044929551518081819450969284179939836031581798642137456262917437961328158169029815712863857458250785052356088303770214174241930985419524944135396952956658879427262182673545445248089343593024830132961764551570114720252058280792745565060839815861279624703353581436581417528303101621038735248784487799024199085164165527078046193476998469304252704061314722168497226749473828906908487493021042925468485230433159897932306384483161173111993665248774217161495294081444725140250175101478121793072780968982774685969254675566741651233077913481290457130092701642022564527358030147192527318702929888070342948931752785096633529679764987854614421620896730888630366874765317440853270493990444906396178419980366391186885107974923955804591118830211748133742287816986938584603380861214045304558439569554155110618600069850502867787008274562154256797338069261914736733885075136869006434799101943982229869015450579364025362590564378372984391708100966990470674848389592604034514700650000086769769286082117395704014143384002220043806720121679240265797419783624253941578625090730734631183789827208771987701020576205976696252475625531811443977498410327679186760344313374436214585520897968649607924636517812573160587260858121730587338836290711130802061638831866213441053532344631267724044151626860066735330246725561712187888535911941623179612258349253241177139444970121287548395909398250874029026288149572131212130559347845212722427821547934254357707910664329070783621658150640284888336280884640467822287504701632673903541394734758551918932927263949659759103091738798961225709660763480904110631274528537495718964770447554427174012007771394816740517844066199541098014393823584963439472458310908948641758122337555716077425015699377613369965659395083390212914837740953212015448278688583385137549322616332914169694339640881912776382228482506883627972410063637416522874444848246091172339724683616490756384141352478288711622075349265647656902506105505396037655972272632752039264011198240071900559869650764382305720189760560456395261605641786972028070210450217237575207460041615742574305404987707261488218008663949538741638238688008965688330390621366751731558708660855091030079367616206688893641216136504335061908584338461648776371927027102071532210022031512401266722483829364130587784769660908232574560687178622282871240836423147544022902714496819949143082912165687435742258851282767715383631086942979129906926874872862131835585038224187432707676613305481100689829444863619990698749424818436606338410499154175404183635587723147904670003655765645788414846629989872019963069736795049678753566026820663774590244547725508469305113208514933182035336051352130172696486205915024359273046474065145718698716032730422730195721171841772019437848856351976713360403645366351965330116719856952841970273773266881682344533816343867141187596479952087879184413755046500997473156115726799494458172634041004063667417730077653303319311468451970842082302774648615205554287215241922997407769511037649332747148398685060402297131555954908840812122059740196721468417629959369694767524794140715471194498778248183395884570693231537168815801122392869547713765900969624919133175066357215491949773732817880077159211555913283825356938187839647168843080082806485298187380775542700998077032355173845361465080018638356394694120132275537530936437508131612185618703860152221263763092135471892503154366903278291809140598205414345177048478500555753024059108131421773911341717385647385313543189320873200723703673469583347160040664131546572957907754212398789349002569491291823862056262181540365399384728163258541825752362373869048834866299210488654863360482736657320874757331679360482663636604230407173363054046863052236259002108702978350476340989318743875751773965497193858031133150658316744692408448835059020177265757228191441431408437455703342197886316304339596770945110314864216449826931217733362113367172106359724884354584257494964987889696694689475578232112766082564130739359926611826225992190505192308570110998712117120756773988557670475533033187643681472432403683498888245507997768068653169445647503912116342702532120552420495160345580705646631124547783374609356522073569988306196494439292903314892272698185170420911820745498319361620714976823984352247416646354324003735728140770439550592299351674322848848369739324583463640008968154367560702992830134859799931336628411986700893758110127621481518718172449985305801522580916459072896711047750106513558803453154572856314929075909768748265164252426826841168116372619613317310617714441181553190895960981445881309290210232393674975132237372070496718450085415965090473494803830405790645292389889244592521125609965810950147906074341307495534191593309030635218700295797274969172740174596924321545878103197967892429592925772650221176256582828881053406695837844147063212634534887704516684290295911187829367757198703501235749742463456501310175465489565827845739636276686720473719927173981177825551230351149009797607768880044723699081978855285013374689199015601808496164843200899033123162620308498341794973232858901385278838494434956990382489111532252553331519454132671567640372486632851786342659273084219115407834225304683540264224229963521919601681328161930766658627715374430890108827796744996857151829506978814247532202764966412171906017304750778655938178000934448562158047231166735189040101064553748442548109230357327140340982146918340059105014086619244135237737588653343222394824839555645678523736510025826341600053070504820899425810665674844404061626917069691234680127606384482082008612594658757025642541087665109316338763145006520325963712710564269188084530604810865852390137981711060250572952249397524796318799671621783160418971765271670853031659641188120270220981365138961327629229058443243146622785695859531437702503786263380072188204724073401453168696372437379143021887897334200816015999655189123790143001181303092864625800124891226179755502803875242452947772405206245572537424676372644053648604017475593737791737623937935767383407466757991014124972342738820022168909229453533090835365893187895107744079248604316500075486466568829273704861496755403698176842676794034401656713576913721902554994114210185047922468822174750030723956023949633056568377074169540272448316437518583614753120727603966261735469084084098506606412542777306243527800840338359290214924057130546656228453324518507712493593514243483531556969032431605775923974136346369089347871563646071862330051281910146057279132685351822039513711833623685352736320013838407712431601601936638826116854552016311960679932068524842533647381707673292222235193756302300227075975874389838420010695880596220663593476618745150002353389025788445891876276903717251956600136018822358653047869099135210150190786572471575300771575044043967851852734225813868432840174152202427276626128372915785832342524162759626654835742527181882539502463856509639456643999176898973753547751561454237938632052896074103989879568671977111020377074796341551463383751021511889194648078201383594743084019016973743354641503538447693518306049176106595619953652196091902740912275539175217195178853222459573053133348884924823489751396581530268670896697968437743866016745008031489918009310140832351507858957953264528756556883448157045492909731241403047316147564945036597719645363650493961121444992653674273917048353477910979256284060126256182582132767329501009519044392462274849537205001112319074815862541293237269264940522954267128498329350420968559730916711509105341739351002052821067825441540782573850772195510470877098434909796569336140733890891446523704260766500998437071074146455048512955395148004207651974693927847753903783745160544627329880788520612677856427786514629230243466965342433941581275181524020449105852761584204613896229328004852691784589706531064776154405996365184933304901693512619619112315767407342670208012654213965164003417944300496555108845391571814560811216694042850744141154547951499698940703853503191819807264900246059178081877121482438004977875496684910394262461956137125065965464683436309723214565386039554936463600356114330594300166811486651045574971387806884368896790594042715429034660241778221216139177504571843622502001011597340203845099114995843830430618720934134053611596177073341272704199829138087432762377451023825901487361502003970788894122546951212165493284839748061717780666005378641425092240916174389734824189308228365246757402903467162091450068359597726080035138734144500570185207156976531974729314393971954880221018529251627549865855436884099180653272750603278050090394414336579309821354530896323424098015200666806933214820129467245226109931658303085289628762633086104464256719235034775151623895989712077382939286609959814468980061342724180635525512723004554384613660072639443590002167679855615830016062164419074103152899859285587470762981020313567349993694189190850904907898539980327441797750195459169127329882631462401027486953506392384850938960721071986410659529674049416823959073879353458094142348271925303699940516605440661105005912258721152445770102043084750142105317638742336352803116865370874560252109448215480554137403753631613467990100881515326933121323825976735334708350949922458066898468980869251782251410474205276664768395663302912926707442606673286017477429842844216616441813985208110940177902214456521382455029269342039218484300469207331771035495471935919171231124841788463606218700480948447215410482539177496676661765649664557077770809364395359864575109187647341711748158945402439198782979425843016158185841425305200532418106729095656608999036485662641048337150717240952855958742787074306590298264488448168199087730423442960749762378523667176964067184553520458581707338876424423289039456653513379392478907930350435007954697617902268492318206190281861741757668653832392580528917997125981643408024930071549946857119099738559925761421054100714016899028882578183309579800073163727911779543972494276988942386561403799171222296071995068769626811508872601717407963052495131831407743594922843635096572431081096887094934076762585506869175436185342487682213457454143898294927896194921261060277656771695343071056751800306452595017876341833247664157488808367972814534776445597440862665181003427433623039993624302198480529832932319048863733693509030267387048732386048842169538198585404850918140363265076708182412476154132938917964443782064141840961374555475763929523376368021688809277957059976786466914408322838854062704155822660259415956653112392957857490113757087063178994286034791103983424971508724670657187944076751726442243259890508988090239580377826020428132515165663662244902057953600559464327222521294711451117184833733997993904846702857032722559729071453907304741017464284859042877362273260354133212773718468462260816356035130395475153431024196119881201658056540112840054569544966587562448031733505452947547634489313212738490028350249136826018068055531832938597212724702515538254707824339903745330484190967041158578739894131624659400905358541689645135390530038827735252180541182488781093537979955117932811122868709929593231446042927680938056216040666551520844348099254060451364293766648605419555236856812218142213829971231203225085199074644221617942493227113373731306135474584750419814738498311294789247965593537280478894636134759750691396255929896892928591405788196466948622878931425098632166442404052010274175427294925281734482502832048772598083033191633139153903342488514345810364388613215047496815667101345230063849949713068599625975902756518335534236082000096147886654772521574348909938109633218503354084762460615253325601549447907773647299998683960260930918810421847445988378230776280982820476068531644752197450508917641352514131332129301778800386255041142291195237700390819047768355908071328866120175920227403794102496183918800437688285686004448363857749770530779101154382061527688725024140386031764013165637198243845297568301892496538427823600496104828552302219072323208573095251175889686222516584407170273973312056213177002304902912847542444858849965404941358313267509676752224605450585854008814274265282006449614195867408724552970748698232762991269641219866731494661483011627778279097355066299568019810210267629253748921216351327614428803551792627544417493925062901940446066671139239082108146195458108701236493865110714221865401711797311327854065059023251774110801426442101051680172524471088497598284371716741163034083542241207964563560727018027893712716741386903446643563647036190762100615893599754910646194256241345555642969957140429130804040079500439785661809933136425565785751289585248390286622935723744710737939596193607301708653746440812075991675105887852855856140124304482690382254277065308065764425624405173788727843046291804601502019995891729672757468358124063514678511684156256373929477224000646105104135229751234042644681827915302654936918023310312458890144253821534372085736279852193979443165131534858734660515389723087987049764260753879610521611671869884110532102699703860601775324689137454157442332192380866083781572401103613723409342065242105561471284978565830220514309333704017443640286895402155706734783125861992803655056045652348614246560375010020992700253809198636591539087845853100496949466418490048177217254067081554934427468875564720621250855691741385260311764580504382119884087496242063929365070716313267578212868976159786718017426350913593666003541151216656001268165638251022484684122500156345095735076924954756441091189062554397688686367449047349367862246075529108942516012883942249567153866328714378371071290730420223679722060307568496140843047067444540732461938426183710520223611536225123649055384730701666727083037506350777582279270717975706036913102015588131507205175063042498645251118857055236746808191501259467004306385224541039827660197489504708487270771937309753958898369625740360803441799598327219972304971136920333005165021399816527705382137558258107564503724606728557219719016890827727745814595667409104251018087976817554371933394163608577994023895495974681639972393599133505853028453284074464345106646323827493870641711660559063275850669808840204295457966737484854369926763486722815737685187637682158267557181239170664094781727396117765801742493239323386295277838651660268621361928648195139914710359723226994959475452009278947113712714770921158960696049963407492631751956956542723534884665467846477683924874793606971029167973377787265386749756591080959892712212939910200115329590913032194687256068915709931358294736653494033899920749570794506685932406205296812312966538875287218272801131042746892734111267219085345395595636930498037434182351181699092526582445867443138333069480248736788595919884636613240196359803476259151720635205296194483066817577692925581052556435426775338678536905457138169241035390371954587980636362656873837095570585868541445333975006892736915663610568246426228626118767525377372032047635251504695416816418887392680290819394013229279988346512358953423953148740279785307930844983892391240292381413331092286692421030673588842424306201671832426748369112957181402505316350656709293124404704583577243171264690787024269781416553356987241964975454489078542078423062650002266023482893199837596671941134255002336765737735524155551706235890201532118964035390560528663067842203064600066070445571768367273813884238296505329226604755171321099761392988986465512491704750282145471247331510799150457943666376116429163979416392535245977181811586188814964917337938476773905177543933390007872871584141925337876597547104640156309441215985046379108001234324734631267519449834224844362488606081449736205512210244831553936990515810765336888066450695803866711012513139827626952088402241143717535271470385700022817510083540659671725812365001483740380380718013910800921515219778633363246218281688845830900563055483660913904770110118392675881098710861328948018663266710020132009374192140968720934951977861285137648625267515028742080005129858269361173803993267394434350665524949862971227362817347712448171243532071529366397815757007406309230734585530690038244740025784247067026710538056185255268474154250293100146159596956571826872534296373378140916447225923497261905238961065849826355032176457086617289501163363112236281980853973472634751730574730237644007739846355452052362456285072181376640733172690495524718260240204497283918214172904122758800592335648212388817803537143712440197928056367373224471017204933455017544524134507637794186595678204306818181981385964860522673185998189727248338021280718412804778531215929627642405767035138639939371120726509535798513657140994278305927993968626480745324441785825601793252969520039762278540346246000085366259963667230101859103479272040837577499753284059633379958563624255889342845847654930580825460987859946917123260602857838449304658536532833937886587133757354123493627612609436940624700995846631173577278157848728413387149074589476819521196543409726770643448867680712272395019258392569638931702260934622010871961011909080079329506991043070395587340933749880399473585193083373067957876409194960815669130740553011457543425392086307029577151334469744396046920854806374924849635445060533025889882069892768550583662680351295066603190018202452606715324265844177854925814844226432050885404029996048378475373710676559781143584721100544387253723931761714267544291771436867183571470878034567033582283229792279825092340263121794653365074058356536360962841964957246082197247744929033622196070924470858090157326762979466789008845319453766116857011846282636774458310504825707840295192397240148244085829078890361547416267746100162634398890068525547631220183654979037654562656515188950252988322883651670211116407996412588504729278863727997974983655720336718669882742532785691382972035435399580560344653604893667093647495332081635090240173171157329582347158356883179241386215635950193742194083223953158926604557491244506830500749940943654466381790910661830136283303280069849272368681399345421831469636397951130551882872697030248498655379726151211170243182374732812184498785037927512379687220100163771610686773559859652259484147464175454825250183443943181791280074952788445726217000365428126119234541575994045318174110974595537404672272065095565061551788107317958048077440856103185643756969197543813698570989401192112859192001129153271570727094211448380139932445563586152719281811438311519029221987659300695378612332485034875671292976403391314527169575956371886883097078699908712178161256927802011920750210907258973387866817031174540642468318722133525703862745264302302077741763467740567963111239786883974381395427785768746292454067734178883102079484173751712004018232141168012517138068735441923229013937021729061490932589814757549986840168419558012675454454193909443806500607842327946528684181804481726545899007748363728765310689138285229315504488538407965588110171492284181959288840691345137525971894520588737849788487213853540261056780831248139102803867269972856079249619884858707584369504266567227253053020150342595433835299896616940224986261536669808967954288458512127648047825581693759734021487137070391823256985751890818314404150122930851141295830628547336526547475809429397024150750148988865801006389650690324489914794069921015132724821993758577478884930367321225866752278282068121473388278699468067154758318989402003995338022893881039847543026181562333931946751506622061912456574031469213801301330633707954073281865898375279075176666323498947330617083770466148679965645467270184283545462153373836747485241675869645278453523626006128728033064310922173526151969138904024923304074506890046871262943088760122157343629301010911890875180073541213164413082908339879581915567742233005716249081194300929935034246175957079170098520968508136745558575914208040543946479252058710108597289594842235744630144488899996206564341347555267067607678840141740945720768949879434063149872201582971715836423250682564390666309948656053629345212836219956763714129383938373865155080849778917758050277776745169190382325153216950065353297306854642162601720457356505390758365959581379725951008380681120199510402774081195708941077505078098444549413064251217638021371333654905733996942875821717238110682570178161477050904045939922908112873590545705971400582240359819815731344451389053160782527221962351381165465303275253104979504627016958287296312077207549555334673334572409627886295868107398616791710993219842881297480193260220978285148949443761436499474690399939766304337004630194241259058419516916207246305430774581515844422379888867064855421851663552398985909895213270176017688515127057915242212153313479732911476247051855327277657302419008031905090725773424701992047836919000933726284552501576362085402555824060595349839568156599957002293447994764927500681282024592590314747276481660855366475226663518446440331875276625190568611869132869178346241417164062049709786451683536533598545219492338026238086294163509722512901925066829469209884812697714170611412157200795520683243139315183421394692366655548327251696580058148658155252934845303582268457773709439032430206855045152098985402113255457490186578280663249778307674842362050982224395990200157162062458783338734072063322528471609866107647835106536870382226888232519264174865850857226751410312084553657077800832553835482050062418640681164232433454594043247491742579833058620607004997893213111227383387852986105600016541102438177809627253107331721152373050177942904164270614090154479761994375327267516679876053319577553217867610028666028698439518800408248042924169973308391608813847178185191503867412644084392492814654399765984671154166898348369828095564532835888109710382497875842529134454573241489331005393143591284782245302777144226161526100890735056969649693733940552857444965448722501081988724808667731648157113687869598102581713162900170910248849848519232134193574461117135568860363586026886857357439045216839946981532775094034360466099648306551790500546461476117935876700463691732209253443761139372027494645406850010215707428021144932615957585073907019671281423355183894953171365835637693287672901746049261622320264890551428671123470265352996948018046907476208806650697578598684925081889750635102280281042989993292857723466846762801859676418686362347626115658897579140105656210961343422655560459448834889669343849460796142907298965854340603946966736903351321524487136902543387974287683322848054498121668459851209736761506351487528200725701910493314446171906911823588197099755454279937081392975529771904324416299020300425481831868711970776745565815909334879062724740467605884218651504347110652307205299243845707147284868732855789052913772084872164865061786518974199236158979529632677563036589923705252597922940314956570902994068270409060608520429358023815652673541116451995044715622823152945341488594913362989862986840201005345886942741687960807595054740954547699368093906034848747632854623730905556726052010250395177796134381870543767580445793678110619981806655255688281926612828243987348121820181090153374106152887000246182110422341900735030133377636878626494761840792958057099533572882790006554500207099581692244134364783630194052981768620100522871429481498388770531073844435721932701771022791461065277031098163340867958820435048741311210328170734598476032518719219211595153481001429400779010287353313206695891443282684740211404502743347885061897455500843382357755065053950725278702044470992482726225235687376576960715478410682783946646557075484168525412354630722670645614099904521528360764477230562099214343895079909327232466690310733490914034806650414161085113856547688953198444670241541494217705821210421794058568284386303554103543227631612748455475155464198345296020035570876500281258525017662723131966254650449535360701469522357012840093579421713617800354404259496675977885503110027627479712411529723291958894635621664505335666885839593842598280841155203341293762459085035497116159506220774674530655970683417839510427731804149096153396880164850025494265637058496075803786682995858031356495522905642876348601959559609568202780878201066589255253785385722797982856516001787232876687644784850709013891903755563109898403153141547382945945183796813089289066045965306482320092655914785487040653841402887022013110683540238946586849385970813032149542513262277023487659158907099509041186525564357656336040027588177069503329376714734654831015473190345544523118838742947675107834593179041548484127189505188122486451973690684988814555665027956960529858568019967491624582662142978642764209845080599742113251347313589923332308807711113093777777982814925859071437755650955106098629069482266913566652232007092220396996788314759732003131865593506567720148920063729861458846998475924856114194729331463926401228983966638453748270243978923643092972024039506949466272996376320644767911262844137562242432987153251120296776526718150375388323497812080164720262491429620175082628286261761170746744551966867917019548021560903304343783875744069350467643761610375508910936351883828505653157942233277640499634134374001816807852916577425793389018337310991670762293499851525266417696357068647239768014638890618132401492389250532565769415315085219414420388189518934045430612669252940147250166591717535675666467531512138133324648383142904237592890569946062790745407791544504126272371660800066147001327491849489598104634055508238907571061256322852741539061999213602548697413939100024305891647835344039923662138526608305657170285522504079151820413578639461829086414013886301853067738369153352208482305260881105932165467908245056940872121089544218189432932507895873466708905562649941539610880964044481566066563742006833706237920754529982986071082317445685154597376348722502905647126583225935875364463140083752359473018376908373987367971339568958692342528484611072927210936279213162630269305984760353326518846556998001246415472629858317089138537364520242776822061272069978643665919892366410182865088820927786784407156457451931929580355919047335929398549897610505635978059227299312033851004816239090754213506739138871317648364616936333565010896273345282144720148419728826434326896128402261225087471682025935444821598996692043583661390908724578431536342847811094022203603149406262905133208133479512024182631784948794058460906996297025578730547242214761006689748600596515656524875875371533793312996907515808295760655583627166586138039217103816846051004303263914684827508929397067643730966211556847779510874784131092565524541873211210862995263603017434764782114767086304002232543833722336014304777133762569719526298537973177850339293508375682648012901879484642369330184235140170334138023743098937905932156610482252515131264179244133701807706889595520568104480270960310729990287987543482002727831527386680586900399644543976055469838367400389418776077796644664827196975352661896646910384603297664797591281112191348988418087694255758120084817183552695769390454142386130402891070432738356783705687529759976147700252499622324572756911075290728393000898128552613257505933352155847256271279435211092098698297491019889899958663322352570796313817615084017367462383512141587696277785520651079761431743308865132596694151147007927818445443111776480182423813674505991472435548747940473949251113637754231127145237952864721981131586627105522019519236285677111008711154707246411100236313218704583697372313026428864847984655844394353978489274955479501806523519810093561601344896412443277750561569471408464974814013718496860392932380132031418935742879409382169791464177161654273929467282575462745823803791432074992321436136689278001772666767986712839297952093937153585305626727178913829588530716042479219575999394227126974417119366515519734756092000212955575530905265094683709848213143966444040925550504257076714850454818281313004930482256833499253034759752895212455910665392965140808079097991003537886896832674605462344165314562071472859208372088901806174752287062946315157881612853583865373821247279441065487775466324543271199532527533620567996405349863928370066233451177822307135643550870927441642002270480880815520766945238685747587580357974883924133539639132961304072070286401848398652404424130563959117495155268771911645669473717301723517558716364038609217091752349826960598341313540209461580227480136982717173994511556601939817130912520466635005890333854139876925513535061566109558115336195598537585706837911197962279830975045440699075946594950900473159357124733590674766818470280896958253611522914573726880517182556952486604564287642064799913639666600156378588802884037769229648897232412685942859221208377135064302660027621281098337599019134040871184845314675484602287611710869073171560295100121025365410259820024102080835420440618495245142708738370262784817172484773703528460596916780978520237464488146161296242758941613777401161993093462064117017249007290753326256636816912723906711388714584973540557048484733090964452683062821729633064756877822417515210678732681216669961919064662735675230258006248126920184467436415740076849892983604119879163399664932326921892220491700933366900684633491873283231049069508210756170960226222842200027332497289794587494095611167977641031310473447269575441655794986865778491476329792803964979878288665069562120329578071131767632483777588687850805717370114625665553858622509468464390295500129878519223553185987768141034655111003977512143519125446187847819810645710661623745580820536899049500628210337631159109696482474767277606096438810898792013341814832935473335064766139899885008722262778749797729906554263332697678137436429119186304539942708353944907104442174546820904210921194427735170934578598481427400945101366628920512805410777079805538271458704594809523517630974898231047020728434675022060831656114664453733843954368524044428581095822609138538392745543356513720774379939711664494874395455626877135009982979829844298467893500009169659734914240524623965965768360229167419561730615830310310566157861474053015306472902754771998971700344377820806333568253228133117775793080442708239624232952264216377323980763439892996263274255754066136650964377000968062212062414302145766792291280749915375219957100843375472167703081567239307886821733786964505031743033578499133850648484701189038651950384770806725837190475905235957009342953337271986745570777968327115284082660468121103987966071301789769117142146846418753967505828011955155792099923211892851724062953363711861051324163549123676559753501782403220101626617189134373500228766856729317870658347088860413260758177554784471903074374946328960373667634987829546415791313226750676407829458973158639692136407207633583633670379178042228043887230302917885613591380105106819013397089566174146029457822063684581308153527853878490395417357762955907516097675545761888502311811408058775351569130425854405038421987201346916722747643167037953771612356213721571679761253269224750149483470646474677479572251574407427084542646014473658010338829854185600332410700524598843249828908237960300734290272601583664108117652950577423958089906842975643363692426117184822169182845731645384096166877571301942281644301238373656316036280983930117873856894388465645342869567568001446591342914276451836299447741077016271062820339940844842990158377494486410819885879563264260220586011462051743303544244825866582826976147905461068602239480879750068098649428867046923091271467634597073532158839841850619077513928405571215918150711428187656192173982285787879447658988951690580702115199261726588935350860328719040723165105823618833455905986950849882726870235308762443386817758206461043276383669852852600406339341949791009954545287042183120668549428102138791045964135418249465775024822829406011614067711869090024608670212614994592344026111805025600829960853796311018866554378807530969152535555832446131633119205281774675191356986770558238814982319362865365517987234756552343888198507238952818899473808712960485486980775318314724478191282909636633093743600410883814112239191235182499935920038594959537645632241258644700730255030935291964905251206139467430389820879262235949057278992102901591669496392414032328088566524331859030974637946484626109052304572681758638456707644363227005070048036226680810714103698187784990169285629609823785872903131126911675341920213610767030043264911374697032464302679733777050006977483734310599386924954900008185879960936424512904911711362135625211695143638431082072784187394602110671852817449977753902238283235835931100985396676586513570002712907519390300587127919796041734147071039935023913926696156109234443563119610598202139002531131723859791852662373191713696439041729877950800078623153316323286707909064903012108085094239418970731882165465113494280177626467544988882289568064807329044111758658829300798340146106707153515499332106743696188949946500929414199212605868660334325645482988747901559802051642278418318527877329982790438492437730452522691183599985166284451250768461259140664282708207158353619063671301411069253487367681957693105067211834180773312877712271558366174081157160250215606414546002626773090091217528361721138476169204567879949994458235307106030648223639472355136246321429904263695412374395800446082951260750283034705482206307809283165090105707428226946813559645011563604055155512247203147540524912620081600651668302181398068971158665651313818759864748677502904372293470620707823996745919978622125918096784376131378040896251103019254918531597491138543702006208027990786574084872932581017208052953612736734906121160909106734524357180274956152641268170801430991456360490448508095741953192995025706158587653093121458373081708546365039881269410115417809613290687460295602342623294860619432108531448225911847557183000332046659876840190047834401667814960505145846289925099628080590799902038322485780393500559676594590160373258324725035367661811614241965722487414369200006083416517462741543418215590802710738724782598689875123516803106887279166457788778657733867346523109576035088774299277743190470074605281846308167617984626837568432817252690799946918766826321795218865988919093500858258511469428713574357596120183186384367044607884066701285169262335894589607604451113541214344482219614892603257989877909458403424889096180409492497633370566249317311176723489409809389246680342924019496543462773194771161964455124359427860939965253076365498543267792370589060585234998842269063898421339966318832345803654605743198191898591382423165679918840460453521512799925869176087640179450034635558120907786477970477548913898574089229514857866309423725144653880324003143202869391453760997054045421324475252900977920047007573787340987202214821425811101929168662397046617039450431825373457235310055212863274884836320903512784798934898398713532396513973469223080669760944725008684079925148528831720134827699024742550377443463801433440587756922150616304064496013736592943166680028234765108744381073775364094477744166569079638420536426716263804034332786599806819137175327055395334055032530673012987841800817142134236957040610256930187812745079828913784923741418566179384197712282403543602875860930664620086127516979439193816128549823741670237564193834793240814538895771634802705242036179027970856152305545867196707735689474480838484717130830270273848795741069325190453953797090208214378383997958900093695100713220028523649421490002655237967712658544032886727069366299182201101779087017139396373917505337658897415867892500829476297846060932672717575981829329873176797232457369713347795940123050740986218633590110075118197113322957059764164338276838897868273451661207903992791616908578653639659665254055022226289279944405027279902018428281667799136267414674287719209145466457283324673944132292796178067035386008835862494479493861646676995490478160755807243860510453053406269040900269472844573845039653341030136955061268809862444760313065862549028575172644219307976543962748205281427280912514042032213832500862166944441590956280065687629677844557235838195083615145902572136017086948320018188534219839251560337680802494915162160730155065649592915929932680829116209075623483614758189886280323981243779036661770784462504240844633833458852722747525786821405428860566450128316314093867929279867286973113322904456354429506047069787539742523879396520310619313422268320442401146821654907621301989366242903751381282354130402428799295764325111610117115766631488866754397677353251512376063705806432798736452376432040870536028957941817579714743577220281990438574460745923909118721295578678886150346839316168371853165761533528251995072676820410513033102405505207173014556583431524180923860068694190562368160331247180874937382118008079607004038666725372564794972768325471211783559240879124799431959237347035951004916164587863787319867161285178143394639797446799057445444469029375062268480022499456462428405166159854939496434630976610774791825199505635280673251460577301703509916570038375731668563135330288024120563577489292333740996222498925692133296439932000308774748078893948962646159743550716068611955601509950753165978141439909678390332361647765331693856243495662482571067931133716849683506228287038730351934086363246727914621147369795513314457144494552151807086255189519808572390705070145390594907166403044460658214203481277255342331292807397327497572576152138497893690561361863165548934014537036024238176681553943294295526523883936874616403460438090714148996512073747027650535429332787833241561867004335192783511161044643349975631537862548017397098499122635541341178904569289366865249852936510882952261827272599684843898518171832326241781682023923026233083966300397797571985134890434676663263306743145584834479790087836474553381837867227933361045714204955903168108402309770298537650778306395065331547173093720415046285975480978785035837578483168954139626324256204169913351444053285131457714503998940622048100036888549278120583279154306572459902507469624798488997697699464235135375598025464685162312379312410836341116419341047645339897912726267211027875730067880217075563971896555625306357199847542220771630664003625992323270902758637062367667888434969622134894358421876108698631455651152976311366735859836303061772865881130712712678139708551090658555535363926935623709028148485080397403429892531379123397115452752942959644885517708147407134106022057560405269088695178399682999791538706570077507973429237526032653448241076805542983672123627911579158082464462809369010258439427927327699885099304000137616765534465439890079168025670069296352651687703602349619756548563757333168452034441866804300013057792457232009323070519240909732722399079458482409758065888792875513079136676763531201518375784439048840893634348715729952585469558296401725572414391159173010469443962048247138603316563107949965769071746107841177852234929119810654483008171716993179869427938402435251402180195758161592238094915363355197382534012439826103968122860078517492780136004193665222846553243924230890103500717327254502558129618563381975914503122185542815310460659897010163945062876155477735533717598497077390059979180396406743391886609887082662969645545086178853172761506958905782832045590156187813482114724464222775292957857944218373069943841478461051034911199912789616208073202645638319082987716503326127001856656577521101748498925217611443364108963989686177907039575476809025434564576051664296058493378826710949621907627741632637136152932378798683905127170943142106347187297179299423326631849184578991148966996012022603309981354741599818491443890665170762051043421404244355489948960302344325585737516022919443797735189564848123603293488136960952107789964780851728087225682321828113971222722536128884922005147133715759507607854024584919322535847528659306753911059321202631640209922166803922487631127326967369089152889144967289002512166240371019875509430010335181491125485677039457312178407085737256476893412187050758866137793033445838169939592394250448289196489985685285638253018337421986952319856521624942618749350420648052855078165140300232723660571143807561468197291498843732660724898768849510039155710325531758515521009898227532575229328881542532869859854002157108580853410858393887150929629930155120487682986595309911722503553711204838010914050917843031177656737529013226708325571591976735834930198636503711282277833661902261756926663334130673520910998413298346400227605540307289645553188420914561257627457496403133068715915029961793833462436496160662416632946181867370952103113863770996204731975747787001383725104508401328609162260332106549205532929354986646310330755475732468012615015824236484064328540567352814598948309276501567403255763708580550451484072252489256426333286872026909437630188798862849545494166970612174440706711191397940480544014292968907282819292515740879674982564542490414384023769368510666399264911009904449702524562895360136555631361154828110442609069972628939995334617694682268490861928386069689713538706197637518021887835282820099457984481549036231066411587607097477830587700344463386071338878855018167722436312967915792823265188052610139485288691428997082323614775012791436969395539782763577872456408679568429099166681940887436154424341526031484911294900464296625186799941888091030682815251649978603563465457357851688463231162761191312113928260654889718216981290658377938973895242795856200956644265893369207923586718900177537156383801352337202905211610743829934475599866817401606551727053630754649956146889713021339485714718211233089230969247156093284085665209279936912540840642145464815151332100006427753761207114850034724957784137485198954321948434255809370550635877488281630455516058458897668638526489531436702089380280592715714249896237178985554569185273799333360799634431957971561282968118137809789432491698661262361750076651258839480518153644642018071276769241260705124185089265295338125628633835791927809180785652680567534132402393988737090890261587904508767481261505716102240322641026171728336166210537587748188615777031163620533658348703821398986820969256315952825657780245136374933710913889923452298436289783157906207411043467514660124171099499758545753755323249901809876821793053177184135433562297656098547058236727618396739453917804748886776791050345623656736268006055726290631178368392341611420107859061082908368191935646221353908566439173058376155222601748742212605746641473645233087723848922128981101843674420604467924165863722695565768601263280961526177940688207442987601826379186398122946060405293428637067756773817257850914729959638576692434523574748863321078924776316462341974610755836087252233696395119626691039038475768391484064591118986098937882708661464328608663738693794608428722855324842276778191855972439620773785215411980814244333479470883438981551931459628869836324869036284862253170771038278240901152129955507901910251469205643581952358902756612670437812545269699046105454384405333870121562418905362375514675104960948688595301417498487383712726341073266345255604315250559640033130967654143330664193620261898830149380710256908013416729132649990818054829243207170944805517820443355534027616338425977846771625234173855976376140653887213182796866962953933306094185751553819149402705196503851928755329724290634656987456020438453667405424657105960154126366756236657135996879978549086103704322656134131102675155327813856161670960767593617089756511147904356245730296527261627908460194887654683252609406936370893775508422544092481941943287295268143955370128473857899821915277804524035654554864434907670587149389306007861530209334559463805863776051580653489316620697871815746599387994030372144399109690310374450796208391272479047030450522859462284489675973085112756605426524094717017753737795945857797785205802765418777168186071315897746389101012111087543627395999973291179193398259679019569034549739430698977081161289509113054935184115741207035240850013473367202717492620315883980236219957689895374471104790042360446945869730637259312008686450406704224878262847518216330940573824365259665072233035020427325073811569153347748772757671955702661796356728081843914883139207558490057197062135787528616321614448761859739933473705605572333602886703896501194735461296258003963543397662739023328787046848248397694462369207182466079150404728824309486661960116797950550675438520817162146110172101050521443277341394034298434339606534442066850398869821792084034813993240838663234341028842405213105054412672657234358852364796355579535704397974866803142206282825202334482473845580797428661155867311570573887365036133458267570679228056296157128035205930153828007896656343945547180830642146111356991331865574923893482545981457995306224258088890580715458877020491814096721145406470639877081180285449488207545758913984834304964786898958288667854537663501459513765451613100814980194591706758294032180542624940521898659783968297072225122443855347772941995067610882775621331990157703805663103502034718919062278247018083108225909902208212626450292568101534917961096848697205174989725200142107138062954920294127132814005288489730007820637382637328783241919632383428164900711162698633968369736538290796185100311818225631993980285283996753480039954230373310385599690022471638636247304598803531911598183344074837123101964164984418209945202225629437544254726705899095850255879896636930734621662002706456695754580410344326757030666311057928515430368495919509152734785757992971870330838974182090984666542628048897638640860830325545633807440709539435094299536878245135247136093549656022863898880652887527578878854940006415823685200388983792599982471264315266628379149985010417877164060779729319102974171861191108025037517330390734829848750053264377885766199703101478964730198906249789361427281593045492351176007319787192986231976880225407399733261682281592911117908870975552435325005546853133438016746032933766265604657169877653852644929721543954962139989065507659524369542959019712783790841350359666501584473882191945230633187454599397448669651867068605437158787880217953164092764264492606935302059734537839781426818725520059476432007776531121797609403113443654301409747495007588338597157504514086315707073900435036557008601609497690303510866670213902108555134430507121060296284696729470824103056975167038149632319233963818150406354303206681712930899155631843093453814132345123819311195223961935064996952591616706472978481437534147019780096381220935364403182834394639958524550297729615461378712401007270371191530310791413452084029096040281307128087848496275093738267098894027027019557652235273341573885178898204416978371222977594153685458409079079093860787323707618364323481941958538238642102884620703379715666663708509986477870237485347345962842664066786726107961258648309959261733875153747270644741802920639680857128146507297957635771812825709432124862068574293622979669168222081513931730294231053892623372167921214113483949313486540080815870628582611548930578564500226747479140900214281800037383899706174685667376396535322798246869855754754043244993269771172545631591032167789198332864817563703739599846064144855218223824931631872564011935341614671974878308254552137464325284791625868531503601660735293720756261053254764382279903111835058825316341712618169126802179945588346210390587308186894829721016074833283317212266816688559180044315235234747563292390794719596053665582865993414992014690462774740891802510018456748532204944475112204920260870792665398711309603860274241232482729872071187726026731626499305268045572962420398484291494835040255729439702308217897195152742830672310096752438267252192387954989930050086880015769077621830817934811507737130330464980284999549827133717593083773657231384089079473576221199491873759996681554991728530052432968671274816875612577055644093164499239300399479515378597368648887213224380299320101444669989542311955586306330892943588503192701946275451479941984246969827078038821995312503709478442597181400082830786407131096790848388669337790875428476242428947021399302400045816984372997856262444768970940950986054409746939161964447058831173979272978195963718706495644419683249735955385370877393541530326077495714289675226905064976014562429718954796958988582860794463303072452412830523546182922463122105287148343317285471078865796373839265971642523349982288494505389116224353250400849199917478128261660672313449289192344310939203038088441764672994571823579890814139017850605095049455489134093931541420152886176854729852741180348739680939485156222058660274665861386873607146803807511525582148442632092579131903685592590711573894336304133130232892177047873631278284679862090122438356489593412039208997857258740746626009120172958429661446506968245349847819579388116431829960086723943769391723440431630673606471712519435898444411511758159541884425419343650926412610551967220238104295877127581179334246319989993519243033927871085179468316135314874385996475369505683626791296933779559562159326839323087825733795809237176770175086086622060604807691403619383976401512275173211432109092666366727612744253707831281022730996587633921022625331347013043142342079945089794816251754715384978264361557979841322072063288621939697520450037809189757814547840973717724560695783678682023590285083732507625525602294875389526513556173112536609264783353342236202008763743196159925281972082124188380334946933308600450160085694311210601085251410051593272673858849015559952658487658373904539136904821323531648895033735809028495098559462334135930232513316426263053034714161018566137807704561457634973379012973980645203799685401350754309821211750072004693407262810909767301565889862331350938111406683109629866390269870808398457382307939009166356964738843180953554362704927214321256043225149199194828297799294719148160449086226165465722169837219050234472069707487017339799552600505883958316508405967231827593724350209247346941289071431854321931631520867641766401590716939236986312064595619930274736374995443755149333434485285805351399967190345888376723762613945625990334185292347071007706765439252715766609672940875165523021269134563370648135575460274421237446867279538050953547052003860530003112831655897358489484090665341874617775560828861800448469662739141769494557310594869924147242590791952464834372576119454336881394160425913822663169767591006955695689990098552307821178381123450785877852127621787831475513287351072337539225293972325174078442861535389614489745465797391746663444913114481370679963320033271078759960457662804037149430232217936929181423634741502193312978555712381966421773684364194642806323572731492130440372512050011952037512320702369191324368142835651743210026008422434027550340371719056540287067729348002330053604467019368730412119951868440332601122085813498661746922560590515051702674197999758681924262668569553718735794341708349072670687087467092844108909751329820746982352624464582746200250615260102438931043916500118289662422609687031125722500797841315399039574171961479182034676670124226807303000659579093887999812549837164033200620540301491785703024667977742816744700793965618139312051302942324862990134009202283118678743854815818938201233090061272899318495023844759344926806481000160231517266789147587540660654085964050916970979860042596994608975393362508574884989454760046252290756659422715202703183088845673977673510499753183415042768245585707265564174259757564177607131368338275437101708394080028039599702631563198724372417175469292595543563769627469069045030476025493489056838792619326986110102239409245986341208785636792502734068673195447564357834784790817477108283950476342444651573687570195403549690031668721359159484638650085198703384004250513724580189069095773512875998019444461301806223544586039734779278543572552105878578025545218466420677870107958640827286098635561424782422576337301447114533816596992542100796727733072265091552661044561258803011738266150179142781322772205142819986325771841931976185983999897925017245936616356017568674676788083416503949130136997002959758553399449807933899216302742958150381145697558266773768995105343052870501244381469648797354218822155207075955738006059639886921633983365885073825200109163225024909839634279632727227727692432114397928828802455245278671523312052636467504003929151173874361401026864396726954186137570088439898838805100089147380455230503582636453847453275321308619306528434318191049116738072588555373510038118376522884399668708691501777347720761697330577410085906469863873612733399354703464218792270492104487527142952699848026803395498436461409086128811047683733610148544507542109712982276873395124244810910780206949867660677805805171490229610898755688785817592298064982194245794697433540738070404873018753687237993844672288924065072926750402698577327423929208990656924177767322732934580381834195106948482715467560021916210106827537059850911913167168431562562013787226008288098931723716229629680716498263640417733778080775319791501286613196309854613553588383239754320151146470183588148077448201187970525830031619195099586227306620413083791377165458276619104870876417010839764893256212864170992305775691732083695038243221007212303004438685786417076680693185116051552343786647074426124432485147130500005063892785205573418631081716903774181465648829190710329873914469554296519487881859324277958794147783685045256692420194674552304364592012580400882071692804109454573251133822063311877421665848281101383769098937846632210093329890441999040046487921898799492288284229512515328815697563283060516086291318956041808285607734000607707668708688943579756232389252365172638532137173146059541944823509168692754241234563878262749386532313245718209221131404601680844822342479576949262619589871401063185020897058815276740670742529301331304736621914887047292956680224938537564909793431198507459547948400145818736069480685629222626907224270845521214055793321785420688236484785730994819735570214670655458052793438713060300302263180611599768473028539611017766021825417539098742889895547447579979187630122235141622908537429310878258118411193330181696306818939257688271715800030526668386713264804921916714930564217564828162239283218664096283351847334528697203191489441261348671917272933851238953898143087272337852575725280148108650153769450562708743516133212366128176299045078023197958294444446485653581635653520210265510145539139582991340473407061311535076554030109168212846513895506545756001762319571341948497520550949192083861508438388548059564244150395668648046611422363003139568609243278563177996927200909433927586532398086813765182475880215164227190634744596874608529619120062693957662862565459547535631137734173989334472330697868510241096028708458680804315275339970666678918290567582113803454534462769950717919859475005871463661059852699844288743568909535582372915103628500780273123568293213171707701475757177801958320988660799302992835334329930647357261809988508506578930775039377362658779012781811064141482912005457586956281467580473070953294855778385756770941672611243150776115595057925995534862413744042796616357269476338954569732236949038961499297068918208250846947622870857241957578150454046568065343978253856869893266835238747799203997848236814401247102116085166435212681209827349290181802407674655025048715093818054384690708092287805271158046487625087367675666926486028599390248365049056337275216713124339593781123070669190407700814783354207196731213915377572273294527029045213219386293198057597259125398758804231292791209435200605514346067008738697888275359292439753131505902336370858345399006323396436309613975034241214351318745501657249700235745109014810286622500067465551386484288610111381560214138635199796833551559962466685812971331820865877025896739485471438360708660870609086692232319133949538043389266537663391648262628822294017279428005692293174151454089280270484499276342358860283804771487799162172926038112766276951003629960305210161241027389447366953527810795472845261596534213524976614255907981241852513466287327646413651533393673833820693009981990632884966538110336572406561811731958605371220401200919849154684681831187429533474525214149886015755269061049117356224866581797483299356798602896683445492981836974568413936562314109644130013519736545198109216821747440467860814936668549945863867355515853939053978099147742905044545434830120162624156132763242749953485877428764662311350692767993600635291859200802322728118783801441178367436474567251621771555414321631823345913234507586161350957861536538870080811554508714620447962384519355614402210777457413688940195682590789488465839028736544206999276463752084349315587935547452504680978561262192215679902175126901055564286300070293956804605698694658118616633343990164185000520062330123692668888607615763979026623337591456883909482447859334492957951383662755474703468674170055747989000928307688206421155535748726264436921135288374602859125744195968625188442873049076910735691591950326294072804521080186963530273124653764641586108852514508228371293371508094349543345201514487748372598736462001209685117565273043122206764140107668096906870343519139073745098332536258074675524729037454744395763756009465561500456614268587024596093873409945667584482450918991153558132420094474772029938622924678855134085032392034135881845320971201053553312164444476457357358597550599299843872232730760949348770443259199735296053020943401648366580598593909600697987903355138186799002967799929973924470849988756519091441592089964470198720273026804756471346526130458694661688351098526831123705642498498494815687592044993140938730909618888238906563163129574075116229824912746825937458888258910533670553262106058593769751970593195369612775742856824039364251114277672727711956104610053639008294215045668258718257256584377434571766912620544969985069411766201315127685063829543634426652093907516035058527506024858597518665609013490674727216494699386627051588443183209858914671687623026249464102266903191066785902528269473756821082341134911459205039547111750811399696729146519583053490330470612860234013716302222720845113666632458397666275532059928593488248623508114779317372481079999814938375576150570884842956495952521590129854805152253407272626737565038625555221726433000298677038193175690567901692403843103490480679907871980268281471421149653845670169152401321322868212924370373700947255095864272874740322335933242632472484668769473067234757865291181714338092659259338107074081165868823317710461669339795488152634959480509445331010803473539146090911765270514246833023072851820860643849904004895670298478621302598473500214628546623908938475468617317816582696307160235826299045733037012485354064534092167096047088697024655691447593167016982234943363334075463720050556456168088813911271309578891074956569149467984721488072971043960565599168846458692600477459996315925593831409247537701345890872963253880200636835404353017145326381459535469044544594959640999719922000906582590209652210655030312441049750657942651879917219712924816692543624904513790208038775011800074193680344908950018429640380817270408700571783317430677934020146702249787153740296845814136042492447566221107295753816270099933568375689950191946896632660252384715251405884673359778074187419732641736900740603113261895138923599954026411184942227107093598735621217347327571629718487586050897398245143319397904913273037022299630327114607658168212061381580644091887388719832994329534230144012556659985055970622113212868197890544243257546001677335716105564719696471544154149825870539544493241061493491655639289743962303501832136795852633735641971175508814111954454530089328779086497539710729615307556399352140014516105328100376897858197454902231112704262450103816317895823062314701238657024875220514115377901516535568419607150069821241190479799692074454674901609989600711594992715575612842783686926290881344308272996535768694303355836133622839080458804892969653211618099489670967648204596624929486769669580531660396503826028122380568465501426517579564836142590963791273432398465438081300149083209524077991987984016723239979097375124154110774579676506997415399987203843152130141370960823622152927358134000993970653875023646689890361580065906365554490032706189276236470437329846580847686040169599068262081060941242305487590906360968358531661366101762306728636734110666783190783213010463565196860542377431867137193127570844639030287968762636195373697979576221955185237548072856516937940639805730712892366867724820463051996566268944693639541346979324096315595252959263660685792642675176936396904648408801344609050000444817135521647118721872487123280112108773610463045802841921180604688223292806277771004608317055992033100497071891209745139330032713472038615352058282712261519172455870583386589375307066213122666787951971281368324537033467957424437462458699929251897205198386320629802880048349128006077808222127916545034585415735378137958602008179552999925063677098816374320536116748945364347509721460179991956137766464068135555886375525422014538871819829278932969246505630283181114506655307563083029145176677306730165848552464472358011052589512296887702578605194641554573529522911585162875460424903557989252479416662202547381692520427518559165872310927882408153493020439383481779840816768294181779809991214187599729288645299345546953561744548829122546647393935694076443781168964907818630105040749754200276051370831623067451595590204603331060084456625675034946957489391683098281466145437061868167578919515518249178977142218901559827279882974168313367424799943960147936808682158267288945944539226062747589149093763788587225750316841778564605412561639339367177462874654339294049718885804208474198828713392523007936238019938472820136215772179976633916412577710342297188474135420208584222857637062968821795543626460659078130716031882867504958406352141860569328130690454248386966434789805763734579101779131023627025795135483101013372405690799346835910728867409334656029958825587372698365365122579019980126041792370263117581319041437026542362476923399007932730391284404429081598992564821534527619786784092536891859041188310680230868926446758961094725695841852976178547590760935431014370033406201874896836518172349863065507333890375016933026338022636145453834898021191732446217360682534286263880895419410951886084697136023480577563287804584068939877496911701234878042070211988174499335672028696975234965472048032023008139070076586196526984939181208657281850725192051994310725416646290427663638164983450837940389160771655492821799392785971479783666194403969820216320156824550913178097748395885393343256142684431021308854241585833679175704871658698608737225334630277395000567300183625742449853108976685051447262623927345735912033691928219305623298430837830509616255647734091598509201239920576065690735902302846539504808703209985432765764968443541225108680024147817604090264088256527975548105226673551973939400021796067403336600294408836608183447779768529653284612073044363028941745852068248679503190548917209903572754214422207333756700895571904865788084245239630608749604567155995428241170340953795640414074799903721295812642813243653897299725597626386973763533726197479058789175428825351839490157469809477064320742986096785132236072075466109710409944204546601321420569286429765289286007567806319248706752881040240085307979959010788076831370080568904644394184876309314524377046937742268531452882504513314802370497067198932775501330532634193788908330779984083323707278069232337265317913639459250435814162453803594408883833249864981374085110583503797654726721743043674461880914394710232782729160264158401402418241036465471083813298063759517789268868166560783585984497611569793204827165482815028075864946200886256614945150234906030323390790146495270735494676360571020844438197055107504644788170103298349144752423014590480812088044821555079051771523838025774022643925774198238935668330436668583125241907107556341555914774521917972484305590202144849073185893458223136416283330307679691484269351916770972775917948090468182161700497979869715737339955417976418543032211738867104803631756929780986866552626316476808240437309689177745030541383104767366687944673927401776976965639819276667722315877027382515289416800882347814219412549186446864346553516839079992754476821862264834330011659113581456401334013848189188818376423739927849557057469725280353515561118472628879554797094820912632403425472032704164874083190580705903897969147924134896193414560795861825045584304681756453448060185568256294077828192660773950948964536115982846401546660218756612546092064967305461826021328430762290590422061465256702539987234016916122400850676338865398827618529195655213051100043448004309681934505543022566097777794526564615753732865457346341798011782659932727643629038073849556312590641771983466465335200345040567384243446497625723062912439833218582138738553732671091268862428179607522363789070228914482890601071282942584451185264327505707908324217872772555437227846046548525663405967130578570293674665215207669540683854047076329436127436057408470190141898731463383161325943930239699353902742218081026897049179567859782831064353597615885165632611943054862857834005107511872793248185650106664627136060362204907093666160306682944407812510473592620487053964402761618239474767265991201372146966725011131807907287586288747791124824178259390452811711078366455858089229588422925555777451699702562773208410004905030980819888075584215437472144666504986485342447020735281088451382856002842439026474730509959522341426444669666840275034699517583878872202309414453455595830806113979925602771490741629209119485355663362917349162168992338353813799346113739573848470548069491189045417718058322616664554223027457666405063099449943474094112963820506040802765847058855975412389118775879644234768967110340935514765676451593374105975723258802564794011465082293331668920969029900777030697356337516489003878267325855586384816528149844293445946006985203309520630555843266951623824044308266122879760094221643725692834230705246133306575103872690362787800393354546041833265910427309511624852215267960582531169547523776312961305729570986081120013774189612847007571318265065621968816775023236373984250738135586666109266669786867593700459854428036774148252573907461751237970943289494069238728003479561954908943477305578146789159102293626081240985863932967892260990688997719886393642040832380742764999558205116241575517706409791619843283334216004648060399573787624666731665717019435793342603883569506477670748562814472592141957762299643403506160556480403815551250973150311882314876223630497585377014401517055582270725567780911416267777324640430109247135366699297400155391228065130827094652699863650586984263248788049870290128945775062975560312536412001823590995486682132421475737587151901708357135256439516014358247357364713721591685145880882585856899247246008047981382081762957553368153586590755230663378591920046499405342524789207469285071722558837617025354483967838322396223439006377056954338335568687423588610634774377007103165074747721875613377397107133801335606569730972224988628956504091633196888775095245286180927862013449473080657632964270941504618865553115578392660171215572479363099565517131992602760598998574120534801595056865898959319726053150286635718783489910151793873244446413975221636819410639215852106054566757452759195963245913128727476560647546743273001265282010142333780872237385308443221978796643058982197111177591506309350264599917048061402040516067574959499204598002973174746898757934825018926416991016080860573321510560088412486709976282413719714479661331360381020903735230227465748869913495468295046638840027001891055555771877820351136829073599178044994662039118320181265502281300245580967812433902871626822753857663187591248430919891042038486268214586430487669796092774396707266071859055797142625242299498802579941103527457221573529181461722042063321843284942795232311479460976616354077490872067447443339942948509279549329321140650466144860161292906491312299143412216208880182606217562861557357495687608442107580930490329104858860505160553257976965071102104585004436901272942375651685642382335524407815506616991060333857329320727361307511853272845942006855119419793638983523789126339209297668185629638637020356038257709298222843178836673508982665793269209817707741441800909228258520147379322043876919855191660606718552356144687082163523720672010541026669000384938331259256416131640685032762125467112326219959559678844518519223744622002826435598305291076838972278025472182326418986416115666600367967820021062644131188806099574684993786668105682251749873656875077823846315406498854695483938049762129554181254280365506172357222921255279613054286502850626274026330251535089826530156711789820076977171558992802056633685030815531202507354113591298778128719345270743967031977341974905487005269345584858675361495127499799369063740233760300281439382431585219762090311545175606011559701207086707402785848384310689073756080968018792821736737701359934850998777943778552512915205406966329951154623406331921284810063402837664131310341512418350960292191104082623132024984313355782652859625741518985898613857374445349644775259869861015968535279379492841896223688398793288920323365983192460490640874859615332490851259851675231501430922962298044475155054829023299473832609857121557848474068705946951969812414393211894972752270919497889234947700815423271923000077199789400306108286909705233975925140232109822632047269132256798070229755026269895393988665015496856740640646657529751735862826943409391733675636793140873273380151857790762462818425170917598028988879155761777212539060927454417013817155359078875535825286941481327961917063323605746652844287606446992410148840233159358087624095635078120581187545280095140884739560893772565295956556177881293188360103896607036358401343311819723019389985461323691505132690170552757737833324399748346319230132505429267760268413053989199265360943765123262919936020721231624556166888028486279356076610941364775604348325637102711415467150125780629914679627131560485044548212744757472456250759018026895761872325570179381386349312631419735456991688246381282136137297839017307719247785838815078576173546913941397653524841827740662190089377178237527955953817566063574173131938510037834887559141610724118498054341287956864595684722136788412974752648859048508621955591308130522362995608145120300949029092729191611894359448607484707329203515375847407899335989089083315269542186065109867768142906698403254999909898766921871640467410244418516243249732111526758088786323391302740766674102819067799997356565148242225424214054264711228259356611142900527392846406007600684465979347895449814279106417261565291444802239839206909585341300512494117431513648175193733528227677189397399925914875067903224958882785608801508406532720190925836589580492750715941164685076510636836787889594561737333584462648012441604981596301935401066795033098917614752274685736870434192308376496902280019316160724772136383211262414668521650964952240137572886091240822675972308341127666974661155538330036750320932029508025553140051983167689127269419216392545217340905224384626252227859470642819183788808025639811500707093624211419920266663329414048688790135636237217665432109100419364696770159185832482342242929715222063587588251587476270857544991744137669741075187309699111498274284012922343136634780337863458664643325154332925521190057753818186724635412137266214645750468193641972735289323273475621393336236311615150268059507491133477619377093409577751856271085569528372332736772619802342782835158828664057155901739816172446379474520121582141189849328314613204432448246637926740714670376016288375651468032415335515183601455337180034753644560761539292020885072689411144922196178494430489966917126220543522260775492888241207559268049690080182622750706288962023255000754656634253072245264728023927046283510611210803675114630944810094887753733507826307190165724429122593016610467678842181789550157206724736747975235130160999724065074567130343924961263662436562305765834519394683485287446084232088324603087708075608541080426255810204948396110134493768772656452522299922682701524412279393028776761092422922218987144065379796400505191731752636195327790954900956082667825937826970281177202237673427361079652020713003473528120641286917137604400072655631187743470126427463061323675910855687810819194824689318822310731490811671715102298776188791657424356627755110252708001815852112392092224676059156050295698124746360568526314322462996032886243311162596828304621257230380343839592052666489522468506219548036430096059681688190137435509932639780244147288670156178578716538341035020119353882721160067651474828599341868861125692935253815264230186276672654745106598778890763879503796688468275741254213333163609922050664927278514389087057241645363564721285673233125942011195003422287034340782552083208912590139594541327319214181381262032860566209156067458974588791864208757779452535899006249639108602080541492328366414430805693263474900529139167615927488177569949572841011909735258523795320087080677136421157274461292604900599257238588881454598361850787385390951799102416064100342832965454276875291759702989424660064100056353905431915914522421726688260865052312947771733917384236241172805297703454068047423752560338498906117701257495498096856712559001584014340080659523191096875589977525613286336666371844826598688001031535265945601402782702243714763450208952970503457218477758330404837786243419205684317640234138558822029293631737333250698605974577098455376542294595555082322379619898350780074492333335453506434362312612002792480854548657025822792394457145071116961270593293724139352547739392186552961644061041326231397428553205411684298307178261160656498146948140500409588209811047509222561566039219959669072828154937539475308089208843853052255363378769067136862256137095331476888241988138825131689782583351449145111050888872860467365947403016468367920695657028356982778792522044899241291936472576505762084842828711258412844779104348648693350871765420750147182484725072638643885938382447583415119664765827373020260310292741409651395466823208479697809500781859244513950383410276210019708123433521774666561082339661096493905537607638030292071370064705440160130259257549191149547515420002959875665763666290254695673621883724618010342826228663202800993622616121781780907820307312226964880444424150456208403362968880576149862513544788295054950883350453425826737886365566661627661548116408377981141104434957665962347062480000556963319677148899220729472722996113537085707203883886564140805232227177594883984122852122846224712097522279515502103351793571834755669225068395609076973279040053964924731568560008762746259997576191394939646715238093341194648940011143669279526741495952886269797473282977111464114601751963489338253056531650536990731190150485155054778659664047590092617189457651607361385188618961586910732986423170908094226031933262929339205986068176108381892640254897760378244921958943361637460776913667540275095528352442545901926460736466412715299518561337672946805437992306239971089128084586840684471177070746841490161564727113352159843737197549081526444890109361405112865822624192248041103519286152606127733853864177672829259208833450686441293327777125207704106672857214657169238025458382981661498991821743820124733399563417478829504775845426912480160622976060151823392530178780501100805870385130667037838255992492297941596637216494186691590716926992783204360269641909129441156212736607342980353002759685120753452391244071031875346622919336601472169646689559649492311736962969767496317404932901858042771473904895324934501489013315214223557811426910891663334689502813236560746099614311617240987553817065411075148619266531454333975843837100287565214050609905823768630787989675196537630011699839525860019899561686980368555527067261133307341965887751098068890940737105363416602810469929897019795532766749759563294209272536299989989634084297480521675563126659378510723035942345065882234365231472455203500013737190795126883244578553907527925145162778359553764378976234561515181290632773146964351324353203315937180599333130541831291149890519195329186392520724618628166319035446952917484409213244297069852363089874763086065021450001316755793217389781649889708076915427798146196001606689829991424027897268522606163835494595066705080675918540828038689024935902792429145368685611502607384639058784852537290181664813040113351782256304640175420340851939607210126340424077987869181886268542366364839867335351391824481329389934609473908761964787361966577863340906155077559260436442791596852685194435580006669301290532755360452848670949935437927954517752936791507656946549761053815000373139121897202886962343001486081020874003594515299169060146173359320970044281933721860237097779799973612277921818280013667016902861339492565464834557282728454761290452772534637407038643236997948653541743732877280244315224393649486810649026578581773954752502567087504256757706630755407265746936819332818685748499660458085164860568860598318925797514551436309429395725720650864273116118714065388018956395677588008979597541488247616208393964093585131700924101308762134372775337788733711481990595603801125156929594221808568382876965174515918128834887174824219686602935147710911317530028532368327106576884908172812530299982864092933863319116060316786971348589810356961333865503076397990293982058515266547073134732445552868059566513924428384722100973665077223951115106697410659087930844264478542642979332625467824282614200568063201765486683167649201192984329327383217996917602699662812423201036233946828144614833262635293795745497485634836286012711915516991011030066419681429622554214771282572345588174474413115339886273574800359875629455488646015363047150677738432615322624545318567352643286802067715782762334159927492005727227480507074055081069019440861447433170817055165656906485916710748973188776188979312650478894541271785339198933857033991927602214082049364371802497255927964217028432672076906185428545479762224299833324701810912052518419803272042654101487695725862445229118716635811145792835009779719998345012007959280145388486106029561423613720293649879654266015751609405371566111781330497796856042304916048255837007923601602860644920714073766106604547088850102335868564182727807787904711882285874497894283254121205792794242060299246304149846971711661426203359914613121384723241260971318992510190419701476710720569115214723570992431108027647222202498316030299085451382893481695630603554918960985159158932596887922481219007723771179905338007341473852927952482594643860141093264067623082638778085875394519937811211310228385066893458498413739436442695175120706134989838944068074166736215892527476468559930840008194589070924375652989282119820396477286078067403862355552076706365257977862141464276947348073811488600034777353028000735715806897523762578295806222267656418359191506630280984577088108306361348218655021163950428218523328181757273816410115206645578987972899726330065154442453315533330983169929014670965706136130303553251067507154979021635848363815271640903570028201903781423886476522081179607415095266732522190965674628342107477759917553894745133225100765963493095251195434153542829996331073428283525497887388894881477066121943621460039433806195259682956826326290203151626656416519534603397957301349710015861090415652445797194293235745254719303147584873352103440568209775780790973418607740603773632703060777798922779381165288762803117862436341521893601788726195049855771680951094167244030618720572045605559325600345385444136424068964896227255738887052040803919221939575125445298094904959569440565774263355733716882404518910944119312236582260525718068949316209308424155952008778042370863752927411049888112562346480410452419712985233296392713601636589594947258295024624280897903141020255643461202674700306429779155964862736952426889892971320178838969323221146722711483286245300790684734376894518722273847176498974841114210779887388119811817486955042147963644627863080783696905276055157160950594643302943711563473000861775510017616825172675960042477683740984268330326080175952001150300851861371673992075129136128891760627940680584461611312595671466754415580173163630376217022218329046311159763841934828107719808536661178931053464640901470784743940568684256030940981165214635917407437383066205947356719761689679005706985684196723946644482063041781304154729493228317943797252823884872415144998260081590174887136059768785086969901428967332027834228946263136698039514199729990849901284037234872898197721748218083705979150038721803481160033021156404834155049070586225999270413964136358789678409917536344918121176291306302173197318397679584217127066758533485626932395305601600977661905745964633464049544729547561995666469641247496053429389024563068892258372014229805389065437496346408287104367535988150479725030389045167876790501649782619634966840211897369915326547492790903450631179374384926616547732561594023487383927121099758334760214038333986754782013375716802471625709873881483584893627856755279170838863794547187032176494579600249338781252908553990774971551102986356109456765860188377335664583502197747954942303670366935774701538693804692379652762505023326858515341700902682198567807164441977201232205212227926549067040004551212740351487217767949378194724968880103296699408555946071132236087889157401961249592006248993477854586662042620487902371256699668959991376422737145043847970161090135952280579031362727868911906240073764411136844729074066754861106831122392612096381669148787502810321365567575451005748593028248867259365006315881950539047497073889371954554050920677576149738063417723414833194475285724762484915489810739354086946094681239055337562439251551252761439839627393093726503919778919446995510432381052467285653891578002669571262354784558225545613231825269844456386367060612891451282890262176426444417591128666246460310098798926311804996748191938856632393458759093008738941589236949445753391391860305206041806785342294847893002637080925419680315126971969608110437824705357384823480796522256515753115667445451881979578745513655171215009819567284646140675421180309397805058296818075353025807404262787924699872725111330413305172746447090169482209912622254251025385080060701968103541386810973993029357437936562877673259344519026880208285139595092812422168042455498504786580273371721701354084975799720093905054421888183323009933581248476184090397495002073616369360527150771307190652389908337425690753489285173453243524668062285339962819601771157813462198544675006653603526906257550393008551958970270456412782865648334062863316245086131651238107296500196608167254551324223461478895857439960009358281443669108493767949424150437008256875543046339817073496567828515269935955649859073716259071306335664624075829141020383175297385486792332385634060618609237993175938105131157556408714272513443125069277216846749306485024637186322332692629725587663553427157145577529309969085585067130860543781230461547087243625422694189529315273189471898109013157015675960319195394714605592129848017052499699840688873483444570504202756073906450832968186856817357057931220891489897043041778822529366417664319440276005254703730627805511605677700585623752545021283632230566102524213014808590337126367237938340566105125710409735404083357716744257653698977106619293973800698153041648603113407892124299129597814594480200253032095673624144968399256020174583766465011199486528904277174820433839770595087498421165936456064893771461030115054840798056156640154104758049621190495691111042631052433650703331614424206371703981155246221395726682521697872469614968426202023853472386974036031391601853613322582206253265363358439766814887206276745550543739887987748334678205044601118731937208332240147887278931943238138463294849381699964268275944455253993688501679729102166946604446883019817794937861087841147295902025148514497802719769179126355770386191537382206361914333983457632496527798038975507004373718674801910799644328399500625080890030170664378481586866608704309150464287757366587798524962079880457810877441184927651782393130427368038224445912420066078028881579280645405291510015257587829104709341809467027472661316073428817791971186121959129761517984691743373736008643178037290115759501632280786052168926503955848592021588738338211014827824006506629777795100256907983334814059987692612165751238785640681481253108086423312854570533695407247910379818951051717178118940141293445055145805249810709120646118135723379460063072825723330732332287329451189519511255787699691016379677785102742208603245522679751805561878187579067126532437278865668153268758827712918123883335668085473542140406579971305534796033727999313073992796066376309905252979874161311427916167433971365016666121308190827127718755102943717139377989488412328966223504730904618174563148048539016400827294428811780292033938948088105888502432242249599729838588010054660927915734012172069797968526953165391035858030599925545381383364006514138135333633727585465572419885163172123564429341457814934148584884979189597900380639744462126947338547003126345967973234196661101388536879318086359114686508360807575053967372818822404136408401623621981415669716529303078820045139269743305033246351710682130925418838248444005874605966714098094201072081747205799962570324131647523550517297972804935567381975590909286279086354639757812842144880595106605043345874292640255989883384989315130515689951977186162209495430093607752596365617960067504831709966949276257279043916100995955225977363920646322124664636773044894334785091569407435160234589470686948895996722360489143624740635942762265733973796109377154361296124306372262537590414635113180614247554774918709695191992030579720511988437134654191021657239257341457973421573968394548882860292887157596254944367786427063034974480882113056708309323054985973951550176658909472057380859953811815833972144852734606830543512137163320522575704499386792616092662169410958882059428053377135925867948799871049861336769278388379635362728986735544930671629690576464381682034268450989079374276362649268740615759258594855285774365409381622118353868897939014369112778176957156347514207506334244498092066409276980763193873361585386336535569254524501354482252013055729526630249191404385798206529349550518555367328968969407646966367208865317293050679231216766093330081172877368553156757019455960019754176207129460904973414200532894099663379289886222327442013939656043551477618700208282991357182264078315414448065262062716650480438675960906336874129268784428556352961256905211442182972695742439481461406330194271113664507385045237450081403989595006737153733806526892418525049708594364754373352706173329981903613633345441195440714223621755120196496537244829191260795814873111425701517723471841280190666500039284052985303731004251939292998285322806787279467953773692375203343985369830973485881533737022654646422520603274856869050614119205924605902627786327342143238401278971152992983831306360876629112232193877608564008284056481438004320528604700543492207358551623734485962768810794947863683360170758098723883239585837961203612444280909727475431217240105759259331886304726408315049450740139540054531400744060848567661866196767282723042986706001169125967332759119462159172191078710095661289959790148866413772347914433965748565051747256203871763936690044844870433899504105094849173893239235972534386498113052887237687857109724536647289302587294429935561209200223970150622841060357517752652257075793555705665705954833360555699091963638905815680607958718486941302392539571689330165297498527351606824614294962718968714246470237368031101364513021437112655402054597181640631740141687665007768810206095022377255144537101627847802375109963332388451978867342235762630652075216016218064650897072320550947971787007938863694854224664119008701751352438972578002252803236595875433795723071233303217076707767044190574083048621442611212727374659115553069432258792885992008914153022986302371454846468853993359391863202808230942040677733293295505275935358613792652257101828488097277648525295772596099003918718661082780523887791639593349364862331472035107499337965975660938978374994570836151705420372191392782847958726590305347543189632665946020345831614819088472310137975914394390224870235154877694430407419025057933661549745378558881075846835965252535382270129756021980465017488908691361095949408837782495002465657157862593386386259649949942496521230936980142078818009497561324096084489170861601099782731430106038403443039759470457985948953269090319155335327681809536184524833603634079760401136783487983364291505060942091358276994412544201535430860294174023836482937798004576043782664335471859455406027277779295697550898385701599737918427426979636318304321946664593233336758660496599401410134231640714770576989836260033512887745680692061648924056955328223833985718119033366645122070101911841665987114911261099635270610677800069404092986492161582696580682241313318914808718487481845469062000932247649298102351413799254802294377350221127845589610624726577395348386648483707403091232710687134565791157753511497826351644305264688818087639536558261133708432274286010533227911454423384122212365412928115686905847041876683124549393526063384299518113862438658858669959815879366355094279486675157388128525111710995253913190793115252449385011192349554335681041724038181659619429311165044648598835814899882440206484513074852158333749978630863117154109092517487480589506987558213387819251893215639885494573622223502038518108508187888406444476731758275431334437320132348895058638986591752626088277471212601618934144665084023646813122625054455337613121627556872024299170996636351059512615273493143256164474560660760551208333174897091979582610404351190628916877616811989019978167004118193429845070354867279858740658722039791126051058021231544566396806437879002839723825494602517389870569835920723938708879116337202797617888003651601154570031903495402896141639048324581410557806020495374583711667537489714484205034508800606843920972448766718742804809351975275493541043629670320610077812603025172058142425583222983943463954502724313846463784943712613160472556141579110196117388457362491224493767684703641799189347646433004041625274858126016982074563419261729686066413095927154976296420636868853636987154474864444391235706392161290070316987851803552075696830094688218200554916652588866190549630576856546746341581951169862061930677147181599639134839453216148864918062008325319050247554407831095412901940266048496715964603601274404191166243731336111338686105625987500057262797616005784805875912545370385582137694136863252715614522774875041215577415840015350582744534075624519397037637102692645681965685556080036944811955268048987279896943714747143480921068963950227746481776344274417975631033427381247874329598655289118407198206619759280285794980799818703870570763762360965275484919671589570789535840098891426152228601854739636058806535803751820745888500233064577217386407784879432569974866184256196002666663321684595617790705599829864037835549556589561047998439571107637408660291495718939497350171975051731372418923416926960927613196268522925755133881193555016350855852267187941992644741025930827330361178869926803390000334175690459561999846497249229063279155824337047669015368263451683109790994247602239200476153852235174308194372932997479496702462707561110245200294590111662780415491460234085159809908012489949870253691945954883128660832062585698229050647996891753983355480546803972632569165907424543994683318972402351383212600309696947353528389406039122335504368232238245050467005983609162467250660079674065341647219480271006193758133042447826228816437690724789074401350939301554378350055470412985185488477011516900651450496545632953488534386222903528489014493281602632372088447108115429443184858277313163999843691288171392156795787025164387071198423227762516470660637533267575503693659019985576843380473420649774578043323349179815339404988478407000638464645698457993294484396922160455286379159433582921779214282193932048328029708636382290768969203001784823210266563706523152513565339938982128661679335232153923981702107556727589290492883268595370338427469368996243865239664234877513717828371054811403612142946440946140016147206252816257294814877459248644212154768579944075035185651037704270332163058576767062156484869179394583885429680351182751263246028831105516859589087721700600399728287936456868008042686330084755923365949912649048112928397842094183893109662290743358483518001147587289812768799540373673342659847079984117190107957529205079797938639346315042922582664866332559915259246371585312066968280366369366938285290132797646501232210234827430863374693081810447412091756277632380992996743961235306232321342903760538719070285748714413698513739812638264916704011261123585946643973240033514275256902715539245873020490019415698876581748436502397805758202653699984198230085667070195964933771802840256784998275208050288473736587943567089611577255871494490802506570626545352036121791350374423185643394654975044471953623759765026786964862537366489187563924507399054273592176306171521528047082911099434244716791255682569657245315939049585862114843866817579188687922074075499891390207596786615822686487356878534671825696946441462557316190898063093257376074196837637723638093577500126440132257932588256675768761444335790019981834726800391233741900096872998917382919700796762806029725932103564238059825365216163233146957144111158198371887895747128453970129256925494489981742859423456493402786355308888091975983629614683592017772811536872940847864147792133079367616853353945815129587593087622285910592731529340647746611292596761195025174092546094028601820993829115761856280511185161936856295680051240403555409914901758895264151695587554775112870433246201203386782366108304485711106084186149023712025416464465346974449162548940437123110894977493525134732218322258715330653185558090453603982639503843660684030980397785377643736392575246079180722541308530138846605957792991593322133691096751415351318905561362297630134952863676825657464824880777152770025767593690911277442523343017875261473614159693312734985264448130597842211035395201334437476307108036770054445341558329559881975772617975468087903793114669823300725891599331846561944737689664575528347122108774386926732351779195578967022952927876745667019032697998508859605023069753485447541349349613628957155105734857222116480598662992340466937258136668030447194864704944747788417769216130381289474852917647295509295920116958421921663479260476685019409176712759110947619881120267590234969908305452634243671136523931639142575015853815336910383536691217588059588548499419032806078405702686779580893352985845307727640598201329252672256988926082262550946993365027110649328545333849487877021071334473845954734284945512262646996459108546976358253819613619976752574772109602780195389759821843271986032678244723605286099836324230917321918288790357860483477939743731232580714759791887370972320462108234297255091448468608952639060332367635695205121838102727322014590007593633431647747498512207518194271120243012116454833964307894461460745947138361456815086123428905896303096043079409586112739693302983220253392883777730774644174089269402890377093785308832124306166960844102455802741429907202844970991600171748985077949642322279977453505979675060012672691032180932629630197658140118914731958316040170668034210560648836329195228876112321400399824151624522632081348451457149471717917044104653910459578621688773365089800003686737627864557948615087559580576328881999931893710331978279910423042628604849542513046145644642374408775361807076160941069815996280022414467847607885783188564224781773954304421671380509087566618207805167910714606070360875572105070462421719053737595354674561586996647294660371473167004160340072421209673811009426872887171383466872141065341116984988848592644268541146409136756467996707272110146223221171305245531124802163682821550440311206588634708484739852526992463062314603390393615247816903228836301742830640751037996617212045173546785546005270517615723773388372797781097894482713634359224001717615745257664565065358597550680037731858387231094826467067328195790432344256259786175044362681124075204169506287644156260914044468388426419979513011004445470797723833097137321462242896237682953062614045336752967156508281385792059098863749298939508729384769248690877288292081714037348279358878642343876463307264066786317523420611639907254114562569949852027164237220177609676701209420251393398833314887208877750889204860716420900350221537847443988344722673529409497576186474611376018107631187362598825691630271350159366956867284975590129036621148183482737839695985662690864300850072566496698968485091929621417196887988562500155599602302390620597203211692384394116383480888928320629695292235369027072894556200748439801293059493775511324511762481016937038664147106622300830745260281015526155742434347758291796087428877224168415267007344264160175332530281644571776835127349798355333201265451615360867442009317420084676223692864763627557725183661764925057228430495555394109225040683499598930078757293476057459512174431110406889328333930989774898948507280986807537037350378329145362245858488814157228344469778457195129637311721946927690628651775003944855470760538411829689217373277028964212606430687700251183628598520716492600871626283728500701819918176516972868739572244343859668279957129499640807391220108118239017505851127148756853284783729092810384745320586673127631695442427650726737823137166269359405675788976900036956812968956566245079832892212729847533932926907305538999935578822453865470028734070302131847782741785360286831300708308730832608337318803108783550707801435448779421605297831003777451251917220142044631026880808197583907453572354343358498869925588128213144086373866752940588332889013969571670047222806395414592319363307262074064584124852185606438804216947029892591489257474671649075958400853399016483281621514470075697680292223703005977573606294173228020611924484957079530922003949382942488970985248129152334879186499973750680001991151722496629438153082017169401202515870357453559505200530132908428089579623322654973073259099726339699207949811199208724708316017457882279378705326437445220505058031571853528223209678431047323430760605421813216660409081988720995678146414018745893557199748532774102788868972326013857792278892128743337462997583436131791640034531991797006058478630118039715214953001843346186625707684690840997004371306558459680490347959924262587275611162338842320514487136078013329429634319876633744327634968364736072624642382988852682624486316949142080934573455359999113286781950021415064361648599005492383517572347070853314273162927333739119352707127712471435249583094167190216741491140300702781109554023485378845132061009704839405361689245831828758118018237207064911386156752979428795388155520648963330353823709293768292650591051084559163867325114330011396304915921076341779672732150947788347188135925871159916819019920180294607609441081531001395902674802933740042322124989985936997328510887133466455670369608030869783609595294273280599968418454087073268299158092536647183264651494906908967345471022793460745396310593862998409360994130433686275070580200759093156988152676368450605968665778053486978172503302263430154224575491150816077411707968811886139754459193908730111335241037151142451960500552863482561039599265384744215822142887684009689967396340635794905541848838964389962621939722699812603891960032385639278691330788554401052284778997452195209025965870517290593399571329917889658046760691463950328341091672886401443621473998243618967917885606186459743993668231794262084497236388315816813623502433651451290414403800029054544106405215973147696580162619609908389291864920841423996378890089472746159097515560274846139514258316874359450583955445865789104255236859964255604850908336725090854218732290179978391145561245465300979374544367499746783945543670286816858708102867239238802643782191382078673720435311861238705183624783541505170322259383933924738868500241885449037529767472298771308356908268457749160429110476484223584499755244369186776453915862198802310634073807333056014556998820568465129347880142243085114017973010301465460428938415971313623127227575854156486649307287375078427117473426740470433085108164228096337790480072858618087159512980040534152784833405363453759627340058415272079972058301322153313668631316357151487139313902128845505384246327476184225892179641752815158955991135302865843861490237641992213183724902194300192756417669290438224822468908472421046862481717562744562921484249119134041665766733457669822409787685434566640384996260687829356934805481357597438600278201649479079093264615319773749108427492596123415151311556522653140331471190198071470193002178878402698381778626767016318538584316898157442725354206957813668468882750229018173644853438446030012201726999159495381727825818899342967643046722945365146257617805084706411464811975524671095843458369134562801782740805317910238873869606154944413850041182168819901949550639953185848730087861347131227344122460923170880625626846614902133708912882904312032413194285302004825962722686372380130230434433758435666518234824236346388178552936487561480452724892612450440679762113598909855206497873816303548083146891049972756351616856264706283935003206177822959775569907519437106071061740631760468172971071943842352159316360696698596202099617996463348240282706171732428028911053208538474126239960389538034521019775961541540792183384615339820701981485957318352127338812742173986890195593574352972500620851329786799278815669461472188192534259124289665927177599322258750700394565448808139581429560106485089214602696210909674942545734275642010013877339897766158922322370894661619574724748397536178539153525149673876848432195986954152212993237175775059693603329556293800724909905984278747868790278684906511554312656773411590673309980715161898000898959697200272496714453315570071016557163704360273699715030207846778207012469527277870762389389153580101148545285606077802636231061403827806160877842866529208826311984137707722987227999215421563375520003806392846932222525402175689735350974826610184283997460984892069840542994875447396795416191192344285938405167072672254307730376409751351065404626822847865489441041311171283104033239098372303203355163257871114377091996983575549957792228648329221116572848263678170091769845102241474917971176595353846268696767495869282944560754837489034980304546815626392715725776878473297263300361737616691376231772991345402498481480678928076213839102947918698413086780637249273507623659253062999445513650609163743226848035495860461314681861787683488022937984199960729565499954356626505056897923042078594098266079640643636578954225776516257793098122712737364121209242127205343005343844476069605674252170110239316906719093271363030554303658251357942889086029890221814983017163671991254994731175325623414043033239762105770953420423843393045209759641322801796744707983296855250111740926192222779144365524304846085755077854989603672354647350224985627077205062216265464008708975288808809323972239961730679309740189118277094845573866891696080569294945973020967227992932409309108495926266720404933011732123627525409881928422230231065356279882238347193889572910562933337554694797069014430426282292352087826998696813085451998480087306760167010712584129274161147348403841075049840121756756894762043011326871851174383847820380619658159209006715328740728958541643166064931630443417181067404979111612496186523141678492910294865466799218576914982897695782796316741936176512599359527547570601778178590970463010461286440039064435605568120488001084070033573612791963865939230990831017435723142291677516518308126541537664899063642862654061784446696317698986100634972288849284780324227640601017867228871324370075864319951205532752828266587946247999422626386061439254823984742089497517759670717629442440881715515995015460718393437881837304502991754576540091523699239325583919266967001477523983594275126486178932057890570911641039977175770448596144240600746535161835065790427747488816852386782458882238665906980389301873080904260027141762458723054217501254835985623637558242340159818939268260260521674721576593163426539092729889805130230328341978328512150517265677186571905346657933595569433262204103401512177921850804035732648642951744106355880156203604315943160585853547414913804391673209671182647554058408764480678780680659750091397743208875867181968332192787793602436288867113538253130925764646598174840791469341009438965384268801424794363290103490022856079826957476900985290433778990764013517274435390905521533007282033314284660635675500424236090890741872985530471701366002706538091808324055372104449219350187871101491590238395410244074982134027977293488840580674516639151331854129151176066624925802430798718794065268599527853103866067423091776578586179878694601791208932242015013098611140138748327375493099317249085318938866749098183058936444837011851348524532583658177155407717646830764914482202665253698034483501715422127945257344491093683455664890053980331076474677651067697055905352536518461478836962880900457207319196046984513517636652984967623207371426539500743617495021948590888807316300204013455697164542675136810009686342493539561752414895937194301088804087536084322786506363075055107672490130136407424482180767916920303515015265631483848685346314309223922286408740372811624357089758723044654341275962282720966392558573930980310583564678495924987880916882265216796254728751699043472034685494323998043569984643799023352211273670422085111791735246360201212174715859578556959638643403786202103865433192544296878049742691755818343125629279338355223642383536000105921514641121713246296676360458533838310134462213896229570154501820280840556859117484184284283964223784504182124554860897861761739281039169495997831721756545154318431274124392010652692132187987417574190669557093066199900097138504565348851750816785573584064808818375477144030953071390861317264926605698018194214677035983936639757003093534072642490190030442712693054490011320501079158256335282344758412957146905524981012171942344887562425772677435634825647953647232482669424582808585200108291242550183387375969099346723264458606438164133542274662294623630850060627733096151345858730043011832811484549233389319086077425251220581765818794709937198465480833941114179967049639999836764102042289879263460955986533849448641289070668915167842446283161086867909025898628644139271703857394413010655812883675997716706146354946084672943533068076181273713560190744034163673597128602312781411187214640397057078509995625372614002056643051407431157017784251753430400726611156876873996336402932004000709091845961767456096704772890865837939433948301201986527400010972032042064023535060181074771873725153004509994115524632156590122379346746630718247781710277173720628214112340994055117358307350220233881882016470107043138290153863917992102880802847509770294742204635833855076357086681875066794884268792823883440126689186766391592167703344116261674576677694267795494678685692247331879253781220864540370988816823855856743406396869393399795620215827031847147723405830992960189820265927257065487932646457534501896205266846292092092792658788399282075137302172982929864628940478456027609739348766841227592873527793772368966129208521831066060784686986954690544361212322596964425736858903095395257216466767984359138079900878826189692352825208991659438361974627570894932680865565265706646853526565879735652738674351556529835386168733108720494876025291482289817104510467244427251571482361522586858069859673841842404523196799993982168633535098082977572643374638495495499215328397513050692323987255975196237877251225462315097189624465637040100334141854642988331543856666607746020740636666909937365102471744104271537679909452897337179939816236535826438980709595041710600429609412873101544069960416611043880451617890849832259921482223648430131984958535621856906240769073624381750552819606445406447266995949068949805327996528998131665092011863809721628188349522392007218178625409919294836968507959303168306951413614068778674425873485886324672765944610241828653068602584185278027227997890497115446446831611319096901768961118046777309389305329010099155415397079809682242168091196362914957621133836803786418293959799220911837690801057806648948711595153483400498992268810493936690047970109393185853202725800839829546921340655867726561761343847746437201410559968277231857116224165260820129292954566067085269807098800643121399193602835657168793662473069063108061116471210269984383168887206657974314789826112292992349966433377926016233383313795519733357760734788135895933836269678129591429696935966225825924021049967799204198264904250248181522707655046067336674196403500335721210873188667789529799274290727493368151621886938110354257592120545213296472582598411199849983695375747947179994182230420298397866586265831220492744036449225267552826654200923918122539225992939096267946960954377654902401517210356966658019051051172267161995944745454055676806355181596030615487380708416848590467874757092622267076101306139237758474754030696789857054228877534014473743860715804227323325495205719253105473431891626738954102357173848021594968045878026958791345089000877541135102195582486977073859721563367312239499341669968608469246333723602073094855859794400759472715833808611675847626622289483309880582002728532224649301929363493831042981088074188043923015948871099419570280739059903695108168195055378333439818276817132658646664224129943082229537129896628694750084455305454887219229444084390763250245080055790013278943049907124752250531440869058818147294688237228254158838967520747281391558554293463655488548268225340026969103249604706642344246688646272756639993958392888590338802724012072363393425679923557872692366961611310818875575863231509822994213928235708674659290533399247718300798788306123333615527254445659957255097202957798715169783973316956787122580833557480487480776640775169344369484535683721488190796564698936706058664268940439724273184026475037123789329562022267587207647191461194254227822041900405435708408745793739268879204888338435360757085092107087678567763462553993032538333350490868659850319994384962919791636727140262876895214621263335421270401368688537261180584107675848010238160974418908550143305197248257731541896155519479524099223649690520479519147066268297628177414568802602532987740279158342324759678281942343195823298188382972735910766521730534460568947184755877532183023051435000118378900154275645663392405660536429544353519608931108101589815078242651276819737284513497243612886699267132696144186876668040976079902458718007340797067386764871769183764132571487024658368814332313073333957226204114724570607642091424048782743790110833984301987578088860289265574603856564798245428669400269737316795994058825423399988777400380770689715681032946330231138198898478356520397697918628562461129696312760206236329089437466249800178998175955815507617145686712314079087691529541746915981034482058653050780174936647407558250497007035467262100259940109286521260105218179664127782827053832229509598852755788302353145804757527486410668741358573943414171573284042054035500299255311808191949092901039230598907174556554374894829775264531972656854829606441054433761461444589304744085394802726964755905589379017330229928355158516520465502057890450445384698155911187099543849401769475604323915498251438784353599286080709205449045501295720677860594688457114117036464916142038994464104644490962672667671877294215240727585345107115803819259789805959292885868126988799395787057811313319858102044938705798040094992458519450819253342306544892931560384492631139027541646305299010602862338222664188116618893190798363963661560440914880571667456358993882713655376427733024781922093637912221507911772068876047434835983463357763729320372613885212889475629509013667014228242288391863328926689901929593527685867990653325530015194959439060061672847558174183666635671387148884849524064845094082916685483872947258966592384287583805493527168813944809720493858861380911978948778111075224299501621258715321894640252964417917249591838420537127144080484702892142011854964631249606528766183035850892452253437207512511614245198458500647134071498860314136122562386042049951459667180627140083556586570512570354656721428122783604904247003267065391526159783326661776466784957767006426685204848166469270899168698776863072575974773124492833352421297322132905292735727355078381823489333156043944509820420898844121683345275281130454798215692995816437368922226689358349271179344948728180483423510922255218604992361416830094650446723843139647024092116759785582606889025053365761461959955411103111464798336789798377021730596608720208101699159696925423199722837017075624859507776327428734896928838666189136932396027781140235038337906992802792421163072345769677687247547551054637139513792549785708908274576534071981879709774191200357458282935236563915161418235309439091967221583467617215270291243315724346235563718641734754559617341689587503675293291682606503208305702823568602993898781882955075865715461228093900553012544581544641929830767316516109602897969012252623778656176937022101188203678309368556680214177592630100774370467219381579299788874683755081622820034054577927689498265634586046274104524807971290527114483272311029878272320133592513135605835172695108012668837805771612578399199386885773268356073421881426808405450632566515546754260578946150455469033657643982476823809562279853499703373676959619494293163791511214384631426627329984022006603311992989177971818842628677529181413672479343605816877838703502087013930264136981762774268077382810511282620852728011283746963909850451638839100018949645948917354684607906678691866278024941571077074265909858368237032561777806584872490775699507516587874452820739822144045673717342647302289903722057075860221396127446974129194678006999861690949867780450372411380112094492735651001620579121006209299108917463814187986880328689775233581666001924216928806512910198993619281227859596335468018242373730651339727437035823494332367421168880485533443944606708635964844180364901051478151178014994518942372274547009768807995417108993221023410908801112468234230418694474486877576599680878153337324104073218882701934505588408083503793303342506699415967283993032721801699168183960770449336625953988969167016599946564756632057602258727841631713026363903313270115876662332060732177061396458538324467505545028292375972099997430445884448188410862981019257229058932563094522426286732154263585442984165475441075085340933474200623694246335248495408123374309595727381185612037940815586288692486148021854172622213548852953322864498571854120704138029080392122932975670667443644450607846898868463096859830947157024580867782240940664057152334707520039676831359467184595417618798865765803172733542467989020333852471125850908142247008439592931200133957341750748880025129933877570265697630546654943364422977663892302523853892152045539007804775392202014878086943826975085663409039056516017571222705727266313075391970731658353518942984300096334076352307509407563233070000996786297552956033348744304210292989750771379141946000464615104475865645423739136832962613204938552049800146474475046651357892916213611054632417290220430987417661627338641107147332025466352602905436043398602587261973826283554537179142908441910423109896167184749280050973915390362104086663026351416667015782379215503835397904454162857163711838428813064474755141537561057664631642457633118841499753856967288821736100554742754107120531376046927944077674896212136534096210873037500388600724252047387880687865185794999090911051795865049661530310300594904403693292145461061454541107820191824752528276646770858692302291916888053897045863697511729023296546737474145689305712422381513909706512187532831443434292120886827678617341098343177172082911522173044887487200517710954066081852101524145397303478715687545471283787363330576884847995103102339145071684735434929251310176936870552944322012228161637398710906474439775665299908818610155138760792824553224926196267780727263731162043815225798192926484516702417881049614020496244958642030737113939590830568171574607816523382010293917307693771709754280817559815280097015216275033129784584765194637787990049050588395634361388466879167526117512864012308976526991752097716968375855160833277809381428345509923361956471563122590974581247948657420654984616241869119787668057618948299012813333379340364289209817489726744928717716976399360135981004240499672904550874281362948412273003059799603411481603569601315162795144983099947679294668000693218092108997903705124911405343779972066018013265820980864092567211834616705385662389866590145819099485243901963213526660243183127900428532838217746301388389140016656655232262876078073819091785900170364887612043598590390566278928616125831945199351737687118688302950637682227216073935865950904887869700217040800983640972658442343000968103306757899072481826906991031657969117608931186192452201888678399714187299466261927424377114998110326960912371227186468177243304265278118781198842649326895541426194458536300335137356772277667509835914725226142728638489900918920671431786115724276825819280617556033083670423121932951724116771570430466452491263708882857985754938000574065648924983797501209044984708889352901235596045388000032979405276702284863413836342361098742447119858191673022755837505951398890429238467097543144431397893839815334834271765174947864809974385862248020643578821921278349323565670488589211816178887806873648988153647303785887049403720947436880807080974120786899184093578744236044914168444962836127676272409050059661863084511634612168881801327536997983610915700449348602499283938611042499068167574828397533253329115944763222556998455142998135387303553886024726070897177424216059030781347287239599922305612187869961291411383670784658831594250874754921406053549559073215992200098663968373380275753095055149105092621405648013876989235213787726109907033778074135305467285691452735075772491197943319465468740252217268403895716540913920296141489492807406039992357288785812659468892164282902962645327659710019327166061773241463092633936149838297840300502173976072142064129445930289281454054350013295945119320658257290664416149176658471087944724363557965923264930494794973923005020886065857949483694117516681657330615032204091730380770613925226658667180336328996988545718107980748279222299772647285561942220405093643886272080513493526520369807968057217163377183382180006322066329646819912154181423829458849429422690564659812416421245877098520516781809768370888577857998168286495638251564783183853978905065032560311535733521321552449561239981479741628123821844006283730773809544338129549059969185385867088188320287762553553850661528390355917227258683448814801373103532003103137307265502689126175396965640962017398699818380669777126753465953697419554812886418421457666193582732632625511013912977831319871142670358694337174861866549155935684472590078471924998709925413654103296747476025053924442444210148857614526387756528412449972953531005228076531148727489315656296439324916248671208366652904306037457338224189957620108947590457664676260259610191619292603234390004792308095324092290189997320946486152155238589449276978712003843340982046489235630830308374311177315452627549621128260668128823279079281679186736683843416261892797340915825995029492108084837509749858811772416686804075384792696456654046238494459252788786235220478307398546497650084924758252157504876671131880063860660219904935082454687836053040796574262158961269166166128189314113542371530988992722062271992940532825526813865251763993991045648887544432610808006635987029206308479328891011714903722469420485122873940981233667014120524203144401186422009312887368552452097170067901161497469122320188302772806330136390272773403819867302834747499055702221194826026607233812686018836005226073684359828971536121759409591123868581490507906559794854732646823665922281260856562573412864194602411409228013445170185400383619463394925263439425955235285159051484133697151993494979254997339049172362145612601305279355539747375942260103814554642323762968892883388311052333321959495780399644800853374802662068145347298614065558894345900065682364262642886578087181442257202880745010537979981292509300278069687719675068861437574336325973400542379884958147136162461246343275450076802520541604209509262863327604850435150816836055187527809753787180348545770269316321422086308445089600876972158575783067473262230894883253974646735910494673779114192499298360394970938286258718961740939442084289096582420651729850668418801120836667109002587793319276782567902007293094911039949562501350814429108986987247126326018736542759033214028459951461394834280203977949357405427934942724651559735562177449154528431840287116369206080400740544536224823415274489175881229506608753034543426271035884463163926885228679037939417614653150756169071398913009135035455612712985544547817847544959764058322153162101897735412758414183039622991699558134866940106806958636591656404517942566581736971044140211449604339759645613271328243761032904098297405723983404189870097802958002986956168116459131457684860507340284113707118971262874751093227346980602902374210196351209076541702040528129076136988825128842756655565695468547796583129893790659298340280817716636502727197249138456895581147481317701001179056121476071768063266569122856380137615339774402062056092627132562066836059351335506081583038499574762890501463914133549893041897442854738091551896198190151352933440440876447089093153884892113960806357001994572548515230136507210180940205345791176746440483409237706830376171149578955770714136030474439467150975728092374672171253075415783554997985808287946929585278449931962455144588053333970941365395164983330141987137495530012597854805866357827737296671118110504793367577059944995647067443071173821118226209595284305723389352984924564740411337532183532520985888415203157621253337434218809438145441061236913403885729729874159399003036626472305822929539437789123477230567466712319698972197921093468308611274450841756647749260288246163076318115192156765919932860747873738033760288160670170577808060439894483544334365990773514665236026292582881460230035114870785263049568063371526289599903579985131300554438036912973458332774414191624719119034710039614077271946343122576183012412442174761813575934025807883177432762693437967215425468203501886048758002083761346058523960927798711248957312286902119870012203007097229971998407513147033582852763449537304747417475794637682122699355007388092281510853419568285722080756391195197668214061712325405402847451063278970689324384497842173128955052355926570266286772800804097019282176062403129364949437135387846534536117517407793752473551914301237190374855241852101494563931321626270543957658098541341589060393336700203802349499154481510520305796543334633104437295718010361300373878871228787246763660461805378964525104859623656667608751815310194156783160542216951674325961874164971875439118597867773733373614231038585611176248536250924377109488486364549429133300980900078822951024732868218955252246193320468039182633804391090653571502402408167878681859702826464958781758970537565931157033481011203806364566383984839297484153730290869779851052363603095073971553300891497500104324025620479880359133832738179765954326778070213832912689403579227768267789249620495155851355860849025201149771987653778326345038886068402291055380162152074168716553312333469383157526934071334798860090788650713981436186798245676866575973366080967628554783432806505092024867005194368259205267203969086584924833848856492972621163971729918586047846310595551402067029942056355727855559773523770893737096244949272600478360176705945276611660722761982947992793949056337639281742575063001042726678898885951616201445233288104336260993960165574407465146876775249835293190990199835986212255096924791530529343797107476703356468520306411339817364804365830761443835648830539974750384295310291546045035417962366253207768676517600493006380554277900913013048262163232326867937855036089712487706937180572242093251367833002029083134556006546716673551341075942562537282436503031766195309353787803452865424674199350430114684107010403697863391026844943179878414082733274278334071506789752625109635594034985825991977197624040550556669029132233800921556345334677696880372593198828943458911881931708860773821729170206634443386036605577330430493074751138026852638881943019259081228936106667356982605522841185828508695944466821393658276292917510176128167320269132670273029871521493524375504717742900307082225082809400831310354613564214985737790274280757003434423068773885270038137183193858726796234435421234118028390769947617394933912930852701767544155567920182868735138493161843502200887644086268347180295653596336688729588236614053875171891253420280059998814378240896197334396058699082244796889384256305892685039742805819482156920653371208341663337769123929203170216108841848428223000438371127973387015924236013581588343279413460849478820247448535925317443939634186272186923858101667219747476019975670326566846964126873693985927743663633357586172424530085517292174451457880702600561329962999137900878969906116659565658504748375660391996227779389100369241585624593446007540040232488423181321211766686754673334443430583390380129264214316373180232704323885010968484891483053888390067104601927195699083624416247186899303982562509198861558771546340371046299263323970802735936805232027686875044358775936331119795784999086402880168631137004123297819230989028731605124761277096023030131093210185933645878732588314493398882645489617112422456283978832935861326517829847494402097238041439046183706909410801190688797707836519538657161580219312809084468366915187098775144831665971376743096782880861051540899798563476491953450055776586088401739624487967856396711193337091757280773110627813148294248524143434997990203078052962962773646066571168711476625223201176095675798454461945400609336538785596323282498618308475790496518839714738875400978048671510532395956911509916033381639594061209660860825237741989843358312811435485451911943601222609949904599003781581654953874058891660720616321740767552839961560061011292499582628936966806420019745745769278507539195340042485816292588532700713986311645423483256113501069203982737255459201579067030703600714295991320472868867595587682197851669767119197700756494914079079183768630333899818366327182130829595400436361248797745723096332220663712858243575351553143879650143740425666609608239251124139835296198197698695071194365400368236543277815443528190831850672444769761358330906214475314682217136508516449330208567442898112600188569295574112308095572612585773830254581968003103858889449690735280633237432897324870901936079411614291396037221547809070327416559313157624900021940982407538699628959462772400776341087945987756319371435409785757344648846475735247405189541141492421269349581002326982388542748550863060230574724776906522034420451021436033396448554746280577382076423914176644779497478664425565619062820211313291539084757920723739951210602454724683348076203908450868458211706918491842006121629338222410237804227847417358642619564729379705813576319890224780765258756549127510175979442070840930466981410607865307771559182020709821436405280612460539233036426691163217835196343650683401899984201515074904937506430108827362200704163904509267827942942188154450262047889332890581871940316722782406918364995149422866848353195994534866275424449251856995851924669915798291992913031675345323123362886704044077508330101690368290205626749601097523803124306433252821591567128010861482162165119921634790850985131722203663582338405757500606490105006561353873962704624378388860911623337898012010975448202268702076207110000970428419218049430309476016985608977872014534045177249660992115649476166865752572405519792650082544975141518417462360903369930339911756874659200525929832184423709294146387693111372066397886364486650524909167989864944530084051208341507480918193119825514397395027865745893258623475802220581759988376141258440491491117001542453351723651517398830260145635032733857296925420521052267276943159743055343762780683706129319407260845149053159460581763431886809944218749046302721538511696673654532087882882373729329787794100793228150005333690891911607210450365906662871838167523934182006293719864838605186546077335894322976121918954492295422883586113049052434625515284754930523213028104175263507129719359333843467745780761357682725677751851964839429958309749534374990035198830124658753556391911777551428407971865038068538527106055258950293942079445314054542437924981528210851818556493500794061616255844259940974886517166160117943017922279081482944383007675635161234501441678590374042185115863483668026945479327065211418583811211300721243169472395444277812183556143745641885086327467128862257321754484671684476315002638434411700427983054172800287927853161749585411935561588433340411097595485819403893535162583241501715414459858642037661506875159180672544781028842681037573493291258977669091768681780483380153773000539469967277521047184697766415433778007204852773729019389637521721037156146512663477760629952266056112698568331578303082402510829504538878263634863271598937625868317721155400663123624194094791623067731939925060205796155396662386061844124040899786446755291677357601568076124246175884076929608508724595315472489102844230167053790493214745196146947772471325282971026995371481152529799865337618152910761575630450998791562295152938642833232847356748508364804728486532283365097320113009483287439433547384978395064430981309340259196222166215616668724145207683980851691165111328168309254617862447079871787461332848265886970084155572749997302274996131222298826777030357518007735210345790603557189256435633559422890527485100265630728573909062482086508364625006152675223439244723801211452006527293698803196855384282936880608323421162171297735653844896393871902021126442527932081182860031306056627461008244432744841247505252476208486413328199733959866882710568124665066677628642368013751981904792208507216974831226134311131625943044559949009732662207427900385336188066851625003052456736232907969793630317860040134815168521022238932924424250881302911268434707184673018318820049655954474189168366048268019574835921329298462336704800554867188591473550744080884128660632662825236758240842806443834008706169795247241456522806845789655081587289258737865223184973518968500181376473478279788405227462607045303496611402699518764071668508720272181316739757272647673150606315373598416260301526087896765279571590567438031623335906141953050284938508966185458079762684247699517041661898115987792411722238932252808746254253282850170169769969794788292820690584583343289596466639896260582831667794635394499008487353873136446874649528835924109924475265511421899826939692146187130994157445548824074308757086689138861546080236301961710619686286886026736036871562493099866166078709827425115893608113704113944985651703500851272193518682848068213293247297836535372033067855785261373552441266935543202409838574722541115442914782267729320610986674469412274403701698701133280003181392353905466113569047357024842132492370627373201519247267852871364280935211162773102362310361283610863567104249381232409860193027836430303177364079826288074996913048893779987072158248064584268809704685764680359309175758837458485899659232228735956423818741872669513689793949947744879852375655669332266768064677111016687718796051687161789610014309480656758089690914931123461789465613166592623421984463765513435843689795311208690631490602765872254233993962293094250445426262961793568194403245737168129026702874892711539185303488945535495096822002263396697914242578127263147682227956226782858008279484689066379729079248651521598430330080490799101102816352556737769049493709219952428441529396852232573310661435632023290844511810617847485378715086315867960631215734886298840370191931937632794747225950114838487807560151579615654712677078003372824494602699209862129469492890255747555432313420539577242710260121576514879345350071779807052753372537797107163383985008544138860413816327825319803328528967376397203472939734838561143849969759435525834968077239274357726488242632534784376993519015612719099574180347315407735598936840423918218228269498954492709989882496259691777252872736435201131839471415575907958246929834312710613899878940468462118111777239540153574114518797280635641064196756661075733836175644309132570576969728693915586493534838761968760563490960862475409168248200500583465554266122630412696613354917687285150762402643232362180984204125863531986574343791100321035012659196958298999956976806969940689660863295886451223374624124481421868938434200950582414617071974352566330827890797905811734909646786369544626532363685735709211171032443826782612944094310669778867557012271622222624110574642733682072027933024888560329711040733821987745580397682616353901342391509133888315101388617764194377073604698539182488919468032921521118660324796300731124557967469305350668695129908355058130330368780242084968815357873597372912829739556996564070324096460234263659023109454555357439462758412224640874296136987081868391187641859651907735963854092346220690826296994457105263804124935137984999685175455134452725797832763986512325150285622103153043664585033356793404707163639226548189616308277806046314472989168010447230292328471972969243044398731410650855002195202404507554380869022595334908588198139767727259714987892642270224794275949047438194611694634521522641659248963579679210411207741389206188658321632149305580843469174886326272994078201358120724126265142653459009330054382104504067754724558886409751917178851573051941643074526585884546408156610236967844035933217320807163533759761969848946409467450224585673885658902740282884394415223182636478977671487981691179016324076632108038892735056514941948138573646936909298948926204368591396097767770361794185864858016806700816603961814626997181227435763550065294496825012764073860052872345029995953276287455846130980533861539879224174378737622600079899281557134402108122321014600773495125222140673393560105643173440209648362749764382354944740052773671712645555879496269005656714113447047665748317933740836132638974167285239231637438315706350940248217696900697957864868653305486909157595513179601287404751186752216300324353109020128681365472335876815176399494787487727836464702395318943284365944163597801787476234644438178464862438412224850315878544047713923960246534619737018513347399840043796009140388332872395646862053999221428504902639432232919601435684315015230461317332695172781224908511795997048376936824797833827844577126893760613651504961588540800924839071108195177489031138907477872194044380721586245860471528646707575970678521885451608644389089024090206318400623455495061943948204991481621593410244444806298420887342289503238965521576732401469504945302357702017714400293258847820379090716904570383007852789367015461652281104598884040407357403534281797578303622556546512859464889604306899860337716330600331639946693479940021903029657402598254142630915378726508977182070021867553951235205535144998648356669218019781214491369568274140078211169831182615824812191290966414700483818509750059017288985394948594609603345166733786104186752943204902659893400298679742404429235632429295900815807521609372895685197636060048065730746316996798705381884473624682610681400616684833410123328850615381799838665753493981502012874804205976836597965493573092440964453149530097540709517648529926209722998641450771051727839947146835672256956097163396119212950074131713159114082586383799346651017023951155905219075711216589135357018262846248814397409296680910706802272629482856090201451543561470667501293944656242766122985079763459153177199970479188827777808538211042705645404794763104470303984472427202638675231528027626873051476683777763950946672180687649849877171865330636310518605007023562396122260162550448524584190972898573694743351442006055863594887817907633807797183602489042248338027812156697854031675106792014872422031837197458660877418316906763144281520338001499652152090419200488489587259827589713044192520124594719485463890693561986689993394338323126243056756685030612557175880132590423846700078887383231252430872912662838423375843465346791169272043494680383657853439934568319792651280771024900745334733789987408552519181700793286463131043715421019842997452244504010695847060184816198132563043593416754685837135989071451488792693731380463389342739745772992895444199222111534632434277225866631393474858997406923131092594472729852206210965624961952853286049102890979659122326532907756070651080175020168318001159637576197615209259775084611732250560186152985294046079514924412078472408532766740249798070398596480826756355823295862156635742279879461750003336374109675023596377349157216160995518110717832550751758681897099000107315193603409231479866524052377531301066494624957680792008224486408474749637014957044335626243201134241074053032245960046228638370922565443975348252559204214306665701262162786903720208854979330422119276158558456046967874262225225467162566313614413610218322733051428494437579777319628862076186013290093606808030535534124006812053979675382492083937238343777388678277045964380835608068901388324935964733753555429523814618451551152219134972818770650305680438073855582738238914628502838378794937698522608227866722728632684897944667630399457411244012555620952033802554210171735258124527643554210489707765788802396660306850992660971158763536814447500422351461218535637792952153403888559897702350001667306276232572581922428644841414946625383701770529753751760824718140084322707347803053914607925146822918023941794573999125395147446190141780728347046776470456832788266808163339010770258535487026674024824607341941108873374412907063799007278006808193221680153328907266575673540020901749346025978216367020868279752820507260013830121232416888366789844428492495604492084094376762006820295756115568418093450430977181761980569518873550188598630355263352341863829019266976165408362818363237050373725792531497033488122839846926099941624742805395486581148920500987356951645272080602457540368217424606972140851943142275874254353203520229987265278351200361963849017170682284573833341080287578797458420428278471495673937334149023720666996410835144229701432377295018850357011319341726072995425727429612643770256131028246671842119837119586055060479670310321635231015294434726118945287979427324597987769896016582311904773296001303500966391740275264041256408922739717211125009829776629419183889231601485240165265901119905812602608061795271948153809902039445037173166368455801575600088893232910184489016432723799982936357861812722450318369898759280052700818651514796250042366337531287229751289097438734097462590395200181240178331675376660884090970150438686434547265204953198482621751764360322490171629262167049021084484017293855049399499706882796779914758199475845414751065219783031608105273012026099012355823109820385469509111852704100649473746246496002003366457531533063241651750845271471485439913263044224493157574817272726462227794812624256401252788772401991638505977226783980884725826854065445096789066822761003758351881012157140692071949940914071254677454462087458657993635438956142356736799215462945435363901557243876956205906443558210586556198350003426919053618480783604420850004065308675225014255923900215838681366873177335283736170777964704241817533345601781805238339262542858670941390585791458686912443062872048698545511492568968338451181759431722943416219776945774391583009813170473975782544950041736102217541175798446687364175956328693407315053476191340428260437243465797969691974009199485258902219760007862379904354090395946155031674367690942144652339020915592320020853009407286963536265596499382347467311320415745057475587691438316854473547487337216891689742053659194138803667121910364723746518383874479558770918754343448383133878634176309924027354361473430953781322870838875882946385248896905984407904773611317446281177236457742867887619805461233651454021431475521119169147818365937155308511425301162923825032291140522746083487374408998055139737454857242892403355388842335528365549361393437216639121279300565572498694678382472692943915311286619990010793462943431554048114761089634697995363752085897978368827588583909230135352869087564893324939579329680892958469515612886100570342480800724182001741051523363074634251525082359514161172590197429180654830373924468850010528103094844846272834186580897840382314439206452484547396838385513334765560459245868172234733462777902556243949618783841977832225042922847520377831961276683931671038872621093207196468393335795688930760843271348086669632060653987249034554449958685319630835737006750304303247344461831112073649599338736863421445171446724100527471735580020182276933196655492010639698078829495603389870105350383547675638968236651747405964238118892256649902772204059523340741728234397802624512606006356297054436006011250486989185811473596931685330627164807791856023317566666562516227859179512600301909427471545851937864214507298192467045143893873898265159454928065794273186829967968501664863803316885553506411577493915009282206205063074670151696827726089593902549915519851031745066319851697553338087273427831705588210562629426904706226809301770626628224125518789661125407429405228752118268689244484297432665598519758120956019599618760114055610101967710557481225740675020995943811638879079154691946638862350257135373498924903255504451180263376533971063644645211732051015670898595927976585635601376671495768941381460779263124573996655405458651922495853307494503777052662042813784574745751825896236122959835179121551859797684205618449889254491624795324089870674920251876363828427507202295893972889856875091569600243978667863620829719874386052011317359967524925633779790965232655387956691320332032458886902103489183849962972275826784991891934439111477056395824112913907647606199417438322420652234797549182032574319529656503840109539442241888975298843859434887376332500083867661807374398166618346932270576270908722247366169050539399222862066930690172704098903078205887562194075342429790915775885937701249125461019532929933790792818235649424505066130676324627800796916824892977621584244585015185824097838027017216353715780206827991135930154466242785878756003850408073023260105955976903756607822686044814340540276799878120918659041260158328975037376575035554093673061529528580672649443087964572511897417948091455891440553714471891384309531487837050534887722602744782891304790329048698551012580941804989475205236158088610364440112612217828963187883053461150203990798081883107725227534173332976266771302910437627767520477378231188126081139150309142690425668630610424428886139037363728585996513519701825942306563307298153910344197118458431336660734898186740637283254848025697944051150491722908454748853367927007554737268849765480427157672931634345597633806048072284053882838276245263820172784667093860092691053450376809733958781175723772112754235475525443292721608819374673965092912674112183746571142862679085627626263614470180799837863954653227730577112683909302025359601412742328142063926830927672999351827404778879876907241742714428080631281706736089049206293650550056711107576954191901985627021064504627785056282560745976474526066221072506722548279912889354498716709918122701790808556165225025060339221095511525179268480674635595706385217932496786370010275703708680685262046441156705287888778688349627831335886710519705250250404906344886413910198149008781165060665968114234411915084425426483705364945223573501674172389279503613202975224995030468429961421746738394645744949333544715742211340267915327383723127113031623745816840662604695327591088301993061428801176736328720245118295792684247577186712894250717042907222703909134768421515289186050005914587033731325497375268523344371851537465475879137184454583793150704942104450481307754735218023041904153380338172742662605835393412740517346185248224201227651776846284362801218401256692529030307931437520420531191961707467897432994120985968544663445244733330817025508929906294172492327112948529386387631755062587447724336907910178957180077328580855049228552399203205346535590300213086533717817135226261148574466110291716484628281859374399248665670354356610281997923632905781261444509181550809338772403854307284907707578063445656595904298911743089891341358257862933705214025707437651063207670227051661021724261776011400894432687591665998586745110321832593215268628511172209492595536270027791726435715912944934544519372239889205000818102552075782268048079016103818675552732118413718901005725269638520476126080005743812898013491740216114019875676326458279099487648147785823731066637072046285062217672954250406923869410124020873839144034896682545156609707388900623550340564927611377856647473810313497089784881217897866241084358387249582589276007184331509193705844964365570038713771812596526055990136859233799079160606930796603240345669531732031515700816092144803676380003808090974815950210643640309038355581076589342519231523311440169187785940202050716870649388201350647356315225177453478704343084341471646847748643378825634676044834519788589676245593703554205721530441622392337077073798524418643979072016545363583812180545237407596778986482420563820128518740734224138447766508822456471537549489275989015548373619389227929805390037099528053331494611692582880412209006563755848662594614101862352377833811136820730048433197478591864314664925270063728721633245612193024698266352628196467641699292797803862295574889204415359331586697447885035920945529381265958471187560930776872515383207992280483921128905586384414505790927935327252208044525024055337402730106768557820234406291149694645977970586779110349982013270015620096848557555706754761063249159281805199024548248706946307130547574069665837328974130528916964394375436332756469116021036361498316862676526889285476914146560414033244860385728803455853752104471580402048638547476700563171336496762228047463766040215991073285388364790365531064720025729260813567510020514760541664805375217410389159240787932428669641154386903307953612730007405035586360257963347975302812700609393980138227582303312802576226355131881435980836979127136247965649496714222523817658004986512631794071621238584771642720122670588976775514936126038895498517886888325836740573237532553419194846991102550486204988996136999476729077619648508449210062835355678443551969386659450505393673870704839943848480111761289707530090588300835177483374439566257629252791031704095915471143137707985676550873146603851978304105944757279505060686804409498420067509345168797117917184583574959292318687890886168773220452978685354179944925634641501712643210680376378548619394781864806812216125186436434691864416313481948588826365316042928510534174544594983719882850034250584654701246035528317930612607875615647000160645371852634119716057260908308763255504397877862719234348213964027709478296616567160376636236232610753266083627165571106257186678842941582211756971365972738342707041316805669147113890117614240845184719177119129760058654852869294143180352481086493554651517490915039778016604327994688571155544895679643170160218218816709726400990883623127561309180660737481608951572534477335357076746139088655531085114723447789994115477924781278574317889320525571998774754664773030640903348826024399010418646843026873841261492743337351956802515732994277935286727983026674087043979376906125205420413082629237247739416283318142675778274568966500679375929526148048281044603555776618183332623745733091823277740962980518756838087205423357332375504839548580018920260214759279350898341912045247596623059020865114603351893365036525831856899341813940967376044416566624226294317381126320178611629392722946308699782411196690309481650268318785926712837549216703840629612139129528896260380765411093294550553511750431619727041662987926366036233045797475007509711234178853749682270808880754068664234787576066792814769979973956049178837154737244043552296823517473174702749913455520139410024475811680572419577793349981152659388658258160458809399569635448693351935888436574859283492646494734388516677838958843208553483567528416065000009567224001640723188609982976528016218067629094760883885832993146050681935194394283316024270166473061115974183768247364832353688184580807456308708927771094562289388251269323875536740458476179270938060359729480847032337955865141100666746296133742603615873156483829142483151165796413852650039496559482946522092820950531423956334908384659282254455327587442638212424414890095623318576694172518761240315925121967304463171850273269089812099770898600584524684521120636803360399153790725873440772802008117246561379964637561334306375213743646296940085289396544697625980723574769672777390290497936952739858513756537136356136300250632734207504864541907959912347031827018113792506959611508367835961327399632010869947502899044659330908629115148670088254242494891432391931465889742683265842118221168692246216666958697625000452695958299040994944709246484670707352292427410085540127427041592168235445368375854300812741388135984111229367851588113622988715637610651155776729637243648711073018316461195555561494873503559002430084244539172819442926631960335788313309474980817652889180503306405194305329848205717881395069680896039181980982585433426322376853874412144738605390412753023068943848269731001515130022826866682245238621012224561322741494392145539885825615126262444413002278858472018576637619793703415025532664542726886785283467776097922721186808732759764677248645948468568952923469319137412716671566621509669892504196891645585808143427665211921424736931953508506503155330386215396494617380673440248021533757655902872809485533049472307627412979468033241359014986056649005537620236124647257264936511150742128803696614327373270560289030753385492256686839850451824243950005188060912202609651032369524098132359015732335910527773506803415288405063106911252187935814431286276830256305437349322720879344845256188659465822628419008373362066976191207924081008237702505330717018623672097086371103396958624794361790000152296062257994898864634157494157785943986881903393503889507499450950624892101798572773370668322435139911284120322207536724863088051664889822690798163771987592832674849845699034210465691302197020392727387808444122705556397130794263649240949020501338196594937570576279545980265380374650837507021351312540975973079290611430423091528234974505531068289975534634426961372355447487925711710677440947430334122723499400509271034246526389646895271072618704732262806183551523341454739173416018630348187549591072115286495995349527727360954471777937317685413142826710763205929185632107875812280387968956432418121655870949039794080379084836827451701519522612405256699203464240511018260644625874494217675239057995096840735188962719123213439374281187143137343294927208216598800520570841306075101412853242706116039724801129567709217157256488984745397942096207990823446126559977414231776736739092652949668335410893336098880188653917695509341789210990554404659860559957707480982052794978622425771868241010329526337534023582738452150401737489093202578991225481941396583448546227921405067270370716983018939603980056373406842047190363052190386345779010379678094725198443717351486256061968471987461216595680510092552055432803429366437689501464669902860211734656015917767214147420102079515176640619481299305179595989061898656948182512591305408890073862369584847607219987854401512792539105886794436263898833795035464656902845662709322450878670567227135484289402038965149089637890922222199401848529555487556835610572490922822877323265336646118749342049034608894942063410473547441505184671326319068792208458586880103193058394503785045474169442031717308419498428915835877006606942939351514221681425760438857699787679704083684984317477167688688449888517099454634038310720604932918079941236746565691376219966373769822249411907195763050108590645066776221433424081886590621958754855780116779232174460938228385977749509140431171757002266198627995751155289850262503001163715645703886863096497734185649118001314718645425062395407652604816832480513088713125495438363259650035783987393621648196451662778765011416844705272533259034616753900691688568404499350123089882416101617945770572029003178950162284542531097424123135405408150399568078607346926713045911863468204458399204519102582404239073013394215192857713414230404052164636280377097296511839276865625723045639210872846475004908367041321384783008372234927398883253565358843230420031877076341431147894729583201050005401907818328718205222603433385823329313764632202596733913941808553539693090054091775321706967878571944626266144766732878475409969838668133346716012040786206392893677061265957069512632413564982540247027719380666336966540740665527473854185944008046375987031789604285413950643722765092214656737647800486409905857112892628583720380381835804284235050559455538420594612103628036067552496684304821233275962746752890645071964164877153657317331247626763832005462216617469661357929637715155642750781906465907481446246759575889509339787822257846877343791879263030002883026044794518942181217188949773918219040412524975629093628248405821099069279965699229585908427034783934121093262901907846006901713587613980004701068306145774827319899021621809097960445157991687061363107984178847689976747051702527543293345772694658545492377914228745850423339733837979824800781288543646943707124734465052870797848304934599993352067942683389798420901059050334414658496728247322573023759487710109398247399399021997779362839593455559086369760456428120463222904910702930262699059775369000630907081540436025168626812848918362360358518768436508222963068666299369289561338528175597840271162725188804545878414724329187666167212987445808858996008512255554936506044237755183398075235445289396294280664158065865966820299922918608743736348808000996839214207154840132897146630986951452037026870313517367569083892955185482007506680749903850698747905348764534798088923003313891319520137631607616116279218682209976861124938660725493456933833950251902128479735873614912196040030601527764575217236845585233531560501058010285128591817041094358974472249834024011670019250631093080956456472153039060115007467219570885089557290110603701059087531409709821785566152833366906579865753121115143539397932750830561535599147448624170737902338293878494159719209036164110788222853150226272667703329411283360335020588923094097932721276890424584538663370368919728652827240619952588298335751876981817540105528207930527811780574768191699619000081739244756475319142188508972667210314461884001784548317398670436427020388477626644460766873166401362297297990328351164481622683681582967591061106779933155001513236941047759271047053106431727616590705726720531334375332515018620681122932260859522916328615511239565037823023198820903999899087361506531878965223174317249635753058956763297254176773401549271054905841340866810870586059014305411980279304186114349047928243030081314604469127036362288900068289782989349658005823794590561427479044009353426075350740513340313431413041237860262275533418796321101295224844612074082961299144149891468135629788727092582757845268965872912150449052672526649111749071553391533127740133758297143201843737251745195053624369245618959520762456143021909801805858982031197691359750518081919309449652680649589099795108323716156135588025874681266277621032338158959780433447208569846081851634343904980426458671164701075208806929054127926557590201168922931333534841629726557345869059307257576172166678185788103210639465557929851020680460473358866789928345011683432743831089045178424143481988846416193188144453009540221284909049973997593159401231243291205627244549585933099713497300005162636672543803324538552800096307864118403351709199515918948999802029837026657680779994248078198222789114020984037643624692644933735694488738447174261199068595203957775277883392915186285122755629182312805861429186310590697066867254213362560428072579188916977512763556031132562469385783222971457896626160918646066544696008226037471521669651494356827690162206963006797246131474868133767930460870854320060676585805936749005892192616481619974238494207841263877132194107938732977092154694196984387214302912398785849385047472915489620743617612270633805912173715658009815489866063321450444435996259049206963930215493848607153433219531613432271553440722784890801577435967063862588216066420653445973704524573129588849020701022929151359416776363634234473298087876794350561814359890323743900436492359408067391375376494096310237635341741668348497021724355967100634186160543235359734127602170347622853089569536348280341801568922902107163675685813705416135065679536806672449225406295060641523150079010145359902542545616180067342282265834774939115807941223493625302060129851138616827392964659374432066125475218635367573648513017895973810789917042903499040291014570756216810080623148307846938049164789730397291208850622121019081976033546295459164106352877786743882001437983080145547135595501224925509004866214553881598622972659926681237182281627525713372029649754275259692666481556042302679957081431209340457656065663345055907606273986199195366832686666705215715478787975029224474756395702744718850889387170364889823519957633367333987987727232369425802713220824534756902590994974384727946973050946497121794849640231517576753787030708367644923169711232123830140804706596694185534240249815722881987876994889119875319834534546890752864291679446157656637539870751224771249291676462628291235330612571075773268236178340399853242902320664787194278493254257722649707609330324069679854389868533313938219071352124970461508792097453023478218010143402726160763769270664029568410696724726815504118877424318691761646069476746715107657823917741669031948005357530839827028816529707948278878963139170046803467192096313584111659948701394598998004541903464098733155318090035704048097391253291337308106145088356337101264625425769115350002355375633475862634939603887434975800517850307257766233919062791560331964360367758022941867400824558178088913404713099719626754764994410037180868630344095506154135670891653896512281460355171393897764698196143302035128751533447094591902952733208109947265566507205077799495528899696108391015133056724484094096941367298507755220072043902969789925824943219223132693180804755638469165923057954599879692857236850633342817966791938080501334089039670332370278531790072576615149670256957698509500737938733683725725603200292801579594377539702914965660879290976109184601459994976225931815950640312708940496462452948180577237760659147599357728827227928853566210149958625087708886524613112796800599891973597121341764172522295188776936574630854718350981211127018670502513458155825119691469792871560516252912669425606849543978696999661552883314306375737337607446772027675792018089261898096484107638373919693706159451383629853721862481294010239554480973327575310669784087785196799801009767369097365825851625517394247533744089910465830622397097644049352691684486592814309081791840628952802249308267219061181792877580651927462007503545554346446278015185665528226555906664739816213494461267639925893276438459835444345189070748856388754462774299694669218720639854682448127565845322089850607740333737259407599099482403415374184541240066960009264300390099565096803239228218650165824471387362116108776664250753423117842793403423411281717277797793149458655217854560849091800910249570250195979797758839333545050972515499978941316324495756203620825834658545290146810449441614217813730071434760200240578295394160222059689059262916660010883031991487271869887968163240356030096267228167792034982889212019502837910594139981661529601041466921359429389580425687502116571053265372622727280750139240920041134349835565040136619693515743682623851298826656405902520710338013538689173556664403143287619747646195209583424065557728484814094704491168262920872204690489627648385967432591942298884761120418251447857371740779269542939121819297980461886442628811551337075945351432160806812352475012648144229548363653116780566223568012823398471875542849140629547957518815593224102281695318623381914339573498818989692254016549712784979032408132979884800320572505519780193089290632917622718026872572689868131571595710152273054537091921674912429632921191525471709959330413323109381767403776412330907887967411301896793898832675201659208291233751609499557350209279668752230756350252342305063875823564254113391827260182207676016788232429584712237624238210957029986429184288565317763406738283694369752891655195565239079145213530328180882608987978214462132840867708234892256625746269834992907787503425663855801156241314753028337115183585101385263937840856187358268280048728176314743004074562480295075401663754952500628980607945094310153781784954840860240583845772419953757211425735703816449605354381194649729868961987641654879353762496082237922386782569224400150372121138440880024749066010092545955541026874129502934497205940207549643169610322869180014724553196662634476150588264635859324762899326453629307166821207310737262371842399575203643172370196791387183983765316574195674398447224875821506939472881171438050288145545875462617895354884731835447972557555118573302698748592830553049925062134068347219170144585850963327279747961767822560377610504160316266761810023362258257835924845778239242561866080146951840386135329798751276509725333878245951680872461701853625049533341539206602108985863757171040040700696720286137531891091050303076494425826737305131290098281985893886331844306649894656317652035201129917831626033106885363581329868304488851997857401038395773932560561639621425288081975365953025751532201470008990706782751069057232946376979851383502865586664960779194621650385033285115987219496299296020444195129267185359595431067859750542489600541194778791225025376184234649102566916354387510344649600280373328261379123702618934828673663897608774293020007954745858520697716792959756906731328363995733846876150663769296831890276825000761036419103667103588696359334102774581618174102336024055921169996862448818429145471468095857044755608118419710983299377356384048795524306636084085538563991904156875123099576979888908321709533164689295722947067352553623952257075774557165597438806780537463482796519282113235900815990218395495555295033895120659793653732143218459863618543126483459399963253002989124396721324074029236402447768472847371810623483102673178489736583456216495480061766285708142856403937058826819866752633619261514781576728388403198007267911388772793130489834723263732002986856226077338203938012992026849912008717268126802741476954351986778350527743120271808405657201585431771891777534374685824146667738799960617187775665601521518937795616920275540946869781284997959052386710615854229365037052483087514817210900115837655232505459050311578538168379901081378052060685225946252171204135944458885364545424326517055285412831184044996035911910236604923887494414777160093513918087485234543159344844284487333350102781930061640685071183126633397078494247052629769145584573829897839479754025664506884452919290179483077790787643535113661538806005088144978385836504467299471726608768758742871989395649927605970635102841710949525081611094962094253342360308004472229760915952480788649188641670054517730566419017335220481280437058398496141909003556814854900647952372832550912022168807574404775865271297968246386833843421937644309153796820724518955005799851069165760884205731107368382141146054065050785730538505428693839251035433730581189765684278428327239780270506118640976372563673591892354749496236850250770845017856354435674664140835398346385442134592684075866002059642063799147117917837473736025725962739739721110755628553041459294572640957239863126354080811279211636245603715594126495408814476337820435429379359232246886238711092616338017923590856630988561950875207579130225802307937728921429089473763768830870894076779444462961403146229212086270894010850392884179007355730947331386554228378427250818982735101734247668348535755806031225956602072253752277432845049486619710973306160612785530115270185092513366427432856132160195254224398994454208635310924174988279030600944785390528539260986311376982329864227212404415101622313392101653962433135753418002842220967507849913252488286250214118063653110368377007929160852579253437470837237251801564171268519316720422685649521978310883006940197527424455241789816212403542398019829803850230045818198113971762490123585068958090352692634076659507522634758247512459109921935298051977178602709744548573852377543710256632053368910669520100145855925279599954838843274682096948469394713474773312689056210213813152189218912207491595780002436211040326680847116201427505512549535088430442722134209631937168402733578125180828403387616168710962111073504195685831395410779055602690435677219276646764555072616745627675487266981231854961910890978470297644197055836309141613870266970868749680046714411273315513548163922387847744376706392905977880000125903079212974051034353361759463038901383525226755234600073387708782142770768791086897259332953060352058905097935279622526676852924827322800240855563846531628736715298941484056105023079332609989145046473568440931271072737213279998265651174516616271996372868176568291404643658663616458733092427621121697962367949186066671069867447255324646001329480566723470827237550669479628978511357909021339772964516586261598184068856697956443252335507342290054972124749582578193997059053216166378292611105412800266287195731555528764312318361839445625566985208348076517369054052717498652069575488720863763303972086158126778354263924856769756575168736637879265073544395341436781733693799698352601828650598320589489839133272524123650687233589156801431807243256728857242705068357982231947044466836741264917351998029116849143202216944279673235357646760756966370796985122249321565403610022631574329240881348434347451475269064313412393544753573293152883216344148395992675736382419275649968414321661497045056986877755797829207854165808328280839650007044669817249341492532878053719822882718121005318532863075704818639501589814019675618121656222903936169239576572303823958981422525060970504350969769261468102141358161475662269332831119261966667802077875237488761736613100567259736841003274279096467678597263244582686477277020657984394501408818026428598466326423420652635434139360949676184760513561489358393252539062304381594287943826376466522025620218583256164459002573001337908472012632609646344508310200278400096537849949897067301215845137834077267815970886044108903334156760924616504610771214488874801928041719653281701894617626829608955639346091763252400780540413405892246357535477850043899015937691609089521610817672289425234583100909001123487466052841758822564255539600947776614572999843105128566563217049553528496059490936281226564145566517572398528762023555050202753785062884860570120445268635520199093006314025189084661123827030750920022043861784724052665572819011667505274858558630674577153295117917835949623504265562156014358291795019125394647955918151413341637272140210731404652646879778138514352227098276799171549081233665258923280796092483922062715954963468063364888130313994987421233447108143033475551792765525980204473284986693734743961073329983424256949874786618624545272838949818421558403705655797262720533644160445807956847877153931279727287705695256352105830112094805531408381046300352132129729061941877794622246227689746561064388957577325478583446008595142679747042970951645738062987426358846376553078360038833800425584521263372685273172164647217451597675757989958269461268627762837085588677194629484870069853802191642950936634376002026170043695011335134911698571874747862106435272599662696378281525954963732424515047657235000727264968238370053841715765618903361804023219692073369570906017427996132922695099787390277820150154286270115513709136201330360292358995279100835154393948425923308932388185079610016040517880543576189156946833208654908504309400383825008873109487035723243119470523380442456676136905226661898595415790856852141939843703930337222712026760131952284562005350420712996617183303437415624951220688678511717623694498190089292200939610041498200756233525997108870322671016812885048746600955177215468021611638433176298639366562932450668698087743334338549543334286209815980024848574765414151078036803901856979201666160707248022594985856704520528049421282618894834136428156811739288774614878887241024709833984419638871304863756680361790634809178569341558468869067697393117275534382068883194753488305336604860422654102270181965889320532408364190822751894822629227576708146663224749498756206167343271740944803757433286455894325768370807090156373139188030875106393183468377814849720678611691324551351569710889759262268236928297922554904850614395274679881941825564861254613317840126097368890903200493846092029594826853346578844149040605635346260447679049663622175836725790370432955189583283918308305864706179282582536968823920003803449853215550266997349584315385646189757058187047472861409341179635390121581919340373835449162740193710626318877791432636080796353157065621137183501851569372876363788085325660296802017938121170132480538150857600052549644343445180820463617456961681478044389377082442652893800768668852819286781771213701527614902632838581234075921266837823793931734286672417814444216920665096525962676486616360764104808804698915342148167327748255176797481121694163199867538574574981590411551652208235483658058101824232150277502071137677685526868227995061166088606097696713691220942812260905049447824522256569880357269556904329123994739229251420707671744955889942926597067746024963794849157745886204714518503666771641771392457930126207185018553261896599734365324346181710505392579097650081107506892758656896586918341869190435654411610687854730616895320800071036850777255065971578723577587813723486108491635585556060808916547094574242094101284116214958951875570910762455138452699580427593502344896290500230190244675024172358389246211141993535813851427864495673007366220797515133232371203192764111738481533922880867797458035521698041902981658797198302496937533880333943655984905613723625760702458115076068469494709825096065492573376142872159385421649322218252947889798620619169438252102175450499459219732554025856355965197554441144164978236909845480581858070491647728970575777170452757951664110257887113346185409616981787632633683176946212696384472507116641826695784751741093298986506612741600630600139160308050725237598616720824492948733197968538412562811876951326146634222407855720621868088169968353060170643795746240065669700726265203170162004142157306801786733958366679412504475758336768990403319460810376466082960666909384311670403654198709476372312280461470182538589840575065756232473816138689630030931097672494579018667867532892229060882092762419469161236634986028501178089913341125860148028635265120630616171157417786894186611551040777331530050814646652840371884115204505926277844512576019071604513743605950782716395690471415381220866071420326202060294447642709736129376584446119475817576945184385556109512978058781366402014767926521867110957459870321770953660100892314040267396707272287052025882601442840848624072742779640469845797263453870327854058620086334392999684727064787221792109865601108011814304517364681345294270407500321433328378027517187514633674510175911865007641542843560521599267665654244708231431692160116959397435069607262102923905335016609412736780505824663404276050597785031747482134405382257554471935625591583596735217815674523576719458705642951129453279498650647919054778253453346665210575285272815107000683506256998300605519767364748164823414671152075285389356945547661659415315014698495553048572942688624851889706399638626596647598517213408582315171202476556132037879291912563606835211564279321268524960715069243073622571477650280435060714195631847987305091180693128719009959779049987278425108545039615168973437246333735368506527910718498240638961140938564188314369321745610515807238880132510328322097707880493600447201733979131410831054437139816404119512194203790928436815098460680346472875364001762469629355842157772384138515828709083338150356444181727187265991543064304277830180560620545077206417868664346232928968917547992347279717815208079917888603287690944811332250168970248681466162822798490420854173957073563407362632402544682423886888178357087111459472107690799452564915715005516497601417821812591883032823520922697491358818913691620676708744886924683993573267785345831646447856558177999490057928293614531765511633847601104601673405586834755260514089657163532018593498535936300770587796085568453492521381549909394638188041762687033646017178211430060266489987840158017988514965748333781713971618971047660898386619699224730899345155014410780229427220578751919753653882282933090853283656055341730771936096754064985716486890231062705737471920225229586923958644520737651527903422912092615825229089577468502264029801814237962996655098693762503842674904307419899321325563299577129245786969219065784204064024612073201547485341301925396723020792316518926298360516025196497141195249657524773652483042204211759040669764038757752743739023548044418097213070761945441257269400471808616560418754151467983848524833347093353363728905634007812219548493532328107939506836380601938615669391551848002442770752528092136097727645655679209964530903002147868009612596451124193532175978667918722030433112534684952630262543998271511110447348949683082243359400997536801930527306288118290532012772746105502637306892747863307307529491138689931307675886752636720660034470534840645762004538718429915785111496865263528244015175469921485180556111037834542964844246605881775112721740800695981844968708757392157396099912199729782946666737084176419783966529526061791641072068333345227544998467462155825688317717780696639134554379082861698402560861986832209519896941659489969429530802841092118133611810665605182777779640348272705083973889845948273423004813845923617157649307253259484299572431819805996273611049679027307036571612849517099394914555586183608099834222205180849190218084217964087710127734557497390133993387650111710383996707452565003056607889802998467042305815879506943824206713938245362029685918287338917802887995763831164324669426625064280985340784106605583811591895946295876170963999983871125622043376402382560786338666928297248214136890005778504923300325196868775200359295540744884193242117549353157443634560261474561752182565805548261869986533105166586184963954917304202403193987674854919506835018376926846853455770492383455549664789115933860742845602008122765741944734921686484789705497850870835346149018501227182394067360784388807534605489028584550627503196300595942293824938782097806099975574297666176526494162923286979704779753007575330319753683650281360267899776487788488264329206179967542021711670260875944629737249633090604992817520033339089378626485173339696519965443833901298206713629688121853794255470208527379375179848362309222928699808565171736714901587324817563083941954568267041957507478662765813961341702443909833720616444976836998945809885931063273811963326182149360193717595909164627644400009542059190100422583629580761943862774459090526052266958677376976282697080618875809197673124569813534875622629748572993780637069425119407085444788237372651360610408528679597871896176258846845586133387899860388925141846668378905332221838837993582683343955652235726302608370263121583832482104890125484799840989317533924493306562045629409942732748251416457712814182522576090537885090882707722831527275472882331382586285103001912799398317409869162221220939640887254869258715149981166735803065269307858520583649590733862240661484511708289456807296391647105655750311934982343385688421105984824717929280401792511821897122250199784890682611733390559163239167409164885548149199370255249092816727907548034681610840440216245811747931624802957294954374843592376312664441440674601527172098773092752973993449643324624262996720553361838469444257972416320850806544164121526048547058999523261005041156199514353510281486343307212872821450641583232338923794638905192251918442721479213434650446911330634353667106031998003658297261465161075669106257296026039888918818807025265778967468228743628413886630622102989936297486636001031232298004271823768672509781020664528158772509953558750498690850868192354003537208723137927761939431094586940318635813191353325179169354982022696616490142865048919862243720392176103676309228271130341326246889503405987113675944119378067130641175297897550137762505842790214453581018218222468573333739808415487289076265864664643562783600242240180707198664241713063395430726936461820865893783027731681591501310159572579399846840453717283551526040708825748845922291499266231374090817846564704306612491502219102771075443513225431573766074276846875075767002920289425361029032047606674450749370691984618060198959644198728493972603239922135472856261181139576699106240787350931419087422178886509188461852744325555784149284873502245595364128809909486805728067370652174096735797500889728872187087918586675448502474316271050550959122718241800159188659127369211724323041540156902854225164560488047644841701379823656358223761281091015268776164939409064461700480655243602751673619579369705052416095426489265079953465999895295879161367187142519257203440623491909285716604422679118985295758166686265771640229303955524915559163180917947208266710373831312564271864252222420797305864048426353385064007882980343288139748806986455990203251959467770701680014561752590183395984710624102492292964491605438584175928607374574121201777497311172551717415944808264141713486943669131545161296572009883423198974091623033726097322125306714986823226046358847804264353923761530357910599375699625860546037280900278274211963841953385160989021634212038835795512355893338050887192198226346232830644751680112034719645678020029082826483299990574185808691482471376758142805238156449156322437796271199415418970424513016130546130842878774706871607677201842145440583760227891903120569483190079368291749431616973323735337013147967964735319147198975942265616281232227734925503073194263417522783390813072232200276476989317088270916409272920772084629211526666790120900511473873983164869280938768683547665268812836446601379613299993557729646674289537459466240234701225349701880385551810164606953428606026310848841640217949633500584474288139816402311197358491420017465804247651084154546223068319319402427966236212258493421037480769052326017945471856150620825788384248508442142273993806097957991660854617089647334386899825108919309491353059615896338918316904843378295664273095172505663179412753902260670688606005182523992557760492057318655801349467406170342328213072017080166740121790027564023907308727671716594515449595566780363650724545707991861871336136478209063906272892881728359586926750151854213218508888482293905755599654352655356025222171014438245678349347603114975762171803590196323598007965525659081598569068632583395812696407062993010875523560554914373544760997610641611129097604501458448754247349409060230750974072050943842853049368916202718810208208319764157150485377354355410266837657086569374113071661811866635990273103045042509950096833939507545050588361783551982718571648028773022633828466275477894940733815416006097805410955831650163536686344654105557328101453392083556508566444725326687707550729711858090543315501645230034438121611259742216060967385036619895212825226771543386321274354894293767670387461750955085625596021396922780446554882903284526913022031984076221390223717821982620835386608909763210894366499828025841163804919854951457782450277503772169855903959804889779283723120277355159340690120385082736592629499712056095400729272057784106135874803310741669176795434459631191668294179064485280451452400119152644953997286650603557518642748117745211449344411989716536860331153500817719619066086482374357530132051812262181445841134834735322232597315425190226728955137101618155767076548206815920571034281012365692555791035547366138979106132908008798382477403394376676605032937566074867184997295885745766856667054801906092209562658566611311585738698039790075853659252428460305819720516503561079351739626750308930935466156856477647200781431894280945064173874117790026039448209517335951287772569406750981461134371210948361439634784968570839649934668439655737118630064353528735386224180459648406147956298540842570441738464727464694045358393834603517501348316964158629177912954215842164080526647366255111067457445834480800737226969828942170153539626313362242032791610829794843117211110487995792988474357004893812460148326008833524990097885752398613830734652653019735490996728520093445447482126727578540793983987002907300021571955888613493825698726084231205502562873515225149574261745195198510690762358715316559623557220737580383886287762966918405038786045508027571013904698411857391462996999030439333403958512888742271031140237549300547895012799303373987481195706206270224944542440835584149453646301158369855428705062950915723050108181803703216569097228958895834674625542931464576397374504358270911230791012617749578317839044207307904625658708947788413726711176325309332913113231596322542545749651029998329753302475216276758488278419523069953488423174839798081362728931057465401224252362780754358142254467022738943296420438859809625814367989368852802191314500714833460532363489599387253280561722024964709823198794488380405780171763976416734382861785682584015873733268498297412848943625495253849608820785557559553537829991810197471120351021415571118182627309592654196462523763299618483399440440016799845746168422313860101902924988787993894318483674521786330133231508927734330550658315664459810454017990024293229188349163035448362429250991220665056082087897658852708487458733589559737650408520921564426618484275437004837545962494711697428632145147537076709531327920912464875589952944812157069670814690821305985957053652207338551650808037469776549913836923589086855027375021152646098209064733042753649597534954701609184479922249438081261850265231009487623747577354212090865901834997668369835803045135945522140846970348836064665210168218216733214601922407599393864526907627405623678852662403448507906675739692225109449669729618921413735018620334548190602636346716323858688946002998093978037484903702742608092857260639197981568585289524509462989857239836325516038893828622335655450363969648330929133056806357647742848318543024553025265432209104411009671944602447186170332690333449469898866035502240352339763637600231450315031242016059096290202171890629164875509642080915419303008467124966235230838278929370714995379592019962951478365092443614760117927442682862805415179982571037110566167933573695836194511596117570799748359921778029164458690961566072563994141372522686256321740832443098381121969330692202336038115624670278185424288617052411697433974811123228596224984931731680902258916683448163927882969366727609023677596649092349248736865797387247787494771116044507463727627708663379687589454785819449187695000245710563023926350706010957834635328329285425104498865613073269897016695850078133764441467279204795282476604252146516038841713503087799652688753613243677864641983490272480021228510428176769529155172719665865032789446901759424489816877542412928822520722078682641912132591092689188833857872901443171209270298730873099837567560016609910443569046501495146017205297707752582915105512143619131248160702409789402658282713760105858601569058091205726410848272305214934617218529751988390497909349446147468017690935164248112894531763478731648644780092936399847535252525218401834547523052826638405228639013909176476779654138944780781792489606450215731576214506233527074657845183560403311210582100083834689392183638945941693144106612787681999625616698844397862823866588158428099435382838581356699877493674215720470919166175222913615011765702423281672771843221086889543037759289161226995957667414111352851980275549896412582917648191804094897517758702563244671713118399577579079556675692309800910672507254878097544240212800594499218665652274390179552622189269783735504704963936532409614718259858987267624497103156954040293481118761046627914475589245697673621315071439504159036582625174055176967433762030870722739272519549718807519035401880332081379284139864414047999563483575867138603876163530792947482581118584713224459831094801865711355291180134836865501938003106856164975219539082541492236328265131376259355273482381817304228503544074516033216867492162924118794891200528635592762821324940194902651722506516842505301168899351368868984312509389528340103800735884250377652174242452883349636945652155804450239367049635984801587050730138853956664397129654337289914335144980210800860345412447028810531082611110768050673184848385571670914372225388819813251027442103161609316137707821843794688722939069499260046511078178189939766965870563157966289229782300557153596167357880236814434334639281458103580939042233285190352300771005520709146575947181975032133168419437724742384614035133449661195822493906320283370277749781069596630250744018242500694392164099523607550862407759700180490279567939626570593775107848725450968499471956621871499427057588047136504994750197544545073637164844319486700776669314195982592573820119183303984502057859870889450453159424186676706565069658220081735475899495951017718745545913570259841254035535730641334330798291771019292753810348097296935422407507715601503141158769405034522349364713310155922252366269985038879809443050227034405121542855691781985012950018250333060846197535468531504687031121735017314261041776396307190423632797088596701323269530581005191952060046085740685823606215092293009164717663222829475379778978749377440978670603839350978083600943579543372461935350467303563578736135166925896526494069034418884178295971265370800201226976890381302244157723451815239429568817887365080285786595427700791961204010661915794703908836242963424692251095371935759268081800521604970099169132998328838620776942939019330159052477933172474234561221420214723046917588486632511887988817964623026802383577681062951652572337186806266793576792627294530946056072617925851999071275473422405258305967800924345637589286168271095253746275467197666646764839503516795739369254861577953165906763209028498504438371404696252530981811549457367934401880272882154931297950593761676502331721868465173353390214172866414096356895661092714288759924192517468367612072130797960415218557216729962035252400266380861417600986430547390410766032232074109049758631946918545648756836986115368121473349303140008720242132230613608934715788960915510566806775439476344640349228906789855546716660384184379063047638076469535429158673240476304307562428762672911257296150831194314297583523892298296643731878356899974320634416114523214129177039517158837467781297622343731116937644734824257950028250263271308036834719320152620413869767952931360949008502730324307666207970143237792697187863841962149653186339622999164814038379258444733128484061359537491354611844532925810944566024488037810436435921472672528139980030311438759611554078740845445254462038937568962658533081434879306267458247176645429708283348789523657011044408244395592250575394528477600421844606942843639054805249808819627331639009985110658638762839781528298852466272743943680645520336923307543078187440377157356639792992448578519104037647747669104910773693136871428580075798313486280894954254353991793639215087979099642688130528544945080158242651470025945452407243888499576471855213090829648236101128781064654530983390809618170458585199416744823048577876192946980758973883513650133316436181386085011773942439176202562374705398169957233458343271965542280705803911313898950789100858481467390091290797996317651851880511302675692047880027387753667721667695528673298529943290208872049097766559298942591659455132205318653654417637753033534238973023777296489628731681217176944697127625146415109965376539301256522995008951712169875382118967416100569113057238109873405957936995246787401934485954711337448750472679338655171277521116162331700180096967715248275249932979046981492112097653353165077495161316493247728068228988439585295616324616193199854083875128302101067623977907904716033855828662799265304034192872016723505590243792577269232874013722507741475124588789670664613859214878532954735235330988796068534952753801526076139015288028321878459017144059888492210105117271775503668245664422218721634333015171362338011032548929103988389749118825658718233684482984448651422139340129484442371638346516724975672051321237431844694781132641974589399427531293070978664285126400710248685351091731818642893245392732604284742642433574438521314435454127579299591366132938451324174693781006053752399729315787252150083432560089252774573235138213548846626745601276240720016901180952945071368091375743923643481306558349391005243416904283275786690577985059179883986796910786709765751486883915076658807257470195970420256148222075449311102276428100512473671711433395501431372843221788214754781223460626329713292601093646277823587133876741725189627599767881750960110824721928671605735077715214497315559640317890925966937935406693004296522365084817014181415959321483407193341311339895990590247133592877797901395924123580393314976215092517092318647311504418919453180685189912693363415376100598091358817145493396684947899727542761922238471525066901542288365314914445155029805466075711175232158883028996763506061185615397080713423906337951782359254870637336223634150446439205517144247982037477556866022508120453617954632445346936959002597693481335157481458768811089238329720858897585539445419057126033504007011165826141829816467629000144987376361369330311939406723649488560774684293274768424641209775559726513906149860078521508280328849585533900434877839550989715569703598947235549530354223958764848677630203483579533072087496960215447815635418319299392341933649703651352146882421772179029225746553312989885826816080021274438967250183798317978661810580183693429632835050279978392815359744350731395982868189674491273660140304793843308963124744093087790017004675616809384964399658289494658336407950193774915592840728982679898427288344387706869011326757203464712268112534374569074459427484985020107910772261721723321160746492018240798294835916468978225482281195007446420198894489047643585706631137137758393613530037895151550018716102024087129253412594038424305831852155204807933735785231296387062841780467468655900792624416400070484940107200535451917096635530863883741980753106180255181512999406009427076443030691159749910992123522266309423693443740912502246218310059345066998040074451225143888780734040701794319815314991755407685196435945157344829003776316840641848158659076545528890864668662138968993413065150881009903780302839752652346904722525855831000696538979108603400307965500323600079549229133960307855898422173791028782917162087705848787243186922074900819568211384327927844831847165634265437668579986137220961298629393813935940855112164786065267923072786329447380812642455704172155610661906818641578116486824931126986567316861891785966299620539092049792759951609584850778835802195074045049436344973766656008235750852204321094970161374531886120649857370704852677131099681183120647697329514810054414621686535765758692295597893514611856439686909678167932348548418868361513919875762042808490919855749505573693087902589319088316509590470503492313961935390729749880162904021209042561612826912164710125293582094706567104782360356270635081010718030656103086363531228702891044621994014573098120311181683844337201704359561318525723480714814103099871486782727612141877326623287980734986735016275577278910289121110250892919868522343387560070827809929498400451088829525707280403128074439248551629972981880386416937066388045964627129359601681117749086353501113273185240254439085289567639909975692220501810102530022689379132622442211979671623633260358845270597174728743643450782806431021638026161639582917239485033567572792966424704207874251641526983401225661675947662913429627261949509430686406843185209495654134246521900539528012114182885545324842920995549364354190490221692019567677972288466075090302049154325241636464033367117570889471061778665051935739195545713070554883795730122180358063444966204032445699218769891321871138087916684766707624522232666318128124195467389691873775885970696753157872935533299569818699430071042795834106230922912712391120326219252633158173431968324102521470087760879612410814264978701601808603140157397060399464451327757966594907658107837325855611993681445904605993970477929661893652152079810621211719737253792805069877669873085621362391004422987472299728384076812207515302191992371447905600707997355736020886842369197637267576549487148718832595457803635457995058234719538609256179131101056311992337904519492716851584890847245076417742618042988232225994998588095250670270797695119296537202505958984259866719033924446896806675449348911917019965379713365035141046122152994951781188461452786188950204657173560579103915212271052419671093546127906667537738666962271935882007984748331826487259596444677023751376206636788283469486704221780257898383718076391136592673954818970296893655113859413636414908122375866799231084685006777680684126725843331745007865313077649257092802411800581704525971265253595453169141546586564004584361337013145393585952770365577401868110200942488515904029465848184931429752104673931023809070103824352548655077360347461976433718398128852984686828189298095661561363228403710212621335335285664516003157306693408411062889961460123145912812317270940455688690515072667956987956608313973163247614019413981935720629888679176352501352204171356400260379006122400109376887378556646214319324321080604393545472404221632175996743637086303425858353011040652904353833747631682155590318834218150247358823128431621165979515993014551473489054341555723309891508909790553374696356527227463463105034178110239733114450959421571735584285040423366742293775929422380206540739115593086206099157890776264381598218316126007247850734901423532443386372719173741434020179302301079824738109565619353109392068048783963598831816454479853383673427921041306544993930119781374351427124583984291624157057676738314212674116755272243684252366639908611639050583096052488467513174373445832470674055865209704397155790421679096168037148693560181741809210440769667768064197717665472243552050839561005448148084199370537974912826386327476369190639968274888287545768099841027651715891312028245537342072059569588819187671993014404101480184975865788457622534136733693429795619969452538704689479185218499379568890331819215345678328695884866364734174382527557490772767636687871714277648638193466808615639599061895191709473189828963734219826110141100068247148065869797972076000825380615034719375874421623189002836268549489301707190460566577967221727864682077609820453622699723815296158020984568199580452839428729164394189259784276983571225009176529297606167996812298224643247202831068003321210333891767391265795077639833165605937207823279598507780951260810675601328601919055556907658576296388545627700251259292632835915367831369963075942341888281313802674268786462490474887559544828158079554895703966650989604547778353239320774194394506631094296492407180032311571798401189880808529509952897166038013346422666340622072038126384786741079540715919077767590584330867436039002985173168163177687639477245902908261871867539914792540373531197568440273473803348537502194635376323828362939103535004410319120170221651318350918538311243821952321392480299955123263412745994683733313227966461112704601850728868180186081492962904056205475894791990714955532552090551063909508775353461841107261630312068693229724801152347059347031623129700094927532411008150212018584955983909134350086055159036625444399088068627482904829350311049149194346240344858490648475747694937486917300455519968854491364939578622313631783875384496879074458465822493841433382970631032787941369427478545421239815363301862750651297997423515933222295001766680912120721653495977279347161442982060338191399757847919822199485728316744929555883340392670918394154720746725322664987941493854430469468362312305391273623443744760994806767576223865145527459018581307385235064826873699761448683444584097552099246994260640797096408683957489686898456150502659796930267587562132839833007752108398656248963970921874837769975669617983097804179788321545489656557078821586997495629040318580548524569568442559668870331995689132276059271654400309501299385422341998422826782399468480587061136499759505819501082624281998112279331698026036264972302004274584531744371511712718098427576370259445452256221606827338869172614433077315363603630439242052490602281440142352234554009790384833564301949806843539714752928421686184122611410542415092040016120093337217854628419105566139198394688711569767322542888670500641244263289795865856658770913833529480025969405420582365300679827398071147873478555587094235987147457205818163876777952300320305669586158315081528709989370475108152434167035470630998121090368504047321816274639680973694580725351026234053049341875124318602408853912754507933869714255007523545425318814408845571229279731882912341930584014650404613981455362632820000116766067348201711438647013532105065083568982819743651866852825019327419226061687011524728555029683401458286032604847936312060519547083486797985111937125047641210450065883203650148138256310929259889782749843386989090105887831520997303330359750297131064575319608374612786383327452079236341851590367731824763451519012489265621052478962988010921088243453497977615933080790024700719196711665446820338752372014590375127247880672402062443418282251141672145360190471709867295088658971471235192447584744755976598738447177004902220768837209298407675036630728470773477366203789959087593224254452108391756654780260510873734960406572842294734236926287939577892528249844677321508367736240716988877652385258526938274633976118580478198409065813780242954613757813295182469307786465960274672669676702233694364627712072349621649607575621136758463000493208841759718223846097797686409688394525940225482149282806570575336264002982937337198236644281512121227257359148834757525864757364633567591083993103609180104549525230295925058326335274040937718654691864055205083461575339825617824075552738018601877432945394739102273607889090081812987111552506763526938686795861469679462774133616219583411346590818929070669864336000311419481771120961432175407833440388793099325241755704224304471060601676900784636590864138051213675209612534260755911095078642607869965557287890671107380651555028028629635986625587588424334661847283381570579020110682962363905974135790359613521646414577465596455137072400081810095245102142233077090120646734201705067147202955352274621833930346899639070990096686895152558584737973301410252081090805158926380990718025331757324792067184017538459494551247006470432029271909768599000963508918422029427943992787862168205261752618331061955010267256493045325990477276318340055153660630325052479976185781209694814579455155471826392915058949385225995597190366557594596928451021969728750177402390442247385724621115158062588805334312386280539049807528962476546326358206259221794770350082228439195013942364795885632780389306407456655317028307515453415522317251013238577930379631036941982194622638229378700546752977737064487048171030878377115239443677726752698258446029826274908261538037664574392186635303490064003800078444995113356793916611573580017197471456323379592115854552639651368457473250315795224006266860151954572855834085688296868649828830915424233408423610183749293928869865434612815099365763042615444932937929818906679738045573402920240960306124710773944116253089233647755008023977248683601403813708584489919697632463667788408488844100576082758828084743160831259319769163467369079980332633747535970947178541891943347238999118479946730289040565365805168442681036069090476297467986854665417618752974282819896707632114881459765982934581443259623953657541831968702634971715388118481762796561263226816468989834057926848350212007208558266355965571277075608531176233477175761340620858604508549249254598807047925937654589344542643041173818886587786961686634408713829964515097995798210865764357063039075124762694032376735390084917688301198666828521617321684640381618808985485948089921552427894113599136176949599610235429377355995024374893209196982940830881666311143363346105219720494310206604338178455385950580355495647018159018451784505586397283137100177101635513797592719909921104263154970379289021668780172337426810853169694548845766475228399604483598481874151455580938515540100726451782501701437237776506930791800400064995000688958319806560290864827948496172793620824462217492250437727259170577233928934927066214075471789618848524246578710606580986393581268183854664939128526901429076985779423688292613483589166703963235380228763292317774427620324161873473898800152660077695644464430583610934167666294626544706047544084346138570503694121579091661377804678659070254789953014790850430651669531482749869766770268237903733806915133919948764708597334798468299281261589215709810851180028900408599782589961106266716015048214281942667783128154214303736227738560629774008219581640208301699661077835485892670690361812702271180902919127269534081875465546801736458565108309007355772217271928919907923294138318286411967072992982833407198462314493661444251980411703253283162339128853469517280775303711147652880591913031511843398878998870301418295874402427221578897874478541169324729771585030266738538127860035296654190385838770337990882514627337005517364611469124505764987600024419804837974722613425472059643043054261970169008902387730971990756121997247608353322984113368995713237477273329683527181394629803475938637908583454169670100301737427976908680575891083165356850176921476606492243009576059603786798389946863809996851749608304411721230876255571445642602048050055501911088859261644062942603145902567279674087503271122689231311261141491943266997946812829069379389041911468631455559058214732169530033566386467414565189494848646144675152921770198084204103223808840551463684259147096169518817843115105917751552631837457743334809040481250460961769213079629965146279971009539961946643141683545636883292507931839971387326514078397979595940108404343205104595173805771633128495813442566760425277340668974451613199285004421253320849918264168341843458168116262522998438229507293964847270478329467096718338543208361745954547179159932636621914878705394745845585617157416739570206089666408372335101359581658381366010286599996285913648259219899430445766885196727004194003252878817347787882483275554635993426272185064813597817668377142867246156873533724107324866669699087882675181928525764032339722258577345657766359428884240223823388775304426378302303139511991302730143074620395548825488356470153199579921679724000309906606803658479396681880025942688543106107726961407847693200694158714486163558229070825810213158794393350310552751546687448864847858155207263159343164898262653586840319420315467215460718234608972776803922441324720878915199199958294500194174661064550533407717274954885170982188227097449987109876209467739282404272958906636472818293052432769762808797328951161746628733277912926207803195911516265338926000751642308312644949172824473965350431235531300033367613495038845900688835796376870856298043992746188796227600064998241584157528045090531770920907720633429768802123058716628024557988241621832196410239988502499711829361364610383140527302794425227023236199237261582561379671984667204611025149983912461903963779098068061961461324258520571954488179411420517302361563488021716412890469229062155674683196590331456514951696840960420227062223762887555055825462825396615057128998693603846584160708187654594131520859703500330357868588825133266482809249457856121205463909120431237595204305585554582908842472484099517349861380059679619935316545288209206517545406849271117339071724658844972397892700657342927889488734605469298572213798294214230554889105101613341959699853601162195330642028846994589278878138037316076943352172706928953823814968792406847122959911499188389740861012340970286477144240064023027562199560099115624985122475974665657743929167289355154436196469084957988982345245161291735198207501137210322810318692563965912448583669893094561612233694692437264475664247352885653410356453700604999468898349132704322744499243779247439107960677958459696158254560240693399731288372269554604447802879956556816976090229407977921388347074579874837862138775342037505003605022241930807479846578125306789647078212343287437084223224758060316889450355417071304367828939074845535574571032794240051455141951680931221794558778148731420340382607255520049723695598481651424136163677144174534330200473993917011342513586146272903242739587824723478503275874936878901815757670128615431416347446672321499320182643751558431354648345827401085629054213171056108495852169668970100507774912962910234001082385673408276913684318759867670626478213624293288797897294739895911546110924515918691675384920252211421853132917128124906992621633644849956507248390397893395453358848827867940284506358439585911245090666696672319868368402443261578645860216442946603306346427115772345273065609844113962494023423851848064309794620781877670168014416361514767962469938863869273293428140737075820859819971050009047331388955598878427456883208712193489671678736236833777598784423536328680218736461089987791845543796047853797796472660766807507060172961024262407686424161761174143431075797016232041051830078730912701547109337460628459024263589866679418013606593917842127367144497902451081457789047799734633439920970892851667401242663090858843571112378084182204055886501310828701070011858121385604746974462540231202545127959169016844595494706622365131431977459947069802183862623579304097304266486511808984504429154698213653473489657069080938946135164000609986641361640459490596868613400118051245698772345043472723617401567267498497878495437480722957216037710517611695581422810327513862162327383165976316951209935839976065602329659714168025765679190779213465644693662699762752056697918868089909127580578461935019988038082009047321385523644280255635155369290805584412661430769871611049671035921713969381309606766102639909619583464574223785555381461390004628989103284032861428108568957844961007176550443565803153277069154624128720214089060038027251072819564204069936683384540888742141298670478829415699584485306835607315840793909242098218022851891068163775206668784554707698143579333058432065146771033247602601953503784189671211899879163783254859534853886290638794927516919571952501090917896336291339518078976040720336699968983836516321027752313647269771854700681967168094749455709545659788058462237032482701359842272149520803760278527940539138705187911899870929272246538483377276433608304108783434781796096439606373241185643022325803095697894220866120539782327530738489173814514811865018874777986101941804212085169019223171564706464550342059695993030820771123610742625761673431020460557575273540177987653284673330038025275898505985676155253612810682368593327522155289487784558395180382709342669241600142851717592874839718497893258455474282146352303050631507819129596029521095823407733734940147425057403352348058297243231346070376838942055936678530450262730339491610688867282425122109199754874857210742383929160593581797615443333217628389150040273657126193157237567022850649509422249890755135691116497209704409535394498601159967204226811867284736832013618601181996315068708619371404076369364226034909749273388762838360230977740897095473838701791073181700645186126522577650572912877617733657453396367242783386999213839103457230269683246053099975553739052232317079531963356075108481982398932054065805730987556186498835608469610135746849686382377206813204595403967310475610796818910116904348301142069043378208547254743813389125503084007983165856748352375375593401168051933500303757895718877555684863802817513095782734729292248561252336513749579217336870976095293350825265111801456362093112406941588896410538028223582363169707894314402970637763860479978981931314338653607844211619562000006822873983687104604894770923373781316657694039574858049061891899922957480709427262445955517936848252849700636619961407989526553563382209300361020915666400677414994863654990715519953082908519319336985099880556946828666408994829396835158671148277039617048762242046310961113148636721448800806368133653211613576714075347858662704826043405783900910331873917016650494263828515210688938261203590063110728535175163219689677428714421417431086368922918567971308213122054842491813953605696926494578939944379072554679857437251768172824988615709799219155690287389425760766335453731444433459102701370565085665044538312965029744307055906280976567442316911205080704611036716354919293296481233005767421879926014115313432503160803857061399999040205900010716192230124278376895692762575988707738413650863215088872561045245680518011367632415417858193400651410964478342181774412767351996761620065887503609968553388457106103900649399890727356202661653860131543689931695009592590308033001141086371097560593844893708378379908210807053152004631386668903067271200947146291792944556476553937260860843899256317624029787751988874445343016114095764289806900543584414992964829002120498906254928770112414342832541838353731789263600438736922668993380122632256051154390939620397417902674623677632768655110520668857020856127216239442416510327691059066966369158844991994969852114013649282687353304590537407282627503709577279008307925043706809709803611274061599013043200012007450433912183704712976683522571724945297234121795054352760097230478447508453803861049728876180687744850854267395775608532222329500591980710816764545668166954532946009409611038940231403761920226165212776012625841417932963931926621139532524442892194223571895029242846182406391696406113782077031200407144441674960190859618344045387000209806334466305377673534180353777182316439714524464566590744784410134822221067683760854774819357968427846827402146692175600776141145557580819688280638349218289270315594590219355271965111868647816627903991049290333617311891226747363404646611852919152029689279976675318348665104335949806541511648584070302093311335627915961878127624404632309968412498526833111533471803869256224667452471844511423553745648546188733727482846050364705130670528372799237931565230952502322944898395957052488235867449334325382793534978557495451153327207472892468949986707547868429061585572929995470381062155833864617925935379825989274734296675615768740460488597079528173446999621618895812888101864694445130457869080005273944820631345178929264756900008445457669209812461020151338403813414986505808558442022769496757292300644645938623260374445317670955955577799550587404204842339831348842489232835553626640743001292320648621220309350911271354367083671308578865423366012966871055437353457778257357612379920885948393951713056747945980402104068021382923441897869242428156726949599056242384430839042745479754125799823515712094032069803950025397788438808341342925213757094532018043474707435570400573610055385413137399901723660531461832945587278621887266149056288376436563499600919701955183282393640613323018495439181053637270309854865837785768769527754517947569417659950170099231479801529653623177392490638611041068043359012487324610032300585383247315552105792029415038535860767906505669311373369792550192206238343922502165003801112376178935409148329043782058951213905835052786014014027462996533697786198424016097635286974081614244720567599052605946667546991351268526486560161345291847382253365708530509962338914490521728657991262001865602677752924631004002266044498498778348052206008979880204113429458535641640644161018014124318914342034516585690683136365136675834059773782066716967722053007672490333675564938990741506210718696227689856200795663078931561582501122158558984803257224962284649465899845367935770300991765584077193054774139122173359530677788168862505788656158917480146978127706625418236231488789232105377296729178034204548642756653628933602210410898927421738652859654654254886396900533432441882310688023669413900221304924625288343646111456173218947379606127057089988680283054519744179085540457149616999859696417002115473643550953941704866538409788055965259174314059729901611862566911643949144961105935595503325968570095998424386474165939560495094496880490750511264744754397025499614000921582703375121724690572116394756140477085773666881529541140004320569696940569909009674292135546019850673847057983479440747567542052174876976569009778099976582044076671237729363888818204345678255832865557441816094324922108701724293926755735618532520750895071376529609364080833345313251658199583128416665500941328986873374034015194122922015753931929885912551974363695550241952605379216232197046184863377554651630496522739665576813637511117791332116520709120949889078258100682645459650460629291134467512402952776972481365069085306976895738417722329719894056924738410159960195659456731076870463746553423486123562151558790588751811242004094817118699702453641823457940137451757605581856719707322971577379480516774803958864409822613863086188758047861586645064279705429763450395529190456553680487598167415030213953979731550111804792610834117014568695688052131733382136134754163420333655902095799453284500573219697482623755612129645491949518972425165145803763639364244860785804503906133116721065125127603575099816226684898837593431071525910798589435967517139121492795496162633512560183214850765684453881203732451663832674210163165289730187482410981025864239329128064778533059094516914796989253449371608911674809761504572910285734634692430764162568553047989005705379587472667514577029085867469351739433071099291474178539693548642664027651250217157077066020025057307284203745095640017058667085118322643449728462413133345175127018685910408198554992369511600738634388362174728290735799677359483428607985018186972576812434062901754803891313115832747192210669493140801942459523310104929271031302688596718503304893264136409765371634046917727910797357094133706077561355077772219679640107944397277404001591134123984522313499659666390791017491164781963258289560072844766375706742336328868385611540603115790548270239789211352851172501765688636897220558766834559821877317393139873901539103535886583276297793039096949536166210468782425753214779903632352835919471593201685150355008128196805068321527326869565343110466879942989768882725698164975042939929270595067257813170810043455198694719255355331873142845545139001438218753249430113387422884802419935624767737336027914258810334980244933237984404191109418704529041527980460376442528678968954857684527485565786050464819518684111319044704461248043710688000731830460455089173591471318900830897206766289270772406506148770583514198801046026988710895077911843050270805983619135583792971030459624903763703378777056910546020948546504619387606935752215092656017066670079489130568496400638670992068988417895346572788113793580663563359678163617746033620879625004547323148922782056453318410477197082037227382225568733323958879657517018037046355004933900619042477110160993195149065457244805499077615480658874819099731487871385587199406396583260671430124324570232687573680045510784255543774313952426808097296452611650718205804024027652908740861119665076281402337115496725342451647983088958548872596147302775984156559898629659108905736322934210498178330504666808008935011551445968001062593543463999493877970452820225697242344109462757988902184220160836930403373903101171101607886934067757136447059296637487801313852301063744660643037118020334967622488189508511469737227847750181251502218033765626051044437372490571973392274322578563930409589697344189774503537322390479567137607232291478129397256549004600375584140258400803894675593427788277607637228459493481960162079998727957706720087247765116763195187851390911994402239304277904213524760687801059711754738724882434108628430075119993842682138715799541747915910962117925832378119302603409099620571568174315224291486753099836142741516557015681685227460865328443259996734291554453231128194297319260696133962939529751285863321278510279795598630308093516856110717015175099007494117501183105263899171025349143243423030289024030309467059538458833264309038065672570743118609301622805617808760473801255718075678965275963408482921990388811854086375729700867100784410442736616431136348261486781321183682208094300183741550986489613164583216354842558324213934005434077623548640814709695208509490148073365593065041073468173620135878605373047672469118425547196920299811837205041703101320540474328275188238644491962317700637613547486344922028497517958577295280942370018570828954459712457254293974366844408215976586402820894948068333647561115088628401824473444454026477464763384226594145458283142587905262489070111766300469557782818325441892588649977636766473975749221319012355929801921412191111006906992008977398561688722976976473149776146533863111385204800566575358303137447008559944169081144582821234748804477024445138398835257011927772773411642011120220017506344872755552628561852713109144843141800175293622797914896951827974892059292033306822584326794358581211297625489485999054002642342352106692685750548067270759074747271772613142218819037607633144344649627391099154932762928113411324224852891936543778594658255109918508204002967130743737345631478250301092486505249414284160062662237413834525814499906585387355081681212097377310269000938111056129296340472576395601988936152867342046588718960511678398578463159904789321851958320654028144334105877622574888536596900017002225296401409152993632268251878381343489797758880789576958715368259108368990894083118681827015366529272872125195916685113596274963804126949638996488759701214559180137586708134908656364396096774822136696081916089758876774879284000729023852013465543920911980248065410165360634071275648636591671620618676751286258126270260081988125997421972540704111477172170044060098893498892662749131207862956932335822801779988001917296965096291128858512148632356965392525091363437873452409576088718709161583715322625638977191942893984688275817722628251114498153998021902899897629031081534821312670604674991645541097251471829544848861513414364902029402262519466377510147865014822243680207836006493200668073791475002850955476234667486232385035988630731228296564467041077002165979200544242351996211295057025900371216889061411051311007325560013093605878898305923612758398157532742262914859211254386224471804147313175238214499301889580063449747495214215424197944833338058045465710119526686010742171748739892783472987753363546760433828683845714017934072145833821658090561612618974049191327107291293951848365490261005082750866557124267816785395342001305896303194073185862216803949627802459731356307023541816879649487049403586130050789220040668376680391208662648670330010225918961743556400385760540836303225937873248551180930982031201176802877829860455892681420832255666865330611141711174055389780054909886816063452830916305288822277947009626084000061817750959833739857766033897571247651684238664096600750032096514377201634883610057620437518978943953832735313111771752264482013485868398905655204795039381546121953830852384861521173096504233000886422849094461998292066310946695800280793748610300414550189908969426531496041291661061323410906187361543149408190748281121671757696679902517874292887397679800988445751062474300489040062914555957431575071548711006835910436880122245333503052069011500414110673355334816765488003401367867632911525045710813745602826695273503475741680528381709638331040030849465687998140374419258140769959170105586875426128176335403747380452652769062929037763658559930532819698401324812611636182887790825122363987420572702928545459156763757349684855910981518849535101750054790655768928048538290209379951834358957267753244626152470493643039736716908870142485783119444754079835264317587775239331613197545868108996758132690370543274600259697109058041612699382105272145131789783384198229244843527226416627980078347676175301310592153484366642990561729745212387264318838193374729216446030617310235725382335319066957190938014608833226307898045031659747930162491506939372941274623200118673103630958052295135673931933346250835589440552301948628662383642316560545134435245688759174455398284322999090971301752876001038363110692308162994728816995029440464171143254302151431419493497105648041301473763674022746938813821162812400646065550971151870389214050076074903275272739962499038201072719144019186608282258153951142112233605429402528180167227295257399962196982575744830135068008463765400290163756339096461772602844356832474199514252889700029227829249792043853425658201238827389039190640052747070091695247676631910514441686122372661396869794924334008984243897067958111871788730642034895854328093023155102733459295076236310224223508088747460123097186886915564802468141188661559430746417275777336221533921509306806201174870202175833139340371807807349899570287943603956495745339889386937419472299091157999746873893441447027913225272971583080909940218599911140231509356620341643712524367135985610045989455996372574508540958010893256945913100684807249427311917480971931710465692749334737838337792631409497107137805397665743222071347190978896301405745852412360639922818593968092965381230850589715072786025006393946622503279281464813640632254910099891367240370706142134208435140136638932524647508742839306229675332007805658872864760810554754626878610404331600521859353447096678552837525410384565571694260969978452440779955930753220022105544427341899455801600257064099289561258261935815136013073294015831060303015321326503589461424438696503820714899237588033356950340480022604190712518614441400082422261299138234283682219485687138245767626551169835326474492478118311342066458424749644738347108113123298013765834198326457609567010930968206933276180680058285096987102590079327654153128126201815777774314269111765163520321202453469732274819464355638051434027233145611434150931604782016998199782449857435727835574503296886805121203289057787122410702545998719165906796696609930781209660097173612818563599601854697446210121123969527540388122538768632574929254661776268925357943498788158294179976622633388439643069955181161018103616970422755237520783910783374581371801132523295700776312842359462761641840349668208549580056619575568149099562318457724361182770424914279471957902018843573350668161950803436089775858220140248601213859221871763986650747986847416561078108636816877849369975259557760958926697006210880257066465421201125552711713284862690112847567502179342002533638035964772122442016456345585614420422926023589151043129139918415831737938345376922358419772454920658467163840874532435353242743554192782174274920014870940596915980958918090494159051615845974616593672965864789838518297799913276846642700485848741548534375727235653921867295921144063796888320853959447548834134960547711304721583885291624988698724187609861700478232924666750076646893359767616463539841137769987938600443629858975133777732299354650748949988375482131451970646527775158941084791567788719751021748861778678456149229462465783890960404657664990333832495440370352300596631021493889689551177720497939765438039059475005978673886052596693049812897302922497261544041352031149167796401764094728865246864756398476136923778250382835112034351311567301106427588716536916828807317269941988461476694474875542972095949410443608287501054348536156545925034152180145335615365107168500684039220554507872062586901631909367185998071518730780930134021230948970931105047160829380118810669656623538958429031784250147922292047905655660051989262214027142342152008798874574702644734710874473342018347164186461616468480609086694872758930047626363094627944517933332080274065600047137058420280114857357295405851224313857036882490714004676941582873533389870077048651222789493178249735106527838043696730489664260317971053974554225755359026956709473558131800627072368011437203675919788431897444199692302163103043915812488458600789821305584653669591356958655902683250663998930935572592684800285076472772712442776066287895315769965695026026338869645552179374441902461892199239659356524844168591026729452125259802553102331714483659540449450689267150123497638461872169271766223229582006110311989642903072815517769513522151607830044277433731573262113833882854427056698421924592377798146862472404545025885453487800680025944531994835204482265175712317917549062053488032494852438861899072880284720236967888456341478360010035881977770420233020505687038666554554505687466511528264380149155704711015563932637290135205835475490582100501799529469427936415765205121711427754276003044358499597971857956110485561867263592738313938246011539845448473706718087154219496249721185083947053220069927391916658287391564536062133545482840505716090376033252772844609572154465084861758678903891576668728493038577202365054606641728305925667160604992625792557512109214184118642438967672286149614454357963548578787918241098216464575924458001176787913335378243656342595430427339103277895847129666262768553004884198999865420600560548676046168149839344173831705882133586874689836278994799872621959402937237143363885377042425861084313404382676531276390275780915330857945920154948186308117512129363934021578424056369136869575299165066824047315247830649355587070442096871688622572515006197891054531757705360175362428106333417188985229350046711067977142558155656883084435925154092620254528059993933958757959859413913463413930315415194864865052438905745951909672077653847523423051328223474295889438791193544267344136212292647394746010388270921254914664712583270134183898293067079764804660864321806725222172500982756161650757089983077471960558628145459959517936366186207659080804843168524738096523971951107807969819868238999266265344863025923108224301761410699502026067738226455191835413301206550949463408761961043070672569338639854452089884025806395967441314855605397726908426757868175789779735463720464006702711220908628781625985959796251303348374336047376038750690115685402456833272479727228350941926329136476751086176941393498741205793309806836346934232935208956035784457094490661016532246798179731286823780477964551425651158390501941244481581445109726265726485294313728684774780831023115451228353366061967885018882466670609903651198785785769557705056053685250231725139347467314601978362573261057446174769277550836620470194957516303225899061602369295427879982574968161190099926796330316536852046516285964952664697423598895957424506085138001940735641746848617556007207752680239529929845138253572761478093256999105176087914028507441351347755248882494218862222897435785601940550005228616421772928668982378723384988259243929115925744069428281514503379717630518162512784420279479035309607160863647460789150023620234792992539099412334700267843348993961526136536541292770651693568093801635879950817188886446112985354794412613521329641085380401813175609519769228001443346506789082813648121465702684135417468152055682410397006859776240712122131992328307180926586934551404653725557933330872504496657571653037659907214587151595574646870947928777951297317905336118033920825633359897573991658394936485881902937762141007873988581252129625798436890336012044577482533600105544999606465630710868613857096579316554011045202383762547390375914261865362036256946738203805228909159917514702400416308802542363762825006431966900876076138466809103281307984920013400978835725014338721803331310169120646952388303135680219080333033744512004451277250528616418667935310530365761101918500529240062126526794462490120056240042958124456802826199651166484158803347784506674746533065749892235599807278676107504854547876284796869283701388254054796879049635068280367599418338991594275380721435955847284390186202460251826444324465302146288585947911207055600497458747058243453374015885166272416370874396049268734087107087675232680357852161887438550336288254281975682717041890776945542339830132562056059135766708622848072373854959218733458940678013505971503253946172102366539935232782159593002825020218167135117474643367243510081718902959044752560168105277595329909170509144203852254815553883214765835164226288963644652642051220737604822061881203223565200330625140052853321971774881264997429059598119241996265706735074122573017676189105318476062195222651584840046220822477091744901178997213912276862309124283926903990047350075785787017335220143609115838128926903374171961946731208562108881681780295304020830236905259303772178263482816862337133031632099234917264446568488027365366597638085047517166970448606996529833855186905319954733439395580742975502506405023188630556549418171813690643414295169511080168209460286354150090123093750962117535969396874557342429164430404799347777586500270671772477307570525712793247263887139959528213700153688889146088620103388675066696285472784325098073614206952480298097952619415373289571036873314924058328193065233276781045522282012657540831889880310160587745320811028828563610678887258957966697111011371589099784342085833525442100652246261504147624555155495545496862518860572100950579674126059453859796201739173413556150294468661323265882999934565312456854130795631317315984440884021057513445337584283303528435868011505062083243641899227852772720940638116882366847346922284679257141419300645199977170756598328310876237706736897393584430149007682612436905840205145345006779785047373727605372176666855357100752729596202526630170595921726323447097516953809827321398582036020494825886755276974947558480423715625823670990561652686822869274608524232881737992066610712579989661551213743967363556415637996199155512665654262853974895693681418051376739862955387385458577470174266044952764641175571851835120294422338720907574894777320949699584985097290102829376612209114102138052450947744569560126958791304849148540382268676443262929996964807006765765651728886522302511373771359720805903597125187094897184549020256323921348729805214060365603707436029244100042855991297829721599177414031928396241405105062267410121750749020838358752642735910406157620136213599963816147622174829224697868521240904184909435128187509181659736221526928100495126088599811482661414261566309356412133489095261430319002001522976547505496409419114949888252568403461566111189900114891068906873347169595694577295327279322839980321769602939962130665652969470237189199740316478331532306816389192961796153275914859636295321096614388709931652641304840959130470918326595851383483370325245134385615573156996453348945368878019366822104065260099118642127172786791464944254132813569869467144928314730160772892974528591765697324866230302822384021133650218833231023422745024196658367051588972533757765094743350923081321811853380423924586302768789153864286167174178637646243182521268164739441341550663904059204928671518675601412698850083708872103610336716706047360257597965225636517467299370445436046467203473743484709014178766128166178409851729996612966615607707524276142343910699140010504366033377601084662319202267847356671161546309046131613423532031622747696982807382346397869803824787610580781065335909975227651827222583253467238608888500187303853642497038409247125428227597172761033717418425020291495813498338264283376870139916748507395156626170193167612377311878119858015624806771205293126853975458919769779907615660349690205375495367103611636023041816818447849486106726398557739368254174532749420834714024654052655425533822511649522366009241416213115745782459092507371193328121067514414024999612970033310500692513788688683657529551869354221832131561627253056989987994266447787994523383936016749102026389816321118335157594990763464567182203240568067481641256619745825761148673295996930400847777403318686434218037264971761041772464205286362937730181571638979167208620785203042895574162323774007639439775400375868342803075760562018927397088414075070473676582907276340750233511999291242323678859167340110599959050219044459521955741886278164941174886754172823913331716343127004344108675967587108265853417716564736143319501419722009316624706869609802811569340799642381355203016357329808982688540914106591712761931345745222765113607524260979413320563196734461935807519025651586909759108238424182960662966540592540611880395525216393454377093728007673380547858061756986771397338618117962367173198874805614992128122517695124099535589347778621612776212621892978184286728105751578665257785123056615856749409644466113301632746185611782241427285950146677811387999864599319751847075524915731160031515928663042774911534712115088366243321658573515350447593994864352671695184804317284416359962867793756218625225153570658299993903952268886735402554153354176908402360391548050908126889636766511662764095142590407186563982217261612547181130084949732774398546738569326838657555944416393505960280632923165680445396636164620670041571028678350104510739199792986902787176163679328589939813293723689802012147756975931866759802088458364384991547826205284280009041783707172501467994790684424008208009815392228561872792580860714726805774979059997777143886442915990201317346689513596299300097319295171350612129847791061942084879897937982224557119076307032199866511217716096650498490495992193600513533852138990590835837593661398278390877466575420646310067342336378293513117686969754217971573269227043792263308097272030646264906216472626890771714801616402003269383187938279740360874867442580124478248044368685344167228480395510235835694701074028776263414681588177079991707252407161206239832704935117015360402915798568249577442668579790723044477644101875755041327025999834131401390214646487784781878566617288374477363335393483777879517631877432732630204810875258624735674380925618508529616867535978770756561791028766254691873041038893657665203063737038251573147109039629459264807817465439599942105957080591093673103374250279958839025409761639287476686637855859499707265701580901227084266590762011840078598712256040440977803360820620124166075902831131135810274462049892105801807934985288069595464810138002982786882363718418563546680195450387133480932725267433293027718646437823411286088705142825274596151887336836197328967881780320573020875408577092718810984718438182588333215509164362270016888698690462449436244356533503561993097217409980972011778725511092684396699613499592919502854412338369042545333769077868047436191779202368255913921173621872731214764948051294492899031258476473026662153164420296754589106449427421301795121536985344426716636603092019386856029957141202414793988365497236306204748765046760602178812955797483361657382221505174520707131885245470207328325292896292410990967208249732003585965229061498939743342030294524301500396878954843156866939976613807382737423957996112669249034329343604760976960742998834778337345478180690990558985557043836960931679462084520791570053001816087025316905140556746262469261196238428285677860982781225682228523075146708598020201482583427374802860373546217462687191378068069605236946745595397321820667158300767844275910927488268290550708214262047988145082000944299314810288172710674019350882973344119115703210368577077874382069607091612412660348812179619299788126616536892308331339271979265664340076938480451868621679727935057393010250078451776124109371943748380417129039414506185359610598962854064156659250778864065739423362107407359371557295656357332027923811118702612754608292170589257335799460895173496299481322879012183835100121847481958466351532400396926728738668642775667449710317387066254469435018613456384993005121802016631697849779888778761424156620544358388450234591325420601439011258277085136614649563900496145484273697382830569053652816593735656127764217985771028772550233432334778370461187033100451874369031162366739915302917583923057659641071114986962568208102222043070545240117456484819069253843456806047080054376380792471860440596316356426279718680677632751935857607692283615124624607539852052473935714584947730676792164770546623105157170398028337930889035497961862495987125016537375761360914234903354129658778937894831223241580231326963520447530287253751381322955374769282556031169401815437631906586857443332893702554166361587345479136510372775583453211175257056572433727806291915606100563333385205070702797850184234316562130495370947851039932735566821391349685083945843599583391753746188310277570699751474792265417914414950977629835530040544194239280856514613360785517525478719503438149975367203869405847753041091809907175387910537439630907917650365419019320898683062848988514325496027992092708272121421753609035170265006230216706548107911195024069577501314373730325116367208504566029768435765793092121234564250130673967224140174033998070332788894408260243368763490488677094164155807398783866700019105066847315657718722971136570617065476787254079322089207214341519912828566986961157837691054102445076089978271374648677564968662233841179946590321004933811069723924399138819516700451439363373690011410505638705371152199108506099749450264481073176127375815198401842729621100557418311861960574645480650364412644600057437751405352231512745827238432453827460771240519028276237980541512608353259231956443709187836393198093497024292346317594254605942169844553463642285673577272861423673559041695917844052412280105690020009876389447971047038431527701458242978946453373195518307580846336225783033122420816330718706405681308021487971945753123868222141180002782191485421832909642268822501925009482299402799357827066082627806887044080726337495144305954033551410574450319368347845070313178799168695303845620925187743618776416840529570032965666490936026485667755154567918642860444770375598618579177187320874796678347358999856347404942176667275059393514300385229655114300473162574341991482151202584418188789312821066896459563557145617704979059458091660646115496012189034129713997006176704864567464041610984838136165635496095913471331283596805150561780541332783620974420129394396680087216223307173330265945758571193788449202103367683017261593411538676778524129204002741506645469302101823221598130000089799020653317772961934975493592596162693363283109169204333016972262693414777021526769336729499809027089014103750673713903699452779304482306534496748704793773824379898952262028209312869968894024397883887882622296012057670893850246801072820613899388389271489264373130385224432982102910531762660647192244191872265335794356192423059204808271449016583956574315880587991932949630479642254985581296640409122208990145680000337188032570019614061147860289046469529383757015899871112588244227328885272154653040450645345142038379171205945553874904580205949754480126834352735491678386740953184853974164884579541641320650494369053175081051804886554507296282738960777754508085574464149714815807487440050725403660968443730449318708113059017274205525003707608176888789582194510752105989622523960498703089524190966979016634075012697811086200738730080371155892402278985642517950952722103714383606144381535055738823962573104521367676387414073970727731416967000511385820260737328671694094002162842908575954368883347087923259265592246083899470308489677961080195114617810828225098132286829937752608204784464888047980216113357155801191180133707183758568348579933768231360834297358179111633966742516660497475418654897057896102462458230680896617719283207020080040873437759339466640248443789445242158639503845408160901586327749837532415911025112169256830106003289940164588416738775989389124415652236786040069943126946711048511679865973196080715562264932042210278171753537023371480232470470968275133808158730560185979656922655407682365074281945083627005973210600978437338398176409672231602210327103151654924095770694809797071505902790168074960188357477394067931524513733525582757896387490536819602820828437482633148749256205149721595774530400836831861660111403407058215470289830154768009663508550836852549959072896844431162573874709354691480697207471585990868928119064145238901053738126441814436673632706187743516754488535695399112817486101383501224379157472887484375427877262261611645950575828948658035829138065282813795673882500131636571846939720479751398737636150779077872869461291730327370489598659995769663102629082505281392961715393746012175105268266401360446152520717483599482375385290510771210187202798539806824239611014008319809262417471111062063349337031879601671690604951883142218333935866823182215595312325366362689171560744556170978327901840388706944846560205235061872027433435112845816431325502726796106422481544435893817891946559842590807816872448589178254247621482166527798567505962656571119576571166237325408287769547735288517484962488954833752597262437194779818624482643624717514759738431701896514293031943766437363811769775872986474675603887190978503949684774412010443610079531446031129707395813114969845106839034072805526937197428446620508258187573859447716208819830201702282427619695354435786605102872578502085376748559122001340051376169992630630920208761021894876994057299304611330898940846939045952212140010491182509774785817785404066032277519595852341913669931604197005651735616433789133760897467154230424465444254877177476308922803711251040423759660152087291244414968015996710679678525493827991273247218566729675741859578198066181048662525869482721307460829848956709167683703608524653596477541709652338907851642567626737075131946797046369777354710192719557461980746395895708898611869180853200735580307536597353232749420287258096066718748250261393282529195552128707169755547684590718183134762205628656065838269735726519873528803434947435371789904639605400533077259419070025089143681614387906069710818869375858799577472806568244929065539103832371690396931427335526311516016490735540581068464161327577881478122234234636518033300143806542831891861885599611923357482131381859625393558465240864648274773008963113858351373602760494366541542464890386183612530612773849384183929400935720597154991215437918102713919706252471967219293432463197746771952860449829976716115936646584362248078092023921332890399607553457956153351701729005071989007885819983354884137312337391188214575367892092919308916316287351959507857932904085437794403406090878263262586016634612629104788463488952404367628555123394557952493409545395308766557066468254074104760115698175634473307170106513135154145905409715406774913117492704541638650262370044899909186141032393693354564154105265861308490139420097431680593731963788717142458227111407914165033766253047905188589954271896594216057160555649322140016299112428458709181204385662004563700770273671284493114659444813934325763551408826173107300247953456923036677262780834223140281391543150872475401095424792403470567161321316956979883619109733042286434143886967674487712005451314088674317603812249948381773858427449662794479325587795245321125879548234442891653444415865956828427046102970018314171027927566933776435677033072953704177091921393779254902145065061004974887981325506259983120110041022110420260473833758915837006130859797355452209273624998234314128822229060356656418611310191047856904475436865713034490498104888883189853723672992666571207768995349766375947515290406068339465650438866113469214065579803694133841484115817860761950658284614882106454973763379502940926277395122154220915131832574753709044130021072484353121423581325814392941416413453213384154129481295349767830227499215681315379106385856749435512460215272983747181056664700994347051758912075753880368002276109586812302130837805346106180457474093510119885872939821951190926803572038526519919787019636815981893445885263265914652266471126826095728529226773751428166683051624156267977115139647214762931159986611161465582808060622479357009775578678417593040342711408825385566556038485840834442902413153064431107900323733022028467951645482847239197920786911688203127175131905656110669688566485089844310258961917892811612959190728524296223499631516587275099465361456858844884364194606444368054046845246120317794845861983220368037897557453497572025357272544464460535752363425822966821942197887865627873694669302453296055722193408447677566999586171899033332418203189705620373147082469342932774886461727778078666072594222564071757700986457724159896284798519906847036682817439128046874937513459791352220321531470144864383824289510973760367777509052579023533934647189885025859153001917982897201037497497598502919199919578968754285264376656333594588071777114909037450003215863038381928649840340169053314063738444135221892522884005681388798094035932949619578454841012328733234390596676423879620373277675898451907767865652520368131651673148766829097144838581635507417845035643053139469788932257142971073734345977721099030397814204083317385327315568231381107547240808790383750377151652542118293615489630100870562094712161336459737920609575607807409425676975710980544955670699504386537217567235358205334069458204990615991674837074646670109344413720401781566013465609013192793759602308128034498907050693805479760613697968405423592620358261095057595826268503368975519914261409211333720429772114035828583417053305625933807710853393744728990897533291815761443856904045853457595232533972833605912293911919083159776732488282877159665774097154095299894468086301066574453566481268230680014789548638058243722878586627060710217164775478421985493498189573735167619837574516371885991932242085097251459506672506618580267052460903655915189179968987736159595789932638028735575814824828957828279299407571130668266299994989229772488659962922022281333486340322207606852249402725672558312275327559249059188855810415669141745424670592945627054875332079275613426789409989432620142688215446853397906376806309660694736642456627638392173010475645465097167309273233685268282356112846527398635428430056522811067055531409766056187577166330445660340860516103281618665481530766831198023009696295698521571687763060746422251935242199459244415543299486147178388160937071718993476670161425845622941664732757646357818577002831992946723778280183530446559684075758760373524842094005430772224611418482298182083184846827808589191854183282775268673548954767049115841809663845344189940668018284283526302861150535703292712316742006016228438378837401847733148053689435927754603087821674128378099736818839243647320678179249184557735669140945236949292064224887175043977772887500547846415144011918745758749437451074817315544236970318998604917895169487835224397227467515502957447733908029024909683891813077393262446345242153333572748821668128961828600709530913934077545743838325531674417096373615937068766893376856962716816911332483599480085288216885826732723395892923209121809310921886900191514027049426750303543786366947030312630975607931165874679417214557996187393389293702987848109792683365831743887179530121245383332819351239617509300103022997195816005160658365820525062877044108899135920962520246078694914071863206078690151755517506802061282449536748920334710625202703996912760181046735414958593222042429973572582425641101221585188058049209425128700905054856977228666439365918069356009797242065654746489324916827836516625131199430560106869210055143702943904926200670077064640260943419077108403689496810243200137961924116916106830490714530711499313328694828244800794513478676413258621960910754705710780141898303071745260970831001919041676921255494482280680992939824927102956824787406587094297909246569913317371995078780681948262210319950247474062180401579582196546855838804597656949553280056924386700299471825401363507987517060848472015566593226531837691686011393347848136077211846310455762874756091242844883656756218989621121532484843248382897696197582148217219321771843783814460030154243672508979720858550054099744600010397039954208849537900733510217521504596662738532674974146002816133888265782718799628338655669695138195576950495266099118431935974020554106870866312691546630431900100096624435287598523567240250402561666090358690991216922602838221728469271524107566080494000970938955706519694267245458284671279847602198096075439175091530443971048169069565413567713340019397149364460751748952187850238769426262388196097359797711944031767477928538100019002079434727756206726191712776111247596339536555867625370304462294009265912401052485234870322714453165203904486642390076149258066184970965100619103161474783527334870641803542364076245253121454270769660115202776246179960755889919449631745512331273506621144565460690365365226983322975711941901079454929721493995179719734915270507236846365705949830910311548256232518613646738199475492473924062232030111863846814506357253966095616522113620884313189523650987641435240205590831420711152715746416699738152883513116225019984033389521465449324703292561033615205658367429331900788572443754205650549550368523347803785303850048964161968358362779414939081761868609511931955796274077137398047796588797621274762207654758664858072897052718052396021131426778505412023589740258349921050844325749310914329923525552286178727907823028992272482747654860464614398500406563967753340476724867712421435200469072274298162126595149532174997151713801353574156542379640651395301756540939319664069773013965417166268790921548594529234533636884819616477188731480043954019818240153308264576161953741764388627187026041773593645370519387482359420753634960003478198746321238155955891352316125583909922115979040597510380967752097226314141492405916174874244019109079031282167060430557207693008080581923004186032034378628069402622809355241511645812358682565100038146123866089922827206691126808694893876923606439841766168397908601311377993550369567292143421367629651403537575083633693443846405745278720857215749904966491173910858244753279321465976117240321943312082118525558449357355538265223216568526570376301369095620998643251110845160424243403545912299507271596586608146997214621197265000894386549821975975680898096594797603266247107543604157613535263741210021017032206150053444940214176353657095199243005594574614351199910100689845345361871799594161382218230433650958463805838728870396312858963506681253685423660035037628709146400394628113381270348089861464463698976158625777953555667032116273958291787438028861291471320863813159143336604949851285141969947778339891972059781690897264609502119765376725977717115051703267734902722155780571994568676092034881379598163134196547106909696139601816861358585150809589735973508432659086025482020917282955826344524926909666062451604312926222900476767698051340447755985649672043211122768357898927753127372180784232353156827589760912789141103105036577029301570849575744549688970241601452148888091480480447536346130656165324629365548194746594961618290528557405557298142941124215477061291060256272371633697704034913635059635136979612549367022919199316386431258573216310395370278503374616404568882402484780815126477796670887003384916922481437255778865328288850818285851699792910608894385264446934605630268237790387866847309572097441440176358671769593919740286849008440464079091821289513541536985902129722975607863559180403318243883393758252201791062055169153238744511325658167749663672901844512714086445010619265355060588988692972721970546598025107094184345646780825597509835483892113585956179861648573133645344631028237489480173191708945026405217205322371448682222590620032851116612519174193910003668474446918974261233205244046779501801746837784644477123212343534955372099173686989648319696679456469354249020210508810636606715603538452700294214167426855407848735512295737605217903021019036428727494348962897661329766461421085749691711729637038784253450386510856943423948198336904589227455932796323771721312258950275977777412068635180744863482940923181668216544039655489861836930724632386274656086044049598987596815615961299210079508909106932094512760114709892505291232944703443495440907868410365925373981109804420919559122092619010053120519597028121851162631646853253456969840131485242403413097369603339907601628736815784843774664731650091211434626684242929096356169340271298969327361038128692928910748290436108048924153014441088146896804569670309571470486207515809052847453109651353567132779021028741215082920352798976826297585315913377230124667024471523766618444751813372418758175905368166832988388457129852243943919212103848976502086698030926243343363982334400383265275470607608999030873193030019108931368770214483849537508099606287441287525100723918697465808533570862208047594614447016439528139374365867871951799437203629310349273491041142718527559471254054658857541641025919399240584673873454514375475380270267981584884098694979461494028459712406950808709922572370722502440116077324890164623929770144771964280500416446568516156409876761327076705648056900721536215262824673933047369935086044074555092917483555561925862150110646342521997927651539410900485258673967881345398930590638680834508107667659533521274295874652834476832848524169868791818181017902554437408299680060272081785589487087514828178473706812679306143290651494097015630664139580676432788260547739124091850113144999749014401118453896070079090477709590559112131161969291894242061361554721611250693344373149660985513173823192664718201817548656362582640472564741857380514765882747504466987682554810316182993019558703986376170457913357515291202603702759872769896897787072587537476320894167589771860033428431255948020813631228087826517118000350703614689715983117794411012642248860881657119925591489659670994487586154068697857358179197850327966517684866900843961818757696247596264472132154522366683192330338201702478272209207521422034162914417184162524977133059220466164804072503536489308477704066288439747766919849359783053494811853823911938206105489067601347817951131199271041242063777572390759586477568811327905542295880686283416528015783325984288829305326810870018431494472602306328859880039893104114964334263047226641742600386024406841668832523738178996167942228379082236713673716328681233974225248909712979523419546799757749026690648026165475626499750519216671419595165700101905074728800224082184626241034336808152359872720862503623112572751397219303029721111581572556605921798973092499163696072443126092927416905766120335250529991309783396527792449919276924712590745020599222291947522828069841266706994793997804527919122939022049177845856686078825389720030330224703955656416527827705551403690911738290465119482029211193793319850207328274569449727036769999619237196107247226065946864928566926052331786936424273952908100139457176219811908731761490405632699685429989904211943922344804622310855532487475285078256448930317203614905752193370151893201690490747874359902177068076364476294863359716107519561157885937857961010477057700249257749259497028793289038980678933732266702081192019418180407570886636210045419917924757908655373877060867330299183559345622362755940944986531252173643068598822122455790247051119776634532966046145023137544424197460607319599538017162752047302428969760328273798512037954660569147783004119079328035583924444718641386422310989633860788638824552527588747232081148937825551498773063942458228418528589980171659364542786389475686994171390123294184278598001813723159073953700634257350118553029198568456482399444336185343392876233594240412130330530230985663272070762905261218992810778800414913169191278234095989283671002405961590781855112046482993025919982415925224814585682215098552994847296305985652262476800325845353504587603296519670346337483003591005855475512534220430776328598728348670402749373189388796470151636904578192400696593375194759157971617437835015036425751534786214535637500133048981470359711843322965783986495437950063178652186963911779033474975555396567544647051516513666968098648265125836393066214356424480518189465871885280358526030596004163027479146718260303725228217060918665185864970807636561841186067732718601836018844192826280349346974719062210895085097094328553102907622473559156225025590405271428552239994142035351181124839966062576086793774005223518585186097439857211395425121883369365729509057955506161025184494001400906716775218388222000022399007284473174036160572611973171069580853563634141805830016262889256400951657478905936028111034128319867529728320025935695610300426091450349790760446525425194604499632244675458282418366686937372170512462230832204714770499278835708571377157366400666571790588023582346391811717486144420577469206454999018457039270308724159040883668067521806696977586571593448664024325657864812230265012265553199041733403206083039455723067541711502275946482402874445653390765878363360026943109493226600914312920279820419700854266164478327373169561645247146889789912276563406885139543995523624713444962846136473321521893653597584801465095958375441369598511581758460872056047828299788998486911613208484287700357889170717632552136875975321042447562296638889334133184819613624720383839283245955721854584992179906447965923764539580709860362332928043396302598163330668363004503176647981855740136065566633526940953319260623175866238664028658502429278338943436251153506081467397979974238269494923594237795201241938850090766851337531114875049611682723300949296337524733507705027510879189664953198519636373133343446232854030383489187437832608683040369897028539549702976898611489748440471252293477987231485441701529521108301091550936389388030234159175299551290106246758777898584235218902363700626391050244380975168611463715402272093027682707158160571882322344493358024375363220434893107520542450445189768985489938188074578046412139189192450459626450189742988651092832374054851315228587955190403489006453646579344724746701736018696838942905798366818496451854056905621564638593827308933367758072310443725190362936881977699312583632897208070956053049751574856403520216962729197856211525960210824900211482874003844915056509309149459871548172748434739094328220858589019312693310918095052238565510246412967025878790426380346249143419694070896719588796737697212164076624471680390201007361783750778418098692006053339506470752921832241139984143141827486471467478188808955149488488558992598177589621492588682817814933368560257878776010625062214224538686902548177579157282192232685554451117449828760677259740122822747775788762615740715685962397684828817690287074884082129640169239788722122699853548395557907948480751634281219968333906618375532864849991511867399262652240774370617056977320789092265030318054318785725809706286205828192215492795752971402279147085280493709779164045495498344742881824916103231441148935653072741158885395270422507674562492482664769249387977517381357048473466139262954131193847483580352698825782556473912618791992876428902092324467327089583278673339691975729535104938460798607806724146885680301797340895760737938301173605452357900802678442621884516152309988226636659260800388258274429596373490411336871950932827324543435707495308845831078541437986275585372833152903012154665142347687488657705944824477385762663587012366612298029338855573173763330283775329270008812774965080836766046670743083845499159751362568701668044998466728002806653223349815561407950322520457276477270012347477593000097571963778482511870936626754286838897742674001556272461996809570484685393968432624887917409228082067625044478948634405589111412464690643355208464580961979320884608416003425991816593072699681952580615458516985289931405611496811237049911004221647113179023718703494600789158843332605889639318776514195214493738444187178676173321775984185784223058977542689604244895645119734651724185726560227381113732660375084946271130628807134847738257014538700262308474611926652059678067289260476997381065905779270474737430308141848989615157409603677959989452465296795245966398648660084622109723610399910381516593091731480364920925011058143981351662413028490462923326103396147865847389589192717399127261298039506515583025175609428385322369119703498296366714869329616769018591905442436410073925276875881840893583076451992243630555825493949603132831742763696382233127928166581677865585083306105777583818182619191714565389336096204038990783064707606450952044878514988728852847825465800579108598705495390092536332916928260034589667001823102018836313407578658960297625951493414193153998100970545438319006278581640073559098976516820534803588937787782454662076836386713872925356838016723419655364829649100568295035797160737972228963646044859088500217723457109239341300838523881573040676593273942831993960503102269392430916481331264099892854689829537967517721525600434663580121259729961974694032894707888877183919984502723980920859232407193114558401735271545948216900800486095451355570873423767581402149555770712016653972143764539567535997500707577181645941910950405421560022445915499267401048290248428400416623994690669862037971670847219661179755564970651378070309413117057409860251552057491879034346035840774340974102293985504408617519075748195577206021524142646432270437970762012070422929491766013765881850253575041473624723453631620831294502110983038939248857811198012170641503134521215985144624082995073506440916995460557886399515071597130848835799251546866622627497077587028680094651777498807913870827248091670209558847650034378296911241630446716184254096699963312710769392862726406645790055669760624239477108074728732650649260994921660554210226017162355219800707722293152782462474031646588343188928836343412497609574656539529421424533481770818850190293817955032541125248969198959025055345776002276487388159615665863747262037181895396562062844669488869291051964245713009053909928945492172680705376594011366643697446862210280720818386018511480549775224614702985883053296152819630069500883966048482370239538146477631957279509247283847871863745289382372836994536883890540315492990221677860880529956693781794066788073946788418119756281937136741121560874962075898212868738602380173704541639245229564417501425631776154215717340519186345971328057133827224394551511370502668558678594996904096502627884521593151829021043285233673661096167785566335502833508108205236454363180880669201360068453601891758451342260886118934375269852977902619041160050438209578592035252782771550219841846845252786741421922078428441379759513905185149689409450745913875100223196749422508316045100853044762828863387383503416596336988939747507504440819698598011683722148857125918606369078326075285378762142552413336494642702380501382830618926376504269723847478319976001950244007201720113749880677678310639223028129681128221577638053688931739531960572282732327846842987664619379538619530246285410383003192293270078939358268393676624625721380944762157082612211845654916711519565667816830837245873771332472478989075107446100910413130221088690590330426942408605978479158587287765810294039307006397217814131252816477824587566509410172896007645326538502021024262404779917430714894576344844330601732302658705687753048808302391246837472246445393171801490389235910401860078221791977212061521073930833322647262454296297666573102618918855964044743574470515153534721292221373307971970418689355080171262710928801674628572727971886986880053780609691328846987635477503089769517876823731817722817208347218754388063721570523527897160143201969525983627365059001347274975157098112512425862459607665553000902425950734372152868180427081934947732400720600899993884006980861797101534523551356272458609928209132706413893373058723150718596547228500629321776400046899713125641453391233202923597246938868911268617927228673858831147199169809345211005156601866382174139350831042398592548901751799522128357186176730582546685702752861388235088622497357264911154067684498676269162606348238343354556569555849480433441604725431285553061126374093668991492791067560403768590265873532756488833008261505095892092829224149396075402567354235741352495962222761578888864228650390682085912786458194627156323595732657369233781341156697349714212148824038714416206821477046738947136293219365753882499424922206811418781780538975067256843798602730586564542022089671722017822288707569031989811138259259144602043017181457937639812753185366931835851319188179154548883003856092531429181383196848784154147494823795270264353372149752113352909838631479466050941170417214340876664263938502222163330443579281644294595998103124128810852848345292838582745657911851332247044775392196669404322569537734593590144183663180026693334033506491356674390117191352115302311042302414588208499260341527263530024262250091919911758766862576125029879691214367990363703982338868986878016476356973150335303816798916883462335244330621201444494305223586298407377210965848238258110017877449718959745957509016161711240229076816063131323015754764438203302833467698765690594856520703247915677372047995626905485138813352868238020655904798374213549132443752427589875389755592655527431529370509881199411151941067936984062223824761295764420605253883890479648833318083197995662867173702930880822090214814477041872399218912240356753842751691110847377943620337070334031000761870364021120736819757752622041261762097601670984283342609118552596944488806701593751514493546049134088112369903062633892404304830028735396966923482357135239448128628032422630716808735100430811899682487359017132900597984837766070565745408248635713696989616940325331549095540944986455726995639976450454403965207763555235405189273100639293777838299029690231688446976563188669497293137844193458064402108686553504261188731283926051206188980884541875299724562333410533127881099985079567450737092980516156470248257547964308850410258309141982520829216845304300061167191034836228511210693540527044168212335821339043055710408673605367474850425730469682129305785459171276166055031275315550290732820284956048731817412036285109727436152792395875165191964607260532304498588823540022223120951611305022719962776529834868871765547544208933779623642674815708662003708624536110939268093528866447550601230093755539982128965385365466167279349034278231528193412986617091845646697291332136613643989537662729541024326424940246978917995008649133879105726484003438348635226244224406091258909484037674114450178662456832958211934199740596185084334082008455967419224668104626183930622441755043114298381770163463693242284943909790429639834772966240082186706052525986239658591066236568741094698333384358895046940444127453125934092336779889980178483074636978548515945383823277090619263587548540293882947277167244736658931358371546973129349460947146595970353682709808049876338998812313026519788610653608794000151965617753755418779768504446147972412615543598457488877944950876802166825921108629287514247771576397130473330177440036450144385015966833961636070502491580738092446471449698294721400188903304356546579731318186283234988170658827229581170480545417941428671466559780047656470442692537792387732163776956363771366333297259138555285680256808808401394562772676354596532044762747364490420385089352357651123779309332824302957202338661636892106032786680463247781400889062550156267196457543358025772148467821631011876141652488076566817622814708003831877574217725579812001156151545727367377142876428418752872267840728551054945450502733335639239028177833761622660876132598221233590354948232479268010163558535203401066424849075843688081577993647089574364252218213593972798748063716386608591639833671829946162368859421874451246822929956818955248400264349288551711939338754409151070976997558441267633622995776873152416913624174064974001094391908230781520616927440378435461381745153738451897996918933619171248141470909381101290805998196086638658535608508877137398742016913509874003431214823344555096160826525466027732808569615026134691098495119079912018468466262939877997676344215907147462502902804832862375059173482881223048659407205721915047908566491480308516332835721281987878817752275147115261671287604813040945331103234291806101461568241273994187967343587637472695050174389793083101165226287520630271048234251799401587544376919878460738070045964766762887098999174981468731723341325439333404054758780997220418092753633277484351044838181247285279650216672414756322727915639500015088666834227119888432784898399831736206208539241699559173093229113679807511579356446407933592443296380156433814440038345037763666317747855512263836607611633479766117733520113235993584832734420650302735968611414942185222362653778384920382167655082302301520123123223275674211076621274779725144492521174687555522683258376055757714698005336574295789902871471901326348525660367231405892776731965142434810681588681388751490703714547698747578339874206813671977231192352889337715382130841097362408164361723495058154641870745352941631132691199386461510830109992469529848633110846971260113785212755259862592009907914629564592231128628887470336013256168986550319938145479038336616950495489126509642873607440319294001940289648719050084470733067668843265944723072465969672189100031560817923281312117118887482550328538882715571131048331967100845069709463120119367725810615307835681465073555961876660507121583014366478236107347179449149761118162413672417635695051636391508677997047256306403597854982185418451412420584522546049723358189464247059451702348350198156774034672504173116986324625922197130632826632903954525464089337783007839124818418549038204597963783487107667768819850790759327348554304432985401750824929408218704779853865329897611935533298137448197552477311280504510121357766228836644367658700279692965208975478189549320856009153046866954165664380833942952674963614857174243277721313563524518733959505051811115879757026347696335984958263710096472055036846001570210132390480907237248151451913844715776403580927112418043071966036777105563597245176097481728842390596778427629934220163623956830594865638987511148998908426469467285628246676620534511715083826873796800053367428112192058528768866723659887157636920216773675061665774053385124732016268362359326571240757529694809552213084641278495162233352233039335013861488566811009807142216593015662899400740078635592999527935416170524610147554871929064880926272617979789924168810953409257453664583075097618413526900357197589463762513098844519534351402277619279176188599462681932216962864915279461252505824171962068193526008260450319688407163220764793497797918637999880252148193726426006733130185591013166848335119082404597579710744347316843497267133554721332639066149615359680283995255053386456054769207156508225867476583483238793898064506481138694634483877341945252067117590009463000034279354925701219494642508534278691926612798529940240351265677027005451087078623572577694543017361053930402982207281717795135058435649867063773874611696524428920228374493881406714221505197396167383873644558115740122719386639978540737551060226848479557706158296294714038795360847695021026738446917037762246786154321862586414604723065011565152386795389634732979512180998635611048553109283758829966188427133403411230106159810183445687427591668804135285567323735404528032923849083186656287543757507728086805271686106919753915127658405381837120077656490491665042147867713993907311968021532805474276251335176406591302662898949111552496168876877754918970446796540649166874342568457493898588379093354102588750281798953233967114285379580132352691581789733769049920964524691540065375646157810778751296735401938694537337882215306671190959140569785148421361488895396237847724141647469908809061597251464009084710042279726290327591194179546296442836066054617331420466286051112920074906714425599563117627919925780358676494807718940213354692644861086051012138978503251044587308246475719041552128422036065825876657607924702759826578623235037437566643058844669896827336709874528228372268433593164567133765018434337009936221669697736166660629741605641684927706854758731043129970529600189583872920195860359135500189815259151783094920905098942759224276263943240058517795039008918319388718655212210908451948610921916317752579458634319832868502815925567311375012723665313942603177178807783248226261495723745087351348590763649547907407919181235623252299755051805406427956942365068127666812255667124958464666890473815850169469206821368931035027110199395880691399267026428513844733649009052657302488379759323360999730398997202541721871479976094844214491505048711989270760000996748725677480532729921978872818506855848955588668718637886729317420340552999702724790467254576646718349734574054688458635785400960727489828427150322595381843926801735519312090025680571530248318992741481167047876636657327244248195947928289703769048135863878015203849007801222699746461923231333547336646386569104549423126791784486603689455654100371233415175527704986709720491711201539276095690804465812286245004788473354222462835660658564077678069617917518038170209880290531766297262245553634662805404146562589407391653897624503354048899665602623151818035010439555932310359129797281614808232039121677249844794739809598791413710529630035369370883126309132810951302986295172412169325574051485690980490107248377563383538373677724767680507861895837970370203859464579379064884679527119048323836530217402024770038304870111340269046192896478353800383663840380550175756992430677086125413305287490870661052660794430926235661889942735204069723948854245622465114924995150851511090127711038498408555232196874234554064809273628253837001329652606364973454263442181094594094765400204155366392235162543247955136287550532294085204506164663919985738002004633721661744361903405965360268340442168543254877761233603091253149151906956113113874375395568932244515787793538938018826259463256121795095510355983197713096160649838232605671552328826446167911502893278844805969391258605375517555566297716138915247796738881267322704502440882182666313520999861319725144805818017303811773267696401088964165727410696411518093757026767613744338980220283215587993154079009985666959892202676542944026115071973478090390404486986428929796909978400455145061553569639035803223532051083209868924413773068012808270162378866444013933778404493144501605645487627384780267685133490191314682691278603249538457569450821624433570906062509165615572656316552070350085237261426485904606040380613464884535910821292931853981147031077536125230955074362945849898399704876421009823378201810460977090656850059695387595336835485732437082590818934684193311338729763630000649165289717191756332634932655237404809953209845141596125492870663980387449711924842510663994045424232295229760782678907523827594838862825345337045108258558709945771225779136142999171086597645656725676420938524754549810216765165687747242449278584012274779861330270278792208402040061903682003361702248708827924488291950722743511272759005395109021428255511547415960765079911503820584499499149411654997207570072484347340052526982750610686462821458650105723227092231242093628932005695230865696835243890811012577631296839183682926309826536635568246972785099063746301850463807509450171963174600315387911828367784751854147846999661666831672617468024991093924908507689522057825279062909998204828226276397438327230847902444778641454364017790440305304580091658203358989864237342847942689488082600628406366785515860451460812412474701135156624654564206966197046467553639694447689350873069319875751199702922395033676114455005208515111476626921981518155148398810686877737581531106636530312444712906067653243220509480552872448341895882717665335859687143064750638419604810550476324277786488359284911166582338019254770644931030059250358471670600336682225630038915483093061769062205818128467032070617441281769588896842897347337729326809634878576839791640468390454417871563234119808015551358887551645606060404685286814431868773405095993705969829958329335345012739576544136552184242156119414984924624855626135933954437893987233968160389115397404154651471773296426119252023710408280072660623378387346326064217823623387413667993682510193751432750155750630096146057240843896071224656926869316274817400198418081840025482044898537571463865815293642051979597504268364636343067169357636988924059468105750029480697528007879705167989812677566808143911743571524901080830855907105262192534813506836519255536026658923491616732798811182518121105350963413742211951206274920769039851765261339995831227672712621910499334671518334900851950115072081584997027159270190399118572090496530261800391079493997799722830881888766827237995945590906920991703832871156603478654907900739595109467482407404463974123234832453755607950121355929110452837520901093288001246207729071139057425868486221371225502210297930834072711442924823586925619430874303168788078297491347975956824010554931508274419322650101743604820569198366220293900729033140193266960095150201804028502103022556869443870228155199915946909536471169757687865866641382424691146938629070513813119263975881952370803287071000381153161959707941531964879983101117702261927417490939093134900537643018926721064752544063193057754797223585439378756001836134100646988392896621932604747830069229587570024456440826777617223632292117651830828300672433685111049079758335563484506070074950173842482064423355885721517084726509291358713952597086996948362579824578753256970545245794677235291108545555159680192782229418850310790450235821990272036677550072530488217241977973728443365472847289803710704925343634061959745743319991417088455316375322951201244445682531458227021374205405858056395920112815276370985509185830579289993043080584944474063614731932091766651436013477399665644676658740701227587867462410525729479927166643116604312895048763715996431987840676510965044882279389625543827621309570796283420813744929505618122658561447282845959257557757486593890991114940025567645687984875108325984379457147030090034317955740248699459871881918729948330694911090745564175433880748045919794033337073483701906156044410401564308524532093812423865390914272693491067678900863321994610530034452772320904475256117852620735387934727303035502884131252121787691505954619873745112955931043418507507996449024857248429647105765947624106477383060168278220061218733885003268977051078614567168945283909537407048595515525634419794989507599806278825120621432166289669330394707369916235579943462053965647233493316276169561910791237682829180543904321958970024166731983204421587781623796165294768208604089093350692967677488874439779856263532002683177157016336951775329059652874502701198936617928535540710681717690915313061231833286274310409826114176752532334185802650858334470789747785532421273542325771314444834126371077134492202144274715894838888532809439673928649727963549045654078760760552136362029564641650896028447122425986686208144207550803666721729646744726717375932294680755379819344967280036873032678950082287881783565723649718828060773105654889202904888595224759203262714381497922362839189339572886292902211491765386935270180783776477977052220195964403666605565714788857963062808902578560183134742154734873758220871512070555273376402942610403906945295789373295737450030242909944563107658067177412909627955458069851904506239064041563872518604038755386326960600944995056025706161792205452838121686886408586861040591141219214389586144232461585168689146504261865397322329758900549758137032873642624135963420482239721984227184872240646374273277097516316522904365679534501473019186307345622748818811642469978488943645872892769689499400341208073225112054455972725237775776053767179232830549980342873376236640024311092907391008112009364534532858550579137209062081016685702589047766405954336393060772521811133114872025722837465660657622710325624965333470091400099845017379494005089161296124346452596520283096144306514237156057085901119348859047087193657555944117597096499954250107659687614428092327770059290065138552835280167294649526844581190519657687370012099060127395157358638900554143101740173329863988393892237535688438788408906558521297491888509175272687288249983583792110273708335127146607554033233278472474948954674758001146326499080367361461300477583001868256733919615125276820209150486497042915356018412743833430603253640863654227575243587679159210622339102243106655975646405346290312582125045889933868489040778321504322929365688691862214305746599530874723931184794341228446631670904978886780796054465253455636452317151849054980162720158934293853816977942070429884951710123317449401665013981179754883217590388022724505025663036394588148069272484812026621351063091229461479183877860868126681751182947393580883488050385165305878804046620003217332556129225360223666181857155895979747901277665764293293352303649186115427863329510553191997940420559331654083007751905025519468405203513981526440634821732792379977348371056049077917342058283566804388928810359041329459733844026250231589433875666854277047409339730866012237402740899210854615716847172135535512036587512656156513740451226318272796341820239104022470549549963645673105098180936718224026160981808427482222521016646561332080461462492140241984955891233334996253473720189250021094274386974814205501010723908757249229099210326318908238926242929871105481002207418863381716906543868043708515879499320147452230943993209297094958775125550612284110300514197221649115823280335523182822040563830998538473007683655505552841246430383392933436116215694122216412438875122247446310911030070159326040153092917461381143224291788968280155937279718554498494370832138853625777849005499616881559025951754742422268585514306082860247737712116075892988970284733421700324270217288065574398102082021478335989033697748997212181805480316158273885742267668508617966386860163949624261962720077732306059807321991504104954652040433934471964933747301570864602064358747979861009880855525686444954002207140454999827605193492548397729469830479344798829187398261608102925421080828500029883374075001302735376411411082542618764153141405492058826750672130809240998196546966475394777853679375028742815875003931679252970510209971233505321831913950231019392875143456380724607037523705139536107214831319978092692838963204660456798236231147794869092496567435098583927601977465670973348692599706423201373458416349337000428957255644248011259893184314658817102309116557683554937182507035014258445379429052845899556578333463812235776113224337751357839084014835713403781311334512043247061966372164591966572060834043932540702111629034561645340045876743813351317209877119032865780398288790001977579628490786124587653120922076114984379166424066032523755337869169612465844855608209055105504833742013591506872562904629033589577578542360887456588492442383896636352256994080073873956803673225375351269758908813644668345997610475699108711651349484894868578427769826265372577501261943268462231698407328307666933195200157502224923604838522437409324050716041097138118733956163933440882716796232217661324223285498326780251161242569269993501056699095796477996824008487521984269519405068099392217585241124479744471787805503148103105721953427240513835408789745506248463439597940861139961652290663664616418577453425519947067247535634815387053038158639810362789742984332686296639995469266450129243421456765943785165530297292768830487901608343375303107249311793312586578580476899100728332138765075257313373071684906460242638820534317004282298951760690344525430875821761538927636184254092944036746489252464597615507588824064282804119914071771194835655373143098812111554718129232453006596176945413373808720275419729793260123164557937004004814728168112224901011253378975696824241940898306462338600000485558900700863256234199458071335677157635458682382225997692919500827401941917348107197040032518558448631958230804188416586144081542617780326528405457315260865117271613614869312493405130781846805022157115243158053173930674774800186846113331120677393116057563861423149145660424733152806170331451711451738767270282915142491657969806325077535536673659077533204714607267073694407858648843017609450137358668884971482746541383606246419102984987171651342927264980473858458456112486652737778707682147454269600150781936979695497492290279325240572044155825606519603142085933617569117278991638053972498179446327431334328729180446253318273523820088741969499281948445341533770441000579597363944652985224823602843846177765589510089201992944374861633889501824209746944920894205353570024229147645103470388638494481265421578030607805950576409349941836419448292197760684251271926461602128106843623103507273190939063617985563024589140228521760631302313527946909294911244279360172448646305838607713916945425425764991014826241989067465071565906505600602734107996326638792203123470627378921038613722324846694015370871294810636175294933052200345127902424903982808817610252923478505461210566620271899802562507958747564431338193781368218071369794989414222307229879870380714716697335961861614268421297628282841473632196261094360911760589492123322922860792774708669594914026378397173284051531513065343551520976254482301756299536936077678602822077613378409590314777093137055563126008829404248217947619806345154044988076087852919242343875836642504606577933880894553299023016446656847255149294903974548039781707130595031004681985441426926667488704899476371426383604363679033345178969918256613902245666931227977661523292554273355276123417394241014522679517146811230223221004035178635187646182701178679974177002900452055757922088381227157324506112253570830116554420719085979730292000496350702590010455895730846079519997638925567237091206410847910947552181822245928357129554007916120523775109887242375655743905817105030836575960144664885462883962140142191721975380878747597040453113091439378107408467688407350219368439592117556940355085055836931079085293429430638290888457369952217129785956700411117811505451790761038798961435446529398184956870744377251805359418485237639956044449391060881296786396726900646095000687416954985507644255258866156843442248093570410565925407701434462878127602065273085085495695783571790553662749928910856997295590812650856022485899926770701075369060075719300416091210226588397215418909340814238427441521801131696694396613451553907816624356518111169913279735655172114734922218631232919414271504605294311026867886388277743007162724335766043741325298494449671165625573951287059392912763446195697985790128052551136561070209810062091113284267842894648869911104316775436158584909436128190014710935876067964128530506691624654546267157048031242855845995513625506694695122083299130173621391517364257928608427461475289633396893262471088161016948928603869917352727521691538226538041999698540248707254467702565111927470700747563422587363383556967656784376395106985501859852254522704953372597500758478624780349009073700748022719315727174186960676715776122161574934371096461882262933361157341554002437402412944038750437738578921050651093897678488583507985835195468759424885802581371402432726652967281159950623393589097579725443295159215498786503976040014477907586383696992114535859626513914644265689794529665475258683027433399112613949700647070476078723875423594737018597252077950465149221572014716167384338547343192168721268829156890660981277752926798549366124866656048585387448559722858277283323316277937538283449201313620460318879650086452069025108376589412635107319753532051917897030185643695663803625859193337504918572582365088065444093883670846932730474475005998591143257848119855801125321656896701992100386227866230339401634012954414566689496473166869655748629007614461163280430284178158748981186456357319340986956719247901030862073766246205299106384208008586715101669632810677544830101070544732135308312829144912918580690196289329150480144457261810453097542139560302815409622858321139172746908882035297164195231708106069493499285820213043846574238203285884721818835174417359072845166199428724277115894796986532963522674082525644619537401147939618329614621952592262723155990733234263397347605114585615630997855496549450004318265365411837652266522663247166502068681741823665699582178254726862964619025757766862660319344242787254231336366405578413729639569040020693913384436748934361206238923554485929496747768372549213154817536965462575741622468786367986179561625067381134346199492197531749684293892095414304929080378859785757787664513626786905328975799447513244994539650894992412564164619894163138956115849999644773838285862359128856845604254339690550266429591127807273904450201059424247576979307530587060688219285345468824203593429513535443558743786864080639570396662783432318834007129066455577240155120327152873790495865661099767025165493833181058622030499398363457583860525758675393669064784281825812190765120565998353258945264478653762745927037955793006254865082088785889156934238083667261401527206886674903470782785456487214590028032361795164899988838762809804623341159862942253640734611386021690898574025404778958671524199695779623519912182313981884282699278418861474996073671036715722733196636738055170609003376675092240089000075187688942015407235968693275631304829383407064310583571230297674028680872249677082659191773877146113051475482198683912434569819279447278400912092189209321249473450469189743634481102204452737015541020266420582556513596087953257457631812298340648087703281305242027833040045184098488985931569393038120503733883940785931644201452416204617052442670837199458690201736890788999303316575417931814794367515080159842890207443008950428344732923282384704419923642340506100755491392794884257052501960718263984724149917010289704657313928636152480121478512214982725373070978672148650118053118113772941348186651276112531411093208916448299922324879297665706161075509916820052908209293134862844292689281553244176278402287221482329603806588191371533449993409634582209194512175606201681492648719890080612821215925859802607156743135610145578897138530010292664664953908681271332856231998102889427074797171228360297484686822358754880448651622244672578341453723173559024240375031870048087580976325773081411433007642240810328111091624018154444677355448218739017173397900222660220412856732667273483209890771020791107212874823956843685725796979043686257915049593250095081946795518384817663609625189411705731607843915499693205794899819019751548471673538468124303622229050901588260306200486626354418520696249483489741618200984742630359345255984547021831889187159930480580017700697161791536215574093476181205273726353117412096852096397301817896773680488463757471779529319471233830318656006829435786754391473440505905081488165011915317297157462396731929892481448766394620093966424750185542107650025109196710428455174066899044054519597289576142793462016873867151014973328892454885475909916149233477088317232856539614126821051278378153599289350348095816946697747445467495810875572663872648980176229171381299508500746537324711552721561280201133032718670733993298769281343654896427806099930030756068032962626298312781339421211708745344697111495532252116569983230535030020716439053843517211035869473537793488875503575227186821539794809585410911664055005380646667218663019819261613134195846752217488169401700184386141101189687868138801356525849333703522219970118790213691502852872816260094395139374028592732713283646311719788617189108575354319422566015048690409332849200907756731841256849549186252833286653651356126051234635262097568333325416236224730632676629253625852161326446302559573458039657549918915772291874158585879657486399571385064788182226530884730674280811213300410327541019032454097374027879410642771130284545922891569780233422681879431578364606856822815508148420286831675766272447358920515736682939674524245226944740376001157730976167308337162230956448600581099265761092808145940132452380361702110595920942573612658797922451427987194221844783355457939175910460070378023191871451025681611418015503318552969778048400709954543928659980623308231427314917606287899204171407045990021760704503766064500961244777221994056700600118952249677588278677437367904695703415060470069936687574772043966355651389989287466531719159748728410937650605168501850235421258821993807576294033592920902551668512284047132253408506596563505257086307166625379511588593391721613831472286819817254515061895048860718614288602743566859902752916488515817531486177672320270226173572447003934892930317198241706602601914262990747285274468366290388317211351115700476477971016972215635626224225930472108401606200970992212440945943065770587657748427297738683248388181124392796083136424783771123829247341688459123186311867507349795503701304436301928900913641292496224753603927631929687446094412570848983724348637011187199949505136992739034121049252692220086499258482860083782141625053241426586657428074896096094982006611240602327637283175830646335991547219770314752228949439179778317207518411831999750532678689130181475506144822692759240478061247876637367956059263717287438794382915014447042905699589396662533455810714347110037835131726461526441160022849147458477817242213024598324638400278345981170414026783866639702222559162212939476801290570687071890957422685337282290092353143362069993268650639417900883975241617501887999171943076479414018048355954272541410718928050831360748477134025342442306466116768830379249666281563754307996511088101819553080418144453028364145713324425571646431582581282246217137983464082999499341791039183126189562988673706300181929384406539492067114334068971272510294687276796854532258463725350164526275381414061748548563518199948630367409413252259640222944806275853973979335708112530759073517197418945033800472027422794069867263341204720295264154565165308659800238335004367237014679503386738544092852812197522788359790242026971338261195874013602410821952869169719433062814862770026535476935067596658586748383963356632927835326187294553978177765172423057736008960129733733883092114649562956916161738035508410452266248699217754444090443103490058175947948558772539387440227993256282993664845510919358942784781751720281474431108852395659717847602693127363324028577264393845199813007175017050867840153860954440331871043825329559558249343871306917469873777317788063104994858533149588860976040283542651580848009842435417018373324410613921511041089489328943444669930839124497285679010234361088069996108935147569668316228265496624081816035009142325865427703768066635599852272512587854385997791638408346583052133464261730281340588821441004957170170386638538934271440824665672788906824078329238360011284631346737807384367902492898083215687234156038416279692309017893930357204640618519128507037629540934998648844145076538187771775617907624644487986837127656531385438716837161183604077848149387680174564242863367886770093060430044715262246216017353126200653288157276751068004845766993500069545956308031450274892215122504727401001040668955160091094518412054969371915372099125908384315440131259202525752311028940871767817216842901706947415064476150507070790177724560925107142881851075881508991786972884290427740565027196249460507818088030311675251832357373955652543587338200180223978374308276130537719048752298005153682108737897779856021385448305707631435072416436777239606754959554697899243645140303074850213365784704155343470978204539028750218346337571319787765661389218117392451204509846198580944046056436110903667051964273746091036308476902163890976959296955419442540308758617799907303571812597822659100242748329254663013668916716297196389072389825054487798761161571267028060198147079879409857237850257653450761506887639544322446428130230565908406416468061101733303766533696414284078867568289645822629710599961792429903118226630044977405174072409749640706084167919507238142079167913028975230049365202497432118330990189373672565250857061482749591742018733904386571818857027628173738778982900241848976814003590050302496856736778776933042867480575252390445262930595607209841138009200596414942163722951682839037832286679453204099514945928478025864427561487050119635579957989634094355855263113444192537820551561953092043780129405526941276128530807943678664832381698942612487887919193266088731790202018219514058888011126372249502355137479045643243842939080332444248180818635708703242180948396761617874535921407701377871933417484201678931997596140304916861091235020302581882665835456368633089803339876998685313866661539226909263099386882662357282426057613053741658219949444171803775622930773245319942069186937394856765159871570665021568296855620356944733513696200615054595111885439945447542860829468195651166674584380194343321635020425136461288785865619356651064733684062937495289302318577583111143856350667459655351151832960634572339806827803573324295606511959149646064864911705955949470194017463837890929839216908731820179173536716600765600453656329468726719808557832570788315831492864757812104556251506301487548953837924950050537892124106736605054987938721307396143233931532771627375888545488442213588708756332757663378151204138546192832298912500590924896328577564054283835458576734459326829804023415100428230220188513807614172686281072144706313745227535565442173787761333429694030008511152973626707906678243068857379917745218007389101403567601351666704123339761314423627187624027560963910929692157115735848366566326146903532730344016366242227318905254562935695709815117268215322288801633315168294646750313688284259357162519434830658303378266618879480870315918454920600358740505441262985356858377889909774323230251639588224319596595233355853780288431906052913422062402621080386182979253294270818353875260995707031646586932304583853198281770535897584558166812319067514731532037601651166238055881572041725344364403752803632434599365211256200427033876178428241278755690298017021709730351159804798373284025839808699385021800923685997138089822012815456717939537733974104818622757880143449599888480855658041116267696572820084349707866714895531295749286205715443206441749442942756705668179046223014049663648792362021395903986724572526636914774208678080468782687739645132074502185416212146333551791840269043133429083552272831134577601434025291863862901618404275966835443283316035389440596816130845505118882194144781199532599537988091631631457318068220658201842828866704212327721248544857170545234455995902386368611389859271877353911494812508897443581296698913051245045569260360008788676796029672704769001500245186821099249259107054541098515343034981171568074314751178800374438583370924614357035870468835349642473515955743194988577054340839336645144259737105436921752763794234486967228035031903866190880554322676359226139313004741492074573076631000224389999443482482106844707436271791918729833711903785836246238101565413865527996561235781202193386869924256839984205778667369330592372956246984181603684920416023408899744474104582053463888419949953953387133594438349096006048686923447697651644400508965368816357499607686803315381010939182676303917323116589490248390150292030152754571479536126299456804189349427867842207474173913439901610536011886446537916904402240303433133580377490001488128778097236008207828122836022918801900695888799192355714094353574166777927023486481834514444210556506789777969021012211439862993035970717288999984717520153200632885879246895783503697190862391633508436968761174200204608572730217630623354456566558326207291816060681620552902003449229380989277244620929613709123397045558868511998088994188647033406926360872086963750911059563041033162006859774414728120340430788963977504879232845725941317056329991471609319855621592436351072782687537353457630422511550704988861574019676575445851808415682885593967393067251726266216613619527771262116916160260210572547547889236054367451710084649346400122333149370134781643897725304139761430744851673657951275920106743289053278643842440925614902807436954812789555755268457692377312466941025537703431783752592331515845030419568235822421205990759244101743999381617370197021435125872702735582836617023300936597159712935805958158102343350618653207722060102034020633328128738990282651492731177703512047657173039664166842772672583428884721741487564635930203742513037388425737222996973305722570326498695321804173589656525467612745506338207186958451007525923159327066804427215633063830195897522918341372770540211474285540950168420561892591715506901127505705073148928042091676393559235336385120119689284198943543837091764886259463874489665748576793061236254526055693116797201161011182068263362003451123528407120542599048199833495781492264213161523153013646925443512828018009771757511945700086672293546820542722772073197860642107806935961522232238954637573998766700975676168497329023442472228980089231280591982358037358256953439052953432120729972079840712317247321907475396055494669584120058323124202191715767370774079329406623387577005626935792271126602932207470334037237050146178499680939196470405778104531737529398744622684653069553586267890462395112374233486024935930371834436564327407615126846920920134915930337899225246965174699160115169876992129388526044486962766864817572417858455160586626786472317814282189686939608307004896868295422107014027837744498731235553308249779395432171417149581625300669557329268138790385184531466644528617748708873952565088569646671982799284026099988735789550530704397240211840330343524236341187042987771672100671564855677213555361981903594630831983456426484487425167634399731467493121487097013057814619255627779208412134069473758141252707228334555686079111526432369230027254540908659004911997882429865717969995517054646559745864268464894170799993599193451339669409290408656338209881599391605470672961962405446976933185176704003119628271561942673720404290559627930245648956901031471756523914042994134890641279447653699826213976686114347258164737773030434488142818343441352495612116657655101887665047708452293850309053039370955332137296278187775264431641560515098887746499214797887057319808037552359268922983464929489294396873903460369319415867379641200244252593387190680657401220532652197268457324665277182763180031923178485275369236180489422667316066233410570460871714139766740605952665701223478625862529915938717105489924467816385251666719448211883239539500857922093186347727241113700080745460057531663488516371915622055510651871770137652882198052595066265088172870168941399121535578509923494820552816877837444121851877236146861617017025844023762313828765864549485885009222351682618375073322908873481238326456401592772985258624798468589998830212462392085862169497298597607095783978453893418571525725480629406688956549814629534749602205242603878293259147927042660819180981461754240436426433013204081123378514592318157500751413091438918233860949754954397919565185237074602620611417667846886376491475129384933547294807823986543666008521752999052127748234092291224910449859778650080389933301045109237324822213646316379702774182002948312725024877443073745976417933237397884373552197359118958159914359227432418892089694023964392713873411915724561802249255253879165523996113669737273634847207862810457923045655932810841119912294311608003469308059183567918071943109865275155537747519809770840206577707338723767810567827193071588318615179938447697869062351116000730898432848583650430261460769003562320867424138885527934461547177586175975349373003873496755092085990504561397757267205266245853280436695836860316646614817976491201061051798804313390761294987740872238594444853486187073331619915651283648922387328181645457354366314258640027808837692757521425738620545565557020006942184080543451296749236214283338901824642798329791995117597575036195698674672589411151192043084188433815012120914657842995712591399288470704726809213196558052996436566137078621075337330148756230018447686943561618813786311125263681990075375801241087224080413042444195978171789123907898169248018969355060776811948067781267950396811944646043858884043916301540093982755675799555454348882044856755541957476042028290670487035713457972440935015119097932084199836520613185768897557448547777923295604279358594055543804161233995441567682640562166640679811776458879440682159503747648998481982750812183096231888791214516376404248621700340777289817686635523125800626158499070820827420359009633501843588778498922070743051116856406344683384140786769713178833824687820545325256566461564571437912959384030745688010003962323345584976292627112065051977607629127100651495042285580018048680834935505741724453991297900272709886250934044519080068736006222292820308465702006337813614220777409961611406142559585586793566525245181990508952637753545647579735371753284325435946204994379965403765990760877221577558278139763567863195647759629564079300324621051410861807525682568271424258511459051344676821204676230291605389027947378917586004517676540470935826349185712637962523093776423659296762332515363998057746930677630898179667745000466879943675733776649855751220385623764501147979982040866855151039366204319516860946976656803313509395361328859385856249379159537109502647165217048585426720946401142983754264659213004790589737574414438971123122547213529242199441436698471330781087430791896312846699651979176982902975735738884181107849558709054056443587090387962284507082363610947893349499611983653932980657367899950236109049706924396698100028479831245259959760365995257664575529309014226275603088063366844094639211573646072230627396938799594822301383727181607207180231640408810050468881948646686914252690145289933888913464611783800939741816415740919740133583336136693943415286737256417232900017144568345750278799428830214717992014992598890292595598114344507760593457134185897809075213550146708336236393274844421881914236010923560868417745654827362939539720820405634949212237490624919997584208862764834609427390362304882787651213517841548317292136991440928632521789426101327147184367343132335756152109146821971536687555230450738276878881193337244326698501322518517896414812874642082311781529257822456726187304384963757426188933907933888627214322291705872710432378126091697779904962519330338762039218904026639030851813972217447066431365463018213604509416946364122555380706245268468230111302143127445368327756964043191824397052791100389954247815049657717064527757838502629220273178271124086269068380351859098732845611867578569617267753810289603379144605996060727224462993307883071957989591661130133645766006734828033913721938837835338645114470330241925489506540349844086432008943507734496952325344820662355894271931073055873984910554185810779169253394166722818801371541665434723809823948571837301328015247570414777019000467582871295856928794596492355169751021034649025440288667426131519948853421334579191215097528192405948278436442529765879174560053534443355418883483517955798668268158942987900820181136725664589352820326382194093893675646567553323215853387910787496547060862919702567756989687516962783753798058533609396659668727690841500544077706116962362972524448550867138979832747026580111213708586119954945709935695758718251273773019313068321676118104345367461208208536182551879667602619426371379755342968082215972125767570129365619278787174255714581141590738489935243921390002436358394763819051433065281969898766619919740340301178629940874802367997201161792387692628185098842098651061086715374586026347655657137620578142756377031623171444812576373985660330626454922165400284918854001932690568699281703851950682819804012662704813612603997488329536269745656718676917460621115933560741247134746863959256005555852599270669175887195141144427465884406414445299251089538852143393291325222585220367934614343160538939702387100835827892591310493184509670767199402770834945388135885462908897141488046170918361315546287840547385500403769623923846426565733944344051932451512962531530903427225465102061306666698454907482831966835551038897865825664419671642191425610043019279254486730173245985434114024313135964197627392483094203208472381738279615498997562304946303293313280021253195779806429927410563193964556847202386121475616237130777734721537048734342101082642172070329146485974473326950855133487068869005999186892511391883440244701040253183309916232200493449628449450713381543953932206266621238487368716946149383221076775081421760487186012263211389572537579884976864894816835932239403120358781673572757879191824541915440732139668036123374848473806479303372211980252436292375169894264038331936872694467373936733261171162627163244607489872219390731546532281076675064455328064643161987330579223040166555402350112078879388362699567529562258502588706611275999143286285854212571631025059618833817013896673885087928848946039479779508592085888097700372672100188122343537169479548738260140437984149300330862215704129956480142386552680297439333858427877152263031822912714693891618199974019483931000452706402716018019642822537511455351027442473376145018922307078344941518176383480999438864688552904892966853414010811060422044055126050415954599698368461853712465889457758982757913057225384341479297431339288816104855174146941607242855189548761349228925339234397809996854725533171359504416698440454156219335366747427906986864326369129331377841075457656696113419784666484018846258320800996762111526589074026357986541698906000716639189597243123696688789200310755404695906934891004471216452456306538364789037575317650374082892062506463462945292567235950234744227118902449624273825625768008371498256553465047329232577433122828798048444498093697812193610079468791603762622816204317245307494455644713346677047293512376034344896388069252400222898077541213224180771020678547076533979148173181666340213682934992649936471422045961573425459819177826277831614272139208781182129226947106016393903850276174195996988117957265495839439218985363316424142267766017154858948079152995623144973971103615457890797381651489795398364869847388386175674885108367547513256272169400327967009360648441918654864758354909283892228490279159569681969979411478926841250666018967826989294961729089913880345837268016921489628786195072105290128338960924617287316647622024191230771895715796967438046108188672096587140999613279978454451688337359364884094054102035221974756901215204348380202351527002836518622605366939508560458113437415549055446775073543661569342304388523625698429667971712342449958850664188604556394496156901483831803641837018395023031342924490575440682381897087676191937906098720857508122915204723304182224154409665077688082163731485396553518423254549826909983104897616301652992020072587194715233194052806158831064294735244962914432303944459171550813301533582722329078937581322481324474476487965416625696681243317110074281752707607772345562639854042226920414751434835665710286019257262488973307893479622805066181341871624570306071458465185140496888938118371112148526701286114700829711331902409308707575811893751760878364541369006271914925088865463642202605658842695349287420552202812330329498363375247324595964029165928271977425170020485270223593733241841465894323181831223337083287445748333439373589370679739225446840991165131298887191993787953481179636220085023820664417514459661406018054538712090219400883237996225328855376083575317308197463361732429886323852093517107076606535809813658659515014622713467432862367120465821116951074288655175639790827014684141969783526454298146775619822725262666863227299136591434131355722503080304206988919337920204250024819303120979152756871151105518976536303326236397427569820179283098713027108611896055493892809362167708296150193359489524917903305756124758571704903645682516318264842579752639307021866315687985126659419802610028671378542129785519869203621159720888912719510222659233596025200261744447559625018467779975423703809431232894975867529308169358608475485097291614897061173307553795028565658860806569795509611410935935195209480920872152246334686146707924562844128748495078545822593630846748417603488093310179685267464588030218730805526181598013677256118261762572790176542932377783493556939357578936754237191169772571330988540669495666485926123100454791820728624772971469109200557509188130194053731450083143412615306502610915931486896600662536412373153618609841433862758915365571030177769167086962039722104083514263188845579417672740174907968539604017062744274293687999324928847169727141621490907411893538140345443512677839319622428735018803671158511314363873364455770125748235506212398232263534072555786659866583563206676305123958928851895454352064253425209883306366093480614850567497710200410309348392068258705189630542937956505537120067396478537796882607430164545998232726451689087215419210287562059685731523791862935785522409466913509231654717760204320282990707625833109327501469530268026313192770365163136046092005267540954000735519736175644740011894315227477209078140713204669495588692694640677124149718611641687897714772591236018999188615804450306878263554945719920014306324053664772425393605338041324111483847369356511023703886961319243839996341796126534453853950686881033138066123735792714136192890391648181883221729606537085817157743235141234471802779316617058638133718234807593194505966994446817897153021115286252929002114165408457131192767737141675462451076214404621920716167347723587520524942052765377588468185940439280026646515796126572626887263710452189612884845401840276998233418644719908012126670471908414330282338409076537913153872911115888939128155627767834306159316379602790511798797248329334062628454384162531238906998773560343465039855470995570236793928328880806406111972189188409650528076774405134316470178176522971923568092848164287393008277854715574754167264854721893694260054086011135877963381675540540727122374887379760043929823338329995333698722540327497635126892895539526432474862435923926317367027331461471498655944860187095905084251704976047916998547866489567383106038425718338680811257128402669219833376341484558853334013570198648278661710400411201276723317925772779779048497741668761320625794424703766908327069195941306131251476387032858129776631261657135837772931702101355551989332425519371640991551395148022246776806839828656874313126437388622935634406935578861914056536991168883903399589309213701089713760581110940988429665128886211938065022402438026841377038372401157637598756698958116076596534493699684719453054712952082121521332677118109609563481343615681874556515728762974841939833049341594471691111721056253290314112292726130909222270395454990737095290797248880391271196001843480428265721949603922138191836166744700006552405789522556952176751958413016271650917472908757441620583081790028129962998310252569985324832759470086705058741588412731093486759086041263697038726297896934095388084613065570669465012597464862830113815041865288724002035988957765919728255626112769248739903979622885199863588437819275427398796290860710080902416498761526045239651636917546817967836161644183247119758395700157185716161550235812293729283401292371317368669013663508910426251130648340248606716483762488282771313447142410940572985699925639846283814456267837153214246025570655522867524558962729724523571779811552195225875390339420953138496825823165004658362346077100621612897984099922133760708533567875047061382244033834146821193886429595465711773503323698656974785706249701857503775307121127282411760610612344898643452918175074810386363534003592653705236174453466734166820280640918317772634957481267908305919711548954679166525653592542069227771225195074762347611704803526299573452782778431249563081983878895985406472684864984844669245466793101842876255024957200495474885226308727236719254115827657900884802940760385442325514996038012269674305811203295259904735441215726971008077081414810885427509267998686801682240337698847395591982039403150957243754788440643765133186858751980002245885753477566307700129141809833529658726018521213348576094208096389563254671321004551007724665754335719476073901377589237570868491619210462905693056193131149850695625006033317933206643825804207713210515509695448915144621005867263465361817717898857264406600434338994071968322786659107295078875637199423150832698695963245162574321840709632577453301572733662969257756128020118371787331471415000979898611752117518943411204468460486440463486528376479156278687592010388670498563637730515688081149796752179724454015532742029141074357729388548316255571458318550148352615816426740231537345519515139650793243010472837794735026784432918749482835948142325367313312400462286752445528654166515753690330528262962109919561438902639175786567449044719182011364877866723004329327421857694160856687240851988077743790401407976891398431354025854407833052833375839770687363305865422354959918897011928023834426609472633206227977752501938783913844587068809088071796381300433430248722804283729726516492920499053442370492865590004360333054803816639159432116400941256810413220143168667530198846502384651715527690768239972629434684748758482369563072301099238360827589053176556622608185898836319012853666414308560067952564082357672978485966203528343303779494778937328452783374484084431562278625557413646102186540319660643944123538549310095902307473055392519414318001941810798613146663510224074112233100433351484562818761276889896628721957601994408090311988098424492223126922471696046451679522869908365339109168091089528860487262564937433074283786426510142373510756111495756454116354504382239613988705590390933280845299777541707161446875489727497863537675295806888750885726671472300285296963824074276850311460982778529828069281397161008984874497828254903101013417125853735608690825570111050904046205305683023617800479390699316727743576962501279111406466520978726589386417310404369664761415462328077082336829537961165773755164456710633108962035068252552157554431141154966904535903590111168689046558864668111862299694175880251842972028102000424070541467489304202379049201127070944536476584827848795339279519290091686988686299123145964515486341450620647249960279508217777023206493753151533310295054324180130228771805311285406046296923913761119471630304001463322232724367795852955786264538512179912921629045326169925961659935519231956543002150683746488947192310661059681781383357531551972118938151715218306851977644984848640676939911149725086923757075873581839044395816589707437740237478873620168476481671000349135479978697396585441530951997518503732350576398792418658619842948535808002468964140597565528794190374092366985632215465178002496736818469212882008167230004581609620275089831607446061880597746203108330174650519840948176591201925483810871917344457055781200179183994922211387840008677054101130491475825689456651625345239748573748719497512804563459735700790085220504581378427179878926515182158929797454373283313180496478294416200101781084709553624796204034273630453237286854025507195960174994060623299632134665863755974460383147045356580477586079648363338343470354127483823984760266487676279945830969100628085091108192028022893314791385355011741746346383260945695938064371417866783607618667560974901273977604131070938372266107622691377351226099864215541506030060843481648655484934142501661334363917141727246021093214453983342795299372925489247341604356192964657869440430435792050093191786510469164366089790889132967350240114452109214058112891346912796983981264834296330118306015485586594306624408850371244903212603139251975602647475013156957397419995981182813398291171764909700599089408372419203880278460714721983345737928537285697324863851405589550404908050028870448024212740703059221313024799286101050087105597547353064680676724017417765490496136984680506297834082025445284461736581725684463864297443010971810436829420580322546408716826936334972634677704981591774146506933507537445924938685613250242352540324955989389709039788744404804644330558996095553286806994731304241729639831170061293798271653558814199031605841611437321207155250329608776498494701850262283880345976944900458454670195370499317438309660737904443612827389424993632366584606315437109122291998385341133857457907003425289617703393532296768997415535302352429773982373393971305002816564283853935295466184873629537184126963306230254903092322504931375197914393391985402435578084196935386044031227610587381046484500399565613877559081166196248343758712975651847333282231926880194209167565132856554069085578104688108617227265831262603698688870545164914649532371675784618314976133877516974902871496203704672999725711540006589774351947627335818021821827545321615800534823043396971091885775605451867722885398565609941371125759815558418674148763430870885786128148367195673119532691010973755299768933790706433055845398567997643091842816489929490596723259750482000504299404085796462572256620408465069268043986360566607055430592699787024215092181201209379859423343523525280674667114079704764327834474271313039068830292266497401799749671480372621821604161608351349983336885332147707243143934080197595779703299293846304779621204597093572737935173554935311538104854333693458520846372015014570932956684839633978182684829136753440251614611610279881473128243699055153628680846084653610870661564465873759385831295132376337215034394296710553739307821305097043698547171293025605093325242691495251355800629908668849617713307097427531708909464813177069239855015830747008224164229784179209047771068190955804755801965712622629877681101185893339384676075796855257876338912141618485990809361514547671863377865952947327482219240161170973321820502326885553040762877439059734552500489205780560681237421147960142896288703355849337128558872729916212403987692101915059254946579372348037129283753478101727340527784955672531480851262517147396815814872070789603640762793178362522379720450140375890596365357315356324419853728265283095235547750059308670035668674463927545916474525731999051533586105868421185951284099206502068570630341935432772937933261671966948369271266414952091558342894686047729184144433762761015946124237137938124671993008000846212808270406356325417421039254922716680679208316625868206583325126569986927631552536865609718840178363116847415883181669934105617177011538834958311102911250235554466013750696497433842309207694790232864368930357196077357134252250835851970671475257630592265927226685594408336502063429405577064695446274169294789622767579003539382712765857753657302664835674609827557450570622757187202844638164975499723996035980437871217741320778237153182492288108097591108724472586821669185446136959551814243289341842271945716610475874591299150507944903585260957026373118652390307486765167695781849074655220687487545352733329857723133142075907457238130176645465965265712993690202731548896692334521890937718381353561044120552261805646717954420863077323235265629568297428242451949418067404391664447593400808231837285132854094132200481552022183530717173878289208528920344782750953485898973114044457763629939650809806465614787885400541121307334355579105367182894289228428401819671045634654819833215992018260878478767078558831097650080914003645281903200147379538688277628772800543884241664293856492197225136380572404431131623074759718341212734893449952905631124798714406608133091857183507419362951943221832059148143479943932432167781171989918039605490330315392781973657996132930542756257297557123287155529213979881675519172983594933917750523071367715298844858565620541732353724402637493319631230244317442214446791984279323655035370885714970407205919034008349285284159939954823061846835905046385886328912060525902831628957775744868334795079504443460808936216899451115117964904577027529657181826165764269990961129835722662914224060965134367628757320461147229493034696470525954656256501088551144042341228893773257710763681316529387955703886258648907980035783773305686509182908811722731380782375446152041763049791483546556969264153733105036125117803387729755534953738900312945391261624947356390250957826694270505316268769786036310043160104819363825943165563641489022963443576769255094611144770898045888634911873614135417750421243418305970148662941217397971686204743109186112334831538662670639946388726650825739459495228925116047148358878529793708514584270608260296833835090754460186780211499335529996819685695016374067327716759090125440586215784170950637072839303748479479325542881751329099031122631124490968741467612391221430491028299339013341002799880315298265223645909801060801110597246101738728212272370589290699732665945087027138594552914245701980881993410283110772491725520242351522979181653098084988116969838542069302626646202865007243606066205424304140174233916553894850430287551547147807628306009948277746518104812327676871134445446353818633656545536348697192387445384863011242057937353588104883773654844645358868854957443719580269223325886017459498564157488714981507129418654764033585604439209559054920111329031222676921187388740335137594028885533144138107611870157603971943855757124326794714390690858408827428538616541774445782251260171393888854942844561056174345830657279394988872452186769337925273542749281740123150276263619224787590115692002138825395514576759318285294723849300884349725328775610854828532873920363923207243397862457169127816430155888648178006287620953371093157145358882873265773583423298474435225645810931077084350630111319211667504364858287125761466923421340983308945333683176463538102610393505890489777681674463850811437524245521701695575575365844721593424882316011304186446025794272248676082644966419728275336280891377957649643237462449323654951768297889022520950798207893907594643323003203121594791959911835739196318193340960370505940540105167900084862154163863581328421529410391792201815123590909950023961127508932445325866930415600880452285793532350001410663099726490814679102184261029865328756543720439716665327304393403449778579192020071698165347390629390769186961284386846085179220154172790712909334997275393595272780383200205419125507857623167244460612721684017232858584933267893374270095493664527194490294000059036564023792128892742496689659601287465001167094605974724142436243342288674267742778380358449575279490286416767179114715312961925878388990587374103445755996459495325153245011114268301881001347430931290710635150830134594305967689026974214602721091510919468526280877461585907388601139540559529330129258200417016274909942751900238636414003698674869984698026492244325510333193125615244518565374957453238470302672516128527753258407961776744965434648849462928323904368707924233491974873453090949094832552404154407339695969966747424911607359466896336427778865227882042817798442088691238765377840220809595440515904371504926500488739667725742911031370635560215738481669890525931505797034187678141556821414330871253895157440431921654974600962894866847679108570776696313611477778293473220564650213001497383852261856756987826565322575612396795042298593162236917581312029274844926955857831700592639916306455324465113072565184775557294720456269394846222738242020511825653635838471846560919959085780092860275582884697118596626556506213465348087435270666274277625922405126939151502534774542453442800771061940027110368541846172000974541321932392784865614272894294509375216806112819157050992371751254323093060198714314359566670077195774634168417698274651762639752222571734090406805805288940625756272245516968950465536596983817041953927377329917071845586996721627193721923563877559697744707418269551393065623342585997275301208793056167829496877518517457429197858654448567460293246749270696351799694829545934629662213503860028163610790286896468318384193503940047053983806268956879581770307660264665601853933245409411590719901058094629211086047411127698699651161687230946700492569466147311644582168029087340492802705897118406901040160023193026323036916525913740051475415607405522743506779150991902336893280716761177546994606334271386002866082973652976038321851412435403028318251311359238581499282772338758263099353044163440089457064869156680054082678210067938697467735730884580721824851911475262046490791850301154047236627309956695242247276531499417637896717258006123461637889291720813430952338233908505641516370298301938441559285890318769307396246435803615965350425102896905269707198227017042197599902942917047273009037029960209887380664986033889505275168901049917009536229517083382116479828372357839369625008401977112122459201805369057365157451175990197613996152105108824782092098639515292879075713314548265296752038562008608695562765180411418069011730570980384073280701231808667382962219001134414109511880297513892854329787936031765616535506034530128465427672660524145796838836020431532179713760644904371709404550015919030401040772785564386951452760694675791351615247367455939130891785940941418860992358619330184728283896755614933789562824682713937726224827463858827538452801915758127806836051371190426906079962754527122299943069455181190315703056430359916902295018403611478542575883141930271391032883367645556369877178335387147021892339286397679657588258069112906947418043925088893383467806277279282816643060958107394497188893458851301381095544187080042759974470062747965746983880195215222380465201270667838245956825595291816546124149411473898408316848872865639508563223985619611563273278850768793034290101548887117663432531275371830167349698708563118748403700770257312595895216738700892024636460964185097901692638959458979559692449369497817867579160448602625827108740330250822828697620904453865099096516015239032419921104231900214202296445898860220191075309164465745766617846468056147038892526727991722184717512349975901506628033893104831704483868043084267719153880573417850203816920067606889108425789987073477390907525168048770859945587774353989962965144494245306180034178903064616898971935873544463450598444912100180366363275362673726542247993851950484278637261348879040262298838749137716474909326642995661658875168912305855316882108554752936439998664812744598199742814443328184819792490623430229386343344414444872386342651300900206204578974094474008200672200765759089634497806086593749334962126063664516869999023882186938987936512558751531098823882545347455336979987972796179001201154380615354689559310253594982697622169705350759467530715282994628983447993998987735126641185312003942695915862211799041768628556679705407614514731615971832653447847578996259883940909819677295891798979695829088387151705503939299804280623213513810236133243871980445795292392331542037902662583597867407935133769524456919181126043367001420333560980531901962627059007500447864918213387388980431516228740992675472360707285329587379276839642665336449342361036845440896026688950412122142733395364590699168326984657208317311098715694919769357288174201358856363149642439009238565474279856159078346715847961410616954768389839548166694954335064186820777876696792125720703814685797063663827497850325719738090869900289487763274339731129146752631488841755472173811550221975507643170947031608188439041666213986199843455250599837871166131140861187073552061102581662984112350594686818860992305393805737097648706020500739511804646315850875338023295324653455493941722522985637283851944893595474452341531315684161125875682346966457306563709164180071659295549302179920972921475354508703800042512676564524644521339827201307348124966920479637110357415594535741445300089447292911170636625496098244358579700982849622859578457338309716803682522434884948366560364792070991903679933444890674043651681601724101629702243959383483969827326366330238020831419973112328569182388743098338109857930439071442674163871401690665831559153724728025793566565637566661590722673261084198599644676805854435073937406050865686706625006344836475200044086101237491122006031120643840810333817895819492903272224442810060085645005281041596238953596073646189045978309290979305326289139361568137870973252525389969524254782480155632789241797759018513655718051711760507399363893189365990195962886416775595022651664600192363753810951143271839363329580619921355775013974727120188557606123342382825702914478972875753554169309431599103289875929824581204100012673710236701946327543835050073534444175167837373463884349028056187064986681103631075482530993631545134094503894785569250059179391429772413206250169678788758550743027091247761280897418339103402887383313295499754118949819586476569917011442521708539354643309548979409085371395703379556098257480388967084654643329152805237622379838658471473721634257691784897917788812319847808141882635628835110497676340017643700712546843907399519334100018758350510315422171796322570498763927713053331124633077159198585818631798182169079678979625650998033780411102850689733763150103565103870430452261432686581318426032425526635784679328205878586432992530016611736091399770318285901130994729389789571432238032078284848574705783414376563356091787955858037902010438703525774561102029512744113369649498203767983421066705677872093156716068220199746043714617764868691634473154397173607847077436580904120021696975804401861173566881626984694284168840905233332485275875209193984015528618721229081015187181316567441866965682012029047986662959240348496604219029645351692297434396997162520091295774599495700920744141814050749300074427865566542458787492049032784000501605351763224107834295768407004853447915404617089993068741277306276350061394047617245097021463662252391818023448772287242224843075348852057416159571151685560691329387024486509889040965574578798214045124676871316987769000107595511119940035321741220069214080279058297831424265520044208701375733966205167501864894143031909959288970618421420427450226859156161383543762693933666656582718587079176415777995279001615850316447578647685322606690100656746771831272010780211696985873898894559870494025041456373138734325937522486877735596211173882470537671723019117851447256996638181992571715702092433985568655296096388289011835304884838767198266238631871873489070588119156478583197228361506682396673522641451884554489501510997643182470973610608224305833384885268947305114537986252179761322121876904296738765720664483925480678638504344280320304171702899151661041209133467042566166182225433034267905625702985827187293217251822425373206579623470037195557648039090699041575687561506797250800360659856220475947332761471267482929202107786481383286336474450605373218351571453816881942046410649104313218735028974247644476816879808699198673338584886990997067217704533628792541591579818269149346394783547512759099307805312941211643573413409574776022914422450635413123970462276113159743862538297154029987591154709406227120461753512740143640643049892256810308550975405076131832963481089393896882242462610028873655356937368251223338743559951586852194120978106399491925351934905011845500861619895648520536769276609243519051591516102639122299794413002386864677963319486459270436932314493610963902504969938653371697805178353637070558988975693958553731062912100480474117571123969155913379224931611371318505753449741524106713421854075282595266597373215970004140898966536388172208455623341957951031496379194836219884758117365462612532337316842721009574026901844241904323351158539950199114612964523462303308991424938034414912337119045906208570693695010194499025181440714192851739457087310614892110617668515595582774353257275915824568223742758641552335113945162093867148057040801525274386967609152916033001822295191575970097919630502811245640361779727105665819425172887068776586784957224775428776314515093999672323917558501963368341590090206648714817494311221581880856994453489235482890078153527830203441230583755059505142285515915791309468091348292952223388525788513894467499589883724932469244715608115593302760752745254093377527129393270040205776259105130589033211831003201588594822743173448336032497359774437550369894454555857725140491955754411432057678170852775807893840151410596890579405061440073836604472329354527931472236874689607577084404961081778827111805409859207705800885811698691185984573741817938244956190149735294505104185632030843042641453718986827043591949719733661751101206214882134065696709011058318381790884973743849695221693543791960769107917716284368473562764523837918089068791205880645515305644099325707270025464265915814086981247987818708882915589317370732822720769416790662245442521873236513344405526752862935030498887697987395019533733014466664638589053844948792194951502601020668508861561654690897551118214700616888892256740743664622446294902395229564132317466557386278750617089524956402024700251646505078288812302216376518800477390100307226896485018528675967576632052911994956303850204713306758278327943917554555117136581173613595527388711772457144980775305945120149015250701193113483660949075278851644895443689262768249093019945340027451802377922751524509128977581660803492489512721866737658067378091883573979503383113916511192324382531165638564394919588654475608670051085021354237195167123343399590931830825832105987232271942569272861641859389913748012034435928056224559029621051472789368175829517888343585863555017380950668283495001460754614497201905786421199653168170985473265534206775901860069309577585832368111206358525216411925822996394799156098623530198201470305030941970276983957494538530584406947074265753261880185543814890597589557499127716602974865745873018411385678156583541709906563784763518706924672276191482526690928664668950241283743093086617480395920373302525858334970641066976386081982427058496655959088088280604563882344310113830452258991985113794712045883353464757381247747249420335890869343925140734088127562323284025667877853043390424084183786739119464044244961928520940066766001098130509218317900009796382290535793231418497093564825682811181020811956791915987152179255841169904737285283145176135020498911908066997561654844286806100734708003600381974034247748366997062657914035439618789670437296346850896652895633400742967060152231322588236737323209466832844819917697270412054505533166307065011621701701949809684778151266859611600206447041966199907319613550853934201269187717218139824958396988256464665848409891822236166439426341048977805467390439617555935474756905019446398175930247852804389603353145725208171043983613798352609901933487960572576813204329122326175013382663653874284967161018226733997612743928836246087767267798655328070758809040185154597005274467285380194742665031283822577957259970457825757653976678131411038020350732237426088505240061136880871291807652873299471218279161310479115899798794832156870018887094609279489039582728255179541266930346573003566213347225364032882726891353477642088397593061887236694802326704662451927371147114198322185351376616866575561902848956076946809575039299605216694814845765368050464864744360987636083555250827508423066983092456559502423955813754128622299646513506361651775461390876868948337168049160563793459313448493609112008042912297644491648331886441732665537020940859457751248990793300413448023143078150524645432693247367538098673092984388643675831267343269993528987451293677388733030639329286647738584411230570673044009970417323269231074840943444431158819399195468962378652869182723421669155884339416007799214399550394202057290762796850444811237379317093678485016703801956067156150903523987554026543592711245335834827346913197710723662965996884731852434531238255957520187477343884355295432181008475678954131339357804909477725779167447449775702313791150290195615997344060104261006119095076129078771695958022949689550818026064679665456438693457097957087625613053544589679036669448049480482233555478781754722778177961404158426567274651391890074846411022815260972762503235099353720121878901161963296103156559770041898988503159292484765045748012109232217372871889380815425694853920949704810695973577534303437877960711002846258204542847044812537099281121616589082551580459673366813852490307517229660785642690134382356760716582128852547905867137868414180114167784895974072750989173498749029563101055174210475480138857972343429766077113062320010174034949893753549398264334765553133955078864888193595253379333560184337150560455259709084091079106448895457576772659709381737783249941524955953095678232504533918739538749845610238420606607300562274518126670939237137724624224326924353085393596734356528662998494210652267272024799520024785429452462161449841051270410268205960265370714220691818695966711194618452182117041756891921416529331620642424365389432658202463876498312781154078583691893826977734907255819716010180458139877907943705999729309325746457174888141788492227708711564245812824197430514820367737742268430321736594605838730074416772358568007152882542330627912105636909612307711066875827093413123530230889352635401408791663635202182589639304516064633105997773105383540067830260707331387100608600979773225734536734947278561157972088804842286517328187868092249014878821517702736873592755864736092911415842605597631730233733803145779986786834541486425098138952177326860478751219395045164627347491703781134660209485861274867619452592009752244000150538718641213721259233822404597521438364258704875032458329817225251365604284941078417156029063193333156383899459255307614733159640312668340148856126050518907957430108332487041624414065989115421826630773284656031207039056538547478993670691147112384325541655542346672202149420737780881720834677643791992154039572278419852381504245265669671465506862213296042622311055983957269376600137891130368183256343724269034985050094516785095932246927181268396150758154934747241886104574034644328601547305220100907624414015978140124098462948571142168102922409209115964236165820175720905197498420369338580306729150902261055659432082046301724157004669464220665537502213497082331691480434311778605917840154812990059184009977370224491578274390598662693070631785063768601845047769720518773573735814003977968400120104585043149919890348066659036512886892365864078156433805916348528950855547344565253963312322333217854054187187988981927358718233652126357636006219486907640883012959034031813606889244085758287033111798317582427686185470501502202921970436654979943263174772377363521632483431748378692553464369034871927294985677226211007838075458375459711875314250814359305422344240899744826235117811641279409659730046239619865016575119179642491111262078074256348576391284470597610084432074306629996821971214794187610482419523188775341079500727867772227038417374324501722887227666120217094055476055742911935748211809052404965173077671155019303922947149839000726090161152341813743932538046015064922961109945750486571907627413790236750541593026011859443385038075836998657854016125998343246550991751163666835071712419513939990303491859763596692285217195791146342933414091868981192380343802684767124592268899570820854025126902732469207525321910734673492837394627121107550709316936651818470965590321426463709930044034916595425818277809729322172254586279120251502207474591740931197545927128697245625976390574601508200969288001003311928850155653598312012907083659893677036202580981859754102598931169861691527816159649447829629181099320081289495181185549833325132766448481098779447573763187936688582875973958193924288291465927372079148895477968035798211381104982951814788305335424095707291114425119337569746008720814206624681599155310554372475622027637006865201373093374827529334589161284694621646814558363959259055149059763262177375946165508987768033954060765333591622418294139663437795563126666503581379067718670207419793673961471052591861439246719014422189073895764781401667602659569714515773503123769453287102555073380484298376454820213096244332264243689758912904126854685563471985092771439863321476466305497935110455820355298012733861392689648898791217932200587558972511491896581224532553940297208092479541243289937222522859371404683400773876608793963916919954591356486501075119019144806211166002769689628094596588208317396893772206978612145881582272955396048445953170784476998992247361520111262615027972715834689662842539739301538668769111792373729999102867127287032320491888834133369008567201969192596900741439575149266542846329409227532344862466419187288700138210761093569536351497617638083610540664282117618954838463122573816903666434465207530158676744001725408932931411761790171854401344277768984861493380943584882204532077342941224827388377269325244834245602701310245074225884587059627774950813749070637599986699042081928955509893410499842485898229200593391166910425057513856897085311098860746300987339434828345555339448715418702690563354965929163929125679413319815932566162966609081035381437640321526724088801555597552513601644991537137580897047017631941910668032233623712355215064536595892158036377173572742820011168787307413486200274894932517206725998848828171210470814686809118616837488019065021107353719620890529636383937679684191352934706129952840832976627957778095389253175226545288001244372026996343356163020210517161756635663596340344060461021867885914148657054879085864603491597536796391003061588626043990773117744713551760514801880327850321607370662625876364728942355370765193337606212619834693608504330077508771173582695706387637961135502202042108321370719366513567635419015640078993027094996339356240781898147147902758027979879918256275769030561430631269442745772839276202567240893523007258626643167157866342962286623026726405353970041064461977863723877898554958967549629125489480648069478299191897363247305470514514913087579331631548413312824102848983388623464103269758954605575473314448845210527681937785141772297303684113613775374971178869612298300348173447949684569460232406553352987544514561468048702093094166190173477213843342484443291024700017657284078322130326792807519820327322729211299899416566343544326537253098601133493540690990815778837974206307082814086731707732612588023912831835082559152104792656919949439427610267139242518811953402922673448654108588268126648277189797065679373400777902493135945502462251648148870994081448526916171342971608414352449614297339994095885638855402106007046803922003902803755105400044594805239088066017672045535583856798487144043567039712092110671684542184134833232666925666112795202404261833859499142017538281350188979067182536946619131272051965144306554511344252450260683222450445232366350573462403453975860868598364793100728675265306562213488806391988390819209903329915764008299182950134697162330749394993762726803309706475231063661604200618306980007128957118269007008393007310154860908834448524627379452553216065806083489732678705952560339037108885637388554260945175969922566059305658049086389493824648579363679990405214804549664743784589627044028137539923264525855844186655533987103808540614859654257842306663846281299311955428171345244767960943820912652571839618517093983564051244856721114066298961013230295948639504110190509081568565427326083072986112100764030163365184881974994540896473895119447998060375132294892408940085593582172806835802471694011929297857132299293358297946615581038113338517761269046445888073465873384349435862116032046084829169887660212792952751465519192861000542919476169732067246873873831275138010151969007099695441552132749834285191509991080046054354391404917508556939921530072373978509268123981168334625090253749682903059305764369116939332166444062782640879291327758057324371900052647355574271841888366533025962256163592167035912361861190245546342068857157924618874326271590359038735039989873741754404905032422339355406791639284240563895684108562471295263273553092247718528031248178964790828866612233804020592186518120788058483905275192810624403733335127274634798402092941935492663033181176152632883435175399974738317187713888429193819048599733077068651081639480327020620745899158517404012472405624949748844824941943926469140089994476725925114797284563363651866023952757732757360763559818262949274421885705857879057657803920672552514915765883217330040670924879305708768019484476326869338297904923335513836031464884985785584759174197046143703786369833745263510245474351599642691777247586268772079363882060205004703895044809692693420190799193496343831174311142748497587475495124350512026031694945585223128137085158093287983785270426624122431876776215835155388366200090243459545867359289790317328300076888301727852499986188593355868323926527199369118971113169352162913279164830562748920845762275838098982307173853074217892954977641682177427831304616734292269417971039585059251807367092511476742006562240028490324919463071689383094742696513864486435674969670413267424794595159916317851491827177118892058915938415085256890202156922199875114319346649081341689332503386857008586609302872499390540276878443694679611947671007076898291626610540078551191059073719344238834123034135705770923838652867856444880512671126400805261166894770520332369044645899101780791791648285381979721732145619888944293189606523952991598760116813902918567015527190151148086471761899527158875613233990081725832931713045916498608483784403354907030955051182857556540622647012793275474249547938558219930747448688348041094835530300885822969872334114642865803749535002705167075907273840844037630712926773263318843398393254227702065159246155586177972547974471770578782225673279723715500998380420584187290215916407512679324494310457766130962909796879524609821096149120714137725821725822321200838142405457842615225843885079747387116381788438777427555173475908043779139769584236388486279505071497031008387012179328532792425580680422104390420237506683233725900753933682146749933029400817654935891652445129367590680743011450336353838775096218085952517124646680512393600290506210192436510104137328902608910751065147068099183513962875158447743684910707262157302919859910592771152416226804047248881224210797077762584972672387633206067674822241192894108614411295553640260274940271796159322035167162190300178706057358893005321842669773049291435359549350035619877166840015889164713482642832517071961848656810171005622952752378836480938988909866416563574243315728083977521828423784421037759884756774038185392268463183013303005838700890320578261519214181038096422995418676492503653177501908405100874861393120279168612639300308015493325735190187451473321373517423457405128756026265621636949133979892165456681730946032469878852128681742768293540698537539398680254086124181173056212212338717402082154718874382269670116771362217761735648552018740602462431248273027104675187995047073162576096117629842127944310429920747444799960557095989716018580347150887441336199962119982139195867310842465448865232552763207296202650563094371523766484264185881619623768797256250653927357751902655287681974508153121986979268336810362289219655078863874896558361828985320526874659338199988159860368631389891417894494975906552619625021958473937331246128590832867857465493469424333457595500479728330711482243600208768814342794266113003473217026659336677330288129854640420127687436511221420607637082398949934515601165423549189396142233554501897942032024638206310660270432009061660961615379258530236693518044325903187825687025117547565117311821581556196314513994575342769387186755463671705314551955626964120950161881661593434215078280306354130676516584812820155063027800675255606155282044607158039232860035150468775711431762845421040934777122035017525357384659629748368379682277695990494125992992658876046865580088519239776828739678204168768030645265954927113572653804114177942114006984813330549891597094281887322971459974501106442208454833714477736280949712025150967029836733736317240167598124541781990968178826575571546803071614200420452466470041563062721966207966668962714944865370513769844016378475438192280994870360341099587816627029750922157834363899027440472202391892131973620526426390937355495407874951739753119604948147530462036827321558084345934323737750025105922579502085556856241128680286525121821025295476337578300343544556700690350468020284228171930994357693551816453403455557116289976746911771639343709838355921220921856575892226803567443072964225703645693363189416142464534766857889457946935366022596509913902803003799420092253772296447758002560905141506328131931787081947290511331030907235278172494640439289124073672710548908682730084087934758894467733736613585453049846741853188724720898509220401593191659553930163521818894294194783884447398099821195611114467972866294232611799500831405952632047038938592454751032673503046738153480912514593251460645880943117112230034582707832192707640517313947676577353047929656771114731656717027726275561344876172465120231574401171120558885326476568804129053974929063128372362983602869295357061094912636068453603397149547929479308959212015465546983130909511531382627513168200491795031760696324303208180659834901097558283398086606301005252924403571658830192867631757071758083664221786483745846905008692276423005934871730749102200492334731907294109482584836375783026562663083566322666566772453267826141555994030146567173604546321712249114261648086211846981529365686045283023734908536838444969120983846177910399833051866559886790528532519743963199060948206433352721533187295388509086555252807803324242639226738360170885562450616947617880790950534153945748098403650499834073523634092920882292912351454964602343428368799967394204486579543740778985766130173218488417341107853509769684317347241158589794339750577505636986649722140619701781176144998246926630645947620669110971375285755277087187136999606646286372957892949523897219214795525724368569233895894297170759286119668141284268032254623052055762571155120190883742160190668286336400124490667495408637627021557531293736824689527949960016063138632262369081339234261114836002856834649123857379576051219250123635549274155058465409842075294553880135055558004132214321129352927610368044557493935794833826661330293198897259322715190954173141333059000743645678891478198817120019768292137989027539349124384176419061044854088648899198461066605942501350503036346759102781021044684501661721104319199964855840317472730650722546214866385534475559275312221061286091433207281493033590550602962192564590152612751467396653411294713816532302438853285710315374222663938116015360895316512613226640673500093104507193078775081584051268306315861038119719539145941892133096446674542701354614152520272653828601352682853659794212673020462682363967260875749696185101493552878951075477145370984978826180312708305910267611358186652474142639370759270757609783086112525857273721800117483468450631573099146895777404110862380315030179634699946733541660685129536315329227785733073186970783792729232494227954649897328144891447666453207505873885609899434142664322511616961211857102454126182058915604136893333212391510276479994023034090007290312217291179983277861942066041523261299183654557792476276327417930803971428376339361573572663959791108751091771674805364124136749587149046983903955690180456217245682654019787587707111821227843282566796326284281428998497204057811953850635284020041007486838823713634523835927464454182733365421682171329525366238187527502886045813589958015825605919137928526043067396191749328600006556987718475619476715872395327507019149443127625877422719938081472279936721339404374898453301741691911515202390181325781107772587371804644688003678956968141765013143310555287070534773117638584699727946794762733073202863171725857187006122207189139922919768419690174020410582172925845386866954091886419326890670615311176206892463256654118952254535516952095227157458525074818494815886559207616483555283216650126951233585762239657456323559977052277841024208119403460468727017167270907166162508405654553387787390775135956941101258957443015888209749785863850424208006403748933706675600462816671413749580568815164106128407074961337001879435889778069668793091606852323142664337938687181126141908610765755293770110320065056844899622403726844695853566529534748896923637704405707642783857419799824803971819207193868700268664858062000229403135703454802854686266708165639546690678213216457543869376856044593078671110133179269164395404836341317493853151810570506051113213779702085446630797528674976434255785612217257009888571832084837948801576145142964984979527304229472319762861708192859314036525722103273233937219172110016719202607803107351177934916288515339394169073733785294799291126392684723948683877562118071648679276491445790371632835400802970471776451429341892423016441154539452909147335784829506925282228650463234484324795259983949664760444064543903263773159165470004529804042340008442250286955614105979865136432098457885035017718184018246351249405028255973834137087879384633158803771207378235001784389525829630750476821083839789450583204660900771001201354951216776007566113623556158955657217551096177629291037566313513888286920012558734004131954045329305129892205843773484662172671147169780324782292544210228981422513763110998381090141025869779655482384626026570357162196848645837115828047082523032140599980364925762765049277367483918028775042363589843059440271226212636637655142185263296285767965877101801772689669147410854804320163571984174302163493122579438001077490669718291723120581231326604849100272256258350498368639743415027431924047288590009878224048983356027457495288651185752048771111256899758845247694794096763531595783350483305671128912236364308736604449857808980695593700301108806810844164647513384164982343547722546869311038232457945976268001724485350047229973644501153782379844274221207142460150706320270465737368836831333013093854135952386551960921507524901650016734279964229818503317982355551547345080620176036183236314667962496554201604503269943555210732731593760729594707385912994357145365926790889763037561712149298365166072777567672793047325914472698786686206807867389332416510794660450798676396302015725406784696553549525010190536168922111473382877209011764848577245002448270816292822166381596858154611761272927416279506107208747928731931628453035021911069070688565413167377939985430599830682731197344358215799943382271248609734377442023637246499456297315215892977522620490139729386480607146791338354589383760415013250068098401203082520618468938016726679115030863635275627828890259360615311841040922769051959271197437862054132029780208241694133664217539443151478467661159253039791623816031731987512143428634967921439052969571048000245403882449076903335234031956339136456758623277753075533225114477718286752696103639879799843351889221944547327452532140646676236764303816282384456673993278918163795833625303452336875897426543373854735360555392095529673281006116076569405987925474235352302365193176997777615471696192027879138447957797920870775163489211548953025443844496777343728028429022127181620788514306540840991652954676603304966642607429779386118417491978925941027345252805400899661026404802930974074093456472458481151807958098832814507160066218817777706058225476689211499775879789293792834774940551863283558785643485265683418323907152589935600913410902473135989448928455903400519416786431635169836578437431698793399062640772101227402056503676267616135103838957130017477969193803434708691288268340099498972423182844770753483248116463324911569471007871824891177208376859346011408742441320785225593830373987496142741717688780638452770548861564126853691256633324529613201306353045354368469996120856638257389083669991880874959290702438279956531670882940813028067059412642258564417542072805379193649666883185099554360035732236307727229063445850354205437279816231730742315739768586292829570259496207471771545979441377301179496290879263509921850126399215666322542231041471151844234307290425036440421276289533229705626695356643918289175553089049004683336629688326541567626342567858779154494806910296041686292622545561063780467186198045323439607214760308584373129043451502039071598581346036400918902767486164213551627235647028317268054207221671805353047357413361630859098636652394461598312023259671829685063009862848453165669697054385741059033026766493926764591080520817263440953756590980391962369409464983656388520159823647523057782044267194188390160621681973780986980298416370352930674478893716795224501560226747882113751117516323505724739865020919309008899327390447537575140672124816331164037412613254075713192322372015763845307845241919489254606220616869948479538147631960049096024791956101035690998280908169640054684228021520560114547549605408989490625481188717281946858224166050915763937481041677599591364235737097295142239057387467306268321285256052550054208032173670180884542694434829095222725140728175183583638209700046417394773385724996367767244877362793420743537439138704582110744753263478694688713394742218492099405169742005032452620779259748138984664799208714040637247247195173008639324353776807012412685605015970966034603611799041162540218733565078401647426314476009347980433260317951690493098985013820510411921212484012454471190779395074432069934663051517840982936062272565411218608641952415641825850291418847733602474649639327555631559108801671357689410055125821936003964707815707436128075212011088895183639949542779135311697734629206787454222689808795626806947387863461253583929675762764666521768106186300216678151662332473299385987137831999988785260270227483341758321295119116624500890423337364379913835807496752995918904455500434054787060207742518749286267867947163361238380171091207535099658721265355822146670563562433773816510239224566271432166812243336606876149320309005546565941519754486720733144187568851269231434137379339980928018941337017536962112661105256735386514772861882667990201033703974108769029580420563053788161071317108710212737594611607157229177771653814696637645991556574952088791500811468234887151047343328999804095987800464286479081173819621857161026665632133735698824456197727181581404209799800686132116794319644836737392980679406300702072650656266993878008236242455530030980515491331878863994485294023524513411277982944657393709773975338267535331464679704287631886345719446509243056213094231343740923320931144282304489254495332016361278285424562266601139655526397132718158927550041633084924305292875671228006898786210201068661228945016580300723673027869017642146886918014498676943977657647239715935412575499775963714535268772585532636470154470354043039022115915500729346522554231849402649977960083525002515817706246666398256260453802202301088695585851651825301024862995459632857677132794217694163519290291783417487684675790035190347532619927592541976955568884416612125737141455030210346280785689692314714529697412616191957005012188908597844557597926710486467317364990521628826900473069105747552424775212918647730032240694320839794698640706329183624564279749948868502305393834691084697299047636590343665763210189949884015728234626417985683563890576611116648888049951075568791918416571256624467905027607759297220832519123341975468921446429999548289797808466686451309357589189817827611263688839956747239225655608708326758485530634259779755591352012699832330213960123977284678151298479604591807996428273868047735709537531217086273097293689038605491474519640153506165313746562460404295643558131688569444044442372617032257531213448020000001636129183743431879111999183668600806325549043225854732718383748919481379466705758130751980746905560444112671928781587469732045931097928872921984025394429459817128190082631149461317865027905817483517855003089676076652954832250498666460200054169212217337591638543238288086745808516514081776929238207562718723242004830603429698085348175225955222910004484433865028456047495414031217859818414016301832039172959917983576427048459139908017608003523601956119581588802148487025520795587024313359859785867025898274895683217027644572521595761878528042777151355640061236818306038582478235385876285414239740811494097493289564547112813284609607736707504459496128071508710172876975384271488343217873251418861483256961276360804181280896226731937889357689957955311566558716308762954456419432777048361093048125360834850955980079186342442515049500511468432785266877482794142150062116092531930009028489677153299360138437238667027477444970654491253055047227000265849610332643246679945428876502026147578585376955137700211142118506383493527737047779765739118533186388308928681707001792224695181481259038010848724502736018701492434181126863099691976078086697961469905196086850259562831616608264989701470805919831647586551892267403007888458735021905551865812157609083807581998916420223937742383908574604374548073707704153444923528010168060617999093545222076761647470157313470265828172468932989574043415973957016566269852316055754551936079744893496805931801744105305705466839758595137420531521533936600984828648565482931566093149591187153154639317474411708254590145323532881897424809850705128164906345218411175700913772170242153499635346041036098375613132383080867975620387860376197614836879835616201868622841691664340748687945280774069094013278223181923694796846866416632710617106883672532388318141356712521567193626714121039955040135656704085077210739624459347694717251830590022486185733464539668400494532020121869469964905451883466175303861826792545329348897549406140327863190468676262506074830747043656458886449432026319947201123360288291488384987627096482572485922402989344546900290362911500257025385327104489154391775630544091931482992775602592832628145955311092815496283013050276891866501517351781136724551988875047897397610402826804458369625428103272659147488774154882647781194042422339250650976878159527934287563463780502115007956640248204386952120885534352022709028085732573912964064080521916090167967599895697890598240693256094879228435667620897086538383788076429022107983734640141300588130569819390999056719696993454960817918777411955160183013421074480126366959953700647436995912443109214884911232567392458149073313820651765259427379908683440602010245998461657379997066947684833557412291439040922463697657430508478606393774196110845308086871906333399665046630505460011180563636532293236165554036480274762727719721538641684950478511237198358638792090920707848752323814359796437974215241496007957580041100779415173045349475573145892769365442893171935331287913106390863372917930331636489399852922195592971112180033405193004424912612285177079936046130249744757721936830312933720066934850898983113644410582163021577952643592713492793346903019085427799218875988347462057147906141294225124033243279264832061726026814078626485062125592880175176826444980202240015079498834765373310861598606441727343102674979651794237762857856806676787996776396529575646852845138203160292403130253886084739953428869834725835593725959849669138100902504048070660912435076920873525136793552030280811567289907559547579568159209959660286408790925223361200821433976313636910745368736304722690000500580512977317259674646969505969817048704404135628639449458782901506224634562879674414649751403164305849463212326436559317887676493308241897407478379748512954682946054770726914118253966139286815161242812937441188392381725418995475103459602619333095955897781802226848270604426523887830332639208430434610931758299269928169001723682165678297931576091757977763889173990410142552988437522882376734801538111282622136758739651407714785988561724135729881446093029113879748311678357731883572366706046828479067270487898463827318292076744880950942674260987362448654306823440786033456931093482971647522602521699564609432528667854341264543868086561589326331889331112318815774235988317380559784377113079835166496982652137640119568153727387317404389248934540271714175709530087685499182021969983732732340791325246414261689697535703927924940758072011400032452614338380943444576461222194841722541911495618785760418217144523000112481485767714470749841928099195962975903084198539519887553458601184984912658132971902828853597917025537273633922996675001673585004001886549368979065285601074363791509746865425004758252724310840713179327499133583164252588089682904806730875695211222046786088386634751892924053272274311669291358061236281601930333595645736925248604192316133814955853747618920743513008577318527092618282367991657873177960234528219057368004699030888173158519707667813222492678518424131988703312086473968565359582579466625493316702168632489765661769349384036065378731661539390445460502314705134085034847511234213167227045977655722574960534674091646805306489992752769759343607939342557225234987016657324669984500683683056843195438117594239445057847748405801782316026059621048673315951452573963972188416483875990247344735468978815710221594310808086858912155815274989617113502491075842705484041694505804333617210566677521960202047571978169582655788994232013067407060315507014057391291429170289557501887426694706436328205298767033721784079775762676210577743791036033825500605192695520808421376111898834244571601604456907577748796708785096345951862162526317477902713616566037311301431276556028612733994728643672519891357435508224532219609142953973701363444946119341640848011419107873039480168524170669416168087206470916674337872591507410324536507777341235323178517509676215222004876891782291784777238149081903726233793689629898195369862895433858188713803593542650274133146281994294900463301752354297116354316163291163506959141182336756722595694071920168642504716867929898715692180723681092628957579678333586801200150811300280944532346122159641029169013456109709494272558956730047432015850272386931113336213611415911202650016072433485916449234262977627683363250893543005730669938858633337822795600718007637977225585684294709147067567958324770644068501017927031574228510989760503480277954735568526877320481540312510545326160937239395306311334043904062087200122342940950701805467463131422210498030958064709513614408741746339875302814740111364044341877892633233585821721179445524469723541619608712044314102529025975992621718485918172469059401804107303140421708292401575392559159726369777134272898753793115679709268352278364074286823028185659089918839510205827529718085811191949558772498439895866385850334089196350169137655848380958915116821142279630354448371464691851672212371208446343550828198400233206930707712157778132924456217200136512424289336160573605413870399461885456926250457978523903438866711889144563415445889184415735054386907627698573279868212850290699511525774090440233502796598852976732103209631290228418990908952431392497639246972205916801079355281584609239296752141738859867023616946426606649873304825554371872563174769049643454850623407145630346332727666929982489593111297564279482656876451303534137008411106623686665232598687212769462736587209320433599280368780069572116576235274301604727053177189838182523515191486198335029647639916126326440208068575846084951047686847088678210757727975084079370180469856681382201740680033488299188940971973718412237746078923650739075807635958156131675825305143712006236930780078556055958957892248818137440734704675359567768425087031429408438060759403832967956683939634888082827740204855720635742107542105826006633636531892004089350601289001896758125671057893923721560833258722505931887684489605764332257906199504055792448626710064301065925395774314541543757767859656633220102097534075258201178501759825557693140791496528633210517700050337477776725318048377769764413075021803113463306332207015463780852437331528749001851627454462524674548146238505360804531030739548762140486671943352650589602816009974275023292873417706522918751978334971108496379566057010187514843965908604923036021294258790287251347674617142263407474147333743574172491175948261187995149023641286596666290398865204945905684286797168767198672758320283229381162749440069610174709021176077971909609844550626139997548382597375219104939113130098426018427739963941382346827235103065792824456008306121689055688327839264032641298527090937383787815859996958570803358519856066532209926084004874430812877768653780448743688380498334134551058957777484879679786406188709427925633154435444779966514538020822259736191179402582603252546119193198687338023143766219648802990897536557713793311450845257968764636661623628700106140347171639605511753981634365067331009711730870182496302198694868577819161568397443335906286562287775419951944882022541582705755308162845052000433388336459884718246259623687874253001555691883731763064849850892786096322298270115740045674405784957640844357464942016405628735626111709543866263888714902208567364513368820198244268675652239058847218866589392593350284131691502050939077009934871506007066576664376261428200482588854870365642469089863676777287153660796347044534853788506544488360107200396647782168322681077731613095093079217864197910325668405336312632039491717686614657127943144509234560456661829825463710439016048387815982344705069756038488060016104796043299262108528448719986269258620152195458770786412447014857043771231476216983455879958343190662435458504571288720502213086860454118333030136179528236205225104695958937529080436036012681497964623272488065811356686259396679983513111825018576268426532094152927738141252735131542322724564891982125728901904995235024440523870933830515522743692667973902120617815992492792900167742577185931697636462637211478694086116883849681792476650833773136130144308038802282152706890524295123378907750370825789506222415972543896526999112536027248973917538786862370805424791936257517644240082090693820551295170326340149828469753193098417235386831185768003442885484991746719173181108668214715683694413807077897904726071611734712664149736335269586016872239991157416521075602798871844454934951083073582320614589261907935118346491265046567522447746197282108226495412265473211618690955956882108157858839436029011495713617002864747356190237880549223028199701427163600949966233439258407396391311509401842446940396053186293747856703691485329557756114369083669365535114028655646958765889279613068831458049717932016657576114181826322834358069246158926939251792554431234406217999092692410189705049036788466983728434864247755685861190130720853464169008952671899557122693833395571396494496225450892468672698640385125467983596728516958853108583476391582381533270644931614919095433332609430589746184710805117337437462867599913869954770025982699132072311260298302042354549068511999849573218977005344357248928540363874150360706103907288512544071305277650018143382543234761019348284596486980043338274464818860598315527204278310511384764988766918381194738299742222017202878973475444416643558451773212713888689919837144081222251272360421055409645120788805936347346111905291192250327588411320318817048355255965814912007472062575694665116099570568679412402843531997122009788140533973836823322787731189915526521796631487791712185878626687594066539197382573717538932457750083950303086539535802959650236865328259473416213809537634747784855154869702113389060777015134392056398305607331708833223120538899039642998323944474642317804642498807741059345728792937058175442070806611462469895308425264498732855903382732515818737215043819519094171414769884532604044192549693298123636534191735245291397070846179968529498457950653279364039342018181697153953926952968751591735545564641850709264685882351384815765299271716509243325997135630789746682889543582553514019206300088579369541264383360187945420660750973222025985619413139367519682204617871120972462505284567326057659792176769074556004557250599559145430340916891978245457915239016586496036404794247185088466358513405432665558984477602899142663214896765339771913635359273091836388812352219745638840919193731565134153123948487850786085109968674679832623004924663540839102813095124364388368010556114593790489286124518578164557132197050287180909046244531370471969896040286882352108656374701729989721862205312109233170411766195911251303654445335457241942186822051812868202053231801211580211257333145123454901472252192567731394992279192096181640507448054635105156383021118232503402772478197904978345239362148270179279228977650745112523810581275971316931868744333477448258933383355750497269924493874128023054540086093559414573160804793260906588267922093210689292225800940441702684905875910755338902659393152086463186746572808218981925414142433882029242800973635662459581210311276961850873493591097757944883968845867372620040763438668575063489984681516765839131192183498230734683223879267347455763354858239796640924317364340070109297653210891745578191985539499920579982281806884468822715724860841281811100035005300218819508439703787852321026731224973013641490883661547166798083330794095023639384815311432102647846267504195380577744858499548506457246868682359995848171222503181145119125758075571438679587138217270019339408709725840145378240077039403878249881522558532587471204068378889570840832289310601168195234161628896205445124438480784160831711561407415192886477742921099554253949158046426501935319525653048765499122173462104633827101706666994468944694550080001391971383459753064820529583374087951457739441174387501334004797522624360925417743325865506106329737697793283053489768405124431895805715194644906136218149846216523936379898754943214293008574751198150288272212056822613145493249873125102151232042778326249367353201866448246551643490385799423381904480721922402843214862730501928236112331009652617904991983890819970283679096878266793120135259753056843105981289040024058263220009507485376525667627517117780892704312820133248446696003774086095104543706131162791645569732804533239972668721423370708303558314200664205668149114191963834754945517497158281332482667957662385789914099544305963388873335986605167296699799622498754141968560485198542620908247759786996164304581673509111538824791062151302023450130871595962651553276506164243623667509838758465140875774925758002826177387239462631661914285837277532346977656581457011376964456822867579253111849468703597248355809762058527005561620438221952374332162576723779677145512180590069184600003973870154742031278410797677367804608941703224613242395255246263541345458833785969967520981926361298804650459718532625574285558185693771037267450747193800791416598684822986780026432132790312905155173680566003534589802410432449088289568018479010912389670138889621023031267851374542915273612455606160108723685494719129651342614838765509296449137154619803323175640012505938276636008702085531859468240281871958478703201904456471024908718090428712616737341086376373401124170674186522256524829537046987294777175279295954243866854131868941547543662182934792711536889193195011474326189500674243025011777235535980304654120568459945825525459880914420448974628942007228815230035274736145264006334302145431905439762292795775201992970462842547914133069278321230009744185244141397215463742511786085910760532846204708109385160204399197649730384807825271607606953659425346403229285807624568896228766499796314566476829939967705973839248565517223249953280409910094791616662860515146524562564243580359412223353385228751193423282053960185704950843410931063921481409890513311378965442352959081732221982744348962152331787031621191109056811378413331103289903209344778899913284886354205756508577147152108332708736589896598047215435921070456841573639023502439060644068652301282782361558142216116471180442716080861158887679682972951169176213777176584733806551994917816956495135041820060358946096061519973653195084542678943468574743737655197791125363648691618160080373932360881130461372102734507994574119678998368967885153654834011513200029338490679266863178984875379558632999132438505245933990521837961451150628126635926328454687021233883745115531704287424110106292799389239381689877393009539539705859480690836911236011275817691167457175798384398411976796940909358386724324338983457162363757918802465239078605431438439085972834518825454021602983895228835912588080542064775792076792651696598169366177533991519086030533967041038695009494989155756005305698064943407720342887572530984785823953895646139081736662117883492052439798901728693914007801191344570421944928888905242737020829291844365927669334443028058586412885434691724587969155071315739320411019857823693938209082503859935605979200180744331036332145117157872062685408256674294141074427360138606290768295795763162530801892661763455353410105565467395588135897872540819452858886749843598145420627997176744320461762490302324970029940471400800047383214580048694211743898962182263919160369155396537861445859996844479312038861823617972829422886904106567969112113419137476991585838726080724314994364575688631425696985560707717290464583948532731952374387314789997820514532529863540376889593941518346278764601957111755989703870595796680914611811785858292522709658785353834486196902090942359202898875226687159143886364756232971459436496774324206399328206505064538963015203185404280722588406444251190492809719271937823009836457381684614941547429830985557381983505542924219656337462135856392666056410435114619486922822318949381341315654327978623946114909906210110836875053145982756271700236968447555976938670752028028796381794130616701605610679429153742882012206554718539341800844610527131578413073157000627651263711564725184277138869790281387281869299237976972131162012688623842299123767839926911826094410562844078217095797927270378368414614916024871142290585748337372417080521292928740109073783894190791227771817893117705693425250540136058910703346731466870563294970085606387408274819400371336870744099364605518139419944068850979797681008765226415480614007414589418465967864299500844382172350195602061843689731113336528360416369751330867065085566396043380352403583243286762128735050836745444944332612514069963642785195793868705591286207782525105509754779584741516937021786184577359622104930291384776797749996803887393723453296418537393443169060629145757839280092580812968446246766681456950519155243788066155280139355716273178219101440169587973485105442085771985830065863614961068399734328197117286242217272232851651630618073267396858967475849320050424246969166576770181790344106847391080361897307303898448595032117141418118228289195050663239758489958280568470186728863551655635335223793927124188487207482382140346251095361684782053819647144632223065051967255701562956465329281011908206855578785194728458589317094228197624074060573058089228447183538054648073962279176921472072033680720934670289278514940338270725809924052752222508315372762173737194544721130051819127676603482019297082089589847041195228195832130066113295206408071103086031910809337550020891181862106532841610085730220910846786421635467520261749700115303533046116126014688283188518693659729910725100414992508412735407083167466872518485209604942234920899925005214821235050141941671012049402556011070060607409881441973310899005279402712833931365675318585943938639766379021103349357331372433023772650646342427119862047827351670852253218830721773403326989148941146140438022141362397189657344527171045292839434474064109479103349996020254759235245570859437244224820312836531041508230161418439978664676969126896549431520512099606436837584210998142053746189936410537158086898529143038318567007392535733405139182642851475588194239723474897686073260237598917643404705980001562405489812618844315898858416790733153379783207705082057966529768906896137999132131584657215679098704989375482260425725729437954492279718819953386999442638333014312259781942590680749729507838758182678922816252867802059622331185054383960691610235788932792055856709517495326635420738258115131775476527608128931659005458866419242950376557131747919711226662186663173113974247330519238302778684659618648829473524512195443270451657456157693483917442372487739948604506484234623759231213677186786866045322419670864673140766104856860083448484188301502839951302105078332726539241332135952226015430610964173889026975962958216214346392128438097126306879687910148156074399566960358083177376287672011083147041641816177672086234390124433048612537239668604256420902078444064492100921586162168549938965840967159218719077548307055222111401371071654850412300771019765864576664049066829246355036912134885582216301833794128581373109699869724198972637895919234616054861566968883038965578803505514257838397144813840898168293273922810083063593328512141647356673157816470618669270905047708944586014618352850045987311148145932766108546318688316697911764139988142167408496780281563652677328459662989944864006322521502487310198590245726781959272194362916940126816160750068825203296477335570225009022594988655474574158775929522821337835492867719703173145264904947513148594843860477912509114512905879048766523919313631492298467940095497410078176947140783012757130425469809140150576848318944041962709123301952495702471675349777860594320927583552429596338719514262599179558226904793369652214338864581686742269946657955496752542552506440721450371148614662531127051692681272229314661187610490325396675477499142169723118251146897476292372241609048785241488441550580592509624196165559871631291741335270401099795288010559486480056676235890784030319646595132028276972638982999849365389406969499202516198651747089012095362131798593077853107446194186681260499936474141916584545878598295404261179480508549912068426835246939596077405480683842277070125353602352779851104509984305923339465905703777699415848619370172876164081984302924256070476698033297465693454754307552183004236521243777820277229803921955858000433158361689993952607640886970680441508653633517856314933576321051174471595765354621968847539380988252226820682037555366409568289627168847524431937547879987612033074111787430149591204762523557899311732442146446725757764850707643001421482934983835832007528837447188662227649367792301274448966271174135941400093875427207898784827274529806868224710669443833910560596161801238865693593753722120877783704332261373826550329422750952175096670783556346961196214450004339544024580270270677691500678213995626336976243390473434359903897193682939753957194851552079457259426766965567820070947812725456881336689897200753036422339224272339485496806139695075766253444265633958568828083940761350499832245060333904802203402210766804882947579223482077576158758805378091829604145939643185548503099686735488555184718228301525787957833579321471658532898254755929220826659267124709247847118948832249969206727711284262678734958845996903548323579011280488683436988653946260507990233084434216896182879325636426963583217970378182434813646804416827164664129173784415817453594140078038067468884724338372901395891666790610938048471618616458798310031672283583542027654054146938006321690157307811501462588782237874048271721701686294539655462761566288504217979157722998358295864364909406441330868845597666498639502016221927395396738490085503142831815768179796862873663163211217827125223981115842695111068750245945607574837054557192293938671168352406394945983366679093791228417332483482041281924547418672300966964801760485068460686244381877331827698597687779933755042372497602216007070210795690179793708454670108676654166723947346617739873637645735503807798757444954573773640356519092631512797396801752456956021600081911633837116652370083859905479651477051603961722738978109198890269728018929519007737196336657797216397168427147990516655225064303488495523995729061096668706793458217061997568960036629351991690461642009242196284510926063191086636651521161844601850376031070896364120792049401050421536219554114148957706215872024446536862458489585518798720987608744603271073069069110840579486336801324840429478277485092794439705205619074815863867058155274321138079296854051296492490359233365479532274438950116602588019696681197757305605185218310517196327491811774117108655091891325794517358861174543644646595017560919702433993286262792747778226712902290897538659001642893661302228044113869416017046130269943267586604357008831551105354695696571359871037497495291300974093577682888345211629859568999579739430440625725219570556102238247633077247547666420823918091887905057277327138780588334071559106523932095042218035887392102190583559469341781080012957728667740202430349235996549980460678120669277249851720034684070830580995768743705803069964798929326924931937552067761517866461490555258518220039431096118544167045410388390943983966094120597304998678201499632034223473431308021960770984029963752809280834622945973842635299156593690480053527678152479593297390454945919134095802963702738245256931724805300083107076099456523590304074345222608737532868616669132233650866486903212977513202788862388376682502621030919433678967165018708660257611937978594237879964236968229393430312519811724197555493676906465305714041484788535373930790257977187304767471503863491795757791111191928960076742578485048265722380444620573519266654391501952106268404114602712237839425263710793066931355576126444850434116423457546730136893058615784907424619524522764803568552863216967670686449972688752453029593648985775610670533586273036131715573461634014127145879031631933833912672180389725489919523385084453622976185267597884972470365494996778615782856293548756630924925781109812181918203803698448053569176883956235343557316261044541582163782349547947158234780813465206209334975865775230273911909985187431214300611857264217096146060972995997547210756126382139858848943451609466535858022136403373619320703907006654728832511459178185414927974505845730874058905781835684284413346353672599007409853600949893183266214263430329978016783475428613242567227134778462765524240887120899095921361571677981356899823559026303337705231294739302468459321877900471081141123452999261881109343053355980943471422670633247350560797251718549237696907058733394054838275934123577820676396574227755640305773961929334247806711522491864389388648906980688549718882769533474136998687967275649541641239709342486739021715301934575586058231625382530213433223110156536339113298508522031879825497262037354526734464950102185441746352015031267332297803630549498371539177989153965964898717832029448685745981956966454945136382741434900302656143632074226084051652550714244417659901030849564127784662668790595938872653794263072424753757368647201609125947178537335196489116641508701516180283633017271592054046895321453519264718084671348047103437839990691135779407272103128281871754881132155275892280567383407919433542143510195415115028952730732786345591956924242917620726556023934473625995787821577052810516385083904186335095448671822057842789303381088994245436975599290054824658046713640893456341216734203169704142624524244697009969121812192634718998919013270491478983402349907432805809244317298511768257619551115167686635638578651645804786801251042054010038314535451617538912461183011231901528754749250454049988907437214252183810244193827889791180353761084240914503301605023596882461693057625725618640757531665056812216995651597793866354195503248798003629263612914500212297732528670569697485014253057098615678162472785102144901526353998725420246752436194028441828063155628048642351271894360970997346855724186805009086081914226268419397296442182126946324142882826665132549609921954933100455816639224028028729958602828458784780797779204942636964173551649029100698342545357874274218940986683365835428706510712633383593682260498244131470519114608962585571677391267335620337045248461094740585767498939694384249310552224883923194435426982934665798510926796650850831842143428289856217249761887681009964887829336573340378314537032093223128007002103382810327963078663275631424072051269966811547201154551942671160342836577964697489985960158893553241252801316593995215210009469827657189696664142518034985822129726964699258572115102211548646961218263407870225743621386385496782713295330969212575840152397095434448357062213323045802467845494081529645741077971484086534405916818609709968910775282497303020120209446467385880653198511899111226057760874925560806636695808917298002954965365032118038324178840216501006143807333733633963034077672204271379312858523058251796406277684195932134940652161217527726422029989064119499570669685427848019070250048198875846967397502764761700061497751397683295730434758689811119134622039717310133376475343857375660829368923378875781336024928714334332863125372175426625168896240044871201916068993879120632431723733300733600567577986144027080591767825643768787190173884424697788517838693790498921517316442869622033943027066837772985719976012644696810126563983143706653934755290471358880795466925946914622484375782022340775224904255802689203101764090106985143690283176046192001254294570563173881769741641762542458590808558946004309536545510763550438417652570490480104704378385357818862068847573193925566418987218161469901024869734131906043827463615046376043362213686387981146884377103586653811852897687743079664781704695593801296737434462999031139742076640545775550877283299651532420903904949604814689353977944640274156621215178360717278242382224056817130013989547019700764764294247082729458345220558824708956821272167454016408451161604455777875499862040162914455001568974792950471431387231347926896218672598611871693931859843733140848104134888533705421375035464018646831129883146741215000629331593031717183353278048514205240004634165493223941997631976645268348079701735861919170985594138661873003210233930671209544158573693086173921802420126412435597448135363197502023532054698452752572634150058810321443960544188582030825838849084296385469396660261045985330450498490694673248074203616784831602662192564130926680952339075533673486413572646596309245487816837196150977104432759142079800456752510355574708005422304907781122336371572698269127462695551525022370425698060283702233871461370714035131151308514790887997730911466010123208200171731740931573352816922663329727290157137021277406030853540170101265152446774956585505584590240950104764125079436102284015516076999509851576175996732135393625317262939225434053407248615581514428797520499570429091064494514752082311426726042792113668328973292004237170839158641838523199276562001364491336370294361692157497546111566112915825508641131845222359863304274791854325104262323133245551038420289383559870463547971086133413360877751016201525041806262655335500540174201079363727418120308796080604179971840843844283780916143204493495117733804144812913856257288061743080988297209985454757330166285860228880093605869531063865063189072854875967427706844104384099153466608284544892142599097161418337609389627319789747470974978459022820966512623069938197406181625926517573623520033385981723384218098012245099484897306860008632378224692847247469761330716893145335918560766984668688528824243123138001734490864297438884250784132347933325114160676504333892861866649586881156078170482841897227099262696592127571868070033468836920512903202540814912829684760012263232559857181869421097416521709717424219764961409362648779165056640473359947545258595053841231487980072797586830297535400571401020535989087096702157597114222376022294483736173372329073386144802295067899760784797546251235673421260565327433513083732347815803538551652421423356209621883895549844893522664891025693822752079828986908962511466904490195633203571900436170758476885365440470702865198512317614013548767420779104675616955628387902530468959229623309961486767939493827029637789446208940666834086452464714273861399247583211767495505198850662828275337213467981088648018192079899298928076856269796569915836876444029560132448119111394484728472169835659035761800747146546909358890684459227788258384752617581487847851057001718080142426373455346081696114905988955072171481259950528527727219893002345676581190240862269895746329778928711773965491088325535182912916086507180222054231108821042852796230202328745618904541272380177419792788450852540989836568844354560793848939583867628908392356229177169569328940725665705654102800535035654727017841980020713098961727138797278490783326787791922177991268631295076758148178230549871645046137460396540682615912471685275842771125391719126412332057434061470844201703684635248134669704574330575172505014858633431100563484819023288447316584156982666937090378680402881813293495311349889439376820060365145631295648998190753130879037313312041909849317668126236967323729676620837759480578311096761853793952351841278448578281364443595428279147245214439323571377885089230018624573114314691480913878357635353423695651360414741623349089856368639118161722700546400115941355192390728028114174966164738030401521056101483823016707204838194316554875687738216281174165957137506336562775428740026706646675187142811963570717203871072322376024546786024043638933021373567050054771316165739420531591460569543034698333188123964967746202862520399505449317658488000027454612445719880080270507954564857865004792488008142618434895882471572561351206063897085249396716607819401687814733952334155946070617824278917463641520147310036046622046305998705350759307692851571975302623158474649492661182260476152490945092141663043804779849547627301307269094342929686922526969889039575385683351066343064290372871372679172196739258772572353261412027148204085100882586365088338663316801285283503263683337829843535553514803593830987191054437904809729981794014469059724688656955464081107032834536238780544606746542210374129645485078856732575623443341444324720170634443702697918462591988173469779069074310477087551271950667463733881283352189131706424277271046671083838304661109340683039770539743104992013893226994489569621894672520623101580313001465300954295818131268387319660054284442754384392255217905981643671348066011881049682533496859429856901394853235410085621652367230379192793114865000612455137072953129387142273820766668777285859662390365790250140729102156837729892609632896646629191885363457328638659909747856138857618819888213571897212030924160628375955331275529684063906904527232251272260681171514670702566843120274584581747853983538732770189515758265298633593750130895492028966676308790617149877963750193761987512917539672593317852425174985167546958778741992126442119158338419892308647327460915480915978408313694095974846689037794917302977016784337712266527524192962305795448420238552501596565859148248208962359334910334977693527031959505401603750164095211780441807441643782974740737846225672434746003284283472614886456444193004595475461781806911914069654294108756461411527033320159999275826768377690687838142925367242560232943844941271957591432162268712166284177223479365716396472784364830332912156902682833167961019031831271965842053829083684644183654182104845919517851314707764980364160203265911360956258904109787778992145283048359019378951039796451995550276424545245013766066296858460487246693735250457500565632783727445865354800141310038600383669210950772302337219304514652150843996930219383412880820979795104736149722112456062488996754809168896329999864905750831978920839215092968320134324892951313097081085726477979653946548618457271678974206404313566871960463781019208874381679852125678421568155458709451428719019633348407852797539545462949061396637442492915159006236609104676842171122865060665264417709704590016878719114020823067559576051397679947670849962879793922906505440552234308639421320546087691653662627143651943130156516382251759368798134640678314441501075200131700889578770355658422116406853675607688493071279795185149849139847615207104499058034009083608753297862769185906109727661303877507767675231238088760657279649208555776229786636837473072727111840565147554343274178878811138646923388307711014699537277384551936620955165204482123164078853877416792961088719474421116251407659432191041800921415904126828054564587216604957497454278556859836885674355384353046296305911398430914901336397587356641688419211421793287876696619684073694009712635172577649242114185917204031395145881045924843706490220057082075865847892058889916528656503487206476258804496495059200455593263886380632942541299584287030667000398420556474251953236429225818240791426933339383559890822219892917551257494133377617165658733040928042203822399821724613369491487264112147670870947404418172175835820780046695193918965053486247698004971618902210132600441612164455849904880020171581844160593973454150076305625075949404493276099705279809694444399234795664730131796349876637031047066162534815581622645984389732181393044109697712340282868546791166853091772954228466043520294434480977064790972045841608871436315740123663184614941222948848897121629963165057751495534091132787285293246098260647435618812376869858995132389245493228874415163617189906679561238287170633307526437653161976180531338689298802374255794419788141896458238779444147351047113070226905089793908723902232433136622748593831160467304838465337562147165412428533536533269805259184201008761432662554999921178375888317832656793895518927320845691844430158769864783492951027672478912540806128725644670582313542615258093929436857696800212971332676295106968452061270613548320375319314510472032152735330431704474400607953395792251550567110510262859391816285762470478607339679041804556605246718615151183433672080492048730425857604821133232405730338511218046234199275675524210991518815272770640235343821470058011614697278396179086163838471400776492667578428398462848436207781091394207922742930123748852644423836347219110199397572079001646743102469279126870449998995817993425692776144117655177026538160546796525255254931147561706032148563270417097659142897044793256105549227216120546982821461098360208174549492556391041309741979289853103284690467241432159521816177136946919083927377668830133411027798317828747691052526951640239228761167209647725707314232788317191396307145516685934194270920720728393892190500288762995818734005694641126269490373044937926456202558303328299809172323871060973871703106941301818189265078941451824830415312971008183956148399927873156047800397474920754453610016486281706582089707232852616596754660934068697149212345507124872467352009134709248126514973469323991681083413892185993996294592888506328175678489486318611706794872219829269561019108905392909058388529435790799694046167902140794934173470749562932119784098243142163548905009905071689285653862191886220432892129323573574050386930572241225506588596512416525383061285127476674736071590924098228209968950948580478077052679506804342312149423458049258165510371517560197207373354081186084765827371606748801106533645764837416736061978494946237370690315843047162799811570153457555864438762825197986007374167695899982539766138364991146225784455797090304728906996774065901993334758180509625730553883641695193228193543188641015835619647545728309261641176947682301266723807901239436355678636898810116392345392516325955079807267353644661024238959362993772469880575094696977622461330360957431494247512548619965295936410500142388976908052841651534076817507846144146588111099394219901575409929597617223447058135613600015323077144605433167463392765659128464426460569550278791102546012642618003159543459321276130312526270694485168520167658204486026595347985939322863974083138348638450668688471388299739085743636434150194154256455388309470962838303385800574768672725204845686274222729386665419782308389108772892926190696695745946562768669614259296416044859489406788156364165830827848382092341797192702549736313171713984378764052279226143211362623842327812075270323739636684617777764252196996198009110340802879811378290070474003865934539233850159067487986758490793356175698599757727496729724945292827897883793323941926533122743480770729252856250420216643115831612639395817811578430105799925252591779039062992617904468382188944569433360040549324033931145484208204983334311484389559900172333256377908180778949360986738284615667659776282446817859344945906189138131926823649700269087810805849606748880086630286652457491511017320518059555322079185662265545953755446289424473221475373514783584476756434931119933131032461650113811676639404221938674360075013167867785322838971341518409800397791478320138427390787685285526727766048078201242725073221901718466982502881007057376117942546976586204998752322062373101065884401536368150543598342144430840247132982727588612255525295192680805411880937939771775509584447786084420647944294987633807784992982984989255560406354354344808430591382438395822516300753008334980914134633578319448754256307739602258586504369854942646613061107100076907901855520168178142955694181392896466765846206771328733277374939398933283107351863492417492472560597906801761479654632181866466226558164506696461135497707693365539933858167777678658043903184726226355832579304552984875335805887298003139747124194459022290774625779340618557564577452030861283735918675987990557165855184733950355320421279366045389125194647517841563577966443862353702943172657302559847659328777636743800521395786542078435264050528215345611209360054920535911305756714988673952720344165998627480690394274078781725233638767654245961537263808082614429389075766474262626890722742215877449664147110992206871460337739636474116183889919115845155704287687794962747436639901327812761060995223416391134326283245861096468397804475287960648587995686813535014531967052787021899378556762485183220839448595353846494998095153654598200573304155637650458481318735175322904376068526791493276794970037223521616452844897217477729301161158235304989029366644439963734533532471570576370720485740193726211419941940876396615775836527880851584400148399925377278889804218249923572848047221381452186621308830472215428922523228515688576763755453479892962837309678931333883697675430926743717060402715832940256780648172215413159938967531817822209813496126033150394990175909935892118098171696071013384350056404126037783985404873497904741457094528679981928854326098260724706037306077112290712118635092725790322535102402631896064063248441401381369036133539950620698382345692795716915191536883214989714519976281845459885078823799397134122586584675362695531558833741612750736590583629803382113022819559347676259915682274700083641749870824251230531309993887699879271387290978769633944887603555246007786723981702737695738829746519401109938276143206276010630182925712097790366761328241618413400048929206737095245602471385637143864266144434318300559024953919566785749625868560721529585047519874522006154706253033860926179240211952417028443063246293776969186287259571496119810272892876615567112378006347461248794832679257248206862188526466532806375276700576028327461060581388821966743846245754543552365899213577069630901179404359132788573886041003365458256764277790460006803578272386829253885467170583219025317620470800367727200731662549402915724853826043470424338887836244550191295389115763659882063226061741297843937144063963827396931184169534458161683884291860217345308607146946280333611552333903294352272389867962755047557573606143821628681143663478234856901951540852699641312922867532000527687133471797654400184181552246588536427293811002215492305567917756302037143056379790752141006246435259316590326864123590318641095180333962779827893491788346956381599330340930320935883274252291559220586476181641639417217785751494190713070543477556388406406735413943909686167200237128927526522440906886978252334319677946829224499911670248072634711829368942924567993720352163791333829396336165894583265563797058855557899248433005198543257017222894747297976233365569059781604985589150222551276791946553945031404029794576803414554251310193645333083283047463189285889875783057965940423861301585785265509783944599304263020179220225240927814984264916296641448439851077593226020340631104969306622298303389667093120138600867867157338834597306576596368131903445200884488290580123982145336357196779192371483722217064127786088222648699319019866486703379348054266397066759132805108163371856471755741200152500526542113750565127873148662563053761198246729790763430225479028248577186571167070601010751800746633456259488805572962354089642910007186217710299336136439974669730442347453580716935905792248112130330056151792672361092668363354834205614954932965154957499102107961809996992560810747194578289057084237895948008467106088826968226522865754260622374790125038906034174921546469486511085834654340737305341335727800900944149225779099929201314996861304939269161194506913992664668128594605486739078686077599846330153892677276556589779856553250973252757180007234528061737932296722947821356566422406393669630844926724684517784273514739384192786317132706050428745238839301614165217386266503516818666074770924013654663752146819542139475799330101144313335526667939122072013398612240576390913580204010368557025645109225066626672480243836010099289541930253972833434288360067352691857905405076922099767325226813005610562226266961064888726734071936387481142427495341700573812237457152177461787644467100959411059326816117550653535393485460497143036824583951125730284068328950166936506270389290530966518676357332203903878508165793460811993041124308277878092434235314577594786560469548189672277463547870787915435861446502877584748066899329933117968485993422343968495845429048876131803651519620116284827291549022115850971193016746452855488303115372639205226506770826856357957292584605156288079773967582275496909733345870190259489881705686171539211377396485942497697881606235522790241928048630735921793129944683321089121291832881611395261466804364227111566670970275556460156067585901904877473509072986093575944018608747141598022532375949818373907392517911271964191620320217626590602350274857848477442709020955016029520455980503399238470406608851901553909569317248661858033487917513143091403379313995352628718094028028917296361574031191901750782288247778285754983531568285947515434384170656570370302217419724372999734252798679226929422722396139655375916937854057413566903504289623944534974755105363052235987571657122416481239616293757783851624536891234385735995255691541699115868254052896748378125681707490934797241473555982332453368437187218751103879989536362702785870661889230940043127510399201047737380263424907858911967346992300758014902377955378945358346739369913640725315626820705031322288608308843116459805587409483946848134417493881593845268420083674612542040702869136181213448227543337698825977052031262645083749755660621107106750825020983366607541738240253072418224300961806029583089415106205123372449435828914664126953308677041357462203616853324194839789918672953438038099707359680266184812032429790248165117975709277637195678861912258402763007318844162581550889721394226846106351640907387672554311311595874909793738779838978289104452635772366897953257519924520104448647279623055071389451365620502572670279394145750863140132062619241992358819423215919174284246679412741466172570207371556440326139250742826041050587504273401963864556471589924284185791753583952880860702601738476990870049444515209600613776582081569907087174443686448225388748354983181157321137896555915594591920293526918085583841336787398319661419448101849537987711515868585002008340271560444159414077748720109709389610572641437309908525018727859013963359372479469823283756888615745064054279952227058068629049215085307684639889463097350908016224066429538808409632932385146568039424805698619311962878596457603270295152275138342456880679548833415213533576125103371487137209852299029821468567583402358562705713455060755884957058297296420966829397319994722926961871854359700345585111865758567557549513845901404813363508239316960217596748442219660716614297239639491958824055279522172067048860087821715883381679046603925640280607126776934473786338137182663321309715366663159970653246284454988668465295065463941037008367369119607848235510466726127370942410014873702511192375668777007713429592453828057361141716296304108487253414048390219483281526556322636753123714112312544544075600313206362319531840275899144112816724436744807909936938257449619245326128663949651959367170548300349687057444290723518952561537245697747243414960434679110023911901472144203254460439343893849526292766837288034853151816977767323800992955333316732469897160973144221379691929446924539674154863447418537682001531383118178416130928440659177167309058909483708352453724950390648559046134547994500281118851051296218224216884925941566820591325886628074732987722452228391677694853010016052422879437658835605865476217300920090683115348309201263874403250301138445928293308665462371308342606479196984321715793619423662208119726442439001073468707089635813249217048316398563069518490712707063882500103186234971521922390022462203729973004454862771272242574304537683339015988959401197154513157318473934695802772150289438885976188609207580312335346222737871853421042820851343134368742611719841383446623148008848383256040778465328699241570562071409176525965341131381244872166808246957690616923931869872488760781682027377491826184053190460300658213437811994429171597673731779469377095662859637947991669755233954057491082105417516670480811087529940293953531354165168645446386216572573418391592673339523115487200981688492836295196435277152501567317297581527124396760440101131444893147585473298837053793478493041849559663679133782098330118654901212078078214008260087917754605550056437416977318357595228565119757549554769804077914332999645374004063485509400620540518582901829438738257467227653999828557991438806111209977020066839291362265450338438690064255691356754388018829719813442276605190761253454576032822647059183117020452334212397829106938179001287234472073581929508252981244550314709571893344345454518674917664439424944934445197715051889673578962799105258716635699397943494656957134443802716699541072034931022433714706234502329319721318271406561910749544184490574696881487064692663014236995543907495922497726128451638265576973205338733383189869029715852185269521051532209581172413687880669483512928742847284663773444117653731254021683984689477483119361200538647265509627061379023168025902705992699840482982745038846895471032502106357058092105945092023170619414523372899220456753571280916132759940517564448879457903600026867485668750259903418135453747414303512441910543600809286598332249272045304450395211892071154378402243099122572435678313424624105440411440925255657844159690922534912151644582785187552470666581282240438282094963299068568730018586584564809970021575015140828890912257620562651226587463695495216870423408914626246021353536068921686251859329741378595841792419080708907119536681917778990131962653792928176287182366890202945958299695661470330092340143566084350450683772768377340772865276183281214084845073116038411990651889710066767807654147501837013613549376392949325237440504335832244933467489334054730627757439261740468899284419284752822830063336970821823636284580361460323204526912814207746873383129798603294645431066127102866467612314176859932738316852288913425815961685852186812677376350444505131241715399692517677654788238240660759265677002837004733917419872783536914206409996637354966327797725164101086687730009835023938487375410301324119592939418382310810643316973150913140540315507119123372667658210708797211241043810154399290681954983502407437071790709405596435599829019959553446778139382444914280195059311515883607719492852456235175350797165440998335596137631415490014895352172630518787940476283447850949726004443372471243603893931245507080598173960036947909039189926896822797834098513552420798870344039749074780721934185895730004253551075206927368580088252929066547692920580496027426872604319362185688880683553118064205087960120675805025114163142964120369074545173444459355353657862752346111568581112340102682052033745555273089795184168042585775195693591586452842247585999238433084939064853783634741072457254394413172163272234983392133665672912234629267477500305559660224286201133688207531700481752560008288963556911602961489675432053980391936374039856059423417892505510063210603120140774626330705968711794284815540823734948306890929493315328556011940313687601176187247184625187976782610974139332200579138289801197135354431821160908384225575490666010862265245177577815177553495378554162330979649234798771786793380389884582067523181778014818036196304690424841185636759608800215295795322328244827023904634541183232444243159669063196407679758992995785426750199243053056318328759841531998743379865784381031669292748409293480234465504284026131900833776757508129007509949459278851472265464859340539602318148827842577066738295312822985679041005952568627019225715160396716631405731474062773175959336253046432972344837811315558859538527333679806181794202717149981528872759230499806418745179365821292906502777234944934479730506770555447201932026663766146499677153501233021254836975281711658378373889286196298539189370102530593615331630523617156190060735313366841844239604691463515586993091002145875872124918578707807665703776991692178160113170120044570172975435950676512455377308965330681065184350880478512822128080656311820170621767090551508031823649579721832517918750081984633772024068279070674075070529723982368533785983740737197470003139196619108155147171755745269460102190348877928323843944066816208557248347040342567729359942132360252300929699275384878907440882358855852084890140683950207939817094115090010923648328489020469987593532836826575036276473216530033577866347877402938094010626382661107658401637333550672696537944188919408196255529844063731053635351666250813844185337214900626392047529151380362764158848720297073785331343315526637582300796183603757926100740440740171731772344802747677871387143230285113236480558715884469123805374141972331945163484604957290871923005853485764093655663977727825391459620484738077500119637818010767602915298379619027700086804197131661586731379817762864889387335919339152195954897187653275304144153788154322124486636737882007705973176086384858156741497888077338915320800231109696731906394541680990231500654430992446785347206579271797313113231005931646766380617876886582258507821291382302050658789739863289283422120589611807522269900015581982574323398259082846001019481083430973962963857111373247038881856946349498148443212203612555327194719802032007373840233025570396869420125289656436285263955723937215855847297398665807419273740649840072276085114534432838062371861711757830039414174172947935485085585238760980806938768230459168586275427209829334897640133747393038220112937207260798790734255329811362904655883385785242340680802418820911996780524645899005364089591449894393225390135982901831207051907236106008956094288368064760432023730356148606959611863939761762002457751088486003640884370131048933549244285096703758671919433600320653264402021969311258025655222115141419936148236744993707511819652484094754162197078458991761533868068340352714517824426835693102966842491309136784120625700145020143165544258874715368225111754311404063536367878475014061136206077170508870036510262050336141349609701611853683478259196514936818318660913551133929542626787782651162041760264046337352132785552634832649810551520916663993262040819749662495402374696819219694899362190193374117623438411936340100374735998200773751019656227501119188785059064923382138050610474587868317500376634782915787153704892844120933563444383238144339502934557838648918371061130979880064456989835247599785671719184909119672869716489257605422681066823320400643657923714166268906298268532172369318975348139432648392852481056300897739729127045936217451167097547858146747806050717469321437379753198542495250015351590900985687514133098120688965752064447597760203361435613517422514587536232654212460119054269213162016416027585460994876901775939318770668666181763534780464569939006507924583527172163690497978936328256014150122381287478665501529199625179809421163810665716034529696710259354691650102085005400251599056837560470847237509199736128077819354088081901868930323533882761389379773560588926897253377723687116560206860899474902346266885875333407683555494270816129822997050216469003643708284682072044265853956544345370043449731614224053309120580005070916295648398749689406053943335752540942988224568635819539289301291850858678918415319482374956472287707306909865474107012850341401528103025734186735144081299331606878722271624787167155522947314211419853711539505407174392457422057347966593866191367744466156953393522778773081682410827570416106245819094080009260251030510152196371029189713878350669549178891990425748021386523659045737983882497696056992824702883455336953329545063214273419357603059116429260595140731362807935166624833686952630838479443956729769699934707736174953145922606386237689233763715538332768338540693870848885897227207176691235861442758227865823224411692055507134200123158998888893516848306548086789003856669422691590322155208097266791346397342237935981029953860015964671778393501218696558892272661937510257923099041791552162690289632977555842928591999066576515722744485234861637838813531802499942426798189259762380320535433981450472354797666805331906589861423295775409688849081125076306795274428405295352996151970074618439588527655947570553377102356148537263089704994773232939512412938912999627670646525378898882748679360642574299003172829051532393897206074615299088460292530748279974585235778446774163397004218813364372058258359077077500431189893002228889538398304794146053701862271984328778122068063937482433301969899835612156655987060114724622299691967885872828265738578295555117485066353538120698560720697086795092657671637185965301974396916475143357976037282307436013070795749951558045985337862356319126182864310445700715286323349319491739955485363628697533937636227889564881556208609297608534627835137159501995109258820135188372407095749854341708372244233383264470434991754055605924917448174447732024719425649548261260751868807741684805027886366652897173599071701261784101722593678099997474212917019452917213550887048866519046149334326333991026158749541349692063610611111591630050243404596415507928753669985741359873584854678490049739210788158239692195189540667144680421303890167732572052142156655326747828127330655062366119433479694006167298479235896116244558528659794879821706690765303681509821683444964700873507311929342899911819338622637281198966171876894296639225639333828300514523929274988243360773489823711981502937708484155456099712837887093631808687410463826677342814781240136567770402056528059101264162355907392732111932908951475043539847609485086791073432302454104515199917391945130565363160478972413556653052249655584622235850477256926227009812287762957972641158829269028834254212080507995903432877054455621997002844977585906417963800547908684082836662842377448875328399274899739220981855102220686414213039558028788391341294459207994103417707464707444490796847401840055561486996975289003668833230482828450061834740519512641486583430461175104330431594950753876766575659632836448438174024402477454517896018010423869517772734033016840915707713113955135419101346723599793615966172078041538734476571322403060840381900541249578261376011790855111231036827513464460397186638751168646034412776596102789051037640408033464386166828405453879066677900578033232282130273749735533756010302410019419611220546097061767884128210068707058279452131390476417271423084465839640749801175931544148493345289752806879804754320843558612230324633687778609108623071943434426499164357577569597480743305838256966731991344802652791214778968237809543595471194629359676225297224218615159181236633943058699203547897438481099442480961733453062783710367384498117570977774374220766984541241019493108501555324120532258711401599112755216637600633601148314111773709709552908510045361317202658493439171103836608028213122175804490167699589538101329025905228952636218515998315354523299277005737006973688035933306653970869396258380342708311824684423197592980468282324325189775108639932957902413900691932354779772640810894926627725677822560271880086059889321087365474127964915453867180826486189623339519269663443721765029941437193436077582584803041930201608328587316356802958089042065931131459587095373225263158161473353425960192802187846630840761490604801622433648948755238504370575385531706199480464454637775055191740434142948760730409316047206164253061217287614020976097343711544588131334286126175764304094171123249197907596198033345589451193104940722790192051975223608702177008876955960583399940134359437793226132965977923164853022496318653084596214900087017481381902250371321674004342956277975399253278958632881929371174995489799067912385988202327116482231258525592046518171290373066936257799562588591676603307599561071612371996508179623716192020282539715191355626684014345199813426388360097589511748489333427616126291547518546369747535011118587157055767064862869085157565729693026760216556066925282727697810551493022367656506505350955236044475296481103769673974468932088844382785788984650214591665855923595287543940593818442195237737367538040144345820065395957967633406173547811806511403292795688608859666045601755063160492024232934333935799626115878568810013840703141426337353630887928740091942861062255923520624258155284079785209489058369271643514041893091216393657325753612376088930304706329602759646240236146009944817769458806426287875561706771700274913005398230000159135920373070887490115008590581710551568499596213421059014343717446361721417939067642608422611876324576551535757794676913201109412448288595899871365091008375635374609036311686864488397697425157147145069651524596732391504836644103321658293713619831447289532664601782928902838668041119987365478975836702195343929680543087311010220887738125784570956009393519497478870422392685138844159318671822921020143347136038158838011781738784875118076545236018819477531297725257456703859670424975035979464627956529566513080972193660237584673366677350588043132883474535549841089022898388696731450534446806949302503391557683237408617905805672694855965000780444052456496375150100938164567576426151757188274036139221549811592716291591078644369832318225603427616729661254619922560432078291493192826436646507414333925965394421106389548501949212645520455182030427615685260977512489308562494786579460490308379047300728191817455141934814427880878210914169428468986716590411327091855621191854942559120693825289830094847106757529808006008523924654569794333897468533085240389603035446633256908060516226414831900292259590118185949747272784662978751355405421984068726716329781989663003390755499380563428490160823377004862431568591802343249522910262032620130047592817779630358700501548955528575957102465687263905970170330474022232806594974458515238916897517950112427569096576621635954020150534611172695068695815401672063217035103750118404445720761981229185661941520072389470098229214992865565265225503513591467199123717277516388387787563287881699490183819072119209800784495631506861592065643714062040199272486529180822442496281974512679533886940360399456024884663017874003557992122720968497179379302782139425931999721507375223464935504965942743478662133825763490050573111045450810927427561765517455501546205922118060918237455501565816875218234296045860993562007258515394411832404464417342854190800759212675623302381915113962175072026717479890875789641723546701418003146705076140473557548445973768235886555599860394039110227914901273728519935670398766763648087886821188017203742612542142188977632876246653267281935398625842977667502166214711852880952830779940736727124031232587225695345345358221009920803604531119641497842493799275447884083596993167319313330075512620768827146120289551565934290394573502658686165084153164343172387108132044595379321160602407708293078935234932240855685348844266956482139123588148164901311135900697716972985952692119030769320768520594705907598061230738280598305637696402554773251459221328955406922439327079964535738958197654021028934044150830831803297001702021119378984029209815725795430319225519026212262416366239487437244880707387103947906638239554588222931191748538990656457589996731144756798540508364344081303631268795142577762514383557729599696759380204748529736478798888422007579161903529889648014391187028207653358017442302109495310108970269975313233487082451264356241568996960108972181872697801852638276623376475903608858607043677681117958311179055932651364159547997741486088723940338899842185375041098216892613676993233758774449399837878534731376859914963144311513572368549896709280054533800800883581061632089043863271858994980727430407449029277886847955676066337885363754615266432794333879326159833070207087547730483732658074797037733248041512732686392070928822071930313273700318102215940133303918551231661294184280710853983698500934490983352405313936841754065335908380479206560171148368329244404029354188040723536403376545371315120165468395322248868795191352243496636925414272127579961148360431418546204196834076405279376912269515597969184076616087094295579785100338696252277054172563163140825503263237699034018919141967773890540230506243278474962490596757225741799263261726589842433248789865866213235368047821688062227817616105653222558958604654530273524689662520048028688433351857675328954612044948838026093443846541263199272660527070228625156617953210619114248920719542344619058794302113550983895520160787627707456094885980383885590182389412400243052594662703313280037553300242663148118619022480309164999439655713410518179209359997325655919828004246529552649273767660410298008349704995573975695719575390285566463387525543705505368324834917488059156644277403705302696823289269433337405665787118737206334547142053630829955018690058477854446466797294855843233833135810299498974704578243699850000756219265638892909646423615569514126552404723950337475491904475857723291238359702229839023602555241195774955170817450488063343866219257091232092628952850661996978966034998156181469902844947082436975828451856279584924697317611126864856719596409488735806344670974704191251240396761662739477336977843854655430016419446540518733214887456420608979602113852017857405782244700196920284720753290715870361208503869215341975753837833989231859315585324956946803833014240368582810382216758119991928027656535491299314741319616795733721842695711262002896481826322920243539736975028858910273182844470007111723691155917583032625427828727143839147407960540870232143407451863182056356685422415366763017995541812654156074050621746643758719490977724782937574805156070734891676628655170414394872107487234002888131047698519723705620175574700706062842208365316764785133022270109467111504353624241307406598796823557975932536689892965578484603612032832442576440244492101356440261484635561825521335833233232339020726582143889014557043303050357185114608862302506270124113913807085833468312629017778409575437077804111920157643632264627836379661151918832013230773843335886898184156326832982478483237007248382667160473503513090118468616029695428225794546789542338106151468888870850013430162897255527902663594120456644992413881690106692313310612353053096070935178119645641543323408001759020447515548156873604332146831865182919119176072126499861523954115926556790491470968351201752322368959988353896603294801314586058980989428133461527467638372042260504667243881106924256081114919162078642828846181581856526243025762171706490256873912085382476779258908028328080474684419953357974133596035728289989765715187020118161360567049393524045705429995967053919190472866083047169993272673520042030588611331602710797342637605701245497163746653018982367297241905337984825676294537637447805199401226289080005652060721943452754653961925656143535681023178523116547931604245909689592782232975925600184675644519717982527887278208302748323308041398846122518132755734941747622248125167083441080848447702584735551157700099789250117760918395132381822078673748603615314002117218692500311959247604364816851198429449774168077637485446338376213085914173009461234403846768132042061944622583445550757374544756759206589799717801114077974317698293243605901138940445375181871318877228682697166216363857538624094832043274493148439515521818291412617141386950119969427780977510130921343972053777767053675690117534470163908770234958274406107536798119740692456489033975025576670157894585724140098031826010948959469585659459509703157396691013134365351022837496646597426457253469094278268545604467470987639908188809347447198478336410277148732209054770853945617117033476046104368851042172801105100795380152875197018675511775271084496655027831809487918570486571749074890070712613300178096103514073753258648181016199564904624073560990594604615966496457624828319581111272285540828919481662335526831266642333777986736946612744248088448395920715648377426188563976589914252821633698604339319580282942332767560071822898101041251309202951142810748128665117745046953235691315484656984057733899313616433543628523525886574961181835847090912692856976420670235243279182452578971321569508444281723999796470755391131623247530171623346013302752348439500886114784833121176523313027573504722548886884173711233986350203731951879232840542583215624414917207662171674440821487685015088278514192937237045295402138142317539074264893744398357866947632894568932129575868691923579444823094792263837254759835142053670627630931716498956055434332480573174823526974545343276861401234496345241352430164919602814874638358719082437195349364205577115932504759547190698837677987502850179198990295542845205956993613722920363755722828349306537951330861370831694428057635399020495633023078530042434909079259045424603498244516291913347064657980527316761413535084756209135032304980616446900127481002376752693227032962018713953655626423499700465503125452091262291552660750516939998106004729963851507694949187096099147394153852985770122643404424279088607134092069611048980921879369044468140086461415178710334358094886723355763156729832046925075634121174177680867450586998479297768647770948443817787553101993454972667659390054238354115317950958244805036753310246090097564993905373626540726901106898232638404602723233153801516762921140882822616978954204201180378838072385589656774866092800914783328542763201707894567267478918573762170353236875134520871723504851172370958739205735098115620026946301267074045813288575203592368057468248055370325070314487152541035260279775493974703213784106231867523768852322213502962410972028863579544860374072329004577058222485659887795811251806253204378535476749185504871596081578373884945734303441234341682869074340394848068532826417059250926461207437595077450393057804903430207262772069278416210611909297738367448833653801436767171106571809411372582477306640093109491062651677597802156049246974240863407186441844806922264834852569320162603066607058381263765351597747389340305113896117445137381517078687501990373450687553673997891979346061638274958515584586115418995357795153524359687258499020771288687672025109076941390217835140052270093755839364222092974687620998145353275539811160810400062783127500211124879624570194962704466887309436549088085921170834267273843476107633051573398559482831142690515632122809363457378099441375145556528800859617949080622908547785342288026074719155521300862063074613851332153121328432585313537432002371990427072943286876346798989424468400936074188134613228516310675977997244087072139987197138211186097405634903951827049123726297924229608796482414713722677510762884971848352211050380251008607182095753960427259689048508161085862024632919588495008997235482558060448815797327585128439970111984272656213408283386355279963788889568520750185076571314781415770616307204957220211651572328798307285441647116128224750557328282913608574649371682521284768304391664119731570874311543496275095480380019051722635674158567235387141459136857592515926448054734037757597622314247717146418031717707823957457965233612368954107198537725166189447676581934781525283785874714729661592290020894830559232918537406851792025958378680954489138685769624736987487350870964685463462206836367056109250136926832480289487462549571432973944070083967374265541424631878612129969200371976922021600582009006503917972433891564387852829994036512174161143806466971623955014969002039798493611466193745192883164020136159876214128704880365776338246991875190802803840342926858144706802744815113659945192728667151569067546206184520002557302377435631020600368698322620300402169638865094137997891222587469430880160204030172095806030709294946871327087543625285708311165618463871009048587419554570782664172642644477807406585745912375577826964189000884020439957292096273087093430705401009191997179934045245269524195876621052646989004439882916098281902263767110026062665032052511876400055568953230971224646262538310865883061150255643126546377490588932534958095885789474075940433528618559661651712032998401800139568689385213791160559848077397893280517330739593526395391554143443468569180629988752574337961418306756473948250736705168989168971603940172467702055209717855232995254964558144557572636271561971099359273635466691905168262086897410796403029755636131331015383019264762101399090289839835785056659859525398502311403491424257366934795114716519923204916629637396442816558657164986433008713278330881186596867138454751112746095950094978477313422322857601154554518277228674846940221631965550929417634755114502866888919002315329797006289860293276602793992111706161881070949949420475894188670457210940786328309844249660337093388035392547751384688064352657858847944884974849862104749639578715809325908440934636135567606690279952915187358886490676874338745562648183285470273606065721907565873420851952852199849784682390400516393022577738733952011702758637703204222643554233498546443586712212349931801646966353983562581616917265620273240025681616353796382645833599460186711148805854472863729313441703486621582729992874877557163420284198111913564971108344813195085283318620152475407448640663784012404397380809254200861359723165506188151615585144173576710936869441187795689808073186499544243103867879927971702174469224485594374070104437483250459297653223274262879536784375687206351236320021301895760279972876871319799489448987592087466667669431896861969519563544698147854420378508980269468159645901759788209955065744250656064423315900327497850876973407856473712560363523942570549347260005459358992320918521604988730766276189736864360712233414836827128564367683088120895720042794041892768138890980291039398211757705452943416223489578362293372392798383472113632173531310804333680387166867388511017415067492618300088479263509596709018806534005363089090561467819561960901418673454742525558478199125451358673750034088217091813632653283999634931167427040631093458339653159903348066577112085606873375736719889570826234003308464492478605197770336014876784015875598000284073446259108421850224725843941778323011404364902079888369346724943401861039756857939449297835325868256389337354892451775592938815277814711251362946326576248413848086758897542561337642348148436674949108112964497507542387164168087504543876042396237271852492765701708910107224833196569647236760569503677522631496961534071617428262649672075619408800207933862562681464246053733323799196771764622252832946944172460788185642185469283933734450381464757345758757088492394797073947419662623908722195060126359899991661648993315484160830367534913787524450532482029616125844853587470533150593562714530010746800725502378546377881505161555549335942133475003404713178071671789753778651475862346506308699476201457647303314679809377989358131386997154432802951971166800246910464490962087715337704561893281480947626603576755513295987573532825215798554259633072906263066826994552416542212616177002708281525021659290788672478467442711398633505281372810576587793884168662511338570303012659853072244627880005435053511305310199144703882701066429735451662707101931014004695990170737380265989255141497231902141417877438472163941965258498668077107263039930634850418619113152161787421298734906961602589414433506135658157592473786277218432981256569415663941736467832002621843230906123350504723317896510980021374355936131721435764384963651323427531301619216374277201379436858856042611354486617234933734338624904940379118133604779534158438339372082115596912584504976019058773193711550466749752875977588301484747176867052339426179649426443385537544518275031570194726770883667834224280473816536395662620513861054815458820152237226645889089308496635847296383197024733561906555849959656129956641211708777259123159500909917480132473155071844368541752409535504144856020858231819148439906332807649865762607876105866293490305608563220695127536336922981229239488532547417345576393799028411018037405318335609128967054235522218844577530292382833547252529282993890586946382531458148982274457272535231303564109289719444608513828580936540044871923607763008095493132090433320522566854978485742442371395824001908812838478389629215220263866285839125003906748516699052064215197405980033991520210034269467722743445103795518960746559250287560432507280775176305823845685714274598480425507012359165410365813539537664489874497290115204030568609148123042655958224572770505663324997612189170446868420222167860076280796849142284945478167843905115164196289528571944597823832812687792333016006939773435253386321901015854981079729369214381446233282453445922629757373193774074090908841551632338849605886516029163763087938144800667362066352579671747555626999592035830491993647979257672862364872957605675403832073198572588512451791678698822315906693051119942348142753545223209387204780526170561342645509956076553098108824358658190662221108167812993898845611399757094908723149066113458251631071316387460504665575971230943152339111658893925448797265550516513287189747998581388862096504005677556850321619030521127213148205099186807306555383119072496166830540685958785509484470698805194127217036682771660443141508293458886046518563002616002294545699151976587491982592961388679742602373595946158496792908209656276692485164991520276002165939455054602950645700972505845501066313863818862220834772831996777297272542196544966111571773072569221464795038415786257316438877567821448081414223574387483395229387358793559530105042038222567485541421122725103268098330481128804390888752160833345383900009887031081932615169356547282059725310468667114968682003689779558523742526284108667307155057591001169985416468071304493509445618558517048155136452584326660084787366830286322850081170662335471755774448608619084226484662170761432894580204334688424551194233988653130048734938959086614715424817437374591889932786977819544959252103865736438040793679551129965881843400538076984769328238906793204317453101975148672974315487345920593032754567552706000120344429642401690095630029410696342247746087580609195265859313735665739972802907279925164962097302622104614726305432128963424944256642633542874672517985083539032855135266294093886004619050694846055019639738761696456133079914812464539677164313285337269734681320552885222282158235703344740351935749579723959901035059001346115951121068285109512791451057546691488848689713388743986157352929517521805746851676424409366137346849162746221942736230398912203068962093059656790242796643757873200688728774656288709745743945949721547330777606363177684177112305962582482414544113274471544192828161514086907732075908948346130323709381909800330622051440541312016012347895865440397903710216425067615687838629377894649823944305056315835424925299558919248794290618052852796088191440505901897289181299066094698232128903146870690030422527137925862686734655440559829033076053699669494217417624776308526371733916688916547927292894463847738527302711385552545390309541195148991755259365626737490983398737588070754111995125052717682541219837032481206546905151828880882468944494313766471060265094100964014414072879125908842012936911135095508361934608577653944075369115500816983382095976856800479054310131672440741702598477506578054645156653078043422203495288612401960443307513659764098157308056769367098094689481939405243170683480257205964142227007919213013478971902440012605040113856578632230401646230834470229291615289098694350705440959987633389184603338363748711155760211215267132955940527666698164375726956705619190503015793688680371785822716769936949986792841018357299585174383750320575065234239907334112404237559719074543161260220639922591832390656686645205702393430960596817693409120753944410548720897922368748720380677287015474531796708813398485373287487287860483096113557749720580533505186752718437466065712847915651223653801180026846892300229241686871887063763310119600339444191025199479393901555841817295988225047943815153207853975295239219071011279031171242978809391401943494748086979691037994552989179157409644213591177573850088502173216128665701105984402819137057088949389343121519131246687355633714627914225300034765419849412468956134871460189412256280270692421935156123271892284649364156674022193258159170930344824052856505003715470148262840881602003236203319302181345394654017901358579131866797577680873887789600703612396062734422347639225696862140052557417566107385561700283716040456151691361395594865230303854911725741988329004036575379763691578506922484712755890976049072780551177456094002700815979851374631483473595935092329763217556382367611125267471619560302961682776665619397708709261412293194029897271686599107718011833097503112832176688930086086098508151560863793922666744734889377714785700530424407588935949225202411083815535882478086737703662523761002322131128708383076526068964418791478129674561327780105356259134836022096035881927388062569002091251649116840982541989116918209435410798626691753927412813787085414513951270293532491664307933005195397574143621891106705030618159314199335549008129663442183014369214399066503907542850350182842619111099747389295415148915078155751024494770968644736022389917614457615276583371229723629424931500991228115541470798044994751584129918487677091577650195658252624429724484054448505482568778303129759453346950694280828369338955088300446427653773838612794562494449501231467969525866212448137849199225264201525300246948154640101210766123863703302545601215920401067112326503515309456407989950927988388140302230090037972713147284872421959502699870619072654326327366576472464923521540239509895587552466276070035514213081815762823643175591912636454435973481489736333793608014488327604845512593923868466507326755249451293199211638472695159165660705075322252841492061320056964885446913954430681465969546821933089464474489065990513949335034486358588521355711312388793963245583170636473642501421922499386273872612545113060530081638561578215467489473790154216317465867490794239549749467896448469607025671603577748311849042850105906405655696947287846721731741254889680603733854921655040553893627275800323977283090125537763821160634326724846931132591266259882369909861969372700412156787502869323171850538048277878523788667127166227609839739224168686432591497916411267219914375760996626477212431111850955879474642058482013261804001072301633770063173093318320935106783313338769073336373060105429148559894498020956321383674847386538858854694842970086725076700605531828905145687196015198451194673611297017208076110216213670317322912356435817252168147938255290136620494241176648066561077422275133612689213846682022585178262832033429135625580873555181483251188634727062865994904832135165451170407498191090151447481778649545895998615175659663592101742959043969206257557271081105608250510286113654368638590831440943869066813206283692868062428501670585827437082909413045602780436222654593543418198075738017371672828341587113591431529810095723416701115580245966853857159015593993178148887994697589747340371953942143413967514431995936336221033470409940862778389523818730372870771473147843697182776575481042000650188583776898052175460972125822324604369492357576808884795213123995135874533464491244107852257542392231992190516974570555983681296771474091695816865387543884262195757641151690462017909969755535043858556767182822258234811768676060565969401122964113063283049588733163545998431795705665409910084578837396873993897912157047094784848051885215097584872777225383725166077000127528344650473329768927612516217000167196364156543151476478387115761830660811540613094371549182663987757050521876518886397619361216841598626428613758318762464841719582981773088768110676353451197865724695460852015563191982153306555203065802514289026265368180803734683079262588095288294934938144856580470887599451360442924490691883025217904818252078130441346840627179110181002232177945924818855515461115261548548061302526326848655303361857914792394793083530587927411920945063818395174259189412660506834596512757195536897670063442575903113392281019773614790780220991107618702212844845758525880827915793036952242203917519199345699717643573494596843197226333583999229132888893990433969947452766112355607830721202182516343107579692892704818922265604576044772519573939529501918550556474253159856228058627587407741395045586872833131450642279221666047679201029494879749775147474599268734487565084410282545344640380922061739847306280098552117252278759580909277664055336988334523032442784636721878406219548162559821621991083188541339857825520018933062854203667161714893203623348000474453663391370037618221940912137565827402942472214230820851254728492565863971012961548051647363402138601787238423569295603559253907432565750553509471074068326758705872589083153619839034203530378690221850050386879048477809845753752066646723049740701186406566966286269000843216783892394466684017411032844206653949632050451342735234664929636599110177157553417183179554365678275073366201061002416581943821069816133105521384370889081816468222027043289067339266527241538982064340679689710961666604628144435972562401459880842028382248605428757582871924249319675451997022161435579664100311895104390803622727008026646614963478432342490919976474985686375888787016615114587193602788011576904425902282644999972829908507621896374627029825802376560333462300751102057193406626645898215888435795201452755826148355218193152863459405864170456241852937304742993143408550822069940039760432204911739654348517040579720933509538113028732255754784657396706194438398150226173579388145125559244616866901950761194163243580850225329886618614451336775000023223563849883414669997821704919753405698705281331126253196246044359023523630024135299465470000545901934503034027534851509306890271273979614525092483407275826601258887777946117585285972004620608312159784212419771977235150023335427609957337711833933164711039409137929250327507266937347461701539597949703460518382694464074185628358128923368420953327552858508716741384293184753906543703660297417579287472856801316637503786823172102683927365774543353553136141092066842011850857752375840249921705454897976253200302059766680909420155847613513194472970241021537946159512634305520844446879072867171721478894505789606987808894452563896177642333235799265594745899406898040225563953709653041922771068833506996979675708629867486838655181603637069903841043948558900940307618084449394644226228575905244326816187208987024476771531032543683028421436873487350627761584337175658839856492373883823508651453221306222525271738986165232373708783172497611776894583003434456195176151121632030089164996934295068462927729757109429924689807589189763872433252518454763636107880791632642255955910093515381790688166282078310393364280078705162836458280229856233512646938181306303887407668221348005676357860651027173406779115528835325079406684376620027142569583503062897701048419473245810302852812510811361643808057232187305139264025152340238906672743566598402767476999018812863423935469984544404036854523849096418408080506310523166807192122124505015580317736244841221671377803740672681849008831953671312408869412093856566707093112932462189933772050622187625548008290288295393634825348010003867551467290490889587985901953264625145779678700785129838920225112042796794850689062254690180650633019921310773772302287188362196872062677700702378982352430238729275184375614887861051965228141600615762015811005456671441729078748788726302164990227700617742211286343839635150548664210526160043873200873536261039804770483516289593007677152468085363417008052401569497577199519626030778229139892146806620340400651927213133919824438367598655808430012571554197754143141745018803792366982323910821328082062696171386817995815380168629303470247240311085224344458415190748946115882950543775904624577409724517939865929139422649336545609867864108058188654818980783291275605812076174150136321578283262431688991915363834840937483100465974091620416360760046144908690626013988963736489895668781663782880429230181465475392524157428170247465845853258759612379264700234015641861749208945217811595817671964150788108034817288449937538678950368270208393841259067997087644254737475833890450249880411647699636188018495386324048296317954298672575699555195533944056991754878974761858064780687343569893412275896086882689931926748899877742283528763888359557890322046049921867821291950304740634420914913637184387955545803867800973470582563919452902228300540754378188126945886542179160737442331039624154745318372933321406684555919318854483734654683979103548597525890398428214440866895767702877671551346232117722341655565761466702020008763106428988328389360408257785812389015441947782937989567296549705695352174359346176779719213995731302038851915955246557113408683694497752413793242995746809530281806671868065945806645886520322109186716939775797515641203812388629155509814473859390192797665857888003836605666007037399854173705346673735873237128691365906302793334887103206897494246811482920506037994963127448728615863265230159955113516846498145104028233004399382837304129715011104574922343570970634394946947270286322796763133271851938347109785466120009266782570805971362274854287395198715724141465362595172238863493660590133495831527849758929870406146181983133512467828733290019121765806153283464427966614131124348959791655446255701739305502466705206967224435911167337568382320353072814613268119517709278883095759590443830757088346293253363190441603548268099888538572143367812521649441145368903110287846172515265545779748115889516301439894360691287103632411317239301492886876227515482950827753129172537570568735417465400515837516576718778043588994042381802497733412155943968989048951689402176058085431434041626632833290173314123730063404707190155015189706544020424825132444114304684106026083081095078638853471048021440603350168892716539842582693241228290151913623485633584903439658258273816318026212090764533450152486826058371706994820920914541517435676621104158362996865697318087442325003634205373556962440013883011714195093983542604762985664973727466587658527611840987454263247947863730221643304553768983446464840053301594575764606700102727310270889403729257203106336485788550214854401407154248955692453341912314823639246467624573035950952333563852659867748251258408623235534072029819041094335931903056436042509770784135571308652832778951005689577812732977158700348914621291014896348592017852930011190408424305963339522754349812242024867881020567641332266924264259948184488641093635826437728819910866446407333539287451120476863478561960747451644367258624679807591369145112031728768927131403228225213512424035887011622156171728606393229579065610079915819372825554638552640571923004948856002013173970019928883468405411245613968286176214243365610398452335029641881849408219105329342689503962168828908999365906151480281489218973349887639771455243163877917273526776811378594410294085014965246187235862292810934977071344440607998121655987218015958779847011815348417158547877770407173198161551823093867846809025178845880541781980606820123157928193746234451924373787674067523870646350234585016740611589572530678881658869374779527099502793495468257767099641401026122089922012234168610925061912105481464965572170451148174863562089814258292533627933023909376349911800759960670071571453693085425846219583298991766683323176136997459135105579446652816681296977984769079449030712596699248018275024481349368033649617674996374538003041448777703544185958293891993907395309162259757292723711670568516725800437100045234826242782750319680538401925246386553384433778135264707684812004934691015388979410285394192782068165538892522754991258473178040427564612251504881343112369305464554801930042804800344715469432748066522126900170958030941255442553050535574414124027948771199840357348452427263012672134218934426592307693436150362992970495724276016799716919116905196426207004197658930534136847379360027859006217269867372376199344447831391580257891141668238479280923686169801778666209863463877610205881910061768547687856929786397451210546619737530965168833546516055734712288579798049760671112041398982923432940976450730012688981036840898462614744613100613981678277752675374368637788200499198856652063185973750421997826859896468770604014708375688470487812128633530368079403602391450701909716268467418852597532916847658734139083844547066166467939868172329394735947762084656647061874543988872790757296868179643056999371638201059155281062940494632948392846814350449283169599641237092488242386881708581999461564271230200130817987979804453337969634527762088478936888131911308802269309443788739412424709529868769343314386760915860324030410869068110818321118077462362624274197263166416866793075395669983644167818661104330169158072078812880039488275641145406507691171724625750095230389067879431574414466406043191023703485148568302066292222961672831967435333905253563484264496415731424792564559905980100351671816770403020062801325147500760657928502628171011473261658439233695482341765507699794345261178236341919603660315186638315848921607723219856371924929736780424192255265247547289353792331791192962377539449741894862007904636902343542021699710094381061882578517726784297580201107155981265564367748979209594523102090430654972972427040967353936740481183353213555178726541227377794574271977547871025401716722326799975346910796348769890164238574213131695749880606346937522255423564315001639899146945856861567768332822965046249399233034904661852574087136393225586264192489486140406569592639853454680316134260093943003060208435214485910910259876962284696398294795844693586938412654850213157414760046021464932696129464778907421612872203598982286330208298931328562285938130660568644067439586958197039764215910573971378099137683039506800923655922805776604323588985346700003599171640413529391718619973943514520806909450410728492755077123514060240357585450212057452984077862959635891785906182420042509613589590837302730235287730472145618625108387613064441234257491281526456306134735068653486618041294323923745589322900935417387758292054730060696946708529129791710213903570946837130744054984564975752842504163635689681900860014309883269405517231983801492366103313060800634158010195431073370880314742730921890544784128908657645400277554242719318718497638985545983948668369100114098512989772090722939983494408641635050318748980337915068256871757707843401792501868462670866973570463100859924716513504095930818451357747924095710907054959380868073536651593272401780598954746150753812605897890404508358665703336340753996052866709868859053553197875519495474652289030451647513978028366125269595374782718083470684444095196318585753440429803654696347363982040470580885077052965519927424593199070366607645463436102134916986595377896341445756348915158286174270197827774862516085939826281155078190009273944203580574327151644696706447574595197624080544332095140221344179024168991619012838561976955866070282271809098616448854386026118608773319933743848248651219782310932920380380329496140172309724740628186817607462942988447575385779270161598706493024836219084250566151018499698201838818945803347374435378065987760509440134698687861097372024402693857154062221961697056032175334282800711781410313979712207426734411082569313896348738406122650966025017573065108231897612996491064399339593629625281403187168793643499639477191038877883466292372320976499534511448899431735272687411900397003443578425760065434996535088720853659339836663022489450948881315582881038662123973158138924773351638005345101641902363032218334585035620760353424800085507900731046701417154983815980888395969727278732448795762915450606873693585250135203541580203713346348792725975972259637846990188481465770050866911378818450698361300415742199207889063246063510226093326283947325489268285743471427183759055764820741358978973736827211945390895586388230965130348638903590646821515147876049318072137016875059532383817030338718832534316618125683548602026028137264385947742182432080645523270259809561889064313254558103598733414550690993890038721397764370317349048618161448877819476147452172419795890812339887261800445760182389709103300644001459466931271552992162509863202098334956959026039294517652897414811480232719843451395221309782355392549291648085292178526812940580662935704523481108303945373613385054416587390374178068851582224200854696047294363578949122540903201709010804383013710461216431046522381725806461432311788617846181970382231861590880803643381910529972560080583855032740738843056470425126094464001431243777368665464664105675181235000225014760344154885820868160741395670427170654826780912886907818240457664457929601015052023191088128595066888788202119334996155853153902181734901961432545380608167299354604005091613882112451531972668611955379727388794136528036912395978995700725484942789972234605671037908391558861036606306610400348401186800938528227921547623486177450307917003683836060781381967993077878918062465604455383154005585653736473604255561590622110180345824479491625082900354497454180150719888370405656048441787545071226157319110716497321704490692047183139608709584488053239129712456133861875020179064010672442790452296079042702064781624654304991662039881449007239853562197924532755409262749034293811023987079890084810925688040436403824663539872890242917456542508575645204441115392221581970657094341416522978067205543931611085115842211432071216010193957513696598648635007626368048713522995952769359930755925002309474343783012115882067733064142486408868768818077432850340196765009513926554343708327401106396488952564630837191173509254284237765971286643890160846684355703979504238346122784927646087491768554890872541997640523881003762506580521905551561835153290446556103964461484735569646643554372414139532756313216128794408406627480873619173607450475464883799555482893212244891032753197308729027186572485600098466801891111574299336975782067458422024096174325576486977628301413724075687666084889202394384773241429868755182857601572624829760559546646448081157777239338829658369770708758402215564297718291401707853697820771157836108148891084473867048665215276839377927404266726937262948897169412195827284528996850209744124357952162946780741327735284430793319820939973045605394063594127741871888138972477691052250994652827115560009924995183066418254849155217645394296943299141461736735326852137755961921851116647565705117308050533392740273225331154982197736270819521958864801310385255569001033784015752528484155060325616804891981064738889215095913451886997052822366469318657919353116815167730406523964516687173239417227772595736166283008989823092552239921646941880490289909280038046060647390160928812646848482846067933430335649029972902738208568746760927217413825585783161143025434870814090959719752654612745792454098726262644833325765848282567152309133009179708322843891160163937335761661447213323940166375942283617005763674988986283045031077158557386265997121338603660821627158073446432494362820223991541511017446031210768727834110370390715188093137744307328735833249830451522951856260269137198839937953312956122157344775856257331163205546652442098052041955250712333011641575668554493472789034223696852652392637914804732920634552178456576322973818943959395728757710551870830889086580296178346385712012136563867348879598355391748838971265569494189217635258263336783292152547406921961947699317778011442164467245968472793598210597539498298007060228019031151095690242598883154646468963989963896738838642777937493058322655393336479163623725334018888415623215916006688390939452205034819909501362506358413270018492843903794192732212399919087408843744213386635548603322997295527432868818179084145867088814297976866333034315377603391666182580089630098222728991817191287338147999809702662541115760206583767202644337433408881030270066480681858408002662835492672015817904800790660097311832867663379019307875297425612060601687385137109756459688927595161490453166457030872461299843293576652418936901118989644367553945638557194706873609177303504614086411530586331352379376891847921711753887695376344282691825048306675509548957124139413507996995949943007989572180770648305465173190178771934264297415241203552008391277864723783649085734916472578433101196373554544349237567226194382480426886735830005407372365491999839597120828717825392441228603011041211430837904884171493395513221441907290581988129360286995990272991751098107238046285903212775033562078998320423335549395794637049023238557354653174418145564472453280636859572893308989909582531688117358299941765457303901162323545355034530770233497437013174467315478260469093201907880777801847829228310377470556616319358472691861069783801306848232451599220566103435753085643109815874887739659249860548184811245432185508582089602014902191435858149033732737572997610939597539713853125460423086967354089265991654748673858476302762518944561787859684992158285912600917802845627071622384004589710547945780999596714813426188692555928604938669733901325658217727491134691955550730942845962953233212953334337137018486712251802720763375230741999396426290682012007590135061413459491305989569120852524053230315559636777537887653664288566902063271915409281132678036091572899400291679818182069518996837672076409954156095542418391117431436223960063596261865350398570727788347896210975795497938636054538362616593581305280970246916662804916281761295542721786263466453763351683322039647167197067755123103841805147564814650954611778998315706533754199246467864962724634800651971979211627956773927440669193615252504972191320389409415439310328763577764690039088566312616946478493805638636171619053036816074813271839617842415849808532407275986748315997396781740957346947628643100638154768112575124029205738137495160346045034297704010552924178964479906186620908859320968150717611448330234754097048509982633698574421621192596838947707984846817658005767499727988535658566505074761516342617728413291187883456640088152247318517657723821218071269053456393202742436639606861467806029762457103891113442365429291352422454628213537482372709649850323029441587519248894785838202928977093728608581583240619351988769734660506940423581848015693279314880076381151883397185525547236741084684685508974189937596073571290558390661127429554258941014309763105898289590243037573197852272899584954206171937388079893002934875341128315300621993679407767551719631339834995845462855036314481148891626972263865987367358131134927014663865739336544076404994295663163162534211594764250908716379145154420021249460999897610682877759154766810461324507614151492252580499949887416063849186284683976090561533715440964849304096618451116480297680497154157906972477371340463853410839848909852210991414303840660919031554515081346695117935226680827431338820907389353901589257902178584504102515936356251787193282152509479032473283681110596712763642022440095263118365083165001481326761280636051107615685732370806756929033922671284072297137162277773052407268320467454368906723424456902381406313554255149852648243282207870412781076642889988046346939154311161190771035277361385668235983952629342322910771948009010770438086374069571339324376649779803183078963536761634581981336520607854741822266904042065425136650250619700556588631736428849963237112674042696903801235475866310513238536184217506630529605050937781696242889201500079026116837321152437625518283997607033768040637848488780669719460603816579888656678211136267975958516668392910345888513192015946802397641127250863939060428180858640376412098596965326058440481155425316372172909266000809015499792844293866980295462850298112775634989517993620345119289005326711345828683926815434613805108372198976471945443384572694173472589636841050355315218570729308158043798543649461759676311589283019131107689490851720259551006004171818942904808178210402738073722806241741905638252504194138981062849894479641426085976804608892677785167226218916145371700200726440684116380629094193408444524284837262160857315596329820391224814175036824066923281839656407372368039576173859900353366381266519559825280963525694421769418136881419233601538667242706096194664367664084739580997869299389500628137101529013139402582257690566737111759313992959686489973250832541296221349532574022607980779980852832273824563889630071471210982025763532524407620121436048253755484992464667381045988451038105284144520595216513541236691762000757279588920710176980149526236788556026303643232120932664354097710971456041340037697386457739001626261917623455637298661206730665965728310384526824207048647530689414683344307369362686400645229075629884788953778493632218726405602584113584870266538460219409813018467488922676763734824551000601719187864037728785794347874244841445704759621130341240405448113880339595308526432146083440790418962460123907443365674449044244981284445349268529332114919510451340011265120890223228921545311736061271501082995906939644694343954828747097015951105435752859240896563476816118954645971875887418370631582815375582967293659944704725616343096770364970576696026879303030015686820418402484605305617977636584374693653231846549092759463384858241253361559140875616118912965095502356780831141219038679060345831275216745622094202435775516087598761318903673138190056723816596387696948416638487935210863460047320816051222071532348047828410252342263124689218035647877493882400767887654481966054705897349597588351257809901820007159795718798395477240752473826220305602326319176707480412556939308045179475212917498915508337253394507590757421358267555578746914150370826406432223303541017324896640192355819466509826820737789506468902619816136246182651977706559868721042141809274798921884387535042343122158172395897373130576919333453591552970872080688205540529755961634128032648444287898380354223708899776612789283929965520747550601452856626667952470145146606289811449564749318216090617455858278915648893728062436627459978565344825964063259103201927757716217737826836965984494441045569895897831431746692219597464322961820721639402649542601842158423413828936749676556338531040203792309334848056966889242794595775274881961925223153133920569132166661743131186990447323879120592228601825212793425282918507476633788068463493102942600883498038482413896423431321135368402267050806645235854625551745807940103053699065954885991041545180761768075686673951887487966592821950895749954954874131015173913076242718584288360624802679976550831919915776477728535189684352043956922381044160682118042243874430876263484613486804727527983676988525030641654198201967862975014671825158952102309025151454144553643363911127390750217952894179898162667991548761139663998238202249126439006405969354369968554547349873275312852859240658736938457061126212477622290094260110091975331474269979333367982060771449163873372692027738105199514484596154143270258362447608475732999777303541820582817394838177178174956008890874355692073088187627152718531440481843716252322110364937146955050241419238676563775516752555390269974073267847927167887703070759563728863407314960864822798146498082714811677861595818969670714675753565471165662341109699292459831476414597690731815685304467776094190766099997796820817087555312223196212864599080688242950699973497879209752285157948515058848804789882151422361361524851829532014271965409716338981687861173185712768056433219499542077620989239549107484020194386243122028603775535923161354865486699787606287019451908136299658878992926189610086892305182857397572632847078247366986970459587972694355598610435315470306712820466691188479839774359559746559232770077826416873543829129922466579232587298777659969352286777617990776661883393398628893396920567571243636685160057862925920160496279283579773627572661776170135423273549053853639728751245711421073752304916605660648159260867846648959015240193703748582769457444690897724162286330507051350351159287071349376163156537790900098108605946787784964619354489422611449857220084585367806585620131012224250747770094633993714508066211251679407174629569662248078705258875359013396228355027867180718481757787885603494920925896009363432273628052752579523705663680697217428903214040533451257343468079251935092453305688106322932592590156869192754589006227307892261453925533524258023288856184597431394812349910207535979821101434746770198473876347040122948512378165818295947569606838460163478556856006308149050423402479301024427166807911799622810422570837838963567834223554144820360183504258546084598715711182654179821858653004522252094454320088184660464543418907158145482524901481551764226611664949927594712412444705163650658577147357412609227776617478174475916465716676289092940497821702913891128072639375755366702841523713440192252488313638520052421477652463759879927377160663200401902286655599715483319826938546119550495219568261155739678679486049702018051956484688684743133256443320338688063828035419828400509939859111674140561348329592348261846723277679598396583867155994670219686429800539170678429850860699426977013229259074727451565983129479615614422967320912239251750248590541957278189257941376408523727270423097479607611278947577803652559279487757908539185191388067681967561081262641744582487530791461162313336138488592923043930794379093260230951123858715162842233137296208742262740676865942824297007803270422144297592197238895527924698446807106168740150813354398256273429993016766475812039450967554902085481578406300469304002254073087722301464211861471277549833563965160390199776668276467388391099233829062236890625720926881908443732997674902123101008385534108659952018283111209457531177683254876196449034865252984979903328651238093827668395366503738374608057464759286817322168447135856970315413724886557227011752945717121763763928584651327628108866569017976314105803052819187015963063952545686640891440573862302287911078759444250654479652723066768504445576542846340859138085452923795698265142889801768346992616177533783378572077370428912485057333269527388996039483375804728526585638364842917341829132180740920508617919018284653998281368367723801465758263409662270826117052337484338773240379028079876947487778469803113847200298877326234451845906687214721050112781695144567931851169999768841702247208808420439532350302816714495684134598335913833690559836171798955589960439316364230769483738682620514254616667221637389916896620521257491696391714514714083646699151655485185848848076324065036316700486490989266212458679735392695808018893818618685275919549443481342621812641446983723145463324308112143706390952435093505269002306205509579727575207429326396545601151984596689708115519306889253827389769303241043835335817285792946153172454569565126033637700788500996116240072831770655827833791878864207508083918294445994381727047470696802414267967045547709228173972643639535305478529232904009721814586855864340716544294761695030683131355296154568121583912105203806408719486193647926429423533312349922541725270242925128722905972490919606137113719676149087195157389905505125820637851155193559295340673982347939592511266563972162082529426680479125867112865034102443754536906948582171093386092670130840508009180277150806605487454054952500142800162942268316552994978238007490020119419337443134048971292395725586394787729910874889842348952939705806184071658324691948332950034485567201577695317086906477882974545642036042828914925884412115196360550057178564258047229915744207042639172266151971331999264586942276184015846947704609678040919316607109108262540483767540768805231085896682413169290006470001030978629964320935711743238106875733124496536814875179337889353301608509861348802155747903777808160105015041580275859393079677836045592783609729721513921428057337637347438707047289364855458410906947800969171343533755832439972503931722475589186397503935775508266989930590294322844217121424586873662588859185897515630558007414993281335091886631876727883269984289075562522445625878618098433225748223580101283851541190025630258859185904583376086282517695855528029022886122344352956214710995686847976288832483575503679104611330063524395762972826891757303647516262774619175408165680586970910369536250499724836028601116379292436359675250925215589911865075041977217548225554425780448455706021827435298229545241926082652674612101397345315009728229036670952323881755589314311485775446042675024160768006347023893438596654578527467366169384197085856059851066959924202677237819316221667324631277659954164049553780145571731153985394644501225273266630022578844192917043829338582302465574534916908735165119897626974061130053861123396254141752156706529802147914825958915842541360587937715322302316404961718412045822689830570482248811497538572019809849629588283811428463189734638074331053063083122762601208297769940340976451778173741057184435150476255152200429815553780981377052494397020351103128166412555082434529252946447234506459585815256909832469664577089979671151993382672247640685633745934447563162188689931035416716344858276399965336339673378139140782468982594091386463550337189934203564037469412600973777295761680510384371410104866317198583746051491745625405586766024997266215523057055417771980721971276793045641715464118729799884633465186677010653304781177055679711777878836171399360164451319170729234337573487165819676434135438332641728481011851405940543710508325925653713710996502886542311455398741377804702708305261208477647359478876710505888803090215316645567751076503362875433576407736689923129321917403999851386424405871936414728863537198376200303991838852711070774498065533533829011428924763463386694599307605777706910994357889552900264789895627602428737185423320838926194908735882571202429749479615895949884866817159358047046206930998944199492260770387484023142120531551643852831346433034050666538862245225714003841967467117239075115241590023912719996804834576769384912562150565217888797265051168036307103182114230770847123866004112821018612831194059965542746890197353264766355942780278388143681452639445443065428051242870982140813363809737440133584050198248205931900884920705272347929846775505350189178905610273694666549832751235930506916215287836020090027698347299510439918864995190795210644381549070669117198588874591603805984260087822079042652854341362109495199481134771280963191274501644439521424044863715110139304876786375051121104468545432483267962139490595610996115572898315404455253591181203243126859096487898010047060804039866939794390277694470537281703034060712097509349410048905839045557270566439185447563558922156737985757102057791195361490885807610844134155212817058356530377470835415829149180760932358043385254237458711527789117456972148928480921142905114763234145640801571396466263031569279502643227374528174897137155596395990994647246410751601633505740955687612267884128067047941893224172774490402921218915291640340456752868820802084370647401783849900129638233033553318999289701969960856234423257036536746324698668044255870175423102341056254136180053226019720486687318961824642605547132828181648324376450056324471134949651299409234043924055065300107618901469085638452276469106098725882612503046809466959653137146873323903749074482106193998278858394554383598607559471492922717354132389761618473155251614531862487755810149809472827969899323188464252658306939307184618350990738439251567805116599422827635427627723658515367074784074379404109898665361372733355623628102940606639032494238054203861910585337360770298574330260286266112337121882657232634333905739730926093242285154804399475726881340113277812877764313996813463570142159561579179186060223506221210986771013445661493524932033964264383341660725531929258367156717162019091819168473012984321622425419060613352265935550741738168589286519583980323825503540188783878344234723172099990738625726066888009343765796231474090671074562291222412158905396489043615791504661190532714449181405624061691301985907519809422556909332660755701648994091159300702255137438382936356791654954900478835020587625756136175438575611929744626406054158572753966949860694324357429975854607138951041618285314461248614380402256253786171540978613629134557254090720122579638617305891664904059051505871815312350942504608994170383291015299863673755783578685803135471600747751852540022531329045940279732395955447739510311245040383873167686362295139396113138725863699898398079966677628007966345803254718512925335290530306024916749451714518252317003732849478190837455318586202278658791067050533150924955709391311183807363650728979632067050680237139481338381106001246979338623434428151008821724004501092855783091917852028204256071623123763733694189240924370840232881091461220164446003636604728513598067055789911007137734264113532120326607229100616292017915294543169963670863198709171657662404811896544334017876486483476996530215567586852735084462633234776591397589225766249833434479212791565903696753810194152801519016026648250929527353515523557709550755340497403408722252573413678281178239442458047590159332494931712867560853864151013379461825174486719177797872026180627234739039614206963415427139928256740025757638137965214264100930464240914564732009631836837331814183808319495970586499429404700281424937082740898537644041079446066693020021911156572871039590861347653735210660326504639943222603954932800579676587177757298223126433446142713434131305963197909440978745657460967520057147560168092694916262223872411597726604241481647477239872732543384900979765983426223888145538539971092249188802881356253380327428250143996901322115552384082995051476950257954339627358535656479756659780753493045082342803531524898462399339382851409411588463355449902474881257475884297460577564346074022882704005193405671932644866505631555537596689648942211227891522918879714789468162254839184431875774851777152712036306362915511372609967319980335343512818873119428423731854591361604021469594517272471508128277621953362301548966140674498949284261329085829331185887227904380224560172238814293612880860982577919974313574158935037686467778481916824177315698292042148062309941115529362671218372081860240076520814014808902707480384414070128063776236024292461073605651358907951327335757529450910997138049291900045056444983008244771919159212441644790388741427556063929699436804027433117040034735294560363389035106899287697279321176818247364839717465358540172684597724415546371356892287211212072704336066035936409385895046783941887751995255348782945665279198311629675853406548480804757886394898996511627928947498261387620869432118742539710511413152858250359006335135577942037437064018631009726809657552663157658986089249199400303073354004755717174363999556522322078185277489470897319422051741486076423225048956905317447689570808995742081000046887479422772162075608096242364002710329538096039904889682780970046666061389677199394363030168637378568927231973534350947686067785258695927829640426835172858016304847351559499497539869349012647176461556814049689317447170057705723317665724808565843441659696195158994723638582192129395696298073606095080865214380188743560281205269099460719947862750428378305377906640529009014172515407204770385139081767880043242593302017410463118425028702380962274168395450016124475204534832183670064933393138645923846238406389277377455300027924999728438623688729480000984873981200027310624310788950173554716109985581992803149484257052211698663678512635043083048649727143777353795343487421802149472441122045546510988128298336787036262784556461481789502807215197950219086583515307240236803295959980305185419900133106029151043231632758809695147733003569171255382208586052494870482946426807735476822908625332006741513126780180674949227404881681743034444603333040675087784119800467725291052105975768420460244466168024641974324025078524019721425492142745588601469341286318341887014990461724537991045342879381642240001220739056630001641977510698246111447453600117208674608378710816798357387402470667541211927187834023415221625230252592341608304305436240316150941079260165020779738734864884599603465706214746555018456525149320544483937498815085771746089900367023275486425493598397880792856001201444499346939970966637281406627167419122999778044387024344318738003595669029573846442610292635858038005243892914943170006784238366207979825642949711189991040186103202950437275418133833846621620768165422553566928954053386610063620915482417573530970724264484299690001468846779211873609061075337725916935401049944787485718230529339088250954201802671571871695145902462273246707085316127041295243143312365664880282738184904222650340004832632998711343741849640625210950490876260726990917892657463315113046405867299020523190985197565948227023043339867907299074811093644463664753507368833401975192593753065332228592516997263664437013528961455901599733452657736853606063232991600525524380970571597271065614268892964819003032390855160149988307189300100305827934547744034339644319912202666733580138289291691443571937900188850803401437595785952223689112426638214143996683571606269754453220972998721620943033000856350520787535346130175305410442378964529108116318605794115103866482599477721249353488410899067782159494562922841770081046360999116877611552149213689959939714111070766124398545091788397374126047670511505806028939710536383251311137219263677654353828173094417474377495814707153376863414094955236333205557685420851230172115722719714277714945848103554081565980017370982200183902046684820653435635202832055746018177714380477157396663976831198381830517485893209323335948600502564364557948105775889245894564869233862598511376461644504669622779995127429110216702737146294273197685100296527933523519703048067204089517608274198124417439000771077450097575106735187745104976403938921959478757253583435863056830898734208758313888264760939379790311133663260071959320819647016546758905614819444902279264588746178438474526269809486040665197083421653753281186444868289185482566512554034236176592506158408202911908880054287878822204398172132746623628027390709680669957947545820039242073261303698016363756793578487340577168437427554018624437085874065250465499547441062976056575419339464675491696134873367743844077470947149186921976582045555776346063254080866545874207630769961340261054083363648654363380886882576405305548719183952883709741706245267140006724384479907117497464903198572916123573113300191224226252900805911619311854937141428983303332387021131922014638328479078603118904667079737568797695209858292275104023342441225125443194112594228521141748019178633910918648250485627268888349811706960165536091886206760583075576418537120546291453972311024943241166143029780845862491872005725022998407872767619534426196143466324074304004473288274477650792524830400657098208301592376837117053198174786787760822299925960302793907669501087609703849294497672146190403724370390854260649953029730090447573978565820953628172280954722664916860153098415060804204492861189430026125653752075600420675033739605836965055532192475130737667965864400230102049514350115645777670771889345138311008301940238317519776711928423363400331408968720211591369139794490985051096670321709182994682768546889308213163874267437973452704355852439787461038714077781345851434494242048419186691539501733680315740861687495635253173747700045696915108782264845210054212848031517635945161239323688074213319173462077208370080874926140925231577000574339454786094150282318404993526340160766858690858025963321755480796102102536663920215369285817122121692328021563090243773369573811939741136757273092167940610568214083747178122674227242190367550558398688863487473145106335300470048770712968659332841802997859781155765597155645129909727545654689712987604902606432608802991404273554099864412033529263991653979116997426107594544653491336754373280265941602697998103339301701309207550179330776492506699762727092021112528571819414282658507752712240023566292891595420711931744674458594711001583882701476990024346056500683747483035598990578750971236033927573527336490094120640085414397393287589386638349295869929260047897628425280444971963065356458247224618616040261164774415834817205024095347953329352676512792499284162639397565412130793812275420643086362322347289696558673891358278792198621200014343554356321555253677311559844310281316233886669080171741147303071084720670894854882852392339151976633988721638934799785550584767020025611328860648065648555839517797140960429698718883695046315573922672404680152134885144955786811820022802765393040850373361564908298843520018587458409512372842740148366596442404074582658625968623512998304755008255825065161106434392650104645728900113295610978389085705071758626158606398084926165632804440859417977493714384731142381663078136345364738154881194247554746839092994620360542760849087793572180243105790555561064060092026009012021017323523600069390545770995971403409536430182444357474864240940253608082561448397496624034099637881724854101423760696460385180322426112547883453300455754461815091758799121262322600073938278238198045716992806950574932047840360505683154180245788050359884659481428778849073471381834342492888285644094328038007619269710662728825617658906581325752223061857098187028417781229378260224106330586999016369464960889224368177487401914609802478824883320151165428846818232514850271233614861352375089941799362925202084388534068583210416213207442718257619069457266562960845419409589592231916908833317255688875974501427156382863170113482621681256849143701232871777931988435822309684264343843901443421780938026339963286016516369562777689900087723032399138525768221564806652917143046349575888679290953438662147281349180996691766859050914975705705934189417748393109161764278628176960603638392486707193198698986832815905478610965212574286900976058206008677915849652191004076256229410255511111868699341510139271877088359742711315472634742711922219716239334083145840417097044131239955547038882033875579199193537601734504873273958158342917017178583054594791647218981091880056184593885646110901070917045516462805204692467110066299662773813425168255778842850477996284123928945576333932118820852271088517937816753251362793524230017285884653272203899621181835338926381125282731333182669062088007112835923509533012254995903747414595788421289407766306018748849946128805302758852750094374688299936676749907448155071234366650927033114906494412890877338654992641756217676448329286101653041912838136773989545642797281954920481577648585759625294844798077058946340155147028614688496172277565335860078723714141690384752114745111262160649333773441463479319147293687782665403951299580333934956394380850653562553831736122202360924264411982190410494520990114462607463537541553391251202271586762242979808412614952824470252096597112114869119635679671793923024311437284646175541610110501191100422447360503957709116079445638344116548219379867423243863796033663357200470063673231979874958558234971599843722544865721098815439631799418739705262185122698642314726751961899824458107747491017903531622051835661267517137843368258737420664542583193051177646299489959494314515632690254352377106778681575604783760712127435702414180884137867353487901331801870644489412482592943801693826203182304208622377174338073735740401867784088214182809086804812263214129686189464592318492376680653556908557243585766568393414545898248654840869298805678792610984899898165433545587123673595989237991477408547154231695019200706596808231156823811503180870818306777413086348445674160026244535411817648770921908574401909154743823650931214980948615413290051310300169360990082892456068683126465142280871334031023900353242689019507468859985708442302905486410665794528015795026048583412354393052293227454497597610387523041358148812302626198912560428508950617171516444897519413154858238518059679361008146812429130275335302306976180306074343218975721097126432252229894677747798981915784278039504529713668472090160677170354914045808047007953263522226793787323231572113567494791423049969697174444028754105878014175470867544427998987296726582738798183667278340468285431345035217309243179713875502355058787050686242808918006552722013462484299797341010578454753238238852839196948749714534725342585128480722332767871395830597882581301779682164472539238250588885236143790603097260494584574962365519352394952116620495454240683671094291973850194808184724723590684295783843413983813519133202243254684338242390760630874760980847221094134066581245225449912795991165810706583326463636424159095053955011879921168372869036786389411520637273638417380457394441393698207958427556924400746398872462836458410776687464942483274102248892400041915367343156649638729951911003855894924057584893969568868104575178876143843561262352863785509344780071717101901685264408316946742313217485926463466044047444621183691289548372643603228628391325849402035378360751117031969068225064611881793148680355910564777306326599127899466238358374764289883842100136138696444385414702776446936999261931041988891228135206806657383877271490300296667461935441229327596423023821241518160956251340479357796968533178188015785870719920356949247356267560271555838395291015740457516617433425227697677498440266496270439793627795106180559415705282171949034834889136007451494097491375395131515480407955688648352241406521434201733685711730546924235279341122385043194880570958271313156600242530385527044806456218342798823962516574441610712668952853290325044040693773871058966707108800198179435220253163677933382479613007820554403907267942886052189780189556864546124848418942750984702528928430942869744381469862473305153479427085150757468596863805533767523507411617878472782515738558356334284360135622155736256187702427455017742529380757524127303199202698916531044315684757948917944690581708289891070837506701423302468296386818563489291797603406069224734284064248641010575608177632332907580490583681518392796349565680411064715422192316434513689888972376200407089257832231990255631889093222724554524159458571916260623605017180561913663393107186792448994910361537698837076357004523236323439151017503445320939089292395734235459630074728339240263440948915903270934550520165282225723153531086312972568669094006997988290652899507759752475129793980546313441530263819166091816326701879728857315369174220074514069697802783005603536892824013642161886121246629686229209353227978678313674217482906014767005540825312366678726814191406120481395557518315149440442357605353664975150875812302512194936777270525883282971349203609453219871089367925930944691310234533961731182933381725494779116950635667932929619470808484950741838743299282839577517953113032414352449014669891381223798933880946730793420399263210281855975500748139740370471704699877069135119892653873597365785989820550895594832574648536862846094399530055409216989345282438280682685689731842087833942234421136225069329310470389067368264462292514465985847448520423132501786511027286369232621400729092539854987016085197751971713436491027696975553168182323357312959235507748373996946616108894485185806498492907792115231015352698575760046043915413753536744452320166858604803492478861983955693881228592461564872227178642015927103654990271105754168173446079820869973887630354293302782442930225600725909303998138878892065906655101329439490874191009598999112859668882060325284221354880818609001316306267102170316595217490915235008680188995723242249377391669114117969233439122730851598339837975912219834447184811830215635036421429394607501786405308291957130123956264821385778554188412198082583089851847724281925508856338701627599980381588488759053092134835907977846617667014941669235112198440423408656750489104159775009708630615940302360155958197074862141178768948578602060781023817216840449829725206317210959579719620631343669632440509666338660273304901532362235387460531992521911815215182182192229363366596610830661928170312432007192786581194623070680953639852280417432887006683460838098874286158074178221776645895866403794256788956184653055608039309169716396113028673446418670368209986391810807316842766529429699704860127526320539912315555003617507483598922936982610930167198285288216424123501616499904853332892667981938012283611460245457257356230434755351608844634535290195250593659027341270150265097589860249439929748237951519843194037666409527454808795601002991727083346892129523183169624083950618071047113786247227987550903993400909041873802857578342338541240577522694579811364635080093901725188204452937683462782260254427034276492510379621185632625357622196342777166542463432408750757205720212997695551354151379587540907758622553474216887627105944906661589181627475292911230522054173956009963042535434889964870905066393086258361523513987144990033897799633794188975970158019389256278479027210564273040884776248708083962289948195962981427498029722739353343428106071644830250829164073955796952318827234336334246685030880148259084934050479140267852952467506698389506378144823993380266538491001096830764625351167958854035912756100201169910825433262897031549317165408925786819591661813207740427396606531669155276017765953371723221349755411478128801971984291842483211438489970418808925381457300275499650266968777527499272044661247619884568758799515025224717397562777628525854281814938324755066041054283802612081522905994686521087497733604917315283902574853841987357170745403085035541868414737434909823246661493842292244403529134289259531117664106292677820606631795489371708133352487816366346781713791751183895738995971619384796141151612863185131246434132238827864158193112423765438295586940224685131403951955278931899441626148185932444555346868718999843589105664671708921815457987179807117803174800165171483149741241953946990905462974029373202710935178342651296395312101436479678293750032811521643530678417813822435701158952900020696045070429389720366007892790203312141065328689546025950973543707668499020872962165006451024577774519265160519953285738500438126843667413173563724098575033059881890244179345230530415504247552717343366761988199077105710012817905404024763827029611279007940410170955739133958974160778625478161883774224549181013001416370599943475780692663843998803680287683273768930286892313093277674283261005556899448160567731038648176060713771857623214557369834471923003859204015785044976625165063846246291846193043156664743299643657419340225964964125453421062164513328827261809083166048025760684946712630603403576731249261519285235940737457219459958916802463503982426972454213139809858457184207123230597038892511860456142219857742602094185480552176481342267520912964743821185808363534073682245413864411236531114421307742668573433736081433971007705142674843157569752053935546942873716396037324360936644496088195355647137930511700545657920123633322135568335837903395469517351597803353981109333511253083449522578490145356936775507002583807097280294742082698951468694759840867856767528159076811854976525249007690703058224053300541092764683462290708887633166598003337659675570634454088701165346873856304424990598114140952201828665959682945627337610856294825636059666793115742781276473741688820865381477454556316775847564066862421260096751910732457683847124369925054398214198096097948470754221984900268821299899076213879352209160662994585274566796208070283003367021151594186009981452870368778980120078891699572939100238382551307666131537612933169777733811536689678464474052996802172031950416305512306787064990217689936459527080913663332362972872956064229808279155383501743411262076143578652009943942187992836978870773009869505751328307445353960205494550349241968858871583566180441640087551788666469554727434976968483826452585245380735011465535538919675935211597874303426816067696174105201434801719800413389916475573283822028260174391066088990721164916768676194637301523308134837659561146557569341939596843270532016860629044783160051954024642390082698061656326195070914127047669917035190034042847114336036274429919984319868194738293464590890311510976453399094702685790018024820238037929395159693706529918816914243666350519519860654747716939024518283583250350060146024285533040701802548618395827965954354342571346561748302099931294115074457076314845803492359529391858354458167961638715480617925649675065735497924064438854698312853215841265379708283546409434947624360605204317886714948784365414598392796474692237669957554362588698226981992594485096878102237996776804960131981364883079982358150315025130288721536764079468364308427769738841898412025022849110650066105242061348258368078870345277025702421522052861468926852322617370740727130702511671337190612925919738595524087476743487646924198460650285325325418556866565174263648977512198830596734281133761591502264259833212519317018799341167313962600154207431821040387085348442686887250235403770827124340789050296215575434886882766360468752023414448297316077646535874886862686386609187703754414037695920744491395180240553777094706363496092659138072348167223095186372649776662160630135857748844858956873611925624932765503205543663074477768440002859152498407835987791773200769613083261917656604011556133238785305966202889693345388673013375326132805522246074776376562962190964655810177858254759907249793607587366891933907077410854172803917074654031676593156501662006859556541716789048402466407465896449579379534074546321539148978934162253492704376385851501857293550128588736461130456607566401457999996687362379043611748779548814729558337253978860115556289841307922272640825311203190639578346403008429762524665976304736955620268663121680213579924455919431955824727587441879883872172375113639636618610546298032201907313939510649878921145288169537053098368396391444117467590478039422325108779290985209281022969094000556118750021474975718051885606985582649374824387219378846400349745426410367447780321740501698093920265211084101977970312658133277598101901608642164126084572824409792815649434732190381584215212611345619483738467032671830221174555087084153304644773518094676416337730135392997963337116773141688325773617760013137259859461836593548000990668074952870807318655739071408210670462542506455869563033861090820160787729717303827068753740232841040285762208674678761479747545707088318221843757848564992185065431587394670887405402347920010597532528506986730312019774701763554247603640477993836585428448737267394236477849594969506938727979250824218870518035546911041304777325487428762258694833227433868173390121899006568723879061807283138139306155053696731456096130406048357712947293589802960683601539713635469101772161439234128385773037312363892198080132455202499014966164796622835013444954901496182121935068943717813239431411972966003678339018667395601407835197222527442581427529854647816880364769016221959277347710474604984242335789779567886725161542333505149065627044573199391053732818375790394436002821936182869566163692755960380103835027261088344635366018037225635129210408589120446372970732101298781844077749605352882699109269865064233730280126611987918298978232381292782715200580378042996116467828437163689945890048275744776254208057736068721712034082847777475902855656261556372428372394816068563080769465579511779813746910140366610950055152410430442194152935231013082055152986342949187826705311256396255642486744063039525981301292064741629460735908858446946413320522503620775945103849199847849566033527088370883595191927767530896946236536702104995179401896403457499733362863831077662623370610311842138201352955912420506808790983530443503571160805169924954106146815475188431497380142751871844531546049130061673367434894773473947251671424044374802086500754455097084240340332669259353332573605206194478009120758047895011227901088065665066076791542654751140884470802263992302807247524206289723952082587892099539746703061972530073878614090743166080985268143909083775128282647488958954829625427903170374113800522447213825380143804325320675997496810160925403832662253239385103744638078768144791481660468909957303802913619340744336541018289491503251776622230874611305498745745868987571324439952760750851993017853698523712473425085613250874665130172552384604409026961849245142242007735795598631080569031960775083617334489107346579943799563079068223256828679685245845734559951410668749701804160883566332054161091216368877022901684946602703976993967402615586904227991436340727130980874202228074484975186313886341392830434460076952502057105629285093514459104791751403725993884406937478659944604241866587673037108388275256784031392726905310111932183325745400775421188678286737671730688427225813499572861288379379236107234589685687231493419518021143736919209595555371645387866069652481332466222207720207741254065701508234685050773660305541499931189646763303626286917954325620647748401546001459172893443975358430452950251765856380066748143438696789342638915096199867367815335658055396218214263946120052380706368644198179536127380235174712902568567619489212229927702500763183103997142505045946130331932417176361069439307272915666751095185092144651090974038216827831993336832861376623969155811917191270338185096349934427748527428504865380183749050743333793807373367721084044140428233806191077682953823956443044223887177066465298666169838879901590610403548357670918970185517622226574405933867437567813735224799724234015702141862482856779811071551569368793781052442238276956588979932319980326445422840949116775930825801641494576811541270528506218568298700807662874055938392868698617529731018916550744633235440869968747092150950427867782919935839592127545755844740791592661896326958112023173995547853249316151441507926762825415644426603205358575723891286369229845389599212221531271820868484157529940546577883242649002437579431902448684899016763280171332379424251219900391804893100873194918345093630383781380968403282244865900487948146314574290521956027524416266378433487158969396941328053011175254381673259308543959217437819319792218248895166685534485155789886906227496758746742170815226081667530503292915331884198627642281749408598758428515644419618741395756424697723237779599998332523794951743735127415196371767458047118957785120326026593896666060278989391612775439406532010355476044109343642805914798206343759397155256320339010777982415230281830970956683149820048426969044773870580045527125559004561356058269304709231205061168846802700438436872782983431648566537455844990630371565185572731736279854374419047451714624607944938722467567215959922406210254904998314951277487509201088131403512636745237324723129768719951828306496161613202927887824498514374631309305377441439864327785211577819009159156216821998562696734645934520551851783191222828347572570644630499033634695480820521994127877963144991123242401546542442647510407213967639107505141301041618693111490769211937796789831205627856361919437096136136322338059674093808534697043913402013400508350061237127527507605498050289880297584663640097180626533005658610995336113483901009764472476149169534909699022822957513946971709248193544069429828048417757892261578323371567773816512190380109412023376885334196787197262758757420199483372276809593642174658983739179345393226371455572186244947301182997735002343252114668075329484185180989283971255924429927915307046887306435225905491787436893345826360222657491827566960090261741694401708833068147763383620566596178457007124169175180859022352797172832207001709568112733782827961947021165206623024787790497098443492713926032750841930232108684511644402368552747139344453425903886860146586527083391459771506696792574881472484087168178501992936148409795266586788584813039902685711349306715356872573072639592333455667371664127129349598779759345093412075288625751910251509849655503463114068381736224869940717202698585530238512784900129507647077010972634788024997915305996751956524735847035686490597691162272844460894309347441724544144411057612979626609650214540816145413111590691099210445677750847113908318956236420326946864722944184383663976744616408798124791491932746656840086978552349505861530362218267874432341991516779397497930064383589818238149153260198469519709552013642235525277841292056768076571346978545035175833755942401317380003777103594850981518690790832694368455641094890185635118583526313514523456216728369908273629718009636614618362764770962670563503206818349668229305947396553125292171845964757103608265975914087549446476100002555428259730341995101353436442218418315525679593774865057078767035616019536539094927815176579469384937936377862474114720229753308595015404471288018059421489190022254838772921235939472466231753819264552872944784813929097107673207186183586651968140008264688219453188679094162157949256173085529701871178244525181655736836770082899151168228047878839422145805235782537812185751945573043235690406901391274695497825270760006027254046027945185602548181529059093741017248719582419368509779030885223607674356620193137421220462774737891201868122399697944601764978041636996360002604558423584667637690864803728493204900309639876471957879190170164267530614247960356048068804267458778399506751677334436682487739104371699449742172847135837841371764294564817840107520872310530163868548990013336360366643014294161503569439533503273679331373367236428684184992100600480354334533874057230052195059305627573930961995617543655456427128503779881687456622456601907831400752636030997667491381078941020172998788355772518578151477064315228558513720524679460016757901177208819128706480051892138650301181533206127346401196722764685331096083030150936237154686683912924538361693956241732201815321548373731086681689773375385413713401238396720493694616802374824162272812362287148489169869759561792613117463554912835469402551625838122768489128786488321510072160892840846311094792720722468216143268747772020481291973471354690897681761661942830700486327862218826528219047383173121841800648258971305027907424376198161525542602120226036884079080262656285537656765635227309681578778630329243813977697431656103434832429709176176836160017224043776454064354304918503266138206864376073210035751970095395622303148781919727822577584058571018029432130642855219046699810393620585581903717688142224469082003260077156090719484276903454068639532017689387109772004375343104874414967601457274921911300739002944235808255880289290764294232857211252952313089899222191527339886850907381037063133046656750110948666994946767372252274931280319642890073081867076834280515214937190638556093733603257800321001999324979226542888943449999531812873620287620496026858463132391790651702454389838878381988019335646651251321958322401919342057744221334746514525066023278547705416995541254145163454630169827233831193354424746183799158009978394487943737199641757077302035230524425208490025295147238302109735782072863678885406546317885773615809370059955439300798260686940406612360208210280375367161906715625066038931330177469058247214301486797593016882447147105114421725306932401944914751495676725855608784798932932301742981513599695462331475018572287050403387980049291204648199641338676894537630262333501557182630010197509335602097321508587414738848050945438982275584259611059673267709466518723828629609735828747931438676143400802969607559431709256588872849843992114916284827511691147514208480865154647316736082085194183634700110256073428048768013656614456580889292239563726146420013606689126077776056460695434864819501324374992843932164345550543002892563186472506840131757099998990976872381701155769591024740658042703067247126892767800312393602484725914750822631826370032578657241808075691322411488595935176511393753613387057177691493716016902458550847221551904368995217967820250745050082064890188516546030357072167626735119943245654296395103437220348222987202850166684081484174817997008666468180804732715242314581287518119542415860904979898620836807808652007550137877638899836430365993311933419770848564974520482072861255034089339794564764019418861578012333882506797013584135345803242157059602129845790735314380461934491829363629031631769196106251011271291754014837175193155111799451625857099479338894964131724393836875903518658256103307366099043601259423996506764494071179721117963896112161721987792452658039295847175513254889437590601651327100577777104666909920679026599471844622558511072446100363575246322334136606326657084389657991178993008857608192495977965894279693528844509163855818775559988257615632916675248192089481193241375314187105471373354679677380996347420438261602963320591969547364451313603367974898804601959306183805959454340644448293153538284271259684263539768081994880658922300075970609325567063990353025721984228637467114456435408151670957511108311277799169130554871328369539422774200374888791631087377938754741772513535960636908932588813779657206558200665478383033946527785558046399129395858164985117545170375479775062631272040476145101039951943476944319993653767130388616228347888122836720006917052160661895450704624786451087628470819129598151790298234353687092378553873721333256117368965992080089930385502149568620300121191891535016575170304398491145494212641650007945288557394016304275917052583710975488185794956050553849506883342493538204789918207729846558360776532510822775393024151354005451268452021933698056927304585483449405125058381252295481615509759599565893124925913734717136639791641613844581820097733008171485588944832891845898653551221672795728998008240727692379913065904410341887272990594756738650353301307964604507062369545081070198770616710920876062323722395132997924713025854098900006427034184868085799298664402396553804951505224120505973223446494627169278976526297803798825190723181074276227988804332568547908356393147715430291181732688682788289415823850333842244021474838161269225969292362043406303682644905774031681375563799801312104673761393549123686068733945588480074850565138096556778130697299722764327194336195894768637680067551878124509881389340636462654153676959306438714485418626956368652706808391553913503775399218856458219780904599909768502333301227072439191142185577541151243033113542321375837191047855195232148693851808448486611124946743827822412439569679130143450128386130081534884834913735594057730662676106924783840856100165014744217493521204358539956214859242856447632877174743889482346409263382310424445396002223497599405646110653067831217044813875465395381294643729801013113279659868793450411341744494857810982083055078735913324357309934967776646601061366753186546541172059132861972122117218618773521852876598022282497372896468857604967324427889850411166903001934844620240337319880712428834142088006623962686279614458182509908531916942448042482300604070791311598721704725184914303223792735785591993602906111102694400642110849076815253540394830947048490531066629495379651857824829719441867259320556225698492252484029223953347631451497748537353900353704406798779281371222633813064660199747028749410659397260816388509479059708430152243272862265409897178515458466139450292041764464214712516992832841421139985821962609619330437747908415155593972279448351879317480778690664619653302154261091108077528227588108906115711931642886179166799861062147981970813770823897813438169270869746714814535773201601794090712352797078989674543260318940986479085117365246770478121123095796916765316564567554979044637823721443096306005917703390931862883854325029967356474584069716501348304125292607836947457192421222630979501033973767775963145488557783578624629820159184336758613154686336637199023292942634051980862891560959035282938417959630076821172903735099585817687663735881166301648095572505936452031154320690418162846601856204386472920353333654921278752453474276753890766029640480557907194726041330348199268540743722009937753321031989369393899120567159572483097988784822565747825851851687346174917948644449251085777174888518657707852033314310136180254115412411978655646325733464065595460717005063493740783701544029099441252587183661580266597757050844701517181217966907559763627415984716858809583764296091570142564282385345509281191843327756860323631208374927538728823635798845769076789580160737651531756093154777815417777182637690016549878220719565588960232382429563202606423906597204143412241820500139468909533141709548026717238540536360959725366080241959800138673696765462684039055321070394262327132421010516873909003357224943929787973849562936611305701595149315016264241451940258366196218504772295904446142696715166101086335315542721708279248990232922935262971555469444785848677473170259888221783405652035786231187599728632759566759300530622572547711768015924950289355333316825416866110500718315253001552775382652391002972220984585552880454425903488914513250144943322434235538966607676456721885595367693963235617959219440963787202714877046822265063548130757402043212625170911974047200295978876688807890533594602230396203332951834640603987742872872881232862733445744660942251748001386806611371320537775306897271766371509305787255906187638143155263726791978632125268962612928474271866845230190418013775945957604723184271820464967245396648294954416029867638586349269521721793222531499680217857041373114532468363809879411783590192032890305845904686381843065762341610194383309924315258233762467218196107176598172899278782716225832106795115723562475081234400639284282239545339091085405077512433378280374676619616166372297977854780218197736063388682313492936752624848472286304260322596453837371774126240754431493003686994815997431976843925972228383453723331060810845490776386170265738716189360107974495092836084937099411764650207249118129402129795700242010129149748369477544967780777536579379947987141120719332196721798162353837902123565385013489630592031382408330879622271476053959097782713423003245502308105986867703799109593597160861175749785801892483115128702121015886092769032948430651286958903313419665786202276235412476149297531947873735780315818481056446419672144812384480731980392539048754407781807683605229587133025717542320198082578138678638283067331893720034860150235840519447410537719271790902294202758659119263833658095689470042589707464026313142678804220442601043575855068446438434282560029774208840818568690491376014932587881675929480101692767806766995602877542607502345438692111494982946056809199232075560364580489025580624566966602795766509583111291075629309679653000693305765509906371196372290736309454133686559887931000719879987739112096231749433742372273390213702481629926635908382360446251214699139457937905520371206033188658011445244252181496988426060134174652676896073082457016959479797449383318905885366168853149532508871026467390598269379797280799164354933617134215829490012554375952129727935417913703321899720772855240839808054303922783292386071295144910654661462220033483974000288083648093447656543433817402636825059598578351805879690322238671140607082432923380202011581377909988099851454856376647397534547189897234972058330721931563361883242718814786606851992443651036829180053434017941613721858453061070805406353492431227807146895661940389301937630562960357157950504139684149406319807373524171099579626749898109919461834074008077336357057952183403391418629637238236182878690974833443808815183442057556856272003234737859158942045602151113597115857122712502073084493874509354482181953797241943426922831074910769660174260051535697367830090932548055411063417687216437610939370403523291572042763238151445534118613272606802145980681350130820063831225462053655572879403288093889720495846113183517823370251726454202131777363071478642698820157084510499732644616191567564923681963961358093230836169382828492340846220351648682517773489974700101593890201413734133746300494396824118641067015721232472318059221224240099434484803991211885356159333045421345993412151731085171470899601715943803505500215919255960828360490263688425578584297467168924134928731140677183080130344751831250684283562556283897919828154603505246513905727617623301497251522696368082975178448595227398625048900363344637757402117257383702823716895027018743341640330740438394616826785132794232391141426284893500064659455930229883618490839288503450979922905364410542034949577456098146259028325518110261131587521514244756014753504796007803485833133672223295381776468778157086241438243393518004138265058930264330426143447137705072353999030360910687229002558259121537256271051546304472914894455754293020700120859749357088865117647805357018872502598102875941228920129836245331083821673072094694259519656772349333536182722667140072652297503360342101692653897261039483086268889606076166306244026128813809981421565412527270427996449642391513985547218065635652942331237175406086195203565499938913664714088214540934155957493837600631627640126333860754946328893081140137040044492956970140163265138633109032367036040277330000824751248495540856699134811193312244418584935837611690803241989227982552339861665531346730408032803745450824180542725484857772094139297754986340291850931754477989469226792115533446869994811088655561367246673635156684498036528943588003230194220477194441549814610226331337084063032361670301069850736478726248572615298230137881976320104517801361298325409595468784060296534322429804563586385858332284341601757946524498994369577415622127201121422354390077235816721946500706173178539013360655152067864398130438730465170215816150151739326564172542074732645061670213044357311243604292039447161252054331789445443965263668152469303177023041908618333407063098171191297514090465829610503227315291776287276445581633108495008605329042374105853081698499325180066455751833280454892647647190842938512662918148391207670394679872205215799683258715516889635439484456846026034164405465445393222511708970384194890629837610540823909128525196769871392457086343060083662224856106775456860396005182338010484372323733131158699564396127571174151219170770418372515899941130662323243282400816510388650442510119101533363330687882076160670493484293362141740718331538152517917723998038300424964801418234648832353350415877215505009923770226722571694977889994749516751506252371539002874767586609999234000229795970804169628243371777571790640709401570043660476341691075486882846765713010190897646503262469175029415770533360167839851919059993816943695710363291572359712578957613156729311828098563314290393717221550591078376706114889603539702643942280636361493429431291626047662389329755105103483301384599061925420835802461798791246091704615797032250457878870128959597229742656614767431459531297183143963595449812744712343094319247391904321174559471983045188250561679392274259143903686623827400526584484914663803429204907008397687694043687178307035941640801224670133778617181514135147363001909459596581453255620937688461948464463917593179983152731195965804905545759816591475578368041132237446132075180900159216865518912187949206580576858781705427331868114615483340252480408252404107605984491366889350307316881816055876145611544199253080950252646102821337601780475468650003126560236455215460606305604206671373603594382476379934125483880795768464640059101783064928124994735155660820023236758597306037698796522519412939524787782509495929539783829116618437166139384177970790485278777146052211121311679150282977447689807274469878532529987110195940725504189871131241772489890371674218924476622720889755054207560967602971774190360847187198576392754434897309658359840978460590128925232632470250225691891990743723144231100971035055652210299127770954096662860336580732923828375110524361162189568036049757795682283368213770628516597008693564012755685053896370390118438101548231631458877496015142308005972422951882882197965930569915570936315556315761309387831444539225104415711701083778696080979281446334858897877808241640093281957495460710198469621849819741390562954191780696593014849426720558163349669684034837025303679077046844261947397862164842218240054195331932525718455181170016726331226068823080198521663981106800428443003380496929403005788127307896255045909878525339160182967743767340717129389485048237690079720107832278374950479564463253683924283488288710706486464828023537459196597286549323070290727283018209128824703270390390299799217657510838687433123816932897331470427561155557834157190873925446584751930006557665724165339532291001552905954874905447769974773463530311795945117453013516528942132285066685479509707195219564150566158468468136635158689546565123966689100049128152928312672940127304998045887470457710997651870256000458480754104550767518236901439662802259265230988033094674421520561252734794624165769886025748824939775983969668618966011340616149533546281828365011270388734061374472913676198216641983659281090338554307032586811109410557091437945172055515086112968358152449792918793080044914326204358032943864272502336894533478090156857044395621245282510406650922498111510202751103050489526715397574904362001126605356204467820430585569812342253112282624520775310490331450758445459309503560329097589356536788424044520375906930621772799330541103068408613632139658098688656650677211091412419785958137262816999603919072785040862253703255622109845026250703925951970655778941080401420797361209985615576354553532705205909896326517627872561618031989559188817526503055836400592068882942255209165777058964061719626976734300490544424478010653639307815402368803676661403631602754960041410633584549635223060166241508300336848347871890337114496952445623849863752834528761970893862329272627796599560662880797591755621790896938538586746481064814366263556354923790687242865837479037847924133632880883692073450869878840733198371381548546719077046253850202956297513766011245890108979897878704437592340320783220593594385040576541853853882900503367921523905852088267674783369703887564567436205793480667674009929611076502836398919353961373454074522102989779696635617953828482499263140008609607325119962011361515777994784043096697790338525563883747267459172654095141437002689829651266455847336047970039947534065116166508706770139418028212873789194344824777211876822207406279512123471502434150141480025387480680473184778279103087337993735830172999113247117990470995500134512475086069976190954059303453224689308872140296177973115759730176851083298650586041649804477247857424736737155421090887279489319434445227107027357176365010970905880628259306589290202769613887691776882447107952878184335819660546768289359832757022186366985650805766904229563149165510388391118974425498061859746898815411227500781547931103717215196915264820148685063729517683439054495387185938531062096044819085292278488983877028538469294650215379778830373368635486156773456959813480521063552959684064061943047465453546326907469706630139637294369112776989062121627079071069561156902402914162484418514322317642154582565290755982374442014231303011902107865935119868568704983538152474461434447710222979092817538692709510249672257443145837925393938830007254255031636031137485680666582953336310351654479208881746037837049682612905490931711899213375323306732454194795877720441705072066560787748084633299018451792747479432460887531397889440485629479660389915793494238335432616788037097669111748495359058396505099088842603927765426504201032145050364223319223159589855865511571749032444871936834094755659863572722222579032077814471635274595053771222544126857007458632641160469384419810321489897904914905232370684571120966301782221757207108051885535773316487465666804839141122951996789870577264291723743821926924434955956800309544814932645642976568937293551245577830015859170426374843999956421058826930104291412475380878689078502126209517910090911313576454235508852146548068701151840579347631195915614507321935435160633250919099936196377814598881361813713067023574571291714298865826981116658727333914532212599873297050218497692238396756166614126690690873887485512225459266265603649601278080112442926285246521310244126311532074790609451643085651187365146542785899268368087407913907353127329628395409422145060853340680110418325832413055142569866610857040090304450542646263067568119440823425899338754074737683685836859252453343227333705207401410546626388079214651905794200720083728827603406509468486312373753817710586867566677653772585328490893289264294994557013710951798849941545457843327997278040569984493021337736734498274317714411416159544368454241280901006915553845032058333372226373757837623676285243127720082509072829426590825365615562199732496611242630987031464727979669033630167975635860916095377338068443299369739818243209820258667148892863745401524873910900182955066729408088419399105696752515972230240236236592705928817516428826174387709583030034178495490395142921447692599664290828633717821049558484042254279444982682592291686838653826018915136750721825304561360000957554054935953034421636156410716930529853598971020828197607198884621004087786895589321240379684352383004756918683557792705542122041534656051255889632239998310821019152599960875378729764224684978488330163969171576569152587692374362685775048877367700713513735652065092128556617754255602810117199911720573883911319472085920781209531961413857506866321109612883386035872709765924811684133606235307333201749026356363661471359139656372397382093608232843401743476961753165286572150001157856438449677193605476491326175997964636359667181447119824656090298666148674651503568533717146696551698097951591950188126567608178224540219650348639605829593112966772999317980155270230926619598188533759334388861184250902746268010083135134920510985333203071033422967851359221524184080569808487941820305231393352099852509015009453214341752874270408599824227558943890648452598086390924220593003245698194501441205344673568558971951753594337112757916698794022410764726804480525802962304922083847211430366605593322230015258568636239522801368799875168951267664637054922871919976875984850187292357598357015014686937944739730609364351584458349244992536550427167809809830137217957928079215069607482629734556684316048045270117665522831244164513105265277774120441201309358921917062368309502383988223764570934646773448884672582216992775924254564373495669879784136517494320531296851302456430372814740664993096474072782385277905587759058945551823359128765383167322210589499741806255362127802059882527630631678492967209979284686283970412069577190132835326461130802079836305850930167064380060117390334326757249882375925923487456300723804859821716936294055079227408269326108929034802019072359111975696300900965666247490282656229963027741341018799755868859056383670096012086451167019482381329728718769060512213954866307923564191223264927537290979608686764724398091735692037105242315440273021204809120089214997678815798153787221294243189965800801038401803563060792943329552952925507979617299278179981165329974833649003142516734095872550508808672218611984948671359969859776627462458484793280831023052150070287367882505884126704068184832226157636371414550354595277960754970947457139417313681150167853752309834697548536425239512971994064480809592793480724546035097927710251786902116688500169965878243951544695234476984659242303993319802229477630760461261151331407702109047795128034018425630863617088657410736226584228350006409807433621817418036161598678903263774655156963533805772353870669603072167308003551582008518590431054828271669150163285874787487398746291036645204490183449543383553645709372508153543978890445937779359660251079793799454755286188504577926594373658208942938174760069051512024943167490523257884193316248298012900278853030930284179391807289029975291708635741077326191137363216973938105133892154285202826592141473210262793458642486139597832639863584860938712196012941112657381345543198093731351831191722818558430456803518448184654033415385383071117143957384332896973991713438976929063372008612792709275854643980392094909636899285176006538133219117572550070754239864005982473011354769155022920833408679330604903973339521500738765037117552992652646032629786711457925849638124713332754590006897667861600518173559978422154767671092369731287519274441576296763309262787277911596904220316656064450391729741698787075027233200155525043388614916711470252932489387761009174327755201800734891317361379299410477699297793962529614803921938105838101030334244529501203025049560992912881507673877445764836484159367651211550531790303276604048966518610171270980621680184526865337836405436126977208746487137648333279282566655669247595697616691364938614278451420025668510770551414737165719668737983090620635257966855783102490836433787873724456071120039905621325258694794614256717334876698071393490403332436454080859551285766482864551001635469579324897212701388925328830484892585550128140042263756687921437429531598057634912272166576536183083398516883148267120742655378348365415283640184167352864761588957985930699814845999664271571549736946943002607360643212847129525701300875635478390702485723683786787068502355065597293189816836982291495233084121758107297678149927547381671557378019883402927861497351213565868423837487612155313287378646562072775495566724038855371824514788993929981410270946756457191963372753210695463032052083383582127295013476970094141857707361549358812759884702352261675886117449534400698801248721639113343306424906668866497258676421102984787533806245224856873868706755725408654498322604747672847056542285730226312187398033427964808778092452893457549071607078111682524430535397500964839066246730952644195973573525473141187895131509583355913987762137213698784592775430686528496446634173307034537449271519522110694446500509266640531647953550743318123179056610151171304478069000937688743169381372516749957652902985104972333756544905998523628188580701111262737601257763280767528637888120983613355184049418186031107349478943699442618843074626497992444691225074744804443435400583746176877942978725802058158752912454956909079979534288964247225537427545601776778427659533199686888392870162089899506168533709977596657916012885776310846854324407345958842905245342012430979120728006445254157320865930284176258883989906415310617599097316138923497600513151108474184624961499410105769254314436546679881081083511137346788093865220325221814068432541149697672570985824650832354214341876386597585036784044265848827582733915359799015192420355939139668808622135563458886443563028191805417635489787625592945417422616931268333412654489028057908296478219004377954500818838589756115675317343742787464070156489045216170298788748126163880389062627631981630528358508751530482234065629874857416885166370262190604972737147122564941905355018530721107395495803404998171200953232327113854946561431960079364210979352051185031437150598177943685542128640255644164888930794004981914953241784862750028105307621156099882202550508753955365927143847817895584999051400158243442238466379317720651215500327302250689325367057539965065407376564028785113466315637966447868914237428236455908719428377516339849187494624314662155377580287579059153471407698376704953134586042479291868264730889769273214260234633069111524359911415963525225094064408483312866446624622811610627882709510661582177885107947864548658072784281574969091219618669255027642868261491051858088863069267124827130172316141761696831169431963108341195487048518522941230508699968664923289502991216031658835148431617924655381442770396349278597141484749398785115576315687009744146402819846479017048117662334040937482376050550983256300053833057561055162892864800462172006048852198651042666591116696755744219159889965660515805415238966242907624403140903407159893258798529763957533040588935063648298076827660326801015570995403785604055291732829789591060773929154616024025859939288583354606247616116039681158260376735010423754296702002766960278540091394806524389800441613286043692270638175272381139712539058706915505808052218137341446247071925171299886450958217676654955744161726710096370284717049815234734816118267316137321414553650824725910335538500920883261223010629797685512305192288516471738627319766851935986663147417179583270856592672564355611288011930121898044572744150749407403340834314934514365718686027342769087130541182338180789161932059981724001369281123899729671606845294095696273068756841151628974693090483195299125088874966975054914495427593091274539725008133463069166095590793727724599942547447115690287755189069883333901450804031827235495943359238081665576221594978286830827010927380177494958807016560040574043065460718395062740971142109061569568310608971477887047693954227787550328655718499755244986167545389419341374661228823159560493124816812079871116927460972676975806827884606955462398321564694108667441853523573787615944588761021437778798744860828773768695549256327245075914248745586181993584744160753067022208292558618146909002420408623149365028602465582901403851371884108464373792071653555772758286668075625872707243841109576167378766458487777724448272176286724647689038829613405950162493633604505693559769499254901200384010533821660138730685634948959638746877525343391525357635033284785057442392165147160132040997612927122288265189877995757526088629997955724398676403903399736149046506923162361347936574497545748264591532171977954782563770560190344785866253647118697552158769347996904110169345507385554014417384421982191321775198893475547465594371756084855017303238451973861904889291091182897217798086464096705248817026060444582026543013008062798938608804021797303452246034126768662549959498217032653439584147414064328201995021935406071207737208168964808154979155858551594059985736048489258091770330547418798667620044120786570409824629249232349249399236380968628388981070138525921075603456814093292026609404472695794520183868901835022345618117733719727957983438945145231853084114850933549540483052321735979740253190803947390764165452611193616257916394099099283660020871103258965076439771060856679023555847857086546800706632798810549267508247348335923744858801731049130384728783545665198545502969927438216664576459716988883295474591529827779967357408584252562952192292995520599933999914838188383494714043548660975077365198914155501878591395410626928136395397681900443149469346256723707442448650795756956644891917414064878646716112759640741145987064307029120949616768846963921388616174581152326622729171521990503203746302133896207737965559990921942148423614215147940288071556441122947503890722185698821475989232183500996863370269293390785610833097237268120656631471690997472291530849410223947630625269264042252943445151151138683934892705793450971494927649618604045196428886419321919456644476184705140713095943488649905932296534307108994351857479966812953802936068998174506456523455452920123988660291464639417512126146257784168010510667854516640455115214839227770323666184385989573016782565409513534271962119924116941519946930753728182214890784170163424521636450958594724409231954121261445620466969526445409260883550124315463205782664267922391938169322439903771088763952932143010918639512315160382683441341251206216515412441593724929298138883190044792430092268912441276291208066653223671618026058786347190928525567480741868729982098133308770535322724765797452839885709738998532433651825587418722560095924768031586278748431642253785882351850240601679760247428961520877436515413848475658014060409104473201205706318829439667257646178082568040389761180147994962030204682285422686854136971807316102810149666090613796361863222501840610489407470192783440590258886178124996916795586056643871138577894643324809346245568477670349463895216544310549288959078339601930374457003916338258343914110405555379934054911095947074637618193905018217716919652809077628839022838053710848023951278549037785613986812273638463660555812661326872209379227168445115234244287756472679791980482068207482098131161497465345705376278549199743272502469232695659994770713098586660999035772730229051483102962416501146684308414584940591468863240133313597703291584059992361751361233194342067618828928183400468089381158909828788904084644105697055386638620683767323371527837569257093780428545826267671647517820541735263831963484335418464458621000809756448184152762509147209915703255065009496008456280170001697361349516843284333502831402598150959378399250115491810543480793524778563057733627528364901538786513796547067210537303259458372546795670493473440720579344848996020961819721031303850883005147510419917844345952583517544442742797543097140590207334764595323156837952838978794390203827181448034097984176897239969149563068234331644037127325333956691658626974105046292193064607899351322091882359215717452295832966984919840974964212476378378949923729234693122349957764972180596330632926298672941197000733812170363526341725031779209558984683238608817677921895150971940265360252734697543976181066526166088789592280323450418590850499632796371186700162190465225068318083985700961992305111106107157772357990104105429270164782182538335798606850922995106447121086029465308818263841490905883255673308851109961070751163833802762312340947107694646279095559077790412273188740538498261645963383911594248674614333185830354403589252422069913881386849946287565927231963748226718322348993340996246210085022154945459312993989776578667746394976026515997699567765145892526327710420173817887589628752736929709385348855595583830242015962691173179159735252015478927755086247488231029781269042975314231485707970710595240784279005744478992423123391898349191664113034414034496611058924874765185012403844657752331342109264657964858342728582688456877087750877573720534208747170783590984682165070025410158032390095750945907408010689431713760929220624303952067661156836692674799400378444307836223250788891467485418057969630456777818333852996871870049175563307226276147373570786634451043210605304621991985703888363404303577138489622819673902095602475587051645307344448445015356947857277772911343737247658664006141883702526998359489880778982762204260971146464292760233174265510087087130439535662604049374282494655725994510633537441196410191585703593893246919279708021787744771466593017596769421381476945979522932282562053708291944186898070585984682830357809443751485201143279304004282970852216016673930276281743823939358378191318546393744410890271178920330955108053404512168097401666234118633471592073292539843631496934922320627432233080650545446901653818592219018503589196112943344041758662913925302665836840573354776494428464926940641936055805550853086901027853245218364061697452433042056255216243495663476269027866990216192485329920780977598241694486531313578283433839589933049409218538094088969142020405051037099453416439090348782061389473467539377753986030376688345577581945501743487344322424224385039024446085954143445599741646233257675321014890465039930403318720162906425390272893014564103834302299955447189383055830999311278568738919848449391125453568521000170317054422189150398104312860930864568729605482099337213960877734816655835125103388996026995502709033054526132288779204813577357188992574652150288198233915437574265057811689096373096652573834662564630097258360335629454817668192449955438523857065631550007514034932141654264468445674001229338339367729058783766164193912686513013579202187690190271513676354914990943121212877472794599556707966308106566859657706578676702459515459471164076820291423047846369504267722041783674627988951345985907022184154027439278572155428350383539499395443088686984667067520793471749649408130184094975726952788186837298116508129007170613928809778153489806989303477420127963578379581608367014543720948893018882682967855836966548303970949503699160045569531734309209250333031462582526350707659206096477759136828767582197994755299649603966745634571037106796905592343185692030094785097298599387489599301655354424710743868332375753988590388974350501434385934443874774591477417365669950600629953271054524135555088817652637105096469242340529549478623987931004738752824794345238874858991086379226881385594741912102591502857372753910985166622941663007308550097247869627658363366612343495285217771933995995424578636105634819864288375976696812768240729810079911247937325763489152392515782222245858510455656701538868787444340567697656358000940537967829716196291952135891345177889204249765049126739185506074438076102248246882020890737334913730611356009956021101416611032113873174846395915648879658922196804983765129336889359948658515975835810463596234904292684656175563890634009876158767053203927709022909716364639541876273702327539386073305533202733071406048112270434549985733231970619397399953918646233164857001854954511781785628186088307703457796660843748611927463798638510615952417363438807111083332696834871150800429645174764948995466420024316279735132575445168798301079231222384965127816968893481164357978567738206150890525712170099868990438950046318827605815504940514691255327802685102900989585534936186230869284075169164666682865424676220725160960666063607953637045383979968603348192907655634260234163022469383917953954828451715648161563086379685263279694192261398331887869024807841714700855234717671666983370106818320584042164311346122721852787135759437865271136756326514826177749467744124191153128402504445905472776887742812949572974530739735760328291003346531827017998706758268761922735922546125676311331991481167738860314631648879817389279196930828969160632291420279650367106073058726127918681114570415232890825446403026722030198799439827417834131161076619689329293163618857104352026978856199854973712163409774114704176935439673205144885986463563244279285382212819449096301740755222079954951041724020778604657929068937428984863237036772348493311848338299620100935547850698685224203931065931441613953622782344108801089690206410207269624697249764827233163721403831008475033034368961246150027250119779533973985671963714866713183722019911435095296478449752297090614024491883855295922208011650707892502967255392962193546949196241839415021349090824693194806963620392885492939519904945754239747390816239864660101801450752408778110580352125587709618011955377133986995433007020420901240311455641252041300813769510928120771800957216465994840329777560814332416007419400010225176778146436649151587772252935559919229158992459407852351819535510154631961533726519197608821073459691834665758260092256048827607230317143760836536606399904023865338368302139909358387265623820740679172521413234865502317734404707763827854627185890332531301334594160231554929009275891805197075617372089941040906510834250263414903518979231375362833428222146941989455407903294704739321053676003205627752375719044648291248508446991754784801645380537792505351514959979010862698863692271194343611322379574523495640654625414141678515333632962001498328960684072835305482587953017586441081887969739253299201484406794264439627906424606595809087559611065351471254346121896690151496036417070263965093042948491188726224905858008128016672358186584131504461915478827472649785604647522557273159569073851097590456722341734117985449466639516622087146625268864709528881848262265629675958797711460903814701303114073231092769120288129157005132777532461173885758594495989539100789656295450586731566979510953484844656843475393615791680862797333652825234271896927703613736428451449895050630433385678703324207195951480795193974168327600308049834109655439134298137803565437621477147171580491178523043286112558259074216863240590866600331121981961829595350115275337354545052807921874768791102192484454740360510875682271879424153855990468103348913243885853537413550052248133842284924245414341021157857361427839040890717421308921009726382732075930159899374543019140502833802692948126221452524448938739112480974352328816305444531504286781663144353631089654780494697458181252380118979574535388785364628881394157179066266243863200654082684323678389269451488179791943457035027526304164313307427763884416648262587483797486144873746429335994681237034393878178339335309240542143552091342583851601334917302440501234883315460358017697134205674531205262678679535139780449207564623116083502868759708304165260574250279315891294968834769537041285410857036973784361652032523327721319935268557644405025459299325356781786076486025604181548002572793695865486628336946938591244443625820645658355882909456390241322251951159662699117964256373416603881591141286214158648788532982718309704583143062952358241688339619014601856597150237347496156337025756858790624953500128403951705592752992113856228827917891084495886158687441761562341492464684805800684297278774170196616517191440886211845587843977155337917874291344224880681732342902570706081480228425981200192209926811639056068123870118426478744046677433630278415788173341301807126231483089549656886333609449244081665547384828119439157138773999139590385313275771869504652374215496929208686490326442583746098147592404613345419016519353402404607059725691471263632151166509334892354415383528316699751364429796258571675849326047444080998155037298882348560625373540836639773673902322001473320814904852160347535670471121644674350603489339326863413318919557498547792432335072682004748407063080307894214158760639628323471556700345325833196640640807787543405409853608710944333761958705194039641266226451727138982710134516612483425426626852735402138168003779917483673658954612616951624482372598264746447801920608289278669683934335719123775044684856463780141900930150495959415826825884639044312049199255633644376257554921894833263202035560609071712402547049679760778436952094892538920548932039278070180070228985789058307732151900569032208960638244883637983413277973245801610560427768208295299536367466841271141035598440984639052592774124757991578138144873304643359678691980707581140403733347956466882915930226869259535811793277995473605165825001271885190782462387548821029352541269302841845573957804632762276118553917993033289491475194358289935130437504719275189272412168532270716988392612065104377310421939672951749757540011004698268016897511365707718859361011956352152853604784906873382339719977394883698345838591701601433282945960484737060935712419490746544927918422085135066822328106856194619072591775868001813551591249916253852055063953265304355268519534690871746672829860308431346906827726592202516166393629801098456568575447102304415234892682158046050773698512058572580428678773202112029355600140883210647480419249288230516521855921763498812697763819221371686249631977689069258346514128315640457647839880496557921783403641532110041583005478261351133002391612541746939158408913900719995829575130403480991677851090251082687278335542577792061944324386589029650659660782523749271549103671056068414929468097370306891796478479698992048007634005805815530840224467655868258467755567002669695511735974596604727044268224527485607591330995929186246715200480762850173347484292589772390153439184341889092502915448364981333849537913167989648214657253620365363820528804386284172693716499466944099773595277067451561785568960559298773381038235412916183931304949473393981277033191920326061645276119635173906194695150851323460726900417635476900385873285974577713823352791234231577974222677957812843878740581730683325371104992637540265093035998527517459289082463010832516775167838092106520562864094941910313238130118896991324084008107668724895661841909491816396449188802687591398788529536351834681966764686757852221382295583750056483616195191868772568878082851639843336516791430551144333784815093344808684065101288175092434483533227429599576046940185376083498555025037367825345426692576935709853178577970386201185003426672086709033531182121070326246963766030316542872639440632347754162061990844464945035648371827521843158320485964445927454352824846907772217421701700762027356961896756896223375511023785712605901052039048452363028183914213299771734296125893416796177903186826787795111722417496267498146644807402900293197084762242205401605858192756267735004783384330531855031328371327226150079445836058699557982450546221559287093439610373297623684065270207054537430871950788291940319173167949056316780361391444387556721700185329520332558936174249613153143892534781491354534346479498048681807854112597767838637425332726731926510314004688109592539723680538251114839059596882253609550823878076923258523988839380920561657857231971446712696550088028931118726505820215285411127750254644587014502925840624570013583597169878800560248280613924734699263360261754702592905301001491720618561794359211454544642496084196007901354682941835121525686612303610665931570689116995903109702624156721960853104190660295263611526173561100838795217452587272339695585646478793323991939600670132415027046452396827086699616547495369005788116976152106424113105508003252261474276412281513472237416613390130974936027843891938522653035152529960026722650109632421743024395427135161591814269581426665688241814088164759883290567770002677575170394094375697193258279415131581303808584684523901596220732986950662269200384405202907385970425926525839366258701981406872963647552867267596465085286249995236761875423202346114454066059987525051444746521498311915783434000870309994340526057000846064189500134428254334112379925741509154905022442045834398138485165962835694841052908531989296131316196870686644982590937321846096444488189493900977409483096186896830368050177856527684769157408057214329173396802496980665826901933067479360068093204803972994679545455091186922642693991988380755632621622211543337912992400645446197522375876320203745482188181203741429424604261629717377695039570403996191914699617168641001942273024783603155141229846179647357597061507143083633730661235251557237262166953628457819137840270258410093387391721321698259837404694184491986109646693131132272714265802937825773647280647068765794246884706076682146284281758124926766322729047747420672061501753742590567027481064326067739445222037405456619926464723159940824540281848774706539308843224017392747659505940047870346416986920506344884368061854062361894463054158698765121217633742525335866976239962692768117676931916104310124914529481551049334239502207714369893783412100683749691626688674119185873052206124456784579387160830322353718525685992826595115573776238539567731180997306986831887860241435695705984738875511954246751699477320192461964678939873714617653358399179874126622487526296982550200267991238691127019941631787295336641707795779333076521398926735746635777133368549274364972593492146425340474664815261370386916620694414209729847268707668941854767596180605779194236181880323366331412703772619761678510580022135067356686506638175434670512241253365716559142582356813758726970204466123733666976436053319700933397637648829771455752854098333978127185395065531773250779795087656283299786490689611007287100445303009751108758885645172077980281378873886521747159977306418184896447360042691808963947770714749318492800124384497036198727943094833594466233714743097713133620827834595916535522519268818839525974289461722786175465446449874118570123427130792630359530314462646828317168029199796128662844384353944510044502196156109424498575540570372815605066628304226586178412518733855420859296443848747742112438388827977713720334379512667608468629628627549215697900705235758328807292364002095479095329442817699146999200895011923263956562546801148759435108649627395331957478244385989440674794156448858463535256345918750509289130436028807931801251350938597238004430571348203087774985459725948937687234756235550416396515897228361439856643962653782890602851582506110196858283335992226917080105138252459737789554157193758869857410587561532246282191953217014418007616443927650385518851704390870351142729806288148881008966184489244808386576563346985356206753001265496189466933211800227099537536888936099567517661794038483764911876999116713198766211337651176893113349452496916291441605151988462505307196230147531343058904580361533365502338954405107441789154229428590524376667451926177103817190566909809891507708348699373086878903089188061762306194089155111585286968605643243793923843259773790561209001976210971456888269078977172664097839799670113583759407691328529805623801019468441452656074983085988829329906952317359748961932430151732947436252937588009989217733458363740597982607486464287623731996318128638321093348699526502162504731421051258993660138483769367367549000398792032833119798364325782383913611213749419430921177392104700617604357043189253946087488220911369852979041904490433225522515778341542991793321990574508321643772849136070073692282927317316330219151552405251581785190603804152846414425266583334412485630307804620948029570623303919196127312959116437172329156911674424108518111456603156585831213644304537625811722243995245248752046431395578930095020648921467393461035378361507654026851548196010432050143568987374939487328578160097620088742373567497906233366049738128098871669843088649724396515054027974001355979591032394107197299676433525986569150403572481196734291593182767218908801937438727370904705251083729438386545355462330217637361636992553996596010306022273782143697874865909453253423571994054320560072873006384718237680620595938290493037717405699740866062852176702279002991225136702840733397446764298674528340562144714682511374084741262264691826637276546728335501439478890917757900965977400697235038687593025940903445118453438933740625476998515406648596141101360315098317095930269959850156486170406288732658061983058905614574416114544079702118406492715426882185296912055240249125010397464979915915733266235574186868784000876043320869199033887576528244842994367932734948296141169201302124716191476610684137439924147247324564615253668012186795645897582326308153744546697504295637768345272227887960507715136522703855558348737555576399650316580064182462433766673463960469084874285577342173866587946295913742006717594128836452086409064724867468208269821815854175331653520564390556637338858715464278630990354656473209818663132233206376205566099247450799121462867336788266496839884364787487109903012286948201863900017901336365216518261586165981688552440754318671316023289382723284238221889034875476262665508889881086098379120855997585532161896776532435970497019687042260449429391498708099719386138969766770563234356296157285435686025769817193241439322785506163154784786056115704952466078188573919765737020221683668771676140568264104010782115500483672847122610043023171908834953763361250881288948033861179686044163953570267034243393086479503117037224064763302232494806725911606853770576282114426170062326159284696990758575594956948445837659103300379273784938929740500653423091476907543360268026751964248695977651076659465930094327922731089274509424929310319890063470879656316478615228734220860631002392472280388176351534746653884500959639107237963285223953863341765101186101362341123233519488805981035920022742454669555197105292690265768448397064827744659873686493025998553553221929301737499804447827512879077309403948900328265509767958066346876531672754261408402303583559850627456194347159968946818012445906262073456725914232902601105345865431365591285616696153315920669611835918817500139605835464106199731423032248842532814457473658517435293568305755542361178273864485032947789101928690251350875643731468161735843713699981122312840873905009662891338136336991552416371953249096330980418188060555411036820483948777173837912112494692522788158035497800681036397379101336107008888051560344672144971273952709235122271986171781093102761164812606123554425727966543032627437341287947529972591139426151111827585864506149224287771800808642979438100796718916979819587063578993388446728825018429188681858180939386094710838560706636178395091852064105701078451563630054692018392346293949769582253959214176821913761890763454786315245947168072131558208091662745640610929727482705752340453540393877522283454749752733275729789321819633678015387416732212792478573672783827887769512375787504896471899103843773065129002326988665045907242517289999547526426648172402420777032992250010954211956518192186103208718830805905875816127757223033582702463869103650042985008187259233415731054790412258969125323785577460486747079615094597015070934150051045769505197000280172355509856524679314215769740189495322681898827730609357326830708744664717703812438059120575034053983317915841151128568055508177581474535090547719957614918314435995092610685270190347692559996080773919786693970396523396881113409675352112100310044238924857181474259846530604118784779949315774175862953164575830503017025911057610375493896205075572488591220718238153700440271532320867253815164830117309170239444659589697532203544216171751951947595248160067667139885817633932731039345607117006490698849946378076928212765715169288197637274545188247845178706713281436303267214768907314245341743775930194192436167218610206053717157466119906683544843296461390998754290482193764570792845361676792554060620491058776882333257581064382185058189463220330249241640996557484677137475236407582639263784540257167710484237677807923343751497690008179027861889251415994186352216218108022847718684628781337217239961181175262653669971218767180208069857975953444887258683068162757477946857009460499874306876229808980433578865237342598860898557186900963831938814546089671994199415255035297852603116976338912265289860822629182583206763753805890546315590005458715482207247673882504523343480526138471231810034121505697129361420517489311038492308044429166976711164308262230609542104796923489756436075411796965702458386395866912479908768698165119668419450399772129892968096648690017225303627840910448036174889462534336326860429108152464075369062291787207587164249046832758223067899759366049804683696906503972838290130785133035250400864859379295341543223197703702829582737449550543650328325414576794744689632806168048943564337030058578527195726321449220791023879834148956388301576488632179886095746962014006164946795619369751854980427156151125476485055042355219057644096270653290104049526275766894740791219032571777101253085467928855776469699620767184295526243839918678344521411381683806140690280810235183021073238124740760957954813215805279721791394138384849556244337747680181096557142647683681802235750247827567954231766963632018152868732949531661364747186214875888116137850400080404830959663334028949127778971229276320090378935003906793991973326758481941389057394077917731745616813408964512157880404281347298936352858558819658838299453701436749054281137133308789701554203641928623109892748577900398756315047528709366861993101265235986763274665859808415802633195443645802432309256936238613708211622540778077302583981839651700877934256937472299265389039772437261609766359818569437224144141319414506177902564922071814371246130346720294915615678087090895143911572141683506558161230453142448778698453121631626603956418775503513723438975132855189025459872342894060730055552182019707823323928397948713234644944189840395486088557249819519845456379702966482023661295025712880445427448743783937487617235184788427894825661961489233584263766362119990117495678667939328995387882706353857317530271339042905832127784243409928255847421298351023096832887550282443136327934488695956017871841972690943456061663632883316422364194586509239293972548849576935293643381310920024664955953370474123268785036145161933758648663908227036707221021607420665136731549999904842137750002961241967437807075263455964543523776398161878111718106209698734748529792493445565409824092253438572924300093517953973881568179631202988728390533692853893496807013552106566399545929905460581605523495107781039758844562703768096548891576824226568009056063236119168677661087297761163772230538837431067149556996493514238816131270233864651759329517099962059095873517628465385956194646810296878612267005400632014418076026462304831575540376642353563660989687533876613117506497995440823152012372934452162310325144569970618088562385844560784391931020994901453892629481277647584365103476315433885065289825311433526287376087333438638149510146474401872625147131327723958777690215838221001799067862658394798249132420146519741340514992039883700391446831747541461976416775878903401159837881059508636316248074170472240795243123206175841962399142855374247634736533047186053119132819592190530987837019337500347039403371342879149496782190682371027391306195234303814981594294412134615584839487758667581445656235243875713031217141024345114210125072814136330573430962025797399730594355944660995009310907351306629151507627350037860514197072632922700641939406938884390981435385869454396366833404056876716021745307625594339517075394089293042856484072884077917496043159214542045844635600581791776442733754394652964730162782393513995638118065223358352285556995806588190982780283755027682130078381800655750372142999881171596730858183548938315044312329395247889068796084217334038434992862557948009006081992167453630336566989087466120159635526542554193994040094304822850710390503349973018344699173149726857827379387243286874858439752255315217345120170441916730448932136418939218903925917993828479264884256542777694411098301350714078089953488070553602027765691981258361047431721934319202819040997129538665513671757632638294006039871955639504960683681613964734315815023339248750129724832338800691580123392012968754346933546020632450282827558429187042243442803734302107590871296771367567131013701668599175023159531625492912410314499559164480352193207608429506066291270606861208832742560585421034461684238020092502092944843020074607656999201695602380951737567028532792418762119935390519676092166593738056850682988771309061182549008864011129867824616670441410380734899178853416657133804481311681344177103913082779102050728266449314039189777626423984484165555938787721721549180898528960920396343675620795486357550228902460352728252837390686187709717570510033699713043263367423530886778463662161980366950091819215344199491577534190610456657743573746206930215260555597923230363876233516890958457332735574874017804635324735608789503346004728080628264540490518195673481325167495205242351383651769213115192359405103054318000209179216301004267121683822498631180444812703285768160597147983771259945227545793796722899629099541636062268263541158680977775546509743649153701248027052294018785389030063251849203313526826632831139927096673310832776158491044482324655227009801542915596661928950171969111268745786143387821076256152869432730982241313976227435804653548249341062665096620364666131524914449123029212438767309138101558976758316526789800205889704026711040873864687533011554029962109280613172221052980982257522153829911690788549992652179068085798068765437985631980297282471652288284995093728956801762894677309634287316000593339160547535586022216945857684813904832244924738549864265175154853263074415476867123603411992167823395186300198948527409971574311695634026138115140770417152851150718696282997920190013106241826416076675478208217609449433229615201623887918894749993178898365009882052805145958490220864537113071422177537796423459789503083912567796429807668300825199804135768456315047835169122647141262336133662173922722329668240101865027805430295782391201040882461485224111254193148684506940980422197507689990434404202742994427946114463111711504363209443429709044241806016654748642015281324673459833117300633530238453451291245589593747777243748817118437908489228683529375696735566531217935495150091694887063793115752431975950723202421732345628402703999461087075071202533730657459017076017121490206795715169813827891902538180871917237203404700757467726319747379762094196230790397350779312098113039437968549216863409006329056764593135226818515415008574036729477228623696136125152925838302868922000294084729360045237111184822880846466216184523970213990814411075345253026543287531314519159846200823351591697359328882127281700485428036388403826819251269517584650417028658398764899622792270033008680007522353038042852418288090099175255245766658072843835987631208203028534160377833390749269139921912923358309405650662525728544201097845189164095437011011166213674152629943355554488868078202692095014690767636488964084534817538345034256755519793061106430197790615972949722571656905556708605228034761000464538171007538098033569256668079587823651179941002194621872881388218555823924683525970832013576076713072484625952349948183733662701744317430393180070234116485206377245248219717097295376475431915017316817161967613987064775705850728403917226983370952996557071587112801307795172615370266408793607607664656564288241158190104541229961361509224531035830551435750032715258436315393687377524022426302573123478647651476300509688180642588561418697011346132236971873425124304857734699799377279283915082099094921125780815553931577668231887752005085064055655490761889759844431554435603827663590560850465163651251476771038661590095045865158647492551613044868561503802971762902881182369000888682632038529774120252641911856814548512999868639552890582621107745584900109370815355239985470089016225119783594791795702974661881140865404696721870378793506902453505188474079260242438949695712984880688078763715960599357265292843894596989797879580484282276615388390529184003694628615595697634520433493474170632436079049777654377114326455733145101247490158038091497263875195469001973795014089938052376727994249146000593554871580796096839550045535634930143976202342819900172834652636960662426155568624377500570077842598701933641306731123989004311043044528909879713384744531952426299111841472425027583283391179592365227841219349149969184560192313065867302058146618474425377466732664664905375968875245674417304662759846297144667206984722144660261332653638923165059578737202104557865824198936383463760983689423498678278151028315610321752536173655456621980403666573232432426235165762587697451364592077957385980069346869550891316481124690050219582720635035883189863560056362975959855281667938517023665617460460766194520729509979411464688735414984893609352186494287164525773535248101100141454884944456443310758052004585583320606111289496026336538108360679276099893207094713892821236506191620553433965550393281064233637982357345287075601598961463857456074626395531189222975807600735624336655838452075303426606856248236146527510740510320289436341122275375387101606808122341697113551024156958027213308001810278940118780679586359162356230651173705118235554047745400301899538434325153610134494770248587297299370148361270005803970935331071708197841103445901727616851189450884841162022151403169928374316955897223902813837288334992974555697374203784830458889185437369477742730138098801383435139834921857314289335756799094254780771471553180952179347670813837354140491070697779628700462551727753819130612153768965434111673249526041470791711544271447915825739958224789219499775336694422204641472891791195512182185904805452937812986921980167790232115920877255708974897242520994914570752700231936784610664070690128427019963833063716911330206920174437360567764841231284070480671477349141815373138683946664706658897537038546352883596059603556722225074733018846482691968272352620530141359603207178209956802176733478488503677801345683015328784176363623757689504804709123657306215273601295780163248032838072157560816865191016780529105412762015569344687267626035080147993539572288540072889242052033710184913172289090983734887376473562211462207688724526133021740146263814385598791420965811486777393545835460330314828698319213012168760207439353756536484933307397738275049917938417145954135933425316632024979826501362665612244660990667581279883910475516459926418640162771031119197431614007545451255643674984622272147249590492039144109681257912087455052335663858748428939384828284568539882312553581637901063435957230718285229409310489755107915847657154700116758398224874545930546767724848050930862308518000326166765746296274729144339972911726946961122683177258410977941121514385469743251183068463040910032941367628781305791070175522019672111503095842919081080355111230643814001618023301876823943399609292797798522780491460474120635442350792943494539707526974433888017499308128675084609520710815885032552836324272833461576106093020282784049731116708331719329960862381368019275619171936981879824104333747187219507377075040978194048276253474795030994020727492314478874434665322666916605506409959112577998168724767603354561773960065738773062849957288755901987973112335456657259183968258131296396013109525387329544086853318453051023478397446380257641011902284859050639669088195480716715854446516129038679565130483882267344784555075505235306168551077597797071576183502183934241040982942329622578282956901604816801845199816635552338737509903038633138989801438312890759285794810730052724905144401034215516512923182755063822442621325372287491969839014000229891615728345854712868675020062958651976258796147057448225052482473065618812756196874964616350158096623430559787897189779772431819027257518057454367929085508049268932715610721494222414032855113041028822071870694082236640578595946286422350783251259627710057880415157974777742800995256504161926391027943516189110983712566384620404439227388174223685850341207504180046536402569952046709435687654821185450236740225008585020252770854670034623960439764643572401328553773003288573579863206061295647917856382099675106806452801890018088014089507745675108198157578821766918607318970542498422281494088140007265420992339646249773475161830571635433786144078230806296962404386819090017902044330063020084923352450266642907443959413763563727708962345165778671955785550161113823561571889925901088448836123610423891916807014828269307078734529989749715442955471467854641996670841008878568290437461857966872417287884285624330938925939240240057312918094387493700052219292308203580992942540543307356601783066586303527294674579006141509025106368193915706298913505893791344035739990430359709106754312044923523175955356087190171442754896020481720277030393459413753673201441679363544937753974572891993833934756573719491098506137267123288873400383966678456526825855173285529404061185629242708383416416673572763938873854389077234159354745538692967282013809661259247602765064787044759001964203910394823104172263099620143997342764270894698651640232663268292427746330509059089733171029697808406816973588226955451101084056545316636103776048072108516256333709687213881429624074602368735290859985735488343759300941637010476927363606999831175654997168363911100648497245062458642639654993586799473620314912366500699170432959394960148987216394157030926771872486362324743053795178756059209312762985282347697377041373352125701161569447087434321741782449243109188105535678619618940329373624538935169475832008155510713495937191231060609403054015325885181842131153871681784484629112655938208737731994470930745420213048251036276104273066496932618181164318341363683945630112478604497999018439802123245255458651895676726365202305326863521702732602997946278070929125756950522861911852611858952617042216600907301376459061763245308176333130013403441993990701183206388080376552749346079985130742190307674775295776027006436973465596688067936820624501407424946256826337109616531716652815717138673165711282646354908026591433894444004002395750929066571287444337031365885484221972099537022426362104237978022622443144456250613878477940587286706080844124057442301883378985998580868600721994954333672057726334914992682297847642407729544994946533659619730829649365353456730590200144507283573048693675512261890431016456827477697195005877653340389902884449578418233450229072319712283954363561197577744199083388967452599208322036514650824536099571375066294867299731850716725140215225161052897168616372408668708463524051518075577735505662671724348873767225018532678240218539929862562486120209343399524864948623301113997938479457914731597345490278644066849398084457841152144372321987821585925996291340157412374513857348582301095356161765633446960572066068029667133066445364233521718956589943676368963690267738936724878291604094461615507499268254100564401874823581932937602363878410263730610402276854172516676282098933974174304067202768860319904635648256615099489222406785715718134397807488873875254863337359596810962849075061964444412693339226096291327140048292204011067441381800721082295359279321739585023745068291716503722338576898311714815768082161699336644344281148651937763173415421025845029613247990766165692369312286225762260486443952154884228501091278452878627031764415781617702232087962132901872219584371753621709733083519262665437257510521583434367944535953802609331233850231886762407365706165423686772253970030826016426716653842123780640354781806838341676843029462284934765919231659733317831851554476381770692003336171165958248201910864156757409156408967690404491540757760834157416482808838989746041512515144975773911798003176894449751309562563599944712180553295995544352433088230527968388111611939842930180843209944408096143140868960526808616380189679410280998231762490492935642437944753446551836914272348667853202668296254009717673787205349371897324344909735439745270576558095016091803577600496307603551554993962398305015057925103324498102571319582563961769383628887100444995960316784328524427105256207892650583542837024258688583334911877838642412464263213970107567788780044821214499304548413713773602214243692206410970692023811422221495971006567059860947774325432238136197919476240354889453116615750800234511040308624609327415795413889723908672553143660980038429684960211083300025641088492787088767199121704954472747600456135039949442253250603385109056847476097064792367777710950715226044628244743877196850609162877017994138982444778467567928219594244275726499012689948078149562735206154394370851404000838775970979377018698360046916641559392518191308997492989452785869081374338216655424840903116895356069258332627579207366307481394158590422146321557365387023407063333375762122931002414469330917610845917763127841953812172928677887967546424457547945588863120622703406918498626745199775302716442406931407642530982268083858481836912100496271451368486716627457802458808911563173266268548798295571221805538314752029089002713054855539969279711465420945505321044258118940736789868889958807931152694099667157467601825610838492578983996064869127491780806267966985138911677467852610151631561903799243586480343461561940353455849422468128438725538390709726521243928892967690588708331736396109794411582287155714383727948851417843248588399384161747458077003207361337587986475101222630365509417920176058480263497771846214641110098306861749761700036846363373616153629524506077627057016458371329656021369654466979840833196558422850518839888522779389279810753255035503541503866896708880151166490391463108758426499266626314295621721193966043787537561433499211375931242627295685319603706871739026424527647790483776777911089041771631725719408115974824340779406791769589668503806513480052723423610608780472857822191635227222097386334515937753122240621340753707666629668781333186117784644990044268571458442980372005735455164876246051134830217993716805915545814340809048057772849075762678711439437652603060658878226743379308585538874274432588134520428575612678672397737006777654075121499922503188354725620199466005353046739168313791195088476173171728703296380234039992809594772510080355778179335227416562144773579520993307132225923930846179795444415470701640007933777048472497876664615256602576733562636668697616017812734276435272706140946168397914844274264986767738131640478713980076421358654227158124658384572743068176144462025369055879548510142438851294657505899441240935610918820666710356129815290533309926522489765219894637982915642563329704076146349405734264145284758889726214740308161441863101817512187541500689480377150627402104080008188746592906846750487700389627716774131938611650358227867167298842683087178382487509698805941050685966736727700559745439574388367910207959150031738165548129268200449003500767593555892838764969852216295980441729102924309976314822191193013014532715295660316261612785429026751118001761284109932316132540625794522608935574080968998999858555155995004653732648319821225766078577624690007305402456560932651534870796517898760094831087845900115786488425161256188753964458700057896242866066669179406628825895273737384562111892909704821991469664998511201888821024722138954884812624175096563561032795179656154837075929148929496483287078631770633270999394423899234031559124513959915803023432067485847000475571894323187299635599527775634085916747295683998542205675693117453562581556735229469070454534540048762274284860042289987469221421346358622713668764144671361689200312322539935948911200927627056033730191991847177848393423009980514834566008022129854677548289726208429051726657319612201588257376053746957319308685680707437827057416877453182769681224644574804389107524500710459682969423951442907448630671075587503268457273425259638352231096067868404378647751684793358701474395115158880153557839538588696977774111923950032542765862288991083132756072913067329701157182336715967871626738234171417845582146753251099030558191583694468220847390467229620862907368109277479201363303313970276462754852378321404261818202399837945502060335605826117532894022380904231733289997657434220962725865065542908541482549760930170065017528439471851152383332031655908915741471224867031949725351067925772178410636222719642222741725924685636144390510469311709710354190879060674862740109734435170725934085553993334911362636721850198110194068397908542658736117314447605140993688526230189911199242551748937455468185790930020252203151278299572367346536133402401245131396138137203229645913592572345640248504282417127577213439374860112261015779662158960894426577815986978948070522814839935788954821849413896591834234608868611311495895950028462070182671218115733244822078868511063843839602120198874962990353034336427900231089893113192270940987834115305032560204971124443423277751615902396769880832804296802783557226378760327232296446962651899854126089706355562254859764165067613418581002618693284012724016358342124719436592748665795302649635916807057713455108926973531032733699693423710794902425466150978765469797156501510359371953011516624530658648225105714625377887894377092105698714855206634910809370403277553883904765359205688867327146862374598159937157982135457211947300324599661467138323853406176919638260128280783053712659607223564130017532458085119817068197724924538697731003350856375626852194298076897191982864049340208071144708456129970269315844061664823354040175293533518385830478478282283108606166814177309874195632782569543425491555052067879803128146946350571206100996035450560726512638256040348159117282693560153589840299002941166370551969902207406403269871291629473587903776980116107183516430984649257804398891106938519480707916596078452199732711849746078986490742588910489822473009538292466150711047873330227060479723283005046719507667731190166153727873646472277657029592884373764482297296259948849443808104138464361866196020484212500854632280345375609152483751214824056289621286152816176100653980474129526851023395994111187585529583282372886586070434512668049839349104566300029045813996842241821011999782097700990287553362925181294774559657023594103541108535251505385385829927361057363134895564177721593581172806764073592241040255809622903181837016015772704266145584144051156765926364358864466396252904417048316612695640335695116342233239348245876153466177280591595116442726493948154953864334194787373309073005252893351994952299287240958494894559129975335988115448630752104001191793264938463544378257183232448055444057112054722308623083253743395209177806842919334926070830519403945118334340310425329427339826070433602893622939382845745736128233673955077114393892017228795683477308600712754782569191468141840974720580632451369569633066221905550887435327028959134727345241875915473446970658823449321995031211529058144252677763639218793787637228279209267682898285909190403335502468759448837243795365758227212026583573125528439760463954923815756714964396746767517978464477068549642600233889471481082182851170035412783079049933819548648082008575641933019599426950473133348576256267173774976493961139868572289903546472406706310126674151568546193508403174071507567257236325308372556646992345874938469152683756737550575703905626415378189865446137054012745134565369163587078214279025916424975327824529791901744894023056936187114938794878985663482688484353701869960599352921308266580777905787970207547766127483665289301414199583270227040751976209766842242753071086439978211159902346554529209044932725933239356675513112272991474690991006768011607363923176322478535447681163577292405827451881360518529100869864820906674367844988331031685447878435336684949688954728903405065375028267675189639497634832635438175992692999568876241455823655767596090321462859772678590643970422951081819555413864080548203703299465094062108787376825913184357163715145230536365892971392917121199713414636964969995775730123718062953556484247756367324564441780923036064061592023130780574781224901393390394992147395709496775966653563377984295202643164915339557414849144506326796957410427347040361595419383453333165475455877302529618542450961858272572385666519203895936811416394973682136964462179600515909992564716454528114959617498508871630868738334291959943632595222579911438785958557436930535845189533374288233061426136618088593485045174091662150619229525689650802026701722415371178566257028757471373269076821892216162519275210423501921139990823528725364449672043145156514029503668200841392973629377161469909933309347238638663781278566919346812749574764442206073765459141901520284082321507706451073248175405374355618123637667954155197972119381438159183878337277642079325273278247804781102034210095510057645037373445364223498808087919428078802653144039653900107369852777485592294543943646984410942286657630356600424720443704739774747207230675730442469842104478958222969849335399668666352429296554371263352131330890777080070496814605590091242290967861446180771632935188497454306028517534491808394247153969170460875651655127942447346940391520538600810012375306087391837249874866574288529991025989000899219559882331712519949380194044827008857078020887292396122686474036186618835497752633561852612850771805786875935687275602238577422702038534486646829493278636172442284249585020507618666663393056604238471784889582208273432865732745566327768003227758695628244229588953204294654452398887209744453466824304488670549645186885309130421739177058168226299831987528493258918421608957865480103414839185157819961981996789311414911101671358898454603755261772300752466712080407030644074979966503659209953630859721547416926009534495593832045855873180173959433996815049396719455309721870342443259753346550787161915678520197461347790527118426843543104676276613206059377585385525095924573931303707521740285910520940309839460429414258511771453987219002636758813625067048005090999262349125455339440033208024352824517694106188510563989598167139329838165359724623343335484865300479603867114185332108258835620582432324975637886453947566141011225971420638712852658877361752377160582432065039411042158696895780414292986515225259681491116779027621856805978232153777535667173045890282857299970933149207734385204031219958776111567123240363842682007362843873997738926611628787515505984548884338744612658246819717028386466681884255161272951322144874014747470090207740218014774909531144184887528585130452711991787201797679362510438931089866593794900040077054912351379480014345026555230855109643966435556781717923937818603434530364996257402087744232557481082151535159943553198926561320987855948861732258678680052338860298330874581945891329985799422761543665372418270965179940272093170462843966371848165656292436531248621512586218210978863092447270194199338129041658643510253639746273965761020064055481049238575340835221359739964002431481662600152994047056466097038506803543577184993937320120700743268728371281766336436313154671005629715366770428987597930531770866978177267738797512875299055485527056165828873148154646733044464542231196703757374472541148566983984734561425535403009027524101286932023665913308585671471601229828255823687897563127693970893784137717788734296246037053134223547885234736847026529489128800952228611484979435329835827489542975684456052817177622015309940472529114665270740635302236653024158675843627115419823638735754584516758915847826340826227002814936408483632429662600357322601246387322833146406468542496019164362530528436273766834413306826782156203736862854840800685284221278988701623544809831649808411474982479130996757650062878604249840791432983561678630084067247450483887120183925938426429882783775683468652724506628443018262413705117538772368266768369330023011280038674777848813546279786761334963285295253954126617584234099887488436108224815976148718604691240231857563250711808943595530624372967206972698522298240359108024044483848379597248062310864120194519714772720188272483545994986372709832460583978129183288733672852218197449580936703126723591064234613787336105978986431850470875201356983939731731660194615566864776653997824146953718842021111467141165096821308734327122151387087099899514966309626879242279146325807287733379500226188681600015030066413613378471413975690978461311228227240384875595244827519175693232568910109185290833669053452380404312345134821338421922403760550729037335717000348341281773278285141084559358388841054661571744844264484702358025610710992811351630978978214155053904916729345146360855321630504927893407296849278230769744836742381569131461178345554112126945651031930544291714778152271989712595932286170427252144560084955805969149121167381477622130507552368604948814121831542449270998416814547031845984258677914972035017601302506329759945684570736147323256381116000549223929354751101702116497245464297185712464606200109145205538150789496930739192452216832140894001090436862206727453057287087289961774231607132708216621342221261978075296179870683964547243711426134500683396342242327525130364332147990953496398092045565209440284965935605618326282056373161893802174763945673287831388224858955665019877740886714443409141499444463831067015636446230466398778611147809773973516192975178186769985006471441604903141932428504976690313598222975451391563520074669720071961002326058164772224908517401779280083321597971291847366888913915786595377602285620862669840735536420201036177464197422704566520842693108410059930234888033430683705567335058091431894745952624971602822387144572696980483127808362078434530141389355281502490023213833270088744766075757398305712592940812183137465208815555057467223716188325718563033072160275412122588899128639724920842927670445678090006221422616082970040334196704724856959756870913391015987238076725118655875789836855901796647273627492303150896859375638246250027987506067762561741125547215470258531788491675483988105948030709879425293293743933791391752367861615915702674237068343132494879110727470468430726035607543083138718051638872190838607655298978416719427120148707762277220130779380402548841550911682689325349289152084883343081262123915423020709866695177033906717672430241034535470986494912407210150735745009703224598756634858919138093637681448079160309438027697772466281718041826679325234750267571855191587564504124217523215257404802945497053178126679146519990748656003650223220580606233702862332833082974928663278187223945201104302869185244741633582923619473031619180265703565848824407292384256670680809616484899077593631394563088785590776573913729865011842383570660816739585320834912689434302665916740485634917169741162181932085693689475579717919433352180454276468107229854003855898848050088417194658368047979926476951151182059012674958591367090267494462487717799246869269525693588575270166387098204215509683870147215746741924049161569427593780995705258301136272067330742861020179354399911341233793807964396654841699252743404677318567981575344439746796133656771589805382048133085787516042337795205547244146990552708156038153302750010665762480217167589817139584135489951533089995427202472690520974855528720364565672355232244986679626870108855981207902326928511063497354974250631620085638732105528059716532236392354621820727492422300796290041367371419028876902085732583861876526880100568558974101674967268733400631515469318376087368021778470071813567774748203293863381963242440430644666181212182616803291820412616113113371185436487823426091514607540558877858378568076548340035747634004192063274243141196540611553563661666857639843294396556969162691485592648659967015544131603530326694381806684695307075801119166373322347951366810113074421874214098858405690958963393831501110501233138722238012402541011897508315751928844483124853045419027419569356675515045310193185095769446610096514599639484886096585398506417088476859547469823602648787291804669740746285616467654525373766906629922728387760586150684532623493791122573959418978261477033455893262973734911995007447151605527622762584913260875362950827373282115020565374371056230938173508325938646188386213119973244903291839740886316543712232669820816454276321230907542163232916164412865850452549756362830355438113740576466762384767571057414544025234619557967949154435387334435807135554064575572363625486548874348645420741197077763105247141089230216446899640399096272404113338813157522109877289840756248790510048310590227455767420755047977835161887164214179960596527157902075668247997656457169643847405679860765400096352142427283505896938855756561767314149124393518862889100150557978943673699885106599009661767894446970201879310397442076585945785321801953517812520487586081977465265426705005172369460147220936255795140537558013591852635088224139379518613244788264518756330060496910517188323628318470826884415051275630720912536134553853638732084930234095215748869272381714508534000202571898678563397430805495720077545718832172958971811510805814860365714334105551736542873225526328371586805236842059226629352124840054068217158015078986736004809202405748497729701420439865392320206914129133454524527921918422303060989419516619885173371436064404476567242666299650706343946130279548097855986414473920898560444342765152622734743010085959436108638705429015706543246761147442142682757055505759556988756356056843172318312091997349725908129667680543499849446055344275674946274556299022085776380740858848715489428422848738664523409741731351178547878056202220678689324661494645669131025100503985792657625999872835433614518991882056765707539318798186585799506359708779372124823918955150911590634937314808843620252377669314187587654033707993423741750490577545815935187948900066785843791667177833487055657839860597603986560758941281867381038352178978459194534580552196975449466946460522152574279122403305404776034059724754274151431140020011889343035999828334409449232022512533861220291642940971626300236383949385635369073740514602491726637605202303899250338546596930320626282170762395349576404780264628191733370783808664918314139946642611444609427879861881721969888804735559415660821569344366477387797899134255986189323837968303840630245502005576346227565720124692270512928786516408532718228612790409492174647203968737449562830612695853371916208013147908058627634220850761293943229554212525191893617552967731846286476614883555972810353409124787095469492004151647509375246550865914996108051847957266055556241234075179103289363447475651631098627615960198839480403077880803137414187201488263394151482590305499276298873173391858314433385708535005768840573493596431309926974632565216560108638507691820908376759741716660003804273125746817799062416085425092964726973177959217017045781813790661841441645632096131701952109443780794625976759867522106963922818980367531530605532317896808277732970564995171599736031876377904541930784396476241419330404029573445897925461868112484239424174537887171018916700224903270766273849940908056934051211799075068408484686039025643642432574578399159030617821761750586614189610786236541659888959026547772430622027868325468129648202525857469069049917293534422096164773832436311376293403423063088483525822718326973930688507836689396582392264503401894470438101686958979088851560386009274595526558602076772323662058906876517918407491430941470299204995135276379160292527223377618661228388273070624925890233233317253797810262362020492004082193671225052077650931673557238530653898608836790006608799213372691234860463107811897832207641007062475700225444381543399544453201709032546638342704768911400130556245726658229457623586852385778341776795815018678986551825008231594140029276259010465987428854583393388296804860105010761337292186469536612711037254761143993520735478156267533562424218321757567527982350847170834817695691640402312779522399413859519024536700906023952266905588149977448913955652667406346536739601808233179250527921553176716506988115186524252876378236136388836705754810038044094965620391679378298104810168508140561068004774341779385280270997235829682682143097263512878045708209450039599476273035278274163481998424470886841493871765404891346130739745586805207789476410163105075482043169189535334697732244374335581743606744572949259975788049281320906186611457365809912767495733850810914817879299840321104089565308826845045716400415549831207640276030292767708034956411136127295001657480299563032307121332578079532339062117481570007672851533026885490372961604576651963436040632143855429594711295135557321336111612456798710176720769529290029077058010327197477572367002719778304089372487075509919126096843164525415929988170230859890728850097253339642529379329421769327647042998293054304075829517159910275348852587800507177036998110415284469040911027429149710007945613448816735401536314453576965646297380824503913619851460955988931143039647440295628097120043157714660907594768774383882924792848209125512505859091183853136644088046922706467069935531102848640212557716250190887010269244224683173234624302257326762567327875847119935573553582200952922647239511023280288692609306243311227480841672316266924192604655136089298456891043413709588224803433973745654634159863037640744122569777646388281396703014158100306242955060791326193259747309701851515592036666244826732288439985044573243607719992768990618311710950197257658200332787072017717604575472325357380583849587893083852705213957366985411249208617619252363370359512716833852811066528560748119823793684322277686621837375660919769828565913757853080082946949481863676563939760395330153474317723293607936159035713108565237525010983979599177265882711042609516842221971353726302740377527970504505831636450899837761717307491084685371987072573530790359542240055876798181473845394859010772032153311824497328497965379371969436522391509245143962071157055887532767470123854624189690911418185372961848945232361778824556527514018973122040736936754554655761056069221333003076614222678199452105453749933078991526431330667797204248423826741240861003786019207850666659776799545675605837241390128930733776090550034774015117204442458914502632928617516720080020175653082874978529790901608321248398275480825285873148714489966400889734298973785942501431738792811517762642635435172942613280256391912833249061140050417839172633889494238903931215508182396360022252072232582414916115023711633212110520631500703775111541960825530479906535768494954661554510744718006937153422926141260728837580792346220560802836833579320358505805132505512510947295578236911183642072577722505147343341313693710815491228391280931833357000351230256342815854752819845868448764654091701212797503705974597604292259644824497744374072316406449101751623743110939280859271786623645476003495466070979718089419203153583352812947792814710596038412409254706354087769758252718558526432271101510263125248053524722107026071782085998215808732696406188165228536746641924742125249151953729946836087976776468628859563122538315418182535140069521785982322027118363909932801803172382824369193029563068792418315443710776024566376953448108577229206906823011824765775768567890194470830072998809188273664781705712564307133409291647226769514038837967778543965421951309969779661801061800796546248979665868779146974571164303923890741207293964079219382242673068955198245659790306607176134675750549067716284994105193559558143217416788968394993488390502334329974408435640174072082930613769030099259696418632159794782832190569086914311231490179197221097382160987316234943425058630958299411889038819513434103895611559514148512447461268711688819301041157740623357118672512687939233542753658198220191899448922530334836989945153197561727302281556879320821981980039450439245063888259045364016332288856641956588558043587547150258587351729012253757048938238405690353795860283809794812414791956398486592045969612110705092430278195373089965731800292385626846806825061982729981829036184075930481576838878481316435028252960398107219386034793596773356686012431829235791400265875092958171719197148036913076924907923743991877597247749361162837280680011396735328677709353196807783406214627940134833464334577084541061546471973213673960819606411700182778849783683754208012265458724032632258479385153186669613258883846389602848385922521460703496242883802164972558861014820784546481522898511326386566405947461678817832241511632832528523888263722687537645503779447876991140840636697484196742833630161358562681698728902865538506683703739782675094414147029154262927245248472087866173818268791335564861554180412213962422145306399939779766668031543372861659765282860680080094588800439028150465559579650503990398420667035227261255115839141210426073607786575875814062769207174725334041429154835917472573279679273123427944606201803286288468823321351006146854177011529616147258048903029772217805376786720876124889034541670476544836145974763133069653964151125625480617206320441366878956747703700354811835400216545977714071842870854406112389356634393855199752237303378307476841725025445414201030132769176269205001570472288600249524163457152426976693773147551094931014597438618683440636551294747163511932427997716417321276890154681165705697492993163709773015800791373082765242998391523658001578238298772225514874066774801026943509374935217012692005279607337396573083726597957966749254213622839656639713328155476508160326149472730443730824510565084482542551277152462627528607093525539014685183631588031828814468438968668327011447906600501055298452737906394697958806367063260383431852993250854772389464208009589148636203571299688088831147776237839548822718673774176977200829420514354144428926022289862334346702070683442444639575188162549379228234541009244202404582917156465147379975363819504067764743161427827203234482968853601608223868299436218988463166334079802825805823907463141776295585544717866930169386950645250174647789467075532313692668697699928036886552403080209416496333037923341704334913454120611767693860311975533309366474512670005786440771802159222807271357916160472275806503571064407150806402193386273035425972050571887045361529130936303911333489975239976450122993550940488982087388747505778624117040384817009358411471762822196659992195519098614091762942205935348314119477947666059552080312783662439631279204145683763710383347852220446124938203379818667326513016393497672346958256119678117826635072257430392139841427246653279869966481555180107147892092513238421813106458456236340392364320049982457797164814788712089254573198953038816662310022693341531187610485782334265705308670758952524371308384184933224748817530453272521881590547732127471494094847214600509735368016483137713011026199927619730546073952348688516615961461404463718774679806532781759397811209778307482410916587501525047727391125807492363711616170380267464435475173092113438041691124107752916805533931203237240265446708758530380779456489866815831594871697270080256286372170618684407162372308509018171515067475045213464227778568147379477998494653258939413179931073265782229840073404001944797675106996408055773598571344748696976505829936297431102679004042823398216504353107255845073744971481088349852593565989804802570858468904454488664601479314553763279365332778275292025950871858465687318862239539354567221950812948582917972251223530401063615493848152914912223729814649235657062234491005051579544173715257346078471397705291179274655798050563218068225061417150236651424126379182102089779528001868005863852750295418681977937855758301855864854921978108110568242512994131261327117391548902089547676807553174396922812902392609023002136459183923151106192256069280815081015838675933610318894256301134117133840202185353958123881781474506187933278332538540732909559435318265372896130565384626525519765411252344818256671395518291892813987652091999193667746474863554261456405909555305192739192450398790136509738901367181390259044586501378457845349034776312539918460485401632356740478374667992742452574639429335506448734861209879935065507201496889057889406955777823698660532990894835913793115661578716153656071331831768963244880620871646321197122184087992390384301419886235683250561870727769729293115104360025901585363102959614290494134540024899928297977195626739844585111843856068332086737002637721396194613496260899643171683452708703803142413657664058772910737201210820307215913018489354914436418710246303250095999925293101154159360148173783402904478047170552779272907558386388897786818772286992028941326963217576327103200163613632632923535094235974297607973066967181655427854014067373587996963550781900743400816647647647072388630966600730313218412603523495991562479508510319894239249208896769021420590697909568323841327003483580939347085192932398288973713206471672647033673084262811208437610957568737553986434848329933140214868408189874144363380358786968742200895888815838696830020612131389043446252506285005842467978120789531666182066422429525263506178896362697960336682959294306004395155902941390400076840444402057139604489128478326578700242123322933625915029600366133010059197266945758076014696703618724998967697638379084625412120850580837760481051326378329659900660962224778953502044430299432693870429735268406334556070251464510163060713164804476281057957402352148578327112577693031855386643288312463099076903280287223395326301069699302342446809668985019579133100853654744493001695373850279285213379372604269321045670279910157190778930594249729872168421021112862981199437659249340432904086093394458477760248846377922952854646729721972685269387888185939735172333148130601948183412716800041178310602614759232586568611110741953272919808639325063510596707599133298907775103956451715688430967318371784538841322756199302958477435046883839471799050729641495256312923361038277408577811117940717616648657477955046038964377597116790916291820172881348155051991944639904633682369984163225320192862140061815680162931034367723028318704749875955765382168793162091637155989742816875433290404860531190074974185714694507400524617219063999134224535222245813619074974234273674244953397200592385608381180334895846924683425890953150800993358409706080800825747408838678305583594706998801089471969577511382184050586341804586425522401636308286268403681769827517423369103151118163497793416684904702171217404852355628771969629385118503515588117548493560010142990906359571999963736025579764212057434452034109785896086862244108951375657871027376253400489848586112426680547389215436945947747108702288696913178644835677564794329872512425605457914322935045768019720562709140922178248683394623777441608992098494983769677248602228070051926241947542033055252998860952853492912508585735317572196748836704383041198397797961132430095974799121884935878516177796803436513255888213560577157014827891347114379670589307578933021694991482783336683005415109430738852596462711866316351917649770644594294159157739621656680457833013436862389168726361250896490566918643810791189429307697727260312362346761346015931507853222344597229559977302201826195909713091128285159287810305593760895989877069371616760985753757241334438205938944876442450988277358200243575576575670863493508330360785929613900504437465417523556219707677872862576419558368026473182738170705534844730457302608538300888863714149859426775860853179392873303218125113603738076722163972451262809061868084173629488684576338350664832754213534331795093349446587974159937107084952653612428655497413112421625425428599384483642791344494305063659189263608393009338430625515223806371528722284187379016611208557965533103219633627093437652522273666546923928840249685538434672178195721501322951173080208745462798946266100482047789216675883878105654288475450873295491477428528160066965257447527850619361970622815431470631381031040085578645922124364392912914564363986492522809209126137155864682834436051514093588553508172032012126238795753444730330416818824673870074596832460201023964807702446197876797938336335501190939447129094103617370622309201629068808184469726722882861711928262865051590255245654292253213589139116042085411030451642443623258374435209626987904614218887835673882750330357488013337424754444361090914329905886816436131228398888187794878392538042824583798868937414813207656425367386680090929585400473639178935040671655083829304879984257162620737404165747285663505720070591873625018529656391664918881073391236883073404259609144874736816020986537762465847889008338382320398385477758710136301013192321394373816182107745528490571649163443945709895124844813567685386570616286482461932111734719397534170671940231106985427391883299053427398680352124833329655646373839232066538824858881963287842537309767314391917537587839246987965675536961871340179095061549133879640879632831621395077623654540114103261501002802655499597334914303858990805971897764007085122831225419339139241264664633080937916590034345802369584245247537193873706436399083424159737867231524170816050952806489305985903209262174756550066896887253880965006290807383975414513524746967388950053956497198579217368665943219769339230282391434162754192857245290303227979232731235800198778373369457716265157690509924292837003178095193376605874599111631537301387940805359924811076231486569425642818627804873329824658031779658214914481582323730766623413571067888664509686538932817960921281108852091260136153148951153462498318188715525517882808199743766789630484533656088948876551496963878782333651291576781663768205146036006621176364532228118103555980707308615394747534855776015777599985934552136502283000543559114709539093893326703613942357469017050882050173368955933272659888095033680096404979194173236421228147525201883116676718097083617701930316985893948082690477702061160009323625113048655061636462682775027261009120011544286343208191310622877440715090747303977794688675595530841590705500287408168062453147977075801984100437947768738541650853289502053935426639974306391498789111395617522682320133488281098218822235832329718306000506764550270129432491235261919915315188250275140060111001948652025481613899961601913515599273359863213624743638149129029059702133564070976046480792518989258409046668613152137272808013262495073750059180907967595586906421255184418714113735357853167578889552789521528186094363563546049297867594044899866577085477246224300175702546161714087462009801539157102786682169672804271316519064119169744570050318519404367486845127851524309084387522119594440409073218799340071755069222136784727753298818869610066767512817711257069645818986904034724800360524648423018678545208290579813354419210579496969479436986089481169535697633117762061678823856613139042792693295504872804286843301927006281440988115097575221821407593228162231673277819992176708892467456187340848561780760311477378041838063692110508966140351987281775440746289698176428939104670862496345573980174467798265602576996907084237222957127150216324864430162095678280966657098586287574294425586772706997587324805629508787566473633305087842994395121208245813232639181557847743329474038514183603355281325469587814893094269840649234081352353417269388849775611920468615264878979628861541615041482493436969129806030413731394163107445859230556140152335984668644055078490612027857238248536893251577422786436775449058884275546431771152022553517706674758216835162951587997882910122701376896603478859272187297143323868830752285695920571855738669189035724557212208539369839313591292375352315012767434079338286165306558511414173636676464659811718978792255630384357850043706391344496358329027517151396478954338171341270167535069818476351840645307465995193029692725402131859164916319435472758795680034246206140527434503543886934611745220628359033969010840013528557328088409181885765653386645462329850967031429919794551135099986501021478027680710909544638670300894108942017350337354978426931350010709505189919139849354396795919116866109568625297758134263554393575178282918970336843215027479730826407954684347167915481554810128102629226731332589484282567160979489777835139246350159303838085859893113023022487709280965304032936941506223101005376131360645123919187708473207651599184137301232499324666543391108339565831408810542697131365803930142915255487766879644457992481091044546967303311910800964228684295055653098275514568378097139662426020453765292092052685554624557081736483669116030981938750225128454787986780917074746977339481926224745161306428795788320617888362214896294874626007044002910109498554530385278862067288613984163880730066336417650061909022296305212757679250253049912161302635229803714325473075531499591886833911672826014830307639728687578273216376914166369660178661615597292722484192379068030269430436420651193745683777633320582116524560261302201072664869816433082547037309735077441432226665487444201358705780437835633894022056080377192478685916815508672129194995879861662712455640287311544200170037654745556664398207333715872144764191539455264978540421505347984126694921640574424818401010035274776111093523272586482444883947051572838171492231267994074266087181267825591584945466893226819386031610282315652987928520402695824927210961441023710280332590640356054480464244397717867557661243070452631170219437492380587412624137376269591030872700999496102452597744086266994718883421052982114507521615535089406390380971783665064787854819479248709831665510773895800014634993011558096095007338479653841407522312246545363655512240169496153056577284370802612175681596103528360835452511043425116209919496325337539652034331613123944687597065037881885509646492652972802684571469997365500481558747636306580824309380421421484939552077382365880947193427893377802716735709965369646646128173376963744336193713494549129016918105884235966613312236013552873485673746638207504718909166090892836227060853967716229345722594945771169738139115442980459930998744270966850523132841569921096571978679711350094397510299065937546420718724943130251276742775965847219454948304169672381345243451469810153329442596745116366474341115324701369345756309308947211460110532832955883019131346546822235276869227315789314315015009239931063863557882007880438745445440161609987573373063146840715715091380083495559362162582808886796865208777941255371646232748118835751351003130657059320840758411392065817109888172065975050256124875170153086096330634363369305656611893996445298095079140779487632874499283912931387662083356934942368122458617720023565782557453539438126073512187077617785024301180851188920914476881647418343476042371697195446500686663421550085369355265519304267355413940620520083643375036150367330909494941174392586295528894109225041167422338219244131691885699254538008501915750468549022111647592723598770010424965735193149258775785944418432362623278762938020601604076028347956635784146127862252462333586857885902067026143136473155382253226420465456432552338390432249711451505206188143521203186630242352781597102679901440198355679589587530952637115290534657738543324210516649912181413903280932046544127440989961845550767011948429161906350767110768810784074792508336544185337621838296735900338204996952166567662783292055678321328464309670457404674097101137393616621566473205566977836997077716380600981273033488744696504784879799516344398964046109819764323513880331481704037933086050916572545512077382394830064209070126805916987116460162976786359361421597389676459771488663439993739851368973271048292347280310164059109405453066015799285598588306999711063987040894589900610385990765864027405527868219030153237278716659791973752168349928446917041714220464111601079626148026322346989907775755001198659292718747084190236882910224830343373261685410708633484869466346330759586083567903746757545047579533427582923048439348474456714641358636330839353649179336216544356917457256246052760990860178203427472119780461614029113374145922359524876316148065370372269987136238235071165806045493146586620688185406568996611414142124671565419055313209763193562357314583394480788736511402532362381218599580834813004325686295333621384384964246387209625160737164554456214702697723611672770566454260934213467700212818372725820884721479793373652858445999092531371180032471582469515835504878995947033001717358266182949145924859016481718868946292617613356666562041584546930107973297584359375622393019801119040638805289248448083292864751004364672820552068615438933497353221822194384410926957711184206781022638251233555100805501689383077727944092111206202871955237872586737309232340067575026459996482883437228403453409642057200955648430237272111760320675063466324879553463501042307746342607883505071763222694086658648483898320590818601436128140789490469151155162990368499020605205297186934856985521794073668137950034279744603059920161779323459037368270219065175261596042460886989778784159137527459060385948910915425540241172205055290726465206494924913051465436830796133695917633851427404181009994599450253148785288847045685927068405815358576318419507973163596450648137235646325218349638865763214569991835521826440354522899018937828201105341441353823982724576663830739919167006506689549497332400510833311037562176537144750040462033299436918574866589814028676781493137328264706875832469604913829415640358617958454991860555573887714597465597922978651582262883209446751861082732630060584095291077184072695384848004668046813799423549835809131803536707586818668459522402305952322203142656152776968306697104581431646146743551993564791472611276101900377807359860951844606321613941149177622702691404581503902913385670852399395337120004727406828470520405407979577188818495574151988816911503557448956579892490170436057840507714825394963571136000790257069901518318851885465088344258702142868088663596663930490505822421714612919518572085530861865751929000849246317252358359460116911343647704453652542435216719675994122015372441853351056384132713247827523969422505767080453368582257500571675412284175529725711756349527190830923357734225969801272175812307739063874887335398091110492623087778448811685838330219186853416243959681888591456325773468172199863107832224795679798331995242901235530358022473718602558152322065405318692459211117978771908705073052458087888845749996463855604415532878344741304004164658787179972883165255612481375139003759888671210510246048673061644961226144903379348029359222911211623052181370231697292843179622871786106721653358899745644992145096752399690646411923379788904904827650187910921512317492700665938524830625594134003385294462313886156855544748684657601149013676093566067587365673645636493403789726928711875923870713153174003100302376448221585199705146278408153009159673652786051528159797248166208192725407316583561258156620561414699175347010796759969177747169449076404462213898405913549234933623841397512003129001560606685741852697705536961637501929732112252209399925567912449517856424276724885088613769261295370170009163112936782606949233863976863989320700899460966681913886786408898058734297935666067865253786695581401265843654116045764584394788329615480170522077569129009586486460249405585399240160847048365254812859019144068093498579256506316739366497655924561522390755747471061950299326978830107841537273293468689404521371860380637982378475563031053764687125990896824245893774174037805074869490931504781870774034908149244469290800503869380999419000616453778953664192323992152673791771363827551354223468403153628172028648171152754813141926543407460821992925659718788746267647125520001680778616715551995012071167404406504581068501276601935851607949592277199100944437397987604231606293782526821669267241774622377802068399111695731065321070623582559444484283320161204067258415572481325534021541037485886635460236524079323859494968472117870505263681268971131500374610402586236154252993907286488820573609806305952605026951562680184367703510521312319911529731681301503252480702724209233659363289912742761028003157706820909016138228079906530608925018188467908412445975062722930425054445113758123020764388808461247050895931806983321851410960401782658504013499558759787988987730969051550725001796231337526170301665327028634489221679255910126728682104728738513932328600493686397365748270843981265928501038622397908382697785348344905998934880520481135023281660951400502692831750681052139387011180014445799780721499673724947201796572384437263416652544366923861036246708649845713575065963061182124660715203074728126060332597276864315756694598833203852396592501832887486873924680985935225878903013610983228750800895558300373337528435685727093258594784077560403751335456203860996237197930743385655638351826558718526059183855558480391763052716725362409568237692283825231129688965880905243329974254842946934534187944011639153943861905455254673057298974155455945736650436704815097987180460485221671893255072202992422655007508824200885651292174283417327690441565498197150125275722281308718513965265184467682913560744779196055103983503512729505410775466051335023179362036877944821777994299128775000499097988936079689750729508341387187663369552286656833115344138543696774498692695578454000063005904580534452576715313254477423603987452376320598565784412342400938046994894082098300856833355809982924490052318486723492516814679698214091394545539841499842296207017677015349159604396950641029067881464086602611477060949233644686325323137530351042583408664208850407072192414358508482529294691515105454307966951790931925211209746786659437357516538060613085556766096126184688481244062954436961835699687944381451321471784117094274507411874435438651248274579969394303047677357776625012808218239201346827269061295679837823814466866247330915163313983170176737998910918713964973951746770370778475705351048598570065436240759709527864173528952936200124985243168740514811048817112931245537439326842471856816003920729543670823011987215168686576672860150209078729544011011146301965507790661412035937039850852364414403321420272584839228787140127440828446127285748332139521678847066812426182053110117271287481168459311101843164156235924341263271396657290400098052726229282768155864453667194056146429233232512615745403777815596037493570691953659573602451943616495580449740013165831392164316069971855821750864759193553090583544672432830738294245988576720546068370770819159932206148411914036081222091117111976551275543384051041071842938359273256093023418639868059147341254397317499711675667193902256298794759512518411354411814910258137033606373282206625606896465018463678542664923599924152091315773578521222938640553064692288845228677492695032889718970660386666904807517852277139626897440343873951752795329737892869936421695600085634006522293026409641025019628598750596134646834131651530268266178974075536873799014429717697455628191272144842987140291180805602365031641764293978745500012405584715169221050265062076916840091425168294241355591540849864815835009399599525877504861296957696666540913938469169965961305722858300892876678308242146303412015636231890235322336391827740807062288945278468705398074212193963271968397041582335263526782234563557260028402802955499460749840548824038267413308321607903231623040573301910260834219796722826553637067790550900158549348236676306236786899829862449961368403506469684124713819816907731489251645573081291195378462532531638251031199782525046487935599887996581856202865213366663823966911066042119678469418267096829323642418691981973192892803569547061005893613860298737269132478244663749668780808601404528613432972241053388529154113135755975241224536677853796009993946541793221975877070204500980653152895809367711659523332174308529526311904425234319424164596312769021046684146015433690214427495335334407389876315618411671767657927632882724313120149750465155859196535254452649865025053389226207797807241398758754566486514375848464189236704189138653372326440229710633792761582604132752041286734871514980301934755317199143935568922842785120278321293120341488765226082169601373612468417678160021899997767866289783902229978598619156248757675029173317543205220835758570142752412227130191536566435810661614648508787513008312412499763873118745693203412286561041697769322921793775677606905767852746750943981070558170392408846486396709467379021016906713724607057282409675368492956910058504080274588971764375328986510711026324063691801549351543525969328575639668988131156807039509269780378118223363782402485519160902498207581265125860831666468133801565495075967599372328897071760661886815535876039566559123823222467495880674025697227118838127445449256966569831327101348262237375029147458652445569442283423983069478789995245968182496133589109599406683746242315828837062061978008839760956065593771655817999085483591994749212706554692761251963273837917094888163797963227603185436447965250940138678764623004325998056325274581963975427309553754265811007941898581660406986313398343417372825242488778486922122182671986825289734963653161852023466747842199683923002359269675035959132758399866288814170309774316519993996007326220963430567909665777343860015909751836612244731185349192181060909621670160516925938438244579197096943892329853600498587408105455401498207680414357452646029265233586611246179656167716752225529698803510151552061292369478320304042725172610368300767613075294406576859059563348261488794235691716438605910167576579325916622574657009559447377927444263249265828233698069535237523413227719690141134709866419222810905661106157755304765843836829403035273583226851643196956261252127103470615040297065588290174499725393827642564056175420000419943665106051813436802549184338617941333512772774801584558278838749043463582781716704749312119255348765121926231983904661953233971668208998730604397279455756497636030855249231774499608482698082769704246509501579920486910347744202810839317564460505950155785700817295547086767179172605080271450970905891079614829856645046922132213523036677801155147258349992988856171964860933186620516844866934847422578851091556425760003510061318731914506379881495750952703771629455688697053052829181787907504872874353192560045969610695708587406411822247092533698205079867027358377522434974077637958090044175116288839065885574759802799553506305265743481047060229278117572182486210129759241804623494924740479048179304848906760787631414176227801877533322734968636687679281181497372093339375854612257117508436249606745979381814725493062139926554988077931236281978528387300058450651307835752371335274156207555174922906876954084302879154724179308127238757733649883142721628288026085631895627173422629624160013028038751386935424406899665616558621965031184186337585123478390732119487491886024887546032975344316445886242610946707458797695812157831157974761065634886138906406005594398622611233310500858932435667870234869369073007240818536239767692159395394035820835162711783312782209253766581172376060403524283782681764982686917957482264413809748342536548727514129553266571634132656286830796027900950237910662573645412594142781041379507135824516207224785054028664886418771580377882215821568626215825065483934389112576075595574980952266525589418986913385382853398927881341832771085986839221640846874342383698492887308506394436842902193369310692348614641368371871305540221428573902894437446757686395293051600229903916776633262494178200529029550259208589929294091383924427866340912025501584595837420613899872056199716673115396205504451292711874214211651272360782361904788934973993320176425030570065972748732643399124881643959353081487252335364715224489434118210807778329505440880981333419075516805297984871823719579803313980132696784516397126368603895063645190629618925256866971394669532613363652314920149521811562730401008061397705554888097503410417823304457841070938763337240456075922697761295629749823375214846743445799664689935960395507083489964766527218119012007805889597908039366768746179648089449855841658485303714041378134765871405336665848796331762048603869660758173131826260100185630271734905241999473737450938351272886461198018538128018795420523371911696276758054702414984997529048555756379060264517217708021800176411074205950258831779447817800447405722469142542108153440770654607108333145433885211587243962485295830082656421853634851047554847873731322211454302365822022628740735227184678576810395206251387279353495143733309875727054556161745039999093206934955814008704018649603700211184139561412289716446455464978007294942442670354692213561910839410444920765408243094348374875095754185944828460961695288043608343446365689223567885671738792937691753810523826072474119457331854586208317969662153571676971907578089416930359778095543371807302164575158296722460173072726466486893281780572940514713408788247349489986091823161984752695423916348172978684400797856859454815706510060521716295255734199260416306109033670543791094170185755825128424278424792519025311826190886042960119348734207892061062034120795358226606304821832843187550458760673383846579288600582062342514571142554380511629201550440353836386749638444084922125663652668291884459133681765570969959269385763334856247327030105652007569974716116867359853693692944689000360767135477876438447197496099396597320846545124274115929394112475869983122408535783426064530964999767850395628654295855364079153179533726360673009712269740488713574692888576275154760400992722411974188132228116125766601441778546894923456585674504223549204467603706871003051268643371082314495487584191555172903210692881675750487652763717023940342264089468922462378758698335487528002119191432622650878955393010201796237678304382850817312728253245767962207156083699752636749851671817293705087403661343339193661146624328746378143869645599432303647037593236021346412688650981764330734858584634609703244900090779467734689600626365668211406494122590166077410856601049744704911208899637285324193621185475572307484572675105807963044145283126302587913235617968053326560343513386003027277505952139076097856124224920778705083797375810167023004877998449432780090302954301918412616241484485813954128864808464688916536968320232038741027204817822948734085438029343574657110245908265477253313095845858326055818677361503227482430027779374976053492481110013255401584041685034911916824186616331583770815496946199493730891368422291713214442471068951897238291302992901670984281436824791856267697873837600590781419009481067542377469863310948924024517287704843344826930848166102249970161277498581148429070227523497718002166221232255682053361044052506048574025426187132073657906598844789858761787768412628812690254635337277587815888580465698529050316968957405806574586793812826583505734142517357836329107358672418623250082969511035381824241648699484596285601988540485980449946305684824897854948094358243233406813480089183657113025687703683028575023183286374289644538304957563375814537803589948489215689167008987722217372107031240472347605395183277150232319820551111127360937259284378324642375990470551455758274629230449211479994976676656650385021006278497445988466599827113809445157854879985720115363146365987364492132176560253232015829533738542238515328422130650797867609015039442472045062869577305132408745428654726047193630279395346263606400641982000284408663067869334269565003842414620298144011560381680345243962001682077219679798118588789925770992356711805236283545125483141001603354790139788172849680975170913706286408523691942859332433834074888291520063171261987633434114063027318379660821148014009793756421909881010415039068367659185844466073186219144987498812953413667627159829937553216146373595160563291271938070881044763559454845600357268965607620172075606585375007767442728597711247567949684599743345488686911346598591108740330360539588053272452928457103540248616393233210899486589709767564546157198979779682930188550378260027652432194102730111291724248450729918598625259367755803659179918992905505416226997568702698819831309537391635619785146608687958781129342478705196687045661470410224892822240174345285184802828141861093993579899921697647731335545003571471692988273951133608820184717174316645889151731943971373061779201715614775157566319634112085427567926178856572497270727852926752305766535607120555301538449380220552009597539409966432240554825876119837761295015141639238272709390112955191254720136192681657369801203303522918959311817163237195295363123489961847862913360743516708646177022951097202150158359964607763765982502791166893520840863341808688295886435427860705022290430089848688048573985199182710709800516545821647124439507583102677604013901867055104780660492844015287652727700364596557526577186968076684439875639297343237699793515178499409977376016253704914604660201841573550286043478540019407312200878703063300522357628867173102208999930330313256291239212519432917085785048582939936781468060516146344156556612647383106195243973105443389223147354173109293068425134242082696736682600821537428989617888047085408682156510975410731034387495699858286235793093625775869131011560195004832289020371265859614272673405467293165824357507381002465793647091787674544365596762699317074794782546728960341272890981474360546496314040135988002096711053230086961882659854500046165787435399115263948793110247882949402537223287179918498693710965205502444557610365750223651677376777639096216432436578432443715823819304341535797093947302798354219052953440871262332359780315397457493287601466747542097863223628005400996738731939368908552151582843188948438392121842915311791016470953784361396453258548061321435998178589490674869939696863113823938207486946141572089350034640042072188864814424302389272431923407332164507615889923258181792718404549927897148865875263825713409009804760597422924340306676533816605343450070770438872377322380820885496677521582666958226954700812656886295014946030962565350543808272401106341463035563013318438056734039874691464986895299501239865972240166492383773077344821483548275810407030887473520655455434477147514299539098317939405410984324240776827637707296237609935329306734820166100594486529840501338556162072670467314022011133370892732834131450884749080594050817257494575127691516653603241745897718800764218908859256991275327148037667360937360211232474451300971598477296043823374116637550381367446252521069884828186323695310082326832804549727601152649002699607023744793323269453208838700424932321422779869194912565120680994155999375693445552837556879630807560408761419095600981902908672257367281820182449469149216143279419129225037457285276045019181929111484050652866424886517914153186549108981575330724991719433895604527272564251108636189611627617372801190936672012398023039638338420789777832839837472555835241080926660521925724678003135102049975336845402601077386266198060994750847071201036080169113078647407480637671459782981028972161899888408810314936888932277867676366366086756768404886982775863794222965714521695518029545714012803767980642809839811728228919852421999751474066182778197266716553739477398300505628028789955377747710345454894901443697440965974752270780882616400244835872345858197503516188064270079554173511344681588297398488750066429035688645439427496075764568299700289816869280453935583321859946113061155709544016240774161757592979024048476688642840772035637894822118329069162217995933915205695090442514271967734899803884204187140852092444023428800601324073765753383977730378983800131118853639531570353917587600154958406210888019418331829140128122739086866473174273700079439505077814136907990927353101035962557132504102451910312315989503804730615258728730805115521147240601764867383249971510815725728406003555053022690405607383914383359442837792245872721763431074356792804816527104124434433469589243331646680137293083949754390885471965070970869177387932670665737343675856187478807964456477083590840095406295846846350138927642758120388050243448897829116068688767493237529444890164040209574350983789308074486152154944155352079329947819249980256356473720562685551383535201945341370282772884443894346533159352693087252200962800260683875832720126084381606285641794178845791602944668264234423905875498603853293993939500750689604763092783092420792339777571312641295458393742674819666061434066161951037025573915229980680221263235115533865677668306487863764411690648139923593959539882913940893898928687015708886532733519080330995348823876724684114659858906936189110740543142041975004870831445081378404509584170579539865863120625713860289493810201765404128395021467137151621925450168817107123468751657261255910748716296245999787281191227426114119576708541348767578775193703179440203380566097858368208359362215774446175445482321693765364018435752233664501092352154152239632026329204577619128564319955628824614468606170598117328772153240100102419411630467757865999300957462381978852400022052604964022483537960693843079937152823606431742516591049432117042100194083259286047853739732135038909767576048990396892970148020359132582379751945351522262719776050197955244553706159887235610509729508794222805232259064246267531255645073399047027923183503854214365404633283165897366217216303356243851489907354737294138621379284311017942085447570355345676478225667269361173629074858001404428613915389641126661763468393552260536317820056307572182735080578207587068487521438154405778561659168156482415605006009328091858635294359464478492878240050627995134570385730453759953778379492695988915354468942170607675529115160103312795390409766992465616120897156861269301175868309489242793879854484882516764901518810382458701719792959036525787419046613694905644543945694075074429519845115014718946499881521359984897732877231545868084441484269071115280670277327467412613800316566004128229007450617865520514542912418836240353941723916575471607989519563550969074430975795638892699523232950339001598111901109901190866187461127415808241127240507161558514235834616723378382464821548312719479147152048737934679580070392223769917803914841557674558521397829844937512989040789609193098899379077471112994526015262656086605757770521113567289080366446511381440043633809735155774049379161861721669647855685979073808110768555812679499278113129599804959939935010164506147210400401403512736341072799024024064713087950038311827980336784969903998730167698903970091307422215442546590691245505898536721020426690398359659834386642665084004648891129145032695027002352423892746395249077549941794837623284106199149889274306691444265596709868028705534837805906482055449338807360903747500123628329706430919802289294467769186914561520989908241793572292437285222912418760109216631447710051457889676302616027402651973588810595910839065475098389151826787766298924602425490770161746723241944884479274936667756385868300076092101676708979786511808042645783080467870981497917680993455215330468634792321084238924523042303007951801470819405462229701998536112807682978863546467033642581206563782307512451589916686655811487026969232079337260017430755396486710321179218422156736200245078638839090578642539337557161260671713613751073105668039742420938148873972330596755945869798079494460674742878240785521199252808324212379281369285132338891814410353318395200516209310957871588156931442230409992552124439993670255839230484111028885453389512297487328012714962654333707139294136647406480095369532094793731324770962921832187669764488785049726436920193420006833003408438191675282661744772945803401555239978225378368914044251232567259121694170097954896329657127041577006960405327636691152870625033791231988517922688203104735492707041596431394663713468833910727120307209175906025150125551225404696176446672445020599189779330791795028992899174596080605512862479696127453716764915023853527081287590090415757890654971747681186681239543839554655045575256655416898050061313253567099152352364222249405755075501576541217975310476207177304387067069889049036326629223927153852653399296622998639835334744067126880077690972920112168936902004402879636191082934085828432735121762588584673974129237266635591586404205024432722142137146646561957331407557645137924835603770086062711984889797073287335421408171741998018397240975067501117206900543104532391699898206746909620208652753449108299648214530070392680293532830848361000935515513827166826831892278621174258061047985910788379495079153864588681709366737861646815400262692827625979830008710124568071136953370492832948532617712301353603972359784071604946167700518960903044743718819028332013123962478212076546601025183569225864119094288892253108202174073928849178610099638482617868482004085404263809598857563194470134839018336334687430783034659557847203311909300348572821237248461654957768923990160987889286167626676437527187921571746639677909453327382912043606880638124823726596661152383127834017952996768579325082537827096135770384315649954394965689745954297188347776280777171640767157404345550426069235591935939818271986218214599782597285249622438974944282937878692633312318152902833016101349916400804010919265826019776872589265794165760997879631411782717742885259682160836565357007700938160501000728243326598065879516953361198093072105771054867716728882397063530313626909994993685702851960971950441157123748555633285842888032949018220178898951534707928981727166747908973820804180597168215992658722254953700894464472754434813295490090559421641979790678205390335215049077088475299410577825128246993852399629031144381904322487086842286209675032804577233664078512539931756253516313893231982132647963849848163762364536295863746342011561533964763487853370589797692959630577726953696346399580528766020812682906973495595775441090482597547212314112380467534178837104486027807115482687133470726162815739778325101183692625376146778637570812711418000716496313007292873649547379560450149564383845809222827804070578151366370020479425000057724318361416899773648664539463637893356267993632510596060430200871181497130145094169677949616879557423325737583759544865990024731092521824569762611551746348397916829764359340409687887766559572679461700846734138219784155346010665275731762116033557126043668372962410123642953613940015511861471778477404050524647954665421282444579549837684465501958105912055610898424221869196362318658806063696306161608969662230998075851188050428760303102441386746086519528176857656387286605950643901321428602921022642344707427895325603419857635180857441908851318288396970166334631905311428617302629460284414770538716199692172273613626374140878614651327082757548121309640336587134033320493488799299486875477356147976449710660469219238327118896851713105967472588226497583823880091853557166636926618233881684937023245208989511765612918401785405354341720468299663004133302096356810209512924164064149637659742362532027815928953647723754493778666309335879766174594793231717683028405735529715620000733258954562192523259925260809507594465587828066926369828470590115666158958014080817212398441436949190179938981888739982965624562743297108927874688202154477563440954757886640739064305959322819760139550634558064126064117241967039261769424848823740812028164481744967030606091986797405095515191469808288842274214167383738186786405633746438124195143977217055386979671687728975573412338635485435123334952207240819150705133221789960881299662922976357132709374741579593670654114225605810702998862401485756280654071879932075329399990778593912475453499673977951372692857629045809545627279805210331057624176107453830715263168304465266715228681630234462654840937890964800762792562073707960351667413898505956354070382429831875208588930115003409103829196956169527874999198199744178848381702086216715606312992775007093483319081474290930075756130236295793301556985353283248572612792231317239309446429146112254358504437747020652022736350668411048424499920696074849653913961076909281928395953920761002130148317143367245986045867266690407992955125345190938421476815315139150948265687485240945787370961451584483492919779225467058917258667402497187407329171535028848199692227925702472344118772427821623029758664466130275447062781613890184127111508150955438097926825599650362701089897824978141544152526735515144330115965361288520235160320735053766701609017315505259956071483252265146031842878564657362229871199496252122783868727450737609385726300676534457774548464985648741783298644315918825345456993110477094359506652461517414131275613248799928324758909150392576319079840017596469018246662836120795210948486563314852190014651745410417372207820384611555680810076212409805412990272367292059376357738749874505211607030068506722215398732601698676351910298526066122621262908592163667095497887076024645076598589533398377318552065717026008151069714998361746564762296126352333499558011794649494688824385032732345114976416185412768274275527588660022237382280078463649976231237185180740959618757276077347360546575035503571648537929486315680971358343557747985456556378687477977752965805451317500199556992971735462635018797955601773651186072496161002653672439522829415428729467946215521229496144493680385697124288296972823132248777488771640275439441438994553801228352023672588192999153822350035595846008569219192490201466308352490049402307383731390762725823583973052712254645869255655423796265057963341221893612002037269601667764403018751792951640575950575444008664177041286457480841721316731234292614018185965941636551560717200232485295261058562917943672717502655650745928315111156802594567925151705366491508037363394366367988690903187907618335202354512011639292338834647640395307668517576042386141808270801676679908272410088318818994164794130661776533715586696137829199527715994506171922891459596943411327122640724113602089478201649869618990330199172287688867592396860542399810812693576995760693247070161720561224154234363157135418804179796438540582959331485010979412070027341604417070537395885083079739970966733558069349953542891797046830584110224309002035130655243443783331195371986240551244090526346316943638917627433588010101629125531215842472136632924717247205972504335220226643935868387270672098986173264749027932301978782044534442087901401130416096211858848159479932858830531374322665240811570302261202966992203510099979628860573882670352843520543582141712885181448847820490480041616399085797748319923382738720990705552275090701858044329136268018780106534942363711821596919328983877086241087229284749195519928132808043480853270394170310124252163812347334012542260049010322558934610685527882138799067833234164024103327088234219685140700521332763332916216654115907786361392810514838472663805996677862081385764400332057372091825953121369567322066077806035178144317549087798967429599100311426258305157931055411351927008880182878808310780330575906212705999638853853452928243421564467204557750389015866237330502182879760564187239070633447111885107249050310835030682942180544235344644760397494536000467879782291423467089961481524780640706672938447833664200562468838427512506849257461136722971559912372222999999854128412039939716541374484435289040732077393516750246207134286751942123150397443954562263097493919355046520685561289197580953255960015697726347178022465507562945127459696665346020019055610496413390534602499151126081108670600732686608549303439957351444264078127131642436475645717667998867568396359366254827256366468557822162762443257645562132519990539150573307059954917110630983713656295374054098721813565470984954001565145772605956497365459153114973399658122696751316588482549174278006147023071171138759404595068992055739334074467965100696123437040371046027448825313282962896808976063330343677061356220610668535901784786972201411614404365954339444772230218037626522700839273681411513331855454369137322071747324611628511025657498897604934535088402926222121276009929352666055244209239896891869120088908305615385511963608313694340950307446368687246856252950384318769958193712156584483461594182495471594239917907341805430163221671497589770799234533614984375020914592227854723828355462307559422677161098239801573727417477210448079428416032942366823010457360124315475763262505048220750914586002753184374838151160903533343567774732395177163193127663860969091836373276729893568159746761137265111987753303295474307547253536901521126240381600707001578142603819883059723561148320944232502037117405843640236029876156052308821535041878433692510511899211137787330623512265649566998785304161189559306023449123782197552056460095755165402809129797857921690804587282835747693355948641337410693264072384790756773422188001757850770739546825001058548395623261120160601661258615652355332763265393722413722280984755413846088364850144750004580512458962470273820953802525190926204653497661592363352885479720489178910787532464197724181208183835911782401435646467663801708101762214249849766457191584088602096933682077615672727744186037004864416983797041587027111828911399957306437788199299013791879369486915610406277746469029096550028705406971154564466099428229588609462854354987328817714016886437607875621675253831261904993473340348003057562540441895360327784997662707018652756612632518756605441864968497072983213049295190316042265775354354172141035851308469627750356927048820496085193138072600889381565942017276686897062847597884615919687939962602495913662312097802898023916669451566578650924756706430987282758991191620083855199891850961260954972968013778284127237303187021353295033970315249963785665321170833474589332714467813524803698923184022399269729186214581891621655163522969545805837235652166550732879824720343303267591377087037983272177857886848259626718473805103786595536638432651271039764320149468296913327334842698717461060278537179023627695466553302182098609399586370653935437299968074468440485773189540935192382989294344348536664961121393382911269469772510796530747232680936497451018956643727328059848552764735217392390872760709078852789951159803715705261794284743449705454814752823924122604301225092554378244559490507379695840668018730621603146167650575831468096961095277535071607631889670638125752054704302194998963492220881829137005651631660766709700178984906826863239854463130772376273545357233636009816134257789996906811322649661654620769406289642671291004441374005044270518397196864538570966780443720647467832288935433840863005994723369626743508273362629827167093405405630878164692029238418920376320418054261143522837460693937800612305055238018919583624059110848502047214399044036680164784385556726200190628853697611831614373161697611121551455072956389634604803073532058711659084863687387368955759597102696817515349709994979467476928747305138263554683000651138766224430732420139933158418883914040491564954590466023665834235390672244763384213665714217203539844214024844444432358445268842516638517204707731263783948670719703788984151338966100051029727144025960941739581532354399358999859446388539574812482558135954703185263717339645065847567169871806398906562498750707575653422451668475391829651624730321707934787084293321251910573149256947139576232579709290993783041649498964588974386822565245662467725988158520172828424558488215888451109181653286547687921267217023517268499677448280518497294653132562828916255387327965667850847056327541672573680253593686640998024991076414756345562286439827505100555350136300866035535474046448394701346939997744044254664090231578809435336984169050323510093136658724335980486490356201981603560520503729633411603319192636033326110836002554239123104396882708173834621445983177167576147259068714444629796533646248033165991563695303012025461595214754518138155523064250326136905158321708329887204291263581074205634507814693336664908740968951004134759922152159937828183915356567170284531555009140740697127086045309183996982255389109102250642184885705816225824916826804081916970200877069540327683729906218811162402648112165664202163528511068657587542852817460589917292679913840016505933428727343850193701799159579063562675982922459681819980932770306325785487079604042436057309771244171259388467092837931765025949287986456993915363843979082953932613022951774453108827652579188583056327331439059549549978995871491700238586202147821756901767106617703810566002515722910539815193068389460513636738765098110340106246835983830814990233148197165914790974895075837991876239978862766231596756380713578498908061123900825334529526201796781438087073715336077244089198967980722267870253710924400758038702498187340374915680389953074803320441729941867731396787548251272171512552207483470997445635477347575682776464992636768267660522314134230967366288042662646113897352484968682757754049693957981383463943409804681868891989265426121322012173159019369948211238894394228570570756412351144373575379417399443896465967178916741444193167406783425049507007707477224377898336192730939297423202237851432963309548675916898547046193521026710224097977373722910062650132891691555219419441361848028574323312468323090420794208621125850507170647574314168091689145665753972804932420696594419560327688314746031215758713418247992319680982328257423837680280813743216430120057113363699445233879959666126776569389328841976902080444458030318301863091682492718005632104767933992638106032965847689658504475812653366944098454254251987172485941210802981057288572871486652521803601618801941181790954663937251154782076168320769938861517866238209078980298865486578619903374066769677284419806571229976776075368681898841126477045438194567833321282465378426372670517094064395561624782734272110097127665984430960157362111531268028849486468979398250640946353198543441593315570105564540776300334887145134320336530529698028702809616916894727197481091851164444111522505220464480144182019240902007773574195576601935047393147008194711556628156251248998049407031308306684474745351346539570489113871246617525586349972302880999307065557517118167619630623490983053037484169670751446944672295439751999677707014596641153872008597214608372703959808363918196201986869734333191628460800935437262153385947628927528733917031654375900921932726070005607803527479197057822879816611268445147854157544277731844463977433766563099465355121661797186308832569787554958737419306706049972163029905019269901075108775355416129654987798567790556558586977072442348336264789321829330714309330201130919101065548857632324195767817999354659363594997639353758671716851261254687874156182581550076982729193623842260584929656321805657719341056143546838576181673796364438152587245556220224628926749012810545207613598140958710066509699662640173522024767684397007358850312619200893590520585983797251052591804902254248456514312730381080742065870046270779692804654984557206413863575095067688743896852908255115717612537191704259967696728458203806065374661512530683877404543193722805403641280443153320227768271213390314235827248452954123535997414877987582648993993316978106574385926392178005270024416005981293373341917537275104680214904130238657853787718009803616475875196563826958727932914859265178350314930103246257115713984660737855881669848330765651440166091518737107279867844911449425386693096713130733744109088793482993600419212876780588404640529339505396574242762287636259424696199892574989944645136551325554264122296503026346188245264365754057753438501582959843443207071073407870000144608266912919210475414871113171358269781670615921242724096977155695416559505217479996977743949620447295084154462438792373612183153933120408086631115054575342186593958736332539688218129390350442228166721154326263773645856303965303952751771640992252947203765169797019198491948869709165304113752476027996551725126335014277396389541091907212974210122304171843771600238445137448641808587965228807102967456704049933043526170586406874093624247891675815686151744328694110621512503544668201714080536602218701717726235078656381860839546234869368048151882470332152818427864001778355912383539817405243401502200816869760392016089166493865330849381022217615028810409683479069675036990034717264928390494805708041127459108984050126584485140088328344409176125630543506901659802791134854423516474472558854033341523198714222834260331024648207824928692965714216143625487224964061599033050926337414869360454558380645722566132915494085877710244029539447951265617096823998259014929401050734365231300090198038896442508513801200970665913586239899806463311920602781437032089119000765364035335346352555037837829137373601436631821447653923594116450863007920944462996162828147654246860318116582003328638832095202084298853619804391245308679994295756181116836298648356641533296540419981363704722379427330808872962590795071439240319736540739160280269266418854248355768870179434420776481898148573283997931179051681329964424996819122509604930657958909592110912549731131661950888486829820932301208140315804421300388569673129072675268424542559762578111526754459090243214322579642949741383670988183474033889176757403755706741037562540555277614915349960498945408681266683915683020408661673595784594696522752800356691250974131289805724770753540164591846849529879162057152069555470267607512477411782441746388013171637101971694649419538939058177215742396863814577167720324718564717784246502113833694503372740132806922581263065971392081936001957051377417912807233278111134652708535709991668628869765444213326580435958094349234778554389336527089371250458305480299301423052283586437359034055078293901851186633662021711173376013784164938646456379733339834730477326024882201624189019208233055689321498876481788443421686709758708164631221195879159442549143357208403626356925100756277225267865676047381176507611305803830211338364951574937362480194146383264437174037018802347552873300246507962466809940202930012096274178986156044190342516641291704696723636767141052399123145031515952468845575169209345191699983596430523763796206255005780695222970029839827051920281680583786989036503573622296114542734149374324053737429322902784705220918636769568374395882585230375820683011659753972174597339114069854581298592317933011750625367861225703924840004275711448619955887570400393956784476801200205664883050113998775944111793649795354974479538709713895616327179671124096929989647163707816646838037447138144186249310425723896584003090199150234831065546784249946878922016513803661609758070415885560405254685752185396612703739515361076383011645095938119587771514602150335801217942037608783731533931431075317802252580065514008066156162678318790821434177188135298674956399605077377170863430918139714033492311762989587076579277914442695314897920741695037795675832117068460450958382776922229698881113188141810401753962140939070998217084534003711646070188410058498827361134156299626159433655407419045862533918697574649681487216067770479103295603718380236328772068921718452293520588249677754357005934967243558044024838739458867557963879528885684377305509433532529551705892634773746598447610577500533247403309136132610119919362640723218606946158390395960473871164695650926711104235257260021864011088339912853369125042445684065176861600873400849897913408055478983837006018388221472227783117431203226881698854070093636304921965616754687893278459398134435390346650771494226626234519962676351874818053143163655884881954954733702181167801677524450105395910888431432703291480203918117559052487259718042552894903647527130566086361379370565838836004744997552275471843187341710067601689388453947855244318079518110890001894876073417222741132662834709925315627612410890547345210331351157851803626324775945432754404960545111853995840669553411976723995959507284320387946511962163910240864963093818096348421373420968620749049821849190626493612536358347648316525561031182933464316485085257518252918837686097485358043533337199524417442529600310778211117852071175305110745489716358992298479626220956952885678821056563740069714703577064159770868309257831269353772587146817332926388226979787199779583917831348100283042966133781501876591566166958112926690316386669196726065550878022675192765349550617135571710851690680586643217085502209420944520134082645826615116826009721932613799701563182383182211249246576856067359537160582213773684207632115587951724443593353465370535151421239405577947946971119903028232132269238554170342121151571867093545337094573572638276981727636421694325410949930626932767795237197777783469566029229789706359802745672960706039463907151409017522724075791592213949226022654208560384048802710848907458964588783048473164216256140379834400944467925195568523479334168630688538213080008139803796255196160855585142566643649751876631870426615437153613410676434175944214019961659233130831645564625943919393600693951892934254578041481278983784546071987882993757694319642039192722409128426546821533127893539445862839325412211181643426368569486832518589950011432694356648957477083741861064782973413656559462559683298321611117223668785120916728704637009802381273690029712307099660608938335551909473872090278441851996237182960411768922670187452564071797830526245708113978611342916042167669311661609867170076186210992572903028976781046637627064118281994222002938665642541373130491182800412138571718528915672653106055292566526698215887682109507400678811762355290845140378088919616684067085361267242120857769877669538300653596370823667403338944998039509277021889313469614173837748447533348033071561867689036074822391768818522085188101450205845094739869739900697468947191355143991171702355743482235514154348404761987870031398937244439350159193015734680660528775218959897693054027306684204453951312732077748063436711364775602608770126430984017529623690398483484928877623331824877664694176355834059075385278219407236708291965754313894754107577411072682392020178421662343878890612730524936510163535696543721864639428117694264510365740492155497939848203684351939526354563529554188677254933568323600047440006143545649102634223943763009906503242889032936892842893398729464391169914084926536736749417038736602778973510250541298290342483997859985189826393872525562143623066415186823499366589107387320291565166007545024781817203130397949695595200388062165242728503627217228864456747205697986136414111794997292922444186267536463704089085390387229481417165971460008144780988505320038989009227233584838367030178483058860565129529853872107862767177174948953845713983567071850384350721650047356475437583752270752109398114426407805377974622062441466351969514104322994464437665039083653556803212446131865380112475772149779978286836745378643455507941165791708606247671832557173556846059717132774940148294566622922199095839718057470008794590188311274849458935440593597072320866175902333115137597726453375995116916807348058136505318364886612553876058130714952076789256552684094297559383915905919592955842285895638670837132851545101210159384574563149665305630775077910360654758419741025347819936566034412780723001915580543752347455350684116990706901251612263301380796041491043494220146600321668542125558979756022148988222809223160833724092174185646449246742985049857127501542661485119162498880411404440495168577643648987734764218094219310876058256776494640642981213048019245727380098639107221520304031899640235785020456388788558105454406490578633089076132395700990018426599977065702707465804778540247918029913206917331371852902115162038118496515416470625769336464031065702462226488906514628267682297446212241388766858348047430563402687110195353179013068791123536885082649353760036746037320561697222720362502922345164031349364791835883296971780544142761206927064976425794857814609888466949888417447898785461453519789125721130524886444900090100853049221949858585115469951568798616038525575728003828678780045579897790103223948120490822398978463998198174397929548138609338499540465091274551463013073842874636725598302156077003865630727653271713301325401186953807554402205717105614899189473246605653430001367337374201222465263116254920674890865490519220200437242680582781221589605848263175802173376625631667368186122151514141174476431136815777594472152128133756310698141251160270202678097525841383197315582429870458765906264823020995742331150832395225316486444669881063756804933416116961713713120474278093583913634134030977212590706898760988476783727234946074159582844918677273906152623681539422903024408898187975830611332051048793989533372862843484636926079208322792381222264157788256854809590780470546982289731882213967634964609730414608237035563055995393647244760549246863002989750692694505942481413303567971290701473946235369458455289996084794140405093065405784600030951049493231317742308114444197266267159472533819673260137440869395028593108980493110810663281230149090010040250076540373856270400285092617543247271985857628417894296955062116352410003708954868920246550655179818763796933202219591399178575309287088284027705591703645747788590972008598420409670264027266473585537317891536323061583762484245139799182625135593484002917577437654146918183832555719306584759252893395835546113563409887534731583567170051087100920920993066522744080972166430354032771639178552033873703672465573267036272802307184061248546055961504587283523614357058977089987556965854220877246710753827516582745857987230581875576940804748102858193663401361588282110745037266645410950630153181183104263953898604812501372440646662248553975089458246699934575489941877205818305622161326489970879206047587433530066356371949787466388077764849236886015553860164551647365151350280157591163142845250417329120194704318367060397917200198457546112249170659671537655788886020210557437596694348017314685157158227614749831858366975870326719254470679855720990368852093907723269728992943649860579990345277625156497709085117792098701659518556250274033605381303262732580002892281235417392032221615943809654482625685334924299382672022863866468869284230187579072313667099336601386336289485372505820535067177811274018201264346025257176503473232953075956462238734789094105153873847233497645066884477857144710338134209082427733974314802324126790341136403224279571765060275129590658667939587810323206622827296630467476516739827454037783359610450305413584304771764699289285473013853575204269288316568508560419948327216966216015186842602603187183730390597420371908630691175555288042490829950409578873058753283404436855914923011839395614612543669221393181718187142794771877371629568484285743051641572555493364758794361030446831925970222085000642528225124727795371188363569184842827282119958848763661067599500138307901475823871477928167882450532452950800767703299332501104726809694032775741349195094410668264869349483124012137841174685260686674056246460189530049720189443001775611568873884584665553523206636969115503018955913047801852563260743207004851646372604168880189412053030515198919062613446227905748635368179396761302126955310741240325736464925458300355071050164320713200180305582440085968277064093543889451013793902994051926658988452005751604718211807567336652399328656089191182453912726439679866123809888863833999915582870936701510009893988706269862406217840183564199851689435094509781693253195889760533703190130815817647632876602870844563474088464734139149001084171060911096470963584122200174347979371121070174625923681156119684857423627487524548013750415017522668848368770651245092268547639148232015480562062139309763119264633776798825971998810420796226703612215108977589072910265125082192549704279909954401775912907295107555253997176520689218523469048933768590317341464195685487849388902870145420929662520074410834915317180841848660613987651895683382441247592449966194558877805830685151965039023146551193144837277573859068807033350017552661409010353492433281129560722329128230163263287545268481052110692809406445092616284529857699611453346143924854066163047900077635103795695684917384665137202057903425407581667903234925700600939013995814288706224622177409512755246019396510406743099665119790115090758530642378782983588823123800377388968939599371031491987008748208649527146676684680704506453669885772593953477288656173117725758744781566423077062539930706136305222741192609227717997361659870593843595792537911030701523642634328522776013816421851685647561232177737036264318678491376971702916909623040408971295740034205986079348595485084636572696710120310068887125265310493778024761113098928619520434112427292226071717568029096960528774443235259560647563939761640917345496035023722063453070431463522400473517758003826145173716921359681164692789944794450362807793741006386119004950483586801925839657027759976431593878528995619116088449454837244758507638192807058755148454286851700022989553485826627878685209445950965392953848632124986921624766355025700059672888891761505333414670743517349753481536195528057937880684908978172024037881797884676004772937970379571790806059816921711747631805264906089602541290794678096809303613693276605940953827342307691017074600084441029636608102263054763867363705120429066888722714202098140616537898832388954974673355628379115884468721346777968501011016808535693084482628895272457308534782078962159879427451883347020264826357768014421961814259860164358730542798578219855385280213898403956188219347266812454442687304956455939495988831725801251244617238554573007036870364977439738555558287241256755517042398081613461353938909825785767816207396798151977185484558684580092172412917213650108355047141880919148608204343897955756357476444260194890916991367683341029325376111137706391726780819422545034591157134562442520748088023819695408430679192143462939706870710102877641179103110020483975217569110711078870242713502261030335732395156320222919343328455639076516441095252919218336916498549337221524238923052223612585962157287639058207199792888287518904526243758971832942894181220969315932177251754886309078356364100726656408153764111072648709614355774931747292983400036711080312558143834465179981206662044443026736238032998224988021302747829525269210457739185495657266566064368555592742011022346824992632575047339540307450408737354771172485558879725257230230585533621894717114712171359864983690250019375396188216567699000863703018931648581687513070259465890900533607060198480615639715142231034693604874876672488239846060336446284548951961468734831844393971457708767998114402973707626652795931819266003947153237024790971846065862040957910165748012162184677260446227314927167006584486287481135061329026197410475046153943558574209103503721958396424117676036697598194120056361837431675796869022645360989135787431748213639668861652391621876898252155312704245899224029686445441199776281397890807382187777401422010012373176782992878142768905044260384491041889074089339215269112627525266245047598361035326438837373032796292089751604254540928893719392128665408093595260912462177525606829748015808151683988613148160242545167755920711776166986943312862220555532221471450023129677754963038790213308723047388322520371958223799048197368990980365827032840527563221833687516341654002351312175668814316524610105785458670236544246413825294997286016521058633177058014846148862880774715077029850850529194288382805309829359862992136115769469485453821797478439770657072331139413263216987022651798608709193482990326525725800980930504893795186203603491067746350741232945907408593253432151704010890334671408243368911436447127479957171515379124197737267798666788795735809922102333781861226229802464563952999190469542670135610265435402761365231085642281559388997189743981937064849618820274512139399745484082578593975503124111426184284792281626350539105623724423008445050649560170636771916473437145442127976991820311387663763907489105815866613784678968861105121655467958063013648238963942987715523014099859002965362631935200454872315942923761339163703454527655904935940389448765716060229963049053980667390696059342289202906496217345674181133181885937925297680626788694304472177486618702568759515863003428495860561400895737385015878038192180709555812258390848819387406500583726314788286533164278055708628386912990579055066652302067664013564921518262133200040508645091526693565955582420398349986133066065211484821451433713617393480669943266072534362536741488919794929448797089801588375507525232656510557082961378527313537351054188213834417758781592192896753388339909217858357782097855322827994658678066126611785034798750483038063841292331382618621379467955121356665756288776361709286047845772343367882974513182384213456462324114054013965302101694688920484062201839310874482724260530424405340922338226735356802783358901529498489371170412793739137582998422639367985557248278063025869335867120000149471115386159968100847769168241310786208768402925165332088686408450595066326126810971529737753531416227478252487686540648125653121846436781863545993425517949427438330375926772865032066977853732626496881929271340582244285511706365479407118487579215872146179928702414162129666326881102024671258336015042859264181308970075623547639582051998161875744518444895566407363225165300460250353509641925202615093605334219587052086798615784780471562148412050369155421970320221520740291797129820928857080097485866265580278110698844908518671254983817037951839551344276353947636232581878106667606481748331029148393043773588627397113556978445424848775864574554702873106390578409885763682679903221428505137895374017735761100883918212282979138068647418401364526294933363248631227471367070236414555637793343135411526779998114598083857876800365377474639494488474148139779279604550965143732889982466402710949469522460498326361827382149454211911621034595400055212642540429414998385394405546689330213372714230060542067751405419526377634868698525516278372867560456287337354631477391662168977424659733233623014748075593928990402673817253325790129368374657225613656624441627604395643666344801167487371680870960613116327935574446778496486592641062646287412912612972430837109008364487737089198813353307178841312878495047235854061230413329479401083389373223138531414600617653426258771268830107743121239003067313692525233038854043006770823793753662220169433011254693547469232485584402714600657794981760245363932777512085481653123666689026666620412260038450466619827156062781260416302647569929790118648499854610151975874197868594865945196409026356583978947478784877120366862416766837782743407900339865883157623314357881822688005162804425453289211222260022642065247488715781275067497863560378540887045003124510361237893588532080744304969959085936598728671272830305603386436577070548670635821174962662142264234009982345517790198269620494771872750650905091710335935160005437130990601532251732024684675318442701972651115219193820004977913706564849046903028947112170640775753564834455553818766410398851319535965289950117123689241598261802184321518206367056689104061529874890365384720268622239543494374932014846779101545842138215134644974549948971818506918406279646333304587591337635223000475382509351174829268443774749784683686178986996633418619447593581543325291819913741443880952615010308903319132149851649325020921715065860708108530108859365667536500171752340420022591875672059696289305938341240159136704427126463696664864954931212032554748352884358549210605358124649204003206798388855344039681650595339049363212124659281433544131318456852288396784334466920758388691782356954974812396445015190183687991786422175063054302225260057360106743820716386580803168452323277050339271295677452346557158113903206315655370637299936527590453546134522106255478096420557134990952438301650346895249084244659908884695008858776232768890703631118007270216779203148719041333566338868569662268460772250721920810700438911346930254857037879238395865909468029311477092421250234786634757878103001564634682911071864283441033389751812367048388076391887148913956971833757847471110385525106150026488808332481814221328993199241915941449376258560695077720486445869138482607631142632598595979157324077322620033779017597183841098896785232506814566620784510572645871986332353933895474201337372741979347734006157961892506005701295833493654713395776554825809999249145378056574811885954090603185123833329287224410726265861747437492310799107046632149670025133775770626488085331999970968987456420122370976066796193697701866813787761469285747750013456180676209286823091727584092281017340676341946317364987353165649129452353461889857717940358349061723679283486667866111734249318549493235081421611577989736978720618508977992027427392544575898526487642877363632674438026606650626912514221722961464552557051821047206394711904306468732605727571705226470818053845163754468183883575811565762081351985684154797644352475036826727235657321128226753128028681786064972360547333806039473623628317478004190846386999782096827693163228835781078655537774263621137464759457142330861493085084903447328058771657097457734314688917603358261210580526137782966683925754663080212018949570103500241931045010568096197497022627056011192028610053863724937658926344480445444756322027991000551271345055347163348390437465207920030312188047431603144561490855929361208113680067201481045254771166946226392365477479473324021179487726492415736558479438135720522804607906241213159459270137223491984697395399786314937352444488069980578043595755778940116783834016661587261325543869426943590307581574810816149008287148929709940002995725793478817256440660769347771501166671354816351524422507825858550410596778768172874766235934092424658310721619069146646108893130995029376788194194665660666035875254063031606195237150994505968195077908702576454482913880821440132490314371338596554264435520293731836447993960998562625623169607316784420967875801882205890257848865504246612462296168063285914011101022199816966611963350024692725353385725710334781793609932979134971579004513448836422152360302259733687047409665378081034795895794867915188180493990652261354002212960811639470809730159475973242806049015426096916451006031911040607851050072442101677541584371232066858764841349619357481369037215416055355437310015872956537169936084864480978006439835351480777479693733061745322400143440515119739428809720880839202813647185768773647390011069082543867722007380059752034496010280679145965805443334624530394469304960338885185049691508425082230162593569179334454345857994630408442176228423769151797228898727363894775592286319929841406227090501054798972497167599588763111538862472430575733032638627922604472329818619370596165009541870167917060981455355842130689922788546087379256652257105256738578365957150649358673519253381942589083981470453198493293541375545525879178758521432548772652956998417284729804264129458456175884268967290436920489953682783567738719427176933305556259456858159820402373266887938165037036034462033288078608432744363060607369992927841097422770510176245895664864395570933367623604764071167771372982879590733061254633238912430852590860382508854696487456388063309381098385086876247438923591555378643584944972448995606850575400049997550077405347442386416314014024209101355570920966739384771635945769732576909434101584029208419484220201208273324167634958568991887900217720102961411545044813722960050980024990523003513048661338445912843794946675765365789268655792286565296276981991683599237104239981270215283254007715088527806909877401918701606182973629076098635623817688352052636051913831215878321522206641623713343866722199405157574825228215032840957046669115753278167060319178823015188227988290088128976493824920291514665614596862220701409855238949840961017577651048452366984976569847951960873001573881558313329696695849250737546265724211561850386205386231963707147361005711049066998437234112916872908000653090133283416812888417547484278170087304851319448870475025214955058878881787682783073033045427529477246033982158878188946829353004059605842903808521703420407275795200101407451504449832325075481398754103924586759232776224291368177083407025405994118788195615782395521269495047005411041751015112059386324876196308508762028674735647763537206497476538590052607078586426120028119870243078546502929754045970630999516599651133602886706046212088886165856191236425620167531906511989941599668357640706735826713484694852035864092400042729468625449515383687828447490491329679190007533844946149985164666453938210328326152581745641793448675049180659030214413729671371676890359212055930660162110241686947228177729342582637904191949877622045722328897655536568924314978289621481867010658703101572438646297412836312743312547812248678006335315599854596073332792283857254866968254782992923366606847992340518704711887667500517804951166057589753792801158927280470678036087424108862419226784156817774560067193987055962258752852776452540943860798791921160511903277093042875633444579965359434498598423451784294891179005952792733601135321611316158565936269472404351900536955409542157237622989950213062136539611969456139553112683302845113025051207137359783172806245597334633480265502700714108389900916727499456436631642123227933444438659780088508407418473617650480682467525544677015401162069226104162190496791405404280368755347349991620794895143208317341562006189388534432380553689363561830784191762303927216731792143173212818628102439488718781324466394097108504139838637337627056025027246583583800167394986024115224505702919558648463501519257229254785917877132018215621570586930136826209851544506192571342582478319485758686955759462471065302896627768261576745978920242996874071523173817555502251799353143719101853832981384205538242359609879053845627822048740063768188231952650751004791594661440315434256483525579205492498188170134117381832640654527877607202648141127607407430329880069111663896659365344818648815892744416394348211843219157017513872742953115124045278514782366779473278913197105090080436033736192321317242542928264887738425918078380556756138569461637269818748000269714583414440063749173253322290993438832299249681328591832741978086513239233183379745705863477185864139600267983342227178718419532012631349782562756725752755863784107659984616311257490581069000121927453596058357969636668246894947341477594433439918330813735725508906109241073932736897643418766592428984111960498401014830765393685477907327004336266902652626214190345983391813456712360799903130610617935623297993685527417344356613624560317447477978634082069407186186145793669802387561574091143225824101679436262778984679180795647965758750224143299761597964810571712259686589015837905489501512513362457358188429912875219553352003055742676165941036530750049993409774926498334037693109338465980435598561381373117308184130271989195464130200431960732581846197812837386953188944167576717173337345144804594493695939898824696071086965956200015270397839783601532474431731853739681921223354078478068056433647932997227459786189917741792741499088254227873409435581087218860708193487671602532242709165082189263068523785157763070841998807876271388609546500286311936313755972479128309072808750952530150450706656216275863608368709506084781460814627457001699330356802058947181020628139251714231685607706077919165837505300023512120984287033440964003827022672431983797988454861191438452085924268152734543862951811953560046714418175700280522702868949163427944795871025499980947752830301626364466295678900922517566457165884364573169620916641063978350188434950270638043272518378508451303777535986758714073575253277960055058989880923038545027757303756701097791664630454484247619199338455492417996555748785366341644927682706297157859070108443072333846262651616994131881695106405738518853848365810164698237473446551995562995554202270548167408274241749560448898493132557025533908549970333535056304500861822408944480906581607650877864040333546458101291810682393722422569197826695265304871241625155049375888241140937918726932279543616770997908002465996436316600101990295074216242381754853859748862736367279910257622291623118849297024464092666771156539776675498351525196324058646747946254851168711239061345401590961227399790554537266792843808071261178272252380553472903596842113454848548703415348501525222095044379942046071275858753274831224135456798911373619600584565532460659739957524714538185766212309939414620260701252968684010658970926827551135970123201398316679992551263104492771113214756466721805271194521311308004286307150666036485323156522145216033260112227792380709573428446609131419707397202042200107061520947332911555349951924224287284300063758073710497966800400205954245742514875929539465716400938526093575162010972858055037326228656242707161953666312667680518724854819912960094922870969201738604481537862155960491504935328493351169000312943031465087023553164362425810991310011921042955463190662332405597464145183579794782545538137770530050021302128567714874767664760685881658937276677508397341839390308625766211717561573634961677504467066423288847476289032499226532218727960197093787456976491837637437673373414543180198039337729252674860489291475337380231515013005284062621830235786110600020408220064935120547522807851305761440454392656516724815549239036467392531195916525164786364786625857583202144892297636042918232102090868113988780845417011687501364103708275658701367538160875666010794448578311340907468011793661088255164563551464256255647193126535565813342563726948712203729574631389439408411404368942095063780817885233704551632358938532887320957893343910138913009428817890775152813917049104927413027021606827374990814963998233078413938165836698444927829379866719953106988145963844757771481937767348618963953240658603133039484725543270194427882197674052357606699620208031733856024119917683702143554104920398758174064206044138095923827472220481641580464213813890293359112662782770819469522039941207192200789274528322858036893754625735912694689866905097595359417940391552180241467379594581373511743878920245074794084075837451594209590651391367422976215231283906080901399942042663252819017953443801595037948406184959829825561725318985731115704687865906610138920975843134255891702273783491675528590694755364517548297062150120192199293955346502897739883930723947339896781908720361002891259813968378231940817660557966587441729626295106468026157693564840893203140256357395884196910918175076517129204395808763922552670897311032164340809559748023208769435393754050915087472571944323109882256411885577208392175667447727150185770808837822490436308118026552598116595246282497080333344032771983020210264999920185042243875726260368864842945291034243659553932492542807141508178950299593700964926334334158611103133122142573851755741396901008087140510503909269501505350761102181920032552667753451431937004911841491274615208697536088264971678454534975303610401119121197958925907916560687774986383754210341818580910039472211634302195553739638774483442235156043499753558987297712465470028521269982253571908558025596270609304264001858309002464789355524416440556643044832022364844315696631069090621275667290432892153010542040999461261224754810480491581685850058018602501679205432184602208613810287610224854790136338759717010401818996481701624421505397161397881955228549873527257551895293321889439786010386472151669018038198880419448586506178908850079114055598549329817555875000823257399261259724838195898301128758922689352708590191741386428696612755622651701910985273695170915392261516318542734037153224104861970033217885240289761620808567758835889435382209861923212925330730148734745888738723559839023644664252654821847776215489147698201899092014994318758153988722519829314523134757187887530337487193911631738166391779022101427646894787577264769257026204500549710013565894266084562006148867148572425777080595887881494013255659096882505760563740116289682976617902933147135327140835680762061693837448259442804355427522952689369701604522959158618108921340389752554093949604740190907468750565522064633930319245179131152457798969223431733477514443788028626358901400758549522198523122389078317779595563179680503803134066371887438169095240144804847585535753911031689436009292063663083961309346095678137101524122653053043210978848493623819359533114524656444386386785482326288702689715971097239187271289136497982936448471068053709734716787271515141674260133800431934082290075916350398838094786397931700796573499097835681807028452351432728224760489642905550536367815423446479564048870996750494560299255234553043270585343853012709290968547519826921479496491248308790438540309224038127162112363440830286813400186868868761395778274464797861159254761286171519145862950729524302521553011101545294322556476878743929646700884926772197652547753314851806870020732403851751310219815741820441722466966931818217697751968737675285214695004368955724572211158353010856505293217910970442528858731977230016674329790919604209063879450727449010362465623048586455482660618356477878870025163478487578185222543845156086550784569005776284746443519548629580602442026309337364527513548670350204908511876910276949185250233615931257220167607807769386599818836138801357625095234021184321483029547789443241384981662751910181603619442642733546111357925289555672373108929621598397776472091361400240573033897986250090579876188017428357834686020671963111544959560857795414984548951681424426484146827565132803033480109167874384518506406936114603425930146921394700899377269712305698555588808805711300727917723040878051301881925597363652776859506447932323793168760941715984587581273581027433532582958340471798279409930047221393857701576206117036229826652380792667546737966242168533005798310725314390058488157017737913502912198090702537652299724855661847727717386524672208943247128126935954518500457439150784085359128448546181391869946632964638649080366572920526951651659937359524652139794375449105379276853389315927480997383707913314400986276766634630440337725817500227187707965274105729201263983124438689109943737711399788852103481878925737876724196659638267190547628462308152931249418528825811853748534683714254660780337604474100978947732085645069689754098244938808480100601525458522144522181428861795799508612466109424662926763281350534201462518352153495751055174214095165321644949637399879340186117580997349222999193903768145133969059660184505942380362487155262168868696789324953232315452283215155241468295410671886157840610217680612792571026692923362055733431073561756726384488847258196313332594903874945579425859978157916741275238615296274552990691677753637051095064127295433679421798456171876131929300784404050047507844791595580800246912432385382460658467130410254072285196710296743688026350878155091546737319951233929149439556201927842994138957232681215883709479044979109091285450469155488456427899566532386166888587860796853114575299898423373083754864867812528797650892131982239335329389413832337662533550549630643751290647187499006376802903208460125267674466712515945498825499032145428250518972282773306735448595805572676180513058366790715993046189222294541750428587475686930485796106003042324797405637035297747502803406314407672963522320767405243868759297673316558193036781275892907067091760685065954297206078692494612729678532132644508756118856418242930794865178689030272958380407127605499115064702969573265681474895805300911789001548151128667431313705399646628317041649238702704206550071191778219737813348114078691697300951171393298668676111734575162661045572381152384961079520172771653364862353841073251117933169814726295310063436654205194438923911941268789245453641838954553412422316552549245456067629382015065687547879385588892954790927505479506688041389057767732926457251848359730538674411728621900706010901003628719100071371378779266637901274852658711781225510925444353738442085462309357675430376821716834966012959846304898071678325590416089330293402176937391963645368638000665189285881026641802862800135791297631695222016079013803328921425946905350983305114752866539302190020691031310322726359518575746333222640811836912231168081637629232527400740205384255267154499935284759671542293347708039006303377433699439906716323908748855918196949782860438467817071942027113967083340698313170263575963547384745107507231383011401733733690552890526267078176342113059581211885417245018966922638718108235543723423594884986350405819823487800233053600204218730836568434655068006090837469385604156087300767019154313830056069832840731923114996503393505267330826126644522004123745332627009966064873873157380221292133899243680415986285275899528643785754327192556637036441861290840254339295275393789274683119166781047783626269515459967162826411561660837483453388639125665827123065057385522009159137701319556008868127077652433163387379026315326945423786752318128520667186218894752556598239919814147649203831337806433989582876770615882789307455309440993894125804828978825318951319666283990239872602066020115830770764435859900524645600362069623972031703611977027008272410996844364166030627367173834559321130062868632755148820289022094946683081850510335854095618451770531967429673846337936523634528440277189432274646205615104836053731262541018761734717180082132614167757141997199117978439479518008333460456118282811330970491750760523503740735870487099326163313619492212656303073969476367837515022009569146111950685632281992029054723287386806099057317885981131133147172326019458866482274930978062978140714991437453759005097610419553180339721354941253601658910719620986800315418653751098339916024966279627979173180543409313554008349854296314528470340779396987138194364959663545664039696127053640900736986249530884157907865964512989311166801897557750593393068430311922445826836715089256379452826143953467362577621890580784580803204685124454456758443188774780149472732019282927783516507726346696135636800546915602760475686807070111817836593599810051076239283943589084783892659768792229766807888310758384408118331278457305644328119387043335365640601190474594569800331188531699633080682997143876022959705088783720574573392533505907963028581379806941447864659106925124865596733531251924412852702944440683542114608788370017002815968329306950374110554406867364619707191394889455858825085527530537321033619950450085736953919838001279546352349247108953737751094899750899439855061666620142744775398588474948562004416012005143281933412023400031686308369759979962602316953626528359159274542744940062569256799453371206711753614125882046642832460139747578083675078268041059234178114214695786375999136812871874631451984837120420617729365427121087062203853199766627801540642394914279002889527539316227749299609942568793791197992142696483723232422883568170093694180831403523830439876813138579896934777649589783887572722677371332419433941343588954086218677029517179734520436747944198393840712873059071194038675900324660152169898395832104101018844154889727016346357600344746189899963124248481874699216345315011545282936264764937542396941329682955354172287834622022420809797110112974471695185319706312351189391859407771466200033203315567050214205794770563338125530438024896844892427302512039118432937730261445899756876656629821315074424098106268668971467142116988852197514786714567936699596254358648401263681941770640718423817690182700449327996023055692753230891941243784757072409787003514284788448638702851896148966090556110574992898661729921248704640275986434781325050532388070470593272147750884852436031133352322276056161825683087869935093927613315229964730884818961157122499772250844234997229023845654984946102900800570429616215236864409593847038637576102615158609358426830410690679708170024096647245672734612684075218437020856978207642304565074752275326315877937125255654155880957485302222173424517468556846211785200742894986207850922699653308027485803668719540774069131323658127407045024672115051198591240889482412562685815010790923076595792847208400839370187217790548598269132457627170943301074859108800239802826062062070196638479620513711066977074012706571728537559389644691052529028756666994512270823165675656976420502263896176589894609904805429976339240411531716055356930469711527603009829430096691060481193798453420636440900871417577543614821604809982479695700422138647557217421859568043735833211881656027588758703073644968896204612280581778280820165529661644036798299852752855797034289254347327816768685771914029366654949513951180053137581143786501231208117007740333318166913520887278195549639727256439468218752979118136546662259614705690116034386645790486406127920072891228676232251249563438316306135481506530917155792164605962168882605571770251325039063630582073846989348615517929878065217190854086347938617170584722059870706883197892379601141344855694703881648693142863988888032293663099273934590057005052061590693197260871577991836945024647914023840216882419255399724160121860524968668257701217250056678926156751671644872232831023470155184091146713344195314555014466085946571066136002437827108042425576309727406550623972838216559463630047875146292377480664312877171484467361927810570897785482841029910586682447637019997831826102389892079248634816446776706390680806724621035541441773283161276674071650794516658922854113965739123725180172288338925609869486343240882488230176619971335835071492593157375821619679622947744988628266579630587164899851085923055950808520045528980246303951174448126981299154084937691513532056795492541925265991913804136221515865482238908754891156981955308564724658288288051477679702615547929041365811801930198484411346687150120217343952280931406714236486355087852745226505046271979255549416962010687239692429520442475071178014996748320802332764911742615669658749755746753924046685281751695388495819542709947744094416110417911945001924834901822123568806272251750863099349100864564945050542193468802687445873360441093131603037974137206342955474020647758718599237227167063844300598382427199383432166509001805738160922712245889712114868349616959622717911917394592190782171075564847033141429855765376796429426101501693711316621416940428928048474734060267459427609214225008479947431348077788996240511188661687862902623806997410702318466879066837864031338440011929579918400019409193862143841146604477799426135322974969383237019932264933566720423536486898675025144843799600854433780948112598034138187516439852769960441975437048735885003814032095694057984560013047666254257497153887953791877631889934012168087370081127713014398147332195346563929206110719956318917156875919744976944228602233858324521368173937106972784934347268979149608905020177372803882112036613840992814486585826224053843903175413642188971483577964872892883555945984231284992098077985108709098017765490803823045347179836213123168413404014611804332320585052771460636493272565485118917066965310216971310072887748289471137208484643294724029811334612372550502732320943375064987370595157562368844937736728812146387427803028038068704753714807469248485032030219008087554851612129754214975416236964536880808826509512184961985409730501266756376812104922952129001266129963317266939382485783519500124989526995516715318472638793250802966031951926729543529283040860467463013827152272449990395783226480495205658278246521847218733708250880346594684757174015289540619589817044230785809297800177996444927402882849253459592916530137446366153862449866463131049169734951255113243818468707530848278457595215298976231009127429086460394526000058582334284337017629156749309963724082266073702895685132032590956480540428504084324063348028413604278303489868126924500310917149577367047163127928953754578674526413373480961020426883740265209363184296504290446235838481784504372988445195151028791035572426727282025176624004814081850914662697430580480104036093141290822455214149704615091383908458517422325640505920014861249981270001925559392897096534135827471472542380051014824417637636822755869698212260843573855365472968179358549527309478440063674076252224893555634848811071508166405650762250365470422665294835716986010249925717879597456979542201077765838557374855009709277075962442594757659645913582060131825617481836042112837229740076851270931595709016324871777207017970350681766431647934590390125450900109680275152795555614089430662548571219195383887174478093379811354644912837527473657817813567519492983260968895398409111429192176794317975322353241021980719019061232229112449608752837308666909649733587505406048431823154442807426500950183498975826574686390304261729482831015715946504247054922290568305034206852734693032648337319553909406445517815388146988180765339104863251541514491841873018017949103925217741232549632270642793549831316753199221158557085828410398101757932020490269335857183547456286352578586449707427485263562023263584349101295326207269715515938819714567472028693659556504755235315278768185553919175525894166949888105101278173845620681641480578582047862129509217728659230727415153052617880066304064513349813271567349467567674883952563025632068832338971031720149889737073727881981036975294157807879138276837007666629899098696259857167526622151868836581788037289158055889146189080224544208965925063097995108420257939462851251483102634541350707670508650254727844322533944808000921394349388491240528182447984198674045452757877025779404813649919673713716141612454562702411322648064286332893994158928446262408011804211905827627041256691056697503581733773591065656329081576749498434498429177895725182279628867300324427079697723136974276229841010065332610200738833652073339658608726200321576622729098660016653614481796945538126292729869565767827334441080652896384109330707552209737134450777933968537726567499134043801499263997131076155376463919375533746457302248786896299305497230832453831760254455279153832792733594195133262821349007900637567806630587983909712648576362753511486679119620208069689771563307652896283005980513577224986119574811188915593559573066286865422174028217637334140203007182826139839809257347707732887711653422477801233675646595797050198458411518641489825499793026928419910892725505717692769573268980127010769768031823496398467198110962694703695813176196985098518973589001528879906152737940566606955341375123352502473971588127041753048465522970891341144132679100948245358195189548438205405068367066546373804973994871811507726314167249046430635394501388794507195951287687743986096046256947995777328140632758681932079907963859163875470957265211362180865956303059981394507700860881989297318002577868236843568444072338100955928692920100633279107370551090943794030432071068447719297211427073451494087769255327017878222264968224689210645838809319236293158522162382203307219987008521281122891400504772825627192626323377537562470295150180718728264681947899883827174338236271679742599027853405311867209845276159264589817141686424616150170363826711808646752660467222192291644711740551578299067260508658000812088330998636852144783598895051386191635133443152915045322141368958563907162732674850261115495436935061422030080697778247975455323194601381388521684206674090216048039509111301009855340161302632713211289782388769405586859446237002393023894091020558465879527865204956974591967784581114939265505152184765684572703959053889172735936214709930232920298955904082743715900886773259949683878698608575384362873078222182940090089063054970994884434107601955964882807754064716890635189759232926099894898148699796100285061465493414391214556364171380020906514500933694120678473632576063909449147719916325763297292901259928954536451154714401955039077360768565720403928531089017694443972179494322079901706891834149135848098022418686176656565085682905371665684243458303593510324107716134019712090519268598715311298046752354631464604150380800576336722114820858281156677153278478689921531213543312164307640047443194566106771982317187472224573276465338550032386742496690004899249676885456552532949442369483145622744133658384743421509404348197258857768760355930743900353847503340766648386548872449458958602793646682580108991659426659155816771302533465473806618532195809479092400895627614685673863703233179907917960409786321132537920770329819668605717554286101894621609113949942612988215075776782433804310908249256533483662994040163094447137136235940208572758417053464054280122669170005928668628739862259714233485685806364951417690290538410890858176258730752336674955063645426448804217378002194647024939431561648972596942591004709956893093241189161839215247767819088197213958558218637436328977316543793523856015714083728907974370077161846600400711711391945702553916721292373671887860026184864739176940143064145161728454713781614441043956565364726631181457486403316539753824453061831073012911557096901889520220790028890120003571657411393139977497463563410257388730791356347209646458704242750251244155647255427595592037040097536035710766418141006009646067325040885654181344882436725446946840102138102765947146679559465879984296689126212074658422878934224316040545931679917127499244296359173578078653937145195533239674016574131243675198608106451593706441864560766587828624459046009046522719932682671883252529023594051044899946876478007949030327941154670966897899145896314283286053272435302546806309476024766129368076720950395892148468936326037706911951486131300349211851623676386140286866798716103335563330241830743540151151384149090775709493284699324503584770076722232707285955205217362282853569158287635483940572275584337600068174806542208645713935677552072000099546652284653348639551503641176924082003055824939038886108620867657232094425432100168704623661831259065412157289567511200595788813980470010059433529260305528736667320276999317211515022024342438452968980708504567850784733523977090945809959099084385041002771661614530006490491346066157394876867810690632022765536596286872400039541850095648550305228464517998047311569244287020014091642202546467958221743794384980790535139218520743290315846093225234987017598495534846677233224240561004496959006940517793696889839963233843139694815824488993330683905423757837942662532469777742276083031990454088801970260393662478829327735062854886144566850870465707516538369114477020905373224560415475633621192829717423517650660902659116204679522535217639568046465709250935939537961126488230878650205490009523404024463291066193925739173080068853463694096967398851353591931719477578437599026140302152591321892360762114082534093817136459019936372612959111797368810993717977255599986889280585608080996326528733527130151488688573877541683954879445585989306388107154332475936454462129801720158107734875802981458276562665812307917500443594197441035112224730275800221715633797973699034228119164207208432102213525796076032408413552960187310830321762317563210506393578187912563073569552172899797577853045400854396792066290339344836873573846161930856735257031973013853364714668979530959762383590069813081210157830635681222237791189062714916120562533144152891560613164307143155123065507563458019318762498392575215130531422304761656868375428102629397305907647831787776079866469417129969175289262264173093248763827677543536637247089026800106965221297572621724960453638301394472371384252807759583809519258551026610867361975980019741882109245020458852476699157815998045568293894830483301586758142887153025413778901218622428066283297103089538236990463366674334184399313432372438057944151205060710083847577693525321427757554918898530843948339769116492720073426731526808242256979039965386018483004898884406674169191496794037016192588385536918133819122100038216265803772738803105743018150420728982682064424305261430139589226820284758672594205651802938207556922500430926414355302432358564299360248252037788965326730693988427922188465584378908599785346863343603216119264527029723130929518668546926360814845743117811617177267575708417610658732363801701442335206952251091823032812469186128644131981232775785650700378075712737242614639247452016838356603821055914663858407791593349997514380023987672991022843200390848199107122394826410980136233051337290203093197179908540912501569291463242547910193147973753989361019007054417616800609632100408448811934372512668590889441878512310863225649296513063415067309256469363418346847839149108715428552487880331119586720625928688454702887099963509636266948612335248336509484344164946309193154932592844786587160225175477709953056693113110933653969684936605649916876549012159774950194871133519433028832335479049194828889430935402791317162308949171166973944280620941981266207638787351877322903926713602239703184972630734596809218937842432553010357199953961397433628860961047505000714359210106012689273903491251991991559535521928383038016845277233107432171639687422668765314508921049837597462328710465839488899120569376838287306921580671273352854671625797916921920731042454770698035392855226995012389844432076055035598843878647201214206304725559695508975892672891979970588905427029785601907952114022273002763896179199423450824859408590478274252191365756538107103441609754390845570392780532242885753416250232222264506029546670499231039814839577328278361833705836361834591394398027391975066546681799064789913489846795973341663296900308153283139816196681046953713515338819400946438008871770119725328345770638657425576316092724500859326026109029026052492237541969082166575528179811807298270826827150988021409474895316842385943955146285148943339354460646966272499541282336899837644461438804733782111768121874002607751434547033609215990197148893551363286296159480290726310296871950827265140511497645445453800737178116622103496347695424828275235587732904796022254528813757663940326887078526386919787306630614507369129777713114041278348057419607633867505027932637789243679254896206649386258616516522804117813876576946977317581867006905277781607757539189373597285986030651297382603834359291985506682237207500982059005115663991666069841843197958176032253669264812490035467927586798918067506637162869984487875608289872878501354056127838593500816255191878316754796929085381045975824247829776329608254179725730860212703857033202203992319379024541398675880068361789110888998761464987584332132390767700027478224699000561554013449189449723208459954727012353480092361492635786735913818780587893713664635648275696382437812067748607821448381022390934736090333526952960383585205058545522796189332304775488279101831803357418922145059821528927532324465729119401815861420391592140143617431151462440676192480496174576170819848094352920625518347814483413107681474870209457058011244387076901914233426875240630141020958582489894663647934650921353003509693871081124460504876895521522288024030529060796648868623618017720983483169224907360191712711749641511882804619548872149291561752112988986516275689461344750406274510981576531849212552060350741906541034994981315969778688951939501786179159073293925757588680251480347335211180136059780655340809201370175316422449207846194233725213075779036496578584166132577697411455605864049782603663998946812062504332779656759526147938118984486665828545207980017671741037716035974720211530565409901209821588502977237654981327557753636060364434027409802635635922515611087849693893025287696582835487282199546677929429271943628844845077419702955533748592534627402564036167700677929912007134733379057649976082844850475715467586785281642537613428162430160855716546304571196747139044268406418390738573434277592749008651869110691892611607125767855830083508807211119218322512763215676742294527668169480919708067902098972118827141525159213421664633371762680806664743745126742455999433643116154722948616051304503345829537095971241196348039072335856848193297920178991255937801852391343382148765545455649040395787911288467728178295991100293165630528525650772923494603199461742355096536806267633881289091814656335036962399052138260606370023751660442044629970939889576178811464688274536029986055269575955224444508306611849763867733609809593654643857090992354439571729957777663405839548041956328444237613938303773055894552338137644369611918391385618090707227076583522506576963552416386711011869114791758903590090124185615273398784683733973363418351242369027760346201704504782741647909103754424374218232372720003347311912321652500401257400973598530175551221318577827405849165647848628548207393019779460127431356174407150360931217046368240479281088883138277825285762794074232428740479443541795955514677730883357867370109148169371948406148741286607076402487735957234241256911144026004556172273701097615092105223327557157127094353970526302382202744490055856581548693154171566395819136723810831857018508907566917857639356516505951910034831107078865034508365104407767228536018063631027587352705661421220793699793315289618977732668669832557112913538648722004113240792089360252314212494100705932235569517285319530566632356855437946888171192965005898500143532853885336104013112977219681016686787730851301975427561289103229862031033969848995251557370521717769323197389049426198241743247749156445618372566749519757526071171821563923057587323446819727669789681539004750566547782701444748160698164548734869023512114489554811753604340708541309970367981110474445425451243008830057223740697768329111804231752533019518924198933429727694231785879442584023366573127360518533614591410874572764188691351282407675111904082837090885898381734470853322609161323443014654942025530511637879698159208310725026636358382081271872525062284803823826034204465358625403918922560363315858918876501542634242729501944341799200324114495909330060428758232507991441672886641113731891586157864186643952534991807263430772439103260849537892428826838621723257607599602673412018157557674837097037932594561275831908386770604801478000851757993761483469557482553008697229474729833939768164736908988986758290255601923345727357665869713189955055900060561631074346846756168753382897402413005108801750710885757069810510372316711978278148849398221438727058598649761169097909798595566012672787656231995234266762901063621290907024957897919084155172887563340186152526295578490381928249929158004759233153967355977286123334440558244005549725390201386415213906755932341657979824589284503012736799916897093513196713197111109899487378248863532449061211441225661762226540105947156239878229913133544570902939691877596085564189983791021756267883342563269335629485841904002410918657641936700658914517207045314322452990595873321074208861805735240264100478195758471250083970320761688263833803022769921131776613899333118550612739528399413142416695585664034302536542325896548202013574860916595926397832597522187819184830973390812577947712182266953176636724865281164064849380363659856852252268642189843394077937772105434335508246778286450128728978892184810241637301168632515556919932157570822850050453686201930068608846856374394618235278631416701756210099462705992600841309111174091582488901001467900726992110962619481174801620249043432286883463329418817117215245867409893559641843877160289591873381133011012801757794605587990825374713388415748071691472591764233210943419765008141237463917907029911821748535528235622019217441752005038947111152782317625850655127402135216263703163469056785505946016822845543844071307198799224358812131245274951116784160622659122634579398287696244437965408225566546729469455416953217535265268596243494547049695022659328215501049343708829578561999386014022245668169806771553853888061719063142329355852434259879222240450652941354080427963216916475496317794949864435830275318999480715484347217318739393677718712451616712048665342201508756915234817621628575308401567829310389626608622728137027799191046277078014414007695471853614990885188859626768747036587377663863893755474010019542939494016437397200320427604460566197109328827293222051231425064677778457642700785463117967020434629219319383758432011985499234013820842680651569996110895763913111741370140469678647586772018170281765415670402452884464365525473758638541005531447283008375928608859866828546212762562356050015272461471331518745155605656449292767040479867135167291477595277172134393639043655083452967467950295898619346856463359785316982567704136655411307730137757738684552694782894513443823914942366267831399655110264946264854909291587534245940352806310193715709131018401445455843711045987975589484087748773646452069324394349909818020697734902723879922935412907059468085241292364564101549760462766175701444331567635004872475867914576735225241821364444236490415763267444432704056106714206215050936540703018848302731124613145551987042581466491888166131142529389259928225841621153652973686356084570999371488862812988404084122953240430797266319894445438686313238364977610347923283538922756780105435402887647278890076687559840374813174929982748118362391356053503880641253441272833837305396542208490961384746591099797578932193983825456813912646583849364086031390602828396574523322429617454402712238394548829146715761364371098634886775427857198265912809212962430012277337508686979095050495390887959275771226537094267708777563310695535013212510830292547918484723432251129640402039350389510636775963405416813617953082633836984723808744186851407655768433239595132524861554995571645671791961513981423870228341842217714222064434614944566904165889076630076209299919413138313973488338968241905240223523224190285418240173508586704324117477638454756449012042004681666495778391706752131032102381067226340023447750492143860017488924561223471590330239553863506161586813992546962684736107868085132737765841313784192806048156558114138762360443029435923070886471689283322312919815357459918629879383663243856650750201127344275271917776850404965809710297895832442997244529393207601914334317037805420463669847606538244360943646529894571069151998770129892775340640770156427885248676415431822809901813084962367991910251023665960427116684557249359696957005102487840479094839629948019172046200450842166303207232806977488247448527523811343021033954033933198090982927653202666526186420376426161631651885931659054359251832495735185396387090716503378411813527823553723427150569778266814766143095281937725951139007485272268792030320037971765164404250975232255887419188999357132448068408454314663418607464131879151034314533570983931812007191738249731116617761506863648850353311810082191437559901789547655939343911780816469183740799965072898146570058070728868475015721978283844328577717027187271869177470930871559714869274517703069729066280719133693562837894954110189768791161314968043676654461549389218873093818520079786122542906656618588418115691310794027901480869407941794237153084064715496909530338920394492041439446569406774779109540785677195724447656268303127270036324231302723318066305988910479196277431142031550423331280253935608664942483507668027622669019898060420925930818138289157681094624936563167546540810998085901496803190537742905508673722213692455715578340778891676944755352153461218917937414934236443007152119868842894267656223960415752566294783186807002219304839917584112957066967099736680775927517727345662428285173789967450128182001778144835286305890019087013879009504748993687857853720261685001896240978392675600434704223628951622474407039782689728526088577288536010962546548743859566346360932100898499870476924608938014820934601939473713067045898530307412636640699415048090261921287454491502966197458431228911321898521990084068034964810180978359172264276319620672535927600214045558223998333743665049395977295391933008397886929025629930031092639697264961153424486526426959725888825545967908708582431156112668050225532225354474743805056438697511862423822341064170237098422241277870392079511821208727242906793208550235407368077651332286292727852548532207915701336155750550924916672595188970656463708218099729702867179072836167678382646622647205865991947474749751050040714135904908516477896614051154590309795052931975349538721964678823191970552528306787491011131520389315878976141743429310278499845017921447164692682871454917827168870785239432405570589461141240484299965506003555707832419140493302186071178718824915908358255801191754876195781325012006229311206764296361260126762047770987452340419418778694725448885295124414260272935395298534784614217500829778630249725237189335602425991036634654528483954104352737818977166984647143844162987095093325966792893893051077835341688229290551233713650822126107334655472186901681465036651402778697664231642924527545447731091854604005943400437597609975656585592963634024987963707942951678878376092288965823266271255393553476561419380207763227514190433181988076314878768193344865562897069798481082041707291766366450332980078817062199738929642399454394867051500371323468350647186383376755023742091719783889379565787657163291203431320129714560658794887322358084814400213885223901742534093754956669743643243341812694931628020627597146335441218416628282995917845450986525522170108466869389041966670724201125900601254729128203104834733793498174119026889067056245983462366676842472381702689792321616712861663902220198449822803182776529140321151253676325858623540167457311440297030198917754642293238376014724931275510575658128877137313211293030964162700939061483089774353232242040118062812919112234072101487856396873855588633584983299977224425500529864053653248380910130283513009421718382375820148400485134159551393723601436200419833707493282669617568559778152150393106076771368018663269231755875537651817571571995852234930519602478436508425649871165413467518818445392707783550123271490275885480288104064220998572153298565728965892488610621086945312653458486450164337120085493042035015127370829690071887973735580099999669854588844897585037325498461860393610202843314751081331466171126003776836295495699176571460525877161988641804730951586456506555924293319197231172182449482389114612700311994227391736985098473181943106660784040743229902563270875231813125902678240276728784816880901082801063133832090549498568638561765407338670562572534695112922575522596243279172923028203261113138575482825201713943244344670001450816331713563502447098806425184437881065409795379763224149490123248517327117119842636959071898938727994137791514549811924691484957971499618890334369431559487387963620677589808182984152991747326671491908435874844664243866621565046299148403930957837557312110170021364544121862504778715498085395755439234270606482803045268218047990274372535203661341168814309555788715265964249378327149599945854997850504580212604187658993529559518509180907983915521395351552965046135698360468783841995217191378607314347354719477609344867342524701709138051186780672762741902149396962925336981240785875062351202166016044312561111409234451155803624752291665421396905950622848213447444718484883323860727819183937546784494400169569170415859661297826773036541756658969031195596852862706576202239045959434918167649800291428399727494411983629639902029606003179529465263020514166837237042412458205466653880428464345749332446517247882705204461922715852342611327558731167639614386974791876775403776376696415616887676040587025730155071102544703557058140037278574172954379132759836023789503453529428681947846062246320699766350939148306809086812600835544360701164661193810074751413282026046788729200169263392180946462085631845364713144896567572984720273522424397481480869435699522666940976608936231853449231986282723646708680341133101541460229186387435213712006869951339100912224737593949793832922853234505367182358864956510100451568308651769935542283798009173569786380322924157267940114258472680371243783907950807805769310297404261565740328368648244948555529114866109784258732113625061296063144250442361526964085480400187681136460457684967125056523451108353473697215446948111124430076187819240320363132647706480676509205576622915072053623883580160152999300115587550928027465074131599874657572365540610796586476964251439554993485639180054054495756860640742320759182054308789891097086789570033031846225201857151033051814894756286700639574285752556304406345378386920202265228769464206112804521078720512405933675730048501576416326220948358705073429493492764770595429690811914874464291874348999897820485350341675881731540846103136634510093394681848320350113644821347261326876380560017785843129077752785185987956721265603488158773432916839755790104803158300743142388251780914146777476085452873255106411939186378551169711132798751261969547912531886775187209287770598646066138937175216298631270490183489689932905572758943873474733892593395920868668834014589684438367841097242740667987683163637428180749792194648264096616186610690121666533133751626083649461793977442680312082155725201105771618419460878170362958701066310847504810617760621101044125486573932953614330428240579410588421544763174454154380565281038095309934455523635930300612072744165112632530535208690541202252603675950174670136593293261472408405890047434309665172801963903273974804650960762082135996415003871621486347058622533029494455657121744741348627995901999389678302632108211010186124935327650806354754760252431435064553614229845814925007077008829807823512175868109169891024286198585446410033678560003613862571062858473887941165551176962071635846151997270273539353423656209989193136096241188238667757602593963586542072089714436588296613236691311518755948444108723741594231901179823423363350754243877082134577217213969589215276188586899222651606102327266039159471804550254010701118515542027806158159836205045652141330451764205178625607960934925722805134771406353455903376082313503705512142784562056235886067691881573192269875690940390127355270068814438671391846056764928486610475793871899353197606672102250409154072784604237674809026762076830620881966911921521018192053977363726946699620302563772523195943939556172099634408767406347097489821347973587126958691314498863953443362856835200321195727853775380051531603888080753710862949701302698882334506695976379626134153438358650623057916390662995898961586608594767669731354685084926283944745035324376660670166208700374886812938827870144263230183060168010340763478399418936221766118584110546527074648707202840812076664364802133156013844428889085841518995541925377935332980363281720792251501862158006232464771001797093719060892166864262047844660679224994374869388110142195493591846144860574879501791421314239093255905338660163586813842061144394626098241981112321803352857869770654374456574503407107975046803872259059246987622674634380528378452960474955072872692316582586377638564571381668401920639458692414357725740951974051253574961372280575724010156765304030548218671918522697981328081411059985796669258340228128938375388616818248615998195998603496949792189547807543898195727489776081378106476680777525653721937330897766547418349252185129717290089209311234147854315176613609698020447904492109550045983900248312561210343641488651537560476678274619694976599998907671892398202326093823054394917708897790404582518443623609184460309094045771833356449554844226357663759399325492959867021335125914564020494364064758690570542178914741062532779492371432583162390121023600723520982366845571448453157120173308838632836792063022453242663138269306131070227342946801208497576116716214962315082532964841473142252711782781002070186079758510985775446919885380850023179580132725027087047630933973100960595563186707684365485295171161334160065078548600351354557933709237017998094741145581931544905636241464340539274955519867793913753896235765522201239119023105380649590796389793336458050715402467035459836220852229097321019105006785812768686567904069617348913425525525830594677451831877372767672759874218578786930271888905116535655556221136726069933052038143569018806566227642774388533251736219374904900905162145078540936903206536868631107670303986922180805035548520412580688441429377078374231533781737335616296708914689206742862766046993054420235635786007198417055144575673158662293810933559787719995758294664741885503391330013703389363094778440222716808536240458649992364955542151725534539232426716784128750460693680747157189877502491873264416343799239908914640352703211880392851273982536633620821596395464662616385327374229433243697009979485483985493794064038213424140289506483821819861763801502980618309775379895464064668866530305022967418385867475128909910024470645437804344571322380582069454085515956683740989298434026862149358353005831701670270795070873682155241163220442909891125456799938473158142331229733682954262560463850261669216809964248577538721551055679714641770757973430059662492705119128998146094946416648773287577313636692126014607567865708974473247862975986090053217969881398934627127838052329300229921438675454319979639725447220064037567749352598161569488228113167812040854616129705106024704616345955384097597106010580907000690775526712356490127847192974081461801103227850972215141812348545581192862595489076214117168536129532720581033660129531404299546235485142834564347392134172258850360724516238273773589622803873065958711944552341813904471810234538691980935234897923070750238643131573347531195837734736322014042588265289747057464443495920403358312492595150358472393852664296142795490057548569136720833885182263429005294490063430185090796501358745364755770594969652688535457257521852100136952461398209351046262137621092933388485539302646981972826272244487831665315350994633181688204082161260834216104425286717323666464008256117217532201281935052985453416915307489164446189134174060001445427168131223231935299359265739561667934384023042925849991272688663908481721751200603287149989723265637818260637474912191262251598994777491395702943546830374411319593988682443678040573881406599118685810902020080896405807040299805020813132957177610347102862567604123099974862431164666704001958876405572610691494520633222355213531350404479138628037991834480724856528567184485991058484122187007327515882748207552085135158948913408446964485355083128583087219095818416973232378385855498346216143632198199900088807745012029249043372863224701553449136030225418155899117365219848642173974009882135971987951024813336015961593139343136551630479392281092443326958609687350863311883306461221149145617023426831379213252268739204639824399950777936348524931799944399354184608127323000677088946386970624228165469021920253314193988416067367651859232618886543321117004042200352803378087527362086625265515781591080310721906889773566278024757776460428392105747431978620468442804622620618444135522736477690879302901552722437902870431778479682258033975748325367447977876054139780694593414234951120321685460342178065720319861970791916755797073842211116366247155986488537745500818857573862261688878279479704128969562095208151379720936437911884058762759022579468208878407841728967302220478781157750730811757787329009998177016200925339426498224314372167522480049094953872642733953151946626611223838565131792245721830390997128447267284760687577250754940807370789254110618112498720479731974435301768601953478260885311603925429903730696357400315570006436988620477273618634294933078767840187733818879648137236427511820051378147420166735613158094626040548122135321908003306429933402820240573370738657460571809063785566284335782998970916517965415980910347925306340063698998642553479704773848044431141636632447112220009721133074352161568902240002182920992021905359152463178702160283326078607872640211668369466681091416269291684166325357221400043541866061284324179656569086357062361875181802124653729534824983804312126506539047030519638642567196497926358707564300524892974511691968960847610232503780855850696611359032164305496625004841176712564519172349072583950598976309816823688075714533718731874570864225079955235475072439433809005242614381537441184203961000504341921742140034789237519065055156145670332345834453732550279423344971643917038470315653803449426379979615685286289111079850139159128629613262732397516179530103224315099187363233325249468417755176251142210416306946599696076103356135014726360067378985761377475857721949667732083840169120598935477989272362203693885345228364384962495841705703975296548309697541595064102820927812139141210476024947515742690718585481498437989463551329424614339519430700487695537731321315834320091097234256396194794849524058688814907565502951649416363203948012237110165712794724309559568732934533322095537403041199918265871152928363949850455301680331431547479040735099002655225713826710564729972065840992125420262866706973598824067786974664492442168587892774355384278249950693755499607338269613237396002343299711106324608997428043097127534327914834087984389503535578783901248394869768050424398510840597617523233240005487032820680980789137442180519915237486429140642849290729648149739487321430466814190083506125252174297048699470922955157878812828031393263724354283183058349357387144894788891664029210055298705346534963500846578844546932740522082604212040024589240286697486493121213832063801433248576337838802267835039968575054566323432840508466165788386695691540783167353154772064536631669584246117378559091493222554497486271664481766064725920093983308344199704068906350252948031009217450907495131237067082147947169373074758050113680886466129574205253961594346661000615737554616594588390154527972710878354256970186330238254665704668082146459912060600673166041792617823359265908578499148933679679525709200756387049577101219523512509831162760906874129984972960706972618892655399557874498471448183224003366340506782321357488777547781233390243345262964891657608115434584094044037543283104950166237159715709757978338463233801191473189429135216542524621588954609185453885374435462181278039462250997995926658066735664841398919736771418433201116441712344306574990570989588179267777761635588717957134918874875236973864719978829345624439103639715024903537052456124521694547294650673700155854687820400050837193921695768059327511297552300821168273187839317854587903488006091586138710230225881417387273527669120951061310915854407447587511725006380768302838473335408104088517081335571941142724080833439810134444415656975790971894372520738539242969870793919833631946993899173304134505817159717964514762931654692621079337952157428892236592659597246637698310211344236841396566637214263191404390777793095060553499136060583044729569103212135996932429717250316496564086247018371738318623182485275824657883407886317292307489068018072471319177709220556098183798972391332042464900903918914862534614976904107100061568705763855191659758666688297762971493829613960595709137110089533156090387788986163977678326368543780495586775233787173788898952918368558678081544042788522085001391045827785564311828972714025017914870554050591262124639968424225235910059544939004438233906842192791342880249347824740407181115755876715092621698833141092773795545227614967090457186686698534207460585090480004871434904145908261379235308550030369656191702911926655945858562288626067711491209638896853799797301321692170896115532184883670752906845736670467047468597971767126712165237550442931781643167048689505136908022627314341085608012029823667805722567102373186269833103750427548639922055073752127583956674351669660339928485027489193998603356018280483839347151038237255869281441968739131608973699758311978372643142976563962667618492938547561891652899660781156776879870178353396865861740718456486767614999646291676348147399754639625895705727928722016244197406381798003296876680517710335542205784220519462783537023676168968887353219262905118345385074885418510475844228056748285935455869385508349716896942840179421481107146161909352764142986438957433501002220017471604290093444727753829471206039819242758642912999478438011972573843327168452880549974561036546323365537475663149853494371822337335163259602646279053216366062784155962528038977577026455110034232545036210049625922981081576130160388461722854042975750712799142307334273855363423439809765531703623447759350112772292169364581242400322113933690473106288980593296620734593670716330029824176879732168636849236676191393110839391021770419030455444170645760996774051165584900423924507960583542598835551511631740632733031640933921813500296799136236426845040838498421526648144146977878045001080443404865583538885721352220642230117438574125226876524979068790222776816586146924588212586135385575199680132757254629702286848151486005942102560047902865604629672462556811389628379752339027543857649659263693593728505711135436551722692469238818050335302468464254771130198045147012936496865519641963132803922596420465871826843707336880470215926779259082065502896879566296223008212150454531244730225853975201199842031014188411107753326401165478794960340974006027466720300890304470658990313373435143255433622579859935608588687139382652149409509490501051666793524589823449105719886794082159833526805248293959316896172131148531918844871670362504103169353386153206784291247445633051624696021854545003053684527677920130556696426138244390873326937025229964048048904416626789653219247870143659622582584228677473887837983646658132633728848993210110924699049035227978186242364879899114086381369512377189316610985797952024159770770737317550594832178223328139404733109617411213374570032481941145996081550116285801378565050053138226766917748317323659141101924953507024627674660826402822675835694595784336301307198631151022750946473327301485944857422582332624168569299124538831898942382875637707070599777794424591394310566105432944986494257069380779914978387396565023663498840853415333207517901788486124276672563898275955338988814928523018891413219185272808583018397848498715313590764095236720989342752218060836124363995726378657587745615442246655829827747201565437011575276747870955503210737749673133761036583517424744056119264599683581824393322128905760246402009989931690053291442395350958274076608879266088157853883980514616211329392817212610938780888117790573153290388649874529126718318824789045671698620411249851802293272031392159665361208979584715389003958929691490705524119603031380323813994910235191223602980502620028890044964298400038786467175270717056376776837344112676166690639361585773316379504311567125625050398218670932378429623230846192356516908504578439172089064175462797224535511977598949799968293147970456098317321841719644389883391968535135828694890327104425690398965389113617675659598029707234410819940815529392359360381086199095536306000864673944968800424076428232614907988328738567203235752612657688913089896275730110416191421066290326191735513188152527641616817107035443785581113151178596299086045007649298637880195873398793398440903659655724556604106920448552280651105928075822796344824998906006262651616763930757133070539591957526289087935208801381529095627190791024185336458958143827337215043707052266160758051586546491410486407836440665745599746174768869128872885597668297738604522274823093376021391498807435661068595703627097465970080135542002277111714690496955948947833690494538420852441638294770434987692733758722078665938715427591629619497455679643282193983112402517524122230066897290884620621409188900095330909978756469100658861623923637646635798946860865499997368855946379731548268698980623666373696348020827609192753994782201661155869323039957398287214518680941273391081232216902044922213136560055960834267337888450509106181429814294857545049063030275134951330034818452139065923667517312837963339495440801559024234854356401259981663826655305590582744396285435128239620476883958544228179039523499620641866079652752055422610358462002565164006445749059401414392507780198869186065248775007108477069449755084811807852236221969605441031944345968617735675708094406010066645173879309826598717164086790455338750785958894714723757474690720027871815574118995614584510428914788750848880806817774209454273498246778528574080778204769855747399729707930032051627056587292614072407736643708825748430727961413629129130957242896757065825582238620397490223790244780553173751500793107372922056408994260462110423921773486098879390880666414579202832736978435201598891728530829402054472536394226603219614478578506564500878689784780897778471944356594818893445719549467682493678955162534912166494833837174173813386031696649215858503071834687878715145957556255038156025675410398247304552359101631528607407806927216733422138529524812005160442012436746687230341554449904803250674193943362119332852662916560125944728451218317147912979660425175601554280038770701896894005654123520560246658784142078227258038742723548800843015367714878121011252779458980106541169685592106910169743518319088466418655757666743360138695842876369599274984612203143991232501543668035090453391174144281618980888220752176372162400487841502568626546418810250161916765790441545305354748056197302506409729940873339164231674975273550855866287261362191315448754037042476726922117829754752642639749512335181151031871389866964620257132501077175774758362372165517466713573810711607286462451361227302934520335638151747514535345385802219430831598525729335772999590343718551141623691889958417365373056723626874681370852661963142990625841929454809052355277330806122643276718116707527558229923965583741475525282196736466828488451724519066514848827454579750385238097383990031228695027576748287303612137723228688054001923999243745880431591914105781419485753582823199726769769054330127184219434433088282089074072758710421507577764962985663523145456883246436260216361386171483943586926639396718076501405298447558878849682034991628480898340316999579180701168729937446137171462879981513851214487609057530232357186560252651686560530473098821892408657912453169655948758414753373519973654330948575527800948439498992480972225976131344418344255497469137900133617437835033525634540368204836929001081036434494977670262203592691660239662477708705988561270409319074492616484381348293462374154171232567791129203898694731643504537935415129193047117573752739480052476692476826458993121731543786885721510217568779156709358025985846632687609333796472042213344524460749664048423661400472452064085865496860467188572809575162083973454467364380706581411584372630015494598494208449038329023630475375614694769324234791645150695969405545394536117982267393460931799519588875016157767844648417668104562527281969582186710334723040585543579912851013759102056651340950931122175621195088894543696759103945250485630016839560013106264425597205490393362917382325854141437990098106737994403676374930962880423667424481355518720181008989540463108828728813236964668127601885113344800066660529966515133761117596470473449323094920363334021072880226389354198054883328724508103309776348896997652956604193530490520299261092039746912853316882824323780489834953139907859124525115056042675399630954740324886414669563055557085037554581315079071524661666072639547063055937925694656345751230503563448723752072848631815045666914779311825140429591192154734267655078604024979270322599402025399584596619738139852231945508766404735668060736146364366450577385083712165272970026708175115460469765446892489995708838558684509355666202426580913991733525353963726863730242798614711659166432549195482851541083139201100850810384790599143898441854505700516215277223842794028133440147498294452056306566483704746719800048997339903738317387341585908110638158784415452043802572021266200595390378520146985202765547932260817678723352273732810874994428209041103603763653672227831227887933792299116694398906455541223803902326286435388465683637269579779129873895428073280537542198442652514686759557429492266558894927934897050371671659612268270498729838740117327819797885102131314536523599083871250292309557590781933149348707738767070081310095546889214835762035369820106363808386621192323591383738828319257899637532328373706991492240686522793436534027056486793375914659850564945245415290203312370837335291449865224467147379448566309784084787983825098309545935163013414356323573343577797455539489142818479049873998289790757000794263389526867774485583337050584656409875748878484209877227667628693038866387961695739800557453095325886018289333955207515838143986033433387881909374845977328264068542621940066386773700441797969587728470195856883622334727513498823900266225127237192963279220090210168118302547817901240257080454647018261536951217585921480874297787640281131426355785008618505401937393831457976700994004916427202276765679267457287032140061516146365148157402229712665721147587800649435174034177611475810927100515658791576885555230972383795816028177550136282863697577766980024693561888459259861057320812245017978974058855809895257119803246655249255526529720339343610481395990264159288784038132219336865867892667685920485629419271418453341277959116163179101031554245403366542602867755705932544627747077465503840390974627161194599514165421511753650351588590947187713551641195406304293284623589394674484901295993752071313145664953052041595572761276450066344460416779533997147288226031259719041012986626556034597100792683073585517227768092226130739102622878561091193221918113941959598878614453217455348379089211069910335550860646828383767249440514910955654556081314776780932577834686286845267983959079552361274917666783558569272442617713174672525700147109108998198581052793482325854301526114472029617254296958737154941949244434331049868106278669034647519857290166584050394457585537902519805899763181563817135357796763497895484094387004594626394372473834882116098293080418555520841013456123739417792388573321535756552809709120064612760150934003571523656421598765068366252178639372481514921407197405064473991234632475086737465525275646143198168922019695038924571213282135024899841107885349294507940143179221700212635461701921337118698016978706749130958278240868062274560782277271141505469139474256552124613895248969377985734946759845113511139130071098546285442656979463897340487007156615288900108776649652079148450730389198820179550471288041457483890768819496483037651258519181115659453325510567153809272771994825818836729381456194988276466577726690999047622862050632989357330059065142225379493809860381452488587514057854610008082973506158672755207426205239767103837769392154945920893890789714358901370757464200661193614554689026511000225101278902072705912643532052022534672078215938653283863912568037561877522836184106982870936622644917206422683646360726025719511979631317369296897688179379503261923645070614834238510910992311398991591431057622965579498477050930662295500458840311867301993548131024775363222922273573878032503080032246539466345215809277579712721220634838991697307900658121403557369365145708038015902994527267510406732656843635534954837791729402673274350583477370759025215157277473112247542418597818982250984186016589783766982518421731028497243465095139045146490274107743734024314696630319631178225826520216466440068537721636011071442812261715013448343652377667837575085705611949628810505172822049265160273019550614535764876245168937910383404768133683338001005700545128632328743784349175206890706181170891036778327951067914810164012983380468185481434491316494982767076660522256199487391325618295567278717085274241250994323655969872029159515975769977529308474348461527772933602824994516085595957750578050613682549126389532277701503448993553862408528164677692807103587370479990064200870840460615909356383490780642877945566737144123863168890620722175536073637256391812558632574505050693900281954735682987298408887135806387529120665561238477857892453909741423202081804232343802474051294802690917733992816526732425189935320398698051183980152323740852370118897261016826587965517858253114146620287211267671237927587827081628701582181747845807592343302807784722854127010784480753931283311194907858392594792396233973300865744826975359012755540645633756902800249670680771992676860921166413831751486852356557732269902303695703815681770674865543597012665063933137974169124369873239812596058793899098258428761943542799353162385605904398600071816844872064521423327377440175508528882667629074658585151095676953396824916469314335564258012941826870478845994933317279391388124224613791261349869686486002274804421108848740742931854998429624439758792604475571253616381362017343496389522559846209508489210863296172679604107515198359448453700153417780734908647581314762339837191403991359911310164729691409655201811751587762908558037351684035311980213867871652861708463052068322810475387732151080338263820285099672886104929268648774720216370778067434197993793233464579841687028563112861170176014300555784079088394329810281230601420438154257488550632346162564816836930622192146092917016480302312109787708162340559062231965513734325419727601224754969088837360529278056225250502102831797366315950894761811387561454814771381513955200379954455891444017699008850411720181827354292066008682103538677625684181963512739662392480916805106288554519372366385232776880038870951911414095811416697205066133245028013454581289562153980663121319927395796347405363411526950695220964005411680129430464872952978481820456841239837266668294011151315756188579947454090975193260606030942664336850835706139478128101863789780636068182551464540991299059093071499850569909424638297866626716204436717821722051455135544806803599839093187890167306397687546818773322965836543281079206198486024946977348985023837461194781851092745505946232396610920595961479082216775676855918027508067142288634436619342720441731078131888050775780528019666239316234731258380797006504129916223233543112451758730509479639916206442584164609505073003969305526761079831287272365303569816664452787136344161363238501597196909703929839610764688043662830829202876761193212388911608913418995160134994798089277217991690664153961056639333942368342742601279210612531250077968866884923479981058059356468296488976978026624186302508842632774547282271989994260401190531295573622331415592920237430866624618926064698910831570876174993380234114161048200352643036752470574194873804754583047637357017810706402530920974459315007497741488147664818506200195554691811305632894720955391461197758521810938545690634362053661911903312808360047945324438644952882510037006485885010214742511701924082465948089951505857245301841460793728205677994015742267216707815319510987303720640251258843631103761990841920961639218924973737604759268265417698369706831534699531889047645881834045250059480170359017597187434498807631623140597203807274780273224575726585300145609528424428861930834285689185101714011048956990814408346816551292633766234246419205569259429838086863049612476828677348235204363548114371309398570130781639356012924545684775244387781641659925944744710655796835624384714543284188175412031456448153686997829645768123776991968908838827419820235672499649195850859918498432835826883604326807741718136062475147867028523366159987052320151025896255011697866674284739372343806429488870876065874754375675850261198142521256228618278500714892174753536667638266086581884743250888476023530905222890503619043940601806252234533003144886693219275254055509542096761515108299893142447055778598432896439225501845905900013535588527283567082250063393281868839915724376347418013956563693503886740600980508778366986318843848103657577272551610527861965737077489346542872027481787737194714076094679292548575610242619403152783743940310303051632632934842325845549800223127873226738248229121563756361458802200675948617973261645562212183398426590632342976631682649867030197163668877316787856497150249358326037329044994132851643358505990892687775681990470423269113458045946023850762872903707789894689794130983689873705512610049998244314845980083092187564430455399159530846447103204814030052352752210553454943164492607555308167458138237848789688186992175608023501350997015149853451791256596825034054576016404390051743183488227414260741294831088170282874828982302334136844118697434637279090872414097612798271941827738967555146505361347690552321256777431183599344457613617840654516693845649514102253315757066721874446063441093680772560841668220856615029161182585756909238992800818187561346910840205231378361813260191155848962983057203334099249278554973586111503594475271831227276016435511657081556672316620821093988870777071817655285361869457756889688389403789685433079857434282037506698476390571882795098628399652917776361910799658556302421298665179888202795934977718370489856002965584475902440011865098888426071678617353065685569057519054597663728252563550821112584892338833495739550877445169003612563647074246466843426388676269219240467427135304675781343972628060099534977189522765809681944324628922933800891710589649101343393114483587053539653472716850486483445423907434001099540667731810433925040657968552629767980774263647138496410743878302623088668098582183320988875663945033078770611656998934614111519395183012178547476554637898016956414645713454408457711218566376561400467224273965897490507139178842176377035891320649271571089296326753003872607945128454580101668890931118812394735600339604667684847551335286583920595517538609926761548305393447326890936740777079454052584018783875178574674283384727377696755093591318425510003085947686712785319957009788352190032709695135631732921016464121582011750634479392198036273332723075603189776978496934574098086459911002799725309309079757709575721791322812693106606026580699993018638244592527040524475907601413166175941100578622118858305125520029929777388319227694214241784766773234121921360144897438356873416512983536349616298484519462946649377349002765287957698098470942214513088524190627220574689052340320654670447818096880574448040893677429099040076534925977843622617427292631170663076687699095607622594994388838936881527027437764624203327518403956867620404699946677735415371119027858997683395987829905792695982211268201442896175976773273463554461311340129936263970877543965906746480183266951244751090122959440624782034742756857071409970671529398473595302912090357266260919836213802664980594928632636097960410614169188234857876032288736250957792912630255499829605234571104442756367215960370712764731756355009920605983868595374660530883828636004174236877817236407373059161466483396946557250058066421556601813100054918483624747977090465565488171644733335900679973874390337667534609732843567591374958807942693366260192083621412455508680436270499466645583439458084249601921161674078189561016902211413706836058711371738461440176687692299464726227399674842359582803762139287079026624297609352764426873888493288650202323863313289056346103441795752447269939952118979309198648726733224421398760922947329291059794053189011091259165409383175087308487145367683672166713889034976680490718378031417736913603995838874174014709018706170896042748608997464811579723102537498158223539884063313341580275830472868013000868910179915221099415109378145178394800284088811329893899782517285157649872783625737470157643029887756490986724141318933207881330312633492146012573137089564699042672508371299496961456943989694609214452472174551644880075682382525986308798514321652304510098904668700663059481258332587881538950273908177870982081178561284286373428671089430221809913512068458977767795411186964964409971283878548835667915893483282502579466471803984988901885350644770281414191523651779174091095027327159850082295623022189132819248891021974547794138605454427590684364281154867424736376587074295123212416777983140560778715039905140789641080111195232404978095929332242004149221417608204555932521526007891048326139568792795602072393780300817701799671285348573071980430914841973440482797849707963645519624409758098936624695787702714948614973009630967912296444981905030251122663749251423260547224547112337790079720519732067598481124220274764309481293445158342286722279847986763768435938019082096446070065938965625035647315650416472243315629873849018460231610467054609048579669827691279557389832823912178966711474068043884448529096052422901927946807252348955523686799732714843013148080438456244767875210313196417870644439122385351482188788015117157846690610653444280550474230600549409097907923886463722403731299432936799097735819976302954587028744405968820679034914418027789569184837248832720285736868393521482646162395022343521904234215374925915714321130004219656992560618647699835943959433968907039441583466968167078835125927384522478278707960349273804577062063633366515469246529479899431961292035888254583587683347379153305951423519342099836152981651712557224179270977512788968662946522257066637772956774751812510880377710629019055551243437926591604966228669465914843858543643377081738967223465948035268759204265524354281825466744464277399097639817675212770346040012774734879328665887276796054923209169080687524287163982922290146693870354852000230418451050564906438215922725726150945515626870781432350137471814624901509549183244773677605423436233404032619668950499835291255541812687945178509741694543413806713134644768498957230524249914565935277816862125516855776870432108708538812091510442403309215227505899253349300765020392209343334561110412103504387585153046158887713446336215021424436200724241257132802384287397044898815821223138668707150351884152804566818480246972309725476501385553449060106971063298306261982056513128743143154997273811448756662820803541190729491697997778821414126385948755949744350635504013240122662150650135760747274112885281065437412926487507642220369135264241679270667445453767621077480711135110880168994300350132890182660985604179771060662076664854176791690222180686966930974684930311033394066656369370354592482534922616587974971509268533085924007711963792059128815267820267285663596590611854740755258053536160292860288344609073073195086279141279880999061796831977562741251433143211885104906285370829701252073156170846467636447458390261205282288597959801120047908833663177121946358452099450608918951975904969183908247144995092799271366658980771001564850117871901763484675923448447173227476001362993128837100645827158573446941251274330514688111075075791073197273879607256420037246625004379058836195774049615309018681278333689816913144476583634884700126517241559628848529594409905889145908226656219878317087956104085274120017986238108626268209227912555543870212108663199570692236489728357262514039039254702457464966204023039070885039413968604132627942945506578849950629329712145238841806482886986447005311985366256432050012382369972041586614864207469368427923330156031592283142050816391332506457774462230871428586033648512530121009519902632754919222080051649469730863706690724661152938103526175461941698290272895361174183669165480963237108602720783123828063842121114140466870352880388763959443675754022338249803674814739384729488610029168178408163668107756717603884144651088942860228565484057356099325687307470627401753416797671552354876836082839932224713891595864542476790728856155304637703024857539795563359643464139826948233616215492495668320562263815043064133259994915709455921306053571641232117902461311089918942507075586647399367106692649235893743389210407703406812045245428016427542496803796672770339259667440575344373523671113848614237100625616461671005822870396288316353926959198532158427518013560293333509052941188054660731406683768949680972302350631822614900467871418207139658631093902350370934970663279754089849875726633895164296392089812623285256753569153081645348696345445313840385421884258788136162201528848262518182462054405433788153616516963890069021671907548639737884536725702398165850377498654035830762358089489038365353711739045002088937741984671681396576875835661783599131866755550398073677305217842120535343918815687824693197496038722442990232603522534352976127613202483852487121312329796957252090642344687245295322993164777432892386909231511865809017717483303956822439267258758903472893415042063836769810265288475936407963840522453959971931343047871123722401132826730496362502609550287144443655234357687849117076510381205953830963885700855153039761091907223596901031666925004663064932034391666502289064546698198029301249369813283491104381643703742503661262194371717981732962175382917733404643118996684314878475259266877386922290703560704571805193118570581849255553981806798659434453763358609272050775459989877523808091792970113397776098944689404795384447091498360593025615439248888470307857573875330928851576660559251449370036001631623518940398322695622880767420907474576758312365987860606739376137400472272470009831665266414837472291017704418326426210456784525094579393398548811123783864122765424475208596714075336297006929725961965656661407526713739910859637024497505638467719729890089539084182079240033896574454615023468865717677536185385364463816149124784553521253130215286201506279198227118825063807636193164346393024833621912015319804045787963029929849434247079575756242804165404355111280783897664941203115100336358342023234036990100568746230817745071286353259239773346756947046179969937339136841681844006465054210168009697767194932047643292721572867519635431067603237889901595028551466201877903095841006428089600100859723627693494937778227466979380545129603392065123099378971638074207744904272901494209706016073254572846147641628264972329134529544265180303617692825424531665010828729798856940817112981541577069819177066650956741227987800299067119888269680858589606651958052047599369279709449471799150431853439993960152800194703763041448225372154622071916030153231573733497703243753990832257752591779152487530025813867416341332197649334372460612712144766996923102169868625622331443607837778555304874352770184407834914335158110640879469761146483516869790376878193514795930822954795117549308796595815835429078398424918218147646840305704244856843870021335840913834154595049593611680375646910878042786666131003262003571707211771237792789353573133933335148809144133604377845555293109235225413848450795583997473529632176243845094405072437800956298962123974975936899363129822305788655195616067738417539867656735962324020194399071002950209809755038488325824733486331472327525422339515799968276120458801633776452709064377284741812442394364822981625361393648782619012901421582535220253629268233595535765153858443034559167744179915222378265055762123793307336544722469628427116188012161817584048297813155068633811248399437722744268532492037962627732273148043865805214344888688033255525214638112935374245552148293563587232621735437765509437733113856597372295844952655161162876174942887909915522732713142018779353674295418582627588950470971139597523892511787560766340803427463902202467092728844752028789004568017629202155376125474636860940035736599477470220161301083408982449068055206980806575549928200131726227425862706745870551745895138480762330704329166098201911824861716240312896882634882314703433459006227493111231105961116886658781804581563508377960533489056786674175536190198225130829495338873425847080292795803087584595062233185279199149247222987603183072297755801569981128221794472119023022311044299032347395157660677631861814941904121449047233202353189106407341340612378340986922981062290017268921156477346061412035629130473082680127862455599473475669684302731829147695000178398614185764546820194021638310735545941420208107254628521343635055883530089878923508712728339246201673115604302254141615219585598135152727689383951891247273728645479278531771299533041825621905792778195243083742546811430870675623837036474292372173741816432045976140248930052853423587720630640661301346849080000093017992396939016146636575315502159984270506773596220769031390445047579453825367055250178321508103383929976820934626995191694933336427890511465471811635227412402074550748152753044618783538093236089065542555503498987363089339390234253047627128147578583790784682946306437248418190193218077702309020888829339928181728563345518755797913078448252181971037116472460998950611899361250378516498243413939528148458344048435153438668149875625321438508460135374713308344926427985465568261139739632611262156327180708436091350314135136984220669819237929154628688311435718708708810178587962571555120519751737957946021521118001692680648790715520603615650905196549314518642951385541090053603037775073634099933314256704712794228643118412609650901474897724527944423237864982336170249780950023428012142560302085186081218046187630097221731065962200930730937978239619344092232388000774135482684050048334524784953339022885188873668893717919658714507350010887957774652920313300113990295682161714104493987521739651458766744416527982979595519676487524712552539152760621993112002232290517813910108661385249208955820578812662052722795190553553555974444896320935790502697819148466680971644301993123939120394622534481735541961689851858239517722047202843901910997167411540941771364346489240359758023470981612969270998052298597896724852243399912235651154439477804962233118686865753655863595695781898300909839966730750178801647984732125625460105870296391633485716931576352346445233944505755587526664635305311073854335930864233879465854415512752897108065973354185817839014580054793735568412643465049147352052119026102578049251588185562454231399451328161672500396456207846640732945838998169327487570975784362673902052624047949408945852693491887120054857864291008514984582127174568831034047097505819310872693090715480692799946042742726562005457938573753129688885097494902939199561658888782458015841073907840913036076269146573581671936800892499277271539823013340857141493872319442276006988545511871867981167315409709628820761794332582216121548041083159670958091330307071248654996299635843531753607898395275459591825849021990621844781326521543851557827351482446540830326955773912751802743501103947962832586725628973446790499777912425809415630949605425968616257024698037498465730407913075965771402506677845039377724614315683643173423586153395214568329184967690153288847979879811354566708078659718448699470954244352904192976778819343047796667759746368680181673838429421363484905275779947704554189914796908747428201959180777263637776340127204844404372250616547863743044632158906155354968139778970566694853478938792209656665261144351548522452538004307303170472202780213685442166238101698274247447372827763314367935661391247269714270654116735210173763321043585026746748903705091576897716597607020070576066400272808203309969299971347802933428771062118739743963825582812772331407527817209252212297122137647689305694251881358801299106077074573058080137237612185707206491855251856748911130114867611352827213674161693548034789853266858209897811731046534275498863476863865781886150882706903498702784188754629192496702359632367646129757021999196578774738017739911952843569831810478157100884473017656767382911288631806526050900133057325683980680286400921067173220301322383099962178030248403831069121826020084952110048628105673920038413424453317871758154227141083485743055041009945007186001816592161588027086598487842702225391035462253395198690679325184224247611622106954714332892117093228086690593385905289776650210470728721172818328149360453447917339348087904172199472886410457828524404526194423389015032957739824377389714989628979988002865606927801118849939677036824771649881695119771427770370578080812140173714617887429950201017531528652258737273717322254557386950593174882192121519900342261414365759890798234260116114657861199227089396162222979816015322423373781361011997821521773481935786193256279803078172109054819502167317686501708252530842827532150342065960268689257257674329528172673336797066142978575704946728853357681403974085269428276509475180873552328458063727584219005212056745990613742310521026193661011413098517835847464443888767448208255088324159348537183775700884734260204584254502150412930971657831000967678156318500337064195004095506463625756847839810635162355494794875140241702783023147806042754858819765276462330482116765492061712347075952156859516049607785187068302047553937906540268084014808546168760950561626167155008485661221735723334916643759121811769634539942546700122299849319062722495902156635855640147449058885107443644260630049799066739861026347376685364932131029333550259523542705753480694852712423333013571381558738863024068836452713877635312910939763090278253634863726021397117894401205708966564909632882376056002880969202771450216499948778641380974029213834238272082028681279397354827531644101241018009824048212948817926138040429974155465030137088802668995928181378788774010791504206399620539929267965599765102855628699350687926125536174382199027143943449442591885563946662551727958109735754365249542765922498828290474036772417483040654054796103569585893840451810688808206529770777449089742151040176859045960433002398947401672527618462076976886884200218629154844978432554574898990772084573984868058782793169223744175371325960446628917094181573137797975527542267056046517256824551224198689253027400126704571860247573490707085240660214475045803586794259466218429888383228165021793196707250457718818311009787679503431655896515091438019536331943093985718452440918178784985390110708720020036614413619183365576272508325417531677063068101380809652762105636954992469330765245454877054054774549850599022329890402589887205339520593056111166982056836080888941063544435100967402200316587070616658152501032741545804108118710579115107325266552783382789675276684192408959385390122265387146388603632932975586714424861366679608280862909594408670181151145820470617987481108540110497939367499120188955592602138592027849955385973488305795227227874570560834410701402251767404274737582599399685859652674252424024390474181269449531592952369158838071608540310038437350233347122534195745451597130367239736997450629340909981417712396645481886232977454859476079241165689969187834151249678167683234947922983687088072873443056434761578311315247516740149036570558158578412891814836616958835628997336499721782079977073112134750552483206870412349719732307182558916165874928723665056498080257854742263677906349280499704536859385428006683072442852169879055311201569826672710708561564984461588556162629215561548102661147447957532813948341120247833653015533120985838036075170502020502292127003944404304697696200479605261794420457592780462210567153455343785826929178936295303098326010922350434528691138313924538623044677928072525102058736936448370989986390360708377402462734659377679197760330819480720228731848128428991977807877919019947075524187630258631251860954388963068523840243566512444716137781168303557639209759449358644754430831280035337857416315380782390903607464743152584779987521052718564212499969136281699101974084759406976030454242696770614154355479719740522559762942728127975702848788352145667417862520278950751301069332560580329059960668420858336180290452888222539336747800102088057625278728960230657560739985571866017919659847308090199194739200501566723924466430977917089291906715648686016998318107851510292551207169335631875126712918953110588670311102422518039435108358645771293408822418121669572511612421534376289791622595419719354036063862631686595454880906062795296382424455838474298280024587141822246823770476646470094118194752170889530571444565999433679756470483003276786326598082715021580934376631084344776070104899999217192587983460025641865587645609226723101609701846343847873607748695289773079894225658043235931558865744601664585221962475174796220415621919085245799152989087309142924586044136411166319361716384615738034874258934191239519123328839295664516123324030739438421407105963299064553084045463704523556545425888441615485851575882040075389123950916306352356188809938544528725823305241745963440366800053421311112345098116282829833300100737671221300915988893217068787518237188451528413253752213214457974767873400990680042002670208179953005308229077803379681600755731705035961742619105772016288425202922623994364103768680300404313034647564765168461772487223631953879107889822666795583810602775887931868756099211481727835147900122353705044656096841640932199225872982713741293553248832884065685012358917187514962642183041592106764359109845861786484625836480661627749664369243524080770937163413288154678220356607677999021345933864508663513190896341899635259501516787775994674967392058794241275093015228007656530821807514585557129731236702897362453302738062264795801919971726610090348685454895584431716811212113936706012472878402881263032780637135619920338509618966572732329817205599965517159423978291688149028590222601023656452987647560472911435211621796998831503324159302514401649016941686999657670378014486002670870944125694308234660477741969530175920440083616691049440479080518228694008957837540833031387232363874157741992928423266830984353701800793661487277042275460285954246233390080773514973880760907833444266073966923207811932611017462394224734657974119411204187590350193053049887445084522159648619475393203072878570090995906481404450550126075818857170175180432490176064413031225119786874189272812749389780868626079471275284160723650677894091164119877403600395634489376868211631871618963717196311161491060735578907114272036644228023972218353938062973792444938984516596478760052874746742120288821816686594706956661162967628964126754558014195490834827196858471294595622035164626516529842056744966734694347714235568784218691711541150754851478144757891922501898719999574919202842907048353501629445799930447472342234180229277412474228795428054468083143628786864895136671827373589930719671872099203738366028002112835580041707202117421139008698566339126140784378946555264950603908853400062747893788178257267928001207097792846057610538582388375476950454343134219393434250469119434974895998518855313063276289318759980898489378858100160175302852049335143018397764724460102032386205266289814600045708350275568934801228853119958447218246387936196794537953724057800681447286557844836093061173707371289893463945881926569903397572531700685148102088451850545943180374495522424675335558726808302560995037672146194562053310994969805622648541133528217727408404068063106424179515459043121360208039793017430545209285773077292460058074068808422963177304072682910275521668086983824525366703081352873086928429369270781175242760842149080227870560892479966745324309210984773288170971789887886008659099450000416233025781544455504340675147219667515328771882395859689198206165470519576376769280442204888726962263266640286245572308524350031851821527043310949987766060395465721816818431488346103463828195879593529684118481017947970977121281228900722303378394849102432324491701923456134510281490077581231978656869609568651250045367803059178334298258553807619852459335326507244658020990049669862623736951304005657884378515511448039056231235645058175718526407635123633537530294486617947977194051065675698122373812226292242361179663927173683286921041389928755668956352474405684803826114293774249271437437581053748804477089595079999180132395067359816994831281738183286449946908680746554797455289132044316393684681972082764237256711914586911582011999202688387974636015596045528246775982825746649498115097752027428366975805469235893090674674355926532784572060002774195323241057791582359281188878911494852632399599175504212693892908014489811199630868604657120774047439423688592586332776326313144951561713383807516179325696085491578223170171044399315478487294280167791284800026914254171838103955788287354558151788493075610052914045361320614022163465810728160035011067618350429758303003554872115250792592248372080538102487862820609199369527652302220153438814714253854246887182368575570031043824691592287151141711849818408767872321798977066444591163352449168116854448392220011978868874577291998976257385556609014557935414143534712698902602302067701873996484658875861776031731672558469822114850588690380930966671178170213251358007132766629605984977574368656078756243310513149139554024424202643224638615001053355978362037672163374255477810846615782764184412312483609926383438128363315487070780518096938673322401639014434599604722365017314570917139962297957154494733340793923353248612248905854897248870471616143375928384111415017465911657770124892009155098392911280166310504509739402348060059872224461687863338665763283573435606821708047026695523793945939583494200016767514036899488583424302343013845701479469445899007014980231544522697940212307021940473488809547304362661738514564968102636148867344757862862430946880330163449636698542204546655049371059962036402365817822464222440305998766382728344756714075050950568365576437121117203697881152898663643217792869293867457806066673138609328648040334239008719307235708569881432932761347302368692138690431928342170747107541452338050875606443679118585107007156745786891468342587558860605894837973602187724449552540558425248900598951297166283034103660127625786006154964677023177686534143541200545373648426296407102459563116961570888350441222890218061422560482313014154290605329880794816480010755471856144138778820644479301628366326735357151793236898836022046451404258682441606488767405638461202049372365753940062808062341460934232819734041423628550121879888784161721466455043291306455774219774291699064369443527959553139199081061569555297296796699939342604190798122619674352654504832493667095165961289100413891002256626509792456425160096541615761151869450561675742798444781925686413429278065206872068290850641852412678720795317461331008889132591471831406572542576573350269924022876614237425932807953431564252225063518358817001293224122695241208835056335123580928276995041737289283304510253119765072319533151667448656907708658000352210691657432155827117472019816509911387560100602919209370665868528607265418682089390440483263750333290856061246388000798812684937957925945909851982009970816814954287897096282676523597327715597095898504246185818752312510966634070839715269195398651493591445497939017497814242938089667694825999997892372274458057027076058781882335667727096698846219207729710613755137209158326317493251081739137876554347351948717806361976863465462434672948996768583434750872781068952012300594890016166099930342291453380466362028372534503787036632640315267577476642754682962359790288890384999160410264850356379814375218066801039215326007694334490863837709194923922567248255218577971728494290751592029843111378605670737969176587184215708069578969231939182859600102029179944001666988111442342130567501793394305177365762094639751928847520201885177800554162371275219111571696836475811972611634129701161687869236151239077579594994983621364665803934125629603035279393030504860273164630127160037382843912077310515579601929847639304280583013633249069805913231468815757785064090078293697519929021711960467706033434701825351275304755126806197187977716030186257141069414375440620117348608808470245556043448207463508096660551391159742114359629430727220166507338153310591912109260403252835201917074888614370247209316132521381716291751139716020066261096676704857713502189721416838917456070706992257297137167642305382780827773078984305496339118886819415590151345336611270316680741064825293994451988612016499121349454033569751812459277643684569375649706833452209903812692418397684087400940364033788983356913464315114320126261339741263788310777161044238101657598691192796503524968994505250653455445085931677680897886098926240691128857040278185543297204574681943448860830641355892505453856810871074211443481015041007135169142997466254941855774077306683569581324603730454515206847470395243056929659071334893350401109279207208089615600675670349913725254123569777565177573822564296753542222802856667686042523735249934130347048440183529582803672180328787658872056765984562730956354310011048708349139349595651931236250825798226509046749923644571739528681188332534037669094522524533480085499335925712157221680429842990295329470382348126046101674414710794361519526798483655783499731507094325716436598870619350867547075415592806814616548478366530581430093720338122261503642378552753142153345966731339320533895221157719361183356092339956714297234926111034665104423198055190332024825209272603320958595218504999188894911900247050577738346824838611930516795307902085139804347991943174902480535113396644810316132527218529248728328265426516322911753750890046762218721766680931944038171135841796428771417870032794078961293105063970449228334377667182359667855485378671276397063190423697452025767261994174822109858516511196901023507076604094954684511318271064865852391583155315288811503001003148202001956002307502704174999428320726321962919738190054980062669355836145178852148728444098900332707713908707102699930747236827470725941268720940359427493908161816549193074039220942377043837386528157095110895411822762186320689113934954412997654144251206970328300509183418676856636550322124325235447868683469400969160670326891323050445343172124845922058875975531908354925232386106313449286123018607424839935736715183311060492916515540442902586210985420876235491408426061896479589077144692647530955513809528937028103595253048334314124313448567750463972001488719291853098348699917623112633307045813379175408634423321616265459924749129285935940535430718742465313828207289661587547666012083856678827331788979287981564285560885541480530207035431649548421383683156206542989843078269657704732376015323332549487646081741676931732491684156624776336857733001255309347202903097153057623114473632969186721658207010512852917350725296528108355654492378915537119540958404721548303293864597965110243785664655632280371142251092823185105376184681404232378209633916001129729178639693889130760742369822062367511823049279170544547519526009072958220432340740414000911944091897899823922739338014562512706186378254694737810538391387024989054955949056981268197962881796158011322336552125919825320853807498536453034093728746911957480051235917060679857278997371019356480025054075841008744228070956372179378502755619650477546736332988206868526177181566069529029268798420805983439644443869027268852752712280743230178188732649956225539936275182414833124082605633096991818762684904442996112784275441933693471288387935304211692043207791326276733629064834710352492184565706026480220029101802882859089725796481136139976901014094676273041911847595873608280954136361888924871720164131980908675035930239457586779414221342347212951315390784395789570400112178042126441568829330376804793101799649551492784874081682015793347841260861330899679958593830993545770782590411480732316187745081260077401054650045477570927780217377173285345371017940641339861049966755594110846063666324352605718717286095215111140583902978994309382391875571278765405692457832517296538971080649822074773409726634777183721383087450192565420498398273140953054023975739547977489226883720107002432796217184743112750831050551053931345792119187607304742469268335028764762145835262859610858926776106915615825458427938684238175846690240545363452698940378851546820069436336326640989505325787863701526278383344355565994270367378399998489934880980807415820189917043734686762488585947516877828055996054719732115921401511479587554862912063804156097340649494602866208582244098206912305789981853302289454291583417440277594397078883710778915558608124671221465914391417617124992732913073088327561621256418598884174784346257487689289997959595696373010698857083621146665151883335865890796584723931339037773033121392590851526478855525179953512997376435522768206766016626526824306269797974896244548469145911053215570824875067258057226397127911627046582724903084941863009603633543877337806898549575195367316129765619314567990561550332861842142912642776401749661404231179178322601556730635066321094364490775127935281002930197556605751857736010453383585996966185493975957013180953653928800967072411463911313003731547324216297299640903140074983837641042581696392239822813092161802283130839178048407016041255473814808662098488183127840943167298249872688292781066845132095240892430293647486902746659058866801894965896289768536450776707933673816025766798299650658723486243953640895885565267541677055900559005177052584518341954339508411070257520810238657072638138918062127200587202027295457720889450487794554735894544052962642189681464415926764411786721620587501434162583326260900527837631482036727937735044125597085594369243701005175383354441336428558312247155103161656967406498019417078278621682649269458889496476460203478671459448829864510396387966376382481598245201152001383490231644406598482914989037336587480538617515599556292717811461967638458489660672496752623636174794445209707701423824292196250146076411955732567707505792780756640002431920604540647439816581732888596630474813848398335975941875125874394772955381294053536303174288787028720855767827185037871146486705279784606267329173279429536629593790973099822907632256773776483340526421478404400679214893074202676165464703583145967417259529024897083730777088046989889511084705637763515802232159798035834506201859203469086282265079924789452312243950872748172945652820082869069543235436589125113342262333443125453836799592066636145990276212254274637103453972256579573430367722367639677512184890253219826392613506798632851329995142114582119258597192931989460914432901058216725601776266643482327894667928768864396554536552031035881281676430012037862875543901791750573103836335547921826295028968327256400006336678053216993490853228474475909113410198348316687028775284474055816672201461279256900730874013840683906744333056792311611276004774642950955882985015967459379970323668972501707862695395731162841461349354607410375944548778242705934450883249877031834040286567440169542161736695790297435374285883376204842547878898983959990343965995700552482696507894399569997004802715431199147404501052264962037526702956609698086339972264347181763835317425225864002437160004457791289869689568434583734375709307890801631707256869528595772114789086897151914883485121014008925978363618087936996478099338089064225421495081958961491611586196133431062811696373347684997991434758789502521205000509989120557569012605752157159605605824976634853142442559376658376485156888021042110953628140708504103882063369409071844312307380696068781204093314906454513276756926537747272558121739298293859899611365697694909360394442312721286365494187210298711104443051256636195389729998909949516617048644248014413474218281449764806527046405037586573677855562470532526854266237221839116634066349584427939828001228463270977175983036860959988626345133671384306656472812028344564102874213187000034056893168948742144693331804853590912301285419500635841706521363604791582804614070759197559120758914634749282813831875043127604418677584017415593965384078038134637703319963427456844134055604024420663516174293005672980205973889135219887752160475676305189749723950030989433923135567321391518005454984195419559729467294264577970150911790950825876213199126345995242827349482412771519874482644409496062791144091178465072180073882463091152222471263850582110418163903623379313237905989239363825173919656932282561567632363342665004228488871161301553179234659189524968513507496767528110849956462015341399797209211587522609133327887502960849044044564077029788782406489205290438077845743712484566707313529058985705549939201616944761793732381575225606077095384327907099370163111769471069063640616335263770155119949799726171522984694562096576113163451297204880801907476437809952415785264546637717429950171914129628946861055685072652021639675112758888190429054257283586650426118218143052964655079554355529439426932326522913809888896629291193351816215896584290511960304487283892392434159542418195113158887271918451575466290052683785387953184912918731143633411043478235291785198072781331760096750507638067896999652531852107321360784929308550644967042158570073636489328023171862463746173456618563340634906515818091688781124717607305949776088421887101871877282361575452532580988205260329635117743161020010877547326094902324404348809165899976298132178881458856770606895225386835696740977627665243538005131026301075854111747169733686594801866100892720076094029683228665185242454367046862509486848637928603988021122596924530733669187877034024561553383903115654596863624909630786045083670599001250504966429122160842407602131969555332805288330116966767134585686223110263390646528758922867301379031637476649798886954522040533637677506238768967099435044212840894091188851205418246510518168214678524557140781779526738735249141445444237409563381371126076330773843469184497057569731889555943225114709437351718707873149870413800579125195869371742513661377021707766984077605762307021848362459104052910972667123236562836333330890261967053104642440065572472243410821473909847168626444341987999802804255736979357164203102539234712660271474227981936883742225607703311112223528456329948844015474209380104257689552114435905526031152254721966570126167286370791268692602055519246207979744772305789393991589016166602900677543173468947082862944313605204585402964761354429658469874201446218663198830222750789736852108390977229258241621495185256424035580749591190184412662788122078236166175981240245557215487558112521484914399168150545158497341924377695747796203588341067542395978002220328157475309638786484599157040722511840748307643840019157230814118459707998961849607345211569507177410762323919224289638213290993108143898900422085863007442138599836537459331172683382995894639763969856733948208365852565963161836383895532923355933043379486643387139707588725613035913872471718801529753190325269030454716544813165234887650865849589786801588416539385094281085004293920315398232615206563292737350128643121208509162848904633555660418340021398592101269864961009976718870589079436323146169903862160551778996544916798393024183893197368037167820356828409896931923320198854992377121146658742242576690769762040512487334195250790307472090450955689645127356677338336297804344004227031068787749353653307416419535264267311499340105402769396861001912965143679982595400654166767415582890971297917398896944071403931957436294944858589207119188204400543350149569147350317720899759116894271993634491655148029054232473801220738375649696802666339844955102824728231111140162515695357764165859352348822857662224823774611953259783302850202958036571604968368542918524334389630517906402509541817562468636201269229512591186743460742528047439714518070842814729822947456552384964213137031104422659704345326906340975743245738262498881097823604676445724880824128467373162952587826905236091513326266369343205506263055895407454552490148351134853073720619342772447679983118639911507135275257814660299859324811439559506927083261111693505115204065718449085167908199923583037962803214773607177309182744032307195319349636643405159174114436506458665658858607484918024071114024265323613143653805807897174563804875794729920131472707096539946305102900695855978328376973092681151315965773306131663503081827287309850267735571491003371968627986931759675106107293500481622134986038794816686406119538598558775536515955907949876218061633980125795895587640946107132757314239803262144788702723702780828762828792973011641026186132580391917130083709781193633497875042355248599141673769649430583383797017111434915765576342529348916884960723214264684696138062668026261316765397288634260879962220182622317213183846619361502547648931778572825899836917886866058516573201570064771909608386965933121171245728417344175886637036348412588547832514668448635909001808080419584338330021935718339056225276152898413648274344664216803832671444493159720781396978116277572309424667947021429873162266265602710240551287622191328039177790961433339667399935206551620407979032450781146027828979828033506669377210609179457269167849379165113691820799655693352230362815365736086350979123618555005939502213058479543005548121347519353079534575007061691082592621962242027241215240887400758768738774187066647422232545206921689911462647714427029839793447119423975434536186555173153472387929201817831712224968132442159756003456045972890448119844486061038776459431019588184772066176918663268649607056008783171161823158535990848453379424325791322744051624236102353524037347223825469889727995645919604606978504858140383611289499188400956018588430918632637222996109706151703746905726641026572496892106317708263679216146540584137541478173021864341796600504469974945399547193416587170663908016454850821808346102589443033092497588298707652589963165617944640693249117173615597945233045706302689535030337395479097846584619334463598491893903397593397327901627773694670263966859517256795503988779521085743855511538434548038258477841709678301518048226307100204971591324113119529351322627680203624640058266686721564984219271137435860368423078075033534762797442849714294473846577171654270126605245214588546921766742997103961166884759173524887005298928982971952580635375528982369895166037137796316754094250600217790847616448834793992792568412633473695750277003237006256244134585087740827762397283702340694785061388936002869521743255627325816117795593233120361056138048565777380633426438689866102537060109999511342513770676998401458039743897802670749716022182481195962148410620341695169666255164338351807037073337219868073307152315708991882750423806167873642010197913709414089148013915822284494197469165620161260819416171275623060537715435456344570799487618067737128631294274911757305629313929238844889238673454669303423248124820302929481204695790175088404719509271236308978626355793486644530705671472297940920871881997138053017600230809913305453397522886149160787945790625091645018881655111005481746485044247263891734840172322990195988566254021543805215409912847708928074013121979962858439070402424731164224364247937008710840619905734395439130933106963626156116894117662724985827663949168553728849330035932753145267789203644167861617425746719333222364777386692363750596364062048087234940564624881073196811781383144984371249684127431249225369184732438185144382743240939330758294292695469850767304711938280255449742609238404403897929292504287891201663172819038974359206321643313155868004811974519404501640987202130372951366516933311358088732186682196202225714959969504893881224805221787927848891322279671382815948363739173244336033110939702243894922475461506128637531890828196912818098523010447196537740100123946290684781391420527783806525755224787432956167608176926885565442855234809085866342423480694756475931760781007536760664505592984390899005365901595782220275744068252388553808730745967674904070646272478569678101860555422998098056478819647852384797450952648580575181461664932117177905748811664893431147561475872627475361387111554097133783699621814189797037709864543972230440664898700191161138764648691782456975002061336085489692617217331345657774017234102803173229145188701646918421679060707032759456686767293655880459481821660415093006988334719589360315364860459560544858246381069159064421830765318260190490878161148073045438525126954499557421182436801264872178925761289314022918562849777435469886533429519211896143578985481723819734987057339904332427140199589387975966378122778826200641252532932036530962858618107646674530841173476262508518128872304935362409544782046318157596063277554631443521773870598412028289625948488330326055276346116658944869209644314789699828411519374121540354251731345896605959380879676684252820692998726240180087583045891900329010394242841099113211960703019644640469352913583879845239763649516102294937743220956659308222759029255952404474866745981553615344598258524415951024436401483952269713920904454772534975781248683916866372268662205375540990167672165591391608800802953782050281799341994950429864842680514323300085380141965155160242622722765167864194861846469844052147289191604925562689217319681151686097471399040675622751973372180266919565291932110082236810021895988453685872375232197595696923908299505465260426672714102408019256011172880680376709787659986809702563692272898946433720556513666652976287273464568804795141738148234188294288151546195703831251735792790024767302916411152673857903948671620424075426651579573001176193431989511426230281779341273361460447764111848876298365608166255048152765053139375438790411093137952662054805394151544275043749771694675293578135166987877941283259976315705702174885664808324440478550500972166449959659744834519830377290964524256011526119049900227996443569736327653957978438021624810022634340955957509957207418646665114090502343451085726749085313773198130906136334363014216774429885070954561222193124957738283165576462424249904277333088137639667553286442826371381416892691435206951027237689469123297473477892460685128290017485855783329871153633113504884844488095857506455791602791854586732674601202619182640708116671439407434959692449650233592829427757537598188217346906106505996633598856954088445523526529600335199242985865729422613123293991294976848229753101724255319896270392700442362560312422439737030057673615004746325640665871151088476011093159924064642365070044739672744282330943564490931769705582432309044761010899993960433357586610620034012266698961824084143525641931204619467361736361093362324314235705768301048168874764378608913763459189445718992480095266924087418329863868880690595052356567082949340564744935792331654889780691574471302141701808675764481631562115817238196347897023839907636466722924866873211927182029608586849375226456912541657453800419556248957292184939895223469692101310229408049726740602033237415840956901911615577487169032775328072736813223620899961914976821976987497715698479546423056145233442706078120365957460675471133500170639567341878023379990769948400979020988735471675888000143803181988790538736193484328543608473848045693413928577568575326242100816010345969834324412422976902995309114557656522992346200542879336281999718214074077099947890069022349397616187709407716201617413650146787517616535933103953230628354452002629906286000985443756083439790583509692468175015904554307963058842760585400289601159909693061131212425190245990970810270519023043868219503702720841109248118785442190930307155264402811367557241460378544780093810940307678156315999869441455214738103408771315362130785299472882013935367627366550732458874057222383795801550232254432294333046281318697903727690477642883372598083166664558700417587084588105164799309671878314973850816552399901595702250642512254632991729167636587281511511600223824360741718510979215170737297869403043497265166714561866075532056164901950309129491785217549174066364551398579735751277153970013477258041680029930225586564013094501275120095838867303875973065800850342962681523299757108634647173833816820780503096198038163611249009515694606237077671526795120657682563489326407247837662298244822115173470234812463563262208695673461753270127362140193097372699270449617996096027561595071295329267072006646546594754581217773579795464604183779285695737045142720412683320217654885275249263191366901182369822547431336024015195327989077223915199693845275632836468697490148007434766584123444125385606346587495124636458328285501488953033119623413381033357977154535827137460347897634154145539176764976877108696684938714149826528450943140850405543867984240006917925615982677054807815736135650257436839553552835349989197670499379796456593064343116487591899128521187388473808242076802002057688654384817868479960007091947830107114727005042667958271080642386637021176670126805616136391521956881620275267132240245234089615042159770139788630390596836400352425463517423907093878817070196841765702675935403047588227874965821961384438031109000683772669522083985219377742406020998615053418126501140897147365275525694676040418868792170304217713018936100558608918824485985321221113985313633073952010095535850407835782857181865725952535177373173377742526004500480275915566707011620816579045353510303266726604422855129503340090539932016946209838410941103971204247056568709965815672416264935683147443957823574638650656088989556030613979421813640686336167298292260724478886595762187138869813379029266896348282739401701710677546243516905341897757008394808774151718610234916426327835094734040708048090054548020373765908058152009268098488254613198071620202213086687150287575974182716028386950893601032260913038920526019681721836521616072523420299263864562271695738833739534443628981427168989063918276064675912279733603500759864899430891930588861074462785343912603710352423094262086547927420527999862288051774042898888991329580560181153045309249026536314674619913119808441790689854417891006802467099639361378788324744397176571962893080411111318355028508173543139434785071467639896670964538227406568091951477656232945199749694515334674107466456236178199421826762221996775026744195759276425449878341802342906900561311227163069601039421347970065758660558567942935037205571361919799745075782814054739975766594343877201574783735589073805841062287996600699323780763180572742527899297674122977005528227478040555249619789999238723169640259477581036967532275526367818756062999353315242703537986417697410852974092752492011360011192413436035052758999596922061470820592365213598879528955794476024992972007044430057038116850913711530843074230848155435485534727323370278977324703782630704986746414778627648321808187020930034457253032294309761194347280992293346663299403057166829008393695212217671838679487335982123970376765102555396111017913247532521221027529213151622588990911840218878913583294252978135714264167168622581926101528221926208851634806507553100030998139308728663872959613193399966966734594362821678539261027500946163272541857632324267300351688142947907141365610993490009334143416945488043884420609426487010908176129447213857850928594394895084210634182500444256686116890023286273229134088300059962719917882984932572313772484498736358655940986336127633334807785955829304479083023976124530924074951316814652833292068797986332861314046598659493009572596701161325046600369066314356994040170398926419991676696723580465999847857406058336121141486761291037478829786588989251999448352601809274722463907523178938717321173367364861000478277329941260769324159413219811508070489804105895750818258056278041503905266974157351285786697583856800660169286060995789804652244307934061459156360747658381888078136480980834608602604429904244464287100473110029087436548040543701934820945608001739625972023422490228171030803039404572858978730010361601487249062860570648743472360794192430385850592913203639864402778031703110693270065615288230889192241917987157117232294283845233758486056091241788022288585846899865286051090711138252060532583473022598841167129951462669681743240277883433948867606289227300381993861933617458433129711725164542238963023022890694610185897811978684188423939395947653302606679057160615618303566331001514577619224179998215616920126841553361999354134348884705337162933713093847111970396661273351593444636967285484816548746581446867073219221176003515392257060233725512134116720718005178960591152739302543032857002448655427543717587701082800980449399730095717213002131760326174876435648922717211576605963826088537137915011678477209510009013346574681972813967444629990290664514346260702197148190270028152943062869185328029677791672264110323906291859872834918561162616807141486161823830083533255400984772355242786640802740619452798464171357661019680686138083928952881709790684853972781793281607138707664161045278404045111815979425145118540262626578122518980083992020906035995318971183809505500889285987124822532810649673794134521784065045961333352178235793311462226028302959569230757883403854959030294253825718234600811192320683052325942694695516391098202941800029025015772909872042625323195592261299030522112870655254912647081167562908443755877536120793617974026411131396621978955649805950585224707128327138140094480828009873047413415082115186649717190592918914008518701169647463388732289789096734967173438707305357482941895045636328724684225223214088473426548736521311154375755019570594708197967684200065200694876998685828878369317162179401230406412911648277060874581824887946250004867328279532610359088286046209931233444516467692500122952515124697591694812115604124473218793304138254603546284335837332292026355174798632352864174299136175995278059137996376510167528216428881619577018836979095288524691632348373330632245401965664382155514996239178689771238608796578900825820300065204940266735864668175784990765641607104341906800651169994942007393801476286660509351588645722494180646977169140601226705187778681890274089680842501239118822227104790062563761228053854087839272421088828671439637524651980118299016474854085053538831926486085208497503082669580049751929856738970341022164748241165134312275710062067035181706331361972203812926190456035830545557196740541385532057940096895536599625899176599466597652626919839681640514841776489454058965899315207195726467105572590170704545111071624318429837217550707129806802306571356288220653932447702163313921322681268846973081719489660552014217936969187469786691904233796821793915037786176992199095125873092950638544985437054961710300002782483476487284100228900140719674353024330688440622471873175544914413371490220729803575781712782270047271640733242748422467001480776704080075771326675568730199735090585463703505126352638249581855245944578737872336252736335726242993960451769555947261606124330142422089826254375193438004653967025206883592104923980393650828121730813812281826030626300938997076081184663237206893552319072026064905396902599863082434823026060846767285215904592069609190961242042431453460591278236315331578549604510183173219545351422787600609389968971046338814620656726789807220352941894859398334331813444291766408029586802472219092852114082675854190387506770931915687679784709918960032529953633787095394863045103691778892796182327534953490505668011718333621165417033251861124865695846462957306117919513556123418294377580258243128392638218775183676037662553155577214887840866807400505808089604086731263342264284581410642277872609722405571441508687820761635144313392977100331809424716628671403985931054943870778398754235122082593601469608361193762573574293862398155801330717778534513266114637378139145618777509399639206868303687457407496053976275244875721465275097068520493123826562435824568339117591274242994529720633381785228104460346001748710581365631598596400280641455410630657658474879669403758149047099438578327902919604111993213845022331788459072734223523405771071673906054433100502909967629994560617342577177208517012556263369560359276168677605392898544811783688843835339837807771432623063821802627285361445321814416038902840408584499740479595803590315264848118081920625755122860192022284399935533845675996678963260240401551643476506611104107350093309014006538057088837232290593935283095748389862130018202006978149889314547325115830176249480769788547228513757919856083194949452323129264231484455078270843636467514031289393408672767318399304393014115080522417470716924011837497913382721536214074201240729058197078946913567354685013280574742436076307539993939764986117981594952289929343776372758931203801304776449412199830963995372722485013491380745721793686770147219993672186168404974987714516146459475710535776677072304315895297873354236053546476269872135735263657266385090753342179620552696743863517568349629287512905164633307010298431895839210592979612406297702971732262983536050066326061863282743869413704902569796545072068866679175412030430893375148783580297859780666334824738265491604215626234646568439770767684433710396999984154958525479883040798306401850308262312731911812507502860380941108091049707063561536996235765683418257378539642303465821363636744021647960538280733233761282838840650895009385177734417823360190802550377658737297929173889643309122539487162869058119761787342580058409065720235248406727127752491288758002790229417082441579143928076787390753643024869456162252116521307432889561210340121265321409544421721560349346432898064766552991846848184176199640669172706865648880010929783109003204448515453379701137597180233533801207977242315250104601883352605032482857754348513840979799791138429249862951798693420890585811706947169085549465998629884911165522747843735863936432031307115429994265646740379265175893733099046290207264637165362954593079143589881720011594018432455247636723250629335665486058664051110437703793153254768044845458017176432889576504392106225372314627264869837308305214182649494735685930092767208192868706045677099203572689492864069790606503086009591009786896280659890329098962915517501276590977641177199867183276751451346065107817992167182541419201042564188561176220466989907673615288577009383797416132455676683746551673041147316224430414823950263153018843664178398737573794032397248684944191968755596562430173505765324034490939537285843880826283212530468298356174699801775967366500025707723039249026697012777815604488465635189527139211983229675152942270552222783857401738767382116639431901810414525840752167528726179905586808403551397805725841913185068105843235490614610045721075764445949668022488934368316392058158615758256053691817989595418671737879470249785250853113929084217446591480382092231088775745653871767028347022327619961988342221197818147831907941523769522790835694859167186981155331543789469320163132352094346704816506357392232045225475750162909506534085942675524666790562446682150899170308713814467502232218685993897986987619231191401568128625132405838273375518129893820142291267814020904976845540318962229948779486295437409340026009214102150632595412434387865499223641167533901000399110055789342703890906097924046500970451983710032849378884266850144344770640049444625013336788180336505909271629078004747892790353118040301372074896047285306496228818782019367136462031272206202505362572941845327494882274525682315040049855706146720776380542879882835469230694422697384817541621220445618940405781092028143303756418748074351758143145194705341168348926756232625062338075277247380637036718699671473149405641333618575820143642018537939359913431498832294902449215136928522680291530843340740867551755362252203108277168961742705250098318485348013767537756248024636120193448687893224472678006010964959894285117932654647119353947021898608335869723563026169603702215573967932507676991815592079466099451177795352671946528439625530788932046973916299461426293553247935860605446081207235234218272320529509228255228461120002211407901333158316863868121970931940652054580582318198299224584934720045161610167780336088977550125161288605165606786367087962026174601811723931622486107343165788848784899436575355066948362717742276170666904826112556977801587937058914465811358090955596812485319849596933342724550622373380838413067229486984560016972459723205428873446860890968862799709382467184766206828613703157165788831925984401509972925523016962245177627649387013380482826670259665525609569707252585472406371107980688363416522133740893731147571816955012961004050970661878186117928573061900372436824566503720332708284885468269845292844018206458667713164556296764027097990124885687799657942982619704362097073539749049432524784661642779570827524015768352405796049529896100454761984660872032467373832981427017501281264499253476801924001610843659970292779364819641285047926220926026343302883311758400115677424247149947841392735124785689335920360289694512640138611854704738493619157067611293261229921071455908413946793432368797256994704919531865692448775759004631529256843923368841435441076011120504303767484018012088841217791483118578764010776751714909483761299842379734059637413284888095565142425338474600991700282230025404197760186670775085828547826716508987624452174433907300495445126493308364173021478477197849528530035065036540806333356981543124658671034254293496803629599497673855299033328224453219419791952774805925087041982972956170850698059567038899431684425304715101883015088788726027815268827647128361791238843899196153234686689647945181332449745235768654669498585959068564984101454405346502994742718006034312418551314952876349074237608958197627643581865145826323694015610031875043740306353979021148931832807611331634797685617923195875669370193005522965142699309495147659123498731106574431514093792263905407636854768943844092765169315465425677614686029811779165912962732329066895829590196688650360580505734243082655758766096472678602584551908477223854310348675226421005689337735385813231787525561458669414283807230090066875792331560007231167745268533690250459733470206472128811062508412489878882123457031114436218866750764241415968176419962345591147845824609187452149606460544458483651487836507418498148633812942381499846740620804231752016255491017876115982851249853029625084355669067635619640250571496716473151761659485654858524588556957526143246632033637018930027324944984744727211787106962757360378802411720343257668047689230476829185383322330540978258838750733428215967017321029110348093759134933265460966870915580834788921581253080277399906308480985871556103025732639090346755518634607081423374175161785515967047234688361406876396122307486552478031069259864504677901897810137412469907763264417314767711419248196638725168570037102402854537767532296936501578700975814052585994020896614729804909183550659293556414275675562655563473277892067345580745654149482871903598420816329434221306828781322840893022085323324298781030307746991840300274586678227522656388576022873936197008762120415657068658899559722360384961530628595788764845282443938633761333773430971594913661690651439392518229002623385257939808465422160945494291869674315722420126197761450789168951027381285986899940164311318285222279662339867789714438976805422725076119257766165551636043586124295556830576117761282587920432700153917717714053882002624418490782982516317632888579247800345093405433549306651516173714945289528168968825724377810876510148831583313433515549759137342958895702679992977359965002332450679706018496816570928031314065882925800339144027273634352165571308111703403406883652599309348918053629554121921105325159232458604654655381800705969243144541374708411230736489927399028072491828047708773264408533215674696610613783020019358040252694650473493239633954331553833628083283015170664018430274902572388216373746255644521513347128753191337507979944201202407824520798498925005948628167870426829790842052066110719675173707097386152412955392742289457449511140138752918590281027177782009662126524117398026329293028171853941190409870547877550446800085077114541430761813634743750139467241082276305714935827206527453671531292024065939230408091214168327183974354734995663541797689872006167822086104415745488722273341207645469938459030996160135560599532474028776279821309191771803976305750402872114795280194603682015968142035141413909683083357722971344500370238613460654350223047924300664059209752984168253701049402136570331378930698915540497541855587956447369791446272644725607888166574161971275659524520809627876181621472446428269166566944382661649389724844632943207535447505042362509060017829546528266180634265437876070983075497343936901869689970121507395365915635737503889434054376653806261656483485684106447897557100460302267861010910393780441154492157496432519534702499637392823377020107348477192819490371953711862724067581717876414605198757276424762313169667856974291508335447236525511787364079924029882691269903729929451643396290786545059861106415974786956166263255285988658492087237245321892967844768416987225365080347786002960584302746071849022454457635879809917436747932006810213188023340272862248842949401121089921657991940013198583742131850073737922267105458654417568310907191684948212331516531700617911743129735594144116841217859403060773668238203263470930770704113559687747371372625245976953883977388002533271135348792318739320047978617848986254728499890761341389448493949173987763573609002708488828463727684415432582273704661101599094331559714476315627676336093046847613635116998165308630546891043550411998517516291497163728526584209905489227917192533620013693449029708484095170957243747894253479704243086600447176145607554341983455096765594982902382207177073304133216249324076339078049503103233062620485442824005524427284604704883094871854929149846871364564341114983484612616071373691473776878579272762119628743583808562544025275211167286680942732343857067121530288129958344008683639203757150430847079413746906191339271084804113022967071305331250906879151026945930408302552036422491635382309712014093506359597881852928169299006809391473119368967263840282732665022992780972441118355754303198703201377569645109627079731472800071055431611272299925363313188834287009777942705778887709253020179090595354258313432733859439825790714485158363688714860241140802038111681760501616765561688178928249869700624090639511371126316382527874551359668649455019513608556839212820007887865588362296335242620647039954888390100262884095237667796902464620004182976771033454195414507331926595740329501435519298856405853749807312643354084198050832389905231779759213498329814954174744722185341326926860983417152185915248488006907839869758982097129048770341863413536873422365916538117461540906210516876427978869138995427084124338395634599884411424997778174951741963511444568461279013971438418523002226351981797074471327476161102162959277932728144225065450463977524910997970784996612433749928646494498578090758160802528842613221757115854304477769136203100403530300913140153132641753169300004584212120949481546766540072394825645300213238478723868631051301983263175350313956019753565439516418562122076565685207664601961648266697699674828435184035972888689115022959335121476912228741986744616858549341016143799331632629522672196546268810915793545275936670763322925009883946478840462118708728589966527491899886891739910904119538304036388904756719263026190511634927802965818885210810012775278072091544783312676550092956131776372739783304328806609649288932718585034989476715057627152255628704442953979319128095927342872898890338585539626842985881099145193871031898145476578774780752307640160282054386659712749057947720710831422134451878924836426379977820054687648807123233491946622407371358436819252481861017757022832528638844449311782416123578439414562326307094910668958389880442839296325380493221454134098793343712971845856876405021834209256980816919547992963994412909703164766632063870461135128678745689066980474681032044754050521773943659853164395666444477385467375829269164117925693387670355236403251206534816031386883725675878433896752450720454472771944665446125681835536252822420369554927542661200162106274028712041874655048477596810767809830893647168369368786141490081843675860144446648452832617184405978224842747761537946273326870143258291441837877388138818370526482235657628438420204761446238098913986165349512990565958569931723665438503771126790268460010818654995697264780698765261591804046611630306627986498113008772482770703189901650563929695191595017413292359608613251135624603592100171863503322174056271018071171818417239433246202173577533109554119950805561958661920385257310020101331489960609908474198682645114506918019226458965675728742567084607313097668715057477385944448426950915495414877332798229272797246165564961078678095837532944455252135822587436710930079828998077232930486854815762700686579193394237999646497291082768546562516294613303683853788381331755356332168072965638764238605651356936009668342739297229298526802742305452066546842536824388914106765582992117101887774040049566197296884003671196918850269189214298902579024984224845947310487442427775260153267222225141493729827301306485673847722703770741702175304781814624114097601922272297739446268457749012601355477938335817818282215467387786197960095930078431271992233165697459188944101803855295715670001649351702598733541448105013753459881611401166163705119790294162350570794035232688248348210846692390418982700968715034716053102792751557041627054312913018121328113507981243671120867175956325167664113798927183575840580397870964983313477447639062196717167276792362531842543706537118750031613588322994726040925992098476317930305043506056539262000397302912801959254017237876457733882942855111621075777349455894429383139907466076573297969979216382792294414803763161062477067368351559815214939845419326218678981149116924057824167641269315047265803161076493138384055080602833097811000308752304059418006108242677268390691395138203283667925637227290558299013011749767576238095651272872033623777484063193827327000408460385796647517241472067180145596730740461424849176163225908721568851633541738069511182839938838049169507204537064025288110913715158514673613127287173508391964678572673105394968249341326114484305039264483518025889748858096641130061648621168367626164750490746125734936054882632129908147745278391860314500360021629599673670199648937316180407347452610826683500666201731667310603852145902631399608574370294257213321354010129695411020531690827589595308755395351443969170061841728757612675467977298573752826631748656487596826312148065762365594592552148505018297452217125802080933014267842892835960903474261906412359411174915524775222719420202207488699978839217755470501874590317646760258402017111705298821467023761356714331862060891255132361890636150395172165834195744474311628255759854878986644804448144387750397110596707567012787381540202528380414917379809704967602496591150939087507610980032452256887882353982952400153271294752996929622065616667339953355487255974545317348226530447921489655720398254863004149385138190562712237885892152449755504369523332364348964363676531886372964073414949370852092764942076769008423343429033709796300752379718891768755229145730070383842985213305016400103745414733696272873429639847069696676739049589181556820764771462956397010629081855842449286792711409012994961854313243227154758999991645787795078794954958036309291081803552258921488055803296516523795634115533493889409808407208381463828941537495805171409743366927188604109549992715077097209603901288541484729956223930035805347281748415441720459126898175014141160911594635806873845431142267665176261888144394113316499506129604915677016302212964162062800423658085220767300288677534849782342275261500854766109704663413326151641263687831680487736188145681324201820810547163697851018591966926537838246794894462147672977492599979088904837965086681537982487243343518316976398653131854409613937010139815379046836631340361351125946537195286636542457308219446860677806987866319664840418483054871435777833777341708696373331036153790944492290417658557545753277537444121872617335722133044192606454017329917293240775950209220465466503017627330389958473263916130530756364065755450648622071266217774387881480691602703073406730195852979458999661701332730946209574057588062014694913197818674182116570724374636485366394587405851639402182283450493376490937029466469737700780091591770747708829750181874037405097342879271525733237874213715244894847565865667579642296867620704444725091002133434736296076755904988823388201779162920516469425498354895638233289819141136465236829648428590459246696996305335567965484885236577747990379679105668442091931639201916647411513813586782627392890047122929979188994741659599395088261248481647775308815542732112449813805341819814092128953768705610436229800202928527007032812497167395059782070915260042438064406862876128738519505673094834467436704235940240029795448672284915510411432702962121252502860651266424384443840011973224197389920379828699264737264434605006401565247988308403476095969215693253907516358836747806445255386487251340019688775986215528267287292081327415166201434635254969898745585561734002473393110661858891694055170681895504012545503156230392353923368177655334270419349118582951134547445218484714133563382385909991319866102548543475779784080706079253343737045381404726019906142225450473887412211611307291680887630962204900954902437134930524672793991585910319126925736923945258311170757858008173158169846492900682334764445603387985912021612785926252895959615783161074625571669652093816480684438547973045535406689301123792864220867149343156709331233113220446496955132314969465501957080187205893197618045629196448794052669603097391842429391989011321769287465601759255736439858547993341263757490546086049694532152451320978988823850179992931291297046442446764379231889281810163608184527024881221508970523951690027271002755788050948367499770593510245874659011054132084085707477947867021299984067321746927941933770908356023540789897760749642057357917365700834994626833195682731631142633863715482481517280835503346371654676325341036695117775763316426097789917696212632307742500827386991309562850805115698091070417294409039981106561970214319921884342018660440320351973391834899249709393754223011126598310224374905949390962759737054460332692820105127005764822016686381214301829470388450608454987812287373068990952690686945897818655629499258765067915498766237144860768805754908642910049613967198688106123424221452829845764312838195010855655280807603770970303421536446544380597278434348806372606557163007749733636763225784045657117847040532990884959398572447507579124131175906922169881696512213397539875629067172485563122415470946318712672086121637678479494240682084406279889375710322144666255610060408716717095180704201497918597911689011812547646632228604870061814830959728549775092184901238245989903225763873235360537334268748251225045467852325777201968143268843793211927238780245443376797242797883739939121836636025188973856060137351235440632845321501933516191491029388436602640920359655666447324712869783669362674745787577944814502138802450765807738474449574399801738090007958072696204681153491896452713804647007325139807301156864852953034377823711119675277451090390203613415109936387473723642680055856734846252772432297051677491759166082669149266218979276855401104049424442411484543452658914550797653758078787921901646613316434686597048847772871803017506082465390366396307117392420170119809086910878610748688242358522772929362716425228780311297841590481176717349066701082683438159677689688604479215643135258546638553441108094063866348436344164130517651597717515249649897113438223407109792559715162712272432417291991889456452360901522396538807238824303417101528533693117765557156679992347686868122204839022368096174589631561018442576384613123440567114391761197718876130053670108144548666483434581776901814708358556166071889884318543437892928671963346546461856212172816146136365202476704091887692924092412549008136782750044806732466774890580994906818984081439148184840979180996187530917982561166831202669067276278658443772105334930604722730261330033361809017647584391190840028028749727081700984910151773570199520414246524044896767851434570813100220893636845110187371170681919868870810336243620360671763933995027388972853240496285759281010658023604298296529074329812083615328439237088976701717586565666583003273277826024160260180747532093401332406073940057857317593782457847018066785267462394364620949939973311340292124666717290147008799801636380897599763074720920079068685452555636676647503717322652139766731916087634388170789304271035372334666124962901279247177716690830954463594834076466065875444362781780157472229164715865913822088245476504995180662571223719036020006919693683335272215795584110486987961166810248553215440849509903780293738697084254461188770020398551531891378281652463638517476950004853280784252610762789531266639894584759968176283817266625483789055779064177618752144982572234979302924406249197026997914294987783762823183208243579576957125489521556061264888593551133604031556845418146254039429301775751913785668613599671708627604631891758983145996033240749414268515013163570050120313697842913174027668511130218172709214324880563818440592257576602650743501002797237698045327093345830084814313447835018476140998288247122866775101370010652231472643974534455154450998077227230861613068802868931226843264450128574543438007289329092729899465586329796955440484648825109912272912619759006849800073253105124226686253116430553110912007664047104024543010230800775217209603478816936877969739191854271800512641146008030355651977171760677901777452240989963705278672465088771615420147311655350933152365112525450216953224461756112954946435802445208206529437677703766950779898905517677267050907684999244392054361518836512870248805866429510058045866803904147976135694862357733125150643388051208869301135034554538605725259722905292914694291998315071555492101980049819061912738105927730772651771625738901905165530773627617694854731722317678055316112535347973708924316276557712607687482749168272345793353057133293669398961094362340519329792236810859526559444392806777319210659624145872062087595076383716189301989893789992079675045037766103479356776423333273902348601423111135277843366217283312636201101656896973949146035583900003740511623111028527127222156473256660440427934682747377754724310925715463943257513851560866463518362580510275625148209834097182351769216681638295558977865556558930877225568006936420826340336935923150716868650169999819689146552553122755468169079205295364248294136221102683576239219033747702369306928722597188837688811332805573589905407614941802334530070768786603753863006580190071682712636643952432276814093609638374010667316320886126105414290460015140946545587475253140875794246456811276358282277965672648339991362413516490263131699644130094157917505645556846840485669864618098088195014556467704950877606878852025855775280542673958240252211405668112399358121946276742582237700421299449456436543686248370074540421091239899854248557659971697048137826404746656565809479617296539670441606917926743749825048713497336634966363899013324757392616494290350660780965811777936816871731686430565133920194353104772245198476730576857961914976444116167541623735003867993390513759733397019907801168492297858257206720622433417000054076483342183953645054403115179004243387537984132237241655976363257618402994248032751084155896962624208353066385766609133392462387744194825122390772509742688028772768788341607661275657017845941144820302064260461315965199862860408854579414244714114734943499750035209663665338683666117660361794722600283464051176808229483787342705092016530020513478266552421327980910575213221554620963239065593915668692753691446961827896512490807729241421577642259409762360444446781291203866066187588154155366977429059875445224841212892061359211950341688828158733032130824784226295680701592902251596477837512883415003246453873655624121762403387283104766635163172199571839198645867631540816792170919673200194210988097304599297516953001953831283951966119949594450296282342956923594792574032237751493346012338545618909093103308862541999132863800194218097503236979629238129321916945458404016287136532628097677484259680346923637500900298131382075044897279616648648449885747059770142022609780510058567150856952548271133962197094390611841283020428868689037179665154130776095483600957631492215164316929294514095969953129471901422926978947499224327944389605462439246627140989342196864746549926286693428466172498886103197270457778373885762558392349202086462359973223090324572164057383840831131392423163941076789305592128736107391324845760149999415282580999471327492168114784948626366731747791840944579519170276636838569533672376006291419114907681924774146412136977158707061209487947660095064498930854302153272575849496161196062851189466744459140823467911779887592206392945781604554809706670068488261772174642995008974588749961734039834427005052604976069086771402033727183064867616549654778397346911377843253881909179272002021885849766800604195144735806632655238531002877716025260700701221726905026638796424514600229913634749415601216014744899259030941806342137558895980280577207145472826026694541380712037475918107829815450726744364979516102785461816142762624687469075768593461251641774736955036901529817795287213163603360500011977173007909086305237629271828292529536811357948026383992730586132046294520567612823850015380748474141477782655296045183152124992584965960616440788951365567917543208339351338833507630436463359377849858534368302376993091713907798755880315616977911953304641861846157298206143902403586468503984628458223449015588522836893407706567729270504886755909025305745072074464892971592483881335099637340895543828429019680446048114259173775716283604804941638388110278610153428017037142258812051780514001992543806929453936593733103426812679145517892246777461559879333915251962953955309396420607990637330024364863409133661060639081377678132086862247550062557337304809692283684222934749038786138227146677042416116780575267561612034814274812177177747931366823061840041561395606954861539449478683591103251320218708136321577003420952578079067394968873852169651813004008474988387867746391144064861274919667572257575144311273482438480316656240082056831400159985879004762461688529861071963885061988380986360797629227074700128307840251115122784803190876946729625454630072013297317353215660312592794404135059951461707179081749571699460718641527213253880518642228503175997477433898057163519319579537718966595433147471329273986023202393985576016304767371403577673011841352734063478256913583109014104420740100671148649073237007867326261065749927080571498703082179617327794413962679300619902647006241500649772876662571784387512287437862945961154763077332984774114028380284421083549524746512361556187271945090026547577451033951001933363261093067722360891740161164978658033260416361466364489577428987668576475313908605215182682065901162760448071093473537242306867618804690025526813776717297459836031571345804631972818198426600122143974904179050166197320236109372451624978498562873174532408242996043197163019298865287003446490365798381001712777357469830232521144525348901667830955678684585062473009227829858638963439575375062275680527671837024532967708331005069544962046801089652516860945293456598014992026373813040897462787882931523874058286690811381752523125900682826272493002634290634241061518043529419967533246480273227443080950181015598974107171311832250331090630089340290047045682473751499577727994460995738441275808160732379909930282478120757647269163038297965139056915456326775929237162923361330594839377163888017859750715146006782060080416744273563597784485033679411445332435157535090759097683940148255696349922453433752921276587898588322721815388724273783531773174335462545980160904214428399695083236616790544833184047491371831760463944785239881672092088766892442039811308864261657806235516032986055805955183394820470565842223143465053182085549665216842381822918877246992651234681424273369044635045459038045636585832272913107978055836852240204740516193654538446263123103213348206054897747166953261451789252972278598185617695972519222737933627697610393337439223259372464669086614831805521377722631003214085809008285495255072721014496411269120442519239597396110755428921011727491505636569252911464732526865547837977807430175960337163343342064431460283048990187468467841623838788919020793147776945582154716521871602849209770517454338106524819428277727556696508131100614004512772264521834723385151246615365955764898500071306327205211235452743863951043691956771887510224876262141324421140196692980162750545666157271022321314084461422978839377422811808344866920040779450647180062764540602980393412780320488489767139815118454204325587218602524200233769273154420135361673910288157904478231542645455492008303765925068792947605292888620454232492664043485018362068669723260776089632819345714527285076433174843033601166600100075849427178157970785740840025346245442399132286945139585032759609733326490398667610266212348994936448881419268946565589333981351357169451908392333108096808169585556170066903137340855976790688256929389300728883594063038507589483553490772010032697936904344566317786467616111804628284258419669144587777806825610844419746605138521635342120504900838854907442867987408964856484727314783440082576298771994076147737581332315445932183627945238281274278936566041801688234678443400302583256702618735357083473350990184715964189684550591982812111190076508346789551216969611654323282169704377221647237217521575621855135566546359284862026778071820447827373667730461699442793245131265461116731156663829931012059155215116571353100417286252909854403487897064657220925844663380701678351206043390148020890307459382884143210320942550819413664343111535951700451947382516756745022232851608318219585042238525336530764199787513380652899390251750323028947460772576536163983164091937778500890878024529004637377726196833528958883677372026920265576788666727485278947138829883911001549427099917825539733692860321172015162881619445467790651928932409276754960834761291804168355805215322017302276770863451575056016851402202170489911820329665181653269854546228103400360571845402905482007522722348978570378669435321603519685180323986835958712037618703761610668224278811211933497609622707496537115638938031070309411762099013633525413057243424470745267407163077942020100725520281224959286282447869191135555675398933310000198368436266997600826863769164552170182459010447373480606971398515712962740851495001490028928095681721978730265360851651564193719616322466906479127830307043126137370652460245040036054915037645569659259547928816701933708083914258177411868828242941258741759076571745416261362208138186936001418988286773275571270289914121938603872207213522553951683105183125399001400304300991712521023469565306079800359946179013674881329197942735122162944167825864950926692036248253431681427566544830974429298142156300856948821491552982726209646324882486610053539281337954382432523583474903217077163492387463811203101944496209023653269176515613311133918192329124669127194867336760258029808625846741545585347875716472634987899531926267574645808902442921870296921174157200985806362329220613010614793032313615058421599862475864667885124069144287869250250697885003527856094152419649589578580262297652912618533009854521396802747138021114842756200926884840875639285635191905695826934318176201862361476512019632689420774273343294897831311047621098918785042930741760900956578752491714047317813927335473778666526107167423294430025182150613506250195368707515880099695392874133553009040774917565961562354050118874053708054849661936177016414441124230819478868955665940474900830754203904801625328476241429559427011040564232227419521971209746674734270564102680464362524851765587661746221623035080295325889239577266233733900508881304788121892375691568620780825880403619191872428116977316198962457474230285382693505073075451159224512074593917180831843370441140600122140140211262505447540439107548306428527417432994477710253012952946042614636025211074385645804083875684773292119760371286870102352704644963830768538737937191261061923396864902892243102710365871925378585886829104802663899267684702254099998281241512438368692440308781960922381320300020916588444747511401968606564309783529964281747775343360648470402863376823087847596468055823561699632232055121000164990622597458693923792182759421361707541086069872906677358287427398746144194376852988471720293420219620668119418371124099264388220801483825172051614661873261973493179164204643261804757796257631712785785744635981694601148647761679071777515666525196493465535815116895470808710942905548360081524497880399328615322162001655602928096331580968884466708306806173854998021710607054747231875353219348461563795141806300445626138919052712529749539546727046096457014679642885579959594366382891256275173070210233307374480275701533945660622524680086400285117883377970521342492226821386932293262287103803517972977266036892832695788826704324812122418052919216804378364132526378332360766319420163677998765584066717450687854482009031561187128788107090507923503331727633538997881961193757443415085100844640000027029312507266592593455869952357975795577353083677343686385449319017990325633453420397784600468390921410909935645542974579854996452664879652110086348244578962233504373479179919142807197796691055290352524598831659062028099073534213093848985798247866512002011970650963366425730823162322520306149995902812243104509596632443691977213738123545424984106704471739872200620571243547106492682646155906015186204592601864989784915209038818195740932781786211225456342077486955810463382226914229709966047552812324101637012695712922990966004169134800389501455297501949500361623791548683635932596398464612737627662177174283351805459834092350563649877449826885239779369212666974120761456289989413121702959293177363119709244427333406261923691851638275111224256229646088155948419466056468450536157517077810253986655704768256897331102320054997657730457389583156921690213522686395466919643953145407948199101673580366555303139094244698488655780117330755937862814903884593684958642140393930938425668132719815774380514521663096286492859791991712454170199939270505702779755747704858671196286338578045337648559594870264367502738637498942934418626300897546283437061996735461230147299233544284742238801927813797798637394238775112639434022657053694491000713736094378857893925412232811682534589846710136569744356423584770346125434496425352005922018124438115039972083067100910375905409506426884720731416835566405082843971495039070088359083682311235105252971171407297617199410447846465809793230441567084993094673453048136905295371902980928149584114354048485922744104059577505283775779231202244870039039495290190054933192418471871473210489221382367191248461221452109845333453518929015897048243180973653225151520148080834058307602447134937737569612911037622662201135217725416961973976262144473229335869922981845312239414537044341180115458892560874904184416862295935581627191074683179789061981543344334535770452889247207779830610642462481768256965226091699981529988448157616147923448807365048853943364430647545686399588831277353757647168455467710382574533286822095024125007099814605791590363054604021428508558841549132895183652646295604265349277104861712487334138233511502935859167731647882722610338982375479397935444803036236475277747720347362201440375265941196087566696097710028897430445831751819600575116830523918257014600850490142393359699805024815344878309103246647691195924887432596303662528947260180367845757856795143212826097679308869143676574097377990093490049714220709935019982400276084582624128723028086344684747247101808563689006582949440249927458531225510541742523743193329794336575329002190932462238737682566252155020991628585140562662474471409295309993512694748908268123623249978563569706949487553336351148753004504636228332331408640919517376959234785597854064409546210228143870441978225611539918127697377670919615898465006952295917301514119374116424944466487405922665771989933984803622682892742506817320593876769783197514140762646611383994701820321804353265891215500659046595453517903179981951544238342297973964464393315335581198772560051739361727636506594635933157061603213505689000485181855043878288912064267922201663031175811202450164797290101865110972557915582743221444055696892768542350292700715397314683998159875442007326073929049288985216346026967161563313680751394366623125504203715413662919027603377611935067175677314635249519855280404189237895829880297819640648878476082167354978278471135787880379098579598384101982690410865448783591598376929048869289650111943408308063606347935741821795732085020705497703637885535436612326095957194848826398074765738710779678396827453357800943009181722692024604316660895189466452887984227357684009701089573760229646416815400279411720830857187155054512837933182984544384593218981364570245630836033614817250941234544084065126017216379597880393418643134044156162370265261183634466448455787919856692663873956941369076338992823539471163315999158300408095589107752690355260096783166553499245963842067013938418917027328988622548826380842827913863139579615513080774515907179587786370130134189526013363030491284404894152841504316471446541627992640749277959010600654425586481166060307517807150078900766253312374598481294191362274656270211386774753893164164049215659993806309221551595438201249943941524373345543033938144523440504614024701822635038686352979864313112609790907249537986027538828162784508814107860842931401846873367060802054209742503652332243710864166172808633358863821138795567634067572383389127917809562391690477413306915106314134870095822882325573536373461273609010622929173925548826872994801515436875484430169689448107557818469406643950916834429817645360574440376621163237684103341948749034837177030497957032897643029988194778057023552756021668366677362199275848575947175531217087556058617001394493676467517209648474157450066768062257190049866974597556065325896711599223051142463009508639972796941007064959688814722938846898247345861345785761278203827927931599087627232132525166102864426689400865448822676409885791466638210624260250300280205597859741022138997839125967552885338427592358206429433761703732367254936711185806813411860170749233481913120769441811668213109237511958975568762914485625676536473016084220732088669050977449331611658352724224421972750396534808788041429237033989252959007295559668653629892878116869589628583735600743470377239953708885812977748668987474634691131973785197072493683796701604290417080379357413907214501964530579750179306980852442913895935650806386667602059783614473075707121516623280788669384787584720587976260710636739587044644629656128498724422215059691312007233868711023685241225791521206544072781815564517109665763207610176901071799108921221143813799888802309231120523318957122260517916768634231032795886528348035259647511659249751910974916975110810512743985463670900207539847801596477716501835479217366628314436516095392769451047177086143983068197133922925714365459310346694437466949272802522294054772739077249484531490576319311743250660230835001652767654960187640548676056419297163140054634061024377710884491785643899611181283739394290877160071948559853257633002350252696483596060100080881510743139624086109610036426773626484097015637801953758545758103128996693494255520482046329711205315264857754727571244278299634435573603757527013111550820255636555136266447258682365914518632463364859417194993179791634076288926660065178680422663291242706148230424239620195867399615971455212032727950922432944666390359517134506589866557183464747537934419668210332652045649339192930764993899425571714903770460123438990579110916206029671227568453410008087470344034311419155640704247105072646995264202066559208481345782299711016287023295062085857232936071790538047546270443508685855504324959640969666360601866383848202505894658392284170068046627220793734034231452531473565585841409093246148656545749199906591354939188942842330876814074246057046776894114666022853355210800551298193351588502501697356902755190140547516647851811815743733784377989695361372275175547688191709272371384068366300832228293734669869739680413744674158805026158147972462943294376541814391352860429382957574342177617159211422519771953377605110472550942945292858303892503347185450956829053384273379653168084827485567000319363003259642265541911252390919042649975681774975887241392071891295821687706195503787114430190933656089294262709636101786262470236864568232929406308636793116363052320178165655932906795930208045409150691744144597250186085523408381406976657818037790706763736777606248938773884829161790100780048043659224345604930086773479587311234692227745377490367483582366378823184033281926687664670440300695574045840856059822402490847459588912222462763645395834042693739174240707481179884815809054068506802807940353850483054073568790942633888882776301272458291742203778182682230349271363305222710352541623653907727958368896749973909207361422574210148991113366486536176291076884473156277811416209388591585065331423544674381918779466277476449255660639768674779996871748614767743771264225002284099922062808004504068472218788579351266513265005512030300190989485808242066265639955786747654027633713543423813381170349755665908932369229216478110863908623087648724705708998295570497947617205108427099545492464668396748761232148475552900679195393476524697651043942937725411016758477924854775012665650454724505119205515658526540810589457320072851052056971410884875712257412540473516225091490128194065218373204332460781250774363611274653693663725262558243524552388981898850528635065763250995276833332671334825158414922742108930432956686529671951914241256353852917088851172407418961872311489206442502152815935843161936751762301206717200180325536393827884365813344067313805602805326203741492821437376511173849037326363363227777856488574306321717118253027414354179927902008237060485699425103801376234124988285530128067819322251094555537600758069072449556723051778991128792201272559959371286453065748581447469876701993293979315267047309510105848445697029315234568811491503877648732429702530104343572929039644548565884166650288334604600030840943437960723869234513472046076947375663083612156438219765486611532930188018501084669764867547825099561910866282428457184839711287073989696625539071410005337721420482262047793819622038934809136232929440102925468759635713431430668603980925107668008013172579032600982650912388365557568327617410972063926978963410451469311282211631750986448568150170133558579905546799718789623478209920096918845589481158056313367639955221391240087623077896545974183306936804528426389465937229078435320488091902953413743469971629736402590796448523964507868852997038407497290666335628767995418385045056893975991029039916076776581118267976781286610846907815683282611164017976696643350759613554316566437498712237388168733382259172885677503668056430677039696475144276865710444287386874070829607579542588037413740619275555527958266425106437456021416280611613779844754724637110901856132793177498582174331934173795036292829027344134881194013569919214136068424422917408286494890385551434045964871475650806424712716266154003447211114019118813666399499077633100096789201004685214525692166122920855491888545396593692008566850232784639332669082618539960336029008566429572771455355515755069224729013521567744902886575529517357152833389479463439419102747594575385111811708978912862063048287810911272947852861671009620007626417032846301566381020834285252265165097766197606110814227031397183197069596546967872182423512908001964200998006216070401325615601318074347877798127167200439073790026857781041670654852852938871433407344021235069721338776771072574278814381222661057473564168466010314653815938694951149660643163395547056044254108335008133525576928771642798540464233324475520245147670052033766317892893514106126536818987966833786962111455175129224553192978378505954164744580984385764602521382166576698738328732310732508982913461500823663832498773744849334784662255778480994446282683358341403724223194529415097156367154520740464563317902729096618834075144758682546277310771070366211951699718655831318785061635737832970472331226387554533085157473945776033502762019006960745806428222282352938680575487221648867881351775608289533763002714989729562501649495929493443009022807351335736276400501875307457771600454040451970168783661400209365227286255304097630340356511679272314215034091994457577330539922232519053444581240729750805021958798811855464229872773033205803790284380599808266147562377718420731737632411847423454392211788038391557922887425420765338716832601582086379111438230680801020252495220799578170366005941516166272841575073473881585233955643963067643869700598277944347652606282978275614989459784908130534455808927031316402559616555260917984698670810656130612410877905056439204072808984738045679384054724051439757697144598605923576600703384076585747227551871818613418706136097484775610560252201978170649408731368879282978438194614911931833130286366731939397581354834960553012165437270886950946125548033853124371617996322564452259067834998340989825656858832751219104612457560437711491573113441114545664714518097436883433950701809940114516608919547961534434528770086782919924425636912287175071810575511289573392678019791702358094342577228535947207682466850061161382496982992373215543959727756321049489658528839324310487007205733646687900539748795935679242964422763195349557919491619575839206029217994972331529650391595443719584562479316151100228773191696812613065405150880264983024229225996400831176460154511747725685864496062863930933047519071771045311108865459942545967839564422362289433508065120591479334381520015737555896816635657807217854173053488018865144400962626608208400552847332320501915759801400176828460541704094007688169771035506758228641323562689264791199285435152239795300251651636936243462303435448246540925428356085424854644614630671742246128266786281748156374320682382567147867612496030148504275331574282748614973942187687323801266990582722576313841942374388561686917722915822350715179255161848520004244250403899916276728552535216807621776986830417293129626709083265375636311987622352105063028711560861707463725590171340774825591368499173518807099663394378813871980596837381597764409462900143055652641236720082011248116905755009744627218613983813600765721673379345274029246697982051646745181155316404438645342236130653931273493821438144444932445809786081502263639375017434729686646624781765140520011816185382039744134532398604441455146880815100055244263395249518317762752923656768796069588703558141634696700223459800082371877421378049652632219635664329276059604164173472033451506662515012581301160646024409736096752868650911628301238144652741844767179212855730770684008151226230234692582704550250375473798153942599103769921839870110711578240312182535675159076223093663379437878029746354682196707970786249626287745648799461452080341781129391685654579407684885314228089307228884251858032099462616016805536450440040349804255913551060365243698737460783566339858611285676629921096075441079827460036165607512500829117975477962502987727678636410640460015003850949694180560639222966869012846908856658866922703545231684284241444961224177353828539823898720639152381811180832444317061695165155374991494848543881361913057776852266136885075364530153046451556486753962389141994079977014762793762004191831117232172920404520340356581700169413528327173777704156757924802273204491463247158239746119348528918510849731221037717205338839971760230907342497706828554025056250639231101585087422029991738123234541735230925088147410251257469106603838517357720888168654270283715404675383586920761887815080856867635221055709213497501925967081127233846107395993771583882181105389924455911747603795369652371294959397662202058233019002243733281188419812316995098013431484525273427850390498737640209146952415784444735724773392737533685109811593356064895011998865555829982718785389342147115325103621352716211647400553468644699484572361766121918459106137101756965864718009582719960797973407873958337396578124950360656200829347128672356049888432891446865969276280652577263428250193431126443947522481429006190073521918472929391005178452060212205338880038153422387294625347724058885798216530068620950511409783259952862349633677029552936421927558682394865175016496671685300001031176833246383341824078915264705466094546139521059901466315018422801095542693269616552986561885430064589557744142698516428464972739486124907970192482892835839244089908469770298133439652049059254702697094627008937781273587704253692025406021574408734325435675744344366523191530631488915497015512698062326280887745077945550392739271287258227435129864810720333320868464358077044748244481785537819012752796514035658662287860372952818068567145340378786449825771016310963909834318119464511327597503399341950961166094349486278332460043788120283206317974048739879257823675152880159946033661183766189673414164333782660846838829300285265900139884124769710865165539946402003054045533138976620355853434124594783883639345833808567042001311099734694421574681433295540386958664155823454200486646188219350092303041053420402072560465833664733551720878782717958001411223551820604677305384045819599194847908136750585015134613851493752956384788398065397767301885683491910562376559121813713101763085399614583669804151476084569090100517043403908404067329723938717526718162879069600182716440836837694497380353607660069614669475977587596109916338756049026647002357997812750662510030763081322454659633640795615609439190317266653730686039559435413835648628267504719902608167348898965944381104150456045670191546882520054529245166979863252545722998501260297257392181502608693822669450754952869105589911503390950633738554116610283531758169652742117521230708537723894444294899058283158862894007794097685122559423122691921431304274180053577244552769260516015789114436680176293394608259097674733927648030349495985029155011163196006980924220585606274005604894828799442728962802602296100700044224247806324390583782669337563095496914222780617343157520450119845213688663575992164576717718443619267924893557532697364669099959304776774517423646219316052185568489901068480972980463310736927642581781909309878717827708993367987252216089042483670677288301160628519792607876195773765696634749234674071527571363308923992596874163236096208408149587827678764333517069352962103360863601293557250896249644191546148150610144303725387588951154228819961968581325575334203014982883610630698996386956783044729072991561613419000959050529074106224826223618517108279397251339188429125179115572014939614371465006812274650907225544981607744128974006719979201969707974616578079378370941165420180584797364737713504166859093217255129135703641000453730113715263675691386146605158397694869020265165232709824361415709676681389862155098633043210220502345206043753286847855195838463569638313146726961557822820673904525419121015587905243294555936223061423514358864297508818748347771826799241498732825875353884258362647593240200230134487911223027988679757882042426845576312355078083204365487435287618219850254309212262825952930341962306344244563387827489245118682714831268674642532580274116176776734617619235731192674026311598299367304798942714631423667450147236185235573994555756260121846184709690569371764402526788960983561329734826707516687299132529831303818256947706108229162837367823804755708664178585265055619957162616322373925849793029611961281528467342904911600372910632892458444019281868704636582419899025901696303423361458209293638935087484569691355212976761588071366726824666007156715556730809292720979838835225351401673904927627594659348150959504360668056436188091787888802708640919490286052930262424403265115493358761714770449978261472118878597113242583794832796101533848466000246012524175018186782962906444544567730686133751441350952077578065225719417067686101628274670382942903312089410722102957738260039451979690341510557703467900086487320370344500851208077701303842001931161531825802310268793294901362397665556402887425351150333913677362059475244797248238644855669042287727947326805391096002445828022278210433877273325142270695424200541820884294409752822583642065419225326935446127654863095150679363365040405133253708830660761189395192754974252923367077337204386249566615613912475926108123298800158575382382841580126159850623909559166338162287212473257450123758942917691817831873337806769584324877363143822227332341906759582850929809606199917179461061737779440496644043991196560354341240572268182822555887180832487356590402853780176145254318102534227833932816358888569513824978120546457050220725662107576266994946615661333905422877491600389977734005766203428332569896534292379361121698785283002976426113562743350385151051111512963728203762601651899395124915144033299970403558190751305838286810001524881101783507683841930608622595880364356941036728693330092884338779702662052771117076293203298657770425201331595884335051058216366491909310331679349339551199234703016531153412628502135400729341549931078658311368302731053212278065668879182255890546549168317652015413331449136624812575735998533744904939233727166168297382219953971626409510775531472104693755655108880953100481893237972536087991862874006571314150752276008629731673677548042728575253036516052257318899517719111174303963779239226638185719953003821214555583329896000995345488178576686603314038690826485940997569605053107963368608049191090953521375044967866230956189199612587431960556231176602945817307297501277280467252136991022103393729935706401609747713889487367960915925128339140303618319853709039209499286411439949835165557664977883255197197181717259269543036997424862677646689662058372137561315415606065116791784291957285576068989145436666015213390446362583518474873250037798881812373885752441689301814070677632008926672790822330118240063207150706757607657590239892490678884487570552114204943880638404246548420286566586411242690417699130717944832382504493760260447368038071705743741022189157021665366398304507172576340438582786165534841405435613597373787146704961076132538983722112640442222076794246177481918235350471782646998656642954937184125771346652525765663470775231012921070297301025091248045916784996873939707765665252852782182969371339010368467741213199953003889916956667116836633689834845618422587607389829220750082931128577461363452184671699832567594977628959323647731641758681233306395065344833375088152129725723257051607199364024994898968359197773511877249464244867402645572454799597005760562024279203758947021669455592265732905289966486579293894125881229754365008434052681767258095373080248993822095161062560799439238906333015324684488944184126484985579289144952150103922455859203591737703215278160767761956478707285070701762271735940758158636396179546892761581772330447251246987971417081835385201668263901780628572153741754901804437886088034952221399536039070575550673450084769031973377418880099826128216166893032832694875417933121186431440841340409101468842163041001471530612442460594429736734705005622846702058550542489132104411557412987005175013419878373762028218936237794320876017433093048927490454368600707430909800988897977570698301800563117628040577002062055940367390531528168936711774674886363333184844814536057871955379649073526779884837879146831205423958411060713120121425382541720646625099970981278992434804329441020599224290909052106391640192390522058740205493274405087300746898654506660161209548421631961753613843701066853105968797086821301702488503235358787093963567821238223627225076022188649992404009637712299622933557063293226501373436959005594054784872200537764172780456469142093889622208339166895326209915020544991913865023994446587736875403941404356990383254885811940849942197805421208668017597347086269064681071663114306166074623273378263413880628074963193586305870610193332965940455666364976600996427496118818034840539285209032079864045730181831913723870126423121292575270749870511872686097341689117817477550992597923698568464789186219976206550705310166787139275516736871119393903597961657195173100075130937701773960335324649415239401551465427194347314001573668393714760997120026951533406906103633974148766994857130868778366235844857072252099447305238674658203130132348142437793476305922761798535124226953454378317285150526491684604645509529347019368006092631577730207580633318709696350808196106055325716382384986576111487290493874976827896339995428584722264540613689590160611269864893513878389338009409438077754266373754113364212642838050929706136503793010488155885458571123352606114241323649538389209369624895531670919094181211107531193799982438197543516687290501051353432452828421000802823801992002261419252467337497223873030821609269800229275834764964256758861739558038658515191966180820059094314290451420967969642253149872509131106093937591919774481264380472147862162518739628735887382938799599372884689662650691992910870097334033786611269960861869055170635137721083550536434245951170345177098951944189259295008346163212210839528605791816358311715799325028889443764445501593885932580850852019880976894254809660779035322455357063661073172017538557237542504380778758643368701621028386409091189271118386637393221778605728919123821163127155234789774225815574799572173238224550417802826722959815780699537028566779032566367340678145101828071853036208800266392284502838858582207784415777547173585230542054203996262500465027816831041411848700718907595364953286628112885548171604466450878115820410354029681300466536346122751546437146601256691695523434399644326322587524143213127103680100333515462564434265512387399889620016785295981188144693578646219069739207701434048627523868852067357032077133421480946017330609915734112211507946810179378184263089894357512442851896638819346228146671487905499671700133703377199279848281830608512546607351450884193247086358542103108341438196515332496057925632320529506166791276103611499107102476506290154732420778454396078046138075292822539068289355070570023183583152513688979713439098161809720099442520717483493737599590841974925116013587701019328849424764862366382215141611517675046099223535934323120035185701422369506355712523945720498508142653951242717703252596392098051490227255894658536765417542593632238496936471788667513213253555187848353905270580798330764911386301641110692076335833938199159543699524486761358425479081976155146655714806785016996061276402546469549047187805771663030076170189768196424490633508753249066663734692843645020417102909601158320524444641883670065803028864775329235021851479711630348178710225667946136777494325414333414428053844000104717559323913343859827857250227194588353097302397238136642289651774199883421759984184408646323829693598280636288939856966079518011925138051688211773830482084772135167475856102592688163693724372342908501976018804535521062598213070602751948672874871278768800657694539939379078586644667604134886951128843542175271690104315557910529592087141901961938914348511837310719613763585650637047305263602834852680186573469265428199041958686535266694040920515192418994554744812311635607936738372882132947268802077075979422777415462974086087737713505779861915045335380541330617023192163194209221152315000605869714919389540378035323272078566203439978014673219512905495674427118968847631179388760435077454737753003544167857480354921570072579271518165559097133116574869894509671004556066845348884733903678853498817602786587668523102280822846683628783231219440944654160522515567140179947996118749731330479412430509119697296267928898350124377092695177205621815947302626484973644114561846853878666555588233097649579096979188955426563063435566690064956221720634734950788861294065467880848815517196317607283686358541288544797261617650366677702539006349083583327429415269347797283840439441883628005778548353608734863981275751319748701108083289855712008790549815875713975407079364877808825471837781525054411464598507927932346912448130504756349077708821685070288946435188838493010742616857009738911326324684480161082218383631125519048607079983960998126908966128089691737200176432779427434964662055677174447950624116845906041865120790782130575764863111543556966693165955387650417615126874945023896646602717851402295486289938596772755640566066755488692471058122304792124284385024819700424601226983709886358147139666287376425950786111313670858625287441000553010182115840330748575465008830981884926470435718228694215448087552185710474546362743247598537278571572657558071848906569816459322611327954903365476419081249141588670262565763043679545918024635082302793119043350937361571416305325312102791916766717303183782959611177325664360657820996359904810261753935260605829979208937539414902310384910402560345530681949749422194010536535724006540675826199677995730126526593867426147613314541091691396455906373415856955043556243945624652706602081828998777658515916876878414089792168920907063658708422153512576160063758010678135090887733738708532721021796858165728721489102950080193179210374706636851045167190316871804251367310779437649822029361402460307557051164846137182949541199073371073775240494001549507373866475728097521745403269839678016893049979620058453358136805141350286529512358368393457569494622636299580961867127568648194714855307821985163554389124704161331578813361219205055056933378797723652944291191179602982208534071980252383022379973781933276465512670007268824776967224777156261567881156028571310222589389361596389716298014863072416536655632352805498847563075905020310512735014557508088218548131914799178899970985819016204816163204852513082079793675955933758551535111215629723204151334009100372269588569017015898020948078028786465333449359850841024656772989135328195419837103423969232774300538941381746562275174581518258505023654963000243647975838740544009216086591253946522103535413339061886455365952452767573358829387215444328571843388987293069590710504866420116095259020183856137922409097985488890628652334381796976644268202782471727495921891203056703190347577782846414438481460243068666332519616044466331167861294155511420662049106282563036713372309751003534898237766024828313565120613042182278262601972138320490316252307437223101776748327974388154306880998123148428466319428846946576769237975189758555251671491248805912112793807409529321681318751221979553483325740504024468142875902478068415667435269028339024630206553677770290966753457349484114752206357660158045514377453869846348366953791709651525971705796199964893888294996605079446380992725333856101302659214003404256813727776853233890110379567362210553342546660432646887671764274964650174980401404686127603602730321272400915685126839063362883918705313284655577978605176772954638626828052555973498438148001294805694578813861890007632548892297407927220391796168753343211738762252280863575198972366134009744254256555402467522969731729493208173758873225332060395613004607886902803364618224938008002471323172137123092123150028090670573784789784108195092930835482587793531924348826188097481586626858922452459962019470385143426033360198852751673947993953935280316246045803888391976743785937561878340378379155720553031196088583316382469835433130098715859172728305007937772443832197274555943583991323243533313885273169944960862403000331240345047740943572871856784323607708599495947747778079650828103233493569949485207232337210593037091102250686926310815256739779903031053677668372051382295683404591864537063345221100234268957043524772076689210620487202536913951893317881227881172798376180123731717695028068847477852658362010467438793653027966214169648163983651360654994480341878405184997770316136522469022992236286088526970255389267387538046404341190181208291041366997553135045069581577146099209679973215006492101925224713044469286526443214436003137364480969754546664245076007499600482423689513299268445575678219697886339707329423207837735508095846660847345472712163312483398400818604511222219152440616491215058453759062839210211567519979086210792565396962698503170608670496371870456409480929453230965006861972823493219606528634003856522051059840876907312617451661891538503059523380212343306208821003699649278762606230341112025581008292905330742344689753864072483444369044599013634365892623079133550259158006349854864971727452981657958876075190597110500998770849866717199433966542283395731427267474041543293999367917472957385365470100672508883293159517988810204103128239232985001292366340225124728388776322815382829792525570035088749044781845719504731672741772747404046141071651415886519431350853288142190424365827404080702505074906201369174522347622669822884428597116621646035530748300190185878595519708394319651195836908069775829631427111820206566171560248158904951750629825857907452658420736432396353532264098271018203688063007248192997256227217482620883788135265268534902290040181148592948489100507063301765821250828651051403120935868146773637989855683013765220784199430736648415045633481772456411793460566231629539770245011145749441836636227845865720499181319324708921889952758766259752971194270898465079066470885430436373909194578860541294935527627890133474089947432031235006446598864526831359024172998438004092238089322457288148367372747346026058218254583524585971273040269033463303999421786723328513511115262896620623918709042195743429678625973906075824006014311130560827498033690733801044486899324651933888321222263615034814061874623213425360278164498003403382011472487561233773107069929019565491737890159989636826965298149717144436867846880299476561775847041138433518409254416017502286784340567083303664946108669179098052974973468920866606690759918742530687726507279954408453320593537292349364849610800218840429497887223654634987661948855804705489952553370170960013617560451625603189157318074409015108920081578839044421216239074764317592237913663690625611944648150134949580099522866272214279540816322491118258464366562126811553835274230848923478933786086182835614346250143505217804689970864914715102968547583069901993519488558882499041909090804234687742265570380665760554555327240317109611243551499389185846838915790951569922098421695605377220474762736027380135946616114137241504952781115284226017305592395227632296671993494200846419197360204241613562099697857042662150691976360378438536249390812027682150636203648763145041937956718300673483741222936021575953319931343181746757494178195818782618054784906735198975711729827586770282084415954350877543909485835341848711663049972835980349761363919207036972748478914072765587279929716973114555024855167487211217160497328987829049645907540291592355099339476110981121687162788391631148686153101961934104183572570206943485529554584381420843023399492145554507842454081945021696308015639325110929023745462006509174282244943588575253923634877171458752188809233934710695283530455580312592488389863513128255633352511668705023976267471599774383372928833867105929287018284625979076250145230857629627856688436941772960295637309959226864406682328734481089529937320719155294553675365814097747610469901392058587605098394969013657879916457152066556769217936582995600319583354949577353155850130259647479284978953482000904259493396701449152156722777989164781562789627004762617081016466632906686963455195912866738068517959541407413104889052679078763802461047159580040591820119246011976248570014580455879293573912898698258206910219353877786103432108640201112567159255467480666016216821491527323763858407389333912549795494091049029274447378843535627040765653901366726692588259593661310495872198877464224736418732538565547828245430525567817669591391681442219754971103768769320771828586461456363601699119111389216444794222091546262290488192768295186574328564357310145223268679888908230845249367315688629443267926272777820062966581760804358340611347524111172760682674283724284730201283670708056202267651106929295914800400817468424862916829466187604865383479060943375248388259636852825056759446870296065286454617449507776957639497851976158359043750723731907910079179559063085361432512378631282472311467513144102373531352172910643884780296362109814154421148044387029149160353037969459376573739036055729260724636576108277618095554827009007912698539972675971740258765005934022060672135726403118839209739742361265507865363268514093244883065801910518581488392717418637124426204071368556762137352686912192797550171134305342368109408513607599149766692547591580807015459273819969803484126892575869615876786896244068070241160903398344483422803588338268250583457391805747706123524070859591889469650597974351456859672388373169255607251216784603427446718865989935820633827696686969078527341636000047770993743912859234285292302395104366688309962511711369105264993619281551023666810795738744853108846562079381526553289997664492925171962877368668550713874176091253283541029795963919841279709800028231961417269027740480961033559450036037322278296394345414063223535931734072291147272493329278604555065321691021729730164013123031688312137431846193641463732882268111689177268255717809376036063999221288484747715786486539800755653216335863124794908100423667629678607210127074136426171354510547947435787207717301734936682096491249006436645054852854787623051174853978569459703690949419619219222301232803396922026266271255814324463026656110441581922010399456339043759596198606897013648784641707142871258107331790714479002655115782412307006525591330152557529393924788577064997883433928518552711359361463332115275987598000230359495005690945413292273267046310827415059411001348083242920291402422337473160718639837154209638635293715993620154032687714692702751315169688370072325520060459223214277112737842221940133418166918684029007651219119717432998860913099484110641875857333475102354721942574008133741706557040070655522619790331769707492706914694321616858551393756990884796260734338349111852344153111034163314894829958459328286539689791665165802825529236885843905567165348131573390189189013387351085350227274194743410167360934561722503492679343087581697753518234950428968996482715553577289094627843193910662920161564481253175444297681521217617312224012213139667045106664884923706569144915946985336808289934459965695877229401132440957147168904297957709012700335074999466647171058165961376746914628686072949105355784860247118535956091756543479234511940737944115685241265875811276442574386553302249822697004161833846941559381595332080992679852589956630328531219759583451808416856639029891603076439149231220821719264703471700858806128752500854883993499922394670248613004003113204418392787970897483680983438262506996724145415423954517182458013839710083198289408541975568957834036729555874383524784312376985167864910323158509228293773442816312693551654070439103976179445852387089422711856284334379200820695923357878225433259145630671865874368468265606600393973884535011356337087529748133034088880529706172707641172522702414794326666310711990332903829459509462648915815582271822228722038865789212973561879406630426023583309168824802776794214379305065873397754663591633474068220694700537562223362404125076057325499171047872443423021050559705732137071737462533753686909408225566596106543801082291797284772025459377394528521556745344879620240339246627247006811515489643624501743075326670047273589014591407072126424233034540160406148746469378879766745665088836623106635972069080256879098084704526028346264952656666319976761481218501470956411519288275845894158701174007784829227833981795290513272924890887859615064542289861014340077543113870982711325723930840326620854922293984803861969728610679158074282581171255152188022138122671937038122021406564493137359229401358154504717701268951092623716941887790981795491848132575150052639181795434641748951652000488292980248907202146455875009222911506272618142837004847691022206575809096935036711776666248762895153671742123602255423216215740323942777545123350924955077335251494880367790474998319646516601928693309046446156639133155300980884169035695678975271661964717598935890666152399669292253602578858942783093980452580829170255143454184510574818636052514161073661004507039610437829643817409963080653088448375048708965065396156664824342320459598909899142198620785913415752320456249652123636688214022177537340719264622100361670623736979000536784099948572802873647142317278093698934095775528884139067427335292561832375584543479355514787377554077854310113243272715521752092504616182658666046671556939424206254460351291394571092985151119932422038067776100462929923316258118775339825579534250861136292918384181927419721967866095021760725800225207648527350610985177997713522769180672601193043090701726035028112400322402292522258098137738922866275271955541302588854589105494595460348223786526262514004720965265794311052848470724827979867119390763625485871520854467473524988515105405724623507182704497536276938694311303388549961987193390847088575169501547611689942680102552321381661882091878205941665435700574168418485156536071912408289738399890845683587140999796534843796612211158020769728537637989196725054829282427538432197929902769954636811140110476468805371639564838552351991259205034802110870968395239280716943459219692072768686235415987729941896039611454336768082104019084415131087602756945215926627893528501001117392983401766300292363272884801187488691982863604866749769589499122691173298496190999037398340110466994547648160561775021046697471630870741945684693006376680602843365003484051374496016620448516827107938139425892604844957589348017715988089190235988730872835537950891810890432369448539791923995464536332193084582692908440241622748593212456100031950158272417063206797634869910299723620035219068694303808786116653456108446218564798605105317152397766187106494316041080428820911258018231775162754623722433886790032122645874775930299878287933429189233506290113462087595923560945824499667681099371368791519402509393739885535410703493806688868266724171763171580619326559845001715990633467369792147176790079289586034213611030020561734159039230938823083792623255502243342085805284750729222114022058756230089337907661746925363342762921857831891090654159619846334620992909735547844005034385596516670540536639332714050372117136925214420328645518506955463579299008806522374103310517861740937915244319769712788421155126238299543986536381323560044373137383448370633176234168532872501907058626827432966893008844214530665654959276312011488338376267247840852947787820108969016018164463138523865953764664693679395609251866312488100963755117133640362712424634973024544871792879566274149754336411049006732243683767909335115460005613161094384451036851296582713455020432645435152121452687050530137820530032070226694566392374962586279562815916908830295377740345409723803990883590903055404111983818218673062837065062971763238682126780737033655011954474572590274761132237684114634364249256351020289901384812478479110260722964548698010874234580608885501026101532693330649300478064405849924953577311503960181917449182529941418192741936701129080743032626034166362957279246028743355107003011286625733517100530591388174885127000207087292763858781661383156646862795278696933618881152827634125640415466747543234359377508953265199478332910603473233400548856293726832892073419432811362577191389097187981422054930857339093060079797607382862253240508591756545961374853890822086783089569291944565974736119073952594260986008237406975672588153592157602367874082104396383549630316229593876664032107059268639169951831825431891277642621642750491984385362038997140953351868307503278415098490239654323027301147804659642556998330061107692520742959013510434967715308929369302862234384885039178475596247641977118298933833758359110670750898162803436796648672004696695288179039673787834757500810905893206796781085464384590445850464995574380362534449539938820951054983018317782874833193993666041957816951127086540579426256708626747078725778642198843795743287630356907779314761530112257685007987967131743337867596416293984956557101136743041734658589312717280844882080052839083267604468142308124845577148922621157517030889614018430770969575257200297433782463881908686930749059395173147244330834695683701096063479058612462019876651164059671977181998482503813051223183156134291297105613798937031479538939649792999924268540451452871391466383695232895274167036185336554388794557435778965617925317371904976362801236430128049928474698484005085291611133739135993327327232097052923816489971921159907154521797330019655185368163903721087029089916620164604174240668672976079818068475822392752889671477949247968286766055321246135824357266294104946192589644281043488872650738271837881440079425479254170459326628118478447066093113774510084527175338243491745318921243243021157587174655475845563582162246479588678253364455057974137372531199802190226847981599900115935399346075045954958250259800559280195527229903771244057520127620085423630028911851533726353043691928021482971429891043751765465040977456953894498865446687102248696147439043972754710889115523826269296837863986586608275833939837618388294850663964605899314600804464719443963277924125912074527160130378539351705960244715430424652617435512668967276493053189927193167257850089445674943566162760779452387883012440964718596457388834693970277355693200467304624010802997712674874335526737445227035051827415996472933227553650993673480065297171400050554771582017465862316302121746919686813049577956754563735417781468495431407985172448288644274872939198907335579328894412989966181822792634403049347883269262756496710249020060565310096080904970251368968873985976574564742896065211850750865168642674904308922315152890958531037568970365088580421236883780265840034669608230106985356490790316146176820415954257756201502506208801830434047571742151980531883880101341581999607534065244573756886841508224503014241635847699179204988190031828492882829862483692671384856434141415593115532029620945053710507300616140136074253223967062224771111469555659367885672077484981558060398966404640562727540687741326538695548430487498838737879168305389710412643689446220886966855227691283555005298933173789784771583061109275653153310001463941738423860953800975970860454757532752093837676236064782087025090780425313372909979424556388551791059207371946447728239872987215140441469917699815054836361630537565189563956024886898652568242647674359222174608562185504017658937233853081106087246087055489516774346470765410658678672415950793234800935462700332109003718708053437163842784478709384658296632835029439798694395421232030758641323870187304304290566414482835860461533012490496740607841549895712769838350442698805845444177438805591021411482527158059787531955712965830441816793996834463240623176877119876061811547009313415517032909643365010739843722487732583386139095486027966302516340561907470473841920821938365010182036051309121090724404275116906475162410007393345194068133580937771768081736256785287679025403854523401568706976014847368017422686838959444291054652446651162772514901194583920368030025221245805161155566919596571571331792374367703947815432424281210003482350267929500316494273870451283509763248557223181699142084337546762601933587180256347945175122700211162650541170827686513005708330619692260279417162022567429692106545897071504788413341780773282751694867174659812616001139906009661982600066026977612605358637826360442828953579749325219831538789077076389524290416580085175113283695837535270712134022890296324046881141701431392895757811348431313067732521687938320134984982806342164065164298428915002309545828914366854531659044597517408155974260586693242711257169308830237292954791413939244615009213087036230366776318009862996379216250479675932684763725607362867960203919502865334942004103109816977044749329612701702593482008178273095107219006871422648493234674729458977243381296366119526407634419875986220329577813560530101179204682997071780326491043636758720462292245226747604813818770382051334422492662555059854101695302702687058939255404565998659982791687331001042472947887689160117400454073352539730104012074977053152714596792862076559824017068284100621054664361880248268844082609802743611974796282664079009629696659265027960030652405332719981709587856835994298288774497372341742282296072309400700538993287625642649002879335268725806343684669086358349643738832022791187541257897804181681753826565836522578326725714652684179255927692740371295572736307494024103465266636532589814730038149863494448932893215264359640993080542900732359008797593691548403566012819408751032901875427232389629225403908050017023011171782489027088350194890952446960693677515413646966477010035883947926928345903715334854052264786180310167876247361506750893484155834787675995705788572530287576874635154586273244890746321796759368858762023328807578001384369730267855015423711727035796895110192927612187639231788672589753788803795211785255790267222756347181056168430681186157352419549155443450253097346937259360203707031593519414765574846848044716586846295981754049065393857221103718325261982119568572309929848607539878523037776276727060882813713847246001795630988372290178258500634188246113657528408048783726156701686844067509394939939548325579470209267969821436003954158809236808526885088091189365806166788143216971802102551765647088258715001379519073707842460104257527166082821338518609495114002451841448827689468247364621387375354630439910210073594872451373250005028498844491989291443437104610010780691761475289361736941602564904517391451867186333242727229316851659331940056341625109094129838946241648253883909384691608219043331982790437462588454820883804304430368325566927975583415280644132190413292968531959021813681514627256371839178183454424573748407253775619728717563581205406872103022181887340116562465372620406493486849006948304645189118331047072717696917985551632359427832377776981426007403478100400103572309617676962006460915701818722129719609053932488642179407110987678228951672571697280449805019622033523668426435951732553046938447959119029089789543698358733130876412498320555380210066840573483083884000889574590235552237602833659547660724464980220711777480169492613960635758388159873652340767796242643545478419855811902097143684348580526086446164816038464049124215706042078774690107905844582222971478609373548835921342296657962806722630371980506457823094098954414589699464230987563142099104618768178462500306995690681017848297211028936253320463348715042212776559602117479358706591674052793673746824745265583804868946763709178472179337807179934633140210281953657392644825713248491309419879630021293743325033801630469578158152264327449694938454266914385183106702913019019833228674209219631611383061199957433519960635998053506391626929656623755874138815027325918170633340106319052806480522893787054877628240926660390839850484658898553001364085250134425491467464092159982078466251583952515651598629542633376425893383965471332084346246801299959221106942599509841636239929936320769224725851732712786676971384929404062482000490929907020655078370486326160713666341737998219271848376094220737875128488007485227057391221091213415668115785939562977392077591515034374490983014955048474936285980171022946767570827261142757092618540880477094201033084115714392435523075479632673098826000330403699333586691837264773804857886427825453986039993681298784399967375813637983705915398560663308203376661648027406419707623285330736560584775283449037378804030242843341231486844366719097601646175563144952533631470436376980040346058790485907881991739380090493264619771592986824074212455390227660376381128055722001715230531280816361889895399825493587732562986346886743263399310301083010726770936768007044832605526552998870745178381458548341983874540927089946674232809534432091078493117643031941743158468514895674462900572640426620164700193986062647467198918914469583652043293419160511376700683845051984093044329268063043569713592478057283416976294615042958920776985486198254176678492635623567776610666946435164973890551448888367343351488568372340188021687690516204685654173460080048089522522273498079861368099942096128933348544212498106724522953873668770940588151827006361842064453326744355928256814018617309588130066706154369174328884225408207408548450097921012867360868636956592553413173132093657263270589404330603739770710984189867123814120023693744003508451754201322555741823460308178026242778017603556213659812829127594627055257399397251890347287741086708848725598916795442390468012914169052082414648325291526320706888042110180033947716928245289705005859947310884577900502331755264505176472576221087213049337822856838876383738632829827554455625620949256049849240268729178387086774879574679991221090448096668322575506918211784149972459472371314493196271056921092163022607605749334079039888283676057539619216911649981462094190236143700512746711352859012974950324536242709823940883132621830711562767911454774892944650903433448106880626485000376483992151412008768507212815467052160632658747496307337886847542301072972309259460661208949879852117228529621788361243217195877997135629765789167746127646837808348214283048709872923995356447704786368940518388023460318036814697621081350582856484740879369686237719202270723348804699410055758130791746232645885193982700206576312773622676510085068485358346849299095581799529876711378287451479424070016030550682665532585854226687374827469249881141593155887044782132509723164753081838897819894377046522245959134451463445740615209796068223346267196962358813920280463916375132407883741967356657388233463007705826039691720690238341494101738725360194182283475363745642398137315593394285401456792221091280327459152831083029121002414072976012698125863467169785967125939486181162394717199962504175065101243273039623491012131785579394835171245540207878548931904342609221310333046126653741518780657555417586779717220727216486753609155718078344180446602042000296883472811354229509953557054052023926305525299949893353217084022304032262632905622416667454949126952419462786681706116116353079844214270529132354076397271825556008678625224519968451516725861170101068741380954060619377311470360701193899896815359069958291247474434679621877647453759281510949305717799145263941389349754006427933329037638228489074641912178496328854575488286712174968282210091724421860175606399025475978065385335612879286584264694026966070406100166381321452412855251240239373591579195254251563250576659133012806288163225227099101613094225145033361162785331012330159186744699377660779285443854825404929787008108191231422466280960968318498544705245509555892921474617477680285494552543523318018944086117881616578887486160748040787929610462825835156607520436473279434460031294891734893910833608008771667195118804635525884978313462581309647235444166646952165831591320677312829141546100736380066060544479381732347817621779915405110607949696369505366607485873600845382046710049842626395519106065420327282111920831867939779260278440044431282119069799494611988260398428588971927686714911972351972521200620210215906228231063127761930651658365670388303294275381328628363294648656251381044879402109551209698193925090505517359459172873501951492109749709597022921262247259747736093475465936948351450215437572329854243896223080669468790234355111244914956057703589871882212069795897331728321616346687060562418393298247746909343407651200298038880154864738904039884733313297970235929518488579338112580469252303220560631460339357160659678331119096160470287098841897153614219007307404026171356272585111951470348312621271313598713560726988826918313183442431310908400398505120550745549296834787761595800845287049148727694792450757468547500752207144633417062247069297049834137729720145210465331941166719748480102099295401173873783408686261929142464528484351374718741265474836150643181011183860524673082607385006365864976590569642992317410591375620338059243618940217338501800440778446650793487867080744183264752453674155614941193583943495847912245010375689688749266614025069000310154649248135096331396251651272826665330632151499046306521003159903148450196016309627275731582199671187996996225273688628455403853752745094562958021960745114242297938012710507696290601916522079241715973411971888978166386162851607088342996365932367701103058700364404011489702122265297577390740321301552068676847934391135064059991092817198247367435267989258801554592438871401698335189805817364165791080642851496391273149515227199005904122219242551867391462731027611580406996244115646219390794907233351116733319750355097223626565044465322267060929029084637692717065222864803388019993708855440418947742287369979610013426869889909328449589374267302406907329410945757987508772701351742272193733870308226917181818625133605469334919740639014117671316507818370591699452243584365500384376222431798803667219953932727691313038001613229072269799035547831499527865760836403956198831853158569265515721023440294405128890200642381943265613338333144769950157960607923058775733331588966856342971301518905759361667548760048227291933181612722757263336200457940126875818948588295174681072770255153579339248620793695997605072957150888206525495537407865025488432515097626252889058868540170146533972007635550796542764471602080897490382257371151350933065866929041709592663990623064281699744327342399957525013629344285552987020630794814102221430587534533065683839486189938577793192229148655783674237214928391722651525813650762045839928507598054717473689770379115000751254382573169149649746038697749623407586368570202572795757513083710569877243642233345401398009599438169777548481150994058296632218922089777566112088756339834545269531042584280150079242412562294297719975384495625559145203671867998066362521566791749037262588140440613592772275583227143580015354824112250478665403572255965298948531243821862342149658469696442971949713466434256043518236682901932427628623486305708558764933498898078533113356768855405142567283431378783944107980634898355186742871819255846669173719419992455161805839917840129646416883254362028307901545501755658664517975879552347016356761799478503758977424863191518477805700973321848397752711645268263004791241245117933252299783288254029193107901945008577369137497635340424811637809509239208787975194329858378681969933510112284345434925597768617122080322843676035605637976610134273222703855283013126792136601675330966073463426560942989375700910672774950539540624012720792145774529906427312511105546218610325438824982634273310752970586502314544072494944054585453487453819228003700068897108668547050040619405116017255630149454925696597137929662420589014082375486904749789050614344236862765848774555225972141847582290018419886564911359785393712216880134382956629114797509946889172273831007096925273165152973900793456458176403431078429911950711143027312081808156705442817621510879172498967032010653128311754637440129904380364409100769120206726151456203969508751761168156712687640007603665524167266233130493189880751653167365036125763346611329652989345344205455861079098871376952325766958633974945547726515166410334599934329707669051580387552947770623235672662958636650597299292198419669029141116407484377148055487336416477094011998906504324608278385454923153261588968803779150807498514313295842299899448773364265914576007623337885930536688836331653471440506365672579883776384793588110469325350416588064006515073830996333803790354265611469460548350922745514269034689288174463496684287322181492666499139717492954274740545761643646290557007999640307993884253906286095559865910398405966150709881459680851998845607121639800532814724747155608408981119100753822420274212065595088102579044928647800316170532151703452580457022345771980243077498860111105888199636536191825323874589973909074583142182170639410646646117613122406127522356498377039330775445919513929230286102612354538878974461025367290236514502251186792479759110677773104706232412618639742359699963860086868636913423807523576691129676100836561703874862231441268790011729826509089000693418953790553328644857905572106304041009610013723972863301313439185856910875110112618983394961571030528766268354908544277242833557145371797252454764515571169967691380064018085230552241061934478199398950527036485043430071728532693844400263377523001602202691158622195905691588761370138230607237439574980230070238573409131589722854572452232544797734422013367825050638611552724703707073232480821659022301085056029737863127565718440669494919721948265543405476828391263464787031660227368011319402714349999395476840333670522475035733469225503008737413465077242931235701890937017002262626777134968857831374004365057550452612703774620494128698500345732549877366699521498615783289133069696529701789168232821524285158374608183280635660724518921615693067642663173275485917026828460372211026680299717246817745770227347543598955370541373112455589340583954527286310459491102107445917496163324868813080532777543725126776538069823852577329633583631190375202288203288231508692622118963565741828696891999608106895811735010146844940694620943314117725101647333764919932716455722699887054855279184157088148864389094317916494087276917612241975725330897454229745413201819628253693802171783250507573511586771710636875656408878283454064045715535954735668720105794449663952435270885250685408308646895927826953993234419941521628295867042690118246018742889670155862319522876339345219948991774852302271712675953032410021435216354434437752360056227526178327415110224799640248802025893403087109059658690258570904530835972120625582988156643611885423019151918525792150333974055038910996018411076385237511009229564708433925440044829999708761779880525693192214311209238693088978884846791226699488993597759544416722359285945452789488574688178292775407225539462226267246623424800575252772588069316255754293697799073119161438143519802002669544702316570816475681112402832799168654236990912347366337814212357998688679058736006639779886780510688451196970695965564866278264441803534691043830675919550101390336984055430618047047405425916774657744959192497252524366017334767279479141851452279019348884161556684092881285896367220948986910141839656977441505904500431695271158917076330588987972052389976327159476208508376862685205627613664683551169464233465622070803340866687098648050332596538162846107245041689107079475861896811274958384882476791910140590528249622415874777198979666576117029189322662939609112929865486637288026062995797803934036110861000734131765677117163654068882309546393379702365549512309443998300767220280419674467090861318388106392692788623285641700707126570719430327542656401301774466709054026300611964886953459055465958410604608662821363192592286906841093920685271571819191051700397833275287265405874139940771555151600099838849248393479185423111040972595092663682919801917286529679210910008768699922518923791946708484412945917289721187602447557775074258167171822309716662055698212049471464357303136688687639673060828456866750747390388659145123410128940984564797788933866450821686038916053677274264633949223477341759903262383617321754147633207196016180786126260977810753602786786662019218858476048699607487175450672941956152189896601530261024998253703455684332462675281602355828598216637937562907781514268092065018454123139146947274996806731440196473713311742509234427834028777009375756290599549799116953678393569114755904728311630373197058502167054118775666480351156377776090158143602340662470574457700720278655965569231802800312941578151253854503983520223273758656980083228061093490466734248104673602961662591634241109337016240846046560200435193758623616179108319271200106529888754058778168037338902087460316345591818735222840014575420932148941059344760102960853833393193403074248980647275702767522704576305794880255808481961931966123395411393030014523895156171788748325100856837582074093035450717603470150173591671508419858107041762191773220045620604989062880411041352074651103915007202902844368006691593367083562134190584672253261297086392932589763227998707639758814350297820850434678594045258813057452472562130356779347966079245120363381576093074782007253601055385858827136417667230618499523825663350883782705861214100185673737587033798911402169035291459185201929916614647873889239065663097087246101859581768183041043895906142957398895065294651132169882322780934284616988139300133312584638881658011584894790121230554853126871539174208393542571036036039365145033428903592879368964152813337015913425448469635067048656317296375200347765245534729131356423642018745427690079336678349759747904237306222426945161438960942238391003322819887006483801265975643561064822005889704065688390829647734258007551477006959881934259076748866864892377913017286892410379987642264034605197165419060673008540164409873564976751125900385812105546436915863810048184951731682704799996212385065243923309040698542296693592435713167316679743872336209114988268538864011289236574009735325429464152685867711661980766095167217858350750038473049264261574039519401777043254367526550799510003979750790353959255088618908586870885290782954684730259894045686831173938392040300636902779859626347493334410061988529452901475252464105753364127442219911503335611664891851156206767083427794895206207257494267298591025577486612910250958076440213713437610322627769333691721432891173327310941838835575064038191483686749249969541596918826703532572194122906289129598012525540618312470564484928733675975749191148024579168374633488924998641283731968162529543176883008349077953102135175945484130726601140692774818284459834612858277243287410007625776463349461453253109317037844603833779407851835031643864468827664873850365108704049818587344751397630633551057049709177170964936201078346081600351498310998571122447911431621224752509566265727881115790909174622448203448350439198835630869505263872576670372033848286775223646288416683588615589910562937820512929998991583681205053228006127555289801556722959889592115706634378643335962788909246626806170110946806103505597278461193990273530893600091336942567915281256482542472554401753917421854719931978076456510782696250076305847305235409934347414614964549140321288872781581314054687389877774156768377464975565654898553925501763056940661669702321798672396104018690971074592751875326446127275085233995202982046128134824623017698021013124283879172777451991478165403385080980969166911387973212458789654119555488706977509944496950492771609170955320442645460153728454242357348137942144602274472109494871626426749558800934755036724941703400219649756286875115018137208057770816861592552608812809344970599400377271044783701718069450816376390613925537296871822887914151893344178141727552774162501084238761734142499948614308216980408779907554562181630800194189969027187602953396364953603205373863106574534413208351319689607139056208742355002475347034737008154894331349136277499008097139875416912386639714094388106596094818816085969834539154967747431711909806254635064764420193529038654884399939342824578566576873720872017439344068925643119534819298978223344289787674701928584981658952721339716951966618546249058584409876879982964247401149433112627668372243196954349798822110519086292590528595264508623704716754914428058154874538135261817903668720645577557304186667294158567111283710575868371189602538947617352535740340205279769397174165527100593548825083803444572981831373587208219153464758537295638646261180647035316478301485999714046707667829113284957844812103094312130371290042239651320758085859898721329968187993607816533212542304238900181315154047446542916992370210552013862305661025693194121474441528394045387139608264678548665699471909138568526604304704113266439894365930905125931423850793827802346578516047112619716887515128951010473881574241055235380408652059331105297241859094824808041574591446391205778603196709800730613569054621229806679348600304947697550245165398790764559480572534103496832473442570841000537961584210046592730614520550978974837769947965201912990247800167336963917794174153943332307862802284824503111577569678968364578929644521137095133573292987049813364589976096701935447275250918573328877994375573207095850151738843656043553281092841150459238369393272767710868217280586048074520224365186910524145130698771349901104551763878885720900712148534279712006067725774904926244413372319031017454178298868476893625445209318312902338017457599305667365535375285740655272647231247552228758709777111748335203918232514028039673954353982556651674018355469199394100221866049178884127260110798158313641896931249317841296052327215101238595443287480135679729705148112680847174431409522318436754038571242381844208871088852911873475773372053847575741400779424142412792486001698030351871166182513172067548101396488093001226681218473550990180490718250513864113822852122292152769786275606544619915568925535014667462669860125695248791268032180932861993149022306424446793243977742506648270115689697067072906168106970381863309687132889124316299540266098582775717776196525918901165737732253438041476976796789369606155092825352227248125571587717396014639099063260998969218987899452038833288761409026786788783418301367758928830752450340658851888933850494540280472534335712305404595697996332358553605951709293008673863884687646287234964976644348362471977875095766010432183515202436466142851730754064406941405206394008691579525850710943360892056199865280541723170898728121722206684219736045838423086719504235669137054719063351331513591527307026058878469154318471771345903354185377053920614426500806865193730557154704199483602690746058742547892670151261742497695245331661001863554530174076768524345616702140654874960840456831473645733450507947214573717472807606681667694941398701968484452666922948237030637679165742528400090315066995254674656478534025083791653025799197693284149530105864210252691817255368909084299086075158643415183948287440470986827070376300310087936825317375812583840150371129968781766976414087523879066069692763559667753384071368434060156583873724034691849763196913658819622958229468204460246959782311427069862591153426278087919420259609532848963018825531982736479235563333777308573175675500419038406903511252318098630122233627802054540049759795605700411385119749434058345643511166865679393645961185196335753251896281626162318550436204200466649137807747014570974935553231596928712779791275761463831816156436549997208160158765541003203062486405778622157618611043610154874991590752909302098855188677224068538892164581313703366647191558051432450412464536617744158869701158084842812007786424660324133366970807841670636442511296094752294931916149819033882313560939034955989821767649398840693959178593465749789578673340076818834002798239696334134645092709434451991218419343803473673161384854969865720776442586003757521168896969413223928303184043978157599154827172496822077020592349956311852266071587616710099468820200211794774199391201270851863580266945158785436642948705830716767293230294965955255795190678637873272419765616856072884638444510356894306086216340782338695307687860206168561896400703233982111425693377759857254069641729701582582942170918099186575105800770082272257172199679481241777623630787441781574742050105279390023297070138852024698091837014040773118723458673168107324136782152625752281604969461654069232103992921127246628247319278781150103364691181180856646649564450003156459634750426624837349472976721707708690866540003327809278127198347325725827402803658134882179804626680722418942293717807276426815659590555981117442448046356036006282982985686881698199598977675290475146071108379904539529337444405200886035423824606102121264106610173319255745737284604193591595303503760490877415748405969967717687068246832002219440416860777172042763989609464400281581003149910513868512220622346233259441323091640410191395912218262594837036671477665299816069963195776404384108509143113802123284188679377915364088603784664622187189439572048729156148138858991919093580743386501363441105654110170535271458491164849922867370107114944606785805194917595415490389237395693422666143634503171097405256348487777599389874243751231632537896884206726838215181273402420964074881527582599040782994606517369712063739873244141684447594060647288463880392782534980851541138374267850135058844850609874033920367713385346979925402917323848779887986088399179839253672029679018181272735491674260195715513001577670295999965817052447724971859733606328777561580958118862929195303028195344801643194162057791052424588075973855678681403342182519867793799097835682774035148930185986885012456811118308072163873309090920580327978338987188592094642459613722904055119896878341569022851970864261095054540689431604123610029057965600470748304516143531573803620271743999098321778940304562325796991147704111519496207964695343336718579700193508807875349761719337792110344890443347732544673459113681910435737072416802878034752387894162721690020120800598397684268126099825402532948949461207413222970134531256302795086231191657970238464477483568627261026140900299678128587373734124019910934936286589995226299582491741352575154576575160879773140548545863753560635502563354520089367114755814530187950621602505667692271968096917035878394714955685858081134014423430211975220535173917255303646267742747541797153390269117944597857825875512425197588514441790809891461123683781185066884360552144686470454542019197501374750436594271496774293296069940917487044502834818296994458643939790207477408621562436507073709883407779638486046853777473609781853854222042658369501269068225725145537873285334356734131294381315431451667925628828788463225642014293981044008784960134998847798163082070911024989322693878181673091854230474483107814395239118545239556492067813782144539245340497369211279364771284431265553914085912626206676113360401108209324427212641244537733066743149652574909482090281719722657633953327794339149940363687913359191853294392215874973181794612392028454379862704519708687909531127728810710706662705969794483231758103237857165356694000672997758953711903876011075394794554878349314593913586275594980687076629017289750802702288225694066285204871502505723733145992599748455233429506563587945803999125832129027891688387038791456504276510296941954667547865223789862462352453941268427551494097491568481618757981535167544158838356260814636646718439347862544286243505875934511243917410574969093959959542147433161049531177372388932730095521012206999834738943587837436451776674788144917608187347510296795149388547298243981536209014811432651139419717075886544904540699376651907797276491747819108366224354299941238468147827613740906150551292465751642555059125888950175051090628353373715921557902213328747505895307859298679863127885464849998495606440645055342332473719395077057030514493427160953010509600174480811756468048238424663232781103423484503114482828033793986887396517557731230748345533728945907530036574226284006943565921037769938574012521276829759234954596100018600717076118681384399991149089777544062951643276837936858571393578617019953505676198256974220915094351560416769803363316404453265397053311539997523208806410928468527184471876244436387048392824879244730011149887764081799965988000528850350904981899695075163375704488078377602976548475511734974724353037116125817778065637148621158703160579949213786939015046615565201027773637646595104149050941468954974817584153724082638943667749718015433599178029463673793180982532191651915844424611238995858375076816388719930040914374114771743285766854370143532597951854135337002482059537131218452592604992049234216336006306135854338522632660632925546514166189929882627556398597698286881352500341055782793966960116570802415056538137229301014917039872009607418100980626657645321557783903007754572536335353218630641008190478173070067979012365261626570491894201946316764094292706681171164054469715568125698816524224507410040891019857167983672487695543481466379682718379207578517780020222602044261100744261300696042760463641372649558878069214529742823785346163418640456318669898049454803575991317887212563048012991217088783498463087689226228111658345995545344873035733259907893113974496367221472557078947584183738242515812663622760179776465237039434633338083280946027318036508363649048558098307794983921673406643268538081149904911254485147337909165701016690277465690378114478009867663525134115456692826482132713303968511782635404035750077598659733097356534177760540688942052858430083114806233867859277509844838037672666112279115957662772227294809412598187210647923121425283418755577213819418400241142994938284613234200012622682294815702142102313738252280664029511658656849507265577047474569773239351969969287293645346090831192092047113245220061776186033545724699728932310115594294641398865613632626101367653134831934191832391657587333143502026088947959422183504261202775047683923982616053180882275063563349992357397142088343005793538736082966815127931890750962930793297612409996239222709622611934323735018129456075592365884680395981732716163039397429439543318160798206655309266235054101297267286271562326079937064573822416260958930825181219641306632404669462339738621340439564141479749306050156087397420994924814831382258891341713264528331116057731410425939314470149754719259972178019267600507525354655908134034934121422116835212782386209555136656765230487523647560575196069580416913943569736564544537026751881127474348926048588323359767668237949997838992733986695201854443911852039594627740375049404279419342403677776148568187508087605362214247557493781595372716810648740896945684256326130849738177096765363848173507402742704797474761577288653469288701173481881206761138718516287512214469573830245471239349557502262838236082261707730252764086681481826342773743171533415005781344060807103258143418509049410834287085523800196715708608032326058898908863788011323809337011271240615177318287617002104611725887802010438709302694852832738021102674155054291678884624463664479000886888005365307602926763403467254472881906673865910859596097311134171470604208512395976021385579945180505447439906172962828627240258904063425766360005737108225069844082305214177789541052939672800410240817245338191584096716905073235334458854163337728375092754198492181253220344480433336290036221201394377375108938363217217191619779829582471166904907575625249336810777979141056075182379664916262951386507416857463558510781512020597976684944373416814208994466226105021290274951710147949674406991810357162325655018081851531139439767050326751095988234815362379541902921851180365888007326744080294103801917934211508785141381639857963784989590333899872890137272127677431989816964756191885583287698154875004968269195080877361871999392711234429464848801990245113547880714257836475213440580076265274288665444254233567142797065813970784436901292802636285097899580003712224412868618598453940666891309725940650302102118072757576319719005041298076301171346019067536043318039447694411471927916640364359479453973326024762438764142283828506523323273991550897443279941484061182357648489582925411467279218452269383049524952590304804657211559976482397874521835241590361685584450610108357501859616087474061178337901379725047040182777495893782182269785440494704903427667778829859915856603465639163843703008219753802826542675422666771520833774008918261915776310071907181324734594850135765081820294510248058025068754021579487402047331923004403521395761259262346648308412155455037493155330895357505487867309001011141330361209250271219671495906235837677256027526768471326250710786753380012588941730840658639114139472030036098625666715011001572153121425788786030118520039693277342713213634696006465934809733033344931869741655088013098312461517813198683467976947883760958608268319140918748910709896012457183221194027622405585865881591605701413927137260996833470965005501712909312333732281403299309069056368727113890253557158779142084011823949890627069735886435376967085182336641872419239140298186948057351506960639042472471014753268621777584695875566510433270298207595586869484516307430880896366236215425262792432257538013392307757088124679901626250845430963043666323604664566332671123791414898153769865182867085524131493333164103326817907864842168449235295346408912759831225891971929729500864004842205369239628857760437596062377680433269516796948647773191421436474232632687496371824524762231244039362377929373890207707939206242770875145130269416334637308617319223310832489743584214061600523444278009661567501912150218073825419519356566979307284780049813945921591430734997120647477430288258456339705065435586385362122794992647004992542172365825555165463488236344484185043131430861135472710050286076348619802794483444378540690563447583061437741011566796917315490741281843459714806418098353206088948045001268079366094525821968472385500560143064573690761663627846359629865821111271502692522163695178646436614545797253337045886964587378794297660188867058569036245004513651183473740265628883791169225743996716403179327239185272772726333297391507637502487531358529458361743878472070130367782754545783505362112578057815964308951965695685417006738769084888723029048409087878113006840256746849731789119821835672202619583279570893939025657413733265539584294239276691084962133787604883209173686336081966838636631155634454397066939173038913593686339623381496206325722548825690198937917751173256041841785110632260044600130524140078344405159378190789848288894779831343429291846384673500242793999549564020433346960919334180767285275543125428579351654900322606630743860832835174628412068694237209169305072153632683302655275481461228255016319021583949832213300223958709132720282491609381409728153813658648528330935855357260445370915168043048411070543382505528686106055269465078522792693379243284918089834799206245275371430162074973442836611618277863345061491046030106479158510980108950354556324295872597295476713347732646524649877012956644137665797975940565090743069842151775707925336137039233348249776544248401790226387806020186762132897316534909152197243075721428917053140522712024398279712260533401141791713069885621301343479999741943834692178555510559217692644792085625127767724809740257006541330960073653429516931748439515814170714684178879269365074478431731735920472749092628420504544438769269268637307954927756330725278112162418861197320887169232482485649627643758624035898622233630725585290769927804978430952893453384373154535523269541661483590663134631613213980515909171994736625605503882715932724947571110879543588961500165468944804034742940552414017768806010235164215684895113310008815121726566510938741671450438432089557469757273896620493792746311334516996143075198557872611267635833410050085453056007859713198254556080163212797313286398317133357635941590719679735208285638185566272510303343541169263173347638571634290369487372243458926424658862831446654156906314394120616892832905002696243861751410024403888221912568604511650355916649732547538713411189126368466143289579968631012304972713418905945365835005822267010041734003573456343819037096585077729714670848051840190526231566281880855137080538866060338285020931402808013473174016157859947257639380446726652963413669572930599183876419254331447889850633922472395109936843155633272082959255529238675446829259585899823722913683401444447841578693724724529107531141476932222822503056488367064478412071660453436134146134848016923668655098955363974219685715838943261612604013785339127301200086518629622216893712987186563191187803898348631632471248171441791208392075311442278424079554149982874592551540650895739170151635251009215231817799516221826463740399944087606586522126667191642186191827565684065575064505795382479223426451003933733117906477502631958756804071762394878999120978206511076360885734682149224876003941778120755873674544452307587284030817018092436996239431677164686586534432419518597646666692286064119401946356721675589760758326927636430613580296007703755892306494327349932762127647840669929427838152657736901952582813395736840295054396632873165329345181162763791824707457475340320362415962401381990980611835234748726150690640501259661406630134030484950869953318362556312381212964241067032033589744671564714151532801702591386288167762997351602206701594766481224075742027441074161025100531845831483161463815589013576413616594684748308336825147500528058199267108616793858959406241337393871998125934558439292491057150270925730791846221988075770431478055815071128215490022665085914372161272327848084172005799746374515197863261907507367716433981519777135463503662866239283440567413014948278183633095880792389052347264112309471762576736978412793360870942805012819195405770557951806614708817938040403548669551598681454350539629579629658816495131716267801622107762300618527218565131953793344304674953090325193614142332889861515765242185903888493050442482503876149159888941678084966403982428969801416759116528982302011567170814637898192320545895887534503574736661821066919365424873127157636776635887498739062103420036509024035199126467102896554352013221557208497416996383605515856155156112925461235495729268632170095538065788909402789165742789145956313350623094525511541137952536679315282824372913388419372901159579356096623796799564045728696637645703705628929765650238158345619324413651220459080868113301898230568914217366851502049090939042154114781050761968021696193598805973887576215729166511672490318928131188841026657992748029100502361231780415888218677686940502760061527938017101750691478593978517981808197793082109335200543992095073940565691745921279226812504978686097428881269516417787015648667335961164140563736359714060043599635740962034472571171766629463024314835973075139976955815444369259429879817639444439980181996481629381461145929310653981411873144596101162356097156904444848402471709228373243410776968511176157758352127789277192401077340061963927506356984691639975176246835620489511964939463203685551573442293113122241450709701612187546862056445616168710792884417824855561977511526698053321484085507214478933005565173500681649946533169854114965731267405326861773660486756013594014019566571591971572919024335276762096992055783539990388929311723613421040570244370919682371208665030178059671802790222810106623462818302196672261344452031501026703638783754695249203732302284753035798099821491207026453276066038865173783129369108991496846875882564245348592857312451867318417120598340607406128191694685873341688344684854311635265762736108160922256894528563300119852998992747784610019153147538330371924340720518160379099349163519764999584419870193536987240386392864514044114280644640005834158541286487972071933612176015340767409678286976255330796348165497833306531886645056059712056688109517737529518075799133223625134536915601218752614761099695845593800399393315452183830534690170357265791705886777670170395449636890337614114561393989500945554304939037058260602208642721656673584177608363845894597614570085155828790847793936501755391886211192228174205250645015703234921931845086705012745158105896541550997910586097826437013169767126424584408009083804290639410418781625873847395985618921807825201915137292568462213937619782347207229445377774395729658174966270638988793063715450551805906947260696797691304191000011893232333061791006492981387961268615712961112657112476790795873393794741225125819286142062631608565333095641976435934666840259376350237895237478922616251815316682164035369698324740912371098292346251038776424595095431738582034209218849397655661651095106746615691032495936691784541200026447587548289138068585515851823489148474968269861679488617349663832146525568374139595300064440342482970741176718479832627362497010186232498454524954200442905076771584073616172453244826499801436022910085885944784696027506678497849365236569282216334842042341467100680329463700095723633915371206792841944284954610837312750663978098784308721631485801762795288563555476193870694456221341917772931747411785053238275769189180802590067707098859252138806930566337193205234666118126113025361185745896228218921049761958897046376022641001728503421008582813123777646639744012720267532358854495498413850310586913229868444837218729874320507293373318127075126775446722569150013126966679848442290818147768658170455565924467233173583907518198995456747767323650728780512227073651496240429721938660832254871902889712225330693543088624014294633178350003141266022612003510042101524744563628245774441623154543359375938646854147932423003659986310870326270994095195014543308848094874696255235477667202926625172229428740945684574494221702286980145519099266391444772355328964473463279919306477475147475614723051416149011347707824130087888282520287252503507428191204041669325931747505802590829924989894841251491068375516659317882913733154666583261642027415051015206270503333536182527083177979109810694027392421468770279153237108262737482273162846050648702353958079157007415627921453390803869558218973393367219931228194513334005024207686175177230125965223321113396613935076286376391555131163817262684050006455053718919494230942255802814453248073409650704491115628348952005935502667178895261578059021849721901661049747384321400314882778600682559546639881916665261004674360747085230506300677275609885464202654325962940289767575957546940972860028999242109848695692667560727308914282089947214667111484546519724483541281569971834702108240490413877588175661423396223906613328341210447015029781598993127150887305440135748547468826669531172585511556070054301140334462599116380344644806197733931393032556212922920863725125176179870051537586235784269400604372326015152090621425485286443735788592230255225615657952192311801712522416490893010192016177175644661479239557217117548881394714030302821942555690602941470165255571264810894970758427979533191420350183837474014586610744201418849834697551225297348811726651652643873935436515992039557442905664379831369908891198740697621101126522719326335770714184177972405165015831219879036973266795697271931662529868116135813925641990424066823419231557063238434605462283871067232350603569530255022467941053265863601795915299546893034558237064125560251107810019660978398745019819757994182560672760489505427807977809504544825918400091791809403548079719871784972030282638894126985366826471997604049621590072654664068551938664549689235244702040957518172704483308458492891686000685306238963332538169340885645122003413114371093333769119814107777247565550594588206185488018795316367780909263127786704200432523472380914980394850019559091291284777732799174402007480158740208568142240316241447056047679271639557343432313772608981314733224585557618274772232126334152487765586984314688255862856963593598740407477525032520842965182114481167531386360052274440920393305946456473973702191912390323998050282597874101882754540086085504843718768597669530526692989511087536173125431196838164026895307094814180111378130533600299069376585008243222957152120798946799653622181558616719499732423600006589785725433599012271991750179234433325265576366040041826762356901721225021027606354283337258943382398261154431984875597428577248522009444976476003266683541018532036974515222030091047783088013566413833542976508258395899487806559411252137567614650797936793238605898108067354111885650886567389335536648732891080175695219674773258637514771874648337352774011411764636923598480611560438186690667866254463697998457388696249419709706714443609413475534704788348659043786259404993963371517467046133690249918229800043003391473703529586285013455933190474338358900091093789989895389427170261972413389943444542734009370805304611582663009100224425319261434144638139872188918470308314476402811584037396566306062732639117600717269836966736288684651527984675470766327162408991473632300310073197933354438130131487175147810604820933335770547026139125628625251212557847027824190996226140654747531172332739013661824017000367934993290323992136176773390062291020311072257494708374537695128597553356705441534597216299547268083679717913402168727513232188856830964871736935122087704009770026686820337695661267613992172692703992114677604327349057609867697097203787267766260180489842858386623301474773441848892681657585036884882071637669385438314634202609661738812531458053682330849376937472499743615567430032893376562821859716579334507614249149720150103209801302114646136656302041439983638532715613199223375042072275803433625921488604105566235373865956355592992509676415710888979654744940175663174059723147104593336251976682743137790179187019352246052468327794404765759496303931945925090377068083081386745178069963138660669884520115475188336340010144583644014146297346619478044578813412444331073905879672668676783972592728471304820803863859620254959276615312024575523367005018744780511750560407840229970313524498823919563198713753057841480180567612726737419686613264722046981766191425119667378920479279559273309668032339396007106151652835622911150382465859004237432564458604890811375895864168754292285783683988480424625813978763902168509781057630293730664271792151458632772426952507018328494705090574312232186123279119943017897875015391442141588410444518365298911423993786088517786550439157728914532561987030255329607595506039163838695286506852527174872641671509570091112563155635586779060833247193115147573616897061960561549983319156112374109111453425558951647439932669595356184882627588778844037203797908829646855839200673706597295191890630978057411678137350108860686034830041516896399925743010778435661485255591872623111034877057747914635439516620988252300710834563624694880205258094041531056266797573951097457209454825500056761999791543710583988482446552471663605592436300445309859562490547376196723097468349526664797465862394800691375402632133507671740276879037579885165061875838656127173564823910016520209621714996555262864678834766050052162236113313578497460955018254315099249318346794804152231594678665379966140361600575876346525984797437058516500590202912953462399059916000612791318456096030624630355029530246379843077467366267850507250581978546114440506178253724904625838515189100967970258872818232686153379195155732561363567101755794400148739911067213649067654858204961719192315434614191704323554494641569061795668550902191085507513636217763736117480202554550749907777050408501085903815305440285065607051202533394400047005939882332286067715014728414603824726555264041287371113605229824378163319444755253210486932094365827240153504199520315094932220397461495092039139396302346904906516317508424274774748996240913279323265850894523770422409792545274717107423985743424370724439853363180348372984296437529194203922789802462496666946762994448898207981650556078904737452542699761189583476366013392316635712802153538752417667322068218980594112411843144364486542785845203189372412511929483699654312790071833031739099417724623235065610047014141256576323431911610519563194442287694388956995881758829160150418545106844422769944482927380864984292675794976266527004594795581847180223616967711265161673285760293711523447288703667663770002740266590270578132475997610116613288796087088546538288295627011486363558449035967249139440347184917023997096381829032928421303576062753055461412110333745894742388760665715452426841230306652504676140157497991365845357632644848201110702020039648000117396487986357146108832516878132631683213334610192023506416253364347819732513027241705992908259005260646106684142248471274738339913301063182064102237589318722747191786417641826480268036528072211802787994962184073317697871638214294495094032427878553332473056548184389408699259171771816125669552431124502980347948660229502848979816303237002121453925382751602114200448434293098433435153564115844025098099739152076062175467519636694424436711150492204963819239107557828033199460979971607234935782697925158267831298821063715272046814718066320269284554309013004312110607735180233473815778756091118316336641677976168075410655501488442760539900288188150334842930128240095579988369631055811646845323143630016228704217960336548095159429501174390125489077642701963641731731640850666479426773971948574436705056664931170534472412698489594612737683850551319460070823935155832283538501021773476311303175666298691113796262840131440446409019749149141038047531970959892421418717224239884104132091806788630751688234004943779573614743816516876737108048423825584096003150620148258444918311396203301927309892823768627049417468100682670010312981543222383966479682111226628515106478116323895139722240011576398022638970891810958379133703325244753444324868430941836895256314115749996938438474746601835072978758137032679781165245050063860348543019468128346793789708002320695581483488215813020227378985107234174014906489263399780581734385012172334546282616837221313982547683224035524380884041726823387594533435678210099779528211128700090357347947646079944689738924976642339682959091299513048448306470517509048786316777922148444869774736885684420604571448738409071788820287421405719347699387146791267706213068782165553192731820584732750359945382669999840833473792001333706672439425723387394137315542783317462864580488647360837257100158543650521565147301068138151951653252484394815335594108004903196425449294540387412283057025216504879939782025668996120373705870855376493313926334198711007507077952650463603767152710927146673056272867347438341959805563586108909141141594912719028014611203286052194535169161511761957644545504526354652043235399439382172820622997330031026616650009705340299293654138103665174056175616555341755793318075071162757291583075442793997495436455618229276244871116399928647485665380039433824156352424703596402042245698769399351656274920035502813834004054191621863175903975033262437783937077708347484051856700513586856937965040493749913355476850334635973571202373955454335749174039407110716601559351639707874462446757471996701235682518590582989475831265684391870729915635900162985509214807001522032195309396483707105739837058755292488774050083718843752716961068256557386189651776329992172814516418313186683604481384672987528655184548455219271130427424049319108153375380397076676702545492128398535357851551882024942823361180287652637595438925103595044957304818692462515626766363545430415460269802926798212077007949597295982309943094555319448238228407350003973616344696072044304970146445343853047636058723582192893772550092975885298910742553845081340940148065973410825176110624317594852326207422899985001139818983047623019324720354216992687776927036848937155819595185294527391065242194414429440118602833598105186334758141155943346221126544830205445691604644285355933404289588089393069894004790466349195478629719621147125235369513553871636134541996649530686555710918660683874598496867569560853296482983376775262340785265435715863995440873211421700627262272229889268659778453943089512433251525976893997611633155900856944861719628781053727326558918044618833872588941816965617795953909118192219604884431838478166065015400815661557425192890428525789663146252594955934941128963313377845629838540238896916557549538768912115210556863306706300755894137198516497476813717935146388681356296243786138863933706560552537578307532903007261192591004331083239016955631251637718456857399565191833227019859480596106852014327605832804023181930876528081806320276828450718267655244601690676596192142355757904291114664494524286846175879236941620243919236487538349643958272873963817222705338056589907853559460099818129821627333047195697584707884854216533067633545159411115510385804398332667863560239718363366462232163936542115816797278866379757549320048211747902867680272234486896584715422661104511949530548446712512798331999232597499934571348728360180149240608493023662388412320730509771995028854797584989865546681391314265706120855981979549343085948545157584844453004676871806382700964206909708670721063271656007044840985011892792686866926451940034883701882305475526462510946493796631555895815388568307986658481032913849884506410900517848285424219718815056863491986740681096204381197030216203385707311037541321388908506223855126780855131972799633377239470970098571919714471781111920082562260123160419904822626483213350070926253842074703028577140689883524548902676093940708418640026193285420418754904188571170957557174653432414588818165570018932311460111855293546451398406709266274145380786509285543234378115175531983872396863674378285253776325990265140703018716211764236894453402054582547650139302519239521426342520202075487517301701636766955923265651803066011083173553783965476420567943479013753408195795376695667082248680478529663726069128952026714168928542202831705049392511608402107404451390944204266835147878515224397857336409652841844453400309401990524057016455791080665635817837369822832204825868602291970070826341360240970257301626858450816635925144307807456337524328559443383753902576956376270830895033225419738474231813829553726194785184479528549172948696572407034160689532405598243486688176360887888547372931298796376334995026955972081907687866294133669843222265424008820021211629775945742913907281721113811617283237904528143015913249168007126008783794954169117767200678745615465465682880448752380992839023406358252896844946426452377695342559040410829441933687290152883095590344020814167724048167779974515319074383886492756654788970417638930541693936457315557148104845658681151442755130949365187457572693016338209447180619965457793497508452280553227861804773926911716412798162473648568553111876172737727840277731681801672596541082357394648668111316620355019799129791776329764437414737194800251651680454634061450768956938141844952381639547931410385624690072872762961394951598506674233409999359267194416673923739642600924594727947716032744387005708673078381618007761231009139184776012934122875601573128180559894099388822074126057151202671699766799804904264136343062110146504989543686142586494003530931926911911197731179877515822929816241192937546584212307525685614103073656721425368177724021520877212534824609602118024632151516078334278863141987743237637739675448619659369807509638684376901924848370706153370663988988437704022810652140041214903458410454072251338563818959748024866652455436517338864370659871831079915338480243309046812459922427282331987169370348630631508693658385393718947937542307728049470779491176097200999469505823295067054427869314857619972071366103523583349355137760364458201223404985682429437186429448983648970093202292759905685041371040971709696708782319253703513525736433390862094002016818580454638189773615409887238516777960802463127702426765132457451306080752077823161899257236157604237877755554887950763026377487928139591350203755707334452060266806158352762557626739939392716623958702052988919146508330850004265846856527937109720362186815460529639172705829068155025478798218811866204070953182507610365645099940573532927488005319978336356472354262102613658080919193867675744159008464222068104932655511793298280770774560771032811942717934812383425069356932027730513915028275315002990616432334689587641005590995319034167506266797741853708167541131248339983420505596641729221769454994437823577324561721496346064177851241459663616521067574460084659340776868376515714485499444507977643569958701071287754413536906024566566190289859157287187568631343814533234126096871004821746392550144509290968893358600194908863136994974967459703237598328404842550207027972048363584128974280223948990172843484956134826922940227851397347225869120599353918588667348073638286727071494918881226427705761954686451508784345401363045333484400463187641131107798887346666168215434105011831083191444446096400947874243565936966264786484903709465214329565043074393555639203255408948695138534622924809173880829664211297455744542710341760945393316475523516406016930762548665786701027074143426966524737083765513002804511606934841827718079002227195603763783679672025308182256424894342311597506592167702689930422072031516050459359552241304436900306841908166480088881152392214892629681075149840908090556361499136443388385575749525365354924336172795717132213659164046447096642545474366118747915121660210230779565762563307354327875686336293609265024594218234211768506935408240687806893755723476840738168997248775924006562058571143929346829210057271481269356179596360195109312112047635868670553916666681229549145142869698692408225135894157839529657190106028416329978231186518446263594792672223276563429737171448783993177752462882988715107355137368644434791227824982690956379627865987732839246934126306735225297929145761387689050620624217584400369495596967894612033083449880296639763652692691139015875141507912361526235792964495400163620784320581615880365734674467609906324777155535527645891976220629496091852145891823545120489426216015970938759592848804730028054552236085133061459705295641375387639913595194303090462482946063169858032543544494269411789432269856285929185473469878169863458967796442067897688458862263685193779515933869677844217500850405313277392240040748940925188179584980703463027593314125812083379004313483506269064808269004967565925516265840219057835831577001366593258726409583725987866204919752898287883624799733580000510487019773811807761313005046159942339257276557086128807053622249260099534807198091186802635991096658027726258671956117776427801551723036718577535851180786598836067046709875377401717546269368509808016647723131773902296691573206807189113714582511769288768750774214252616515743109691516387817444535234327329545730106653890695900713506211773646256479073549976654630245128273414678128731908461270141196339576133723479401747243823496521192826465528644062941664308636661099187205459993782357735986558086574151651053166381372712469744946567671545485680096092529095188538468874765865297234253878090034722165228106207440838197037716167410293589902017929023859410209600938081510906682278587204600499172946285218353457829398954512938770440773703243172479930953453727912967338732610555900086417252203804095448439320492565678788971937077013295340142499342389879166465464694242077535325867070789204641268892774070724500858100510562716327312910219376974669845247593517448712763130439914767201542436841795864542415061396008324774164944144759477458619391259805937354851724828966948286503248685820274208515639968328453302887780229952850218044532324063279466296732700103364828832752567878032757764841454296319275007809418335626977866932480608742478605037247159945064027536914559600094231032702853269513604596196467840662687406646946504601922471407593240523428868285925585808153050615599380243652883908134366542641234270587992684517770580419696211277480584111981253082579671853698349701291622427231492498878586217277221369057190964244833676375896848305670553808715437050907688669406079387138568593903400451830758692846538569649454043973144975870665793494954334290194404136478679356088483943527954236241241909823064614119110952993756017637503505727881525131401316328634905307867236174393765845491246347480858758188855936973783075440814227797062245578500354290073841201652421150762220303354402335780452684069136236714915455528066510537414155728511400403070920543504566604772727307675023205554785931852654878020959506097205314364503238309357939892187855462998722526376410191533042289840530745687119623809734128896714096405456498794423929212183406387244097090499960007698354489976733615233969155888016844913664449026438746087721139689012315355763128715973259010223829845999785931347719945434149038100918689534740044427466864426042134018083749797542719860855102751464920038325985584912303826123971071585198983274827854312839879199441075143471510898840004488105279869100232003256468825832560176870436276137831724106535554954077378817661105180224746207166978503413830610179548380074530939619799922984297963791059595104665686190516417042670397195017667611276427612037224578541662700185097049078777945306522817786588200248907856257245805841998249126663546678503731228936349958105922695145610073179927877563915770808601780154726043765315130022439420984789761974261432766632462768370143997598538904514168030566418320648372505146067015966728404598682841839287686359916220040717061789761931012764402402923175180345972281914236147879607376322436678718524073303553443868549361299053942434309982751612512244151161332870008744453733284909091847557410762296812082507749026418502212100038716026852009231648434270712498380508012160646105731209883985916496163058662753870385734133511265448165881519608788815798055515694937287058227143760913541613526936818863056005002793841877051447623297696022865011323963922210976360581239891916460288780830045853798860712897036617690904292692646363375188776157915622018623990390319648898310440975520945639170159104150406202658055904054333010695691067697193190922378210040733053315413410480709324345998456325746488865485943890928809421803393397631428633616420545552506858143554966734777217615928575951816714311651879578771301638825699849132902497641801035692018637440135635558929362636333675364463370184654177154074301310591667726202041988809298088906053607081352052571038965707175570574576763936624745392776401782691579495698693113770309549535607790002464575168967376538136851169604970915997502684117304707301259189127842388184152694593161511598386473492953443108352087805859689635133841843495793998381407328619494246696521761996292880580334238671439958106210600013509442807054174952574867818303702324003501186623219362008004537100978801378414828815720265080555082497919446084072257338600003700331976870874893065861719755813470500383035704634864104864478860500512159232255709434745349204307513454217117005006271869868867394271790227330808862436710700485191580825353867477693521360414474427336201098870239064082959760738163500195256715487459777274781863956279258442160446582718903726680603034999464985868066440594004394946048470555616496810774164848366127984275722661253517363324985078594933696691505163046219851381608228171681074966827660144747499137860927437249028229500136012571048650312465823620482321846302233465760291761090172782766512994623908796751698727258967478594365600062012752296047488131035048251899748093245478537520861607544180999853668697942997575951521589713415097569663938852258278834967095805840596217470507277110539190427429258287999329221269132192620612999540376378685782383921723839554336553000556790067805528354090701911847341789291535350411188129291812582760879285931916661745333009247054543575943226033120521371989890656363202181527191399986956773244023125366331347345240698319266511378015791829156823754529790979079571408769368313749661521702427816767283503362674644377748474513098925835471159039154065182277762073700332404803752606591798899169308811424740750423203669748397208146835877478243914082580709604146563975546924455008198255827421510273988331054997017278451994710430091207297739627809013408812540552325864441774920606456631965122224445329970429604969602344556571992857007810932388252147589968855267255741600539672643903309025650466683067616496320117363606697883181513692844614453417256219578683754874703097300160439377352979811327813391997009574175619623631769166705403614575273112620536709982636211070354896409150735370109756036912772272115748239141714713186095202756970187404785256466952478411180268429663333857318610411327566724081784487311841518398629759159706531317727135509076393740143809638421516976652759581397413056508871304098316977594626757474021302224748016081078785925132878765680022988216311598447990154069139720630698008636476610351493136205702993255465800330195962132024499684307787584295809777966512477769523294528525776079613351449329543449700801380946102604738952583187633482503685144719983154155295578003979155600244130281061162047966872473546984906064920609560717670799523415438710093408444222617192095805616288989707393349543732332698809959296086938671849305773111764607755774489496526587791573791032740729294140484494273853541132333294105918361676986842459157688909574406393498340801263291779620420182516094343674087653431048297376070397299068678801436530951638958527510477806707454001164907613057976025689434494929689572035323952599759228461089272655060710310147151769095102245092623668836272926075213660421425638524892551693509751100128905758935043932022131874757428684803065315068903196184743026875598384270224363176581644908162631665067213136859783253047304638413066630265485438171053171333993272158806330179578986923686460782017860816395361919696962445838386761776526731986877417562054923018932454101162309278376200494277369699748630448143260305584624928120013327796758675565153700046428901688083311474230875324280189656912877796052233590755052997572216821420969119309472280758595698513100180823921293098930826559991476647058472976113574305025815850064850639817117803882005461119529676438282996670858726401691033656179528943056512978798728198339158814650807513732157523556816438761797550527599120189135605714847425676882022259808468080174573934395892553565606458077683718358490403795156032179038360863778078293705924032669516355307374189240303724264026030121031354600622004410078790875079866329485654293800941801008871922045685928881736459460206165352283637967083315495792051080805458638532184499701530022601226650747115554235051841606842587439791927164062809124244541871680817441400033547821906407821695553434803142254551693186531152395313280573730856179004196716190241617686063064922289457315629482750754143184148015160537228633143242158535839363695234334797594084069900101038898060714208459375223121705049458065853487352482541998682026964341437805604048160832562610637495639283184180292848799187865906857725551120300881695844994667532168060104949731312964130098666438955837297814960000880239835459784895953332490851682322675540605262293242081983026399296187322761649121121610313962578686619111101852262238767188266426264471258123173043129607261407039165101841251030910782386273865676914047168604420085891918172229111713046137023039648839256355273845583123642179402096010130483782232505618063916412182275822841907293803334924893511202659236766885865797327168765463237199941242668339256610154313162945419185649436637908277141789649554985032657478164072344624842199231728407543250759227038579195987126763874450934804786932855973575805664945443421249822461618747629565427037867694943741112872157363581318292753686004806265880440001660288376888119423374724165432832137460899627107288752212441443852124294100538890026202438183765499092886954735167637331510937330200828182158003239134320083880639202284027344808447206236613064978768058929209662412918417446557840250074127986708116386189980769168431728222048922200377548826645859412620192411323341392934396342376526274945197586740200832895472634368765746062695637330112141719385568750657073002435908268413970774371129299500458747887505166153461684384632969782516273080117562981305932350574023105002685540263579617042541576781983297083294602529044176537125213507994873577337827393615362782521077761132555208711902179679470314583851466919432313575925819977138840078299387180170162647720062030777081516214559940702882842191240796538822785220872420882415926042842069999631800866908488253892351084292891174248810480218113042907894517572422105119598662946085184320438620107036041563094978173019217833297937000443371861950929127264354647637657695897312635079169670400580020486423377359427370071725297428255507503154024282985416615403054359887984043290993199016885739203633905080261150302434429695587351486982040966626113990865316600307056575876536352000241966197205612187622615963861704627949138920676080623098367751533974221357073741367881430914588578534798772303203265682879189099317101618313043229431223805611863577123266724845813636020560031914797904897775802893487106240713389614985004936115729576869283547915456395052492737926894480124380478934657368587060469559832401689283351294824819124367886297031287497583602902388516832347572382242891765118587196015452159912900883364197660278312772727791389285821196083119062431099744167967187199913292356718493445950397336746726795512791484517011325520545824119938574159350204967652641316177428257884691694564199382600497884969270063817918198230554575792966405128183239000827883017832219286848121863201525116114696387378740067132281273827516578765520351146516162125892115879394342092849699060668013988858985852462885336991622910938494424081569014631075072851634773289517235101681652530624142153226087439842650598065629826271693146064022781013989419068684100667666927702474739875363299541384834971865622801864907725794805638631283434042918133983749584225502973146162187214126319168943036552626950394440727252660665719487649933098229267472777858055817646064941917840195024863946957461882409740795965481673020817368723787827470730935750594736432852592042637765674339263771669236502894898616316188699452225982682196965915463000343910585356509717372665448529805537508120080857115457604504551700791854813397391337307915500977276192450460360967233944725537143999336596395463707674053586377344385127190488246262085830546407110250764588418830069264203346126868911969482457173087480018849328801496167688996647133992928254195247037971005621563776716079816711232510946776389261131985576057064722382944992931992143035451357055515016858018481733924163245701162662989791212464827616083675727755536396148094088291636403345266899708746315291654799802446814597023007437364289203147079775808187233514745329825214639512894227566753426852752672644114419562384362521334972894372571530359650984624369328114538506470485292618080786352120005971206391596613354022691962350576171127382667132436589950463153566698643409104895186251097423842408211372163915503357738263713750922747898945696866792794714815683776481194264403289327554279699431714290672933325740640749591317378695068047248192219035344612045960968468250356003187999859119741249318960858764229226109189271040320430580629636856780243242837334729285688182428430828411916113809331922243982075918690543905381508299620627647802098043373086702944291780412326975849962898946488519091887752761061070201512742585937083599312449540937266744370938272090216115847981222166744962408816348427051016988794475956836144514091018552452673020545406694932552997811912636194172263593283949945819872623204227323159593166577509855613468044988399086729677638000771812137238901782506099212446556773741961957056472982031231923639061535406614510136897411240067594710573129245608080033781535477565127446549062992578110021119269563924417759308985366853545708325964683565266025699867441409519985926966163958324923884173313427700107563110265841758928102389714245136633103873321025635671318083432191994383109536056934262796391297472682968910265634739010466704471720663925955432033278513899578064113393537898853219177236315526055469588086620383216844644681712361773068905254082115897759151051883548754233121846966091125088177940661145441625774997084482527787686312610754897919568095275797651300594175209871305178033015574573732213792275620118823402554539620658574309346975490317884520790967664240896585287502017718236398320820187684867799814223723792663498570746966777588755881386423290291526801654081345628064996720880279521790508006841580194866928100137457478035143984883063336637037775375486581430958650680333988525773604139343457819708777252009814829573336543450875051184943418298373787363550019303897360187778728405561117484826900178172126466763190118741831831057103723148165387437545157665247545622474513109188388662174636956099823840857545516125350088718906854154944942192852865217300932563509663409182041669941076055946832703216358907040580482807794977793080885377071627694092264899162881311320156146806004139964994020499586377592764025731980630892151057846942361370652125165847018778263845995331658877069016538023949241395403830132708430490603430745957375517430630334310389593106050282750570092368186899681467578495194422398388905220972609031932972413276307326412287905810722324585075568949038103133653219809331331596148787969267955263004310088979026631139083347651640204007415141209744146783426827952605123600540536864241678333957816572230047992811511273684535369451476235044628482772032438468211344922047555008512346785490320604126452597678818864000412822970329800036839769320158090332609442159968088157445815191354750611684361199981625499847955444129612379977394231686518495387695267643897210317517024882860259357528284336147829949026853239812609281947674669794357679502745153487911973372855723593581913551283313121571740770229841313405837117600092690225830641489673304992530734105940100179351870098031903879593843759728724180381097612540480161145442735472982696047086566448459322743574708373917018667979475483507603202377221784443220702372447566577918985043611422224286679982402981759274603746314937074936234576583899389590067530316827327187818259897103656521320956592488619425454170369688758314309255546200118869954098274087662007670495643376900158106871604741433025330265531296647215657148248950786261075425582813700124652033897778212289643803137819946415214844063496056445233033361772232530321428900729829185930785701260934641625871719540257838066835793748276095070448011333946827583932601711476047751609265256092276614583763219169415543000270397074761726133255610618003940746477228585211027522229654957556441339384011665616484113617782949547593781821371729013386524562304041514405384189488529298168683023887170080494175763430002488169283708973313172864987411332746285391391561819887405613104521629087619449141279389903506634478001178822561079893679479950417573063913260230088668765063051942492443445641601685189964593782070594932686963561584672290390735849145287592955604710945956552183419496675574334914559368586765186341329548086373355632087332934700771003842074749825692783602911942433008803061591623135068056838801913720330437390238295722544425094741515488128041572947616158179422864956372527308263572777778190727372859665057775000698388079514969499309201463086618134123543877733915544307324579183176919775105902199024478125969852795971472291178469757924147902319167936643345208454373274793777465713151868014861680539852490737913793705328917873915550774042999697552053174458159098862280541166535230813790165589684822317379606688562837407765217652941293733014407165640173148596820663076953631221930562731512063404910405512279754984480273541070957719970861320086496144362880889648794144399911909442034766178600031512315523101477675098380063938698179680110517378505162375459722476345876875563956000214015288505113452870974602158882743396055045044217034710476686021391790026802259582456009718926073906670905945476211277684856157096218919967656216625985188372412657802411690810833352172017789279134196233358108461743640761123282673005817622838172254006200616830918257674965378623111123388875592107076346551378838905391010131234663387841908425967139659827893222110541239090743086617975738792471271391191083097714449540786481429290163169106243760134184955690941605005700867524574049087871237595333288973157350449636155437329337957165010958169765631390009676679780004462998592898950877206086155786354937413528087813969412809936832363324774040095188408822720713981513019447418499792460321991419647600530954221487592841349126607546867874959102448369294809001723369340533503563037347393093275443337433439968456138341457791154892259169268752700788682762938448710827656145076706761007376240535298882877669059995730246631407835666966872432656734922941740575484805371792042574575549023529997809542297985594835187124025482138263139350394008596901324680599410673657043896439951899557075676678111579160988293606702617486639188598806028897175486910745959914162978874006583295872574163656992058319797350474308690996091037308636273834832966331281556591968898973869971505423651173480240001840554510952384034459697066013718052949364263253125123656762925636075792809242728845703441688698244783006600035125052271881108966583105289561816316733070355092852447438325017973676096905054640741883573704853518724165437536179528366541010424963873873096094082438134091389583784540818103983322022431664297317805813876395145049704358456104709930933882244138670648214167586945642028580628197065042904219216370257832018435913517943849004676837987969485070496770241961656733798661272091587676285473257494438577036919180370377449596823814274008543678240131692578264433960372199883106787073021512187349931710129279751751775409057581190046103280950260530190974854833733136572643312883979149360378975558243842747206986189581449133207192123106397083241343548686825308613017376633007045654555110011257265796065675761470869029295637208883652543653089683900965583102812860595532294904546296057762226872033564062365137527117075058069863563688265434608135529392222254200197490231518358780145096671118469407746175452516968671025233990151664843954397188023529127499839831158386168380466658920172724493050156964431217403709955460653218732013056277118188135756975242578439028224375203041156078189843147087274052574048133335874059993174520941560715674752356176825889166394228823987969494740507524099416496523975118334057716983540159666984611435231272591414851923354401423105626806162119642257651539475162951923030345139386269204139618509371215401563733735779728694902453106679789253188335493878614305090680537101502380535498027173966495021485585088177068840915114884299865588625938380699482476105973644072946711323139515720824027791980749787509883584634460124122834599756586326103030579798972750701153642988581965219997825113238191459616118330754439039068047853980276692266494587287631356858017788523083979598063924759170584537857876420087550121278836435591177721610371961312661361512153499848368918676730669753111606655481015557194449216169173161203826384644519388422594310446669469053061140614178125616246037891871933916588613047612755567838255986467571438690691242969389542529672266858232024455439785690026643680811487953454704937258528140171475431233771226753919170669216902029164071628178690959283561223092283198761160885970994945629322501444752939128618135459790126186226375734214197948050837091730378780197819232449692107010995565675090134110113700884403388370832779537042934963838808008808501045166186829934526704924094919460841047265339385229928994057222264984102115942209072576534429377986518255454255385121891527710152265951240214758288309288116318690283018941282285333241468882649448934459100442741361776125747624294947291546052467861566759982605072059513013674377068415882285214126231507420536641375285118036082759188543124264843842380082411971972030493261810648516076855840558536648875058769189950323715755211407282882517320013120946643027395446374067291406207277323958416826889837559023899748535537868296467147911599000345026006398909018052016189273204058263826399630808441932500323377698689811994849734692541680298639357650493364825049058648985704720037283065845794529239844241888370452713516387158491765040704284586401120544141694047496747026695416697639916178374441472769473014230355035360316653364460228006743589299551601747796963905167384191145724235294272756949819192169872858880480258446048497637819568587924814186989220117987981012495397020947305029879255435761826604897955820113137484094865527422095746413747168455585597695296348998219133909268820395336593616469296534426326821943662588459085338646562404114386407391008315757478977667371206233797882670760293853318518831544555212705286193906553276338273211778186366573079514921637952032420652523176579968019332767594505345128581907671814933106101274450251155254314079057900051212391758837798500803187693947211550724460820250358611489245789090619610130350602022671537772055540311153680036999430816700887703174742308975097945751938761548306471792215511172777436411339710912592265356137378009303368234496958936236040205880714583804128981146859395515850107208741999053382068720569200775542897937768863718021894934342474584694247259355288109989645360476252822835000477252727161924511458347784054946926618154992410508805584489986607535637054601483202758263020697085170676965346615679344317950203517978894968032997646853715505004763727973308146421668274428810650009707745023314931813440533304487780916492595064683440044426589474023657813590046250529680536045375668412610597037048013294674814101107580375182126519442069893074315907231024894650767919557553315557265482274664825152052653730335016693946730799459227193725594693682393664166849819757073421272120503832442239518924132361549695921518351028760710754793914838335235602590044578136736032328818441112993789308144699788532320584805989147481644280578733612592914744636321285391984606567799449330224869797081780745938241179662792811354333189942912383282738366302687231407283067903590705774231913033629898370402973796292819655128019995876027846025312818958537741454684737831201114588016993073530369783178427483364944477451161350024307994790618177006270435828044719215341102250130279268367756300365972962198004282940908930716842143340027515943054514834644770547766815754582923771969500915093678068401975915552869675962959775786773407610751942240045736474880769495699306466100577426306840838134963744138233547239106090761418047539742966080735855503315238272892579034473573807277917481945056219302073015165346312651688320955239366291562269862489773613319170799434389497098950386743256895336090465111942629387797337434120865462155419559297629114686109376814702038123797111139584289981602418026688390835593629430931899703638798227064537280550440627286802931971398744261630056868539088012784025903881872290122182666550146899022255280844023720266084792525311689481345860371072743794144489232069573874495689097647544990546114814238100964447770282335378107387098733357251466931552040985441410001672919682247498990267697626285607435722071434213401268143328602163827782055346226490699513194687941035574706056410363622803297873234516799511753989303459052153428696219117900219872998600193205458441206498532690777761123183144867402913741080792089302142368960469179834848081096374366402615176274509306252067203777477173565532762390096652896952808757038500294699475825554533844072896961723231372290427587747296044676195092385291916217488618453829123678331746480638235275387483649569583343799606470858364568443722445887019065304394135538684913317082391800470357043206443316733960385048423126514349116781773275331353409807682126593100154567518795573496833532323235675376811100678652704932676975141033381974322412317841722252918316991099381601573095046371210404696248688016570603834775369855361115428313508114049714801469923091450585252013625344475693292699455628619514524077325065833040181812893463837771650404739483886376423102689145016674386321247379941354266439225402015953440460698223385102644879695121188686516252200864130228437655857389847728722087468032238233070443176959739891484950565792154577546805301235748108986956400364596350253741100849502143617434738104248838454077812509330725370666574683966990664291801791686597394583400358538087200588451903563023140015977881209094389607068859397895014968534954307604531237475614787648683862042155227850916941323481787816070092317552183993712507256769328726630925731682059948767550981200458436448484137039559533320060539038694491767910537881253593557104476860215929971837887623327019226871948609857316199298391928379967768418900426686682787930352949710051758121547733670204995424000224783459299466856110695303990239660280240236390157390305726350984869257406328264992024524363775095285388889145901428678209807406654238663817911264368722941434716749584897027026156769953745217827467392277362199066712108840842019955162124493050707456569787232076805387258931990853153838765222401497621299635472393429314580508815290376217987275247930600451412562599063311646786346253857179141785749514653849319677147457441528066331694080378826073690344717614571349472550622812882558026249812702471704901935017672761135677351743786151272854390336326299703038989792439504163221994825468173801914740941837602828424771256733044458694521686794630454397724212777258584465531491540318735241733963415811829117805717255005972221510393858360002772485499456602192193436640921782019357159275241827207576880440671779711135436735939705610086981668193162926927917222544330583642817694259635467907826582655526949268858445372388705442993755558493032260501553449202869123776458863457052832105455359840189332384879118472845471789443350241318472495263918748739171991635336245180264953900390143967874464262370688341917826136199382613906620476322220462778773973767165595128831926815962385093856111242106914538916123562204974084429999415406684073416267907428752571752422942779903693114180770145305730649074089335031745186633533949037985512472076533832556563501106144823687325161388496408695471037922165076375115916810459668450796690872051190890313278796753191865403344250494796132170991904309489655572927903641656096368762605745637503863854644888597423089610741624168983716792051801252653882450308206414316958316421387966671949233490040791930733857005798369548288191492632524066008887328094163504996626097523251809466827634030935590162671570997481924653119790300938844644267195812499072202795673245492163157224837062380674560649112883289364516604636363405034428194875300289231462824336781301790740944533003268853225229045924958621570696106482885654395329684317443963945075083483598291677726693613385770689105968893458411437024479630610492240457619141752967209577580823138008163735406421283278878998949750866550398486172861454963333058022566680469860710703143562276242420077155315019672051518302997249416330086297541238636900327359319231619181072197819791428781555828934431032835549196893377310770683007528652796100078095578112377499556974687183391364034112098019038221752719326397372741894351253487916748470346583336059403423719497413115731618787881310227866046944814962732693016326679766661524580972335134026728300019147747892696051950548686974682932623253591624563463967025131773344551017112014744240345768440191467866034940096763390028533624429640376336661373268686990136978051232636255902548455505881449248769784013349489275842295722638825964820675263272276517981019483334476613466452037362659747323972058822129066230286776830372121107505286004751162622484112982450248979545908535768365370632725701864927218233186642196720502483302254880973309490784626517698773094896033196154800324950039263139556524569246693776594277934334629764425530923289826876512163574895392125208660611598429836769282178465742259345798931494058510813607270782516592264925238324799030267552561530805333720148576994116965723321671574192571690159347987041889210400316727612806862840111858211386244596281055276950769502516979750591192767076417878706929933174085033929296793203931620223392184753550843608692503179449590577871707999367052140807173210812155327035856372869481644557175626696510078719728940221039904938768140070169784713499414664557608504270840523842276009758754953325856186996149726444853062606554513362556155002435838728336389935330608505209037201357848691494392969732568420991837437882560233303179713031277836637084726062328244696952762070085750935501974661358266031177350647444373852539608341793213801214338313248266735947990078374912034691545024825290583295965981245113366212605037544163468914501453263930107369838247900437016483803703986211686113173924636517504084220581055773940131249376349270103961684316486699300728740421038427551060662348482843486017758672081540622334668519221557974071542824174609657148486534744240703556056027072375777449599625129728916022367270147410747218288067968298220991271179843622271083486064033050421418410876571785128634865121199165112056621285429630090559927004743006095921765787450886575444068104402230430111717657333210500979877307369346840111386607126563880080055600704384430480385035927324723091851811093470169030130357044815975641918883746292508470189020104671852966002795290560368717444955987025519829707033414884153441671339446974688213287639094276600446050258563831099176342876076179201788647781250121046167797584146396169572180726524587379871274477817276946468058557712706536128360552205971581635417265235220747373087839960255400936214732886488989621182291655632217150799024594083956259649261962208795423623765001288346991186396997370168351856139095228414246298280582416581700262978437986813240451666312728108251997002653364719676323218652988911204407701961015626748493528540070145811855278110917949536077525116328054324038960533726538697102695039554520587216257460211809311157105508173416176185528084723188132489793988660196316730702000825005220638467871928787386646161962449768667540768270298687465880266744735309886587832117848484601701235344278439188665470944955819305228686450180540275452346131112711578914848070598767901610921931000322711323412291058207594841124787885828483907924866716676585734398692768136859906354447422923775961274777188054323591747181466414092728243018897865196942511128615882966440890249306607333710648394750483906494988114073638779044821702233381470854328555027063033993115984077999504717607858975354561874645008466860510561558014112511766297221929521721251806439652352945225598977779619588247895008976747014164509418901293177145996512435195270200075146667689892790957160031077528300944955247024239874340238858532104761484744625977042407889728984589410662425374512335961946539291526960852895092254922420398444148674298184666679081156989126268910955309559380633132406947135224236593045777481446723490009222347710096871874911252390221165372820597799419132948904627081989004262898322624851539954145290034436875953742017465574455387635874042120241484601209900798011816117428348031336898015209635855315717634069212646873309555566543525840289785371752743685883544659186738738085092158261224851147245879666416305031387937004440897625822053616089444529016908288811502159727003786751115695339936207956040376379479983971573329371872715366453891352181478411660838221780577222169080781258490069930829765831535797606907901000682524060348346530848409891110042014481754521062534118050126073800863047216943253607902713565628098345994856712761431551450978782482486509210325439891324009776213276604237887432435251829478346657894819277112733386687619092040233486480806913088092388103440535742279902019319692606657841929058759445194084396238225728718809907815091727183519969526501258404114081172525220638297624764849246084771692709492951044689350600497539255175871704375788360868789875226838105626395471085099782121496540349155725624499871449725907910453006494390390108845256827895960515797586926441068967470265553227037628687622023783459797951819479362338770646353025684385168274019672906951741381621098062687722066791013120627538623742797880628573820608600608335464012605893227806634593493087215797729457993329063173253400633830198095373321791979273515768660179679121303787154116616679359417582402032517156775755683237513602985292650165838759180309426788617050320924156789181592808478780411513244144902476142775716278291253556910076039249377852608316815993114158829161304183930981474880663806728782888847198730635761180020683132215500259215457112076464265608868603478137052901877077933562406242540794957610493347620154555095937768230460319267733166463393993875035651096844080814778328413209998699962267455296485635786366049795757742690119233444459381622595533730299860239340050467055670805263281241176727433123649426285795478944827839726268217108272233812298083664289056577508041009835215833487565816677770342317933963521079522234248861377577647908143946296779998508231805759150214044294667119824870076748694426371503540335342137193796878830769475525472109971707338919471893134425635629052908488720485902758977651359555800295266531852557888807097978781867606659101609066386021030663839339286695553662106689921294623704149453831116508814559290754090339394195512654322392769166145680289135755057299393848668098847898162922883292689778815545386941476327386047498439300201944276567030175129212584768249954853587236027203692707914255685650158468537520407370787351743947088685594939032756279888863558253963862308611777786489896275328073481989600704827399940465718368100365591190879747182852480120316025513361808807748006833279808527050213440358783433517630141106585173753157089793673841428512808926878251086321996054937438108276220240640502706823812994507323122085701807107362718387582803395331021637424068888791085292694370662547300860044437056641932241282899552795834266831166353811415737651259795377358405387254320541024944795480152481923868934314970623821176076928239001230699316204162865812909046334313291310672017030249141778893752704485367633480876323484259731145891547618090262323012430507388057245159238969767403633230432677896144238548025393325160538046929421891516288689886739809143211691601521541751470504440337657237415122445081923162588443482471531012466007838329754666037758784048482540151772908540851693740745766421645469153599501144292165207214395865879803308820521178644497417409021428377313632544420192845077231625388009972179890801575503365030315167145825205564659164541816018770085737547110910900004717336360207682041827151378721525324388396541484762093302023018158273841379010410849765261034045862826323549303303772367223658371731553454830150645998668704555942665490372120376575841512946529002894745664729402345988236475929158335526842536473610738368337938731350882047155674099935828638043723119528397246486628333954577355629134735797170419686088502467236831636084720953109466309196183350273557809017743123678914942102239631092301798026123230294621067488475471764664517552190339764954108538892391928191340979801920834685845356034258422002249867524769166766901981064022053507558351907555713894782949173331538305070747501773002148943649610370326339091057389822048789574115313851502692528331048192331732719896432715755403481809267183419948951877172768282144009522962354364825787307130791926979137119833071762676346534091801042604565658933901789395062103514903082396646864930881058972885798148845593033702520651025976980592127089304578745942182844161221803482704944783518291212816686784539272985826982775071257701792726198629962145736040485326585372025594408589458612543967283741223353367788024502524234658654446288857868170173626478401819300316348250209092682377014094049182993196333262720710163238750550624214135410471759482764157830599509926220441978310570787515243192621730979728241330510279140180740112615808548451404970986711018879431493144779773814459848999974389226158583122572490734551504183068506168473672691936766636311183945452889910678978741185415456083321634857614476186931574341556678195371915238731346411793987495234971666326106228732699306056833747450719932786124271201417348952948473228628132949848371170090152399048685893920246210682613104372328160332662974671515519073432306183396472567491185094601862731528878401105558684157597176507546863515277337978631966503574283605760121772158627492940432507456247610617584879293740231861099781894821641692825398006667139976325306056428637911928191416760493283259443884451601807916984354380969997354336699655113783188548298751411857146972184657083772642745654259859552457264149482017054913475486682383569527239459358205577109642507042478326947780633220566427604430085314631062438864539974583950048905592111065298285731653774529680357633164069404084727364159305282962390303029549957070423927565587958553422735559791477387049576063824753752322414098957017959675749938214743869515036370917852531767003145718413703001129132356380430525915833586034416815106977262294940343597555759063585941772801805034438000253184263578874204256440460631234272385210313241353820512264001546477013120736245357611443286618012034489722743231882145763065609923547708670438870728409119582640030523608971772792133334949087294562631185016803126983060487560131342662181444878231900747563852213803815560206524970630826624284920319492222647249759578671158926571919121844434567174618156032585914712477997550317784390501567560570633906173023184061519733624908950597205719726226583171512924199112720940138806241841297750908581303122273370207409907487777992637565504787999535631994021891351785980955533532282167926787949511393436981223924396473381728534237160726002612097128019965098168188954442596085632290654576088809648996677745088300699336740819704468792759081135826187728872107931480604518675258942852343604804003316749787427609028048078640423381179459907777177060652436701672101339709121233966259880102564436404937863581865614002021429589326463297038981556564687321507066610191626157655809107278867717121024723349854362399961877515745868558225287742539750756723696661013266580008805619566724118553447093497030497926385221988091747190090305604153139101573884460722306822859200329759721240183083049751918486575690338997509313505483040187964237763343590175491922539011778171592025085981587411923372450326534861824103379167458874903882693980063636372820915922604809332515379754019241822335227636843577910376252021098651230914115521620127352352581491448565420300302594464850656302114610770488372930946325668184259466412685211365245222593431069260855817580264749724909144264539517281780470893634195514795659203774942639527105608983791550761409282120923762695492973490487591403716797351344446636142299785803896522793815504011004310966128591009346544197243301308298037493576025299966677903325926168700140715615549393908209982402927157478022891158759666040405741345222241045233005372802343138659788282640422113183249928313939111220072996331145835973646434121873677210404408504050897617922074071640038372240570536323507357631280213829610599459305213206509888239237031321823637983049819081280848779538362356927519706320058839155807047413201225964912872648910663946819858575959535360049386735776473212076243169058173516457459864268630598678193010330678343780657828764600581130803292361355200661677099493671796452446856625475702072336103538409614626661413950354880258486440033771601228537087320709625956013459230484935590161126633999420217671391642468034471682575070036536664799832042338665831567942478324820131465222551317968207932954695872487288401020812253706789624637152276021825192739830319392004870840096551265243204512018324213732052960302223679166406916860206161998319221219305196461947586822192109966365767643465715871104243460448386567633796116285287041675421925919273346049713224221733735267054331039103526732077234814414842000477346002042497738762571572292514165413804872577994823524597678463439856141898175182276997705128647875054079402873311033194837170521480192716337605160821033595519278724432477494678191269598308111619329158780853775922886789023265393611809869572547219368381290876355681304106808193211777766544026617932061101035152245290012963868052976411153231510387756194409140740966418741030746685771345159484999563529083214621802015904372134590161566801911312165414059989593540200373667876461818213682717263935432249122973167611761894328879557470305728420272573294546523831247912524019102093456955429671047624800308866582423867980968576645670714302760917454300647306126227814408823913328715328971311952762588210309945983240250637212232593721002031048491765310768172401822483369376269235511069992371096881195031203574855822927993192597462942769777173471258339170825533087842728080316306867367842701222339321945496949584645238502717026275817241093449392800023225914398736908091240047068971680417812864908688696560189536580880970810053441587067214723403421811388290488199458718159179086998038296406443507381699055792678973573236443947049772215294453710559038614564110211948926918242270983727522909012780185065953733421711028653000127439069365647875830457371163370375059076832656871597001708643647549215822933078137886257354056697656209740796578188493230199548466391740077358049235875952994421151361678948841679711553676688496407753831360866849659146859732554952271829100092967608377757006541881740622981563971583010506861455894170392110344689964032261593070359919033678096630207299871759971438936780652446290845547898878853052326354937147484822282579318678484254301736746994401322112195104930223697132810287096202489191108849679534574443840087637428276006300214735144253493869510668390456690876692978721290532893516298831217850042165750600429830065988206718306062059060287093868998187115578698952932468455181749678843411938536498241343291164520352743879199818719271065324486477287814229725101758490649784708947850638361733333974271196032443414029076838359054164380271601915730826570231005698257209893965030070634344532449815447813942043538191994381165439704121980269206585012617361341223569920520974420590973274451211135334235658776276813573490713985577959521425227117634548893303779943184614892566804110733672787101358379041458987798929430630416161030754493992006032734949741888891999556933772706407338372408460434946150747030419318653528049721808604066869979149575588417877735402228278201446522133990373300217659661005252342261988016078557397012264454067678102565677556096124855072070023403906768007280982571621559846641378312402418990713989183448749721738983837799663097540174214012482097778642862099397257976481355443740453192705142215186987845351641171927127608155022964975041952855106669335437808290843021295548287209425924652821701077741400936625562998389819808329309765289776093877808323458218837258602897072864694311601900063385518151985401470889096145528136535838392479095912537006640378723306135955275391906208995778492164724421722330979116855414241129141089294931430368063211659415587092312853560963079131430529258387639287858023052715772479206147681268019536541416612113313116684678100825085727637390212680412882758788625746528608115349772903145902499136041665098424992336987806663150507355401108641998861413016767357075809560237346107592663708006582204977667468493174113139234353121863816533960550588349305133550863488269282565856830473454726103254287429086690152444118615747907000833663984944430943612454023491975279749432106324698977320207870350600486471175176010199933884706832463546412470169952742154041385530751790730063076677222210263441800689699022031297424731857281015148586770646048275934174748611830108425782647243494893472488075820035847534568689326628246430570299136920514105729307136137846250933422806672676947699917536029223957924236477242662029220814896469714774495042333840267373880611201435349813077635533425194294794819170528518611155269364024719828258796879530887163463832715451996980159982411581169570046319918975959607355882099746816203919070834159081102346322842421910995714885973163928311537012796543622945092469313872714632600010148213544906129717716708238997600362212913981713497404738107247502418980428176360760808141236122371631042758057713338121009919407822858175485768061584842102681954197545241025514003990527319120062710596980961077713832325281463382589050024296671341929833652857136579984573400075845211486093228740034676913732692902684806863168172744853474548395957244074093870971177674126840673052529345277776233563961990323287505862630316117519801448046305265435360714411781186597442113843396129426513170086048659315988623846154839340487285976568210642946117123885578137778534151865969545727054927251849845486212844648667204170633707059447534564443521695928813893870200586525787628512038619770941056677500210996632274145771799208557954147116299561124091768663639838646273042264481697809555520846328306201440629642687985666107381557746317104138214659911500494409359727151503952721776877960707261934360890838206495504048880736261819660928868982446503543532363690389242431459475782322034313452285764434083197058207837860596731704182082180044831004202833523311514258890277785371060723945601976709361169623075526776153088344522578864030779287434387610127579374121297437647100261210207320788271424359873588282072962592963573308265860070902399404352575925676826816610326219062616917460506667611300599542251774861511579149150434399191757709924081905536527338362077940513092232470075586544884402012803314972143373138864115111516371591725758621660468661729914070602344717391283648273983178134737999087408984815807224005993795620847583185314849349189166430431320067756952929916063724551842618086717291112417987682881895346616760331092296979201866743462780828825963226391306089018896539834583369468404182174628670707242093207291934291649143107483650391886207484127472391780264461280329061238850092797076592802613711852824172004765064803594635100637319785953252126517128768291456468137158935278093646261300600157019900585222148022991746862304214496075958072132914081952891150360928420792067821442541840777205920523137600754050260984610055272060918607786996766798754859746333628939605779818560941122266915197519998673961831438839410315179219290297114715055556523201711768097660423185277312640733702593116046602722155359089539003685977424285002096066644480062536292449059202577456810897297001358597958023653064912418244502821892860940612090195438581662308365149133804656073316771254961333048176871839141598138342415171252934969416305829718407617009843122538433881679217099691493390968219078142048013187154302998661137363271032986689278109386253929697856985663456510714130233940975364160952292461271818432005723560771064770870734496998185720375349122596495559579948170455640490684661974958061743416112648517862021236219262460679949582364722905643701566074377140525850093126729049027247226530209544506579746001431650813829670925910784972618356612681962995889324104271143990863793148752958399424864043060628684535391320348448690381642737506534960133619083852111240275425943799355898292201886448193284567770214993609210156530270799932854312222200152357121092728024328993372201847367257238546424334453013736215114151830168086681288835301802493464252714522066997663200679799542904435185245158397813359188588689004501692293591669085271432206806835688544130084065923182518706919563814008304910252608672830264529653089076848885985428544104714472148853908270704363992616641256051320271260267771494210528494113517277504392709541157681326114320552704416500345016084474634172308150012650636431401925419337279477892505173317536249237595771105843710404833274483374935707446087121478466536991717066657399524105063975057260220315198867323370071823527807463752731948056307858212251923864135250614223186644008558632938098393682667460090929979891086173938463142345935872970410894257645114523609529344850829024948532144644240319272617381208115896600989733247487865537573332000144469214069998306951880845874345248188593777272243596773876995290310871891580692256386606365381258589225650852849469020855933016222922718229565402272702677030614046250264020127736119183308471863279059316477185143315562280755806381727164254473742334822088665950347220456572155595119111602626184569331121046908440464567067813560174806647912230252855112618851718332853397412105211896731263162405604909355803235986143163987310607226689488807396485478135672505270638349592136684500773474541854498100112942517252291306582131301326210091581107863957163776345948605280032887426350516889365539524603945603269466624353249649863628771157849650977601562383880147713280665538760843378576484921598141136976453488928280965470008613953756326049333761207495663969042167814342007618111844924747140336181117790320122106806378527830188489180352868801177157473458507146911977060460775606835647714069786117196861532668877469393566038170380234360037796865355259927107850986155553214134723714102098937099902589364754801545882939659236601945004473109721724592565181919001104521238483248749013508210119675397853831327182533634005382448736968344637587743788655996938428069956719173013231119726100323050327090213925146424421602333966399441245047692442876819577252148716223761670310041140754183710277480286167014829330132759743914776606131731049270646947964642388093483867148881409764230186794188690778658828605055704690056783347247604874783275257211372532420126660161503378503183221920977784334153980553042917963570974226537072367258546189209176627701921935121822769232777989885874689729407200473678874823637022267937752586561581676769306214244478425353262785791990889662851597008356674930932663375305619142021179700229600591670281184811453573309345747228236350737754656132426151117752252756362560703126255570972528570763928669102301598852057975151473216815235288592660810555398025822501772379004380523242793592224842446998146045704729535540181145756998543576807815760822850621595187106597075463673381095400939040799095845401878021850385914407451055254130700533178820632239294776032377461258848181840596473836481022632494181910801549253554201601913019989357889150824031256053752901300249121637242135394620844190218445730883232998573614817451237502001165061812815156018858289712042768189674930994499887275255302039522715977335869768461435110131644529354349655660318965242130603666455046317310037409064314874329057381296332188011871769472976710481767221972526639264955736389416423788433704887246376893206555666826251372334847966041338443198387575979758525684062766519432826818557878663939881327055300968186791395972842449297677640610327365316303013337173121262205942466449361903367258419583189003745926491700500593002224734020345332009519659082553312333623097806650448534713773740858201345750259503092248374255022465553599174944772710511185498682075804924052389387655117999647950189086789682583795854838126908505891450991640538422729730181705104111445486211557136550299598915857729150210623288145167297974225645427074859028804489544382767949495722818497750905976803171098132469924427174960207612853519761667066867745713772133926638274946130592621174785729195086203460063779027484149074593773274491766545583892372707716221576408393654804514370445427289293342032025178238110102243827648976855013249469776875176243566509449771781674551044853207187492468926314412841826550139191686245601475161365329233096490923103078442399057736449486050590654046127173494474319417629535019342180230880212885843784435633109447160748406562089917322782105676622731706429128314157255300918800383010092296704820052611768412511983922387012774385654201566632489586383301960666685484160872847429039871780624829301371907785639979943788813447980914536495425607706640147483584623176753710442763867399944699851995288518930925142803871778471301910507562391415904677767124584088638656630579221012424014175408200116831542730022082265623193175018791964539020933545005807828651899193965613645708929082045839978351993411357409636555842783194483351696576896200118348044359408992960941557557552006264191133994512246112755633756656301928212025748916993551131791184444177633979389164978533177357919777164341062580750984052804627837100379410579463505597837194247268515532058425149143762969372161732961221326787426282065816702525934331723966998466931605159182730112822252001328428376554779147716239088844025580416259945866148669019030605088122563102392022250800420231256193953417155098782114391642172940103521755944838924997941879230350120288764538777489429424941314339613512569540647611836091663857557805490756537821919225447186272116213082322004121612241520071881103893052227343967558455040074724812781375527985055927709687860986524582556177494866716032957833799326161681949206964981151948932332180912719258013125224768159882117873008203368334310132061824110759957346674921148699303035011982111688224299202304391513013626964491448097673425952507701156268710035779963395953890349593258718937844003396577263613213178030860851222067581895527250381852038972292599048578927340377658536277393466268543036819542742614234431379692038492442152162429421805161151884393274575304477787343128413923570805539731204755723398263211740511588851211983805690806291315284363206550787910531675857918360215732684276698081907824168255699665896886688428530042479815279857265536030453244553140831907910350705816231670169895831677182912845341405749309564416642945219526564192910615937303050185516015133065123023924420465652590673923202955094056993588101558606991382950491132913568789054764389696264442820389394683177650498338830669903038799521633732784189249153048133109410196018093210261688173111737483992873748378935238624211896589191934799359687968284193056963587771435184234420495921927914295466838366609699728070840357632451233811584040232533099243805828799908406030153750937710590945905918533183729810139863725127361003938313371022654960822848881871741242018256383648039305702312338322879230498739355089728721646105205870716574842447894178931083838389124933317396333083420884868921286489332421166655509892144572505100928911131133966013188109120984886141348167278742669216915439160422999031591127123103750155584504897467339300437797803451702348762657324929930231290996770851847927476347555296880011351112385588724076210602829971834821280161151265836762745625028723766554238821580014913780168591203167004387219756750494039087420154595857006887529602797407856686533844584946891055780966351612961870795867109896823068509016663341787619202377456984626406016345248031718017439626754486088500427939763207514389009347091092197153526498795574417113830448908492057459071404181375136265775191657671320834468432752122510390107180524857394257489270434840989920039848132640327743074632542769030864735037084658392354184500897484585439586200440056121106262120178036007002098456290959390889577617917916438199312820903117006707005835919087420647917378541753713446819525275858427540052513635644259721352766559373176357699666081818116833757515163072283729339593383689168163846019611165118854150539932317165460465151680479145446801435950782134280777976907123076296779362109325058302300699496715507632322903301172760931526947118624273034986101659385358758703879684331259467185914309807917997488527203442057578195755341240387380096086505853304435307783797030265233404078329115176626629463287440193070985758747654416739504601262005056711497513952646755288162898048547654154488747430173061335166140678832338984260692051324373005700030358006335313723447173332034241257247278713737950719290826358205059385813661805456903973143616913633741267936272640597423685086399317809491275707160211773458075610820398808231909849661435923480658030489893036723874663951415366205321028771865251105794142608406344249439961912587144455069014182046404544822264619523418519953505855915653656174880335890802420292311945546202519041190936077767444458290743648754404888148715940832115254339692691915604349329510493552030385286487382101221224981095246426288124855003312371572722553632699298791814576503622542741787186500134420290856512649740111836495701580747472717406453804259054023468161041510424231414355094310000931912360282285437824232005532024532964888913198828444737768409528637491421614650951876971365023215931082459621645588828437341813451163891394523190524954442059436752099587698619651829630427230183960821692502988925643115516410819168303159684360657778174214225228542757471843156385435385902311994737886713707807648152288524292908391295547977498205784409763584662587876049366515187070903356043167509685911074824342902019863938361265493335736602406064637704814492124361273035766783803845205781923180580510704171562024523087647423599851731404065028297676504336699804004571514434607630009149178767784626503447801181551605559487265370178941505699035720135518370911273525944928558896833322951575300445075610891482536602996060352747090755895465411146844984423605560337193920367158274344139247227310290886334900210072510195043951134855389955519670526401008265347003722830957644883715119258488112738853451712042762285487011215535582378746104200989109809844908152261197333360189728149787329805661636837034119760370350752200313136550375601384884233735385378236871399266142212290277511568058969129774123158300086298714466422443338363367273757422467716986051836467578948311363375527000354180751939770150039634100387526842273993969104523493473415223413253743994605826632476286386987248897248064301586660201734327447431204987348016640020915485117570168716612245364160501516875831748289871655399915009087200890127195607502521299108955802749772176382022008032073511261779567211196707472637607171169986754894454638180641370829487585936385216128816129307385255859848805523048928808841015040234390369453549490284214450638837891378339172803164164591517153659280598166399238185707049223237939587092877244727264330616808693674522449667297914676207644771735007845163953853147036945405555658018474749090412464656742021333266760118576878570388901770602146029542935294640643003010822123008034297605224383163055834674518850594869811515896366002888502973678762387532027221488354519691066929291482608286866486752835265049863919510764527840485841053225267676177883991752957901015937749275939223321500348372772845647794805772391614071795030470344138873470891480754222393718917804242142160236239244370904974584821916205226155937677005116578771967103524649126323145844348904002331129748449318857833327337624011013579649158421464233694727550450740826479627587329477009855758757916761261964155332291380595139999794369606271881430941001959955883445520445062943356678210384307165337838353182067762875418703141053792149248433978601425414633279080166532283913873674031626079779981921671814774600255577751894795910816794841353125261068105361373667810299095449123032222883540839808398430897304320036310041180610545126117185129338552587744843217319261635428241433930642437952074351316797458891264031872763642775447981254361982714858349037331759179172295388543065798558233196746528595673200539778158100994570220931714945069579039630341380063132763520331023390977688195812375938400435199745266965573543444472455307353858055194927615689205978005346252787681191485842383144817786430158988299085678548048332006914660162092511526942406393304129470000219614634432439925583631430866053503491528053351539461158466309785699392952884786300996523058164818773642301414845518044788338620824637128544478867836512026250188620180133065417186423277171323093390990815032110436023386680974153698077771801136992169231168988228645069401315426028973933258935319223258045517478449517675654795000646916328923348881344718997726510038762938745145211359643946176987751627852876902849101232993349957269097483723113028534478228414786251049386826804242620608034292679067373401442111284677423964015316526293096252906283428791109642913903846780868884506741160662386103581099562316268461772321442694224411862725947848643579899987929285478616461858139446469982966723020432219509114044199746008839246132015354390149503728398783456878650372155298254058527860595081064534424152699500716996390212188831477481189217332606610745161654508316150637146339372753711860635234291939695569439097028602532928476955144058998083102768443195435625560381678129511322720690852533927996015693253585379760731512306805466216180923515964004558964035391916392069053257687518825657818162141819136520925236583717581769303062354371315548259499013278333337863971070402981789332544152094979712205624495678865277523916831664640333664402348837145053417634321066840682130030548104181441126141839421161776718149259984886226261054592173284541764918969272525729214608568172499933939294497954530898030006256661791148671422583938203425496783377322194369677773038017412985286494468458293389158424757377944282652507754769260103782344022224974463921325318009533043589055152438881800992826359149861960903320111965116192819190730074918778599911004189723368806590623484588199725335402076229073928073562619036171104940133979997688899726431090591821817653097619496774229998471004902320973849860738267259732793410667763658029522936604087866529854139574338679224137188641309386794182921195165248510984912324562570957642236101591559470339982650341357103971091031449601988339164033310091136380439336776109129244166164987497156464260671611387991056993491534547416359247623613957774012024554132657363279160193466938457266216397670863618839373414516268628220780336753050588974931926059892234569052201453368908139224013301036063129603787120351140296015892378730516570353856136825308496431538639601870569998813858936615753398049837716453611556245385912001549678530307502550976044646521380267051026122404540347394394896452773801362364527597951022008408163379925646927138285280783772665366556787017685787004938210143579695083970084697720376536939199453158385922706410984337752964960330012595069976597790218204022668337039678120814234132970393722039466874478880341843891066619435324623073799530684115938460184121918255635533464749742888021957526387473875329643204520503851166563620550504568667431961311053660893404100527580472121327753785136653317139219873306233053465206394270868443509142493672645666369932388792425365188488950681810852321965971124503244740387353882058933859335451228263184895880099288309701034092731232288121457646085852203846902427592568136300962195511000068046344879484855227402060381074113901975582568837420810348072287290801574744649678020979824154429810207206859801160800769276689664317893924083989950795378371968667130284549586216042390435877630113305561928273428174272194604873562569666299287439364026478660250574723310685538934601991259759898236705748381696588531328714488668999765085187826151073914196190759700648521926314848821400863020499923720264850358705043007341365364916365846612024136662032829630005248326079006728786807183378091828588501041556393888680641041333811740509897459211562245552046520027022438561876182711758799713124897309138097887974359198761296893460910165322132298196720304478728586633652196283590435882193714901120814004924536016901763850039154675957835548935507082025735934929008683999868703145648124432929781488232377548337927371010552581187979810635814209116436783265278470400285161363848450955452917321621769103147162521535262797372251702765258778500353211040006848341158617235246578648325673856438759540519664720508576731504810009632573728047846336625395985477115961544055566621384871875666020535571513055057713030035172441891065749996763017018225494713142031778134800038471549375182187556185833874464411182630452557710954191101815102506658701364079689950563374061522804006975432177693993520475898610458523484405782701792247037245743948352311839739785661875765740877946677877624618539973511506871546845509649893824212229384505535943385821656542562123788093726522406808415288070097926616926338614838748311674771877120359752251206428722105401631761117772694043280910465463708375467961444187679908555084916876575530416649202734504779418715718241509279990031219564788595437050526987475637405936269510230162277414651480176117527783620713242431575111759240400363203533655165802663771726640365698778233221398024220054090999177335684168677249692348436110416629926408972568173582239908464309656109360106269298263594810610141708633981373812970370851522077374319336199100128742152437477421508312703427317439547408523447541660766267214346031979855087071302597010341710143696749661617485518602610113011856730591229669849620468895857427749913859336927066684496038129825558239097696063624625298974787285923326198679178917505269607196246727955441573004855709724577922528070833315112891462075310961968574689807423672023792747550083285735065014254578499975269482435736070849067265395302952080434211894408350213096477441639835586973910567332210810767259389738422734334843060063140008798171416001968948603054131004089292183565871291711734911215051812510886289022084210634103564271835288469564552474173212791703395210668231432719851257052115628448655378553802678924586637652831948956394868757550104109815067579068371205888267757203932904100074970622173520701314362978889553164454785954394326298268315490360126693315013860393010797700634703505499455068408784551744337796329866521751736623972237468970333066840293333889431737809446707773303401552001836024587502441611992181178623863213856118703358607799021774061006663342974286654843892195143404757068374946879581167691713193183888699845104761813644327423568105174949650811188925687963284007859087134809957878849024721166422404769291522147922907684197380413684841085746074912468459108629791080005506244664242590747881296413882029595001792135140908786711630257760190020122851945817517013962610943041742194838496528558782083204585526749299823765668174925607868890533445951531080290672610535063087651140927613829392848839636426337871706335858359901262885429297102709139895087700939861217624434541283545622568911469069734947921320402592590802387847397359595094082000510026646747565059058900608548400145921029347157862635891464543004900249906989423459607349943794491734893780027267466393096980464726583385539589772881408485532999579503816589771333409560104882205407499177906880931029612356550481338285142115194264769120890213171140081318000878459959198741761611736587182884840232995254795763814958018513692856006057078230864155138714856251781043383577116623896392332126819403498951979550884469097376354521223555125067475487160060938826935484153399090809414879132168702442811406002343744960668392584387730018406349405348871010662785475033284107479376400428389770749880829606842804250396460966073553428910459083328981618086186300159830988133777373279714850843850240427497521283178024913756840142769371474293314583927658428794312175551907424383639695004933613205842809675889308116407395647508032742940346861185813728814139700413178120342755423742139212971790865538617140594667991257714515720122620428356549630110411713796529146076925049922617412135944874198381494539891964780693543401662405080059816801679023447999541673709823916537250470499045528028134015810728134859265991890514655714771484240714910335482313222934563932378388273117709942086342096526482497891748216196205058503905569227820701544852384755296267963812072812188526796079886408473833356278707564400809162075830351587040088834613458205447514858093653286713308107222703851937121769391110545722553442189400738877066986317769983386141486375905933609626786705521300575854523169622984458098412832300175150418728345721350041057893132713395023423799849647597392408304673082204172547057007422267984517119987382905566103148121457541069284650114307386995996521777946879796501077315385633919498247657621503167757355359523658611436554678177430695386540476943637137276649874710828864463889726313061446377858279131940420264899904911656775466287888963843698661847014601135998487632782999990742208294572711292822714591225893709666188517319694767067480274454195204381551594905997521462607084965606269672561913326404668944079593805914025096648426110386443118264803672776537416931698899515838658877680799018558310082770212036604286494129410781243403480279614880532784699474149599964865039286813547866795312815399405548891321652505770221129212711281191814786548303184098277506572954332899337638743386675785028473204166512171489329869364931580614309150540067149739909709498711981884392138250942361997193639955055923464165039146534612234343506917852428921190738307859846765620351734329124960181005773413783854557571605529418193874162905024573343035360307326363093613522320913042804734665217232564051421566051986828409809780114958149205910347166104772360187272452074226391665094185422064945200664460231103077926476948280357396031691943478937401720448963897003377080073476659870709392415165366615306562813451960278186156034925603759220318556279607099553660213339572281686637915580468673769506557753109993987264428483917670838294478023568538668669212283975403689458499693797855628700024797922159421593086017240567347387116196811730230769453315267488214077590370953554086156017556287678312573033484727658784602119808778170539291057834652423014860147914829284594315281680327242493554755560316145540238202686532175137465691618051891181718256681589801306683787532033490297876973917629912816002630451128350226080694011709041471323109588910374756795255115494222741104725665299459509963672082328084841888380777706264153049201138582486137866422900378153891151203013913629368163788690919736174960529402321719787160806706899503426414760880863423498927428830973333124555769789159910661688837700349760983943438901585760805362933624298226176518005087818477552113724239036423794157269504499225298451543786431590732224216492751169757677783917888018762447964541393217399690102325438234962702011186873086748015501527246768617707372898982162932963548623044186453107212870149720825408284952635873379497386681691584633047973451576583902234068391939740007375363925695036497543853373881439110600331869272320679544919733131535433687605109125463184204289041978674001955811695015972364151572947688599996710664287962644002176004917792970555548737832661307446459283774561084139770112247740692320250300431488760589504850535614909318360063713791178342939069781171865687876481150861783272653865195733289390525417662493336502283350272080419145588516986679942981644685372887366186615972187390386693040534071059212276456295130617802532378580264975219454882864621239380013672702081725522501014079285580110751293165569478435658194224961950750921904746935723812480930448766712154829440970205164552740804553911777996668358202464114452493656589926871524527884475801312740703254583803316455362271798995473876609642966324400438988877963296780349282757345329820705429686478977962448231048877799328115770085336811772592718280404986730626561971661469740805776465234394789752155677087998355317184466957187565239486338170602083478807842291445558353740460415217743316889426338974019297873269091845954357882606563817607237606953002141037217049541148443143510509411285726043999936152784757794548404396949939419400469222533091946731889258687695217903158318283106363825668552581245681953818516787167177159607060574965757670215852741072266251518352250439755601784973301187781932323895902052577635525285431095035996903621631115978372851266658780240567913266138140018298514964218720254408707979394411117827173835844177720451432597740620481105948085182134060491453071056230214168720052773695923311450031575907059937789926888997560489903418009182101278694798416544271072487628314234428035530950695780893662597053088283419301864734733583878338402924936950487598119235590518537137646929002210105289540343404372078204047360758148836054989911705168144418328230547411948605559780918260411057522962786902073099349727155117482604709550500689193295754458047058520626047116648612825206886861978348651845873424035698562344116567658990076458620634310718999183175277477842867034307181408226589056592385229586542993152174369544893887424202704171338531932068123308648888658896994440719575406701961005539706427018584470658196840445874131619005971437766090000697269415215000393968757287088567519688878444008349265273645023028251924838764617486313966339324896976319540325888009857557011008815479121945049291164839513848415722141746039961420536478794369283050073121139854774251362188015511763027147872949792248422210255367175813007407971283147117026216358347906256559327611036334584267960103704630701569691558325692540591117814502036762267731772576949733848408006883849539280607498769351061144109509631870080768693788211354466968345601499092113499768524266221131024366127467784871707703376282044927125542502564650679244172577285178808245789486900864720004242228607773430541825525777479542216061121377686430224698693360766469174568331465811387834505036958032229770856086710371175853815899713811739003599526431257221347795414539076001255968926045247374991187506988956165744889824578442867984139344840218974528236636704535009374248661362762227750286275901920677138771604566960171148041553579935843108582550383925729413286390828964462602651157964543484918013860251644858126961957294568179005280584520954163626718400445376993845054317193773823306008655135513649037990908563420893620110768303497806173179369583016862226853765529857448519184210593046323174338639458408581801298219855483388291275223100294451745693080718338128994916356271280363283590005799901433682387164335323219407619424716379046499892350422523462055806040159951534424062116786136252204178505844806358766895306118185543044697288418890460199516451195005890971584527635266017925292596077281111515691038038070109428739862529190077177774955225235488954506530294337555434598482645234184795761512083030700135235798573179201333430857887621419102988297872576136645782620807135465775681264150403604625926143577575275904964128327976985490583347447786555276238488887392775093892813179037578676118592230486105893268619141046046676762940962486700319593769759687299326291777806278108402366781146965180454878044715716117800978838715060028392046767032151565518726312778045866225759021863172096608197430972182344864536244262154457018431153560547005869135087403078413256005271345850323314055585103864722874483614254615096996655330189316992707630061381999611650597025005798608292931601627477693892739362096174121316709974179083119722924309148742207371226037993178213709998941363753640530144288630188757246828406868261533542810841689901698398990270154812988240535489289265509105521846849987757325293381488203938903151067381696632318371154184079935402975214960000611095410076664187935671480310660981790192664978915943167182281136826983961959341220686610347247382059503960450161237357726947586471241641786617821616956347520671765300134967770171006561972689741112766071989403503442358596936154435846571638039373097579491701931851531318264888672710422064588196329714899157777425497262481667276150986399626712658025062501376010679332864372216843723272675547562989497494324430979736230334900813033551968519367824582483072585821407252561325322955144137841411190809114189314111520323498744254098456402735585345473133203392254858472571533781591120088398259410611272280305508151536703888647897124559651165871069141046551564553568811295066551722991067752956960608035776727935169012042185604981197899432085897972884315006503995675978592887106140454079741295916931961308616627790293524673464333146275628166448497089329431167256464450074591765993338572660686295428907878108487766989226649907509815586143398936652797465419900408517602024752809596705692600728020709360302359899890315257186562067820033981523224489045364244727737071389168482428310146566700309384326051852513393591020526324824276314948136048185663807406992405069633342160234893206362095220608970992685435203566566635227514517043298628915638407069542040989340795325568941550671074835374979971963045017210429891600070044171241786737212474028478490750116279212466685978996153089924080007006038252633567590425974516317922578839515355714981208545297634461336114807664862685447068525125440011905990586162804360447483276300387708312265207724034885347514713703107676666983137620248680471418663565723844542999438534899682819105766814992674866207680156534005960022565790746806087131883035509552462950604592899920807412957805701770082000892903925584539576263407504536718728199436138483553954987849134576374206817979060664896070898327714672447078655377566116206177137155595436658914614396081090750090441830457085967436398525868879698057937104020808271398926427743175472812556842144604795472258318324048388074008002615067233327417488655760823873154900540767880756906469811127612336337274602855678834253637541936438415473268735492083209395755199417116254575974934317540681437492936799952816599146290158815877216393677162347099160853817526483073975261688573663887264942039373377235248201145586260898267098217242522414759884520947223918177686019717433603515492749439610048419153454194397674213116849624171553729253441307621052924680870556925143883696965452251218211648535292516971262756424394255792227801432340868549528396840058344223846751132499189154977186005484925380775658119452892012846953486633269756637519837305065259357480323404359657590836231675339195266609785089953213658190225939523538979724292317663363248855904272368365620319516696622211852303567910438292278036372693653695001303721601722104528586708749268070765880698765904031650510434564557052615879158545687698865529138460273107742662854930414988460100027205473037839892040586314289551110418023701019779069884582718038565202508863112095000728871900329357430144488230971057484839472159288535849232360897162650706782752544111069603015453637601060736068598219543937562818721639306841837163580807464553900453893968427612619533443257928331949596405373870397445305408620422036745139190707631940140458966296755644199353460170614058078313230766383185183965154471756007221082243655178336378110761693934213092694893414901867036340832120876213857598336399385955059861766656828441594128187529829522609675697559693524613686463676711202868974004373972799325322901074497911416686694510757055619576644178455866788872777642739408185461230399674012916335015584285462775444469239992088576236022485250338726869950434070999875728204653633656201819043560641503122267510973380278406579739866820085457247895392677904229774283675337987149640162334031670842330639722265964651639624037927491362985465826692688217637885352403026586441401449904314638876179023299580432497399479863366252043257312198936110628493022941918730716543814326565495376803594026086097274636970422054615706549532849879114893886327151635494322129893691818537891289513492208008087939989226661951961345440668365566032786176857639224027659709593842106439760352174760734555593923118638722562422888442686801988392392928911654909519146817300025642450783608528315203559576822138784763617034259969313682182018580104786132862963048650379542536469626941707753386140169574372274424305408148781414659569165704371300606211131753461504619522374737708380695918876717659551283277915691407404485764926400609874520473454820800646834934067848936232946480650342443201835538848282793330386625649555269152595909406232853233914579739036306471691846007469056418943429093496042826230945311790452451215993011802444547224469576358847690488114043596789932456088900553687050762315988256990063382191734248340576874264225555819957733946195250958303563411001262216589382600722654876070960289996389678243821832712968476407258335239218321825207545051025836737162335344209163304290144370676095403923126100485769004279435531783164511281750447797413651978658969798881161921591654722177359572147058683489477344479062216169378730031812153645672762244640259539472212271727921730775454065962315680525713751052373506447558323714806736361750182626881475116238683934188308354228882307668233458277897169827444290075402497190504270282266077858451548834513365343549947166760353032924157908632737811822685043952924420305002962543022356460998920339598040659891034183898930829598680807581046463364970847584331660136734563414317245334316921690045108924549997706618519844656655518359644818686804975358565774476356405133899576324274063593643824105726792998624120041156666632988968332059271704264897256854346940702532918544647365645581974650013374099675980594689705109926344423152738372730596747608505954696927277162295542748999377624559042431889008563030136801727571688839376914403482125915894677956742967796449066308900372301422687795429048394085180374494655973145680330126471718659500433362468800761619094364259656141539240609120713465771772534236644928803924124243783733910701124421863767559812421720203445581658927666807234217686945344989504532126504283416420115110146613084980937473049725149393265664697100669022769823628563840674008434320121354608495479559702354565285591428947615315411536627143159644834113119776168667388939476517075998275075704009723551154441767234088914891302815149604837612691819578566673126136278697762766786214379041516119984646523138741610746463155946871864774127673962405851119746994320531252321297670863141627773341535204694142840704989049747607215070206893913419953615247092891697068412548832320582396224975112154831475890932585430070823345148305860382019811928647913106792872719284017623986018278411941404319502522370082743872999748468141439142219134604122596408802058330518968073832543643974953218399351383491407766329905107993256499682524946166934121417970392721590880318960379068489169723938872541193195224706468612688074780087031988172078341011094522322000396362663785745892876319721066402851766568916355268030720774201302778124631468138376710306066061538917313710600701607624685229798790152772408088846754234446510425680157032392629812412060041565964098059400417279342180977706907149249491138158534106615444051858219504583745851932681311549866898922814267536964363723024053815579120691960744271770482064857127611945557619336124939548543629008266444525716001986883581678024785515871811715972714553512032541912041232667376829181165025282899417120047513246578859994907364348668007297588287799118806083363367819428987078804216776421402844791924891262996039261414516135184336220079627649666568745720221567393759236328042802961803313075211640909707176086880829178267317682287011241389718598374445158720332990688652195017084605934115960564334470432302988205462027732428817385109346600330263317675432136734868138504563163770276647394874903504403947032414383919059459814264357930282699158884909821011925040013356052724304066101701499376864878537002349365144113933567895926992706248405206293815776239325644967979300169425774579873731560468081618215058170289565156909663712560809495894458275054007037448036384613432403481639583202138316220125118399985466149730826804311762370608890810552704996945676903098378442673814040631495654968181582641066135076318207544911385884236200527823676957235054963823519420805305471014562510421832133777199032296002221760404294148014067730397972943408303270110099020593166240131465001675351057062771383196149477953605719246057553106808341251780866643334800168238745009059228782370795162828527496296922447218745242046400821179272916921700868206835444318116744301353388081612147175072842802617248103550376021972993266547349103854576332204924472144476903489205761712189049614828430739756777363973930714262123533258599978746491410200489029858308241089437580824703053471547487059811426200893263969525586104697431842292993731396464962864552894317108638432772887478748567664111571831739268426331398333452666885690659645072985901616651770868871900969726574899081268685990101767060487166787536824129009792889658061473957835002820540771102732540945171954517588715157805495959068954677846359724086762301491663274490317921135744090480799911522684940263181144470917111727898179498483106126282939193617828322763090156819114618886695906007866081176884637223635693730287220680871194519041384360208591940806905041333038913697008224202058515473768077486153588375188544132869764020944402401779797666639037445229964324030058143944639310578630396123865102727348481995465707473550105167966898937016359735264205972100854009970124312869577312280147204210036981928643397697256437633230770893619254576026023616177422610148477710608702247308390759636560316402289373699858754095103526288126601661637107655733061176247211790647068912125351477428163155538456622624404829619089816727800061087741592106296275701456267437949360628872134974524937447123021438208561320887857253831002883266247016687650547179713653556008352377556882913588537186254522401242196520338933788755638177802201434033123666604708754235214368356966986127442481848044078951944290117047476669546259826240567916941069681846195998010633392378867357026721553259786330976939671939838419189397740377391371319618572532398382086623540393535168545545771353673501136446155532933137983248869526836931454109666859639210053156463231356487868529362430380881587972862726514342906768083525550528943493503429595223200823101721539456585545132340310819448849310103661908780625149029295421011895728876131285092393978589140324989741863616986533753519132538937370778479688824878814863923926662162173548001287661005893966503323334123688984097981592670408142401096235410671350100662949134259401022129695424322514164691206554580020687438367874685738567780908646904611611262441577938621298500514679780444956223465911152031407694645601630240647702577083942709693943520909911849719741377650319669137724106205255996788293020222988339494581602131253282533636567608207762829835141934914305374249938825907338625307023122000856596803737234432616678913832799006728320611419995440344372348610297077612606073884250497828131491453311625208546795224025810837154751303641644052883860114445399960314291700769908688448232284391835674313903866199193775665164248191472064060521211109007459956891589799771292624274794832599301514946103745473798419218633903704905690215201709239170911329019907914568401368935177211650524356739507413219516996115207877902955036934382425654614689624811616198403704018322543835406439234096838002645473717337958450501031069848197638749547632923037330641932537303893463550857479645304176727230847736656593803828411087048494968434094202691899413746146988420965561175306894320449655852454714467525603014210068162249488753118910991987355244876938120374538488457744078450587072125547591607384081055161359937588801904744137002622024267153701045197923534100618885118268873836247658693660810610098141285075494477646039788127517896804263688573094212329268594567688357315919009591956373751948776894750364944119099830998400908923356285444524100182889794944721636775635458891433962999591795804115804947989204004332175886864305000786816076749805118325441018294138157542623721794474791882700698725925250278264276657493110953801510849756951556239735163870474106536487887040548967837192265083260414805917984184359650292197095836423207547377752349877176537790182492433770819210501006425558318282627887150924473511048076279551412610718943497499145890518609489569403022493767896057271186627568089427329779672983594685579613257415777878171382406769514176814622569577485904249246827095535015084549523670823098547912050708921701542051666028551425350210054984300351197126678010014721437859414126603190140473666636514532527141459695346592560168441664898704189965872416546501129657183034108397365197921695308547309177214545133686865901221364135905076519966737293303881586057037071979417434582539563047455230446635343657435881422940328697089416667422967591394649652629619491692371745587815712318254421571684389583598211053724655399896849214781337907793508197583726066872114565077937564314237172472744565472854917434560891786882474074819540880077891616803963990033420344001157645745578398173463225549491240705201510725001308890038526514707264862386492101557653918209220618980348744960366861196301612507788124051690001689765674565909155655754951490231281513872751793463390478837854398126683445361468478094347637720069700345072416040752181473831983678368612455397299732465942127067609949038133955196739149879465583837016015031680290745691605439401091596000903826521621366460642680158298392772450902954466970907436133705941003218454000129662743815862235919357108647421165048811318742032826260364857670330572337089721663310469868355570067649740767369119964406262492338007443512839505156965381865870495264805285335180513784649383230066371150833332627523244350290822457854224412158369763225485622953429328544731954371345554621234259310789876564947104042626984439400372774812320509976226461993660089809768371209723385709642390427746545842020130352282464582163790002084260022841555551799666638860466169997118255296867679177543988239428206019770691494855888109985747636620073322990982383177082499520814632172567145530366681241619870141935212939570293129384918045834722679742076420825582206632044979231757896386602931971566362635599412784864334810259159476383294903704766541726830267284683006479306237709398870317110058597611128057855999489129450643449377665372176836084158059283442157945251237993935622457632139268121252326260748538501608642913890486566595215351855863145294453300343155828851163845709360181929084892082939850238092017314963706631903772264982196743779827209895269551554830077050514462379476766700984574622260768975936499370205513535710683829518768231926879953364627813636897676358317552000647949967842996520272323887987678365908022527870461721616852643322129996007869742946714818539665045386126217605798454396544023903466538529692106686300198831820812442141384850231995599044205813402957238611497321209228921653364434368645521317203956312080274895555549136340550589534713770342774777960175733803306808937574334665559720066668457379994551820955094118616250230679902604118864954071363379653816652871856282371604010110047747637096604940207379811002454233808137336089075677460790370377219905657817783033514472361441319732610972129063854010603860164914315715656023043033908106755275672945875701913814909593488918216856329379901722312312094049898652198453947182296478364818970615509951145084801578994852966693207899628957605026250119151025599315864612932657629003993873024658233734944133113274012111147750924924394439771113973647410076392113004119084678338940088513799010627103801104887250401395427943148082269684210781977908926432178129490851938082093087468536200789505862480142663134820557712656101118982753508098277871269412069830068997007910100078546089356144894797326374103451377396663645920632399885940381677405263042551072639038570131111240673091151642149251606713643675115230455143403191605887637299331901438344897193834950776257731280400446977058719092831621490068761719507363369751778256815165318619202638527949424565853028098438092297816064021010957465796290090353309882234226771535473944385934490567076271764943401171311692526506314405659464942079807475154579639113232864216669190075588351585136968069277815783221814601871800153303108290049093854664229816681169350494323954591300882741868680951824183987717459994981969809046513569007924161930136141755225668718468688984992986309924689684158112365726970483691528912389457776431531747786134704885444874743984479332317744420642980131798156459755456802770019757750031237182736998792000713955921502695103582004681326809125793192138925697107518089959490254838578752963126047028574385266051876518423521989166893929745536284769389864557777739685748799018382304345452909687994976616301359771608085975390998835779388944519106927918617391231165962935740373274029609906626640410149437448038734420983111024837977701603460570476326334852859378543531329820312572477268831528260976090166253479264274181243955359756429811125633281962365956854299824034781419358839759272762704480184754719803140858853192204595293195523451881909815372393276706339448721610516149465644924291575567388740379742315345631905119321383555038164618559092111392637131660359677447509499468094881401154300766009122805356663296991914691566973268515825164298006150887052143024084217984253664963636391751036369010547280333691978459176047404628653850793587518446811779980534571881910948112249417545886678854749791941705633043047477919459578147073246844457333703421231061268995316129438141677048616180940725231519723354655863932186857056814199545281959021463682253848827183611194412704939995113618214726268525107622441316185570642442663857931739303106839547988673634109302339963180843645007201679429363560004494010436637519180321597735757975951834927474161241013072065982923404659702557610308173061951223077316645298820102800122688981959268542853779983776405365465332608959513425151393544836666848836640896404797886621144962846167924291764727586212725325272772605183085530826816587590062438421188456782143624335344233677471609310027403846265159200822663102877450256525186907294940588747139252782687019262967947512633912462207602791387506717797426256731247696284112601170014758397721257067623994253917093487003508058749275613340100570669981417584569507300838040430506382858099300398846855605028920315619056004600681648843446614117228292398949984666317495529780215038194038622735616008401612248745839032886648953333546005382487501125714492222993300526482078725307941284885483783112129392875436566282331264134653708675886906469227230405579526278547951754095985363140981746251186901024097279428249068752762163671016863107572738291462017224878462638315772968695480680923090516357063492587322826566539737954506657108799121898183066383190788069637122568042789446516409105559984006334882470128817714920729284619896407135306437625467268459819485025337243391227334807468783110371034720428428808343596464502003869787177988171381838603140127958982246161472753413926656711253398675650215429230745182625681870070979116483574829179223715233319304498623692465350075890882366164384781989705188702853203639423653948624774497416622925423584732968892966889344579930110816237137345775187047283033308723714740923089925323117767142983747448107284609932325487338424800274339138467366247809765942568941563165986359570925666681085217494252380871658698603642840705567757590566027446550084542191178941598787002387993020457523113112062582479662979979222431420783109757900559691210508886101900727583746315444518746108210381222341612904713816488004326197108910112015327618781098873534044736101991596410474457019538045778733252520382253131174243844786200347749398845360348038244118580066868935965531094067154573054970893489026225260899236251512353759368721662951066120287953412059709753927335400654862102673130220450000020129857400994737348801046932636064792032863470515349004332325020034676862493376218966694871334374754183465887055050806246294819966984478507022080897903582623359338525297828273065180862738165578320624438069012557939260913301642840292811941563794552794665800754818559364581699233996322894835014315228703534995710163049357020615002012742644368488602613001376440865605825086141586025419228798573524416059846001731418850198228530641868783237832196620152221740990298121096743396116281154647161306326966994010031674566010644269531331509580820052557300667772491649327952947077103512103727329793500056922538126223355494937481256853231664085317905765517623746303263078058600739958536924297613139788477035986378600194856527608711334980834619185523757014067900232951969484213165107036142717204122713409589353038246213720757791792062999333327595091937111067414147317534733879676843235961346863718033874419136543663769128818368947986232556621456789586574914518061775561788017548697705133500067988560009833561065336031845009327220703301665484562897142388453038592028491615350384833926258069416729097390724150048840687974760101498536057734068945129622254543932572474732047356293851154127701008792033211059573693313857308887560981560604925630752181992560082493601770119566462849460704303260870081570100407147449841957814416908206752218360046249953739305468013105007070789130142619717388291790244184232368320009336041865869206250291082744633201930692878372450889775019543004814014528038301639221218636200734471690500916331288741991563758530273274867347508792797059412938800130765720202397211947988865268294961969614462194734119063129035262704352088749798926551345024517345176566786360480409927452245403673763188612235554760066932901711484556021684258748150379680322236224429273010889243293363844904150186540022659326464904183013973528543479371850697888331941660928996352291634650467584580661711545725941498318238695482424567449982620700642711680760311700502190294582111624809843811983439944893951742309401770408548589057471728930319795817127604355450857357937774778419074042625507039915506615809759375416475562923491131844584031091574505380674431547838493924336146827930902449167188796174409071768370901483139451240722175363719013587026882063101938321159376570214591001952017429339673493215831212288288414178949130747264823658748826260802425069309014538750286135557060256370165076637318392438089740960525778008608252463961662335874015258831567360047906021339035693375915546570143472053380622367603393457528907901637824201758750933394909983459226334704728838017044810089661888922604714151415656471044207312137221190570174659754747100368116767540082378837747992426390144194633666219714963486578966387344576747255395268560369379038927278578035117144606938282115710197344945598549198420539781370821579541131117931379498638345978830866952172128380187412858906840967560327057016266567736960016585898029304950431073301220638269700879776176790929076368279137594636437136005261566772712479036815958751173698281938184740935144677800297361836781473114921259812837552202368410808689892638956006375867083867171275664320904287814753978919128595402035309945702250383809411663188097695848563157602763248944050772014605303173901802312134598840272322860150782869215856234304846560206994882845924553474995355578928037613516124519554081572903991203858312581067151535694146759748775037439719599079081244623935887698251185512781111359617568412977767543985404346617157384748809753510951609531292740555814746769892433149804895691642986144120692544447168263815238264857588456791852127605428106979464176392589162992534738817396336259030497514220647441229406817020627708487527108092205525269933141052707217347569002610534678285462741927668012263978907117365020560313872584474789702719691431104434356560138128152059131352308777468227181227611389121260122449151681406907990508172169708802811968196561281790875859426633903302632437139616610379256856201392062538077130130298460066159890505261396510576202474478768104724768345352638913092926043937673347266251107412585183259492154573276107336435145237182719996327351713200832765969809164709191582919438638651936842550792653581624549262507959818064038076882104894891852098628517090247478497893522547594994620047471232978641271382278381456602701106818112505684794571319294270249546292630842241278530546050709912240813234461672220275245700249952696000539782790693978774103090388346887196472011722443311245207406224890056574471018380178199651967348590754105808712904725867560174682669769169685673869396842966635249839889729887458069265286627760190775954836128488008367426573825667034042843157791911338255414887229693398253136140807688321624986505336291441297049927958733444830076082620839858530258023709582170327104210430821245249413278573676241220727359354715964059443499051506114058325607459040012927479509565958339248383951985805309632236724394829637513635059954348478981512278898156619349298080201503198266668699449085875866595639297584273310883575477124139326135954139190227278905753945165139879137824991500041311003973184640520972186451000886518217730905529583898025085978707419800046423675465329571899425887567244739463791482588847104757018327852395489044199467195405078465749751344094473261490247894556842096724335814803959339583264399870931172921762805031873931647149396460356375893282001613894076093018775354405620261412302837676320634140053118731397019596895624027232828365175765437169088061022908093019702894945420111258788796175967426971256573635810181850955679599257648372037609411430654537576442587472933352177396657931894290770059682159521439847984173856759255243456612207498389605758431390369294640036483852585656779929482467303463674659739004322466055567652829018204330672753878720820695310135524617942333761225620553642105955040647863274140483134765808739432480646259987988121899500818510893760497823588507013114200114509048031621233432875925035507301533272141824925554527986287422020985264063790211350086973914319398112075194262377766032178259776777237988093574382170278181873576000562392629822997396463654545608087566228420268492817609419071831339848945108078412463200184266074601678924192625115966382702248435874388156694837238580458804537070588025503414306815301781305134672276865425052680648532426465442868877205360382725496222400439885821727928466780063953780196155740576189067859323501740359357326435582312063114163577148388983709406567945436799298318493521960573571660014870675882832733794946009492365461342509278885218622221968429878436665442393027828992379122777768623471517393321230425668678566122871973172950277031391409534180626630437063062349508299375342050630572163546788971696504604466856139191350209015376069069699271379857376810870346350620376435805098478033726549987668425961525864976678509536907512369818491159750728525469332292935314922000413197413657909848506258089375000640547780348251896292625748062382442660458527492183378490495723221331117502842272191437109251788100400035289896651360562995198861917803889812422590017537404957723042362922309462944675183937180069067736208888402261421362893587861135247824490985125644015426017653267794781130955948119449326999067182440112073059672451513331688208965954022650702382611932434299640957494645334283100461746680978188081770140052954297109052330216404168467691605686087307844726834745939468314135587395989614385067789352059541994531004369912162263019942718403845598254395533490206090142863104973685744559549899425167815848885823424825897205809958950950548260465437044952332566737674567045964157853981985416829919719190977909256456655905754020121375657422184770980252510101578318155679943069992638637394863805258058434842371379700629978805596635195352272620160334277442486149903772775068232928395289214865198541520509034071316751269409211243474483903963100815451361384182113865959673455934212210760147245127343689919469310437492440025801993125754052026178864590654499641075517474626377157181773182155348655315497353981176309045635204821382104197418749433477584496504440468170527413546405252514100905842815884346052568947279996422303271703941669254764546400911813421555599323156472316403718638290011421747131602249237314728366684175423615326894644240611848854680277879735230053433156794266941203154508658605959563702751482432710276058000710263955058947850785468231587155428311404466719873134805796836923049451905420940729011552138913010219585621639181873111067759086540517681919211663069388310540030160440419474724897233613178298378216983187439759392055495904308347219015337535809101747380535438329869317893193671712876565254298394450606510520991965418794363469001967236804345366527181200303200092269034979262168707894566981531520096548393058052089735236011512028712580088255102551526646060701745531363479067300297309158148459280645998211979030893233492362956781789334827402772197435790165025968513926957711305739999565694281642787481025035582245217100861327404957707406880889774589656697347565873135818890495828417279389743495136816060954394795326524433347691709552984410750839201183427562028007718002353598764898091525148685273748511094102416321303113953397596043152452066206016870862141994858079783715724653322060389680063770295396726704033820576833334143703167970595904858871420923869073767932636902246913647278425239302032245805692202530931309049862585341414929841054606619906875711001242845017411065475915446207784581511885008151174596606607273981364353137557417479907815594091255767166756947021544131899876516288728490939151795508887383193254797500060142278719802401056105816977345123152756612860123939285323530399846063166078443930835205581553772844711293764230130508935396417575476975696483989654052199144508435785317872391857079917614520820302878118485621283229182622996260103889153785152098889968175537447193789564965597200385737435951770769366114826636842091385440330171514089227326399851144246682507519860920984929943134911959924849907947935541329595680196258840058119950309095617174947416318753908320246910798543411652438097943478024273625972324194421798914421367497034122308331779273603116819971969040006608917637358526972451983512270026538406396326779940572303999659116285703881088236327715242292106082927690051676039942226122230139053707053672030978314658725153881632454275620786356982293138907536532193928280542133223331294831441044826636681660624540922914570114804678280127303359424415570780037302076167430299591352898143690794635682932643119326617046575806187078454082294162705679516046544857073897937903513346973650956035097203148235468855131334383513232430594177897416619284118745459845534417693165658865328325666731686152259150912591147395456354383332694758137297494431964019095637365435370907073284127792901928134199815070786346795787350673916001993959887436794499623172816720199773628094140066421351100746807341293411326344157944608876978143599168980237258905161099930855454773490697072265597224610627356664594549100095190522092767599556715977403270156928967594277811707289341894632352889521003689274593295226765264111192388718759644728594326546692276037053062812517580572173247104477809690523747202588414688992071564751944241389381802448677956483650981187885056460834512399300305544553523729569016254800155089927203526002075910600293562554655072703818704030287586443013250809840271633775711101921853081931471633792199996173432760809460983044947606096550684166535534574675302579781043384756345446571755421074948080045275548117580740346321233023772244008773392766887471076027859974017078052052042400245977228377143884764080663651119073132265935700899178733961143023767893358888201357763801876100320330345296200485637527475771885668038578292648157300210309557965220910287562700058966221999334670269851867277493836871826812089461641155526767969637032561459080866389649415765058241438961711466677591852548698661405764344445508701107042244803546905072381260719206847757418021311838765263407300388661272760394693382772322310836769910324757486692106475568606837976992838280273710827201213794625825048823327261409644173861176638690089259403866726509315540185359064652464307632823055728964547230214405194357581956816542215708742912210129160556361238170244878326946475417151327752873537476689763634655474514056190632991320866235366785432151776466407386272274309519881176807583402448002178404000690173112793764319057393373304125281080428008290501249178687770606879245102399658830123809141324028441718513989817317122848760749018060646757648768481482628026710823812948996630570732341303152703974038547821149982967921092948919350816595986093628912884482354354167817686706041628443174321451943535837716628871950017137972666737771131077380141953925157803539368723199139228442760354357444338190541456153788874145879457606066533839377115695240128235714257495041356317316425088717304556629187651321449486756066968016628013373784849638359159938690735520924976786488479832368786439128717962997922228799718370340512545854781306049881637259620312953846060100028880569123617576353313499987184935195419369596455977981763644788839862097222069512777997954391985528649687336207745790463591797503282359043527522335327418659205338584531701726466671469594375701529167337850904788562139122658094565705093026739721534929247211728661656466051770185070692971325235619328411850241794359659737964775217342250643262585666520947781659229205490528094431647333730825288404629838835009264388391530205904861190865882279146156014092213639746693610136743942542542315448441747047897841354619090504697959326378269462940918326742099189466631524273213757468279307104145000767267774621565945642043514392576485172481571217654081769667247455559070639162581144840100371374478903272217246154074563347622240858170025291162494135621013589502361768901463071607388598094704237713775362134974567941666951944912019000849185471633641894616848314875032923717369734287239520509724146037365490079707981133253156134553648784499566597478654963832432755046248260944274073330501596678215742459860514727606633278819664726110715932690835159734242143325124226445978843757265682366303158759146104481304552122032608681053590345884101086134535705752103836321528369124626032378511366607849206927929730935873761901048475787117525732454680552777365717010756588655049785955032884647908815580638919529368221826653693858839415270159526608794949898637548018025677093062590201129973052773786966994260106886384833492040948132908290343624702305689989020241348051523061788827212253648174513183864635245952852073983655305262289318161546630032434894650099452305087905661279832752168607098322115190351537870905555366412869202297289729592765200304501236539289599131674861383078436688290260027852750652803794727778875810594573516426851151367142693295345823170702571986185123004861121373735468014221381774085280056117677429617790489779899969720969495852146436327046261132694475722179331465397554732688671179595692007660158344273509136680884824303685987087017125032393900640185825515367945902588952372124581889564137660493515838197024803392199987424562217095849646564661707737006296269459633989069403331173299012123215360446366729034539570497838229358093781967990224640136751981517627373385451913713608958257653158410200826408486477346866878504396820862512144208399648804935498139339569188428658798603533582448059110352140961039657148750312364414996457218271055447747825449721222800620871532055133530305089827042277893178244039516136018230368919213067054917904266233656614357981729968775136076110216444017577530677473129237697029125505034531757506683645718773746239450130560592203487364491200255117588937579234045646825649281300694752240614141992013933576628132222806719861369122619787062605493483593027799902165408023966676641610465202635846739703383981558464848469305784330942154238090147187058454679739051897322320717054799252313558000886113010615359936619991837265656420433308758136533910675579400508365216905264653295581264256777513988617128925122438278494498430029635454981114215069031818004304613343461931557563123440466166813561739951029292136793482237695285529111435158795942066726873829269592076736372722083332678115504899043554060397206369815022918711346454159918005119253118385545682105863614789654626464926756942145953858905866820976322795638352138609599132644215631673189848192412783101437413249801988535608885947128179312861077235265780792022759625482753298371545090614597012535124799885393317756447164917427068692794118711040962475380179214622100283426851605474750953963997197987091475025061146700681733657129064690364814309391644863669973719257615629497471678897337810288241954919990509184674984840661859305291647201843015783060085742351618457460252581434219400195497287804045146048599701025746396447121588061794489466034722893473890275123404574692321547104284562490349128778525531962615529311907661205637582762525346530898451655487034403969341019726764683694982032039018911816720272032134621295320648651217794482987272561711773224755924065954910810054404145095766187396026031080176566067438207469035548511231154482833460978143841961557715810255952836489571277167335984821897958557233266327577049107619005638844031338156851381336362205924927110321708441830977730767280825005776312181411596555298070964052365565766673388436793575718263309792956980343647802894557840188994972519197614369679844439067980400253270447782496717591420684648779378393337412201845514068931015302769245118199797376365975576986977885192081376682505441031379690178032196532121413388981269984838272561350285555726768262065102740067017961274019455253865093554012352954964303073706918383477825314492865019564281317630357189675538637927380098084218222586664427286586115613014153774475963630159184873477628400899309882752402029214269970372654732036678677460742467169657467035318901439468265461325623973552112973711728748602120887444017550280415763932955869184485709390850717390120266131706085654771853139743050491224212122983263768078570697152274247040848329337481603423369802546758390671397524517759585581104357305117756031729387961217268415899549257323599383777944938456111991814931974192404779890288875539855795725739917148357320534188311902359763597639316324473510387019602260640540248532405105876984368869356250357298635661085196752219261237424777144471243708588496445116513952735444073603001388615485260971665234361572359559160846623059981073604336913711952375020535498431839955529987508807263685830322082129418271864938487996468539827590457306347068212341472958327509588223137711219032490308445829567202915170166544648331557389628392335451499318406307290466448913348469205458790647225487655143528400104994398288173268917067220230366684769290059158640797894081328909161331327312761938251615106567989864557593779016531332825731663099311341516724841330273743924365534300942799976185692582300184154491740340946337236941355221539600290403149055977374333487535594105952227994401224725430997025936929024863877931103663744741366526554090427483127862720245701760954231579243734672778796544250861873391977459787650516693014077809432854116343596853548754688363112964323373699962988084169868900749505837263062470757639983782503425009178669682696686365053093278069333911375295357092309843057569163985891948133889291820955712332819753408271822772832053512320623143384977420997198026248884609721813402106669867075800796643659051032889492911208872516702950642328547055797210186758419160368922028350919723189282521078366063466055334437236982504368704445502015315272648750510133537522723412198827615858597158797144486623718286886830758366613937246181843943190128754758036936998697651235539933659050163254608734453307896675396036396333158917244935180218146117548086411104955498652930381261165540969708942306658304784985390497423648547057877987102553917802252823489530030497084387721795098648935859515089338285913641296706505691337278808303146772664981548818538047750392038599418274302177144876928037225316737825768588337530214576459648643998988969952971740873793186742479738501405683384906366813773108746858343807884646324103407324046715953793177814570246770738595715829258760477657268157746971650835089716711691335499300458158286397799918950893815071613486736987170577525676258359300570648728784039916242408449864102444490534226594241803122143208158877100506089795151771563866716727858883488200404280217865622735448620184911792422630838111355653242514146364160275867344041339456915367121410221939192172644922924115089593821037833713951420620147853381237130409834802608116158932949280436956179488660254254894905238177429537272371849383693970840479151827010707235120247450928798732950871568838001677753906998444881231248600555744304921486247184082496076604809815455077954304852620733763902367629245192708813641497449552055900871213240458914115891316127648805259887179783386150752748346064140801552609784220784052043006401747836305953239469029709162562271519388119866348097935582583478814214699025152500531922137942387184495843122901132662312351762799874352456393404773793183403552394779856096938756383585094599552197718123616899558435320291969085486649590194183110266405597031017233139578350804926921291346132895538752314030747242555782792131657599088335465516438603379933253778583850134089219280492427836734505604796447943887124937336310521771044393933155189394005431020074906187155416533131313266026113548518670474399111367120115174081095308474069743704972694718915706460676417288185383141841592752237558894229756952184559790337764633641599627943900675808117441586760510882350261531995462478617103735145050473798681821263747816133821806586760190364165901884653857658952935835900134262229967466629063264285567589485317122670200331071903019574159787505114353892033928351293001664634711196022360054285845345462431683451083874378227692025604519779362101327397162362182247775814638148242998885016548465735658811008754990455218079575597094870543912274510424300669275593695403431345799921692512867217879463556209764501241980378419550398692896561280486586543029903138120423032022099055404333530067319885582360404886128873831832689022095697805822281725879027412642352422808953145268065517363814019245928026338763014734808265535463502082442853275621429759649570477207182085554353712772810937671486613796364079332919893059171856679772022762204995079260385301315122603067181596719937449681018347355138441762167205288433890335804824369694828422328246453734050914684715218263995495838689286590601785574558285643803462662590689135678093812407220953060223019002987371802574513660205316880087060039104916880216025087370642494021131757327445610842342303358005674910615780945333207094826612381452311576896239079514556985801687189777464268986487205834317591900715924412072489759043892089685485367623338369153641868920915120832963119380095708509412196865779136099149555513967324753030666429477230069587976238683525323231813470250371584523742164967409463534351434533836471807890103590709076403208040206715880568854452014228530773586914227970600924659108889260630331267479284163858281544692669788173278393263882504845792922698802022771519555107314435476902376667597052051481135521725496314098862742847320936146583902175144589596838751320891892335912338886876937361951555693288507599459063275592648672178362290061024101529678314600796509776230628090859831115809210475521171933136578858504768735072187567098413540350798986667287720473743401840787543818012845287007564919079293489081555311109675484473781666436561778183947673913154077586763376742364629842180552769551385787313676167943092298686289729650135217138345135501369769094137808291755842159734762661551577439178282950488489760774650352996301069153300587311970885258022189198400055721911606047031216798368660721146574837937499428784322882782561823330534464692880091262615047495034114944943564104713480237210513522943578615219333761751814017904764190761221760998847668207522771286046619699282361323768602075234157832632914699812907841750565526370878710708369291646552009940429553282575631838755974195611933510291654414025550879900266378214686601007788331841992439468051610264196876598364676088538267172339849578013471819913443363179238946829910416025863691595492556614415419884455823114752144142563217345634234517926348605621564298836019643852103739306693784810775943332972895849677579705609066945435093829520485051494760111940562798965268293507972230602373361455285079895028495254536373243143779369356680744247574706772143533811127502007510873044803292947916003767443127067659813441528642139676852727931270783307334209007484205708850718153256619311440420808108672132673889282544016322731528479207517668184646895707361664811732791758459900726330858694623398699320133527474445473430896493180559439722226332379215374377876961418068729359465228027516608412985626438650198828590668483832146795403048097212956166315573266525041093062616948264469074860856716686256625917672964225773380526073619896173315813614362005214486081811659863633404921197407664911950172397497196801780965106037543569412543273321973707587377232663958374806558725776853605487973349914627069415126149752910436716970885374081034022477660994551018188265975463118157236085266823593444212216692402075844723918391459094270549058175178687091998210269660073786800078635352545181599138364701711513886946203414648555810189246777223281045050604705123415682144155604716154889759918649660434530230298212591387687169476635537265313692960649130421817012157098944931563886886545224824252256197519667447520737715811637386781660304658665660960394871627177497402063531182234302555075924082799789371935451499749370141831342139287119412293589403538749187581928804501480076601440674964522571352690126116036052469615487482622153305855459437219317457921012274787595708618656173568906375611642024274655921176056888332012334595378276189453937262179227479071984238411482040664168325253641015222892970197415570105672665057216440801906562996551481374351772837913876553751403066145034381299911604813980244584732717377618440844857758214757967206696889060771513447602426177663754086406702626994929427222861017201656749927060836783979351539249254192295127812959920074838286826134947822970532351791380669276908233616396258691056716794551645255871048007723574273554558381535614065775641266922063438408231518698819607640204002533625146797806613593484889494455491598028131636940275021773518628871046451386013282006340934353408767070103349087569247265375878998510031552240747977160981460204842930346755206149882178643016300943362744635064489660731687679166464578375018539107671676630391692425150405983205658266175761867065695859437035702617879552924310455906588685140150980223165074567575934411916335417576948971803642386581997418324201241254180677164106103305829391888332740818945533826721633266546688348508272490606595312179366532849187010134172050520743651570246694151335887810624793078311037170281649186966665780321699296284137730739259845797297439262895302235723420311884026750400812434973409577705019163853081588989488520861088743769347336553311061421728408920953619272325701088666747835053271734290898942182170291914552841333643566257819932855354021426273309891909257651895318005052115451291576884551316004082831792419112253022598582632761963937675870727103766922839228347819729013208482796009250117030037633414493273203345848892236127079058131272669980226483447738289188980132330453486078857080787205429473425751814255731211684691539513427389542534571679663978250099668566888708168043988699978043498201053160888066414716041252176827093319776874692985335155912738269431876522638986969317296507303157439209230210050535667634461345334840982929984198336929545136879408048031308350647834767314009151406683329001588918004327343377007590753731702645080036981525640970818146138135867345542144324062918316576852511268467819710520409773394140642240504335148642756908945287437554617912924869554614041616635756155225112300485222957313952837069711081321555432892095786746166732648131033845115327282147016944794419560963752387068708857303182240633612849710407187387336229855599267133575864684771573869973566311258948243349034392088905429393181889813581611129488931905055451059332023762773119866432908304175997233082216929417121233722355501963054187694286466135133926315831624921732870643543034920272836090595185239034462122335437217961905729754878324698265270642052771596585301942714355587012526814958496701528143243784223291454688438972297483434766320436064517488326419260005573040417647018692780296663951394471235483798214452493488914443337593674159111755064504453317211757678218500005837288787415185375212808146621302819544924560828545007477555075736386970106157452593819912415613846375155977469032362706013263090464256586273000003024731146732460703303982594125011531450025324661136424597969705455592912277993257968052869712848457028650465259568758046106638562832308758458405980466932545436726553720315188348442564450930655635906478296691855160658667129157505843260393211585542017908239301509009758533905146677260232627903721983200783545428256823810005863628532096632432213717774157658944052532003060603354414762098979187308563030102522292635882107783270360587306347162196685796103103982346407098417404110589829430764555717531992783580124829222984663387814769810356245671734796726171267389924764343748636873918457307487528949314600592462782484274354328168196272838138287584065903066460580107399034136711333695021096808869645095593782592203501320289278145919873520912304799824734415186630367187708100014680258633297695693673015416449471840936393734452555399160771557700827540042390367982136254610534257748933481154034259526954090292605353106488132614482106809260568254081989051433322887146837965622221015604947285446708562312253330538640661041997802829429701581824089860407439370955311730676293140912837376120049400115705348036977151363954427511737730838454588117319499764221097389272173589963643543755158433337517910258691927396174372724790099028026589174788711477578137152188107639831809240460038868133686326336126416782874204841900709884123751811143961080768636254154107437888331170701221820099161076203745863321523964150322972015301068041993726540159919269205147032617836798855021919679580763674475601116662874176926402663368422520018187098980379289281074167605315677808050429482330853925972011770305480443186886631962277206952423458086147295110073006942266764417502416455355925355700666852319400814646462788545660108758025534772053956932325937846057485226509067589871452196648538807714158592355303406771328510433990133705587077642930857378039454266753712886409136940020391442157194058511308008645282399749530460984013188515846890661502957421805052535425466758260284947526135376884888066239917996024802148237500411840785545927421657154234415813761305245326479042080130281840220084411683065518521359230893548950696428082704473485128382096617639286138623086849266379319658193561555734888863703930660127683398322525868025869602374145392413280254678575059893603587496572500463855597636901871473513547640283275804553227999280426157983191734948686470382840889570792300691529755064278038926292391462992861341779167127357531486892173029511427854935676036808879436849750273439143999809303414459717545726561729642744482188647537476212184676920609484576846744970347867682460828069769610089993285377883493262895193676433758415462491700540095426398345589214440264836112684426964415911777665909785650604199831146393484256026402421227700843264598317000255960415955171594939723003806322406706072092104328406183383699622780207707836934686343581773975626250184166012338546923357168488888012151674990143858681165225450710205071718345167562712596505775599460005736418638630813893014986064533472894311928645104896290796414722103798454203910922644427781342924109264143955817480557318233162445465863045158457459663428370664519132562781315918935146856224799524171529750625944906909380748115667126486584227549405978205768002647872048538016411618423672263955242613644489185493260302635475190420107263545240294316050893952066037032728799490408272134910687795423300334938080733129222676913693317285472383580619355846961844757768100656587011008813683573064239983621344127847781259678101641677257119246242945043482472538189435580095548754616158707951626490274998878436147030006081637087508528106086990041504224210735079095497532153606003360525497926532779546114895494296255483624171055099989140605921620395166851509461579036933942660104060838465149331518603639367574192087320846325634478429332778287169550678581147419474188989181655915027583093372361172757678589504053707280642621717419243135122091110724251874987576447594298799760079382331492641588893416971116268661567514456684899377858762611365768829917644262638552229022484587986437599584862762815850924787274618524121078211324583620089817980312233588456216048250512414915126223690394196500858153977869790865533144246736308892247410426518155160696485418712667177145017830226263871888426115033591333897219148807533224076619945303945126331489572896647694518337700324695050844159758333738213298475697289684797835360433422195908458233888518353243890607671726236231329307368044119722276990808255597427725058956957549835408876958477189407347908770926763609660276678967144266554903437864041230086728945816407325962103248315741510937638599138486467390683352934636555214897581550566079612433080253699523576225326608206446665038557674519670826187406225623454415825533213506519333834680408039515863637161756267758417163465305266682302416640368216799173044257498771379438140334206763987411457743923192592377297684685631656557645247480706125260670651105824832694540737618139651967575486858349308795562244216142695327216757606124623196355649993814119464481539436664660666929955591833971084744247168235441021778751051523974979603252050825212729552674143318537490954489342086661782812607149910243295360811223606034320209435782556645306146466261424175709265219233391273903424625537451562128976602921348629351510584632491011933651561707747771274196152425273584511594856957901166998876488901963855972775903616564785731593340827497319282364167333409978928011291947179514801035501985491430811196020015368652849352120945549719096841400324095178976941512840699909772508591352108331257124414758418473205304627764806541509651427495500498788543505958205623374511388095679310528008273283999560004744722553641525922189624924738486965499112238689890882121115552294357425717362083700426471536573628332322941714012839916286186032569534361226286508276722584678976602171250589546957629062975496195858902482556848915370258269676624699236022980581837885559356048174714548789151242124279965618209397617191216473682684526926082243893456034989241511324136057181192270504810770471602161532030639455064386602212244085923151789349225979384539886932398421065103343488226667437441791907271109024804559168090597474105261837855207006186087313526339144111065585287134115856569988802720991930150042731183912824150433631172854655576675962134116065996939271835074284667217211146399311699101997841122222309270256337889836746832147040337395881804568313435078129755495235555080093469713131208785876905585970847737743710764382975329200518725398175533574419942990584514510684357971275670666883001375464059141830252108931036554132654137445091789045187718734163295640668843796317102165097321392124056068086755979026761984754267645648992014353125908153844840057583052333213019331812703280707716560453899129737862571536500560574761386904708578285545442344116380180405380864409145208033832931788623179424951043080642717405682276436097491753961991597657002193546245438001207839426355817646425236126580284953375748955627294576932251243528089221276156126973764461401146796096724121142102050788273963415471438007593898756054585231983361863524078935414696908856866815972151065319682849962847065834226101179217091072291434871016359719587969050354284319655177905487042335505038416199101418216555311777657241858830131002103462073641946982416945209583875911179482769200579265827823371055948310148103099145457369041366699348012810274204447757989641857122499918319367605100575301684491057131434102077368424999310859094806911208076400136545514241771878569738985279295415648084959819062211995945783650393175294975157844964214314594962855392236634141241920394810101667543169749139803161326640540189885496800624979410067818735485905639271060069362088175806169156008350169863765030081287857124301253900668812849208348606902128770640378702168941885057908953408627816009861858836625932368076344494512684622762527723098371485687253719108276152797290259184774512431690018398540620719990335950705182693852423628491497022241785497494634913215771709612428902846385808886730717730664354167301639156857603434858129161659614838408028662046799503792439380474000144682382116871695257501539935308260344976675029171766303145176426797324330873199861886518753634326193037839965340848489931188531177258267531767456493762922126447181623795185626253474247060461008692310061052839027644366112622243577569080344187743669187348345519814036442778907203432595719285573218305009604865692271381972718623259947455949987420851078358157692517371708472327308068841098978822530083942373822352227297028270455844763996164020652944024166270765541852164140504801866102387708830455875133039081578001547183341963916246215768381260667871898109701394568136476727672445295396699109523435385481762606442592502986599764621628284174768641888882412975108621088090782296987703057004707483458634193268511006651076253528213504125900099949924399474128858510780900511927255902017008676585014025935186057016643475269552736062415189873701928338767825583433114563073222097886340359969664095979483029892261075798956363575620685580681466752000288775953716000328864806845124024736390790379433496816194655882848566378976873269732313229691867236089845711332865923920760547055944019300729366299751225383683543557969122296651153706336116760393593239575770162445069996119884427548679882014034537442216743023975604060457468042047159187551969648431679384595491161907259339955156754131966818547273417280819767717869716928591718138041815955960861860410140084354355969195543797820867080620775508469958842616832834242108485895657781493711837044705211830670767042651462971623830905027094745367756294648009406642915979944468353866366409663217203523936012463846787091369857494609795362841799005749129771480982591546043620363936063707306692190461925864465186089937077113194249778385234552723622966708564681549016304573058810224283559714153150297612592118646560415074058519358247281968525876993765673791054180252003901224456361503880478861730248864666096272583220329933863895459882740189247877065621152437330691788030491228741709950535319174117181185621072541132704292109393296728735322084101866699652814519626259415981616343581467560519577611098238419626735350149704707454864144402054123756319028011140662867520696741308365209312575219524042854242445893219756335056712912749431486340318291947987202532620301599101273330165244997767667781721747707561535004065935975186891496454344553435583829838894023708603116786958770895856805529084125579518180446545767056837614505381946424299373869220860220969691065933469032690886912438677921112481571193106819183752974291085500757967214886994206734029407080400190635433068731376132807498526156076396450801487210382939945605856239024963225083931054002145464203673878785961750281063329207339746799984124544798611013287980165323170432916478487267610738884346508916770239251707602323803602518892781117822864500172201448858095072773280930433620762096643304565220823524466842094302028538039763465262478482322345514259449835306705672625512397342640731045262224665517780031745365429777505760371916153198998130177098770478540918779991715277432118097911930080720958233696484180294304394462961409646900618449102702853805900319231215891580145861048125578970040623831032498828516043648474126808003004615469768925427763386578921382896988973816347571322304878996758869597601481959941341437132394117708231779730357327192711355584937869344530921206391926264156577203392328827545020410983777164532757580188607752602525971776200659539699838064863246042254090355683013516510327304970146085131269091998418830167715292098551504864326521476656724152908988798260095941354828165613980193802960165628068860694541659930977727050296129907107649693151611690231289014120968313721507076550222680836995850261962429160481094382819287522578459487049368512874878525162354189169401671707421449186731855145391322290035262379155196025622151229779852857508819769874457741124861999764831032475478654269928009159748265909187739151018050674937695991562198394180571851164068454664118796981176781311334613527010045428756782589910647313045682600497850534919675631542505179180645941689797414230030327938864011886362874505189046461603701641005852723625641830425848603425109583718617761601327927606181671424565872195069778182408499348694639278137881883624633297250570241881432822495437529177004845646405187229935323498642601645931312718113597293164751448495543848353364128541656375840982331520324525887131679281626198104076193756487138646986925131242677193015798492594807783916630355482864702366531177202172172400747672646340817398127534355450538438829099164142921499645676059949878210697117240649288391076905193531801132428140795608919165136530320329799844460460437278147470790903184556244498401186161439432435052647074484834826052775349539210525661099730485792259228635810248246385705796572180291612659977506404783963711297668523828481435393334616237438496306151665231807767798421682140121495836398769248502455932196774263909957070040192715090110971173706010620517897274836984732935426768547082365828337579333096881777753708018978893136354495270518830176817160006375075847600513687719398881221520010838646336045080608386899819756862982365636298473943764470772447142629488616474793871204769152768102310114812598616791171197632850683617386412996502722464133040168793123662482976944967812928271513291272463442268321317168923154267085654775702641179851052881169750765450378537533940612154639915932680166084000730315178661448470555741752157974457184523139978006565643950850433436386066883835244741834400795904007322099886548530503371712195286271474868708718726208209392871322247140388107974095111427259897011723302534653764900988891545135056481430333344088774540249910838858738385554564007864956205288933093318545307449890072319667930584732087424962369089584382613687771592147107200627494742215644767319226114702477061269749529113253266574446071049410435970190270953719587395930046200080143466454197062006258554214692701913425022067735047406564600874614399472253794434518725694363371230977599223295200318883736353802804743344360773731252870800294403154155764024905394517155551092348038362739376651266315832851044415080857771230674152273791034661808839510174649472461978991043815046538040414731586127329473074284807503002736624105004386755914983439352559542478524602790249429774705518814650283507133955413540227428955932560270665738371322646957573443069503164064461851491502744227449789323738065493679018611025996224129841756756441756966198922200806719244758433072576757221587915551153561874124952299110101918314351587882137221932249473770011941619347796153060761715972842702893254290352899858769824339697827038176797257980359146161614698589971757118866258467316902340146280110024221401045679629877912755974120678679693233853502414490180344370130384853276783328503418412653307521157729755377299194360352185523523768199642411156015694882117128364667477357468229606180188828842380120246112046817860949509764051206077008726057405462098678907638932910925247369767667688983520240768286205997692870621493765741880636314210774383116849428103694010529475867046374729028183891240742477388285375978049254584913384196058244571282690795344895600320968478377940021257104384021953615100758704791906965504865445019546093647602660461341544368466462580405020868829080966064958118464498924898115431976717001090817316449964976161961294083626455385771748234821294524804398339488233373971098617967249422857898730862513434231534434796124432248893395901820237314485925035914757369014071040685886944749955219879557546553993178692790468717207710467215033190771628011365074413575291858311837415495356871814123668677564261492273062268809633033238688579304331560825004752606163924541276383861512023705695118431045272977006941868640106612566223606847509307480743833308069924008134056071747445243383174947336850880219586413684403190043952918126845484264201389057645473043999225636218245030948211236191722949669695297259305163342710241698804941776840852580798494425302760241323664426834418747970989843666638330456648059776272637091764107858255543861276277974664147214457781080079414127222928072161803972910257998433205450011321108620029187605848341880474737971555861560169417447716051108161564670919324023266622180546682330932391233974285186612024408998296088236596979860696891401801964320359007738795709606171898510523795656167531554582033872705810727657242322298814150799826515913920200300074214134302929999710391936281606984693402229040397176822547021910448459962015995918805982388179209815260466712510731409136736846056107232867056395174362522679570003065864712355260411306445334058817408276799511678221344507405186048330773457015149576107989793221997322295170196476621797821970099106158116903442234817967488811133791692560687017649565755012289359320583796375241754902929985062341645167693430615069538244604836114714109271090446300605070000544590871440664943982368234447726250998490584452239216209979669128247801766804581518001483894633595195523474997113500324449538480019700366795475795846128371805690872964917515825262657080487399711113187341365665433841218178004583839554580738031458545741593689971493224564386129981796509069263677098465163569573218577301874729804314913042846640962081130058679253301116424130681319581020463561072931883131260811197533842726566310380664438060114113572517940888819349622601088776549322666538129285713781372045079795809169517509587870524969576464084442890374205939258592807799974792347212526765876898176730393936169539132789460158180266737229430941445915397939672288548539917688562988687980480760131737525833929036704273965049759837624983262884290472872566724622310302206018751694091769007234443555134638446809095260763639448518202571209778587944176066416954346110732602484766417553804404818494376571924017531888977077212606837051057374494186182677344981465559545802995093518776734288559687908959478259654093583645084288923156507180458668594861470157416466369310408270016753427772905825346149684556667710566293527494771606028992252181604723532662072600126828550878410729112125042666497289190150385041828174473433156353076790980969970363324089624163145610198646905016105683823428807905843587555641148897137563736801234276998513405434680911676869409956930803818473112852186092430182465418973723410880430447196449836620747492130757296345370215077033267996011025646105099383449855336270085891700275744562854437773456708099604854554739543920624199773472961633308917258627309164759661714180801725310701344811127658134403225625288363292546450512710868866011221694667758579122411417552369604614688701038460825121413274378301624658066388567156872054923663445026776594336278967099198065913840474731623077146209316788740590278695345123836927841610137654478559302934937894962622457394374653713617308094215472361023576407456125590173181551226930615787859595015736441789494972969283133101471806434166018973740301794658685053633613546388165653585318455625615565443193171324425667645069471008204831926011928815469998352820944297076337432104907498357857817643813720883031737275553630460067300154252809361226734663787835330129698649262583798044701865871888167816772448888791302449839072881691467022570108909575566384815658826169515424910667643078964123801192624056494023746257931247030806275046069254229859681677701637023123679035881378772092011993327112450906415361208637586397416006333821145685339546900852593863488323899942746373191838985250664600932059905942589118361254846801757438955771308448730793918266896476804049139759966607262182855856860521892436788529270439322146951338095948704833123003894307199327533596950502750562344342071904844044835605329947723956914879048162371700355369850482373342969315955753819944401602240871122832906236830357824748621105752383021255703107746613377399767110565174703658481774969908373168546294092659795287629674240687822082882353431327669442064522370519683810846643228794652193728679094415301284278152285951982227950173447369281324826574663238328125030321018562647984198584181215408296307440303886961436178430978544921582595428841022029882412048055796815473559954262323282754304716659192824534897472515786204379018733877853811872428880172736628978135727771828372206646595653563139725249635991058806032380223568044582346460865066661723438194259203537854442089809674688122374844657183838004400901726995607871739286362970082926206576034049791443213521051692591328287965584858189867083794861509447362759705376017477290962172067845419206175581811030582666677439551523585391252575652819001990399125079556332915402228657248945640398713501799647842506276066132689871240644326128389244362719983085791963950240174983834779319261392938420713074235062856271475387325740394735580553935754170212893395167955944764880542422146382387245489649030709606371527252881493744359126149269651013879438659492237352783419865465582042049514845581022028961756314771014219123901595088175224115073934870087668534355886391212827617183466483618538168805292344430513014334311230474657067204668798209300979794114675646327150424066668603758320859305170571383353894875136335852127370102324833494737730916362351658100560586607024947813950435385843367571989545106160762491323814559163349959304011262207341998972089305456345926974929489908115565444623619088295827089999418562723903188700056615345894844186353744011716251609469256730023890505936127654414859041254355492442180192857139291279229360018558913369337876344491851696869279735141891217713496678488528370760502416698670507533007536781273845324209349376126574025853750403762678159120410340041651848247303268113589885805001567191889772900627432337862831907907425020907936734213732358001555678416521398150671888451372680218485199700277287076497915757043400744538015631180383378134533349300781662605157857986072787617048169336673753841434198224593919032691787880158865392464979403236419166733902509578097725815539606343175937753662077876283504884450383589292598949402590970546071281489037638876825518985216909343733786838495363059546849530061109313525525126789095951817258322987355779463909004319308468369500988129280648060115036968459418931627965569488382220828043220547214684550815224688052358728176671415057164018198409007238622903195608727816138706447154934589541941407628977559824549166876062037100834573048388683114127190795505787647173854367609513555412543138567082750329723882341640071755597488918037251635169375643091982894823946810962606627393706088762968527903440668024837527233465693355416350566973575012184947365020026003386430915524900229862431287477705236055399823033238302246192028623447725547180901436419499406464754801389345871064278271748600209078340123282174006022966252361229868829650122307386740830350999426673167122075403447659899000780887506650725297996519515483559515148912305274804389649612119135537630731213105952970293338606666012248810802695455119246368179664235682097286783410233736260703355277649058230097472475193985957315007153251637215987934056471823636167757976295435561293068213521653153932947338234809096213123291238571497328153678722070940284315623380615190627327424082786626774079653894667489971269886304698115141245825085050068934709875329021566704281092936364114172050019430717788860281083361278644059781461459628709559499553678070620646243432565499206318342305527874808651391348781535399286955327127157681751356252408080537944522909370473354365042220686337176533052445237619615995497212973095518960905451089502952232445274332369512264268447627198845801216927952286594176112128274425189467363538681656397109220827286880970546883968779802300775104622297977709558074973616754259573203236745620078299453399309795601422277105610599803428368479154351681247384243106005536211043850477067890023219891704707135611255153785309779219078410263685773547553438792364175076518591469167104065930396561886564737413758563456881484841198410036435023960823467378268115814096836161456812872555673236820608362567596437624820259490640710144116637115553426518646779309837516084670815870291958572550123620967813879203100686315333478584496018279099215251603302666243033176486536586743111931235029118680687554905143149903848584248915454500552931040339979194826421093816146072271589515969021452572225007126102373882445569821391276177262431231518973333793393979980369215873934530075301486971570877654654475785720855074331113111489312936096641839831580585425248785223502247150902572889124733662104238159416832560567459069884533590422790448461528229075349865498825824599636923390020387453349061185889571394134839295534178914306421925793711629918092835566238111331306223209600706295009142884431054457094236681138888721339198486656791232345653749728243872579830289558411486690020631144959642805139677930304301393270952689730473997609796072626318969732583274615057902026687419184022464986391476842274001959722586986238121089788123048365943988961240497100253433063042819044479656282763350409014376985591428317333541631133118441894796938036787458043327787645269840993465102986845107891017390452811541383011508412216907075406982440092519031697885883134892370886128497348814665296786590086568735862806642829095932832900661364064785984858693428355878547245581076970707448557382893780665016462997763096855723257210224656877726941624359419854721657293523197237770076862084788043820148385444467070951818742814290600675576771096543513943174128247990841742006334204285718549908557440492204476868385902598379307332524314477567713617825793672883107351525396743900599904695018540323859825876036958756657387966392083508030950752948004072446902601555649423988436694093991721704131161224702097164441249742093026021476524019545519821012367686920535998665446591042367880001434414176391167589747002894514611208005730954822842460764867888794072087731034197503694907156951281967390196959567702607038190427522657026689804419000191566153447471556471788896776295356554894666482253838475432899968664227895135621372504789067130997873862482028661934661196698039448808685067480003650874800409954485931384357123839208091715112705794248501252042935931547461783259688222203619136794796110847394278718624033489869451972400796466966509389162459542166832040160955894228221245443962894910840839832759130936686064429768044247420884312712624727677318771440737935864012563122050023529848989731148687033184063868738024301622143432279506338954057424783834536073911110084825342912700323672735082323610052188330770784311267585539561137496865972774956694415784725974116438800250195494278004069559256352856859860159264613712745713145194983024579756216519900188617113671137906923410120596611937080149223952940673012701067751421534043390411071031658514953153280458168209764299229752456470452350874630906243495953776259614931565963480661708639846875784108559385059929612477425231024650520164616888390277752339729191664000922199413176378850055901528689490952259602798481514122849875069366485404966700670550266230605305415446302441220912040134131022452562653939153717821467849300346010214412483211319375393563430663123378047420580990617636542813184356841346830943557091428251511620956524433866982597014515476771307666536812900881278522913767895438581175062244459701388509018805452694688160981713013641484199860557831992754722035421563149970613647265991701071988092207405123637238544841148050347939203073155488903852696498404870250870214756201829991038349438908853241851083404390355366252505709274544330572755339922018251614696527917833859104869702977117471827501716955887154009552157415563425761059169006500829849198293467816493408236895965288428168135799646643529394775043744993117483097340375847130328469547561939582987175872749764987432841289086979107339530515713563936630115381061637294493500940566656986496185121646180923351468224865691568657882485865604471658220766714208455649494414530308252588835600345552913491761829647940303748494363798417759318529162652334172378829201672342554710258470276566657783229247233620372401679088283601797985443294332826863506824533791687750277801856540575958756705831572383830153972501836690951845396043631363771934755452778185694157631928100134961552839488818017098920034510548907681697962714783137374418276493266848261728610961529583247588794002569121147729980936138148038846338172430777399500054275327547183679213439467655269156967923919501650185206798719016919030054362569480023885523262381282403102107961018931713108808774226993939757258311295509411891016335896012946987561740420921115571897054606514092665115530979547796741534711552712013218727243556275321325268115179778609984533631945145762134064219260232505438553057426742277011704601129228928928914417328612359549708494353834648720028098209735149200465608156274684905732783129665963010914956893871171154753889001004190270587387911473325886021736828624817521357805585657597103674641932083202969663006686522010834514487988732904842893228285055987074392483450298059266157009612239346989688740869029747584240534495086326221531920102383768723813101864933839936142322527094603777064714680852616925100536447348226270207439107821091618686702400529305937419300736438738830744717660599849829962349932927835860426338136972348565125230372686345207972223988561882788429082602470585492363939892475958539051530296740098133453516749198013015248582545339857490314085051964735078504739545574115188615956279914244716204691480001191823542032116025579219321439422521293083892117426721017105108989950353227726340649530264362642657949633317707151616174057214712151243572734850570375775154552567477363284258745302346629333980422344197556535512423340796952755924083368269038303542249077426478059737030765175516044980782708697121011135762165853127272948215891751579276861895146840632907173714227198190743999289752765916974029973278766788926263407637141076246872335256602273480811400664879831251051199453320950446998175173100405105164274398015334932182358885981540829979994850491017362047800060651065227564837433346367078657405758113440495341655056832990220469805163108138974724376750873573133020749281534083958098835647926685084826536540115263082719947204213860387978980061017813030760674738181050023338737412818932832464576850928778369439424777519042592220047745582196778968230575313587182184342184935582599204893725038176912790700047766892066117171224692669788806457367687025060101930960292632680002422165036293946295437347384368316976813599513689226276037051847369450606445744337233837011157300003592896633570151965064029711564491621569400419199317982826034539077939287142275090443199633459168006929633008784423987780954807964436153736797331706602252246209947557961542907787966859960085007639022641696556328748151191416494743801339967609329811172878195173712858215433518435063406024404671704967142200374295599084442701716113502223672085432670587591443087069189518823794890074340497674523181285608484609860257735613929546155236947772511585832631765383059608346528714722687014818323025903635874043955819294425123930524675812888688630651384572479070465901379538371294933646705442838946990461143197924542560640583831787575834666969833690111441703516388279917953962003063353120801676810922955197087378309758215131198067572597398806566744485279956886191498574009785529852979775079673556510411286424599712267486088920614970160082760789565559749775846611315318411271484180563697280851808297869952665943974080208812755092611579785465350268514595339146454464133956864889927884688184462278888871593562561400797015201767100772718034489095903999248654696870155543122215780834620438626399754353536664747505255647851727176486478018437813385004376824542404205660172416228096790461468233145681622557683367457859619690870134350806463617780099850376327936401594654511508304708491898469663621041331452364633661566248120739160041033747540602714646611952494608161527640208343887290148543557722283099273904476106967521796268303991854529528690434066417340605409855066890691446860561052704214322719454896908313286315537849018507988721215049566341561157031611833111184084256323216870296902450866675320617728127017217586735759993835722381226713493616359353786496387190913287362587233098916691452080740049883686984060573017650182738491506814696531989096459957461408537351689914952159389721010550087922562960502807220382514200370045249486876263338560340176707518938395904963927970216321231177746702644756502643580224176897730765393024189989356107474034845399967826095318850113934911439705447100695864677849788449230945806435515187367974029689538134738374236771109701687091720306951528209291789212965345376601829954094557315839756903514258690950324554608463377917957135966250848883149070715559202127356816437627249072731173594130362744593794863514266271736686923260863430124994153115495094628840733703838047026088075056796601079587368207691107361962381000134554078909033669947134870402056722917058588400270203336827909518198579569702155741834815126206373966402405996755061523804387377477235753300029140938230667947727126452615791142541850953601790952736261303566643544188176915082732222561836813964072978578732158939829476830633984052568879512701255518870560286130757361346249170110815862564382042355380942638084956948531381653787543887272285333795909631541273107379560642120141436097424811568836871242019144772509898176506607294400394720181031505984784349243496719593906154552053159249253230490791238072830294143748209039983528654033804496208768664646386101248296099288595908274259995447846888737235006299510027090623858911204052213217402754977877291749008264248552774763423142510801831211621585735929604683772922042868311588777359794913415168517540306443914583914717842157157087220042490035546683795997692099055622759650042244064940365860111880257140253944224633479538654794990295145794857571602516980135917954966775617354657745560209196688912154591086621689558074008699955451577575087983853112209760199406627824548958184407593934925730085655316404839756221565554994802258649223425535340557471748913068595715589887181738599602218977589753124828947846323583989120376119490872216564779511342712487949074880786682442958712264787126961557373930453130261261804049404871250682880811901239548700675808839248427173186548288345482266682598583279769024491205522838634437928577225157365235280280544839092041381670963442440240582310476909439964691888058842520671380341931304865529761190052110038094897131428273889698429787105884083924454669173845894083201320973152616850409884348164019440146646149405151673681935802477982328993393815026213044387046249498731828713959723949587279800773524975221827624987451929040722564787261635607019397604104535928599513668907115758688853311640738709889993260190678731865084186156998318760302745375695957930419715324212155174266403709912327601844307757990605422439392848920965985211985017862851533953729381608789063754903984648873072826766059601465150809393716790456330679180693045803842066459718492266667461524734584123324431518219129085130196860897202307434244961098152514350922802982167892973938439938406098730689460369414565326461483149606714915574248473601560302603374039089102136418241824154572104341439574231526568561615614571540653055220539855941054361447287207472492832834902674410604128705373338080018846262674088715983037803699837042040044832571641913577203637596361248153180442174013859758933678812881841270260263575442371589680785063592187985983553450043739709503493445179513152793256646173338947149446483856009715212888514009939279665527441532636823445718397301762604344484993624910384420846369054819637736452695525554523467220808905451931544068131769154181878879865859322149977169158603349920252883817059226051197426987838395115454164825159311208720470036848257639706411771974870396156230121231897391014588700669493522485756662752888673496042779164837344019242202195955282007507114644447863444192761121104036609300974780347703197385560046695295311440770015616887391975150078992473069131688260797222435494935538554712156563388995817991089182022336149937810947924368415205573423736376188101168963385546186719655405084004095635880104532680283478848521519507240197414316216116868710288783001582927140628374070686470846473708643036199293279625452089869082131931724766048683618494983728164864839877428552542891804320625465930726634249380140763350101523668654262268643310547405935862103759271622932240265771284173544956348373609821517074733234363539609364727071613057784447176225512552102767217502255593416213110753772071320652008926509838131847228204994055600743264423703861220251895334046785313546317418420274626193571258498640207582516095972288873246325706152783106699943769593603315762981502916864789587535015081938765513083018639266259352055459834905524769018829835067398915838694721945745600912511811740543356497814116554746362578232755327223007280593504763052660664341091456449026138734671670601445490932209463813374096296258138662883773699852361202048360452758570515913198787654472557468066660012233506172777717857724591576471591437383076316307314274178703710209305281442206542502318526144547540944122512116725748597408320130361832389818491124501977417716136499694960317852308238352305632942826560201303762091716804383036587778676366591082904746143219248605683965610569834535316563168503993433555261268838326333059582603142966896277300758666778824172488148872183262780007205234095559600822293049723331412147668570050195834916242249053116030993699800004464219419741397041099644614776390619741058435066256080209453274341984539460532559034233073368859831619436806240408841033206061802675389558909832184232295013523794949888771999975144699541233908772113096292890393915831205493464304404224935240961683101685626316552137062467840822575215200351484785379278991901907203703700724392178125445257251793834812041556396703248951855614567572828166540022651520789091385899574787521427859417420096288478548751956969393982438169029784325617699803900956530160551483940107376970199709194166096860713900402867823181341502044268280349698277898496315903011052676248360448112072336113570302246592366809750778205629234315333849918885498429958162354937949901434775563727965163381128632255305959088950385223309854398245158269210271981834680824381262794821258885936957981032748814581578948505091379000947517302201142546370795114657397202401451204667970490355780391027465836866613380586804535758114369919966403939735915881262144675759160312565488157650284263343849343354563161088279039924000719003621767953266821368459466698209826788975368511379884829197823935452674957295901411864030048255236603984618274105509438847714435516021201087032664630489781961746952035711167788040233782520501573739234215362282527984886206194288951215419016770740508471729049027652239456651594295576473242755504969015881649371623030169677212030122364929864914039294779484830678732731268955111438600595407164631196200384203819614279250420231478569122572559303919275962824566465146922916985428232227362689221760713705430241527712548392606958378086401465584910163339265679159824175254531023398084090221442107616600063583310445475743704850992117377185358001601588454791784198457624857635007400165333597736283742178171980929687758115563829864135345810665716366140493013587781066914804841136936408521911495771080367841419997525257968137137368171680434102850336112636033737971648662094407034280389339643926572507102548270141770833922562465983917392601961812642273744486584863359757576268623522885046522521636896359409173410042857577581134183749757534796869655824274547473078921136641772837152706348889660299799593336258115311376619310223799829197656198942210898801595304679010689157843236163624446406892906801159572009593596515778117237122527637531501129536005558594101482437959223138166717595757637857653437613969115263490033642785452945265193178272976750295865549618143886992662356938583891202777169733727994545144677627220573691329352165335426046986210485056253987670956605657456312040801073625594016679690727203408865520518329080152769193223021207036726218629352843864405857450120724722050604331146648570007232546583266796254716645091860894815830716629796836118538933126825809032147514377773492861588653196138076421349440210095752960775238775785959202511346435947556482848658952805509998393432939740552484522501971096765242835956457607869867484467952067315790213208880689347243703400508316524511183534696530835877323772754523042862451743082653881654538228437340374101370941662958513772649525369538808409048848140974412308799904614289129120497820547560981249981156064430788570171539489287258350190577085321776211335690516883501715244518873691029084670849011267666510853584477965403804940427570305875364395264532820686275075302662826938116911851317176703789443862705973705826293170047631898334875866814320520006624715647941407540614697491705055269024776245677744583781897568307143969620922010310707128871046240040589743029770270317774892480779677548355517976329884935094257686747118143461798928095087298452642173016204197052878865238487728895278013989833599082621171609407730458000228643207088053675323655777237417402506758050888699764290967153534337496548148218710881822779172380531167668002054473027357558567071131674921611894816134967624475672684357482769527070282591751799748683239390502263759175840075694403283937030063740821295838517654648788585885443540049466044899523660821479175443113389782279996091987707211098665278317991027392467970217897225807221766695475622363511368191118757242737234866615113710006144976573317850543073213768167814887012679959254462407997501371827921981191255861745733193925253704337031999926108504511002328216458213272519925997650411096355876206870164289938306414138747595627778801484874464144020475138724265745670594321991473204673086151097801765621500898793592218761645282926810353499785998209150419124849732466166224955589519411862678923392307091554342039878598761904812741785041856527654029827469541346341296208856309318609870240918406976347171352934112211731332196358222605721497063896579395711096277605977520131332935573109442582353684549269875198670565777428841565738027321081917238619896520214325356395421433249132582231217668082015151771778571547913820414581434706737336315723972433447458470678074556160644331452682861722698987804052141720921377806917210106234749789044325196986488710056470808933945163700733548649210729564772751176459557110310765247116660667037167386682593903664157274547524841212694380383618484483464575823268122915004057115533081990338587871632899345802362140405689843922105706859036314339791074516014361145253676157731513801892576929897133024704567429795646858570390751032106506059358844254016446144272508043623272488979521442751341939973727086794585421432882713887006667323512791845192608353763438962879743057596409558627876146865938093365136377281413110917312456064438392815733223613671951192999402000653741502226177848790364316416313739709818005877948120738543437571449069593711461159326491799409758757695132142762223208352988992057492255921811072731075494661531989892745664947714872054259487402251240395014663136176637438931124724635837189656871761224821628857016089646901143710074234867434622725662171879235227191811802688237069394823308809617639570176878542740340013756206163315252830361160308673397592863167182046694994439550746259005991466643287716789733675706260544402556558222545532596769731203162507273054532073890858559934272466884286950199952590011469932131207078704057068573686972772613102019735397839606965095368347528973468670407905183263645159467615711831907639447228428994961721773704413584663404345123463736984765401033186559392211175914937265105380479181669654328299851764042333011864550264594175098513970142116196015619151670847288762196645661032709075085502227745600850240227444872687132358307647682612603093294636756391254059133081312006213433093175472804965413421534223643081539664177817382949574371176628477625349159829797082091660481539641307893039464134715251424727081326778136807109638290025232407801256181355252027417607745994465251807147160390900977350997942645400285183403660136183848247543679354484230958554957661554762687946732193995106336932559967032386348951017891089356586504912994130833808834857171995048051178785050290356796021233522759769040038756233479010619017228796614017882609265185951621128209688427798834104452005011397015444774627582661902740512169569489633717402224235709830016013570477970465335877157558257922962370164487934648558214780176533170246829949004419581172911663141773053115376867031124314517652942541577233860844619891641390611573404648866349232994708149720799085729593415020565686138137224975075652540838140913670773300558848204781686437254519084978014067687279407180032720048397985180407477800122882771010185517819374898026480423579223848265516800525808136918904905719728978132596002536567626573768706638045391833771227464965734477186993989179409540676436890251112193785364544161637657125073578867089791482057064335392283456328770784761761044759863139229610644028364205276321070824308181062180296563532019306114652184116423758480364481894265461015934652927812811593276340215485126499311516487447763638847764614495136257101545058053985776035058469107635994483874765402673409212710075592023487379343707819177278302155930526727222776473751525429596024329489583309294741091498133086078815219511731494622853065317525410740353900560755169845820743922086627520031971512970852586026315639225523283783346801444617941975027494956481621535598952282068102348384302902094747634773408720176896169602726688031332874967332003618098080438514839685943163282025295513201127013473218753775189886435725710470615701478184117973754691443242892978135790459378058796742457568449900271105559600496725227189922786602619348916795039571426555295470650749199705968292564360909109896353968651701078172346820579399412603528288604598821842050800017089767368464504856010199972768609963035893564864392510772650565092253972355735911606060122025488764733880352266388457759013087211713666300044753088524519757451893521858535149395953875622604053390775654605900366134680136745045714182832589811391705968805317210158026526191620014101726779433630626420803045344078220704185910360069821401877309961410419623708079485430038064608286562046634147844650076308919368878195047325127868213827629991336558670797055803337875542715481600758742777508493010988797317196499033779307204387254111353887509115893271314518464683976551325672783718269396762055173770246196177935915137508003301614680669486621784543039835200016706392018357158858866597504700412623512685842104711245861414642075201302184547606750681678196955830686271724232843116250714748106476920631453605131742176399736425432756323361982452744476782183122715597851190232439090062854857510456234221314024078643542324057573956783341740486894814587745454654669551748208373075960636781651987677437326595725432988368365988020914747358274428346509501305653429017070843690314343799813439946236014812902460065666458989877239655980278169514097900697865692715619843248223612054665720875599258331813577089283507661619860782959896009877073536887088415619826061393739549943694145029492373900654799928646891048480267526688871422135617839148583258510217260621381907240066484801463494403681731558442139515550371271912055079906232953353588181346693733288829090337181737421834538392468413100683346552848685344033862659554529066097868109796802585110971130965391484693796342853324296700806239127411225309190974546929152734408062747374446006650380868122346319000853820224659739555357682855706849414888658730980540304066408540780736929648547148862457392030906852854520449727809977077570726220867438551466938568369193656494255818815317089809615187741297605044587374219801834651840700483224205741078661525376427154155832832852216324213242514185121432556416383190417246579662126040504908527242709519191290727267772099164204863549280183752368202068698533853354849442915559845469488621828668808748219282995198137574973760514126171842726764329151787288166299596897395382820703540855143877355401896283462493148304437005743527635941598006393541332525642003724703741575035712895311696532560117542797096441745650806068193753149499109256886247178408482492398771745965362124476868609732548186777913685032727340881236386494469237501073149731129991189799077453856914801946752211760737094145896383528911665000638389796241747215045571714298353852211915687053733329435230275569255794427941705855392103291333158462443147398818431072711082104976323672827279452437625853745190389942559398223364369634831356253900048547797318407978666923356975404841532297499891407957776589992081109743761463283657387588550148564808969392637018046196608644868948986155208969896854872850697555456064232041783461514071301450747122841911749410510602811585464414186586558600588094055713126447253603606493581076988665144328064117107225253081954885581254276231256620504286506548122273968382195173408123468257636923780481140133065748551992224573624406598384039691070984072232323534179379478562808655136899764119671697075506541403972760299734802593190568589397444304717869061780563731365582856686136552844094733531408323028784770571568216621134251415317767903718648249311198912314823363556300010652503463945293130231560629116394345189157632914950958937529439365235409571931125952520318565849119569586001135794433679580714707826193388044669394959439459888937847767930019843124797985160961698428613037882085678522941483421036640445309839053112784334922898670044647515686297598402125946505682708281399289908949566130084272848860160642879361400116298518955718131547727735174056986991364210086729730854356402735322771902815063694442544116653406070219751619400079272896289525614513420593693530499697204479502749630568617843857865562024425951354485774338914571220343916984243694671319373061390386330233304775300935957010941177377516670202601132324462998638296316177016027815387739504106734582424048376583516319188185090847161006747760520404067209745281291236021107171891211748554869627664323914509051552823015427048552265044490361853467108573025221611583549674237335035367038013889179470690118538195988021114253631902353358820959263815957253281153579016534629894149577118297482335963766923133131680212503874758648909537790207406022469372825486074199406718761372409069199904256021654289721953664571408078125809592785929687773351923779591546702201868388634655132100342640095711589542095055308239459327393690645419574328131742186120097773427579849673127441306749025408385669568552878140725484312942789097003913396065378261823760026668461757458525125388544170421208170435996672728486414990888620779251149433091230249691915987837715531742098446856332629206931467628941360515577248332032136549556288071296205436964068059790506484213474142000505973881562880402509299395697704179747553851439807427983307815074849497251162760358099007047132680234668311301148778548330651322223187486846516807775019696696694679597439580319310976155316242855371878485136404289077705797411975783115677629109560459732427513576946447295809530477638303329374164925042000057516875474321410412548779619289857239237298233339652582140576858007147770400402200715884599036245522155671154991279443807494316131689972753679770599326420210905094026340348735412513293962650528625146120477917094883457481397663644408555298857080416844619063218925760364620440620756811013810897772287032842742716198953253078991917538102129674143176043625649238608202646108512628549657512149975120895501963243301167840697851477299519397611464582214672492740694001160842006659019834694258487999024330167340455047222183983906034550661154292898829612402606928492944255695887162302344486676829492417441259104924582309783371482320824992450807287209422736401713092331606800412184820052394319517399383735987915902458654909900173161882980347776442161056954759934265392354624854606457270284377775517805008665504536932375197156504761716841099235131249897163817486428960667498278700204840420483119445324649690577767659455410330652346224732352862423894727709275804631167223825508960308726536766460053607145836739187386514945304194205730885927601892470510244995005958776140584447017118179886600183088975285140260747444881705788543295957874385353241357331274989297119407449329746311310672593608375419807833147681347867742236672433668525569524105908370302056429717408482093660065418306984464676829855627025116814996719837593873789167320998639746028695042786689001253503798680041739334062850491248315774575805712793989402522105810320256225167730543628685758270942118414161851363293446781062276001941709073202270596282018608011661145051037367608839901847868180104744436666295858343485659472012273539504847795889101074938124479271366481876870713998250896589921568845553947855155375319638944465910711526990475188782808050580001577440040079478353574592537578749449251778940632498628313464905439151553761173085168773831329557113298769312581295384290046882049673196932348396017371741397847179755777370271358392648095319637585066473252747772372882861170545102588543292370015842119634928994162002896388506079126984405296290252793557151903732677744567705586846634949573898032192078605002255410062710335196481803441427619407786794685681689861171618962508583174627321692830684096210929658460938503021843149961640009302162567566161115108735751667311096404233145871363891357845301125058220534356862302562459949828924002051436663121938500707273703272479392150963420399485431689022243530446357437143464249599301205810577356800461617326117954428817469440251319147890932997971795147664058226241190862880819535852026435359267010935660595036939358663567284710458692530061861230558207631410474916375543317542158794080012785251602353892934846674775376210981807808324096677587126990917630460033798342057201067400372378862969732782397981609165396107074460024399343932104195567026688223199758242961967870750888152479516509576391384302887433917262874077792245992751458521708560796316863006714258822462330641739599167481630677945304697192294640129738233901511622078515673984842375734565498844398929471241000623704163541404711117436117061286459111787325445979141306318374824187614662279709866205114338537969585803841991067770479519368201920870754590755129105431321263677156788372245149000070158540337518313070023231929404677847574105461635053739978572831414602962259244857265318715149272729806913478983461989063088291325804227978724083300676209755474979388706454953962567734926899934613742498595635731261258353747466037351984985177536253608766105988467001418020993069090625409405240966919322801361645045388730902872195877895282936280767398508348534820994227796262609526978844129100333761583925577031540666668522617240314256624140657304915735260921552239333287123135863835174308136387850456990842773199801164097226295780992704172045856037412497580018377610345078562563177375129453695997034003390464082710879480493169673031213837913685674702338565955462093899471155676727385263634143444423581808415341827843458219919311487618650040830652070154278698341953135078067386781321069532831749824913161761528025210785712181728725977201437999420826186239824927022673009964620221097799512351206480086030909760892411673084113410658276498383474288432929279324284481121178503578458680776820371288074321766572841023580366980935759277315243000436763729315985729586487211556254745540721643664393459833061302629678319313527828631274474084619429339789853864129837586045910723433317203208636082259471945537484899034619401282950815446208388912697207758365862172225086991856223918662947970716390881944112926677797432487392182536303920409843664680235580332595786100479504476654729944391390373744038558877940735384324030694195696150847505865392637809170544652465092591685728548802668623622626184519001321263468045502673390495423370470640551015993992138350608130523666389020698196238332385601556569966358863814988173041721002443445420027725691519698369441060795240961209972171223087882627985457178985276759135671787534114172642916124599399244845283471271363604746272768018944187653264080481974512925572367265679653120139500789264108445249664357443766858759154842157573228607060025693757457651346571466709467057972846412535124981796133239542034735579867425813406785518843875863235733755124512681739110950505050017500708396717176412685088128427734510126007484299537029516640142420715304206966551540213607706458241662132633970962438193853353300146995205214280791975423269034475523111360971444494346638580919997513321800722607868354216891721599911580424181035965719803306313968007411980877238545925793886199431636395091865459568639230487745522092921241563247634869256283077944658526984382475117234418350419668871859632900982761440816306717051365158838804241978216792543287134710807335725156305798130213107299873472161550800699664078631641919805923458981394690188672455114201863001465460233459848211297085069767778529603456405545208402230896405423056144997721186805399841746198886545898595267515011275935887237955552150187816030523109507023896027561623738763631659281675066542804777642232258044718735434003588420596858944137673776885620196905869996079760551732062214257811168474013156087416238030255187897917004395621830723426941114423543763976515458728140342477750968052971894070588072304610908543055705836556067881941725304764649900775442287343371271907688176436492531825316354707044948539915196763782939020399023588620085472712852529276601373821228449559345586496885718355816833211937720890013481864388229828105040634570243593361341866718827752430612964682280729697854609468562434711556892826841313509554344745532157567231341179846580741884488337399109556025967796811262306569914102366688089713308174888002458512210483782078342776033913527595781675785760644787601117720451454022617306947508930755987190524589709325798028661424208094793554577703294474322808721369035579308140376844909951412178817299837919794700671458946780230825309722965263721199891295992984254861752167745087918255575225511452200961053643564085367521593348546660771659950649964363904221653713754650528724633167711109761549584950909155723479558369245678126596331509389620453197656298149758420209259479624217797292242731020875983897993391710384239059663060039251623073902990508075344174630050500974970872663602028535398481396236151879476764262607644813119782815222058707756339255000078540768536559633337552038510345301345234719519928877516880425390248346915502990260115222780774263154994817220019253893354053749976804943009898434259596511923308269469470242876553889111567855573374401475707035090405824194204516653958435334290659854013268110729816273170643859742071233856397463517437861772445029472870208474131295685292941381418563462947250652923306379705374954022827667824604586747313370438924305734371698370291821326273736892704986938563286624656371742578789677802296206354418477075731521112163137600087900900851780978212739077968126618656951308918521215477616616197594244286063272978875968147563935191730140151084174525753987168793626599379653364417440434814298518000312433046730672680996252676322110150079521520443838347065518872474461278199745794258814414134389316382726700854561831088847196000969481785988309229075830524371844712666729121602842330595072090881067141506750937040581331246573427982777488159693529541384991961343507248175535801024193200646078554278484235752078514784013751848004368735092388080203717320568228936891963293968282165685022437910922497085435732619348775984371902068154434113088260951711473567225539334035549779963903547969729181340628391693890728080822094248168876338102097975648129526069160098239501230365191603606701569720126593555047181182630748353486498911172325440511621402209688806430397386922849747867840178174171080123370656598535986231731021769460462716280934823717142508273486624123510125946495061103835911268884216544689616988634941852789296974326068446592089429514321326609820606252938538580185542826792861590923414996636768681774710792121021218845922462271952470799249529509984138067803532955560599850567910935216308756284244410615773749014029041295521131975918588127371196733120287648213777202615810330945021995301800198787415678574658720162040313836187199661191209791913953472290970655295253838240635276055103484118920623017281171456106676872468418796083777173180588055109589537739663184232017237467185500328052773687525879365970648262810200054816483296645183871196093254494633410826363400695890247633982237945136260088717510224785120402868260886306746014251920446926795956129607339151624375959638390621481790619652762720156295513041439303537914774185279119056362272413817070315855179456874080856557558710177404312270458294373223679643951105786809091211062982191858755773591025615073136967210714836622621107112068505530770363690223216310886662637741364814614046078257941186252484554312267645370305478152006127585942298272341593604617336858471580790584758560163414840410157940926359849757935051028419585172782681500007467903393807082622127552870957771921370742950114226678263467990172015990876794257041104722023675716538404340874066761126754074734000655887783467795937421498818486868431293481804017740020513520636086489254937821316322682468545094816252523176970578098058601828491983726043722843922402921114979778413039974402518911186862797035483076091402877268300166152516821019549863383102260729011834654854795041130660325592246170282296184974556487063177942147420424447779911152604455053700358356535047379782327784153432300450750271188399881776876220580771208841860738701603054304887556433786785818702208350664366160171039793824374075684916309744628559931489895580083915897229055907855075454928897105962963746382229766127052805571318954327532947717413951394964129505221150815569680711598395839615547296641582924118870221675015055085155716512803217993464704116644879893936013231104393542323100873019112680913903733784485253799726275522163202687618893059896903474127631123231301776252128864115654423953498146340632882786909810632081398587030220162016993830011719164694844246462290798794069346555359431514335178521642878114064355960382691030486552086239710664561943465868576461929070926928534599910574212338765146157282238668348094393553634061749689165700082624853314698784545513910110172373672606178021274263698842752714001827450163350521347617412772656501339268121480923312244030825806785266466174272450428220559047417375674777014808917943251222629839443326700142793066051860701712784048336967916739171973315813963760091696571584131137327629699450495138562971460983495919330496753807808517277131820601058263114157172626554263133582387416851973734487781659244348039556762962707039590109146167853035032653530272340555559692147982051231179502515234704430200558002910916052441868961941656238260119267030162357818242563945819030393984615739151054641345912301975455585733072186986922388540434673138810185125829419809886321257926035135668470423354127111981064418397680494524300534874039546102838177771285793720540658247229159840488855639658510341793407690599391342597104806928429248331415707807011746940117554501245767251895436412187786207299301851749229802140469215892269603907998448067270689508142632361638370105918040796895657800961210767016258282361824700271439290076104020774113478061398462643102550764875063843669655631089137504914019604548447665173373364753805663843594808854766826364637617374721423579315823113270698414943115783824848633388090639988502789091955811856699287730042904132933516057020513270724223529870053152878286860750594832611094693351556106746920303863797285376840938772785941995275524259235127208966845469018333572587625529753981871572329513451620072602529483394262613682504582244112082214534842606957149988751944371119377840268147060037681499554265781938156766954766623890668867939572750746322672779159427040151609070541179745615937738149772880658684428498187416950633276414695688383621456583252350806364084995478754024943341218504520952912819816891748478476982837376924655847257742112179173124008093202220175559913995321850995166864579091871597710239056911159787781271661307531430475534979374924262766929414418463963037107833437061693416652306102901145144770208531981285862112197423418554172179641867559413814395723012539838383438893357343247839531053070446012750079715424273631221820274634821611190501050968564042237048629655500262155134516545747604686373824009691577737388593472793201721751567668427868014842902342427156957247120146117831577561232376688693746336135777498722375551812656932688493610556435138186694480403119375579527815803191601759893949365884978202238089045674302646115453430645046678540691712824108924381973075629485820882067306731063312881993913261726056118575973986785253107441401993284771591169485564173254251954998910434797600838855989505885216298083085729247266720294393354934227208267460352056393189260507072614717080780602095437779706034976342106029091478582987690941590104182295706611991663665333112180116933288207924640980908724773355008597479475437344943125657448655365624362732556602275834854576330604817415227753120910576521578977008404202251748623915480424099730809112131662280836448806587167318222725747040113552509439954336887113309311492344103564544124369540796662047617763541689254520890076959849185724051334465647525518823625463635543820377362453574508257188596997722201252846028183720015907966041006689423446608916200962026680543120150835814410168014671672764915413833859987757869895812273745825465422388309886295460843236789651568786825394563081362597622829636823925225896343591593998905831720740516147569572722541589267673309015784065201846386034342243563393658962641024611056874046948012090902512790914766008633413091324279992496065876381586034303747199041310176847010432801859705068474520160000465930657129961292962335618977532722411465168100489305613030141781474262515913814591399754123748218019785571631791187194367952047695133601153576474107750936320755881745403731596026004602706946611383156899282259923037157615531285688899627475416710016371095975982060830139791457135209778989664052286884737179458454112560557859127271002205224479069006213595797790403598199740723968437081155210642936021115511146026044985650294753380265577873664490852756976502103905306601811287369169868873668514358234414139619794458928964507411384966354931813143968707155280800559143085274300582771589971959574114248841960295420420945255921441275149004657778572763002377595551349336554545480602502587532675642210136384261809732170163230073087307214726469223904585210054338862410572874399000084176273723586171783145693161732123669294899260635083839161271365826520934776622682594225259110988395272755441266959981604073164553227829251670693592617258676535692233148985960193824713421363389351068087062263848350565606720453638189445505982016485869655466663202222958893167307569579175264555253946442073755027461979246496614678285193406664175071235623741336389275241352215880863706124513332772533331238433041014464412119969393916134084807106345173763664841068200939101968846898086143057957865196175405565586370440077271369166357761992567935574775069501345062720368234583023320396250119088173997382244324505910835457763540273100227792426144352139685101855406643279935061203928396060405146400079946391235010008705279221631883460532149679780600356471413689059469342800561733213796724944988760593040714411917219715928416257801518335973183619495754495589393220231996562014188107523623160250190588515677880976425735011188783441926407165964871105160496089500814723608356789188259046010455430212772624881652163975253765798904024937623908952979760831668409397836827715676792199927637430367344297038975016991664147161541304643987835915076460921432539730899930883834268135613428475796934772441239795515253810610788082221096612923577262367397863713841874925658013302634712208754858739786155741922602496257596153026850599875145438929032001084310136812026486091785482576746285624162818647189123490877386371338423827754888325657854078763469645826191453567001241258493067727702798383512805386733204132473953233057620725398881517206675508324527797258539996783729002448732434135966559202349595741154212030063386258007037195707761349377063338977423867437307147609344709079732358191985981093647790754479324383204622240302853113898297252367439625370407786488058968578614568285544680953960408854400403354015437147169921409166758576450906713159718840471579110119241975567930598726534217533140208130279273801764425284503221015552551067288329400908715634138182031602118367884928724582417331737879180870622120882859929451299426946270876352468188221191455566542896429068006276094627086467969724839486516252123403411233039419227838926658709022495311269917172901003756053271514964641958403519333403559859605405081790963305895264220431935371189217598947747570303110051388048882181639736883795940275583008673983786602384632520482167742824943439392596743684892404891076954643528908017753311970157619914046786603530474162592784128209186273624148864009048881668088247850932556144055787143691969077422588967802031192178357140541887755092450940109108024057481057753911500092240644052785797843936764850988845739838925988395884069191499963872274943839064758536823076121597217368068385444584559364971300286546773856814090849393319348332469535099047081442004235701235131857964737493891561409837509594675814056902909373226635692311683916831553129133765935242622226755378670317262276925438568932120621274288960441460781833644999513574160225646520387770491095206066923609356853930781898840392033176455654073917470167886066539326154016030628658348247557765123550879688076681806760461549802258575755512061952980066925635522065969754745384183664755912985984055192394090615546879122309779084959140330424631994607254504772165561147363051933449667684142128673029487525212033417541954463729460268924308634889319513747830911135469834522885322621836561805408799271106823225858710923602909151072503859436628197243230586496576983988615470297766225703360228405244672398453152668694292193042019852481521989693542665184861835241399718476160274863281956987423013002012658428658410674097704848061398832734207216281270763012485102549407833443898617079385684023591527318963830136294682190258549952844869252875255649010680699077400894538068721820056709952606844699482555508585776815693156260491006048535313913690531015154073254723280183869957463191896238664214303446245211754393529709987997660784011551004538597466192988560448575997931432940697494256486243790627312769073070248247106489190115318812931979326513666130886810484680236305406501905973202092325602871191927888989631479075555713278642048656729253559767275453435756676115539861073059587880484564875756151771428331726843782850576489749698059525686517531718949454834596654768167121058302891862082329584838766090032663473657891410971663584347611523476175372749901912680513936793058903918505802874419792284622526553900808164865188083515897881355138500747888167412645121241188349647568734755780747346512422416647924534210804665848556481362432269820061060911212754080600005545170817249174400369141755701948844098147140120138476751100661141901853401629026032772405796620491432341695672309680314975994661281102283326669234259591099870908775744487596349324058856690725529888541438727285540750281937217417274293128114151554668723036847083492408830902802392635917547949965731707731455924782024996034312276599722204120987413671453877564912135970904775023835127715738428406125385485813285796451203048684487584945944724067298707290384798108168557690392404447418632447427416372576507499593155908046429305969142539242367326831824126896991743394128937521987842189596060628506755963458945964581911649600902102939503642045776841242954989930244928010731573242581017706668165924844215179983530288050771366848081889617952502822380701223737614095289481038063087321084754657567515686346327610124000926833516953938202667666305388286659075001114049545224257902240651302823383557228861343440600753375707188897337548768357643045165595937294198192929352846754943118764032448798484644460276225510127433014624346049067086882880162656718596957418117909150810046287985543813286224574071091504768505643935037422775533509285960032950632306667140299605919040869994217599228805555230195428210308046379021192354514560051667545060240003414258270817348212960526473156491765481366182659032634628172433180753464206736840107401820806948002244821742198801710579431575372160421881579660282551791757779659563312709414658503542928532930243969255261559493429044211091450464872165430252046386817253646011644671300705328081034916381661444805339139249295936338211353347861509320967001240489237666804195830120676661601091922234632622424471116336964894464088772960866659062449256888555971174885449514135667668077038634863939749316520813732611809484420812650221349940193100368636544207959728476023727216071035561663498850513313899010268750337745299641392521697191508734706819883924796769031958175545822941132296927944199946662000083986885665332359036017869947159211667328865047525272379836189896382369984464831282856942113422777358932877287009571213972828177775838235838027337011853113125858248396801164430040357066034336176330745260512140232250061759579171474261278544633561147041012004466041062229542328259987895971449311918794422042855104588569725521285461639897350265268483403726406950630188373171335586458125185066249244348461958698419461853121863342244374487044466961464314390861578976399280417870750712039629477484276107846004412602383344126659799863932611276937584928960004704308332104549334861000592480644933946899210022245266006030309372088320083382273941476045280128760732985605095995285319690352505649668642072674980442732836515016683874057894839442600884007325761555561422923623869366333041382645802024388095590802302523047490985302961759836327838355195106836616258837732369795621940667171040471814254998262132153199889093208927741911742795856183427394269501176439873109010084754525940651157365480929245874884335674076532576486634941974558475938494325757927983347745271236658215260585433074375388656649349074357015960576649471757423863091908758902032732358172084657952298486376112920464597389804128283153762711068935244844698111638784300352849228412081047150061783084440563899560058294991078677636249503013409151875238754838898750522032005141271665662235713575183610042347199012361234951870264374638132880113708975152066734153369260269292575844678722261140455069270466013578270282442580680511611428341501112340248106754913441197135423554150060937684817296928893653454771118516564578187111367119678449195657132952293963913395894914921437654894208578237024967610102791291203645066545966971183775295018265171146025214740641094308744525243000821727430395554707136548192688107635111860686268476498216133092518658894036738591381761865320581129672154788499284582063964545512067195684411732508850505367225523869228691186820534938584975834294321210976472460710633060017010930630834016835563237003138223867992155927699546922424394311538849646508125272089602831228842833816842202261728058040676897891523189839632191101823505915940501959262413615287945800083569784425116003366689773939261588722154603844702034860714492592824633250528735571055975170540548849144101287999633451267304802163959970996553593530522157073491477875604529339153252982597717329856875349789439281766360980116488279095528687602009296001483236601661134470503445547241668304685290256066673274122551498914649511456768191163465746994725018867030636699002217710790594021035845202920783905330477045148976205176175332715381582503722206034071318315259561994439936550213469073922445548872035317293599433547542737961471837492185006049653059095695107983611105769631733020209272314607252344265893821812727486147282244735155683940045468661671726042906870639009897071881864958153053346687638001168903882583872749269222258306220788476001950757285001800314567700918427929773905831131185983635393967069614949583705692596110207207252293010249349654892034130661940996661396098710655833626210777638780553404481044838048176803123055296448455899303756894562967734168681457474984957603487966038495744177501114630197766257081943576500283802912704209133578785640900841024795193180071096069277166105918281071795405646316337100133666809765470729772754792493755644613930435506555157223135437445882370110866750687631066412068588200972708500845964275633197282419062855779849374562960879244930768089429827530849211613293964586944889174283279206303564262803043756042799920982159641076086135947918244394187478063166570898045512116326488942616459149147153579483565438645427594664391584679192463974707830301775874280087105097334914712766177999250738097981761031985730914119959980148839564567878879576235775482070405977694835883839323673446523444395795315664691308045807638583892703011084482548960724657947637208094018558909187383747001073658759500177586288658942582994958085368316862775867829603120840587880300962187885744510345957225141059859354935706179438820159982117418823935412149347978959989432040535023452318447298427739683828346897358230678253391274594760946486973964532100083373194457604950599654526253757519371407424538204234572837881988520894417463452879804958320572778647752731562726883242030616814280953843432289792730382560837029776181227091756783795676943545099703180093484795815789474361765299801230440256575431069528991138095302723445525561347777752979420885294606955794282473160767144517630946078562262053463410278918646998654771671528646061418645082366485561627467752228779619792843903842416881270247926956072050194214797788049041535791441689280336376301050449862929838261608173047933476222734916088313906521228436303187285567556262776186329688037837722949281165606586587339363625725996779971677659435729854129555274835950068487535276977793868610771705177934176572941503482405665051208554118560491448985896162221314032077828282988566367262042737606485635962304740944709564098436752626163434256671091380378314138117033777762268135740098020330173133237870301366517946684704975915228773234737828699328315740002154838610361584925272506604236445250855165163590084386899605533261888325154489889982018457238198921286544217789604810710042279395212419019815343350027169944121501215111377850228656361502868496488694074326617786749764810126468612939824566880707710731940932629468565411981390301954265490229884649665426862243193619009166606629877630519392429944659296425261126266057042167251612251707810613367645124019151282002339405672977983753070153452226305627113543484377183550016782248936150507085132248781355042288384441579951681129935201911080289851028976225103501355722726670684349229420374222141764812233737405088903181871419893195440305539421088251953524604095548130543443254745726042217886770508223131702033234852415539114201395674172286638998059376758508270513083023356677256156551133957854725108137549794637363746258794155290796794285340779815274048926652471449880059571104503201326396257681649416442771440107907726741564766514925365926336636914085780320047087888300552049988264361177095785980067797503172495803954625078959449232865110915576759117128255005013823301780065199514559571950551014249169007753011850928635151764729870589341546337562903264178302787983464585195912498714530416096025460943335083590513813195007676865513326585014919886650401863528851216784718266122505795138822422096166031290334847002531679505045542787991777428823414543823321250443314946886696137194959599601189805886198781695870156189937469613900933706957779513927300788626043588299663364936815893427374582614365773048475584866806175185766380191379106751387740718037509070788885537869872554888722058496899845569912374420746823994838207833812687170865337628328747790653728879398333012120848405923732920217079297860721718401322107075559634867493186844187624898359441280105303226144152401820927834429157113757188261439405463605502531593195946571887767048522391531078604400656089373256252599722449060636718656777466718037710948427177666642864090877697131025748996815586964817708121252125128488559761741298785632230831697491117302132490418536980369849447001646082949036295403805037695513400504380642893964264777244860797501736231974057701903456064368452997314106531976130995780256823295414606356245823789821729901853368675291720156546539217320759280047322032461072015859511395359442541951781289423063345117723840977575324558475712554619286852261023482034659056321936280177778583377987204037201247328456175966558749665014203589618905203953701240058924226166321458856931398092943646034625544038946623747857424774299982812083589968572385941358357301665579503848496651410146047654110519082546737053339329759699074828263672384132053566102505466274194830367498436341392497327525988089097945361259251299029431142077109132480589073629709433554504894843173322403991328454106350981955775765748639718976347369823369117463369308197513720843734483934966678216554839371994113255992705072230051529190199327786387926888232736364491685736622346445011115925046757941622790937348632404952765547446802103087914033063223880283911893388279627571288072444482630223719764750229765068230367748898413148235189487160132543803347441509040997051823723716824633140915643247122531163272734835117811851677321956430608960774994445660317423322071019305795668921646758088248249886238900820300155663555881760667481596507265744060269534998995528321477494751657943718652383391752808699213498429489200804147045696382719986139096809130336142646312655016689350057566322924273918074620187444948785972239027052694298000246112793146375064150285698553892418059379669710186320802135055120371820024354853258894985906815061577290488604005429563986776136382368516732745926184985230467380485629685546440744518153364966118269281478200055400395743070668566178535522572809395869247260969308384261465238220482406610119839327409420487543435834912651781168621131375850214671830592328197057937959887724641234392548804905584621013020184858378349755496538780148350653369273977627956618205601372384840791072284064317687706976250730980018131244440120825177145653825675423769233031972889993081804853268922405008212147886412068698113578043891456503541553740100031272713363270214249247915425435180200001392090263491623293944110392106555318051619046061424861118404036356962592131543261094654502553038301033149299172884370301331917085727511417198021685904941479123299535645080008048246352808572965203263388389343437572788831897861839214880776722519247791200726663891101733469727811041985757965733347493671175293576954806657760026197332946553861752499058692472318594399581472373401833383714513417601080618247041068908663660021100541907309816946196673978361743193668061720358209385541156652174363252510814634843687382596826702930837296831256235381569283648931596514524086354924870365539402493279356796726967357428582163387456662099864047330591566720778775300044351812315588092896531013146880625037884701129537575615985643796050784510332468830535382193318942536826072241817915963800063497319359426723709318888910670454900497144114221824913534666231056425340676022148051878436468543942159577068515475711545121610757521805870547500731109445200383327647334010517234138432432274909464538468860433943419038040584664514467919495209063625894018478747533436006744685578844005956569475042664680076229173956985268400063639050397840743805898920573417529330971948448400838645690214647588176567529485691777222581648238674684774271941783910051073434384479190911069782268375781705099426669746442301251569092454742721240715843808330695435107324007888655927054085704891035081887374122180379217802075246498740381906904686994695872806427116616545448592396445729398064575628567404392939835999436120279623646951700959576686885777288311419726132546665205084313418106492541150081542155103229004305092971820277372435388884228828957771614497239697135658971004626333821505491554787862034893365105018351135427681831476878443182941495443983767274871449466400117316710847295685948724553696798157539653716583655040952226854852680766549862532215919912681276872965912640448005420277559744833342628975649087994731796934226469755269188996022068719299835253975289891671778213216798589643726460775202548005964308476717763370760394579123874202093788282719809500286680371684301774309361767402364419173832988963977672087773695060639881477396671186483545291700701318795982729624497643721357908831203706006641632171693034102879944054209966338462291821716921811770456342519173254034816456837313587479148566629016747603377145128955346245550069338309752701680836607078507315988555521704247685922473445263352340492805545470992759044855180702715217000193937748457449217011063813549287308838321137217126781903280513710056805621639086660442972520692188811031217595348468995055616572272787438954241370555885772572378555242945707748204994954524562309833988898566347785660625818966127308181253326853731523334967051422560648854513949439851750367140160670762653119079463626902755872277992277608749806775180769306056102026827069654540843913054500940250750300034518943275940233810797199915023777451247214217657355463897989434081905717577848099099050634069067355667201656436304312885678672171123268573828885416086805435485201512891264593591320831861012906774759317047270245300196810375397407777801592134867150012534090875312660693028487887707908304329227711654277914529669857484664240753266428124211849135316005121209667539524525348565962635074902857887750297334859541712836864245719288831183563130498299544629814585846405582274333699836975794382445947101093190345637585451125624450261257961075989536377196992327442529145378582306520530091477856790651052049831982152352328212493085753639934027682609975718524040145258467490873215616152591104206863713912585754694644109938990250174358253435048260944074690072554011827698656590673188199630137594972126442300913101769812446517803255784945170985441855093892594381249668388121640173539517580941254692337411908185835340529713833188748904743149712258202395243454788834737577315846402837316472808672609283396744741104872599708436629974734365264198611444017099344734813952754628423247816735192745554625596276498599421377886194791469203383393476531048116910861691653518881388075267210048505318128785538185273518630034161581784907459425567750704940835780481152018983845347247960392363897237542567524161087083680347983659502946089779532831725651254098144384179510225004680623424535646344052325155250527452381297499210408274689043993871419027994196048170598471120386739871831383492607684701066916126386100595675623709211763440875386694050626588696055991179226381492129976880387015566015949106016959184692909100518936846706961680141622411031029791593240199149975099767140654344751457252041435378628818596859350412668449460936553220374272294698623167673650037455545324239112417726587676362461357341057908659573618622325555796098555521429815100711804051197300294641377776035588686556352044911583013616214325195470716338785625447059842945187051072767862152300122763066896257532657641971304316120512671019154608283536138317653210223261710335765006325122273323792548481782990941117337419613227092382234055632799718852497741293113721930292239180907110616080981997446967160118094840981116708994878986904143723405043280681770498895117543778633381123642066071760532608061952218175959451132773243343242428342164186533337974146315315316493641533082642989705378995568277005814120467581102122962764679522344865478095399405497988079578212537391727072083521255470667159565061423237793446097343180007336433724057749939068322118468454490825214583018603465159642194763667993655470479144344533025524332214219711452495908724549926386658827924487937057345164983953131811104117002592592855327309134869404363607143447549946770354565876695517025391140209222181977815268197382831441208684730788875987464696039490557211727307556456116989288390069407375060556293802732975255648672827098107713756719004208228419751938928530697246542453493989856105734223739995802108740733735103377243297619201686643655875097248175867766654988642041550442130779455153353408252798207592573611791275634184916870658298228374448979669881016167639236133069678767945309877572022405939072649856562346111160848390267559167216660655950937701923313678350829537249897418241651960010000989771464817253657130156607813764415571866536572094163319817538015706061776142217931731557724816309015841201607288871275844959221169646255160675975636177494836746696150684126180191623901015341868280534120834334178536536728651262817827372919042064571274231435424455399515603149519253598367199376024655921662623985907556779184884381599490139720809183317820622059611197889238365116672502857892388787114446442743381978967803003272044983037383663538538368505252230129896487380970405900862995810770391813031672415921224021729080993215333733592460255563558830211268275680143543662919403871500389400217222828508626316193144668535392358536631306131583564194031595110641937859295955418891565672273168387976267615722292782241045974154834070279943322048160035476308994576051067129401935163324232918334277256446091971378896808868748502491303021471592550522934104949299783239871453705577176302872659622514768505038422763103854679340020438173238381139549338380480388191586407058540131122577843124563784304335969335915354664865448539942988396659645195612919917631976266173439327180038768195463363549875014590885936203194611798408078314991790862875482118624236666588391777575450202173195376930511456594252902358102183038244881587369195415281833420840546296806662054925775809248669770830661418615217549512995653644890376145454006017713654046330382160410516084999160526165885480156961559790323261056348884406591449317354463705025197866874016325294208512028563193511227098651538252765908060335161243579645594674145634803045716316779743245278325607123704731611386393271630850406828103385339895059602382291485932759265365340048826651471884933795436055530000448327795297208990362262178948251615632859309765031626159700319323550951691522636855693491055910954723318676439455892007698167047978144222752396630038171185447600647773381815342889124209024998472359363214759289088668459925974496454452232292434031374363829220950011544315592566014911568384500906861193788227785382560542186936830520833070107095647661051226549989096980818122638580293629729954815804145007752202308733191799737096318965374553361550731674064647546167248813819145932977310505335077096454098032397451010305264578932494356108766941609995223043677124750324852126884988576341733409025985379408822406928144506273089518479203078951992126297458713675698021340091966593137543283616936606009115525625393187276527837637717753941994423068392124680458554685168240839145752738558461198331235922698113889959646163054871502012573698864848179928579083770428874587700155861785372795609555038052746858290109082132971211836671288739673581784340778878325950043080338131168831463169934078058975487232746314264674149140308732897864278181045830369376350026960311352279901916720051232867157563787955636513102061980490092892088741753620527174746455354121036678985999604325654101859089948971382443813790867659278785669806785319807953424474868114361232420806916630200651265101420725529118157487008146114997465685289459775229235225790023607174417327581735600529001506383167087691311709046395194327511291930348294165677127899196161202950596342537709311445631110484059617933813531243397192600329749033980504680528724491075284713501956655095983352243019435257563967034099350356089753533324232809006609375652088988950168629582618369344039293849997397721637362911133436766720983091392533346480751956265743697652173321807792598151703469919382772977059830197991529712829264631440494335476958764665474782716304018309556960306764616516440884533648552786407495994235271068341014143598197860121831666234551525297278372820063839688532921335795825850659996847140473261359172096109814656344567318979782920421393426596228016636985320698064650923416013261165395822240533574357349985099225821585533363753481257396929953886323210484429675705623871060202982837076930429782055953813083071011301700778066772343280141863827759355076635899221268004729135372408269327838343938495520287385427837166523117051334159943133629521001775533365723024300144559825886623227256727944610435993289671325498771614974365802506031016841778503230467521148761625322371899482096590037654655467184370108891233999166667015248184357726030612141152464416400021662547929729944134132408993480727199608396363307474935462032095215810771278688147395818285373765688935754395831984993755305200710398253862862942827739781101957027522236017343883317625165147145619735585201502459810445015417792992207784021988064298639134356926578016800258504780333591602795480090064382679714348169202214060958613231403119405346617048675416224657848868810453183816479837755952879227924164945837155281916955353825870725727183507122044115589229256326362699653663206826325774820472447324890552366978954652767233052225719868637880941136240612340502702458563646649626825173239301943941897086916459595901644589983217524132539779356992042523263945571781516256336634320810995086766141928018693336566976326956724038277421777495366578614036486939504870560152856902554796377232489736192729818417921784421273826875999986901716546517074410375720391946634093091767785821633229793798168074920979047879423347746250806308106843225107232795735483014220355601618190712735959051381163114579147387210538738260627019559766493464089865599238683227310581784422530205709883202978295999768434847032530178046695671833671765669000637776218786864903009381558094538747865090881132793276781724889971154551289480167052274496807108775877111427643106464202679164794186749876855897324360983453409879060834927364742142993051239310008065176507593177534456068070301549304511293499229842775753914919167029795502629150121037863279279697289703258421082114202000303557836526684067507044975532107977041365336512061655974689758409265602346703817308439599387743130114489962857286708482642436303093583351604093638933875779573815694974901339621589046435234376164988503426408887199073171722795312672546972715357450450731634002302709169744228649452878349638230651684601548320797459147175224764523968466160070672815879884342610511745012700741655011406366095474280504177042099689993285620629178167833986548344054486317031526931472308791205179612641328380594992445752497521198246921203845221529290827784009221226251199093527264155126670753752778755654636046463576391023092618897413237814976407401044527344559063447721214504476581412736242079488433153818081911404242587826478562854136976302642825314892068659674484819522441534781261045297028534398888873009162704968914091159070793087624658954838130820839139911511055909270533501477301556962790023458170674650670792680493111411070497053104177068857889745516778505883561931969598887775802769545518214561809016618284534027438536104980390229906556517044537244388830972696574947347006128885022746171599589137692843403635403309292033119314787028309559809307955372420899125490133536286796959270341084320293977320828569814159600834821098394197021822126171922149684855166144097226126028398892176858638007701693346742554283556423807027960909180541204911737833977669509051542861745960006273187001756072756749508991769073587788161009879644128965793930731551959266184571123332747178326140411151501103393061481566499423032406619136782318454972277140138729403683313267167178332429645379169706515517199982561047161746307492913181294747939190018059762960979482097221839107024554359842682198765510844269607837679873778856005631577358238280302986610092047546871630061792280501870962459247731482618834121475033500045750126281134493036558116335797747727223355184364532036089586389676342383121720655517333489911787994317173687109197417118786726949048941529977189194109474263861836898872937940458883292739169907313364295631134400411678739084172317900084955547009912027852501619619883025661214395322801090200693663351782416808457272439399772994853719681413354810367301920871431474039052989111020284395581317986803851118502706030864139630271000498874728874987982365532173157185858245042038230123173490761881056420913947273387961439085320845923544010829076893929429966114836294937130141145309393810162980358056637440042033463545512016368455921633405385700393368451132945230657989636528224203733736067039617935306484120700035192476147324401211867486651398524389799280998591655438869891290179026459682556973133438798724725832298979740132896446513566559615747274277056486956851733905811631943788759315547834168432907357828774952225999067963320284864413827471809974478492852492600455238024675528588029288947713066152472302461432316954948364654413543866236799670752863573278428163397995743131980627620941454739571538751001318894897398445113837380958828818437780057964381875514492119809035367701851460627604297030234207881685689984478567033528374709423217045213422644393912186756988516241219775566577164456795545949434214508609877134560506149897698984003090095479733476709787624864600503969101021305548079097288186210705023904120488245485522958515746832196423776857907953069197251370667599830741212737406035549372582180156131327509912763936362631261861163605548722995949325875480301148112475316967034242162578712609721625377503931809124119536739634658092835165199061177180347665853356923426055227793435262331327119512210720333452825822323370778412302447662305528594919713750509113670950407271287676273375239488535345368259469978001454248319141939826354813828006514539182683699817989951000929325129410285705106987882089063891816288510496754935674831335632449108065441526724683787311837051413677171785320389364087563409257251993569527917495788164818834877936954931201823447805768129676385568311216546864173908808247256606786195869733590672455116421380006578742311861438949168526923679720915113171293364560948369956133708549237616785509444583528733251389267380212941282829192706649071701691155341965585150664240397046032326544399000411978127439288708571975010296043402110874197906075949044737289686234960625347657937281445337145495189183801636855201163532792962394881112652322331372967429128423800916008212063359799503897599459772220168507737927339624947012366633502566222136897151737555197027034619052008417427495792231964612766437787956219647063129841371427799327514522778332817221660360147952280146018702804353739442747338129039507949160214104008330972115198173624745127105829776485093039760295148389565585395698584975324357832561607178962828224717097044914328547965289337595468885637797234627667678586189893261334030580147940843766048931849360106517210413290359275726123415617901166466813581148456366577463746204542376549014562321290041474753982889831895940543481835830562692946835183103279954587962775477755081869772966290965052356884169635401920435424797171167263270890116634277090078757703585028320817214067812565605636835957414390905788542934036050002117063368395509479559995647074091963220379737775124913915337060714154360899049663221351838547542607853929419796745690086295818614048783971508927881749153829480752699318919920752201576256346436618741062303727803708196368297850741261043301147206619544421462666529987724797396537292158293939712626517614942977392594975332213694609805838690237642171247621057491139717326371930167580927120222127282615354335781239194609147755184286871258722127112015553758387194188070636475903165105604165041531009437114732710616978638287185571659161277571867452231877193526610448476705469314863308228802605057457330614270656058973083766711515251988639642329726982260052259256767553439452293644282367590626407550610317326234986421174560281788125146038103951086176342098704586251953148383821543171581389579436459603288167170771147244406662225145077101392388641661284570483086575433954287985794602607094067027414432858447564346345623326831667269941238025704570920894084890861092851012953013105577205365374193366881678204982158255399809485530510311615465088319654301174298820121147862823478242843790825987582698891916888266026760968859966331327761446915169095514915939171712185419217600865580623153756485487214697869228182616348280467649737779941115940454517288455465704242734990342495858569347068180920234263569957074178006929304992294098516392757465529957309235956277845232361401319139287313774181523451608671755576453587582415743638836306468900993862062483400219222352430496583884544212474560777481533609848951517393603546828617895781482717494516492403482685799963170780746683648392361491530557553788624850319429497045708985124675103189420612744098555863803757349592864415325193094117919720294906213913818973056587444334361166012395409821851992488105011610688075872183185869112344057750508230568613495737427328560197905583754016815450570086638926468288440406385163496799761239557924889745251798604467374215250184985952072072129391947145283336853038866680732231558107244203224905639826112232415959701105870582457889747161707343717713606131254065939086629054499493933431254537896952073995821995814487713614771530410425877002073058852505849036180892933060854965680772105133681658955719313830490521547320232254379076507114054161618118573064489893506256295518819978450030104980110114191123466405066428104621971782319111596448793140300714415512711359000964224394479341087862562716775454206143927580284562670818285006287149949032364053476443228689831698050444008420720184903949547555454144593989213360331440125132518231943064360370761635449813713310443033091032648035827671983646605691589634673964031407455773403532153124118359303137176208876900644731725012582465190755816761062529983748112182956002930658859763129295813059731030836739304751879163791722892154395777788918600130510518573453583597055297576506880871932669951234928925088183394285039637846078410758237732689069966193466574146373633374129091454897357615501903292881457325862815806146193386958160330769478884025407837785115167916520962629705927835434989711048492541211605644721646853865280168037069390710621703799338443528051221783622489731872343707005993205621699406027074322387422825552374167085329419125096968592271816110704091276537423331792461425249624909960671656414202351646342347010916050295391368008993549158762899583019705718963922951843376328355047113892152184518289286904019352735772518442359862190479525824695537607277290128406335156966782794662657171246894558701923041817488505229124777510454674492930441518211102593647652471551537420026955709486655134036447329854643159502064003298394912382381108837278207523038384826928301729476317677750114757754992304742051973412039692137076062707129171037188668456326034386714901725798534944998211190665145298584625622756990759305909590678123162653072738983254701905684183300316591203861467644954242213629422750317308420651603821156001054820981334327656641473699276573936902172549653269960799684515011797882389829834511741311322923275143686695699303960796240467366945706030506408833024406439615406612826994666960056607040423040130266447828786812903559280578601988057107503662132167125795179282171227496086128862956661033211055336502725509535630993978958162894746841155008529501173154322067397470211035509224346575022714638847458488772668748270856390082417610095831612422705280350354139649752699241372113961160236105140589542494687651268867676328803226623877692509637967292262242335276422395040004346840322275709894540896374880941333321615766389772691693233183905989966580861592201452328490606669254344855232633144698984368481915744834420172786083957557187731476039541952335916259718015411136119255278574789172329227169755806924813002379457898165353133172337180135188122646863946493300906293040444989930713477416508495471844870478578886124876507382635710353649353133495170647496976829615717525435630574337918662284625817473999913142708683757213042779378507787130754287701926741784225287032769949988432893713892400221381544968177974290245762812877492332215632849228662058405928938198498621139692220140883115166243828826729589390335333264889831596007060974505281460154822442819191513854453792121512150318380673827466227098117432711367281321177186735771140528137576761364866068922683403139914900178655438959348086553080163155737280195202415900687779080369190649600071522078673250141264084252568634256198919166900680387847670970217945277139074950484470124080379999134802066305718657585468386490898194677403272899518787639924420558318440963054333121232721245025145167361616047089726593631074956681868150314764315424739675362522891117401219609270518795876313923802773817177540620143891957063803900230763160436891492218479653070151274896033663968403861534397425445815971727712806836593888727237481618185460528026325518874942833146302377334856309867403090708025867714260604606555999134249458349131195058781181277017539640910525702612378318512221519603934266930078987154695395658101102993525905217091354670118260415172691441461383670059995335726756635971115389028350597906577770345002856328035191903836371801890068335497999695874596262432758087338093145276881772712166612788068411855786294065702176210883659162681716980022791623600854939995547072614527719564049638396959628789130548734372921245143531872013643652900884264637286697300117674152459669144072924676884036232873809357919956960656852377703035109744982813482472677938922886835202472358462701515735108782355517224550901826607213660092415695674856689774772262904017584764912499324007348612136146594634709917183777591711117707224296582515552082416469718256088298123196140278335765026420554504249051525062463211513365961859015103014426959976910510346923138794130176601598410283182259145137494751015855422840024120727331328908153716660212832169781742368504351812914560739143573370994173720879803723613592447856275886878102066359745064110248058593842945239893138592835679328592969577103141516569954577044951269048628850408018252997083707702731278690867960341352554307535458199322821292826520523716487129352266738135450270578702540110971429400412373776736236762650310100557444123342577797758152912122616901592118877160507347412881912023764269797731744893256752659568433449015867485147570190234138550047042241719611907474044708372108092231508744234027906650463267021274015775603898987774973086109162990175334634907953216996770137946549469715358527957968727244510308191059762957796008631842218265499311338524322669222968323485757161920634184051667558501776268711321450179078191017078245482541590235026123122264904523136681614828414756171406700030792527484632272178321959662027704380914791469597745378687235167800170261997252065073464427531771066217213865631204008775110261079956501013850077568551034023214890023979092251082688090797392882872510191904025665255674446007603357666102357975823121995541970626567795209640221375728502385009803637123764351816631403620821601493214651566165745511815150284444554653825532041521487528373982518176037136113854611357998828593813981172848516857290037700352960551560294951673486865309376334002189446324411716144409820456575119829923736495142267277172397482897555091541705321060827576162377838200166767122525969670450500654138212002060972528667332931927510773767899596707496187815739779969923989692098796270696652035784338477290216992100310561440640480474146259907775835326321922469895038298765233539034967646088824437664887210143194054408497183694610787406089959971713567525679118962742373086093173235366950347384699564652554100858519865855502367986784745796362126563413398116123383106285039764816825511180646694192616745061212505230259688596111225082883821511456852302273218069847881312575429239697298504373920062732572359304928540398210659887576086710203115147398659862001019866962742599833475272223271755240861968739399307889473677031233373940631659272696354470483450892795736226347322904274473727631369593886998107738965097134684181652776843678491922151154058683179922684496660786554188502238083694006701457922631063244021557315265543753202572803218951771921217823171279703765036465846028775865037638155554899178331166032518616139227594696159194380253388316664934652029419432253177341006229905116850518371687812403786428801311276216267743976841404527167933276775731502327862908263887308245002117484999680941022764598384938132956669561793418906089676621857675287441307381959212271928990198922514291807475683235603654537759684579966895968088747772445481049642308840418293875710157640995101598854957139245504966030061632929782436200632897211553128307976688638723334285425687723803089554701603366871853318397605827481481899681675397776955836566622381116091276764298470774109915071354760551292996410049555931639402366637522344322178053677816343300127490329007959263710428661728348058702395547926377314206306047517572710716693324021056028055300318871197830296728585471356754909139521890687246125005963113761189902206347898766186778771161057231254228688053596302621868027356006119114364572534030533269816877277005974590690908676119044011758648329375357950950098007382463727528111195193353606006970818333619808991484957110285438088869972044967169041759007989759745119834943420883970560163420316990895573332376771159538733741961706749539634306259757965796039107404182264894820586263854280466651914469025961420944836219079447453790428164234468435463049390074633923839377906789372120627375951753394340844465517451964224530774836483986669040270843706769350706953991342554692298109422897781162117274920346272187466187780918225411064593837664156964584461617774995662413118464789436988831341498865782074990549696362846118173664465812842991554735991872918966061257031826940836100092206437362603594955881281800203790389991765453666103007735241011433800363198059888928948211920588445498138615602331945564189941960990312975110112348573346844752195653034197086320375173619158255625236851848429831992530766851718358997987932708073306372363292832697146710380667120579516329013536111267594565781288543321811011284623496218207232136468611208928886207397367891495932061937458318260973432445843475968057014781295363025678592744548180765935174206898667550354090631493331541733213181421701255138936838284422234430877222666066956770420550148090889357778326740971663972415542385793080156461063407969558217055814842300249543201367659503477165039202879303266292964671279097463947828832319356287669886082753348624110026084925226940806178193324522521191390856316379646642058004235339841683764162465991047181342367379787532607893838902608987042465219576686381493582185445831483279241353412637381071923958414751931209926834702723197710621680212193307048231336558064508688545125858883139506392092112549497899332404552782051411061149232510008658636941453529518735011972155080901257509821969871706342290460700272859232162725302252484304636204146683040934749711817427669450542722265866166069795672891677643837102384581563598990347783198972212150903884029291747415406804081284432123290598942041495933723173613400526088730968246138325132522615046554143117424478184702946421004290742110394199031192057277751738127595680926622416635714208186275285042140385473974400048208187486636583902675884064682869666047180622170053869512376490378851364370518125903696844090483380203229470663682580921172095666162410158910408665854534463912281738390748032668053971354310100918435087421016571511946269744974979858992142835492455409814153677965179867118146498178911054857223258587324968488514177416264037286512032574946989732532227162802704963182433975968450149015666863301353683839676545149281326426411653774654079466969086670856885772438285386516385799353717835235666522086218736993237393838166266027494278774411482282194774277462642937389186936251693857458294965471763274174254550054917887903003655014779789827427459462629210082063763232619927533455041055198433901222932939060725600875231371417918199088965723942128981832212014258020080590870470250820765912936221751146624313906796127544907817916958779404596361177494988269496772042037033870235027032962431301820046431167318579285370730349036841853931027134215306331628375457222756411232337744250535277895593823556689244505007259836785751488382339541517175741143816316950470544959924064908446120928121743656988233280075445695291864354275253024630611826594174030120685184944015599626633711023931231660445237066288552189209833334643819723322926247344293403117208258118042598197301204345892366869835037814310409552904339943415409185773300905795752911875043100441196422329240398112164788893120385150670623160088916978680046326633165906866038549861589020133831408797649934798739350592916239582863239933293570107955086152831057921956216661054166530368223972406743886010129785162742758604051123777913767372549640302226610233347954161375548037321964643446893165148106611931410506335877892961635885700869261925285019048143786111827643785637622764253271417870158965936020902207714751258895349243124219120201059819449040702775467388841400682637242561630337880504181896088886830941317287530789487621948787854998111343308242008665984990285386533415404627224936368320463511181026258319954384349198076764116860785367211560554822553814474866587911753569835478948755587648640533484235485131160140763896898834506319970499457164903601284148419251098622166709370028367943331864268637832480827052837249310636481237031998943071403319787655277623324060408908581345496875505936373804996269154737681907158279153332113035160901788130907233091932230116736428271272195011937174157867654644163907788377243342984495258113866571231878073789114035457602620120104879170106092557768430791095656774768081917824996113453426499527153881132702885427800442836767271714683793422850669653277480757222558186184669445363490980188609933217008726316783854593628388369507517890488245409397194244752664224175664818162594642349687998815149516465561013173530085463697745354146381749544325444727907823615956419902487062444759018605985406986379613297970785340173926162111387316945679789761880941365203985250527336954824039974749531154929942136203896716268130943507923715160738801780503592950283156325572910617326099007311085356233871736119249215470711926979384636640814933254570516944618140541169640242508152914222851477305706510388227948738765360830784450951313991830992562803724665529936404674420159304128983487620705234133159211856903516791856808189729735297487214083154258958028271711785667503557080864376883577876453033644948621113995267270735196583386318466086999937172795926763300829655869679791728161132317625614493121525584724549171127236978688894439579322634834900472644332194431717063774789802077261239649225864113995094812478085449952061035089356605290036982309323960545489354247153986356658560823350191993814032026426810724399892345045940503852356293941063003449234044286190568727425061962348538937577888370403104135332000367794167139185656415907156367822732841019731537738619786099952789527625689406542364562315377003563975348002043395587667108004760953153599908540077682205193957095964879675461499901449262018950386535865165441506284282283475427547691463072951209240589359716898673084594271273453536468319256983065907952321186670157152000361559222604941375965512057275643686020126418061343582030393155717660962120879401707646850266103674022280291676176963775318092294270152305242977862814344080037322400425857570178410696249178569448184577065774905163837819799600314259102788370304088573438929548535662230929937515536379759170813919529179571996360548743895391441414385223944326432934962339022929560808938482868718368409041684364803681275667748275958101796014350943882797913761693430028133879221406973130233471290608869871432524117957766188259708769748831260488563006660454917796094537158746112278470323176904625600617520705537895785042720206832109998670179164495890747637105904666448937620734531305667359749677021706197878453166123544638872764271673135864335852709436293462901383503147883946558065057385118881644480932594741906253638655264654459512110177211172827971258979351366427184939601180194968520177409569763642593530883944007514955030508815592523744185729834012529874629390727729012342973749333108996665078524575071257798517070950239306602161642390175372118724838043123211356628865833775831244322775999738149901354586086588628994061564255688749126253333561724121450845420794205678032175436554039158745451294221459237604702259063916357097696074013535464356500293278618102771631883604900641908564184002601772032004442800623079237506046602251770568853839575929565659449378995525871203699258122432592686908320078944348065204750757116374493026178458149228812559468620570568475262551139768392688408595321603647808141318794579569749628058967559485924108412412101259673579690137925245515049179662998043024831557536940144759117867699937991378908533728812369103254938500657603131005617390151985361795467512291616382336941422842816250574450536001000172133256451799429939987179493010443447352499678113722905621493380329955824293250205920391252334840287216478833875191979466536131502391146689384262601312369474051852487269500234790979919556975071517568646358775937687840801782126183454751407595264834282877214489929852236720756318842993928290336665639962315415603838661325309761882324400403824722542180682753061428446740441932352039834029507078273807149151319243164345884089452442266655820180605775908045594158493950041451211233362232032313967095427695052266723470611639343302595806895957530237431299657156267498793689394056325006013301596722004215745905661535307694512849596413766754456148293325918458210542379072241927176855571801807748905885538168705244999091038602381890393053734325379307672518054132110275503630406963214207445362786531100443786251678324862233839041616777861108636240051320553803507545198742452697777884648178561461184305653639440058255373167944461515996416539111645624906853181170434158203121216458475858424075742507874705690817631049985932441971596957547970592382890783441428799627544949589771388103625649748113244973264964990277360537619682361656513326530973387087140079638142491040690443401441412531025394290487719059935556493569302531190980175051350600207006885215219332770154887425743711759560045260439438717387287580750796247925724792017031427565369381184853267604050371441017567286999018844397308506775340448514283144793368148574642665205184774216346106697949482875731490862551828391997846233439352543541703359752325167279700108729206103943309420007338591003610670791765683642237566854897969525615211784549329605233820438552052895218514487696907143313964734617495805639169762093198800209356983354022426096327264139913915453703737183989745944489550378691229967221432738551420597387159236992807458293090302413939507806677924222176735616369114644392478787206584111540611821363452604136819139407084432303563079145702290703230273796871379246483681658853683724000172021057172697973676778203087888939814734852092823619822067720979209283630318418833401280149435653488214035111763577990787075329457110223465276787426441779090114518969647798796712778824892618037992351400569785955952230988263768662490613669834527790990652668233522859898741086841392659231390115641425290336481384013385988741365162289321680556367896800111993232500128512246451304944166512395622453243582814176365620931114030125616470551836421637705736643436508551074280146519523500829267291001352728962809378013097005433794316458242199374076003722325742292778123077129953088845744978614109939211111896772125771302698525499947695764059659452597388179068925878298671717865638060415683495007636500699256421950721346547400526795907066607489364256720256060687004068989799490810506810924397340038870030507300292837077226887480072461715903607243356085277918063434047849828126279728968680543876530299364786448127083589451209497255255804327392920406491946349343651056102110068540315011647615808471778983987153912191517460554484695306136902351508467735553081186061371436287195542653012203308610021194074918463989245269703417098889563104979942915471670908487520606884011216491674453618819785786591478370636830992046443370990514658620351087737268103667406988594725876147914416520204688758324762543876183189180752654616829874626327166842638665367118274660437418579737606551774038553011647989961623997226283951133356419426055370413896717606549710484307638696057428550038652674199637469033116061260253902509319565097331574398420035542484569268877463880666234418031928304752740127424226928091051814382396531783093249821062713257954467011235013014025434734467398502760879558079571233665986460310427738499012203682607814014756707551685610168401370283008895578464108489351470968614865630897792132566135243007319736386617989327058944781875798149019917005029248702240604510019011648711552556230333483083697330972282480653574297425047229285210486036130990195140006667615851529657244195777187409156344648764024188024094875932205400571700204652723595357833435429202338806542816428859983884080973029821399766445970278870683383482863785959323143268175865942478218699856932369053907514453065736090696802893002123179372610197830776068301439091235183524752513930358354147640336293424678095159619385737948742556349459508907449408952681460656235281626447988070027599727771670215965396580635595252026455700363337824953289060566770275878267786064170304225876239230353398578535921756979004352139401597244201680628419145729943257426808628064807478077410648684239123109910234485365464182620622217409117695630680653971889632253921858778733022002576548600856117997994689768820254506764278754437452549221973998447359340090445535120966409715552420295007181085927548712366285088322459128198411705771365582673304335871124343029427356167783988826658474688609631908021475446548069674139446341750639400059144532587831113971419111050429760842023148443657678972675403918191496128115853347823985056997381994962780258401847034892590435054839905543521183031166632013126742270661706990424717671241236576503029233760810026266533743501367412922733061647024021989779589972502641354693815741612800564044166196545572274484507539963314561328856915472756292914487813567594236844078333382885970780283810993632580208473755013151653512025445493637326833579031671599819542769553678243636150383142262846545548577655385342825583150576257600736318865574176162480164865456957584950037848005428127059164093671071537382749288865104631676037351475351548174300991140379780818266583932418822445670781793116795823976725652713534296778719220196975591749972633368930024517350598154345682750455274725188594992462372217910519699577617896413294912308295738571653661645851756443644728455466959351563559779633510113756796534160708680553640067062259663948320874063463046683873293201192498689821795985945460205001277117233699215568147812891769050438660206873596510515980649089262076650455322065488772217952020056401121744137447524944471721605588178310821472787557018241913158399752245024864081448494567084380578350698794741240006188450013231486192160984278389814715521009923395612972482210900263506896038160250623669385495282112050725553004572818050600999788832101580334195925664476514561134030784411265012075346249741242337764688350569666423058536542326212108329014809993991282298379563301322333211927468271911993847278741177971593504908694829634304668040174869545764281560993985563137978778739974177846628704605234409116561570775942512934722619816367295269084120879253442243229488283801912140121270756141169774545648701051743652674061107878355525297673452720678972777691506253401830779742912856295700724853913978460044302798885863874087075820960897080559131699502778284193230710384650803559882933916682866893733753468955207916642894515924109319686800332264856857501998327085516684241880378561840414702054567132878805886896964446177302837444163676252719567998180603059724152957451112594714397576880159237961968118599171682204352661002968859516126877645977000137991169223304156486219186933307893333122926009731956472278254844003843005697791066852086777404880061339961346816386983030748512416610320900558467648153149386129537961474827259930317831395771229847746810313496850543547941664182068882698288602907200745693703960947711462666279539634530934022020526459118612049191718713258639112508225758830652358836954230268263482166174964212971364451146429157563018241112030394747342815517978178103659167700013989232041854736094028052417448632528139356017339638049003555927862601213135419828666477409957997834530816753295357021392417093565753235348687949540825256431883929824844395723532124583063668358772525350986580180383099196748673376543502233320871958332787015127520345053274214331200251201162305692918199234831663312844234706261041479305671121250308984032762467348133353129154048936276327700291655787867281206774091240019795391016573472980382804856667225398503217243625674262449338684844584963160667984010484635512513986920684851319434020445126436529238823397813437325781226434329011811621655762606245956970194132638193369291633696252234803880074210103363021891041541741693280714006010208360612855235575033523766964617740363183750780063483467302937413800621135201273817294482272767899292909504130809963315736107229296217207130468587971601479528538849269519978815511850453916053641817913711431808729090108238561120783817194663512005800441295381641052597299330492938668455791802711318544456270795261666420615046249036776668679673104482325843392842676132633148258871386776946307760874456447140433020090858712113006621319621433768748463405497624666174385702489821536118353486556726256500777107180842609393251551374325698324934190682841093808012436095752151955746422923518558964247876244827678501136652087884034278483160830010342183977648105706176757994885676235038316041306199849035243390880655497543102856198302866896066937699195311799106178776370097674522512531851540079011330359986290986984741212253703332964737644754540415956274532678270591645950790510008998591754960122383610033414924844636517444303097728507924517637408048141075373404168040799129774839999785617191875658611159672464700110561126411213805924959827408793158913810849696715058331718148904103099156162888768144182433427441583156524227509542132773302003545785738541746831345258501894155652732591912367638642022224279463659721773385286076553993005755266067322872638053812044162439180698955596402321832995810244063770141124230571968798981807458186647281718599952408603639345422820945294446754628020699079388101457292181372726939348519453910842907593280706146538876753430906470557161399099950258355256562771786668282865446406905203519803496955328395428564338568402410272570713224474017367066104940846698440111915747879358231895430949167190112746483585571471025043269940926158253665504313214818496507378705973471257400224884092354854086175567855661385313948530946582261385395503863564988752598693278702765453704269953704103223802699264694552546992500433480086595682490673740424422539521821065867556811117977057584561562789587332197898996025947535258459329660676735717705886424702703325344258022774212694582331871941520296455391619139636092538274640285826902111618530171517623689715277880568238718344992733605510465102678429460880342395909444871488348599708710384904801303005397622254780518984234383224642554130356488886606636803595843299754836305651176167676432138739700235893500534512128554743112388263982582622151019043550938731673802878844972741130736064233656768576781886754230957159341849868114746049156969422706398783280448335833174057245546995793469429213797209436243173520704259671476307136368922159680860747491437425877686334523571460866019216792000710288157039726658435602810991204720162788811666264821462126260080132363036425580613268578048129063421049946444533091999632159068651057380249160240251070554344751105358020009747350796665814612808386637415949030272796022715937198785823494500994394259184660943160009946348309015960410101742452070783361932306726608197386269150321960046891091884399309399026546019454722521939038491464834926498797733254802108124640704826015552433967310516727047054038739323786002272991798538511942534553331831438865313810229211822548386126680550425819060996331585330009755509465476402898567700705304836794965211153869737353376947402637499923808542121811179546264512726470547965938247352055686113235908232818818400305785045885435239463125459668834505992591075370418942736785209735482612322686704825320800003481305548525278910852180258458423413263401469479178102010522447339704311987083455069261172682096452228015629964364645571852464068511642577153081572629464128543818060484425126009924345573796575349940754193432058364440581640186875919630585806525592161149193029374282235085604117643137530102604345323599501603459692236684617720520331241293727203163704249234970155473637733612090058826527976686909832213089315039423991097098849335815051819680911835917946455868389652314792143563638714310293662404139823129127928567782956080338871188056540401199486439914737033289100857186628618077310832860943788882727750619131470574260874332068237192163230092541340922161275004834479138155053520267123196276842759825778124922514850844364760301055468738403430229843601707003619447406560168613500338230461031278079455007563035675707300953795985269840796044880784334432944304571832601521901524525563332211792937459620493000439496951679383636542549758898851098681295414707213141964700688910640911004211247518726019197559462694563695595633419221409172466729331847455505209531689828122525114349220172725365162248180621236784765669479639598517175718320820750458728455937427071375645963342703300607490615290021419609271959568778256144969428307585873706202394974810374557387686476593555815152704412338063124358333357452587658039539676220448139482889256302451128273394001831784889260809676511089017511212281545443453192750479444337414121015661604015167872797899222721357498016532671448682216851563046656374588161568112941941212141045742670243855365936610614020234266511454736973031340001454737086929632226275608342843647313385534874468818460995531118981602754318979772372016750539601298513559392233608638972163963300240282846697559891500114689558233024543513479098457507306079199251203620041567885178690250333037680186410965963813938168040490748746469605093320872650336080875463366858485704011022678655447638980462587200172230309620698494723499815729118526054339194887326640928892739097620958559243115549560848059520517962878454083201564708575527255620515983525304516809247204575916505121788936677842525096494894864751383882376594386311193743789696347784366326532436533304256106132305364440323159156717639395938726066735076367488551549378550825791116121896082738128677674142369853731008849032682103498362417826693362908539975060033627873150466489111854794186508300487583882816373866208995160905448295842353528438151517775017031700250413021393406207548174803630983806584356808540473991681625292077785547266914393066471665351270040698059746009306496358246870962845493387963616483514907928837882625028512819214193372942206923168620222011272932467578770445090099120860797611169537960302816402591973131226123069929357374324449672832402212483294446553390002854669695376465416139295108301744252061091870271803636327614099079281529888019075647698180548887985817599897954992958070590470974284571174506639998839239910439276996214833887076784973926278261195836670165887554041998595495315324681954236399519466820145177904008301607724514010223776618674368012805373693322605420135996644522321385473209746161384579712578719496576477548000108190990452921988013836706781588476289664408854428669877003881375324377445854223622011477602347277594584818973165602197366738207537080861231716045436007220513709883460665367632089066515888784374836540708930590551792895151843380624268917198495589150734968437276790329730312204985309393481442913649233017348048715631374012460597310285030371546931462884500683423576291375669592359220925957975175812509418726859321026305834050872658792890322611008854821027481443257782158897229088118573908377914492232980541828679375151550735791214648283914219787644247655423934821583173899506137193090758689091621818400899307265406339544456478925479177548909646397254998783123173755152582899103509052594412499321103537757422826272797423087740681022742989501127494246550557868234872238352996489411148130881982876326274696876779493157648899883608122648093309068324603288286718261720704379310215127082421420452481290702937132501685472686913257227719379424449065703877011867792351288609029820610983052635334320893020551233042575982852146036626686866654251217088918928897068637299789932809701980695190406213653142507380526585507157169645271578163113838870276311663267997654860797895813001940678498688101298075180342200866676068390096327804562494982458637119154780070852324805816274650496085715281329624491944516546398804079129875178299179027092520905045680054479165095702367214791307170318088989916818305033399402525619770750836130937651683889585426442129870120526718948508565872527650486818039189823211594382235792298255997736006775825710899520102305317639743121688865163314434974713219973077923967513129487964767582134134764497165120385954475510926925946165928743183230073066485885677029845346345312417695889709292749529713471236678732211034126933646487445319620302927372293457332382231812703060482235382380624438414934018107011751966880178574912662404330568504444057516381540691910102276590939735242116117009887019915824646474863293918436422131646652628861392450329585860166324912447594012749244184252469064384815510372764113366599241723293332488699471380717381295007627350618647700566459073308516824291703105747525708671910921219603668999223070927063218464880419418215097455910725969034630644423125281530070303259995460576405040994401187167894330932787588211117339303871318701394426101565050188906123181718461537079459590509469005846498844300146562044190141591427861130079937127226384755579605573398899281543820576116673157381118305211179306334704708063823823177864260458257751490948252817775837088366694907762384406357909350954482560616801087532001368873356390211643790517404662746751530646821487719352244339456677471290998284385535374528547335136290702324493671269289048694549429540368284677660553591430760283950359233847864357451684032389247860608924720599759136096056803655392748035411458526802769047273062302389351447231503594521791155593674000118374474100869264554976482534279004328951774514800857233370251093130353678077681427845885651278138913583072451807426751350106950953947723291046688961338037437680118694549296129272110890200723477496738993366545728244024277983116223455915135747723242162079844994983198905878257955240824987680540528880314822317431804603106015727808274642881817116807523675448749410807339558494397251349931367912745397597040245057577040794414940518038068144233352255228656909145720625906254708261064014834485067970634076546342754156421947857502534480589936131006218799790428824778594223749015747044847508842330871720088301534478384704840553890672138092951964596727851369514309427882963311974733610417696171315705263416993489908959370582440029550584252028496483379414191118173803876212860006170671968122845351220457688696549111621955528594091531900826168683344455500621450621269948510476744945929919221849405006533214043033638917837322059853832676126392059213148759455731059202782421555812350696403271486835279395712697812182322351958271050415423324224524943654444396267748060898035560284047005405238178278144886422936281522129420930689402088156760410112121630438930813539915247230614877131061801964023904593928545507604937374647261097676510829733728941064582298594185676052279610505336234909347790972581570390948634958380992661845993310002054685248971314672644522097147544407958632042527973861078550530228815108682774829864975129443619880506684014946805170289543739159268270592406334909936550464906198225695398807635895355978951041270949201372300807916183279965870341685006506224371640698498241490669557937816417270399427168546512792003641191965113060191160088843468857882557037272793204242677829156709459733092684871820181916537566590437289973077527292513793258377029040791562459381018600177139228831461394672200664174288646200990029389220734408523688832276066678598419141749076037832326608913730560013086528393244769726463770753096666875899296831943500590266609049091506234257533149040631543986728095729731425681407316613724560726116239821434517269843728346860881772476832398956632510126536732878478499347792630279599280534759557286457433936658964910493574895559642782203809210685178519226069173849668505948220598646618219428428118099197070429411168051934481435947122502203564675239985231539764836075809143772888912096663678442852091475527474668903409154433094418000318546883562975417604076185091092982634195490310647965388372564573443014363741253303205402475819622491076645547592899110943365042015752358616821124921249978413029673768578673511039182797779684795011542560183107730347139765988322118819073006041743614770017423195093893448325178903651612924841458893557143715139522923043908770197558347159595192116139552518609306845451220357762547164974826775134895066762805827741868954362543442791048851957230331986736191613425840392315537573557596306582618517383220044271767309340452074562595205084294503891907704854822433880937521034496726450507335546252805062382628961770299838782076541770676914484325823840757140219000587683729408567179744662267141796636505446920364118871753629939693087229776500282026129152214484225135528296874552953632988279618267564427419093072938828457928368846069960337755032483187467758800590642571469779887746388321801426299120460510579952172873814903974014994409971426731091071908615092148699693930997611058509967625620207777568812250896418517969058837130488709026584035075481313250928331549926373004047979206324138265875331202198283497077871349305689056989957580058283350971305050695630753737937534173257859795042216805004480092638486967870017232202752579965726064805332278148179163807028285457826323710171903078464831339211803743757096190947127933484533443305946944045752257760824372994738871030859052086080060698461088118343229416365329362623902838286404683842161371403380073752568416623728539676240889374717548962368177932333446948057890902232453057100336475183366032671035850706263182115911860654988052941231051658738641759431867516696472250201575147712516293824930539692301772232129439649265788882355002209184816888592864428520119187765642542679899767246024389093129269054508147375046928177731311093172190379061815157283317106242467794151172177559119931250731165667191126506532694274042481048215553367050041550126817372135124043072333607039653439401667966667976552665756575246386720832723598840395358601930461075990654119845734368940893564301543624059971710390210674692359632365890839173630920483417802878937320503847327179213098087380635599344429345131187315557428899055739172711689869992233306931040381871079539694793478987137055888549051845872789275188332647927148967556296497196087917191909039576399569246116128057298555694370414199044861154836856603570520646953044190537914693572998409213461513743397222689050692428795763103517405438904924945009977155875869162155797163278047637283364987954834963524543840999445555621928646668013776257606176033544077774444601790565634624848454959261366725249238561837400493932538376778016201017841921945304907953741144017914541555732454009737404820735850484408648954705076979080440057684876342564081841168291842675974879789262969011125450252660142716116751160324042319271673878003325826965136507665102668344851654751692995817964240461199288573528887837621644431410341318214857967311126578239771366417007429376814271995393384191705389526944157981125735744229943644978893516217549409646559723568627580319758069286700617494580918066239001567906817937054218148472822904696322426269941716866408549603479405880918789230560479803758948124627633759605521166674064710748956532496951140970540312813183650435642875945523349573288938558429888401041625248692130021936147533752945076429302971226871587310614007313596632766184610747382300218082226823407769130966014027213326683266851848905146428883928030736058907916420801824790860807366341684725723386047385069252693650081204666244533717916678318303907334913438876252600737931406215942639749989991141041694104360101356984654512326216413509453231811977848947585252703924871023826505592191842389219304295671348514745428306316253064119808705400198304414492953103323384690497647715015158953879183908564586074686616464568829633510688155921678415778204242645306577450433743472867046268683215599564591050368369301219876661405124214523612286638138048738974434237570248185344850059236753226602440374851720917194167289497741453040036447321095006109518760371642894382333358127326523556175849876979078909465968752168306563751564565846936706904215634406767016466557211004560767048256736862416929173904426045702921461754568895566914495363155542801906085372763430680669241258223366102493002155199312888551209533393499801348017708275437833591856633317501600017565219090997145362457943739368019926585078851414441227657935721148585760398379868844872715697920758295222509160281607437725178008759497462816426322380597733120569003063960235268147836308087644136237638467977446594782693022345646961979774460418012639684006706600540682937098450465016395105419592574134737263214653558547310037603880166268936769894702002924519906707431696854334362511275954148220341377367724989902184407359514758887128317248468065608240383364508014587138616978292882490786400450124760093765882319067251795842619827494047447812491725675938588000083240172012081554743979510960251777697315245502879238834566398304135062096682380613559712466820636094202490535731705444565304612216683126077151952070790286211535307459102923692255983114492640749460934302469484160834348351889316050946014764952176571040673901767735343687999377822207712276381438851915302159666373167703148175993188857245066191331648806035103763435504542655821407870934363031449855026967336722752082330669672963150143241515141446743016236364469763947323327955688528128805838163439137161739470227746413778608277170739825068870435812489727589786537298013855743693436524860924028088089786368688687699163865770697923200807120665740699670567626767101725318029809479719189259950808341655383732850851584271913168730272018394047720404884303206146082979191785779662351179597823835322324846227430523079650147088307296774812489497930962763080933179495316620312258148081241330656568827211441238715142905043004361358402521854422709699914232997486288538932473004844891995277893513332584516323870623652311401251912836922787854785365582394543091511103194710370167630148982171988814572563917591225171721823981870440252604720717434484088202598580930453523968027158564240890610357001977711803452953374898424967587923965861203323422657638382839491908853178962219594959338679701830103955751227702850456834796943842960275258039277279202048437512830018407162783544090787689460960917563506892250723893127039047194200493495096117885925397196501169183982342172966406862855462682968786261919580579246380067199337339948743767945439202174919529036417904332057539805178253013607931269098724631460384453785060353084847629607013779937096388200086655190562661717447899947032760038619610947140954460895756234654699408390969895536551015892369291205189455423163608431940729563669963008917303100647310228775539089048174366014232847714121590426229726629491717261395667030706486014848478516673183700555238625855183373196367482406790297524631163636682244779943699507019177022180108619495432580514548341002727623820332668632951556269162891203657827444659131087620870246786091598592823122881696586227863459940091350948470388808614517507859355821993182532768874418314056223742055220718986967908012035052092439156680311818775641577383961951381771729171211930503458977181264513884672670574701506904975711495550684919103195866454449678565884441511450833288216003113407311310627529576581189609149218387216782953940328871026740513953481572773277562876191684901073471328287057545998457983134056479340247024654246538782019388625555439931270075546738051045082050878261654285073819282235011195397638091405697199349848156219545023724361152576845297091253244551199074985525636009619030676854326332617756000693294358975816322576690781578247386063855830228196036012501545547187246271164480557531069597162503727167762955144664918671529395015556820776765687920790179400763156519048588063710344951058326994762938958606977443427887916671972875705379768024829519928416551030844546888251616981176061595120473681918944485456034084545695893599546330609144579027030962070607319969814027600262199614839608668257419228720525121685826653133740277931456363743249332418040632631592290254675658093948140075808806554835861212239059310230730772089493979043497383910482927135255221871436003583050376107290215180504480406021032059802917127071632340123039956216049624445795189448256421948463560303580485718347058559471428048769048547209130251798678709745721837710501288989544237553022269577504274133046336178385045154346273788802375911475652212528919211179758478351881557754588414147588274548053442240706714032972075598971943326977112801415771171173427938821233038395326543953814981018708903658122098705677021977974598075200503639655799261164487608760001576346388007646171445347817665829418236584953208847170303283316470086758251889376960418171026291994680315263852558847958117107951669441043375215395134636901173063178630712985508300363231099479752397499584712115698513785729785520393050938449296200138950150997468392174163603423168680445468932937030105909145077166641511340884109956365297965820069974143320270330864796880894020682906266215219802475734024119442349052092490170558828369761884959889331997824871756322072497122484204838217480500341962190564056974174344145749831034793587678469901255258018759494892828798162180974111816044325235947008548053802602485679173171471140282106425932552016700009407208968807945426857222319005577155262261691957926510997182726680210466966980238560805084381899383464656554270718350541546779209857540591028305471954685085932774930721704319527382928979558968434915097839123317870715769242521736354437535486351313918204852304438829857532062554203391670327873841069314445875539852813536088924559941863595660142065778272901853085374456033407776795965688027328023770960547157506249567568867785472136502615868676201127586450007846388626911586966266491864710031623977467190271377907975141655852935010574882063767655440457658039299029574961520611623910014711454942850990848143688960271603998378587739946881457395064704153239551862568302995887665522756724296913552381232266993873057937063415457117146205426961699626141439425657899548608441478900991240434189987661621953853994012191674628037929163852819639491555613831189500755592079243086564474402549580141922168970665567579112387698520933517629474076419100468146938519539371114301922379835618973379606233146232498728174708010355588484384482611013548191366174829659256065789839693088932529553141797057765344146863290828954790511592559699431292085543547289930517511024448936063039792256291868095395879683648173800749140122756814963242139825596113795499229096041600669870712482722988883083175510503978604769786797453262269659397602918199195724925923574962955979599779601891700963506229748233274054546771412830097447146664045619983661862682708265355181898331620669317492791982891561213175406141853004145140124026105541743324341710458263824101009189610692909458475191088807314386789626982910048026598089703039883079884846508572786240767717567331861811983636694501757328004006090061613587427356080738053077906272926210799637428054606971624585988650087699215844686459856794288261230322013327553536253658071906076207141674104369128774475398438186294972916584472906773287342385903738302918618668093958674319156193517318267341149640035412866153021401315784787425609596382155773927888827231821906888159912498216734230168081108353070240530695483707896074419033112164479243323172044080017432561881162849004041920332458003646687811252513051096097524618150175971356105452408047560016464353638828816379312104586440855528513372533749811141739564392390979571826857643107093189961234194679745628654462767919723655072508557286274492876658393298249144301074962784895554513064540406634348939169830401744051539851569630761132260404616485987582564382574078618965694888193855142742122840075281689333290431591797921292267617666604806123145506055728949659190217385613891066602064898602064227648740895204066606506023018969336701592608119461445486965226977784722711844068157158014285940489326294794014528669298662864094063626662044921933820627795606931643245123593700863514598200032073552006150902361982631307359386045859025276332216799947547175986998438023089122257965389962277790238251606252498009133918431627334107973130667888973499643930363871125074582730817560586420382239181947764794632235306605969423319841869261806498763193163092702998210594281627725195147182172524043058365103124910025022832749225358249116112469327481129119960044020642355358064146725941613270239316493752836029463550676507684629469631734291684712064884550058702653171901496666856397362464062020427040714621183272715637056887009807930562958949897795146822302691011135056044729848892899700139523852299214928739458134397201861023863487227983075680003642727214230671183853910613333770854291783940689920482729470993909860435372674138134773367278866900166175658424032033254143847628586401862606619882498149699295153998544358920381032548193551872936183747105371365301446858797580760669847449204931407353001059683065443897037332418086057191113244829197002223576142796804726738733222043346145392879924824930573906519223830161561025626638279041263283552140719123687920960587122705052966979291099776006170915619194208803373278273103697238363467456455692874788446078889149009303356199856082936359375025004552622343264949365735748525263567010060314882887646375148768831427185381129183521620346758841211373057554115877242628792685854694590919307725880420578670491226621546316861659998084201516482413548571111687351142040646230727393643945572867602459094114905375311549044697889180430509196726727677562122070634382957014687302931951686243930572353071238291920881732944232969298118684714861249663527000598500069736974176325948295811505618081806617193471107961925440718956806711156806818922526710244317681138945760906609381284321704913808313062753242232073708976362733459597852610313341353778378316507371866886670504075208488288739382791045630890410561671378832687099143429280573597445478398222380089419503138360977085400125121492338086098185128969811498776923640301782390438022647813171066185110191410208753076918765390788329793159978227121480062630393454117732319013622540912523462178434943792263518446289739018490554234985779688782471070799080908325980767507845833302706745728327957091625267024938153496209676807579364342603075759779039600024163220255757006941884655433948434451290466708418735322685337226450332652842037928169345689033007228580095658021718440984265304350737478600614176197047966798943861082348359687092808600980032939186519928179384434812747456295649926213275236216750430227574504058707544958534366592870482176524667306174413568981207651880744099173541072844952373277416074084288600570513368597811649685233142277522588812584889955888236525640508639030148077086784904245349582437243516433073990838638053878396089317820442228403030417609455343620757447669370839208235399834921739480516317253171947075287539968981906299103257334184838102768266178748203680899435439475759134593128262023532763298846346139558169584350187655333679058136284823295210100333391548658731458053033429278340546845270354222258875687914978312794776597881557678769755152877258146194881088214439108173002098546270129018346630200018446108322399554015295961792190199297164706254870706362229798865829662867869136668087157033891163190614968357887117403159322342393165332543548967340879360432776239357471325767129530835363906888849622655508078464165016473089291970577883399848102874735169973723471026635298324152469774997525938040740063214778105511450620599024847975560993826944048290787554238788304392586836899764791890903960061001756862103030325342342159060460841817865355420928788803068714328790136288411429095995840992988332855287990540941537028696831513841718742289156358579990152321876418623351025932144880487073858420864437698354030741034654997784090421450956506347442033340147823214241743327938223916394544374009315357025988823404177500243906599002628983599101319150945507949529436674303462293316006443216758159606425371998951037104258024414176128615789568257598609250369584555533078236515139909251505800067758947395398586625315430804540042655686138229311418462912753329774367102970612227055824904484168376149956530875415258061302508690619509109204010512793196053318863506356473831467302606036375566212163158331753206515594764744688647531094020939077589419433475844073027872474651169850127949069590720420899875638133138906179596156306966337995771464887659277463639680623972103684764914057716290345276002204544730874042048714960485247896860309955209842816551054154495951166896626304721696111345280678821661891214022858579992199001890996000949969578946462284193253142107895743772953508483744536883018783421526002310458372027620727094503685780953130878317637727670293664500999267237015757494166727453781316635949413637717281727800289698145963174132160821910435322150445066846186983964414965664502451808540856790047668760332952987873387464967180972262909345561691283513540175768933329049253501965602796792464154197297774260016842241295050305443459056958942726848300561199584595321672114447201598162488423720495226238371791372816330976251307503967916313379041137555266772011767075443905045049871008729704538391047666131561469865978076230260262980958185512266483038213807154531376494822350973615013388978091164749738712194439303076186894209741058930448725161786841687072864248203580672428836944517432260699930345972367033931378518454915741986506171585837654617857530044217955499893982258177669928065699443338932358959647088188571452885186209362675407449778901065643533916371431209996994686710623988202750826711543959328886739372738485294995895108250375983704720623756667992403340283505391725250792853146689983083628033715783465033792017465466376933705456252878070722665247197248719223684446580177064136187938977254257117782459087143450991489091815911198984645622764470968071283774512089475606747211084184253283466828223405980635503815482921522794636074002435687510834403217016886025509827128399168523878974275554236105962538382679636778716023751828596126913440563853512662997015557561897077091095784183622248579790823636862068238805916087068241737204565915000266486066863508514214079819003643593699153966755065070049393527342411560046343899660173539315105143642774741231441518281442886369147498896738882748924594775674976427540305205925061036607814864191688115957194740394451868983032410959715815323488791581139075645724376827376781565399660479625436154883575690189720971088032404389520709054035546810848629356994253143431186885365364671772785652577530924620910661767985801874302237461204672536379342929665786877965792558681335117399612944400676967399263763457704161823858351574023928727923143346206076020388036739778224308328123406876725653970388357062498546969924814066203214171253023666611865913011396334352278213652024481069603408968908153601659805986840754307403595358073399555164998073825123449744707620250957942404499261585290601874449833554826613690133673743483397233465694217601179385437512179854231659637648650018532206373741299576697146885777740252445206286992506873444280671139821471104096440949080025598507125048131033422222706302854588271472552288057600898229712614322156337960923306676827965007924061972244700277149383114299459149517611747241253397315389050158062261913677686416413733089136606930639544932189526202503845530269452269962045803771521261313612124532100543326497726102045153807515603229131695793271265465971955506963647695055398186157030243225803961760563983700892401345956275985309325113538568885255365372509966697465665765456358151038608596047326524982148197313532440680054168267612842871813832668137062546398863923919075827234542283765977049927096019382668253273909695263859630014924417492641902333874554433987678054784576400819544540992098895885570422996373397935420134524231284380196637661591851195179958473661746708980723056978809270458738265089550419284539643481291831087054464881603423879068841766835439435370960832706761687619394347720698798855887763812726976052880418779005362595476347606102015094775956573089371533981535576090851846111834864474576427768293426160580622777982237391362280009813825994547540770256928750607132727655740902150287109916665232156080128554021558578995505128381432319782624751523070118644011787116632006461922622117488488947283010306592970339218840858103331354734626870131091497832213912868897915181937753660388359160413490684645214646516897428236810281981254873348358284878528372548462518552477443896625679269944413332307477665873055799603982848924816365395426961137475903952788899862934200637494786952105996967563407571947634432564889481532040664187324964501585583434705961579677731128982336655113111379859709957903188713958753065622292655937100714289993083786148997506137146334288517480912017382638239849063484825062922041811678184266434879994181459388096976521368703500868261644736078533490460167733734589562684464211972830018655603516014009625463405363718688876063157808196382909841933236252348095102435695581175138376624795297166405636164350145708541314813545235141762169433329004913671650401903882462124370615849683075234316486077249706194879749437978735679439906504400770171797444412707047615151970765573636051255372949652020319744047489434544535071399947733852959159734244628329427400980023169546046821731865095273170891431006683664351632909558595347031804667077972564755186168662326496996423868038697644669006656866194320082923477041271964129078279548985730956449501027165341014293610017316646813912540646252411917991980898368361864666328323558563455477820282303859885394551171059746766027409993969769893001464575997320650943645769683896218020144980664459843751098140567799268702168933371680632829817718523840134143998903928335455486837546671495225063018328383739329014354109093318011198777875689145743937076737154189471183952439476813980598879111861350191654368484288731502825340905603790831032923285877601508988532114221007042732502998492363323504551529927768588881137076345470298400661594774494890733949500946297266414746599131266391103696355175679722244443414786420282333675041714536513978525134857802291895416258678877669159866735663959585023210088835518951687630712969533708098200017034160128504590473433741423683191061632284463739209738112144187486415918682356432395896667837031387452260867333865826870877789436031348310811034755391271375211646088337210636297485619339661137116222042232928743013053552627329896516267980725200771014956921799617664380364849243964680567996922825837541810666635443823512619574015879562650618509060663872794683543851732613493406828667943583230801446196944837918882162622912803305592153415105570110475634237264398614993462116091620558469506495724845723095261323574941246887540322588176320620983781407339201125307613972304590180930621815893777729462260220837797319346481925516780809212765480776165777155312904359469378119263124973590803636664960985289239010516838315328566591407450191065481123986443937644552048609591867422252638131758492569921794256741089663456576089476676462028112129978576775131590260914287170576388875913140105060835805912468481652421134663007942780416820800080457877030019903921340116267554969250760161024995463760828543900171637729997665453912246889185141109405947405897258495243076018173405710343415853252801227958712316590991041256038662712488471923440095198972350028818554998970652211443975217099003540567078465446899920847526615354930003787765416245358102970888558964577227108210013325002978730422033351338574606853405841320005363794906643493973037185136165096838685516576373121871689769995359866969066412230550278069136938478247163326317786234372658980860760458326994246341600062752450028553540891897088164362824965483520908184600861093376803569726508486420315701018446325657022790234324080597832658450738752927537695964201299861919863912032641042866052867013901353346184107593462556517336231610274618301371604001404642334130648138965808900469775345830481406788673383462683223317502110744145416506543218049665357982743595698028509276935799562802985051498453832740537797784309425462066537291068934117315605122030632079102668680090618162356522827038177217411852495449798575886383174534190218566469417647139322749557877710334586772238353155174329979278780121113607097956829005457350026716101937458435445086943673081788776671590716958463131291954404031659440821612879648802862675462036640362746010146685396679179809297246042986504141875774475913136859838294558175073276884636923176447489501782564757760717857075102834078392356908145574878535796398097609524520307179973049315569251395363258041534411615125712988639204049406300167977602612763152442238834787625560382022929557934224839861382181381396462357882293884429998317432528732193308490935309534631714648051644797338667753858676425717961308183684428682416627134197690574710877878500867910895434357244510968197382138294159938260141738021352059013843615069204321496556331614933879145456694333489150065647583719193894712375068850371746012533101507054843050190041471376169011862622216436793916803566807067856080100538624861085830221182763083348931904711921838404813965563198882118833138569512923375929717448412603747841116096087373115969986824319124669302366679071187868279401520900892347850229632524436874564554613557365143080558597301375001597988204182429664443496695305178438901329282981391207274199681351149633435922004775530402981695201079883739173247950496384765666029890169226297770323775470660648174795336646500739755791667922684145723611055123013533036932562272774382535413677282653265727156311478745707256712631002201135069682459333306007001026187508233340245494234620632746332772541149320986499486629100927584785181681019130498046380636268805517567260755157995757582967509842894711706434197180092144256778128288831482198786658550445291759336126184805278351013577425440373778786890136737230149740546916682975834772285606218886375715193275213935506805637308003886796255071263982887394718667377488096138327013504672332221275573630992509203967349434469602718009244222723409742940769201540223564337276449373653344535073326496815377681565052053614017747448681524941210946007984737988942891300142895980497650260960012632616738134747604019989747624068455895869762866071150212422732657623756141103179262767027008340595446424307543785033157609036963352268910346076864598838396225094245178806643759784541368251909962586606413823336940859307944423656356608034167462171118131889682685906069679650048689156668861141427981938576257545978285333495872986025270424235893962647733889427733373488674169258479818928194405720330870321679599409821633076019962030425216742332729927307056439186621172866855378567501553924830691970378886649212192269448838347742384935033759122447167714430434926247857002756695004567062038564996249319881336633455485234359432629555981885774445561292863178216064090211891791094960612463172823436092644797471231953276153084754656070212520279634220578582659009165325584202266337694897972272490664618349918235515561580195515544591848905921615701319671814390874204148455607195638063756460568853677086135354767589812917673333262225139182155400338437876937651423246961153248925522746263030342150003553800690777310247837265704410164066636516281629099770148384527698146489247806674184603380062119317927472468020239512696845487239723039401114145673851410049590743912048854419426002187246900862792970875861814757933120015403423080211682527932965787485885679538917574452351515928113494287677640257840508172144726023603157162534611033188893405351622850683951416434259446085701545574510179296144622473899115890807651968971503715041010811230019542873653474452023827575286128696555942247241808308700732983857416025926113676376575851663942738699593914059012002279300660341367929353463658293808087567720928704804720683787435064162709990596372166315869727360455030169691384898147170230439419026634102195076576798699609705177083624471994941598232934016765607253860623301415944845698968112329445818775483135946973988202660288857961590661365570507811581751449996641121415812416488376636313066006492517945862382393965558791161813777191032370537659552531563967845816527368944632975116782156257528667463466088293496275977241139042073635875361220906183391212433275423212992759620609524322147934878897991389422511302822047530115952167006078774909638619130544828651110729388733423047438642949254668973316092586230666899579189113321565135858200613315519915649523541290748506642206728158666515416293917694484412965346154804524482188401671940850567308826581606509387431254695647970350518182743649977492245010437437636473351452795085793016069753210680287578423125204482756474319691731065644337814020831325919021197956719974513046525597202139051677774311448187236988645783866274842117336737152815829104140311901001142610881651441685582114651134733170818892429545138027000966679343770126879312768761201774153101196619993087838316087000004353918594458278266748832307397782365710525956374947724472483656872199422146292518332154600510595610094847794718007729987320276143036442239965056919970279422112414292703754743004822319526856422184677263995594770446105203847955378265358735516030522491171497952645975242436010267802449368964072798599281193255098957262858710554180904996468310942510878789096196089144701661225309268689158134932438330659107642309348721604016149997241686978889443117726451218956759033215172127355462706144735931243234884228310540170136469359103698232115199427846508637571963458468460172362796329754706973094717603731538233148320960144179996749468782457772647126185066503728599880086583478543407565013834560380612620810091934036115632601522733283752215771952112833204654338445672098138528878628040333010043440053300806414917795800906874690198773652179209149417355964111937081520731300558455071721608439065427918209489684287992308451192428590245597372348266284135814285575001090796068260820676694619857632529513974094753357985609442691096255619406041952163845949242523666306533323082682562623698896412353467313139564880930788080357894060994786536046916353638128899330611817461696728105857395953076548590719292570606038060118363018037587510717215835829962751512498167603015500266656199660967007448801237085575468815586802056471541509487954951839090991570518149852671529363296086697369475884473259187237333529291675714396594961657073243965278784096655398633506234094682827257354995651144200328515960511639403994267302598713678347176955763086933048929891328683489265114771174145308207331235081027461066965973956409643672738047876901513864394869997883310298030760011981912032707751610250405441200097622446120231420198530712863833637302687821081981626403970136378813880037998526871454037426799387394826514160275938422458318132819818628814094463178621202513167603652455877083236449054615882404507376324176113438306860080292673842559495995644808129773560610920001594084893029856333772887481728095972184437280337320435627623043370634808433484538678945334318748664823561194793948516239180553682718058412096025614469139510098222439068031682152809244245427553859199268926157599007319801876163470814397736667012724401406684880593280992654717585914704810773197088204688680597306751080513754099956507336365907667355911035962054480918678488403742440652812656638502233391362824696231235175684722333426332455901111525986121769716493530315827725382035459026526649901960784643867211502451565444241934977875824182598673180772565847175004837286271019962168922635291273046690124645931295182370249286059217730467563360040433449072660141723633521978255366153877017553481961493552428274406412578033977424137664211897429676003633844147474875041270347021581956139496919861646012773197511257483560716950978981505708962974486140622036157911141268342338351897511856103132998400964768308923468346732328727801472012096376876808316277762536048233421511948611521338709713139768728786638986193019169844809571428996667076577896089612853236981363189630805669086297174096832787191703242328917585116693464533723288958614858474412700561186744155506648927921692777074411540723605336212412122134218381288244528853068619320196281982769290376104309809068470598033561579502982270937933016814220140067319799251824461382639127131498509624915174624338608822062170940123628686053113006377969237317841745903501929742701876634812138935898123692566467202119100809954391638063407049187762779578071074444571643693009102625448113783032562053372149799833470302792288408361186921104258384473320963574023901412853644869510002892054343477229871760334360196298942229699840004526580458772421731309214338422396304764967310451101850754317801042233877622126756478310025772380569743541091181604338951028749725509536376041348026805447112265935210048985190827846544774206099296942343831271472027531227785590598910835474354359800888071445327763062437591914912926415303664008591285402221175426481658849224971518721077417985853094945273072891275335771283650062313832772886348824464732223457043285749110643290794961740273636006569233122553703505237961479017507421745809407555450770257523306103619983641883277846670221836737965638313535364543123434204166114226973096741568082391379415236273163035659096450148262337453637657357176200201824320480799086090979286644423115546436911990740700522124439049907856820625155552496824189052868873323361014508926108401203919943342800801279314346879183047728497700094760364491612785244344534190358706633665661976610653252517022166829436882711902006718553416771126607048381122842731480303425684492071399163822926012327672172841072199122878259319021370641345005418717451424924552883697088655878890102203323921237041471669620406800226980574847142869749540225863667997495375005940525115556629399204540893082583874210328478887464713188601784734498510795325515633756010255464457414019372579911483087772348971501328174486418201028767105965426346638947408172310864997852183021861630836713404729486398234551382604709262997913701615017120900724058765591289492891941033058817677676977160445585138056445003537893796464430838265785071446052046350047562604602399941116797705730727422985653142009963217637432192450788542945412118926308433890117621937484825801578779520931526738119570205302450453863463536481253071788019516775586104742493809484440773808745303882256006580563817499888816866613670809477360373862214330952493934685747532943794084843176002541740929235129711712495249537120527214264136040642459570248367458153573707142250258667781902679448643889208629168639206203071568933170750058367686790319574560854338447420344472772432806798244976239882962336311708324466538143556020514568571224104065809174083510839582775467399877471246798996721841679221029217495970746302284100070528697947115200662657943467001845019913736048670740749498515560731606869717481520677435208724087443535447124892199688565785858345348823201873290028760723235666187479363812829543020466423679611087248367936850101973424128589960554550306412439591901730575117887049064776359901838336277043304754253898445136044298358067173588731113934878708214039315696279656421146379280802513368396736997655517251970265908265230525529769038568797156148820752684008833034076036414985961893689024366025937900469473038042757163931794500111746004678835767712749664120189977491928919008658296804618014825103512720380180194971585297411132335167626341252248550427885534192128379624950342203585172398221432111968279447451005999373833631349184518426623882101435582848694009987661473615753252075531616859908233125007697752506465654086524943816421855494603822765830736132755743565362250036992426045687765322877285049034817292874679440688938260002504883282788850202679205211563803936218929212083728469881487627585244120972171160366223733480186316607496487918358802829045180205666504961229458260524889453977961013291436752203259892928372919042807415430940186473938327689647172831340938256074504214774291622932911080874914098030659074774223927350733865973347741706303560838823011938993923635814820557688366799460116769282742109935020292562993299347601353445441009561665572147335881650571074174297203794317190448187445828049506524274462940718961561646466516893366484985205932601841371580622354639325853696668263338842853266437000617441500102438909953397484914922874698796919396001940407189351569422984167435638813218271559346622782120465211180171736478216737198366070907964536222056205373316634643376568390224326033380230904464995759154931545922015395664745907975928195022954342291161605882422079502304593006723558651000596993304168495910950957722137324364703432630571297421354252939513654444576594078183419892952852066364537559064722852834002997034239960526747361698513676806871052112362465754061106159281968466616721736338174925089019766921575021399246329561924634772470337275112058589459575724335388431580848769525499260659772751540375651905013196319887374363389549169992954475519639648537629890162822402597248610112308491693469903767960375757630743759502683742952171134527649665746638453465817812834745831605450576492119325563750464931018096819109286412775964542490193008029918320538764688145192126209455776386048429577648141792806858125791627039827536235960101921205360842552677801557331440021050637767868013175758921409454591788253966029245352508568520649682170291332977847002292321791332910376972515072767620334662254139234928786038171533987366598919245366668600432684908186672672761394523496001600940577437121397148483090466153301137378165279481755976081726585301643805641136178693106235244258754503700655212345387587549781638875712604760269704977193750138791864501119883503954684834718868773577199771728591917536614103170054598182761361623205578346366992981683803475783481506307052615969766489967943291287930537126796169803585529762645262802929818743553394723732766908171371408431442872911208778511715798236692381505941825434703457727069641482341676497963538774829543931664773386206295299758240125718670104952762031790902702300453782729285603807259497103126621348727921528313194976248333582986434366541865828759584395686491325236219100171410898345986939395696205628091780009689058970005884005503558245448940522535324497048462062345420110498647535192506508722840352297989517312935803814342404718797694953792868683733554730447775456577538938261415168534576800495203375974247538442501947050831975151410369903615530374936774075993854089678629664991378437463671810447980196861120610555376047450634447901576483465214086101065686417760032795028293767455903379964063465138085609080041972562262170098554813394632351188053007805046710440793473630494588541319601203786862336069382492554818999568905039192466142680150486996226387391202167331252103263076245352274549633784176622566141858675489419846138340076814625640524461272855172480197121702390201620505588872881466561834016940263320845209337925595367215265741355230702137817243780006159296483719568503148139393803275510196732690465256127975194068925466532823503473409322325773425917743643468778975822306198300852830497818615821246113342631153411214370941726742490035443380762187845842386348823991672481463071628973795120449338517928302028428852517454296620109907856987526708573178096664517126723311723902476460742090005002031160455009785753092573050726341060915490220058002974889689395656984414493360793493465512131602189303037063664374653959908922975198076033474513264081308755595516904751848162315837481010418056484079728646701754332826867105429732692771345121317329463930433210912861124379309152121394844202870286103325911194762476656636417242428091171397062720943348100823774267486465655527585285800595740189451053952315692132947555370819083111358699567728405762842751464107841580403434380823629471634807979535099537929405345477598463684334288988325196475469350613456898998597263329932364639916960606717721830878791300900999832600410776350427904942295612415949241298841369889629579152632519779936809528509627172056040568319230072435259851451153899106010697056866913541841823698862757097282392499413060342938033851930508873255064733980527672775721450120199006671833858518295464575276187239595101139538435531421995335338196487455099399217414800884579571514745094177695902597606477013251470716093856281193036324700407675499703415245362812980822775939171462357002207078036093843356415802999069543063166300244587540348675994652143014661513237050303281030974379274977533701626188292868243180843756257341769353182939700107430748979848916945706693724318075373380448366436551440091231767199382701741594292703450258540749596798739991688663698727164808101010612294766662398400784697043128107848582488456022608492693313093908794479245616608533259506414115212881281061985677878171855896550865812038940983440323579627060411555589512535384360408802966527958299055750835659760048713475536328304601677608324633210072049054799098336295010954977436002457585552447700859223011906127083565562675259704886986047292453672561055122103226936503129094802972982834442193427265398865870155488672138753281937694784266181277462632845798570351408562307423404047829178688035752434425723821879501100122673748009196251103206477020281941239206566831768329446082934012779538444720280337011618693000012216262565560059121566186845224368645053613421969108279657657749660974270794227550196132028101264102828362532403292332878442678655198457912223256176613910333284108977596911706064013528107777479766281754533390758741012820673000076195681099194688247557446534945888498285208366102008443280668952686662263084232480493994885013497540708684812025997320656000004224577312512654613516640961193240770172296068759619484205219395019946171825049707515747273275502980538317286848494282622748687052723671902940173643340084484146531289085650501440153289859496680217545343140252961400192685833358430917759841933350072809696600000526570874915120126208396368983024735158237949694218724319880976184867618922017559655477846247944085768544758750206021727092184135835068618895781658945508726975737459321628336008271696698308911531334722839583509808570385182112953253513771048146662941230528161876736033075860107829209464535369198488694591959509880235024844700522744599191733965081557726572057678415644020973591251619927878484657803800232881338164546009866769180630159347831998208577524554022309527151747053508608254980603213305631542008018340693832407477672258158595273929723564655200231635497105569230222390212752286624538964250349982812264490179041351972405630179194403436376525908260292107505504644806807213006359715431412793300982253269072804864025637345340269911284089622754659763222404027870494724523945103834308799105303318379831163625116060162719555928685615801060128147322899380530879290418691964117953620978541514149769066430649439312667325456175647039578505852758096716670503606757772536600787252767960180502861919162656914590736735742995898379258695348521626739633330540481681453274246256514086506622307340436806483236456705495917950588508402587322922839795746269732057417044268050677557752253557510003177529663989094313906088146401407693437555393558875858115871192962494694166440760313512911378103629752961871732101038135463001156146932084179438116854518246282285727636971559303949559532498709621660456957403421495932717622798785548516323620816833937916511687173354861644288577660849644705863343075143289214976089759875828740065853086901378690477896682835532905940547434740549903444374020284205773431351128966466783009114448639602847703064273763378208039728772038996043781743911529408557034053859152974925141742242869837272513802258442897426653926202157679420347509343785071473857370501749223466990706530667676787280689780971184897402621488203109999438069174298542502871431890204245126260721826271947285265552483981170257782309712267070783673422683966719877124451871511651099299959371799666235733003216918823671187262489841347651948455935388756381408966422524225355028506253061156496756765944437686263074745518207124356285174611706076688640907220134121888767353007449310806170409072011653019082972012047542411072907099668797369135258756320553176820127865142199103981424325865213158071668875159433278273066366862694547539899348909601620340927579494330286632420132557394098828151203325853645970356868407290587455481534204851598268409355592149422194550836060292731098670062828689625990381770913491221497962722711311604619912663405785470142252358818638718883691704661987154660557043127325391141511251173074704116301315215836693273536158312756449814131979925458444631852314641681384276007961014976872799187041557981510429391222610855104954362246154711195968001833518834163302493114679044840567128475612783756567574939432944907048025330956186655214152248265417421205140370691420555930990224586890633182376804545986861466626427634181418120036832207806628645491568626866867839396444988864411014496519188453967132883245968842305011225578201220761225761454102400613567725016127122278574357229644358348381506216133888388994594371575453202789330787996107024080160288456735729430387181350483402373908285575879088120219698536262817446306489158372800356816752808416205251493775676216903788445426694125784171484488943970608704904763476153821840433703595508207485511226128663375403489873993146080126691207111797551840492834293412053615945675291706810818469221575412213234398566509964397279148710170763752710330967988493420973786635484184197563759440939641133128695948808207106977844435347978102667220799634478541760688290156123332894475838953454180603935606493345639670865635071703317272089671037996051189884182538035464963403436483945036402172739061704031978180692132011245017584517960531148765251891050962108788146115404132046127627491907112051970208677476408354704734889229880085261351494391200253971648828131215425150187613307229017362167482101471697776319274811414643709526486363834298019912784851857439982783422392121251630783332639623317637853481350071141429434750791836710283615979438108902514367129278999959195369690421998714657184642674200671173484142896097206121533935734101790250175209094622405061009223489110120387502150550334769313635028002030011972770125436034713282772194350122115513119756754991072406829163348982176834241219503993719702560977108531040795524112570846359841673674295439106021064659691573655567999471955452401400059048277884487693438447509078639217365295391194137050083727093708950059649905608593734687889971271339548307473433425597719395929870273562024787880516953103385626944744491798401821889021558965782341488968799835192589631520374828666394176686080779157069433824630002188453912898875066454189685149247980122804107116877866955004969318653732817493922047323546935231685914238438811841604715466989958333532720048613372884950936987576729712833871714001761920723002313581228817457258386209701349512921919463100073275682589624086420518469489397770228277361444406260407203124724255404174990868112236022016030487228766302500831859744196594606295060093568891134983867816852578662897364631071613158685363282123381585302344452106239042070221193473957132063836923155746486910033476498153547837157763489973018591006480841744003552846111462854671360813045641380534112719672891266446361582911614287524621309527257496627922528674794144404698586416659079065939047912366135510939733632915683937035707285321723492589789261836300471354549599289271486722108229314888190117002180746189108614881504395390663874139342506028830008500517109326682190660990563993171593870051545554380919543293124344814372290229519824975354405288355713642566914156886837702749071143687552779641853667640321524324621831965208535510907021100271131840529646471169426663727595137769323862789868081941851362028213943789069337756556984728837054349514143623747842884030605825880974441563160662724811848629893855394504780899681509310164716759063393684548529087897120814099405338518919643503167558555968186058907238713301075178344689376589529560174343140278210398811540821066296465611713816572252259394988808968928952529576661216898926116645495043657117459490379707358797769923685831112410188464889934837181702143135438534702309413219788349327718195740830472793611263865168407933748152812775818536821486528550396755469948685060510785791590933407233958957293035852344309133214328675076878317329788766916367077753130621884063810005946443827578126922554525299345784151200381416466798215728869775378036595031249589668258788076065438298331863794683540915097275486104635061321389186494325411513545201449860251180653437215776566291700067136742470268957938993231970812724182899425615419369535845158700615514221280939555494138502446232156075831802714375032070637673685125076402466829002293693336359326005495761056909899842956579470077020354096348438326672314796163828207505186198346266123280569711826274081446569587277721367547647373964782574410489158509608294306680012315838161046206329417522893812806628704420631495735726344651742052472146728723739945516165105319732850761093817613085625042221282784089557055652869335358407861625751569500121907329389783673963343801583922417682105582865301959773504084169870226118585673188895345321577863630112185333616918210882445813234664057906303741310983395488614834449946362202008479927061866620935943136102820032935314132059986378603484396047348068212389796517097840483436486103524727315041102193274871830822485412002497007243764486571375614967893190161949615165866071884419279022730083406501279502268097073918456370114025938303217419962374870212908085396952210126146818736581621572018721949230173492260795252225340239482195716641224160136200612452310316013679585365099727831461931503245032561054169210018929251186473458056651612000795089824337659765248727600604998561387453993350729187904870139565369570649143233931870744826996328905365313769155161748727762098453029651270513692905124739753853747620635697638599137793962835227032697679580549926655926525815581468275653585562779549107958296382475050502008842641148380449551962128963723239281487637782066628193981985098483348897449960466160014178275960699689427611917075448180996077258239264002420445661812233070879473754383621750469738736736567329311747031440136929434523298726136100566133019584838250241672112533292378890690619390456588675536269107871818179501745998912592540273226798621895065469748315032530018509790407334650489553231802466285837029587568490773782266173825874521254916352246248696523670929952523946597249726444027130428777426023489841211471846253608146826219682599501324562386288099232633709328240985100014608929086213277701381647550702017540015680480084704595886124590761337436464528304085727299798956850016732107877496813491325077967087959950753832616939343084217374318089470087170300106870520202072572376650062408451206459692714185836063411630863317100271035400522482424279623108437484724179392110067363757526983492130629276138014767102761808288178138162885838540904451528375569128560560735879308337736233783285743834703378678738175632428686324527563935645803128378683405158464814960792022589799850284584793520288533836796633819214716130907234191187909312336613862914713839523915680072080649673049340143058728904872077029516064951703587610031417695273277441166765624491479461822890878698110765907348759136965166412194401542578071428989582345144179098050889849293618338993965207866564216735001212673001778408446244868129158222312012008116916620343687812091283402112642968670949148122765952950775794907853085836675437000864934829682504404254622927392829667362242061982502556471018539479817572569792552403441910083969096343862940591982125641966906470895425197728078872559897962577661142154989123583577777577883094301880375043545886145364072066606357922126472709616772228284875368951890906553989171911190795580161713225638390017375648096373213665586253751002807562323212362942457914317637190841754738492027208982673279421111703470946373303707746902421187714241469177233277130230358830790597487055894859544911628040511533375594044409046869495690800524471649166367218425605869123403058566033124060965906067497505755111633278177759557374991225602231316531844989634513953691804705016831897746005164996540348444028091473234560559114423849484937338754036924139017587093417111601119106340932029623693906848523832163587418723542160407901766420863703616497904889618687850311953397877544755235628806214846393742787829108231779205670646148572402430630805199015969496323229141068860672766718026165399446982159520627156627710932640325167616853457943912052057893615926772278498325242512655375747249709376453138775463488014629997699029719485315012081895711019609381833283224924223156193236380254703060664768565223280076494928749164006395872357890641227934091797536232883273877671829690811339155111116571051957829852903361458235278813605545162412624172751819280598221910100988139074986619653199594420115284272370611469700837292858746701511274600740628557072926620002303841580407505614936843485447622712411454332675834109294622469847178203412094682926134010653198426714040092129440283836584282268388173145443441102673756064562878362326996718026039871748251379854881151942144683960337748617596120291425784335235867770567028950366990220055467366668231118046393793971881580859810087208494906115367682216751293824402509912736120108654796690050494939423214778902579640844563735038221570292927193020540175957693673407299310445345829293258919247818042105200560869997438881822031142599112649340760432455899936349795133257769077794598040249284226187326482553185916508746375197419079857050846966882657887652816482392641993458396554575055659194918236524261836830657972253368949969225321821453479046322446463134403186850729802788245705144152668662196107885168649483856629288463733207549065731616776983017902618037781627312722496105709844254084584798980035724506581047108884478504035926974371283443037971138746788256939723133235132361589498117787413219673869066139285789515847544548505878494615926379409739260681841899397506371166046186324284850286446156850845662676346565528319024548151699677986106034771009717425005614801405621768758995524046423285852343336800047346773157620198348199254527681774750216453373484498610523227420140114462911118379404394421072693143180536808974424474095485733020973758053723903558106866510575918537275354846051723492338654891088170101387608442635751847738775780076309746952624032239612828002233948427267820017902044503223938321387051488922564117673492405378554692500944121503544162964350257043427751754352505875410408914136232452658311104582077239666093958105046448109481446314223050605255255841573321539945502684643402821573862782377492640203587664634427310758420808109010617612868086857641547239988782921795306619011954543887098536133509939904799326659300334991783799174407100125551857279957374736858448943469417974735204351333417379145717849655868533638132307957015791472057182213523320152491940174660145881467492663391558124844039468271149377140072382000887277114280538726453825678287852025311609086875926052781654039039570780776661710199638578833354298685159986267595555369003202186289812887617773972173518438993440460547302488559381625594083154443441846538267747670053828111992321120102239502974043427550200091212689276662546109573108377507334415097560299355274897279371201342182741813992556367523655991598943380512368488001469769218471716997696630262199416052722510428803538861649505545181415718179589466376510727501206110153366282832977037781775977829627183163894978323007379723263215051237867560971944770140236828144106970432889449011821055920291896970140072753905442347885741285870004747570333298231094847078641075361395622643143388241390716754177265230969392211131683114666710007886070748300335760676717719218058624345268781048670475472058963799056201496697393611617838933161600638156989475002546926800642459945941550572261498030328227909261856085010153833769309372889881789251612753141494225154284071184804687814527112037813520234825970574102251379570820122646559476388393413332037414785177494074226852763026185228307859726174901736676743847709489810481157525299378329173671677973821866316417668927458464858582330608442442906744745945065563026079068839168484007559656276680738165963505101680188384886353763547157598797272677861076045045527557367877515984446928762564831462597064080725399150542369266033280732605781001714158846161476234200633953509366062056864486040519185260794604141659937089683150334526659590108079154713495193814205985068057307022770800970833744279175447140603152353506906277497095683315605803244772195770236217511671472381377594509993772617629627349155738804591361647563984457373619781036758274788403234378107239530634674554922141349553206218213781057788593720628025357692073943070359803126586875162780112288016407007816770880261884834504735635720821028331114444591124557274192919286041076334721611782599072007235905231635992346851010465061034768698690654619241112133573966183092283749370013311819375342314044351907651256566724082620368808198845065812012088723229851017279270171728639449124250545465135928418844987491002862700947972773049011245371854192820303767588744296561063746156655110299773591498726241180309667032702106368416839226724533173104587803449322947438559237663711964901809715704405200542307234066427584470922135461454155191704578230488330521715834851472334234987805345693342388673118832833304551368615160144835236738612409688290418731489268068858377011478041877322469458647417269568533567860570664253798107036311818162701851063726683603900157834197787497376301496396437205752533969285367628757941914148551848993615261495593932123072384863872230258974297763623634868780341627054086730539662213653198484346824600730543057111051048396274237641742774341435370963647419119544616693709989293340552192543753953875823831268251317673602860390291225169908216815461770194595644144281311205782704052050173937833864019959210717618545369712196417956638833861004683079795731428281405225606148198123268068031028577783322696954131557737362278856525314356238145810662733661513685250478840754630862088821638628715179492182920396443914206104394436457476989508571678731859046949337797062006127775679990278673311490862458819905867318487371551746928737742047546376887058537621654395476800434465547542360012939314989517168285381973777824570299591680011341254495757159228095128843713462583726079862561912186220732356470927475334466562899631824983471178832913188660645897640927121155593138490833459300816299105200991763735991112812697705616424033223589917478863751051141846237451837752654027953417316828538056639588489281478083639092812157128766809986316634899581130248390337520508317501007602439099775124047619822793554897112386029993122653186700578405971515383581536662852627574534021549121580937347285429974620988080126976101279700856773978962179473327132159644645254396873976098830117726402655917951376283213199922220305640849368420517117260986713049172782110828931046048575293365113881840918077491122556287685003802253085822032656218821554742618277503296243697285268630028446975391885623962282572402705346448568908511154876960852819239086888824379060380674990062268319085528794246361741525999848761368030175514594438860378524311440859150939514997324202126393622947583375270058813437380805635837653901714933473407253688461823030293621809276042880510304113996786424430519371859243639760088765493832921356663921087035113906747775726635289578518351846551407752646449650590850131554162567426027027275343113338099648743998928226361031116331574605186670103908253112847347068723770606335034168127014392809136324431465247287494634916415545333860245776734870473078794733854016765992785455808176205167901649654218672181474805168267478343477573154630159202456669794525178074633130417824254227408027993824371473098034552816431254202521493677613205889303552252608112409577475018508315405008191360390019740854564947428936419295604594095190874292045347860794639130315582782385900911468339593316260061650278955146929231486050195663504174966666454057450387267575494475189153614753863735411533257315479650808838412563343215408568171448486579649291691214539366437690506214693672004992416703811909104046058489795316768885528576644558174525658595978122891004708061362732835637919960035712032101256170894654164480910152330973023153134651315169810900293770558719810161317765075667207093282404482673663949530866775278376176378692248814598930922786262310415301739529954587441186248213613881284439436476358574548954682069262929102879237023323519270939272519900191019410015775077691541705757628771438955023296333855736899389142493613407339242246126497146899327036173591930246687494576264357436484027723532692950074921061857507130713313744001629796285942715840788976699188301099110717137278085627181816055781707703889646006296533544754251811792726570657700002595468651564594704478258464887221882784131568027535655433533474587452575837854913575750097652112952107703441680538558287821182167705391047453850491088086710978553951474747894204537468397212217667415794258939102630247822547525116409696899448343241354850092052440709996436344520128747060081743442379280552671260394249204995286468456886508420943433256873569484443640747711059198144300230375243749405397654928542403516086056432019938533262061383808762287987359059939391911569668046574019768953838129317277316569266987545975248873231359007365439130052069196876227917586594779781291916277723206814539125338108343972781333897249553217576124198542415933720501429976998934933221485401681396175478698727010376900341341732037396443641167141759766216620638014500701196219007223367439661559989170408127161583858632493608680906340744061623495422389338734047246163086284451519040172821406303199651210960028477207912503609805350911196467155621761898257662493928074873635652620533818234816687449941476017408439738664196191258807720248245152346525186356678275621317129409077242875268236684061209568709506375656856608484155259539936853602373268709978745754498649287064120547856248841024279250519813267950634714995207661861707819635025004337124130401556265017074803149512596864126598822569952225331953050026582145657436683595174223159135417746671222436286899204981541346125271679966816660415933486864097998048317182560378623652454865001769236092029666329000939701625017371810992414543444209822907949906775384271632481772086688701903587751607060575068516279016244735590910655161333453246139211859608021276228095129726570095176622358518270532415687684072227052319969615019135519048381453872977052848273948292147608092695151498228744905474764936450187021394545942953830485741318028240486166613551039745551229267784980459688080399024944827538718980991037866835530178669882207449536544858226130541837896256511411537808081514620438179981936754859654775914880350187954457304933896350774555505483094148646143155381635694094299482748545934697396780088617136475469112369045325522154375848831740914893349422979946581321323243456097707108595719983546658425136313554293135678692343386576463426056779432331801464466949089552302485209406877759943029427929675167363764313990293974983223117269186399956113722232033757033645655939412784603462692078735516703125088042422235623468684301669362177963203694120099550822985950610780361270643104117891162878973461752088314053967532452366243128430206731136681720191857351975878399832476996544459919862741638301270050991754505714769593025874807296141609601723594782859201042884959585186937122986943239667269531652828722708563325785315144772712620552170339052201323486074587865737309880458274423799945152643267637306528726013137097974398295213378209099661287840097798007170555822790619031219031772658445616976208227740386508827611896189284220102097109993377079631275172048330272837406431196318281535810717251551555269416726740232301724242240462525958673666105968481419958317745619035279148498934910370782419753798810489770404895625886552256371106067635171124580522576859571657338732398874649842468391299318761376185960398460348438717242603420738086666646390338515234097772711071559972299625862129054251103393056558858644420105989510412884781532837929309480130644493370652857634626256231783203824084612693508102361204921163153454062739578177174957111340444219337640248840561897403041952721357223260296078493807209536845208344657244686161493185759838526517796098363877607385407293471482700227154220397796078171742144115974930685725231447478058310098032062416515650521751253686608465196042421262798203950625610968561166780070556139413918603889325218717213126957708891668287163191276804149809816852228337212055477130869501110427786820722888517111817628894065098587161394951032924999775891917172011322554167995288533304084526506521958930347371261837524819649319879643565238460764595734135386708231001073394962292601000760222711768180395483260130705314471807516316548045525815474099968227880909573374303490401609444329669224175191727344539864407068540934880316439334914406724226353008392403586327796553159837605811247529018430443226505945176374949734895422672743140695092325531574822280300526326275135999760177970443949213500699924752368126478867792217512650674379942405207689620585484592483697549716024163145247997753189991167129357442910844491368265356698043117753895480618561528326501577024837728624750638835296669168610826196272034050827850250664539530128956008930476300236456603731283202866856551785168091843684902798401788175696958314888586527098649343882858827247738286955496807081079947676963190227829382450406159915304939096888252295718626341583046614751444418512902728480774096402561683687570945286038106221608175687869534530435863066121326520901479294131386812812964849905727808093693331410363727985856575993440476510441131767378921302771651212202565266090661710001263006251443662668294449657642389879550796225046356215623665516883984440931656131211712233395947138694354316660984159440232463174346123978757973657236457672971690350837994106695824505198257002632764959046516093820655281787816991039139645173500465283166710251491945112284789444178477670895365513903287125721331660128359519643028140766724413908657407323016217819239370621591570829111715388412046713903729446410034408324048866300631951472643370027722619965359844641263688445258689862614595978012044467846292115101433995365030579002373916219904682775362811406926485336461321510787579264622654346303025039059788359827017554631010085874637027331381177210892494611417051713313200906158141421915840838784300344020938125695053299913217681430250950673617601281950280800333448827592129353413499355324813965101581613187164034852664804105860045672055015942410585912388279247703422112374779573384076480662374663435270584284055402028765251953631611335322687525887795629220976048161873782665037315037946527753327430702566893446324906442757153169188837266515953928779861906878691710414732063542665080576987577399339984826261448623085319358721497290919622399215175808410479564753887057268093673925548616076695369788989316269344882768395535017202103646824431735300040353588363300978787664755277640828264630543544800764260952530130839366976131127865525544537144162744724421949762107806820660631988350114152543537028232003594253104063097933711267971075662573492609622126311293235945680330887036356813468258439595945860671157567444263867955523033070298588272555716895874860796017485746755087426766043910551252375023166895056284189188221552574265527765570207636822663141616852951815085762897313866655009502259704731872594565778127199581116207929719507372489933143082765187591864349834717669949061139278264037117010037442642936195261845435497734722749265446319811387568461080695084351666712335914440136431904345392263058691683650984492961404237174892455681199652383083076272061712900148044258613188996883850634008322937341447757081329405644634362562477747337273827454920904057049765033727649786332112362928554094768269458801566641152397586631703809140853940968529598786201951697979229961867785397966300677104381128530770376001955358159206399002426689916698866930330831368730702111036688462894852270464446408296514834581746970327529775373981492394202909131232269894663936209949040060224538098665535117741685960846997669825913956868869669109171925390093542339588468704557358245524165909914292719551415408196601305447654061528857242090584540670060277064440429807834817040520466526070290939757385381303607276253337494840621663473341462351962775507854463059821032729693465169361370280139680701739583541200723444891887838219128402299035152553142953950556170597475199787728422621239583294448694533894757525572842971127668337212485661524970878982830786669294709284489927168318060723960724749483327979528242201779937545744306847581606905203560381330875400045056339037964528018085374367132360556960632836138472372701323937284569531981569043496044276112940854363907037070809621262513322858645278447927367856506538660310477516980430351213340103865200059810355595659185847198855620239876861402539706512272411241280297801039258009265695931028619774504106868900034194598325269661517626949205368976539789624933466619792897079433640168117784175336613733205320952166352721983653491555537348121255331033320903673401070342252236697904693910257081772026143825144169247055702628330955089706291910844753365600624416067431938047514754780397471449163959436744523340885196541238666863812828703337039856560444268443979230461364307493317905391578256132734929865359430893153878286571221655504627203072067302073293142601146853349396297284688885711438998357216646349431947722312012039131263773045687340837437615598858774401711191331095840475901707596079109957703336081765422823960440835229168582342333136837124550970810275213103061697512872452159273833705255666303061034636280451570206931993818054711336444752593477142115351829189456685526591323064571408637290126927901122158282723598811069790550132914843178976636064007466077439241589100405512940340584282393235874174699028913283724411660587481062993493726276080082194721359155074952238854235570855046434994436019680432416903973523912408375616609296436216820170489380337074854673213332491413965972521873994978986261212321909557284712922022709270809581562756564146799648315617498608063909765741906076460029874912467567322933607457464522679236374605764782796782950896863219655625089297259217319820682285418334851255893446770077831416872571013380640495475103806321304756197874991237152270253904206026744564717478507481172124087238229329674862463026501881231986881173920081029230426411799487521162765074530904602210620806344203355190514116835599973197976468819272209608176502969953802412607208804591523853314556708900083668683118143748463908321941208637357062488262378117421196551112740308882412553431163585743787392001186591986129248275077455627721070672197366079686885451921802714892139730414586868548155839835053826683591324617605569280486042201375075173325222593957222764681149110634312544148122668981204477746929072671315930744312375014119803347849868722411347501020161069120910548697882105394030335805563325280659071372136210650144162194610416722158834576102671144253537296858405779579256725124121471635876476531832427657348960733038338635267111985001881778607475124791995262032289745979863160475904066114576281609780482703697607352262259309957375312275879183245580014818911722379883118044405836997820045988368834929489699546749177013718435300884080155160947648154871478285513801060260562847280599584050740160238383676970325823495042807782222719819913430647074728381278746071733320801807736340835557478382175950358807754740536518856606977804313826523841556612579292418521590419651745190038956802224854897170413221398284246004878239359069454430203034915623580932923874196726061277173501377435899035291646175654640190964879951840677242564013145170207838099735194766453834506860188378066914985529840947077220414495099087035455465802500537668433570093595212950057934453767060646045758201991531239846850238973658009066113628309748447976564024673103748922246147073402929935767263601739930299933935153244535129770091330339321287227663764777648995812586373949288984650579813540170041796801903732099879511385705120963028101216629034074953187355873454816938136613204567655663483168419541098150757998420896219417478108870106922787935550313053767168129695457117607019094032063256031606248611943135854681420062530728049777059386562775960777368470315502664443368263229881463738459552891120440149243978584584757372768329999844287330008523768396622531333055593120642163113914742316924432922671096746079474646944410177452200549636685682419005377739366706252739370910845345562864551082185249291021503794850583726444698061466961078104568117109328151051946298453271745262982490726118660690153657527231459800832381125391460616803642334656392841805736339351247963844509305349489060825035815444988784200246301374693186976789043893378185934327740899852458113422857793713456306151278603536290041849120369802115121399092887889915521812337539824793633780740876222564158953390470485744524493186481159382339554051047229231800730170934932545386658053657875743849221094118199536326588076483518880456060681849064011061472388129491326098103206734467546507145436658093910471727361533490114744291205242545002666851746478342783843977337903615437143303287364513789189137860027271265223686716903648875331993513571941985247261500715635170480264190884441146422041780797455193555550451661884092556234766877602137020084518833845876195399985785366542297018064800328687422772153329928928047356535061684357744608975973774484397723967870576213059278829538096547102109624083598160169697451926284267593794249797170972353948790181133364024398496279158501116053495724760384012079374947002899108494770622967332602473829753631716832593134716518328641622107197257244401939813307248852299401164186032502005243212216485101001726485524964210364731145779980107915773504030854240020682876321159938316875612334754927415844652826517779159797629968222086790282254975255548873029274914334919879732000453087044312794573609582191344138877092676748893786558173757623302765106380784317107987734254479262784215777303454934686480819366546960167234062912632413061028923473968483493785471968895466170161394021538491120057506764814034100555139884331695250475157190965546121165775899829217064475712524865169979333642077010980486300511330456796416528179915521073896406229311989995280743870840416272300798114133585626198978019024325533222571988654748118213523022223852758814194846355093635797250426847455534511977010443920875036699761507100278110495360222127006962448821339796158708068780734895395039456293335670981568776773891027089322198584950698806099822376951214187144021228191544744173645415988979009968529393424783049382431338650653225290289639055760223783124794625265359144523890212955946887701373319474783759984038248851733660113450141003547241307717003982525647558561985379780743136370124945463594678223547239287744836480334252281638673260410938833571776489617370945702638400661815083185783209014625520111265507581234377057205760295773329939471100444370108654873721994055477290475245778458327063341945445427260430623190622325548374028624550247571206115647118250977593438178755206944486684939727035512925154204507333106936035404897646184197647707548454538896644516766212316510755113105657056636943568150046081750498908752614991615710937149807117389005126154874327958340494139038524866237078504965210051064036997342347774502955372557099962382506308744743135072260221948035697616522962337515183422592452301401264184909017559095764157186328711500201818856341299060617999457313159599610705330897034066891257426101419078789133391721893769504325046388624160636243607917895855255029272694729281720352799037317986655531663465814765309062866270876944105777171201893823803846310179990101410104834500766379666956476321146827954237505172017904236900972700735087487961414428794811976395701024311490333021619659985210144680399098587160371702761745638263911150624709365359310178183491508755846516832151618290290700413066225463913244078123900296936974253560390500864735744845720290803770401715604509460709757160115354551972419898013912191908564203130198538077888178451287924966667218660910095279888999245517385365862840874690732921106129013940965293449030150936400216008204678134474807797261526666276572191597516226318697500494706026102898284891642623720786801418079475900100631706329028742252892967332926764069698608545618537173414017675944757858970162750062451638068599816148511332819620290266514284171192128333677241889333206439129888389514390624634268649885158747368738342968868266321541953835749879248116991088829711930847602047461485730748421895323458425115341391953907305065122586102675570658702726368995628353567104779269449966431484834859984479390208474026154069414240507650168650564154191341007737616435929476439637441149032619322997621151346807224646810620341134953831153258652809616435532207044869259652672760891978159436974551405960347482989697589677553894385519335697805992906179102602887419503152484820030183252697271607475070525452303651965415788645441189628423617810932765321472373442907398383241316828024995910601158868311381726901920398157021201273285704796055273776096401998191661534440479840407105513378870026640364229500229097404486588075148113747317784662109883562557467374185649789020663408481667224947977581450555790095731713185678483096132440422471620528628333145696323555951076783449600721740395087886332672369513781943641089959005640661041003851032659853481083045769809314670463996011297959204301650337357317943609716795971986901530435556512787283399241942232289340862804140912153910304849069112261098082853704512822117837099079156544485050410406997719423199222396633267688112559083500063258837276384348869885114727224273345164625540276846961259121789452097724839416257487735631060337002815342219635981881489742746327646922627695199213102137126525722390150478228196310694103914752789958236663403358288560994798273569654194528083595401655429129353537257262716183616102029969510170267462838552541854213018280830987580839725700520927336397936576983345414601544228751180551570312386250796321152756972142339724054661774468458981488985210206843161025295335520772247466872631025613274716587748450594056727203283466365263100797760268786183770168000930269374068735868136717609436345878283627227813591263733380664073100355402750759521435749965631377386081393432440902421982434958790170595756142825445615279586364518680790875317368104250490236035035771846419746041798029566003212762249149035563202751785414554558597814048778844575272079425567461858011424094562294218503203028011790142012862209853619957101020161626043988448156224986741774349327327579210056289791528143703324633342937589890954216727167448772261874476148291668520397045597817286938255743555603178955146301202409014598511775886763574106899018728470346755157794059561623751658326420528436394739849963437908996753942234397113970259856700717836781796200953441275085079178515927725353525346871373513363447247253459906809642406780813481264287199712206724465791997840039177828573638947952315890920265525809610755061399447005050017089461816531471982201134311092043735693285227646938492736617075613672644594806773370889138768059240029021282362600682406379177291469708338886890808389837522484752586296839896943750623409052043061869866312675495772365138499042751243403436473136431774592995848398664726203764721991190149956654363361922905237850584337932469649317100755519518528694935978711363284848152870861721965182633166590024621717339560454034876876264548678065466393191797033894434477972544164267419232067363389519645680078275523555177556151947008465040865279013184147141418688599860349161337787810774896159703235465057405249863476749586542980835515429299683513393881154750803295694503649301356273707688937947623548009940030386384432333766490101610511096702407143869046055161783673279002441867170369225044881147424425460170984830290161968897604571687426477818530814283589101580909531699526885297948801949352011828581317704687088739954849384616107837285802446371933552012747676175668483967407517443597430273266331472603778168647266276616864541364814855596722982311015195946358048471644787254865890896048032619652383956426043986456851213199430823530559315639951947005815371843971739267316428274481761259821241008230575139610957831718312638511700313655981253364903207076681497282590001781121329694543012846468109255779923095777670779952090966328097280181618838686052258367017797065299342859547056040140911043257462001028857057797774831402454002380489242759841720870819109707684828307814287693643197356726054412955627863335663900594161501776500241230184760963281196746924134407964728347289633893478012800299056399373422218481637757668777271848254237073650716011339979395642113973439609405376470157620352488779500335202121615734538346072851050293039090475913646165425633784141906731408481504824336494328005312221046211994731739509979313545150015985320348514083367068642243924492536108501248502916355696467505061400438781423548130246518219330252668442704327208382111925508296534793033109483126248562451690943435576074490688502255521495854023482133907136186910755199103966636295036987946019404156690904019587515407724935693876773624273166683592874813626422334209109912453000115574384691766331218924473199214293407808274409691254666562654285464585519990022911508770141233133109953741320921831969383397848252863218640910165047670993205227562786293976862203833120861676525971461355484701209631950818845001498762066331207372616169281612964630883784450025932978799964366024561378952862266246184363606544231836400718149035954825532845351156601170350196370540655803387663560161307460991700729086602707682393904008196127732774878023977014987537580498582114119794627058018114361641277856940437390173450071465237863237889800072070318127732136258050677849945314565553666902006629595100066247709314199729590923702929979354860406223733047829324963723354446380863015165334608265834407428203209295075699803494129187564671382247909320451405473364712052082914340134117004521153085685814136307424935905001700654764354750047534716298924969190056090432536137116479091728598400868825217651465311511743437651407873267543650733767111319388489877291867008874634600750921342541552002423396866585110896496721612193808680952951110908179158027373138686839728899073854483667950665727644865436217912393231765485325584139292758067143099927558184747928283144921764705778589799296517811845028307643329367668059197468288205166816323062632607583075883422901690597368871451088300065641068364226120639203179963729800391528547775233295425085427885684096296242099085679101553244062135102082042126903150755986413705670523920588712459527925819619630580979556851139846124691457655685850003655588117586886088085527320670668250340133966472964271118013534373026017453567773937307151489191491023760028174500561520818172388618500055510422637218992085826609787825200324526817363958294255374426222114221263086864802198671942201251019291850466250605712048054391772324932952721556482512801615365031914662224417053288074778351311026111802366165181625064361422571146221023561263672188621228208101420758864497770502709703037520613657727970159553949351239374767991319344553031860985815904650789559674875267649829382826270910167360752363311880329534893877048825014485462711630508277633989510507544743470366767847565978793154104323183673468088372542285369392760577258244684762536758352914011559578560261092313962961407123124366952185844289543570106809665584275826041040746224916328468460771713222566531459991383245982229391779636278778352780382783921877654088600826453202948529075130704084965873297415140687434666830563131435121677600494664487590444997502552914699995025600980935983051647758571766047013333443536734635654492214959477715538504506818394317569464944019756858062406650317358496434934172026209145405686980526762519628277242178222653062490154053347420720312560703396599113090449846338882729091530540976354110200884564472519308027558640687685214481676097466963617425926579995721958632929143177336331744901008029328066334137254073263490957997880230031239753796537812972062652119262094652840977519109488082590739051676968265974451545822819685205754272252856139300674148421962254149163371128437289878201366381550775324536625458499710268371634756828487600204131794603291941563586229461112667539880626144527484122845596269904445345733257844556995291292424515845397939798943667609900658349777662673585944523186754283289313614597833979987104213484092570856323057226692004327384267587819746148869074864641555668781280165501642546250313891923019979063604107142504767868844778670301928363329017808265292796553568207026182476992341915251683734705912152968408382607827082978278084242111261604225635394956797428663936647719569266384381264139983434398848199747960563681972372750003862600462143960659475483512965025900395664748194587985118080496217914027025863105923955945016451511657396529158248727736611932776810056552290735592732581577098710029123720964722895872113708504178719713923185513187028257470255016046200976219116004233192561276441207565998640632025333660489015415672016740048409756200072235940847725927678974713616694066298897600016781472177050046248796690603082405273820873826691572257487623881353935510567808884173456637101612432324572227858248595079100502583106468908050415312794911884904651454747310717132018216873959975007182522476055241095487981817024680097883223255598366620313056608870137355188350316169735958802610531646163097172919857399133106653650267803569284360533807164898543603737100450448094743529147960855553939399053029209233350999442746028254920306678301621994818566725497730890275638951132723308463928366017081753636709235124443983106031709435048715870496343327386691096471738927462103802604924573188202229016561884814414250629130628850103962274705630255472976308625943346194976044512969284901045877913260834389418463116618924187116042386022701533209823190048718520331392832155477031930970336244894612478255532297342860616200230933701237987676992782444432204109751814927720864633515456658364044725417349880861297452071707739450957436771272439369542593820420025158151434203765551455184443974251451349849560512301588027489756024527032419712991549801401174963566166204830984179608573014469686890452498852549797440483096888626614823700686896629749140826708834203115492539693353087201294143240028831966363004163044673048587382338004428476415338387967141853032346599940412761094403818787844025242277065043658685225509518757824008564338910245173740478924765883996972153437073191643293175609313183132371856165600271082816546859662226391326654477335345481087583821489075436379143517302739103446161300107216422265088696213607255310226147736873145385746325967149362799758048039282500390616012725670043219628561334907748269333697042301701659678427217491934441216783682925319481941807365814871952999087872352296823132952589126482559867231003062187169842957301166274788206656268169623995841750277496461947861667043567725833856142799782675067679283482046175785429768998185588461740830384011425707151652921900479867413973264543915162313607319904840788384400574383522603828796338812247255922383526222991509333905811053671675754332524483490112877452643910113676958241547123469747739642168680385682935681337945803026932921685030604877002482894205561349102466617338558724586971744681791947088415615130858998074667753824719184179806401700916986520607873980014017658611435093849381357943111941697080738823101248864557051712254553253640007380214085251646539976565608693647331697544096671651340063053033968348613472470536635660050905450789763610431393750624477484737619293294325094983721621594653909765573492241544630842122134332430463006120229128866135535053913808721210081158491661349324388262700538942785400750038963888276039997325665005365385181794115594748449724175269833660782413017943827577516345463101094294368178760397680795621685789844408488606965163725478118405420757260331008708592658226850166780352850235951946571614368407436673871062767415683079012719447048818203883256621516814100563607701436727807125999386476485309640438522265717671528155085968092926608868245840263586256742695259829772475660930362595314283797382172894268920783647689286963791288416008938169660465024467374510841873001065908748041647433337413170095291124676577502912996568142240000843607982404023776384716157281074658052536364778456054650905344848748734960496652606883863482985580940622462062329262646215736132387193127056574823643991686628906485696230818150769510127287458904656890369413168838471899179117455586440572931543220532163308291141724480597982575387690453174654995877029533613755564728827721614417159167683127872778090833711214149481588591529609968163318345871112622261435758540727581836842757027223350267034280932063943887673086797798435449199257754487460467315174972377837188857086709696083287921300051532108180560970796850787734206560756348369837735432729281495724305889140139204525485006075838232614417375445616208970970534262783785574428405183324326136145862122217874592735449269093830935902759264772347307981795895592478192392676239581629043454900852831112504359953978940613172187069211017858948255270028803062686724666141818677404235309373616906460994437524299152731290640060364401078601560259304024232328996034231789352620845640280559847430518371228456786874589063397610372734804929029697555678119084602974453772646955277326167555543808933305518271438958370221092810361732087706467237644641962176256427239340798949498730314403009638351661749025310101364290332722887779668874844633832667599506503863500900600580461481411503184315194496177348015152788075289543365061604184689964518597388193433495324298195918062737334486705293178476479806175525199618228964367667927825945998663989810804086912309894047778382335552792781083022943476258960531970546739697540803648981361656334015917418082490088347769300437944062735910655915289598075345530533133264636912249717777953785115017216596129014632269528695646321385232753310980186012331798842474083002019327414350094396806064992998559012560484228704208252376508136525828705871936963657347477721110317489105570300681681683673953247229098155703821052308116264928619629387057798580724560001710180507070090721969739821869030358246280988807838794362513573680743460534456462676122995273858443837323721453084148886450520966801161968527974544034639277193147623067482100632256488660303768727165951721881314283923375108308053206027297214674874418862649331786548562763964538612949451509882054902419544890851813184917283625473118972662010355763154675772949118371554659682077455573479394639401888821787102702185631326169954722949915381745955770354147303756229658909534660994011639617164298196703262553417003425970403870918618068853544511616825533396923988809240842515378631875048356122544539537277121382725641192383721808481400450776258320016531286056765560166473246217092368327048960931365850796962196235863272672960668849184003641466667938226194044798227451067801117667254986255346373786182295628242548309786023311166910026814267381573162771010332114849517975718973112133104622623691778275816480853164306712486897162577991865444212726363827011081498338927231164886619651367168168056840272882492634398970371363452086318920158139972122991621518181139362355249078740846517199717213096415753653245201486097787555141677570322618140696434734861661317906287574825932428127562840312103549034129962964914174326036109408920927933639581160505112524402766659400171015137768755190835601910875362234764982113415599583639011570646670659904851439075849156855997929895555691166931558378085785564321544444732994304156031292073738340107989073069133827278419344788714222281749446382471183126926179382930514121041661244948252973481553380305110735442591645773350714361763450184731640482587498007866208049840721276158210188181848545791602191511463085004763810135752366268930043872883364400308614686296629307961205466456057574110942969421159314538264249686442389929789211448333302152399064030516669176837776062487327062596708941496782047348285014249928206696860038308944529226671579002401110310347262189388970104482397116916731074335413427320329397277791400552127624559578487936879409344376484070277601857823456115070650051914866452844533981588761420614213537815345242244299877255853843665560137972193858677387478241814725938546776169755530594136374848017519395174692354520708175063753984710223249029257725350215017901487307285227666433278236633658346832960598702417759458150216611008970466882412032636888693921607180074465405987252881950009478485097800881930129085548683164775485675906738229804315019600615986496068529599612123941970431144774657915778486833328885492752521113391358880259583224816357985901233287271843101483249254934454290817328733367046356460320153654828854223012410983450513165101482389049022239127126603975431179274596275326365692895125476875527280633270567203761133067020852951319368979833678816623285325164877034275508274570225525410171569090898927679701703438812972186275111064016139379655377113259701793016461384223795986265315385321339093302118557006955697928589025895157398796552986338472384087923198468792072511175145056034431900944930043103676046833846348785271169763477888720438797683206593111559183963583477914933126833129231302769001083131066839191530578485320930474549991429719479727995558399226843105770374757021310187839312761409692125306793362702300195075440880295914185876470666270490318915541362973077860710618793155878917299939986708476192542253630627065280457656312444908053467787497286064712977377385095085058268192719831361369299204764670443953774581253912870308541138378260822750573635461625360405305372947634168736177456393791617146718197212646217345721569318833810829156471957163897697316702806625947720535118248419654009125783490774673588051596179833576729551315459101486739536035976687252369908618325965733235478377902400744444004904791321384584292998710594246224672049698931661352769714634981571995576565018344523352891826824677551570923071421269015107004043593891177655144412590621604845385483394105628641562278696637492090015793436865180055510200170064634257962418478559869848292101798744839553420369651412775148126769267819075892674976063598083782308522341908150983654551867529115586795101546389175265697642754825790500208001223351000459043255764410328762531025552827373299877250934995632429879271283851621495901560645185864913997417324633128375374709044226761821012367256211601627349031195040720301407765241054665980682455979221350508933288354926576602197816132088524586943206177668469530857022488117981418621407178022103479035984125054028102144855988086411964978060383587689548631950729898922349575972022760596424612199846435514051751658908015678836679917198964912321742689530154423788081480689686902537487544297290334258996871710008851704122145112843820765607553663037942495992347063247298347942065903964100689739452114615457458519212831863283123486822935326088122813869587887114624739034225528988806791805870443964619167324275268639863768815877571447722167632717703549283305519484079808783645306118185085373385099935423010842628237722787843164866323658243717348912985681025816046619832705900485607997229885235685235018400333299710959864726742772329232866465086551930439990923607467402873031525938883401140280463138443333240204398073243595512020766161200454151394206636022905336423790787906520527031859078860781992138158023075014826540581581487961757599897701197087043881530677077797261041788238385993084065462973364521776744003795965891470397832702332285359691943907039936675207270176595541493486842288776102822501319370709944984857338143058589089395180334815483279873372846264931895667829872434542752077255981032913276707547385473302844820267540037522132343271089788675475513133157356098300718498788548991450933567226404990844036464858019125260609322609669399272247588676090139066346705953544144868626163489144216050450301603858679722443861820358442808655032989977521496136616250470634923836960585857939666330220145038813594849155168120466491272905211932557577905721560402985318373150296491009803148962263723437827316297286393471086686086678949090464152565639108502347731814582307381562660780766654234866738124701808154171941113925561113102078118424110402038570365723139689582682521317689660382499248887531911460206249254553727020432352077189926156607255629049515207045899500876909032416907340010334086590917847240280174845015591719463976701119981532663627570234159697986692485641085579142372337896105420385780203793332751878455624934173083428740865507762534170625336446429346757744047859648120317144013694571661964830407071739235178501248406088498614492569736230264804719394712990897381310966771975556537516818564317479939460811000113443508777274674296152563037376404168850283354249182727357527842696513633679267850396975383502323789416160021931794054512967635466729692253529231356203929012833824630556206240002725156537574980919958969522018394180113232478037952235192462429627603815757280119217557015674143140867793381758631903526185960648975996917474645643262767458756491487580566292486169599612484030794322441016232488061893265622257016338790433433380475829522582051041951700293987573815591002376420741227916606584421388844202899968303642868386247385542120077938336503747174280854603647389520047926663683497250372764489240029256397985248531573568338853920958635721852665692190888038013399620947625284943577502249700338770956615059030814944424993297860940076638961621839964966210640243478479173429771568416902736164060907393675729118114861382228346415538660221896588763827094365086798706490478267417084327536708542499151492545158231541677558709484276950127437730606378806243496171763000215544131691379255307726401253304572181455815846932893475954988073433825623563593347108884554986689803172070765236845209699375373855527899533988018485850551952928663310993575323994781951917880633988783958768121422752529425498335325181768237484749459013041535304291865291829259039386215894586162326673936571330743592064727545355794799600991476244405620826987624542499562150460864430340410168401488487405806514894708278353683810571772671488494376086034880830366790324022406888419013019757625980240294363973796541641626550966097648236341091066673780788315617487476203481169904955019282017652673212692787095667502327459532561329846402552158036093182664472452075739249070540602517607251667149870983970369759266297372553172085075307800481679106452781878019208380080206274912711539670026191919406179142308030520416894491612175119334406753048113164686621863472009869032823836715808128324391376635317120412627094288757284485907577073192730057577153776478741013427101942874022301827889349756397999944920158471334306120625012517534892644083863305033378870141690027729509315188622039318436477062185899396230358958117058686860104444969309037705390960874892846959359358273948692949702586089822641100494231479384994438984431788035290417487421401520175761578432437133055612614077795164225035730323943447535188488993084125884080270325439636274405032148630579723662204828950429044376581393955763184406661374576361874885139419605562141715195139103520826987441806290643002753775325418895680445287692111030520010276712963074712535437582053651046186334713590279951504223440808935922514727912653934238346995934792356958958475036207636173803763918458970872987374822970864038889829128957939939898576147607197711808813126440790046784168125088165659270721665669162067373261854086280084859168576348276751135445346096201022485679528273338036473382254828700714399762119063414841067818127025731283223409440645388243730086214325576316824972110415157329438711289441189220210042155432790658148308930290764206339787232087886214544465349514173320334874226385748868450397766512853920414728353678562975015216120846493046776576548465816803552043924042907671559329428258117800738511997796169290823435049000895667513530713013041214085292815720267836247359943814914940772559663463916628676576923149334394008019757152108652596700943061340569304403485964610375354423756150035508238689069108961547305939629574490823259877628609326755650221101724425172635475419729274163070271611555589651782322959149845890850326689146193745827188538247563597091791132107742416888392564764257505817996008317055568230554588380135848932237467714634070527201449347116858898083110788821676957112939801555065267240860414386987541142276605612522860100186599750057069403604764201078954555102555474859339798015435523339233844266356475642852268348178096369385047524732987816794206427293108308254618048560930730912092679356493235867494532363036979667705327273895424617096208098674811729291541006127240147192739273736128692940014867818658469594305461962521111035506359036662468792033673508597251081269959905283030930442063348503605486884974251484327131581001929880345063888671777099295107881719057539286482870072028532237272980855851128915545693686727283318141752103466921653115626941564646430026984106008426528996796718127023106113094463765360044232800201031913990223404557975804435712160929984318039462797159803891531980127419018035142919015620635138239204301272932914474664606132893170252462504580685533147446431039140931004625254317948515903202158400611817060328218897494715190552173110718176111365473985823328446117920332549417142434990564896075255868680898067555161491525357205320258209423380214514764246566055911144982975748242468828064857936367835694882060302119388974062893874920491889364571399000620587862567860655840568960995112087139395261440809895745049237182650704268498729699873435194938339020092097937413696061388555284750960980857955538923060337647146655446260691849117507964355525478483393310475213061586202249126804286887605903494754795318603223889753806294930290520493039118054839018946714598472707754796209095318688201624573291361412354000416437708219420787127663862327951430846338088482574311160657572007304055095102791450450456013562171366439465435389100019313143393908974659522952737702171509886008777611167298562944733311927480268814077260169454642264138599660850470142094712643116796212851961498501017450224263635364839565752381385489645915733615894381950843848202275954670846195343592789068831292708685840299844716858948227328659017856384844164980241491022373872039411277555255646305380941829977940526283208531390920919875934218348440852518552808734613679098975707290463624795996307631147384466206030063000968432465241070858303554890207800401833528372804141605332116166044770155353571870480172470530069361702215151436220789391110369031827389283382724791212686405760769927161610778025373196748354780839231757276724612270463248957648518256089339981446482550825483745804571384361786231836462735083310270257817450074507931139495221280443421927224568497559794018285177987115934150782264747636406264013305284057888456754402691419860428345354763726619044927140801081754510283462772844893372822156669085742790633760243462569352866085023316376487864276725604661110112706289603895920346134820959187854200878136594685969168356542516032697482554346558161027787684839076309139335362805787817358708543272448848647625255483280820507926777972656546871419936341084972480893533577883230119910235301028209298539187087339856956514423599392910589008166482219410075655518983054471117857256933835889820299162865323370511335244472643400506030472516879006971448340538471384699046076409648989051608645315295239709083126996243330174924666688784112419386678288975136818093369022626183379048183115853376469514487147877804604790122812084962775898885338621213706018707655976467382720819636902486131100715593872155165368976534370824806481857738163461060228383666447184572324491665136100379689771785420460327401564994989156822956319263573998513068395951758700744998345273846784643766353156053961505619076495703482206047985581272309973450779086747011053873798519676658026546784761744819649310171065102363033739783732960013184636961226647083612979115278763824561884602078787543993465034742055000570083886082770733096782035707349880074144629154271837330308000189475004141471998921029293042092102432290997929564129679946164370324334754662985781170281895908985543018743693344859317203882667584945223818734508172157697416702959312296648979950767506915827922055483215158382749895870499945706693502691865284874860450825873076239853139786028221429227784315029066795071263932965743237430390809251063315215161786640963853334343385434302844668238413669151175841741828704645206598200691168265465013428627876947537086344341711149363961032628903422410444692480663592327487082268085600440504360023138996362393975572036158139029241640591579303415979090739294439800636538216697453610718639507048857489954707308139261218318370703642971921038126149220991714456854299244662534632941472910917840123314570658051086812493286844567943468042632806855674137196332410384632246046797349852454239722876395574851227551403891134586200161797499582669723946241363870891927089711026711667092488998099436910541339269713014899278135728017899050296343679475736417525514682052125244405336465565081289541128970844556619279922126791743559581285752208621246101767896749757260858401869549156331825038757806596531642671929483221468718306411642588968702948771291731551444768116997502361152948644996640828112222757377144861859003813307237968326633174547526599989729699641109646607862819032310818960121163979825407305842946451869932461333021384173689980350545070292276750364465272967466131937021505323203784211205730719920380888940119935561068231914561862071935125439585381478714607191157694839756061186215048488772443406553717196455779688475261270703785999218601042558376446536387763206823323537466177735022494903307756944609134105539883057444389356947986648095151133122684142125133533389154935085032780514551596456675812929873277914969100925150762034110061597882149760542843385336765536003225484796542279666793894438975924906658488284963754063521622232266292738100608745051266006210260590843268496787590600416189990879711566925434333416591361239154798984207347583018700549125616342885355160922347613416950019154767995250518113330509957311635893528296703897391522340422207514460649526889554651663009815030566666050398931365637510272169857432725942138481983818261497137522773192708446925145931472279439619961622034413311085590512582154227416727245612260097757091032392052889370720507399229215768032498788833053434610000911306290803476898202538613450386470480891324245906183991720311853664226029801520376248267129340459904286582629845803052513490128155781522104166755086032674919094772681446405196764877042102601697049420579206853640505561561552957565223844394594416488438409238358736275379235542949685847247542745303498193418019385457459531668999708636637791170544485182333690835538661592284848610591015380162806330015745834686977972054983627396530156177677814663092684911834094710148057545310302069358791352444208863487737643783225129976949708396139453985979044817995201952894657760278930126079546712404473408723720643673317989078888506224571844985755199977428179095276278911650154037068450642909809740451875185395111710070869857179813759332383203868168270727168298266344808020416389963981283260502138413674240915394600312455390365547384266635001778497671114890575621867953639484517934315162548058573050579131736449242472350791669338493097654041130205251191847028231047229593761057146222845899693727045467137048173310336243044912604659177263264667861039910700404346788672249358494325510314285955694992136270936871931610095115827817645893760160638404505553459797019657911848952692557209420839971280491936107088058452926467453315955708160561934844715973214600774704282319839010955787464937573566651698129529142385364358618595721758344724882749830534053672209122991034486471394605170177321620699468006562205110920342223458293133607601267093197321011621505763091357224053116691738082783796289810800227776727509068559707064494117388552515980771972975354317494456298315246269056035251707286078216170300961854501233073500441559825470241820889236144463407668562886215765860579677065581564149941697206604864850864129769544052740887017330647458046987746582820972157816054279852263944813351832022731348704954758535693220697551804183363008346596410103914753753990826646534818691398749743704433753009089713857424217161850075999010077838350788728862479573397989435858172114778590853944842040840694564025903772307323369751941930869160999545378613559295883544026472593140468964583823294790885529917730223580645526247447252278791352165020539707811457919571696551454666264685361868076234319432161841085775410759636778455870177725573494549783676309193253139052225410352906620150058137676118016809007437255193907251884910752341636083965737385096891100190093911289213077426650415661834294489327015419375661335256201593325815049789618226116290062223588792285294883458741844635794785591886145589119218495997711130075825514918316242134552407760021356382771738094837333069503841972718072817120320031833784595319222722005240671404155808640451045865267964697574996274041484779813652121009288883042186972604155498193638459520830308261829188475359759123385346393385389486204478047215878302877019450808485434986052327860233171321151714311703972956158305759284751044522831275319679706840843200039024654247522011091966824428460902599114256874695748587622573317715781842065246091718322511309070736331657154550206991899267199715421540985710895906102609816204073180058184799786269360621011919810884982738691568906203773997569366320363900422290294348052691905443368834305875658834967977515401099306166702579101071568782339153454755415662761413398616888914759750874761470115820362018089099066871134900002210301124338883462288445667452892316353439370069684466385295286921649434792385313111391642495096715007602941067409237653581917022945470680818192193693769425305939593050221170976265362675443226441856433150969777675296032544335316081125676919937861542641244213494438670371183557273115596307421105244251478478194900990466124444336505024098757287638715481825297083208495125636971018165684171297140905109306125636864152783271250171208632292411799276620314306699050000593789252411488939977884357011713765133697575494221499005447431175235677460695918100074859176259532267174750337926673911759251297388356573408641994653834842326326213860347844156872024335305194337619928339938160417764461750018725407767613497088190189043336304487930638075765206367162877202534188971631822381787906839039959171800924307362149013749713141545829003243075585128647402183408502379097803668749872689141558533668629044887928193112254017131962634359255136430474726413814371681366072594116524935808333049266299037395323719025333029657708942470048708034273515256049895333868696906571743101382200127200379548038267452928845079630010652757603909749954040285584973114243213389387232935727571488875713009383634244092008529485537403778634748240134253175506028069995625312892971357647396676585158956218464928291777167529109187639287386906580163554905414882042757458735131779174085189790466849450407637513342013206151107240678961794819450243854716143173132330954378460016144290994378377515539294407088473851521418598515063862779210274195333444144703560592515703239985393235189841099033677291749713092700714482496624129613461077386933016750790959102179393125549324605617715622508738791182123320799264635947710582166170059705924898777121762914793428191944551171865280747181932216324902036030964240452312625007550044751056637332494516121076867063869796349139267178076578529029947695459073266574606722818479072070025085877963061251363706977500112866623835228249459304154604925454619412081971557330900591926538267268032120967157762519596036338160400241787610762046365524345177865728751296082033377708298844961832785020546191506144725669553032714826419437413584604620898456625725218730693809441905176262907565897439867833048155024386655555988946827887711377449135909213039601422637145966491970858674121896565047990610126475862289494893625480619641525125110282695775826143927239070788627488823013855604439997111402782842158433214040606366267181859121357684806704798565359370897252421732513147197443502181844560635398153890922106037017659407188961000240328193346784274189540365875462783160950384896248335259543549784025803249760486939699583941190472012199955151449522835528689057809421634464117783807882904758671925878697191028816292401683497528935136172131179660177236613906292397109952479489711437629155924746119278155928817174441323677536802913895910924074070744305017824833010631806827825379709656758425358177915630636190812811979583756355608863911586736434725209879582660679241414465364424031151264115240275988955526103249697864816926302604047763571598098482462865270043967895820365339988470105204562336228220995498722574086820434629314951825507691193977209643174314863581874577627400194007652565037371490974700102768827904978083644458145937227983307335816208657576017554574840876155355112465838154298440764697516654891178614287264706993743075339333272094985593585148719329665551381111763116729097975836517580438077960384033279493691847537695018138850181504012921729953159183295961835050834389593369127233432127670094043871672598474699663746823890319346257258344798825706176820747973721602221555927699173139128341250017949636452841490088536924599983283156395902433136611933490797000417532144456119185142178211468507226918416974995149258176733275192814787900565094566248656564898849758474299657609595097805185601293084751460224393779587628525341409529299459947814039936693404534751917470669673244423184830448718467900382055340395869653864705129843344728173956849152197976252660770371823924569422114382190707061532107548362887467766254545015247219543761730240703441122101503200697343905230213118215820170266086189346497635432470467287607566003964977935981076153938381885388416514804095392304339408405010478761702798603860624917062463054750241347923888362993539623829972140738352256183355614331050948254561895369634616491262533819723483157782767042063577440809650606502282796012715758761423208651753223627642279452598461359345794139559623848039695894240965320300014204701749849494519430345391303992245449078689930126362248507096713179971296079512274597899867273684890972437089034777671593011739128545855436772813533816668338414824452306778382175348971583576546678794416629617527512812969005527133591701386678416010986926496212740265551297410856733714694944855943685024005761159684627898337678996654059387615272540468080807567743792182922713362406964010705538190478133431421678774785654450066762281689334874459390807677859616656171706368576607620308891316721104961644474841627853301503499244042684776064489240022952759591397907589457057925356331768782496991642199184069282662409763589040353106709911748123914797912212388955621126254901620227099830029356763910087092783603552570265785977514222274404407914454875938108160391266565458623051201070459329903077946070360610631154409356882510476523351401226870057517623690317009345352476289679325842876295689711387586960945000640288518122273042460532907520107424345903660747335271226483658998159219539492132543113986425375334513382577231656810211935544596580573572884908222043298004327712438372234706615169442992857368604565076276487982429385839057149720240232448325091331846087129050168343609403999879942378701253572284829912980917603119936728449245829329571535553790916363705296205977862497246010635506928435486297309961232110914750452786655964535189134066761913946209355815218815295766048424063181568043562502014008661332311664100881129328336565271565941664730876917325251473235867194874161770576216252275226111832280272848757294774910576610721999543143162643112559563116000466585212419015694292113863961997049773497437861605846722823189310379377071743971787004982062165672543940896512134840109216599265095708989727509629173474659782105718621258065816078015241368192393977611194908155572290714364312764138756143947966969666681089124121153724323127165301648243498203464132405549555410998243296962391559119361912823138825291970578586137373209734697976298835767167323040004873799658752615687168407113034453275670503932000764000127235093545828270474155488522591639604555348246415421423978448630267152757308083357970157830262144098049848355050377434407655815396418058578880968350222777385142220209814830800350686970877505549373332050451523237528190766082102709371160405858780600184282337701646362720244214978981647316678974946516357140154233745853668090467140391848719711477645721368880483727383460168425320512634012827756413475655768063057556692064399648068236650556090155471196872196288572457113145529946828182066498174625816224270589231421694603619716123605125330957468632576617156158977407925912743050102773573169537059313551136816523697164838878619052829467194285577467519355706412238992278861386486290441859520069861109186450889385144340375293928440961412614255364799352536866233865184041935865318374851791685264870873475904595263970140473733425025688046883951563813183672905677879736563412182314974603164444264950711811753694061553772179428441802343786291147639782262380220027097799951130878772741294052708427908456520373991682914400757308622872924780878054915520378283449098529169873667107047018313120075235243881497348555845924688907013229164501916461123341085125316839910215926973125036940988511962689541880658154949737793779964772368015117246058501003540968484010394180573446376080280816002568524803912160375876707115172062454451811994904884008508808783178780291550797485342414569224048088255886603929405621014774757453496843915806681481183874508260231641812157886969897802687664548504397142607811728881326397824773710668667224132236483504062658994494115767044357985144939268352115650331256587172198788731051399971820593349734994598317849196670574932837385195330329480780076135541039525833620097805850144896021806219720598785525048257051727859585635987959130186213842903305789650354807944458417322849507665658318781425393640293722962079776380286284326210388441425265091349916455117470403155239600307794432166042814827104543861762215745619534083338854123867197054378985456603020155633494560660798467400047683343284438233183974761880103855551002007623139534164089590109694668174435844761633085317671694690548749737156258221791094583703379496216625507391316313076016137997984067351803375354683192497494201345999491648537578368679076710604176460771698936574790381499680578857387774849089436976170387777203455721003549539840312775203182556662690088933602830092613482739247488447470139290935131072168685277619540085406700585168662138768096145335949599000471606399631276251014360402757364970701986652069498928314383551745308802742772032389545646790586431478562953824960200575323915744463988553641028540358478157246665767562124516149437392530923297259242063470876144707242578281016007082860567491954541460295554114089766535365325747567354153166918468548825232352687181950239139915859871880762659382358924359045458093438516027453976827330129214212070181984762754227872811491547775325091251526329943957248114223861767797177785864665858001691393396212013134071974293311376493369500223629826132364516982543294895827366783144811009628792918216519717733248902714161290060664241011482399669679524957786159151618613714670175310471864936281611116225292195997986319885423541787834122596939099829489717295391112786948288595797200476182565367772085244844855044175242792436226274686712436140283374270453679787152200901886425904399964161165283452302045338661670234986682987793425084999052709027355144594698080914011630486336954689481718352286958794956952260135368606922861195653343324488536900016853244129307497700808232843380102587980426872564583433132545502236059811110605745223460046761360434672602276625732048398596774117686446513387856470897453579355599312598113615090246516459176656408167959111138321502700362083298104059391022778878657392975882812257888507720128736141370104041840219955264118358743776865427317840808939484666718587540714032059653882712763596574877798839272579422187484601681839739265587289865672351361956502217597469168052704860917970280676335526706055486397139312325672881622098094497853879381315118967329569698266239260710388426419728371471476718777388339990981938403848599776652380653644892670236064299876680145377211302507531197264844016811548613972398312741665791211275915077764840103581251450162148785108273219542179294416473080478033639451933715015500535862942117120322561059990918192308330799138430890235913573330625141106837483196365212352010618451924162446912634313608889261466072397310530816733276615919494622935857565401801896076898292409862028159602413605392038322394018373765215650086714187225679138697429869876140414173356360954717220557282458982492217274729972135909459443645688840256213370051869865147877779274144374196153056999565423718256494383034523162026418010202825417948414295802073633343860573827112068352126436803865527071703147762375065179750226959366744444898743798708792461068142044600532281945498259394869837505859521414319927058910258671779770910483454459139374908545421035143977193816690548240640787896855917403072493937875995890354623332562495296684825065131483214525588203225365111285655218421463838887462438223612882588051640992406516120225111114656182438837861440220322104521962004377010321940895362543101072341457200960443863292332332103872847100855737344267843122097458142997079811704157714035393527123899663640323065327397966472800701774198705556567091505245167823231681414326304812147471565565820229634219958610345949292670267962612666408938322650964150522938916933638186583437689042756950160168946834989980939184769922449819186583774128703229970425860232055403744673689814834819814420044238306526282859133708908726108539576787139704212405177255383527296734518516632948539568625382539974889934338401246905053859328367359369710668687875183939024905083196378432949549248321095159253136049411291869114982393574604600236596722289498208922793529693190127437017583832406343776125023373171131633600471204802912713108026081645823222813229402633327350189276016408061338898299037403183891756525769414231872340843548820249056266199638671226341419613773336257802645558837467044888160501942966835282482932409757611510691300304466611528466952470739045924362686764282955679341384406705548102175416036715457706321554653876699220215934153800559286167333833714448835501126662013875368633906265205673630192724047308463991588384300191972069695242370132593349304041878287244589793121999528696963374504363385005404194191837710237287291404680188895124780400647333874397868521160200717289829887318083048974960106800732404951364839019952767015373330977988343145814056032722545943640535144088629745649782586694396737242519828581552945643630592676974753499874534744238445706700944653825872452330438497323245257798547989684710753011803915750514161105599058397371610650098647737623572209126150642411208577757689780572640509172347395589610609435760686024109833780337673575199379759860181060495154739941709797732658462745041628759308554433856784842544655222463873362333902567793875455675811436401882357546754880112402791217229043740530409132438194094944715917124021307723665121459208301733295172544803495657567000856166302182349782906441736053881338921722223673870282265081477410719743353678438457825255638669525165976320899541088189779391510214664536246640529426335414819034586629955620816803893993359265534474027627283349843937545478645972271393697102871866202636194411351777467911572676658000357601449332077447740974465614370371675991562520794050113961003702173922414381942068443965243456657222838228704616034665558296127841415447927623703647103861091858555151742118377922338369816412144675188574149248198655207127730476023431185706477675793568758871135945180226878131928215185068591972335174129366279267139097126301682985665890800062551986419795161018512718832101216801317762821161743688212184906108797452741529934471730473717464263287920154141686453371886272699590704389368893684830830627184619136304547903954955421799623426234369772343062354536241991272179171504937166628935912850590639315551337648864017374701771713308658064934424962114719010236368503897744067852264670631509681650168151484489013133506606315389172412770427690806549652790918889823972561270431156730413189527262219639430510114981439941990457298788570186393681329257852823719663406207831563438512548000384425668876504617446714551151695530821378672250245438695402286410750529166410683107018771872034736458022778454145352450674805052812131337079977009954100059799368251860897207209471490845888562012766174530314923419682640639119774922847065108173745117232044858889226587070882898755796543256748799135035661596953952293532142230496756637459799130540698428272699190194768174710530719942334547614588566360719319771545023597004685372848140839141103684464007407709976012811544283994025036085168690653605650164311100816563022544034812338276960790210198024651309164923268645679992630922550891522780804211148642574721713064944805034386487858447184374134864861307030904982180712247646584740670977479909370457480775112054703012822564934977149753259328776243405388427247839753483216975112061608807805025057239718281041396238696671639719305223447808223773058077803390023729297621955361296781355040671023237956709115432139237523523759452864011174112542628008174080867970017011214304634739794595905317103864990298498078815458858812403879904580398603316967393869188942705877699737612984939815834209734592875080270925807020527234485215754009298455736101317384292560269819386621066019195195352696473506601203908017158410325419420970692943434561900719923300581253083389398977200937248625570816748013234768206464917160196684911805842955957883510570638739324622224960207327630950598089366577658168215169240694620714814279317287299142871579794924215723420168974137918833490059715583383381605341099741528185151015080491268193700141354924744033068710081843804198198121127787499315894617953673532731753972494737013470897024752796229461497244154614737786090408516612432761428918200510715134872646724909695624530919025913960481669562863213050358468433242502193618842369664903573675406264048151259620327364359906186394674330662413722046458939816235781201507114473824559435181445662536817586592801489498261348255754554754884628494252261783933122100266468959050952446592382250762849312743264838299817888210506781676875016886055631755173605302991398956799564769302003916691686811541542071853235520728202242911893077450340940909324967657985069307160109281489868031366557179848800162296730741748967230548725509669920929214157330108845616886908125457769649896973031089836701418469398973572731988657302540081695887024180907690167632854635314002835052719371750782322321828023173554311753022069241484449649499503497039285688475004266501181881946934491964309768776755644033094826644746247218487092481531034440752429143436461010271715703391118009716135348664634139333163590385999846543869124382532366598593560680230123909851130761492682991210237577986346966410834706314950528328325923608247250918164488663075691774714781702768810051089076843866532637108495296621407506157658385813667376819587939211730482083317823123728162345756186581407886168102461931293464115468939585122437412800757209646093704238583253038079691244271226537261499294343963550987027464201911002222540043626145788193120098158896584430212933053779734823534336253492512774572207771858801841181565312546864555901293843004643409728006392642747339926940760363373195488395389369307716972949804020255051310724570105379712017566575043607176239491339003877157559115703141318404941197440487390480346612401669899953524637717881710242359594016710116427843703728530834306491946425138208754692461707162712894789873778877841017882592187604668251903229305839072859860912500344061138186720304978661480481726371134833452909781150763075881786229158572218313993715940677590146077217030412106545268988458260315264350637884684623184345608838712125940025327067648314254681930817709207769335112699526172135729182280666014138085120457065990982579685922888467545009270869144766291672095945532439914208786775853864717428167396581063472976506093031979272765927309773538695023845355679490812246056744249174389301557284617915299703106293908059965260864634708815621624979279049182184856266528363476437513114585934696033008437538731296098501445574931221885432305729815867429935617931054872457617616455858553284682214708482673770799023135272464498930250058176387665060981317547945248512709097953192546191585552609377210080742132407580563021162833500804884578431267689545673980990436246969117409030126898657636331919642167308282481432028976897031421963964311177708342509884052360503133203970617183153619957369040340665431205208578167059889194601858105355056115314393444538357406661501625053255600088418603700438733379788840083371299295950180597761910424940487606338312944421908860279135336503497332418556761946729604184647425110902560980923514216282962881548246973676342789722849727885519397829021297741336272934881947768983605468485931433293804672722414320426325660196224816500738093615310953182713247577310189988922848121518217975657268556790026398826207853676075700039932260010012505169754920440140442026687800198061312582899883550935587487053904037178707326869450754625690525250421826531106475964152283109015515591928794739079319175794438120172463258984520787360687534374685167019621901125758772628273794889924608434974107138368171338847766544994781644749076215429353010926342697189382499353474360304414289765131646024905061750991340606982903641259251602344373218979670138308960929931065035082383328635937107452859869252128069443541213417981989751097504875774697997203364416860727479729560854152511989686983200922351874980800670802900460158696087300504925273489000693894871168256475400195782517129235472467479741861070871860519694403262108121960523428089710454372686985063650750278216486424668211114215422381381029801657593049322654455975394862401179011990701574755919577273228828844958476778202094203143398742008426897712972417748645227984613562345742740246029927615253419215828191656220951383835934411678514798132301205024938338230478449527661113846859494147445779674884457872765224567354802187370044221391106730895944503849529830212342358933846947588359685410351078471302393675628128642515004086287380395581972001797324538396246087289633835652791369014536198789373966586418306542312148016456665803211878986617382706089724988630295291783544601416886023316114228679572177656284948977175957588468559961740965263079270359492366090566561941463298013365734274852065170298720103847064024592429061533446578442560612472705089116758016639159585683489551798099526673052548279503970517906592950258701852136082247919296849236634631432099361721268285633695043288068388595821152499592731313465728717674656211906588509535793932407216706286353643677666837825272527838080342444083398215081953377169061848731845746818732776347120741068299442044140644946690598931635338228760219422332496330792900911027470116380803260259277435494466657167691075750305733803911207479661480074772270253876545392029119966985533828131679072446954563545000866002454151499445765859765246877000944877636218335752520893033178065365642326364969296614967139786324321153702185978130469572393814110261622845670626210169938259870541654775634734874777950496036640800972125804658432069579110427815145530869064402761610820016687963956151237333891091070877913325732131768512009805977290094412959937123872715902149877961851965927103500745318201476530334309184879507356339956747384702435393948901928262643610188693652116624449878320994760053007584069842724805475044225611206372442111263107427726614339131619983082030966497633831522314326006571991860562275365770849774721220263097476498196211906552724235703834946986038095807891684428421578332297242100202933033708749329412744519033066186283956312225859702222194611738311878988373133918754518296040659379975620938022510753316488170284869286615267429377831565514784740253427316805606739963179723004771355631752269778602974739315916228540807953956968657650904658585459708950585411889048876312633965633813280737627258528762545954279534949130176808680275575517524636570819068288602633135422674350042580687887343918517835651989641888301892415121478415347152197117363555014523334236899473805460609415059456866471451557399596509806174300958704382619639866250707251408127368983583178415874769388744182178897767457866755165635637452968178406215188835079517669340724437995785306401444268917584581882691906227943373450987878089288460184043102959847232700472407509697604892714261249363183702872032958195031955458412870817612997030610757861140821863198870267395194315246778261416166570354791151596924649746448083495969491818384589578438419554501815468222225126035001362365122630644044388848879143480614865179395932998438622600688687890094010049750212918606244151860433256371312333310442555772955151678752956980257271632361648890862230748405465143874830534100782592025773780641652182650033344450613779084447180986525831200523088004209233614463608068632735717950089443533101050693716436997242962330455588413181018441909031420020620649460422054962050148341752869824227704500138699941149387650448195550868726816617960195237020460638881449090388865866334397047652002631079935492678895683540715924023029041867190422197722949043172452279855453563754150663863920200044192752803386926299898914279668547650435047225679151077780656326648847640305302346764928609240649165603129836419970613229113107647451560369908822193668760375571662232988206530621717593089240064327809063637714078650353755678720532758143319618099589582420064319685057464468841910296186864092365681911035147770845104903831661519701350680529350670251632552763518502507901743123714947397217897323640509485943293812014757977822132607499529213579664545772475229783991029086698440434048843428840781931536195326845379391543745342729302949132925676197108560216697077855669999052161605367789018951734415121997941231914514537068307908781648659392535802230848894775398199350644044454198551469729473128646981510497707597573218917474821387397582443768277327779322492187515546817312638772393543728413226655137475897614346281199298692193630312805013619426920481859931999207861572415301236147626120720327263216496882439260016971441684102312479381158121181436910674078016109757324804195800692937650215250966774853070079918300820778663371353549521417299011422515008802253352844033355317793710335417478585234888732259791127052561362753818306114412803470667090409621958913131434626034642144119065701113838629818211610244189853476868102070501657069997266939639311389916625126777213172028402093894472022523467884770436534022489658604108892045089556116643819058239971745240217191368589165629485658320393019112041923744573984919534132079696551500983500304892683017480626721717527011486069802638890488557532680316582501345317139784629993998467819539762958535756422518870453794138275146851895495726379603552182840279888931933289093918489020218579394929946370076207546678982478255948661344917492152888866743889270637285037102233641741853495546917991281512431207077395528842576659275197793316831006171389576305240114624949886058851377868462367670280318659303239340311957632598933211661556026825509695497534849780381134666253211543979996677727875593380313153536732605178027906083574805392702474518328510169853373534206225622819391774063267360144251398811694328157368408792071486232908981563663657365260010241737537425973110874071051421715477139330618888654210180727526413517457937099081350274945524273908588661608229187922920624239527676208496968277691541871761780565978166883538660921762323252794131857172525513150753664708065864217676214708551188364040307343115286858167934734829760418354375793335271212775541584326067177213795629414286636631246466730313051271961833731301125236784594691924205852141273947091280846267568580191427350415545447499098550634186156475536674833298780482481708962916109305088933110631318826850563362458720197692787721849719412431728981480190068881373455106210365617534817204466544888783031171242781950757955176218915878207271793397068108059169309163013932963469857956749859730748891934515613844548765888678438892468665318511199567594227155099788463518788689591731700602323286611236308447213290949231044195549208745650988078183042559620051067301400052620963736428710760579989131223795114157456283963304967702214956743354035271959386839408381013998296383708409874227464943455507590865338464388838870181123600202050549628685734428796987635735652196643091947359513472518964056446210689630780721596940422313593032066317993599068078281023681065112938189712963904308717800891460800113279355288223183556376417755821958137676449172919303732356632984342665395576260061592545313046071329918381844544593994083232214954963657550238025376589057365003828004013759125980671278985740629481709865159029597254545379512517089023792128731936451055528626088211473708407166954237561486487675835228040794561268789988955922422773473321224029600244697539633793760398528066240233941396416216880226854590230626845920390596591715074184612122831032336795432501727053423888749806515147340748128167264436456199333501428677773207343999201054626043293187238216504615647299693053918843395221890877389457245251024535575013973328669558853344710273974244701561309085780562458601382075037951670796550312098938961431934483053051940202016183898270481971077206937547163483454647420413966437034944379183203672114449120260125535396003660557882613454425008209507546289001968581256636404744060984253250493929684801477261664977134989034277945388752105830228732627446190680174327492002121373696065145069126872282868056537987340446970029214928276914299546755624072374772558282932850880430074309616329827508530337756795439058394328114286386334263273416723589603358471129476078570911564874322963401099934215746461555066287095325882881655042392962518154272225555121438492313894919335573477441372713598209755526097709794947367900901824391457111580013665918239913660579989433659313420315782850723589969769240504522681082904641131931497610975844667087211046397031020762854783500480744287232124756269431226286738646981065606739513514729320054881245169692005295152961695287353372147447799445112813635918464533420699003487525282121151193259156283514428199372337034218265535435531896793885927039955829488608500471263115797883744323979407708253546064366215915467076480899706213568926683142779098992558749697658427292535345715056038745910039716157175268549232660167566896080404077650559961580731719997817389068931740181459086141530695262329371381888675918883679016034723699683406571462813065838133440703388814733460603429623478065498715927457779335593416652178041184160220284156230218085456324684923937931333310578835554111855548811003051063054378180433127714952720685497421600571002926655045690287303625705195181008023619861595662405295076167929467803706446430933405974673770736929339913540849177243287152891568974948682165565328538731004989832170234267512471765327380024119426841707947772235966855131651924411210044225707314057925345777434703976067270734140645231913375460848997148069898643823336911119019726532604916392998719206634240120421061124678983820082703050330386396467374320461127907698942814259509687770757424898431583410373502541203835794325504897458934471064020031772412098742198918444634896696589374597465838666865415206408911648763988836546333260282490015674404139733284288692766502701768446621688017244663429824384723295692743463410179017435501730079865487890725686738683441762642543775209281732371935686700076707171205047701183123951889397652137682584622090136571674428966484773247453377396680710930443054507849378639996697308332854382706339630613395249508087339965944663946849555798389189480517877076734663039074735968865192677111036416582738636310445301040129545074777085264974812679466869470115730313912883244058416778171645216832668647124208101026418676263496395862977930183517952433341126481594310172399686891637507032762389308984966870127059858584157948602939235554162760055924421948683769161287501460399576899719182732420445470742333176564222482148208430194465872388212244902140694411140022237712889463925797126779944748922036877453053426277040224137174762165229200703971469268342425967354845134375940898798735269941783517599778569086812559414034020694929440001590219155485427694862684211532196427919198462736797875808886676240349479580632524935035688781556861448537480631976776453594112560656735986665285752685809166598439630658491063138551146417338199816149530472412498198583843656848302116856003961171585522031413677829533571400082173630218403905723997058487463473611867703845239233148527136615469920477041038512302945819465869334192104699786213637115394061184280331120231184719890514394269049296912642237632000236966763642484951514212772503346263305184585659280906576350731771881825078970619863143622903060186053871987014429943909839674175966966192667779558103897970228594367790277552253896937846908340244271108494884404318669651370798183902865461605144325548863459753282355376028557183716363230251771812176933905334845818277556534851867629016550800121935747054613901142128476957694627672263527526665254415092709839194917762648657452838864496199808820578814331185926415486689874569140584040859467915567821967854698650411449431474947597447120221971793710285826000955267936271489156335739697466256139039831424169880854285158494452239882199445032141432161998051025206089377731949869012667332119942757917951020333409307957995870469257368096330861192569616469104130515021139863055564298365462007685115268914538033077016594613599612165613010733853934911173256315872366922175273547068699241953527275467017234528836955692898406803031663420066759991662456645687842253434161134096266749614509747632862860206961516823068294953162938817540331240742418415234504251653717633037157432077374671749787007155578817206630840269957301832251631826116489513029884032571285857042607609681723828254269607172328121570609584214160475202016912231552802306556057444546395007082278708167777368154410415834262236275829796975874627981788565788815110927655785246953307251253588865532507655097293834242661932336864784845688036082532233996493226224092144783215785019803483102273654904262399996972908482027273663934397456715824437527115851806845494122091336265092739347275426099943754400015346009050672322930672345226472280421836321102917404017056449760545359613900653662011818363161986572346457880656792447181675773211891537576620739818793926261602612739325105594698989173594312358860121236156438794863092889205042734464620763173624024154404431135230933767684739688854435165012063069223527116901695118120423295961885637141319010656677889973921226384666628908934175306084652209455025805014848614253563798392302481654751187853918782732278128268346881560546628665833189226042531972159504790458902080105885338368395163095848594370399373188871645568220586790440480453927779213694699281285392318164745895692083988721740303612767241750094768090005088486140063564027802669396103344764618098271172767137871136456977693214119310339911314892386861560173023535458748821351489818642378203323528248377199553065232455209424660878824598480409700905779223872642933210419453273298197294903841833447432872412514989564637822936049582876431316015084799840391143112142707866155375032536636159723444679161520381424189156210964264506404309084302795761604455163722697840229919036187601312798952301358665798989271714352604128009135858714510749100645899647132656335969673965833511378356286966386216969064649149513173761756668879293563029717913305465512334627194764777941199222207050620241732734325700483693638133300282296399003666653067100274417033284916673709001298961439170008327115460322294261214558697723887342076837648202294555123441027362551527276258732881436741686267106807407424804097485584310891950988344312204235844823417307590010305655026228376367778964252094638840283703557789409373724301196058855121271134776922181467789209599792450671151428368426569361283448365133084054936876587700188776739034889094625063754341071840767256290313913716025975497118003753694115744328813800422826696079804571351381772838018904103254956251603739996361291337599487614426370905327482773039275343658296091888376378253649242360615116475649704086453397953323114548541469378013415036754373422444286624244504403393037684916010995743510210852897885139317524238672615529289650322894151657656592083830674872957656426886315646621546603373395056510300715908530132335825086035627436553134504337152384095947516081359309417751355137759895214768421803398092922405380867795578076994525474113900405439257195263385131290217983440170592033887809205971988593910857383247781651941336828272659484561562166191398012179455890602286046467121278373628244398963360138337388941910291690255945346516276308989705077673287665633523676299308765931840409267912434622066569243457803874927719115735685276257556310763186192318551163556927627022133779223052893879821876867739776214128913587441304991614987855794833436641763684785652321712736652814822841484219938326975880750969497052882217630586727597675682422647857615346239308021438720288656439124201722038797092862732390056588257297288904770589997618237395630151592094487559461590590392851226349641240572182224281403627019842175929057267881861542060891472023956699732154645145237110777343114227535797929186306829835069139673055867416809363545595627609031767626968495996538156650980037454255618769643020255887558447703493633803805194028362984121103863762037701099744241403135096074013748983400970852504767780277946959029459936828490405747420170385992097497369642199501889628777239582205430896663493106347339807510433663249480809586079174163473883717411358313118913443857437573236380248066872817171957891036688976278936363817887012831536202078356525331478841602957950596385877417582713740682350363355491099013899903135817510580127447052958401969982906754303296857315490549525959778524534372845247288331381567730387302839116916649433356932171776824878801392718486017948857423322223745140285923608016329333969700712810052662168387335865216635365193454791201801542628342060485410561181138594945180775347659156187862210746107028649906642613319852129318875493461310549798710282484997759019790426605751253404478506634975290363702169265807465124587151784964193679276725835655273626996888477596817687584819575063710294089249208335028744472487986059278958071278502431246452942549783526783305445591838267457103156881738581857661832094704787763423652386003846175391316368978692433499085659220368561361484346219453585686632014296948735893819234168391490020761667896693604831616090071327381627158144950438132312944311881381166144984013614852171990853159428598676089305364810668783773565563777531246738258598593523770967184384979611754929810686198572108374079604268276064790701408559556734089538124049931064773201356867792210440183928442030726050455417418144297287465611595966935977257179437778051713567713355821194584526641446093059487461613122257485443986363248399776278720046125297615022976196832584893006261231223704742693140338165553309978041825542628878751601420858692281621802395509127735970056635390121093131884530792424186287493394948085940829178547219086285720484744561001096379390065418048833351331986690626162091972735655506321677436116203356514270161507713489603091923695135015311405961575918220483586009714012399881405458970164790532699238559647398021322225514003629650858319570952389036429512141363473058268341550391685922738045023778845303481327680040885537718194698958683910050563993105274575237240332825371516602913426331778431883048173167262645812402118294016022331928565414832018103528639369818378137579873913200174659835226011719612129727254402418294615367038145059280392648257218403518340144531326219487312735032016149632532970180387774972579741638761467011316173215287619289484749880807432790944496143046900828687426248890953332820298518813438629663139306026799983061660790822431793409908943193708763044859736141133888847458465769789695920743738663281257770710214622159916653168368789928802807255834568297505502852615480630820388314214875244156222818419148872183858770031148602730222570241136462323219513411351331318048805202800753665484617648710070952906046896430661387559204696809845342336200831604056416036249433041060216186282582422184902440016967030465932093609445122331138839631132793731385462787881033315577993697844900775880676393934961985854258251256891266479715146591070449242158631616683604093638065775007916546712606152845264457313033637196550467680829845779794441525677630250289604110678892420734197339969900154337523715646740734416678064664586263742837432493246118992229661667434267401960060673360143857983153770023704737201441820466235177940812628558779185628803712443842979151072500361153480548421486263394604262682151064314617768576198740502502155836856691919508964177229756346094111729929828474113985146914988901534009263077390802170386141808310156239326755348566059410024635490002284333916231879525596685624538865861531520214931837457823584501998793764718521312001419965706103506326589775196917353862401041359855048847189602689073931879525715711245244453473166991397907648944157132474124947610864548977737576338607915189688176924560057780928977228682905403073091514442926037554124709620653272074552866695760017187272166418252305975998351480038471415680137447427472887724219173944264087035964875297598506952551513415460816965474087067913805572680190682160208302283843896638345890141807404441082485988265586656950673234700255241076312636618541184783615329975037993852028217533625584184461291148757702231077137339574299869118576782410581726072894509225418987889176840984105956898871864434378609388154052228902890580912948819937556356639709765895580627734225825928554126483742330315589587948797123441427770412961833326675839644772300470843689966709861568819113076935624508312146978391395530227538590426793668568862735610110634230554971321646966459040848558951806234266277835482247668545422382767450232545528646556785456915043267862505643792360194345865215271889035302223579282401181486455148793598036405493823588379728238378595924000368281176039700618123499856896459301249574651926527319580621731869250931722286887101570078362461980919544976901438799627772215853171878953791797744141061935776306195823211311489998338640630951493330871652150532323161429986567674342020674421264027086679519920263312864330558894034448524676114942717306299588554714296512429602053202251348388100205453136929780045966088739960680473772412908527935990803894947565777376089291751474088139560476525322579385175464114468282986016797074065305972974399826073619652148845364753578850460487472457862842234349255904311721380656110424051743758019187787320249717522566452902573597070769829814269880587835315618547112131438426693965928275238792849193597063438546409633159125030019719982475771542910765088283299195377392199255106959284597874615151071763156970034227431554857599801175058668989006730596552739965539185210304821942291255750471771736022319481901335857241706591657496853906772750338928630989486879574718552877221118290076750139333027400317347611334047845244748156252896682372472586842142410706782665162430078168240051189859498343595696815400199460461919859325776143558749420318669412792706623055533943763839617882834120555372379775082410509443262491913031302075664931475149695885904424410067861936154150644446850608734114878410388719727082481559689019102391538364113412004418131538784492594314867322071178195973850611863482231006234590996293375224096359278073554180808878479990042463817189351451083710886083861185229209746657609591980451606478243316501117253512002037560377156485365754807801936032248964949760644541094232238627314396744927478896191972912707605315306056255022153698937206538376660021393975840651996600065655722917018383817252876244604602728540588194147737804406309518872118862164705332255888803039348191155842940211370925472479597868272428946281380013599026052392105851752883055530735620374863791539110517552796145320212603553123318473173780992232046975256717112389875214353236821642789765403018076367005399762677303230173983360463043507725507393482371077681284819663901806745003851494999354913036600153845907488828350273984086045643351353604261709555817095648860418319955001340401399784970852156737983116792760397076228077530504601198715740211078418535986271949246769504945629971414863845013378520833434568674594934039912762543735131668546544621016232631573769765997647290716973831334759904451868861085595813651994911012824996727530285010541432362526897887653934011784680231729652274489645133246333697592115349426047596430259889675154485754986533176797889637590095749935227428378456317548598215654546394934565802172638242545944736591163577922478818357948089555848996600804118541683253322004284044233099083000429265750801576625235744235871646453976793047958971156858257760517347263676540586797916212339746782840347507403960083452173653097709808082080026407657360771526817969061207945082363942050863870132781097653645772759102403108144118217900391936839140802844594053306188501631966312946347720216375772475396684074528690005211787819134841188760114820497920038041551177751751907771276666225928382246935222627408549419940639448099122007739672974633544302284908259147399270177520443748918263049584666044689357769522301861006574383799954779006715121442212041552623075536922051719594526175014080706370954629413515760915720225842230515154469266113346319103239969591083207705892951806480926981519167179751894229849516006084060658947686135024043578995721128889265071446734149178208889123671053849446124216332013145008462566909709505944379413628347641098513790801265958249929066807018202629341179904006474958744583116403205443046862361111568490893762675391391678733351639620180607100310297260477178265479532674213497541517253814749801906146075048118844674450259501811744590054575620715907272232361432265469996430366227075656162944444093257694274946667356423700254325263606093640214575866571194349522133456933532862331185605249771779187014809831930107863430444458424323039509924168301690923157872416443602823089647661613972036271967662951180174625143835787862865549629568948898131501268943324229593132371858139350155712368674060405319428738513068578840993859221811697740144005622271125816462869068274567182279902609755967692063055348413074165879074861704095285522387055704593901719161930013781345478650573762747291899607172141959173004604380633898031013063754677645313615253400593016982671791840544425166766818497835756267626342242654432338410928760874758925820344419099795959583961012764689256023265544421103847641748251166515438562386004283150637563849334842029156992950829385690069169506868869931570780787480499142929242854036300834389885009087672894181127739238592929947098509596403847574896604829096952595044877605285048176627244543543902696130648357868448900958438658717201610014724283068978904189929335377351705087627938216652954256412397466272842324844635186520687897227023807540802259814729357396778743813957183484754806341842510629086635842640268112981224081700133738368596589640252432564647334421010370941095580549909394727587079025227115552931979239156073978944660577034789539132232867375277414789514071504990722692003184473549728362158371646856856604063593483850313145987509675655153711444169188873502024592516543627047643276609079103291455038132391108172177870221794754983545382284722235858633822379394707394704400041219113948547374109176996166777242289598322563746195605819876060540006411041568392608788895717045694959602683341946349908457636932487273407082706717058803288266090266367857421870535826132184973836177874412947411884821231182355737652605046188128227011947600116735355388283469788163262435701086773168510262108536854441756016568306842025977628586537707877282639033876523682221584276954088023657744506040151466212428461649252453923426982235175488944070784075564756866286722863334923142402953351191049047922268024369532358456716447749511339600643984618483690617126441849841658460631464599307891105102071758010687336007604130035479226621791068522482371594282022721417591276686670561051135172191041396923435438294771119060963402959390810105831829395447729626109327442501419248224499420065092076334444397990620375889290218385939968036154090775344261860921642990572466769847690317307875574169088108573797285387565414353741045487981076336875334244994992737153897340282240908227767661338657137851974143368632579354635375572442371515007895942367088710880385658472481532350307119463258427117253475912496237589271162057640865892967008498923975719167280936332989599233836595536791242948594387858177967782761342515577493353016245273601143102432020082449704830122742550830208220063238726905051780022504778962191086910303180091085422622806957849914607318202919615364072772071116186711440724820735847664619490871957689826831997740678655663395397899847276964086128625215903369741163533550548413003070701584108616501180188618895827512423304284378842221830670389785589832325256070358267114506255768461469965770670045182647057362606857548641445336034645428364057250055222034524445871269539501863589985840650485624029750253477975371612986172138242201236634776661708482031566506250511998969030628063934359988183560576358844099189037791716091816361395679091782827003346204860421529906463741573787832519581111401347621774477585839499695639509536398522801939813968490309246492643041231578577310043030837661846476715451423507477624328204679412130853418611241678287874563554699713592766596864180074660129079321331201941758513645164957822936311656865252794809643449271646583098876668727419972669869991342479787290775303220413169009289369636567938873735516313034907884571155697567858744669234037647142337336668986875878020463924975026181936750062315734265171094771461077934546488923836597168884225836201391548665856960264470757005195239938631141396502414388139812397591185408435222837477747275550206308833565213341654716560676025698258783261546794647467456469132003267970743828974552646707738269367864918279111965089422152769587380364666646972929676591354459816913090865570365201105194839127782743831313808128945210567186866654056448872090446208377795210085728884256295283530808453269533147912726776441803982868387190539100814807745650354113199390000006633197122963885591911525173471772497563970158068705056821261626930361753951445759532956305785337397971656886270631360121874664384351368893930011189078791045133278880062611829096956622263655872052550016423918517203345435490348839097367032595590233103468605882565890853590234648290056442276502837878477942840364820952531345725900830418421147374269736736417696152483431985830150784793800925001075974536659094232845085465221359644860992192256705255547418799860174039405777405199670079696336949305752260033715547789064807888596567975895947579714645228974604863367645320411649577665920290696636534386819268721388129242224855367887180342029391443651864160201887429111455595955919314269193754916521446189266982609758034881572938665207229994116707201010944355702645577697691272532602612925824385628743418930995876905660942094886968246012251270301359205641984445571323207355443087186468863791186854856592882110634446200344705629802007868539319379159091512688172110109526511668654273371389232418784989564086017451038238743829436655130226014959593412839653677703247854880683887768244140004705788262569296141673097244312055718954510628956904820752796734768627849949833920403710027221558677727992567447825514330640740500820360317390264427606853798515133417724101457337345076122340074907097445518037990482568781471627434152168626007985364632521861953419812352480659188428016520227362267707409803119685196653056836341704457817393939179659004543568532721132330575713387933231242634357850246794372715121981178290272033803005427887327100174052442984716291467857046220853454909976558454461532268826939693235329538801506338014708083855923236824632963074009854550128575123925081888248943701637622061972148573501174858192955146396920616999910531124497404981527195476001071599632413300229663328789461394758299294161535035970146268555479498797714760296874181550567700123046002603827732422847402453410199334556846700910110418511039084921928698977403585503488169613586371149477726633331380017901756461783228563988834139433030625557297374212062114367814240577221352252364210616839445142738843405729359294619148283000443332162839488655089288314587505836539188606732519545711411034204532673239488669280737672642947077990339927638751724054856375016253214673337344492585780590602745089165666247512943828097818701132879039127359323558167320726232027159272339435726012786121542662220055530609554806745097776610152163037161514475854270218852337370712075389107352261931584146105950344123355436722961463246795730869697921396854290471517857092953614162644530598802861347798122161757561084206847612603089935084884520451821983673821846483644097919482725192996459992465350827958353489759111698358125782861675144008081276135642204233184252424840734576493626760906048522508038989698910737500694396651221157055071402980977273317147731378609821867711282015626784520883775825592212696625134405237832242855171648159844501245513522869273495287714824614156969495043164340032858379314909360179464963125626244624510996485895699969497788064996542943219602378932196497778129264989058172994827888451883029506850966490593832048332859289059495126873460466607644212114924960896185168949177914268994534916757440925792800347159169639071048188055165039507258367149145776919107377681920265497045885966002060155956135123636442897330551918615896860641275652446763284689681698115196157699273673490385168216948515182599229416218876078300000299606668461975135037527497876182245813571134269807914755021803748691240288778692029702396666825581032127225505095431887372597891418754683529411840028928676777033685101859519234318015272987854827576232348799393077361362002900703170038709418524378383525004420461495240371728888132177678998252222890630131879602114026196795475201895772531966214422219406524681231595174218046092461560564081023400080767595484029823533814310315146013040611901610419880829866355753313425472914747962120294149552638136758332204042211712799278704309169707677468447019250635757822695911092348645220335097334194117518891445780511925826066670023891950305172667839688670849972148029736287678952839513937656638905148735816480255363775027433616748308009879404304957862778173108007990482144690821305751686216436618546525347643942681438262755588502322723048888692740400528433264701175308742911915831610205877025802047528883580013561328950190565572588310329078881681544369491669504161984888762530597902802162219870226488465421641085432408179583489647416052973020918009612900813177111188999051686803531109528109690527450284042672496889460042948339267513410980431707174513474070003114032344856974166224953615279568028584253768400952312205996199201519870419097352926630352836833019620025802438607772395873213472244375981912086956974579546832493220348180824387248115803752284660324587828549374186521989167621076823830762162652237263833255056666040516681489640920581054955118595616983247915251675929455668165377420730109435024125967293136022014993944117982520377329352546547633676855892778700189977157517452993512138258534760064688773906466944344014461071216389671362960243049695516221944041456644542588344334702270162779547915469886012469322610164481176620038366103739749242730620500488498171492765279745455345171190276324344111138487089098817077476982916490894186697329889338364502066878919318985320696782764234981389741045344568072165470514768968218572454979247931721641538082211001112611998876155408510505910353271815179279414321844081609297283910268975391029021399035967494731284594494113360264111263231887482728888476075911034649557428085188201841056170345425692433035041441541415160805626560523872379615137081379039848906001177955554649622102073932351472470451393802474338795560068739256056443521701878730999601773217215394757935344833215420057881787012678186989483341446211010507689834767515971752278166970180465312346279028344170475647369062653126614145536014112783209190861424253303343008126178092113009179502075750545966582997613430975573606323625626594544373337637948869957124926632521513655614971767994837210467431080320300533367886424930019032479722902032316642219992133631266556200301168625677513728382964872176906834281826727808419246913534477294768363880912960217289322673058520777267571269832540089681466809417518034709350145786236934806453482498220544758939165405914400724045236188937677694683266977972902215204744784340976250950784277313637718778248575533793184560840807678069372444959426276692481392150148600606427673509009366411508994900655493871196955550894543434921645512163864158194431152580473052032869898069594463713334361588216544104103097993805070330609472629203020406975506749714098453497855292829616444549358069120229217000038567338674050265608105538287699206030497991570516856506468066217142080639429426027367886911926047704499127061328689615094646491416786244975698188739430276911039130161588766483303901316119081119531769107479375568986788190861054230554218587064772245842216501474195561352220039541016249847407087957412264859854036999367503086582133791084903081001748950923382830788375189841782368301088941717420511795741797403250224561852342074281999075062751036048771639221754463975793059734347567532728724476043427586170739007260452217817990888039502083321317627676823757447762766823142599848645291875206925773531774923945363184507535739687883015705636948417809209176351757046360431203417810561727370133417396998919386123195084526764672529605474192327295584382524977982713561596732049555532362016305572469511900529838406925683611017323532928317752614531532481153371018539173319963259057569524909234325651021815140166356199946680354497754443033581582558812251558067924314728741625223942444726111396932091594211999671008369835567634240948126921027867864673447374467881117290096950439415579259162254961137530199488042730218841216832188093970496720054446205160200538026137987155355450755253496521729668044260679600651507912129632763651904438373225605843283158846315368264178980484704904249090503476216878841811442880930828428276400552431496634335180914266483356917619008434739502019945749037131601600612688766523637834620283870052105235030324718461007575254537826811823519288051437021253634804801447387020454164173058158747249769298337205535333731333301154731477337137376104524863025904310299926792745971247418488447801913527569613690130636170953330184773914397656236758541869960116273281801316575489090090846739503683973062313822418639357239686464303577615135964487539187583352922469208040380119237495406948741150068962018240333616424842864565215339957639957746868068523867222898291132024704004125948115897737877253213298776549249892393753524799412818231411145507155073960990316154398396791947283458416968740795594724126039854086732403474899013374184880391813322645646517269909985771958528356886148261480082390314759171159581855945645823738801305803485210049830641319396847146412508446362588216215754734933851085695209052080802691006226592119539988198114499033101143263803538141920396974387505328242884730586505152757882459687056708334987028674921953816226347450620399055445644671290714753852456810250929301483039962990222617769274765304492375703440340671116912716875790744222935314027686409903613584287772162857753346692081764853488395234551703592663368680045846260950954135835049733124557133211287887626260387764752390131791062950798301326138718205051792938324147241610744947283591614761812647825070900791700522208300162642678642220096424091922914230604766503022418779010698979212235577169360775057793211808952695541298466245395913144240593215307475001380466359365213697277128910100410854803663326887085518423725969084292210522999892721216760272346891245263425489054326904868328463174979876725740890424081204524720706887238685877875586251537088471197933457542110101349998401102923289654151573641438023193287056334119020255880175415478618386131152898301106340525318437570686283482988433704532716406937471334964430275655980486773404021629605176457430097439053790263795511833419986736930082457965128789658407817576417982093497443107423985308350472719872315914575324597669631947437364945582842035018199284541831040227473864183745069660580665492933844653007405842823417690755464802525285207652045980505768568268530792161024736926472384097167962790548998539657726128282471049812164219669913479993318652022464258078939312932089661526737406312804728093950802017902496421638502953101459688238935847506503383624732743523977743528392523795336482806275867116626047103399464964755203538881517013664395683930547893262574960741973071085014182264587851941754398971587715567334734635687590588086942567965289199127983580918879856491289045556195704662912362410334274245666730445458868617874079890738948058216532905158550231270938156441056687111884180601966587517100167099497260851642283670124976953982841346911707766780611617288517451078732077814918765379967247043965636287870682091644621710594414688123170563747248698301754313930134295571597435973128674794954072574852587280934590720059972006437037603630015801542795671788498878761496735983417415913627974330424929966367861238671652747513082728478663805481279990504500521144274041252234981228427423714912168179265622212747904987790329387193811435761010836608004140735184709729477200762758184652676113255909996515235436422198821331559376661659351057478731998186090002331406778940119956513650284873504874410022835021412707883047201247661790396159833428896981574840963677923718750521476214810380858436496597725163205962896243889517445818934077330250230653731699352917984032266413407726511579981649000466231619999101432488574053091416229546681619355915692754870489295977348952598967386976870838595298431820740075119646069147834702882915449189478103007546054561837434856711312064149499577796596165285014827641684154167659372660534749251952034398630125396220306525222853674658203458820588833675505218341296743311429285678856950916459909929742489017548095702923306452091015811277415519245662240846099211306260292773169443726975517132692482919161054932739555539425842969516587440088122900550472547792684241142501021198515520506620957663296455303271619508768278972724277078812328734024759063907323479839101485471815670016164431980127301056840686562704833336621907213060436386905141024017555903534820521933272955653609012279062719945216430402572957379112934026653330746960400176066705083339560598573348684021799476519667236958472946356086694075598253330861199302524514728836834651607752279671846174325552215761397443087194492565863916395088578467017839109287793622234280672718660303102813131502672605224261985058425329203157348950455917243761103827538573385270381577017367946096111935985141071802280645392691562106773934626926663716312013892347393576846984226184088466338218489276711999255099858438799113968121750039397570213233037566294639461918609429888001527002312635032488077963302230231117537477593085325874633567574807558266330658254645888155042282451864271057621735159937975232565262880757195287421569704110719243126741890890816678224887227226886437477555365871615835090714856416120492709052802758936217292073170223882749876344561205684692036728007033021437713795613612859389249541842797910772209942024675024371378922434561471333591490906201885688296233950561378243620256968984906598415118181509772896584822124060553255328449420217708269045949271646290249564335048842873116009157475400233738502163804934933293619356462044448079793407388231723096421572705804569449942126257595328449157004134597386554205734578134577915908090348152857839233245061323150654209931643074042755010365482546383341426099360600617175306852583102326576937723092920608635132025439996656171636233427381031117178982338580812028427849291775069255224337051651119929073863246859882947114704554430044668580639935975795277326918240165237021060689516345644483302039978286087533660037922124392735902693565410329038369343652288626315768402895235873844598760772280512418036579778536613434248662255835524439699778126899724093598084445257761810163960187639459921563497936319674164317974442824713697653236706524223491368747240073040964322110485657330219930102854754624305126746024596189686069259897322519501106596423100746897109846006693524737904959900047358983855762568923147473954633871574737580598447744308119509957339914259514203629741323084668693060580985866470225055261703503563266444471319887523365284428693804133248709046752677956303803772091148210810257035026476053426383770480181975021109218848650520943674714424193842039282175219546478906178790787640464912246784434744852499054610289502353342036640686462220952030739688597525963964972269060029025223303129054130436426701677542029596559751270459806130637813842166496034083464778803577741481173487409947275392093317234457972167611547857575733906907157601795420061977452918280713935485099426883613611748242763542837789276349578327432628781682111510716056193246204014968840033641864959193384939524563409711099967374919586686162046008773225093469258357467875160901101490829192644300428828409838837660859293161123701435288844496104773139130723627466478515938143530472233083814865814928242549310854364283301648526441456933866766492350686120553605365656550770541327968485236019492591477794384605814099555521404246106473958179308908406320674579851067074653682725040381583187355396522857552192685935005140300254741211530828531378474297206930395663627249761167712137592170781378140325325654893619602367329413986449515439558969808829518931984944260232585577190880484884606559393423929001765057002703956527779254726234079661985506431390545955308495489126475645445003994345534634476951420009670229972626029297357616135727282058163446071523589124200498880913508113576606119851373237534604328680398899303666358635755361041208811546550054045826655260477026971409345765752829761212308792272408676737459958295669350624310395905235546912624197411451124854989924955504066285698048973822761305169403446354447149732553659190063047465636606204033888036295533489499424540482407543646546222110882368693835381662081957314127231903268727184783504349415000844980025457445249894930733733619177859986758157123257844343141873629522497633563118562401174440254677979130208106748450612697501327007098789064234457846789708702286973334883779008939493607092313712397654041073310913431067101070751979993084859175960100733016977686977277389210036731085872546746794242373151401456981144927383345382156354913951784353807869339272714686771298299605716311123362341652838930438637263610569641321719922128969970278842029509260999097937226575968431211401620122436943371429536252507807282638975355011873493746532743785831431684861778717448839084102806859155999553279439689763274657060817360816521562200778546499467608762430646039670808089152078345392435362330460204020392795599455374520952981662935744957689065294747549378831894980489319787642092416850560826534186488542721244524854569226351892904968313628071363886865237575123406223369981553997878504685748132442580334328401767092315688368444423413506860544082191706314501024371864325387546303803819644415759696661641003801908688633268413763932213980290122798943836871033315924744604051683014140198398598904886385915520295989003094462489637326268949717667235859497086952832194216121304926155926572836967597176371459459943442236921803421282774974325286305211304809823649801648154304431583846488654717515410338657029610335533263757109842442833876664509390673611003499344810256989222362494817048664083704476420452352801212873598999141053566522457522518514836322070257614121466380362714401440791685931085947871214909420258752786657099020901275591503609434260528773392176113868174072433282365616919145319533521260818493609870907571216646545394288365999104399101403500330507568708278008384941671094786251451829331967603343725678882759217689404774630170119666553254727725348736245570337156926781539898917251010175357928150689003705792292808996769745832802951630825673233719069123576141971793253543549473809454546643453815853985813436597000157941518671077750823629787340722385278718975318319277154472423211572335302172482837227567873055391033698107363380015320265647897578310854499260828450611183488644164127608767967202789716151496673509511188407629593676291226440755751072878489324051232410466053494873094980300645240040234228328818340223860342942744609729595761777508714040282897218604130796471308617093020881433116961181697517652851543000151591242952766359151247647514634996895290114848834885052085196920332648731715036434029358781562307090430820884151808057044174978342630133840457240115060262300758356052356606520762074686782927717840146851197381261964622806374002288306333583495326347417272977962285848638644133058797211389874128291296938625322606828745702299366940188984639515293820359325795662862717225057268755537110363501152270812449842489992353715420414349479460318635224563574157148908028980756055579927972008375224818323982140946473442219566086640974995784698146473712496802333840986356071817319656366824615086102922799832588487773954624471083155920461396926411224384472549440391292019015376515496526807083115773018925523345316081881225766511920417943590298272600463881690357609125533410641667381623583145827080188961987006258008484865864071754429071392694748930207860096112212872799651284897298716721177264071221656015379835317546185643587873555427056918794146231413767229237460457457394631583779758785954157090498884544180667674616624954080832135588416933329838399139248669406663703283288587435433653910892940808595654114342292292903661949750440738634418411494019056555713636399940207459843665867807880566326225539855149558524337954348489282544312448545024483847053975150783413304639786438575350625502419866827039066325895476771672434122110918357260834800223291969881879964039388003829790074114518542865024185364630827522145263892754533710237947561072237504159387585045697476117902073410809740206129478528041133771938282093174089823124079978147534380992261438064290829775555704611082124838929416979883994967071587393143062062473245763859922839721334883662360075902784655728759298773738983553621711191148142898231907370728031908287077185359754972987329616804836546561633960284459304114278618010143301910710908452502185484702890371632805660047398232675740309501401066007667671502128856855723987513577830190985952907194601645661963266886831041149263132047041252964603735971202381879799901664960164763051810350164103029437053253067304384217370639318489389830011667237001815939650623201813043498451037563798344329684432906299587068808243580466462343309679579890011658579268927215087879212632145076424500864227134162679443794870431859602378264192240185405685172660205239690992192811242254595495276375750255628177333696174824655160029184202917345724577737096069863772033671728646939009064343612904580475832523508547800155969226373030311876767211531025592088326618078976169970954907351951080114303130353896072782010897831504510476979732687479327151717041654242756114785721029138686722037197236619082827451551771614175972466561816157237118124528748659738942308700343742572678977713772662117658986106473023003427764743695797940699322801133698489586645460495723269048559434878175831030273093675290685739486030970803799473473121586879793908876989847345792549192612321297630726997902485232773432432166345645558770775308604056322208674819611429292623902194360376642730412726637219886330660208258844498321479257861334255629618717808892055517471013603109311455081265973344455822798789105090663866474165086222350924614126998431538521405189408630822653285749975960572351373641915887712079159271582481025001551292298252098206260007535815192217647847189744153610179374324369050045241074296003707901707175251764830347036474706224607642100777871355496149281844735045601985360768392083728833555209580540145767340402885209765649880233339115458590369701342740238179531301829060066441827319266202744480908390304289460140626354047427534887033675399586284700400630451597820678782536888356180842057926020963117040962045822971729190783708145227816875533799927871143033951177181513167696546305747096527339221711123160430002816986049097908339299876824800174749203271966127239389636810318520917814420607566722699033381940871131151696770375212685277670602984830521708355745186779073316056239342507259181599150674555906629464051662248375208439960681658133479354622957430023299896406485216320869254909087140584535603323527012165072522378263923343043803432273301460899140853178492309624737695870217305401845375798956537958583944896516339511408320195101932466043933885898685431816408515904669841199880921888309886803119437068313711639053289904902199654326316091300429964706801767218805506595433134651734413748839839660812497300418868605234295200465787997633124308389127977142912984027239132974873333181113359154119445229901352880708149931347373105162069110473425822204652630719330455285574022935390520691730390139180370849495079320263264060327910732448918676367430020294953069587356588443678934331513848962780426200922202436581980536698467595766049865141821911718995318627973746699990104494841959419930847846379824199075234460919461959629345187579424055947470552871985125464631864318535072492094663768478489176447610080636079647621400667587361221431504426952933317818372738451045598354325268934346336287142047331379180506233998796063715700157880619346031066117980294547128228682116276152539186443121706404587084950233775339182361361565291077880086916939080690773047054018497590510486716858566719633493455969201515203842897714769459833199507171451677186803643143515653023290003232189433838873688018230749409654911906101569254019779239336263511687642395134585565411931608714715843099500346803057323859182817847262372443580462369954434038102607327498031476373817431278898562962698755403040233436395032655056969737947905080817006374172952845036562844518112382173919466173825043083761010704013231851327750532363624043126151132021186554582034808548966465606995610078584588704674967611617313343873012343091808093083446191050728222049672227167557465097302723185014731683290983054385897989085368387586270883030568340667590928482386302822162973579984825994600562584407085936679511112854851545560378505608720256932047232582087601489744166480388364802560838508013132508772715832433553914993145229756754929956926516453808860319102071431751506724624006103615330066153299761136407177552906002908924975240872442181973958426199358099180373711667400577451610039378815341892006120606875301185869388140799831273785787437469166163682833434300627199283011161378208225477410138004642347119693912464980900798501854604820776448593866542754529483820742985794450794687741307918568877654860256383260749964709053854770689773410149581224362313079076432388759757587149566509595926846025826004573412645317272964359670099706255974465338726635167714463481448956691640698053596339836464191461117414881927113506009191144983695618019245377236908056797772738808909548802936095789037567610606813553746935278066729802408879630993556168290615520188159342098015294426995654358305611213027807951693011718294541307145970041641403154618881562408778200370233547126563590618744024467811186174381872946845497229571753171124426705827244137575322677819662860558439409020957727210017530001820771594443968638124333738296551433394605875408638039559888753382108814212331027644907137874388169559417343839416802054920924016319901915165464196794696252434187428532007052351392971773777798170570631843957996119401463059519960793328628675515941874279442161722896382831356173296148052163469561435159059594608646768683864560270980053190862139943850590839751469717600306245987461261622840952654807506158178050607772828087512975519195662405187800971231495320873301383156104256022401595272932626202078803534040119772668893277551512851104383645232516490915787963172748938155270379061070237412596449314946920179899088854215242671501576756799906655624926530771267838829805317602338304438536149838231906329466454795443676705833196503276295220887031268168441468176785537624715596728757848556648683134240774839114236852032158196567858745522860711520663064738049127338414361523319257635607471846647828869893256676859488655966654061792215381400418404995767791662168800455694680705124837146813829242905860912726161252322927845022859953700704038089972705275425664100414736832761720003724604360986279867571097445624849191224905911306321723523220105548040732078813613504782502562619864685480949957552522349892331591970208727088704856408283342182279750874696129286998234317204967943130323618207334780600772759008781448139543947140635094035994690886374534915129127647955959812296776910238493528879121224107391869836396459048042972009158004052130438449979211060828030696828708048957581139903935140803265645527985889203814449008006258426987337526552177606129806384463688440498185097307813047504037176531753964326902354714555959822054898145342616151666779903688391122811088994817131378131403736327364540445450718687714234372859031295738635650972830100571842149978414900538267417715772703821024797280997021839499301017881991891306200644280162079023214361670689523663479774563992607040237955712982010281308332561932631532560145690425009734867301140808979275085747167766983112172676939748624998551999266315219963199142584641744945444179465470312813826088545966872203154284421685770329713293054144310019912031030807007308273412458544360286963379227511695359525188827683297036029876154637997544009590729187763554356977026818969360250217443433298574602618320111670483408903706142682778007332560697828457956994520153670255089955443921301996584769607537622795413485541929128050809323190006515273376229938704245986740355855533043882558224954235148343328525494468153734856153505009251250076667801240029812858078516452130735997156649549882614855256672614545914397035398373061700475874792844832063711541493120174120299272366466295812767949457287990879869765563693081231400669115618383623491556881324222867250086946148902526558596278613764349823865678263597454501779848505372941124595376025913417547319381148523951537311938165048425893317517938134708911806047113538591732101014642915778595291291315129612542562773873188373917917475274906357795950623594989526590923321019998763174279232244584462338617257779906259469740725916042218921809228203017490943068717340444167914179880228068738909542452614607157765751526453615078249028293417567497780476395507111727751196768173426044484578189893406182819937376932247473915964417387552212575928043825545950438920100582221108747450959981472014310554297871961254938958735936261230680075809607026302816103884045032315190457965006897817375566403859101337334036033607543582534009452370733372587455643981728206343137126497557857739530389636696792913953686811106099734975529402691693557529650999159864892262587867147510645028019969180868749685243142230843931673084962894571659719676082013375676170890591108251237611262914141460007601365358000088005983575242251501415891708176153757405556370282165244895136694385216529302498758057385827190447155144192477756302823939892453172775489381515834613301853672757395124137860042311389927310591402094612268964589987948349687625073935947697654263963917833716179823764232631928766879348802145359991299296137675071875459720419886555054181764800385270243378948817877964461049054702995357654198037787285042991394874865209402026655769649154425220439674650748219166105585758724474188442366563371700828777385674650078906364656580415715244889495115634963665159024173518307618524674069743402291364986058083681689823861339407694502309648010998132838607666701539151957845104085912550420249605011523696538181164450258275456439810950165068938715156667343276033388987003153529417917210766843665251906410658745542248305478499055179822619877519573932886318449336484688640152262470484722483975347569511082399057758990591525453630330071755278433643066848679837825351454467372254451377594114004750335288552120036809729245733814165437574220142392261730913807563839228337246562230727453000278452452049035005240460451061041488737769482169201411919205297372839020666763365205576753847906266508702562969672247315413827906324760448535432395610479735178715877559987769854638399896355591731361046726821824555115113270811463823056947712914888764827919524895073855504600904970067594168147690308984156490127261175357872764256325127676470576318220120168650524667274900933177565853490925592164858439148302825242870733512002905133324652581030365135885264566757889364699107678179423217942104766111575999173994546441224058384234525966135834588190725971692347087447642843379399879803532041780615319134303712600131817032551810899326385618469253968799968171205303516779677676416225401275227458659620198222461677938474767536657034961426383602671849677658131911022549838891416267953764947339490191095384101381950600015448762540300012724086153772491050920713712817837907522636551889744510288589356350250549141164988029297347589538930040040602841942905794607203641843154272812889169498811457387523632161435488824240081927779939230482211792707095158929009268252232568466150353418037289123701472470527805913450753040226619980228993988036160327943136806592228421993387169457620139607692733261737981708766043023008545530845752130485658027552935664735516712296715321780818528729816828912814160353545239164696106619925006974452462343570378276841158892993932627040320921723524813192253269982712370144211280061714785897044389109289240174661916750640149151126901424682634799017696185033438212751923609902192053022612252730658403644906038224523599422336169490544340097271203729501510163281402730559850476043805662523277699341212435313247594277425013365325207609843867968539609509977737187229802090108154523445906558446209352369318730167934423793661488838044059379588207776159415605426780834014092717313969142941791223771955722445480295536766891937042109137507192420626607659396515280953728949815784304961056855896849701802738777227315084302678294052111002690196763638650648380869834980584865099840465131384039554967088296986443238423133106287488688405245805518493536594593523165547355154325645959828106511994223139748207772656480138711549971065519991634777802539359137584983937565924449578830458344083423689514771170795097158893919955331612215069774424561229792875064748373826012454981458786009582915155110004117785534606683919988722666770872164504316193423534077367122260397620580778923791227186674782285713714012601488504854628706652377554832146168110960804230120897020150023401749271373930947024796127940823470143888506278621916667291164350971641213492032326358256884849510588737359079800390210282378011054674899732915219185698602725890398067523712592611738485081775549972374272172113287588862365743369217114404316041156084548020425472456346800032817334819230808568900998691472733948833506838481873970340805214898760211799074476394014523422965227863685534947637662213759655202658625981538456179595734434104653251988051476478199369051419734314033984788454643594706433797062126441126876801393939827982414650775684841712120172962025483210163081614499881560628550700480359813102555098789631750333168578593197469719252782493923819908351372908472556431999506135234221205363607118630168974467988697240784506506288568153592681528823201351006372310749489672353491565161369784398463708198157805322507953455199029778670309419239136385571989306086903069971545815096404299724977895578705502125423408975933493532473352205224854042605052882610685192252769849404132283636526238517088748250849127160616655270608025450354286302656817444685386577415574220468159811382414688775752398458748140791084157956148138339221190496458280832291702064120510254283770232396619139425870490202565102680325046584965330239739706422543102681170109536009072099873725062159210341188613580494559629618454678785695901074367827718702564964658243476388386877796210658593551784792588837466024506730310511220985906835056666578451950969974028772973838007835722420643282330198180455199978801054985231055164453749323481480290716932498478291350361837608354216567339253209843789588521618305629728813997675709118974673593414370301136856779953567211669573803694372860888298614067079292460016938007106208525031213867958206325248610684679988253888071675680390572878245601788612190818958953005220593347651660286667406905668142184006828776326502953134308903434466626520262718044038004586293867053040094743084039452900496441467620140776062740505993904749475584833265780304624943334663023293664644987282449651208260135767615023739884541170421432350617991611669739801785204284929461916223722252784848178675916390252222289877604074863510553806742338367993617543157800924845782269334434862694642785934259297781189676636974977860804950599173543988849384013582401350866221377466502658502980071780447032556944617843753159638641361313627768472001695183929849538303221864876050823771600876093448790385261957380894294195714839154355182545386825668430231107501509287752155301803052615091282432535510604036794588360994941730285178089944584023176686207087882700777243946153318111821557343326473153904804474927627077233079952497246455999508790419107035887325347943461087153146248619888326779773770146040690999089914351389625980585442051370381846427172632180458109001425377618199042187493491137235222252991785894645070809257560654054798613374013710626679331779523552904536885004352870039532673094609314201283368732326309420874864640619975932100719167398633991003124417749962046521260158282916974747743911808456808561519084290623364331477527100263559485598564100290499935864097980131088816410545329133279091882905685911342253484935134322358619245034404493290546199074341792688046944911972142252364344517405954086691895440209479515456553312616752830568570970643357097941766419184617466410258689118291496446507492840255945773989721390868096878880265440226474348224876760908951598830679697365106032949634066735464149516027904268607248705457180601964464286187764472701392349230947969745234192392982129225432171830885383534745425370144835817907832521652201857083091154719105783451958805211978272102908153491424362980926598111904084783925023040189196271236626120446692299759231934897748054820070845584561894773477099737281042117849144275972792738188754471827272625354385754864518745009921429171662003216941711900521897132844366977307797945226564177556932624205759052186482889016002495377213244731692956051123354382586617701560443130106662590337867300593747507392676448491023847088012669429479010416187921651272286121366098495189006896458392282655018924310507486805620261919726790578287677560544341381864486376318560447729232929781358510259087190203059311819989251925016380288503171099405887338588610664015264040849727469034492926646896459244413707389763626611493312524391073178759530400143612672596926314221669421184284471278869298873958084660884291612548312648765416394632905876122401465888405973040254426826784913500662918925957483214743856848857247833926654401299726277642361159844403849222391250241156338492800078367336462165207097967784611235500739990871586533064112765737877741458778574513259184262676584835788209559662661625264303003289714436367128465808953995951746498418590358174077011768216873649325952121592594685590081438961329013020251313864756866013743274740670101151545821128621226465259004031183748044861756446663525814541990446532636115216122411441721588443884417904138260967503673044662408050601013941252310678657199290611144878746786352958229915644039460662327302571092558475385538566120505662348071221286085409340648802280733717713707831636665304606379227758449295521610478626194021779691308442946650352982571398428129607503566672721464321286067874663513077332385434478425144366009038232198114147739420981810216728972491345413681642987321819566794815167876842538232543346613509428821884155585468401615619883120961180127447809809827287506577172411106752353387518492206837523271923637962086910891675963129728539736756784740444384375185358203340081621779557233593337054960621976444448186530049040809229726429676456473798444251167557941033987913670439238028083269373760930811607304128892342831033580899829794694803980923999452546651716764137291440630612652805874568176154372139874176932532710240108918996064047987665289794354954954277976907993449985277706341454430632715055663146251057824761180574045526750872982951068192138484875498077312653219113181289066904886478765127902891157775486058242811434616200392613196813369916118816552955789201191349565228923553113270296436105904046658331338790599142280162621856356931884589932301506325001550341553374946703770551513675670258508059385313765422663338921252630288957698535563409355217203430815190601409661060944888503798121343831315236878076866079324524219433821007875880153219551595462905618859148754770387478203421294029414751953346200367910193754926009975297962270394623957907425843366618813075153078907267539805738892234849650095202750835947416435810017370124033290813556576620263576541193392725925226965241643812001012060345373427370732603126234777790258967740917513177603803623475007295528800093319879161773901842353778866836141053072737847880899188765902041314460338178312982703575424900523051639108460396794136275900024525040879031028145260367629387470960019602676606869854248558389744675619140383956180611748883877668433343020603225937440851635533639657637725784062717876265956476151056963442238643895765338383604965563253603962128852953894221686049354376820306932777830747977567271286570339985334926805866978640700329482657226257254480987658717902010855153876963265434033707477461576552436139962511295049743231271474430360015173931928553118724661539599394161257183995427955996478072088524919175558159968991036556338793573701595120893276290753420292924842108011096228004176971213790740339655312307686580155260682284831470864792602215757501287399632912979583601116894048623146847795972787240919761639050374467726230527428077062875783581201884199523046980778771565698825572606419380210741249727842491126555358832576898704373889701234478163152775428162596370508829012097006947088989087369127897582079093534598863646405849572419738494886187831556275797551761403452151436659600585020828779753660003885888068540999717850173141295132073211624231913143661727812641828920245873188429391630427292740127749489762214521485032842623068134345526562381865826987483109008360775104053873173428331524647633093653743871588315593525007514074000223903157613771957935818516934342803331956836671419044502200577541319017006399995373948238740573401808125299510872684244384756857768143449631544520022091626390350038416629647559141648938317337984568243809095893223862434259063532865624969729363588072056629665304154608563232584935821743349597262388856090212553014700014903463048060942481185291540741103387317968697544920817897546416540189994677974381808061880200326161490795683861230831241005169624547992444747822003689644728544666231234632041455005298271014808137711838101981749996751515746838580020836137467145117429684233182421345321852368473199013634790430716086086354666058900250244803050685504140035098234811816149776452282286751376161277013461465857402284577093519746302529506658501326344440767825389896331113602483510466325494894623498218303536318716726641860418070447051841650600807699439065801191399362251960305593798524983970235622505000217748059862546219942919250814292839440199574554183448465920040103796649313821581739533193366989910216704783512241863418069314582059997430378450226408130483688993778536468245551544864818543348724954651776298957061457010246486831154534816733933122739468792426820866501089425205357611512119299085011386758861215546745564458655115580408752054427344646749588011283358436181220488782132551867754673831531700725685194641909942710065393694170094168493758474508175790202945493944196253909590384522544668951503077224279933295509353660876074762246805058412332182369643004999826999598963731976787711929625215992396863637492850354462871447524820929839921036204070250215752395083691933443204180343459291165455346343265879186842414541456216389322231436683257654217061480970603838483868894441094008447250478665918245452185267649314582581516928500526635271849678875913294394789962683792730908858235586510779749271550794071897568846197532940539740722364365723132796959515978895390487737737804383908357298878125619456930220509301429079885026321770587592485334914414802437497732609808495505150776817250871050111365010031881848542649551423525986418018699137141038485174278792112820244638125545680188225472588951074456340348281776657281302546803791887458557137777172378348086902563711327484704421088684752929655954583036530665424871341519239932195276657199956836220213861257732673338577655570328195258720470391939053879701943495517835531659017859948017052009876605162056178666223707990613102890248312174289935393369608333666691395304722244638817343447672373061732044902978908581209503520556757546784097551346303023454999610831730057646492237231292107897854664405565899527503035262174193376698779293936209339365603632648454506029571326942721542755260136877611709647213584772633624642159465635602434786201490794401027983448915814870455599543752706888413552107345165592696805740809170255960259235544455487315728770049852295533216263886648607808909159576299466612712968793292935971525579751160220726163771945055074656658940954608966406401994318766272263909941492863012126603178032947031310837060956359982341657711324775744574730692409704951026900586667538002637661010527695704393631240974911230455673947307894636096763950071856732675377336312854170804508685995897165811880707377388029447638706325503128078116659502546716011397843166395447869548904267793139893442223871321270880385414083050447415871487428478336830807744418527022746894416192750143884689255171558234259569218792044652348873510706357006671727422088382950819184831534605776132829358162423471773503913942108865277762065080681915501736605527281658368701412138491023150567641535210325710524315202044141188362745744393850090054341659365654792888718248428000143279874689433680114305109502306177670284823648155410727677684359750410271254496953723898260951271440424192238605345738248167308266903553818751123947446691073731507809876774353458923408871133647170880376941114606107273690221409427086089283598174160324036051482909951427295356082894425784509888580917682488463719543780181134877360109888540929699411651062741342396891992754456014369007752379630495001651950913859637823052107045474889703416753280333043127130176029185617853864015558051696062532135705369172331451363173798300241458006067460838312931786649990855603190482719484854520002064559225983017016066512133502027986355825109776833128811287454069024336258706545445703401807293886170118249814203707433783378488010207415823943481611841721144761722436505005028036537799869848742448300163051484681839446154903004677205089553854886713322941709486260888873368533031670760375019322635630036260370110807964442566688398488429220127540575544193855843819373075191950690663744673962841643107150970426104880353773619102881197699329093460692584416682753717476874791406385420927243185251460697554554314475561420514471803638873040675978591643514874354494751140474208392780368640724413337173238392386726375219852381544793476172050599051774605160959653508921639110912806279356455415693570536398424220363025034748789992220642303801830071274651718311884684303566738016307189220405651124731139984745150447300464637703070854203638066913744758186883076649110817662590820584360945705845845883170878981520739478329077625101769195613676802239158478436964773110926654228641326040925202269089294446263586879954251981266869685516603816560928592128702349811758918782302001948964618270019525428571817734908974202835142932931316016919323519280935232987223208996614144873144683996374586906849445807844060798398563937612778927245445278525884144020347637618734961356846796320335361756044347646891482475475943604214643385749462436279638233181769545695844580898247246558380012064758209249730434829256005091233725724100220461563793276204880281732520952033031454341256272198250963560071159122841936197441039796317695529040088867594072393717781990624572204707196214421019693244302442641401826277930015935175577557216270584565692670891371383048815466743416916960033750525972967935076226210378268182052075538958184799630774592886425993094240598678381294301314835695087750981175473689178258323043558948208530204832902939035805672232493943951723025639304806669537040219366728817168610876474075928550710117860846995699881523265480759870191100919710999731135123399964306063991832129520309330906994470108463920511196625008821631073095524463994248082887661589487416470778202204078788449313337500421242814720000761009985097129137268039881139037772237789242454592657068763768577509639912008641514508401933123148722952944824913398305490769994196544321477163189372032849553985837153044291454981327931411078741330396924069058873984125463480685265836330566520855859324077824900545939116544162848180351369816091332835525269553850442434189857175499184074705903431101336916670356471812955864256199857679372069087731386820229547237266095134299535545756914000933414426016549644131681006219423713458147718872079762419662649917104300837834341011215491111851104368805659747605443425252351195505735138138216067507103104328286792548044788318538471013187611069311059491303398221394235671273978129533298137934517668779791770177679435207742450826957718710242773527048127731597864266768182809119270931020220744048995476228140325410263773908508831354414055736818595084716692493280200123064857828763175574618237884278316770010142296468497639795356045483001541461016149559021290787582091427585901315694790167563304227055337999146162909967357231598283177293735489559978606579320562923003187865867683581357887881195044825170731070091161693347023716800061811763844272945644334596468057103474020756118985614926094017596524823383366911564646392663835102253011319771115237480830522729450155112644028467591994927567677549356316643135743937871803691309429849538216048710478914962963794202162734323934907311126200102724896177299436960654501851387520785308230767640278447027516246467888204294516431067891734724859870646367202152322505903915794519995144338815744297460078928651525775396080056732876809726345149644990872223003162875187382163491368968701346965680205672673616698265709188618913522900977800599752855665365776886886334783230262384993946177579050243064678813876355957198324512916969857489838507951456879439009082434156750846505296390143224687919757543613110018919311877734275381075856460389320442169402839923124758673407825962219247110927980189804337445789836711649811329786273817593102451351472898717100882072354565695672599465050492325254866599138813793215485642920210393233844835775709061500146150592014356677587822403688707079397489311791500642331801989615955084523307030297016948218264519467864391144643132284664838652950472717777090064305689453047455117566166334665469341325952558344238204607260886621743748597746489313948287293960631520672292220642063321397181543322440075609185750624276989688499377530413959041062179174761888237334233120807592061565429132549469849625193479919746372610019081040741508133950665843127311081708956622601268722649053109463990676233719136062614642804982110924164291472038591584588977694036797585323775211268883354370588508369930967643887963992740568300585878796244378141858000152797161673849829225546752488236706874503863500937715888275149817570803865970880382997361921909196381558838958325369115508091487908800598357483984224323750768990574495232629110165744668958168706419648261317740156869426796955075687661236054266438507922716012148266764585331659440749231281938602701741413008879740860729950608174729494541882511149650147734406664621316741325734197427986845159594404587601763783427985203542878104214402674244644286748774367238692686419426127673064170968700021640847107727719089129913871008324807443243307093777678599114696214351286222862231640139901623477916446575604188053209111580821852577916018577179284142193962618931667001773498174746874508279477515211182077733300056222554764635889659595694175876236828345194426265402121262837208998595269832209980106314609056495315276937880954584450369791332800166390484882030144064350115556648156272796109531556814262923758549065641819215158153758564585376304705679769476825510026060836721380209315918153048442550516593895048468732733432509229461383893688893491424054967005815342969040103582470597223921393917245346332129228227486928135969130134000103527637595934562680517994731330725411728900725946793812301781237053156644828627831869232577467637183150994004727994783028872351315992872724248085025307574617117772882816692962713052732259428129555776750816581385749811883523776751166956189614646497689961936555398817147345310911994258023169328254227879365318674417867899027189724316841492167376827501985085632243251160348256271664105565973860676446945301365470845930747727814306840990435964966656018139300515641564926936607366874320321909534865258072613154258824010327375235308512940757472754123892953389301579758335837341524864298655278312505200611903052561211417602166931615261097942708367572925377294929102337578131866976514597409947705232469681104895289129030476906485526705540269370837390984002279569957971364780705044455424198593821013526456014843811702789646764640127829242721530180097334317443414298442904671020968461180030549273448048295642363758532816820626565801573708941774403169286396321166313083223370642455179054920058253217699655446356586925559128757608752647309095687898172848963938749043520641030008941653322225751365332895126586746255205001167776264462666515397324112189852645948749921183087129294866651797927011617490925453451268492973745934761299995239140302837794299065858487415212538178100512494002074795104491110482828487292508808855966563978939481144776746333388036537932572826814567950419805489837566324772658845159883187143547235313430076095984315658633366945800704143542472033999735534306765889813382203862685619085673049133576833647200235166245512342777990188122846850620571960632483891182735796396063220579535294271069036035691033567194699557398000303549433833711645390879706048581275236872541508292240132666455960526670263250515771534683002573223744388299536898326791955972383977729745528155393759093159526001483873760714223418181838691959414509121348203633526164790270268507304911126038075708451117867146231914223403114728218915836909331001727918296607161686332001995255262295665582728538162693405114228426167041506495930861465707660486129740464549728357154059712809589967185033142029848512673467074090767977896636945939738722973980580156381538687075919296867968856016419136679389926790191195289126416817674130481882679811814268399835337459932099386398707772346550801946085773842719871840603657963199614538069280549046435538573571373000454743716679242655768066571368473602960956316831034068641763043521156389006861503645145507593755723515732458395950964022869803329100761557457279182562393543869450196943859463537458370740043407881728002423336434081957204601883746647961424976397638034058847942869886046096990877551673517374921027095870831803344591111820845985476933873343873840405044518411223659839248698113493440948893097466436079383630085846469226340241193667673026252757995423474520840047181670975226882294231039920111019341590618040910340961954110609429704049567706924999184397641971685955484038680641346143890051746120650672344708874235051557144892665660148419024492595737002910137359500339904528824965905392102036246127384535251793674057078412905867143930596983846865382159726766109656623668612718176420800002939477857000727703893875056489607378512871129670725369319106596147833268514009851152225680406526018822722713105762700597592500049027684904575621482056947433131065911012565593465140544191376179288077788731420054913088592827307855523179865638045078172701599958195126360756043509555080316710192772755574611173814004449103081152315310122291890444003159520214432515717631544039230831852343342540293543154902144272663605287215232316048362575759717080495782350871236162087683445018617458095482865315716044185728829323789487886984450444648354781689128296636950979224604696470678554095154955161952615923104710228098583792304092294006882868223068059405082953809672965202803337572697011782197097802702996300317223298040002023663206357758107932290970721985272568855113495085844558855581785298961564292943601578656415058518731886043790067744431845982273759596167984419342058531467565107536336595226153228768521766564689455508813487074839388659204024841318281436260401742878156640637758048923792967954142792219600047713114877563025096730138955379407935516534683220934121992155518127563426915087453320613514271684258766025467297241290693682443320626829968713770194569985207096104064014128239512611051175279909179427419308519967473282993437160070557736648833235992438676620788581134296727030478261332658264860483437610275072534239008167230351809869737911788067031170470737997939355337893522093774156261109371863405571155253581350642977623272955501008343938368443755683075119687514759051563530228487249087868008681925545874225610317302872583809271560222074848484439880501551381919781707696208423175404989648489177880138897023231319092192100336406380425718431694279672244032921236456499693493831963284597622875679833185212406077524868568634978982658845916118264562189076323807337656552256395983069188410405093873773625309219542322460826358755010497717407989827545146823796660923008252420726663109159415834516984271109861714123833605126380474208147217777419273497655028447751014295539039260636747535170691809894241839281271478264244538164683816192862801971630453978384961212178910432783647985938236568319116250234905315569396792986082523653154009867401330480041123704437646065621113208602627701267416404115233043723836106287946260735022069382472871319365889202951099424721991825636411624386848326377059642892503003517016838230034554569935666037702248111985558495850386707662432371788429972778428483086180026593920701306908789975098903206794375236124312899355363018180393117665375601407893644093672297690841621545989597205343805667521955253190680005550114004528192363630825193959962881287287047648258142810989558877335519094000367260497792161686607054939071851299756550751814034819084336156048667990023376960562000376913395733132992434364727536611534270969989125076252861266004614951425028475742577800834090767334842490663599050045679078689775680611287887463997342225910534206742953702058574320307060213673154016941429872853172070135815938011601425807685311059939758372585228351627757758467905789318160697129692040712702585951099427012189338365900860451408356673054963583988578440760542838942297621873508139371403719192674333223107309473502013056349051242569764384246748856467221372088121245572544011413189545004428950501390501538655579149740325001690253121867504275023196954930734389805354025017212029720431382741054783020143372165382938761941685810617968406581494915044467309699651752694229029527603275639356299336264982795873005312269058978222295614860161281005985456568549975236773221846903573418179354474033469979264564992718800051907486011236964845274425381931890138085386337379574387447395478696435990669648159816891709344014416199909493895297477881054051076376339990141993043501733614527658668387974722727126217454980354785509893992539596476257761676089167008057435108855959256174154684954954426230824365300779317291217137202800043827527136858591023930979927582643606483109055455232887407664927036173470360634746602709047268761652571578069880750527414375684043210062771825264126391322352046027647260415750347540319275129220727553947040254168178016641774579135179012264376429342168788537281208104576590835361418522822792918572484486971102024721220984218149035937083023584150585568460846275001292679556564543225157606281099837542951308731609805899255333240326473374379086400521596295340279958190638988107145580977648378397062412987081440812730378450360569149802930579226566460550840553256918674665240643675378759447161371583945816124653339854194755391552361643318693153586830159807786531419513862748725714860925053303422717849082293047518437069842523180394424075281289173418436304078583475352101108125316090095760196180001336528914350279710021607926839035947526428898068957763301265468986364368798124328130119684238471894301536075251107180179516469831550726759821452995394425602370339212021720413645659723020546681729282397839546777715720777970532406843895280622729764607724322794498323133908001344713668613567982007483087997240266113712251334260890964007438037150545355122340348443415289739460974321925664290212327883014909506815987838645582672639348752363758670355626732940792511792861885713308358220100374278783297601206801728487419745262760388868130460871978244630604797237125934963151880970263817938105223378874694372329607928199929505249870230206645248710596356598848629715452935370381433405678743093101631547979037760582833060443252415651402520397050766399734976929941292060970745126873277818556853481392543489083667307271017391386792651746018038996523634555661720903885803375056222099209203060036976281472726563980059747425837391851688641489501861316431052831139945558845233607896648969313340625758977897229745282937897042181307208900911155010825126962815958072152318004014705979012861052870208981337154290509136040145602626174773640002758269145007865398530884023630407365024286455344453305581740980474034594383356822636922702129828687335405655405412952995040478467139967437122061662540228733696777337292659414075436179533375826058305650427948066937446487086594152732645178803887923697963698332930133118600658949277319445000516515811550538190336627067106103587620574248452734601182198034197410356084453952187508221233441083499051127749907095724480870606700479076652242914088223872006127587113508140262562684112460918579578173126834621273950267698766160822129119036829188250273942799173851169074073263160188186569203906231420384038298719357062387872951976754485182404709047892295343328993273247814835421135611671938752885892884732088324812007540677247320919279778743265686730256981453119953253291006779788118243379119947362591923842558895195076049738876360855696284922429530846460148922145159066123264090204668988658812178863935566105533153511902797311934616715336741130056798767150006672367824865341978004375668971700045995757467237842799801347828234342654645658745035848526075093192933723383461167624122307650887375970142341333970336885308906232350015102112912633631972379236854369011518482142305108686847116559900303304924102245953803961425183940332464507281423295011532071347501360756261690353674518799268973043339192987144882332958526237677660964229420778595796913202475579465902401265027198673967632804961688212793211308959130892823788641972357802079111110837480832488033648559463678448110753201670017458657015629756772280430971658675505058118081828199458353412086506245454646027408102563804260636392897296257210004704548837829598592015129463986428033422105638031141415461536979293913846094618064255781519280313741241893249736070292824892974179750957729232972254320810573009602371595593022264086319275778265981763811932396247140667521660535469774328897856274288884615077786971023174302754123278522241801417571626235795282101136052357550337198153086055117680215012587783517326583968590252480188618747951069229987139467161819095935428564072509947912232162360407230008694001464272757631346610355596819688409210269918369115930789839798360515690866814581538287993744430848632271305820426452865869576704791091179528720883453634658329277251973225398375624986435406646815336889669532921294211922963276860993794034910630153648310796317404729750433326492789250317017462428990705324093338809772594689626192817185737831226972044632757557484414058159329994346469121073721111461106372218562685398758785056236241728998010394976287056450035772115583245618283660623783957257628907320585420139350086183959992047939692873111533816021420848085141135350002161626702257521538946976855540600859352313626709245190299495789867816207751236070418223316600175438335423611768021486473100467713251333689053195893886492433008108875332888787969125688676522499239213412215231591545953947164738088070292606249518544715450574193649943992561808545030366076029870172579498744596612576853713422296524676315985571189268249424880733514028034177526141891289304448442843754057139867996986265069636797284927928287447275574225133875879056651289311007207563042984510715535515912497217113129872471961731451872211395170176860895409154583416868081895018300545945839331024596109989015074089822076707425816653814601137206530326089726931865068630658708483576130367981602805062057668776784484302756028320579792325480664322449411755295014586044432862216963240051721347801132328375691657376487494690385137164153879206974053636936815379000244689622064245059566962452396876245764195721323530300675213379137868120648493018359882277750388086859252372144806383844362925108228876757525209483763706641151036497640895442382340982866801335249126124430520870741047461144623815795118616883003511539996622015011193723841217469699539465264489893252858996286059224976505599718354739151756520681030003592904525301226296074624835210505593267761125948160637828408158842396177517502303924658285906306656462900870327147927483017498484526839405095631680573463061458200202913515631193811758742795700750107494293177812447479373364070007137980033087166578778840300854812343407368565734426967978638785276391610817625630015131820742302217439820763394789338693585453647929460527914062396236971456257162865347619213135098994853135076896650352206771255268404550714844285332533711333856456556957193104899212096415849291765086412985691599327222411887454580066335668696859784409752411304928285372456656993041254254612696682726926683775946270056069326461174776643097941420501683561234528968853109871850258585231889138882983242727741724284864430105996665057335424879640763872141060839063679197876631447708675072595135124318409903447195855360915130267735170811908236826242815702312285025642498414901936214444805027979459314940642690582983502613087336172131363481578347085273659696154220367677500289902770627971901587603270367825128037854111225422756227359764614269109488226952738671875270496184427821020840086160489418831829329407469371008319067297471677514009125683845740741264412731691129246342746122020348384846123533533814838726285986692967922203718674451727027958154658540465866134870358768167340305851119990362965664417190216715983245658348928207191037360014074976433334172699290081509969758343488243189150142355845763635866563478587081992982827001889759427432509279501771166894623829232184417450890796609862210913163649203749794847164703337852309660969417874387477368278854751133634898937878221155307939794656343066866653261922184276752805065806791309591230529379783638101161890229170325318002705712929226930511950701896001086822910320468767006705305735874382757089824186076736793971355976214178035206163824936491533583909682160114783979213930912558021571396324057624345627777134842744007292113095233094481771393604864210704629626353937481532760306986883804292765561203968723266853013092972076976162890007783443827407294219899354890776153568132182766337136708193466149938514419192263175422688138682985721283358883456499769411508145779755188640024553532273073192730731220273770101256370233749431405445608702304656684663584266761846662879654844976394175018252410407514931169643117366651930503575633010069872020023911992237086678919183865116371154036709471872826951545381956236254427999867620641926845741999045062850694113622351859293187522552553096564872040222246666777001772644774551992235547158731100409292160514250153914095666385242969334771078129904314882828110924664944211946434840818979284812751679403596597157881926583744479890502828544631730348703880122573356369236841561301240066422971852789803287253098787711768394427221783141040074307286436334799440674522689076013183815923987601517491379683340204761496258301465046137696873071422375852598702774011653034643004998384419877216376368638782752158669946470294229645358182382182126088884548514066196311523866420661012284666340300945328990454239439629943301916731880709940205812263259158562727225060079525562445587297351749533019023536302106574039608474965967562159622649320824481378654878453113790841630348858513500713156983947872713800846939507275084421634589490884086063882916188634075508001502991809383017751042006403538445744362758192304978478782982813642036368450639842312131153239787948502221156394802977791284754003899371191565599532582616427956236634158214603027704938871554401900762612662497805041276579160854574401474367340264475286000847587093875754053287785631329072035462713518318061536001518251140514312130589631818743520808009054701001368454927551202098813801721819465501495664572091809166161462356321455427592382314660795196187842480065271423483333087604337235123070431024792421074498893938839403641824745525985153581949898725674782976533730358553019023487117079830618608490505822204252017539114125763594137154178506895468175971340585421935764954392936110080000854082015295469016392890809313367232773744934452249733305463461180746219923415282569490142899123326435387504501873988134352668365034778785754681880907640822838400167887576262820472639998377232057707820121757745350167262771760758826492684514559670287225097523120517617640759114282120173219237546772012721650223116204351143285776593051630571146832901314075801089562281432613804294987953161843157102154278640739917717150264769132788903065860265671164655945937722474955546136849363012673889646236299202989666661010830013961444013367487323298433483115953026406402851070010771458966806255592880028779054922599288373004945446573357472903523028964507343692357359799061212972238284141269810355829290733743815793124456541258862656630140285428550652127533744112055594951414636510714738316129376589140244710159841824519368323621099702387596442121123639865995512794108026860572131430639683725719837488542646051615483467779683978478694653341658719492361061942820891314479917622925171140262392556502668699010346017223447609971159683164731661227294962825107875409233394389087159147221935589676206534837151656127620344551951659513557752863949772671988465248586053305893110991785407992931257620865622137988682427653355746094002180962148913202937699002308632191946027069241897077388822067977994279878125952463039600534796478033008147035786263712911761722758670925599333989049355193436495815838961773603482824613911179345976787583950236419049504676286745517046490156661064177580523738553402478109973809758997679307038732161525011605174688905089843719500740704616381902898925404917698165480349335878511982063829380107408041321367856755666720641345432380875446302260811879664828277207879780342925340054600588758875883346843875965456998296970465332287526110002859831487143082214023361787460376328946985166564603639022107548746819863829335283559661075223128744123504810182022028880329267450682584966785382400821312279955723087633219852242656199097833389483522076230675939168252356427725780868557465206020201882572626261940603445715434236006716003856930480398836065672002612129359399454046251670943099776228367095735921359162462819196481297817386988959991357101133827953752736603213087312463619174540801834905309838754931916898748809967920865807060324568952006777067062904583079089592831978941950933081760779703177590094606275305969527488765320254069411622907614244938553517605412628023690952120670612687202864019177519750170671225936490723716844090895722153891476352596036236397120037659128612945819922600213422404287627651758133502425394665710767830675539780895271502431969526466499794178678192447618320229678630639651734406649408119497451949589406135781106752825885850130107662385432352451859489080320648950001175622840875577905870969496983695732285400568261879797265014010976236257023043524958724042905633968896171049108146464562185234471685849675134339807457882510685885757147499122378808052567794514036766013791863571518441580249978897490896397811724292181784492990608084945438892815479911433045361069549683935254434914597547331711621343465934061663064387218457107018548230412255862967446403049447139379612183073896591874447720976927287921102946414062094923067357146009368983876998572832135826963742953689086982470510570528573204028348877135145905839850357356771850525814234718424390294562320693702904222376721522173347253955941798019412806505069544435407454669997791353393847625835268719316624583498129058706421890392075746201082155480643480881722223816389888483012768682742491927275910145666146760396726926118024835920910725012249525656660949413467802726350167713604966929178329416173710683554913350523408243455060915694488512131900836742483086012077867653067421695837665136690904977131268405571077592191567938617570957023303032842441316668205976341028949638768240326249400198920159710658467171868667204646276083732388316866191547934477323296693856391699784033308105140306483854742540679539857463746260076308682542130713057401916301908276723783371199669942748047267134502913894608574011088160358864860405851877347125267140439691970294150559201567656410646148610882998171497824399428815444576221358125869300546650424729616549444276561581587622734634424715180673310682648051040213070733382640339422220000567161186320147470750049926707307670351748142166190118492340831178168343011977394884079965751370801363935357331899684924740384074874112207169340613369786877477451292633718408585533022568134892870002946771082193717411668527017045441714149178530900767332377570343495491003750250650828105489757792478751178321557920063244401705269534425432687384910189581824897240281025634738164003248829417070787511631622904583757966408173746193318899335868114819465396440132522072224339869802677306851047220380584396569337300568003129165206795305472715243032119763516454434563372232686442067632866333476268961834428525888950389179403837611566183271004869400896086657872122561347882218604213216524509405022401711587262814368783137941372843601718755687270081821864077717717919632710186366958444505057925691544978095974488923780170054852957019917722452473158691750720751628679617702060789429065051065404528707119246995519043368843978810060643178066785593250309393288349630536892280347744093744261135997903668262322682971151138400682842165855430732593882764597147586759640767030167295418894959153198786241733107979209627757491880059875321880251957629028818433089595233757035338629870196232387080514033142490425427016415111975583686355213727654859121463338643776941557969614605685635135601995926456245945269533983058108039038048106752563092746842306118677840706863838178016584890017520956547682593865833158401874711990443374588765151659802484965598967728169666798074870820537184316466719283768305220639443821926230174141188098396669176528632171521528679941590805687781821906904530359401281354261030728438391979453994135356068578755424360192851371239296400653704577814360411492273077343176497635328431576521507763951169505573103475316319792821340213404610815919594209599423428740964928257205768982418518765213031031856070680979849764636539699018775628510930276095394344888060962572185602538713558907288097690395591153156878991102516877376438118618601642063986987204408716285455688337685733327746744192835485313363775062419709976604225364237057031390537018336062121796379912245461076808577715151165522237536006023817958012623061213203847079432851146340314344448895869633284962386834694097941276778353658153915535368093100423121308169785644082895199875396558201599443308276544998359729810295443473016093142801226328831769716243190951727325963361218400970880907154517901231531495625516912335913358758782996080667514679527360057445819792356367917474782248452975435715353228333979854179848076850132501741931832530683300924679442993442454037026125060300372267318261317614438193674357352922411198812431030135579633555449574843891970393008631070817108168339014425869939651667524299365665551093226957698644771634606582809420301013960841882785326496483542376972010697227579501612404135478078834353290374060238412645497397225911426379406353437082183041561344112558921086524873611783309480017899146231394799316337685222109191327157207571538150915226970841677261671425913952879991376789248579494126756218772744305339852735438686299724446459985668216933292313650913529172681818616558285190179567960965374827422753940638781368928092136459161936311770972628979167681055211982417236060373620682059366933356870141565086039914444498971656324950472832001953661694482236883028689885708635824534559657484205473900792631735360496495296231728812429878158976292073268933037158241477462799136401592361113151940055158036084035538760820363520431896682972346034706001548837710212725522056394140258922229656553558926758248318161290403642902670095397030475752566707878224937230302849905532002678197705339304840793425944253084089935252579355852206645225414705589462358540762666843015391007045335352435515464502086965023629651732452984999944906808629518348764940859313177974359711231249243382177222849001622673752164274457489356262670210125823984009153889269648665552708068944726069563901434007486317704761984148094153198288132372820947617115243114145014030633990304680971021545022252424443621873642576432336949458200703259649221329222796374287992995181171895010807037370236298956923195564537298240435129730942062609106453966059886303152487516849579994642518896445679676331782888024062070311598660903406722007829129955421504537923497876246639147739938289565589018427835400639237956348048089518859051476129637681664636781472090316676715263428846495326502084221251216092268063466201615392361363097218280404830663041703970027870979921216819880069463258482575729146975715298330798435929134416205242440180063035026996327269794301183698183927963380989476816386211616088280735631558342312976832167361550117595913140879315287425273463530671206144024767476230211454986871640365200426563079944036174083246584030763852790615830158649148971760579997324370617143974239591576921178965033689869384560858677579908776411273559245115565093766124836401986430970888041945169018036310497416564820078342430452680636007525045113084193813839942631073404205929394827871181621053025160048673261785644928404447044460793154475439453737971386003158051288945636060628085986716852175920506611345676935931635464929693025932448577423872459637609718537051789015155932516538143563847505391451906643767123413247033205351236329515770006658046785083495115495321572001078012955025190886609025667062913718827994368337418511717050228990890278652295289072359565452017242403901465924508091569981231380785490753907619587799075151134739850888170050260088345969386794721454979232948338753273545114301017878832021412779268139725697019429337799424825951375277972878330956783905969470986254247061169853887059155641356195227182897459698150205570301630772946081377255603117262719082986363966356205746801651354437125331992293858946771343317525946038609797432043301515789064888796247513593483580729491494788132633295780399008376464673885891654755720540987181353630526871283596994392964065965359790990141661270545748527593258656058536549279421572127134114688074382930552843449773195682546540352972518207295562643337092048728548542664725525362577284643496549035733191756087836492310471808143731749621231358367302678583768332808096515225391533379589897409481133774962784330328453958232155656589288083970534705134622045666961376911591453396011249230285239110822264947584925899268437156889560604751451410134212881576552085212806609964340512552968437742104420183461045213121943657517387060347369986141766562364385996134480996524139099160946806767748686210239954224812412233301010210838334396969354694877987583283633679316179442030437631456454626693181707599998598573882721438132009510299386225710691280870002928559505319552672732608321520753043188103358977454678546636065482516122579518096308913325172194555833631722764794661211959977159356175023563784293433670969118647560494675086706191725963547048656991095094325913189362529887058183325135546223700655332138647686742712035709235008707547501161902504751969095604985053715810607568996912164233931024936648425183437913800891348467684567022784368467606371249282605540342233782109209957465624888581774664562841589352714371465853154183503415126144626538572698048275049856198315901371441418107824844317760562822337359478233122885696899779917664044613437139414319874213026647091989139057527575582249045439377615926507016360009481982229837359028005093783296278458352669793384056964199997534815881014487316593251869382095146473349789878200749916641886566059473607732963487893329840210270750518644815342427143485555121318023411540933162891503067363050346100068036442920110165598424211512112074975674888376047867409927671713380479836924372281524878213089894122112142771684123418157091922025460914418731001865035041534359904414994615108454144666687541081220045324869709849812922310582075312056415304494900693194223840977502154797729248519108916965197730629104181314448314239664214703990383713328744187021471394164771644361886893476101761386528396392849380755515599656867134013682880698235597255539017269314856715046883627719577261386742494901180314332143103604715213756136526632804845374361331975075656246314101261027399874774213550896509012622556476791865294572454711710730913139153221283470549681181060240301327002034852527338772328872690073446628904540278162659063370134752531894434365240886531074780423405592745390982749390358943170081480617791924831140225320959488460291012899931498376185304874631409607363901937591633641472613197104276656729755590308254280309006359638208827150588764047220790192790858835337141785580770142924514649662602241003546184987853213970885044544426842221983962653961166346891776930535207122779240297761628444476220689924793523061272657976189328154469011241463998157813676575463435457831376409824349703722038895877398281892197053687498873314599534513060112091522119477964682022802116619190767238472505363588713289591262187131097335449292534976399725140411626617156076807274455192094697952712180983675195359726319147202877038628350105535752495832599983253259234941805844963376470406622855319846365879866579630137184322245287553735159153949180432688821603362286157187307429616004049894362745045144113403854638389115315473476959055393931097811041438707594275958386883642161658587000897363949482006086327078002305650361619901601710244707720480363571116897073543880692858654707661633081749883794245678343404113845421617590916303678866574063623902690003878460670673998480955540036467965147580600288363594746143794824525796280096763384127642387755993274961649939806823873267244308156771170401906097059208217379884554679656804521003293391799686042411978870145467349661009738971028065474032745267165503837930818777731203343971975659615528148922975081734080111816596318366626363469162468507414573237643274517695786587310874309085910000342669814114297639208641035938746494547393748985311409596504532918165903753597982484073304613709677433457011214044306859245941274254867662664577194137251680235754602419619830087121919719857746549570133237540421563173917092297931398345357152594471625761712679717100649442771801568118631884457706754733369476124867955747832155375269089200938230939809237319743094885863617886458980083168067626975974572219620252087288650400398020112061446382819390227076204621091828398589400358157635315604976245361513877024497627015445996052388829062216037082869896300492860328614003355524616971387900209651336366336611592358476063228370588261988095264100656654897459986185747259858263652240451661477587510717059162669345637665119971220433165556489711512606938733006890389013417659336279614709289034469791660307378313366871387284059017997768958736795772695272535578347526095608559960855837694650114116691352261554630790789323235346147116037013172371099400673847810873420124997506988461374306320741133418042102939312753907709981024306179210931793461176165489000144115656957418372305408498057187681720996078805701057689117063984440274955519364052075062521169950387028787887291697523249205581664029302836224248818726762530231214714055400355345584587579319226614813109517108442443167064649072717375672373414020020133706902529298681404275875107925429814901614216094048886002776955744563631136087654153230989142261024839445564534180496006515592968033601661010204063331494286284525080077409911877961616217721337708119744339066892001835859402613434424335393179115503816368304281666650595442832532381695480174620947309975595002846543054026508029737915231068238446298626509733507486127200471186063273770405413154860522896128916546202976526777730784549591235365444841436657898568462822756438285470268578237211099806533348860400942972000425885122199318762758825445338589509139847003540435890227812198572034519908632626343647717592431199085125225713637167435374207685122313991823301421407316879516847007315749414103962692591933588014924859616072280689062587027682252301983257793125102906099124232156114756306232178256270138207698552156127267524422494836051171570399165095948701509950662240592257486197494662480686772780658239542951758642694892165253415298279674113966724750542355024603035332889278889264362335665556067732202128081232516722706782290712579954306822817534470230376644102855478961772169767280053119860884798496737696967660916315276303276458802686141734803216220717952524239483744159427398623584002721860742983280876536424078772019956352552370241757540886393271498261640473741734477557748768253860979778980281110928012371917766974387491349308069722903120985409556643613238405561287122053909285815907876935390497690608626895015995246942197863677447495793568080206903569926699224130785161935345458802257492254234393295894424429729568029956382247230544098403649271377839859380389198951973172505921419975059455582486486058909617084910206651831760970717908491041073379409621996529760374677738064265537775647341891628353400770705198621541083557758976844046050834231411951463873649137121466109691413648993760330933907675330384241016659715355851607875254369126259246075203098488988812839110746057380335213889472947265328187906752234692898784112662901992911772375070824560272227784873651137394857585872038897283876230607263396460288072336842364503955786573393520599484817330352974166990928433476165540365711611742132419011139768877309931293759315181290343323243613124887868169594699854236348799182619875917655463518716539798862734062448662880157891281505301015460296875701366756004330748103001255964623259042711605754412163629919748860744083430724323850701824078203534939380747809433390404721358184923867385147401148880869810274293535909741743005986699696650109047423454109884250879734347724045177702387161161026732670849902743908453659209887236660806161924780126498483498780676801869589311011934468952953716554228099806684984377420361506077967897188508181241948003846997008299862920632217300258010447002765844268758384624387660075811754157811439440358328880095276312435644002361077233975486695664551380966294163416696465651083534034172741271150845706431521020858926351848845635100606207633393456806953843010878757041304389732008167279810418542532314680173071431493262910978341789074723708695595333679381568782861335878813085043431628139602067799241799121748750365528567189466749137404150833519950883376195489047635624345716177986569357820548553335027919766667779997478236609440715640530343238663072500888576196285071094258413306498977149475385256163184765244546889432210092709052355667157395288944069288702313551608473186778644588116228501370927291411118200825564283812062680264992850350139915405357588155550463458534188829196336819855135245054815681729845635893102533805423496339346903954109149008029490740193406754181936804078903037434503323149996810110894342495136500577106064444782036358914956332974385613728771962409186627195840769123852779979607387008021010388789103556959173205205734920026057378862699855076288952608142868294926885326323346705415544747494142698141194807008617930697146634323082004411924449085504141630173180330283827204705895189082218426453144307867043458888942822645541937705994453273893258198591792889422906904338777621201722538298025195421646944708992043136393053561458969182702255544627374209873260449126918329070505387045400428187235766929609382650437589274907525621996191273918165918548845717806817696534207818201100895567470541316827117301829001914619927134760113437415468058365153063493422401209042559666627662802139831017224438258263086276541373361665952275388857883099385302353522231872201014966624246032208059835626856072208018863986621013376821695536919072353402504016324586971940046298557027920138587122717625688248530903475630445873288917808841210849536058330509287467879887132075711275689499827615122395584660572829148225890802248025220919561722040614521083651273827983751613913777062334215805123248664530670389597645928384679618860640541913151367433545530545356897605705222209842651969609704716814076735684145215607256319951586291005257020066339447801498826134809587286245106954193548369525470726377545424312983000449565252686281839194832777041014940101433203461254208989463532906245277054477710712016434925854109331515563446963356311571068814920207262679765043436717475726333471091974545111187430150000084990344515447324959005428284788818990820546964870407883022582425996806621471856686334579545199394077495003024990707468497863872051076213127398045219590022636235795065934538594898447053840316770792600981446073771101765058785940977224004887484996038646487873160084167326964340716807563865137328417336511060980249418298497091654581926061654748142741399798816565764551075453233815404877826496187582258136782974418959268091510940597532057106195155425348343747082211372446317630552859506171220160582514573308186138076431727451044172826451940944140358832229456340008140732257447345559381170423426415573061268561573745065861322534960470275701917600140789513901047459745516762202786343558161122789491861273963899103948397913061992768789359071157286872072454550904252271020848959812617213783760327929731157252981046330429565132310534080503747830519711177730149544719090533346502846879245433632643867131006567835769808211453583595145096788934800707152029507123682131886889045588051243642988315850681664322300635709555075887211132258270612026990550084578760765649905993671638565389240125858195589799614214089132893977608770072133033953759608913930819755261637976740889646329806353945175531500187330357207621105991919981648348730251755363192543340795117865182587822026757129394704396109003928718534626269847778194499376071538329979271910286813728123617556689931186107924087043965976607651114180239032318831189346122186676385231126881573889571730742813272602257361365583647451505550734438359881922313078534371137268477991838780790277876688182539131940762904941151296332232204936200843290779051768595022802459478715566294139173808552243532660911011802961418913000353343122487871585475607887737952267459745096966394436071051594478612398456135901579280570975921337894722657820514452536130294590338056821994578893463025904129328917298827531253408070707937505811613645567536035808238784530223995829835774749460963268988889645630745800083288574939275218088939578695112011174551929685705446417520751243177848604483422679129775529312253636020251765213449727729387076703779213557887109041536326142752575361787131178521318862005679915104711096268348377204564216273299251994920999536874653954956625766153546397505837891437589472613281328971760224540471738193816734582071053690498554953500283777490721233578101707398711029295186050061153282581024797398890650480953334620687627053545982035609483861604405116235598478553114440524189397972594594559101716290673259986140186113028974456248555400907748849495224580041816666471791586190457871718397921379799712919034690054320262783237991097934273166516824579284289813226696431342494824658629832367107702725588073359788118803960490142529124604903578907439902373976591242735494381650535585447752921158373619782985509547833099714001151678478177842199183076158572468878653157089302010640749372070630520543778424612196473788535527042549395798415870000303143190413391813616642148513092639383500512358172367707611672850620085431365928308149568058148316106016978665620785718665888003018431023219716371145297395281843055448420013876380506875909738849649618093518387933884205189360621272923660929690052734280411105842208087978375992811213740682580029083779858342752380801347041260922643341569938811410802584724618538905003802794934338545751678755859529475677018629080380524520067605754475213249989257846437844863651841615682956527771343869147549388421532070970603626615746338294977153017947631311384742021570819117061139360243456477195708655664544169376804159197866978583289239675156212356260290877942712354365236439165813499841693920347909149235165296186712565939319096787005789891706805143738389303321684445649486227033405332306316148903403005225352810411486504010715773383228979856350643478666742999677655681448484891923967383433449007724013407277265047154923983542620077106617471174438448766440300613139581841832655367888939001839815098025125024044429925438334398221708639647967118177285729210227525331234533116031574559917892368385418230920168887795179341754047666895383483301835991501925237582556081534678161646776095032117871758721778254030757911776620784806349037909094099094385896863818294003915604172065385281411584223701672344491540939413799652688888372490052553301376789940001684780272785296787123848417773680836801049671414984826430607073561902199608216379932746063961368167463200944930705991389055712620559683181246175282149430851304958268459591331742870428646695937512840018114302378041699986429237041375956482504582028812361886904112096811905979191996463604683393836330248731798191278312993572825572008241565296412374282854482823688671247094125118821227392724940452716464359595371037224477764004899412660973037606722330276009226163999042033962984478709667619662918606614752690239313416853993905442712672040910869894187479764673278036787946419722390582079928112577781279861276031017974050141391979187653436772077254005094487626567689262719267881354194494087216599620361801554084462547617680661323485843767928052857887511121909275505083929397483993178805581409856378759893465465707102496528299557750673990612178254650963820945300613787820918281623756989478930155769442872156786120909462362611406926633210239559115525575055441994357409241596294879956820077602583990740212817236345964853068678819080178944342465639817942542511049495310049197466293465546064440136755692910348256230707231999287775406753334920127379367259449494267361530695078403889061846956112494617106660658439258531521173348725644936439827501301961297674068755054543350419123439478486326413778007617418493338718576673484348467132063245590809796672148113513165359559218620225661059223357286544756687465888054349046467697745508957034029614557897010375702661793705685280666226883805111811182174977932823145138286237425252064196950739274337096331517430979765003414029846050427835863513341525134514541561421616039690073874484110219330825404468063800628276166411320843172936610590343150624838977471589336705956121330334052341221378274536569945124476831289628200299873782467868525229857317899351720329560850711238628700160531166234873857618165520010035799524097079198601698202302976420339892707568559656090540299011050097298642457948168328622443361840155783599748570623683272010166871148403664226454446508990344006787445072757387683317038177334472778952550338322667779376935489421651300220595283687254247823866375295870386425073028453989097819744224712759768503770528662741936467820019288006337460565809580329450814607212765023507915483452865962308602071573644771359343060471528830492744983285361939544165448998357572519524551267155070482469543219912004212214596357969507355288388528223470506000889816051292119805213230895795816739306026564271116860364937786742254408164307379393457005904210707846666665504713469888122484118062076293071841413460372789970359069594870119981023166382356154504043053196056651457365706206537261912184038275377827235283048994188889221015595708648734613382447748488207819421420321237671106235781603608487447908765422866205527697874123873916729393937677952646196849425914775830975235274316531208666266810742181302072328520076247651777918460790741957021175894476483193293031900386170106450058403796535354102020634893853353992638092146822237239358191029974498977279612483827597682733564831116152021226963042320763857680974856501599963468454683398203568604842732706559019104637041793404237144301115741127811885264810090443113123449220465919489112748773062526578159665984940259621461791111279312667427939362595030476624640189661478347835392637552947594318900170742872846374417279713882201746162743114284028369757645601584326767066725280144466399020421785816946943898250128533848832491833037157894662897624442245342572065023261864159241691843577751336204889438647669010279963334733754371999820140059324155404688304515845138114064598788987497459424014059410040950005634418253617115921803600017696364291954442217596334200607242773983899729255108797870341445375158745255481211892295506079190546882176424860901045141092455127377175852649444947825258993915129210085753639946280364433946557210469736693006460495766304497357183562189491275941060155759460688645980190714060599340115145980223763240120107015220604469577528751010022161307118923285127136156211073238481813592265136887576027309784697521206583712237114365984457041045271897222907222719865927225726021334089076761336171751148238425485646343074988561320139212110879532150679739363535264110163776072024853158374035962720757374889274637289955295407369954383459899329060572487555008224974682987247478013906890109554109938803201616060984493416473657923077776220847066615622264917418008710857097498258025935633401361635399598426639732111952735886316423462539495016272931516615843321123484821993567666268597587313061624923887305646824718375210213764517594527717726677596405120391932239366190535500731349069374139205246678367982741089491301229324141365321578782554262801448907407474606252037886058616984473241925606526605691541194602737492919594533406195067479346417267100127672318397296584566701004579439214889898826084819222943911824199381233916062106499504217078938967976024270822785333385796614139265320079177057715087238419671672732377483571090503248826078090141253191075818251536872166736283650124694596279125073912058287111291647293989957940091211507394445659101434798402917874749508773628540744721302544771531060410690685536283425935967795675227492845991989114345623782779559287856093036994458149916170995578452037844628027162604127303531057842771188030254217027967187144170892918524890019134697681973251710820771024298074714892804130122347021602834205066230658603320158557519321486157259369384112369512519143148420082836279063979190233837857489623179201698269766862575185853628735883159581260519648557790450002340834532987655851694035001553429593930579834510634200369671444630614879463205618022052567509939725327666553104148346978838177058225415906418593573864934118841712092062564995353164868288421984587579022337876377605549962145218855931776233615314166183874017219817265371231197462072055420439485796028984567111685678971482427156188493818284894778054309959965437892442763398991874183723614555743239588561295379402751709652112965471209713710796955782066432936555392322027862816792768216660239533434535299219345484038477334656364325603991971321180977491773554131916352131564287243129312109326482614025045933727369703355098182781154470871002835468369012741657902971485593483581755762458625858450851898856308127787694676867080500449986220738636873282659506814981027152218565715616541809372062241593212092361414385117287556451351522299275238873385518023426067414344654323305841434209103881807816833148800608439809571985516884354459126803074579260981873053184075320744503600830727707116861917576632193544586805907637095409718159899361263929891466706561085369511304200049994604866488372945397307992920083248951009315878891810018529220218823165768212190338008236202441119833061719814810451372019639306742911859013139061341453047984410688848860415368513503222095774910604383023281292920110019180370490888997808460533853557399974963565555548057864552626461360814468912951513502873555219811333811024416153554391881413586322217407791796467061847442345256085548935633137212756940966180469648316649670748771966678621616556910118008642896940566793962215261202657035422050071498072262243019283243778906214681537299570607297213864688139674813350524112238184031563120135949034700297891078060505830757778538728468922034164803888573284437269403070901377235385856903142595530317050181227782995365429510591151428189277770497600534765260280960607429821475562271460766535633664194346222357425824709549173089873228426740739014722097802558287302282087230803127720991624464577749398566706779813902057011834162614158095291152564108821537343345229247576702988882615309771817200741458805150806845917003829674750461593070682575867336235564129804576736897568892754436535789500170368268963913804271252161549788606942430166251006972602195074535689717207469108751925092625483434704621019850488658654324849476241028170107512629122937631068039769140595211691466995515068087497291750002280445441114364108913887330144823751482137127784139613840700493394460898222936691147304408717289085662626978784808905964590558349173711020314071630331239270136162870942999296237472191781577048616012027169996079963678150085182224698075813376743058303598012351165577076965640269195023744339199324714177824254001712656291326489421383061885058365605212577791604736893896358042189613219021905432291415329200578248434179775260666935884529670285401348881740142000325029176569240707936565943031542411752975562345691574956096743479251848310830103776372710919322684839890855558086343529755739112382833391854038198348446350321355125585409478830418478425183405378283530401556835658917428177548312895800523698463259509963813704317421757871483014539249702170979586373181619597983194279040916304530180431833231987355583027227386128510237058183884244194486202307603967957405482281019926994113585454811816646691777287614760968785615870052261947172320579095693679015544775005885893972713430126935454266480661087307254908257360863877224257050025718252910141351022134346490998863867606455049893278618752754944170820313427286545952503109264496640922289899837190448128720608173836546559762215725208300142411617970697824293266415544375657767510085919398644703735693797924552145727194835530318513795947934377681484708167079436594970445980741863284921706525380639275338940878777848056212669704866831777045566392691164712313013031279459222477266441260240054569779222263587490871368138757860399142260100018152088032262652108214430653392301913901894224892991289983002979764109612233866046689700477474627875991180075437215562231190033282290577919321099773316115830714439149288648724086440327366669670529806128509727555557527319703775803228745937382006308331530492140908224798991223650617940376023393576166829063558116344136412569597811385667179508953946940888525225599633850751257145270926515462894249986413754008037763753391832866120100843991010883137940642440171259585716720359648549643897263793259027953371728519757724292943702847955063375933417852139259851150550762621446694751637029088948401498586025364694286297536126141871729200651700552715610707033834764908690118104254661097680463704675842788368257900135273197553429208486290877516825610996241435664649843397562251098814433199583575565129911482695528893846609359292253633762623468461249571171579153111126597636268832729026157863080105104185194792677433063770708383407127029971730454864031374987056910974985390998221320844263060510527710182518231253680997007447202262546893792082444645258679261487650913484600881812492187985013945850705047394865980144155215485206324896789742741023533135923222227680841791438418606271900429341676813463696098059919863213029442036638673020004358927487883995619776014874894795450062846029377245810072916898924388322286218631531897132895094317433627642667482829440860834912143468261042716657342545672712082338037671757156260468492594195093957982594436166944932729625145989464180074598029211045093214788559326089692021260639344572088539369636737450378535433540521899564167991004218549743788718536760434080164475399786076163405292331680160042501378665125557568032738959549625018098975775136910196303905005912994353168110039727623514516264081577374572028662903025689557946847958948520284333280286030558920265652290779937194321523614544662210004469425956360940446159240528895793146671243630206872323327323670111934156661685984364412675479370820556670174234405949774373834977537366775649114398777130476280151254375976520522118618594043556225908336215926214826531997055494862266923908287950945603940851115248239075683831372780628808932227523831753034817199650355829692751976855599450410168950763546667478863811169839724871048695971723988761873311716874673488358455572196813744917371125482190073989906791711339886436870465823862765565137111432370895044523876646527809002188090015517014943466908158698667708350389326039468294486508379921731512328557079327854698360608960949071634445667517900120739474101918556618311413892773880526975718992468157538214389118380875376979111575463079551275309897203663674347755990499185110261087812828794401710364834980150221221403147287521669636577630444045870525950675506551124689776390918195836066607869684090859612730332700954328303141974047202160323155943310247534713871262998019790510787442373400872718024364701411951555813824408974747322683334999826891111119192868020939653285993559946225995713348507833158299682274949769672510043184028714119842883992371767537885805978637876319450795702805580120544677223768987969164659907757383246057626906612069385194860639637366136083862962179877975397861020276730411247859437497544779808779814406393678991232016741168117052741027024032564964015314790671195985792274860378563365558047501545613442884742279633665711926117477062869569750964181496507125341365701392772723031093043852101182777247697928401336022931685078990367158068176973301628689419254235099165362548526431034150631072712537943973893818603355336060000891363557954175187697066797118248245731347121217324823655724636174049287521437680058521804720638177155988097576547786662944987090450155421054636192227228698863298748572150464744362855969202446072659790991008497601756274159106241563869201987242470892219610435957731945332616362122107033203820491992712593645288264716457008223759716443724585397849935270099276466639575186589503430234864994077037662155648019987561400892063214520162296495299775672436562330606353836189304447876369785509030975714155463703764018681931556854412741219364895848332400926639368705276848839012184925078447368462173204274051303994905483219612409426828237597426207822427568960253492789258072388922904537934840979634453401992368214749150064191268107033662087569728406046068348023247181398669045086893393495975998552325916781882573315512955845854086169816201381561062223312950925009312077898931607655416187512089360245019089148850039365198054290108988708458613354400294742181959209708418970876113522009021887154135115828322200788353253604813916041970802032342485497727772258166135686672012100931688378160744464177395079934050577604651547945000541866251609628436790229437968529297422390251310736745728210966167006696539911155981662828552183175500744284117282110559362382264710847889477382742508906363090974102700254606931806816365879766159642441520772230747648708727076256056465994562227115773475883552472367859459089125576427215088014831617718717740371830610375521134248178508732098356114561155311538131045432189573015362467772485033224926628539424349394921948728129094763264543418333809808717888003205328450377195843285771771593475199820813140198443236051329443223568317871704871475271213662179798402858348121473828684802428514425205527666091882161964767460457729251020323513550206295531304553928739547091835177552033422389722042720436661893746595172537301291845507597625410899625702933290041677819838636003695985653686181745003499078118799625811185723412523741733136416762070363903874152124516285002856945349493205882723194915963605830167600616864184952400124344408548453854707977765813330827233928729104301151276979035688702576537374989425273779428287572722734716933432383097050465343667152964045614024085633738556640993531347715270660603842185303206845738347145849718182571347296503627187436239468315129044602933327108477802385615415585942277387615867704223347251177887339721134890683704851215218395073214602369801431729812610367287839413127881420325079403673689636513137067453058271570276940389081698545766073130439080801970325534711250233750888830321697030276954282070575155091289918003151242537281789631086136800139727075454569675493868138972859577869788378372693410851293248564912485496107675112323622729636746850691274445817598642601983219670712058151109276472523762983446188563935349228063461119585102388550850567411429228497032403203431456452871838479802667435461981319237138571009655909127873170523159485319359601157083546040054681758294417322244750505959655619432688868706648294423218813927530565469419186811955202605705073874602237131616995344061487048704381596727187456551766673434890325619243015886451965881734472250527370012084686519830508510063548005936681404436241407696146175141241075259695792035137939744256437485441141609139503639846777254493385270886361881445897660242787090969256870354414201022152976117587359759662292349456309725213265502824771903269549501320747619825730289423013452253123008361365177561826714403023485566752720880274801357999745893350634813312492611698826464454170711444668331423510004531697361992155677392140224679548043315150116545383918818307896213477519695565183206141177714271158483589802061151001255393560628875083618338952996474172820583336319066701873338790837788966451586048930449137531393280541070675003485195140880416781179156834346166548721541463571329616263434553523523782099957243543362867410697841812724717813287861521507058561365898828491164766893980102877217160713363657089793762271613145685023364584399176615761127114298220617992092145215247865358438660888229640753266171561902056000856395488359352184051150539616053698676466153830367848065033958890273564883821051903377419166159090389899535110868631157947275639222482833384976850219253074483011964711023645350463842417366770919949723749685931148606861343927470805249481437269401378540499582744902346165626702495491188387570415448511671359492345271603145844156122094462198577867538482978025395510272778498893603652913120169185437966117943006783301583004394359195592410964297694724304972972730787397380459113524375933323063244683216145040550079217837162012241544462474433684468613281331587025513744422905442576992603890900294013271819813543964995164888867192217811688760415998396401166669608154657672375153256954148681346950610553443806454611749634390495944158539971700203247573515898721617230370961423737746332201395182826090653382118788684113537933215779170203684287123756263880471859612662197425650247340006551482809968919012061918879079945009126690877178799812114406470398538742289300627948186431615099157942706957601386116276493467476350990221504927005845361243161908713455854860798266139618403748727568510117619500206841942959840500719631327293679418535464606282990374457421047400268235996932958848474014622508711368188887671574383710386503854947451816968987758490707208068171655933619734969184672185919830289865819966572001188134943213888453780501182485011093970317482098437830226733411987335716612779721455298863990550403416480017620289499966073778584721816765364602524270483708296449849752709914548438440301025835289261650345928316490812372613324052737131083167920873836055114802082843424567050226220905279911342186240809833994015734585977544145620144308804427766985973113472915449945820027043990886137873219220632159709657598953490825580664181266661939303449109403577565285593085135368263013250244762162791452998393397003920192045812235296201020925110656163583754454314995491008251066244212665384266235238015544244674486390097725005748476599502960036723562005781613576210720397932548339836826781978352609776793911877025707585961571197431801852060009407280971128344722436228263711242338816255298008527778591695212379513985807023765997742610841883063205533241929986587328951312100114527223910453601413588782668583833116722684944627159211567771041518728145795998114399475252344656159285873219730463587340149688907258794175104317781933835804648522174372231084590906067777613197852665568552790341563565672022113605502251925192307251980339428437761161197876546623909377794996461724050946552476125162913180507276161391919088625329837461561652615414964416086851455213954424708034664723908225615363045406708175045884067731495816897164708634145966874917334005278117530423723456242088767626674624967220963943113567880657363226150682906858395477213674798932068718857916499873190163913791018281192941555950031966283704349792298739431295095522481666010228965085587786616641532326772885204607688249460375581429500137417974091444882793082957258646235386115396568234562434585363705665235479755685868605837385523364165682310738760087093814622481173523329627991875368680606148959559840474213646197138781461173332371876714871532487294779725700561586671925823116357377915727183161855490926773495603910850674439191725181175979248950789849217372582463520208827070217901873887161458850586252026874908507044868329983491362942560018015979021216009742837269756720338734362016791560085057809397387495786421385083272910844557377030285310272729223578636473822962269282899445767608783931465185465638841327421828110770490699064665316878031450033918354412786443049489224243957903964562197072377491074461450686865553427458157768951730866426559292414818443074119478378361289639590646076182498892131915117442943801166347309823929453674146476709607068388558029117312379432583905897462458277093458520280605691020662934587919207498172458982148154462453680410705368568122938334187834057368254013010306942742536184853797014180434429556561497604978741563357052636502238303605241502014834258053122241262907343426226615151698360841525796831697013493525315145431614148569791605563937366976294680094080031360093146397297052327821430186640506260563521208448729701610641600847110350449603292661195442161955993474842703599118820634617126942797299559396452317139863515477460297354665380129349390778867636176895402799263880115684532142867465134848705815893351955840267879600284065914588723474201526965411466352033414534888852759857849816403722307631492226026177718021241240607477700243653795133665133207149429463312365334619751545357170460647303572878073881527296297305534872924390497963466025952208121660919564608625604533934648260797585455136081407167039092025143294394415649174030651993667981337840616225883084154920082864963028955208940850516883095655496703208676815039872450109451721506151333125205927443502506286549337666272441063700851613782323080474774167869784144678043985664208164581947542236176294392902519082739462235795367667893722219654347711990198928604656376923982789929616372033778634926738711397877784503269962873073056904270065278854548526608150659407624126486339048488579349252306193751550051932315747022992877724066002391218979212176651879560106302314339113477062056801172007363433285953041046141466874297762361364936265193820824296154368464224839105714883832710746412008012794915491371780973140185945021209973688867959513170686917228286577876073030559641328005407846133738429864876677290690174806347454307881335528235243247222125854185500224090970795255483525933084627639462508806552843416451129864408333244046568130628286856053156353074345032490190646478978215293150153268795285074178606073376084294272788973998021569853706599807150687399294117731721384359549686095966801583684450724709628716499338937108269486868852998683766982193086763208147975516629326030312133752409080250764197096265657609887174250781466005852077530277065835399261980208865753038885455271944396946327780599509478079587517125549923681572430504840975516286315111811799773063897112249701499874144170064296492989144021254421432137385056092056821393127398776494942370819471997817153097248870251444370864121636934374783268380775067855023900296378878593448703419539408937670462942312064846886387209283755660318025475040119779779335255234764964640807854209285957904249024769895050517351923470675715608610749940809857346909048902886365326303204883720414202774704823020645615848778732699122470415400358463550397975141270489739215308494331838771792259944393507914420196393386217146925538252193863430451108920033148166168751281743692704306195429255932239558509068511676186027970298324899241299744594675232925487013857417597031930479103598574150861118252528045975778573669057488369679948720444514005809220687324951308438424156061351709477639052045632277451571125361957247534041549341023181492503971089887517214112983237932677947939103720823033308141772966757876387948126154188742226913281057260138546922050202362024662153895972782767830474184119598408466438663580556481962555452477211778694928870630433542971607886935294880259825437303523057395579070084359627939527884156272492073208123149250959555256397923711974644777057966498579555440093547911853300210277319886320643922215889854374304060915952201005513263750148349294133418332252533422420502885715426840852779135784685741126291860337236740920488173691839998097586782446123148754191123489783462598785967013252598370713187184392191865724272651653515343844004550863599224781030385257920551814855124746980484252115879745553859515837174195260756546146332000897438059365034157112675443055921455074155885451807869910563182108486229177082157479938520831151400117098788693072205347571045949125829152132840472967125152545735274576258608506982743709591720093537066568779794852491608276068572302182269229691768471425302130025982426960509657316778696436539597689997006416825373136433944685416118971115247955000019472258242486568825989482088091899891564713758026499690515432312699979497616836980587418944367855490628441342371792018199972767681702409553021710575362895312803554768273830219717349126882025368932844126493941065900353013160399682435991298195066753523448367962959770171073261530026632373780040792638855944372133785104356315872380585010892795310097952221995259821927501910215793673420861122229930904926506568192775731736294001909085613598836310580828190693235065567644146090034671813746450444333422249836921434830058664998325833283885096392858869630012315526520139148540422641401208584227251360004444677192691546804282063993629500361865206531909835978016538283409730458863408018367563307216243207879055623995850813280667842713179878782030581283333798777249846518227601638429254845414937974308646897178094178465687408521299707470458479623377700605587118362095411339843734372806131523059545187088279001756726508997225084165574322053316083470200149435941380826565564181720347479272498701484138461401336988142348456145139822663564069798957645805763231092484669228685635797033327395432805733729241160348094951053875977698473444706536895464349827105974393849846511318461361063433190441668530936326820700155328093029291635022398064542051380778104426056216303922095117841236713798333064312239252587439500337235594671722089708190939328552809466653705174320690445936006105126214363785118755296234064812535742073019389304601489197459657984546149266242983826019496012392154998149574769963652388173283286187844296344301031844960960185069543127175581171559883540575352723593013556694410938998129897964699379289753491239484015565370030572548501017595217190931578501634329466664526366669873384653907743708870857872214668220439062311878732643560767439579448316473772680226045139617656200128058795092824186166172689386230966574934088611632629458423542321257223291364211773317152735169614213773192431715823597178950454133574407146718511824481414431234000027186387326190040009640251018880596440382057292806273063653782285532572294854332471904004537881610966181273506206013918222157869651027667073577281853597403964258812525996428215489067362516713974582733463773228562437046297814139734491164402513502429167720651066552577821315164553230105510992918910670958973418734852150889214856163934308876474653086630753687137374354173282543569931308005276445605636023039303468717855983291050637448918633745751114296944244109663218307180278054514136073355662705956726859088013177500258483755713839583781158928641302369620353093656700782420600521414605546862469889632390770912577749706188941641884165968993014232972578390452484925530907649149239489154138777780213746948027128344059774176084821026314816954222743379273527413174201676577525925436419209024966049452199129843920468024461784357831410084213128235896692185832132191691881560192496350377251961232136446405414442278365507887686533984563503566325703375363796832635092965130897053881087634455971959422031856173337574453504962891333936245850579540069698246511627737244858650939407036522044173267180090009117693708271207974927251502491049282504909139987433692250594526287222088403928020005387902658180728988226337532336646340636579381402435639210364385295985506192090501562213436808250693098222639644023509510306222715412183855000266779333509637161627836573296032574748991223286658301119624765993850872505496918089069315600543404383291936609316618919527933730833974895394877997850364787640139799621913843288590319164227869416438811072543497758527092955878031767365231744956820727791628824046130209139333381410775596110926624382255909353896144214235667890388993250033888770216656828675519100907440538601941391620924858134932997593329397828057950290325509811365374757160862129607050585620032529750074077106898987410758258085086218038087309985441935488824998488253351171421424005088011778219922529851468015435628008958879676371769230881852958959318154935214090914213586388285913244826853798372828059823633054530922729949136942802013640088185440449573892111488273988498583783782306422762375046983402988919270034564723950256358023219632843041502202994547191161080510104495594016684678622228144009590099565734913994198118597350925159733569706193832290390321161506641345122334241661378585324054404436788757417175764228683108466697128858525855597797144994464065605978266110325517946770131379746040600478830115017018299568009109805628014705218677283843395596664328715854470237183942530121248988105435278945710818831387861728802762764956010924133977185541295555870662155382576600562056443966104520735499005788251056308825273281931819273820470065045708905438805260390938691564667037253651439186113056774630930189309256983490513805259818507509266428558032300729411026441899341001930545263752870658745794049057494927640296403593631517667487558044766727348012001387386615158091581736766829852316842658172175382553497083942593350809170145056289331510892198421777546159024360468461440339390689598839574091645846526590660480805188291795938155895831620241502113052916290392290158864106454356888591024657270625659234441018611917953149790713262009727881545214732929765287346868327782598770924416909214113555798412745641028152231388813672855227609380721545479907412645319917817351505800766806062149916002082661451458727127737877898031778716751129779867982331437008766823922841885886967801670199510687938894936250350113994373857826613583079998697631473187511733050327750762480250282392072089954292079977368641459269162681695007074566787788355752192372648370826147708837693758194782825060306596717766599876784401728398086562106993659407992303615554037700344941201059013942122893586961076805970705387651001899394167235316623357394120501008376003016813468178907601599278730173005239921509310498558010196211646716525317208230732493607500149767378553717947890058067650450507575151825223845536297737207850688403568863192419246026346343068079919761477948013112959716363653474213557132653838659485528345009810774282696501725631717697992109169982470715596810254145682082658595374984944944610270024359420086316642679694592432492398121481122949098212825645391194627321426599903378109903979101609949424540656291205782054630627930350638508330610440149260703857191079328931399049376028688373269393102912110648830097418168415300986415748134698607266871859605816381713676198376505826661995860452761219834163737456332604049050895311787755499856983915133393539830097467124746327361175693536205745484216868935985778339327591681725807828625929268293808110346732477993702781372867600031973122458403420399784129137028755358513973889078970537954213236127228347693945995213536495519139782134044082267915387302962733231329471115070307553069163020952155766989097982180834977981937844664354581578225213322301482306536031602378764508107224892107824508919058753091465207509610216692779575096581962299282945310404160172952326549563935331781295181454857509466147905930236271970135041768934111700960117128181496425505761370881518063416424734053150321586462845440197372552267196269233698644201409598899572776670515803886549570261988620002658553628136978535788624278578382829187342220853000129503293032892046410105366508534048440237177349353016996616816862349980729251482654185477734307831705637729110939387657379677958957213822903104170881641693577393974578617719427580475666470950665568929970416063955717208277091478813550931966352951716200623888305697831466437413863429757649185201974638531100539512321543637662835500354080880646369833031672236416453436350693923322643963494681124133423206499497381305787651439551943986225237065348250415126861004491995157272245920923544388212925198408700692256201460628659716918973372451860950584609100904342918715733727993374970839241822424307403603708815870299641752971938821429896146123781101511618408264785615945234613121539198642347151046221293027428311383860859012222740217986234749292243605409565775982713011533667454379145759227042655176322568108890359875565579223300463805504266872229308244959339369349505973174951894525552206952505365887427859525381343331746630846918900688612639306463604983885396927096488986374707728927588381103729602417380838935392777962177505045716428227695325184355624034035526473569611124107292804375610322349161277825804839308290535387905597729328366029657877717851570736408907722496862707645538614114202033624190754355034741815575114058510122888212583407403715788821965402457922578341961888754793819627747230767586216617504803940398623084682515030967912267890902870715034645141201552648739015279362439473810158867952715948814241622631750727766694477004073007848299563883902231790559670201829565523495805095766178594875208278447637477400072022239514640107380698119109275117224089402621549693544079454406267396175480263593095593552625447628850681709667544072582250098981468704950446685880183533980064567822709815900315112748656120404101754338527726806741739220447216565426378416815087974391396456034440086902426711398771227539409780994802546841364732697415151410677676325919096700305946518387779409590502722599960426354650531043051936869604516077103927121708933029546789770325454051043202501700257767091405140151616685474500886875805294777243112386798711232798596755116130542170605221210185461028936082853667242369405644954515622496326589311297052168263749399168312669968862822013832097854012440278726544367685136527523271848544270163726412513714138218728066307938962142530978650782511904218476672842770450632022755781492634296034690543685254713544990320585409367520216858127334605606719090448502739620113725518412557581596328494546429718345657747929671158029040707657231859013226311059099691243265162274721925058229420680859010306713338363776682488318956518389402974096971838831931563868621419059668407144528891203414059361799053479640547230321237634588758082466114529039949115632041599223651302834728789675179072219621244652596808477196520837916274675511060174627460387851958041226477863913590404371446820714902392960698266812413831567175043359366489831404727835771437894276661330612362685232167916857910895713014109442498137932722817282544584193935797137234685305676851519324389752849671065596994185028182446491372509734867966220817071781428878825085220863136531076740622215301739797700917360645994583290072263902939586624195052550952330721671580900763614166288731693286655985618371679231216282503488622780602090808041968116260055815419138636702623838486948174434811801968174074981737326881594812770400300632494556096158735015690085484498920255588548127072422779535088758035600977480880748640052707219993809371416617117453466468886390972661101803894916777733458573337017366222493324192970346370115696239702201707049146628310241620602045314822428849670506273358018807378614086446687802660225615796103888469913303623896992438962322109070313775417796997012587312352322395642500226312115355088386116366253740429963083042211972970819758039504499349297243931826243703721567651325224207803062030976990287269821925144715146827793123128266751282949024595535766297303160285383243103443320774846192970535432805284620405171514164731697805799971442702005842489699607117189058808286671423808868244337013570067646876143849684442273611991761419402823948846156378914197268852142013239276860885765296516971304755328907090298111571411813643816986248786776384275086568781559594083789395460880183357115078504805263670453855781040948989759412671878197315731310144254724556397730217071932175068791844854063166673112198118621251663675867216964451742328261705509833646128213794654381225198036398334636998263374141086227454367805802997906815022248693048659014194784500195231984423850641105992165482693000652519699261733318130154676654959195213552701701619552747195323529034356005901843114737534943635472856054866200430240488800926910535629241297735720816664919211233146889333747414449396886346301106734859638893342852833489861424460620019462334076617858194730412644671478271249846845161695649737049974812240838882191618728983248687723777018710155097533140776868569861258678196394776481514663851628130910075309622774579798308723518512177963292424206007126263218916650331681889851503234723502156043969649106818122863245730116840374953488699614650501773214506714179791340634186720005028617541807704329144556739101504291366312390347326672842975097562030671634501650182131675942267080675852225949617206741806960007574884462677143017965657989817598314657641163400871389098137369866477648285853557795336661007726726567505816658449874710114793950463676198130410804527543173140588554486371849631822214676907453865617152269841296609540260115367729753724564578263307806604872683839590832875815235266415301731052626117452334217020851538216616602921252608344696796038839227123464610284783516008152398874984853341732165497848498421614931633554397068265168371700371850390431304484499119755428781457529656451091369537908452799075835276162640438902108439031756978506565515491025533828061470108907263034687629703889398516059848939892650743635717699380137167751155212674445178960092209264599628619523760230331318733999546440423396403207653716813918811211176361257848282304071999365750710078758524237129574818696981951208670398381865368794253789799730732310712553724738230165861305141437584598630863398823585516444966263220707033852907630222221318854379009613906333106843524001162409885774210922958732766682335452884567171949071381930681866480233212784144133100347325581644534991529014724897524839114701549925786371724925068035266656520215182612028464696201096692848773383071481821623549369651888876010958377107976775979176493222350815169922613056408303282980293455692693776718526803758335526417390375960331811239429805486841436657209282123419540748385017601042530405167409792447550533089812236297213661977854319761421935790311205401502171987499526999689931676307258613900324626309926981443030467931023239209395541042827921954046112324293939070778943494367258858936558331534169503027815764145453807300147284042207890476443151830905440688028490891082375732022765106685383234967911931436347639221571666929588104688732376156205489103578532203493501672394924889710571475621981877934964385770011548138870019067474981936706507146502231394782927233440400403386444973760026805501920079598653403448325258405632503912172663953210025184697354066986593407980157614276432793106270539614150857440672438653986516652770640409887117448213930325432152947198316496475501482987750780720376603766268874202086260109496618992706448295801796276672449080550256935169683344672029862874687485410233706428821717077093960615710022870171693276044377746073694615099246604791980602720762252111134038642032943906489044373235644731691947413544846505671877771078094141179675686177559366134485928440795363296286163294406293025564644794707212482714550130425936151304057679654623088239960413075651856421147144993188340747994260732421104584501851890723277039638826855483477579117779660574441130691994402320314814647087323789360690141129842848679634262146794142876217725958256977666736576246980367690848685325512838015545026272647966588088468435700342238765902344826889062729746340691348448211266962167717900886964814362520937528655021885774605508787083978605673009696970159401191382460538126073629489659340360405399524006711187821359718317011576844529625298298550798320050238210754448932132761610191538420056557382145334448416664973406207946941552696170182182760208296994301565556341518571086252040512008028012988290733251786954518288046650880505579470106245853421822704101405708513845518622618179047619124582338343795451599795915799044554551518955182883672227495057777392126683563205433047798387600173642629235296476088174483474718527700964159970549184905853695446312033654927478821677824016839418206974805852478265784338375121388051179319573628068660612881863893806578974973065552905102618035463199123754930560306163809839844732180543709957934877537598308909057249141475157009507268264202554902501409950883729750769929215901776002107077538772158740505539735888620852476658215677785218061928853206231834844124241724399254274611217296076054819623929711103210126679973457961717772480922143661758536463192804486741589144046586819575207882985650268008523807067718449164711165790942187775100420656125413122918959083274024807443975850072535785998455795897075369664247950869464756223074809290303001039344461925471454113373577899390434296340071611305844548654562825833099540666845523659319556395953753700473337574011308952222976432222247659069592444393266468937937222763498596207800990127277062841279477920722225625623089023996462225241573218674443897437995802438629494079523321620659218612231154658453867599483577795801082821315415927025121950867702414963314059560900116514211214724826745339591324091791982845160850073955036944636208384972776961747064121058795117975635894298205988775384087979860365450398735428035892507408638747807426095244690221641706833994384940543520146009144350721157363410999440879314704421949127450544900905715385939790303142682257181135074639781777565562405885151959533439470078960815539140230524102577029091329328054819501820464779251073566076201201794583664874569212904920572545335074072007263664978851360997643167940175154607932085528551063290090641495953082633668078025971350515778585257765996543745122723036748219339571482021479270244122005773526641196728353415141831418030294760017704760827410466208853606288691897708444996767842738772004038972794446496054382635262365410279340431834794769481825231851058428962523771077873850125316199140939030348959768699205566424932493346306234618477593191803780219053589039131120981316590494588309850083497452010008873049659391479619316428923937749883814950120465834647003511091847082977810923974395526858760829201322417233737971784999907605463130464435297342189849539483113497328094480476323589766325609105826456298023600419860258739749264963359578191634735148593842448088227622462533161898773135776892210608402825731070237163283761712121226038062800899726109121475224419004619247527479563082001748616555232672496984872199317611725701797504652844254209055741294865023336806494431397595189649069997340601148976570830579530634259011081234527535522318576898509095452037469883894449719065830965618620977006498045731351700410529992230961829941187272617040721426937412693995738954441747705113977392685407056629243239023439639906141877708794484769281047408488461866490571013471948330529025412878715507867941912762394983850201695343225348441724067311771113484877289336338767723321194238239481297346746205324504459935657304940790851270894284935306274108257315716835100581557187876122672477771396467713891943464564781875206149670560733126712486317716329052347090827379070981600520874235971095012529467678527024225807052915563914412165518294150540562235683372711654394644371829815953070362451833098866535932763908572151757045448426776641567328086320737731807213390586936970237313646834087760407072363339581408493225491333868568925662672853484449117789911214569379734974476412304191215134537064594056439547550874206045233844364098936507593154876723406255283384150131030678002669305546788632442024561017453946311682859057057717308662036708855360400966855177063581765581615113105893598330376351660681973982391331130388246552215429811347646488923895736903193401107345709115772032640119305590355090633558669782378998161575626395533749415102162187059421124089339262710108724464290943868097464855045381009570805635935058119317099860895399557040227914940189502639781232474928810416643754608170905439117686062367992968617737127046782246528608994685150057126429248047758424808111579073219044977841475491614576063741466201232574490932519306942224520690825249884018240142337695069080767873713769105604688495347873938175535412962819572133774254125123137321112277299789524271998988776613830102833061766884229284933034528521309536133288715572262653874387533776069731543500695266140457456826931965287556368604736754555940987245346538854519488474187990921352521893735019973634699701651146485871438293226342283920525916558498495673225287240868357218328788923493296931334421864659863109179995554560882501455419709412839187789025529646676563710381637006307649360073127719141002578733061679308580552449859517699410686548564732853981217464970468272503051985763404669760462121130100881138690634300227926352927195426374720413491926549772341802721405777119197799361916775762071959553101253268720797358976678213298362739474566627448947702496840906583696633926364026821297943777712985975359856229457990269275392778188285310524458482525364705974106511335916004728695369228566605724158039811051478022687684147225760172283256716167853875817007123131489086855238512223995430912356142849636197953065678675402662034289165625247039326643097268216485360811753429537245590549404692481958600619123127367678833997213196705970777590264340468771339849875855873074625799952423037530911140203138675267906552658175607862173245542544177670192962991325139962461850390510410744138105959238239384892735257709658976053303902170304504409052410420916795636388013286023084348458888359472509746149301498181380799844558062850714721908937795997722663093603016284818431113193546797173138409876584708811876762196766023741073922540884010308830630680547660321859109104938366558835823269577078985721276913928407053276230184449929732463873105295032097212529480198032014109564609588440518650339824472767535527717843057553245946145025852832649620572715597847253149376708713380504235674349266237314762489602048723451038764722172232195751167673579278681311278298335756372190198046830720297706615157385056613913242641256818693316674748222137534716929593592565902173188748338278327877584730154418492488762553333843485483933788286514496636713094008886860334734901416321870877154523788414186691379234053953171901339320997919354157605429878637752444325770565219691266548031487406924355294692228303439694170093477953569461577142517489715912381647856756992326568629417937355547220528149532798824794603116277340121486705138618802475610623015914964536019200679404421313063509419436153496819329118520112898133256253101713330890680577514087497369358688421079430304670440733703024878013694404649364727441357487879162730147978892567470405086245617361935503836025967436813122198821235058230199720507665418613763633785472706219734976909975322185519957813786083902095682651752295776027251724551659081358033839832659709698773785310796021979225313152180593943125485145806363273442877776668044935043399685230958878855229345158607828054518837752658595509800113887310147893783775744500778449803220191334453615211918333032408710351770032162982326658441252756237966047091700503805214177447050683045511996992064352577659796139586831164628273491136441522626745769373743728339102146511315791724928433938268016938004260863443061674333669309228821491854296320659253512267781670225592947490613792255654236837877669374021798598827656605056585223304418728684483191698113282331695480882937795111026552564974042914902514534062566532169885880961804030338650245225679987283051571599352744081817150845911563861813847838144613462162346898405451436109657920416542891091034569474913905383421955615261612117396506970873264199300841712369398293957827033480469514474841667983740554290322838395353609896265143065255822722128367235699809318838824341845079745813793397451711979374799257743549768991008213073477451464290703152248949342578020901378037751314688205057722824917432531831409626836418047565784194190130885536088977654444893079943346308451679607873177691876470381306481094316641639085615210988680840434648378572672913723869146125600206171810535891549883308022711885835748841790322799966497439962323125514881198918033988288341193299406642646271208624917322018019894345817708076409595713376919247561465324870843963885164287657912003648499306664487802585791483083890772124264367399215827296929190644000150205888266981125079629918718648867476361577681692806808352171852574913662659156210138422277596787405738843151755606926517134676313204489887481814318669517541037355739673130609730739402107144305346591044688999139610959092182089893976713167655382711457025980821790577160709543496554700117354718771270803597883483399880561587742164685245868472381452494926785060373404663048385391865397927369948553225436621251073142692867102025819821564771921563976097218739075397446655985852906507474887088691963291408480981492416177538816596135711131148288125047199436596011956779288784766108120731920171718095068967272635972810265343514913892412820051955465258264836433720595198276245358999954618663336612355648692905260408845597540046205658897452309376818102623805749570794105004017862526906679251159121752807421290156113107680642189917246537627486739999726870562675575757459330943607452887583472486933146691300271127920636806709178129959694424058467634372948104252641886307610036826885761944107861776997045297888717512777409481066175880612954515124797480602896100670853573515882136314102460888689294434008629104412285514106452458737202444301486341242644359943145153545401587386964440248624717322562694687331892507275553791303214814320398303887939736593498459210218094408309445847198411659352594738865472504452380630683924302736963030912230912240213172950620373887202206436910104310445059106105332618770508823450025701550715866777796482783204543612675645141892075537155277557109482442003597348236224046739898789104174872542786049187470679041712824545797543181867439227896592805954856728129860272889238122865358718069395388879168259893622592189119258366651635009226323429621296308452543329301486433479301053590978442520596919823850571697164422151323792138106734172796711408585977042259584645923121205150840522415213438993493293648591400783560061001212440845447194490470269240564024508386030544970476930879377724508660925251144518975791200822569625647250253684516778092026436644836376657682309537990004759001550551051392981315745147338415543146917014498565189166658544449202374403750067053032201313562544116094340426107912863843609598805160012994587973546772045918277253466549307228993773942787754088973640272436755080700180417424645926207320254687318113709321937552332003630283224555525396601584349169144554945329133444208672166673155266846131645041581687911362249956042205481730063637342230845249173658477061543918795798126183109251422927480775549040965962950507869381893684719379161200779727280442066882586248964851084926794548975536033623714052794898765593455310051080998934374302411336689688517005144319259151710081348043723762328232080921374795797799311067050216764141844180600013840502885875245102801786006292273347113579056511074723796271937866614287474946632823741161329178409652676965075489494250299261068656931271807496029169296963621006601586818062875690080842145556928292723225402457231608687096872030254606079436893705962793382554844435136290349614600783845287322363518403225274267943268432534648825988077234265689789819919908303666986180645158852605145512746012889289005036072023339058979460777973481317709478306916468357287267929585233296469887674412892246709363892523510888383052009807665160128728244830571690348382332596186375774436125710869594946103740995421679329742427008533744593837463926309332796458104474456646486591243202648914007938076733255813283355405173473568025789989972430173329835742518535092938667712823768446484351092327104042660136109712840897380508192951273979821918644412480856477793038981736006428738498856081426892265325938470676777598998687282579221563968157744664610740847215838698837022687747986209230868508331474113830029342271694691350127667720944130236549467938281016864097060707893909797764109973660755939068849563620554681081645391836583290175460437676732597117309046020127867926593062863047108664663179737416081272430405221962981614489660967271011434676722382423114338552008446427747274958797248337847487968072801204401215436675943479684922321760549054877858168671091524102766846359292774948406612048117488573767883538687406841236900598123280668307885728693804503674122526726191716079868935643594420078189106274751836312795041203357984686939599585306894628893038810657965572047935153379212084862652675836482304683096565962712371045782284917148436674087221154533768262201185836170300078543803886965441996997844637710643195069111287474144060272340038767708573172235060513438639992853627514309525529004636656495141903352385507187360590029495202708128861529278405658866983449748478503215905453440101667823393657714491067288017087635412517433507093862973662903872872784142509954596542435656607403845672974071529266091896105131152998927587465598072802180906892654758864658948426556902182098862733695190875211354315663661856583646731620866838315392331817964260171219136081610083271704471054642461132009749741205696996708501648032454982553840269155156391459869597083841856212167774414183166767119107057368704748395465857957393553780676458966786036392710365340658916937763953947729606124261613823936589287015713444628810046436103529971579469680658214975668281792167731598029875627578564832054766207021705809391879112633862397015964971614074629609329899811311827908997091889022178546918531689629112890900132328102155370732161578985097410298552054391183948469454202009246329494006130104108892505214484019646980665388309883629894806680678379508766566796078877561953638103105509940722047175375378422820137170198006890268378470147759494301245572469385098453019604933473940453848168766275312999814672347281401886605472097911627172675040572627875436062635726082718874396712007547428425978188588644123318172460977892345681186574578926010026786022645298974965507896124514906426069575811526380646420629427320745248970489163460207058696285258347683494051566485065420547746852056794627279776020037264100450273472993421824359958317149774836882634147857129435445818503330071405385024443024987477641013537676646601942043237688788733828695471922925643314127737647056982596521084766719109151126328365911287980208588347967291697440727378381406947248285725231275133923430295342502957871698936513765375473032265395726847119847375819295748824137354332248871730169797719111777324908032455644675465942485349581680205288079012909838075367527286645642758506833949872023606241648550731506056126078815314274955283096010904862528234082012045639750521534759778207259920358535537676485302408946498510791186292680488834921614192038839366208838706957357094705683394929204453236983821516964009597005100063411705779181942655870637235945108468811159384221665911438735621023499570547717611545612183474283215877783190551043285374624740081072247985870060951039392371919094104966155865457225140626314315962043984587683384565864699446795827074827148222195903419203583174901586410038152759470563399524636340177654787138102593401041706391831079118505807268700139085662468417934069835396922790624644212472754843887546098982924167595336660013437218343430514391165152961361742840690097668648099935179147637636160804529740024635889379553401471481171994125013057363502279397534890747859548270762145338156297316511395655095933201457466375030585105337305237882752485080907215367869114998576033113578733577925613061481451215535200167685872794842500782574083661691012228881507066327081126606065712139982211348099551706344516546105466272050075783260611183570185055275045007204126126521781355542109299011315747369810387832569222764285465789463057244021653487828021073377857625941250796354512477882407599662618545534764848967638686234862696201204554616166377812937338836227255429181351761858957035967143615597603277562566098909988545924704631036800079393122429094847047460196444285911092224894150826712000616512154929555611391175149858875045660925619365358121987762722640911984497382822804625018307806227979501416376616943183407114601918856176381008695472289727888816831406268645124040290561422912388330894507422754277728317213893052542110068096234839015133433369486722890685215788347461709311023374281300100658397171187496937225716357519437218318347138117721340646812161501382751962132502444220491020069281258228532228593196438871459191828511215191857207557083959686663784836636300777682017950164646783245996882379632873019563206498898011556406233785619108555062454896351628206261107934925149534571190361368913598221956254948242315860745972011395484739271276786865331373841291352638458239964936904221313002121128093739657539721580892633628687055310746201169821608861481754136874532583223245866151538679747179500659441437313733407626420915560088436181485427702745952320190559519429169145125409987679007530666295244624260585122748771121561708379493872752439539944606057732664647931302172836440310833241683928380227128489595478708968058589769800259371018366361177546443046991733678731051639236513584916109237611222124107307891044542620935489207847552669765101091690228707007954238581914130382165324180484485001591771971683866518099385687447869443815689272343116092403665751560153121809173227859105276851613920149248898440869336865041086684352480285444760242208556083250035584709178301169719076256131458998557775644954155473905791632333580848026873081489598711469994529047133696856400163263828906399880105322394102498496240054469991033383767938238364715661039451210123660799954848082138111425375169758658683145935454838722628986547442844672252559974456051405816328598201871795590374731376944620424296809412918079307523505451499344197488832018090268459743355032290289590543668316580224018388899253708085972627627723235517696753242059496199185273326578896917507871061860448406921224928821615883109904022927898775083371853480926151175742455971469316647799352204599449408314365996703726134461397285790589454076885566967128539163530106125077032313053285095578580394621143219438990709051509170777681061794147166671607449678279154964027534419055099202474736121602852431556087320366884196440958005154998724567889242359548726639462646071081662621805438993754836541043933053169598144648279068238721964841754372775550740709928122273144445150633030494839211024208187952885647901610718242386092455751047308292143723469618520582796453108218577955636646235461482973476974011340606200325718733958397507297457261090346205936682834461476056598854676045892857304713224734922801623127134094444268363374623084221747337995153978465655406069039870438137616462925433234767188690190715598290610691666187032291499911072374128311635961435035719665619394935011185665978998875623508846071716474569804688380979273774174562687591037614623109996297944313248134307812496315895743504265897973435225460834006225631221988464393276052675366408977659492908283817923928366371752996023809195937415766214629354777315277221525448013435229071014533568883945262367319211258448034573837565057148360060080135956362137870660928820414181767386319351224416161326125004603378847464508626108424823539722922884845874107564403078363874675740135748790336488112590411382349903158935532356020000832713577231530398721066210865201756114624032365023503607187952268723501504432743850731844716768392967893283778185855050545832033647478590046313125663707369574127550825409113173724314446513657483542532609045424589683331498097620834859590424010020985646252092202572426002605154241586906910437721111512391114417674387295807607132329947270625187704307521159240424094433728837043917815986814736651269827788309244095743762847551380342235593451881012450928480170507747607514168806105696863879832190238963183775796544093827132629693125296647884774719630946493789906310928875144663812400256933939202177931729368777272939387962155554145404332290121385193769342337659057039860945556170017562581221480515626159898998440659997113307129268840625190936058982687264907718980263907502718128814471516018006974370597551153157737897522772406230829232757783359799545392116655882413901308085765562934984826590590155999293303723508547840575604148654753988664949603600374758562751746411629920890373064959575244044346691640851305162211939646441927003579819487553822915262357813105942960172088612805089737192612334300012001599575749185210771126470805807908957802652949073531531222604553383208178274324748431065089477219594643150347785568587721703762843475418256807947535257961681249907616941708763348474973493154564882100207649312193635089212360194112733402126420836925543058020862296965737944944011794941948014485975965359971663495433845106092391589299872180768317131688565721188797442496953917261715285903753837068174654512138484817299131208819065484001053431826672473826351422651908650999417382371341771684728174626492612598993690932635779223358414748089511242669199863509366072820396620090725685808954572194991402604912723223339632600506638486691313587063103841723279876922516139230754204884819776219801367068689090136987684142769298189206778253281505383840596396519520166561770834455176801729117267637657097061355754106559084863716704083974442696743542775424536280617031358893866524493882206926937474783610686827376935625748680115259470586816860004472066306729871833494153209562257501413648544841019934956567580486966891456273890734666672255223320571638884933482280534920722354258704748867352218767147585393328561810314624389885725478922551929684711138548046029454940357963671065745339916290845949319053759996539940060323931497958343790959698942954498708987824926844721068597681407600027642603632317351447891906595123082852196554054706235776508217556036891281614324665159481876898525449262509513426268645795612224824436146582398947933678537976611270917507996201355805844785763951245528842739229202678890380959085105738850727154653518280593234420361007774382007457793950935785429393080021623840194931820484773030787298294794694817064982844278037503652582285108148092787665117450024007181287352524966983929167879177107995450515282126986034275752515393794083674962657670433587895363965900175557991312003861838399707354606054434982923659721888905940085100021539569376017496009838863715132074109788611196083321239576817489201417146749942181164732577169527756190076378628126445843507893316424287455161790057623233131445977465151097797204325724682899227211660719727705666433131278550258067237065568228647166356171120689636722682552142160458568665879829228022831881969746763450836445869046208856604103709476775396170336640179542492155487857962982540064864345003127278338208145677015117910658546818840988209759194758989904151249719321850599683825844372419789876720794300796037913802070303675812601333153230315578084119279057625820909067047830121399432579974140904777334900556177472861412230421226739643811993248318061225659149064831890025811043384358784917394456011975345257435847291471387160537854310144914685636887302338707220272097603743075790148958639131618595270761552612567254628750093114059435265774138867943729675519109508846906637514314630249248588444783000276636653269815648792075289748762494676502816057701046238239384784855412584525644145635670076815185157773283561951665076176164735565048350083611426651593254345526372634601039739966017945453363468914922614535912252514242916662874938218821807110338517371153321307892796618785248828517260455982461601125512796267301931106733091783678052625764863941010747380992899333578118904914166107043937736268447336459938918455026246425026921277706863738887140676678665248744192822629147940185805303349225477907569576313859902330439790809870077264194235770151987709468749771279135024501151053942988674869152096861700399437585163858649647463989331034356581471368951373062794677118337308119793030120474579900776150922278742729117873993653264969654516178744565430363481434386951985847770112378724820130921740564487634443930633196610088031792711578981751680325931015095604681596438033084370971590249511993728387981166500850531247113360786278663944528698197202719451670322747256546329777485905020223124952333959944357574502222316878959208048560709667667093233671834143654281653653011436773433956972660772336104200346294216971168789535210394128000781581457922823812748496708942039717816222158294930146774056353828600455117942363497835952505214194572339201291715901568888698375769804820998171756756672512799894961299969746785989259147623901468680936572132203763049343241759004935666269952069391951517179991079584587935775543123172329702625966574743238869604672446311851810432908986426136677402624960339718243607014920254461034834530667475014791865001291159367525906667863928789263556385240908029775464989686957685459466492252102918219332334666559281139598345840900709283525517091438013149124351829778842763282948027266563574385329647463968769722920344836391691478226487319746584631885060200999996669420447846740696893967307960628254240445628616017581768549646686255206929387833931866042278072055875330835786525597875104148766389948616358147767274519510244517863309404786871682730790178469345955504381237581658636723677245196370830584933211694131582035786530322839307891482282674022251039537760322658126995331804878055737026264328934324693234625814805683249522788537147650109107393851954871494006013108709523980071876552145588120052901533296644115697710794604370828467108127267058183087182964229230546422750007612175420952983557491082818712553890899702362098084483651165884718168112726110877165986870348417002373359583009849337013978566568199869946500784430279999076822039533466173739575166152577953365619036171053763128463328432918537888727252587682533454453801938218806640057494818615516107019899581541451873624891394471814218119411753836802762579917858549590451508146663949027762149567324552628317057700751460260272111181624379063599748957768934884049980392724275377186462555259686524848862080157221653255788833357191807984097420583003968616576715059069403102173211358794862634387369137152780678990226825732588621528313184806392644416611349133128026610658220987339055418995154553997912652343343508876109418919743881414809984086239124271140752107883621239951632385213035161903310044433262194819741994243995151698312063129752050995286568350565935132246182005001436378810214782694041249885461595655733335970402369381751653961746724496776690323475687256164500001173203551720749411284678113588034728626025434069281719865382679660457729776841926837111287199004887065447334882466122590201241489972812276055132074292757314587445444623662437189775443321290546631345604369493284359398988115464911546312138035804407664659999039920025791638218185646598989725162983588820972621895855652825150475349367701423174131312656969396494673506517437958209810269316318397263150004890536492472236028861656076982436171726272346541058925931180577263360267846588445430640166686144279162988599092002940658616505312659943649480857297940917771823646794443905530373308102848096119151331392520732086508532579258265185586820213968394780810331571124500582762662820797200959021463067548781227971666421534481067661449323285458047878969312713733306501679786403694922497659290573764866140879988406750787238835973237940486310053893576161281856420737693319509994982189463522935634930869099041551960083781969068748729820282038896329250864412438573970880194486211562523070179818428347840840031919973044208305087886660985088187944461198264403436074100843705241434499389793235511594474456399800962985544298038151111822420719366146932147804243465568804426306649189958323881715633114571268095236751079966369046879640137647033802757088735443638577884311150135631290953151483773518377388780101379896809808562122524325932602668130578336208587798788211607541434016869983820366252232286977930245195475679053647080951789817703545137376159683782163459605637188355499875322186212317038547641772159598101706779794575941290329768211792477733965365077224162297602767205785171155039682632863043064424044925146840462950569276935846831559975459325897247256149546807558690583943453228075111561043144068320803254338282445679998451105756030126221661880614999514025237029696419470550526852775464986228009847773430346779237588472647238516293790753302753737989612145256258514730642051967145431745031149866385408386952536118241718642875964086303895891759157140295990648100149319630085525452440572119786769567261342829479251363832100901794085835038796033457607301717106705942291478204903078096733433465892002253706139122069308320327739019979391746262135704324290381760489432973466706875632353560412655124793487393731185752841303881989257582572670432420195965328129834593307676343318583107497835855841654776464192809947062419996696561608456857362149398535210562432459651994676525042403316688619795313299454948953823588338728977196166309873593142799936879591214841841656920390721679501167660144691892490427724093540810200569600642769174837671412140142991889126328346051078434061655373102651231480396427377963003234593070603870910663164931728746823798752832630736736911203933817521862548396860496268130817426194097027655473702877482715146471120251002113511009047145887871737267765620599628365195391807075147588530524494727371338518861870395179768377472309085993923030753464039147058864905878331838130111803519336396937500919180119634188237778963889144823073861776310471898578445391691846970107271435366463831952565989773692608946580996763490797107658220788026347405217500618572177691210177169668593762255892538942552508918897774324939558108720465017196669357648907790612495772995796190070641433165171103177110592930465382709537784424822118215403540938601584503190736626734014878036166232357346520959304866832464076166735563258265155599241205457781019780272273194452223329123466737805495569472607798595473500234565057059601296748635259800654950128586492875845343199160676355123874445671994216498216461286428166936269519655679873333671385163654082197449896267984396216340523149448671883195082328409109707084308116375131104640094108741886517842713180136528129194623322580988519075870329960390348580572329798715426050171468196630041706861093480649175857583695658650772244607986550052440401105964882176254954209352914065824158232791798724293778785951387444014500610502348755269693336016629722227239098085136860358009842870356556289332373360145822555914036132228541705467814048845375430052940017228960829984921642563347065558967285802465031397482150095792813659578019713571512305263492959354749057379912694688982451446492365608827042730880482724162940970670163840048098619793788324224659128210555710073322661384409989250614883308838478146273322753765122971453477020010134143631282414511558883195462688665140515936054947346394899835515845811470285360216562675566627080719510359776487208742093592023588931280230281779258354252123252284427740376818680395372631997474637433094410922472184158745055615845187191061972396223060443467007017036885853931225453451866377626849008793141425390027273729998336714853883195582892927076877276023449751935939511114712220155232381442329431682363704852576681687605413028439759228968843922300097414808414186267707123991165151361067405929063315112623177163034507496662897855825076828419702205327866586583885078657861446602933050274455886770686007750879384341022535013360558534243472207880613842168787368772937754121721968828171130938987319502149303912947310354569569934475827549125498478967623974563927914201398073738518251653835679560515098575625573349570181767458521822250090915473230005178719689532269034974621601194763347811069418556856412940140923233912194737600911210954773890028289165191812384308015389386884697064810810812154254186814517063788529305650445900606519737400957771736744546044088528825258723595842385924703785275197919134565975012041341563843073365594517381372588171635979479166413749426576934199906185003285386378526879256090222361781819707576990783887032193668006181034352649973644673886271753843024347742682829985751386462914254338717728845340939560806479339281572736614511259256051217832248338621236395978445092109907973013381299167595075658563834628522182295724356599777317565801677257177647034312727100868243047964314748706265652077641257847275443808675890652361248030003619121599256615387129573950986707029450966435906676314704566943370346514845664130574299133234506289552136776480725666283793477309469979870718591741656463299765828850991689737476549865441975959883990732084093208189742298686171518456677665411809877379981722724948589263577194013708380476210093514144291824059725698449209855968225806645028851014891669959631921030478484846411142694764403067446936255281286764951491122718611326086567643582165818155005473625064430696679397996616565910358663951809406564496898378966396684075963000707084007333143335978540372127340928565520535043681467420530145744968861738644225620014914229155568312498063702782629563578595197938994622010633352746895934466132272730336835691255408404946020432968385913112915288856029718446095657216665789258245962667669295012290545866677524890506592289804207724832251977266000842754909954274646945190593979733594776947600246833008514692253000888959765052614318416468226561271530699963418491309412985605399324120066314573057093911180995094262563907994608320598110984299343248887514041348590755145591472939361508826914762006844368131834367676106863463851423909838537428852277019062231864359668155320247029989445181870128709716529047852809116015719214847982615650727995839413962952797082095906557541196668214935261546537659611990150626120255704901864456922869615700900206474134416672129560182771768404517911669113194666692520655309431893295655412111463983469939831320780344983381690780789823716508264773719001142322046800135578257527274825629820833466513637632710229974434824690141658910803173176241583516900845099443788288496859521234282628593007840580171513314172894011588109498161094177059529828161386734645158762675545563810277557285694059689243761418950369432575575923264757806048976487227403819433450616173253898572738257159055926175928047295346568925933340585057319205701905504817740147640720879555777993757925411270782721883459476291252183709505961397211945784682885348492874221743893186160027927929781134768327955762149605002229718534926540695452474200592789281551468128321833615005704214295699713834584686897837266388907366090666187245865520189707431694786234641331300919173821186632672537644509496123713755073201581533417383476105843600502763523945983758711969331967668771084770489594986295597240736539810876247874336493498383363950496535724797478938124920131446667750056300643638286984344037603652048116222278908551776107364178763037065224606032417314382674426787076901380836556329669474483602602897214015062907504961078132056052577500660796317740870069629679965543194273751937147916456134975921395086874132217340934671456466062152139248984405525656857111181751025679987065749240259144944090770580870428531585460741726182853797352061825529356894670050992040829981570405222901816541404446175629476876563817624528465548546430833252875461239101171593134830414525321562562222860798744506079092300195946551574967753472654659591496194617389727774857753564585441844678366339369724079751942902482768659423762480697160631488964114976703123549248791007326492765779129918369531088317673172363359283400702285678453726013166453858237422067100746320390270580586760904611869662571136565950939595848305063218611440395073987274590814891534328550187300767404424754341515186980480795629911502573119379071604019330938694535465065093241536584572015093877738558827018098112387295546655387879307986050878206884387400905577331628874749091448127056667573903075480655348135698734509719622391438671379836875526612349163972612988529866534475577975772511265141960550998339129455187845526663212917191003787792718424720624043411785695899846851288090259615111857693936195704907488372115027055537498443254775210492985703398194990275289462917184069127834552825484921478494380175500272211870362639718600867422909908442341116873550202632260570732999900760222120549280351176552558288593564351116633877251817690166272829337032986383745396233753457891135514030618160949642938693020016573062542208923937500359031492790001982451944204516425362260308584378257693203675153953338756874680500124278541197312816984518018490950229599860410843410555017432797809872289758077920459845282014769150718905091142158720957283394934760397331855076192490281751010334282860188334865797318694951385496146176300984011901199215635887980421620566668170585899165625389042660436261832595826256524990097324007350835928946903854624989362671190378941018009884705475734777187221251985009242371234746401142609332705426946471368073583627971537299604340559539747158203386863197513669978797479155291752031829602701264825686716138569475852165816528006718080695308914424430847630110918982244137947887134417530512178451854120282341414581715428620867450910908553464905390823854653761549641097483145684536928782828070426425105140435931443301304885857256380632378784912403231367864521360012430619749117755511944812411707299222776931061426691492005943809297558130104874266285919779436990017294699742065278998338504268683956321315106847065119504883902569166618711458411019786940244406830136331485380037654105645377717825276958666615456162797205196492975824851367557260119771376324125758672495104222304623604441554258666753812849124859038509924730611931777871564498743538723426212299020841209029765413969090927776214943337639312940259895830055627814623493820004453644809971532822486314378115804795360080804178160197752510555153855858882115101561573242166966852698106787702475845307960974151249170579788042033780547375264462439407315959769124697392605039693543370775748433868297544007849742624676279519772980011709612520196830778914668321199571706828120885862253092193527869800543402933947337428919049773731772207154966001834658302479206146620486416097122746659180802557369503610145799254861604012894443610272103533890507721631424981443183552359140826795772174504987051884893736222233391113640426922348362778893629974319785350364014902599634925460215150133903384915878006960851181005932268777196749462876627083087240294003288953214020289736195408989078683000400458687144803753386737244975728902855007123320484684639009511765295374182499881748239277192463133461003163897743215320196576074991706838939344968513392071643663992858409099615472837364256242296938591406152241242982608667300143900701421965595665675492774010402519026073072963856376475850788061414372000900656010188521165672059168547876758614505531436474580932431926485538119680160232680815377990116171545168254119440293573366812123880024510945673343668738427702156309836542700401119346070911422032921477333487210523528819101566684429560945442258085688465174090630908865238016367540818340222399654921030349873359520886531539030750651221011275992890818460832080467596266422293362282610837415936912277841382479692315799576442384990061610527576355403315749155768038643827807394381203315755579506016378765366520758799639732054764689158489810870506105507651239464173926058067555015072300441361169094683283140271881061064355858102173839251840410671042826751130427434215574825181832646045495078453833907937669853068842562090809587887908155344870119096073438367751499502156751957035252836268520175376200535992132244820656930917324751548755036576523199145055036547183990706531355109708467909404024508173985594517015382462104344987579852194513531612769922829754663185715497137608308247477097571559377546681806468905196181113455453468218524480762966504404943551176944695477138050382400602506169042668035315168267572504140087335667981334644846602665096889461262281522897572426856809833975722274870446317760589630512983189071353054842989858461509623091064625322610237428970216531790915202948399564448495814666147308386153062193525282813046476386599376926237327652216820169224031065271028112514626903689914230387867875048017871209333846728299543409347529018663845467541184264699693564780390603024377727635841396333940071892305803797863177305803149478465177438566115218748913528228284948648284841149605385006878899674911772514414573596685841567802129273856849172505286414394923747534570969693095922820790578353541487560328174434141970120096638611492212538192139192241271737981115812709858053114326143677127056939754763281381686180102181504064741136977140904566552035549527852829387999978240927151062486994168881846409466399129210938524019527742346895232234135623533337417403430346925906567333747830086405033615918914621811802625897288534176466095100259606364474094013777790273748187202968559508529560182482327523060139832494097614597299833100719064786022167021581661814750933576954542297955494685873870793855751604172660458042079467626349316871926076680926730724731741648540348692077124363393596637620154008091226729817955707468612400915872607421988580922202856725018507488201125970518521996647464981121588654515018666317599036868074228521733039615316588088656091400789375226282484883250441697299045751900147909076830949365086556467808464666157732171328510667281445627063264174000033125664374959538407251724138718649001559418034941741022950246223437241809708754228176944047812197921745564621023345090870112452514341023998956976746738053293762794055360380868362360794614318775905439294634007325673695741823814606585134952188490681132007460417292919217442923700299444304678761405621233104892744569183450299559018032437566361297508671040204758476198961140092640717452112426787122132048989053020057468210557137272102984661553774577657579742625804104242765619450907886956138960815314481712922220198025295840045003170956398644875159368099813595122821206867032310100373172332978305529520346731779939273314284302084127136273739468022779232841056117577335964222902780894968399340468050297328623589626543985604367102012846473246626436751439188266389385103955024103788824789630095544391571718095169547210661036603235281296099700243964880585698511728371683703708973179308648261461031229565216799754091193376882887022532578055655495616795219592721114318235431631702552628591416989189164667442694521897239767292504033161398830354140901969682806280789896910894480541525998661156842844888949193641242679456521031747429112299236876709663857408075426825139182933613931006084599749212912439691115916735828206703080520148099758868857011717344107546422861031969996060049346316003396676706466003514825438694303813867305957531448695773935288247480787867617604141382976953422197059696576361157192910141938200200004596506325050657014382388840740524296029078938216551279917501193829968548663173530947135441996510949890520156216568421206843367517560058758881217856100897638276244118689554646303132631392832464211460549274538963190982602260314092188091340662529408117791454077250232396660483382792560026726740706721908451971467469600440363079918778841033132576683185039737600782425502970880296789025689789323366030574616693854819626863722982722685752059706955059103010035711409061211229447435113339955942578348711502343384477740095044829711929185095486027655202944085389964113641509562189202915296789402836673865930220393591056728827571579230665233097545314133379765862544042603512837350699339753766820729217659293067771276949787818989217992184769008627084095913778736550927973894272460780263297065166634893981100212208135134170235527567791265633267899984564579334598784798498835860407004063240101725326076607188155372706605928431300503195660139357024521077641916753571861282640550406664575039760367125795120952613471628479036489755786937672297012885800689129676953692816920018261828830714388718941086127613254957241566969181914928654787618888829625065244974988908619694833678182139260268653624427005457997833165804734516163139807944194003070690976552977862159118877568652370272442909086928251595510898855572816691768188481656576167665835704924451401892279937818537342977104677082871475077523596558117336487476562159283842919334554582355027496826769036669306575330022090138480452397115396234179562297998644032217252005685681913976424470812682942174236773640460424339874237808881072603408894959539364308166859550344331671326158115295688620226358464487328248160971831080713045793966287655971105467224000854941162845151269242766419500701203551707372980189327154459205902735366055925550947656715909520705280064124838825967795403078386979609589583298393641128016804600655136885119756919327132186798981546902833848760375501080612626461158387942684355631212484538061885169931719695619172263599165466053385582173089963761996335309369103769528083761006747393357722844557703824250011685824676434452797966935819460750165861265015915035571052974986800047178972067120034068734498870899458666255939565136775815044960556016031183376749700190858952526777866112334679990782438419166279019153589012116254499586988375616991988799603405592542148073341377910970022535379206380586326516648499743337562334474541999101933959061904081965677197705920421517754109266438860464522904827006751423185774203349788533792030984233750229624823365347767759675242103502906234865002449170359219249479620850691352101127969005369497478982171585884493955726468589657804823646198262391048056625906316063689714910700359408033743168085271696244337260623890709470762647233255128358451015942083305049054539341720406333368280120234825568410269172989824914230247584710504612981826124294441472648776627936270107723915187427440735193564598426683515141918335527094847341033403769822059666321929503862126073704375799204837316539018617697238698927667832505510511678620559176703535214361694836363781446076042622888317802105857434997541626690834637488701805981757867427974739214732486910058478482963156427474455557421438426749271682315762185024277826913226644728577675375579149620786818760719122884184727539846394489990402200665271566664873230618841578352644723512924862264625676259939206391613631561119883518622820767823363636522594610583031161420362040817014625146287033243498393562139873119035915544305329279659325278769294792156574284028383531318583547503588889285021907261441146357324103048490249365990258987871839245115342878791563386587083232616969216807917904881454314253824926937583687349381743336559312416654417417726569293504209102588086485819259947119679579867349168613482398091569768181747609682484874918573995598791784399744076483220859092095629305825616603012125762352208585896554575647500786635774237688019376006518249920885213219732304728030111930351876694159585703856515419361340602023389376976118708099007267076307358035668674910395085758146328699397621543957471619492432886481004809838419182115204611063456245079940607051584870701278165594377198869493830186630468016308973879324830609611289373318360027477258925558334261360084669700317507435609049569202515458579110421505746627613111770118573211431309729688311520551419580992646691205466072231828227452419152941997336104487389198367142831070903401211241357432565802100301259261190041505567254107274139803914011756167516545147893086721088901572474149426734648270125188466578287206275972516754937509110112965132501684540071062683831824053902499508252204829804678698890322014109729631097585436500315819114419585230262185040178901860504959410996516167899032013462840608162455519695449176078596513558711350510835594274307604606517763465233201600537366927112089296989412253728868797943253340200893042294291253863455789096278520345106829701219349941630688867519460343924094081420140623480936908270354084261829425045871130704301895634427116658706157730840226370824481557218818282729261587556052413944069306957965301669896473958972912292422326236084039554339660521212774707445842099836155959174010427478871717626823147223053403455893005049038087589929676355539948941974945328751942559103255121296523724564016022680366857022850062149871431339782814891347031699887641235814619461809262397250685253025156004349982652925593574998044230460225614573351419579725332932191817248673736876573713438407490435868641896004910535989826588978857802189411396123932696630312560858849919760356757502140396236723271186415678233574094294935706891758479222475123454124863901216767849621449482135356961111332719874340279479618142998130166383838141968564230944694636881808875704422064483590497179191576678041512879147159180467529327297745908832151692556098236273867334041120613748080030119363815346873689187536048804227115233857309792175403505737717346173276104661259114210723846131299108632539972884036266210242227809638033198189915053300434831211542062753770015285175734344855240403035894090835285467072566496159706249040337219063886936320943384111513255475524026019868512395024341015289887299249015348649124322057531728986776983772695771688504482028064569098002951539912009045361773168233947379035214287613040072119731539932683357746874613403619278516534987242207167093764792011210040259530641204616674366763499873113203588886068150718281643297959649065429938498915780769209297189297768330549392461800246303269298317688856837330077234357380158514150054274647326205423794196399254703015853643407021684284707029377894987926617189025447887640574778717620551587026198202731483178866382845177510931132378925944927658527253667130405253114393139177879157142599165586823962064581526500050879414976767873874623005047827915300145975653246178948305477831130168381827981811126797777265894012338218717269202832572270476352649183170237120655027176746435319057407411250394743988283843623320107236922468738077425469565745130445779303767616240336323284447514039666722950915678591775721982731805361357894810179542091450015158114853896264948372615930728926980351257584023609335617971423243594468108941804324868768760186987700649680118204743007685403473964031467266373225140225461235798326831925852865512689028420790517256985026426134433887171079045174045613785341677491979030996088869445503668110704429229286289466582430497724221900187673484496257802524511863069697663742583243152987837254508026787486124704732685835801802712454983044340147969345894546509181901207116126143324552942548054945296230416661824705855265462224100185769579713634188893968992788372841059674437721142773045814220229267177251470800678322996726718351271040299268915189837843317441436358618523745932736527190273546464055820446977491568268212462373288976957544526251195165687103743469745399656408670683558038975833806032144709237151045772332987243427676325381792513726309795113568410927064761033768002116337661127538814326283541770630201268427070908703956354669973471234604075281499040750661130981917177587671690706137562132119192972416704668387297265468519683737134439171719648916491941166371924746441775004624190926725357174869001241790455203800198170036309778799031727383297353791340094565442820512797655544669261181597952308209457617845792037960576635810844775505698626649649789418781757245247176614764810766093455008762513464593324186966853908230229060950427001081083126245556397171042759189746091885829265804418412547628445880238757072040983593908734337783935116998698671698245984699350908503510008036159393342828980302009178650618389719772570716718155031912412500706479844438537098231552962188174905516689692619935352967785227330590092354087062999013177760544491207207565237426604389586144137550223507950699180129125624955055357637318274636890570622929865317944892783719886675037441220911783671657357541993931214871799667665787641498953471974411040543203934122400257480083185336831404034357364737317874920343422429785611734098513983806902716737848633482818466170413127999855790231507249982889899795394692393210981547417429308223398913669280078314897229234682914327027238919460390905482851465766199243537371556079347284266293226474724788368300255585023719291736600898903458351056833707977707534742543798971421649693308218523856375560693532644079551676461894216821054861537101265632258025311255261455775770185794672685652110938204222685192016494311977321636693505191264638359563322293035393648691095522227181718060961854550282437204072892004660014567986425884475861363762959901996703636420779790870191871231293854026843667744253645431866942100647633484599876414630240982083007791369802263692186587807534054969422327960092828764985825556751357301658135371076089749570996815271713866487648223039844542357523327580066886604453028296917670112227729341868729863191056472493779436785254529613331111307600356631991691081203889001659744249953496141606798555626884827169364291809165099434867576288293630409865221195723003486002236723780032130822424914241248859944746709385562557786704784624367990598235957744507049328334412352355486564537102804305668918375593483611163618387411416612107164576164471082238404958018347989861178179998862937845764291481124705684222760187074247798119951133743920418449792606352674110229144305852494920738452839931326360486937825766484845253524064999194749530562693955082689041124480612646907305372132009119996308989131064765731386876581141821655810717205786427353519195240846110953281710721593141072180942995981495163717356522631706875235611729050235721100907685651087757163153307936099229510733891574828291600172338273909160434687883024242751211570738045157556277389043789162289913702835420227482430812427815884774427505421093347781812676256672168018273622654686969286726088213696741647912359961533403612443141511489660732576975199538090140381744511256964362668328115488920924854446181800734903208682693112845475634254197593635020075881526250075130077752105417845092643143370545330675679785539525008237975841839457404678180002278448988792833039833177599732756827629347375628785378320319016486348555253666665361081464624502459363607239520522101403689060141474159674206440605603250904157368802539009571953493025078106795085836917023733148447999386190207209516898616589701047077437135204157218975852649045343439803097496493593134622731112443916459327804731666225698905871385211722605333081781326558679054787394997382049443363255005210393392846888465766524159512955602103529180410976405154717929689342149530569129651805155230855132255363493258945686200403632930142744400871790323705470508005199977135937401278088065984643309523343226944280737014334014236761960218517331035181973064449067524005137299664996181029468240479495421189427683045626099515971115395323420869440525267996881342102311117577591877374833543935088039454188293514835284168785835646947219087588416039413769893370733401243257117000851707150103339115636687628097902076392267804223528454438238093708428122216580284348105299189448721220004102326916991886393205315149192149524915529712643403525014832355045736508183771046590682504887439497376419724718465328414902208950921022351789938498222466020768432817468018525525499026227328717629048572622237354463475999096195987849943344369377158675540315939647600575086618526435743015692050683662894764274168269610749116321167303750229727016283975075039440144448912584248730741994981417707317153561160992775303833848986973497722889119394323546087234094018975842353498697504299794956995310893625208854021221954097647139617849278585969682880354657336532871954843750297707615284561794247875935565173207787107465747363548429322149915793815667074817214079937205323188771793305469911944466465935581245960510340500739618102286693489896680661277245242901495569318796538319144307875714154318748651696824174937226399586822960340950211919039701206279696641001537111542692866180567029250301671862825634350829542623259841928709829895773933928005796960599878364668941935189604896069923085312538016833970852157564018024686859134788783545487658647598829204662220385075589765850952151987341172665248690322251356242846679513000863783106329628695432992314038714232668545805313906953362064593063866075377010100552168907519989801656874831946932676468041884307965730066838116970167540251381071082090336525753630502214943729230910483361809258165556407880359821999152249636041676267535020163905313451329708249818824643123181920231410784315969221009012382042255422197690596139295630657933969777365389417650882130898116359616086773491607403894843594112426092887181815164203943637937126069326733149212500116333867529174386221716131383805252296812385218882733787891901725068849039313556710963227467532266674848783506126053783719893679490791521834125704923502592827406981436353479036313784007476605088685005308747794936677213606746360892901365864026561815549130702702313816124877543358996452707814792325422168254870355372332783704955650167295835306081329376253323247881802664761184109414313455521657603873051927529477189320832355086850581129588933155142250677941236526569632108944171175184174255131168514443200808946369240904842639741816439258348775614604779199823506851973938044618714645333483300241321243242033615178702976961899606510313794065996276137096689480201822361454802817458939157712370558086127348847043299401682700340553774140093424031561640539745855563411263112103434807068670520002553813950120658426356225110187036869475056673716126776985350666580122078801829325121017404563810758941952811392167949339008420790646873060393969576919992752000088372691739408674936707712646779190750986622141132811459234582111295892512021350886683017150474321468916005299484444612524401611888934827880772531417286513682126900009997597867202742306375704559702878341963519950246320048679209782361678750647814039215299612510959919390053541720129321470130477194164244985681493835221145811923200820261696183958822741545160138545169419190631535844312414831672843862710233614604306705855654055613902779883987921535603646763786857432991550218761389191868837803608135506034049122111345532787612400473835936833854651765542207781603623305256417786127197258682611978949724654526288813515223249848362535139016234083423508601196339247563776681020216389482633671131517188972980433171512271770726837921615599456834393656337670980164891009456073730295341288808817330375507064959604000252552817934795136115443410787768084020661024562841156501101432489225974970024078543522659770474674265166907246384146321982975677712951685506505298697088730605534632049921059234959553583214254869756927162891988979253244546689064641656791031821661578751818943224715597112172822534830989592082862457650260428420701254345016786825696453342792491359922387309303991202499263199551647125856287487604125986176790161393129462927599992118399716837009282004593795932811128318809726915604744146692031376212019769276017440440183693426109046447739248395673348462084715062794324877982786624759767798955420982904573597868454068196439785957690018807594309298052987178919692912729874865905855234920146939864812677051998157661739504302416440414297998131193347319580344373959268335890903225900608672408436445574831475296412983742088202401125909534178003993628391025896759828662132540117431689065380019170540876878063116257059763451087423808295391523197279741592225696976660107895026701677733729015383028730252204596790496439461753992555336820030558726873493648000155965187054932589142496392315571607685751978184026940903797710349764578427286258492933840529646420078945694014078344465126298024492641458955499753121080223133666442142713094820824788519218562140561609851188402379898027938825138468197953155636771240661316368963878312444581449731820465026099342643997137935193344166641505897447628774120287241713202612675752847326453556597040584813750329617119635081332648974526450636385812736313696181139512171493166309721531930740955929063969805808441209412943418025171441060370800478748607890126966918680152258334977109545722297863730939105611262886042661966452046309156053804105931532187407397402834378612380574627155178731439171456570147400240201656834563217525146853401156674297508083337936265603513873766444126281300710952181612023615328175121776927647573167680448876449371670359149154041716264942174528610320801085360702993738776352760751548251463237333781226083069974651892584311029552994003496593977540863325296021607308943866638720963479435218055783610924230894683959285379169549804971111251202757771456707895837522398261033225105734586508993956131559106247375245636313066176528343137345997162471421063034657425356488122511890103980725468010019116996699053503528793861582715115134587791975921997895225669859206982976215805914618363678786935981320504286942832493415709548689880440495486330936715381616415432299693921714065727324555889977245671583460589996939662400331152011785180203546182273292631186254383808586214546568303771926004139595654610574311200270198836814240008515267480291794111316755213214500957374696305256602752946100343142774039692399603317146768030724308349076040193386361799335513702925435440391927339348323216565024211683613929368973371969106177261038199809362359621158735739584048498480615394839910839456167693619468073154003584125854192873847255896318630045268675772721741249555379895513198708541770335643143174252576303325785200977018786668403923787157554122240508381996554186087710689468692072763665005500024707859805185001984268367369115097998393578654934460309577436672659178433434428322991881094602884984224387954731816525839866603714722171396869832173760207196469034438953774383227712182263614660836885791653120546032302522862668636996015399410170307346223914993796277856984189095607130156843896199016131906089074105912110974293409236992995307964561460037103543553896398068173853124211332502010010563012243744615105141451247710210831285083996257389276741568182661882264002658981369952162395479476367497388548166691045972746481088494699192464524657623302304041083295785921534704601083975230849267772135123845100002448871833083929819040627348979734114794333557274145309259233502278978848173824059217718843555778217108903554526794672572541079310577354161074855081799378369563841599681772280322502202349843321278481715037481021244782917217263053751771144407496753400657026061077073575374494173696735643642046471040898652151645710526241533230896832087091879906766822259726951894201154992271589446317157329827140946628538837948493075552895941151638183776234488647481014662360373185176596841091109058110346018337991698268033444456589522958855707293256373306716117148948074113702214762011649472132012718387114021002942809713723401540652062707611131620830407151683620017926864596533110192967958645235603987769481337943816461819950173453818940826016849721051136902889281481370326687235117705012008503929635209297837258838281112594343718501471961859761941208357619260215768703449608951593421299913531726971873998380742377618693546919039625320381104270651025025343881551172912414488756962153972298030602214880313729153126724577700687909511736633019042581455769107446683707855649881930585689478123264356946086454179779193491161424916022818744509444314557779595852831571400166552023796061592230234278826115625472878967839602905610912885598303087781990050256965692952382585886650861069570763243997436402508021024573210208321114219501798238491722164372683548977103458368915732278757660788467685373429634069771475476671543860785515352866406998385275090034297202930316561836365033404345115531715304791585643340777916886331407485303723698573720757707814512410515172622883464829429105200108516085488137169911357805823063422929063267937259459814148413950147610994015140405614998369886308071262694692205588438598447385611110520988413747914534734216423163488495682129881414051207613632263609528859967660958644643371683553992580572336759712047085723569504607559184236983730272568667103629199422681704749394826654340969217131620593450201019028869530053178856676770750647934762337721497530468162253016431387847521784067979095197889745490492841969778410422202927098160824657741025632033928883316411653345350230401742249444263032233625575161837596946120728849132295174695575279913906433003773324814440893097981283185998653296318190991591386581016760478160161032190289925826847806534580692298166107688091618644277526090698421964759099306994300556355165201186942728306872031833859488986460888471624477727475152988381711925492655095625100828242224297169641516718237402482521846786604198835437786550371021980178415666959205505934739493020716339636391757023619282534247455426204465813877092908065366929204262906976492724032791652300708392325677905422201255565061461896961488374889617569495534622043188056079875048172944748618302669404161329605973037102030611696334230219858455927313563903900962089761998295794184060744494334781857246753718719969784386913014425218894948761726775886498797535250489299265566345688832755249425001674033325800460695782035273034826862692064292709212064322791487351285378724328402519641261599387101929842675039707406262819768444558209607857666048016765534654193546876766262583737854345838714945593789244852646209907872490696572147092116302501171590804649287134844359257445916479447467410853543275235888408655265636461722762288183648577101446176908603252768236193857804068754409395813132867637140223051276084313440685625892347832812070521267846502981172117924904637866265850339667175836434886890724068710011745273414255244559483669611063706233269983236132222024920802634601147801984273797964888506704786915502800267544319088626058460692090084284176391531190930883170639164866904391766868798992987126926477621340208405920544609578538381519684897517815571080935963508167496265133621166055300002396372090736694944031430073769630692293571992836665732307382935988263723255415502456623311653484978358164654948560690302408533661041443744718854441244889766469271907755425915330425075505940461104877729182566866933146547522199629502109950491969795315811081505010593366691656006229109054977608016217001066148874314001180654133138732370234049913895375584102229670707334566920633721769507084326694018591155996661146255410820195859735902427474063481472673918553972479561090148526340418556250967718817567619618637139021831850464905779879349111286135496690902870171814965467976234522579449816520872723277645791899690600471043178972713389795664000968890678562935576172553532883106697140970625992411024860601677185634628642711095675434690156510111724682403582993673265954073500097368452359165817432204025386835016129701317822811680866719731215941862655106630240686734924929038214990701076340951487621380566008068153045505925010250213987161345671256601976396806184097522048060597613230458627984897767276440391965467849687675990732294517949214326166557862857255235765924291491112976615969358603833567639039388878183865907419224985249644524170522666114059654309747900054329341627384825388616723141615610271542344971158324881279286556966658085111559665737137952609941404046346358522755114665861141066554343183710102085040309894777912850980303053103537437942231549773180327341236862691742810602752755568205524955225548417676866806273690893154436838924551648951952841121672306275975849836362823622211782521298037245736011078648310591623152818989209866923750905789611283389337674039474924327019368358927775176538713559905991262623631713465395778871261189762046850064903967770042855076114753348891871243706521085802125730821241602252389349500535048828032663212571042881726343690941693051393594780129784760579402824502505942598934727872279448819227459357913404135580648904550579756310693118045055315543163654155098863946726488219531350926595259516067433474644781789070524164147034238465400047394513689084408403751000540469466420022907986116565427808495538869652845179196483115130046136036890919872558867685347506038785824757833475158011861900463276788839151089133696206613723759091018477155877116977212238372222600608027232501523097677264098025086874309028796464187563898861641889934056627885681904578431092408515134121369164173108152847650808580860120187644514425670359182522396912086112542920251083164117802137608800312537896965470807423397271610806592043451566635168294745028528619891273166217189560504662850201438925408266998195985005123992915169770766135537937836408864647044428701421365329264149713371377878106957010903991161690610505080274515546124456903366071450569850654224226872214991274174275941779423502569419722808199435744131807947502252633831470641029965543176830615642694734084027224346151780589615265035057286768573306444232749344974148355291737949858993954682148923898026214410622019373247759404081081550416977398800522836971523079423035753515620069513491269790693452469606441126931064824514143384643414926965457287937297135655534319870668835352143628701757364834660327894509463801355494936801704896885987176337299476465029966678631587819740133125870604230433691189833532730498258516895551841529657352975673798268852495314665078556955226588279574919312994355815244760052058802691623548158728772397049508503190400477979888509233539127459844432028387465635105494157904874282007610670594108399967188009129207546085632217226165639395483372006426863122987622741845515747918493071109300974761839255292908064063456659159927010187566936351280248711004110634875304910230471066565456864551788446507284906199657015360701288449663080602294373015508798020322517463598115003498804835595044064457681498158787892028060923606500463264360191393064846083882476673350601135153573301977008430809651994977080987427321170835339103297959362810601964255486637985987647562800251536217600882410431509086036682007777719798885883575898068428952424284980534729701529033520956610969131619786575714876959232644686291196288337649622245489916878658131953685835139095915203659768486945381420327896002699802340059118527575398115518110997605614742833834188592251764978391296121615317775165609537118804726455192243266297866173174236574136316197004151640412321903685488920358952835131994201866268151415425904444276775565765962280847512187539591923863876253092455852316225524819665344054254180318317111435676533289086947358467796255643984500273011433410654871689194476315906026510873592109845488705947078945584504116089979633400571213861946263232212843651217277529056034564071490653016419340238408487502039302705112206178434427631196641940587757303963881855338791265330100422115049059751058912350816248513184903100018488741995242421943880661050900110186972001436515961570238454901102437204123789448805635845638042101699449326166987089274031389885242224501975523806925729576632671706254439071222610476188953334369472628546378972207404743102200584035391499990601646501514045283246379206608558877977738649920986916678631710968844030996102215575483844303298609373733107436335381300812267205412193934421267221006920128129219272616297627674164872096365111748457928380848434682421912587601968040904301609905984194836064321062832361077420225124415140339236960239810478313046094635039814722069923275108521168823940205095715611156886275433233887828342684934478069255083971077302421250562737454535837927034571228440591944283089814333667405205337955286247457281654631196709983801461648521486086388956517917640679084391407471379368732581268543199601410429494657999428190386056672560926121562487081448050329670716248999492983583383423811924573065491145532800226828245323054766897524703143936656424700388691567554195918485436319175675286880388887659492080133936269088847227429570953682223366773617885394219490897705891623444498319385021278963122832232352572287089626970373308246237738079113698630630629113001033348141619047203636913195056854809306124815541388356124486363518922833469703741056466636165151262267133294624000142887119748409549170023962127825861386991988027998584790711796795096845459659419799487587279810053049467271031711131682548053063225939712964824560500605096233224425158613750773055354922032306284013563195795265726884082613309512737373208469416991613330909120645168405083466016372202203731756267936130330809101449169432082625140289501885545799049151933849653479661665559943778891117031469193977633916105374547543518802904707484936557221878616682702021969466570291204144439721945712434737962784934048622003502760876000537794893635506257325925763574071086468809629373781317903260480878227426086807565747004901910832653588246317020543806346087293622555872109300443160888369825500176708923783576423091229624599668197033512390773755891440495308299461397770336927931905010119173098775917932871306951222681073695651179388117542423088243468609574623609082474799562830853583029813539307288777930484529840556015045856372262902781564967215855405434946824828891385226792920946633085216737044104847940464325153448171735584591708169135689812853354494110459896998003992781693430817341647772126323740648526830918878343024864430364884352309413349482490544274509308580954590586349237191364170547265744560610872513327779399666340762595950195837783478044413719179959285150259207664388220036681517600055283442918826841269957273222407100942065983942395148535818860763653017573081875179068978523821856240895803976155959959503610019270458374432443029538303402696633126787267505357495805006585691757263773046836535652504207574127656170690365534171158787255317750817906767206279976336398098626410731045040863294747084451400844628682429561409592064100652962005917781405565029885071810770396661024935497611586455285555471149255693025939114327675213399242938438108069835927109558459327174243352351723154171674072028164954098500079190552250027380822078112576807085565611025358961441371820532044176591360860184192668298925378578831166735522875115912388073424874466764095127312080799973121391257023699923410524333100842870190615623235988824781961971896202166378564503268740094399350894641135667507616928040298939576661990965279898530126919871441569567699741539876640949065830434079318618657605535433982833877140743932091086430327799577589214224701475001809292135062329740772588402160032256436574385403794665113910845754842709600341455123199051293246138153780349982073686549412310665286415191769397113133799369100264100300731242898826919717827546733352569668384830641686554373337418418571233585268163318447440720461455628835932158202676947443390006766095325359345361233430707963985215877975692135745288061957563150007710138810890945815272338894094323131423303762279409184918471446666779531144531998717977226668635639169515968516502456165745096053583245162428004143127232452050265897486423514091351737564489378954970355900904604269349196237485323496013888451181889957394004146269211900562116280499902046691191130883669472041905056856411281111737572821215522516224489853891194644023291378640317949901637451956001581248765322681467403055944995196251060562220035710309295940332940015841082717163927085278104889510304745226551192042307756993305695451363847280996175422230410590887475036645257762935078149529575870487686723607224398140066079903561850876153420550828317094179340903153675194981503909300089543446594578780073803182738171493086448415135095220554723697306058420367309874263586938662017935328997663835671685275362344249669716119691414847734004920990378574095234947676264786511770600275672467617030533720425907407341857367131093269169138879951979259009485522062857419783515446212415926262724204740681809100816699603444843134267007993836918800064481931981074570605102901569999055614618267942506211807425792103559352566078929535861563482011278024254203877748255693202799571052417681048103617545725849420350669512058701481944471712979187747546705958757713579472812678650664823118032420067112528770849274753321343812764675806719124371290048766308690169016020843915923883344283864386820499857228329256500578681565128942388090457344035577398019001414183706308240803051034795120469920664400396093180855551349979517106552278691563295578533218968197842772932853746359504575053216239507105088370941453223402034538007821739685777411938035153261136391767944465329322106162829555158274189094117735428390367964941650055184960780469884735783882207523379159135141438597834317690811860235628173065957017111721270862276275295781806433456331020397594367605729607883723016850550570068654138106987436636825129644946114254562414703377096618208641772020482655634692031483607495720440825441602708564597362585175724091870484837744162077842485088923111357711242612932743215110760496644352030764668280527497694846411165977580155576919408962062384832356436809648873374807469535325985212157050113555270063813052307463535438805595359747124478031384759816815696795743506818101511272031308465332984182020344472565580920389360232507872895580231418840039375307424830735947120555495390249415211522875087359036161341135570449772253801370176447215015964399625048728855682218285730591651375141232293043159743666661664055969828004356704459160659350440513440378695233535637362321935900365540273028145717065053007082957755253309827510681712131560696344100310188788542017083642117788720841897621442845477958368803943023392380830534784732617702975050869372544901233635431611950824734952307765441764632547310102848572157733271958663968803269567401909839349079030809825989291212355679370414348440103981828421293613552863173604770759445637442314112867934444266842442851328799633432333069625691399039420022859870321605794220278530078113400810830077247379238950255153670920967760291976247686338535947529645325906320930202714675776312080472375617917377961514852766727244165355671432943991258885073576215187557702416348454479779750849467981046293552244266146214454108847968552027886688577620213639829721090971304534917928660840181721479638018616017222353584577527436346476190562989172869084469776916410215591548157944283561067947286214902050723938275877729876131461006931850153264050328398033397755616280527038300538943426076394577806996716385477781284582973914917833075120087906232053021309024404257663714761199049734858702300596693515041311550386751110985272463339712322980422643505518692817964534716597858828104875456614885690301467427999599288882942537839985146010217382909087723125633814286200872722856784857605913534103890993477584804510447338188480710238432832116976215330349105451204205297001873002225224790311756323607443515459211751946476088149400281049561594516713520089576122737588234998502075414743183859683923607403069323883051880103248705044491656272458341206420355092979137922075256304198854380394148309805264110831296302418623030899194244663606585904750561975957237426653931915417089255309602093778456533607194601774383305794025921216581812595615663059208422333449754746696316143309055454272005834561927934758778626795591374774248937134636794416656626598664506628793538361612412166189252235317084053221934068721937757783859449522169780491531890138973445158168777647859721902513327856818094275925495639309567590104070238846373491261266221667538751668474899739174899875778162861600517971269255476964115905077027742221790860168337039274549614345621960172220139209725189362412272013201737771049020158610467539246222056008453987422765710033020145234422625876567743881010029988225452484828852776404713461048381786147033316432520988036084840563829393625567676683736453041045314586580111072367681735116003251379580197223988658278757426832225238086377670392859010764285760969644290396280143715864698810268655308186126147923929466127753316148816146100194601037449782462564235088100062211004370934153869881333003990407823691231196730291979138787333622656948596259008685722507182485869763609320455766716194843283899783894466176305142525955094229031348316849835230075725167729351171162605251545892579228100247272080125248108897799135790048018754304045926308027082607411668890783511410587428556613341912829491022050872417116154192227300807826807091937382205624804714643036748629637412233119143138475345018526326387541111080583773775544536924214279677181223094598827563145108277090374671889166229447944456065353290241890155106427367172470553777424533021780710031086104549721507336479382378728068663039314363373798274908976482962622474161088090394700830494813448654581703206033232950525838975168573864804311050809096425232178776045326609809026919280541577625519589202082867948877324262924925817664429009948960219517300096514270321210530634360606214612060213607717690740289157403001792646081064610788919389838625401462801468957055444715647596866645340656287597445681505838779209846092375046027827923595430511591583741709767648890669983138640882167755009236018368063929040970464679353687385839754631307714513366593655522333592005062855659552220290705973463551875728150167330228189028620101965485710177076764465290450316834085071732164999617782333363538569461573981740467719848606952927657825554360272515005309255702739268761773502337121788991843768866049863902763624185108231280610693204357898749386459683509920715236445405519097695767495047841519615632905597049428980688940032414824891301543149282840068289649085412091735104966338867552461547584830597819785321917912297110074643432895674487452819558961147928645736787186840043817263549389359917222892126398268296670482140488200391024982352947446854300736368719194168651431606873011465514116687298582159946704837958852494612837329333368832364220054761403772151096617485159776325340269864452752880546596572030200223309569877895675673200482229201233765021089695142946505482622161329540001847407727579758449308274070637989062241244793495751659772431154076882437786440428323560551074847651797934580337968518126666793489192951047930348592025331073506061377035056474406635700217801098202510564385663788820600098017005355403460018154359855545942948907630728973026570127180610787641599460082596164756438929988675298609271392065950822026638592589405539408692512205030092356749008190985612208244889942889028375671693508134452459560148132386930397980723302304547181699682492184839430591860716436403605361911620232982219963788194575792186620492125952001344357704147599947098196212254596720688901999192672807384602827121296005593494986387796960801943847950608125807255044992599131573242686313655102845291014684774928337301171259744438674833873052982730020144484332941428177999237335383984676919385275130331648105557467837083469854134366097791622748184606640323698591629721282337086898207438155678205626128920707745168869811884885940526730180216684331443071725887940012405049145078756009628664437696354291033342737047426222237085906354040309683157636127436085121063328735847958728042673645202879098737643964627143934929979699334731479339757169142173051495098888193880265679594262745461454681750262621211979469887183430884310302206887523789225353249661635375382906347729593724458420877855549266714073779999899415049841669091385970545394316382058009185115079621106400879265327490275370159280426596639724413665762592907958387065410071891638941139502395542776855378300041745917343053263589024403562083922352588388630523564675509939449659943229945705554471199438149863335906903350956252925812275601112812638672856445099988874624546477729671678215632847006475030596889536677358770257370407716109353055570162152228600623711813187196620948299918750691515564187129371234646995994809667735849622563123893437619217928672815081333558888743626679361938672327831847194016010298239342423174350894878054584077509039801194868658376396680122667010416782742498354332304918265986039766575145390436954628213707820088788189322155200015024315691782687488600943601487903514458486938921543517687648661952567037255875610111073025693597630064264110687562078941560607398437638817691724782256904412486547979117035301473959843951773470965158646721024274422835331220894169840020983165566231034499630551973448278210494969077562118572447627940148379227209188383474800391979009412000843765935278233869203788534147004912401427589783542707789900175009137415958606498908959903863010129230555386515426926638866135668770662682505047400463338880047313305455672026280274989494414441666562055632258906279792713673340070617842434402283241926249380664689234956029945509273877194240444692407389856170078084135282270902102634340473202404810405498898459149596813000610991055387499841479009916062546970305400697359022966918711058523320541949106078612976816363973292098605979945940838959192699398255311156017296765211725028124042860948201919111468089466160549805427162409166998814735190544455622458467106625721729666188280120558532527479726035061179731429443366612807977346594253259799391205572354491663861861805181042987662294439282357642251954551385418084352161927227019354368927766333520191939526708138909584742137135856952784712088076372193785786984212276727745584810003074931682573058803478985419024225373995658918507820462323786826112232576307612121914187814346205685460744880293380768660232384363848532700507910931459359989735587535023686819456349976633753559734402362242491704369839647547402700078318293216046557287733009349032854742743396934012461138133518022913336030185093391713413780961746329537959888438989759554606911483036696810037711952288458488968532957240398773469505880043240436629797550982371530975717148103721611426837181124406058794103372016827023588180218244614621283564990320211667524578961004294972939157712383677725252420826689012607584520530648741551134222581027926028079595550729949162137083313723902427682067670422095765351541891847873197470794154652444158596843331202577814940008002506532020221223231704975363466396112997530396412232876402340829897745599840253246401938133223169636319357452415750162257516686964014123183412358889020535877551314137601252263828952687101278173090406150629142285793780670163337808746254290183413591148227832716136491924472336665817768581702842733803002264558524146560463132408816171160788253093362946566900831906843716761732668050979011538871886220800812209652095105004600269518538275241547960008401102604240314573429758315815878380404948623749609130085498141319088358962355320935361162518060976238019220462349502299714912160424524617919860209091324830407831074737813977335140942483056542973816315765688777789059931842308590681619334820190316210527263543787541604356458308113280168414262248554732247613642265161654963034244540960334409533490256524804196718989640372622828230303605239032730409102633102201458415807143548145714513610524572357583604495741722185654118155762662565564496268602416470092100267749601009016480696044573987248194597758260737791981744588180896521932112966794540436376374942152146393646336548749340127139268168430933277958242579619097755858394156135947405569432059424898959777116889299110465077907449348793786732475559909052241573212678297335678800892043243399120357531460755754125933595370588470129931101524759100930267315501495773836396070253197517835710792529417939345211315534703457953855190182141186621405040490521840961130103916174567478771696729375965197919342382597151057238503778261464032250796397449719920518019095256806822118822555514191454813951783144235605185214205561003144066284290192563689580501026746640161321862372600908843130552498611687856760676659900160369565564344729901520300637344409724007259116058683912447262044687997464840630891994345998238617127418279271220752925804076238422764770422054600795488544322390858837565748025291145100929307625048859292640012573125013755173474427594772427858500192377695194871806556347719332423815856366808894105159890165080603331202993229998103952521094214230846351848784081319847733734607355414708381842780578999308798173819353408987860903935099807900355192420209006598110546415213047465211155489703772187855145854035277222481186074742240363013504529197793251104060927228999189228127605959936952538549822493211568689073018327226091344371697850691496171567248186470582473611747623116040678958211328660125442287065861756003649929422624619080067255817879125258530983540151349608863326020062087360894266232974435322714214691087697146884474940440379895331066541577893010433417468781435292564091802920482412644483801493771183651413947642779505825842078836512870999536002841011917521165800368104084286624045014169988065147033527590190244791419798254863092825106957900053122780611506116341479960850634233008801204988425259296531811144066910493193283909681780998330141341134121804591568048697319457817763608819148922481507821440554955573749730807581716040681532909985815072461192754175842322861949819329038562842696980005934707341981413860713922527189992418686052964313341347676022442125983346295831427969743032835155281197535957964640305381344450501595060851145109430124737744949002053051203387552532521330612682249488732269359922919361738170176424332713149365199827629064378244417880089787278733152885766366684610834744749565663541308570080639947261888731683625002815857057047012222570757608246123784277733317031360694423188830310740775388252806211412538081140305766054015921046473019047633523569002801634773862043733878794863743705755036894138317262206826188395179249839790412825362329946690837784223431747347340786615563587463232471977691957396742563405186245256313374042441434352631749554257652595820756393949859611080728459200983646560421351108280478368520174617931662810488100283027428669415867935819396485622040527784202752329263050163087495001130056887239496031985009265759368906454567629933167175490587197832433198251432193866588498435138314780134723791858158794283356721991932345083547882536658584555779896626254478422431340001101808945526774681503753942037741660551193979647580479940979977459005432279311128229279513866402320126138871612148745625012535791882847598913538124620735840584550873259054450000730673436813887876532882043149070940741425618015525420367243868076817975376749335583544889597255302017236480707530944754507435449118630462534540030377753008313119929267621377401453266313371862866912059204422939751119026216320648866773490650889771691706083901014588145512437136067352871045477233303626902867072689065506689496536287910961892764676352947633746632420204040285904316778981108988479866134501756832997150386374098492891163984344141497555975810561114539754714844724136106227079456893303885039467177585872558107502810193284246093261572243087306699064016833004268000518527120243905547052420993866742235617387200381721133510517645499829431461212463011206856185145227033802070585953683741038848070660247104865951760287323988653671907871640168793044491227743762755093478533511496189584738692140749816647693262520029622652288443116401543551912743680755130174797291533521145843245239980952783894916045971554636206238272299140527507693543712578648354716467390529380644353410418183050970429076260279995205153517411690223605216077242394784457679122896708836955482250079505526485697563050657253225000402220619937223502225725711765791689724094861482931768760832476228437050079772194144352944843489782794267085229114767161253545529965648280605048151410912034251528693949584498109095799896071406480752849766243274237620053671112734370398369022561500339997748871774713956402766741206141722710932601416333973191128164504065603680835802124341243654406110101894500705575507730837091752225727722083886512235796450928913695917757872748404083548398673045285009370980991089143881211619833329322719817516411599344375819056873552676157431370825122276445240833254434846063261853285690355965340931834720733011613039202000643214703539080326715857374251655367930724098422110817869635849605200850765581785544740444211096609296847747094491522948200062886898481842253596086868409790167704940696624875322498681372039416240488214625498179284073556092298942253676734177095757653330846397004685593341013701928439408245036677699916724634703835405750705658473541506215773278497984996334739116631107543674086825692527489359802651825050906689524066674341173104977730473472843644467012867592906744072443537402839447738038502689251258785277399866314582275052125078211178740351253332452554232158444878240066597486089265209105393864152538977359867529610037721186106198244470010906791053054575977007596070882905968235691972496774159408394442892200390662987680887644652552473573251679645602948876766588378618830487402011901505391603594681754934607422349595697071451267900786655560498681181014517851597303302151889901948999065244539792310429658481161250197521218295660590700973746600546796128098217869913307773767648395371857600467533850654985069663443533116106844965710421867457647313661704441228126653090226748260969356434515071683362109376380746752230789160766064817350878417914601077914144075772205389596802074918464255620307329985517536081235689697421638038194436442514957438197501134017775671462227044378929751290328189729916601581152618937786611451321339625086373429026720569594234164888773000922000673224308570117311324556296649332090190892168519912526037087763746276864480057112316881187020286869425201569339191523764768463548960787395940358496966101918862705121370543923252928726905777719255257362420345791443242955830612582197328976448859850744360412196917852167192295653842833808414838950308499691624940535866769483270212440063163769164573423849542058506697644311975082537799657237475122236925629342142638521744622519546165392860647601733918266799335366157027311912644096982192434886105809168408761831873232297914746741158482854445607159481181951699491551693678117194083771933980692231540857620712214357597316111021190825976929482798383927834634744039152500814029989868119272098892055675949911066830645624547850845570180970696189446482507112005379620042927717792762614965305491001633856788552356429649584299520562911853943075050148271322904465376670554887187242740699014506615973384670685104929480398260301439772922508480430820549969512643571825574195956737118276754528897975004478649384380867000480875832295641611235443018311130574437767612146103457626359459328203764039823096343381839308617989595486947631181456347502578472279350529853779995036911523246155710282776434860891851767034848177287673854381381806058511786425149492683487892469574899858828220392161705817559930972389297241019573605169481568550539281534134221841618049150034607546867627035268774498818496062018136450338625566160711054266014841922688214639517358648929643049334297650875462771496909631838235383064171716858825560001884555020831723602319046279537815350507018797454369437961085756179261033894118582457833149391878411792265682823688193040182639300389252167694803818653521188659947341066405607450347588825369654158837150907847140906037333208265742721328119154875795921462986143677826551755128852235322786611633110261120565317653792936634100689316560113428918558725186826663060449098609667333180246057282482790413433516554450986812744827680254629904458759720718929870498107056844813266152250713941397328425411211790754852462751617769381783203330931947097073741453045313884676241939673507996137461585596635854816935714716783178981169214075704223134166564560415520359882456922011149178897859988300586502482379354250379548716292644353790794467219073152355146654196027024211594241047398370692375772254469707851877612926078333586095706263125561617003394621159067627585018665538789345964551911195049338374682991889135271820700071992872811142138356556482153517266365657370022103495678962920221958228734620714793444520015729558773538889270070913653177923727620471861630986891121242098534191973721579416439915642446097528431494836297396400403538539732020753219357469076041521532172066506315234574236736718547344751998295801818481229592819134313042252626328380125716687571738783827120831521795409804584172441293057066789836436806947865129763452971242505686045828317129743048603870208808859484014249064559787650045421936178884343119020500290648616375705329021982887257262524538014174679312404177877355827049317520723663988351815894878174898625238996234865731802814527842826215966203059400085707371559039706405705233621656194352374270508572426132384076096857419360864791342217853122709319623671646224053311963197387437475817639632089854935736372143923368553214015625382150776065271613623554757495678056935023083024817483899186007151490783935415854235308666151503745114843780776030795490135073034670189244743488362178003015073538533396249409757360418093029915850650312999046062173528008875681254755964413416614763779435067413952948624397975349751119543584475229324487488752054502465376075784093180441458421443646698711920640031787676868796895616274965146524420821974589955261458041913604732265194232442480784950729511202038267140463967851642331743529290003936956705809921403864072837761615474891289729481444440607550471130337308921573338525884454751837695486539905231209252212426592357433595273008168092025195403443434207389373277697404645068670732410759889863660203835745861342019144938210774621282637653158723249472141684401949716634052327112592615696821146105520619989005823860004951087448420029680720062639849273380214014390078703572443329876531738847991790278181527855159555971424126525435565418991433213255354995881694885381655712970148688128175167990010232189130249819602836465811734948125473954204607979480400527955547003821741595695356469909528858908098094775922221135811436539367234659369096546090965183655322342727842403448999156284941949666845106952910630770054639539766755634054926212047694935562986425673911675315391260747995365835064125332313218388291315499319931311363937814509930196131495205306622302584257976436296636086875617729723006836427422358773202751932964609428071173667146688172337024465268524121648320358750001538554704852991187034471022525395565898624481006805538759940797603627615813555877705824272557714310934769152354502436808841309661484849368150943452804903725706779963083995080755924794398357171976682041080629729627541501584297774922331218811973454586468756548056802806061550872244394266867493841687108363628320717631917477536934194387895918829310417152335294756738757361932373156543036401689085685759043684262815548460801733150130811498149086001568055723980239821276708971462396920538267637452216230656917415945875068673111071243810388660063274348139120153640152016064797470603382955077801116640760729279449999698557856849378464016688876149813818750279943718166280131012243287028151656668135748993072697304669756726168358102836026030051919705573002593541888706568309905924984294662009117182530742839071977890406687398179280720547604504939954168865086569953987152105823908943898839604802638946483780623838845034924990338736340011494517114696801589526380796421062266640149602269507480152752070128062107984738948382853581623687233081030041703866866042120697666679306905667012085147924125755662119708086080702773216328598180629771413153769626338532789573725665616585583849774288243508243594495247121389940296870581165177292323312855512082120984698510606486664255387981604490513010968634252652876811889229622221413622642768567668102642074402056138965265328198515058478271244257620412136536833813263392114163994126143394358505436091979928514185788389054491096353066418913330056033136460668077496925361247596611786144875135003431691969180655256121508198672794421430043419006162262270893637055398962704472650753830321747830180883844564710322159404053448937685070899052592304967202650275493156520823160663775839690477059392051359889818431470325060738004560611441283442337944023221885671457296521946727639966802074989089776650745014008829765814690459844428931911506350094229405108561016116784543751608189141829552394611376744369256640010551269542790369711959668139691388854024984212939442895409853149251285136159545643530252279684216692668315527853259096110547563051492229637360209266794906902252886643390151485756218130917392169391183653703151451196354168596235028929282272724060564081077058328358608839169830785900169472941018658733629752086281335628203486468373541868288750692858082600397718128436583506066889270813098455912614678135529329149701176101527559389072941305826730886178017811299237871871322123012773050279366701789320797850138625852360371778160178356606297544320514714388132692640307616395680707612102120114437093319562913028142667387508850747320030867550673660741317385221109011802415952043319342019521027810244340965856739230686795515429249983042573959507490943539810999978573180560575740410104247014735501137369714672037268178469647503868074144713090598452737374711753807025720791688276248451192659285060682668983674541406480000735936170850267788384183113996422516937362787944634237358297696965438301456798195808115073903320873837196306790068262473117257465818762413207954051777773595192472342207411481748528059565314401113876119755468988114444532044116983230215913097014764227239782350904110177572214000031944204260478586325813723830084878203563110860067825291642657634991002855040440910504353729517490506232957630031871366750128170939452045486320042783211286399312746739347487413565730262132362966245703790901566395568984570982774118993000038276754951086863231376587260285909102200615243192829723402865621376121906490389827174406950167737699631555846651135181014575885940261699765602104089497178291377884916711485198095717033745273740263387472302807943483872552233917511003238674189862012696639599966598881173642003570941435130346055617267666680553826615888767764203748534867860838333492300230763711627376747232423546271193370719563498785706236775062696613527228247171043585363180694003099786481476707976174738285571451732507360141278526308944426050132880599150010071204795808767688306298753942967574669864382621290687366707375143098714184869117443893023992979623208309367381954914889980187966107728966584634062300226522433719129183178325385472847409476045654378411003336322230497032983063056715477713199605068746584756978133410485622899248945474015241579643290794780352583469826383701727942066165352072894573577403052564879483794842549150626182837413396076213922779096858159123946666725959328520154430075138493733485694132865953236132041691706536808753580689753609683199442019288986390286677385550227053646700838173843331930203366855096699729753101667327691891339054295365972385554929346515499547636590106005273782759472004275649198409850945173576509115518772905483462868588835136093682605717367951700123413312378406355302498640467130298685025029282588931712942944775485824153031824477078096931176721215770245896310205259163742470655904047911366927649214454000186259134491812465914407205696236776826547285828284118849590542701782994688765865975247255866291681187431935584132327042340166036541838332544266607596088535166468336315829821024127484422130956649705617993249904149027485501166560073300379146409358791742326117499530419652082000351063249496507725790320982077942648009061932969887015435912749238643980851919135192486188824058097172455190950163484876287027395912050586892930512559520700694100904540044984858285509388907878593303844169448847451669832339889152760140894278563126279725830990360377326475930371027332798524947964981452332435849638098980281624752479136930376279626587604966507450000622522572744382876532019045633301447377768340767002202826967599252994579152600656995198321866327373585975386629965007878240297214286307738684561295872019478589020014925415950170544074268254829776906525238532003895326237467500550578294610978171604519994492819434077871518376067728364307592399221105121304288575991355468049896929543584626435221712156367824099177117255446538141835128967365131601328129385194828732447412771830758390715794540814956080015065353583580060586546640459662162848613633797294223768728474351039670785327895126848334732440195377838040350740887845555135894174516112728258816619670889196734745457673739564949072808920797979084196674756546928400538828312890271058113009797649501835689497277883577758793635564584649225016377499612840893339654041952926249980637168668837303646101468727376298069686394918907254480273140913503526226760185274409522639130531652655532229334256700670638878482567423477300442344614162094899142665087835398026183994708642879650339915666107511798824671152137535450678208498314161883871536955136317334378479374282494654850966218753384575424369275449622687002813092045640105437594100613694121691999169553220763718522239739178017953148877839173693385580329962008736134772854208683164089765980875733970547723582921873441526000928777942380307522675001293757096496225496424259061667913762126302348408340623033543239247332306928088395617056671948345194596084323887437043338383679030428756766805819302903022561600064701362758861870079048594415164232348331155584761722772985197582008012319925096256865548260344720152678136804708689072680010956507456590468646834372123216501426554826437895270935487688879271244244016770636408223680110696223050948394618915742987160582032874153902611633448103154367064402110817050801351528636457339093107044813118318854307350362237428297942777427984960742913743794762583711553594964798651869634193237899438693445468649826664589277036538509720383894030613936099304734783600266665117348933126834620812567223482645166086044630209073121509824028627704155818587694545401372876044077575995345622901301143145132763499429158256850996020089644833243895994769798441055319744725690509353645281003550798243841036809644777550927021783726814450238082237715761829152897794298752230633973072985225880158787175100806895141866379519433410438282213680863470236358394256152672978896277470450035560698055865823118471039937950149693042320321972967733806025897485044288616643339741072095027857760655597833695122212925497542901797890641270136058822358483511614191914079380450250809583997246104036768226698906006751342878914004585076339664648276542509172420161206001995040228714421807627064202269432433489207802396840536689050886276280349251702764571894541395805947085721852968489895820492894577824851492598762588527035941714271007012728332106077531373826800783310970223406842498243624687525765019018178004799431335404643159937376842672573543043289107291483940461736400622083126762770674155146791500178058645577876972036456860379901687086434603333819673139633117371873051824482156874552070092272758452522711553770001306152229464888995849693772284276059484910619199613237610264935581223509587318432728945152049922689887701968905809031658037758165947178565689623939938302865982474260686371014751612012182986564299798329579764345676390763772045842048256250721416586602281085352453027265012288609416641209307517126355182482724284526029766050494414691855630816307984642171466125308274189545117493742735994291104995440673889672835622267917985574026685481600021971393005019012653971306168684369707472118097492801855762634634071019137442883776408393991482346551296329247335468691549730561285840927521719551828184439455625972449769498183739093287160622889350770659297855472698700495194025356771084997427747639107778956242671926689527195277742617934850364210751786028019730115141503382972520613278285753877366442158540395840709681454512687058143681385042058760454990163464327985489497263324124445218211078556461494077507692830530390801588426946658625166318558366184829428457711887834061727773314867191806113214637102808599730090063120138780205752067213384882351907589739654277993647905551657749421497415614156195899969178179567137507750224164455000616569711437355433172932036718917771348986415211521627127652697726400567112378877464150889757782759374859402218482269151892183846482144802430900544023411540668957592179154662067748133970867993459147182803989895270406248321855470298279449139228293639819319085743406529913007560912753682011611800565898677497251799729013967392489250290294125536212201012355318765894430985558757039299752217488026290911992811127021616615495237598077089498541937856451005104938169228214944196861547345842358538300089937755116146991868448281455722205331047796623684829846828093818762578493912328576904198024567645092739414257060688967661503057479896915084633398745854379093662411984748954012091428435296094304519318031338965830862368654345467395497006862511564512952065972616518637831331927579327235378803735817638075961121044691166016303554244587724573369600591650151487585721956995411766001388214818765685924831899771004534919574476618555982603910605910536836046130565086625588543054079682090569396962899224351078708031896099357421186282780731882729206720041352110391584805746063764322620225037544318168251693677583772284053040110645785959318549222353943139977826834959370876967283108514198577359116627971868722654235656374718583792848294691324415090888953747080014519122615216148335144629625596943223184260700702417829207695750800303919443056638368932339725979770185589690189573834692639554316009651317900521460725944096659495988767345586986578596890861904893110109128793545800153106374718360009970348794928387011538987416813783123565880974301393648159762304511093353883473920576737007505135465824740102122069100780565087217175926965346403373472481749006363988962532967221625084636698045187649151466767543835902764701522573520939603649073384996186411962339746203826962986322145698414912319800660756758805566813034428668592996255009237895108085242984565303132158248676646538380303270623989440818850135256655797902760720137774934919634053377803679528557333793479371724487976774033332685007788492327756329880258745963564619069842957736952409674570915485089811713362790078563487804126054893769702718916188534808543441565484350791332569249026291989419129495815391317060121671067706281656872034622118042530027296350801900754876148691067479068690079528097917673241427070775723731193438262467505273663123218265797097000906887408053561776983635073734112999152796896449728834956113275416409682230748407000408479792476413548037525778495087816914441522565371377219114235494439140259943808608872242134932775082514078791182753915021680436504296979252257767191372499919488719770928294790748236790625683610749067495358310710131577529873430993662246398167807370322169319196515675959321004753876926586903691696720089612664644049747304322186196994587303568745336757997051390279060566295136175246275944602030103956120286358292806571253791819338252078932672374505191819662181058511361539118160349172080868335437645067997368960142079012524191392712908377812105416038236950462520307190313602171453909641101859336527409044258749805086976309882342180433629245990560449998752368050003314482854871482047394712529218339861682695324897514059136583894219480704181675534956311314819992641098538299991980444854178666832419334702336761004927126834054267630481696761500154740540353229323165452548798618054701179483608295642416268003749505252853136765263912038380504703901053357452153442218366194053594410010143521044709640331709656537393624844365562579240439583514778644194997303601169230866264749820099097091707938619238758070225429997149551756547764114766760001379355494706727355576030367941291566213681985905659376780163086987367046324400112847976236521259209220459500352379063873917777308911950340877264048722204710258727781417562195965994357621421021638400387257213296041977251436532392119183316226080757056619660275197305600859060588625756935952792096918821213150767004983371203921949077585144675107641114703506441376258724375352416341212930288795945568929953573033436452567266193778873192320108350311025464936742497006858304733851758627413921409696909457001854134206972887187495559191821402090041172899741590462268480343354368516124656977328069374553691970089621198302334393332488577557392340698165290884703653555298974668677314192858209464903062422340477708626756692654967426436745698680297049703311211600878819347821752819839231411917571919435831973501984438257664591932192243821089283087691899563253686077716207972855145643319943806175990860101923953167502270164623411268375695548450133673288490588073940869658640866879628429862920771859476867828220454308423394085203316274134603197699573014201327561921006340689640965279032494750835361535882582837944342808524686875169927653981388264749868994165433475300677414077644534409491958239706358243073271881439642353113796707580839631300648993353724118818330850671178109502793545386964958212278054904846271186381859728988580938689278451934222137764428314134860108088448161872040010415588103275833910905618412882702810910195795700784764435389731905564283628995253384679749324405691741140691363342441534201320900191103874708782979801575740220936206892429132519199589468064579713034167682566208081652375359561279443517172986243022986500546319040470629338865652521217316962885904645826468035231277879128651476922155245694376108957929830642951115039051690605403675602045642713174521555479479933822039688691619877724660416238706601083954268421743459587387822611605922381111481262015046580256984165629616917319666408773466786561395853477053976388044144986702923950209137511951317125798618419828067640761778261822795976636452362580730545013938866148711457328630280850295480834845808338078747986365214923864963412959211135970131478872791179464084018828119071607255381866045899292579284171607594502476699057963048606019842885070754594924059156923572926443617079801151240803779876768666313014739918680355560243286768727833241894471460816797873000126726154671612774164543658208382189620967556186859771923092814617549124813574156423207166270950310502296828350785968112214577272160512694896543816510445069833138681732560774618755254516794970924731708962830857476631330964647437722355825549844035515070461788515233703719510105352524270728088829632219195713244345204305921340939738039826720931418047060024231961254028396248472996055928140205246277165343880660909196887393793934843001847686139674360626261003867314255558891606997574526863458281040714667406687795873503710181010609337892850504398431823962678887743424974519917918751519473745889405503786430327560417841506760535301850148911350035685977688523641382717927275511410617918147740477052073272477521652183785267148229560793508531299181644888084660714572848539998145600252342319372603556603760992197682278910483833506025073576510764078246081157906183132253573440719691227166246019896719788850146417845364176059538368082816298784428851378911143327809557395388208617573367528318991243581318596909029333670206510767385961107557128053061638564067923399502499322914706653867323383033978508158060307382131443581706685281652608983421445780672307505557106903421868663858275285612321904404226028944217517321034698395849290935444485216270399207156613606912783602976188940405053206213465301352620720047864902132338670004891066799316585550477225505096821441002791642880908101047275297973589776961582377506370232857984630999914727218208246667031584233864802523472162872875333952223611138858107355073086587400701777832487812213684506788487493769421836839887709467224368524807934275448438551530454561509614254186239969553610684936106798947989919941097509999122904823435045372547829857172538933044364166081968242881574585875132555675655368327993700371416178816897244686748629579254832625414093289298803177054505295951895662729714346077953597046447874812104646040342967589158260042653465231399434450851265807580795163137412449498161388816521201302495976532052334755862697832625713834854959044817840134801239690840012795669880752364993230057519559252646654366763721796713909265987260537701313748678268278008868467731967791152380902186869740039865256110353346383026336198966662851199754268838409574775659292902591788860318465108909626453911405521626295239963122578571980143995284671193428667835946611021071483564804149048322331262226928267961344674915941367756218094408306312367945832857778226773587484911945172676370735700781035482267699296138515507433026330917028029691182254210752442120412101738294454039857238747353933472398930020118638632133008423563659132284416203754095305374910713480132859217606110883920478499976485737583298360147963239499054233545666141876997176660016780030568979986862025915105854323119958812342526883893971159543960649001050898223953200507826376424825126932138879093093817319884682708421925977105272208510724030215100324253201390518384646393807236460136768518043109104023966754920031028188804670184106901425721191719181119357078295082613770345555697018943903772335277351885743800000277457588600766281308847779544390487820451264884720171071578976068430476851352740384989586763888587008582682635994018259743325371387450466584582070826168767703170461293980839715348639635317160125145744519712639805607420472886732687858528985540373960289953586752993449326388559840418055690939723975190517906912489456374075202520550330328277907691701968759700567165799299010320429974234579272320216024243470360469780604396963945040445639909398584225534577296197626368910692451907580568380030016812261504882591697290577218875447632400570216029486835949935482300412351974506040708431083646491871035625811913037190957198767119018280099349609205967484188124136098154448835235518528903830370613401532727254736066944598831775756226867110672838317724052089047202043697152033281128592274920474989655972972755013187144136184454155138250067059729941484195993202024192291609340691608707536870013870950835012536328344076628111457903839085715561814313454157244398854307986169192290783808356537036843818875047467628498358960711176635451740411926062979233955127351795088055075390908986017624045488828819849034642596109732755112394138072752569091847495366361967575191409791006967373700417956570575505535217720888389421089142227587199852582851928854396085624937562402067439166394215763677508259109325253646960455621205351532608774036294095100952545947665319026931638053795274316338216161429825716193074614014586510664062486895300952120247424737694918225090755841061771881904080833754395836293623594864107192580955743420107402613470906029035526798583566095089617113166684054693179875061754203506629744538057980863699164025573075411119230923457254627687124349506059785907611551825031518248836016229320730894801086992451307132391693425915610658312607176021115995977627602655540863038155361445610216175470068078842876791692242229991630999909416063032809296963722148542152135997885902959293704622155267572021964388179388628117831356029390855424987168692300752656813895477780292504931081207681348858716946083375034924770515126318593247710298766937587822822660909832775895852209624363485145655031508204220806279177627475295248059194262051329033233780290306530568968421632304341130335077741576657965488104837693332932673087378612134913085940850832263138648834414256539388941588636634866452685126442026225550468245025903873071712924090943419222965518974695831559253167127570606583610216190166750605730101313507233892476143437003663132211970137436056109992442042463547808937777189674019128570796311049931687842328563139195509924250440707856830731270068587261611988946425551863979924424425429181999161167986641261096298151104023544833377483080100371878537636827880137337730597958664445826475225397674062741659965131323172047546962328561512953603256906636333474021146143296304246204763767299798864584675333113444625070525082735725874504851529572164539283997806118395203018398778643087359645686963374618146516602444110296983611137392509969190491853357991639076978340280740596405483227108009955943992516768420672696420076044357909709069025498187491568892781806464443921794172559341093230393180880339680674072759054705204183864507739762917779473632664215048740818781089292694354695554563161585470799366849661692602447171716707760538793181863855976196100623223082721992701364193421217365328645321412500106843795024083399059201856546533847656015604209794065902210558441846867371249912799191741054973144957043467835140401967201737875976356384496170838693199943386228170311659986807206976017481891993142154973146766958245815203142830923525407795839127731885854732221536946246075810876302031763989895129960728549482108932732185628893863139343470412160920341826754500296774206719766525431880086865829812935910213030260559906677971847602150930826221269735252993311911604473834530654649282028779771865889857355174784922039073431410982012382714285703970521373197027362683743162003224965069778877888498204010237052175415364472519565914053979389471324210933971725946058141042501284420278629570180136589590899683270114340896692295970235580782322447308616510382164992053246875582935850374680885439078847661007310463993981910809541121316923303720731577216953582458443523553057299628293296927529038057746698783900942452415662526857667806380827013399985858143133275114980290199328211398216058874461966052522704939605792762492524508558278623751238905819408185758507312826027539852933842184401658129324456931805594814602564221402071846551959898585474232681275039735726696901512632628247072100507196401848900906116915325444465645913866687633981642152347277814031018863524490402297428340316891878386410542455859633173964847037475203472223016307434163129191260083511844567960496790551175125563616160254313502568018908866353068368857355224962237462650581581847996116168569270905427134077832246049568536155544756502335765282632624970314243805490609604011612293898472706002776441324933381736518626199131947402853947390679642371362335807165493464632994755349768410762811860225722295784386684301908849644881975008778539945541818889674064148992715034256566648425157257068467119115858351934124059589372603094872823091434246191881296968440094041692335745001417431604938885295553636933027296087974645084845653229228693808584983152576109758694013082781338760262584467638615621448940779260964009897307106138012911744374586139779561296187847308377668162267228809425790160205072635064442490800824521547943501523572924523441746781564816234386154548646213215999977213866346610777631654154635845962970158755638305613901726381937163113862900742406150450899330283207489296187189073621876731482941814208019454684336131234481033523890157436085732866923282941484519127320948090992154887383516288201791321350482044350746245684623918667460439861091195756166452810586395133494907541824463865161621482811536624173147654469088639393174991311749426396517226210724413652861498457466591361098112545817758166642475674637737252637806034178171458244472424286821984031676640544795040858700126833142353754608589846503065227555776690492398893593314619352209783093499153484440653617206251013756967039553197680868332111924440566278068422842380451526305842544279267336340589297218391694820413658198558530678711350906654743335536916644556698754828626290921829129374808164450323329673693973740927627312302253663561326418818649298271364997710467750542888371753739706273751650642128701821620170116779027232027683736262092607139235580687931590213190551161598062222049528380571050307466534223777172602844469963296590389326411766572455685664783127394575525392428940719056676966694096863779264934439827626796559344485969437633729738295555640722772729782136165742532046337041267646602472921983792435722114200471017969820020646194960698564922190686743444400567529539842536303897164754564935787985645302014933457546073678757078915026642680150383631370312022803765303084410429977673492970473218436008642898829108953184899035829759185354539499330673295003240318715888019410719940400776394602927874733235407861061125236790019251257435923496010261007843681573683944719344996035669415498648946776948071767790436455964406870567638898170765329456637994515752422380258152925069736846482706332837602189581462649300723945397274983772388492066772178717048130175342244566531578431118996463359969446720731351542923318218374675581899743097028987807831841185066055755055499249077283390814940629652675566645898702139472495287021787790540337784309657113764891822190171046511979326194523130590297334650770876676727145400633931842291656397198275860530101791472048301214951019252182429185270306967764767685055051154487580017573199881996299098371870385307142932977233666217184429368566153689996774678911736130549253260631404683217713672885371284715129933204293383458552455416001681494081063895727769072040600268888968444391172140149823628405134519081773616459855053115911856693579905046364346612755419514743237735515299830952435577505887957950617286866055316135698508461762044771260348287450481403626512748060653985075580194198243176702465912785580789080693955421505111137160921188671812328032742917277644461869970889858158205844413602154835895473181935404043448821047851335934266901636017173873158252209252702641665766043718363302323749458098879973271215719608773700787229036039495893524860857402878555959430232425404935408143280047699372281666388371205656774231672081091327343478702626990629311663397334474160549077279992997430691172421399379304461846916841424623917481646426166836508363668902090029425659048108243456028128210681261575081025443559043763356189743142230544292501583027964851859670613470599551660763546510745195849531384528935217941535278563819904423930473305024641166193795707155523031931498900581140139218921449886059241107328730471720960643689801756526882863857537292221691194203270390823934295781634954770891450585731183252780407540367426567204834671590516926619372472516787340827104365156191327663393752928083819762772407914729258585279127116033147949607136857691302353156863389966086108367167238799713481189479936597027526129075059333143612297040251992607509542296772270659345164714782368094600146602012149887150508666232297108777429848012121330361959661165492428059764770905400697394229315945050249293876369637148560663475713362078098370638262019717201320403403488259562562765278018028072369149592139274693375277701977455673021594541985477535490339509025101916044876516723687101964507535125723635469267620769113145397824398541531205136964906688035851240342426377483338217819878711265052390898038378326129608501721813622941239064580866399920196056041084347168363807347875954085324105732537912965139006090329330898131095304265538884702187768385065173545021778721121975464549729338614232507446328286958943162761518218261486438774370142325754751308260647549487667682218601826057129987297927739162120704008414697284602704433661582875117446641470779375294426102779248135654169619286876761013498535810441429908366801601205336530924730844342788957300893541302750396982612812777446914661149084503723480723439379277382834491777780458277047758787618765163427592221383446664013913686735974700376076449127193953718878384671390348448242999201328036138155780177611442813975242513885132154538210530822134655631713798023414960657081495340405445211252532187985252805646183572235212210121686188148757368117586451656625260909203602275092059976335218202212940760785189078901054524627626656801244144962979942935249937156462780613724806331513375806143079924677392673321779328054237854457203288285064337570743895600509562157236072641558302298084654504257569566934736414584350287041551171046744267448583482743440175586546077740329179130262860044685209747852329784641552173903988459072500703730364667921498190806844574823392111966390806783357630942296481993607610874357493143103987905093409646362603693362706734337959758287072558719829052123781144580365127169584620896253158674555326249161633575700208505092373765269393459467454609177477106795853974910422430912752408402136346174756391311020953513102918509009814911176278518681128763408206926685431167560833154354467153955935947242829005786990055257264015816854656477541343343205311789893819042939627955598181867601406352410723657921523986000574939608761555872172151246485813838060881779234239694783133376423934327458163628741919912591029223701359476845782210284898018089082823504519137777039493355569723575120693478059957785794628415542205246164234486948865179319382590706958200226378931640461181935405313001289259163686498320500308025196813825667518388393271507007263403877510336204998057359219750547531391730977608922889209973625601871992782807524069462776545606604574314441353938626942659125694869141655429771315564041305631328965225567108396616196540694438639003526403381925265196039043999945153338739854592976533898192811498943884685098321625303693578158748823835132747927517872216886000289910184840261105180229965350466448524262254076046421636940685627973518163120860582392759147768000844353844974688728990426008577883596611670521318330864622926614991812610520724813034079705493806792785031237792597339711191664502517313883030694294254166208510069156830293380512289477676025756688746057813646180260595765474573555453791194401160535539769069372983500377193358813653601717653453539617170060764156494167062076738781596444793524172568348173650882011339245345458704299907719217870966647122523980270696065413733365910214502521438232741233045419425356512555603398003327522722498761862386823736876139591889089840698706740095118894823045397364713054616581360555220922884124708791450293996430030420791602701665660324760764971528402593261865468133954923249277632915292550802707274467669660720550055225917961811701565410564863905583552142405837131380251536138199205776324394600432706873446607850815642976295565556191497411678102711687072796593803741230781793398424782759770871819087238853482556250209890105472192091541929849882812260542475380773367574632976473984314316690813046304114532408382568190160091236654575476704836353399273039175478128549637043207869937434423747093439070668480562019766235178665408924385329379726475060353931037539944634822397971939812774228498943463081640660724674115641355371083375091967264589175145118815709363843092513751779935630434762378189129559300942286012409674567126470793657113594398320540325750179756512942806198299504801491196434742770791554041917946504377801166135267133067544309921297618753185438942323403316050462511930967036312000640558536240520696190779378775014318392621998804409401839660842733366138288967677544228637263802155157132420005675141384055913957068135782076502948221505539662597666851818791686122798034016971170592948362019504404387882950131557614362378310861858166439051418646789665320204455050883194799594942716799537652789615964230479577955447395858252642329205575059204174796648045091679432813383223232921981064836676127903354254552002069972260241692757414350210638378505033155683655231362815362179833747881758037439130045790410295489365989684128002906961991050681386583896065981665896991594643650492336408801166218470140334871971805327842785952069188154620172065568846570230022211724918236402777878832356337189772301776804455344453488903371256972566604781765132287109603967003889462199258480952377070606779391870197734560142787452377864770872543075594733871891713306490017873334439214059024387545284923325774163163874257861621000016950810830387620632738636786732802621226004585110738724426965431045016343239318687505640753950551594831068283125309026062387947741107937760936840367466533982773882808268221381537144203264469580881200815911468844918581785937590191976555655241745317097447744751066350319885990401209703234702979476218083274583286395950657961896143284519629917274077185652828781333547279624385757433635612329875776447022250653496703619064300924241472291357130629408977879424767183395396560585908633336927445097224791713416544992972807874734853970459516054808897498125201109459120113850921734442849409132594925039014659643843108050219683338544450466524637331392548769123561894885414473727747284312634545700323497869679160925362799157096242156922921437823675045869098489843713145561139777293327278711899021367747273486674531829849658958234128778680836243122172071846872448553537044132543249192700679970434609784233244739403073635492675810213543103284563812066591260768988289864583386644436160360294854066210246892364472813617358828718180067397119100208980174682818692540630061707506169305080143743298744847308621685313280322838505348001740044460284381917654595012754323659804193414682417566536015615762589992113906859965631784001116714339501352089706234295715026481224336374849289151057510245927070521338277072739479197650259943356716961497480986253249253729131825252503552615203098692575994845831462158057606808034383043248044206863796738433307857145826798135707782182841212491516176778589948510354105450727361782952766085482299399374159871287691560618817523405044324788209021123653627311745472665458086987972672139445305858008997895687646541118836280413698176991669284752958040796606348719203951716957529084012372880712462110885141294012325871811923031119316978394793080872083611567789764606291475089779391442929586621412800325133631328811998918379319856128992060787283391539872924008609078577516948558185981030801367562580439603023972306668621591194699035194773813915172954808377758439537259788355537969757586733897962983310819920116527839427283045295903805994335027525666947092402553635907970371926288177492583461328624248097417249701486710838149641264005326563628158225627104893132383974467194071527310933251173145647215578922740398801449152657322785301194336794727699788097427307587552845642367762490885748111052337789816426046574804697631715192477723148191733436394419634811262399530443509921829069166917824082186979349983334447046770010241100134821715488467856794767631160870497263480791312084620713043113419129543558974360906197750480313825492752678653033055644104817350821763970458903331212483159261693101826213137078443381777581032730010061816922626216324502125640286522260463818861109437558063370690585933402967348298827420777382911276621923538114540917267499709691121565037887185410371804256575867715543502390542963706925997321597258717783939978247965211768217646438769001290495723537428477447461366843784603981506294852750386839550791264298243054625292901353018197678159675882484823022099253293951634690068387250934287523107727054179132861674400797926974552585910966115581324398575657253901390757239351327720544520816230268829499927309563156905242835656884252821216642361453537015671160814780085213523515665778623218249796444526682565937484384832400219088100497239554827892566958594364251742555416006077883598689838193535831424262659122995980383659294363440157328752507676283117114337221574572043892394220924362770996430268926013776959497827981902263370415823427076837122002772571180548075145557263064862458045474112385631868651881904989834336343469463284551719822712506694692737343548926975320894155332145886023752998316605835508380017427597902015223865904191591127722775343494502366726355750330824833020171170787108770771233892332611223255046368845927729604009760188064935595935162390552942119556889249531060675609368646713837706059916338079583316817194547529835065618509562127582972752242518430136076833382992692795859930442823840095780306109707129544445229366053078664432456359275234708790047167987885863923890315488902216055862296849981246821426316361304565981806823959973812361159266025502728647798879682818524061626880650034659957988959649812686788325877285002840762531284894028504304664684680881831065273734927740400403634878185377280560556157817882805598909063633065632419954665363810293517188488909421901471374670611635713273671207215105339236234086085719284985454916290523750226793521850114260258245302986067602028926814588310878731377572125884215270448611043432581740078199110991953940729856405149848653198161677881383564751229714381442384050337877435794216673477666686211396504847347477616630022789110108361457279344863507240238932013295404531738178446986494819329332190933306934253289865403604914505904959860392367261439573748961146051010418836418008106337006029277538252937455144973023898924372868350405240021834550807690644932016973855351379496526736052313863210866895342671748467575398303749876393323617241451991702264552111354279507769637889083142003158474246207934335271131541360891711214784984308229589103598861804938029597120206257916247447766551232451001172081995245264926646439096575656802856241102202414181713416640709835548067978934706407087455432456445856291329266601992662022364494925717100813202463913757504022833171197271634892407040642322980706962929111644814553606038276324440595391965449923638868716364967334979195819397018818775647537182020690120196696364619856479324165730953773969891142826880574403645817930569168445474544955233807042146183131955149991515720986880138438081396978779423722416941789381848847886265216633076144168170131437605532627580075780814019094157428838035158053882052390749224638554590323539321414162123772319844755387993895257953442262331156489569524771957512069679088443682868741636468845119449242064995298559448665225276939565751533921945551401785932115419796711847662762861098970650876015398431690973559914429870797683068108097984373232750205994398967263817209957612797393908860263521831196949733546994449432893154665739205012185054379041369296465942220823103392873236171636930668371884471156006032840440702769957577461472443176899968958131902672509405852376025997245983815915631052511364509823082885406414245178738337780991410678814259186290451662397919862642417213110628444153844787098252550791950769341025865337281594487935183727918982680057023331990334625060131942034502953637642445187470537086956333247653538985201631893576663445900237142793386220090252814770000814546196509163682152055543681768473232111100752569181712381658306837353130164416431295964997866142158578498439187893281899020462785875406835591825736463152281618362516834150132718995698901505007398581509390430600341031241010223542210393288103617164360840138170678856933334225490735504300729177633112948014429963681579957311870260107498959551024037435871933081541873067288256137314085731382717213200726365682392196484706715854312175024780669495252375745909580512191187571558548478532902747115067211333913638128278228277302372423666525922817005284675005564105400601313087332069555284943058053333429530642435076516609889215916290965960869114639278569185251974151517505687633767576753614884455449179771257049176293310686677371644408005657083899440253057939380464160978737227253753873574786712103984328876481155223279476947845361669233037510229048643524778740618171535711387111873598789811977218205855449116476867006962487537265908892125343698761622339190495708271473137606992850828394428300882673334404491984417671985490774111290765008524476840198371506988811247508746300927930988800764478961148146081760830789638209519540930800590242185099628490108095652293330092698253523718383197685936641799439739341400722502228155544867124791774711453351943285002978258770031163611994035788562412332627398145352248856681063642567373174725498409609952791643849107973895709533167582748166487534945797046782635468180756460920969267430533623149599729236848551809524520010176268593827543275332287852224096745642925910116786159504369361524443974983109713690060714105445183347957392289486350696657181907284654024928826095164939213488494930125988169900826711790579121261839527171056321883178560366724041755410221832759351539748228958724850432727848847394532966162263936229889176135567302645283466797702812518451510422089381092829192461252365136749611103537144280644716584178649279800612634363944628097949260273011453090033049561445586784136924168257097435578762534478008246688207809161971202260907189873131825824410150917621522099641682132002025378329040300116040025207100046297414219750426249965524891393306929164274705232897915798321363073173899031036801211496713922661787902589529433077786857500823256256978046008205670938077108581515931968740166524953787935532471129796221246083233806192960052959336893492959084151102720376308061793984569482587348966905573047784133424158628150177672573771422122064648171141912116214384651684441454075220389774835026031772064662948839353854434111020555508961308340181915076250409815459303423597338592912279187922767268703787103115618630978481763775734960974321745378522321389057780763608841454441642074761947991424308463901522493387536566788247095247264621381866831882727818610963744525794251898805158955558130328413512990656200876371500740971004308477788024798193481442006457595938540443639140741160162725911033266682255149491150647636446388174018469839829295522303836559826633941835051431922218742418981175857006634905772034823948121179579456139582725458731203050920485435788401364179419882342099464422266766964890136439944764788543844972151802929846515447648801109000700359307380808471840789965637350422214572487596975374725276587234909180364550593926086894206894329260488421154127870037317120406474873129964465369182012613467444574948156833524328016531085045508183544587967041168382997471656831398620260502393402360956617961815968147862084645078566089147430706338986991009067297142011391665525609797384115702143043767621649079415289825895908405883181024400700293862845468109166055752479945888338272970911538783153040416964595118538850191933465389165812942072609089743138175924069027144409574512323560478481480812574134258009890107393562972012514195113073006492368544445702348498585554421040915889853164571527819434569980949428461761627143725789064703841803796269778844325884422654040236552418119491494121589898809298198168605414460189218295433954782210108567082984508070740000985589652955895482161879603933219371419050953201279754986505782384746998635375914305394001409257839875019246904245230402832457271572060509751519702133735462334508498868845923902561714811002203973861441503673344340737319411951330328755827146242709611175235457584141436598388995691219508490066719392877639742505713801114898412920343824439670661407691937580607649681295551874862777865945752120942309649844798110272311833853073147247983116407678421524215077214053695017855143755525019125467851171443368091889768625787785291629148893656107341145474466764714665314838214823974823642718935955271285668976720785597491895314038665009351922538783884149229143940241046377566168823888818113505261762181068790540083613449633957297974010627063028450082603433663326174106163871553593151772346912148967320143319403001417126915183378822001092907492114367154904804095633090233080882974402989013694731243852464170530756314655249978027149203757738835462954204999192009172450643788142315994993832196413225696330534270027960683721290438393926280468185457380387524743721275735992734844136746201360632864998783659530566499905679000819013733130654136936714715185683103543314290411894692276790190721995255655797707033515283226122903337011791425819222283683896480821209680380398035862917718556530844712541805828320658639690530866623512934147045930369513730536691847184794341837458993691084817962000877445842301402379248195076635537227004754408939956856115546792215609581633346964728558784075896865359298165005252884568053545105286943519897097326386520035994527866794912380056993523751292492658273987339070133515940801897610969758680997705704027135561724311463149615850143331014695196450979697433372345569092244428769909616142812362938083488977845911791192900942307832697003824747255583914328962646954160946530449302923468017457831058662393670119665668155242684556557141222783173649501306769191230072801193237186795515400707080015694846534106013469112638881703479716728381113160656374241709096105646914997058928145499562860395127567284905166474170281692320694126793584250638221175946774521691056874122121617960716002517412535003055725219643760343046468759281244563380344190062113435493997710140201606809664586753442072758852683327884488552474831437250300102171409320618076265439669981902825882313808690848624648797932317249434649646175406069118100000257976395695733978415054098886605643173611009848977370474835057833478761014669389619581063651384585605544453530433283343562688892415903686604618629872542035244802526178385653076775763318774383866119348665548172022651203917743359283920098178429278245743399007516969283579624282463273895997949468749141544381835023204986941369232050439292240035084383818266171672438171325108073342276474167160457991111675977257587619737188566968066476999371922741280867709178252997520751670288589804887255326657814455199080517259961506044287695641921671365860755581882953454141607271760456582135280810079389603841373226770711780755876545698678691365602240599438104891919718628299530996291330629133736892850010703107959563210741136281543943603675998426524232128658289785721424594341891151656518656020588326073699894876592498904699445396546934161716653892482852627082249922461478430814894083449329334169271492641447676264661105937377898777194076002362942376975984106511035304525835004238268260686741118613192856324597872256975685329566871502014603408553199701386012293921294553315198961955354119597751552880170426600062538759471124336481955353314448808561365792785028335423301481093145573353711271867584112697108863216423114748045706005987411872565907091555873612390316550767764151907327416877848093037936576067343140016944618770733801827329095365534680045704234290637197134483939153970213140517433162089567987194135912932537270635510503681575909551104154163547725836372890519296735686883267495267200267910036544134761449146339838005088779782393977544362103176741219371130243637136819858406337924050735805515819970601339558798153193219825532162810068321783868949097093881046623176820800020496996032634391717034463694631585059893107612834685005086339461918824367073891834671360108892093178026835637539752737662382967234299914117734040140983143170155977601635775608986718025589198758758580564639145898243290784291555090180747639917298386576700908460151030715755172989339741231044235023020458182844256842753604737983195369631291906526071346822716330101911722630041893969822895810767267867762295539577026730293234372029158611811145870722241552573827423348712549178468699554707635005905092774612306500799525800936785191595497647061313411248482571196124752724281633721673998882985628573917292765861049908347906859026632843000672580348124974265816920230408610908874277682477355718699594458051627761720763934341488070587064681136111199913319120558711712736943804460777029912403563481683401321909345219944369097507246289857693160420163322289027535855005572346902680589463351360955268380510293226244613267871199405158817812065105200835337208293792359809258968598495430077411858402498819001834324088748804755198061365618187158197930032039548380644795533898561021266440911881510865201281578978497048226561751501997075547982899290747600231371341178545183872477864397726535468543949292346416572726248443266732077042785884355509401855704591088447168768937311117749573460738602523682993280567347051884772819380537959950909117908036497281245534560814792118593541378511913402417607182263399895858561787611687319091039109469260450391601656648155929849451064508713310641125182949687338937431628420792450072503555208137512634327539021033854980417627895281708132071715340470662815444158186192119006246919027128598949352840578666901418179063070996439616024069784720466717624135611046030241724456655970236959849106271173195666872441686257749381785761595733320475070706148068236603140429176866957355716142958641054585816170207959476801514625605106169881932333696456813698073295056374076242785839181098938339747850285429359853109252799327212886016107800580232987161398771208571928157381222738745488109005543850766179621393610406243116800424243697086870886273821404811097600865195408925660707896001811575532690272754503646359427824282405276630256686439293833559307837257523364377136373190821582044838963103718148336848732020617647275010474435926427099099389660179722449914412698773799881539217639207081767728538785690777420243956701008842985250195369741789079172424984240452877772824323034799529720724808712423621116300666921827899817694511202359195288745119837636285554880517442306533349124834115872199381367839785320913470332950359795679922832437871768904442349461809746246563777138248219934801672195702298536699843168238062524373342583371372130038294526030035161461774423412548109281507967930971247542383199830120122778267969093919424010237612952265182870310340943796679871234685593089493911756152479308424451097373328280161742165288404130473531361827843933714002453508945312318946146524018136528693715333002817694902786307029522377531840630815289751134599428663919067768501908997965319168886975945652824785116494673740023682905993064974172263735238816158584176160604034467991234345446658041165697797969390731377454985447757133703904309127994412937467290506107387371648965268689250905217554041227927968356474156328558990054255163357508030741563645638987628763164197391317896484726795350653669837981357022632200783460685379848608868995450119241039674587875102509912693730232518590546656245383936759572679638800615593422996349569090499887328981177032779188219105414921378639875635617347649553184078475899922007973603676976646820825863915421117972225684239715120386473931329736909521869897112071599835892053426774316565020639750123966131018324422952549993043065062741906469502848616985066292517211237511815790693599890652467666784124047050801840155340137259527376000385094669560871714105899346056339313432560683771960431327666292086179167544913769047232045859605445564293217239130449524324508094089978899453775414327091528076633506563634690663345929784324989044422795045657541428659485307153162751998679634226745555829476773290118872929803555149683846933058882928262825885286587839645263347435842221387163705680338552677467063635205769970986306043279914164790660552509342343335844502346261130246573249286131204222558789230663530219132619769070057803264983812839332449037688352084922284411599941043438124861190619899214043176948980534080543439667171457506213911832276312357751058006969583267783643491453560427730746443814931482526060534112668312206767413249101001469275740851115294369052654899540422913717662890962276766466817828412267076141784938080835544727671768401544308948449587072198347447293910657426511130405330010508641332413429204025674020508433587691185471882651470553665723514808865012540987904841028740776365672258632359337420234336540482713567107969732706981056568667122330136225538838804632328230614084452304990872123724379521208636160157639735894141593358904778090560348295173398278011200831115876650773594837884589401308086565131954470424291521874666274753367285061283461671050297196151280888229117460223091387145827680791330976366901657336482964270037033982536449269850739314936509865321237268690838894232807729012655431638959489002344971176715370038760585787487859691395662053646307031764280208276926585740129881858318435759213869654864107309143691001201608513975893324147291714183688149046567069333193061211224356352931449068014440453158453634586695115300887902161937143767229687980581121606311285457510119515407683343413184629099411386692768510034421794228365774819865968651231519156182316312052192577817676122773288671672957409325836409642686119932922357507169888259059131591894814757382669970367223740345243012058688482812054785222162581708180427020432221830744290243902032644929882867466383155855435410726797801377918569371205051188976773614768359959670361571307523070038708156414346201853750338410253201381829789068515258283600546238172265872141241550086731413307753516479998356985320796830398763262135844767866906091446373575254613424478825395740985048963571139490292395448808686334589627191043467876661458124617312519478653285060667548889387134049927240149002982473002773252953658623686217225174837175298742078958554205295402441892430090686131901182632172535289720741529465601473831493741227529390176329658039069741476076185063642412792072038916366571622977051103758870760770766952177753312499553194709321599469417183285089693742534534374840259260407878339933222426658020881841170401618756545734779155958193550349928809761851927306048646626750703195192163209921273444897112629216671780702529359534142643251123252585626355206800169342443087098818281993167274736420030544124136323992572965079600970612897875484185031848162895064658418263207101179613401307154629170743847984179837689219963194442177530259410560834084089578482281887313864999936474949749877996042168493700197482371776028898929724732568778153067384145201989021683330882655688642116635284287798550724821391797928103725151978748791566283067057246266742807363112905592433542498226730712575908657062671619296224914990484791386394263450346342882530913908038223636660798763194827978537714783341455370601918900327061679180265601995175918700061907936917788240798290399298191390833396944570098135744844481864745258439602219911105404126309022077253535628845712648532711514212928808607264271021225221855606024577382515748956109275984360779076779492742027913398596500116320638370632374067776257835684079236627595147831481904954338140617984873291635939754927177995764149703265778617102133707748236597771221072200464207963972815485773654525912202531694702310655841263113757765847500617978216269911566124843270895637410717964639087587943348047112726736571268528997336427049098932152588904523895995241839621512907468109937908531767088356894658827682927204625667799143963319735090977754383814314512522222527487013825024565423416995050281299961175181995819800218406644674484004355282864529044056900809377742877455441676369808538149584481483290350435308585749809349077481789613957019796960003201423015783737521829656598099539650582527002121444680529667309770178547508279856294386944149772013568063812107277479370157099779665276162067820043105573574036359320252858328705471632508061052396451998372952935123174248019121385509568661719038369121302771210950497627614868105084811921927476619587590122266716826774157095180650009637324092850121663466341474497634808943078263085842713785791981416593170068050601190979577261230907844767831878791197240565121375128712510821986797600100538814123220735667318764578952080384295111688206220666066007525291586988004103218716987124557258500584697474567066942722974160049792693272184160941228213735769251957701725396620783576505148611372791333287577136600121398980092939093319860279812950795570990856908146883886330088867374698238452173747901571847698297051409938105471508120648787290866289284924734739114432113690858777225162922224326095390295733836514189098269884596526015150957068824274727504904865275958393770641490670152903869225831391944335291223655892695742099181868473556477088226321552763978568187967093360639674238343113200358320767650123655339844785996852712245245923652916490519191335610276399945920082326319036728097240048544757251591651769363519006751529410918751628817949133980935014510960808127222645245885664758703323751598031288002039519014676552647426806087452386670960145017770064097452760432497343208722641074412483969518840761211333380219636504637203525179056789368983005613013655527725635719863064712133665233483244553449513478636805086908832256936700637722173021810610830678993317224891015681609170929832530459976969192781475020197111364996646177556788488523905168906267961181860706375625047968031675938072511001482743782889686573473055550253724639055784511054798444919806767898476688748815760403679832956176919211138044899835103039531331296362451474664516042288163538127232321841557604186024965506433405894694569167323936626147696353097051808253522914140238717581086385114615623927351347192132793234422981681335927056369677000652199552847242672687394557134024070572514725132140730350779406673158912547661086368199872998138923479077250316841272701142713624444017724088554111930893590023044989619410815038541322411867459492403656723446910921898317223682467265724624890022656854224979626473432045883270350135514285872850359886537319154256069831016180871349688286280364030208942333684736369818700531671785027551670932374632000470835959825107359278359842325671591918811543846201791947705009876890813464130463969234469990728943299350798716266516675304325293211292845548582786217315781335003133450187043784471520767950612900253686650452906635055941116598802194093571746785819355050108273855680555817160696943704903182991193491999005562544255502987977716613896265859888297182272142045138996469173759816949711246809662075001109212011898966204033131401580099416292337015521956535915035654518848099981134249907431733751204754286980337929927585254772035701338126229820091781492562437792484392637855143231569778482040364823394203526902983412581419298101658725599184093432915262722920609742859665280547913765269789624037576771788588000095946112436921812917208720877430673599236468993952095098946848711490908933506820811498246429341719863452819725626547087976920055135070178776799875243216670925448403800066591885132638093539496745199790413546934061373722846527796917403776536895989869342524044245177864238198518235616206992818159548622953611284344154631741215616295204749649102728672191431346576476383664932278730544187164814015911230875503058132396482698541150892056741365291249345099787320595241078163783018299214317193550118423052838808759960003681531278437198655843448542627090742560767846902289636954991184296364861472421073848884080802356259480841211984252989291921505587936261710562883289724061448236601015991101852034613518361160180098954184186352775058710508132903715664866969278183163982612396871527861852468002850788944579884122882967415791293315723568814769694418070929919355984522735225337357054948705291580627655389783975243849836346903894745675529714975720720171358344247034864832011163340106474757484319683877352939229811188258746034976353225985922958773429867421569207232809690785170103296493211981819376715086587881163687760462282584717541173376561156251197320483952384757347754422574927453818601097607412606657910707573418071946659265849520233306379116079394356533984091901155951914732775958626367562977669874648082607730951284818886804849057742874036531717918562704785594545786728792804613668628904384389462158318936885463348654761252888349397918489236680874172231751766700165099239725849469606824020606144365027810259631346874583031950577062759120125529514719423330268174792114477899111819028419556448657478162728802947590708090350160091141933669577516401350832954043737250762857314129172397053207444913355747429603372753654270689529131888397319946396816471362514750721404393751684514942402861932625173357174682811619479898200868671514264801965071040534895586497463413575829105876139737345189204727941758661702155554583754860694265579787784520871839735766230889196925269719815881850849410116383309368609155770981040754292146921454305543789328149645856864876756928643992373694230507870969683676893585564439023053572536260692243455837053167522719517621922792918456329134110162835449066530274465416704079838904773556620451113343774981136031794295731733971528088253808295065125603692479706173465186432509177435680212750618812681353130368876235334299868690256329145615247877621818040806777213498264728325207188746057993062760701438320782718216023509415325197173971132184394035336936371073919294208797184877134899440521787761418515358820759750149074555074996038861630773079074028647989620414170941566725495009326248729453382695896488658134839632389177195179957225860280370415813939319995995000478994980849956988925829021630552507444454978601254934921592829552662309508474036390376326451268041178960128168429449428052979983421327801937619615669759075675366019948579458866918804102588349056066667298758904312325983307136361475592152132577462142361968042507520270434000810204029294495719820362397872809386553367957634710340750755836151417579358197918958651579548361917842674402832740110173474441119386936219713244631157545870588301908890908548220123699310439754043164218165085400292000990696899998892130216350083116482698389970506306374586417886425650765226435159612388690229815235165691394843555018732370008498919586637851235543388307916959788197935311098256482970715403150180824617863040024604846374982496168831580572034285554074334698037731940205156459914315297832226237597951931754813837807121787810828552313445502675657451908234828141225711625896187028892781102570195017105049317296925814037062488990293792038541855756098648982320027406804366767106810411046293230671510499257816766067149702118131088434431451814442609889517460730305081967277055601113915800300052870529706348529083489296386274834645910161850283678634109731463961453198965794801343765329288172156382686961032626255602138805848577536942242029356404129296770894586712309548146520809609111817023524711177080706206850223896105850485757626370601076978709153910158498016327709770801974493276521824072574332719429166869340604983585510654610345807074152103586256683255312905495063241760660552538343630715215227670299724771402500240058169808735874345979370289189667320421995951019089701394857985728404554604019754527293035021109940547040421504219351836734972140099859676106475863678421634157133262305039615094920743458741887086844204229973823208198191935955307137393245863358300388809781584790214627061211157243541647881738240528044562157697374739115953613771341217584155088993538625290923507224958903028938787760877157041170426000386788953286170489250246336052196254150236279602131192162799592563308014012511831559626227988339426159406074760492242919861615185224750281952051667925136063731970662537633465725923780121158218216446895820311681453668240897935018971145912813338629653714290823965710384396323349651458247424382202747993936687590301471289495949153171957236701255866867061612752295700349064726285602589507197308749762161442946912423290063031421030747538920695096531898657333443993056662194146742248765981718395829658891731665090126643351919408108185784184105670066391029890735863176102734872730133234754049551699968036241959684676033597845359115005969357013628247102298314123939062162193697240150615410483152863721591683937886397139571411419319182705268690284847936633122561624171753410908584512553662307755880882326945959447278902510100537219273900692956089319701361005615388037165486030871002113802240573509013972637675143871257091964155816921714186783114582414726916514113766205096465676945257402789606716276238316987198887966364925119893161922843984149679529348942254015177179269661440303286500869340789435059491951589654526479450096808349576286379361645515673880426317138143600549252989538249850885552529942633573461329424165132862089522162760753032365387237254609152281420404546809467907191274152030362468201264151306521281652628460572375136550503206515102116518199239933909522316020205570867886495314661449352460275310474749103627690347637230174639900901048462399982512233169278009913273110246226055924264715272392195310084412503691967329559263240372008457922624971863499784937985657330973085685555177507925497121813591618861076825511628600514469193173678510632115112208556696953035563055239104557939869517509108025670957805845955027646693173620344457793684430463888057610970687305230161865757905875922033438870353520745951703947192910148201082699823261392248572020751503044571142876714577883445071632792673595044528162504468786196006264445394831257390506712870691879870750019030805714314465382173540744843736428265865349138872423738939759578804397800257285772366764564039222196107459100784715413188140111274009720750601850736456398487476356448102140868060649682233983781576806830801365719514608054677212210143307102503363754104533057799166380937178558795066950644522962333345450448746142401065576678399492279275822481855693117693556976690367815744518285518097386984850682972768816165126577667112733376323430350477323438663538462162400381974722007607675765917473378749767048950077717696926596946846611453611344392863297149913760360631723247317981576087980444101442453458487428585436255101311216905532621591455585216676790731508037800969089159373187955702954206587359110277258809704050682312266528917663352322957556842859039768257994330651344964325275168916804436625572363758490007722910664163764905096637152014963964562943277300450802305676166364083848413949082358828832404554457040180351979821149127820480699087420736613381678551065068463915903606818248766118097721737956121374699120996556246884117023026522405661723359854408665306577651529705077826733927142901793087257743259626434905585864348340181391347688001798305821713016314565815156603291740425012936521161087282680264188267331609637544429190808771681502862428103234671139599652113513170742528386152517963027883037077794192301013316963764071620583118106105477607813809309344741071402217583297871191528255862689555053728432241586297884055517873398444584201353703371570104089642026988498475946377231361547243832480737054598321676846017856293689285266274373156670527839871728459391742592641951592666635353545155540433860977830185289602852703800972615176757685062848961667568700053797203933252440045671608749735812046419228040290538553582011007723185415099690636978141401096212222319328386786397920593924456524481602336225581046903890465121777631330802439907937678206632273020457025004599297381591290764995849808062420497287367464995160594207404355418894034677189565890668057572512562266132587511756088461833314055574051877471147147232720707057293710960634119472399628242925412902910634092071850538814665351404128192275027537967252177862380633926136995331330807659631337997484428017631176108656299353096958855887309469139073643849704427518230707054838754106435527660052970302874200108584130200306471373849176824402192366447010250930314013067033331124418472364910064824084779296204639361764631314163356018184624498153514288104849811260034219207743273371124370793572355695588073330304714230317262287439106739901695656573506534779331989217481664942257510964752598525502477394741039433094503407649225418244231089140074830695820254144707728253249978605176248090114855261552520903263843499072424141440604300012066053685483986654425566551093298723415628925081800385621449801753783110097821161033779382133826372295070345735579363217517541873871844302692404218870105512034145555428229960215108940417523987884068949408634437218653673853714901872417233104144967091444458154685547941176737665611635652830348623989626140598882720122992856063611812745075115869747483990258576739601121128663407827468968234846802337503493575972571966967382589703717525135417440877185097616525704828805258976725046033162028397635247992884380242653252845742073367306054363193265206430435960840288054860694759917446155294044339536603764689566583099847806509861316747421124076603443629741360921157480744910625944665356359901623056728327345003628429596162889712892194508321272621935163199159274843629644446213382081102973926527004928379650657249383645097856019515062769153082313997975637690921784538629169529291985410145833068512022639980964186284769847970429477459016755838019214693161381534649910312927611465912545868259675537727198310114109774962937385801870209803291297696377546195286632687469789274807693506618242498194536583971125556274906480976582259220276866861230713452416458950728384607004603547733711780401109175943268175504818976781770526751351572794820383649046121941380139166184777352644982149061712451306167717207781745416804727188756512750082475056500611057697963913319997652307977745946280281368121057045597670452195391863193424581285294810568407455807877933137736097988623618530095318777035776619501916024167285007348236135318082913778055627397262516543433116462954565608188220068630568436088510175937694082703908010580165169561820164157917826564478243469924167685524196885810666300974293695837241467276468649486613759860625402510791252004908450991875863702210732307069668002975603884796721838245889408668956646615267908134575738203937750760942417191342392101691264892863024933681852862702302694812179164033469356371321379697723748889608132590969298107965092871740035476710970875882749415062182806547437255077398254671329059189228776487027737074796727108801608629024474108801737013681042119916650414872559476940782497244510974660696308636341106091689980931506688680526508836054279573761381897683688431913738758884459287526812576917739544348174886178816782445903178240469940386839468401142075751759946203191963799866337355030170926426704055712060087650364874838902686436673524235747680664434663754657298008409799858012734507754930443170005916380296840546410174118803483918260143591846269278681822555041814479431922985712021748563186680212878749408547539364372364543546654260151974459285841714457869960349864549969689608098198289393628322324681887205213340408378993787100547291001481261507773347701104166384901072629804170214934432372761516308187769669001813142306504877764106047407339157107647884743304710170847445948993022327790750237914639043684461137184730842256050670849997115891749504488545527699283432590972326615299996339176063863923304818333345147207439067026888957160860127392135838697154377997161288607651341951669823947503595788687077779684892866226979785534158369916710548897467066192021319335176722545663341461966278689449042919206180370130325876254637821531524959772561743123346305690099040624675587848983686406509034726316820653207505786795267888280353424442701347720576604442800700286677526777017234741898392025857634520556385471579182512061635240241029018768683450679991896472324867834040594030953222423114103468243040045532748229981534321568567762857103134821545508810380448418085137244092689564379894616272064402061433382729725597126216933720032799421291288954084361068045969659049829145203369313757936566741794939701727094366013448571863193660330317879244952211363475521695106173136543267879064610961826520664015396077544299287686092399967840054963687964534478861675364627858363346036760742292973418569920326014206054540954988973421309118148975866520228240320356739157864265324969889456636526104640226525360601037473198945855778655786485400934946223193076636477169672770525499916266979480304047097693379994090497516629743510567731199805049464063700830359077097375105096260135055274607307400589500900375303150091991280011434671196497673552725347158042776375888030663066009254365770821427160114558314324246552572720269366727442795487854375829855490940685719412615134253633024696998172153471448980835337161845567023895940756082296550638412524510597395300447852452094409040391914658316703237487975400937070474771914345256529483959562026664388570512963334004389792740920310103742409780638081787964693693574901172127031947439748541345836128151925663791290374203859931168374038891324519095086056021554536875186536311805270798890042501488851834392617589053091049072417626925815637848285814676756409876934034809974217334035276144621363533462807404911418823185632419339067238042523653371431411175614374071690199530657092195681066554276750446327655477469774247193363463476952301079218338185909292284377993510262306605102157145276034459913120842577835608616947772064400414245470881688059250532820485976547939678130727093867950550207964337758949098173069730141858845346483245337725684052816073047409463090799245188753793046930192106107977826814737332805235649174278623365560931972686513147989891790987645480702803580489146618622880203499995638084037311098182651610249214669988280144725514406915496685374644114416690212238040335718254374354994213953681737843062714256946607745060473664353344870675329070147334936776513610489104233065217703916272098707392688218953697269377422020571880149892042391856620079215937188634717870894704651371652602485726160509645672471256680799397754082312042321332134186689825061863974561566001177312996252627614330022205828052600795404137596406616805272851965798114530610862902787339511559425238783633295850210398295661247178153482135050733936691415285167985127269914164904816974126864400527809453457028803981598583361896014425400732875504035392353214094475265403628278459144299940337950724836743596414464823267784118338487116515281027199666399334830008325372359261102716283389862385026047118697670671238362876070162884078531302700622392944400019630907125862973892499287786195542204788611644498408839532586083936895770546384416044258893150328547087415638862294979979496124815207594724967316070728730250005202160941832444728116724146569931402896866293763462719030466641403027106987902844276239717010308983107804877346523996884639531685232013550215810142416004049443588301350804999763160765620928068028187883559027284487642499068966488994415245075181455110962379167510312621804459094653239827780735877314634817706673520215037054609581148309978307454712602671323022121264988570425719718607045151264791245284416304968847791267940531941330618280942732042015820962648203950582445581020083423396843484584783642382074754545970371363524993325989502197847942761487860154246437483584927978465431020657257398338284868363940136762677257960829830060439205253627578823211408924062631591368141288757747557247203638231218400983870567852234830164887995490030415327666142394158714954704163807553400913146752885434583356895242085263941647694153352266278065395821943878766373773910340257174187893602599920188520707359136953353881270255503134477907210634308581908377016208908608589876440060586067502603053548300369934383408586483525574640713565923194265036524315060862869041860400710041674112953394361372020836414721324050406056041319845398797674731551000568250504581737416653617323418014186081272045579597451374978362788816102924990634824023748177730765086399297992942640744896698335811839246349279692186236948074005800268741416623326373910472965642400208449265794977612539606482617302216163709470573510037130667833896007314777411186889014942574045819265176649669132058939699648207023569466723981149875096098062893602043519679414615487568139515103782530952851123416552550298749312252984348583399461269932277314102358771304446264042262069948044735226106495341054822954541369292521248007438723900016526872977281296156217589380037880284632704670472532366860760567857856547451458038503459217654670002626368929547760866546611788886315176446764142320023336324863194137168675302329947277389783041296225525990163671182785700302107991446523289053346554113573626790301272605954599720577502537379451274568359920257234144389869478644084420843522414959360594655447254397433155846864254590975975083716844063948203224646469136218114968286245260736413315027248701672706788634408868884386552867975246710351644161817439509722802736947401490377934492550349634964544129549955854541379297438654703068224024046349912780762885237781557150981702610106014763444720042462312403114182225547887961691648756593148318365514331929089147802798229184679182476615507672452888197427553374543465328663325515831602704098008687410072339456042266343054064189432464907940270977947937909678359928363979804041802719188284491111948656386669839153480738494560763382624099469309024471389180809884712767859632920016638860644410558290411046373289996364667274576580498039635548959361634456966939731647026208839016519329167134012337607000834336097570097335528818664382343184212983862092929573509335586290739238098772100681025079855653945278796648735925022011477990493375026957762869990161611498440977233047796084800181687270533950970510335834408936181397630883462198158427358872772554341835539441221618494831541410030025578109530222182992628248157630589634299734341995853941906779113611273369203448869265237300227294394375992065634948404099083147376065702469503319459199618872252081593168828052054354008162008028214988346478308880876733783959493258072772893106325846491805133687216459705352708998813421143559858395419153218201733874983840513465015449716975324151499359838078858653323138495578622931854684613703873796209264290863769235718188652038360169468446968863641850134044334283470678768732116633950811767674890962651830622694340014441462090556862657962312949029726448046787887947234737749396151911634524053334299383358535640655329257053989589696716369456216714324313386138639598619229181565929315227614296590571368408134763676418752013051640761749836979901448099000511733670041689124517690566694670103792976181415488750728042874468159469930091865927599293930905965088602061365620114806851997037793369852447181216336750544104705241131492159845775211952633491104716244912728472513193648922942392736090751795183884779855246997972236812950418941141843010799996499586948734763938863751871765014435558747667861929316478105566826556580443433449192352232884702668422111452715200235983724724467819084289188214242946979316430641254396287486649119567540329468002820171227449423951925597828256679919954772988014210585784565216086537527800260327962833012674514125734245092802462549383277880586184944023843183666010496019068687404082330639089556356269333783203652025912338464284189028477186537575114182188923304726160923188564816053322790209793891658760890546980315339774886140733160933557187002868473991127207314327152988443673923330725948361498142274482393041940460288945503782794945975411722742082284642416938371417840238901650453777692841803936582120908824958125222597102368218007601443376753338671346223408063463741554300007309174982884656062940626781638151531563411465966176361169046512238981700176083364361610977567273130724411821249437608840356382441629230622670023295989341700967872039951759788677440507053921363501667761857705457945483850287359641061006219810103666439256838355494725551423874725259934227899985014802409497972350901532960916708619938678905109792318898969168388215409759278366360782229282899057327147100333130447026315722062346281870186240826017006981829736262263845838397517219698576922812630441034539534523816123512407700411675898696127549245714071709719893891500339146818469876790400634268217789623902969356113941231617704630731351093518053198244619457213490783417471378642228546591866767403401773019864733285588342577517880572777871556013564696991079395463008803047005698960452950082754285743224984089199061063897473492968161213144809570017566045500046870042729461560922095286493480651907775646999404332866933232417750370236725507307425816802817630182464360297311649694803928183618522391964347127931384964434727376862287478015199045708077975523620218927948965681191757532948905762873508113477275198687693072020037769495849659060355182131363421857734970511745024329622333039712351495733762561610161325786800743470834565401869826273710278806750054070592692681254634803974797740443896427220130570828540150263263037007352898603550120954951904272678681951740500430555527701963473915417058146907790657848704415306992523325110882812193884151947137410756219853870634653541124560581219182311576567563797260192206201979787155256448423250446223627113796362219159461916398032724016943123740822136992027389771474366524316998941787631308635421794857388635269359858147576386931201740074170739067720266648300489455395738323284289695222084121537502680741288925241088436105795774701819215678436036043514292239000656307803287397002891086066579982238237816053268544818430599632205757916789411759534213003612395774720488750440009249232725208899988758406256956977158164847076944354769417032564666743830273664751938677218747163364595154649758860333963371236629457817494030401837989129895679531801202501841962812369067769523404338773986666592980294857092829148560848539513146379905769212351417777210623206044564761951828054923727511969971775875836475792230715467738745005437875185899162226090472313106675528882591644774456785234343923466560586396454798822112249399571278888679004310923619058265998921178671346549479246747709127270558696028736824364623760031990343769730660588471222567494767033686468949717759038303632761879168785039802203827610166832828811592942981032628084699390623299510674312615478073773793047590773813794279953129072899968805232127398649234307652017244922471401756280103755393460000237408620467988828502520185220944330028261406157129725451824148899780962322548711790391911379346391819423431622432607946454046265268054121756790340999214253530866119228470936967748468450198291679042212770050351252952561293236682756750231203948454324074824580150229180076046596657476053342306936177915590791036972675459248413819886785921305952646023797183337092142196163339586027320452561838334154015060346906651267260108509661655397394461975232895078924329435020686313176761778379098970995787978575654583348106230613755108928132379456722160464176746407910916687920901388607672133162415914464868758132969332569632556836560546949979090439892267981452400895649456511026457254594370701886507032973479370376878878903076432690128488948662038227399027694709877145170318735517702305255484700763394606167403576202284798810096896204246667269833347200208993266245177227111086281447353180914783225610982138933229183612603070095652510589676609811677463690059226098009951022419119210407765886788128567013433533340933387318800336096341280321753818223822539225180690012445511382881639308747825269719116563944726483749347297828879279168388065275824114328967767424308181652831347920283083267721263708342491595456879591113619411305962625714144877199435523604242830903510715759730158239315467876662913376730339498078275198234148144116821581804914381597901857339655898029865446051228658447595840767800071059799989124266049417288719947854798756328476143927928057225913685447963075660599524972514181162174824273953848174627378573858363492697284940427160058211526649144242276076617212271546076905831671348840814082823203893742032792862910495175122996130434623213463440991354577031937729656945508324952479338252274596449331762703739991421644142365094812703020117763894603310093517179715026295734435046849457354865287254641241178543079542206650345101845946218950736281176359119432124389322670302901629186299982032487694489024582460610755236988510010600948996217150873375424069130089624678913764693139391261778152712260852354993892492272400161105447226908827453933427251604925950901739421181807418488967290952654359322646263272721803727293238359987248267241368011852393044024060208333139253131497863473108643206753178659671509899593094242201274376633066194143060483099475888399351700619824672718018302156193566209214776497000563355862214910084987670371319581376070695329137338887150526919440342976983995224029150894848165702772625763751797326718699511889523008381676809340924833442244635227000873322552775447155954172107457024609357134539864299132236052704163234732351724754256018703979571661190556728202422198470599149726594060300932843820597499107828752088465684027159549919981483319370807838957371452086893139589130622034778933525151089913923504545714887167864331870682636954438277760254708555314210776029657107774732598172786655454090384618720914325023207125635802225795275495497531900173537959180234215492572634330933078367166432406961577381459690032356863401940236653458031634185108779974313370040738717904528704985733318229980488747178560719834217852685369770904963149566968592671156242024713163182442874959974233072219889238653059840513523875393921935672079645272704895874694799663332812883050270980714035639362360883676394467851635650733407971063633027119346123863258317141909779622588909938493524577688592300980096034947853798776638336957423249620720531102892072396874173545889880105675513973596018046019569161784336113834198330609322039956968622775551779899701361328271062607408547304609254489761092384432062789692875668929895560864834335757453787070526713480595187642269819809281608459992490803505107962185752550704309260485133381936094371588668204874298766725991957214921761787178430215231778121413033773469878590423537285707314499739393197031832475007206570088530191509084548250033335589870579504429791532483433764007359790242143318354322752718116040501874700996130952754312598363332015695276556742129388736231812257023824819865165285915723188740999442317235234207760992802802501516241996812751813796806801941901002516516795775076388908781927801916890868003377834899168947127456736525673262953228686980961718169810987409495189658331425296619471482174656564817514557273908503196734035699812678084813297773684343942746707736816221734127410967740456718801211006412163284325652859440071527399652983370219984631198389838152550477369948990800683897414132412069322389467777635088499388591746261122302447119133228908396493917773074363614263747998408854466622887656883218904134276881818163657630982806587262597833420112706373669437719035554292433006980831953345848076596559026463329155016970705064686811635118454978466095830439543527192358954942931516765322445466706332428776382303806794730065690535581771544866717729097828846909301020285961562419451130437540400287325205642079066553117622061877317020505647373447947355736900676395218924057164453840659518918924438094741922584064823267320461741619514140263213289535869039873330483160454835265792221456668005248167876557497797965149610193458852359205699087962405776197742436740090854251494793420299794679505354963885166026011941422294425173627835635946202830226443170198400756816939714425537646013814283268799980746322162534806935497674987328831231436026020101286689229593466913608637574766683881594771424986707382352612792442955466467865449715566504070454129438546424527943829742115031834018744071592982566568911077970098312588807457997433784604815947969674889916283921431689178186770796480314935526372415377940748857287410244074717302976194128204299651722352151737077636388976076778797730123143545518519045715372221319843946713792971140412098609926644258026942531088056186123889611601110484901004857986441836954066203962287399258143585407311607405944820615351651075050623212162913459577018682307902688118159762983460690710682793247795294064458210724955245026517208455205201191776899330389417987287014242856765576803580425035218866972647850568561254670440758788258816828094594547538668524110851977454853440178405204623646230078749247409310907171305972253326020904735212408922950519179569983147848137684391598453419697627838414172675350780781443233462126161358998428981476897836703259025490973732680111456306770362812669179771795477711444226741869685373758690047698359636699133254616138825971219364174633779952891823441421363081113700930010707072385321678567757601763019532157140329937502902043096773640951366228457185017640038191020346408605286802089505340279902089815701733066822794534857471285421979051326149802780834113038480635461182729508750474091535768371798825017046380933795312286701993463316119334023422770843042206886761683009978590912403829152458093682667457657283767432019672074170446029839789996473219353663793872778169545454295253262170490020933936635592718600685042076528273527227932856303417999135249271209786922740864693716236768905384568435458721984047708589737227142557718394521069186604120178596990912595549320000109600314566361853621557372477565020477422359028023740892493717679017673544304471390612556080761128936447038002449548908011508143108709460536237596476380832480538103125764670511599646872033364369629270258545370249175264146600896406448301057668600446061023325144501238448939369990024259850296486285749217549495475212914642063444040258108208157530865402161130842256878117271902928945938460908787194785568892056824678943698109336605161629554214006257026037703511161384638009407844443359282022748489411845260970116075403642215602078129254536649045120908320860532307575096795011356404913209633399261548812189972333100814337673232249642757251400023386778471867006495467476186811816748074463653387256212680087176833421122864284071354892906502740359375288332294400344127533924836359409273925559436128263141784538154367986772836803020474961620554144688959288628084951006509647216809052697738016617637449691880936620799507548458573007205462419169968264543602485387653980665064778637943965138046886416798918421771026355331200902284004159428707032674059098057396134706382789288318358401843468316574263177169270375328740708664411370595802804615704849857169803981287701787633579328931140017567986972385766090773772773786201182229439477448670585681475961214182344298425800136580781515813300553473501649892024900089219273205499103886613603119126469884610261190068761628972084520865550397984514754749422617761548733750554778781599995192266652624769394824001723076530908145723222152691057371619131996392746291596193112578751775889397790448341462167027878263390713318397804932263673055021878698793127550300979201572861365643568837625430853954368987530250403828209226585198824531709186224852209460162387721680455198109891275482717831244375093044378625077416282415639941797211008082454410549834924816621884904931722752880778454307157213579588090983806156373647397741818617261274385124082459782947614906789254199523455219459779269556127361373045480213933603596889910584232350282445943105857304785180714203582995240471948621923040868995784482043553046421041935072204891995241195611888482966650891168713896359380445237063139323420039832978059674116252355411979998896333597619034590904744765863507266749328247053338224904332612738611444379374621451897785011575233156483085181469333472878689703446685692058346226286739393922836153678992894044285442646325546388443145778549133817009272953215541107894217590364993518210167179048452469686025913117124512920919850424677627673030342942610911189511679621176107458841858535675175364535880619119399864061725653130079979009415961964662146571547296226488665688190647105316241063131694907745155398237090116063414549486912061472475848666500812391247527237578473179093290706300554995492072726852344009236202706272830525174784401952155687687508846502829509964430328015411840638454684243537818687327207943578605039926890310162859257364029607049133959588818307751945604394198709281239965196507692878884546257774367402637319002848425655037190196575388948650282344066372748080363982881915125293351287013483666005937685385963630301132560315329198552948966243557758577718598684694946177884397115367157005010781804065763299612972498172994608999416921310178424200912697160338158856535793262946527635836042371561283085460079168081262448931161134218639646069079803494135590344517366700440231985082391430079272621049434478935813720436288132259365316174938229304559472664521714902924096326812061699293023601008070138914997934656640341414558603324456253965963732384044828211186078539289085628227073621564094864276135126391947666539709738464047329811314979401712663476257039695463691358526620134995216997699274284100120025369433127692463636217178878094390467367500800994205810629874930133825543267906532014541973442919474559131503082162215152853298447483875321689612619908665300471955963000431323576643924382934393754549876543483113245914511034950891852021598851991783274574526479357050722644516264309294081475391615778599681834933334966030187117830530425175513929519336410649449638542402262826637609870068156285675240155007161536464192512452105807610206703685234280235142146680182074145486827535317842487331041573399117883868687520280264281180859254302920790072209844837468683654992665225745274522839249424092006846911251986523279295852900636883709464695805126943857766949058691661996977053797489650333442457257070958780677867623331396630142376718328063652609772842243271991605945545241821910421104280061646493283386409495523315741112307962951221356248855539442527303869956498970889872706407528452918596841533216024333538292943740402804401998528977516202065683342134002250583289930186975918831295058355384129221786354394639643579229619824294572584111309873441155938390132420342940360536633148980940984749578579155059384624068315528432052188731406442005259507733934267817335039629852949834719708127387826866715836792337685443116883434694888221646290569438018041342435255877144077019718580226488239138736024016693097449667596605445431103572736453320468629010790468880463820067050120537418262617788770317273005056583089247496454394555609881726762450767204177096069535563166444237767343790438325508358910873692288233754109669091783788314131036728973502056358091570897492440156916009189595045538990708157621076652200180043365045213658581266838820729508684218655786232426665890862475253268122610333218887083830221669156968164617723026410746954437698516478654097131061317694321237612261440439813327363883725329583789381395174095168959892445605448759782559382630719029122381698475982794763609039798310471967803498371704703032156646574010904331119494227401653217347903276973973654118637273409717218270129877180110185316223528343147455771975544677158012299970858691081590456680058876626724307329016522116294712351986181285620071251622012235153075251022739190731699869600083948853474171640882018987825482363320234898393145008297906639631212059540788096247793580830543464792278902705257758571284494836421968419341705151031801787454907886488895045150564979024540619552392080950109662086018904301907019292050137881366161951994545535146654218740583822074535885225681338260227104198068141265555830402795268953637941771154632498068386946642774083720720373300777638245708962484003476567920274103765804806376268867548242680706141852341802227280449966023681909619078587329367942925431601579993385615582689036776527863468193982092171068314289391423914784266958811593590691683415255572459798385542956939394576715391413793933164510839853965326166243103381271810863869461998495079907717377525260290773844041598344118682070896963536116719566240800088280273940097959027145950325534143205966378285595125671962997821570879310045893448236118588238834252006965128411008919814903484572589511792024819384094726191563603771618549419898370979213904318439760807753110755828876421075334201055813945876400393328633731244123137084870989861298414553254226605195208628068133484013989676547007714612500759546264610931440846020884963631793902553451521441748246059304307065220554484356228754713189350733688243064574118423907537597793050250349985389078882473501398320824163861226006146921514222819999128293733931444670694923821464182668944509408731530432795509802978088945927972173947924962034285362673450266992830802584176859076621874201563304194610499888343962374981998747098802750117823623422544826712164671898978225365135021412818676982044834868736736992866429564270386545025507341837887652648198295290487761791593141045720457422284360612008262094604281369225162810143367878112351764017978119361525214393752650354613706797264435501838964015843044815921333090984879133289256082223052767637827534531568545885037240530682983603692355892490694372409610935528173696151218904715122579305159881833060276656145556046145833916117419678080931655460389964180571358677790989791915717215413840218561603058041858855259033188623300380246624899006321389353804812787875641332896897212699708851084576491419873836440119456514138471830953764392117608393427392694996425115360283597009321813226825041277602849580713893263278831535505074192844332687920512471718730954045100640640716881003199351082504383051234610908838479692251845513412214067221880014571123342525298830164705866268370566683554540831554067223871485864306316624696056520551429386151215139327245078825478043772361045555615648370888453915450041197000414738913975406859116238168980505455529987825335685313487605581250980987008121703155807229662445238156230132253005403334790503014976421200745729321155990975411821860717753099231610880473010176417006966543242852683764286492705481404644181802700246988247148915562799792270030272349813919837936703691317959164439781099021730801577376734485856446332073889290747376974554073676897735329712992976197648452399062964359526475592722735241284636687137524372153703118823547587868228331045391095502128897286567631737834198354822424723770597375633194764409809960744311111081676698391659372648208581156816917399601669453506784826842587955414829281035037734580862806113205371375148589580665234776575089425670190671407898816479340775579362934029654127476943570637332183471217040976041985411922049421457030732369537157591118000947378707204281872868099278956744890009808858515697956289922186793765861377630301725640484472175225649039751520497008336023799342463534223767356574172206920410975894489325272464230615705331577581943638323485986559630452265191829568679052317772728297228276014268443084849353453483679521397293061651693793570566894457074179203563644875963681433380756103394035960964448793810433296764223589833199592917207098489362476205718622602456775982133660225193777475524921178255917717841971704442934018358353279992722161368453910242023167577784615919085088461868194529638168506175059073897459470340631947992109843516051830502629948298337872899006996983314123604000440741314706337282550913033719887224871650888716581494762413072189405767990113197187151706319021791479493068419349576231726384396612413226577080334088453654973933917028575628444773656955960564924210027848855468481166966010886114046655860337035542606869615891741937746736109993893413748115319351432975765956531387963429165359883815967889028446244493513880268614542445024958547494924946125405843699357591266478820960513585332162819766626617054476195701161661473592810377516242754867920941045106606023572131987085724670644239676067672418798482277496238774116487865207319309548885420924747259863063490132355540978527091946498738920146568092085002362261435256579163174269787574511720574642015910559994135071978366569522228931110564455611422934894900339541593318169553798245319006589086851057667439031452760728770014576031570361657185173554130806969476567187979983449872046527785065273170230757972446582402281760922937822966852639539619422675463070149172200828095330464818119355672640331629307689715131723265683701063539616054084271641179641240508985368043940911735822307745519483376073458355432627149518898530008669108581407873430816590280139043087634479096282933715229140012512245171043418297459653927177455142337559331932580177365074955791866206169674593961398375831096382866445312258064958181054337270202332522474818463227782801689112291955568230261770774975583187087767557354325803520199389509944705381873802435771029740740645367679960607516473821828779432009949845912731209108402505054187553848105251731453920845812382515331948298966502378092773743814634584779815170229395042139298309841756601233192205930673947829242046672589563888870968334904493836471806133234214390687999728861461377554263974798486247114240256295268537276081342342924257855599848355085000898298312612901483750481408091748484591218924393563242657812113253979281865398141102251954485841681834194087192433190324613187621179600604242423836223143585990239293628848829127865592917467628103492687653094288547583616462151361029943630347439703132923595600949277066735227099137456056324227172292613395010496733971799277018944423877482823579981163043954700739719947960266370302800517105207255140400267875126096840007048844480248227786165294480379184104858846109099655803371009629763870200984208109039228466767083147749615926896318240853244876502459176780995464412294352795988607727253535141826013699478162027291599763499408155389172000407764485876757357270140574386825359630990789752301572945415617444366929521931824952854634103075857049152182579430666916614569991455726317351860694049658456241895352419771004058982895067542614370802364986987954847068129550156977066847996256616024909509442528012673835455636597888470446637789673647834030030173062127626711943499947367132685115955298005672780492295375068040685258422061697429686125626181061744488410771683632902928916739984900502239845885680099322162611567716862231683644838807466394742766582846961156382710095288677095671647751156650091103708595231567156772860089828450632424810210815573764397069890484432099752936750248570105192137026062332349775880552876536375498049205800146123645582390710923669048160637548447141547635399932647767898239871601129268499239159070957814201895623505456866321267327682572749226785544442549742063604354696606624762512683509591979276979593857987568846796954702057679476594078200471376674962053802618062368404251235957937798314819032429299101451566401960853463965267327365031293386824197101335889283475904702095466670987152722813940274970062482450253482186238246249672382172470495513486952811326970324523615364256165636200478502814450951912047312446113577290901217044946611153567660055339459589661348386355402581752406660098020999277565229593344459120947532800991477308770002459973710462770456776369440538182671547369863227313349857057832753012648872197326698283520651315087895966680729085441677550569737410103230530539951977001923267744331519215431294528320315450889711068939393252513912997613444031947938077927714295930997205516532385024966857189301928188169466730140026781074806105850168979770498398594050190660515662491466275675054902638515590446738611754335406629724149292852168257885538774251567141580813181676964771330460987053588960530168853005883052960342928954837097383954456614069569796993357867011944367677859350916271308944719631983936150791230934961291472557656210217897192310572460602229099541349162338982203343201035013319479628135738008163137114883491726390152829174155974755720196832209296023858545280571159333849499823681877782904116195203941842188145503581433300313020426491428873414366888756468068210229217948784102846537407774602156849962288307737893963001883164056820852035884940524603586570513150241292824555162180194376259125730390987269156799633228677892689041806391701805919760046273212359878006077193588881715545010385521113938435982028485413826071177092089875156999735562005127498325130010229191902731942871102070781101326496990671334399770829650498711063092598225019354430645826276985607425242584047806354547836088225505090532936805179191844134238261937237357989219998221145600307763368808766633883008186525146946105209038090778272895279720473355530829412324445707970317637772729082571754704656078136572449575858182650331199452056459635135765657962736251587208951796899844046096786233742157956691337453469088278193369669612270801740123665478764031918606551018634441134976207053962386859059253126890569075417051313657147679794274613859827315703346756249893211895034983418896335880208286298518385017827850162540910869926519798507562222671647774275833130547377181118328877969337675837855574443910553512567197248388180486509399026526277369169380058274242449610480574685798266220807061549268822489289254401537035996642295285666069629621249274114593934697130999591764358062499625678928715574667024055310948414579019841639872092268993695112887253428074994492164113864764014569880620974550888459693442442952981411228300135851374911258586145297144614568764266640571209528770799465016314260832721299149747980065940755509069331533328494113741471976041901798873696855627621818272525687813794684942639940669803373565668171632075946929202374418372583583971598154559443499908332247508685708889312309042100503147054281210591858789970593192246841274471789249518864734056969441116519869779118967810797587269043498537215297560422634405686984386408791918147334499640095642557393832450717475895600986322417376983143774334983174924224355935228061716227303541568690662703220992735606093966158247043605935212702725580475704295022650191539295736743824376679515323695179677925418152887405980661368337277027432767714228624195157588800649974265877661796752228120292026442148042263731183711052382380735704141120569674497685510493299687477500816724925010043420652397986813654945327186841056730059433047063698748698001813225120797886286295718603711521188842182606583298386839577394857559136972874270162872710324712027270569879194971205808846888844500568864430276878487964023668738516588209898877929305668019952738406396670093066560835361131323531495909577743709211943209581448536417375789171342044596874736632274691049726341939477227055658308948496852372425681876687046754397579879104735029168441048558362838111070358466937042962840404398476438519784364893791333965647452053254917306680266363560680327250520183314024514734755615278461456270483120034363090344716633882443641826789202725459373168586107666959062729474649722507601836848378623292053113630874116028970385237861417424878781223916783184625663113223319841425123818668275798467405101902779111216632259709833504100505195468135468636781285846767547770911745591740451765106558191580495587495425587781505876953286685998506960435480993834673670946354058494994147962274587509912677373893499632199860759832928097085463261438700220473227586440707614593167118202861577439278047519782092683318209679479388793714336440384771007056117158939430261279912144025803687574315674085620410455052181441832847932195241931763365047071233545223319105528408071670429159095770450071595146988184952906103552544028451507999957218627804028155254119223382351106038363748334356824933577327037136130276659889481666125648203313741047477423431280669462392555757357985885629327911750448384298529919424971073779048287369623076527124430954608936694472543446537501600425800560195864013903494487314059063465937427806853592333723748858871808549841439651933448147378484017835350238235712191049781313539078759354408621503422977235571987623272690844354957260854608134409535610530080294245222148043832742400716046947330222142038813668141500855230594222112946076284762031624018260336793393908461483328910938604354326950485792880866514053762201048678729745115767431649857260575236849982560410123472797357750507877910189872140536547781222143562216994265675548273533353606534034896530300583870398645171032093678632899545127039949436354357702628180020178523479284035799008103176948913475341360549874010748375599162933256106507235726160340918209305554902166625049912536968056290944819505952401252279549322120217703848857526369683076154996246911150777421476599518656953556659399451501807794024826606293230559085654198074544729075059378896375123762496791725428787508920078082001829246372802912595816183127813321565817076787063657363277325471139259733832857360525821598528779956699989637853737586796795027554322090946326783767376795907078684201252768406788066344154576983739019922796836663503386784978608241548198162847691664661719172145461510144615539937319496349425812123491285698593885026711944779033259221015577736628896102351579519565886268162617147001944012490052948996576417557605328954062614291976172119569009819317840748844096214794131002487526211672217561487744366284249904217392967196218115235477173280861867608133592444072344908367263945297255327304332626620506173415667813454864799930670390540313287088471603553924452290014136091321883568734066915634680241730979978527751622234301231150380457295854351562681068137876147127476115256291887864831434143404499958408535959315603553113360175484104680214354284534198310686645783390860679253250157347648797053726347009528442686773463765081989915958149423458327614972783906199352352238310025225055162745496583102251051663663240623056689368396098774249389882559389129258603853527287888387501793192608776226073779644119576692126555958517349661617108269393063500099595374869439918434179883540112728127439842557915086935647078508730964945786712792892805752820782093215553291040322749936471094680175359910861069337592144599613455458323387352522490341340125731988201168966299532386454502308660259820829144798338102708246773604068091514271471671960621775616874356527413978630337515339387015148720458877608524831014783105476441494942976184002383896399247546081326155256161023627236121738498886847873968207625227222759071562838455442145118428937112120991951940680238326289007845599301709902469028421191255254985920430018880656267563799529663920658812946299932880490987218916731187244526254143476120109592794037888419861224242355958537168906074035628848737387734434850927626226336120436233589670933986226015430075710423254753674011306310498536219965011869441172485569202073470985138285544350419612427905058715113782927110952698185151364953775426729959874846923788885976751229161080034432559679659146549105227526584736277736529693034247902090772392689625755194005253567521048033142775035855420663084045453831694624730448558431517601132407328543252605256597075103652288129688728694302834389318940963777478877544123656289415961521153305750039004021575547264200774140861255225214015359773830073383314414872495347058858413126972075200881097841177819943708785666889652907204729686717427030296895979395766598223073639383587735599560751329074337132202700516935280767618517899803242046308304509793513169191302862747893238986899640049755298676462162882425937674747877564035503273418124681104414715768089446455053315351819659420595623775197511688571770468121170641307077853150415717906521704632040569226016009248136493164351020997860081870049926970340622292585758744704747022811501580365876511674195653010818558884657465918855776799548826965431085970698378987442476344320549377669735550372289527884028709670908557323867560474133385968960860984188980560820155774663507736793156651553426422211874464922610574345783008170848185646400841721150901184398295959643548392541303155969789003922860607879795271527281182806902112428486234424634678448465072414082665363985259667515246231929305231716627405365235886822987401413776284149366214777177107554742414326359462914724493013817754340894265406844600263649312419885258527124028003472646415953606252973620139961671382990318663221273982803045486287834634505905526732572872472283447327146873825532572889379925005056365816891050560887100609286900496100660452292644698273245087099616138662519835937242417214473486201243515208149377042822389005532452911278122339883279762457490667605442489403889550776857160599322932937133213349173228766829685872030184750203190605855363409959593115478744977208779473321865003114695142143842938389579650690737910693629742877421406065841558908541020826338111557610947821609485733751312038150362517964012323267439268395465436042101843448146114896825653636766959708225995658240654812233220803086132510827903943939842396864772820319194027695877401030217093692303253857212438126872901670814868114047818297509379897023385533890602890037646095753960072461452420326147667296950191450723529663816402398869025680518436848726213122422564413750784403401147654417099954209681501099237220313943624666930310334751250499753747885205137879515894320389518249868710753214372961662145721361464413880671812867880920985779777568594895673893862327027351956879468448116918184561323577286098049908126264135508150016872522296828095748524586603088868146065201149979140701360922338609657741967990194226875118299491342796242568797708289577471280381677836777784460938721763500424391811173460972870697115556525101459751879379308211913736439679051939306319830655837906993716253409206704884872911953904631209980440064775564268654881566690553851473923908593251479345810775062610906666110643325198600744191598231607567456925590048462019466165823350518373359101534136751179771695315496141313161858108225138063145843024206934343815164502154697944481237950311673291753550938917329159695451962563162908781896439747241270260657138831012325825804869553752316552352134411939786658579169782368433435953390400545972813491067026771618795188225250493431194584338035971552607128237858550153794605508158873822405950454947854219021356566622183316111608633647419871138596881232693293321203277338920226991140504902219279962584736256875278765405701962593866073495079319898593127047441250538065287484251671720990879178121696955305881741818935378303494013408750862800879651654708240405319608519418946206058661635126665514138798268184710859032151507917526956888904708716287218361013461455834556935140443926885740919711158105032027413372743693144778837974257121676185462170111200908474248758001953476958131609150146897079324272393502844493283465130172340729351851051021904259507349042030867322750602271055933337119788339623552361529662481655128027137405634902296123575714273762587380174525610958331217132845631784181854538112888007247576000530161329699707162419809566590574434038239188325083422111588466119657939567975824399601911779840821256491093344045721254154106212829884489534362458589842552155848328785125943349900646965401641292351423471850090194188619871215493628346645265839653948365089236463245487854849442874806443310915614023120324314925796549489000555848923800308947379788899805933465293930770141083775415502706982785957656379533351028909712233126951405949067798989220724245195936137048182525421509773377179634755918231583168869848622834593575073373232322447089139277512459721134542668128304837651456605895648079479592727418532695045930047366816343701534286431363718178243601328387585190419388152825120812883663787401602936037858138062264083826388582369501258556874398688359543011775625390565173452811122565090744248707743148293740050133152418354652468075031660268251224720642707435476567671151250165922115790884396748797277553089963211399796844691863195921225203154148873188280981399583538591089973124954815256620577521800020475519076048030949394383385694891950298703744788265221815178022366036095356647006194589343346025242588107967713097307566730644127168171973050131691790263192188141538273016267258915795592300160055788090134225157446920629059713106505022943481376205024234598042481281508155520996216935100672537630441379934204337904297403672382440803354401451597297068966684223440511089266051681134452424555715852242988931802793629431651308945146632857417843475334031876847672572634493360357460625545818928606790129690660847353294966202134408233847697405266372240091682165102877031880883331327128536856702720710239289588782280465383513473828087300161358482247707172569365026031379032609281031013742910802827754034250277967512741027954509031597394586094133069513244615999549101539612353630380771000437530425314853866045141010214882402726473412360798934366419175261030577264877421016385958451858441900433234793451149409894425881296545831336644016611269575675991274604157890859907092725261124242498498307960348068591028014832010330306555026519317765298971806847370523708293914255920188012296666800759537155806302289866973090029918274614440297030205039542739230209544684173956114021550870484076805064123986151580960003587150381248803652601782313103382594852934158765917819406924058794341327036082350401020673770261155590905015649766927983182206610235139864693234375257327232623349881694229175484423946843074734368028354952295607326155454457261297111785557604091349967397145405161670856551157912989661248649514703742048754651618287033322422857076032557321820505839329226472427072078429731230931743113435010745509339984150782177675390724990760833214896179049528395674942955644821976509215910530995649088121717667897163864963869586984342448842107864698989998463616168398500244440990379193596851657764597778075901989182306670684955115853720945284245389259489489772056959972758912038717619299858426346216578758296809861517699035659322713873334492023279972603387556882654831846790134161052025679032271516633756187052444112304506514655206748295014985972411776697711421061497774366472126685718882268064595331653437005586829359761738204473141288783271792823125161471172704100475080759580470314121986537473223636676726566976322361605713366992915833221709356861463387578292220513051827329765144910052818776759963446096650562016506023933849602368977501510910110825280385886562938403098706570037945795677616146268372112710451876390296344108243682266737057482210927618371086696127455907726568503625001743804738669980222486606293608936834712410756451901032206091753762216758359918047897420393824273532538297934092820613963243049307078785286096996702337538801554584467766787792002713106067011865693536066373129790278430972759919837327763215461101547177198447870684835739830999224258953123915794760058946663327215560870754030272676150000214871011876765033282868548417023373281635548683246281610340404530917575468608564531054399114410452580777140023127607986980123101002742560772448828441154268978372335122486858370998861912883177038272953125694502659767214847497554368013592398354978644839440014734858354666985407198562331009924298538740949153542683971413936699277057312291188015845243893705766983010946164336437051800251528269546167899476362757424628832894227168483353983312555172032676542780959551380973879797648669104866961303698500859559642025413490165910578537080983125052173798762093566250511076379621763553136869939888597973408876813700624661091546481161321880322132531581359499024903396808296196955265772012454201888027110115078413937227573283464144034051216078995217173271681318741058548212596537533625758505160194666316174434381099499563995857169668072414386664448488480040414968583664665571446799725072002704736481818788326415468011928041661770364142273640601240494569459157011396049748218653086763111272899643935000737704384749574025293712009057998216796411764566638058231312670644397954593528786834009004129069464476864912062072282296179987050552145318903661242698348681559887601032786658531925936553518669640060539277241045382793362178774114285139135526148879867500284904464936490783557499736506596653533668791872246355093178668976301018673224852200375709724760745174203217604391699308612823530720124559562449828550963218493412775158668012365956845231694048091801066641240886302826334492175432821798365371332478449501796922620709603275656219731708719025910910215188598420799381119367541219188877304824337292641310448227690614563577762901075658539849026504337702839783494280994321319018465155072042416726148934145209978710366746507478138991698418966698963835091873287869280122532680083846663153996806177697991924843938274773508649813459145094173766309818516287128322194136849652448767032183465943136927891949522962671449611503583641716841606105119615451375455200948088631314187498812864573706888763325921705919379532889179765179720729349237794085278675735926115061634663489857214290718522559811272500262827750245018972820843289983712344932006540923719453624605362082516846872720692548476182843213349575083826188850098815472296861306141130196254337739278465375955169425850295099356936120289259958674841448400667069361142903729899948017779484773673444860429057394468577329616431367417580315762502663719158664903842087653804808156799111577717701433864439277624396731914424546491310331216450662674121552736629461162537150184540817873240967137643673594984529897638518375707729253242119200405189967215002108824136131217374533596778372000721856169598068407795081986486649221425428249430178363199811489089399919254251465933717556166989919689474783517296463900322166232757101009549091641959280337232534142748466901791698583651821461101253422975859973039441611825959013418373468954267032147465088217085935462868638035729122770600845918297083422265123644316131581509104000924271705842020851400285903739650245454606141690256537991550641271614951289382161873874503547821643323744837325168866439202157990214946463283628988759662848952265778010033980138929200935757811095991810465316949374981374751556667050468343669631166354611871952968230879893766769851662914136683975195251476958246133173326800619094671168387591855041452122000582910774509780278605654359434800206866657311693949914764999673838157716643492071723576357607224479566793744927550599012362444466895339901165721600617312837583926834186428080732079573976548264825836208276127964978797381845300010553975267196828138498712233893208979884803316248200302462675839091302743715106305772783302056011009085719866736004640247627754474023034036356532775013189171055707455044193624280343795029124746198812175754620229990704383748318338218692736211188485262348658389582084388504354172756594668865970252691678822982200732323362863600188604345976593795419890792364236529845612756296003745453714025556682509967130330119915364206902468358525486298866826281841055962244844584546308197951166268604232199949438848589305753497507068533610054201873139137366866398979316522152128268204876798465574472094182359332956569523199503642740916806837183537891974497589869883695079938169363673913906460221479825489615426819306550236057776002702343797856724162494651302878295084199357296988096934453010219070212889785841759906302537269221967175603946951463056435118062449108540923317079704346122033744129881857943316848020663658779593468863419924587197378689546255387899787333252124856342948695100984897228369785772368887955573834841865504200653111575471658957354653478140591085477144257856620271025956510342664904096143348982970217115779136852132404717265277344298335423263142131523152665170981605625837341469480637935416829536352495057643963484560020455070693860551180294770399519640731930740601472300674184722924234862136870283803901752468884240625089141391659410457798418547863638689342724293039548731224493751438617214672331996316858491285219624001799465887030207797606629194976317805035171909508926601873792958032678614753516839035213368718853059877337617301103865355030087211247313425983927010407445760762631731705235245217558531960485337996203492435647555422151982752482849163712180315248827588800364197236280479584473630393207072452043961613659813318767116093538690593387817107270013850841183247599262361503267902045770454426616067233247821414909369718124418861288817947557171649321449204005275983371490050106269827293935406046322627271586359703058222066561202419022308859608387740790268101090853773429800928102158449756619373730758567276046741148638636868370912234477490472538950700966639717783443462497241817976843967376265065569102370780707503615179825224445835939875291348963433346660471014547245797063621763942917883720940311520450333603253055941226582473107025285849988637628900390186710076734230313885854442973252616157778169767835883901154156695258337540992995519157546382241024531667483997768309864561946098487231243281426334291009264698527212777178149272677697266736313098534077807407738985725052646444136475183163732832538254445941931672222860559519748529045737211708460059151646556800418452809739174385329897191877201651279975296785561273891047772027068598654516198786677413702508810280430430154310138728558341136893430458991760734054290479011705714991097766135489831432038884116159498333789656559259868078323630949793332548153015803821773158118865682028309867987808588872878884536553781117308733220362954310654992082868922107280811156446919451312384813946328314431064108612795576517013773939980435111430725336324876577515174125595208734092687311389080744652893003349552092452902933748344638600010700966820516842066093098575052770437471684903487844910042733102176193671670736641784071700069855310653641936532302415968202210358096400659956402823047367126159182313496982230162315330056634731407242852123539809256697081104322086778379185312737666645456485539283339063280607806047312839008209246918100339461598207422152662955708105493721310302712608127579129980838759731867999145311078286586093683356164876767029476763051769092599264491189674425836683308584772795151308581383640473813108295951580831038727497412892878758597788040598430136212472956273695929010857431955131312845087760224989760030466110946969110095166018415203349320953056300613217256192037015600738547268159907289449522137918016739112852170608075871120171201657877676435634734067137873136384203793587406464453145411715317338364395150527642744178487039717489372285108216488020464504600711194734694004555635716370716141971234179529836454645298838174690234678074803506232179614786747782923373571516637134274676239598210505289798860719780584888843890344493718457416286057756487520937567510372791052772766534366189636811704046843996518797298894373683057834566709217318460104640890571785600368167722141920768340915490831347900250030259908783806662612970623569390205829167145448161099078647744105225421537583011620455288190672700685942293637146561765593647971715557315862817844385156265704786691180130757521891517256057099741029341808404000677016835491907800848656081857860734005864024253481527405689423106483641717739963675841973363920705999797494616172138280243751349489956234698844825264427103169219718552189452152768800994296054172746405488103629670362471884004401051578520945553191908053201479796732960204757191437755834390569478857901145084885146831295103449182488244197060426242133949710934949337119647689179787362669509230815721308006187159244270386089966790607571169187828001413996276686828836785723764474384545006046624868482438216874784933243819947733937108381092659810761225592365483289810587536731810700963639169352819420110399163989664765964840940447142937609293427928835090096947279147030560994877964202163349727008181350178375681832492851783094777532374733234196641274498885217252665673517801484772245234068528004845899854769592711682827893774409365785776033248647483860145329585814328260015129904943227142040329027812646652532180349803730543582395916379452582941407375652809335159936614793803977048513195640111975053249118350172013952261389372141342155796201171851775920485752327667663647571928705524883934775486998735020992957478564005680797524428109635188009999942466906530188587104573841131174484552236233579618484960366610153718424580073006662999102360936241968286739843921668577277021951267061563346605215420511583325654812141704481872625702814533739655173472587390999866763718259047243920069845987639136532076940249968951947166807920018691066463499695815907653766128731022448233875331521211781288599141786374606191046981681506171139317533967054429281002943911940226950662490213266144644211671194695222994149398146877045115718216055202694239982903231220939477294379510356199304123219672505920196451829566164906241973379012637468282368314465000359963068223163785405394409611338311714292721086665899756223077205053966487437320811815387939640125218807241110678261358518923865486631204182186625395254082770187004066261874082052888701889933581248146026831660067944237705129478187281731237837821625496874931939529349732493614571253627220767079471631156695814339947680227432377309324996637996126535778907831932448832280762186164774897601006802228800312972001332280673577245167366022736932980257150488169684347800853495378026252670219362955028552209941055203318990606271601520500998083761601011383049478134703560553101465390140625719631675782895708711328777270186096983316483411778782232970365735577055768046483220503206392335904143805979741851861320567194205118361946637083740462030793937927551472996035489104975038490050308027644542643180545424158657881994647839606627686439375719468729435842646365241454086468369056398625726128380282418814621127752373427075988910288609024149634092738214228312102994366081541500631744395971040847710015435096198485261216089680208661293011480036969237166857229812592583449605936031385108546435572428296852875650089897766465086137165405814154126255870680532690448868060216462999115300788241158785703916407765572877246477570664131990721830842362563794415849926629854002132187049704739842146624925757885379695190436318747171415404747513711913002469081846640301913267370263992741651587145321415671379757532440997407646444479665867359049770575807918106198271640843861112728484904594641547222612130108386569321274300015110018145676878591775305075918069639370792181074486408838711223136549932313443355449786924197305144979063662158414228633602692765150711680523130909335698788604789729320266104229409177893455276164486058230860242419134942863312003985595359735560769558810207479564369524315353961497837963346637865883749597720596226670564436856768416109043830232475830168255966514223587352738997693097426104339428806072898518691364559068709391162979382785608512367717570640724684436057712619816968375634417420803552424716777470683210628159717064248947719922986501712890372207508306992550064483181696484381186459616945409776885018793271261177306804629021294239418847077640540005484737605935997470488980979767539401872409545055195229129800790486120888577006830634586211442352895543602541379474149596534107677496625870582768103244816589120712002694831759227285611913229563964852487275372838678352391317330860970488843259023233006582351628959024857764857695500957256166514902538391002506990762325520729386869198725977527076541986534432611748335501780701670066754176304740881051532483189370538007776887555331313967830981978109853076497915227349737917091856219743398965915845922185301413022731601145778016879769617391966927513643962902494356312970024850552144540060185595172624837595255718470796358584067969979087893109184441442843556553675745780421541668008563687935817025011504311124654882282775414209983950432134096524242265313850984396601037801772334787455560200168948591886570381772882786927548431668833580497438584535034775665312439876229316133345122905496281816354279604698467865115052489843471895903686106795249954427978733992827935348882801045166867403295398967078572023480725749794174415727059369899880769305449662945288903420357029303128852496881122531217276789613364420522757550019369252864269444307342052901745435469861715967326504616420269277766485377225379210602861437629892753424741127609795598749176884734287485924025295986844217928245355292252295972428671109633969166437465971463655479975942012476063808073671104009104010558592764712538663160225629587387283845443156707717833957782501427079861132663941603616370008489990114545134200601673169334438958584071450288733892766087766392523495661736940621106800095351758321531767356060251940344491846526145298352178942800987460325609825221489262272545675346085225136238795076918831787849935058144842791194448595511874183702657187381398341127594454613958581257312639525055894351011608884163251605415948264516420470989316094680057328111811652219157756429042456417096888868025191168125290935229221703749367997896005416095700108984189731411834589258586244137320188967657782430488275538181563058219658300709253249274717928322993932575621264129848713601451402184774803908819928316250547641846744207180075500321985323350482906883686762719107860100184088627643636334790335702139636423076051234417176314386702243523399173791144423451476507168785482292302367977815400754221608583921122632367811587347478270124416656509456363649306726842062037828626972487844176971251381655703060874053000886069516506601281275045436308130010446427054457034541014961753067958922929915433881520264551953691568744620192585427298832876273463857365480517542349358066866566052245163732123718531074386866812222783788245483388173969102123701218404704742994879513757125794564642900669324618696253381728097968896468562561172434815444013496097187552050988660806685097404326777198087859945809286758979210312777788824226807787249739959979450629246608239403627588878751163287819577245959777774060732193891899289832159787185247092264577349722557940181562536847484990821374044562110588979013365647774922158119344290069337712325880350247829684274910463862617790802023898061731500531620424006218464724068041164135566188302917793956463847684529394921568443281634572230133865766014667572676025260134286876191330987009253320064102939113546590252293535455945914948721203324987772678336942126920477723010907825653287619092980430529995239382925374308446417094856483624124814314884293952177766082046055189429715801811286060211843124045553901526719480032108463018081655592309488813758427964879895164241597471884822525609885228654579299144654824217055830261639799804528694822899961671875057120053318487649781754340255913528756418284442268508564006562037605283346398702700263041685442601287085462915197147424085013816736418204748220616596690484144451355954818310016094162485919436437149454104131495704905915319076888763834163727978557640267244866383260850499565555668636570607811787912049779652994558835172333829906566709080962659898820711720614380626926402961220755711351824331683502791187300355794259943597752814763917335545528573378568393286219852915677826220000230539905947525508237493024847775936447232741592926619320227489867344393042730806099220257140384626432718533509336661579372630283545322922461010641287703994698756205407250441840977456196383723350283817053124333480894080031557045639869776732486277913180832253127170373451570054208809699972243374587736029573342559577587313221745517285611787990968697860636866964732258485511800170349913308894783683009979971266528258162318861233332698645573049225626373585797006174477352741197250668575254834551047025152384698932647488571180018394903686850643807915164035183192375571117436221898400728111798911437586174503854885872837795584390187231982483317162962354106833583850347494995427700053081815749668199220330690002169876907737761751231000713023861793597300849297103507856161002746347683077512202204988024657436941454229431137402111808823372614739800968373528893313606991514124167770759838413060569081467008341893074635622399210269042595702447621086241223333240675016795959154939130180832066742538941246030509478631976346996917678066472042970496329161044021783833494299741904105907243464772758516006523406938352582715333475215878867572327486293326948876796373238918348925334562611359308363988492480282652520914193905580069607823030569509059794531111188814736750397198748664637583342265483835767191902628519066979781817508253045855714845753048617948380950515419977162720432150406142558651907419739966832996697991990513561765636631578279081806934370670733980643570496117160930086319452297291702612406655409386562484412651489871237010316479346392717581147256780031383304490056780667795960419162172483860512447241687844254145279740765328181422987105121515539214498293513468939292012176422531574612952797885616953108670441889831673797253400778092442138596035538320544593323970385891468255205591208712022228180071819691346826725951805802606127386215024953740163045349006623658548487639037989548311180856405316794964336028970170467840685211004513450895715160769762887775969533549212167722852323469806956620677879610011440130589345995701789820364017727391093435931082225324878314913319217673914395325810564280290437012529268096847079052886565519272872999260131846055419025805108164841774733658548194512846588943861040375788109686127863587897121629290550965875417898369768098200140073111170759208624243035601499730207379658012588793667027498348685402825022300225510904415545800567786242944687665753463180009266354461627232547288671721582979817817549851754779825427029275092615598786928071526630221767768417157990160395914639458051428518602199739886823216164179845490918237166669501324185420284885897494593537406248715944441923550851887207807736953043604193865966129833159800730562767162501313178481559624474114568815731840852421402164650408456857665758568675797531084187466113590551774033785958980726244358257208007391413829269992549802322380757511393045313520650987683916557803078138659838215917707581239687774214602006792945037447330879637566352696000773616076533550425062311610760450481043110357933340843431841738455465310304274386198160597645593593226477839834211444853065504857784870230309689766381095400274435323347849546925923700509051421353872024403934910096189286762632207427057914610760318882187042111070162974739431649907241434951359272221285613623470277333625752191471989230726098945692667038390238778635745319570768115504128203074624599390024543722803042654657342476545121509692376352475483542529982446874938842410047650761783975023397215516220239455459035628962583453866116289313006160321816323021512809537626992993850123914696195951771840102371638286064428217207860807696147215803849897293592530790361944069776630698873369713027975657631723926820680996926575269829328549392014698981529844590434149521610076839239291404806692085702793011779754183326654915376397588417486459357333460413880174313543634672534601901253496037926589177793636915138629544327711614539538882248617063114886297803249452297970366048899730538557940845384010646508087586779063970365725756546812650266948869303836273910530993571927836657822532500995688579329777823874554745502903408645417891096609739967383307527297114499672453899020918858769440984944502578152037698998089011491683356636036235252581555276609059565251342602226508701116979251336470339712110371157279387293742666691813773792773593065999845114134546983962052979307951267980786889727389366133882095895835001787278651810409747570642465297024967192000115365124163525378616805313895105987566800315561357252740514707969426748111655578120282329619323953191473512884233885779446543434582440212682050904427738639286672708276944760902433521653568524761131070395699339669225674144777397530022191871209566424646686692969880918134723675056138416353488368680376115331368866946098798459552950913485857554133565550182614456631221644528952863696014674214040685206128027838009611570501033261437837930610972694603944869849842035402067212818263684664879963053140555264523683444614693583697778279775052813106193619143365361077351075416401161960228267053299026407057495749624212460948824207077858964521738047314158912899763488778824630595542934081282050641556339603221252843032048107695486456084461547712733529105781407651592529223475094752762681662562123227838808823252031558629378355053670265912538618628207860506972556131700526746446156536278653293897003855531349624480002663932758412263783987452032153474052052931449191230310643881695670146663230447873630628150462865359648142492528656596709418067281166489288797656960132732757057599745906438984602871563707909556899094357023246541439570941539130413348798232379358110909630753674225273553662815261705012884642726302688239650827698179644071831284333855365181209514727732139573939560976146063797566678100373423652012748114410698470049162771801358650107644921128856713921546186708977502249534548661263544796694674111954757128599731746817378108862170414382822962123446588231514543094259356261198346271773625434951411447739422831027620350647094352040127169205766746083637724956270709984482367650263816571830545678638580929020021280044038359303704079666140653601132399304448467849021780584413769279819656374845609768209053439979488209857130912096114075796350720221315180058241313998420171249540596191900962536376135777198245287945889766405635239960658478389642174134497745445265067294380859573964011942822021770119734272431861003480905371562460008868104355203162578438418485635222314964809664475519708102070045585176191231508648456373753370559799623720962836078600263478250096804203039832302926766141387352327209276755536580644207800955383775359298993898035621159351159216547445088142068926032116051415253810730238571161831035511916654755327529795255161574440911896396324253315227379134626687231760989093627410463059787136777870035934647745322871135975953017339844308288479785360807195249851930330509577429923988025531594426072129411083143580447867085839695426807674580053387483089089913241635571573828318624650951341710665796878052512462881029530423317185202442713914983950301942169164615081359241110212794631270087042769700501953085109887415774675501506645996443451901811393764269113580427548376147002205584362588557714305071805087624136110582932493525082544834064107794708185172126338954889032167814673461005966186903983864659039726709373755184986729883209372461580863188131019225243170161772108452996645316218061296616720163786580697487982401747226642525954404624464971387731088589164095341943398828301162858415956781169468086735586459270679609932482476234338444238479474597192794287897461227488224824547668638781233999839853937997231059297328616753616899321607324622991337177098678477037661236447626377539468097191313596032541189896818526563086123357593151300819330872935095127953526374913036108202198162161775101016809867799602212391335258614674615645980123780118296135453519502253399483938645774544885383557141397618769923505671844807244475613110647951226792438703160369133580477136801518023842097086722709005614926440995817174964089307720928297930535302788170946236109311028796584696386567998939408208442712088270523319611735013738022173359445659451202803850299837225954263041890839533689488921268736235800168866931632662865923010764136953031508890395975289474901003447453108822715493561329810342088837607886937071468881366462882387307561218322685919065913960741248621865669594928025805852803600043817603136342586580477432959841768767067146110236916411694848944571645642044825636812324504913660365124263305394595511895764171827557756145873806587259312385308661317435307655995317506067192640673152537883082800451371548098996054057330905075879337064338721116496802057365835271115201942037771351007952179913922906462412169855918912467655751478409257522399010452165160533181483221569520586938222233656815059657905838674970409657057016721904734620879336882967909266362549235820690119781540532480366225268691267775811779631666470958266033379824208005618073557595935167689969911953580055547614173809222247222498182315611960417731323254650521101041461699543945124379544667783991805810750808071091230107123610089328550159401588653015012340577034081021715539583232087487895166641516295257599092538845086302159490461596692313772589387518783980381109989602669607571206305983736626243111869205562646754654498859318849767220616616645403780002282555435714443872923856815808287073499466904472501677204987605729274031796384005047375035993941681321099548353541742022036414591499300410014709140776234993725606846646153826962883904420396204160761687331469835703976495992745412214019874287060792728707461313559725142584455927691668788912966593213616765322689197571659519410993311070819779695317016095550270356537448190206178576242831209267132284970072332235790570893819400225227029656490103670026205541404034995832453027108354743273397642650414854628618471328858164938834735307872419833022961177110212965256813290379531065355048251935468347038779662661113063287776353390375801052633536789701811913735088937814706482471607965499459948244503620360214702966420858792511608748378182323642955828587927177522773942079226257701886946282181434966859638667392370529051237220268188099462721336820398737447851300708282774822916260511917213723038745482903019213521992936364292793968701980409076892771251135786375560421882903012404971065879044848166674849426397840491132574869020402599223456326235525402716455210908707502524712545993815056665574850804428056148609058083572462062691638879694583760451914730569684252363026828613602646671523677495167116847604110367167499526539106345359980331710469732713913102390261563209436382785270676094372721585988440967627716973808447614194689840761268918354341190668784091627178909079910689972361815135463362350009218563728756880981141962867989141874104753576648834167016534889780677318540977953053326617489294128026913851966688946150868191816740650575878195453122695083262006681706009282582052956263240353979672604489869605077142514534631567022938233652077463161344392256738580618275519348950703228930196017166665273650455084623448532634938274609331213484811361554075025664039148077914734319133324695037337455804026582412489105270173322629551370334541268599701469784868278685823285047033423384037641598227389803839758271101504507318958291172385585266274001759380818754229501627458677499852639366685625857940291932139735045904024851668005848232974227488993509852597988914072062277013918168659746676316176665547290087076188670639838783300993211174134743835953331836214852464314252760878880089388700174161431338680661100770671576789396984511306444325791853641173755872249957059923858277929945740201998537697621571870481087883432905005541220959212166359610549830161510108954782987024740286290351501241995991724050888371380482743026457550716650765040465594327870668905998444969425236685315077986266818400178968811201588993501801360892517933209619294694082120645482443177583501293906833239560688503011281082270188105326923776623099170696472444929363293042477304475946995887684883069194744316799965726261050535896238782660159768402042851971915112046347984917846264056970863430765215043883403779072139236637745487098574470623662737222836718703816054854240313087221965375182748904992611855871068753501820380198000930679698513382430613819018734865946712296140949766554475685667160103055276776747322338153515015671903881160908481446244995359990149707282615363679651504017517109461980941225681363399283502369387333182339977450453036990292563588698305770915855306388748678474956475493572562574373397999430007583821781155640670724392212490367263755102823104408452147190572026924103123738295607982526307921444473110975391514353427200284839623990956461671665566428206815635820216060471847860544959008087318500853756260859210313794606535626640774458605464390842883841467703965784832818958554735999097557141504190707404608909680314428024685958129042865522085215709156047016544875952504378999904471192348337838827318911161331251594992451536994025199481283384730939101814886362873248382745600973897102920902526738309560718624866771795041583606973475441962368417609254977401573512873789385087255749706167521960566593872439213056105005097057863263357956530890645895738440760812167939858135799458473641902614836997145857861783885011387322610518813634777947339986622125257285127254204578014895439923290440168355186884864316333227875506339421231786314121847323196548415838746298299628208242227370033434259459649470220395931107669412472025325431952245455840849836625608504919085097133579451299197601097273972081634486289802154771505684309223288566645428079468748703280491977227380747547958177337791834036692260244822379140475226837068270908881215364676342891873798399056195572464049546913764849022889917378720272770899004949491544253660375324288629966713921218484076262615189968205528292254545352799373200974955292739588421421863793258383756310303266925761433607977981886285418601346732542690995706974248723724653144980331744590086889022173705312346249346692011238584106623697056666845092739089113633837077194548845906774168012485005695070407550244455066210363972453132509554150070937604704030811598600286760287009629821764430927082447917282173118215911998270591838684566312070239593022599981602972748360461577593029550332976956629079568867311970176083826465549608408285203052962715659405929064924061722759967602559827606399292113266638588693533528873020217685277996700719772236184924603591150457449123909737782485291250443179784873623342237358193458644153289739448927651161168401293402921422932956736115595188018828962802172897413483457566651044929557459694665895744944076136423574706168850193631084716777702096988837122896315129285348722288985816563119091923437510363805273008920340815485933076354992335918754681618083486097877686415289117613168923737390796039952679305765197599077466244033847842969625621643827643843640012135106934098760808037990601706665258588657424022480879943411143215178638439967435076786339403722151092231695872229079712272398204054861711924249045554169250950878273394361539748286285389656047654875766876716125334936297831337833590877107777253389512066234845805835105074426943322218730355946108131693106026457599040318601851014456902085592131598224673004027860838375266448781967567610652989976869180104236184991074853459065585070607424624120212837762071183139761215907513388474406306374759467433394963108229720613924194160576596908316045055375138789926995005013472704929299123393823180393941958070281263068511831344220592654583930987816483993335500687382828029448180105774528346113774126882721127479578886031050576659062746442909279209874390762931095788060694460047412072364078599754653780033816277656880577434437472077668685237758643984516811722345582567518080305610321323566653547743140915354945602760847720073543696828219046954404473047071941281757594151100233783322108427636749930555540367176528420830999260006892359836350734283789900713742877704103003014040308606555464704083137454887351019118788506459601832234197036258062755627665192682598872604668057714418819153561906475461796115076889962110294890046788135609742372987923809027869733600617711546069911470110142684741319332302488430454339613735128345429756307603901176947951195591513933504801962046744158677254312392653347376694368688340257732596605711175834631892315205656138552111152166224258566543590167705362003703266042068979680073813052292911603707668181171527123774702592048802954324443457187771902653005111568607999761060127084904892739869844541502656072660430751422313170397210970799058703518997376346762754970592262066664913170463399751033431883177263580871966164780714697386298819545524904031768720517766254935466681420276670003179850289125077287374199418701236672458966551014239709247900734493639254471791186284125396633784794365962681377122271939735693461023486413753692208360724575753357556947881909150584166160024894866131323199345140788659488937793932733588534885632259256876336070182996938974994203818871802323665761233522202799572577467201430535665045480000480844223849390342800904446365286485432345978791216492370543465181791086969599384647636785034723581087133894325963630371475151079007749507444267063972106870589453558446442201409606976805368474700252188150398399715080094477800079800420890440965418949042993426241816420546909255176876907071250119607628864431584455982241958383762553944815223913850440053628790087827173784536582594869559214104475050110627583380952344911518123219154734358791617305457197639505226470535744187556000650591439435338497562304631111967912428126509522749768636922204674194231328229965036999652476265446458837346741683815772793136933023883657939250849403430635165971126585701999606554252706862662088453195088806501245608199661840082871479918795757124764084131012812619746128928160189678644080504003924232008380685591390921519858017304918649877474225419161179717250660613433664573134685588681258431852760451623032351216059573949976507400002384885368158489109056251808105974159698567727789476651336900141914629126494283909419226197444320452481879716378028003508264561440476587023557644346050795295593384665908350676036978342407237358574907060681498783241899766914088771356249562620613403104912021458911714291224152449477365047865778989263296065398459846420044447831301858982957888258809661065434860348677584563392274712684574578191467294252539710285587183094369629754715208380346504747720607383555067837995051674074713861018623271360908310346347029685326622476650576844456065014701938514135657800752355102161014055660691117592498823012720275011291907322071547505270696296467587894862897690592175710739786401967448731893130733057066410232089143396664305155147683439060654258533523142005064763904923756155456727175250237451916529026370927416825111226566711632107389679116726902991327573040906743470559954832532422263243822230717059069145724404045908579736444970149034397385742565200560460776992538926679473890872953994382090212668341089191091470633751064913602418574371602589668188159267241779245649671581613341084655665659306218168591863886941411862165846673187834927996737026808894378365739421930640034794004931948660247262730914558051374377631788880958697280729999134054358994928589321257627463018009126807335519299292522252071029030342398486460204381268502417850180054300126698364602447730579242238457548671205314428651867662619463512429912945226923406502014423599347557636989921275135671858132931926045083478813146267605307508932635395463835838962220355175414394526618151706795475390020632692390087910277166813649329566503866990792796680908806728882031313082870001746325959100678247891658505853933819266077478085808397592333351671868566467739379539807618776949689144784041622475302027665841494816456944242840022539835340834999826437319541818043858362535151565979605251744527499567769447837245695276165203210475703209743197200538965754705549285189117867548200190680643228408058129241116995798636974938167478044676668329855174803839085153356350643966633528533531561394889125951256359315695969674578680948804539329664317895934976573417494579498563939647988218346808625549073403656784874083151680695898673148993931120879101941912733384884144123141098193758072154204223702841892267252085521336831100574529088448651696448832301757167669471594655005494618149855455143326946665231156467974946815438718111339169052240022580908848568769364002151918710956369574076065190411824679937698704074266205994341831493377250313833117495387350753748795649183573895415816036134057781598375080612880583612245726106670128178705020744816025934967660145758305123570910902030111782566800210177498229319687406482450752905826237822126515007796007364469482595761138359824448651407593376297004842369104396953673964402714515487316877857187589626588604728803897248800596590650529765843473528431791948637829001107080430245227557514185543669708064420770648393918069672184144704098585816613972886263930548748148342656888240993434441835853743825811713090514884301569849429396105324097652204937802632080041193838338458538891443895616298407940036362109343553106650488152343592530683501922592988481921033978977556237712724372040974195360340536664016001570034506855091968995101964987774614364700490792736833685270513288894192482501807763963701731443377154002303166211772893287826120787948708082792189941318881220000435624443927537406494627816005354626896361580049722201819261401899212716124225403194715507294514846204296151901541626750026174855056864135763409796671164064248766953802622789736598687446987190826685137113244999656791307524896799730611406712324178121463486844324849315403895262955053235593882354316791450342855136598551190037118900944755672375528906725917992598808180358286026196727657204687193797268447765785074872897753760387146479066710560667055022871559342069219428205861104728767649065214272733077904185145322776907942033253017438530114366120261674588449105420512563625310620918756597358884819548663291955932679527121415171429124058310756104178423914659703648555175017009291110685787602076106221539663578369617587079044136684572028317179725333409688086445088137653498875970952006224810796125449796510418200646338010919084110267184477563627760646096471324335442251016209477108247224009086458115048950257032546793163821323285137297319994869008956692517855737487219522034791222320924198810699129732775269557104877071385150036032047188549263616336239956210278965971421108948106829182009071605241213837325345211989783348739170850477279865647417464095866088166368849600601557169584283593306487655709541350376688741556034185522773094216266464785343694069347093037518055486389277062243969665254448641576796147553656323249964487206381364201431361769292692323908605313797536127274065706852418362207502918128294116701967932459797858565123641684575651262806355833659249161823595449718833610012756776828037478844006717277631973905281156094472518929462927969421215059720604257376154061888445811462559686440396798318041374528756230336020766924426082269832461630461162607043928026681926859212633350751068534289089118337249359096214582112464651039396104916756129973042264319885682026436549841053388435853804841907773331214954413075205994418332232946962475420099766750395339925463699206090650221932147694679563879167818505912871641222201490905351375728543479524065938397774647693876272021617894177364914378347652688789609460717219326096791389943470684652618949307022702517836763735451241165860539086790775585766326188172610594974992514394757867100593828174621924169139100181386892783747179906972269144214937248449618287354971615280164908161488757645955526689457312563706208737701939516666957097018250888135823221922691577156485904429813285531725301909918120269117570533326723161318194373111641828118036643007926631626243176066156768370313285708634436052816161134506178600953419131360610414240308768905184098561440272333121710772507887227720756971766404944103418992076297802595655862263691851237930222986606144648693745888283960068961563033671105636615611554691964578200801393865332060606397543141055833609253982423542913872301573371363155032844600725544005721192227613062875673895787178934213170847283818867685164297461492065376313074209062708956613694025574187246337127604964056020414662686622954728914421636958405655311641105408540802296543489635871396905700539573156630429121080368745791398379985263662158335814499147183174124172715950881721899010244033673165295995738155767068715832882286740086876058641328432905448738090756938320949331663694018111578176162612005690991240929347419105243781287347581917366841663005137282921797777594309171380234743257926681353088789294789668531153148219869822655620059596380827705482962280695891059938260088829524618967227715427005239560456863789546146208899090932756592423500118069132299662723459134030827825821816653129094370411943167223993919501703260321817289059935078350012698781888988480001499594073328045068455995146564224960358945366856867008490805479614137390284287452583061741276669477698771243764517871026213427307214004201512535968243461003626232227553307234497147292009174375266520888715733553012187835598054391032171120335337635666003575670960868013030378418778088067836684656853479334686395845019307849065492059377135767247922365724258894309215148272124814406263404614728747052315015920598002905570378611510938561165701854129201636177917194841434700354931759921891193649046598686004519942480394578655058444378387323553718134167451700842376363338623600063366231430768486748370428310060430980177483806476645005059111511906999492883044231709345798588941628383374400910402692740620330435379428097010564421702883443808531551662791243218629431495906085193824364079975216283390452626492734969270394239750540921853434588925946936665142450015304257246193275293468162959605091235875424787896650366090147868086336586415198400786388496028299923982193811811551104571392891178934825401801697846574374412440664096835111199279176210768737968048528051692309845992651415889589191045940500872025725150386839730721141861103974216936074146524013838103445284695422087357193905855593061429756529381830014555393090852897748278127913702742067274594264757825229927869689968066128793552236066684927006275284548389216497878137522154947953081311589660703450283203024374191360913936783417905210677916934224024841303098906878549832447242076480224658241484117650795881008653907913021398927110707877292659878212819161799336154530552439523159912377568912162105119098583322651466948338610234410304181879813717357419621889932080667357663176253976138509651352389663151067134782025631626123892931907473554578983653196151968891761299049171094285218047110259083964593179449539519163793890982532235203313193179345231263033171384706145602444583160850470899225268731666538408814437811844791236475118927109412833359840175619083730168193620532131278317410817718082423493357630236790721144724334254135608887301977683360504910289737819444918572192814050291379421821553510187250397301114721599826355631022330749393558387766267305975387894766063566499226465013871719943328108562318818732700217597772403949522644041327365666102567791961445302963247755875847055372334316661902424329279928206078790232021347101337762496114396140830899553548869786308297772081892724884174902882703842621538512719660212745876254383079845162211703017285960644577418378145383675278409169634932635018225952748536610247312226679090211338779730252350229844808140232827261124049902249593011315909756573361163938684403384978760764136733285114829858683668307023512927748952896247972196339039010200843623687648378311273415360261605339621877080150062220292945325015540236877997642074301335303948058141792036028956031555190424763915280416479139463860414267247503234013384404967514561970059039520276732263041892214815244999594374938349854025463239717060622882965276821314547509039175300423161154808710010434025173115440932240350627324329249352657969164065154602652084533378690426584874673347594659402139226406147410344570956278034936018558549024887123844692631206850438243004347542935112345793667984387276190614923587292305248884155969004526815235370211591284956163680936006986397383092562555312083952675728794830677757092743468715355412956941671316479430422784187661812930980051428567581127442745317572008929679806891350173943200695570190048749436470633603223463128760876316705878299205135578696519980255729997493002737772878673855819879162363152301083156723761752173132677111010915761449662465371229668359680266017218810547707534880795018510947856760846929837673786922052623969087230832285251866567362553875919013653651348904029271148509798943474668916178180562947710542344611446170648616603286029804541841635129728888371850144118358778039475525826269052778205732090093246316035154313743250142331513627406853481371362101680510549669785368923371281851312514091803339186251207022047825767984046852349338911391444387026871347216304041714760241206923024013673496502218503920451427278128385880836999530961337056130042021756532680104371992283287511988037359674881339250638546743379937739560515949128503524673818673355591553708446166587872688817320337277874124208592370066248573082637831251909376576460635999683705638976943905583641757407094277072425283263779885381998536762374474369402073945555693116049791717797566060821008312798742010328178934443557036072940999531042756706421332256503013895789784146475205205974505569126245221880573391746663332462009720483095077953872961226227102630009192196231400096583311997320157789244709006570643575012847609655169312123154909923781885731825102552501358338570204008405154846263134152796340791771445111764536540216786540406940209002688677099329497620511578739853261829038205551728915274831002166333833310524666333998428781181223093850899554518850069311643046495674916924308011975169960591681759215085572827560999149444292739431422072502028409608061020488558070351085997368544194160912244919837818965658943036762784109182101423802765920653412943186779952024329280548062479183975873101815669527733776501148135142949664318452028910461779322319120371271902692287688160174307795603802287875029135439535451577211975504934656376288331284097071642937271838213625970416893151678970097965070391304445634668376031398336513285646268492055389892514299052194766756517709011224875771265194254968105959708857447123112200865363473646896761093140630797975686805977208737070938822074049524604265197818963601404445606001310260523995089356008362770329877891634276405182414723560348338711827599674330666462766416685281381992805466188311472480541192302702308240497389091679079493162207981023355057440292061049907978128069623055260408413048881629188131791241064889684423715295208342072951356688014241297395942449426984242719908446536458800833921025659393878601470437046459457518381674832725958259388538522832853460953657046867463192215935758343946922770739273285297141467440746192374336145329143631315616050672697058688818398612469042989156527521442752797942790348730736310455668199772026716925997800334142779099659218509275578011151200040008621024687834264110543095545483677358344083395766660710243499733199814028524926183102994116066898399996672285142484369185688166834131911660487867509634658800188346875544067905015395728051510735280728082997011725387215095613541695473343711705145889420818380300912362789797653399829582091480533477020150868908989609172333624661821616151133216567003735715800711417996746532038129386351378267075202583542630088602115032699741959421866064520541621629116109554675753664138387015675455135988764253417891411315447572745520376487539244797206347501401901310232540155970545571367560258424623404644603038989684549790946038018631175108024028285730548780808667221190436308389213737977998565339062763699908749954883790609310607037170101618785265753894974329608801261280615649265113338823899145352869831160129169244446551153484030865793617016519043399299308640322794730909425778054671475596683981668580748501186539119381092913492962983613478772369463272968327104653717457420044111158931324128198353572961033777333688639670990415502368738402569866236690005409352945371832899965628446496067908246161280266581614806531557202161245816242434410702732227412533943117112419150476479862739484469996998851693963086422745319181045911134771078250119470677944947434466474936330252397406067602170384483505084365820085191993139707558881162849826614554554932793910350657817527812216531399938795303946429946478917772818770218488388710379005290732171762739027478156697652839579434408414681118680028506020722241530791452581059123102331374754764906194127956460483462653063373674093734475418502697424947092692842546465439738649310312373698704655464945761238026306759077999178643384245578255034736432483831653624091755439023671375144349130151494905278586577619798990107149371770496667587567470383463036415594413804044105740761432598103957273683365650703604004626744244851722608604367111306160315889938890366569156289169308708808110031217682800951552152933217806846532768548703593427270341949375198539504426230868488498246090279076634126910787655954491844611570046270499567632849982033695535408887093966005748108889428508609082206145572936521677346385976473163007684480333482394749689110969109363769942403740626439350005506539769427916623186537286225189985945962987783816592838542165633832949443827810374014564560063919324099559112558836409187509931072618872606446751728486531319374523890384191193883391159229714972016611755209053227595017061613236314921486233483540759117241979448585625364932624857917732978751107446768562014121382306522553655962348330953782576818548513458352849772480938378170225852381016956702204279582240767891259507706294982800123514594517974405027679860778909028687936215785767427544388308228358154016640062630956278153946716154762245874964072913627293013735137641715125619105699960243817148928073845481095715212103779005950578032114006968672787593648589964894844898198158679263465705673841854374172499782301227969118941170991232669055157318874290827262626570032787792361856056359896294529757480589641022799257936575063566008962660072672646727334696228476218744800333071942625980582084644688597014156786337184279403631188957439337501915912383845347027913052898890782535961106121433437795255064509487042211538806605979521601735269057672019426837445787583578218948283466320480009984998467112167700366788339259434108568485811739707528122483590000275293279463798989922544285098438235223275048484135615491274824835931088132476109488098400126921442382074741184080750476870359055050064370376878573067284717062650322635750745847524056924694898488720147469370283098232749277041721885652616461857365386436421317282576499613579315163280893451424842924184199408724597956202029593010816609343351408204741593644316085232859270629256859953187608525136421127527179229042946160353024004032883860615146472246317850241503079621557015756447858970917641837648810203883727676487399973076194318813472441130591428219543300564110986637863960834488199720175215835168205905447798197875557865511142610908563198680201440193170761497347913811445688724817195781334563473323541858758993697038479056922411062776857265882690503790033093723017539860769426844997424616245371495464995653386151403545941017174167369102111078981907580749123881567160218053798818869428203264084795065276425996511255944195700869485547051600756473552434131976061853957073269034743171135173779896955933251951520591000912178760562783129544934396428085653294891456218021153910135513027040891069728720218546661749656035021408341643308897122060787965060587649051750052343561706763577728876992525929265141832078618275521081835120630009649626638693798153365739175561979570372078947056782065582222894777274884029036085147397675877601593366192610995767338741826302883764668585968101945432167915073863110963756880333099654266691302150340099040731549720848434881227712643793439293940087590427971107913001381876828623086679333107497317453778267199751669204656417625590931315295649598465218634982803242444804056254681342307292268343908366306021365820703663412607905714082277507965712352694000197551263224297202856537225083435371275064453912784863486705338925974361779974043705705462867389149511210652021303353558674712084543379191775963297647903557092017620758693540197277616013507943173230539025590778192203824063771517092832268064899002052787340121088438884188753129425224707456392286438584138816156403794157939717458821657573438429841943259702201040148958508097762071814272444387273335138717957673130843975560296373506772038831403344301968217296921841128406082254008778429515483065632565232602731228281113677394551561857085788490812281715626048905253282335556089376155213389565112380475297048650060042701302722814020072974328279036637104771912767440518304696662349258299036291685395763006841005243569739262071281617090851096665253754946637343902398489260386262465343488388752001716811503768327133292338500908926880138844969057291066174032028712427955717904190055566176877735019110149955215153485726541425515429427758220127860693619404464069141349393165399767184486504525091619239575175671054044111705720573440031817293724131717405157341744064718218567233476507322694035081653820161013018653397405101222566513066213924879872542264067324953397621408376599144439381992482842583600630894766684269513544849372095385150387476294483260891890903531825500702629713959016527556943811952922013841886797110499492730412001978900390604676260269124103598381981939684388833956695682120932283558359154640096025210199930558559888522703423293858768722635679189521157153679781646536212736420910656433500086732873919874117505091205834256185965874567624394901112041148947376897908249793322425201441423878708578198734524994093965331059227323911280918863555055992265641557998418017875224316933392432237510985059698718221213544058007585238554473961981725750732502573759534446056611874692183965015884780729289254397460457919490036857043379155794574943194989348815832443810486930219102436713507581567863879573431000104892719587509805146596635794847880115195152847615927609366654202779085702692794537408967129729421254716376765852872044808439172298870741032529677501956294221137131162161296844881001789990412901303141152799159911194963392410285644080923370743775452977739544127780770328340601333714897236026302473495545865604684350662128254414848389996023687180719567675982708456273721634159645086788069514420629010941494223532088097010256110845504252901208588134739993115415354691952413758602373205410570489082189038495711749767033685912277917775690549405035062009847065789281806583114832163179800066447766849089834785893835235816261829288928641814821914950813150328616752938088842419899170975591040836336707528257075580179288009348205832225249227481852833883065854440297102111118417739939101093159500953121156891031367192086754838993914438209097348246739123212847738037554282143324933513793473648598566086906501845968834531532980852206772739731430348357873711973740122835270878855154104571983359402279582146304187978746320239460250841647040464282665877866289293528968469052229956031879520080354656726931392017327643107170167165900591620737824959245502177930504448986385460045611075834917485683619320981889916837682607730656455519954894502700556149565016089749128104322145124285373415478098412928400445963184729034421773462475855232478996159773718829115426600477554522868042461032549188867810630672345540215480232290631307727223763725481387724446428230818544251417690900341082782729859515869591455040952250132673056688353890995821414960122381464942450251457099989786695228052218236219291448326153787950172438019358406234463152131950784039412102246754469154765789560806090078118227237752658441252284650233037703430419496840376339681158035888095294257801618169304950997884527188414584408215556990132465209183902537472675461627636514442034370461252135378629750598260244219910470512828380803193806467067122761685049960923920771208906858642809810870555441404324925645341853877455131521088553531979452237785606867325071691654536060410060282892808569962231668140397185896735644378988969675324681549149799329227748796104977324562646773315924300297048075870407757031812164366788481792968111922497951935006706853874473462923089758730162605315569957882389278066973092890387590768133993171420464996444188665979348363220731956695665976127097645535831083946371274346908831617670680098597768906446858420741207621528444187212320071683963113678957186928449148963880785492670010232775190681521558424526434767837769659878511864971027743804757325393872265877461243494137876794304286720028901911763515778075435749059265639841217336435144183742215394840729133317960118289051790524966962430814195717762456455753599337769215188848717934187613389164125643459502934125592307253785364368569041958366652467441438669515720004064587751391318239524779727474020463432108471686638861911751802127237054010355528451842104453308178272788964155396032844883809174574648406687718194010834403255976601285568737790962621947321305498544137071181175390664917164837093188335179461389694282786667252204255699936662605760139345707801414277012570929152792529848095061450414451544668660656572199455370965237956301486435120503100181937241125915604926745139304640382183429133947634587751911600088513226493919962268536075628241047072152480518848895434496356003109159676072070754581840475657067220170794003242123739175592006900777082382013840759283978628302960476529440967024607106200481484125985840643882019148366597072034863684072992385596722412584904223247990768509980275449016629064815871000312790884272328868576149928980172623171198360745154651855841031626245599469469536000892079004736141185343024561088136915247019103230198311323257184674480031650402073098104063952509086961983200307733278524280895581421324929663386460698568850753183238258064537256348547963844224113055161842342127878001764976916861874084360611656253643763380349039082491282328274429381516673904713700836080225556064045638099601584052656824405585602649423176907976156994798612107766002402709923822684129882330583617442649621612009959490626255720334939751403996186181576055849279119197913994539546845976299829569428520740552504342581599370420549029339360104840834596058335169331639521116961400743300452595625257844020838863236580462417185563662922521352781827807387264552150578938663991005086650500999912519730935547378560306980508514246789523470264723888023899102446711854642984528974401087139991275899781600886663145128777821217870874920106694040610470557421774057415904681791573201751621100047611302529965172068916915933460871287677423835811712928370480334818338634411369855375689534192575513073093689631222661194197166779925076604482547237672775226130881847441673443707058216990065835247603287803844549581815476967373625080248009104923923428937874622965503095575673398310023072749194632752712135409720788949407780985029359114557216701888068229174660373082371656412750498109010205870569412334565251386162790321307611930327111973122232353919189145386758750617624860558252160799862195653397044169302909266201517946799941726861597032584848221948456413923593226452941850238068270041580286279098480303845352085453872450663339489113248918203014762944915872671160105055666420893204074148184868055803583823960624146078215648919706727972151488858175111382726452779633672937701276463089508054365485807197296377237785918057057548840407166460182050796817867725425815599184841295285811363497408075158976723305311698559105496278109667377826902455234671557143663222084118063169522454809054047122817167725147624501731786064199831810269026409657660646233503871028214195728276652715545759010912823527880652257579725257220563983462523772277905925090520522563669565584736460307688937704061089353333797669268695911093625770738251626301838194599503477792390337841454270704022784773611588176064266626519676287342644171245235060363552374417467486366972797681021595346530859382106551443521957898226422091986515370561160391278747668627896428574397734341633417007430675962049187183617575222132979522859780825144806697972762547646877764817122251808046008201761328464309689173989793351510531078565395663626131808744758692713977977007523846164124159545326310357540218739235145622270178230538750326900601423467640258648746151104244533362230766320187125075170405333989310625811517500628362173880305198567529292010906597037367629752896934655616769235027227206986340041472728089465473260735659361375652378766633052453266798315749178289576375296677206483571015136855024348779996694884682968451187877752777015530183140407512356886492941497407236225764761785932621144086367294979480028107491347183927577150803520536719416128275278172307505390549769865165023952104879933027910480023777350365027365229378953579164798237625293234971792907107875858191962621518029135369654029478967785003313939556872997173927632413127228681221297476195013243791749676097890351444415449094139615479680099659969890401022770140284075078497701633413344546049237457409714758407542176984741009022155308948785720617335824894751162921072503148999885220357867045509043928941378875272260095233045549056482871042012037031147057975824686548735947677870196891552308980397762466323087753530703692314932141697721497768323892752133030852059303296540527976043777039342792926952606860427666644585844986853214553755898394119582846875967508432814125033464638185672400418996109770731485201046316888456671721300758189129764259875396074463461179127475389404820395163295747125328211289732816078263435553962438146924981461535649617187174399096172315768694275521832624884552461964913330921300380551352832088885287324383071872088571646878917783260002813501159635263279357965305256706677971660710828481837270095377728245454450439938705628872752884613598446282620228886200666268495025831089356627119244252763004509095616274464274500158927175621793710040558145195749550951270973204403006786873668366789928121413410795131245911325859830535509427842192135419583642917822824648820519484598696163136806906914434093983732463025663162249895163596824531012981461350445209582950652000886709073165189668682069687091200925603132209304353386111029374773829049105853177904415570855791009457277483378402139234805232475519265307945755134479092159889863991607284370915093587256155890469342928573461327324436109018585622842606059578592704469001566052855128021114119123654551260111723950991210054185629777255450349016984244842426480430134625296339206517395443664992035524184121722226373340668898283418838403931998624708038763419882499909650523363822135567458997025731088804125215248668265445667890808737858281949976323944794862543117196279611506558003867643639156517561280640850492690090296769894814481691161102120447812935496569195068361569674829932874865731538007953606861257079028142842959334357111999211310520031716044564138412620242476686562022264871457438936005726152111258896403862681008145722996225706623921934633600019062628515126184423949289281810149755477743612587288492191897944996531696792746079826698269810436841569857639898828353500373801940246167770280991577340524006764940729911687119280454706916049410089844841485220727177534489428899553563021211579402734699687398760139556391407305049997655581317874318301852494457349405559612445928658933613556686685170875657445150379552124214936126265103489197994152480780216776210580090262992416330495906591284557847255690260290725818018105450635178716614394225041792703707521195625087524618835478542037020546174960320842297470952983145328614573412596061872000239694484806049488726262825537448736774640256882420763194340541185859358723589707502657882031368506918179673461780465385991443920358992815031620992150258957066615028440591461425379689190695110270827194998633456750234618559103994966043812307090308761441052272461496148947526060150328185864381637954297937813750605114512739774303628924638881012731569592672331928621804069965794416471690864359346415318448686291334715310512827978452046200984280525601720606020735806057766493211295028021610411552493531253192354381125942278954620115026047356463672609884573899758272167327951729385932100775854220015831650093123162698433083657102902555715168941170629681465020494554819014669167717616734073066633659851995561414248497563174017339494260442449935663626732675292087689093103445754877432856885792747684237452690615525428603242558483898439145922169245726574579656824547522242988763405604679474553512285020512207716101813025781878868585888626371851080332484753488622601503921789011780098292977350709862909164623465112087173111110125129327715430888264285493001737550493023689313631792095057591597017655951498890908239294631972693993757058231457535477562118115857347943414879581405012105817461282436969980293051206540901705242475954378071227508035580723503121234554163725253841381468099031325164020636942882048699104496730507828025327383016028821697285964940130837894685651725704267319217832041767352021381539090460756909761900668119613615409427540137204489496399545626258781521479845254921134195421375099842221913435065575748471320640796466081938162707459419855838346123112369037357104674311229168658511645674523261552257576937230294008482868351903552018677320183828206337707263372200813524520338602764181179665534895964915077005071804866074207994187768938833532123280055337029356546544842371260090348234260675285526282724503347091363420346941476034350489504861784604464548069751800283849377480777395411853819866955092366655405795517606614690606011602838036965872553252731453811827561839613661930190148301260054961640560259631290908162730039777643689074799552919566029002997833046537952705306076320620630715659553435176137868892885945961488489405263072904026536577922652209393860044575367899082346114119187906175341040541091268695826094582452641475453095568045142568639291781588860926741219951954151846556842371925158324887547962355457979797621540739055193409240063726358378572723127427139145741311151164627521949276083942166859206088731754621083279586866663517143456605039305012496833189672066945185046203427452263009000351975667532294689620726020164156269270849320525142077973766089250708125947038299468333475501893908221519203850402510253033607791752403844287134179162062586252112064408123407385869725895859078955910336455227783768255767371096342290134274545857829991462475038184895028429796183373905161228416570225807610887234039064514811827968724584506019051657336419657387265859900538829335462615395934054567427231111116077135166203689142775708792029746386073071339635605216738247727919780414757296109044209785167319007176437998782798549066438017215162735186979758923061485838727170582110061208476173254190138879747309165810246842532643047756216772641587985513452404142889597332529859449195912323773354548799984956517472830958902998549057254872482569874661718330334338447941447044609129890068054550335047708922700237061242525018961157512583390219858891103441223267923618482776270585171723106919402303260307066746931491818328881517194511057649784315713029183591536464671401526691546218301524585356503904940053441690179221740783011781286126683858593165994017396105096898766009438149465046606745911512193251152781056568535601391940486052904784541028177495134549846236946584836215096622011089701297458272498354123667068214547746479623873142051101003806213251180334437413742050663337297495137679336487611475965573222397899981242494946135171663312806607404832556427524972372977213036251205157592414625226546729174772233463140394183947225585182770246731885860166898951887487054730529034275974872239825433597004745460698256509133499877919078111724313059412940470021783301770896206357966334764268831364037381681816697054000570164483386830315804790557750247656307786917587238121080940420120606162185552737467479948076713436803049881505045744518477598832349438857120771205389748992610004236334158429528624725458083224621079160258386566643977898884496897360212795267220619933254885941429973305981693761540174593361979780177149734137545320602120958327134579060088759314113188369329064333113207200879662152841060467425691668222676334020324688990166065175666299298117850543666188142101005889916186906436198604728961465553907841219235064232961173546707354256121024496808474823191734322140297566227176153949710294100425857839477943675713070139500928493669582065187647827315309483026268216959848622040412150537403332541370011199292225098056551103682766579249340649610909008181451456702633043209195260866890303308085733158516143971538530383320001064925277700915911481474138057836098561144197238072396780265109570567468517072300871652845500852409782723196504874308151312737331439812623942359604127631444525405988601351977012851074988378471121031781447252510420383683279827537941178124472544884828869862341822847625811558412253362567576000062231045995739897477550189826398320470985953085075928331179989959950996395155158318907131483705951781659578813293450887253555277283431032819114826842245379457746463119631752909188020820580657385434715108654866927381706975836478925364299654280521513420774645774040404189160346592063864543637762379387624894579797864766134890377743377145374260430139255812208952753964999327896688039582086707541690337087053232667867861263756196107435572661942428310715986963757400328278866178538467925819132070016825241734845781743297080519973378076192691941544045339683792240222843687402365553486027091641418087239685655342678040487125532208658543683038577056313567392942006628984511880542914703743881162835050715496470946583325937452153903207536425949995109038090767754957028100594242597046146571403594001272202192138600036920138265406332064616534708683006764377409235356893932905946630569359937022323195608952865755464383136193447017680905354073751431883142011577679399284781864373802832074610723920580405387957970243686528659789684405681822268393328768124480494591323654749904687522694776820932672710175479828489998432562570577337734003320596225226785901453596927567790855320359145240236340568306203124560127560952772955058366493247688749373981020317184438139345624322212643426951484255933294298914794758891990834558964903289559703265563630301546026991053010541849912245564679600488419842894233165743891280416471267523245163330477560967157425108965464702596473582291191082171279180691350231015069275120721800062890348455642244146775037637853047673145810851052473459916177601065756047250781944817021975475742932868006855326055621240101193151344599329879680281718262118995084482963183970686603011803523727472042315191688510935921649644962178587133873756923409326435452100909257549455366315572143367781167065162839555723604496134118661394883167936758681518481903370130290238689859991876483998821742063250132160941789591785973354834256122116143142531322614298175512914252006903054884961030618697321619644646359879749579902025048858136504683976709901258594332211139076663945539836358829941238939778455630218975470634802117468504306104593147413890404159832698853143783056595602814760942314491525159486133612762095634291244135970898950799880058747976462498060644356434547529297970963301332040810310586278110656807900480963827293871003163928804092083612277184264277166087438172764684713823885047102548064706697112649720854788156927813817729125668360971262369958257940958170612180858855893255760936738875917134569414783792239088555538183958220963308541021893871493126741169539546825587051352833218014673544385491539192727906045489577011129675773947933289904814121527945169393833374093850335355316215733401642762857026275886331443123765087535881706646225399504554425454922073736966046818630792233267065208109735835979005444525224254521325166247045276202538000309441515476985194860237259432569073262115505898005512622719114884563503190446973920254820728624138739608216304395390735228874212941097186033206713852359133024306005519872552405980392150036565056641184591724127511515152748404540057286732334688140488192878270026560638971325073934248300368018054536342455235460143186463450037137489380487363848844414123119580823430574663445023410392902574773066943395189195770676533113962872685971172069330768484070034856796245997035452134602389616647613481440229585544696628914740064699707112920177287645084456365170541285993343450342062411985945317130978849019856351693638812409643214192166406543166290147118330567954669752460865583451666147427668523541828838791670509700922338304781501883843365143877089473992921183914526510770165318051206679153579274871242798047981528122612966739683312303913137270079788565272686621823545215079414674638137634688372587969852264035892945067402794885214455083791139589948470561246948567677157278247256207142998576514767586779441781111227498296846233131679820260329005071371981766739981848557016918293346173826674815991586352894230948179390243469778147641275151205135428655121835787788383471377435707778514700709549987942348635370164173475711406012052223326976051648482071863533635873883601522788024985828111008030869199487176467939825518504818294267017689463050080710694382964633510257402246730318574040652407293828912946320045982255193206413512986806263929426262415214715590358859758996017346327406245167052164706323050096130362309130973729024192556251309823353344641661858452393278888179762312443995476118042534046604193738660333291931430596023604112429497122273455774405411532991788418550241178406088854355564928704635954438032379652721047856045338018847596334480611699820384204434549455259179637094717382383677408953037419493621833511346705516207028579752336526922013460750875633913775940635081350950022271228541412983016595284539505754733406477973846784527318520304338970296553976333292962179240998481857054141190845575162490710416204705435292018743281626582715631896247620232844544724386092226420063839178460072366298604427228937083030636201922351204877463009359445200593887716283430140318445801537390226475231675002570154822961781073378173478199537805493428001974494103846017982016185599275277862432272814336655637709911525410540560681191641722904661996636827279621672936532097227128257355354416341530293917275540218200664261335946496963749909592174008588827006505307525222468520094046667282117758360881476039528632648433619354375301643446157902081518530236518496034247874798025761231563635616263959364653422566566122395828174862644687469177592517074744290860845178178514940122274028797282825455934978529632882637029702750514641866440284032255343592164575213049287373217517644972523795515132745700803963748714834001663234039687847093913658431437094552664833568739875714328971924033319207556124425678556966413429296034787246253601617622485765437795768554201477037551940923872630563264662585240060964695761358390606242928207874203434708765479320024177992417562056673174185482991579139092155090328371793772333545819274987190341471158288934725624301366530049131074212645167166461108327916358623379440243144374836705037074512397586713569948982756408289121442446191794780365385584300726195533752947334004906403120867124729911628729357967206529869539982320938959798412022412239176935235514937819159777733821246702257003735981479945370347504292643582448320340020336166214382812270334510277495383083218217881403601169103702649993428199191743043409618750889540782615590225845269101587212690893868509136635907313304290193789822044286560792966393747728605463889996920728453992454910270282033038195833451799073419855161111290589777356625897669693157759061511898740485478627006571124972520031632445060224136250243090944496605914330300979068447039490977789438736760077262876613491679332615368197789474338912437897604359974094485767923773961492720904536526516467109908010454055716292173510548690003704898761643846823560251769522310850723371851392164470895643700604572964521331706128108942082704576822984822452955521614559389478223450762149897165626415712254115274529799193342651145580102046819192919386358286312613289263852072502956603731886926283241442514737645385695630466082911668519646706456627890314722342982506856795159218289437854302298629879366063731393798356120777509215529567409666225728909934127265363557756483088775405806483013452994357276355252101598021307121348223748722384990728862728532029681757031249648462158437335232560927564527644065173867886606275904116711970574918937348065094829004145909809321691400005944516604666706704394654467312847250649510654590310177862970228088948489276690302569283054013842282236197433897195924388230273630998072740476403002241661145546326393916089146233635774310225210321845269757760707702604558013614687707266353762995658990016453418135003054855584486257141775866515485238012445403031574004564139230298365427980038292626183381400899491988236857925513237569798811419051191289206750343960538155310251861895571765269269810298739811282275222892009731025792779397232696261408710976207917871594133048712409733926619737153100042406894360571481687097488505025504967010893740201785806211035636631091318669384542686620657208759148145432228532327389743816929247498868883468107633825863428283651596800716652580571729957681969627673489831841589219316032444417339470080683992855304037867614577386941759542905207442959535889106824113353595457115753997408391672132771726453112146742482938937664792672993519843892877796752608795239891865161459344234555121300113356780293838130244015396050934255145850202134113609197084405682031462582834713604514714123403831379583618021262538681162556940466240317488604710461096708226192709286122403182834390289277970252140980039486579688181254060683857473143233090498253062596278999422126182891900912031114989815622491618896391816211047299149653897159855101172058534974019532674603209971814688991450032313349094821658516500557379393608916302310461703839897517730719646825685992730030877755093886014798116875709725044547298563277535018570208364845166826955794183902627703209155278341022234558439590980724639083978944447086085652091386230884301227739694999391293403081611547994314551609315747815753670342504316394023268397633298745029192860154144546470813710396723423682290540256114268680972514957493183039676730986588735921728712063827791825501667985733031689342504041555358311149435039706988192215037208074603089946835189957662647702832593298274186600569498264334926883164464581279869757631544568710938320657381156860520770839442621197170706581714146038671357266401042279136622404365835345212904178982341099803531377466654384048507094480174480708421913032425670571266132357361054351581524425834712196741642423217938367357900861598604143906821211226348488008286182980960780119767662306690952313137537153028774547886529001963725832127113953971309446639745974867393224137250972546516211281730456626858471479450703744446479706844025098065802010522465567020251361408714497276057919073426763798560191487046625199973009736397179500229550593775540354943075117439462557441666207804516914684337242089077580005425384139123938590545857850628032852567582147303878923594003025428743741822992283075236504707806299900170217269162205889773769326717716722850906805064259459118398422084017370901633730385809101128322238561309791346785011022322632212869485063672493021282870629836468150600224562334876603137579487608024169939054116087751603862561738078759356771513021340578143700445447725824288279678196678351428389217829795442080389989110808905182978010811582874697757130871749973812749626558921897845145941206094324580569678747271733851591159923635898917384606173863408953885112867375764451043925176790940759346902765622903966577370741100168807355332168854470953213658712327536190085716146619899040418878321762250130774174364346631381692033402935136339953434333913684778132786481041574873276059650571762563904499056792435538999305474564224759706339812132017785755265873551825340635938563829232325770589221409796968468485856483271021734924857073582427212587784173616758428204984536602278035393897846815845695145352697325961313147217801046005156995167386330366163959959406395869623446595563321256969657074814361884200467088486250520619054420666621811753134184149979782727207503185692865157218137454449967176900268560054349619744465324609624501604056342224460681494638299860963752891886023629236163902283579078963481352999694473800571625250972725386559641115315518772667723573611418941521061946259612266357157157064559873181079429490621640727476817416382274614387107488236614577414836789120168812785022205511111885088562584492734767017719955210544445189744618102462432582195906039972405446053167983992041960058757500300024868291238900130298484632353662801987663781954968939364440862497555573450489979741841853471176907195204139052012576185794920167805236668124587260339428164351487182141012390879822024275598001127675006000794198496624107333160481607016834998598917289871247015143590289565720351326025503954127651731873332293676834306424070540764733256668436292542195031658524357460813265053895014951417170874815553859345435504617701569657190298661208075588623661547440086103240874392028745719832295289020453590690812426179016931062698482261843253569798821557896610949700695952275242561557868308180810979483125624605734212471533736419148661678938510340724874243149873837315619165228393968541143462897095696183282449946593296362263373537731294300410542967572610532608280514514981879643086279664366114186648142004666462424120919094822653959321107140926434041864452157624833318785599525056003174330676828800720113492061251665476625584031091659081608828852556703739578013866069656312707711290009131505983023887544740938365883177157219826487521828540971899852769878729944301017366997181492072153871608214298666874693038911026476820953759282405114617721270883492777448754416137482365244950347025728217052622911747143747653758809340316025848324377594962626516152674490055360258391931355135986310827925923700676639943021398871320672775218267420172608138021460040388672607188408640995688088473331715413786000352335621728918190744477935914368496013543215066135592364921719448700558743387763506695520704131837163557518802942616960767370507682571022517380478954727007022995648547571898862160582802326322042471251628516831591302167196688197137524316871239395123217417409370413308119088058262914712405803028370247260422613371793797645329353773530646359722581297965279600131266221624366923986018055443755335955892375968415417004378659124011590853186444953361565182432407007900293133144751124437537926060736576444949727087772187716594507428889175059502881854405892659756407292410269827590316186558606810590880395245619497749902289394991241042693502325380024061979836029230178758934341524897546913011241972195046820580199144332133683441980578028789761911154026152077337831394333588009748644368837171494790076565195422753477087926075199705295438047993809587774953800087527910448544520128451959301182314549402906979987010386729412799547975695239538281133272194577360884881083063377255336006366050859131830526375625249052544153411247382570508555243851413590818038573855002256761140633854604666609014520101549627609566819322014631996418751058647994471526825302521273698105714081438876560142270705838440663794127707319925358709946799816944508904078680726780820877169394944176571509871417141015508606676306300881362766100822984291826312650899934544264713023151991680090249363601292665316251021166048566242874989171218209577275368413245972274015778453824881907375050054774164401430707551132918450703959509289405984354569425249719945020185046798525693632216174267968244842888772151221107953101902839445745551320216118504116108102360974907833383425228699122375904356604832239625287532652600140703783980015952612246442768022941525947256295646191551533196667464362209491103725154303629066135192128704787652695866511229586452993210443492100325422131688407234668423016661893128452330635290589409109066890545682221119975147948506827700967348667151431318254865768385431684109894918755575340498339249537644304494772658190024141552660736621196236322116807680196181981776741332995501174564412797419038123171976880228523222421122399157335004021313347078768609504654700032933273554727214716286566260955407224123618118205904243261290258221522459220717206454351054546761640180673012432371974806025329159797523911230208094177876318107668878876658022385873969629991663712361738959036125735655249918307164102852461373279605926653526639802204209714691468319506791530845124088729830142376626347903905737661968102470243288636673684296783041576254261715842444145237064455338889776783825697215092256788556835562116522167603339647583914817850700558878030404787468569738005855277651823326145662739553415391776618945108752682678960406440776173594318705828162145179621681905366574411804210853617270954764007451433270846188637627612816207375548114559713335180290638501760229233086454080555801163615483617263012583766109214699257544917092163408965881985061242426536115027885927573083498106076283819723416254766784186467026578937823296892237665229108691596604991806844394461064784257283538484321103504374929574513534972819791814378665280906251156126629918494583098290810916332553187134733106789627518025890382351829793424475933865652907808411317277335468563852065083039987685579969474187082749711154970261519324314304360016955150575183042052738284039730179027020017463503401428682001917315377355226760003278469252425834026605556762184185858654648026141541419746711593989148983088611620804131543726191600367832697285666952167096980269851939079672023655420899273465510258449977589944025405820455822754305728036229291275114196091353288746582559665972053867048453385833100170806311726683778981484642892008252442053278506750363625920135790656562017365987183805951828909576472339354007244535195154407500012617148059110211786013050278508674881537640389776459788436834092157203077265707901257786149658176657743211682328786032031181462092376683844886747837962091367974544636832260030117792149209589673638184013861793709900098555622684460584833584712628621232291284805254165187919685584560347753741034233791677778502904499334422709013281286553394327608109022994030237952712129707031934436397203402762337746352119794113733622189594563632635072140798201556970575564686100457366212004446091801832017704224065239654527724592189335182893166885489136920557806537701897068624101542980636354540612215721356979857339902151172405534368123530370639503780294471314113258540987206244294503982970632931759598812643614338281997818127587234850148922823326244821862062484575503175858095843521493418190317957900636614130091087359360310779382373904073821756074252944892505320201221787784082693876254207172107911852878394523532539240919584083742476120713957214170513707899738486566291499349351316736560197722488163534304744430481500524724938057134734060522135820201880186418486924922480105164705386125923256501848368371567588914159520842418983891125316409577584138230895268308307303406848752292451611144602276845192729871294338696985466350506544852917489918447093872438604373875250877880391145868720364250568863349592841645825758755747287880527254914535539422269004316359111853129540555640535400469703570600742891436107087637097184196529369949782042920317113518451746799751157976293160615951545409925566632692387408527195176824510228775448076188208168390075534108221602121138021659118973115499120658628730397002733612182444387513961445792942211530410724626281151340176599754510225468801793469634049557395737757893712352558157769549155781391733555120648120731693198683230467577959633993373464982493714870102128549689905569170355997082069279688543083207070740557410000068092198257907101057627964801392781070904494349612572190799580553660717391091892267719868391089788759643058443745322953870900888544400191526566844795840223165012833416668042717939663055495736312738306588178864065507963848963564431357219566307641793973032740386594209697519346450664910652879561958046001929163711164256034831190183209649657252364578975398164956958064413077765822892980333009566127960718508978092764980176235083265933373685877329534529333986116401618684402513967350558810017191198597260097410564629671456312586357333821692022886361665636450637099926300755906947282535128957238253700977017911457341870072911765561634335916777585723978208260841474618779737639899494063136425125116335445766416205132562743417866689826332750617185186699482022008713729364013552724271477255016276082220832926704518034203162388720211707321228785527719263285322008590601108874714994731354792761932874357961042280733390475910228625432545859023050841314561616072797558459735378745215869789183651696408839270469814192541498929583377823381736872858187077517753036070552380382226428308120719518079521202317761557516159229370177721008963409706254049033151557870376032292369258182906124911926858620645651455777126021160579868024360711934138463304161262893447271329340370664890862388362663295535298721636011099507521035713774971251386843443972442745566123858033872133447213892718861541784859708790642433084122111747415579881976207674351528180710252777775074315315250465792539430609500093470112931022077953195707466906900553332443965279159062279055879635253444970313196827125040020767187256236904304133808358282717522596998936756028356086841335364124005570238248364862004797087833064008052848752186758257924325673803182807257244085966438929503708955054215577972129694792470443713694058448317396510598133692005107457285455238595694820326410020792797282272807277898918847396950338997002258802872966214872037953313438519436427729385942948778585295452006738749817624005519731990566978331019562339327820435545615727560381167984446540430069768001624715352828650870806117585591715145346260079293014029650223268609766589862605204481357059116188205014129876698266156552383995132218397015359537619586833767164977258513516077489564701322959697499485525666580230338054856629927409900922630770743664157544903451117410838394227281597586990176692792716058583576800905288517895074636180576708747048890303616852732903393101404963946216976748109275944346307265682506277714166525976469804874595483789948889807864849403023800509940434544076107113162286260605985694335782603323612317148136809376754856535661208345565604255931552144753014604374677331500979825987687042796769887510912704954003116246989907386763848199653515566885237569261705582319552154564164124393646113710204900383149797137914221487135572603384754669868259098484967609149602225754254217505759593594771321565739364092951944950788659964420121105134067086410924190006605558779239819886192634240998545425015133553083317327248185283156867135768015383113250681689502167445949426812603576779993328342896515063772433372514552864025738168696958280526350931539554567842153681815336826357767166846808796741700042141735539354282738594000591870196114832571961016877077361581114704866476144423126983083861323688579751888917564275584695878024829305480453697503851033099494311828021210048033521566656241668645726109628073778037029836952667167363145527569836499055170045592222166371264301344315945415965749615975698771051063924387754324862968370295144616558449233033770615628694364373869038112256703748170002122764205248406564105588332648979889187322607003417340142490851746674431924786736961528489009721050382612136343260822766900892150435619659715697692148260361334482620747114775940079393563159968614372241088971797862008569656579289041827605472583905943407740139452007349909973626840331364184397696020669444921692720165374705279497916406851151748669820156718479737293072109543535247584556327236540800611717386116639921419990780287811369861317209092671287394860895442552141206429165447420465688677551154455612628624421695901920189125832382790510644674370965781021343640998879751167977531342740906388761594022366462802739596733750238788588716584789362158741483110598737983768641944611438570666348829105242710321408438084149281350138228894329536745047150344617075592519723460171298154423052465417932726191572156593987544715693892792496544271557498049758355343757573862826008859188421036319950071358738588061563147186684852073242657224853934536922204902046355222062047162057201112876817506054090676328719470257672803206711194012801944740067507272877748410280420071022719124265157948278357798261302246975970712517916495451848989952273096338912681577357054742411291253460293066221771250999833973595120344227138062636997222976313922992020480984770552502591579998345249306766267009998940311598575807696634488666746759647173257083706597742208135455971634347918737992351108637346693963451732392408342130182443008281096003950176121915658459648230376933154057196115259384089489213165653596930579181203619406481672669766066999043521758903756902760144828841114266994080953807327583111802910177611743499591600766890887630571262966654659227328434495044274916971258800089906955600176555579277479354380277837646312779012155430132451772404253568862123510525238685422551654623438057479866802864867915294225558989035277953269774772595963010503861317171993439204488143799026841228429200090296896801831508768144652118743019264151887003329957060944698254677432723524344631270563819171243833559301566488999108409541888284432429530646232843102702542394302886745051395592517984363617821768897140095667606294297392123194021331828278720097225998037149355910739393879385169491381480290103987552633611573054254916975520786766706307467009954558870976292831894040600338371806369329499088385195730794302303842498627150713919585724072824893159089272824815467592698798409987745822712483700767738287505084267610644092954478991874914880990478507770070153081110643344588848665971874171729207341989426680930085343109489782492868692806659097494822048866151183787418332775551714591637282720500272172185031183569473517184551286125068279781963352317349829900844339918782786971487641607827304717448961929869723490328201562360990903103730939955437453759655523678909876340479010813450231731606863895021886652184435949551659337791424288780817514108824949083531863931820175084566936176964232039630213402868898792329031245056716729132354705069246755692134134462396756574437382677641584045408258870644213646272338928924948524996596486921533868975729082270401110841574110636740064257091792934706836135694812980620741930265676571109695141689971304848666501349364538641759558414589031129171277041843883006562231271259554489323218100213706852423118412833501664961950755263339134705711265144425972469717061134025523465841673995971366157757381248924225514590933410695907409043668566567363211066127713294187790230058123084314009281013227106452047859551567316042805485556995356806116461025051227442470514425537066631782184140169376359172663294653072777334329402061412587709093931315242410516438884702433887120895985589661983156678218406777782147404637455719806320166592142388879877672799364240376573489138315457256106204047253428929549875403839276547047163873696445258324680537538438046353739766869409310701718912727362422941320283246760646574898850505700501142305321660850318843169808741897299382411902551950278424854504179667705603442560546467523239258407239014382577327975877786543472329333783227596576452406854394990211714792609846887921970204703291529149654437866340645900377005316072567295383980880402779620910009307281580993348867977163572461938782369518847000156337266604420800810288493931061726929482947624716114886546440902994195910836110398430301959755561242605758452806893459530331002459364795176099859113025514021607715137822918952416687029955599889848986932540607591590717671074785725466019759675720239226267411942141253490381431881491254314645000924204965905446830716858173105067934802487002809965398511250579500724454856267756903735768791807172455167606872073745253103952771619611043818683304014665575536258423359123292030873699252655430613340396758584037355226187133865746549965977588128124155105200571542646659280579525385498430214914817227482103961762643833990924233637708583964496679862655978590769622991098140611890267480050930765076866997480089040606897635230473321578570710837435499689896474396705437895082540809585454997879389014435500045935827158470174172168058101190453507740530796710869239108797185146210037848812785388482244374998799738716480424625154016628718811215342626592693722131765969050446148035624705472625498817687751231909561245114654530720940435181300219065284392295525102981045957091620644814534585480041018443433726235406842663161074101524011999101627163019871738931074588638204906158013393691722863193452386542599282074209947832623288199811203730741745558822424102228765941798106957788964279168294080142123767135872121676107692537080417819398108843276032907561753268121059579472197844081462330438992140669386102173080702213415546249414795954316574150095374969533804436897549285976639715705633781742838837065385195911453182327430490811572837476368263786360249682856257285742002288526475110935805750862797010281661306538398050552260164910918487032107611874230847739090895431275613248587227448259752857244457812159392611398010705541397414789504829165641683355835865491612725119681670564579705697041939340641593872133156666151611139779544287898937807390739903603641964990641860183332183482387440303363648966708853564800650169983933179400869277610911848381438486857563153863777189115453448347855031863003863311743265219041682753195583589189012397501272670651473405092177340141141616514475105283093794337033004993048618359585207492342170335765493917714161852744876319390057932478569051230792324035100158323093365049538232377803713199164646560753017761321279517946223595306076277544979736313578144802415428631342346709556074805309910251084582684745216077505420652100456600140739102832553536645447148460178659135824163069873063710044385973514507226806388937353622373638433368040400726617607101355393580604832030043639919399537620847303874901575048521791201435656768909618381372612859607795868193142092003963406165644912099388157212880752602938178384926818758417663035985506121159703088968531875939907011846235149270742084418501188787762761449348259442276247173698061299448464398999270302439704886156431233135781786242260002568384872137815480615763019699369876164234608280829564005106041485099800465581574011602308304517165702107049762022435384805465664266817264304404591125147696097123496932374972928987205839171340732197504677803544829370061638274662821065933888286924278587376802720593178518021995294761515862229802072244714533226675155900651237068484781624778756764762327418867621787776729785069468262258222692441569925090863318889194426445454489444249293566371091563577363517789362158017342641541268760470253535177976656434196152338276583119488011045941806631824304507096080779925148199156569344391179611202518894940921892234849116858816061090380534267983253191031164716518621886030879134521118746736938290796035592932718030951099040101101145887886007894906244759349114143499312694819896502861878915207913644830192459949296631925182742812574350827207764864174789510877507775842088149326882454145509502727131326522526747691086030429691228383481992763806354791501632623588957601197540365659502840818456210509075931863751263244205381740335778367152577398029783018406500749719689513044828709689625016714703444343815968622479939050218242654472754809338791842269894536976640604234574764536032967792118074955673202019576498482954105614074333623958615003757567503525283614341038680504809128397829871271889398197761448102772135345363220874074759579156592472032456398158122332252300969774485785460378951546600150094770208875592303460776824795265155718586335159708612677536955342913476348620481400980712877473955916256987772743499443720187159724668432329235263142836567986275098374430705280064507460513047631775774106248750077299996677186033835212147876899171005343049708156516978069494846695029249718638083141883884052014946630625904260847080694481654373785511795206030471136564848830843190181392773012680492844870033488118028027750938880997791657546986375789963020400317049824540690512350426924731056181979174035743849444699515303846203582357481923399399447353804205942720409706131076412797467559830266719232692123172062168227734601111150639407262493895317736418019988830211913320986832207813602693259196227276421542720949316955863783346140801333664454564341221394865653151185364881692075509511276933672943331914857249070607959188285175500362135129127642014513485858240190053304408893561508633668230494654828360076689996090958576763204721484751544237669153532134164537857221737752600219055700482658121066069413877889491567886204367855940913355360624921777269828200130138559397986449652636422668302111597932328082124848435796065010137452554491534890074792745144368668308658936034513588938566749670214781315065313083089341670030348291368829864677053837599780643327996523863155950984732850505799180310060059709892728865897476398994532993449110172183054971464542940887347467293314771612955100866216254523541813432266413331011688313547916628142484674244516229934828211342044210425755895676512623108032826832809645052004774069526748190072822234076262742579176627504766983242174070621205133329863861586982813464241027478331554062632906311435316331658503466515181146824130019564488808999239090244952835741877593792518729429461623717728252847202831440886112385524815255448065294872767133245690668232114667978539612253645592647392524162612739692126175982895768073471334541082847048130627960907731269567333248242836674199411435894551234579492926119454730890802349005350122600208866243666755833877742417320502131410337780741247557244029400240785762795400950400885316435760353358593017594650358921900113509298134732028574592665377448171121637907510794794383336254504709287968359889374124944145986986018650410355200948497691935585728154407225942463953354507900757189624394264186402249693723354447488426099122906513438910328226178298565251605021734954377912688429296445109340553215795740158780124375331937710574115842434341059295812499387297448577396570798198797645686809735217508088679153653549491794022948635169893998365701598888457449187450985186199179199683083714101157737299570053615194895279090798646806268467449732285150651493977110321334768221793736202743472937592301041098045573523011322653943054001126979189560671322609520758778501226443358536567948608082308290520068643824710379822818969907979125111474818703871384306625664079445703398876913559847178262690592246455183674037453436562552568167059858262569491016721669000166911946857178261855567322835175764340647108759501662090663839360626849372171748846233427414218459769970343688126730672761906077197671349615381394422071777279080481978783877228005402942133123833441111159920541662306713265712776465024224030101604784082127907760175919235235381162103251701125405034798036184296379584652372375703924840658152920145284073471329439021642139063308570121829312124255869744471032364363199627001656036191426014220186947374810881061338403071878725517279120106454483886527236568046953355403007536150792646800339416803832367234547715282920257054611077497003576632464419855500862665244644291456475060306878984822948426987105440410596998348034586838126383188318075279868871092045277881110419188881115670301511755602955405421158739716930184388177836073955704914248661669360311986462164384509725363330099306037776074708785126379417611776873162754529428218512269484226941561035492394034866699158953963907845413214285822622331875344719737949880790047259822386626540661215489306498257751308868796523932809151257215550003353493091489187331391018241264013838647297770399522284183355257656308050972021669940996718286886771860624251549261368865183691136707630879175118241417200244646354379752435099267728667801898995674790295813378468389274522337635058056843236267131949893621838394104055821349157366626332955447829986231310324200967739111389097136987248220865234524173963679422758900335405923395435368213405337100805995773146178023927845839258409602208038403991976303333807000253011905619614661389132589962530441795847836753093026614649637301682072555211164285738215773906255274571679909664570332207636078612047255583214371483222651839414784537805492710272105603888060003299758777597657954284986786979450524309534868230897000724400314514013476446099396184935837912240212737047628361847446722782435084795210974939630535354504741851384761316093975039910202133297727328453863911782263410797939085326714818852673195070128257052490828971470120372984915887096098096369369507794846626730511972819496864649378963842998083815805783007576503268136398214107603003236509139499888825946991661085393532932919114994534163082757345545789228922023909934895288573381032013972788879487620577022937639483329284573648314374947833473849123744303247212067162830685789763982243173570501478369393059286835449340409987678987235134350951765894935800480982325433015234042957684854303344736209766159458872797588556577651810945045572513467413083656275341750586293300475370916828600204625617552958619477384876617564379877363416893888813261485584196027998474885483573935005261290785119629054717945656089254220105170178175671911793777951017708486620372974755208353662188068954842852842730150441524952005609625566871480084311664958781289142522108130455583873059352814028240577868833397691541310622314159697279411879510165104450966179036020790638427337856747442207264771392854311102680457806440322211664261099965062161846946634196814473558967285076852408197414768115194134334336458351177410944977291968349510587557084315006672844229111539949663721627328509860007493433588250834737205196756875827259676607413341902775777372080159708722698933196802364157282072284188632016412239322001134082728489239999625464810300445763454644478668852879423939496757684214389288682682026519585023135699807043944026408775722168642970646459117942619337869925260016359159393909555222862216810455572261555520419540099014811133171259293018341811452827455194815722303241384778328276100799630114856609085529112855978941647039098323489139881195453650093568444455335893433684121688602332993721338067150682986894530629410157527180746347198555581166792443487326153460856073875685474406163021474753547151854922417152859062002186994224936814077622518259525407695975063858914523972566401787065749890136856761366117190218218414856610164991070787841178815671764547672018041821659019796348985823580607609640732038511757329280309087601070726571571027037519148009488510455937218161277722988307473197912986923235488906351670931778221724669113067777610352476400406310532154152359109031670246500948758853864676475376190445013559456357974833710641458870141793253442771918804392279943184458319547720401874429956175451171945620221017152385535984130171926111846681373984113108661297468534802780196770804271773065279670609753604714280101304243321698473256227361735982059443366622369287657317929282914476018413466727322392742765973999249873291982844820287263985395205360955005079047715208900869591677452591139345337296238855998371241699779047675802478808008728648240638342539176951262700781901354044589796619374161286404431495687752491981232511240523036618199706214645082660552610357075763319502405024331930340354319717435023769775717862455177899120240100982501800912139062501825215846916580664640520422875585206403311218026355164706896616888125877535205585347062359413288000453417690424950416162931609032686862408699584141738398968438576127394485575834223753105988784398711183987796156494544233830068365766661782426597742765875378027623815744696741647500554307699795770818400577452493565428699406731375298488055596577995500285027540582804741486356989739308437880683949987976599023360771288249900758422524696481986207021877086875587267737419323486478611665269038559172617402848469685833363344562813127699171307929956333573041534993664892925115070547670308445875307181014711543147397421113899634695865393793865745678294102882101932277073093301790356715293472458014979942294943168096312446554330579825186773854199984187626733033905091445994947531377162949397077906110943008820030950490609999742788764686928146143804842948765559025882871663570683154525849032098910423513593067549707025238443363928347608065351452045447076582215357807658036027762358273300576843400349800958378654147471603264606267624569761133144699750052756618487648843586646629026902697596884463142788084762162835897309521346554880921022693050897271196623258101622335316381144470086604766889112269117782493929509957376153497379522388465107434267364222367817904465432821056534150996210921400472129890855414991219755877681519705097266786194694691108566523299829015397760151982380493384155454650965473573907432420127449918337237695501245263448166686994639994940149558658874450767152206020131289257638748794153272903919439075181719919478554808283695090768419383544216085153800323220043862857480354293348027665914724873003624608097185202926352182275107739697165314994633381271712371603063917931362493641919301134434191146329679837323963958987754278650518944099451133098573449957609161058931763433514547017937589141188092797695300684918263896370645844441963884069781118713120268176436041147321311839417662796125033902839060266148174957218952580910578887850291436126841706069679881235545753854027260840843567758340970352142881343406272340233658450191763540480984762125973158934951904542098683396050503563354234196407643759205927936671236511564688636870449779176743129352476853368871197532098374622663466781457201472578468780848617843873496607367983921129111629579133596915326193674706313282421257969691671308789527744682525530910286895416726940188253841303667321454273994401895672904655294004140064477763843092826378690571815040760660156998841205159123286508512279751880572886031788208412911591969573830864904183624410246223864143745892413438020046223216804971137411555857721162709085324011724555278945396903662462647831547324937053993441754163414592639028498776941280636496221896192953806483299970106325808452451465553970312124344177433522169257468085847318631415611921801442971319359476188298910868682768459552777438809316552936083471131640603957858176443213745080044441743600274309273925386446152507544834725851873060266270371750491825169770713567961028035961938071039636530216763317048387800076176679934724872426503034747791946877911842975257913065964056357803921929402134435841156701011343961295324484248371557458027016753118863420423379390941702217890855107611868121949506530813698386053701690962637073720092489304385269405853588213269378992329920910293584788858285110769702147201673317759101520087374359678555839491843999287415876948091691843906473671163801792186828474523605687531318987989286368133311626880531518498935985438213179328408816565742885142646857084109517886857183337055112913732187828745938591340893850582711462339364703127563779502385521062320233830598445972801710366765313649402606896829452089052733998475400230054705149531313617626283127151085288641765550103502534018091001850648549011288213440633351983902225106654374869237596552643032058391621501489566509743394759772922926901339131997255034137741268362046765885650862654221685740178431812611144269352726748916251094991766597921929083442624849063291815065589481313634326397160619280619014721216577340217225939577546269611299061082239779468703804908264022283138634719393855548748877615244928734634336993576942740985642835754981796751987703491617653239420838112385184608915286661438519733305543984384484232836926679795104535289122975223926680538492876569877572777879987555665014981421963035647242845484542692879615375369984549148807673681188005984830156835028189072163281537290630354440039844697196546238313009684237479785461977539698667266874081467792030597476000853738927689544992816226236184519723425287438066692093482352316975342797334162843323643567610477445804295695219587939404200778970405452027453403690136276162467405795525818820304804487396002988363751688908864374601843791272257663387545718621468240628127181417267170204518310456226585878439900168716816497184504831300287859229337195040154248678538399314855520497270588705382230176648842753373022755894184697218878914205018395151608023717465207621179950163803848008023478773203707932428019916356894501462251887597436608517707234490644871730357091658441722341269087628759463677042600719515211423926092915996909458607599585801355851797635546129325708970399480577815711749149129944597630986565411775755723560028756819499632604720178853910590922037180010774447632452930196662936378667013597703874914588921261824259671959206910299157651740570830895982143721657059905748446906380820922358331576498327794632123767369929970815468085390833231885563424489870474941046231565038974530571497637606557326202094743837060263680347952350181874470819665719459899114295441296159172174129141791331067417509550509836419008518611791450287199185195144565120358606314026352334350145087690700115834946383404411272171456114148673524130281903320601016885710018117294601562849814254902400635626145994557367083160105286724841628363589222449110211958125167422202730391863592657678021011619122367624365929408253366541908676465442045082853510063203458070399462749810014131694697109472874705234219584398698594798885046234126320101564749750796975061918517525123828531519874581412243396569827781887317712225616579686603316781516713919389175643699360073299975115829428838079573857736489076078174212604835039484668939181345824544345731205968789432492261443066316696012704980156892989085937326971638294393066201179964615425873982897288093344013774390722477833016669672964402261534547081872728122385583556418850262863234832014387252699066534682247274997134247930343086859448573209228436424855705997229355599482544877663481083502563494184325463378587302022828092924397367092690520945268470146159466110348285948143908864360027329642743155950287339660943164930706126773001969016443832286121890511269862178553709733793361100003667553472296042879201100855079075139178175386605299884661195227267869158915034140191604819781551735704034995947863242563659081921678625852929855006914052753441926145090733906953849250140147534079752754803361646677958123827595886898765321229761774593862535390561830813605974137586175290358723548626948428383447585226569405485742729066531771100675201627059503444305968642913619065342297257652531402763093946031677190470585711742783113501234452537514359147616798484880545144837198253395900521955290539379057506536578975325518926928898856186563923367270940325609808182401236378535525125091958032559754017393949016607549490538832767923388808079115346619320303522915052467938560732821272951293376669205407766569754911025314415506936315851157389401412715094411718222204368347284881872079998464187467592493226557336987997585535939707181538876500938354062185524647987094831587444666445001851360998027567454699975040225011378765152395109038292121256304152917389547802698945411706865518478460299092678181503169869008601473379238721171867083616045894090389173150067722936548791864856839894556195612893367346479579651010475086607051350584356372302430588679462562092437461199696996618839450588221141759142054397972139082029943126994325847710605538954705499876623935255636167208326090141608106531907882926098762372141077956134949739756918326243882981880362480530028932363292635852486529511337630691635162724284995445779992539146275989941395842133436766176814438362613114470589623868904775373426702432169724789623996079696130761272387490139134634256871209551054837798617606162995996459943502511268401346858640480147457893032443434961054980738508131385576868695465042789632047795248713378286047345498187600549020040205164378046418635734788959437704452816939978639764985523907881077884497772539770669937534731698925082085341973822778010574204152162531882516069959895411669147993490155063049234625655264427260230489653726151691551223171574186918669818111454857314129533853638637148783401890825663452825853894829071930169208866403015419840328801289619143761096452433324580262890889333603647338431275515524168238360552580296780881449388025795935940000719202281393828974884908648972792995189816423476631433996961508118551525434610813730378290280306996266169678340773438465471072098469898944625762387385849657687155321082952286564557816477760867353409573025367385365731250652152001314426743557508432688997502362344683405724930436361909163756868015333132211240344378955757982904418056489365354363781403753097885177387920830887741130427983591802315990950636476419935753509176046826645095721506643280336074285873982639980682636637960156708971237247093841771478915846489163391947833957973046991679310270897574103579538118076092214700212127901600813824751674986077089861301311271569140142945268486043806538928235353062265627325632218538074412651713436155066514429347852910393293444641280148425692365740165323911887405618420630599754888272407689946387947817343616865363803243900558388205463153596438005431731814525753383586871877154641984725984550880520537435162146996957708943690154443035024383914010564934361379483827122973812072914978277242939630148243454319017464001909135487772020307501355468611874519554892937455415916036843298988685194799633165939718400591975411377103220529532005663969103718519485876152299610577103631000888806914922074421994893391303975193566964485180436405784037906548267941964362625985682668521420177979191865028789488774388204246124551861793106074428581698728460131717240871579695311138556688939111712644869515178876333094905695018122684910260144883949914428821866053835676763382407848266774982687984119520010679230327289508807519002603288331126220640669971561710535012867961289889162918322531864391554991499289245873564601858985085029799795858499005213192553979977952110877283527194945789827566960074544614017758071311017274832335171355412662503795180095077886200707471604250884433010778747017566501376811291427507240700378401531705931826875469880671166407602126740456799395470007149357351274141120214965491094119270385556290892978030340479730435380792682289309047037322067068949436641877849546566722629195808589244299469351745459241631835407487087946370136172697031062879984196869932251571737113864005894897491495896726094628858369777299981425671027238428735552177950946487099113384066201716444532316600038721418945631615929008041808583995310891448704216513616320579582568138186180067233468337072273312507243420531585383621615507273803892051219596560455104166797290003534549557600710488433680054913362139068852110620126491389532276732220925305218395595628708017333879181042893636593131376865277694227279485828778513407294211412902461294891788669609478344043122414897834171095050136335440220088789358904943659358454305079364677842256069039191048568945207305861232835219746003187510831624132667708030604965367373887615338503526653960247881246027420931189302075935338069903065541623851661169880399740761620174768451514054914318865218869178478184545540521239663032138773138105337442125026195950129727343974348432166617737026108995515602482070618722390947810598455682165715192482611453084785689279218007899872971242030201679364985599016956045132914464980702123588699516527143015186827457796802535205496891409892059919738191123925510016688860869648922062472281023158850376807248057208130556052933264554144580271230673866246149318074196395942586051262212873259847626541528240212022355673005332452080718338418434627556814394595743930109540186966672765614222848294278993461885663880407847318416871740497545450753595764196098429243581028412317380030877632714770597469597840987503042999932053078988919163547779606082893893202070344505967040487815945555337430529468311290800847851712039526424088622339676119687289062382894951896496694776513382620829334824260047572597597288236882586510368777904348142291898891960960625788913914925140116940435543681275261245708838132468415750998763590012086485223013326074230428927540735876333854140018761211903428999314082691688343021626673293527082634497632518455317940554816318357341422780843609560096654079647474240408193209505445014644654468046741583591259329973287744118445503501194501432332504566517443386605735336600098694643481889836653644862769686550113081948396934510556185708493741997924069465714523220985029065091027376121447574108050329008340050489244232013895369166227095627135270982609612417740292331377054705882880254264679313339119848110655020598864053350375556779816200614333935393655532075997539655140869681502708469802679253349706401793675898345148964804384126021666846242418911121620318293590982727805704752576578242693074905097300275691627119752532041108064057354732262668095568686483678463775096528744341727623030152854051664877088612440780152353117095449114302856892477247204764789259874232576587879216266215568664669657310574831054062435257429900968556921657235351776080322141071568518120406694590319731458778779893765679901059616070700404924937526683012070974278624195322088235644606442702440972044604203560425833733621470946138179139888390959786482033366921775973176336872383307745563167760527062781407454564016639583822122047485958635511012671867694715051117922886273567318505302559177529131839494648933394723822386736444272745058842646667080353368972294796700254747903045538431169682510330618282540371163007645274741778617859887931872050298230549392508504944033643890937273170515539622975116917110304502497782258171089920358468088113358165337681725895289135624456486719245036371901463353907449285994911691888147222772283614415943464637727677800748991411273352460857532445435103807492613859674818418817089259223979343252665271216838351555727328310111861789461214590234663761068564085330381329956076325163041049200172865617098991157348986253198383987113870413733788088129254096705384328205876458744461471169559796869481423397613079487686781567767757706490442168840882094323049062708466591866352268893338557609614241876970187438521144748049405708792741963585737420037933639311995696419533477624092338091230695087324948783418297993124694659697977686795547717014216162516780849669201875378432709393959413083058621018449043867906385679443376321486703441193388642867623898985461264348464710678437870600547300712389903084332540414833818207226412483004153719094026907398439200387296205480316375086048450799593411732524835609624331836936296475938300043803485382385676779331515713796440807640856125258197262240342021524754267981027976449635198791914856073242287236985997771132548380360026119840482808344343385754439472383787052880856700175330343788288967438793635756738962482318568222358063876545797585987270354379031182809259153763234447820045769259158812239365365785874248247966769455621719044247462762148563614738977976770551842354006913166243689541998058924719622857068677983601549555813705721939480235079277604895620277248305744760740789562105589154151055334592675462455071315118007566385494404722699174888844925793216669687000434338656415642260552511384298893686573652500847262059894295817270453765309155148634020533947963872749457641454910260298824382812603282212413098552453287986586701726690938295114284605883789844913160008961681891232927915922593178903968008841604464136762406412165059650023212372251013475376076149296344197022796844802360514353160792075398905284526839042603712383680413080106922273793402689549684693058600112634821031289575778786539059070341999973740975791884266392436360504134678561349969277062821273543661271029183959148867314127728361389762641730568657627847621628016723919220887082872994232623058253112991768508213793561838038661256785622533680648631555904642927978147618887146293940694900900656898480494332449916001484122635534733088385687759251484204711865116543511478169820728976888778793929731829644658509875878069830746151394901528352951019268686349741006646942402125821005260705906849518249480384752593283652136180395514494714242667756968096068345731618996816156956557373021554418813199050842554491113567002744663064409042766936728694650360812518211425439864028615940110748737147183321381680738379051996494070094592324630924781471668153335518565069398324036894304129390120488159217355772331056263267361406690147959849404225438333105290921929866201002738332706332936861270801251595159276262917186896541720822345159110569556271833764098813535278057880736408246985277989565624941954146360833788404486315346202014194498598991205997875721650975044590147782157599199665108522897175977541525381568552149552048016052690163426502391864867302355983001825436651241128662740340567452846838554638464984565271696850841082230797054215498657866811559912877968378123406708746982259961490627046960392569771606441576971643831992972455216036065393249247594118778334724200949998432358174688853118811598319596685945243497896484467924006805516485586073276442755932917522028799853217277290175899475009647726616818337406814789796746162097572342117026549048324176340464813124552011392331709871936616884924206819985267162865583294712215532520649508377371219465952834008376600324020935453584387923097552463454954182459263731132039343364497730057695108456592175855742808832877856884835560318214990930411930374366203104417057746888807983737067336329819632771777495038890442913557019502065558676416488618733518446058031748747836228879840321489044340043470728795461827042274880363663941149596769365191906885390313414569953646555661206990216131769567545811382574077025054176539720910801854473161744495894351670966929421054207744836847889841446245221919442301567309555272775975083470326596193990901061309723412218252598375536323496297890063023465201418796441947111701599783902600507447351681678065892277952211960033092865344453723967537438064928866047419092259159720775680523533461054610704332327228447780705278014223193684809788776241240544889433426285596925590396119577093806650543776393623202530232923323250251507570546957754028075305107785497395348368462287035071418631135445912390187945869642821964628367871668197263624339385577735432641158415822324409238894100152422574124503781931360706075781199823587611111972714174328469595787782364646304111222281129933465240697734696424554802836645795683970723092475644828636425390039223413959090530525605775464062693762369418822293867750859547430410236720448870894380822146384893188613695637434083621425346603386999206405049389387855940563538243818733158540005201006825435920584238846253880076708987354966996450751297528864538255400227153377926477280822066152597951392172121267592212765700099674387805565850616074467527501208329374835394355819949032909901341449669143000022236747338520126199775672647794702343748682060040853014098052313626966506909153699072362125022433322563167717530527020894929029920919199990338170882805338744240593876630024296106267430853009501730451983806665951041196951768703644437795103849824734296217405903656092354828440602217354604979450644705792767076990325529470387571949270178634326689282345973850976242829416949702066503376589956549786794561489100524617329942925635167901729104917332690587537577132096132712413329898225079782940210902307664433711811888658394780263952049903971489164262729847324046268501574639852309875625767874179580787927432158998605944289872942857945167889694071476581378918800198702897350884159885614889274143287248496563084723268345153200018266992772181104551054149588392860530661917978375312143320411729725043134790959466854448578640123926587484682276914572266741594189822079455095763071353672303075542821881012175592650822363159452886964381074984673748603447627848353071570541675307932249124694824031896013038444868995164114857350092308914937959267868436776403772445202272841640384641415844684582110474689698949169570317582612596093746415755747575211594368468238561617231472043877389362727511350513896522889896239453582300640329074463578606970065252580751287020621688583688040675994406453880319176181247313740042032747320689279644673054709959596960597984649851007865332187477120652040748254050114183414871265049431534821852506817153758989513913705959973804889368337567356633436586105931416904436180910476379641234493147805303621125329960187952205755169394555257762655130100164465495429984097750671147207985297147904294621747334153290497394862336674790952425755793838021880977642984678547546630696570176203305396760671626242963119559321255795794954164733359546401975598617294582787132420411850694357246464801912128432066808221833852854736590806439795647681475312975647360849518858378700413061278886887901739747258372371820453856682608934865035460296919035130391863987732857583794054275780062656252069881512447672235712900362731753508100583225544024752106851775001798619916856031403224209197784552359441025602911658998731380143330958622864556329288987456673653166917829667414720970797971299853975643932802158310565083127713481061981374792843162966506282240031495478481594717272579070396847886877827508207732111831837966304806741895977901512621447135091605477207661472162777200131557941021505299794042094419734596507998229709627293642137796102560431546710563963405536028989621607989112638127878306650066223738115759036503383656112399733427048499664398020854238862341095466995358169023697917617204196717109668237245431667732609607363019695842281337028229587271645191150691443729482038355358579323369535396287767121234958298563992395693904936982960410463513807644116067501268157321069749543977946175266926714312022058041106788150696197052666582414247667088594064219379090781798057366295932400579194329891670308490525993009374274156730830801610721051789343081250332362736974739474994507107552090066287257084246838624848208157983468410276703436212166683911308674540250320320740703457610372404908112758850441015594865035961857674408878533721629340669784364433030350321255740383156434388711436303956830356069865677511205203172353798940434122737504020513200109160371072243249230628645596476615053386999142532952058770326653208950701540667555281153235491800171866973742874218801409865469504824598106485882581248511835478560191624391397643007693875171439165949297729067932826236615593593696280255729086455391393433070701146633846916446611403746136422225813914069102656291092102575485835704470574107385951886576350682806671739754122710694328707825421147653978981421139628065896898080748194498843817505352486227460492019408608148465645654831016813069453799296106535794090736369200954701457986514237244304113807435152421789686792721897852583943262776062262380225673898124691724486229579569012865166078124849593128088651945327697797976230869908373959513656272484698550729814473236920218196293413781209877172176563466200501038349983248144752089816911513103306377598941068608239100819240076166859806635698066763853668870174417716124867684300110867332449104035356433087107681075162107418659456100277367395236293978843726720452736010120936385170588544635389458207542582102614675422138715595367459039370393483574908771320805613104933016766134551032356696111804736690344051095952200938595237245559561559196393519545512248066398106127304859032245670172238247859283192211073457977794606570144227746516703898893625699082294674751671716697239420506171315523894012121267617973219728419767260220305839126276167704849651561477884797020486956294803505465346171010753206407934498840658155209682949848036156397379653623540485284287170515972011960916933143886244873098676581256936355677457635453793550546448155297413386748781019762457471932261651228913678119892513269945345714144151947510641375681498165324601727657016132670088763391063859260225525130799775647008899594869315401036093769323219522042694715282115985934312209045506604894253468358297891295350970766495671526541350181214765033048891658594562450712107399948780200513966950843276652902796190887732379323913519825074011024290068566052934939303768947675687581940194402438363684921282993807885423048652559371861573158429915738883032137053712597606815543544508611502612187811767460513231937612549441948385576528326298748374694226327610109847963533962422386921658679437758526293898518260047080620481555363123705531171750672443952714908303968780418716430791254220095771370470477252400584453326717144208876114205917742133271723293726451810785224497192285612990551130411622450488138017396483396048252339777992781333252960583730080461736665248645269988865421055243002325115363817596736757485049302468791681087146968875969936849895456458742146251142410356274179348596152350761415802130377019858889297942507307026474125987188967039382573763249983773442334546466190410982330271105968713726741633857158628883088394801496907313403639822334170151927480415480805366971827787018094703900679396878156262502998744417841962658301946459281827499062164608776627006712116556290818884166722297767151983855498818444597068386239825711914486943471058475522933851681720976175161473833893565060510831607386443818769130713727998266732901350776061253187518641245030234032198772099700005082793017714925692306533003309340681954911319416100379640022146787368470966931609318335887444853374152924677345953768009075579012317793829356315536790467631194028105690775659586332292152075344795747489191422699676736214366852760106136107778425792974505186920241285314810346205814307880821327309818889829762685948856401882269280246737407173384906482922469406031891592053570071745951467332499797591757941296138823738406026086774542336814356843101402954031549759557881043684855022142136124809058764911770526440710575703456017999905579622389949581287900134928852426443367928635441347953347956987997989432249530449512359493712108662204892005529796116487241074952056858420781472712915448019586313217331326200569056142688701242222200328261804228099008040272105597262153218666314993522010311129170962419498705163459967771808195353336382672915366673219628897675066992142623616677219681218258157936959872330324347881371962717057141536778035459045473748560710201538385287350016484094075673321427296958991961705567430167284506632805540238211197785137137976532427013805110526358390095148465201972240316352312428305036866982111186522826995710171602523752602187242563438810885044489664308576931788985672923882586759069218959827103141287377868572254468499179504631296558656060240053379374922640980243747280328658140321698108496952952753624769203194820228049796026898118086530509058471515490248503550320650314670504040728394031291246754074771100984091784342022487870564052470714122202097106814527832698540148834555639616033856920331757104953524568482275440465377405289826065192231087493505168638037633383698870244536687250994733134668693467597352803370285381518110048911922800639620467694353152435204551507680011706963709876821949337986352160469919885761007682754495559628202313021220085572282972047964675287839126422572412111072377837216402248251756197399462296457642247610863878446607339947595227567187002868623838516340500112681870558219700811850210836812903506428286967566954322497194848660942374414256981857796687742686446447877088717984073903366862496135078589764382015681862005209022113220370997317897130770722074320365680811459247214685816337239994217734120432742142081461826193857789760778146148885882547185453755982775061871734573516657912549403433521759729674510318994039801195776329299863465878802671342967395217624264289259205649332469330007856787039794022292444258004047073064132941370452613605895900981934255549872278873160443925641482653196771217704760405304431497652659481740738019618563699150553926454169081338877223083590349187149287947518423119354761349257467590395995254278587123847862180447450278267246676102171315227048746751266389613444222050780231763424964326182422538755184441377795716672376342521216068661165302333594542420270969992460995565560249896214109268060109188384651088163663781311651926610530737608694681835523690594011854372146881117202670599258406547865184297782197390173641540801519853722473005889407531454264395665108370871750406632997498698331172113536272131037763750959189065736926975886060148335691772486920320393022148168621423024164999702225290947887045408538282915426381610130629608499084907222113879750648177543144617826214536035847399309107076285052789053156264143776219715242820920897204590761232691019610676504319484940073398871452484492181678140755054483253299171726553114973651055595824023907402029334913122444081763894104129779422209863374908689641926637043336053246319989627454178315840919549389410834063064473448432834045938306745431690376862578852813208702138297755179552472935136067879902316717665986859237381889147913493797129873209383686178560895716280357665252852344496615876223320130217780519946707000903001917796391451853488903061246141270488220029607644357067559959166495234724186242820760127245899671644105543819705156122129303077449362525426619148587448333891685738381573027617827248302992260129677291331441270159521563145455115020997092064345791377874798948397476756006994270334589113741262570427922678120063118433645977691379794883417028856124596027946273684818822480713128856142928933243045676275144660163273358285101012505395335348534364519725590908096737907470098141336880390023519605219403451574832580084753823726666881596735637944144382923563272024594187456472788456880355695131862183345548131985365788622258725250768452978290778232441582156595528305608526484398174222145807385630910382871604400817809690135819040074642792680433859091353403578513825530880784056021990917692555612335964729650394381347810349992210398001931736560562606219918474317728745331615492290243346376420761938493274584177061655588736536179751326530346287546632721992797958439089040346464761229372229453211234208577654890181778554828677851892659253410665479989293569136690096339680474702713708009467439859399054835799790835420561163944731100439152008198249783778638673511010088651027310815446852382537461753162205909708161634911297267121840492213029609228834775366752741779993635602875316470090135590671808402274170945437722207238913990513897779023559556289190995678605939717053764079529499958906388664022665315041519347261142890983402280436516442853602856833604678770820867434222257581418021920442644325599613496850280264189429503397311525401847313972133295439283371918847284602675423207811172881508223357472871020246427947479786302743598550734869850833754896246970289258733065671933273283349371390965546915083227836159963453463488081416541009816470800478101876211246164971210867817898534836369043338772787039192845227755495390995963560030340093612342513393384914259518310838972144649603394689412746003577795378742767353772368604287605359995343869771769058073591838196935875554355067964275182721303702572643044957857251947214767026455175165532998171998180613750757462968312647177743702696789638330388811443591587994933563317224500113307921571125087027057824631590381593355302610140552545253038684674781985176234206977505913121343683552827778473901372076837955392510860831510233700379357187805015380358796714976044973039443438492449024198146406606833786332198091970443393758450119515057910686237052037848759037771030455488933054497932303066880993221628230409649103677775911531694088390732515841937502877311957834187480064808473272462717830230565684941678010455068866447242885043398793568821797981331026256245853849213449950600068390419030974871002946692254358293301595213760913669460289741593980530882469828770955688170945009205142524209716729370205441406436898977284947073558058446483608069447802613723728513795166451597828445870584378690821788153717071450578729486099503680062584454858614460846695413484427304616657741002128277505463261448330864288853008787741947770555180101095266351354179744636109956163779831475651830270178306826926404508287596762123458931588476509659310526236193489000182138524449447004410770436530813326530478164289578030063385170742458344369615010740751797694673113874822422406003734729538144437430682422283108043344391161787587813691593225714291072384083423678434719618586286233252907477211202090983159222270532866404184856074998032756077048760947879478857659474037453607160926480157083399237735286706071609451120895018560922588927548121131379215355261012798601494813420033963519944380936537977088196047168424955234779885310909655697706186757105848162225852295701836270633369703200661502289693472578063749309968276231721362518241997480170753891556986669379956705730518958783798314675147229818446782602781000936031460575990603554144059404842462041733595920243510373038868438801570548360688703768640648842302531843868547996916942356139648294576067296194298683673818770504386550065785634194851380215037788573684135735221468718526192970463898942826879824838217273706728866604475150278374745330417057544644582948131973233170758388024471424270499158149475217159861167196012838033735173138814977542198564506612821551635156598278971372533164391736193113107893200443339016469977528496189883084712788385106038178672124755917810828332547073913586242571888455210716029429543613079902472011319005717249715131374828041835505685650690732384017896333817368396123589853119772406792705830267612367878537872329581994145937651281443640465293318767513579411555018614234293722158938468186184990571961430966974622215337639608954980632647108558698811993127785056528309267116620668884810188734496791964478593303513726848210044033314492437516975589339267040239994491210460525653967699859640302456637329973657544677544807850053669733359387051059767840669825635199659320579159289742086254167326346383492465999089746170501334780414834107442147093661972849000462142849972032714120571183179658548512261978654521817737794366108957991534319105729320121872328231437932981081631449890561709819756262746676478683253442684825350794253551288661189803370629794277718229341960392890973563935926540553916282509945889543647559041059350929000915291786769814008400875985478887539245878310507257244060403436205023598530695851132623226595494404709302049735715026477185448180272291476601736518515831351310713179216852551224342766428627642611327161242796604781361011281762807183153789507583976822648830202844562556736265852989007188233682863225535921690157103371713059930059978237811148778127333951442641458160115984989681544273185612043461445399414575933600453602531960100819046005931451132352280315526318839914869937910624903673991091822695234111898495504473139387966640973790891888590504414447182618931869837100344839717545456576754329007416394118304620042199303164605716490529650554265884225878158310007196607741176978493030018698361516379405151524570599259571260456620693990453195984579001648893238320521484071705522681472918607784367386505732347417809024310726211475738920480854312751559251511756593324061132493098647098159890846953239130228501429363220208720332917247608529781254712000938072914646671239525701216187300767543766281076529415391808127946214364591224108145175672302133896549380904773731262895398268177795309986479462343491110856367910853225210758497700333826267727655018643198911455551428691249272449358404425688915257464928748824481435147151878867179794565170153373926489674551621533575641894966174880060579147844445766964556159511007807502692984511301029258368495208266739047195647347666193040106119350282398435632522985977421286187388251410023530472548895087408308733512410469707589739578233452160985725703069276033276355986174995221602655921871268142378533680208665199905112051497800301574364749136570251698073398556729137370762364589559951917503438282229040773305959540068467095526378025206190212064431736866895871788060849048514493326177043526321514591003443436653071571421729048496293544791992968611326267262789094577297879492245897494126101240001192685056087524339110333524679778241074597117422972669119840029075930747481732460382153148094230067541931714363173426029461574500663658432406136735979455796970754759193300470089980783827073256967295552060985865612015993487847932802377187048334287515692954816715521653185193100547946427494964778174542466203377388271011716813028626379936630066730995996196872531844577973390700098836757834085760890871495858272898157861545467219759229258994119273832634000662510748799489480846944341553124499966869019378295542928659547532426218848860318144075998482645873053063929026235412989840539243291781910618753141457957193078116412267808201690447842162276279869032490330021231957782004065363266389267361202181268959668924328246057048333389749184623096644032553747382337604110987689037836624185302821203381002462933227628265834125130498115365366121242066288709783207065957014963152257196973700263151619330417997213161948548848145755825600509368710425067246851767654569920569751231986621939143920794274220687620431449876124857364751443532215317161187175868004245225801168675372781818278886969408585759756820318291081218131896640704125145574377395689319988765908106379047858875203556495078821354456785271273764267745948480638478791320567352626856553063187587433758853656840508780455621055746660311729374093504201197576281174267194186305756491866975504924215007392492602339213284606552565841663615594743155621816737190858623868344685151793616706280300012653815709323649031833592340790141459757402355005412828335583537604586626709575186051456126922234689715890092499029334359048114774377751960030584604721617860823869947470134538951791273367897415675065316516890564983321364110893483443648570024858136090795806762686619563456529633612269405400473573537070181429685040731770432831699288303001823276429498540862425597032314266771794004670059992206951137170144005241509987422694771017393321121417007476840703028672496541982634827919462582939328012584254655807946588182649157979335183091875397795236884644707593277196487552952187122390213147598249616853752181580601766291509981479667266159813304468995653103386101463477709185643060178496460537826935920785548342871741007125650177707451093642884495653629917441690881932665301869293782483367199248984897064598540210058745268248767780826857955247480150237852231372717179570887873729153833612222243541454389564686256283959247179674602737960013505541647727127208718961645374560783058305573417083181652898935076645721011324950680660548360160411563209598817676485994929533764910936515492040285706103095142206954280960395879955854967387570868628610662689631332113203862999796901842091701753112355654813157740335655471483928883974658284666453207300758746407872739966417989773024362379128940964322380519679131502636274550069440193536389459743742289287039625966613984107015114890786210959760865327306730154466228805884907197142443577445716021837224162878635847177974803600156779613946728447365281246950685434087233101276870011469212066810488786543871294152010049898951611715382343395351423911212065432598419902402939796902937552227619359812409083479679023151702302846927465778010215638063773566754699538186937598369075207422468931776021298885802434098421774674666260717205559125793613345948258148635183895738930300317630477819042850022046591977317622707907755577195405115624881611814967770230592900980788418245049179816789364784586330742650829435717927965710293558839955709676403300420060690371600038712384604483763652974269006889905149037693215735072938942486940588144978289958017967664549382600516922764583758556797649258705402253789365677995659579621726295823032144978631265783268808886859928673306443126077190079994681573013619852004409501284089571760059180533669904642201113209714892776705971906376708301681171589634531916067161311877669367295126277297000820798264293815541299679315029678037266240357587528993487327505940358984062494096428112596236462908779910421578360309869090144394600419361433886113971327567998072074137172817848100997719825135921800122325275204521590281050589352672603180832104336719418072946894308854239484055205764177611734819941604776899639680661529765801021429471810800171698323876570993899754280628196603669396279582373349966839855112302291581835683754367323566737411590827105827718192275081245168443216243977729744691560387482748408414555512147268055023399462494563999457682933849142235575098612961753768242901413439659842937797858631943103610069726388080420003453528610760999679681447698706905259294953180053353968112404976590065035763455194901317419983532786175113498508928700491514912138835210600454007914947261771144449685517734673885797215838396131663352322551725670056702686909936906274242069891040472488408839385022721741510245860872020828613148775079024082268274778940072458917379082280339146241413139667695526314866254117194003034484635986950007399368533726687744503849495060189478871942235423901513133606879405417354789056253341373596506985975530094452315137019436006889786550897461070831657819255763283854577575155901477169748456574811629964723246685464139095076244468521960176398852360396921930731253179804691108110577209538541953252085636516721093257507487495460963886325568263769419711679199690784169190313505503952412711107360576678684139559802167828691700021271733538336207018616612993845086901061157914295941375804222848391398065389917195002653618130540582564897282727340450348507179888988656231236130437630647331928629126079599328889677899725309977762343777370481176142605110044367897272725252223265251983989737742155666803809954520615869504170777577819174954662218479683027758146385558534122130508026570761639185199973228099560567930488124292726408619124455606705166250447907262407529213622486894117548278707911373761145923447717469349128328985404666989280558653940262921922630528805255260099410473969793584000743822961680359805036506912821504157423520798507774226693780365707777969371677837745163897036793853309032698541409783033652073682211379773113457650156355432453567296272966250170501063373491099324413219000769229657364206341960702124023834747304484573415911407428077526048956982867531160525484286321159166553490208525704026968903498086773468139031209955837114154205326753316551446752898385172568878165274509168019470401323988522349557045287288496825713426346012055710475307887026960890447753468913694981507619257952289386007121153352458511408905394736816194718503643729221201466651956252866412951658812016038260028154103889741782833259709671513823351187267745119166027564077512670620210899325121330115623168480720940006060596295917267366722125535283393097436241663690123551532861490771931831036351086828612825785169240871639389213173493597135847899774427894846416659294722053953828511836948833162776851208961759258158339532813644411684341385617953637728567853419759565002693464749451207951211900416465220533963909018767586780118340086993647144921997116419588880679491871936930811027667850057775576574964474787701335891786309480260278672916830697274745219676938133840735165596758910912056350643546088365586661882777173176296635160864928783731622087301875161649054221039660802701897969790590039031405034608298283094467270798917914502783967522420924923851594889727006964593354166205321835095980663211449693871707466321694027296446632402193699210083567532448240866212604730885557308864901931809377996327834193729787557200893714180008494773178876410651924789520974069070169588262045006639848101342979399233174267160366422370836776715380125754534797087256832126744576909876369727973760793770626306769303281757339327551939597743692013820876007392123534892565075192299703036622948700779861346837824686865683129207642159938143672052631664196071646101299471525071224396348605185137029374221031596648798341427951124209200218443508158875668280161958323099784591044179690301802039007544400872278147872268323809111721090808378374484630591071278497295076627750480391744532198466377872889789276561318806801740650965508232952875662895063159032713508929280506369686713121409387895267238179558160646091838953530016099046595698748095293145022218262609844554866257034905069507026955512582142393144390775208608809599132170429546449099234448947023489631406711168249714161965698969645461175906842543921783697265833601799661118230363396185562135755185740903596191443395723516050504583753130573136218764255628514058691791511661433358140453351302926114670106843765315623563279331539705405459491702464286775354857675317129890992469756720280471080594209185644216099619576290046661606593017691824841237077324925111518763162204203551324849495101768323221878466996063755146582106039182295012563108422445216786580440183373209268239499827306343017592391416580933776967004048597080897767220997073033502349515894740713923596301457026059110499445654642900411257444587350746704111984056641892581236508154335465862473476470698473321429479116745603997335787284426391165693787640478786206642299479648564904271937201850508353791327651963629980482944493558761201132778837907804424381587805337078963032669393289996483544994712056189526732951741670483921134635475302582376114396696151244177262051520225449835809272550657173514266440619831789248420330445261382773080602693392444907995152596592654770337080416561906485545711641272879858236449762166387293759985292027575519374041423428616393343468635470706269913840084587320568451240392089671904744591078673621322158485956937985429083528855454905156191421644155883435368728915833877271804871072183176710072807116044803739816954598921966028608068766123314292151630700984103718636727405392302920477031226267621375858960176834767659221666011598530674915332118661015218053775742316993830495390034047543426986847798553947728745315520597913489529089493572067100102112610218200433855264478208413789898410491255491091151926791133493594260580918593057789936926004557467637222440866642532281032726094517169969890230487184339472015787619118792599969706022628236265947861650799469347810327828324763751686854626283124318263879093644437224786002991180730122079445614655512247675773769635381329178745016534685118659323679826531938779326615900904508408940422660196422528846234761683766757300130036285800643508955105591900861005376260251186947672141772064175921516275189687193519492590648229433083591460977020763317611711705119927238575803345454397516862822723949990771390616662434576296098319025485637866125278868409594502998467171024873034165127105294835186292756922095788490373566244490523851318102044341381091569166462050849149509786803393077337281601613560394404672301026444716496137700895156578489969737310059567725340922830526129663804568432362122764519123105973790492192418531659038253467591450837253459779179527607186852009069892850440711679430549694851095577005449949100871423460668540554830632860516280664569763563620539941847927544360458702946220125612726244605978052739765969773254299900396705197428681441516769371585518173552550047564325451828586296127449221265116205755371471695634948882084099060536276218234218425516637892068725856537828727747012969952602215766429095517065789389446528583735209683987009950970009841044002485794846633558405195605826009723192895266038205642897744314788243969931318842001883792258941981347551920286278559103595452807889710115951803177987763881317484801911342915813398138187593505888425023302074988205532735527983608750394983851576433638538143911209255202049562488558975105538965240221718938870105050710755030376861409011819803198761705289421585472167947414601007168368509957347052851886662235276540655784963973790769766385726370582210320098524016205341345632867276368887098856169773137291634485359093695682502316290599671893248402026775114694427261414291629376048212405554970169810012084569398454531078067963881327938503161820473948976816009413304394314956749467190525968597298179307107602841359899078430371540715182110928164738787743916928752602572342876564088505705678478159693412721086391608297240691347490421838391916555497151677912381998995520669275850801447977395035551493825733845742656324475553923241042290538603807037007280297045898318927985864780612754642784988238160594377624460511884750020858325945743041199811578491214865828114451904776768122868574012943482959237385970470250641191198170450390465891591883307147860044262840973704696006682206418139142213173690938430939441868442841098561692386950224041928091052971577147888318447906752471926459287745199174611484530749347098331818332281294525888470296647506214467910820072136519201576251435818355172604199586784647685105906124937766846495804023734496201886852481849769249739162954311203500795027987215616494256101886317726195284948966699173485458539357219766106350701668691026034020849335374238361971340051613526621225424040821298542617572954821396845413655350639370829023931104415091032600664687643593864733318399641830346024083151495895615124366481704298030445390032996260734958216306854985156499543962481220541661707431430442987437682915029874172724792978646250866241752050860484853448087170807401858023587079667748219776816707242294979810698132375386420967127996339025612091216002701415848522111278387355957086370255074502935696349593392615406854665151409123440558925105748147697315626104950834501145494844954166156323051948339833088706438263254319970711926292282470463593023637868865884070633597276277013573749083256898477047442731343888892956256670851176728132124140111133602470622974093129494731278402920311980414360054767717094567767430133922958818168627235758006614131313331941883240933292778661404523066851341425747015305728861047670470113668135691368622532920269060227147667592696503902865612173330148697815908482524296227145136222810899875060687519567897989618870678901849638850409924957675426139883201976212482752593841959366143209524987006747383417075177862367374065842324692323620968776703067948352936048453008570025766093021292193549188591252696736973899509269163832847456403637191550778742795097804602168481368178206163228925822260951274260727177072508082265792974592693357826861173291604061161944205916467179368394443761429961710671833039666589453004141184468894690984292420270141927326567288004298325352199442230831127808323727145956221208143558536840727870723539859653261925551060962046765518257702598504270024810797067220119373696794947968046906231785466550685997393204175522036151369529082033797167063976575870152677130364155488630756498588816058711953048731845944902340074042114857586339679317148476681084149432010946825250488597986494757241316917332749149056331625578649031590229082046321864903171309773770815914013843524864861919281851436563279855911845072339307687941263692484858885166178871048250476701808760468120582116702570547862571373860861316367203690959669811270983838024779314522416408535468128852577759098597395734388865531054475391708914125755726627665079885445892995439873452034723627856696840840750260913096458476918825263522166836400869832341901521046568595055792814885928467853744379791587615630158998334691384366856256745540006255782025745540966791381635877640209113968536483674675326494231160087001413833681931070377588644561284554284222790493153553886602673569591933915760292679234127031867993359502517087988789751248977468645132206473137102406455012770064157255331954044726756011981974421320975011111251584171610034199295487882300642019216050785893341235745097183479371420236821927742420036739761677895795570017573285176955767166633601780852836268234636631262342586577293673390258051532322509347268738693432547292303619069376085081192920274202966263178609873128674410598624897092588176512537737691685747879617487299427787892465889896984081718260922779497534313924424379557607472708931497889168018046585750570514619395241227936628475050169714842513178737947072416905634813900041910417438318536216802973140146292376273251596659321024443769322017039166010780924238221905264602297973440176051677855552078322977866883173623109624074120705688549270753087266431750756844498996178934911694221836674949063539648582537521883979467873042639338561867917754873719796321787641844592201312799941835202329522304452655080005020489334076847422085679626730131142987893179979372310497127695146700668507658156613804322545087694090201504339815071225862531694603598473650462820316103581399362267372048789045298783235573519372566233313275523635270101468333040442313417402636701388332363408885739991256386401532612635223265302960996451400152606459857434831149223979884491868239014921349158733590844381451612432132472263529026044409806064874169022978575575741596754687579641737366904975809413339864284167084874816044463899117478712958759763226028179058830159999851809949239380409652242618628850738785465114662164733374814660070851712328793913752035200193036413879101085913832544008244790511068244079083583703286357756526069021895424279180584095612968993866846987067670830278689363784105794560079660253226079762912846193066093042627616280301586001571620329431629881830416735435924273364895813224796371358101518638469047804737036864010923673618288840066707786300116955982087804182428068064912181524364543949344770729259751595047758250573756078345994509966738088105745654752342584020637514070942421041820360262675510765652359560994657236437942710480513087844923872413342527968903807252959406805579463642386710406842294365923899946827127290672120504171089561292654136854744818955458688530206186530151449313339250556182946902515389500437525679648567627367270823116984627443430200960277021480239979754897864998576238557064814709993524393187241222927519521351154800224995166513972906570043967044536352076018550483027121075127832192203898597029815533609178892040263921413607968624745105994123840445688731579304958978614720249452758657441001283196133465377354577714974079528764432292488011468788190396929764601238436152945241604793589696966953659324863793107035089018744186714247320158536036879114860744465271200789571703828890506510303543216649889105445184108632783796020026358889697473075874386988516436012227217771967333383186621794122956652764495785811017825211677595678521173944542932064910624434838848363480454346980362902200983387108559741199219229355593268417496940675592754336013480068925148623017696957340457114973604226752378423911115499474916065621685087398224834261916267633661703830770128167822541243073768037529056348349293766105247282657427353549681429814477548901979951775914329598807310869768163295133830504606382204789730357259904990449865147759849498068603867893040297469876422441006945599620247660624758128603851007643288888445949255878079292784536981694384053746540936136798019833252202626241605853551183486802897667589832606236856187249365857554001987291593168114543590593096737289994623879503666576864726929814441804809494857295593079494422186201427452421208507282997397509746767440624476787073812319084119999793637668422542760823737105113365237586006182432192156311678227535003794262278072099864722802225592994896235057596887115519315480566468650951746971496202249339124658736090971177605507854858938901337248307581133662766316651537052579752939405141454734871275984861521943164382050790530381212673932000475809317454776107236280591836446304635650517192363325452385008430158347361753776996130544619481869860769547889897814943531526128664054833126602971248970060303350048979122414525652837452970258818578109824287281931559077670786712863960613184699514054601315790405006563694994773932979164575165004901030099456802901720161395537416391989730759153153484809939530186408216877933060339359438746957409594728168841590872171975208532595413924628333441174633274382195742500824364529100692502598116646705364526377614757831516420748200923930298513452853803797854698106324374950933182018034616375641605496858969092302061058556757144829870922621520070347877163329991318347100907461196491142611795605211918809249382864494254067055493492701836648423330713011384243704531704245591944579405052243407629040742848505268631520375227669548842043779055396475777700632969131749814518963223662506012023845617268747521101649613836583953072834174472286268890773417740452208435398497797544270020897528029795755083906709582443057242894672207419990591819731231702874143347061942707997951578098686527294285786884281602830839130918613902675231754522519886799803046720673410524163439986311721685925136767085932710547107852710459702785570232988447353568496276688565503597778637499625196420644906618417889447921645521985366390925944288292275787213402457520652938088246631506654919342739240594911571667926624969809103386924063910372469613100671712035475281262924389463292869559026498179625589865339105858652221889921423249033902161670857817547088860994108368595526269041503223471258101502241241549656857948851734552616089252466589036896635944774719769406495016990992065654895633468766098131260497295734486143600799310602151937631726470545772649743143320856418514817838532770600798798513513345670651279351152469917174316503035336105374811972043755248278660137131332521030897209515455193860147064963612903250081949342752715057850914499292103258451885225510994973433335503993485186964528526971670208172859335966582990967668096481887440193304982282178866559358682977237373763491742089698142122477838703403858763313817445199027377988830792645730000701524554911217023702973549165165248180141062677069348362588921573219612818189373410373454728027145598284976608269355730685041284317598616355857210377910130197394645424134410777191927255033191130348680286561638084648926279568457837434594437822979823556613033194101906416438423416143258577682540467857101506806222576943424595936960532176733042743012986289920273945503784664693096922707128167400773411262425495633272134028757449560735759692265806531515227418246006977694728132147167152894114987787098934323069583898518101821487045006265821739548261934433608393427405394389010048631987284505185277800313477874039070310050933361106868351654546416930359163265724997241268928930025286323268097106671228709946802591558278973094074671705023872689183896203907979927781760430667214580241398990785370587252516971555885011434436260748508132487508511292024572348074205286169931613541269705343536476346659781130896588099530423763585874449286345338666716398469100778083235935167952667181740614982803699146015670410685469154485428815276414255388957666602198759429536857037470272779016487599464934034454623340499360201769906548055212824834826635936902634924959080170920030959698733093774447942564506152250927792853396456140088952536151010364133916098064598817425755961620877265703986170744011019546233212566431184103629986140783004456089596919297340491476809972312777734800411920389237345837265671955361439114182068960481669786298539545168298217744080225878700958617991483929888564368744904350014820542382967896569163519411839894170533405336057843291988867912087109685718968432573958224468552911249374795683586403296058907259736108251637921155496459077554929389638261333281650360901375592537093739439158102811767998197446806409365665998722537887413278129627490140474530986383368316718133301030028546253833726748210386800557494473831253556114080616860850375809895351246684342810104238974107863578637483549600074694662715109935930329071380136366012370481995513756473203113599450332041874407233163879428157858371214986102592904628046294234918023425754166173555108698684414421198828114493234528582315466587278534287707648365891473029112223799818162222949480467344846459434941721779286233156537704599266368621549482095853493513123809816506685795551531649636929809353112299471351968613154024170816444246550639785879615500913349114361363101165940895994830532937358871231121112189496155389663007676396863279053872043815894421946544257513300609834957017677841630460729870756554252432670962360837296262844710952672038089525356043047409854728763251186076004192837051720611307143828627373150116097535576111797633796473110406962823696900740316771083983732085572820577337244012736253058557162653198149435616632696429023445332534282590121184495873439564899190882271948362744148110517008821041048762415625782746947803804067581164940002773895470906488706185929731670042195585476935010989291540283731925330348314485861865245711730407227933462797234674034123960978773832882840155001732230863378330436979758583798758804066047829515421316328504025480115301017521153551903315104800189682054071971530544661835413315964474070688207422100710318207678926371042804787516693709883625041902982854424114856711821177069446924344419825139539023922574795036843386675284433504733861893549727629236765239161514245345429930952613393528002302522686418205386461636732695341659207211801277879608458362261351521100381698304024935785998942631597156582086554570026166564494107357355646972164178184882077920954680192589818901941264955980919594185494887397828462696498319382019473386894907351414172508680994861614333437205590831797527949981320602772167274870715393395800016409674403889384834220942009553240959494077857888784752305482381780239345227750791937440378387688324118376245175005339744400809008469448906253589229246862883735911153693219683306159347522053468084446314092027277377417005580748296972176557329381234307041919253501921143556364195717375889948695334047767384558162097132005881811309558955137019522367576163473998880264339943797109233708972277323851767979421378708152628504433861498992679200671781197831681668003782347858007777009870658145771924229021763910242652630790045902933044124867970045109459278737954189576136866213112682011711092249968943887476016680893819238863522093863715506353469835341262654941780071506694875079556870412094536357889385751495719339288813887388571640932138577618728291160100880816194149591845096828748203770194576232236136449684018904827078251752855632118177098582691928204197646086366271917714845718302625367476078922250874259845985005015059518357664794252133620651302375175467889644622882125915454707221876536717240199498838460380994700889439396804260084119780468704279323300043402596674964560955468718519756317082460691923640347685784326838116220098632016206479559962988825987976009735434277124730039514150375834552958299447528070239793715253253993199026820277826912982694828958068420260950178934830471127141093671832272805728598458520031086898488590037033575688050221454580713247886216379981344555460432007316983074281655101831976675001912129572775976591688163323313554100778303062600573768139084321496937823439937182880957733811390868469033599730750270000242415273790204248991939853054578706758982109073161166251834773421702795356223749222675095664504638690475328743413746748185705814797254358690420215589640888092017807471982621880784834361508938005132481230245315020035559112716287086545574317470098326645632715107630439082234126936734224222163775942882759541237831848753206727039907337213127540587294427250812876522838698794588474835758057334941092280932377942682776876261788132034118190914578838589560855847960082162397562642418794342811408985056147444619354892480901219493898922802688309546194269216630568816594784134297006954440563098904672791480803279647803187394807581452089204431455604850777664406296250737408645421959913690185454172371550757069897640754986199134547695899742560181389990206375684285681667515510744903488978713093801445545349695211663786281795497079371314782513544454535624291446186474344215315677238694977981363626271179103236355484685338026435638729861794741006069505754279875213041377762821645725767160206316128431199915853011242983245672546115191907134955041867520788355809851064679067131503061334579090923487997721217456927043308446756141855183641375161028796200761051469082380514118112506886659032432721191164925045198241375461766589405979352732109151413535361971934561213218583280723034437021461387913910139716527033633842475551403060941505783154323981180355083614409151488682333518231882205954956292912393079545738541747375900793709578360957872667164757109001087113633998405823472165578429487217625804215890701860684855132345388391315111750772083643345081400437928935958094960493493506750831326248348364266256839905266108195602065947802856235692901373444506204063751631553753940213194180810386676080366694289291728874626441164536214982215978406699744701338174487828859522118983251324961079899335683773494278582324301183062584680164828913146450527937819077518538796819542935565491306736561531609420281303346177581580153573919182626198762084761037606913064231274463998028051567080316727347480137834852511016881792179589915246815011588015669053078123240639485290987036248993186428941204264879475866313273854986197088843828729556750012561476011901946596905942063522968533260097277334987283013081638630161256127716442021539401030158508571337306454943082933500461317919971485811624521527186769444870134165164876744346092898188003703293534466816174796863688821428619051320182792735882806760940662987355081199695130301566172166158398185205561376370334357346512001379867853812034347986958022604328629286515363112905513259816117853022591324796080418414464863314652886524866006870986283338085760631818565060037710207950617737769849363618965171220144868167833788856313544958980169682710463622923450208376564972166028832414300450996778741032800601956196642836963059996711015241364066787711662975457077232829629896640719819055062182515966506170472648715366002043168419939123995883261729279811790506578597865859276935308342409282996273773302052954852276984367626196553013333073696514259592143993446441222915017879037399339014168981838336512827885485765032625561465007821667447745831410082101494645013001875243786926150847864636828720584921281282110600958862229164991312522338138006646511302675763550682178295276754632323310297082482443923190786912055513770317711708403597291215020131017480373158409337300940578459736768926052936850206587590607748353346365885915086339199775333808330605147817469521133337477764476601771895044248933482786071252273775686938479937880659841152620559570168847771626295930242259607628210992701634866362069902056587125196955809751516129326855219084412948276746175684824952657266677051657034043182729631272978654378004264866287999153982933948345687703677111205048191542062240297663599283707605146554266546688441108940158334652742664090728665200927489038478834069634163439766159483400351607769884152252155373578959802175344577832032943652887795936667465151441572363362996014243504621374336898218319470661329240882399490569925685123401982353433912485233818309657182657938492424774992963865721077005229355537177628972701943997298936144744481226699083833779685969831578152507383690123072714129854842769248622143812464110683087406771768652213464864089281135122219046668607817401475177595650672284599988658028699318208927526936952625067293376392412310228907409404938083257266855761866523545873524325637919640636937954018422060705268405570784974577919350893678852358668340829480747313936301414620990773449092092592576757261703797657039074650221357887707586132975962393573612712923053509002094846986981437818552889874461040875453211340484650633517767311734888142659192560701941446953144202834747652763237166578296963009084088186843057015420646609519343010452173364969824636863735382296121131492366838293501740035085969850969882639663554414311246022148022306511677940124713669506209887114463754850085373311787225420783499382021226474271530633240247397536024844670840857042585835328865794319790374660015346809003499643602556636812019640446489746235116797143351673497032497097443198591908245505138626130530138072491925116073895211412991000858315013880039747484452983167011175199487381635392332730310624552475856585369227939501956871513747404778462169392082886800673380264028445256860591515085728476284859800533226328103183562831169896190583529929826303918741591989590253487270764895857528450894934969445488064915584029972182511364667192322772924628693641446460844712792439018575478772110846303400823716958720623019096585666430419207028858281841085267757183403445544066716711827743329956987208808521083276840154501193447053702179703660195125820193228518990291251511578474669769195947435510508843170803402119117431899635543838631821219095849037604557002802514485383363166282546842579309843770622399658001278168204314947501835780664848129042329562862964215787074120488607154611309021636089299460182241612775489124779076595544458883426700113027592283193610873215475659360794913852879024197133449210271670868729834630484810630345596664642118658262575221550085614621617757899008011020447836825009103566505901982418587035291097730747305602139067972832616582550168025229829048918353834666836125410713318850658147985398400007658681845641110166533758101386092005210860933475687170110500321738957841103658294582644848019270686702885599015378709643460929506061954915251563393046425168128043832123689441627713448858876538669084523753698481274180424689369972669261605599886767759740467356760271903467228918476141846618316127455988239651685306419599859344771462994325969002314070910803773179732729971097641690425961359399573480052448646536279474647046701674888304399530537653862691414739644084892138932553085216537296227895022706678083517825957850687992881504922431779520612206913679874340271694030998957390363834381970433974709302932635242162557714467806215232983446929559537366123083698538073149881565157099429080114115904861407621378322639675138234760914633028610367105111757693467243114050113229599197871863158226302550765693271415372022256222011841836993084510803582591577549843012897855854346386748938750490241240379320079886031575587171973647235755624423522718262482740337029637043415995366381335754818585617441324932963924528396510329650355600030042819885444041863122934720631674086711410268255845838242761672938537853118770907887519824842644974469437465919293862365807072214647591292882793484566610025713022788570989494071781797804952075129388600885368303269398541551212755074866327620540062446104277331836715582843115911668376325391174765461596042344743024226875713710810900148899810846811793554986695459852668961337743916288874647396890552296122202053495429260779666890907975220664584986623606519484149636193342553446801381472453845450420635273265490299656039876027613998266573897185086608006093190160803722805688069950873938974581138775469069586972155450108814178259492079397687902690335258644137699093747968112300942212079547456057414923896001292278347593056683863876903193381556302547565082612948385847510091983463864701570378651125989793563667864647492172889571586230585623081018797398996483573137877999979454525351770976062322194372736227997969970021522171857499701239017703954907011732338576784104337996341349818196073962316288464436421101558277084130441785998980376887063716513777954411710099720507770493799156948071006200230796394563309682650407837567870020355805126190718154765751739074110923518526031684607708130945361144864930310789845349567256769463140825540675341410593250266301413019488461553820495098856611230248213123003956057310406910720840892349266134482650775509880707950126236516123221510215808683375833181204994293522920394679701259921666008360757967204814119131522025791587605062349141939174288898173600937929922728297313853193532044717307133307484282765889054584768145116863715566789442257676337157989325779253304646610470241774322878968332571337516710465098524217245764592270800871297544888976838636178813650661192735006977840030878560791158529761922755080254189019177833015189605794684286870782470582220431857003968170284742723460937736373835694882164045426404167784821016811687056048373022580280477573330577747404462283697825499835364404036449422450996418820976183667935553454636126426195935026560258792557985203887929806430106873922911505173405612525524708535833404498877624702135385514645652320466613225520780320963148554305451553251143385019911992957766884966095806469883076897131965342692032948004928978754362204285094888419333113526490220605675954038098196548862024129322884580488231720110377996802299164462352695880420724679659584293847412538957225398646126834615265696697113915618542633244683452412425689994887817288907068096926437750254599779740447547825164809744019501325386051922242762491378669294939489302488326649217636703760071743421737544438008145773097278602492790337405565794871056447101986690538246182802179226116878542359728117057101349029234963070944578817384569623657382483003944568434274664514828591356596870654732238801497600149343547613263799332959723558379188474257718210574426070654597791232913394134578738640398432546889053227314467700619268339646434549372685816574070871379639019422067795286135648225357067158977292695948775800594135814846671547555056173806873339613147704244322940872446146005832352477301051812840829101140172419617658437566122187183324529585315231960034883258711706658167671851861787129477320464899823698710846327146405973171502301579263503438815038960658955693937442698988053661336038021636712284860074987814398668815482666781568686461389716233452043029419123436112520587768979318203483660112130337193102475492435545728627116100542680721613953611230167900553850840112549881821309587765376987600225241521616899866464483647247363787911732888972815471516525112549839883872238740495039135406782780638619442835862853594719005146879103651929161890469560949916784958174514135159976048450614686914003385917741382855464050498786746469397509621215238453020045511784180169593356340318138861118578421989443908931526926968485028755031083604782931005367368832921996540406965347232805434194495234003256736593627288635315426691280534940884128820872618749562908174110411101962900218651538416496352850386728326594706158936692344334449147947661802936071821662815770309482952362741910033765058707813013492504999373269411924169613997061566084352978545148094490305645177588371820446062089123535046731623092547798584987300573298780339740566119463987679792803045129478252983266766275419736987381315763242380462639436339353251359575332489384213335974911858919843103265945484708913579080170591712928853787222908409641948605605417386716648316717346078974672407906529369482645294146410036793406254573308988670019044115317913481589682745654815949382483507419644385672708850982741395677215978116301184808959891908826803892495583969246240273434826108192806274496156274241272719348144309898416498109254591095437175381459039934867977887677428083053061858729863294171215532214517896282375134880396544818686059783768943298808316563045323145634217568840073605031908025478673969619469229310443253257007093451473929280185727909890670418754797550725436906251395998287184183229359111282368407772422830704009832261470858898825587180341506323439115033944158352521337408650171000045678820094701493141939626045473973412121046536654391587422212925211272596150193639909154432574230228583978486924679888210425506724853907157162805460008888860133081244512406098684020123564468136905631547034910504105553848351058326781888213096238431421146663156038340210167520232117780688147585269504135657278774277981811891008103134912403045686613298012332784226241734442285869067478307452938691529381916798056483623237848972616425210499685834671132820928930242056997596523880411927564301353996242869031134511965320453840670312189347676009139512865865477229958466374811421460271513261213272386744299657401843807004664792546016843812601887530528386701299274234351431974198008809073562239599090704364824693129083411490980821612851702556393818285878990607614161348687362831070723162259137233881691088241625832000379474316966499785478407560104429223485156810775357784672664400652533732006267000840546236536866883301795311777714981412088190005046995271583498721913158727018746876123029158780054035848707601959687255747918888148350052575677975206192075935892791545741230810591124650606506315425119351396737443625180225374157730338149174684885405542138797096615112681915669010065759141108154271526785319605259509638055076147344955485816907262903254756131430747568782108133881415281849776749188240793462701736781048387076861155640781174126210711651886471959424534931832467452131287128800632797559317096908325361178093365089364943749141238704295598282928465964803666104651731749725405588311547722848446855732356535904326550264976529932289032131423112615898649302820863883251463241019245546354710220908510910589139471426896161036528760774809267658204833724702847924536395342250993790268514562326876065577904055035869176116284664751388179364915342983883051324155344942267987124729043242071645583555588962628420448361237985789143230590809120479601407473058435929340764170141245192946447634474650739036235272336757531419358848248888922798398447120807172338734100068093546574506944034881094865368074906338848242967139489795408534333068757009486199108786774956865607678533895590388182936059671792175945420509411804729767466029159912746755149796366905502123690323007616175434607048510831093163301110058444615010802860232978322893435448941002457796912758412240842993638704010056971951376281207893920341016283625999030627074689538629586879040663639476812244155847233492762826190929270481771599578549208649277961566955150421818980284107523138793711274312423148743025043586638998618271244441413909883238159451778577322163973654692018850758440494350932230954978362673338063263024718450694315801373902307108146836677225062405270940066390542728642173285935252804516818882937785703637841169028632439640956082842040151569110328040865992529155120795458443088753415582280441163865106563433198731373230255355244782344715097267624405442779323203892386511877155543074353578979659376559096734747098614071171342802209884145655455751892216241592340708835000406237330806449371874990776115115364784164819432604636648884358805595930799871234675603213744173762063345884948441114094124719269242881772404539973711552338462128885286095193154726566683548333526082668880419644696256366689670315235059178482266711449793333799792201845524102148012753387580115345110700689298654349019384643112634436242472468502325951261189731754520135652912295774531509394453588013091534492157662615403346017454231563302546680286566860560547653975289263416164758171839188244175275813833034726202216581412696863634354787834123589134162648084364365246388460324263982132750832745448231642097337335678470914016804083177992615990832247417302096434183728291016007988471603181481628685775719990669221768912335446100873785931511689090895401347168322615103919302971871982899361099454284379860148826392895258371719443333855850881005172982232241390947185752318673541749134472917883657889382853850298826486654506719595128415503093491344065505978201515670984220291774313152131350929115225498564450662408685715516727947136220479151061094165263292456644533826943657546485042368273955128904670322447453431841529955407752678787915991232354944643372310019555331143244337508629490612876312833313133262574163065750959625765228417390686681687414497930246631806941491158085124842112417358286624481907821679495731995239738268203776999697234155930141386575912382130310964194079042049833059235586906532650161795367703191798303900959450114149250741461957703629908284854169548156263676423448218455700732352647219712283219780394643603179153730170022300230248833569387390589818874849430908357830458435786175293558777148521052576173658349885371511978707523326992103152738431579948637381233360085586455794755556128197223790821302019574442303828667460276611976653223400324753458506628621319537739762209945511794787949762488765570207244344251819133831360484362797183629564204245760328613339125756178723373440459293563502661940245822714098956616609997056743036475381082031011250813623504888465533751734058121890825503045497017795449278947546152159255301289458403083772064402590180839418812964930874291015904282598660892100752818302918018457805974528059533961844652834543992000409392898634473035075600311219640600510351294657768760953968547099790851395816045430625399097908054151863637579492483800454522707567567279543077278887374701763068502797686888922565602808473209619811736362011182925769545686238150594871475789473183107712167474918666041289566752988131017430222719482088810639607640814411666727631989685259822837872167084652974037412215547539383972465492079642281948739724599735531660261452653049148796814224370497078544083351421233887876645998818111178301621112066612410181962915200429371136372492511853437518772472638030398753964939543601623522465100565892822468199828206386093532941752138986789600008231654627234824479589624804267523236832888863177529822418864711108778642918622971678412868215494785391616293886188285852608126623397464561526123744445981260003892227962089137927869526783971674317143309279781852194795819595475077560958683165579482199253106715070299708706438918021155874575020053992907347649743780746185649318027085765571720861098149262193002980986242691007458580224373448587906494987499469529412899238331186394902242687288665036712572822445993856353481136028832640950458494944227165147321782363963434381582404938848648184324856831724113566118760987922253928510756168866282596545979815420844081822340153853108575931200498589746035720447340148255712672830005785901839821613685623196980452697523108797906567235312330499359034394713569410002968245549836577475523756060064466694455262538049458748595560431042356231913994063128875852170721087836505283703907099891483009986520241844204779324748848806955568117103492540142872730871256988459767053576124178863494707039941409741900537768853476325919804331497431860697183898121496761833723465211698012352637498915944164677165671520078436306716236214029484718231499447921681827943405616896059362835162102896930049313977512255277944811479098029977660346746988241881659720226810491971710900947163189698397143411118459525129829474209840536377778487949783825442585122460943666992313130582569678753801536438128239008070123766563516932796213514254427682844179544863011983170794877502290256319530278861140951669854331156005259743481675474795701136172665449157373215970924987875916545646800270641126165001501956445214083769565011594192526103055166286517252472812905236359652335630329836953239991263082396944886298960280065052447939731540010920656484900632322669741387042559848813449444017941120084155839859782080173857265835213589108574613156979698228617124355248955217414755983053669480596602063921586569381520343158814126186866482064079228112032138657245408329919115186939748512611803542208772208279627875019111943707842883880884770711516211446366325796512068889183763283318118037260022794160556298717802081723584505637402097711940606957577241906081418187419718704631187036420296087853076358809431348517360188310374364473070235240288671432477806148170395782223192165023285393501895204724490297517535761964615154787045263174563170648970404551402572899806804511912377426930561405177960164502585045844776662578302188065698851984081438549150713595537213694183857923352836961630309774784447788016586103421374928457460010252055695047529714049279589136883598022837548572715681093721532104865555543969937310455849536655573903071797239992019694208148310885488828708718182493828457556925182835157963864581593269085200261952267130247379583887618503423656516697215457065408508270519153318958059382051611147255416030986984071643644594109131592646489539327065250455609059532830972775679714615650887604750543829122185371818386163325115599700192314550671474266756193997335285440640248231972273165523646454990248486906981100661988423957339509747308517340676748918521859912771766156573946051593813932252476079872484181179923649021478143015199631195867051092395109923632101889364626564259681015840560729809992556173844588287665487613754174106442764669321898417874319926424658388028447617965051518285998829787250834660057733377360422496316357410030055088822596315541129686049520248436906565125377264287244913882279541101110977137646822109492900568921884209246708728146619583155792522929296317424836318148523846609564229576174642464804714601850178368912760844311414503310173831499813265944325673429098780144495796607259595501225050575165281072111452870217267659696717093200162557147568045569461952728062320774197196362262619643346441003601155059876235941955027717537776561653448804628423650653219737504206060702017241284383254831089070757587068563665214879719262416116749717062017485414187775835344259734325011398500182008971628126478135466266271791502369483058318243126495714042052784350941048544609910036620067097091316733043598075709474515862179879360235328320409096336634361924498857862480145381043275787646464210892495287911318655012795508764842108404345717680430320315171915866504473740544707134462925946590256358017790393246124678307774753346176400547517718720915091148567805249132583931127800317371439940849740387379353932704446460646003992410569277140959557118107671177928454654322704737304623542855850033766931741865096446155882892290003057593283483212071403789351100820341613534148496520685917369480328499437801112281322536233601899531251917858757509109878140324381497898493983628298614314236370392453812339702327034751373472673997172050943155995876358490190538215851730957120722125954494739267669923281886767769041192522341906564449784053446672593466291020005000446708470521339458582342172128395257544092979688581281318222233497473709194080279537595025277196985970259167279812395563552388145845382379520740538253762980800259834631938099817262300961939610824120307521525296285864367090542875033549411966863666063321345127344439480052389623348819499151578069286115411452429452860104378982955081988095397529459323206407065439853224359051946540766416385119104295520918545699465627863222832544815186331712835253683333809784314441800001196577725441642462974925058646919728164376327657510994499736298363094255046958373379021171836475287687753774470536138145513368271807862177261546304583244623464325879149381364429313070663924292462451883396490789295482367441171420809530625859205675403469259694032577727881599969646117559979003865409065890849825053187335276992401913731337961162925023351631646373052908753132491589880477181943389881701124034939180578431711678004450335820173264540701047242355094638254733586124829821265508192660081565208986599779850234664814275060555497340130231668171840987221143580558886990572469626826082068304473205557686951513420953133350025342788882735149222272120552745188018892920168305440352607442784678471355279750561031054697270020610174685398791147402887639442079435897496028920807385057378889952084700998715582821499087312236148657851203616437936258111035797175564986280780580264615526697018736345281011223659332328765816967397216368135596596940172068121039547772340303138776458294823692577768092035772888232329802503310766172377100805049337506615042345598243638881859103310404483839296485619127479464165399256522261183101516038678608704650550155518260678820041277019077086257355256448856808831397250160751926194700890956743368793745791127045951651454774768585466123664393608671365370909870699689265386656593002118770762506719469833691201456348750307745783231172703990156660775912060935268272988681595487623161681343930710153507743590772947200074654539517516526638764706631637955783739288836606867281932262232466718656964193294519470793678866084141401301226830083161183402513993968306828013213245592989194702499153278008505541974686406683279661078221840224797903199029840953022991361562178280195878387014481665598375916691577934004551763946595627309071727788800182389197891262073780702833816372505495174352657575585945313859223873671128084205669762106034166695742691238878392766950633195505867207097938749936831486925721672781403594669218930078382173116696703262456646544819229524699254374127396249653514885502999744530592456513158037688093748455932062750433115062869460039007947662801746873197274847806359527612780992935349165205041789141828390316056050776286357122970003799764831350134266060791408389258205137759876060110614372562432802972276893551052356696959359112522209700694231588852348351426580297851753883762167917147078013185254382136718705445500335593544409708835729252628662446989005982281351406981573363307397272996459739831255718582497584764842511805435516548084867513738232401125417429946056960463168923176769940897417934802767230742263987560546546162022141651881565075891028159829058518086903486732156825866656889833955040772920768568404355247033263303975562745375955667342970859618158379149269244192535692456019587214839798621241072817263841395811936645202806744637859346988877071476590879486108569469792688676220718970521100784503962849508788773701355232385524087719921637985971170233034292632963475463230968080734423841556185235426710210604519480852402418620171598736787399361443409659792618921985792689984904769810826014698487464769746896557188541865417169983029789289889072668630724045706340969217039031370253616918227863765774799027161596303335706173991248769776607648901627468803456224178701618939328774043406018653930672469055136878685043624392447859994853958569309146158781052435430191912003022429138005250163803993471537792325149912497565022421618134931030377637735304949326347346228235183969250051351940311576260883051019060496141555871263885566299697386103258689316726176713007914020831206880554715988201313706779658075208207655669051911418151159287306593307719354278230822500237533149645941855739158252657652130743613994140928715988957590538412724120324119965815096601050464485541547490242393688530028479079565890049199202664749887761532112787382915724797609458516644068156780146252371535449059577459392186886746849623865136812416128140688405205306560082715400477841929320317480235517332295637624739796960385961318467382024460057931742031099081569687873671721417007633720676822594794777815261158791542051298329738095168711110705735481295186028318394060930491262108078512052473814593121905326363032737863776300338254355295700082284723690798143136318628599697170191363984215015475136202289149168613259214467039219204579612723836554295721235462285035230990904149083898126721620261900874014973746869122763131118174195412225627592195824528290635147128353101430347947419641542551527413609149310335295120959420309549776083517396283007355480854039912619794218720222882923862701073961290869876410159627767238682302969733784477362774148903746342323129772599889715554856809175122244536004532002757843687186659403185437189127348187691388058768435010694484011160722054503927327265011387971137738619681267480961660448719587554014676724661586578541194870659750613685524813806998632337392382306031414511848208203638516501320763967146972411060573733990491037400388124912279989461420485804773327665402772076154314535641601178280105505315877165798057777153584814892072761408695342161827886461179075708974774725407579378141371808075424590894282866539864026173108554240427763486507702394847971850508551324397770861941140852006760597627150581823269559528581534777976868761792530569822783339942726275084162950640000961569185301525947211660910869287844488066980918506818335878513354488429659516457292378508594295110064827098671989450806737732840784416092196291123693216704136503176786778925876998933962900024522480086361437488815553161635320277221101975891208653504094657818806889346769971394735995427198115827788657977163109131353994261927328072196565121642676921537720205218953263689040470929602763805401831521850079002516758199503816451507153252970990875517486995849041469789964199310483973297129971802124865479465344548286416877363523292029640240827087522940599634811058475072404115438775088302091342082820824859807263350236471503593841395608359535295400959454010673937774523134844097272785383719200623292997543498098440598799902450242313647727044581451380377561607622863701932575374496716851846316401009275338651901649104789830480409983951583960235572429291200812782142861801782169566180036971204440996206145184732192957642336723998085899760928006949347099799577696105597501710114058958485449792071024258522994414186869797993653319958595810885797886698290101590297801770860170628993092638396112109394665816572459247788616638337577639056259861958247206962921150106704923456319942532148914401110874532607241791945005454918126389182893885338848450744686857282675294230416474754571870297167968669488419741790455335656181622600950346257252248107011932125712356809110380384659421751769576739600623735700725430458367146392286106779344601903221408854559256727020196851479716110358493012253339470956981913488340089666215001282099054936012175141758753399164760469495572957283665649613240417546673865974703641252099345845889192045560334367264603144565005941351064944979690841808277480296049484118993352359638839430639416491294727232203267281373949695893827241209785046256848365560434049149704513408618833851481735879099006250210706712830548020130675862678503203536141580440625944169448667980204182437554237475982339516434514735951141734787869072909948619808028014982938050170556227094055150497178839591718293180967290251157457557849050092119569244641132204048254817869499157359736908005377346384559476826701478212391354389059511124248576686074689217522990473488879484170922181244216084411233561343102109582337180559398617205948466909511558262099688511629344022199417602936012434112951830136032256034934361125671116865120210278944512794773838050170050203862011340656763133725205588614666901282719067452927069305788975131115429849149364841626959424219265407129587561626791437693142198683134384723752711122419725681646615747094152637468529777527395648225948493438650637009032372826030482446025879223870311135596191897276291491668818093128703415884990779334968491453857273145665331458451370336782525782779148537025612720747236091222627033249446329009603639192221558209725509785335648116295183234005237560822592103413061434470143994918934415195243511249642395415895562634138151566333928950808994636653790169081884485711921658462776820371407639294497451541120078878873429556561436626965111831077693399083075277438369862345554474576270839345737038818347276587618740871271291084523101117523629172887684220845345343816088086384986013053942664975513956580479385850329604990623660372255332771854174891173778382427806985845365053349190812974570035868729459995551398898935398974229702100255858770602352036113132301329927646152223773415629987137933581151781051530928357256193920815808487131048052022415928287413693937484471019040880823035969256272084834692107371998909695280821598325975331944958961734870609699700972542738259137604820948076355420771399275300854632752716169940962458278995442658877877909113718008680672314325737469572770958855170946812902736119338187722081742077083015494404511916206922709132827331625305486856378023666092609241986661570524617578797288420318415678256281889097287661268573266559340118247125277990745087333180701975467410844065562705572383850174474643964702978517570608777737200498907343237259606443747957832756194303044640268137324414723685935141474538010073730796750801473576352463268221527029635810021415179371582982098691722792777684863501611819919110037946289814354221044242713105853056318613415646672136744662599416574901536727602515389314153761073144448283857234201117316811910010449881334662624281827077560717442450594406018464375783147233598307461068040642060726444216413248981859332429855111862569126276144835933202414763382747140606701022723361235255823954037591883266593990964110550222127253567875561984850985171342852211188095461101003259487286508655997688380811498595189016983420758078693312624746491145027639960456771297514676088740947603674199891561704357940325909130064189505713256975852246775619745769884727127837653688459292848738304510312554807386569701840752788989770257915517651617250440642234700288738384248215815731225255552569727053565778822984731991504198750544318657313640405004584937346703049191644865885052903945475689120239229093015131805593398805196547248124820543818301464558429519070605884348108070749742385221817756131083121599309399840051592456245074293795265242802300708109845697238957296367064483037033793649872259521447343936834093589214058778992319234368788333455740274493978937912006060955939297048488064596389688350137097394162146801720916941816578432301963932424175116570902679289236537622220516544997811507872879249411310225616277588016998117248797428664120789961776832072643957319324886071145152739241759078044151949391528581898490506958427011475206113071730374241869628489697610273030280152398893674122220927381273005978513145133614711004688452757235739921531428117496254913858194654563939373449249541808005005658947731229507662711162281543205228436582023778489993886286475735177428422152554711823232786231326220752724108049496250546209491118749347553677609182261910612955152540066268670783996549557274350351185763509213272520772167695552584159813298114325923056585696758775224440547922663315188981374262977578216259659089663870200851043056666703810906032963619552936656579195320253785813067431302546437451573722022770159085911555034148935629226339099243166123517249229286483349388524806163958823956982069790803808554082416476380547400738365232670982935837625246912521117554023909780305514216104402893020836600305188663505306153866247377429015298711493234531090632752392044335872473354845412849755778638188135335289463734600388290975724935564858005091162091150969838572423494201557404696975687921416874232359545598861377734683138848425814431596040501163556790404344557047879952008959300237022484499440615181859536210231837027424243892228602606619784079572801274649365155234337603594153613320856449447679069351016099533959744210994565280302793109206445685965080636558608348829655619276980225558838250582418712053828746738523617492274507614256635096606483636920987794040987246229729779298215135169559232212072192918908531541297426086215980467476100360770043504970475167305596710309393219885562939197263676354609472887333779774292498291577748050258400967945748389545428726439850423607611631497879795593222161214148842783788766147824784135615698518612573507994456986161795586214508109901778701754182128217899148443899766245424773416869956453825102489153883595173943051278936349776318692805703877822974388415422929028640550111691372364081211522502296014306264745400898096200906140567622042540457128495162186569366162153187106182616664216685348156733536591122183842955624527925665550694302698983531568313527325460342179218297016939572201787615013479271548443503719720346691401734412042938532878334853385803752133021563386057440880456624005791295577499822148826174138974016480067076066930588850644624489533761217332941515438334241706717005904070438383393979173266056611916892267144674206605857923419421236394486643037987781102499186062972812828174552581299536051659687952594108578220965906984130680943915002710757415918340912666938348131869307434217400420553305122571240784103880394403165393314505930090489213590189433782574335435066513437022790035059473155311145687983185134894525842391392606387621767107756215144222350420612966146529692744853106518074301999763789804573215172253564379788988648223988093323680679089217727063759052672081278302849050309222000124238220824694437205098336417032062676033607200264908391422705924035407480037961871841148711685537599603725251691141180771391971553850950865918237725614188905620841990124281130685380984559702116036272258114947251709998506382600672288873520291619838427530163113429831031495917463799852958000879744165696984870928128796112703318940122618882896873967832331038569964493328482101153306448871258193657976304834354844302481355975726222016203119113170654711275499175813937261190179611694962147744197350273213465388069482681711495881657725821796114469230528366699556348241112798413904374891475408839422107242467829950906223351553306870401533144255801013463441490317200635275198838398157395054208197272898113906807787462049453297131565085029519037595411621224777712924169602038472174496921491578511886803190201581363570787604697613535661585975673990673949234321638412329055911541951562187338598053568244920626155091648049181260899041929201729741806973683701428839088945495681008315279460218654116162445129623178588706932639943507011829924131478055520058883944375489673096260320928998141881388149322623441848708723785017193604448199323151405436393519987269701141129271425697392516478315487929248158925794409564404456432964461244235427090017924361224961087511305908141328752209024722809977600221930803476676254156477905126518780313297188266013655140096871863980151449120374423593465839496693837383401398194879618096738069930945513326726182580265009810739267781080284658380083031945136753701764650130387825390304836811457255857864352421641663645851346097668858554105404439010749643505472492781049963893416177537132844001058286184019360161356087911670973780253136569404476412750700113812161828227392823289082666715122019741819273989371331447670413292586876148040350668425935087763589122641549722777050541456518645674133748434978444753464288340803749230631887855295986415358965203539547027928570029782399680258139592272529335521470508841027613383959402590100432835996090681187782172912919018015275497032507095087310419386274712521894408329087921265003276177873548291710708023634295322276725093852730781990424566538049922403946958338404136355226666261728911900442649504904465616595784714083610222973403343464655777170276131676319345715658602835972128509150739427638964420497497504377540481426876600938939001969448570147444827312720645827103608445467145825592181830284061245882894594289856350296933466088698102545144486659490910043641246472378121688097717848451042170563839462831078488964407248957748308226892981301634041784075986906467407489323391699501416524774856504335883956458054670685674533639652228137994320262642191671230757216036134789869118248971766992874939814367223173071370424256377967685912792736141246554920124440329405849552444403797149523129403053642140983473297923862103317591001918459644340880589173956630902182650226448689849072387150022305378180903385192333976658668360219834473329017271540162336427595806939244783539490377136168436157483826229006247708009371877179775132495995491586548855628978836373975152880318469269477183015036941007327255576189502105852452667186923933607471070770558482371298738740205195765655933377611876809804018164315173628275187890559987871264783852346135048350350569781786645256802546446756516049744937985453904982416249784766737582577793821012077602888679072415554536993047106317950640031508063849173767937151261245162001734817935227813280645817641469958940466700885932329635666339069962304865010576667864802919876568743429241209929326338894807331409739641942781171091406484618557344150154078315904792815535980635145215837592910269451585037638639931512804820431215167962726270047287169074142559625979025172182688860344515716763422909908757778588408063698733193967030341975922231125503769060564516439384956593495322054103764202046991506775400297695297977325393358068943022473930405251396686851845600350020498802736758836595185574345494701396202219715395799671742677363227113062567453724384620317133133724380844804003243777458099221525715418406925086958831708685956579383148438906245507326712017809132968778994869784434896410628949231926419083312631534540834845310854171228103485077682166997402335683873086850903660808020498589733276863736723264024934378358384747281928722214266559571290316434630479104924088902486068943571573487220137616366611821082078002281626125783788473485339101977662039969293827628329963011635711522211830810015262835511414075619250920748146340484504776250102819529270251220302155033740188173257953789726591593919154606468352207270703097258504832165770534885098239586210679573460817495009688140173779371135466203841271000500314529190354853622142320804093079101994017859816601558198976391424532372579956269751372456649196933534301347849503801712558743749274222316149234201677382558604179185828550250915112962821122208634699455450999314938391060217234519122188714617310432220503636608930255471921213345211116925078360788649027249589690402688942549930746290462156186180741296263989031112893954169879575832449861463427118446946244370314459977990386508053902345257770970836284802804902488792768116748592104210177166118963029764501980877214243789318038556236878817227075178987980281470210001658261892369913150068133392292405510192714035726147750424422174597872713594609506746893173448188086688702995992724618738992285792610740546815240569302233045574137139651410585577059795708198768842887048825295128356654200884710374521984968654250523286841163952173142618018628337577929446171519806666743011776809604690294416194440979773078063931537982790111421975844246513348319910889828385846519579911734790979161043013815207902233433704391668627347676179204995356987675447416788576594477853048886787430047675240445334903984689095156649207099905222578796078083712873169861145953204429867638300895280965788093733721622783156844249270456854054021107615334342610435174625757497582677500973562306045585028838172489299597104127500628461287142930255219955394458521143105720901007494602222092460471382340505254521739666888156018247788988739198950932299200983536822819733171815678887468847561844589975484770220438555311097592321529423285697720559227010576328577950344438223287197849763727056019126413059865326920052947227837075721506859910673536559081032152276874138550976394944119083058237913049088375028443832318280797970371661018892990882674394763442539639155500721700096735835811330870850429929492398875823545935455238070779856596999922551830395946566285900474884260544405003880950545956838646497640912804972769375052355765357452207984503462029586131103582840930487196597414696907145264167470368696352230033284861489641219653266591004604855369717510119309445771091526235748373618488435726691164998392820698964188756238535864959649176086703485897743326540136106476419972951696470093912384542645353400000843734352730355280727223026268504551613553340990976854194053943013447487289485536989847204416648125262172343030624467119435591729676551828636799455047899825281718801981523643448024099185857201938799012967922167261225768212958670214215013576695826008954947469327638726969453141436442281634202661764040159891160989791568249393071734319538630608484988816054229694847362976202621653490128055528626626059988686998957640713150884139651356146568640971059132503874690962456843285280203203406628174965774349750564309388228747678473914003350327664350957609698225141270250018509086885839189797829949233952307336371683883088251762728778509126486740483890129831083746684652568558260390727616301203465216608431694223693305514851172226795824111358243719513987669645792700281387388734452553238359488600298236620420632853291934215194849569370123897558583236616455287008338627590868437168988522682617911670663087416305870673885082892268555312280628807731660553119746781578903276018583563040593327636629689893571988417899112817314098540207515019080530414940167901392986263734917933719222444956124349512007787851861668151672717866585497135552023178843007127694046333470925121793183409180216073593933431331034134567130686033850960610129600290194211022874529525155863146810299811402124383249782358600359677087398265698549253317279107508147574000967868541443316552356544390007626712158403294183029799556535246087181071050618575541151977990338735634507419517123298247694885936562487982684382183510484484565495242220695773206743695011347331082917710642808088742229481630733251537064342207644955727920226621018046696869910410850113619550924676287077429351620929483198147501537188262221934904357146968375171009258983880992031278938870500945076614413730987258505428632461888604481551757022956548120448937820266106376165112920249633189739123538169623689948568129002937781875503506937621439787082779757042444578696462005648645611227027005124382292563918888425656626099705513409909223043648432586411739944224313218730183038551594930551237226375758951718164922870556057259654529344973676026709890421993508882510145887215185402472449752178185696430429401293982500484142999378927851111904545853413289607012907605832269555895333168065639777069102210033300253016351439408817555919935138882025623297982901929659355114154746715054484500758607008486616165866046856726020723800041678723902549484352670267016850923666344748413617833112010250537479655000769085058782085875207385947737771691082678693530901794032157667917968696701132278813318358096199095437400399720507141299096383554609132592605076602626820380860746737567910527669425006908857294757199380492327940106557436284010552650591217807695009368772495904008109024013439694357598258930139611538374967005396958918728415410652704567656547690241534287902691249151671020381799196147342227426465622993229217439665043117962100501093749540688005900181167153086292396535339387145445674835305155701896886232615330145427773563155231397014019177809087498581016657795560644969192970555950827528900574643427548095025898492776325453958565057421187651263455783015711727040808652366181386709590547636037729509165516038675922124806388130911700036052403786433702783745733618112533965884736840784567383002487143369499899557251134740051012486198153191852598031823464221049691934650908269132365789867614903266533931624990918364772602205825702753210732442942026350662984326228961364990768201391933696004404602897946626728142801068925466761058789723883590272856850034056886469624568853975349929541537316792700186986942508966902051946561712800146140461234171482813501265976804122148182378331096573565313276968387141420915885084744159036649924139100038122776990698195362530852878365083168530945199832070586327070944080954619926527178701126583283050996904484448623941311220555036724060593969307954092952087737900248979475361247515662771798488900794590444089311881163149780481127718311440977502771344311864346284877652251116641760310862151450801181720631134408878172135811150320241801666528693184882694426130630649159297458879872997315250125466814629368640405313359005336519483725374986787524024360874875506673181572892950448240810528140908177246862532529558230562591237197216383482057874813357721851548119426056758524445596195310450936312569915578326261717134125836725220661919203564088476102054466846997503785731265256147619162836089196721343992094781524573178183543291064275635757166186783663434419151610543975721130582166924463564406000547609592451169553954888490968636290954728031198538535648615203516219214502782329710630040539412018659781347081318108734400187576387507008416977570285780156020565178445970349125437026846812169341858008069814235399517076945148608899545057953605110096828805760306791792094100968408274377976584891178251469193378117471906992425850697670873705262359509434261646886410561990094601482097887831060982973225905530433674102461037860695904107363672296961028617216462058294680238619193025939800712625317818663850154892190699139012023290380940960259495175621121138601367443196294378195020899409082037066079888038061310355311073099253858125487718242209638155057985363409583701898799888605182014473881442192108732865717085394752654981065687314720309238661797423372750332267704337524343360407689463967760415281222473432416321820090544267202419812407648878797296387481094321890445880835895367266464049708112804743975892268514753543619274309154451963355440714824078035319490856854085045233578658331248124581492633259708901122254380984105143516132447919724545675354529394076913677433891052683396086574711329863966984792507121503460992604214810245641258993825613423020527674069577537127607611905687029619934654474203761212902400647341140851352806763360038464311807204045055520965452102689976254557041216328104405400334827258487296826542248539804715057859310534691833578708244889762523464097348513399282922357631526726307579310947134924814612446081512952884691749224702336024696235144621944138059417907414917051471143112140719457646590036178587675417014855461462827826575927100210676765354789446303991232516751041548509099872848413339331545873114257812398124391086890095921148795309191198030054217767685856401817016779371603844430685616575354385633942983890224580740932277893299881201525237655699096823169247139114716045578806935340654738852294199359085691916061115205166014605824650088977399231773051187295156124072911372314616571384658775804388433067145019883845477522135583678802880679044856915502161698134992436321704602692194971685463562826998913223659289538051034693465926782045038554856480495737615391090679583997289054715717299705715229335969584612173899371237153187725145420694782648016418125074013540692888273725122008400940588694521858164666407010248481025960797854837606031857398104582288027822032761652977980319016348557773325379263098619349283691420133212687170090745755797186178383246092872820448580547333409385751838342411078119534762496021826358096624246673794862594337012357389723897738887895722317568381944228496876670443721916271821626784149088703434564651176971032417044363574424410000657601976496211501384816518816197944905991035781170334475792546107579649404031970823994640020590636808039255155699233063312299620713755729417573553834367009475659507646314741248992029992303859111391811028615650461246786404066732157488220710462509792072237754605715896452858275093246199415148691300221499509065984542340474469938392696556045994801301000993359998388055103960468450460573139851865136723439185451587873785476820491324552195194251533209023543694597817046283776942219726261848071209990391970532730009793516853669868049469382744947821106116288028942004803524081386981703676433607407201542462722695579986633244587280637161520921994782849326260659939000120626138938697412164550101825289530474232078526799470210296947951456882309369790797469030873889338901524745292461473637858218542437914700152163927936139811039855711162231292830357528613082372722424886935729188732532500423055662615262111472091004858245580623903534032736150072475484698519342465273542989864110160882846637753366386476744283103598135706829430783775385218665157484985198087173108192294800031089430774129949220812045915572906432069046404082060587884888609193416059138130665161298764417813049303635649146209905367547970560636072067281594828708659198662653641673636772319421000006318618863333012295675901497843856828877369598810960569313048682463260114643462644620842701533562400957917473058748272576970496680077756110123322623017556828827980227457988561033943407197389192021022950594373871432264996386908138283296142471580954278920723750833194688248361248078862521016124726139438107324051277211232997023844520330485479581564480269489431368460079315029838359067416168062425537519809153160756039439091435415960219774549553665277918150674593807213549024970175090112632803697686018614449622659255386590546065849714338811757608824358262150727528901344630783860607560976891553119768739527697475804699904145377547754699859157864064424244803353706278189198396292915416900775882028530526751357895017432528569272103695120997152989546016483144403777700453049861247336558280436321261860118801545965658423820042997715029031832569355310853328395099108250384852849059845363566981157281068399848323829745817549996754163669719601885775280944624300104310983481284885155679793286430140787186601409498552516611944284976320540315887113764164071335332238543770233407407139255115325169052823549901244880834541415987780065117717469459927658943021135060052777618573419855476575182201896416644653824495943299336065008861552531535100050136277555831271549261548773424436468627326356789207038612277465708603215118697888321404175275188784362404020404113180659748093427531027938762674288114657531031000451481461470238700847155986942764508875251994526407358963467532473759847659682716396230477662012012507268820818902688341929664772881709536204041922753778199945260049838473723486606770746198411947486864603313208516146532647981213788903607794265366285030100852417850512150382792132258029806552629514889194166129652064583870028641534206652547231262563567256119695053756195989694697477482887197427207221059248008950449585306643476634422518339250532249358479733513659193974313480895385533662940396992789650855402569250891166513971684508268440655389205964592430942919224998868044651268948279440956578942776387430015747020891300973070320513882549425612950791458400635192765171081141226533080984374498253967488845506639754874439846124240254652223189645968994562373569628522803043193036456205274272455845176378158713718677801406146350338960349575964989732628446683791139093952106241439434758330875490005669552622912919483937103771889502986808897393555186207798434306519258892828489733137359796868471997326628543086516792428776263008744141294557924792064181090862389780649419927631966966889177461605118712449259610041509900956194014086822420795696785252701502230611564102220779154737842990323665915798304664707755951179228243756795048004849684186728151219821091124091083060379582746217822114761503017008366668296533711255024167523224022184721256900112761806396144172775776654955646740344088291925793847747280707494888856987208395349308111858942394321942916339796135353772460141609111495530439392560879549839205586741922615346734529009043228594724067596988825530292509113424135857967723388556783229605665012550396146149846732121731976749545578961652864537754214239346923694246904539027206810442484898625832198400275500953671933912715109269894848308024465643799008479668809032591768422592996743658154878919071725319713452332873915226032655818058094555228203299725739336176066882301623858119527341228620014985761199763601267212806102702836010524300441612978273815818787823437608268377147024024736325397504977048647254757587553414130689096672426402175262241884448146459887273392428668800108175304547044264030089620067152704264626800759931875266350289714128791610202430277182777687915857187833918744454754953555780873122982446317756857523457657426330290980319305171607921081367176342193379742074912005829423098863310469160186752191683972711102522952449900799447129259475935622389888974031396238505006046590869280981946553655479779781962026473652790875954477259428609980801012367833693912194499159853170823694012566078348840385013170512923112599487332137350960870365035414292062608624583498164609070739229583191970984776136523317624196755462590149259442030628485113773475517025282623605340112432542736237092412541867531349362159191784351119761188258047640610681658391860265539301133288415518521475888475532578749723961008298844221300377639630429527856854223497141112406358408752208440239333181148680880588347834012805230558651737027240831949704530593811841246292090023420300865259001802348887055556920674922957671873687570916223818347463562296019109067660400638888068644534063786242233862233627361406535039154672462750577009932279104319777805918517672342339068009902222366613556160573035157890915304116026209666184039063882177892360313485158020997038861469082582791793027323345058730878976449589654803430495712712602745459221379771668043221836254670412962045030572377418776271230852538106490760562871376735031925047224999907002696662235589708886576863557452975554914743655581095023074698944173150301334301005356974343245004436943076592765503206254467758572907341513878280054328325688342738562667757826517175582058691423769846310398448911268276381016558870204548084937440778527475869813474586608030001108877491301402530746309246384001935780165428310545032474850356299884527214746148750280001469467223586500885067843504924967174996161874072613840317742435012272856001445528425929500264481276600243496472306226064838792380984854744271570951607086316453599618226617283520097489232772848827843949493239033836219297883519862503005181210005953803404462057224547558383065218212342401221026486123157577470960033851573589126426943360993471627859346770338816288053839870469354001235627347581915197435957323595004763390185750343525165558443486311925928694035454037941068475788300446035383939838287327483278585965762634400971188325487092233804875404402877829557931906713232506475468832536391580815253150258461741118177826868347378768456257939537747037157414466401611882510676129109446472339800195562867435253933709314638371926179476843250373850819502388907771020979831334379113654887306836108269244337168537723048876789423477772314710939293610986509867907454111246039655127647039969329310954608524648084236717691879524641600235788635328291226552765422861747484250220636638385510463291557971364848922714380475948110980889528618490806183057873711234256195872587640989474312406438962541484699258486503290079449903699768310679867489529762602676350259947719896360048873515263476233469133059260391787784990692703725293215491115015712462290572415309405036438120845715625560559967582822635694721057087615057478590500612580582902999971449906891028437159596485690694252131467231522699557391240543905285130157731282694921702762858947238092040062105022259482327497141286526745197669806262571841943667404391909798461862120945590692952892028121030953823472739340814671614512386567140830661457610471962946100612270898978562492199432369985663785441110128677425158545416630911143863314390263390424058196630664235226922884673544652356259107710989554724776842001210456749765603066708241166878024303706364057910135489643054571500255851035411206503891366425461529494101409570421529761967215443817370944568291722443081709523738886875606457090038131095857680203962602704668479941907854230378212086190981659226024214511663443460598320322391952216982098196116661845886182197865532357271067850353182363342265473510677729964622017391064155653550654032004591336626699032412034172262714422015211392507674683656722525711214977129691219369556816889778564233687895395590914219259165376772772644798057245027059819478966113082437719892875895587067026334645016115599596260973960290092848937181753825258291341699989256703770274894347209332976301142594997264965409565757958918528815506003004794349514513485689313987673062030638294939695973609868524223055588088992088621848395145200876312504892198132897073932574890297716846194782542499764812136697856151282420944314004777200466120800663242899600234661612123221013780367245886274800601090469995785528587823946144517379992894775365594936710961772886920420568345041900665146171656886213586408785254720781069749655948003059941959439693420619905609747243636340947223209133307751041827444056122782576648565811799756086392497156184711858014443627924530508085261996091661664037765347005479714305258286039829643538915272714042209454271787540489842988567805718888700197967805970082026785485950865265282683128311069128524221309096521839911366593599277053524413602609491448032847825611976592053437291796400817931131198493588433301474891025089793778052011994956781914514212574232254147486559158444343322097994367555491032417756378603046838355799749449269735323220284897792771107235464939729833663636422990345332693541991538384348619979232566036680131761635227281040025107814948667068399353544306476639002784072554220010962337875665619092586374101342948524984583215416643810817528530490279176865937746132901250472555248514412769596499730557521146877143378332477855630426506133170572494020680796235976063645605782742503217272210103004050862300116217954860654297592236224829583655431490191365885175355315124390476257318984909867156622757486664819913764847948538231797719613509302968175107010410660914084009782573744533731120353233043110640735268718308042506505079849255543089940448237273568817171165739869589526847658555391732264202704992951876821442984167205985425952008587558549223058857338336108406975914595104010958467724256063431467104451820638211747126568237367896901551530155248451483440123799010416645535914384490055456963638131661680880358916098446628420530804905915877113087645809753915893324127198322742435935413928959379354687937077478454593906983127563567656668697138618980895755340894293457771722096880060012076933514787382837445510445531645017924219173445332458926716401359182802237123741813809930466339874487637414781409660989024225168540935968133272372251835673829003763931133201137290718771688947709697827928944315410270735303592112844340401890243494601057883210599707572655715799632071330577368868573786235460762454732197243064351221243294593253953032746774903066232669642125242929160941558427875495569697198209525985107548845248847416264949750299275868360273255868667603560915620121560014486013527165710547354358827139068059525030633963545512255872483420664101892175794959629505972062844180399235842715943957981091433648380607162477062784757058619147283532002343593032970740762451744083787586489456751805113819212336208746910863391741165574389607023201123646778419882731540387268696145361793222390483437589318148515702069187132179448382376964335689705024853489027073964206519655976332235656775021932243780404743156015075134626323274488649941781165190875234228314958002942574854157854650664907783392267246460696444742597953784891144173056610372404575927282977352232752946688449546553460054978453518977718064047853311666942156377440962787094844864382566981704160388611595460224249167896577848852157088590248997625098313426931163714818005410192809347953067312189724917167920096470397552338582136512620634188297185373972518838978356486789893187631549242079368155438797583372848978643311117085131375949667266986724529720456970284855670061027189005219483861123065180090784953843721776469528692721327156451823794675981983725347821958695135097036431196620703566681401055236519327165255549473860418476790766416109212339156349143272894153273964791734732759408538875959787881756279437512926912566010185599809765002990551361060136775317050300452127260519705826427492097188319036171334786566761966742266880912115088158423097755897528164956424652058689802401254462354950497505481015342322827462856953041894159062202419957040620221817161733890920154377280970078536523090224237273450335299362264201626615861260074780578460285562920317594364209878560996679385783397522876999500864813762395661343896712914075998632395306251919148610454279368790059291678482827624526053388436664969940464696684709776876365982129524869607761169102999453857840394094282431949259708294230464103548596703923619568683758553711024253527837099268536787340334644162330558736387824986736346494740937362902790048435665304389463492872869230453611641685681097410193505401074990228997717052145618320432187396921371317472061516875322785402144473652455430642414970619518259533221470780566481491217941190867619745952165249710007753998006018954801346194774701507016961709152251730534840038364461178369453314506111074202020707141031789182279284184673204474208691854603088657380993491625396762487701393592965768443583488997144623174095117541794230447519249304160989440060478682158549963284839005896720229320937573940209991775058003356962865546600833958125896342083820036346414802303305723654002637063514836869781085192550670333159259889529147842862889444242725385998897116655041154267090607830350938834717363021679805546236139027553857683462442817217552710810496852912180833755680685285810429082494692484858862727827387776065440878177544949170048426883306353911808293378918735721205758739676076518713465972294199307462961631263595184960771308438004577581764624801305032097773137437498574867351933975604114869972912386792676203567603066831358653425420040236267575195734010635024212406239807816702111159658527505502281846679512523474219045463736446292062813598022970688811825655345164927007669625187781511265155126185467323993372684866774535824711110151713231679950561432008360212485140872437657160445396532772743071988631092029383190475343469758918838909294331524721955748739954135424766322091050452656010677497215372370780617918255716288179188890822487668030736313118175501795890221486577066790754737144141921575763264812293959040983444055122061882133297018804986709371165791299765186051167887404903276919007563462670994906756165798737510760386860741649478227247289442450756219440321490872814098779000469093811591628838805965668967413864232348560117955514379019753570739787095859351298510567529679513430399803950872784987881105861519334131918579872476454886534127913834305964454363405728478489819011163586781660982621096947300106484821141077621860771649484997528671445554157664385633422302358987813318982915538756732017840798671502791317918797384369609571988580588640605783449621775561631861407105588980965498131793077182405089887349323506284519284548039020913830857615038727825600906304598832134762911122445470674339471553355206372739577995379123176378678710293370898182941297129348788611691984437310076525599969229696274163574304728057051981755948174997990549312797795358059173524409856088097199727354757477100346713746944162302435220505613986963940312422568725657059552449845344491967027424823597053029722223859135420734887286574873656895331222704529177866408986534405260741952983541047247711067919827009392721274414431214063043878604226542585071368257120477326125132791758958023052256614753325888337120736403001082977572941857301148535996683449608966084167417257950640559268429657438725280633765693444231468036799437993578740943585709926630840857759163929077927762382029371400220441155081170476762202192164702067027749305834120193775313428082985986977323120713684840337657170984067158214780409955461072514335640462687829393675074913885090478434094673613108480712816908647849136418818145767777574454279974112183600355780118332297000812617068867785275718000457888113133589232200726604102490164280172071740594329938615708791809688383617889598889652284579133196756705954556803959943429465387847594342197847300714788154183697159469687748713075011661885123527762099737461015075727686401394174517176989104987710736229360807691521614814189931125431558686489684719622580709628383510676575513729100948287459414480741314872455853678479191099139813434659501689561826134484272466256265626692455011771425703745533719025964141087681402326198619110188015906869323454583060597831241136935351169841758635586532116430594890129159473001583076718480732231333681075087983000548654240113091415313524444797750032614392700728873715301111822165639416885498777563509845141402428857279254685957913167877064823478738947804595623162843301566626011103495890421100283608991948937280533408609327784355654275254324377402841379110123587517176165995285086068418174316027495854759758102145270084970953927366728146684160625536544508601813042832054489798829068498243708729992288980624857320269197719912920176731455387446043008010275869630328875188325180851790504791405100213538866260198104902131451988354495474426330089966524888587285534705994882099112655307681407600613030999206061178627023699850412237091407815349629228998396692429187542422569568111275586329531154709239503690474828387544241425914939487923551397001210386025889060427590992229452664451446896645048509691510691664903953959806323885207294094416437229084180217869006747217288047846805197047791590701330539766950313432570943139819739117557411070558963773233395563285906184217764310480488286797320316022593700596065267461205581064089648757839934736499650449948388661254703474786749042755294704056216139028252129308551930269890571380018453358170510764306048396404527031848284481031077828961425309860048585735558798029676527889575846577132477351103265300752548405691780138430238360334903395028926573376099227346009543224874755749772290159652132254463892027523049850149982449727358350316766299092721876303769728507339080828466263708480538409401120815021192277853384041623133610605106943929428046050752219661371528817023445775926798648005987888814998074503737723897246335757416028232409567511729355377638026388318728987920853784953899037055904280109721831650392414986268879219418576770299398399551569470051707727355267957674642969104981483747204165945556542756148922316656621984295353744583143232835266978092550606648403011820023822605236182559558633641314288251085772444744358456221876384787490202999356510547456948462408182575719736505109126745959943620438779529849924936328957788517487642233621229790026100824758027392988783507534055205957907171447726039567980906767703052313973772500619048965564808974826602531426707691653827728383465975108775555762427964191293910206523450293223412657577365035788150660511938571696084789275156977235094849529889579089955514395368915271772134226492474623145235669314767351400002139354614764651130443874601178628952083299079355805537001131253069120607156756266518187885772445981888732155075304359305699120983920204132937348267515759885660718852208145307346622783412850721742693688763949978012583484962109263373607412007325698516584623474974454516440222336923714496784452847550987832504548605442640501494033544181798724202204289937465686323122020770090071902808936645653415097915356407450966143529728247761634165212876485201675059924522356396105993288629167989086711553390404527671069024066415783102499283676263825374008001743221103420039055207142964657315886711379058843090141490223345621876899265150259217157651192650176194983077606841285288582361097162467859104983690659173487990323674787078401408672879859118996436666589869749609673167037711107248281631709180609091270741244237803713790044642762731001221917707501298787691607311104186019605143577659685235211143599030155604527264996971287241465944725037085721496404791439921061484261095770428752990664628849735321959192961563424519112606211948545975072863784956590978174668393673854004744558016860832203086518684570591902352732967418235135834201133220218888801917457958338383609687277596990889718578675396385358347811027346877770229686933055344690582398756356396569010310803433639224270045625759445596925634019279629795161170495064433125547239688618814582812844073610564935778648926197772932988026180664042063956449943833208304143790050537588267627094914639108943409722318487232661945656854289198006664384078172085160018638879361394727665309856302084923843025029721414215881566898920480955663935610983694660975331992542237569771836597717884478715520106594935580489355327810836241373904634279954387118938712498829296084358182314070548236256167160987817465671921203734441965173366766516556578595785275132947815994389930101533597810005735322972633354529548951442858007531293924632968480613476116951038321202178813846619489979592283101238718436419533419340615354160211794593812915079142482319244811175768063583019621505195876309350000503029775474024072168806113573087250675349307407381232910421242195794415748200795420646865452149164819666328998715959849223927825618854967499384534989104106528911153862173805646349443404955613475574257600459618351118922376109994254010504082773501062928812763693090613459720743409321289397682465488899517054553763778506933294059174561787171036370332353411795228713801959683400895036928327180401490400444050573111361767372628998477636237336080947872590321402199584547369068778003667404076897103216389449393731565619083349748659045401319200882178715488661317358993521229433394776716488879284553090218126030963253058851786161940143341377949515352211867294897960408744141462993126359355251941170475052605995375497199875495285559651226423023360505756050132841316406893723154409171642224234805767403166405710876042049423734329374176417928226293630996818471949274996511593979674512862500284600273064054272004461872510695284949794070885705770066041114958390673429293536543674209441876969476453107990634422591273968550789395102888606245467763551843635246381533815423362565583635386831214830720604158209918460108024659763508733330635560234789007545441409089348907206272839106015019552085394078472023382217975514520629176100754849027785939956644604937240465229079266169312901166375265381858825556613452254270342482994188938374622907407882394124004828151107895781758011089960657125675610886008567393999467608750845459689194002635938254588333957345522883971967706391638114968867141678794525795538086716941379996129247683777173320127585884627768116303859529443194067226903104395309979135171534686938501247644748270240298811940188986073487053486031781451484778157099959190985106899200188406674172411790012140090465529373837062308705279216179079642512614420555736698172124447859942733083747963483789608395200867763860657598322616262905502004225132764184655239646545240690353844513196633922384462806370447342790521533918269996764023705293917294383841166833384389948004241071257911074697228420975493935157912907074303187474967160178671315359634685093649664251821091748071513252864660743004449786598484314526077572751123551371855034888085475245268282211165364864803815049858810631122154229091707898311946921683879703868598876339415096540147207430464766783626168523954763034374787153631334586640742774014623956611266373745978128834734212541184211918256489630338683680067174040024921516988668501499320193012271058762680027856998184141493223031646129276020438121007162327874844299840827392734578351568782212519395159119003400639659101166394706952373501051197047613752279146467879410864104495580226503602964514875206692030168001881286201161140055785039573444346253727604127916729466974076046342650819476653174812310158571584819137415461952877377099558325769368668347952129094305766492616225138750082104784325453510651081165755613101428359846622558247731836462360225828032365917795981414144873759916550091091827692692578498957280979190273021578121026383413690131669474083382016312604409049674249603431517016536690551105360621303109830739298238534517062032594029851920202227445909764716304435059271517244497612464281466339694276042061631781146667558318850189969095329356872149885063507737902842311783571396364644603342978767905222750925158390138699473837164631195795149916169735641788402368168571564688496183781488277574501814229939414638536479044108289108685220022545943875165335647588855123538052338623461824692111414934549561233405281821532836347340545402289928832811563058550485099228359647946309740319241357968849168620454927474744245829202198810019039555247235345929581125193008320647676790608988741582419109991390329144080168640031549794404384357316838540471852311711812666338000154069937872749561352426487262229326610060688035551199742174800816846145351872018470530033267991964191409015264847875775774578898600750156858639814895158158350742624206145051018166980938714448361044934897941319922165378110674711840460844691679407971669235238052639499990640556235189613635065307484197435583613434827828380791297042478953304766787694780961996382274969883592504046357913253368268455259136011499218525100520141225594331754006772225961909902798374553070390774735401428539973366227982121487706766638040024606887511164684260903822312817915944337054553338921723674630014187278287750004153981373141601779413114003191323293805859288812774137882343916046842428536740919191910260960056080461626512852940734895978013681782509747443472116474679973239505921203267640909197622066718929257818437261528259689554319991346091184650902601442784211484243488612008691837545601089558062346052244488088492294609526042860659795363958122549128861779276888280879596037957749611192313127188035392906057853692782569489253515065846514286758432211466922962898815685708415809074330731628721632928773178569046053789977490529465871319203753545804636216712927741822014243595396697363122376656900466561914233965279398232578838638026037438503364002437996094892945408878137102063339542727055757132439132788219218547466111837426497880473507620931655415818723480003155574176716742326768503861569344438690772862070770175190991714120791976349479092917737007829925846958570196519414209481032979836309236865253935998792421088463705742982010177493737649729923489926007940386021375995639286433075140519895163898087966536652195885106041517037849561200615584113072313080577615167305702769004624781101772870125045646801464165086337449097388523449111057014289523381036003585634862104997567446941086136869906707577574147973969601098121237208918402925946295363084483244155911984965324185041765042661859569246558576649573963823779057066894588535462161027646500526230265098098647634051750475627000101771862210542381243415347034325350952740449599251146977592783710855904935005197688485175747722087923517475357931375858726071474591182855148472929406926630909341449974855885273399998007395079544901319423584840172592670196668099594519918444852826763884672445508591137508243133461188796723741523617809104695213591967404567415622251122689820627345733766276002620302893387058079216819835522426140218263540762880705834877403442041564004706012734756412811047636093720861656360232922903495107008674009486684134370423924107737217150825976556454399193184817942789991030868165760379429684442210055141808666940117120166511627911506762080676578509220874815859183925550002886589750035406564528395579055515331644209039333392938010926664489242159248230659789942948619225873512411073658000454760856061163865706000006248566757354864720164663452549064652803332327050548459562199494613170462333186443832988996862314307479468064196128914455962477065164951877497133619779507233870286487640307890917069835005141605183339060388096194265184610475398352300213001502319634862133197806202287129389765346096464622736764629516527756384350725212175609380513614177746864800809705489560458649737411487936941510465537838258562195692032066021546224946745424980185556420301597977119330147927098992300701939339805509290881002009868805277115592356673158780005765718243885290423758371910936678112024797033701851824135891155353921519801918002322366458612809659850718053509189396077553945130446065568054330867802092897229746336457208799477460158631946537675689119947789988676712588351018710641628627680110893912957135209937582057108808005197530579132989502367926817021288256561286526141941788433555232090497610093061761553184520022654835746696364491258560224774887400718044728840106040620511307151473756927855590527882216054676993053419846999719306429421925693971610670613762749085376281692690612971575870500652230048331579272508130056660950829013445255243185677411397787388949190650959213218307180841394075402838684471777146329813534107661882087614671143415828180980056187487123089278426156542186585679329041348498886275285175977453229307330417949166004103649682338725941140756998880799146310253849770190714226565964723123110350463031724379847971011213241341550741448186279161654736112677031422861398656995139272883405166996055036912400327150974856601136129002951009444587057002000647893322287993695321148299197735885104149917414878109389565925485203273447553157517731438614268623029934000213920189017122807573129949827873655317505917758482787062431645753132242493213056274982000033891867373175807196353500218416820326442500292085976434646249072854898537034646114620559609703481355355254585110330115449615413515558940346862565298554151968869434967363218800196957748209049520200141461189158745952071056816930562387746501995281198460117076775091762596760171402386559374917790070096116834145950573710451246617984054138426356969840391933849383296123519125975465700197950633943186793799777174793547430944315827077573884958949060292775659851057605229787210071509351996010462486648445627420076813541206888090352479520220725774939196223911757237379412525635329586778262299352413468879044499168530136009384736404789169356455207439849453858168870209106466476465296426052156258615840189776962517153838272658546783682451812245291874071807677578288026776571139333912278482986752279616193442626873141058676844218225828548471384755511473230194852307306098938382045698801165998244096199125185602602544276622536568131730102466041402026577353173899649264674909783193967412738992747794478551028028483908171986087587592566500624108852634978794607494904968711149395836234659459253218602273371952782214853220729338089148344060631410293680170870610646814480510571104593507448719501259829182791384985651171505492183497583711438865815069124765220756561995832045472484609998474628174662879238618909602386304415035224715060319794497312416081392203106174241402087590160505116647009328611061686044537279630746745240876176457210296282600126853243047575315982267150283730490579479355095935177019452561083449374744960207607108655670599605382223008955679827435891226422213955373173960568147407969254827204518394673390635176158907061664753606422415671240515513394895567247334191987159055229042853269984107874315464615452295646354718007062069685543635709883255321424162137448367482222796326262594171933401433209980774858136979473424262845620908434717290093157976546428788924801744509996693912612960120463693199534461647881397440203646954367023092999310793996723531116588282846248318809825836592811813864403452963871285557443175863669654390562898287571381791955626678153459177531677536824302626525486468354550374137643306949579835343155193654793870702006390003803079596202949552429000041399241965781383703220388867548951992892566449265405824016010136525789450382435849809208159972834914018087829494808944509980311922239721270686794801595120467089015457566687165085963444982142742431778914723559002240811450265976693122663096821765546008402719091548139527258336800643764879049300951875010844470766697741101423533617703064765202576035566005256454696664572760752273820558973107938179713432520781058444984129780268875384484011615497623342029278737291283072532999406464565125749199087371933219996657206222730048219538919725896009791782343674170309391152663098880666472334259168669346479957928825282887526963428762095663213924823974979551961132400562238625124699904191407896273743381904036825880566639873965019756709114891393558098178677967842254437441404646576979666445447528212909491527492353462599026766157468835398694277510299721279089195658674265510285755369900221075938809691454735251630431979064603491583829193981854871176268472165869484561288005573077494428906415261800622930677060527946901636591791979851199156386885014708284109963202538646876466133662752999713499928370672279928209765147232493235488508586503936048895074120073053222736547260168827821074516954525886406470657702067055791142090803685478788477804522834660394145841260858947518668552816597663227208301448329153325608423581913138808651813258298391737972723016860910662795421813869491348616547209353893206723319642080184197555253191633976165272594487481028110484106885606652982872961192087188375363974130517473959973167616116194711542487522897132998689262166266566510349033611545436529094721369732703259681714573656085982525652678949383468655997424775329106409661069964693792459029570060353152666473984411013162395276057201076232218961559275368212440415832511745865855755021639196131160990029406515684435881196940262673254801378747025162936090319622352614793980833772174516333121666941250281627171263636905434182910552171032549740523345332917191520308059342152254720012599130009578200595924238757147795032466703823000302431942558667127407667974625023045661270750963040333155515829048645424489728007328732232348217795418532870978738822935101977054887078751261122982629914681274140593079028714355738318947664822088088241643833555246847344126334767087100948178854178554527410660877956364850651303703733426224999086616668821100899216962545899236518483757871715172791536342970152929530895068880508584827619779944907636852183396602092771065999396200747958679187166894210829216513499970343849053995380986057218175223392356588988102572302085593551026870280030721938449713982265902704848464684659615790937380534903637254565457640435382496664431792013359045790309372779494016007388305096193622996209432444262746747405153523996229649408603079003702673398127482767049782272607594099756028263552811165178742469561902490345930451759161980100934133831623799508996274360343866474020287474747459131805730489384101034892340417207914524574565395352643338184731933855169973192110425010666193096502220955863654836975488947339962755723115149654772750648126835288900370286684432683784099148477309303050218990267046009826921501364925708654998155563980804528745778605111206559277604766042774960303005638172365971161929166018518192310498665857956645776433712849438236185900760055668864313414806533351739742264554533728044959190472890877890275770653239333809965816598849989136018926912592734860621641296702393722626160142312693906834756591079775327235783146349984406190137541606322422759975585127946468957327694927516457747304794685247599667881875724040785622955940787515146871251813653680079261382396661838583044095416313515815902729821790754983375433689430190748774165707596372916902827483596104095910465991574218754690704099797470302448102663469264542682294477133449104914299359321482154214092641425985354887185870652283925958901386408601791735933644980536544682492888755779874025305964045704205365245682813948224293928843443312812570190538524801361228023320841115442421192379431063287079600145482179255284045282172170228826510799395451788750084301369810541946382926848815947302933475191074908153379510543376219294858673629945693057622291790630140019443367693955606274551829211960470471901270213918323931615324307146454070045490833016373475519401316425961839985532095257920077613699423261759899729434187421361023212633108266252981873456655431887428202755786800783454347210122322702907156295081156725867532516634632284405111929229001162200689634521461444961851007326676215904010190630644325788456934273487013258854961689274766303859260384375399922056228609520156805862278177092404347085703988437550620459751888195944339216451367210400786722400886309349913829698997709937690877403198568645538348095084242106555550873479547040187402898955484774093590406790894840356050558840580505193416413421319609023646069712383825155914934460351570120119485020083626470306239287356379939690444849694415672774308728432220078314498182102138641047834284348971809449897691682540483409855084930382834211019502159597766293394343291383794385047652474360837984481077608900147606773449687922371176635461696994675457709615689860611766621029217039193430126007239390895428961001781994079426581088870003688988088473334497966210918699241545854702958520298886727490609042654201837153396397842293814198327477557896185417703307241447523801955211208399823457929723950121906873897795752027695970486192806070010111004937305382648644683514416800945095903022317195480934806432337643801174310452378322122511051628308705121610279550749091272924829727285148677981814597806627073244343005498340291528655795172561416753596033442691865437559993094540390981252820557120702044633162454505086929322556435885545483460294603344955908155955776905997820512178334269050023418187442831914042611179496766645353861532083068403911124095670661922238555174493431335460374468872570581042330021194345980252754282494855509078535940036928106445938368894055269946138514233258453533488468247930320473675581695728770574144968869772442306072768671762758427698882595142398934980748256495329083843765004051849826504257839488572111699098018434139329093813222123283122782252441429724618101506032435927923592993274568537484828302357842369053277233711234910017260984434525272852780638329918689014962696365211836928764496064571014042890048672187747092799259112941317557803003658614424300694828916555078173888696814468030061422447513487567613038441806321615262042049529781390597490506108335652469064703801169296996217345509735500131460617565770808381695702108940005582313033960349524673569679266696435997005572983986468594677306497864696392685899779151496562631309544086986992143589416645118189156967842026975128194592098847772960729272628638802889496972334900304073126310814489389542817310382322767168449787722837285117457197972431213682079610192123439645446711890839914465478333662323992768285475301687033346112577772393703108361226976286351208050108626741300048345148576831857451177356913951494124654444627342182774299661962133595782809516784674834753993351675910269589096714651639686800207896670540100897054466679899689681508565525533225833147538065956910570846876154901929471856481342339687998438869906886140304198868066972925736425300723299338797290556882809429591259678160869903673908730235633809671340913733955252233513110554093386327309739618319342670567815789686760630779698148044631057564568760533160723072783775265958483684110547202952397216921711691335026700238266344703897380477428244937646864463393079766501119804625092100245106084458164823067920103952958832925999220940942030751080545630258719387882400883645680533360139259109168422414689935632600481725402159880861250845435276793499689401329214150499069527381488990936735539946954761758220100349691224012105634194701004305756952340232636696030345209720519899866873784303970075880008472063335257041955438757309277855590312781005035734815925247868516632792863824572467041670004357060688385260002569015333565015726445657152934171809767195525990311872804181896088106289288305959067484567838833808206985311334111787280653633020626751731257922577301927914188647727831046501679062408126877029402378460188200817398601582785276447186418679792022337679951907426829754183511708513160085084584451979900882535502461982787528643165817114687527598583576641438050518387033977063600571110952949809485374559083238555267529196997653954526054449861296287268899120057294872566548120751953804870514032177288680863201268309106723498957344152887281566540343012879287186924560284876489627625285578137914720568129433940750835986017572039734119535133085378466647262432174608128782781864491384915405841977624935900995722487137022520138968837909721602623927787259429749415251080198954932893529039391090894633208971921787001777104379761206658464468349472324640352278419791734162271790849272393568463908555597588557270215726339714861810685560892065813744094838726963981833114823794483146985513253721750664942141880251980161137490712593574136099092944952791419387972274860262069119449554372589050233131563711458312921042797024102062206162497499533421062036873159007325008251551827073688905069708508710681263003146402346779413343865889699476294406395806783322156464104715718190401737358913584222751158305788570802885207257865213373264120834081255126070899586360600682392075359411235674064456745578232924331247613107209405775802605032224170589661165500329911530880055416465879167269130853576716509509183376842015669092880536350845182488240737813498804035478556522699809375981490622085644649809250069034899613821291895346782715351646492295773001540292112685780564171680004455081038673239472142713587837005948198298565053439408642089687445273632577104315512400167130538847215668262374456970030602979785918058418401795311492108369802278079317044452228329501745880590624723628858280168544715295935251772176771931177166643224588799387307060547580458484539864580355715158548429158192679835294411733844463316183928824384357157200457894513906684203735617715222169423439935936858368636306726193286241928330508885072809336217059263848032942126532491762819947456190036746026345201261191067385548075181271624655507647745453713215311843392727389273517965995780847419658723431324246515019256631335321011816837108849749311446031240827453824002586994160281196899240730146196695810044253297947412756261636073592697748362443291324381521731720447903654421064275596430273689805011916377000353814351637352572315041718015288980765584657486153514144019271086631328267253595253390336780496959668323946513928108964837703746578905339598612830758716633724184735540279303150172027454660125029747229144531457543065743268088771879725873167057330698632469800897280126290400109958172991886515530409363232667138914142315383526852063052686684461838977536855867678515624041779992117444872147322944456827708249480107767255018129665248986449126037491618781235948067144679940899215793918453872330816787140914210898487123010751830792260758402162008755622219190844547234671980803038772031174043308718532142914680161026031069218827311676625037804073015575760583549551705833022457166102648855325583014469395774621672134527578284221257732491065175916345629750626088146175462351141882446487370086415964580890729244088918291237523853030027451382907555660456012826899841334305360648727278939839991369775525517834349598316116130513828006163393323478011228446064707521820905650737355436155014096612753051808783570440092429371700525409502745392375801796830350566844124461956738161405190508781130994459726819956379610452999155513011345159934211467862387287896775660013868620945638774840035394539496697089191605986278166949567432683243145274480013781238145945924972440411648146619701937742511253970632215479155101489550710265768168096986800730593451072549586525919514657308922086795494141819756324071920026699275815413825553534356045604367668000142714199340408994642934983653688731326909687762499140273171737238704711321948580077238436094375797112325333649831508662188089463266315179008457926392827832080803365197974064225545308207164148947839871186290969880041639008367257200554282538573814094030257431185989683051545099196734303828067074516929265509270342651528441731415306808799064182107986813346873754021416955156744369119238043233568098133881632435081016035468035117766535410050009759038577921886064364552593734273944892895336004425248550228794584425473406709819566003621268679451212965667313625341800668293477278283321820994545965392335654997665369623459108099639268646582411889886950493936596765443446982780563798349348822230248572292335677142119669519315260312453938551041704170861639477590350870043548135862926239594781882587065580085439740462876072132894236665013942207186912029649156089260121906060522906864005481012807384291195760165679025268313234909101858627719211591241650187507101611997224814970488060153388776872665091606312097939023056927798431004454437898746567667299863921915371058811073806811225002487621869003265280568996444915949337496492820520347826081565679894776741932016864116740403048568435673526306241620012677029125422870295688909517951768329083470549928947097915383833238647636183029065258602418066052703953608275652553419332223651149548133092716070454513091713762360160301573110329039793576861967049328422905931851518445479302531191560176171437800923412490299998144651315110270494447323761125986977902105229197297797100140278241887664424799725511975390373113052683073263081600238004650439412776331887411510546091747080453087053983098026481991653320951569849891029863648686201467430963493801845496565991990807326696086919348204365626629612240337597668556043526519492538879687306540887875731581412140520568753908392288708958539346095885389727222506690055851456220807547762750390978131816830630013689193363122230840225146022550370233804215525681099841982936784365220309362600214217410761261950986558670799048652106108182074167739172571618169185967333946020987255123445480578402975320800389090102959483653448986890294669057907851070613917393768787346123780210948805892713590924547689845403424487045231946812238584282064075095838601191855760902762930456790764764076726694707849902531768910092146093789612569257789709702607073150201204154145815424797916760619191496005802980346115219757284116155661967479234619584423910737872617138786037152618930510130922736908375072104863727201179380921646984508500889798508343123346298759511400682134099895433730647762685405446564004651050960154306583565133549736202030680705706802375805939882902525239350188610665377031732126158624482729468385319352890540041000696179679320640953999576310536860462779067241362611240122110784122552016130146623581194780849045008152263697960301961985624752020216184145354284983979829598482188052916789039449838997301534830061142375645691496543270844124444214382961105694601918934957812095191897106872811330447577769719511410865087357327622120733088341295408491758543093458760473648451622457697228876012494936660691732587352887263607434308014142633594755298869750625095461481367377393160969100995421031328620972391893910526168556254631569882088457245004359228255011018670939441963387362147350465215336558711916086007491799006957268272842952141014458994279940065142414044493482112402723161242120230419067773748607557995201411871572873081262145491442140351810556985027598327810018612286686990890781635231442597892956519636819167880501471570832435300301481675405792173271377431101833720245571711139227961855505957273194766819572841061749353211275700627487310242384266214339896069864379662543368003438256287012401153066301496368850547795717235788263919925874206342158278026228111404777198887650954061033464496831785912760472113514360464970886115129721711182888356518435123331866106774455832229816465893702161675046022874622006759655717354342552592644059580370790823503651497396951968397675704908562704272652957363413881239288646474037053346653502398852326177659928564257780270258605358475134054965060196631802126426530925250539291764914961641998070209245890149974708653985091961277102066819315555489522777598115119267975255333619631423520492032157839574392817852888818925743720299107835667993759975859133936167734495571882176517966200026485639259772481823263881599651117729408715684263288776136489458333619360921612473610041018620057420470390159569371435470331212222142843458971103777179862719129217105758132992524574116568266678358550016267995140146735149155429181551171858877841228917977661672349790729993270677407217200102290040696136790454567878770374501958940710342597891480207320463656052221567314260137110952252312676573773490329768885517601533997312507402835572899197387356189346673361501449390837973948884323390156906645160845603944111588821497106191807376095741175672099463660387961614479736259241363727298538498246710291794839856003375796981713197032785988308069577133064920345024573973804675100567939807822838653814376715507725858684773223461211148096571161369437626892889660178834449033708553909370259799620580543320874331001168662864256460490009779617065618170292186591132328208548907590644904864969837968827994581085621770435929673526297690411583175767202375012159179379306942857050967257404911972850729178712560314649931880864869860192589720873808859658764259691358048653115002260896242492575837153612872287478351300909145974467786906049052086894580253284717786322500589277927624191064713976381719313771044543074358326518189087215056968920871299157347443530296095427685993512197465280912142327639797068164043940820003301316998911950407194469859624776635932658435535419153390256696511156929716587773751559854964356661830758953789752789637888313501470410589328058501066353998811652695775601007056852230453286129398061006707303091200105338088144220132919878831123769909444887992065297497945443120488189055094596605583166337720430953174557937915371165031146126487535221013542688878371297550672780945875915257394322811124543493115771580795006423339719431041872023547223552345373752737540203007867486029438857976348571401496628028814596611507777283198375891175519197355088190354084302617846912198461009110037688125989736512745767915473080868632441055363786075699411641752786299028119741978691406689267577593804653321377329067221503736063086649907890144446908386157032443685163388539210814597362600675557978049563443825406246844035673897845087168713134655050111636917577988037390924738636864092033132801590557465956814985649880983262520267703069360404100614790022578931970633445880312257567782511038005249880654809165898789993471051487912115211302021987105965329699764559642452446248810072575699710747168329121314755869917194288722036502827798127826730803938643645884287208896185537010103724580335145704687066506651105733298822020645954408387546314663604440756153326954897254357280948542163225032885383128073775828757275730569490563258353600292026393705394893938877026740013764414277472135645656595763256254764637940348602091168354219520262794756713690246505802985443066778954963178356507333492701596029193318491764691324638754764381589678668654785831182292353942385044212179770968792399591942782466973922130845655977062533872256059687757672188314579263504081523188042485685788218436121600224985529987618021186512629174255275252020814558383928617739928682606470410963201958869751196044213031247510650108806414110751299926375724663693708724459165310444632848036219021825978869349122837610915210443822586370932309917722649918511163324106136411349075412167407625045856497988912706391061707011689132369565738441244779021083499705367638050517317234992677553913551121944016091085883748919568771947258788775958374264249333024990992758930850144990004274285052670037826223875841325169312368520874736264383808177573537764258183184904442839357719516570679944401133625583746268691492790625961677219501065540782022921853867710664185714330982670628324540023636413556424030236072001514667311623393260219327444283757926736192577899858437901889078101622108220050139433828847974776402297126635109989245457414411332236147500916753671420779150166773420295460571227944257886652420562981835733878327704022448779414213598971835425101724995038110738988446984856302791890128335730557428720303280575419043912834221864829464362369097619539391032455223920193488694763546614431074805553271879389918508059195585379210719433956526171397219277850658576230277888814319832394206263282812263005863356954102891948875938241538393651374489439910113658269055912388380147655807034830772744117569527694734762015199093856435469334897205874328423555293517822882773754422704605159456999591986862483675400748651898017386112501250620223041086050377004701381101528607570963791943546651974594659091982527061371494691913652211244891299018714844202515820765458481984580029023740954062520815260431545829550129160876732803550771052271165472424772289192149503109551766196408445928827407762919143841234770234036781374845687819022172571068712975683523894168444101316248419501404933732490964798950787712363562925929856968682261886952494273397399240364588675486152448723489753551667520216558180057075458319049258849636077027780434965473549125518621493857177510049029130189803688849802169773980407554720793519862677546075656113995095167226938483539984178243678902423281244611058073620901004210630281299293020133864508776181124603907654657965148033107809349901657106117272966292013468491278356479677828191110687332685647517443159166438080677420510785661796774267334699854443737875281308209897916611687850790730035269950864916602171865152889158508939759330603395430212908906401550169325678983979562729004717414830212880033447565131107362356299614061903869160703792671935667141232957053556685207149345681896434816966079003109710394175227059474412696555889310148592791364671772547641404176417587350083587651440186361284156208353326957490237786276405774743069360201823742990316822783502108082122644310764641560897122299318957911378732895216211007987571019390894127821620440279083465420222086073220902661315942346718748091646506459868485091164400424347946045356810776538709920425209601225439750626507981061337641538391695260305577178223478733076328657867657303699269073363868613750093449310294114482493109751658555834242248123050725239098509651316637895631229044294258877254505383783970440698965427563759577129390570507165631446265235717274594767732148275025125650499176542057283984931156441943671649756976696857054097221533257849674914449675237594740095529153447834660252975544582182414602800290239919683587310373460851738004186203668386803731018968535441649849339122867107111213642548257286001557031705785749489822387356423381215290200413092003098094393864755850614046838383997052589299965332122962389004767556782694114856844141175409040182897455748156709719488762044958381602526857427331162475203818643466889817345148312431144000195547291106211564079934028345086853169202463968941194730664959912138615019441219126958073711553122228246469689315949132043280779371655664366891242312606358657533106407506048810844650872955679918951347640489368057260805565075475178428204047821728909340878329688292055575095763824534919880308975457716321485550949065727749020124515900116347993694322021994791728330164811339913018095641550891100058304947598919824043565769571296841037919958223006439394588167638433186358125423429413346979547251459863147571330928889004693234808168342507170080314888630409671422346528742195321488515327275910309973351319162878954866662367060890190157973367032259107163329117693907239877448954356768186789329502427218526841289351711768524077138830633082598164009006537091295686399765048031798468665759831704101751738744025067171686210038432677139638494201487169061956272572830137607287948599826792420568267429455066895868500278938049000213882343667005463287248845340745492898275921422154010322738124373349789378804807897658402674313217066657295133506454679428845529454005420973958989964716782061456057380940419658025616393034060542610659937111404315412442970155430401640435455730683900398352347689801868684468652175727357516993261375518987026940884802967269344280969894731525370076557105715785750779563691500461259158533231819793846676929256218601367879417725897276960671774650015006079648453395705544004672462013801769128104832426284396785005992100975300744084189472832347006331763148813036190751564158503498839537972722248832967983311951263138342145773205407752825063203284909196096607805934396198369014532727102245964430448816676030718674806507180129921477938432551881159544108551284121377162419409007156262767432323625691271457616562849998256347508728035473909178926356505505571630062553182601270491079511619710008137253321600214689412867323004295737678302839265777057819210634627651451055494117432367169098125777714152639282618626225879252600767975225011428424937317016883828684424608651552935264263367364628739681980055657829376302927873209553699035269676138434132536809912787569543841703202892841401580746894475357260352971504542638134380625872147403081756594782822056584169786978310739959379684181445944581801025736507959900392734589292450130716973670746086950482614889125068494334419572203796853289445518691643982605245697885461844699590526766650969286906024288665863227125687454916466193683327622432934118236554645869338168489222232965547350779436781582942254769043492934262072418486948569203172915868219451498682817498712552630242837647017908336880953897943795477619924986807620810036334178680215786981759912063661508824860115217239793516128935697339998665417510901476181209679557386751823478768833434707065714605322053776918980216362412637517260691512078994322697260075756633043851198869476418295421540953597129389387306518376589875471125886550341693626971730766181853510748733467356377813780357285103274752940906626602390101668858684321955545212487332552922210458526910556892970794217644413095106650293376310657392888062487352335142200516508325910753444898450566305144218182425042280871823957263195282237454449296836543681860156318250949046951252301091709767288860362211002673341133467537797252663047713945077827600392785525844572317658842909383800290183712810122112264122416182260341827424847593333124567113179113294352154485489741542457296995568235375402818919777407766070869396573053475534591178352151119063755294439385782033705734262319193671447991819087281181086219564779645850955866882017195950223908591429108669449048816408841775047582814135544304597387752462415474711764370638353696978272814027252140068632225368899044476565691509898456998142127535230597616128915769049348236347835194892666005152924532839501026748701464897981417489319911687147205631452694297155183149927054229438634584139527812462162198422482302775274937417388142318743924023558536360016486335537292054026486328134897484407124358321708492632348047806437009429209075766645803264263815074378980380522443780837352634582717009453214982720073667226952104599925388462042777453786243453261582997614930452979021532528831526875920615419595156959766230595287342158779898852211240665087372977914635815498424871936001155410211065529304419108909111396316312383770678129480535875535658366561063009147909358933403545803556459728201254088270824352959982616408657450942314182832100050571911853119170161209619754526277448840604591708614718559460695040069130941916235401421266907959803851099976882930790480498889313219186512674529791994336537293416855096442135961390047914200738000180007353952268246392808082401995678109602812703786937821531088079360451111662921235752902332773556870776855732503440537843502724629129603772847148235150132456463317957214550747251334440490218646131787532240344702936877353659289562403155027712855788454999971710439768727709113152267870463132350295459019280456724448383082747106097386440326640353269631622154401149758432299268234605233758632311329715394727104626714047685665180189388057837470398205332704967398161590054152082010000826999372623678545414524850235859945973846412610044591377517321078214574690566461560605723494893944080281676824928082671043927101884722686589651715537808034648396959525055554773244269588374777976805403753447542889257085633443671863658466964886152976816422689930429348181181681247696166674632537724112106064716858061209976914949424792061541146728154003108452375715200305239725133475362400296124571948445804674152204341551471149444527709582564040133815656608488008364994840251216580935996943305666960693576303190647075217474216796195138332367389294603903664916860334302535680207802511151092601333149899712194667427606618768596776281544014466715284769112182811182752913967438272764091552099030745106063911667368327912982617483154647694363093256344885131362890684456896005929803738128528461760201992137641096588785691462060942955586700207746435319817830754112922165121917819768391448471965036467977747645855102773787167850273009699047925932596346021946079108538326999395419402478726462023399922655742568323651550948367575064006145862860103129026833635897904210805731132411524162114480034004310390534975763816772951495970898407392199673747348964105388400503200723275927775477809554761045295818858243654384218656459498170806935357819289261441374637651448603287907628215632591777004685729243853588116037854417022125429856927857862850986868491017890736732426306262306366821240987593986018945284374669160230327328746627955602201618825819014079382191112239326697646717123204753525495495898098292408467594978939339917822981200287920767243038242494381953610327423572375427238097160777993388007793989550399036037438581204250784040692873015125565892478346076708823125247516894917064912546248193438165709773330781044622035581809805147009048691005948967907559249663631054538857063062634146776508087565463542181743731869737830625810216832618091850815436597161922130517357346347650154504473366535695369414065857360613760724977543457457109212021310156171782256712874452459855723513891506565451213643915717028069326255398770303721324840504517515720678578068781829395183584334700419113058108575639547723708236774133601700076527513214273042141584745674087679716358090067452774821384074324687938874782054660337077449429687692410770869827590052965384825452504200824334349452791094883556376244559421264300871260026158252349561921017075141383567748953226769670043846249012743180291984997792132414988461917703315437131611491961478309165719322080433632807949734612832422827015354076866644401338284046008398620612371426472203730201847053332023675524138786335819335838707162034971406149951323084330144040695755768144089386817673865708415497983680732454925712274191361712071243699600819687323017878352035183132517485825661800360591782424564294919611452578113484836839575299465890452491481128043073203841748653345846393104646389399408427319613742744995877129427309297018609445817356052057178893150970957321091825168101949714555721370454352226130694956088003550027884873326390929997730887337179019068135172876668327946893106979416567495595555076134602429996248885294152303932360120326759027909895888414540536769537544690573276705046459175080433263931682040398105819520149881999925264257026471727019895102236914388296323327965251918451943125160064744131220492209752507278495561474817068169447814127698999916873956089161815899088479725611061217136989148202457815791778704762406417266944845697780679625377072342855260890498909564211020194614246556261314646772871089477438800165607974714835690246495990735662850636830610197568870481349039690490607234013110689601430822042310925326828931695235844639381672607425544199453223131011625401470123531372184396900497083753929108173447663463286033706885857485046719934680920035521088789660670998424491411085776528172912095948975411428665038342357853237606068383089809567771443411853706081921631181992097683253751234463657427398777621272002050541055205168591448462226960282888525383511025654309841929762699752991077345964558040841161045547238967240713771123634513415340619153510889503207316158819160945935517040870655428053409656859447889170451601115627432044259901179404621212614002193812409338530271536418352417095033249153905680931923798359631404020774546392021077960597219509057597119901794409202283646097637375806042043153435188243309221786527822574086716234637179680866400616260675291617213228315623322913862528198708052900274337959927575337511691404490937850318086033385024337543955390788956551965040702712736205194040272020220435246391280039402811720953839280020812121128314804517563107385736856934358881780046225925565429127718109075544203876431434703358695600171705315298394548864966677576421489058832293668995161925641746055788589352972481476246158243026866013289884738652514994140934637673478261803721921675792642341915407809268655144638459377155403664079355296430105686761305068283480721902481634051723701700989276041787415723247833340691819587498144545761936911285647532396432595852375877461401668284967097926360513851970585637263602742709641617882433517580277529461297240845224046487091073372029165148954355932542374278084656077908986797629035575580548823680942988980668890786978379351199575934802033680673647181866575420864295195639946999538977106050163838086290025131056271555730182800547522076473343804725379447291947528656019392389126085039600512317205605307058878894607357055216840615506275313006084731228026937524078183201472534610466527989117826695830431170699763626380322047356095600681254894581685000937465794793098483392024050409303461896231833807093866991481375908800435230853693444901061539571080263487382326244468698559972075356637814010967055969360966529537614019804127208223065154992840166702340889282890587239330396826311933820274003290935859524933908548822507163137237532095663175901169828771704403359527078517593612169832411954654952616929434389718741186149712088633860175063486505065891012229398105892134709496451082699586064892759912560611806395306278531660817004172862441654757300477858707127568985844089578838415288883314338311935659222283850124175683805941972908179129762813191755735895716633445099270079586672134439414578025719587323446664164729324555532891107950269961868157929301507464674067722175643225406677104899304080373672732774711247023228580520235927129395387256818071305041799632348149270777781046778560248763969988968115529807770575518788647813778393133013974473877861084126013313539444218718061791650646626853051058157854692278869395286239173381511937673161323080996901291677052406073413475032931794392768588707336679626197143400787469606498049164008095685365139299071306506526893971785836009924883003752067528062571009961599564773094971455568783740481807387438773929765490073795996964205719269201073550041948108846315071782615264655204979560810317188500804023358272070160626665443050100248584882615001299886927714486724328046983958769017495006667257611202386228308661297624378728403628643300523389617841992060220950076308371209799282593236320601214216164014469905997855721927683317849248483644105269819363304514435629803717454035809193143225554864777866733607384229640433291467711992265637680308370305680368236982295103983234318472692140878108975315581797447147113476697481927215417085045268989928069273856140897207443242908341408678847058613226707985084543617960487822240008269431176523775611342469929425448741731514551214611773002760243236561141086621985472979351738084760015336515596687707722433046223378774862738695972130009603983267871691664279554727778305857161870471679318641373258366392733617948126846301078062946674478732584961376213546474228293234780312202345296174065541194857786597052761335577491798674528759593690976393198414811536616494197266429067235713900790698758880068420090564116519549091830959117021054786110481929742662428615499508282931138558940325085640485598342167612521833498725608309259140541709060719833223009821997531868362709765567200137056741952553332321474125321690628962598003414261100311596756195013951799030678188719669123490253654777359224292107244551656850944515106162781769406392177602027261746307269879657346781944519601102838903063255660416871746319129348269627970914502971074325823190563104556571338559108396204299732553055737779882342982679527079307716592484887026409192317991530268254974449808012943089921661187844985590383016753969246574770395307487903552721673666793110114938353983847496773184802446379220305074951194655045367972539379580810088890178199105258769539498786705457896835567330123337188571284724921410857680673767210194710592593892490247927240826202260786025828903036231514755925605022651163650546535348379809152899680287128679952565434000040698304573827435963093371407692264990159528521583968640096865856441192970032400146403437904678156391908146589480587924151137035780164513125060116391709548302677043141058851262388364489418886072897895281602894887842129847519760952321989428896843220106951507857834212426382235059181834832161112334551691165833706038739105911842949344971571789100430098725999708129206592888879426672929361873823987538847669976470888394635154640825052314600643311874795351695478103790974159176032130717837060087513066151624272923413477298330971385456485882259062273995435039960903441461498494238443565202562298667689312659854694342011571996471984084870393031843991422455053090035850386558609369732029676158152307290651324207610716153165817394631863259094763831547120356077756584406089454814977040249774013010263298743157221534869273153176146761585634764528976256191282593599184034142947392895199448274743942688539941337073321412541831373052676863055733880353681445484131375875712530722928962655466454768098481800104376328176740156293947558715134392223979513217063630199081784054544965964942638689800986549854872123789450300542467100335157264281786945652305079018897388874624445458039491393593520873227482886592327503638385098252956793962168364564875522687465139180639831469389358361469144610854480616153702675339845138688502896420593837827305118666931248101407501354305985681951993117403853097957141048131137640895012308146167883700614194442533621480452458631199469431247203000468336698311579389697390176746670466637307156149277273332633668249044033596128772084051755648719177726574826595963828009174406336932107243679316835889426727976617780630404912999072129364580358816132899268628155201163579071406951368510756255145839982871947488342954975663672008223601057459075357996259031265194852248656935136336588467899966963388090617317625600741234440473345615579828875570356202306372301493042066211925159495660735145592918684849456396159216373423810467767170916207966089408509122776035452360058818481682821314691029640403665773743163797939313779519691103217631513954829720671469927150347535678232440301851859924711071095215766129767330204479834189140710297549532829203576149170382486126718117772478788542024609092487352838103800483591409253386670769465906055415491748936471260974342726529425568555827029281598336853037348412292151204967335611412228253887728991879750648463041162890657027087997730970844393514096109474258333819115782941586612775153320520979141328862779665503257312926743188939717276750102071296357914297780656134524034062935780140426604735217430564912455811540387258437097498011575467213445465920137955911081389971499112959813620288095617001374336725114066314571741382364190108676748009636959072636986744552560112391916815068954741529478770611001734178912648466228680672605773994505415311031089435541348942828639198326258620039194179061299930921255323173537899877068970630990902405870209327995458402852171703869972212515924992035116991049017489904702720952041330798024547504550734641407828812214316193964266976755854953829440432908027488231616661389262753480948937136494528111038455565049108405837038445919271215366713302319214172600673171582791145386762038759288824931288815024404847154823076896887159614601354024185794493664819581611764617103369104435203565120937852274566437962092460961600052723033981314937032157779845719857572463051833187881257402371237876103028777710789293756258542688003151069980542306754775697931912784083501644079532899479145785292303421109548361114162865831424414065456479471655287679567051252448451847281568649675632857888693074822524020167030014726947677527621791860427389269426052095006455021239108743223004724666812419287955439980972658653429264341169485840264893216493075282493819551124787858791905025440859213992630770939078496054425785770652261314732673766629614477311100641604273871222417898340318477314792994723083162672651612326660072478601810273017379949155644997473502855877567890050253956109588274387971547039886298941228202694398259498720623660090865907490053430849926160754716645141959865123794986289461012676552963315522123252087940426521298849332557122231171152442711316759553484063102516178806835159058203102548917029201104259517638125582537401395353662594270121301724068222694701518005953317739748828952782480610857379590050211369363817122515062766852227700557316928533633841007420371895748300254398868630152395612346192821048061553126431615298302656774922428536364300188911108739968181094727122845408247135686898558485341578449287894327611271996066533067441096259243638289358430714667394915205445888980055176745149561092084402561527599692954212922790100854434528963157941387498543923637359412079303103295719604501855008879829998978715237543177553177413240966583045675711508338393727956704507929842440383226930085923380021209997027087789430525773549836226797231567890904686626830661824313318064912463947382485939364795632128575076730836450078970301244091304371320709950727355637954197247740621816385144415306715914221260996352674833392753208319951782228545006441048080055948093033831735132562184979102554609415708052574165794694615225401996130738973284491111109651891806117926875186637120310507240536681256025715413207830235958669680575603966344421592435601392203931850131442502137934613484918468925567919890894435479125658514936171672529479881950925942811588364956533575932095621816223225326698761656394875521029110705208800481628190054727518314942191153805978586970383043905975804073718746327279402519743508568572123336983943023046877763069386100255306990146853175418806790563763370031591839329054629718289565667132485026864236244272334209206679127138039077803701427185177794004522901919044022664159462103501943791973317942096869718492479698176590317039465332107399704235595573778687094071744550201904600062866828805732387465360701110314200011940518370253648180474407347463087696033397346769929910634964042374325680096570214807860835486569534612488033148222400858646969113243911982099795510025587568650098455786058141869345867743319800997328590075237858236648235421510111889954502145267194174148952979466452628457171031704747194910775430768818277976975871904111685118104280875566669990569293486874843364980384807932695758048556189045948664860950187535873245959406383326165391471583487981116062401866524086558448247944037916819875088748769951132503578765486396049497547690840431264160665998482891799402213160529469306925483271135393675408398567594290532172354739517694421734426699506699357871736992703237486414901683478452465944978001961312908508416405667350962558649861091152195847038148990044981804904341069733686363010981827912385247123724386964897787010405029149844736896900564288604513035267095632005404597418888432550642104330837522258694545890384848168828124679188790862156639282853924131269522990809823624895750553814556225126471076167477746067866103788060477285170073961226416636703385541745442825332883738165614943007181301342263388965478211504775794252089774188292042435986485450923308867972989858748247735858166172262028048609526174963109655553518071707778659499334160048470050202124152771012767054280503629016582855647252130446661998099497504431939388482078256998159861400480243056956320377306584167431868594880669277394366697539702083118912070026397423801398546916018073581856541861268292099950721377812282965043748972463279242339207926946873441476941714064371910921703934783583513169226139678764595831589939615695361150945763374297385064644148386122446088962834603048257200113037356053562572291250188533531509240770107744002568520182927785202663393578171934847185973963131301939478024048601981637053859044077387972042448093192796133597548731870048850412255692115006772268320755491935144967150449311799525550734601788350797818650585076557419395076703154539814251431864626930043314611400600239377640973828557745069165369373576023158464774773174364499737260435315013358079732210766912901553894725169386243843156204187529594404404652725197288412654816340651364588857558327234504522396570277085719141479147604007432492208436866163463979508319640463771872318858596456901176616045074797786277206464940472565895581951575778746755650352758516207736405190581670172809436428935510579351771573539281186868993457322499321658706773310057259074557695976353557344181833006200936314772588089214255092536123147086353096408296600040854636203108626043392944178469173190970145476179040274185880693672158031919992552908838619898395795408226323014282304332461416459076310931417952473540455272457649518534387854571074330699729322530598649677726960802097563591831359206070997294830198849286762457843434008671392113004877436557222521277544961052783105462918776906033409560157050564489937661635745643313637417567384691058780032273738454634021718751117562810912412320674905627833108813346070072994758061556944260934964571393136382280022784454361846358499168013015764068506876086779117338444317771239944859890517163486278592866860857752777765964842281141575418830261744799176190818664720118989263094443596774901140140541979153432926942508783970537226108176421050865279824648932535108146694177396718433112375837647278132819199605120026584208023764594679125898084223319066980946056473787342435006402031719223527008334943409201731543155474871179814361657516406917199499326412801825508621297346083430252151988270465372166544788964207233910541248145704070437903864566516207560179761597619748188018703636662662254029841670728660745095243779499187726342274231617560791626159840280472326474106989943351828084567291735091541391951586731795175468171683004982615906695489592750474315151295610880833523219144411393984644490951919351061482999430796157628119220980494010597303178722600198590982261585376699367112942717776187873879482226492545349063931253985157023100116771986280276682343263057890580970645178321993543894174562127206363267028312783783433550446499142630285040822861690490891081296939439236954585951705654175074010418562016228109696335367459042612547325057807069874593875802376359560483558152423500230271107123945801420353879092260410855050943952665611620379819755261507278813049083974202437654300102034043640348848095005479846222186563391594885307205576632569318776065289444914034881513609662445679667183333940043443522091862826831120167776604013462653588566555906466100438073454746783883287577888131207391323063649818629224923504388009136338008503729478276642970175270225324117825419714185465670340542441908980113699501510241356088320611216064913019990422841647758008800763436715590553224935618710711446329687364522790904327749245488582835854319432791640507735244609047826324879525597497103050884253840813129971368127531158117602609798022595069597364376196573200844809135491072419632930386474348523710042263006460550454819828052115178694028607031221836823684254645919061277495922564343106273743073720736371706050495229920225766015922944795383686604825332468678688346866553138106423706702440553295800320007373679757159105226674306046988365399564225430270565168907519357184996909034579025962874761630275787975602240499591164594616648884169980574610387454908522710263759859967236761119313964750950952762862845354221561072001382669075148419702171910193709864479728953891193630806940956792369683663399421543404265894972106911168226705404826683709440370198942542772882203598881696994353082948529021998429554041534452136203858616282743995654723030987615667024587007656923665328775625350049710101288333717593656172976094980711397028594344470551397600009598567645513516173014195887913628684547350672172422469693139943383109163995329435193004107456047840857787040585721124222807491347758830348633262076922256616464748255279433761935169240190074739522636238624424730453528953698399007634119460149896476764793558498807962784449651264502574285123726544191052010475892678305457169345881242520821321990553684743989837016725240063507305682528470219609104883749958504156705462645424929402468170487675301387884701616585852855314744107300621512991388913768645377042166887923192133145770973338208122495756362684488530868742754781072116332205711023060087535988543892808527373446823185590977223510404097210248279255557031650804696523978301779773237342818784269247495532766226521112869791064197231992431127794891371130706483566403688870023970924917140944522142877389650900730856722782400771338849422862304761103779015876809761370160621652102356946775860781617753432818327327257803342938256312525127295852448655508881777573880897087181680099770921092815034912244366810084679034934952571675813436834822610988986997403465313047095972218679869607538813398971537770985149669986375759763684098424293076386188160044452888965214478396788854410455115758936427649606942972391663136582886754320763673368216769743483215386161698576895746371628170076475891813227570504199428002411767665067841671949858131146089502010512138281879010349624107085121118329532881152294401474004286360405869487540995233612696349734854409033538040813742165967133756459995759102212032416692615966146202870931270099400215331936166126801352912899845595208401923232792754227063136987874893768130163962890846392721313553300362608977227382189883760693087485221351616307783017640476346984067542631346084304666082681425230688491908599855015435364241823708663115578676200712767059618507915688118305612834952354713574174206090112837638060953331853714488427608017470527324040508913448987740945456109355142763321953540307244254361601866972596533439919943661570776590288059512071767620503342397309878191347399972957165879426620456512888196590732937185289743689722249086353983038031362612414834991115131284036225613114794673349100982830504748941982722606633653796126414767598194080998279175695259120876879630002373544139366883994525059928594274855375113725997653146381783931418154682887190954784556254681020926865379982001303125794701051868096484774126822793880334892298595776062975821287898948254445319330962206124429466603153866025903796432403211354238316578581688587478709443510140722456043200699960843116960854060626963981909526936883870092924300212330457070682777606392175437160971474592085475941993600264417123317425545130696310742117364991267932349555649372906206426073592619784149440675526294683375421024580348627542846652607306244458826561583071345603978965002113705831426729868138349645581481956007369271263601535015673217216432897468685937976923726689956291860961729133257419994898531004412404877057639453596994471113443262910028265789906812060128006660555228499775957323366907983393371744092459682408414366442414833754137223220271555107478840120493205838247991838213711247909930213802631062893616624752097448788624045213685401379941917295723765414217556083026781558369912060251662987491081041387540948162080787396271047436414777354434437825666422523441580057699958514396535167261185716695623828709952865769557056334295182265673669018774250045909212932428411597083782743159454760288274888795400552916167697773878797663862396420247253147253482170228230443110999163878849508800802391686527415822072428708842181334496547537075439502430681958282438410536977951199350227856459565269671561596652173557544307921482879432543703227865042471942850011879091165665322401264469105624074330252382646469769342735511665259105006723288347980441754728898957979368118426393817821348757256486977669123058822209768407792681316126182744782217027807798316735350614649252619406086412466470700589011329601478643169190610322996915325003087748364235459092015211527415835871981507189720102380380541406635143218561611054633264344619910950823779159654725753338908723616944347520137817931472489425233113408231054193178972747609517009447576909690167826168734181484518898781443855339847566097173242773421535052735630675136685492293056701092063058777531576838655265010420762534947215521013953164417913810147735971972539150885493401463369635883653548207474477427130242397272980311039881357172371607317470143973408075135208898593994207198977534139749536687775581949325130821491203754762455649885412434421472173381746942326096359293264521636311168407599966225970651600080231490158298967592109989349075386943174804807937017677116017129268873901818571659740426593648706938846613554211366299020588657803947962987530075507221941116407219431315575731820771645938214701497122651382619589679901271153606940885868330408009398279663693247445029813664906476183471396670526780778576352318159679495730544234736150012676219438090844631663132696030718217967712153187651265736474356605338337383320663548157819278335021809416175001668854371249369319734280228617416445103632654737676132597196805551100991819803765339418768061953918047805253586534276394004609577319999013730580088033346443936449661435230813630965111284917962262083832712278010719026647845868387098684200587742863104761490924015669403288558090539832822058902024502196121192737717895093879963194851205977000335904942434717978380445395707695306587156125244919327208085653906375965409879278329240806638577439509194526263847333046518289416637746518673490750091014106032382422732070424487346820376580378629482592800852705609281339235561885806328816148444301929771843217911318041274733826049777709365269344700819837243970419959627741538350235191779789194641736801432791502408289340110480620111430533610786251828170272918450231181968345161426758971748384943185808679697497834052776382805147518957346199156602932731086295993767067202954711589303505316714524754031033882565124024417593171208565547547476463473823905033883338891343634156904001804675994599167982349834052608002908237297711008630069131896875146863217959429338017779664465555281357855559783404423966052514551119965928677542008702357668456150915532700033169705933544782580450541741167650758142756383964634315829141183407889987236711800174357694006377346878227752754441575141995717967745655508753210249473572269095584467275466996015955491557927040264971753829586247227399333342549708262961021011150950745033637623899818524338039155219807090388681694590036937918421848793995754394171943346220420703115502459851513108517276392647210497925507272561255590737332173166083057253307948981492328400309725869038523486309625876083171754187798306045681361587810309057766805321798005329847784929804954099509569120303979598046534058862483565749240197895032985507702827052197463715082489967781114866320604213292567595089413550667655151100984034008448182006452327831314413066732256046666261055502552256005189717397930007694552349376573277772994866917857072886120768808052815089290005170674645237250848712269938945656479877118285582080180695948827462366445238744063222709865778233006324740672714316871016906481311681144147100825641483584573828717445226174806552417538860203948773747487725687268254829855325572816818741065000218600723496962029310113761642436869193966713709516277717539511319473020302331669083390805142163847027106893347882267980419560311105980355927382779913071990425775137602185191407395110028658714243424016785658549786966183345835776250897560798076778873355025367128269826453211314778140906681062681967778505855011778852572831403299394347535670502682585484434794714500346596952333918640238657337613271837328883569266289650031798136444395342943467279322231510646407761920235560411720931564125764841838567500295043823992945674177380668701209240409660410640658623915778505004091022590992505362758515719384811483215524457781720630267991197186843000513491027021136675871559460860606186390542873242864348273055366309666681423778995181467668459072398461811773311858503285704300501142686615300107850129132554747448540617580696734853090929960867515715170408269413654540287196557029165898245140754918293943402996092147434330830741047030030816190002513340928608848065598866027746343874539381369953797472432075065643425033611860068419749055559778696207111453611417381535578820823637159921220896982279053996806254653662786823208681081292788975370421807273460533936008154857456336143219118012795474283280241765458223331937650519135756167194768661611159526991715091916763527840588077517173533398454167544447461111086490144102395086816625779643972931499221843829652531392085314974333789744861594751340124427004728747204920759775809404447944971220808811398952735177773601025222423378279631702515665032703584324490256204199652292682052087240779190184820078902382674626298270032017538856565727632344550151036220207213233732188857848866829740042487782291694135268152275373583440690539771217619071792170442033608206636613210376790948016951289132575305885410933931084181191389083008056571355660827507005875092473544410759753454152751799232769171559574920737274076262683855651200228016983627576969546842862003579021929699141798585307770649932180681980753254802563702745694485940645053169906908640283643932303933963419684392076451476914017271740498615802719879132393705072093954770827119670874459122775775984269338643572357292696196141817880798074244724973648472350061496591723856456916448562785698788565013771913537149285153973395347845259594930727113213473067472234730248465847412826007328159165842166552356133806968687217856448202982245657005018231915461009597909819853577634528282130360935378781426408277546956701714411940119624626036539605096059928155153552940049021700904180002617660640958786577791242240483250523640074414944620891649733608733642119666166185728170861069125111266852888960193627937109156920681124088018181681072944570498010490190840228621750123162015680293345896266793629761540420668776858231496662795382079600363766584832505602959623726058169637234297249133075978192840336966053447008377326185589976914201463775449293984724517972680121390615619370574474399325673470109452673061042072756677473575948007704161502829754202008011607043557651189825942961030571586905317079557665572446186059477624417140273792230966026209258437217219426115896420819605980933941331331968283497855587190639436777439553687359434677737443482444239527122529244813968821395645930894968155336583808217631973080125319623029043364241764760027401247916416024832161244361383954827232224987746719481751846823777432446906754407658277336620647846398384662174254239139714795761515570224975026558026661465477420261000526211717858108714427837399239669767734971198910662631226125409798876005186681685901986094137965610878719499793025141189436874347800102770571997701711892376028872052447600272221904888651022392395204753446757933815587543319741540195999590085732608289503816021705395556691386265769869487257043398714609643877929205443931112098320072345009537576728759023970621421811136239999095169940660619167024397268660897552072549382408058276825649887288383475122645884115128553838700159241667731679321899526445096965190548141910739583447437072265789803508256219444125250172193187710297288838039854150782707029586179681214098544137508483690475508155731945596280556403797805699091070051614498764953054020455494806581764796072405020876495140101540742505936476686201005974760532558580382223797510525313317913325871247911216903647223441504349093501285001142098701789478723771024709956112584380830381613493934703973175479268264102725378738894000921716501170392489159011083513433434248962768806351821841386506066050125005628844050257414581724506087352191846883972577703993482568830499186959134447925378816263870909667544628319104686911012189752169154092989626593712982241723825850177627494463304275825561719211091170906542608682418282936016220421152347986378663728825184053242502564392059768225753496677642711306796519412332611092543968265787454233889994349677480042977020795872923957569512127094888051360760976474658193049118708539608587636139638989136752824800128985852007467846149800427174330883733103942308640884678291875259689020593677265809370434563184502418346380049255436436642324647452974847454780811008936855168720734910828054987007811814219794850307612581077699202112948915736456111630487461510262955711204934852337169602314754654377749861915466406927320870792095564823488418531009072225362147029376052531559031193695923229101555903462019967868200149349811668617278439903750350227164350039472712377518390877976039722008893835820069153807838337986504755668797211585757894052908504235326068133894399592704172248493254100506523222871284287845254719717745039146661961067834878668168498956213633799725099705418733034093417908053729417330295803594973221983922428994112930646704034044171462695148992018202914091439997307029638554211715132147577924984600846035449297315202749215931494075657298537824960461456744291853779168905357893310729481391648835882500519773557561981171101465404572433025625489468406519727145070651161488812008706177571636317366732705038767031715029352979694586700829330258262903280122376540270492451927507781366665375210016580249024721275702505964765845790719953581489071887916687362467283814792872893861317505826668899887045707807392815185356183714071680816621911547030041213106637227476224597707749191041067589326376063735900471882993880435927680483654778243226816659398974657905353611381472397892919930436503987743296592416923162066101166143262319164382128125372404477858477055447761340896919980271489365595416716954694489739306486683836856013836394561102964237799205370277840189906361896218923362896786484236666037884466107221705102315441790954045542645117964164513088386782094198616512379072346227727936170849634692152681276083335723215075754011202527205184841152432471009437864817246299904988452866319711700513684159624454842518629143092264184117557978251295746935339604736293142732200272477050094982877212601279155375180978709868768690207093040694921860796261190641055646276718707875977607543405689521729073680761619585175363790290578397672802717468590566727824151151384864896326970323653658295532174055135566869547358128295799329092301407298473558625949459897292935315968440311111458208453186065416755991117803064466001366846578697774642831065689312300548560775710530749857981592097243876623648964610287501153864140061019236159564475952887315450430899505818972710764553751066103901523149905038889030731423996232601759676798067563657127904992648703497002960238186424280894538246143835843986048874099833573074263596540386807984153974732056391965943181981058761975650357404234839084189285562451059301570274518330798981174918987937904304836353852239722710068780444524686946770117293555652086024885837600821021212357748113211321368961176916774934563557411307257540809717364641337339510367380568816193707347593301643480943846383489788411740510113940246786678788956364215661839730524095216172208557145341013682896365918220878838771122500534499250917243223758626723486440186003331679490069973920929415456476923067530289519937531314828936914793724437231695031150468462806074155152890781056165376281881830353065231298878382023698860939768949298498926325585209781520932831348393650815847878402110630920276522747538328336991553157315734590826478074246356125614184152078464810703888897432996757213005496645802896623847082952924040519099739617501659184049126023207238845525115921266530808747667398234537286064547996861712409037583978193181509240913122280298457663527517085346743623544416169506572383401699518292061374518284516500571884162723281718681184023197507495856784226962103604035518983698402270517162763010053157887892308050066684918693072344981762478968459066870780523151216812570146088537586269156971153414196188693814500723043456158960096513289495985636613565427201246553046773844845155323411043545031086815363920810497032736466082716985983976510548084753338702594908786316971899459579692383188777852835343513779260068497450791085188108890923057937176556625477360041864635440758764085488699496280171769451220776844501842036530431952932610316441479163425179936152060741564227809964716473837161212897168230521528963302514571336045194215662377401729413211808073216911075871717159874728561908047395623593029783769908391863280795706924323394785991855592263784813134259532084778424405563913780300645240275423114073708088296700787299628214752083377498541082640563613795690713490841044770682095104645628057765142022908118045131377353011950361606923975714053165304964552214802261979067480376671580715656337322941231140920606717435924889057249140050304304751738696170923258144199395139147249946893719472376642824212040014126709718525280410840299661721625428438375014611153975485761001417400822414092989990586404124850499985649203862907298933339393866821109652919977287852391351257178957703851713666354091998730778768925568542306457524930018394660710857421312614303900653161917350475944856019003874502633417057146839494009614213588800502903237274691991602785363793913315941350702803649100709931966882001496351116236634427448964746471872016379729531850054966328136158113925602627603996442608852153830006285615961656738092216027278595185307713450803091321772734305455596199242954781276534665451089748830910088970234268252985491193473987945438802636555223313795075122915645598233687291572194905747882253415162317702223187572224719224345609714863190779876623245762161935352166537672235753812125906567791568896768407639646414894605493323936216628798333463538780039553559109765929793495110603936275529515791112547630514039077945555010489940709699605299872586317004254968785369594113712388010537203511236514653899881173463987432803369235728983643302662520257601993272576056210346390401864229396694264608034269013406148256800574080835604951094222788861931936716627558134552799676595461595226805865293542601060566044300323135419414477647702390571327711363052792198982655301123879112507614827270382621817999627337879704852545171158435252748025337818033407027901644750835709879582602526482034938340376554894725324907675933924033152441121405460176585802707451478735716142792735634037605246230902602920239009481315642264041999432166864361434518519899244484974207775014221447760171274122643576962250277045828928757990847303325753211317536817558762868962738966481541000055430257297920464158681420732085151774585738669971820272763181788559645841276944761847070188904233724134639527699615455000003029017046662853967194872256606362489228691964694328937272665928278324634761722555900306035785417081937817040346997164969700552895722224805633114167374985927120890814087212149173567940973058414196549807351147079001849967574654830130317986678857618903014298000328725268886354991591989759875919506611968285712894433911038744343927738551832028371040116755721393825247844413609822395918931983888287795260325106872018865531220625766160603274404082929069375741038967948501130185136859494175758866290944691529129667969646857579539474122079723738682632499680039877870142342074883943214024255124951745337824225340407091764739317136919591011788384441497941142982492624160068233374133500173315490020688555928050173799394115476913396747049566289292605567430313292054551752788541790350277110267017229140177368839200160554427826247566971672549022993118922535030964888766837485428479376260637222181041513669830237239024817578204478639756536919375552600380678699264672945146394650789567552938629647020817338527629215783631791998859028259334420048688788495941666960023588806766256535626235006524019200838759439554602992018747846598024925817259431232426056641788250066578438007187794003751858602849676913886447821812414648984651755988253982108367492337337653359723199558008206976410833999862947605329332846513223748487499212338401241885711115318845868843980276591040631355659049059394248095873952438390150562102151432192686072848850046856845930175593856111159465824763611942326574215475239804861263531868599321799953899134323920930084374111492111479616971628637240076424324636810821015384356380573731915852442895665884865242532248023952996511852652684691165411766515101983345212652939494471825414233363653454780602366649276591603748541766782840767737465377250765014565768417170384629255317467140475923444837217149245568652588749295384643299825588529989387876717783272793752364758222735205247553527517851322451534916553726761418176016522876286703382992139660744288303013610432739943794916661145650244811994603421914849575264068394321563503690801581360827165615950044225899545876466930319716665143670923700163429739874841033584653256573094589636643162611991555706438812676299494211709746004751006999142038665837549675698289361772412463981469571791780021448959159724384074685216585259745413984620613770098055205106921461990056477698469900744688578389607282267674332222170373134616970292601467723136897500682543692281705919286683600370221946951384373952341586925646186434737012335329107383367292299225937147359219678443398019150626338197677027834425110268421331225644634972187045706223940489056105276435788796332958427715942155766144694218383719981886536600399089827513030196352544106412542877374828260195339930882396695762637849212983539882789094211475555072541353854143630546505552544667429492859392625289201476130625303872560587192873301037313717708269850154426186274089615784027517945836345932297653610446573672644359361334830599256064569157147513953826273115891023095811937369041278875780729853971390522358161963072130532780950282451954744662054528105935348374523860483188935974572873164279034825027833975469878316184059465641460599569629664393144229727709921108699708415881287313602430264480831152014825334434911135311043818927573188579006562397064199038092539198061360290370469067308721017155506906332153672826628169493935709425793923979615775322468458864813815281892036301798647254277405471313147039212569072222659152199929383081228743211132128773966811513260052635369218384740135478708193281729952704501617651355140663053342020295105894512222053908159008107507332426587865924621529979386464613480466987255110368599296768267222755914226924956231414152523957676098255575722016285717320163996853270429540513631703070789233927997866652480265641511319682072831789725328074713612233008772057785387836239540517585349953203355821566775601074814205642020516882445213820765875445273319715864115165865304199381914187040956220605728626171408745331457159587728308095602551367253388330749448099430624433277123431216856864898286867905598369022291859696445524363120248607455594878363054664779028621771226144452030578637053938183906265187258413244761015131245893255142921640135048487181509975329793590186073314854231164580638106475585461150364633317627502277929666869223775796759462173723061532040447137993703639479986616274887952702576280311134942764014578381913592245466961068364532116782765389905393164952037909854863037357858647941250436803040061167599488139517455081364861452762729799954898430213235573242354012310865898175788734178345731284347281082316599543431645444732940732034116348720338367580880179826883799991379495499647604917766960617582792576835707254213889001635982290153191136097299901938430014332226395364504119581659184947621034712000114543433160259368927899183992356200400241374866669676350122783647143880400533044818257128021742154182923717092605711897687788422758339451737762460801496314649172584650963605767587973195829131187615345953010577023209074755666235737319740051798152104832359220055940425421082265372086879030320121448201297572036914386717035208735340328802038510321455389436600270800306333793291977213090505818025556848596164936824419647660471202948714454213717617633746403130323246184072384374209705417305672482527793761714375656535848454571649922272719280459685971686899539762211338651442533485495978960945554886445890263320905874334273537063789689005319277657449051663799174416440304921388184472495928765065917893557906936532083108871774680117343668307145424326983907578073098966534328146854402245060320262782582622634378473243527888302577997606588838937844383937309281579998605681346106187793703706349665542144269430377636404645313247952381088882192050822761996131091484906185547112073444704590503717302510331350480916705775542163228206805932922269178660544731170928623595911096992498099437682577286059426382936222039900659913754542679103609544928710908002114435639051075638580537432301661497213414731034445375588079696910696865181874768841398430285642046172928235904076286976710568062808271046034159027018764465289479346259918424276094794313665071948103718506490652169334164768604227434667621766898277859888936982832971790348040431018983928776719865276520298222241793167876106124607528945822060555204824829210374257053127169994196805028817893837864562510292087858704113604414139012195502918744278897488566123680438941758296404417535463092044653520854678813233408328966388187712789406711021253454649443618813157103372664878072723370014432116976005355475852840903811109747544948960997801717531685051293311183354207660121116376805456957490031203611807327019717440947250885332758946427902998430525247552788219753063710628240707050435705511026062310530925880475428588335253373915853397564538766405251807037989875071894050363386411718183906857148906493187074428279970276418827158702663798830539375678854273511650369018971523473040605746898749067691499518963633199027504813201862177878593829950493302702358206441846014114428321725492555878189157276084347562644555833132397906989120780152670311074338616022997548205727317141621454597985425972262458261319376865955221295354842341820192374917484918071218661156836289055819118078244198811067275015228326546689701396780038993588365872194990468626862022873356318463318005215287852141260485010151448900247808813999669508012892784780725433321692738376158045856144902710764815732683926601574732346454400375913571888394064212750937997551498867615636047157463627431833024924959150746769021805282307056108334178653731024595258887844105683273551072147953811806866848240105311446814632997898102442391199900512757335889191204455507697329931200650784840951352191647012363572952815350856715823452200515920029974866576231636990323256571664013665347105935512788570532574869170465563375893480943495876214055889090978238000506749856162703996221931052981296767869011199212995001198737312773001764254416895339639111633323148996203896238435595750996289975030184210234133027701082384341820420587728060111498443948144504007422516279338509223177146817180500322918461779482706066589557258795133890600378682685315118488668144486294763506457694415701738024341186814343572079117444980870118473842679128417180068459464382773338937777995752707308486214224726394211288171350866793934238477198466264375363038775055758588406084045219633561480739976277598278066178750947694223557432789767275864329976477046728920984517507086511636018728509941714270781717820272637397017412119850233449405875286956953756862464891558298381604379902563175175335892482858789440149462761206578104812246691517417153504975792695166735000561145950065564479442433652833609206730027540171879541848902061686947211813418799294882128499486461641565438747970419621571281450369097316468845735831924455034713807409380669489792315083154939278324572133010307090592125466938310666357201847034152004632982781161092017059000899955357051457644845288301201540341934136626680058814997250872721002570328732856182921390071780654955895419428820732913718589349109869502347374456712234785270113810731764529411490402479340295538392587591098321590235336919960800321957958551701125823066704909377085789267440703095769276744706431914926218847148784813417188558345115196055968538607943207612184171273218711035117698540306448451967855155481971239367829612112628025009564902010571156335899019154317447524506272467591567667574236433671395559841468790505968624384692141386793758495887261678820818513006710058189681223648704477406539703824610956354811093386322599007579019103787211683011659385959249865279649815350675179935636962914478545336884381383790559113006479176693409782256713251771885080791762147330367603501853419150587635611826652431690979606176207730838839783139714543554395659664825514311299645048514573971941073539778375299727823813724289296232943109386236872516867888302211686318884053205044816888409499994380873706257317912161210002202952839606393055482710756237922622356463938822649884528460026774656638466710056649959586227825506458242149521125137292459034137678074392105294912964731450442253406533174584262448758546107883521156475042472572405781973838308528125609616539464484001439732341770169408610527001866245577415956045874876401533662354056037985574275587992932399059918696016373928419115685964959366806376287536741442826401421557809159900782418970825476687582749851623674177080574495758004284864370770903584090066847013760532373595072558634836037229561322587559582260682929716422501878402459981410049112834437494262911891869657799303542648508586678411988145126127464603584746582155217403452193210996830803027728915267236105444436360873764030781183795653422500790723307772228027406680450411002790430197743216504102496103393089912618215923876544616948992839083763092318987155935834176225190170950768904968355176269021872064702380288290096617941446796206142717829180466377338189299200801831029984837061017872810321495922841556180765602003275472964966200026060661932706306971250609840860995418994455911204478137839712663022385841004472536187734334595264745885316383309866712855163632690988266675139288635421813453900145923187539959076411753725939379494366884971945620732030835038040247506630645954316218703450123101750218356066691289785426332443758451861013262554063798683389028445628244465005349383822114159133668982789755210087961602486447991672088487105615058768410979181877413678602366553111513144796427398153907345045009867708148390001557624232284625824869695310060686073485471073152356762161343098847777666186180895652843624947933100908148707275327280026416961403207269301343107851137136695367801897601604083267299919675329564355637323005699383811643545819181061626990714094702218059593323916106583506441950455035662912274092184160271272184590971439738057025766881916012147508724489283606670211185191329453962898554087886411342339999916113878715697975689271678339980904477655594065859999270511573484729461434630248431744560822973575893639209038049265850008728743405667581004531491298988663496884511353350093416412591614878249935324371026427985811107455175755751666203532745214073580807755692133139660184673975752356259010773136189507676488450517229634954531042602907204145387933450159124878612680698592377386041804124743032685417512615576574454123818467741644370121134358839216253474858694229723269482020263878596156742663856535771732451342168939635945493446777166646468006330322970094756797789720010037282217402645959482878685643469894175408125042383812407700956179764555692935097508470050613865284835646334851787411899723352347837613342727204659388723911014767293604101473813652895250700894827855559494664530866658215020725325233474915111177682636412852143495489638602084173169353914151524213546395429999293599131867700040509479981745851224902275091395666048989573705464255006824786129757060659927579154851942491181377788686332711222507608385269594961422134552938411891202973055730159887479965446485962313351118043137547629087360516739706852914399117741259214130792233923379147002040647603551328785472822828715242637231422241541041396285341469926588535698957379162180313110472423960653529456759411581237033719650787850212897733283357173635755152793787283887364323121433448654970104503432691663925812495462779955038385040117478415634614457316575126095640781279739763884516621748842402378386055261775407756365537502608636878261498567869385627148304994833930081447745848198767201112434729919714560421191848910729503386991989164196755344520348449321595112378895959797263397802726963992211263238728630622691778254099966467604522008302885354786493616848862563240928748852067094402607298093078243583769462122278718093313752046894939850858621003549257856957149075606567565598998743830749943495718079432106218043513563484428841476036186049949916484599541029286324369557446658782827990386177056436477792466219339865669374735279811525104645274897008580822127363122971500836579936472690203711145093291387863990360307617599083968453547118786873105883219869348349309672680820529252239849037686824651339087606521901758767916708172743866009647052579020374586417900693438642606007340187916717796087354350017657165165012981978386252223250468991352399921569598397001769959701024354163006307741653420569574062046673286131565940033142794727815790120976032232936435432258814446037641306685527242383156582192119010357695619672408531598144910583423385398689876924252719881060160386695635803796356769327470209580847696174689974178877346751708030174308845143638580835525896088868122090174350794393167407298147908998197256965962256027009401852224015028741773891859410984438974373840221592890987768880455095134329576146630224334440424944688024917451925646671720430688050369586161714041743429874051618638290234363354568850424591103499241112357842241182635216063090311240762865685997916004970778790166753928429834157440322244772972438093026111858021874179118213826307771730743645892829264053230926726407392479102961177091643659715085199598607496452751477863585121580394684905663965238671961979460692614273533460557100122280618450702419716614478716309176523571151303939883840656925204245987955396788139334080243748084153369696907509499376775365783600019775315798496740371393004314056619040744157577285848607123835179444422482763320427977053935624198896989653163185132875098745349974750843736350936647381129658602699644242312291628024539768450256973980250258056222326030456053703541664792457586985460482633468246661028368980140931770866046235509929483370897127235150403753035224554747062354208944604625347843270562839576088656612149510752346504083353555972308135598989143218881810712989037230284140078460137673618869941062480378681523983535686627200911147482969773625775436444834437770205269378412727604524808439215143139566029236318200765946642762490266734378127576021575433123499186551404968966615058395858685312301784974912649188409210216479368243929192605531303707021913484154122265872326295185897088132137905018002811851927232423870810424139077270884748539518757220540520631142424692538253311847437621104047234389513299662781674050048449702443558881991369451172572412918068679137862729178049424734796474146567944346769007760497919945173682068981876231630875334814125970359701671468691146616556334126557290204880904842419605841985654922084472449619635422599312640510316021087989242860974303331051141025531320713195717089853836794982064164885917493177286902519291141950225096392617797661555735123271243913674050982004166347131399494079779839059768038516351694665475019267805538556937494527926644802597182098627459166350883562873799002309569886541734044614269595174346557837725637357697872012459174135006547368568351977216887094438896760975936098489083207369546332908800905800598386106521218255161106922523019022897266530215802329151478394449952559235881889754791385390305063148661948932264822410440508466206323566100811166284569997349977120116783277465685481387673913066055858525223269256032773864563714124015542723687517756685485942235527735013791992257378868231152152566359123065604194517384526471242788466656530713286205520919509546978068476789446976108181028371190242212548321486743556938641573547566063282284222617506986699060497742211091386587961421086132365591363061344372199654687178415487727755585169400857781442775651421526929791179240841995579340270526644492011309491466129413530429328793690098778523360361552151608385061094835011979976073676356477704455648318056419294226654854563317039299140804102967334599917224109060274211149518548139090780725407585430551920900132757334111194484569507195327308119293965987706588410390928097241074950578656874399522304690057246814299423391324841979061694651802950248547934270341545951005799171412064769715436987429421300336083366419570015398291503878123830036292619002196665109515008500252401866373977736563726676672451597891531343744639166503943503429178650584724215705091101140976042624135352454704374629270547323615138139399682634761644463876759549937265854040610260941249295668320862370901025721132805309307029773201935530953096058976593865483239793478429720441691010478320811956232846262902428664996239003725897389713213004287675244792970261816271140260916821322088074559643657568730524767755678531468922325449172953494891458372868915045795368749272712540570958656957524554099293892212355242864720459420562265198940744204510719295274800631078211158486389569467031006631630034677047555124080918982122978599876817278299892158559256057185256193702209919962201777578063635019812864628730607718909326835799349667109642508566297037197724700385529738109121827907768714073753270108523615435965204281151855499425219009722482769635652630702959180453501883280515752199030601459395308759081043443087618045785464600761942002999273951436618595347480748961599632685329332400881192152120942335781298229207208853598800633777818323748825168026054192353527708969886658366344918066065832785229303678358646826256945167569913412218124057647923377634138137096886524779636007720081942486065738064034072734783871378292414685665824137557081696062907121884615490778335011364010255258246695310533083636953598788207817954593820935353061863801131830632095690746992068044882336411039855582297661980474543738350172325551630087253839825101141968251874139786903729425968654854186406363123194429142579305651945469816999233456955118263878792216317033056886183243947382739713693665613023172115024018889870649540436407453786194373114166699730562384371467668618014470155025478409313299901826343157580649022697639534856423711206661091331986526960152624188710579279573929593163226245563069206088155016650134811535552513753617116619224260109012375137714930301744612483436010835498208134953564879627506785073068738516040076574191247218826657510940415790274389037909455210114082351814287376524336781262947698625197218948603835196187708524755868662032921269247792192464897080245291235341553683717729567600017637308528605089868493001305672459917088030283505343835000917661200711227377068107865423602229061912527425820395585817174654645855094299316176527800046398645894710352691293090631469797092404675666866581275370568269583157911266348024952843783088008639947389240641621942589599315016704243373170201555679662488767427634977713697039001548523214723535213846677755487611483547134550398931188699748582926030861180204905503096912636389838126506958719116551745749995044101300657245752347129312976196609877678565906863447083444354073365606585300639444122584456746067625724880588497585064867464071519913576498016778930788992060268327392181432947232501975327489188189606005794854830855418367419926075057891746932110708700917095341857863061754533043234966966049702922742774733435793994343115998585507545402902165911743489061513667816764772732129799719469591778965227929396872981155171306133291646636275358522902954945749911759604502980420505917409511393176006687553773648360235513724982225176765582385356134199533854508770246432606541029328411548258967077089402337921892348058425467711167321382288663786471608231439789617636115620907485177585227853889321404955492839327499426412815121439146536313715866274422841132101855845135121398866948607007401447188552266357050438041429603838419750964950857441672299570462814749709267134754957630304701084683222976149996916454218134524979568421468280190312523004931075737091531151395498654858464101402439720658350229339994837188957797759121328915021009549895616330888212197367719991329766435227212367128468614623584726892055308122237746471978160953558910674655373184814449889300574996859144425482462818075914082746593371007299557342191109861251104764758736345805030889066317414794223672304773372811949023055329926974769680773172246721217732632185833582980103345698926466987157711914837547050182998968695087340897513863313518632868125419264084614038768337673501192975593015008902495804721562560484840751463114863129611947560682444834128118509063941632652671063153527843264600013990135551957635313019548205683989495156090102721488568639138749678246589247165698862559857531594639764830085149603308677991288769221282626489145310884627321224451803829939483680881928752871833976268858868672640861410050659096335113186722201636610640215126756460666074454355484307765008608099121049864899115584156943240427660818907886419394498786807412646503986919630578509543964498673727437781439587519991452095415396188375903094368412865006221903311024401002667378693381200053292366999865666009794103184420802878793744567480888744771050122703018700052363796962264459447072166870980908846056117730367619206798818406561737894114547987559005192385309881184834658694891486007704641843761581117252101926735304950368472013036569580079990805620946732982508091467002142299908380279375473693761569135493150123456514756029801898990733132015689877934844041522977002822570182231497638872617962544403100313855997778416864648970108887930311245657689399063104651420082474044463947427189678195587014102529415870046336113536353296842389047281260425774045064289588650621188896925471036904554767313075223844348441550196124580922280140317930145551419289034812608304080814445582812416116648991075890139304875782474651730530461172500652858746546630876658525074258046935284407048080284501716507906396434441913047827994929860470737387634282897587308703295719061354790493179244534875084986841203796615787581942338517469665651262476679966412081678975325788635835989057291231652711587076911804177118094890567507094809901592292493994609082649188044530101903754227836283961544434509946689049292231809352136084468032807730499232884688806789250269868047329353763985646716118441526478524309735566712041765388807717005041530434178456996085545306186247584255946987337239772709804733197991653205313168188924450671942426992689114503011573871709348809226341309593182925457814786209243111326061592339433587339209071493845927996935606674989927066413753471467019706961028150502568131928417180917934508970692200325036971684338066748592020556332198164116737117494632125018288359774552789317935098833720279253311030413933466159249543454516662114547967511920320599215916795100201390678468457253882372444117811016816707727498642236683499815750270942895102396649483997083277798727385276495206256641347457413589893462102822129815480689116643455796301126508804316249174281919442715317782143866258929481002408055695121112674003786985330541629023398608099766128349962608918402987790744561180630838677119877298286708085109551894897458546724713987170206883195060456663140064176386420405048952014460376712213770587939734156138610449748822869861002290490398818894996570536507321218941789507281013868848700335238635574914937279532486573402645388638300036427451621336058433414916901477070960087192445569728418577186251027559058702906417160641105145855487468694275267447149067708484252539894142088581632907942020137031441354746002530751203699025613856956254361816361502417032801625738752800316948877833712634283519372876815185645681610814483648276710389401769380051085405453538278187114447729550469512018557844449689762456014400058316630585616949225470552811374283664269069002480561163852160749731169298670104331160425452073100627095594880294747176441892508801085237144190593657901515761594207846216740967964234673103793962177833222736082190761611186396997961308372334594377689914649772967498090735120892773960806508662536702919838368033420384620385733785780790166386361385698952494182870843062228566640756109005996395382820977355465405429573411271989862374792996322922857715931666531266281045930048261192619645141479584168689333811765171241074382985795847964724839702167673962802569259333977202711682938495967184583832190062749757234870143208175085858001558388739168761063197507724040728287375674676454438374119914071216192343014657168818864505224453416294019628608535918816330018484908784333788488604286986869539687845205508300551821802172263139744725176270142036869641844859457023515520311696295778219125551523211585846198238250135995433594350117096036995585698527852867868326814889904346480130717236865384438406940064751336447374996634776349623185848560314475422860042782855725338948364898485764168552706191241320800166647294462812013260316827473086882687546838281751449052857738977588651885106335412049486927869386578153294761426873767427575667672812250081895828759865498918787316008328069975920150095640723569465299121694068517463617694759441387121637612938334431150870098790991227875711929367324223436819904612474105150361460709667721943234663437172678695351975855308729672293644367959999114294356683741305789059452594353373751185158996185604818256631547059665884707251611850376752043550722018440956221558370985333954966107851759930969720966067662243001323284046630634906612307468760277359446258228008253030028185695947938619589890345229944525844290410025997871420638024344857935804491118584335152459321099298028441031556378108161969321880635295039207062130373981407176768971607601998057679915096347262892366322556081258943699203850310160668086619657412402138849183693396428477947070283767620327305800483594434134047734986311057660475997286135501846716152361332437780741797567667603624090469387337181009663078189993876399606962875878901786531619970452057986751758714682991691220254617400759752838053235622710349861333317364863226068767892284809665554528297519714399256209169340547719845194264868966480040328020052596180185781502318748491066775661718418289342660627853450004467071803613144073819086246106594288870499781114227735137850851058233044358410411112330725974859069654806939863432422747360962655954829475919044259974721315383940932137866125613793494862206712644113301612882035932799398642097097116888500200309844377918748784392954537525520783045279218190382325718548188938047612180675938608621511491404611287423349892643323785657240892825419600762698303486408716611718037593766570277704611846843201465002123348772512243758970532975701206619798684054063343050575350467629226669507683163574853748615754534711755342815277541832101718360588825517885245470551385043294154222184584011258651347406716980676737205180403759040930754838994342754307129887120652073992609061364672751125687559878710077681260774977932179004755568209848328703483525583706578536684467245220950507612478916860978989131309723442134574330117407109197778070104299095775761856679148424525423325568944436613502772390129586864523217894640135408958777624515261030722467182143414774970395029911474151655268715841372464537115149809696538956498713944956132877868371826728571797674470085659257841125439891555800832092959240139051649755876265149594448921632190732412652934290958771359747298406253667848477719422378349665390282577566715458839836185429990436435151835896984311258438231117721676581699842055761293732557435430841890142114050994198580258688470173444251908138766009789602263320632470138950585089939143543453970619879947389586906330483341741095084697506155069479632290192567565779381516142642351096725693525081730700800212667697520630183407017819899597565500826276924482078234197101493085253916309158763980561085209374537223745923638602306213531278976838757322944879385308570778614481899571087145316673177312589504803172765109437028998251911626891523038641024272517978524753449302002193641144568903076377985403940889542999040629608933026739379901150421097736321794090657335933156179641700706134680472030237612472014170014222715284842521877263105311021417638055139495308299705981238917442984624312534205470590772561514011924173447985787975449031755221468056578154395215371845413705089211071296302667677130875081985900075271898140639774854451020587407600604490542874002203126875103805253576749306102397423133179793587481934129036945852073951334378853005857312367091104281726812880237097286036900505851808829067824934117755816325144188292967734832947396469461455140768591222036244324495082641843516510608238484464665556507668019412571569436908272240783310120150212599470800381209111945650019602576981640797257715755005122243603316960406326613701874969936489936197437891217647607437229405342542166524655459110082249830582492781439635636981279384841287091347154142292150027485972429584871197797288051977440567014745791620455432002189619506535741512322761884996223746047114529900785208126174725644537136442718411910687173861019473412456085971601868501400176271264470496034214525164635329866821768102951102297321570721413885703969219955990289518368208338245754752716776244578377465738202686021796845625394391419836994695330588252467233949034145094138228604860677874196731585330887406721736757911488573061943511222935779700289086990094155425880350329010050621652134074715405484986535536606556606537584330809067310697980121721678716527741393377689057930607688141799210129991099607276532557403922022981951432071927036236815727768030425958927767936625265455068411937138226608500326327709028093695884475100478662170579533498477777666659570589326152703282781338194802476484759892226025048061453000001862832093391179485499293996809753557464587116407727685718787881500784495902707755877374693487910509634096908293700645165542380394848778763744837827900102571607580227274328214172545039849232645387285771704114958531582235938743770103850487901111810042083017814406738955698323477952618499409117204457199891575122387672801048395286313407818625874674296695992869494768889665032802619174095097005607574480814136033283043801994326571295905333308513146450082512612375607249586081365802926940963925377409242244307637779323506727704998275687609720568208268452510621878792518448404039175778410382013688040995559498249910894846551539216683125374766879289444447390131321656633743379130307524347311312796386767012120205645845218603655300785158136692111385983587079111753691929522776630489513098949313229420542703204637718414472929419210413203969057118447862206852127075233658050315968973082132016755442900782493976685314620837449064457993067278135598371761427149777361762621151014377907006716319615324477145060548167385349146124650176701805212259873630721455750393328507221833978863989190212715077056706740968624673966001985963371240695676602509821628924159727841392616277938642449174396389247998222044633264243691835046168729139741795582243448192724116644647728186263424331590614505258442189456109930181746510595957275520742267125968984926466592231392966594257348493380197317851111415803297103550253590267246212318316705765032233101228230122476228501304037670111932787241114238756166500572166191500122981059846692091490329988285878108232401481949481721204684684425756761451838065006260526105262432847002058434077694796862324680843707280739808646763219459070460470865327606520963024919580049697114496136542170737063118722951421068785207525014651085053379893191807494744753657090084415211049488742714448767775060810254334940856257764684157259112542629969902001595909279260485278160845690302722038855540018443310964645429690709645336046397775850775239491535309768597917591374811241763878369448139891978508129058014094543728258582419811558881615115493818153485325295331206481697274514808808552227853639244827923861997701216074865676873808163831641257190428670481849682523835248522136832537247622297415313446666006046128525688693663240103562941905766319290197277186766433337708155710978585961192208656511312303479000928390296393887247690343164607781524435991854890514140569963083029436710666500249935230389129259958728732935616399529599921614486753017834225387618217640784251074225761045766929386944554238558114689453362491654531868092474351644632795774813958144282109119256922460600026058502309346697866249114014783876560696266454741190494638711623238335899354775680295698058654252302364371667637058189918041512372860082087887847958820946267949404452348530859419673332321771695000363525051661251240102321633866359515767992637191670770976525569643795919198075717300988097179020409504379193523176371924541513512763833425097515379271399475396324263321524512108657881245255486073902637291154182338425695612339796860661801032347774416928500534702040766301335980753408878658753595111678145133285542030352721846962423360018466622936947023183758549066794740109519999362499786993354420974173099397872356952873059889794570734409474589521111871790010687665793332113768881660258162152351225061546655711080738466148521801018937828817228159610359365724010673952969616873031558349687821471727964492336470002023151797961640728444719795415261909629629313229851371085455196128094317018458465667698508931519997423465831666540076124156150758048713821794248187071179432706497165224511177250709019214081642975446909073769585286144038437138570254244815328372063043040638915258497130393127427490566855606246816516461640444830197900026368569479147079661843688708091590015138767571443349006924061886402255663231192330743197569473410429629152653934652284350671565688103576600523964651845115875903548826510373537808785137801022833613313766018343350102774701591622709947184604093804264635352976887875117418995930122932870256725302077097167861492627409202320429575921079521954367130881948432619345771269859709384854655528580438040049376759021088113662981774452537782491770123016797882390296872004161125114023570829204255113348711725478344594812695376356077029561034386449619968277755301229468728909974180838861747653556326476293401478322890396719675612837688822168830696783596805130707803775180404448146531473605063334376063106549935448949887859641971003368571057702193515149669492680802087566272722585088843279392005294130046527983066775050958283758567926609459273885461388690523167295308131050280082964181893167826331013462985267942953767467435700714045455403306208757249757121048494858258458808195341626281865348530479601476513150044202242771508538016247032470906990329683489336737355081607636600634562595489821041171142910764060601649929432259780031215912996041454414452366559646718220088679923574532389980408444192172141421205208982513398016935548690738839418337631775434552972243003294289692363638853151711308068339226878257227321061782821656778456398447404577570353395690820511158498796554733734608045253750766206668761534661093579748677360477466826553957579202264943622560861039013316392306785704090332321229328710597217895823859457803642846728343538876281872763811906114945860255270823645311772493535872189574864037031478094445757292844986172877865914818663102039302020530482335136211666679591332377292209456130370072775643114660154179659775843430782420624158980944848982323920670692893485906019617239024491514324000237099406702830287068286388215796396829841274569851730583277227980751480075620959416551246119146689638434297359514940529819652220584057253250148353837088642575896463982961817418857707753295399095618048183324946577177029734276272121329541588624921158516382132893902559552272599434746120458022720468544486242560013775029439919180921248462344775120450490688897842177095478867791854848604118435175105088407451671671643381120936992665063260817992760045601949746189105224493541821728252135560406830896266689148373946705507785052292556330763038525368914472443826684627930505512614820707058930497720100211255793948975551352247049473110119214542267405336160909756924419668858045635713695283453997656903264470743847255361977324641203107610578514395654755434996287483615435172117942305059951536494532353038887688809400636871515617133730080996626166492096856877812431374546189972639166178017076998562950089718157417042473658440824136563528865651735190728169573648647473912289118157056496110818122240952375415488503860327909094428544933189704718158491540546996929707115338336783779635884755373504095273867902460601888181159956967248966705732373548510241847723464573853222933992171371780216876303049743798516759018980221543780023301894251659214361408271101782762367693011881247170387927132491435560894703786931672159925754211709655926990389005678230181794703848976289116073569806534246909993323272466003330451714811398056733562363976358654433595112925771239767384837865411202081522958721609598813141116934624333097397951856765234279732705386088013114287438992514889744529220152388126752313835305373446835900397461739157822573202068251642722783553016124491959628429246102381407385321160458130733590949722025643383198732703391167345209646348910244680674433885959509064799607926484998210601438348630168297869726677891291899348404320910235369728269095989456006409739656171387921144887556207828402149490221767741369344171102326257176627122081094700384077044812293271278691509778106497478041792979478069783763950338030217632775261447199825970716898966236993394699731999146682614797368184572964484619626033571918586601923917867454953831162712277125214278793023680044692370582599222520166169533918197244336180599462965154789625157020358702140371199404746890397359314964463751508224842765180761292508117020514432699464838062999840483382489089587648417512397023573858724531372739361005558667265743285971872253148527856913892671263704990581405491776581640891208832540812830100272336149365508924459116542529921411573736153954431208036622917833474330452983461916949621651974946467259647852438529264713554428286010131226344091953012663008975354142517532597282522835765712537062234437409125943794529131039794669131277106179701323801870590394812491955423384359941570232643171346151039888520081578113364666585003811691541953734827975122750767373922462540190699609245232604074579980029251484032726881619017620228615201144674055610895334944721414914784480897983930570831958499201867642511624727872050038727920000408606356404607641301053491174886014359100376470326254965699869996634792151104334915707595238058763733566305860781714373488961172705992291859611352177004528709713292037803592689576156452220395446330737466223644090855764951290219060153810258497669098834955937695350684961832853665380649657263265663457715822476450275615594627647261704202833763141874022029523781996288737931253596853674744928627709606353046406655733500421992670764683982004999762428704875380272703075457883681366462369869927962933559463050274767859441787749240273354104269153737927165507854280191587278820373550665919773899136070593777668473703783745535270034152551817388089404339244443287318226566296136073061699886313567005036168050571369832538275380152995648584700310914715226020301565247357326457922354715858505615495521979355193730661667366439982551117960264128166555692494624448573485717012638268955488577582535539963888316402522242782846719202393850369945664087191345493321091221804680898099637211682547611028542253578216493632881079303341531174376703969284435614209199462287394811792647643360010753670687206715969633028045705405410050877658245029773876686795112689495755249161653271238009199916838035081442888713313666804722756531716885201185253202453748064426457410197468372710904799808350137542184580616365317182979947926338382583623456693737252992063943872682587507137966456114448113705531297650886055721144054109995553011191782103155366148247229525385565771575746142927143038559238195744834389901068765962225297083325553477450040944677957033880849002145929540910323458007142145054990177915195963114758891844220320018343736825847483469050727125823247946160435010514448137056251009551062171879566846238238327711633090915428080443175972215831676423318489920582536426017647610066505470597860329472713911773010467134041111671053914798683004676379536206307241142676251463646699243705017286442447209629537195327301490085312759729008043653357210954459683457352947968494419323173320870389484423681320921006471513378659663993722605639371990131892938245773045487662256162965497325628598314439991154143904661215866593626941660385118168637872777239243515897097816161676621562358440920675210641173795099066533013540036524717402257505078372061819078524841819346391276903842333911568675020030974439075897647556723414971888586423625348182305732783060787284431358636354130708198965287012142383428095536690886299429387801555055333329264009944949303891722889725463914407834845741462170826869027613452676974574275262675909675685149781512274342870761522533259417750370018479874798743115611571723566698142716197565007396472648259294529422511264524168994640589797943622187354336834186726409906709829236706861000395232989056947209980375087961526144989840351111356954320382052066681591988295028802303083585704627746947535805763180011458660865968913183295330647879734580017553165669175624011936973244306043124034172831838553657468837214749176110844244895613582293137480655706444494909145634260464913237615399316672584390149148264024642480957754613491546752321624691647473665578000204477843300369223002212410980539286306748054377353615365090203572935449624748553480186742999128918077519024076918889353155196509971964135377834750953191822991474717124185983343967064497060197580877936623059764263992908079226280136888062807391630240530486566903909742195003862523623711737907242582397710696581323638212750826512057868168455969088737927003538111651334455774324864408990028866268245604543374441451609416080229711042630474161235720313787719472459337000636885274784122871734585177634429609890843848207303940637250175626283487552243234953214897476899304478509474122897930090497063067895770343967056257435902764161261866318624188998937290412603137827818506098715299475063808492881505356053097135260614268013529890031546741340098645599510939042819713494538264041691863743465753715998738484633445532855356407594720673148282571801756368284301879345591690144107346547367135125343571603208691931581935741032793269070999931502113982558107822098813664656957748130762716053046264581996768550371882500282100208334833174676865685670910925505131517945966617424118305434041985739419186757103739391918037979357737336912164172168674811105285128939307487983914738596834249828581429408278708798327670797360217371268276952662880779007839469365879825454545586239512337770998560730601460466505399000936356996424981671915568600905335674844876773555554602043321552643281835519261531681018715860201968300734147107516590472474134352271417214362419110445467733176363182262370416980534960433579678578628967815663317506905510600547424996680838538673905873410157071881219225094151481467423409604952021247836834979797956042842866356950511787841909653204078568563233082646997556691225698696515786902644635134608669788091466675686324243099941456030905754764393674769137083769310328560387688864552382492005139372750619388527192023683103767450977709358817546544688137295697032437982375019307204170448154527080259715350850840406771695955461357010171658146188384273581575221247827474570332796130646756354565058091918692521970679561518548494062488121416110322259420082001271427842757873837587919998091137252425147739159987971346102645937164008608056114752309351533495666296441409371868199759739644858040994967816831097529499171808779788136728968452017713054583953633838346202756464376233578479185487110693953848202172258214675248781010560612207550847193532646089642915650399174545249978016989489137630276534109614958612949410599616850120417173202489176082069426683921635336577030670260426710261616305869766913783879157980245374256832883270166405331090513531577546591088390126288777181534951926553011423202355156373484426020947681289706173665537329868780800024930321820637592865102518758614982404792878182477156699449996918821562286678649009701596908432092265746749047802316538648560244559101283367693995349504214273892328119691589220764002947878443399214391378215563192003980212387035322137781222109565665584279903038807902641750036753097818490250062819511047703622671278020479183915207687547437659781350868073742736966461856273597752316897395056106491446319668277122651700256469237026496022189518454296960159099952242734436320763729651138046530683000211583938808173627383401495003575471459681834582617173638042799965826311881624032606492013044787800869696715826259815440927642592433164309049973136199817669846395890079298691341664050806036083956491162970456597245874644369994444619798895297974062839946216168166791023560958146223748772930131168489271843839931344909776409808814497149703811798594359051378380958816254215020127872264682791814384507343123273339259416625819212595008583722419899615072617959495410319340248790819847752154834175579637852297398504095642441816956101720454921423574235526754816600984148982244584226551000283217955293680522691087378814341071544602483077803787905234679097263806389130623081702736728192994131805956358238422307876324548846912597552949842534195869651084443206038937495405091745907295475098759929601309505876541296183791675502916993700506381164059969577120534050618483132062084630970366196945362649641314377594851417029722243664255559174780745264489196383219142895785957818436298536761291768904613697866999756327258447714645337162262315412665810719493370963828272264826209274290588110858229664367277626905052680190108364605865405328020379978503644537613829410656069219829530697793401506073180126826382358712701063395679152679964581203120032869446575464634040177975835661560165778666099420589174648360813863353839270881008862114215725400289297746961302733672380003288658680502968088347518582975409781656642331531509614117808328577589602825530884425610506462528359084686009616708109214930784633073699232675612929270293827247246439795582260840320514358219909313589848191182151395935866873342468689129422783246927483141856154032984661215510853807790158968818855911587094868570042298773916265718567082066218478269432670759391912321695398000330157779822177700665393595360364210708627467317466106603971326145805296805575327091365447420532022494348262375800276068122235946784956873418184909788492397573732092028153463434257892919925407544935561811016722587647128430356712903522998974033870279416116253410668818333305536800708597735757409627804392930478117405905543554121054444836445649869821282665212026493673545974563306008115879601956815781719246806235457806527521528606331645105947256796565264478545939718488363725346011165135572329428445050203543623847834575422133960161522386090845373605061624021575996702300585688823510694263376926270592535013810896075872730908900318331266830228790915421107685199425068555447603765324408595392734168522705889442865029517547313114521718825416457081846002450313008369869114319781242846148472434632104913220083628731520336444111463738757755632148111912602291618781747964232100842485210545111660392847339198281919311784435519542364044209280393942752294587162032284445640991154264709247246269442157593967835242394538174048790968702869916239654026577487142931507447576018714624912516012972099821432142061375934854594038821984005277994778067007687812461360015975908592037854453669726161554833257524329327669372185559970935383182342240843656914285113680548866136310383214291812092233565818624811277516643698432354646616418339641144691961117671855567422135344967461978634135466890744026094112849957757718446251901935726527954272913475190557298093805635762875531304373097137899373338875093296698743572092699864083278737023139803437200070947345774373967893038701396694714376573388345438288335278740632084845963796043552139333211868572810285877791120394286426278497025678230945977940232519572957425412772243607076824896908237960017543880760047197701954387015515391333203313616512189414929023544979782692319155219446910835397433739181109554897202795570800309406584793153369653394875253152811868561393794361425276449857309478156970398519903603096738805150149820952668695300655816691930858667059112981060515835404458631277758717732741974733333468201226292559873870706334743109224917732542323983372776977416776361433753305436322553592157410269808979515906747781802424302493231797774285609461547667319570361297010733609599639324214266112660867300905439852675454000722269777779926301331660963780704604351899362161853311716729994679455921712877303545285732882111810102299149683256645912785695589046824935866683599352769441639949132945864941237032475331133935877079614046043666927288951942160922533891082812317052086747003338699133943122281386480667061231368775460010839916921858196714882460760287764726086793907335354777323543815315716001946212839531033529136044853732203407763406410124817929163773276050589129658960430297515303616519789194665172726865303237340374306579108333957019114910194691867309428011809728180001201730940456155783114226759694571831727643400930893968120469467014279022543627659015489051979130491737623611890573254182261483319023563145233725557263580215297924262598408663945390313827067935758444559994574829934283504568822874989019691305276576515888270849247152526056120543244132729572697596450122106559046478534241331846909222516543326243144153502223175138993658691345697470656043259644881105334204028035587403498384326797584153202431534791389664796819836241067260860262954377113332278201735278675641218337849978267382695873462300816631761517176393714234629891906354324573516081421686812475652743527555600206342348573413770324069854107535891804248762437139070319782347513684133886101969921648448813250197245008718805935717981497991163725800696795126978497629519592441993347701669454925019155443711569710338373943607083457873622400156125387528618993222073171192143616026859046217125337077838393172165823579623114962752055531041863423402671580076097216371943403279294907006028159195209232620755173640352249298050306384847564111267946975647128111776705055653457065819591831368052504077807886571211664323708245592740265864289736355088437692493942545576238503070091495040122616705777712110514508607972273996598833496470198073749359457451417849852239412616277579715623875017598245663559857664542903420062251930712393925081160417861325309264363542424705980627602559931647879329006675653013044213312606206253235269134221989514319784124221102787933174880943235048735759207566425978869967167919962673223212088409236494106669031914037227811249024099561499218262865932466839690133021562817410127550097611553150780421755068348602638559336380892358268637781109544101209223247845720734711281610356323587296485513097703920169536652447770344281132686685304250781419505483065669870573539959448689230218707666524603160914281428225323359684053032878891883437382134657116271847233751176625304792635094291235761408282430795083307761704737879554282452405641025783070410640683823112916851329132872539597801301709459382215455438739877865429897558265549206071132764343079128522174589466188470270462054798483682258066301893989896160357988650016431575192854217745988205125757352907979142326653605210052891549548748681958722483126668706475942835539306628435087741535881956166379301910734843292509770395899646636895024327370161122495055209742807692359879843121743636232496151109925087654719824888484170575951499341428681795326773788605066293741513790319179475971588571038229619680802915464232504571617362763195672698046807175482588761048562104385619510933267314746997311105063786930642423475784202881835959592460838237648588316168692257095512255471139293124644351592312990417428226527969530451367248153561461658790192695354740318272200377556222876719422250698680035514788677355818446101408125197971855056449644558760090972489405646234228524601369097385748912364194438166626327985573413851306208782922362908863810238208262830034332390496933792143755027256533717596308659774886534208906619695529493664068043822359236426175965434565111933241481362243608681993192935784348183546815841318240649603831114352598079546592125275366556114968273263990121643422139047918888618257717591102631713125158334186878081373270140446039931656647751914633243658208448851241261765639867184800732079289739021934417688843770910296680620049069320968054470860159514394140406156685598509629764678187880688844678346221754027949339371784429691959793852107567936294249497344386802342854355112105081200458075490228795438084156669035755594787764147085294251126395289142973075624639451009904910786895528518529804064552983230868747529319933115472653874898542883394004597167433067517039359024024932653861851319972558427634612746268240175259438155448566693303369219837721553227305855398331174834987380785892843854446354952140138923280160203553795084774021757528135406521107035314011711286212242328996378311338913236704712878109220521945191697178925881599925657717410471481205392354002999269493029557439858215889354534137612225948220689973614392669603495655184715313271630598766380379054121993936109937274658035396234213805597145415895384762848201401228748591213949971465246600122957472581223248605722604047061044220372427883753122500040013922591220469155253754355240389370036715067987738172475348413201287120621202420456149702798955861495786578621993717267170470699003188941586392486647450531436541331702325056746931482303764094009380818715521605095589019374951954530920545417565038692954610423048194605370713655630361828655366765590518723581249701391654389252854105706982714637313885082589590039089305116998389048822317423361480407144691574364381539194368746984551183375536433234208764273860387537738951647804248988949654587715996405365031552437273808098287253269840709967602127995026873644063280544307666935673317851778069524533658986025414467875804080142875992047163743882862327489498871685398166188069425279060120804458553555718277053525858352272436159497910697633808692943441153488717581925016871374530142989469154150410582500582275108855808410998431580421264030359677447600056809611904855810911170763187684309379615947382516195248315581475845021351979147190907532614890832711907621019773770236326544710261616030899303197752527309265670496338964353727899370942504425868984558729807613061809574902628093642773395612829573663310262743390562092951962575848236787675382373201763181186816991077532404814427277677612858201313123452459983047658339536707242676769782409643024903494960982478401240726440090041474317307005481171125249094106501208110091519150662675259600702137706869936117518305971584595235386784252097159708869025644903649079383424369467889260666954287326634900499490416567039491965948277810217470543064366994081745684513791547462787026404218768739201915454943964159197101108829089062456742333925708046301717321909869807559667650143305361358059755338678304291807722653477433038289170163741993158337713802912706306020272129260871226584343850351234024490148571519281942612503613498065819331220479554585627478355477605393190062733337509682542761150768555377175072112790502154416806156727447531093890817268288852191117022502016538405027103138549463198071294596991677340837514429404911101932693146548417580580832341433477203824234032173719499630626140703734900460296438140617446385042999161503061589603084119859886306543132077495200448477032875622514185926480832633030942230987855881695868813122547485312821773401620746922443119685925531352693536098487271556831461639466248863487183520669531157715599213218367840308452544853848855663935935967488739499631186928167757446261065411642024896766149814387497602680158919041714869746954123286564677056341016397088719512104647433458042249526298630850201388569723178147527259501052840960798784807703261905467027378141952645741161536462467478313120665860935352365137484300859839324092840624409146488920699423487471377199816510538909268479087334507989641199126317697843028038041813235416675080454334280314125679180642853677730988006731275252690036436299207989960210775305882012978608531659005600787744531989204691750342796809497038961245327324779092848493620336939698344983924745594270673889119710035460671050550060520269297535056032680837680314090993389847546738096613259900474767559975394806456595655830544012223713526771952947059064738859981125055773139342221417990641050621028691767507802251440110184004366865154790063280924326759276309075466396420400965257088582524440762018826145584707881676287516359902415468876825342758191537105662487173456837129682356977608331964606613079974302605691316825472392512954724120837727893463785649493427445654627219114647353268657621012608472411771180703053633076098624467381860103690187943751373314442693134295496150047033013350975443405704097073979869313412035872991348726623458713136535091135526280829960743097112950473743287938384302783271144429376501151077720671086136364731616000759549667390177164008992565583065544858859297567147440630481877318749637634853459056907180673060498726393767148754735057080666435195130984512213137254828502681578047416544920590643192749159058700720224617297796413137732560937333740619859989044895458717067669544326830742642198091144310076146844329059316489023043090399129679235896522128987222310771219822675958543321415353209336692974961170286725890817644450860042766743944022560972335261294740286324662456979085234932489720637247330959696598664413430535328992285908548686105900330561433899789356473097360545780533248172576630318635840474034430985297278686597654554844463366544655095185550674322700908585447919875689648951502025401332912573733407942955478987983714916997396488117752033035487104722201666820034090989355051106588553339664031334440216685653367351227936386907118845584407121314367057147999055232434852306221439877833309327406421933142321179994120104240214974137817155460590655240135930875005499887263238946860562441312132769812761543017410109862970352396351511735553422514295872527976992072811956450830034363216975677226398742963867482145131247713333091644957863391667134025417285618545031798124426240018947139850128013453598567183114870753965241257640764708465615534301833002017576013127126947851541281149039026637586520567186824327114171335389787363137039981944479984577888838359420621484878692295285998051874875381670962663211968715610861935776540508493102385328081403468713417613614086784634138094335600628984087278573176385741419727484808143278269301131677207258628006317974405867345913857281427711343229888013193025198090776675586829017169537082639099894981053969837140967721241711870554572606266635653597887729045327322966448462515358584475375546545777210776297797070053418597548013516654737286451121617869501844232690722475668306740709864393483190434633948033995727970969123973275180539198752496037174742691587916764763457352189675461366404951847727605886983962262051492915455901223628079006168337554641369040945540290297079412295820817292730290953459662953297513820159098010646169424192722057615981061125908669650305714332102051668662597208954873148936788638270020910157001489198471410109378234727366526993091215848843987819806197527556605872201454305360982530357115858758899004486414747471056226205722462281262013740654959336831381818771549689238703500611971934221736386117270227818403555145589787125696278551206322548157414954326895943284219346528729779065805373198449666280826768443867409601576583319323784310888198530180702351931035532409000521768624623687843926515475463459090110160730078547171421843809465982495455303445660443522687305799533972462721914302473552596131714617211343801781349232798230416835345301762832465658644684575568428689301805177313303519869070648112692137638657334409822492290760943758924415194818502196109766693578611779235997832226613082099575656462525718721031515269821869052854485587521595404462826437601218766003846624723622580222129136986896347073774384801082765983197054199402708325520127521408782879655043921963848156290428870081508285673159470203524052580031230302035277677983601473503377427810478921441825762981368096644804319937803081876778935596223106826133006103994349061419927343335439203080393767784870573669683185380967267817876912646347580937052531556849051493612178320073144711189131410185672540348719411410211045927464924614495988721673459349125168205131057305032602925275607530567480658220222279202721350257161846273437704397343145844963576736489822901751030531697107889793021390102078509941304943210965834246828045458307091153399807430007862446718264328072513008967701861714247212491821669549378999076411680788947992058181362106435421240452665529159841504887186777065861865235082025337807704677477334510217634229655822148500573619848272026211656110285855305035118279963287534332987130418793149913680784590826926898181921390764167957829167759849400951187431050699980946173248788161949470611585572316560327111011836533313024411225685578030403235760853821419192399805500982695938580728628360867802124908568370261710190393357777693262736349717192345116470873296464638729673481420077142836190561401469051403164189890128272974532249460800334476515858040134107730127123326601279583209624436041267041358009255284991413893781675769934025927772334150933670085866435854291505125946926018522770384825273387538270159117320041655574384880646901480973852888551334599089701130327201680334212742896942228396168302676025071636859558841494360435510499243682541556555318946636078328551785407099816155118766304354380002768656893052714624250433513858804018044638644834839287956840750790213351344429217798411781452811535530710510910409539657537552915732549611248055267884243586487523627672531881422901068951052069994171478782497545050836297179770187064382728295185590297154327597080147302956897774096299518465966605778900016475970240790800345547809565046390416641728470270976962184155050354223495203729143049643681879922292980385331490967460043379497760726078825355618224483810111246847832364980335454915089210495262736590940948904714459513712970772997434032952671304850022067728657359843689235314647756297971855257774072418856234842708199796392862665444252977784649297618975421393735614746909242669351720985403418706789491288177884176141813078991025559242581095391388699291303217860719987202368977316970700637886969692152432044890338621062421510024959956870935098442699266273867045458254174386635382059978304374308330527929959937806566003783000783942443683132924148274651951602698190164028412832207873293386647703948348654764406556789962117791242688924767551181579180561157090407790113868048725158574762939163061219150447261940747976846885355821784996409287484535099435583020528081666105408325068332286918420467996266902352311958735148597973825931838736958934295819649080665971856765497799974076529911362354474079223612518766024409867931428182175506950313865973825623402551076269478271983285404295809084638567809872175435910266100947875810185606058407467031674727618828863651401915338046882215889866514707324367194141022783446172283838008718874950829478692417423310642230520818731863844308618986349428956653549748073800852861070361956100058546104532671911711257923346453572245295049632108710228763627792697470371238361396664053129841881448132758629365542768179693652395765913432949323165840316993891040597274883011426870502310320655576793561180414414166730971170408330504552656819175103013223711443801744413515865417593720756503028271035531231131935103802728088020174446961517863312799833551411439371438241530333028763378382868544146501494720726666972731701574477415758533172621955500429267501623774333327623494449488412376813822386027187476268772174153380408914241708587493174591827276522502762795433914629450238967154640246262861247288573947472658000085998699237529369163936219310218789640301683975113163547243689286873123582850590116044766426046353553299263574503110178329009043493351554898215198613757390761131380246353354050481543368960789673465626094752006626765853091186878673658002728936230733268660916543860817596868179449999061151314562680255623912215600648378938891499980434880659760260161599004960297690570339349631683255910528129987930051082657458109475069558051084972049681032939435109271919675334969530486118367900954552300555322446462783375001216763290257893955934912736593146868884582577107948467679259564729803333850664739833771478437955263978311009182804620436583266658561787490023500294139480846297847223931871246681421278141317910486796183445662237071162190078595394765234838338262530637722326840543809162684711401969846877795293238674399778144255628390852454416294066206847761417256624454515993609445169831434877544048831229171515533210189751906048799700929590360142933782099629191292929315608370935266018013064522391771568324093170963496430781952167352850166328318074041919037949101494385053944062472548077461766818543897560299246466407869993317712787468335607708638632352788155555804605315801966084270126011197784520663872883106064368057756809821953865656439960128697252060807651313188439638385893956152958616761643685997332082069528233365110384487021672028150308195427333904472276339756883060270015938231904033761061059841311000576362477103455935495261581681750058321703450771509877334197833615662317659604546141757186480096257774109021294738800743534422012513567274347350680688831873874554598995435134107796559702753423165048891190736360503557946069368856493034997384544810906030892957605608250958367283615855633238949927538618126334537933030839719546611273951568956202951544125473031332193007733093632189496778418441830352149024346120616293140238998458826260590640987989521224147563058726932098272698638692819670179457470195481541235816725959748476271006545596914283480239786556410751000817432000628675699880268074304287083662903704560768860345030444347088630062541406588460700027252989455541167661940249258590319940389270088444089935996980334600467767380725475133189976349457897334904689233002897587901298042162396446090806336591197937348191858391287154980795780652913875124255978874195087679845840262100011051063053601430912899364646573386559721350096999618144643398222834124010349371831149393400034373127753120132474071844916448868311159420843868548151053922012222372652692415578258299059147058039967359667592790989077658099322118258524230169869477297644277808428469403350231721663573183106603735309740889297649876831220300067625648388905569915207048269110469668359356885213816246315828424630761922193089613458961222783162130891641273036497692840992667036723753222528359660625517777822297786430044793197748789748929741281001524391069865357057197313399824251796011950603581627800706218418958829213365078202453199266517615450375317109262740084342980412300154888829484713858249383153796407638044621581501643631586037928438123703353503857189711988297361126097259274158366066416927102562740644034049991496937553907076829721026713766129580728084923421268807179377497052964206050510644821052654001950307733534604451608018441449994423686388920191644343234475268695191207278384183611754657762907070359361057901022261757904055490202269123949545709016614408384381854046311549903597137494383628492013058220487811202540219547215688639836249361783638295567759627751869270188927537370202027409408472370482494509624318811015516985777566419919112448383312616004713251345744642206869130705517734495157406206550337155411363340434282616326361202390134331418422615818911051003693270478691850591393944225628484690955516371966978363363350505469139259224557911227471281232518253038765716477753415444075368244955782448285569335247573128384321444659627646888014668428813584348766676319209024905305053367085184178479709608148967823544931823261404034623225318510925431613207506318715419320849192374513088284623599645584888778496660578009411244009219179758299950416833652692312698993152888219695547631253720050734890450582213686214477778751886652369761484418958001027101801717556564583384879369359031637157028590525497004113763643371915756496823631086758928277760737558408539846000392952653620349085241436675949224492061088804482305338119761241852100361347320979924304486219422860690614403116123776005585752607567037169125131916783807004692267540018904162126052500793886362272189158043491789253268248050001032843205057082019689040855961851469250190226341547546957867354967891120126580279412758206725651055041847159340056698599915245634098249466270799609920683138823992096531656213368232612619236470947012512918860153611135861430289208330657932975724787067741285191656798736513991344365139593616359101508528865363016166766068595462622907400178341218091803873164176073811042666657392506806510756473305734433628383576196031806195991374842481836086002299331709319334055950057268893294252915301958981386768565443172072772333556690077759211636449211725303131660621555777106133447760308294859651631281875520003845184199609353974145737378590535109387162900538097339880028662840056289658163744703725261372639487160389911040462241000287684542521444272118223890845003597780525471201915968833518740607326639316064621432288878644478983034229959237311882618487319224215168877675331425612384689149620576901660359278253590186870145222604036025805992247679164095558832343633696314898222217500097064440076860328532785374826603432196863714091412138340553879883867883720634404945835777356097476643346880725736959907690973647853274567296216853500123137662112399622515597596270124477751960530674952516786377644378906987299532672266816224138266981021700007900114040262531836794241747858606002511513176038351045355206885965705124865099111728024328709358725156870392720700931356349800900131911936602160356451154290093614492024905644714795439022184045023587955041313131421032697073621173672944609646207559952801086403434068258451601435245950874898068751367597217716415780246087547826055692107354177041347639453062230453682709438275158973080754550650644514814264950483370819984389208787972736955690605977026759291182148283477201957507948032194221320725252094376438439162994847742264171771825590263989702660524053800630015153811097030390540632835553052894479920266013284858545485869676608054457894356023511820936975503418860243213161848234638528331117516196422928631382347080450965514338104789750070233408608755858016721555020501840498265726920685541340384087280065882195026339083884774545578075222854872140087913095803395375834351250973153597182086353975063239781283912867752936630440551593952562584607068435716678889131383058126781161598610597192358522955330955818716635659077848169871989909471174799153790953117372691743048565452699449970961812523930480615666000064611823285172861288793934304199304596391817814959896217787296501505474665185549434033414000318482339255477314624670729041390930521811099043853259921986319395905191795442830610401060901994534230181374367980933285795693898491999789917081964771897694881796288262247419057406855477653894317909458880375018803844834502857651209744963459821442922593098475651810130824183804363796728811104445212521597784404558709935122627490937346134684445073672134257029869677643948690480848859102559759303090657918737778309637461002467912802174895364604081030057772608656054621868430309745584504761175702107143563411447991645714866258958111693844519777338093301603196436928360319069931473345107051482930516814897106149721344826013021597950787838284677772824954413402183472849263665085985056239644098448767529624817566543325162700357561304922609270291538465437851520106038921572919934768190661989442903827397717717928859687326442132429539300702253740024778367906975450025378302916993755842762322216154014174670759813927381563141337332686664910314191551628779163637005481837302749481619158758318837400084396961452550441360103074047439362312501100488501152004805770688832224560791404405149822052836010034621559918926805254845814893298240874369787752452494304033483047963472193027636359563913687160044383561744053912468841221673310017680442286058307101500947743660814399841106749086268287837745926796285332988247883238862912905079195155003783877078315470598903723314688741371968478622780775477885713686064668506220325484259645397879737166316788713707330848894100753984924887689091260186544923087036426982149511758711364580480637159993951616911565018933407174579403534739832090880493900038855277016249723089124875764392967417171640189142715302293482109067340464012870668790028568695732380633297661199028901531448070055375209164554170809280235884105339651863278120686563658652577012840299495011136104539627103973686147954046600856282258192662830340109846939649021032926106668245853467046808198749386339525824212792715908129348843554872248703216499588441275578087252996926203069070138457443278837557508706417102750162505018351660960699893638995614156837451691840951262034768372731331900928528837854532991497879174976715455032059936771393074964742232020228026235719218915206172365886840265353976775443949755324797385340914253927627786379252434522306972081591705650177455019510090335343023640747593597632645427930052974522473264916729553959923468346737398440550715119758530292885192417002312843563756526752445742828967225154856302287860816128842204547640582426842566816908717967682202973666369864851574890476061191311715860559596618297061699759590357229067916992164814620374683412525201453500071638574251009359939657074225115729014199543104663675845675766171534988248992322385568650807973339088070044010527116061005074331914762827122396700594092775143460914693203551134267897775228904537211733229831181229284979077186681345184483572863646914177003066522032829827616952248215009244922056149622075627650163297986026021203791541827687337724227382821032313886467992561639969087244417629012346959699140359007159133138145300535429629119551477908612417388832188541301982428864513138872932012421376375619797302017740637062439816642287970636004372417646142138714099397681826192710383335506093379167341418724967075623918424875560635680459731466292139341289667966316159309375393157064610746661292234383266540882361888349710510586866033394526799682270940568889772893026273779328280656551750689985168745706758206506384139535992182009412034319953923284459814317873142732151651913818332847945418066018305123037090114406884338726606553890093481818836875077406588938658356228454842806503604925048409601529986888871967209626244483040479327648798555979918362624966618642193451363404830375716281925312499306454116759726276548892500625699727960677611008429498685845997673606707981531961989380143172180892323270284536832867612213193444210633515394545673091602501876019716526444060232669878945356713579475400856518893484025993724891586340703179314786123870841019836596180866602301652792354806591257479444780944217705014390069565094326296675615221080049858603221946132038083081015587371270107777550247399790064671947017533556846086873163639765219489152979274741622909655064316326912994372574232650912441469724550463402538020169695250763522454352564612508022888607430159734918376021720196306431396337466843488946763830716366247496897141587982124035838868387004740978921608923794137044064991873171437604191122164661914371742988342775879021256904226110688218962737703080027479730949632969964324048006145394099508801832365029538934319586733538465409146665166890992795584321599004795449962794805711997156097193420551486451528039693234717467802975154022160148177558423498402460801728958987962363500224294286366588794508931787145720590034067199071457551607726883909214494502707647933872520452182822566658152966161294510358977861231499934763387602652173381912930314765315024881422945795939692622797700892092349792986913566478155881556843854672915106083777041338319235490832842337151392396997410996494753456536186077940917968803941951506866161895571744661620320339774832512755462597598879782737960700799590368397404612891358024167101568695734757755248577429836418808437465285621222434048660720108727075332759655172170862134827576124065083430900601687745691072962703354291313374403208824814775181703764263822421090849465039750492053452561423851757266362487656211448939734757345275022937921989169500694924589457410975846840397094197251122422928950096046837914481864239382764609066197895163541726425527876395244808341274499985446902715166321198529452998915592500882864511265864682320048323392615645349315351689650479776516188005775055961877875609254726951328809325311808212499077646858365103318550142578486538334295490362745025036671501862074342190118100783772105083207088867836705266145112786711969247340826659142222460716410534368812934682522550743454314942785545547120554629638423651901749863445463132390725756849425804562271837315489499755225718955838088148780412484855856692048613838092691684402926796351282037324228190350096409946330328894017855591059421111816963535590835537717907029790900639016435116235497639983468327564654545665237354809586149590240664500152059835245104876920912142938466441277322758323792986409402294502076846001516755386837630678246280455071250394098539117339059007218258776220692845064085857210986165772992372285345490044198474829251148871071596944638255651597755881473460406602176627501876085275658821761947964375162501230104340870604169829698492831346059582409590425573515700941394849224013445953752986277870441071027318684456492413194515925728829902323462158240115984584647337566838753904939376316379187072132326592377062699713647065737150285540981191114915928998382327786250546051821650973908113812798815572465869386329752611574999479863640955712790349885167086072449822686555699996065860034073827007088391831086626061787799678319200656929855714489975974773696344310004640442291894153154553100876217205033655576511494806310198728283960395294277161798363785583043877152085192154310514618253677161429891475310475080440769547528345172082091759684476232355440619726793063394513626777862977945223178309575262307642390087335659902864725128434817867143263314973974173454197596482220886054683302262576338112806761267408018833940746938362343224792954263557190716375110982824975715478490730831450558124340407896354222866790432207962627394424473955239070338408786371202238434912564127672101990019188788005473058025486697361700946766965575293874162281562099272120256683193440459435243317375049116927291588642421510094547423699313170052405689443782235382376621384745058616822545646477457161013291746608322655159345731528171699374446938619979324713351512049560131204014678033707126007464417966580217777364494554165367661101584619067625920178617852692496910200129081267539321818967491661282418545111886162180484934945782652679477319416098821910390374973734834690304580074531496710731830461925233466469713308758275192346980656961102160462310598131467147573974227843791289178298771486053441387119785014668627328556496506967684214526911504806236057299654645669902777383211326544472581759236160125940826294120548064600072851944209371230402950814537203681035496196568967941423283267403178318167201808516428602623761997869301259484176616938318374071763204536788891760209791068651475725335572486682842277625590540116836263486667002569832057502775310561196604257045923735999062107807998336858801851783675483018264143296383633272805799977877507730890035404471904645241555880161113646351515915811994864358077880819749937571879752408692442641751517658761382703185361050950606721409965935663768706869235719633006832209703671442579021881589427663834202885299714361206675677423549459861168818916121985781994904046166816255277405687800773501776330630476112646643101078760882780393287275251443922836621435785417010118667981609070670309889267673647462288502684689687383655131731108135645914741566474940741728866410764982712106040736406035334857438344746222703334971097270935130511844100186385852124353269407998776447692196082173416755044047471675520016153683844042010106526825345159753458071516169891973560620315130306761061921906856392092738260262908725833300864833489934174538943961729197365920294763905200270246787888891131345357327880417239133701542745074137590079560014200962126962985084781306397298051167176735859375006989152640128275208340278385909759864102288367875302471984410060818907977808866571672243895299425447574588607751483414934092825008584472466591111946189414204497020371690139995461096647538943838200286592973754571604052879579105405207046232660081561514692449312291885717443738976122774257508922325737048894756010262169157665539840630799094358231701502990044821350339195683116366759613504401625222491165796896219678626818843096313122152789393705004369473708444473115094899426650079829250076963087273833964527660926065718169756133878531517478546227849192120245530864887165317964348665796672632390678885276822207217577491411716947666121519507700798740411696974933790128593959694828704320860185177237174492148850483198116268595075728507289003367792269967746572622943767480187267755459515432965366019723895267577414884385086237660538595353263603508841421172527203128448387678321484555165143133537466744210981602662557065923754770802860863674089442770274478343269974808375639545162551840023688537074271505369335548234844757632071789354825376161228093090470283658406630913353545195340763185107470154294909001080175229537822909708570533636312102279834111266379501096623879490193484082013459987567579929115911425683680568497211213774107404090065839818333906846431721445764448845726123883893577761651863459444017862723212851724243601301262689381658922152279993326083620239079937939617856436283073538498414851211112607327245413538786501911396285663414247555431065436099823081622783204997185881237682687735548298911029631329574656846089306950815682226147244581208452005953819557298612845707912921191538252988051057529602135213165442297426145665278999820155200681447138232543591823230657850562522509009899769699306131000747019502841400071332320047611321800105801365565440852998062240697026647671158813379354502326189582184960103890832004435021578550544774102731144335354139494407464669533384224661689039677441955756977240562120526719850750295215043063512537693573112138201309261111834424613788651583633599501258042781171296715484920881924509899910984345040771656822448924940068834748836992822167756859954204699119933351795068249363526522532800542542643044401268319856213151618185842048324185179044863244290606707549512548517506350256267114739022182486151186336519452370130544866286307795170494367457597072313203049765767578468507761259112225365251762308291157880177072529079920459027027998049277905676082671917643955256197150641031643989185931868442339770685049496338916772384144206139815386218164061414804740471407436737941847923866901720969534463227810338855345637585051535379526992726920431204627949835020047691022872220750687734389934711240407741315697496255504289235686471354721328910462182304417139553378604745486593881013342418411233706293817444937030838829369327115975381231936378182804023704659767893064949154304429855613902885490564335004860301932606917444640814665837997617324171757987511583446259790744610938253439074013422571395670295343153840025852563776269165473413110322928453997641591825283587129824126317945372433723626158143214528397307740003731876238716832265429965254221351151485901379719908530797175131014907161391805042385188156058648291968105555453719085121963468935186680437910675530821853606299896845346115640513957116508041949997607552954626798554349086452837335765351814603129335676175593028897837562407281669104072806710281137550570689106826823195344213602288332542591177193840821444517027320713750187072318194049339082949935797934415842393050302379375027525267097853556399671084517616255549263852877631745341206036512375521822436468214183543291118824793506249030281287129031874405032525263210863528014447406083861698648700415182533585447048721028013635549698770146508805167187239392648090585579653257430941066162296688608659373000778911914822130663453108112822672927960071613900120313982834423685796813515254419642151381001833916682518301158038681578596143288431697566086730920616969406921523103046060433037568746777748284279689053425659972800401544183238032364444544444153448417722206284614529693238264495263670689234182927468009482472146692464573555328395997564429712827999557752659545882377263545104531174875049586322588937201853661635454319719257061307938853632166864984462057160460079418861696132472297871884114929734191636289567509941067686357339834917712723336514463654725349377416178119086069786936129453327318256137791301630325662997990382229874070329761331261068196922804061502150622560577742298901328758419034525444231664792627213121472087733068249150925492986959746556041016736992062351611309076807270337424051749501179058234950112807460066360686710216795089500803623232892724538968883022157454528091716983691631678297166325096208342266110678951458730897575677387577625176903753074685480782638358451675343165520805618001643753549770099421379146488827716775196403074366213112299101331407326224799545126695802619777089505039860121876266358891601754071046525600183668587289962247356834033460056451654978776847188973197789584454610588543886460600774178615598911485463274333019165356084026026366006257095794607326355400812083742800747426005936335056135414635395187434842804449063663862173422779049970288188013518475957305608165720255835995290777921235156642854715138963538048585073504695030009432046484551037981705593589397334242315170029126955233837954106469138012604117783181619794150772386967786474810316159992824243261092899681734808928668688241677346102081146652410023783150516548444710948987196187922399590570703107232354863220831260317975099933441476500233079493080567165580117130322067795216177186522997553589867162749605992775214566115714350866869820865448422344065374510389358124808631673917495260662506220589713720181898285889024563742916304641738627780708605687370633264442616699289456541988681457243097144394087574119738615276170216430183939667035695529917779035712282885235139095792913580313803643095242947855994760946531646747147821986343450832351542648864594099859137491205630788467037754275390657426806147913670326160526164849463213901558263134445755026981316478859740262709124362820218309478672229280298541038528954418178119149896682884242296015185487389028044429283952030353772764620120104744115242102713032498413025722291350863329231104580398810390043025590672238450775597415634637424994546931752266271413837261748856029949352928331089067996737942910754029439109579666802577282156861613221406666316241563351890453639129875980977358757769894111061689723663645820766219670774136916472319920640613647215248373575304683320622854137269166712633440465472179162019170407777284929399456956271947826557819494154041660323364251594869893723668782618294242614453997500862977165161150894899191160934678704038690081453605238703625542327844288279287058602889581003634412777301948016382444340745289012907491614848912027698786710681880553237227497724590820144475542150303285397656343069804778702743248361053770858444264535955943816855091295142957415961767969066874399699211910641763149795577281015735214637395344057452726333327693127950977409299924015274728569788516692191260969652641328571585080571130913609549735428331959494915659520588504419510580656058430020326272201725105508192362419450836899235931765003948873016456586913667886976206389247789409649898543460754772296621761797068305671132441594009093607400641625400853071511830918070540862919896968742702130942741178924337373265318538928239322221137783708427074546582247978486870334003289039629643677196843204355361148438200479649832697672558415495712933506130539167984343805117025658543430300244512149853910161596687987058607996349650005387819354423713197490450285248731579427107898206400259671098194151271307885720071518904126128542096715685585396952822629213562023428831095934976412638696519145992938465886895830633698129435472113865443150068764301198048478535506650156795042165875759425300050400593938415048065987787449253694461746050602209110165768295960477917177422210569906474585343813154786492337491254308114721057879835597552254573814905672134021510434585259931166946377630568513972024402334769804697558437131368599937256803603166885352376891718851816814126967230497820344824704910514010754384762989800631378502420480484722031578814795332572111601759194426584601801577359148268196509466782979997350880984154852346429132585126411969677295999124337931406191422147488383172542250899308647749225334784695313324338873671704663151802131199835476050005044968976325599300632471239875629270940074177305736809676902289917301165302909198613144761209198916359000434984989640747249585039437680994849139527958089614123142232966767221764329040352340187096934489733539328569255159920204971292146694069558601559703945496260081749980765648826355963890214035393757928814924039375242608675026049553269282165040679744035501720877819205791752321743321565904420371368392792947513614292376376035096809466200714096573673811817460569125784024254702123372461530835438006131721042049674344955576151122668883879088996185356176381126101692469525143770267205842670517147421987381543526125815925305129799575115385482625956503477783734119692923345960624052096360012049723228317585009477748797494912695119583868521254530916688988862907915183997780207820719992566103220707166571695447040651371998949393747580419765467730686847014491156268745552775376366668823999077462490870328219421691986182388662472354331115885029483163554577143265152005568633166988272338408895600091969935333489847579839973597109991924177333859940047420134348979757264623772941488403730514216673604144473105562609245634672749107767339226060275265402623386121923645198317866811151002239554671364557881029023144262022139850736893593709165177581221304260487490669395338260739682575564990451591183736660332867985302001368855555556025889400226716373465801864079231509857565036884076266955557087641958465376781998617439968751029717794765700415115496008929821923599710599608242100173897179141240827204097674445767036048364209368711852262776270964061633423912098092953777189194275701642852823442089721910975580448101513162692562833726199870698748832197200716454715487614255884554413463893396052095344066265772609300223592394326964095805228988448389282047161964423942553392279777099776556424648694115464376510672416350873210418631157280306426099769764240451964872541844064791560144380633920383416917193076894272005954949112184579815471675967251106839965947221491091650552013089373831768391036134743245883266221320607633865196486024632266968498438500891457313562043514614671467051967944603870841191799802882326950761711319033550490276793491724022055959550530712477686156470512990604285123541636373319706123962555255946590940299387994264464986803116227274436481280111672301929438515581291778643606170034163663575813459614447186384570169772293460290455010001692378897957315212607607070517843742755906933256296821578713074311243223581639614671708644069095829692203387128485795354533221471570931064093570200890366919748174778789637178164698045525162533867905794359595978351468593864125568392225516295291640548117778994501986600945946922839837643491321816962628885346296529303028414259248554108015201541689919657108485163764521966416309908212090789580124360961215058537651011075084746753082335500594216294455919314285777987622737006244166821766069298140253384921041130619223429341919714857632677234413103652611957578244572057584045437070689654641772570320251727715646175949690404788437652757004203687378845852498358300398288977833333062146295090311055406704078404792121428355420811491563355108520249759098352470728925538068429453063015498443538349221512678634433314083067474252433515162269423744255725154809565400875269626269816259844385212423241776183841757497559630458948838238239804624045243563639498100610791358336081796889067911271363826866921260692642213457706056901685871537420355175966829264363929926522835412374944102065488065606031000067631228215912260405520230497998493523167374211394893938975570438333641563310289454857644445791986106230232315503938517803594526227494437553051120621107149127030208171258824152912325773887316221606402149557841656066262431079552353272241433289098583604811463971280821622426898492238210224738430106432847406867824616732058798541770441635328734774074380926103206530822861395510910429763202125282755080983425833404166493108688565380689404920714613616587652133774958711830994008485089356156095373619239001647336407682304240027406329662434318058487558871598041375170448939213617952414788374357364341454682196627241253974022611764882271722813711648859375141877527380662312666526630790789513012402511860293457065161537963355457639814009260148856221673485862928955253916617138745393306264882847483878337056178478318268013137729781098507154928826023399012839758084980802252532744309431800815043387909983046700231795046645832157995387436702362007537181819946103169263306079131483068466833863592016688407657640493448179137036159290389242195511099065302775376784612439030509074601950104661518324846485864459337977647859867484732785336115037780934450016835673898047210625025369701628811964265282190847369131739030570103736502572696882459668633489238487156079468089788574652801458449808068480099128740394432277329312641604867023674313503646584218288675647899612827844779015025536225503849441458846371860699420234940798738394610695286072721661247956816738676518939411712877567541990896625397657071552614135020522377221977908206704114415074519999907381861166202279232896570406663323937178618283594106651261710247903758320357015746014646111609870213974634086694837102767066424365783481968852206312112272673308177465242923676762612719567431983652967867639320220772959677911172768330262735199340496779425609848612741687759898407696073857952566953085393025162740581643223370138697117794183279257097783156885659064712856476022710652684025612646458747426844309125789288413747498789643440994022320739556514591308172654852289710613565636915634972834776523159354523442832358430566723991796285483830140754720807865097898872389621008998588229500462254255407175814908222127802548558112618429920569819937154656914447818892872973853945182996158206003865622851942663576035770830737147560840849549025800588991902979543143288685740996068406200571266807684595266814863895453715784403570881567264504204425712877223064241738126368913475918003179947912825955825201850071595469848996134505753452621844448478170070574011497272961073947563573619975539194672101934220933157637054336618259465229940593976390650623863746879646785294102631708942343271572790723206740658484066885095039236704025963176337579486145131471983260752668074204051428459527411271246685369191307417999730266423169599089345510593225334392791522011234877200811534971446131736066512149988182346816713456465108114611830066095836643061056498239818747843062646415956413088864723186618424515739219211868077213886481202812363833167661390384799953087766598699390520993839363742121004271755716026924337118758901603661021122067339988331777472736205114491706672497126318006204633683665052791186518400752251445182337224486777443797480021965116236006348818544050634364237104458197365011958368764158999809209038925783991985523394345590945745524197876752913975802601272679165757680451840775312569745802152739409308513987737747830960546546609115841826861431079433492562786261923885424986844027985342871669436780511762995680767585282066754689078234784987555242223459762558477169247283321888228416394003561615622027312967430452653806674735816450434365960823880306066213383678579388442304264151328040431295058841440844269900701780452229943522281581684318894830490184185150674326237841698547138073592100234069875367470235934846890294239492154466357600729079818682190098206216233194398559631639306482026707392684179528123153214953345346554955445322210063475114766045736393766081036881819554842860839069490644033856514412130747857362531035471559002207204263673222853826115154424145401757494495298562178047591553316531575467863931254192948070422432411471099017248014793493631222819429785189107867471344419105892367740769537119700437963736149280746314840039214051160808844102568482392333375046166911271316220732756378975444311735229573495806806399702702377501466945851997913764938681251228933529303764064050962627230371493472737642469046259159587054871338570687832781512164076816842891694908678092458658844254703422444938387304088587500738814712817745485125977701646535431018208781315455505406603889534026887107762320173184512776149589170392978550964442529730830329830038175326600101174605946351177179192346034931855380419778467466380206628152499728782668276277174308397274973038808385001407253326053130474930648043162492099139243336549306468074041692252494450064797313594705247332825971164164687679304971513455656067558109257322833133515791153837141536506189558221941697181713801509785696867191897619358793670943688206107548152605114938485536877364270464069892589152590034058359256270392072065424196694945665262385512727333183078391966102623181726514139358371400504963264353697933362498141193222380362167824065222033862104027807972706586670635385484655636181068510368178202416540822362903904055230420079718326955089030227133465050339733318826780318954301493416748570694541947905721819883776319291737327723863478141801573916499462129323540921920170854686356725628304054799506709964754820872170516177529518063752481585332026084353874706654334067698930643181604148377824027751911546746848693575999926071514660888759671717506038883135908468374487432217467097077550776173547370946169665511686463891099086385076176226594660329815970011979281795188750094270914521107570686949601861726991168582609633546375868051669513186434303144101172130342314270945549161052898314438232784543117233405575379489941914624138381150360184725763913049663918913415987712709090406063466507422276375688717627880735977895983339561860622856531906998514991789582249598066155825739632692526461758711269900308173939413377040662138871375077955134344147216473285506407436355906004722383000259810639983386351488324322410735379803369724550190273852974688118541019235303002860721169957313612587962075268086901833294628248827051845222744751071199880847231189498483123890025620080226772721295099702625806472173672597076177086586819262061914117840896831555999332114024076762956400626581309461081350910004469996418736047706046350226496560374995751137566188680020654382698291095222583735300604784441553473712027938753770506505279869422254355676249751442854031155479302597160799608104622245553368994137610301203952856492932906208530185820954764647178813341082352791856217655883818109858986015756446255949194335319909066956519768035397159380550290390626612509787687100446828018778307748299055532819884381893766631908808293555811483737265845499102667718764201550088581847666137216030337088707099767206035742654305858716891971287394605539630388990053944575696128318598511997551860054099580280490057917641120307506643229307720697136411132025698678012190539548606113873203168164344106171672924337248653236888402117377184436009386586390307329190822338639435549948229959649881222642457873390530231701840868709737306925013214045843526589363877849188186641837398743935846906803768581674375076822030863074770204813462944651085957407362468339930951972196879956760582272096926789329921922545402681630635793739994293303496306957409757101153598681327685356810935353428539890982374974469062617406458959913703603659714972003709389910133157105420677907108794588847847549598415140567442261560487142813184925967827822860237730526732883094997046178421881978161640743352281831409903728395226575315757367195218933728600920940663348461277195290652130434126933435041951341603836572943167142476093991193094468826631072135092622852836225547906467673445163998969028395490399362038920031225506385343471286535797066376250234470397518165539577197118096111538687239435598813033089957701862101141975552403339523319401409995190766896189105217428457429899007245997496469309623178395547906837972249159203237690187457052177359043459103883782507843834240330091914159904556396113585712579503349403824597517227806249759180706160966262866850804259167497989669083090029714490459027648691171017489222909018422904259165835408203872544302634481560244516637339564602432325648633274502847740132530985238213081131966503699694093019150867699806627992297867547885614526687192457798044293572771240652681868253395476051581439347951952497547797300060531441649003025386829546499313920013075769752618012291997722771489698425103040553908857085942732981505846506133534602596137619434076602024380231214601057229474319994605174086145438190289086755171788617172135495149681264423277268905186518783550617414182785300371287691654870053134906846041565306481509859043663692821454962646540649999474078582352317290237396943940481522137197362349180398661976537769651634916013139573444906612632582978144476672416209982748474287840093532616765963918011766707105274608685635216033323663533152173281160527424724677000754921211065679693407077704889217738780694040532090724510930867655202212587702391859082024404536266111092653186451236934302063212456323190647248355333762621631830075795531732976243160949419811384134241439629577775878711279369374564224440692210364928333458493280097751215703287630101439626685455799102682391169128867235360350880849211957572790685339888985699706755627517482919727767221966656607852942900330852988914220128878912419774440597632768917874251516172102268653769781611254519265354800279981289635963950198286555603842038285587903262675608859890952706520073109277655221271142691784525792329918833176780101798277039970849635659822978342421728602791995189192611568732261109388094319475701250714063686449025422517131465824410023183216583645716341377926469168373334205490090553838410294826891834946958305856413672052540697404513859901580045558166882581267116340534936755061070018367899741952553131990865220678601111991009781979494550329262746871328468664794293377893333849405860999754944700584622607648243428233111128823405474235364316431786265988304107190052835956783756472563762272468158966382808167381394178098235350672053857776877048714439002946230028217896639395857562964130417876120095158912378376938605406210786482644689348621681068747881857006779449808800841856926396695081233220474614094655411720642893075908313082480110607613462030669679512707012939212060458976956421802857262449283504488386323543096305912597821849599959321958925756545381221673128883203545810614493704742833737287807457160620693951193104164322394697088909804404503339353826279375757876640694064638255378946579318346888796802207565973214582513400022463032352758565536473227495027872814717501332203398106400964754862791358709909049815152894888384635687757691417790745536587543515280358472180854451972809207164949114949181303329637728805717122627375192021867506919500790578673093181535463408972584997979846985460146967430867834570771539533560261155738368703097555334336869414844298186063736465787101920993031693972927149094987538121112031356691247510763692497435092943876707282284197291368431902003653890912555555524359345610119002388322582286278511620622035997990699562575815443945109501569358474016653566118883530766326013384262732318837610604863516965822286328454958295257977888605582244905268821336001308374007751684589833572186528567268573591541111028704814042797603773378353907615849690250376147713508303657521838563794556176015866315452010456996340790484329557167554835649977099130243255483486056202276710614136639805913519024119754136070041791341002269822059465256133971901967339892453730181405017881236717805309157990303791522311546318534127813235005817131874625644772593068624709635928142008083815784174560844338855592711895508669594999922837916393838851431875154574223749781689063508316532490386438224292135167687978651069461476691843640583538114540183268579131659913061849049303486046078808932440991230182087810080798298610202984785568747937041083398834764188221571149082090610375088062748221566171230129346516722227514963724675277811730997910075173175071457296716136200619037048451622605010152551579585459936674625576951538844981403486215823714487345692588912316624267801692852366268159964808820317364768811369402064819506360399455773443382034465917238245993648859041943986459681903804549925482909434878884530346122121203206474350344981298273329640997916573934146649080615733447607319560405555605361864749267317088702490970362255253418016878474691156304404668970670701016495601744089097216396675947705579775617480896050562596402596409522818973119114674614741242485091088794064951453658443249440286234295116765570035514080220305369608607813777384945119987779202323529364457274827901429078460240345091244344850802311599371553486916415413716345110096149383090653530055526895782290158067011710316870570951676683151477990693500307485480604655183902398474502169919855803326722659516757883329850346049127069711062861391692082488122665828367484473016158718771710667052754025166090311089962728313637611401871689110472944897505611244874184606203281729680493980440785352379601323236029894398182246718453705658160970265828615676330289519400594193001722598005877466842332979113295672353337036134702864430153689358851879396473031613867635946930249688787885376143132469735921063717689171109311926494885291538074242614311490151681893389806031324884204489853761613580319211693254070090372361820568084845258444439731137692571840132838846447125050954961670956482256982243659441554670250386318670497582205525985237829207692076096469670145745862064281815755342752466661587914075820576315230912549831992166218102030991859021530572027691566942401756714205828489712110328071070801175477194111267153115768654100340417628511863991491260884913596233226407064882096065799445729163829691029576430362362383427645608055878951144816609300418933997491428096664918222072150588316973627075477168483143448517042974086515923131585216432251667758800528846478694608022749120848483847296811039889524494919618540810100320993709529011710100258696734752804111891953764139103818630542622351671961538645345379525354329909135572478656234275981908448734096772605059357326027411165230168415391085633070774985948892175157320741837464125217500611686630034629185872772700880528890298895583562137147334776317030935606386958226728843114088565151075067603036022984957489552655375643233884482554614189417960611720937689454217524667259978516948610312288330538711438557450746677794537275619025790714849874800291515796970787674565403488442315425386733627603425815196625046024376132444925112574987260818406258211310487092211113750631100752936161941912502933829911221528200778396824781297973332090733504621211791551142543356420980198266652562228860203846728467637531455465476323631018763096379941830956140747772338316236462678280387467649349813413256585456791343830217458362956239770786145204854529904269593696781822741183379240613560292931272545661602668833444489128456066539434502568224717159500713726448489437053216265273578051555387992643005984585338034298655758098932457840631668442886477469253963156250979856357956478838847265945608304386732404530899899630999417452904474097235475861972504837633597255629463829398645955166231521089850221932600251470533849012074574935042045668655060094887201079668662844575056799904984898506888285504152872101834528656007410045661892893987931696035105852700206381265945876357802565610635066024623638203927912822306624062966504317187255419558931497246794299072747607973039466314207087988435086648789644978065785392491908850696006279259138748437496150485557110817254165890987953460306783204581176125720286784176052549070415866325012094747524517328931657121798940234186693073666233027354320384579347893668461188982567822571103546315672104231558321886203950179277798486299092682271813326937278606040933643634651930519234309406157633453015955436842173132104000401877953866606666444749984477859080276569016618678225267420739303792234986413940697575269494468410066366256558415676937021233764894145714358941286045240864849724961394383050488249127153591193829260521003658617098584733220618684254978396695694635007916282916280723591558067671225285656108387218194968685050309534865678730946131228995335523416792096435828741665311500962380458988932731176738225238462076336542482686095278585421193750519923639837853022748841562050713960248505623111405263456552092490199011291058887721870388458055386354153457875801997321560100135286115069227030589584374482744879652049402403316993388138222516222989445933143646288142915645209533183042144616094342445261197634790204379020542283357622334490679784858087753004698766496597781865584400527539346240726914223544879352285967861018017838807929257660919912524838949547815056657091892906584803940455720028599796852092888895103544545488954776770531782441438543750186825029446132818653910967490217117487199706644729093559645541638742736374385615137892010252665819683427097123170012607402321612563173016919905710275788265676715567511754707332880600869263434152103832387844396040278443682399558901124719692296376491703817731998517991340993338914657733923790229859226281194923171839353837873551518193974017628372588140366973169940938464160669256619305462729226379762541019310812874861307621696902716427137491086468215067446661117543543703995223901840147676585072622102319145502708297386985460817123098568744848192756781461660011594335144924721126444792987663766464555503091903248806781687278619146627058999042301035810454541119908317069862541600339285343577416442330220284963271911718628180787886853894271108989773790083674004368834515245533853755007516565690585258361240542170498764467687289612315848929967108201677661061120197229437434245798987085754173276988703844878820345389707534218882965136872652410845783896588736046525314424289772013533578790671018062213774557323780955759974410029359991578025911114380175862107291328304024829414130587878459398950189209684342040840509419181163006523425354970748928074524741212147210714681462979401707255239687161800394955498203664515677857821339193569289873601767937518940235948277604386657018220302938175430289281855342998450360345685128254040951999508292374372127482704688247028491715017901665100478949338504854886962620468656223954403185301572943969926749107411448186382146367109453692448091874339086347221796906814299022072048057774124780429632651657933306468312091186434383135693731376606330942611204899687527857693545804017370457511495725999754850019135074995244854943235265243741894321698454002847691324311452828129793924972549209278184477297005988590723660058197538688138075718590008978306793213388415301692729408696214889118288597568418649154165794602604613697071048342517095475401650330123564431153434449296494981767321297433435430497940072494670476929086516083364818018240440395405252527605346134159119953371091870694114657570543857358826714886929722865540168189570129427909035111787368274853882791630831880669228717568214368884226950757739821327950310313854267688775029201476836464938633540996909958432026372579279524715436640538285932034560224507479832337506193534622020600714059484523524369816418051528959914406388333235490612212494028135393813701506579607268804100238498434418012187660569675623894620329798168437926877077764185565650553323961657177800794440693715585445286979580803335767385244652901348740776853460455408855411714700611463760135123511337605999408529238347701340557080609191238378170178342452018604985058906913882594170953884168547231868783027907562967838891179922837670066663187074830704405660438183337133945926746657672308197125310592923636410802143472337065335731744015055923820018511299268103084289441385737932088113324957008552909845574057175643518508798329062043498699878305868051085401319491003507725843145933451513869401107928141034316864257260205268553444689598853952472804040115748954625642483538109160524839715548401437588327280411011248426216251694805411215074898815345337555234885899617821507619918128688034129490671587832287874527834551986827944222391174083721160717697028607834740480710481601763797041812432086814960312644044590127778924422924281287564736318431648357513048855932232085602667139484303053516196632971934137319514483918990440526122478130495730756185618908403427743285458881734492935974246347553211563124266091253371207050847018811474323465139450125897313443311268635140110944801384421586327439016125256027062086284561440174735039160101403843800714241773616574348612117576587695406094196228192927683151802053113499485278619931598931553854248928614493202773299629409178774692309942102462099511076838467181442106340325155206066451345292258997379466340344117424148853423684683945615462379997486627321159728076633721822462122923491522539313168848677856122494613455988498936126004841260476870374273028343253505587498866453100448536721278865452029388037558598257328585347300433045056509406667388747633640497854210055217738039641637422801450766932422800393183127069630025796705719007417416830163772945153559675413927240783616974487843933609107079351195778566935277914602412417639274599544593422932120386597212205862427253619058366310485070842413507150807215842397518175918740931692925015722684381014401182633520685433766459593223113436654324024195307893184003148412822637517963742315258283189660199817732951562492922647570379715909426341247139237979645536909286761916951057800781968324736709323348343734401780230558482193744025691341589800455735003125543891935637768888489394535570097435895095871114593535486616884862201264990122941394069012301307114344686604781280360083042908887180711736937417912904810168256313543320371141315373490223420667982864333130895565870455938678219577960127591477386800425485322643493886658933877182562834123434325469508891732923473598109790018249940451305127424380750740756863124824998579960796697633658412125720125820483931509918657815085017517551077069479889059471563066384469376826822378369799184827388710787180703265999688741440719141319513954601093230967975991198714536441118011818373410053099909450263742528460248667610445280567968328532833133690983612194751611471063390763870135020772916888005639172897957129738399033684999891694072288971240160926300960444479992950847209009557858621713834225533074532544305062535702937298715898142257815308605610751984072907355912660634920476566935013570083302072739488064342629929745200399623399974015603795226882600268637588577703738932436223850307236311307519022938325978982505050316011481598332470105261101259772451363071989349111961601003561853137952446517572959811697247179203302598077924579830629208022890079546494169210405345977574329688275969724214996269551900913396895775087976224550317677532197203420274524549471221729938383759831162196743604566011493003860579423673028855835935058756630157733130239250111798662377451259113279241590421593254812337440191179988014093445798390811752229026605085542929962941112583935943790141274050273582238713772941714348795971907443259795853018811249009336430812488488754210757541057488464110972319106852432025756981348462342254324852427664385645090814035666104653881187877758800785837206540039490253070492428435149064780459172588954269637507603811867322213997751241420105127545010566867519691665702448680869862175702585748075486019862307766703985951211148799786368881204342522390395324775348479282120928883091023818289795275217600719587086704323841496564452279300615018938448845952383440441456930720944864626040304197645126192749443538653545370981451904067830464236035709577880862218668888412668580441106611861746651349491468582734406224685516241806461577997242103597349840990142648077846564184555686947157188191768059728855183640490562748933307803489505467685443522555455521908815168754943108321009731467732907522958613329593065312512288773217071529762808643839858670063716172722934712207440950397650162525305038348739523368630063257863571192312861710197279919561460537012534925248272280626004009050697490684513512149174036888924123753033889039864714620070342648328094091469447288686761855369577804457279025376110491357665968556502826292903950532672191848350951595796137467315465923961380726621120476696445903378779937290171583702467407686560640718047757668396824177976078819855066638168628840181552924933509967153258730679594396888268966302178039870935654470924677066759103272016923590945660431493119642953906956277911682227492392612856496589620380107551278547601471195107266863866769801367757319629247998297605925027832828809307252136356236929958048053798691110104387616094914647540981512627064979803967864433259114704181514691469593843770748210321459537672577371966615224527436795635544741831300037847096739182598805600846720185517742001633981868876883982109663205724057786482761459700325469893959024332307673470255167715807610099960316136287963092380085987831494470378165680710906960400043982794787262901986958508060464106637178040649921324560347849104889475489128847593301345622619876576181531137921106472451031441712238956009453827330573526129394183480478488912262245905506605133604395422046294298399789813055458152145153127089697991516736633561708946583362779911416980423897011141431362846628575797329185483397428441333523769718662996675414983704521934732698261763201181069277433728141378574263198381404230020727475221321745194481943074768301453714131031194637628602464064793666851787963168342187217296805874995887266528181531576161557164662242171462604279955444647789225703888588985974762222349921009816691075135625159531801490029402564014243087512908830106573853968209657127525892581588110459793142225576579351800626443845553777275935741243656186834951501474195680387062492221989605382797987061671875138962003395925972080276533407609451507442112626422917208198995073337256544949717002482565649291317377794562993039225026844713455513209975928553452170948455360439727103133004661322206123078095379655294939408849330610003825088255521159614082586203963702245028958719732661626858670106663263007931179926381703546785332533536711560401061254140364160680781398713717302040346738039431949421765131307854521210280972702022805417741485262853649811116400740391669614640354472506241155522571554486362138190001350359373535922055584682211882994860289577018185056888698745446919867667990599102164016672257510421075113449765412581488086241121627775995745100387654229233189512798609132072597338811717945531768470770621082815690861817747459598370058764406437856124619502526385898853253227991705471718825239683538201153886091407992877359985037791290558488930108123944024965016895556206909496757899332274553494492877383577964976897056092475244210520819262137779836435501330996712468777049254220364395314820548738862093484644184695624139892444046218968327151301012445164471054291459965805188124212589934818097291015216967020245392429506305275615805184942434723020815412557763097219338869287145973532795982244477614324631348217683810683444806916688321957694796521349407215208766782458810455027780455038663988172246706835237543994350925661381012124828116025620381462465816635674080558350867646675945103087569359266923605202684889184290953375675811207778465604292394266589703482864786868744963659137635084250822290806817496116357279791792012717767084775423261296824456358359034437360634923131298779927402069789476909441099206261014450493049263131789827990702923534337639047841412842028912757629258870027468041867897513762475293392569443434748811144928779267856066218828354744941826566065116301499722039839587266896803537429441286363554058697024051637152415604620050946192647822929103380594703780143834177960328730199249833436528603626688788235296622639495655160335313663150475989504613485828382181687993649364547785132110278697632038557005332218344995425389495667639577071840444999480387158159808768484907824942448791872222436766381649438665133500486096930309037423653783927897167457826184824436869753305826163297280443488685689508800030564249670411046787800222442087285851330574765439552903552004894502944341638702911681740073677963111086930873740846109329622661760230273158072662667063689685032063886715141030063177856286141465707880143254883635102566266919164333464915392807399938463307940561236251578781650149080011103754250748894953502909923640761523970598650724229371675566569505505263459759104190443984649925284070857041671639952080069619513426915267478641469539702539673762105451700766751434142544948650093941755890741622095319547619786678718125298956442266495232148009138278874540948174950676056928882535077609640919607031878557322640066374796214912153850101309642260779268568750894359259334823542841302580389532308665576456352943315719650678749778439616623558862736291548422726107546119914060196615352343902615238583779784753422106332811546659840324504374954072819374411538903138851708358651741235415812376463626055802776780258073497304270666047125524669367240866205841678443799285650205698235891482074927647190247742418405530040600791479030192242244557627303540286470416348316392597225533084582851854515702526500814398311373895947881956387725448894516340784674631182101422365038927067093439230312115247332612108020559778891299672979249335689048739650362981548453326446677919496492230060711445155518095644157519696347035518419376924910761425295054990020069402890276354861005934387001486207147265170607450097957204347737274767923191356030032752965628067084705230911266115545414735848276123104444971562053111026358273230024413166757045778266954167272824825557096582492700132858423818398379480989973497936097476872967919342503502725187750428532069766613921960500307594843984738949278052099786004000568521668138724887772898043354860827154102695346330549119865205689040225483455515862438043109391117607868981269617256302747107005863781565932492880251047802445629825469754723029525123290435995061842422509910266291265501079131739564170502584433202141494103841902412323064237195377375261817802316264467675901528547549846489654273217888422583731895079552438483589939105682202079620367199682325832948810161149660378999128600662451461478062935005842030919552031565250554515815394948079460959870542178174174778294767634337036772195464899180134026318793716302430481765322876398492538711570148046794252162632112139439830651612361224485942078067557539360529335053327139042032114494525700451199784735754577900774235840984608320686041923641677157811590503370182675772964036755832702625800351215964230682630726133764497195438519974222530655849927142384068840019870317333618827105788306808233773670052079851221260309649842167308689274129140712341553875601502058597193054061621666158087946101959056148698138119148193897073307523743515213680446235435951597424356765980021592078004229787921919900448329393593204956904295308653751326983091186835224360385084287887925982978920229744274787907702455127173067659594894494901265798387367972793352484228733333096325414317032429046625297367037702626041497333071018229973446444487434411735386928784943232675607824193529068972728031959831960862588390840165247244901231661926068562547398209703418633708577985455396867332588117633313054089739590379621810051639026674065161751546875087989015873496315502685233658439906962933220967160199752000975621282266958101797326180066445298318177815144983754386443911493816303110777500977491891819882391676719631173709472521692591173981023076253045984061002965742866147016321803864386605867301073201639881416806643794593446745141057585558397243631565315843240167994622686565700644586309214116352724199983660181730183639644476114270881088436822338529114356970282950231246294331537511395335836203676020040760123878384854099639443781550965886860156375117836604914908737460943040627801619755210384305986169428843396657204481049640763226511560236479925777299307819624072297173054507989783482545439061317132867015238090212324163002943654422160305581599961399825867408537573363800846633309211555274581746032559648314773620942848823109937545001217048074148350573034039963503829812577605928145483561672631411084023112300245429962696389478585529770556476742938950303243644385838539600018761886628521127897768514742169555348277057939155178781491865096335910361538200120698437006989302433423032896464309582766719335304581555986162039966408660633577053274288287218682324990242960594970606662823291567418250947956391344353688637053726626994389417413163408719863603276317797427817143917750137541221602678123062044170319277389622089302996255283111769843332219223738703042769435723839003385332291163371598688370398600411414893780239604368536698347233739921416473956279557812940795995643400512940614366339857275344190186207799994600469069532399295435592904529565814618325134139989968358483784000000101104979185923821593859275187705391105643663254622850056351595262768793030492176250449456102156534248978977187456480795447455974482587078130145045160284756666282043244970581330758714951080185444049823487031222568530538625833009797463481543768131907087706894915627046215434681380379681174991496678186895700400192525749363484200805900424915079499259298864381162303500636663277720002665628506559682354959486441653070927328682660607314009096834151691852189197930283226383593398288683154178802741221093831997148143219543704054797236028214890193079878740054889560013527176009952890586612559858326166225401342233393508298728184366446087973838929239278527915994398156151305538169094451387404946899519223124848964837283166291606274404304202850979989114629909932151435780425288689713261993722921842003220185105448198600431410567920093585374226403099440299554756768388497960954551645556317300222488061291001772323586939912660511287532507476309236877478828558729155800348602913933141966757324218093568832172564757091693809946550796173550126962574321505951889591057697032725502046380039817301816393916348987070841595865919648536642206563485659243400286914739181144850165369425900250003834748377804174217603368093093659347861744750485087514739762946284540646192667686665911327852181846151059132154766524241835745595606350776126928840851155567357578897254999258588415370821625364212726857292810381552194387184022507888632955614926090048304888276558633524430225031027266547922210890125960516645391264306548681152509708618160028754095963869966800606498925914039517746505394501992462298796401793212604929885462383934859446487329023850203826704560121000341416744644040687477820728973087755265159009574594269860760868790902537858443471820244056101055814761950743292975632605569547084964283331613739566406141425414595043357773461556432070709758246767636709312048468761219844334227279390692662870671523342589452801901323730961400564415061026674414624034161323598984529909029350225520851069836260418789296735223433682904169338697923632830631638279536204116400182153270714604915783673629838606360226117651259631501535414482535258429045102607739466553670498109077503898214418000140307598880892213516019324651985427711081656185989642863615261187756103640059663424554593870600167473799762341061251250186623530375959263879921743459496216181629849846906713313363230695713305859557190019225729168651253054475332991086918206405459462996846744052407872389819744559683992476559591492378113447161341254026911557554790149305087748649893010777440441772912986567417939120492122978421380008933216803558526237481861648302862817795627106834877373070573492164242308642565511260847382212800397011875171361050831296192070239625134909391211735898930142093905887815566824899856022729138587974223038361739439620900183631610391559094555405847751930933597045410900427349052001653067705228118779445512078523969701693041931581910111328250738726105596827469503285848456751058358225520864533956213234107928746091527814758182255690688116945218703997145359012486610346538868444111939567392798819501047362440345520234505959698024613394422262248811078383388341647969682347051168214317347859260917887693939758481035828313356229165461399755995210799861090602362900883055539684341376160535441799674397635784017918743656879642505189026262248994462942539914576907376448325594744581589775863204360132379375745007343197975881859583099693289275709959459267827678076311648514085248675915746480829157262833315365210077509875023208795914145980212693581937264266647191261606272116961181789293597555332447840169872551355419828118477386914397171741764631136379041849873878741016165436564016973990921049960432089063185690537837140417781832453621097083951775858679343538985803677222819118544818421290639077709345157487332444929749921366234159989394437251512985349886907463941728175140063493115934401401743413806614334498608104918197808028768454589834726184216282485806763394876747607102283731117225300323385716980354459770369804995417577861963696602649188357557075181589182005715513246356525683601325394621190575995612380104647466775508428629193347130913356256274040902457516169357545690951309961111056728807142017845275849015970064533562310378028069610672119754769981480696980503852004835636773953573969736856482603888212653835817431450760620602271026555729494991036802244642514800730960934488705910894775854844915162640980613564040884742079015200612010087318839698009245978508239993295317263603194888377670611711492552654300052503394385878844519444986755349201125980231530292517280565840611939755855353434730333682253142697417674508109344446150123189348410837197087412589766908288783025301859186436230330401366677056044009389438461029425442338405272643093568974789694044275241172749982333855287594036348781409733157149258158021136244188891883482510655095957943325751440828719211611206737731999899757958764838013838973477356399031945441154589765366647604737973572406278225389351853003762193593200504643268970025449820839039102878423108556338549629883206859338252155176574297542200836053047267558089226357850646269923710172890758085290744456846918701510492390863106791941303569379339763033240597686162847872682307903674322628754175920070755972288028049448640742710021325027552694745625544630372677604803142175076770942688845240918313287025166848573126203929301960648336678803776006910838708995349197393892309462123714600658646414838412490193749401619155998199287712818176481460834626729244375884798803875187382357952291256924916734409815283238485864294280457132754780949934771534900218494770658663309329201564759142975358280534321118389459198400749741490264543794189248483330475788846764763527146819092059052296675911986257595913711830488229601447770319914016486917289128149477734766820083051465947347526641404821158763552593964499883116550395573586269073243200671052067570224880077036885924710835804997451210090593621456183953445422095607641662183183680974268811060570133363970235049849400480525141337801438107680348559050294931772991810981641367200572074881958733563323098031484945771358000864525989388141421345227834262012447496294865554813259138571552646804392782385212087304078410683216288962071961317264093820272406213806489208672984717386361857139411391851096027406435162684909600869179713231524423047937802386398003969780442103997028511933768951806210006896031510797586268901484131978892109055919286535586101637107631749610671365623939919560598903488769885938659509987508468843788465053154675914558840165161542974097943996184667017741545067912107790435067474529530459860421331078964800223136517310082224255550869288644523953409144777692282085397627643640677110615620013457517748804190365652763336602293492096629245485553683389393250140711384164143788638334682038935020504802708313573475072606087361286010687147771577194448396719015794416110160980144616309113752816637619862816841590354737024827592979925798476118138094015497374646676267588888483442645811377850641618339474692477238450832161213098886759140195455082211086633304426325590585597113758514915109285652535870327504902999570572670969927180841143097653147840932809578125652498007966451142909659783265643562443604876470242509361914899650920641490536129753838860831360748813384684181644619554302326762455490859677234484503152988440282310506092190426992199419112808185532688341413607144822919749735456989034944062977892370426313082305964741031723692441562991297493561531199002545786779854727429795574330283404714873218671139369759047064110640331211841068002077903206605265348260560775134936337494608643117480310658442083411122827915729379786744564555920897901263546100819675489777744781160544178106579988473087943581890895789435871405916957827172612033460105936066494141143938079691506876242839896465965138187170959617776148543808789727214329428972879644056301461083597510271417622391352862471876037265356025016150315010969891809698201156084614049196705799663361741387255257145676740969371525816563554448553090500151717041052353264096941934664919420428979896182783849983286306203417359824505089873647200658756952698070458163752742131948354584119891928233393570603750574592920507587267794432701181813056468232359481974998251265534951556508057052933767361863272098718292559880635454851438817320700043643034760336396108572689819661417999809157985620798832873200069643671801459470690016959356619629821622160377807607712219287729762238388274124998129032210062151361520632835436297002796601812703231080481831853111099254685222609804459147306542826851651729790515970486117661620220597288479819334944603089030454638630948394388950775250118081773330356434613967868994224367741477526947989072318010515123869927587401831299460238424261017057713289165682439598924672355633135869579132173440834621777194561559836682907218629788209622241214018683881262900249460091648589305546984186634064141784446213435416958291642701960886178075419378892367520140812665645718257449425037352708069664716763942248352161740531159522101970944934537434791144148722843701482280766645549566359859609900083468589181521605217052431563015582728895488721962478041728849054689322677178801905458074897421958516452908661694138841541717271057715330304395607349797690551106693926170274397671363139649447493965071673114723310082352388646787401174267322990152357382816354279919207646925061758627122067064442611923217196209700327152014642149681697930553234956761687711815090355422765130141634628719289903483769134659785291131775065282101735519601178628826813577748896721492578900088087440480110385520132973524410291269905828655343706712802554780163847094426826566641189975337762280807620270745130941086371135132283101729270016476454284817287410536443379804729992851337068230793435837732644796553613352821272975410680751803980888482023879281584126137339542366202255524783096982328362871235146908290612799088400897182850011824638829626759541023061618366557349558727482394796038938947498023338920984451503396912323069666967408745161462438803441419408938084929577723161236800807433134973916352804553470897637036209289722934637943604404713944599408024398984574950049772903123113278064856749137534017223360952048218718888565652589330733044242556721643150883683109758412756855142549867303724273049345581813648495550934010897430507242817197860227582711900770437286645154812514485915029679463188090164606909458772976674993414493775016460414678391034943117419098347978348649603829640868968215868173724594023527680656167936833151477529770160433082547682559527819388696885029629293129668753814680964052639500187860167260886717570051119651196632868622727081991969853735687187466221467558317756829006229746969511460010390887837593397871960115846718647734276771073820390524573765486811191283884938262835871489776221526740688067272326469433908602207962968464227214260644044692831350106101757054690591641819859645905930736220482848175439587072065544258748722815324164456408037684641064955006991479490701407344757443691323393216668633866180104747141685282809350070092633628066562290206373734647072096811667974297461938164226452154073480847890355543384894195461849925845983813904388769510545366499554890844498149252149765841049070447137209125069728164248175319259479018581997129699389197638528434013204546768783481351573376971003273889178538646104262035172605559973407785033391520295452731340702203686830584840132576874610187302951298594342503915362123541528482742272224904656604577775336850365106461766166344622184172308166330375730713043115900234714291782301899098438542195530303771153623125329041868897014048065735176930351505819649808187258172983070450899196707896785328483316695943657762798767300243810367209160593192668161944776171486545493855033038610412977594950876606947545541638143752480102531336241050649023042745913568125854870490762486959895711164823474965109935019501775678394693719013844329684037178042236975079045951388997656069242713376232676255510478219824957556277242043101639408404981739683845112060943566967612333373527400537894997949129299680929162188441901747905993550493490357692209088792924150416950650583815012928125947940338764418444896381090000661842776540950750457750862377312778989509285458649466228877200032506008131163843724350861144108578516175899972768336766197608896849681807380413382964426090286880785879947157109267565754689039637815667512812315688879774228992918298615368396030782533675274775473689755924746339739965324295714784437389789127182119088998381968215417892773606799616352053740899884366147649967549283955538450666979990369491083305657342650870962507679485132571093241711733486859606798658115035148593952008353902985139388184166095660613133324632437496026684725995709679216931003149043165665099804836831279333775280152802512696716056618559661591483188893123268554216259571430333520839222591564191747738874804376871637615576736685449670168018446242965163358662584274068704117774169546289606393515315140844276983377361812246290175900254310695896497652975265388184619589391433551340255825937292995592778265186277097113441247683328911899069643654239923258211616643517570624439133927974218584359971209477662525063852714498621280836451957072132887032206051970953796750692971254398740623813442422309678004551047126742199566875624227275171198997651775327353504294580496998616968553018600827638146348657468496459798899676508791101045859287067564430732209804187051505401410294626767832560307877564126111182186667268135671283513395986333231630044086080234948040020193308547872902394707918006318396654205253045667494735263103183584307088664723836538833878498214031128780532601288538040932221548755693744620477354946674173357799835515569995102871314602326401450041511270433239348021655221667768634608883674794381978346949922318985313981241807854587448018549171027902697401769648969726038836127251051533894845395222976802838545118125531643934185159724974557359166072837374961558909346543283062787604972232598878270205779068033273077795897097545516148803403457921583573820752390925005888059734725490904632483141114550486468400001883163224385191392974277485512226356873857588094819219386734595546400180169163238953327491882676001945708483027173515949296974217274474172915900495515265143276856043448444329048149217115063494761582968815048255668875751996754713091622409198263249602274116613519726328902922585517374085715105160745345845758370898285694471089673955225420766977463690155540602162227904418956056270328338249301452851449925095199064140752186719010597395507320806617385760775189816042829452658729968966970113655737049982905926612574139068926590936396421707318354168408094195126361897547194183553723395729525290467810410842884117478460538101673351564485970974583645187624458869533791368199763214896079623835685964249140421942744175238816288101181417877468482303677701124908968623067515790038005715941892485052954173630191717933135802284794790300712128481353762302527156510946332846211224545626115340620746865710801762117142142971862564486674154142684399909582537307348382506784862294170773690813571982993670268927905286238489223099563597840932403532232445520652923452333307283216431882499263169410623926169047977096998843036634683417788878612134271436475220746207572615415510489137017016744806610454688544160382636670951287927584307170914525884825061622901661933373641505412057452468988190141368125344353713573262470488342511984715552362431315574093973306669276028161732062368475980330591243243712135888651494574641206118979983253359130945233747562100197934493165461702787536249136212379434246306914013942103176295003441828545609206733836592871798992248714705311803617853290691260838942581739670846092472455580464061453322042826438102242152952301710267186349248672204802928428626169338381974635717725295463899694811542795485210189582112892955461239699034174205024517068565644802310059231046498066229803769080546714113171387234089521834522107916307053454565147482339266115242417420718258304524005301717931752715132743225798466089009290532477132666142112527450455035794059729552026732390651803362463522803016633568216393498562662649995725141414592839387066245131400829000967490978144693704726017127021269085250246445598162820818428166155445351970564214714141346147574271555723362391621867453896850664975569407370423494514231169417644919380800799782367640320919230385641406970446830646125261603018826769534506183783612828164591412521631124818326406982777005345930209000846522012629381424894922871403272798486116037568332486615177585564937917363386298302624810385387888334722377617449027888697978384273087078752259076870136798597969749968127114873144588276509699551501933264608069636264989426898298075988075426392385935990787449680066142663608781389523456626303105389426320478567498819082448205061666472185301223243221156598092037964893672148771093860964489780317833123078823833330467959150234485899418843695253167318445288203506090593269865904456045348101725778099497964176811228858191323363706587892663837469221304689288325883714550931199816649836717070114574961864063415962522721937890913512647914098978745942279685802714118757170439225440736868685068116995038981890493420248805558848565472225907953459730234975502678352754192235698781739541306814225519447150233076845884246076567144811025203584119767964271860292359858737577458606583913329262208503134438511254315612414040427743461246744866940462998188437986177917255493010518217322070516961387459235843977704046265294787148533628474655495950578927066502828642326410867442216042042129203023678063689215705723716458720139316770048574882446266659460907209551673838362597311020728661820239576133078717602443249616830359392030175912243827061259840878824627952945293786267119655121343028835364233290417953196509675809219288509731391669933438595469349816834579046728742823250407321914941793168744933877627990435943548181078440365590970487181423866273518068517987139128316581720714042566499691819616841945202004923204108134158023843399156845058150188576371383988366478372893141156239878047897505622074221059680060530687008608476830714558567436858855800511232295037769145948932513547640563495492654680845702435152259852240778908545384676363278926624846056057237841020311445850448786765347658565697558577314195833383716984892642116066088493208764312381409938172446294315273926524558776343080174006477714752570582222384910011870170514469244696491803157624057060305336334488416157093069406317154883885075223365781825245259464230696079857812742882613035872145588428140256069604861547835408499356357308016015517375115734828199349031410184925555672832651159331470363648837049997856713399767645655338196224510028847801779872747132945736866108969780774942930614340390455474407418280974767509637247432267955292241756605656580328273119925595512994621361787294616606084136990953962472730961757710390042009668324858818174710141268506058117206496042249458840130968054180418446042184920187041309935626544645285497982398405158512967798234558573297761192569319497070346793506904948764808987872658899879875708252585555185458904637218828155765228190123022632160489372563179364136418026513525356855092118335454421177288668662636167984706247176294923779746412238494649443697706387733330258047991169420455517551146388783576487078696855086712760462491934377612966803627854147083797657338409535328818338385100266799243558851522060478726262904169224790724457239562187548922316058531749293061227421667632666013594494945920016192946685468381856519884105698557116514552583476026504297748774404355521571871128586853593959450966230013681020024682536915919360677543909314130797692138897968492015874557772897588340080170991730618906532495606965031084479833047370911568075600239959718030497155193692066696025856785872672842785987067557926505817064993440072233085562118447363363962470548490440821797311791127307326031417815240506508521882566482846899938906200549641092692825097556920038033461181593847469591316443055424188776394364147391239069768474284596649136811152798337303494494419802256954777906978133897238167811280370764534478260058144238915233808191825483490831242723530234338842830937476040909776344083406407061399269854765685511339532631650288227997018734165921838990164905463873801837036346286329996009147688612171416131619454015721668518542839324080394225331784288000234577365641451878074376086191275754990094948831157104086740272301339373661176659741571474502107090792592482957929837912149240778733057250751482562073733454636685683370597248976204359003733423195230664300039791863277127575388743722241313508748709025318720829475647266373228999762939542048512134973348007517670491078751831958352325808652064057697483089263810170916447724133453257246263238905710010746409856194423900943096138254054752718413494575336419224398841090077007529965272715968178652346055943504030812381678558523411175214263398735889275861399540477643256630124995233854668851406152278350941705892296985581055319410607911960656421363095141600546454966409693222893757063852292547865351509020003669072806366285339235692800942859745931712919506704288744328598036343431386517581973112199147173438314029628989164362794876435861519826872178967870818323263730645779473392011174857161249003042423465904954869825192901187253294207126590792513806166225417744349274445334029309274512319016972185045834313639117233290480234365440438408483825909084515031622493295687785865218853264123170865288148197866105402627741254637276274230812127941042238002549957110211453389451086828967656464126350271402594528892691639935170868418726790374718685182161464602819856234032406182086586056474154814830658388215505758664104686384019610925680719075755385553355741146406815514627102910927226829716656911719660172263176846008908337752447553206132237245175577694204368633179455648600416286450650964055975530084906358647404562303156370636163836275980605413602039036680846869095667740687144883175170779087422213112691402348860429576129172259475941714163612676750831161828178848999533537922197131842409529761695727860568761485616447456241293129615247827115460093338652809716583477032111684708387451180630626552871654682001200820865227036378190639658273966997375899243366622447861408105522881397719063973433944541290384138090332383204965055565223486281820504411235851100456454769847713041025714683179091472274353711846223607552453008903648666560733813314256462476673432021668061074241034635670416595567542505056710970749102259580518434533231106788470372373939187871845136059484145232028579296231554860698271329679870593368786939563732432383675185427936136143216536174972615443397986566812816043734776374128238558638965359682147306194258086014136754279778843641823729979477133250788701730407125787723142382115211262864038153964153909372820267987898895857341222067122478559925233252051769491633754851467314741642563040165530343226579205067037543401042513468006998618688590914501550417348711427574130554966982873327875611256628833795952220532975186425017212404365540004645201266574125148412616584400857820157033292277988036569035849848317322736172276274642157126564405299373969776722376107986505269416167998072288136600901828611802935428123364189543690886332801149811725084784913815178533507463336171736989085706711594287267606585483239104887330638510441559174287695242529601453364132062582281965357525357354100227880630703192141399967079316677217324272628577173756696127155606222165442364940855827264012400109108340221256531176017511854333621535859768807858662613100525884246156078296860261325314464023875909218013221613329191649592719927019844850297275381095103846318662736183396905674613172208420987097798898555523082785956556690123400404242059974477776565705654327557388307157847439491271491193569423497948966528226101829062010925135618382139658713494777655886353758017061077721326725641156515652074259181527414368230065269374234817389461289863812512562252379292777987080071365825789562616260689374913384010120897314119656496064316853155467302740947578703970854022885241174681717690190088792001806673284746569972061780606552354820301438274108859204745204012259029569796721641604787043223316897468768095454357127331070237802439081170496958393105897850534048486714585861415993970931948528442123462441259131723754460644024529321298276660606118120587856926378872391690671532077488911159171834470172740140398955079225798686185589572516208839297244266693217024604738957691994515133341350925033059494344077409623568710650060154016581361567928151556661883679485785001427021197868249318000005570918403656641569553125931826944183340614487317782400442506168319616733588392267437842201094709548887642873161124125165731725839582990031814412462789548157223270779009826963983600573460937398549102900661803647405655556956136683674681755669579817799500972171172675924886014921087509224837603433649222691710429184184847954443173181298247292024201948580831871235414339703171860519639708218076731503469149201009262546516955391676549268392428065764145382204829664177455211278325612657916859570468938116267058931661409891152155622460175170625173382545159349399596669675526299049796825711111532820379439089583808948021357216442044813601432182725431888691861823308159865256463904272365753211323074591452358839204419874982387108092935450149356546988892484780958252368272003001017038405356552306683077032382347041281109176291192972974721513489985591471809362342894085965093947471338056740815511834682647795490387693327922497770478029458593404114044749714262245697356936261614893656112094955564666813951686613868404768589322035650908065412413605677733936975905563110298813790092599133426008313281396842353524250018440043687482947211132341568772067273655636776371959760501128650335421448644132300120549765947477618397515856923531749782538913515913942847290320365573218409831557269614253036580478131138109899573914357796865690672399005498996298286372963112435730774009388146777935324850027065491217141219476696047408515197140445678516859835253425031370273923869774035499824774180314186678862686039366369848406829434332004666228844200342281198034091202628804041722145909392929101363999195885275781937834701894853357332756075853237462075813548318261854992946959696623587428402907478527906348268779518579921382035755544861992072161166642397457795413492254362164003631863845656903481415276589025073841899472263267662291166534533777807755505196033380492935286982869267536277089617879403538714608426853379686758594863304804607043300378656635148106606660300928730000811507862925530350901021056320095775992275519191348509426822262528298708567728532969690209425111645100907081238268544063006428044919109599630170198332310977655389844180711068510054826957109792910097594781155535246248732118303946527437025733151111532351490799117836615508597288964714779988477048743992401257890554027830318623351489359631257228424890528453043116230830860924711683473753224818857638069896045093027450518118354284746544400759043617073490321391156069202290523511998182421905897944125230561038532661273141903637855074528753245529663405131593281505924686059637748002655207723521301470783716598207841959642722837211896296533120701632980040818264638349515543024745068470890933248534674684165503437011237044725742089302470815801759020422659553532495684007114877357126532360798778297409328856546842571904818240249745720505185448526540044416170056418989674711526192056802100643399323591901363230998800514204691575244110338734996761448137685767166258117220061831614136130389568053762461739086139812699739202158437789868202348332175303585893069544300460734434465843319047760062396884530928030707031356317332720076446499500134673730159235948058228705778130188971213195467769799266971239570311775441045816823690348051104031819906987525793662359726590019536374851548326403935984259216656482388380330379348462646961182466793348415335135538798205962115420492173878469035043189278713893312766371206004316071077198025138911217831010057470539383090431040626904815229685407663247544011588825163805066563128386017425968698640740459211784306234298534677092561325862151642224722853069837656849171667082104702047309354538145241353294285905962719200990122332663109564646292176202511112919496117470266638143368314466263453696676990223936029424638536332760414358554464063430459736135506018106558599611411848879554553987188342806837021290341226165376511027651355025734553062072335292995017450277288073017439074405993676549408313795987159795173420179467708934497731174135924591401073621469173712244310782822845251439663406096279314429096730892724874015234439129830841116936377002658142351938297051613457404432329667633688538308303397242495877918446812321162593038898866557022200995194170563002910428583292540653610804456147124130038191806713762824256526613929025334082481541008615657125483095207554207235949495329295676221592243475090136232548650545984167295060233137226333677357139820835168071758406069640153268250695047617993459131470284542290113543856663615013891220080220594154547834195661247975144973620091393928349316181413385066107937165624746668084828145702608966840735546519314934559552665950506595650686107675499113421280197950231884651994095613643015580104823600037517084530060128835212417950767569585611014859323080649696210338489385570936419668331451243942900293707372766798055389436575881763017212995609990528869493625010263326349672730543821185810820326074457473978203442913331357138634740090355364225493166268225175056535738026293744775163982056074191663667237167438470008288666010054991523263304764488364719751242966464493142905962526842069445466555826375880485519814806646302622678024987795583670166094786528715550440463823726188723203293247629266096202212627266081707206528946007405794342295595621774777649057987931927525015345425579094039177456316488374780390556954120838591257837566230383736056802747005328023874741526730744432428056943028751676672495065513460993611923584196670037680574338462267299415582262643267726208566853994065155597962748730181961385617517245598927539475792387562470629626027307291685931978047863372080330988397829549329345373263488919811818081326937054930247064174052810778645117824986283110989631536149421558615793964653764151847212025198245910573689531386616485623883168403453001417661925843535688310163642464323494030642819492586655176436331061445403684352404731156447960962242525089808012662760779923917805909898673274785134177514429044704099136039700847011892916795971718554808343569159086845366160282358511808291764206694125756924026522163647654336410618332804052362783352967992985991908719045046741918642745856591135206011531569240802999397738414425333693504630442022880901233131004563061722735099744170741659586030822990787283985518049283639525911532729999266760972380995724229305566023488820049694331611843596157916596405564452525175227321621287783422422568670319370399010798960237577436898884339006850403099135094120163235676250083334856960071070703948002120036346683815188309457050455269532234216377383671053114566746064751629597147041128732442142398914213159340827475360815799430518635941792113795137394885339130309983453378034213647428825973202529053945571156489837058274026593002538363589240443432265735532008316984506739757300445112334411021673520283986419585624526333864414071227747581044011106595309909973059411440943315424244947946582156241209703149476167231230032129507525140776401037991050223648412979669920665717203968179954472900508288299076417862961289666181058886042457761954654893822336457501208576438375906106351594950534014162026851325505054669695547888759042105244161611049390180851193525779579503655371073054565509591211185481826651712043650522279506316861208194273595226157864190642662964451762283432298966572060831306499901560289789675139980852851597078367669384189556489066114641951886228301620421464104833262116781128735858018218634349617342699967863468658614433414650198504549585632896154026908431542622157601260526915453578938537552157011690444905618752640257316946352568013864655480313802273783860982163774260277275845223020904298284308340711833108931284081305896867300987895706836550678009134015411276753512716772350808415216323636423589962350311548863782952373303488534072570976262792096747079154817609505895528482581628864187072815307987701379182042487087146477167338485090640850213788740900185189822909635709680414535616977719918847162804863739568598197732398553720256436390332339903828660749387188098149720009260381437781895177786876597185391143450773417141547291374836999480221126261716467792641715972547673087972447176405074782763725729387801254803136121534213959914719215120703169063390646209472655418231043500239826706083256822264854894041612955872109814851038000699078583052114393606644333838238514311643400982706251712328318351818314175528631676640051645790158925334879452893321730931449579740809967281126404877716567840475780610488342701975873318513695618866710692336145779506541771943402353954296154535950272983115279899678467657543014391959429074732765432074004183738799497156788165398706772904712955338112705390324580679724218807188039689452581939125389695572596454984400741497787764897717319835026186723193446609954501574596119289176232243326785097353167403386419975882581052373073143107601009584178006105386699135519433076206344984951084688717794686340446657926562937728621629515142304550573716845793663586992330531415185987358632540324815504845292784498806826765044649259061652634290423179160093876212875284676990053299411788035905667304063992908219510586127383637018891992920365533393540160710240391590012663676686903598747001813857613848720871474952194099763587102259333916141408148538851128225913080331721782949476199519266430908478796169012901118298764966101517547271691650163231021426820068797475871042415899689759293388061213562950884448465326109144268830977105890138870517576587105042813120406143313206372840949580421244650094514202588687277677386906096505662975582256374430457893682915316438831847056082979113804027169029987691182694716452014297486503105284562571384596986397304008268481123329901968229703898663387089807575951267939960886318178367921725124783511115356716691628819967883004113172273855353130446859683721191530625111594744399564854151097244320559761179271140465472864220956515538509709421583038011285607558255280881422456947242463217029873532945440004479160810866762306337154555190407299104044011338101940153867498740791141037913373160570750189372424873466214746213854684830646495652728733585424770574329452441306300350998668614170685761272715102470017892424077793939512832670581901242329676065237099846261879013280788316188890188048750396042790594592853903096170459488323658778185745229099936133895757927985934444400712128186143050374024089804917351746685854152767737885374168513489706224611331662967131923985962122470778754135221333749124304432718572555659373376394499785652797859092524565984333527742220170063118582357466395977157690947390777169079968143231156516581561795563950542099510991987748240907444720979826624483987545532856813418113710433939168608763829649696414721937294042365944622441643440160508718860539827315780635227391188602626352129826942582998856959171639892786019602958241614637029331615197319424192078490383033045494508932308117161526591201087047271539016735309107495764116326959314020660103676309353047867690532463043472808387299020130631948407513596473034951081779651895594714865910349237461392463210233176355342227592882312401123055934196516591957508998636417129757132165681086709796455328217170270952710510766776297553428636714824282901457490774491155453443432185366481326696507783752727312810919666779258247905402372213995540119887347607175713400647345679103025012226420609376234670920800636027654161909729031443286829384753674371629775559199308710717182107444836735719060635010296082904987102629087947857510305794623154999201586704674198545924423789757091901933970258939372854680328577625734175696113548986889062630057252638710059699668243989101937206943627400683076400775737795959658798169210856100151456985652053601425951409409386104517816775313330792651816674730999728976308524682400658686186457944664625049789657771565332371303749735722031015250116386895702334818380497256675794435693297306508204126285084083319540937084565583034601234613184909044151173806556256122509021531059467461884425726859463610702108097106842751015129941217223869962431727247533108789834718954541650718062585969615681672036532592075540913913864444085701758367905703710569990171015427727939359858201799957366901537637744114716205017442736520739745338923790777764399378721332695831948670361284490230941461489491706773534912823221759121179206675370175014982825671650776418825290997028258507487052480059468522221017134450507010820527670293166487426628374059687393972646136404256297737201393345163481951203856702127707760556978645489137569448178510743203758038464152460260705383380990138096479190579308382983830627223519357152973160135994227326675341424028281807194828040794154700259336134138100417314321044229551977290261949884600351473915579789961062631659700938429368870004045005855327637921738808226005148113699409380849545873649631693947082136598755570163073786514381880562935748306647272523974460392203571563285137388593311506996624767052989068720918405973424231425709570162080634389993424115489216254918263469629202393602897571477303820119939066337448036774475349618778261705466166534423861099510065813327459245206921055329429958346685556690990839105069723579537358068461122213758204273747537960930660654208712129448935467517678440847101763618650104387735492058175832178284288513929794583794361615052743904216968549103621418930158706423916206003192920463528929172616394747353673154328444927402903852715048735739385112619043233280593744961016766098652534710368701824920327252201817499003339061856640084777810268485379050549418191286792881259448871199327267174914381345776248657990149785686976811940663934500562541604675968093394003758972460945946065440211904878809743070019435483008549987252696649936520695209802778349660044450499807518118049458837517097473878279492241179920580008853990695349253104991319528020853288522463685034769686954195709078965417181527985049696487790523381033426409985038581016485872980252657797705282874951391918182775645027621634875674131403583003101510917441948409730437762883066847926024488485782303925909984456842745223059174305636802488499687720174438121559397151801240609171822009160445327908312051068098952434716140425854488654086076931443551396855391623490739360618184954913743572610684582062323859010476557987380688851337833469456025315741083474971228289654285942282616491531130706248417682876713707865639902603584753086784031120946548972362325371871939145535854293210139126765953708342885962018641740647002042931664550561809628939189832889779802687576368161136285630688822462613904995465259045585160017367599595432106257973920790447484570014169822263543903776969432967958684979807820385510732772662813936791467838521485080908464557094412942359128482428959891405314607031892835091988884043970228776978246736870052502271237625397550813668052651782163757483431372165338252466344611720140885172503033452109063727702625116292369035271097862127037120972979536899332621051688455973421576145703779013333784465167735773849729886162930329537610658930676137782711594604809671070643376392562383578396548725224441420028785152813789163007164990997105599148927895339488609690913756105262444926640917836982998875992840803284897865003196332327854358382442423883211831219890139335555185884563074058513648292256172723968281975390926191226405177228840288266230825666232648088701935802081162490681435703693671918346983979449084672068924307262256900184045038823009518121150011525153660291701548534746938239964265603395729093853036303248647566278632054416712786508096009346549863871662563662675783042008094891483620460990125974282192152432208064585631147477094345820614673007418677922959144087887362669779267014526342303490565627670440671802672174709153340620788659522904986143762303705289077895377340224584973229464680637506781601904543578528188714751876609050487633629404074331786920483583230533216449571671494389197725472341788797873201350016476690970423010118186578981841730228771826841049493615747956839370196720535539342610178660411662099626304374406442284737644918460752049409754247472376515810612241612377462478980238192278681417243856160471754259033475260832183354648047349075402942788789829162228700409861935603175403190053742688179744447265256266680718398513202169822145069547064228161607488212453135952981253680361202542568605511699448158234271349008107368358236133159602736408416501221182157798198708701848084765136769475477083610329982373863909867711018595893514252330152869403296754867069599565577383194942318346577702661051547897943535204573146642460802842950573308499378351283148545891489352196958755123752994315009247417402007699109282508896319175697911641367443666666403116178314347403369066113258805469660621545681520183348897512775777163398401292942844686879096097058306411677218413644952115052532992715091879478582204591235862495324412575058532853111056556607249864084878789662351306059210585735294522098878367823931816485660167481540318099832387413258107303439227178515487480936934524528229309713079265999143290901542481219113136230299044062799222838603827474397198064169238064526427875621514620207898339865226283296478200316817845186489742422087876799957734145519378830006069812413187843898906660533334764529671348821592556922222929456000280161354653481412559291360767828494916386100213443148880188644139954491863602167697245658328551898928882605475281875422654262281176797292455359172639974612082696671837842775318608271130064920092213590240960021718307594533142920040068130891279148480003423354610653399062803514258682847555945932619676242890749861158860896938118181097628080102506512949937280232536193926369466287832338812688891521086074317902388373163770315028823989094141848973459646980832343337517173096993662022187075165979123094450359954485066839953311363140677868206334028858037310725383236478519719239513881989214938114581653588042568603428501027252495718305798525995959715973190628513673488351207867001742641747491544797029695761879863555029231177864974400088742591086602229797889520214377478471671532250350977032562623334711229738293670563908554301992707015939662765959649810167204998198193552983585719463706958633655140113292201183756302170251512376613944951166245401237610748243161802442006171226090597489842658309813743466351939766904101499881802168066437574103004817763941230303207583716964622460286942845360671806328634758537002479942054469517832602039083215465620796597675395715364983351148592904897356776201936031613178184025968738808391566246117561445587446742659390673623922334235109145175135083783080948851397870471926487702934870104358941365684726133810758731418460088216046706769546039570804018613503290345449121641297158041189174333657025741561041931254935548583382394188587484633192995276131776725530602801171133100810211838015767673224961914266246937936582590229879743241003379167817460678505682347106994587834382090555526993917813360568758735918479047989667739284862617415713819322189836577029787526504905798376583722351794272411956726087107167196344123840117173204180736082583375915743489086130393149378798540039231567286632293264656605434202063922194043770170800836779276273094205761668426153271244642190971886154187237885509329139792759524732835118065396199317697044466601707490389719346444504416877908473481125679083167408873299424076717008477183067535801658301359993464792747052048544171951324748712982615488732524918478467719818913718034099966544591238676548528644149728560300733095457950013847023005276203260517056661675512875405824885789702378350154937849166709705345527460366863131800536029453646105541358889063173770617024702881305936192655830329526179300342292513046629561678639549458861132122146503149568224106166594216223904749908310151855615725295327437226716030337317441609573359780276335473707947965654442008082021463787661252848844132959167131751122634161520811450284903326970093760664640922968226432875589066684547906853295248780984181458243761248889105820030888200690299322549559001059507733182674781212422569227871811391485531974297244556226718754081242255160447516478135433455900838385806865403766212488355204665828331010256201552558426740050859474852430864998548963450644274861129340403270757707460318535616545186445353977194521804923548094418958747476320528058221149935528617761391488697928643193726134988166286382088881059442342429399164566564544421137816704134242150928214088724431287532708917415146332452802729149338352447043695394348371910544350274003587109195753052988413157566943178157625215110722654687544008617369733251502615937881208498012896946515966213106642120543064788480903404325901483351896124884524026620386235556130466005131828268968713378861427378108481933728235749422214647350651107372914354252089658364138254225047979300045640487811754929702296906041036466021229252855454422554784933818025689840763843669507480933420408345443013197454697288445861868140547095989706101706046246281617827087218969171272207720864457282106179372649904045681992874366785750363897922917095015147342588794814551541140041557826781776508035538895326329736926416267989958720683016018577548596526151054976696449705474789346206723132382168982206870552490357351802195933507119789218488509290469837574061375363046611195603769606688642297634517112716842381002818401923763425202093529703722640227844681183158087330833469730879080552311017190244288710973775945663244142980309610176238769333139086502627969469979795496609063723119492091975027262261541475912612082221841698698041243090807431027936558096388740758428807601922992164410207264202900018377472000776891866580693389126772491048819986321467211813041911427552736417484594366565893861270063836407510547219175016251566147899741936442866681928977417264048915897261597200678332884597275501888634308446853173665278405593403616636471147187966850218373505983256968101359063964697762133910753900460391635678558250914041179679868440263796635309946985657179398338031338026214618064048492321800822316729907528053356147467470995113549293637347628411109622764476653630216055956411782822506386347079979389763080961280062610773655206725055470247612405505752451084980578869375606831025211633228750802657264036148090116628597218647707216081957935104600231646791625995780738714339392394236253863875196005425073222376049959091024336876815776612066921661666694033997807589778270243902341354763039050056336471608373162508440427459998726878822769260448241809302263045586927022677622140053553139628754587396322538647509069317139311543260652152011615268366362707202256331353761566190816413055791354524417418594971153250435885828186351857130545070098240638668342304883452570106940689658690095360069861667802911074636269999272807426448174347189905604485688040828721370954506652001587454879862571949134749348041120957981973504016738479181329459818047390854458910141237695846145848926162376445434673800352818605610458378058470628027323954092177252111359075104142367675647765852697809370538902199738399247943055230570342132693711724939417309281846782395339120542253228955494648382379126057012400522553147919282712442716684438519175512404743822191413617450634624547442496559642779142344049493666942276414064808086491212556483053876727055988376425259230189995967284717603043290462444878156796017753366767357509709052857901989533436462421590149279115401061990520309224334123994294574867071743218741674100149328663328953477667800672262503671748476810089664720622806802747524392928912473339299786538839687831179886722624971286980917059296002140935963628569861573081657534974822085381116959898838692905297111354832079373093421914664909255792639329230109361009386901780009703444728530143726453171193857762198416384038134567071757328971842843645488677895091368958667388700768584567711286789317653104302354634999885982063079905527969865834406656022202488894357541366768496105038284628107062319065787106269346757990860885906337954868228395484024382344477978637203549788343668411434165426177610835991634685758236831762126196832321441032525626843201971521343255603265203580629328132144081036270923823249989857808264467445847599878757836824645083007193883505585677124472663694624015311363756061549809954066061404268721488890803674688921768585442188829489884863096018958134480320978669657660381537242518025064897648031962796367184168787409707008237524319470254577444061856646241506206035939511455344124253234642014782730554903849192025069230466121498311361164129235110741961007450869624757766767567762697146250623257135196610317187084747260340772741926300891223791562130936958326999460064666721700355378280064996159318494843124686853214929121742754640626099644189871551443853445098430351580834033687259735540424825003896297862430898251972520991235905341319538034730589341646508634781235033457343647578588591520244135969697147149102736461605489954825102884940939648401723338094838189113846688115800473683931381271793041094354868698130850163905658686978434748253119682752136072526787951008058585972498359107641819465608684683205609093037762069224890772262421598714233378537373696988906690961226579754717991607386980003063390707806183573611432966138134608248288686699362135443380170742043772939897178403268819096643846703466209957149585298431905410557976147354732926200911908088599168633499201051485788565278123483441103217502393326960065260191484436990967714090556321611908720278067685390716216196924595449653267474098593083898550910719365076819179877171551113653803964156826670984917412210610140188656961793145762257713417629730115980534440103720327550236399809123911458113243243030710923892095803773272240121281194517260422221834663004217213083379031324144725317594480077981321477259881909325587053029759341759724619799320900092553284638676195643614606624399229798364625039102364949142087221306863617247916861422114025623267054118117186257603166773098985995687292259448562528123767145324293282733335239920132301525308952261144212190923423437571738778583983529645392623008986874879266318678656550411363781655363799928673391077815615709936824040868483555981786530768136656947397234243738056242716489265764154932316905754343045208222585082750770491239846929986800881044832916258558591909424507244824791493439234431218762014889117874005657070750718657381005362104472981407701812137309673955452965194496174196438679679068665349516282454257632142386891764715965967717220827838476795396761392197911845552142055098578255804552877210501597004175798697333616889104042807672867321362465536859650938677818113798562552160331336257284738156744973066848148318978361524631359396580672439689932567281202597984551243564024616558454995412755704160615793943782457712165194215592536024205653439377668242796081155024678486304880925414090055740406517927795202062731727971922092621294846304872621011285404403443112712477969054396977245075714629647569816688211438348973302586199272296756830981422122410058292811120774082908247994423590467914361086637744103681463621467813424187780325620622614925148945408103514184712116855497919590269651533007517834609755405643802301734306317563814181300275221921901646588116136794461281362601517086421087835036099069565038283178291042222557709001641169688091228968958723444880448177925656667759258947462211305162871041960003439160491979932905533093719591760462302543242943653611930066451480521145374577608524851012558261149549265191348508804471768347501472801710217686405289278115356730818715262235704075508079259456617383988055770673200752582841946994654968814253288612025224403330097438665305407805296217261894025103965227557686664281635776829384460927696457638614816080508551236064755672492021864512333976821825180463281770531785703638298812398514526185209112554735315494245354155386596845043454922821689851278548637310241034273422280266742595827224135420798598639509104203173097750727320842864352553088268055909361144177410688659106072848381176692393679589825900810139091617520235840479972366997647467260312956422638799750509398368698606319955827727239196914769304861695764920995449111143583584915908175756850724850109848877715003680515112218974823181197240245882374822681699385302830537566675779347730343765633822839914177632826252974862609438295168238764557924827328425604972257687277674382404128804604914020545417347621111860970638993299044788672699314757243374214556607850417187024157007591039246643769036545325364351356549623534311379062044786128632355233391334707638411186132161786553342087111913647088814192063296961198657560242966634122083928548526921518054695956395144805341793109558878972602678379460806012091696807711355757994100654863270987843838237242334890082790664336680303854069922266340881279190890733827118861551760053770203442485221901700699684099526060722035602631569154478643032147018930271584586633257491898736260310985481439654499170198953456431492329221988438718408986941156913177832035857921003418128508636924000959262752295549515628130824760076256456168206018852133564791333980604441727033600450108954465938404146450882213618956439806283983981535294336956604864005393824665852940029962172551969290536048331965058372608517413492091501092851316206306812853264989830315470471929485022804133796895828648682177948304826919287104574733593553945084239032130340153286708698746592663970268202155021251712155363730435869334035998909951626466754434869645105179405533591553045291517261735645205209250275756909956686559008454312449411956711482434767995737139378084919230149440856932433361645554252347883824664673200251950628110647954376011276164548244602546123185535011641530893092834802480494983863484390749397641391218082721854414572536421609954498009417885908738935734447992709258253525311148845674839751573161118255040500818651538876474801100009528181650547032470059072632850157320456141178606387430459152760704144186035522539202954655595495558976166537097502541399436939601423221546539123383640390859301793941417440131591548765752438411946106119016416163075293102171650825457506641540000013999054587660201566596327407095412836090629195541748216081744434695291834900764307055609637793440910854820354790917625466130145530414053852769480023558498811952786057245356296599069191659327202815586313244223784042842174698651137958833308386164783883994965083040406314763558994987170573102199057747642007183358243053282935238355904578544893972571883075357274720313769488734076224686710717075607559691270092581008759003982061749284114804254253643324725337137127379758188039915695761672086385336228273071204260689036143392947904461523866045290441569029281415038857697107802050675617220825500064690040751504032097495195156230880571099087709417687592893442343129866725672200624908967983907994732814609955947724680902056119633498429142637135278802135512791742100740386296022991875178808012235027384948896657399424889777655466060320288617231404393954386315753482773126001793985145088035727735699973468712267379004251479709730128908512656580096955358565642887673783580884088323769065018374061109847972252854591450440044119760889547770692077494568305998588326531666149165269057324714855864805333933866452050820366948711665470198415428948408510547131078068673215986873289970604465175328948387966448421677339614698465043204540534553415729876664477920091496532318506081749315292001941261217932970359803481391392688824007368185610079726265361385816190732076441515255352219603112579292665501051869689049512280712734237445057085767192398571673264296737860634507954637947505425732992364251287824535245432534303551011811025125020028193895684203556787709623130188257671872065560337252060367046731977241322546873337322022222406013194595942387708712866888596651171042839134743639873986160556002278050423139588639869625630153444750029424425177501498240409347742408079616686512068233684657810570602426225103588343962008722142178375523871954469148476354120204209615185128477414761121752454799725873702081247277271603845847937580941842420168524975077720504860414842125246676372077572414561438741112520133149491043775734117474398443157504568142454604889916884812835443963144121746804507908338447943404442743902433204316418365926555431292945160091612297668866469939412399022706762299952657837520298932997013972467924738150218806964011197941002697960940381424705877863849499185561928742897170202573774678870889322627313425569310402613003210941976999914278259436681870225815983535041219864518381009830017815627489601013708915309136646852824940887563086837264138061058288280269679849575517134262249861196979254632085062000698026861000826601817767737474040370998271099715118082376238526904286043207183989079714420981169731582086892021403899528097534463992162225466945470404443141558824642042689860865723938475520883901866336789934305845936655415133739559785830916158572643965445268603618213192608317041514411592767028170136187085687615914811924371064977135606124837363220426852741955297723848554954609895745722047458563199129019214865349828086391934607347610553928217673765186952309714593562789001104527951426156136399141797424593300586181318282641223569488976460113091548019564785571474531469168232217481379765560377825762675808818873550082075961700685277181888275250779374764422590556057246004247917457115318272570278692256382251702709875030089354996700372800717070795761051381488728617304178724641725734332798552628114629939532959682609830094333691035017618591469765608324522919311861745346001008958787706590005118058963870896207503793420931376721666800244802234314209827593310430633573835301721458376831093397987564272961924039454244942113461878167157370879951535484756041516809795041926396606216263954428639598006839407438276114224155461480350576383516750133498826618910646408631783671993851692863260590162878229927735289473319620088501308687430907489248220755816389173400879376774402006077758330859500750761023348068483651165213902920036433576748241551249768186345809732226436567027409459356449425497027333995768821042110161933082574750958034126282070965652485792637487671997465808783170297840103692950684616967083340001112353922153103609980661098587689800537052372811813544856120277792988286904114638222142717489832955879460390534817427187763822427557489406542091266418500495069815657336224453020120330685730689446200980496748649977552521192355827795238594315922980401220582288085341488140047272778963586513952076487159382320807305930328291907574497953578281294671249919396944233312015811633922310917242460948940445800195538236223613914912198999704813655818592469071801869668058125422349772412888913773518712210305220315040542731534137885514325065474586505222075064654777564504220657141398908341643899889298623398856547498304305521881744865166610332228645409064108683577421535317143047500821024130755027107496921564381855907039646223130048645175231409454816043063798253190370570990504608887798331874696377757140373196151764405749163744153369692891070379414404075396012021093578488222262932236495503239293619427981765407271048377353968974842443935194630739117130839684688367828222779820106160861712534539344361330129612987469050079277341826723708539104605092549441889701865835943007886136492903854601554019504550523086720941701659088150290100864541031635385871066787616559745174024849088096093691427056718450212650143211375831518814257981194135999449616298245136280852217627560912658077963282753886931686364233847522894922801767254318209354442614507262553482713408820585255271561742546963307922506694106553405171822901732077809513134954912014805196006988230342090311915193947914831577494341714770163503366784842159534022532288444288001218758771217282221620448779647723829170059549416714593437170769132741198983986121091581858618248396839301603034623589318134729438120154812690362630043417717958916035827117639885229049074954488043225855583112381894986968917453867572047171095132121843089550876267106534863656981451150925792190287715111239028385903710678394383807779969758282734593905060201411534086000273292182726498148010229482563130231221866969303990889101916301559205518325990281090524462990546239480864926444434090373608541056908690765304505817986532395943542123334408833142045938814648305811340201497116904870619952657371466464809573458402951609928957222101663044216100657242332051918357548050723718914180339427910286297825049636320327771812140582478223230961761773831262430329756107359204298917390452423815739127083676827319184801707706671915095797459377609605740710009132302883914586480319464407771825102674277828043775562404436650024783400299363782634356430926197222140044880530441182977346400416316007551673139511286952128778187321477512515273180212754981292075720231645093570467050016994250396238623897831735149764479732036905225915682758677870620892656606317406962896522934048941727774152684333750503353896464791672098702379826807215461255244132087406201699213880311140767693523178474692164273045364584116619786350292527811362237516734860472891555678999426693552464092837639074369819699914409505385696951744324943121805057856583060800937284180174564146953955092963626465359003344177973867641984468943475069713665804853426084122606649818185671232281261192119075722502535044498180928680525387426358241246565424685157344314209986381348084995591837217709997818014593900661747537375324544586764692005790791187742443086181338470554004405568583332411162358499412767112298149279074852460663584083413955805173758359780547103458657425323339652357788654839024605875272966333104874196174292387673935869961908326023423350727494054254237516624776588569536919066233063321930188808166702271306878129146722575799456053627064250371853240324446888402891003522440253819112612060761077374898142899446480533968094435846927901709982888044002953556866900043588050344192645945467118003703009606359904617709653313260917742931981257327456500102335970056642404559320362770759503854172538600860851240887107941164596748395473766901168318338543017552104411606444375897079860306107865358862129474659352835855874346945554902811671587625991185480237645477724604865392343583350631276436697580541176989212187670560710785362656202944814741118143567534954891204392493883086221662835827014625595879839396913359807536452647631264689098082737530671669014740499524797947611114971851963395358268943228332720193219407388696118040915337715876678274499070939141847399112704401493556843091245918868957229105260681088736168982637913370478730055317870724274146312251066180533748596354609308583560551266754565948441356574540032314622642496043328254847441081045542872197576500099975492041686562586378779589388307096988710932025114996751613860986495262305061235168878124896979044762908715515527492569804092114601509568626457104613348821896740538260694884586488335096603070832747308491647579082417214493883394240625200463045530168236257797235817905366418250646417706414873550613845298858352840087002525827377622694807286629823708930028878311080220723301718596243080136289465910372156835258661402084995141149776265430457625200643560973862956387112235865733920798620147401406725585745357113763452482924151768929325350038805905535106631128715076609657122950553734124956614271349846940753075879624047703488041111439992612329099793277352609142055768428076182868361600476241487472796905540314358020483878678768821916053637075420294420041485945702784116529428208179718676428462257047901320079388908044624956388472045710972762896978543059794721326317388712581912637889589561707690875634239439497376328564995364394952679255799088132569790433464729543978413165470581605039234699065300998494049896024683267245766661990722456608282010994168921947727795837973344065945344882950365047435135955589028941087702183922536574328658509268233419606459760029833961777765163709700305029062416626518333258986915468814105560174041011394779945218314267493168261007158112139750553472454211580218109768242485707542697879761651148412447743846237911007673001694672990801923203920260023174788920283931575881311555496459674609999659862774769143776450625852022446931213437794121320663931460851631094777963744563294469678332361608306427403461316473674072517040553550150199365503274557481473968055483610291343233884073682752197568855617223922789054660826918961664848096041739546720149796555758130919195406934115694207631906402329358603391523697525983778688159872284558223214749038596229165022296702919470136161029385286157610558133880182279718597932437487216081335109318166364446365374627784941728127551675442210601104526864666124739515771909369204306881286359419950155057881577851219967899629557811788540583758683064015697104264095828801479107504522051185966139297151571120788609466400812223204617430910036090727955618468395520583115079028312952329617487276756951543197835054608505799712495662137054386807115321009380877387708975399930462995619407138191614543318533368879064658395772441413243086542152184827083198592117422348649837833268163879990497970327615027472374199578713066743405107130320481164188655086821677313674710020563939660085022265545630850894198358709513834735437941066966623772850721434263146050425030115069729487849316608488976266590914961845033007335500321379623975984090059133470359470271184058556212574295875844724854565722132080096645624567544610568155749034337397722318135764120460759113716710503752739673510519257938781769308760250103863284403713006600938750143576715298955125324900018229648255665328339138381139430101372809588427160299832153134094842243951740541677164508161328913241306768095774819931643959371927014644666677263828990358104518095515420636916358539933234567312495967148166628155730574686612145328597526199969238938584588017318629207856546780986725342426285244660991030542938258099544895181715936247314977173169827713612723897509846575486595295305937672539676547514564264821240355738491696480293620288260573907459005076988532583409994970696928558396449172277978805091250167333994101917106764858064182964402987195570644761408094058718169866571575898330672112212809500615567798964708003107235688678853260741341549024830966930104297651258037128650440378697637469419209103213565988128145632909102801767768006158680125341917403929492866094364137390870167490028208947905820531830535181929334118767497999937862402227128171262723173601592041400993736048235385883388191454713935175245467776804723609683404103082641118586732432776930654862209779180150800740847355673303842554162215446790606256161426171347942823736460500834408958007583837169202851361445642153950939550129382739266167853311022545569214599598002232079000867892993137624319190061447069560339367514980298872381057103092704323672376348132913081249217258446370063111799555383800851967483533640737795468193676428365083236457739913483296607652231764800569908015590173681675227223575682196636842407175028285062026853320794814179073231610543552410072513722765193470187765617937696089406452869976087281229374439728329865906587059991670601246215950185127800655138634996968378343661910041850932447856345398901655133357256191990158995524610758234811454872573231590255319455353209287390824074748459226883135625559984205923195401598040409457932743728768848361539758347510880320070903698329833723511623765021147625859882447853520054206483272878543298912896302974265625697875052240570769926056309849022488308261061540383544204434925651087468727713083416340886735802305631155863777385052427802448766496444438952260581660780807799399820465810657407654856105478701727979188998267423091349682365559542363935234458397744103147217202638291958145155595697751308196643758832543578018932690425516517960812090253331161124011158366201501752494619895213977024462481938515596032229852485083972956572402657495919420795373586622971933563225981114416189379335815471824884614788108600410622247740931810971131093061936404280889729909255314525773394149377128408002762066951297664647570470235772140657344828347143224906729565961492434101018635499423311609422206331075065334116011636129028966714504920603832036265430412347625792017347937617811079927108734671777064538893914980045766421812819280158767216665921154045517910554151200114014110980926450227578758750297490047454821764289918345380002288440414041408424698910447609688105666900301995452899785985030676794014284906035462818720063728301512920851858419862880678945015718450788854336780345766886565177857121278239977149115946267478088083332716265505020740546949134954252611368263723767267008956403402882718117078858923166328339376603911567648889344899960352462353388598073128605716613089835932602678512886731901253340831049909843002312669747391504853546798501983027299654629119320996811191634734050022758599990918105025963919343673941671893856980112913485084153872969026688123682852725798570046834196251218167974898270805941312777248678403061818906199698394913803923464631016345954215924972961856387834338766277707132689310005299808935907832269531183142325944819619207816328336073332759336322372786594254773313571009993540341902468787011970349269233047643600002851820268763997815710376147596147255153835321998896307300825109321195599430646781931203677037852169678629300300726335801880227586897532477761631387096256332605325355492609867559155128359388243737078500103714194034382720743404637375326920167416273284538787043735402193399111794274964971688737614029298457218910305921343833690015472378717479250032039942430146445459852084296594145043090139546268272030588787491837950963005359856836798830813171285958190982511357631463844231926574740770195727758885447910905425953345950786382336988121877272151509012337741888844005694965446067359373860865237393526779650112933202862225235723089479732633318256957615818783747902562353812107434516771449313712466275404879097625662700813826007383160350844027580240809281784399391340560746588267875516542264228620609509868736658772597046239973284996963250575312611844896012737956204242220888002049642806925728832950922454828155173246881047222725714441916298080143858046793620640168168002625468123084496823631245388766506059399834231832873158073743637559525687311982009621613649468322738512443921117044352673603526570203112414563167734021932162864208459874740662481303672852746181318218671916245013079908613043139185674129921918038155562199920247446431556985658284249114983362450432757247048953613226224001912423220778160758069390205787170460498418839482152264104050908185858530094490152537065256356118347320702632811606919316479398886528793905841306258875484509150806970359552287481659463180191335000254925897154447196640467802009336555058041620113915121934391697564730727115038749036837398862648620669091670929340472926774130233346738683392741997190630247156444338913313456595199640709391871270074588982217566415148772180249952076881333423461507607467694667239816083502193367384330570026644684379965218316695557643925039566688227810909639577441550826014087582047212901678062810195005210247293459136663009934261606609981894392815187661339929835714566057958344671427333790356033663602298574776302967182941522659447935352386002034735418072799605095193126489543084924471716581871225320165561994271596343288448795121964941444876582410344354982667093495716099804203510738675079446987397408412898313414296059362142094032418244264178396331835765299007166705053820442096091159956355974351311214424279034320484875902731056370140939581128199826888554995363730624023613781254767036847114667913366314136678889618587173858208263833735711110987858476378449057475409346843389688321744340393793142832869109532995061383130681099441595830257161669267616912934732587307322410906481984024140925055987218282537169814686475261886207884729637589656007183602521898433413601277961027047147151801268173075412012807951514785797233981288324161676428208916500054984634278859508714638582066379663013601233996747370057430920038303853631107810688324612811411604305280655796368504543308917677088016739811113202691188484298466956750539244443430983500007673276545336937377432919079558582022627171498522552193431709291941090239425363118708258706553055669455626617022823256422381475221461678970166751490401353860192289333545075289754095036031731361181990089041686706628137472422772092332014588640784908758305652846062685324314377271555655052187884040661683968434976726756199297506615117954368357247774087777564625905352442219166361285659010275845489356399354675864250657028543934793587121221395907326398396605388522149351549019462925668141993150291409495642390973165686497677577264153854789814540363214647658778676192575370110895397759801510595003914334410347751551038039648749075962522903270893485870026237982732723761599588541007100591348542602620045016026450999442936320804059985417346439478294631123592684631957238655830966207665320019654547963885369264185880895114393836674281255703098280624331272217906275311463502145927318364385022535079584089878016125953822374256429148729277349957281563485034288763440545593903332203330646593056027389249903486559994378052575593562717838552702029217085026821627566422034436165963394883775125432702241083961050047006109830321766311076276053053015014579356092243311148302495844654476127206680340924955562843206798925606265376361097960449468506758281808732453010324644938560097367148346015320787574711415181508012144887902229742485886851840792789402339810282173601409886484390811685717921451454101670923088110335725122764678047904673018971632873614441366262323793487401997939144396783355278302080911828903003341700894835865118762719602991611138429424824264794054414036271513263003703767596567105155897622683095355005677679128670219410227588902862778601651733889425370238866174060449243977172363794501648034456185756086483781383591675694381186941956246937429952665834309185958824335295860328044567590571851173918797780113850973618651218046166680798629514234123690890136201648816310301288033205474199389783577939336614696295005980984241882677389203688313060236452458425084448285837232932934548237377766546868880424879701663773415388068709888669671164946927126714880655638155921039449602911447554675321385470554432077619094962486766348151312878612137625930033309657893393011079689845173638411285457263299560317515286068243292709915688194186413827600637236863186517124909014358775941496671904671268551333509523456262500476271720377828702736438514238826743990740652999258693991184082175466610568512815211235732903146270095284138830604162888306029996693625141259025179516582517528960829272603345399787026883710601819390247627867406566010108050141695102195254019250758688753323874640128264150511314989481988435576963851774332740595905474883725818458793064668253515791230373852213494228313737940043769642343974357499897877131435350956147270581535117873292125651051712163144270142651597517895186388227129876982854850463605982903779392391528488065125252506941366568431198289930067504934048906943862794144168080975216355250636879778901243843006082871077286124286104636346804690562493176831518808376186262472606869247841124090782294436396880432590003427593673409316037131585881028777890309384420061956172115672234143340188372695692411676739022130756024101157577930642860689868664467993062405883880614908265100925632936683933772196319657590779646341963476015165451459083010634896399489355220683037860511146447795144711773065635812665562536283256194972575853280091124873471634352793804654022817371943934223044904131655716085093272557964241276687688613427291489919022237744181765220705869840287102343939342790608488716955740934799772802850222257145586675485193707709907036165949468315654777992923494952466955250392961122418815657218409051121824582376098931802154861357942951536248621193881780995091255545152089113692214157184108986630880596808662616038820152703953574693165449410718555287416966686960901233310226206306715607688320716634297711873833660791044703952616212415813578569351408479262405051102440634010653084107036256778073329400100129302753876207212755116536556363613001387801270749012499225436564160893067445724803663963313130163809986206808113498808210582471624367654679560765727007496751370083462358881017474640427782375548708115288066926615734166987264799853900005707768853688386664535140759308870973605453651298020158857596114769075822892760008775920589303230783494581749613016286215182681150468787826797989925720156960698636949181596024113383567360386832747243630342774105785278664176714525391889142109075603081566683742344253511666913264879435931419655748868428915653016689872452430442969174449402417052494315589211686847234606003605254910510555699057859432300449897109560065424868894515209528744975672384346953218719736964752229507453662586452800497299959246298499729800706624090245539034450359796802292942059287377514513930404691778103749185257626319098473108038680591103747121858487251441731429630261792128434321995238029132543028791071349582729750732075076652791955706619320445027710114564429214887168319091588237388544600706689850843011326971674691553908300825158804080447912273835105710169715647608698526065374164629711441647234232133131759062790342451654978562743252137919205034781375563191062439060779461599476756870693933429366851302158417730160548652178670249420706752668086891498792601617474147905329058153396277245848668420520882329171910563925947533287239679166576230729835614312974909624372512461869573373895425671695098049687278205004323455781605506343971726839941478727621001874578074887424544201519598570285639444672137357474600711054827755165363031728904492361947889755649958759867581373756898131746376746230719902788837389319441075738701734830331928621153551151433151228955241482121517660139859052521969247570316748536779328449515849190852595972450157440870847274814234287413844790907905024052806509895088630709228943839342402681168392823309024238046682241805100783100022962114777019160461805881298479062904021815649328755821173553350123083968591432748722957134532417794850463840661249339840437990183508505832501512980681727004037424514806515845431266414593122599634320248834763930005152846184687181499586566774616539371356529035073855017982105894690814902075480187228677582635330784285437891444184532528514717685152045438014495123099152019208248767705423552595794374826812925676193753582142436307531102031081958695385718876960001613562295176913726064959227890555743768831692713311971417313960794480367491417364564712292315007166840548206686419470128158108602937034371884729824771791541787282379672522037929235611195971853642538746333092264973565154861704518810941250894745260315978958257791284727878214512250365476632111006204992909243662241743019095314985912778278684816381636480018754875596369891856015933876062586908941114359270792864071560916084229288700742128315630290855027473454251231643886901725519012084303913762676180271137892056149833327805743605255176616657492867410454086525867095814866026545829147558062623403454690416417316100731452846204684349732191586680451486711600351047147789444115097141139306636661549312099269858976954442421625746062629626621600737535984902164736985851396986825939395766409590636571783942142000431605894728267807591552235676031777916201452069633964544734507745018134350013013786453421521383109976047095913488972290007689691654820381385454182681242227229891918424072965260568699572329582605635010304337798186999661522036710887473860556346425906808073222880940485994507604055104851934377341380547812021410742376995231546970032944488685151761230330353809778879914750719087446023594406341778583521713522486426837429712968532954666565224770174628107499643552564567527655006337010079379851026373875791723194465986446297877990731323232808556596235647892463336968793861919292137496338481376531822869946609625287966286561228166830651318357965402791983209742552758007408693375911484637773984400611910100391536951838514534682996064178306996144769385829498896613872671542988285096735239715985127150457107650805368107952668789472578714713394962395637294310607315691210770679579073134173694005099513593995658005926188163916727640095015304590847668612815107383207556233257174443860309415572465376299161282961786755096331592156366512367616690358575660178354329469302865489845799887851331013696262243717460124613966750617540861068855707185909177064736129039706128221196319533648931441511012078723014245598897568888864371644497130824005410886441896360574782781688268939326526733976384436549848264470856125625067252138807159547535657422788477517722194099765739641997651751686327158276436922120606100560332958400162499712364870959216964798206955333169889352267429455137185616735977502832435979947463734030263444155988014100765533868264876627526931824015937755273148979911911986028168397343077103469575166464707098531323151351305246790130882906125406107608559675013215988899114281399060807206385661406096128827563914305202885023580881223859740628151967129156114474923411787100296596968544485055368982057873598191252324217061589124635974919973536270434403851895144288374235005888643211732090263251105085385857335780231685362610730324182565457555105353850702637396207012033686922448604140917719427310854390175608027547720974255038491636148717101397623874593111066565775562733288879897814645108563335757390083987199534322919880155717888599258245000779120489485477645744767238379491656877705344169901114429876023132660312276265072567285074083344402982479569326880489473311584074621738357098667871289976179143568161041717287244410239507446925592118118691551850091644023991250682290340493680955772471193953024485638047495940482629994588229814107199615979721152427961123388117643791180217563470671294294872652725096130635693973136443542304746291580726193045422108786018041098783376633574784673284365174881644342588235498453352839300928734665671451643089996360433921792602189488550889116782089422523917703481384001846478406408709561193726051720439808193424400159186671963456395331947050816184685202218736260207784234192448106947742502788249489083387198070626588832810097611766021823703103279084077567361791778896208051991153245193730788400953164133045213614783628417811519312129502639707732274415274502561277620867028992193657395151314465634081167707528459078099294706077059078179611003677745392823600679093547334026510021873119119509768655301459129162464775259076229564533248900270720234615855570307763161989198452109827783517962909417604496076823732670673565979019346788311033261810909019476941712298082225115889128198609786226754722744421616150386707443581335101778590106884834228870165689106486304315098581956205888468695916333764075340050664455664924249102277582886089610872169660922743802495765335943248358734901571481243329832902786944726958535242580729141816801393883262660430312868280379549166346705978880555909050118453289744026298373944731429666327314746058693172169691668876644041331139751340233591291313863334088327823076862698406613161040332703928911911717972348010789083110616977371777244958904869338792232916019354497670710292940906154732861878608206952534032020560744408919311632015676838184404927496078766240677002821148529345700080301587510419808862146034071009238800034677796370027882785881393244673850804422883879415946210991246811096936205467985036848374286200347986406825291613198379925811710382833082092170935134836550907383096528320925392421515616504551016049233191452223866031632084573865954868822174090080407228308455491548463241086319227761435354487844680330014824975684410040806996347807694150181558371127816914020200791951074634914877899638331890090765389133094079868043840035760389662610562443786367645003302817550828935261139527160774356959453427261664176279768372788470313308739848127081521388740249740996514288193694196913087198116924675515028253203647470357757998119064343263000358160865178861600455095283416932521461646625318486766951558144344077582322511239092899565438562514678413515669827268187100776121476193502680828632885375997136988854993598632942872011600400225893893851836482964241152776192961421018437549010618624571993608984971475708174426950721906568137657783934440877493814322046752285089230553799801309033468498019113932153981035274193926746204005180618613936813412613544131418857981942709953195941555337304125968200533538979193668863447566874909037497928764110319653529813563831506557677493348053930565503803537002835773985671125601898833549158110908578274963770845425919568507733217445007542347965216814180727852867610933504239126752526934542503722656208787408711298991333091546678510050257414529817120157742043507574926124515223258305285836438430535304022119921393442917758006734568590847158540068978016487727392499843129029853732984414712948968681921472035169374205590064394985388581642849481693415436460805817519344821343719422209031949803433278186231509805770570000051064850211487284827352781960217710050846258401000101161707834831100760414606614919788551358776198623290971780083664363886352829839526639023991786630226440444114637002733197114515303414218074917567227331176620159671971651461628865361330714791987439051846759650541449565735783092681467702703425911401135542080485820679923815291996370433988037975240764541099770522738128256723730950481118555240935798666548199211305356961424395729796079094181176415095455726099958627609770070582772499416555255850095057177715086085190971143323333329649398223991553466350913643862020124613425223768378381431627800869998620821357732135243689139391743532732070936282803435091526710708694716914200082002677205513013363468005616344945311665756679624493816290153834179094798230576891777646378416151224993267428895589510104446986221487440959378904687307458901416635128066333126773332546218048967090030878171790426393939900651143930265314677658699529755557683082076348948908880924757170144010722453985721033184442260075834752407612356722700099934758524501362982678568826778822624736996819055747398637772373314914832707256130369894650863862005527157444273332238362707183525195337387383934027664866853710360283239362860050561364004284281217585721689605185561541874934591421691708639398897289449037393334622136801896408029365306614637752510263324653305096590265555046862949168543946567790645512994877856477138862436073149721266158176415198194964290391386852135632309711397262894478465357684705804690224286895448177303428267891721944313582252553283422045583252527186286880911357049637908792452997553269897741286779373891632306446134110997078140889937942482780161640060210768805292223626560164636052300955810785012878397120344909727956892957869914792015863166980043964692286174508025122598000393341732566912721933778302101000720179950304406077492909830347747400024915575707233714784201165060633850580723284588745790023439798670631635701139384212111567619322991616883418299078771049419471449463622374078985499376378655774537573016175701004462509828592194263993125201739359201876329812928374729235604369873284367838486573863573132795411505778564109467767962864278472283912083350772019096514020005145291657367539610240468940739212647515037884401518652457622226725399188405814326329742986109005086047017356762791879923820828211101948217945130787463785791746018084020634328294604339741644894735180677221991544099436007956695217389218892501940533589612003040626167225437175026270138675786754715757655079880787172949542168437758544882178616497752112671231847004889181235419733988925454028803227980666008672471521442059850339545960154578728450169120872339611402726008973823615404365697852049712405392931972511221383553148337023691755403659076460125401366657525540847283945294193607672950757706735242246921491891665332425750280972531356920020070372729194190891412837674870296571582176468483697771690494712720792178848814632580816347090793788574574140348414533850913295808676747784228496990102333643755076336406124983482634864937288938462023546365607396060745910932636948083226634784209079385885121084314343982172508212568353792393533447502621769390592681057763722534370759063710606010020823637465767729855708067675475127352818710720786351150738735974396945271873870703030260423375078039030595348818958906241269872366309116779789871816620931562294552307793666950864790316772170058601446574912941744255054725190826147555008654617151987828662426693726940501825470125261251421712051464363034429991862753718278328118691982683167757712957724991226655366037564894104086304279949934015817007101499389641062722422695053514510243166953046634544763717101933416288897059809241009048536306993635844812733215962239330702554425439425790562058139251464518730556425448484738911331285894186138419233652084891667890125530330800302932277103309978606378190604135379091793411611629850247237810359017608398586162018477691284556836393750315923304846620113582113716963596834444188825668540156432138623642546826030916335123142600588332997357889738683384740693103274000176816516912575845107803792245489448980299372892262877955950916344369627538046346727792763490116556194375429114948357355690381698790836890537587177591824398215182716485536832337908477808676116850583737770819322930946236798793931328628028645300037113100049553738807106709396413545180899804260882303550325433285411263235089253127946484330609270778827119010103596920204459855130787396626339396895472489394480292023630892190648007975222662819838847046492090057963580845837313740654422168070880975027135637338906718278969975599453606400822629583652655116211926932459973283079097567282209056407051558210342704382816835978837744353498963355808448307340102718653354282659428707967196158811399205556526297715888991544720216238114881777546308399754357918649026916305766565213776030981062527646792114559324693938054369395313592116815569764183166284695234735257032669345846970609058530955829756423770824724061962519499786692691669247567314506418964028094773814801267041964007334794140639947864612906506154275797558315086522395202578770968234210700526554360512886608007677660528818299818581629954490538905757184806450444432750627309940294077291943656583221306386986734523506728640339158373936140086417692764608407010925416931022090835700906605965886769868816862386870907674169238341517193161192945168486513750703758640344939956158794432158639485393534198207934207647812295944730669318614013358469303779889013661496840355090444239417927740121023134673442964145382193365987908214349595363805714515852913272754922805232262818258440458170393881838831856001995761393481616637261547358456322036570503003205322526341979958334263621532934277372104776675299066939162418957449832917775322269817945997294446147539908545289923849609507995601928132598422026757416392667559435498861297456781442807136262590417597780890001847984844534686471563862414685595791474561753117626775223371216332026753026476724390926796471768607217400891194068300511953652902243866164621507902324768597559537072135117334079191810612844840926355777549039714635540509722146893767869050577174357512129454855871965731530461926510375514613519252839396221481889706991510807715409055774103844537637437374635465404641263036704167063522002998496306755341736502473064000738386562242162515107780877025587286291637567402025445939932637552795580388686531832513699271371382454845853806474392675491959898094595074392139756813584788536617088541459774328813097065405612690978020739946010138931289597397093066451038437673710813861188481146065595194063432736974497737901793083560094752298337753942007404547218849185631743963901586508784657149819736159787854122687902732583637056534114935350229981902098506815310719955815146742903153208241465708201646525882984168092297440741015347440165358721025082849424476827424570981524605079962100530284264277403431674558004339979493272548508127716880652081895632328468330795000440577874515597599858347327588046277160989485959028848950635403218864230671938883065041856822180807364045244602506223214531513237909983138193968897504103640423596768450662289719554155976602283555155268754375887470760448372373483219939192989841309922022584319329356387236733947117630084460705088352561214296678585784248553730392793001739562039447588552984595382796181226273946998892809038844885713038031088728823968553324192298658771487096825494027604568051924768305805709894073998058946392987412214935668745764077900908144612106054958880343250292380322114610379993424124697602582949391989562000019852716637055939716239776182819517939533820916561213473779213845147544369773963534874618242673430615415703023623160815245398679904309959920434596058302760454999554441419800345848010745835961378590654685131815252671106853329686466637441918563733364612181642588303480495818780574849479551018253726160759018303210457390809323124653401548910205840139863334945337363777485470513000635094068784439250430018091264809269026363393829586540789821623550385333044686530849649988164746430684910698606050588275038472874033670020874386162246497352759460594046771117376904981457265862382607035864424178530526727888258587902140207983189001280021875642983554988590121368520261511692043651685583320453408722291163757817464924727850089831340172602341440298702586296114564703814539078765584318535458406550134013103776867928629638387630501415434157680731523925634692024331631056145412149700648507539865897917614106565754798027688373182600324580840413878739815270838426415502039411921196054116681884868215591458038527290227556366682814515338362964400806307623993608106911269574498580674201399420025917094858998149546977640125650685326769026180498461375256086163546885546195225799849731949725332628743987215717030549714843218077814379514047389264538103785420512746526753851635045958269173349004948682038926154892467412455503404415704474440713415834173373470199587441523325898543422202036605041889216122771951815976275884209926967033926792487283574203253908132203302405348248273806067752829118722013764914176190771586857008644221737634735875019307755412746355773178113659691814271544877589451703665051782336244630568610339510753050663658727851460964318982836225870849500259104338525257050821537011167428838537850640162339723417374409785188403332537732096198813199560256688800327766520469278042901753645154982590844874251098674135888651945993113240575841971767871117677177748383419127863744578910620908287554139915953546533109723261235282408277757170203958933773873981499961500789300494562821391732979786389819797659832591098322637624916316005340178116444548348400458000408485867896766983938285603319595820884729837778296521875165902565761312747240400849860124817004945525691046587393110615499883779500372760002343855500071117978426351035938775750567531729736604066128041004648355704194170606447904637858386245008992641822283678362778675931446102655237863519050835436964286636843048287243388581181550660460281123366518648953554085874338471868982694123862113506443767750899599268889612776265832756340115090013136868768101245420073598277405232143496466440369749547326208687782591006068739106951632584128888972947361837417313546918558252896696854386454240676941655164401019483148965728609672312808975401360162943610929908405229626680430934500265496768596389112669471803147739730726018537125791406170305448228465496603444455439423588967157435295281021543308193886170000643932119325071643200956336563117818180898861363534346762817095143242818772924569625208305951208993524030092518354082052016373163969474620138404159484357491198186879442214571919225985027219267133116692954576197945094372397336150421667063725715987892945261192133302462264177911873826504431201336756487211212819426261319578022667045876336938443961087585464348967018679948826785591387846034065031285536565787437025724542188944571804104484668312297769328611925842450940378081211482254649033966561985042784963138614039895175385815137932595995429345218387956083873651784831704550073184980510580181806866111900251233284219987986666089965189194189726609588125651957009136291224279635260183739911566699247865653920976488986967256600120982877503448094987693958801761326796946744363079138117531213813963363207605092830593902737002687248734889895258323684957434926800239762736352865274622892176128812386899503095976751749683356252297894952436117890951835218169624313916260762220232114753260155659612269589093199908702365877161355443609278774343702760880616265804518089572241967185104479229126924001666458625454730440368764457928820371720084026371676068351016000769679181823125478205304881228903670646735144000011014113405514638255540180423120480217735664297671052568213057365775857044148217909697146651488672635202993058011579595737182359788931390511841738624533140594351449993052270962658824901891290963410332113405640233936650651207275843295818892359394902364291926977870624711463723767074052490973904326620155969929913210861768960933808938861690820594441858833039589545073631878686398706799285828743686373902099886409501804461416252815373412226584962653134327961321102132799211151322968625740649172268803504206453537746412456888074911077848329892134049431962323914613549307276350349763671765358566188585748277903288274898772522908248835464985888018333224786856704825417895555609094094891613003714115200940441065984388311101507841243423118137185316302125856847265652468442756615021294680726520649324658894449706654723165357710099015956345684355587971717547018876607649919210910141781300664473551856871641257535668475380186463784146283435493672119170525219254969509510757681611390370595068881761420539690092992463192504002903400260765471907477958608725625936693622210982036429779845183527849947452879394592776355486472665374100566423456166549090851452325625048696369892927157745252312150163247611959064534120959585569531283894040729578083068925920628159915152505137648637676693468253660114388208575313279844081413372558951954190149721749484472790450149754345714904535514673985751385460034234164486509984319175828687165221575220212999793099649347688299788232957877978627000699635904075450619597703628472735825260089668580784809021873774107006535919298203071092930693648725997607874230228291244299939915678210770074694791876482967983707299839838661162702091715173855410176233312466626819190685510875788819333443806871972709047612858619366549764984882681143977573376110037459478285799921512056280834681411012505407065974093328806350476463576855415428594346846316327813954040379739903658087001088110241101563527529198943279336811359458059978503377553856326472468330561585087203726406474689481658769387953765020072999467700079361063084766367819726145229554001739492417093612859227684090509698338260098182992016534829406689089402085121118224009855900186743650981510906109276308943194765360057532562643189781144293205968474965357015515018774547512884067719745145474938392974936195922544629581645654667066834666718318205791510898406702344538789016985616543536466056247175349281520800890079594251153805965899383656479415952027983639896935394071982076288501022061580384336291116591721857843626589965515084221305661627522074461660588670633959900616279879942494835446111094581153687012711390757770854728479387503343316313525587599691796509523529436148458599994650704985844821470841677919748406465838698778648953644757749724324194464712831813152352476497039257857830210257472910590000621294541639554158744559926810006855654785662159219970682709234141914516685869459920970725522475510691650595961188731723492761154101991719443653494703642971303328641924469304851523608164647746726811580658039308813701154284186602482563351653285030002898377481866763519595332477709619413739275983445041780053373132326639566903749510532781682848686342096058119494261803218492110119481901629405303733626745243690527446191939907643255733535273822420410476339809909961598942816581541956070425228759443698329498556267019382282970198242311544055483039860098442296357084329181645053873187269234928977502318183471150010325823657979504900519405129548618745829313675534038511672264607363496332130512513351978517870231115058318735336006047556258007366347133392272396895619352661789950113009101397919876608652067649090473708899959991889726710234120659107178752540984811016659827579973637110768405795778793694565036458786188694052726222644212746402551597434967817649991580496212649039888441610538236849371175486273502316677702509651085232192374410573830531150378015813158319700369732186328675950265625498523100389750779496222587387623529695045691958849827814380115493482611367343448592568205433214557209941286454230016273865990179168223627818376724866435694515120780710372035351535260378772308363517613851877784271888280439783764877720876014187869758694556722543346422866366478666477664062952333657014236704318871931023810920982744481889767669871643270297317026832234961381124884468472207219602911655676557811216255384666534457710167846654572488009709570707794726490570529107939572123860806659944752534949213603205349625815531498132982422895562612259281340585573706293116575260999937223426906124689700627731614486356794226268538098724595802502351957177494615907784569919206637191923448983968261593149570554406065818903045759651335509538321759020043370275766364927489607692080607076278140466254323032380603318424468499432847445749427529788124838111363510592249204255940976033770592643287386393727645538678479739619728869076865622693003371312438383275407679727749492081674413325848046561085928584478921044759699743778480760263169853220030495661182957404076501582073094511490217273387815605835395387957139751637915658380929143756413209594080680527862075750378210807559190867525960953488313909801305324939591087752747830578382513411473317446096509860682992007683081869226145728901644926570260284087569821154285003361404963240144148665496637773510447891075024034713506428347662670482272091257358835830594010827841143961303931975570034492896913465039325453936902222220158085541002985786871896232185263812394294797302225932909009133368909826212517152509270959533040799673476883286437351162685777288074976410655585619376134777529639001656754591427241282194404192157419001985998068985885858072412596837159352306478574962147577158440060198645173414548778364857456734006122567915540647873704643627550148807378635297611020988611285543811817569862376463361205917533817827388336365511566405302348181450346450677606960762810544428930336849960990161250830706888732181924972896274856412473098313881354184030639799957111567541108749517509430909289838741978452131707056932491786986804106195873606817022303837892307756520847885505839337051021086121252074287862385939629831327877344935698256162870182572480428701406130978603518294610641973439299733897984972182656431511140579425562719133957676095515122855717939669760610468801118927691084264154732966196050978020521195252194034548480296004794617213386315246342508220498009253887377983333228834531799317088440117392391274128311549032972208677664710149543753876179689702051175962774344456482748133217545389163781621543731154488835403635336364854958954616105181036096901570095880619104654936442276570258312140509072955618330275291574658122600782157927809631423115795509871942855386199018652969856776441573618460428440314507787262062764727043469008204627042837509463793772531673448171198207710208213469711939611171778791923029575267186620271200795244425871623827819817740543718298226484656849550958733792143333057643151440768490120423697857430002413777072456416266023835180254505708887633941777394975797877321707259771326038883930332861947330584599256711731741328871420048734908784998168628038196067976828698951142486888310069574715629740353599905898416705628401115491408171794735352697410084713399888372390860142707695198760800104965856686969115050989280876134078445506209432880393503492652874737495654295977346794666329589794108352513548557420521659262588685919227401491798350175905154507479583665868568666579817398784896793208998104065896982028037696850114055245009035663877687698291500523855904486098822831166169262047929509144711540668964623238028551484845976607062444697452601385084415086201222486553973998998907430383570139383422592823569266515130496752594430122110967786760301052498355133413628713540208194887918884405188737628686388651655466395713138506127188126724801729014824883564684798847148222133539612926462165483719175218505845651376112747997955779934711176311887224024588117913636287534627851974657094303750338743245099115077785350640168181676835695625651699806757321234209327537362623492748206741876022318870782125499820884579710157712839949723681051238698007706366248509104256859526645167201037321278494850414748465049016089684901672713575484123402287876317080280447253005275435324826693674991209917095819816011935200984228557936739775495249072354882612971654659172906153928796124784834031261945216509259354676722836521893921957917759508077079361990711606322939080907059353877185491514839974597746672417394722305028232751342746598553003377519916378329221492327092721437882446458912385207470618016022270882653206388361656475978991997516659827566078133957021899977744341804345636339232026999167613153914094583696178448803015596421681571571921252909697679396855393806733462061372751461145060500588398609784147959826584710013416994582642506363359647878400172892890160828272491468412259047061903974350623907985255078067047539339241077767000848016076832471755376139010141356991042484113695394681854336894166731876480336322426833066859044583766786037927055906014366685039009176399466495364104541454260946667494990640488088918274643533377264239005021958473032947857328679791907684824423598870163778439126127045368054750891628469411317068649617140536249754535213514474870420036136518778101832259355097042955009293226390292971679932384473557292712394076954260542040592505558231992197455199506447027071038009928754194353261236736442410251289235040688749210441703261130113991660936966975469853759026559510651317854768319220393590549082886564465653498447367966121731098175270147662177773073126866401636277393985846745617208398188748241473922276131394141413473294103681234961432241372425222752588800851100623189684529430170462191809317841363204163803551319224153632068930388779778457979140470770385294288614731082630331398797931233994092895333376736736118899416733019522792182240659985720919125022789845842942928464116113370946947591074648301396324840794885247336886241994402367999493984203024838503850838139227010604030954841667060424517815647091504803325498915734607718073771605976420629510397624995548207371476665389408964478200150594710287745760293997169000341595753303371587204710721817045813883003251329474481251828477383737360841413307983866052953101291083825641432840898865553029909929291581056044246432333832851757746585423144069493664767416722258839227553283709378030516974874150542620641880700618556869741042448551120481138263117569078061266507898176161480800038965810434843911281109212403228237666640442069990352306333376420309055780880547247411294972101395954571772064812675775456274846196393116449744394402109324261647138926901981183703225282345302482816561447753853518742876465279933701167192019830733639876885633808591995738413367321864025357956484359384616594411654988948355099560276273532117320147873814068775747625466733750781658797671477010223344451319703237688499494593008866403011421133727542274987756891340101391295435959935942947171681284153913492167668040074869557434062279607221296935575311831106054137951723268079296247012630405721792635009503537778671932140401042256438349956885261815545005183879053367985558767197579494172896629525385968791434262976805948866995625676466884393934215858581819306989021178210474470903578110176145095364266106805619545126816041513683123760989778524388270645548996395982453385792075661252243326778731361408822125883438026484751203635217275669775972396592882125393074011561029262341947662215498045580543475440070410063888238194262361493608292096731482716748884229181845009926396631313974384586249901991077067781440199471326598318029420602851606587981794112620642370123928612895581537807532338747857515054415736789471501997892678008063492299446996561747540761127652861178120665371110946911274195853081806534487889253717728454356778025410234101925312751758182465541069409352067541723729262243823854878414102857067699055232576066159613584139604305594349089455197254480995498652962944779071497329074131981402401548010641261000826092976133112498582801380586603057644322686993056100610126326422659872039337188409569850333341773179552802103752157652650780227310671675274073388613351072146774646343683361374238072909287787905560746845992841752198671251416958651987599696546142490798822943571890074980807890967086688853567333226119323147516578270448833018121203256221316601619433095190132406502009403389114044286412067129851962433760871764355446158113692898518489383843906848478544686172615172907484701508102395741978924961509381240897941935442768652616366999875794470264569139971477021332268189907953312820814457992035704504932467420612980394409217039632970206307685305747800972544606948225593111581140991932723567211836501031039746354988260125586382291619444371844874173767829987030711442751780989594836495056790559655980151484551616766032169409509728823873420730868697537480170971897283673234117496711649588731898518234148896719646023316632020709545383358652890080937618757815752212249639362136952946187080676060217245067974165375520334856886479678060656184511824553046814600989368407815025498727421572567299792821342393371040828689518099072029187269469755157563279136167071379534062651822979369383572896835320162037999900787115319426073945382099801410574603380533826598071472327541030682923226909554865430852457765100833346354809019648773145901200687056964898040403154697401170195007296339764412194689005998549754220719738340062205220879560875174755000311289034423909310070476565292474049251525015059588832040047463140508811658665780005562003317399436766461002555635783451469763177706671060030005495013920197518801768876160105452093144531101759634259949399734011718310155135336022745504965953081459988135482425505720733470642385610726918494083415065207116752104073596862149661412788724383912347847251138146119846017862016777532835158636498075761039186041370710140844915702981314640195251783522630466225016211314976571217800313833323797120454588269274396129735550410326927026004277044647996203157939274180244081468762925837823378139867520438221369425295891783721148170583698400158679435297323657828964347929430630480406043903633072097682393216058423473796302159238012690715561940092117399637912730165790032184816889886800306580034343722735675375619209549397108641036567992819986217034368039599207887709569482611403133131237399107721142654850592316649633710668960626578834994659805562631072727579141326626899056905876677196614572747369559379764390940680590970239266537726862970437668723693855103374249486361931542433008538964218116052366087597474063398393738447260111885772960153399063931210485612561425981686547138956946133402078000547338762390278409331854153871087716247700293727454054117726674492239585992832539073398752448093533804761702882141903909195173441963984367256437597874099215859100805402105742782195845222810330353817292926307872451847108695853560820361515678761433793415479866763441136368795439082330649913101160808432497386493439516195295123513218801051791122484858271509317390876890672348489065547584871942792856899573595141770512501164076168745776442803889104376827402525983256479008264699979848819879258067235452496015428408917202485949272940616280168194691374222997662659431468275244602058614135611274841362799381937699881998184945071732290355147656074743621563205582873133634231747943633235979918379181900765029972768863177899818742388451137648385862921442148541412714157822982717202258284460728422382791188209737108264620606182344779035056512548356805417308765693453618373262665707451057349450749581911412982520568414757220849020737163111673060075220646288906537995697067920452909582222065313115907561505770605302198522567786681184612294822441804595659518008910065507036590205259951713023272798238903187443062815797806230201347224890263059570012068211779039240658536686262014200190545222093230180740927811519379232366131687510721920393226272051238094306478456859270033607871903490088484093819755907352142307471349881466135321015835097337864962580566706649568080168284226837689091895337149138448612443400295030072761162898078864483663746145756319362610044300611640497020580591373300532818523307536995308186525098806610636917663227522545579886153632424747591547950674230613125214682568002803047395251166407774024002457077689037871393612284116266545534828152879346756275754104542586728443017809265219369605239286472850161933035114988591864211490093991083924016381809823792142951427482761187229907049689913654339201016700954320573687050426110441077437973541995524440574438085501066044469958697693650958931473223815905899569152825095674059142434191466297487183257285678033635206629850891452230555602598217778815982515873333403211535313708664791004564992206184778261079108569807982636032464512171114057023227539413859892211789072330928622882326159833476655646230316187162259641375156518966269044311865746453620567198455991861021385552207699979431199469654296492077199447698479336810758684258261592250679480507042634413739389390351242839182399904461346613379193854180675656508666836977650207281992057619759848244210175801254676519379681863636695070754319665989987134724415728824894479376741685266204095488552608598048776052231672780364985367687384150864954049228084735539162666740799580405381249205381928181739776156255177600232586385423517608903543785846807658224594424097238589453713883893292898872882890703104953412551235884321088814047601470032548336995794286448588716410770236865063478611048758910008448854493428395511408133383445159195174280850349993197803760788747796326606335706310833469599054545526068627017726591916258216778087021605169565854697345689310765039982591357953410641402294252992968766351331931968707097377151318459612115823102668653626423209792573746042177706272163189702274701114640414852453219064172395738123570674199758491581389433020885207835223094348965625507094631696051177869877902535944660537884981655375619526965031445697704510390328609013722987336610793041954525133340307812653370868378609920617128571150512816046192146250314234924179753189661715726821827778539336433464394119421275725442997236800941366673573528355024306587083524613045557341537868986618086666853773764362563721802864844834790845552247291644894522791182422626891743669450068279406349141036739775542697198510612412690799844737652511529618081885927692561631931722736159855653319949545080325220872403490006593315585506176570111174428752339483593192054826108605136567101529814558137056779267803331869682171548490924227316648731223863283710364032712103392593537174345567127369431997824195056849561205592656586427366401677482545393919260349142480084196468645079693680003641941007734411815032961790663557225414722901043673924294833914282612230781689854930611597935417068941328308449093476412267723483573851675865907240200860773811744109933590371040056570502518186872897979527229389960339453568372172046465443922778152437408198052994434676208047672740592935988067507095096058418679219322436184460871432623448295234919596581496751653078424660500329383682972711953301411869313549215185252142418795897434136270917581588625767676559179598023178064461546294168723987588976472343729004424330252885308272906350423821896653251002810983761544423797702187530439553576629026091497664386274978669582778829277764373434479510892977750634333646395595441127542484324725615169113305893984803586671194505435406619078011745792443856270596483196771883989641736573871627322697045262461814336593586211128297274586489951740498099158554245966421552112353318528629330482092200536425412342112844652790633600723426363011180160029955258903633074757342925357826429960125441920509546268700503172642479553665462102859780324648079017764131844514978707461271993052844406720772859526918692761200432453299721498101333297197131307226031410666386485061329064515925290344714804990153108634281021432746137728239591386046713144453885946383829419110226464530572023016861045124003080158273181727208984664067876406115560479158439536851368036877130056302743463412384354101792146182961511982685587930708565936067316562931464723568693041015935193916872258914350392944990434547742501628629762529934523661687673928790558338602171389911545009405539736814233157695327974448021468654190911349972155207890737746725618120980465453642940781169821624945866953877877272898121579441408370054308228168374243441427317240204691940084303908952128169622882590487869470085253835185383626325302881224920093712427744152571075916598789398095087748669071097430604057165384589869754603873864671436442474313140881938920580654007770040284912440058538596831001209042524673933757531288631368076533677485141933701583614980809558739067634713624561998510533547428803604608946094966793870608050670551171653847891191318250679796669343816454406266932337941106237968536421914971376254515166848437653673777414829291172662141806176565452655233692119115619651454637880754679038318801070764474598446268453793928305602747031704665461465699381341962797605260960650560441468624379551831826569179403596233310027794930306752668538439923117386717952075184532604294566936309056500551670761853144239717179514476863107188885503804671616035917037635479298379406415040620877135891553591210793311432551517338715286575961943963612662327012856159493461035162736796579450304195656878651294017746270329015950565702445642546955549175505396269446078475343969846872400301991481464249835880488961304375743635805251038930646866930702403356016652136376768178528603005949906283501754092743477346590922991121351989387180518147455701747134960409480402780592703643283703143253514143085375789872923593948656840570288309209108381055012598137842822091761772556783960197679666539385518043157860046181905736336661424622773044496148871636675479772563984484935086628932675109195283590955927060387973012429978187432657788026548732970769136784657340592331466358060174587701645626187913913583911730953569266250110550836073777523104629554860954053481967084362860925790785153602106204364808555821821597653234427573663960413844216432192834154813970838359979094420667595023832585332555154357994589029910817601685277663786394223751494539820407953353958328177982409879871774413277431734990398406089363076726260200603640407550417531892895991096079909621586471347222436677487621902168606122719070737080611007426448181736933449976261969943635479603441292592087461944919788140821715226301753924516386852944054478093240704621369079212945392308173021009853163209279557460086679296784966975730183799118694530820376660979825250607163540082381024616265839695117182662080291004796461563259555734745119436167221557894149257561145613508241285514617520171138913317345920809759549307960729480219210858236301684870329166780646527550149716660077572575810938434699143744201653947432879913242676871879764203478904347928023827461218141695131698283355152453404622706229123444102323653901012144371882457411961729329584855051143626568189778580715787867083875382087402768601979789213462192886530498535598071946436295100301136204057481618424592937154170003228411657545275404728764477423806185659135300536095298648388916811825653419668862554272036584665524330169180928731322250872327970843855557895635772243517629870551440464135155512620587049250538619736080997163001809940374175409091743953601910043462541494934663999214518000100866755675015042208065343899943956503368155481617564590621494398639296224681757029764899231595049668934104710595650687292705361823365979297487310949038189416622063110852448144858493936304910597838997139443465807517994760299985334703112220120587300114064437051077862330028426661187435374867150361925205920293726713889108134215944823451657660477909228258319623901593576577290982497084844736167322474780801810281393635122261253140392747621301826303546771086897376243205019947997984092742751192200788937456275582832580124067266530051186955053715377356908452434237671615641442147949879168564805908099521576343263598317900876703784073576255792246225644904816820792150633694403092643485304961352220920172770234000984623812392949037903780352955519601289936327487960957594835638766890848342575021760613625142277262653560330278544916050685431899376899247712011964306798850239171059856302442019579304438398222953849673780607900334708260795007268225825951711955536098996460157291960423211125904626274761455044289778759189278622733136652338688753184227971014543430805004967402971805936970499417802174437059735930494604258293289238815132616049615070011471559066343291168173250267436873461522434548175644285474649023829989551436294443094250909459272726402830800101303400241006865851573301372479790873741762879266356152743658430199370869400016155072960613018258362787818932550316577303609023829181991510757972556896303144805761725791777444024908810678059531490119071823717775897995219691893764284574569556441990779230896369191558800151170147920730379886938530723600457846139660988728047382829114716955693296074170950455037501927101303148182967882260720809901897040483575295052105116187833512293963848716984829161259886094687808520483212102764683055327473041807814011381652541842749341012097576530895612030566850497305953307364462753587958808597122580780833387570252630686143059423314358604558182190472475940034372041101690196340732649105508679689916084155438717277591096953980665725090103299252042580428248353081994625370705565729100647234717966892171238404330965974115376344216549776662476397555437963795093046435097194534695937112913738330929212940320830327527286413227508733290921003610934225922610024587046780176109942693103656592074246473667585731709044926210947995502657765028435379991072431063689910162981772490299703224650426834358645695215920967099773727847419926861383383653102316659879755820232587208428929975835337485942738743508809438081371010195182376231285682159802515848727956344425010245219259273832195188082198090492135105360837862410983416232320784400077807816994806442160966192690168173124741643187091499645028901946239253620375912105710866871137212280190987208398534230036526954225688946882704857814676391852775997664617806683433920494766638674100999996522104095496918382882355244940786200414334730447616817838672382828304568656829067631782107849309919041845496276766587907607031507595437303993233621975501717882669044744702338045487018180693314780171939911850708711606537610479827610486526872867802150693931031231145552403250755646586779667491840877820100381022640612065464409689121213060812044659142132178545543348923669198202963875579297899894458255882151312816038626090503060665903880680892920241453536114368248652795088554859004998671045195394077101162674852728979897998989544942740311929001565910313657247200917057710151786510813984459826496041315675294351036351919589925517603555840791063588018403712742304131753674643400190253252403611901652634372660907275699164960860147915942710008043888268195171905567504371950470201258921443426243879640289356264854177680850913562650010086771847498631337970609355211728923799202383433511191393793665839567778450210238177266923267785694461947448003092282536213731979866146963286602473187320473539620914112369461600964752008938889356633945139180672360571827650457305619362406642776501103080480626430616475492398096714559699019507263087506919257441615124116324961521579465235062701627955979695049063069192772811343098997415108889551661598029612517913382751336313106572028165831280149689878335860884924833838670369887438610875522790611099080651082991329637130755673958708410923646316968496455516266615497968480315855417042345543981776688926007890666452624263841556112435779185760890949868715364150459553823925059856295026796756392044158598662125430729059785179137039610197605262102774030123769565818217396681297394106234815126367760804077186052604035181102684044254393571403872054219376604463793716668408087963785464977112208821868118370570281048264222294861688993008398231283381309376101132391085684005844411428042645102241044637144604230089073308176392648415756842514619111505786799917099816547534406545106444426367634683978008402796641822015135039080815806321418054303858280950567803679734408331831920174849540448933042163544562775504773461096723159628231423560552959426781456167449122116360239600325441891099509048444201481118920479238945607345891997199542493054219420295523531478012241754398417472581577116340675268243440393233395397415419132243099292150152856417164748244899964689934777963537971568799250715760120199709259244021951620160312182887840104617116709803170699953477807793121083422867933036101868715029643963248112066138590569785481206235184633083468689163187643409085996367360367486205660670965214452517175835297103928942832247472554352884566863807296537888799794348196006445231761694221597070078787803548296707744307825525576158369738181112481576931541495983236502936034301685381468376254811494983737723484371861851551852804883631725567451310128525584197625395413165023605707024298279550309022467077676514835308578822508655170256362919527497388228379026169907919853403125963092323120781907080878012861607439876336757988233451389127144853932129910709152260889743351771774448021995560263048890162856397048503182102544599203977354980320412112192919754755528669216013946211362518188214703355085905057108515934022547605641041239636498148809400445937485154782115485676476805375112023942787167450472744556533215863616968024992111813031652380452753680391976260949004162549974130410584280658458624297533266768527762484871511014941628449322469870225486977992595193179384979177053872313277620484064930033427500077127369474215083780726513954662199714376440718483096639608177658573392152272773294525119168033121798902140217502632584698997656283323563935644252101946635992090314071274131412077926552858749747502297881856012060076741293665950900354037661249886003814244708155386529662057244033412527166414586898241924587783237153722767402759465562237174775727358211837613121922474303916451374324006524461714278275000616888889894304508539281927731134364910243292891111358880052100481508757368884056356674516318004106135375713372298946742505931902712648632513296202345210045066596835367986240075045024763674292961502138498890144978779464875975825868106346116221290983042364971641094961297986361012656559036233871853587978875238163611606956019519583148279874344970643661224338834258522602285597548344685185371494127913095682559646731481884926598653794811291848499716716085441666521539011065045727106019563504219780951766935346454078488174964650464730982793616174165742786680295628892145781339586217259206420513304275574463309989466955316131758814879081855378020642377836233842831194902902177513143651496670190662974976995483728897939406457021764902082524263561797319424129505099519822778973833690929862716873322280702357901730012980800042862168133173781446374551608164344722895658370409247523392199115198747561816089005842628186377801615355295482778870742387191277748251928221685351880894491155196281133416324747507100749943401526501585564982863980902871735146569783027917856404090561198772409988665320534888485981936270983639111949524840132907493163153572267351631635778460333863453561717024111629462506008279874181277324788987564524835244587081741033371259227930347161017047518025973352846990327507095448996930409674959709973106592606259328403997738955715386064557720026454734931442456520804443785573923049896407676171941609501385818975287493730289695248637842189530233237732917306317969824260759438968580290823308209029601175373645542149558817671832557322801701321988354198971247139326897744925597110984935272746120582266092630848772884457841260337647733798769942476269942827200297999291200104040021113163672166008233370829956273255747857213849709746285089963720643082870933692814220754620064577800268405052668720420553978933846036154812127450914953713767587959008301552246501078774198076206251160285293975447132563838584144682010790423413814581621780045872019200311514426428480518271458579709998386635592091059865161590809822976015794379584820489697594866910365436222079285750290517040960211507762200029056820192676501112471560330575688792266217198273420082203775926822014736465960072137543640094295556096545595233340682133922361345788838073214367224189772318726758649663577616244946181097935500450420111961588978456747445572686956330676009580729202650152577272450718833430193433751125495814580471213399456161158349954845140672019146745873177711427039281684223073064408085490066217972012553306407115635656669627566746903755555940574243417819939174111493408447183974086498958210368001005566355064422811526095375207333364305560819253918372484633223857101768274153878370144509435751455179890506666651354237586224800361071154845377704783941009200135491882205886504412539181919888589115181250129208408654869854131096622959172979622815322200217613573897109247976305027895341512294117396122316768050532126724130168783697656063258098465569677393611903885719638098843567592674074172293740991415977780416881560311732260081488416735568151342474576550197951526085519593422208110714308511445894555169076796308473746671856994277281812042497029101188069060437213146627826037612955043909376115082879565745971392189303932491325091880769307563847689935621365570535188148044904323622730487281311490417973158731268468879931204746551892308160474520081834081280301222705970396230856149559156646387660700193088135180394210826483652790095315624594949443516396916094889260572060910403291174781131294649180343010733313398110718181949488574914328480618742229563649144030830724322123029411837046100533336001364933994449762231620349317602882064188896125767763547805802258698127556054807914951786684291326767154848260741742104876896508778254959255792424476348672917551023491021934463072572811372887674386491703697638593443434931933144965317992539330775048758753293394716284647141025521679197734502692153903401657777674590347989687440866940131987077100344952689328447316008779499337440537981417189633588263212705778344739316682305616720675532151398004297823375003193192504250235852500622670310667947259887787701959895441976536554533478055956615072880002781714184137564048392600107598435653349637366639056859307871232967317671316607815619646447704339485698650517040473806946843873338260301924637128742210139261655645702217598842101918813528469160638309466127140179772989519496783048471228251852087581423889763103130453666100982890406936265435732156632279846032115738203389464120697718802516902621661071924903162520470152874124085553776136065592824031070311961189897536756693094895041701993793501200556946090773453224873458987665356698066947669590752829915978482190018238071201454628253627929306998877334153219249747835410297146283340685785421284617698889592805082801757386453581890347671502193229218719588958010380921573413592079501500243710467119408035319559813624440648529473850017052165238442528687344631834797561632658576420248701737353463196565359651025896897002919627712355821663913708144094536169518947465281799891855064638792880631388756502963943227325122637114806365833974015936953105306680436179235166249226159593663535003890438794000949204451291794146336693186984046722259089683607252827798101889871674024155247431322272666627144238676735918873715172986303738161761475152491284930058570529938065130717611507067644182264607390466428895452420313305379828169327256613401748913162469786780612316563824634665807855711206728875979722876780157277823021934490045407387125141569672107789090233870902202662534857696574997186064746007510623705478972626125617815143710245729080893135635998638023651309605430338337328138752256905772803551709401044235046804112270291133040437706035948064813089741654544699607038861623797603774311144538336982655862833600769770347967158636387237988555089883677374096319281397930689159105690166588507941321612782136017633195380975714981649939440038976539691038776051486709244228192013295210013441903207963273181053557790558583173774087190833099837155032347944999165006134618885185463637625113393044457760459924796187266582091599791827735531549659980764304687175932351920019092458263335106780754392024192334283044837719647276325726068243095760651253760587476030224411697310541004989857860908010640017324340427935962322180904557436646099098996498959421943181411742154446842622828908540815887729281719451485879091169418023630921525706782286247211408401616595152010823803755710077114489672033130044325017696673996995380751127130758524393720648152924421939182491662638643115906113875379960256537290423596631179858715985119518473426454123425876326881538046632637891081209950047043131704658666138165214117600855389943549050792554904880509056395447159800031108773858199973275003181201067399982895321724227338642719289135975287097086588769216795965495402585218057627246146062578543843952604969916050146945655780100250657395243406947190922414587210483444477527909191120899389061791859236288931546388758206475731289359422320383192732608765016306463077997421342761279835204694827006911899489228935452441181549622573301457901918354058841085559848971191073862306994529050300441709922460576781736811929130695713951976280369526964091086702619246625532092433452414697901883557436718179008178294023944354268473749325121146752285207768673885300027906555948048483020879407653051333407745645629424809949258928449443705966813695788788312077885587576903049309111850664264279459424451008897022288277941978582140538894775542572254474404936757912671248406558021580987486497557028250631330381784808021045584024572854168201193478788369637459792486388311715471235287723120786632631071245471002173870631154662176179920820863415106756583286257618268499908248938189797957523200058319686301637034732389471442311070767194473078462603841294409247246366218072820807087930521665097046119488324279593458086354127953522479265148994578371621372321519630839567808482452835890671225565271090231148556556510013420619820915561838693115034856223546506849060379292768314406447850029426815357418051870796670312506380800853485892582996809923689876864380099115963144243451116593058183230328374894827795647636034315541882732918740133325702994185224292841237226161199793216236841760835930485489406895599842472280489438044892097708045695065592929997400986416061209941177700328806892205385082226768438091233364126339716252313797872959973620435819816634312433074868579705208684819907986003900870601247151390261683632368631139112759895788212918206775419188737933021083918626013932105858334433484348039578617313905187456301686040139766852236432753243840363100397462247197276311742378918375346707871727378945955232358384119540087763137275860957760200216385125842780392407083307952541628986767470169598245042981521220361485334789215056424070298919744318719736634036685183588319795102661453701637641709921246326228869073170972279058902029902910821386620186633992714558923196504668423777227430650813191154984452131775106626162947080282920378788366107522490198656436771164418828622863902892912229683379873785601809782688114564581550483784244061142768495859458224962005878814593556362653716387672152591624491385400585069256563737206008205636262085088364779492274839862792990796632074922994131243364601851241429150718052088283226040985213120766385367282990368593215706152572713381016228235399501183427127537179496626000809377223983821887098175243657341367804611411261099836338167438911289772420914915334203031385644313565891135565109099362578368100450268759352060736600319711003624603170383893391294596094606014009486288423887176953762249049153712983157849477690108808820278196049845471058364492087169445163185112917041507991687074853592871979933646256759809508001220608744943506025955804879777927139502921908441702470406743229473027965400484615391122550647503730877490833508044002372932120563093361971180759215784125682415245421928335978686163042353079216146481639671871758767450613822719096414599664485130398575969465032616079976616352752182807499818115720434472433766823539133629131188850000039820124606905032696566163395480603439977446070105295393071299034706492850636820152047764335884985682472810386117717620877387246110241369095345145250598598552515758499734273885221102582062724524471724382468245809779425834767166214364223605729397570674068849935603027749638727340895214881527273854725715344735162897780581054307402389338132669510149962221888737089756296026142398853234180403449135063928166629067592454016042730243294452158556596412363120451976188111252541127517512267533215447565551811963520580841658288485219447590197961679817881317116747564766921485553824590784109962027026582635375257663163578532221971704470727945102947447229192420129686212365124819260755893290608793169526651477415908177205377272386556966866684832170815540511907195220253214934235129590135336044150754269693659925015416848873915651566108072871144429161645905088350770386003228434947564126913263132484400673165195498514192707954430455171254261782431042389352250090309159727313907955770068532437203498969160205423756108559756318865656950232173219755254727405389267033286089342402089029169947936849636567738316501811983960432972057295514940538768084444154727126514173999151472912772750940828573371645781828928348399290854035590716551019045916126146215036498545005626352009169591857738780423271843774806506823193342356477030220706470925201546612500100424089970206574856778352484466734328580494450598759877625378972751101661666524273839520767290218788046163760300490221939438637672118027402113635809055585750828562618137699443378408783983804120422028912970486254631755963050645960102934599135553359792734593432044702208866382608130185240183977317641952777820721578865762728984113579767418560645548504620567686244309583197358165338889657332539136341697370916911565871668385840880742287769533808276196411106284409176907300080509149545193288965613950041380961098197586032362945658710053604611759356784657428585802714216409639037792006966718050587362247118519016039145554919606919183092789848586125068323231557221123176715187067149319876094786750267540578275655672162099914037379204576971256930654722170724673193161747044043096680343525513752082973649752637498372118552162922566940617556171717740814804317246962137226048855996118427218423534668168545697761846820505890587457981451050855298487098363706348653359746826817435472627301948245602698345950810252197788528010417347510723274300878703062466316157622571600154034344930000567905326181655718184505061992921004856389908055975305455968881378781335112385085588801680581332405608566655088100057052474081804848710899529547389067067403531669260808367672993279949409438784103631714077482623129162012605171339668502189228922848989628815333099818299977925896891013420646848326668812026093358248035620066507578233464357619826369035894504667463595035990556760539053006313506851783657437659467837666825518488857499549944836112334446604700160804099825225885540134686965066477278567817806160602318774580984054907241100394065541907988206415300776767419543793787240806660538649007926568217020047233037528341860968980905866305132030210638857286065326763348623165477269003916789297222090867650635917084678714464749342519751573231766305507601412090129918122304871730557456678945714708897875855229878076868904690584825720696864451582392160972450196684079279424291465246460246911812051520481050216551961264614447567951921529625320848306622844630259737713611797742220602319422689641415738570076018920743403788590744790114548267360011460052785639226661407969339400812450296529326580944346147895094266080270176418062996347312046144142804629656061508213855176674400814427831668548929865794304472286280771477426637427720008473560566675300187071630183896333332741293017805262602378323210226695889483652814548544178526767333385039625493159971876515113467269274477726875139621543504069542105729361870929439392566962333381380524487698253179302172827523913060305357747140775897410392363162026020852292219764354430940974925397186056535117617725520040682863308004962634834070247843282588133209936354924502634719014060522417118686981160336622721987852907313244311378993894789731778572788601674238969582202961018619855433826011073483663141552498154185205019133599454853683357391220409137567859779575481784787250798665889436199035205748942805980728585061102750198746221623298757829376373657974755308213967020360235275056108048863930338661621346922583424964681721449979348110307398801860677054340828524441059755781423577014087103775628618216452144465555257815414215036661115127936463923707942438804030957543223353826646092015607926654602751159841255471179763778041262779984503211159546584231385783092907692732764525045577359940969679345834311701562574819074587808238323780149993025850769131236261081906656438498587498254353980134229295040043887349521204468126411103249931940272025003664865488930438592233515312729823660779037861542605876410508163148159751887859238154587529218290278610253340537451776606149082269716866762176771432273920490818360745720316079268845476818063452005391768033973548153942356503202758811342078333006989536259589493539876948257081912511721764970647780931858190661782030142455602499128098820987161823535625407891009895655993333606162186000485228132423370593597062117611200775045949032609097963040672749016449001157240486751739439476565005019224119383692351252119403511932134394521317396410228173601349950943408714862570368023362206086728158051620594060230199100125533126522335372157940215099013968527280498575939360067334840971219178627330364421808700231318963880284673172683724661757425790861883359167870545063601813001721647277805445694837951997897542390584050706296165650166014627568826923125279889229664624320459307821961669608642409677480009409570821951887755913559502836971065252520549689238666545587278411641318684164952358258745440982808397488126943132335441282895017944783625101862128353814109630130770071160138318379790697858256064571563213789983781505018677947129802745929015651579250305893823373935345603273160265773314088484230434160673564574234131945772257751272917673324363167165872120019868418142187625433227580373058575759351309022090095721101514537013890319191285224428528467011794519044841973297256868253609961404855169496580403717059985845181169529215732768476987317184769080235799402803612332636405364564636306038232088024698644337920666552455544267108528380599301766854501443329422800106421543491944871420224346584420884857230511815471899689145526326747852272281760078954117034600997624094399218120422678309314998959216591985830786874161088579126934067712543415386362482294693692168290134015423637253701770602335411353850655893494116097173452346634513612210008662577713732218901579646991087654247981789149842137327852981902982030450943647753729133741381240392242973500625115204925426713376772826882014031486604440252158774741635643043415429275195449519968765665098238704503033290111615349528705634157428739254208776443469986512518960907036379766294013980564766104473975871541659230345972327219134065910755482425876641548019751832099144631805723512712966350246496223028328368334019963140171333642465923582800886951372680993009419214233143960127293436697331916611282387972972032685826142648969653167291135682308546826068581844570585192519529094445026492554183249588836879875217027538558928097204394951667870708766849045588260968544515433240310171953783136571102963285083634408050949426406667055553071739450390937194897340268329257361316887332341773653254321065550056367258476506118973554317475372395106733175350476187150853162197883586211475444414300691687272119447214803068123000054265079938665321530854759792454476510117940091180630259803218518752649655270730917254331568250963174342531579180626028936154990610318185466525192038872584789726562717503276112891588019241337804946032643084244545163793978568895484984693560828201331140037749672514396586999307226737236525859184724321729325162374563414265803066356555367373100359004100786527974707823691286699787285170625095635413486334493007046305360743209618101324500851507426988739740437297930013235059059007154839754834103894987125598675681045296076787696808874183658670691596793709646752344144614463489509807795111337001024308460255489158265083174845654397657321221148673262203158786408286793025050172575861262986485472353555608751178444181602668838289003350651081196488823040942652144992797440549400111787340056217978028383058940772041637555061356635776549426219401480989920772788939781538057656784900292842449888005375563876622646427151219499150299717433133860862250822625966709157898120020017685168363671161622981600766243165934795217158868855725566300303272255570967265748075019440201816458467850781626796478805135640717306823739695655450147001365673133763895062255152216548681490652078397344429498838646371281726832078375722575358475192622768542831518809735451128840051776402044722160345802570163254642431470030829997109480634570781347551870020987596303841429466192160239703218979580259691902417711767203439242171247660927856113267697128423175948548724546549594191465059694990031163543857545871769220927571598202303994025826119036310174761784001348390847622233683941003368082589511146752967902912817666419126570546850631081006001205268213777544741835202799570345489502548819579500814050454384979109316920547413826035946775748367453412212978815588062796843414085889610148257618826237120092007396447094706680157587819969458114647949544497080571416383555911702636773663543105260169756286550299034402233791380634501953745677431619405812371122945277159008788383966178451955985076191543181564881098662754715108795090881212582155191958609301180438168734468527476628272260880617829571059699379892612973876872066135406413211148883784267497854273280254714504325016179456429974594714712419245612217040050513221695949074088094531423358544068020087010351951558502679256229044769042443576183611214583776083012261584915097219697351227221831707151960301769918959460559149762114702700683233661853310291511173263254921845392799956788727494929243630491104647950971884081990555518781626689978266713458486307069276439233057437626509716791906967497773836878094211665765044477525867077856465690408937927346950905096306024730992142833215990111896751119770660275616650844185175178702334384702755549807733431059697855721499030722768396966261006976522190665917253984602204305009432579430160903631897952875163249600760695589457444717953633724736686486532379646307907223304259891776715449163100304521313758413307261619665410692116755645115129656697427547136601080137242715976563089458358174969378976439624783625108504710294576239353085824497391699886941099855912887742157185503054221979560075486055971128076628660828635427765739520759748741252978995854863988087708713797207412612770759573794003274530894062492773920540489499655533580445995504109764462740529909574077129710472548497971319970825141780997510313359294978599222185360144623028236238683893091950645268072769744914651167934823010995177278007131738952233806465772032267419874690006605428844207845200871415405753413479368593252191772537296786763511978953964539085958512510826473810644844649059990994947429798719711696197030482807677539163448476781907565595381363604719270644925373627231307381925250968608144454444309824823530781301890060573791810666973808834106236955257239765626165335837856624438146422334879328280589479937184096917177360116265134910093308885805963448139594495091436672006196504798419003425873832960695790885714402164487925516165957778240641151040374644578382734838898475399185837392523298821009268821870009697222581727173729551522928214145427096462094060406351386251498026416100209946062714819890310661005190086407333063208159185742648631564485238557183996372599391217628295346206317799455349011532707732544716904457263602207815431880101178544305882642183731952799201086706077440061883247286032880978421156465748160791789222378483262618878647920569820532513259443097651857343844022250765404112574920351889310222320113282295683568198639608678550097216539528419050151852496480978621584718108943587333075512690268405729719353924147584273926222057205080594754706479398380139053314276752547421325461380726024894607353799718725322606961004520205374007549068564632446164413230789205273641025952636383900998348371083525432542961005008995739917792086325157503907802072608029438616072441433314587084932098490002811852872972238774193604339218593013053524725219765817123336071547966005327300058444523549566259932900645334447542551547690807780198461926270946389503481738960546555371670697138309903783618290167688827470612925252645905479227239819313378590189737129802998047163080107176669288292165077827453530322224559609067236770057456990164013490034389347554710898176515892549693708491369799477418696229180330421080167940619965569403890916751934662955596148133244553466097888600024483681997576261443047552209051637641173976317671483224248016051833985032414650559505711601680511759207135710345240592712519491059525564504553033552870719989703960137706448691496840800994542256166633317266007382909942880501462941218887287609282664353825601609387284075087214450758755301571520120718599794216754817065629591004373166142413599986602574977900668405843357306513514175175982689090308169898339423159562555338077591828604025534005531731696905324294085752562204718635999735359766221394423420493393394690557776362761475231521762460693106990253169026777193811532221351033637515238650468045883922674903929499886823060647536280402832286754248748623310495468061898403635982953676990225194887241981848476406942693160873510782067955532990227211857505873635039795756200916897348037428970254909961456034997276388424865902738644002530032920388208476588125174201842505750958606249958329730357919011740409956518908793085551613265549616532924268372116784254923170303766428450776202624099591932651119651776886852731506591411221873571174325824038104835876173677903375359239830523651756559698198148020414703537254265702261488917239208108340034900357370910766206741647053787101788138615143828532701919782665449592312488505622596765603131628283378936404148250094894371573618989722039333696890495528512163902141940574654513432594963702763975020459901946260739959117062664039815153797843856421354022189109899659097570124870515984464948252399060723671875520242799752372746557217139161675053310239872703139853917768082702848834961293929718423623452367235994829191206233197348424278524649509710542392391770441220015351206714136430072368284019713678719011389430997486217974884601136324824670736700328739377122535119086691511824356500412504934528224660271340671497567784076911654707612586399131819688876460928161984408184276889573230404668660989725896288042246471002010180968441008107467344624780281945968523927833405046405525652749678663306837229340959553812966354303247819992933065011201857450190191387221717677907057411169478487294745702436159591853381599220733977503315184637983737823712109359225497753847202965367386901640617684816238466398018395821928731056397113224536918865811013580937060031388196342417190805317454695010362317797509425689690524790063033497686905925633814653095736916038979728532037293571711418616969588083854413773528624423289193945887103324265094440441432504657075585693793040652644617637213850017766781322613987417702371021532451249902895914522548846696689706678060630546502752080621579739185999840887388802329992821957802714245468809011520915753432153316671934957956978206485157574744602844377994394071042897554998424556038489423672389464043340781073887649945321214088045306796226158530057291333613490288971180540745008784417063934951669288183736348957871910788956950033222243522754234389778270865756199388957396581529289177915371874654317989471646773947546520879404031331715033129628245211332546439051905304888877164598084245896153803994184234437236851188888260768236985979294791856472536214627678391480274286184301626924494428702281541619332962361139805715737721924273285670245323161752780767625170514417460901286666879979645774147110587524638330380494677558794504340166670037635149530729769380813913222774334922306522578460909886992047826108915219134731592067798406060048885076821846890565741490998971708348314520225834419987930387494051665016515770132519942214480198064394980350252079037300315801141665321765151143730388358057477162551589866248080315332412791616359571034787867427595101818050804451173485968107730469305472301469872186441887989166990438792780901552713907637116436667707321693630024162171897615259465277038393369057652857015834676681395135734274356347647552453927110407151816592651753789222227759052375609510974762533202238883006758347897119797792261156223723854666781310932453967493118187307081551940222513034783354673059078483811723718240683033150526967841924121139150509642422302809140652463278527542438068567671363861571193048482256282221453447459637677600952416775253860639661198974927982564664847208593084528840634793348841395369823415702878910092735222064790193009740592310966481097711527122107893249867603769709064887841389579591216585793232869926172532422933170979197982768584819884382707743678290200357735723575996304622912987797559170930866429472043540388749907019053737483430068734097719392389685292249941327340404825773261846848353939829279236461607307288585114699114813858999438067481445279384870757639667040625102785444391233469970554511839814545273714112795758689581541780932511495101789941967199480139108767035098285412135713492704129912821159323274714248782078311620464737467077397077123807689157753628198454160279218755852556461929934258972852693188180161804403568292460683051977210134292961002081288010590670583335446591632358963831693689478264131479613177723842219055354454042047586271887776112642059106395726482986067652590335269250980915905769355033796334962783606454109914994425983921714210796725128816790736245163442462913601044074048542231291499764892325290619134765200313617942859141437351169277833198355371665290335684083268429176845220213479634891378520376184243127709885227519903032793081399492843511346185579284902288003305547741832666512939806019756862578420576516259856464865365651258188976866310436267367152461876815916387732866968915411893742489093803459273356795090005403033988258096045742362744965421195024828829470919180817073147106696869572460332188200181127700137074461286931920592523025883325198284788386040665664333824476007119253262209537080733296164211482584094880765548591493807089201264112926932700953724953914652331142399978392072886573240641103083671932950299357754615779694852890357474482236400255442686469911446198694085531309656933746705882582459651417847819947063944519301014134435427468106836202665696650681280806333921670727549318407469203305296333665848847661633369808081435163318727420882036640910911859404677618370290118769279458063709482975992661718018137925834992328341622731380156755180865931790506874848219955380374236266393740181666386409770160712636853299697130683970196578930944964083255633721803813434000813203001615681828087039786607462194307395592587646523327550620805618839702522267072598653169234047453191845537996379127734123690358835336728598056040154249671885195647745698883735845103381954798559971090383246771613047870030313990348588117593058969944039907388988416741925741355662200699219599732498481406020423575750979048794390402903096863778632924972935819966978246088807771588410230770777020592578635452205193446886538199597803730793703317932117629145979379321850796114246196956026118081766890137794635932333382127744719312192936310700743532814322195878764571246452053306390714306779114361992487832587221782444133458904263577255946043802806439095002045797469698106370298686216171851713866215479046228198334618241336697287924733242551813624645493925790739168478076647197447425484488796971579645463836911878269717382662690879114049357574489286125674648403077402430031523856423011815969568298226119336314791453847970251416569622647333084276535065356204341850296223946368727096722632431616433944003111842930519637274596678490631212434500538987319622386031416854053100681513555835529740508709185070387871645262552523820115540992575461112744305334342729412889257643352679370621724212058570313038564303939897227932087835988489771617162977660469574764274604590975294761495559335393920146024439985115904359857845088125748489575372566710146165560585872198241527232605568286682787266600996084532869121651695188366705582697599069014748556783241458202791313094669439492541724314479291698003145216148061785701299176915038826187171457067031296384939231683090553484937554103122795307449816153112255431943664066817508736171378185433687383193519044012158589484220539355545673859011027572150554151696374623050499379877239305538984758342332528229596657825697969978485435546013257510940260321288447606012823874674125429770178447532270543203731461623082978047381600002857995244202751255238339550647637446075821144894884322289984804000733316349984409006795179839399735519451539622563842673566148653940877993238431423941754797416131756116003637512967949667863640443616800765790726663108816868546312216363637185239651299876031676407877854015722495874861548936536089882303943260108547598789873945618361992937995347040025250424118645288665545538842620563251279438469959590694611669996595365671157136483801680585810179991237435041396789079512611412926815058952133378683422895442837398115528965051737971560651817378353387388445265750248201376428075989587008680835991683673362061792719539958722344966828822019232108685206847655155270514597835890223780205765965330759055004673254729786847813780535929882771631569487663901765406918825713091376784248301940128018445035274969996208146342022176182422026584158284018806077849276828705589223496931033777282243718399163746716017526891516585119875885304630750388466507444192167806395625333320674488102030672024621625558657804278024537753600672236296553190698693799202858115325538328393166819231793588711733055725133629182242254022972519697659161034346019707901528878819854544492947300318703843821781294878843592779140962660244614640841488884702033209375946233024200398415911927792046963909464051593644865529328519380451287552053878544457281496808074341227364691094554659603448431899248137098890794503043253189767400499678284753594904799095018994519795260716513688435170021557677762666443407662293050109301857594674060800895130493734920715679298830195936576676572846099233129794131582457190946183050574819589908342793428983387783412092079863660570246172344609274138781779839948472934776251529084572905961309934694923082175378638988043981108512936196178476558318321678342013292157998707537288552610779604068562552489687560368366095599632095422106585101125537253966431821757719512483101219069073112007515170229777358356147986112914201485471624852079463655343609470847744181698058715564992277602266937822621648505408166860637661269646383137057956315868010791664877731549147286069142713001811692156602261541110082322779346445768505382722778373452425505721437360715033252930694191383151982300584982051013305941037110508523801667147832444716367083098358126974585190540552748721488795521692164279754820847997223713161407623639242236299256076641376217464642314543688016390519809209671319718252294301206907437355931216283676464299821355817494327724182877019513002292741122092812746585107443146087667431986010394078727918107686909949142995390533701433762586429754468779047597130310172754528393474638715164841398050978877381350106116829594607627446312449530090654525332534826689433763577880777495514092807199414368713542129000199811834753289501333882219627316552407344412471288008439434669725847127116527615945314341087205414910414940910337108253411737247184564398447541853551593288767005020856666507282046357773115188405755463673490836226117958638708649230649227220673165758395622289119384991724108499552203095533827155514188636465836400944373641778217811587189384003146986271801273700329588433025454248034329120290064312205822075629835588360983636375167758934715854824996586967084021099734986271604775438232633989392734639602861106080246858184746659867686297103484657335207546361526204296993312622476077310490500138510008086396087837295505412720627762641570154465987261819341825246381386278836271229950908580025821142037737783305561336555408060331524800592547716708525828403879499263249808603154735615688910012457435771324266108630870728230948852354730286508601108610430524349534721734573037045367744404433211164577530329556335614166753675285481348340357470355274559042276475530378913427312700440056850600594396936127948478859864795126955473427217823326613859498517356752889303691140126900494934404938825028468627184069179899015309505717304945649056744475085470890389997708113697044666978839179947622431932169557083303153657553429883447922836366572457612258213093001423353435267615174426625213300292983982864856429338960377187865872454294978499102244598102202656517440945181980861189187248728387494264740321461222691857060888104524054449367224199230949642024305599716051290261468800866424969899796563562482480195650275804490337617197595409405335639398810675394218216117767874745255516256802665423170797387106427606708124036176209048213684094877429080622495347573572794187685701098890944739302121521380443583558910033123305038496951197360252312067075776212360791751160441242737198667251788109666970243563469995020444875464081417874489906426999920942715561658178559970692903967638468076472082505103969769630900195793096389964248625305511106592541341157177821968551015706734859354681864129646720961625654634622604806444191836253209212051227638357449652012405337710945088829736459159177149937722015530311166847460203515179800221328882084842089753365362875616913833243476511644614702163419896113041570825571529869259120710307226706192984315950415555983735133483776088395579374287147024498764729177273136084597412832687717707007532894337096123586250077764517090751722641096391044489180502674415663859706109468862384060563209315256635338467430765095761646624761117890582946805345911427723012256303387433155656417925891761519873125634973651847073402151435761955135488638236040274391109993058930529377366481001037699548532526229932192333622722245627940396111191133535323581982208585180810785749493605791355135653269747144047096370035033073699458218047238002869769948630058041920559288996133600746424193580540455296946591188660666378422914844579091516604651789846276390434325083896225505802719114964714364730924264948709965407448737375281120723365467466378255581651193553132620157344747763120796471805805704757986194757120678255183591404249169150568321114911988278067619248091726359052182243349489307379576200666780290344872248468615218029233194907225747233093866591445438854748407360615745739826789917943518131344523294877278787549481664853151473842130269235154708700163998288520473095354290649105209283517085028126363123902136177339061133120229390110563553258832514809658180485623359817412323126796985757828464673530135506597684395105245006777239676977482702684430441109456541624859366095422517665265787772673882891856170624304591322167585305666126694507539118847709739748865773869288342309610432376493179316539228905051535049881285015771059883463416213815726404323382015352015040311755532325718334149557870225246433816964456282417690109474988176762484795402454732470080780523542701294110213426712818959964891477904472479807240826921906589268444081911435820183505530423512209341495085831625113471555317008600635740414664686671337665329020349300498689545842218726841217695224145170345894709738558962470802004920649899352632840518308458625933953867478295211629365133404462398877439619246639614216888150386919624580443409529801972964324218646691608153649973848561530923421152449446059846899238898635226336863063626521688157805723014853117688900025111642978755174902942537018069323367141824562645771679414874875409921401699248294244911565362355196226740626226322969499728990289414598739355827109485334700881198106779738972816703528984734854938299286096344607262247762001134476908871942506030142799780175898281702382514807130939907117051127385134046911223778155611756577095657344643381422115714174604707519630935220566331382953839589359128840946744610229622119063315676937450257346325543912639095399080208441213252837235335759764655095427352969539245885620230938447213240667973096590886966027944986705604941731080742652562831517736012779880697342070093954082474762237727830435807606455426735278703130776658351655335987500673530933702536574580947207432768823115785201215145684468709964367671215052890508464236877725586560555817050978436993768523582123496776999250711748667356458015729875550075869983243896906778781374776362274672105513810173506106200094836874261183709743464258558318288518316314712797201195394458373687391744911501074115871633387362837410676962795410460153835326375942002347700260890316037776875061519292773352028045345399270324763272384199237759039405287078884921287308540453298099064806269659876172839104620033910952952999570072732167749064557021312079173737869360964150041198916590840912314619297087328930127254406684675883930651675537322462998720940952795533481265126671968906347866459241092840238071096789052339621958712863057915044565939569299015327540811555352615849591634337852684386411657562793188381270139855772935438111731683367574230821619352680370971628714806018161211944870476294981980923828038643739642921923621290467229814608991172623253938564117848684549501210945333984811970742280515072869821239705670919088430476931122862775303129497963266548518222516415812388091968371851686135207897213286259355867651262156108246300241297754103528784080767865520977378050026310143478542294681079501170607851554602832518847316237002208381958445610554353489750538810728221185127157547042899895972972131052872171924062620971636902359176979319922027323730758189427726091598052691530017638767758372500028362369677235631350577429322369426810931271891232492947034217024772027828888048296772117390729977362965781819857604882007685634698301170815812005452743733411738174790601698663465432689428426493293280978210375824661293546418564420475586731431361242035677522563357688003123351156916667701493644758020195100830466952210263513692437763832102340566879589807718880833029369630862664913789737089924529903593426652248554911757852518201917164493855670991912439518964341824391255180744367744203854540224866606983416365436362715578154370403090451840837864364505761011338790549605140557666648754017580810974761238305379361136036058828463071598723689073088481123767293707168341110799708770193608183746616044571518474581901823134447674641811142531142029924020021541635373876695422148564422636171007902808133085953903273796856186350986693048553670215416980033902364131004196372643225817184421919317118929806582754033092891273952832567178167409005912267451034417154722596968106218772280693779357389283861755629755243471104697482860652867140514091303071460081962067378184819213661244450971537493009780544276067969093789805034160449272944846578363373457396406635097357590676060610604575276808412738495400266166198758461255449749256306584946022815797084730632295791326373595995067768272157291746778991453328197295522054070503481951923248697510296474075200019036249324896936420909721552432265669972634214995304444671484827392258463201890274741409260514215289008180621703566443735816679986833053586892882383817988383638414146913287183075907639279140817198137713665741696132601289240853651754301179701629702840820982022331075817665539381607343719794487148201584824854533930546136189699896541986284805365064152889575513886394825029872025146571354282203765845223053941715033132391970174072852758023956936989996014504248266491365891959688985599168183479412450962774375379721155419297453280151373281118810661857487903612343950873123971294142570005486648538192530236895894656652198694038947083056991599276861867216377643964113521851307382678472722273080797270461978246972755600380087136772508359140329086591259766898331680618709393332003390195292506457582321769230489318325042144909436769604990663997073185154150659175719917004185673909408638325558251377964392013569384117232390784971751398371139136110717435274951138056679608494898053328689170839669321639525824119850116058739249518032026425960183089460393060404359964349268548981694529310954775852242461396014317667639828394265243889174526635159033277037307975191270018528990000730729257180074640881051192362750972723413249241123291157561591952582951657575355927614928155388121974152931821307771089516569846310231451349606383415552751451395336272808609003139931679549622368849876974856985565634182382345866371700404792545623865104679472783370548395049749551883133117995936042455884832615160901456490665279047226904686403486133854946369043106336056774247473509691632517183426085277017916966004615386994815628832579974496479363961166519280324616698919925734192670186461127220130820183989919226110058352146507786803256526648780678163753594430890560693940020651004275035214617047859583598395707809228472208166621714112698203377669949522757859014019293025662462058059752970953322106600323297419014642685716214338528201960867656954065266033441708970494165575227998621708280561618624959958827394727429079511569319592880609853921751105544291736110693065427882317875749138290584530873608672103858044554490823982574134141569103566562286984679453217338800675219942858085911553952812476269764489310754192263443765561495959362275985705433836803387594009175044198305428138544520317913527295513742930882027117454791934668989081808354457012026619732766282546254500371331420653616136601429088650762236003328824247623700754782808246313277841067230222762884910410959593865632771804274747294673407012946068875296128754774153161494011581300265537113445992134022040452789685172540030928220422174600776506256839810737825378992672825224709223286372693426230376794359825425978357999819181729190785980263237933781573728352972787892126338198159306941755805933005066804682151606298350156052507264261713503168668332223519618332546803263463478778750938191738804296104997219590192552306717699195759704458280264485403654928758958238448517606803060415275425259985780056123857269044458332618164107650800949596435567795995689602806218023103407348228196724113977293011565712536993822157086775224186416509696697388464229676976870930052885104176808873724696449435493458471956048790183669861226781431115355481927623589526905612431818798097463354714003123308475212294313020709209411145505535088266467340972738511814925763355878405734678707210582331588446249145430563603466792810971019192327020505227091855807736775525715936812646792249832636362014480331499418625576238758269161295183972100510237552685890830196485016706828361105369974403637267857855490756039567769903777980028157301236237691072374083921493531090234786788573085264881413230757191993826790603280764313040591231776150727801671915920550540865166658494084457325265682278135425677134283947853403991487315224703490198755779917125094853347648618868006383592488214292908401783757279529196475615621311626660001541139316830587028234332688423341267663860234057632761228082518035421688953911155246719441634554701690093210390994071806015872842194562490593887711955327156573367632763917985213206659695914464718055294902669404976906455488976117735435438872994043022799503235845074170770445360968253889352168818130517544631835124363800371345267380925988145556190265193168074098899285838505137069954684298256838389894770610161259346799521219298010920740984100670965945090833277540865337981760049733127232656701194772472644405795260796337412788390247182200834471149074707908482271030447028694996787420766799375071549569353946769864044889957376070082094748218896267365204643876167409665361809902527173802255247345472444897957182597768650580965487015997069645451583554793922034850761807958003491012131013140527153692728114986500156231559727542314254656969710527804923316498942396721320568121118561256226113010318926173235158769954118274654511841402329798367123338162696327110593676550947700930512669480895509495244130384602142800595893284173105994555778710161023813185482063541549768333128842812867994911770248527529575371604610686395506904311437896132753876233181265156849597629741540634455125488258290315362325404159320134162931478377375928525625203567389312960084425429857922213317999789560067941644148080832793590913169976012033196740399367688993150449030205761121928962587129483441235785515276607829001706654879790537024392614016878878260719071446300493727747971508416140773623550631295575365034892509659006145204461028201645206085029831713514027967217765889674794310037749679788486566369835510129178646458361466657084496521669182467162591500399671097912540601199418650359016925090453224813220648904873025880509004200479531411810355919188738896422732311531510946018105728829451742908738219122371181349733497162799546620081820941198891890102231399775458996764357292813499510745562271413239453148427252426015188633885271670538966624659940079710916714932010654075000766382171752254149741863842727061784706958814007788911819654318074780225904728185857121474261858022266378470745433972434979428288104079494970115813162676628787003577650911304398333598789443419443608743041654626602431333970970331552288540009745437474296336967327390765948318387273592413081343573128125062057458048099570229092936863979235586687927047463943249118606777399845295603610513552372885180217463450213469777923833125897524347998149384444324980651797017162893276515135091247026724781169705936678050695295271406001234751911044079996697669380694372608441021734264206631924731635700086402613754241191553301771931303401895349408099752768948945219663703760225870700969321110810883434667050852551015279959869853066778355705957548806090714090391917342688665581267722282019944324417469110915715472594066395402383170449407445820871070258368155283556006260104091704371411474999870524782440445467680985590280252958145789473421968010688021805544925049510324682044264011433377433121980737897894378040953483907187888109912551093488710589570882740549333428839890963556894907327749327828382416005579618453707292963173320907812724226021719362751388841194541394686385480466289814813719696534772252586223736050265786554600542903902765936262560060847900468728654138720519839529485818541516105137012308065361588776267951306579461584993700768940370009539017858261694660259746360863554984544254511054553695479458196754276969780184165688081839793064463015852708565677705619041615413733300517196992804800020933985444437239687239741350292470044691282621192718588492695896049539142747635827528478014395221509499217173528839404236689755875778645840950428993513865045021517701395882736587949829186044295232451146214534667749557515547713841344772428249864014024670161712355803430641748304836206918508528892427971062232378160845929909047675277506130601876080900162064672097108738350316827770191127470494985529724129724435459414459707423122705456145543545623792616511565780554370267865139652828840306912403868591910181730843727870694636869300167002092448563574083329443131383689440177599693468112865604353664655765551095216410735259256658981471348246334026968359040059991223645923403547020476507675332785053024495317790413218728830020410722621087234243160534356181576662800135635063703959097278045280479316404887804539368183224859648695335448824659363398849440513127026317679602759050400384093751807639697673276654488761949264478497461063454684995593502915092547511126093623376316051268522830917979776806368570645024444473437514969270232772760244064258978694544028348120452720861757147305767715391904316156401523483982529560883775886473705936318337536179016366925874541432065700637238372181678145684468175952228730575989965752078947431064828500836530246290755704836779300678397914364794385571266099672411125728355287343482170795817219253929379972097256456376127032581446240789208138967073985893781055206179211296585715552585310088064391970776553014436174032162317045911495489366094137285848068884172251347653988447675986509486657404795722933769683287463438798322199235507884813215628315307238631814112786026857569739886977409725207009953542338315680273705535566235070483603076179405984279707446321135882177768825552512429647357672345532815343903025911540696672086678387232984886225368099749299166045151438390058092390541038135915028880126090340018372501946444985326743133152571693348309847350565048598805787399259744134693340935940375237311876071392973385271995141848297225857203990860682198677329549772988547011129515814739671187015032656402118306296312028654281584477647711734789104942030115306658775917176487187901532916482902751218117218127748524921294394155581044625678718117888654328708241322389495999924413209046916132990034179103846326226477510711701237174125952587350276434232367998450090498527819405597494928259562098272126880795524708918566013033031140915734924060326676038655575817755508765893245437402387069446042423455132045978135374486111055962493745186762991652217513141454575618539554728190423714043885955807583390759781740925773353908888867570467929882627427499464003872025811333525541916241746642868377826320023027650228121996012419463092640327863803863204738267175559901552244952898403468737124508125184765918290964200520599901832677368155875591242985767126484833237876292365538471162992413171181054768093076319268038001563381553628029880525511888045112938389519352643521959648525656273052775561554095792701038788046578254349857061038790710616063150148055239592607817096077860151865426597243474132904821912111762097312862069895139816953233843996447079654300525185223213673794410634529482621844575906104594694553382794865117738280535388440772025299956809425377180155924807986183709027149800628006469903017728213587603688198693931035439938086346274666640848151601822752933890244354261439530228150327717611765124207856544529071626792014638915310289537569271309319021314099356638354107295356903267156339629155597519969676963994966960073563501634169475431646234849709610197898112149069987926617751975360628652108946047563315302358478137398505987442023320321758927804416127527499797756984438029114022492797827171444573943276390062348380327488200720810722277073732821287057425834307238061283200824015749930158748090207705388230864915671990910815516936779566192875803042743996833619329950341598195358302276872208673010503428845070084752965813011102991534620309312014281862880972824112557007831080947406139230667682011049758135520955211821783676060766751362762214353138605294239405455123664824048031590160614658928553789907026460142583452753590965460940069066716128077237248571758523446685365430717156189603607487510382760766965860880166851492372680936472402289871199646691775014199747394074213371695986781832851541945626848352096123531978284834108052558201901555084539749651358867767679685464234657969234296816583532881844553006582965833190533683251498391029131676094156329016888941556474634224248183381393133720138903411616663781975976857817297819057515642549715721792813336699999227084485667392007947120917170789827246720186987006328456839566204200559770886124055193103592404320871304975556699544324674855413184094711607706270488581944342966593685497682844296384784949111158746975044988474549282579522405598610575562556420420776829724211987753264510953061310155611155389688473020354513461008685146702961349692189634761337691316840518048827153493432862011381134563251183109258930057346441298370188113505692757487066663791399966761432943898986131116835975669030721107445362643719252182495141472956732694221202026724157370872851860706765700279532325104783549511282397006781293761676468608324019831746944816980857629228980014524695567893812056026935111171137835619959305233716218792582227359925709269381748260898089017421624972243245692681474631646439239338674875698998677496296162283870102630965020981800532661024530444499636982504622068403314445731240895512152520532623216777947072298851378150868143666226180541431153866676762457586939093827813272540581296427347553114718287823082692293293133848410292569214587148688230485069880023092071821881715190524574408474499100902527503473671961188544198700244556758585319041860183555103947492737882007537170269435249390451593793733042959950457071439609588338674076877485107061148130709921021889625128036058905641563973947746847725489038593543844686098563271551333812745660855326884327794014199174104206244571513828207281965324446639321076483909868662241864544035286714687578059995013157766257600799573525264006292178343850744349312209831633200908743544321271426534939862637845707326592902328670825454007818270518233810195065229961238921467983453875932061129531527576280132046604689327256650187734441044510184615363787466391111396817049674990143552075314672265465794523748724745492790746015882051333837895292607180723878859396902137172674302917775488394265012687057098650474853896514342411200923200748234324682705854492483526671620284840012099013349168174263675812579505027489447759686291901551524535305266280455964541051658428682232033949686517539621340074376347370641683215931336161908997641474294316084267818747966379826735299579552922127533460547094380556132109241034097431200630910280875984442939658769563390256677466589990091873419452743395218545849174726773556781502684373367513099678978466591399048337948793787251209403452089697041811126374430826723519918492956936407639019439306499506381171590874707059693482263092251975977433312985944957295887746097952594038912862984794605298752008277046142018449635706604274683759628247104847974481750395855901568385931415238139825176227820732603988670725846236346438622886210745629404721009684370892130675805083854914320810405444553587055564820437459334784655237940301032282945974051226377489449077410612285058987970279733401002878451624977553264239392081885654693572225739570010083577948281926492496188016532040790704441085874666537887087480468446406157804400107786667814315010443038380190351631919010264016595706108215000170022882063411499042661761121499472974810496824478144432324247861213346363028952362453487224994986685182580074195348618639903556533105482413781601635167190659495693268723542068514773907974247079456045954621285101646093918490038231342583675469002901484326132479041665192156134999038116343207732535689568307770644939374492034358760101653368214846900687416673834388987752331679484207021294047644789057450762243642993437173015929643924942560189051541319075395458653425501518794208311798757278095440741284946244677125489461257409831265604856055029813959915297254183333185581157125301340508544976350869385370163169247028865869545133851564183348783149512397293990151531434416603134217374722310766686689599777916285867491526050904533352100276989738112839559354309701280933501254192789856084471588185468519105925714278677780860833313579697469692184110315285198392362543632115910558899803214249060690142869909309019536452539089868035035997234704220491964609612467574334556225083074604893898229785740173559514027022666233601238698065472871752027169537619963926475428771538516202608105925845347364079946836588960970981951135883836964788670413756366380162497010452988237093373342705040752061927175485754463887684137452759267254750043384219699990909633780687090887466549940667296923537970334883388910247643588277261835882383465439724549950651532389019811902847823633717158107775186853528887962210193980463264933735952576927834501500358499707663443878015693532104500574806254520180153277973163558660188357874103048391972610599108876484187396029311721800548239057454772262941440436872702466951307988014843754808388738480649594467064170681161185464817972511083091056977971800661276943368794822296444888993399544466842229889488824848338172408405569225381071032896080571616679906601205910403747432011579767847168507890124359849482612337016575827047570664918004920492658199902735255145538889843390430079442344295282833820243663546750396446378646899787199459071764123306329436194378990617367983497513787551225830865588093467861920347076382090286085264957597216076264483632273317868900698923629693189041749972728362544233226275711730267135277600632545955108804742829315767510667831525690701635549159216277519019418030655508655496267277782916088608720231284824853759715930963105069167487559618583604622185909148914175377464265612314908579537250638588462797586148065240358169302424824358305197563238073611001252665625111157661581445245177327024479619866082759631964618015066249848685184504739898982270257094001194824280738887389705889311447740688979470618834275915469137558218941493453427306523861458763728627746046554320953857397245936202047054321418873332791403362098541871793824788923917321627777105882319444687985618109357288900059338828013552018998432505379020566761445493758240903148787707802906441383549942064062860125641837387074084203744145505116548864722358702873367109289929152676311841788991973005060195462919442364446554254669227248237941696530220180006288649306494776134435851647303361704495056881620256051442120205041535473146557934928541997969853249101565584676966964388568508686214899683647123857161751888315161621128058717164606026135549420560743644109546565699544165125965817708773675162196282991028573935460150299546561383257839283486043651315314648739414207719681455988457891290203707733398027387665096981973098862210715598230565478501071005696952446141589707208264718166134670479048200889927454599243402303576073508946369743302420265562200166402103050338624854358631981913326781835131520381939391600082992312251405203633009653530946457807889995303955708601436979306338475218227322358510464154526761316376202179941997727862300128517264364816610923885474966707282500756790800125101465928800569809966091510877094676540231555525731021757088824172455966590095712638962235263254226396851490497048303796976351565854379064675271159310447837388101890091272666720643972873439136612688323709635158225976896120965787717289397772040721124954314933129289630020004609240575584472877895898040582249264986025875117536953888746034098197793774857307739755355544864460464890217588700450827743856271592341481555725517743309098095933649870138557983447007997705955557714019520979833571658545601400556438418565825302001579641622890004872816615345231663273392605625949461044954740330088392030154907860829361624603527449024027925326304253983008335848670086137057728454178201598124991520646507158276241004957714088459937587475133636608018184288523796956749021700730088585570497620225463844176866889778926915709528864954531677968471051850866640623570272520346785921063020543994602908695605215591087824801103826514453124518464399190906648748169298452303256718002939992425791935351865988575193855639769601955749326822196215916026458524737864309773280630194613370498033896682843802090396944246601002040120777059474534979281941655506933075847584638055569543546402644792129831210969932536271118908655377940063377102154177749736176387184669421890761701326222533566107184997082513615310343607198169498839912225705764321129861039855820736735843005564061080498784281419811378991144620827713605917121674165166467286775821255929970880134380538551877452203530679998188598179029524321476413926499800410486763442509356578053298128452397688792782396521692126855889535685701777389669597231900347552304735240308365701345625002470358694125918489905802181354025123474091237042035934895843955532469694473271681104559493967522592847539667552774640457022481764955062105552812532743356329064365161478467158683027561156771822030752062769874420221483199817687754406869318409432590666219349066407021478239239784842322763056496368042853730713422019953187031607831036308210439722664144909709133860516502732952628553178684174883348828932674421988582166201213671232182866249047574003164009159272595800775448973881834527036973707411729182406881287320673394553405717579850117713575471916620162382333207804445228067821319900045726992783499668192466382778217667231725105833149290202899611877390728767227081415664816502420806172480811381084540283049006917820768725979721939709708699077090790438954793320621168132459170761808911568085214936307274628001018626943668163927590224650039860110798245405185011452007928096449780469086007599273680065324062076217307808087434900703741283707546599046931774123267506449897863487134661571745345922369593467276843941484529333706665572213797359294771594021040403413291881616337269978575370771731463186721111917662249385882860826197064796468282510490639332425821316298598342010511025206478358142189563069295040971110497044880740230274729035099521940857121613990833214292225197145880801989093732089944451144525912097881765930863552413714043666613679053069892318792492344516357007560417435682810243100655611466390369583922245207199718680795472600651162820350137996962965733012303974889069535561368360227431886507737533431663394428590492794446285028956730366506570970679506876841736531095926739928867254511990050275435528530488648435294158770490599929236674721871168262715293835917240838952654863065392770470784895717546157125096381448793289717674053908674097717426042704217158516281500832586020258024677181190415661472652209815896425906238551585783422287874024557585478880498707371072729180021764704018681757132424048499217788640341291750348944529575997082703590211475761345099316274153544142983552199205942808288943658984585851014725169570562335646402360178892954335459684798766286230971869797911356431925319867136633733796046455909719567123693680824022317146063807404861322629623465035638993279247177739672308903041699099308589032766397766852476325790185626923127785380934575122649723905823555020494553654615334092125638275724231911550890728102923626044192570826948254809158334637781706659431767322778702849379378897052323890660528269894187213124866877489088754087148294010371477204877545127797130843230473954628212059547047458726699783727692340312926371792826791512310377673102938056387706339365619051580471814537186614450758229377901637456798362061820782793994331847180931804333281441639728281853498025661514515824364633394840534351197414041469014793392632887657465055025537670010140345339520904549976980910969285382443533638448809708077912146788490931926162770230118751482890709624549623877915938299734200200259614077371675152599455159405054663240738692826035225441473635860719102508175036775907563395653040529970002558410081383990123826377748603189599044001101882728883940008610760872967089662530617590572402864476837302033244987919967492566220451723767533188092440717674875200549575721484156097117540507518570204037357846243739227124921797606679710430045847521056358055192401137869037129245909291110423761814423375359513525683328381209149620620337962035309153402805737393224182133224818430146517870412201864688775009709585368398048251163576133923482677560607439119202751343363822988015867244773890150568929811278750845301916275464215688033318272345964436531391878577469133764528369056637288749023003105685772970306118055999866127057228038917612175760599250686121884282162232857258388695830294341851674938967089559700467488270648718184893246117683647005180284211954772688300012081839358555974518253388870928478188121072360805952432054250193027126444604368670452430163498625528126689748392364962331429680386292379667030893774360588953833010252772475949834073418233145989678995920031957729383887989934660295440258181198975791275900805476523808436993705530957548607621308556409986020966618382211913310067637027959877335847526679154451593432921006584074313321290055522683264707894273081527814822337069868432586889766289375415140020757226198002715716761766133580449101225590946267833520802288567704071108490881473821851411554756244661781897399688506254347616528574705930840978888887588151790567412892120494781856507470388345875406958108134669672758588068325097092856200803107691010733254120135561513138193202657090772859978299398749952706782099513060721698294799220099912681833494190768095551124388103701537352634417858172962030456430815446885974243106065991657853173481158874120914053615879601734515598533651128223744774293666100130332769479691680911009903356505482905421050112368191483606725074880985207013003481293626233025282741585359453208255546126259975060128766437359925811717562333322912495717960545871459403519332531160838398124935426972798408104819327107263757245656562944893215071740170443257327790493045007080210772260991685107323923931932310166010975356332806434733006459293196982068066262350942857427646816872208434629149219495342899580788148927598016392644415756353038846484601179389741962182428264807822137882076176704268589200735305166520424610391948274779520132512684217386882745897655827397402430176170416974516470819598401476046626770540709154387490057414759285268063822308441516014100186949720297406807829596219158387674921758925647011125463342219398320911096227372978372024512011591679294444118678716860522187417381381768276075320743490142266549937136218187055513130783949536032639908554331838645680088974083089094573621863476648732064886083946416159305780191581648106360755594004395582537890288249687031779801810399395596188781071710176021328476255998111678201148127785518257430291627499046271386762374776319658250906804325685056369524033035331952551481669491037797344651726188831882043957236131970900087779383674170578170204779586050492274789539758766417784788301208977953810968600234784235645527448787784703692027297786661485328335327934360970734032546835820245499113626982798072357737607691287862895615373199131811454324557665103451916148171882878279401033533226134681111554115595415155056691225190419994868178371312212407217759584071150894930748539099350757756825434362864435121681575870895140367467130385316771924044247001322086957470441515322091096881324197612318865687898638281265272991520516620086821247111556965526516732357526644858797133094732888275845467741158917594078569482165237763488782491865914102510482607527447872702277413190993997847300371674008678210055166801460347994804258594797728475404693854880638559008715195877397331977273921292134006360332390277329422757751211806413910017429021230751983473852994971737113323102798964130825681530904090154235744587321434622936565371855502397547724829969890883546898052833876910724216593263517982467954221841746983654246120581178440824460040483380522331953764236337207354873642271692750041182187659480309372649495959267178820313500734589002336948383219883049185821796690013762316923416838112495120281402167697837517406032822140000926859445224891073562831291570548605779113911668160021359571828813971108634639792528565508554046963071586740456913776026268161097889414787377020907588787863892368527106981628300595102392225265991389884625716916410735475774051352786610130092796456688839373870416715307972385750594258382757776350819898144316728660483315724551727419501486649333999505743683911957502059879678636389529424653774565199489760784077978521853466655950742881970878650306601709162699300712253910043734789032200021929503325722312014715198141568873985648875754686358625051060659513046341691066845445981461794801142123591619980373906452119419640271959926556523291111341790577817881452778229444614318436672611841405189433846322574127039514980602802848094400996768778606937243465563384818393673040730316356706435976355288302145172160370510409395797659740881824067094123936910241506615982287313116159620187358410402162696267634751910637833391785354196007576988163388673624353215138118468584069614287539442439575590636532894354617799366231526511629908934451130534496118592173044823468505584231723278393477631848409143020129836581129792705982799536774450270951232895356868980772321937136230981838758190614213510980485891098873983956589919718689598270022131228179555011443885464007410997669157177537458241704236268849270021888567359530029253613037673130054204259441728858377544381452767112314790015231686905584770031228998958971451095901253129982036895373429858453751303947996954964715897381220887975174482649596417661734283602564174797131126959862669178169605754550813609384611047462460772757723558436327911640762644535539081226636762777900124342096711076624573974493891546385607438117202861399579455994325239895098702931189328506277813931713032096596174490361988674356541043675950404206776317180733033804473057585270619127586048465016167903952585222407166221679873857661516293221574480092543881639140491510951742110290873247765363615615557122976853639269860884625988045514749449594361643631324634774747347934529051278003092987224618592524101300931430630812365835379425630383730655886320978130313342378418913262294628240997711317112213743420086977523467205722055294962816179980922085373819396384253478345972644392770297435465919192141564007551096132709584573284393614166770861709075400037383417743961474793839349451497928198874333250233710398540930171854767530494502035174583540833833816580327572621130193543292358838177143801501966765129888105711035647974945844822087774724349212048126661463982919405763571904989729164650957750627724341786941881953726893194890241639461178182860966638988592049500097217453646473242969693755750104257211313318004704119632811306780536165855271142976002713783237135927426155485708408540123109411108021805602144736996469091655836705257324543285620450525007074611449808529388149919103946697706047709878377410822658999919081988338842448166787970484152762532516793022755979141780838401249764752042047908721472685980449864716055950993852020768914490111401910867417383990272782966352992232884489013919018861968777602570133335933710455230083221168040160689659265529248007672664731449571906687870058135973474784830586929365096320893204584919784678424225090069404351053854501719166271243277760232106203241233317852258589852820291737342062105210531643405645720818821567882921762090084865532414469526442458894355418316137432357288816519309470656581544993236345558540495810164935595370469671905224555397602585153147440347029438049087481970326530071717333808388486434513780043105448017573176811153120894017013256937843435804411261344583173064744256117423923199208921866391385136824863954052757229358567594403301185228414986803510601675714213846963952601307716071277449520879057894677557583223032768235813552080427629710485766429841312701691071003347590772795193087228181279691403737239484185980772754590076545517508768335645477142693686184439338829037815315431490642454400004769333384857464651599667626344892230274885496318782348657957743582951034994942430781983308752794451236245209201766437094602357284189864232204222938831900468980820051060014969360002475383620649626047507195485663642004864997916836848211686329448026796933494461983220843703580316733969595989894718364673287809922191996659804810079978940146585438972342213788768356652415368810054095593661976406252486687662609706420346655131100072962884122239949390078924534384577806582547166307791048465803398550567174290566068355712323868496107936526396822236708249447681921174790871812965607438737184922854441628236325539134191761237505777934344491020023294891261943753174460636647737598535755589491447100186608248276434407104163744814889421019325227124421229186805412505917862497523542725522441335612466931562546832040157078785134421178601621662965856517876313047931015234203948967013673496256962114008439793438316173787475284974162719490423351460164687836913225613495424770798429785901806505097971223346059543809405443627925357282878323625833683452516707948148889501253652776187938188778785666722033503042647889869061335878094593730800417124236432546947348603934737001772655955406133259097070229463818940261695481182370871943236689249396108734594666112492230315049094924197160820314217356604782386521842547645434357842506334080852507005104337133899738746326814433886290765967844860035997568804010614739276563525281565620021529337200604842724693241588336124350135737380742675969199858600866449167291545409053464020265097843377368019222575321756287988248188495916539386758900622268314244768731923819674055323758397586107694665890526575427876127517354565118391149179462409567617933170440158599372914098794944025134688333480921311854450176142333655041657232536498605113032785969767750984430246281402540889645303249537917534219646631664284470019017472507069712739853352250633916741292390867423936294435459067984129922065493156895929913666151531191004075911770430551495135055208683680325261013248196117475038752421338327682925783006208541713916936359659695818679070673316079095438684771182225391112574504604038121645397749699670225317914508386162716626345879678115581131884709775065797176573912507546024471881907081552255850047502054819288354185230447437152104633181287113700253102169062944442015513575071121590457441486895943702202064051331509170588576425981476109076319589698614506177294582179778785993675915656371507614902363284436595130716228463191984464981416590847826124122814263116686687660808808548891268777262354166516499050266725579842932096181830294499896177450913425500146330643309385733061383152518576596750713385042301620183845965245324536477612801818646962465773180868477101450837514533462710856499447069744792223947778213306014926102060936776470058965041934071398687030730533062643947034139298148405122230409782533720791848767984828830514528235192003245135557231552063395024241879181405668261475113079001791361352222305731616232715598045779258759733704804811056557933303752983869602178582748040037389436797028954857825473167047141818862725958831480180308863985751629501014783952015905443699267971564003180324137410111900208751139623665258277564199497522637301909397690055151789855208097144377887379757671187154645073459912285127385970750735633862278421369560720763817350302433696212244130804156299791582111540376055726468727601803037627939602858599655125619852548320900348506749964132842293796740161965543725630809527533194629932804648812382172824326623559352098204167381740102033281155897964076076470142864731978786862539661486084942581031201788465219496902719581903409988408774138378412819699019007043510939788965031969913099176041166730424149739869334234885734223837548537447546497780594428651091486390926476800413204770445525665763887745469333497687515344406020495840497016451586361730170446164742624897881662330782109220233818406304932954090577607164563851624287635647826631952862770419489006092559025655692133256363598353568791373396656412583229793793328305004335274704371109872619996148600985968185960291784119616102882247919530767421200273903552573815158331558712880515011784101674580303188238658468900626559686265219024295807697353139391420497631995739688299396929420095035604972492248421318441098741018212408467104924640276267416423969089653195093971551898998680463361296095858476550743445210840764248038393290257906454441340329444347381626523467979402685393591178061488604243704431872840757365014429623066497812359606106519299505201005905741973492169192153877698274819936401409024699326199777039774159702026727460017859398407675169859931341713948387970500672825825964776859090984264448638676937807143967911741808743442754453992279058829288037147247520416888733555015921259855194661759561351487642612660630809914966148160640558689177270092774891927265342462354870462033138685030464777535857678655322444277469164429977717838209509721801336489853352058191375147415232606720724873334188353325928178094645752128297310969062345594760058855900983119089078382980630052610035668075693430718758175204184876582175928533860069038104734622476694605533247524455338915093167742311423236634349099027604467393420891363480131706628161160126878758289181724633064455494372976003941886563953795725734445481840117578922330937078756903809106506023677263677578323561678148755516430849404144560640936528528464641663923097141983053825788453404932432317370314502728838014856343111950105498779980879011955499876434526165270694072262666139461279073083975645675338993258155950584771358515225744453204795809640463487473037038577501298248485003535295939394187568280330857970604290778885133732859011033196219731192547697228564419907909424427575877650467925406172549231078582415396616705871361198322527475401865428668588743291928973626405929352539042243693863001033135823915834071833087635787887580200760387224273948799089869709407959108269618939767348835779301575005208411766366927094059322055256083852863836560375792031270539325353859182664848405358918843895894484469048144658026728143112695971017533224820187253089393475674256380172786094143730894354298753401516472629072594152639669360576496153479973127072918373330217502490876053766419428181481534723067271037911398499010949548616906610836230020693833241871808093561003266285755485396166247184890313703616158028916041139231030786531773611212483451232124716126836272310581026999113801010608400093482655348670264034499057374794283204748503431016340979381109115753865308910978302145125205815696208911195760421356044465496801626630157786560981968791787515392668470363159920980441286219955198666789703390665957749112439477126586090379409867655911150412512004356097156187896525948190684093803559713592094790241135315180885916614020575618857413776519161650301877530755510725969797944626974652999550875396865385582879078780096486638143307953228175594525610423297323765883233193163154467041617592936514249759138135337210445691596889257739905921189524955570123884616536094345461179420622952723980179302842826400770874983306646065028675240563654544328324640215614786864927042113245341467857879430665936004838510486457048051771570443020558571509476741459333369148394866078025158170348978837411163271372077272350814353010002372994535974473957999616330943558031927677989028667740752631869266471275183247731092712203865043737434346889270181122532721112443785323645199082736100304270245193021775537061120252571990752195380288902481220621505624110697489474730074584731482619873149579414405834194551403521700574574340970091546341337412107768099965232833969133033215828920283109358076868483943132001319126932829873093604248599330217091335612838832475906943996577257692523822832955366453548185566918591391250563736865089346888249244271078130488623591064998703463096610114122975229176104310641853667705996448217366565265518002340135045694844244621376274921345426811898441520533152108771112923608972435031907806150522505638418037052998569348882306259953600506924370653751878189239771898693339044704604343284387137255400427752075787350958630623605561459691641220200795039667119750364998910687825385423698684861318634932155159002678432806754034541322272232405370266528824443612256467574880598366778511303602902035000378856261645123702733033384677644072072795954403408136552219598995993330329720547157239224523733425906792810541405452067682602612926570145141275145667012923069735812525870211098268929700490548575384137592860374145483896286109462130235398131519018106879351942340985730235738587972602825089134043018929244507992508180925540103425433067168531706881006329869523377700656382704969455905489107787250665693715845387602630710844129256280347833568132475340924142510157177144110582482936723827744414496965768561961335836555740369015725013687539610828867408335581557695359265682848425339163008804805550204010445844247720163290926595320769089892087652653733163090185961470908000913798872543712959293859544847857128715582062976683971595220104613617186955304080133965818741140830325494701637394396057216780641338715657227140780763984742809388208232620368027297435271488307613783644346075096644031475352674707541863926408233698073787466175449632087388786366431316437588363821265899801065047818917917614421746758499173173760036224829335907648786967487062535317127860921325684408231100686278112145192248175476502332131680551513270597205104995737611627183272255216125088835641284408892667218915015311764083915606305367012888824877675950499780999003123402188463581643123478587509381754915914497329393845152244931765543708747456527290934543170982224294820893438772790899626734262180559569073256371345919621353057058278945847296714340390789159446749614958761504554428611550765605504447750658630802167958192916029100458742359259601986323405727427672387044917272171202342423942825226897985011337451623080670909118190315230691191518406269018776695174541221364117255032429295870202385449217211505845632330816801888465687459862447266374132012645452546636858235349832123626404968084984181181904551416420445992886486057360595752493311339664380463186032141120334928333186229582067369522517395525851446930202140173025044963327560049295677961175049086267723892717068672349133283543586549617402020707984167959423701799043932766647004819188784706813719407817318310831445286486654947148459414505037882812794627725309264903700036330968129217590863080686933475300698168857036280251788285582744500656841176840514011107579729882190659417039928065345642579124354692305056885121160207777180934287830316290936211388367168410535309507115031612381106559863554130479491562866010919506527146899001093816732422458162713280787551569411086991238670417515643065665575412639536360687962838601385492769742286264228203614635386644933935498488147329366209701563675972642316538715650671955346355608435875753011504170909784616765361111202273439532329156383936949590256617266461170933663032203246258678696752382978420143890133606408542340995874659063981701839488654896266864585105532907960508808872520162692709299227317684589504081579397782428670893336959358509019131699182579702580230463819283202755444152367869194938646475604942712408130330640039732020871632874821739556106020846286109867365028421508090441819422536647075631010754244569269523614981704953194232667699770752387198141446333059103803902214056583205422249800522156338977946741235434102927828765056707240863082265417489445252692562448095186849269331279065115185807564843722903406457405272987978953626883916767195961535170616667949355065465049552045626820660979925255889653012690586863249553490594532342944753779856027811333958222714650694859054840267127373146548283859619980899422517918541560493344678779570382201983939832418600705633922645182052028142462069755224983503347354285806178901090487257712595803916967228818725854364318417322253923683396022402127656518017640077038926046151819467428370389978061875873195984084649060223072218066894124062265644013977807344049370349357151173869773214758327802032968003131531895450639692984797714939848467651025519578361732910125321115890138369846813464327634654852884652673691862205595374372171689509839481869468190122705972885676604039256851998136055073748640760809232535659250315041192029104942089344231856537874633441861471569382166563577997029057049808794339340419867104379447461013893567626163172901354448223823476277975554414037581820256634179590630667855258698934266582698845371161525538934268106174781260846287831637252803332989397110203718596266531074048712342544604232940433503426095036000670064527269279068111136141510239576585929975204320827557164306340751712474948501564838179402045479954926975996373998678767552949162071574365784726902594918916137859058167879028532605051435051223157171414952769029439428744720726400495880983531485366784640354973331303608043521206212709967794552748859029882843707026575764779373601079411777507569247123171580266462885157930093994495009879813405840994242094812920244204589783138817759313538346537029075508736179945563812525907541047191483970553948709425560494376563531954355222605904076449742785568397867414636010034264443709381702782171742154176996682302341809703994461952228636524400249646533431835948129770264503627654043704766098816808078889141627132681195861411583611554787598523256722844077830040339703254734486402641801223434994125839822987614019628002020185389002122782486444309619185281835644514625438663190451109363245046324828412413534954000004424814280362817408110813493460834396024316926691033495105476274950682153101573026094866286423902643496849858984257502271006552959643310667641494027101618437043736950916904606103431136234778579637698173013860900063101483770667834198564584327601884610008274811749664056821377386840951486331326404999454210909402217189061670439256814432501405439201611867353513890240849631084568607976934011039025106903902989057101327113163030665982384700949760726040079701049395152124939137475132425878871499744939429747079731343708037968931821814603364420391446063363982464073009029354006992691204190192150302662098445395224345218168802399791333505372633754220192119893888974318636258569134919820668394806688831649940672673011368732877228884039215961294285525222813094679233604061773988555745168670911442594488942958901924566696564290177537872978772778036663599717967751038145090754687377862070973841072074277425788958242994978754067942234916357852617853882760367385316979739804459428882475444162599753324914976003498797381010766627641886262752321315440817119893569700944973548211196923525552238829263822133278796179322427855361279950982621710285299113912684317873662146631612592349104355334275494355283392719813823267153011038974071001078090541517049300698564809657908158194277106572682078890994020297955012048420916520584366432952883471328289358248005286918379706619266640754630025388336810218086308438098182704141125205138266183435460071556582498224044965069598975633364514692705507207483907332211618433696797147340549393760073034092669328546895739911509935888279765169217913257882746197096394630112670225856065396318132603697243003903788458936359235976719366678081229771306464972856471449398004878030529325357879343417496967990609958588528319550503570511914512875908156956938707157360087754165177743316133870973698715124782198747374937839269085859188323225229356872470443136882626681989525645161959247395723987600882894479177944031008443044724840444760299607246880689290444357333324532375364171878400825252585228207638023683861622729166234109123649442794732679282492061418631294432609831056017543598235493572463302066976590971967132160525298392770193442362331979501736298049808872776765856730461232402115817131544249995412064816080199218198468581376985828505860188848523216430323784841880316551153728923141987948162592994820032836707593095280470507424691073941396294588478118565507233010008430701000426389348296483844351863262042682332630427096675633986307831405507494809436733821809314573606548487475175536128886385514742885751691237036872537413585971853007278586312255065466166682664271678211445918277748946609212077666166439292119766229373440811183581361385085596892085428366212259306704808075413797321826747111600973918560211974954767976499169198182631745266538559393533523183517780437118429166236665242757019968230816740107280823832236767117186341232020584217752026633392118340817799314102014925937330629272949335387878514138240831350100100215615809082966308770123682701785293020261811459794698905321440862390081634534021816003520336178221874200030661084841424401661249299643822739369699706469164927285335570596798936283767180773253491069850915954151703323673449147462189758991354645881926374393335168618934511310599261441061224682818278344823484337265321602837280972438021886605763896758337755113769924263057016993793097557478862660119984192262644856413331215727403087104871436943918497226613481078654496149552486604238399744136861667687544566428356305655427402114911246301607384232369528469031533614472017277378198015225183394362003105325403654999552317675222104986117564462023686581573398637515124702964069822388693390168143031085293109582206180659343349481366526639665214934174109582371465509031510843144718536194557287821218583198566367291924875727102518324570215492165700350883697908157250869432695731616204317979861461937456960769066147147948663369149273924263426936876697326005042900054524550206425863865935483087901853860834369879752076538534123584211782575123268701671246734153986565326872227938055968516840728322927290146855318381833655246281276881480201120864903333080967481468348362205700208649114269448778391696392194870660690202591962063621228727078956429329927480424962922529514258858741420358227375482487821361913813522193007583060573264138790286820215411936341943271903819100607555938177060833397992421777093044746511040645064656060969822345038954630524764670626377463526486781210846250209610412336109266441897051811143542978970642068749248217716281853702366904258660979802559717363922136569794890851052076402714973792441073286940483124740027689951231342790347873368600668035119586074755850645990765544760475652659173160837128299693053387168918257729229752616366662145203281637373209219916442320293349813522129737619277961177724936351614765372984616536745044955045463838880157916590159262193430412047534121402833935439065926359966197856978076073525399372589473158718627436519723833907577543581280142629709521237165258793973437806456600774679556287906948519538054171588737070053896635474757889328309412481833748985449387605486352552680013688071859989016947786718065049498643137171457107339154994194697324305833557297221956374854729451957645362234303540829260014264233757033262707421242999653764912184143340936767616760139987661882721312508532116928238945819747663577496711114092720659139865818314101123374735995879267921455250969855576680200552250856095191102818553096312557840505485824260335076560395536684077225417964915124162756330204766788983482559729550414923012389297950902529213031305301115212757351892420467682774644532282492944414181064751281845544132583519992007483881702110350527518981100117230324983396011186173300568576609414993564736488685733137353758286174555601315515812374151153110288817724183710525947899262278478279528929938169491345490623978941297464656556666571268987291910782814022326779255708643279222890573507051355905098383496070458700885693737031976549865474925245629290968280563636976923417580837575228314768513583134561833506121364108034074850099715018678745128059616808290527933287673320409394140101357794701124087276898424784893817754423084016230224082693663521855277346483720996636526988630066227871827144624899453767005387918418916858646916908533539535781236898845140288062324349159958092480582903508605429666557157258614980334464141379084716580097806140910302332242683630005207611615981984009634372089347473656565457749998923341767226262028113046208283299771559048950484075561622993089873294560077926848870872563201348085514845754461261403382699688868021193757374862745242339393544800063706226958170868482655893574365379314369237920025795244495420590903221893313033062797318946334680962542562237083227684570153671194524643240349531246475461910135383275550362822808468997319439677300007844976086619170692354437056499693794899837278376235895041211782017068519759776405631924576574346918496433953352997181599827297761812609725869002541256361399655424548121985856120292393942810339157049308822591279510558860386973906403107914464812116385993362058986351242304833075801355257736989301135801156029904081433167211825116638102062063445174723647580394307698799339414116985119325286444061681501755729691060439727124420394951940742959294966584306390627077819420442208957455342716825262102078647667189802621733096740292639797652839172231259381666450043080271814946427550669252683419040455995112872126245054882795222655265665411433305503295602630119381797907500946842400796480053243483741956105151077831147689500087721870789804869425117103023413949421201297997394963926293124271937648326914991963361040859673671825755343425664776329347340562846443088986863681341364910898581664877956298775460467238846460616628528774285011154098203642811060462440939956689178852358526388953006515981588543771596904264822146898566356123238734226499809101531680720637941692457143932666813149458897128786595392217736208653904114230134322419423539986909346540355786353553197827182910312598522087668396419077941581394934546483585760358181764632265358799526075571213082103714903003808276625293001573791059735795724828356973941039632852059890151998389184625731202674076368042614069442975519186017081917100400404042526704806317702359192805600115021739943735327562323784183285568267018444417542707672008220907849944419598682570133726975956886063497803731166029298446790322895686783336647792375738344324290286182666417522911785453030286857730904262799002085370933565013741417605679923800545008729507192059394733591492560538671431448393263514979392640248366382705632114818620840454867516921923933580676158210416001197710324054081889641700931130307096224446028956125138016108784143518200829913268713863994818712724320182172424900949418189731998018971012785346910877979049194486658952921896582036309385742554659084195585658964964188245198188707761956995178949728212631596949579388743020081524612251377970842582964235704741899366433130232227640053261291945220808488256931412144913936993271683134978425014008174794832080799826954763342908508574279654005147458511948103500907307077830651398726136209352733672770217086721500712955306150962176071951450670259037224079559884145613757382009695137177347799355526413431165191869187493240229737158568332768977804792744247918562811783027462576600014639292807032472343058822264361605386852972944346230831834126242338611824093588092893826111464101129828381361988039190620590401562361835117610805549481216711505405072426928036197412122778077917952743232975751832190615653302502543935986950071058571764064201821113545947983242672477542982021243996477467507703036349486861242051580129401116229075193185511913673460440933013811741982258722162841931074797262669346607439149464508515750103936109942099331529315507989275643868830168527180719661097194268898237318768298653018501346371147854036430315592591708520681785614001911882286120650136607731931151573698345995521376368204520848469930018357013928338631794040788496308969725854140668090474790428066715429236646512331025164388384503297455277425649887094532392451037267056561192738550720796502503208878267778360256608528266877461133614379656125392662500867620163893673530971925036840694340366827430561615339793968002795990851101222561747471981105210313683394507723492781347428329562294363858735278229562218790899006334776474277175591716595485742748086571540655911016742355825840359235649161444702147467871956601343461621530916590519851119110311601181063157513415732903969448711187991664300206597496577711151550200457967703839287544586760096047708968629416540432447270066380757918409589266637827125186643731818421141295861105414850663524384530813395536474294240536675174156102511023675894643769163998394165336867908746550471735402320250410335045508371146946593375829219857589692979282710542706779192697658277587605649979520647743509147422550945152618160077845517701007787267246908482670311541372146485230136552758155941549160085127647600186133284528051275292184936463877222252247239366956112194900518430003939699680109705037271015098264399931680869925782579377324266761746245123790560416764486953961814205328351822331321036606607096410580717086546852763986205610127390575278133740885051759995696083275102964120905194184783068782986623242871744875530136785015872284216468316005555207826858114478508002590067385444477933495506384764089476277245001471013195633551792442246069795985915567887952892158156454841001426145542454615696039736761506681508379645003318207889434372063307502471480435911368655344482523365024164148200370059230806908547159490826558253827932608450421571339993138825984861740418159395364717871687084958368861447446631533255434234190128864669703091172727030631611557013530322974785056846844426181830136914904882629470464622615553835252735519778984893955763848647092659572106485155879696341498193957773842197000824011151494677435154177180188324029385575850035054880815195907983947444008533296279078755370692562850622670072544118520617630858818592719463234864257790802578226204916208758949276261860957308127178007582616300668348122313666842429735559765608118433808149505680244259182174957756148052131668718746052101941777191815178789973884988407800725835447862520188049852079696906285554792231248537454605706472291615397105526196554482274329528032125606923112986972412675702846512594059386818106189877085894070662381739853628364990107639235527466692339725005046928977419159771123076485089095992693263335699044511113936208731617239538756082941280376541646540337208184854593348951478538424530671854775776468641816841315459139009612719906624644230910203689507277956553308274122192939701967645374923765322321855822900961472599191275034248353453171054027533978501397833289758043984028462655636012207141758254042807579246549864224234809994647755777656711056557429249652028205111473502570548507343227868030451659480363009833937724970224832882573815088676010640027034329395120166710664797172807698182795132597385551520815539108562594248890845839953046992786061091031310576845849335003064647224054397748530206816221143956698107556161252175289923602750836137302612602930904565183081819738597000904240050152833078197293689632637473945313940231314387897000874269406137146816486622028634917943428232818328439659797287290302626103725616167663914819421745450425984096892297904175230214909347116581455283368022979392337056969078210984707482513197737424493543713644812123130557862497896062491074626871903715261451401399092383160443283383789045786027158023557791525228349049717945039846683104391441052915171030788505427987109981826397583979224243260985507627813888296060747679993866261838599455354760725180322420308474088958723143785868967901530323731165087726533117904243095838174592275946868522646401831104529067008452169809392515744107434001881385419367390801161074879466407319883041937475326223476526635753393349985155657439738939802713981697861618532222266928541276293329738595756859309368348095463461257296070927949243935085257849340572209837398573962854358114426891511238169640467789803495552161927879945864588130846194965198719366725815815826839240278685361697280058332488641310044687817518101840254934450543181143386114024337774763075759137544782866992866798507545051666342605134995109338949301800882439879822092111843478697766227886523056155992260905002497900866081584538508556324993078222753014795391941626356345639539219060771187974825359442813145279364248349127134121324664835988707270509977769206433757145545321364476678220804661819986464839185719724521014439541205794570144664606847879101661377195096707377097610980284809484695540449479715318564609812693588069061290161276980954168003290021402095784502165195802995115628902294769619652181695524031607755137795637817841494979077652277153156232236045299262088413685182479428218701789444855851866617925385743809738676234248531237047100037978525897060688561279301921917193441830166821192403388829994687750313803839999766154333371959015300566157675598403208983641106419703761032364734418431209400006991387405126512536935017497456059590758071230200379725028914279704541825424892898237885760940010252811856741205516266887339659610170347213018386060115593254650884617856079209846079218827113445184313474228036281650925491513959045617198248504800699537532836415497997229459504481765582408709218548116225511847050489448643467698878669239480133845707913973895393072481752346805599863738604438725904508626780294213522283851584676552234533014910808932668424362658789781469528345171402993486231976053615020590136403552711748508222874984217583848462595720258741400855912216964847865577924756691388440695825219172030925935240462767031000101551943922821708661753899218637711866128406290140637162353859594989553888758640976100315904923913835193259131580789961229558512744617367146943667814333256353307464544782264907764920768342951772341349959532732403737682459714560059780237892077281510774004247618787163402868554168594159253677993000601482657422186829224338905375090267550068996503153571433137341122184215508220944393288698994085892015475800516911115987980487500216700121692271335522827779760687791316066086921400132413008826718662838121174654342809933604830464564764551999459695156097467725587167793351234654639337232788351092962451524058969369990864553537508056438618423991454819828040295003606442046221724753040114412442281260154631618332439256947666493472360181517169382666000680844486722022842598058793296580180012607644593168636013651741653545330216723736330993053627724740188970754324090037020435087020421041475995968392734662477533005553033657813229117496272707888996231690944119690539607253603460383483618749125904308361653368019965979542475887881363421499400010910282430516376145134344153886735215825358167273709212213643849112673632072220211181749456338127240727028140154506704769616886016613827956735509860702781733129437038422640699321321038157724214811424362424133913121529351767341438485943787375397299709780338025594195015749789788254019551409931900176367491645059677661458571481533578506945074664715462093872417937256654681349828286772336016838977577270776502182461590567861057265433888410998414738348794538255854567976847844875192520253342357994088906873422093797042880653345759188409126963867283742631398765923614202578997071593165215429392904383259127712684333107150083120405464545785365676900479774550904125886917034109799200611232194914361103902561744231828507958988654371127960373738155092457986220484655161116450184964364998342462236841346479791671844957768524624096591728921796490962629878274846549101314577071217917022563324851460283199754955890128347454658899082876226742807641573734982465707485402024245634182113109165566883969186214189323438060879314796291876567317308856423305471202286365892301478693241945432460075389609400465255321576978272943661499574841710007294316883793813995056519992101101969007351031973410665665154967037221259120869722454474631090443018680785524130020448608074146808094438008770806038663558969653630589699035275050762546272836875371682371577518758332450037324585106625026475343281970614444962298250602578356275700375367622372364185129902504627110966657940258887603776986344131674707256024741216061355619156752258314066998124065744769619207297694569526725697193309394014980647708553989748909582638713499149641761472028383509308151450174577217492741208684269563897624806589701199124180838976337546294074334077398905541049880639279133989512039630609758211652292907138529233655679658429587283277039307302831089908198796552609296306700004014711198731748957634184104531566140447582897256194858353184746433950684983246957203444074390122991335340673558682813593306696202691736087061809293254967633505516458056737642549073591631181336429425934537308917683033341205118079386126914297368293761278106565103607846315691190201409887115735150307923171419377696933134238700235654237824847150999983846372205576117925113881684781967856150553100891092570902462090379940703113928502687943359221586130836281902378922077235601151876359739449853131452580922563388680436988060518364786309388151786465283202791425984152450638793027565506571354839368873279566717646625588537125617748270440194015808314597299923416984345004035354004240757553506383561291520717750141939387064177435250033055635735201019717196407097610743678782241357793337451888352348583329175194710798277094219064808093234398165905312639414257873752310702765914417949770848523900145641820066415152475964270332569011767145511617643379731958497664089051707522020933045549893475426859574966458786945550733228470133346369676691738971611059830006741353341927011973454872476231875429891293568041250129195903194320409102200122771426705238007661257613841295382339813239556922344157527366918133534062070560982253264575320251364068452064238914229697046712863999536818751165281506752413747501055710840638661649203995836213647333623792960297917994606755418801560792268977246184709519718582141630895711605019285300402863041905560759216807607753239982545366653613420968443775871872373501387499414746569526987921695994540921218060828666380364693598317577368644425644377227918548309488315500773249262493780948978213762040867499352949524940519306144619964798251964307435978438795172795827523820476418551767388969218144976473969789558488501232816968425293368754174329174033821747975623065789108536882008859071862540456927551810059068045478832450364407181129890702062058944558048827719234947465160726898931074750018721881939783600496543353615658000732471313706323083103947333617436711407639454851349335327068742470069945940984591020744560307435804599107366176564379007695449038071825370506317557212917959862794494911145081720189154625370921969594413230493486300865041508856951223224443720862069849756716892655097712076774148135876505967252874014380294052201762957206803255066228146926732370917157290153467412205866328041748587321157062927125026639373160063431842162846836645771830838138459501747814886211163988533564116440910973880006256225635392093990479175196957439669885445743652281737560423887292364333422596519919624529457323667390596366472463329890079022062022699690283395212147350535145384921196911785543566875291251196209509827755597564616668871974215269207959288085805606639231123035281864846195514555816344937549013243696460727705902766195182170763885713415075552406583951580405374895904596709441298361431058652828989672213175693766967950815093060348320097543608381807313019050520820168646471754212701680462321891157883440292278567714095192872589775321091711505137468250244561647796923056572000841449326496906804105731750109652856317074617109058948550212381081807165265704383725431208258069737906226259546696904944198363707422062589955209009505692324106731311405402749285836365988094597990967317188594157227281972271769003081902770985077630440322793920222883341556276315192898232411092204012086982954371473992283337524214862751922342440620413390620863140075443722028746188427266786627038901293458086215944277283091506028044337371589981210570566443161463426567513640307014806130218512488096979661847118248319325364180422367317871780629581637003362695081049600882712996200380503308207815640480023325780641193185011974381271137463975825781462643912135715345856519332233609025067730154462068169635896663563112033886846139432031217601018763236468742094830459522550688886646584117528493749488072773442553488276676247962700626581401061958955578256455023211962442560712242998596538235660874348425577936156872813019891666403270531375768428413577454817597560458710200987130442912792497731393626965213714415448954631284295409733568236235455483304786035370929318768819992477548407603577887679640082436581547101619698643164065458617106227189081469862787975677291178844705142493690813188339727034848242742728667621177039844935191860539274815485464612410726282741985871623941404419315801078288670392739627323898223757591173997229899951981312634324475741426911867846572416239142475003294330614693534391464897657155558537815107952744294087798748849623415311195672665641911162682331723553827588016635115116069931226960807024379209082476582645378037462813313070591102526108866476052555745891065205210777596640512869754071931849009959302030071398870014406691506581354946554601716666086061832543526214806122917391696705863659088277825457861943496999377072130340815044204989783559590624129307552301939148609866462461038307377077913891235838325579692457239555000825918777867893315533220004104702877782807793896294186598811857300855717343027442769737977050483552835333923732988053280897163469077298790280939198530166550607875005570628206118819127014078611205721718599590378150652005649983460034785384688472119106519168301326066735812632598929780977971843582446766863247702294627726408996781278167267471361316301368622215778697362479768213007115625031327253973937937115524823840173213122291155812751941037420549804337769472677010226791748552780311098143246197100725621540238625485698400277658256949807313351278592204952284601091302159568210600300155705405126216448321046634254837949662261910784009043166744253305720117880732635866768268623379586698628970993456940237224579687817682751917466399100231808125862751329689199441752267857964757544545421196641374447990940087763523991079011717659556506232104876444601505558775838282210434065505025272229572290248041852164162582840293334981174896516132442434147428761734253154731230856538729839869814342366400678815332475900998417742954011379830449579671182352138384925817445053705088547050191620835259306107074788229550137235992229352099675772486712953659869328957446607461828826068512026435495629365322746534015505261301139337087985828127409109028137022336181581104974800740212309496449545297211535069385832777138460786949594472024457923502450801722235338990701823811505146059238982793826808879214195191620477865064995467137966188513118017562713713968288440565159797894229970821643645025817930594843612828464119581048264825027890195589890164844595997183189717991456009482744383511053767330764680012997099132995452726587627033678599134624408799652355170745390153424552050319356718504588341851216532935726778434667770452438913502245593345801907980844966415573468815389884278884321466793496069042578137756667905177807278515268461927385407429090428279295720205836860835668752407425346689059765546394565760683449973540448752730328514930070813917785268310306624652583625901495157473310061245442275104717752412905161047434390959618123215416840937205025100408884744415614718112708926110165016430350112292040814900640483326866067239566432070281670796853009189382523977144558573155492402134711687678424110110282186074589734811803103919649509062060070630884326485367934573926326830203992611123249101255279014506022096959697325967129239103999819843670889345208364009965890382272048846805370868319880230640876360946028607321402347631911012832787282592259154282772135808188990858890260271796917933015343285305326270670894209907130501982544112930209987788682670598395894693567422799628734570422598987698656417524430994421517456557715815066481905707879491380579950204738037561606482030996550624485537590595995502676323074434348235243398800116160073065679851552076172330792420055678464816978006127841492201928194245804821722425128680659168609888882638880253134138477599089555098003580190802750424023998730819927836545235726349374528262610924221218321518578638687235111152847570445490292994940707261875890725422943316982608219286253885740722767444991009838145830069283778236437087419334172177770112370336382217416354679761595162040281401491463647447973147418511060639901138360829947361746583470576963187629727855544633841455717877827268581176748602873822887859208721895438314026772582298719939475465607981959303778594288424480611188348491968292312534925797794447231198155980847185502417969358435991465055755342660897997502182200391758460132136156651360915115426101417982855855082524387388596328619431810162796712098251553596521148830619997535673339588698972881262553533120515846578423099933904033119695678727912777681730103690395843313950098619400763768659519022440099986114529888700870965372572527838717706266510812647536683599845653852936971594745884984833017346664236530049802221338825471883053567755275297101912698240034043464065752173876773083839416469571665253325970903860384001357080031505090268984940887669753631083071525263414226049037484312068087281661768799925305601559707044544231906792794717013747151948680121100211807026505670296231417547707594754801258392625599142972757797407870158671249638618807131144040586472205756023990117999661219187005686995637257881166645596276093279601841141398574301163372456622853722316727676854227555700116458054324701029685184478219450135677177559278754345796917319458763367915253437807364863487650727167314517586016466991087937749481093840792143165199622947675976721997886505315280309474852217882925780149846755664735292937215623101893474026638488709945796484983175432138560570117970270396722928030806714971326891366837847764494935426845273813883688264340734025324278926693537283637792754390337768055769374527841318807151873453914662958288921536703798146141743024803943655830087045084345870396920680969178658324835580816962356948898632059665604290933747659004747691201954702756650179437924147903114563856272732362531396734464233741165344903185776160714683952558069698387850790282378518489570185358420941717738546989123828863301655746606609989419971238760553388606200523896109607525699539188266675845626293726143103730758969625672127505601549466719352401779643462337789807345647794535254613824430829993400598618034915538559557895613404380533312435444575659317432004238153079324248323098381752889454291431244591998508250927742666446442086648416697227603320734938570974863574314600540150645205263376801453011253502911642151756163542126027648507617782342183196588160133852522787475329063811851555583947013058445057294736768628693289357298571304783535367056174608974376705910745071124487635507644846699776613267101634316798363902219498967754072596568633480698220347563508442926188467493208248491805411205949081235966648879555135286900812155847415893348218387921878978187212224443392244853545568539369124459268819433822057572395625518316957348661546319220301896971077583848386232526720995632539451496651726825671332252529407456159418815226696051963578958511206653056414870031698150066077241264854166923991471816387721654169538435016795162290186760286324024608332777328134898701834488692219461341179391943528719629585499801462698923047339598815559307231283102970673668235121308829231724705865081079315967485537878559533410429603774725245385149157900309745754081003807343476143988382130032401275400734042613925483486387906548971419967921326555464224586959524118851321492131430203988922205310606807765679744743683281267305214607629966080425270193052224145335579911721498446154950710390012689679257391025576570799471171170906494768346099526858322533437793911024024363747079507738867062084722381552022623442860611112997832624521844919807709910428001516164384339690168188203726666307393994632208819507760668489332103392763685236899716976468144012120011712248534831062974885556065974942273528086653565347609968475594810956022246764621269454941464965903643427423284691889273571712565408500713770722057573756819384137540712361021682370338879777496536933551092833618370835280276440735659574596733254264508552982777950850159127472609012709809429623782006369182644894248804233598885771691866800273125026782786931962206031476607441028950860636016421613776312044436326788867201722393987116845336588727543172681012370005068086113476949674823950756650710496034288434664572521595480103756334566852102212502421920302951104620032822454199806794875920722595217145974008335670956016546680615045919716313256081494746941422091906423826103954536507421876994214675765308041955592866776215358205201847261263445260280280690370497320461690602113188872367365271557887369715950778525643950308586939797793387307605476566082501060719628413527576564158133907381324401765424824058430306752264664605228683711803458043853166659367407000664356082562967399242880614149656873824647301768411201377089278305892682796762670541013705594884483437707493832599715796662805126240554739975153552199812496895255446374525365581723001484856272297907643128837253764230946507620947435289143048884905664780407657122431710462867729909849309805706790586662725776416663839599503209077438701344988497210168702681506797420112932660128322727155431271369597532135230851694615560645019105812143187226215416345335628285524719026128391118700421471101377835594474771169143837801099571125517241191245968748359422882165318331654342832021973299567780121137738994373576271998687918297509742486398096498995074732185725055791519009832243802111194516501716564976229852106111652388031862122981819773940541093997856397081751461123539840332278024711719896857850483477757552366078809432617853006839658044566062723610547312221448856140666156764294997968859168285091130897105932871562591877880409038146463195892350992590919878407282428469511188840152591083797140626168848912942789493123344416970764448891915212255605030497089955514010681073694986850431082940092837356752485915269638917300663612722933717335499789309266717475381624746025903750831081089206678351302937867965988091722623813814489549200840870823658226145333489957500676298927688806925700959581199776343460205554931377071985812825452044209194277457952910535600482689345530981703662870439903102388705431447371776863888407065310319984598135041585767564112458498013332240391128905433422618693550888262342241255957510093887632688216526044519829193756054684879978862920341394403251731474530267714926853122422794189828540727935684708859776890278870183963681267413573728586972032599667809571686622182118486466090227411072693226638904462749991966781748410459252905041566196746435878370679140229394155445774246812178889537851828982928490055958791199283923806073915806463392499481201183149185330483892590717194058591787528806047216650918222488502266269883581542041422925708434850154719951194541557571737600875799122777524467727642137969335958843818189322414988114153213156634972705626570439043248094342624626195038601703012968918342741121296156705940798426681167757617795154437010823194711984556628929669779291023364041888282490612919337488509994050597541951325851664366285160247684503727450495761704430514557722281532722943738374709167806097248682882021824179490607033725644822688352038757153647052071712500523325354621474089781049776077456975565535128286203784344534326754857586713026220687869064928523464758001173591986601572567370239088685695061150101452955155383560475516150833051291842558174209277356060207312342534344306281957739714462033652935091261658689776580017654872994255622161978363335107067183955285725831110156661712037015715603737705913414266144488866018913040767737669464640626216887008294851645155413479842771951666540866148238324640223051019011787543521182547547077148306323896817910329292045968653812407346021965524686911783062114143255293715135275331793296944876485686846699276655306222869665009492292257285356130402761811690020398686372187413584263373408372950509122450559482099059169099244861832572044038352037852230017834614690489470084066576442831243865344340649217732008360996137536462994971760941640150847895277750694825411798432100851035999115032191184466454154388232257976753401183620937722187429329573694778808407764159617396069545002672615357992792379555603135744285184013804205152832654538131333666114696802689551930277518093513771808921934990886032555223219406595747209039237014309679479069579602514698754568773391176569036592541783342191300294131533877384253640215409190135234075832365369425203122381315543745488955269677902887773986763619173288305719290607440109582475203606600552816594410109329133870930870011511299877150135722192053876912456875396717588046955924331583416251872283070360814484676585851844718701067616027959932689437285802981140324759764506763329479737832832598125483790824308256148147378635785475218096913206516860707375187951346769629867088811872789978091856796344016282085312998198911976531866968780520166600602740006683630399257788807117780864874106450870406219589857171044424685793139261084703499932825612165203324264580498560566730867704803896437930892311676198511324201548621826558220064453874174256805868498460145141522675919018110399145186392772103555490781871868915150210461200054961486398470091174787560161952488363078986434905349617500137676841751158724914260725149146227449502432912082822000879682634955476005122422176754789416610915882878872116433266977622887160382670723561639239990075535276837968179285295859822718515595347324941162036404405008488678472804121311831082997373477585550200165651438534449302390677464441304612919329754289486890738432700079339271059247374062438987321448439336460996173498392073146437314708831458420602230757950142971516601481534016174536231051474478465218826853744746444538390080010907336198788359027510685097932727367529631714957777170320755208896180036153616751551363402487960097293296743958597677289143029489391142788248907305420698282372580627231982148009050300745029453948893479721273884398996136789510331119494233693258831723294059304695965177946580890571484826265614181474045550403628009067919033002597208589848088430459706110031089902861679124619708772269076856428926932881107763322147089797190105794910136589491717617320054009074952812002124998332923673940975723613740711154846830253347120654839517295998405096822626415106261247484312060412812122017539257196729203903868669657645193804490073493218166172602255909739311269322684120653408211444566959059169582249107362260206335035240716599324895952610787512496356213610923938368654713358342315265741301880190448648051786050025585690068861213691883763177734105081673151365459015944934063289213944973030962275978587944066899042015701140810386781463119789235589810326352863649325575035458022734910051630285401643444088793142296950222289698691577623891758836229596101015979083578856949627475027554014369867098077633053408635668598129146243582284231138287718301207454309386079326722365367430405138257785751173271908421053832907524273831869361168664943175555866250851727016950369038140368819835554973384214419431959907275091274735303250855318995372297226972412540510544908381199436714828595596108531944612389786498900883415097017288186713674921250753619909015198298396088433588633239979744783164497940455774499346809614963679138959482743037835899002755437039414764215544876570243642449923303860447879085215648357431935935693979220278080058714443573395874832526103779653280116404021201258332252220155178184024543715055760711685968672871041925170226031854673928743797676657217702518169489631707751298721473317500117858392339845068488411664263850271139175031761180891975410578600242742550782370488781837394034748863042963169726265512007476292699327026986478181866171338443250904207910799494917885821081505287609263333577331676414661107162247115212986335249517696744863689343242156631966078816217027832785388344673412794392635390956416246366273788671059635068529654103965066620821136844057171539139706691304753585392883225185311136661732604677837426376596309111656918295043338994740594069918340432115701581284593151738467966186025145619106873403865894774686974846873214901597924055381220601662293457019421803149913433397418564220929852074154772096458383460094729812543545111051832147068307887398989250936465949210999798569383210013545662566069036187760067038809667932531697060194100936673291677961948212271710955927370624596688182200927283552493269481957213457582786746147526853889311046180763189662821171975785837584133277882251172466334553054178747112238780770817700197791035853603979054218791751363191436809338587918655975430087343906604869348524999140844011030188571575939515872342482963276136442392075230975835053180120398833991018612705588461284997665602998094459350077398391752245513155041445637963517789858190722687373298055621686741033042830875886459001388833687684707050798567366974854270268564722744631878915027058402279219931314596873652677741114556066095708839460617145140852619494506371898429963513388935391022499960624509641349591571607974382164425226561127573674640491093631223474579885919130159756902270553323914168815480808450200217107424731138555523276214957202092464538343063126069015689887638042893789273767262859092758727022880445531020810446822949318821008193220679164969295890726422625239270768228914721028947116256394789861325689661840789104791472782105073263218103951660749560843600106517762878205897849850514588058361073174569007121629100754618652415736746631905599504680687875122412174559604291464295151629151812681684866033279648206468656134557784757095676373962114423501666479725877926223110426585644358500120057592334020534024623435180699423102778827948174708969961370478989430896116546794268087262702161606157170080690420799650647870327781251147834304037195054160159027857129808639467581397479123033246647256107223762817631743792532626984273306770303293104156227085800995650747324293508627995213541754641581935972997095546682182221973938642232035670886740520018442469095833810155902217132077512697952183513630881389754352508533983661557209725330386518272242450314117478913282223862749737438545593711779694764147802769106178246553198969582869512521169648774261384046900708214369895280625366709021367130413629709137977809386717183790122578105995498611433541927435178133779414256056035058093466709187810822148831611546433749060456540010598252535191399238540208353302320903389311677082955176957363635408716815793747369843177408616613165068140856564015206102401710737955718113728186239091620886476367573897973654494661732574226610973096383532431019798261921643315962418228493785614651597140228158747022087440495427106818317400532425081384702528065793339424515233552174154883157420219630842355739388421242747198116427199071023480185996594519454053195419764168030693898367654621690409779328583130377212087834265182967293942106670269224837286595272155813417295678805122238284211141406048754933940720671417544738442402590578735690921607503408865337667829467333123853218897586007879512360193732405836118075897594860231689330663353613834187299540084584371007666956005472277532781429472916004365803414827044284257954533798929292943456133159970210578849621636261791228215995221722471036019222751486258924658789784554051173185918325543613063078988609279827045048729518181883078075456690763813671149865438222838810154380794269620215365816181023142704407783140282985108621961659035039728369864379519950012275154994687766172996569521928072376712412159956126068379563084670522544699900830990982958465166741483124196794029305460044099496218574146966492733237823311591090197157466254777551086883679089534729629668841592897536912582658612753751323490947520283655147615759859302546623879610336328711327720551110951071709654274081950456800078875548410006965182181508932508694488794023097279587313906639203956465828104471492111842504596037403467341493413993493646273335913443744371600450171075585232805849754852466323154990432315823993816482590603410508283888730920401720359089293618856377177930555761493794287073277001770009116741888184451441838709610061845520288754254529251607472515551105016088742237360691551817982726732293271962925460616884133599909063966937086413780537054661689970157472138387457128252166311824394489748857380440838947343570055761444593618754266633385045737696912529440814112181247854064097708584925206587835788742057706439986759242264279054201181774602522740495532237533600507456316477661271276462363130317899537132875510410902013516986127196808331513734336925374553284852433344275571772275740995953330455805966737265650397407121837640234526810484833863373264906741413697349737556141724793518441346830782784233657857515239856566821111085553601197518482169584823823549685567949848474304681914178127765952196053370814503475856021744485486283436797026197141965289213262228669654706132739362105813354924644768023259719317211906231330289198580141510132886803664005578189936250074495146683126654181626443234752271882303217007856171167834257775862064196880832270853620136590133341240613094627136233617943166216920893676870387597852221709717285521008849509824630890006552172416467863002047442432088543312330294082129730153660745543836734838353907160087841291644207392100402885845294245905872991922146462512893637039319082859643727854892294137771519501446096068177055342476307980534410286703038692357790405050996401365709706458070339638546157997900786268541012839622795301545455561651497852379211437388429922528717298064251379942405914949121938938510043608888730595739375499049482399459769582421155317507601456745621156377168367086736660000502488491400668469193671818503469706268484402199655159338023794330276729958506350889316488303586787724604617541607056859300505902513356683106550981458539257506447492377232447813536136000141472437886932581237622760836859056682380238912419840148269219203472970656811073448682884017509340584569272034300447969093778473970733951284150701919814157570522116453916167902856474601662398600147082366921068497494435173619103744592960533159108422915824417548370592152470499711027441427312811703316237700907371534437658610944915041660206608613530763761577719830349407103575097233633333982814410726924665651152598061147220675986490403249291916746400491214424274495799125757066000601935967116455406154212396413198406430558431204974338553209483073555896841167748360556262141135040477283292069738167594999864613792628741850873293369174268441725137758800035001888266801113229267315997021856727918475639888287317290340452246088554936135594027389612887846115186565687729787245449142597391890681736150699742519446910880034724271937415389795247086899221223323265579201034398034837711989347883488824158567641328401660997087933216597300470007660987083216703968571466853551355714453705245421721360279882155654946891891938672736321062031850509060587698015666663094130255554503346649465960704097174738811096275376491317843208208105266654501902457643395467694501629483382193957782057611175777750326218978023284882629737446178758960810237603369536956791148232433740501423999354467932518825955229379536369743503294521361009542971214216905175393056523882453201227846825014265294734796175578502845630925173648740499757939673764405003989331214689556642235464065379728317995917334122628878933967510273377678614703615668438131871039651874326609225127325982809488702256046982858675971687420659945707667007177784838144773349694111811200505382926366983211617060868787630291993227450483863609141611703832096565977394313376783510516534549758103895124387318098175791693664971809887540362604053924413388920994644894580432194587485108052848760190169325337960784562356950517048340226477408610274507863762147692649377418933946595298316158758576761581782985548105488752560884743675854732190223466381420451966552244008078208598207281209866069812811470889499247245074511623373337237509410799839312044306899875592351852063140850696993469198577005250808607127688387238991393767455867217028432888022827154451407099958506903521545625064799627496619979829370652079355259618292957983795069791801527489442364694649472323734815306228743244682113446905843750288761063038379885538475858625209174724986551570797571646212016153513624053349478237937752900158754407716781220492876730735475597207994530559951258560809710958305363310959351415859671367236994062383403706557706177331486206332746873773664312389904524258302275277675240037463697642564336436988011949486663443664675509483159716249212790357289731334215650434773469598716790890983488869184606535886231360920477636405446237916037642367442026673650880092929007626573467093466574089954984177906966211183926712432251709119860011554489528477886726981068011847485446070032089917556478910885146986301866195356392661508975249666258799661710683671306091592779819357595591414786424876541299320487885484349409647084883057661302133724609888358263886413014519553188459585792062977283141205276831609943310747779549915090019081102858355274316583940350359086968851929510643376712893272910128817906842209780177076660258565566615374906456981721272328614390231071228409588528268772253328187813965998303239498585426285184110396201079397704967012955147070341368362613742539779882237093723215142544305578595079151462075887678946286091893042415279135417145678420902168299100856098497599012968880063528824973728141539474665138641496396781266612749389165948617620672790006875300009271088286896106085414821823492475300466348163835398358283277191509309547996419904820181142943406566187495826084002799642576709107739399308479521114003691915482556473922157983178127569904781215429261572913052395224913038535296651778922637085945956890445125480235259194714478835588747946337836258389455361962604972264073874270741603955112724726631877257851042884585576294475554755093987936435922273301385781922952405535561006218004898372309344123518697159375255083310218163564130837892654206167133141589777075530752554421399093478777566357352724898081110167770651534548129790299956312632298770481727115677095759644626435193766348009917866831308085190524592230992833784370263382962318421218956091863823271006454908857929649625220093344697930916678848240482678399853751807165323854287374340890741132930712150169003401315222541059295792633303982113698610575774818133836199488050654349433136617985963129053014572949800668771864878996210477673200743698006986352501470482515069020880270181534980974078305290199569731091260859608666180099989437264340447790531341605721095953490305509600587520279020420095398223700745460369692614252276187938869924908696653554185855782598718553510019733785936356082593148983627438010253918619477962451857665574812382324035335905141786192434767017601979433211946277648457485666652275061512535438894985044694993704426977200314048082257757984615574622255477392412844462771255215507718944523116331653039224098013944157609730090263739402961469334281869357513148748510990688687039462852029839168740612662676215575133185187747756639918106978681787784401771812302144617344379743102251701522138369967206628373662551899880786229513528730194438872301681188030648958645583525716330642244493499201098118936082511501229508474740683477036213024720597887662639744233893571518276621470069051494613148889959428737576414204958056420852561786612075022711016642609830628083780521830327471610100225007088617315715830957017536445832203870742866660435501755146659510974363758536327096412523611548786769724534438334244905744877679508498271910690694050877572646316017797764646158195602131085793948649027400798818405487955798002191492910491350004789441923922338634340675205728731896486991874181013510189885493599119513499171061507343372158943502680849305993997174285030793389449944075597543532116639050611312766180592580166371441135281757059924849292071301238933613771028950957157403020445085390418477764596981218676895967441675518993399184629741028198221395682708508126919429147353352136917788410904456506713710315071055579088472570795621112030231720101273837191611951471209182553631530807706631301096901728650396960179411895132951899338546868871788896321994831195842823201855699438174129984759258236846791817197352187570128889162088743115532131328316886576417786741735387668544967213327900341168356755000786482116134856466911388517111358991725457795241209155335665606616254203393742485637667511489643335748375102114648977373284173294109800301619641811440192600812795204750181307367112302488267322388681747278039109182226063566574207774804462068242763597400287382001257883087934183182328115354236989333750999773826033550100434438676759357305937431064683064259781464356622924022655112069446919341751031552687804416009038267285193519601561773771168770818470849000717809574208794189218198174896709815148986051153458510361234853983497681735908255174751311314543436413750946249667172375228955860247053343947147855968197741462575745681532072811407407617850314834067057476534874866405105269021894849463553957837102554166324185142834748212947882635089907011328619648360460392033948880812380528268911669000276067549255514931675883366981472585607267125866631075024675378734137074249473030829383076389317500381775801657200288638931473613708394554561578655237392649470842529282161222894167190412978566666373931320689823588952665042764414286009597301180605833085612421913828709947046373620016808275533468141470149174187084196012704490951175637805629111744678580437589078428768833480117087894551220061214824525245742540757210771911561776313589851587009920011641011299870086129973562880270058069990601226089720156953972179121954553041695412673551829055013527161129213853798043792969931239734909484633770824965609029652998650192859326266384953554231172386029143642926141323463631067186407954780079560389757394099242941722734437033416095151645865361830158148356242141645840390803840956140418229300467037506172234582913390494067676159996644317669554664299297695111779651886589508857008397826028052078891405957731029044477040233784916537207359769646343873808513790947044651496636194054984644677518971874888401567028421780341556732846351786699656502415872438317649434092045586405670153323522377391764309777118135487711094401102857430743864800105284252920949737893525737679158610297960940735622667280289930561501758383846038428338293283234320810507639777222102773409721079427223029529442861521981063805432624662346226486024614920816246326632621449350425223190960829132787136403548221926737169679352071702592527646433770930734878600557125208329106560025191466205512258023236091515510187345157423491144986634030554232841395798097145172441786642740034235484421873828531656447041554846256979123006018265392090269157633224444905948058407240674751225537918163281710654524881788070050639959688145033353051722153727956783795395680349219558514379476816455349665092405285391987305896940065971709403577761823209313001385635329150831483481242048194929603074534229454997738671324607360285050641365047180343937185629080708350465741779640057286951263821831201205770661697517485651336851943561094314322198770694420291922290766724853956046885781511250900094041134614627714443374505264032390650218675613850226651050101231642608104355884552940461515297119669653354665482125800691769006099601467892791671206471479443645324374483321392780896746472388522546517007624092464576060975296546468231819324504307533760542740189014355973995621835850583333948124666202826197966545862579402800363702641625227559097539923345143677188951160467740399257128859668589665077507581062102211659502596981294229121745855354756712037852202463197467232175414999500942872723166809589327029708768739812692987602682506622340851517912478068924889892494256248090727486052357032812456244320564491013178194518681481298574198089067671344260132978441581135354073439144624556786235398764553579031844923175467829542020935243797997834544737766905325910881760833027197934488006528014606084774860710719291401512437515261795247086747937524035668978314259499652839111697553924850910196260006727735026897855151751870694836489692806408965803939044641054115527161889143624367424253546383510453434408555140928457037691602503952583181498490499496965784441974213522631997683812078169933835882623475463630849740634408363012803635657216421859605771879738363109663138926423990888046634380693446904414678823720540380711102768428753342564893068619910447750183914467966195223864347229067858424928880357292422828577069758200932784191941049596441358775177757060644393988863963497751810150725617656033163765352832907586432540482788503828200773587590881059263833806533956569876759816752605061794925997304066436379115348714389256981700377435223715377381344691103063267047358468353007964555924342677179508497588924316852123183872694142748880472350210158998137024434487797697886250210974149330522154375696787502261638856767669452950214116062160311945167578892788582696841729053924502261453890082572761356123713435166949842040446491217148531370804120446552886123792946269084988677089997900163439309432977722361763709020963199997712040897047707592882647765244096372027203395893911714837680409998300278110617253866358120823006991849279092709129344417785817288859645528938507972863134834164239339683085965249182939400575242983885832566547747005304366669747875379508885301142440423273670856364418606924170220845575768072944114966658943740728529016033546274920583669371151141418447433123098501446746190264608544800688073573688602970366968316430164018266738374911369910399069582828158487332443565222807708590263353294575742309444651024217385994748436664577885699080657985108151068351242210440488740693992421938600368149120554387950345267553675448187963933117348562570178107905511204118074186513245659387787362951148877727824273502267345278061441889540108226740801732882827186652655607419014493267685421415362527724346980665501387846049849472577620123839301467341914812190375240211192966183542965808435094745257964211663383623118134135481190466239233478458692952552721277390168337129151865740158219610147488957752037470317787143770378277125163514659430012431113160774771465558532208055303168881971198561053481001512193264958467189328426858918974129680402542268385960633713956951677155090163408363199803454822859823850680800143173671550487657802974002902926216701843521352989567002249911472729241134579738768613658497760149953656866536149341572666430801262164826872081678888144446605200409905527875658173512542075567705913621559181315821054168805934379710932820271764253989194412625941377960128751235358980909941103446066619116830331194210287039099902050404623505719815943669066219606665481812931879495762630452262651557623704889458606141456365293130602320645851215226746779250457515024424873407281630490809882907956692876964601575793399953683797390734973434993435997521029692221886399555260632642894112562771953243926304683858631727752747835013686673229060571645919734104562059844254245886393405567134960519071633929574213764345370917949515665304336512984631401784846928076615838364688788204966394615459672795599080108456820123326998613771321122126405912994277081350507413410755926694223835769039751269128445576450481856486511615145760922437710210936600001275893330791586766775267524017632046567239160844755279666718417685297632983329104005226106290508698134828218346448188582337904215143798704210354054511315400875992004887293424717706232928172198026251837510380098914415790279015104349675288799739903114333392592483916917961973002907980862420155687886194267390040848517034803452358954436168755753462142258908112553300321253242959207978729515138729269307048569921639172770701357591472668507144552557019211500538770634550305834992265190175301390675498363856948556358335984168099407400065190709908863219692578042512153980040100203447011043888134308083001593537686893695707961443435555653423121150393502479242327311672746045470703176979658655643714787334054754580562235718672036303750079161650291041787701817197217989151344592675754478047773302975111879427576036430967442872749219851494430186903864278694408466934898724316737232563857436308321713336277944971878556575478115163564590397432206799694473300491179869800054219068485379038910676293345547150691298677070444364406385006887669067211492226258392417829869366157014589606898185019481001217991925059460772565647873754267242928395673139637135210230818967556999294709310650928987380400656487632783057544102407897143489352999348224952783842292838388014105853868953630657253566688538269197812681844994622066028325668817299976574933706985882365526392936764589186605119339765716298552859887782238088641612283206201853597469252295816225013837188660770136023030039900780071989571779352526821435431921710661124651562866334066223838294942969032082016041954882618301351467602630163185455238835781038158396966560072349139267530583868846329770309695834160957537890561136440294974141486464477094253640492244118987304904013603763649257671661647943112122005217709702795705527106243035671816189221551590294650883377586836367161360594018640511416476761048371566306322271367618406288127767811349944419655721444766320777694095081351003207325082476123895606558365701520753991255520068551581490636304532849399674161065490690118219553224545235586046469604110525575950236296611558365089387106681047891498856970043495869429677156413950551741308895628786929220292080760574731157597917997826446111731483869095876887690139129013780973220818173610325948749663260978489970116639816339721725401933949684013425934383608627018973039431215078922764461962689502077882082212948860575963660161808267448226098290498651804193440899638276671462143387591249961335012106437163370094265557045081958949312076206573934762094749305197633895460195356390164229253330970331784656537338087654792315490362311558145638208607230457477868483561429929244639908937319947184541161818180066363298999860419828369808143843969904293757114080163171935846645374002028813263003089632929385599638973846775384466073574483940985916718506844616170563974039728237909477546116865191123997278889719578150485001240700648404900964826528170383092851360122432115576477907717323597902369292578071306929459987545680311728454483255906141871198544370731042617080303695143050491197458220676237058967080639880060614435126104550134723228716254360081878842117899546063716756568701398707959760057625014605189288651719601863800540737946385146626450379584881301350273076402104683487636764937541306201114792136423277837377682602802768682023666855636769790210145099318888966980133864494182385594792811802554320336530956776636286388325611222941972631194393493495863364275872887045254924138085677722360558673895864022545182150874283285894482953934845661430299097346173326748712841176657432838360765934765058780366669337731287314533104860835707180216547669271385977576489297939953269936331969644798390774690995215183112539973348208358325468814650991533288855673874845843442031466149148040219896602685808195986940488655919952288757817585105333119512798387471173725998260327693843034650655987715380052042466685419595494521473051323785529920040729799800110522532628266473350964979281243168630530327536276514604442165362767403351692478249543413978846700505715345522861517849206831749012331152273356670816823289347383112871357442289268063650852613198598496318991462268360937084243644061591530890931359163576201953675515953678227959874694385527563915156814511659828774464481883408232998097599499919940886493451682118475329433551824982924584125289613478573652677323846209048770034284163971238346897413642140351359844037284574938951437009275247248923187957926590375630625750844991244547951966435502238302341222115002832793200295830375222857867636512334200573500712067121872681755411586797269033748545772542399352308611538555052667521962300187543774152700116798210099613283282875381315897798860253552618614873039243522206940883462989547265385737677701885919367456708293606243425018432864346256326253464375099325521935454776570887586241206039596006428022461601024060905642242852606575378936247106517402015758414376590410249280434700054243863953884711850081893714040581530465551693898604959530477317750128810271176658836646545703111375945089892127433807977456858456272621237076780134826374240396177313766605623878771142211230752457336629343350561637832298175276908711524205955591612727792228403948887876959887452140450622615665629340073280252643304514018919284965076396047201490418526984430022063368020539481862746059859015920032183196894015632692333519536893039061641505398584370624927894213440564916719312066659654208160016506605754595678051934226778278953288500022999715395585154181478463190765217781627002172725152446402083008950614336033907660849528509038318454191448769038698324157061222420193563973588633812983877762096289748295249107754957449937604084031043067634435945514355006356415123702943250001426113035794100612893398260207728905345931277887383408280212055146256034749242021217538013673038638932568349496951799930979660464827121076679865238577546217398274788093144754485543307364243740892126779111109613100417020510372600723509885544881727647775116738362242670615396828177477882504580869058634624272067954174467366995361152275087604755246796858452450005561496452460704943288475526137310099830259318360506806046220440109348862094356764405416250320443287220574819941524204549091839597164956593067708174124730506904862944064178899233177388153686146693191808755977149450307470786737294452632919369781342152610944932577568201622956042233333881502924581320614876086375685757141021129425733304426549354366450257580242880555027400841957125625250444984073418449883075337238317157339685491384397093516060256941078399530657367109408483854081194339924791737532924511480479720038595538793593136717011520750356223920879488252587645612763664354903573476156250550258016738971875579505295172045802443800596887839437504191276946003426933271352777814773411297463180140677016626607016755270298203610650473781426600942568403935701549715544702727111953830033764710927323093355359918658802005263241748947867861778759561904713760191260980133088768778147195364686951179025319915932696125988593249659287554915476195753317614121006825406947379932585702753035486989493639109325035814785133658539308118160600776392585885786372713490944027145504614624005061855469772360720711496225621306212291026847420560700072025280387332475135762743588334188159295522105677669623569818512320743982415870032202246661086785835388968735678694873563649803881296818056230950867840470292979403816661366200397089545297152056116256828563232285790341822913587307769181688501995219180095043038046347458544569547122930623535164169462114071423529478430122193183248389597312569863736803743774307909466971711614797605620532578763331114404585618889696896429794130809911172133865945708887133013152092315500778408913671815061393692992730685753628304707714156888872052746842855368358213609095466631436477587422575293714141834915726973215875410335845807545513722475149953561293828640769834268719262694049180088239007495373253502779303443443655645830947594014933955735469304209259542501708870100508308924452629183538932116297370690243512828136103233357810417100996505475457550933995616067916579932383530404745516332257654469188281550524294883208140527854122074849348666951150121296612332463334911528081074942689801640370256726327060234629640811892674922837201682063584867060969786809650424690467233791677090215241767777087675713760325610489646518912935798388002281477464930082109396882562079087293065914172882131217374078998657983461157103680161900028798476121484887699610066143769073925620111050631879460882031236960737150468273368410837602926627753388371986334066935278749175465896142237520373065759940302852268652196790265491362971930565087084750027246366101530264524270724630807096394837049338784693854734228838859912334947979755468919687108792434597586281853996979205073973289573151883361685696076852650880410842519819380416224885018566729902350731616580750078767599846164908285555544999171002961308341241015453796194007167703104610153149570626676490146536672764325138403631825169024193321065541121885756088142030307733078638169249957439923877947232803840760682139879107898802724040319868856375071570567270175076787956872211509868424891407163597457319519584140543330958449394891133875230692456435492991759136153219755525616710300602457014239239445062467619817371898161378807745590587612260783992887786779505517273955099094802832552311414435997338191692667959292558578411220074948534006099997450677044073770732392593311364646112459115674391783890191291880350567194713649733048424864973673936477067653919277410247720253331222531142557333998896980531669976376178103431645684416936785942175236155865429026396836919131382531624227264022601235513959386264307065919497309587212843446813466143946873510810761467235330217128096779219647882518286860278452763185823175140363667217844721469340928154461814725370957872777841576929853582241107223999293591488622052149149313593654969221528334609442348292552805196061231371119515583945170249424637073496550800482628190562512922020256969539726265835341441204499860784242853458304484358957316750354269065056542339436248374308998139122718327315613974677019417646207889858535386660168426142426158694998659885001110671797992800127572132517998791633653508443706988331485632249014318544732551878938153389209946502827843373019501381810040500771171292646571308432540370110960851372931575738209667942342866255518220240341673368395689162907104956512152132153026501796903502540853998690587618219284762037719475448256925481817165295484559041554235753348896745230635662113807535626676357375362518038178986369727445745963206658045171361032182151741302325032741285724967203029543454674040654618511371882121144335243264831908234101194355666525088630053284804345518368862762580509363754516091540713499476450894835496987263138863507920789435216969790506683082695660837793812530518593302530667651952911658826422135139784916090919424110561595465218214540943979097595360143285071804097978334531909048032554985999256108160264102166378945718306548482011618304830253975938887587410378595491678631686764812299316365783958620283103144946328209961369702499102940041050322027324629672686637550611364657550662540300576358342903486923396802890036449748782528763403947868727346343684193818591826978901704350537483456485585532593392065831877174642212849552121626260276069236731302479397721972785949358015710413730665655053190882560406654601883027232136002282010734940051534603939186986410711242271521142720717642521026752420198160208458215740121188055426352815801364465449933583331393993274088094980991258391996566139249679709790690660452723994150385466756586566208515633539614521439048517757611744351958985479322212299684664697627174532215810860779445075059879222882484400242891665702925003691800111119416382599876155473411853580409581687758210695850163154667160541460074069078558544307462925210449012216584578553519602880732490126886337296909777865150990506984999055043504184380307056686817263265680519889078039234162865635204491875688468988317274615820748314239336544385655813933122942718037479093617344382423767674877240717211128983986489056699122394247199592801615789722468326384830104690204801614050172296385326791389042824429173536949883753484697584415315675988283464996614767235500890998749161731725045559510277742335779508923930370928848355382182193015025317190715303460506863134178662640023399729914987508342663866336148502439531568442905277818640733253593308067510023939509410612978564765104900151730772497278015951610399492547005376600662599474125528493000946904024136972393244752487344465407295079961304282028994762474279473257918342604608974545001407495880758749157867110972012659464450952649427112701577214040848028835954523530290390869586523419002165030400739017702097440568351061863468326830931322418570801006430390334646009687808021961781440835714221795608329621515142915400024418835737142389007246098884265466678513659157153850212668545711192166481990602380862899234728559044097141520496387325690053310059653778751305890564706656654959597930163475135673566487919360617976854123330407693278928233590375245767966556992524332112695602621550270926366062490904839316251237756327943573368776459991275936673991928687445695498846025518304760635157965895821123449875706365521825428682432349191745685556484370035956115720172181334625670390560036406551568536429184337110687410006496581676115156260500317347765369630662769517957333333459803850868694404628264483491284359166295048253869638144995935236268759320058822308560617311582468328988072074508410089025379828669882516865430511189028495910816640258157885081428572681399529524850179382194201416160083494696950880643115889401170706744248712829180515535805396907194280208649775053195571712950455401794490496674643720191365782797710978500460919388519025906973171005823382183335830549219317822729205171187230623967415686768463689893487761677353216015769256895728864678281971820733403555470674990491652062060620074609167994639405294678816247874622436060123060409978119748586502895837591406879134042444691596905054202134059352582392167170870453617569938484212057677887861932952058238128750024083361266644071039412381611994582157154641294231211158674126186544600940724954528531744827210556157039039546892892812444693904911877884109934171592379886032296804817564075607103436269782603027686562288583053386317021490343859449952975800972588175485835203519283935311398173006120012135539895629072189445997435005817283717928404400830686650057372204707727021877382198314238567736099362141145652635014795416523604927069045036758166260187532502192980971301284458914917036932187981572703448813826298518146331333730818586359361268008291886257080012709789049172911808437615588199619179811657027482051458548613346279177592006737623265980234796297266039350502016553951602096705943911044902655640529804990491845782857514931006238206832406882893639415453449884141724525288479313479274967514663784115437649838036505277257475495945976238975519126744781606231405101436580723440329908414424113563414863924410198027460556296255724924630114660094753459513331607956515218734362337284445149531477271292733428727411617039096048655769801922760429684406391826382012698200907759616723110433294929175742495250300751475753220088665639363078167906648744484669579792270137432232747211741838118005222469000109075766936366774448014730915993744346819199187421209652392651325606570630841392595993360695862827884137961924530013133517015079558013382356232534088374415680633451580968357843653310264782576138866863418766380780537121683398781796922883926794217295795984468337186297481116029974986924374703915321849322779536009588002703215211856838731019721597491253272018585677595791471343165235938498952474473405912849941068837109348136714241451053574675509627774063399289914110984438971892027041779797770755978216993000052941629812041723049247926412126294813392232014207075114247249413940901373321304351833014582596869372557389408368866474297234561320929791698488844358488793467018502320824313676051192491823234676629354562567009959342999432915912225799179710612492960543950501731230802372626733348972164172311635410936439573618609097420128301077710566209810172886237657465802821168524747907178587602297605180100888520708142202837626808985086078671747121719085084801620000698146747755520917389053888101902222826399098861964087814441622722069352579761125503079709587331939440730856443319467272375585617821117091487611731290503182170329994092757982578216806787537284134179120365619933642946204070260452960742081515594279821705303164341128287925990094690965929772983208336026172881630062404860896421047559778834813327219482347954343977958236806605495854562236596014092367736663770997598790840233438424457886043720955388436609239623467251343821832955121081922898593806293728184474643084592970003372184958487556830439751074193570346993049602317860120393662945477423215759542348203404216293473882967254578688076403317436273522748383664449694913507798993983961160076466332384354295041219856759721569950967975958627512135998222621650882709086947996966135687337845257297544886077828136588526422742473861520995656778219801372592586592697277063455169672427863428100257805992408879515342733805447134496838261781533446402400974694669560951800616301967925733897127768063359205538936448999866403420757072027695789674568739642155232329653879963618237758596900564725140638689588976976205321866542272537119544647742370591459335130948136139587033983030605560421892762912408553889897495723340652276389187031137998898685371175195468457865518172339155819688502187036286566773978577543498005594881165706500399924113798839326569571993938347755742522218420951129721283313916247898259915992632250879987775311338775843212187591174062788766945005496803787979448790897862165989168079244500451404395503877045707867174873877268158170375255243461628477241208842917428741469692705290696445713109103570783998217391267274808224313980274176405600382593641250720018041762850069451432019624466384060196413960472284984561070727939760377651312982699925748639706212712945442983361454704726593990485296917447188595847483876833702479737454752965292690761983253331513575669277220294363740822820600374250229742143496270636669654227565351986113949841049511866599761906419859928279023558639219146142442198367537280566591395782421191697231779087154562990315279798775246418314832517373857262249275024353915975616104276906363378288780774981320957462785387023486250742047466021763930487583268930907424430770390895301228916843928588616488143309554526432226054730564066685509113253384187378825845945489421869038967087141294953696105649114614575473317809452018659796167742499782771491499429998858651711405647810684385071594520331428954292232349616332701951658426985298001305958625340122625307512105141940210241029731185947455548738210395684311567355569103249263462576823400979115808908146171276287256819080599223704861817968263243587839998554697205357614746448413555376645023147252083620784032694576351762361661300714950197065404437663188007424398829396979524606251508264818170617316711047594568064683484766965584251615940366842489190969307480924955540708342542660275355856452787169766515086265446627024588807655661749819326229995910740372431420104781066886741710089706958161185800042924465365244701702787878502705603659277775012809217892018424472300625704167677060857557925657017398438152738942496939349556627320788127881311244003863943503578881239966480493792296926704293670349377609433429102540785730507703367236048306219214626436907569195186621847119323038106989103010229228706017748045079986711705485459384984918438255084760085110966515569121494009736979198008505032123200108538764888596731752475008477227614052848842301647266343585304445721975142095758742065144236495982574630028081866744782662005903855272428957367423629510962140657423662732062781494476663141688955455888843284787997910144886822169899331903735796103206102701822965809717509659103510974208700026339169421119823399656493539962076017621796132966722981975018156745858738475779618553738984879928412041012753287948197681056934348929762163286806959186271177005335807414092377488774637998359113989752501262408081013546143656184681777945419638312663918448659808891000823455694342453398179504753345338838633169975141138522163739759176181547372457759068362412560538983609647754129406597583878069037487917424916140003121491972973296005092743665923632082779517723029546861065510043447545413490136595142646844016027128818259107831882452143405319337598232955722842848037412746449276705386749536778270810339048099818233290886172641100609293028696413989880261230271526499954244835939722682993101933308904176958433119954379268275206854543315610014369666967894759292604577579884224238681521365851066146052510733240591082537261826683895867584993912190476066520848156541405695143289039877216741388891936375658771037917401925606004742901405390433681521134819775607815804166478188820847111573086553600231739487814149638479386152376776874013117627109279612147454383092770449170782095500603224914216997339688427594141989161642861947631150051596772632747738136217462711405685267037662364436479734400436954350852664893593154497422853261468864213695844487467333099128337647846991355026705338525875513989452338291765742237940839054792187987863115297787130149493310652673992059857099405241681364237275626595508891275052581763818642747343457539701300236633076346880894775177476014834492351819317314912428740984611641670735196816023888473435850381868348604243780095998357454441961898230628310130070753613384777131132239725557219574205413084946306303419516502470297689747936189533147301494746819310517077689738276165198483138090187135937612679417424985762603569729467254879357840350735645896622588240256718505283512782235688046850853483601664875075350301811109400339765038899247845655947214053569508332869795354200241691867962080493912096397324781742662910455073391184501153868638809954884274188592886038158440340431590458274832548247793106704061293436140486855517030368897977504642154217407770636762157331231788965215243384026216992920574415358733673679240807002702465816816661727722238507227419859067238218129107069210975507813035261075706986702707123393121881834332973050952169007600341056397120850896996379929318113408771171256374567140253763514136332981307939970630589623338616636958113064206987982568683841540822836036277448795521656224950089388761654225211878156515816955231504954146055010854390912435219095467219639251080981600963659311660002203063679532359040982198454847035144031252073370977227367005535108204862088314066421594137036462479041866062955329012687294830449046993440230776176461780568728408287339827463397621556507172625703567469109210233636306145046400701795242513200604566874894071069699831932725577770117400106714860219486448020564252680063939048232404773667193299618457390597312600320001483996682924380271941677994781814814030878274095091697490658467604719518801070522806704038634694967543200837577440798109222727880369676468934945856409131964581313962243134928073591941711257321199517349554495236331388849952471350534788402134460155412520172840637847370958560570570261336496669530935419008227837417627917340838185467568658898435245441032780717149545527979230433532944044529424539305942459522200049301949493538625294068797318269725881538879877319223277272091760422615996466271393335325519935489527232077007216969407282409970522324899519091023467760535456806009640546689389198912074420269946345662733473741325992572848187666579569181318360763884866883761616301060101330828509248309160001580341808161341171339904116845587462473178241157226295716301349985657967946439604999209993756306031503721343709118726820612287272235349052577314143740363286695148004091802322788991815127586297143538386078538214009914907698883960805322856071558518048034104905843993685115656475423750443342245140535957216263581402495821903477683508981219587464418490347681776158607296367137220697455213390543327880121473085153002620322782241422683978435924481437312695397568007935250690433531071136156551633840290749837155950168932973628900772160417679518074743604222549468117623707918360678648471823046570064852303711257837379225367174441652405228423288590218087495523347354704601129143005383424783223276755686597646349781925152115792478014961252154792106773280835610316977181097790559540137015695073968813721504787990589203585261416182119089858067226849332387885552523240122005801024607598357816983662034310134678308649146760862974440630460203096446495848829317274435527319374020214223944326365087528802626034158589617097494439324783534221998511503823382685924727048165794973924339586396323348900191972102482559806963768970673760896617936289692360337899563034795745825369390435221925396406090995729944231862482406957107112017525355753906317434297554637139907237975830453201355011109031816579159817049377310603067891503762749648311300437292030040645507332966540112290622731989197134719826758499142434687344497656604451745896861461139208246936836926068895116436645872374303573458535384738335185458617536092729466093946117035676399039550533365741911953421346549807066095522996879225329226252056465972309918654683396825445243654302161142345101889985355809251986900825323843502055018703683955392097318751882152737723409527615632754489591142485452056998904565574870822519820156672801555235940167956482781434425092713318515645049563076991210539033580217748117145436831045067151815460058257026185597989974513969406502489391116435768990953516074833157957412413739981232365407415104490708842884390628371707262333465602099391589618701824330619621639800643722534261426742504466665009636937555812954767630074829454695662263682821879696671968734523344887273456103399768824531971156223109154834169517844594373978113446245226969737440721921489274459537691899524152539547319214441010486633819388057574459160684681944043517078571233830065383047572324911198226431071349549482142431576372385404474154557482395754227183318962650874221571008470091373870005583655266056648093915286989941087969814706254387791063406410796830205473372182951456046314205464807427613391070506049348933159494827028280313862721699895235399086669445282452554102555824239094053486361753648498518676481263592146600250405665657752961822342371305622810893594932112994622254847858140701759013618717071466579173038678456987814663504521714123584880814072302542453983955102956571186236332833977398314475203518919889689649921948505236172312830084311354130564800519085029022574800613103204372777565708795578853243444869579766141307531731878293642696439385320546739864528661919809884977221317013707316653739465280851352943071466238631129900752370651790671889894244158177727333752617907642447164109542026732999200169857827286464597246201846492572410510126395159472692449109090700130408243794110464040379918776064947458869868407685993732602226340264669150255281042012803469009331542306447428102369962844109111819087363426243093390333370122643671150917120635347329713621036598175740999853137428853054720621901834378229708538262366977255786929012669254147479844031996522292682220194734189149927371174407903543777598314922320762701875657970570757872818253188726491837184681976386404397800869926557196194345618209703625069501448556776001682114435937124404118608972997733150813886241920558508663122363956033826481527205158885713207166492546097123134735007078835024764959389875600653090136359813461032056359948415309806725975453592892063973791500803357167533416705144825034674890291882547359119875088094338368994995702078390144029068071662032112111797449411013858131816688334927262787645247009967737273677783990167396052701022464250565763614265663506246142699217896695981324954784141200718885551888046513260009850774786404631922960039256683332060245650770622278824836570986944435576475523817791537836139988768051583828418420837709747423701592591520478288760606333311930316557555255918718744722231660343569741868693294867457674648780022895751543988355121225657302072390522171151513511928195873934485257543013952342335345901557259608128267670726726011007901311724994797813924191299063637422542635285882042149753332360168127278356989382850863198046527982977032191086763082255558049352765290030162335348508513356236473112100437702239073872714446313192740718467716391612388998939768070630314682636186925942048681146855256412054152578231636904235141122466644433757140728074389021827105547340289170030063333829335041529681259873669054144912244233021990064710376857231370611208135313573669776811351006950639835143512695830534633887694349692230173405532003732343850817058008374814186865256622506373441239413239109316339256927465410834226506808585269812874085548931542156701226411309743488708062758168391739218896449727818394411414975633085976856017173965027730436355391269339176189218464525930057108951314199476756118042441464645056792478398604554471646961039484793684212502307119336493244061302095236932791371912417298215145719593671088400556912375149978007216702618416397274998669999490382378681263967895704660903049892295847601075218860857726799603685896012170143050668993903652794094258760476433190349420585781533503344858984820889267473409086219987189491340463506953226605006627192970667126960533205609582027861508774487417807954155136608638388920105325392203814483649141830458799020420751798638345267604294984521540992039345553081542034923630028938464435837618875453874673052773979741767074661413189798201909097542296696406372002153893089257289456844257468612791842654314257498451534912693226164645330269816875296630357537554508186010331513526897022652639501105643576095783443768614840739183973099146490959255603488044145374166262153880848131880052116927545247913199909406634122630700057657835383760613880337571898587035898755354981548054796126199589821778647060382874061422768646399900592236774216770716318884974695769491922957948129939171227033986980904426028562865841702691729838445962735712938389932597856164666990704020664607063525441640739410343965140060102247434119014722880200195900650768597666117822327927486048994970548692311206591885562855225361337904163481172272091580337063117400055216299242429472316242567574109762715964426150269401818559188737725652243948011562875894326848126641652130933235689404186214319101725677084083221429369960970927296540382030109532030813020680290163952043609896985106204334661346621437765771989233225516445405362562216736865821641853895323427212807571381938795097306187556067437834514018292950180340796233755932837734418362195606764831773677623820735416698593461842708947466749283445521013330784433835349371992831436154431105148486903063115463124182214300101285386606429044650290399890295302617068475019320280883774039480288989299703903270131045698604448425498392092890761310715474742704055418549842662938331107038282540147324162695124625854769504617497879439313557624982775368119271815423412248943542627409325753133479477833810251509163661992899347088294989234125892052915546163366419642407622121205965877196397233248775686819366435382079309383933632686372759144241064548207702273346411133151709685972971613305227333830905256941137611540443615868096068799221569934967688332118143510166968976823628651800560560320876681733791718842873704020927005672021690078310094969718915954514204945767051210753229717772345106893203559740085597765432294809666108332317029384430229160930911755018037501450514094760937985842928096379745082053226511323827907559397968948554905711027161835346693403913690551471583102606060948637030819301592746926276347909148589075309846184401692107599483174570718276777778941985297005896519869963626234121054532394407325793191817635137115370087554567288845047921030923099846794302568538083422445980404929689967226597968976285119569848653484483365386652366280782039488848734887708661677986742192946018924711915306891261990502765567825806529810652867051666911231703460509859017493045085646922420763484743433914867461162912772979007250157774126899704544228178262919704703421884733649350946064109948185341230961091576054414921572223636734506575067533120267179131481216185597376587561353966333377318925596819113018364085829899217146225960518027531576379482211229264305902260445333713004389726018648248380416791327007209027947022454854842273354314688259713580232139378931644957072031734926367799987474235383307526503449010645670315770460276290296652370412049955553237456641743819669276558018315567656978795542145802712075747433411378202396556689261669039677385944245681404630266697022073548765804832268323754038140040498973419336203542783170871323101732418656430729386890291829329389328131178370689409920586635138696196261485978080461940310728005680661914007997406609496766142895739366686195119487868940233548598092221898079569485284416507687820549419046020819943921602170674895663611820143079044312824842070832520226859471881679912281824052993820852152927877870960694939661864518028564111510499118697704679855207671921636332119140008685776826059088154812703310660481335463990129133459697734982403538712540201288787489719135857549452777860372371504992708680652867264730767619633311505300318079912868475995108211425560272173499323311593071801800555042147634336074538133762432580320572640564780103696819373509536923316360298926009502471009775386079019222651894303368223060286733882878291714508047090346663227132253398823161698410886489070277315045296776715980815276332299149890070002927758836090184893862002156893670795768604654184465080168787470975383864261311141795505785759664074298049255317549293107449117192278556402571550872847499116465301143389050074206183255270415413497242987298540355193728521034029761995891295113128023942368280879903350670621500037041369006280666272768401359814495699185469959222115493728423455100308291081021127490464669255231057309323132722216607032688744812249892136379425335115008504701468781452551749537400237104081043318797651577190605456427634820867826883695613387809724915756402495224046641059214765329978475134693343236185355766940780981204610924539514469184864595892746762586380704185400045114147080528640392787601593146491605394855550683664054374324195510527227936239536215634061806288645112886901935189336157948132574225863296056148796457195895863226968667749113952124688256579684029079612769493025045995598844353800830515565874907449115958766877782351247173979994110019614048040620259947646743500553929475296505614414932529316958967469619989526885146494003399608364243384868863850750936240410235997945140722761584284481945098237922698288613501489806530962843200219868096729699863347296527625771144056160773356125309983872193123613887824368402701562065901670762775409856742911818983107478818489552563335485753781904040711976296268048823902289243702261193620369510526182259164602308226334952032793370011768438020689187926870842189945661068500206134707582474654851471277002580547024085468496266064415356724240131743321488991340777980395494157964166327300751808330117698470038321009921787552118223295758949721384943672783800718664511099162984965805122789132720377258072042603713874887599130207773862970740522150272893185078380964886155528456853721140562478338249113675573752916064679496277680102712208409536916450845532113019553583537860811674472511566427154906618161180383488297025594729152012070689228915360787514542769003465054755585754936282276383110160068851166444144526556614560554682648756500101820711903960252308359867204487319379147842402574203225158335172782113800049571446676836779164458920226660599113357206974854147665723829614307565414844513597880607664433511210350093210233580562708137612014067640502559397413699551947813186584280667153833861682252908053119479363108856996202863844066046985927906626746478899831223549284966088176528891188382005612860401247079743741701176506310080170021991776684218298928319200224552289036934251028820431151110006693909830133029381172951401347187633212779752678002718236493490287927586260391341720543640229140606007761181812873641505900979924963316126482710782973258107949904440909272849418203101429912218921976026317231771889921757280703501308896496119706469018140815307518615938995128209982668389837804426335745589996581929764491249351398496631454212309930161569615729912642783057807238129493096363229480752973154862233712252570478610946754442282209995685664011551065298837768008731042529943252208995831074593955951291750911982770944742899430896560048093288510041308245675350366542214750076541518610421738678271717660017963446425335995067645239314553045854367156873950023605344300354918871924662970355171374150837226410637942402688658965810438407595750398219472530394806311607406935566032202769151199300382832693572143788282772775361324057363273488913400994306436713220860213227602822980688474387516464282619589310415386579425213161893679421714669260364817367483932298782147202309508715539893768398737984976728109194626836392467827353807485419178209160393927731589636479490511767985514772860152056954864686255867838056696318413014350613205841345017789475637010391288749584590172748053510835462360210915383108160214774416205502121952766244320619679437677886052087516831131385341933371498616610578502945513547572127380482827242294556569613639093531253721713989503291451181072112692728906185738026582357910616450874995758984168404279361406856338347780130284851170910193828294602367552162731365221510185992024834429186190834103823432840746968636837579416509393786926177353474500287507855314546109535703134390531007441737459748139773046060662615699886083059833378056236065332470541774852332681672443012971497385376736267186194239282600898894655115591086334712965313873001366138545023916277739743571183154485268875558482815876185652392542136532942113403431499689193214770794013053136847959162058770890962805336471323647312112985564195760149324154880693230307595139214507206463650536374043892884515569556133699763412867919960327663762794380745343825243563633006987098517996168265787222055892174516259638966242349781384860029522619549893035287960004313242140438179395296935011717213051572364314061833922579066532496985005039067610677409622038817023502021771387342307034869886466405817008761692456589958317336502158509879060215855471032779933975719508029403901405944908636031979460679251571206133236561557958823189848162600092334026388478923971253171487132312949319349239413325556644298385597674493559879052465468633329015249321177954177291190822848337379090216982188858076239070861818674169173156754900339101577781743122516432810517993482918730562784641490361803845867322500191456887593855069046697341966369396693880806599444360306243737317287222751958531221150145704309708055767975085272344361989960018889639130708877644928381846389302272245248561152155359686052415946995258483060585395240529649592702811977348762147552826992653734725217616449733692865491617285115876981487345202710614909055668371543214089047814808420416249805525864535484764395787290800839951077583494534886384355499330558696412871318253557604089303346206927805709278353858344414763111599220535271266084618497678989046523200543744115805310155583154815048948304581349253482023508329214067956174227886106215906221832586087580552764374857662430460488620716981569762144401157666696762984385681546207031247157815448714721293671734575796178856172541252813665093973545952221023844691292300841120036329742696229091169345665195184710704264690709117681359287535995016462186515490316513200160649893777217301589530457751605173951093901718172719705529714680698731114258496435008062508414306315601076934908456820245287033594450382694960248215993089031603471692849275757232079262599126486760553798127841469766318513357737543495102073756100769139042921938983021733830140812718912201142710752262815836137460658710072787382744173444030197062643189757823120329687881965175847527103961844098363896132086847687413963917678315629144367438268202536071691743897931888827958052117844820733250109660979745991037691897418454590100270792784869752920856246498687854470623440194580628748889184413354498971823656164995338755120579711014556474389367846597406794762632269881368759666685160295678975223033995933542074869862717648833426804679117918511720753053520630712513208174503620202425908864750120510238159876877787267808126083151733172600874056606402527656574301405231014537953601126736116145881994767417528473097334202546065736178888283830398944650013262041177515308917315838982233921544453431197289444683351123071905003659649003281841970933166877862994658217668072470616904286704497122011607263501644713042487650116070650286021412366696356549829260107744162565276422062867854058179493786375371083210634754361614673629209628315841488620932956378321049321360038288619901444119336818564140479625080374858868045889223477678202615791333733293223214649254073021481507872831916286783534199596662698406600516789338203124968730515741682631805233531714867679577212693294926821337006304250315972507501745831996916880582628486002462841618129126276274660396966014708293099900563661906744154584446008609795440248258763674548239300624314901540049457086427444208189846771642336060952900789708396801981750040658014222191687769850778732436160958712201858463667890481739463439361357988514204926511271455855386003417532105533849762152753986011003713764544284922943771347247515175658226620717612618404133666506644247943922981659974654800076638797807830516403018810410581428523915480916223116130870924684309766889100212724917683719167591618929180454977878062762792257537405350754861577267583967474232492178396376406823593478942587498390724662572734760948100313423437648111563446427955787397731918342540381685280188508037996598421755072207015404904516946107053354807026591491642249734730811904737195364805596350221350951616521184040115918508758028411093526674318163380122965692783814271777148423724536944043634679952776343988846352470520747802247029993034689632242529852770618295817941626098007906254946388643587772471810705876182734015097046569689615887674753606610502767566972122392805135744002696719480928561411953448306756721830955641420802498048963191197776577224644810667340418017568716458564809934638817279440720588919456621330545072489269209578143358656865880877788301942685912340505773028811542560714360239236862599929313779981446265769074141553294422768193787854667180115801412957596577906730668393997961417143928347685971053935329916461291915853881949787609094412127192014033181285448639210022857918585350094950954629528750292908573057870954284838182934549530392093044429840390268587110340509669555877770150640071081131020706064817228466644659841156700122960919274503461543394414107771083219375865942176128598940559787032887317733021850797821124634299379798355920392159402006846781577856806964901567857844541576250295616507153905413812215463746005494169570901814933387902098891674328596921813685151711374385740333602996398317343856118927054428882940685027670510344749285441817234617592275385909736142702731404663244085170535960468630793522000353398389245394305575678134075172624826040426095873664476948009222129745516590175194339866358421388982415046692432922957507542648227313418233180752974222231293060656409788943444362463849376763091754558650862939383388395502524494132239284429080425566230122544304051624626280762550729087926704831337479858868860437153874018616977790787123841922479996508271532761175213623108039472922476102963253464119208837415026046074810585713801251088735355905093064549657268750773285355857429076214482030219429859262821523723634274077300422701648002678936146266314159233835010222503802956020831651924504467934077091148553511952706051917460844937043050045365741108359007057794305306180031984217949514103889542043957704432353090563920515168584633958029830284563857119092305898654929254527889708727625416837480039431524991649162108434220787526486232653862025169603699536351914872338096863298575694259051623135522563821006161698865767244622698101047497096131885697522552978514503170522944202935389210751559535437487079695893669132845196321613507211243093277631857455393070670902410363369506228112342019928932307924782369826337811765904130190595476843462179158346389563497538760169664043956130317659150945210728481251022918938627341093956034788721666400934296923967089235686316633940429253703556192035130486395342869670818258191782158946271068955573158673998750818902745017101265513655928675663322620993458186746677650542662167881380061107054922446155877248830300849953913834702174613647755538899636939950641163551996171692294107223050122653971363328998069424887367533546231171772337566995255913192288412362830717929311674771800327051965236193166839818089062659438409387346083377665727019860408343368674642160401526910586993693325314602707704221813437994714634701503793482090806456023849510357073500443424208686604292722842486650025808398220197285809590397313489412055456755494277988371038849713211332830942825790586880181437579492371016692595998644612755771750735435394759090858419925727923069842414312589027909079842075945741525628002779754469162611492954356736602650134806878159900293486782399907474001698624581706192984239509514124319516332636994030037119045191450615868855230506851166537449804878740854426300152103878548189108330310633116534256537838773989639703007887372130577275767084184951366684863966162057554846650664938057340873793057865513081738095699291787732959738752846743605917539087401883119146293289176892056110249659667371737041300424794204903366117861714841723019068007077259548874020822805182799973453936541807024486077539840264240583429528759243271573379838124500782570169158204658424444693009060775547008913087360343809728775336608149199810164550992757574140126017029146410551194931327339585489167988704639763416832935652123614835678073011732994339071955159084369398237129998240476439704017785627259518681836380629912009449725540815248270954538286973402036346825397788331814540493367078750313507757995888133269672109326712723406780259272548913565134083120280457409411892371342277054402972122946525094134878533645979321458968712539201451884615694722092593466883254593110678863062880710089981045953961769247046404522850210672820718355963570762407704773759718851397054807510709073258513711116052862899130260811276749519646241801924465461790137285945223581221933680034500127601440897197626855958571455623566981486590092508388411972592389696332255302366232441168377971627958204912861552724274211691652266374238559389604245891717959235457566240800974589738357171636184511707353302649291838118140599820080334307765990546452248997573866099220660459593846814180331863961553030342799412682483146537103170512000005564839289829631408468352566918056081830979732599185794690351290151548446258566623584913690382405729294887107860858973055278414155463312359798835713408027364312201779064114315158856783279963400375113292454049366578826888750989259063413423512475501257546731031308946535003950020279558207679853568006512445111368985125507284066369170975046649279534668930550723232628721243128055053712424236489522620715302860809032403224481995787846879577128588588119049154356572738196096545764448183381456969971661940307958620984626708693730488880498223879240156293869643110722039150890639214962267256482643369985393639412228652001166770732348254205610024550210000192744437398682056421357877487076217637203781645943591282392842254899458421414914103485392138748492266088961862665685207037930009119340856038131837808207226595216135529919501066954205516301792771223177896195962867543422467476969746651694351979311460175166538066845539254707509482816360516726799777420556320410311243541750336742580987193133184695529230151872057117585475031989963348285349886238404047678823111115442538259965918938285887913800667796632026776704855507627968105610964633564966178572806532438090855185448113257811788342800048416259446485344448616570290480496125087534642410928585171287449154615879652793590270844613994107054560030326467148747894516195173243831299901118148173331455282885231125677793027417738717550450219997361879165105633410067047962581459997962530588552619488850013603667688343668903325994670252138369389459341133267149519504989580137712957905324623480838201136366828848183103167443734456956517938835767954300221886093276737354822354537185777767365236526112198123342606358196169474661649863253743144469523986946072650094413855116178626277257267638379250613654551519590359697376195932106611696348881959270037832500743921162479563438666101034536577272560653380125868431869738461299198097506495886757868911385011546693804091987212535453511668966288304962141709686927203005649694547350451053118670694546554008379536937131718632964588332795486201009896065370465303472534896117104248381609335497265477160776570833410684347684726860077857625365097469754533074893645939124765606800552809720423750375964111956818223355006007280887678712186690519803764820342149296473252220651447144533899469360406040141336527949968656342019951978761050926057902401619689383379636748998262023151180512990184870174154876653551973733271265199478500725743864158613490956683018106749648672780970394099397153358489518194839911436065758023944804948748637866336503424359585537337840697159018867444226825293205228423411163790533719012673668721018508591214481721245708820461453560954525025992089839317466578909503025322837058843752948817585832557842834898645960148722029159713873367910554001460216818640315263303075033877199745889634327370087884131679437733156734852441623265810331559966457740611532202688893831045595807276282315497447444560242889116546082896317178925807115684208221759052464859716411697269973620263136490893128028573610669313042435763244849233817870372804937274963648637624875068435522480748025079418457137126459808259183353644395692969047150011591684378479925271768745197133673261698541828633355413145253459143341545246722768250576019893166507123648664970454484644745507537746602698675230214751841839110820448928532209025902067484777622359519653858239703740344513852139681363394006154204068662481405388752636159138205314791710089573553847609046930718888530578006522115177730862324841576717514716604672509829554130796367937142806415362737935514338403707046992231947508613852815741100294679174681603274277533176543276598444179544715806155227479369985327429850446844835910643822137786992781460025598648508373548906689824642254910740640254723556915190913350512730981775733519863896622080077344911092120667813812349783937906588918171625541118596640788915133729996339805583386918051813063367477286883405159230578215882795546582843903989828414415788676890096352860537779897856026780013957010090266387011545440261510065027854548148393580177243079233547571558527442678608828642288663807192676662899615010180210371634802062543537842072492744362130203898252299496055786738400715214938842958956237955467011107231068248485058736858514307593943992326407645418904476201173709858796319738093109616107764016157491830590432994338623163944190268471747725237783136214593150796635062926818374598443912168567008630797851904602236133118923614722025374421385199387938763044264855121909714608228417031248931099694082700290207741296631855529149563536137055072946902415162809607294505263310530556923953196405698473863954581143842020133567213417935024283373178178081497688982385781713587901355084271741116723932019956908635994333165822338802357561145225477444578439816326316800595506459584545716846229860777629216233856367608212099827035256004563904674927500762268122798918864718437733211520707769136057866656363034859704521390797057589308337634248090214432530045663323781003074426546218656286539008045218619606081034335533769504987416242069762038177402078711133938335262771352149585979510599218582021361393258328459758401582035678074236624468234706322485058016085198629085894297903132388597498871186767035410082828893673638280491255304870868809024027858757916667036363428990923665480472055198423468268739777084002809623420982868969510643505173653356913345484646951239426299132031850660836757031199948134578910290221773739626346407332163850603361264529864035643920254293174948629334508109344386607924202240469136671257067763766202585480345809474456843267591831719219103511263681796846887901860320693426626013454413027736076912592470340670310084957945175691095741813889491454449201854760357572661068052340314945026493331338278240466385188298383667600685847183335030731811822467786044710722829196956429304729967748071351243985572220555863885890296995451252035858324347024743776292800239716605695274065225078281167394554514285030221600041188111439498390475272869344839053288868461571776762795338159081565804177173759597423805227542653257592227451713935571009198032929600281222515734643855517470425530044081915005095844776261897117109681891522866886730078062428665877336059504120313240513058926402974558901063655953868099951054854574429961959598936115451463304404113446477051650051179406897718712337599752348260709791300645794797011181509323645036867545197286151230837155248433581714576616540245643271257388390798293142371649341208557664038204079146316301799356726395835121065080651405007999895656140733376128899404767062523279372926904952627587644932652999600764298913957498105092504189319359924519169069010803248156178042161128057302873996199142880508520930245693127438881003721014941606380700225478378165493334682570497754898227144443033570107513809707979268400782628980206472358522227403660707251431094091845774314460578862216614964999491728281773436707114541988062270061084510671647605038218829502911701899653045305141881728866800810687275979580164937206974212988699186344927488637474082393950006749442685678980335981439225545723976068821038390899906860047297919350568784207441525478172109624588205528206329554233134222302784202483307574541580588417058103210714874566673310087160784990677319942497422424433102627907070503367397405796288661446947068929347405171716574979558923405249780205214989459644623261518502555790632460365073177247665017871554110745489629108294477470964870081804457498945370768861490195089203188290970034005207756876147604599618286071678117364780494417280382819342642078678508039160694532111955262165954113077490449600547014210086415871359684059865500272389835024843981069607697362189548347775734180341129531119726145270300558561823912194612745531833903922561785428442454226567047598102671391377245530011548819851460396868948986233648215974995378414589796099780045074082257770782474561076249225860993869865163022844679962359969125845384282435440843916791904373291034721002566558373290402144789711462351542972618256090402458034568174253962598059015310885626038489113424115038171992439124223997368214058974995501579837664804925996779013173816521495027604525729296638243018843561593528261423147907689367603685778286170087461964990198576371563791967170267498882696601682498717167684218392952238115698267270253435987710688529036562977078573886398861266848233389720549629473331641292998689466670797836161104559773888388730534833572130882109315558744932608033028897909669500228996366065978669975187945237947017132593902108712960733515185886579777151907591782165289117791181711393910645757479158996364433058276565894772411868517306632956631448264045616435289104540807323812120929938724309413534627040667312562921318732571451353358789191736596170534696091073158637928289012186003380036505048644937242672272705261957816381514725023406268444272305346486385287537934013188704966103463541889816041549272255053254147912648482355729652078112506868090200261492268073171959674575544542724655196958820140145604721685635734133680052090911649101764927966659593479013972911152954641045740086180246828489883843934490717438277209579471697312715909623434188601998519217678891185310080771153130274468454778698738596509737430743238776768836713150160844216906395724903075742791533711842408914404010812255088370663456593586427823762184818232170371569371015246347952978094139758255216894729026560498250051490671349615486050469917390796859752561106456292690789688119871614030904108927400868804092490817576653675885197346620090049456100643532384763609745665677398464989851463494518927159194451829255136388442041690498965405790903855939508534956770242171244267588492294416667216794872536666640129673196984253966469771528849096183397634977723245768451880595270567542924389738382138029780564919442137330113210712611986377783418410050362708947802504957446058382207293369845902159561754492507953072882154407036484415868518515743796418035635190212548648490069399099536391245862180984004277703244910925320522586091411595312604122803545440366869326073117861170667208464160543330260403805930738536126328170697441865501939033047248280957110472331488752304798383777373921173270609417404388531001501644922029931891051209953344055551347807568970716240773002506788370171897327248856038951694421131807522666339960063676314804599855990010081204281394662384553506552595481951040794914876545397689342527284956387066817177803968421434038560731926427693494646325940105692445804681899792389894059346755144298830501722899262731813704332455316389823302220288790557044706848703010150057886549410435348447870518566352542645545691211443348900518795367288982997790550502623333677266664031825301228169287213778397416380258876818029038065091548766149366418928831553404491193111009937012432588419801988436823452492116375736822413262293430655478802688402559995497341527584207320330696695027658301314775019058487095822633285148483369782842542272527897385187180799064353807821272253324753583458606630473264058208624304145511365654094886363439616056878626637736370956164644411614878129386971757365927813021554612658658831157681289446513648393751737985267462605987277175272428955429913144874116918145264489523365955011109923027429329499934183640799277671378438271295603123189351295403304795681219335330726072317474138334793312202256324474171280632555430449521682156484728461949998471847379535740045923921674974638278158258920331746196799273207460038420725226117710800817098230352752297689705839769805316549023178689218710512650390182671708888033127449844214753544645996372933693785262914539865986031257760756276339925023885274103010396495646963612604758545899923365094234067285511014889670656369104186734327052934166703490020131409575880294636404578584512752182190015186770556819759695542042234405609023143576808212561774392453574367873913333547769350927544369707288724740407142042819066006297124558257394570544099278848595596363860505667252538614150786940545242233067021824487142235312014137222588142285653573879190248214899192241287649104326006475699927824568989243180931404081690361996585676994033258066890160688525082549518469942565534467207787120392565569056117393041171004961119128005622964248864303876873869900152221637987367710818212120868214597113682617930182321033831557037930967123191789377815650715981183611387129997413501735946563870764943165160451885734202043735655384873592094979720364890638610249734228516478852434684637016145277140430807409631205609594233278844667007889206340763501268649810708609672504661954005623474480774680869207038648156038980778692568988262322196938241518195965797878353290744889464366792653061870702517039992813634250144846632049606639949278151191212451627826527735273060433054642034117354278263211135751126294738287730120901286726721214613487270112096773862946252270758647168744718662572407905896240885299276051104692908453442159675944117731067621458074405092793265326355039996726846221125254355224942387513147753998863072773122495763961311178633484031754926444845365799282793901491958648378454176703596038070087701400440514903159794624229690740590298689279126722594719084319207953698584662909089635326626814685845099151534748567136504795828905045554866590325736046338781943801603184298724401675563454766170273751386141886662936822943997280363510301439784029150459561299655214686705843799262535797000026243037917195662419089845739852921297505049206395011888205286236887480007685829926429027297532788375432069120584362056728830774797207086923629152137875319451581458143258520749299567449353159656555394203435555317645209341691893226188821742874396392758692328566011041246324441972822045814454713065453932255070404699574614710634754576788786936788671597731378823993556542752467386072154264354879117569667715315226271352124337773798437476527119926245906402777655726993113640792409399815834160446781288886040353908410471364829241299714396662284162732637859965338796603583639773348413471277813577123753871965808938118156807371650438573144864552994319938951045139257580695770036770546834846484281021116967780449496205604075025616723438921978510740836060422895273052239308626916448548342996659618009327476902600795234191427562773826123858997492111806657203535710945910610153032715303000472651385322941604771783363121605113625449547676211630658516566085690727918469943842252926266118396069906407922338029704173639430717631304948618616358569437513082888569066072801045896286319075959739338491647942096042537917801404203148099341766816349196004271940808233368783576560581480376912674474144636505870127981788694163926361250943498718286975635320631424428147564772688899712481805363529521201331924666854935225839338144740038870251866752458397204313105773364680617725873796426146816604368946511591020924120880549322582740548171533406188942391991146489214452637790341910352993244042452880644733782707040741518711831013528168042800288844008173663245329947041987416990911510743681405089090773559309330398557807209587733953288903326508931011419696879309193472263630332273632440470759818877670569461694874952334911465551818649905520102911926875210871343445029108531296072747103986684455784911882814798524114939315577807975674807396776179532524494401746196418995675530184403135026435279748654179391874119714333340384181658365603006511147677841157637338288548868271591040650342981568742619539520966899272564259121566211224644998368310295607668931714651620814208332033776176666675534738143196389326347858934500478215976981841163275550642397817957791893577249971457256063424396435131938427517909150575476002457813687842659005145676268329330744221028005370012150185962442852923909778110831229305155373371739064342599688096886278007118715383207741028845751667488473450417158717205291688891756057196598809522148987859165997701796453038809884794903256812781408538450945269449583819122751694050432329386664988461150894822877450883274353763387807085124575972794748786701542696817562775379947074632623915965743986249810536778063810954994690933975012474063790312610012836476405227713402010346025187346742274045377157627051298436408895781627655541598763514206639581492237822023475303235408968690373331585063477554461544398484652454737518748341928066428420834607953112650575310196195077620457122554212912775648346512294460114596749054848913539174304949291989113508406069019431974078363164792708941461078932002296842048912388583276980808808145097476715651253150372738106895761934205568046086190246682074461060587867235709321046013707128715258426256202217043136474917963670696802466353648302695327591925584862292157381827328839838306380995411428807546841494815146944237051343253006818702501237484792139182006296379376151648920043051206402574270881333619468654175260949762823498312483743009627356787817548010347872897683009474413660422347449978068098958750570206506286263814370767298233224159498452995975184125869379527062991618943805461127028569071309288850267194994200023796122897277070346441771682951362617702008646488199020460340763053812002920203931782258915431326094921720891954425479527581249664626244975784465841803224757281609659339180851931725881987055595417124490276095077247950112747613113185116920732975496876870642252873622256771157006669084324497581680584177930053029598080571292097739072993675618373156001908210918166572735003741899166387312568765958743474544568807682217112322798255691366075844604679419618167329711578967784758401935148185557854595055388513617439027111324824207331934556808014360053549999573539422093388282415822564389497598655852824518183314194396373262871640288390837001422470724755426033033438951232476547835252056352877987984751958850115263568925591884114387619401921500099167906145387923799113051098595907177424121660118274091676182764335391797713452948478473049065356793355864607986918930688923385489785238730304269590975742191601972627647030966601122809653199083296612857471345499219869809698331189803860753706652547461551106532121334917534734207026234029553897797449933981830676035354021745002794360719121804923923501109138246145751898787089353680242905668820619203887081215962958379578511039754312470253150455464754309397240798589542439168493234196496081472465154374942994698733312810467366173723013105418670058351722295031105456172148445007774570826496953537891367707536229845362564147573810419634316236655518856032762887879651282048590236879371525080907613474654340974415818441302110768334581496501526296196167379333899265907801835841953044195113964175686758547426806943648340340394218726377561343699114811719590722753863010767077575006318632910847404019829023695181437693860914008729984677958507588517502348909758030701223212956284506851743990306436301145741264492701644344616025602101785852161971694847316320394296484832380154833244977818000715714510494814404222650401125602638895324571094159040428595574356905816950065678865489012600515016537602152372596733636827324045176538061184657052485225074460982917902336882334322099783496499149886804313498354403853522560544961082467379755429916266585805317070296803705324524029021017588699362102372796923311650292659349602098148263586840122231932212474862255761116930237031638552314466808783989218771753485176323901529189885834973360088004490359191733363156060381568072206972504068981133420671873657924912664652662561804437886495099404122075388656036325704330440288778980479709759959122664414160537767872609881291452552165486192844893136597955087652063435866992560082487708393721648397058559241409927548782900360295091966611320949459435401441770146051096365900196798782030298419448006726840867296913746874613738285351205912888113284825603954162725223065308484531742894238108353246036973447738670100288413032777914453310580004693059988915837394336133490390891502304468505446593311013555681760483988142947523446786258572772875478880213500919865065285738644759330789498830693206931243336817909066500369847330512391536635587046597885013575972881755415994991953546200670513990585700033885672270640784095312868090422667725731025056239390298477820533887673330331047120410260273947147856340984596180684642300547095444197401319132504706642343848540129156185510923783757033615813797067791580290316338207990590044924155496571088152108399844878818062725902746492862153622686074404123272463112383863729263077678094986547744114253125554149102301207689957081569485906199185535422427123065280119949678505538105486356673438764903908686256746153486692711971156222088566472701318441504845048069764043722538740832671781152085143841943422358107520370430412753253740492699066998970618883255021596600064381565635594929102193607339333612949021908058088839759126573872983453721491523491824108819183265052784295989587686351144107744539693702560100047259575564221740122496069741902169011784477370168023474636386588699878495491991556009979589471055558608187433925311106288458043883666815432891228459983501733077153884868043136601798359581122955381675710790234625958690499025107486201695870835682889090910543327110483030081833435686440380988412116411425511250813488354531661392770305253067419023144964695826141233802984001564335350569371841500424551543211969349152871372876403474366917531145116847119126801988714410338866814642599031575334329314054626486464088347241265375968855563834565021138429279973572877290800649557883510880932210199256460880772633989813245840750203630496552586544790951461025616373553046590518381126610474513844736780080759688073667174708851070390793390865043142122362227935032917183023222697913719498155014921836321011713480476165910893630434657883183266655744094507626962909380997063513929041206303608770596296838267754137805500136329296543397926019871819294920301805549983164738129520325761322521215267838579171766286728302331244207122063951702478190581277097609285447053594290544400255422366656783865270295789228779125276218983230850030010868392096718712219466209861665867771680537843755528063941977604896145827649490276228575912615731079914611477982092268276661202864083910122146546715563488695045411714207567980897204476596769457027948077415162631640977321914256618294009993862476168926263549049596256991456556635402767639054501153931366190377572117396052410987756925032026532932018886503533596888246472043091810802325689525066559037224637295900666667137005074222545865509104342339345514639194312251460673023544357343308521440935654785648784828084346585434993345094281644119197473639660033571012136744733888499034405555099434408632599100023206201033181885627634401231624809295040158213203345877319984407241189843934135880048132804434732082334598541424482112314017341748802361359135768163998118997338284605729411131625529303532508500376009157948332485169954944055040918521644223527989754457505797074239371663798302162269919141736336543854565354298044431237865166141404895452645591244099153901053841534875754739346778407274435519697827786218682184947373354081134563035855426176852431485852873695385242163721712733206817195099825442939441739978810870486434037899758236679481467768634344775620960841685773493122156899479570374157127992226591998159703483189205493780317312823352913174581641714157476125515739231317747054242277057967731887149420019769733112186179934846168451340038011633937300794935054049790310780227349906974112510219615117892238080861960643603391205356737272322034445764479601281657042498016765512523780814869637141037444197784751390790663293496430109300474506139858267329889159727248649991013607662811821424296738370003481115104851330663243088356854206307592091747071756723595419443350959702032374668144140394098993114179998676346489970716436914540691697377316344515306494693734738332175718003271560816514294507078371314051706243396078533116478554841648565976790166837577154571334895648378562311702080434961006009738725947883025977616277036946429366518105494113507336714987576539161825688553286139877764827091331011667365785894138534195685168529201475427487737762205882408167526609076367804293283175866941813223638439572923046058257016797247514647459256474901326648834094289069173818826454848128788538975384320771427077577229934235899609577932029152643913697893049300518663769475983832921962720802077287699613862007864293896170747202839094234283493773876312187977092083263453826086168302592295286715939666323142700939474088956181208206634114644343727054609167397066653409577620384186282721927717738794821171699956980339761070535113667192544618495437060340393013612926944570761543803641278608519073316547021717973290173065461393855318449867934221110881726678639737411354999955005443871681249748500562191460118181010777534208112794931917299120214320881724592543390108168715056465657972580483697857791525057201886596752815037578583470048033514854903435056302833117110648664844805411031149419298835413101075783835435758900575036545732426371348419201668987659511547785071410365443768780844873032495114912040994310798555234812924818697795322720291845871383070044680613688794577975801135895495301154889865888671458722462491267566665860574485737847182188686522578909396895595517120949017080061027335491218202990029555430836897976736752048868570127616747605525458822108412832539352506522337714400679149297998013073516779220288259342835347358811292483005778925386503001036943021356474729607677934185198398552000307131880955996557093774248241386805440462595885447132375857701413008875684483337040679853346646577717241517249476120982437024068759635815178627909796728574921118972482227169349613218049185855695352828251410333430724120672907337911240547451944863475702572163767337886579061705526160664782592885042280919591874686390885211500415855065771671344360351762679053117608659964584702796543026691989947583455951424316271328449068833374120953835058331096735471991924999973183615706208766829487726455807941505635785188941270330937983676357337347971118831310812256642697605230731929032095238893278134701808206533382333586078017792023411141554345466360693034301265482426933671765346533342303499228308703495943757106099713510183403680878630685830672196145964338044861615477085353819824810252518767685831042178724091332991494542977846056971422903884612033943740583103041479106780883824531131608185689869336697295924223744682502256957312767140786506774053587999731494141202439875321848484550667285670023295749663355958792090722498268232719087480212070070058471629305209888587513998136955533191276119154204031817199107999734148304980981836619405152324167472500390311287065183874798359575189182314570826172128229291696278414637190286556232211236195230019097004707817361683969698089544622505371156589187190130946267013663708446948294850367178345349769077903625857527435850643586160947256416163797744279078682922745678609579302489079784583014852122021051746205235152532958869765785597728737907558492880866280849191745240605946340915536248588834639619247250706708465860996747290439931996679951896231245591872409437654362461198110408095046975850647127143765173657005585024101622284146295716678226811715504101688553078270282997822614147763942310549950975408867446526261937467872654571833379431188531418010332996516967449421196572129161309691280343412296971423014185284926040815018190117451731565613023476024358149858930075591164988774499269865750414840319723459255492304653405231057896367988059163653537448463160189031049523342576170213047312172298216334673690955352937772724784778110976454734199537225258747489043112367607335738902103049580001019335806603934234344180688741362427257108040131843262232803647749777774016816627564746812612985355239917456065010314448186509649062496822803313104776640875396806827710582824324053381282939872976947704276636087365318826695062833604039634849542911224550425393477950783846014508685105220213795468224856498430083440488782196238709925405232399462456897324984802198974454852828894603653871525028876621431267603040544935942147934112817854818226961091244228624435528686075923656144986865850274746495545817410567458541350579305466766288975205744107248533133559115941267678988498773587888379270868042318073225477114611355760688244911478087721976375217964287241051895385739420344786695872212917471470319534080335796366206730013581372330855319589604306637827931055148664637135577871758914205527566841993746545265297226387668837190829914538862972615230643884841517332764385253732460478561670343999986550668628098649037285170706945360196923684335328638600594718531087007533866747392025280780665141500992886116031974009070986620406222595174601095452066161081679872338182670427086025358950160338962452727499307878351278413021389557274288754504958102323127387450331746246650618638955877132371576159921767117364528467392077249036078628572464979607746867018900873071121992277348435362531998461027641637109275507995394160449475711173743219364894192056514137135963667227590889518695503727464621329519262495220671980747172476339151182838229800115661750182521089758148516386006270711581479845784145122410104531050761784795754146444317353777501469520065642416837112485883091545592165401576245601574761565627477828366653952908723607407999547351695300155026809366955469944600428245920611069456568079875606613758022717895385593380266066528868743863950140212771194883681332016213704984887568016336406479449179647689294050089375367491217353380171461106915911894033121326701167264515184754269824442016328007901852249539069310464168968111384663466438604460669162945731804767573629750384923223330664306518717437166640638930763506746398007213595577066143396067854474423281435126292049933304968930799773920501205185192350541701619176176710839499227935099997783314057623302396482717457549006138025297246607280910252685746106034861659681932785438017795918088967131781188073997541372952052963093889444403979349945651943050059941065512888784042206221127077106891284771749884688673821127843166209194962446638180659712946346253583576489194160298872788749886992679222119959467275679284793728311368249326591648776702264241687908219060587981282444731764755271641666648039794065348896085691267932817121787708896041145638718260315252830893744555142548236813355317239728752135887279581748579913324014719928111125353170854437667718896754058771445571330320716384260009490367526246989099791694330053474448066821694224902896964755303529879099484904748238981165312274504766366210943271615420860166593105424053770247094865585289938212129949929715859911709686762767377127456516832338928271137960153622234632982173957290706801165800773123063812942100464713307376078190559380972257649650868035821318017714614240260152332582649227995508340106796303468296274111252788966431121512707772450940076119324847548074927842311529516144355178480944070497814164310072268223213997971751876693841487305799824401959382835219150127867614065811916315980713471646425628679415758819714590939995482931044901779434235139354514923357301605325955116267006282920279758861835310916020053460287323162779036602471005235624969555564214992936642868179973973202747579142505621775834045378711225262594895977857304793803766125226372047683590988910966301283796980498114300316973960639625695322862628249614272669327115456395426569412940843727710710631349754179457247523245721764262552671727520310966059201832839409179947902076998916564694727483990092065358799464045402803829863329803335375988986433717315709331155707531395659426763035577259437411575875984252363864414744872056470867986147200213456127289847206663522179985067888923623180075234284478095929502891790815354617840113803365105268488764928145598542314466798751671722257997281643659044310831612774200921343200874403826607206308894121298201820584758559860526171790783314859601095300730137379061388401764244803227592028572101106415521062558308856807908024242050008499790268421375269530272263808404616247874344292751294816792879272010575387737609952342249281436842361556493651775041814926518684130703756096214980169302265157956915697536977029412704877483701418825646884649171987816461481465399420547609844506981968340774088211162236558805186272024056128560472065073830448184064102296579076220010071884061634513625728862204375396476545822079439458851822612561206792971142222656465472369423628675283852624120542754806927742474965099515570168783502441984856215702927052329145202816693362067999350920942475033497428294008194510140083108449200383529246970649673777951159090303041962035364249081174969334717357113033265457426578418709267549029181568927637594383954536785850558067009618041446804170846112451229017056213176149368429351575421394930700269809965939477358632069804783310072048013104756104659541816467240825367308469954503004972907908852689060794307788280861006346334867079335397308213539623025848427924928678823933584770640937634193612894600281500619474764839076518784199829949129720717603779506520477417611129621987456363632543349370510025281698116592499573999514510502317005714196684600405428477779889076727119497290120599786278062664190974409839901539564316097015213561276799790293078430107969119476943953346602840166724497468136183222790219083360132387031076019090275640809910074912028868887990924732481975400695175906825120034617130751399617498344258239118184240699123422738929290005112169981579816477816127856418723568033794180438717791457186116555907541845831138093038595377927042353081820729870222256752799717736937573923673549615337742046225124387562118180165918911011214212776826587510506808772546560170541731410044400525295665174518372676165784667361253212234948070621384695282341719243617094789186501593309491096135528256088679892985723835078399474418320584929964868726760231804037642128662844653134511820471620607281750429112213126810560265011168032920878315393746397879248973122168785080218810870184036869968067195430180545743608486938056072406317208816788600459695235720180139027917631330232425228276499234243094090328839265742542798871403888336012970471945794275522463620326685926322610588493242558981253272480301568237141107363896174281689397229738817118470510482731964759131381137244224284512459696910263490420273094800853727435738637347420009483703569102122382723638091274139741483504100451563308617068485514046665116384835665278035245247969412287699834207457108902790018679525538556842219875606778314807760495226766033332098990437627699087996848424262133622557256339378576587581589673975451615024209519064975064565594534037008637450910650442733370169850476783520029480751354418044861662970231296008878060600080737930830739378152781421193962003351344543649100633214041196364172390579989147662815831114580309574231849074006003811881463543142474138741374709572713309880394383273464065868440247321587417267227520380474821322718010863946108493909339195287151575795580279012737864863159770394737616227647150856372615897062996424556377769204974921284541634230819176616999777951676995682181108105070230884187504954638144799709585134604440545831651537138894600728427287213261149931828041807956579589109406126710581311101347505704227313921466858646803824846484964099572081347385109688872106183735944562587510421970001708598549890310556751593668683863745228945016643224477743693707026747918147225475946817191898456051326697553231148948325650369539163869734136845246181407519094740166713654656073881702885967527148376064035145722481583102754785939531048290160368527021795023789195128581555125559449217831176022075871245742299527172670763234113135967469901018860465132789734348416881186324613012043421822481769315540463068085918733724118583163460307789081110762252224718752990251606476630797077237976153850003953717490959208757943498790344861102282775013622196401686763118010502690408520382324741685706918060596099155380929413700401635083311560782818968606471819585443509904665511264867830821386579307044509041522359167735480213506620877510878914335495911706342365901660973270760705836383592694081022324125969640640849896492498371895448689386193402436018115545890349208525166717756252423041073905196110087416726045458180235587953618046779499964474978518645858033029203644084013369602398542387304457953954861050232687906397505660338072637663392991220843792291277450599411745148272741616164628218356313666374478159299522484120471641403694459936423246155608146045587289859455503031610498314947537158955201896215725165575836142399617978468090124898550206108758349124395527248798491733746980188514126015810268395280622950037582481444880237892418003184810453527322775293978364014179098465593950726481947706822435934097300459290638612210955581568865361548563537211658909421878187129866636062563209878798075237437768055857789167549643003582350236416332823599675880506594346654019228787797551794692725516325813145179263934421641820235517912239734304931460124185463670515149712190992563759324889887851437440932793518517571800406985417325939210696728414123256520211378445477921378032514892947365913219489356960766016555198696264322117866811466874689483649179901613047424602816197762646209121514106894519335282988792900907712362018803700902236790984936046599730810920717144285372031859526473250994998160652333210629537987742159727424934483219601812211924617598186306516625366707518047336842033213998381111047863253405457641194740775717137445314738496243349041635148701368016628751965742807829922410069727985900996355443679033926371104037447361883155949123264967495513031341934440675295011463893327862693027342671250350893403243352563449280557228312769058426200726133664231478289019214845559812798603423859330075246826801525650115024621003988331365756375653764792184071532426163124039883195123024119554829629416493885458659370477524812879269990155675542539014821343673012497010070144681613275705172595150032999490167064565140118289803133606153645070997522680081676275475578243048748662208061458433570977935538538836351328162067887830845052258458253313555319223889376502314536701609788612968108481280771242610584361789326735786596303747996739677623507552334637634688769685409813090289848070349873352881240755458241904730750434946069954336434042865278846259464535612562343894491990952470958844105809387425525057753607711232204677443067401334231091800366197242318545928641036239359223647835008140223084211890217346985322719054601208566530533550689410205541356902649038995887411675097730184984032219677504969809611329305084613273545256960064121714150428219544208670736593034347061504655201302357608556815105378815255963815513894820790562024708080219263070706014225294587636139343091929991749222533192519525399246909780403489892193377885363158276811907612830286759266064086044295490554930144697417866407683944057879692555785945930451747265259610708526188038668882603836255124995770985053522364027152009320001396651018265240907621510200616938833692813331814413763496304307166236338400704762707729478371356796469148076373765520295768227971985219430534905463227169024805755398609976286255960332357079984180387893377051455870834647020819845052639193713435501994769635907968428715336956854950359309880050646792597224187989714049351295113326345151115267212589097340683977403577469754531089536029282802744674557072397136893521198568614395090299203427923854268877424149365452342166935128380058629722405524514658422741574071305478796651088225491479724250042237274888687722034510272672712347269661920861730101821818406885903888069155013928089787021097933484482361138177043482908980390358697656982904556110874074287152582930182200914998751914510248785113846934735065483747861630951332897014595210602998969537092193519347654053769302998344863829984389848178163974511102208986847288989249051441593756727954984066512719543695371753383747382717618469171904408113559732671712953883021178077091973008133562686294831733904095271181935631870963252723066905677554459381657917341971406175511511790419847122980792647042343159006410679122078100586637063147780351719411120790063999451073107957058145913351624672752293209306777480688398271408973549689766556364644371818214699733918757639387265293844651887702731533861793161404580689050688825749213327256327742019082432703163379319028053696325089008878802852206507018646106987930310688129709548667415625699081415583522433475913682988156985360148279202310598847104423148144320478152715749480892172759154893746577538206348693188049241026670021580085628136709278634589983583158454206461312129721667841323188599697520382951552649191442046441473419611169309124296937576462750812799374339116958995697943265767690593943364374867263262046351720095779888445352137446020699001326994881186360881559128559116422115344619672543987478070531971749456061796360927635097480468270679197897784727453303692566135918234946537879091286000145450324232136776602744450925710858187584611814340813200638676462038473075673065480788444296749326400942286704988921659326344631105192668885915136364305721150904287747087438698216752271545325187874137201936857758863761677091535390757154901060586033485639162922893813470600805829826352231486871103990238636653950887150360709887245658044898699247414356638553840670620134076222571592485470850982653182193335229773169064232586192395261727598056245452572240896231733195420722305697669067576078002525379399966810032133840710668470203738716569990870086359033277324991751609203205044436799474199578457167080566018148639798055735251156524421005154532628879206847890402295594693148894298977139992668399930768476821841049654390879740971714648727696120778346835132378168061281703755908737446897278232762749366146906129123362500031861922180898928117270569002121636417390330696947277593777304675422779073735082188226120442430394533962102374784452986988536830146311774245859999604032180736305462231406569746382738095261492362568658147293355368999849528172190165683857231721466169048904248872734250267572550347774379216114088037867685321502702091750940380740945596731698411897998382851295934926640347939205529977413987446783986159623694147817166724839855683478652324724831278559724440686576431171773276225685355217926708115984372356323688332425966400959975999269542846584665470904452566496426572321380956510008864483924191728402008613480736712580480043736617591415653733767577524251116931569525671843679296303312384865101401458379279618024289314736885613892771149606166922733097239292558252442063214172283653605753606779839897445127350408600831824589329865826596012606002828153088579111349110175864221984908670894867801149586620745375517954508122948862618014416274897159145716102441640163873459126344123926849987627236537152480101515159196400672237513925404912607338796783286705497613529339472430483599007177400667530522359982833656328178148841792465112352709799588970636617061581690248047578227766134854833263060279431885049713530117140829748601416546141761556101906415529417836253972460162082118749167747120719333685605276610828142111079158794409917054594466675276122913181283693180777655217949591721601257347748796420164854962549761973606942537823325322416106695925146889876164706916031817080219702110466151969425568183958084226932434385263983608807777906764083571249006864748508936195992043935975317671391158560998734117656964414043221415693505935041726251208762701282232851174411764546504979388988128521873623199138282019049177955738690356095314938125599569244621789853859529817147881532724466989056328308491087951352025628208769085332537918198633039200880789946339637660731948746491896160075012902608238493984179911337203756337518157498025446393478681993650035753847018120724340988947985601072290914656529400079246746621299016633380217152122064409330157803996594441789017853002913004111259015217103151080289108218404862870255007424049082498181945021390859504131402743077217587857581228101467387772664103910910869223461387561976756237013633704233432486136039896733129442006216140577090435683241457187448748053540691919243265408223622449863191924939798561776866505103409087516614627283142771331010064565139602713369903411296413574256929611601232711308383635404150337443117946593702178112671784665409264623979611538802733450528527481551074053997089614283815725698171365521307273058326226598438638620038191312452061890905609750157313516914855039724903865493264769435794204725252845097219683669406061788415590860464974193577721651006313897971026299888870316538771681530957931922679667990721166974725628004056136835842073016130161594003886085175239845628300441257417822992026173190256398081837564999608942211936629480090171875925218419208050850664392006490597450763420618289889308518485884554812527218868807038238342059737729611349505567396098169513773353522850984590549688835206733846548234221684920643352361696275393855056314025407370171462710972309465078253424434630984874978412439265551330305740768725871999643524102772637484064543730894575897387885579770364328506348716766791429582228113946186973304679660856042491927315622309467347790941335268746769739686526495392776947494008779462226402307303868775281868708897730904900871083099561107630761716769142529007040162087424018707537877071370195551202516132663710154409122565127109634799762208920415964535759938327568005263774026104473824720402552366064644603487573493390439234919075141752062467536791087790380755372537810397459402260149457810546148527374325868224277538060820023146532682682493970818594824649544314502335329463098252935137145902281046816283669294675449565367219002842977370070186959558738077753921633401924568117781505288560311748581057081464906627421292634708961332279783455597703179257636642922188252136532256973311208411361438269202524538238622975484815807550603219360616827021434548476507316078662687848063161583780997074111217599362185743669281019408889078302958623550722964519430553096894609932606186200535077015543456414065038377095445212177284924738900700941782925950914696573082907881377011394523500125518711386162447804667854542047570701773931584960245260129584142812952664804579318574016491236888677122530871310232498066370920234010245054333243240122537292735876536669320420521677142484685543872492777010114500173931675063693741390711169553782560257936487366514725320426119237913604194421508696624588823431551369834750312770631532220059958691008015185625544375722352574122629389345206723801525201765595208635097748059676636130412619997491024884001275563593847431173773210244106150470873627044710600657701168328170870205739205552916979148535380213830856718400695248058744660190260686761161075850728063830255442479958736602686902249696852125800102071165404770036143043724269086681245630053389355542269586354926992197736725286212034570658570397752999791749717519866147266670963689361391103249770713571271161865071003251388338751169550703177585666004164912985887929123204761443271461719278586436378199888809131330430003166865686250095635806482546863881425321922641841852788633660351212217871114033250662586214226173161481387180285040833847404296371965303339611343711519693890537605386884563613635220742213703161602325156824748947844129550062582483209524648913443519403072112378259487091423355854637966961205130623390712030404742380321198384517940241118005144946855800358418953512898482257673175066634696376277933647118752580625792939645618491664114501614730357516743901521882546602395052527730409218140976466315853693391449460589018658154204211016132044551175641577617004648592105365445285636575241055532638816243020872825436008689575492696652620502687190972979560226614650054534158091381126620681503596747430623873035416531099519790985414088847200772686502792303566036594761616808266516379336705991377856809147459825815811716276389759509628572358327822285583951915036832801555542866350339282719318791116174805165191891310748896579436831806585008283096896508828200219355949056251897838910447480809923347731239710618458546487471773763572047159952993493792605393778627089482565822025789280388219170779571625120550374712354220535021397504291786564977339679141766142466639403781947603459492506180373979300059621240780597322260622700912909552008331555824768941982322379223344883798808483250348823297395430201204344650335875774863956309622240087249850355967183076077936946976705854414769086208932991481535917759742068491793775720241261108979356824684317781368118321182320421426136431347147699335029760310267213174725319552643798436794134197531543955878094573749861947788830578038152371009798112850621902306147409659653333593998604131907260306216571096932780610889900901454561932567214438610427347611852699418250560240208286697950420776750975008137130060223140441535753757286474703964181151623907211843357244554095872349995006428168023147738667494599402032313843665844938431516782918958923364840554287512847711004583177876235841669657919160249869214480937033058287991608084527242743996526706628513786515743704479958171030651289980350018152955498271100745671752119498380991168755721861759037860872854752017236730016515741923966835180463140961684053092868771333085302794545712047014910597103991129158776409858002265784422461121361221829284976158059329965030089352806120854900806510813980436711099153271484904700152107901856411846836300536956876535472644121608910609000888865094984467221809353775810072393392249119238324897429668606775708505676970469922136177507969035901207447845187653477236912170795798313949995148437614831462475537912893241216968177430054432327924830092943983790860284340384467968358147589042843504925118525338987723555345020886558091950515186290962850717217761575893826793038048852451423449544254397192066930767642555309975742275443560179826703189651950577312427334985034575804536393906856186925837310159662724555436420406646003598720839222133053257460271301426597653551472934759910174851795334007724529808637291480496638755279666858834564187931174266547810266033236008234511396546612066948006506963810634616300387230701842390807470473301630042477756097021186968362351485913390132884860600975110752774436333771172092358204414737453735421151367786111869850833218394764085586842694459122666923641763897038294037849092190710749897323124116079632437842321483478621854112485518599459735731419279288199261145460589005455133699293606773660774895252008040233879099776341219271434847411618537500831119396057296124562500772974747245972984336523778494228170405520887712388281877210647051258060077026817351896508885966799781897673444534313135004150573638440218085897462418057501461608471360937923295129887811874215126383720584691645137441634321494094681304248735923931546639801547984246378125088067954694846675105357676685042777147182239119453423711829478660425757603753402449471012378494237226218577723536082498005299597446645072052839305123887839277303884016035046567946422091479853201346173696847788904749062095521891731566838538808078700383523046918233134212280697875046820134374273875942445633526849837056928276531766161391693646010787702643169921990913316934660215923088071388421807109450307536938085539409004805533938314069606315743597076431447498639011423433088229495792123728668818190711248826030674146185290224024235178010272347898781505246074157380358796321352414864849765895936340953296641071082339774727149087473054165782024531773918557212960681987141730596313748763793627388143846316125688636071781067822142982309797076049499868581273783468817543926293035933039039029268908909132507488317717572676963332770811400440126940508087354601047500088978089657441792047115862204152993099504691887604967199194491706107279670664072403790847388957345478978143420715831027602817271834452145449758020089116582581961085423838896448686042291155865433897021110100478768847464764012169345394643778959407008717965172325218661856071127668010316195286343826723344649810764037844027614332712276344136003811546646041598606802045065208727268979213340626601235876831005147536505908413780696856980842125559873307129657257327719563384318832704398738121002844592014283098298840318121572914588488387916312966739596868396033290387786454578111300085186157863542722171883446374012307921011881014836304914605149661404938180375757299412548864030769123988365155586098775753336876337945147564501339729420655149570030901324456241050613962476627440916240646913313564506857044745388354456992172603165165155344823732833927467636390882018371169697578766861859188772024907998701624307915212986275919669570191534644080437139766442324285450558683070166248840533087680064777194111441993215991031364856062536980614994808585763492213658015956370265139711117418635879391927964898875643959753220272974742078377969238056046423540945545749314424959046962224639697339887353241337086762209915377193372436350058831945983740137366615460740424989021572715333432975698733128709917673344430390516290352106733689318551742947253280241506492992135207349417952989836801860744361256845357496755388640167105096303710351806520857318710223177002253635173446092521222381265361368806809639297553213606964239510451754063047527400357101186124363607467681461988561938694534471082123898513693652426908697929989093523820950933511101270960826724206099287503312105360588680169404460402184057910418775211854868256045103396698312617230327632880025207080529864736947564572742451930531918191313922628945293177265926931371670629526054241807645787496973724450368415659356271024227247926888809084952921322749701636969072057149911704835237996089591440035880335331085858474501680590165652257855425827999947299761000402366469567293831162423617475399949899242639300179717492006319323333106099751647286158975535628847403463954281012285128617949153694358729332720987477103472945918011661960125509447384323611279960263618603266134335880441836939582609324494066464682794264105308510967568927345103286160643549053634332046571687012237694180768129596845286855701758207711643798669559312459754429802358694988782670148223353209896011577477468065809677641581056601216429478807958040525188802692304013042710872310164519674473908273455621732036764359677130087939585018207306795283034633751922986266628649731103641385442749815291977978610414081383285255147433223881424917439257581030524298874823088394413454348000909943905747238772043120862146278557055472054940283142402283698846187418234103104484513648808931176607918094827827467099798211951984233842871471144257706528491719018034225454834538758245003551000416563060868408928027283925797999778692713439696089559362138971643261325475856633408207975134873344129046639093204732741604124229133516257595684035794768022611370201786701980096636210818307390915947391459657051585794840483943511812730276468625175847496867500802176163129934613300726667474251118646008976787454809439097575793614873214788861989086985260659127626683057052849229715685431575991896780723246359181591444167044007454921810115873038634506397013073395825662838072828124206814614303253327948337910673558822050166900503537095681823254688638093654943056189335855494223739471840584562961465832618979259435378649048860528309001780162621499580061283426777383345591193605196183686684819624425977528173007950854711023989627012550583842955734358747104986177322196214519063509934765616462098641139783745740640559238309857906940275949770902540771124659663365005062372583997951878179671518633966268599486273612860626030589316363546855922310673252145639990500376704570112558629161457488064791731144300796333779705151534840623329656518112851906172735487086291129907142623668820387323162352312216840486683961643286047168564026091067761969476283487577019961589619417445368128140842402566824739070517424926862530919289300517555301026019967019775395786404389674867115624933446623277263429464228777915723905400294327103478163390383442279371544954327167530454224164917578939192339522268333044189662672639773808030378250027427877700570109834387545547177920953144934685760815248865902539839264447671588012060194086364579004432274032948310878756179355170480909718634546625033495943133350488826610696534316140566523601011061403179776210734146690921782741613220481071410964668370487885187685690413600299730402215213568997018927986800776579939133046833922998897890384059923533774227269301585651681445964163142720152303030522216985814730694879131938843270159664521998478752101164116534918869643977213517586920892475517299191467960829901405686511688494705615401103271052294465343222759763098608155531692225036273787036883074735010887278477467286044211804435569126144471715755513951995671769645079176623737907362044071509209666757736492830773841385845601606411313802829928535208052325949409541062993189603522682525543694438711725152637635662420563195042065785008941632233981175056410933860606954499574527989716591846720737047793591454835358615671598088627031812979842311843069614220227860573234216365328166396118310659158108234822670019062543419554024479664395275651873451073869163929351286927810870717682485015333544516202321979958929025781586225488459827221716726856134235805186598420802232638921344567475740469399662896833754009297430410456418765027745165704410833628784870403714402300962303145188728690988910486468324969496904128877247792240181116041294213691764149264479275590681219417845947161813808000524591673768237572957941282098817125293103829509745091451568372795226808000120780159632824460312808758470194982609101649581131999911402550162264149184719410264609831020058796343864053079668851470334476466519644148212274079089401235515570520871344904532134272139916589862469640640772437696758749812202115585587112236657099907084902780933407380377810933795629312432058966465223105969700689774209577367611817734121056312846874247839815795765108801849068397870591670229189324533553426285484605227810540176472467694966503659768595941768537325701508479307743494913485525491538728322795413649347656773491777823828867549337106811188580359468782957861166117089042977192897121957232379705240709940597507190875577891092047104721679868937451373395105749218973261684182993751825834242673914612317437169713901123865605531979770887785720815643544474742099304466852410823996540243304459415509702149991490586747063732300673510087650407973789179257183103160372065007372848228865775230308147538863394325753739795784651578563915664772218059914889101862846416548329025243809924290226621389750088708232627054568937065583722620513777162119469339174110346392046184273619950385555263130041646844955020780633383254907529044676231719771305372960458585668714394238345379927501162230669617091255431158033281397622837227754701539876447570376918627409156463160949807712991910803220869054731130383724566142482230337191162452977617752489512460178343302292055914967567955913423524450848128501700105106266125252750657410377462137784392928415612572683075646603391933698640553243182555474785049772789672489465355981141607923946654598438884565681794068973913170245095159223230267819482844107604098792059652331761554589569641240637479965781563108223939307473954522275506832391641913708251725951545246594918229397154346572206564148396412814977404591115696390926407593834271599862587747198997404414580219006037105024035914184192033367544530510656040047472464255814754687358175337204378483586514769187820956581798953737515142036038817978501973712507416732455539502302789890342455411717790213398951579570782182160338953532761459201922019222427386200446260086177539993160361018907871157992095475598078382288457091239054325496488073325831928202070252359130769124678357255099586389878443726556214531602265660010704893168923572233821547616717688427684109495097102742701650977434930448669169334313013538859719763929647776718942006179203122896667347601736338139357677767853498549483449131987055894862055794010335635798572888416234082955721868306487964078647845723646673951128238681862782215825069101862591479426486336812327915727655606973210705062467179775201445445505012844738434907162382862662390386608467008876326093697991530504638948572610125115132705582315475161275340110633924838248496690290700506474484584686723227889240618686268366548893975461962430913973556736381000734200503065379945616964931681481992443143010093575270213155384441855746392906335636550316424735489440395190601062032044889580893531146830834427076265352603960595424705803591692079771380816378924084279112312325191451293039177357475867325045402811308005334612443847558349898946812298180657699808557890933875325817249375617832158081860581691620293217062655023445793593563377074408072934613627449662785635088896693430477037862748644256111834939766233497195488863683145612160421731105167206991575089747729037566022612342572138829604597645102930189415196623669799207880622968542642659685086249822454390969003871233745155109675875860612764076380335507793858405490742083919205108979684500828511452632947382374759793818216482454061664489296597431683767745740648111274993346327817239234037862193615155919700868522151106422913186223438001687355039871761291637727484110280877335412982658119860288784509533340083643169474395613677362719028222690882643863510414174081846974817652643259823655070340300007230243362224249368612408429897735767240628766034886070096853105447588933733003168948631541416511803707338103234939765091971761319113806137420778141813136386084954873960816008641043604696782083950381908531083189563087965822241930418394139223096900853919772127120048823667654909972164322836325455310409157290792688430204949255953818806643055245117434442689862537396822724282736335122222799925927256820435708414704457243246781164322496081678353039794175162714905082964299035959485114160874133416591441830693473362391084739938228969389593915515466384067931892433567704600882344234781474399354636849810520891286218718213464096925601617577363865907849136488150125142771972941408831269630311217316758600861853142899757786093882200242406101729455594388265355952359422347635646153307611151405757043441222977645794304229553380154293570463958493520696973567108544139366107081195078240282988821517831680823687688093930747624979795192899377643638401294728421526096015633260368650638908657737808703445324537536035436843364797627682888336630027306351404647607024228992541763874696443922010491308763041025436379316059127446467740565092011971059317733598946822638625951990203859340108700725919915992637086018706123165965647733601269348572269567566374648474166471501306037024522406721128387492067825727070931377046442359816999698694448004542798137075398336185824216116977518700622205394987204984401341621592198406809820082779862875091075965191575180209501437583037176854172310163963823473313242930978418625801088334745211226383857867573301137531777566237169857691781926249265613759158429640652690276839602786452433332595308983434986518426677897091036574491872276285071884964982422277966899829386471718180899982837699525073932865704150542593358779000871649113615960231505019707259215111323475299371548074184149240829278141193464299782163111869550575280488519394919972688384141045697517229720988508108695808552221850726055397062510185881661067734435782240799212367722458371513062000094140009761429448168185509725884999760258522352698885889750195185569531501537090097188144298764467441075788795178459347239340994655696594801855117702309388324588831327889341530617707203529255804927979956259339534498219513745482006942834783322758164569147574718173281264253260126143117955825394529883936528482152271752868589808940779943944003936741689376100868910486942614110537074598229255505029622937553150149368571429581292203385673360558039906679546478325762060047372021520986674186163591102879715893311782932364965972075742619562460710650820207022364480346335085701046524904516802073009262144558280435526839048039228312842072123056646491900566207931863448789889736328508125242909012578423388749684002701541934090318649023793023281378899416596481938665641151048314285799028200434422997612102585884777439211613766395833716153650834292529840655706553142310055614497452583920185667420754217815673427415751102080168209537914537845315767236369462058449894057013860460671786506268004914797736049873501698486191399893214608728255811209999422375960821684389229835393367482660160096571541245252055197733852800396189497971749464473354652729074717353440178523497611381718296517391507696315365937251731045382700505269367830388239862355688373346813914672936481617316331248672219794344964016109628467326046635420281850760958636033844518962623285381948110602384393697414072473173984487019062509127648908393027417830434037573847587387030192333774799239239709534737456291537720036032277827247150825070624321733673302836577050811433696822583478859514320540271047077691953957078971809245656025780528744350257162808313291836431207661801219198878267114913509042902559730299921079715182216873610560103426623625348930738223384346716679848523130880445626045157940594470671067894933762303817009489476078193796468189713627503654100034217437745276347697449226418230216277941439421525245016023997366137636299352497207633256787627084154707568187730526821056669780906102831958453693303657085169829488744059913738283109899725273614194666625855020419455272779851463619381804866844923436700277383162755269605075747271874471125365512669499846891276315923399705214782592814534074670942119264329651534929816109788219770292373593447521071369776616869162461944788682042079526779102516267106737104211987693727155067491291253067471828664753838443291197296830336164849094351658174086423343312398774677336377796689545663310140305950485050710107233217327951628853696684444251845499383568320414989563160653030220126593350107991741221593423388387494001569945019194723048078503080736659875333487576744870069228553882946844400100589240772293615426645004884544539433918747509951917955678817000983002175050928046377204274679386706892161526498377342686114258656199829111082065771242608572534416271789181100963048137800558564170422611886813931975739412300015704613154796687510395612078462517706738657208883540349469427658417585534953081673486246851299658299795373846684955100327206522251700608654471407133471658044725058162915885433876584375722066867929398400106333547929011263161471134833820071699496831553739081638421591731359975555923387150506084125365826401486819085828083667530468638944122511452696433518885465230515958898815097789286281785216152470066162093856405205166200294099442372557261994569047847319365208445835479126736372116019340113261676607721934740102438221513534063186298041843502256029321297189903222141881637251274475607756048628293869157450424670309428795472819628394659028979373315093320700073383608469251441201258306721594021141845296398989516219112625908300615483202637367254504629676398963951447274704378813460594897064776053872288860564552353261478567203053963894117494745787178180264813698513268349146178831867991667322590078554661622091409098544049867821917596616424933514503709191897523764248322470162613466110867768353471705588400314737890395652154500795720660960052905775978455786692110318432459321871381078670951727526370131596601744313079479410287684517494108933831389432039699308133849903750217733716819388085244346663672264697553148899927882772188243613834093538801124594960614421599991172461948243176713808344623432707422269756591788064895158072643520896159315438877125186942689398255481574257897591459269933293024124625477398970291632202307005894197120239708827593607945402031056093207165127523914835236742772143359055601290266838910502124752873337134048250375218069629490696337576432951590852560900445239962644654330254330089035424707220102334210040806093634558534575193541043666184168147905944238620468543723373266050460449000162514582717206611107428401036742866326472539440930452700625074473081368685131963709630537578993274380567922201617811579972733151587142721177748684137182091037391552482796307396143332806841461530896351324053710834106994768801582766595206379949066954552524208653188922684637960891550565369698033039470592719644405295585227955550518985251880947397277164065926756293882331602398843449143768778072851756364970611688918069726156667545869257031496355510765862920823860899678631801958818660495678391045883178959082997591761544205369363576851365155941709854577154078308433700433507183100902555290139684095681241548414329823264571040538316165856465204739982175116702803971187214560589941668893428889012508985983731263599241512658109869571773449562044410192000869161881171679437142950729524357667877136220066149399444997623070313860792261107046371456601289508132860664091296836864916200347692113253650796080627749998203666693150772672375912354780950764402959191841281652447546310403727129196284814871944984824475064416590126850696523044196409196654656133103384669907212625511038378923452338800727142599591345259872581342565313720750742267158174748410284799316489565350822247770408931678182554482336600437993292404137377845565982807770218394786242512209796001176845176707941364435643500067194432820805592736153414850562432676879379663978342967064385391243745496570676794925374061221811498702927960392665888620824107335616179075410203639542524492608092300880713732217681963902827936460280829581570806453983533222514720105244286996684109468132103675785214821364676458603044843490742526758386062971055928718330066991924374526442792197499559032867734072081986563638120446532160758738923466318428813307919558064997610142860492769380595138954056393599737825740546547721963773591157267819561485577902125857529533555857876612278258172634478615897996639331740029293661128335334524961113583200680738147182083002440886600209795767093008045334491579189847036918888976555150460183472323447494700760467444381234192023957956717464219217344789394742546213894180322381040091900078614310726787133536072241114491440458786258045576855594901049824824767146536225867954327027585457111651175345677016773339471331874526914707862854497678337583595431885452954406686404785995667097621593480054912356981868967689080419770687791879008724224449934998541799780741257648154335228512236136978312373644075040242504192007014619261732859195347518588752249435172212579937724081411346236617514713739005736413230871614509653605962766984074929289798556724854243278811783421839765822889670176891739880422256530763339918162500905584835710436818138797427616649959276528878157564249337525328227048657451043148173312593176731843462573532669624836118088456204898548954616498799727420384156063993453854067822299269794236871729416674729306118465876684716583544319769422509892420295061413634359954791400253198098114069271576930588189530932056284106037531625967121750369953292699373912986434746056024805789297365976145802211967788002567620913441505804069817230978161639236507924165296559452401711920347806404529403580582965542923697071086842513718669727186768529757413243886449500235365185768022169970786765788451970808136738254373278831495289552504714037642489022300123962181481233631000718355605300666186080276413783926987612146725969432461434273357811327965786212381344465914556895674603018413608417586554951925582874163111886685731441860208477054009097340459059511840113235843963136037172056207158080743050261142864956009835357578706131874631671891492447576173446776625834027914197371139911978845244441542145233398163022257281127171018551973581489535567176227850428156734097043911276796918458149837210774648908840729140726395012515243409503708472358220345725682397561297221779908728253506598826646950317413617834255469091961742997122165582507266600332944477659343795020122502733843139856134250524377670124695082319192457388365225592490789849874616981532187560289450889618443621702873693981114171127294755121334945771595544355394336267549911095676548912520621429221384894624848822013455741633175457625943932892404600931709458790048780059993652705655044514989003058042421103053014118360777315241240169462621455496109628076946064437003428697311659958955607660937275915223495136541631660680938277099680094092266762296714591287308895272389625398950743313041663509590572071613041441998123940586614100744720959996725443253317412183441416780574376546260877488241432979016346608408032203471799519410843550685862505204893732785370667458081585289238221527324821516087120382610112728137789180946276353912613170735240778905836500619668058489296963727408295058706907615444422235341052259629090428448949218239166163011213458083082743952907032402920808019386224950727759809557468802571318931701359414029895204224456254077812785421113857944536839482096928807392851279624028718053328664370574961277092128289580862328534228079526597783910963104743943875470208554243172625452084161791628987935939452604125526680334807122038589778927230231960538074724503848902088926853135462062534787834470057011918818746492378619601910795879532502077641906033131197175881050867197401219449149445400178406788724744957280429554978867883031216668671249179426999756049571695094747739196222848072302473333359655722135536798341477206202498831782312352290935318092218577205073928049943804880300782157139645534742275508884053524936141015451173622548452389718710299711758985043033701752293041416114300939159653946713304157605217630619413861298935903394426815546563411629540551898903365423704113706904349125573470538434991205792179596145911663928136810737074459660043208875820423855524160642438408019131951237917042402524792973255787407873164650308596274844244448659503817674282222046078324870437913772462920481672992889943134247039545040893305398052785488860688613386224182129497472636739495196611302392150405696388530504658159017658731433334716097513377517246856819730728293784255330250318752295014447576557648404340763219013823487567932706131038650176024717977525253420893768954307661574604268367666101852217757098624882389881687979790471899640009214596033934762049559751888754890703315549672305437284339712190464757981522892352900386548121338818747217625791357739558245887052473196844173279542494833645921114942459481586119882600358355816432731383318269718685178752031561445830380377881619300307381888979662171622661693565957557838984993947192869377962690238010535288070691142310529507793881998861860467323519916095462069970283530727127957324902964262819187606511283212647245448289544078351884128540039020888969434160198656471316766792947980230319152418118250157502971934523242495275533590868307312077433695698531214682898756176204295450159654782719603979850479052292846592615637243754656695226637925109180105653250559003198175957220650537927808951208157557774657386753955043788632095785420614825359548853746072633962954869382964499011120179704888453238125156229983360682167318514207199340150350277947193670811262542386805506913445947764806284128720340193618101165103131214429402819138646879992294166878758950647375725192439884768052664888923878471428194629762011454827908202718544540079029641813865400428377025866702528523477017133172790596258239483605492179106752903680554475532891970738683098663185669641817411479293949061163106197440006159571309166402546246760781451060063460130640420491245323539743425227684697679473939803317003469125970008240705199864793713332084858768456921959540759423841280477632808421923906407391176767961268280150497185970380920241833752058599046075315395811477656437649024072798118442582044865741959988344730362924005148171102613029130274511600311008567820042529518627226116110838205566451331536758047087802209934551980215395616757978135357633387794504190970639533228287813806403033121484708007823884129028913951087224990900574154986742451437140776277023174989566877484411810923379917603240690376189044189835023708972912729049573096739691534818616155471106392183763925975616711212172907665283427833225385546901975305662455180132957951456738789221001008321314249530574642036858726166922068007171022642567085731249259400245423459249209162248900592456725941549715583621121478364491669233049002851872055578316470112176698504476633146455156565443832249573917895873858506708970900254707665795741616608194720217945857450072145570111506906859806471661064299806442256556780802381450761753363500433503855699335315513039889416253200613510351388526725906469519564378247977840468956879311057205237654146231591496202507353043326786418567385721396678568633094008909872723237529866606925364188792266249500712507092407115899400909548665119627938462514581593043512262083272006093880226573555196897472725108958231315234938965940820792671110698271659892838441692605941098094569212242502343586330430731918823523906779540926628357013417724596346471271537088825191827564883735679939751409499241129775395646827434095663934618843900636452005850233524228248170680425816820878459363519931673239728761190082193044558528858047316245274204282660297400726204125802052538269715083314556470356734100664632076353398234532424195272711443902183195795299405657169971696032938900526556614635602700763055685760286489371292995620776126225477475463031154252724058153679486365814842984742543052031153927930506279152513078082169659552202441028486142119047613462088771893132316600094025047511536593929607532515024597773756508368380682222065653896707109021185845450526294788514323539687258187008912115394249465568534684883048308613584942546354487509704844700058531219341414210305554522841906221887238517767237495167531006062004142630813990479070604469294890884434086564159861686410384094153662727211971457726964313269904110440091605865828772354817837106739844108665723873387065033205335217131159422524128309321774705989452941996868626369754913645122482640931510726532744973797079350890666275268771292040403769822603818684000633199643664868608844146343737123925905625587222031591749637856893803215321890506773063382692041249434421601079929200140859842843168849274625507634746503894256335599927262146292357488679319892268984469001881860992300492783004921088150205410865299098820713313826428423148725919822199160753526865598255260701843402185254952340823870004819391259356284377635097698108302844435706500188101391684478987831640355254134566713123237109799772368869579095246147560900654945826224248825043400086509199499554241186918991618157404927975095339689962473807847906486879662253855880491000694425578560002117817411305717272406227113700663010709806390526489905546752629088111525831821979130657108036604470521294070532178266498595601421621961493695802793449688329478010639773739089935725766203085510599999736030917303504537807688934784675926605046465089483390090433416386204802408144699461636974691217942675605259227390594979081414821264198276505057780988296567405761524536924703910134358694547865092643973512747230242101513060534098957760518783136369593870215602508187437982364604283080294075009174898383627974397275475480508040551595882695889736406438220252461310602357845089159110008450917833271022415807870179318839816537209506268453063551426391301355062496353985201564586371117718388119287423082264514920549294614590085598559118881983670550818190363214584674507146803352166470490572805113748659189787010822096051009205925548784179244804258671549090982267376608224107931384878162396804079269884045846101378013931560100160155597754003748029456736175286545293586434082084492989038062545816390092769551312554536168576313001664551362796447542205132428767319130648708592667671232144346316969808460207098627597114337695427135626869201068322097150492582147074171974702909963222347889999116492331039060808601589647908981616419836340037571902529501373374283039990809268444619721956363724003817739000355152182154823563666315006891725603806755819659542210334706468693414658359007005898623917604157530664858842453940544849733135375091081300844946736600566196211227167536434881123760883841489962281093278573223929786381808943125012026821672042765953814586525953811829640295239545896745651398148196221764730085480141610341056675354247398016301651898916902940176167614099162714688647411963710616511942504562612323012649667930862514293920190960229293576053986677909933129007315923357495179997806454352719291694179258280500937558156533528332213146648127112245755399129062405698019874258978249833589173996645619112293006944621585419800754187111361628691358410747921815519555307211949992699711419040670947503402024349007118358977465781583385847032117191036432323750569480362138981967763110259419780254554795221528746915841820375072999780667251747421086874886709482316654919008294097494764804453471843421970263170658796531292199125276256943426581150103149761141572635065577091561537503174438119948670223988456659128475864922347289599669193909177553154992965081879107410217983498864049814902723328322447438808721912496914051273199820794343032857085188481469622954956259334522665441584711885080196897001610894671142736494693734339620244919870898739068410000424995562389399110792759579578056755120330290511068202844353486653191297553914693145161615716269080004544208355197122231361249208735262070055137310881006842138056607248632056876124513014910557333125369588263850708865454980980808289094892292567147605055865578211442632807387562717416277667456589227573911052299952805302112462379034258253026776292016018843057517580484866256998429926992715289619419161875318585017371531850134231554972588450505692346113136561946166032036534386775271621840966059790234871312185030147312541604745893338895835999349329665451889211514162188356194586347639037551007114514922145876733042830303757090068798278640923172474954064906980367460437448245103144996155356838959978481456652412772698503177134816689880424970527903211784710169043998455060806876066815762119617020319583927981213747630130331169170147821784489954616826989904288074930521632001612744787889509790208578481020388544297716714589956957279134869790095300067262135391102226044617191730112187528747447137967079613632028922154285600732289416296455259218894472217021051632391974573786362384453333676162167784289697070448250471075947532842548276731400403051221570487592689494487672291686963640829086334723742972915603808878891642149355173402144099383620623964849391369707587786733516158263695445408276902436534527747478426059363612065671305222474811787172163123864946364306992546374340122962638503492609250228608979543875819166766674111463090340704797434177975123752393124731916653704728617236139009109689325180201984864664247963520599916713128922096381618164354711605742282393440438590409562422735780408962599545524594009321200057468487300237865826108936982686433577166027145678283641104671513435208059710770107887470421212528070305983463725838994349306204579756250666751711497665355496668497520738519030100255088664603130852630315566102793833775884076443272768014243463224794897575716141486253945842153575068339983092566831598369790775754204318000564874699037313672731927700401937170125690667342557496073667517074839877525111715187385486588773359771048297525429064343098634128795258222030834969228860679306473855374868529023642512519149896294240101915691464180665468185989751450067942319808294284461678545383584751618977806520376582634783782448462931560353772553143044753318412915905209928896032117904950142933239073254659844404946735841550568264036456852816641747891631138794018086048949865418480715415634987953411260638885919317307482452540245653144029213059077934156597147002279084042469588529890166380285822942287239591849119197619960466353399196776239585224742448406362806217388572327830562512332518894676545599640599179383260919933094224444516531052959852631549837875876378333517129865279805024419740185671419041034536302063148091187859690128166249318044849239629889267908304728748881553020786662603147582350105340772942011076637567053087892833228913665482773109578667373797196515991141758040771503426656976639410895660608305502091187712212763877240128665012452535249720813628110290676341057816679434088674659881548904040797536675137356765653298520380720079540544482869582528031534210167727994625317372855980498413801378699405728128662106850173775131673803875558877335378203572857201914484530966893771411601543420663658451333159969108042776664111729228571288780265284100216713924928190708331022463137718192899202504983435274227372816138882011134244890607394706728284403614491582140431055718886217085315755203927435652102896079208133252717649484187840825337312084294088986500946099107826363290110597039677600205324921818028983568124950493837439919291672068492601194425751622721532316931698020112378080596937018593468569759003240110749319519169295421753158727017712149497696455515100652961460872547278395395861184044415155101021718407523608706904750460092642574436645301324981334885835217734112518066487573718737657055772860578931026715333026767128557621844521110453809034817387216811587632298776522564546077157208030962839971372376023690882193535317199268671798130255072465026813625852910304345075661036898083396412427292467798137307432231427044538078138448288780355586883500545912076940986215978114021576839919191394396242342472106291892974754220426572261122765241895302281265557316366740449183137251245650237615687656244032307209270288516855177401631728269472693082118883057541570224566909561231871111825929550321763024045441777362309343554164880634451679736071869505835286627854257719684382980091828125810865509349585359389739602133840383862058063373431877783187567306592364829943000795097083676024166859226369476996217993166894600321294170808946926706633090453090089251993323120693490297449578834698975198699988047364583388985306025216860199410868200232216263891776960004475976425188342689891800027925295431927970160748596501492149389994603938291250813655220550896386711168260442256411976115776958783272131000911460137006108473137041765316167169201327763854109876398944300184397753508730291601933199244616425575784182327929997023743269208564733514476145652005399376359277363837082694934566591733072651398843141276094245020484477324444148402483774715005814221718794651136234608908498480709276125106302473730446343174001442325254696956406205469052486201955689957240948918338422823446429034345334487827179780067280446624795558701209365094566235343878754869220600051115339077912510814077972810296787966833351242659611889383295918304544053090871083576720500779180003303159386843927148315949780797711337049560536974184502990545018807993923355076184338795027984400794352577700047902254758548252590738110158434201189247204412246061299169623505471884496714874456548766641630464306311248720694555593783700338064828069718223522020060041842296298466058256698105191938775467353747002755679126934613572912720769406355738970159959724524383063283176293979789687193271175742322970642337796710706272258208152068722063776697210058461863456375441788642272985586839899719597184400721478322615908390335637085171179255544392163625678765378412280368639137692132847037049611151493316283370847875537830651825540330130595582667096687725883459924157223769192703686449960625661975001597086656407848331635736322423673335055474455333382925154136377790182093349270949774888217051818705414293014733062762049912378465723114618929680563746139914224182139616638736056395593106712885882915778948796821590023811632346667088947161091609555555543494708296166923042348871712232119499669983342239779347206708558852419622882070713639575691736067228731716352547109125662952376204684120765222469612778371187979820686712579871124226970988363642675231246485928300372084347881338957914648419570943720859773132779653428555758239685509183937056049878886479770431847879592909948637945177796308056976733236191226429090008269834156748594578888298404961965660294452643311885754333111504624512550387786505980563433338089948534961141172179884732702044113889972029072664089633655808211212778242829273563935349396212348429693232744900941472023651845612030411565029453881730022416350663873841137177641698724604704401726176018063895242074753211514503767657290528166843587438893660998021069526721833949740269458389560479417604081938890036324307055957874172179191451364958582493982260454185269441933254597131020744508463168497085063195066581755398848522441772984625292472295769583577650258968190553286695541723680644708499792579995374591359641354872328071547468548528807868781083293788534272484082187671872980547232908769579865254108801823428847273849306822261622929298030696794025220908381133972921393445265894586560595193247698191524582018052162181892466670842495478182176191454791369044285130984617591290553206107388557618684533270595205846545986039828313584745451158378659423325857843126354795905484066000096784352367979688315615205875974349385697206488443895257667174871687718403965696958237784587020723206029275362117271828788945014864502760490606967793441528577026789716538583169839147208132099299064958228868449104305641416716164330450742628136091454639888755583750824004156603071553300320749638279093496331695171014297422615581540089439758041577395006805281102280178256439719537563447937448512021309900728192796334278005097056217589088472467276103062498498157407970466014757182096237290994836567362832937402787483802209470587424889402167665332612499469633680358053738589365297839064969607295643505106451997816257996728511436254176227503751249895262271252233030417417920797660723157075653933380806673688477696568764536045563142523608478685005673447181288029419972430839319290294392415775642185845474353967377219415412564685967052094058798757580547744067660163077709819340387821366085067911616662143703482989310647015426586124817280641094506031620451225201384065195153596301378314161042638948139189361005064823127752018681568774697320140822251004184843018976497644158081665230434664914811618191904856328284121267998487411504303657312020116002996884904931717092511896874173478113898173271266737888077287294945992330706250190124603603649614469573840460205772611954332192920699062090251520242689962800612722011670184473126954633126957949507713628702141820191879522692831967831595719387917387249920679432526842396881409921731772140660206475347693211856185933431086337739306927649755426648298726208087219786675799860338851927468099785222815684379158237340319564671695585832318068958037778947066005982627682575144951644126461163847440028981426740685374918382335685761589484798878297681853925105531373975132819386819796609110420928907002701874653950468369593399830266852438990020350896097521067246632237281538266952659501582699462473161994346131503470371593288017707351306527340232229347579419370987352219064931820707462517450596514009992724497652012053920677479808837883258156555625066192799628911539969554330519154991388077893244114538338220306596780452527545533344195820056650167505195032713361739714181864437637707283949015971899443218349540570812764185068887563014810413805185667979144107204959509186028153011757944604214928280243739983012719820187023154479383861683051211949795402095129336941121965299154960567214953259521334224927583674067178721991008714492100582984285206844739321969407266618896392973343916507821772528045695718384753335320147446539378349044846392704531496963879603676698264302767813652296589040168772964838585844116582003137789601437509928239688120490020886578724567730645696764862339211843911217153438807471529181422717403178412406460824525199166669746230632561387409242354940267164781058532362018207144438566216828693350584709526954689383262971975494552357517327524448007634700945475025787382348902686738352002598398098592381696196097950975048098199544224714920809339952318503066714596576107882603491259468891329242874611157844162255050262314890500897029994066841470120817384716948629026357446991381640357500427142504637557863399413750937562012145483738643514474718251576281197923987414829900917466139687511118017425559282481627388408901587834521615526246926798286219334034524603217706103185121641423968964240932292136371088163481662066560478930891535805760480765355849678923148001028125704991679609276157161368303616067116195076658562272543865769601466845638751627635758012597305446638035123508898394425278594863860016112463958829177125442271671623149428754889765694878728103984099298883246602273076784422847675236739410996183100137311206946891545028253320670459336311260451075148581719334854646970050520646808152007703099040215471019999925553879467552863410741913391065300247255155412108933525259153554790201025212340431863016672725720406084164863849380128616364726780518489023321050527382689009914703095914309212341081222957427836757429692602232599696157444300062282217259562984687929772944127534280855077617802625203520953936519421335437502098798571858172729120363012339845352359802537616879491947359769123640691611411528023249826692291228825310161035565561443887192933342189955183825235463308158204980237103431353178448995321497406187528001521102015118608532409540520327594444469225237115774352509682172606526417087783012409884173566622002225910774871152331770220019413345837746070651291363767014791103324136365144177079782011902158359656709883786486705156696693941385711327652523538074596889771433945838430241143515223091071414457064305163096757777256705699510868095761237734859373079689368527192581112754310213382845408270388691501218119799510301921568954733323973709983446162053025659735440133185529325516456315957492509461044017261238750374714172750528190569297727981601034158089343297369724659337857577764206340628101200097480079290147726327347427990597754835441103646277202319853775141176839529869038901684381886768631144741024623517425190577632733666942795643225053643499207751700588440588316348748731933744272241302105555994282172420203279094234654910289849604429369458224080612740071434878387970786369815830892835126944031565314015801041641922069226234467023192894248513762577250859117388740666822009751352236354706466867859290959408779312267034763747302550432793668559420466569284533131048238235486581884726795365524767171732292524695015271723606227829807217501027300665231322224274731060278130928541963536058812335283520664509632916410178766153668648239819340860369545079342125934391275640136882069415071196943087557418638760297301628444680971477380841041648296321448129235786559876540019078468608258484363429586924833310107929685171873749165834918597782056722102208904899699190659410961198779598599427439313471052522244485492135515039322036873386376275096702711966886606528283158655641747949379807814440435043079501149722103604658387056242610815859682761812134423171682622083271578768658543438598072467139467300557994481487907968350930527959545651578865015276010333577209365779507577844902841975583395351338268189610756427500582439463724416282205812027524882715505161542864296696809696154035043234043124504645281316931384498170853537611880987053380913891770814149301762694105479739938833543071996884018467780231666070538937901416567508768847292883909480017621502660194028436553783303455612953689237679802946108629572095038052632081839097247215102060461379620055988245910233324617607692836964779500917367855917674957396711528767527183925097498402627195531533441099582427446819847086943325241587567881551391416211466094324623694367568389298738197219177272717913743867991726775834143685733164281408885462400430090139346911595442348419761099068731218343485471592596756589572815240408665774465098444570538964627844947074797442570782964067691591360236569991708735753148352407082695919637584440990175328559397277862677744752331395662837732832727578895356264812151364752547185931340860474493461353096170118716999900850819115164999975176117793561206322587182964362066029376462613537069301969862787954961283255446341307385285051155887526564351989017280818390924446129859606808107301729553625076020803841264851441938386303714358620882162233960899025907572321226979737886878775287768218706137353180855716450815194345370933712412551049370232281980399484769452850972011080355860051186674767865684187148153611747420133211960697686469846047772639710189986022916686123699152935502621270897684342864837550916648203226593765770182869315948674034067288448231072420660440099534648405334445017630227745044723460716216036283721845027837143948417885857240030394453017381306236710666153049699395921086612749663822233017883018804109289507166675168320882086366789075124367155223255472766066043102559652224412525219898463325274500815871415355554058766863934093219075524452743550341835288766130445355489643691507291606660132291733550174493915129757264135579934330043131462823465489257106468663668982105432810065681475533024824318868961028096002673655351882300049258841189359226862424046298512597808560045988272939926737003461220048502227126042210165801790462248396384059565598897224930569490731417816622172215805217646315354422595789648637380919273063597069977575496915623643897177534689459648413538738975685498747136784026658345731849117485011175541820679106922821695529459676298073930090699967875864076011207927533181682756099571846604170448578582158465528034270357387935842305992979296682331989109713816223377171073819813547160464317430041552029560257411912835968668971939817435332718899372473062227976468625032590546450267099054313569133682654980639391744957695239335511949342093231426599797776108158946675577296353525967170116281751869749405441359732014246400084851994271470271450342078530463091581579742720183736953232688563254306170652205972288116918605752163346961791858050491453009953355689948909336255381579970873156657921972848738542939997310274387071506967514658950653138698254787116504166254295976251973223397997749949756558906511378717570768154133843728143571893955156238761132203886432223023542514264967967876080310779905205287194394913660355543747260912182061976291282858357226911982334704986777778924319045002013675071334988123367106979108039191880779602755493381204077747839181813582874510698081217904615860306348456695934065681279421066216506240101284123903472625529002696610851821744116045017662314735216152145616785197413153720729811523084072208063711835582027427602640980622440673306352998013117549933912138117429915200059053410137407721699982895420904931940572064908729492213672225253073643592500162102883352173890194978298322029722624946669920624477931806983097275012501119381180799790224027044361825044805011950636540924873874262007888323515992243351095438268202159302633565537008391136857668136002043498958648265267375340796971303227318315086793098826901700966518033050154524284094550966560212684200327802464199418602707547250749829628451882807331173333055169069618242796262256158310272077612368646364812712394475626080446321952851003887239386484272669867298388844467072831717162392030581905847777147271917424952280491639315888031810729161589513306023349605762284488427441412967645178050190563694671618249205168645020260383150261556605754408834704452915582174899984096359924641803562745451116482249322586008635808377069743183834425530939489924115956932140259141920603115943781227225779918705954112774992602373754565304413963537392056753787460629598419237814523775937910405670529330673296824524058489027504341694759520291242785846581835900544199455217106995045282746582042953582761976909936019288341172818465230455887225988588225906698318363279359484512901388748530827760046114503969690785208421157372501837057131333264721921784848365227142079883196762184329510417714865021443040860331417502594719078352312281001742556371443957880506394835975704037816444077127458564626896140088480835226656210029333374167866716847722775336669632833923511582938257871680186075159762568557394374882743423112805115689262212312042588905762545109019127732078778781323273762558736687953913472024027567504177674180826539731006485546665222906933707333444084580052129124911906178329194100247412972885996691272303663962787766457084435608746983757563836882738302556420821059728931385677867229061113319305410441750180406537392106409222830089479729746362800490871121918897958175600544638686868133452428641864840864644906688849659965667361800210544674080502031779909128310325059927497835179017314150184053105015555556602631432870102735057355130978579408214813381096067640095914556838010723074104537506622878588368060848668201229455452383453522316299628640368111934346972493242206753148725457422183357656256207470595355012205763181806348319623133228188389889062150662673538653007519372172340591358362763756103797870695140217118976931806022969144454035667269358627959304468774212859043306173193841294435412764164754681202411697554281116988805428824982259177395513048147895586594128979664813988361913221486496924719086287950721388188705613060461970737687799040756414765866227631113725033498200584631997969196350373560895100411084554542621996647304012476686306332268431688527112317590696056578217518040445541626798563421488338307684581414719775934369216583614503133138117720415297395869571176749588705076783879195372304020838176496858191341800341145456682733735732169173465128135132843158932347386006539478391423501752909089619220966523968312971488346207395130758783098637288026959606929728460685523689919268083801695058771973724663649761307786450127882471704220538933335952934814397106753334723034360975831255078747261544770719213479224927159492676766278036109700036134106571025466922626133065474019408629211656611229994202703489073561596692336410173500453907228918820997287324530866106439662372849705567357214375518544611363355196733954607259632618222203313312756355487672584034841939178422744064587914672131164987836387319100578208867959937032379388238394906412126589137770334955689923257954405187644107981039372201446972243237969903358433128286972578185087082344691364856533691109502846822192916867915826710765239766136756817301422877804120166540030374351556544000414583084876769923140124294237558543538343921187590010733346196084218152167038648957032359490855833454019260235148352190696237623385556542267314722717935277296885492623491991024499576257885548256139118534763381538453193402264185486105135950831563899208361937313039966382320797795886789867829984281482203281446049044197306534624118875963551742961793747291841515309357269277779334114015511967330561100075368822509214406266517999654809719603427881871079710484223790031774092229269352104893693732327694726232623028160210900686626887478719225143401357388406279508262246061521711089964284399782090893117865503614158972487500280908513172227128806250195870974715264317006874198240492399969407466106336263356322005422964880154630876873682874875090352150473675402066013338155944287823772317180312561897200483097546725859994232744852963326552517840607112287439345253684221578961268628670136675911064221553532879214826474539097433154550287029150268236527666693105414785576822406432752440673765529844560496702565049224221241932871661160860547191368863937245898129671653248623036473219932223157008538852768327927994196315965957009683617976918378251674414993594617109366897628682651177677431084581368871114577195041811746370403235288456513671425824830636537758941250177073764840951093684258945287131240013220704425029968533290345140364969974017667833131747095036322286668768733129285186791461598765448416519885373946882960371178322388423303060657176361288708841593155736217221376564509988917735613284234541223678365521841413042898546789567774671647358696420805838400689828945643217153964331186604943575549661769266072727093394731449621292165511980437780308685609363138754101878123942301355167124294355739915471898955646661970357842268796994318854651832581602344841515396315057313545897402275088968707939486742195566530287349106718487343165993591396310605998616078714774606385738933388327135833110260809545833236159924864571497341506766871407059286612705158195261650502242702217498875640127169528113502939244758363908473118728230108315574815189835621803432497417574720904641364952997550119248788291532853166597874957061391579123636250904097348126586711044939491972152440857291122055970706033296901074756947283940997093849169390212166755558579405165890139714515795484005403319848072795884587440494693811247436909507013841281088196286480748041804182026096003182668107801952044798682559376821234673534665518722450252129888646815471804229616218641682219804955814526370063851757991819728026000386763025388694964194884207994738945898404010241321303090936328663193730347179256907517946232474252000857714562729419152375446362877379878394501431094091182614645883820587542762823732509126138077697675535682127903745244646003605970550602242459945714108399059616699454546985836567765975346996928504267246542460315110908075697293724541837781025702255524644398548417545580599942944593327955426324629460858086378796023548390641708920723542906955195286303876086676784155321586732494970488837317865249027996316297499791878899835171263929795392650924895077784259461366087215202240710884192296494310591393216304112091688549027055947565430153622118139719842039315952604036914452228001475473124463063295077958307404877197819686286413388425128190353250996930888914467549091154037830005584025449452358782534215198115720882340970299116943447581760436897476339233210731631740427561412824860922989653358161713891116256923124724490958771429249936215639982952014163523411198550868694492294989249126739372923000701587184474860184067429275844999930131924875641400813040585982861691888068996303830531326043381606242401290585788081061427843329870119944628719146037383042779619322091824927150854573671734964205907208667936865573840618157405326155718147687178750415800692052000215355153012648526375369421421374997918617984858394741378803985831080405561692274598245613520744898006465312681045449583927510749731788086311171960547911508400122190369311986128194256882425957971937932329769301041591119754489002977031842584364717973560103544575002544751565068078740884415423080265993731668778666205651597716985809731633578232248853281581047705328214564388444123008573080581647879165123981340990965810418080009521138439453314246721023747472503439089916776772992495502566892698285371151730358959376934259226958372454792320956059973120013173375767418166251957609249929418081917769403182782774575758289305444158576237160653800872825607842484725267214576880480297589334364872140090589418052596086977068350352259091189015942132049219701675125459828727497967846533786334415543239351252506363930437771921923860399014880339876103025817480294969895219598832720142399687716057621701270507937708362830106891869897500650256979499279160286841171859374504796608835688497395394586892391084545181822282702728821864987369267118878408583053724605866007166606945171197743103325964577112851099593787452495186118542671275944017664228039492514681735123523144304362501861918777361057722529315747456291332347361124776534994368392647754083293609400274045616320563578022180806223900879375809197320989147572521662778807897907488591249829737331092585819262666477801170826820878197917131324860376920423486350911238287809648346137476496374218541767750921345802969695433524419860744359277132661739444691341641580944702685832049387933117595153035814999849253446159167191334124322115336682949445998741459664889777524773891558288214927567189256457543523760486238785579787074741359296783114717936792999139776998956183282327597782445195884225157508094435752301925950906190894606451882629946698958326258148803412543260124120933564258361295982013217461612344807019760930796799728322376062091010082140949959855932408222651861639065546547957030135539022597989235533760939715837941950183462415810130412643912368614148109866464042809319779987366021132407937285916337996445628622990424222927642438863799852055343320875731731871548046428817250034092353374652649028314797565153242705356264311472623417444830140172971704666330085560419741154993172573726218622674937066866930908842754052550377535584089330144067421715595666087721827443335044572204424272650908987341094974735701426607859342204256180198351711155271250777263568780506603834729014781308635478439698185174933125213851139365540391455312330105129385358744276808152903751173254318716474699157818255425196503436392417468796375622058291893762581253383326719148402925074359748581870504681383118644642254551643896643728687396107325377295767077389062610196295131752364417653770784840645232941675961040658409394103905649473899638146642224329904310173959300374077536980247552874621112761277626753813602139471615778662626205234835777206863342591477083932839620002987793929979597209116760438954763719067250409211800035310544149548394586449258497043809006323623103441906245852339342840357610203064617204526768844097822257035916095244397856543150633132079267695974875615611911752586322639105341330469257340935767475092793695025391183062480253558690689372052968993479567087900845308059955360187535431681716971487522176389486521215368926729888717202121220660526510117590475749361586553478294374948853903737039146628162856003590395092915664521413593412244894459334767899263360613035705032116795337157592345975106304561111666408094797924192212882006360787872652038652321180975361491285568089785267175531074954061556368784007572336142607081027795669430844873693441799375557207198054643590050431018755588566945316221131616830148433489339178263802641356525013700795209761545121667871519567535025806141430511137889682210685406015519257038368915346510551455770632897302471256450788104852536135715239695895067334216932376948894826015092575123528849935029638131843541457358324431725044630666155831370822742912163466040500763266619674536804497940097236425023458788710488048749986860862755356931762208565454846307746886649829906310597073573815721404112259014954752691366899358586179981743677386957539800342087967969119835225098391263803599283262975145565397389796857383691400480121950211761967451430881023625779215713120814856957342695347452655142668525217577173009638363993551832539610331208486110042795452973242375569806132841986922354458272939179117451270335819855880811345391015985128983406411432853957354605371200611858174748625010039696399764044580809699870398817388332743893409523724960454813527299770061954852721849909080063174775040902239746989462075585605243127246025502321097684835548883354941678181527680568159572211532776352669168630870018693203516929917877562731632154050649464647026228586731114452580845632007348776876385900274229592037647536143514682827534426149615884198298711175646361724962683106236295762319177725497366094268279952204106405788821150811131991734786759727437497915805749147877692746061907100348153619235155720494034255969363948566871947298056761987022938275795961819855629145195309587617928868273862096493054219863059377978691393001299349182808223710852961323473294798003424303157639742817851503937435687881306423075975240851241926488719488905054133906773741991689778084376017511418617748902709915241334477050667219052712888743505325968677063719928542903087528266395518453904587729890145876159912756249080356921423478707981778360710384188822481880567505312206850933080530828880020839597118211039899898180384975151929433532001526886623686628926898188530360278747752281685418650652376793796757856368360668313123426258862988961845625997285027679709083038019016124745282844865376917732448397717621650356168678395787858828786236380793633833434967995142603489631208037094915546770060217511989500996059227208399040033898199675887046040134573812190134193680519637950566176118060605969587983007181161019322941631072427215816485974885020147217230732705878802877873275675405102592988407212272780480136374432871384941859178140963226224893757684056871633291770917067382134797004376023920526008001662815036048547655469060136362236679629984224276674668861072646033746560216890434994981884816566366302566738561776326322361510883661550395705551038025010678756066265515980295082374652052012603065301249724739645746989718817231211871584339948343600121629862920845266850474500706662581240622721319931196965499065619670805692715324777453451213337580025774332561697831986134671782757998189339479555325326172051211050445773943878978126924517585745065911520031463019480636058226082543590970708511500665650902079885232692554319129221673814632897006122729397937847267048684195848891022255373374561474827979869933138619968641795577218622198208455286297072852080061016040108784091057675120140914798864893851284339276129151629604029787413443194536974698551231942840296593887681729956255748793388590422169983319022176351590369180519228480260543073062577483782549903022751581612022851161328616685928133752029468332252220531781215820253025088662362809263568430252891087706171704990013767984856766638939042625591143061007183816172353997387633581777393475085963963908465874171662615703283789866729588974195320537443550609278016769790077771672902044226945954093950994749930614318124569221092124548252803451329241799704232032885456360675540914811970834233997849254670118659599833754951518632496963178920886125641532346575980779832073800086976427533235409564073003045293193957398819756639862657233707464135457002491794810974214668774298960570918536239568859519024071130841448340668856425473721265194259051814965196383738542578192332583417036348292992859025614638272860120130510541921513721765105899969802719304048733994226097745677451579423746470375447017257078715949790833617195408866478143852608439291690911730053205846140157635273913131183245184086694088680538402855164568571187547248270022083343789010548176367435854899549865692885555225567277494425172057798467466747787905774349174244109071466914900255270342184503075273755821137711094522708215454346440108873612203405716041141834382726095323237182554624102517020361150811931600543561009432030556178322391252062445031702149500795014450005509001523231691910897658387180300907269771111875896831223282595374217905014464743863963489624638980834779384019082868849469391158142606493173254702234373223057890275926317411592624473629055782617017402481895100610288659334692088064967680167256689089024826403203203151263421165165169563148503118443771525213721648350106281213421199470266277545689122682446212625539126498489715044663251929309029290108876119157554258391518368719819184709361260622425586036598088268905544715835817428872997464760159460940401759697697805159468508663403212851174640683169703616743173581576587252251520082873188278565210702944935506729597258132339980512412471207737173620857772419235331399744924863356656970879703518383520138341865390577597934352186033588044157558585482540733464374391448307130054895222030567750745322977981047050457739723580325179368138629888469110995550094349880157843479825669876808795920349075784186495613096213424566565619070862368329332094015612685817698249694531598779574625424630901356407208736467576458727143961082719339411062502526084513421501412814639301960007888515220923815244564273224606689458633300861716845028533319282624550821507386173849276242838349117470272648906803759272872132571961465813923010683626857785542267990109436695237284409741268349800131969176861613313627626144225745498202006993951777632828867862375470700827875587789513056826300291937202057640188021941698739304220301780163774704559845608688422716092285004419281225768136872337942833689084006755316427228120862273198419391267874908324606733509788609788987158169894994293749206828481050933094218928023867302629426690935252682728447710027681365112606015011636101745058866304333756958569119166748077541505988916069781725737621842303424524670842810902475328596265849672569673660076498076787190430467556885348505683627922758839572970401533308552049128682480000072784867813587020839996980260019773422655022120329684052578670910332376423300976492964536733354301539347342825343660164364385477660164686322770137752448696912614520469116245666505611102489802345137930873059186389799035276293855717693489120086616775687993325350282824661775124393765142113116209812903761531010890597925017861183815040977965375773274362230608554781176898822552669484407733657443833686268345771179815124258263811193410754382578304424728038451780082619899896373066711274232521005688538585843358519554005835227887054384790079995563844297051061169729923290837607639792469784125124967433471169616687785822050615485881464394870701806323421207836253571071212266197038349900043902744656686712173499074110147362310432400968041045862389633822787512554759367334790068754652024275538581617123096384990136865866467563262853374070515737232724447762919722660701745417931092386703962613670679473427948684492507494661882831141096206796244704593732106340080396039065381425831150176095501161378903364355096310530146797501336793855468356059864600500228302484464740731887479228321716598708855896952988543098752917881332532195226978195037043279753277466698369423002848602416617560000301442388620688423524056699700845692866899602327884871368760878123004762778401827352027548019969176285349649683916226364837773796255211217547402277194396093012401181682068121021247191815936651473943058517770056875221475125493088246126868044684454325220696641340818496267748066082914036236724863776829431836708979738378325528098170114894018296061002644179490840671943511706409443538546384995390906043309405682920117169793695203215589063905777963107359065569156945621637827432101140183209376909495763075731567388197181155104634376528554380562179928384162381558192076020298506481401963379193559076020569381532913315907441646487564312047861533160325266586982931746801429456396106632560927328420510290215643704271874845761820136323014685466371595308262254189545629563715317224414276422571812801868718182140612968137384658171823986518965648555094321231463530990198616181289803748910229941331110774595314939629719388880725683972978528355176106767455817657972441430944844879817150776429986424764125322657979146062530285205453666933501314466241996111968067753224314578035330743001808739925459255420798427789056666347407995967576008961321645813050574211777888880884094358873732973228590203027909068944530487046579382867173383958926230362266248017571448978064861980934359269878867847764239169007125998681958796134656394549623204043406323528230745640612018486730670426361669461290517703858445350885500951630872337633440388726199955271117312855246173981296905554470738302750754225809881658399458761007694733420837317336071955043398108716042164999513249529916083617222820031158589287795557317896386898955162674308459290608000859223454651269845334532924419436751307874070888608530314827485750109759878068572782317478217607115801396761354854521935780735415170968746669091218129946413747379369719318756609233189286152406153478621185603151737519309916896409949557033377833446116551252644915786704811826055429974975275610763952629289355408446124643616763661328046266362651142569043497777827952480316496129902972359502384066200642066452333405331575897132901224473698236519104900249069057959403561742953649429404895363394106466726950958037144260158593948443704382617642306624056905870570758880367007936788043295645410622085741254500239423229903508179656015586029084898337629790606739364962509210482135950990919699559883012067698310494962063807528955031674360610215477403941415546304591052590901458973074293322402306386638230181286294317244746342723651848258461291313606805702506546327783203106354343406919847295425207160759526149075256200884741654071035423550978083722952363509688006459759789992683230773594411551689069924463972337082134750694286547293859922510889347191586497560597524259176833345711322072251921296866022425258138680408812045613573632779751814664113136339971164300309204000056795805751334329546460798079016538400716457328121056245604260262984210487810655778377347323659638677055759207019983112108535196963271284231542847281091571796476681906735119965113256513542784060469209207825798940964703631584485089369064901924999318649372452649988774549354111340945297876044502491953945809355211119586539315108646657516844771420629020263949538367077576537176851596460109870881866091647031790211798264562927066416323846461381020150375368048697787211003418572957169612549352048380246704686023630002098406789322192372279779082488569483299663390404249432326288677130005243509638998814808055998593382089652076487481213227281815073397973362664528378144881263510205649687328939243242867063843259994567435496828825941957478813670598253117221261648841034042508450006743223819608243186281379095549957774950066675066262424430873389007661757000980724273337626673387469685113528531365641549017098222014611421925924063467053353933627071098006781313609385571064409925829772923221173993203191827813273808089618582972080179349260294833228495042671845618160543990657149619750293624126900095610547267886606180762575111753113785869537536222005770866387862048513328149489138550602762358773610329973003173064955629851581251349448912785648244629596586565382406884756703802704688981318024072292737275219851095724174105052139041930255727284863852844805289689160964146890668459835638996440005348002156983677922238037414587904164505919532912229925028005619971223029771301139924108735203563866121808790189921122065697725066748023607692753995068380330256605339074905672443376940353851986996641363910120374649500486401100087134446548274846296402811241591321878978852046499368137681967709313367870968799450016896658796477400623582456377658975585849879727177465219854205391594416362569662616844200600080433422715099715145910319008000585172219495540528751288203655033472419672216948991908619169819204878536770944920310388473008311622677339307523597173801158935663168553759966248394841519708723682650056790933390412790816310235435657324507156403948987240164425693415728899457490752398533316306034070418129458846354523671810860539079249667036240290472244420213818777358043190351059209940194775872585865757273572198726384374993091924513274352821789164543104879958334001736265845584614133884660682327450847215641650694093611367611925123148279760561798970513157464343175667470197770269254315485714637013755600400779043255321388412232706716429669964136917499492508654966309053813457363981192343288613867324246667245616540615359188078047001496247193241840109173398846368664278727207626860765099276920617731113515311448938902332547652097420684320528024940508619608661212231213105541792997459024548185949646942993693864243135501090642660313553225679524718093155393465566135122441653344144155111259532190573065879353029048064827635286086442494203028682002588690854049411618504551918811942909273511868575760543841439059935350826121315543217533928615936823679404626444997681932649308346712604965852892948429537258105235089486156935190456885854215735695794677086752516417354907237248873784534761808327274367084693858079354727218804144732695170297617626435969076743065685367613619928284072151314307866801038332217609788829850937846541177206758938693582684283796290424296548802323106395783761877650777105151690193576054743144226314076004209890571020565435998779574657368020210923697867645163003243092119143492262021774675710439820562506765505576904425590449652540342811520866839480643579273791358560935160396789041282603753608340016345407062531290601781650603437762558942192748016013167345847699477792091465312522042704654824005508137640945257846320331883151887719024491194455894638688555444609018587545908620525302045442745899844637916609186179029639082558592788640319016431792273488996883330496253158469117203460763667607027740315177849369414917321610504595729736596138844979454780060715762921604735403156289886543688399818942691338513535188019448028479958652499568400073183877337535548394045883691387756496793096077559994750804345189736896866698731508580789837144777561827325214296596082493175269899469747540100562921261031888625017418776020455266905841684796408992466801068076693442923034930990375558145110099284190943820660525891236574353840745433848724816431790087873117522132338379458862648234581700629942290915144495088127324111862779425895702131843419021017303905974823645335114169462821388637425198937897533882379485851724207825508374295961806159217836578818393888777025152253785208907694202282053677550854504723760004389769081437693094548395730016366327812965616810504215203215632842151612540415124859304679616189259101060076515318307648827995477537141750022891705959718346032829354149345924591828867178154655917700346771310575303896828640009335001917775355728705290234388269069129673329509961135304298218989241000607744368924266734752173184840953424561687511393354622888870897123051170090409401590669067350618445593100750984742103649482327649637180094161442655247466676934308963684960243922326323458755873728606837468046637313571480929805399105210711371026374500608552344416738726040164127132601246965361043581150362792291086393687013916299897910857826204229335384541351833486295943134716295787930116078833644482981923018166340638769322833612417236916478633122939528015237470513279682457836312167446080841663647769126019117301057775298128617137885915000793019402368886506072145783403809732161383068021754401749094358422248668561165809674807573845992332481706535383301049099343264936356251977049931082761064421123926401302038084370996951173685878977822995498904454237285153723318150440234745891550102276688823965794000861308885920940978495876486675878029379233906148994834466851709175315209374989274638785671249877950654121652426418509735771999645706639206649477303075724557059048177058603932090482956488087196747572706658693306120266179800056065641890069627933318714389469689534216296017902414162701408926073914074505987506520675264413087160859205879493253568852127378508567648788838594585822198623954408151706276676975916147423149147873337196136999458502872487925187824482808765281104901057069884367840760213395154979981831659403340893063995743085338857728071336573212814190399628062644254224011247812031652163261415810302346226442408763394504407620671898090649733005572336358448995703953056274246487179177631411781409363134195340527473635842422172698686484084557431266752136025417004805638616765984629182303462634527442524388821936131239357696827640476294488668371702461612288858795391696591383449474018590366569953303685944873836579389890268611329810682909716116164789729530525587322696067074578487562488144360512973511072122204826344405524524496165379608866496212690064501010948961289688660880629487350899114321887493585774272630807756097579659929969682587397877852648050377713765242069461966675542708452877254028343824210333337439991703759532454029769167519935467410250219222119639480205679798519947604657411759625217041569708491427913945803140799964119195396769791737408568939478242361301336491734596907700772174598099744259362262637829516520881495955195648355711720516937522202801691315610617893742620488995751474788692159053590381388660058081630582446535487278727568665783022053263105035604387974723565432919926396440018842368919645817651311717188672486758229795078750576343283085305664163298797930820819076545196585691431997525261747570504153967007382354122965029970191617492486861802924175846739733085362635560429675870268749379971603454662863349563614370355916971309061575094707962378052153603380365392040412639838434801272993894562592148104731481593959265338906633292652578204492249832885126629369188810723658320829039812244237806651632662162733411624203151483427784752539451124529430881112326683066905970799481419363234139267923901918942926445490743249400323079044075225976914423849614890790431464486477297800455777712453393718144793467219468526419136846303837049320740434298709740412638940433043425221074885112494426282239379252494393163668103310562783927345745231026712117586208261189126440188291546691212851046899919157318873304410880767543710132787419283972703697276600216099834333600899176143045327203945537436891585618504972479264021047047056264072451241488673692813363567610505427803255719549257100441168398924733871271169883173539709516164545524332270306027593446757999517712181509855683239549833596281268068348322419430419487196858914594916748537760374444782873564907731926439805569428820310934429687373193775554548061779043714377203335376759756804778900991321454322037933490773787874069097704131833828997384492518782250188315956202587946099087146189725419795953874084541397653822025347256926603723938290814308359418584324723132240918303452436403940917940323790287095401782074482170765547867762104151268063620106736243219599782980737137663786298642167224715916825190726576921970261340249417534464997580399713323576658162719584370672851436490806214147102900918540044616339862262901107486150059277671968155335210221716444136764041977352610115292575251738247173675303989934823062003094932644196262623333879588661212106147023932776713142066687603246327184805008206396605882050920235902698802549535681251843582408829285633811230841098232938790836570784180507093350010349060518321863141227818688788715882348383679781726460705377754200082380380196326323976072428138612236130281092752438036957052089153010659256956396427522555384657636553495463739408061696277478419448182603350734582772138516437917499233092396296198526868617986260425711779852327685570457141386617629295939887512796231283589540508165604372770363308747966619322650038308145993881503671473965990963032045636500879698869873594871449100897005462342729903729463045497616776933357665524553345041514194616697101749054948785858584403513904210460176591559820275106367576664104618954266581358760052108130470573482473766331946187255792127397011233251609286525846383171298953470046142735743063619204010992356577660100719229911675648122727074639495204070913025504619479817243513785717150910567157917795700770907909404598917844258440270592474932824806450848267003459983682884491333708813943528469677492025976245485517771619986116310220674688627210171248729167124887235778914315450417621664704737754612906389511196893582105549399935377468450359983258692952327023433273043635115812177058919030121483770783286884422106079255309221589312345064608936080896419228811743549275215625824273194783723265215329640304761290689874910156639877975819792888592129701574250737155197223730805372066993882471800492854091882206731684194279778858978493822535713813282448958492476246538500094200175831576589686543571974861164603277155437001032636202997503239244247950889343427751783443291584601556532438778666772685611212758182712869919578280761655091221413580816116322939661663415602503128988619518686721513459474713745712670443174731943025312839678101662086954783983296163480844956900956342937515096737960440018790111267274411675084400678478261326561532290785316148340056381960023666911980312963442269417458712221054848896245102716582099148138141175473239405745076275167513735032669616590148237256219150335307432462819276660223785306497274986463498650550375750992155638910814572458394007105115777476313858303837518359648014817693592796766069630472277697364618644037033773529426997304251956641363378185737852766024907109844260940067059580129817801676266272290171133338525980784920958658344389811629121105277045310036032383813243445215290095139723558085086461648914151245910502280336915576838152030174140201923871494875871237248599224514009869622772119845702424488289292859099064377411228628667223328862855533704234267071278999668128276547365674107406964507808568081259786397040076908575959392932046801756612490939701367929127187773890477000678249738803302453624027727644661149965625540802818476709561239735940633224230829181516181028648844185653780928333913264805598939443566439876974732765314031109027027619487539092929601048264175476669118691403587261380743766633109457371379903934146887064686460267039486616747760000722047854346840800723360634940546887791106147655940609498686331908994977247933057108436907658742860023683684241771553223022178366796239224099317605159876753073245275389146826981470249562283356030320724853823197027487331166462069229998858942502112201986569587612791871600968037477619692259948301735411345501079399145900292481900374934021424892515898100520733970953468430332059191999389762967649531547403466043166462223184291533156091528359649636143873179107189069201489757687215698171815836022907488316191605308351110422043673211238260005584320135347780058940882778084636199010563768608886679907727902686548292497191809105670413616136556992012542641071180171385896683125064594250145550189377388886486604360483908283744462146770055943135545119840007663862139493666172847939860926386465290067604063005380419245984677352513329175368038209527076517081274269346239647948922501934135533097032459960207127134512301399526344077990619468160902468492313803777118645804464876433521758663536649780400609383002199116386638860507139857143920438753396488230229778769538618157054877369058459492800403892637428574182457995713123625646669444885987359114685047844037435786182812518463709835974508501860792042606679553105035729680329084793757636030474463444697435433502752984845238779158202236118062904346969346865198339806600144971899683863350071523270830849127649387915276058925095677411046945965402880797802736922564378487437278982049868242519735029257251542497917848968417460812748652354129143244217419703412830604137930818032814138525273657464782443254091918904751083173258453937901347123835508725023668785921925537637537400075621637124063877674838954795600182782984013542015842883117299351711050236151883794350903675875578488009807770881551125558090119955064896685678159350563448912837758990161910432275204830386483914659263202963690900053122147131750700971359347468156991759488806115420353357403774328493676246951617352367544903455427388666666107970302858538735503449445947329820390872165309792459549017185418179249254414653337027287593620533886864454065360617965327437550769878423295045742006452114317210152014657662739721445669474701786812946916979588019263817592811927322605070682389256441930986493805267306901672658566106089749881240120487478079628807615741165255839948545323098540021640033205653993845121734007944072883414230234182355511744192222357245867319414616798502602950580571006168277514394141835286060264245324094003427723613173617936550199033359903441686172240886023560834275900926053761144025581070215627966865365151191820725386452596645860954252542056710304234255061137218656272653332310453144820962695896021825904534094883910119401281675492331675048763749510965008577890453486855978579969007879397777329305817485254223615666549692697584046028312765117894640877219747578493485674413388631531987102362227155377750870391116213530150035929176729196395072118888349781375647603191904773804193718112843851431821503577248874474342705935355093520428295802137658105183832323088513415447891367054605041463510455592499185796401652761328140762394472286373357265352655071210882426756690110368420396988470309803727873513044013787925363342701264460812680320284710362655809289387124567139590597714185517604872079508172002930334110252174411773676340335358887636782355153581341023909152090279506331979633845185350875458952927255054047028662396237772153645629804693388762744026368123265969147514314435584381868865119365870824805011340724879385396751908003739907854012919659434381031784753920608227897988030336967684232473162361763968761623623356876163026884037897862145770599398823920348982382216719817577893689604306110889911834744231617055987814237007238072070677550257578401517684937101858819057400820940129622900279172160954203705028834078240249501621648567087942202939224435772757374584996682630506641544459991574243408073463627222562784438841856895332057930108916740016141449009096559327109250045211818537007041540648724520877907376595664899522564731598773163807206744607431695526167638039309846394716110604655571083101749286623713391470545180574493572169951275359972665947408026291577491550522454850537028087105237656147852398319803558126676617324601867525882385385193208263556416110098442608540380784028338463588393463688631322793019289130282296232582264373551189697799397250031109182070686344602603485883070744416640640912422139807325927191541815781074525760098358820705030248264836685449980646370842250496239206162829035316106959372722700905066376649456685727739007681253417461943516659402934708370494517918549567690552069622675861259592368388096468910308028184541928217829893100965363418921834898956010926376572966788187057775288898835341128366517558249769480712428278354541999572919446019686281287603549877846245249354176287775506448597650341584591141030481052130156114488703551777407337830640495017343972720501584778736970713700952718352399870940930861121920421467315243030537972454809285219378085887351698117533658737937023196005658257310216935819019459245852588367603760866795995236708333197022399713371926403655984901308829283930921410973303696364038656062936808019635628436858825369136269202624051487468492287534626763352358940809796892329157127793876413852279798332056260075986975959257303879431410166635447517478695975095568233906965955388029320743309683236709559394724142143717225058537430255721517053895895659986676659126684423247218002296803177412922107917097072390400492597539429892209547502032894566148355731499800068471998089446592639771405603433622234318284199704099499393263744214493603618109574459795566125155879078251863689544078429166454602247885993622762614116811840494734614141699829060830607190975775241397944375560674188104987661812149077514731804345671013799230224718506693872918137203481266780288569636992943042135246740973820453115389100553014524432818254728458718669464631496712995220082619013000855669982343880051649327784041926492847296174808798654434433111123958539394779681219719627160893953011098133767911835417329602343199316559781333484740615024511341762298244836611590092792304449293695139357190870181819589584361843804061165944048476583326753532356831721987425258535846560120548232794519875664968978876058652678790132411075661925070026430041950347694254024240607609656077537184584564249417515432393172895612382342349442292199324577401050795493636379887522908404782725123963707457878094772131031654094669692661920807321170645846576626298150888099166527442793496997159740557887837716162496101672047459470130104240913651480876349572037471817743073918732053201413043345389374956982144967190525488491083412628214028017365331282501773215406112493242005594893116255011049893584143870735651800038229813051332252972478587407112027807028611259879533240691668171622728434514558843092679240083027191790782492702281653981257079700042954558894777367708009149752342033548896608593426303088006647685038169102821127040126002177764302739667422861323057732858409782415448632291866905640479780670603906282438183330261609786745260458907376693517948532053475462187926190528369239398740372902166805014542583612146809357815993521680474493517620199943612924705231872195442947911385372567539676639746636162811948409516259747723299934413436629873870157438494600801610003385105635583520816020638270702113630751892642253565886056221580448345116617802364970101365922973846327168015650712654388173940448258233233668902848914052507956500401916709558306853089738235484928007174906221831352740275086195498124194464248867844475917304045368954252927505885219809412038269802372923286694304983440845706232258873569104589970559404762510767582542040526494275554714214205428933388311501518714552948650140287668484767777681605618474296685771530231177908221270942821176794566581115213315223398161495075602805365841437126812592767356800019428284824183308573709698670334757329118021019037584474086300989383521840111059802022383968315651158417097503866127571007108395288569222360004576231085239375163470374950421781741612935920662219647330595773129591295335915231656433716324378174580625572395154189769613437452034741970327159111101761440789922909060064432629680064156813602821898006916004736240008470457063657833027017402152798888471651167315712837329493306543960688275571428520742030070096242759944873708815789277726402283398030301855947623993169399286603635998707000821553525419853847688262773047624823860269099345379908765786020676722817731151623587098285896284074324406609329795538343205502948666511367592511941789350403082348576998132312671205681784789760648758670573743775584611544086740809411649099213267050531289876908910883914578680168815767968721898464363088210602676484314631701943352880045803686644256036436993198504845351795380463775594629554529521340546595807609391969995189247074035447859533641109869921528865119854128276006368620911913729757038576017253117357679409107698890313308596500699594319273054681722053051124007122627845797726917012636133446859985047971672060897551912826394441130667830319491214515327039264112146412208757632468612022117555537576319567614934705974842143281229859681082626095366585415274262113492240134076245714680584172214923909224438941262875271070531087024855510743154084186759878955559389075356524322888545476613711734915364806714432384401408198529526290688019659193405664985327405612106476361151104224829146700443581846943179069712316651600299409631340130805860739844124082715567948889944371948504690236094000173293473451447322182209752468453264121346913013294792326997440024674529522230852132922555594930376412215957327811900651773685811801157803385602418535369143863009919853659293483641612156698937690424735444658748139810269379022981378569922152798195153514779403498922607483381394646926266584517273286355895780503487761922031172845475188599542400297995709634304720806197525476527685100981378163202177664364736146170522753203124129704119544900996110688385464043905582446978713335720577916452906585348050375414060088535302106675569614341695257008716915086188706983988448580428143843053714772917242130051963554786325644025567482606414095424114790179858293001699815170736727634828468623559838107005876296082512331867785950402483421099260429732335999074004094666849748686884173835620328899119730609149796548061152887663408256720664845894299858002546406068691036464943429685546784568796794989334495643595862578613196172550679804965505129827415910047566815140596793151213044302192768059856074632455123454513149254255203111451750517202490973696167413161973039378160403067957022186914394309192505877811471094315544300183589881423976782131510527267640029766311642316297833277973013377086514131112482321340251204841572795498774466767907029599319650638255512383856022194370399206515866501926533399002734712105418002012685888074670573774509886175527935602021120958390793203930721481200131389354282081318943148754438561232587001944992581350510690541475976139222497331901289047419171912445581733387495340878573974188902409151214462226539881525213384634910283513423561759213327385355543512727247229953964423981762507463415744769068140942666577899437112321984323025141571047210187355316817905812741151961217815483912073529797926037766316113985708684293852764450403741577991876769104909117630234507831861932987654496695689169132561542336740727037399810325733514168138868067085920820760993625397006614255411655694214186108972037116541038941778769258157049724716056157661949224176958669749343258663904864763087873092139939200878685223473452253118157018076578199109843037878168584580079701659172664861404591486106805115885561713436855580069022667827050874567916349927487069482001618469734902998832149699742376052814076991819693013194135912297241726883733127828081679341733048428134409622877737779654401470649894734744919116522463549815359350885383931483652651070752102215862032932642640198929530238159969299273906424141420161826195961344845343392658919079510792905100864718783232982040555049050219384537229303483182002693326109620804218408371945226888868083551658381998832920171224999458576540091268960546337669612982777410607478083888607375634196367447878666925302288896159771280185478557019105792471810759495010996904308271120531509640112141186230206735087833318087762470588058350862304188386112174547755509553671334703404486145553874544544522928810234769427704076213639039150206843771821015909023615521881438377557262444734370808350666951096254910613761728539124788738601459035495810326619599379325075155277344569892367387467795421862334880453826785370698077667819321370929748357046173162590335837330941622295786307527676375726197225512962778686188533741934117388714088681568931418029136617124845299310526998886722773872759488199057163855715116000814089764731206670692260127735419287281427659864203457270297234325870549821988769941539725229631337141751103721976516545839895148340287949240083463062392789249560319749685620214895662044946254613327946640585506808534990942573848448916966469067611428400703284793963808014484157708789145150530451519146884483802272414934331146227932138893913097502038120572437415340164067127499010610381266133692807391276722882107871371825341875099445170602226434991170586836101603687698697035120552651104750214773306630415495933187259886389171236267827465199003530466210407806764046464964211668005786439059792907934542693134098768537965848230867068480558939508313147926898581816403195519672144639113312985956074644304085904609009169327856793545543298577322158900327924972860649462704931338989541985821434507313410737257304810998326830738792108889079223613838214883222209797027685899886734383910285691409241533513022380328455605959650622357419501931536520998452466229090953671614919095612621006389373977697191634054360767763633286670155350938471353085762223731484048554461752825015748748407799780651759480969734397975380238096061564453430293557686316360702779000330068925804077772652529791492998084707524496022802820482059693708862921126584598152789328050170675249634698530965038834134556317837187636191038950283718377982888850896055667363670740518576259474204924575338270067428153316677886430139825263125313299269586797880123973629901929418108798070634589911631592430752412796800011458784038401891853909703750447013605376786206412017687576166247258641604372591119708361198780337184551329403167176241215241250574948778262254737540596539885878197717498539914991750840509588900577041152163100776193508510383579264006705186177823445491256431634042265879345285269556365994093982677429235494483908761200162733148265514139940747551717186965694560694531660146086220039525629285019984305099621700309690272394934675155449754771657636795502775672588693791212584319233030203888094326080403783761336776999788942512409460221836810843325987736425934057724336699255570403434417465752961884238178437279843684036826374837336984433543690784038048424758865199047611917165421662904665607456071886663619881239029281646669451749798151909444691706002745265271336217823045612452053930662295788694576791275193546614537119668751849629203159539177495685388050079972667353876078083852119965062628640348808837323629256206111536968561733812443451792903789990258672962977160551648337152035482637841140103072896511758179347020710529124712500993187488352435171041019436696353652349991592312287055716912296818401496384318200846543895988231205690720775745258349320796124711644270311511237086843334315397546680912107977231594635339125635475459243177544483336401243999505992943393450741044859583785662422262246809615716702078906185081991954968692078443480005069923874808082318902234462872639937599494057708554303250577012336724731321572243136108476798411004415949828338530190935601961036343746364125056038123090856283243964533946726699043737209120386417758408397879895161653887385638526620099981696340900716672974156916635713096240727914471558570376007534393307481381682226622824584775369114697346457465280457242691623052206824243121799686880880657016109073739220309266153095111575064032551416393099347943515614660367831354643728012321291999144957161253331750593268952450951369344860152966711444541014887568823209457783309663283203654123181535749143515059023031729985314668135104819441935219746401787025622943563625853697721849694760400779009398951531160341828018163401367881461558457208929361280307339314090203827327205513525338421756169882133072424262757185260566617778486864018670579782386776276421679227022610306054603293119806418985219466232503961427057372052800552517820418519812687363227590301798726055329238337808288683786837627057199795474813238171322385053174253030654859423069997378319620237448585530208849929387698355246399191869781079144454760030885830535754741858900376650328373129484112290832312678530233004533440194720586868707309706456613625446409385963141215343892325257156233476880386561707184623170441177193566369735183778316265326635158387693457323385634660993740225802462780777078169831776344074175120071069939111154920366123552244573152291342925816166089532239212477962761352748938115442557435681362081158924572371003284246111381954370692621747684799008362463320260705534307194246209442352657119824144215872995920614159907708351401764233381942869293486172672087751666197043419652600172537385361262460951288043812413176569551500767251502369600935843306505707661286437384745410347038615767007388622595637692571999058576495410583993640480007167484946839887683575285153529519773443647191010444321502386857426432414589364825245626992809758830607865466038051095719425795388974502729551415781499685306030329814412984544863729750415084224220911188570099709856555540569681572038267581211247719433270812261144743882765627920979107787677570738478469515210995840295758116081116627261253324387756034170379755901921816112424351849328350855909344675123976346220683474967667657281430690296720944571474765849176967434973506636977198427891410083992083314341562175748319673421320627015389901791454305166421153165966444529727594427450737268673419018784238656827159394436429261017423269292693464845687159526438282178991351080445299723476155144950145199012413766726790796171740476785206982403773231733264826592730149605194942208485474279728535722727582506404743879138847445831038394222478435764964067022498050379887021245566841309722150574273412643515683917790465864045101320658979125321979477113505931149287121788820755715241392073837020035546601622352813245173984289825525063443511869395707822561722112291383110225029556041327565150946483427552231241885191725516767964670287936647394565448222249904474439354372022288890019318457494416338312286133928320741155603393193564548491618591303269103556873393295726402577959822136690530688761206401520319829792823075751837612373685336828873441420523978455965608896763754843589365812403089374159758557303241918516277136951009638071846206024475113952446253403977054523831402806025267235143608190723700376654269538172498265614968028162082086116750251151871534810049346108671632397886684969116464109242578299593109103056654137681273997889614242756011968174545246847582407781853933104475045078092984159571062104188939925996571769606489823369886314600229762351231126330267844536249731416803539842359854430207457407383450204295819689480645151946855723621144455334415001249318131623533830328468767723570162069307995823177526934215286878386851177848845971395322287009969979223709595314897916217277538810849211879019137842685423487445580645811134634432220695727121189485663598189884863184232900899072835753604962836718987099558680706204032965999335547340416095637649705527739225138384113817513130916698168706238153853378873205844093881772312891755825755296646725976934743740928995039677412240337060202405767228450262553018393822040567711288322507517639317862376379785697395398841639750027883706632457282650445000288051545714770645839512487389165986713137916007186980672638126500568946758548073916871956666148766452819385112712846677373877436582533809688826420739153183856112100363029071863967943187051329308565212214917225017921200278138370508095830185751852438663963862497157648766759711456564282824210701990003379079248632821224727731469807256692397809982651456738189809976027739667668367566313663795917856388331810124407552307540516650171216505511404597331278097561674213201946500980653522853617114860627420969993378194562655986653338739712711446067723769916318946818848147636388984741579613607147455370890745234155742941465642361957553651675109086628863932579315806025783364344115109914779424596640608798414976508246151433037602136108534123595927045653519439537909520401970257702515065396189035011907763015347514544063297846863828099408231308559118995278957543967004254624334572153810809731945215926544514498549756069534310453637802995262739318362074836929637783155387487552032076478674455045059962870256010640055521746292973546284438386802744545707443351161540343077378376737313509233410119666315010252802533710554808708197318221843386657267475652389749530655191507720931227790539843427210541317845871975396812410858635296108347803524486181206791782051747080403198670409177151828550331757645269997977767301430135721202988255242546823512891377332155137484252049367890909251922733664471017427904374723915894268498916980130315412698685531915886968041079131174330044496101056008993184303905355080098188278437623883215329133557116312752392664508914431644593461998417092976181997957488534087074778521174442295735877240271213245099034519978712868254918478590170789221149305591073215182502343757437595458487166064452521569094850875901559607502100828488778039190345869838970252619900538649661537095434894890452851477646838794981742208005554538619932337194765796935134612363601552410689592007888489099359331567923173739161318581473796131916919515785101178442378677610161432471586883271024433963218594661265000844072115163532438077775057640250068712373340352526044569943819417441287518886769847902872102898071697430327306000493430432944946416268378295005676440853157708701773761154368537771911038605159159375968997151221066577406391583854957402346579797834440804526938300804296882303268601739893451811642065391326367838602946000090505970500142526211594358076293854281291770275516896691265926574954289653649081083067988384976464872907407294183185878493303801740062052075457166705652655030573768352098076719294246056088420794574723059268473434618355996406674002034279109087542957525449012489400043927963954081952669909824813354437776042228323659292234692399875091049078620078778683859722008788568091845622554779273638453560776150121962201115996609591922111837476497913488382280814056773962108206455527158582086669087119383541953567812087998417501459005073400923246228887557769791054589764601016991666791179778482875636798997432398037274460677464752207169549585463780009593719692171729561733256592432484126401626704159058343894696372274529219185018965593213682905436262630084874131568314648025588811548141284714857485738221956872426675283849495413628963769471940552779291082030100004824193862756898066984680829386025929026434797987753017931162185453600763500297526677866875867363733447882870640276587855162972894129947093871798003605871546541817284481164857185315632447869347930958275358226179797212623424231683032959038990003378508506144100302454978939797529550176839220057397500756203477466509591959573608444154326373797791301064039873679193792785628498666035604705954970105289228047776779359355109194935834807797297704560235594636252602835930454914972080927408633279250755607390360672771595611653904456679857607378697311257792634611301293315332016484085309086279234177595987003058556953218798528203360084501820090459496670576393622322918815552387151523102212811971932439208159665287534147333425455274658183654819949999123792524801507003165181636476255231310399734150195372719822022901613041362725974610718601162356974497429618384826943558929031886915318535990311621186606348067163702386079311052335177675825453457733046214579906208934130997367518740032397106124212792915299228642011049068120287271878720868915621634083265591088173677009192881893013296772105562382667092059789136926812858851952801159026139007269054722117126292283999803372729790972048809950310105334680511194807102868277033677854962907554026934009812746702725220459777433894351634196768790048400811730897407796444605976851187115914582330314256429261306277142787225252894995131343062499312306388085518532775043362651940989901272710822616176702104650305087728168350838069054848125536967031838972501528749207746694697629403716508231507669464222020544106970850596640485859429530149996856229439731757027024449392374580936346751953621212728005960722884159626828701906308844619030279288903571065542663064628117452585941159824913796071903015357360855263928141756503408488511143068438791179809692439772298099097014911770582316527370262379894297106322352211279547326860882655215824179099234569180906023374778058377495249442927093310707380584927348832289239153131876185694603937560243200869878163524933352666672651488762076768260408211973134300718515681560113946644214639720485265285411513667532654985920186914041879091200718406127397232967987360585277180717813678204799477471257172912311307892203047318288825141378473327917664511306284907245114643817870630257842897496906334594088697882756202392598069956273022624634412621535875455262536416682953003764543330404022286178544746315366191160334213545889427226001068396698844217174795136082149395668106240894770323373927948467064582291531500972988564365394961994109072807621855707554429791737711794231203674449376880676991548308590952140542538464625822675486226249805693686522633055855850223673822720127977778634563188082541622913911918365475818918944224595595418224280045906389973155025628753240824097466446022092390063400831411876042760321050984308607727574764489551365886019066760326007404858739496436649426601988002558578384868255788243133575344035761924777759273744897445723208859604605518822948483527103648524655568510395027462851629195343359158591046147582713325511305388115645821878625318395964478104313417381889984405684879217884591457034888765156503177187990092123078577778256627529284992610094103529159725800077263972654747744795010923051730625170839622801412932539847984465315057599843099165449210608053952787058437218274942947408978049186963550119898357602583231237780511451391432384895846591803771438283286529091143447364428172613302071795770584284589260641198134716286976878445287917510777862645709896486364747569315823670413496506818570932519774875079508935135699758281990657170248958915814634557412134695162972653560676735005207110588594423914363390214803676909238524366926612261366628848619331646759359913238447240214461034299278694325845143857293000677110875167091592634158577138683393745103932242515217056777147111755626880536958769577957172072882855519110210345574803566711412663493696125560532806021973526424825495212655764201513548543624285728860046735247924791260841447959963158498572400304910690569466086978445335028045986193196603360481690331191113848905545649480622944391811666805510741129593742952521074139539976967661181687514521436444373045528562960368604347472373602772233619479642997790827961226698995401937896648531382285008330461734965661276328146249714093800278521753389323097380303887860025302257710516011362383208992672844295961503660808139819663784675554021353632310544844984745846465894647534621040386883152118998232409459689673040987553227344988625881284188169931587336547259951549118080080222417683134876543731679454826421760770523566819755950659030651177171072985839307519094727551268928739746578783210303806818229652371423778726738287372993935526424188380791796797784835130159442223323962599320656941053576128112695379342531638393902373000818617232924580111866270572642407278307200357049615570853036984677716107530520185637107287906791325080733927968280131767050135715565800824528603335406400479462874564846456464686477841922584842656702514122921499591782047623063190676774596512584133566910399684757876635584998863397021940582120611472992615872006225562319511104615431499015258589265123611986610015581596370575598246528801631699884936913276460899314730827754495128974265072216224578032366700393302286983982198676819333241424196269782635789709546756173861834895340982810048812504596934467897310863200800224146177434000769019522229760783451192273497399557815744458731416190443203995073840094047566933770507009224665699853950516216369159079503139446060400947550812190228944409560154887395079497344795516211911509816999780743158307804708514945103231865643900155215020606694861551367000920118253423075078683899928446756829687339846217552490637642714209342964815301025655068991401802134118186107397316335614276368753531652646239023579356641677727222990089962914055570473653257634385028420598935707716065878755528123626727100705812793980393492843755017674337175146918177928917557624754715477834168989769306500149039774134192776020870349140488887559093300106516722472695159962876894919303828433612089831330346565618996857835010475474291491361767800861867133852616654068877962607749381081595110522980499825071963438938272798953299254283312597610704317044132362590374861384783096410802776626194506520174038002969252087307466261989192479174027479873330679304674881270439074854231768926291637729216529964189003788739267992269924859813441946559566768155175454328892214876228499246304791276563441591825717788081667008576942846726170337800505128602365250522882681560079865616534563700531313855410585233012469676307185316158274215293450435693429127497057485628209446993280269824377889387585421831736161296629453047812291514180904945089931186154339962926247708042226754892490759568463250782678872525931666543306193010165578378346012074486350764346243681288845451589483072014011112764235196290019140311273151854084780426673571166784455936285797683172705864619122609861988218580982223462400064592560357112117097997031551158741752840198534902396159376520446578427911228228206195500940833454580604979182177077135987082068200313503687340945717477728712783898761721878159795220743005192629923041264801950077895717647830249595120107226063325237632183138063880404910914838325581715477403204818427662149921108235379394218974543914903203904477311959531154356941716182915250037164969549224246185085536363353901371385419844694752203150495192134826413948077689958162228369302547135081629478161206855539170762283814437552897195520655930548015951644431362890477538580370045581836218434506866344349790103402366830574779175895696264734898951549205638950692207249025909839603960870048590495772564495526839896292684168084017049638406277726967868660940086853164856729044771848262435350708421405169872468401886799569481475237266638050944013173134254371190740778606871811501671987584117700764096465170056193960290374167608016317788011947396687198926530110996267930816106176811263575558102287141522571677403777942534562129157366229983555950135448333623824491975566897696989514630884137958204154920106510127124968473923860350049721543117846029002907337196153604883450517354475606892103319701207635132097481040341506473482577280564431869716092593238482899795435139082557963275355164543574694120092484430688631594835699814519558792300548069052366135537054774472958917060624578773838913333533880858648383003869438722150972963096670142026977768278389622637161336692281329980989469118100044961068142501817780497300167218110154220375027320166305377996340063442954181698119439643297230616540101705589309451385859462692480651634282053177210644345456187671083478554185031794952047996433874907857547524365101577496110466999563908361617569283885586864380974226839130654562117179189693594237768909930066440491155017859893288807373362223859740640648643767630959205889849581477453830319324532314715852271318331505020941961805171564549319082568339326966764642674112201674398905149190340902292540046813820504936260236932766633053350726440708435310530161976030545331321438293503787541553130239826303169706399650309896695688941789426317358114890013991207570666664630380483882742131327575374160045534778242719514302718128796837566388591079396738727336169727453726602291722527537921802887652433307337695896812555740681275814862694190733462482175671273533214364846300367086873096981935780217671123510976408018550950164239640214519734476877789167242653644427837018846019637549846742773210350621856881729523123502566062164921639713669530636550522231465867810624544057238239704700797928964293499887312207147829156558962584777688549367229393658393262649434911984053262207153751087388834138697633845834888081163383317230681217513929474702529014779335415017454785081599282353947957131632436952378046428794449074188873043748254274361276595747914676855546307590992001732867356469852511028500246695506900469671421196945433116652479921846718739774601807783664805898318638933063352367046088186585958432735510128247163472240672148638619620832994043079117560859079523365373556631000183920343965919700030467574591058500809825876547262317957982777631047009788473587592032856449382835383648845335334039611610450609945644069217460923539681998447446618449912275776389204719676151146123507111033898697927925911167353610952105445688232009382810211347427475467141682502044598896507027655269712066236701351462189635704662953989630832880263631459104048369873225310808027411954496018665562168961682548174433280364924877044365487908424567387311105329904183407204028584232213038099353092294367765659227286668079796054885898253325565640909295141761625058212850014563788426013653923015165905138339272423628449127255860826939897253889206565052941691313106145642157394736851928226563569054322433135167937597500498750528512893586682918514741704791681922079499040737591822073376584712687165627207661789352500784133440585071862860942808925051981309358607984856749185904940728017095399052212739721701063786962248545878352888688012326326614390230161528518464727545550479421038708612880745104823595853115957912600832872879888289274503736818285891185363152405486126796141576852091355166018344115326879514492970299792239672270449297285201187684849302591683175263620598710924954014023095653097999532294776367446399168531794607582020854441636141033701056590852584706292964597613471316280471044782048596310804672225495984172892753651933827288711153072881789547481047878622486493199639839884983553653922739486303260815090943546074870603760884477838788812031046433752728226109569049920115672868896486573275073507434829720027074399491830886215394733470965213802219810404872378977016731473160299305485457945843113528343304403977779632014447757207963346859963283645852844503731966848760685112463660742904460867108379469959868603132793890591698275187523247184258288307336745361064144615593745417351071525048987379209869256068293143469606347174308117003013896559419191903647643497248543609190625802481152233420374766834587303682608860904487614048509336303210615584893377765358420966619185326939585061332534898755075520114227027914478691505835894320950915671285934718709656446366573292538115174670829936817684449424253759984538278390173382617176323983421946936651245664338581038837951422485892868157676804074180311010584333178672686175046903957347166091887948403272411813280486557325486943260368667527658756520049055059294036361231334699080859811971873506349244016202067599420718406218902825049444089908019250955862961877065888372166940119707019920061811295392376614144170943957055245992368124185403119296048869055066279815677203757875100693764577775890575706525680121480697839196717430302237611848392427466467351726455154294237301117913915619490425063315363119905266894319710136431651423535522866524409760644566599925836841124768655876465528096913342706740525951695198623167806669719224984940988799209304036949724161588569602637583896806135238655058172735987124912648740586112728105436683344047055442126095076020644806055812161737222537283722959273894163986861679596375726734357232762749639760277034537213332685002755515323785779040413865234852120713271023257898284730700478847071105176380347752492020998277651519806208309005052662305859105845060950255960347193900307025974742026916454797335378110863649259931290145689019698505883178368392566595939925306166182953564898654363308920163040419441752482298616654188922117960678621518612385089238872175646931340897976136582649218312696725359421891743185339998243866430918541702811053110689683565372119121790848578713351126321963748178696273543430710844159603356096378819952292140706135689250389414266460021407459191455849729804288762085631300865136918726268091331494088323119031951071770315375077708143022490218876532764191957386180836716177921047649423439318428412682134561572948569242158869534069897078868257225565626621741197692515076176450197830786702870480500950799222293572199208873503809680665349516755268468099359034162961092872038327091178463451094581178753192496787865206452762285911095272374903736295763427682153474417217954576137125773623122413863948525448929518363917086321082790379258115611225741075528555693141635975879461108193557373427222221597464382372636131133460544431303847220126244784987040262127942339664521373909150735684490582659723795278008362896260729505912229897771303978472393375981584021737346078808341097370566059168376204408134733300044894733082886606816207349725394005216483178685236215922493909478085521453925786723097763532760887699704005388801047871956432272904635412710189834691434915876436805085523897079647539059927599030757726431270099312108744556905828518357961267201170794263337885937566163743359683986868147832577366167830925559739474156674900482874613161940615750710544070076800299601067492774083582741353177461996433641781256530084905936903918901780372992770759681906341416232819406546957078915382180046637997280199617727906945487511957422479321821150137427977560111593172467062939065010672273515357544384987725124139632429365740449537707530689647913979037755487493688974444138724604462993950447668728055024156903694749379322808318219225668849597576465457285535424860272870199159969783406073074379889204241416442236683483034553285389905512138304624194679868013441702063055284308985046557928493467344335980578968308662807910829751625868810245146918444214728683052590079934717980875397485314712369126399503348896100898527960684746827453111440492998239151322560285966651985411639330743960704163438745854952264664468902973847337628860314993196805755285664066393422346477478911853241957229608448589405437487080879706894605578551367162520965266271717071961151835490530994826786412574212714350729085634750469395519378000280901453834731896193286483883826143855669771777509800354349288053332759039609609078458552684655389609530600866384066602985228484809688479068100705133158183305542811681586292943049202803379877916601612867170101997340343044748872929260172474813969871893809313335244796087473132058176890780574409634468974257667388139224002132192975963565032530307289529387714255076100090019827024969406808142986224483743662641827808031781121478382896438937683423124897524563752515183980376995089202464055760324662548950543216532093334588336790228054780436802834706128365450320933884004214064087328184165047078697479897740125291725811125139111495446913986192196823686006263829133276594768744309688419261974236032660316752319522628318194212806046734836673434177409651497669656180471099979125176174396174017243217603069196849322095127642131812453270608111612691466866952189918270638227163851926331899114847093652964533705276767155541052198918653287647026106968543380879172564052204319724595559477645936610385296987918111392729684654904991190080573912139611013582163666591176888053699523719301477856305722280058813926592647228320332580897286557000528534938873274482979982435246727831451677959469180747668231812869513745804078346846121757076092498419782804955529788698091609281826376168790366893046558636904003175212668741449103831355449788183558964963613145075478419746663586783624842164147876187879949382991908874783554706565934119566451837558601672392267963665370228102564844010035768027565500460454098529340000981739861481244586950650581971734171942619419178891416926157291982485655064125541404789807631161286893179845193161538400014787210103278490702947746161606235437407035948673332596927172862990528899671250312527012138666817502848235247621256707124074228243356899858849113275925637298545896901978473318718856694404906692051108959807300387549137683776700341448158931384031768880788521505963693872457367671270266263116784103187203784944197277164487188330518934868888829779952477718000814913550946102387262225276595703900128802379675099686744682858957208260973738113435624966791051996201562590018050784328411848464136993317578372206736389015794564030852089107561301517636505980295047857659591497824255383939359932003397374422431147849094658056260097262775062445748530152753025692876366688838995564094130052867144651985848330699515221723370655434795752487990016748943792968156427509069736602304069999974466327149697440798627035416978332323330153367859416916076923371830003672906369164029588284745240136126890147664381433401678501748161850284676108600341401462585914469508937748917320948999062251658675620719280339038818442710133339815963892058445191263555173337127966267871065186439564390588543375696755230585563073893226520937912284894630738593568141863810240325296305539760109508959590471361679658070251033537027073333372720127442061490998426029519549399469803613469810402742031663001872573382661336084394946315529583953164692834066128443961304970913403128671474506503885240195477667114362756504085204437313462426418870364697904979821122135998111401705787108953956491274662870318232776848870593208506832665611372453286955567693818188335159372014423690289269114506652223138110463049469391375871210174649761927022471041718666869714002860478892159314727257739725216403417297453828869412285487260297339442908742779040307618062627371914442072216590244434304918652493665183052850402922921055697990542546289978740694178584850398221014603049830438312463341395423809194103398670503538763033487729893153058397113435656185782918284031199809752597564693241356013339665943113551723104454124611794292693739936432263000143828913735705536652602350464297694830009124442659290323053798688453947169580202533161509775453164843903723623960214855743348310177844389264604849133387134147275366582176580528107582849106082325764137634392701236930442115122045315192113717003012778807506488374928792715757251866829843003679535922313338732154721571208362406094282622045923648483581186992572659748989298353731820921113380914536702093268715154046432855625339096862010643538659144136787047514359218038474853978581027039028877943552957574992379422085403999156657920316791613834804350770526227066942058646030030798628684741057919087999238048829557797688161590007973192530023668112877852439993386033134348528961262761300489279832291010654721208182499534793646348029104605137447142093329562110877257125213846797358409984932942049298480454336326334277940811768995771049819006080130571516466595394047938075596448679550059004990483786719772342829545134072536468658545518296711677874246274086587843475275169748611812642424789123670347952096815207633887644108109297855790697151865312445887971077692204090416084899103879258349324006530216845077248096061158226777660716605074508413633262550478972614173392810163453299117327502227963674533091816267005506094969272963888812764454805441520384127033388302348004726260316538689723134572629505529111528487541735587886623026607586661750426979998840896453550636710062470627234824462665365625576763333155217421637361376638102856081868221767342185900175912696965255558638398804611709043768848230322534325580492676580279808466681516008546489554224485757327546427216244597167250417440759038253069057971671993287498972420492981119329050482685887474256891471930506610180764445098858879589002215506624346617392650195677965935790668603984020353469355268734371894755702423901737653675213522142471672733876919868037914188550314379783218884020188515733864955392527490425725413627887071187982484619497826420723287781283088346430581732046141941461802147919974260990299906355042644626520375329133447516119112526035218103694723062530090084733695586437139537534430079087137201444485272500606780392242646860051336227453417841484162785946249069881992120887662843031666655704477452094012979753043825913041453307564965005870862121011037539786347480873511848430365756956877371639684044795614052636639334200318227332799765637235172448008250779805799527723340744154433759021156623617717600281254284632858127085805461743942757100836450654787722709496756889984733830674853770712133006893626604251055131396707522555390512088597154241576072126150951524455795554825089813484634361285305028942171914725610269613373004632270218826600911980372758063703106929521181185061545913397331940030187826858800751035052339775331838460241165492741651988762036138534811481932393629785837746045656868727071165221269849293388840846154319518821536105042106402187851156461986450594810198588162377113100616694780237271557001972030936108517204843335298261218346956634264364310623266149428248377050693408030947523333398177584711628542906984929485461222595348416038862754334240649419894098891254281867015559483392386085458994743463050357837299813083413435056846792187027352957111426488355565747515518162496697567270068372582243934200761105238006783668087901317842438004137510459211373014522873529507514260829915827303020097466777065284191249467085275751768989218753211639474961104697280769467383509976123926564716543126375342620811930989146991341846818452690483033701045312488983157756063997589311140124894923856157303221630046910355438779727737669650412854788654011495043167033055625284324113676653200020904403114899824754710046100784512672575629967876280845519802288781990366610667522862636405050583624732416930679054620462102715967767156915106560600922717091961729152257391374551348731225180966746766808873943156859849414504645076062844396418100983621701819679556480593693343756147889881173394812064201756517814989061632658247954784574374586520913635312115595021471223776144044254437952463865162784298461907846548667715568383408683018377667175394093731278117343315568191419997394096680528537759736542952832936153170856814815430337873672193525348597156300751059211802530467742474726179441988977124278742313074353489475098194495201771815671550537223262081044755675608762784980566442249583852348889499906749163647757832464153061371031163186621918688931456996162659930872078159611744609218445380376655748237283699172039154079330345568808105289591171370001769575441838329899307036682260529472610536973191555322548435436198144410404003286706679162593557365243127925540878560389940911818635208967443640464479788931384457348139977802073843071522951776389085658129481925017723394385220655108110602409766744158975084633998852408563383357182513837342928464632329818555718507562622632711176774161034196839179062796638813822254003637437162434836437622277965067035090902994265575253911784784262851063279730860361109688025465421846681243068002131149152853239010146910079109087419121755300669519708820975701734287432617374289092877924766128314397000249736676849573551936990225698173626803779533864618099655101359265578839968397768051358883913255052331209062426096205916022772411131094212151399759709261953163128299665559937539709439091103646945141141624191038172405947251206013691517507287554301185217100054764317376657012387816013059859598389733354098815349359059377412072475597306582635198613195721079911833969114557095272221177922698045354141579692987415892023184341888326300771969141660343123809159976209203150389347459827922555649939087432989758900194193469370550821886871931954048581176370655077927301296488327699766019831778552888002698804026564159363850138490805197732982315843403844523484736099715658855485663199179730322248061468424204111624059881927910731031271489381257978686423535708118680136072239083438710428994517580613422854777647874381461520167857692566975487899446080876701352392927866672481441696387512156071609507004479543435456426308713567427794506375307494263625646898609994480657654855676669017313719443886625111362635443634087629398718815966424131384074889895318022743103900024699839007457449446607758862484388755195843214736311415929139837400998154241694949004741928946576325059635561479764717832313499123730979746645906751258026032633750309765377427047344533626111739069871461728487173984653140215150457033893539553675221586148728130360807520350157491782061759055610948566632819408646151664617153456513185975255158569740703983965434084855888185947600068554420895208245911944504299976921587054154808062386744660696603980115758825427292904650710156698942300023450832105624939929884940136910384028986536722882963750374079444460163325010912860627392621028181573060824393587496187922724377710520646011318991739851980439376737730046592944460167812021117216393987827641790645051247117180270068228202841474470329846832369906085482469114286438314296794880861459816599309190247885436961387915195216161120592535241090727804448752182557081653943979151925875076517167269776642701471692596015869637687175867890184723440291060895801869389100283877680140526699712473950176766274842556652617734812505793076681681501733203989700068318302920380287019059419943403325921278276521659401224965947977984636433674896378189400468363299767451317392987408215330308872773609290124772526269124707722807420647346099975574249279553940305476913860976867978167364839712537514436385486214858624457071769467541803478175217307702067825330670802379269497871389292728120702386260693203665528178020112784774971130209046816221352399235940706504605717617583459852543256198408784985860694561372689083309022974969311576127657474512374402699759632098305398575666540736865459871537593185531260603034458814692856993323591281720264708672828495698999961079341707188653652070230316825007665338516817471742493583211052043922179954229061579247545382467682821099865848827357327201672393608063219025528739491392919161142613748643245739429377300539478515143894360690127406443963492111267050941556416909958945939241006174064199087406335001178206113154534378331725229487078678430537421665068206577623537969992119113498667692707974876981344909369404323170080751708936856718261799456489833456430782208991098191884452241925594768908643421358799915142620711443366833149004539879171816674484008359700065248993481360206982076746949563421981691382655908040503422601991256065943961256574226258473041804723814598374660545018981891967962828015815405619346984722083512428339902991266612831548615156981256805585636072999361805668477406561934922697452417700705040920422307713474528213532758738135828524336753372969064883347331420566933662318825726969907194351996012369890440012362783325392265090247392836987475578380961931285356654507268785380467224720490918567844456977652117120996082440382199431347614785559533835897907553349635724946837097095152425396554345549507438380906419815680249129789784136069688893134199591028264268488183503785013728880780457320022446725213867177243175882590218560587619872512434342298603986574922322996597369066139315331495170026070247039261089600225257378462876177214677454936318573977065245499779209138978790958610517114619352408513430942988885033892611467044087718980640030964956519204789099122760487695032552038246670458408248930762294824037658601382295990970132648302228088283763864300458735370838307215916613256645181122368077382425895167635418315437190152837031568453032135241245404260125637834930758182902712920665579947734789628544473553858609708066453653218066632121701914427033453169703961685890510436524539075013757207789701795664785930222357271325069513729278253784040332426351737355090947349269953945525133198861244174634761451602760836546508165602883981655488502242422781850552319997137580472234709243326054588393555621388785713583181334570446467300102769276458201509457123233038977926608541965556545717688237009535555794707171895664731003713345615323464808187011581865616245638883636265252547356314103866808364263503630998786455707146998246392344120671093685319950546193459821053047867662503920907748105236522161648263787894753118858034657227439384607309912527156773853071679913517153159243347186828948035533549947691523346894072727899044822234459532605662390554144029561246521435039940574008269418584539849671421036778585273415691836507890486639081304736629863462726955784071611389221731261154223002915474812138954084596203868680491291846601748405468420085587202697953892169549748678776162428120089003057152767696046713562679249516021004372007240428128555774508322478047809754862003323406185542882278600899559887099812529931062616889347298492905778439136843308549583388644515968748423274126104628976420404988140261427674518918807369113472644575280843689105018264686105111285096397450297965327839000057358197715182325472327824393767800797912490444561429737263295723999848382478333289136699173841655495541588573421672337197533271263365847250077320996723997658312159616420875857641455685974607978991183894911289488234705504994594330427358800994996206415239268625095381255453706325598042819125491908330768564624686406967951367442763940809583655379601215235682587248684502013384234656520849602107019984629201750365777413780339264450686074532188284855822299818254081907579642208829944650200392101943343509245169706527405688528777303577655638651804406875484854914991220943585078754653611145904060511660258680969192551548654418161609528045930770968230939046984830810795723761970970867944206421770634474848518945496813266535947895155521736781245711481285706707426015200725607935914669512365082461810527785207190923544577810752060387979206021505279361857678171522427543908811580951367550896012326592958840031861601398681998849508925380156411325444133514695857292838561503837276797988337084485043099932357989543822546138265091556646150515682846428150597698854158844240284257122641772633137791410219638271606280762047478565283917783849249218327252499147285864491791868305884296307374567289179336916281307768643189569292493822810341749889912456532654064055207116683523813831823951933370242315561595408479896711196600295316651359040394361597529534773304598368535043401416099599924996517988757157280384797299995505234734149616278759928350202918666102178087472359272493992066267548318225590197302355591881797519299535841478189329593910236154723071349157997297403075444616167280384771814919834650552204306216439817858281372894810479972429919404386213229649756821129119589647307735032748375796972796955788166857417153298809104021703155146032980917194147222244942276248162960492115941840791147248524443103296845640683168734094830158232800836240292486196690003642633469192303486773921417524692465611955662438934082442064967722542111836636647042185339468567128513691230326080596158921956726762631613459350656401433418550994469340767337704909819663929737398316011682165034422995781945163208138156594569193642865398595512910031243755201567412651443792411692571193901208877624016700230974461868025821824664837522254832894769622815780842064777633457328501891018737601264810612269890142278425369639724227547374156072384422642141691538183379492138891655199587832242081442655645067772674870801181400783202716001008877634789646776536034036209000545199070106049797514635655560988320997858183900739210878193141608811648908482074534842856513713708685925906765628053928800041087015387374111060076987484754948440347685008719083417363997419580542734328319951814853788415745263833015919580784933557894066938470304948111024992785285101949186002114147877541647002782410869215934037071159209456353279162988120680456784748983967374239387638758371344084235686606444190173682533829393158306614872686841517353145407259457796412857001709355070446026071037979918908261482723779107270300012162158110673125162018669612255620565516260281334267123959091350382097313344765739078824172378342482869875597866001954444584371225004920291863587087064895392028070825211820133627660706661641492585465153802371059754657563925841283933812767149814589732117040199655690174103079780294024665096316927859940836707216100665562626966579961415276730655691901998911203035275211633144150149188620245388245513230063598506895524927684312524998128146133568805117937329048708678013877102833582324729751296386262851577756033077465248921258856098068687152309883855093865927259468906728251257973850485221621020303978481534946187238693354967042977516385970576373954434251736169063695909319679375162661821371846219706764504966311312946282412922885195856830318615019232860252800734856242839864972135175614125110782864580304140915805742706635135089588051962121724516530978746612799452825052940813176179294727862218461589202363328478090909845312217777021940220771729941670186268555684828696817225042088294248676295947590208565904254087293287389935403441278659037384215531829954236706251614071524154013989659106988268908172059949604521582950200337679493093883225994489903027407156541457341814580456963609719730172196997915269667242649532681559453319673472920156316943468908113578393650683598007373487669304742584385565413693119023181707037211340765181050662557329182973929515436275117660017013135008534142433335480608177551837583305179488205221874462933484447793979657709019309833572131699193682760717627603510328647707001302488183654648566508587423601643762629509390340958341927834464000347703052696150512962936786566349736824722503864107620551860027174576806131370124267677193851929038523697924687788523316452714191795900099299700097012195980382667918369143599088044354571103786009653507330987908057844023920361601656219172113146508351807130477214040469831346566879556583840278853438714590605846094907477985957227661466031876004785109611628411894504683227502785129161869911910982950146690489490389006918673603382599238182486806954072789908318970929023505596472057790627591969468987939642842971020284437956441826137735981507672492836347664401966551800556262131737087112958947237583897726534297426450453650371131625690118930030851069835352099620137349791216395954220176986661789612504046511330534086806117848441343688326717049124665418286389717251748135270602977370366249047711412152891167952563191254631736279375233085349062679468251806254897457644118800444044557483766885973132584372080118525326008502300805117025284902646256908263711851941862837327434380730776387687069587174161640823402073238653410476503157410443188155374088679658617138154738670269663447109364669855243699658170778159345494284043055796131715836551408121832008480304295818450031415628051498432348138195746119578221988173230301835821962167875491581392548497421896912267812092982947739955935097155534761037639641829829976083641843552198857864796677590066024484240810899067705667458730858550455704692914941472974260359132880934390901066388052296971680725087807645555436760977444209149705587203788483871085989077783579022837707291344092175544814971172674485065963513112264197143477794536447852348884274328338448846106114181148738886833167465069901073825733943804785822082556864390074628215322604522185686759066130618345184015747479277462633536193148832823672364052650346859975202775758484886005681295587933364990707861376374936371726266109256911471292458138653224674983991939399476368650041786787031354999023483764644114955777934933925405550926795531320616816410914830879323022187175627646237157930559785759183982513393321900639834438806718070926532800405736649642814207823814187812057958644560797167686473174417026905516816835490068384504619458644665968196978265602822170108491227613937217806238892060111931155967472915183836038106324910372922776438503958245524398722913517831028318832319104459851675828286514850269425997906796320229410965952558965221983989983324222031719313470519135278996915732463538695402332423157193347531311303722147345258236058434526298792189683356998692942653373492098542744090899614750486828872155670678584840259605889735602604517919928140461789378529622175859204521382367003953831846596432411422153464525155547402596412084334688415162274631194515903414567619072892420825697175469608398519324733829548477637887415395013909079101348900798169845752947788935538087280188921693456996534321992756748505361406422744232556399185009213595534977156746665499382193376417611135727225112604646856886888569119384306639042425884024589564223785540410876665252019553943161300073898779718749655125276380629468742149395115108498610479130538326500407290608378982604477521042327384183362131165730778013437670710759657041044238827027706202405256047024146862467374299267868015097269133127317827754060377114924667458284800396751907662610408491883035222596138659491593574753003926597425293913847134313049820703517952466952414204893416231188491652365305902186273348595244430377692128816502787269953430753775508396293167140951430694839192356028228238362936864325698213756970854085953947262602736218237467977321508970498478084520839518561643170219311635375172608679119257906667740683201543367061710663357312175222897258294844051388245951236589441975678444881134515024966701980062732675921667154492750439739838553450713860310609270720729445233710946897897355764052800445140200719971822571282699911981043269902499260721550376779919346569565511278181243823119328085881956046704541316128716213133898393556116888641917437613982697290446709844748724673962093003734030859214899366857751034066292607462148971659396266757078551189072775708822754810438248724665806253664710469137922033430496514946330046747583411650019597738589386289147634807059163876239181473985129146383615907830632934504169316735453880912622064005735886071241745129764805512606620340754139901079519582667258481564495685034229509947690225019767583989906109953723492082733624024922345779320040134524249497086036221953977920686898308868845067729133102729989074549083792614615511259381874488560332857470192442355278098300223605157560857504506498540435424561716311254830522938373960143439125890517423815002834366863324001281517741431956453700884278864366850583527559427210570091649618288877486951051721449529071289986565633055393121852514080669983263014048358077587372881839120985530658407355799194126271684009098261618939085957385072350444252898970961317962190329705656572935783893129893577535942294308990577283531951436676655396330514975504617261324629177244978821257443886291606068201937262088931274771448717394276014169917469293509286137912925230813792189428541720598871022091142154857719436600926197416623576503427678251669047472572772414847099725587258662785840427420847355376408087827797956794314173495861049097001586380022054481267011604982629885997332058395922456652536128275641071327592763797572187664439194138305421581627393952836818642939275999670547631360260979676958934094720885615396685979965495257364889897297936263317624803379726404686684673673850790548336130971061522774368253894020292766418471264064741896221404015829569400022928020409800786028538506783152587484567775666608585510129110148688498147127664277698804955042347156115024428712053512134014918976957660773480714511318445112704555482506206106293250650671357445510251677675694995502750970166030467754662607681972528649315542325953800921272493648719217203222044108226072977279225013281408307150013425473179762986360980996461783528538317548507289018799295994271159512117682335753615810614187603608304319976738170513760379050249888491995607405198914872723747878691423763378679274369584957428130899554107995598830129427994224253498499067458263556597327426653213964400371458458191212830357842693397122035526469998490003129620111238490865984603387318230942684389453867686519339883543238437894132721417155902355732627522839456666148720634317129402752051524333119218057200575283154858734283189909260565079238198072877446058485537986602630991617935521942190626093380768522637716427134281851133727277229566768468231195388441111258826806580296195258604846689907931434974675693992682940406137459641483442056069303380383342180502665447304480587196838103789561135455374126561349848214005895799478076598684863931789592771277586749129316819696463932423184096181913492590671310022392948424636595945076431473395098867960244671730210497535617979046680144633270545663357324634982857908585712703209651291246847010376145255108147656750623864236934920018617289056981323854708956951076504905630781421947042819401879009571718055014896255661674983164045939189971802952215763477593519033000490325641450228234506662550004250706662857799340058890264701821993385519228492185430276930546635029404692136861255719680586509523319289850213887067174642858319839256065423963646457704198911642004516176636553135536573318255711630604425177475279029646556720848916371043196205521750969134341611175162569117848469864283082542087303170562052372506898529317143514081687196473162249327813225444361262322140533336920119410696866238830944458693400762454129840438994479141916217510432283188627933233713543486006416899372656950947818282621820899604490738133093917501613303985875334719969757672875893617095870825764873548123612517542230519465291598566207507142490946738437170905852183904834977455696102160705994497380039415608044851899488941918906162967391793791137400407465059407879353929664403783453745569570708950639833131890376003762610995948962392219885240223432656866575972276626856280981938800586584466079457913345822157609264541238072335955567044943091487186766727197011962687650528543520542877227633890213083244544136752854028243890562658336521735213871381318698221106496742583003003449331097837361401580498545846770964841911971348554234180670756654768320581521829807101470696958984732772186884449015202125499580764040707517244290508604434009857460977987256202025803372443217837779943140335567749685830432534615460515498858866635937827940080140460380952569206043318008614265393642426454121117116536783345376108627396852177571731208293517679417670913612650285372583209280484811044837227826499492212899996608337083959438604953265039510283663391092667660806247398475978907295040216946677700415145053878827126325528820443953715494973639242453889708730262268672530792800533312666368612451619753925169797684139857769835197067470204827920513293545347824143706314678403419996997992001348460122630394154285596070244180792291328742766339198533593563454068411314040797091275393136438960582910589066046271175506284089715712266318976809074632125959487787783381272146948342335365292407348762388721989160378746972730240939426913666028602600745639502529582078193830760116735457267377118117652598418775153686582341971973593593312250396453202176441787558682415333472456691573584747285010906512375883473375623338016243962928741596421131264747069194197944051445614888499235929624591179602606955527483129499707447288973423052481766330650490363746588238265002638308189520666743830526389457372605809045840396882112570024846091370822193405342348639490905433828142085967474439303590829166319016513799075430938124922223174835190229794523341413542308552622574232752265559746834298887576116059555125713050924652897551664974825355330538460191713416196884631946129232850087515645122389629215403140318980462905416856710007714709609761516131885129198213117425324149175905373002700032873542261482921859446781174130319536759392347728764315788160174571467183695520700423316134316919734270190595228259121058876375084795000275767653766637764479973198057730591555957058037954535685679888919846002325844042381371520345467734590428555338601017981321939520160124973953370052654543203280617272760732660724923306939150155080423907547769771260122674343913687587755959498775180379052428115359969170810847699188788532523602470025876290089801550207717482250470753276861516319790665464062558426661690827226413972060010056397772919676615425949881411692147230243851303366200351173592242687130766954746988093753785381684813172411382807860112254980969222795742043482270886677667220994534134879822803728910349665088103914602889685837054981617694430631154039842067493378728733120566734033810518743549315358035971838441524760332965069352535084153794195888693665555656779238234772227675415216975143877437127616139352402601386974404105701152512499082323529890211590536206860748554705323827687209716050457480158618016230736973269273556020004705570558767680428138923782695924265156291139415685827677620554578968690944935437167601045070003425842944983722562541731453923014579746316139912437596110073178533571780820564514502320799737146404405627295550659455207979391046800494956790339847856066871481448393484224415071563446041242314359380665136247364815428069692953102291154565364132222142795594235524733385257262494891303402677889423365556376067305208735747733334142835606595662082433653486300049988810925998338316250115743427629363655956317111875948299343032295848698852553839030389841089483988285419629461726761803517724120326665487385796189779864276986927796345329664533519877520874357373247526418997631668383367171685852292267681009286753621971911337219596351053480793847989052486726976148094922647532196330650337441416102635181811539277623750634419653644289684505072596524561186210774914137578886510705604442021620174741486908098742502320104050885660758691465044280234579733544551957438389816968597198199427086544803893046819011230600706634532063678304337026426268433547062692782611605620332999846454769543868556194462269073492935816804552407514651576466896424786940751489887444296716734681281168026408007033200983112875446072540342007944557011669271103881744556348801100771886169945854424448500254436609756820831787789605782078503783329447308767455235570849388310187576436373973218480678382672746037005092151649554987623080115248482729935715994312222888055143680651881736249160554484789860425494898053565080346783609024987038473974868341359918228674157062388364751922577584968262719269934505423678352159218835951731738350424277482873262037716329002544681025629073288984443985810381205959225715317847466318300646455940969863037669037194850415402506379350482221494861078211955467973012177060096378072790120124419124894635421417507833040797259346446143263196882783118103175504734941156340081477461825483345428488474955399858553641904729841686441223097393091785364362311816299560528984435911620954017003970609374414447541306808404138751673089105459086250383484055213375881933149043402070289745511315643507331810446031672415145293895640462169874864420477051271439968076142111811297312055613663771223882530425818481869693374297890543936838311353793576476274683252139484499906041121420121948968941435890492433075773053264331684677508507209775674650300851962750653509220344070688030938471862761333309526296680415360214473591525162758445081588413134493525472348956057193605099018257290896255915063450025578468737885219571771623105662408732038127903007599288708598806336667054634141304739051246855143343425930456010509959824567910383894521703190703792253866508071663519507315280300295494685568422826971535784328239953360288690723871431335487492153739673811604476328971022608293955969803767996752453234184918582121265793345707561093606197522629734347541197305506972532053382823857578614868745755034891068725464683903519189470340471837364600133200149752117764606614290715769014977937210287211820762993780924125820952462175777172501827598274303912758668895211337573490940856712743268015219903649062268032598551434696464902522550796355871633525097854761550924981631532926350684448621404286335693179253159849960799534564913362839099989839261253961294007641911045470003710719834954003142749387367525153005405095683625622528782224871897302680225503391706673791920017331687890259596839769319693623502506606451215362060137542216293965312712123321190401833867873257286305038765533076983114383951856710476940750948565829134231374985877837855103973810949458693695389099190760235974996010866509806202729351452926982843713352419347702418849743279306883435314115492985138941171731234015638116716825476231032627398648984802474865677749547825087485783313870982592932144919078223347291490251163261576874603487244783687473025349858300743723562299865042872602083795306292041378143375392444169975393474668973706147774065780794892221989140710042059638971299799663562248056761198288309728197345930441761962436414725495254585899089427807925523067569357345180092168025117849314247438525683023067601753873810704184980626017084442511012250733629246017682203316399873660329679681705545260082570852505182424171533256323879925435042274640668050952817113234496271276841504788175463298891561646767242190465384621044517794442354766448605745554756001185185441119588184283239580929797241493010898961712366866519413321846085510881415358816113169859535691937392281691121956468377669629184845619949265949051082692351619828729361354415576215710601337787723457237567798916373870774306847151917712050389452795507051863003242595578225463136608671479804736965478603498770197819183367004568737591233839784122945370595279355408711833112384981631856145773807277540040290770387710611941727979529616099343213351948319281955630861199311624640009862999302518515496380133825861318347175252898339096039072786319572760189586004249663581756234756232959778689704319627862799178091576336636783538469023156204880450135028766819291210611708186160085069667109828467676212491388088402305153899528668986472592049410193388433436326697110467240931964129577489570502246228863915903856243900859031421519142529754824034735090157622734009336988400221416027151697220231752719947435479213772651402317141323139715867525243173829741408614771327960535763332135646075730407991496866338924979423658404781306873005127323757010626757271911393681398669081346985274964679331022942839595125445191216485940512671713779767448291842745763899983131244057971598882497766504976394597560797140033818039358707179944733471776812717563571191355174729544142426781350332953702949528857389912139617492953047330104009822414612699789855537544800751582439205090134378794642254486305703452947942268805809610583239592662133592829536431340962506929811435376989470527692496210029574317771137919604839701673111029742314235153828808562871492560529283728722227696491762048884617536213859403184373391804685627824073418662049311635633809313655897802894263616809622186609382118940444644593634373643194602822459280804215176302518228176605612105407872460719843643650797459094524120711777491759402665154175152763892649036007242134168601911619881093764761445195124653160790692530578097846182197653255089490464923062476797976296794537305447440024120993531179347839177628282701131004370183454591018078680406337746031666343056966125073725723151720492057050037313775042160743968622197373701440403700390429023553980935556344080437761466523111719943353231712213812467251416891973290825260360499442994518401202556020042548362355105023532154845621228489779229870198976865220164628870505727643901194833908731549693545856309345014926926293732559350260686559375092814881261499870149399270184721202480982506178129451586985165938830755175309948713373087391335435879107521426030647599333553755534839200034294650669555509048313862746637363772786480879644079301095573456817259457166291096560680044082970762353394545200900883023995391543321502451155670118256230650770656566965103922094931330034873290463023726476814920985223885745749724236218464694280869033432219257344269982539254161274458405392131198565907290355489042031198372799803494663652748863505031070761765906492272777318906613505570142257658093451022802459273316788745469665488324145022849861525337637939814051912838686882368863910187527900985657791576390004771524743637878580613647607849981118480530779399715172283922032403800900442765787105468417514316759820891233796575039582811274427634991636837666428539718703262052345655606508969018105214204310814612600427217364990664926620713112231693789992980284267033470585989565584853324608200338984868961465721533685337816214876398540695537407808369190592849034263016972160280468442219309876300506194822318424217982442173096911019812006227512232143050256082696357506537663292671811358216510609362028904943121084857215988618757357525335151819098144629026166423799409495002493613013714603298390238034785722848618320481931154231957936707651110768349205763303622677682777434011461365299677218122258142564567177591944049787322539744387697307592999869885027320144975871922956358422771308971729957471977631785242244123875629623597925836916940695392458327406908795478417228507066269552432330425777135246499150813063052154875846011275489248829441078526791515696925464947675143830871151160791035295540515710695248435614005738409236794302666282467829654072407962381010270620063324685058552795531452536419983227411935413940804947655637864293757474753528187382712560546273337737811330652079081437355590376418515189720505635917414719147456552255765127740227833481295366168390168048616935626474229928198200932976085768326615558106220938873067834162793050495232332072024595595626323977665509634488766294122659843855314371752891918460122342888829092063096460702799776459699971849132243436577635291886531567710641348109333205461368935414269060106755921728041111409905354110832578943741839379775122863364369944854100403806966013369195526076901563487305969839206513558814935635211629393930682216414133786637257110519334920376209339853823525364387042641822029425627739320670823168291150233824679115643974132967328165223954482726798208291563169721160697371466950706268613328771296098386797631753887261442967748271755632075008712118053997435893985928468180927644596862909514374140686783055800322736512305022239916400413789410887333489724933941236426554035791495772007524597128123431209517747768904554837391594272552656667874231427098086217777065727821769991475286630436222113067717309342805046421458941151773704148558253794189173930324596407651502773815561584771804145608330432283018084186815066382309937139017942249177283765284687054536174811126237678771812301985159279420768272660740851241271291091532488576584687029260125825400138813932526350688296096444352676810313551286417774087546096504914095224661129001219588308679428482114428565817220494828900109408458770280494877787197485351994293656827463995461414574037989245789729041743095208153407903157751597790411989531966246811732970218019245246951571574855900514375593441884041822325305271342460083441311364285352692107744219785010450157556125088283234078038988974370112531166111012811454797071734853117803707397859609300606800266046358006447992101619549728221706916398797867773063470942800816970964891008462338213259827801964947902566913691989538898149188190015882529967330870075897968527222255578667320698899908554520542139996160905616128161307541847683876089608557514918092999210220890119975613776907478747286318443914815798001574373148555563173201199527281714207846660297102433841417798028012841264849924817106188612201369996722091997270774737693900830696366661656415515598505819583947846038233273519966905543674911886333513534255350648823331163781953431192286052690966386265489779824004521805827510329737779334705916883134283114497445737217998514557581084955835412108629441543366775342537628292078864454146267804754193067309935774628303032127466713343901041368477819156800110364345058044721963139934717079587365374779388408099474895084519221105105652942872329819280561332628338709807950216368372031080373412748798246123507638505185830474577579658317097322710536860930434958695916693046018008225876729498525135954798541873413782968564265211028112343279988620566258746168178780420091405638265084782892040403728929982823307753670833880236340431384523292364869075140248404057778664784381439793284854668077146417022319607625385309850801725510765914455585281503525268230208187648978687617964191361887240557611317050833095209328052219138055475172652151464497749182938559247443392108279097988205028137570604993121670723604917267208727065561272880621163209517529479114750917092233326722371454994156160748054020862421518638365976808315948899609132858486467254390360307546815588217656084110644127806346016220062511641749394407626852755923562610301660156752814704341073638931808630846630671614574812454212898127092914321950522363004215313192002242253006386893079125198933118420282219609293892867860167373640204934604893759681143958010388464631243640363182907413886944415474853723245779395393473438555076571900814237005112914060881468979805690730737839391138790493717646224746495904729115365263465261683708837719064509481115324484496696983602443235278019102785568730510612506260108687670879246992924671112951079157474037229772383941754204694042312019338935929080571234475308653215627309266161224144012631780009119963678462760430814038564058492545747337650875836970644299725977359361693422961168691750220220095543802804547915292507236780596101401724715147330639234654490995492385686700017749316284169410834483445500752180241209483506947761879271734063408854176180967802536276092675246734130254791498227535281709176550913977319840317523101553988959835869495233374753973327102928491417696829815804917124428646234679737194428723580464626166933617780162159561055558102719249482744273358806732986881351195606537527288224581491733258798904548655722020201803105094369351034783818398159976037331217899029069366291785031026962664965188828350530440167555597833208009583026317977008595837661076127888972974702665887692028744667478396332264022468177265331237118768037524216013263234051616280375920786681822034230412181565766470363278549320668100042187760658447669737421839112968818611497937310090855521812723452727923545894967397423904433729617973064177291719466415575538892306818275929580164024604005910617224239583352203633570856143071266159662857371951661564905885558069786786466413694817574392957842796559779069308124262433856506588545726842932209365932091444813015025580560415823521543513756623125596434393604898204206322050302475034974020541609210202303711812402016270567438420573479571659138130776712190758482903998556484801453549583824424917393359402646960637185338413228155609022278221080270696005546729433444387366040823043526350644593756581298100086558230575767871665047164753812537333482582097153061669994909800873579745266032824185107277249348992359555213053148404358327860990673055214666096498605145778935198758609902607402691363719748675181890034490254679395221875761153248166939918407250836090287157488623574476224024391264889828227175944062536978434139887407542570311203961128947874491195475641776224824356206106254602546195100221488704517105442988689283938310148446461072606549044614335508077983627577869617049569734743349253123684655398248121632424849132178748763672005947934918860839097532317749489351985770579355444158559605825249719569124127702166553523577464699488783466331587756213917454218278732661312228777110478018581902564870603425490476183233795703446296520704458492832696691109083584839028394584433319104896680703705883245464846186725815599189728655925477084648481548326655439893922671099726277596348722381714438168445815253910087475291932608893312884304896305756334265084446762806725879991908266797776914387344947963466023681051573187080738970518796479722584760849678195384054390327324573775835640923504720069355955309272982129909780140352803062529201020658298188501872517442433446783952008865128459264515282120379150096670226196592479574330291875837852116898456984127426500842846699601901636467843418325238079362323464214894743302999829273932722747938967644671070026687635075337319985025952697422281559857158958953266479511173261820335114401834594245944845100091270014875159369989991868183362583545289674259078075885530484142745942963546818339862631834336936108389186493732347267658052671267414120159534368781888666267508167918552281971376657958766068319654249306666345940505319057493845580694471420684215008454139710359226031083181080698413635055122659130898706094351844315764148475080993539092667899232656384396271684555389743371624816796704102987527457262428629616676890632156882597739249774371072269297630310529687649134702761884757227962733842134335570206753340713702219286471744997210605526245222737070366991387791041235253686706523510635588648145512438919922150369627887587635019706905175654364559251453804505131391989810332735847254104524404628041959862052005217981741809580671220541906490249625840466874184729400749133788689907677104269548430742207178394803465208866048204602655405546446115668686533004989815778713555095018275315001134403118677162920796436262804633479044062143609048198225636556846155032525216259415856155399633327339597395003154939386634443576048462654491812401514318216710743501011158810104143339391865912743240921057797068819706669041757041009893807254494180845344925623508193985900255007224602384174092328807060289787384682700354827879351180190457918062767636697288197815677194360037815842845672207323808370931687642020099724965195982196308319423839093802128136910736757743808416072365184083463190041313852668516598885184668022614503227955265736539472082764585035315922016440788511386456373600752742810114883327795411352123503050521644344934478587915396045647978975677729236749931734930405838165722259102218666473495904008351857058162688442646579762281460064448143188980255241483783081872219143325261734667193988559689575907164024167795079312131933866751534019467949087849674463088202581582089584830016804669092114771491973888160867852348793458336951064894397126443302263453209858625660618591123428537998135886193973984883788783666411435203379388457332796810986507271342052112132308694286401463187629078241907517372353951569944548430398896092443744289838475815212934614659719953804932765517680681101957901696087478766974970993281461991859366344876430391398635691513612580726799401592264879480696707759898246917808145181367221061602836690506973100002705626572690407125544210106012053457067717275208446619973479171505002058853658610003254790955475488135037356120953933175422117075616884030660952433815038160247640455479274066372853904805777708955932449916677289060569888408910556803689337540610287394676043898452793697302227964725106695546171360837276500655463918735012847443644643999315958090195267005386059551677468015955686567224750713984693288934887910890887510599181482393998779069316598583949829767478368015452974120210223522093695139387979332802145720292028952310379913753709193051363149233104913521691750967738730866864199160961276574923584601568878818551434252994922192149189357816379920410852929633204088131507877481168670277872225136492768027079772446635610059661831875845106894772816935057763956828973028654787791584044866398686788510068290012556411491757343746929996983419524100878052246002145264689184420557377258930338226668487375478429086706596928893420765987412561469136420191012691332586040127090086492179099260481227596958841982288929001705947843909669757489315599184667244909223396851967889902417726509389672278995491915712778613210227714544268979138125545841039574138788446452277360341628119780363650152827856153402601818506244969847421405087515469358192283899329830396945673472337004593634378343687449632418724938255890374218023279692366500294362114763728491792517729451823444135709428809147136867548572794997804410949699569376836034606976576675455315675610178287165797097093469745602540373240098995750406622094804458179971547702068177201171952205015761023321761966138009807699671739953082399800057732611231790038802435069000052749531085419106238865633334851322830496560018760180064579209373942287676156830439889415073860584805484465624940111274153465333390394407377382347874864865406409701565909180432423347675401551361984611466161280372464956086542087500849743394256741222637864831469678892616686615357092909731544297602191439989758859796532542377748455983119022771071268840976047557096144082170682347783676819688077786324403440553436356859614281292360347685973995847378749833374526166376417856575392275799701037366653045782070534950340585887267439263340707299545975438095814250423509285278686578273346466259545273227887315091755492022576292638678725571522205040282229139821673924432439470986473928209951877303373112565963551612877760146449969111383324782692949058014489982155064254270492784820633973418541992895520626329614282328263275514994926947423831461139494280107096370064739380237199765993641620381477737959328100379980987232720711936817656422235656351186884908316561740224591655762286279436434379030290874549615683370072492723127225515216715382976834906390037800758117892050136736379069348502255417074967473660068884460731201656006798804958417669523176204711365218477366169311938054523288656837629965897912741979321116144596833402833842470958750413797554858075153126655031128107087206752848438565910970420936427241422397333866155700964924781669201677485371208389143873050055310876942342039628943021700797329117592058614849097496410597075433040693963214076010155711155585488336166229107891168888057323192657838330761121741004114361249448767851225518169140624107414701902285759971257362057925473017379141946506745920912258574651336372222949000268396270403490060151289115326342797448059445641726019542810566371215946233949294090603388463574631025643590303602763911502302688448404522200858601657602883191521156769950037344255135739419406408341534292915140452622507081545504925745771304415463145646990040858343579189574312224440417986147724963549220369636174191485156034004948669926376032888904480213741894461792005163559994928590758855086401782182917442672255718552019066608875812473828002522996578199807017035821497153563973177054407162508931061711485133696196034100537019009713802617909516075550252600357276402022914385105821047251510394603001002032209162724928699028966308695257388778609576638424675469614446889425473791374761296944038153391732569246198283940214511013183211280935293994206060370827664753549518332026102746565922915679112680070292383270816934129125151540575310982463000112271740481979414558531771650123095885919212532420768482519850848313874698052629614143116700452870614076178262097904553704671889547161810336846250476160978603886959781024339528106701203212303820756413072434176013636352474655538750111345193620736935573354884631782754890612509129617676863863108332421707592747049358246427800965624569079758854826326146552547721926950742980364382528122557249908231611960553539536448926470866489000667423515479090449342499459330757716551203920738275752623507004428813755021497496871184078561016593145729531168251390215318134321639619524153447582347870527534151182066543421782449074981337742502219369596651810899318802059153285769784369262286223108046354071990205815116908035611232152850496218134688745275768798686561973099759603020537416273814598410916852480743221228240919376304973649493123183834865030389839915043419237683397571650076739256870765441851724210417448057592604388552868976801674746452512146420704396961282734356561197442951474623246484551999319750327316242790846249751234797651164064164697329572716980049987637805697255405329233685460554475695274913491123607354999753038807284175727185737951165870627208167060762087829008558140708201499053627296020581664278815580327139905856459469522008800071434653126854667315124148079762145646464959305657899553969008893936396642773005113891573053929357316615593831656565142998373220556819397420258511744912342022061430807795095946278346019867672063974966468643573203762875374251393755604082733775894343883890336715823874091433369305087513308049349760077240583482661264141928350254619116183868809997402721090907225846631838321380553354476026355126739497537509524891274654830294822165315108952039592647805251947518495108984159859307782119148940809673798195296927901220283545825703446404547127994129394846727004430282515923798065646765852279029116745723356483036725785551335323644150489245141374677553157201481150434435053330175466987434583855916717894709228648790244711756213219391406329835836427696221352143763735259239922260022673664695162546506830010145202494656164832771974615510853223198918155069215669614436553188807260257159061320257174234172994296205012001683655687933288826111370731255387697316718923166098475194977414197572515829354695954064961201003452336361676291414543787784561716226408960233663597559997437787908599577858105393652627731175215110964670041912047216241426932576737187140871002689726628377435140794900595015393491494969104599467406364292680118046942218472677980977069603078337357552021051329702773142062810985913375760097689064213834639866559187060174081035966752850145768315118461036641967194215267675507165320963813049244688646222547899619795418155896425051057430417979830318187443079349973097018751629384370894843346679539393410494021403092746439187126590743559313126751349761036600046510293181507688542666379277434544413358920432149823795332912949689568040020362220459802446151402347042527579413320596550646932570478766209241325472062912633780484285899328010158096822315555616723365726753731137888418282545804022758952746944064637050297336943365446437052382135624636839473414025175565884009727417420697577816686784577496935577589044498454610751473878284744539993345494458461337799491126825815728820294643715767820514436746889776141625568920722569157666109083550739999217039885175008129568671697174799443758798088146137719096788269339288001140150769304163231340846471076529536121392308268316542512121137108807731147271805211548032689793430964990502842801998587095695496004484484374536181331548763928523732732613185576993790661280111029219912660054321797122852682964024110140063524101995310066267519903746064797188594469095617751295589734832630351192125059462577461149243358298882279687745557383097012284211083932739046005865003387775672316788602707166407891065795112207762694668156783871111362642082466429268132432214610106128813886135827854973511046906861972432290340440433600999914286261176394328592053118978873672719544038172655442128592687820616645149597021569631494610852519173160793717540280655334385054579924337572293634354331427755624729920016651654715807230563508246064657394252371501973059778038302909926678479979556973726059263541469122823012960633939948142450127123813668957846964864796596593994889991959599239385249142190512947185822850544365255817311813655304315080117425492482152715996703097697743558447535620596457541293786389197110175821380224719255782121184536247855465145224439716678505687593435941427529315496487765239586258747392944445632667663610383147642401249172912421371667275727374891651346804830336463041610093094637837160339939034357912404027940927485252578039486605078610036224645063664173814417675791317182373834819274012146406724260539371893228715912464651536100886759071393023928930773523477164496805381511004413086921689234064324328221671887040352341558305603221888791067703496480960070267289664813541741635501483641742365467848363500989271018555021721158854109583424145958107538264813695438279907947262864531838328747384700223889234228429378134459876362835453745507028324124660863855753488768859580594401684021312825142546656812966735965644608395874101975982317454545130871038085951030365685122964970660052881703623224663694161583765996977739963481668261000437445597455671175107014393993449441512394620706904053195090001992856744464883155275648197474945659570535624366502615677637110700748797413936033236278299030662670724593131046259070635125131605299029929833783608810373714418542759573023734751957720782212068729200011931956180962222397419669928263292988633492515833347639803575303216520908984015739147089175409543689811573801684129617181992600095463983627145319332020597150513237862288169047987594791939736511354230479821847619866979856819312308255159335764219598533947973314350050137680659265676609041956209386596615325992795808087366652576219404337388749091250005077333085365388456489660503975558594570180765743162183026768622113275050259902362502749465509629753274694063993178768672574309055666044864426438719953529927471366978560603291629512380054759196199674513759676148095806706685572817880219758045547953162509981123333245176404115441039068822644394413037474322250996356674634593583398852698863678672070432628639584842559308605858818533126177673207355681925569203776108030521504934181431552292435804037797948289219781384687014024011216160915780804558481189795317713719286190955589463588395752003502694717990266635182321329861987533128235126802836957228369590493517075767696096782697809303329058260193453393745548381405186676793292008845755573890336985352967605582367410548364109560479866143416931877338121052929346042927073463986768268378740769930017098867431358858830793613403527343742305268234623506093035769679028815348814467741915964703299514396424608907131160951700336754840289685594250263063758012737901485023310872631032895873670709923762898448066509443622468553341301572340120194479252330101800910260402233741936726046893835166035466066654398877340478443202196171931434574409806969843685592270007359280215011152744069361108988039124822094924591173722072569728343661739134506049430761633148385342429100094890195077252453151402035229311296413860467265804788031686837153163221454447280480116316227812779697034337101796673135333350579750012954547099704422440529714922433857080623853329259843294246522820000868264762018865417014442885532340874994337573974873896430207276750795044200696969106696263693777841140311781114286340576433623196738039055960343188086782592440690476917594847174813247249425199145578653728137165802915591000141416233745894812270737746427199158254379358314591414922005682546543464588872797688760331679145075078786074658694168177856814578770557367899909589038984485659377028576060384398149897532085955211443383127574512487014894973626010847098340360827211964726311855529563449299350224247281253786135653000931020116730385616550838997031733273541689009926076316266285296567198467548642310319765325683060787610941781283797717809859977240396010283070293196641698671246040719617929477083057897770087342302957624028246633892579082029780533714137559879299814721246113118234407371908309028670300567859485935153833466601956457067400555066985554455992794587499695481149028167437602334357098126634797811750059384335048877582178442136794809203337123020520559995329820555063603496419093068787422740969048406503183299593788846513522596398063056544102730884169089767325551744416122115910249815758978139274057378786301310083926995606943849283721464256282100830830368407177067337043156074857529708574084141130785871269430352498205476850225470052487473542218842615001062179341943512779785348537450749315408956865612786346634687082426760374324325581691898442716859972305658518628258783991432711036265674415224423371861395193424855928945626403725319276949577350434660871622079271738890053614683077977738012227371007264711217730535733697711727148449172982908023919483975158173700817124588519424438295302120890158208325674919841611187562671050294930546977058335828103411402661659360476059477143087220774814181127000442580166349941118518874837216643275053731056392750941013296824324898603543823711758911834225958253101294929442487570437407013198946993248605738272349979781472847611455264779016321267597131717909621209556508757394105458179038795995003911489605155606169873289999972071848521512942469370290698180594298068790747092389148052479968797337737456982640167934281855630153123816846585686646239604203242641988438614085801264723987103304998535157312639772005760151520770755705564655904320382441688977851785040968500339035137142264457806860048111269135844491792609264640500283145078580601841724359738602956787980859757975644467498978990615587078593593252595079510841409182436331794668284651066223337076323780633726860020677584985884753789099287242282443717512273447624588844373066381402283344892600143021425244784989444436669287787850349707694461047002533811136638786006878435993979030161296129139288427237955047821174337491483662804182972466925957599915891843017345673505449018310868541630051043952662090415066655267842508740031356832028121673443318367380509130104637094152042013909543398612511802561748460092047438581507554387920750969197844210532329105724211289366821268303898712037448410428081533041758966114908068851751175333836804198529782977485476267877874063178704428448668113730879372473148090292765111364733668613627010781511590811400009856260740144309363310939249488383304492111816858254485229511127874023954705136453795500805706853214900166701834917353912138640672384763520943074021704128433501979108943873583186242881529434026697578602543421251943926326652520008210850770655697597638932364691622402300696055393669558457080534565579216779746557246545961315030508550559071829900966420941748219372593011892307388127544724430061631695970273418994392066966518385569316237202064066386340351988407398157441606269350290702128916960116250714351252412338679328964547007368674449350269928324322588412377685004040528153036038345629003074956704375305408779040248426655059815113587176428335495912411938719610907852552488699645149740013883455388397162233622052540529832449300621123475237262932056545957905937072104699887424689771372493027115276832010519653854374398623339876148573165925139658029916014864582593620894960065905874573368860472342140459137870828260859501907627146158656030765483068625670291578615223121197075926366617157373332752434243243667521061427727350434391932802509091461630578480135481934746816949312814587681722141047634940229300332787744826367626515030637857279737530695968047978560726441162849080072516340931166378216152036459855941720710689238347541372514265248411506444790723877513390130488578401015802282445760686898379053295750331999237899621577613987035463793665223123899978095049234558618767308170308932643250826450034458185060000048789684710974444956875902973445443460943759512167234985954131355903452196951950385891851191693921902683178055198975352118307789801222572504371144531320574628918253219457069949609459197923204315426473141903131660981011510804336840551351920860409161475268434875349567172102466615717100771492707926854859710943368922758515978934409744492454598563848744763247416877901232753252046614831311833045451530196051536704528922957954207839575550025594034012240225719142265931039305166183935977417072623012986687815716771059933907081359032750389983075476591437931877710130037268272050550835082804334797178069487115424819959129513983896227795813443667734346567588735712188423288937278441422063934854370424080484352484647929256047649066899832229650486051447027286166080141131276093303408778582327200781404999079029239455001014521610380528813045648633448054331793805789600601519494344203083198463565565470140846797895539277679061641191266404325161421126748453123721759064066622308881201979644344080228572932478008425797468364167014863338297217782909538787519566098664986851458311376449833697863403128723114826524685331317373305238193542860176188561580564671950518646063518858719192104463141993870575586357725462761645639846510829490013166136225807803613796103879280792170279405490203854736841427921778418014107398873058908118707888147142662694686076382911700226847507983785375624619362877559182393408957230403075434160821587487521701351203207080650472545349846452995190798367762580344683715719449035991291487945159639432689236710712709607357180208372802564310695151715792220313662552928163898475403076989341214309536312821178157293221730767833371760449042407849051221447817542782012333748898040365525085305189094469686941971953065548670707309030576265117093044866529834072220117913302538670475750507957297601526850072656918728058400770831181096833888057521317073807865092296502173149563167858995734142821708582976611599657325312475691565105042936997009460401971767710035086122522050228520858541229582922313174663838581142981706232251431150702430995846441088565135659044550760015680773163941207161265882752467553131407883271902719541705937307387975258089971739497469614045399273048210594063520972616529241982535244918239309592479058269586876797766722564188476568583014359908868840027695698148205768839905779361301889572021018572603545510096567329778898377811914141698542886355455656270237830597517449181458809277472520107559586810493884050600130100191845991938157049561337738966672826516580806223287945214352731170876516888111212138322994281715301470549278082000983134925640330720038338993605287902102554897097175723124070384587692918897665172244800908845681026648739967936299883175516215730689452465443353140988470666936464357594292113453193215213687001983560985862949037913639460079501431047794195025829375532692648836766425945950773241872759869411327142698263614402476925344774784184947857138721501785220668230471136163624732436786078230309091609486666125490207470042970263978539753821002938557523916734376787952726592884425165476655452924494420712685807562467176585577175788952071841120044631471989728242627646459463641886327712162597082856464811088987449620256548509097963800092330306102272457301248529693843362104915363774790017391662100881291750410258283806114259531489589497812893046615568199055160107801351905726184860409726037681049522659665590767219184557926834808131861941991861483523285075127322086847274735459258647669164919156298235416027715021609151604617568239352993627421278746109762158659439952705859526410496751952377184099330562613816750450211818516347400942963922378347163808397180794049210990533734390991785450028309499301450947404792645954087221296223098981653679557925170450224174079101854594097980737380823187711992762187640052964693978342346939796290937858082584512899236429096291373978171004423701511793664215974776866255499985537375463015611565645355868127560407900260409757557550646227077111889288715487145772278921586383525019456028133851077803086525453877066425191761313871592098320371553749793014153412546267960626305814644747747218893500022232880857371022463991988870862458973327642174131358013323822058007313829144962445770390324863221048030238841876699779616762717426233318785677336542258277262936693286533601495304040937348681946390801467064716272664497050116774434233583598487316155813827041610620821437733833294565662341570274410708895841474076600155525187854086529100585065918176244438587266493191314621127556837134732309185182511012094715821898294811013987642918361227005088831492943791150911420185645151212124361152641354940716581437617724367985216909817065271099324395484203746939968520541157514099432894804875137791653770567422271818100725536161875458649702875944803929852767637846287585290280631782144475091663243095019054419444198717672679623634780797967778956490549057139946052088199911346664539364587079479575226213185257910272328524033020537732479941636338688874358128749939512990044222055658636364192737712063524423452460775878124808166890374127277274854815855354281156341526096775626406675167217848902956038902352488335548683460530925984936127872584533267592876315769737920263431699940482349084200018529111408323495344265412181092298855981559664323502316420702049692873265485105072704271921851667621725407236790771886758340875782493300316936382101433151729239020866467187966303456652433983469990194872505238132537181215410655709452331705153385829080152606623745211759910713031239938216683334349748766671560996850057061024586060422878801805059267461500335869764441079321256550260521179036229070830154962289847119471466611916766038181673499007455215825412017469140337312247837028728678185909300891894159762270388020252469859142568535369939795591831834033232771334115914083934213186540557102022273597431801583449269971035520188647757698615081715716195067921864374169791832465970828018778750903468151582742182860649157019719461160845369587503027775328022968669620098110796921035165761281664998615116824394953446373656144106409133038525313700029120895382223752287808034140359495699454025852602248914812618445133047153342534704926137317516275174095034066534781725150651506355915046494608588296156006581910727949219182933625404437124435724305783967896920922443242564411008175429727751718361763084122286837082286661620470854270085471234245167543740028636692837273409675708707330469009207085808216866858879618507468365394672980526889550903137172941977479356454219805143084449198230703222556884605800202186124289863085773152173584225438751003436091657342858749935313979834580253336492154783333612919422625156471101486044314849999331483672483764544336467308719274606208677503537948915300601107901680067462443225728511098271739490142118802536845499949431090710853492250746698022097099169071026331787100761384116310653058992718457271668877022295573734997753801321154086412680325527452135611042446637816948583893496576347286474944563087741202192846254595009141370432382332448055745505683578179814445076290078914170519806320783238283895490556956268126743787681758662014671430173739738210823030344031858797677058406012843766962702793405991597287128546892631310311963873868994724993394541240719670607345780810950730248268228614125102848596679361179723530032470351411351057272872357585632236260727779018355848376998577140307504983822222772727101000493613589827172348341274812283333299760731062427798987106009489241874346253184438966417534704001309497174976501978653389746798883929773250141176794594636525426079179245093300763079144376392481567263039429695566590498392533762362329503064191568893308926456999235888482693260812386722833643827866744663105591191601143623790906273449885421746120086258665866559625760757998719362708458271937010834220139363374013462287484871285613843169065842766617184020967738493307001825084949935242323448826478381352568202363876076354021917052900808743883229843299504057473921115887611176449999802565285680962973078175443941627622540343004794459853245981412529653396056066107868360437893570937969354339169299965816983422614483959705544381636093363027730473705571936195814385503331850473296198252009225530785358304378394722026210603591658596242540979223740117040426403665995304463847556701831726815353059540934337891413892070973818610215783562112290228445372039761141813972889375583866192103578713751637478244260796814229131952950626337439031104437437881606754112492889289200102646718563823692574581293404336647602150795703198560881019322581657724143835980463271058361007554597505735075129744085182885130551455139755446486804413653337039321220409022246856300385611364062828616694256888929710391080071813594539345221072214134758219694428196507214506534297133332001650950501241624708687855282207319425329666824983844132127246856686502262173246624322968400978443296829287986262349443888579682268242198454510064296460932681045154556721772104378808380147628320456462999064560712673797303357307424907524666474242282730891312646843923063977262889710075179754701048527908938059395046328614253974888487171640340563379120275561282687460761227624421682322181487762906220127421567682882141873589857153690775083513791475009389684701439731442044701246796170318882439522313753255872300681670939686483621133602823257069038225417058286633156878761058949883217293864932367511309397535070145836721951647383709903120981764033811857264146098234284997805380718663140529284677629384007869699195433811136880376871891542343564411791559252439866031330958870206417502796762521155864789909496150089527514225301056628462259946646570064469938048799998373943730723651865501598807910096280891450716497096539863658507681788056920221360401822674382810661692439218411503941478560302229659626543660432440283540971444770412216191162417216173084047329342624716196748936732096923256881858585999750432625737684287831463894297430612563518299734966539412343471781906852431884036921643233072773235808225224248138064378833558298940604579901465642008429739561500759881815365528875465863581829466847831513007685748341927680285807141470972847349867102556167692212704876734478976455433037680933714729336721728205366166205406089699997788611483482027849659546583933777870927721263281962029766322961330623444299755410957500618888320416579275778388637186357945578013082119846205700834559387767514240696420611588468701182698533426071450811665753462355314057884809928768289581615141798502842565378487738921778609585172102586490578365868466647411237586076996717024633722806185446497338499837007967631024885940745106949030148501857164957425549080631166079806934045929841922847432093774329736331518741059357381142332903009177527106861623050222489221715365629102323558396460435823977336132898541295755403355900491735841240196421059700994452185499209677082467492577357066105741371739032182567183471401100598016916080565876350804976444786494867229164825764922764594662955798761395797775650786106002146134080909199636137299607117497776477306731447952388745236666752783121988813368460702071879600789153287640577907980931259562707739719303450171450275077461390020853739754767182171302139103128302554065015397931761700226147783286502722439533797501983560527932880050007612832409570318949330146407013282658664893864427672916370305559296457123347179013338946212215461880138330454731627738197005910700674422071858907035069751156808045455053640540184505199985251078729235400963305748239765267240508343056138970934795775885593120836932839768116826313625792465863208143042637249862692982321592165413336602838852478608276345368201280310234946402149916855925065139198760823659565331250692505564030400315497498336432352306086894669341434967736113330814919147770935271800348410049797631056428684208575802706054763328050696347316109017343196181691787051637602615241357739133574167754632930540614741426366462953807251139443200400250799768026938215553077677013663067100096108939522598650505081822269380854507854479865394909534841620377888597098516417658199315808672681262771420743146499921553351913970393142654347044757275242740956769971515506594279368340991952121814394710158412394410066352592242034391428073002993516409195008805318684482730383511473036452708872231519453107744527119736127807031912292338910889529403135006800141958365888819174958146521235203628018928339085389136190221248979104982008996426899550176769658619188976192915259585012380231075793488235240236932815089047326876145736424891701460781300656570969214326847570276361261838435673455463289885734495010186347960535764271905425479459775216173382715014192861985369357454939579971459850613127081514591008758190659046102639655185745597398987594356234346498553285314375825804019785887535375790809299014434565569020719673080128824101259956836319529948350838545743696740540710977609243302144512988484106947740430412633157134859672670862457192519600203554548041498360812089695068726281687148906874074002113881282304167191423845817468765333177360404795939312424003662429494350653344914004868744001497916771952648783704742898518831825270055618406622926019102263933029878111821983170248874703483359286228739242191895809553113786547218606150625460481450199996188467250333788852072645135297396314368174909032792651418191955723437547494713869974308785015312389274074282669285880626406407197753110769983963397865081615406181485441833499014887800842094629151706030217487515848796998200251554302376629493992426761871783412888715108599299208797876253675440808590319621252595832678904737902009918847873953958812250438250233578015402375496643042874558496532412121179638269780669749475127134690262853645117524533498657390654518562323892934333039637916747005758567305025629169331142603160301710126877146828991251857775069806052315903438390782708544540928491396869719706573423761161289239788696115526769619450149340009897593080077773110778453135625782297668018851072143131744433153064744123793986407538896895671055037607672957423864608090552594122635124093937535054170919936433340677648279555884100973103262240069676136771578439277655791680690508829394787896210060202917098560366963291074754206829894339923007101702877204164521017494988333984941094710434767554979878557132601686374334556160209027136990204367036186579704223622843084928985219288257757070118988268269892711573507637504445065767758750911488259771115435901065273085193342918483919641595052404727583998253578341509542652029201800691735892398991226888301257389081836323464774543716583613547570257115812670044807552503254625916490051662225468396794178323913350381777536260475706011014035107091809187674236191217905310545779899990745218643414185593982661545688796040605435639636695965410199153261382496385502531274860244061788871864909337660681501344605224449303741362829540294296414381383447475627051635485973581324912445616049746869948136269402036521534827278602693418738108887837427235213532199826560079520351286641312873801922671310266087869464794838188003135213252761578250209565627000007167534187911624070550825481644755057658623521617090676887426400595035531699237172411050814170945173310234301325007126570329923294851026733147046473292591097793216226501008209174526571511429429117982705441728562655541082990014353901955744577970752381466617971398178807879593141104912666751970595139972876229843605985277312184604913944095133243171335570844833039882541852234881572740102005322208989222933398609779168720251968889732312718817465959454837220765115621540385602762228656958069370755866004829468232256723961653144503876229410630733797970146973949310582121354584970200688565781601015439925555595315743404284505646805473859923286839559519745064679948367609911482013095890131274038374511315213431697092995686337466964849685954471416007607206108112623244273527552197504013239538412319889332031191957980967249700477019991619274381946631790554635757525519847072833369354526605084477183707613574861782572800722466189580466534001500869463232126577132480361793881652774205448822384928940063489061620264528117522640686869728584565270157001057350316581736576290297199154128562265669291525020913647662785800142444297113758310899174677000487928411682762794354295382349878462130646809169870131456357332017185147763093838624299457813649215163873447191357346179321800338861089920298767117559380507586416965644926736317434971458200809345980550537411331764805764268673784144748604538198604114206751933031851202484810992078458028799488571726271733303063456465247230985962204619328691475410628986103664406947286864873004421271631263926977643331922143707210776440038836387944276270706632687267086857138545800874368549693861317176904936066061548093114807769050343416160166651697397086991492759180645470939030404453165394662742642212418752663749705847427946156728110249234156319650879225623319833492761547847144205689624246844107704400019132175632773589545459812444603507766051418530255306002133627288660728269271210695528309098903896458780986994687787306499105198813420899180763214368490482921189421369482103901887950378541494194679296082255160686819229992175978327376790526561708853049413144059216400815941196951756004035492052858253015431300953722900131181378039498476764964280841438854640411468826488453156996891541569258161312763355519817674407647789743710971894746464060052994188131493699641306909713886094423750727371058419556363787809354746623436268190644696671279771447012450531595664284259266775669349992460350357822823685319214863739405904681724524320697731505095868239008520351152615626610903365522932620535660556585392330445818386061402938430848734054732054625237315471997787594963543883213112486246750572216353863577639007725048375464080612958579488883526585521285446954508066784809281396254717146169672497964250777936989325636130304497740314819704981919123674032702778942997217917751304176993828128201347795243947488945494111648232082382365737502734538859230464238187483223208614307295425269193195449411644924329824999520069041964525763047437034242100887500109042856682307880046689125001277960243641839458099844177908602469542687150182811890094782446280345791963754333225114550806235260823232772805223987625719232402570035947558315675866495981988796236956482821172206368179139095030676851579659746111602708167473999150597905816973016594994766466749116587218458023009664153199973204363760657667248301335176342945900765293120585141912440250054492232332324858835632375807828084546370685724600251068582373330793689449996123407010730123174600925632836250637084266066555985607582200707349491731913380509503779183275125904102004680109609998980193938807357279822558198346338817963657828891114347789935085206353526640907057588892433412489360965361163669596071453382676482254691046248189420119802194656380077682853309578832918466901099944803311327747152851602368207404777444815146524604058596648650846635405994202328050277151095402057019675809911714818731991692284091871667003177805508395307356454054281299404424338334927016702423834741113766886105371911086286735061975003268762743765664232505973173050080828843381883953755938828457867195749721500750373018119142059862662736697914749124315795373727293341897879770715343469144928191425114480679131764768375563552263114441040549442121029258839542128753321662736069003048305854612930355603057230102800129959449937412830790433564358798773397471130467940616962708589585845595629138501206792252905384352427692035883114096094235418375929021408610660887856082321850488807048498343870485783499975272303751542204133354360129834593778420770018039798701542679323159142801250244817489262805212409274656777394910215665093770634184405729344955096723559927689664038070652056119350677430393191255774778498424922807965728019374716098677189648555816502794181631262081736580221953767890427800856046639649407334943852246585555031866383708994035375164413548346021613078573788850092906740129102041615274014678622647647619376094085210556940259372401965817363462316712325303898518277021449873292149381279167027533725039562075846117378615644931292194730432867413457101907988677631671465005141917917700817298256171507816391797908763225434567182804596630978924771370556216263278124938363890215907690935389952580592509326487141126779376610284837347162034225647877769509681020459435470315701165841791665064583992464673296964305810623394725897253364263778544926778342104119292028284635006528873290322543283714924336395817415124524853397112460421119259556940268417443850801326782843401171780310776505266880770938845295059922099487459555396490534818702833554745170177407721934331441745632653561376006998837047101256911436895599439589718208421754350236904702178245769180456984665772699335645255840010870757057998917460809006566623256419203055483436491626864142914145155855062834761626286794423202010934295296945359346302589064205748907451839424095045361266914537697047212290610582543100601023478905495118829043445669417813099260010164786142301620845137576599969236242393249055912571564724507656023071656703659633103504044200346210227033147351961284579446567404262160008741561882623506699820721372346254568571057220539421559944959367013336568138930018728186966323312663785818679078844263920846019585882388391200261181117190863736329320870777828800509279591733567394960264162127147737894844032924148769526575430118903135323114068207789260036548192528939705086756938559979895116582654419552925041093492305236228842848723451194986592225014976619583214318922378374339553595805067673482002998757822280490515521706727640907964245444984880675404913878162602420394796287507762244352236702851352197416893996546040851008463420775301492847924338989408308719060008337878996406183504016802734010913578682558721475567900955499411102711246885678361184534379906400303739193084734203824029045707380000863801486520063730089232155548851681321128535178907767771319496240335262110497440284966566266130361463309157833994158835826925316849628930861884308258885820572836720772798079068343486640912546722549693315263040952160882186637047253849360313948804576553696927213517238895465341023718438218504208569554755896393444046501991449782781434448722300273263377151544971306809905240330345071321165250155442713780375651633921019419472668112991302050790248054749393198246117779564891815104653488739694120741855810376519481418800771325389200853981748116590573904684686614187228947680000381010978006712051019808682172459373257564672782518965246516007149058043103791722905510491151943083906354609725840130190673655837754717701503219389789399701855664690324980768108921312625355395286057148393102163590061609181784759940810266246966814744992708694785004065410235324501469048833118534561694478087560878402932388421507748590255324841232313809055842547729550294667124173837715860855989484291433478002606388749956870072967632906237028927361254487703828169717053789482196008790777323730982955915048141558742358438679543485847133942380928220359721641472025309439683072107445902828576863322529736793294227374471169142436404785010765333212814299490987435582691657943355034685618968709561930089507079891185883460010580827374317704263984103774781829944224962487278379776817077204038541021405016834449711579050437958613218686995630291445649639345896787289941366410927023845051883244521020140659544360965010325600276556484206443722694912653475585190432817010238617904939752109951382268164214429225845088261348521352018207227196080674691724674978503756990673933715304141690356579477528571769632104326084949113699925429032946108832011702861431728921564603818083332550779545660476494172283919555425701266693529349865159974086246716899367294716878899549770269603510010075673056569030126012332498913134902460104888566949742565016070209568615461968366419951549629780092117255978865856655440279752233910274863498220846134862036941936133841860612978661603585344478550586393393480935540943225129194526942580668552135798170297346620481052300317379333861552468496619434860688048961426547412331776666438784176426218136598793419243677070011007832094873958180488764869034752795595918395125057583252072998582674293688769582255711521717154012811836685799767975291191907299823124265735990796851828205469900466649877453154173390825279777765836298056809375790794616280013471484257665903752347475291685070412777911336446568329037707951047546257584166037633010399034540526274697183077722134746712623320717637438932194921121455993231218148930535645187673370055282635962332475512281644899543643974700517215620230575638350148752041970376059328169014292853098085975466494169453480423093920870254053769458940320357145810913773712933731591834868925373219709402590841621252470812519622989509376377480129768961781967300484461403626498587346679242379370469362057859089050853501297461823476463008317144526536434340494185153591240711028629150082293076160481757724963330872624002891440676714358910792339285940329861529340769739695050291181596582309941618042186359066039025450272807695740913513865628743261115751018654029496943402934724931061952742758594694818885981824449616217576619668156329384455311409622164155775627100948573035651155481482374767276948769989659293847543671770116850548246969006733284004611612420848210649747854294783714307343830378659597513645597167388985813284951403618705282160784957320282575448079976911548015182046429609002208021665325555980724232458412916545529187618945396079346092157717802167277328773606556694763219890813507931263258780433043306630228477500841415479116517154931721627522264393828523107858696736142428505301048951811799868816984034942374250363061419206354375402850152686698928322220297843079203857299047202086356629073848284436408970962227598404425138954370324850736039536890306577474279644702469464657454862411204312296427996801234386490842786204687366809006004940778651830558727961523686103198563752567971202423863110956396445842395185822736627804745532816531504396898330946167822932772819684979967446390883885405236639529861114598940556211044092535293712094925505673700692188749423047333327097411072480232447392687827032726509209234707955368222360121763992601000780769809548182277882606290190379006995007559575703958873798906907684876203638825220392837132148207647739407164860872113821860968511721843634243207810906166894522996262569490476168531903404643231625521694883963656351317004368921093366528975417564938220499196881560491266007880932243026405607691083198148833470990130950904144715526615672039939411080782012132748643409614240265461429341198528516203541726128189720695368945031313792211619025961800529400181933312760888199193471601221499444997051570657630533594798510554481606884758619076563253222807105602194454069835838094353196838718257036616124089658651440589477986967244671325105578803025436808836187273503438673509141912931557874004013325709845028241831181308343835575040704932276763426332709315686808335155448872882920525958531554969925949374909117000055778898807334268234385845234996768953987553912253744348466496509779454611546011720452040377171046979084201203453932443340597952398308722635123077843232199150490784311440986178254993764829697321125158769613420440846809602759907703414130315123905158454537669771970026254528905059174720821736693077912815775209275990236781203646999108384748215299290814002743027945645660254041042164454485922072410124024376668557793801318190773791870146586124776262403073021867365741587199605280846219524365340060899618684677440446447925220947024857381063383851670969625996045749071399681928346258707558141959776993171805004912140335684517015609251596957814212065833244959376457520637109087636869160248456034651354329928100632131875900420375578526395977301958515051270978335029443187981645929798303101797456427009887532281758543567680714514368416430728696918160911708385607189665331623485576941426744470465535923258487444632630508319910322214078430841135846224533208550215681451067285597368946226153630199740164318829502377377591324899698101667636495817950315799572962585906575631573423143998196891889810982559008194548358870269823350407654686009942420700571878439424591203596199875372339345260045279373833801532450272875961166762778382257848102214884391914445789953539682151634779446383992585425204001593724202538806135760718564142745051223242801839975197367872867049313383018385465014562398160005735806452529259685845128039318227925295701500435774091809559087904747436114008682217692057638266186668108505600263656386042546668019194676481027491809834986181423691695310668728877230079542409837275702125726833896575060750747454109700621034937935717664963003135345785922239744856776730645750598355001018118764630241322196316034652929067123893267547004740406365799179339263041443699572086247911525749375743050558271444050834528268915984044295293628562766181070034073275475543552511091074842047726648884690638061807937180200456093031034652289549801535435018860978710836178766731561715016433639800794830031760693502668949400413983826282906394841817756897832457987980068835751004660118460313059769526451185900663132077239849028290184957650282440341774302002119427100493720398384698918387497150245970114361067196390429041322372295299835100689809791235480544475998832380432360116885744947691610413810725537158989778440521205214395633972924540821535048121785452125798457074885736802189686389368452530627687321465358798186604858751095530852030193541287352851691251217698872107880712283336600520643039052547696592897434653874146400101621741506795052827272799696630927491262235670331011230435612199280032044176769146530849901433770743370591912686302538409227132593637012145152961411062394547527519622869747036931786302171256335679700687612421328191479610034399305761203807779807610328458386821999726424273997088591753339748229577166887503979978543421918531908249552463544284471741318300888606244075575000202501673058901297755872517904862611925937813951774061878699847674079881291578294481034248358615441640000937369886010086307392846276217556912991876758294779690427256465214580638430354740095388587342189774558160652228548607712028620567801243013958510961493765805877412186585162391791919774578955302272902274312295582633947332731306642474299656037735006969092933836416628001342263579350582746568900861536416788105500741873020364052545075477852661304601453586116733677151782043803462762447917719452761733001966191348146157805592787954946260144435446420932881631257763257164506244149451731382784584217378450521350589877659520916469333643659519974899548594063178460383973302495070677045963863798231265073498475106376634312489126052922214575616839473808606105358673637212678259984046865457923468159851459262832312633889532394510866589961906019944639830728688444008918265100457731232508463807555948090891252578320858289781262700632860151671665280324273538230734252796008020764938297704129624189843685489630874363835208005437678322902966565919589340352161392426596634893257024692866946952286761107290550426985315132604794501468402444236988334572134395936034519958079726722444135286548664409500693135622997065304758142604783226897615700930520280447516753625189859957406492385811493479570289306021849367439491090961354893101757206603576055927662487124624726926286997089167698493763066551467188880657962627289331454421688528204097554979584725096131447153019638066365384310981533580716315253895985026049063403003925958752229409040401096711855010951884426745563451339816712241971579599222507809862456986948224218662397914559330442893257124929784116357059922398475191254399938837207106444047643507138746994484520981589570021877225500710035777691174275525790254883471272936829870115433806497495932884795691517019380814941884984823303310797731847655043404461008803622626297117166312049853655554143738784659452042141634313321508992521199930373521295062560146475294091637952693467804585589948068529494820100772095641106258577373121369212937310793149802602824124248759044694583860221395246160142038276089700589397497805451598030966236089667601319300510749776790933061099073674200601492264575178891263598057711627389364878603231069403249563271861226444532097172775081085731149170710911116190582862193021396345916908807010536362247516407859963554299367076073509122259511942326472577794817288775168225030433804019697662390228609669598988921315562473318969491101947226269932465952171730695745610743532182096799530948460169999066542961979658928842701663532582994253969619766915907420781818888776732642435859369280562075592053565951630431220877671644441685981479548100015493070080524954022412539672489968520870498194151443972822033665547545743647442785899035392403911910315198775349105698342715495478084530934304002486696675868742357998421105253155804192324452107739647363530990164962948244075678108337544517415693578278039894031711987174586180852886969102774284925665747518804366198617962375833981268412131280087122272368531219167584682388160997289774257477881526234813313696672328422687960672800085939451811961003617973182599540314308252334161535519502818766904788553799599443859797524034766827485892734592201003794478725042627712862091364512598754651671143056416728216509167426359429106011211394190532935993425359464873347707969998147478234480167919421485993247798684059801972661720287928999712911337909700624786073116837368707668216904647279842732170322273384039535586702803124605756269302593894647200878434140395676676887360628363288853810576998456979269217290170151341298624602611177563056641550239250816416682522976711632941512595189776530534263250983572865026534727798999911992781570131803730008848565925159105068898889856241133580328734925078121760119521819399107137583533022045979214489017481385293050167816230156081078765891932726563389652454386025776431980110656956089304738578643827045362852470502245940861556254747952297989917474640793462750037964197810766791206749657921604944165456892860067998328935292146053276320599535038582826218568495037822010065573417213131513575591307902086656755704074887937590718723406256819862720100010165854308149630524745281310842267321408156873297908796259981674261694113904132759498883845931517262027498267107993679134889664370992710007775053758137143640240142386082769627793355712744899222763394006669909134418010266226469779738743982166957487213869673774942171241342444249001091426209035777744863528361136595051143066235350389565489949496389822724544088033580671742366942752504189771049754251920594500652756275494376564561708970019455880886263741817886275329515836209905894163168018362863532278655559952921378496483108099372575018228249737152398056389418594926009043457454754521591180995056892492127243288572150718132380103124830616986575493396096264350803013592498635608890080700436341067344709992744509942659722793811258133404570352570050363604197649417202844695419976702448585944160829325519844189947636533627924389594482491630627835295987282542753193084557298225150025265434169343442096795575911178748130026900067883579696661963459281013118971713009746443968526600810722831234328294705908500863733217145057967096684939067655751280200407789948498501473807772757308560274185215475460430263973168721216388932151289029427903404171501093037205105801288339129059379745622416777227538028486191553110001489205960893862881298943423027556283069104460450057061761063425801061837187538707326948337364703611185380104444939412069833216292778759812182677726225103730382310717236238655663663322731158263979458403915325023517190516773261520184380839496480110325636608945265301793119318404622067442408099905805098833490299757978294712083689678493162652874047550721977084550223711154352683534734961408311630091668087638930651298829095995380295235241798409053608009817675385231426164506760996724374839319392684556628735515250140377743986779067369995917485006553836889107620246884556229964267586535927619096826736558127595082580222491656670697560085061580375040520958209838013343857065473792925902752625250438422308721747847631625944389117970289884211084026109254901571906024822890022783488760427766660452448751587183585980593686453487216712046088728949073808097549395493196226976299059025700989607826839250837973263123944353445302747851653480603025277887911518992681785493230796998243277830252958930613811586852154953697711141417187147519915131903759881479290973113557007510667841103518473203682488843094175644305936538862679303929482980966570491702249111462784876220255487600557311470607866597859680114402050941969692688031210237234091217522409436012078379475382591053733846465702222417063977025841164175144167710301049344328297090364723858247355564376323840061709405751032542713845703375685480944569844238245420689978092782753206827087074904386723346179128521599754641222175174776780149687508789412731913963552584939275033963255278821353940684140804986470288380624521527793291057827672511012684730850515666162448606181590869710095738296971368170250478322448671702504968605322343090615802896422010389447768997284288825783285860238355218157890099989947390827351543011785582528049449742932001294405002090734957745260492313796959899906880885987791975213584870733646890764271084449147955177265723392272072574431099508697931172836923658422477221403774351388580966312598787166691219696292700489439184901748816878398861581462967864182973311038447811227605838206874598630517133100158599135186626349711277487563133056881926320664690089337112259976981790248890078362812276806275779958601411160856645116033043927808338545520020125750996883530791399157950117673119658856890369901467449513489995547514952622035814013440912945600638578522794235013122538032824164599727824446401541215515364682525709540868767256687733330437994953904807089283390600125874485466343770741715626880193000333673171697000647994400398697337001999991575762020990952766574090776455988647942345267091436755505407786501529861073291213927059809511719272518356423694821133840238431844352716917797381292839117377643038314468843613999838501125402081823409205186344613913206919440504125077963922863820000864525809647368519323954337277794981723593291016129071356984135527876638138301157581096196941713035186394213985462637331784704948752989980379382673479031254128004557503073867818077943899181732045655026074117453804496455787588794983216226441415114277242030779897361413123364330459820438920644030138503659018806198904729408871611412471198407454242131619448884140544326038742901379358073304242084724209070224397180722522154474788552882353026567332307872690332066838329426126915142064289133319653440596744603399715123832125149449571751938673278941158627109119490605542932976655865302373605562099610447061592441406168743884290263797198371840373153366880499929804819568773973673067639060963697895401134666911395032042394723225425148336674320003387611670613747881963143396619636303618669953435403847343524022546598886845356952919286419077077573983539376395543379228263190846435747046819262353470615213343981081111794578218048882016353882164584587315290116360614295989909630079166004962410317440195178807609166666270005517193267090236338832616304360339841227723671657682657205168832468990023292762626331210302857206014232038091163934156488161877140891563471250073891861812780678280124188878989706809054952101998510140412329289734854765399967665482221621005625029811681551674066181044928953242627922672863299298454620180491903316824996714607079923566823939694560101418976438510247255802207697746452977219318647521110624689389597579039000378289834221986383509340550587868793220941409970225499554282437865684989521566126948864747894029150167158968988353539072855398872549115117279083536342565962480126950447849068099244813466581359458373316573751599351013247194588083241373394153937399604557938673781110611045996464055802010672419714128318452949496438400742893191582166499153817828861048405879532331351041660032641251540504810402054396720175967779213777644673941427513234873452679091891992037503134616185592590519492604407433966002797111043334513167066355788730239171918779586396179397533204610306077257328133698146074001309134047821141078143671647917870068335343451550374495275435383224209476330823429516374631389342653215701000028563031358286921369337049082090267396951375471248636718973854074638993262106632132137762254519588910476160243752921138432599782621489664316372551326085753335827092233874265595139739047342491531280535601248400485608886400580341223716338909065377508415627078570004402212541643759899635371729539108713748602182732979267807664231227536578965979663529427393908105561350840086115118811807799570612009908590994611147298433757845732667177812977628287164932044443049795942115318975189235599073113676136371256460222497272201351873475279481184789872270993421021985101109898869564733357668463867316690838062687947321705501379795120768630927577128836055943354293899927970998419462398835067458401492461700140375602143538581091707406882662820286483015006762185781049512069496669991110516743455075007505449120573794887082380514903543130206783186298268843604530763319441850634606086361334200143671892990670762067310867868687639105842176558147937755568863634542460143374062729890801746744589583900709380108336561489788451689810524233850096916626592553549842425709800150381739169075983869170204425106768189340893273726313133730156011344233856359172367053229237318591518440124448994714110034836104625329125197461815681216198380455537769835448451694871146208478245826801557379550333493901262952918616137171401163376767958765231054989439809693056032910020351205799369036441889738083002772051021907284928351259541958145638914707350476918904222716580992627221127599142700892548222003862390210380760383367204926530172126203616041733971304024131062942853475906680680566231724828808977059882772139806098465820144080616761221890317466824724392006961989005865461786626342267929657304804215775718861866017324199519498146811210822767234728667211330389409092462702048202753244221547169265635081170190754403498576882440298800056535893575944434047490786158135201582125436912205622912961986111950363068127726452071023798081695880628089195650934794425416414187742496610315218077615255193021171936927158046668590877177510443799066661888030650248463702968802121049633781674141437602873059997906045881167981197989134987010587490213213078892893668178802736416785541319310826750187257871753677232067434498412037158459521475937319969501165041395152763348267757484351740210627228741887374444430189762409506839006521326144370437908041894470413182010434231086993773176160365922584547187985172484908340077004546697236432900514151514275198170117820821394432797880255269845825365058596292893628849910811228217447305371694104133701208838988948129670055168257812669363246931055856109788704718786713198258419318049275227960207460772039634069023836158799291286851861621322462436993150452266421438442051719121577941677946775588889445299069303906276429956155710732489505641031641399663894621988550925927939429105322622427155896064735755645713543603707073569167329868527082450759274659897811615654972253440334406030968164808883450501609600234885605316068929974870860410151076437933614166789461081033993267977669184786394015268509895420887904177670248855038623665316549999779837253781407604351902809280050402114581653806214486170947602421434314166356427757013539608749533173010616760343209284466883238100163635256720505378493745561976839497283333495648513139556823018787217654327118379243904685330689583483532826740916151606322255359500222967377807287135622113139590435787391609029118044658301475104093633636844111353309637105335489653092458225487261716626743517108781684904750201211686436220156822900115971437210599934425833201207803714190149958775102226061236081056468966789284400251990891972091601122968380696571057157102240996472114761663390301104569774650316034912332915354727814458774443114748005092598157577033665145174719600998309716831046780840009533941545472763939575811709878581337965293863028496932699116756385906427609274755738206788892268655540494713237478124729774781504384072324418774408095899632033957166612120171449584108518837464619195721776452862885572107399356209496918512106061553966147406390764539385762134499935102949729908758892504934281844046912260088412551714901935291771825332154040213616806995461897280182002914453986720577917260363401536471701279058054353990154101391166795891058838875750670245586889080774614570210207355002743666134253247607975908634989980282546747865128704789415264900916736985568734747284622938085482361526897560324083248588408217982679542805045625090782206760864910910922395241728041702814146096412816904774714372469082756915977594335559358884030827706771932780323922466356789399561453467310055436496684855986943615877192132852830384615907053186376690549682101712062219971297715082942856940636887716666526941292939185936199595490348472414959759517172825483138241110020424359958035002916623795157374093831083258537520863486039661914761428284464532332205710202270569693535379400504165301395241846995133303725946695108555329825378357806442599728135985639445695204945602603110115163114436105009383034909485742530097176406190578584525249186567379103202056009839274410661702665107874824710863818573822399572455120865859459476744901819370918266581908290033753941579779439169233899565275885702983238503520992943734467286125338790151669975867775529839494523746514220592441626157304202491608728977123384713099324027142776233458880729393666547330073953953781775964178574210145220575899663240745075576458772277682459143105371694555929158694006699631792996081116032538745012537345613804684098598679650270128925148977831771193565324513917753491657999753962470641495961778676317067602090803903078421512004832245423836309020071811627853865949240960921457001708269764934609662559590318477112285802763984203514174999998258218847928957257569365469338083476638042037828486771275529658402204968997074742269495788147825046302881256927278556036539329722568765319311775925579270076028310006376832178515994488430756107134854268970085822224819739263122861989086484911922956201445001265863293768626588609523101141745283094879018297916294926379739096590272031373545215799565142686763095594450501613025585737899069119892709777891128994326518206959868649242651572834222778623909678297756902710602467585052212355374605048019034134150838545766721782840144645984965095243617407589823086900391082306173999482866182381580149501847734181343474405021453282174559979645786762853940441193993696900569726488773617545148373578418076035502134959105599799212953506024780002744079841666043427678513145383172459093619501105300900846156830059887655498236897103445118652101637818435368799200620560756929500096276347895791013229012697212654522556810222315912849902674956367185943214074369069779729097088593235704306494766296824565661085106026281970669699434587761721370071563268284703181190745798870004053348867200782407771419439615185756645587293742818280713197710786185839880353679057849191228280109115742749220499965253723994334836560277467982615551242347155225472730322446831850120632790380551731083268695067639035620137394201574695184880461163344599889366194936746358442194522062825769700640708179497195555925214581576698307434253071049447736629742728198956867913321167214043174749662823053116683812392009207330547714091572603339701316653651890531476934686633076356408822881552766543719412304983374513362186982086730143498411913480459681168536055773727647172830320717704663258336244543048154557439615293118404281580932582410934283268789126812431495024746310225815284599467618424352155255632529756919309268850534625369615786031702093886884820858975319348078311728709530173266284809959069128060780121564985258067857640933879616005882326507278684735330104967280277950901150102794961157472817885560325652643463282127580487151665040324746872807129274950882546514662028665703479837893476082934517993398149275582277224762558982660379845457185783608739229013340077572445558338646145959321369637937366846462700885713932254514967092137315264589346552785408698340319472383950830100601792516878557495947245817202625425391490350550505030290824422721800586177166888959738840280785439792724586564367947705322980376384887309178742198530668783672785289322491638448927123224034054508036596363706270080621759922078776102329668897625338823739157572703671128335751453509428255293867912380127151592301388484250826011714969986511590817986393453645963831259837275216412757139091051133786721237276579785950608670251393190450806943493699163496304160675718769770198450318051318746192090564995773051492515963280507023535432222475630160602691541349849051796182514018043530413766213702407750581310542496397709868626261853012284954151663354110540183611395480646612970693260531214668476872403735670941217343464785038841263328134786083063549681465698576081792452391275622203871988086050772221536342035637679602245780075866768263726577103562454513058901791208994649198252422281809362906542595666792812137475605127218273118663396668383891831894098372651058886939652938488742802542528578768625080277487931267453002603762895837906301205934657100230846412533578790411543398998281032895552487083172308346780825231079045807629277561559343930459877607621012157309016870877644493482402297742935121473913654497177698410926802191740703416855600495535181217738994092203147166758380320327286771333229078806697871959354492890059680116314287453171772784784110332544835341272732293463159295591286039391057495585193638174888362092254711184378842436733463601657886221268403375453970574200689667365575976541645466953020072789252889092314739007785386063588060216331907827567875596440850637642127805106694228925530713705633978380656582097933542723685191792594192038806731761417061896439143616259503396533492278478958416320613771859821382923481404062668279724952270063657817318989428696028681234312734531627801178012840440595118780332601038849304822423267977709193501008799721175033961537560372927469034257660498517271477581970721696066405015223266385845114565863412802274908762863147731135163145634966965222398387288333456445531365970867987010992852222914383448360839635838270384221689180864449012751480435604655081861535306607748661735368678498356154733631430545448056081873257993721867829605647025673613295405790645384355934698869764395901433413669281700028805243417028219592579003563558257924457027889685955966630842569584405011293568154973715908136609163174089300948784086339742389184081241343089267623533738037667574799340002138867415589662158141634978961579496289938642203048578660656153728960149548372874417840220278638654590931062096283517299448924675641903527660948310559548078490633798342175456153263717821594163836866615974882004912637127296849853830830149231918482403448190828247998151668814338814509463555301841905437678084457338479635345382121187181672182798039319578015581415229840141811792487548357149429733268535047676758086961749039117239327001265750270486175417862934544228618888229106681408106640055579685335741054738687539788231562608210977741963998638601737178785148807629355419906585405149546092729571044020325141523427170363729288152779588811590744027535007362421836653833580217880067443370383497897842125240643621749313149291781320163591485980585697307252968983825084438695359564271196634998950017335914009357467791056667081642369387109497345624294688194821269844405418408857316780775213392312414438683089489768533785985567914404882175778755672840583477328921521534212720365462865269972068925708122632117049775228332170675534881347231735267352457868508187137412606433542693922075869725945631005900150004681303943988504906277316375181303122284556376718260966278374677944913342709437024675172423843558445313684975440617078436232239580105033712798790478225311492972612552120165457144488200879645018863330295490941082362680169576835714957362760119395697584248175082745773083366972585642015079774376160873708195942714347948615689504662832691983059238439966872059267121004241317938190508437098302394539721174267558536614673924182608152068136825776596340700473660863017156335274646880240098470931733219867341170924934246814023474038712058510348462723246810850190580732101100891550460861941963833097437590546685311427161109180116690661042342152164551395461780264157684260891394536157145797465462763728405398438775325233568012320681291242690639450043148010414756601936759601452428852514967661926476414869403623725778253068863082494749004784169914657707694211662338463450102601609584395857694764052518337447840829622251614326606716508250731161760896757774347534550136389941746101071407081770597701511573788663967386639234518388851791053649871017254110808034093650268054193651010032265113003576852312333144920641894136438904292302387959773243877794540290274992885830705607755451425522781421905655216673711041036596588447963240894671989641020514844300310307682468171388797139857793854733128701099195392069626327999063054632007542356542284609943030818270799557959747362307979410422935928280540083460296620558238725939799234335026964210848936627098110130659377385828884438008568048289401846780769583715354383180228151842303480154232843392180314596285977214888630433766233523201063605466758566359333181170051720113907747612345695452316252489923672991967534926134982825037824054788241439573058974960876698491431049208828239688037693992121456874676895187068779475759737352502754868980639051413660958642001711734568250333717822198472808295355950024063456696465956282996535272185138922686064663619644647398517746565552018615825011386784270462048214460656607385066446867085873671001653602989783405622960571935515545995513761677117581158460718258924317748292974788002592504390079272787223072452668007544043957562661238229148813797844765572916077281123261457610758033100712309270300008734261262656017315253038459132155357913424610743699219241874452587295714848841493899186918031160640580673910681349103766752015644150594913699147597810271411135852791554180884197128349240798112542381240770666289079198388460397696258762325815232479978678982410318178254482833235501317647813734300457240529155512321107614069411219378485410228036457210719253210250184521554679661514377120210701793832358914800718631743856439093145280261255404475758995100591103663512385627813822524756088587172108433847873561419879131837304456295546324354250384920167492106471912016172632246189363132389034611370076803679113155219646681121227334283758950907473901899683826006992803822712158476677461921194014125771208802994081453314166444224998769649650098177357575492673922786671432389479574355192751570217778976108498044702065733489361110470386371475729652550500015766991279143204678432918948312743801808341072704593342443880362627030960275677206331171098249859971533733812576365476929802974094573833427250282797659872277962309502267884215401796617975456262089572361687121648211740837869520599194417180630469189766463263101646817553379839256736058091974046063982067998434708123369919027434938513134931047799149813330416963580592639795199649898399683557295606244191762414085273849345863071713542729023725041090980454238960660917431896867407200891789529538220526561124055872703877417848439842511372184264119117841461659879655335732682765298274372481718737449303272272573315921182242149098034369624416160651809772423243115374757269230518400267071943066962400131667632339970706447296995118609991956094117168880103568188205520819025764629440604971943356855825639027832096296964615375321366224928109601637715131260749084826811938726980977625054797443029542878831959527606516118529501275394872154455647533237853578692562837257435902550947351981617916724360216428896413336646221733937691230022160829008499514731233193287477372048598173928330771289679751712039187823030385443153018430232993186066296285680956620899803596297441253103382917414910273610756879591445349042456830742926283902640085807299465509564552218618609001852232779496136888337411530210676144594489484361588583698545557998742295011713202600895643413516843840793524608388806362020499304574492072480969119004314629027232190860383053712099100567986828553795398742268130099718584551772233264611478484404552972620012816202291084246345858072316484956489241132793483909828520561198229727816653060105826468825751343998536633066534107325163721684171730788977083922466756847385988519136447660500636299045367991197738157122518189961570346691050408196407601694345510608532055999397557210000496105110103906300829785785223548443887990262179521365731748824691458146497533597429313755162459372305624607759538298550884477280747861447027173974021766318645353819223274179859179112122337709590547178793790714142887033072380926619137500073242014008110745097848162403474390355568644434506205759452067470624529342288656872708259822700143561062240200392101681878621464827336947385037541007119664905790188279216048229491346344264389082243893389359927930653054548171901869961351771330530410731497517233834145821768446541216210625672535055981529831164443276017095075750296295642541305412618434702147941874592963335167705295772105252740692439607832361480543065685504447497973760794304614522501724765160304760749076603120800626194663160026340498012235646233895132517713777413314054355481029307575463014115841612938081838867336963246917239475269022606144347858661970146000227916196716502957647990055166344860670932434500570274497858895112512166526720408081517350778546110041801767220354979527705208482267779848695308543063220235416247334503399569611843414904073983163554241205630799383845228075786679823930937520597434705753325213330460821602008821527797950318376265523150889004087578908417170718085328461231884102469963064589839601165337716215432404163036971513846361245700422629300061375019157702212216517562507865177405121387887926439336884631560484035668612609163260028572309789766530852145814844719517740410535216025940420748713801867514900193591418318514223218563666829023730171243416808701476832301300919911709862628804640917934769177470356228982768681380916130660616096640258567728671020612078056088531560095517130326110269959648474148215462635641056894763721132955400775751124577444907284184449088996067692266121153557710444076892515251535837376608748065242473163010297529522362971377102992399340804901674750755241679460240105802471429241144131633596448156726761251358608298008691068144482813424487030536299531975057608448511416291118371964211492664352204773141629457268904151020366186614882683550818665724972182031838483361428179207220618401103581478012537931326756058005645727728670093740384373925573215125773488224976968042568724576805073931880055547934302261365623505596641939954318258058366066134485138625596062110927405880183792317677608340989417740391235145282204869259764474826114193892103904240992126109244483609836287376776499695642439257331292144115767724760239532545051421491183789467442210927475966223144775452820436132191204553150400556918526129887163851811347381173426812088040294953487074501670306825313462713477279221424246374934719297681780874225290757782439133283780316830546355703811180592729182235032132670389701034466151436546945512946454991056626511399466858847717279470657387154013091794992617935336956647843367338984272700111759683680830346799320081740097224254777175645649528204531525761748132538578382771830707504093140884790036703710873960109727665420912867968816202828784443769944730637665629472972267260513619880367468654609784638987996370280818611082998110858149277501612047009294339564694468156233837514858914643081950340367282048081039956011900770696661751816820971710627144244789181153148409476611315389879131864987090748181419726270595425669021342834716154082379958092234021422124922476858975573902237359186700714797350557619490203533431939416102614892320468404722352482235502953983993051116407155991020034139482200733366343068517919008596541587904940408747179522457045794713658582932544901389392518721363645841662752169294635445223571679260023289633498086491430399560906397571262276391744985735151804070903180860207691703966448397586454203442714961027893616172525565451788295123611994360929500915570149683804975954684096216686558135886452363982318186913368422550634460968375752786933984013241498388622574747372291578045989416042549870029271377080721023240275942963806345374925092453525547402535476744114902087205382648408317534269763370196107545253740828182066436294268692352255421688054477396383972686248035287120118771226741976412816669592609709648348525102951572150130863343321306818028342340750253477903295425091468229878107923668557460046875483456398990542131009981012452710041526941375338688674039295011199846041705016843920070153553394166878238149016500165927180744989054377770705487703459291600346356855719138402788999878973173423881271813473724872302199699808066436846002847593472893333305092642855535502302817889976172035998261999613267056951953453428093815360093084156074932727746367811466356332650023994851289083005498082589680099640557844648616217279479368640803317887250726036446355405512157849283437599477791902177626212894504478039837126458899666527172286450755982921278132148342157814235025818986395521824539801012407503847030161126286428129648690922820409366046691290440451375736164457318010215062412206477633156091002425839191355557247401340118869794093699526934340648800842158242273668728842431707436273509663025419547336704268753043041391680855857253751632587478933616335428065520891253993609402992973782014777233265198103837678424003734352684338236969941623506885984842597244029831837673397146180565363007617267098751569475022411524181636837002460549551750310957157607871956971731684512268827730896111788375193431737028200026368484138815945461412133189002931923238182900692342945532136011763009684798291231316550149026632224076463247228284385269128471835057623328166930441656100578864178321782081186935996825077009113049906109435832498742128269069248375322992242287746858149509852042608714305768717671776812421439279343710228911509656732828594662120664212934548929406597888311288968157753991949302033261623285614843080840232523764271742957631340816285216130164408472858090665054629129568195947607679987073476112731658238796677038444004659851559464120496885843676225562514315895891950527808022412116920941509381020536129974015670646950884517488559080245296354678601282577799760424824935202349050380212320229423602452170598626104552929438102380186682466116846035136338231732485793319261869741880498776700506662699602936891412312334791803080881276228592953619842474247163744188285351707808595960040039200943076052873611922702434476955046092175803324932756652633523511684703672273692790912522966353660629676526242341119701445500799319490026891631732116064601154791484940257841617447107027412405974978132916333195525624114758404224833144211969753512386597215435099251536471294847747229725174480556121224234340742728057305672866564363374262083614367453066360205102908295446683938295071505069706604758050045881920150998471360912170474880522600929284365312090734034150112088118293441034657166141084443206170328656598954640245126962189865311387436594735410102116898851569862697095629394502322550390601395477381152293929117514565367893710825351853221846945740047496895144520504476708691865381692763455658270645945458329819145473223522705453860870498003811809043167850322193718959533469342284798605733411598179179807812892038029769235906952134675784538103666121850280805828093324171602059364343316578231879069148253628780773617394007060707413364888788201072053630414016444880862600855416945425597788543610673840612076552575346884399129001307122902573328231597162878514970469021942523573929591162214619624968169153817653619793360829829567897589133294115252016700490933310852590338381665193260759757055272494720722552624830016119511876313650754294604065412971393651888872588424410758795548448428522616155432035695100907420656827587205791742834089722987093510047426159884635788785699131361942074273010397839478942625048362929848997734547484050545193645125101881529083777172823184072103289788264160152895804234287205031970634303062300722140077478130806642434469774907097053726467565614942947716380954503014235551274102563818535241703513053896787160038233289410980629361349833699020835478270719542184409027718337480459500611745719692543065082293278591703791090321799113758514261585887561389330712996145903607012615835484621236492909078766304516806263994298422773812800710018562716171390095636016011016166077473768750176247186953945360918608064638374379700051674112594055842289354986056765893775154984604935567548659975212659873253058350053806408064899160723136578705156934340370560985519362461015498173187719263777033953896437977112486641476508339795139495733531021649289195903289315231437936422696171098978223784560213612276405249692885122445802537377583532321002856209735635184527781028095310229538049503019989817649208149524155210209342164746842512165738126286981949000929456010477509600460506192302487963639550474523770662035999922531743192326155510777457667746486768214295338633514017238295630017277203298993063702293562021956455356704233673703376947875483742052518201624477109305990469157781007449964030282511845910183311528962089387376304227249032255287925528820996484489709199263277913895612198837820720681973918320986359702788294929368886362326356466958865134507624427830192478228783660568943392229540265721377084357145398600523271984498610940359890706716380431415951061357439575774411932852543304808524974422089811396057450921846169690884881767469367179475580592033653777514711206753847396249042702415843196717839882900003757221967142768815837688886747033516252206965249420514799174862537270109497772816087966910050508063541235198537554819579762966880468256956388219444804492926352955743148868152853067563666224062343465876266717029026386970640840996103803533487919695059707977839258916278316869167879297457600176446665734135016921987191070830485889671519643906831603305275601615500665021158880893470005250670068561142295670232428649818443334521988600176059537194676436213793363977725042673283305356636137224332489315930655060812343605376108235377611417625212215875582593897003423827899079003971654645791421944363138674886804932945939253378269894304963195924771100301077014692006485293236764398367414901126813552051745851885358064291185782083627207069862722516781621302436140873719849003045193130231878617512032644567639571984878414129251898830353117305833309528880013434374928584694400344429702656680673090659594640578366582923758221447336308317634362424317064342902071140468913808794797182653341001937082803262858735660026027467163577567893467442202548998971296441904609508137069764171864898504137419909481119258202205861281248051825564704889375466889510503296378222407653644024519213732054733532726912219703073993162794540868188053174706486622398028969792817070099889345961207725082027156884706644370340990119640736250046660754688453460168507524452977954688696730067860479174470065699935144389296163449085651967439260309717670689603316672853975733684848463601062065553654711788852180812648587974579154707802361824047667640817106045297957854583416496420833984876376370132231362201065877847952376474475845286026760815789976665524161844865096860288211772099038369909458954447259718397128575260795905506151083365063231640162763230867295703232625043232154739898888791472930066865859631205064958456284188437022296369243060094710986515648186470494952173282173979107446554205056054634402467873546828891957663883289388858164658341458199376540606919073025210875450124006234142932854996556399913870107263502955822609655713222218795261102516205480215447574670626569710328864848905713864631006805724559324353545690739772115505488677568044630517022448045613237878022104756348084606351625679916370213882149582577275826127538707271825361305305718903573687741718697760380883216509256065916795696315563972693021128850502863362624485959723727753276569517236532941369258062065592694717038275597849143776235115177081284572629993251713502812204567309966382584729703778442402699018907070623859062434095630391103873206906125745575503790543132791718694932231801107470621276057491851012456172114193118265417358971921709040181051672738417437113818405230018202680336716704036436256102251296308685388411822555609398845733059922201012393651740011372284473075594458487953277153989668248263279709819896054916377670179972113345423651070452881754684572095308843528378935126449409428353033435806513940572867351024428950994967772444334862747061981123329317902283080686680127934863833649276956765912186975664230435881240882940261997717299460136906494782126178544982215096305858405927668336049051072070626810009188126700883908358330839896672667900433407717934267578517389562469025463128308484792490587436286256561338102535330815322211113587725986008878032964238074058762035540375635279601455278793420657896423384126751615057811263279603283282053103726736246598414132819813165242199147434687724132989856734547234683409885275028203635147303325639245880036704757392420052755889642271931558453054085718772945486273682666749483419978762373276915475233713286858307996026074692332747260862455178419576438291423607817379118701490896192519428629727457137461633113457247987559908505897126937837523549242177679543538623794636525438696979986676508413305990025766492350397729513819953949599723729031774704657878676671840417185769775347634375983752795117021190422857416409361333994595992172939550439612469186485083685407524060963537908241276542015697806254367966480608947746887175300794933799324781623759316443768091946843228556560456636326323425371739472490426028583865024284952278301775210886039838069635025508350387852135921799002274218881974358704597879318188564386157498933295637275605773149237772207880737853833298695923121103672971377431855017671468030649574639092090563597660952073039790164856672892695270209859895996760076231390097087750232186783769081252961776805435309584208403170427728510627049624096170799479078547306440704267424619092922127631095461527440531667829673684327052880811828216295157284959596676439808713602642343852562707912558765518567751971826889531992698264649144894179013603551433430368067938101821961870077421894477217504214225166105029009083563828107570289740286799286558196851408450899539602456489913810900235784219974934793143236167487433949054898468338075702737945119220255252520771422523662556961023857380897561301399126906158538671712500526808511547664114346783878645711828359144936743582208983700228609646056572003141174019777447502314094015608534499352431977811534128836814332967285230515817799030698745045417987037485923967023153401340969496427355572234983166841746189283156841546480931102102378602296885447448309587548182147514865565074282621470458508039343179516235078499215769366656385808052824676731364250895122118520073101132397557690261529246343445210418703873212388652168490845702875689001385100925200148728341553979446046325680533433343127680804235540754899400201351925783541779317538758747895558341949992584953330824913023262813502489739235571825500689977425741275476174960549885649554612337290912638299467232108223918455696698982717682584039896639343993415053418999257443112330319652938515777972421231572933521236526338115697415822940017205281531578973062862627007697345426021226432085352916329693630140794591528023597489255504843519866701755422675939279136279355818957533687099992767168767204323519806267357206542406164503342677601317804951918153202234419426639858633017200713167098524922892571364526056871511974360717961361990942644928507172639717123902650158861055688835894033305090513541499877544425799508286551504936128235182267394243649797849745343975133410156710646815631314591569816611053562641310374377262544485054089397550634350190308107386078164709940919789982251759240757926805730328004442901900324467028877963559181656942928919955370336583337188722430434474869276132374656957552426609944417514299278141342121531736809133050395660326398927470015694888308467270150115620440278135769494725405873842370770563584407246758960398393506351605297892056315520190709270223498621755242762583142805715996206010565471592120039251162491941398928896192949224155433366364852108836234943530214800743296062476101391742965716978558173744757168806851132811178381079089425068619826352853071563046646210043626264586819507699797122073791636614298059737302321786848008793113566610599646957118880318167706571864889052960764685127546896102589188351256620464165041839114706968135951440335856597058565131842812148009522128744415912162506237864258454574314964705789959246124073774972859601460635529459074100038741919133205144231049064046455679137227731221728381343065148738965668019197242752332842865970506487317228809901519869523070421681109845138574570508112114353376257296816951751910883696185464739301124400215854572561159355521092274852319454008892801420612270131729928244325133434152808638054750756525969873417588740126209945839088409734268527799630662683252608284153603708879575283324437718944996396919280229171068274075614550261914743310701323261984506228282107477124991258900717565842677716125439346555934674629386623279596883528555043096348353161742203674159994204031304270223693112881099715753760416192967570516847782351342352757690103666578179465406871945725971691718908474719112355184106514755779874470223561303987149813603941757251138822661324965943504638442045252528346200704690962797023575252903863406919423814415599002455777905658872586285580809191676246158515519400331780116259458156810127354560054782063222289876983471595373317629677403356771416733586036007551060948022499263984841636107465166619231723837982572021360008104391127042540691537136694306494558265988653344817189229938312323126393690870673369993581074741604643748395402612923994475417394316972663563447908950960937912597809152747688829949673529637453518478070745422722163186059611395600631001183316977785233403732000822913526525188661560569403946165574699399952946013512702537438316903266171862382432534069523461734476806728296124135453268248754421796947612341562996606696111657662400020625073802248530234722160004891231862116847832123756024979929770022533018114817735050856636456617271810092208126352170388389796108387398087711055367478783631457985110826694773713861187024144435287990075680120351122880926749274028654095510323429027846562576676791849179930520541479898676545822811786031446963787248177246243513991409317186560687132313270597551226612031939990499385659494929447807875686878145392160062679805384523515969044988311482832838151437964201972455721862781626641673732123215246632664423252038646653687757493541240494862822934605720807138669419723838679570665666289980226767494746347879154529348857441334817474377460863325714286175036686859614357289896309908844683731783227162953173715494421926536720844989085704711726315114108031117578253279594637446013849324471995625933791520809929575663350634191184307298542812749404946010825086563781408340014755152459423350552756791522200230537625080897899507802561514884649816144676475960763378242550505777668145201462215441122668918273142761299905778265949063553360947375214640922289797554969269647019758422442123521909783945542570377785692904235284068191619433563173782144994692273689455103607526436339423784002203267533697036795820558517136623008764534194792228981232531129621955992976952143898269875894283929892536670067420342360394495951863847757576564981048646748371406928241358040202489358800152034763718841420182420139152976067027604950101866366746087260380337102518311031619400244781870808083989344143223961748616831864639892387793327797805270410677788816648474395326200087271712749359327263339568014698034064268861205307054022858822063897865077489362737889477817801529871249241457054692880951129383542994361075695332438498531136907059887088487145035818348135012334056602754985917535766983050859592847072172090862687525038790349764637564117592411850550648085347495299469837249927591369482062607977323168467640714762067418549312257746369449610107736229219625068013575853272396167236767321714593848698741407474326188560859197311196677612678506094270672278029962490804659785632657627267158303183456882900868225527933881200061799678124208997917761472045123444431735943825464445594356371625708924826999825703950811302811681385285953945464062122105540161403360247864912258862250976100995047311639255486972337531707207714028327360277318169056105849843972400612857367309207742802650657370988627751347198255594432694858039357687092940816639837584672251373008592338749336305108098276235882802297894350817996484638384220805616043804514162589515338912904985318178112022233556874921513507446069837055451734460910705817407653909320171920807508930304349297283556322493232218298831309421308943376732808247369402058412788779950311852922240804134878242700549882794282029057289852079568611390272945013259109855105461440942867865382997200304693561375791392691687865152012023891889330607485690415492914711463081246667599229172013466627209723460992632737251431082864378255753600672850491070544418187161824814995549669665841619476407537592632422761923528469850407038581140795911853378258333579090671250370677672050778492772725607707485573121009047570547906513574206874138190460701580753173999104008139492783718374468704243068981241147794868317631433212593041158215192524725002770142110980582342693980808745403019671246341946646216514299709751804630652428421474152996784519952531523836787672963875194059278542947225510855903775353007053598529789139207491246320696321527092834692123936978070693110012239962370031024169343144553136405026403255475537941664863566242000750908624425277712366616933228549455858309816415848425123088637779224116919432783842589205257630965351992522811307688605420290549180731255712142529803273592943466603550224360484371373813120696240741123578706782446816352837643607735094198214118898487784632567672554701108220424902568182328014148292352743453529733315130163878122124656231126818191019521186092656960855026112969458786150413504961083696826239670271491186468328342165762007088768166158648957572636300154265444372973384293094031774142738891859488114603839185977037000933166055936198013689995822874506539453094867173383606242988071059347934823217178053578139879214669823774729653227148569423268700317578321999152036294617641732391796748227379138509392583510995642280967851860460286335387975769419463945821448364167817819006065144380880817124791760246989916708802240385007403908302474034681064329196331997639804533551536071920288438363211441960704217662899205749743789778616156638901468238753939591311481468239918803418422325414874286150667447091011553043466377352051911253160287771775612221003905721949455800512500801274489473865608622354822466772160937483263714110566059188954149934648210955765958621993960486156884178967190407480165106368557757291411185693782346460955330700292103257547858376526351558472942268197217197945448908361662119220029306016232615931624356724606250154636718483323875674090610254023262010141587830721671873931650688951246310802202938621395283926793666297054352810789346002337943986094565216414813734789799150254719885419808242487338854270430987151248952225212807941107232193923895745896447099543754751962277596083955245193900475000943975246696674427267220841066269795536176325205050080932205542881064747969896136063041028362458763976704589756051736829653961275050545495865312381698383546908944449140570599328689173438778484440249430151148816951583483049527244680635853888520558970264107225460288327883637703239175614577564379875256213893065535028842931943005490919278069661970909214679574211431265527956364078414823606283815233185914723065247270228783572592995134481837678998001034809492404908973542633171713252060818816513886911113485347217077111784670197815178871612020596094474524454595983197441798554584187276958844257893514335387958366342955679608104209903778156910472109180646059042225562843773799090968052670794188567053954739045547954861648679196830364228401590758022935753235763469470959268740031449874311973087566828793536166647068798840554199498015610031936318366371927833511001797133645758547761510207131175338146999726460978055308962561186446873018258515026495660344622546146323089653077897851441032713999290850301687328058738453268193942410735866912485423467872528533393799756573820039751578461636714627531002265702269153560811764625716950139904635737333898322970710484477224192323609315170874726216408648490940070634050349888435057754587312264425572261488018769577968911747387261704235183824257664021387287016982659323033387426490361644662005034999129025925666522412962045413908470267612323446074069830894286309094383792899400996101785889683612476615750529962374934936763804330488876267477355329545932571208614781940906490730967410315528571593816894744735782838264617748394009070978430211173278109496100833042269130119642309153884129442245321118067923712963681220210346382920419412885481143586404545953254507454507839645956836347008771797557404774797728093658529741738408744567216827343719545843974482981538185544720053771898616180610771764485454295201069413505087205223689589241360461990013441021714767147734190244719092897128779894677082913667030676858756251541832037352155235582358507359235082080799245311906050007339648656544137974117685666754891004216103339870127504665356548368945219306309103562735200867033126417533762436031359070966562151716911919087079681885640199715805245612316583099408542582111303553826377723229526748807793227376258846068624432518232285867396507015350416981235184790801148546292651851625623104252192975499909866527729794055188494733343625500894467609295439396650886374518621127289528276597992829837889881124040628810221115236016585831266666003960648240548510706159235594135659181561933302947248498789043963492859920689063822191685342073493311780793140271099966577096321045456707077204941244669447683182684834720218793999857835314178803181204756961505767204022903635510575970010364892809040446711092757587238117332586322043901803409353227697366720850457380106739475021113734247036599843871310119408126248699595653980458380011866195435942834496220932380202604177986212144326157100791811272680475647898543538618544470551784940499097017530159857922777280278724154153411635593427303911832955226763551939411922378302076504746987670458587970605088600632883850083591769085394746793137905805182548290258413212636484366263172540100007697897437281023241167266990943682688953378711309995058610285861171531146064699721848521951790771099367430598549900146239616488834594563305407994231976931085945080518162029933764019743600128140928965788612528244106072472388356424646846908735962807661305572716965392377034204530432479517725682297062837610747327857454598594969359364885655877418340294268170109453931727544810379820642400157579724801783071265869263495210575239844345641426670546984473462774445545263052224119180717708155302995793104624219735594561706366012440649210396008181392949425695466936246938931771907750025344044545571388567924982521544046612181685797130272152964958899259548417399739315497672837275604803786370060264812803972342967809374711079465845579279394082925452227191743442015354660440126061103860311317819043248487478858118478660664733989256137854039066933297272811324272239459591575346882278299136187833598099408248415631006567528734922407011250596513465646616112912416457363315226288709274409553075549881318070307740954894251985455557889853474566434829318499706253370065082462011536889375203939667338218825397722760108710932361487837010278415196553837341952109885100441429431252669292965981327240641176270781228703268187133150545373108485312682540885434652361520241623252238254248430436902474039963543223318997785950140020071645178105405716818179860717312889478578146728262624806451716972940586463812009797576217326418487971046343633014018679975390484690552698486651652511626643277092532819654953371812628545655320857165547331176483942700152074971409388095938538862950787043749264353159773404210972723318571556419958210869893150969618872187709870724325264682615660706076205825939193270581013423418340350077533490996514858292770785837609385663738018245856264364266524169275204951962424108696407882599235047156370383303630421683702751329424589426481486622191245962015178588825449171439437929050956596350596237188992127827914346645983375232828829818536405437452259293411326305373761664375723880992748569511647127159189233080872149978856239333691993650501140827379652637804703173223151811282963452779145261125730323077707456490154711196888593260836498648098027171548701249470995084552377162960950820628444214997902747043543530347108246162467365197182330523645471914247678455494342637908072900033705076463562676811920585604366012898828785665251941407738570904448467171846499497054103744158523595600107918240830696159183124020547397296684954509974434832248831075497639904566206009066900691194552155957193773942823041701349946574695611672848358180682977001258067595204941242540304575418278774671185992018882057337904873166011398524696245975189604205824106771786889840434048960966553322288588526781711696834602248013216266970006267629940924924754848914020415282902713815773110940747709453031953390943013817553887150704933810245145888231132150256843358963872974747687853400595525700939571952350966669548490122997536067634899222982530348792150483322487310498600755377608704156143758089498185171169267479684281670113214944639193343631465183873945650878179539918293341800502133333661760734345293389411975121145456753789672418610405115287755954318627806654300941565211206535282000263648821667637039692888479727805160131298728965893642792720506488638178303967275668095856783571734360428206899356016742074019957742589920693089212055813373753352812308916499379974868943666027352462012084545120095327711431666077703247401806290365628016911372888086006415318051629185068813913868016810988016299539768638446492150697128618890646717367648733092976652319920199418207937335747254525083815661503341036318440605347938199938887700598127884138931760324974021066135542251840754377914027429916637013807871245037675105515023909855656183852363946747109533574064503952772992362891654146395464319809146890216749409387531000571217968698417311064718213565227798461927785297281097579669615520039889802513950390420490532954951840146784969934549385853174051429296692580747723811970420265312053145626593009377527570766319659741585770526991671075613436175511270315410898051670519127961091821336288378107897316265287317829009994870887387573486141993409321154562414704656864042675518156147372299153104974871919380874409172081976328908333292744315406267785747860024617282025758040800877098492874619905156759312564447595729208489172510730297877243092684606763130444900665834088108646430395194370484148626279048202176874778703195074423555404585639425841829227492834666062980408457328756110435407605635410566775602038040294460329603244853080569513485041993733498860957683155666809296951033856795156026888816538755048812103265518087593125805869325637648596082080740338835104645468898038414082320706734691477328204844868348519546896831266097657029389884219062088949651888537673670421537330492755893084590177141763239424117510066265084270569563951101596709380452582475075949450191890723973253084217527700182329653517754949285310058431620880857736242594320005971324111767547037078425460348705498558678902880784068848341011159151851678169047796267984775484421305709319938708716130737324474987856014556757706029724406821705122447433121911938339616022394631148365830119010830964170676543446681510225232985552349662343086596781162226417031507905825313927800543105652657549243040409841567506891066449178755292534771423682070014235561260184419130796569185018914356322013558058985567634574279445630498478367691376347819892461328022555830304914833084438610121549913766405011872273243104485162518587836188405495983976184607379326687312643736773237175530712405699951764337666885588424835638701107962921547414556944314712053113738933468173191527442662503203205468526452029860156578118265786045414391162132681554765714604886657256869596130257540897533820971683252757196013416033369454308578744479857443967961012463658040071750815121783062224839579079056932749641950006801856603196606545282960154725108981084236893905738665778543057971872027935455856884901148811912360202231555401532154545680788002920988341708749932043196009002059610496626104288434448475428154004707303828801352753650501881617526627911712536151865430673934999644918190271321206381784199776453864577382911041282861488116155639954272929361536975142620830214620948658476042781717028805239980739995294738186173513378349044156888230698941469083289560471243198627943628225997370766157165543751156155498152306058241234693469522179296780234257280948482483278467555923956264878849803868841771750376000365407259935931498382022134605643938534846728062585984381724899242171323201711322970389496002847913868718884271547928689227244431917829220366365642063120806245037211149291088317053289272641657116877636544450018779409818389498196890989245835648578418046611042020733442051285663245306312738967039083712789711485450040552326574586860021800213822589530728797813929810490537727459084042778949777455935929309983398144515928399988289792049998209345746534077260954313628151508830958125841956601112072748481797358983487869775149389501362169860764086800685298893910393949515273276539647996630764445589439119581874973565324388761673801382795470971294858297153375459725401861878832772375052222675082761196959540748205358738038896294867035392779690463102839528225707891083342933744482886305998262198161361137799923232735386417558348459148214308443306831633432352356941655027845550084102039759259062094710552186396951872810766089079826591428352786277714680130748293835228555643927696165201372917583454392951753575642100664511202050462886213732768547055560664520013313660386074788959364103659134254705606595573219040743751246987596404675800483302853897791721722056981403395978454646637932469369739258652341561255664042978576519114059166052848162993997671962265010652538424562982398659997018524261558897505246862296175356140577986414307231080680785660405270258947587466016151488572341400122392519807770595416534326244348903807437716836017282198103436525834080762759302967528603807688019644906825155560916255624627693926613034756273233028927669921262284126374259517585972974361799121869300757502040662590964733385671795613169915607489964542415714165188445186525160471480750187071622431528454514760949686327484305833172332097537539973370046906716187397288255442603609798047288114168061521970597535358562827836867528153950098277718645372345626482211363552111425175079286927118999891575682365987518028355937841689687071222858456466392281561712304476985419541648635839691814669478103903721728724805965478075321659948813917165971021625313172240014715566635635070811281026081808709535602591944010244365199103320415065585637664549371978362953375533426136425610921465535007925494366441788930876088130169483622959566993005469696690522008773015994019486968862239264256575174577114820829201032858187873011435616282458163970321082288099963220986146758992684493548126471762078619370294048227236851788704181893754341940262276620596896903020615552275806792545267447402190544227133330332785917875096887002774725999758206206593395042080813052195201598637612383445581367588423045729312270130728017958076848381122243871006360466751838394181960938201404650464969824834998130214073105771397141137055077933181874111150300759049428329424713304457325299722712093760476711636406528796927210353436293816367786704395620587566695174280456575082836169609431702048340482508655393046241632337823307590554076297209979116751182755779971537399694868402913559319698932298963384782077560421890602784898472118117739186841705491162951477367242536171637721601503311138790968218374491414028955409915870914429581013752312956222279092149769855152848542567396353776040283165872314552635930258599489270991194907293886861390842306035781736457157366817759056549968726297214926654235120833125807994565525953275962962028611267291119453373549520606318743291995302973450537443783043081371889902987981922896273954747279894819568811238405492212102815817792155175561399973904612018605023240961266516931885634810844674976794016370268241373887661363313903979489594943909111252226523935081034608561874440101642281955598332880580613197040651881940657725932072378805600301633476033214296776329887672292213820684540674985379902818742073570135215500277745215222455536865559445498712193469381811625059371823036651572002658266600203211051295049096481441631855688270908362022493175943998063939674246208123305566374076635940256593283048652343483991867005245522117515080468750394330807696165872803550619247166899077008029934690248278992397835527869961915369725698900068794542386027361001512672237243047928429362514189152828028683331014539131468714484612839032240105454278860210000246928767204400798747065190151969545489663340989984629493535788312056715610919948094787352954894492511425642652772172406028968652839323973071420264961844628537888949962357369149482861402029722932042247074892159862055265987676981975014119455949024111074177575421510285909361609121088680162035429796656869056016148016109626565057137013412536370986492185063949916830444938472726959019112628660630457968610249426870490429880140197749173551316232084274820562618623367017894487325905066453579129358858801622561775202121967868977818090302693499262634758577571229942006473500958822281473956070443748984868966155307336408996969887079460727559012079785453106479975622015944924325094652870021798448646418877083648112636333707528428189258100708728201092252852773727538947694553106143398740488221720658807287621948992732362613102056061547423963555198138089777328973915380559190267745453138146885343573558702561035279431646720547927525741176793539522776712046426737261145525363534445385237294829644450694418784047982960080211251984676141761625942443891216077147384441789778514709023603148231430352143096969436394096909799973701273276989629556981251704320769395301738041700451720733086870039576690844723096781411582360013895270286379067070523969656059557519428466851644612491666419886608544379879179961518276731958316541115197445055285677193434059471532749364794232078168491736622842308521956478328727149717261450492419049012798564310503859137462875057129137438842649817213372712114370654930561930483048997456458054432171659496124993682992145842081922396352358098335062278969967768513134812430350278946792949998215014485664760118313536157665163560504151797793135508874915331407434991261741709846417972851861611606561848278276472728348829369136730105644544678930770845776179427015275181688742498034575644486150203993541882848197298219319405502957622015314165910686518592926308287421899811562491929143638535054229296195957563443146275958422670484369917717212328286444340026967705625511971828345725953291335462565045631550505364896841209025716445950769654515319069107186570253850705676267126143523342706011216170797094518079309687123984793970873455427855261374446290512968505581439032272625753685574078743614864991592448995079552449727800915871972008986649069714015175064256690160476118430111345160134136923925299119314300487887981105986756013879987924204159574499067629999541887700923100623333971350893551833747221538684787026005745029096370808822731031476299934542559310736395596827294436476061952151540170628774788254340109231799097731394361853129263682575174427664907119213499011279402349399896642859998042588676372337978972847897832929643948801485504376821191996648373440415296406794976860948589843981749083565846425950598413164188827849421150217652742327538308268373844333117677218487883421868467150224318505784761081251385356952834789195646383120834106308624087985359700503298004812841458895988876779862142380240983362096271666346427132013873243110593518383524975660112830687454453534846762958987840098675021313511094393588336917326328557604072113487740743745167570508061041474326736744569174891726623299723756158136283415684132392026255425232250971486425983954943821696290954663058273885679433087531100566685012717181741045362719939785323043335215522837625132100141006255428325561784859255174011581436381186466444626170099340372745560914400720866947453485434887547910932909445827127885152365023358453317918899240056735083394308331477328962860567046304606822336993740804800642329705296289918194091555672272342415784008761268615940420658090101152863474620477037600228559605797940540048342072977015422133953553644721986794835272216509513131705930415475076396603203417948195535503353489676663703927300100161875473915321731193060604433314918056347171530838749775447322330626595305689444656921834355629949411803424555782987442411416886777874297499538262415386287534123919815682027132049175825877763085692534070651918741082001049498993146318692701290647504759021322634061652072358005771681852423572698427618778323809587997816871851539291004987782454490371196448917223456129411932465524424659024357383692322907137358451774170504361603658308523470605327938928952615332887144692797147999648003949031179782877854791921029035863252789963319170582857428156402254695928586318651147298071430114056020343100118626806512146954333998015066920342769747606587114675583465639299959532853200849079157662079416430909906687483980459013241447583776682288220605673711512524322238914903767066583487745297602401195287842527573701436050913299759906545322340174569672489013039000008542406499065119344843510697927575201297563427199262303319006884526903898980076849047467649388916599189012266145985598589432777083391077375659960508747380688504457423985458453736245749202062267093946419039499960581056677065260452155107403060920883972508863354706800017549083716585656003617203654960571243083766838834248902537705751609480509601374886713071329320092665668817759624427089194808184094335092568008911648637866727886862321803757043215617124132049356932429590814912173940377513278353176920615938815595045108734218430336549619309182549249898482128586669617539607188646257667896124544946998930350955736388911446385455607728813064771373444478136224287914654850594418320588611630415020482780051579475226603600022150099574067384172779733649566176861725267731065348770150682268402306820967460007223220801853659769630903486544596010282769683767785103576627548393208616006471397059984286763941117348438768514139801900529889838210709010778096032662958291889483447263159190229612827559469921993411140589344848792186506697499450782276976147289123908644642681914099880208460525593759483206270045670914196307784340402017985483723749624659343433915882120281285471874910322121064519888017313109475382400591777395733393466724774982558698220664170148022259034842234809094224146601387981928020284335808387196183266955459101937156823566213731347830720759004989491499066677924618327416763011153342522308092300129075629190169783944915230373597640437419537787252960384212630105940378220006596603140828270392822126410814204821443940210214743690592556609502075363979910622409021976865353006641674364225092645952159321034158275107716464535535231349312659215011648585224282401209798733071217427195730668748753458509199302066826820914615051431708829400830652750029748539939118242296230408036576104718596358298896441180215828220603333941081332338249357116374873949872808289725476958734794795644104047196708510730682874706524095451034284253631823775880201253799519661558903166900777714947769759815495659919860257804910359680975000977960711158768913549377137319793239170315631014142983479225109449061922685913454252839673907919623202934859407774670846561357472482122230888836299544673246660666302561509240446758700888971918960963138159783512548948416495771407545046060836028860324053653238094742286389647415310100869878160170210416692717710558881121552412132645477187148528766741214241305007297614630638439343104678151534669234395645643007097498547105343280224523350445283080864511556471812124192553781305642487674585735227340752838336579957145553998870340746869570807539668744077282157455174428051111948493250020558063247059031439820702929220676895695092842845658961492201226270548425080419503635592874676937634253907154704362927289538825723929835668201997213701621094324287965826877332549549459308747354469423723568930315352991826511558072667384032565993611409849259138292832307462389797641804465044625183399402806431394520836885595605183640771757855221339040351346618673099571818418077298814685001240812462414800168966977461277129190454832691039241121066856388614448003554742152277666545163954533262859488303553033084798709233954370566273095316486996694573429898240224684704965191669626194404097664270437983165591986451742109748852456412808226705049028316582074544665471894661834379303255836805392314433346408333322670933401900062509876025455052526042485933758956218880758841429485343090223488959596785921383130741723407055933394136381054321962957267452325021437385241182305903628928913821919002700687206744179721180272317652547777544091029301286463957969522806796198787714023521672125806624997626693809013484766769267132643524188320759674558733431629310598740463357328533865967018389156337903729500168569031614076184562176052262301234834400867949681397595064675617555047342757856007625612800093320980696682442993204875504778741408958872345411111305746071941140724777766607692831323717193042732516902634891996312559424619238435553600445953087242037457707491091727827346670741491822698575219222081417579189463162483844439212569623619649733494358275918029282861930464326200080092676511493011931985752491375159650184208332940522646577912689375812446613389314705154699374415611456366347855417580252192515895148682416987678605728942454125329559437884944254100302449353862962332481268394591104500206930361005208499206766340884732766782342763612472522924193095246380141172686572247590597040029937657649191980759668654734014180121712900880617431388139231572607224293717966526640021273844102669491449477056810712759273250641948729650964694240438644930155358857044212407437702941907347425149791793290011915381088420737883916474987346934708016672350993304989938839695662266444828302948432854431995734741501065675369892753848884830675814453742601296039594027813818016875418243678490713155328699625552347909111109319953805648882419955786220603787354714765573373565873582382965229904498397366163025850580919411781632134271807501063361845722484293613765724696070488206429367279276674897715341060230603885907040502215888749985104132005520278800205163272532117119170534007116214645022119037274230619886305178272456169646323164079424638841547279182541977334447971435690677159978936285366570408872759722972174166781254661149137563275577265751893098848505229011454429575369446234103777146559678709787013065385899114681430233356187981321490407064964542688668820490717161084032792111853973834279080241807154055020509212878776461408563211061230528320813370003582343395783616723154276169296928011244081884522538034164457959106884930851786705841494013031600123504219763402244277187899075188346233532467142888423485499194595117556105723565638557220705956425211506740201457986658348041225104074763545157929504081900827471136611451156864907924591300360854177682018869178776416482829010819173186337896598964759458713321515784481096660210127091408146772067384814404211571686777906693493701251628971911205253450991377756254518839445332649541758784737246496974871240796631359856635459069010313248155432945472600188563097693145357536163394136697665332996647237977034697015030249171879707676676746058003714438713473785369401139927967785406834378395438234793102863755586805669504277610295195078946029186921255961356287319173642784394404024474799496995909891766298267530640445887859781446748180728824915417384396006922386149312298756497653590322072289603460337726329297856108835940307889489596513429104787965571938600184466282877474858657473142319265114454128635412634101708440175631247558011095592641805324394695737762888386557306901883119798303459613044546426620046241040394104238192727889918420255974312142916649849630805094699937493098796356035385693070154860278141809294616355720275989703789559081029127163505428610891820607769545532614645401087421050522382037033903176431807746318004648384368249417732192077340194021117746980269872179164731917374329924174105523271727290879203313249142362605248838395511761941873676722684385058807526811963463777154891860025346327014971509986313992294428589950129360341193438821890251455215692660016476806403516313427439517196956228573841748411914531260172287888755098977746336287960984680585733856193603840600072785481691269259083264855500508086531012218015076966445661207972739557055888891534687007896164411230314219204642452646400341494842236432527324779831879682322367937372276690088358456799697287213763962417129462456657395122867276143753530823275296358799071907353455857652481476690149976561456577457689040527344669604383330676986644633326572677919633988329839845551349006770154902599601955968539710707163990519389588577395085050592633520591193415796993768404620761892949185334622154365308484300007011379512593838819595267121538039793209457774520012096536999623088386903923448641408990325569705325238872180733542899576614667624858611461384648868509917373072668444452649402165834329962024097357004126186817671430049759639466962940920523885965387307213690864719403109695447823940914518627598661687541354139594272297892365733113354585650930226807949110353599812102984378901841573014944599475505628932894034479819633653534242479826353534799972360945204550043505114131428933790391872374767744027989235702437462180766259552763511244977039808543787162151053729244768093309656528637448034346170789634709445610569448462867630317118416372918243164251108762454211052174702789931291518862463531594134181195744193817921048036530734604970516866091295110821465095235468193693555410783977292424673511371884956108508018205437023149358254083932202127396731891424855435285231476407060281503626615673043332982367253878700401598824640391947330040571036999234449731112352823680869107888544205179519642195894314668427385666885262005927399056920417898625161664631198973286485772042187789760283582202694962755727922677338491272168506975042155215845774389004497311276591049023931030403623992375633591824613834838813615496818476320218976063377295054745358232565647263725563196872235859017468019713662615807396002194268204923604526787978096390121854259589498711732028311197950711031800854265365196091479235106407963406169618151118114138327850448226016748106432604164100700280678490883090431729355753947985319610362706796195677839950769705205465987618412411274142541126895626907062595944001125795023959997379438067266029946607678465658439856736655485478264381359773962921931137342200860043233345148685594179398224434974824660885290277421435390682871060066094669598793815652553957521786443525612534448592813426237243966487064557535859158474150916635088156624658399471059795719461848122380369398118740308405067247284036160686847336780052618197885322435771938478608371361676385523581266570794996129653957849135973064046470770733450482400676406012855287313044980018279685722720882034348017593446345186843167262928552218122121552053287808614846833657998221438273361144335457279914099281293446170328748981236834231627847935884350419901635802996717559881681028970842706342023032365490273051685488319540339258954247876747191731287949429664060812194033209994431784132553263913765735055549789403540845463717251439534806468834601307305399311075977465166446977760018173712794752025075385933517233809000969851716039581550066566470136166614210734426273279634506168070268016684890727520835286659218460880889943838479101470307021705308819763557716500117741690260064342558056039320846764291013713452882212014705673607690910656579092621307883677795352721914501775538855101077358539204040683394157456603999563674825933110535743946834016822643858747087955383925118003963173733540510338415101670697071250632748516756570438980974537853002924644676309424820450846605672367880501183196782010445203377462906842396156821880561374264254279705778947118331260234277125855805366795401628735359685568918692100539737386223072738137089400116854249776231500967645403786031417658674387385150095187116196058732969624545389224810714619009093803243030573892218601814101847886756048611692225868161944336159908211788106692747442048511652966905232753513296238750132436304714566003787532994999709866222180530207577226400402000654177448064967045788267608658035342501855909075067997628586117915181329649237071471657546255862139460038337931882299865444836819670244769515127070680822280393396200167351119694492913383686971775591974032819981271498633440167279502246408436039588481157396911801271397418163937848050983664325447799237011106925032549871417839638803936751211850012799892059734144660377956119962198357803923582362836179767493918067767539168735576271489140369517963698360306008998745804362191619829079403467295819560339228399585401199494219107498778535102622895818470114408933534382310216845370039931441119071035270972373563232826117262264431780123503646708204255001444498589497836123974437402682431890113415489147630534881652265839477644650615979322701790223658705589364883732138678114929543987586005796312331068782518370180632091013999753243364286600289489398630773061736052928002695870014704972090923381314854229178651558292449734792094572713507900934003623163825147817603823698236599679033989808847200036991871739145792602147058034664199849791684968031408969915629323412330913792038845101519147669882355702291069794175229008184452326598969704137139869215225029401114329794657013228581350638181426567507749093659083531282317309680321881512371546277723785954722212272200590233844360057216981001482039942747170809564130002070904020967672812571750360276931704521602655186071734968077124107413422176293513421475394847022434738270341662912060953666194460512836123361893780101265894536288131547114368682945632238188580708835459920929144662596567627692031807659964858296885519964688555403854547723262297606306078442166992186955401677963031004751625319472141644672331186908369950454914546772718447771097685593688214346127075585801468906861993453687587767991054803059393436796248881576601960967783192648176965845820634974772826280768331065909474024141208816329950592660101507778790168316446052115592711062560565400538333040662475953891352375061835903859067296862446437482536733048642571969282586257910195286800639775923932091736095005979883676269295760484503365479207975863656182698815983034408567123930444293928227391784320338390059532946464719583375095759100126791532578117681077202120639047909623839053435523687903456317852282940249815009924750081541709587474036778511032736407716693683125777764821198752741096612433039756248137310700425389662207223444113055171503193776197810048657759254338169600731067577446222154670239941136212575418605759905013922670202224121208009238909728198705115380941180058995490432161747442057282358173159563354093128758701258933389616634527297955983064742975034795707899663973821657609899847281571264814255643104232381154877080297369562876132183083774501892560870886295948425774826648906234012477172486102116373816283974382688942744294631089558538418465362596930385722527650029405062753635434232031454227926030641846247902370554288814125412047545513459425677328968363666192003745665284439313510686037479035790872827147440381157815038722896373810104269972805253705725176126893276269670465489912808136138510250281181541151087207685298638918110288041677602895603257195079384031071093025247177401139875710405298803234282972685797320403124596351084541625304320871753159771768491272506152981977607412730899276417373418605898472634549689884010751130610910099119882536338369621164661564745837278033470752699652817355306079237356309917396554410986799753710585198390838785635801742298179646438595746477691974050062502387989435308664423182554649832683955444270558297433080462981370546536085129050802110540972864520577392445931653765172751146944756314971881890076485306596969768736248438540981882430080065207726740160868561650386215129786026004904097596048363512377360580468458431696714131595781147403785806224678601247287169573521678890573372671139902735799375961710782306035475400091461042641408529412087644048286140333929226164864689540713423227899779326173821521398437679463474470091361009926220135414571739998862869878718583929528839254159703401730538993166378143589699761366031018827578229652822860601818808319549034382737094977585475132278164478255302530467317001656404607130869117417223635150104990106540877983672510453737611752013692483113560994989184422894399687498008151590466882247007865758768157974056112734295010531338132848267967210589374704211178836898044692362015406910807088115274766417704579539166371036046515316633221849973806400584400801441015732900855873751157013590792896902937691810916346515781443776213200001184233870118094902855825928477110011824154193698501547293704238261006302182099679951959802315514347477731818588470351346361738889731511747739979458165537101249215035771409852016394310271872477883470598331635387583700666494269717020611511859463181754310772002220587710666136440975358169972125972218122609985431891415624691504074424211302027379520728203830737051625001284215668435925276131434597637857161314857041459592277378990608315698844138326225229262126137436312995596885720325036754103641697311588926500837904878511701273000631941508166162386174690907874704887466453236322465195276158601819260015092417547463481682550129406488465743903885394935076967063687360752434779058406019210140345732897969260416906407410993889003063178926213624172518367527917247871218182820494222328733223780941365626321807533016025478093502749749969698228821510443911576978128083604484097150152796970108668161019127196982456574468821455542438474446535796533699942202788995636366182887042834868943245640524877208079574633523557607714339001836340047766182676243370424236117305859594347905962954989620884841237448539256510936781966732627164766659901289729022638322007214347604354213860716807657432066291479542593760125647422696494067708722837203459554334742324083706974336888277230492751596125953970227162670005297064679706957943917861524302647340884091106109103237954845622650342906630128423988193950878369706457095266011889111126240811434531741296746035107181576587016361905979459505552953354140324714655206724214335035933732199435375267382971901518558589774034478854453974748003295746345550596162532097739035131587040608251766050075662715175030788398740401325579693064928575521705949401961866486516675922827202845009193003347995441649747544988815674054345247484365693126634128566622979389525461607417114753898168258916059965679688618715680488653889432381092073357107486013709679872641580444197512075875287941868981012498012109888951570896067285061681296289526649317189979147364151343612953018594133367625933586596997150496772977664735224320590414749595578820361054634785450580027264426399391387308131401174324889804220532871014890977028464980154440355369776356156626510162863526941790911071796174997633038541936617968204375250155674739114683414712006844183785133111468211044273618282904440206227589121977153820237514881980606439081755839189070705779203576014557621880780943757521198205196493990670020006625493061078646842156891778060687674979863839853714363950161814948002823956593228883817910654410807796015235994790373701919403655032787394049561747115320129592301078241487777195732077945367979344635025698331261816133329384046743602023863558204021979160411951492120597483407363517364253546947095495703494759446388236315939362257487330405304074601822018812641868533404080737532016123993965809858634159402859193600416361945224149015991370639816307437278523941939934296899271778124892764836998209815544533762174057258910397376110294904668730811218762217272304551227777038117560263367559158032310923596358899672220778888855836485195212941311371346158482178667638602861331750710548245405067500810125127767645489426978492025326328889790774774844199585081618204673536766120032044558450292430989268942603664320050265518668414828262826356622461366144740877343952399841848365517770532406944265675286040186009468273059922230796418232955711088010620214045484709947413446449679217780981316108898359000989188546217720859595839748954185172353934069897101121275617069498781519204528794766901247197957942386002115974584807845432856796874400455892756578005565945787516222157291699407580623197520826737825302123306965696471863050237585519765664653006526595303679504702981761187663735538304065401025345108562353608712038156496987731494244132090446765260181213365210176686197267199820772784497174208344530705428110655007358093487904057387539358261077758348774386815998777666073469297136597931303756883946781435948437162666353220432977833337834492771241133060024964606876913752497649324542268536682556589592342517844400613608547115939445125237500164105744864470420059648844352086790395458529195169136597691647439349581015381867407358664829683781535271806425352387708113029238027199223974141441993906062047326463673663822796007487113749211603493275757462104011110602285235715924418624234203697999423624689046780066269298920183104896773176908681071301738694998297592457482074881659958679852466800538311314207360154947709634449156638902271963471573560479155209420888410727902436305283009300096104200469456174410432484041152915887623511269688730772171108575664585693733026466487686576903157784580783883438256015175029945644266424989545853888563804536243513308310038783078402121062051325057254491801293143330551817637290682000471219585001254025787077236062992330913816686190521321877502428252544980095309586783530335059871507798626058553505960498765819380619046827743695092841427486811451884453884751847271102297387775698749706508637686254848396221677490954703876571305497598279234304971428558260065558161539379569483669755589336105552633588924379046412385768114433231799511090725842120528678826436881672143055184171537450025424351101997621718200573572866075898349921167214149361789612692051829857921251959739109356112443242349113523661430866973449772270520707141995336388068194126120726356921118536341976806829453477754292858317805036945958054886680469261571160811790947780409639699902475279249881032377274629449669748250740594895714131258398160566177233230009910460030597726010462062693457793986536009565060054630529891614589466808472760594832502142137753079770237956420055929599182679648790657852598663688016176132113572334335648204367124357096792970460140339023040237503033589121849397752630349154292621175322635141303630042962866978248014698689778235638165654504872384597602461041813821136056833656052839309424399836549323392673461525877506750574450385664145809379632590610949210662325324503229383117525252271319414007679987414037564167659324580268007390234738009377813158992732798073166731795475574439913652670829901526797633449666569583940923945177530326553043296457549537703312485522077293775070694906056656970741854719981536580565055491308398286483063106121434395037337097817158096192294883575974294251743215933904514097079238666233994894686462492577999178181413018996968623810173081257178118614360643732075177949017139794870277004643372508836086169956216109324636515397892807205560826670306564050412808420138039147815546838888296018979279115663797782436256839761335906073795683513927644195441277786154784523582423640178115624573726915346406058957581516288790302063618871315657130451943032966569104088310050005138975003577829710262603728762584674702990770679942717883437354961545597605087830770968979029510511923078917649125992864619975352535585304808091542532695599873364834573713656095795110392597474173743080676285900083949068710544727869309461827664534660837189876693369895651226784736528178411746560010985801302087758860859455663073385601153801651405279327946532563336473224396065927920267436050338615531463815399547100569579884835613711203621382190140895176330602865154411924988175722975404255593425682246524563998396827152221381906614763191588480677892482703973043486841509240912328370239205552026977942989905652347064981699759277774777826645302812319279145895917905005178757593491161014155916718760349247226158117832595602224915132515398625270523094573143619760894748411727125454935810460377889636338572885369797391643667460664762000729912326608038109421649678874803852754464642034711457339741474521439669959447906258551971894757876153564192813321932308530238402012749097796100129900977131682984192108611580968956984448199761788030936432385687409878956589783315613192265442380713007350113380315166403957794816838982729155482577636209869948621062574213064176807823772465372883357066059555806581207891648973501705479729113270328108779068631273697665723728050486540758893840723858511001399921904773285532726920368429444630283581462405515996354755143331451250249454301865622287561078074569802424656513423000669285097035891078616736481579945420611152031115594761534893603592842896284117496771636933082760568047638536769783252570218653558964029337394976745844336276684867271904637656385600224301586445771996430307021889982940258612800619630954914155830339736592854629661772273640398282067401506415946832422674529138526172448899607791701872860439231337244488564886900441510001417744595857104628027967010212660930171307763449453702236273643331483649740831713345563624012444539840365935778214670884105578001335693287050534993822874802030124655835914837826747436004482335543302633672406442861207565999834124146509697060688177319468376490914339438858879095010643224891531049328558050259137368672306753012186511134220551087392834839413512871641502765338430287387191124980477949089123337151966324976510086833337260146693213640529629960964955667798977794520890377803817942858210401000621861202980527792900366313873049503407799674658532349304934761091946694468213689428521779915709312355592775856962324972645249507554326664092211594520666431616098296309047751651696709820930324267763346105508114898526755204905099001379617275411912927300210922997213323443578765856029822977205956674464376973928332638579586813187604790570733887254310821670808523653836782093883530376921200635614881048215078047784878420090457861222318777255294459471662439966197824376105214993642149736378078662282306950165715189136308200775763961942100883531350873022325156067370645576544527897629925997851139482242319787245501865949730168638929294106373383673208624699960207612867316932541792720045426106387728059131821897481002177870966547888360515726760986667485978572357844951224167381235717939646700379774997358827215133012165322164092850535772946359684040118984895119442365878500059851890290977605535585547764632332823014318907717566031956877786337312217535775450267415734008867047331927083667456070484933697332778270529393696904717175390789801352912203621158624678163608436092408695408223729413618544536516782121628252924448508559563132965040367181050342525811769551969246476065862623340426925306025511223357644739415474033267606942688955324152014209102793951172210139256747845887968175371300302081831628380554162171949762591864785181147923047311985997031235602871461063136572228219039250401684635879330761503304302409376191354501742506094611192892836099013090047327434279513625616910317392714450293847242712898883343238749344752133315802344019066553414317944592458065859416365846880379424846103678855298630579795128683860664035851534052801661304069744977263233495312969696971698372759011759963884101890876695726272470836695715321510470116922270995480798062146632465258468473274300335157453072999880259611345661774996367518719484421231139177703525379732868356400677001181669807088089456909748506450655253278576974070667328220156128111871915882519731142674560611925164255062037827675248500913573681279912071490012089506542888531555566326313265831972480244988007777017204123013224172808606407647443560017359984358150715460713656610207699521760617789835439586792790364514377148381131185780133047183603307357025184892995427954733159623545020967448610542410714466217364538760301765883005373096137871607497979177631214503905132406995896475152645101312274953958109920764760350942445666617023281824629225580581474701529868589289171571459450493317247020624674328254245307125921057350747669261361023500396826185826965176040397207302365998422838687023594814197583721286315338653618709252392003712794278614709087340257309053891774092742719503799713722842023909269713397468692627038066753660466316794565899153124758238134476038235037992885713184441481982935829429650650044499283629732930619892048276895187319753095873419675929102817122794644509465314098186574578234786550242926339538383236413061282464923802183583847370441628713489280460827435902169550348971013189346499701802126293477974253363100292907908111424444840974285406700415161533457206351905415423206565669076461390177294980070214994729806033441034565185190533326615136183712141819212473238304623847630374193243222107512781827139148559712769957948640874630038117948595783667195528352369479520779937289181525158712214204549505240014765995437802126017366000809459688869652357915360920333065766495425049800959344656133922406410311591931747256552357006682884264025276535520127345141809305746698784297401060651236043047103455499421151546082484997248599140885115417393637364112820455298247517212377209652720756472056964759733376223160568128987668430572901170968809194453180128619142274535798022717435320577133597001772516709686739903286770584299231040593670933904206398698772277892423603399199250758410348896738258342576602259756681740811648517457748512806128227050543725051428844321833924405545266497599936262704902632640608052279277335379135099367158660151169117863593652340917077218142385533599127741121855774205817843596739632518207526576177774339818899857872879561657256055794440746651688285962334017546455687114033725782197936398982708217354645024512867894321441260556592933684364858798179916164554757334134075119447798980137605401131843623503700287119599897974964430986631750761774320451480843509778423253613640704180398505263512823589831956878894318421623446251811173191434231846656790274579924311910374182241242240983730904483844605264908854160505046293743102409812713869334724362516739879888122456387059544562005521865510989253089383932748653916567050846948784437943131960117434153703051934270482512450176971533672166632013399828366132161220920468843747288745445768598671931148062885849416862709912157878632534709809905760547888695631090463843974977330818293456188980332038961558959657147192492890190286429494451528160373730550426350006040685039112186866685221068092787134364686954228014795829953710729064126136084648934448960403932514664775833161377049511576131554481327133370976851239150252536918256203825835739288473240711729065217313071683383698003058407006865514004661526804150642336316320247061016628762338457613452749300917462668035435155080907795572996571523555213230238320681428576489570953825119892282180904279433940089891059048019376762636951305964005861680168412090960842598938899520312535761869542836731786993622292769070966539915616605928126661194593341075682259204617701640855712585959409757155214833252554676957225930418305266236668986113207430095819672823581903618928141315542384475556194826565532106108775808425229477795204183896951131408908237230348357973923892886542102879256703741703362645081336108319266052573037086125163323670861372946074874948208923003150046526185686192923374709113176251120728245471877876960620284006154973525728198575819917395781773216089673713802458025042538719417870805245785576678178249706309824818508605860066674410637493102670310647719469821984181409387065367620675405162990870880997141679787774000908171124004877527471779856640277756720278162626749012637438871334807648165407639865464994578754096292252163526165156973705283258270262925915644804586225401854402997937220003476665256147393634049996957318597956099108450874011027709937140385710564012103331905738865987398509944676007572291346037060274168926051821811557359960305026247219058150377392469412172491729374446800747096226668998093587525047062643481288424666197378404116685751353056483234814858532015688921032631892833621367515859844618383101831145033668913668410347851831544185235340398246657742185892364383928888475250116824485205893009732059443414025621408147683306086273744519406373268437436151147718176789973768437738159352650708287326974285815068864466377783078911648826106328944508315257978077333869143419542064086886105942627991112132820034921739927212183161616273957984299482863797614817224946156056273998651589645395264147437129875709856421122123924877316883059327067634502656513082282876776734236216736565463286161838297662537553521332683642939618369331014884627317490365580922257939304146154929351189573752895054331156932720586887052018006008644569248239178705877133959950402833831595990371737839422865334983766267335297506684925749631272669538731605501068630336203367217320546741577859296450103554986182900510439717161180372468313029977455152216825873641750537535805482668737189168585101353105637888104829516444170640430637676756214442838046309508340242875280932595150598170581837322856339870650588757053951930286548685989354694017536274836858990174113247732995166617019322825076378195387367231791088757093702758040381121230235387175470314302145725488022053488280309222770639514769565222822870309529381128426574515733529604119263420321679924677996090105484334367251989121173625611310942382872897671955548016869478052851980284383943582296783976127315125397011682220829343503698001211963891827014603268405909029809491605741018947789797091910624997628715706502733500224857535207591430598438805889337190390804840059924785984443284374940090389189073160095960264414858764299668691483353161607523504786205665166473416453361306757270571313289270646743487688793249596013169385854356550771277593160041282725297239240370668930375325986536706357083974396359145062741799892704880475409127571766982239320464161896319360118684442622029310220367361303407235680391992992711493955614442524078949241611751296453529173549286908807906680698291742859217471498180955181050897819423066661084130076123542164647669747828706236070612323965967816069783982803915385887367106564741404692956555370110395902881481430402377010980852534820370950197018607610497205989248495209603484688392994654442304128137717501503957427655556174107801641123635116340371161832487334795224800886490773965715597142864900579176069667123928891964393085371124705947188192859808720625117030913594385821256628579227178902000905179106919485067036376645910615265162965873300010357898047085955016372874802241456010236045570667394517265998319084396289694272116218387971147740137980262508981845346022453487089066445794921728451837754529315236223100105866216798441787308930272932836977082561557611884041834454835143255031452163021423485349207495878378132032708445662865059045252124223756500150415788446130884915227066484838107515175108459586460044156572963729688744649843046913834915322525251348668335362817707494391618526339115929381470816853831972642384219698783286506539655572431915804106848316983733563525212799484611679316710735415307253429063650560799105285466602795333029801897733442085044440473875881305677044135373307611659460419734055695294924061363637135823034206019658908257286025529800323125565766857182657561235147874283204742378196265776603730503167720856752995638062058494894310513704340800465087876499169736549804238023602412184074426111750479131063018831002702143110372946539204072579711131383378858440427361580659736336200792507240483381126130798570322951469577087691558922658465464645905537440157687074307682569762265952388677189584223808959119018574801493927627096290062326464448252387770129492154051567544037512166856989043286460462629906185295545882436977936642278186491693107885151595364932629017046104740816555166622152095862043535739930596444237848252002180368993935050647427957764812794653978960713714225952669940398668314573567341364838354973463747791846795492883958884387083490370862653476608682613325444699212437845918024051826531635790613960925376974334489836611693524208898906043912436478949537756672460578863791110793538047810459466755073013685320449822187635756345323524262921995120473921546118836460151945713651817250207355326770110752861533694269145390589273807584000491823209182366806215072497595324015306692278525527674331907390889178217810647950293349057898816211970591423681004863260988635853303696257209796575900436492577516705135160660001412683936186134362934859538088308525321210192990637415568918656120955514268148637637015670824823399459376512546364231403968751713625791385131268474041003033222084940047185674273867541959068921045606951339783140365007140987616290079621253863965898341653047357892589796543404021953027673686543499987646707742964750248368726451769107622379765272621481696074633810542659521679363239871639487613618367139717990051997585980078053713029541841361891367975992688050022959824207186337886973806330967589712756790635624993830079176667592691251973242336992118155529902039949303679103352060062833795992730297375527154003130617434696287913177913619117469221320231759002933497981040479401778813959155350508942234288294851646778177665080970303464181800496951932061794086368455150014178356374815189021941153314284455137908547912083764116002698095565206020524942687424671182752274489467180666584578150509748810451450321772899731251635182127611063171328283107342111092702086406444046322935193752680951425272531610505611972996269916877873290858206835658036050355508740717339406521219242369032030698599327160129739762097591869490988682102669517693855130324467265320247038191610806722314419496351140544469461895984610870833463044679064370428964680061576954037614092967670602888499016706996366441778041476442782057159729954715657132275687027354000447228944395332587926042858299934321610282935442061708472275114993514851756755813191682664031959100718795517765424797384543740574573737529076013241103894091374092719665313496007415935268664154915446685079749811218399677303050266460442420323085153517402800416583416671342407219549249085299713202504261035712587669944389926228169380424274954094060405824482520129595536463825210874064129806643301767203702730799924778371601352246791349941099236859573436689291693874123547177344243444667333367229058078713094142135354552968643453675548909920807601538084837928447039458849106347232752148007755017149885349480903016882406253399627937833508863255011851915861895453399916638334949009838507612553525074828132044137677227210278426501225507218516918400835025341321247864790593355675241028527201353920819562815267637398085723197252655113627396879811005952937734301728806681144097524284184185464598908914614080635007481492500619823940640097679802842480683693641960723151904245564030309534360362766961871595001600582102456962233795058948800874657137792887242885526757077467380660216953459424349814157458739516491355271910128137301096345360894169890955582072730508112223858515268109326363226959166018619887286515494377077542429936931336466610998278843077073945622998014564209124008746232051601049290606591533962889338637002954004077808818737057981250349021453895583392649403138333290320699353811983738573693713559467141076646995664640710557880110892236947088907502600907767990218016076984346009593729622233017680171729868638304786948582984936724993923619061718829486151023851431611443896106846563611906944098203479098924302592465778591304755679340370712033076954169086402863107221026571407905027790340024895384446459243508320689520490742570612580630946226020209324305402538406086371301953563655438784516712897574231885298797835561060696501891009344249091376854320118153395531302612776878408361518168012482334261461054150852426054750324020792988646504937225741593402394176583522530080685838219072780851578105280814663460511346478833632036647051577613421081278460076793037986346850054525006853746567473768405876423608485492525919188397495344947654295428272423706245052938566332396632293215656169442948942488539059619176546535668940176717473222622687883121617260941136061806805492336693028083303644935320857831579895940186038704980296947288081129861880341279451610000450060758660089179623327747730745199318946797438102745598667922394541464182660135432641916811939403048621402875954855631405676885974572969674795344460416968932914514492806724044549492768941461059305671309745016437846413333554617448998806188877073779178552763577651786614354566509597741127281046807051460300227996165332713341682725865024503536365246887658997082480363869178190022036388325456371246024526325586760724509908056150344101636717914189638531210941963293678905840620973519252042033046026547952272115202745153955238740036036015586792669800473733420306702594338683935106752742662932440833963721459004214189523854767596022083791301288080292978347994180899327780324132074491843160243067749217258274673886244600137517423309740542910189574306449306137316868934047960911865405306416020687541292885505389041060691933868728472570622231394605731832833761993893787554723931169751983747976874929628329795557615791662833693991293112572290409220228720713731519291154100004027970571718688331331232681637863371706430220818945854798248062936306871078375922581833095031560902337055292275709592130563691798950907650013965460032644116522922290128572328698170764088841524548830814908528725533690049014914908353486305467451028131952028653264801421209003439425644471649451284075100426614970461370044495820900312432969616143511290119122406697069687838650322420796669108975806328918754390641884958801522465916601983427516402621187784787174029320753587016028640347713430276203661720867620456735325617851829008779141537270258550271831210583726326503124869910166826151863166064309157032512153269552165418948702988300294682372953554300321954104561877483629747363426847765241398925749850412513150135532284720645199627284749431803013791386289572909167115316801083358885380174460908357306150842468281461125324654276064721617700691327612422323032377215940278928756227966077356038970169084711486485297690568481522839003775215932331581260236542523499289658537952132581547176158010730984137144006759068378126653969984303350398423756844475109634181293280609011459137348220670445495604892521821762029886901685786873130671268172679072080065755014854304696404234727340032632266358771957342489043307221809833814084902215434860325272575644429470632922498021032012143829930681944930950899739467811995538753693936710673801812270402838029374402803922983572309905667925656313288615384698985893726262797276856381649512547511621532373170174563964133373700582546504176109783106873197942025268741460013809973940846090291338674602407712693415674088919267781641686528925710510337143170895238286347185704121121145405492694353931816113104502856794214177494678882433983343107398695727836279767200481278965724280158870449005076570830938402765271824101538561759528436463235378774645521011036372769774029195848931429501771107493467962988275498751546533323864302374027961396032468470341082631869866212943238562722035808441601326959752071142206730074849029206915977841871963290627891648134003768140257288044410862594092521213876655551113504686498839897775760376580464235003485922601287609338837173658816809189844789609779576500224601693436540086207931422234730817944690518716921854389276085284724712538647456133920189079231004214256204062916991397723204422653566362125899468517671946328018987722666583899319115713264753176182078287949981176288677334085852794816132795482595205902599214902196961586799963060362994705878130641229322878181954614569703506280749263821915437551596694066218665220424647067032886561513058013055804925679695991808438207085525043700973902138190500418188711129488681527650814625981798249175508081516666446865069434159683684910962094429513852712506352551155921130427081372276354376401484475831685606870578775950482793912133306957376515796827748289823314646908490977095371832470010319688585010686310988014846442993861957008038335203773632345927426670963604909775779445814891104814623964356595508053289519024219736873073970410013882613313008707986121876002569305791686431058781453064718633099301459864401503263649625047904054238626596306159126697783052717939891726829637163398982330927758483243912114658799878568215427958542675691096428306693300190967745107602161649930006189178420486555004165836849291647404583308646924305329398940299834739791310350802433456523330234347929121701942950022119052906479346496443741159012504148957276975736004259560987644602320336438535101492448422376016000004408248465147284440332491898147189954566645052602095982939668410609874949426294779052579294451481432204339442570169178611613473665777267745985430203169280891915658342833123646238218282042728390964986248412497004184853786910961864124132956251132511547486114423575097495630423170628846693076985556129101347316859389446049687592586828839054227523083941162304728276483852257025884412634319107777270674561070247017260217504186506389087662020019309926624605961114161778048053288872684746714901802255317512655971346591190986544923001950517092522391926416246612085221963728353063027989232060534100534239512428554132349004453619431371258883984111475198632672491582045744170834248086879745361602222306759021555234367543863432603606886334873704052493489342799088857546662663623928368573531518088318675122111204567450753850943190027932843284296720182326900836449293083418876872181789152117145011643163700229132121973960998338502625541598967603049938199901869717136763050358054077850359752035719238814047380110388743184222052700564820975963587279437366375019214581934243828137496747679641991380712708725815471329581293510767537684997943645584394444884439342268091925733595422562241670314744781510735748067214847958175885440739247143354012119866534600730041084822904153842323309738584398366562512005704040099280898805661924331957117055472245891861147084158298255846286615434272912792695508402557369359942246783005221823222716656354039554444849057293006887612132607327658879717436821754547915740451518503035418613146711022361400178299345364440048850392008338558273116442936464328812988563358278231594066096639070738213130379154593162753656854298821521578411934925689412603163874512200946989154586685482763845864302237077685379469974680715090515207941293774841101542257739769734430561646991231559432564438445478652206619632685765862500922781122466417336630240438491530722749060657134350883459629778075095438722075743476989149650184301303309409618897163099875207770093899521807136557399308673471584887789671142575392705348842566018887543952776188918507141707771950725688296616605194417225429045802753586782257911233552967207792535770180798427651893914275404753263131341465641257423480400913075158762265049628131136765879735887530300559995264665407231475153954151066017385877931579455862629452387342685394506968244726726395669636193691934221473502281190619439410957927348240064438555441744582856671250463731920878569772208912106917403900465551632373194466528410636907212436028022545164511448558748557605760687856380396510681593513764181109916489740362569403907591840648972986363604628605248512611834377819274059489305746542011220784197861459341288060143214729132806331192340657481408896996804453682523636364104445153347428218220985871120884600575763613294132661319504601165012548100234129642222408345074418144923993521332414752818789717226458337780207302323158882705397760167845636932685209028026076070978803080407977469596521366778274139055609730090438335417615577096636511153578137067111077276305600382752438189337011915870134453246747310046710811726955507769578988770363996685485021531143770521299531417802499841716731086654009953144632472434648556149017140916963592884754983515608092750907460347669473702419176254205211959482466079207960030265238271286490200917646701315085837474851803176305295013010491523004992810819528818760882183149106270307148891255577181086163649567532106248319033392625556048602652372980548690848401872775122125205413402251767610093376081927633904267149536941797621951490172948297374618663026494222453582352958377755305465744076148451557351845513319552094112304699806237758995246711772558356158093483483208843559696401864918386901403827967906019522667490043399568806346914142724662394351173078119207869352503228504012487428413436956232285675437040710179475725390985837724410673474516294581599434717867459866671647601857466016524831102431672691742799636758920794884133278978483481168158208674809801918023818659696887706400921683443051304174751835432631462740405290110113541484124815582644253433350073620251068050799799150666753329620339122087858410143831015450217723354655404434733888747796012188828281356372297482775138507287074463917421087645099158988241398925169027816796570650493967311403406024516268689357669212512154774161804154324265399111421468629909435087045254301581338223346709072954801118227058568523335583623023837827458295969925955486941224759021268404739803555069435008224701051221464210284119459752098933029555832345423737467333512741103894532301301591557961203262767382077001429654790527427744918964429215183347320245249923904018525301174601223574374083590295051702041349145748055070768294632674403336836289495841176050448672469319548481578042584221460650933738638834520789248317809167658867067365925870411464729424365068099484431944194614668275767435486760754262567397297453366833136447857070334403710042208418616315457958761301403789355557401601143228912762105965702763833889419093426204057517303732689632398267621720519548595880423780781856483384875830863133673071774769681314531006739230298403482807117736367369047793432764780781671706004592991749861680171164257258104919329334482615225742509408802216547776828539187990266035993205695148715624163243750470016457048677327148727551865998099776260195963582505602915476343750287105175507494776222413938982895761429586009588667401240789463831649363439687633095391955764095754159597276308482796715901717982541878252489659397982016943878560484949134477004432546708303508076878598802399844519368488998198136361502537588126624417699712313573751324919079450016973266907773053336135327461269894245216271410691743521436119780146296617165457790435782814867922458440731437528706304806874477911510407756672064305155454678858226785184107373602367695534991866045378589012898122110674437702089060474060213186383934968238367303189668133394858368513533473411137517256396916261330212939257551373393003781066117642167479242218416316356790160039138557331545675965729076162745881976054849571619428470417480619581876587944843122935012378296738855327547740280026575699022222290234396077277830322054853361748720207347990760982113682743886430778802414138756368430144974814726814343636912116838051815701720017393881807215763365828823963596365034770796562834400997873597624197312254505721710891762842048900519116457810506210193776836375388898891166444584173000589828805244407126885554138376767929072755706223833381969545912812230778046753945894871657238323020946468625064005246530017797683714738597232398288157805706183827473719052964620007686266488652224009311407733216732582992461577009326439838728192843032005283278719900698096169955114455554085575140246008081305795117356488533394158363504387761469254122733194161970671944930342585396267127532405315136682361969271589932096718444547800874327867162452220308720017476427487864228026713123838583297041461248983807070484706988358424435639644462071235738606226468072227633746670204984768481643639884470081324170049436179808295725857990212957183565999739582120412147116508731696535389085873033840640278027281049382377664809360257541765702291546690472987815067705942878336445466646624389996331449630658002716355806044862559393675699416439155157669782007405288493715392970924336626367937828284994984637360970377497215691133071366375583989698935625729885178554606753072839726598265575253760872719346520192205493758524546306277075248850942007076741639391027814688406503848587218820525393421967397888152373197457013327947596524155977042653971461610056842714325484011348695832513207494851873383738229337394808718147265428103006431352965391043295500591561994006166464267378372214512114273836125730689543282111468466246120732363063907772704309303120550185093398379453759494052779251292400247899757149534024083938876678671279886436136370396271470229461810841840383524877428140757577101051478981205031512196840510346662062400334385272310375694438461906835380436082396809280545017720368092525511566653841410079221645105302888045580357461116776961562564375598866289131813650022858215252583292572214850426457964286370899973353888742600361051927344698614511840255544734123886715076671314267013369184727207675392664718872777149080104361459110205660056355561614516498043880606580665342208355957012886612793404544228554154524966794926589997665332895535660162475322806230159316582537615401086072195747013242779640194371372782604062467248004997671537331280460488301348676301101956341134267711614508112832393594836742457666178112119916752965351197479712927366081498072404981864808807963728283940276122082958504777142643731762196749924618450709716100204578306508091867747315539178265203907558158763488659270202087993835992370795244505240449748954367914155486163753956663982974082453831870407791090193827588890874475276224762068434382413768722651123868392925520420156570106956553989356171257766456153430438985206345537833263007944248540871430592108349620445856378174507911500154006385170030014838715338301196773276248135072220823860757848457355562599125368042496883391043727059348054463960365554613615839177594268857814183136034750593880301293958807073868324826665917922037334992232160718271112968630296976630890143367661048822174072832441704244350671708520279969187606171897996126919018678721497537677368336605543172279836345542668158842007161821093261530779495987411555197112302575065557600729838806767823376969141659028549566763275767344146948718694212764116388144803019011857153476224238881601123479283071664771692416022038136410794700610594434745627752116112980320856058995726047379322187967640096141437262137463986060880052726874414758960538270547322954285382258109856212520058493923103378287296016328106413213428593442001347576401668332859838008211323994134843455510500139556648421728380820786419684346286782649592988062531485122070963727712544635529715380519242214923235307607816021768490660298790168812658780681448566873020093916617406626975724221801484099356376875750823896039990529737569733550361236266578292063611748288865567768570476366735395561598552128394666694610134438579697866635509537401860839795482681649985105852386075689776273714581499830648971462861782097772202733318712430095701617604291904148614171689065690981474953310248429609440801857195405596836864525854590928979430824012538384943030087263328416787336313490971061026143070397351837506553681428351660709239484229467030654062025808684518771835137797847349650002156184311430579501841332537742245243495975703045979279967921257668360463346955376072137194528322424235415771556160373232628606275623596297898615878540137059517922813113026968651759858832603615872449620440796528961970142652858185802670750092056578679680491553969190571287733793095162433176427020286825662364661362838330973716329898483075127641445605538577144347431286222867328580293429343387199052647504475310418553448354968826588535409165666756429295669769591942511344650297234781163322690720756396745282162178132371039563398735125812469524812566776679036440509901892575747793196741709872896639982006793862742813342394321313776652926615901941463065365889117742488409258449415410743448130779518024900383579339070792575337920989782209042969561555327535120457174493874702638086418723908555750274586677720009209123824657722701306239401947406401838879966778423969528507320224678765892603391218366721821537372779493275343962497305529456272746415455325416392678106632832096089077473034082734053226128811290830669635839533811710787911855142921238410907432619291174984510096430465502679492863212221139221421747255442469376026675851990760176197470943834489309768315582704805852388059371230635060620380073170555073578658155441945178987675281596607348403822178136556372052076078264661870756442312742615767799097048329721411529657072495192329584827891246748021986856973695475562975395415289509599717541405278862215403998201406008690167225103731962710145629849088956188089738129790985220873481299294514827681561580725140695167443863320235974916711736280611307950769963555830574125938483163593158093828880376639756851582593486305971854596139437668235373239115849737655093557734560383679637696318039106572918098575487594872166105961542636020223018157430233952316300883592695117198386964325935863139467834589787927392269397500157351064133095517181528920240880974435251060715617720603889603721680777040648554023419216566281311048493871688745496115719500503538932510868173256813752762819701422302278118648917949328951414564820543885849127398991648021458307135854911909766406848499044133337538191478507315632773558229377427762135829589928328370047705213788753705528195681660551270848970513506189866121479606346026751255626455643403977672944822292597214485698543959580598029546091296380893004227874891674356557014962147427645045837073035521202890459176586657001631870706061663845138733881709731343173860102487839797265707043910619137907664001421789995755243113491688073711180559435092881274830326364840144064003982835442661958833145910850133191614707515666477942469485956513440787632123412624754434463658178127757730297125993680582436954803999665037174933468250237455846506482138030783436604535285787208747008109529487104405361617376556148659127689543624186957549898411465954273589876357404687699783696168693379683313901314260257709802060068132994366394913595746929536251540265930667397941315834758044082864322029095629594925871192929503130362426571410620109007244642288785807262405634577710536933613100721856082621410602576845672222385707825219459080737355064634256814896159281363855829710066479481098665820690422499619839342032445037276965090340050052524723860758093549872136150299107330208529785734035250281012193059015352547265711137264861522683284946539058801224045179608909665117784102836572753307367194689415526751080028936777724080271148422101553285134213565523987491734401282762066462121201347017713027653259071666865088931027163715330597158565760715859485851923553408189434163004488319728131867986897705155108677418145755485778210999847724250828134817078768859659067384533951545728635937366145285847741903273269439389192787182906649763251936744839455138771726659020090562635810908696436773979842307465328925459878461125359214687345048509578247606926273094220184329243552866535074907845926246517155696081985653631725801460411311036336705387802206788556545723694721670084960409960545100048164675509988131863691451225848906134326827233347941692047245892685885017195397755788637187577767687432471858797738802284430559495718124374819237640948979296682823740455073281811405258008956813892071367324958241220105088907441463944270299728138038630222562377185417828280451957822042748297177713312930143084107525822334539155426176777324299671607036404229169647194027793848711748528407463074911486416759752707935255898868979808247178466917430012277269311626347528285800655539701070470113616866390925120622507187673458818435004503253305798803013004036794918549589096703231014836592448922071381016075644937576228149680080215331529906768819600411097274970633152687186221473629889620073299920130562701467505194859467716893106620041988748553231643210083754843713958274351465766372672384712961709489041771189459458077286848460584708206727584323807496218470791390975957415508793531426691825084897853524507275442284082589589932618633450258940740983995330048236993036425654061995452907437038810038374587903060684498994464655528056429584626660784451966893851477249918848604248604171225486984694928397395664556643082175703736477060506037396887915360166077806057755584389964822861697416768336497154378800880790516776596315765036466790102156426941763024799397306035906126311670413301300212903216838401320450985101274746408259735570767205113824724262276942027373517956897602138459398262924429264715625264016743466509418894176584868261731623470702903284294418294631634597738328590990332641829919079365971945350786206555636486686493780539913835320974901280284241147253139165506302122750632171701145209546503987114862039516280778976827270412844886469164976519703689565627416111827117341190810006137115498515064605792626015255843458967641635465695618242889825599806444848558342538235709450346757367110363319361033756058728609085585653162260913656635541680551533752846058177426279595208757967973081128171059559790201184961428657721132508707457964602617183176086012903061859654640333299178447493510040083915574924649697484233367534138414544628184429217833023804260094151822316855272797354587001164880672959291163580081865525009066579354939096087927407264530083787282045468072950026088191414552677046994867499423003105898092432609376194666949822764475222934046751338689537973837386084308250157241330833756441227883244933639952203547868683077099690931030299110149568609789025374778645465346331578449524585944181292811936197989173469167232323061095164658227283109591854882426863058868803355790265830936950555664985261891226650513362395343886980345813872192587709184497016090539074852061682810763788992221898598971361714264690308310413531996608241773397057534081940557947254653097835111724133956466766622735024076306114883412360966736273348725913121211541475632227903900662106627380520674780136424941616952596829813199629434588900110959765647659814988626063795801363705944554427554874187244883714755643981747085075829964141065649412119203139420171338078304454890409041852145384992171415564061043317888510329094664041985178539452365591703911888372134269072912100036414174421789299245981139964132061127113641280514011867586259364540281151296229319966887716746675176102673937263206230748060338374801412344296121411364072567823118086117000755732114129210047826742529693772226914079126265882256781460893449515730794270234757276181951670208562559257514092656678678906391159083879920031213562926428569024346659061216618925218886285587735389074696661594563460632181938445945435164842880476737738001787614910042328078530042248923567227897661815025970960306147852177798184766258943712856325655321775900603052541994199527935632862418714921046202848918187252931555652424850162976670473795810712734851520169395952060732577717215481300878594096248766387608521355483292096256092550943619723451240264119344497893263451688637907043611023942067160372893816722756940027715994148314367076236087949619402146622438464473379810806834721355707988129620349805556085763570726294495829305536448114731363763192183405821443405415737112300365798633073496578328042849483894177905987215286096923420079383012197565548789505323387394055405920177575841005021127634286229271930696262431912791293754296310665379844284142566840374464441333194512569899653337638672002393072384435067112474800801580848574322443909486133837135321290543778899355802902065014028728135161037378012711726748702123031074016400569385860167043178097531503113727755025793235732429217647272791203934741325284087974468556100230126884129841572495026063314135529043121959612455997857601163951669833308791643814279205480014034298464632125929244293082784465782998664009799781706473115650795377579160906556279872748395822694623097050246353944450220108381824414141543465810768082125259077314158240895110134215803574328994753006019548311575265737005725299776529452003206569061115395032365304878412020131923013328995043253141546055747533945394785801650048319841584535904446078159519043431595721982472088380232229210006335175332968156808483122056212719306364158554243913690490984365747048103253346201499990675698786286888632356201373415688165947378346970396415527997992235252966348194019893053407174054015085235515604510339179677554284810451924147767265837154585300978470281355819039730662030620368448769050168708027940540896021041959195991329465273455051413247360307589307673168128593721751670197997896017697139495925036695277106751336993443371304362440222234606727467323176417927592347356177720292862158323475774608210971457082411344489140818908584897465320982089282478030435144257009315868442872448606971589925992928521691473759290952049185569444077470480286193236119027112001525282779526873437755531352636419600579725377164549289915708433123972447366435851764671065649265966110551892909423797005453085245585356200630936374147365248001136329575149880298960398219951772265292363853641741054291714966579869351891170517200813807931676369084972643369245259022529903980399770823819132652226027265212451889939083691020441389142608487935981433981738627625275713124807073306854211762316412666412764350551861284179643949108165933558694095596542247069149732489534655149540661582412165971864686766440711716119358300250617597055249223626135786469711238371917733897173082316314624086304166760934720798185539710097984240135736700992997720108943265530013914060038753388558652390505254125126227386425176193956417853548622951921325808144895476513198169885130173391040784594805194240282488222293622045619069145116934732392150838482251726499132312988157641253100325768767761789456568613110263269414336734182803420641096824651653244376821681186526821418334075217098066931862303056607801493065623050142062059644292182393941871886502717349412730712799340901593366281695195593431323252181871283578473415685344469782097909607813066525231064488576877480146147293803060672674461956999987791457355740179879859112157115357553416151572737373237347235913418875401623214706848575928612145387144075558026852109129652067301923948068428593659443855363172483264971757561796347221694040770707412607562991544824221210696740564144770234752314120783266917963041855013390731157642642470799737624973251447185029740994502595984864247476406046261924350551014840395303471039074123114490056972326581229529896314901868118109396321906307487763839810715232862146236779799405492571296758478129349267763389136294695318670027249951430308449194224806181045662729407031401083269041104777436578702245291205673441073264261049380153149800623396660864754008285980811722374752815007734422479012641358544098964462556042791093968739245296572158412322519827636453517265701002228741682352641519196572260151205223013782726807699301384369917717244537021679950827287268200796835578830862159119158855247736405152088552541085721686977282923865492127297529261905738389477290536173105234195267518016013958666545593906077455382270533620942113527614595744300419267527990750679126717641402086214302085209326483734747494418718585944078650650108190703633065133041655788114282030511344308936503604624466821943595983516761564654253930159128962265508923766492865143186564894322457604123269524638193024624224021826547628311197052907720499987576039385709559814580340961414619887445434894482754225404128670774900502094010716555273823376159000895003735097811879146209867290116897308746598844193276833947597827077917644505233513504983283667433666952449369710704497131227315378024824995320703565232939868110799800744239294973413215854181079428215462196507092078351994971684680620519308189966130892236501026814237808543133785804396968164172743234834735554184349871302719339362504866599470388136887159156841206556685976527255737430407139382511866121750600297600814605145638747300285011045879717167346689384216961663263815937865653925221354171228504050821715650469882467349020169227538138602801864844942863689109563472753521989372231548094156059378443091733504943396608055343315161939391045635593235790268931379397630829675644321592249615501948833087740121252578640703145957005230728871352449199117878806636002798986643785253595569633973518865561367594239165597248719667187746359644415204616615888618766222394195177407117936339046794364952757104268483566449361308650576699437253143433286773689080659466127246631856254622082467273359738149109571174879876959980594615421347524540990657445715736666111035339887549159118896117628729605998039406749042419834142035570904817891803717109019908552855150418569332300272264457252935055057176654661442241425055523479161868950309334496269571732681159473406599468218392111908273165879733665940104675030472761773418108265430006891488483718666316027278039654118223824421781740814305584516330358834520849362952626480996594910662354125686762147487126126647087457884001427391014536817894956528453687100586603936634922686431340937824594036861455224249339495004198390393171883734892038733935246482599284251856474919258364035875057659353713060072308490196489448106961427591733475086941787447617403164279483328789324009724170735776281668914372179897547939093581250676916540609588467684442349798848368241741375543540828594200571959970526514886329167990459118023285718001449983405276593127046133643795324098863057811285632548247534638817076924191722253966220610194044130582384202505368329429247218892379700186606886670875597207072500759526560432385798339891587331607969395180932173497970211632710228156072790989964275614301595188192574727913241968734608845419289815789164799067232800224931419344875048382384965894969542170618442620632799722058479923725359038442258142136285463790188061664888434035638764231877851653678019779475681310888214340800382659521387710186015242563877210248059276820669478256274568791441420403559391561445485152494311898234906341957348639397809996820639760583113702404099804862389524114784699943485613606210769609033204206019317053078682064256523884742359688157027993194775434200570613747707954943702123841025199466367032801462575717299328186287166097618101896227384325530369648602995766281093169756496556686206318321392010202972532566612847337952712190117206905337444453572278544549391072094482211198998514583116690941871410617890301638685342181836935992586572012130372684675976718946069360673579466151195387573344417054846047951770297848499479764625957942005347463015631730469696649228663353529749311951171579447510440692789959843015377283222611665281108471898584345151996187632217050570645616896708001112234547737334031876958887575431447193026178267525409284286477608980925669505821310431467007654806241296187238589052170194902780737342266715106139679205480357154978230435876454409356898664164882253441661317910018711379622998522246618160177414051293404861502863051007438756623775315844585038603656073279126719436389319857651467141547383659566879261500053203960971452322226328050564327997642806065064899417095461372776128692651842394754148209519251937810576365880274895811675643848461545919365035494490938846458157771525978637176280972194542997147996376656667535232595962788291662069394286568441355748828573067796965696222505513370359878016495534899239523943701050938264121437063259795980136373337748173622127764885598489684698682954774513263068120158918990748627544812631662986215894386733582021762163283116138887171395376541516764689638558975202882572112736121158779011109472994433262811895511606386725891820997036474999894731572787821989008173952637207638457669893350012519398648023831513508678831099099929734976854468466613058186452454187192253510638733862804157725816942791786713465002571371367935444809053872152997885075331748662664226479172090438472517164772970040700860502031546025364145879560770389266509366169900254281631068223383095391692442092867677325624350141816585188201302786258780400375440688245087251372234535389815239270034957981304090965392504740077458326470085662893979596073895153390255530520299322385619721642890154939213746430019419414623503753866392941471491996811904182161548028956927186558482235464015534939665352065280188440148950959034709903564649550775118124871206703022578046583516136644471649783100929631313223050916054625961779244079487458347060972151654645903133387998836648873043814613854694335911519701003726647124172972341272802298468265036977498798969037307819702942637626710662414680985425444895457289126089546633696197468600367770241137037610734737376816397058633803483255955528119279267252814842735587092656882278778794751765557724215958279301240083537481955781767582451229047512463989614965436684702035601896923724913763613702810876086391999735624985465086562188373323777636828530537036759627422504370369960560557738971744659372959780680122077980560473661218521174034828457974839242276399528790736350667342268580121939019738503495840119636909945727334322139414534371238952165130200324383628198808928044693175305311997088592417110976406001276311787675421898132120488716985796106845625464457262196973502299248080404791376831300423332399930566265882374089969639843708325414569223407977076445235541876124077657718854166468489682125455944261882681985824109515526367842037490826005138134544173977098529698362533427845085102533582055027938452002456975322608418297491872628687820816079427450769397388810253072062523006128381514021030408689763987142487550463275477842844676458390684886238830023485999398577728182183903251824630468922064934860121152138636071964878359792648350457478050926205809227686561489194262148561211660493374324517550130789558265902645356702891537407113135566961412181451277662559252850374970061496336036390664918473708427952291279931806842219867129110687624904374644305339462507929803052491857959851801052257890298358248093054234069622406136329131889909873570888395273155706215164648189846223476582944916214745058957667322974079516288839031934706595579254829403893809257405249820728160395430994057652707545161428487349982827924005726596994123697135771573438716756173136160539610146422730363530346291035222427064637958588053665665964468976444220471720958829759880802971904345320755523791359425443042913771045975145026456753541941609743161833925039569551870341535210122340808043015220271004460696368984047487639540525370767142002841071924824975161570811285758331324273491396932893989975165937865348166188845346091669532106142776166188453467067710727160943230617530393829133650584384882027367374915491054730845788204209032587505394340442020374096383077470429959640115692753874632019640958901470755930808853382536900081503757197863331382814930136891385876325587874135689898163186008276770935279084061071373598677515805524563421823076586741272695338386082651749867547689816740117120467966271196545291033910081552731969268011389986644737040461434854326006971729620027078000163857032126859203700755116827262955567096088874416266929396946945624264646548287727426831171005437059735922921658314455428784105673949401766259665819260452366862606732199609804038202941075171541620653548606606734622993531596114875814169777343257529815720215655773699576101883132512206514193378884199544295833596244511138811239801120250323514326929966263322837192705892667493398816511497603951843078706603973849575704600486617441894022843230508672780034636144729587895176856704582025609705006281536358752872558236440431734850063807161183081109824725902895365867125168313143430118852782919112507854046570959702315536035292612223104554230190862843438223860691450442732330476664591849235438374975013832903481345050028076636489278958284362363725947212474886179139326075829329173023609548339157009909599701283857950193171349709540157200439942254506360924991627540571811274201959298365834980278419873278930628181834201521097945864372045445834416887900482977545818650015955253820525168360174641239210571251754058104121661137035712725539308796254387244743868578020388516769135293661501866683571097327888313766492792605739096682578402228341016243036189649737983109336169873218237687554670307117476076754181758535427194251790498571228108791881629731381695145002266763040732616759640273025078736087150667601721789002635077950947519891609770338630308633487723688818425457032083492353602814098410807256111812239704618412693425312452943295863184203447151779872762923546901340587530043698343005805608953228692852369048706677036006144636609451757258516286307616335629438793499021106990223501639869746280578762506709643579884813378145027943683652276836311234038809219533730062173370776343858026299210235209812513293693891877289408240422193054533050287327608897946803498592419300146867638098506275832975717585925526258717198966677161065240682586988031284927189363271306430364322875303014978575375191226652052082401378330725078777471511705664367573701536388818262908377677073736863554955835073099655545624727879453536163642488442288436463222325131967875160445486253017434426894584502458547266200859450102359412270089018089063408636233435241203008218920699971636480383317537738473780378083626450815784353121575968157600933653148957188881171866856110910026076388071519084302347721418687258685427535119876609696811597689873413129832188665183896426118958942083112788539123712363702828611991304145992031752437052578839577168922942590401965620389368226284195006093140109896487520444149197784866659707388002713357347258197884607692038359748576148674772746998792275545132131703753951698912285462726630092562921050755924254962286589181371578562475860030608833669608618892933427407576087832364683962893916391923457403924044601423791303435533171004154617466353872161024112340166878236146752057944688054769249356094171478666172050206790366205916783376123810187362852647898422437995349725402480810321921855797248096526050198257073878532722423298869814771817251520330061385740268946684365595956113084550032696724892995922062206976032468884178112388928252670369183273888833989637491852837134414340770307981981384527731730031229059197674200400014087771604355920655362126062031456900387030766328368361238147377647896241596432634985715611621833570605297652171159685743918409789396056696788005646140919032139303664970583440619917309574688694203605003887893569310005096630048166162291186346864378427059281245883047089499065077333840526638061121251989735274620979798852481448949963004681121272500576447461349122020611602595845410096736192451838771991401529539597721392496877710877219725704789980682070380028647533872141137442129306004726285174535376077153744121512808309636026348649617867513586584842814098673278217752356416318871536811991028048368649194827083547372940278511979110500084970079383946809931165260341229722108279928424889790310104319868838343870686685907520293806651844550565319599794541599936653237653396698611498558783845078735083044016989075146426014552179639607981709686230499013144202515521753262571839427689671182274825332231589008076686674263838432126202808732157476009467885746227932317376699988005228108501875633294811183349448295892767109774167584400605245555514616584644882361039881304072780727640415735165192872529061984956806879499168497687328656746846273278175029176406276953143841341706768689536177168081701619070564692349789540388233722715385887654165036516740193235680048498607724600596082499358819378777288542367160076691450939136256242473119996938527054744462393073175367884486013844385144495018528143956055026019305600004966857390130611408801349901556760794063092105879013079096388227305817279263778050546232759464495634316130982367970189008578946665300807109317949491138578580205773668120229095894013027662150262438098324956868365061834268762579326662914593508153091919829127080382867842649162287921767971977104550551647515808420358084698703207655809905809207502442778132991055675451082915424812114700924834182019749774117954723954266816609859264409844705561734857297242638713507822319499705747876916313890542255424492142769642920156621375244143071633452795556497634621814780046976630137059931162155475752413054058445817677123702914845939435857484181707556741692726815254992233690877152482556941709546056887429359153858697817798756429075055841940903118033172383020820928215006442517779241835474817555504067285565189604264906635281383996230140421797152748394352485463358168375989111722689846639559010089622235056339546366361858553683579929512131373043236238440069263154871528032247267608474459693868175077458836359288699716541191592793479626846404745000221426921275295216018292881807871756404896449252415044097734905636134456009529291305476674726018812428355282921356301903487370369823394073264466514404875847045504690596063459125313599863569934576761427477959187653509053545636930148573341571776447033745835643393328452886139412499915577077886972741239891802274424640228273484540534551122487111170832912816370536466362422738948956292679267983185606001461709827748227939939533406345938081040363723551356183866369002449840194452296052086632582779218728694753023694623661934598598576580010235863702651762492083064484319837016889737656643137986823740334898816189480983589081155417414205164828072303718141888333289977400856947426423085754383497587885474145504237153372024364495805388296060192593824292131833430711343981838679750431790981749298480074785365081830491853897418290003447203180629699909448881899411576186723701352828377566931133016945096383870546809885577501517545102515014130108479287038980092056133982706340138233577720445463709449125126107442794437906449155595449660323152606941448015797202455546803077923261887576828266927715126825846612107225657595803425167572630518097378476176602395152617087013589304136149523724883710433274673861347701963089078390544859055623584505359685177024129719898178068517230249481305365818245223728286415500069771564872650227371184796536443598009150421343842698570939626215745471139769484169377202534665136720492232979403534715198713529323334440941554255598743595558713650076904622228269140464954972072773803551395949433763642208809610014722244070764159867789647084050154204458822441698758099159449271136478919762920107403068872911956899116020064376612865895695799899476008067745744310006295933489658788123435247715470852329343088499850740789413448182426379499665595613970142308164084905316251274966667880931799876465476163129691527846781236201368245919859505314193871300634970632588892970814051952657459660713731023267711142701491315315322063753804926934535152766768246816109822416135553131818077430623605558147265266604160870303221528085678905166235928477221134548562488593591375324459717595855462455371395606279627497409043097372946569189911133332468580174305491522684463376563121926086964934489966621833739375108288545069454345943254148989413671840219192340138675114220146949390645209819782973926598010681923638746905027178529851946410902405127757836488649153208939774252223863038300050328605514577302993119874953395558951722659997273554917368090557117006509852062620898443289585746340619859291629226698409089991725459481657212292391827581427832167859319187047079179917524426398223372551372639420085296914623203126431724616973361945009307428276041169922833775994574030211292484791630071558012277966913311310370402785368931721895924889270126716984028824739781660152213246776899101696241950344725190341137883145130612682417323551533652194943543593330781734016283806131522673579232053313333906835436876293623152867835498986140456520195029031382066444490244586768074726313797382791116874664149705533894246269156861237157053260286511246602859468977405409979815565736890085097044760029881425046272175797042230036967660264689431016783477347853267542390866858804925068254607033519442730435123266772739643634864786858006176015766707623529533752721100809394363016975371305966584111709574662748520993193367060649179705898504054925244883225836183648959161556139697744271153994479404652848157418508318036080599138140248361207421580045378038649392394672366691884046692497663986691710608480121780459250908174347978357398372078290097767229481943770650458491378168051787710382394168521929174589810977811984264605830447312084221407963274759260146541476313893410253195260736308103558450086463336455923909896319422488351302998356989415195626628586698795683206586447976890128023385150473116199725625703192607961500366495339278630775683532279184362235469437244846390974882872535676767570960501782182648815137424158064748010855755118202299537881828988364870811720091087566175117547590946997104811115332858601169463557985837964778118627673394422273687555007675212788469168483957942562877021988837374770261394443756887577694430460937581691643015087162582623391961422125588134347492838277608056829991254990122478657234497647120174085298977196386447180882677368576991022916312016501100955581922587590430544887692393661836666931773311273081992129028347537857317007129406092331819764559016595138405266231154775162344281683922796118487607393551474627720578123206721914877205749797039804141818505553153076535203248401984783053357851126869804872418631951512282676242914053313522224849722950154869916962127044065095817438097673212238392279733233563681125234196667412571963537927234867473159789127419898996152253722662666775528271463456966648493791624506453547630771526841237228102507600743485495169448007597746224394717497410771714227661754193322163233017158226479388171821456379874498486886387266533982050736909382396074177167023375910157423997601580118205680618531668523528808243753043185695673317880662564748978036044018426545831631134437192757270075641093697065922637907697365792678315427467428719904662762944662737531838285492052678324667303279164415449841115857651533533971529386560753584028616686421144546585729868590184059366245318250419589520569714868476183757987719372478357497540746207811919567812130950147448421872201376957606957718653917107219332809674159742807655271400022263437130813722721351782868154698387630314214410001400796840839143608443301481465461052444712638153552165105420941964942386388966402015736334429478835310301875743223412063966158042375657733898574664958811745255686572084031675753022655940894900174314637246393392842937739303295472552206696731900625735238003582298927183681934962104097094169437374661529963054360748141811922902510008722451616826400489752293850200249303222517683273648077707934894031086143527904891190955274429200740496417916178617920944995847852796588103277606511359594736361009301237259479962739706156544322751556641786529180888469842300190319470281479847738410628026594039267729589377818949240863647024236649191221891886038535851934731175738816679080080397573532007668410988028003064070832445335066070946136739000903195735190706162104979875305353625153301455121942446913973983557187641231845794672662633098923295237793459429137831246122153039347683448376157249635849077085285512373879086974772830254425835377392226589611259988346662933643011002704732766265866923135603423220382000620898183221600127422359457440216508202954897905972808814798626588653830775546498562718996514436834130151832060053972763219312084450681777564636776754580830387614654890429100209857512511777211508279019912298398660180956471999463623543896505578855009606494349026297072400269058034255282616162859477121294918591953346212040727259280792865562069807118562681642141070569130329483220657723718404189779579642833410109729308208571232711325130962465380841366101120437118108388897781381309536173307399917655837826788071034559097524461081237244577059087560047137869450542843535032652036379220100582897265682596944023512963227668780685871719140434943784650428511134502319866760242697636234010663260445605449981966068287337043577168866411916829342175949176801090970849817980578586244099922765969815895501817389872276256876132672710262556297569780490387496789690592280861037889085560847778589483673944576286107523445528186680617974029271324563112754401088719834178185170229346325049420566365944489092333901181929889490455499608830948313788349769505130093210184565016103242760924594630497246485454260241757861330430802604004091225287862109387573367710180774704188532261058715598055096909919930166118637754067137521005080889316313007694503821158146276300674261851927392685920627696805716589616434094525072359447462334945394015331453269002923499996388892726146428734929224027174161547660221891222905369282847649702939231028714513060819456791031683062236391377301135508906526001561085839019834997782649171891725835592984765570036117377892342336005550819095788179513480251985990789965050272418790642002352830372817632873368370603545475407695399743009864020453332221004546401804036772656482890838380758696766894547100887744925500648467536716381913123195395156310629794800929590422333269911915198964984183630866576610529518787902272292827421676079290343704676460637325929910660097241058088419507386368397620676660250345194145907148975346783258158367855826317111801588895954519555624488575771044182371844521407474257499284135105252148678187936572951567266802678525417319634613063729045813483684261079110163895785480543595744188154102974848297388511559467377606447695896385043034740900342121972878079153077994623447135783492763721119124274617915860959293748195615198577106323646058533452684255269610956596312191617954625097134169527294428619621980572761150375770637087493484073742888960409159534295657836803297364091559904733481128568315823529898815631902245497449221283112076699085225163181127622470554774541094620399284329315120693449912466417599640587637402972928657394152810938087222476509896977310533155595839376238115069969303771654189580525086864752192813561780642968379385248664175968986810453366781027720334441928400497578507117916670932585649528214275638235577747127386311250994204913345809387648319176973170457800182884072501473462654905382482682090307505654962342272195325936250062046940804349762122942883552816727984995870339499391675432422596296050065113496294752184129566782099570921623647720172512979696385951167385649219308589379791478264619698635028166792342671208768937765692497870178616872755914415862798332472283439731118794827908513573127640261176604588937846858293968711271998717624953176843551041202477639459416205749793245276321294569000704107650562288556070932331410678765946634842960603488642639826458326149647335555053349302971699153572628844479814346170154737225506336660256741961370219811732921364634931200931422523270819039844427415056262216943812575810905798531475186644564453467006388168873436703207745579701874915850278605333032609191428192513059856973217090084438146543360920948556813267730416911584513548410812226324068015182207089743574627788473763366382028476994569715983430077228811872915225662220531524548682407739603369144411566521943438114548623237965009765684670998984316835252798038898709970688608998961832931482446580733863240811898750451950516183203032488753483949412468855216445196945802203061101678804846971008322108585145204416807685859316106393510910134902971956235748475127632032080940176725744790238400068298113737361760334978095616213849855592564228071565106754275041436018397777694010889870512337553389888495711922424265534808886219181631860966802688866487969452211604635993982885658232201266367492676971440561737216249002608981898485982774270779244293817452452404629179887895782305695576382632932112768499429912025896046182587937135517054477219915700915013603347641054355114720509890228267520307810044046749727937873549225313863742439458500970270155153374365651920092757037196149315071171500811625681641445032321374961549770522798983160176712892108381455604662226317543128802978148047904181581960818103425240754308431012718416477988471331402999220159663927712607992965243574599378759195366306924401670975968150069059844048174150991154878063086524616417048953947771666230051209355229648270687993585484493133095018710300834318802793833349383490622031554808783009228252567593689127828087973366452467552397514124491340497419906905504183309501876465797958039280589185668583373943567096538845224815777629298980418871500627057121654252643399376087523086200518965330641034526341631176761745419867669936076484369592004227186623652236421717177407106291183336135422663586083722621030290220122915873415865318614427856884717351167635459266139214273328189243166437094391542182126529902808359406703115542009805019438980201541549770102686130699662886439081252652001864689564533742165710084058195841835713418845450261316303647248821805250638662998472666704582388479786822087239572009291635276617575350977050980919771219798436533172697942365207647461326899296530637731010975409211668443688386807187707008630086267489036292574498195388252092589759955573671800587307362668981219288033444320251917161936237760104305897136956942928448232407588838401453302036003552100911669654817843498117043605691156690368529709285951059397244113184485053506802839552077193573268973639062246287522101171221754537291951445338634801924798495705952633745196474376771273925872597385687333316286106625853060312306974849709458335760401831325063769675514929877597191776015877241742933266665149452040460245863873619142079194103667137655886144353489778868171719351270373974864117162879634092413418636933692290934714480609157370217308059612463647184637353185493323938483017733997553180604889685554246100238459771078672046137609555915732262342444663232315203883936982901604036360938909170930737091381633763380856852032575590717120354993362765371040786239226755183746237325655833125050920465578872417570095809870853932069527262593042259166131371107034938247149794838039361653837228926851646725794721986034350982226053651647680524857260405139836178648002643664286438749731058823830835206084326684891974324203475384823006161711113375798090790374344986160329664897092633386074061959445249931254086087224272451332858235862256270450052553621353467599738065044150305485135888953819687110773877858894269351880029636318578258849781392963708817829517651277565939573756183623465836423279924891237872526500543764806131209872546373434332096602267280220541458369790725028820159328491628153503100270191263733400929055575669834852278944539264082239282544821732667699982533181792435031840087344503197707295909961656408781303729158274421115663880000389245992621206530439062811965784218384579559249337372114040987615388011472726109298195559143583841647670793113391156526277431531064541346563155037191563508042537237383052249732406928845976680514695098984865116213990447645485871504822069087190697715225603830639161852719135720385094657805520458082001560508919478540818184258049314885242195585169075035679056935845951177784349121884532525428165350605474908756912283639397352538674665702524825894133864247865709180691543855024234229852230637253219351906053157884533059542448701304733841902507307183944755647277551065981505884606946583963186282248196905491937630209398380444214637666165784172959158598973886889399755294117998420028786395572091420608923035469415281303671914314305067288486328539501778192027458646573206799852931010633411169938791744054441681347582114188178884384541662796355481208820735025383410599016030774290489443790991420347995253853260109887752662679774729182088080345512421714700386611081263142481531274242637360456353425891661336432534128753299630263073008911554332019784564273243513750776710176394933360968252822155255877630407051460319072790846109158496604711546685337758202970951299415635761493827246886416935614538552410875160412910204935808519316947871039369148472828926452526308041523640791865857745927652582068066334719645738685689521264345147732200495949837020061810430431168211242808825915382412695911672575575702151720019517461435078784093436994920231516302889054233682436872905548600116481050818225701939720765794935494178866554486459062042396364785150384100584545673038543830625773349142875022743869728706881064967104677932008165428324030855970400710593462155328896640160228118708567243902351083937078176773260465860669610925237934497483327778258515407570754229888994735968491923268035274277785515020437207648093051385852993085441647149186195902862067215373079616228967315232184958319261093379329869592424751378722202874500878892054871732132410308366667124892526892624412581415727866737647422973127496534741871583133406740219753637204597605663111783049704896764126833698154684044971144600791680479740759073461649444409400376802176216040342325761407025129498303493790865441548848715151449548330473405879203009427287136705236473995458109659770138476137359733398836203515985671134434755787325827403742624132474828767855837831863564028588487885566478148781996369952583339581837903092508196337636787585490829545187851055248785854723540689091659562984892009915994571683254630078825682459046911654693695326521030945457927552114359426211670756559632423080357775465125342436838480239540288702945758906846602795054712010905826515980285300501729272476212586166660868776323882736221681826231607643436377731478171649685323400041925192412789455224697599635345412093588800357553265561579814614534539098299756758110568004680612995703986135336835158886258733707381655682621615894370128774367831336673680302352300757482277050545421063340840440054089055213370498892436892794052641149482278910402005260358384063586265285657286825623153592823183728733878012920708264193293350914610152299100948948897968309701835445765955609445796983466283780318067707356004235797139492957907186633739287549128989958072625280913139622629298490162973488406323400017100060152474282725249756912588040623948877148085522146403905805157278712397911018038108327128233198415388363695400659949045113192928760454753984616737401137625830562049622702332201291765048206972559935947216350102520991984048768489640251155928316937618519889381620604270542725776254849560083637423914622132359955656074063604434543436205944069222480386474087570103234684990722932161366162789062116069518652312022005526239849441711124327485790351650802813687694504218879850530015439445841272465392073735099030242130692251380755105589326439989964636319419612501909826130379214143658290643580337765314000246202502843987749416350527769655506604793830300020930969832751943143604429746299037790972199951952696996138313993351997871261452877939432494317978027796937653012785496846620041575145046948688131074684942086870417780985646500200762115483301785516826987265924027877703740702202377267865913710384673059702868777534339475671631972071167225201190094933167903485160776306920719339622139291165071590753745801368254884570534354681208774246637899834564993911054137936606433775814573793223393977929135442430044522285039163412328159854135425709505182821446918752484192161031439994170138855149056810368345821361354632359974883997680552342551491947346812491666053377918146886742395214580606946660616001397464371332791690183662370682716464316614069322513987914494350710363285518784051607597355903918518376283356856112259309572515955112405123822700313013728427774156497143612317358420764656671542334898276586779740839434502163215610843119063127594060004641397919218736500556241669292440962702242442741648056467247610853263462781661414765772950852807986631642924339243306094742470735334713235524561534179668599232751562159098592961138694683772809229334505536681452422994437201184560459735369962369745048497144405379262377182239291697121427902522136221898519759128567412991839850999771456109326212068673460195111124317798460329041594973625933284043275883540272934753452155325580471925526055865068253960632959196441587749545907783040853015311653702370889335343734709847284734392491485542123121595717760074763040760260112279407755629133636808251800375868009976154938975767853488592650864879929878279864569734441052201602103360519085574089587418385136923042193670307306111767954368114182952546026143566899750900137809553927028993943593832256760041782607223892113119408388259405804520713810754216456263480098782048943767461144074069008732664263432901276912145271305140944868858876992386547745329089653853284998432453565659189259458596461163930034891771560834169803732944677096650614343294947297427306994943184906241212757002516336971407510592618589318256937245480613080136851897046140511483948616781150747157933631144802001711599945605714122123992364179683694048678231805052089130741094078952568635330951589562221428563223617919963611953346584415722442412928817381633703193250331896580758939421633760095198675052773516564804352705526814201343074617655372495023682919905838433053597782087285896512315789718154718311592512145403951159188863173804721436672988565007731883428612134303789801515577593477979813774104148605000455684407206941607015865674877181315550654700900679883910010927955959265513282676938090039740210589092598720371979784169877343947707046937154265918738125587390091213007651428052121463478891822075711564704801717106719620890160151497793090831116934770413609477091283369845548675454793577092390273169904650326537549616205772781747768933810657120170713201734125761326287864044714985769460764169243611866519333697869909551565536399666541143880362389070794080845608491466805101493344539259578112575915514668813498608624444446137367846155369420483332858722862072564605942037299436741287911033598517673708699215728805721618348881761376991601639557640976061016349465359162042970571602063409424246704172756699826727577522712663329342530242458070585704051619554114518952248706009363712072012831450946785415780264309178228837648511050384835177033639344525529971778496032747001362525910936722721892579893205415416647383944902534855826130512244940201770070210259072195911038481191897435426512062342159850514506103751639051376993961905609833210195117738896213109712002467590394020476241420106607925177474838305239416860932005167288470941922512212821530782989039781606116534646381507427517419895264353875702774963184676486120757941634589343293676803424113959479688065757336454441213503053017648535776479943820040347471771253520884531584630504571487332841185044971774347123268917265839433796382861530807300921289905433695950354957747128202588988812697172271093924517789486611644809364563038719296136950636060940022315216348364391960825702668295657967583965942660557649761381172518740581874164424412427154194559599305672864717957884014812668289746161349500307229507436633962129412722157000310396568492457642105167417522854291905327742361032900931892980293929998095225652054981776663421132626115043804408214924516172443281012000806886053710096878996080698737504457788556160413754068930095573318019442411644854927012748570344402297679275247767637057833229868773508901092427501036429904852191337862163337037849435141200205707393627564290052843934603140527407809198490926862290215653445706472296146932702483742727825943123164421030461721935683133962769396766802583319904162329818062698236753674257982124900542223078145835163674322866530338090329803369312534725681697372571435860184041230933504561073568659079499063819047941734096370430538573318087156355845518543264259667044382793459494407307791845931035357599343298047417868134454232335729512789472457876302480746788999933132758237976182936820569558894480288103329976235416371044788201600161488747547085497526928118849631903075432640075157148208258114412447387352352932924406870580710991819927138899176288137618967556037264033406251544231695451958508216678472931187507290331781730785836466869535095673478548002435089113025574887902826386804652804786850684482682974070555103183603270610525076369907999690689707700134599976720587641360015844110686700154788952352573757300229391372175816095808071083904473142541448213592301380088346198806168468516886042748206116275295846901734193620591633175899872263053439499787986220248743374332647533771424644973209223387295663889172070380550172640991223932718434260099116665306992430989931458632434509638744652108942214736141157159386186492589604073674469763971076338870706760237150927956977502729650404981766839775198399214005250151590279617522807195191249879449800129512639514193249157595076452756753367929037314613743341260220206949589953178982069397944768535642484494575323410718455107461535738310401546464458122952238607562439454418994784594609923838739325588500068310367989543727999387050352562583417656263683559428715688817691554398684989533181778532431888456139722513279757096046466313655199459979524798951821800068010060251375491699539860495981020808644211343131678661667974591173670742675065086809803185229900983202999193730709298724479859948718883607505819947223413030284726674080932194893461487588028388379375991788339630867813906692659810962875655288237969008282344581924546089601697420105564831699275562923974389141326127831079917894611075226189852103223396971850507150552884993586860596174455700545544925782874758781203825459621774009672222699491338877284407448936322922836507707404609267402596619502111469629287835944205832638206057401334072311173224823003860102295461355892700331114078021993647967829320833570018122322675781838573123695575215069888127129983498496538157647015749137194591243595806214995037752085382730058231656901336506235198546612451275466933933031178954279216355639730690187604679256579740871575545688461699546523152376080996867906285912937817143066065990532203200875349258204584946123291541247656874425499089100003195378442017961290269560821232337960088160861963135230229790593242452284628206466297744562358863013770727381310123270632733207884094642118137076748271542192000754345174818151650220671264674117766148233126290882816072705809400445277669140258472710911051014409682361855811022589431613706695002263962341810992516298462990228932161597906784979463603058858387533751090524845299961414805999086808272240732713637624214243153174244114912304255154326176867381417507801807365964242789663510337532686472992814505303249689611835369659530986117415768775517000475581209521194561581377330922148676371870502387381877489535687302434204211157858481424107501428930534732687757095961119582690737094064529737639236834476366053195730899761054229277598105220780557604473149949740952457271912533731523935226099525157505993040263670062735051090380980398541367593014431770905859721945503051421079942005512703987947848900036414467864977421009085886673275738546814923019237978826869117237975733663625864165768422251593321929219750565384312786790345461688366634834758248564719812127472088211463333853980478710810304238387372135846378855900802814891696574640322805937473480365283600744177874617445108990070641635225761976276858424789330420153223504197458925979526521940471020919526882769735664037100457569995161438912566291225503779309924933769199662147600922740372107437234872673485969637184658226389401355478085092108768441631597612358431272269043631563958991565022603583271887273415405647608849358963348712622219161103658328858971317228947102522178988667550304264708164632700648448298105449700058615994491750028994162396027608869976253469722523090528110433819019329613756284628932306668090839844884491561362389913739273671366492609883558411856239882953302469976238326977528224934815724848639944954737910462281511279282178259510607530353551775901158786767818330309015042850971349120801558845773864960070084580156615127441500082269681590780737803777038436802454443516763293994390394183490516475754753796110666357385335865195505142901962674279505406716647951681562834375268903201430899226398400481808898044092423030335103976357501781192476125565420811514423622821184843175560474433434249333201651641428141873793492160261729694989615585389411909125759026814235535911589874083090227092922944442993683049251980425251915712043589255705824599387447359598540520047929118516353961832791252588084607023355634043414023447971887289721896654522892688010260018188504899854527860420686794174377480728915491186643906977778651372520527564249760176373730136989147375572666696240788306954582136910771228278328040900019384803839938229148244078051841703118511943783859370369526095441964343208539865903544543713551400921700354803402544242469537113242451400386227027310160720043421519510230630690278039614556842509985727975438988929850276072017909522957636674734492032328885403567379751178936655547997385710635527326243975238208284966903470414087206757434384186248666341771154667412242187817076320871259503716026260056669763490972571727971513066882308069901761089430490380914598099031442740584334432076916369023928161217359840719251320305583681653324934372439484827444834362238057374110429830003584943860123607119958114673824500247659719807792588910903301791716077371582115341359746977907612203285025251747264254996176331817184440816342493335263142589302176381435881713379844492096589786534064384013622497284256051826931801948070324856550199141045762588705715441547644243823126971909176827385578560906928056126924119172825221915860363801430972149118038334579573768900804196482037511700909697780163046256074565160644979442503889718674783483035336606903974144595063952562997439536512616747400180583880540149442025670136418329737541397066208521052931887859453238035820108322518125369127802209889116624981567385681488259297899543882734202177760858544305621162977025214199964904460167000154269911436759551760245420946492898646600291863179971922221835847285811114546958687414991732659023793752835166528599436201860743351527297243097816003673731700295091006997472538044559494091106782127629847236831858092158288634993246038764917859874070738586956726880505074141742550737178240186393654608814313835257103662687306212895419936290453988537340873507410511990074770771938417600714833193593446625803903274195129324544348423238642675790079212333517209928897795363689799863731744181830069474705388943534951850076424814592381391493223139052495211360663391611273780128008082223003630730111228966117028521708455062833515842735775958859492720105322310939208844146018146730240966984278158554010566409169699579998653034902950930025548740431025648306387023267575808220455299986360338122979738410809855795791156010630911040834310288622519744810887418125134004677462104467027063212164887705869723097496185204075305128015490421539930090089906119221775316584485372769012038825636329096214399011399040268801848546092336010577572419466933457087905455010696473534597422451312686250989947142073096377836869314677024207153985628321135496238256923899793662248792302595983032000715693417265773446064526283171857192865138956969700013699754448668565854712568090550816555147386787968755194545340951246275521288398811790970838314623865574212423077570801497888096227092989877029895203886071988120861124853456132701450273629752436796889518160348329501868641407102509418309799667361624979822120929238519830988307977231438720472836472345816228163653660663367870464034026237393784649413843025564162403433805763471531976893803026643143726612575776795243255195408235029420252528963130783917163661892211991985363125914638290507587523250778198728557166487302165816200343564102881494078189019706362504446841430916012607254230784008386849538517929458476935017429180146739439223576683488725678478713735144821382566742692109224400151740128823311315280857010314301258386036562812381307472824752375835018252757163548546571865026871446956788295675556744503459603376173977780206894778525395952890268642502445741669737361277703701845842158869236167684187308690340533055015410516358503731695554284033733053202195178710835637987430162358558050918454978869087429413871762564384215910989850133672522384036816312039233521055561790693942211520268615249715006071512984890961512317316308867927672832846697842443068525490613521008460901338537893975669992741253652777943726135760275490940742132066001145166484170172889405076101101263220507483974797690972497016195719946094853135217120775974400951688659432129954209243784926586125848107392497416543743990956158665135404500426775867491228843674523085516453718989304647696899593660770664641792182856008805684502658472160830164214717669821954599759129631637649187642947269875894341435562306701920091427519865334638304939151918546722365864799741833924349807566448911331546811741270651700255592692382712512685993929071499991741699297401868845216266537871906506415375474077116336618876919851786424266280861933977794771283269552836534967016246946776288594387330937517212222009874423760775508155044438527566966081852550565080063903196691457854041387580878690772325768516451740408606207838813635753884701817078189209045951017162787631953496407382571644856971750775496442657002769796534947625565095156378045712735513505993745804687748271561183292673511080482326521979444719065507363862493220500351623385075970390319929997936899057521101610849341287222031797617363523525918209487756386527484049258793185176021988692837788297877917794510743340599896641346882433263623955837686998492808057522054129007338514346797937372924661213299231533658972186433448774105403705291244452778669225816277239059289003546440376549770974742152517058313498668975098834714634298940694844102753673982099916296557542062769897485414107011235084822745006706189885127316112265351483509595001590241187826509252055665929612136385240700822720814510784935631003985705066439026178243664942703850927355753864166442805988527158155381602600108967918695878588410208584133341345141154038857295473500432479121530416719578100722039829945172328331450132719137815088907377832975613040231026437960981005708517812649082776324632812645691800703199486554124148967972820549243942724357329855039197321717342888455701488426598573169420487609919356696192057563856921962783426132541629962917170001348833233902929091084152495480791874582331945393813466555767195865457034627563162637948979758026501587234372182539400154712015940133743613959986754948681724456776962040558738998929043440638884894414753109111422922357406266471485372361413572000911957228213254575022589520575418788045428043144681499932849061839404876636386466351750621983738871016219913322506570217788580659692481549799680822947122389695179118803288945576355383923952556508998019761464906956088415908984773072553675752968488430280631524033727190872070603445336509696126656545780104662088464181826792446133176742376767344433265275200615005253574111548311128087668323066255442612565121657725921762419428183701367576817712046101240437182685110630694393644695531988825373674793040778046060027465653624888138201176537385215967478997614635416034927894241882691886627154595504472970797276108357450193194888189631159931686002894216044612980225048316790186606106651439539756730083944665051265982525386082840916203484136379101751160962831152323471019398327855687228047625590118438960602477954469193652499879370704367060918122485913572142243139073975771965266961093988665758825983685914596920390564615087359333109049795610790413803909058685813429883548060679320717263709423630196885018627579910476937909052227539346784391283417162079771184401687730460605173775850998732005907745887238054553799960083594276266334337815782871420918376301835188747646136597079598596536081840092026814586170010226231346037610894080213392703058316669795334629220150974841340638163997350658510322961129820979120745127651988796934239476832755632136323407925449997580435069189493326686350835121544395238892054077664034115848187191538897821812845560393409436387469416434958315185135515266292067293397391728514925828855979941424687383416537042448533768338216548829645084004301618220774023722045117108543644732088484467868209419531300356678141315360037417858172643705669374304559770583234552398925374422254419807487049323269531148409261804979579788337838002087780088938655698841762340131291165155235601795552565123064396197821510077503835263389877090890277894978430657352712177785107107602525634350477546825275790525847064392179192772671644535567564285961247038761663688172435362272218708269372807183664835918775433887499690183310628133772105244862659067338740768192886802840106334996074356165812792045165074651187137661585256341151732928687441359774412905798146886786876651108461595801047501435801789120700083042612180736482550285789095119960375620545706807261501540869538562962238880775850906036156519773638555447329672999032477804781545590078147627586142806224392077253862649029656728126948375656913220974785585633814618191225389675371601164403840876747423848326097771633896637836643664716354754588391003204908012350591549140871415399674423758435589325334278610626976088997165485975868535987866526787513764340934009796751066751887980886159011827692050785946128352582214621906506061199611707077770384814221157801515038792546692086129895321563166868453659425165837438146569626423372447926655067582657851992873876938039398622065957094550372095190780945951882699833045132265835747066056377760479835237625424040123109777693580711866137808016384947649248392740320251965206447796936843671762750648214659773523388329300959801912608810307983506453460037451272875182242175229597696992767379924194769360213370062576883451427333100954708752596605047563027362306330372973214596905427298090704798380324087840074106813058064809811911064598729081488804985747246992842872500335536124688330500910655077452777368151942551250759511498601190099149672679203093900875729297507367649826950028696184236901372086302653691220542830765598884177472890734627716994525515443377577813362820797806167002506815700987472106221749284958930717317070959760087134174571705695551578748872742469803221345479160167802199881684688309715718703193711455851831858405748321461194904280712904709526647313324628061661275027517332350335814930586023929319079551452372225605585911448503568500102165335878099224848416610631631567804665995829093374080664987417571661746526171804947673578034740690201139134606948699106522073381133687324346101944529938992962046586090783095558652409293254554101076694045004956236134605141524657764401046041444389914789569422417317050802381418722878371117180091503836071881847887696446903964343735374252879062052683159493189824163775228888660350576111879003779010120741551801428744112250343834756754205679605653754474229510217899647622255385988721721915681802987290371869790274073481804190259999013584327250000600979643166457839294164126176738747963189016617976157474541303679159282163387164305662193970689659210169150549537716258247188059271655317519034964691208391146559902744550492403928908177447336719150776676806223749526613336616169260647919992426806280829405278908695194733333701061967656448815610291947550074374861252784371399085255824629880180795366004260945718916624922698853311513499226415561192471037727037813458425376897107329092534074802598936217108443047334737334920696827911672558632065088889467973024129340543426913637998122160489306879972147594319618738955237821977574537879672704746961841372133069936399328709933860005333061266831292358323835107677148252085354257915905807764991333836412976411067409722516649644979035221622790860785142119626957090524799859849961225870628123947129217965565407788650536854405900600116588013692997130375512131976053619248253770823069007918398901055468717207858422937573693462804589782786730351596393680610304221798687432436182314249218801736272427352564640322360590082569616993900059187904251934636934569462046635105156180996102487936555717902867891305571468928312885631247460216621930098763830083532065462902122200189968924299091747167086684803939638134928665403635324878911702283580168241358402894961986085180650543160674448672720805362432732743608285356822255099165587708451736202012436659236700903490868851657145800000409592420155719788471964721870718726803060503743498417722466316907214387967759584230692884445808677218615212134643735384336953746637954275017558486921437718586994940226218335986085444695850381264238773192678534452293481252162410873382468162318577735413605247764867707474339809965078624710773149994770343634269030182450058838628439095241610910058706378671319181092683214024431383629167572977457962668605645126016704230502441952660536687050443987839734060714741840309706965278256203289192440133047689730238064043689891616124303698928089852245643200068322443632039221272310625952753219557491397756738922760253178687661244147694968278234506908607300915160484918752455684572317946178100506457733713978859127628673354624735618789179922569940892828295289125250821139168996608801205944888225143923530020218009893586834781875937870474504276391252821252730773382258709552796207824812329616326417889993162715613363092448197267968411591014037257703939715425377001773055414611207565654098839740660004534673665085051650798151449640947174848839848068880486522384752901727225935746610630657332047541292657673097293719111040057975868613056749281842520330465445611025781344443251334335182102254766152595980060344879040917022262311510607460132136979244638373242112552409561660354964161697382973299541085951297198306803878408177362428995978224825973912030723331746449320245915504386204513675784188232740358638872294705919117155135108613126457135814466045970260567423028719213817283384308589716783136415932953790336957251423825019971451859771901263923214910521428000755914435988421528818685053423864670313920792261089361428154881059327478756135015850102703429481655885110530959562834137441605812679931558533701049587478015379827954617108404162050991934107400465930236113164509763827182807764629991712143161250952087505344334688934361520580352854245991837826111194186991419762884826609702464343803722975617032647989220565744840810451564151288258061248379620168852822788323387710656456267871759452867993232578052413574567999529935294927141807277387239647240387347267402809661865157836772539183635700587263740201415366859736255279660020547446922650368063334918693513584443304223701165608026123790859258467078068521390150835878653996857977005144250715263962060645409731765123494970900910880384685623916557750667241690075332748058077307846527948793727997342423483653541028963250084264052914092195700934053151120628520817287000980637501563818280166093213272148409769968558410157794819744675239936711584038144464258184528679925377130177670766159689542812022783170805706213317689934268753544213771699649920410417920592389443272757918445630866393067983405077635275215147236892621242469949570180475055909382139153079887774082768772129018420289258844892696111634828357421486607433061401876823257983924933035331146509541467092833754103863153863370981043680574451685530184636813118829107502525658060222840167405248372667123847410481057709490648336480494533144406672410540906276479642156070281133848662483348296217013666635808133130354826591479903300692174305171357328997147422912596368533930718097550985718631345247235700435154547910081038765640864394223123903406005807226498052280148794374840596505690104003680394341103359126017510966707029758600801914266786719210892916595639167573325338612437353811290878624604521157153106417512663003216876969305728117343862808593196975365240993071349825250553526986081417755801601064279297558914750894914133660075907097433377360535394892173755476337634973724601860665022743726917339074782923459180887664711731610126638913751189565321805339450972379374350730782668823247664826375126082014356145039248875767915343803991729343575731194648911054521740307604140135348423145006276382102261343332591293816538085896123186011109355186262258744033472124512501623940797356689216459657665444367517160289431679342364538962878650330202917910865224915289574403228696723841259727985568286284912565870966281271581627848636031412239116065226573932080389383160494444597983924691320549979434745267607504660648979901610097427122950668329176527232089417552937519838963870821227242715609005534229874986665510115005440217109198275683042645779312187262259917599235536109636137180733778338970855383688663890981573934258497423723872017970997943209599226014085172448248296319008559693657331344601148138206909310005518844919473728525298855531988333243121363541565617607155531276865947405032215818254808288229989649837220494798289878015023038536285052378438383506898782182730264732979158417092451882205622469183828506060369897560388805288974007634697647441839055608586954209065143576913876812956366205655629909639505631768991120298095300527883384135067769857635115793171338387523465976763756525879881560679643067152018770168699155144693220290574827521604897034850975716430781126716407025757942929697886432779128079005229017491524437173522772785519294632671342296499457710422516023844187323001851695660940035456213777700560318156031215401301309400052583921962363125839693398210937537701719667567803369157438760418804369052062698578518108001512788424521818024200987316705054203036560463386842955047311635932902069600573271300037535477532987181375390769719550023390186376195795299245915874696317431078382601920803600854828354640759713195085943739700566102954809402867948613998745683717076248804465588284991073867658442630094861198128327841412265007849399570628194880130444882811815130045029700736781140949882667806664083697449874511951228052576482062709836879553427869194351855721141576922470807392667400891718978904658998666797812444784043855513451326932783171706791038119079712679927026393575022396527902483919965295643216886686477590344155935531036049531212863963202658210773193792827477085270295432043219436893307179507874072700698038598979897080312308115738400407156670779582291405903311193493078511483706189142787512158075310914950732509437577687991452358587333480654913196313678559533750364660391890205899419394059200642526067668034544267605798163503243201313567496955804062602032096957724178580017491432654726020685265923493653996092442270317836180835547284760615503104889639751011636263315375559748493126743380083395766735167917552243622212046617606308706663200953870424678578043652023059206542855506364353740416798898414720493642085126859161074650708966030574226172634351252581095733891343094035527880656702797619663832592113017501136076801265280875330875486935116930326718589978507628591886307876537319917030431489646288650692615158155219628133121351476967735942948876855860672873173320504225851415965537806298976789328377542703104166938519931432283512307646008428536032258198095727263709322819921342458476758041554311821119349859380264949872850279620896799096497527482346531289128571799464863542849715388601026674376518220969245724799748248331290119515798904458464398778259613326323829525098452080879945823596772025519548345022681437467119261912069357973867936343519260836890416064857543234742288185189336559974559902957966279090933080880079636391218163950700320382189294962349472986879567930680905152640203311180481116962618510598054962930774725379612379242147040006617962376616074917246319803979362237001596813798860736254263646350567139913995665347501636110403381118188591791470890685733020839801859901476573212541238750095031566903683655724355962285080062934738381011236381013529945897520700826526521480811676178184425831856932435375102064439397402302123020857189516962140354265689276259805066922403508028795011550630936542884332333069368587652346667125973403784927803883479918988115286464768725502700471721615827751403791740403469997646917188355599165619755941147394857296516733465454585813503064095876259528484570220633086414451827923979511980485601136898140473317398153010822143501718146275802293263899360087158940761829755071275810431742551896267772193874271688116097890304657215278163257068374663038482900422797396526118229898396904349189611888889641500197891563731453181978250681704124145391402442715072985118807277489578539247521564180837651607824644340877621686434737774139364545185788350369291759407462481440065862317339819524402273333827300747908130494579120418091151540003194752903031268200950306475294225099317490677432965974198267459520437763704495538472018304211733254342053325804599573191129407275583100755606013834593652059461776518380476447895316005038570120367005970013062757341665644638645276917568857909082474930637708211928220937051907680832435946972030475897737164559346537831204975443372812716014119865022843352239173721310302979498942592965550156062891869393381295586316525251048233128085061496270829345779515956329267340343081047570665684652802069322631777149831481226250836760333401227589639256041482546167732853015475421301871688605530583084715849335831269967997643737084303068048320953791398671370882133458032277257169886106224956678401863966253630571967826183707085169140266675204135264537018567071591648857876925200755170351013763929019212486402027669367394212001274247872797980594835782955991680483994517783909221526886747259790803416073358761835527226568470370592263753063231224191364710373966870963599648481662510691765264428858252817220321344011719108409107999421414398905252117908327356880543437665823560907168702252185768634690513006725096231646354301030293431530791149596200731693718564489173521104137296763076249113979285718425098283814691464330182058795571187438724645609203207290114332064716789913577137579322453928649547444646091856752588765025275608136130933616677702039571794007147770735449530728041324131676796809919923971211811378517457284045999577994356070044682185056865406895425140849607234035742364602152714720224963244683922667852484376189715968733334462289235423505973143090892712252798278905015885183658226311614896110811879696250478836937707760317541142461393738242961845492522505863921014386265592468619817230012171529164975116864666795058743195734335377732098826444246514809605764133225134805002525142035146982016232896092460352753389018347067463223439297122555140932171898147633610385879151204520275805241307097841038400952255231470203441957657551871374968427675337799023960515557498968390069260143970755289320276322907139609967407830028002502200985233141243453311629480057493168975402917038867601715297366388483107550225545868336651311241360789025262943645277246658707534118382671363137775400403032295901636402401033224276634329089637512234216812771052220521578005552013792153078835338175870099947392619784664083375931288933772256549166752161389781824986475583243612442854320078414727084462906374433211748960655776453114222544342688033782335416305149437434812050757084658912379203021133535308696598577260522101372016460059320390075573625354068734435259248057743639984643999775525045549796816537213822870207688387811134308109104727388884056623838567399322134048713016370953968152851448567416769236025431398277857251286850702367994460652877104491812180230225838759591891559834602467917361393849502362505116183313460398616661008798047902585926611900444113862381007555886580913408359504690858846462013320326245046459079353745216794728789823753642951073029945706021690514175276066115792074965875012173696984367585215028868669361293290697609823908655322275909713610827960395163001744988072931025201254902288499289118508756777369900344412756356362682623953009466966939222840739836132712959444262646681288774411493823340170542886667387724568468309933118001750562216275886541600316904260450529109891989716146085792989256331312122452778713843062838161345503459799528667041696962951717326039763224396089576140771538926285391871046154595168229527375367519988193156605477907496360206704440911164708653362722807793900573923118022071422700136746306724612766209803982546295001855123435586083454784591018225244068969593731426940973922051086882052621820472780877478035682201659215719175324674021781741560478199542839068216111871898103608202494963328313354778717241710781354608673860019380389530617828387697027645782378758906126687189075620909788980696932307135538106946821282911535879766275816270399380620192842636967928942121053131245251966697377312375765325141704288561121061862329770174183375023889710351510979898383349144648348583180546067724391139214138471867784662980464032155095121809516719477378299434801962800851467404327805087385360529056787622751341583276998170771194854188797901515857565959476136409321446526786430972325128137948656718303150491527717213483476952217680165567417709572790639747847362456392499091173156850655698776997030195026773826391049572488883427343311352361385803199123649388019962961393135135800911662477035942161839022388443704618464614542568503883059646934832833621537029294550572179385360347516193836860378482463227492909238364196963304701094927777359350675415278723671123661299784474965148003233024661744741270180612689844259317444283452855040172492718343695124995323436229378349950715696171220073816095114957566640329690571719271390043148537587758716045205893674937457725953846669193913205496989364152087912415990099254677238187549354137939986663839248780238613764522047920933478356356244135074787432923876681048122569714060420300330707075533328517206332824057687289390516697548015072701857433887354194029938926323859302170787821271823547401771521638297428125060554074186285127311073613163216801405225720751514604735044776601767303301323797417677478237163909615741466471255195027479391195489252789569089087618484745728542090076425880747264883269446815784696403970361044975461235832371147093616333212512068483804582375764360876868202273626319600718635101672298666273304266851353983145229147252564616041937096714195665111353699749697621748446773106771433578026216778576810089331552601268113559183543864296008273633052934542606930990343070149133155826909183267790447324303186826953575949877395958530108180834534630293183872240634705180914382230063135125380702300969546484302804865868230533565204943573304738328536190468116910085279193942805633981254138286003497498465851769515336884014701536474437559928546168462099416037332328791698527280470142392087293232417532189341236440304494671333788368950229616803568303359955202113517382392265587955568652476943827164080665570653363560714012035689122330768284002761783339806615247606539987593851003114659774826672027402851453027900722175549455527575795945273237390046279972302336668382089275242660625745380922309482679440142555116756793417683194540908271308420392887202245213520136730455350137356752232634927956629509681178495307799111572345595578154516194564118588951684491452177788415592781504116586931282813863316379202780855137605391266943164256976224974219416434930828526590557955021646316437883309063362789757335017534316538634595211539244159237462948391048256749295544108205721533689297052936118178290861192516617577965745193821135626454097888906362647796207288191145795458866464083251366699520322632080529727356328907892538503206800273060909843249948292497859341232216170559703199474510908294750039377626378085477821390493554835024695586589092283506739085528204972706083848718081625048256718987553988739897975449611839845056661531984461248248610868898706804662856885311222005921189837239410353640846362914907477779944380533494116745775939624375554768747023666428019387577363738259967973371978426860218545402485651724584276771965864706452819695692270723162173962392379711150802777424761833468451339582755700252419041999639268821703019812417649728977004301699729964215551559759333806203919503407178018541064364177055107324103252280827498107943747060007689551147699443881187211513861804426700307093704339690030565505547817917626885437988551096850265715231474783777556066769475598097075392942851691467313708695606096204879359635575160635705916254944738944180641109618663149229769279744720219522808961855241653121570863932801626665853627831758311501334035290560825796731595486511925004445830386634284464371076504840484168858678956887572994128208483153629607857656146643732188724602764185327055390539267301201845565522080427773182977914565092253801993500160622654978477256196543344530354264724638459179744447787816678714108891655381979525541375300671998540503303808231836990189179635462273141086600970168701688448843871179251006949591032289558913136282645199634324953703886618087282860754746625684498946863484927461172315620270038746167120570896833620703231155657801921321638799169548955682775248017691113072650645875750376046819088843513048138647061897673505324901712885589252989053478832815586374081896844258011706588415815033601275636913907259770143427968276151620987454182024717301906436921957151177676216672054109207102546999319652582184866821191768609895075620228052459187640283671846458918004402942389571377829785250454186449690322750534936666497534216924997909035900767460609007839902006016679572771281464263659894573195361044814963251163599020452841713485792130779401842045655038465982172798090482126132232247410851442154299238403246701820817766950758487369659582645876220676084600825171692494532649744882971586828644287997952244520807926967616740286834069366228289756412199626045406343534671917012438685524334552270300549228596507391234968199831625534196709579046072653711803813208610421197485378726892804655471268994716884557983203936115591092909905808058026226327208323191996944461605950276804312308822580923009993647184340435416226966124580465031782885017880081416632117595104559753528780167939163026311981911159254220272051232959766383636937712344773450448796936931064050864122749748494787215395044503319140483362289520111470646527243813745099064278769528864058014208207835925993411033312948063942970273597258281824303270897204651804764243181899305674784502157002650231330237203293449276459690365726002920270119787335516067595986093995861842395144424150608641549119183782587832647440705742393481010988121742419359237189567643776487648914891629153995973241334628988044178614977663420361616464944293440734660164313283181729951814020848983993850197899447443298900242065700901614801781830429538228890516014652870560336239175147603528613644599292060853458545252940710927865630339083882582594647780273629364874375534383281591069461501718536320236898357666106074094673895031156462739946291148386637806899425877363641756086925221307070159597416603206551543378133936038408731317555012407635190400575470378924127593593884706497237086938608797038045864050014584723469246777593679236872060624450567730124034977607963579174956194937342009099745407846169578734559901253347662789493513280554468283937470362959919294064925370002222252617768665036209952116367276925325711456844564037966617987865769573796894407030890263376945646587956081508218142799871177208975301245494345491864823264801873636195754094666698360904539558163342660133354289207256806985641822716278726617057007887887104057145878784035187139977202150666816137820850735278485979476739466310696733791141829380057091066245092225334430615209726731601447028802726251027083373576006842661143518427313462041667692488262052196114854751633068360790537729485338080741953414767724960967861566184926027885937365270511248321482225684795978972104069744943279160293570741695653365093381595720318387948978668905551285138513021243214034523822362463432210327162792664486587738027942655902339502996925169263311583494998171918250690191539731961256399269822377618843597222351824394904048000302995291648685948016814876551109963797525899445669090351671811966020105991583535886269020093632369537171091592843546299982177917658468242531852470098381278309211795740885716398277605869198269467247056872461288767111808321399607883831771949374440107695071128645156313260723704935972759081091613454706504111725523091025305100117747825068379063623769516309549262795857648726349916259524444246736695667173845361373076213757126644423121944354545499919888936982579083275999876036180818491112717788594531985473910690587071692731852463146316515448864490948330496087742825873192735027087482730490640213609114191257093803147966112370069362457825564242737581666467688579187262513275039154318996699212075547031470794916964290385593348848168349857268756411357112506454351504071389093819637984449371738029123147695421722720120786445774472709109862917518902335709385997352560579876231561700432842538371129513642098167799414270053901284479472735685476498046485197064343435199650119516745438234718930479122987606850924560183207783374768826396690351553766149201013302465069297647734215441427194121179592604500230652898655090255421441047827369057206052987193762055233505859149696554918050727356624849319385524580208838129628085989971542482752366158480254641557406602598190412941106419990516412064964287217580269447159859258668110574723858901790648146052434949470076560297644804255733025090670064304294888742007468713995897934393387505442599096920881603413951570652406768423020571546980401642048774218426131599364571209754223398278011948811985553666309310356124113146464405123170997393868406000546524300696191811700765272048099336176905750801563601030613380851722385963871177281907774525375379109460495821945324181676041169782490217173051022688688029664586799005140729039238167676410426956034547656875038894276059613741821498629873880395808239328727377528804988655696188857613917003819825924058958047406519798804023081053389565244956388138731569377527445028543139676561342918206474620266742859956931297738879256619900360135490385983444334209073418647861734746758192976257361259172142611770853059941361082021691434634646093680116465101005166126167045912789909120249966252577496001046167924306467354141924182637286190014863665231824421456833856820171845080492625164666107069852718052176398379866780680982102612656850549036182915053901704840065644725996951980038803668456214340761128070205611094929961362859764872663173722794828444363759260357052895519832609133851999701127248014341350700913366565424939622594436332435923331663609203192670964002747223312938203999634965516286269580416869357627332535042479162237737532702177822103961941632033391460230748939177825621381997567113453417439111460040414324830536288319332824006898765437691361776633587555139169353726939077267073229132201012219641527858717501864077539692428066946545918377452798230407288301694573561500441424435205184825306614205174829520579349560438877138650651395133827873717703551514997888853902431457272911499192857485466705855651949677749371472388029284495020311024623828497503670216900504581185313648498694214900933572693705873625549877679239230688537467770846966575094909405274500282552706251827043248857248191859405155824229942316207932994340465938325975852054180149052434766629833227433464796901498083970162176641652992929607604837774320967047109583317964348171765363538636276200600224773447112254775092989218615833624196014349814004774700365506699605381758033113718521355498202587550428821104206768530605779874710794784744703081683336156545053523090445403910700012449425948134335082716210443021201945784493579440862455210596193853969305840620424475020294655547754102768688072273004369568706245751972820396724951768875535835274124865553556231705893017199422308983500868136388133801766175849534258044454588919908007837242296979357447426278295311067047890408287818710231364248110448894715104317382150644078282703151123131491195401274682917441103568581033443563506926372948905404208614863910922850311971507791989581785017135107102086357654613049056377635748549388091810538561215103247429703429863170592223186311546164083170879335114776841877185424100886662673632893871368467192395041078308462937315469065119358208391963940930365310793900951499879925790024556498646824230390364633646764081546801627178476232447169729027353783810541075355546942385298992264714301125343103734246979207316597024399079106146847015475323297225443973066644878379322342397452279477131858194552720856256753841110143153599267104585506000555173272710234281972599411532349385579055664487877904008080109769835328994598096222352933455533794260033256694073969178572592392681941951324240244367623607799797253570268360784845162747978414896302600067221233154626900795449113422783792638557568699845274035858139455843661549388911654539846838642990647940760854600912046490854000860190524132433634383709130071601605210424158572288857492963144215344607634119549790297681482234519456382511923937938981002430710653957386609312716227789731372446815340490010010046879804715851404589452542859819005310860564665802283527232458266092546448192519097240987666103986483530662750126230610561620582839296943966850569656671569965174054535190480306415165087345913041574123454050764225180942622892021694197411601941310753346156574249883135060881340858386380335801762354145133309877447093320847228947712994988411225706945323490470944170258096964854826500674606012720668296413203353005596834021105344548669203822738656207488573925626557758385079064354055156888607129922011507593728542430756325448212167671530884737853971345365210137298482462702827428814102697172607708228227079732026207380699380710585342799982941266429879847365815687871381784655532907847868547286934836898589442124449198154620597707993639243636364727112969657626571659248509118270418929122478240397151147502458049487752626834499822305670247073989514515284810281762604550399589909317185050851047667042001305458370738193577462664434100229610027938509548584428104352881882438115397443213262596522499102154712951510421175484137142094637411251223162806843324453211251498933680002537014536177623233389457292921879551016006406350926814317842280851140937475602917359196783812091253711082095332841322651140251504484984748072369039376610026927707476356204501755473830946036698431888128568195567217621796536908973580908581016845305887858267741805497702713127630090668382728529385532670203807834281367964840553385839412194905109866013048235835922560057515534206105035704085883091412893478626055367760941560019915292594097620416853383345599018444995954580740318113381916578067898151986385559340258617773666288047140932334853754199028488107549911347131239838155758108792513846530459242753718505564019093781608446984385458588227649325906275157376822126991225568169888050616560193069779113074737832751962701040722495334652825417254683233046283648137868468611769360137364487909684959198018715984944587431854723076050632780813482625396703852120787259587388169421034704128980148771702488982987804707063597866873339031380359738209497557483601981440834634663935173381172321084609179202346231895138490268125679730564943173421188193743963408789847328304383869068872764284487206184220270569120523720824446816107444854702021664792538443031253306992596821549785432137290139226196257566375447903208591043936837455225296998822680887557730887123527167282233963191817299129224295102710577107780045716994513825693990254461211264933280603112240643539450095980635227628354055791828563377114815048690603099185731679811070519776282432237268238834250505186438716622787601145959515728631233117166438250885524003348998433422994301887590058720356221499492267060003973794852204538622683900798259277415836671792294327613454255699169228016693942473284636458465382770392170199091786191271563944316038544338758760085222562120808952431061007032408230395316107849661383441371176027060299468092646382450262755392260213987115567258137658669839380924088973919470934654999625727376381472350618539097482817373316886949701699134871030226529798861537687410990648716915432721689575533527373072173067724673577626864744962275037746396085298809999935939795079827936063661867665978547672398705537333225196196121680762736699595068601468113915736890259168506737617910322587141865954374666674026469509882216580714068004569200884073262903973533900357267381897450766949135149553910285615064100920629921342159219135399201794304861082543350487516090342719336081124316083748924803510100691931691755936037771079563905984200478669569453558622064281552633815085534417840783376450438154237899908201630983282688403930117707588109387363841477523840026055843605548799017522551522543460421670858862777417138310008654014037245423212916729941779130697067454648998291131249103604629684901657088639042624647633889219572307613913887050742255266777291786406574488143645468291817412840729793890215977863268383234181683542816913265206993401075596361743886741395008974652220681945256331959876463933167167488955748047625221787275546470463941784841850727754654666739603227387842755326177750735664844881531873026573198007674420253461370341223466012161401423965528816851348650843111854244197532967097404348775855223971118951004997243862220926264123766428754529617170816043676142530739667091466745383284772437409465858961692219105879426927417735766081523435494292938990298812246051705350623685620993902240375341384357912735635658451417874995634684443224478411495939142406140521285880693422493491981332087790368423779767001240585383044614027438191064273730477245638525945803073218055397879049897640283344182886568371522269055984456875219017192403452922508118538246154845826878603892588978490834386326793996418864044608253285204878802539848627687278116349356778222391049060350083253869244238633489367014138463275788529304642523902491016341883750138956108148050682496563312978967719449064112432264756147722795841149239735090449342252873447559680760461297772359691580847703157528235208918424066470015413497479256473398228206328642033347270491156885952309210345617337827427302654300598962887340137333007695924784358788422800223763797769459119321861850126388849256437494916078442849869327250912420407559015613262103359178827120147395006734197094582842136177683747080042630606663515901999358392058689834608305543820020399970902415447827928351149010496745173054993534347339997881780015582735678608422680487681205192516783344841284432941173068196560338660238620202263188756771870707955112089963925614392147688376690882741452260357188842644733243447244162886929888608834063179180848618380812710674476734771482919593345167957555250935633899008972984575470113014120092819148343994263282166138495450288959910186285157549778366010298600997640217367875165238803974221132877239681142805186394009656787342762070616277570752119787423304164377999456961864545527315363202341412668375793576701764243441175219144342377947306738815305217774241478474382185697914630675674671044099493071986210295809033286042002163272777909040729229108578032589755059517415851323416279593723317884874471082119459691217670165699575358092061656670349952020100758247819481642510598462036535809056052197551918629154912368902940328229700842432683196441262998596394646889148359686213347307826204570832071027328687173878306941491290089299622127101509785746675603140865539887188130236035885692822304138198044782714502630400037165224590559111331563053766149657120726447486412460072285824069705648656061461086271723631997267502654499086543071565229192743077819895979080495323343766033201189711926425510240297556352185515153081072203660222512412609112970889332612660481725939189696261375581629714130570087901110449420171873329807701538474539508060893199149567531753819727254576278627368229978408353488003388588610400732223176453408269214483804552559507247896229969214993398787478288000914744825861708755213862580403330616747774508588582235745105576867904235226781891479599490751141400820507083493211759043884103932210616461293111284610953717802664209474133191063823541184829060533645317991780063629356327813527587145833005932900303877711931175331643572932234408600393595745272742668065950037983388542846089388943981206275401376482816032478441533288007285687178661680721089215212469234896397888384119517248021243432945001481018217713335396538752790733432524589067098748869114932120957058630952559420712069214131842829087356264275078253364406837637361350970467801732127715182922021569886627387933554208358285853184229694832394282412706359672668534775073335111690859114492009588792343836468899438238545212877391208807408040682338881403989937465382167809108332651407737516035532371203832460862528169450134332280631967402484098386773908341565548753369493093210349320509612417103902384217628515153142537162556870136737698917115350091880554692461330456054438121618618760727227383216817424741276967394980538105195867909119192502698324568007251958528604446544927484126062889994150193106520912019795961873990879285053465925308300350482548472977486220387329308568241712679954525910490589865955462004030299391245862807252827230864590078841947239792593274336380505252828775676242139952031339614059124881321409910516024538358924806738453724862937089458054589139118171676112803847236815235131322393969228274800227379857346374284715541756602551601833623721053511275515593266185513744609603037277152394980775963923486098152751190019584652749263593823989770446087617657643355871117214052682755515721097120876818308824612622649526050415617805361195740578769444224671327625201751570054577682961876996969780216915856162770457719686305833766671844238326688961005980606274571808307821637396033402857765677091555024960400812126580501651052452485332876133389293400481554781550695450151110037267127237454039824413407730875706360404821044699676537592104868316443252846520604574617830641845881998946289930325847789213318821722400885781387379527704455181308398813341512403448802648081531005657853273733577111613211042994912947933449139589376228735360966210130848848913762736876339095777095635361981003528911047654637817086845128866199114145197365430454662749754442725217634990757822660037867824921989652464437922904616378833010049642811469050751397459576777404634642266218508869252736354624891353230442285136261906632449415699641311903740669488408937759660813994927730373953621855741154569839973105979852533281790610686989589758851511461225773113212616752008280481159835237498612722368803077551667777008191573702308258081322466971465140085749144563093945999679711784546678733433576845623761563890853022527125178313518784209962790374699260389951594879152366048389276049594933623153615445646560254378369346307896338239420534255282952396105008259032392261996087157036858291683966715485048446049433789909797446003776896338681508166427950440179991005307440109426080421339660746995096041912777833143092586443136733952478154350511860282785234967788464140009672740790696591679426054072986462039557068722195063820172810362621785255405398239733992349374531484264609807892928220117531878281740902142583307618368144836302760566039054256809845512334323005900573905710369702806311269032245835357284991725438151950551166865512952752989884357320480487339138633756853396986216489591742849903306666636757025277943972625161504309567377242243901232548613959918440050814451232726947129760212701632768008116616143138655034299762316770444005394902736078205283177504932374931405476885442307642446922804468804088990862677473158511766135541278493519895938422642171967410039754677751201009911551977901712056693451801314620283837350613606750933389386251170807847468240048109887892311993310263017614374904842067929894560103579503369638584462706190593142366628212904656217221783567385085585015857348360716535106144195528110952487472050079061895084389730867246650723752558332365406656061885230166546291258784852970532871727290483678042520561545855574540647784531389040582709601085792441800602430526538959712018570127349669515027608874303165224788473649940174032428597375258001169193738196039119990745320484440495365489949747395775436982005332443938500394961800907400809102042020357880179463437609542533551184435902420795558175645493023185640284429523773680380473275166068243300127092436006390747508876796369935503452795348856231887636636521137717399301207068189049229327444674262728585504505297729132399438712190965215318442818601633051573654949358443169247224570860149072438016273559714411657182121214703047162078515001560412973179453204759864495230971754968294738448979908567401669344582441621742365655006979118058733710478219877132648764964501877591740169106249281838193661768564436477257059061216211943902924660151146847555264863843923697053977485701852670928909581520577399297503020455978408328551774270764539036995042763393494388013052344094696023219298173519832773767482440909911553962976533685810437939600298165747788781945399928303521632265421560924683757245585429480359457844389816896561849102406651444376993933388251180916410291301613823388388413460930382302752449840277187538356964862025177078493014778724919662787255426425724463323886685596708784114151725067512979474939010671407314882703799941021005375871541670380999118730067886185474400358133747945410100205033724702022745307813977571045986434531501320520082199110385913301953982956664447088184464686212207066724620567056170121401193059626188490837823225376815661164131704472280658317312806756064667084763050169854131753704800810315737829867555375554727858724364674459927373719038832235367996503699295730250703431294874872643942777381696248906795406702285197509685059156152977071460391397757830948592645305358405389319917612112512474539356690169714203632792681194925795503424560784201320951782796837438620546024428914116342566088585441309622894958765132579447708494023855402684511237664393999904510788137344380321883142544326832401154840832975924402801598736127014446756330172609057642358862817659173966471654509697707822423037524064856451892717825241149948181478653436518131726505906157500016443065698410652580942568437609610013519447712680590298014722199663008189956194024169205406365123309543982053259816891572162332005079007493621296066924190071754796253839280065339099075350967785663710704361432395686542212961519984019748673880602113245924061914691691187597838576756205230086909976137122142499527833615233673230300782407694787152948792678903751522611314172561099047311383096482119504103487869967393933258929470300841039384991081288073672628352349247915574054409630837277383128208939442105889051897340031893304892187997235475705767101211490516972345710932078989762646448255227117716981401139725471424307363341214582698758150819219866826950876187614882925350719743403415040699643426541398977314009195083523774605115908151459484874416012556686918741945506739460953742082570004602548471760853059309953664819786701444130094674339744015295996019842196590457857896276931053557367986628292279193109501650768386225450184140913061605128195076774637524491374110198892651063062388421515887286489678733566500057615625608307159740324539418454930104990656639314287525855448040895297818002849770009660397534638364580777798789568586669206043086285648674386101402300045932104741096396699675152294416300756103621143327906345197999893105193180666951308647350561220225762277826446635175097257160569858361868880213231786030573443306392436032335396653132982199503131299169921988516578471857419518235626304392336314426078101229872024173099022870297418379471743273158817569063608538683536938675147432729670225660022172267949363036908478260338148128709241503463907857946436645317911248971150052533423371979419923219133967536873494289131307945262563500815087112564159690343001068328557117778221581581053001657860233867980838928790583098464678980533665772911480461101475751441653615461136619653692964272227003774709227882061638186009977054745925496078809778094269065154352687393332253651239108807758478834181982955673428933100421454792884092067957122317206772133169424774987815801685918802663147553109633772384943149296001428201568834789143338344334793139042713632784283818849252630899725637970781963861366242791659383388929572181232183833571812389480832867720373618364673784205544139254138070803056605512445783741868064232683174793034273608792794517341063416822496734590692220828564553172286039213357517153820227926940651603161456171060533513465770649009842134294534154977454004271877222208695542526627190155349341520765762889471980893717359299267929021850795464641341555039122373459197278464560591295053348622637519660488226421466074945339388563211221563055762220416185405380737933228144550230675452801526366242048519031978692823943013977556542559974332632089036115759888676116707183327651382898662316605876605920351354953794641234527225833332991211789870705410566155144409768710719027910376877090561709698011109881117568451494737083574775741657927878573308050642662902040237535625599300495986395006941382570383188297616102887512657319523108710674480746739326811976940714460340845153846931782265749122542656658661629290160434390645542705275683562473474478244673606346307132806727903466668220579253482511826424395852526789514204829391849708241437880313146740898280008133941239349793285334972068786626299860618299976145682550742024382032964004198169082531324687161720138637889026363343486816355035676469108927072009166283590559960162934259185898026397666160508925668028480919524861532578429059190912551293639214708869857608419756320141863082523657823677212410289156522879168961615803652204042521829739345982274820259381597724724594509411858171345218328549779364116841338134088935459282621518932067577025225155088983146180385160531881497944618158683374490510081405596612170425171216633049492573567661425364539050008787186088953709297878732939543839613166616159543095511556635222043277791644562624279351879069835401026520494036184618386078458732605987033322752519550107154339819613787772173415256371566631618474551587378608382845085182271980897675635442674550849204982534830331505317471992366551688595844710812434144794026671402500026247210848651093960910239123638039969144259577828998089304636876032124781883099603143710914437105650811465972126478575153985186908623300214566090918718951712846533692352436570473509225717640483399395191413467620830051828900491216434617997735632959681913593495676916567248385398395278993642577281319966165673220433326032289863592584828118609161134548918274576477889788217097023950965588262676086200464454112861811019956189879607213487623479549575560390562201657711079358496940932696775225223415991380031474267803793737742004892181899062974793455616311407861859637006744444290061042718502653127331821360143429600821505237815477243686724585154951328337675109793576526277741139692110086423838363600468532437515712110535739043094279948353766049726184449408949366367987710798752948875699932515735356393554350026668682430424993152051294403390488388140847015924310621593787381674187987701247204672495404915551783293007210663128456625012130909897385183306570763760235820305830485835099098020580572618227512610737908407050021677012415765904789730929546494553410034003002569038880227188007666636392339055854815543730019172826310399215661404684756724489165565958991486133350417618837843870114753213176283792767967598219431842102659453738794405584725612568707972000747099680400328454753247056685413356413066270604762748214908418883710237536166096590598689194704777943162936211000760894457286858687728087188264750450099783517717783140966511897077969678910708194673708320142735964376515215435162552391620158170849840716152080967080808419436294971149371683886184476041312729964315412285052523733386873121159785190534230613063417907393777215149826803641142170215339086905920605674791650371785734601986741310856597256408832232726829279448458125731097589869319777451995335735310299107744285055573081259216373123001275624259461463791843128602273136496897710816357703152797999372522159464516723490553529685344778603845098476537529176825880407332611732974421829348654104772933345190558099797698824787935961842198818922128588542784857006818431927858377463593264837140954090798814555853496595378753375469749134894324739352298191561100239242934331639900588129035110497565941076567694062832307519817202317992350629933697418350699185722497225958102914155635038378117687172620804555720295279423964107360858050271965592550386795396674826516245996124747050666685710561145285702831438812041744289389181413634988510781454636227320487978694293322614871469510413990207177586872381467206724757239251467099819190679778206213127656898242840707856221914666590321161512421276837536727411556674838237255072825355522773207532983159703915807533825440732775638779345398669982134509394035584603186089034173477753788952851155693601009195894145561064042410812611876175581592555418945950842983854782240624084395579793821010905202715872302334033948113926311633761339156685439135965235610589276975845124076441953517569075228743787044093631319349316329373930367988232439709404116140008876646367177918105793218362325066954812446479184058600710762740401960770148166986119219492140278928148841740936783081688492825424977922824040367076170701904546943335021857450955604779239311498243188312772966728661939821891028190366560328428050026805843931447353387113572040819826072221943214191647375546966201735887565648972287415506244490162233030388588246554333466245648040568794036272489682737056460702984599246242049318757344513624604507381148187175979532319308174345108622091933774340833290957249334077019626120090627583631242133897056846914815156212597868031001795059673258531109272381466801754155844715628477732555098040069413754577147023063415248663088862271437234036463733182172813668232787604493731361223734212496369710283117068617811108703285605795549147441315027138108540712179637000767279738173119593454000929445224100513647247661120994394736639161663276975386039493293043817796016514003828220419147644096976546069670188534177462171845082983839316180766747818483973834737094973476916341285239076094030345876280578169551508378033387299046640069450736467599676040876410358774086671853517809360467826659393580865075281152127260170383620374506513397976829960497446965182754332448353388903514000649358664479506777422959536742994402847693976960616926747854464892245155062490429562944730374629191080420363698207516640981081023043448032818691192657531014743957728520195028461198864795586894223707612630884679248214657778814746758346472582888703690178934169549538972563644635862914022559200645272891434149090386906188706218568633042527027886532873574353752171933411404666990892669242727956332012572026072310336722026749560497546256714994566388996132782327899082903908364933617500242205200585467721494649187102926525995499636959857401368741903715274017054700135600489109939336837351044334478880532513160434961977410923095174153055626796738046934911327553490680284389497381122743101409856972416300428273226793411890316762032710354013409719428791374818718048089431168957498554011232285799261018746220037690526241073997352723840112289209783871119230867454255589712338510091972041927214775540174384675807926085863299685571488975826016388547158316651261286558761266853666882305390494982944496520795515848502389824145008062137401873085992233614499883707895527867524640555898116035076255783634165704969217817276219448692739029261669658542958129792414303895226327266542460389485945663415588926612989230433882103009672770718772886766550598249030736919608656705807585609901180039425263601738313948968774247197200129813296447034285027822633117279230650591982703192759824264268217838020759559363271667075863489101216567972153736138871602633384274836011374522683317522323283188246194842966022304376337908316052136523129898678749717036754472497489685117178997552929557246040465126142060731184926809269964880472715816103712693346884173190493532799209762018901886649069352871999862590828990189377573052484332409207723282607008161081037886117059779504688459092199241510406518344530336974867380083184685065233241642351491104984834632883860040448955944190085632543746064155155317865792056891714920261462096540659250985188977288887972556552780931731435535517820682450520231036715125495370111962506977377918712941509519068747182708484132061984921456005236416276386780295265540062510122401696125545019392751280604765522096284120403971676778509520280134705575264970784311005853818263015735179779401115939944505418326962483731615763478782710669132323916975012209706808398253478660569108299678451066633901638754454474830137130931764042691784180999543215793459236588056411139636349754912665211132678773759674332478752701837064488641163623243669058483928598689578969991612440103349793798202751491036024893086042023405994096047415627281854844756393974128165503685708331267141584748729713608990453458790176866605413902625513381935729031260839988493035893153994068804397689619801148062551905426931695931438606949653939249702321082805505237661616559477488787895145927514876190030362432720621358431411900071474615268740187610454476722030840936737202805776788307015297454370202790001794880944046311025706853505718285577294490413222932992372945501093459104100753910843601357365229830077557459627053551923812902043260254017899153516333800835031815571562740394545302235889189924021743406296738275722129962047812953329198503556351085736850326397821551312746214364019100069027825769319059712866933082470879912023318951769929558597117717961887875581309079763135217473059472883126408778293528295181253662871459883644046722894031036279732054936067179191538121112609182235683246809318547892640601809028579827448660963014058845862794497140542385366891824844975908371793946622229036037376613731117756040589038603905115368110114980239089197032499591611516873788426117705847227361113809961315477586444404304935797547131188280065336429128541496276890394440373059025626444323274758430282347242876512509141265573332029211296450538451505680228216872194806299578614146297264563342433065142726448484197586442964538083187706276863880596944795841104803667015235513639503496095146008179574425163320265101633848538322080443978736069492556080620335777774552650226755580355677116792321873204107314947796355196929612928729580475419946175870472859707292264253086141688727729828673743558126645584268692681157160779226369058018444449313502591378599763785720351715433940870813726146174867075693953330686069483196585540200140673017070602973881493432335545846722567740825818915465306246592966537377061884171714153682113929357519819305064367415267885188757593247544216478854559382239618976365057866365882214816758586814959233326096300172401747130323250643269254247948195927597043484001622375222807864627570557077080495586186524322690761263639641201818455327425758999091799079801181751904929999940715337359040425515988075461715233040140616571519805025875736465732048379968076846063790481150223704142064217536476371934685362558439026188380369695428003146225012445507342227638740380094084219660847362418987008692786777798881544938974050390269247388123897828032819636417697696175752324310971332993468229427996298517831131917271469582023309203911005280688018350814247516485803922103307887179378252871080236948679304591110319410937507303873095245709661228811683967575008180439206780057941209847655773982717670409709574777345616830769607337098151715914882668088280943465053218268902529263480036839048933470062536396841796208187223926957210808485941506644233338613096360497748462977292428881491320328671693724387467221900801286722349608929108329237015346712063683349038022877417302649668391027882571587955919315730837353571076815284125583302348557934618925784555250602373809602434126843465049329961860182758990254736024310350656807036871882496426235679476432808097310501479216883664370989637844469521810357559785927120940296035072273705895350188312457598484564352916764636644095530786704807063446229486397890775503947903757544416236873395687954859444698898764823168606470213788083082148447137442047351368655721389323315494553868442903916557497039414509706261976176250392937390726701289604750348391354776713237375441628146130036454717756065365374442751500577575822420341446404768369207992516084712098150804294670085675039332548804816472496705718142780406450630785199141921013220941681727450580472400921958150266189514212643077332484677427516167906677766230944982389186497488268669735716294752618515095178541160198297850566826837046622693082281185869547523406735313672805013568731545412241867910105553753301202656240855336261548739074577244378686178893118768375419849833253063723415197006959575553219455657791897592195126357444951033149192809926652087730234526052378628582358846545476481688460835531870412523172359755376014439731306808452119606935787883038169495875636418776575512552784002827398622940175274956791929447695448318606862000586873523929329127198563329768292041149218877095383852536002278403299995165308461062092071865637248329014859376970476653611122542801309100054990363586146947178294207938879139900197313813372214016661395525561805609443513304222339538792248107004619585667217521649768425962744769337721067386467365948882038790865541246550334797527459258924501239431259032492353522887856699467128665348535697824533695283191201431948263578857022403502850993348692150032758559216246183936201465698675426425493550474056844082417337833788509408281888881929837213648889161545805644843008648495112363181875368392706946247811405980902685395049940578662073222623454812964971461768487828984942594111284775481733862754127264401164927739083196117603480350310399309066978818126144456356469317299576651260417538766181523652930374207582635931096416248591492075657568757549731753070369802120941123660077769591864877682919655622219627872761165478596845292737316978359475960609548352922170653276260743554806632737213971659252138799327499721295761726399926419196178563630539891166342930447618225395389702135379388785521380309706742868471563382082737963449161656789279842658794512009742142969204408764110948928257386568225606672068841437933636520556352065345468155355432493478649361165306064676927219957407909632048121265404378727145869206352601167687542905905359364466628872649610891203779478459711559342379193994711533387022801022529672747123876776481115191071676316998028950354733088534992565541838778796015601132885597622347832064094502112578106484735702421110803933292587456972381391734363431501707664473704387034301364533755580065768858092889412261238535415725666241593840771135337596775042531476521518649638108834615439800389948619994152763802928199140592995196691535196573382638030472961141910287424637722435451816445650948698864544782972018556664135692508998316804470395069632653272355400584940403155304331022834262584969354249966014706441721833023231181902140436900850086011292281552792274079187449280557000504241328798260773384230379423939308783708898566594695814460296770596888705314439755585962368737194638320056576441764929206410473672900140368019575464152417607808068740996383270166755262162943072015558588791068476073930914254938638930924426045913932268611149294624899156519591453421569521460901451742010559910052396023117989786393310699717534154251321086658053351331693434449230167856204083305585126191645103027619011875496191406720827810613755619351421636040435588038064992396917982635591367646141002272612705258240478122157316282993955179730251582917773858720121889439796524381586817855343260179147466199036034589418167839038985641937829695193591810207191239601481709591726026219594760746473532489858273290717152381091403069176685969023082548989937127056398460168695716664819601736317237195442148183417955906308699290404836748109980316775076236871967087163849643064525007980145705436923828267865438651644689577726171901371424232499898720074661207962832791779338891792459207484040405058167036141289895773918844113504035164169898022910004345107966152761274659667198862413044612857105766363336185660273707296340923570309621860980590446449489094159507350603192129678939539915026242595367523015290635967924529636324571188285565693429089785158574063235851768926753242561713236901535269657477026976439325476930178504554813052913632655686674245325156194656720515717153145566976954613392534869562901959309416969526799161052192855479043946127080643452138345392147831597417848719297287050648176461350544149883137147156332341982359704247026311025510343514831896979484258875966982443445324369769481176113780845851870839450103448885472283744331033558268041531491907953744982919910712442859273229549748829097720646117974060344074573484117797469704552440831455676617330190955207077572438804179195249298162157304995732312615275577876807281402665880186673612826089570794302540997429951570800694309506914137535577838051634240171446864983708374685552445714572327262644132305340200431522998852214896595618202358998395460606856078870592510856811186981167485639471044725199916787151553069015452340177188125417372036927865195677253891682172204407177563476731584838408399157171521510303981782438360268605982513343007634367343754641384237416086358762964677366169421299646409887131092247986200542078439977323415618051971891137145644946069238829868681765715249188423584801375450380746106653045696880819597657022078601320975124997869172180156336377357631971206528095663847231433354987564276342928717464409726546523484797254546370158207869054485329289001651065321109555000251077279460529028779231640413965408890719700572907345548770682524606164457658680817841265473359696892919355563575793103510302834866177786724543883446115228101110970757684709441081906873681089987496992197250630188836830538173253185444236330047693497261181562343907985522665290414982925344038138424957234959605031821081225094926915871739844254480900724818892895143508597779441177846904359372982555628875140304506088977553254809789802945375895272285217102430026789285441937473865679354895845766464191939119452599894936708751809470982456365833917809092882708691216620817691796294896808899880973952930966401152768370071237903964852936070088373316654820027544680161324031556522484418472603944460009221575281778771564467165414805274438487642865382094067590600960549096005879460520948375018633753192580574055510504283867355299003108768947330731858316895311779528761108178131108962710143835824937216330158403747298241250261033627531712407405043749133238990109492641169661092586809259713233422875837426579856028581796646609082885462848055551824720606292293320584325570978770152891895422760676816012315405500697082053933698127972229414804423057023095547055652045649693921380644066344981395978563217124576993577371246025575204080104919419964155436550037175133185730053714204040295240347487108918749496655573229101340120148891926266057608141118104621152940670452723345256454043896755414261857708588888552394654068363743143710485778623467977329162235064439292282175735439334741833491869764874033620394909492877243585259205816638819764638347274497199699140514183066611101858802728156294397600199002408012756524992558806356410315809148642274893815552449017110202004544988318422934699389284214545499774930542093550116659907258439757929765557363375215661195177721540752259333957506297765405597428875778430354027994433402226343440943342234361753323913654965127700608181403208141671586675444256445576384797004043980004358359424045502633741434737985032232170898825412911078026373342747293655109099692241175095219134584399266814755230058312246797320964764655176510479020767917511927058727382204051166542717184481732169362808621760786265139883169277149812267804972176372119784022932119224202065566107466027093137584090732501104171769646318874640024831584574053858149617328697818613147054392526030602989817686308695274547163175196409083445196223174683819236385740642500299400442175428025545903899627655266356114084512277745168058872919476574223636594981140047490104138608500338843056391317232292813693562953860203822328177326473201591957017391549632490650468361394416809066199994067481797741771302427570793551467233188364198614326088585355956981785626072603996318873018009568742762909221370654346294649217726989725636805771704111903271058872018641927891142847424990145186436205963350114144378635021848741890777842042141313890709535281572647389057708484988865748621932993811499211457969077906883761107233598815430622670566798569456434879288155024481198201310011094971061859845383307175867196649128574102671352134727686187832927803846619716293997981811968006203141015848089975949507002213390323151514160532113398353048074403738754302250656042412917170044095472290549105489042896628844943245516151758241141770255206091134513174018696851613668011634784578168427691700774083119684697608563401536243982232593859948905835917450786417819166815793833959008111117132855469738984464197146848057818782593425943936255419658830804917590873280497729070973651125189151446376999810450688249061424746019285266315058065451355376254446827307679686287833814696199297424616763726488972210842266717761874597207294882016473559105606810148900454308038713640732053108729147333595869760246290696072345838244538628264463414546697633319279800971747051837104891122403849782386729557801915350846355186888326637452342301396487355015028388964381857547429315309858796217584613302140772968602883176924569400271498411595331873223552171510959698963727650644379257961814879939947809508706731252418759143124362050744276688264966272201398284128074409635522106588793230199395028567626171129163046798050936697141066692600527291274367347681031174530855486485943987183401204901446476398419739322209787279694121428768278076350268250156327443228544376301660425666854448579296499911622959562925564268478162291852410596187852801261941442889369405293263047678958829770929057404089464159046414639793878935126695860533087990787964815592887286841449056230345829222741559525671780115909472246625454847490539326928235169080756489708241941137548698005007146878564018375666026636087392308961853712768145779151019303776586963477049786772563022210681873221884664288704749041942928378018623563544606967808121874306013390162806040666145475142316612474245643397752275314225230062444224291224232227593204154023818247158984612762813110621886362285194327266534062491884917758708152397316317435624770697248220108595126527298223827616707764620153549487259104791561653801023068504560477374083312964193991764555034161592090921600616656063808786947116674566525562383776352571257636933841338484845515031345276533453887703755745125093095752527028534660501219695916995327365150727141487203557879266365057030161497563443544144043393339256814001301088174305507123556439759653586329532110654640631602558950136818915821269563063750507362992295664354525239094194192090823127169614002449917445414728848050734605405304084685641103139670412778074122747739753946872258537574242050398779229336267104956847390435124432991358198800544042112624143542811445129979187282073153769189869525720821476970568832000156077709835435908184570416917340250720861978703402155283399350916800329556761063056249187344046230671328493111979304277431138077646660497399012143762771301399670534471978365210134606079019138688430053164266611953704800220129790861304337327830057085451996087311529976361904471874130982919911141847312537288498603552216695456145614611084544379145879370002001557076302935523458238839902128416611310812421139792993880896444845006738699387752778680329429582542684827726234665150587994033439787799422990074928767768066554453091946165489848517743851362873555560145949771909855317610879827506009513672836022085050197330262865416663309014571441310023639654061197609440256914188137280528106306619411672794772130301047606752679695373593641258213560781341350580978635315308013693073728996211359758141218001206498539151960847491949107858305651822790060365132750187912617331187849876080041865300624069580022949892250935559880357189535120721177539956719111276613792611405080087031067198982418488967255237253717373504165184431502063807374579841245551623005528625809851458580727479947974627784515402688037290987093553509520566961134580121412451142174165315794393835514298990798223712032522359197522985254785009278302344136380883174679216750057456618376470179127988258785326419909870462882422885769899724656363144878647306641313800255998897847514250388509138675183077279304168260004572016116093290022265486854849674820866453509420034345922518663542578796137847198926367244562321861406819775321408710151357212610089169333245285882261302824162511643436129209837152275941129936205743605020971941683654768114131732287989660102561631692535911858487409723815010815130912079884711085003732478377133644045680059961336382847011596762223759424022060772149392878062182362957025324399964995014038693682317057200317108798914473634147248830307349769943336319454740094067935194216057015952689319823580927161519251477386644982105762309603978198591811951947423788742237094725770526165320618593659287064996838843072019555926397336323349837392231619491445040775185550275215636551703598750553840742386243961042058228912052069393196903084981761957151082568877200051190408510833137017440592127060155266844480340063880739155776710756426010539070965907054029380594069356203247787826139422138499441512781624093304244234481672972842297050161799714671280236162989475455010851492904029578501062714474175685971801619563572428372366475852975079096977475518721144742327494843262698815795996483350232688810275849481193886703244879042597161584462079603187735487982621796698791647266920231547766287637364022652256614087286527971543775147816008204239030181206745691457176026184169553813185045579533525335675202800008900170487982201325997507702386682056040866337516715601818559240108519598867391046665155636351543410296332161052033980920743960632238476511539632606612654424243404444507731988488084207617778607050994112015540939681485197801996032558680496489130404373714873482540909928658698918556758201861190783163403541485349656870805249969596017530759384426399473334725415825672280729051086016753105518240048746081178376587970840642183052020260014678669876621064383630506022687744884616007884511768301101589146486029701810681215914584018960719083790426804678384916200333477505704986240970040788497770757582158731492754598663095105759271328628307909321665529722034642258503333790228521376281773367242984545550575482218911160578312806816423624560379418098483036600282090137077367282050936726593534506109688713473082348427317988997659166337910750505204303113899216127467345790975245761035692271072806312760261925297070518823009178732692540644060685498581693979501276983114162351525227261142838464212806746222542499090801322516836064189485783164896271821104959066787946202484452793226831848828761284816713479585697115665058046711957628858586685632278714695033460350922576828427932583998511650838715564351344635087386849126076553780155825284767551329802887870330207751808087404473605054765467151115817050171148983665232459273243571149508605166192466268236234402795916242774574354258393529624069028680368895629484468614192541399808014192952200127111110586778505540654028856677734088902125421848659349956698957131545331604434861737437685298169296931365820084032858052344898774484175443212456076378162865251844553627262984167699423551141608166412767780351508299850924973124160478125507321385658123103572127397793274836027951632158953518813655017922160342170277293436539981998436329967543207599235559538436369243072489302487995839380212006140133295336015849502942226031381681852060489570018257552344859772282973438413563076949300975998115590837423215986325594994012015468042248508589784861053657736033379165284048409027732057261169720569352781665014708902697932531332764918031463266992230065101653019135146406966458542095682060245344778743417231651340023817438481430569870469882011474134528446151512854662479671393218742674470963103663692191038006958698503944976695630110819840671971939730906716442274228792498933499345227235136916094014347661383108822602498622101018246234097842770018664401888571819459397029486336439901421801795941637964518008139058559800275611635021930012067002676241487745235933790851873778822005321563921192324650336577125940783618856208583463521530120039099733249872234643928097374164822496067803567166995456306002425335245980860248225423195383383213926033938170492832426880103483891485884512396135460968075804261248666101781074232725692704907155896329290976239659080135380663741721903642540147769440419314085294458593827685689061752648419561295698536755734709711945413099381389417625608618519665701060194520244457034452001816584532441316308744313223710493257390114047052142213691507574997303817002008862078366186627070044751242976173090164639994180506070442018228086029093870049300824442476701566167351648169493451905577328066273023355730475026998793521724259466420776307856466661062887464518272800531775195511965569512519797645719807306087817375583600438938761171357967775723153255399319979442172106922120351169881956802597981110569499280351696295716320724845254870625590566553246373543841275011784711933598330591072028708600240050533429400297990241795693674863256220075935625928804250097785302562243035056768362755651613004043565410740739604434510744922281401235885566626441819346963101755606224786005197710839780929233191820997868203429045189132687605367047635457957768252157270597453576781162935964971771489761963389305993648222584564258795178655699498708187085057383089808114581687798407482885021624308921029116827657641802144358416435614186876800353741562738332152405842167555368249624556692068588662829787336168469198781216710257553511414414861013575633181799772880906927444661793991450679194294793037055196989128751499320972211995766291100266165316487935806131372956743091434331980614153458590625522144376275667913131874803894839560951518887646704996998333655934345878481062736011381541998649753234204367384562834047123640330860509838576160650373008308467246360719912983929994168194173199323991697766887213000646042958671252724566772833580262076248476551380587820228182925726022144785305323026083747448542920609438395663441494830933031739642150894886422815923046007296621735822962880328789520693721735807609776715893723046306455220465631183057830197794371872981853614041288852585600198829268532740746851601499319384212932263339726315478878353882382456472758406395955316177989786908968915109032711524726459866248631153512523070858450160681193704603230653612490440675706820991405015395255171642393872057899157398685009027251157705941650195825051172409240277597032600729651635516607422276390402410700423348890613938166711672050470211176927502766912128719878778157808479064726539392761086547761195124999223512850432619156022033359759329528986839597299753080286991499956480918756413224979199753842497695130114468043247101305573996771134519587990026227259077084936815709145009853643687624993476253108930613726245228753326356731556164510694403273167172662517952279644231603593231162019423421129758043845688795343206561248744414363108781372905059846522986258470801842711943988266005347546869947447140056859231550447797680762765830001611538294196299574772290695099245560030582560725341134004861321834820498587438675148748965269980691380054479474688948253425700707363617992740913103670012577953679875590300332759998139054434996446316457833329748488440403349902056110419503319030488057545099914387994856518578715547581784802944947974388078874641556826124993931543735504531716255153120250420942856228898910829080123669668176017922749637922723962164252473306512197810984726983343650380415759260594345551367194052695841031140623910990241359535362135981753664011708833869564466259572306725233073092677681323348581140748461571674477886048596479979295643395989651542456105937251530361002669827997861924419161145179988298104087956504270961717291686757441295388662514312249325118390909517670469125030650770918177995799446750930709978379421243661173066355183121099774459831515074215530157928192290785345882583743329871131819165177869044524344510627447667161996202752787054861465876573532440206191102331505611692170898420201951881228598710612731105718546161065482832559181518766411268618752149894846038590123003176273135213908531071180752386480378809025201118466713735475988225133283643171348210847480855258537895328684865602245302022070385292478640212588509538718682259440748863639588116879212570491328001133418090611075698541480117923049239117900549922151080484609530899320458638248123759471562924388265271863961366774379823419599370567810035364046930720055269621501714075239705145038862694214214593942206792144599200391462607403347161748084731539544387158160967760559547842375464229200807752272710073213694071997630685525736909625000766683837001052152835230187115646202388996868665230913109329472216548002354941590472464751378813803305042022517232000321324118901609255353405516139591258722909179767628110474597146638958425080200268805561001063422881085784602346272569130787867035225197757598152231220146943117871332928940408074358019818820675021803989960559839829445252916864895887468728763602000978325172390428107946707542797259757765757045375538801717875805626319752722904202120259164783841975176845123198414429965681805180842165603939600048306946337267261616981168945819876006481986416868639592237417518911336292812939921628439115302443483590249679188140104505798625478905213672214741951082377142743711014274699577887711693029026206258129809191984273809826362238263762519421202360963839799053731643241614395404465066871244209003154450173124433730388211291261828661486168782446188498814381537954256068783225596553163508938318412618331783712262777443771957257879483354004718664306693057736288439200387502326050376156048201332178489946702366055554875293373104498027477097602810244001911306793970465447862603537811250733250550639287414452641921089423487464293742899082153862953990115279503034916268429152061598942774625649818285745812268390155247636009908063629446444080016934779463658935036963102196929493278490818260462520771581642166545787793563599660466057293534786404514414071655322172812980691760627056040377472522401726868235420012179351366996219084935924696650721338255725350853960901372790580919040186795536306430774695923771276632805658371849059103255420027410662826567022508008234931614889683715786597529860746494786533161376309861719114758778884470932952881955444646606874122991886391006109616020594555553729468503758830509293086634739752298502633392540836439220721551874488980513707966007503322885349392371432401564376371491497919314660659065590306848485241929207007587538251443150434977536668030796674880575716969263149740953953884528185299144923638142627700668067104945968478550248409548335640368906125151589488570027348425515996508005157352758668640219550106113189953986784572456647530874790893974924383219218914704461529059855114738875821201677994556547208463875147074102495238151589103433495630976777042451394824880969525850297277769723306111265893375708499640520086652379399397048206260538975668083410617553672858088551917885470100068546477826366905976353136794271832728709360408248322102240340355095473698049993883131323547559012318218590305041090530202275287247812572034123137222898639187254217679601977419274645636205718761918323651794726766604491898477914543289385230675895982553539465996007287735368687692349425463248551392340905760597685291886058389604185077279944251096574213104065734308732235625096852300163518077918280111907480993006409492022552971330497537454394065215702110808142753278289595531690776287288539643967534730776751083614454600607141969979495033651415968238626701573977158425887997866113152377702911397500385476573352568135876157453006656691387297154301398862555027931784630957477721448088024817925413893919085574988193562828148565094340464128598526012556456411246577993863054756029435735216110722485638267016596371478510844575004552608420423932945014854462698974702788634160386865627099234636838834356285892635956147883806296844312749771362206664587248369834407575756092386636692152400855036575563070602403515204887468669826671083544237546899311093419579326283169745745225546602659504370635427706386313392744202839133395215897112058190088482102620541744783094219935947849667103673996461301076513505574887871632183457806628321404650666178852451309988142760564045012913608817224374652950051503484427073627365221460233682505008647083012794077834378224931213978745072787543987256038440281699049303179944896800904224379340718243096807214875544867435491477322925939853512817467375150453301520163028325643453600273501406794998811057718893912085955732884808956100957698921308327105221908011287610253513572879729002472293880802315525061587000555507547568226790866871921311252652449883673027002437803305406544889219275127253099161234965184204425907577532978418153212200408308609331643419729786119465690336706967336847732046451447181680702525460161867155355638182437249564992832431825606059549983067676554113651859249237032035453758081752308532887507029923361005483542180516512541263434705154643442604103011614755015269317933632917224893528502093673545000130217124987718918334504467092826092343052529855090026182377441450873010143880457195798382314339241495216662662269332120719723224789013042803076530024891096973239712150480039203801247625244095843064806337598088612021843372985744777871167473440628358227393804493668937324162249871998841070799419212201303915420669263169998109413270122961811502936722382517242665097894435501375418388566699960729250699592671162399384261101135427264827219834521502071480091509911454360099916892825779198500996029587778990002625228969964528611939627638449372191678345002230612202464381643685605723735567837369852076821076511013710034463384442160367409686155098812693758430961724494191135315804097473969859419984111700453317699391207565917615867442898112143498040536382894822537493584605595864174001957197329687137879503578915970772162134854146794092953234537632367543496599745009228920614078200600238658685753952006551751922526533873830613001741697622805169705482944795340199815549315383587647872212397417366787318276916353323415590057439017524331978291691992996095113261236007374429357683774881564079570104078666043510665090875777053336411602192999830211447576447323776753359690141862606470988490738658921548475037185071755595477032654383982076350300293540986521999734179143077495476065472225658315220386754964654081890040056232454171282307530731673722601307270841198857541764107230632920321503817947322825577940688442188281224518985693810127572851802790998186122718979330511768979503954704437279434315588102903354467412580414236229204885767565437149300273866497700675317627482843473219291969474998410358309523579806706970319463535111190332162252175007633012026653170346564133871062309334774317365198993600465620135717108378473317811733803770393012700856098042020023315102203790375566965426839817164918177811655268684555849761038988294214442854928366037054175944896175719850841442499594608279436093631493091016416458824321923009090285066589211870138754140178810053412802020967306011615855524340870043695741087170417536303703028579483610290991182378940341408858052405538941559614562367537935293819578364101407793822367159624523370578541220510458843522996872108384341513981556816616399658614329264036390686137862524311463139988957408982203840989793396225147115973665869139995008550269624589804752028126329454348343384862974601670812192876824592840542445876842534117667170236464936410595960039139856025717557927840739216743503285935350432464443202562237114200880994169757355553730797763901037573137987740722320466414724373117491354993834762887797196033773946147806823399707653426734478902245475521924676716796237465130009139716341220655082826005743080525688776028531757769454839886649698452899036805469372377718382172749303612537025070542809477311540729546963639551352162227559227072230778683952217574108394251377712422508013762690624024653665177075304107477202173197924769474091997791288572885886140760285926136988695541753704490679827409946202668325036448398292950251953662884210442617987848070233962728300760096518553512672592975345579369241601852589159140200540264857253612474260763553086083278635780659963589984755974778871117001867009284364904016937761623254196436143244890631966705752237248234255363696807435706036363016841510626777836778466410977045462034016766615315446489390953174434158129222293261265381218347116267449061178931934440938589359387981022966916230399519063443314554331272213700989668897396315093799978359562151222628383617560006971238204534714104373239597971510182925248329063284719826163258409065100283045052010293670013778930285599534918322533354165837298381305847643566834511885008693556644935337447859675715962375659017757808677943346346033098079088429194450235549741873480942009464860829756145096242447241865728196870838945683534205081934088582144244252076001537447576551309686735075335968534607515297579126431908264327767696239859896903915184986768305914497081987579275112432156121367398680892473704353941215866155139257935598508399958296131850962805739702934616288202191212712875556387965639730468437835070662175813653937331739633275687362592810969446015469148498550092311488029884978599931953135876678691097116925676024026548524346507978889930046446915313170687844174634240515669880236375317590061537200007939265123056129789991850495115748748545986332214951664080677357988511997096244343374815860720244253809317684194933965756663750160659602901159306789974131175976825480570076995937689705191601996541656477624536318872466862546440332490643556346453450233510722383663657214802209480657694300848870638818070487842838516422795241841690086141728536894208166501154011768806313592308213513855355521962305877034925672834515376912700403303164553621853742343568280144206142583186096814676733090982005228832370555081584434487802257553650749411215713629659422992440136038952936169579448123267981419111507161445720309661958397324416942855304957873418245656544168236298816721853692460230756708629119174305782889760338228926255724289522674557053568854423036970837470251140725084793389413538404108758253654355671400602192455326038545847896002685345215189945988160092505283662235772197677220535825303690309847318430099649095339675404370976892651588488805749700066499290195318720381987342935434761434644000590914286576936429788297502885543006500801583560068312484866083375449281321792524965916251039588575372699142739973133055626175283102212156212069450224367031385882929995064443665219750260516811041329000765742176060480039794747382156338551888518584029290882411929981911335348033725580784717454119714742951434877029967081292881588465935330092544993474335832517375821033091534151558952571224208694248863578423810007698612845350509559693570354867965580945430358608165657204507129627673825975888905239791441712086362569020583120900375325828590538058370715921504944123986798150852057149361540560422428434340041707750003175490616399354280859183340290613700136625469708603022431468286036876976263752647855367565063560607331200706636877005975898360184238283583970091087967425288321110738712149303502302486152635624595609309986691929010809251371371780536268568396287489460609433574973983707029626336032010054106492974951813501513450766644327333362799469115446905408131939427009613047479478162541505869598670166423889036298665146446411267101222650659254839189726351396417613142215674873974706059498658052007564264469328418338535028674350720927355659631167414101407616475128081551829146248768533360476503444646513613378718172373130239748868817650046208586160157148321247249501583679277979226110775704036556347357799358915720453251369897639328470940829799983372615297221801788794429179424835417205644653343035981812667825596975014366973385665324761808780331375490690719669148776723326985178765863819818451405468301754452266300291825921849714126852754536482714107425609819222268072306608730514980891800889180014006500468657904521550869294082197775395367119324945676470199850887505721806153044094169582922026600394240995244081401359416205773511240139279966802249784893197952379454353337610518708269571358407739599499910437252541185770508667528148195456420908954529256345111913195006631865515684283061796506575765736126431824910141828020798550657076485723750792414760321045362012518469264388452564961686854959838661248891989793265842756374361161588039956374739463699959374596746751933845884055485777164150637112452807938654129861320193162114966795696934699106179467355637917512287257182786608446741333520066941060075714900874566010529975684319410166644660042606246209898129843560545433882908151494707384144798227179791141939994516109213460496155692571131569599420645203271426826821334701814061782709772330067646041975960171244435038935551964880049454478327698265813838536936163403743143963178238519511091550915907277941237700152561018811058367911857924476773769191176807685551319476890266914657605969634629340896231089927248232859187230528227325404559988979500679933858350161865528443287013055464735755724390635312255903108560407278402254913516320948060466249189700165752696114700718209600571694993407270550634217249873985280334103383526381628562786605772755596015049277434052638304570446512141141285442825298004603642531986075344833683863124554154333333783697143777456954562622946491690546458146111837324665747937889196480557404659751161115087963836178474560236003577290510047742796369222485759277592785064794913852885235704923692176474523761585216532161873869129564957720931969049326267330630380355335727170697689838507514169037381811722893769632450928004498558993538678433751142576885410758386395651150531099168206010006281312753035953643225563560224389044497780476745956358146284206873393904033769517058760094420646842638802701332526407713728703587386772703791137674897021055357354210233501391088297584020807746723645787696086361864342536160491562904752518609651227364913333897414051898690800063443301817763217396520899011616764917322768633685211922111388133239508540317412916699473987876373693548598427554214129444824445905409214010750830620206399458017514396227384431470186304016712229900972374893731257542330501158795516914802446404161370291146006170611042278735170373771344519441566118491135293232767709262507340488210215012211138071534449546217159558138441780796278939149419233606514494529959303937109004571074416312367593019955861453224091647138485811858962577333173467739131468622654567808678456672998079146377502415014261255470676088059575612490065337234250607125410961579741728435616466529397803863314082821138179875656957702925632032723220789477965184534801083876223370465578842509855662725300442836491450463541154387250065824848416862839749519760743951870948595956089499995065307904148597775167779298986425544240202092461672546067708442524921422963290018223968556035228288112303380835423043744558348425258143880959572443903902486142786679148975956988891003345112928838269902957639831572879499559064929750855462447364415715790798917081061401648461687886233835360933834223592579334404899400586974842449216289436215567313422762800700095307354544451769468264476512513439549850598092816075810239254469973871423321844553289114624421982584514861323769495726207683354796451191690015651348624977079640742706714959525541417175144432582329129864049029382290540179291655267153459930464134020524077366195747779983123379343060240553192284930156017420711253264258859167872521103366723976754697133268524143026516794080957348978290014009035895434528478178449272685291752059754726590930258639534373853039376667046494091410953846592434681177351697082841770528989386186191315996570075593085729417472038304962168623139239584109317668125802757388662467041129396528986376122716865715218591589315171684501573086415651603765923465187699174165688179771445306243129849722160417767021125026306451016056549754369384077424242386132481629549623200238161528101031153665539789165181861887589686617298962307586727278771567761109509066262556284322214388264846432898990670626944781245165593860547712552431794902224660584914454371842850146604496994375426919564457936249345965629722809326724395982269073860020298372103852617876074455122672483243285281424441305328296078383871838674625241133618563315730855704271540497089932648959110244558502369496555547530947733664854999077876569087809490809719722306271670013118780739242258081244528321840279803831913276472367768389290992347731186750094196823754475807206143634481084567682660581322281054987859222995347848180996951394655277260494190182836503163079312567513820687922194019662048394749455449915643056893685457885809675660325966536210120369142045788690064082077161060886836136169191622759133129174835676931685427369093831252406576315912336595247834722572726340376368963338859191424434289636306062435997131739355797052470310843730313576891491195823645028546561635563432656911534429008456554967902393817444629556495824346362253736582156808784303879841734249809243192760719459596978491218241050905292069378955267358762992926112153981242615320969351185715846168044098175713154623221933856210862196106196827584060749444362854002170200992139521517152525965604623734043876277076697684710239739303654499410060640139525376281367845124058453372508577555644978367504417791860617083807362745983458592722243199515442584379141161822443320331258459587180299173088216890818167505115445480536308950907255585013613829212002238044506551155417314480508407579965487347005016367304680113581032637079246325277682181235158756420889698269913806607516351833244105696400355027967765525298336183517616974170513904787822748671529450187459762864063367757563966538064734221695277370678597419623730752393051771441668118786928283152723335076808415150472605770677662790705887522256145915594099327421307759225464526363840731942265878096352520884982876071164410826793557283040015802805184479913430884029967438643033933901477691364979231799631894614692061153698553685174893672607759978188567038277222664168140704979456378555372163967515478240804985909961293659144369305921771017158164700492671731912609669221573242328242880731337753616307076937828123663758141762351562882299273905933764641450361823128925846459437469532225133736809519259657574748666160362912739138523766128413052113339926190712689210672503924382893983354895251470921143791107695953192313424830655399208893300549746119477100370938986965235048329419558564771952855882898914824257994128988238029149610745021228138107659963652393328294044383102427886861619140236543852668142013976812937519214283598381267337252182870920777377868703981095102898041635042543890164277346419461587805503868678763118740700938114426093409336991261121957397921505029694535700360763960235264455270074016232508514606284800562564828890740231864902280127668444998299490533872464452696341675433745620826149725152513269466813011124331594692595586997292702692879099495680651363320405901064548235975633404396803435438886773236701558453868574684616432765028498333567040955696056899998724911576777479800451091959993691151672641618983138294586673418795835241767658149022267744008568773020904881631095993571900564226276353564648451400764657719301289945231779315344526744652155555296069537959291903678728315629159283805080913867923224129228307488994837650785110243116387797793600598180000249720191212578218311869651386569692897095413584932845214290976438798010055788716789167930891681523623220954087551899089247807290728428827869429221518923567780388207288315940454624556375846854742485855400118951052409224498872746590033696755258367341305977161363434196969165384182475505845789176042924228292487341220423845510208932535217470702448901319822214019209132407562601953756193550943796496536109527808008279108208407830847793413863997291652674618243925009377354575373737357067032849541150855767264232761850023636341612349449521435077628449661430884741524088093786804841364119760710753090040806309556028004706808672497598497941296901708180219517190301108786153297181161917840911628804788923427709175095673972938223421675525627301228635503235631499470966608159074284593484714633612334684912898635085280802355448798962088542145245622136493540878733668415441012208612452098444499338786940847223024852607579457881047646138723126629101321856471168617205276157608304243952103001659984231521300341316606302612115654185699418119134284551992315984577887216731755274471857473445648636207065450105602241676158581812510064717569278801853804481372629217836264029625863111323264654956523489842275445474296647487025867917192208817689813996246312929033764813645825872946719958813426321853630400087926665183384504596643404990649484041345316366673945740815744456137629834160319893211174508028620627275996359888150520872566504220909233161447448529497751958019147947066939680476736880337056458898846108460133544125342451661934336599593195430747411658011887410632108698335091941822964420860429198861419164084389119142650493456033222299766717149378786345301162015352494067928648766648165271063438540625849483201612564653677456451363932810059028764358708113457807836943888451103322996632829309859851770899807738366814717872362158447931896868376996955977603591144997297622312746967438658248767278216740562180071369576388708080215665069252534130783928607793970380881179366812754586902309526793605563250020626141285130221664805105823022836431246258177742302998635342302576892149391674682534791821342034798993882879573525786089410800183001219523605380882409977334259857155491527103259928318889313054618787440872639296281838985053239110360460619196769276614057109758625184807450763277517412464718534576791136847650871487306252594997781855781302183604812867072215512859889545050306887319732359015172320795865058506992920467509840018918004679627058772305185299282749746274562880087831262225154327284236927376846840072244761334340573645754575730973420495773474471431902681228468884936196004167674464910655999597840527585374241584898981579020244455757648065241197274866239228265359288309546006128846208640907144874572294516608203502381627998907807030351435726735359395983027638744726885581739783463483361922107702514932988831951876628288173286621318220230738707170454258613438642512971416364488342721068930171635657095816202554844735908026972655494543800622256053553383186940774211784576311321012779090422189338437383000000182240467520927302778068480051884380941895861976614329724678987317010694550398792039163006273250777486034167620976460283318964428785472764710797169946831159406468031270088938427447577138047553161336491961066686660313852111505031494840004911089422026097895483876878171696932485751451601905780631985237465293366097137498096877598959363301538756312972055214657660925860636776024603030180201993453937530860671133029385764913073877051540552895237296215298611533734825788713989608598345875982945758307797864046719209620737327333156940049873458585968958806088695096886091512479798244890569951948930550399355727727460889738433954240399197342859865667290060627519887796944239076770648252071301878733198035126817400958752745050546733564480502716891772474445402492329466599312567476998059244203089036486981106012684156195413547068622248340540568496602159168636234678101355577151138583287930357778559030525724641828254910919623856607622471247815509172386602908216657592855484855805848651435613026131010855628567581361819711306356780447868918195516012445034587289151767863774614804634973786615156263513611286465654110206845495663141887487993295841266309897228617864365209631411257085686510630744139759699494539541566791060496922280638657079100876555557709814167173216602227574417667102085745475935483779385223715065729373196661401959886048766155301681973253202843240324610410589073429413904228927140823627820380509927959329868000280856349990149660542660432330349566065929634501966708236182348935579845084764892871686333700599945692541305224862226801703039674312864150283248911206010483811491850935135126193563061190326499943999129316352580347014891492088299863276642085724709930446175410623577876558069193187145539735533741248575660554730149342029837273769641141259827014954639251523783402402791176246367714619168744434496156243385833154560402494708975600133067383554577107475365347944456303886417583328700613282918868860048824863719191470093817044066532877332981576975679474063199454463072005845574389064927946553186799760501152194390685808976522781706988916787137816520480810740198335506280223292928649456770161878574172277009336570115820517113095135014058552464360568245330008452387285426130514699433297992648013015955102250344369665750511156018238714987347315919865857874660368345069679335619217723814517886581243176845587473447461274683885694561471507334895847205044889468990278568729336728092265031908702146711706336126440618937902555641294291480730721331646565230275427549387663436725788469916635981329630796668940933689239559292169361220114100230906403362379401191443199986082555850517620801259497420452523322854911356328775840432081082777586356715247604408678707047931301133001544716522259893112624234875101756750910366790964655091926727522492949107783024542178921576841113864600016748188452920027862643839206964947836690563938156974065856349760611745553818258738644716363082379637814117953999303154246236962424887293123560974280081960382143717731327261992264729162993618576990104695135635916692658209595807417409048583740450511406534792328789966040510632431641500675779102679521836789035070848764315629966523231589727104961154370369853913526876481288965584932896569751022892572144821420505788723237892220403930015788350821001464227381610225788108513092635981134104865808211712642161047887201481186522008990683694207955634771956709463391694870258417340615575902193468135796412913832661000059009808985946715927456366791537847475993154953749880974800542424021621208305758003531981654623507403115118348813062321697427798487039489199113802912115923587628474450302677599075837625215116275296552115392998231088653961695998954721868216933519032358295775433602355380432488982111816047216808342564244128191789789655492222239255499207550184652825444189240441309358127155957351266887203711857074519788593740757467223281079671490832720542640876571066383588046176099440433003271959814135189921443339355486188414293370970230323118430986002744561415226947967577879036148371122622290080280020619572590961664410974157032285248237010964518768906839327083936640787373537710064669293365404251647140873444625757039138446234845634847514216055250705590429136989205369069134056857890691739911885886715040902893796754646084543332393583097400600954784504696068063588967405488639803543094813283648101351262677426302630032656618624240435625833458508910946476463162790174691786893719474956292159460491007065593128700366855054666661423441574907395604865965990322052177591481320740327436048092482185992797752503082298343151912017992650066427774429662009521108911098949035586103288556887420178019330789919476851308318508596424689914450227159593895561525757890505137693864874418771954080250426553434248058917618084010478601639490658189902117769978738062740111209195242066311028534847077560608526008623907988237116591207543309514508742951577177591002442744135610928455315104139035642414140892636301274583697192857256906110336752401205715110342738298286436102978574931888443205231277341159771608679416789827404382381082554146251197371212621993447621491812589389311820326188291760019774261408116095706162105774094537300223419700486291354011726983578136794198175361394622752592086003939815234714219923750564878977406938629587626125635473615120686718275995430822876292037086174733951552631674836541614406148175692792877385038351358324629760762870404524870647652696815513326094450228733315504018761446254504936054115085308198568340370476826101054765437639560945035392869146704184044591564583180744640489852801393454503451784650493922221313001714089654317608056882926071362953728517249359094916424662786285462577028644907411484506816942987896358823834441711974581211881497526435809523640228478011963557508321584018894243798979889234212154206273312638123375752541345363232986710049245909017563561199656764971444980693371571316893019755861664374408888746649633334513161828841073790094804684846900347113291693378530391506228091096301108189775712774937810355249792809202607036743608533983880579463637529697262354594059000568324645493462547513724919026455420155789671105309575694945219847262752262521976075286957950471639884539217038992771918898567341147235859717753528031108063620179536619836403956720453678045767826506826817591293216395814886955147943812973916643320620756377678512531522030484210837371196258477538531889462664835188428605018891556513710761754486627077097389791023859116097268863403508709595857976937119849265245730933231103609529968953470678096746328147356934695785180283734563373069179143007804488568858077641026436476994114264773040817611832757148249188940984191428318880571042364033188700838194514671389903155251671441862718865666873238654586425754258605532163570059402717671470926769028734468957110910024144075797313412674978546650931498491481174279667282976960126300203668253539741118469356909311427069883200623375947226405537493169609576308566548958283481326658174929899120700973143573827882150291702402673170776377506072426190613553260556855318013130846313566260391881087704434282723435443824118242701846056813721738668227498529954048249303936364346235771231643412986450358372779826989046346355320886175693743156120707045051713994010909272225490603501163147322727479448774522024170155223587925322924180045844802903780181210411840461903557450224368257069656451600298749398261309498341723483172587395879577840803285687210129221973367582788042865137439670513970865238814179568515066190052917106077476064599320359223907055350881545052003320334677827289439004527606129164074144288750708630674541969597497219545218204681053146297901450633939063416625836873765082560672170046948567938455962393070772261965891975954070586826183130462497068149316576963133831565387927760001342511126512235355447934370883870785289100924700853498539563220996472156197869809982838662807895601669559665710258371779334793910689661640787267250612478755393177224939939563101422569908098916438509612195591097909334042576736927135450143206782283556995554660689462584359889186329316445931492605323196676202218946417824234699581957880853259638916777408455054087546937912712871250450688199145814289087470246813545284834696796960774844527942857871347337318427632621997035874262826897228741435182656160175381947674929589765207717634928257859359080617942952458461812056086638515609185574080081589330920717043214380175085769634330239237672821662622090531453922539282955093654705062784829748303850663534149015856679559733813918726618067047240747128627169809171268808934075463726645057568591631675255659733418538601961700565172675319167821472828543450554723006119606097495693326529599691106614405926320024973849345084453246020780249063897886827599616549497353334896804766738542687622577208329520626185127809580386021296800777780154631464929704834572918710707825053186191017232184462243249412056945923447658328889370055056841108982713335877438824489434082521991620106721228423911897050042677291781384390417410244000240785503165030391875868142318321438018997374964826196393485042519092854435495611225184876645051897658119216399165386869154268275714297661877733389603646567656327557375775103547421221775069539095156531331441543811715169125603181308243029722262571306601390184307286958059636385806311832979463767976153782558309599501332345945806726573845994747295684949631320357770856069028882839117345518883209012064491749118535846604515415789001343636422263490457114498168030145657976066397210617324811332411204321427610492539132920204383125704800885653809615421207231498242373063520144046878143957291565499786295945033212105995173817566955405444990549762439124317867976553951878095956477997446993135853636090180423786500919842484115047770044699827010923511881896824699229707215185578045887327852344099731651227775481860977100445314766889496442549605078578840613895274162107950789070210099171529133078417682688207735700766229421764420566457428722944731472318387213381018105558737247196526397506804843872174324704084056035270154040422572799443132041952646956321509475744953902476992066256302752712661778223383980297913913222593833270048201741350903754766553499070085570309253829999517070286232681932268579697797275813988163777171763758996255226752696965069956365696401654796822878443609365743047632432539256639707564203675533508328551393529673892094742624311948186531909684710446462853114452168494239527738553638242052979983824103903391677267373109638453412465929307324516257677678023468459202407115022940014582685362184670598046770994359673689897641683719006397458742493082633043956939859715633042793407838799456242173923864868373400557901380938738488011067895795465990536894578526424597636607870188678002264337058571384741434472846372704730959658480013493364335914315796661962494522626548672361647337680493747778537644126808866684545299214887080122638021369270285418521703317114631002095285116313967743760136152171250446765003395105801826596309471755880995552679337533138435512210526785168934415454404151124331785258143399235773896624232309077856458425660157113312755411287888621934413890793696202156523542046643231499887807854148831447918682031298302706312902687708912357826785040527210024515552259770355091624832761941197675488686983991300891345655991529480223423348076158145722116242612867664630259682153071218413779686065672625166524411819725374545380034078437966528720167723736892638584112773497963592309303215987356853412486105035391611982995855387990513256198473484433865660501053322554315447365775295560537569491118682982629637053286308853535351422447756981420490011228097321488565040720868102927836978875341062632158280141717227628267533371690574739402080196017500755279811469108281294841181099856671791511586203899834816012526528124985526125154792994748902866341469926151164267504013602021958432762058780540128503532173648539977394833293325101414557537557908887455453863360405104174647988711744588266435418816363762774805601222395309901932128669671577776664439117092402760024577516491749940135684683888041305752930389142028168579620618018362722435483935802293114017002722355668855220792719790001972852579054976024885349203280353348649613244987249690218173280192829122585809643364612443633100655572624383547628064298789051426570165761182776544382202621273451164419143837649878435506381899125988560171710035228563604964516517329919967240590232449241981397592202560255289644838614374077688119548622663620858673973790595872374751083223795625677729804213370570361906303050600552064388205580862485109713943610322463498416743591569777183249707853097592531076256900160324740790401137623008027023825010789337278074637813175652378552670518454988374486480218876312658791540393503996404326356746227553889173148442266990410064494544446551658697797892679127139720008357829113877352965101774400198650699528933989932907436130543213559405461221233222733676621253336797832112851101522473434878872537719658771992317460944271254617938322316581859371521155711778394873543652912379386916466360731596904694149589926876351092644983421132585889052996687202294755555029848967127371831691203928964750944916184459804702570254685493984795365520805323484567885296672870040033008858372899585185665457893870364922919831548129251129980660293716750392520813419474914429065834699746734772162018993148333461917609557380004587256296360453497298546277210781939132599025701588263247390933927586282900844266525910087205647247267273175364460618558089230902582643345275481245844764246914000526819700572488437422392078253886712883867458350490710831421771291105185468741651985101221236304376787215699458107868287124220405109684343924767438189724705374818417273912401851171726412277948404120548274312988616437481596633073633583641466339365434183219489719403601574902694733461725081591341016582117018181004499702041141097339562895980913549754653037331108061795041580428200147153150626385395631186282605534821418539015883760972746586623502425477047679930603044942258522981021805665686480926206729960678373711669618984210258022776421750732331657302519101367339555895952928171218550707173903592865666126300973739692565876078623787909580752123154289069834536603744553420316498456654115885228490331514682708578247738851484986275818035074428103779896502661908691407730068624084990744161694896464065396446941127312451233535792534274104214002362660963404246645278745236067232598463357774367160768032361665459213976519785181796608043639700338929494403633898907971720771926835269457139458338339258800772501365123246043968937529077236272473868830356626387327390553839699757286514222982207782179091032943917282464758995262028908204944996005163823328719046074691826450782523297900397062857120418052970980426199188563294949399995315967745012122581212494270099253296737058784805689170075354735792029910140572013050095508608484576845853354330319838532938460309092331592496274693928057936553387134113552248019509266593100518306834994340096963303339472774662488970850713165882847602306048289381526762871480049441950545868740904252607531906939962746635790504735842246407275794163273808489609866785727574721694961818567476184879276842339128071873708761149651510335061291003018303521418555475182384354771151936695594814037054738313117875340069767646742418372072683210138070127346132093576712897150734691872680354599326848533494786500805397321945668672903820500805930818856243719468015112082890880817108455063752792501517224868133407525506788062021251907774553373785421317231445093967043657859186868483485841629037529053959166010289419414397082328059453998678010160318877198223497670383810890316258990016062598371524197071746721627063785955517438679387747997302136810490591547303219479546544660538717776324346669195676423968125895399095083242430575289790189517340894122047620390657797349578426679801170706207517325488736346554235197389910709644647040656146390804086364305699370166667625246245499212738000768851940738252127779472699240335474825285776496787294538729878616470842365444160006830106911408915268869696150707049086196656079089713976688879429711019804779537915620404828635875652811987475663119513916145890103257983017366893965444912694667579114716729901844020650847539976977262006822694825821565900183691333368946187962745790062346124576960402628138580250076789567598115663927554537069594760590914700011569007025576988892433796997295238959833699434710662092869163420707669124517571810350964727721661938413796947194643795137086957790094500852810967443957969868246223343617912867190822422691243706356039523677031792528025196346133556303120395014442016988471876894575856454116778700596001723119356827932757322982470182203610260993483209583628743870898097429950810387207819066971861849608002397001101395485789125090250009389298124024596685107046879771094159752130820035882999357862930867985130446233781206357111091296652952503625537430602580620607323479773458424782850594650469790606453787888294998096520212185245404832585844592060702477182259262502760891593057865678858363801049178311881371955008374138701257317437144414055076403378688129968696946689150739509495695854955046513629856715852380807961766432062135734360177001104699555292819391073493818735812129731773698025053331194971810830477521953464490383788826042163171062902116887532139908872708181943441761011784672260034122539251753961466282846413765477525696517270199758271155755121258626964657423501153373722228373055321884692454512146782916259640621386829759872807318393806839416771434377067095994415581120963209181199671328858458344431041839259700668581491171609663259069651864505211913015977045668904477598398544028800623294933166063413225486186745897680708468097412868638933510144886691059810717944738985913900486783564516843087581617811235703220416820434219363585094094850178382082537538022356393087413045082255539057983575794055532647084821216347530835170576823507237093139056579337652517083958567490921844626016998487018015003679344014565265861872459411887348179125939476450698532671457646113291750224284322453566051045721542142079725581089886868368041471394141199726321886650802046418547798990894594941310511342322630079305866273042052245071578611708688443079388274864320158052226608939520008412818172604666601877960798962577654745786799189854137797185126396742483865708390274569115046211874289501635035676047485560051086276910340805515943828615504232273789567706778221766887746609889968655293812283360513077426685546878643021511513730302613730195282980597301267444450841401330280074188454092795686810990485713266950715163361974491877852082669209877519386369673735709660082545342404749627865927520741917433796070777553073205647720943120181019641851073877241713302976274180429931633883396795952484609754227602959064297329243390432081400662132192461437845706320007907361280103772080635737348248478451649380760963123997963618380754305623484705294120093226216794789621556223781051023033901669019382664048784403669335242523996748252322773810410359104049623952328939467056415193733490557952908838635750756572007633659291754287299043521463503364902035519412150011021677855079355833568211691229818746410040549223402114640925509461412584005526909304060439287315860064545512284898756589521444354573755051276616548334435949666689595177985172673588405059300167264950428815463771529900736652471146256435695616035016142652662751954187865460352052923706472025727144373081679535051491392106510159935091989046332535773522232535823287857176976519182677732698403434646811738233562086129041842080020736560106914812930824395757868213289566213504108253913074179046340637739355734905167636177983778127962113106754719939744516110742011868731690585645916205650888738293610308148405077224965968145127285469591100203854171179253800104658547641317738501959138266117819701508371410718995416778137367049954933168326910741110376784585526227896402732226828787939543738222707920339255456249685023113768472946541940693359589433068650286141406278719775866910016413558030003558789285701025805981678890087073086845521401235838808138738853640695166265032978357081181897967078483222582473279399468093364399852237498882281313232590451656045154865877863185683258889715394502995593701354257534037288198364893595783645261599363883124064838577819810672099296127180564667047126454710867661924698809452310224836256327524320050455154292033671671459079511916522898879524445279237410880136703156077473879016580449190971421737563865230884305882209513900890860331726032902244936976157073391304440572645464232380152540805375594349348114306264683376411882987943958106483010388451928885500354977363696498258427993994718863520731639379826939151529105583622407932709588567264304977171522132220144705360047171113166672855268839061464914042675900986935022305761438338703189785357804474417802076154443143841127941150163081768380831770856836271568555472211952145577476361066073530861809398584239419318836310437380978535712677676977295960761178858025442547306774382401169522285648682448336332237065684373805050974230104302708900432046398380578920925565448865594646324729295266692088899281312077333240232647188873912324263019511353959841839052451154923425040712942615531666741637610198356083698658282911791725375589025295157946871471754253682692201685025871196739504021685640911233504241662761164387347758573218104110983029859266486108541046011545371753174042225033838426964725254642054983220005982118232479951292197513066841848634588070579801381261204513802287230398499584016832062739512770357190583570601190540680023289275663982098685475733075564708501309727303797451822780282181096776382328796566687049207913432479297864540204469019929748602046351880473233495827831477548342432753249925000465260534751292723221833513218502988374087894463089865044674024256959235347354413048872498461882366761134684583430489388549210338873356185621578878847225437452879582767562797229094864263743660306075090780163481203669517427153755709219833255830259207105655543405410073980536043508585844976600938620869905667317273692207803844697595648696604530057523182051470339602400466301009875962869916961601982490024242519742040089051415441260511879621428007377456691789171749120039945479779358015034820537271815409919243797449467292832784511281096603133933065423034867394270952475275118575050016800830723103903665634020643371189320349482334967875454715373781426797548117027695318588855299272546961316506596538891366835137756312956609175661568932668750880471068676154051586182339557574154674322200477880128023625234679070714986781233044552966426460092601192357776067663712538991517483609717603106555547591502468927889906639248855748764239555378622646958595697865939448069514978696843877311486200383176427646413896186144097986391928588013546237444442372276886317813290884937550005295983003301459752277992707914157353119022127806555088331915361890042574594421014123927872244219655339868335205444524365678194386561154116652714012863509063110563684213508732184273342097697538983146512164927190083519011004058354403174291966252019028916251065083441875144805736907645910399061250961834723255809767028653453141169874091787498744194242534536493810301991172008577068275513282488030494389678128314292618254251337622326878837400558022822193795020747432032464780660234455442352040687241429256031751581942662964929609354117454211233456495501651426857803626275863986537151426775577237134050780063211785096723230326338852274184043064498079359622365671177635334599513514973094787885713741885465043155379921389597436824185358088599829842521700519664230984543131024372576171253242292446157698498943915105341676618601749735710471268411893997744101938454829015150731788616713467574672514404980278358020107217055034367063774990559602701768506482572150440303055159380959350553927999014480394761150316439933557094962118990468540587692619166727850616144171847324631910682916469367766238872233555520225761777901552174425129633738356941600546433087578711554997538364215074972730658550908822944551460110772591079515025650562900412769574774847029231921787781089878977974089896189533334756899830416326995199278021822338838175963350258045787846113962918357093455517267276783719788949706293549242880447762450358498755024123815094867583088895425831469186029848810732177768781986047568520351640844069253153208119916909810201652428594517556402733894484238560357278733453297572647945693903648354279187261624467607460012165035225007336815838504792038876627252330733780341949761879317966907915067727510772011517930819102742673817615750813547356463810738537323641789640757144630544405178844580956663910447211038769905525552453965448153092623713026953542052674023860711162639000679372669973249927737105586804604309954660215561988956365435226458843279027784579928608963056158838300132823595265248711908462050239017455304852458860376841259285898174799086955857140662236317752869560753659724250043983255200066805456198379828356606632005650488438382283895504342988558027171604481997356985583555191672322969690678433398508089348030049824816094437545813510191805474996044706434531468473494273722626540548287694459156752358265954721175092327994634425752467359808759368802593680783834450297437247882348247328647606449423608342605094612479214572268725390123587076812901579612800226857846006429090749306833862101516132551630267322378372959083510715819827352857628476077152793916964269351651841120477901620304279350270219852557410971304437348992664495556379732415332556783153335019481024704760897007634489015574672071185374303548466607897598399518925943138209606811968788197975585463207828295227153761844055129432147093696154708176158102210499263665365857725168890318365017426617021540345991731474977065655300640042652586395945814346118532573843540488121763522551498444221977839521728552550996518142957304584928469612303671789419247012635917152549674499298581329459798120716354205784016905683091713866869730190570426903211073030226135802148343747191923537848721137204474963452764497523688422256227311834383435896521414729936479460228771654723549258130749973064015353338785591729447540172093651508352330782281410490460185928263291146367631363810454525645443485213947551489354313941935314537746245595436521188151513098819010300588636899643733419004018392459616405493800959239412771172838682799258687491302200333238869136944937505640032675429880240010758279657174478615233266189241656657429869437935098087544246776773332003190390118435534979806832962142080140388301919715029474375568135765632825716995181455251625631013171533484744138532815253404507141037657717278002562511864420235800491868623683915059189005411950858955953680251880577478050919476257574465788764340599773782917483832345294949905486978276507418746911238353682442554937648315661005087810627703579451050085476824696003829439311262622542152848928375995025177692326974165566103735247078501796367168395531834061853231646428969341695186710805992269478754374310213018302478287268796184472997910182757473273778299325866821941206838200092144592992767131538158529300093023394940808683055262230713334087990546298143690727558373316063434650837731029112456055909796178728468762645686662330338221628215126297461049098939166861287096399464191564825489206426552055113815103200535328492081560141399952887396778354972264404423798020021619493306236604784521790180680667023038717550436696659445187702452989459131847080821403185338648623698782800595040440821800903789796335517611534389538644451323024323413381536173046450120987657871128302642344767727691178970564872629949011846634097414116618807785509402423819478418483712757715980141371217625371848344329143740744859167446241948768151874113977869204776473915168303314629889178077212207675717104313737692280812756472004478487491715296740876997236406699785730375575926910590665286920017089884321509143322918596436949730860175801765606252536751854431195328371802288861493671721809273771269130957042886243138509350067331221940975914849588217094060863353394612510250684793303038198678242217127271685425361318050999044782469429187752089455031362303014207569571635388780639629404068641770427875587379256799010333683952084973402819166266890358016681549207797567873649866466655222126524728750966999710603572011653595131591751869948335648850745707591137425891272870457486575346555211514283662796476914964487572477123094687042483433287928923658476999477599476630024098226152380115601603920881052322490705766830956433822554648482537226510060614950987649229170269567532296136030963196184296998669357393780411122877062548107175944931167564732628550272373573835216811351768921238793772965630920824687010068533150617595856168934647567054454048240605106645153280482419287782315705786199983536176971324366632410593827183583859673896006630306123423866781243999359832541265126901246285357406181002274497856971221426657401702784372313209621159846326203748599134864150162922767454396870032161489342299701634876610889283915255766628792701945416659530655685853473379924394054158953692791872549007771423475532010756888021953245767611558751018896385005860024628489017701156897128579895658338702833968181362170068140822666437862470393643727268297362817928921847522512634506067890517792921116999090925164500121981656261429066146605371589822849972574812769186149728870574707372513744800057650185472741974231221336716507886462050189611830775347533972192429809098986090475570320923654247177657004494627183677340826979847051621261378070288958005341832745564292674321130416746168153572373515526207041154568599557314439189188024513984457315826913561259234128055458853540113820907048968546518845722957298441326888355625029418790041313204959854275905904875514932845572601684667119050169789865908104977140219002912112102479537288284450265043092118180155661688645756595041684905601283346964955842092684088656294594340667202083720303308708535523006767860908759664016785112274882699610650737759599250362587802922221499173399083391894581496501360821947934107624458975960632028631584756703832304282364237646717554631247096448167407915081867751926225304346141868207015136725647423565511910138912383249315131113499136470459916026624218520402035872340201252736887772927008683282098953829353878022433821012454256666754639202950927475905659669426370279642368826023871315651154023998298634389709408524703276107466001449017769230624946775636867541678643814802481820250734595810247192514470101427753549157814013516189176022856374093510585693064995680358279522246333197537272886917063684350511362273278368560748290850095588110215171875647033527357795279345169350870977554277554150537308111796583070142587720560786231928517928173034667706728725612641403765727519869963163099664719666654775048496974198647010921446119147300877379393843062583817827070373786817619891583275500371445218863830488582416171029527037692585926373983264109914405777175090364089980887212882437126242359086348058382012655779819626145300628273685781727731428701046926141459659793841300151962550430043745044280419314287675762354002326332355374177253340613491173995439255518807118528779102042591481881191199031354506005148184165989173014096261737158765669513619541915017954993391293453029591378980588390609606437957261489452117842079596025907586678399578225119737156760013802949621740237279999960993856280962297700690500185677780862272523525027388491168292051061863711781484434783671816655242472517319649151711452826958946962733855127657825062893139214238414827007810410231040886535639626980515751542250120710005574608954857083833209399460793274234816025354780560664123926856793482920187870296590162055469074798666561707066555833619605464978971288225083468190629488704244256294126492591401277366381417027491698580100975040669865431946569686259582021460235277523247492845261446733881315532883708875206073389492037718646399915000134162526083232442332862360160012932031764345487377461445687157611531565844783702917708705193232724690157939021820891348800187597371035097213626091488947465957965629143216481751376862280125717606772158721036867266696767191272463574241322628624265493378559225063931729458888003776395056904561170868401318318497745487452846075765545297848014529239159826800678874067009523018459215424507295537308575431913185657664248190879591300721329661213168107037760476810549022418272618406118064227961381273169627756930994013832612242859752148381990656601362248925868167291135224356396407688959253077280975134773178157908491219276612293583401490097090896668703420225868707813690145377247622155276924635666286766390425549982080038143826271102043262584227665002056659109220848766152020613931347141166277519967820314230426838409638909111657455038315120648164144093968319804835260300031328463331473827904691506143748372315961802709379491893152210576826692226385294694104146106824917727637666503044905383327908712969099610980523453988148449842437091347363804731373935452789239262108451799299916669665968355684729653475247678504002230486438090959322065102348368385108447999765781732865968330986666857149547406414656349997432890482152587665075428611800641772508994647854927928360610707102338676750365731469538477731726250540293620024556572309116901500421370310958416638243373577365258461110208633736370614942149699226141938334099744695514943611091188775418679098736331493241082787325509010617143028790048898818871499892930868425497615060592542387180182001273508669001999406011872951676093024992027724768401123082768007870205343155671510009931038705721559258029763302376164137342741887022651274548267440714642496384944578341071820807533188571215960469453636791092851910377227984982940989863578159993056730886993374147360709541146720266167647900699478889536183746752534157348406689808932903850069333817135152580989841716127100228298339898058128819674169055519623751191729635804199658456378316302720041741896013944788823157369350080296239745259877335059986519638101122231180826673449473549219267496355746852122581003019655525714218916457587666991610699381909302938399897026682972367908345923571728189367603791127649411408034476971628406801917989748044745673554937261347886157263748088336263441429991485317327637141635444997839777263075719234122813885363771333818196634353844370192443675343439338091566342400693743732642562054456792736621933860241571686512901134882566989945305867288560338338777183579331953185478779363042218194050429739022739986189207605374799224943573380509917595412017840968711389185855422678568742896103309236264849787905188555681295197054576552724964952133999196782547595718355913404217728062849652459164637871294285414280859397644415165636758818695787959955750764446738293463764681309790884735915117340130734185398985742525321616378918825787434540316308599645995567231178916649919792066652390995275907036369202088205235531694907425016363651741828415869689925006982476940244212148146055462240885484645859788239660837879647221653913250986445131621857976146599770089977397220727943063152383483039490051689113599000706631028893955974094014371726237933933886258124643707361430193624171245986347410291969421240793558998287429057708197602025559537635352891337187297235913273138420644582370254660215927305380508844823949613211454531064925330874254755843026306223517490818370840258380153651140042157689450004401332338550813424511326086072350139362585942949770092244218638145777911075199406577330408301887147373079254606601993062734816271899931815984850002425407435793757152839329587317322164338417778823643678733315648897195937798054134484841012343061457122109445223950520289712963438581469370113333350577774309261274456702864781517569017528243189943272269372827320712055101496203429136066603244519267650749564551878787636716313276213187583730994143315254794418277018973817938942396145900333976651050102154833642656309844065742727001904855009449880414760191289999427603153114021603303952826919854739287999359892813832442840284393051864795728507300309792370218756156889401905644213166420661427152458583762153424537782419538132064011226758805507216738367085877600334649538407927589163138976972529498518461484844064575273292526132577972886915068139087304503474281757255380925203660582842187907429248247889629361476359787400572395628860896570651831730176678118067809196351020822228151534272813435697057284320561671326313882298576059720878072939354477703582359568601083761102677307607572151739037162353721800286648734647020096517150360213306763822688589017183205137593390914152687577177931484491146785849993225515632750166300229694912540452210676936477282186859923395674101312502134438057200313619918593545884554222631568888828189643023210131274087401784029633583702856463859899004567282451309069067957881818667061363384279398916624806475756991604340930254813568472617134211091515100763847320539472078969920435532465099158425928751629325150474740534315793469193642402316305995698357561855216397835838511468240467062188148497076181954399620458146120943208091202607290877548940913693746733708555824425706863044387848305540270508596924774903408781223061355105917105691197536174757905484353370364899404752603685800579747094740390416540270603840211819139086486524187973439746143026258351657402772424537400412652885879711168203853826346290032578437061799809921039169696968356410740838084332445665861272436842825835871334943175182115101663494448958206866294405087926236428906815190984570162254939646890183093949850817671856614470386520726667840949552626154278129257176813446714200940737300130249238457550994687907286182488032237281699134963642895584253579032932173704497217769312151992853144900571292052178835344049386072328138411462303352536498771474886658901739858121435621139938996398751377957523060431502145938924588140255505243956897837735200069619781809355252931178520194297912816599616176473797001752218757997716942456085602686931399983397142545892387160243099269610329054833382786644458936544411808761389506990663462134589659179159047863802159715471539351076080496009192470609551372899954512298703928670649731353737147647124027092393269766132954793285824472665624098244104356054348533241137112931272514755240399783119833897299323471259770304236645960078997419602529095814209126628959667792759842648730082736981484290214799050949625287673735330554847305282262198568330270213008072990141808764983193645693950133644588304014831002209518619405761328626250687086088184057413987773534871861898669830543038705091827118947089428930530599490135486652370421041256310008171142296491299257100154026247717870454068188804718720371689172644742315752172691069646531565887486084856719772020067305981143001669438262832861532128165712034035235557795628696037000404820513861428924111910854486554572020634476775802106329436918420509243827948658860521845900180163099032825995679444315837499104711135701974985129062449411694870725751653573611066442832683297021465017607159073476947429753997852546179132117528984304088091672710200282764603973549445333111292013702464909920488401411760110175826425336098937738219228511520697672431438059447979560693390731566687710775181917992024917105272707632602622555602109019717143391100863344695282063273817391314322218191810649233917446555807961733568709658651112106606382689784274496098724685016171661073773365341097179013306328000779475425040198709023757925109252296157728353667085047843040234787539727709789061216958275964053470434137194825019523071031406175446391021481197834910267378767722105821031958106693018178656636960425113509208397318658160771540336266369275769798689592019301255561928497563844687034860979351878763843553387123749646563344026816035917736074004053356478999415821144602538346811494800224307107665612656830788375186049222028643505792120435867166279201511525371801471825991400747866963094174089696522470130218797944236066753109832584543906498700293770441203351176189300978162138827594340019703030581735807700959513004875042570183645089581942884050383047402590702147012724189714232004714354971884631164669221729913225181515882048961913079256570553464997651690807535185736981213816560833155388948176698499388241719735141157866115516183777578847489332460913922015364386886722883438251284722780401062535451470148024569071713201920615579164191604885673850694903888629411067806871986390819734359430069702344975182819540492731482783267925328201022850310389574504709387985423824708819807603525363006964664423994723817681350589254785749962552481534432873298494338896099611885545425506024218113654399933773370599371487072216367710166774793207678859137134081924263906139513628999072059868757231514217564164503228922452216290340010500453059132478768737674985637264546858427923322645936370051830940234395149992832162625711161513921586194217688869039972175716119334177951432177767352712983187562670446183864237716803772232079110888893157118833501339401039049915848573034419438656992081015418398310266223029840349507835955107828015700747549269430991399779303551488204704329997864463611526319297435207178876430195544163319279284615463403724823441856139970823988508673931998561728361924436558031619483302159982165731874065957012375633202628055834811207969397964792877685743158401464786965945664042159672973299592086886247932428645965755438773340842239295142535430962687419480686910538920230841285106309433376915349225611402455149172119890610924095319502660266262697213022915457330217331762724985657612983310911983470951212303415725572549323784182997869187273548709321126946282834893424102142187293419354609061234576207900434915563051106716814001852579906532197471993611569161192413306529796912196573845409396675786209524435848718981441727094701130598284865655180553482746961036573123357461559209080725477435349566957271498562872940094030018112717510336577151529708650796013958919976811626800311578504682431338286117654568658377584485974375163026948152304395605233224291104308462958113404772238617900417641989397881498891393941667142685225882713089117225898173157268256385027343437549449874189586271168714840821031688889696346672443150006888772008251945762405449935000698865416037394058959032359822700482722423549224680643016568232882930029092367404800561429854261407102908340986988275467470862912750345413507325179136839753253547132883092081000650369555152170958591911035990622988108220407312537705898341915260358712230054502076883880580133066282088496445120945556928004804816499817215877820606887528833221959331135469709028035953597627625611487826167884449887454931960445031730296996398400067115729051242584119213942728835207598844555490757248835754491504035135424094867939473638196221854214049312304037469031061911020069278578392600900614738011568878212695883532217740747095031403572010195903177875828598527784868605324728478272174236015732053970744320228923232515605205936831745201704630784770392423330572308788147344197286283014849222925334898192607954245616831963713705620310018640417487993477144413990571040919569342516021521663524755466463591204185476694911992625694054516464126680712477013510896521673037037363346007711288240891157088349789361383913812488166762874116411742066026971608347584265062214081113408231787367332101639479649191170137278422408867590812074047136888680599964895724760094674080298407268418194100126830504605719654492520058063367029843823646645785555529474490832013321321296163448445599644085289321873054325761251736661056478222918563079235192161093091707843180337682586417763667877275645245039094747105690782594678843082881511653179007043118003919198780303211009210047777367461776069934026068065920031749952087283602189854716020154708953222873640734837721327139412805529953363188722841499449285551404899008046294665492751768524799339622378020681107245260054013113622921992665642275748157994390942691598765851425083647945035161107526647784165549568240743517790977769123625178048630162424210414360803019043187066474199906706579958079315233686060402635894807186133013672615039001919839227928230698288474720224913723745000987093492328632409687464842845271668465154423463332539565079974095997531117784514773295496696526892200922282938182508360524260073473782918168361293408486038182617683979598541880098126616771864461724526443692817584282855456289236613136891961073932830753407284103428633003524419672888489011634600759716661560940201962944000550856987861835936486467337940320637539537216903734018024414675465173626029202767942151041995674124234145486903001599721759016440780041068286769020747086834434254842177528858408137941807652515655678394236071776815424375388445221816432951909880874309998975946711196883529364017045713168769923944136457344614109168985847978304449690310873928652420349590193377514628631696441112495949197421302829496227559869492797922874408459559892508712473514586924204868263478573627047402569985638884443969142328690055232196679120267599052389603322738728715252523628676653582728995559587026974588607463123949904467592778072369300604402952848360842525628869010613900313118838487498431219320811386732851028024567460394672515970155941998287719098095125053767192714652968990881161760527196786705346803815239593194383077862638785215212882203412279451808466016589272598178812474113541577645242609040074513119108072590907930467084131686514667759738571171266062554307880277334831094828653329784173456329009993670275877415807450339941673927181064006076042097290606469743020082938559760732932570452159127603037116881910190450034655847703898918489386683553372546302902804471622737558427276423998377702416009254337216001248182942158967764405298120165432797356854750012023621007650157508486940816596067748126757906789254850979572496223119606300186369160296527770545435172394818776709988343355819168358157849185745221906888161409361836857195584135812899229411885642886997347906634103404196451105746611872844819902320952091366847626113747498164688342346841738797210684350744126785654943471280008788072946305502247106238878828991814208653822494619069946090396851954983414591226367232496857802341595449223168713835815849377091356155840533211582474950693860730025781253720853675699216713970249346415106624287994045813054177104585492628583918364389016569543970146657143498194110858466224212541510379304932870695662017257192514870285551381184697479524157655006091500613172213919915881202911170979931408645821285612752573753937725039694957250613896128411213951462129754875930228615398245582480254303141977222141130276468226470526642930245783266991849366846420710609539950801298713844844355002462481569277571780595328172888797252112298084250287634669396990089439275609903314256391424481239816394148061638649656961265481946933118401414128993322218029309743046638840506623848221410312522727769718889642222983298426104864850182177224222663038203229116971087438911399018736212928511372146706044363624555119579180606317283675742521789626904564581649080433408239093937839056810332174711372012577028242052760349553702855259062116256332922229743543173409556308816034426013646536288369683881711541848353909674730875627584948495660601630956943922845829959284878903580858735229807061283874461305999548191450482553298060846410009497304061868598125692745605472858248359292497828605788504845862707295664163915877866186051606233637341507793594483528359996200314765272199383210008297924557208883672042946981861931407734764861257572703919837224460517709084762765929791141844259735244864118275574566574714269469180502270701167786741129919862158566050736649526491140762600372266546248848540257844721305152290642099098166550509146442298240703700637582008124681812971057629844004333662404919749615986812235457634338340499902128022137431272772504612853007446734706943348833229467700292739537992933112085048132656993381734345504320072250021501841814115926507699862644973409453769941299637224317196293855305973833536950509694932398626991855033202213664751348187689047233650764032241340167610893235051328511843405678058991244157732150141588653897105262296575822629605395642670610268190371530102415237021588074455528251375465656641338955235091453077193726452062463978471543979168431138677959157949682272405250009998584809633752795292454783688517395864266495961508951397656311152823231022309223361736965751628403005998915787015390906987818333031517257762783437141950760982003079505770073260483712739681380064626407543786935019178561200964914399528355047096295490451310489429611773186454279046177711354941656959461353202598871969365347635652495818445474105206576952555220152215366928534906081491674575031981218339817996265643781150406411354445127258010428143944834252553908502779867940704324043739611841931078879339558197519506550942403487965818590391594551111203711297684852469943360429730557583350316614425580346435937902079189358173801102306871585233205305739952995127257879168569711349637807286762130664938584275516163876518488673009513241736967293854898998898910367163893367442011965769855016473594387599001330116206113514118587524689799254909801609429633549911716328924407411792014426831847420667649161336512923962190959093835763261552602388130458647839958476241355489302996187779306867216828989831341708194579315889413408304781532095806902399815028446901244394050967967058935193782238310489150534101304616746083610967635962907103110627998443461752913693595803783813880564469900364440959274381144662688520895937325936723530691012758430412711043607350686852322140780357956660983254837600762150058420795212692135977388833463675605303463745329134724917107581747321143849553164250396399688110457899799859491257993791818912257769489705201589452374475957661106146735901386367705098120204587494122635701974648683406291293634442910648906949680525892855489884433509845307867739334120706721505708223283107404653066058068447336298471981274988643807455706692672310424062901852589562106222715233197821525845443647533450160097953072909308462740015444768867965301749558963376184086005641669044953597055585324480969945852123653517284476701844045689919588989685178297019381772172389724971638281609947489084979372838840454483414222772406961843801328588104678720888979727290518984428471935102020889368997121083201924035482449903351192917236868967927637270793074054157925737303313621591642223956242536566990450617044806280778937540143820527905684740740090072305647113246037593039120147387126214857868968911855067747761735938261563055801107197907184703983824541329429427113988290261594740317724531256659761242569272704247964215418857540268924486568780664194831073105107566643538159823822397591394846510876838606681179477888059061253322824482823565037522550637960202958237063263151981763660332512163022223536603620660117347777653211590734701212942786017189080019628935168704348998695640279422624600095993172308038917579112036668304166496991175559218096923450044212668008863770115739282576582209388517874126802211538543901034164484579069030845445829841234937736183141680860126057853376430022280029176835331436717007230025972548892372349506211409717962187016164052416617032906988395534544831810428005185365299247190120460978437025391832912486546650913268728872419061606680765044048058672836112234870523472670499165105742775872288934109918516776426100526837538560644997516346765803769589033362316711246445960888492661836636719303859001704258736101709218377335288186586699692219639190969539822770629373669958309283016764580885354272965863811503447476084167197396308548707808986787545436151667698972986097176806792711129771926448520115784884256148625004627692010402476440321714972642835624731144964057297180912095438295020745268902671541971717071391440881768383101848420030637348712044799343301962157774561493469222610886396616514150180516519602809008247368655838139330961817059889517782211173442107903611516814588457353994894113307517370781448412930774824598866900526122598515681137612675896887272153997682639146292052189357758079523370303202223832419715773167744814812196107693308458744546557224121351299907079277147045838815197049198023126900803944259257862955414508627076589259098286399003790674859060841760213623561804606620530174905623143590189310819962859255014876943931991860796615351796706689975277440457942017751744280224209746413466810292506665357017680726246311338936305735365880229916740337070291413773708955750734466367317191525724823643766292248345898596933229927442221184538811729825421886320519326194926463281361505979559214634797787882694031318266787728341391899274962686322807110800474065943028176944441686016111075129839817685605255444436508506825011849983244043491537613469419947519518485207345880316179379067366839308311241655512444100367057743114274924137418152364959131081169837304999041360476434981660626597993203390607870923612380912091912077970168331797374726923318985795569925883995357727730171718181863096827696736569597540338682880822027450602130933209502921542376177503054056297587214656993666850969354658291545588796694188805625111685423680834353375325761010150168877213760334235690850243843556912106676517314043218137770943014101254045583426454392741151946750830162842849540185054140959891124919661575248692716394165088717755716425492221084890355491182978373663522160157155948151325798387594552272964381173675629786827006881876051831395318994414901104770627367608952904031851113916047238778553343373524452340619640081781052082338940597894328462282300895565367399930682682709168478697757034159626711677250320620187584504302390328470602641965805586974342215634371945714405913032109072054733255192621132590582252931482949564284194721907074494530300953681459269685664565990086463193797018205034231067437833735045843536924884021129182782601860351910735835289331645349112153178208171997267460636768656390448848975696893295184456364968894824710246435168664209753453876967099375701233201227509093103864619141009288958088666298900766700279176653037353538461088837229974034344989177253668432861391509882729115859685791263140495669346323324618474500973818273943797839246733629784071479186809125910558544959872236505352750936104332180931063687042118603662419550854023727858036416027787946747542104130187164588246026316848737222110365978878550702935901547128720190805215024835855784105211931591044929417833181763444023469317513319798556020051076053145403357119171005429610561097932351326842746116422124046041504467699455959823604189372628076430176285708891327078005175249246413848731928478112970368710536565811911300482597991711118801479566557954867779330555826328829359688624754707355648943912171304880637598332314145904554556775195313974576339758110155817639978720828103850664701984511936548701000449992418669732316424051439531891455571827401946279909777570002819740941067258909012349996871724351817847406516562163936135273488956081132425635224730882219085074748114639514172770867148237534025650861701535234097296351942439981479926668466093465159928647084552461251829391699904179841530166168367350592843124040741925769865146725397991176010598968460991178330942957349739833457062286825578578035348568670539075970952782546694359162700951744159739693018440056308439523393094458703154447358499667734537027193433311149089314010691879742829505303629174978750178666918409520705597099550898679304591323270543658707692645803563747067427728281292869033908513122649569037461660440634202196681202823875208106707560746146232106161813593095047032997938450799077103774962323542272785984790163954401628912673654790316304367224290145470178427546678592585222334360239131414268960550044405367540170238214610041400323751104403016128082159893377989502618035618435776909180827276481378075720078199715620545236946225114509250706615870444538104381017731588591534687043043954999478171445749021710556229509061730709902317589093069692676484524349611300393806395874660868514697939633617797456199304601578393974176694176726078319238961482671946778216247148325896225134168748707224356517883160956176538780621915486037508816934242118217341314176004980805381179822945982648130758995520312614338367074047140600698891862469477116568237399331806149055386551445444348628458321991724724153872082655057708026629838610170079418585960994014185910996005684819852658519886830718014034529626153462662071619221540340225584024149053141991665631002810724987344261822001204895911909894765910084841382032569284780550911488832937086457033273830199145524799964297550064461431206170927803106254354556257520558866115261591712034282251063552171802400416280534282850832300591760501825680388403686445377981362944640448819519992182686392146640983925652801567924814452711255911589756519779642102886860543586390951793069569029468268518622547409679939779495015553035128089463061042302268975380062559391606700439871961002568284043946468263643305082406001247948317925935407317584294905853288214888690331432404409985918118988228970462787887800455289267561647158000593791797084871782956218463276696701336696932249102610623115509896128649208400014322992069171488315994689576205595473600657204612899549503143366739119975654941571877396745030868033152906873919669749747760005827020522410969470768775875907648810806637501081707000699424525934343859778615406610270317039569473802064800327640538049407885312820359761949458415703046815866741731511050171152503186395862305183895593836166353671358083826121698452687758782945087504395923209860997048004488872068709670417364123967318473257902103632206947538974915925114051640126929959394522569794893686077065511864345268730865799832669301197783654755697054929227059778883988801886293700506751050326004324829201075890148053128569958902881766223590087429132788190682148614929329304142468971378901166400594990172676946192465572783435880450143032249005181603952749858806172716677001878520450778334734732110369797091535197678036199483436953518917756923974812101648137900685587240853528585884590479833357315998669174761786201789562009161370364633194764749017113779441153483723420376902139489183237996628982326272696398914900568502271190707168704049674871632670697088658756496306442009203301525553195208281909453576417712590811931297128991249762149152442284677798178520539243436025247950877087494083693628467259010090859994746892167388605894708702615685745502460555514689471734696943516316707791311771886117281034803689103839471349774696955218235552324341831298898320023959053989831657397104022925179624206575061767045823495866183156748711938465177388706509620963557891555007200471210245831159661183020035139530581961378781600717103992022327262332282273839475708994671108249935843262808747224769148248433518847079276922785854054591851391544580681357872130559770932675906220822456968846280255831894768020156257595873990157455272391090134995965198938791670134577310842466173109455223770866404856400560111507868639931433727640605618906556781816049285505588634689604472634631942608960105537731531919564837479805857915772605658733030258957113079865499604475287785099137975254714357336595895477980574060617473474488820647701454432801372834534654760331265460395297122946132338653808317909035000488904956681281199854652841796273537735461741886627125483150649669191517977457974833065360604833578805856203037230917400071357900503089937820738746830385860406786309155132554337320888927086926194011316593257575214052764780977553982753976211536721305747176321886210454261055161219780405489421967607630309658091082486962841039286839868697396608660206846945880294332744442072738358315656351881924356217387219540648554386776457244765156183977233082982018471442309312543846933338307908667077869880721370270775652851980193288723389137815563107769798454161092422374567457698518344224827040147992134677863311015002313272484869771613238760660461859031441242072882803208489230302490513016100075746039097274016040211344559939781142312728865532647139958950973171831343101774677341473891415676762893662144956719257118016268959558738406100717621192071437501330821241503607102165090975543745965263422811041395990696345391263241774582623443726638555181555167463651666780183884862920094253977712349474647261441535634310721621172614661801977864774210504985858271520095373735910952907119542822878217057127269610094143679667948205478820264380501674610348103218711332875579361995794464372008334108951238194496840075039668350410456597650534653857011260078442657120959773872338090088197432498848985301452223298636661498060267384980972892742294265516595082095947023665766744713887403064315427885139049370062771572335913993337218356052517930583340194107730794173074588540360080535375112668225870101867459422094542270726571722385843556950436468453988822232373964310099560946532413278887228946584864985144522932212451532552020560062286874070490335973859826185879391228613502044496011129692334170643819115787706887807239608170425079677153063661678228172555780626821067108972658116608993312338937706170518557472973916401866993829977831502006717132658849782979724189442638489532403293977404260367174024272973909271005237707962100276878831029596739514227158057106114237516235436245730513837713139980796292611235937945456224453528742150419336923553109921198172348576554735476971978075984384804118890392928119001767284794197141357446631958709724483615946135055633506969384404230214650945432477587663675414461149509861793999570852999895246188534960753882013821605792902625106757944949339962487773731202094494996160221017683564650649222596221139663587297093575934021373768915873606970703807153154929549075046222608152018265623263438655747987348716965704268780436344735325201785670110849060728580552215611376792422961672736226477087203566145597477059477877723031029561719666574157045203243566366170415654733013564881590198716399692007536326099337750175762862444162242728519210852037667627117917890469308064430480372233551669444560549958436756623576095934134640251351029745807107906911207788307521288190624516378733653258898655173068380357128794995280730658061870218754277701955292533444163526015637736881133981710411086799576930157171328376301725348101686673188242583031165748986275596874646640494210448038140723332502184378361048572581686707179593316358610768133812117538650512474383324671111004596306089191449351119478888134336711141996762566340921748216961134251747069692132760221081466020584640654669641468394503502854736158809868531093608076460446462509395966074866888268314362900287296073576346783156636104723070467163928218937858035700736522759212298218738862798902052833199659667574179157374201077835009242146621696436371901698843701982360217719698529531019013847264192425531813201468843892338222801755341660865987313135318096827738033832396593351078180317883057237568423830326879800234639029589559251074128655141529118410301299330672435643219326906785041394989346205236799649034297021683833471586744105933458828810412829563287622276955507782699203939484379509872491025509901339977921712622368727203515300905445527383703510201482225706466106493639748667837403755795506165913127183591534906122801966622882129490654660943814581307497400848349877074410913029167112319819991138835914621033003297778641263507773352521047307143693389255342030120098872174421220467287746477084123281372268025976272835467384523378741103920838240654079058555598348833684382513191446059267373471844859106010222782373103224218450504440117558723340523036220863479968898912762379982437633321541628430679394151374532926345734117906846867227279632750410663161664212840552528984410406265955746142574561625320259351015497607916105757960307610416477303615279340553115316835326562964647324068471974085901054743094176890103244621658052137181807011494917720348345718056603470067314881509196749045717148358081377525334468241300395287169198339313121220080088552994015159756372701071612506910081857404796897090013954886685473111660643513301135532311278820691352852058099312201924713114689199762729831866132413799073393121464152546552245391498306687256021966969145868216660949426972094213482339840393134956191069839651663864101744404248600102219879646395124904039434655087183964018945311109539412417674437473239840076343204261155860151881142206125361208014006345198422781037182520501780462712890557562898714474941651236943471382838084011731425255781575895341474932819197087928008241544747421486945499187050332191218651139156159362500300508181370626488035007248668617581991961822569315060999524778110535256146164733095561305733230211432805834802772580697033858016958616769692624913484705522095003533063029029059613199066506779487664834635413100499511186068264597222123084867226168616925254883658248487197261601512613924795936531476268658406884628149319947707505584094765369690751588715913095011093730471611055560203095900023446463260154132869096243693794926944979167369611511301174709790683483816330929234351464093883695916436233632748109277511217081382717244005702909837073683965552288345975032714067660613711065946535648165267813374337079016063258874345874089875347423334363230921863629039213257101264140416320692768569426059370732359601132820190535815962485659920049781294845071300901428211678632470248897273020756119113206353366357243074110336053889873256396448662718143045814826266274904971356414825615409409668245136445821925859981526980197710694999795292524755713605330256571364869823997623369098521710286109010734740831865374334505177145971186779426959835041606982767993189897033077501134841002862161112280947444865978533648597785006306756115972812124852607694071303388233215149543110162706871776111688596224744589725828208417122376940322464881538659969063883871403623858809788930720315941982521161553835807494171060656258365992263434717517127218055052038222543556402379720210466485261462323244175425166199050065407747508359924599835170191954499313589668425623710324443502277036314978299229326285586261658288255312927718850207644416836013227575733885274236382248462590183540239635397192980368201648836939353969298623769474063654871073438264685509829258925640242925868117993411438670309675589551862974942162501597323178546799046138715322265241682505785667903734456924595188345444711464381988765620340854334411879589213585851500748374664380288161946863640004977317862539961716091486466958950969524916778044757529273464092006143913560249657960388372896393537255867738795875733523485546765794522184011221173640492216267700952486775274843187168714522289920194577885124528224949179660543498996675721586957558160289354374426759998137732501341116559467404896044380112234881559682186356562098054605641036458449336846536350710750596819940144339919150445372139786111866999419603672342867487667748384720741731618805713132132861101951388421384837921246012465435717983358995979638416533259472173384198431446757539972039609815631937608185394827357832722947033778355477973022580314707805188086225326901095395756690267060762835546840320295255385505566452579707447838450198389591680329083593991683021406360723423185576445391040965004207384412634054748874785645642013043407536816290480874514467808292102631549182448237222183045183781006359126926714224468307576914262539898649998665457788987586655495329969555396749271964825070598088792906458965984574964188933028730329677566018958396992908349874602772136344341041349955717766654414883556534246389485233465295995750136496062351526769733631711743264147805285386009455205355907562304388502503428165848958197076103499715171431189502303760388556398954392384628257494873238400031595784674144909854263047339218140014798597206911496184630116936764023087264443647538454641817518794713675780250497577807009354391669245438760269985648070356555789656501363740679718043676940970486410232168737154335760326439895714362890270986683794571644267858664857406380714449765837122003160457046590725641007742484522213047770541042671110148663974884592984089912800580048281648104405925146018895793442623832137744915333266637076659443606666609220040400772829573651427816576407684568463343996765156032631400989912772594031241458822249334009583620950972020408456297250876983619321749053964835333292097202756425951585742184707741549908352964544632350131004277266518076889402153776014269256208029124424209145540578613337778592889239274881773600692345371235947200366956457536750442181314704269415926032024199162118043390565802765191639260579307776550397324756396940240758202315399194208047983471296707574489471284974986723152945060118869663938237731028839074943302984134228769674572446172172264224915984364111933403256540991541125782804430761788736209602775299689488027050818834674841114654388249413811625634678466422799618973097962277027025471838434722104219181597488475460459036092013317073068499664479045632857071539906359899772485797033353308485393319815728868930826368338188488609013404550179426933997423803025455442641232500569524205173094354930441063775902250507379159145259003311443477069776368918180950707285416400468424586434337169017626312084349280143275721061187350898004534279463233626504468796674170054076520871083821490008058431959131864964539381455382258593506730043968476625063210416397178320473603840328328975788168948821919151464625267683561547660740912209266459795443747706539224103890722363422506618004703091957019518004439818140495927111604718709147718830075840771626922466319572095154337994054683985982896823264718065065604289161220564118984740977158930352501975733535135897086757116627307670375027723464977109382762350165410709591526683347347710260820413619263671995761745808252314000441317778005937944873615348213487779122928838619597248070383696611451166623419900740704267635403866719092233945144878442811923079378639364459225473370983136123868340804510771699924757981043706475562841388896906886322600895044429164710787977992817671590438356478373911894231289096873948997040428791201029836947831643476008918518058053962726285961293986658191013583456774659966691562883564824624153672468857280624929662086893358611814776609545782523504079129818363544180622940754380064122148691232254210462606166555543572529385627037321592689411604050628931558122616836116763864702135263449452542033961711175759272554456724675929132350670825414351012917831814848558155389466573439910718475553151030732673198034473617175610303081673447766461790300175567334568487402792576533923095006299140317716928630439824626013698033187006837894216673512666476564488652822990710232121432551635397108049383179100404150929110128720340136901006195091992233830983885132528210540170223727072599964725461590477629067184371109479828280090519332326916296766496122080263494095649413542165202730414287757480217578896905132426964980498452523070406539667432195723465033435909054262291298557213964857143526332988974715566170184598598774025302796822131125006901182711389942868454690678544863628350711354187470173383404105549498414417886519384681847874607536967471743308646588551716868207834942203933809802932814639176790116547715105946693918545726272022431041433152671039215858377303849923897159713716069725306453486353766929265291000442461263413445841697982859470098451536934024708410649508384895968458377262462628498359768473603697390871003099826762207224626166748701226564900916137158172055451834331334407198583080530374870249004897101703818722081552905616605804888431421749627654410055183270855584393998357433830230720961491574463871257865311770750677364251408412080121315707071949488257411979028598246038249106282636153465515135925674607902413191928881256396213217794026775495524308968488168952797264730808855131189841434249688248479486530179381852026423456096457846976672028833582695559481956835790404605931370672222399418717820234489357905115082294061211310898810914994769873468588246364143291389266877065978910202105916342776479763183307027761776135162412447107260051006981724932598792499592596606629219717207915284092368403287905624422999307550012039929230817958251041401214951485629318177992458769040024403174741462721037082950018928586168269544592775129458662774678188751579973134932441360519325889301369636101775069650333912108358362227369406842152737363581222240108455485508715216789418780558724215412438221192562883690190138374582107005313571292581790546646834070174791901682191662350195579052018741358630584910379266673321156215497511297498693412398202881332907086519180921139833732904792049179019661316630975163329875187244309726074536135582047045684317232585555249618458502027996100178741351492565492692903790393218966632229461757270565532195615338180834862431524794386088543631728768068246775691770086417531988258963061501693415991857121682805322915965217714196873025173617067977093289283004058959828139713222657627210503007532277353147748950657052629441979373110154471598869317094870732980006537236997640653253138121077983125482071215382989771577403466590262514939386136621601290993552718894976263450474354407796301038605851611158527403969791775363966885064361671692581859168364475850884696401897905084427367133170209052025359009262771643111839376841408265635049784480875570334263863737600223827051398890311327980399686564358760696327678661923816878131270336661941583187710830363199175141466382298916532091089603823704419836863178237351227552623777864233404884148183934191280973419873025811474732429211571993719811666277118509309689531575355337535745166805346741864896352581257128887998570156507375278109770096427160235316196497526106570899097373659576207836362861018463684545261513758318993086551982090291265980263727586630335155237539614596867317592282204235108161758114667677565369289610146616190260781243196175366792459631453512438246597256431039415614319923172511798923327684579302040283249136235744219971110055356571848929177248667682666009416201026117276052574273979402738934068164373666275181085489674305071325590271486671700493221096910999492575537306591479366755643715308623797777739066382720972580101956926948722305386189465428415057145381283365758508644278767891054888607195434418941315500573161081579494563643606754291450265281710676759384441147153267455271316824893654295167472259085655051441958477948437946215926826636748369963367578190660594962050026556488005889707185378393212424266516625816090239701264770313929613042723325455893636187843881298701267031397319105278032702008928771342380700148478252583470639823627271355409603021928175262320191362168812340747880142481347505508146864574045918301599819890736092590922819742889530604809412356810452922899587240885795302753724281218490839339892993048669506872657978606079527600095797533119731376700901492003928245119383254557430371717035142049010632010451467489693769438701873012196346203816983297891024926272623704090174264993232427989229945068250795135259489368588043012680114400515174361633729824706615203354623903310991676169205742274310928530322328221710143275394314700622284378618659177058095084020894814288765996029139152634441105549460616432014959564012453718094463539217039713477122819075723253297289271700279661471316939898076834589373731472040396339089356049399889751050921689077548280118070485881695640360744182500163640220045461578188345176793313697834139606154053225070013819770189175420326930716422025078000013754544474795549518614040119241418892916793509229656381046644809477078674580483758210546173365925053909776377299845385561187974202644287729000518339207464885415873732657522517343679970525204982669777376482475760287732238181724574908369404817361971058981495974323317456296077256128938633484816965159820293344241825013757149818028937390286007457298158151946677617954778361161753382001463142262521834607598342875422096921358880159766673364084177932970944669952863190364991188584754347527077868575068739599784981561616806192041170628944252956789449451917632050631441157919833895797619916718380918117100264417638686339674307106253443878883972029135466288646522271867958778382753596608843389164061778881110830127854509295115160938275281082170410664278985187838462745319002076771160871305509037734201357583503848395071593227316665020544827211179087478755377186213910845537931795269595140334603304219644467837666149377245186785479745695409727628014207013417122204823199325303401281938902360069546099237686366499977119240198533497477356483701677928885773267560647550176088927020012896555970500875430672452583219492293358267115802591683236231537901979648258363293435388608674812240480485798323504018496533650392286965634039853673748053540670846323769952144204528779499830317277346341232094766131225930850444007918791479360826195006110564786434949220825709225256748916793366167000476380625052322980544078259394925876890108939610926864575082959070001479277909358807276226038034576287956824645783070494394301110527096880554018516348937002704417218358224916579032306325415245784631775652396801399498349372555170689091966514503008842808424517872144014460098479334536921046993146945038158678198145077460162082714141144632222261557787444999679941683131702536613367121778324375548914662021384135784717428032871447883405955935067960783656196607504129486443018295833310637304780691871403371812011154900962379546925751220246892017379543078130193434238058946467381389445240656486050385239305289722066811274586505655096629371759883620701254252085205803612820509573829446331001738153328392833717215906398080017062458496164996157377958141865837251358955174525188631992018395452431218314669560627902196783455288224035904268314686665895005804768643744268640543137456670510911507186920348373745975159778137379427705801480601116768672592573113703828409627108969496967606034299068517881537283803747985642130322340953600745655433156113236016643787037456875302530076646004364682509188600640217664397503303515426799399609814868678216420542605158808232100203672908843395111811903860651593959352534064274693392727926409802255645737050200224099628592332293587528766537067442193451037131748728081162955998392955559877155657441167004819050929262176080996494304612240689050716378797992603453355228025315896787461950396254336990970670606995100084176993628505714227719684372403672118875521639519975150633607554950887378943419658700180000932644163406578382021194543649737122094284363008435460088170310705863027683177563996370399873600375012132487051225159668519925237766164914976282958773935220330266361606304750664435246557707215949795830838581624335004043518879188263267224657033279019624773212236296495810372860389860124532784131513041341280325899981336822078104441458006563271839248814367173329619460658466615265744978403636246314405057310854064620873723115542510580016797265140578407266892655401279195229583262792031215303274211491057281736880544310862736322604784168641789337266394418753462516217748850620810884217398490198648223986725449897291910388227421987110858934062440497895251987009995086372405554227841160916674320135170945851125000402710551114027172383712942190760545484847519351067856988994966070748607405620765779396228774456069119232960200713669630325259831819868627364494761075177660885198857888422658850039542455406665109042051777665177471435405380703392478475461899635951184003116851080493404856304030204935343732196974860599382381827160944044007665223607524647679470690817828627409546593110901341076235349698469726229218065551963833038974273177518241295211515201772131893320849187935495164714382886375055654927847598827448809817529360606631723107880627308385483179024469432994967931713267553490933769501586426312362047904985163862290297774934668370179554117674242634145502530588754448237159395298814529992038703882493946889820029068545025787500644137287018947249598769455274579830210912233217075361314772460579435483376640085208993282418417613324298582380610868718109837811897054157350242537106954693379245020155060932915074331633494606355096520169410550001502873907118352008808747543313043942735146048196620747921136584146840531787284736334036994138855204187618129318749737676672939313300830500856466473013451436669952067937715871335866673875879609781842568474231433444745649789094482142450724714328733313538330497589739073728809291942057139275133206864180595981872388959483429422942855653284701807834763699466962721794424310302954421406062853623900154789411311548923064896203948338657653092837964869067003052202904868807730056667343881850790949576682782277034563985688232953704393677451538618133755179447204791014960404051191227219959523792495944727144020142086852349576512763442402013734895699772256375436039708182353698504660178359978071004553213329992665824906333460648798836816202562379621625143125325021792737819378342678923780794502754885169516257628193171677998867849989854615380992221722551635526970442378593740920680570034669842455494362520664783429020782883305970671782348509162627073214855752795329782089548725373264249025560564998161857334834336370672292419907984916328273510037554025997767278909432669126853405291337876560551041493592826964695785589040501536115649444465808556396202045286924042967697049991051269362784437589299799210500930730932627937473007682740166004409894696160309336867809523331822424798152904252542760783521422116024510563371482098584265087536875017614458102620571573434924164442627832709706746753421234234110764008000307788079637906918205104268405767914276404335114550041807276206298589635882330749949108623925655283531591059469356861668855266110303037731415313812248201209978473138522054918563036058200160191331417843780148439449656262547414952334566086183044954509114229066987002042534215896002683158216623688794664244998732393446980747692251418438213933336113798912892258710737474827062286402235426820662314415541924235947054548924894897260312396721858155056009960478870352583538139944765934493472206147194365504277265430185540853282978168915054153762014372207063724404789516199225195776259014567056950108523910478419898218043756323676032149790590889293747843895970135270399612592026015498689703693214288658436730381441920666053055838135976894406559314383622756197270455718203783404190881639077359000643121947358911520339403697830944076756112533054756965794588324227361947954183565000964925681893179833078769429533493001670382624575686605636569276477125315580012021516194749162063968309310601049764100273842037489936655974163592764660634175132752034021064076902909858574715973501955391491637406477239478487510367861736192837275023233084930997193959013282990471822501703107651395485154634291467925151170319431269333259744678038269990952326798231448902303704223217446037705655774705893355586162394031238702600968356706276269762229545122878987825693237608574667360789927407661200381876622829612818835625672805896857060188163892383184784989442612182897778800502832156434338060967451068325305544759173279053565995812871873655447172219418665584266643099975983713748999737187091251839155642058576321264212386542027295928244126996903292964513241153033942827948171671664987145287743813894981691246294193142624424849328441384644106393026183364477330130293147044539465584081223560757089215075029309120186212712058290823865680501160590965906172263516593412372392131859955009800143390857607701314854924580813386684132100408200890632932444539017850887400910725977289496242104852014708526303325284958169203230610565523564099307013779894969243937797162244435739505252484634126863420349703089130892429070600130574972032734798613116191547406480885089469507628283035007545192840532907282688646151498400197547400743141888563626389944699421564682504695607412795305432787211548420511986272704980617190417977336136877807286830148221477290280882550499078586419942412860411679772263391034703726779890739588598620829165911677676494240812408307766263498557939704105491675047359080879593105214332413023310548111786881423750819815780077449238635735999738387276178707466088618564037267489125321588663291320636920763107313324538138864261010181803739568884645884152805887204277385584309795631396529334786996429921439659276603408938119601824738026789403755885721574622085236440149448976902289410526662456937803899870211442774498108311844956902469683994174807574945252420959354912900550145797267958778493104469019471220488157472193099889337104585795718165364509573129410089418049683912036145618700336112319558340065324988385867173713675833860361526774927670635901451470462388052069912526386270481530396453826065641029891706574671200941750075331829705602075990742654464468109295605773119034686265943850926772449869463033106519340800886312568324144145888050369217642832663385138140279985015285336040047243581465350844237077035908502264394568332429219815741162539612512779781601793995776007846576430424485453197051907682787128579740573615396995069805781500133489786294631325858788621874099629562897957347637032635048611818065667361513387266672857634115330000248841177681390822931582716389552871664529257084276268354171467532641192511194900899382569911209510870618541915012237319548911387312122733246477329384142170967180521665066400688767599332399172183160932836651574408543155623607782725397653959143066391562182538565576321907129571315041531493684094204122696575978425209749099588937183925457112093895946350683479706318038741081160497824762309328377010454846186423818587488025009245570617752237297635951883664462861691988242256255026810201412843068985732199628042892765042711348326553949172837885998832601104460148926160612357607960372910362265486553716116282446312303975648002541641199554548712869123921205010706462060822940600817553156315702483579245267956844072573437003603747800665120099726154182753450040871036556192097686447051058243351412506815448950081556330221453442078369623572302548072799409443866376358616716429117641053906712223658735506905789217005749910529535304683072082433711186643294521716704666796177262106704322707766371854828508268547201759788598318171471921660799433772075853990226401965975845090041134556684412759184596261679058473297939897349208571646030755396745735948433469553523068100103459564550571900122273935480441562996912359087717512275059852561912707220393091839968891218304998974024814214320863350174347239120581224123652943261477086767809869187141379624716901329931950588578657898041883164017045898374448783033752817475657529555659510677917644829913948467569410755571944181277160492967715094103826135270532584857753879648732742995724432524467060970174634533855572612264403841990286087123927590909460734411543583523122164418226152889784364092058061544015259242746961276760350427358323138412280170582810571293119931178412423714959699821553089547183806791210805359356189360030914774715951672734986100585671677044831281687115474109599194939733153593226771507055126998068373983754726140838958486166989966988529571931000821004154532187453841299842436822207281265878068886611243370972530845893019682866380660099504206287270008998489112548568612922884983557581235410099412202452768851271314225996355339241770342038426584450315051257242666227159138980011474986531412767925788079746406592657386986117335239084271078948324162677924948201751718412755854159992382728807417493476281208484429869390328699805014390011561531984251353202818801633615851646374206281787825477036353537575441625019631371767666758265275461059608545305800344655035611179865703093666303089837886044754608066348966860806422796987259241961048587876110849283931679664339087511063090234927128090743714206633083212847816951580092225483685643964928535495417889089399790407574334364839347334940489345183918626374785101018491205099090588367105738319756359136435960938816515164126776569482326973698412868719768282402537424578345569841859618492980227671817183816966813882411803136190163390439581198787670621352019786220117634595313020074775370016815273314369340119681779158625217118789440241054168872818630771207827693565792226782818486013366942903450128916861772672285298128973264412177645185526413876332297915723583561993806217628218246056550155757042510700738083332414037020240407523252971804888261052820284358498212031123775173074240164520520297948859520714822296749365411537470950951411341454090552181283698290745072087709684340992312877761670983317878490710919110915192271040234065794267789932850081573769561913100445655795551375794746881489616462786349450275738196483100255838118179656247866590443903738467449227024222589612882144144650461209442022773622836440372261139905053038998226263263594647449186030880330494835332071757642822899415314210900258784715251260046534460255440330724251549782228892567565767456131871867486294242016545003840887836371050954833976986411286245061614915244824331072805246977043162784800141693033366338264053871313643280245209634335875349534769559980430420630187383137756707619668858887871166822385024297458817353225022726124527513125933147685624522673328510734125284026010442649974024443038852097252909377406995094869421397075356711225746874150661986363300400323410901635402771023444354811144409161211906246267097195038147431116134455750861825673673574940722292494859515946476968959893003472271848712631887304665465271501146958115232188779470924363925360706417606548007739460012252532458940590931728912339118891615768430794114191377685729096244256451060784097890989412609697348602465780467788315121334306585466448085256123411189590711378857499783362611445843331710411172971068984069536410844309772741640625563007279994814039970467294210050767225345334889506809781741970180399723415253538415598100295904536459240610894385119637832541264860062896874572853064583679510983415121748942140103007445171478317248001293048624526798176283220873566005621332923166347952707767700081268709681373265471486568232280105720908109468324670478031815064699705896252324663516070167696806087707413276736066374357616601537165518976442012758492236243664633121351187291957985203956486110564786806716183290499395913273603999539031361549674822650778139730783886044431871868970348709837641981369222244044949967826132120729731772393913091637644392393284067160028527162932891280090258066432736832580359219774444082787809494421672565642177538687764982290291651937595402311165254755893576158532500417717017131087269173291826035407474722514705272247531970492409335492390572093975376806770158897624100194133032819038266584396236781507602081529958685833980123190471889660284288312210519051742743393378268510948416639709018756487126243806369272277251716764521021815446261787933836169526311173460156246007935464377812225778494630858562239699027318732158690329807225969935484684347041145974844720471107133904123434965619792994707786588759783495758463278654928111655391711309418720480405382910602017031805448209350789888492870713562143999988012802379507298332156073871480416996941180419754231676368155580663403790900266784453967213553591317328437756211335333489468228398889252233389117667282287124287066614849246844397797050968493957919187314863154825921704869063418057884435122854177162524994927182398972986014029593860207388992106184159997986686159350714338696248908688595828023599965451238759957533209990272456420863862071948436166811785965852315966958155678973783731809037584207948995134197961366093043738195368828049764714022996212007553869030471638128747077800636349705419378405191958828484193029113370310892877981476018539218503770062390270380657121821577880760885411699884959181065058101150146092340240978678995927055058509390230052098438125292961391770432525807557806553150656453943460433847644646823719754615906482952143770185324113469558377946160336001379397820465168267466157991818275245433392914110120215927938369645626711873279071405404210334277123059441417228286970870339207843875007649313319980658967801560618307795676111947006770250057745962920983812146194944733817636481981064787228815317777503136946894198475799018869852608712648726581598487306160026735908912499878113036502318948710809047129796573678475027074557242747213281597094150622836524455796711994554095704762560524117368007967594852930946315475016624061525041902500909259238376118293699251710223819479672120951884665137146776009829609211519508043777173923732977051773884771257221977057943184824051458249700266166452368577263510453806603213949505739262906030621753302308675029982281447884541003138979654575232530372611413675532883209691062976525993283339023548320337981281115714802911100413484302484824364317132544171725607649492072686836569257261116523795641260310027969551267814678430307441921684493200398866378468276025926197426983313574318944161532264286661665481488792479583008571571143289253415954656913093939230152444063917353293653669107433874613536392842901951597352207121732590075096497057972647032000020901689356479345590500192027746753715172486148688076132188645487326217326767079921636423966397038908063305541097035865752161828881829738736050745256539613763650555751828298080379110174060055907310669696418178016109710221585754105412542680516544070995722920453846603811740475074902554131010270506144407219266262935942959458478937875667953343084759592852068776858086895416963485018024896523719531813391747390387475554510717472933015835182657046921557748734944518390896586894128669156489143707020790606666868829740867111866705088393649471797282221666539211638304589122808321480172064728963302072648444156886522332510295795025493343153961074356493374893078601849805260362830248384752548106981465569721391858669255555968215354145351457072926135995994827006825336443692256853649334433195629694269251087778860479195458266326741677334347807724524923825636159756486727460487008682349905505810239390397937045341121932741370811502553509647643327760985824324740231481310968949876380405069549892991755632203079242993582427506161851110157074054861899582345811067297804654419332375789196085200400171948772142197619686036316452261361074837599643849179597931664208741363205408496780074343730151512144400460752315584282199462344347107969304777507035112963116172824903242579173021988261477199139353956493517638603428321101264037035207770145668295251901636622622815935177828889542221854790626325575634488440048033134303678109192115454742085365927897173430124522574964257467499619587329081839836506760415226040101998950388600520890858400057930604723617389660388339052020244596203478922934737058597191196373821418199546179263907529537510440411194353129685292007925069713984021810613541956104965841558995420928601349216680392525558093123241556743669967060095543315272788579440177229246514261675959989202453656148116590312153414911411145473802240811090637011162377456596431657339378613671262672399760978869008514321942359393837383026475038652982564588010477123022684099097496964510522867396899193697208667758482151523010668941800488075869908386154160579164059945497159397062194825665862185975049908265197041065293851693652549877893035410111746750887911859437263535896545227932896959465494962091303246306923562869333996309305776639693160398430141955274749712248917218606704746293008193809794623069218248704992746281844739303177074156284919979583039413735830177597222647500909231499644586414940113664243650257851176281972494219723017247203527138742784286463269755165665681755787747376926885156614888426230852856739694120925346368597550612430118652341507177116877094715490413256357943501243799210650399057991103966485802233935916128028161081598314541171420292077700505147774738872787899601162423740775006866888696712216151419243542126444338972574326164872269741414076914548269403112853808236963438394602551461048012806178275331789356097640361175858071391818144119127119110072775768465281869242006961728678705538410847241540500902986075952977613007572374347457686471716988361428983730920573991729915948326085791157238585334345538123397644931920459994124965878861692381826720632502114587100636333764220926261700983687576593525287814529837415667175685617252712278631857992096241098789927746079443020510894152793164473922745827326004261421844511487830191185442590598612450827772858571799714650513418076442708711247843297023805511481031057393542425476467774250924047624310459414918220205309604921588187612605340285166131917450451313363849628385383946517451005128772432677269116770862223325119339953271460735219187055467336337271190206698238931368774186620949270579997830570122905702419298515201465084103423893343170271744698413288389911626511290655678779324326770729347576188375235901711438434214799976178281633116279844105491550548708564542137624116625559662478692686473130409393856645234016390292037497014156948999945762667890251907867198600238760663233271299356051861791687244901623728665201722194426843733190605233768868766461064476341796057124630265827034983076021099677897376073160991511732073794914035995231584316351523443825547995369963277299340921661765420099321786203541260979648371845316467241890971483957372644969109176768144243935802833462473377043457765125221407670549131161190436170855555847298752864780553681041305602138627228668447496810102021733219361183699236911914941746979154772641879404380558463956580453493909461067827260396647183759304919958511259362651872509874058849876763079750439441651727982930562793829098808577311030486318363027277057283434461025294943282543619079730115120454113392067369246519094611469491848643512612596796131445506783872585454287883569919752419042655425816938720039089527740335924050238232214199151777270179752286219972377719155996761644471531903920634641083974044119259622516157779337298202785590192073871993704513454858880179516177007183933583169814670152513653655732137467355195166466954653417232775260126525580427293059532872728106462490600851553565679313353916867743161920008663192181464847306611778015446198297400956057217801966948028218594196407410164596732105426263826254790469039598478677855133051223749228835419882842848671263826671150826346650903671705386905371244433760318450579380784338494763455081952012981786236278665509557871443982625541900030559951619274704891985863026285495558844412584974218088707108741719211452974540291619545932715244770411423765685867961610777425704568027436621953806286597527235660981187698443770827400184835917257420269732047125377951136735188958162688600811380568824167370167856802270928379792692209317709511995801372110477888127109003667218145893962318216239808981613536834468042561344557754689462651964429415442445611683750255847515526581895258610230741772023904604054497191805216519959107626018416749527307804708733279417263723241489357248585229045677245172431216076929447602328170604136311779684149542516020906692373248621124050896097220439449458169171995605565610712618374857704446732675547592977960205100715309387385367063138862196758520521253977771818209129656084773478268171810842433921719048507998231833771346080571019915493982029488305732073868388312864967006273018646702851792441317721758391410534107552553186149028651397852570741858964963500645454220245065220071319462984916771680059850769064184302823049735596602323393871098286485076140314039793694205816692460032905010514672408072192617350430946531353836435021433316485220432245611060791714490341067322108346263818609103542336072858683680834528952557373333791188361540333856840252446234520508106573935371734137293991545032086378631211713461113499827018458503833184996806129015234911948559328994141767525507746466966673433850602848054208084102113596903806701918215720185508799258666260644170325133574336854941647666242320811109893066819324213630550837833044157481494072527304523706838652631861357293227524688771849772380277378634674307860585997373060489790156811078838380512025495050989420084651002664995983907940414541393431970294024660061219680068870629978107719679425774757023094931854612816046261996701682540302516878307014775944579203000382778161983382559807459072587956083387524386218636799288243880649346924247932878144824074631445095945490579531293405456558224015000579505177640177854993244112659354356223532102754909554051802096095707813464562249572304433951327124976388285244405795407207596123524918033718108580047142617052002004133239957870577821119079061781329490799143216822737508335666563605478830082332286411444287489286006536412693672138636171076605221395800160623644441435752001761438208554824774060405412691619335836947146873520186681064100032303756095875340284874922299621898821629757531678912726023026877925344464600369833816181101158856929864021936798431556388047100722287153225065999189291735647813671273408281415085080441083962556420191889337217678958257421717154397937993085121059604281313188261622712657226588522653463239629909396115598789190217450620770087876827766614962437768696722774130838397478740589431109829819303090042135224492557165579446087638210649080349266124235212690139099475953182492344230548999671339945243390343340296000526543295298496436022093449886781161067630255578217534839932533666104850168855748243016347088107393359595186678769277447847785765544503849109956272485690530873708068065420302233122951621487222399422094327408954971779008881880483569350190660686766175709659326983089315128145938714979029396412676987881064167180181377475212706605823435037747042178134753520045814961753990379319236283900287071543448018220421590829868107530497992593349872548674073823385290138076196313283212459050920814463536556519409292618953228531424116501105710509128925041661870304435309222036150240961612955876280671962982048699830873366256101047383392940856149410611381164762501165729224592573975565410443918276461552795191010317602864035077755459440817829472138429517020094490439655868721201143627883372587395572545359565861717199203906904547443077826708181986135091867542924687862334181353590501689851070691661871643379648457572329207048076295795983951084146860969370829855302510988882094853556958266664563561540437620925275015989889337211195823325343481543473930593427602147307388660869993904497755767746058345457394668787613406719937871100777278306524298944030478033955098234421925724201835520449539847460359886004060632564859859309261975685426848843562572447651948552232609530387305801491988111138639983418463304726540707692030767772624214693090959322224063948682727945766349850127774135327579943922860104442511704774576561719031569007276424570284969134424520298526551831779496503736368064286456980148217456104538733464108862201648063720021052548827167772352282729027540597906370916654604942624620013796511097078327611800591983979645812354557769524106357556660516628836147953422953052669488304137904673630846467968648444254419425534361588305011190989245690690234812206356728521270404729725027938364547409359212976102024850202152014562852011832464217928436307749268997588957353880524822566645528996344963605339527906514750150983756489216399028991209427820182699057254884489041021068923851137464144755232198683024300125051661844557986369659547282241322222657237876767985727610690761789004328983022534501160345147423086120266557623042910642719714521466941935969235737837569510552178699904101170786343841935860569167390067403587894607879737196064983357010443641729267630031939079208494928980652550753651438862572017683369156566775007895851535964573734080909928141548929391286251450541366420467992628924545256545774676171707333327059495665554237179953974633664757609203168189030021634562465429678152232042476083214914763342727932587137884192891453651225142461068738263176704078388712510966573473166311644192700599441940786973497066374109084833218381396349547706771385422473899277316253523181896857778287886111262175623803042426440206812736779178831073187644620736350609041599253723235538072068386948201723996121382749511908759664779525483825311583467518294430013740648215100274865271152153670387582255323102672413375966601265574036566456112635008659985763739822105113448568926727836753148459674040577924554695465166215470403356592822696523087331718385382470448129710449081109647573141028650376050584140594476746951244755541261620586968321203119665857309755180094241237765888127604772463433187162949657018670979406848128728188818202413972099416446216145475233896271703483726038730336083326691827995225837108440546997536272872473841266036890154291586398770433949719390715384634502793429501705391999343812783566164737671538084775298924019296725032361051246593939467572497710093940283240755332866667374759453455660954580591362668637950643416793538654535670366563732428509198493035876238687565107341383660722367557136646607432966289394044614761127300878483809514699069169015336915572701148317883807757360555073875647269180165158901699685411982564248754632677580987318112442124202476869703511409157200544244727680278631378441805103553528535963500630521764464360387367485189734619943360800370836747106866110870789989718231134279457330386073952511818902092564709871440864270631742022138090724574549820647656892284220306703413685431362234176947316628679303670006604185942149973664721922312796460292792769630370161278253368998628084432957353133184412005218649712866151784914267014791750852374361392615549563163282891962450576258630280848879097858565471376411118077143504736706978779376301168383149690900193108486623072768644832775748404286223687568226646838415544258890959521566425670308540808950185137905021217495525397900755022634546790230531603267788821573773705427506483400278212796017890018976319257688734044553074754704930736285109966884397207191145231599222802799151264781053325329391192989444428090571480996569692073924988030531693622272720759253136860427957648851748612947311632358556646152482283458566055021866933086169790906923286984266188230146550193335657186761645970018729016087473389074141703536525314492055820022930807236311171570787838673349847429288417750603469214059160216091517385258511075020122895739873615296932922819152842500961434605310577901704485364434313577031893028511649863997093562632889955613044194714323555687580033187240754107087073335399183134280352191709343492518895670898792465881179723732366298009766138439675233201672369211423757904442431089662568155567459133106013343603465583997798990440588985531408527806626482925369798678476234480520849021039357846453828661086322931550503397292925918734731972904194505332881966197132936482759016298546255005216103914714103457203569510448872985704094752828393578172841891080472479978051723757845826166014249378490951224402246556286862114758749033097515363632403283071391235470207982054542898464035935260420875049560348328779373543868578997724253312271607423734183537395840597415154257423485881358333995779503778843904403052585125744206991467734032140254133078536938846565579578184337916838256734146772239866173847031226089205771023831808285264132779910562238867461947869488948778330248141006568519616117323946824043735080593926935810369497279530045158058412604871359770267989337360851336674838393211220865247809546148486874228919023963978437007776733180114155967773172736738180716379873124176535785730770088742084926207832655870386010195290475993705011684651256630107732099806294431727356960980339539832240582604024296791113352380216197848871043071980792579637490980824354075367306684193797709017806604767633718777865604096071190016011141241218590620646649948105707658828596964685566473104679849180319052221964788077806686736862752876382008984718028648378587315773570350687230280774471375375353090284144303568002668115000423108044303871482180782493468673505549132646802615754056563453573332045496464831990294424433238988546479792109977199492674649700451276407448466197926499254134859251959990771230767540964287564302963978721801198730308119296381326470480206070582024243261928050356977662149501482946540147655179521698154357205365259916869158420604196904493239789416829659330569319018380221952014849468070825021127646817028066733969975171190250203760847188444392973649520106384414603629872793699123855148246750787480999407513819067389765271479879148352768133973500990689398667523940557133567181432204775013714922967237677252232107402376076218092871429132699631176168980762602402236251879965508703158241283889666551343949989684329289904127588475367595971537846753518665721666226164097157509591392910169160144077924767409596239068231621237223609700989413505626261601583212829028508508636101888729028505924006698782685979836697865974695451842008851811480990568125049888845794140411390721082963988498282485683133718482527024080263811869637360849785302734962624719995542950106196560303517765737349751836805791822064660334163871859469690442756077577884876786066451963685687325835525118417426574983179189747560230743974039927855899768013709178798838718032453369947433457284217762785550235451004383430153005058163637213435947541317110418152451764542940308839505075549100883574923194228739725200832385705759122470993310168573431601567431820123926875028924924975707226781391396436734200282595501191945072484900383347686521388011454877310602340848691506004394590660062018178041983875612792938909591959800168772482043987358859365903275550762088095889508386437554404806141702123275019176251241745276849389179461303858333406969690610684272702583103607737271158876127633598658292696012750407049829605935490454768705930396615040886652708025409368376124849790957032430238768323055190140950051125670541572669809370977233659532603511531751829435618125967681488824759717091207163460584665293113214196566538950733430434857027193747740591171723248273970576704112419326772992287928846019315193902273266889625370641304368344887552037449833206239723529242613952578713792819263401619117181987079938114203540031050155018727279686812668744809362473396107770137949856905552506663526520246442338647466625239525612454754289109757454789241391569288646415698001933608502583818538690544836322642596270951783805082072291540685459066486200335038104953051269109959941275495592786888703061975413098293327955953479347768958321044703505656493078505065334860167452514259106500851152151315247039503986923151253666144605855093100283930426775553280017198233296686140366211698993941180033295980134982489684281671173793768735932971917164562723604974870045725691502467472889035688361433465253003878287446578581164570890288138123121593822581452356268669192274520246376202562793138127709478789076282066925611344696045132474229960966275672540453429929806824345908200271189694673441837597912042833483673962360611238679172842626184736583206035366552137212348239082097872752037562012081537899046338629998581876684210039173935229814057274470963297874752768388554364069362793150142000064382318040620404467405699298907236694864530667119862447438053964430256172578933783079193498090878114428724466337920903866181153882817996542005194025627203166197821079825135398980847030838182020328849381508415906974313563767265297664263779039076552784554873121171573617447100892836508715688320683785248278711369319187035945428987854742490132137193284767448442224786204732679139132936473824827650290613174394027174191030770749194885152754005333084666256590868972602415385441211478110925087250578809025146302192410576399402371975984739757678721476717916561949328145130687160107472007415770968389500052209428931862423453402793120300801880704971936222691998625978748250201786851492102115787693739071196453939941262087063278027169041563065132568731823218315910522142376313743797168264136935159052078678277765157852540083038534544545041235574752707599217928310507562999142897208500302727136132749051501516627965482010272629518355374035596535599109212983314854526316775674535182762111637436131348204213116098414220671549379488620164564392250235438166301181311177898310664682961542448471837964863162995871582700982533728549410605001341967477531626364416486949780259898129998291951311879289981470489456220322804263766288995878115690366149885616351487685140413602686756659241393319311003475401454831564924458732972564673615433092503426661712769748394578949481895935571714953701334550060121045911182303747050667254378274486104879982718491109812060661183471682624543158896081866670363560524034538844948759426038077374487457047654323740358357821071190162092754293105264245204176529351539018938480423531554051332899254235828019975912342983340231206779597504249808719755773814544488578527757986708612009695891771567121887678028762853925605609506137555244297265792923128416072830015754148484605066831224942054601207485056833855122268603971224514357847925793033010763062015237236728670412702365929570765259894426102576828316744789597693724854540512235137198086787440957476309939886912717552583775933245397291100209478634929778944967370220512605743000690374114042147348267303489581345565477853447312590152342832218666080363236911381540261637176186611303693115396014420024478236491229027908667156333315300761483762345001908753762053875566898163052186591911137592740169419595189967461454967804795148586710445961259813199837114506430662436939009947709462426610971686376158192475972560743637357165951400893910909256135637513306475671417681171318285422195944705467243500688158068335199621268130320174574115749810709954702293586509389260342952019615745441604326840367994951009578035819630619378223206254092807860096209639155633943437795587813498480982199576277326362674765809748348985606898303371273014719954480788570554834897604069801008276449029366720686927025247409023269016545531452296896571621540840284125957012616495449452096972216386911636013160564557820550406156861213626676790814387706049495858715033460638276434106873508954611341034310213806543752860942821670930248009449341474042398350519731030265348167471019038984930854141540622379167349212667038273174271464875211800291401837481968114010679842546217143441747818082481356540663811550078382866273740337504360283985804337108528340838215366697830047019370829359054001321631285995826858729435493379318207509030120104480742658521126872959521757890549338388287327120602726052003797758388588733130905322989538042823559615925160587539676052914755863219404617410698295895918602016758707086225196603267414455365475366208037870658442765781555729089598817178682795426435229965742955902255166908740339880489310183158407191514195508518881066495424573342407975008372135299602394625209268696673309127356852272890361524072554504982658301131278661408718859762081013294344756960514758589815140621935497835510554217612500122607805834462195528388328078002119921283898313402224397042049874143277233199926568944873385089908790955629530982173716923571459718256602767869901839349442093185132125399554715687143012265092409920884701723250358288454623553829394650301485631092057793383079426832933242720076502036300858916948930605839683209704956457326731082769304557071188827823881995375150394058734820679242090499312392623331865133828165176670501912261648835995364590240531662231894532023199853122376374048661115544358679769847562171644520509258385919281356537746396575328926821958497681923989902959869784077753762863761032477382158383093968113792279380136285909226854021447491577854027940587068538468732044013993934041727578317049272144468683494949386388838599222115513907643584189910611018809938198053121850948822377497781612896206092330867315712648647349815471698080963129496396924034903204803219815388312366972754030121692897143295597790427969282231117250905726161683887789549977481894974956844726023656799985637941194286348263177767698585306976766798637591503991089745840836669534884959763676907460033459888026064660386114056663066138612459105231001806052272454670453807899842827230908727618044514138046798417321189315110189339073732396653552081701910143360529765309689151633961607146887583250297568251958244530100935592678211512404469881434544914907239730182470441141134785270881814883792510263870993059740237488921667310571492162365199692938531369495507224425410741931969520579684992186697091025945760307289146641111107877053349558422508291445196836385433263392157862378595700084198027540821133597413891012523399858309518621628489324782596699575851824844843646816058920532350723280495526801724392805583300287758834471302028431868832966699141309645598818563031168201181962323358279884360128643141559832495082773125356509633479084374517525486778967679925002311587320540902758002885618660976848463918938371763823679181141075512875726857659744655658584568216272409854084883064759051246291691327620937690332335337585430633907755886362211284806729367347422238832193914494115931013486697399328303225137136102191977694195103317083969989597471669184213053169240196269074318833285884204714591500346543146273575656293217644963184005447183246550404962329371042210046638814021954589658353684028215268045273361598471402575218821846880242673295935773120487750894668863427888714749427307721126273459207162360755844473692851651148713363107457846417620787382673029041966573841100861459180978721331077178041208391148296781874851713803790330954004412641017764755262043385079791329486466174441056762273242201428604462102698485047357860029239520087434942398236170689112779314590795389419273895325273831921822059163232714209352027362758255215035256271932460420630502763605356511670921099224134373095840524919277399355390749630058839938202736343446438443629733233943775972236135755834062450665927648820607149806081490677980550548285799460282612573353059187135008806266799999386589442517479885853686157566510540239306936778772163416780759707121989269398473058556698758928556980733817459970606777641366765086157332506310193131981672206918486187791717066358404777715869560980721119823106419361081080943789634741107401134902638680109486395858048685353212350589869460275348678688583275422324518168271287742852669213012108112636436806975249202831311890275108811784112818072402293951389184727459224770159326352973088035559700432395489654179733839409890295854596499562598295885767435174125309716251641069819595489168579987026033495825552653469345435514580272978825329477074709315338133396182540842032125594020691120170532628199237488262314465607325946463010261423825065635602359764270642823105572478850809310885170361346450235095395749841951756314257694606522011850546545428298847745528442300582182499015783661501677781406147079617050107159800768566382531416494813728167119370099087609251018281260643924139018308990647884302339343689318552107800827552086493778748507838140194921621633402760499690794412367531572200534218464215863683093384607069348524602552428737190236522967642808703611316796989692186228789289574917926262276828281010571397307443345043945920393942979115316941105162479082752931856899331765396521693291725745602337360997119071164422767915134379814598514170325828555972192724307652384600296503281539444451530255368356633997596339917364153567443140833046164487075755292590224908525250947543432188164369710785133851948124906319399039921659355546882154037186225517168808033574204762232496549264980344284559701210226559891135819243393750162749692494511177501993582303341564058409757992687885007838407730767228610589659710940045360052427159294153698982966287149571301917249298212125089350638236736817295904254435801264886847614223236772069986541333186865955413007090167058607025153738583520453933958270254198597121867322810559842572407395224686770737150176913808162633499403454572334232986426684088435326010605655303183826068963242051439208184906633482404039527992385921999519427445866773763229443303749656349100433047985935495614571403972226921118010993939509036629985279060128490157553755032247444174399608957684123328313953465534285664506800401423681816287764097367479373443791835831717506115907314490039594170473472882515777506512111171255585092919948414534179444365034678855918729276666469211177360189364625157448608083358640600440483870840181310997616579952209863679721216250684603719648822086977072746295329628582524790666152424299673202295353332876471352185183988088876154071848916249740791720382315807612897908856378988119484551850623141962772941047905830088783938980092371692103479240638833621636869976265705363573904956753826470019777019789320650590250854883938921467463130657901546488208330401605101312436578374371752971433525034297741598057779529286051012233757126777795280681604735192294814667119499401510855658877155335327825803671973531675327887876690726474654463569333591120442717598867326982726790336576289980762671096667546657910098663177009374012349660964400014012578287159168477290587798919799740705851431927916217117124917307652717786608881430227620359055508717002722469180442450434385265062513554019695866851656988623932900120263476941880003343424626510810539181013436447588057357228574991365818690712827557923461133352604519258097989699893385970416834082326920548362177952593126101554020830260851906190457432120140650982408364234032754377683265883141894351486199086054289127642932863435393170266145500485141571301319510772072380125087354954587003617792536657848158546647623272268129938237165869362701666748427025669057958330779384814913217116401068405056829517537798073694193626899642423103512713891851098817074293850132604676371522680262016210117007408098595419388992392626823346120672154408204984880818917498775447386758689856324432258744832320991299369304211308908640803694751634721488716157511667189118324080194324733429970950449758696495298523777813103864218083139754579100330142478988815469008259666074106714262049883094553910558007519322657641526548960823698293222452754685324470723260309143200987854644610553182717843225473921976890969989090156518192577360245032225638728961102533730920611176792277843549950612968886761014669988613646128889717323459977544127044329164726601784211091192574801523054984139021384081546052226645712430255935111495181043415594198604984904006227214796457641996221988081198545959114421611302589017669883096492555957417644569623758759501770879501163696751085121521777776229460680139409536935968060869786429233583166641642544714600134836760306028020018812955802011712335557703322485052423105627956006865687468439836843946793002606917812769566585588908775790738074475335036066981084052158495494543277036251538478854135911414718497349189978696933154547339609819711324656363047600261299833284814454108565113486601380826436450945027298673890237858377927243289918881825706406445376508627817610596180526169928769603055287861425648587303246424193372182578167041530191468940779510756392763691144943384416169535821108944392985759657021300220904715821939734666992814051636912737938845078230425698049023199608694192695285753026926848474368563955122086700926719896856070987794736008020481925185341551256914201778903310735563784346799476114643976270669199287519695963601120362385929057537437461042593695652449384078181713304236850820852556701511375159249756007277154173455349490290429123547210565528533681140493683953603257061363845865793011513236347388895175990609173276333451958873139700845161588516689852291336725083525487321723789048993613618041579461318353895291465717448522876297956455978707304805605154761914695753892534846854404806135300087436420518080298690837947629832231998039816101475932289599930801068835998668282578334897410926067990809563785512085851914433567869137611839081270970128647346669884535677416776858003949875986823436626785544157783977255380991263430294472967206403994399590489286083675655856909365109476405813862125699289143193924226854580391633817061201615474756271513820748309959999488027851783212572071822073818915821481828962468446496912742954333329364740476302470458468597554025880345054778769336080691422272243172816154459520270432275917506392820332059983759681528918634253851272978713848096651747497318722241417987875026623592879286405282200584611570043148606987998531290894342513373157071667304646051791133637001622572151598301533694840513298087492208982671548378894437214031567560616867840865732365969262118300119314927082921796342774298527709889541440856157786589349792986755950887499995561580795743288616521726354511060173432035606562486504410391600493803188315948327902670248216817032709143997509747354091084434328158691864391268237251841270700166805866259318897865670691713513547740335684008357359546107891060836286385809587770535210967650246200439010133268952113406708227321177534526905597009410772465871037144976529277338156108735765523609308803253376518016557232647221909956657593487331217879483520575807409901566266704319971126827499649586747856691248293490153421733846478904563689131526854404290016162953951539985463139684024714275560988149499443364713284953963986629658800142135200125249387179392797670584914268710820150299833340580039874202543013332877857629405477709190338772593069915119519119184707840223190633935427966621148222277336957721680744925019937276235537775821525897425513186340308463813056539897128025481755105709698100307040162725720200271070499875317683498773952897125040537115275277214849640039263837339979109912049999316449329995839073408448981046619175288910391331496404092864250838466907613440077979795189003146228873920218813862506992976897917050307881981278006298537063365481274569570636535188451187940760778012835987540658100372139863407970607565448799807976309503357051723769611611668095880462346221225453084744481593183387420210146770657472312835630336011490000367558192723642570096691683838132785399508793596350304390102952784985347777389422964180396788323993829772919950911851164932370749543225381895501977524434292268754554606401897484718102965681550450940092841128702688155488570733214606113499524685665988286787086452600043383933453837321001948020492170875456183474294347415213478102753129360792374460682902635779065100148890370324301975975406352746734891485422319947623295743944521023161877800246133562110212630249760807060628296120687157040182640725389364312448204577023696813626592463958540152647587434292497215075811953262892213242729830881977737180389601709267703513861026379055293305594843075405900847783651813321766968948470751450777199232496049369027021442409034041989637113771046481240490195493563310004416542385946014999631452345017438767887080063794896302634441608023171092953877191665710019724145796409688109918532440043408896700763129896963239757098714830054793325077939751994026770494239503083528683321466440586456376456996150384018651830955089164488503807190346201396510250813487506526758457226596892189485635184734987055707246291850081391317473592494768897821956100795259737016501283525508993610595563912023075877714120654789395786684772114840567478861802884667840210514429268712805444457302706944425905977193088773493297148769603722650710139527172441837213398991067684728635284536084488384873532949339842165116559870252591154356082680140522853512067783313831746126748247880041754637772430938836579564953085405082253771321814570362874562756701131966113394847243636964291405333552217898327344784877598821678265793872652313512674054770412310046364090650333264874484553398044210161513988042610964052166247866331915871655891844785566565127429179340121263770752823421260834310654925128871882927434591786916393567729102359625618024607162804142437598417722943188526702343187921617862793198787034420649593300201506130377489072704669968619357270122408297333971598701326771424551861301384977676429003566506100968931626432974634105188222451485801499142608345725691479085296748823405292228909185528409524729652989477289519769509462035525082320526384001218777215055328521628364117397811880880545760220521169843507426757116783242858042499509681281845234795951962492772138675706739537872949664027345222032378292031555239057054140391354712757381474092228253822750864823218515970782263950023028556086862029974780289293753522227583175326454260281377785303756510970667599806879290421065453710267762620563871886127459379714130837527032539616441190066087747891940314803496979762424967952977151250742317725911790131863447893926627315594585044503539866655711202361605403714593466213421698994973521720196702662992645686058748392089162363569161921989141798851522098200832204739824859046641017882882724020911116603996001118008545453986465095753021394672334795076348783347120886236251726150674774932510583607443644331656264718633008252428110184295204845840139231184624177685090528904996507504763399591692695968247205470408767837431510451274928156151705036510805115902661095651677072772408138213644080438588999866096870726297306976293507160362659858108735036785823817265093287889753841953939321536902552734867193007259233459714100292190279303291813280081995361053176806266742655113907618392827444528431067967213707848163960618154952966830932637952216092627084585560761481349296308488002478653445195181041341463609768394710493346355931236738196440361568727918779064036370738306398991362290069296855935535180509351542222523804666250391757014338687344585561582499980929072043634234597044063782913366890382022963006073149991047556011981705561694312252784577832495398626251095652622953974796972133560068924669497517649884677957351585342667338443957253710367865726027605179275850960993493905246182765366566438781892945560968634670599709456967438236191053205136309957085574651212994382038909529275057131354392838791243221495576560793039658944516391447530005250772015984560603477122946789219377563212782047570722197159785960074065041330813493289749330234935681854411216026941430503591233781975593773857412768249775179662053839787005920295776578590817022159181203014899991598002218140267522453966341035655432115769971372897863747000465865940441539383599863311823635839651917262444712866578164626123418314684607397556407691423981002486072220011521062272867529613873575724364197337312063531388586510643632676335715779292066939742470430979362354082850594079343560197822908201769748851286283758385917932439582993358401217662201774696089421293823390657853002366568318052918813647126400241603718083580492522941754995465864165705799610946339107083121581314739585435367736375157479989797828226399578022187073818134054940082166186962095561087720465739752929477256818487020047568502355100251407952243764176071990032107438695544268423532668946405285781437195002148954936072595745483810039512719689237883344877599776648636592878969388972970602068742337179754086020931947596217000797294741939434987174076099057898688422260701621849522368689714123795336875613748055180629028189953415980645507238327880529084022396382123323417603038201247776151468639382122746453233074181931129871558280783299038670668618488246128376147039793934156422166406164691284338354627587025609096105052875158725432927649160215317190309141252770136413228411382143029111216914185157987565715430948945462957975737795701677420956306608286668025035753396421236645075673686470081674750917158584948748605863482200363975754419746240934899709423723796173734300808603396364131499420902926169870781209367355163812829432832466058919353961668958615762294199057785889620254913821604049284834640897159618245856282867915022156567778276201030771727081303887395452178280966597910468249164746300914945550812068680069497689473257650226199141568514356605487568076974810432468762621812664383106700723942402982224546219097145997185277728899913272460591714104969112758502446494153692560494918428668620412457169160506401127956950824837019595239690697102133018099426155672161529308059169898254281777249852081922499928906059629772946871264872274054189466334409172099633989632645021566615434412026996403559298524409373161733540260569566593559078945539773932105965739843295949575009210664864910115613143966449822838856425309655558364285180578000405712690746914151469458816310017215491410044254605157176582489794467113891279953874291683427430964337806553075326572336316720700673212164865602624013615342154721426874565990120106030428182837056232393319631728456454961190436453694528687962026508751856627708619979393152140904140177838500172539069950307045800320652946663480827650270763059031260596794690712884498618706043909287912285635044108907647912175590525397053695779843635744189841525144345324180569453755663249061199836565082612556837143200775120314133706885694018652607883885304418538320008464375380233162638141905694441802810380357290210301614162689845472354867352861844253586510242268870699851393973388745864966780885389186265900995375392728056571261557782754346178631642887592824625910526152198800979618214775030543895609329111230800363040347297223158971878249834550091314632421459692685318793168426172302107177957022602160598769782935165802433200800789569161343288271255590399526488648759996842570564868334692664070192206635938944834323561797720701844416208669543448720875076697868907280172907198023248241960932255643940620083549792517202770285097194017458094884098975729629330211645108141200903055691685391458998257149844323048522922683484483201217813179556245767269477165912482903660641213629408604988342446836361326912734737012520846367038367685672923257714513193262474966161563136463827099030934750680136046830069284160148923139652743199276928199418173168083757425788089722741834727935621665031095274589017937878304142067535613250029449023233083653166318476317942055263181967480628484875174944580396545366993972899669536768702525484232081886348448227282882940068491069389576225357056630551013592929099655055519377450408597629865958201216362113918178720837613501774122713042782898488031731497451700359207315762476696085549168833151975003040684473039973086217132834320593122011636721712408082494974472285081679797638445591873193533620173447570121798392785001154851436439613971642791343337699556923475553107139727497447280646100680589948839242539346243954127770815810878273453811664237827317881824566853765878205251806041753574010795702199589118773918874979828298408997849441420121035079120100926457841426131019161343796062059840257524102228952849511819743632292960392988066030605231973828280401418300534621890440758456056131865469605322909520552660413075198713349604167782316221458989768315117082953535658347909284479670247279488927324943467364884861175602535262833449128234431389937873571211269424819841054355453485210893904040507077388439487908766288668718007629358512019137945008920555854495947626163631186621753963879171073877221680730304541742011691414162819625106351505260133702815244699426696983006991947627200308987294276348637357899902062520697739406980205492027882021037923316631056311287092161167154277491568721313471590137772190162340956046363591518497684433570844884213879635318560646181697397247110756445788948372097849598372391185002049221890506567850906972344007937816203786031035974628043363669215542072894473627951915212240329826044103665835617481677361200704375013599086354021198558686926736032151670709838041255501386026227490898708578397932179700956198905027320118757311320244460400430748613739523352606081715196701658236168990093362377379281643608837067734743743399118980008083825763015686694489056209730190612179422157658305591737425345948459268784637246374556789034861171613768034492524859975980473969825790383231340146496528604991431100720974997406369320640577516055273678822525705330941159463873173317601546158725194573038335854074887574017279770822239130609482051790136408843171712738459269555582695847520730970481283583093682954707092994956243927657465630063104233402104657298333275685860220416022132724437482247327885917335537130003711397621886321137240015215118456739667889818114658306207723017740910163010787080740153306499502291081609873733516032098307079059137223628144531095137824762156483273809778231653678984079198282522574543659521810671328895211576155482679244264609741917305634439787015248146618108781762956793421830045968912270862093901343880168800859970359205768875009346151438394717722682719876499094635027881295516313908606920567768352117193502664645091592603776019567395815216086403251933372679299335703581269881793347279943637809746284774671194725661956749572330285771536562950570730314524858452562942631950472683449054907520278682919086431823075864666500070418901028649411965471574533980069321301994228297734883263338584657973056032805026447153538621675311653693971977849099381767116870552415884838388820395896011500617273350934708229640776949924530779265995108224642415381958693155316190713190394743378181711126224315175366873417371737969742063547325421771542537046945705669843182787814114043633615309273035553120776773090027961445589437112154772772171729556225444707533518272361328653503697552823021224308495002911619077323590442077674205820228852974070778758023997561876540677975921852827196240950351457420570222161973830844921729223767601442118280629309197145319620067283394292093352481216128771240969685164651194922181336284881321219782594458489836691374337951965931235519730847171648172287113073698390101484340141764405566794537621955467156430219469756043019744864863523223845094675098308823562030769161412894658270729944331083474634649740223655072349304000366750247532572783629375665955737283010754326991642667965917559376562991338252898843401869645012832080861912536759562360878422822940312161710959702647392563456889643531923481064461839704909622591512930615000659323873250645600176824106430519955852080413897472233358318782621093870531572195761053766155809929620383088335274409743709782392678359215012750076423211641761923599709961879528211372471723334366846474345981000125434391470314323841922524734166414527545627795604738482056422218924738312531086433598419659174335909422419318538121690873278143406960681560502745204582600964253556193752491275519403361875654736124893065444596246344351518376637512954050746453440914840787116959298413949091567680919589461449134144476583511621077343619436425101899552712018293403241659467671228246133366766850710895324575002159209473672460500899547570338966665351992090053737272975104061492995183834171495065792902624307622844006192760304338466367862314193705449864058497638268001588452596416424962232393207221305052630255423871046045766932994210585594068397319282443430457160871993078529095968764634691480060113688488404902390540375051513843730783748516510150428394705961383785556723605025188495944999378728941402561407862264435367800818108337530968250329457276768001503022378508749189169110972496473608082532276898809374120286632243114397702571369323173852326523832491832412174131232039389030197649746267248011925125413944425725973690256092318435860833875671674408587774511350168551406224390737992560065311808144221333776579913242370829884487164744610044829904617502978091395550718361553992648571025955175636239411765168141505477111118307123595284616072870025877115375818478238820132738358229743173701061018376279216972488928891973299065866203597536198231583177045939282417737250594103970094936407199991413112758249404496883182254181514013910427673957287896637027409596068275520029912061898439961432443013257962871611752375822997167607839478680993662686960810069838923681608194542986241978116878446755955206670935418454516149804354082239272864327883099666481792142722837253081922093815836664462152438732081545432021684911583697422348322563814663189677767295979859540280422105501124899840622908577059681635786403026475348741907429861811643095763982877882669325353001414710599825902577207456061019954065099895207028767404514275778085853577131453826885777856993542948287223947536112383270382006462817037921510379743760199634958508605796083058801133995310910754139480367810982024077279084947285244056754428918400427980027426962255213409921312691039077687975021098795608337115651393914422403567473318946284038190615741581164963692606371708043784234126246258746440330800957548005539555730423509350957141444677854002404074486322624989492410988026294302265457452898695841979350788304237797639383748786747945156440243460705777319371984128948174840515272584982525906699733299550975333478491313279728531698659194658697075058819041409788815167364839886970626876732655670880517393823035796686080959933179122820033609560315075183809972616021824213859161406507085298061206072736631705358620299379008062741591658958906281000611865689264700856099060677491506450535697488269792528084279754803990711835139848298617911130248687708555989867529458449327910389002729930899179022168403095550684182033887494290046900350973151037312765869316257386373152869628421189760461875491860574287861530998923341444084115490623242400898492002522153030953729689736761714734036956304735180332763563945078844964138495727122020932424883794258714555429215817243781999808732760650573879347684287503236881344550375327980352606150197652401270707474497579572179628168927801123775605586989729255582319258836751039252457290410006085537917748729715564848312931882020298448498212869622084968914971614635072062271535993540426210201818859851361947935073250134256266589463612541254798405694014497325053066686749118565684269927919923837940516150556828248778098430914453605891668928008484051399356234364341514541617245306390949237805002877398450716800894007955276731514014737952392626354565508202869272956845372042184359274732529796020206575860705851040197809671256686826257129539209363162770017935189172607198592337686441017309806804652696142862652951180565831529968683757100427103882934172444189003144500839812293139974560003850686330258104079278081999573305987769974935385442569388104502869703991648666825603807115644728628642217315855150478143433466358422549682997205254835030008059504717298095642700499745055116520637958183595356388522343701828387100533257745987943113213334228995730031471515777336418650731488721538869059781129280869703198009893789718616321834536789891656253798076823779927653049401359499576596229927283797844689658705276258476507036495722929778982343012229048858309002518141691647957658359580622604114608305921141927465183851710839680546270013224367187961974973761103846176955487195028915561999428619896609166937012064814802832430622299973631307265290244815078240406761782515563406086033052954326951535064387984206869595784357973732415723888520805504893672986656748137069087118094879232061836486210806027908029871281633568343921260897995963482842153635952045761406430537577542220005484839538768726732388088482767887874597480259076981832712525827306959117288069705644562186505837248496215916987543345974885217958631528175384027721463550856949199629793915426097927113299537218183567047019733298086482713377877911619083590563499166006618716143143237734808386588438694291541677312905119289060334856566995091427321400009304826105391795236198335089588779844330779227244857243140290393503976931791898752533394803173671886914783054091630691275552309858432367231727989525935522134470295989486746060053996819995442227509128169465545248397727815267093242880980016375181763407479228584558421868922265709901363103028931785261105223057810541244524875501363716920348480290259835914457415269331345065475833491093055714589452438657003733505181871513581112439491443145258109522894290890455513323268600543976271405024572527578655190811853606651705893783805359382684827571194561754920690546526251684290344801420725251009997683846860389408246645930048057005635237741246616619864118880089952372751465284507706214634053167108221336982051400850460822183561030176143205965259462169360074505078623503984786448884888808469641398469661797511709288797563445249102332275047679009057202287507039450927201194510918027739738527971382707123226197387017979388246142886340565742007121966932559144553950367624684387491521389002244401119208164813215880294440802355743099368062468474168159573813192108783091613468839105525205758689420712455080437752847409419975369060535503920208052632182819796697051751866208667822737548669621652115180926782252068889181760454233259526801394608768737823564669231593192910357861852763160477155605404728159693466595857466283140114659705035409235853047925061605911386961208529019419964958294980950496997418911526068231007249521966647686611002406068824390710409572612228383413242517255410184027942937203301281102619908779203516934097531806170022135941730012578188113466724043252196899275892249586922956308933825762719035494270726763270573037014438619609828541409489630835233087150557015116123879832229052488243201884218249650459330085894680722744897106375030212672302446922432898656056669160973582616694936846685534224121157512629319647710540350082051678923119929802766906263457734491663714806378907807354666249695814027886952238326201927735359813446095211822969615120658577705779750642185561551581970512391094547165455052713901345233091435656111127601821143165235009966168500249836053939675988138332923067867361505476079415871455476514986380044525718392523362204830818265024580464559736617228198375138520694468109948969875598153212376295076002684997389406389711980781854093599273837510829653127304088529909521809860697951489526678748118150076594333164371597838766763487114970238090991951311938054713566531743966811979048006456358968235771751282062547368575410015215058299713268651695756858956188782734034098096572943407989949151178138843188682537833488334106177489727807649362133914670319128147712316193122656175873367014123128345516007632291134212820683707136772800347992836988491039440646588657793103850309727692008649318978201129630226738784900887770451238251143842995559107576512729212015752211145394855189295872607040042857344404355370339156988103745024590318321736865305905459736508307803148419586264696594398586805017383902361220003680558294791748287123268329047322910721588964143204147014984837705026323626799534350360046598516315332394975802554189216596772282203762187209326306190105864574402717522154540813242762105533076242479822533451101915215042840165669184986125281332219422790962809000513325600029273128381755546076133954716535398900788539623526975696167363996008983994475193848005412631445262654036363467738346106897490079058659649646524082538271162921848478449338703752110841871129052521444139929384687068310556237564440392152445168595459028269112466579461118423843384926195032028690505474278600869150114613826882690938805672929203990970142904985418518685673061422087243498646911872144034761674311887260793987960869946436322171534232948928780710274890024447417464440751313908510331162534927798861146173706726238613646786283167221799970965958348621362644185494829212831049185229730348159713656819769036936652316902930811907307725674119571586845523903376789622916665321462347103806329072058152463179644421292636072417795282103738484293970406895428649445627777558955576598308022252967291115063108819323964166739595561055840714514302149544213285216898013829233135719610941731854462837785082912247660880825371238794506061656750437853372423787151970177841281336106296411328648816397584888762032742708361897834040171738278328369628086915625358528375804202237908884559861830096351509436857505526403383464922703558193305981021627899005596292089756465286659283494862421481668593027623354549761886756300809469023581564360380612538142575107161515147909440332015606480239319864531097303030577593325643051516592872917514950092125501131107404170355560223812582082138143798467764014715009794296993351025491684752596661240466424005722907874918228920972607402065172513949964026506145019845258554889626001551274367554632515080985126198591591237198839898706048498010047788291597189889405532926961110361425016281758745481155822480262769074719122520800125087192453616571013995432286737725355838771250080637171764080286053722306575668364897208381839621644984773443628620000771637002293081391869763181125383693215515778671430935192686566869226015749905020364736477437629012265819028013635705417905646876037373711595021449649118074669142700549215049211237478030998940297940617404203792729644052158931750812542252832700538412288765155027006913643326663650935445105692031692882839071716628365351083421781773645838362150151903531383603129838741650602389239707571489707682132138345063233101107373386936017232988981158055785983409085194774849638729125114937176493239541642335199465488754189825306986787389616144834266356359043063347684749536210192461039753051481385918366113434614832289351126233247651098787016667003865627647140198257249526648504326511387835350589729186894474230363997521994446956375491448760720860905884392216598471306139343194711731692534070099930859537538399441599970714553431694806038981732959927351722415687524888484656018356435511390944141084833525550117143731245403553874199759390323699800090308933735542311861113680631280619474070949428161820209010548756104393318083058194133670969168978760718985413821017716140790218697744809228625813658219605218706135788923753482034623810915835333713504784283867471672592204227150023310383739675419544372066264990966265662960137698423235963709277793553473887550211341715291502159377801256477975022240666027867233897621549127389533258157221642722460332229632658983326326741598398411344588273642555976231070389726695842104667822877579939477467740049989505246584357306008345564642182104695257794908522446315392920059132369542309943509522533567885916759265862083920139161269818459995297384053783421606333894993170467688735988241881137939034655873426961987851159757486237055769650536504618421197756865276166790554767318051368427646759780004696255740147754854789264429651901962483777678371192639687351201559150293542215797274739640856864971004348268820544770592726662151584974790998188449234133886466076135671788271343626480778687763620760303276209001118454326484735390207857979094196296618801321891456017689491106958230202931161501632669736135245079209467160576335713264422095876716067494860624971914144229573796358062028560989592009026802589322310040312260450450247707000344892983730232616537258441346778103615765375978276678837442799880008876882984998899232699895009971367040530032241150812238994036304147647057250255462943078707296247570286031656960648816794919756922233442259430582858702069795798083326564293206248708612020969020533213181649943010458567658690987596197698186798932776343524502026293888792497625757260933483608025604921665169210523702192438034868044925942837207020973396387980219624357313616351843791208170662088258996580888369675743593569700146810420238173156924026703060274654230562850988006283883876119855205469014176864569309836253699715925152944116685926850476145901881139614987774949949976643986159179520122433532634931216395430592695647318239467235391033236287761934066551068947797876756751108043013076431367202708092644083684719395668807437932154915056946808300578681766955368328176768247098162035583403784440715085582510813649954553079069395659882312915483142866818965252234726620899041343844546924502343876114414698587987426924028776222800826377568073464299395900963402583133397471391815010969651934919368885237358897379241512188248407632534473097651503645282701607791222654394674834867912931504493355304403906945025021339806277768736925218968217893830547766148447823825413932676163994514895512333936016272835413865766880914520198332486295287863223517237287247099038575963529758888333272991876421470100084158063200770115131091959237556826516798383452172973251517582967443351672830927988345234738451824398848341164492446295823877985375431881631629517280417905717834932364035706605576242011982510163300342001696917566143986837314914952381096573182347285942450194558399262800105648454147928334546391492972984007690610417305640011760428061410396388121897816276016932401559518864371704437835317896680607736206781967032840933579339193731387226794025587893270413713626910872497549732530517737984846681182770117302619666714678396887122538585290205646352282373768699468281377606312500393597721517837492154283787954249385833238060452312454549657303799147680398693845513195556336574846203457226010703728616772272047073505810570305319041300696132965658120474198665956254931472319100786142241682063158343754074559830104267959792350998282417765276007422984749267437838130145124856650833884457682106910067858369503754172147189057145087911886194878317806113791529100328018701863752421426969051753748984384467890825725231636583630425338984387558037299514625795832784457827125530270607702594530223567776902426810711047446254631627676330733312940714057237957049653467179616114426565404010715030530471282708622133065485255453071134989025505412197553797262516382488200967497687760552157650226109989009104730971116515683875234598828355048640261665199931072885342443459904979139691994247054413305930372174995972712724304810353814832859679294613731386705275586723523147546358992985212762968143640028523160186635202963413996130244470425566721891235252396365569040079248801746492110083493609474006665001038630368851315492131163604366481045036069162435121558754966743651647544300610208604813960859523756093816062387161620887732289426545185027395878921708024188704098538868744936037434603448437793903586677264989741315843376129726742963984820812605303480578515402327228171401509510199815666633026722769914186830741018082379228827054394527702757725992781439674145344926242702077158322314902128825574100743213539898917978480675978364830457217394543212939680460283437494451277952015833613428809842917336633804183657249661676766145694508011506239901921713901997394413283357496475884490126385979596831795301371289163740897955671739883749804745516466800419499265262435046257007217558503069218698266296635235340003034858032147603038196168853491420836861268458326925598430645271629713858684860439532987478075099132520869784385446694282140152972329019050834163251179780965332799393795206667779555354230744627232671452730298891895731973109348142250187058468448851912262150575212439585336587592366671633088721308681769460696763625765708261507816815104093304831533058707810769799080547295171289113310495463307019416882724868032915409913891384083125767454162612276600413951268369904790576714870583284373755287938956314598875438960116451789838899517237508655210354123971092938499851017731702002266239070639785173665424873673967658275859387765838411389377128356366195136664376243577771051303323810469541285437186153638912025278579537794249544083185632723970261542255927910512698269797125254108206409722182082881523167270808141379115829902346118289398848683490806454174170201978287075081132700163517669412594965763231052363331052354061926743530007290974992966825381552112985268014247707932249635161745610984170403050057004938630887314436650141356503535681710158830083884154271038510529987324811510910590958261799320641370245277589581204934887716732174536736379719386347282174617685494486457993168303484082286332641410059722070969976446651131523238827543704707440124679852563296009149925136977718675319311551059142470036991071633525924255574939998049781761464284683927985852912966573179034687075923955357082591785279244124891758522046250727460355615196961682954165801694714540777966495014088570664578925767936411503449719406244963024633078842526645661337777956623760399017840794936535619953033862685974749458478158153640776544871336842283308837967849337757016697377576634056527792691817852514918347923776732754556715325798115580759388303535503314860375407772135209155150691793761940225665646414262686716438236424120094260865136616177027219989761450688281042172982465117361858481580757202539974012240014084190465992086003097119938817399040132993720253828161579616770661907385921768746952434876578528928274243320252805857328805838860188598620280365804020340086424596260976521048717844222389691276013115151874537013239196475469030588040013461592775543252539212359848482530074734783972133003622711216161288591806607429841059871818944743431620832583410819948630931595313380997144977522361729350617175101550681676892027597720789980932457432508448583697382194158557432003348968208549103510324478291432378730957580110201008815197725740258382368372911285370538499859334661926850711741742028118848859660015042711195473502875004377024260562535077474499201032542578886424683771444524696925006473148863032232519303330192434316716368220649911339852342675854335015921070068259131055300602695374215273790010790673336961400849340974110188467409556879614176554878035639195556915737842827134749123450642354180321371200386894747258645874308772248159896133188605641320044652161969419712142989065378971339529156718516817861971964352939200444743344991209807453655670054866693521567737746781208391914139548107695560087026435802186455222803841124784739967109344352184537788890292525583215043573113949846773946357192844732233415353601964392782182801362129331163489035090712228978340422491178325802368516176831599005881964285355208237159435383396452629801902049972597483576134826878948438850665995590428275471902428167912060863854237017739119111757123554530589818816300667494025607080085522847781875904763725147709128529690093608751818269596764899807644680750844407934200721785804464044210827458761134023517982541067919477353640107281703399728130845567836724746079350107510008282699454490391663457620758433162737455115248005650965562170420406041324254672511560650964112629556881573282363573769473190237854266134004048624453632567152400506597191344837932943631582676725761800854155362755105594535423917503604234037144205532292591468864534767407065439616823750684284894310573193410097891294410541977183639592600898617302021548857406310172182725696786158712772970685184283830106137031258586733870273376413309749571253453894077937072189627507427429630848348971157379672628144265186906355066653538581343274248196485900148436283230682256166904113211754041062734130530543533768290254650602426339847330018583969122865190188598093766066200817279013979042020178133296339876986976955779818193170843365259956899092643572353579005361831790330697859139964214868623399165219290222500489331351776052060657712380324529347884600064979746714405919711821717594245221172409231566698687333348649387928785578881493563603517974794708710247583561148722522798603135498545278003215219549114161423269926013524334498100400979284829041326448124347050567948443592822897491900393674448187175344014917191734246421921427958192647549026526651056680886890042579167418944131796775694008706659165967699871656556415341798798427923987479113809428526828384869020479675043414557282808626075557920527707075556292762917699126232486459258032344738274161618636607270697132688720289829989586464152697442199429499907946930475719734465042147947427577572713520682962156130959029289561207377013205207345165158084637965514849752122044253330423576482662889572438134891577541865125831369550126281810523445415341488716370796256988523533543663711185326181739486387751846458930399888136681085984629235454779916788683932837506697345877281974453149440818940456040162759592817483280225949511471116948320894284704777873631508741626977006041885717441023379581821846947650717628854517226199156321724760778081317994468667163044422385953972831836302335175329272725711097366387105186823951161158236038970464306384516014082185461200523955191395150140524875516050491743374600726441841203970639048479491991358816589597245405998253303372738537573467968927861024030363309420194070322882674045923323010336586960322010350693297188707707863601536325928193562963786038106154747053096972875259542965807876848763929328791099607112377697948877887761249732206007600679803683700953644426185121306503525161941319778848284170820380617275681340570609413083981675228123530269205604128185042221194592037770191025089564746868556868311570667558999735704374486987963194384964155138312483572020090865596576000334574707133781786004574938217626435146886643817409890297852629899194522317562901832094220779314304476073715829772170317610707539680631546259082738684554242638624038362360062511209124592438879109873081566242303214159276222363417925637127708572547222167293953028143335421157783224503000078387656521627046978972567956953019246686632419143421067967791142789241607960376470379886782390705977734376591347322675668188918929984470275508026811251712959386933250682913321109002661043700565051375228051652899500377152622671677706143837959391729081715966359458738250282875101076639622381855619733706888374357859904792407192257923012554041958359839742148975871295965070278589123735423190193122065074088763725028560867118712295908195250441052111464510673745174453983671851259992150766569725329721174415947595243677838185682750237357439774886942081576725973720257605002596203880705385995941160959271831463103462708151421581765648703104755759335756228341430648552715239527166685714160878661169356480249098788230235453184313285036168082910863173986577013520642977246049578715809437901027182624571720064374365571051367770724017936803240281621270743216613838717362061218308601844144775948343222977745470785966075286184420182336649221394272814907313051229813142037342199691172545633331581891795870103684759454674589975252091411420135672836846632921080371139043079926505820761489821048177739779089938632285081255011030694579651812839764544557102834057934471608378548622961722436963564658236045957111458220110808546431140280977517902453912628078717284175975361123737612825479373671059649149362913489614110721403496862271980274416166793956601778545052951878037416432140266353012691797649892637935702156278937366614974963270152171025279096168984832652673188788937859209580218543820235159368916508627682340333781040257068940461170793512551416938501246130670378226119069094553271550038972965320541468632322249684251093240803905972710574703255461657826506586937282647838633781499770695865963264819685054002353201592659632097915288317940234443680238168141935948012948928480415109589094493799564738018026068888136018136676571412574845436355797967185321716479707234669345911756415017754755870791213673393437293645114597952113259262684370971664022762904303997193791531585908233768654069686770046995568726078532406214849151766473901441863877752431987973674045588540615017517816494056471950048220816708493185312636509091560836297860460401488686449812456658581513331479404219737238820840034666304641714570560544253933781838329416183463568163740369403682734157388618773642460268853633560477948182358763533385276851641502636345074459309925373987162110779669313813102779355216766961195454902429354762348207013116279566882687205941202894519225992034910445430847094143949807696035550700768811602653897405671453996655109981692833148829593232589204566292361404018720604878617396551223888923183669975612252874456010907352554620137841073115776224425453330698503319223305167063319321182794251488580121120650242219423765040499176079384532663984437346742010403968752912052724095371215937574399017689812637729337826366132681622896608244811899849029152621308047713124252541825312355294414859039863186317730087497013545856723457513077744934756579919305924096315606095553204627228855057479798545946758541337222887786685330050174043464042542606909996840487271595669936939906623223548213355243882596501774316722990875595655304930130673106581572251699876509661518596281131096830788728068009086382211930074931612010490771732742836852677425178671392367654063826255961966685554882986555186321287771408395771400820170966866894139448354824888258415257387339672462610056633504668479012395546185733454931054020985851568134467983843812736514291634330534541871527995018550908212387387469631615300468119658759847068049439215982899617651984109765701513013227301181134396708767115217362276314343291058640091136350574944840878875973866963081807415803789308222274697509386045027969394654318777821872681618218947563268868516084427454264337277663047242025785461838338185672784947797278796232364218228775887508429968821095990255556998099246670041165749185444427433663787860788018342983928153679763942510931715435155286130685082806199386664352752012776791237869023000331487125142491161610770540220400250023877930770082696785830246802780764622180204940397302959899974115458488643811388296545248632877703769518538871358474975953532287567227381804570952717212638665902349876509492285694674023781308299604323038429909772916993962404546792061430482636823711625864824516999672781212941715578391318795360301020893706000643676000934399139079663232226942010781839722297217247751933177737973673112865183849408798230889881177500551430239812155940727933500999980092246261608754198252395417154735519372290455790961333140438667179546641440613719392566774195617176873038409179718253886148636226507941075261754433323832515256427521746010704661116881650357436760777205037006057312698186458878985006766009914592268513479145342794704379129643265023325413434228999977646187726624348019375053324520295483744038915328041543216732700608260874650844316868623567325251884439051730703918276003917456149428666051412701950556931595027503482078391218101151718318579280331489783118526918003846004742878460899846245311670384794804441250225612062283700287379438283557192041638883823831368848625253669856435046231666669411619855541161421192164546625942765139886642122423058390245719756136569760387847166983679684050356486572364320746135680719420435435792913583316639119924243814359293689818458500151625502394433803255741950078163495438419063866019112409537090252979977594965109211264223150512235547635776992909838492048507420684698483863122801967787446869769966973693236008870261744268461031018504525033251539722474434003518596336712715592247730064320329696425478139861071995685636266450702140220307479418059682914526964097515805650310928468030556526277977404482607488051375398635922905892191703026970922474257176017303514691923979077204712525420326380849386614551076304247740777374856802528022873701359971683886725925146055008161040508181750885020578554067613347985318535531637684517385995824194706920830199081493144629922321788559985658935618363267749499242827843106969110626722460026737674782595477296074322841623126344173737828828824542062901140178865108355239265342402768039382576436964941800391920540488234179826981592713529626433721813727002319389831248601665055367319854282351049753808772912236934318311391641156988044334144514487819632298013612793425094912729612675596848034225632016747801199348859119785476470362598293755558442111356959486031058631931512233905993687982777473033782719762227075391592746302036882588667908749671077949155239443022313233338347666892147290700721077701401774212869696991325963047830753612627998895502968995889398506993553482202959564640608175487463765927844908957011140352360765682297387608577751262917444169795108319517100910103673587934211016667876067986405529755597332115524445923184268192672994009926218870673265951546910571107167376189155816603830080614131774658997314097262171926708472038523341424840535458558636058421580877590742784487978712849926405438675618116291627839368104441963238425021659841552714982266310379528431861217185054365485281430937911486498728466227156133311981382348496607259714622421819929975976646233677552747689667712075542800800261188324430940310362544098455692704140946802961970107592272864726111628499663515938522448367621213425395686694996609616000546069333330882098473860135069577110162772060115083891530589328060382828981993373722545174118690383047270781285538555843800908942095690923485151211265113164729677677228168758444310033720679831966591041349588505870135795520069581274078578172764497761083025093819403113395582382675788800789496732545800159917206028154257796588726526646205853510002647653519518481931482018338684052426302795365979605802965658673878821510426331566183815551191485174729635460252003786948448841128737262562546293118671122658025347679703670533472928983245523999395612926948521958438373446325214131548970907167327903083132776920950056414494054348645906998822209379418576122005612545167728436566069191023041924538537133904993929378451713346750254894828719470957745572402688477543841991174523783710035772375999713750523187036960818534880816512305814008639130750119835415335012317764366452449940690690446752238152769664545168993547021718788210817125056062471958956927249000170795159783194351969060113267669793026438228748854114070341494027421181639428088473472913684562219788416244060567738747537207339367051623866896847510841409173605734784038535555956780175494169165414935459918800919191282120555590643241740135949626156689867460315103435311500347700776024347608822178246475985412040084129717860528768833907712097329734639818126610395766385216782751781773266808768190468136408573809699289765466247339527948387873258527181355273862554197239258844974580514006869933391175229395813859499838152013755081763954195725080576264205317664718797657921602837537207499138317752263116165125484386940541838436377562864152883335906915538239099239824804753881719165884734205497604321702095222371563495353072503773993808579412382228871194803705271908116179809840787574341371974609473561469610282643707230389776026521056350620841545814319865353649509764810539839689472260193482466499188281354895941303228867476072650056737337461255336623925883702534509163886111197362044455311557173891437548071490136733868240955986708043510804715535832608980965396386096565770341047415617692056133764326222840217967689802037513735552069988905152959690673693869874130697665343489491058866940486916120364923439824440048725471590141114966024293612404057878474676262563257611798469954693771253241657690625045382951495420955021999170317452847596249795445566782200625267625612763893214689052549244708081687023689965090888658077893948530892477081934755850479715049819130101287074014910024846940986786665399649589422701618002785638956744815064928423714160505676541933413230623201232289222210808774266280250053046590010015850679740768531272113006314124475438894430124785760870892015966419921836218397571290905124201076429567349559840829774952498219290192363586861418587542067903980110742355176194792801978776774922586507928244218039240555312584847001104710752948900897666269228970690027678183703367822118087292962973760536808535859795074222333940660544224874118153711225420398640854747166966766530180722538233475126337959697281088967488333129086086736260147038249446796594848875387826308821228956139692470990542267801330154905942675427649252722984356677447432004019728197143907448533663915707292778470634275024163028549482986466892515353937857558976549158675876038415531611034101425569137197104685957610502087367853689052501537320203253313360840223879180882027417439645021623878662056857749077297998373957776996024855232942329315090571178976302440036610129100194495746430824869652787835188468751904094403448367906041682269468328352588267792828648396830438968492263473769296261693806309118647511445040868162238824185497430663058131753519632456987828037030381709424443668292662000618891291951602636791680998648618297603908811812346394913685700833613904690025921407873923427481393410758356399967073042227196448115142966257553030802423148806363841333893608470357676990428262531865502415474664322866203328723617570852973892415049657825660818966461518039356284374396399532446313108311249567639093445470695194405955363160640128774797242864445923197823210365369017531158681420343372221190980530971765949022765981720106508659480110694357095432222062485296900977259588896256908255234273735317873638886688317257502656772532383124823110476660105365479524677229759875417287033129090871627592300026868620659208414032777188414722521792274629273092548365163277129662813427866702515720816370008641723849923064188117945792845756132923174377813235485493472355850835189260555475421365080307486709308733089546205730462448135855601332949407263830918574979768436230016693739734113569201371359579002518736987346345393914951742448269656940652251450013720131855522088214465695112759405732355253353077556420929965876777716779517125657440403198092947025513362065592701212707702463869638489353092077421028094604489609241111665997296865933348881684637375203891888838098562251825802466169864657078417995207967656737423422789827707794987476965666003115800345174972831171514732637084728739920864472819766369403288351961505899006721789479096079034010447217099431921431831565122998764354717449151490008317820022624828675485364928172873001934128209445160116693401289875155892408347387829404680512136657489823963231587518253247779204090980954882438309827082071966587432405393927964002241424184595323900780343492429125314642245872095879074565384414324102220110142699238499439540962534055719735590428557478995475260520490986985233581628513820185296093257736874964360237776593854441426120785310802347207368156728584340422569419856901692121980907146422963717867845464716691596540900532508735533903236594154239228909348086691325297018368419982155694653642838077058893956627156936087340575398550982016372650692874324429920968206002634612570196619663876267295160672524755917411090079566592830759732493430920214259235515030993695747352694955259148518000803369064852715860510385250642697322451717973855720312649707416897400711594760455900332851564379012062538043252126168050099086384249822427345452554339191124796288947987902778409422129183477630471548903042174267125852809940595243944478604758510874784659890468459701186342095257976965036305478651875299846809060786777220949319044609458670049427413489474811199708432115969759459446178700906631480652513888960694878663436477126311783197242735518059151042747673392756430069939004699845282682946517238002276840460968893523267134067326928085530421731253936997268045522149310082650675516777492171058732153221691703879697417635433128547864665620940909955941788296155584802240205081125533344421029640755191440562535573895021580338493017906906707038081442624737385996649226536793806315828107348765311408726239838597903178634893306206728526698439365999758669943783689401022774002407251389719711341066838261808590356402335472357472674496276221232012303823160526639631969406673078478827110244776231007542476886069599631490155029682597034624896862196009681247949330589652418349736897555051417610149708695926304611862093480057203432901985012438098641260686806454341923243419485751940852469581308354648614676974279007519184720636960435591593040162260012564978663038464592154912599439766496145845206444606564953235224930562193889438907051795530699706638463420928477754231563353856051272812137718597564822531262347493398401249887620382186749767044546868655763153008542051113552666253801250678732707657752489196044799921733854438700787675500104727777362086526085789465858151624912991650903506869847348211607073909545222495783006343260456603204647082629403157268086014707488931584569469721436352654045941026856428062522472095421801630219746635540538707280148906818026378713322827993663692631289909553891216601501359010679041948916703045301822834518933229381760906691149419010661361380417087997284852181458293440561053487320001416729011989033763126431713071749044367033133889227342704940061841176377673057047183739431637686824615669959833969978441142955793198658313092180126667023297257089018875109242427495214426097957183586267378948604277454180102701184828182479065109235275902768076984105217104600283394444801947075835495655705880716590136088732214519479295257505832397848773223194564736157669108884314614871291060836341956668910903830720024429919897047718538314559820589008869494950070104005341673727440029049413493817521510086089948168186438343579850945015423074865070770377491609685359146977443094311848094553936538004171814069217933423150798901697613694020085465664334229102546507423576772408662367995034936291276703878267545074050300664961630059231773788858248271094323207439050720461340696939293880564083879090427726689094058365811657774504235281158126030790377036942325452102328101035285159549871851270437570297111727141117567443619430822825957031849378941641135859810099550565890360721236855939163512291544619096384550813802836204564550748865803080171027701700434764954171544840958843272901543000519239141683385935573244684095569391238244064670105330296512686921127635343025603887066599367514287687496480463144134595669300060402175736887587188067755642239829733784936441425823562980820773776949646880155532103838949825936416431484566791372719273551950608273874216427737372348858219663497683496951418884596875234074899013280277146958656820518307275409753880018215956552681921616506116200610313279093333871216195308075587046900384432733524827155421434871524606336600237657972769243454158730447183489502481255599587834521023582914631467561668538314255849762861941909095650611800807255024462454014090983357311795149329686399604356579840150409487233670350568657629637879563386120352526433585277176736314196661998975307313315072252588386692869358490346043445931089095413033998331226096412918890490247045289715306178094218452631752617347071619110245124215227248530105034491157509357998833618918560115993713233396960551503176103196481475172060265145168632072325685449172292067911538186034877225254887350890724651379538895578035960890084849318301709097092191356307809970735558833141347645599092640361452900830701232912017363621862228706101722440717261441849559085166416753007008031005898065514012303664697611071054578534117600918220920859565104040863507742850656087821784024730596161621148217133521112955707221849119811596705513422857592807330231278507408399987140244019916232553255017641068261144029722849076675611988192220161387152786588018089372828598479803412175180151089088280759469908237525805672457493840108931674289714530580008887231762561001795217900297694199954500156426122851522651910341862739826221327965881855224408193123046504507668849954040471194150551838383403397578066986352126635128563407511472570581482739496098143958734381676415431326551156588522345612633585362082491754007063215777866764508240506776728934585023961592804508080661874907859094232450779935303354656641892551763544495470576145682613477787735872390327919976020460402273027645877188353353705307749443570433796286363372632580801610821920973625405858502883728945884843121843503087354755534609197084360232693392369919855312531513681380786694699604707467822323256455454645007335370217637120056667486206390531711649368095798768530642486296300014653368960585905859322340586008062896798829511333020633999650559759803402063508523171666186288734411623754698837221146152792312525987529722922389921421604960828972584929580420251337324024052849954111428650328383773614285956023676079093900373547372123147202545396033853685790520546588659385404387022877159534473170040656887677002302370250036242956701840311369287866226656007373506041439012467246236137200115360541123647780627917545533807050691859769417881574031372161635525527182321460900397907356866755195158351273177103424411962045607981880407032805252184424879697255206284999616966101035045182707124033028217093400601915908481539675252213499338551200624490814636816335981195893072855384729444712941553422607548137987438512414142526211849216347450287123379651471563619638066853610102951966738879332274981997895912740579543869000490213966133824687733121247960097414981367138217595045919605105360069882332185201020818018729293342937502762648751610859280120674073434186035052858534669080132544358123253100495792115523150876699293463204519327672589196941404335995657061977454171407426156931656758782611785816872365870147295747672368405839883072860642546471245256147441837941978359865609174431280132497801624064689450216853170140194595007062147506346894858658606319743713721837784218244394502641740247982381799568529510429804972655909987866815032145356393738756618817162133590988735434503156798997828713533158728603923331808613485566971160025052015089343132395223597402501015216033778724533250886757830384305342527255832291898768487425128188279283327270284756298772676629675296754043189171549451368757876803308762818818307228665468540202335777418566812616221618540285253999872323631714820250088803300593348838031329133450797041786225150571597236640306989607736105231426062828309420665324295085464823379679332590448060395980845174567536463902086228330259895054877665993718438291948402151993737418442793336762709364190106003924179408815023018360067183526835093827342526071465113987093107612211721627417028103463487566253081962004483061567259780659314819549552831938195099353806473859746083135874181177323427091080680310820587755910338645122825942386375260057148184096956758421282776399961319864603397946487182489608367704097819292657568335822335044677156064843714434565292075435398369155215334894253411256464924268656800016293441544980563725365328828350921543612327975105980653993039278071984250244666298780169827480706034114694831360258756415415369248780924210673757247077640404541165061551830960700504912213804044585089245291489672743010742119282392524797033544263550286658733172416735360309044479235031716367124506247872391905579849382654845659399424037051033114857331447605043842201361607240755698399362879343837429295454386154621582469987099687022874148489850214208631727192203744979079799548122952711362589345766798723540375633744151320290036802405014461946462758639599441318645213070837578086768660234509205919431568498834093516063384609368877328737134653242674351105846326501598551091244286214464246328967155595828588061536064453992587423367631152167357564367692898110902826026671421467595692029722849283740578570314346027568125282021549022730505029223707370051558413575795219322611641871436142716257412668406520815646658021321814494695149892376461749966102481822354186532648117193857811654432973569775802231555499021943738555194254578158652090700073681994656437539406775673249997667848964400071315047046861125885641471794177615336072716026129492483139470675112642334450537796672014475007878579694692793296228518622991253044615198192733735600133335896643232998834921367768306823522689803744951090722624918131308711555950407472822184218916888680329044177534254548390183129432556757924918358176572221790680303519336494533068613562136445987025884139248373186486082222349510728116701214745183541950558554392255171705235436985018711159866917673514371882664555941429349768463152923670606311244949869413119562524093851662258019087640886378499131177331146150708407199503364600968380750887469493159683726388351600580601949851703889692186989070769852593756505364219268321910984739278591904259712179571146822220014706035050608058403525445953492577830458624938269723837687167178429776460519511786926325192238729701163403043103322915379428932443308014178860156372773062187762533282118549850613437995418733798199111357916057673917477053836640587900566697004444040281920629044062332079138249850571395113447154485291220243999569422179071197942640354055794852840763703994051472182198296948274785939508268384345215125389704762306529625450447161029314468733504582095063640061934937503386887077903603923360214349521998306640549800691727024834311825061543645252229415792988848504537941507794093505635509349271788731964217598537904400243736515972176317047522825544720378081774479202641571573105329325089310042677162080231957407030486841321545407774695560915966852779399271734154824693576422802702356747295803574173973866033905005788216325060633001207113596147212453781000825986809479738330946774517072676947053639804959759019023427734739212581222204886508527969531177695958097542024367579087699431816937440168107733657629496929021165976541331742071172473349941620339660828030227332372166918815917765526384073677784426324675223335123144769746815481221043878006595823509063715828903545506356031891749316800424918675337212742464176006774971205810450879192091436275926003478788028230031925896562912910008779365697622086492844252485520756213771331820382150493533698879252537473968844241302046245258373986307251760922456549748664432526439788731406208426479062604199247840734859168386931683796318649985113715569428030338721950406263008962337613972007101664254841796419004288161370986267955446569422167408788794200695163789648029043401252870910347577819727030567452508634133930973205530928955812264677713004649056791858998212367346132051102058547198333841736185902376637449540165534417085522463165302508718505887500510424130856332061610635016739714405694226004264951083476968206572166888569201761476704558179718851596408204451353060790571309998950991870539876905427584619841292512575450790981239873545744584863383101654541079091879194490301514981216077288308960828574776228533033757260672998775483915449762398483314400236688307725374143938316021720132476411243648103890341701438850145866154160830089451808242208522911172172253814843336238716202518829945204601941640092806431716860497213552251003681038703271499237807680484243545081356735794031299800724989093456560543261347704140208826545543202810978484063874151179032232065012381583810874435823801358370747535240233187583538624702179426485229037030652988592564608140237425831469564841599959361127141827508539165224069314346240785390532999230858432797035006300452392904405207021438789543690501835975340936063312538141193627230760610644516221458827645659777528132836796559639178315502118560773275689301103859071355336797003628453327150898150674409297641702524822927297756845722820322106461401919411206764394785507854554828966655419172004689161188948080452892863947653924312896096394414054281879250394655649642880984584024052088655179532976099907170353028666536283380842982249660776981026286896134176505138599820074973771612972252995260585334329584259521767282885440706065246173825544841007332999429359426933021911091582104284006296747985987408994775009269945067683806322048650995249337855556402162843572711261465320222404968736208275574075779094591765550960593140953898247575393749504257851164725446406537485551868136591189463022161674184670530548597612882559821158701544504719117608758009346609976715862302019216476724507055447422028913962853016117436122147593563425151538852937736621090831296644862836016731581478827298157728185044434284738572120011563269150453975306696633984823853897837042557171993327773983440196700366008498140949372021949154317448293280300061259990342011797678065344751788956427569571299642935565894955743044987589175489494048578792907541541489169039147980946387625789571457166015387228019214920957796945039026677973077220291330511282728007718351087573191850852578983798229548761446697014151378582896228446902846509375147784567325792238528289845572971970827772776062126976642422785512261143638310782651024490098886767500610246037137155455952283456069879244789763874938809825905476186329307370304983027175095395865135751220523924315388120791217918060200599675851629070102021371710431639686474341820338793677717552193803689477397362688549973551541745076519617379357282308300677495270173743659398423553695092004485111527183428302075945699266493005058760613826691185004362774277212731360468429877979102225951350564461010138547286134340977534262086616445826292886323377514687767230163228523665839072006683854996340720637599193129144662746331440621432056354039869475530533283267663243080836559366265505187225981979475362636131877398706224023733341981673084424690621508419242403101566855317699454002756459961436840735267230969373867763847122187927807348759352322323164459491771833242056524830134924676922460221610834425848110824312669686811509218889633694671796042359198791821255552977405338633504570509384693531536186219682412487367218678600582473390491414867250282723204362263334303928742176776458830020800485254891716246768547608990310044326648955920148332796534097627185687872293618795490370531703952410298040998666614052411348888950666249018109883134410875747165958517175742681973589006416264194052929510928637551488727518881445106031252457540748104558842092415279244922492726021117814344161378841915547231162279069344057301318617191208234620704357449026696544430174895274662597369928451429122696753265946614363306603024600674498818239412001189878364787233531113360311093531737715470377146050427402937897483324362534596353529915309731421684723175664688279216660051472218346135484987303161223432618542305363356061704342863318954250285199096425611227181081693997406173001864148919277057452229627951411550872177304669881004700590382259382465242044298399974765151228550596476618353232769749059588262029021801484866439974806776757929774053250162216929733332857796705870780137691039068266900745992131695863634427936827475315260140452879331817237789415395654918421532782478360773524435933968070416009659584821598262914599063600193107275910988957052347733043295450833301666589300889617279077355388654154120984433847118320650628143257802638138743086868210798288606330930692007934013670918259833768042514335996481309688928784240508059177828729281023699866352333068934502310148810511112423389609159260692179709093251311072617811851640839741387584450528698986892930398067573515408135703955805777605611391190922770919459447693250316739836246631820849176344729288342834384225120419599000647739933991698957502247945585575553207068540158133277534079642284364482114273545994284804830330178611802227813141072124223294981605879360494232047692748476328005351760089831731431169096268231055793742142810851975055769508168636520347432079099179169978937315219881626513182222969830350785811589090186008972805931558459817718289477737174610114247325599570095928076217452596715305440495311020077639393357703033583404328773104592547708760576535649291410043766393263770316970907180743366468385504536583611570849006371113518878844569630466615683623723379942972655063861537894118361607783973837190419675019513050404188153247832800265843727614715440943644299403011823348530778751838338149973367082053444351286630572396022524243674619139990627401691291665710370338490529585955176210744061960558994710552538055394093910206316061525128619182839713242814301022603511033617653574120879383818340934206386929848415470230889020144697844524836313537303876487018486086457409936935687138634754450355329685805100694918858206305634119290256323274015897464502532145656375401601749213138688896956466182372640381768048518511770943852682873248939903177618830396458065600919755185608433088817590235511606288115539968608519227302966364457860699170857760252461987010363353326419128563428770414897819696837057823187567910104486863285166369828240219992590664500588058209668412273343565232118348673936467147558198122864490708924693537697509615262001331065701815038734882147980678612662259100529566208494751689131973143280447707742775669112467949425284630185659698502925203463872041403513090010444016734183223914778197798718966018968567592077720467442495567676862231234034482020135282245353787439435384598080898042130766599519173191406481351494001592636482014272258431894098348275022486728612827181058538766869339337082738941392043485519211595313718317846983364203266718777200494854001660557473863897825631843736979159618597979596241142830650012434286325983349194514511621018705302219755522691737703845473355261847118311973587067597766214653151429379453624240981924655832001287664233185369293143025788366471786958296013931611223128067797209807223731052736844900901154183548122681804431304805739492182151786703195551742182607556897346639918813946112214143339189403664062483068978433704620619781670520624560684877083868351695130697182325822809525951169496100403330338957684148074014257938496740249324796024348609172611383687039156167241112289927152918488495093640470853072133132646497077359765075906979536677977038800045928081679962486508491613658182969831618773288209209929582525963577691045299042949763299454041604085748425075561091748776069293867293600448976178755917502462328098156457273477204370332283633220709218317974377923445616069260715096349247537297854516604056452049333293858847837698429306746303952058799482521856733955333093455545325846183333569318632084855257707170884796464848243015371757372620259733321987960935695866606037444332328494857643923815369927444614000100722174449312692592729576462639105538720890755462545536926590681977911502858081028372618544401257775826940080109951930121248199561136602148538593619540532936155308611168895042309031035089273840652278008028471362096317252957518272645360428478287884901702660869296884835204549384464858193505418943665006691537307429089708159029333186957089709794572810450749901635769457069950166807615737287660557369276214147879768816439903057870444073817180698400229132629203238359288221538600029463694198474740536244090616627696494358269618413480758826992509639090047305143958795722818389481475812196257254882732559490612558510559104181576915994000632397333330314303868716097119682600498288441845733449957771225346364219108485990001169051905329245298004643264058089843941508194878984482351252445275996623137883743507578238063797685181092474189866787375227857325332488598943163468567400192934283836694531976195470074489207489181819218544149049046025208144047214118905030574531313120801740364370336037010156693746564290566988662715407578652389938074711065147423069328842517408133190106372514941927917091956456731781064010067268078256505782936788799094296606888004185487916812525958551788590769773566657046783697339228530433525083963947431013003139673542714248448281021098500420216605762377656205131466151761117368066039100824900685518499285896107683534975358823162989666552087505920804900576779565016750420995868015251755633411787863982901409981279318461542794937205830756094965458366204691946516465359033902055975296438735105767878094284458669212721021390305698601068097703228467322370041860629045577184578196395820122348803252327194367079960400501173850731314854623453427132144526040999807787651816854575898897982074936316722346367486855087204721503219739756928596165352359900484969721174857996420992796378882396614720315762792402132011809020815578775212978915207736646476539458989849467125512623321334760427671375279701274841420860322461132286478142513522743481379046790236244557000187735632618779983571138629759276997319707289945903732708310237728694273954594947488556482604675463294431417719937273199457598132315881451430605750701383455845898021249304262544180140729689078081698593454152805772383862278405450294185311418580980324039882735855602373522446222845975078825162605369263646978478529125832176846515200769560076841466636655260155997319798307686117263763417262892748510162931537489305210442215016406357948204600802364568128254501428537958491454401197338627238861762014359258669555401629583152362940445592749367871731457360748401922104332621140995481858763616457836606410678003028127802022049262637867081151244725462702848992760179490753765335615203526131401141688628150498982452379512395043137346253398068756318287328176308471653043500318080891875233642593816097049995047152230654515834757261536987363566457609684352656562594960543943843058109343530587694641820866253542504278079660437913335924714982594735216071347438356944822656619216007297951222108245026018618015812798929782932913531710241372450922713366398771032916039513621989738477880203702759403888260589577689461424850360537957103453221489596303701252251946728316651744388918022136663718359731370870671546709814056208670730076819162663154664665256924555153903778690268732584026569607858709212380260340823037512632023822367092119569773130905097084947386297323116604301721431924702700194779416428394228483162848030699725346261115518292169001592780428875473884964557513124353582323888035873405301590606638519801019601651604032076256357381180219550516700878593092635980072236149474867011596180722575593991276329517900533914805225852219133092429216455779809557402292509156344009276349834795338971689699537458348458749038052251644877858751330219290375791688296271039941414045809995404568744334241586537314527122027553159431820302304999978301859322694087346028702479181012734494273047864553606141031603932325453878508053262631983436422767482200533524122450817518313642070662525805668764251592713157946336774631987993217398628993724573944203387745256386275509833935508274200530165683227403506305310505044777549144248358649508860824468474299174595546789860471679808221509588872408435563133869770466455302287459358934961984736289800805872240198410541655808058706641588869609189575041063409653252174862509638597346652846868657733301886013644697276079010097563343639616907527232238890994273732497115358111167559663753090786348044207498287447615149162203519833251762936893914112179358838281004649610971438623835850232939446740827744711395910743186274363328799642179366944869482913413357704833967524973771645528791762737053145005464145307336097376686449612199721569369563516847452864804097966057850702187274698453730611582518780057482087496169776938275480407253426174177447087741995443812219499521709546583811631238232486048875595391369797107563125204962473298495950115429693901296665252337885199978221103945217731009433908937585305960006182605775029147261173978705634486999516645171051151779244827773595538924088940800163743835795069827074765248924983224600796045877411788563660340178479416878324429360310746319299218798992783141130089381309862623989618533442774414104931130105153806463331418093412151809201125028476908484886248280958699066552219873224899050472387038938377430784257065782515349615383055000225623039553414912576168506862803675856846608925362321743083426951928760799073357692352324449875364090941210076847210914942322783716861694704371246662834409882700121716248251019420916336196275237628292282260065968349773565444186461577181297084718522629466159914830541683171235585218220231622210520431174742840238038623838993272750813492608893563189234083755432208261781721990704925741574747278568337070539357170285488709288873482076061768664082614409206851419061655074732423659367562150945020127428518722251584785695587194319382040581656076201918001233059103650029074568588899748040996307711107427131557284370169900439238294008726306226099837584497409055505429589029926717714560842597831053764697818718020931467844699086517829727936105463184462153922790929519726608381420300926222933774049759892580142336511045967501967969950736813728190557759936846373366787985316173916526247258284200475052687544311970410007077900470876251255938899978112045375655171548238002310294051475441076685529890098372157006428281454923068835792301614240504379692324488079039972840625088480779396824870776592495965453258784945290241968421472464073788636858854545869683242994002936502172728660741230742132142957189606592690023740563364892115908304349411618823729937083360763945183193724707401643072626425958598712182408760968363656873556316662702892866424394222892274049503587065231363719231669278602938593413486341660797580137506988481221573419956674300495644425351170329354419919821801945427688878708157580925717586357490547331044468202059002501193782812727339192569851341064450026517508576514485448529742943060532980431986223258498115986657970364592902632435992455879878454775419701707749567171934206063799393712555261668148373452526804768307582416174796240007156569860912050456222259252762916236123850693752530094248147305682001091384774164153971560834442523969776465795130321513825505079200437726002696654209010930823367147179447370202827337372200236535649460807209247245279718583148064467742314755885505919069185864901765285051316352229633144999092962527961594801200354194182712249895280584190842755943123284190212903097152723865831529849552667985978136906250698930889649318734106879616768728395246734993494500001068109803096040111922142434003330962839875951529134546923535759755729927086744825861745330163300956412745787452432423493527803259259117488050878175357993859443637046571128882810400489943783681965235977715895888533136853103387513833731021619611883378740168902638569690315647775991494110822806327876394887498847561212305890914211980306536867646010315323121261086074580083858508638764612495684233571310724343903959790438819018004979076571290375593125896724356027375560139590688509618869652442409939295232894197922046905723352413063170711753189781256332497069396461736272313461620434599081320724312422142519767982275404274137881041862043470240853328974871144748997432451459594429090467840514253930159621115771224252120445865295434666175420328238007202421666450515763944914032287121133263768472399155515378775621069604247399991077333219785703697133975489838554398914880372217744032348414323688478699457523512992385107139022692631630888818488752872102338157853531994280720603075964567824479243672488772114445165944028662181801752190922101493128392919420131410908424536568884622196884566491011596673357845927796203808093299567342503129350192887379688686225004694294707846284496912114686320738390198609464507970533316972458575223876751395045708578470339296430839012755837453029914286148156741192268099270513778510363875372922591587073444920169842702505107683587742299693906947432286862161290960926529906579209033557864484499000291222995016341043404556415383525557024612747090988578629052010016072633641745464222504239686458631626312356487744861085258022894630687026007535350629672438422009346918554597636806034037355182136741312392689263151207950413095721104518291735181947660130498669408047136923733282283493574780383733972463842037352795563154509686633159547078192208495979863214381815598128704426108493026907930440894366227788553053590808738147706275607313399196604900832729564771286947248764514239003232049464058810064774132085660721607816144563337581774944333323518436516529685890938720605099331855459150493491198920064403656011087965673920211230597955108781614925766127793241310572706330655043460294723117445294558655808561149358471329709689711883548277675650274546266830298771266676364134260297805817460363631785938974889076514774686322256703707206836050099383309288160127682846190671727774082294145903401338610748440268542874057844019542831670798092276708638070442583515443855845455617824524412369325154016022078001046348859475452719618950519241401962887233605520739392606116857392969891580877351263353017051505954084376334003559434685849772714335223581493502415039665609199648140196877612693228778314468517429000693891227412811442203235350348845464302880786141387804624714388660794187824280472587113026810489057360878691793689399356443718307461039574326893529216529100307800043346240855955800037136725673239453327684041640321291313804731050842800273660169155080035323367411886328203786934223251154821403175647249056653043245627494190103422966651398012790745111495204511303989288357976668039367430755848326758379391079674735657964921406088258818068251962433472787012574874624354262305028007472392432803540670290333642404828668214882407080707541901251431739838780092399582966252197222144897417473961657807473990086669740441942180609356732087431656985369866332515835800407870594427792651676911702764044563299132230302804582966534163813966064875626482550644962546679531967325029615761252498398210719612615345672875699444096353185657817977777335565075468266718618334626125344443781325225599589377922512669551966305723147156266720298857091242417875351669902081952359889631559071098331010205380431148866366486600294081331861202414653176680138181882549906363007885701077787172959459067913816352972304719961628051032961443750827288444653394620255134999270234170145142659590105028243111023660365984371519965462772012970277308430001288354360512847045558999626380055977368037088397144993941850526650435123589172639860068573875769760706337295223425551798831960001103995462593236264128316018191713760923081027556905412196181355239467280651117212092678865107169458912203176751367205500740674981042355637468701236108163231684933228873720110297207919521876616556620358510798174209026916606793810093549190900136522891479864247031219129093125028889292748861580622199906622150145416829633935818120852136758117861748245222541245446775866356957621947763200306469414958397902027831933798552320042976985044315405795978887578978494414793600763910511616544114602553487044769277908652766076681032518129972273522703979501380523713319754536962430083638539199284473989402752653505661087126449706868533022043341159623259866272436603899286060745653478905388714326559779958786801592523522822210389694416609417644815521315264525487956905463873313349936838511446411320477446769956676617712093956822067032434061262903924651739020219935724299560552399610705367345000691492667233626920681971441169135297104330383936804048449198383889507328216424688597914900340854113561479384880722601307952124848372350710108677290669394610669880097886969061430609861634899823877951014987674120866793765797132329998214480499164870716177362437553238122998013854288404654353146172221967690710710191409532949668528588733260356659824802796541723305424164348488491268058170235955657501568827718712024399080460473370124839483433193349767449246466025235880667658793406083650262345520007728227798091985710503193805161929132128427221625731257925727144143397960058277990460461432852654151941080486636237672878964112412027256436230239217156735213731324395747903611774648716698288274682498930525859752341167806881240134585894548144793281321863574063447720510631429192142423450022836735981309687700889809812252121293340855039847859598682699836134703611984300839107544504515627566000934013548586614516695111298199966061823662403072121528638001769518884109357952578946397679791604248595529729244229506773734764200868354486868785497271935838467217964232554759521960987526727663435816347316072331449723837587541321404685545942791089898950990237724222899041774345784921689559063224558165035575903565357840753281630996090271939806176326058293168989617547293424399530330135570657326842700870388259525629940061533397962029849868752682065033418453448692095648030162119409388091626495797684958800379234337070026436917178913471863208898908140713081616116273757824093478993660377873099365716563046151948378362781886402312023447705938613877163738128732646497154908751197369070750217198711316544606679161227116126732446706384744201416491537136396125702215434866394359398213713198606444092796193032457408433375705328217621817101875910824494693099110438642997684565033099345720843757073881789721635761923933842349245828159438187766509207328807922657915399515602912383680272096265826544370129095742651763134988017468971241895888367719224925608551230633293532502669345051524473755144314067280630571883445645438868468227909508881447161594267029977600402881492516216300789465499831995201500421726428736924291290535503222687106831674008694944974460393235425771059330159100823680944741965131339731338140367348339333226127838759806225824767414454522126547227350684950263159163853308743433522082136407091326458643659852608628936000546691296812193669518952590398138139287477981375388270737231365729068321942659276503607796850459234804289112721561159721961345776228368395404921862172295764800848978637594090908036398395206840261545125303101531856040456367934601285575769788356921569464705124323136025247502863828702592143685040480729717173018163925095684340209780565361160528691762902898011290576588093343190267139192546513711721597102581434399902362366503210197030736834959298639228796615545861011362994980744063824862814613435382168924948682980864548135994298468895419599512287994066804996675903806057026362825300721660945024952084709437842675718679630491450683294075818377168398291294355932802321182322733294237165505672865726388212526607260493155006840232043217882558821106957587595462728532766419673209991567026877380769185729550491393766967402099320954444109994051868415564986825801353503827152810395048865183702359160535309468021084313508733771785256721346743895330305649511800009364443110754953429688594793774717936365775760664563878273939692778586962089514714427861434979137023851280478985678020201986413541851479971782376690688635998692635542437362575308367052395628503004460306376660981865043829920654656912303668948110802668317206226268336014334150470038352436307038979661695162340335156834057887982354431871892373595226031904052562611905944503054351216863328621471229128903434363039577571736050502843957127272804088416756053969184913175306292837607065587405072176242618147802684185518634913151967809282926016505326666874418443508922610755260699576039166383221157052854768546728019872569615369836514832304716023855415361383124117107703800699984117956612542231145199171229811767642842465134212223047016660426197463216436137263540027457216510913559898512180801496626020122401519928172191417437524428957462801430012973410786782742600901353683709957165038804423686924108736499147938809667043969123115888555181751745767153067646274717521860346275953245824982255076192304486116107292751815608344809448080022739868839396138832848947592843890638370301582081088294059660391117980946829781323643620619619960777973436355594566573236841973547977044805886748634162680782812589129063129738387550236007934450982114838982134450372520955766782138993810651069288570716311738879572517746015138742718476819068897841914513831441200155452727415638976885514273811736192990464646657035600339794721777701851475216094558396265861061587476262917707456854945713160349409954942145637807681739081799272514849171567612311593257211135609914767204430618876310603516415457188000941055397535899196910751246017487931406285761914413300460732753346631974551977086134049072451457979112618461026377812913422726997239903065854114704431551258266168395352124003576608015334875636440345055756610523777745547472364909387663390275338069024702152293353165890997875251303312927990078948977522791902907657439408989878815878360932670252151317343394739478141992062820271617366343676392861284230722481336653543565275771390243215496951080313463122986381307127152429116761138306399844804682479669497267268065672791457857417571342822043234249813692683072482423153176734454244222468484576020707741043691068938341249956310762201675803588137655592189568478779450529345109391400958393268532834093834574767922956226150227261884482965031354762290323962145063075971961333823374635356907229974937466763403722572052047025922930600098000607974880038126659429401833633780229156399562290342136022951358257702481402757747483272499250264856251263219525492422770125164913513029704796753113841972241896941267113880356404805513241121241246601099384104709704666402819506239294340207414706163605625129911923339274975330866357095676721705813327808752395127036447816694887505838258668699258685791606724958545835078574669171666005866490978990223494344406429699608942636230360418233308359090053791935211579584783317662849517832083189307495365444473118643092366321028640494212611815774057323051424711933629116073843116103984820827434942591696097045219915677383601701418110468564084252355030348558275368090781441818014998092185085019548681162815621801054095751540947918720486949792890327154088230259793661498200040957681045302378070374725553040343776889776014137203151647088066997381358373971238433812106217186562458348628171783131805334718870275541918441983484034213242918972334100921870356828224663583655948068009489577596164813521088830547742843036074106683342155464894187719237282616154626576688070054407217233570987775429963495963493026423152527396664960880175524670460483107793136440211820277727057016775243327466160580696541384183915231659251512984168054763300687019724879410480085551706727140741848811089293367834780038379191975179201507279541148925121737957189630999957293190246238469608884103241455947624339638396437931642151791338757171246432703865652230511647826697387816507402223493622535346223665017030375931815797282207574004611983213698346849347511638012337377161146097629609828792516771049185840712779142482637590244808816343890371383440514695917274452326091084178386579007999253647833488848868365589078944725256370681014484653886450778276289303082677363565771160785930894914562804209410729401892722225646251455507776353426359709750695386914818669969244891434454204818774097192053731466580617796288210750545487565824125094452052425728567988592037148204543998672397750183835878018481800952334300504055390132890079529208595136895591188632593477905693509069323751340341976917173679810637038758869638901356434922995428526059564185388428161067686411193270768462935175607340450881795406390782451868058036556098457428732497075192932133856819431092825148836003411481514897939071806378264854227177830988118923501946407655992200032691476615276407413765744526857525339363180026491657275209914720697665104395315801498615376231780354626672293525146697761595537138760848164777425552096674641495492778052942550616672895983699558352180609369983711800540971900700984183806913197746033131315934299821326106473548485571255385584890933328797378160257798316338466419055945096564807515662681116192805497318553998354480312174229035273446450015458235072595424304559197344354225196876845451892067764231794925241030965048573393039764947943999403624667201057427003702372277294942306203254162775562633402854003643236448141337929166287196569077074582941875865362590240573260781894105062259983612047930608059432904873359855197912317388167547257388737151221348053503106364659767429938034388145064415884231803009627496337249198614803088119596765043349509030143938363800881006505576201492490917423187428096202057571835495750312372118956542692739383950248630453561037583645471538523499197784293586405495282305298007751274338672493855304052360937881166772591229641081533884858773982405482213994736232039714476571241414161260141976201148496385726888825104790176155483856084446789172297451682111228864493563318654745315641113985062142274635900453353337222949996184820804922982009078140386414240704466445721316478880572261060093534177485579841652120867692098246407144502245686849822825800018492454823980657786607408488076899533400680604914119868279021360356809285988480213899642694592383223439965693438531162434408565004501537126199556490915059720288668459783104553844745123717413927612725521649970373296117539592857765485473897981112726582494460256807519707610518001254232257191379517446485982813517560013368856532748191747247561265137327336896531763435927384322428465303688328143696558942641803923318517791770746855338903912064397694453017417331291000093465910576468310830690124995086118926233591684975535878067186907276975851679638268812068406814293062887091512475189399131120731763346800372339931915915467771258498030756240920097899024107323014335078602720075372400233202659808808055851620169519443124777574234138547079559917015708605999468246702204593887435012596258000967038641849045023478527246165780876614971032901887177965841780693427818597208820706974906744765507663550584872080268268015861734480719018428342863227137243603896051446943335485253417773022062448461619971729641671157888453195737652424709860047339960221430740660043517715938310743849830291976089412958490395000970628222320682421207864615300225773563341659424135357020281010835165683765890109783917337786040247712359953320805418096239034338327833327635381148488733017134982023782157513105722207897906170933783845282744742595415915459976040644801808938570593114998369548706217371491381070609937015380122964921003783218509441376791859524480423071261512517943435670568189550031681265509863043661958794604085940726732078884914952389269137544554668490170582824808828427106681661674290835552182065798791477714972464616628625632262643038620424213159555920008637538608426140483876173698335060899323422427943215851204877268625116092893031757975771164910753891700624188338434170530897305093688621071256759765378826736420935789149795904789178504364923376008141553671986225738935453143582329426642445657396641318377219830534819983107664952593630042110915620644307223273219679751226787558489912902887301641828057585401498068637650887325624539104365447766066898105027553167991176563911592677910361495978639296631168944145506125096476985796596020896532432818100409940727584221172924085917695260852400254095375234446553508493446750104154025174170608835347009133950772281950354723650698411985755924777258302289370610261477725626499050724262262180858184987565705434038868669087596691227263340410256570037574547637992233578898507068238885223949891449201893574211253213129517760862499112796135497500555976071129287056172111716600369259144591407800143075751310149453062997617480825440340388569296251324001774214179437277064813176853637831964546983356012960316488328990112079643325995060544133314486440178402858072634064774866258683174746885687562808473899343488008178321579005295936508238458076857592228983984945377876254695036329503179251802661568253576722520750344500614147795661690304407457102944354846091150625931600536777106011690688865178729963642171574964487671099107303917032236523255181023405685609489963935014691648498942982328994210027421009858849954559622603777536358254560773715879621991399925907775743235241199813111346536449130822075342795182492182276789153367854012538190203745554915704126747875491088891228421633382548710915600649724938593082588220175780779144276085989727236205602464359115789832852015692887567435226928907049990552884325549126120510432545515144230114456588559700818772298511907275322011116165529952362636562470474320392275742161235544422699332799621494957646289442745732255871400906016650181664867141248311415468111966250786845091182152271801220470494567267793495298038091344916508929067602628656609584187565287160050163046406423096276186946940455791041692975078603498920150206947623393305956254104140851127489931183370009445818489933518909958809624088315322087312451419255444138705960233991238007276666159969275882267822120019603274868632280515173136512032361189856958741590671295914396700474520797084734985473394835690359947591031069869762878074285081185994263342561848397573800761574700711081184578695972446312923817635508975665941388714727824874310870708648946059211962565446621442637699464187460749226539530102164298982069227761607026194093168693894529935733937081453405583834079254236930680506087977193589066377678489014744325642346945473284980373679166687951215726011161206392118869684013581465334933645155979320926420648407297639023878509709594115465061200381594708114982061802968267399057450925561009651377978179178395129127699594043672482025862806625529494865558640619841087019098472289709075772178909399280106742021918743452873101749912561890733571125269829025941902803063400148543703151676214359427523862731797121069175548217875772047573527154394095204738137539332475746938722761274661420836086828947018766206273217195916615454372037236259816997364718788366542488225797946876991485712640879237937798477494925633033592912886241608896614216591521060332197887091225718894318004941216713486181120424416057740674369757922089221118431601290612478249907968301435721447921558278272912518893870836820926288002266090463404499411626622004349124872304782711401983781588067136139739361616203609390408001246208319644484748948062060211930147923255638080976054396599566748298722172911985942170176002358930674369310063773516602481498844631122760098945698963088886603078027772902207574971703876254250701571174115121405656278347244631435420614848488784207376224455498238662408796922845641735264187646996049058438327308014863440565914962344099286919645413973157000338204933512540614971483074342667512636839022282791000049199807270979564340819816925614309033622044612676709827358539497209232683111401039921838418765972413723216571390272844684119397361077295191830297885576732232760367541839771478688412572242734246284976057936658004633066962511121044605462002559775712849913627540456399381854587454535897378656037575004563020024223504843077800731638720244066245786943339793824050690721936896051407532311085791180675787873615083739061196062505917000925530975829410287108037203757996958431860791685165192868253630750156187226683316437225717854737556555232879127710881876759758975248686169576400802038074807274827192226479133018036946080757825587675384390458955031189755778283008456594516617791697937316344580228957787261666456921888827412921092286095520826712503852513106024180763998025173742985061629173234294980797778062623741348973185080716343634032386524450497857286686144863519265107707778296688646484397835198782772574024890592754592147564948190866553681223398693523352379427362724218879861475510869064668839088071525042650676885828857067720248758467287796189223660281774688999936510439649216945304534712004269996098976056998426277086113499140297343290346013477138606665013405629675772398046746599948375173634470380915596449027293960099568620809626899183228638478271362046949304317940474036528973751037856281896846342160167093885892690003787313868144360693360508393897658834690656754855291789041219173718257273110084949940896875369307848331924021012344536689692376206047971973443613815962045839989100671181452038468128781479771324973254081290459710919510963391244431386510795844037452468776143463333763487183481209334682008844722833386779735675658458627888946781821104491338665613139684246383258396135437253853374531140857998595586051495226688634071983628036368448200229793638237167649900715907434726733361876251933398808962692244684954082700698514080276326675650650983769980373556107643319056157395283673465330669682151578385206355092639843597321437668776616978310123547142320403955440494250527207162756004434424810303016162834157650292975347332053482337784692086185702542910601341705868945417262349816643126659670412112482977380178311422584741897434817731812465833670184716252775146519305326240048032549745293737763424442388703393247141758560637025962122593272688847954862429811577993797974072561544752606270401691930248557088311638896664931072226348439083757886280158523372416732929221217331458708623725303425832267522071980306059845790121807799906605212344808297312150361824007625109605112236847748918381741858759917948176446300621174461344745943275001716019109985560830413348533673793143024547922002961393993971743332324784411542431981150345756412114925314481164619270539835094411241509598864740328276620888256402321350501964486172109241664807735606975852705788014673382891515300195311876922488439269958329046785249777286370914555138112517496443704929303790788881207156662527506153590709945451253594281888002644072390177425995448464368475086145232333081850653669982389965494284273809201983164069447308194295953686132598334742502400239773102763326024843579352810457283888505367237447482925772791596815425851961008527434790068516989677479258757866378724308131608238241666695910759310105011922391622378177383863642469250218214130708842710278565506954428743715600640025690481096586997606543324064683739466148774065208862820362478987662113883755046724137558791011732038030222966644732323170555288188267517642816390976211638508886469810206299604356024257677412033064722995159527365594194838160347389126881290864192524430071490191435145444300468747314090065435477357768842724959311553461148958430329939822573762766813239109573373247503821091090031862219607965780400708642316088439155598649233917182967756674375650307224286044233104711698159243536578186256645103704670768040787690495938535172486332611598496780087180246264954346255602645807492533185300563770347212485960861835301205061855421564783821573609053626641790246577730253102085885299075130892392269481488711409674454641208352382253158565441726892756153402897234735986674874192578190476187278642466751796051561183331281107640277090753345849767809639267002200382621065569492890541651251765359686191824774573859965454879265150058739127955004292281988514439824011936449826548233209658891129655547658186522418518107073650256067753689355977758305604028864394087767981652842537510770481526931567656752959334397606542682665639298840529413558028323085222200869376371848476092603277438956023993025833119270315768028531431538358726389417679561242197192509516815427342240788802199094331497001756995427083466221820779820662212462472041830644922127414675809623729743242195072938885261132776011134463412911326329878118770249122156072417745760628440217963419215904211203702890822289931073718149105031862623081558416285912984216628125337161423827140292589012039670865203004878342675282134372469374474102429426896315879818584314288860587380638195953287182503407285187641740123200637442031228938421338629232485021351534188048648941087440531883202124937587471199721962033878432081540152505097930207532818653322758976411487822713781487383289426487338928516427399942657501362203734178217841749768656654318773084268505804556945251190707440100804218318749036106831412056885555028103415152257617297897986763993789291672257097990029943831003107639055735942158700439194020666472045588941024718425201365803478148272637497581821218113107980238372352155757377691610158919368563419232985160984530763760610435652468746203271104933633962717881242440733304481812811218575108909565967528374038936454296233359377014399818340888306590966007272755757237091590427694746471011573964893760390990182222690555121916698815348566758294438553663706556531400518202988892901710291641984784957608622288004831992841039162411169427207963164438573255757086486735583106159527978546718466553386736184732065050181505429741414661571330573117608152754325194287251476148367768894584103033861630733829187176872485900163046348156053468768368348949845601499537594779823003483132978312670034702259080309467482375954313691846022572590768091856882854553227710464316889711139785032316805144886305552915091312698704876663737212573934548374460801146829381072332615345922315719130922369011004816442230761646433814228799222739625035422425140505166502014887186049984730653921264570919763522836860931610236349015871524341839270031755274955181567023688830165901124148451169004456117340863815871954834776257604934358987977282103782129189247965148518285345705901075759530401590151824867616884523006351655884821947960986120274681881408269354113407278785319743016327112888759126730800103285798415273260175814927301465342519575720178702267737019019080428382536058261231398555182339982007006584859400516122694114027963271536557968542327311992277723851112661698605434616643076873271034465886655166289800970915951763562851373100097622805436223582731694261867123848063489021787450013465488251311832904648292105952992859042820657077332538540860421831065715988915656187846922594839607310871760861005439483010131816271401789203804053195719425679363943244583403916176208384273403352390199458882594686073466298864739482190639865633616498896356859531345355362762222931830470537413973124922088830168265674636182122493046621648544257530355962244499585350949634072040013802899842694293756110564246289495028027483724433739637314873794782815754538384594089563554971815001135734818038158113219297631316853217957631506787164393539913827507911632137282961138100230183665356616526016929329996409812760858408739963086059799766648273666516406480611429738525925258368125565964058237143127535367612163345937112290132241592217357316950419883984140249150772791910992156118113886455685764493304461553983424708332262119131830720699335854043851795905245827055177968853950685919132238214062738659328846367601103720923984719376084989396360230775172949002260588229754814560176990189493469874500904054531742982800584009105007597026152727179100383897679691863856642284404477141342765354717928665812703259683121239424680139843877617918966518891297943957045089014141967817645539499251804048112594851662524299912529413320169764113254974940665887586915188129168851736522113555078738198925408484780834178719242912698283364837967367760239805735393833959935396289808030051628540140094496412742072082252475509822643627970554316980073816839339367915491889872971895860750378497888958473251195767728252333138954681756668103797311989301725862133447162780913650988639962826970454454300939898025839332859850956315983293739060992552444108814140763805061829522952848477561125155301827825406505286506672036386196515422487345034635646331419549349877079754663780787051471957842505038873694910683578496970657649895817345332274084639119960520135855785909856561167639702696896122123463195029628351430453519867229652688120945622605265144242955000829938188885970684253621758937086129673181498322358472834902292654755594349786857262068916127891126575184543205861319275863136714189405316210451227996550355623620440781342030053486559547497570062362790318017490699259889213465080000981194500206986538850859376662240607460698001630566768671936518746548021918750150820755515013954433021770479343679160134455398155196441185823712706443101073140166410011653953352401076101991781695769283368166169651582788029661437670757116309040061469648443030651824728347245789887788270021407735798168349761657384407420478673134304711830658267822227529262430814114050092807637791946908773665714131034199403948732612537050334316546327843316382194956404140187941600952215165266726775126532374267126109622946320659576015215525602655474177531687770753687790573029967258284570418354124687921048169348042259555343054688006069980846640415113101397481930463939934157998688792394531448270025929459606531430106148212957424367917771392816818879665927939686578299242870427260493549460577189565307481354332572900770798923831825597882540362126273384233416251191339463015458480638295400040833121826378149166404253563222938466931059345654223975996136105711110273128872874412704338199838591286173204865837582986434498925657969076315734188965904248473801414223938165461809960992539535459382541404720151581401254769600160125558010605652478598967984672236589601887867869683155673967033884398732056436509428879611539153593989468260423226642480395823947658070459985037760610865862373908208132262080952310431719627163481278852108824607403970879722122222024550524067432299910416478771910505007435517185477647650638026863601042300190198511004919081336738324251136321254127867952795524920023546913042450637984590297923539407837598302670187144006174573118565520287899354963275670943424337878100226530944497138025321914144440825125575669410937768061856295206063115284402868296748827494545638763963630470901237038641844885691204901584587198418270771774091868275768337238213581969847076345135659370428833276596972282038742978477799613560346527723148066995670430229717773875027550647870674553792128298595904846975317961834608005439772271898684765424785043246952079131277523817836765252406878083352164254532572463999093395151910412776684734410170904230570397121983195498649032078425063645595776712551618344348190386905596263457171307460265236019336523127583285053195264937070414621314163475923867163353462616918991925034403514479311761740877265236956037382576933281996760612719441326411755623753219797432117043363729174029909879971245255634816257743672798606424481476915013076559395553596224690593813658931760257779749968942814914216133792598617537519449530610056862042799929849977454957442816337219243535031874257702593836675276978411318645867085311010400897466997296799754342728757227396223235514827955837425548638239095220961908304699612104948679627742541850328187754553401704172002187831684677184881103567910915630311520013261619713251873796075016093047102713893945571365876600875097594268636147950452300251488936000769036542763433813952804374536096167448718066972161552134906534764300083152159514461182703630204324292439095734672763809781068013492888662760661874885722637429591221977204105690237660082092289529701063393715927049704766201458004074789496898270178531332761004003985555619308170486917433057864632140583080058103713096662384473184508797156140303455706091055352852761417725136029224092144454048056218965453369717596257407115296306991922136405827697285829433219789289556803192981167607715538580476740821843156708498803411617491180325630684307511602127633353150531409625489080648708661043966386530469043706853123429725118837583293833429097268669556498845132815142237638874299862348263469917417910433219738100824728258632378711741061083203388020141760197355252530059159914060265871315567336509059189833812916863303271726109008296382491167587664355156030523298363131825898507648074139981179639323176092532344707490381700860478643294120479479148004578902055414182409688590829658480917831092092546197740726368010853498049194653267421834313917187116858249959440986157609109419103629957160193505882651412573912133707723503086962161380009537682306149817876757094104829060189679852260185319283492415402332027149898695208350064503729642274654513696390715651030720251501138047930553288193915906270242360680538205949994039162583227011270014494004517752929833040584048200726203415214188837114775542049114504622825458161020999526343874557856653422480176892302466985814193066472164129588990616530733836233757591571434864583807927938752665835620934755664588128400481864334089522038386884538635451280907681395997758818363138609677543900999717419097305913445606309079510279350567470012742741556392831492908224148478919619975384212814981446633373842093988399736939669166463164903508069899487528673137639287871943652054996508234044893096657834754449732813070007913801062916178122723063218700857225086967023475939901542564626307477143663471939529429955224835638505575276004395895967673592147732541465354415097225861119910979533264230596013488548641600993459015693359244542612498937363192754575739560529145995665099671419681386786613755022874305488747682230804664986440599295237363263955386441627160865837163283246281037379855137023146499349429892361729239483732669895794444517412450603176583359028251321759425747039787261331236008103976013643327893232533046425927298613172479656524269901424970566917787855805922025901289793975952826653775636589689465733541185052796332595521657126563373277233881698987914216399164666370198294255099646393902568955189211449931340796708855751639257771949856613531255809599462425920556626154844354168058243639665532560881713391045700776457896015134338328114581765339651006522311721169158851200957951422137857071382366952631094357425760828871034026212911356526431301690404400449067836131474569831879369863291217536182296676503900703543719494786670147610009561944941110068775203043939195126106492289468790466742499730189753527309355997599716737768483527164044651597822285936140663838874644640980669806626293312180504983292884548483161205512232465988028686712305932691881614152573102696544196784429596930436108767611402015726472017098932307584862879757654171089518268635005340158724742360335483427665905289489175410674390308376908650205609487249005545957608684548911510531863248413550371454349085288668076952621505809626843190137085217230733719423709403965118665585881442510351777621422214409687606527361665489699270659010786475988431005408574217980681396956474282285481438121925924055174859847878374053295305440293974477785306897905408596047862489186487899677770904256358088397537720822204751440684017677164841427724847487217673560559066369934780871989822839701858578127152172481186725695280262883958812349840322999819391801848001098967488095766298063577631706125067692526262821352540715876240228635391698083389032957835407753433722085483092749892103939450467548625291622709260050410602026548062273413898783186144884800267563462088738541675245460418611039651571152475068965452463903050103066967054852098135200237635223743240639489175188776433854319732581436944854782735015561082748678472191294549102961623804772159652069039910966917510345953640261649299577354002597934479835540452941772515907198829793983194941714388445593670713695879167293863388950864359166897738279714194144507769859415158434175584797090357624899388073745916108175447564417752452555515614241733389699754077216163809010214546247281313712686320586822407300812966749753040586267422892197710682920444781914729301948913257890654836093401646151996352241850049381278848215731470443106441424607792245660617472473018852034832416028953202295734332801441358148235192928913614275452899367828544365411702455492599456742386560907843612662423176499497215079601803043463351725908158930605959986194383849116101381713012463389522091503455068784190208851557465175751409794458128395481213383049870542921496651151121333966534560731906365137203117824023017984390368265725116881873352339875631677758614521974612741160617542615881243828670295315792411844227457771321696130351043601737915786658126853642811932519678734238137886924716349907579020865515528292705383098854380747734623010703069416183593822403459430005345029782122920598526371777822994363065887897767842148105932234369151933825783070166050375294317125695906955592699996682876877222713769737724300639515868336966712850608412625469029500381383912025822017518787256797843777231283081700056235808081079940042443410075947986984678181459606281506183349216897048446247120639472149149460352219762041223212422074310140252903721116248033653415032285160872748267234367859140130118012020357488718874019987647534947784457169093681192516314025415588948842661412438320916786722897687220593872687137563671734303636828313020275723854879476970048616044470934130632712256202226281219402633150029670517800758553457273162140238946514442680558405404286307988052110748348356630413464963647253820954210087968975465355844071734116901115833990362193995240343030882268732397303120639275026404681502353551882932345725706976784536431230653412159728232684515128974029679797532389829550978523427203731154995507657230266868008742285859272998583165031004989104187713017766618832100468195661173033454216727247803564127354278784467282874364133362482456312901611803418063462799871649777596143644542858528754291266881646910576574353032886280445205867790139556770059871230295408014189567525506793873579479667185168109844460903662220138764844555443043951882649795201835285021946900170171498052935439735955176389370661834420086002085325779690724938112892270862414860942404571665975290782676458335703371923208051485381189025730667962087261312918705484260536145237036184695315447676627774832446673177121024904503878907039478325828131759901354466554564321437224429791668784144302972457889419709374932914507359802477764686503724510545742517664037692013246062820605775964828247222394916890381265292563379839272894786021762021956341909738711769503830587389657241734568748911443211215850562867504807952031884260114983245677379791398656671250714878930012517203727029950408779080311111080110396603594948174698110810343794045100664795149088486216238560405388481882044672294044122523260782018074650686290412829302853216442033573093937406273189931758960187241061229374422355160453697413000830749975410819718019873643384653158765595357970568329661932235752761685130305331810698029941594803554479031661073299488981105434267123197715273622172466461883356389545154589294643583404536295962796410045663830953307966957770724881406813825096960657876639053387269723832100371253869138848882286696658320492777454229005110642519750796130087799767847353521329763104236851488990431458314815333844706419165674076921359183946879928642953405950582079021668197314355756569805392920842924806027785987096992590363045737483851735887170490821611214000656706094590669961250369441202866844976257560634577555033975546764472150586211885022617090572039203999291726493381941161580384784689017575602065059086108012285911921343877489692819612870853379422591759780464484923838883335432061907770939753216643109577991949258032016936260449160461182229012623658989720801836142896916406196206617342156599424288610651779339262617003555911685858338393956126972596941510927953861053482683051610552141782144739900070170122807959273709380062192441296032516235071134286651263561447067179506323174274597300706812422070498194976191780825285246815570293047707680061641216902513493393267750952598465794788259999901277195943410932213675091388215363184272949315831366354916048900646262328720799921072910763342935398293950277502619117785856735339593968103608726075819831669277344888886558517035821415237976320311552010803546117397805981767466924639011759155855460748020519968301242731136470534404721914036904151955459681003150897394681633707093063568285203510242490797580390896400868679384279660771449380734825314944109648135269929007351990055497507955538402405899300624890804619797087472746973997416011000102666464521088580037706760184309061519407050957412486763637550724375875830025093697250549145041578471563880497192631613566458918209073950269550810863674589761663002526076443876354337473012829909873779044795056637481812966986358014876273764638608293944549956900348676214813114411084566344062065960044172058574346410334289057790933877925757646046029775061420490384883467252977388154758904128648198212566601178043781667086955734985569236063841604375270102273294549185173497549740401074160610712285270416936682743832391676815357559133461109047838880894737395959566958964416807369693389544989164290357349172042646600654876241079210440086597879476485946721782094913618874212974633688614677004106418296988004424300244887430577574637835039610132258538271233881490058390868919109596224695792974604455467529420131715207608863464469523158221856412377135993268484550790145969587291206209663963675206222130792368903991298174765376786302946016607041140396488188333875349115018247640930330419284194508264643666612261578824464279822157944040524578281345403210840120491955816221856973670590870647311064289659712913242494417738040170610527887819184403445577887470784703963720990477435886483254356493147045396028991648416545675683021121498052830548703423710067090957865577827462240857317337524070714816354611078573737931830466193408156768701418363609763189453528829979702269485963367665866178316616835757638003980503810889301592692791240048073354502616607797274904146649585995078417964045002862112226891245386861934820170993824097205347583726904262581578806806525875433512526201541870867877843072537628101220692653493824004190115407535490429104306218705161024419662634858597066500257138929283864436617511687114594905993918516223405062003666302512546018327869782383579654925652684301002745393412420077676167661338613953259545974036914008256177226926743187599341804156522273567713752483768480587855532432481875154775542749798372141534239643525793050620891435075233688744776845619760758958908867959658387511301193636367055647640063594509239023950125733596838586203633639302176483615150501298975169849059492715990145228811982033821239295731308838213024713395910537867679365801790090848649549652905628299299790636202385525186273421596531072039740416766826354483082187050570624529738421048457806273583624411377175244667882279548064534166293973665037253636277817795646469491495589472707761227071328653446609361969137004353504522350869220184909882287069175311187529319499046411008158439775532866195797437715907412478173082907346920545972700808540123356335201459225614435426478338874200592744419559894672702942973517716518961198402015156298526320393762103658714642293272466917797073481812080322007739925519502897309931872644846715017140074204805047072684273314834008585887904337797559772886532591482985297542165052879728304897699626966549346769745888595570896148993090392898142218578948088764507484263583123859457209333266906041660317964823457700963965951085445294435555811817322558666061295113262518917862751139529465804702532950897916825737606826365256763340088055929796855920402699807606741991650145592808487492919678868065308373896193248156923675030617209734390134299925286636774307615315776090267383967902880255242158551297437970274785607226548176969415124728504031689218442385455714505063359241868748701789934396656535794256021256573255165288431153690452455287906472358156026711695816141371261069293632130294003917675852335031862170869967527596477799483104551945319153868544313583490942404807011936673611590982384657552273370136666165998871275829006106133537833359921099071664382774727902920131488748716677807527993740216859730764460954418223702643352589164628836910438307701704427950290731274840568214848829078538901339933511984917583113422321577336049611363111717745564458887868720889410430143833620170791248177011405874699660296983311283220191823357808329017068441614732026961002950878078723450515652736515834181139868261373242343806297093487062992636394270311473711210046664787780556070124542308527535781263338605688344694318539899310474132110666285383376867140169282358014394764501899059761374548823431533909189842062919131865861355680861837832182196587497485370901927635735944421613003178587487495885919072850696493739678721554652063885647879149298473534387981117275257733427646550904749638835068272353550882956654420613724733289849156378743780503600824672472863609745629332537973550596924402032403117694176746972736877981473883125576503985202403702200982204577770489434085782068862076199730792305799286368193775208612917085003873738767311123734764658634526636814257159449541960547722590264646580211445544556815138164974188215603393658647358679191004580414953429823563736165978532789474962051734663330757414707145481690959312640200374540908257577861066094941003144290654547234262467664568102375247341272924340346744012238928254043042993852396692487551143459544339631051019094700832814742113442866382645149653961438886751795559947492168594090928215739399590072280184226978381872151110291396622112424388657411442482459783077974367388816984986863289049085010802008043983892124659935300923295593970371956378575877228913948744297504883874678260790623007555670241030150369979211018153953147156023296726081347241749084493744210565901048812751138009262024372640436008009780541336067238367272099635179136720986293189539960046913107783273026727803881484114051210081416884482020907006438065345166702324720123630940927465454476210596403955715551696534519030659021795993969828563781963739737501176845494473803105379128552337713982467673810197887395220056584658340421760867824204849603668341070388102745224066195010873808006673862532514066481549897210973992990769557903191399649006527569505571905949353818239621843308693556784504253771320857255667103845554780395969307089066473411954364403445930738189299105659025755743795208278146000371827298713638977430565766433605357995456268618896354081373371054869138181415756676773691009410343781209761876069676280371055623483248900593128815234254370026488665590887461353761637898409653752438996148703695188783959860553946719864416124981637294966017977934383436173512583401096501456889016473465317053977175980451661617702350210374309059972950720532238794078056775893224364179584095839061815021607230085668557041513737576683202001964958689997674631765971519454107500088693316688568509933298035515990714015436606609582299482394907743448945064241810680939149102295351775271219533799209272283937045982182184296974799912232503268141995347283381296924379779930628543720838894626239752176593207088396659069870197469232102756394740564727132123371605982195560358814604632239468681686734146373336284762364600486620274631323320953626831854732142701521008466333240601817504871385597749166666676392777859595389492274104305649084624061228770241349590679477247963600169502742398049278163152405484972659762287783172001321964036988002423436609944933927736374257800017429423269931065606436504648272325989694606170273776311239205070690912416479640901383800241333883878335570811916673435930737619870534187731611841478947414075177829451668396205738558106176009161955722183789242532594280916932333131764397599620171817377438946121850091160171037685755383378832638781369319019808413864640150135513999021229522828330099708451880729699111719686978270324190049477525872661627474048522990019266425010359454657551716864239463688094122747413729553128095254098996472921946138966978752242421073994996316938603417269474954289115161185598702287182318795129874011840345385296996845639330635139248693848565408165589279397114864241203855648467949592309554029507431293491676456063104162898944197492581957677445913251997266364840337648514812024312426348080041944196189965478233971724851141571713314732155519611594191876329962495823515720618118853473536515018872544375713132306212556441218890400275722278188859083826594270278858103777873416725757556302703201161828228897666846384430079596437076715527595621008057924653791807607249872832317928388159007112073232596163353387561196668334399683273749382347195849942489366948908279539732729565811688579266066826836946645049726953183685567847500752374260749675463311186694622944843010716702120520005734777223659327375377134631337505903903061287015031920903831454514521715253800038429683059222553600212473555242320108547697074201050369601081058323479980840167172781991654137651811236965295566861576575735524298986577753426900031342169556724780355090062302226195035094607320590302803361058386793008127614541240495774104341616277780011979079486571543050767367959966154579911548690132637072535490692503890860321334035987448541749412780984514489857876404424075956088864028607737620392178240167514073696795510503454840998302485721217254777058485564579537150378400803640026029397277559131792310977668048056412820354641991453568387960980306942043221113846213990608196708018477381471760631026423935410086688346518898991381223428091364306349803763593478893231236194023153359343171154964500198723662486820866881254938125448978147443476340167118266008379403411876801465001969954531932272730373860690367709807707167849619067610519291923571157905106882738119895525355557413428310377610024723957660231535994989242943288896902739855392826193627546437643780036275150945266122146108068253060750820152545177177361696912388066063308371312765008973827022166937914144092079498724832068520045208013397891414635145927378710532248570759768981151237603536279632578484346244951410334137189507632534677636714949642889276887179796697933530743860388569910986751019264898275402343237363237104150008825665910371919454463235757154450634711319179904682642084318538170816019508853918144897405201914542098595891569567039539667845169219781775289899850723711910620929632823996012313555754912000601502527182858472217403011620389896706813494067472476852521712888944316667413421695066081531058334352191658776574598716045072829651004032091210952680878565395982712701307247387794378468935672606727618420061413868968389278471618869950072174451709007289313084192331249713480070240622495593970913832442866247774396344736521759803184441747857534608329344170285883643644121208444551900019364959606878012747682475465283205264037128941316842658310104899177824044963907909176446177994496925971066156625364214806946573994237556151188604092627657151399029715003393944081610655973008842704968115366794659149640080470782645171243249207678340872233883358083601365713342417595219357685296202271424817333971085715339186801658505907274205319487763535499570497092771028153999489809838473343048947117097496532545126432089230845877126954212663431612061608674442005731141063919170523248201794772783845247532505712966132958028904789988476332519013601777650459849479429414894351746532027718724110655514826075982873267307590179351825310481137879657157554259280185847692097409070461661658676649292787363953655385657892651208680669102198754373527969164183459339001138250863507362444234664347333727899967607529589978877321649584977234900933566495902372034046963989622787282755485222128498413756610543634140928955594901247792563726582272970953814033903884048163772332817720029601138783977138698897392451715703045907190169765035046847100466073054930490704016135550137341911472271641698659037457669756729724572553013133052376086806082386463568406376583685784294579672258364024554887802986170715357009638587178358101553070369758676285278077387349584755243785243429508525180917364596045117532153811540857324139139616196562301586523583963874232562825557091060473503857132571409454810241549365164456449742061674103971697490528667725631881686165605445513856649729098084997442509481897406647498922465615762846180590063149144314028602723814734590732694766802626862511863566008424581584006728480518578106232153864553549908312141266277457851092073870587470476033794579969715864815613333376449778436603207461393375291685374393275661523139929712010598797832958406610333734573868951103135302586901743190488427528242612512889488899620982534364372527702713935627589836594051689392247300814613093156021707154328218247017722008338203535841622947741812470053631134567807037784244682960630192183606789070553949332779304449058103527815487406478773419771607966208253707933665248729205449193262254767950762449015609380780147551920828230725493313242520307004382289999827328907250322376271985069556864122135252053194416674740775787775141688750154825889943324627042242367454465316850813511913607004423620405188607567139361135911406860051358008660770145046393173184100407310219485551744326518411072238052817231617519452867027703096603418892351568438378005563724671255446367413187650932466253074015064918400634329136930558102145586514174963184717765571839729736932110558115467214701590887829150244280107301306084990862989076481681971724340417216677228236110237638496977023213438084717973303171072959218667322081144787257397658120636032117777866851378799071937432023314196177357916500895621988329810040539743173045354360396752392851512875502632250946721105233094739587558867568324907244948952725695981554233290830085586501394395193320127223878956184993441570626081691121939142407108068620763337063537180221362235015319130435871139987393999688399844790236795625446385922666142788945888044303264048413850480146521963699139714350817939613511041301175061222425708787849382071385096140717266633847298235034220690775040061830326630237100277366947700379417211686110257588733382674893711064135112967404652100703100008753208811984794191961396649986181018491087873866507716468389075533634482055257494099722249874883988532338356800645296473470504769110691371801654963934298032333397645037023431032523544355251255068437999048606424368889916388189115218121151384053920135076814962768987425204498488145977477080724295107278879255822907807668410426758340057187710568961750294343703080925045370529565948637863309356551806333966908025685827594864990775228479526353961904253756628002624267120211888724918225002069786243564197372854180129597495045256649768385342972551487740530911721040996848820952504772389078014768019507367849199370125857908976417121854735014574561437373064594986641021516486673322988322099377792271381395557149630513725451868798712990129711130427275268993003809978193090465750242360334238099711926319608302376462792818499177878506638701186499458374935350353208420123721867584793706733855940246327160877670292515882001095021214495032928476827673631295512929687351607213880502120801593850287150467240499757014686828744363613091744276625656132495676023490725324830008584749329976490744807798640782114120304640271090678795280078920180424483409747876634300596213985115594798338295320716380221825938526660823171588448138402548791419878234604758023675186120101839034723468752467895924302024917425182780130179398904119591471808031400654788310488399040019203162133196469800739208404552345599137857615134553577443415720785998474417773398851130499195550500645428108019551796630799964028968035008224595122964921271586027200236788114199936769715411893748025885556090919189998570288691262500171718789160045620596183662328422501193870746981190364483502237476938517072028842449750732018586896831882084352604638809597832572463407902431342381704418444314773919295635716250051768166306840482252635989575283957249985203553136921287426510867571381799820902453435734414797789982891644456112746903253736186059301768634804677210936418063974606769391707257397389293649019051335944954199958840543206441833741712229283256014086572416744749490954238252530306952403156522933946009552813832653441814396058450048563762190387459350575125009427547115928294248323961444351055205856419725134259074740057199548844130612168851447553028049755191867041221018162519292844751624264598599149937619245363578019810104512351913702442349614349482874650015484657534781065574127000116104382691865845161470415386609266313377323432292013852315911224264627405514706513443283031369457852715158421461064477626220735484861519790299796343870622030523966480149991533912342170626154707533693859675158379339521683774562942648263464218070024309625165774300390415430149324426872228672376513620483978473998683013360667885313914466805065068386939323689718575407173757323145024298426533111779453420779998655541869135149867947316091447060842835387513658863984714377930084171225195636342150009239446093535768629142930710669940836843692935793800686034717495787747179598535526398812798407385811785033047622476570803857908471584110393506440152159323104521161466741130619598069246775791366015730921440793130467055991969529129348196639226822394195204422176134967068628871115950924467201002047079397899781090698100150784378023673277697047719534874438211626615590103216170104017874496814161303917693080435973853151229440570665815400727446980949738510541881489446812811933384291306142895080795913073109693372556984107478288843307989271366364382958208165605365651225795556579077678259977765488162300527592195612466462267839444474665478407217935424613745622177764115593511829179627506016323539099443587775335699976999262172662292844304596737299517001705172003307144150989911600661560477673538305139843861043246571614918283927969631136234442825171794157624748681108098156842303337799119423299843729046328906261408275140284277104530182497808023031293268656349013613850728169894808519286770365149218786302830174341825305205082125755350422619482072220676081713553563121364337197568760447360364931593173090246771059423578954820177409143781451417963817770959424078957354392103179806865355514766982718806642588087223287054563777154297887181452185447692576946200889298555940550326567080370003464537672203965712292143197458385926130349576934234564141657437959371776523609008082466773871872619188236309463151487413440201641914358396440713520398258764291591442459948738456280848390684250217700858321457327386973250413445074603685030864254153125523720757833115055724233700298018568450017950213164166910710518788904901269525655336274690200879765981981236508331904421886528184629200459912949471562070319236109061280533662838559250992361556311591284429166073212423161660868932825859191622296987682196863109084482623259647951483987538138458774182803027938623609473684319963652320449770803817279288127447563981484225534694456462461211130893674601904270605895470579641394529891237407699914949668700054108335826015455538737947534039840797499183057959815957436778090470190784887943569989205086908574748542129228690618943302458885638338176477400790438663650901254042663173351167553719160933301787841123781761839642447152029299462887981118285881774154844597750010956010125673615877731142128070548470089167583077201359618883844770004142860040842335218006017527991935712990491281970822031177474350144905184377459486027595238270767497943949621068094549924411681963258561380188703067885068907386949776774563734248479448004043231282121445019988176924107073351017142572850566351027040481875519047150583311166285683215890180484459401833748695485632056829646913478843688697175911607027965081427762663296694572261968080223954302726807654196436480977974653209279791394221972955419487397647250970281946965243969676895229260756098803275112860255780359133326473947452734790073593933050724518356660751651217718624915588488392214125883241655786540178289235242691441644269624921158767762687647771723695790202154722004420464762290891505983337139537077448420110156189686314629373865236830027571642859637342479388737966797731144280135906748325372924929437211728379841241052342241695156838488842164932279735408880393910702593729659079798931088979812098960396584301098351550168457690087474060093668497037428198006308351460416486422765210255339289472670974503747800790213493527043800057531828378105232206084198656965196983513916090936128460366796824405012483834562434971645840642309280652747036352691133261632627013493978547953962537772661392825190815637032484011959948881856568379580653793169669183329820156126353323128713731920999706829129405648058793069455665141010294912660370944625559173029857916573715182861951161711174820684210660889392747110259006564105418814533819250456129326101786543275715591088390160658807706119584766999448323502038089838999576502440398277323743009175864506530070277311995556737854572434837950168487820431183913179873601846564510966112602227091522690149929919109174311719875278474933292476296711938281892737350651829661613297640935809531764460642138492309599821063881653438143722998606931733685731266259221462237321054006271684007221159170100150516643883769290258699132780980200858239974383681514284742063076821142308922444350749664970961590929518628788645229973484890089957520268590422778185387526704922142772407542368340388964854290909727638753523571132053782725365117043044415783698557592286618333603768954664125776030568935990017214377881022567892639695723356041886856318312741104013094167984623579617746451711741733436566322056347124711780745804717900854281734501685105034426343175287130839405553606699565716227084818322235615442350366725600537880659815982567102320868146900529318946425441264025165256679357407357809818104052832790724317590065502446079076379056152964620969660828917097064813718603587248058731225793876207698826318057419453567067700442594296651259922835269303113560579506257840871036134266626125602919147235408782641506531175202170810678406729480715686307126859463345973705305516863933272626067125881995347691573669457891406263490348927318807029724461660900285762318916329848074057371963023015611958056296988923013176733383594366120318805377786182210067246367426216022438516785607614838352341546769713565216435281925873059948146432090523028742200771026433274833628097737102281633898688930781200012645805483251863230162533097989913796974819355329414144822767830037452828417371499497075657690698272849329807970996597055747912297300503978421437955445773695719264709044598200654535552701783561354049743163845288786818810372606583836220729191902401985025977979800096832080813787689697878051758681801291686222116340512510210646924520760127045222737890064775315639761398829185457746279749127420246551150837845727582396274785344889979266436430864027674971456597529308208854401234938218590295941936054468538811509121540195516717558955905577546562783488907913407414672884559415776343084043285496155088550413318988792564782336562695371465881972010048585580911933920503531100992866507221949037088914732953374603095742733100204110320516803253765862650960674275731833854190805244770189170990377842873025827899681345591278602841025085075631952648007228326230488681479453770864170731554869362851813981977467881398383798670760759896745240144590953929945251270858001132722654743025689937815720397474589492085524794746161819321249532437118671295869308416437519006455976199765378086051897209426745222749550565284648061043225868721846431010800265034669727187654514514302793306626986032035249104717551908289174625159816463470686064403754820114371952847269002659801122158157333993483312159351195464575491147185398040417588385002382311655630326576948388347696858674863124566724585070143828422407760090902431573075835368636660264327064936388841125408104171968877324806070383481609182954193586784886041281423838816715846103029960603730228202769257366460839658730911564257527792216121944617928162936965363717071455076725823521461628593463147201015631354859095387351620450140425271388752101310892735785331411824934957490744028801517077915084819170004278734361315866645300448268485961904113690768356105950394916697048614329391313427566740588936986172647328650037141506871361418676844567809574023049218766621174930703826322095739737061388143422022716404614896632457626709306011899661374896607676796434884118991899361152114461042495061174748732423427719354793644675532241287374473924356108662659077930444479038477712176532933292142887707033517977891965682801009800897545180113375835142312101173800947667194282558923139168929528759626594845373942851588032947851679128281434730701654820540050616453389757447329370860962567435905783999910934982375908983523768709961672865004606658354101612084271468676360209200822729770084329673350114618925220973527943762072750172184216808837317179167972116017918841470636071341845528713941324587258195194434113458261382347153795972400850006520062365692576845815071131166380350871993206590758487583488630899378473602694242347599078348157999618384723587960379410132914095115120573277441858383909248855999776002253793319865637549743892068322812758217979592321031353810584173820893639742265556003109422003433845844039066356337036809881224264412089186589385699531833751945706470729606189094751423801479610724543713966075858219574037247558626834077509501705386066156317742612685885938450215363908382519946773150579753795414737106583354428078737223832372906390900826832529325000753036167680213016655039967893831043583853810676343250462020939409697157568015841535745564630663829817041049668878200655328597811934293077173777849035046579778023629224005693365706809781911909544112356362630219557281630804222954544857110438881778899992275589296537751545467858449382631515892861556316127709895014489865659905517779451367404912525454720730611904302834327063535790708186807084514345571629950813253936477931613007448734481236201932132307841588390960511436548757359228999122889410644211309844148033661599530610734489513481791787746613175671050511241087381134504844680803996622644670612443151709043198859587374111820635703262912061206115522338779438972859666405562387998253293676253401704665796455930155653300064401630351315840656922050552643550771436086747769370214037072822326660201607863150602314956264113100748286669663243663990545300993721083903834726489426605810839706704527248643949894420936261854637642128612431704901741826010621793207280039997398358520023999379202344995281864643378334872009743996229428579936670113438736521069727517361462750380964143776360249075011800708389046143021323145766899603580397055583356925657510328585699239885249385510796133568165467025114133740274860572479312114537478238230993762660316057762366444880315079230265914800571411907816778727301392995510457329449636385402046557361237955522705015134003092457605761989801910520152783531326565814999311474968069203064180431272417939700770167637026613146597963547511762296997405933911540823009219524429877822702000585526739261690594690492846881885405135813596772736719495830561683512403144437347023496862803503260046710156723148962476692550355297233841785915019954222050075190880843005040460084114330202651918716015911027103953194408347281190287866174333200334511991932749458691169871351807791817127182508438098017837347577252205809763755285761120544642316905057949057510289576244368661157026553859960258824088774809441491206426124102999099732684044500741084164022422589155459753202562121678830885554401387445087949700417981009088512595192411992671098082198920845209605721738335783151522146320370781210032641980975414640269023706145049318624154221587855709911224352762572070956989936544061260750841338268095956765542002197868859325873747520008396385683864295234378089190153649305107639236060233978067749903018265641063222206384271872224349052884680244319208837556133460619440474849954060196259778316845818195466578723062547589977772686604878770643561482337415656388177938143450982652594044715701595400713539710969400226508503628270474259540687578393137650894673255261215828680189175358525832407885144957758007597798862018891723685100578846106748473436453480954308346703094310653478682219784707405336099486970783525646862127628350159458301030575421146465988304822006439927219772159527941214244428785271369188860019471180223108281800308009979439127654712303154426394747621003485054438475139398867963738171153008265949374575225874181716373505598595625929353417247925753475208033415028590838691719420116135517324917265114031856089190286752764581442004816816876143453548984580315018239230231969025781674961157311880712744873350066336455050076927671787138079232780147911351028523541893442082404043602424269064518199593769364703295898691061555727762148374298568638694551299791548334127637069219288729202098403037984354827938310720394056818082207672672340755445305128532794317767048992369853506780240814662246658444564021653535590760875032567416306971727464610463919003803366146856160896480347178333608326539084159480564781656155278086754902409230980396708210023842732620277062898991345820553282924409306040381606061065977913754523293261702037153146468473526013793465857610140144469589100996181829692488531605365748519660909053831471797558967324220489220859386893107966254220447449559418572286480071567048908657416035645305703651985470854040631524425713504822021829591949026280959893816849301404359587988686162956980522769920469125281518576992298781144303477661509683526017638982628212660518017127786706780692441673948828746636983232738168196133494162600848487695461308788255782234708766582137910579166739444044979610475355555165187434811447378811222447480997413763317347267884226434527023160727240302265836192901455222087889166801851737888236781274074230747840513993507009492191075495388349882291881954499139515767014778790498991062904996504286167806178276244751005246163352188752575998767596485239376122379249198794559406078061767716498232574243146667475588876374998572267822447825529336029942535597978808126074223116485664770715014134619297717222409641752685613284550324861894370027311235163685826133885275908445105446336175928525198937601407519823251539184187224142974359986620332890918457597915398989100724642823267508667603725609574555582225398245233144720197726035825523133293418242961605577604576760234333964253986162505432557664669501269673894581782130634885613580637009616011744681260468211943474471876744889914659576084115624741307491175558484578554761269114280818800139695429065890119147393643258822462455837490653391436007629546801100313459394072336577019997165249342184643186139930615015064635528898864218881861390968538553721034714998411930243876420808768060647855364165950327809818295727978441387556870151010908888720388156699822474676936713102432652004928328639640015036339634923353154594826881362841497846330357386415512099965755123249320678419871075856066818751184348600565811573413626827608687112689042469821607618159887567697865770413921232068194383720475136280968852753557188431389796521629841602437729920214213308926109373546965199166465537106964385694809994835445696114482099846762898716895119996531576613651430507331438035549035283539835846690491738813480078558808854690220633239193762795784536229879625144400662716472805552556113737986591203969674274382862001811005072847674828054165413591992453591643898532684020387833255620508411598697179096726974883093566074589864904506975263935193884576314172393888399253884319597633371017753418713812701187913048925021969337430975374509216895269889685448804885651977075466429066230547958440541985976060851763929718249170834347528530603679860539627820127610842429132896730810014448446160719747188098561393583301300977682245998764923546112275166583511023636014987454018507589793424176307199180602376895207624286267293902930116215291403131961937773747244862149052423606782232583108753410643514618559478191559090804266736792680112316803422223280700147192469803325033306554303401831907857287199337652664488083399544380517311004034593551452053514176134920825058954286178532197411253058838071036031435055373240076475370256310844835983156216041087380341708106392954497174020335095018677139893982389251969797112309537481181818852684775563103848152261178334976419957915990036472754886612524699344919249735141953002096857283490074179075162866421095819708652481330867025223482084025848251051591952234628998345646257684909485574942487111708603498419374469785943038615190679019217839678136729141239139176905566483435583795409639227491850235754157982591626286343672062790090255204463007520002366095675458065251006651573973106395579088929378192781609408127569336806255026942283012681042935222415168751131226733634838732844485520935454364922913034657612690808262788957419163229233490969541754347291617298070400316380276050485179619921181324676667032689239112793045083009980922888244784079744263615434789544758793184220094007191560210479356223531556536645609542191269345083680919520010121858351168208726195333188061755840236753731425945887048895435654062916941006684935987505816138059111548448566842442901690547594909462153476938558717861239481719925257672645239120530362134288874706224583621815277170960890295519645274700168504944893938525938825884392901549547362879988578523002231428464024535799440628433413358672207086989141580619637409928004323587405478250911170735544056427634802314697702139747173786121097196197504262540353530006142810076061221903660312619443882969555869180670292277692035728190992461079095710356253109173208123140701207180515536061195974219101606700787022991362930411786343806938839682377785989817447246994776080172923233848547112090931053355517684743489699343791874429081415795698025957905529279733710166247482673118559044886912151371366687233448312878320290473706563976779177272103498246683855698864597166138594733706729475014340539860810026010781153100764267399417722203649873697581015415953914733497648163843012223162634475001139487191002444399070674043497845235579515336279841859339359139903311030608192039622903026599654501462912868583350321957129613848891587267160779922961128589326937548770940635200483296047100044268793451157498750266868450828948483119073163410435451144333670400956485816587649536001523050673871248653980773180942100843156211512581760070046865428019327813023845292695545664762953367196991735233986991663131789744540543779182656948390324437301610798771071838201069922197195972746379029142507828854369187947972810965384594401219827903380260660779517281095081261723529970382358246945437568994777781803023711513067369795971346940165665050648934321230823707518609899729470958396443380737846155050720358772728680029055276701839251978400955915717710921077624923298004429777880733352168395905844950589664760434619488427589008169038675276065067796006937050520112582594749132570096674229490934198492166079432990514422100733401500739653717995789196779886613587646009080751433203208611650648955533884093901714087005971720665155450746126992294386102672174744328301930658715323813417143203874766497335372927389663322382135678808419733570434294723724069632516303553366672916355506629563271152796525696664769713032909975743372905843979505060258188060381567391162270001847939243930353057176737340961828111837978331727436607910820272217748061159049202216698069597229114815481610957629935762704780755803062000416164672704165031360269037880917212384004420889090508903418678180920360992062599936316808957689340860117951919673860933788832284834797803505108049433204657650976386287075957305746937833132885258864572419883326292201579191563496016587074367322771429961321028626175508597309736430011665389284037383834075806375389200604126163698299974255256449115350704191930390791997028612136738452442495038015524857694458179858984716670640887437269224194833654321667348576332798796783653580765629226297197536038151229033009084155885535677521297932975140329730644058496329273697381466048358377828749391263307575935654331353225293282796031884886051856972736805665430278333114374661595816775998185872899639524515572223759710852492929902636521030642845210388733491605379389892139026963013281931145001799114730241587621672032792966022032558556981642319155757736565502489316833597004783878514690736835840452750594929284021451862231695845972394689666519508060992827572539576816263859946660271905587409343583646582521996054201944427329455786459832731405545010749068715262747587305397690185510166597518726168326966318485089839982357896123581978156843203051387177211227234829522740295620299107098921590197700593932643381434757160684294070003588291930372883175189677927171302186254776554010235867165491886335373622304242695146226753520783903815788598377506895859983851254721291286103191691064504217529160175548980636343366136036503179201751182336035960391105035781368706740407978888657190741191632613356949371572497983103082906053400918878058873710426084909665084368999641018841915471086492558855161963256512117091022189450663292467769421804076688738132627665641270656679872209549430642143975677085463738122722544656992746995642012826807819481210291727477071838040667194160543734929491955458226876758628404716823821056483182893607259838002650255292622493071804659363513673767194528184277792939870861788033425153388046144218964730907781698798633820540575654639431857180467178901929816134176922718981281118765378666249094921502674425591769951833166975743232975280019815759593905359418746898787061369609610740330003914004573995384160150971010449695505596519451256147601688498819171477045095214415596764330139052091610408516796787349403971671529565621206638139839853854502594263003264020624609405537936792645899718113885779145995084596774466827195276509523226079990859332598527658454559645767167589687307976434356487693354544130772557768789305893046720105197631123617448710878284979609521911448829478343896704515506601242731584560934313094132711280964645938821347148778253450755050848898679475271376767418622368423535125694098441440520724446261241252627965295767966879418103135360354216717461793084799997338297171141850662606259861742483752506436895540147420342243180699705365436000434282146434116844656606868154911144516189504541121824605400379140958453823407541683247596044770404358686974582575960414626865483564516612745062316578915652298538022887917248089580066655466615036379789244490787210166276501401200369910436689499075579017662750174870580992324596129903837161833401742241606339171997831516748178955979845752230862491837128531478294688487900903426517446784205481056906254521846399239858190250774248172710062890261861057561388841760091392205298579186303993561206623292347621833762613737039860691480153940373150774415721630664733104704928116266249082880889932665385549188155742660880996666257311432561328264635920034188699959625047633732072745673762108195645790481766360934114541429490130019902895387175526080509688033948485851862243765529397566867854509903276532679612061118268314294286351802253159711321464617556387104867453251651212273332063250280884909228713070833911694476570655544151015763767582954015975244252512175901603734846422376339156897275894541713657173130880575950401009252972894661425461556181211950210996736227953930939844331143948828075893851999580719350286431062655092917940241739911558296266371399982962386363016077277890482737375967490789116866358624637179830102027708190834499237375276874412169817774980499617809835912376404259455586268607463732626578072648876512926615035656376865369954311633228450456382005327144498157464671307554641501795710703712145935531135067821388324628297530808031483613851737352650066457995598147648789181888749014363612640974243622002996179946787704208097924553054764455722620330164364490729181167668485460235615492142705308626083672532731643398735984229410424120048308042226311763113812899381980402748155805906199218601417805652919550647025370288619692370965158728426907290500124894279688165350101746866297646009620362311240215700350122399738163433238298105315607936981825842689357910922349609505550363495831112949523656336136467080713787879150831489368505640785943004602403316006695206033031774966378715259149878191677177905876969912179644912701133473391379724990646639973828615230435924216338972793332466535486148207472379948269365858598571281338530022793391246605317112833473618008944416291899744099450030088473026236345705943611120681290658958045394192789186918123748390506845825314804281121775281298449321875740409109688496499476463220295037461849136625253503028989584266103830375325840003452307298889951321750405143284654308724771711067710487551686881966452640996527715314820607004140745333282454985811559239822445293907523597196137967359486394470480307006343194693108774805803587916732789839809440069089261170005464491805017739038283594096944114230197565284715597844433915436275886017890272106595659361963358265968230734205111018545806117317185584815025374795785606548905042672559057950708051116475141571869183640465908733525144683591028588542854543021480020446722716984898573195764377405719573854477535479073435066234389285011969131134080391228064783258547658959315948237399991880813910870841823678415983345668487200587834063411135742515143373267144315291155347825559515659668109051485503233906833152278125890130505744655109332677550672150055508228830012385846962300655083813860870352844518945436938951092254721704065015165517019583796761980214338878414992901439658692415496727286189386133230123310329938432054256794290383559109034981062994005584623774771062293051957393641425504572127023014000201757957268140571258195476427804982999125218049981486369687377469744539115472249598174674515927895496500494854638305425975018076154904631478534426429140217134144948856839789266605900245616741798451927094495150151611990426891869558799723173981424874968010964783493606939154407418568639513030387410116147150669387686126861073452745732882554824389397489149404634965778962656123435277183998138553950815238190621819543678223644523939218021436120866402385161976523725737332644195275054294883760324815080261257962938451867419570314026078414463416108280732448090715690585685441249533909093602008237511802123169109547003934337671726926707690177072178234054543949418692374777540183640789182266503280955761000067880034396742873161586004262543252643177506576224712316780715215939974353819106831236578109388176413047265632857166246679874227524154415140063372241362855067698865937177754290722115643530435659557931208856828391129269772502134152992107339204983792831460400363329761349537659481099891754602540748113479547112099967295497813166018506400877098043712377494640549971604631451315409311082641971659390750173263837752360173540509893741273362433933354522420518980067672711660563085531229330417254754675357197398918245798266450539898512944148296728229250393918734737467298427987670668745049151988636103892292767899667776309179682799864598134078407507811159861049304931933407088638256991020162598790782610416208465052968548293806911298781829492120255192687700927591279813278796465358017869270460922168127957238287408799643100881405162173329279834316861549606454471090460927373070867050889523960283175583283932567412862544744411934068870372306833569446350261756442566396521010959520650357923585242191801838150362559257987270278661896213382700562030170688099026789699626564069207530833900968800991798789244911293884383904758002451327874421224801758815128236027403671667263389497173226333165377424452186755858687824435953931249429688013562050235393091760766879690085898612560806821510356600726256845032661491997114674266679071522714682167386361323175559799602851717185377458654640429633512703686902204899453701580215807424634372531757005183603870436439670813014163055857044993650746880157322786942672979525840124179573043333685181224125230368310258680791128814095634574471410052108206689069220470927465826445204030240039278174542043842386807942555973284329361773630626574118448290065209452405305325603492217072935480572749645197749444311827724310442463526472135554503993124391347505357060768782045803339100083822883933535080565893753891535275007459185307077165655311418626936826312639178242679744059362369030628708925436190976147524373076531064843773625645641633810820905204689629913701542111863507393601765260499139985089313714852316433863339952649022987841183937790035434486584942722027322834225482606073624282628797776595255433864811858524543045011833331918811872802373556448605593619787243768619088021792956909113258219429106403564240902492512555244227593866733838664535667596054363805276068232895906120220800755262920026482528725605516289307374537389480385046209570062236364467022490143589394293939147733995583111972315063162844776450515203962276178064543678849949465316339239830530016042783420234440834442322687794990302149818349346013606561978780648338429897364277122001635412558744123169179081408899886299925603929485599037791696609426262952570648421468334477022179093275655500452148121684092429562774242161075131980405041821646267197185992657250144528508903819535138072475091036490876272268240422428116555305288498324054484424211005519763707238130855852802837814211756110977180048371367179327409920398994346246106906412872113104332968310029481075302666081225880186032040947957377488520485945634773195833618087977492351397005081086361826136854257066240109296788443454382222006276946237525505376846190453559215077594275849940084094316953791850423934900505194874961000549928578545704926403633822250693445736057694129291276553108359135614136817603413210406119460293637377886261007411255833985190537855206826154853126306468717600999774287563164314325003998396493440034870755927393765102193021999472451747122582954111239270414339972276365550172638005721112259716548482779962892762025469962794869507730472804075555069633134466217473795875002058546811811126471433368457585894530190626231862480538914808651007377062534713477770971648469244399568031290931134044832898284641351130417742077868406438162713847781055650091969180393403901402633449901513882673533282973899454955573783721883565227691547586545145540939362933802760835985251428913392727361925622816695334017707330258142952366360406558108416608941788334701782294756842070069299937171202156952578719210387025401652090290829460791824866021934293518110260423763900377665123679112584324920886642938270541190076503827101333904794792600017136828893822221830699310892617451588026698368868199035652250342863274223781689147436971009271781944100824587197597937545121233762740880233266262286540681588065930525671587402907328294537427860819403364334346308301330375095128686448482582824219825746364984516251123699971737751564066714826363882248686941171951782311511748559035957457403970606027867236496213094790670501662075934626577983593820427019619128026362545796054011672651191118272672718393098359827333595816056937983714913431291878160118453985871394645068796845964148471246431357561070265322500455548243769791209590484890335540540234782643896854931269185588639731418701916673104114096842277477835067207935881038603870810631348778894606827519798860230967765079198962870476177294397308944501036667802871617555220316077229624502686714410950801038557192034062381500321395910732934112038473217534107375453897764551298728095488333404233240443890774541064970203806101343425423610780902074600422612639987597106320729835976901680414121898406770651749322169233048873688022732613534771492065994285288107632767176895190203543619994078875865992466037623815095674229779018563845800134099445080331591232373496340128871723082841906747040112249896790146818496158232392956082245992155243264754638680054337434806085983769997611417340508700520650774060364581036679543776596809399819680731079356828269595015228287044319077318398037024611623385066812234540183384349258018366135721317068086859243385827033638274864673280405471999287507591839110206647050489968705436025530854401262623932153726552293407696625820712275905491855584447589366338344944885457043657665393484128280060814712634041980002116668970613007914520557248743598461253422556362022266546575343886601642407998257555664447463667645261902018996082506226671218266045434041588983385735679519804028606169214232858307023696486135295198873938510014141052296047902612918371489021332698879027299447274391876147722999270725435581728781837956905336955000466359225167948342750170338897900818957032898035340911000569223996451453759606164576781154077366835439617980723667692592176935224763659924365835161507708077501268490806620601125261091064479140430488967587672221270077169577832936456467151100239327416808578395485693138313153657643738161884618186905853300034477120876351983979273105484952676431299795048264383089494046814644532218918831762662522423156602094113478124896045377863042457360681864945817245603750124215234930236333034325493548164639858806270160204800973268518305551268007534392571420726039278963420364395052139115792846571776285284438268092178383361143417602827391644081824963455824684609542454238318232607110932722142819182806302010754483554875277969203735051533107741012208906735195753443178152395669654386451052741001467575249808497053162878678187235992728465701162592899052060798188744463209107391069990833383537265681202254582977636452120626394372894784486937938150398947626101838820024515983566308913891192468382442207824654390231491819927709226749422161085248929369954840463707262050378498254972469623557226840743652358379206515220968311595143714425204783954467702935585468881831952857342063207621172130773284321106310370677033495579363097298484686101326255696078962919013230112447767295050477497694458492637287268282784986393102184541838708435342393304831099272461881736532642836219791428795726042051406166224712350315107300750676984175004016771731742580614509248450513202455658751157856661719552236242232637054109098451032658484293713530619956041635052535607186068147612333074243164027891512785597167937817845308187643458379993786721647511824612058111740599290619186744246986202373760663561563620065666055041395653209174578972877525213520603561078927461233581163088546923169115549134252233936424727317831684245859432743113853805561683249357922937616488190556984828194009141603485723583161600036690382994249843982242686245387384652273618205477458789926497296370981864284981896143441371649979231004468907143867292636198760800825979670705282248633351190570474072270612646440036468639492713915937829558129140092375644938603262777893769772924986744137900242789781828119005932254234376457445843975517236913255911883999295374139424641850388790094548743371427513538544728054663544534221705801547049503468347852922343052981666491976215460119946462683161316217729414375711287529913389448105575718305216349460866618707193251780670311882000471602626208859501360837343196093901157927629032998682106263577543706739899948179357661181110005501581180902902851285356380200013189587506489726154004568221230233643035238920655924002876314168543007254446924611857957899680198186121112217656999408309229004921583197254030484418400158045277824818859314798653596361581452831643343128223474406237553108692016828603555955309969096299319011679328621102852053046080307377115642295761417044329714524796602438430963217065505866954593158098345026997439769101295003726100715928689810131879680516131057941726314243423448270129279354844087774119515866491676405066801981726429060519223422846978003533537215776002455478060116557139743177959966274682697984335921679269056494556440183150540010369278482728311336221513939857407461813834642076899726696538625891704453742975853003457519162266062061884471347883857913343212741114342458269553771191630757075546099775783138235087326163935145337475231804914894773160817757738016961384451273767666582641176545928937367812442081891281683348821041914669421076597083755267403093684624258168019924060906776994545596290222532953705573448624587947599162060155828257638066875988450719387593822538010749873080449221673451645349297820236290293469320008816558001010099031134309174515143790641627659644542276088324891007702293020801027119047633442392765760424158730319473299143798441995375733170924557481671774457741541557137967245829216819194846683196853429256775712086046724172604045494144341091124201818538845948664472683099745789553916111085996342500344672370184679742650693882329654647778039647049152334026374863577808216007377809115560558577484317939315215865109226296363759291829564314282967676370732371296171774252340987215799461880258727968932446234211251252522760513953367141522165949334734681871532869892123780524218767568458624968755440693073905800162852578100791191892660755636755372469776862604114554458353820603419926077759342378986108777878134459785044019483756612871941980308398436403505666583528583050859412409733356556431519400313278883857479107470245972877216718894421495372092515322092950983165428099203731185921362983236794852988716201505437535406589443842649868063630768551863697841432447595026400979191706039674021669326272512692926708477267598779998904045223915651741720532848635159308553238899547856813816743537758498586735592523722640823557693248942313815642406907990034976831797725718303721607924130991709714792005153877926237252883620715932070285352240167144978809298778945826405690431764420543986903032397824674886855588118299183568249630619255817954622967303749763561759893553867304662871251240123168251071892374502872848065509252797386228457552763978603636309212831855567341682381873151191398055074370359626571640846156178531101359108110047396002321956136866553269961290583606380165505590374949692321571674889973762129463351791637516704079937601849775828539937865167530379999791609814510174439558030171648989928104351399591082297598706718190810417880384786988911500656504296086228344648776800968606974871769694066614521661688197698103143939946650909537382749247672472926281579906740687678005746637953201858622195214320528213021164162242149749979307919074120925663531555812738505460334783661287274639358196480296128505779605060432796687187293705089238973194690137130289593483381175148531808183133150007306216807616736535335932118121952091865063371092426858756398710876500788767445164834615649936555566007993553859950641794642450138928505401411040404409536247555164297777735189017818303059532637753494154815181701332508587553548507603453621876958240281481075521171359843020064614734144265537013426111738243009403304516583379026889152665014613483235571943999783540127073518075991805027206938128063084335113803000272552002711749837792219588072999488583924932361494147363570173685912240371554722707242263209847526966671401248474949660501158271095035475655175283810169833603856650500204087889857686887877182667682651345995428103761102633589000814895632827584006171038843587405136848307436601505859357993346571435233868783490141093987730098042194504732534305561340705830044940481104233521988350501646179246992810795684677033341394446871754034848264286052424766923004245205322991852427749085141061451292354331586887247934194650283667001794377063969507215428765940767406883147393984643342180803167178340809125566390616396135418358988533567993567340551060342240173884124622985684859848617510974027124002658839965144635576855579422085144455057196037287628430304802842952988292671143281981865687180020336347551856442268085289238999257043597250185978275613024150499355642885191859810110305089705713732557388143207948732474313279770577518307011786863201209766127401138505790279035372571787444483383830283812087647831605045486362567529370458217998121329079222888021128206971414215662086697734086116014874603239609442265607341911186675214632119684164735218915867975563539171523193163108425448393516875723037091323974323724383285254824396605439385835261006337869050938513382043177349545376555514508558965797331897618135945301835359830360537791525030639467346177300412331844911635181810713919825370136791294263041303861924669009729444826702204276694677243543202715537618520987677426184108464284508740487904478665481381630327587645336908854070268260527512806826903290619740073877915503104121969505741922007590981371371069720696638526862217077739695125592758369922276648870642467728988964960906487846809095323047596132971772198003687444073780703740145830106016437897842182498775110532586055913665559577268051766228408020860699373444261702186018341276575207068099028678430994512311738387796065909969429507344763043348465620057890817444510852265042509654199313652145038772652526285500229281472360246463039344942946499879174445800800967939476200013949022218700785012530722600614691502517607796232394441671668715953625073863968349750010381768156177587222410168528291353722685004219688457453582264442831864543641243976124647100419947165018652457664213678294795527621492974198790909844890106764650963887392128310812981368488715946473197768716759721980673802699710197441315997995527969586209084554951079324075471219164014262655707530754152104263306665769023268018179467661920554767998378952692731056233302758261560958587001492902855033855464216308111043894177001156036425595790201716013881300166847864127694179719746741832318873683560427919852684132240458750738640001488872386679363083265944531755077346762448729507339712674998492214848195379269214128230883610063445308113436818048161981492443005890969300879230702765957508112090892354456657031802482965726134044623921053941599174764695686660505073878382194111613141605693437788745235316972775942996529832690433380852603146769209448738243161981681470512171260396733914441946666236870095764207514337725163712768566432663323869989855247027018305584302108339061849639090045331339032129972309251783299409179067536304913692764056861504432362635886424262389475047791636534837119316346185103300043590871311041964263873282520577879235254521591715537408575736043110335708495487138755799696248727659455886921620588061881297631284914080427978086624253492878437371010333656635019939212178810030875542295289180216674012998492607324026320695281927927006622827357159671337233421999044604270953686229656770939844999729867916419746959413737416776438128823106262892564704788333697447593001809454335296285359906607594622114591327929269048481217584600656289810661695887136714892397350956492418281344417048806000164922657847802249465123375662763364315293424402074229269274126666106477009551607457194036105039817248682572299301425645384675719515616524046452134155620261762988927555042960061914677831087990277430697518335880855730311960168952662224433377563660652837927448213064661927318711470168076053373482913964604699398830961027681376404915836374092987918576652403746884691011406381896203275067361663881143037621370803336499799692088556407051489339051337717005955212712356606053276798373281225838065774454410579528543463565470260145068638350278766116569902464170697053459481527313749967675149060311065364771951511473827491134580590679539939221425607973604041091070936233637763724222479817490735772649580170916402485696189921204503078446689650897277838636222911825841446075591866717291723503194878506882782201467027166210427464255211516980590718703913967875195724324802344890792353264837396755133650160258495667664368363760326449381843671062949688143602047530373262791539644967155275491977973809861505802479660032055642582795392588435361258299304311476164225111928551112284271021882594939325345403034506258798799093450985271203722462967125899633168014907379964452638270012992636252528289045832893479023208588296661094643535779676196349654758098229957430791721498958868233359831811719627682627779884166693936342376932379501763514486812934656064814512229964116266950668677841382575051008416904807658266031681590392123115543384741639947626983837576706675743069936070063599626323133679982754213898783836164449591059682115507604079147470363198658642526740491005675778507528871481777392385308994995224686053698534655321259591240752689186472577341785412110034467752538689863380971590979797494570476607281482157242950524331625292959010712667279395069370758590893613549063993925118154772199377287170510181955626598923978112912797599381894375570406222964135931429295717879118772845862495709401948380002557229910178459391077831913443025944609391521629752394236621734273544067174874128540830035055396824129488838690843800755366132788207490129119056170741668660242374631010376883440378495399985358391079598519701016550404645886053242089463442661205096637932139825170119266876064166742649320315964863622451421475706603302372467409847562482517446763348944879453506884515140577568532221413390526878490360229258633234404399143987192148557097972288604745445965051996003339110409230372813241177349115465201646633657307053861989729564887780017949825627373504254924203155629397749436052549550535322923483019942144298060122944005035027044910602913159238629504216592008723567355394391124946079585702662222379262016174973803140362418093808272034745071369821406380603456437057597243882745494016990807253248566752544316868326441218513609365285651606431385601704738536069588313145708854357805855425608564693920991652130615044805858057419799670712216593838524834875309119864727570054013576834560115292092456384856654900143288296621822700312480569427669984261192382104973319336350102363797926767692286727174090768883587493373461500153368712757490050579110144138144834547832419158394472859872224053283186089879393236098246418654155372341883527747310965067076532141042384879264337318650413448740453027312508114790303066180625834012565054627369603978428770297559358142295130738001009686964138858715505078834114354332384156374712375774413461137492380006563478841207438881256809601352240231489794311282802451576515903467992530157238665460765561068362536142378939166954596719310942593067116910377745445703269039181304201377135643496656914733722742677082452706430429806819718150366696124435794557457492364264948725869219074478113986617824154090155556917736954950410499808646917370842669838669950418197332491987429177129674260916678556062162949053216664680971002298754288398665350677760795963300981847255651880973810317683531549742423481894556213335582497689559308456340705247859094818464092710367279357507165657416798379636865529564918267095265408457884929508996409300712318724846989100992798704114758634015159514268679594558222614606320574571800277725431316346315746682164028499066086767777425379020873888762940060922338428983329158270671158244841400256904031204455851291342059495958822509807328348729072801135439505188063250891788424097022513844886444593872043594988352497164340783003823648391425747828384457425575440772265528732080507208725589247582407314161804496826722681255541261258649867504598590592681133518788610645153141973989675315553676426364826354447472045890141733188098456401212925367156675980227810925050208243781163245389228537627811176297285157952439683824420655880253488652203452946635568810398183271626235921841968901480067238188543955609251699025412362896153830224944542173963560067084229033324175309157531981473099773278627318311384319329181030071578696997077931912901267221452504599307622849119397640364950145039008054950217637373983211396032461315926991543291559135308161228696380723357631836231867390585127520453729648139962624885431147840152086539912398883845993188423410358708273865517779890363098119182661996316314091856976300963554485573819637797114821273094729898537215884094659859936579898649122006155178398653167728966137348411899744818117807746029098446029207141925050140266565294077134332956273413228976952895012895426531636793801690519671304417570863684672236681601847388822195804909647162103569616203938436556333433489418986391479481020271875234274223201773243965296173826209690438285265862246755160328078264610236428676346265824000408622779025982460761962546501914127720005863812715385186007379635172096984072726528429172536291437897261226506562079009737924180561010029939588044771568273492436507771551964067963679749500396962552651278539809306667704111582197753939527906670867395681800131609121811502196759163672508623735603686369672440041697553554570806139262848533855334111739366769980133942898103027614336148116919186622594142876070579251315108753728240884759200489650064051910644609923083083965592505549430756167313900741545124235266228200011721159511218037336757172070407071749529165683303193755222519744258816382544076490485978171628125614121309183232959466251215321767191871202846039534756123172792763482808945619432875324055056278815793344222287821760146293171424406221000324390931843308558068802492012176242443891287592831170810389627817642256875626331598940144358990289778006902967512044153104564680247858503731699159842887752582344337754209340186211629036623035843107042845538296360500602876325322071531799183368901194354083147252146231522204936747344187799169894288178015461147019718121412556737148411514098260900683260014664433767277545624295680821302540829719900031362965672762872120581962996690922814359332407532638563256481504416411207615122036543115847923840204233835469685002081485494001777750005337702030742435266631649716153414000279430399102715449904739037803494171429972996488095413412267633026049527194102367523484625424484565477031112868642092285210266664134950450622140748886289347161929478940066053257526616210880589618858989409588813234529774242199242630136027286240712095546849968370236431087161055036574205965624112325167809639615933262212578785978507665687391894847705103335110906629117102715585400069703913214440825695070569936365135090337157268614550528576885589476317423188581289123546923937727925075089363614904267425909802714004326214381504738298996399235583189603973694255817010011982051663518015121988739248806601699740847622013515949220459822323093793673117383802671930108725799704561203750741136075075989007667020029311670703067417062387141850775018488555337559428198406293690020490961698822479109106868058059067318074415729304093591221860389095035641980225939744694195551079705080436244937758391545352612302510647044175994177189875124031809315234658209360448583818691659068916080545339048402730395890177703749443653118395564197297538180021959271577614312853879541749093779732837900558865528811124243913372366551786095998442103067529597309648826944697248962354914382093950791960402480000852772892413556485655696374282978018094550782494961570216591837705058928330175793650219645034137197529363476699211270786143972926957678618882936934806841943744834193695706757297521596467753742705701356103233103399210373344899051414193162187320953558825541286647855090838302865614444548882438702716619937670130804927357905665431956560021536146436093352673930673689795286600914748681282739926682601777518088716738161780594259291528956699939167859905861188584634252735794784757345124077670618168067866984606637554830501309924244080275165968475186130265483855964813943768075371620313047191346712001564561324620700806875286263342016857190138164590300994638199055051569321817422151565315823478011578000404757140069823569338728567696250224134177476556077386593750318049507638284110549763428823381015316292606535711611071235274686125556280745898520212302623504635015260071323656474360546143755069341317204254965166986853770103987049780374452386925286565398172598096899941073865290802133428843773976654675943530540994184586325565633152745720376700228711444163423830357730075911499389659305153936054930977247655884615900541196325986089264072270005718044756641643359887237608579619085431520328682309937374523506039198221013224694752558072870670906091973532396444784037337523048823069119153819417513500760049913480453183364477006775272391724249752012447581335390014946422780327587579129290971809244257740658365178577864275281679219876958983740305031095116094995773228737985115394627936592299489943271026013264201693661509010672241939094188650112649877824144961352224565242688919669874215466273177623816970817907090158421089188928854982219632997562013959812428300277995006897988034760486867120721159843806901500311902931536687995640537727255634990988161723701187721607771583655579036335226684040688177559765530774066949620342663630893300546597170831642972883061127394622296783032380915622910393898863206460988802148523647974067480134693948253255719046882281115917809498148681949126721701906125162024770908863754829114005115232761376547416239505917428787118108362701847708105173235917536882950237950830572798141713939070951873906873026100218987961403760409239447947928204102394240599414070363081846585850288007542984237532571907976082664446690222063067533975806700887880842872954804664893829905168920132118220273605039685764799782270750523520657045504046666343441477504154419131184638221386519765385523107664679159425351422203539717815547468300737229472116564746114945746795489350904718938931665918629147661735981936790087159656805915086289575829058158736870870672936955539452224752751034713508991573428917766805410715411194364070306674633519837290456098319219849180210989290427334040714919731506163866718295285859997679137885404125537768026006330896856847841181208899764897440326422691695650132936870239979955233210119198372109670082547785018197559238626588972772844173236477230901380328842809570221353266569088148399861689026719859038659219905636257543978998515019654377711146556932694871365043468691853737991781801543873100087650352073044135477007048326156581332364678877121445959502950945221241191628839205375017365525518088923080967820703328525601255870056550378664417172406698950512478953102169063055201596429479702428079753482763834808727283221688156005080809559403004702467572022200106338629247778496893939988118378874937047040580551665662737576132096273192178747785963581278830317621199820801733316985971841345255615069136205502786586701817571335177826593621956550864079112016046879108074012659486239761891599663711160597976645027781276548358486470472596950762755533459398352602192616264549857566781154039231113861710371619816308901913968749321628400738354007103921375736824959822214689003698762450425857448022219645736426371221135175736707678265538343388346592669846723092468673048102011384993581988732851995121368861716191341146888312913120714935094662881612122833831283250745471885891530114577118227707887913801953302173764658634753649612039634416024047483344424041420203862619216029317647525744819788218111832150934956480980196399497877881625620314461025100173948489689826683746230029021065192985908578505017224360565401037489411614442495067760950967917739098675915760925137667599253701080436565501630643612230822226663489953826940964112412982741359822745748696215822408435533515600263913886460816317867413877160398475500922317552277142561428617530257470155028545587387916195013812875820130602658125666799555317678789730553846351764979737781184372313661371987437075450799676546802371858643797143840844826507145662829528487565288874592789945095830173999959433105534654401070320719378312295275602662771504903200038515409031529514405502778260910491986124582214649178679796718693376172930343568374256914697819422216757134886457054148743192438557971787866762027144056756758087665509456265564162500485637089614512061024827423299695692722864379512325622958334351435424560414982564926739680826661799494077078330326344857539557451036280189787481398455540099459190096283001387904895717841994508411618789718411381633400088543833884354886264178794789527818277429235766921764365065123293428659436106087989690706193247795292220554455788254262331313215213903964791659674031039045545324558637223403781151802139667498334791285693475986317557110597261579349079750980767795021432073427352426170676936959319035087601857424361445792083371928024317603357955793452224570864595742766141324570198251603194711236063480626741553368365517481483260714022189087267789801957387355940729216380361130934367966982693891179246192068348902454874273818993268116214939223195210702180750172373489758491311401004265017130412434221720659685035211095988149965046728347557365504803218096432534965485847577425525856471302105371758027897476691191003242159992057245957651726069571921158310062030902759763103721788313563145339896118753729819925198323786982653547496064382159457426014498382447512468065231357668031491879841920600437347954427509015752005598418345390382820669793973197260457151528433451767956956911963138115264264669349592965533868649520817519377995135921193977117752864948342339408100570183061120928526141915242281153422091784634961087817453406171363566231180462683544498964694611203989724580415464987064831979723244332056632958151928510291965290628390075481488933491848441444565360379497034554251968263178517901646774266607062573305141243861821967977208995371797892564328520613172986647245201178814441453138352514260860912028040284299342544513686577766003320254153776774684496868713338442393088032398474894203294955272882173216228095452346934636186823199750390060799120621769923591595226156970197485545037932399085571890076833019003463527220505039748180190223458556295987784179153714964424760136022766056939691545050872833174593568866924365339816104581180849706218946105427641264688766180719800810523958236949124389176638660019741909902616358858757360121094901129781964832221207962880566583514918879595029965714305970805364957807871450675614764483531938535120018017598119628961147750896865418318959791014245311331381526980988013608620647578747800991392553805446696578371952906805330218164551260577320632440978407380382890632078681277460353844324335189631093715839471437875635894190025927364731115726397682480798900506779257457687243630227100329525837482125883054152362788604421117541411179160213741863456013409395457302122738846246928820999512884767613642922874303290765434362603355434367258430684165963157335750151908433889067662221177062049462284277521202117449710023831854946947961716401650317563962264748681327284199914172008685996454724465886192307273529209113974197949009096536961870455107817595870442614056330814220569183988338600528494693383417617639964243896631315193840636144647262159782239389749402355946379357071244811122767186775238984467004473815784548926566765424984733177021198253627229089708674740658264601704375900669205879855793830506331577017197585727879579688572167329476840877197621039246682799444054834967510844595511919723036073394018289659895619811722692671861843969746575657250367452356362669626139647032410032234105795315517064172104602077021103212456634386925687882316739878167975917151213611963900038337573031446228392489706180963294878116183966484092265132152131270302387497428251128299752305931941186714295989507868549928124409077373931148294185323764538482490576787123068808333943808739677359952451980001002413972111631373034454443382875356831109955376996883590886268083364580193377705913199221646164526915829398534523809688705120844417817340277968035214128140971203645508667280570699222383523017022755884876665343800604463298567312814011046099031602874522452828348801722372919837646461767753497411192898750574231335794898420876077719094163172671957312695780792944650153882311902918070582181424661083400865219235339118813296382207021928156227467113196964506374093393429658776881733065585843373413451670240743652325442232516368376326875665086746749132964953244810151164223154696369016312464593866442028190468086653667728753557151355881875502451088160003422068570147743799632819772558811079009223431690940264237140681363188040153979949747132753613786053964877556982493478458696090349292944818525984816638743247454702734349458828865604361791191232268447592537665755931526468811586210836831515577533401828725241241160840910233280818150013950186977619245347702112755751383973405221363360928066097225224767800888813985415145582938836086034891543893292340294607843580040433309602158016009694936365930825122857755416507676305317229780743641799660835998076638152756096730867027899584795006286583566408541964583128557945455361497311515564134530884654044379100807613357234343214932752480864742118960891516079720794090218728523447737048551272010398863792999109689020284718440648298722483341767130349436443321635930055660416198275182724241895166480481340799138664063993594868191709341960337534685094554216639908594070913261880424674411820053865629876198765740875130353117316196755890302466913834616880739480743062276332488546838842300972061992507345193508403004996008251150977769013543881770597776442092352931954010028951097627081397549377428179818245683528019776075875985290357165820229648609739867693444800270579468038571785873742268901420114235162761416692605367701373085260757667636434919818083872964877888350855900939471967281583489605900629010196497028749471888647827502524015459005442587576248709270141452594060323471321857782054815560085645090111198683309878574057089522984976090412361077323889298428988110365217198907519089154074793874275882335139794213198472135576745128808553425017742482198536639978270475689385900204060192737454635319225032993883054900998243750633255197022468021171451412884661094280013401631881686275571301090026349045263237072420430107185349396162367205649320397258146262074546732627078088358932731725269267672780145222835790348404965697844727181977511288343422048597706151717650169627279206083334063966227440636950301800884503104568320248054943031759904327507371726214698239376554290277227012343366948674237393221045091219955092487848884846248317114644461350560684059904235024729298930362572697047947890299404812747483038594159067749908628068501237099897559536450074369864305349076625009839907947238422320761831969767790386051129710122148952064784267384313061145095966663632668821397338752839624645171502225598100676463835737041452084220476825247189367368031469397930869881815925939561667473608179467223011537096248174949591072969813672020161118748582169135193323798323765748307609617351688721632407450165605189421367915045274512630537141385256704868479896534964885683462392813012263176502998009301289020736891713386956113450941967577141708835177627006882122570331172537341250168915534176142572140924382338084350675268537203835313011868997574352410114518545626645594054438731999164781348020398556446829645852369427908913749439527450622292191699386086411894407639230860170431546481804844959966561651246286490201718348321390489650921404090542708945602179465453287761136692405937558763437264144427286160143380481578124148339708775089416143569396296945385984267446918391363320783136556583764288043702551153213716114167896011413429135337701827113151100636505649777765594204190619691986516663600111445880923650115147861040320039761477113200622427379339539437016470265988106174267248425138258489708872486079470315201081393232206538064059447335216925629450707197251233379577204394132465428209437225967957036921287458721264155964678624926037305360521717733531724794574328835342228253845723561540042807550594654029033450863354777383949746674804045155993708237835296768697600348843856603008654718576322856212421920891752259814520280302414593229906897226580744693074975952691830559672585572774651989063774995730380367307937596662635465912777781908303329425831953679186466183579280164842809796883118176863711178582730138503207136454429515888157065369904102671333604138806719880479726576163000925506011232355289341961255174470442122654338617795275838295684335961843770032378630498924866081832775234351010597145000296776219637819937782090455314013791428096422578670012287822426411575432088283031947504494722608799635166631955397525121396126561703063008664142870578349343089432692115315133187071829760683527901291832840420795135583608521761674857003947996448551904773789029278915123285984961519667932395735801640657787933932292891595343511627834362040267170335432331053760509935486124190749771668267720990922490650344196441481125989446954675355793325994891561007884585462954573791494973998472237043585941794338490576955509437918050903330904975272663257439187174954810838096714805889153771996516296455322508337213963578820861291803038013148718979339590929656538238866496885920462864951543877890835314376545312483520813374294355175367151826740960757782243029546985141332215387223679823049867684452860879003116941328382886325010004482336845903363057838578304088256269828967821354400967878866612590525515911571507866607617180743326806778294427050636632132222835041502617330984736261785532482024524558349328184287160049367906895854145536717307679362337809634488635909144443339968522047790565668820537735762355339828303512815338018463013192482662332122997120295035539326932467190815758835524438359179457106543278928756978509346807589586133490162287872197156753668356870830434428577522523234261736093924582163381564199040578588026637675395327225311905592881157338371175509801584900837659076275655106603951768571453870908839622584818607381740759591842716176882668692422367959618140879162355885458789118968969009039650504664157113067012028979672233405691371877766370147250738906870081300064488628589794987042711409785955942203387538328611046944042967921591952026174461241259843122377667991771622502880336229998984737782946527023228242378033276294061250553852038096456164130898987945478917411372308946476633982760146869659289257463936988734995131163566365332044936666020006602454369659411747601220342910391778731774326054046014235209809599624166769619468318531450545192690301814444965272944665143292566273356627077888018902117596565693595232241384979021077022191889464400220796205233654071750575525900719895062872371692330787136094087341320824375125838943566133740199486739427683048619605198525541002408422585733199689504760691705231099460943118172970491275654863614710769952377267473786492561731526318907934833608206333650667823410685277571821584491503803822168543277225883038560143107957419942481413004181932277856694592048680738085738616445342074141699549890563305997220028169330501075118527106285199770129049734746396758784182310233650124235078078869983982843778627356486433029854435300322457708855590002361233856484924588386098909369954498864484526464787377571383130883185184352675522448239660460285159956947820357763113136277547881743631531605874275056734499244133988294515066648078706926191640069487397222442909731758112500370342888627822361615379548978990081238750753480218151437180419254940323889246667844444895286305161709377189805342395087457094649149180024232357002046908718908075987056475814170484754632221215831323841888237819220323452738110035276971789623608507827033979775597637146790046007213661417020129077182942185443219876366594926938022889299027432674074632556995998261634027563013114414388959368380408547047934135697483524951827073675534167828707817174713993614698505083709737261787813401475855626489047135480269324158366271629377323619509374872998596510795283592536059924378140266789659405976327062892200173735312923249809218661615110242781784139224519769942607139811764021575672808705300830062793921776723070276942505467878612095223125126365482684277012643073110114970496671031546990509281535562463086962618979700478347505438143793739498336817507316937963091996541812172301683202308419379298726590691444177110618691056712876710147606947273650956220611281666218861608046900607602068287974861954326160990615426416625712427971061871045318016359180885318795253746480058962726012580621309529907123203803981815657794251726071581490534520829567956046172926618544371881695191319261251959397303311840777807184052606413787111650654626075922288165472884188743365412995580745794691709273152308626082904627480719723324137247387163195272337453974425042992632377142259564757569985865688486582956655988899465745381374700725855179273136424264656471532165641618194635232531911443579620238648387522511757637200731858088364136298236433599996585702686191527027248266940151190274951453552820319281881302737040574810527481808202775648665872680009709485775478227032377782671523101113466691925704958634703258362538577545114995191300126721471719019379235327541175003429078809217694301380962946416118999239003270760037637358695282963651119949864210711182084192211611194391444346342586574297340908141832392031966114611782646118867636894520901802036973625942065880504564850343054055447025702323782754800692875809871846439725245368385907462140923756018926302806263636434212161731911092315489193308308232872375712122718400131330393824103417401803407841432101706473553340950911389609367846977388832989244423307624080224161701370447619288862796562771396494411499105713599403690900824672350031033650943199368794999836233576290428692124917532274809295806382178244511292862843016743097880743069078788420599197398597409004156349418812123141895128298020920733662600726588499063565573663547731687808238744325224985317969833449430094848739104690560239630342043496802164964904994120996517133582289530012266021880657379188553536800933569710984165277986106166015043023261140461613035835585417380185337663799883500877434992206219959019141106037262055317838769425470626842828339373129080454942635029388891449032047192193754978980395935671039149747617183005420283978601596716362381195654771895978263715724390587722812752887043766714093276964075808090730578186648043504463942540349653972697088978881590317151477094045387905172613310762350348739623517046693449919771475966677799858244462189626057681024745568679179055132776110109367052923224723399049927401193831248805001448193203713452232862374270934323130709178296153279646291375524362411657488052345210947644080445322841379912541361357781838781572742278462053002402981155349842539123938772573646730182696892956980614625257035765172051707684834424051515105286925270684153363812214955235947141476250564773219193867034952644526222532619138879755121918376563892296232283336199699288939419020030613364650025627509216819421050691812115103386699313133382110204491353833457403830793511837965900322705298278514754821894229595624096924265077429676285440953297916516955670200449087289976524258532763373748466652725747150385780408087365006469685697585731464624925581350940191257313701651663252951409931990462570394320894686246121216094003463164517392835637603262339657676868619571425332233706061243027888169250537557811210184553179953654806044297679836023135323218935227264769343946401526925461312977722327231005227756827173899166062561198956677754048511461603263903990276396564900253204259906655055731218789690716259584640229498971989403900654389958969384802276299390663998168728181055201562649583733976995139941788918489224446913684159266281071334948470202871639832783616011279276417254881008165106499818564208274760781306467771968293097659793752680804287525545577142012676564825863696090918480816184731759560220983735365153603544976573788807421303290415647645531136998860815507988206184377312238162047887567872391422003452163021004469804675065330470767341686385230034152552540793231548167504434574184529026004855188695869563531648817496750070632113502033103329730838725080988395081207900933449092169927125179610934792759004171077350515675232143726646317974872516736989381283579205741413265884281205395456886870960510568216994001614796061864980852701027508904891550962460158389772026506537906680422189742042461884042811366590927660415106527624064373267967470619514147780845907818980128060293473013683243813429721273488388061303298047103991681972562947268627126099041541036998720736508656111919927848075246411848767501921894143763120915783654118695704834559458791290371858763445561366311831521512653943619682464824947076715111627935005198768829132132679419286413455609465801685824860624775009873832906553578102873646060052451728752976456609629318180792921710666964538666463439287115073663727195946207586962883394923168666732442011316049403171481081002915820618860378723043187956460761839270363891782143931423843758781490085931119358803324429575101910770855347067949101791955523663753115927827918377754650005768237253746748363491290778495107823613773695625461780701115906875235738189568033582527814495271230960017475107694846164205934158950333979342215290152752760872350097147248660470361326548200274586730947004679603643321930324664443325872461314942968888824111928638372610081227127223424499493323769601886369154308280167774233846410671684727958570212570593878188975587764580187240197078891026116356221981230706793928156183158619886472028978420044083495124174440485267967367999220454941286942876204198769980287132684237904281430178633928981497066754472352702962381504811504060892091762221338766003969555075052434984733035048753284114691332155115283991965080365324512460357256165695442577347736704636147388199110567826472509577405634585314471745647460853722797028403092342460500097955293688714923363737998446529973694962363901156298183982358534971860304960202202900495590916127711919335340135720688961175293691327131935515958472379720026605116028274482930554841913502684692652465027669950330285720924454568846537300990088019119175254585507366460585853837946926555378519551207376915581033607969579538358395918135459560707003590052850975013474592209463580137246422329188821859905964030504246578361349760382006883146086144395400455124823351536956843208248823835722848077018039643338520777451754325337058078165128587919894622203457877944467574547186722407008696543907014643482002620876726002896367820460554106815513899676364088399986950216966334206755282127143218604970456746113431217276942778078918989090478335306423542790867840542962070685324578913731709925239961019750347280260566996882749487649106430238669622795620653265861806734187854373875902722323437474666107124160685711561662640180556565860127619498288391255591696554313002173958073426288270667031894888819018259842633590165895563644779506106807329354903951282562615974047209409734672402887573124958096747006062256262722307346613055135411060710854766371444544425672488834454598256394042911645323858051229065192047770307073568661293436867648681953494951183659596698345927013517417102888516792325008742307932054073929804974411175126903696246114592081762833550460968670408801658141916330953941084893408261596656473637200285499660582309474995502034620883274054058564956473814015593217536394386415565825795346625223914236161831568063829728461277418111305056122741610466087986567096344822762403634404555155429310495174981048159445996745576962968159159177038543561742490436127962502530445311088275728189460716824772886443257382429477482589846257197000619077742276196226723509661416511733658279846467246998081622493326520322303686073219283948644756716427885639320594510712626031456839617303055285374718373029230773263679299435020117545872170393845329789613644807289177353886491785673712151050461711978537504203459568421979102593024690525885125478551032420582003683937673510010175115595613560040018714885933075161981964208754709848189740036928498330390155759437829550607450319169354727983814081615276720992843704789399815146441809534479201613494664661989439429758241714552215170980764157098652015754325670199809233246653234512796357084505762145456232443717524260452237181932466877477969677724137375936099335858736103702301954089466391038003940652070921184865705908008837636552631497974475155678950060518733526146024458730725745188464501543175842304832109509978728163024758903218452792740555656613554700096375003480737647824356953391759958249822016701331756148274773208981877458984409276217895455505984547772917277672857201092925813299631315165116385783490243441857358200694528621906998276354861229777655016414081760022523439021482822264880118762695070982532044110211224719117137663560021183504531555603431263002230402318703642691299304238177199996132339824812960852445975969487942614193875453267091560291981070504564401245914697801616596006108870161777150668751651175695091930215328421100028428083713815688116159684622768175425133859498370794569133264199612789657734541829810174387537077708992088885995096643540238189955110018327849599401157317296001867869069118716776125541322831743239526610026194940588557572979635658163329479910761730320018270834287272637838003895966373100899641821325556807946288164202661623696968532287470082795421259388106768175275280872809070345827968289435686340329221277281910014105951685315855566217554251278618366173118530495206242494019418762841769444985973440945861034300339661773173811585991258754155196932432020947477103647963715012644690719278907301029671204066680619850661229979381146604694316256629628280748875710439265398036401548362996588406159483326948549153938965796257673204809098249185219141864483015272533619365962849794559078311912587462357715472738084523985815478775906847950402020054201562319652220223470490115955074674167710578161889246623940847448867240509389609121808193595767516149457162271426785602180926153054675826671424414521826466581350195139614182140791032433284766823025408750770293958198818454720037720815911853571192532127418917738934228513076260143690303907470166063839587166762960095584728564422340850092518203981993846545302392334762484881299783890432841194167928338180389369286960654031512309620015266950681701601392884999510601197607419260003393820852206005908277242048456440437188352915426374049988606630293453933401175867744771247097995738738800878550163729065055298893986369165110567748000681498066202360525610491272270339464127286552308264295389545285824914851571857626027177849441459704600151164266619257199006776590243480858007407025671674682591508366383213139115257969909592048101970985924199894409582547441816113900381437984759175144552339612523738973322286525997083529536582227782918605405025237387291996748216769035860569998251227598685977318552476946928601177021371904023970235901194715103073885037797358595062314656236457650666107531606138234481414686296328216153026558156652579335320136667539093600126953818423394211427999835724525950321732768203293282858378515835289505718760071605837642497632951738038815489107027792708446420518102903702955803405080893795124467693470245306275920532699202704569021196217644485086597386778364948956441018562852927779674629848346445588903069128223487590627282668415378777613850375091264985504804765034618071901148946089526198206258577289683944939945997148331130840393506257419574591492182790297342098729652140808926038599483627001031641665728869639510046716171922807911017858679469434627528417932810618811440249531229444878809248094670982112923679028492303972328354040422256293330918211436640298913161099454062907831194737520838733560503170542670522332907151609138364109715627106485827103369016882517765909549457849230859104964125834549172624482296242468827175774312616024488119490532557433263220378190659031678691914809201629975238841393367546036332531229371347177434307273894183547382905806516135758557690609610076498187978283327020085445581429476451611719415118633361477343576610659201540329376775721165281388938581724270416420292358611670624034968397100618346025637991231261684030847382378569994482093540040342134780987966020517411633345296380319812719708274124262474429741718940284026001213494028467708330200073921818822505817794979636217458463840222422800683259101277401451767135078808068859112171485840792002408433175601722602069310013863303981818765830393914948607327438292236896810635917201202548741886756855146938233081548779695747972053640065220901267603716447538080124972293464375714427411691500327861489672116109020464775181078812616113556543773465263488540743325197472041817287211786843863133477780266921566284461515258395150825661121940866018553982448311057249272459844409385705624809379976760832590100756402684439819934065659711443081157535705866205526115678832356682095186326599519323975252345231597202630410793521430717197020524862834046613411759778488001279467561977932597028595357793632796633445898224983319558068432927648897304422204726677965327758468444978607327546184699588788509562159117135351310428537910641149553670311561310443524129346248076817499142025112775466314108673721447967219125987771060685609908783124525093882521882156543242363064566828943029674566561906395418403995977670826892143278440962898415708557753016089724702432908423366539220080420559553065709449584366355700083620017259526995150297696988962581754262155111980296006359134021206638872009665834357631495775842488013260365289588065599914604120809757284872463225965608569112492703224579436538743015264131635233425765975198503593535195739196008759549046678587115303622327502182095128097409181703254924829662391945759794961080830370400980089967455122786924517601656630933837933664508837650449372711117355738751908945388334511220635549958669764660389588985336894806782829882157233939991212203248850811730615601215155009091775412304877625937598887301519870123102614039407727035953855348168324808278169177962212147844080147382306378007705757798400066486719409728397762574402708182585411791907246357477385685779063839787959514581098575871618824328918160791809964123132112888848081817475039993465251426047555751592567948163929098743257305141825113479408592850857421944787000336916495082306800068956003672449716926685911537392739196042629276692000336259508822871602277134031427263028318279805651308210153138477262761757807764566839782309184833727351542103748933066714576766110449373905688577067983572797519321532100595000281530425581873532899553642375652533817726415476615058197796655634884049376976915471628955967991164634445455814020774193357222806589570177398387896292884972646351701120128997132676028660364172260775655694734372062187248422353544308633422474012298870759957900496002149601464437595432052159762698390767361721896265181861918264431314559795247961065876911238414209367978481508355646245305950006864266238073157706172619302134918217901482362283821255117989634356981804885032407609448801191662688929654992478917637749148656819331092574311722957910620984476521154743788848419084693367838803577409841642711662858931362098706886050586322758375229290496594446065747768177751723660790133730154662906256711738591080115260179062809637144232276998013705062166128808738620261719260611696300771421152187282004776719252101106739751316624965990037508687463120293416975581838677748009850914779406744856618735584395841597623134026308178666777714275130326929926549244701865807483991414840390802154935812540852739139381454267102429583063881397888139467408023524021025183262268784575676401845557530239748345418333085556312462989149584147071547798070900242371915658344134553387954116088464735910430632901429981912586050194261043925596052695616728053223676393041599318324708191453451405645535536820021993746842401767961586183446917167553367785619350619029156260300349013753952973261284418803034377767754608569289533560147210571519268677792047559616282906023289117239694837254531416334779959889232984219798600984462413999192421046506178104267362925933167844032556549388502289090136123562342897100503687043334768721813525377842161328845669877214932853996974506070362706058761215653018192305066623954124574112878782867142323977848670643910319759717822419392826792029739015253048666333232045642150034803552344882163016694247602638339653730303830919782045039350082113170660118949517036173716344502486262268555348462927767866119011307543586256241341663248494286091660183092506778589002039608957612329718331058160724764468610250832266872749465221252863630416081454916606033431164787424682187604422268173717865055424329918411262850670945515865789338528154476299019873618951679219032412796318250421806998563775275185935700400009316652192029781083838924276017908926335388149818567812371597166872494662584865913322323119053719092376746909275691319983017850545539306707178376206873395901306445670507656095502675134541504617833453933988810742927457213132030449294955987746551004469998390665818441983823934368262545690977755820331524348667461055532499918235562460222466844034670521334476716507624124965530432826358898249517100252351311703453759399890560732215309540436532044373195113374139501167517717597050229993405862414268965373967816711642971283307127921714156113311412869309790937657607844555600493310340992814283354808511021069044449947120525190257128748301948429672721204889272370621039079279208175970931581601374030351169863489268752930484552407690618172932067625984099496736212188275221635630825202247278414522201117278956628261168172939934547988872818930616567216413279525209226629880677808523553785253490962232953088621042046034675467515850491847773836644542865054475547259059380715352301874075377773463647775941423949302482488645860092429393200845336221441516822274451191330730288241433727434284510957226726149544931164500059248675644803689584141187626629021008877053383429068606143378993134783519885443711201341682157337560325170551537130463130604686274715104529871257075578470207779783658683064716093681695189382537444713257646219113613348839370530830959390133251188823834589642076821538289875689715503426549373930756761241581388020034312947146332102827055085226229952287560267277856583503416052045751363263141538171494621831656767488228631325194564822296056778960270776276738913685840958779249663046212637677077986763392988563209785951278800386003499798545011304564749066225791159795710653361097153641332341233419502011212842297650667122142663643333788989755325176878620846298979207882125592337298150980874648597716120744921884467926158089111381939439492015537707797731662190935334564405135916029853921353666713108878978022416847651898976141830497902319410252971879783435096278251977065989933481798160620765923539472364827390659001667908549596927388114754040632582521806499302617864077267654696222416080170436567744824567799266260929715087971092724495633486118962042769064138551446878073719887001204537839753134925716324852321787905534317297332778295898633057188156368652706275382537146631403908286150744114515199173136249383704009016919177003710819874061660542855633296272188506487787845401460126610089670262822476593262479741095107521899139754527538312800031115047112040418564756262479502178064081303953243307549089282877264375263020642559856389958105489050808728467927651056749276416296576385652523553831611785673892984095596871330108783232946442203882666463425757282979744014605223806040539826901145211960696703681718762684098001325515195900586921447737556999108642482644317323560043771106614925641995066792030078077038506545733399590978089940368547305131132422709779328685410577688981726066296355405926246864545536917139717677197884874109579840397963043832848507297635210972163598962935075516147947647566632385325938655938954930184180954168973398838417274126775331767738083058705540727006570062922104367915982987730639233003318244844720052039842017441306139011089923885936757048127615498652128391014640652509449759198229392724777436044200725046361283585299534841742885095298703348050477353655092767779940282157498098239471214460618981287423852138799006062769207755504045550648988922837810935140350973367597390634741398307900058526455070869869721336581654505366187895623344173299640617019177450753030537051475712279848222282784814958374663672082516879753871796900201212771839248304811577354020878456693429508403996841558700715640483050205636260899741774245684181160526942022810778889129487115819313166970739940223014224042292366413014245448195458222629945479273723395112313128495978371019991530692802974133754032430043012145657093451807325610281701051969530769861262083914130486240641255897939861383687348193838388458053597869539046664122209632858500513747015648853087193222090071839283768143154678047947397926091298167365168370141811851835138247759135524624396068875580053937997799468709728065330884099783637764043018783193457346678270938059257353502117166802425541724033983663672554510958679534086604014009987924436754717090069084083024161238501093941868885320480320808402253447268996738647006397490636374394647440641798206765452158806353729197183392447102148494967516193161340776435866627541086038827139574624993097333418054255493789831475536266912261297365407666293503968648965708941402252766490756026934220424643865163800679403617365693940822409265229632201398206238513250077305626930142410722597163968619137376549200287856238568207449997288217145146676007316914660983748775442372493833762616924862433142144851977915430378138960489582387390525143747650361802420584512410624180394246771182775518671750940601763238968351823823901326727911403013579465967385607219998791129425796151314055285772524698671767346573364888546735388893801836593501176695708898461810368613460194539144987200202819136704190962326793237590117137227582086054094281119844176501633814787701403464877089906949054990350287042803716561961837749466383244477758432915442146809557071844718052410152441580440968494590760278888233831602426948637738758209772752820179042878065157580766691075360290081225316515254716550965338918281693134129170891661186127287836644402313809825439837453832883631767889982788080987225077856237911975607183577495299914129404235805631253599867775579626072993039715339901701831829234168047485921176981896222436014891276905218866742144968903659655892682958523969163165450045443296655159124527903498358450060811908112495925595314857440821814262559153691391907543789198762497532273842992696996997624664964576630786166198560581595742199418352206241616993120702136357591182173266672316349165730435947786658239179962879316439107933628760757475586832291533693634331572456016677814238313425628652206777757584974168041552872331192369945366119316084904955254260276764299143149308319330855480474698512680979475952412581686492536350213916236493390274011319737326055654540499247455450325310787439758909505976067467233638079979027734150491288243353402237981665975010893250067053195408148861154814170340384341570182893480425143093057276143364404779577202866560858576984376958771977959888223782206647704014497384136904755030242545305709451543602564535501657608272606269331433481713629809276615303302053382735211724817735134194680610236542432558664765120340603257695116186724880861953716735402934814692247739795425546764571496876355013603840942534809317760889653804145314859838456384070537981786838689694439736189342521144649552478360635428989175993880365712204499752327228271111013609730548947138672768460000770348187597739806541843075283867136102187639599065629068966682467911899318053609801316676201126815397038260193989019622405657592864753366667784723541378940212594687205292600610249005450341363975919777323478710810595479333462543018215656738639475387018711522642913028584377505280212869588004125395302722237685924043344130876163708783427875995705113273272222998629686630360289126350717469261667009330993090806942295521254879211320566640895191127926886119136828894597856056869419326534307501892375381502176685528260697235925828593312840437135357244509776274651585940654049543538863531126726388581989336136419898476025523739792673291054513999435531684271867067471453148059951613029399079981806185841348456239649938365582698867431579894369060663376719759155120311467302033927514688598242695253929734384904091574679624622260256959934867473816092497330558163454528817140988010781570797476804385833435907557091578574682807030732133900030724372840739602082388711023230317893580333800452173786427451563423576584128920770101168084358828388657871635216461343969579585822811434446835434193457860589601949428188523713331009880079205463156213349339395332848441775408412626151189838088872054241258211212073375676821096429519994329052435033058903642654964761431775623364755194364220473525636395946141515420354543255206303132096810682307598256907281229998379288213684211230496016737396538757573771045205321654701630815769089932599135447065197514808130685425615288225792255544382744139192518238381490192321661151098855164555601493799593997192423744567535816780980887697129005986215059133714339986206022156306902268375117398467000455319301141105013314718364162068365342722705759994709950876007973860297840532517372768304594891150610644591170236603037360151059156282102993169272213476323540477630139435595463284034773466349888296575306301101957343888436042480066885591265011768362262402052987029792306632149246603102286295991807119555634282658344016373871723544203147165175001457402186821358946496093124611562836506362416135957561263051228072890469747038986653360171161788666609550803157758452863363247975798489683864834026228563441750800904397432308367123710746724264744319148430437400028968710073566774799439528618662520461882045739341321585204293748844339282217070820110521390026194369270277817878163778824956227247374801281535039859650983679505408221231744634202814677246933343516835650327219550290897317586161155462708465248600838127315363395022463430774208823563217213980714693906182045339774553753389266248450188962360496187111241009460937489360963251102881047853924515173369460600849613495682282942883676446952101077689415011284577371871459703763500334560707470935256499099547133794206854012464573617342913215606866672098665068785370702449713715256091807091039329093207747849331403414582480343530207247537596635360145163162543529090699516988896068634486328964771579452569223264585597529965725477937970877453826323019313740370165289874042543674337441538282020748145595801610275152932638400619578279385125144503423156294092803264148217987839688587196889409921508883129031143492954533914843415116112443429924122565666296990622194385039726223872333516585503131492935042848382502303725106039943419080371271031829231928008114482311682046238239798602464851098522267040050301258386883728527099279971676401231772062018132874591333244727036594107559009577143154878508109520918110486397036066535835228437644581093525075899011436091323197152768755167450486842122697135984848768915355416937755329719724306969358110763002055748887284819161749077645860272563361021729770374157220051048895734571678569153850269102624092562866369543296009237535813068958159341058594056376570338807944801131944264231949889479428342403528173209323958221016294217222189475336965412164365933209312411370422539806788032564278044734600541516812920009775234826709190506312871455054907187110637975556618475311680502512340372658727204941388033539444166334246363643678251108981505488947265371743451709374279434629418608713012614230596033930984769510605493067755715154787141583596913802064000488710824693213979747205308137238311982030253600448622807367300851020073570743245903332279578424242702636312105731354307603904615422830754735439786401501301845662029419083531641756017017119895849885190888519140835986380594085381385852577687365121076852230933901664340935264524300128505435251388324902566920174994878314844680936029485918912192656214224417480242785381631203365784900886514021955128082866949497695885351420662502285544441652065792255880524903631844898440087157521957031169307820284585408783405189805102031561598664694630704055594605808565411804998644542871367299007005854717437456883886034788573127135640032200703286492943180898567133082689381757464017435418473951339379720851711979983224877443252669758734279666522816690322312800602635639875132030098375480856915101384288256611991777781417599528532199216192534180131079842268856327901059407885623888351639713247238539173050863467147772367185072357605915864746278880612725948816844434363779064223774664482894553963918990990125947259603509898399378747512765293727769291651832167480545755444688914835548360814963645393388180500789625108744597930848365220610336290167123957289094498944982627280756031592044173518001470656565036164957497081653751861069858815586334027971619777952109244248570340330319191879138491758408713521941048205667130370053922419081048734783169236566171603780703567554673131509356084565873480287839362438511422356830956932306431725574888832300778671186298274519763991374766980298311428145847248852888043589345476203774152993437779503483476602605354375713085927200737436634993952726483732987300006292729183955805913408357191843768481191152103409564599020755796604431927926723628677598601335532274051437262687056195240523826404201103748458596925139349220848477742389606551319486776876613042523499563206784437900667073744924131069990647385485268811606659351026534084801605568240876209923922486244893424177079529447266002126392505584822875107194192527047296787387960231191476297534597696496436531678020283898328669696208779285513115801240860657740519816618436638077662317659209987536687424710356188769484963341988687879610909983712764979592472900293367798593959683335288951234896321873344027777569700209296591755627305860867605025284773364147526747531037490703286870384321675285514493616506692317342037939921661108895859430901976718756455806883139296696522888004358429430773093337400393569202090528754364072301913141931317117211512285385471130005336049471302861405695687391542271479407608728775949911187575714846014817748279272144832263319196859822273259248533440835558383440444540124933432580053585627947076866497919702038575253667217393307102800205039309220648626864684093369546572752043043487070873848198172559753726393993693967317934753869858764509590087338586570444107763389650856680595571194491055574201387393485834281765033746313702895822523616373178894547472761389666732055586155850298984066591917836531472689726328586393743116767091318669941323025365670858138412627251933306072580456687492340496935776981977097995980835698546183111466646151491993914780834805890769989866235293134547882213726205903270150746996338551529469066313859144653176975480345602042528480187078123665420887090779983340547290196139186233913389435270223764487129099350920963822075308481069667683324863020341009674479758169911695374250505275489557068972404798215125319675082241615493084531783621577985749686203915863870524380163215148274478387737587541296582710054789044244015804509593286868717965980567961621259430876199255325945297110893429404346032733730434840025650719257209719760485844523181432428142552978567406428797421910204025611599626009320106410451443090545844698672708935349620785146714737672895873671641846813961056200147402324241235718752149455010300695578580752661445773090370140300280855408144586312760191026489890086872107718066749740214892700983644472526984642045061794001087540661804279047670475542382055561729671038021350765029180633298879528528245226499526725844745880738274862002054263937718664700955280903189734629260750381622950810807569496805089415953294298489358420371407046622807461816327772581941250865206395418910620526854003503532194431773149421508936376605842461690631574862961892261863152199694184494620773012131930098252418383219288025022207558673044131108464366538122981627415281309345580974459265008746470716493942466489290594050173602823258171746381691843289421775032752422028269906837977452980468671831388368130778776041534409801387684186506956994869937131692772047627037265529072795887970512150719565165964203862788113045984691876328224915656426291481764975318065636638789862013449637489078966444733011306333716066881862626283342393117844865279478321876614532017337295600570469463089205335342952611758318259915632956850084321673203057958538941266673519129169453614467417957941325676422069613244581308556929549448741332214356317092904488812611664076675269203226252867049903941392989531673720977990167006735305489188107468736756006732052649344259819299068125577489198223646326857429328549089794171023382712302173565810657384810331136459165336538603078080396340615120600474248097192478314664609917940886066200197354849191845104766432734668642991268816580299773865984980608873796872208149394850006968404198759815347781062382433129006514689843945060005943895662638305545331037835458114898653410831616532795268410727438030130965650375651223436516064437629482548246979449365684164984533408036386047172377813520444906762077287569313998269643550304092833230289664910456138564648022187554765491752628727086438387452522723417985861670292053484194259950265038064179970260770572936392562141829868100733152829083731926344289939715305440276511100845632022625512635531323224382479841774251031389399314526066112476616088658709068490995142495968702387798455605056868071695900582026977681882710870476628425944446638662837734195552594899518618832760924015944077848429377493742763756438566002255199407194003970202571812740670534383976265579962891270795300490790625388049896064790337130970068557022579976861420188276301155280985723312508222103321570105159233284836207999560042629761198962189442787760340195686028092354999317694559971091962748618764476740391742190948771554348299034369846626308361514753945776603925961397317848251345764651468764175774393355989791080871120963412578742822110622240821213604143290719003334153000768422715174678320655842412733929047272632113822182877025470915763118650259149993645508474868572293853911695119657107318363323282285764576719042174571929146863610575180629144272141283722884557305701228662217431817819645995060716019304253475887957049732050258860296035546114657891153059851913323783592787234013221167671767479286569846714336835132064750254561249444108686827176956487476676270068028700048410977256534949484178593666967861114674413400132274495969317563489932677918556607725043038040772019830615538051721729091268454461433056852347901416916442845348824304317053594548394764293745049554653849581571048259725766960700511231241284483108796820289331675793515984704917112198464033672302286510340868552104120006351220588633292300046903732778070536812544428221529092246365459881212593703824670926860296553637943756956638673725262486617924427100065394555304770067934661662100743182368805564702627227673041417167367438255234531948112969221906588047268011478839735280852195398164203657772476243110979008702137894693844771296743356244049771947012212725317924053810839875536502972365890580771882070084012823614445885196030229494213888402923567346658326162381050984504794517627315787813516325296706360349510747143275417145963611806385934980202725947553712974777523221167453064480323693645317398682357658114724019400409314049650220038992416652607253579463814847116771699614386059343110223021825467931702339925388529518683143671463140941484456615752515053255397493270451536230056561364458304320662650099198802961153085581132561032211542463773668458292584059977420965030524941544507661150133858533455898253574026581186039349377270899020197953369272363720692255752858552212336786671054650995076908137038226725543845994241297691489284920864391982240027624957179899752030099806762724699430439409695158867742778985572655365413138582549305320004526533714639063244983559587096996376099397133485640815802638021837103211862713718662836863906564998342498105117467476815794246704980269956972186826670551432350714209298391142239631431664010668731459180018608490110010619629650864285344724714701916149027549185496147796337306413296649623284556713399927059944256431677927293832520681884765789200148493889372435891520523162430672851347886068208428382528549191915929477457270991482495837182561141650794270496096286693562424538455708484126375236458855266632412115687994662500171232315437018201518747491283474983616971564044078830769675159989106383507762504213846617699760278511499801142119536656957457114154025299652021636942173110941621758139010523598099898203060758641004793589941089621274212214729303429945210587317243559619541859293747688158638821459840925106301551571889212575932263989934877870155756465184091113722760480225883635723257000204498503638576109246810448514562942589113010801012082488542042785211784263399979813153083933313381851239487335402991778140576313677842825816256621410212794868662456714688351799896504266991871739264843286541500049063083142011324896269962476108662012668146378104207700204148935793187645201372587654008282905111492525442628937913033070166674249996174737305306497893408167267829298684481392020565280309909865620350633321471569117161438290764441659529685553586693732481219298276078344688794763915784765608994663794430045091063584226079341375478674325153594791055298741368116780125802240734521906219622587423885936153867260812739671666828976112407308786258709264257237107650006428070462910586793231115061856767437059042544539870928366394565734122359535703782754723279195541940517465495276380625652041784366970677255322590140454974740140135625011066046976312010545404953338701191644743651900660830840108426554258972897161826823596077448389462599677732761220378622222634595983104741029524983497468104586606864785796003541963740781525706716694734678225004899439340701780452273114916004877048540366456679674930430822122364113169057227176371409483129529532336180948496304616719865754691620905603979568651636889245395009901104793868960865100860037330236175485557529271138768536612451184892845900278271530366157015521452872678515690787621727022260682201558842228937656445366202335674178620267418503646947234248520105512013059428058473428108516197577549014761051399672523949612557812927384799735813750038118478260702181764050633413123302044282174016314386462625517170895834815148406828454838437121167513077041242075673421755864681641012851455631551087066927756962674235943408758327995135084606989627005745050416495198712744361146723105382167637105640193105492227436828737813667765849504453955134368360467626362892536285074430597772734727438168744238877435079610182801822443764312437315062931857612309658196495376774942533513012857893796647063694696412100286887076440304881482785906271180906099047806747191763176307569964769394356904580068154689287757914193199914169371518149228711370833402684663612814037922688756414250578514554559819416269275194839720532868548458849614682244954665279908031166270273600790530096618120057107859809177637536090246588047149237532919969233341297520328452410048997356417538552969074016001489177953466051145787791698139095996379830234944063200496407780846737087700311964916968943025534665914922452583304877017070954741364338550321592209504452606542374021230932431222383266296449279508986358711179340377268037503025637187725313422792761385638621403747184468656031660639088756085579453255182258823195538216820904217899377678674463744805999282967912885479359373484223654813189943065426647843351596772514950129403548008498939814131226413851016055391105785039014162776799758956871992234063372077663261740745016075048421350186824744703251491471137539422869101817687561817031299682484691796841070956817267947118881880434095033494036455098253188291938334472950735879848330296096589867473741644998710556279523238287523532195642889579361863220005918232328026320071614407098177228934754889046899493530520183952697170896009333305676964199111863369132998475014935265547343342619336130254796602046743507728821135774933926563143563339552693808259071848536760396220703802460784293193652932851536370190732618570308941642131973873133729611088550479095580120342290068966179524589672703819584661217129622301189317461578186962481597814793108313362550912289431433919255995641463801965062200457755641839006391866630602989647506860941879973176675817345423380759187986897945865058104984913531126372572601942874400378430701911380380976028357555272817157873451529172917187390352698871991746367479625090710846463456225314019178018031901216952178718132522448354972849866440157060485650766912197971171131664575207989917290567735955597049093958853430841333110924006433849448198126401298262469931901431048999073357449641329933526744288052205974456309799891853634684796915824338794819607685841683472069554251997071123533856328459926966057036973674047921624981077361556438751183201064888858475284818488663508054003408881930153381928932129437141248050987344183337426534689811443481314606453780231038842088806647352999149928622061180422693891436537469071893975643347340450277219235563669592840833919950384208169118386660696227380014483996014862048835980150727370346290794149656337121099567949863539012095330016507217915848638557244044612291100657861324377935344629274249144337158229463385324747676596399530070891396677043888995575749669166961698476053281149778259093845229979340301728820875476987394262763346327326655095761337681836246962036411631192440436002829086252807645924828480225629122290730291781451845113203473332419937665473796047751739019395895771234663798557918980061175048467235491739982774932868415948283341524984637149590383401084156432459896071540700496954143928405819836118145135825811379696246621969949361875321900491188596090765383209075275614816885492545712832456781066059934235152467942354287130362648481058918711735750529024589633661563419973814327592089581096568761952682973781688392625705092604366238163584136865200920034835495727248905944290354469810539061920594075228993996182539576881801211312514244686080094633548151787069000112857171227915716428523985358139043036024388006890475017862352175572411343406525498474814002420291467928642011931250981363875900571367934277545144594183603338779016096664659499234470775769649949669836206715069042192893357272423672884050540783140086259700179039979743476744946579195639311359360191820732488457147561343421067985298386895732114937290399102804136736826947392992363730938926049219381442822122196562829030108847195178450646225871060199588251460733893365323859866314952917297143769034594711620836386309041968692553139736305357885649553331468902566253145851363018587366195833244912471133380144023771949938282605710825040895453858190546091940448422910608458333135926834365605551662447110434119447238013074288583768130415301421931125897989603083147515418121421252157018304058853732611923612125394852819880761888799931542084908858685063629173440111403527723648867472785368369799053209131689148444045310987686863754225251125571244829024101955554733803029524395661448495753070592798044827678602390025982709293381756803122376054960975468924324804727058041343222303476122579965209878262383687026008503602355240821341632427502069653924230373784433473561856302964994411738620040329435868111930690614538758086890134521968697287512269344534254212946542417795591217258565074194817502118834454328330851269160458781190787828887252014763048584575221985943889338674928899567372865229775132269066306372267928473390986969332965638015131258572856439101820736050096335789790429502718481366592211976175900835796105456225847184235825098976737889606236412784408836089205444839832600063392717555317921215694263543839958823451691349014118108250676771730555299353667895705446475861447728802172249195409042070920352407277796631512605432479759634079963809360620521331716497974498343789097967375537905685987753832811498222339033073035408469757523989855871583813482734798953212309939332184333427569940838709248716953706240420808786607880848630343447445424795472257048527030586930674909392977780598880030975187923386102141694465048323729904984241070617658216524364981979617906589553929938236049613690768271263979117913694535719995931399682185309145916750241006594716298189414957276508098900860652253122537934065414036563890646043796935051686581907119859375573126526288354896622924929139540811517661858411492842383241330008293435379693015805928886225426482253429239978812364745990140658902901813305346823676849457180781390036740139305266592167412904065515372351462811508226926033212525491254416787868457872691423446784100828455745272376754996756778512469433925291437614572012758955911889784715106835456708368908448803446020288408066380783417522344925345084552205693705187665840342067697840661876066946782145163129907600972627679035421800852018589816399376001538533968241400965893070874996457576853444694399244320611210466608133427961563820292412858067630185828525256735189683474765669448717120666722018868276274691498235315027976667175091140193558980594168348616013316566616153687851410021022205637883477049520407556413248847148542308985216359777547124440805832993687666907263939454956996734708614918202391294987148029680337170011086060632687309256173560094045513639031319195768007952935801794919680632751392174527265223879553276926275741772190727471578757674847734309063372509400363190850549312913531686568330636388403631683240756889689552518882155813528780705552797173294295531360282247333246061659311995937054392867981039201145576848652567756495475201968234290604486965104887977228691317394240167458538488351439171645561150956959529105366139789644109575587935866926229043099675324938128339788834935381934250395227440458497087633093351239293065503506266803920546431006039287810702985889636241685904122851786205586776744519355686080625630716328777754731719364399766905270065963197587037029362758651293263592561794721907383566147430162479344002973619925717689414103958815295167951127194746657100267961497131594479809192181938873657952864564504574139684161354701435809737311083211065025697955512223636686167693074721609841690371622743855766125871573141368553913783409002797780368640356594324822492598033845022891075028102582897445835707746990037687176773423210951609038501896320045145687120917017608311469297420981302353060814352683203330240779229413242104059053487373232904973340419366438377172511658143448110357635977982787992818801882764863086292738467914473830508393907526946970451243751654430287403145806882818682496022576645191265787308958804825069066347019636891096845636171904799422246367577470738996102643680421580702569789136347478823976284409429984324577010692075990714467672821465955644282103348156916748884439762372725067550412606385672442682284422971562810016860738943447181870669213437653832564875057684830822470755062426442875325593159564514258661847507592108732123540825961865543133061977759483982370036182667037666706462744312304416352843256002009242066403317248764980222890352433309694846551464294791220040226223961387290131056117901600520296213473412955542583099947748882287949283984341409362704932377600361125456975905358093298036215100850381361138195799139642233110030679892113534154008366626154167285246303988593692152912972673666099489992184802149626984265218736014404074066318858999542698989345599478332331526382431503704096590210824224011090991196352328332165391228838859873280517872006374858046430549215897428102605359075675033162249858485066172666060017581303490393446513471139814319512054794648089461772370087302656948995582838290054817933607505332348229991538412879818539965697729942754012350087108467144660087449381378476801997495524060305400484539175080383468474055257466931582092749658315890365617303530871247639605471977208332052889483447546439554242490162968491754219060639636972569486463993771560957728953060322880975322132327520863517954208632062264918178490520874996818809929428807114255251352004578098055605395487696436048819774807041624070142641594852793727780262649782209437766808691918553852295488702947681220065502417389076848716608761486430612324460304503296273975631581809142982299061277609399529260620695106361599084989622251356031674690372034624540405043080194290661206208744230435782450440108363864097810997914116524645418104231706567940598905007050470466105499252787797598623374635717973942430879611213463204051996260714400338952354137602897364335107212627679743134753098753168695962051781469905007548485085550743388533741064074347898045184757519829855138566868039042907745532550697919230488221477502374964390230288223552437690443907062894759289375262946014674123170406868739861178648118652623262922276551881444323830288559568033661839950495926968979149107539307538572124405398633813389782632728543555590853329845127792338642487620705485722181356798737263564615986459771116313214762827671551282712026736068091236208624064297087455899464058107454515725658287371957826628464859579438094082139614418477545717825933372928119306704172204721260124121067818922208090874054351010972960727124524888827288060468459367773151621838275896681144411618060533849230393879289538539889449990940467883621579704040146317394280330781203288250250297447208789137084837088363859661110183844652155307189662886771849753022965777657141004616880122024855197510240534042297413233543046811313153109008341809020685610110342277901006643149707902411898119917932074355072079254016395570372290824341959936814098811118828566769387165136722119768917411377406917976742071015403989773226684052840982367218463819577330308768048296003130773688312620463797069506225052894170530822558814009833061399115536843126958284945467997419154968847337827957993321736741660360130735990735637481788591834504764196305211895417287022419925940804165161362080582270251005045326534883246454073134644381481613302408596599848895787413959217359959702429859728602960797121103377068286627327814010169551937917235385902608336859961865701839386177463140873840026252145663503141436596119504058752629543229541349781581593702607340559008112554255402787173792736450496391095343829530524915535247774518572422359440414333704260526692831034842921320106736593287546457697065988940835642056925737133463622182205521137004481974287432470056636084005995757544632610792302244030319664231331882670399463372387498030781030242075225678333824086087369519083143017772234122730255758788653433633059111419119647564236301804081590120398059729030025397650235860222560674134779498698530647101933581386562189992139100606305981862025585988010575042811220199321159710271691710769623473300370562446672795495706039787526897748045301298896528704678514549755702987398194588827085479956067281451995910948358171535681750592679587224611940859285793898112127595563203493604053820000722778535303126612333239672753852649246140441007507147498702273921133954452177916564179166615072685247956270041705995779735302995406838821693341080986633124123395880377939022602885613324467168844351523776327200094085784707475997093654256576445117915406902338923779377123816550225863788310826016457338545419090089117688304718268611061915807911149131679802687220842631036694804138939880986381397683836007924650387255818114868001530066722042599160789879913200936975676100013334442149434136832019212016830106886478647167134939202288575167286698978697073989187098918084890478782330122075308036766079433027259828520926692395264574381950400357582406959213310327262558583958199451398958876345486470245428792478912762945571174469845257768640676873259961776101467748098806869188256875883076618265770365653993318668280901967374831769629715716470201596880369490690765101782369731622252109609963130072004459355059905881153891037404311358851617259413975766852910379014928519751847996758608093406000798512430477997806554116634746512897774337997985816089847143327624224709318149680160759401963684829081312109228254705399241909907347246307176902765955749144874187409910555195504848680988383032929922642696181181725529677629177750976663009614013553915322827938654560273311689302719179311588203622263052846616922791019288748543103100659318396767603731020384589389097577096380259663070394166805503176874219989456640224087383342020103085859578827686646536768828292875766842023795537543263805286860610131693514637789843990375695027146306765630664816520230711126227701016827527906276459194124986962481303460458287624815882758585314198988263910628799369588349679853007170207967651090121308787107730076035487466024065818670080929618022216885110618587111025196271852568769341081013361123211496536349523757588885935468372074255727123574443668535759219979454487890826671451160599275340973149448652946994883602261095603138495240059237583350260279694756682545898027271939400216490886008319294330244622513940519405802053586394940318955189500199101135257051778536918188436937695954666113162396261409910466429907680509718936300985238460171593185646771453054744719301053608144425097160831725311750003130810635500586778823466236917526848510692993777729381019757568920073703140534316307774152110113052358476810330503460488985377113863855222918345162893276223182595548008375621039112932375691938335370091556311110895929506108246150999198810757550981273565932346958024570381319207622970308320607859374958821334597397138150107387003494068576246780671083076613290543273870524340640754055073806858499366300287981373097598804682751971945147515561503362028133037579166946386139377028374562139468315386006477734519052255977342970605312177131912564620647481950448983784936719346860702209948133615154081058638475986434395044393588182600879654769769149127648268001084765271093414174323111899032745106621723049789506785689382388590352817403137907560930006374602296931249745989770126133968650365753588692313462741210096170665828031018880156841536563623491763052671348607149731952427756003001243690053103661064299833374677475158246527120995541069138702858198826804257633699559643596836127054323084851152482372150231043995461070370950511412301577372587721799373437174812983321439060602619869700791535084767052000785337747794012421321397673016631533637783229202236167034697644194914943388336387523050915795101175240022297946898363139178141822445666374859910688743794045528203923868292901352954010601275272709629311229942233726174062074052153240788252271252258076401050894644965067382735433651436843716025185659998536137695129187539193314667481954794724180126097249433244207701950070795591789130742607954838709702715758514406275832794132492079316045259959102480660762833344756938368344381206684676229403543554788341133428629645621934937416759043334188982449926969574207016855026184554438445969184656545278562061442162036338724462488180968928053978078370545909979111830568731371880452522105196396961018586908295919470064136597229368334688420040937961987838811332156096617293087751657831051785327779956906379662192527928330803101076682100150052968747341260900162676673347936851266749216379148556586117681592254442061281773975277219213576749926164397110760118612444685683890800760393679304112609064866555191867146491879192012592907591513170740765772585983215227687712405469920481237210633746941964897789794361770891513876335794038493975153426307184843382640675057030840610342541239261395183579624524047655068227881350586926491566381367069666802938925114843643138712873895681991544147558728778887371635555976729967361265587294505428233413179479679336342785719826158495681219770905297779932467911244342885858920024823945039280433245295936045391257216502793767498667070714617802615922902211074051266359956664342927931514245310792792104922601491877059331854864984675303317862957853227346086107911960336259635273316315028109529672281903021607899888517948786472339091809431749388981492145603296439136786947610582596353842329573904147372240601643302056220480341137950102403370966502123309227338543411119121059718006025894648421846162930201015454666371023163868303896787413920468482013080713895099240929122054892297812691060380902537688270056091495928253977912305202401650687219445779501154119648009443034095877594325124852890467934167583418692967686426085363612188280370913641846987118913291835356311906845400675741428768384943773897488276990575419148783968247572710692301395194998649806065151930948631911731284097589018518138909493141382987143854352468603759595176286213356339105042974599998370379925120668548525907231881956730274695263611029176529818193551176415297296477287847706685071051934728838860250610882572777469360906910946907086812268593861663376215068627542109406430497035376478928956075052238209811537533484274885201987646000846672097049466745257508298721804253080313079082976116366460313791614662553272985633722307144014195976303296011909243759768207182678282549965015885312403236256603419798802508888885939705083042617759706916862052541983535237604412895538068724184253620694141242341547583202348126376887558939972087720955014815837726094129964964216701247390018845077028809827398881862504143926945487070573499778978657177046898496589645071458068398981173259173560866986498943750367391281851025373737463835433677954693176198876166348275564926313648382365354057891260473649181844039375711252996418129822755518878574509773401515174304818315661822155247835810345778821534745170225388196157762163521383258855396730566197361310578339124746875944190080328975631131593432619402355969626486682231953300474117555691987379613083458122754434871723345137339928815176180155047752078861776677989611315015015847618920284362683977426600457415432631953849926428613516428019960199003244111925916602801436052871590369205030317286842860074115639650948943002464920565112447534593433619608533755731949222377829849715870716670427277071180693771618246783695617456378639138010426767854544802393442045242021868992355511537718839065907795245137654197227178558164027029851651114957195359828207003607656675620366867131342007823886580093314066447697791600509794129856066968205948525914398269636061730077092990729104234981165493153092106899127671472393664728228817751818108082556222423393237792241495969091201904067952292896295328657598504337852021672750070622976561171417673814676233817607311733620924492021472462118162202163179068619095992639525233199439552152550862536899881254212320483038446385926567397442243197798230314280314916540983950837045477363614252264142684728216176384022138102826391956127600789138051582640538156094777959740925944038503177300350566593206657755820605770625672118971207134790263678908982700949200602481471352045553606417739235762361456029528765623377138058162673637469924366484166481278998883730719826020783987953193836097987842760753340734348489512591704239068398292679840260461461471996510262422268935417661262249695652304124478411978189630953844951098465819421475366730263660891303200640068513231894450812953295061956268048009085253768084508854047350455631254984426326592763171367775752464910498780249536196591647414588120926996294047051044171251539279726386608539158053838513028934759934139689218041565484318722499475571117443098234134199090729418335278664179121324602181043693150901196330561511679313085316509450846555443909979527720284906195676376871372674619980264624038972355112600429186353366214584659817862732550636383859620433809607712518982908188043034608819551380792993713027089217928326346276337374573984569984791120587133003641253863445502531979674127029266728960383388932233852239045300766962341534031734955987081661046865584543164668730432848053068363489416224615008665024473077126978568207922279058912324011582102476829393461224284003915325452602832331008936387102342727241236673414034874580008629774619549894168326973589594016401992348183931998887003184190786137269596098987674819500302974986585827085058036019837448360979364082139384174293786758434515441120269788318138327844447665449945372332571625759156723731788722363298900259427895171953974965289283395256318786673967957096344337371346962283137548830876107666402619835898466025417762963157711497365228284989573208338944727536225351363381559789144772489078194430740341675284308461361412164156885853668258947207494389160384721033531160078325077196109862245090565789992094501501352451622643614776564778284185388690628036811624948589952737124082950784088558590725616370719821075980295682065595397210972597365247459594261175229123789665793844611561382690354669388177884547057228550137526587988839328136915649674604296418694228140672477429324967546476865224569382166742369399977332864955356199837984206979513696287447856921644473135253987474871227127211847060816408113144978230003099914565874686288233450869989517572564225693519020224256338206744921361687343705463245954027396019016334854905167338155233131519550742117405623137951621944096735651022963124896358059579419071234719835919770558770316095876104901286000706303288871755267608313102653252860814649240116804478278339530036917255169287640028635186548314997573429604264123214033593849781587297616727824771317047733359479691563184014029845529817366338445293640270101042900325841899520402757826268296464631129588978630514813726057218907331317493497834584370467271926707782763917053103906153848877024861440246457558716997354707430789696343631418403812746743917942036127811387287804880000167867786897774352775794151558164559461213154521355676329315734420713004661624604078563830454090842821880696772800291332816810230118496490024394771288087085853504570817210427483721400884971513743919943156804445322555987533106930028682043234647599572134549629680615803125223159708778394974406471056075285506272294359386207614297527167653604914500548736601502712458529931428156682158374487484521331193531228216862658327382296576962006832594473974142003743862611224385858781196179701941565271346947251531304840515690417982571320332382442867807935940746934477595099653384881763199588014377559326873917296817867630778859544938071840641236180134085788930282511834088479789639705380370388937986446985066254880727783164869176044661122114689798335796427612470218497302456508012586873262283915921999737679293732457334704372180054846750429250149910460133133854681129659321425127754380811862763251664202764133281371284916517900945332978507578655901336038345439941516083157076792626695618292128447541924746858622462396752372998686425810243132662706663967875886360749125856518042192355009672414780847799485124824312727354857678918975493438931784673951834798359739615337032639405767637344024990740673978306652295930813965072323102974036536238067963495869692101450259498258267305299375251545549722075531892830355595609859559399111479432700914579241219605485819643132757110375185460590714845890267534178765156718562494578980902479067945951129536152882097561012002264380471067138154657439467390930712095457973821916845401343985522587102243631871061795696228806331668367223330522148825209246236023146861491919350743238129446133067717250536356546053598830576194800486225930162613927177471738882711355888256370959285069824456543038992536245677081856880425265300390752959344346481193875299294858519027895968342553048439995495125287174992942095253384531784922574916466629778215033852753155860562975130323390864962643076063339009557707356611760291959379410541094417132415052410928277892473227802180361438188274705170510121310915070589526471769593763783996242048257993132780275942904428399475803568440796098443004872778392179652905490222136667486753919628688736185094840967453957897445365903407937932968386098389449795028134940883587132803545569816269925506640964586952633911670012176433235274094589783700914224632241244153241403156327989301296319288380969482811078663088259956478520960660499125007438606532560255478188663081033617025314708816265761549901722792314315016094020549759186823698452773983301266343908866321201426133411477711980559377999102017490239363206302932989922678436642101185387939812394129287013084309760474315971898018567272099485346113063820997238997554162646179141678242872946237960946918774439703087750683162502035571520528404557140524499065003060688947041687365682711688246518229745374729109206423408348725168485057261242106911644718605050059220955523151259108828807801909332469061185789571391690944129365788113903867223498742477438770411325489416766170431180760177695987057449801138916699465778195564683851618443488624783868699115430305383489440122582764022450122547490691000585316897168533800653291931142541617442078432632695049246741544210919655789958896063773130325942597588003554882870366470383082452909424778090344291649031902426078313309530673257118498613383531174222856160933451872871085585154862735583717918006065805390764476575224497704938232583998139887396142701321909944761854803870192164781293469845964986765584518962973737608867583718180433391121665443251824056871196345321671525304309920452447772544209149276972564140567818817829542446547506281632042417919530991881932201972568209106303331585584228141983861703314138382284655860210068702796972337085618650453674376986563684106812218707294449897074647696364178640397363299877956227645066670927835825189433975804807276285627443605035266566129844815832346550349869140508141716777013369088665604596339928312637236913843654220576082941131272025942694325343223098684850273968617494817165251831693565532665251982763445061546950866251725056845035952396026703623793435778972874873078574493247902448637063289469833911152507231946037639931790331917613018366451172083546795848332409544635735908403878414971277394839087470903847382537916287082162262356800727922688852680258612739751562459685427767555251183392137648893469149876833732112777595209951246238451071120343135761602450278158578905498657272935596337108418110623043426918109734167861886108000909959146198760540332842410164486095434778614173607656117449627728736481020640883577859083848826176706724784482241541395601779522672666533318975555459991125044438881988012120473861045568405923750103120455635826242328584972527530445667051087664722571729461019376761437461176629029234242720406512612935278378981840184999443260207541480401313708996625480186185331431524733379336648888564105282530746726036597498452261528091381135628117902799571552090854391602731008455003663786987072159934212365268451205296954347576556327176323706389080647079982754486517085854403358455567533851652865066607217369978928148211473369092736851767619182233903072660383167315014655809596248909624682108591047643002304949888721146763383661961990658792134766804174853585502514977802107321453050016666747797530311304639124507393132124412244216933870023412345718984863896492263438467762114398902918781069972706600198630208891624957683667254925498449423745175390954756055593001611901049056991728248966180985161974373896692634083981759601442595341519475094345266113671671233141503965260767275228341188644878276410217204314167239521111613787635680899313668471727201596962414027112603405638473172110814544705331498290660318085511876578981121818111052773781669581703754078388062396642180771340557687474859215081617130071995434123356118459935753334280900877655814391198771637709325584871228519251407855069426425163444976696136462409819974125051193687370778814824066817903905958432628450187047736788548651550201672351399958731211613154906757052247161628941424729049442415399636970312161911015306690015920522671521863562179707546837520102364281447711934213747982141524642198325003503555612711083389592464797489146576491105975369276474364390159314564260005758303917982099564860881100014316787102626328632007321860306910090361160806899773697220868022568346871742974858807728763857660466003667065869409543746175123312137280395562743660508990984548590550029373486296128161908734420910535258934677116051973910330822022937221066404024778995568607776211288677838001340350030314973334198758465733141126620954284238871547386763514688640848768608678201125545123866912998848137974293354746572879367499756690181930242867421140282836363684113873532976864776150459935906019695561498758667878822084070455981425947943029588724908415175152613629670404961817911477728478175022085313198415570987031102646290685551535058710311935739206256326213459920202312497145770216887693536653213828030561708962908656599715944829692587419536059016865457061705784425168037240749624561321589100979566211623029435943570188004091716182631373699755111362895829103469016479071383700364875335985399665502416566338317453168344044301871636878913091475759756566937448668383467494552250305381300439789509240842853555591236973026279797591969425861158323359019341693596545326244210777955707009295723845150236706675708075904430718789055926283505785678730084241900962067833037378384282204189279812005328931734718919445148307365022416803538482180697318055630592456850971935841372336179091184046097705659046963626763266944125828092923850177556562242193445511518661097609546170323447172721851565831005837669157590103851639572803483079719877355229156248588990436766611861182271635739544540964753383091883362174865851152019981134773666809321685589550904785252011315307897209418943292420170201314622632570607480631444906899427385158943971274920243814222712675310052687947587733875887184087557528567535937879581247492007850769712725928251894794771548024964490959261773148174285094889271353341390184262302214156392111876160832408396671900768327838794552432220861977509334757390673034849655450419531005533187701601779903215590627116831733147365430426016984985136698160377295299978946751288824073338124212315342028665142675032756309884887858140362776427411213374784267564738454251114130892884416694458551067001037393351972513341264923691289871640955000181431338979500729447596849011768538547095656734369351697362381367819891093146622674142668489137478504907084441721914919979793397346226386230811280353742174954051881815607650205510269928844225273975226499978306936458507130254506218318741698524658316696855753105482980758409179939432767540096543548451154301807506429545381120061507801834772629072142948241023912563130662046440024226852952542744825889945357439534169517902984847487820433923836628320934896012542411308923808101699262518171623565991611058377300181751092759921150519435082101828875887425434452822523170349030573714056734861308016955653948839945984610569162158267774693635840322487324147895501877282311533737093796716867209720458422111742652378306338795975608879723393828893187725465242872077742820377062923061874845864235576026574227957246295151404618654068518881195224696741982807988715525503831633867072666302161736221025644658525866401441913802671658726267935729118289786708992426289386977895497678293638000199954916833543405857095628078273598190997034511280263824345732952303423248756747348321991534107871084504026483917280357254956736769805240741909562458066424894227710351098714259333382809215140104833266865809895826792611148114789501622336505374303882219248611945527808670365186628743653723515663357673200858224772819190209269444167889041619626439905209370716419542943157508336984032537455615462600116948099562896018171742444728843682738003072985764517268176896380521575209403290254572630739363268342195403581017129355759280373801310921838524944624124597839043215070282574530808750223628976096714261555933484515464265528070400012128720055507322773352374108549114824018810900855457733160247795272834017246849653046033189489082484001541614775337236420300965307830235893540885213864851904814669282216807607351338461030640644530697837029221742678335927474365278007460343183553012408642450240102589869249030074671900748384849969834216731091302342856087892506926768812017603455004883298062856928079879790236868003674174240544389216907918095084974586621018567758310553446637670529446823718395280052134227873617162279003936631210824546775288931535815991711641410356528055986999777024348119090120524935284421314441661676009955173148489237192542371058703177464490442828413277799935965201334646700455863996802766691707236229207386599353655839120360310464454312205757392257359296494337281561891589424351188502949755829330701135364696550691718774278228390249572079398700959521726370848816576235703321852171703128254880973655191442220566000410615550597461237851663459602687216077189988769746529526734121842263862707818631193413274931634439582016506378616062722773179889482298131159962979351969004786094656732296916949514064573186216365490917845149369913963092932545833287367855196282248688830717774022497236462988781860960600202323654751922114397550013942691768157625704483044117915303959969913045363230704582161322967653317074687916348709357258792684055411331950191285029045766715267262894443677298314513063433466023661060634442482480744524646691167468989727803925014488964185208768524874661962514305253077935088674774381285817051680711022756349227293630239239939722269461349982977049703502957164273323154654713411717460202205759211622015954594893438538355261089198261385570779694583103721112465300931309389408119925482524746574435816073393418444805582725596574831856756663336841799494453325320531554155454178324157293443565366018735224104308252630520084740399872402146790792293062817457393999156538472832860199057439076427199925746274090496563430787210870379479361715907111429518795554858647599575216701623336506504058899487004703310535734802546562159001889367363554137470632974182581916187904633729891423740586494940527040695358741979327553070431353180683780472554598341732875161006079385684703498037743259130057417407398761445956159757303847804157387378242075750278950860460738085201084485096301011128725749678574990246562817867606411706809156863137072159500534047805939955102462068598396064011269181058665799093651453752202766015792698878245508123047537027610099251058189493507186990962325320426162643909116073162910834235232391020605628107607041881100722078966237158924305166711886545024117444933232062581037538262801390445487917294623333618036708692966036756190839295217098241502370701263705232151891633880807507016306693028786842617059388714696632071198471824695466084085978127943794593375211093765370892311383899256335295309377999666327248565109156518561501486742235730324319208882393321279238621707711765014580496587513843724400493322357520942459503734309980298642521600433195533420070853237606981331863747928504996501391887877888383382742347497369221653849889937987861595159417411172803787089146382974882389446707617402257577777792158749141643998607512785354616254715094997866369946488164516989856796704617725540882091149770744767662594553342031033771630338417379681719720182203396042589065643470604402405737388969471377023095800703668745205396268808595780619155587122714788524615049193576082007013016583849332216942834372565286891037433060077845124985504689721301207303444589430669288916353850340889689460678740419968371644604208887225589867763040047129216102853292821090134562051320321201731933555578503810762516681772322869771399533888200667081981810653915622929952569932162097417153015820480646413494936523997938651916827973621018688940965764744987660185951972581495692641191406453366373322441889444435379656820940124110520593770788003486955917162018644082377005251282201190052376121026266423520600960471671709688624047100776142726271868472923141288289268357909661974990267651250228238040984334878464566871743285453893275027996332723657235734288654154441968735440432580674398190564833242922347459372348663776125692460806594832143653266574354286212824062846284101330911192750924681418162026396416742964133681498487454277047744658228732489387517698159806985587822977209105819919219779752386599469506314333378885611739880339410996902675354674550369238394931085633696820498772029399345400084479044261035888055391152935029812581228871412205566108034207486500772460877166861190850041246699772971543742186523734941187599924259509784240845705828981447071360975513709462705413536397596329067152796388993226697678332092298467933118672202593537179990187628521540230254670753985177649148159569465872961499199649625179005353580625123802674865219728574091831565574609079713752355625309462805262376830123848993045994875484428336496042351617215390324713177370000156727424741797074125592324923989534139202457927487180045359165802126764706854180783358068898756438220693207068863738328690065523046771020816570344149337660844909013307350875318636520215262086286636236447828538304353609435560705269773219392732249242077777924793390146617273058591117447164730437310610387988178164273567759769277496279723397823926983389374632913544261199589200192131928944537537355410466909852538538392815305555453123707229757221627390515411713894412352457738023157042421270421699771922359132302719471909790189941644044075350741422776904039069488113667754320256737226540030378995620573360453591114049959315018348332393934621899324732337452608523641302896426334959382351843649145444202925288435215444373428656181247232276262062139184732645321368042937113703419600365919896735735664879484161572242445220073886067379167832927678091398730200912972938132482754646867298438952423805615999057032170148454327346355109435995183585761325294065383074093957852890823673002277302410449578887336883580223508590496063923197599163971043394358695057769591550587028562453040572191425877194455617721483620918226033150777086396588830188126903089381050774754549015290799898188058016521222539661975431259587375997575257297140862295941563279006177744511019000112497385407592784085964622482700637136300786970870702448801945845341409790091094379975200169573321689639986880907274643519664800633586027369661807864335763159723311393104196840213915088270632709878429343188893561196040971668090321861392404397705957840243260858427893622550801165496849124993484802541510251599071449038910737629851190281149503433802530248299402268512144969167323553865412845591672551854256510032093790187655927411703611315429947807420262948925824972793083520088693848461012317353478967299195707052919969464430316433748608046652492054605962533460590460013721887700360867314789009523692564756350862229064570415915941751468608417538484820827928911972861474425480444273062055895798433743813045110934480576618115657660034761265485446083350640641239342100957610820136182821975793495424975366445810649730642266658297176890810917787087880355465581364243695060734864999052418227646961835977365003877644837335471093836961508364932359677358972555068536340225094417940396062286914591302691183855123135447865274649958149205734488723767274346486718375640646049853555622536952146291957868891386738000025977227533183031809794290144210786408251681205689046892661931801854668917926926533346073536435562072502381893261495192524752720776162864546472756355386168427521701088416955469851548118968375577107703216808408404250300929127257720770561379738869554618623986624833600954505416112083752345391857052585484638802182462485105994140758351240687663822389064713197248638282793658304129652300372340898325855702122146191646566591075155484952586967420233314703418375139759525651595700890405344333769316307116571467351601748948732573996167179963058716364525646178077589237117803146374162186202200002754151802648522075866766442514369765110623621066258745607726600673580521811031398508545903965511784947710893075445507841403368398338006053936682270820117403445661141171371819960249420616795565101692567625559964408821733272825113211144490253234951869488428586811712941996246921488046362270994221770390757771162263421758601305298955092782208412320740823491818869190570766323479532019508964837888215675349453312126796123717333412986455268032803887621501206224477445998831394590272518366575140689783689353078509352033367714475160998035420128157388827814024207696067869084028695680065879875494223237910216806263053966833235255506877592857449142070217382059342608094871393790583641012033684999287878775777430370111206517838006073872652312196808754522386944150501892983664861378891271649804903392969846874572637470012776828406189063699588010310840763289085750172751570285924117657183024140713526750143145482942856887492652251039118577925169058638522584789443309415427233808518560725853772922784407570083895399447390666147098518321304965948322408593614785044952439015166141226773798201806486421416942752625737872853919697058923920501428840108139180405998081252754664054191846821315275921995979198467432716741316621984872601561070632640846414326042073080829566581024097140614792232793746177256041901860390574401247465899595650003496108134723968927007416617346145578371219136995828855924734809135501483497449247514105233311250870293006523324637963214468712029727927111396384970622467847434503051451119168687671579075588746822838472811927491721882709312936711890591796054706756976286808066094806574465988222773762132069735067553723408741182271858186350134071974493793401011395161968400025533178038474144345645656491263083194873794666321738877166011827494687963274873440605410112034923737066145732610881932369716724578031476404554807079969191976326628101516359971965762695724459675927215669383062466909731987451082158561406672135478368588342218385486310226722615529658822302525358962776062151801924307900843768008896895552293981471732784861499312575077850548235689730541355847358923354974325335532944917492093828343087552406626199272753146769117472729576825408504239825276396744298010498283551099339967864597103031110565730643115393957387315821645085550921264738168394384117576966012770165263610784746807727360245994303266150514585706675035779603615185517908534043537916673829240991908706001113412258415569252674608563336649277411868600837379948600892153941767576603749689263691580920388925541145213399620076418049188169630892301084912013558488770670031908686609506856125784273048191069062587443621126987252061443123597613989431132023995046491173372717130935352391023964189634773770112988452074856336128023492448928519077376597076013316341240574214306812311815624783572396490875844358214303394326236762137947476227406904711122209055748302023368761104484078077763008685472633417056286753303839549676661784726390764564665945214604638888407063827532840217083250934743204562004129226405329991425279276396627065139865476047475779165642079791933078145304852268429705370730354469103381940356291016190123345754675603958885926411847669832294408972695396493453093570736887683141796784566432680580687296410100221159296221420009526121380505695365763767199694667960973045039780752033710175142433741762965005273635906162957293339817702320278188678665210586044287747883624509825518392524252914620220385311083141420047316163292073813337910404243902652643440176486004680315030498555051707066277243623689139559451920717998607019274506846436552221978011070265635680636250326544851514354361886113767582828337479752681253636812066489196364082943471983855047492134903615248803052919928528383751510327971650408334797112846755361580535787433872646926765237401539872564400389806540219174591626583276221418574644489252436752938794489989773646932299077979975579093164794660677704535589931428914403403524768356428796541448788312446385452038750290596341432309170439811324747862860110512607042196097098860453231471028285490816311640729769959406249352482313437148820146187669802381319068447425255428079850361651366440696680729152691181857039592413907807290869283184875879886392897130557251445560150011889084679877445419529170925379825926931610882854190117967008513245800700431365549730114180201870992343454300621338078579524739008370138064923893926265138700669724812768536188162303804237540312276871882431892051438587920388702058453295059773856326706646282834069265661691844113883321354775136584734768584575633411048387873045407132219527007755070131679047021728423444511254205961076980910172109244508893725894770318548513492041425808461318444049432671217164929579671825353839010595029734478209511829236545985953278979069200424691934544186389132819263197727413022719966880070372622039068958188499223041223770520861948307730710339773241750560193166264694031298272013694271600318202907048346027912540626246781691289480695504550562775974804353122807328032080502338225901301418490410010555125848604408736480492118624012958407992854431338333508519748695736456235429069908982123750535190082918083094036915865547191379762679232732632923054522205950077866205401714785746413223072729654114076508842458361975871761748108756411818398678694007058910197685385008191750747279497244007560441745945013058639050960028471612058009922328670665735606766793136249537313261430440277514256121490732758167123165387800722340857924963876123528762065204353170737403373864023258432518646392970801373012180383833084159460008596733191809688555707505037650589598749643622234828533374541446752147046513209692859989627973916377013480611411113524174890037820857275208646520907196795161716028162302396935339528241074253854134352617333519450824998313513738868118802056350802664119807312516434557820319122172928274922598110437936042195039252920132779236408546879410675818114077995831444090320488075723843195771039066026515436800387165033705231722067684679699390891033314580741084414027488083538223677973255175189211720999842419316192903770993820215142174378571007611634125860455784667242493968043810730060794304722415118993151218086359213788491792396948645686950200429791254974501447703658993414827312542623998167373616993097927693482333085184167436805940273345796322491072587818053923859095905288559463286333546652949519469780689169910503832798985372928948052739172650651929436286300947172630810905222658479992287116912491937571477850016457972754997531540205242303891517843360208811503238625253182176618101842591224250430730021074654341314335159109221726656918192446220975210832409851346837020231683994286108687113779872362323302957246823251668105873054574806706402394289921826184494637259365005942994125892466916377041482655017797918595807076313240655906399931437902423354226751101839804554411895380190078411878529711902446953884732660345637782915540720191942355729058537162329923060925798519601516208550895882445936364878933717200281655636458924509726260330520631903436241004411699746723145625045508516884553492274849389241981648709656007120651699334371790307748862196709483930259102461852111505164504094240052123041893253659264567379762149807775781586910694691748186846231261774753781622686096107620426631708059526928147813379975020951101332564962686263378284917321247044171046949273049381515299200300136555953054184158043847765471933194232070678685585041655256681655026253398168160253750110223402301663227327881626929032829801589010355323096512112467621277052794939438760611643876535290500833871455987267308676629329694461424857138650450772880568826652277712716651274789531104604814230968935864354152396317973913101792288995712620830969162895277465574030682261670335660941527986973860861893566294723957751369320613547655611611937240219151442536626882864770498523045198747909087844885892388202816053275301996892829010328826212379973291770053655360288151763152151057130604176582669454063371966339765140681763372637976256002040076107109658731276190785276918838900716855302463803121321332848219408627972476574402378771357881031291123066639569497668685913331791088862873914904235362897074318322548370797054592304333742264570482196137555060772476257210496207035173555918398298324463159098636547212132898296203861504725769213304586463366997963366826763968511426013259429929217751017368716475535542517878131759306635384954822769542480270816257464085893396575113119125879471002050586577380208585594411853678953188862861476765658486971437201002787363390326010410451993165968311837855944732917188734836358533226846633027885070685339646322348113798004451363329631426138742549801843693696155195913509292415564113028598647989965766283417066544344030631030696753040831232982294566248824277584228522491720020389278622181470178182985341243760305811773205389372229116983145827615045790362143824983221241029695189141242383509605125948922652517254542947378299384688756190444360894083929105762024923934268337392930814577758884998451886571815278541087798135201003619830305647850188363582711663290726464563584173497711297142047688810774821531109005123495957995438467809671557895990332662426406594197087749283531395571202535485529974527700202326137901399375022068338948368804027757168671131713106172238819774123522788868587376880949254341871712968395992767897050711945040462192420273005119969677490487833884182318698092858386027478905129228752757541322094988027108045586911009448740476740797558490912643781502149960690899719921902672196987760947252246663955965363044930503562052124626717445128181398024393635498850937618455472603499599804229374099982100472514655346454992644316127305643712318920757046310643691098581804402680927365195031243265150652222418106814358013646131763707964176036875266639105359876838376842320040414275598857890941321159103035254189767099087021688255766196831978446957059276515539217771131478504550848577308215343766206935409621543793955778029081085576623042646404844515704078708963977208472219431117205281612419864748210380607087287741135142811927612726393340136317419592411618359124194293561696052405911590383872706530389434728627848029493260126814116552920585307813742163889019589114842367196337377459248644873896971913662017868188843484578750539440235437118614256222095044923388798158939081037199988232963691751360954822706263745658073529282248326845645601898076458994102322705389543402539502265738120672444470476319815088015147318242606836050954782250121271441454009659469114330753162926415948559725633629484667447737726629907660458478400906522101270559842604820485382208489343456134991772677886433661347959781695145629649452989192870153332847201669625248168901570492900027032135227945807171363800986591149962291792462317084940676439866662848720482953128645969548370825568318037869119510786281920243306359222119985846409788803299082877614588275921604961460454618903085930022031793830146332359363973525747567543635913518169568419918263835359171180720525840810554034761590726934238713643228864074905364098722565898680842796553561402893246070763048385648365363692458928461609316931255071477733449259023223955155550132471857770996526334017953766323848494693341699689840454325836071731408953319100422972533269979421095229326760817453203478275984711537893215328857836301833498917608966498463886090785453323797019152336356312185609053433637725605427551216126725228738121875949669727410031622244714135590402218868825382933673633835011855975716859821306811536513626522139139496589782918542275214902021459254259747359592840144097805776993181421631509378285148204657972556555273262802219126647968576262881505313771962868422038906821710358637188744218019646411968056994450534727240430455962964676521877427478943692125230810914920554340253501957041260094272682517971645300745032039877999054686186975704456966552697207479325263542455697559799692519334507643516567685300426526467141048647339482640199903394487999636857624420577735019954071492011011167503888675872962517596368400069438056402654188425072211392851911877753851783922176045598750685417044518528442061259514829188201803312226323949886347172832343785296539177977550113373345827821101035029345962705069236605017124985037815952719573325016363095273637082081306809013534943505982217843649246946397631240209588008861517732116508410223854584157982525538820901697670443531256964981085089664219263182586105448624220415087857685651101904608223294442170828321926385115281996354528607909788071223031413987723982371725606074271998116442474209146918773912747700039855466320200701092825684197856042330772246542903163180425429024617083893851443984753483533337491104129731614540887925844213909606095704475034289784926906332995244401919072454532457064008505449107857022049499614224006628972536569916138357168158753205595606129283145460785402268992424973671528634169989821373312125095277649985812526316100739330346814692183067312457030626132155444736368321662432882633590327797533300150902129349944726527675593480339581130745199794877119269383259558328896350135715515978569649438421850098066881084810629614755430687390443119674062540001901560398670378562838111114444746351317480256027011742517633035011474190292216654817899564844226878226429859378016944495926363439002071440885798787300241551885414556748201152736835006292144027478726491032212069088416995645129291243979583522981112256240783307074643491188541720573509755725804763678785798682150570109904207813667974480857480634838412436236146014820803790249897298779729456585467923401973267401592740341724866115241935557101021611981161450438850963072590553397085644201924429371421032582844217657664010868273044134566007214628187373902885234095255855043480373877817980861075466285763874501869844183256649439887118810809144301992253960713222843754853987356254004047621799148083721280745551044265335987189724273636287945529728863807079836012561149173110754282894218656347811404638223856340947577217423482253924084319379323214242872701601781991328758293575850296000586914193163882354127605544195579857792533211592739767765064462754685775833399896215615501733485316417476681826412637776074846442053449213333932118527325619854279501259351635092666008025591196863760593045650888259302294837615155998580590146064286709598566615869379220874875511794814064972755387420743994917339227346775836291590839178713639485845550210809189346464537866208960265832827580477112321098709536070485046596556384386304491534827800203862679943187993429975864102230365951667844988713946907293007589144837661156614501386426316394194969323577838971833707506891747714107696086522206529262111450734699648254739222646746229919488092925001819201340066294027128812558383132205572929335463104423156573625804996366441983765299904643301323295900676689243701622452849014037965133840212698809453007118689279311849888371405999896737665998348558048175613756803330539792157251460406008668291354117172689007201732800720106616631077883869838707688847581732668501864408727866427783486352622343413052212856287874144864909060957153720630509232487499062004167668509491535247084809987393927798734808854658080316880380597796747067871216699275113554563675985332587509714129744293958613306096307932576588130019153010423643347125521919477200991868872473909356391152960576127200340048582658584365378425414400881741782885996405273052943694191933255867723429611141633199979297049975392991673530514096555245304279580251125657122211934952479203482779821118788864125738736831696682081205133788193266600403655192499591219791768887259851624745118948374261775848477395220398292425137705330226171550689178450931399444236400601780735105063573894809945403680471997121587368394953554567426028557193187084392982191633886540261485285078261962766729974023854138274090945737240846586854078073310865375504673618530603863702284016541198341703524946682037284428289555615748724167311580272112722461062721799765525085959233655862384450873791472870129526446536191031541080919479608390313558435911824134457204736590763060521044256532791031426191266208741196877859230026707629359578148279561116620682872500161356571679382002791466610426150409246735122521004501537831700604983507176427395443609903034011228448167933962277094959938016765233699502361429799971400641187189907887645905383248808248681935021468391005478291506753029219246113957162581804008850840295968916072943813445656260002562085498451640551084543647092524928799843372772198372404745152587457875682819162713513665113454621614819889136287701843790095894196487977099659597366604256335405148655952763443436205175901043585837663005355878836284613154784254375022762440790325745947667871170390256165628812155729591371024093995578347725796657772747737144810109423644355912971742082609227635281941712409908027291451024338245990254706484101946882496730603944307616860082761382814551620541816315904325232872803558811143600106263534775290220849256809732330971286760285766059460872953273226694207913905067152586375969786738960877629615777865093618169230235560713434430562886383177554217948890329859336174590685325334581294420942217825299760742204073052066100462660975173596660616620854276485117968922353741368672687745461768744702765310434302288653890464673000976446887596480671787546601371219213239192181138359418322267142129105098430257386511347998081867355590512655442636415613108537594500445516375052552531703736405209176017655302675011684316898715402823277628287947853087404467431153112521392662983692515562944452520646249393419449734355864983165571902121052672916787286896369205496483892730409540975815697134023944783791215584887116220855277032354921539136245111892576244801659696552110555155343383932184871136082105076176055918244480076901610042475917962682381837242218303774155622924517413790506026920799779231092429837058417621975704201188720092140747037300909445577119407596072053249412645694824524643222901066222009781175022813659335314406382960565026835561277190371372036825109662346291143145689221685636888497865682162724258738108169394295048467424514209603122273388068505841803531757439568136616537409118895446206776255898055221723509848223549773608412395053506997693848401267278951841332164630813332395177417772770630970046527753517332741346723308725197778289164627717291919173880007345524431529293259822082392602626519162023805710245826090028680282304043781223981225332241549517769705991093828526027093767019189491874746765039054283996298099996811788956345340003808521574096216064995038051995819703197669677432111754639434740755062469590058387621293786053341583952340050245254666997822639074320175791662397431079760170036936437465558938994920983328414605795001791990609475324988640724655050268326398717219090804906908651686489552884587679570924200703261801286932460370846152834545958472736039743300170995031564403082676568100594655933521298871125939161822529856043700284917127647138466970836538190414740142375076560611819929533804457402333645823872935797507713682789287102984554431244207979783288303892462944875723869067928349460452669196572079645822099866719401400078436298436566405123369712152986932725759602569764936497324342122209025135396594547140193653730253680076659899427481157258609050186324790348759403408601140091878226530286014258906284159778826230515447470897582325367035615618549249131186069748133090005413767553687476895780760854945350354935441673199452464003218025981809148675389457341659692725356648938478917448774033734849746654480237824163029509986205085738064980230015363016423240219944618330211513809170724603139606970604393176586137071004469726742651878191759586577677669646082010821593732332192495276259896732715721906369102580407183102961089312356559995764345009500761645089060597995679259784052802251510716948413904027254643668387547783332859788608295239885243280818599866520336494360991294238098249720227928098426233501096295638064335202071105706868203469053789941100235785500129842211981274833106364261485602789892076577377573025915382905316185843821718294097675379135620616010854030453139668413566548264010096941965370565766035565033640978785056541968149671588895214726327618226955617977193739868720421131065875474649361151637398013987423758506824901763212517936069628349350714155428943278000685629602638175592464906293833207889851365794218241744134127006346149542615588209248776644277947085210212945874644151858444384511801328172082970196912299849092428756091299169047126025642088155550964742233839620765572059414036566606273055596036909251289282670967110578132569548873252544298054996060483232391042746616893802917143428386529854947179888070391771499984863753937042320596337433322762361420308592423815674525983382405521439712957306038595824754028465958787786599865414727265113715751462095132267275939347027568094263247778308456527949671352001481006181323019061397458055478449920845799438644444786455203196435642974456382288800170960932763691409115609503125888129903437457492275410174040633610148720547343123693036369283500665402632013211491237138428618688843357681527400025435592965718563617198934027150778878609060763468203087823405025780983085480357211122909733873367036621141986824385275969568083092174274816530484085012944473092034363034668404996875178551961379302494172833160563155659946207763147519170987399261150140964289245569398801533539508259646338419374422198486506166091208190867235207882174464360938123474610148088590741558712612469179380364423832162979776862837309390380216224407360321178781164458445426528827761490121657916047712493572976582248657118627189264788806320306374952676518190875754554244375184814820397592089992481603299983419246708782661893356598082278797957258823864803348082372430071943540676356050625168166707906996193112624400020219970362313888152521761045785347387449405780876436936329754615698002053196345562806163766956750654303464738938536593599703823235684964584193617744860779701278915612207858544931184233926112414081727481777948413760718404799383761599750191373608662865821906910938138840467584014969835292890597567167931659984533077528830965049935168402278922068052723620796928837316187206665078646600300636967296576375331604176008716688805087449106474180805542375023993668794649309462343904189590429907251612253772976970754474111286268342082636813894583290829255429102863165176779700083863154451364687534670227456952528795681552282409631080580060872850236351578464420004190738704549571145105860597398905585358833329982665010527424848970873212798631242451037862606896302662310810289371690175410158721862486920763353033560452594996103802057439532310736878320864028549671300762480212338186738063612552105300504379236089873016350825260286903882004200576648846779047402790470899554118551946592588791830836083738045744228122940775382913853360906025016833258663602443191131350993531027724879197995444624535589669364175974315577840492315297994907984382293987635345774872807529505277370230818671041334915426967971778074298906447822803648861620435012682663893468825687139469434497219690172261878609723937505899953753466163856540949579201215409002443771136249738136426682803626089159398594127830753329188361621381119143373894339437969156062743853931948794404811993298958111771139942118929052202895476581495151872918290066989604215159868510159004946232990189803114271539482964781924345133316833022188940118777211840161716632052587811424500739487734849091867273492277507373579628845668369537965470743964625858339209137550016511055134303501212160819066864046542571306886992128648527462822392214380181392038382760381541038464205882063005914414663269426106098564376915133140565461417015058462390351386798474082874224660240060780175793378083350538198660716459467609136211944691197216367658301216175459056058788748259091695244694659146440851261281939891224610627504924650329255459647521215955636057468953485237754766348491205009693786906984031321545910129904266944992083532525957111662327172161671926753819681355493575955656571323571077261579905166941066353801283169831373770455453691558448854372491060932950094292744755909058471772972196087243953072667672499458021090135703743838598074737052278095529120078178384763221622883071532054078071556004726975498661050559764297880593414481271143613008684221878560893306468834811779328006188096300253998728979285558935353573572644311643023899391239380223918136776125161852506255206487686868570448028561656970557896381950617003595213152992099612219924938524101029030992695615922297130963499628340904797723426179435667303207410377111606549297388348631973196068533318607592463712026128092987376307427774512232146815118903057138143915550132144357481167460561424335684591593477352496325874346722985498279474938087795310087414373019030321682679344468264813496469541792038157499231598656841714075032667389921854961999987995744406469068955459353060478233339644463939669562641420182554660822626248457094437760320747693524025591893027184456985254239809304974483322563485316416872699126678374198291341517385664422804620837124788865046438878585071227901888022499382090387743288886592117880337309858939277747255172693451141637993850550506765573217868875400974758991777347781281616362116886539870081712437478127673244215004619107625440339897764987389427730423777633584986388643136137626311320838675954914382975081125149421406550075715479216779277169609863730513486246959986925931593828852746404223726557344332154758320994226140629703089400987218518002675580396955699169646211423483901017299351269535752050435003705813257519939321564579259418168538791740719975699901216006747215333569024929087147915326825120257537702020595541421516920937031970026996362632833452519005236786596318049425427942108440998075565065105062309486691456315402413533479671346434830246650540823530388392657163548660338288537230023638679921836699177592970880458782901104689261944242235600350296922223637361705711215687157675781111597846923887131790668614428959386308167147702566527298047747899433864739059982768930360808078352678176108421999776975005912571354178743135922544095483585588127696450414204894135015892032554886955116920112869397223235343006443905676540443952382863865106491441447070360562459436470748322326550833310174725712511404731147118852554649300735100060231160252513214477002673726682681844355334219153385272196680329865203846080015404747616764783021991040334652000436989334245459505586710458176954321974327367018448200094049721220214622937613808149525284209351848508086907645515540921413650038109682120698574051175814233761729720303685986729916493969904268898711934244889264517881614923967305085646094072752911778038329262171773321800052454288080263998863171038997319455770269053813286303536698502066876165859686744283517791609501231305469738742642183332185100452063696938589364696104748775584408437105066510376552902940489892124946215283027171747485953082042455394963354277094495626151438492581475828345126354419596509023230056446245638934182348692269713935544903030994246187824610969527254307454252400806218269872831347711274793376355424305689937021060709018624604289401491738882634953041253275110948022418596434627073503138742996311375538313606529361713757572011170832308339828981121021228971417145086739248160086933019029857815073651906970008050733519653149863927698341235971128594249364819387147947553041123904319274228309317730359395329937996910144458377618274399244311128259441369766313324045885159690791310471212747348270873643184687436394439439601006456732908306149436565613654785537975011913796108761990211427643661135453652203892690385451244614436028277692375090344954635211729794512582640720804252954725617229452525037394720369782189150338217522897283983821551523530755337011472982476699972347066781799205346907762699453206751480790335593454396094397633479279740063952728069163647719475268229773072659382392098424784713437222167772297502594007228303609494268575419371467558927623077335388804171156404231301198070838522777560170599074727493706156843695751866276284220462827904421686383531934013098250394169681684313777875062499502143090323851495614655869792663832390890389175257413859584839813437175028168373459593996642771924265089406698946425712889129266310223190669912172163888273182906755188138223420159852085912521983645967498650307474356714566767909063706840060841477944802883873848529014860524731965090838210849537778164121319273041719077383531510479552537818277672843315202374893481344104070552407250951784508603283397380151022503165482064663353206123184849781357635123396902924462095599905899229916789490968749002465020722324412466721789945008202540008282831294388174846163487601181643288756500841715028172020399213416387312054030424278091763721338466374135604297503974911088021800493322011855267545889296277069019719899026788008101964222574282211448302668385471707898994652178870472045334742648952269415539475146441940946821073825385901260195818963078417934373434024277315705269055475775055604280118295841192625896741254439560830958331408361080615548895035288393434441889331254721918042172787872295411423715942170894848441186646875873897731291725644962812516237940669210657798211797407727766012143318555840183540721667464520680034194053853075007065937679649375405778041403045153200537952319213496083556268328392197742812754379915827682941858656743064480055437138102297621911278032520800007755350318770492184689129899007904479476459401453206665302579587881990687797495055925752363074651940636454711973273468279171962012852931840255104844401170233591192594981942945834590000816296301674009089534886794051026308882416953341298497597041019162877959534415012449989669100008976723320668733696510202617585047809764920568675817087518343264962324887524854176844312651149592799703558361115365045358920995399371506313695146776920788999287926603694335471507487187540113885396610121768140915946436705443337540484955437842108894771542816886018375911205359063697625509853599537310088351985619196583432180212954722694138888962791948501754988416943336235295441122918156442381061053087472699118556970894747813040266871500539389214594475515709176063260258656781538133199426244343864601382675413797897159791885622937023652957725444545438127893959863936597170726563944039926908357318793027163568728437186834047273804879109280090217550209152347132906206256956343335107677527702716703363422170005273406243990262536457217327227124382333734540209540179689242195659356343569638046823885338864675199748864914062395602941238009792880050358056950766009628412519072978325136839342657899907076770577745939194352420660631190921362091053143571900662896211129301426464271332063459074651476438612360130390195536791496436672059560028575903106928370743722421645210164103548244754848662804737793036707784893218079787215224316318997550874241929172426242765960706320137403049120459583413067024628214565975435961958742879678422318654291935530196001944985545716770530653361643842553322780376761122540152666997838156917066785042276596108785678071678086522436026694285523525119979408884533789478005521133934530477044149104704053575038792269685585085908948772161943234746850346960482091237154709020151796063233270625826690525720602807160715476460064245349280300417452809093606070521109052284986887007234693775305275083544365867949834886172274027744457211331572257477060876104774442211515432364980022644389165162470033293570570549474867107846956906863539647759109673298445715311234935519030291012537361200136884434766515754384802222233172421832716517063976213407493839326015584759517657077341302141191324512980952281361106672157305107225351294778261891476308001391144940723269006413402597888411445244163293059367748852715294585012419891125292837785979909272048225492295137210106085401362894579859902982073995895712169979317596317039174408888100380857391146349163666393489864935522823324295925498999225960959804612919170803082725367245893881495081159036236031928035208538242375740212904181872743941488371928754746070183595903790561293273892726894142428984570983673474534113128198991134437821885772216371080479074183538644490455883633486118781544063499962847075225346492598538890321347405101713761919746501720817403146043032007999987673490316369287109415689380014087111792572476448665992694350652929233800322051541006220019394660589753820144431288961796553201215602092299838753864805407053625633144944418557200110950754362116508421029680355285759949119474502856570876967778940544384012942334555017507542857512144815990755054509622623252110559183360248731942348494068058331278531070541117037692621137855956123882472881267901627763544729078197202812881635317704023984801057866994384108544635896356469126237833325882226359889801498733949392861702930612255116438759024037867037646334752976711575925483635574238609618451276103207833843373278985295198503340648309786182890538795391784908937219233234946674534703381498118290210937077317951336541091209821293498250068832814691059081243554192754076904943856216772883423758116555730810708567304948826784662724150540529346789129419889939033151650236407897037593428120965350466852800659584062454981208343150887010602018591420139583316483014994810235244088396045234892588797677809368407185710509105546232104804217166047321495618556270506889503822966827573219966639107290977049986804929975979164278137976206796191747278639754541434066138182817243661103256796088537802196197749399593340160304005832003578213509229560310474307085647804236785814411036971954934016436066107265539210940588209317489858851742268455929071747247661304859699251349100341804091751898736771457846630012423056751328531284994234396920613785439463702480392428876702597227263059110448650563422710362926096769319283174689515256727759536443339729817334448005095511483550196174591137627521985868611766526571127068963001889032760091865064016393537118452409645898362332939535056372141668610475181849274010510348758778686767453316875856973478953157810657864616900064082129191698277310455303888274653381740585082990286289068065989762214781710485637248791488603175718059075512690449622785816501630096784965516803088470205574387018547647476210302765695714902854763331752436024533337120507336659521621980660595122323537967756658333000008488047080746293060405975328725317361922154184682831039873212342604907808283047959618656265067632761550102023424795533970253716791926955190431904260904738777469699512249471713619837985425805255819091228503787969665140484745271424354639813497420464312944894222368371942777899526460738769331007986365902752693680677485652639468933462710623572754829189671082883486718016056595596439411946302483664104407329190817461546213728473495367779073928386245462022644561113768812591325328586084722288097175652159556774242825250469962039921501444676427566535220252270580361165714704779008801314566818514723279185081872683090337975888404124142334393352174734794247034302965790876481839013894872959023179747681384896591846772803978271200597961682533223604110656404755086661692593950467183532504741199753823605690027777503712489739657811114000643098113576160105398859431528937643458051942452012437345942107281111302753840745031596963483237014113002507687557028834540604234212216953049940762165636274387765153588683688841165696880477520847865274609969143958629770641376466858754756169785350718347362513765188539769085279634166424391765857882842015723313565156966500660475356371011076634635812024154783125569219950580837549049175596407100812507196577016663343001853348657958493127963034426300344818173527553068014670044773857817016618022986179631134280597616886146842407641464539239830979635149107437589812466705533677596753284668716535579210380204315930904507170273361037745356252597172374210552620166940939022442996813942093614866747109851803929803033156498842613985704745111274063394339184866401443101244609585383533090633065120340920795169841957756886323637064312567547256692356699345917934644009507530591052593390960223416338587311614051342537874183507993009801528601266397233662910483215807271542359482992529830732951250701164084469818698017934729442294487873174906486202125172195002232010188552278148124131279287191086051475683209124188120933765289217001601710748213449661631988091719454053985135321974849498033443370367861109435787927980053570002406718780262765555897074877199642661606444804911554650811696010754958701838167581310813169632738387940201244371018830078725307828267650521070850974493755541592231802157200509605169760964290032222603028694140515621984897007564915470964247749703284126379522146396762597349640046107009115190684227224644860655518040570006184176682511246705727622839027316162735088386566752882417903784128994989825342097295958540303319521909213118748035005622756177261296886858904864545129446729498461480195059464545735560888194791294846694201814002987430957397383750058819557108921818646162358403793432978318457587057121357188164205686239354032019739107055576884301253636510366880030102436811932882220708281902301371918976369711993016268982246567607672689895894811502716572386369400107058934305010881190500887729819719039718940747921954263097359783799603967472907457407137577383470552703614412901982434755532807915870553183089456525847874580213486242804484737606860240157859284729662517644105235605544200079107919324727806179557070516431211583024460061496962903576551599577996110842373231284026256271884216399585981151551101647967539699234450667775756144643073652756119436599533493746035879734640542181268758610427813370095336081850418167401906950400208271648701362207688923620974597750392093827126489972093876569067770870187236436969487796082047058013114204890452699696909942403519869623128589827537067883648694814005152963267190063950652881042318272252849711987595301873745653838911966132441737496426865339234177202136659962808692504435123631481672933735800502656070224967002963335326283197536037206258094735906662775606604113529398903784286448271777631010527504305839853690807678199924019854128071865337759610250431786272836639730479823416792872303679821324001245478442102141957245858640402265991576066510448689982675486012779066649310508593730765653541490028859747072225269840302807778918293309783387001975097389949136049374809065179957498102973047667672463323851223254876170384634966708096670124281954326457072757369531836969328479800568554656610111799282332388719465985756047742024585627125138937660850191845153733724978386522010179813927471522723528964566329446065982535573481291060589434443238032240694789896294860045366529992453418061783149528814044995166607049028112227094335470614982837768768167785577520132653972549486184659304644450258991517401486903196212802222136184649884471161854067955576078024781924624652021403078878041022756252236810931632560070889942748489992712266632199131708114645379975931492731392252854348793823982201668826226143994371748955937081128901883491557004151863028587216152859301354680675277795577511951111014884141845703714852604854663086228767204905839165075446546360899249198779409215563355132471212760917332125012050339244885175297622436317961927118003631724246503552009191098744024857713845271390816912663271785899736521723708424195303864946177178207263851528983546378747290073360509754039662658445750035794742178922392714688691410037425635629633755231924563228747995336941658926355040881205322244156349942603486930990627247522649933766140090850000433889882606523345338613001164337940248298620283489909361356892439840068078505774451404693654502709743486814376271494575692923361773925147257969481255539698061969647267915736780239138641539148185756929382234475045353403286312572564550020236638701934212227615882609632824225010600304523400103576091549800387181349912760502048422972552659938552598266705307323734596623658589306435172286785667400851956756343426911018660496294630828437061058955548701521233037671508300891932946149303872450139995546597903615526641158438941625292308008682391796770385605162655583121535254273673863525965471286852272330296251749458844270031699593491109718493428763050851718394583273405705500184020541013504069927818410730529543961848028084050227866295125828249955470257156085420990013645198309913845628770112825231244625324942263835964726385065072883301436054143708963451911862417001946056134702029718564715811138177261394321845309540520627572207007730790222844871219084082894263357039868880192778797093920657090459775884145864036737380951701592238448529792189157140734615034106662706301135947054129930498620525684166202107017647633036165214259420787037626990748018235486810638488988939711187948981146732825548094788566305739341392934234061095109608827131841609690761539087794250236636708956104314436463687246165958107749150454957201320556455595390364934391106020191959859834215417816720482197628275193530118712318018397793827600034561983319402106897193965356166706451088174154043209474421188540996455689811901130326110270269217790884099948011777648044030066660444326970319501228937141204994860797543333320940042124228912070938565334086462659706337049445571504126508247317892480006044732648349192470531755692373766106392605447453821725115151410664151805980008738727836345334164541939560236496259085172498962519483641705081502026988470725887529464093628276476676302375468147547098947504162027263148450595922235186060349972291671218297320396324280834152911535407408143459136779501022460228879115116862049572338046892959432992091138852421593817298748514546072824220579081924329669370020997487110316162610292894558403395803037312996323699399782255655713782474821808869646417692453504545265590052486218673005093336798050035804354467442843842527575625788449122143009165231373391457275013133543926150322027702953760751557194653727695349943787331901380284239115616127033258294041679837966089816234519491087153917245916812752954851548858655238839732699577792576453278136453007660712464933650127281393135445571912541002044897150881875129558082941032708426177642527988337981483539161074814734544889639141854719422390984998795338393689397545013452408025407505590616320670921227297396055204956345664517213461216135507804969186913465445929486704166242873460168375840753578021018290163252686322577080103520392475527598376524234290397822033801504348320086096156610785732390525652446793844051318679952022415913505388642479201142763893157689196374060935250123300883472241244277390705445376359039363053706872839460903082862724794884136748576172280598224384915095478944159660319231406957917455852820351188994694974090424634705653969564599004406755857147225095691007707186167425514222871175075478663966693805450748845570010962673467871845325078056736471079106251972662735350649647982848698948835372704572874758457008117187913625802132202602348783363237836386067756320598722410936075128281384914963354489911026989269875951375414130698142403541166527582756948375859380255124433917446549130245975021298789007975383456798299180799148343174827266155376814983111511288725921184754297210268800213220465046225370448977391272219968593781290471773143782131038635123294249133219923303110760674192055153807663785034454058013591886420579151556005619969942777566717287717575630183641549262695332592019125015218117575164249176295992003694456305252651578001626067467659929087920413799167077559245909437056401829754249075478465044190456178561372823213546669073715743176819939099821549727112038998746555137805673573887205991721719078465748279884558528156547059716865563909985845988320969187585091133298040192642342337546839105102478770513606984868443722751051652277831430167414836173119741918392926260388367563596282598086770682043825271257711303915211110782473228719161194430540376012421131758322028960668207591633414234677287740189793006751931850749850853835886092973565811012110987737309564938525387318301919029523424774096943934731338674831891520912239780128491620330125459016636077198126845419728370032925026960457522641762122727370090401329783758158315847727506357107603794011129468439334590579766554667378631559169608788937045037596556134563873533908691228756008688538621315531848019680025598627475345045555520815593285216831163567248083002470251707620174077409582034443315364547445262036843923300223252099387535067419304896291884894453133857346982699475885005860104765641737465494636081233215315687651525920591552832457083287800449965695490983847880733165035878384444226209160681784869691980102193872651004081265315654551247419778953537732718998196888845241504031853267857723872026481356721519517168917745758248607943505719999205220803801351971824770100215583755480224842171911211578773760635309597458873314454399212030745865710311199941562999624138385032531615434187830343865512340558865646785479078841741605045617995939407779481056945172429982910627720827838026975488195839820492223074553283712675991492367066625226405055838671738878494689146212348637528985648288615073781674742294810502380887784244129587201788832489726928031390510196656144590845415693358639522957414238147989431898821879715572203674749317399159623996119047354825332451828779292287434684886586796707080667821481258361809958339571871509525582714212204736852445524576331575991099703603521782451249481236048958691491668861952745846949671808324057887912914168116456317930731089474577807573260155543166351118167585763459438464029948433638595203413311663373931011686216308920116692683373043508288090747962899768002457896561412279437718565343855270978906158505218167479713709151078894483127432745497084268858348663653852495907808203431597703805609726989437835082243988991848660192751127152720115134084251526096939319972832559600721360049175074910463834875483193493929994039944310500445766880437986788627872149439618678288980307041986899566136548453378777380741866419684545585093052852785656317768034017086602407006372950393371964193978850977313734988884828455565647549363580139222316982418541226348959705296058724389773814784177671379945592802192978514482489615811044810698132425064177777510061919021366245098113226704609611140824457775455732406069371069129650487081307098306734456422531179203001317203929324313618524206907278024155949644186811610272482290945167222899018147024270345514654591106449968729077389367142320875399736982256446094681784692013392604110307961331854635293970311662895043960895983484126711390557360277231384214025201249389042850182967767196821909683009035886855388686049993043818180214455751382454908201387442861577569082575981722221477194996444845366922032799733816236371924672260577815436334085021637327233431817591055746358683449289237428049806245926438058242343275081933200605334956677670751078206476066554251478640524371903899966733471072035315674065208953663362413563800773021273375358368678741038393673973573396175752163552619834171591320753831395015114867296604605184556851730042519577966162914797724787758035935631162896652985218451495148335713203720940715554388453929934927838214125778802805333640385609709723986480108826998701747503819471753083396633308684444285321646787632215128153884547711320111111069708844438617276771352491433239450400691911536229986289418862948410565604720514371279287335245888537269776673718468904058419481478288765217000476531937959827558967550725948698019265909097120522398161939657025671565391744582245394862345000108481247085283198364262175851663149397330890548360595864683908322649027060393290128797167658544491203414035089347462110261868321180908442637138741417812022052011656038090771504722738524612377401716110426184555675426522223650301603871067516960956674961808572348142149908832177646677277189476578164668771074349621800377684358735437141709699702189047508582306896052214450668915243630576720501879261968338305594859198861134844689080548488072819752173519233773847780293497285766786622703224811020418201625150130456662535930395205067571242650372731604017110351058370654912934453608874710676514071640177528124563016536065315567368771422203212676136402079390085510618079132859355667534310189036140987641044033975052167507285759959727485650136291086243746966327598485209869007859662734455341097011363199931602647048312978340936835866632155299569948087523660082481380596581243365372593711071647959307462914731833117805198618654074526828435960259745193947241813309445148216141247672406217825572336690044217931261714727694774344997698238801912703403619768525481312707317892566369686521205922781676177577685148241303438060366210266627898752490866168917026168392701807282182929090843286392259507841780353300319460872077913292996065141483849797418967504702516656835572263755687193370221845121745748945441275081632378335477438465406693513507668522166878957188435503356261341684918923569679940904448579961896725059559103625217261613088358899004037183124337744164920859664507814342352785555647870143626575225970713853367433020692610861040626807261046169102431430948363102032096516284179732155392973880016975691987847160124952269553341790993548151625224082377347967674205133963337716765042112484439734124282730750056107603257324079629825043713885682827520984138972676754753163921629930274040426144929755584243769452447175678217735607310757263498499803447860387445408603395129454005951063416618974039250979468829689160231320394690506787410216869867764372069346693338336338058904854588246803514966815026243945957186703176359052221437761088110855443627402436250076745346455081463415080932264097043362022728225408430826648375164884433608926275113729384104829337325351823383627973170650347836901445154447886332934553632346359138472314037180914688459756332529283640554071382731437182329125418075366550881774940707008007322576659431462733970497025732131910535751216187183858880156038686157536936797654166774899112606433641099764581322512673850853588500834382121398337008530200286979688841721116714808933096419684858137541919128434791896639150798668149020900566461293819953313130833031747207223488324582642995955735081296724535799871292909775427296226880443249143896837789588691581986375429499634941487494176650144895290531255656331597808973490094692699223881051228745353744376933798520005588206160537269201775587395086205058087857875237029228571536281941168269903771653584892205669363951688919079372044188218613530998870302685890803370550474769900053072759818798195910655713371220178681798106153461300400800429348654932585118250082217369371878187923615407425017871418109524847389553323747811885041966107408268748090408477317362052273633079342337560840209149122985503214570835803901362215551222199023492705439685912802037944481457702392489734017917631268445137959960978691313958434229593175777673014338856425898454153941200055179477479019049672625104267970246918066259902071816186346795681254750867683351697188345979317619331287234941002163008314953270695064591921837984334012368567838486849066163161693035436226440729815224844158972457436799509432375122385030317391704660311227760827272479760558592250949859425535726465220868442738286270957805133598285424357115584420300587345759216997820787539636218477320335637471088110432405501010076650821005526914490286338791519653735750997975886687959308496771225272621375795343009649562472786843799216459896356142559301174109426853682238565316701155643967992147026748026432652541133852513288246588672780766418639017397069600949640596899236787132221830109627990715836097537573595428792418995661324132051196059098051586026880591658952206376108015909541457947783003227139121938736601769887044355933420247425962079089337659224795904402162924561931878405442788453806529051087264856345320514715546448245038879592217510027258608651202420778885633953266792216269264088376263202036257423122935699660560910723464483758022721045610674552241015601624480194003693046890220113539625448778465774915311713046071673472686795272148301271780182534318210082570685559990888293593303079762354183547747722035748911318329162621716824119444839182392857328694175148137357419315649921285891350044857450207017608216778521975939763895727853667704971337995236504361028884860996890773041339568484393696193157138108696756198341631956934077406131880550970272529313763653982621692668842168931844276207783008924023566917523299472913664931483674073151424304713931256025026588321268271975027012576254913603629132088816716978010308486080522704983474204053282562280574266541924653163871769297166348123856177455464524927826462661169175258313575838952435483127032058428965380074100244050465102278046611808013118265298431602334351940565063732908975551634077233263698627644605681007132422059314907653900900519364119253944851633223815383463102007768365446893424377566850498958453841168475701726583883830251910895605496147190894020053656628102497940574769929720759902845541147005551460595030756028310164207208619000573786012307091042574187484526447433853036796291149778668163439304420864949242847960324502393996322466607135824285173997826036055821372466119464842903473691839101617690043803282117871248675339785998675193127440881785928747697243882386492049736728286086458792343057745533453474666595286585725021190924872056463949221722785363135292435348704971574996238212461266979958454850620451748307107439969476967697906371751207924593309335384228544511211819792539935867120037564707890626316284402402412644937246408612599540285968507912098313065381075896771039797173108391974511928238056546330108577524581351455020162454501937222248202515823188529082690141890912494401127318414061060639614384564577311348126030822380362072363005537279983902062393424771397017812602115454131348169377810059168525111676503046172827659161890609566076410894745304098360200846612232579470864047869046003543472204362086859080735211769397422888885587239953841202537460336346012421699427302045586122640002149963206395028796041487698746961034392911220591495583367530946350652608693356810726672898475120449023024626831510565470322010968200053356816093957346144056175117697211132761149186404096899476716300007589779649978424798583922961009843714756689510491864710285338963729798687412773772353306129862918140463605581062669244043460603022586816709416875914580278988663088516263184829843528306081983023197843418673271810750956159352623610306677436507836874719748978325941981443173269661049252025179420922094027946952285002666647985952734993851406134240536020980302814282385800339540089065784486583918339804188377939612964695834374559822797461161411444131444065382775579323801322270158593935109727588711160803802852972170228444217758550472142021022378563715281234407919616225275285769183690161781005411390111808571147297762882182189488790690795200563778671610287361667867762270775491112408445664107673154093216546774988974570926631278621287379644647991274410540491002198904025560751314570392580665173048923621267831240615214587665402692324395019282083211000099381986333710106707558212593894911309900679771146337689293390410082512204262453113532341893637194595499331598004707561416807837420978710594258210483751965665633195448451244918462658271894593098460336374338897540993369039639561596259986609952436779781812295249532660324601667656568584736763632701262001655868693231047438073927607348745563478047473458203975844536264693710337833617907321001571134580129001268425203193979766151242252757757058675094630870581276836162070156767182530148989424387145688086215588421055034023980684125784173315935369892234265929621087786415348894603251017715564957306412676297797772068797393862480908672186470067433114953797693774809970300800149723287243583843515712986450554143955424084794522049021021742509855343145080413759025493511126183734478061420133362598836690095862615080961021865660879315859852052720435985326722434668213280577367529838194296410376354179132657879394754848560204163271785978927401583700058971918881451786139814511371078580959803189952156503263696173525976033070417451725847141294490937324525856517411145772347510821154342162840595977948594282419107211102310327920873414661176570120391451743652756492161024448690409171969099002363312896945502338739681922026106794468957386044515231047580945559886694691270407685658875340010856695914442152374426857887263392785703949686225583473992470666740023119962141172551292533294868497888281848093125057831433355959985240160151820811026338838900677999122341946803321522816494744000354644175517567058684799350644416629269793110339235035715940843650978076855605453878885673764622897913530615351181184297958891230810410991616441011843615288013671223987895881260819131412864015228634068236926371760341506633422574631790021259632395825972645121575329359638036484742484946153941931836621316250899190929581767599079998336977866042136537943754094791257128183046607835625919672591100458085545005592578060232986376148743879546023547719859248111479926471192762198451848435009220928939440755150749000781414523628611964087346186072252311131166349513738512642589773012445402393564350214350470488745020580402541650000777795156048847724368273922065454383518137168461217877903736926148016478560392094976816560124754075244235224436224806825972120880342650326947126955036840448236765084763567272066386381515384745292646221894884010550523280566194612048156478852947274557355166706503791478006734217447698556425969661234574847745947086755728004188410657184767424466266220345314131012450013410128763066815137608197531997798463431766882292145542186902486485882450884256723211445887250291825259287852709971555074298042835339956027686127864951410108839163827722850003383960635416733935907900912533116334709550504142216498785532065991698899967522472971107960763794039817929647858886969179002924607782049826836091950574592064903338015626580834291165513855689405325706904802655238515390219994232332009343259239425774990411021921172469997722625060733953198528513079156078213587466890327916139863192001611882552773989088621109836725741746117489349201275412107663535308055913562446859941016091121885975747665460054492096396743800306938298052800245481710999849479817714863413132912583526689205590042853501533369112074213122104813982472646412021601718679992041074072650488719749480102644483612936584232534604777211117460716520623732745601530320193857390110587638397384834915148952843032550445579645352435408704473393871717418172963912143062499883761243979120759922374637704520864972688210581595412146466357340998801375619895800486702828286189466888046081486357538125386371155749487670236562481293209143580478340897849006344214295878359284358672342509368355372421733382918819912429932701644637312592533114488541835405129474611996013286508744093611552274154689340421445583988487905418741896009251490406012546524425785233883645274747882953116097282818596317367122124364541156010621052754295966427094496767339113914845835123053340724433023307001847580197573369141525110180730972086546766681743959552657447155484400465134322620272080105214562666485297461034366263643242632192756331178363792126916624111128793524131004446081170969234591509818033293332806509264195214859894254543612383478479209428023293466977839329357920965334364067766036336593434486665393901791882104080581860375194922538576394829795499679844245517093232774247298354149283936990077704141319465608753083811635463606661991369263329426939202102649979373528580180122387312403332140299840955381213748908560409704239405035862961758375911019728408712165420502741697003935006083890176017446181058970502349144173921526684376736167335044307320991050720679225065941658375284081879256853260958920522926497950401031787842297215974735649448541214480068706329065732576229705498537937780916553965423616473448630246815081459435087179946677039239379351704434198939697834838460387257394812904386308523313367239892463884844934795366266237160252350312868186930578068695344526735770137826092917859241652954920802073409602421114643111828456949642528147459919413724510317381521262118691403291886061355937652054557927545921377890825497045879271829403105434924700244095442264016966920551528366206271900508771191599077717467669791585739994955994507454976817508570062136022107032045823982492731823228498426940136474346347085682101071693951929258063009142879172217424917319757707266293233811331296726235094151667695422547850782439464648160066043637586779076638729083005258936227894569462359599246805218225067447572236128741605925309787088092184428162167807341371882023948295194184617347023455848809763226214051096138298254276025384815938439358620533157429853215729522195324459587714279144294800259028666869427128105141359183711833354723090747130203737462345500095019272991392852047340043705427025160486098780237138298293720136147459379943236602314177343457354652152601480550147446849218951546190833417161874203914846811870055268445830150203922110968891071509651233597199785481593426271055684839492669715172669650631487616343789690082728439961510209790730732033469545342012373828538877756043804455426066247003446961028586185044800659346499181329290877650420681427971878067676999112053888406528732257955410032759392241452028949833769110906760233530669497009282737586893765733663231763574851610060384892790643839274958455397227698924280201319465434584083157037360590126220574289054248810292391661814139396346829805517709390837902247879020919118351510085797545747180993492106028876178136640835886046320171357213590232796267107242003193903205284852878092173742167458100696409151547152862053112706687882328909543024931666165121768873817360469467389170541012176268226495869699473685629001349784163746789296207908460378860634138295935351543406484440393565786193944482681549523739648711467856362446626386276402396577618498746862680453108248645798266431248226043913381175053623277499200734793073263587154875423901348360999940549105377844649501590141842254024612452218033978767672432762902144563774997192152262168852796845904038759511086007196127597295115056338645843241607805153615376977203804684566673956488038671512787734574547783714068915926251208687726368649363864175853159482376444856376917905795066348608677959823655057785387928737232367008907143589115609933821878786547967682325796335218792498569288559939300717015894502922905654500755684521096564210728918883744760632619454829821715613067958764820662550732918896917542067860941829519351515042136474289895950648474539388261123118068670305674901951036049911002515310436041805804371009472495535269909219207750455511766323327438659008393256460444676506055206668410089020615789853298327645265385285091772403631258327232247445343170482977463222496768392457013342541696941292374303849638874080021614022385718530107647522259137274495093728505187487996836186115652043478289588169930675407184213803092598568429290340393879082618623594629537509012967347122974339385422015347731863202468350963459072503047075820332882518759257436851912679892132862366785212979776374170263089033121651680765463359673368538337829958628934025496189925546728942358399595826624885448275368337653012898410013497711077812478037147838693363622795780347808858668420851730900755042866670199343387626691982915772791238063559422274177353735183833966162318654634674926823847497358156754294580539269766110265391165853784562589460529567949220070858321915277078271639471167926968542706883961342417752040928810374417100874458588143597685934018087248889297310902579796888306803821277774110125826203411962663452881653376936966754800112729547239001052942226581037184916205698525585470527048516347264604611382684760402857408420619325362120213193472972577118563345467319402413885528814240681616787393776979299353937300881144190132038179282294059492452048507339062749572814942406295907010121465332967988968868318680044389750309232540141002445837883837575553876415486644747121694843479341059133590456579824423021862463050679644347318080714220747619065777814826630868840313819889169362030885870641626534090720853772823815838243916620603886884660743450977268968974420739748567790705445154826826878620313313173988589750018942836729519007151667112425506323438585850390492203293722440097576685658479063833659585410351892748046806030296370672187285949486704117744677669811150908172704787625658576996096528536481275774652746109855599718001924186201523289741120365490687818836068169973855129204557114276144753723615156140291929797500872191888741532921212964767410325546178066667877642493178515922673924336342276020672647858997642041921003781634204464939779446083931782050050936134136806668385891553652700580408232764394156118149814869323301784907452758925246185497916648737990325931887691976071938947272868790934909345173334817453218997121041029626389879742395334958119518942608242183142904062970282478162153236454657357048434440248686377073012741077127352296752787838720151768960634579259541628627130446738580941776304783389218817061538059648907691296250930661317668834712746993063027379795116798533988345034238498773637008583697765113429009214965470684261123480650393681334697544936832424753057882032191036458998099671996920372477652830534708895673165354206104971898150420798373285800020026938021249878664729507229055585364515380121957689741360785598377131124609559894132585319990895285867821646832362822129607446025936782589883495903570204855909387116903912964152410725544370310412815920579494064770053770465265650352010902341964306870485172753121992634490895824627132150194562240243457868226973009700917268065000662499276727674332596881323030559617042657435337732625800169869635994945031024227447186198818802512226738046605509281850265782509117549164496301127762681731504735239838499716182517434958840176181612436616309900871815556801122016632335988009921324244192750417475166655082314082739010650760051572167611048079766945244221625329917120666884715010929429981449958147855219509933170031592207726972764986798820783408360219896466584827744697556972587933920854830324710119591402225398889845676465618317737729841316014658047313680619596986572377669056715394183175824505064282685300156549984341679940771034876157919502190688858751442089655567645854924638182299690845396459766034910031963311123496596370828329543797129722047879515690885446716962926836596667457447722160035460627836914203275264018354274061535258536938459251156657420549091134033796169452273010206011185646568707644657060486705516762905240279890997828206080498844557661241665903215672543914891537041588667054930498295695125372105621731620844022996834466290293580676931415508766273509254204139697358555109607396692932224712425489629985779521081862671523562196023059551444774406059419249465009439002844942934675142416558425593418867856401650614980624528398680392649660129242119529580433661915293760868298470168215256519521510444296442183098075005067373182139921783997146700591780173159250359988353606338109824842648013337937047965232639769927329267889143063972874983653260249455675412221278206206136386740216058987217649677485762415007842329482404515218175207101066939695545057383729533041292079266983385903689162122633203674162685163765789945392739440037961163103728376604385639361784784114670874173712015022023237989693392849588374214156465449207505186262013509905954640067249296162811567781611439264662702163549379647735371739729726079746390933095967439563536797417424801364303838571462798377449499077361339983395727520522529730777964179495183927389783955329209990283427030217122615107544196360525155726987191036996695413054528197621473465330933852564489653242439248351509895403184044448647414922292055869379711190376492059430225579399075344981863558364256139922109645442188103075918514002617329574784075016884977101464076544567615682849264503644793270746029040674798196149132624321295158222957875255164317391325214277384432329588495158926170121907905754710079161128835918182150663368265859622094095770743837837557607209633273790239866000526693056669774602408537652658522019916626206894468197939593633946161128322899545337787645532277255070088957990427589012977780397946806203393928439322261147752442951241703845953084174918389229797488439508838446622865454723729846782433765363142380213214919990057782347202398119891941455177277862596078437130851375244768934278550076026934107766496535126592952016876465811216459971565963953200576130623418372575580164282342647168411020055956956597371404489165426542837083825662499350123814516525486381237051846406488109454021716491633391505671204012837434800809028450633957189548926148215196711596853349484213686669089137107130046037985016085730782882895832239634280850090231858675333775054350551874024471527641923434843576563066691470410884842888744251906023432279063627015573184353790429034099355874144445342815192208047790765309090066434394130948409624754601979734226496934223761865865331371138027955997292551744946226959889800760746130979337079075138015692973905992018900748986133799407247581590059511499955940976449493225188969297418457825884754047350179652512700387502451219712947028243073064980726621270028573988210663677730961655338158086809961594370507813150405192271948539168371632415886149964699935448226941304412880361541561673008879543227496204921782732231291793332368264496800280399248936141174156156762707529521503148439805336539947388401901907949860895732467405803769152268753041552599954378130015216627094975296429454733198328110677208138336867979875777721120092864276873468910823625493280498705826129854559129529175269340459102957654962179193082973773326347623092774895716486263587853971679413092714023053149289767551066482746756109356459627797078356136463537099325949055863118750551620064958318445835462406687250637607122657000422705955546297126847630458301039524359822210812013534668394629543613825627718264961667094597666445705505287092316419048624255324814402896146836351762729757262073665397159919020826174471363083668517676902828074282319531912190245422579114678622525577800682975829304567860362312279927128312824876724713703113593698465975696497165891056240384638883897238427353111349163159203240046450410335575201585515831327348506031506467553863370735794704766462833127978803629294468477806020703188145506544714224120243554307317586210865231808194956421150393884569209875386501048238018438829797181332361286108958726543315411079850747757326708571063966524836502643103310946127469814853059786549270585711658718808060828814044020564202086498378860300298951562519963605882816275388030106592221553421317921540028166785078582899058887152465771057613046779731902580300625033616479432900071421419342733022794385699474430028605994075558684262347044665120444496047295846506684544105153567325971793635123186603130665625521396076109319332161579908727633001580214950181554396467196257936479529662597176583002066120036138148916190756687794574195905017894898714136139499670509689552185906826794048801526647425369657206377911657681398641549001265060240518783238032156997322909503440733834408438392208288974422142453456674964068048997351736893484339468652584635593550408204037543396974070763871562051482115999512634026419765152181240054694431118587321357558959496732797160378830025003294287063152535536674573471258144208256573635518806066962720223580016171325505598638693278700064975510420379671493828280489770527459367512614253812509021252714855612725254238944689786135468351819982732236970382055307607815101814259847597096631394751032556273593904157815860916146212018757088836088889160313202868742601990171790498341528411775714158921185114789370030417330149435650603882757291427074341680518649358894038576876695298856893621953908808926065833603897174803527721182021649898709280679692030779078144651802939399405128400286795434645485650587657607647610666616376652270681842945148026740446043097236067084942701519655091138956063465658165686053983036822694085193009264468109951622332061690876096446108015194934337984493041650309097134602205653594872699482729417531267762650280232952369006255370579996137477774572187269326232397100295522568917876571853309302237668604984315861678391226146904927787430532230590014286911572200204424514987239524310503248374679894578789264016596244363658983734565903435502137262085914789911417777451134517500006526626671886526181626773334455775541803503949390946756770443547496416922180385777908373018943754570728842945703621546489507788598188648490990272957302150903824851872946984133940327929010963840494001938249011266746856318768744782532354463519225458950779576118659110593211370480748277091498545532814055091380677437452349444643342332186077898238524986629276219756182497066144982424620950878177574625815632760206886058268578921205543705768774327195538521180261182522204320768200144311474690985581599801660233199988831363394870412995640664298620864337510424107536690728817880889476001044618819388141784307748559097678791572932175996980802431177856077769855417897530604614346969810161954362117617291642617210982350330698054242277082422958525843915914735972755875772404694948248537241167140825047070387526604354485666211397565597471515631786537444916759938294326959611860203131384550012015583276869737769461042411530355832619163716374840043303959172019626607772569834588749177922262278190589675338620131284167845918321755847724233322764707505194540675862386732863401668130583544335755011546269814198612613186392033805451293673509018281291533771619553688882669843926165276810770681875060401198159082793844629141840689566946529331022091144422811711791913703444579430186286640994337494506628279564609968134600462919884473918222387063668764559362493568465278342367383569243708205581207830339914982462952249491242743608100559312580197923883959495934332139849548573988119868009341153419893858382875594130181989943219877733346005649842953777313647793837115845473851662795801151758417659490276693882659071681286847238103032088071807578444334141464017622217362054807375957194945316119849467730414873135735422264783270175301423024273419485111815019475452080184984880255859154496189814877179892848358594142758747914124884795521055472178015518075581062902066010692799929137855980356303026520050416589367913127976349143702573884527532852019338870507527652687389353471708156329511406763771417511658967308811536738810527148072402058576341867489283697878580052087678057047979479819235701175790700064107165379891892586479034756191460384766311415448271162619018812606232355703685827188877630193873200739986332792622315633641254069199970468779988686272999762940454680497716976820719260635442177570240031030179590347388973920337244163178725743179575862872370635795188671465482755734282186628934841198714967411668792110793095352200551803957516083246110296252365351849663947009184865712989632538843874973621036139790980100814279870779050589383657773084821722616544890838780366191788059856457182555136834334854814861672018944814907017774067914708147454476924096977705956746909836995947493021821165185211275700830269572540484622821447443851136068815755686422061528800372025037245055269246295053042309585145520606415334283502836371411107121663620791934509131084355389587656291079293246841211658305317038465537032581519743393347716585591239793796900128150799201632428769017973970995497742838717115254730895868606932105867599093722151548508012135812138182394406350981086557957856675347881043958156795579186714232672549662594356207704249584334589916755397420592227075763574038047745880963069987597533567539968365325221062769292816979299628854449642363053129132728374566194027690361590096411351532781068733448609517860228677926106913682375748082983393625157755561784223902160645119646691842808129132905800318305530091431062781543540336601739361831843456825078886765535034574531829336435123133558769075390105502189546446068027282568405195792155675296351845187442465188435705322788764300119978506189890289695186403232215391794888766186108089716273945860668814191561349697330558338337818316639711844231402913010109461522788586549633188489823210087008347281004377241699002901771612073559433067675317419304973683202453942335294132176014362653705487303482738497291418066342736662922677501500078158338070101610129793381292027153086636762254664328966987564095110566594679923176584639667433344418269129670068064828211549765825322216186146633859955173155739137879000738428204198243831478121624675879699616299006541662978848669559253913555848487234144907826417530160069632940659962134018409365287353831717947655345595653048795833702896979381120521234156819614017934786557283203449588676342934580884022377323387529304806360669644076619796613857673979296979967634321186678232524926616375835303155203329110878534468575665351199806140525650816875646763272706299734522551240966021729237089916348198694123754723854908955543539522800404012646606368503792321183344312118842162060673047555180212762307250561193972876687482298348777602641237345054302565063931063962731134447314691737794354030824115641562801140644570979887957059977346072873519602058904720278565985704735305336807140947123919069897216728023457108276956736475346883411393823868914880401421891182031670797135775919997244759553744703081143028301007606156260388245466945697700503515455686731356673928589546242528006751673051454424156033291273063963350406411506547166124409066344269899505992414236079363911518928008113347108618041911660640971429804095057235101133904957691771582253776469755429995127450374581554446049810868145188023548475498361919933153544191268975608527463288612656948027213703322273207798553843051961598025197613529766257641734344114099002494540239382984991751147032326637829772159491155337511229241040903332428491560799981822476239868358394939019639708143569237370677025248805015069495167936705553074475701682712069353685963629540176331279623260431652708555205764811785249971200111277595470655830874076723045886752115742566966442756398032035491996345266676134653712915085231491814634321012061450870665508883716182975649801888427225713829256905341306382249549398248630680008404656107606595212869931901545730373121818801229342666572150303015915680650198321690872506130749599873352134428808083907656968794839907935797410501647313466435906050126105408023385648780719897715845397830479965293838610564749359224394202678381534478799520452119827354247333498109850852233591128605529619170261384363337082019570541252830388312709783854637313398456225116507100112327985351306573161318784642674241629886717973114535362511190077316085334056790557128761691486996731479178362905650571673075404314018852154780616909355693861226229623935785385927716315399802000865572165112559255079930917263725391402324745142980334272991099161683384554558827777388500157831690379405433869237817180178107181333488696504346982612120442754053030140564676835452295435103398801038287276944249755523726277938837595590238244325931961223835382572757435706755029033823736812835988316963574883566638216893305584241279502037590691736553599267299939419582751801743730199876349481137888009085235316937141168154360126038140095038715576857430239562354686645819465642643406537013591022383177102129217180191588598167832571611317915122596111988394909774581976526416861490095174672076309125796566839071639333278228127285810124489340662024302917864236465198626286016999405237832969614837121172488900444665410424136618480534596713350240892586537330107893819328832455826981835735277567475641342945913446431019511547577954435999822300562297609152476585005722041802302268681431515515155116119773728224758513778754834167838350185920956215327671777612209089414486215604057157937793821849899575131746862759028862732372239095569848033465853620069778647283392428407954190872941653589365301668633187508064958067557747404737153796943813352872547893669911664860181796644631853603344060007694951250534485455413542289289137957499111644813997030998434506025646991346501171856635018720193413927910902134944248466498746178526423240362838294800002110898437362306103653285452474006728278903610294367604935341044997225427390900330490033537802088417356796992342204728592730192292969178163300451611799241061892403382472499318868482410539442714574596794108710626796615874364033020014804516699943616441772264581728863671856034485718039959087252820428141275046499340829379497698744521271956910381923686987636394206963014873283399974939870417218965957850616641046167012306810350653311210521188817893185479044481659220564762573220990450533815456876994520140968991263495226231586459128150015073331047146085167959392905513799406421618755024061129391076835008778456913345166092240940172300914644147201192344937854527654999959546530441559865153257976244009882036710117311047971058594505635931410174709643138699791534536579995866710395481038385847943796576177824682361359205436198048685149310736240449282460399832940605900554588260501103049364856784558257575883719949566120676779350453753488033091533213807580046695701002903027612903763869892552925993560999135576094480195704046307705163036986763374778753960758395585891667603938634131883141939014626961686117615663389585671726272265248106603071567469557904748533942706836381978097660470284668577903380398062816970049074096024732250059195896497109755455426355907614885589592504624001058322021584549217646024450887583222001836742154322568456357730156806897215784488500930382731348165379906817571516311168955940604303435514913687157247244425475688502946101657783619648335772082599351748774500546783903175548663933224746717286451487407771927914153736905496573301504688684156706868261284104950072359938326788123666450928946793363984049270255803193169513156173006425898834276095465797615920376428404881824590362678519500653234537898675986744311546128068218111375711537411829301773439535886091423642178059014409811565771845899140252617852652734148203448787618988956700339323768855251652482779985731441447925026986056508161301808439683072638367098624406547668121184428816755008638085933621450415938666757714680529441060821336292146715516812643348725043608673366304839407955581818545806928066580940913341414624287123057513324751321634278900304120671266417793635796371619894732874664877344985548264342120960317398556092402424220703589399963606611955550444360356630555328187685895799656922555805753352316232798442547362828211858227657697216545220333537974685740665367906397041310959260227692017097270935866940057176902069867595008648209700635715523839096294557447013257714938841089548034424915285291500813417111630995795946558027984316521758487151876711346941444804756029072717584082752490306392710118332100152446958808662243821995790058618019029010089590932128494472251874038363524429340920509656887418497046883299138581212570304845768407219122504520632700260023302681498330500548487563708396457429051788628009858561771218143230026086386060989058787524003700373289084922708336594101882825767439921204620001863156065468128907589155423394826172267872666363259723757970379094837550867226415090583644738873283061885961779453182380154972054680565189657933622944311591072578998321078010266835526274748216971121966213000034406215455680040830594437673925215580698450606802171831769817831100423575744611903959705533191520208976266450476753104798081917657899322577005546999932771297521360538544840045096140271011868272775604687679128234118261645544788002389024070608099979579721580897064659907259887709557975982149623703391825147548700807902465522915564240262797023215620195112384173564001955954552533317345865456464634777895336002333340868457604338900409884584590718566660578594425971642826926254945826403758588139030976679231957488490768521174969778295008461458707312558603346800250992310362109713554976740002135894686765969748145041567507306580109911234857797400233177069488355617578305653852466224730064117116615390685931987984034239143380774089435544471737000225396064932686171138000436071496711033660576710414328252970558286379976308443399238731260136263506973849845826880900872694046280647470499871352762039157198276909619682276605666944211240942825262431224354001965932565151410259717060662464326142994834897057836106399634051943752005261300358066265628454009360248970285741647848398557825253762957508181471495687195512194861905200946928874705097811963190993736140528103575943283378563390706984738540389509970488797800091766456831068152115604394623208292477484357614350820830669520486100697548760895769789679940428101335331256411248214820541767998717791144155799753255497342378453411655580790948110288925752220892877426894754762917933366890370342544438502750312874623664276465327068393653470046890786964892190819057259103986185005984179367988856976260006560383809684035588852093281536754087528133561257149435365625861153072191497114073089708898190493163778854846692811148431264325814174004452805586359506609678273162322459735954976100960544038956040523524991901526487477213946390478312217993765136922879461463529056770580271504864899713709068441876934408899703520319237636803122382371680420787671011310950540943617770298426359397528343553696174545318764566787104038352808393803649796157292296010951462692296490004881109008068371651682267226744615878337111505288523031573083481675163456198379530644814435412855785284974407310739925747600124739802392803830491738751610978605752220091909962436160893053454202485112072331281130057758511428803286132736756665376727104605350801353203845999254362688234510138666500921124782459769726739876427133133106223670526475908226581225313474568381671205684745729791503679375600983971206861084582729525643457839622816558438452277329743505870709138976291527054003252390737390957102129195736403001535369422947152021319754505835184361200927777256448235966800203081040997646546099753453882173012901811444478920386076709089056883646753118995701859569800658717806075442987166528873666219755532521084214707484506192384581359821919966765918012594948428624423017277006234313986081306184284359445878652687919058277667390804688500812336589261469479531532640511535956926761003212832910741860402955368110158434413093975476782864078916834984579963480458682036025353619732542450563800871616238698954272281087177226634004060815196755862276629321015008924572947642117012153524194116595377995996447740057336699220755022618905175861967709730693892464615510659645937908126737777313293248129375250643399115386174749689465085011488778040064805293524937694062925116691311769193632147217134765264130117385987822518549189121781576124129980613025839030126932873292423428762963500833166750144435884296200027678304794468141030588677054667979736167449789429621831109385507071728819286225030376142323980374750771374104294495938176368606083491843894229772282816291962530085967093445352412280168408936288382427891868966877790316048659772788788179726955753107129534634294329960739762440748367006965231285373885837473721473444282231724496638283753335199497130998964047259150119250619938202331641323140046673805830156011170813283912954538475903491278256746544597462359786664134245217946240441652044049182272550138206843366071459663963627423701845682548151582104596884021232001227309451772428144582504420399949137948769168181854868950060441832660936159697877342304242398593140207571185207266081739410937219990096386168127347707269435613653762802972362151871141631757058591084110271413804717641273262416117249769818180001781040626203737029675277264789468042985256778007406427936213749438220872840278504561647661344199253318349370798936871589190463566889446680018312495104852612649636919120852720822314828403903677619772418204143529346782039035311633732359220523942935895922811970218055661268802607030727565581130285898486558924054944269555501635158303877180642199244127105775965709862951119023735921769624341829902646206756303507267807459959206987515349481047959065215699528650357286360458778826412894324000969027942988083521168825425934588058853884423205886618942741671787166841373706890686079106368446231743679019540665549263331657933759721639434776843731703537154738277648306359747484451010274416407982755111132277552421819323431642479921471410724015328426671447085212923946987425326562887299002749587261803323113592672888556686558999567971133916118178279019000610319033830722821004927049396515523679643403586129474443468994818142306754750099155172618942554577703552073615759085067026273567862773780889455773315485108822675299362036417640959407791383293118559396570317233520937071822403143835660825628868997853180009582756664277211338988432306302729083743449688674401417513361483218553941648004665245307048126283994192836435387021793153406702035786090899199050904982925037875889318478954828375525394342528493796046394975096929346411405245034819719122952431524594043073604633137326044492542722279163422768577030939754626700489534034807258894291484099548294669124519151527752238908027845207987922218047123147220513044340093488205664498874458472310268157172814115093502339293496777687422594744143956194417444370098774597880183505835023182805584711175619915311439367114882201611687078885252082722188234673433920412399516491475570841811454145932342499299511769211332609657814915824220443058960015324328873433278831215367266750498392475338485357410812857935402491339360306995329821862002242297356699220343335821305755152530185378720333857752025945629293241701999764518528532444009884490515289413961784027868550339476679454854366167656258430268266428443445372002188828261406355097460784799316614393713205356862493621650996263450935752379121066892128339941919161594799736096422510373452349094470564641126199860597790241465406699743103828938548861731148512510813786188823060263150822619275385860988787860676019558110839585278759596121000141603479503055161225433076423408235375358782863911805596797383714132771322399120205528523436288968469661491774513715762584961408116503613100443564901303513076931236500523433730897764238987757855945906837417608265373364194770136869351288712792669128860088627244352366636861105774722746838342123941375899326177255579602174617138660271496345696854564747189350669434727339100326482007770088251978219077132457411177020256133662139551135883760805405761975869952727269854507073182677711315759677599269022821177254304032418592075420179186625430978038213409811539297962730903613986804171080918103959906761844190613286866078080973677941281570570524997168286210558468851889690137019141474904139839820727868353637449989374629256673379348301833093354280388596204786973437188450621613144531849634839534355961045904779455868992183609299956264257951374216927651938810522032525241724221348304264475853717735514592007814816441037221789794685386273007272355510793053252485994565116228772692293921884710610498037775504188075732737799654523125501553346121476281863081298637042303410349049954941334526941047060707701530653859573083702085257484456698330237613146277435432365106379717898198790055015878510457447745731847733423309308609945001370232518464293611709350829507451922987391908699733908750488448692438927800417836175132599350074923393563194334372074776777432288885265086696919020968166882118928898753475502845950744967769100702650223248852290416854077602431010559524245181262763850933667463235638297471304313927686559080729635180117886323692618682879062072804163183076329548080227745312260171946461562924950401949322193781862042793390578807448494089536406852948475733487095607340128477148396580005615051081558465219157087828019648527331536952435776552951432490561025748906845878334133448247592530557696538093649873269410189747515706100476271124726224047927861686934584012775467123222542543007218887755887225492967366481655951350399754029587460751799883272110324826701277912768718031504196583721455300360046111575723346718989608600815151141536597886972641278934262542974448211489019468166187797354787047504423092055725307807263921037880589295353712673845548165255738507800102203460094730938538966857702817909573204769938985377804850542507035299497825199070406954883812216198206972690656416459429536330962715196488537429897423842945674064995433000030819068477505602123468561924267275103823420482944305963523717717681029142784197765111164464724428912710047725784904319452514407055665454839518155568940136440207421772143584807087984965888755227830342204572317603581448918627815840983443114979525590467952338036653276670693659970584846002070309884728500271342661173689657133734053184456939374203096895129388707695145909304207438881653134602311430221309820391635402295473559447952932725068697127336342835551869120707782134892509179629274357547159416889786552927087434915390563259281215712799070092790632935920912434285436674540780431341928902650008189322953228917484392652698844091408475792510853196932907599355616713475582895844070903227184981828918820688685956912886927256799214622599539907626599848690755899489096190120652792677875225789698251956219475562712706051802448797032159845274472332100794039960686756803595257786982230971093338255544017425395270537343217751376916824850721217122179787072623152478276985329958331196871076488940729283742106825778783751007545747300908525789088745946198216220346858841808638517599559618940902528591636479119900227319948756790631837606617918022208935891167450666449107892595049224239919670299150979752126563993678179787309211626454382221843889118535936571333072378992245085729450296469964772400681576853311844109815556236360629397703575087173621422568382344030386588146524767337142308676423811846149436807138615040530892436117786875572545962873416983049260184777749462812226891349727571966245718005235228164101491635089375501523168234248752879619200714644860061844643789238682173585818542485835752719705758142919815372655154097599426006629851771980634295747107228392051916584402920584470187615386539833459687404802471367768877292176189174244339723121381396380464320001316720885653755544498726200071014675096322204503262447001802351931416722564254347294643463007496019432415898989611613077136370565147826950980716282065173904515854155320360561550479739720154926008182122953379649886166455593929737571096392194166765448486127131747035335045938002642018006172569238986171041385846863495949452260203720578222283804413176014550933658358062556018149625916136783697381269400200122571703702264041060792806422186540875961337113514919049309861133045065402331695909437317616928400861861027889749274932990848407877891812219963971843128001264113430098083810453256223221488751112464802953677575537715858517707629125787867261188077524984906116005915449857940088248837798962926881250481964451787134786474216848792939411619439284778887086532742264730172291751387887722777816692711475810878231682946335105357538516444137401564166197221828119020446251036256003761044962706975320092144756786509511718943410979633347278628728002290354934362585355806201640867693249993868376372846328726056892601633341025807099677409365761752276295805682841027522074942718105195071440269044651300533024483535751474367516131545253662820675810315618934555578443834101072295755578355147370055785855768635801044950763306698758061208404041246546247415396116458386676655999276522952684854016349747993943850007865263221398307180028324748397404779184140842408334025561650457752726547465384796878966062911708034897432487347840427502835758829589083124656755531807436311823634133754304868608451229583395584986544378991695063635825629765857602371192850844045468801472435921683698809105084645909595911825104157492936685211485940119510996573569749459298795134211858495182128249468228217706439026050398881392277038377785213203764265868623445852829108903049320908467945304184840835894225318082315289169299190783878316017251808839912863505344238299190936541015352825669846301099798573625609227871733237024674295929878937960213495852956011409306620593203391184259498194143896189579447212648156351891356172606374643042748069420689227288012882955226266458723122560586944201796389573288419484762872535712203621767680792962303274608891023855441946992979411197803658744932802775793461487155710400245424764551855404653978781728074409713359153055939445413877422338881998664240994390297176429520701590252444177238426279792207677423577251102465189500726159100842383444539515863907265379048382978123954419425548622156061026208764987543461696185770822477144909312085172171664719341684321661832845581720896101239682483088705913768069742790050310576130064647994490127888652391663217564457771330451406949584866822004394183702931258389680146705442966186430307908970298428589804522592415155030730344275236054612453880925915920373883790130739767493102671743208469626459636761973180106350584175194719547931912758230076321545805894482574546546617852539702505890068570836987982840886160114775657741299770303880763474696171761959292997454577795326095946271148938032466771962530385609962862493989719611515258756988496157632378383798818541252202682248602308589166057238054979171510235959772674209286036128775617923950795949517433053177697210272233430591592236991653784943329332964755763155996845937271022549646716019291422337807940519013418631273600606040052818257677247522811886754749374696332415608352136441563145520569332000735697637715279298454934749450094696396461648117962228692216722336445818322722622190238384440042682947152583224956523807702512257159460916375543144950446768936744314790209016121220478482309773076788752782114316887853643745738334638967941190825580395516630196416705074118772855833418916393329926375504808634540550647509075756810381441711049467817104361206710273144308435003414211940397356569689732880535678665652478963426306302718533423261642394511592179192299388274579595155453603802436625173710080624474742101692600285133082922664841746439668371968526897704357195413589545153824588016973818041857226547325790966493899797395659464382740225697229999486931684414373386944688089071980801069544132775564361775262931718049511504350273411240424140591335844394769337464900793492056310230091669047216394166331690010400829246433530564652679213426532575410877112782684543438939486768773845478406015129629630511949104184938579433471648065876233058378717601436668436167273708089702821976722979071347216888839030481679818054301900719590348602388304658247848854282547965979948082835901874459621527100852830366529194229988160986379148885360579550914774389506504364063935866709971141103413860696667365442433376861537310050577169739646892799821401953723163841277666765272318805347646471186255529441351647149384914810917562963248283149521215440720784868942025371326373449669351643902971723369144540943050992748547304036374467954470118778410784446671747108022861229113677763395012379656705358934064588804625873965659765191316093212143040188616791511276534287309729136175602346110474419228274195447931586883884127791883487525392278770132634612859423811176947178006281360239773051935270128065937063507082423825804242258147026588824105866782804113736906956476150121593517605854256576851971681267854522660684054131706869106452159163064832502275402948063043806775642783636939035167648054183837510650332965427994472931343957063795461027690104531001331344466789538410153015998660148246624833714003107363736405488617481461707309210196031001589736812243900092492068842112653454786473034987280444718050299320011333780893020455041951387976150230518060006996973690570105011645253946990252431244076222325450325889339639431266426280669233800686887527200740357537623710073608985266254202421526021248813784343522436201677047485095746484146544384177573839996877292560712044527234074996229472450684356148411502259227084457704130896135707570604479451480173535361074742587224727165760035695970355379956843369811502206969713939252025097045994146152808844074820447274452379965673228300506986899406127209681688493346384506942116208568437638768959187332775481313813408037310873171349662597835264677971035010476563915280339752998289923515759584356248712064965884362238933694344219764656735062290373956002096901941876694178917542772868555687872794172813634774012528067779871435232112695494322071043995381877411108359603052835610153270605386793488709429463123460154258555771509933508332454974395900508209501478738439164595381962026667282492444346967364890626976208565579458374469850489595654897185810056067065125839582092525788407710001294010377775792837096050047606996600498413463518105347977459333714835159028642925088677721081667472245341942873005461942728591049751030580956536866190809910691334995994481592766790575820075748147822208183961378199304808669805601447946436225366129815218089653419895553409223090100296687828784486176147457896221349639794305034340269442026740546883031020700367141258672458352889022405334158143850501418751502400295049614039228454677031336884402402498042098112869467408671259005901013309755778204849783786148868981399967622450398050608537631981643676489051542910506929166319872421628323793251110980844335376830987013717894961408994240886336025187245974098709374570645462064713585687606765580039748950953333653011640466580159369112153996398263692018939890145327001846671324433507695545546546671751006792837593478287779632959731035501432207658257587417277016494425666884032016608377190185864017685244644984445367760302007084729315111437026879008474873743681808593381286593170518257453938895716127677182502526962220797609866084407077090782521647846118563279303791187924632247803331724246884050669008076100154534311629846734417307698250599346727051663648387559948559286902725617628261855904816284524293853315658795376873124028340131060895507599862255154520692144737023384575067623389525830692113962311781918587241967707077327951988409185309948596045100552793469154024601372217013346978801813461499164188642734676409572379682885314085107778222336065622902839308874123582300489101235154798000575571887293380538457499411442457255028200809019295450542437064123459676447074730322856373648230596798566273157876443375879236076322843307001533200803246940498467235387891391610708177001868117488058465402730923852426964976699283403234669847956372037783700487056557665555155085266832628411960228857095657460249620055017352567206765020747935701386168739224585248705950134164060058519090132652311112442672440070789003205448615684792306927460496072948810659420459103364690085494117250958062890219792628278283577393078361053316712115075756572464907283018432392790979099071320800835528450408551568702484491327773014532191313218394637178204197404805521629296846205362952191409694976569398124005236319642563106880136652275723483816733246691038295545969681172898930059520393870833444491254055956626726507220363489391633198437432495552579278385816973036816359038440128934246410521663441066566194045333167431008794346920963409738433525700197601619091302905571645169542986307367535020425479471373041643606683698534310590038305629275816663408732506179963754807164884918256723894221816044700962886444655644434877993849625636308023698624596865174320721680767682539344026709358931395656791856824328627758630728225381489995691116043060903678481249091140921522907532303178107968467843462737537901492056337142035612786529399806167287287845854844806772043755935678360897413915270210187063391226350804892153383989138640535210534335564618996878187866707085226415412549372946932809529900955119964026566920112396968396468358647794223035464234759108627940170267966208107349034776690290026138921282004496633390276899766398027381297201456174770195878645023511995345298447869548207371377181397493711935321699828340877465674509060119553118891346082421489148188059986902117001757219047548387755210403959707788771531920492829463563750719663692441277664356894590873236940092793028973861850876409111889992170222943904113440913339927574263633698016275664687828321627906226703512594472135754786595869698309692405467176002022993369451240434278439685337315301275634378223992701297976210363267525527915523586497740513340234732987160980528671122941994388144809521628899040121808009005318522184430605272870656729357594673320833203621445330764052038420457683776298803103973256443064837068434923262980492489908531570034768007999616416734890848746675332606345211823133021932382712980309512861935184955274417113094049822361117096828831421962181343094024650476938468816654044119762031181686565494215425521190686216526931160314772823145093166104805261111848754906540873462174252012491406689589719715198106623820979070884045205366884842010041694169591798361992036910877572903627519579039952114913362247170603299533973966267272705545880053438315541172018483269845336118453155029929264055927042759920185088063332342631550510294114452227526129503343709873132621097673588304683899370343380802974817481029551433405830360459657342553561176610957609839837549288472992525241166015687218238003177321434749975623818808486758883017587521761297469904472021100837902186285279715987212997496215508291538727225615894968646191580970804311576016834543454294924603652452420313588206888784602873470850562464836563204177428587536755494699897827924715750441657176855522800113255308014391481554251384434928647526381082111621096356116592672422906786133912508285552289635785310988432876401456252720259263728838535093013222602305472724009535348009083448652056655751529169394270980374573873305665801505611842202727978662965425883387047079945714507639696440664811840034317268964648143610269679460431206094078551391731583875607790875377164591749986680096962571538967692996885910307295940791428015210423027211883160700050271895112871144074314496960467150544163413591783941485724480786045633795979862169726926903219418728796626410451945315641677433555668335082990752027843199345412210600172354678175281418944388763718994389076815056200633547978968255390959677910230718174802934256600532995205574126976171748523346861829504074495139654536023906815896019673991826344913324309554717193609915863029560896519541547757652364001773679415157883881816173026618433282432750407034622817291324851612809593729576119622058695062032760942264284058640618640583572869808258457992853536198529635394308743110427404469961079621697705927000102601279588763812242524955759608578673340737330790347781782395356038764343690759978123549159653826567885827647286011877649297293232711385879923317708112181477513697294753315335493719077451312485795103561196608814809465007920471010833389354071048904866514126652519464506283848352998144670259142350806651425439878053732879874773719734865672148923068797244122348758353536679987621871332461005107852462510588093788213364852529013166069893500807090113478128083471819839063261061328286089695349872937930350519236800483996712051807096091093197368775841133960156829202098569817520730829345442269767105482817618934520660905718369166645095738414739730888117752746890867085885810506541242526285727262664523623520455483838291036684647734589560659573161219528863659688449167000154339115367274501702877087581946884393765612117121892676107257176013816627596279839768840861951764668203434822945496726516543951230395664266938812351327239000011383131016760711536961614092259270872221183484158124447710978850568364334617931951704882561159122138507742759246854739959674093805617894470784577603067887069712071473444670281047375519857152790615813704876406540146889321508228906494466234310025564238819393280912700160976465871084004438677203360318095775901638857124527519442655017742465784161980957672413101917626202198528936802517887025717099315871159085994870493235448665047789857367902293369711795421263915227809724351509180077229548769680890581530995045094197683476672889075011254520334838714349900264808719808277448189233922892311806452111590532509625912684677791195840415167592107207737171263998348317446374877954331632712903283044451124197947702917831432313431375829436369371728900500835757408457052779815087149211497798144867444842691837184725908496917231714057366263356937924650543092910357606891671845392827207016184148097338276563689674209340314459514157129561177633458372794381981289245217949632807276877649795067218957289037225886610012247955619095618226414768422730146271530523118204175417534975238090464209767517613963572995118121443029684872820636328258038668068905519627677740894425474003738223364619320278249727525827919733990361310775888942995702015067249047007252941595123753702557460070215821131026352046699983779166715543162597548433889037747075433678345207100760712942865794500981898936453279720805059646570798846913579585884955117028430012966259340067819292090742918959692254302854839289829237844324521294300697352338221412552098459427198427575345679438209046306232878398370478186377441725873720445140439457024380685185264895060659912096682243250786150418732422714701239856073892241964924458759980916303562546143579824136909104290713591199597335131871457857160544802501407413740198407446461794780791118039704876964283062143174779236765028587345333210788503232635575497972502433790926408670404599873374440056374552503021194818389527852765900801725254317142212704210325352735229817252911724902561247464464563572196518843120749762876069033584921571765952019449760657188028645227789263879175667757938965215941318222762497438775163951903163768858618622222335045790685608144353557127402953547774997137843561952949978208561042767715145991455306002632270370774317457425357645886858571455750539644429661127961742607397201659728931759876054571140314391126927437024593394553589376398298209142497499151716622254217090141877026803707275472802166486661976811604200233696067984659617933696003568436866598120169049257801980567654409742296405179697929639409709874780222961405790248400609085103238134761337576855829477801961604768135522435707794922788174578686467461855763876318316020987784189989256438418815152418376920003539289843914073864462591933177641032103233194529062643924076518320661543524935305656394159103454609323157801643561691654258925159878604142442806171221865238797919622142520009669837724519415395125708298066008972767311402479312588835468907169398553620761550125401977210851010909823121902618328682374684030673778198067844130016880473272891200232977424020700137249786546178395528594123454053355775618785473086475399303633687753326418553521208636098029686439603778880173594370274644482210713464787482713110287491731132189107185517061368061248236908352573214151041266676318369633596271570209885359893239808871799978496755961167824683422385740192109262188595198600128487970487287037982305385628899045599736313110641512509792522194405527095781265358698630743065470195266410436500422079463927112513417282236352755798621688647514844858333615877241311196528791267063659687469916540163633709371516852615264893728490843579625223402638713198674243285686388965674191149288681957473048530401437477960967631800283803101911114593537892172218222635797659727648372779367922197211896938295643972128256737191892442546802926192710836934293407774150791976361731554672296673346186787765366312492272538496752304716817132858494038375166367476031950721587130676366642853591883579659947263486574959138002116928363668715941739541771390935183084035962739707276636349363379367482796749576811865531672210935529944816290212535123825784125722650274398190961216586978077984589197274153674109070618660579707098209009239028908908012659599030567839715055296790807742382059432414965651606466817797877409355580803996537568621315166374058394519810067275143293376141470473731089495284739371742497291300856822192038778511655902435555054845049288311143562756294869172682460081005961068002021346307549228916377838800771972624674122401252857702793128221583498974088760121389157901094109127328625550251648965474043589029647436690048359091731225440058746808318191547764805662851441953607094979687413411812182751771944829529203198551634537969462645290476196797917498905224141162647337884177188396941205226798451627950921007177617077700424745175503089632862090274889610944831921203904445147847577269536931303887962650541453624853703235422373820139523192821622974252336542005186900391665237408907185813650364926281992370684887069045399807425306709757860928403386785384211077318132384414369047853957843377615354510776757563417417593437844890362664276118421449164516969808693802358851961127010004100225920679428490352320874979151567038242713885237470331829861581355989793356346418762803906529839161075890226172488540009721016027122246608565482773553292974911938866315807863692101534710316950045120484272162473220732917726401214758236288071592072995821029385202151462927363431479232667467984126030182150289885047636833134007970068747876764228446507788231789026702038897821508390159418154750727247078924683889541611672978886808567097766889114011099014798318572380734596432431019063551193014988361384339382325656243453627643524094136542781306092983829245257717630355263961996920022133063931105105138864926535843754815444551431204121821986240114084947761124953510783471398394173060272358475694135405665138415070746088586860361656925721065215147837438617532881971153198102624757802531923940388819512623908509491622179313038910888294692101582623910164245562724385638656149156865075385145196512240095384593422093026360320481366948740178486303749725094387407051865595993694071151052026560956783451906578474102941463093901455196294634128909475237628102650806198554061420603673621166549335522619773329365860979801811155094114688174604077345935209503841002321782300610748662542460711226987648456472754482388963672055546278302707776163902378329896413292917419300518798351504793873277290508892808893481481262096772186625688157377815775313598047570405879552443214642258225477042220534032125149525117763040398077999115414043482467108250506341557866944977702112491372327971952409161817544048433838969133880007281690494636466182988185383936606477265100854054136120837666813987566814523151056998402107566893768112901504669202320290523963816560747260491661086546672383419708864133489245707536257604030082288754753452346097112824038326054832263002556079580163006920227907870691039363677427234267735285438824858841204189312302244863925999882434244684927405818743333931003672799093247032065733048880275202216624722272472883666451716727874953284933382892848806338256489869743864514645159184471245982927172305031984964581885603503577127920866663231174213780412668952564272371329728507575977697855710068378790493214016431460050096221327931031903081661446825490366511135007428794667708477105566378249304983963504232534995334051432797589772049916377523837295865207150483269149134750894906481526736417192464265663578050546787481689467163641738745053854438740482743043053629853960284318007910345040584761895930721230474998092036835515390508158571182281402951672991568910462369457270205895857231318953800593567596471170245353296983110384318515807575136075555593159426763223353264261472589369668203817596719393048248963744325023728113292170388918250759545765609684979959257037613839995109894780487219327004631857665426735662739565021842959885454413993147601715709688225181229038938769011757559186834515359463154710114868775310713013420831430630722441436531477394795499372998838121293001486412576180165390657337166382673599739394310657789796497581376029244954265455743266643259793188290368314090651241264817957101574887870980746478399137069618470692374541686969547408355611580860047802051582039092751725933518427877505181187910274205675900439437515117946864221748157506641629793048435076359839309556941875687894480639243188362492994500746672722412871266941580321537972936883533879455258731239261157999560133993364117607268983883098649583334303657375493442598649642197318697178860340524936127078669946663698066658443270513247151374763069086287240618455859784748378539471156467787420545824500431381980673606169364727058572515471741111786364699947751992018928168467605455608299007609031240253088750792183034336358270427828464907072915273863685387643652193930078979575058074945913707368926465563665011501291442782241256358175403467327400560928535499779111460194252867692971753786224222962861401931445369826248357477554661703465441908307234832636780461167462830033248760450129003815100676339604880139798429535034340869996109379193676068034903569401044531083409912215536729962621248968412037163495226792383627764972962000963322297530676287366958437094116752701614795343152202075773581294316747818142791140831056384374795826742045426593777420182162662531961694577543974127630391122924711762883041708213159517871930601551890807647819752637881845324509373660545744060952996339511267813046460418663702288750049036906486579955462113607768412424343824013770571353996114177296356727167617772925539861918391709087155650258032629300959269914540422765991302465788112706602650182718125227934198101443137016982131222898441296680008142939293651521374541712769262589625059885838303165737644893090755441720292886346387538520865167329337604764911962993160405310065514269754438254269654895527478378946002351097504157182955960433015546191631678675224296946119880159707311473556309998977190158185799133602049882551957220533857510764120109969400182827999326614077024119105326922123661030835899221947712973977239205978207467943321875187897752440287132750560750702659764637847223287881118656586494889133190284135027357193222459328959896220621713209224845326931328717328010651391143525954609849468731789988679126437310941057339031637143174892508370249752590747306933770752318529452567531911544285032688290189613318362797746328313964104420095744561548068895331846564777648962159921667555036071385138920524072287646338840988120379569973588868811015268781259918963297456748172714867370766137145155043181992214990607533706833957682317183861581531933149094523712616310570863728923193890700531145214591659259193491586881676219214774689771418202790139191419755062922669252813208108632542295235474968436441212030489866803985442233043451252814352161132613520376864068770193981774281406945374266121791439673594022088476721436706343933702114750111200593568014754656654625046692894642390156264852415759013977493429043076323567522374335452670571437754276091910599374500942943685750981728880116121626209762413395332544084474409676853097303738478121140917290692104835037283176304704330024815980516341642061012487705771383939560278503645996757460415326559901605773624623548157281977594894408915452047521159143846278920955958125637162372133203366393715749780034296055043786978241280919004148729244190342773366927953398259732072784805938054053665507362837589475706715265820450146082497570223692588568670293697424754294988942609383797585063412171152954757800888040688406022511455984816270973167257462192737257129677232384867189950272098358372389591198153080241325394852539279309650823065249314420151405616855431735691454127951570809581956251016448484356263248615199741916003479113876503809420296454087329642503398043094070825913972539087051056459540096817815721529044341566989140666693361703727852934300139910559221883982794591928432439664074829147126076908853685868954692332401067827301356918305400489044946563140954258080846735732378404379664287940869596482285204112244906534070867464498132916212899785178998314176944218881422690711363171507932444895168709515398621258917586196846425738096273575866231532509630091262107922346798463533119894743369206177309228822383229849799704945577241331508994187875186641447968295930978664669581697010041515765194219377688163098425976389137066719235725762219777432332195656738036354201274027345258271734035726113036931319172343523968996945157752104407958883529734895670368113064388809347719980772098088891723256520817453849075135320406474999483061701822039137721663220532824206243195091848068689604153819540640443560058254545540972675040712090275615028029418125140124006203410390415380581169828282220803201976309315751016876085648490790177781329902466342428417150205740739096685425876995982409408239374843230321953938716875109084106739370517880921074939220703304860179585299221961573598741770167482769154230243672171288795331096164157040854824233692172388905867227181815661048853237469096738924463711164938273713610334238265246475809010327009055318279829397929807205020154480040348677630124406320876642706577883659081573837090114673637561801301053188200291560160860676630902881011870948917313496926915244047499096530326570268405729462606077468856969295262397924206374352940380239754326471232720230749376439856453249231462288096258292087178083198631707276755610727614642570235644142464729281468609730275269877074175630118558144050757607652434925656651680905891649983438059058380989967373778514346389393554508597231420955009636667513214666967130780631862849265358128819905737661173292800695747438322947670489722193876421419291432916908274844144600041276538601326869445841433370502072981299087421316560282132033324219682621722297616443222209072775393278893741856861283639355935703103540549229509222748066180112013330190497454673921583452914685741229480807377852841487768351195095691667572702829198990398853199952950497674980075059660428459025615480434740800369659686798622287099892213711658779879718369288839192907112475662710376783465217734741798690547729512700788478545743871875939516853796514681922115437940507558290067352528222636405963436438175422396983728352929170856999648806422265053059876804537796336399648049723671757156436510745764554095664999316412653859466576792900544034731075549229849579614837474574976574923895415303856549901910860604645810610206210931492716768465690654342547195731871827051488517942503602431869739415803297406404648232351587980399285600877505594308512756559426090579043448280136638120162889529467143195532355633024024041006990639717233994936188035437298839231407975146159076598184990361323894839334319419004869831247266338066228889745662151128546281288739665648197880837302445861575746886176023101360870915689895508001649183215520903266272057166427434152871044686183165908547586521571716155949288588764705973059758862904565573566273955784115696588415792088124417344426075939224985936721429951045616972934514456499011928748793309153455268065369838001778217452052864513368343672036008051900911739904093456837120726769718452355434712445367853336302745803400182211307519768045035468617431004014197888597634483321840506580800310473129237211187422365249372865094609127768163251667678553773468578562855976813399643331166998935017833180665100133304488790323193030078659385819967708732657687654199914669440926063116683726265806751725160998007606430812929895313151953664477243887883240279656561871204470337553367733393244495045957854616447935628411020661589556384391657201180722862938630310200874992293647132668973032151387684731062303125783197939332981556894887059013698250196080797660963831022311502583104766538837963345190693789427610908833124397898155537883509743385877294976756401979469799025850880284462230707929744378036519141872370741606511760930677995876387774570487124532308646300203644184404224520559501069868940812770182075505101315040322309454544778645398198480758178192056814769772928302993546787758019236004696604449178641787814907614860719996791364984766092613465485032002710751337746442701497923915957954351834759558337420352053972890489767561768385601417333900844391768849686162394431331348518150801426354243116041948362559689450400827516907119071874128118623555858226568802742221445498615013197287309654646139611905567765923352683829865098919394981136203689140135717506738931662041958557062819082340171453377784598785950227137273254231617809256883458421139748391910199605491305539456324415134997752074938416272072541090935144568672091256012932995220353316275824093126450492838784424026873488637419525124417393826961842712657844387016255762065281772900312070307417471556610482477688063191952856894048329395027694712157582029485497496409223138490210832444914920934343988599194512348942112727277810112694968623792114832646567152002336494419447370886252004670425694843719694247040621505902203146223810008053987653113475822227123159291469533120009945100200897812463961089845679010176479153400809276784542760307284468592787394167262147000221059011006973687841918538260255732598222996842930225047287059396395739748587531803165670331270954877241174006006738915578640612382345525524058540922246278300873479389295109882902163564693378228998584006645476290343836525984445491513663342238940258685794387156192930323453318387631789899825215947898372410572541507623116608619925180148629332176862082070172781687023398063190066654910549468954977304957741010411156055284709332058140447568834767224645543328030448015012736576996397694538353854560012343928688117733399782536100681803027180706555176203287697562632422664377451410827232537614262015331285103614701667130323170118436639198864235549690521153465576735972780139288001550774132110976506934577951222197753235070497317589236777790360791450321748739974666685824071150557471363071957332348627605283295411052199280513809295859350410012203711855620028463450161767503952511921052986148641512922703933150673757585208736530270367168019809478475836931479336790601443071595305156418132929403488621257514100520764225467868531157080497435919828764845555529094413958927319389341966513862956463535082114411061950474112855076880309672620352486933035992763575928312125509607663516745548058645067530941257021643036365768394975548889115385600905045075430193316552088191274550407087115145885572006727151325372379631080720635657637228547105241281294982123382618948953965696802694745615267768020778741645138832054318349331244768291119326784626449503982822912409581791606040379357232075646358416885201950530275968096771035599361407516963743624970905350545397301902775352831342037973923214104587265697019384374874814815969890476520221134468167266100478956468791403185234984660240992396650187062613934485009718974313411287836851972756673973309633119182978701692258420235916334621630569528678225220767159058508837818155264853816137525837263051072895572738323773214722334166459725895452382420520924071631349396627651610298744338859689219842331580158097470890192406298749760283519137239706573582938628516819847490769013082287905534054439250426254200070248314756435203517336509455400714624799518354804754137012548553225698078866856495387136746049923065138894566252455585505237703229339972381348357076112026580305339684372354295499708540454259188772141119517681432112538619429851509967993972885885915702183399251766061341814712613762618782554514657281919484644676616983957656695605950015356482431999754667015007319502372801531410943949479427615745960241449712983466369809272645501679633844789134406690486951588915066585769097971586264420618551617291467490664749090341360161715810776597092862448234142851036602648721410293385742005915486641033522007728756981560421975928257870061599040727518655248364213651600058733698196355889001190692652213575184292991550258079830671845869322066457680035329175575435481287674061906361032663342007805101102098486938933844880798682649462969932891516590533124850665754001940815731740171993475795757332766455188293247819125790776508951935779750686794720913505161670251251757035066689604304372762067873047295591486507010125277211227130362381809971908021192261753460499985164953489661090981304596661957108463838574312547972400529937183917392428272160577691441697154069782729040425178370113663268669158019164047957495933344535690499337485870386582910266559996226062231894810581779764630452350667791173630567400862981783034570542849218601794933621816518772926915481166416935394607783438221105259713646074027773878365713364889953267568295220477763224977990576194912943260603334965276950849021645110004546954571060267501927373276103098058068550695301501509360666494020233197133163245816578838208739451791004081953822356868493741989560478887513610011720032096879072473049588138210538845156316913679391890442007774453790419127124244315906247304998968167386868348959972736646441410766442812451639682943241492118953654328464722003798699719200579225178023070431141917051701559405320900754977273884783814491847024414482993084555536217901396064473589413594910703215099717893735310185637428162508285566061103267847057419304013192327594692329874924849607317027364841796435025317326719458035132741251521940517634381572700101991168462863098413919479003888352073306214380998944385950869573684025883784637344824248477022278774337083654366985103514258880980349683119741122533929659706463252999621117429928506250724697127302237053793570038712490679882281702985555568806311190063283789183588138601369986092815185179546317452163210113868263724310627507868795791542928935841352575090987611281470599955884386900473606914636642612010810392358071993297690676800687646501293010546864212831732564910722517325858378264505142245260575468167270592948133262825046059758475763525687320083717998451709048704429796111677457389434077099051211212943292889542918191931648031047633848562962307295968645523460162027442956372433928916269233383376432011139473660737596821351562989776556362348390788545144648466175499083306060567150631677348775064551777141479898645633183234926620622320136837625837330726255217891789373182064251000076290253503319770144427487954186502751708234259236839591591147482928108329650883593945343807886445275461714026979855745957780597683595662716544874936442456490652165296731208717096035863044752845730632620295456490352659215200125038539639130128641951927381344026780825268639983560475625363319268131820161438815766270176333192829897855859294642899145931912252256056514881011686096313852118475767075454909866805797847427306957843634836946333628771998819082576888779833855928874701073462086523777372960522873522438745697438959816779204690449276608352945505803552578822939503128322828576786924704916365047598582596736098203668837894870298585629961386209232624123980248111203426552441696829694084109715423152611892543020860309998778170992612823123600146711116228937711337239818947563504889224326642548358771857503292240584903776745376869165701875824396940800015885868802518588695896354750130939409424160523158481218265783094362242329298203013145201839919950544678709878353150578282472507962205050651389705558748927526054529384505814979298173098769701702386556894915266399667827164026910829258495210024493360173241503552636454072931206520633104635887223797997894025255936951807019062772405262966671217977603987809869174059423391937327377160795303243084651573104452366427691412396046265051580964406075765040794796195620289238073829244101088805354531911017335553255791515885714184537087996477966459431875688298506630920624212763428470544895729020696024599443361928118498629805570404056449730556068831542536604517180670770233673241097259336414573490646600125859464430035940695407659458151311161269583411715291927441339788218837508849801367711323267686058908714632546898711197789415630234960173902741146423920992821741087741683638993745655714760069736112285923072388453960921363180235099497665340694289617507658358488702303457890752912183140822032450757735608685994264738468400523672115205798348644088374838536780267796872139035621609991348069325962345724546218836992938921039695080652941040561419714860804679937292446817223547131929123549029708928679759712481737557771987301611492249265035428975381069539363413214171689139858664875978633648980272486281278677279802739366999776879001426355301910670735531552397991296383834102300357122353638499520322994533871295563197449896881350052922901657168540759329999195644979580056507657666056389457466258999589911118642518991300344881638237456370199608653148675177488170467249062716017440543524127191076517897621700733296655914881292699590496060214200312228168896181292272978156690207588934783701986894562646225491947161273739253383839159067201156760179086040394485007238738000291854345702112679981755050406838006765980653773007892130852734994595854371002854982007880210842194641387546318817571387067929833610889834478240158898933537406464306700993389002303866098582979342234448736241223101046365341554166146865493945266464335596767226898427791392627857127139073322493901162204318509895206631543672804016482465926662324958481921152514149869284618097897977508298046487117854494907405473761044366714727845066420300118215061402831295129472163944052095864789917449588618317859370365780665800379520681987710076284545550131348110823314648769006746495379715300217873722666920479330822661062880790108421568142825137793117827806393015482296617945939324797458227841213382524118093609390982613732639820124236322901483545421123437132844968688551126029032324480345603007389904440268206252883440888585960096398494271823278922165917109928941488307171200569409449679254938994380304127812525621245552167855168824819749009256099833464847787986952590696498510060112312218224262184256067882985922738341572395686363049494148196697100147151013534932859378776606364357902465747191894185205166377372524373128073341991487124681678206130785868333681451708957884541553567576715621618197583976469605271363851137727295758678223552179552181126621064647748654141771963897901831382176908231305736703312999311694210910929993526842722526013988105414267296772289635232196730806724003390961298830051904605987758443652261221841262121662478764689190654584012354693960867033261579632282644502823756210403926990676011884694841039429050142723191260231298320405793682165396622676755467369446306665563393123549463102146410247551644733439310034093480244318803500142408328969360916746763922670242652973522789244667603574873777028924722545985853319652877505961809898447624647857030882564102130251699727492315176768802724828381856898994467093910518127703654541128671969362580628985150673880663996543228655019534822911930241833603880121895128108916737941246474700558214951349878713390513743144222509415592525923347347459012688796832542672681664922947207916568746416368576722500946776467567642830065178624856559274525251339109607869410106561205784877885565207626906357131479843704248158046647083653835848079866048828832904211314338042131530175038209367972751642816630777451638654254703167166878022824958559823837588216251139207525205394786017797997657906333930859979154766459865387998156204079322552950398837192167659810037138287246923546200905919686470780365257409274080847522733244338315541575928409102781477506703188514033583688112143057601870042916890089113391946072699405632982234769547339137668481102581867721979926314020073208717417906138027860621043571527425513587907634631942188057809116999868838897730655286171910930837781160871508990331413817687243950559481254282137003665279891455951371719190420746363741019132054618319295869764615212557452290778182251474988449879831085403473266716662038498004884289062991759914835071887835172793095965438860075502747111103066086542323952087130002603391125702242708398983725436339515931611313409525891623121583347249208190818107538090407544001717014202752274604079265402209984678231405423722860674234726242015486988166524781097387813028049923185074557453389238998078098250618787468517254992083514932472258075627655600230982731981527961934427189495708512027167457239645590523550797668167694237105150755936022826336649155313407999859336816633602523521503174098538990451169924743298491544116235021214379098524063040225174704939359351269280913698417824895848410306190129238839132860200073749466851673546554377369941943840973926421159288034302772045701290698541088428264536321622362258349795679713450458710185771127048000893105346526299481450716111316120331026164790665859135024240652152709029049685767421040030884079196464976183177227360032741825874260323974879577644832733483334546593567649073708264532152636759466664534479347678161637963169886792939421119279578682696979281785517024222455029527300518288653096039341234822897478123347672366719599662757281165303736674695330244010307610490705558936069964969950074203279754351854165563393523929023161348562923505596244273659612967019814528761250560418342900788262321119958117555296659794104371074597446224923237547702714864148846869178401215444937668636155485701105014908889979087371977510413856372902914031944365587894562839562511168597950623317837906764949733050149748526840674917924763337987097464163814074628446898741402014685654374506142992199041949996359625274136636265542823109070558412898652007322808896916791946513013187028620434642874262320224184617467273603088363769342127868634406970037641352567066346487567992133779989552968978016600250935635176515565530869302303675384396496755099551778965601729476468693957720786768469353490968456787738108219195103770959757498017731535851189574713913946789024938146212423412881210814258159961611935870527564326955428297742360092598827977451934556780819651674794713425727835078901736238990945801444879044252001637130300545015742214380594394916795086749815425692904155442881665647264219386954187181043990099160075344323189930697329820570041742054576115437092754677068923515084746622214244367097808674814515786697978268555268824830111447707791576533988986827038222736078122695458567646093762855854176292962820425941364523120047264516748302485706079819199830616125610074887011715840419612373221660684602655233050551442554229023256533716547189616982769173913616319534313269612592649477777107345117546151456076906708720353252625083002939864676439378421408239068321281000209912471840018066001976302383901535745014790000987434811583095524856627477072607203884078810107807243358195908861513386287945353049847146380785993722637288305366108442981442383623413120662793911561504746410622570490780541803506312869720232814663580203454380817309135610393393436953134874060403749643627428535532295223973731168361675001155030813653419133998662160747218694302105573836847171154805499427128362272887884692267877442394138711819308250188974369358526418996412598113681698908744473547626977609317103941407183187886045787543713771468934575902475565878197251521354539159706203094284447961425305230071335023331304462105787197062880035928328400083063136564034491937672364068150875398985435715580561566455748418262845495368441564977092506786353979788574409125221331097848589905960257325772228566731320020585751188498149031226250420585394290770235125345014844425573112216465481676218812729430219849442646213694700890997335101677545533138100815493243372717481116702864942925446529772314192561075380092396661496478193059042172802492520625868327542588809607767478928581395353626501920946124116602253109312551359314499386111194017695734541570968628170905588829659544519059839713785606118318940663821899400737662709091473228946395371598398013084034506812772845223763200986443707298094910304665642322969173689566716488122623177104247674678776391437292569038939070660441118290725190894207940856723238833462199914882719723106584254880510846700880309745630183438710293667241626554750884608402751241022595610854008412641868603285434396052267648382420137350919819308537699247179414247691343904606053326146513308186987766794817201253845706759173299653880744957664176976112774602216388515314087764347897765017151288412994970927094351041693110981346026235539934927226044163222401463144369428042964732673544285488473427488107502367535599102138641008266990195321030156226414017520335535944884940116958453029294335995099161909928053292126245148215293045408179768667560575814303257514168319101788117488664854970331405183441536104408913352669572533318607973712685423911929479534467766025934661466766172198806243975926831190164441558249641370092082476261554599917186287026421913674261822369010409606835954020794151100130631000216819216545142812539232181824358799609070294179590817253958050523196232148829814533921221439802058191046698821675826998615865135414657785241728875575849535053360918335444929690422341708555986998672604068116273765329511943261467987972710830561122377566501047428521650635757436309519475333984636733017421361503495198940862964870534599298106017610763276843199965161256534540077141086933359088012190059982124625376123811766655198943748571249797236118749865230700024394916021260239688976040485430132770087551930232167536718642066526799076257175607548015102854725712809528284785863551379292954931825890931021328254657409218770928361704724590642653889524778541498113323570618437475739943740374079903142468788741646837984897031889993213849782091784852882423272534023953225019703139389924202418058412561290643129200312099458874465374341355382840898237005373323018067775385294060161346830759045563890145736190859481334761471326592634884361833468990135001696377676858859624895600286055762935156891990222122535971294204473783648698378913654127794783768627261958981504908319855585544896064248979105026099064971423966775480661131041112645122359857727001894067570110735301889682022446920729007796700755577994559938040602814922789641353406236025254930163896375514552990083815101366700542551741026893168345835120263289840824040736889762693629997218425575619498404075579750188401860294933009177215984136628649604041328875952125270157813353232369198626744318170095248543501128887128655142715662134844361898181809527788232212398387021404741487052856891237321723559291586718980986134148420986269715487393679975412617246049224952738763223338354169833320964124678907354081313333447202068696520374439847923085073340967698582807700020276442324338214552973335651233633039122499853898610164608967921770989671692249649737325111086164602337618414862986613445377156503128073370078766776513677351242632382297678337559706192996893160874390947236096454243908002622992279627713229107719562883884950110924498287020990504182635218536697636393425948483268611159227807822781285248758938873258979996758286712484803437284948873947143889979715217819908063520856756319429699329043354670413787663386511951135852200551930318753084747792995156000399802140834595494611569881398597508856497224346761754258415609020846362683006898391490536525556838961708885910368489291224366779535779216030954131393628176788123061247073331502133897055409338713695893577628683851526470775047821610909738790583184778408634666350271703381850654751087520750854029968555593394447732958236476108759154502683598009473981632807296540760495517910444860871787733425108063086295268096218387579182973915361947624506003802470379935806888697143087724987065314956044322881496765067973394704007876195388980426209760502727053867711883892359720399283780451236566971980705105959222333218014711826882179878032511057420781529466268802400133009173551371348358697380185915052308407679325072559192990514482528712716865964945694204317532298958021242961858996553889516142426307008762122682510536064058124582842226402980814637699315726846931869689705073919092148204415586009497361940347959541855947205824566667199317393818949295920557000350272900432342881286084048524339158713813614891128359943836393677721908804916404115101114416349380531781745646747838902511567597462538681685262736754194911420306505078199461657601329333432621958046228376006923289601727185306046085101768732586414484424551551334868591976905985671885022797400477115375977580771839627518358951009956018096999977819648019866178718285868791648343960458273073315272008882434418008293580813077138585775636083055690503159648984490937942872417500002456270722141988323065913067601980747369049201422950335464818150872331675822220158917074332831193960762627486880779085102968144597709555495827352133285472672174801215129119829209905538182380369257892145694260482008546466416892695347835028739844148135567432831566732542206214855266501275794476708740148237305694863075940911094797844331963114227083171127780907544776240699076943681591517681868934661726627877634795565363550478505613154687723489126934356737562580116399677914883241871421338250347852968068183656223631347414538057234304570349027697512046072818153201593221447597433043904262985363597627471335561761077425366547556133779476938361848412053301310462256642731249482943138829391026902454367233706346270498300509240619708957997969802717330201541634453732726649057917911030823242907873994086148090440995753726873771411018817188290247072719551851478807596105898066724272684109350244938503842688788607757676639844114544624834365510850924060862545153497133352360861428543715877316368194856092185002023803463386220830378116249871040781335244855114972880622480216108084080820822584529014701393896714926653201830695437033630532583714599759725900267097215444961004609465047749241304507974094952001646264426455473320228829909261917010472077636253607500405696013345751723868712718663719057716364504030256157072387198780168258349349875123690790581053457770525658475804610889512226802894693191732806626515352629659542207730940595212385520580491149642450662721766149212172486150132399440112677914327222924074887562704394162073349615852466515904411708988957554159351485817934061938335896308784928874181390757320096648453801525859999823651167217411443673895199689980467464735370118252346910601384264931731823545025123747862474144413063132383115731759875921240372436928236668592623031085120695874503623025499101194977322634796268898867714344957538820009180069956921410579324841103341562989890016543077578610165539132255294945619248396981192086466212183476906280106044570082295533334022499883255236475859026595042454986010073553215934871594271586806883862023629962505361744555610865473087911618305555364884585467435724720457682533804409828570500984426224289132299655743766431126864341970552663868167110851193224088131586063198597645073356352343825866746610518828252315402040379373956828315990447487935093807998085921030534557045853468947433205157779980354801354467621832923722448194669653866210741115566801084479761289011434881868668381373897102505619258258963418499817296100491231359622959849945968387994540181337215568495501640922067001886776484861511096540793950816683253221997050093533824907840745933763570417308101502538509403210862832057646826986758037287298441504834318573256479789842033217084520603234791354993514252626404823661185167749276578446812864865683524785310560547229040350354201689179200231166772645358884805850951288478728136820752022940552940165462686273636411413518724074576007665793359653148925195653420320445947589616947521897074249410209025653186320917549683794763933871507714013811847207140406024287814059921246842848602601841528828869237887264935533000956718183349673200236487333456524014226432710390373124341811720885656331706696979298449483210825027307137696495916851518747814367710769521432526425671381665133347620431187358013755093617791563911255214186176208218065600147959822717991378341997330134457385315489547802964303517647509984045505874408417208365004705445704246414908765580303898140872996187230003464949600788224770956676423200941596070315294197514577721312296536434291920112977817015635801345667186973075446444448914786570769677089858409564686199393346823335590194333709416307561306915000088180390003039269052312424358790565621244825363600448956934398329698880496724798360902026369932781696759512035100157782321712354114564772416212294198244263524954061560911032216182590889746588287722130774454519953511860757914255073974393646566136044478107068161714297900621844976192424288629795098915682141142059936682812581862417232565936078121700930684774604654934101459489295582163017842954613633007392828084462124278653235596860521324115588905229972283321954804541616376236573763332441643577151076814822177934043219818664659332968569893634190851834948343902640299664482776347962410985880448652778632325184453202233633244496479700025677010796711304820162799719056081501584499961357481869933532779104573079564227814663672309159236589733442536901969610080636167795395735589435248350057674594115481936089226053257042180836867906991968849418827406321274542501413777137970920865137881831167385639965890256862848376885801566086445140006315796464861469942336998851556329577037171197880561417816069351050773653491608933375153434037739618980580702656590705718138026006090438172931393704764670882892994491434520978818320504432239367935880728623441951159473190589956246495054725682044418398011722306194855717742846900020188654922273949846322684608639629749465143235442744908975707559008531522721335578387007633221211443079412914782289868326009215775612071299725041613713546824168598230549156105093140303944856920897292400110763390008693023147110617609090842237819128620189315503342840218119159165060828205096707818977888875477427210348724653025181206312654325185954336291888761325049060719732108520899818972628883024515181918998745945928503210530201168657177609899583374091009283264799222066285792628285618675596117191062574355166746577006782383031917451216393138453544790853007766480165440908921313858769540327800020004857620655467436880437124675546273773734988552495398178738293020587576964251064109370096370323883403151899678559073677183584985430024122364690142984452280547387664195965455920033030020786166467006005374625732867110093180836525487319045388441207686953805184456331852665646064310118618434054046635813888334005743319770785461201201449691851424996427659565366624957907496819903721891049024991069331847374753928647526440526917249594645401994225229731760192948936030391221010127761418661888430868719699769653264034280638589102930541590837801251376274993389192379064601853607525582352665145687723011364829115514442722700926070829671687811157647992106679447421186288714352008788169224982780452886655349268207743568814717119107751338540371767209418795186394921645928042832713130084205417164363548994148589214084476326361445026624005705910138891127304107599769727058796969685216334229588898766438586924331402667096178594571833232939610446335066796214660580029085971066755246100946692524444364089499720687421969881047573719239281279505912709316783974630991111729126493651182555199667437953314651926411916843016048100455558736298716459569691331035473286640115019356904805647437091467571011339434386544880104725243044506828234460888048422548524166987489171277779911092009221278600640488737008995461550636651692316829542537096110750246543136150495367315863453581540374520195101614687709506419700504566447016367595285643556729754218244920938949610873460925601107110983571073701979379335515207281217965893199720551691802305287932295509397347486783777023527348925993352773165016227720695502368551202798044509750011687637776707007183428260074263330050154794168478034084353878168053218482804580271413400486680099593991675054147473129097893561581903724751462360169260660154454153230629742606360960275291278498338701902922911021251488199559266716311863262956933510397316184096753224863214199226961239307553098195601445061922564541299887838403060422891638985054510450028245637256114527779656951551084374516657199884938836131879974817151169799762790401887981196608353251246511655712330864517762193824191343983245335917428643342543320498569367676047694754093053405631611886377377735392196992017286476445663309148213869480688290171319837500349608277243817535346903175838494184456366624327179171869206152320679692483301922517882063356901436362863399983265596237497910019867345116346290854330064698406997671259492372992306346028587161831841116091129000684715331248609953948732909631840265035671183763449091748814159236785266502661779003534004150337330439581594369941327115617155525104156825135849443730262837308323555553763060289071224550797743391503679567250020037262469832580229067135554800264382374453497961108832547369319553936882936586911315142931202665544693230069432706000905164298756556298584967567839098692900190823691103336976654404149050038336229244815114811377996424997406114923822068127487236206165402454299053134187136950870338120948589644881212010039645522508430033671240566848045219536316039776940239302167751317537999939268156987041558649411219966001538921979691543565119062868007628222989130926223881225377274412105867285645014809922483656650035152694250533847704489173713877011192044178819752316903060628556291711279708740831278189739311937379000972074803599445388821379146644638243522729599541923144945112893189363113171580984413744155811797590684770968855885350359016694063192801832244562079087998185978734097043255648579620165849436799567577221335525592045105043847834376539451740462054125040873697702558303081097894665191543044758426193937229991700821367961032000066863235010588846170988412503690780536922367175117701068017164023734943788862491219248554310230707280769478046693577129742267736114682579843922119056992964657388329321148806660164315819363398956758075226014242968005972681320961401528954894413884067296327361440810396012826217501630495224761240950497803260880529905516668339727799876742503652824632334102014231579376572128767623240095409297293487186706743495360930833064290896188163619356516920314122213962340328279681220340714224039201185769298868171011958478764472902251764765981402041555896982085206067694108380148117917304035235939153386369668039709527654850143039398961702233651721691330820146745514160984935342932897419201927846371007942946070356352717866323517109398474336898039882297361742309640579639902030080710753204440999628260222539823076516488610267769966441772073611713552806247824820371431593908064243269929645318694216203042914665209441540285610451587336386325527362006008713044578455421409875497429285273879453611625333959766965054438942030067265666975325620995855439824877945473945681881939956822637376756755790710429324824962894653565561531870069907085793576768083077702245279812737286387630350577092546043156307020715393923835690343575914465756431701747888475695315113184542725818788489711185416789490018323412659238909167175510954956934988499992277798528088994864636522052863294083312716225968884533780086301654304486213834208367984150404525825575719736728870637964084753980073014252124125864123509752552470703004284677947465301806772104087716283482713880715998397786797375240902240006608291457780713649337363518175317029059321042257370387775150598424044791311241342612871160522115604015499956759559886330266813963456775003917171806087065947572952017998290984441494839395131714193240155164405452714472231332075588123755364655107663157762186236115068778894347795182194429752234738167530274561859607571363994110493379394238439210410407814615991412971746237269224856128001986879876451902932150496105037580963756167076497703136229650180636639954648428238510877569926618886711289805675077925687861577109869856991012143438524008630496384229807503675316178757332695262236602031145307524669735155455441092279970550809477781172271389742937245268672520060827436902261046058396114639640212652596905187292473725524718896386250670289166005658627970068421774334618461450339483845386841880766371763950246763835897530573513778408978970093298287771586046894785978418823085788824015598842236223929704769340171774702297553530946272549324549863577196034254323297611151808879136341022111136390120781439604505510617183471104909162347840347525280710488219162810378054272279206580696314662258524536990511219361462700553737379768950335225242399100255351260588120386918294250882578642309398417373826280967095119372629576395514018301055237213505596873035952358118801038664001939704582410700789678222939041120437274130095051670496248509313715541488561861024849565440089686461150406219429633924325046101431425795307972111998042524732318014104256943491815507655725691692649629013122866375455618229673455526351347119860612444653487007177180631289924411880948610369341649768852043294486570756208668613549809130384057717582043822115942556713867574196284302172135974627902831786666170802754755474135887600038787587402630547594055054914776803819062976195074210002971856135652091251494267614152361703606962607929826795503757766377722746724845443846216438044967833708842305143699421814120945429500940042520906810068518861592669691485572818820915705767145210161425039226006198161193349822264228153675735104734347992018038617861490254381209034614834831981096449545023433516963449473302226883498960781772616768711923967964168915318411476951706894589775936156371735596155680213666667931131154044831111224700116839350324125249708118258622142464841766309515444290171093377259549500866779270141664097153956311005532828202951020381356051967838033470021901885075002927120677806642263931483219595729086745589491037373230647066485988038095638493957586976858615041885946576331880456745289454750545196987563570263940544366980209154154074454644440909716327632767440172097191846511749705430123672009666988160211028919661581975063292619277885701826379471478122639206100425623908783929495822323345801168485504617514656094651727132949441144787857294673407940325088578577576653108698735737463936234447380043215535695123508565146267365545234848579914335695401790489106991805506379436488202267094301586078694405678997228886648049899569671957407355983845313848350209938605951336893355055028540711253434100303485281331670090386819391716269686719000805774920841085167199336750292995235616157858654151756374845876083851807202998495384632636895850126403952968441357258307947024984447472526154313002263885098997269195248052534502581336851158813684055784395918967504997822108962587456698515569911131058170325750242952389036971656949278823512902693303566526203170381838731783865446793701307664656914682268176220568111110000912184587055544382919863792050435044793167186322345138854829055802600842895653877464505865673137803803382776035371134563345145969924287517131807990301570725275449167245228881141995965062744023501636539985866877485509708138037971291770207636823997550751996474200537580157273072777977124167385912958357601157115705734334447287373440893068534454014762126886959463712689223399845070392924668301136563441992023589681262577465706585913376328455623899916890182715642954992207407473291166441010760974568832361567747358896958271708212506245476648381847652476202144692028338648106519612758055454456341639884054232836381962553330987766679181996317110645104613602797874230037650694897261776899546036188382228640252129566917914567982637721776092175707925519934060588222008546364871671478269553528411417426477105649554257391877880521358696171580903288722774404775596758139407791174949103260790706817818809608339461420000935850052307874613965909739217876840866577746435664697508812322000720329250426182565445004852698592399958662870826656706139472058572662831243179412865652051300566611243881328640539329582302838433570853884178355310511062245306553884289482218165652084442606743652931133382189297235777446467787707849785384317505229416962298814022947848090179662287409564879935446282919529074164579645228612072186009843870207876074793023597954588975790288787513374965898623138286663832606523653835019228426538490733143015185451584533502582044878528347021480080564731383537338956422723231157975996687571780954511517589315142915293139532536570724234131521156176137147233812705767698615602804478508485797648798694566636164557860486240559953679448704059612324986124304513331629665321860799686254429546871982771942695951583607502227654630113778197905606340227912171437381401769299325892731384763180768494611410799441659805244732072181234676544022147610457834765736075792965148822989989963832700122440393729091923431609993085715859536560169610634496803082031776819626866159418029279828485599708732695568357608371244165834327430591374167865091006186049257888476456590266908137293629357639055203154230291097759953227670363915886453332081354760762855153350902823136708111090127798489722923146800974175037738167910499196538131845220368084465799345873658714609013873914644623886935709036975757094706028140393071091079427466501031827123666531222982757313704494149397801080530115829814482253635744356586494842446455949555282359995591276622482565264645019240455668845823836523219424505945739052413669940966093030333072851606898208331145026245869533265714432059608890396023347327229961886329089671352287944987921085029810303176961311418528800916216961542033903882540511582549213060376472355860165038339621277372257173082957311845447432017031543843580750078156192484290104394997439261157762725855596748654311745193929453490516025155702073656247245840107351079835086378884878407483884685700924342859501607386183742996638225346335049088101186991269866309606416584397784471373531449467718836038630837042637273882349150730284213056822881573967251332933717591588385457933854128168416783584559293481857571981136262201175504272079993451210146945254038125889103403882884060181256177683282095749480843545028218014491807253531928817731790700040337583030713271528589053239905661872841695205167317929476023731134799771977686404654734894427346132555731306278719700670088035990994151308932292053206088059106658673658938635412011341940086179959264839844026417975188602402196777080066645046011993846683844158180667306955801701826918578695400683374883258085560733857043188061301472507173438999752464730744581389725218883298941730974955129220901582795625403675140880869383056367289954174156914404115041736697559803314983373924485567020104044849001753599688387924729015990232186269207441609700491895783845921448822266500677788606280466094429975955692495449562731643344159363850100897935276636424467210298002917680057723031215147126710231459371952098133316308889147414907866155960817710767940372264586644465289230429052269576786411518015710282565750291605398695563547288887929050142979902311328445232984979109101041200787634440889806381319241827770662457007335464396848572769277540696362411673723402751144288588873045025153163266064127147407371327209862031444055351681567595087921909116014668773480405984793097389547019501470319366590983818325372043750813584127182259049849356632037246134441990200815824164178167112873125866628274017301010875991970531279366093165644954745911050829583619763211805786447654234016151239138488784548360256816423155698448562365304422149158613578783480490550012482200865290856866820102453097357017375993399865364096051947715564180007829033903000877824901959863362794680964222921893075221183145214988173834753471014181546130439185194063643701075422194321598877005277952661742227392138305037928181771176124161523225612063447798102438253150725114385350350511974062618523933539382608053306758170327252758407728061308237785880362266815921810926600070434461911950125019312761258864239777167187250895190294347039993254391188755815553140065289550096136234078001699369676406064094068237763200707300605389111117543700443023697710189027555973781799096265836281935094643644386273301788903976507093061892070061590236823755811573977558235125523496106607093114066745201262111179515501589550549197742114187782268519217521642002047513080791740300186596500262857827112079853049714337094407455292924759946239647976294704745597180662277213860358835927222241622934260508141363574578444799948774754195375559666813208995196198914220549239316207165527072424877060524259520120557227361903179332689003674502090723367179158638492683612922989114528922719314575247140117193686832481203846670421118571527353534225842035643839917907015879042273290361090918508055113409543850511344150920844052808914497892778824754826541782759160623336826749003715268071409571882947603012498682665341462240790997038991378836024714489123774812259165666343204851851814675828310060532774068955438329844407372211333589741150546154064195171630810217768819261784962522269003806976556170930927163220913821489373502235043869911376425456525308614495412007713155865031148201067976534575982525626913755958863226730507584378536894178765023262254688830847839952123041587439644312904019295782540822766627508052414637244784475839065851862665962265059718451847468958920838148680814164735891674644346217164054591284425033219988430216509586999476350659896028580929634233863283642813139348181377744391255794477253588170302983163805503566734187019286865144322349399603667580738620991021279085362279754629616592326017213882832799770366628456083692147022069639845367629797533265701387067335990873278294131892354524221462870532738645126732490972847269504200070927871987068358035531229367350791947025671081601379893432376208634742684387667415615889341788123687863292686857325525856363784987734145468727181215696377091305768267839579792015010451804449473069284490446066835355366627965380113303400018449254602090478472819494915460412672978394097934325127077791266864431366663636091888047825389805716155257695474632091520330947308596471306550372983824042448093962411995720313925902507896554254893336317882242076345598859230066525349390972093594172749786709507160184228661376967473926878421634703799075142323122351405199406064267079691914811282668387169728486982780146204021071299476642720873162811658647121807653512496869822037805037453730195693269082029818466823820157930825630226371682028748870413113564795142645893214123858367862232915831995254112571151240128353432213346835465506052936863211051496609087127198311367938421942818425113099526877428251063844591091302514677360581573828542227580880639174063533182963882438955647265354241997578475550262973768403163603912597275567879691032165402274967556017322777761023897568024096356658266908961355612962631814871768188349930315112812016988608927959131060178576071906868646458288250237534995989246229921807708760115020526893059468918071677086897554656707417820568747947563245519124573326837740061312753612512957390981109382756157448213679271674820891460142459967006070602471369203943002744390760458601464446380002149855240164273379309060273918156395297413116723808230640371171334489465951604219837395650430354257823448571573679088988932315770367861598576128598409153132377290839628546767726751162997429351388972703713522968397012865275749057335665130726323631222458425912986118303459888965807315544930602155886762411036512750103214722477867214575200897175985864972992852923119566263550412004570780383755224340459938554157867701039598108083827868882047905556698566706823523842752052817815109793011541143373745933550243104692955705007043981303288347276906227797390279635984948689580590624757341813583783472017933469779813722816938049268860041626161340774447316443227166392466824002232481814312363738131325593066783204158325937999379927170890946542652402141802745384471036662264615441519082751268863558632871902517841363123659075581693023697984150595940886862081101256028869743892033696837623729789020960053550945719337446682827186447135526485280168420262570141557627013431623346575845400080705808610974270694586434011300314400093638799644553286135469754320267844129023019240540899226413228139752800927943189523347854171943199340398831550998343626567407091208476475684635564906614790771578552020549451402095455879410432597145850686696575726997976859951704671284428949390586579743544715455028633148493452358505961937434973079696153780575198000046487885734409694465424670945174341880835924527708160046342608492617407517140421165841748188408697103201677833129509760049356459040283019870707808127767001910616246833305191611964942057142797025313476356666045987013536511291791016153599974199653406706280980780340025877408728300581489707686560063576738879949924500692038798474922620015687507749609426264453154117158597285573244064342839900121383675935246971108467488566807366122491786022698544210847609426378558023775620564452502847920313454104839539064580573965674299835005975931848669046941596969003983360140197448285979744191666742037148472028344710868610973893873699911085104837435377766276542893385068364556529144142897210028430576315051045966888112367318826740628072963173973435281852779998765135535008968215759131476090426206658653056541598397592580498196360166023367825705551238035231585564438700332591162959825257131390295170266005263404742132489864623877265663301615872248707136299203066868528866032760012917850038680888728379836200926210034295040719382004279867000836581667671699297495264318938383959490171628311299316563627476829885480439174436716999273104407043060933686659521940258820139881856968464928361306058111011488973011341485542185604813274095292144453396884132030099130604262961244748308009170294238684054227138443044519946310490896716100772126115416917940017739057786301190557562315056672812292976583562436502527572921574757846341741613965610422761226225141096495343595703588101242973568074504470135296268832098458306311378864359037027129493057274033534036775192011416576330641100657763182571107748453967796994419040681375621049655091346637146544982518767551611419274447307474851023588804121049189652690365500810601887627149501495683685935304552885284846798206366907051021632676710978436434930211336811410848876113894156129136416410050162293658425977861480154466390988036219196197620462879282518269628840528741505072793933954968234807582344460022869180936189839476041707475220542625373005070029308171244587496696918888855995508762932127392519408584863239946974945578206734885190087314360092506791778632477467659070274752167142104048997607125254140616933269096581450230995444891036217542446913936950187419510975310963567965791764772511332173431567107977032251613796063047611177971416067942735778298287685476478148989851130680606269655718638252617313072317862287771497954881506917200450398599328002873212356873345847897902478434174317139265082122831100747941338118123043365476217443180226092733000931330728681314306040181429867881936952247230693782065370080404238939685912018057578917670513598353811947651510980512828397772044124086717616652886635098199212040032229774646718449783781804584543686884604150208063593940409342633899292448670889972298654931172230556392883809567925667949490351816316901698426234556494784144410403075844902788182921167792224312164920982242734856089069289869170242980091308043452466846917527947524250425001574247637267530826444473655499120500014014499030050388489224847047329054009668731897279883000046558117012734044629797591317523117932056546189506125071950721052620686152039225898032120950667175276305980540607265718082089272203735495817931376084943587000229862182866022605376681092164349025276088557658914158460513079133114420465631946349910888601577021568844404709113550928877230867877916717333683337475532976483318692274736006711147285625026009453101166080046656030634942820036861132054249975489681110062547456772216222982070426162874525071999738099214847021116063021354166044062973768405127314561986138430717524720220342075540826188404498591548482401896525851278938116227831016313359294798712841880852294485914207153593787513300798345321620529700033161639056656083781929430216556880758096113844841856139741450920122074637202582663280349356310027894880356121242131041978114776547904361684141104351671879640189813156328256046106489530452697000885568039650050419099861836502959573866155993912446314310941016649197897457182978827546310598493178515134119223329250190531995246252110727237049507662725462721248064598669649333535198369352264082705592263209430459344568426637348580440155755059786163644174716889389325238310488709257379133281126197924451029773433020658589558678734910492041416249832687734079512199039976698739213654504803281835022509978965294877617301599197377469706237210506310117266579858368292217698969425894159703270317149349279090242443345709190641567348686128071869649046322620697606427493055617747006917972778748677604459880029266790454824177661100612734171396423656340701656683376493033047999234224800578063901608118683034480311593244526787155898573747759556252676777148147414835222575211922751984780935129894257029750398152094442715464721405385843869325921581591793680474403534156253311053552364856309458247853234616626543221760668161702339493758466944054316417373984387993385733782761565251497484944717676081688340931399574675987033349345573583812262114814910174783025724256398118926818332156179988592331460173576496388936004831816009010448910374088409047636606125858781875143800380009837786006630124229880995794457938280801645959155104781050615110914031962186712903482911961184553215082671718746739968515668073123292699475275707302510653373500325175241706206274471257627217687980182032693214355214181037967401873562015390691439078156973004982638598446598931125991419153136873997103803048737433388852831008302226450789154411840009661922217240436139661681481932255477115559207194536289126091965687146979953923197451896233497765216193640538468755931720232658815894838142875909606918167326753768980957819792551266076337289918388571656640327241423963073455623579350532279525183952743310341744215619555075317574328832162507498803444147734940171993159765481474381225882483045667497615622419946449398120492874834177005412447662525988197308485851132925088227967411398636237026764710267832812348738074150631979233252681049399488488724412279716372192912941670309638894260420959897879725931271218229086992341605516248377929125045765197289393996233783884292688175762633379998678260158724174527466942816010639705446566346154140245861256449359595932470591540482225895660665973935261434736317158494636745490170464139249022607599045751318689906443956964111919344558842206251339675961554699413531005705653973076263928324799362020865177611487137230827873507088750038081211715957769843610490584401443864528784618435650257922775897358472019247438972934757011688354527461908723151139663657680602339377386633180340208334867685589022701691002280631432095242460409654262690476587874835702465405926725944144172790268944022262641718667416531903759068622675704753978073676449502340581147370060191525307441076567761878940325902755306768528960416164131502833761825757816830937490821519855377933091268067735867213029052618815280197945394265666639591600068277985516144906959158075269425533216443998165643891772307500280404113976168763428886172687606321791514178330806405698871339832676260028515013679549508133050161440812603886446346201332912582186947296537191680668742080503127110477600892237271802934838205962147150097621633432655793886881449370942314736849345002910801783865723680388196542127199378297955270160971092106260729716776974535988122757329914937482417852491320562461712066668905325374840740690438731648950699059761257605267054859857280521686582405822198409563425076940114843882300676460637558902935414863867480988308420367191452532801053899213714187252969123055445569903363884063144300549969955681351954146252219731431654640784683340020919934778818141725359590003058627379877000501185616416077688133538661192102955520441537266731697240296821507422001904765052212994410858380176116791110451637893851891894771547552341102339591530215027897989657586718829291911018113183263970310433934629513833908222452946093932450478836847035797461217552401738772344921668633462407331966721477283835469111614242579038491659425729914288931431140325994138236390263226163010292351690201023662666187180085263863547663550863792975385989694969575104215607784169380389147124421008844303795614617545397500792052631056851562292364084673285536634274956441448444470486992981498666823644139232497342545554365013314529910182549367512161397593204417907488626827524762423036715882640032064685599812952623056678084728585038421829603898482890648225954165494524194329781592564296788570197221455767698172741800370079241570657880817242925846308572654816946647015465774319714820331172393002154152758595959981870452701676554482625016619313013807405022409111011236975455471107989561523816106059453885682039529675073855880882537479252651841121262993251463759857386050066984087787500223607641039919269943758068236353128638508528097480742778734447750334893988212779073220613086184477658849072434491089660468502424483659155198604436461391881627935175155550379786098990225508543207149504060949148678205790372246172469005321540627658581378696986756209722097329595135860073145535994357694981336012641621714757670445698332091179845788057582243947587998512059773194698386599740904591746875107540655485229717549019128579363477235680931877657715177547431258410061602620234618628030764447246950843676745642839303613087021017254835904714563330247598434636311471468588893562877621185564422358104426054846427087505922750224952001806247769887760731860921815031687381023410003632575706978467511440177644119106358185646685793038397449624988044603690214543587457719199138636311740744880383436421018179995999532604720197094795253912140867767101494433895934883475752450332474844547317854262913586327366108581309251457754347236235876999940778049320924882903138934337005773025729045564780488129730322956977207605623487136858797627121091570977958998318287890104641241520715302057891481643985943723986943357851345224792387307890429021342708036146671812944873074616610025058605626145262526245049404396167541930306446392348854990300006442836412329175335513014964864279649608898305721100238618187509708915166563567168792316970240297265764866007860302582744382436095135044502460294189715963206488733355228609878065140006733988121596261363653177356784431135999231936127993788068133645384065059760998248522245559135944686306527362164890026486998052518101896512830401613913014831629990230541094529213129089148604675785967887118537960456648583868132761709063605650006266501877236100245416527130332201374996139485103715629112790747846187380543087624613617367466042015512895565782149327937879490943772270265433601667025146268726263750859221098849752661831598236119211767826670540390794344354383369770939271422873395148584321789813899669758395016356367945423648097423879357589945524291025734910018187059040013290049603596904189369438323503581183836423252601754932976284004676425855363294919066062829573995077434083206076959961364310177221322199471667418347144875134837263656879231746791701894017253953957221229207857115950646375775681775281657575279629380497257186073260254774278712234357263221063764175008289437987971967439916110005052051403335305234542016821874792019452465961821555622323694642591998656700273601688562901551716975194049222402695278235478535276682419538060589602229736412134741203760117954579757894447772876236668471057285220637667513109182685348955954231205877937864135809644114427759594280668369599084453599608669558540918731042064325885036999727346414883819192755130917151663539000457613674470928786869088395860312619764762081724057450912470077700941119222852014862483621781586673296832265963507226968147072941351873292916986533783650060729567846682244406597016916378577459440881375295367217067920634216392920884005357646565592445709066452779222959951457691465923296729762082312942619959979333561900502512270194978662624539086021772069790943835218168538798170813133224919539312466926365712440276480734598655137657814517345507730782745273353837009379973304747570567404627190927208635827545613678630348680664076157920375296076757601692575717841252017921828609126447383815126472508828591982744424919843079052048240006802860142940963960662893014670581924375966075326746015423817124415316849431193841503050860614961752813629347720078583844362010361165190921108724406090369124549716617650044455473706953583944086452077448739140415543451686132194126775920729233213170346809110725971553533992555993710120804305281245737652903884833118032232437290153939249832070005180593869314188924390602221696019960834179527297443258459696803630489134818366931890299902821766495563320949213455167257731094022116688796058312946932156319600572226911531847463122442167923057435706024345380880609029283157535966178869257539795377458274662698138498586582556855083477276070233061014767080030603836002600258991692148900565314227604147557721629016876215067399589046758393780592146992826199740667277197759240100977522779928156738129805918685637408750680059136177357594982167585645685282735298776090800784963994438696331334107994682191180607363757163685223848648054011402872969446704775660639358128239233281370637831783045854348447658435540347784304459610488309063026266622400885231151443082996810516383177216713526578049180598946590609938616526537212509842335259056983678805292065714325859224152938980825297485809082193077884911736614043353553593089759981961468768650319087689278913283663643461139638246201886531934728035354415264620981312579466897111294320422047397988364714181209598177853671561652027050368921773751525477168760056158372303085860839015292495096500507536187920714121810672103157128431765586906167576350474576202675043202625782851862950664279769674337527086154097027450307301988080665747315305603042334172241705961228495040064508968815988684088812702852462571708798189154926527282938624277685350631841788497219488582406418536173336152310340373486125778345040091225303077019266992252714838349391122083130259913786988774182036881947100687044893767487464261990737523692698171913383966477296455907872107350483470579233962167508484308978696664187467379857168307021979071809083113671338666717193625655087354453186302325881477979275375190243862118714197823808289048318853636806694555359133295105475799888787888351237848027036370444131790824658364557332693369342639215672572011663389711967837641743135978800031156491648008047871919014997076080208449682114099294300159863124980969451669344198117316683784006930045045133712861148756511581893363922857413217590103051044490736582686006871757946169661658143007720408910167278996791331949483944239107877424727288808695494620998968031848046824349009276437547480164731393227473849339505969879201314782493021035341910988243329344478446665754812970051563072442517047208618673047053753546696594456932079139179145201232162591846193263431521342690801577997043348462762652604029928434192720592976991216765685813490662888244388801750153301873228217066871281453778555037006749263994496623333620466936287995531674841254058112751179289464919078568591145797905141185451533946487111274711976049957175667903640217398644465038170009412817104124656040118395719639579741759132824900322152852287135238567340766347913626091352765165893577327935126366252512658084978250865338536252758650779033940784643268395170297240059281014834215811240875335338921608505387203396049223899291688391653472027779778689474151196862838115146349808893313279654118755398336966655571875358252496049273378889129915518655052981111800689854143400714731513948774739387378333420829917593896378244849868743160255609900902469562646231550815863593980760664171659424003666018899745853928340441108779850646989881244097900611235107004702735782612377689333164968130695408110587880678308852578300690508143870851623566743570042240274446724326665310665226902841453776944927197017852291374931892377703194172117736129695004302265345495332531114880690044861668006467824320059267107223210918675263688844494944805849541923917430076728963980019091572011782113768465156592855351658300290448131643477394578114720217422467304280222224636559316117553007107056587162068539310915677628897391342732643057941902346958007806198953931079272167231084536452602639491508374741652546066582704266789474855081379221346945639304137833337458781142173874189243043666197677630522872317332319230693135198568611138808890217471308649822964436759134596163778689694419239679779444916122660342635711376676562734683374704962430466387611905071442427925061296111564596124136028872904659743846745516758040256472321957340358961637143837133794535975871319966736518633800574022439263614769913099516190975240245777806263170224601260954432814537911098788752026336489175471425616213488299067095516355890306419557783643625105761306092735513709333130358943616611336913628195309786253194447750370140159990566320968405863413429831044405442854192939545383911404384847815671029774150400974613555594467989822554481608786066646530973187468758821552450751917409195001549127387831221869484622569502899053834855509534860208941616995795826070504677168536996842297338299012129902143907243919203389298183800274857575147042543163405581585578354120511702952149181229646128873861906286954019649247974543177001140393166849838059988512280333726998499926511785525220455437376327004719907583234900821494068743144666448193880404615920275434999616729883075011036345248538404360497347910470553278439670797693081058476833931121679539876181026870028883801737219778058348230915072236037760121349868107423444236442210588518565318716140706108334034145969382180925106844759814584406095683966176044735017686382790874397545787911098725677482435088033519303457405384438496135417461375398395306796199771701467677464748332299020858303083036076693346417929751525427876367190718210029776445609423845674344913091319523169193161224165880904137069151973986037238088023221772231629132024876525234036601104034991116465100998644367839766173618261594165869689907008856797210421114946117620282404832563991990591198215295657091173684658059890129234409503228726459377037868740328631959722449505194956550804865804258537975320472178852271530415432879095502224044992690464113662977832099588138052705500694983475955388907431520044265801360522242746956496770096666833587662269134858732384327401036039762369979829835996286887993893127003016289565356600165321531213241684145420710923386445425783839074938751359900288497560159119498863553865750751543706581009963578033736225276775101691547871469286138511881002057329019280574156445742390088464350103916500400972466577236305914059786002439777897255953096738374317655735022139074398946013135061616006054166733022283696985132322770412986085141826051255913427743960689834483010815381870073294480377956119821237309350569952151092816967496171780441059625738044687159551949917194487656626615444884939304073669482836534582658911804548338918334964120994951121721179868155634411105846189711819671135016277691915237977585280108886293171934378473199468461004719730452608480594053642476511265036963883978024503757235260266241877169090928158483192619524784783003251432587233109385523248996983520382452084643532425931472966315521169259568276891714108865489257484824277865909460536888027598571692964212924039272075501194796583900699512826963986637979780272147131296400198912193499920134991189680395528644771315128449272532452245370006262548404260998468181127080229237545838700513122734806818968973604176247261145101248061353232388097263769368194676752942470806973987965876718713182551538781408424292465027065661640572239538924168249380150492035635894237149038643190538021518189052468000376146240316753144189090664925559998568170073837330452959816191195432439122327329446779032591216780648841252703784698637553477115020039034557553741459330749697149716667219721639662778899724489845232554805089933091579361515131812841351140993583128281007996082625275376917151039353337328926292525790242035387894090537680796234854039129531789568263814665833679502132675689322118407529285727244527842992820043550276797550539227453892265872962586567974958759847597070779216873416790762010759472956354230883384438913898108836051726369090083574171611329603387410024189970136030382114515854042141864212030394450987563624346355675474864845520849999027305902133037829413844804230144045014407199760529992909012528403051321832150913791957410606186818993220530034858881276852996742894063726602670062516217325838782477632362161186913859188115854537864460415324768331118649144569207549734567254237544273046097864715366142176877367682767454402298693831882258281022934704875652208698197084669557712982489482378418631445411816554302553116885313920867067583569167119268457716351684638551504157590680080049638271330423027491270599712084931763488876457020858908870855221462929798149678689022672639867459268925253778321425301008489834860303676677907679148638712480371301051334591728496341170624916935383124858580746419502528088923042237960981639887543379970047839276674483231652470474589194965565939185397992195551983911627785323711638302401827126516781437513054463955473971626570573864687566137688432874228896260608324980796979491371279247689666436107738534467559950362006732690816655159364735733530397390775666996019976112974990796777957645116271356496233200646137691223386048577798597922695798417463021658104033803179451907004567669774583387847357741531521890363699153800541239113506495811124258822552598268371126819673818800399838514671783109289089092954626424694960653258308397044115180023027504010160406463184275299846864484074771244372460491690906412184672387734861156746836827708546880921918473623039369503561482286241849594683415214241576315223590864194988063754945033257957321975469527297624508263277924463752320328836333101385025801014514438558463788094309869031394804583772383214500573378097762590460181696399225089568758937536865040935925346371724357235648062004526054520146320984340912429571454187065719062353678795139704084444881557217558499666450002072527187438077879657515747502296275713945997705478392354543080577246627424795578111010268076285580832137340487233343733565054084861266739727975785630505574190775516221051624789909122325541563963344735778653099775403137766119752359349771082775851997606792832476326469916721233670638102146004191768430925952842289804918308683230439543168082581162620106348209368389873657263368990914367234135253547931102100310037845466327488318791857351038520535223435353013148122807766030159765766517722521342634805548486917612977126411220002418010000333792184711566330611565280104561290960487154929519625512559267520616208622261882600031688528661111181139139174565386218048101298648572255269038042408454662597163395383586849978714402091895583146024679198775717434829888472177506819934173189834065439731581989508606968358284432283891951156489962509850483483088391273048229549383717479760696276381467375048422079058547052651579172998794698546121917119838412698192773553198735634579150372787636220142031861023342331524241811575378811910073743552605837467391489040018673141308738784817304766417131908415285279971345456402071657936623625134960339981758730451370701107920305819929532194696523577387288721314687401379891822688788116629760618932998947263771075694110061792099416105127183001026656239269126753724223769344767342486714035537907697042284813433627454956879371993363242671354535589809017369143599694657887155531224898356364372632162454374410170359059332028329380535154582255906234567787467805952849729505730752243623270146119347478639956974863378730677954679949219100099682195730887345746528900117806432683332171238937577305460393720709146205229206101528722866198207629709788388489601172877984914405657461124023648656397648984609294718140514539252629800857609192367739647364657272302055610422156026305293160437801031232446548562772190101968798566110502446399896925588022122482059756812003247645028974176496039646999498126154010728690513591369275238169758078089600424456037671659718427553311752011842970667976606636091201710717719214944038425181457947449468190874402895184209920225836260101699671364021436648567359040659983540743221614207374193782410067429191427116438043811929371256808362006431035388181098198814693867087192979322920753421428654645077798011189896444949912762383317941312243652827232194325857318302828244703341743684778582836754560250330735092839646772692729463078079517463363067999390143020115058403959203391843330410602628961361988700526680686162589735330341990008845416541162239622480894417018020465446645109226341503767512691350901008681458811768724088502842204654734999424153597141828721183367652198136788126934012765382522164124698247280416317516519784676801893414548759917620187396562913152846808793741151996943245247284441119760569560584226802011719911261511883962577366248308989846009002781866000348961068620371247078858704459908256402015259637353940567059324463192065065135390781319333194534552493562195407382655300799198815490966986680141964380451196618493260610406379501419442055256951441640047648585996382854051611507232566413192440872838099984327350366386443453668079412912490421390519311862111014767641072160793272391655733538106256913235009292953752269326201532170514734104113547661903127543744659519144404368265474997261464763835188655878354422575434138269908873192297828245396371966916094864688296921671637922238355145131735131416561643256257673457693898411207955345825642218642490565476643721694635869194338901079251355870956926990637559481769516092064633293071103557434323282678382064512538714095514130061783202019834915445437350687749144681482373978668628325492198067382672836396152018565207824186495591229988579602153884658663820438183212887382916634028025575486041076035431144113690537590060278949305377937191868021185703478375939388745054817486463922134749297868704821510903951743616878531223126948196401400829780660883097092235817022443338442470521108569804593779154841485066850175199572893131170888601982959876277102627255898685864757273503108103427560881138885114393246080893892697061427068614355798232879122048919813249910286322332076064076969757187686220528711449966966576752943637912454717565404062439888672849391091682463384487205442760000563487851421861197806792948431595159870921526925277528361327213930373548372038631165205219811788880854939073028881733325158887391231316704949415069924098247973907656883410639137408517378523699677806071585629349839748647005212653615880190544168962896229412148629020279148827775894311576098403945908896932528350351645704759994972839344535979772034939053075014732880090505086520488730955181626755967134581019960747439934377363180863162702380299713188823339042322094306362931442794320340692227105571626292823207829308255363286124927588526437571522956531617130457100496996039805294160026261970418341957353063021315009840054230992600967530709926054777160531577087416444678133067544749851421277349823674502088389185689856250310682958053757049069163512041400548530743807537395167753028062229430941030100752216545784776630917233732004451382460257104899935554722492029185973780824190643345154527779617019164508289529860286458118767970465960503334458531708322357128449829123400076917582645328116637675814042165158655773320361760957029735634335091824285102728581086027279933718678273336526301099105515400572550121807158952788982486672202403478554749250813488144876416353722865841345842774939312955607687972229038404476371852907509081678354949172699568011293238447526177021015592508180103550004577323412880201742418100897170086478259672827585392465615325827648960377214036523631196636697508211535653035815840473619960938679191370995874760592350229602851318265569373689220554243105392154387441195096456765965105721655309228399672990407535500338375324945359293838805320327566510873907741710955870704579281622535843279088098360787444904719578759451007535921207794761585868976862024715404589552410505896424740885761540516647723531725778180797706075962121758416885150883714757227534792981050515100557208690323991773815928116475789041394583048188217548143326230804704421838126617159695696475537507924230188453833153816373691488196874525420449677549108528215911296864545634721464782570123823862292766882921383905496285276450407223752053128135884761741010139604569157704401314145008391108739167094215509073339783766417444850457090375551061257797528761491365919153091051633497452989799384060981419428448793364080353400366232125650824043878136517860951583979356011416178222779426597752164109106509486704782509919574430412893315419318759702081623242150261908895746495019430135763200477290081519816004024724420803300234178892124474165450225899655437691089980061624734364405977278953110783316207236889269258103423137859608606619893857668174450685772153753694748769596899781854476992680623606644339210979807369513329926754617075568792716107402977297072997887557622651697988115603382291965509079606334513258100478924993003179417652716995442569787961507811727499781108953807075181614178599918207868514333598282403072378974124175045453251519992909675712931563018824353416606471435539987358927201775324805442654280673977773581812624332720065307987960375007188031755280142990819400682985713323395590731505870489994170880414001109667154951955896270610369026573291338451120985252950720114382308738099868120211383386093859535712371016766190167565565076349596895214196827136779802433054218003633786063366855436440626269080458847479577094568210616956686504068150233376904915156232618853153649295241165482551717177368817879993213703140816982456520152717291396049995627619344691799805717096425136945441847080312899190247948906761729855610150190006723541374490737075264194666066791974944254520254065766513032992620785234779679576697643618855546697394321033606569594234842770316385114251006975509140932182615482300541354236665966455180660706185602720825921786014593474099279008551245938166608181286279624440255143064898883223822171255429414463385717311509478179936060610564226185685833360977693673451796024550200366798852450092099198051913180542933837467876486599538392424235278290872431821560558131346388425710111824581595974761855084989484186875616334674111083093590364197390613115771356932726356465646517001579238837797721790980165724909624825402255158337801466222372621308442787512702002531018631349404021479729991131388275267437701550503737841950957969877559945354969643709827571219034892945742139059576201648842815441456138551184084466209073662588660578237133718269781285600543665475817316354057599926677759183709533596417565207904247235756218878023305685109761768066541963327169977086187221228523425848716405163486594673883499699328753562174820581225544510715069884335298740406071272473596607830890348435754403982371465510996139943789394839064321641117421855182554092845875933054287305533595852366082674176747659008572417695338326422344929062596509995041841042268338056083162585480708307681713950613335325217462512505124254084656993937147613281515293989361792773488751640847830982345038110947395993718566830262589595210006112937324363264552807837628449610971173385551160354169265752120295310374041813941880123686795085964102367212102628359218643651764092010486774943639844133476877052538627076849163456855749871769170955301080940776220027010286782732819414943769896747959749026231975061277168000206690480545787110823749099896923014555967514267998689726895331764930311298112097716467398714289268624891567623851226453238853819191782568139344501312561751764550600049022132016989847055467370204747001886878559310401600522033078999182624437296162450199383891004956076424193087824314728980637344456276748925309860577516160492332322821167499045231691642415179644510211648770360488598958555111464913294920767764374299375054359137177385335950258076737256066455360126645807063105702132154141844591562426564269769120376370744488375323602833329043009471831603775543874080337750494606238111557860142703931803180787841254755494898005431478923014022543658483933007082168039767053704650483172082236053169420596676820267369575425190393767626250988823969518946475273740721280313898301547949504121181571831755262178138012086491376575328870497017563981217862579675453097617460295995034634516221696414396028970845537481048112439768092533732461313708538852405731832998049676531971325188143408432061752163465556708746195773047577729908066873743573344705070977278275238764027882948494765398116636509741822984154351560875495297709281748924089159931074056361392057707552499741509666452562997681108563881112497936172126430881576028981644612393152431330548866787729392636171044687285472917502293782054399926242028199225776667027055866244759208095829269042578879671368805915545415232665413308182667689465596941507225917387881861696777162506465080544722486581270084581097853307372463294204152909370204340960288008125145355535619975976702149162737614368632238944890690035257758581450138670400456123431513881013897471998588775639651799551851225498823955485255112357453268339047710954132050410803068258941987942454433178510748020421153008468516071745167354124983255231853947001920158431226598140944058620601155074649342477637368867560737693233284393024516853390760801887621449421721250744316517502953842235459561908436980502837772358846427129361662201564924000608776567046705315974273605353035542656953748719587719941040425668941333518567826423338190709324524448619935523827931622381850132337171542120550846496099241887528883938740388085710055386168211128188705923848501920700027616942934685263861711273166278865052332002134297215319129112523691538415084464180055507069931071294937883737488804106370842699462811097379166880805799825693290430439617937642335375471098546121689443579512166944374605588587340919302394436582867738744234094944045258315080871846508564845584680156312124968401228660706562640522159959669978545610445087105660497106225527559224942785346994566446311735520220265369294520964698203672314993558876942361939269228717437866180444489266324400255636678319376509211273556969675237290277491187748001177118822799918204816797893727609395884803261562258738201718800530365705351552678105569740460919497405202061366561600391207913069866328660275429577139927167222772675940804832032166448160982654716535074039659273936322344640737293033972046316879465339785632298457319924860896444628259401829680413762070977815083126705132851789751648758188861597848022342819000683825864950850176674843786253074381500099551737123526168821629204909663138584030088573805503282454067406085415951747911633105756962308703534040191022126063102524978789703952975250768701052901446394551042176698156251600771395481972011361882845108216039466311192272140394770408078090982568030727069661358442403680834113283368622948697425528446512643873247675590227546351526721887636204359049788879050456571917690346289785882713487431962085752072000487635091012729610977384273209526927679763785986094742922963815702233423610038290271573292848011154912041182688866691771447167908818490044146050505791871501775331102752062277232274969201650439177893213267496846638012472749114681995579747270040296086471313731262013885509500399598162501367666755907341478099781508141155899848639936728670014919320374832839169471249910076555596784832503822686504891656177204844350492320672956244730074349303079751526401370537090009959061156682036223398626139132624138705732571155837870366126109069353309544703172189088965235884964654700479508214844000507768884380241813461189617304654895268981812628968020675435320382313702621943245722386928065078550544303814743421519534455412156162313467501463340993827540342897200066693284788590182338142794743678933739624718265060494780264199849076063405348397318881167351119168044180744921308958083954220116670052129591405995150788307600411980033887977186367367727184896065093088184472458269398759690638185926148191490158216684712429665083810121871206375938746136246124361890869737257390159620621118224436338234918722575749546355321530012212128403020319619518482030236337039863477794615523772310346951537404010136309666813084826621239131075822350450152559232316708617868926109780881446782045389132882836321535383572629209189268173906843348906595139881487391377390061948360960123438740549736793467232036216646600126107324996229658846109647963194984593049491296439779169701680775244804098718944216785281542376879999354782916478579513896310850013959207744442863146866223655999578681616270422087744351362282485025913499498058524155371350995269251081865312017205759525298402044853802418250272858474204542780624974735061620753048679477619553986027755562444492209339545326445675367060263975206084145949903477979161020775013626949095129961361572963216035041359068085264004277222073745873183894385213355306732349654605288178980530415317248626794438944725023506096727133091492892185911094150732003545245873780363864758876336317078136266115826393991715670587009005569601344358106300766335293794221926042131662037184515480928662843098148566765367521468098044925055999674268180794579521460132909006159352457827997394528626104843832275587254224292898790100319297288490762202100110729237894357418744626005145880248558680755793961031413409916314585286060496865083248229589430510017727636333833281991602764235735482398982007967827927616568933738050786391383935322632034884276391965952482971851648482566403865113580707874797612789077546629196363095376810490003035277958200803371457378255898985857415730349956725510905378042864894558883472019820996080629935072483764660232177760394446408534859436689797006215438342595051299408624445771857199881826812491780678602682139167856437252846237377619277866406977114996563394570160200355092177927002255706392892623821989205620970610088760090560719881591475211474615407509412140738955639932741441810734882674018977861137728094581898712129187753496448323731710703051811083941264231560113780586652218467023834159759854301387190892365801392953810953400144810476127887315098234607497655329403251149426880777978324065802188801689134806873892712813314057495326011539387140320190042428818239459348340585917928148253488406714677437383510328403574795053197767672179517870689708887188163056812293307840367031328121229179038458167652940243225648705888292264835915047517722314646883754729643102124175394143612002250605514884633204761458316101223213207560500504287971861944322227631504089230471371036884117065306202125668629931777990231781309554392003231181586414915824400039373343239179824748386582451461997273809170153822654932035803763593047159461808438409556433178201122642170926099801531396673133781907099149396737218767514755611958256958058430715210317403403479942752303501872811774685825144553780217214748060290800582366043186001419625518963252273148153423500216195317549196390140386237932767786335791803033353484145407124470952540631184316837894387528516802049879583455687724490906354953754035240377113736258604675603095037269871291605712145511267894539511533101457456462391544781762520985602087754558130871738250763372547227601047062179574533857399514409784161993796726727317119623342460622848992930098860565215111283390991981529914229694569298498589074848076243778584448418765458461681202531264467162836167587064163811275657378343680615067882088299728125642798221424997676068127822433846748294063857870832833391184432590852168648183790442881848808199625505460186648218722063122904852273700066550912674970685699025972683994498262624765187910425358898217161417560988351453350488607731549709068926394611095418291645918194723482866327236757643565654516262392111938207084104483592256110561834095636746068330761660148173748168752700395615728441216202911829173389956616589012132201461089967893896664288927887059114902956428908022234683978547046758536908620181071973642054306191805753560929565747956913465644101851841099485806610163885125047195549122227364152548954138292858387374800088483026176123427928197190624847715318451896978926810064357563462968977450696080730505001328765494626988932765852178754524370874307613158084667548534587145020680910439964200253954871513421132794401764738156598161832468111453124514924962807763733331026624230838723176255030220549540830862762993432054648535622256188196258714319505291485164116844978353435868776068513099869766146064192512917643170009382917626231049142950780911568483278374401662085583241855263039963227135538413471113358216975735195314046521868271231371438066119956200031951225995507282825885957519823913522811246148041327217405203055295958619010068994556288143278171353192006499131304047458655721847566578448822744545468322229604749006802062805305169152683801659889620198120429618407328095957904134175190899763629797165095418021634312523489559157834559418211244707277595805828818274220685758196847387934523629704354533977446909600533041395249008594910904352315448154448413168348363887181693138978971211097725130400535776441899010890834041084422905111175630002187015476165951601897823689895966456555968730483194488588040662611224170895497470988098798405836088163131388285590616562759587493521606806423668929687714606535399688602715987238744062621007240386541303877083442769551831805826775010395602595908622693472665261503595937229934046735877040874487001147509844789739199026222953781941059042472430258493162192351231710629146864402865085885692516750580556811323837590912243613321720840238856482759427414764465049789995150439586596999614126317842286644829044191460383633337124586911789507342991228463353750976399889825076666596181286019407796230449488479268875123260049786524383631073746694101609217527414251738583890197338015269581434761970676083423567060992239640101580520628925135594850073783194152738463575415340075280774806893721941327680718572024936401988896272142735802112750493955858925319649617319876817282674642615967583834851601551898127348019169414184523632470589309978836827102799301687745798620974953275612195147362144390068389806609386071457988538121553658493010811775063997703006257219779770628564944426431091180802009407909479306797676422132933002221684431892165181644336254845138733821356205342386350196838589103172609603213387046333301380480123814601635574685410938259543985097527357803174347067285128011208971872102940039830330712365856265780152354573439445181661073057768710394908416435624417404855388389565403905365268538721568948258796934186608620229772559079823362943984827289217885942020057372665510432970648571864698895632984371218854856122242519692465606013100525243608962352283184033700955044443228959170877121165191719895116282630126223082589356761912746525261945627692340582106080274310396874968325825674291592837319472344579280053794711555603021921274396907200935920582183374583325920889435293330392399423741970489340483315538741024950217152816732123805642053232410874013302677903015471499760444960447862691081905878870535356903892118013108668003051974310771199688317568953408016175238374818002258812909270297110531845581671816424696735736428618324143639915866036489180481828668082445534437963588440420384926872440405945099902893598478663547559916669391395560439537523411493271758345015161229558030186494167057312812731030989512589589894721611225541634056558597847414179871593967965346157758318212602387345806539937553789525013381901673929572234823675912279546368140696881345256430006276446013804158824118088460832800780232838632764636045360654063624669379894112756385808774069283709341347998517478560658313691335464000776101140318408267143300712794971696512285831005904870093897716959415800124293194216995899863943294977682949894356913964080094968213782508383965647923669977994799306079031773861539073773546028747785673261824874069046214403943708620850127084949238243160943731158226461360400588594701370467781740814402366808548942060421640478707931170820315344882751728394961408363952529775837852469283701176112289937864743297530896856578188346897477866544116974536696996514833350263131716231924657840883010181440591570333517225476419779989539246943303976895429764444071437605265323919134585052034009550574529595180634179672372347411144628695031411605953153227515522936212917711187143988279986479894156360291754626445440771053981280548602131739183738142258272331060277963514875082859421358819909629856956006094430132124613649876537003317231108067039771105407480291523163765950522269287310087918554341221126464951466103875862030485190407723559886006221910308483389027321212725715805547687221420750480498951772702206500600564651915484279509372264653981022276819755670756982050186734005872772188108499278221919363320454960711321036655234143188036653905101189009483454406818084245304632443543171854163471999863594105470503603367518771192274443096224578678121155267307886956522060778229057339842665548655482598347210760324980038255445175736207157654783683919743719287746545259430821775605353071117301182480905465756339729319999133793211219983926671592839734675223849889372224247884419845369988789695835663791323752810905873702549835084291152038061555356038397734327016261558775611641929619672367779867229351180981895921817631331890436334926434483432873215057578652110105229239999486709826032815112537494641005140085399656122654954896176620127662791148834067262692999549916187441644359982686154889601510669152316548720097588938346117986858316952024685655228797727952199745687382756850110496706314998979466171284006643968389093639607959853117080819132404804289735572465643908871591565262580182170256117669277562199011180517303881423687227175341157236487402819328698711867132347699297694317142621173290053296311677912683600277583110444215099533455946697475344221084236416194351313357970756760292476174016943027216917874239399476827033284360899130001700327495621028153835723946696443923804825492872344734155849031139515261019364168942982370137341986386852675284422253179163640874905808930461657950054081335317401025498733598283085582555391499150021467674911264474189089689455710376300520298737314574769004145004045241107206954317680469274992549307630036081824528658100922432694795179991060342714896420710891993179705242475296591657215750142463146209421685042644922071342489775838340394994241576088746336123513612246243739367628115968471456418816999079966429377194964844020100745283206520871618388250793141624960355267400375678865686308999799814746354487901182980144789674812345371482180684823251894689655646452486043327049311012692868289389349916282343383997376784369977601910509157436874963618180459438247029950981708276062451090871050954676492157040209911044040233832556183441732387334797681486675211610308023034413035425943120852368361868087990820559497705886218587495536705228838383709291559130815706832198428425302817713491815727300124424975541303888300792486617161895646068561013413467695233543739884778491610227221301366728127428794187081446423893028703385380149605570565351461162702592927087271243925340040405951729836422310007131637988645177784512193694185835781770745228325690595050371731068780149893046776421567898864999400664506475094824579653687647399346424280122011311606171613748063086300313687071094966568768865688613879332804896913228821687675184720431995617616302278643103443429949187682262829035275304416749312038062575071184281240735233831311697701583776216419558873696373965630256226598959144478007574137577259076660951839735235906918242825791060801696115210589941096628566416002974284161771331911832480245109182562355021395283839642516773279251601800700809360206712367864830219425719261200330963764539716045484015277075930195557167251467275900413103084157898919385202808220414190830443461625003778524339690904574835282115577726585678906189645051222429498897210928932958849092537175505998754623424881176328052839428415653298166409840680181498923566297230973380040557392091743129192881927997548163866829748896271459986462176444009517567491319001077381645514748491124914903552080547251052121992890008311954929556354872650134702923575390520559488726356290626027684454366412482075108791592758813484636595821351160905185633964347425473954837533391261150299526454561603333707241096965712662355959455977426448097478792580246327557266659129424440858145237403185264124358310362119875735769081904726159253146457313603348158086499054847511235998052546395941333498987723047289938007401014978819151177123239555168850636443204137343233314821444362507107893493970147189999244048138642695893314521405488216151963063770456380138018078852806893491970147930641367045631950423730015120378488632717583986816227291586498888898104631382587568638752716578758952668970736774470366265411851951953619439831970110226665727998318725724931162221221205282858792386937551002298195638085354435886900784046287248497617597326155763205096602161043492482291491017524236976706610392823661521217769850982820804989592120465114019481339670954849229378565743993900357778749219176312609200456396983022664350543533564213429566391702303926967817927580025569552063181827648364305854982721194664650753122851385421621783201367928008587341031326194190601056907792067196920317335015972182592384896966817246539821913829395650251891780384288414654601803501691537166042130467722178670129676533354192836184783119472224024057926412727138474293797651401569837192348360071498216755370322016321537519128683909811595075726215798099513260347518567603854726980736092790824519123372264507866681808235855979874194575198105857471326554148724954105980893659144485754273423646241131006468950035610689032021700654870215698160661237991136844314546310096976098579677498936843682059878827867292252245478303622480845172829114618626550071385148653639352517777020068861742302444187888250744337561363987617684167773831286542897904836160686432600853545916512556670940427969521663120464716305145590757177351610722708357953865632962484431999625506073049068445379586495222852661897621624375239322329943426315172227187030056287731657903931548029960370948618212752661706637223455028441270375713014287913790216432677124205046113910465679119340913590363170693757322121596855189052951458660362319132904018435321836052548665890608742465417440628173450783112835963007044108295515381324891074347504995625413187513268475027653602513657979580294954465033454833706409852240454716993047330906247505616642901868620504730586778792500285327249486065419712542738357053264117006226426279637740920986068371977454463978192330425186686010082016409938179590720065460665254106290659807265058972144412930323538510023322584641739878053526045543216663233611516438658245429515814018600797791189037843924231138482482469648106658454342299369105134181874175366027601746116248864336413926466003514139158142406628102799711400664259990028725641317440460079580934895350315185725107908142834878672592166189438113946723137176848178209147607983460536335440935528405955761375977941955293918343058651755999436641472446256917275368575534888263760375333984708538969653026744669459387069571028799285974547474272679159446119974317079005425651476537429323997127003849345200631410626005505943055097349994410103786590676942985838059611935108053500157864704589879430267314211830873276628776230423369229582022686312096549106799269145751400176047798760920424139790396754981324597917401041635889958166471070009184221862070836216249353257424201744230680793116726638016049827303988519929366750083652831049260122736306950657332330624415843326099357459365226423889424518729315005315915972166139609895486672761048471399951774660742846452039092685911557205541810089322629962233621041032659905552547490998839290184225763516203193892878001014448037515291905396354815799954403779645408234050207308055026223855349584375409552630005778098807212185527950964678895133424691412029291007238600335712730939888918293402659009060188010407939389214843268575098431504680131886892986229044913307371941856852924131284640503269677067396279414937570719535279175652135810313879363304141099123102313216765225343231573516687883644568079615321123601019298533855914389681797248917143416189839163288785513596680480929919954741499346547752176747827828086821156005493275894759091416547714585391561906725793222425812800884395196735921122791697184199009731182509091122995223642242186470095675266976911116089975431688552112062584606504849663665858020261210240233009310876213867705775715763356763492387109767134634885226482705513907443829181935123252599640103844303250850258849913998650451026268526056771432757653849849443545011450009290582686702153679848829313555888860132462743443424105402104697973528843830728219415425813920438877618957123639155840714682185003119548749517347706331960941820727302177718463976597315795843604666670605915731979573034832189118625492968829554153241054530134037227775125168440271673628812836758369886007169451174153585134013295157145514206175958915379901827478979340845660798879368147097871351754522219606849163878105011211736960379181900738353112990757053760617625348330172173373843096593318890585869646741086418574225224215967079404100657475446445099500457298589727662123054598602950822671211137822006062952523102566025420604928691633371676642629813549646309615479292302747005894476385123130287695838950858343232775715728374318870842995107831390439214403191139368008052224422120336581771376327044099791219567260766587014288802932722024034055404644278867521422326420679281425442810879626264486875114088771724914994854982833620066019446923251654084428917306200092682873044838072136085116450615717637963845736301210886134269908802183618325645268111754576189673599036589069335754190350650197239289160357072065473260377115041241179026085739181275699236318027723692573714461306125168282182943021055821256690754126442488125274947159190988765684346254795499056334436926000537400083644814307120358371450114538345726569764820560860240993347277259741659307501351464097875803309008846124080135972801844228092887067738096598134713508314784518029592245055621938391695322981839250604109812000557030412969815148244393310199344926593138967841545448505704711743148464639580474885023905596821865482778421641643286998371821340380699683144941983539211426902721447750709327791893522377100504964430394641005503462918664103373813480677807491150530496253681391227889941378762650006511797164656924127490960991000010804888878146237974114751369247369884240010505205490771574972995068214654129685289479872606404974528903483305652334390021595212373298962927677595003107570008076934613374987335440947365973328890602437584133716881504038513682441671209120237257785862341896263003294037392211762153045998781486003694708269891687758832017156985008785888900700158178895497010659161832367768727000669850955266362732134117822742370982318949433752053842960495307313063807452466526481120222089236768761072215064913869019963305599840244264266119467686207819617929908349993723365253985148077395875882685992869637648894418406423685863408687976933697936704934163503450386009840021700447366123445659385220045965505476586639970144112563154805436975893299062077204903583398303944388814786489622165722473718294144327065900632012816083957239465560212525648552213648995891365243477891083954179864064794245466876970973690205121460566566193460734993576726128662098139444409445682726657699366319389955160334983120183479047995780595297687202616224318886033820103131371545982897554920948291290394254702235996218473582419725658250772103708138288857792937915159787008694087354330788839766640072373581947445510933198015781618869357372098384313851877655484699271522011205113464506764363295352136166949601351615426944471485059939487715271148636616348709862409553420345012124935882811807039905535511812312214740591239142787972547768878736848185043513383560175074392882199098101115439603569107691376291716193290072640054565343237614293686969382185383554423752700789478118087511229983625895303338814606652254950539201424153004649381500491033578308866346364991465758128309948149619094796710975272416200721958481805677473797140788010898442140365511787466346187248119633197419210476487148463463723455409997050372681065319635597780397777459155007449806695842995232157175168480130786751067915788291409754366316237741927243778086881739712651979059207588199423171242542648614655805706462956815855276915545304509932819644345301216031762222919346422861493993773187704607503768229686582450788442989839653542729052650045781066676479250576716252678373242677198146401032200326516841611747172305090415459621541538773057862598842405473156063058649404092850938573888953353929886694112470362846577580454592958583495306274398544408737618138821821863361774388974556183944037923985668220869249858669307926601865116139376703698687673737229034660718667257912992235860561818403573328425424553045293918355506794523404455144035736298252870373696358121974141853830317535803031094663919458675539906874974169469568092441878827267159483018341989187514300772901727679596125974700399781107777586854194054484114460704840685096172962386429911633845461126803983154951793006673669892045775762468027790517118653984154818047800591425145734087527238135789340955866216173527511121370396881276458410590608110327326068027146800002380299237015100273833914298755158431183676722773511973347758392252282575793728302754376060405658274477125318110734122977127157856154279107448468146539449475936893610967343592238912947611533719012853693134787059879782093528522200339312453395894655083616368961229563055207291618129391883282605388015839420292408957603613989777807649801011377569662261890319063208256155431941147791193411065901762994148381791686871755782744023700953474787395162458616189332332862321482513290530088723171227208330455756858809739735904745861682601899929316531502825120638256867045605141406788543145446767534040374664576692929484614390593310304198502413887955307629562246274118084935957400080024318671669625909829989600291835242802624413183145810098099002638587249285157001933470440148220423808515225520680192090324788692827851775350329989645637993789368707725001094753921243234892767259545850906979482251830369285189552648072087159830744986647514055022793386954886738278688515004348155852324231595845366578348816979508578603833420899001190470428156638050168465644750398801175982097932784000516191882597306098733066531050264840063386537162881010070659063627818128529756285654090169253879511970487538823678618139344446760339131654896800251119434690623605727806490470216796315012334045083711640055333145856467449165309591023666754336702594234907227346930835436470780280281773153820569315116983980129248061210623567265030476467779035189087178058538488327996679046498042307230284712905266130887932027191565074781588513565621254713737094542744261278680463577370060606471154267584725387420656482508778902767604886481911289450219052437518054489165530445145302280562037921504248339531345620122109909264658180169019575130008240318008844965252710596309539285150441699750628770940710475323906555311051709481652310103093707763611963372939046261948725092516932779640262010152267502270928423378595273495399896726184997585897111785261346744669753366308442197590959488038054435785715960203942996550591111253574524743223718158386429524584545887176061562330194310879140123808361238505581293813712680349598622528446983250180316385577150431064002847626276889078184525045649601331858410936086463593806136656023025351371050217230549453810732995105464672602765704323294529632944983385237486265148543233640179135753924523543658341770000141069506471720263939897309032077385739674419544460091791716785722202877458054082137054657966050828955941796777242822101062564495975717574969197064850973449357436198915466084935477341263351786808451481921981626088474017247423008165343391721216716039160818604322614463044821631403734879748785354487234297062105327152911940267352251040383805208965465830566272672362276331321032424076210222201879598668731008304289684008809912330555524818889596129422088494614975048093813883066174261406325222035191626308119225396637068055022360875692641157641030941978847799654242495489604523971561230884783728211117334655444954231653398968224576222167809002690718067291885056486748942491932975477144136555350716282325202327676126499865637466543605294512545076832106252589820064869141274380430524611176226067171267678290942407685383050351482807759142745758641373314151441468142375633578092303792272206363574097261229855795018220101980518321984297790443168661184025931959729534837800658733646608047312350023081557520340788833361160805670615026537494975188417092040147981427848518361564072549587450432781197778040688433665391286125645939310150191356316184328697504552345722395594414078663612234433460333054405053569353783482941145366111331725077767337815766201219747732485361849531614935633612447042617338218155849289169162917788273195893874879060465166522569662223640435904055916443074038068599369269961870852481850343535700562906949409020879065354625216415814386294583365850202932401141594714096734541538176259407143215923918213460346761631730050951445000625506720911334959253716584873627813905410126241113564367721966868427536009571717561832400840852646882305362776977691133450579515325670442422004153570240583981258306093432828274183846483373258460262047348151250241799103723340339271747488350936479303934461319367688612353582447759082482265372490712993833059216017436138357348199259903023060321237213918619558835153285405885542576850634019860045776376612980475436566041948990622262426864768814471266180107372063044053386445467337804489969693188411757696598483170118657189452003727736399591492099822488343944889282488493830586867029377588429425494239368581039874437405668556697908083222124990313660638269479007751412820837523223369645372883914979684402272785502752738363077612137305015400001029497885098202610415170793917523905916022467339271111510985527841900649928946256030498735432696411041930832199551897041315780065943559119696765233310600951945164662880533089473473551532328162822801158380082196263908250617918561489123483232390434242863124563205939670095650974303811995428662026631161782017437663064004126671343994013366769355643938578482725883295219673511939291446323416536535918144643561965990155771559158278225257404216730684777327511503266188840238706230799624886790304569666950831434469090975180441475683398799318054030797740072131833706979690037041078023437293904036098926253782837477348841910144172360379947726134793751866468202592445014388679155382778223852884166829358819605119873011951631707051793091060027174628476979541124043140770226913616575266013532563261141548857692484307075078803922665563969604049039651005481226552030507679015820152098679212776806530699194219927403185797161037915239279073629000111959464644286451163926333664880951041152162385246404410425593297932166814427526497307719256773644890816171652913347820859745771691280218623825261360812086101191183232457482559770278880347527907205395146289688951627763142880008503635045903004179227762793243587319713061633944654217277598064174387218155034186464895040010844343306946633905753562919239494586484368670114781226890589543879899103925999152571536289274015722611841169148736242604830635851690481225270619980865890026681228276018251874772010272151114275462151380226470195507173110602901172537272548472218072575708802787761181402994465317516812277385772125601272060691601069470908840835203256435626242414622866814888288116896966958585581587285880377719206296757314445255293389165885595948465229275578342402729163439316193248963985796315925921896590361423929729738199405551140023414019179414159494223300189155628350014539801251376081303178466202580387943118683866312104185276870696263217674775101308371110511235839176075675728370556676429646868979489088311249267554771771047284926857352580440030298860973134199076622862598489794018034926238281686977180771253685443210442753325162564203910238306691839280185147600601820499203835019573843208821844558366197431486928796464396672975103240278688104273891836625866950643366245208384169219847203636504244902939700141503115570132536045323211888898142980227253290690008643820407334446073143758372886445408578013586190580494204409309931617902134548600452528625507800041612569467437019970034557573959503116086803015388484542074672555070354781126887607001580161810180278537324429555159991118976472495915833126128329729068693334161372203146704630537495634692447929637667829721091188321770720262298116387113090015344748372185572964824758743238722202742629252177310278098976171997292157456825377024944265338896693529039061349113785430230787565262996091770453522919914066940271156609100044622664985826738456918926491134684981429152514711907830272573632382835386473324779081619753390914761248792068311342833206837689190849495758851196822553802466783627189628489242971663655875259115708958900975898198712121300223660642484589573848923494551910420362974466457648096450315401300132156363815310169752365881085292053125924730855114369548746670230666620103265496707530884679971195662014782299746790907856559107561147179397841900315809816765916829204874003609633835390269964622892756908206198311202183629910610733180483966513732794392266913395635205319866132459076003267120882569135696437566282733680826290181932124524958787475975741738540878649535602565443031029042810638488371527360894606170104476319758527871191483140628915912515838784694658219447822604390149201386678848853536418952973723760999447627013199255454507894611813157060126800843833795851208214013111997969023033325189175939856927207280667770140183917621916539690388702284862608656082074421926759888713874019054410755030968098623730621624123327266778262927008925088661353755657537053379362228232890878408410154590719845589744879011891343772751887687191214863085635640153803749232298153953039512445555169498487163035304384788488177475321520042277590702057813843155459826402065712678584413677481271688590779243807709852251662270556667607356473215298965722374688714773335334357049170318865964245243936506806778611308174867244327669495808491719398469006233248488257091445766229382785838754706170310960906948143586394848840027094051447355646274476926639780457253564653918972751250193857965571665103634217942408429725350228442182708502182586849242935699973682458387375632494292173764238972914978205531399711183468067189280895602210597311940488561961304645970128953358081141302724985854978463980191570043589793496310331112131788250780726925587916464394341530002856937444230761380009428333612696005956081496475108599739916028489392382869303126563179838269883459357400485138000868689175989032526501068685484868460761171332048437465125093938961164477586641397775889750366084875950577697511524484533468435076854025732904210779029164083752385460164944524676646358859449173467531828508293411386411756914951438369011825003902087861498650263189262795798976161338544869828890866176372375088701787457465327098208230666770080025701484666689446782062615743357225853790109098262295387733203481478901342157893812761197159193724759971422761996895774338240216148184533972852223004798297510688421330322151179099208340194250659023445434234281424641080299989649054992167075550805357197024544756447382663529665059620266361320184176758808246943232063336449410510298603213822846303999643073259399983068169713600811291450730416984648385133359504738858183936458673303059911223379993714626887005227348227545413274519827825266504478159358936750941817168798050378695837305549945876815107257098421523248333357186472211303037648744489845868853333980799879975429329892673167118829274970395009229772870211795730620933789867055834988147286677872979321530138482470156641937910887085207904003371581153637591867836140649983203998619299825119146539109006440069998526027985967449512923470699743988789077135943002254515121219354765530793161942897376291753717289898215817011592332009810016253846599288233746048042455573988373643828165453224900015758757838472817582089173163973313006702175197268404209265066033855881368727968986247879845757113553492235033522473019053020857547453685361631285866260266298147466224513787976658961017725973838291400363384367011954438359896493570129941671010893951332243388488075832879722147379878829938824370470056753104373757875084711010603238115826890545171568957115729503034443174376607113244861929417953193435116742992268151559014448305073183116332770639205628602174606749081966906002933536216577687597754309670807830876974074627845034208226455861131073403390697932705975464245852522514431373023167932490664057689708462250244770315033842371771661714667647320765693806863788307004076312563585143769749025188542886655475074928528229771366446695402186474212644338388702149738275341776487758930065782668542551840683953844863549755681316292850411568335192114100998942683881472705087224137166925800196217146909182476608798592277138021972466693517383837281632236320761378173569828963873688248395358208821103040875037494017927053767343738567773788019630025830447132011602531341260476027524838671310297665685062227481591647584412220991364933968347048566122129148047682300730544597644109219585268720726989542104963961273075846727332578669134811453049448739662394614761669312528605503427405759726921559219328416372856783632220138043079276254155554630519046048398540228230630495025436095953573534476171777625547075369993779241730355058473296524580346107984001383944614501608862987175683338705469504530276420668810836403720903228440376633290055516480743546387913343375226955705662744322925515926726277389900890093816773847159398814156225431954399213717676194623004779648498270372477788829636830095711863134899447326308476457787484271947435748456847542676383629597993191883132159853000081189532111502719271239010205804172007132833614230502214815868794340243630520468056472034352032655262362314738795541654069101680422759322462958572234049922907879876980353018200826806693428655434824441042753752041441899982318765280159284596410149429331206742362127562909275576384903071054902098177657494762580927797576890282839455930577428590159825069521845913105219212435994343796606906757000055899475285630129067201833984440222849344700995090123940397621027134788417737668022322418965931290716955414060715464639494276431873240755570712489088828235601292055083766368236512509888739861233372740243151358233524561309153314468583558391197962401520017043757483326704545771615507325441617460490443565802732157032288384801766124080660588917534478379371255089897380283115210880983751021567032840636728742416660254348295764837531784684344989621210199037944699065680076080940349360096117725667781032846159133317885476361029219990836821995549608545070093681030564929506605848963988069315715327724048764065243433616407079509060489638393903602918484176482940158684170780113165372130206665099958923055625999941057419826634931403874859816723007156912332907588521063332054882807069510148878618467988240221661609659420162935880434542077294578822837466955453660391224317817935688469582176063874091969791650219419051532284443672734702511142309256330525085433058662578165937187330383552683287982104018013381997269280716183514941463223598276427096534928396726029257635908198446162349530644953699669401980276209493867551003473405250021542198715428771669192053143693128219793760979297805577509658250887955256703689035995609461292047205139238506272767680865843481121213300870303839065396554116980500199502363475367741847844871725611474660928478469603689289353394420695614982842110676253748168271455964361728860922247090626467872519421416945018062200436573624940634250829743212514064368092423897806628884212222415496231446466850124917160391088457270794307528441800983284637190254665580865025068369326809564004685716418208881780444904152022570065900759069975438600970263901558543453695725410974003401745038219321121200799109401034753423318708035052528954629190642953425762071799849192590406736925217978032071741381721904616529767216285907574297635741070061556778470259036960320148631064623234817007941977135991316933563667215770896523237181254708178959976216632564505341248984021629944255247711777757182888740377484150288275348962203727131752097916595586293348503121827455134319314292617018433761797391332229572282826892901629768596567580864865095385367552362672344690842658136856499665924568628799263159390906980959636404804680352743362766070065508719277835911432221358588863276079587690106051563670716904415144242972173577312849660013355118577414598443109540804893690892321843082342177275118384226431372165063953072264943817272642617911629059899980946096053203937449964749837753763654021965208353653405598248502060966145763955482516740265131444789840934164017140545453830588662111122992615437466314578498870637228994060750997487962239627130594058461793603843373627134546569726495710778342526383449192271230674860434466965046508365248125550739765856471035486295661504443057940767335926682067396045909094158977085257504720684970972541075450020305872638252291010844562666678769001366351501953059896607468162474300548029454937907299523566632936096024583973679147665402083023126528291912262013287061151445855575979636729722343601204146525618193623619296010152788236946569364858437652964169083195462046872983880852477818095388848928108097766547884913218498088881652211785168652854352380347537734222086781408208702895790124572661720533840933543665830971951632087360380197017286354158140831512377483608515092203802395221962092122239324756069924345197737509265066044498312529024185800025945718505830716847562896489746048543905362273797523105093772996455989870614677843988117395243333292235512126971111414116289939768955205045268138843075633110354710350135012796814765816155269175505695213864086295355711345134383865363606717793326199735467454410602128624821068904304946687923751285187970276150835525378466311268164357841862710353515692736788432805529588050743821270078723734598154929908374849038968095480203375861372749012190472953528617296320428914225217010213006164078022806063227071056390090953835163311822275934107290428278332467260072594208725942562775166575599670434184013431062116811035658636339414438115815253017066504754641932446760837418790794740050970539032590053954249815870341379071467017392627193153524397534107783027301663358567798215635539254390477902716384521633773460892251046647805895910569506166291237328096170089122245175402668758527028365733275851565785446798166251520276808365151194551245346113593708123980909867647600124335686445482589789287957884714866780531432605956187997650689924798951915599837172205800236361902096888804458831036065893227031047591244257405009106457801117141408536832248181455179361779293457802119918213380866200878210224945128407430766944917285455411454810536927097947067677945441320143060237927787491720571668748056327909916020249840055305711768674173498165514166786948747962270317594605947238423007133878576231197225191821573034465580439870747749499560664638344609519304350839939985336778084407036290544494278867504920483126147775322131244876278819686771822874196351341810737428831498037329448975133060401530253238467525525421046609910386678421919090328263328502676190043159225934527196888002107692104485586170656197858968924052992433150083431062389358228499671371112734985858102573307945715475487566912650489429369276453420105799661388197560869950430915285079208692716816970643180844907757797327910377544497950130806962668590503125960868009938196101286672302164223868471443660745457835196445375531701024342389686352141066658786396720353227703264083175739140636514063849277547106756977266115740349885046521293687023927209415518377167008923577846984864497895688485244379254171683059868468024199904766246602291981098714358351661336505049740514773664945421077278901773723958768564971488053467685796876529968991354747501387999830677377451876012653320872647242691735444796486116851825957487008625722416453515466914316073696527082136436802683721444630106402261934093539630107037140005259774252299914412544474155916879363197335097286609798195391358604669233905467393652112118497199763213695873762370319516391897962471972111219761984459090225605519028606858337181687146364970111754363839906092236693128313482392859833821547178301306309963294621750958382803612011497888450097315520157551402490623113736199766887859168086395745856700095536314703209873541005683636692202168848702691766310588086427059768858300697607934661062954746826524991331103973001039179634063124081260343304264174008430071035763164342514420967906590502203741871072326396563897633753362549915676363074423275106620756473179078940204685612232317388572516061662024559592804876017302328456592256692586074724201404338900945449267618173145485967287534741700178811416311300961438927086201369023099834468579949368936357408800001884887381895536844292368035834956290334872551961925443867019309166782629471826019271266116816087762258008241102337513078885131825155151045611493778625650241706230124500955401937377563997215815596929056801616510814537353873269515162262563202088417131925423834388800002833205136701150447916694719140146782391732473114201810301906658079804487811387871300556055827556838982479001649505767123299735477410345885917303342774276735607433102382268243566084689874900213441593762683833968809789500217767052558972674093907892404965223977246369922443983213781512642325545418250762992957431874318686336773221289053725077626531858929121234893615078676048633873377339608870935731466817658365356461591859871659596638505582951657790637880932896568211627033415852242212720256902562629231644290182665938109182020545626100445980927084231049100019212340607553547695876962660551709981367159422276492951338092808752822303405658774100276507927081473880896265180794171548745729632199335675172854543345214561820717018291338708699059537845229981104441012218312402334335910138285528318019634148777169645777191372872927088413646291378226589738471399823301204212342116283577166757333679216784268827135601918244594793788784815682755843523195566094263852764795260042229808190605493762255844562770903913838337438259529198206100882437182839547952757817781190464544788941228951969360901542154174261480423259863638036153136890767405870917764231234645565827754174154810936692679346304896588864703886779537536782558224222303275140327282771596096493061434364834629164477972814018809290021738058979586678142353143240788582043427167816685636788849502239505730588901092359032038690997338466531079079126770645815598964254042135282984035628949636999761415142891373458348164522039918834403383842364734795007318893924872783262899914653564286720093614576143390815999694467130266377547753383316688004295337909332020543518093353453824764165287175305971092395611068296485275809012466426948496173820307855152424217826212160909913679234376202006517743478644525004809733093035937221787345058642760073301231739765748377639298915393777157789903330666954715242126992587352286155274633636505192008216334399982550167241129574315502074480791580018379320161061947472532119238985223919089686945348120774488697046995378455310076330236294257827839104195274075128561668490095524913150072759181312924859551529511413122682585960377097445983908074052729890773603778387485917162454138562589151711706509335014617388931786532084542289105513814575952608148725337683843316581659776846161966396315534386841771313857396552154064935350826660488980718987486001023657122121473847473226106378393382697138290420242409714262088801450690242371197024041943388216345946746685450364448692375108670310357710544280322342777666958796323716546514984634196553101064425641316250304560920143225163939079403698607361884664759204501011425435284253306383355886499302693741893876718019775724015852764206984016203821533118151040578165773039679814194073943130828383695914143932919488727308918038077535177388934690043108662606229491984102216789425580331514746997435838820039216208724568052579962722679961121770229866436441843155861030721004510101950495264675915445215908990962859728661693127234144190308447081684786213960603670714906337743177592304599696941130865731419371615193828947273632406721886397963169007637055468996138518311988561296284264711429199063138573648600415144417916940321094836685435741314699898708734218048626376785760417652918870554390659856710826350141751588989923035898612271541680275050374925963488227436598936905231253155311900761258421051710551015057548845011656140615331908826494002370616900084331847721966005486093350091641509326908965792258641663620324716844432832599339085282076226359884434132024171273297583163271265896041826307712419536253859944666767750221660024747792220486851734248936302105495526839477547482471880194828438182624043506874678016229153483558107955543395774616985301275093320406972791843341419399644095208727900675947115388976626981871227949275562306141278609935829952696404661366214479005373201087893868261728551127709627542352233413840871572913289764120157046637179721379032592146121216594213250457444057138520534054728582688467943134833396580166948717301922402365122382731297273860006769086810139542660532803634077513244429753503923788872117605175956753247848486081318748523780312925507322324771126616223225840499811765103275699362409195782869367350803393223711110849278011202962298556535440822819918620911749562666550696222926437895648880096055253815780094597060493361039422743352884038357848160173553864678797132806469728139227845451285953152517281008717901975020203592208679728520790761384111387291064545829331471877521310378991344888344454469226170878194404047003366870035005088078635519635081261002419337570762897486909553579262587824419798143357949205928211844092275002408746590075881008258914488679765508790376644475792638709272222456137851618406268793520992955846423066823325022358812462755541017804019182910453467998531372944095862115440368471302948604275600064652570545560159935958881755705571729707328203239469205572091549835574313076330213885195055721404788685142349072473339379329944057057992981261504443553350569629273064003224959315088750441157943243007974751396774537896608376761164990777926060127681958249195083068715309277661012390214028841314337954459620239312238318128720111295724707553981541787791973830870189226832178886214727508604847749160834077293591324526164360074210403326475936170276092579591300301269888666484983562536319170539750294033965340141250009581589968812568029470294356918796445938952660937773792135833027288726512391435525137450066386554395330027453419727270346033267343111139770673720518108577326775498253772368150044521697474003789342475334951634920832546924655374117383105483862268012834051880327318739981193118138624446837264574211054384079763587800738960362124330225670467176895022892644816748395073594320926928842684621300800924921687483198889588243167636543389161488735207416873145949564120048339148854350332966559381043198294894471687017583442235613251367651141019478199357102490923583277838922230317017777278115087452007700554764433770632919550664973857624582382459114939108676886046418252675462814578812332349597572058732314709204586928335948353190367459389622690787592562037083136723207783241202528387750907099525748428875232361457284455292975159522256894460829481926253527881743720087221963637111325381093216433843973011998235026975081058178013102721843099194676421756595841894652561319306692495176995322591158324315869264072524664262663989074781312690301085007883888295714932839868523666375451424067274687605581674618787292711741117983549726814711043681988707472946816829320948308878636690754450218655428799149276964134012135908359797526299803028353823098176790156137397677619175379869773749504237778253106822959259066723159125093760207183990504139613215418098530405950458896063641595608265298584779779958528712948926217482610028124811818322104456128469600845916342208669031816074854894360447523907236140639274399115839931837202249724745247481706120692533220328958884924842800517107299268824910847537799272277654981131277820595678726154200221858520175358833634152376034528684198723322144392224156875267496797912521726238982783747666910239577285204302189999293985930070167416975378432547984476524420124844908184450444390833850689848058190165733380162147688176156060858806908648703357381403500205678614622392410349356827135005782192420571340439730662285953998181578569967128040938321331265998684536348425157991195537736816563194150619980866340785522329230162072085340365511434708132705941265307589803842895245107534388922713393744912739295592703680071655768448848712923887586960318582521650831833120241387513755315294407011420295035342804192653277770113721459680299679576961197407309475730378137359740437644280824216557613797704336787330573186329835468678717705402951873871706477966690834208889447033446502152281310981302386822188192922882806008047917748777614785129906839162087191252123843628914636923591729055333729694831854250607132168814808950594582038924652124531061115412284169841421151764591529938247365677449613291913666479185355093676371370115855762113852013248565037134087515116271152058359667243511791039406390679573121423567506371297657705038272469937374523597638318276525279458772679573383332878796968311305807534923662684014522566721318960362815503210050666563118325443235394909001384791336117032986645554266832358824157534416189115628658103266625112694034581062383423328673931837818077186567676727608856127411667929572382045872990284674441145965697731766381613710892831779494009670612465047342666239729240987589821006986363353765455267884727331050049137930037291451112674677531261718658509808105759688594598574337275956643830799993303521150001019844325267902452076127480071456074764026505685385450939787433477072612138578125169827559335384914983031948420464510194937243687967298679524260189873909025752562995802975820682055473980114030533099116425911552881585452146351514696331046012997966237256287976157945200056023530073360257631374726397949035727517710753844275573626237477240706580307477935464853483324354366027549273686007866143821580343268431405997746147132434555553530149971123483130542824686294120063969598719114139874315148436406122705256312581371893980771429100154648667235025638146088032735065158143644352337890944483260028349690727402125975418568187387936992281248585395855821181800304980162860412549307563010515748655790158080308889364287353383312152169721503998665013677217375423340016091278280977790818801386701948569838295462638910310798423927677821137428423482249608661269948244428667899845564959231364717341580644472624298406438480555411087523333947454844308849355343274287404616033248799417477214075665089854935828904298993859362671366148191000577653237701649056927218593244417863556531110301366084321698989028387001765140074536829846671669797159114514406543475831789725216882806918335386708402559145831985411364598839757442624406344132840641842873122362568618783950536564250379738679312385610788753467587820500242358447197433797469244306041837480724902728824577958876353513963692331262457039944043284580137077687775480365703095614368392699544466822593203177836236199091270333422863718729288817314839109632864652321071597652511871595858559650072190045165287606126038991437607627599500580669619990463379834492551146187413171951226978120621245430051017921181880339199533795305823275878891505048035815176978552381497996910126654333008153278437601052114482793128434369614940065663222977209203374382136680144233831340721893904815736617779873124664731300980843606668739609781032233633837256340665823618155274970247343631913833423780571865263049026532209852990725672126800843257241459404366474698886385838056213612726750085716899021688350281837133049835648021435987359706869240310303289900311166800032659476255108855653767512194967835839606355530695204262579183063065974793364391015165217277298181572307369245838502094615444858002647298871480483827503508490807021499406305315492481079758412597037867717544191567121449121569768367065878738706917707928192528500979379605432768277984714950104127899993256028086959886797523245524163811644387312625197977139808511867950594498703854144503303055576242647088269284478620132045559204423316852893431127299316490966892660211795803331918332960749819249349828102692484468541973752477482981455754964977090522266565858593383892185378351712397186040404294310062079660712655839725445088785186348297879275279912625514998026125853532491625492914632572410515720023937103243371007352197912314985121124603089410875470713322947081985667869450822978743685889037197110973137343662918943891748100511779846323172519326773495613155034105216081219668358194314782317961547576700692945452792662858611880798961380903397602544740157152107513815680933857328318145106832079228439379913181866870042600726512172830502174490682707902064768707640754542555763796649748450907247472392398037222688352823837550116635428989323689772321192428335161982021749424226953463567161697461567949124301284869890697158603181397551973486496081842508068368715423075889364164876845517007550056822349520901206256622675325133375980668516058227521769648392517533728769183203270175031756946590145093398148266958162207184793727295753987111930624234482575275093446258773328538637629273441042523664301395894200696405637432932102978466002311939560864960921231048440999493291841123494620108128477269341754665687721909038555961129811292740333653828091618956681979270047687046685259464198475156933509279617686344351350737116156020628840810391093013935044835493770563658924984084617755264854660220748734645854771142765744086239935361966222122875325398382728585027909760320071491284332254016043545249150866613388244904533327452439586036306481926609924031605356423663803805421781384137814267392767086806862111360146556908623920367588077732259079897959752478387358819508621353734517745532638215401602999501351726844219840749459150303142756104248511731894430681221412267208329102588562901858756786201356042719753786367370209906647177167393913390453887501096020242847867409610325995541207111786714538178367341159092284649482467428984973562923742751872328619136753477013457592633487382842487046968496850600255065670175273012359716014654976491174474676739799257774415393543962656803690991257524120592907375885823905017556580370168841007105700470549036906105692859616162112923299527708581619583465287818841667663011947321783119332549114901351267635093496605769341670445589680425641503776606741633439863489042840178846207254806842157275694958815324291689417849956141140009481069873882931833163289641252331348318940166710864509648400248389355466167113094693303736611580438384655871881557276102498880216964681056863731065357573406295433367125607923236093429320317769325020667251837854034966192620443688666374663544364262765452223093101189008199456730489518900547897166374107195312630302682444657742947124593644266127422526500183067070071719317957843378774230673584422800351395298024204897335122908443405618992781336137991556374738747778542527139615137810936084949405165240272237575754224461897569752179311184162625749679549889397292659791787630944847546626048242651777846945781311244879522037043812188844444572479558407229203911207147507294442289340192061681795554158291111964783838144970668903700197181890121441021608451748945517284001058088316602078387158546287009080118932974181942063719789882170253217823658276435404622065450721615626059608746973934061502257415857479745114320537759940882332748293922897244172243575357740232428474548615613808459408177049925131483434187962194426372314735084171056752364900003086489944286108220683272882502611453757342322471511150663238228288479144300146625764105855171511055476689482620181872689934358923921782648235266265576248810275043738577388636340061119044228217579213811585767525703599891874245299169606876438509078304728539189517323845212638243411841369523507012535761232256495005820663042214333059657972966020477099794445144598513703638480559031338906895843301140306833793313335050197496979293185042523239095695160521840035139680009847154513981363888700894558899247569714837804385011024437119543167875227312174212562753452023708523832635005072731905772653998373995065650920791392755394260753099244983249901211971408126652260343430229187816278867500042281698435367319282354118604815556074430453853200329828296340905301754230108810316173902324009180907616758795848758400800624485376681994232771175658022378107646971037460916575899646163540009310444228634923929708964650796740220432557840394987492336552541929068864964436080620925782775843483561752447152029457710852279876455337814445317027185230193726960959536224032690026735398853691973279208634158581357143463729336803377761353996106694891543783840666324512052864521961290690945918455369320472398115022371292931176632715231177290480995251296138689391948162942138244453427468104075707744295085828498668388748698340704868987022435968862655603679321059776142527601546565162352617646112390818368783602132517965718890638719239555710691091189338722794408841942054974919243120237368477107818052327992296979510368283034229027349016106375879904064989423545744798791662031247671269014411016582628734813588888412481929388143500487053978438847996935960809621690218055405069669419056776659996677382060132617900556126409182669163193566292429997684714782848752487902076706014289554172735426688169924244967175277516516883291567156849956377065873416948122532402052031358788123593687017797308853519747137491220913271882932276875707315253467454108870101868245718128012506084062444411077832333060719905225065304078775475149706902169443983584559683736547218358103905498238631388771964505647669154231105467654033380658676443981409031150279805717279945842882538254918920871926066400462200773342852682536346988129356634058599837064517312806964765999730845520945139295544646995250244708574345464131630218880738025689317158357454380763503017200073833320450416058418894557375055928668924640631409604570605436233019108457574507047217415189534731165403173627234424190708003398283643270548109650776777523782172139037442414646061809337308265225839261617120871642580591913491148478496538277098319132868098358356372552155349088118236632541442139888505025290461917093783171393297166231799826202196565927620528104212647560984562658197637241694530449769085706371227637708934611334475922948791191787883532416022576985711033265992671626873825373343394121212763871482067190377006144391079653968869167297487231496692119714707436937205557797329663517766114818509967547593635478050339682065584527698959345186718867738603785083740036977566784734716915763579938683557117456799035567681247970798224004939497225475409976728943416245401223447281176744038633149645761618861344525196672067678607461830889576768564186678772822952116337842891058374861451530853281791579507400853581248174298066638448738567482288972300663370924336178926705511192477504917270060747004521499892332935559226806733772476099197099663346203884980175903666577071460237077356503986141441410535222738643177049866141695347541580587593532854951048796056891336715043580598544583119606938167166097764412104342364739948355876789640409538605395538352584723677366207005413540914732992696711524160058884424106938100014546997310626876747876734254934668972074675887207273580891987861969526702734781297823178175769935654205160304384089925953649379642109489040683858499160938030243335592289296190523976891732123988644663301603219895416333552129275283881481951349368445939588246497673206152572493007843353122401072720026235036193012426790849391968454034475388083175838020716630974726276186605660810055783098652192458051658862868851896630126255333944708853940621403164049377971338325834469560002768946363884186979512660079784852842256773463005168082661119162703370608240941767506584921301514135615663078129163926669846551889636274266973043955864654909879093925922437778586913390416172581545381850130251400244426538709197835222806061773949990831116374396053656359255387954980737589027718178003844820823517183140230942704750892067869462853651191098160943231117994003451786337139951024760561337909856028636721466730347704084502902601709569830519300748503061906836315993019322795072584851523960129485217284024807498926186219650926762242056549554804173848700732124217420355465823406192319353703214641982961541515855874489517289180868357525873083172967370542264268855396392680061669601623394128146246079944629836406578066023512249392138216152748687023547036538533834116584394843478308107240990244239010164165198811860396477258897023745684182411272059641714901860849472297670588570928540944002634807534863700437236121259778152969412224755518780109253443913491654431268648140301813205267368805925121425014139683331122321985325920772875136899580340155408755449109932997665455660723177681823457246367018256573787861049327455497798599137533677800743654213068238372120084977601756070450937044468987781946455268989064795082761496871098692594130595718733497701472228698494513149911685048828905936084994020510688673387032225798239561567870126721548741399505001542384032221696101421086577485280795214506922409046230075899720560563153408096583077073453630880958481780591560914329689856690524423873688543548940988200163000367894418282344861851261569959630173151284453110845167317039077200848113081654276410985829331835735818696213911464167207799884302802308129360448278574798459373800793424225179714706951776035121430003952605504731526140881385437696512311188701108162324696880975682456972501619091859619614902858309676167666332043557184658027131243546213863867136373766808909971929829040303789608156972941213931232924907054881974919688522954211474395221892721262514244249517682416217303786154066537567796553512204680590614387511319684306752367816223052760615484990201070783245158882481035292638781515954771593228183031514874303362522506400961924938139375820574837803681893643188938676924676558102908613220486205430666946157361392851652877766806003824884705427517155192570658079498231573639242059614872229562224290128445311004015612747548194659912622007936813027830774648099104854314688490013036339700260496257647370981282034543629365536341836257894829980289684970899988399522009567257009455868212526787866239227331512088243760442779034898679443185771660577750054338155947625212038948460533019568253336150101410666530213351397436279128072661683317168348342132017705517211073192996276196713339616459884600622769965575400468686450786861803486029215894372585273985263371993007075035825180499501298337498794804745819612118651043223540495366044170910190289034016815361505670489896442779474102153994575332126636005919410820021910975370611628366058469018706273368374748591947686675487331248561714349008822470346832536420344864023059150575086473804259435792799815131474536429031654862043932835170800066170171101961299170851662138966530497373587655328503068963981216858029458899451839130883089792019017208992333138302265669044532231508415394014682830404837639894289093611251319245482149717697288666953537882569849149855176469936571031402267002307224732920928377593272972746592539906315392423329734121702806400433639858433465634558022623703970741380425964912100547461818603600385621027780887651465107970438484232487217186844605578842508972428487148871384219295596049201694168218097999962537748635338908424302569713602241421105006916681061231216158371028525338433646609601950968084602084758016782664217695899445563560397383200646764480889640492694447408330105834469709780259453776714488058776301779055308003793709873072717283157286368382222798354220512450478523929532646605828062831619991018107784328639933152812695132008307324366975421727082116443083619810168413685553566249500127654663893636935535196010989309874651109785182921528545609408780790145356324034459237000885324293082787212240155174886273689874674600125979460375537044520516112683460183858915419543939545257004211430537086235384916767857761648846555966795763030044509347217605665880968355692803597696230192920096645994583606771178008877062716704261253952370462523714148823794474101609221420247511527648982340786927438467467485747445517436235023300169764948680874087082715788642729856505566392177996648707990378057683536087781819595526044957593756300983572469016976504335415228865643856768419157395725208268262171814965447060453084075181878500911236512637094820102877700128054723801200301929490544592543418028327018867715812763656912859945479943695194929023461713567484114967803682673666465007603226975984104551016827228236770362728888134065286642267022594537194663499969570854839272794909748666787141601208996181739343896139555761201421855876779202723471681996166169808565399466402099720567433850310608322962272375239504427784988370030814937548803402654604073254940692842492164733540165076930142670422427468507923266251149056411124130851824014063625134436209755319287047548689135603336211324686266843646131662280373342698706706365832162694741334581434668116403432458914914079452999044676698473258629638664575864970049361519226318850092031714389774993734053058780380723001929574671446297628462066391630070292908158401123148186915266203190275557919598879322339167558123744367989508882751661377331927850402736249111175226941788387070819829686383368002879002465928752928374456134057776774146368137629771628065880163264761315187602153428099624049078992138482538693735494767596454873870478488131992744253800646842615166379215900554697342791240354048655591031783204689257406223037247216362263980784775771958515299179882818880932565226058609249991327750651679708896343233224576616972749745114365108698809675177513246419543405392379876447157098892123952181688979209735748425445366082408471863517371547948070249059173047927507016742827478033795641026718149474178675347664243927784340288270200574762215251650798541402080574844219491628215729718357956193775783289017942558919512761853599630456811360431853058021012104118128031037086243194206097535626221757958972298479120473304371126739600379979683687615495665102094970244874477390743687395129144567788330610412487800091846356257804460245132649242281881174462542738919126863735439779745173400642732177717455398500208478296128861858062262218803684029921974044771332834278965279343576526315490851557169490383104705462703274165515268457552648191184969529636498220438700465293204191819425591071876449172577879686836312456894177926220898534224884363593669779515333554265224704545039916701006555897542961630056227540465653932584358349951173951883550394714906087090884994970919147873578058334115794279587560061316508687790039862091198240884256383730750557387048060510474381281572545449759453759812952858334744288605690906296596282880922557880439614661446271753708056848001432978723848137935017901373633694346556487721143004663724183164604258568031852746410854174895549828521034964597478835024289374069570024304013260627373459364012406738537703349357079096745829672648031346194457931290172912976839400198735373535638795916785403106242615131553215728273744223376877552313006788993381280464288936907216286521217346397213524400044037598097646525312452377569560304178366224996701325257968241018314715201375726615028433118243432943718306913749034302576439613407627647285986248034488344008095637562574969279701201334189523145142046798043024345581785965107652772149972180199954095571947251759428452349087566437325239929296772964922493514637052690245904555977921514268072955316918508626725246038495825888697106496740696654734698783704687571333086327575490024581615087953254057009894265323915130949455848596883111912831106993131613148552213417638007006521613686384471747395820018005276299847424686110797980420218402248433400240775082351158801848447065625364267079262257597786718288874986977000368199860284303277611527638756262586525074143418731006912800060824265949559095003414959454515347897553366797266560930568277552902949478921929334946457017544753268042434609384437248898685207972948702602176250422675108764685381747234668768527597269495854572735270887306048732880956680481946497129259944510549785747012518484070744045116721354134605847019979035193018436914097689790311698339824285429920878412176102652620886597017385396260474130140188138502241263477271310891172397480433720131853583256444113713313466246874007840642018224278044364361751658697391002771809030635549063176743257865215375368602699678018262173405748034112361005606792268171942714132456543734959017584841430620594909703304223854710272779753650882133958997120317309927632764422432474313499727764752545109438744306728014077159241109101573858504297381923691536848562052821818193291717598757494556195876550566506734608925545637447274478415709911035704280910511422948842838319887394242899980126157738776390974789998654279776471554952374443795354636382065051146863401437582447151243556836754259667327080003806886138871048732771701003246541043719289883680948473049172822938900677720438066917729508743873299012827446849417897206194968873946765355920695748764586872826187097475050111680862693437382567996495471586053415278912085901353393312796610907075918520081363062163266173018369363753591092109805545943526556641700796648989573017021848515774285742645302424378001853936471332850547230803014999137535427834980683014144944652416426865118937360444539130343029085596035521884743692444449311087370578077946661939582872092089143425545696087003661857194476043646663756142455432767723641973853509437341183519061308842841491143069349251510684019960528834058211271732220060917686061073275484635595220770148669319718207061150027148271920246249109328905465440908308923711021282920260645853837800776790355894487401659924342496410112146575915092186682112887138315845685226704346560446274517026203256699604852210795289651385705708426809912008419684815766749227389411714036946807304032944520833942328176512230322322454512475206674060585307718142351588517564190551855854640541996616446716707845929174187657841230491034988943028670963584530309608149422916070899638802802615837352725945691644386436437215652287049198520659266364781696513841131912359927764377346277715484664824351395629924599631212859040827104060040888238075709310565504488465703680270474028542570378374077757074458586774743522255519570971732126247197504018429522533385473046725163573852010909088853092986067536233958134854164739975569621136788741670570211495195965918057473797286794032494424991210450088464439507032309702801496986254304730672959649133700392930723320419638294222997093678346249827555669214229342438312174808841372372431058060039319161812267924683892630118011723518153599700756178812245922698128454133063029326629835927505165432314457733567602375399487814623186408498743578938049089361327932847254085378039331839221855881577665309634097737252511999016161441818481511368371920948686178639675107528917537808114740697889724660990861962879936135166831651350141293387920819814572640680433082723982704864288991485978910841192375774920222320684012366471004821729822976619889092882986426816811368325445977577038519840344840573738304654140495142459164196198501601142835279970985271352654884177598444898005191933504415771440802304215252918075220178679692901488284502120469882935000520910481585086862264057273248248801613375167335875633945337378410124091538779472824734723444205560170754284124748497922464269233478962073790301713841681446339295749828648376383851482601333333384972826943223844445959056336153205434408829737003455662505301980876988936507758509562794259901652693426363572108401685834523674693536674076655886180601660339550080654301719928723227234828530906885635700698328102575863618870529558776139254696120150942742496544883773648108697520594972543564108140632643282366779214694202079750551582273735853401369706131667846253658017693259817440854341775221014622208897802280011819648208940607916622969541046978285204421784695839486594812513934640116504480876181610036406194306135374844264266349661279035651952030652992649421526681941318468392841066262458752635404264778966248160233295770720423649394832522612826295930514333786556515631659601594845299814053871814158464213444893820599621559063351276133676768141524072897551357553251498972103808507041999826551055191313267004989465747493675990092226198220350311421305583484252140173309501393908666806342538739233682163219695269128282043816927858172149506360078034864428154142605706354147046129929213603354187590123100665138370707810023149419926818318287103086653621313474484463326465945641609154402355196280693149211527562670390660917099573397494695297582429826496408653472258748731021203237467590025899532701545647695251328659291918098355558232242448875790820850518022718088849777837334484788675409783480343100458697994391669642679921937937013508914022405440002384590124096234831856820688753803301145441343444077708238055719445621606071527306770590970962864636916141831156021970366776987383989631705855770770220960083045629507803668869317384039192317165450214161995513001420747015424895371310800461514144554919172727852356697030717641725154404660191509029325619966609543547358428604709192110422948826273720605912657924483437716022798829334548297021903764073365630192066893741368973764180387250985570444852548484083386481735636255758272125548373154209414953021299042789603285213904912503390359545601387846844075794362325437936851454833463755218042886419704141292633222073268247867731281201483120934592539100789102301647023133754737877004941528436626607172413680055133174708853449784947913166703433691436501497351330410424357972241743150028017883098723940805485832088425752669330169303141168107509911044421689065123875476950332781438384315784520305374239988145410988662825731108309604069773360050842043951244684948033608527916798596222740653841723635094111086444102589522229236437155716989810287266972771504703511119648691962992447414400255461082691381100272670930556778070773206233133330434195249803320270220619462238037494061241334522851245407507161235601084957237692332811073462040738257004448994856018301196969750753448329021086856185533504218994127422573474720649517222465808854516654182905129249240034094864477274437411009787791174277393263747490984793314142992951001920754105605610328947212184971834682991083008268954561081732857038639452517663632627373414588917510469596287502785923574289859073616875033457390212424389372285821699128181737757188532245846214962662265930223022421721034654432933009437851683757206407322462906175253026032344863927654919348683789451026937157267753429560809745213056624471358795715401254710198941154642915633177920363020487053034361849725563223939264356359453650103438459642119961032970788443748208051699662942536113011870573474118538326251667709825212480179046308525825193891761397902773778841985361377569235141227079401275909273147132327180899498416506258005924705033384036845999390841371146559441717759234339841164900662111623747648116471678352453202270181704572775371733121417033316434352753679641014256025197589253163522356802362576456138893762048747104114943646088707723406077915034643568789447962710661167243617522296181283951258416102530723847184896336231590543205746967178869444720916030196791402543631373910320547259073288265523172152104214088187565602143946973113270040335405459917448331560955460471113305666171676921684708728174795644246899401858115321941227624392482283408195806938470331438341957740531421170040392164851594995178230431388954368761567220360903054007116323207021161142214676380560651030709305930192378402385709926760013079045457800149763230921868846333474408766392284625748930773565496866567673100683031414430558688984395046194994317620921037298732901891589421100264520235225028867361823260910170361945992764937789828290885334050032958195110998005970728677240213088775194448533728780300345873221086101667468761669876583721659837208206988343714595623852634277919806344138367887044301502618796611135159411157477703122373465736835518772544816038609339727716160466002529073630614312134650501598878548134441528484786378497487245705273862847095414759952660784678534282225827090012515895574093629162534320147479616911921252847508429413926551880821029437028862298502655334502543498330761308265205016996525731577161596902759830726449059388387529520511842956781583136279855331830477432595913541293704754284885893004570309312867622447766116393567975451558973237410350248690632631849654200365866236137789486579126050127048915557349388495233422092383252729966534447202997278086489479748631719827193157075164976638936239901503277429532064874052420195857372540885749404381596805644915480088128984751308755003642207067875713769745845516726437746705785198944783165313447075030084180055207975358372924646930297531053737796425025310316391227247867849991058994505442288887596820112790267424810846512545672393064705269911383767619345941988007324611758571944262392929197035185594985636664477799739166629281110721751220764085743532427781318713248864768254178517203182243207073771022464419603229092387492022130428065800409451856295439409367605839542282661088819347128090282956072585667193062200618030597454570911888070346179767523522143020446674311300110066833345971843764636640137502442560843662363916266665884289201981691267018553796711389424417993548116276689393624523617825655981180607733593643335075750029236771094653696427183322574404581601575042829762552184568827528099859144047187824162642596042427913152422188219834910156242766726825501637272271093318160381522159085078185840455524925695406955411829317196334013356115713258484664130265649265021906847447264923862445482510411761074039346368398558826028511685206227421226773514285950745264214468637662102471246068643812969922778439257066421565068742996419626305365300593586700870512878400375389719104095035396518535616941730735292115737819179460776503562945654213995550120239671252522579883584775631596260990352042266103403704802057098710478587076879046845825680507002135928014587143232566589328991993301951213689401186195229893674033542446514190532118817200850443322559633071807534427608034148628933552255951930900584603536116155060533740497912150590584166569859511863799120983995710722400671579662477034288761803203350328734496027963201550392456208032092976811961153019847829722475493233773769742700752379279360298245556093021577655582744674792571960067283785205898892728280492438787412113163596305563283482062641065534840494923988748665999115690201547043969815600316601413896663815133951443037173039654581077613898250500482024391574567407129451674671665327036093133051715618120734972935016779907191188298380005601939985850030560779161806904812239741633910264707594979921281513539112814048077183136213742289236218450978565752793834147226601271645074405746193127164117499608976239590725596587122198227745078211260426241924589946881192121859035573858620158582384550607108231578268391482383495634776693465012642136220208152790257711684497767457725441530760711588804516789264865817286195868665578023514816541122855831819409914213310493605614670255099276975257636290854620913337963188442638917467966178059720167960558171578786637694864792108566585618612098550926542858541922108102022793449932732980073062278678647586212723684055456110759157747279708418414295804581692461551087526052018199308582387984379722454984697495502233607638320480729429464882897677929500569579149169218330788039808332971926186724242571906498808678715583097894246987533702871465430601332002387766968508006903897249658979683427647960823768431587140293315199637286930876804795135123126347631006445366346287743277761763561946422700597888303313696436948239637836938890413504674400179505774338547454132401789362064936314417800528239435019132350000422123065302334082322780876758861765467877545660508022607004621629465555080321203251904690120286368327203828229602793022554492720819870939744920087704574833318493137321237730172297803228882047188944322128386585165022538974837425122289475564700609381877992697569428763803012007185259958010161766169150826241865088132624504937883997529736374116802573321949869061764713244157963021687764707282412070762947218234854168343133017448133688696116739123121006882492261131791070269483728749267542234085655341300373067637061848428233179916125712176547718109860591879091811000004392304670221497947142322878253870222775604804455164329117402861093848408662861149155844427051019563946384676367187907957558869869404593082555985098248306237807085076196364405289120907644220141808680882820095078542644619265663951950566763921922075995029277313137646731745862639494262069294510282165792137640896805814969222354305909786836303364856687236908762812215123727364493755230335402764525715126580680138416619899628345966727009138608271037956067315720710283939391133449411403025745418548918547396900147597025903445887444556834007329380160160466862435843361154078266254386771289482641751201308401014505449956936503720299051963431561087112980238279238135224066392046076578572434072800698880462122472295726627444559828722734736297956118745151086689354194416682604138542677314549074332783600859071671903893742843502327973057218132325024894429912100522729910359040271246597781435749456059827380666584520374243152959492016371855859551913148634115696524446032005172819454137527462443918755039115300271450018164488288345430810702595464901970428630487641186178965648661034386779261129936625385499617901726272790488116840882466510106964387688287406076417895269607311296064846896011973535993767053321852900940913732102019148636188982733249199410744785757132073863530622545813626026784058161523465582701997287293393236207393966711672799754542737428539417253252608374789784185454373303468427343012839274273133144616833435967539717292240568032839976502494438622829176583653739122369392306582181114278765660243405891584537341571511057946171369088054750429043754415604243163348003206937349268189215930559640991543371140044023672259442404830195461745182800326656816318932330433866225031294445230019978972341205155570261587799235359866617260827521609516596443666858641863502463540880561250883419031578695683372006649758469342962027756098721187147671930602230317957443664822117705708751486653077379100561596852795994296292096339877830544639256786825611365344237475062655099496678019831450030540442731675078544321193845979965531225809520478293817456733723866300484436131450968479540579961613295085785980714084119505410014625534963320690936444062009553913090309305940581938329352464972592209581034267521989725467623836749127693565537336653541836980566321317800911400940381128938502599366550702259040799257276999797768291786097699778453599775548388059693289700653861225672992534185064929346809342206153859730045390691458156407887550016414386698135221191393250256463473657798143259667993185968387052368529108016528960824064440990824590514245721695984463525421981595026155160674593525411004207438573670760024300760956751697402743032835292978297015837520283446033468166769778955418112119679424924236790916065971760706988986625800624127412381943389299709543383728997638330352140399426620098525569995772487187598420458311060595410564216286152014739945123812837808496415933506224696297317186162686843432984961372274016549981432182924092628331075751821016977207663533710590095213237518127314224044607578981534301931508437273359690480456905099324142823078843399580087103570491152190234905374068934436335139331854616683010057292994253080685157461913692454900685765258444146808545521529453104133848158643043685869833672058173566645052068624056083898875842529179811165816728290809588583251827738640784059907937649396805438310985347957325099014832376460275152049939927794865684153115348765546577770570923417952319773265757451735564952881825359023208623746292018093500911283212337731554170698910623483026865926679039910631915611965550406676842559702664818543137588599687798524684428988765858138334519328205671442309990018560984012699389255499705519820931196410907739923966516875840798129000703687085450734133264188976697295615381026161447097621032087144453020576839075361306130309294036328698651896444873714498768438178311292541350593141873581404004150946002859677029472329309447943218603479689618179375748806841604570078977403702481240132066517052139038502956205536702543704525888833312117332979467510892010451106154772658211854022884106216083687684229014744817002346957614236946066971682222859439855149470401108618600834427743378055646275848633788342792610897063247974614357477205197486823484082292191454189015109200996855381485268005846319937918042023762739246890725529417337801182640891692498524881191994672853184947097846118345869430874464894089509148711870188066893307306672535908330655677309669911507475614299159705271696211478472865818486157733051352944504928415953924051963607672160702782386953907877909219067648837643834503852160007943558126274228277500999174134227455311258047062519701849911461127515280583894703789264002685566070642393240173690090174831654303147551822615785720713946216141470461710745064084713711181301712461825825272388850672758139771521135457107317047587085753752392682893514005313790987898828392762187592048771823140131249708535307413948841374306888944951769576403980082014980154624499124627839546971398683062674216790148086579696407809670912653394241801903678254435597627445626510321373742650929801448901463382243981636266365533161060617951096693384142619968480921982744892727655010057714650214502483203890431565960343333898121104085522573042783681340784677481301002746369071165835687857195708383526078846214365479574290656881709851974963564244475569179009370718959873973168560518107206632841478320811998473990648260960170721542669700232373195050640853161451093623190181186643329155003706234461344110074061785041042822850585534975347643579716274109168727090732440530096776857231930860540745631038577730435345269596567681960455016908201490509438941524550016432309576864613018360998122040301271088594719441105885118909089379165463924850745478372296340052227015138415734342661835169260374880203691460006650181234830678833193676993647848280968324436322716315303398472516136668520914678612610478470783694071778432545177104666258064554136814504456022690520987370263882285898228493039176432086130864399837394087768605011096508948635656422439024539182733115386728374339884606061746461953864670251584990259081524934490284139584034947549347371655125603511749839926755422714900285619548292137672801299989622908183659410342717913253411579273983956964341546347673974197954854071216986236888161631579406825112646717308247177657982084152670942802212297481785383360988398057646537512590743822461285079906389363570967418435446692199271419350808238390638366203113416144134138618658488257931684252071676431331540767738096732122131113245375344934892992092235706305061693194392755425983911901076131546349454540029312180520888054394225794726402864319293693550426794167452580254476315242752020127510780423528997864297493838339699382137903427225444109578606263499741013916795644655527528137311809548644838999345115231439299658466703126811898891270771590450035050936598365603156271034700862028031276233220912946649018091224110327000010080561321625168260112377597399063059410366520243851614386506988930394403265615132883924344148527085701794727698013328250434096262143190512214082085767156836824823825120014206351272656362327681621496764054503873679577156438121050407413081669685926756390095294687777239043054898999488891795973368712133374800663926148213084032527434982669997665231324702743331099211982796251552614208770096275974876611339878016497932388538475136123383887981759773940785750531456520628493535748923414043796549712968007689391882818087171132041604927355098738352611663374312301991376531509591519796987272277863976850894376277236593780486966038058704893968120935497717621048724631532810004891909513649394382899089445624462435986145657064579285525445377629510364044447332021470656440448083560106375241385117822205727044341974877312036289002881745674137465591920125260136788951963239398721214193981504905055545183430028398259908836885979974234341284784032260761016924022951148936620385948499568046458928110925490894411196726661739697619136617745832648772894491720425886031593999172747505682924617648207500918654595913627243785123992307973789471088277454193230729511647752888031807411780020695703529856419553407453566044684519266974642030263916140371617427757025675427002935261118040947729852755073249484547530891141490684499497172746347986338051463275424679541381436613779049743606640893585392391658531299049087143259993308619387233814931468410404835291084659910806998056734167603366663268147230207957254398578706291183776848277610365136659347364050820202756301014048212609128469022603056355746303057960148519145106521057699498811419489238792733700793108742767573940346838992878882532211014629584155187717994626277984993168873305969067559971385483052160785290223343808648711229719759949062845622586922092093146131510458069462401973655494542530997941820154216149565295994202324194082408805126475436845943142362138120338325577648640190760218328872888819690332116260379670780915955366379775748359649492730058096595314852135447977412612848571537277768944232327174145335981190518509814498331007504534133061059305088774835255363311847896248158262348713807966700567239675945808382442860728090498241112958544655316522877959419246782673562650304488158894967263853986395897210725678065094009054109273799066239729171581345198158591665336181682470834693501028935366912091732335251942940027065662131955968396247014219489651975408789587856621496574982105020640840390021015353957486776406369216408309086812554688135463726054040321793970561376879455899287010774212186679368495345308257199173644291716911662031902284794769036857830709903838638640209692493376077411618027424810545709921572599598975284063362680567838668874972406152549887048983643345329987663807749257208185344714793802832840024720176636250156481305077525295137595992407131558563762276111541252416353413226305796541799096474277205763037333691554795078049723840083351374358526444784618125392468463638248627805260919143793956081076804912828621884239280520254090079821228913641604652269097550485096537720699122780726537674591208388874795858102618121256028825226295155099025212726925998145814483435021407545619975529922229254234448175594298675874384251088244216125217751230292716331139805046389839569923768687964104837640272517324653522446816786380741037503689015093795962966630527108223973144815238271411664532219743110975920432923580618127055548711743052639754025032370277172319754059190471281414320758953322634954566618442750241114926625453398037103822598738406001446389114977687376794454864928194944495421637094679107001404176675941416936694224351837079754449746585117878006169349195046884729716762287814617413321335084681525779081078258771580781602778815049647481839566082970692159625320926027494073503361350393163902349505848088207942862749950536703317390427959249633655612187993013250175620717620082291115510558787994265506948798023348956574138318249917150954989172310092838588985957851997335579592437007758143177398020888705697230366067114165666377402327550576304063943158322779076652942583206501854031297333850874120560286889162384541689704427108846245155720728530957916084140561573453158487437961609223815851143264624367079005303739918815224617428437291513541690488987783550552740307394683483829032504806775017629181775729748058996925562600158306856439509081155438626470583633911452247558906024259042482667414290838528537159127432542648199735015689144509652986904133099251384797828193148182177327518549426473197216148686619482351668440506679345410540841870686590587314292992255128681801418720352336197489933419993113351501137486085332087226814108965100778440247460396173541037742847194798539592151430031107160344721942462455202257300146785995007299422998576983848267408354199752136450902140677720265024667109229117740749001792083550727265841272909944368398387069310364274124898132876975536330845007149070719303606131975663998314480197012883515051050722998586296219641743526431327808308398696627061120600763172253674136924786197060583323608182643567787006189948151552418510439746211140444729855058207052078861827831146468717850964832953647695431560771474082042082888843749650209289872788722628699738024007806271685217056390051187186147891635566147329199391725046291639252007038547213246716986628951051678398608689799691516322319020478954827877938606489214218236385291634141244257575954300001195335431547354102369631686049368428466931069217092206303548271629603973913285702915975194467263047079309527665278375560294574442632719671317192286556283465845590396196834159133791556825718031769351901821674119994992450683309730763220367284636047816806490957279837598849291343489329104614423850407394224899341181743054971186165913200108182125827709169203955829768440495191758475442099452869067088913355417900306147073595653176562260231483456220981259688135588652878020453882988397694009039247004902669702023950568127637178076518590367399079850632959162347124919283423430550769149181532046642365122077134456529716589947643501501509640365535433754539780244570459125566202982899565410727023354084867053715721216143503279925876987389256923923792378092177224253637300667563605483014319422341305367743190504448622190162566239152691105238856259267986828668756179061082240930460278414413369436732958881301667782589604105800819546091577964294353665875169756614974850666752687959650100728567193938675478581767593632539746482863949338573628795472513363148281588540360079233364227611831637919570498670454264516780755724011207032685268881286717695883169932356756082978103178932677313245729826609853314955728334473944100915125322703412583486709147615800866570741774280815268312881979304019801260728820828156248933314399311946464955718266555091260845909317813272845294799913145801340896709760367734162491663689907202374188837903231507193412190655409178759107668453468138837796035715298983657658771515227273454149421127661301247465688228530589862851839904954387356670823360590872202418222475753826581859512838261535093245183883051231319531989320342098700901693069228992323231794451845874414878925595348286971806535585177462583092148259081615671980266408894397850134466194901152004474293691424917795564374928618349546081130944148624873942118643770106856174577605590964881693192395607304620849515663940025243759481472169482371834061655620270173307620107342545171622162817733131485404105656649925925995889853086011172291607705057801337452223586823413685548898798676827362909876694228832793199766570887301464793665710727463580072529309094686180933224512321121084200974566256277801779076593790883876414518733453921968532750053265251402030724049536742062971180644549391326784698079729884489897898292167136661381906539442850155548809340705986176707333776858361340857695125456481173366868110585859334659195063177113336513460285745417041080817770238481332212357312850838736152128614994358522893771917334787130896445036365131991659512692105002947273908955113854565398240095989182613615593014335829190761146044429985639906498814070786308851611431201062219276817364656087213772194716974562274012272551342038853472254348937131248687984546861277897920901781766549156680810500022157528774085862099143131689866535693487327001011013888811969639424304339450468301044761521308830178037846279879280147244942445089027007670144473876803137909157950487748984324109905823066456818327502950774595769585166140542567159333291138066563890642618334497649842794765611507538687791828812772922360885548443735556748614795588436146135651765090817460222544007076497309451440990042991507206735064754624683839474191217958132539637555642319816168149939863159659968467305335217382081874936086786022649766706007687271515004766962906581797079746682016582912333863343715061709455055576548329985311730797172386807021379998655478242817572730146624484471727220950663113634789393298512594872243589025769906793498144146389007680170222736442416117219677306366060260123843010206336377310877680664871627998291926027284329188565995713993228962804785194730443339378882553376373460139461225662147271355906120849301054141260118943642142961393599437501242813950418101052924757358549704821478434803782639556202759244720512597950775376051107172174941508061280532828167266274665983427245366806135759746520733831096326944443896380692428898694650118263815804517798951530445237992714267321812262544655634530188278072995743643910311424151763893044350629700223415569719659187033478173900999860235684957630978865163063215567967490426058601802285190921148125489742475327609536477359121248215938856716194541403977027757222727662126056712227203831798592548936151582275603292250414088121260685316530295707131023727673826834909144344040840224351041022431100641063546611996802414137171259477658293889662268827804117823360202335237274202411662657738491213408565525436441281212406020512217249217793167610356673235099507643937130459194172220087856304765577781943869839524754381178951029064544183686214656928499983989269562336568655978577301908865788945153497565091260932084064857861797362050447095563757841564926521266851272926883199843947952425987887295259998581931398871885687105750633599890238234283235199883056930760314155347647621302984012571078982698859632581303872082027457847786358199106541746495946162972923787391625276264914915804536202022622234196307093051932410325166476881425194989215319404512770394688231225693334045137282951182700568147196603505295814267122033313682429332701995633331155034206229673306907856107952056913669236449642679816643701567101637200091000013132415630171758980047008070730099761065493804357198429194027913004407302938791051915139566662230529645102321635661340987439261381843694703120985606519367330605903779183625759434249895846849654978051478674500938128345285926619088440526183971334373373377456122163827500624258684038565108223999704442947376081952550772665719499830413911577638594546713141756920065463217172481932974128781164534591702632716966717188887999693758608650334420479116790873067926197822501268426650869737895200668195219494638834611779746203919215637369477570561349906406361081350359524613776496855631901037920614135535960147724037040783771430212400827405346660846001880691040238369534139570151060789216910188988957292447815783630844975898284010484600804756414425645598018030192321726464937928912984327918052631243437212603228580908972859820298031763406737000670699562184065711868538665948516876799515091876460900314981960245114812028497510906793369881300328002177891249759473290976584511210024257815387484938783175742369433285096282761837622132676911093691396967773478708793485997487395272754171779485289748526210388665331275871702549194422694539250907886115073523031390929919927123981153217610387529164475979160183133410589743830074508536073263886985177977093345918745056464029921491523750490944106755002636674707948793705962248653169595489853165725465433497032203646539035958541068544384878481627277679390919441057870279283972541563416677245307613276746193198705263523655485609282257986271356902250005597369818183028665535529854696173568844023332992029941056935081589354969446770935757951077565633916497793088084606418822128900151282122817362156309293145536746453692027684256769380815189109997865896461791697351650537761723505634990831535804136624212162160485906644622413708946982724951534776892092466777423672411944091417889215993068249734611348106951248605213609707383504784957778714333597717686670878295243376923029293453530932625182110450521057642246266947203348153028482903381837628809654454154198199742258661035887453933874500203796740347744320018182340913925686526231915105684206057863923009531411977938548944478197088586387631015675586956986995960655060340774526810042682378141524777355753464272797635225058874206163884957744650651274479242449282872745879032956234965491285768879251891308217370291543745673220155288513150464193518146232102004592369417488371830844170231767717531993208555855666702774022038496365706371029020804460388603771187588336024628939262400600061776618053875722928913323832491995092368058817509815931016812696865905534160967457059847039808139144743348616451562656689782044516810869107146158033585556131402967798572163730528163918370970904113901450377589145937375410716617937258790059414613344606270532197729014838066256258110700771634694671924731028398883617768229649375977899744722446040561575242410187345198546772908848134240409208039164596854634555258082828784498157645714600622709189156387421673111975901406596824733019058083559701233604419679298920072602351317787376577735096247645275673397330656518567861281354634797256400705142475509739541924389918512822067794363223050404964083714681847656730758922873665671872074400908625592115398523700258189151295800204938688262073357478934090529231201861841131655695089897541052325185268989799832051815066485468260848921218042888425701682544002994567572251173229293826795168095304199106708568097845204314443295479598262000138524423825576956164461897707197734702768819015181109777661436487387818464577170007936042833609832375131609867432093467939986295500321634960175985567009728292774008711498242989035716861423793813058174706347560331816438272765267189864899227054566909025638325327075667238861199759828428260974392346980100645094880954302477144064275104248071281231429237882329570036276220382998356030862510380318180664530386618901638579817951237450683790057398322576552204543101522829671703586482315065972103902964429181031083977443509967241161762144835623163114600390414931863297748088005836389025541767875987211815316100439694114595270711289095864026772774357659995006154189952057456833592963542790456289476697658550583490014474091032357468131629565840059890910572331782230151312406121257528735123988197387891359636623163395355925944938897689448494013697785463687465696424174512105562766098608746204616416224839993637684788573115842810744812635081105878810560233241677655173966849062698815532460092231945973818557207380480020382564361205037814577612897034208556315953647328094475220469186608081281076013383657538209326597156158146138756273193809360010079880349029893835611996379041882931902193247421327530167600981949383590661643859164216806795747494622219612630357392290566906836336849906457317398905725254561521057095627963675579651953422338923231866478915934874109351599395363926108085035006852232147964101018285244975461566801370052351395825967562460878535576744141628998057573603352995700718163894136608395245196855351831767773473491095127446449320346141524764647828155348728608338033825385583713236210887350055493760888764124778802524417897532008704368834185010579756116211388487113852390098085322073823197667918333580864181394572062250427390068294963485610131923348098292288835118358261995737788018514291266734819342812374433498464439250165782509146312617922684442050942711453336024286405158795710075020970282751928150961267510649348260327469390925587710083479222928215041909045407502102970630140996014527705940800615360028920127527968240697357208282459842951801373512725386213536622777074100932780038422379188077346468506118014142513605004566098834996940862228184168154676513335760178486381388358124799098724226408464833867585798890580333323654420828266124132912599085359075031520793052820247813619122369537450040813300700594080111342929447235816837156756442658446041623891585013627466170356597709246236490100987251450070883615118572601546805025685619958961679173516020378244390680851793618332090706569790559046803065279060837413882454475448914731692139001824116739464749427407999096162384917028720594751654851796918211815435338897555740658088845436558484092763080471423795420423997739564224518360723993396292663510063168187211352882688440368022696297004844844839658999037342901815597646636303240431795261492541949430968416198883724123496232976162159437804586226496894313952536970042019190364381768574821133083147063538499953411701515398632563143586224105175733299219914757192345107435607783251346688992754719358044493237169666285724168012080423711073517638012647846295827198733766151328831792489141854687735944794626017534029308238855280897646599643264391607552210791690275962538394584865588850907726896433212415012365879971953758857275168518217150045476744849678596253608648824409787285138860934470005404294650307545378959726571183822786734298601521318398907716380175310551623404607809774569043556136596341619859640765616557765191415149948916026038020370178740073940493792113033804813325761739697610517341035586386555472106561035316374856541201022687633354306111960637423885727921493056849359211298211354695400141805895056240232094321674988414232265565839093656630800723777821977402855339842262202920055629511875727031378226546109216436282776171527197810655305156700263007253091684516737357837341008668797543511141275583335573337887204934423558547056455931849024358249151170246932170525207642304871457139653805411196078255560539290351288436268212753425893380854626733318312510762439080721819623151014551485219250384540078720264630934685616012724762857059441540946883874368979112946766906805888992825549882848440873934025277230431541229093122864716275782242751219013646307807102817882552887306116995379131182817108159334781935872995050910900505726760380426050558497861372831058881924534032142273619174615351220810593624260461943303839594836400795094167073205927814601043607599725784471900070772488641271953143708076350908115426984764199927918519763331951526483397227226228424960222357553027485407339988324349403839951564648616986715344045397621982107935195748557575454166176674617953781419093370967601243152956041340253006841902120483402378192535684424452257036332818391376653931044256855097366635770708239582206012086188657356291574824159213448175950204732037014420109062086924084602411957131034295627825933050104579453935823368473406183918285140694181625010148544852008322367582380990592788743115245271375469720781312182478263069373061599972504279277724407034642738083399094533883511344445497146359976792513227179555170301287068788241041302221657966506550155277475284413167079677349141559341653071143202867341843319757322757011305277662788157360041405247356924145654801248051739751240623116656051849567735489005166369938616492124512911087858718734414470869518173533515886221310900377643765542561092514379681038269398844799932522028466701992895596816707222866178161755189198287388023027604844347748754922379996570245982085991908763672887493172686780288219535494752315839590134063780156947194150668789740254439129526617941099925014600822621739322395957539047438679291608507454272623367587869212389992095163458179722269199584914250258343732148658256976510543564049762978940515110585778737152055092511569794720643590474718589358787298147240741455418777027861130141939364943811945746327464829581516297359428666140481463625573998357165384832812479561502297673914780144936047324478976814743536561809399873027298015645082215709901405785274167265886604299569246415573437734124811725463445626211792552359557848376767955497087703739977213069420842408130697277394435653310743706177489645049206784415822566184752989201547597713423843716928676072976358632034162519229832127432284624943727820564100714472102783044490867902793218094983430184641751352286028001189008518905505184296786519263446972086268716472979217790959202791213389879139328522060952641727324758413900034793916449426247517102820889761957336473258033347205629572343555468498247948898867644392699983657654443027242514896281396610671195939344565646103385388933196427656310989223083779444208131049165050487362758300752342289778733649451082689047828611459694204984070267432351641329225781839130389681488149286546745902292349695225382272640722587796191075590925438503666363255328391360757592378665006539359540510819542785527866074746181419753847515978796866220669228385021212664867806712361400445696147045783509028373331438098936607410539567760188668243610747779326287152985345371101517856699181457191860379002291925967926619930687655589524694585207929408285638650262618057296259470482229571267034417206688520894527618527044406115185086610665492626794900169357445832364255657664465668380689397154924463348261490677152374073831480132506228362058648175629197417578281463057685095645267708601408465970957085752837158722316682057386001797739379128030225689155533732120981702919854817072216071320370106100762486650892132186130259516910480331732822261312402097463396765071088006904564900792120305708808345494155968321810191801226281430982272067234467002349803197750343530304655152456568786066284708096230168615075710265183995894779614953633315298646136961369916874560647402300841067311859641567199620114413198864169472308037511611063387717101039646564578819364493799345369620695604378110120379729956492404795787062686070505760565385766381677346146936258315791297760179262876988859423136785610557940530948484393550367837240252731153764306068309936736094232168490781913210411692864842570307234356117375917544463709040956145508722991665235443401585544040470526750024717599108168926800382644695785396442931139317113670162071151925367501147974306364693447713228201988722375299008837704747670409883856187188834263074998779160735388615114211578639529532453965684372597281638896313211722248076228837974538481076173395736363520643189731367583163239570745291293413809094850239118673112344447671227816322658136153295328265278450015511232152130964713282753765144942750204369407839625033600347815043405364590739539136261538554300793283996661400530688239857600912062510327881435900796714017762745650961737787806657281909357972257274340709759163244076104392566260092782181429597528568013159648178602355335534431903175286025186567529055813029669006502065807251376285179046339240365232880524749884128357547111800958881562259843274541616958263867039187000027124248153058612165545618793358008221892070539528630639766919151955322243015695380998095424100508494999896774663350001789488258937473307761700023581722580348237963648903420579062117851905138397899996014495389413686204187051814257245579946029281405899449728804049745635256582147118110145787075939942668623831388927552657522800270164700530422746093005127860584107034826937587707642704095657790634276273315290512680109371678081627592922943727389269785122209861066530571206457875428225752212510385376355494707104319744518302497606128327826470157648620886877816915374722163160013396279499195428208262793423484680782451175532030635164512740151685480229619391704209082750323027218648658702834436208569209278373976898328571061496677326012732343237471398325869451761531122873325065422535857620525778780346733622725256089722688553972836752808013742799295328756605343823916503574383809073054614904927290427840853574814280887724929057067597797495495907925898810466167906477752358148238069265179460650496291057961281297336801915851745920231797545031464708865671475551687157308559381834556354112057367295195390309359217069588185317881991861044182561513513228663427945273536971717775938565948369436968339951292325065478354865425149471537617478114332903684845453864661924481398606128602928133162034607057316212337916358955181768766225123909233746669031852845073955670697041147915779982844472631272412244329137657275469813562567564993616278292359043388645687081980551273139825636982105015212445942122979133021867526842137553880626456351944774103541521192541309523129870807698785984015751001140498095140172279184298054860073455121731302823277201001858704588193404310738251893691528752183910869013298325351186528249771460351162521293360155777419043579854089584821756063517681124241047383726976097548395541650108423160054487360983928948949271741628500431566524882754698317244453208822395032907772347907258500157826848018966929123802900662240220966390662062664803406321142896551917077572359066801264443352283918853714134168278393841805601390630123691585828934643602655086468817101219695353064886748627422843295946945305648766476319857991738745551311763674481909749913429307468185134321743426438997172683834881539406877988812724898442228477689157933008382451878468152931144205291384152955383478938898570168627376713368915596123692500544549177787955581444552701853249317853820281081253127867309171514822919596734325697537122704732489045013226645473622047813397206548369566028901355063805565208804542486731539099312411470717630413459249730108866852700881584050739971464324342897235566805603534856480895810303506518022973226315879236598982373216068091910283514106059498188070288004346215860824139447827605025185927977085121342009070655719620339119637992668899846449380361843554483813107896641848930807187781721894614873567324791297677954968196526195118534714810159740020607091559002594564760657060222316297029231694614792210560726871615321263380493695198930200264403890381049950564749404438940676407825471554898114236779486811575917116704562624154224379888134138587902089195852502377798219445490418097451514127218464708371587819077465983012437873595303167580318541763252960904065743327836751501925003413924165435227034840919488157254364553276552161897834919970719920374350496265668373131698141183520800321417674768969015729776174881067818648853319976052844567183499701936758732991158773793616220234658027151469193462983431571344080081749987611709880744675533856533829348022227202710245612005399322573374021790279612295253456430315063208003813198652740643149590441212082142643834251868304966691324502547055459297113231126560080740797952138485815834826076213243744251521139213003297657749265793579278906873404324728117218600159242578299057492424214687201520776267893704714401942684072145748016836715564412858614666352816226486829198157355987471603013368195383255114020702226556720875033774201541291510032511701511630274905051564419923010162213998338161490165285620480969457138816243167929702070415274014146127222297727876888234602975274382132365454099345029683821979539609345968149177516178421716597744213481999101879654202432955777354670682326869598429725987306537739200734724900251723845731400725699932600017163913601624325529820740696249901855201529099480291104868878194352601455621050387392053365926888890022953957585011256194449462120503158168901481475293205017873841982817451992580297814173523019444798813251541634177622210212208819751977314348766885145602683693438372785651979750068936288781984598781271608688594333741162603722207447256285104050835046688071797166987750528746009166410306911788645948677940623120888709223567585626960355140651307587184584641270961514284461137599303539520507277719162995268944819856957732666149368283284825157527060602075996113992972236544123943674280765958106886339174105900003460800604347834294710446405538363386936721923511931578391707847096988827908031960613900418922883615477789192372451173860880757852636039444047763723383555230126651843273502199696810902345653938008815812476093595958905029726453525216893140291697664396633578467267498864165895849840593963127645162669772202580381980716681860179790007667270506349746992543270754607971925151484413070717613165408565205059573248362390367914574593249577721017367245490574771975680089913038539862583253549623497735637035160678541969068408053733475175412049822328159349086266190970930717593265639925220262320734526840374538342294091711334856351832504075626591873936038215172224774406714631470547454321141789623578205998567286296539050159541920476248616899351519101152376928097085625816191097681163222230631945491677859140360815691426567198878179684321190531048140573057044304306303747611204698746141982700944233892868462666059411448446241325662334571750608400831458309735745045989584502703428118111056273547971127063612165012366198617357905269983253197605234917060967036991785001069933592375544978690729771811872327098668095303330248391406856492487188149553558100724761887519551416838971814469237512708486339107547206161445037282360315871268366236943647461498993621829465952104507979650423601777630384907956466040104874065142692576024171167431788408016119284940999910246265420675860207525265985636277493011602121411683953216390744854055577234672573033396237308554641212895566238987161952942645471823026326866209698476536489203056839224873863365857955336271257346577641718795756937865977726580078144554852583072975965742694188375028216948979576904392092436067049621412273197712939575127206089721169447465758773915958672788689173297255510635554042348743212392741893788988605796775593039314721568940641440113889408925048446634716814874628506791459865366574029369222416010098210815610667499819102135397164679246861139772062417700603842462242332121738465015184324904150454859119580734861055417382554200557987500765298559411644778866192513834376424392922162451962937137066235045891927687628403802136858200441898168202704720608047282316274421322909105405621726685145591553845123565757931367706447490377741771198152285066293427204061262729590604688822541553705212695390242065375584536110829742948953761329420668226162198148459250898611905738851729514017031152762678432813564509825358403080183003866012189113316420662822002955179690588547896117890588638438086747313780053777898609724534169146334234298170178548327019749725777526085396071803795240140575013637891469113820325209321702273067715826274820031104248206012413981229393816751314587228111465611993217606564009171068018212855072115055439620421744965273772155959204111121698569352363075168206315014514736990453913488599337421973598271136815733744434680323893467814273197486551376651355605433180361156643661914851843676658173616795225205883039230339716088750894021207591756228751116766446789442351921555489952437356859221318259607677401970340502155330008432601282801450804670190210092078509522079617143458499374484463717534498231749340651354942023882363153136767576701390047013117870474222498951114917834525808165981690630217938015413798589324793363187816029657303927855211913066151409847891020133908981027094976374173017969272325748612746936008287835780957976904760785990969288906423934724521776412919897885141432937378603195023307938199867067766858346942542882405361435007297840654846631810096895844313399408622783986868113532560396381710021860846931963488773271409125063413056594316207026445420389205754159719561858810096810845879253237574952072679118880304186130606555654653147063426404924096098478840190357205831024370957493562200340285675844822902714848750940681767228888216714166515916898621795269520768998294280179840623068035106034929532639049084459646374078222715385608116247120872989153594341807909966090350468523413869975324518208443252100967648962428601668874877583492447671938957238916544412500441746517145162524786100638832764350857340259520754414561649847464331473431232282361885922278890741797961818286892897815288904390529280785117974000258642359677122431754131741986538723351322854795150278183831351671401209930610100989412051394910870395349913873227436253860832425922447522904530497691504312859980761858508075852053024281102690644238748281422018067248086185162987441123174389474723322037026170711644896307747652452457649958990901246294265238837001772792736082680818111531860515558759933781758887076793194391953825944668911232614182230089391594988665804549848383191502206185400354169728024090017187368294473535039257787801861668275817653197761667485001453554302827270604570281411433190394317201256835635244462561452463503234393795653446095781853871906770887302367322998569986564572076137543111137601905415342722481732770110707797556850731913213983652446244433879328800863961615071535874844416392508017229145968791971332606615313854994035014935318404455071813433479822564210863088577079057524258306781883671220090353847033063123831845542964504948488578231895129542104305187879533596647948070860041522704571428020981323070878545801290209296111499570284574936044042548212844871415202605140306005008055038075752552462114947046918289450164960316975868457595194097829568610030998683036352465594574227379125182115282988132411426287782345926434739673161614991537362807465274457451622413872239958180309173749787342426211700522077906590606495720751971246332200554226229880717695623488859485508555818875133856370920617340454790707792352804682854671969522122478492131040882298404527873743599026663800215802439085542968577334018859108740267948759666084687155837008493260784071193170121872081752834631922279204314105026072040867876404312114854108936644804685656492936315012052868501048883687301463196722275439263343494287499401577029422119749399090328575654026309504518009793341722875852655505173793288316900316363168321380872732664248727215140724768825801920282995129853477171784936136099337362459052009125643505582343824226857662769609299124708806639712078402129832819699919142027139718722429109527517121199736891387365120964065176951932767121648857656321386531909916779005721231150873726604796299752160387413507976295571074253776397588469830705795615276478058330231478015344771847510627811778111382094718040418696161025376929394401878533133603572487426610156712197589457288558486531566474738978390677351860761662711366593479591705530594170264972333494516373386446148330956222773651942837872370247816753388400928439709653991763867727588196738111762113954198764205327325070228067626832885346434785321109772697865834290715603438257687254679001579233289321357730281706546847186759712163743857803354333334187579314959780700566519543333827509772324789355866403849765391935085452778261363535552990599325682980839365244260341212441210843653953937224885927051871474824003321445955702355296859918277960096448381827708324224530424443037065452536806956006534974145473964582204553190352749980367934856818784270375612337052968642431892379166256932161963164279237051668712569578286515997607885552437790150295404148990641405340769439587216913458529420247196602947891556978800242193662780807233490863052388873402885049959398381165070550025157991720061649579392638582341973129514539960363381343123654566366164009319557615507837411946169468011031368449646304521255827362465320239894925201640567988325553797103372832353198422146609301767281004629802265800915818707265419681445861419832219326463110345716411044030321550520468206197295003071570798068111181961288212856824584273865438600768175941106636678140654608464095687018473365778817328507404046376462373342046240453901395497948623026330587886630102752431311145981907060854468810324398104943877053067610143098435736730641608221669393471771074366479561153724354258253772713242844853366504209287771997885285076859789690214697990965681473690656730243019419945186560734948520955866610487897105586437586989629724940127854642907395925466014457529815315019147977807545486665061583023528271682650456802382087237609888507207279555787796021606631593751520923181319393506244532196548095140000740008080624684228054812566723449270265566432452635606311541992084264178945387965272845352496951396814392765210649016274082648248352271265826956335864280944406542766441875324538464770267990060357945422149567945004930976933540341689630508294362734885537038849681587218580421977291255441835222665673363871033473567302350086199222812210603460326354829868709672614391289452714508581253054974568116650346058127766248143628768172995665661669093674529792009355581713334060332297934555667741678487977097732814015710906103405181046057782801361229034281276254712234775586216254806506113847922323457493809536669126392515303362311067492927834152403284351744552789354572642503759700967352566833297557160399437331824028320872845863117431296281377692692102353487851247861384425011505006992026861501317242411929984680633435652673401058308374571637804788398782646225423266899863493202438324953265450080447332830954084064250151178065432230502037299923990846871223802111144723413291230607263022704642332210436395628228014358707727325715808449517426343637348813335784249947157018053164317981508192788793466860145836867867192911928953748511051946760819479935940959349047356260423442958076319308233211710478665329775246523247692655886800449838247287277082735827362838287057217907885160980667754706624281994522371424935404380548210759367738164064456842133153073931593951729826936827505576335630702388076791528998968031588649060246094371893718730181755751350452075676131920274787866322699149181316026545364402935712741385414970865783596237221401879743967582510191805495474175175215893190840505592807696091032205984119683209186112949866459779387130266612099160991072348615998629145777058295834808433936005123455339270943336779309526065903104905575258963852603883230377562035587121171685665830086053581327755468787954496720577391931079544792412704005789467141481666809875809394150504308737379930269686252811832055329721318630294226550363561543936694711985319453581774337602995440450525028339408285957758731985770885232882215404145485963357026525137260116765524142394188953557909716345991852075717914723059334721795992427017069170039641405577312608238882568981252481072707391920495941957694008951812232710267515373345014418018035647735489172226444500685118768560031513804568970609845312431635160490288874541975538479760506116042194192420884090147872911764499838432266397895956002117583534594801572687569705021301062924513549895708021371731439262615397991816502768618728306221436643020039690570102825875676698711599906627149056817133788497622917769001497748602537733639928176310596110323303886784720225427994998040572831938904463016968173914454665123447822005573404563213522428323308321471104165673242260440683040438812982877258767613776516164186819220993321933981557881113710794421859451533061311224057975944320855776575135801616612982524127674800302110309776659150540834382777684285242479821398512477539125644958624492646167395295808348090221747666243759200917733592094146169670284813837357996437918617203723108913081685379215691273632828480089574090381149314012076541004290305801061477002140109937647642739811347920674258417283388220797475258921511588673823396588972103720775222143194893133517511230037660744688233937687501165154561220419504209160909641678635846947857428681258706830868240377499626864017662564272571640290729370083229070236074786684213314725182012210897789726576877801919401874588539283561183740694985290576879811089645048607780264952121322033742248904979322283421631977983016876961349231885943561484972165310338893688989563275237737665130406464652007670952659313332302056833617653739059505495407577226449159050002037949230567454841522495708752189388175809235209120179173010120200080437168307499303541315994752147614292392497463149301860941478234535414855287717936620795464954607132934775053416740301951453436067180098145645404843478985246690856891949893934989982771601327942158267880063727447100532318006723328401431910809604322542616326500321592201532604699087142922269498580851227879643045220457005495545960067514818991162703200605754742523505325736000103226888823346857124088259785745397224500319382932787052174536816269411680626953037570967848494872844869844540906400916040492281498791760187252481870896634930699702028342797186001348788114158211664361582716581219799139790844757110353638316445262843486025925892175834924967382856109396735203428606995589662422020989373032064239360117459076228305695879905682769599076212615062524991874834381436633038443748853085632839589872334935344866017878028514582723502172442050934650232559390388984974222316887832937512628252630486075294222312585732411206845643338399716022819400944989678465324650416878528873117421133518213649169469444988196269389142415720690003848840535802958166666127756852240843983109522205789837881703852725060179234405821211445813145341842609749493260947160580698626810758025775399828114043143562489517135492794847353189019983695811075102343923884424790032554808424255342489333609300875609841415134670195028270432316303604841646088285649021012654365884779882575642871067587774255178335455140281100121640841986423970970544239759581666755036712320406998335530265973824256371142501102854944324439578356783347208515914527574655673525277674950233614670254166156399979012378260911143645564555872089048472362294883885691072301868367342078940139593437003568662950246308337049478551411999307930735626491605043325966751957475732988853830200604523734137102471432499798777996662452212757061887309946962816071794347965485389575468044479397060799237829743804381411901415994107597921744760774982908965164629559223902438583632448803067795865004375566714354165618895238596136175206129865136748112712134806524771101556591796027368910093675431827044370578049364935055289073904294747356922219150887207897042026866038845525754669790090395894880679957100839691773332913551688016710108548952332677692826946986627005421243703187066798494397769900728245175649707863101656277356652886119757411856032638412062455044541050356185255539374716897147920589300195873171787020516864163088276888706774820604497977503185863851356707919428124044970983553121814281523045437103044079004991625444859526178199194501820048416058399018601852539761254748488340290492229697191750416709807943636871665759323942639751398041714960711578674775010725911738598373474305586762104893282778898624378193376402043824780797515135664600679875414461991857224076343047646489632928644920824126303547148119033044504706784690307611563890211710401141165346375577685885672715632065644434036921227872477186345255509379638587785975535140274977941997255569610277998256548980126230024575453296485525473763352519449527287372572011585220906021969765449643774308597545827728315982919412910982464994453492015525950811621864808275067108328962904468885620008899964537788086132732779664411489076198642045177414914745709984651783719301559524906103491823833387907742184898644526986196298935120029544897182115440160415552010787404719017684645677013457323334109180754945965708037319903007691705118550537272140391457342878538176986449063148734151981130760320260557639694204468567925220757882281784611601940514265461687062128157600464144582046580470994590159829577273380322873201546276298577612883305368853143186711453928405647073135930156245054632537504960881302598088813135766053821312529985625755668379192462213741111515515783264638127265442104236261382718120138284548619775540823237141457489968765332033722517000393155257130425834629862102464409066107986506418137789540586170909584425129244807287114309383504878641858965111651083850800209751905448071108570664150388583499775039859242486546869418066902874293132605943992482929751407509402477313432288035438705169013458412216403113028440889077185179252390719864798199413399309669173277878764328302004429918678188417189104687691280837296381121075675614955442590190200908015375778314700857519995504656348159019208109217467581230878066870308312054730127336942296075523234488435660393612864776990778391706530386518068754849260980105057562824250928272915703285735110953494776010495353822418345023874411311825363655548938944129817370605777077810923260019077900543354181894213832402984286548946940696773158159421580070995477871220256484124403571253747170664827897145660078230767933647100717808242739162727900422311200370948598569870185680413565584907829331020884398471765622317322453779861775410179112823432297498366610617774051001504212151913606299713117301255019951777346247923240288373087124988728493680268811318030199707006454460424821434701463736866246786905897195544208555699826082209655428482809948418119838338649090111595216469490333019348091124009701989695043432586133781597549080070499765979866935590836538078422813721834903220367512845421300405042331933868793701571026835219424321505449335143903429710887496049987745433957064498179812148865710677589893999897958700782512167548288072540681352279254639140476887277510540939983937845361098751994567239725409273271684809275182650369217072179386230482436080134162739019575930449347599321294748030451313011118985197828838867535649278504843061323509546591212647588388541243015938157600124765923669221407576509590839716847995971348072745621920796423662304074109117998547295901739338543708945152146585687925660375991898699716244983739846016487147333442537867811386767734349977953103153701675716043943499886119561242978414363172768570018429646614893317868520094114241098453770282061133111460086250224174185173318803737572028190780413186678735618954745688873740369685914348500914378469136046166318109435263888815967165883884344206830725868221194045909956809205471892571855188331863577546595456838822211760048123505843476705671533410658410265853447176244363462043304203882788006072954788012146526023972128215047061824679149862680492749102989515159253018203285897128494197494294345817191144476635796379172844861033548398589308727647183420097390108160266963549141975700207106006174997262729197405128743740688727160399514361724970463100470971614415262317641131509442660679822356225026975410005288385558351553928243385752407204952613573176973567551299237944567411566161815261013422029842551610693898463034914081108196605398219725533725149409080076091221858930829215245831945502699292862610067813214091435512543306575927060866433556736599711404047794386260662037030310480085963017959140519164744638386618594207502220097011549213836042909580066322499714783469473217466888171748204033690607430215113468918043888532840541188348884153613166771104108277008628938020933576620407663405721712586574415896597085016669745226236818876703880819451932732012968561582461869434934502000610512401318722253022914494802430713903461677844607740068787649143014664454364069926642831518300330954476825738168081312500441624017287363689759971564613173461599011508889159696233584216561577695626959594056446032287095859651216285991831463856186062205477447550625610608891080353672167247271204472336742362738832034498622347228369730878879634774028846628954374858570375444929412418635264996767692962399753138755372643038984044186710957438525415427752009097642888173243927216652163055520812998614491728784242339592460020130334014971851956217840269880293853746658177403315136183046853623372734370858077599366785056759617743693772894690955448225791975483207162870782764138918620562973076882565704094899914692644153177745438875985541216154424610917243580758889405107094748738547538400495565116220680122866956410540764563856650751591232451063857770130075536079956244105840537028047887079213243877334233424151140185966244721476836081158865541506920905002116486652934056840089726954115487069701042891351051445311966064807176028399040568970841493862364681238962375597143660094927470053929821122003925481739135121201786231627878858843878607643206772851451733235524750901051661178994400514567229037578261319152049546421444066357446322157246154289447794304213386721538811150970217746647307780628832143049025474601805513881642912451869126382056950348604764952488472190691162089570752078457496366765092312155451537101248019586154633665112852587446833052582085906613738736550462682014796376767541664776914656637017410652152914472391276946970819115183642960976734638393900323223913755998975523815917024511105519671824304882952901604066147264854071666126436355107540134214386599351488052893294016335584710831836722416226974213736016056582466829120433766781035629568883457647837168934499866248827132272949892552033953589395907179135454612698108040049879061769954843240149751979279385936738105817554446421617648437059734293855664970108285164154908064881637403828985054934431684714754493663101743410557430120655681180193973389527954466587128054905064676873932035523924860556004851534055424207540830287225088242884050614437960229097790080794287460813540491417453463344672741530783860002686354007732480886099735874656372211153900301112536151742378024635818224420778499177841016788051261247305646164674468019181920261515238682641779051105094763927374311212281804684252121170551201691165721770012370130319226319701250539508814728958396785075161033450587761924630219064127243036286815681106908138916576650516244588559317743536680313835087036729159761910749731394934802727595725366845041153995186638366541741389768600496629751850963939937248405492879594378305103159349141970943138175911162899382736075622112126851088485362174380196248450829782258484171016708677269259265113399010402097571691461797989882594179436598486723737857573373164504962905728683151490380283239133270705376802427708110485830929866396195983671185064815939268634527471003663986826346154459206848236724071007188439002828865354011271654645693029541331507953723437924215910397562530330023210212649543850104274728608157940133240256277694247003299413911622483126552302221465677606884467816445973413654688306455517946664328159873335292599643943345858755829046633208661198964499973013275706775970825385162965930620958193496861758826511232554293413325127751559951236662467646388980526907381715036388066878465233809513189307130057927320907880776374290415302002824820328052336997877752384400441101493543378606620532259542095937820965352575827056421645446290975239467616651724360683687908525795440361797828050004793913662912206471741811454472749701475303952050035882233554570660729014037434665902382952581397254285357052081422320298279548555047779517791435077039816187970792718516599357577303788337585384514377931484520739922572419875600149302467243117616742382843769632362710300097076788308814625536029233270791584460577204809261586240048442808347750598101413676508121084288169940045306482812110408437398174467642545687177356587163297796426255664674679101320589480524647098316568969820389050142080551559139558134197925965597406827671086606485105511406690200472128409562616782639132662833926330642733538452531858724833491009640430651108739885093787744418904277720496222626839665840992394315492600751172770308214834678657524020660917204518206548798817761451362869759523096067533402251879041609736090827791274539658618515537411138719424504426318699133758214568628858942305146524548916982155034786339397246908071931044396484240063224176014377646784073412470325297343839041262262458424054155755789055118557447748804520393356636853445852096567338261603575284711265419290111674225559062755120053670352692530327562198278010244864679376402264064754245186523195564365615499324144898930701247117336449810447291693119878823020416102357529555198724827156624321358083613657555960963084332262764896732507972272411174528850338697781245302481885496139167732569939997231422837208613089957214265134210634696546299610347135554938123753693581854451999709226846630783082762888959759098040161188794557461144895490161014553144672237309955843438932119064277550663055045484853065380174723140454534257540074969535938326056358711561870426034061119060496508381350951952656851619260084647406608087786690543331061001440511414032824130750109650405711762318124221821181016374440547701470529671257820757507190281868344983960206467895194966705051240451271116442682334694553103717157765805339089626949699223303125348513049489357890928097683005954561388491772262275009566755711581771238182175099140456576881747521238340908026157544534898484716423954145918094994129784384441889013943684178862635822389280799484452459826047814814318729218826112548022994701429481078842785102521399882165516204661214497793078833612312934931085288492496174566950972567603248981251278822491081937055093033280583260185168972142811412327974930815824158055147069031949971579726423657277657711500355009323052159787301610605564734322538580255087407522284395243856636695688661565077795772085780590324685954779413881109640820413862780915211943217839106497991904490980014866510461714383395669916464915545244272193314674385962477071211472003250808440594980786173826094418690927114008010077869668312289597057738818802270999840530357123242276985144282309795395681694806170755229250752544240631150504969468909516126297533776595529354332918129751841177756307105928868817626792719459794656108012642139224803525094952004287887614786132364470474352437125275844880792473311569827695876302161046791523482080422079275830287809240316154271158418070906092284403084479477723644614378809290168060157619623744555099724570257039254190902899992571350660444628821475660629328257726808300053350785663757138574998605162992652321003442993711704734737698520656427244200568761160483582195301867604130361129697486802929355740424434377974630431985074033205805277652681879146883505092626234573302117203372722846337498808925930835664962781359886580574143056963495022620088287566867101934361394972690618014188703044705309349862140685660762686742157639707426638013492955219874807249532841834050932819460541099777791601091206925610379553014732487346907651168965322142805612426979639311011230306820143131528584707141576049202623255509384343715782221145626435096864555741691538229158603453176375326637478550770556949665353563911488309171024010491996504522529915207578778571528449438958824589055248204755229338608306946212498493658510265903164035837017848138388105887671639298166394308393809057635088604150127527062141329832532772140601859769518579448789877483371206323684044454129487289580896434961407051230851864193902128136751744064402063014624568835452880790108410956414487895483786530313143251767651763468630782437840602207075258907897217790709715476890317246927126898386609461348733041347488027867911708947996993613880779375830015232721765752037307206405504567639643163044973218449784132782228666580197226937801592498289969071228432875783016874562939708257046356344185691072888563973422144803440642479802053573103891728304405566688767117121827589571600174216239978390109002187037554230963755717349926280410343535746247116881530314500446251482715585906237790158756901712648201585481289673359740732043824586882525852198587096050252750183921249279248958259588308869089150807256226105757323311253957462455360660277398982030908151638031987479740014378338543691603086453264708519888764999737801553339231441591028949346501455247953008057729980171667917677618910188555838277135156803151560779590971169721805991613397768804469621474660032377773160507518604644255401464614464834810676390071793480561640247092485387248042842703722969102560587528545484854438364856612205655521252518297539256659701202774831419246744628191162379517114531643842372077463832068698190238047570666140592213645829707870310850331386114734192389161410875070289903088974919340714490088124597904879090856499309214720703169107592340364803712092123557244184175766050376766172155891194058880464990057011383796468160098947025859966058314040481121741646810984468164598016176135598136577407593624106705187046255250783192654348414963484609247120411613052219839035977179377242398112821414643706083262210779282591493680563793090764736129793289702903194970008247592995067165039903236846066086180101015001914936979086976846925349423811741901003987359812019474668825742781344897380111576983431307306022940926788433851240424124720911597800728944172350275853881185073650526964692955313221625755215848589471267888420175017252681544284360856846626354050221901973241651392973934079896573745900613197869557089084497995468741927271625640432951821460229755546509260228781232178839437154797376272079917403802013179625422637579326737924461899373562801032793884336076113555521308759410888773097078034111426721243622272072145193020937521503987028203553810819211127038180212849364016150953692600062885766010929261730813464831055896518475551310839276700792215740055394689049587751104493561795485712440407230640158164438681767647955036557043298037433634682271968744595704322621278084218554962174738972263563518361788572467663288481418001672835392862009505837521750977638266215136177493308725516799771110910886232242014971923032991111053798422839232970736845798285499405326309946648499325347324990702732824090201015176375628742962206682143100132925842202274853980915461831535993107150815841041765809824769928612775885909777307616625754788749898284794575769604732589010640249080279296419609675865543181490406150859256784020831100290255827364495356345528040051059032276817892950786878597456947345601156583106231203457445502910239799102365591228840960810568301016527989573812887618377458739227969341976280786919101180324927935386934195270373978184157571137530852682945607383236414455959756697135139768952302370725622881573877950713901497784451829418028092307944143629607034361281507852896654359368447453773732326412348180145082628908144452584011234369221691355033467468599084848172113776696070984225559135578514559423625080855414552966350581840443404407443851377331218611270871800689521455442478809491278487583751766520606666106963869884159614014529767064734633160268473938706534470353939284479931388829972096495555997823075317034182598087825452674040483689773478068849168744000496876912964942358782826843282067933352895577664897350512449011580668047388001157359747646128374012600295668755140096757122178873242380977813006344679849245050629675773530710660740677396173059871454834752037505234394536258170121213720914616328929630438607716356028165383289434899878443231429038644396703335958297246112365380051875519616894337184769263055282090898535994935831835343771906865303477148893553422486882075468522739828056574760490833021736027786690454551766613767921294162397900599667422562331102020901500454260847512594020029025068749563238891311331118520873609247451819223985617396778911661944413596293134546802456217379138488826223755909652432068836314342111249449062421855674037833369392154632513163936708966253843925445961077664364287966864133928554617717977684645593586257700917979337761251763318847782277687766008050288001442572319428262044534929176429557911654222174597612196400266192098551857640165873642215434376207834969588881780743068441905822095823211636861896397962568214227418254394086300747800688903192452421605711255862245612960733354850255362963477817505984887050680832249635274271838972948012426852188804532509275585709882721043834633237116823812348110460073388450036550122205253924843926520682693576623799318679689730721704273982623304103559001270387639774020436028407355725704889202716745813782123983032400659486023098746801872936621629043563160975400097206187505689460216201708377930500742234623878738968539558814427790863937062801127046907940585774974887678228211666135791257487880254979116080751991849433796285946954911235195465172970290314767292313787527215497819945659240495587543105703614705467943889253382160751580879420741370849677311824060557008473665404216084152721397733589978165256256122973485872575633855307820693386706241657093371876171496072381051159382351181965454695424595449331049627718297738664158408387113972581945265625519031471745753755171540541381588564959172228302283460857121721077442995226954475790834894525542237728106148877685305354592968854636535378011629049734588793683360393155022197184695155195821943872661461806998561355045302716368925192308300884487322957496943684433980881685527790962106272971533179548948951557973939811165000189191297928317326984850284132692188984116862433174635216636822068394861244479866558749471066623387741946968804594481353336866645573479492464056090588771188808217820350923370068814532625369650609304729094098089525556157401474722448067660269677989779649506000261033866065559587173195979723371373289036643976959440402361615675163467360869937397833736181011150557686114568050374855358067580137957538142624041467653915746594945678245655160953335216606608497383290171982875164087789338916976523121312046775886036230170794846501191689003143025680016404709425462786116773305270103884830345724236434801882798129127121243305601460699303424207571852056105849226827943801963182561871911884831927118899977335511506330057329535331199634983029257738091394035961245692698091298005940829298587492736119785177847103874914759775967381529910749390638728144508727918225402562663833190084632537985090134630573692183666893293846290178990610496459737919687632420035418200255090738919310748648040034595672871676980491721769755185281454721122133763042128092341420616250703738470372430375863574410286412009039009060690923509634691781791622821967367996050540335822643800739910371112040830715631123705338665771812109693851791122994491686458721210749969512844991399491369683594689918148679505651357881488646077933609619520064522170132496720315705030964705744996413153789499322181158068244954614384249040782817838738832506369229320541424874396883014937128422718838907405689176841575985646265574056441308849549408501001506544902058926583009813898728735610200912941469270826749256077781161915933299638730832905701653421080816719434376944726980756742865685821791688344390131201395191409498701738270392959384511429528732941119978192143801397601212210630075982747593049332117103540010701191602055634199729497863991620008233417346514467876251482778847243248154448278437510640240546959582059799180693239504036046846553401596675692211161081818488083901586507583090841954562956581286032370620994174908678841439293291440630556046061447315643095965268343504706748508676737277761192351656493163636383550043341197440807992466511868747549160358486719371402550399848501742518457963839581473956674520739540872518471369902204101364954511849016166325920285874149148697568610209134546982034853489143814196804439477185783629135584328986455572599295092633593915601448105276117998783135346773807006671280001905280724581442067736501529265947982289686509557110605112102912608967728764500302661509132418552152194354239705773540472216181122895773426090323268499649100178436479341013509316704189600057631874918802502064997837784400928463328119706369747275321187088067460045762362387689383993379687345136253755340169153682138794656520759551116455943324582775365573647313044327596210658595601193349703072326084725483394589789456021130643931605665239686313504748211849895282091664127263861389824270446147904414534371563671111187091140987242888842359927209633824918703211997421646066666653483657966124662007651067390531278009339774395075115886007851170056593012026558074410672391659571980266233407735239278088953840154321041342334044098589967135681183219770021087938621091156911413862408704881122825228178742091793290763457434449692527398009410257286157146153942334674207999162249236783886814529750174536906552138935685420471852003360995990670448273635877432045125327665938890826426570998353443959430899831554632691725250754324300338694781820080854466945123039766248062473291783185138247971709878970425523636368509407572837725783615623270306946534344464230145652829444051468837874231417770333870919159626285142991615407002329077936213867224366628801159567955031898143718206168340464054708124057898136473789973608635726673254058016233936240571340400003253317599671078177310939061935061903162807014265881497484616897255592451695495870639558495127757122032176479928226527295183021462630558002900799311630098211922608492442900945762265452598076052300848951625287453659915753030383294337347317961713429865471482826861861363742923676459085351900292448609338832828829123476380833839219464819867134778254343934077212946019712507767860106511603586902430358732014114883631358646432243561465034230738223110587725950320215669985819442738258749008525057464757798353034397923904752442195945685250841423087611717204608935465892549869364908039952722230854584080773530725470386523338095787353661707283468659612132691615110396995102126534338339983777204308704323450362473464102364452342027363836305865222717268381809714899055321686192342566540370040838061167664733678709317327043718051125544496475852265883697164005892488951480799302588436767197259402857218425628706840843069284601748495840662255973354796276242814094532024404256055252095970606198111139838292343665031328851859077817654811398520811476478669569285153941845922025442107621510546550182835827537820864667438378978712568869258967789619745095110886450284670618149207046793742566721796055160295023831945242668242145180166816847233634917310643945007401475952497590156233814703739548547457599692998547936138494922154453886289457234968611563157536182541549261159485846830032667536357240390243532847968601055737261490492421733057063330267377149024020175702171543085279733764831775771595079739329183279855933526231444644282367375499264608527484739934022077123376380743045843885256331664809803019807752987699263377224400005175451637582527908101007865117118056052419182313773173215951263604288627439075984664424021785915660478349169883724637941994890452410735062224572505417588395591759199651212612843450390669954934019244581531658864546877897253591250922168111744275831815254621706029828679324221778105140779966614372986322744897770609186232198667435075350319224515654237213567428506404992582511824339880336632084403346262159738612985836288418291578894839946470923247895708909150625906172941484703148469408168513196619883750494716110376200196910366719849450438210429797248391547025187082655089504997501088112993701313797692527025633204293128689536356177387667344834794472112376200675860999627201249963903355148410794281442592257565626767956568681085922814774221063604431853679915175506464950962249469889567220612233666015229250428345888386133138137044480265717088745233277430433705348442651388784636182577854735950382866490976095704488808708639104567824858422524123270200745298879564083508781131403721489006541018718957268893796184074021486222613111334925841879079800217943409715106848759639342319430807964271518306644973094313105030631566972569797382683178780562087441903680782418041226167249903854470717235261271112470205777079484515297396004046839558273949647955663839163066858692554268923146399170072831033883283523009442280201899731932369292580960651063530814230866206152291852927606207193314007746736238253251146793770682476692902912442594722052026042836094693788591284017646908338013309143468238963976568553633418186008477713963756110007246105601366246380361923727076595178998701757717139206018365279887710583284467197962490113969443519644273016213635104078591535373591150325610041315350928976893513554724228900675333819218905951303778872492357646859272930082622123313923241297694121445518542078751159098563880014399498479030995636600099250504358094555196828034141993456000952093561357205442503055842269135171837009661329174495363504273847502856997292838256106951000223697913627702407483548619751510870181659350820726502883770244362388488201203258519112758771196723653985736805263362382213708687670339492226749915392881124680538655129643541723253613240685850877504718017170588625360290603451511603595671877702817404981362608043129315723816875008031936105888102461182150230910052569229271878847941958327557875513916576953122727664381920526703646534404094387739385294119605177396636208875592983299734953183961337086262709582751880394322730366819538321474042921725974182567183173606925104809627118047445972487028150336678635021801599802741039375432831108466314959392031571502450770674935133628097177101196836370833020533267082477950861119124087925578443167622449544067889684526411805490328571515754407631945923250811644764683976967892419945653439851096849649884269749858558530236395987796261003342497856401825920997595267899698655488787879584606490600373010071395965254373154554153140243147183999678382571908595089818690858468189490421896531511375438471566774881958716709947502446839398211433228127915811600215172510887813740604733397913283527207959872284720893364411921377168787853972485541673212847806078993092994188280281086657399606063795186428930184465674985301934473077036666560320315510736824072631177069223758646913837899169452393255555307991658178016840031856317458548750239193999757175684008279418917883469991487086604236559479237619403748254827202099960958430843766365665445176880962988221907665774478621250981490159391740852594466959487114796090680614597466205541767451950967900888487241618410546477199577318424455438914147149888342991757264464974053155358450596398819972755829914514131813598133812946499996863865923673797994210836584468515740470325686928682642161075371104366606425594576577292229280653711385678908814674779250829357893093061705388244992415000333790024878165778434677307273607116265670423039876131015776134225117558636388279880496950136612075910369459103766742766022919905099323317267589223482529466623205562930569284294015200691266987028906772096125314088491205924729501524596201339152210532526531328302867367935085681210395003744222327550434492687020287402552955012431702383495958598429645134350933146641858252437558006125321976699079841176225966131353921344072221095939402214019259458861508584537399775287517839961564659784882660550106276271405395043612664597058945956268767623382167119220452684146086531393266361693368159058555135922679881395224672682082432389513620782749080545736352950029113030999195155174622006909777544294175147380961749789380523192341938297038663969120377407932356864661413913705216389795192493259214280319137189753280389801885779623035624029728948599708313458751258976270264363555223370381961006653639112289344357038813116926459670318257122353746971475677917817826208478485646568853138495948967540153897049188802067205102635492923779014128268202187951571586317180886631437383753641599651607450689942950828555183054126352339155596527247256040273871598019101618356952977541241535882848001024828681150198467655706309927755748025904730148589695999312373629793334817724192972988684230963809167766039566819077272120382966847195636389972637997578622668308170023452165946753679392013780990684232125758971970970021348220968441583899569435935571425067153174674265583412260650728766047103277973457545284741722083248629225227360448184234586663024259726544014865689953004803822766553348321386482080549955241235209093075149555727841451371669445349657935075173751007412414019588169433141015922303289160604019196578859103277819084841453881742381395901749673323020667156168318443034848741925927337753455124280998808917309242287911222663691643783999103790748227510442010136053766631430241281601747713657780527822410618957894865409116348729945284095166530240461184771943157742298066875043635481103355920673777420637870623381478059089183626992562369882254594006101253339110401103650389136127297033608293101759386600466173822060131148479198797281117983603309784339745962090791966469828684203441207459298171973941067259331501223783542950274598099469372903425609967702662710078877898544598703724459766515991795360530115819685698572808689229240170395722137162263458336136480803134659232278142113251564626578507618955063485629660117288379136073295238153173944342370685768391453604100897483505916108556588181165269662050838130025743907426191343039108100744959209813355245208654290377881372215805515306258655423870409071624904776143302580583264927904095681360688439236800031954830431071293355520504703203932057417112052895985236577014407339414953599387221579749472840004004694872717210134217162164771356176345282008358514354997195711027252420237049853790931736945197123391228647914609161957352329393591221852680783083263468404984571129079844655309447482051211827597678491762367614596423892402538836321939926216881187413803826684331247855941728709398413356984923483293595231717149526089078689501444512169603538079358000723580091076740551844119457147662170130781669184490352214132051869963310863383624681490620808724842460768533541686590825739508050706634742605195401596242164634439221082602980757551051778997635820398969387901192728366959418708974660754922227917375950127586962207420481938994753371340466384452393487380337838953247613861945719718359078782814558755592671497170071990405969834635794528048229381923327059899257856693356567843960723801937055011682422373451682156075166185568572427773849532917247090776693261114226408010726349563618364025264041988087861682120526704179405729607268060119129275011682928875770470349611909145802555363025534927266011586272497598253608830090822762074785631633848546645639407952504627605081630631209804536913716872819402259586985079289137650674718882098659006698819684575424443082509131300895651529271223818481937473954586157372561177891364347004274444116461480731383099471943395664803822845684966758400902552836125242616210788328125798482029954919372610651223082726003049473818172632983291880808131693092066536184519276530128036971786208821698933484318367369317561196024399711883961247797906183286054706364472313605222442240347808664494277421647197196388218045880848286835598841956046271845407786429904792359667185133221347348842989392389634721510687112207711258431881055046892128051700766801628690820187162592480128017036249496497513356275671275216549646918228329118456671432076905971489883772597513558406071741970050754054372892394635444392015753906631156806940201046188423159571311807043367171779289679068708351333627829047353063584907360160508363779681289484374565209820691256728365545296835718621356122071597882149585308151755997835848189657894135833054800769936036986624910081845276932747000971652762201479311089711550055970917683898289529771139974103982701480413136164779207901548305687099666006747402599932042007231007295940573050500755412603150497675595952142919219190513826030976544399032503520189047484053395926403877621482791489841774295252686530786718724927181045517519535071684607029843219634440871776912748066191139902283677123046148023462338321475318302347971984214967606415638892827031288653646627261877727036437135988334036124927136233778471270684099974961590901381380022619972825893261283426561620908474814860088784061144757056892862252436687959195722961341862895713563182676770864941931438505691237580727610701381965540268468405260884735094574805806707062536977910183754175127164788393423742900221063972569140892951784278665665244329940595727242236481610992053197409021387044320612193363273467425613025300739991806873426164609347004845020438935626971141289314242202909415757119710190565914599383741333842269918121448747075433510641112410023591288150788229717365025412760790415606900619822514377957191735013181622338068565011903322575435697280166562575800026079975746125563940405236198796419714102216973188638310088892890447908427145316795192900640361600790151982594062921528319386312151258231288859669707781930447603165234642234636642755942133696489386925996501585410474728356456746340619174951440583172369313935588199700420193881634871386114625455200921619211250966460997786165306468866660300839189284991598409212795492087753307902636602241190604726437175064808483728339524455534035332534750133490790858596215973115988106019433821467950417325885540566498283607636004782727302912570438593145610704082281265422086637341028416634270379552243862599903179471441927657302918929364636217545474155582254023629602604503382148629021305883510657206563803089565258108176734326383059795118414928647733321367411977955387548548761645491748608760869728569254011684350131164050507911101502590855645166747091698161073548507329240013348381076709807863465644207624052514528906188656017888708418444873918522485196518198893717135346770067934907659983921711253239964645255157478600392326413483837787872939560853816791301761982728430304933904452575281482568889063678694358187926339203592961084374858660253738353593423861324930640671213044528098810103942526234123246678929680639889328940250658167152686214450158030729063515058557746861031486579186341192336109743191816184641446088938415457394754748475903062580394264904649212707633072739180217342775255702986623128331980125379079981351716058135919855344782366369876729768161833419059635670688128000272771930312613266021308666499720079688980818603651327914606847147077843736071075381717351826324353740243147859885197554974922766752956562598134425468998734012307260217733107859475971979920518156591868614837475204891468513084775175469704934716261806999104325132245401466025139232607808779437076291326867660763465645062533465562811904580540419623594317526691852309904007475391504327470488740777375050951957564612610374299919448829574860307374201101735341099533371014817503224586516713429179381729760886317709391769603014569076436591859011260004563605125564606957899521508712853864140344289788546622738595595233154966740545112679626907186055379732053421382033347288995850735258662333948047315344755644214710062775184955007159282529123638442332317187438548854265643169287705913796514140681569125987721811754769515024232649413014598219522219753755340142417516174402654293188949574007226321656551001785134526682044166539312221435418894582721712778461529988780703159391524061993914834657288437414636984685451803847600201880484852561316612981346630537303510696987399607714500012763772776671788079178898788495316976614230926776586820865353709923925070012519415608946383258895350578043858577249611231645409364527695912712828866521541920604644466165831107786173424409808523284220901955503321082874672609096766935782737819733453910555229901247064588906598617854726378909997004065936634011401037268435260801397538141714510312608012831579846128367058393103079086964718779068897855165765972343755747708242193049820254488346687527602404156328405166588948004772934444917933060406931468718589509504963673192772568023756247474021016738629438515459267896478736303336979864346723477701556766252895723763777917580520107278473325705709926981099268130543472234600893910121823665684979892605573424628458456920113497603080585558567478094148158169093008111953426964584541937911528419491529874260200447795863535761247781596977135274212344663238529601427421306459810104375293683577560734709636435257049133680724653836187288550260476811656931253274981022654203241314924925009641374249812959445668111038426189648014783050587426894599487926922714376071501162396093139146843228908018639872938498538376670793046622866401355158917111175510068569419552614293494242292516165573935369327272485965075835099574312540752798373773330601235744279984674053401286990934580452472712998672164664194636748214289198017762401495176245327546017446569616347988124663747139645553660779654003631899175320247591200815026399403468320097845628246480519309393896129800267625263939700300020744819673175809550930697241794795624463873361671331855957447606432841308630255309135417957856766376998250259932013908385009956163559301907757655036541284399502636134950168187468968218922219152695576321844233643785976535633225401013840717336154843880386805841652657577742787014695865823825048399939442031844230643142785015680569580926291102594697974647324219710523282736833672266866917834752331879354036108128056566781064650923795411384016179128328139782288312975212208099649907785726702535628800362850363153303377165352837171164977896307880023294338926673428991608667676051209731045248997086646638790978941163814778120263214572271931216645405846368655334714929923756308512556273584492200995200238558875311987005018150695930865714774434767752052445092629538222630051395696370710554407856529621167636220759881516585755158167640543327953432054124256583542601146747388465762546640908489556981799557844142140306903269715317393885443599077491900997507695622492714122123240519649643890499789287574451524123326644834764566343236691748626654628033923420055963592369178773200973403584665450837023700030486002469239948312510726522483903224943537052369332499910724505273907064444282002668237572436757165400110683847167984282433212735112844073044645505937424167515156706876965554387322832909617347387234503102531923250012358095094801756198748473035342290414794669553771630322521874048207726064032352424629013612519085336543675312656752104590499182887850379878559583787608136250907742957202211679386658227942680440773592960031801195950993387326152084595915105445392970893110793277053113819511339595196249110410151343433383570853968493519227468495933957243784121210403352557801338612181464278438563719756920763396414271603695074272363383243660820174243100270354633858038433444393103645146724273519781767862125337734523833881310260579889288868090075576243733168095548072618464245835833006945292578471369199620816819772593007990707658285003062053031193527186767465896434893506248080758923122707711411757517830539693742694270240375275051577584791436870541170324622114006840146902228940754014339003140133311088799009115717949551480898652904457628160821584391731691925144301081080159540547134215992318405020748273401194664309163448499620236326406091774518932540469872153831606873158332999800327030394278085875566396345818362402976893228000635522360355621375841185095961828386697517029083730120166901694492674392666562658826889820554898993810459213144481013838901989620486069120528082882922201855894002982872190965178023663529385069065948155462944205711246688865484757058716167569193844603717739340823180399777739496611138162827685037692058712348148703914565064699726291747751747594690495800050203996849918491409504564877601226677468048454022061605633991381417151505136073105082747284809132685771764686325755849614985840273295737431663663512951795146770511730475766637776039432907584212883033930909126589104567974155646995234854317687085716697316915633851085721813596906630759015991701417013144267762163168561848961403664242153949374885538918785768718817033939443139266843848154822098552725666988340254361736529647393002538449946266489994596734491546629599102975423934405530972687956707603877360996209032675547536726371694632587815977961607150285154045122294292280862507008728009775024722935109530361750687228251222257486138708996664994809364251462628656713679462579332132284920321427330652893712249862019300478141105357725349803423481652358058824415404601637185767845859778156012307241960869405026901362261099171653380065321182369632160224715213722441680805841963418968925892494493563519849844242187261133878187700109312795024818496386794165282026056139183209058837425182100757324129000533459186067158373819715349732805171790144263304439824521208467654732220921789810250777864727903269183909930838202006258336455078949004410903220487091024483516170097573959381748308114785330145774681020704718696417271972412679094824200509082478446693690516194003614890965966254509527083125586388803642206583711493578677363998488393299458184367594003329858488997001427623666089510978651824956414216253497431355593387432679249075412246836717153602802933491316262684578080364604432504614077174204852608210463782050499785092745449156551674996084610946328389765115520029565041685577014775686125731017942089980845365057087483449592268017281563330037897120985077250845810984856680755316501094487748298789779608694066829906044746878062362006584556719730021005904945413595191587949294656710908136902755795471130014038877117084373740321271967418015075984779702500090263343679635346238198739272420188988406426274359353804438995941030184732052307311470935553732209872973650042016793837658979194850075325577062995156926014636232622232734605822325118789815370982402790930986186265077160388118622401308155109400343399444159153791129399261810105829478608113658914291316272500326850849638903770352919618274711920234243538322467732122533074595029913919013984957284335716244968814035889678142117101948253669364280259722923736460193189444276403370682698723435492487344264753320907384444510076942604652257191135205285572578517668143084825149839529735768369431588526600803420056204975998459986566239428380488146938271407517773351419807105922222678882999291875753441939691602974039504432597784124130311446559951494806460042772367355911867443294035843161973358339037263408664954515157659902124393549386199906576541231369895398343785168799438827079726339076100261661568988384525807993911582505137709581108471154001286605025803325337049566797403444636421174067713913009624641315407683181686189641240462043168253945308590916827235954689505984721345740439458512277190912089834935186216486323538126674407329634886187005559046834093091109199304001480135284349025105036895444966490526980388272082262043900298645347145075037759037181669219650506474722687776984858039569829442782378177424129712818137075144666495532352433244037836058618648087916360118515514582105939658062585047987261145581248703602596345234838427702834673750762877842392232181913523504782273473387381914729931219750794590512617900284871274372849627082937165483044635380738053915695645234730953099341641111516878316854787974130005981094199207613850248770993053165554851010214415978228525469583376788636204537575083532462622823258168575550398140793697207874768361968032269749902196345172798864212188566856261477736158222210393971078366197077542669095671150529092231149206791671002048771082264926161727585086932932495093699836164665646273957096658789873215431383984760201933041080819781643176974953836357988394986906397888249168003644274612422423185782485512691377380518651479517405136173626773206935095597639793578539053141243458831077752053791805228727089768413113256604643983807507111067754595147426396240542144427995399043460883943504286344129603250317241732646246278020029567294036038493360022532617024797401113160751257248418924333890222541285008617689855366842823401212994782124725299393908628084678751746396488905790419774246550529590988221362384808316087034803216203418230627568738618337348841316497639423278814673969012680732342860543658206576021259190786241354582546512389881394494541852709449679359051147376773635315150786063672513548291120049125966735186039572889126060101055953822637194904708617631132134273083871972562133662043771666118082092943979443331595919140479912966184380522166383009436451259820866089293276013318832668999650470878970136484982784398052665385121041482858581274162418481090147995034323070540621001622689329636835721252605393307046662744825247183692919369466125617355575544352625745997026458135640299494559619794937411028422203300989556338208947915996560299923798375413935085333371183050391072048988764524167079199711292816017043631643561437656120070571385178385039594454957426935910412082136092015915893159602984595333918540818131476603443548489278163387687435589579787615417349679096334378919017327723864556296742912826232163297357887787614172845331521315881169413711820998766568588708571856836638991447194617503183835254810927867393922670848573724290436824681634662439356338776928805612074828093489559749872757500770301489161880102880475086219294698974677970061422679315965346898940652025129951961330256092256665709859695153228967553553691901468809675017275291686547499385743305789534077991360930345877644602014851940234207620798064401564766233725219757566438162853472926945737656574552733041063279162566428449757478919067212207340321496601357059771752999028267999325650866385195549232008006806824082644734211053985075392443580634993079018747528742347501729811984772238977518592388486190520014815651792545623033367828532954145003734219571077134356312993597046722849261119221575530668860650647910930441000674089760916043825033746275821205311580499943742516294452365736448207834074547276979298307301693581376989761503009278641714482152074314064290092248551912555591512462828847569012968610529720202465056027353283996387162316407698796605796357819413103069679429716564811518788891416330509464827398318257742442103561228161798981928608591932397350720427202832732105602081189324915653345779770145867436740692733452314612224003937087429097735983651817347295512731333624767686948359717146044657600654454689173436768091304616794588599933536356762073559680536915142815587943133835772601502080854753987347919723671106123703062049072933326330350750194023795401477778987334416674633320028339612595684049369500182880157081547475797701044402895636013601861295214487641121378789091882413555837558194746030707995845702260667867478297090411217106626921842103329315368797752680687239011370945168053990668330809054828186579744745792280895296237015619835420862010870995828376824243929182651031995109840065528814448099747749752800166450249656458203638968963878918254166079050974289090613134391363387755548368495897087595323573667539240453888321415100721598345176551289966496547404312439760301248179806101424361748450567131239509299252951346485723309473463320920351728537709890662073018987057946514085738204843371166581126512367458853795111233698785135109421288210079162280434120336951135329138058076856541355708393238328403609974853609855708760559564292244106104765381223269535329274880574025854829753201628300586124999041525209486574433653188825785268638720475527245436671873190302317831581234139106860717012366967038440655728662464722656912823809839836184451573616944262830256029600653752832146961468245933155426282667875765881425113975521483635824502085811881621318441682164399082801827067753837286322685355521726317410413011581221610713426961223118784916871384891378285057454195097471456441646996082886081970627439704515657393112696110391874463760238466986754208613015360463162743354787373605394372284175070321880791648275816381879385228013856533407708306275382908403302598547005193422459441052745340404240944580174640971822261338021651809107969151456378168439893912840339627221391550470019539232734357138345426332097217460542831627998047144358693120051562476921776580480277828566117794854717304062739244238296889310593329174236586380716801923775723372245914314679175850530628988599767849410477734550608621919526627826240578217436175232046756293085969026911848801274676450235143925704491670125825177306822693136152244710968339310076348712502386955420660387856633300503413504159922075206797548531130746164423950571684606366011114672498680427521652148822256723110491175123356671975425152352750992919696245422228207403342026125940516999401554113606218869449000424196644763747028939292464694310349593645447634190027357876501923187141246751109229871354061788888131522392227149769987790842877330322538062961969942990172759958496880128976222032075495568668611695443999088640665753876779733681269297087249230648085262212015867033236802886351813273174840400570616477050393343638056251803236166809420543488192687492995766258833180805047164980392627837033869537661107443470301386357251991766496119589459758736260529688694841488969501534002180820504259402436634686292441457348284811146476887760778212808820600184153740312159818543512208948306489330188629628168812536972570099486388943282062662845019524312377728601811736089463998839410676331662059361394517101499983622867688886938840013574399469012244284005359941095094445099272289416077333985863029706431726764499884551197100156824812706956929715074827959091938397224004448210392823565929574699572840401002968545511100161347396981861153215212534634133220403918890118166101104397851653474689068865525407172053634298931585945717272629632664508636245266006662229234805597814632700631487872139904002639475933368663578834646573975917340638066308594841389742849956747035361327426312714905821081739163700527963527163080487158465330123133863023135627292783650158375606641154494778294123988009783039603509888209276557307620547402060905124404102113668475153389238867850380850161093708279484254625905393913344914788236482100335042724814027879024990519823821029325147163022387862259177885035251643718448387032671790596611461444507727252582287382850812293579336255395560167464017247304853539273788651577078384079047566473639456049391702851496569760055859363390432606183047076604103119361059159283348592838754242643458901321059224516054914325653987718374421687606840634413164219598043982136128379069978003947429471347872396275860073845286325866110102353537819410625402769256509320638004697640419439130981762168950504154935630564647552524153880049513604715855354946309771162270666454001552828086201418672472731583956126697674237468796982250945846148247885050012002784397860932522326194856340915763097194929141822328765543961577312542323035015285971924339545778952955919931416942549755363671741853914242998677312262134000336792330753797396836188177026377972220977668160205875074786555388228992306670812455876944372997715013370036495450519241905286939473934806338199671930276234189091352823684102479830119340432041184843215472114569046323262795038388156617759271425029400647281707513992435843932159628698036071354779574047004966598322419354107161586931219529229372893506042420046528753389061236163936221253400942005127688337470516773514343802888723658773834925227396507508151301740632248337717629672259072269390672085937974682640007653567023821312852257768322504290705779175488803676737239550130821175940301413143037528104989564937550588111411975629101784796671082721437503813277230088584784177387853062595069453929197134732351433639157931973038970938566778590358696772477523517110628259560419374880547965565187443999636237256062245400094011590823358443205850326737824804230130180458277330383825342610669506123538052868107518545052734247453913068234491137544775359811998971450880477035457332933391140690842979097560430090291647870557577641607007264667740084417697571326330904049106156533523408081023297629850556646810701243748489349304353857455326219732798421881283833421816185826492797476133583340854389953591263376954746821723482468425380026947548581723180959243769537331744383949995751171427862817797926762987663550644745735376825793156275117773079817840668685943764334228808772070810584684996172631492942440542615963549693274377756288349538645385455066357155008049010173510414183747793493541050813189659097126700446233581007360845375710537687178866256568072900079070870415455625449010936727806297970052685154392833003727789948286667809336742563456444649706607223784259314198206511215765435777659043949622346902530127337587143072064189976541312649851208646189723152410441777911058524505121465494616976125521686775129673244468130497300186887363871726097973061239288285924106214271022795392637122068738686565921742127896209615689900754815441079345473320331289907337061943706242672221333116558080396182678680377295973637005601040998931928571138847179493290412014558592802203426405807197914153116860133742242038581943823648121465213911295423467355239599531092216217866159432255384542011655518452936739199847713322089515995278840079889856976534721093840050842947355555498353896995804844898020874929605602647332338463542238753716757379008054978557768903000696279917357681254657318503332885147993293697490490395125058106175812805014076356332602845089861477096308538023932360116224783418823452009554977301247937024237030838460789406235151650157863021652407438559634049277013788100476645958159296317448419208990443724908960046858183000203865914306729201795354614758115605487809537451769458744315983110746783881065875195669455666470926816979724454058577559858790994594149162738055695255271752333069124921433782413600311634041734968466439934412163054652108999963134876447396475570204880367277173033839890499333413883904025051328884369676589859479536089455393260282955517184027153649006976286168077006776795312476408039512859331815474116337253242205001452198726804761192846587520884788028518418471641507324776261946996995270131756992491941626803648044692627881142393710278140353425574814086140765064202321001832265648630978654143582592471388222560857380314426814687206141235961095426592032014915894938246522543604314881837616364136972262844501984733369481660732835425119038766201707542095526103670123619635880181262462381096980377860928124563921657747728871295541002787977145568542095740646159268709638389037881106619197434948199807925560273146891616681407966732254323888288954817522207106469344503471362083896784398525101447813831828748959979550206720187744550815392272758051010524184295621663640070391312266758863898481537434865618958212678074279467154113624314443429005680694946581433596363943948168558686613858088272827530554598431411299486228811242035989452447497870460489471803834764602958750630358630554257409368945778878543868046450846721733973449890566644193829537373186931351303706720456878912798828154500019609392108590466403499916342081779999856484430338354560803108882904004652447767335485442446627673297628141279193478536512487534306094505306973694991934967376023127680863634895799730610468014285966099984021216963699259050590054052562789211596297965960310865250883366659449477524323270102800486336434000012611312886618948765890634418118259095895821156674056797306999168877551886367233728369957583397246273177117252793073721792316106309042466930167175339819283582976492315187048072641238093123944259153120456572968811285560166532678750935705448697726709068198731125277038324125309970912831752942329514594743618151550974337071156565245872330755279654816508896940695625523402078043351098998148555932893358210688399193775326727152804347874604652668378566087005845458988415187671420861221831991892824245527372446052950135743978624865821081972390598944127213783861476063398321296896217772037712925453902222706640082775292598188635658488331542112591912564386426132852175479762855035968138331656595816278945393562161559593006962793018956979519909474277176773880196637819068809986020762396722684880777248558128077554901464681808365908382896238359932434457900187953388409613179698444054566761939104215791197644328834356528275349138543786232096806997482130086964397754795487096414433491089624639059880457723374612617645875951253614406782955433804369984756767550163717963301823126920267316026595115780472870220634802096484857154809965045116362016625433668241671682658356008095730250565172786778434264013638961291185101984663130427765592555476390633414941532405679445041125179136183397408770282684145160196060317074820852791761245526351172905725125827490970739319884722174652927610878335604566457976350048403302218646225616558637103188030869671807681226324115627541506797601115383345661576952343736249100564781865249538276157882634312222693192650017037014046017537854670565411225444164289473972636969985493243671466385438860722555661233399359760681279893443090363879276351660233379808313421010226685595943504533783831831577382277539844386153060850524690323857640668565757836676661821325036135788795398347462491759519850373790638423489303980545472492261671193001516545721438337511792958548762981717142226342136922374175090538939504998674245592118418310161639512015808206892686733052184122667775374114070595014546737489271705971601366297139486821475951056336428070172387751993232716380049803623268564143002715553387258217381655412893185979752356973325716017490175857672577790764740852901628263665886531336190961486946827142838008059191718263966348733777595675751527270631343712508398887673953935480417089082500005703357341881797488332984219055856360862113236938041949515911030394935719452704960476127898443225422941174845869308425462645554839548583164088078431197153825213846053841576790652146081717403645922632714391990141434356752333819686094850940914302799713730555277413541592213742465973861815711578397888310999728101186161038253582316831308132565894911798341090787413867264050056469427748557225131313773695423636035370128839180807191241648298792230762488948637462358440886798073502431807069363642281138992671109565561560096320516959929535217696729837792439056276385244656306884088224577179249729698808934189237422665815943975555037377509123879983519376226913479261062593637857410941672080897718692688618852332732008753803892709018392353795148517628433569407223922923425338348456239971899212826718429880157246517761253778126053021835144954783115250074863201933338838866396095492886117000645235977669327180535516767656627707124517499903728160782164390870892455506402436922317577633530756049393865713174922440997270493868169345022062411010979816971760281326423001937853341455477191208199888782321349053181400840170166362577778745754998669927421885540795738155929757923490957131097101724565650721827516585485041768913333196607231534392974779070712841713721261278066895992337693084365428585140970060354883029451691805378166823448779470945991773742600232317291806371990298916457192900684804941805375141562941876004877801997045565167807347012352504388406737795881925416461755080220950101748988840625040389058230290355075771487160632979718363581238133294526405403544026842527374376504628252156215260480866743619106273931414396719282700670984611040956136909428081511919933588721050783809513276146744999328951706687196805300887596724591207298120374324737144358895712178828093332166486861737825138729247925221412495599883878114874025426346073793496778848652246236691692241615531703433423055809817386818699205324413370640678203421168197188034622125752440070560069113912618912813927395878075318808763747702278534556266044221847505994731663704533487299443849348763773897950658904989434197659668856677845777229379324063059991111326358939436951773635747738944034772355630393730706640909808032035934361134382447912102603213878687538161833629451788717879696068996759504225967886148659639495045267961036201509616325546105214719730553323011001407146950316791086196567756643293279419689291088191450515077887655728606156428327067563666656527545935016354535661276577929323712238632312725752487086721683887998703945151342223918233637647948779098684796532159884494659143470527760947778487117346890721658350302710963822498522455288756927621368073226332219726446197087810433160667779862162369866594930716786822185468523349281131198203813603474310674742706802947511614920628999807452535859805244251719918856762935206766928878800746169038779030028663024027757796593086167983405632186547644543184592755554096544495442366255520190519084916042377899435133813080815353927735099145471362292664859033806568360343098186045181349410186177465788902232277609002476770630285598867804360352879694488638678006571390849159287639589197486693777496676556585883598432625519433759201429507442762685163678959778695300400396597666005673672030630328087244100761935854336011994255539120541053669283956401443571761422907487933505632051849004694700137712774013105842511952577914694033854839515802691358146138473219941855781243578576335666360296593212625318879220916130900545551396205032984102431356095322992324757837543182260218748248935116788341316483414485742599331930883193653288077369632390193247560377044370258531268451477737891830056996925269818113387261663559149742197340153771118895477466184012439385049369802743248970338262284042123350599390483929092903196424324375347061429458325227696499024279671596713058296909059685120592175916227394525192524260242931000796639530851401820889625547372524241302969397679331372113753651842928902160337761699050519549291156260541640975769012838667604010840331483197346883232332745763905312240534081520564369797837812315880554163281148602183653080361052376678600536076113920127200317776864643497310390137367601550832115953028611984900480828861596848022092302679007198973403952978785381735344837546866495347162577768742404603897505326405168581248044554858731267006771561585363022342769554476396168807964454414521602713337132388254798620389658478419826583379888623006242921222052563140246183246738191253046525852707003647914885694090285752349252829015804695277745718865971670083665791918825844660757474326699358244041164934560908296473567442391220861803315909678959271906475345289759430610943090474311007230494076491664317773257089067262150515998793920695380030576956192095854928038644193745450759518984098338207974131489637851358931886456825596357309495597020172086985104114671994850681446455428315841732250336770762063691694974949325798444701024569273256250921677505793720388764192481170318424985295578201235414204248783682480211587166865555922816897741622438089747148043548669088624580960607736806568268811749009694827986928951958431612556080083667934432680860610337905499195834526059827240809611443563918806447529894395857064792684531870010391427523815883929017445002749378339842589580778491293224154003443054167200053616287462672660275031961118569572174465755734035062489813952830623908979680271001406277499294861623118003036750592659657375778369787162096635395833766435531136749253935568608213657323135151069563418254046740157276042602128930283651522888246504452240711190530478007712795233347651561284580092304402494317003490004199347930515308883005923586771888526839251150011637277181924961053802283687875875477957020066037879132926986617295401552362760950860809864140347737537280757949843575256654555567179995038617390075706776841298488230718906781444165632057698533016159475426856940336556571729202875601672383634026641943365057636592306421057436496966979571076488186091346246322207730360255477507532289741589135331207354931678084025639806234399583816835808174532194319442625024643577910005041989534137801415225261083502552819081823107659762206977085589177704919967775081750904537146125132029763595509357830032591356272212572240011395210625204118822435822181671121476578153032015785862796471778730885377277841849141240885219333427347733025085766739256394528280396400794951061761773984236873864116082266116394883492761427896004128055972212860845315561739685562762422316808881853135720464180636231441081949032416570049299192411957341317865389299846731521852460321560181527792000119236705597232607569001927045630323434361358665585210754077002025674063988835538405935322424043272182313544654076923451119890016213684564767270401771320161896099148008026898909811144631371227295543824832990326108337833323561706909904803461365374114206449187304553702914635262314227635579901986546115485555903022619307427070592312665008044079996645532076350307977915283261475975603797759834609677301025150552129951436065819661163390474348608678833798567197859036803316892277028052910129336540867104546644009283871317967137121325180328641914883672616627672218112676697629226750343498026248840664556913634529422159148296626449387439032555316060267505755527755657198711077953110563736383599570791112608708307324264266625953155981365498687887123154075409585448910043388965989449806616909014196550809490462082786510701208476087455173836067439224670747399892767041068350085763651387823484326975807916228885052139630045049109694291958512727277254148390546629484505057038269747467195981799027518869264981057353312822763040040679263101457367088508010637267263847415815369559406362462115012702225050266714176435333003684308836155569067258456990390857826020149857657113818197577879893133753951677807541187428340039424734727319013084284870896766218157838534670520019241105649925988006337484266122744721125088476803319844698145995642041155390294585059122098629211300775180917847250877721253586283063967789399139679527266926193061952754467463870091318665512457335291660391946416214222114150656141474701806846730442360075409438594968620482872133851929387850340365450271264356493857898925995823974333982523948784250781454864678170137746716783013767542209502826120620218661002391880890020922705220922890916465420401519732268499765597151638691864913946952234520663659021799320799544363030733949698578021505624256878765439923483048095279041585743072572859467855322887576841530030890890248557714664856076329362701769502671144649486605666428466865823454368235712026105824282379893760205645329645567463898781128084538663401069676307526926352015204025358684350751150343827638870120319528000662688720613501879803072253803679807995980344922593455161867860779739012082972619806474001397758430908358620701646090618897068980148057343215534084086091667568661014360732350894556305180110729130381244697959047084666039873502434145770538530500176750792597824179405349787571821807729440710204897640785289385500504175437028985324573780534263510360005664618893697837243230020024153433391016934421362947862026644904521003409982459480132620293624725969871206010570492147985984671827511920332019497087440707432645153958172730520043263918644087636710803660311787664263432964551605361430265915142281397122183182460684028184112671905341723856327041656636035664646974808924357547762708875642778732338808949066936554140145728558333787497827812710562742728588529782020705921786974937170676978648758367106661583887036332573380290000184390473128116569623388384262265638297084985251434024092704812931819474186522693369352476641712422385360603634359487701470129358871016898209459615230754931318327192559934240610026745793941024174725282639618750692143461147762082905916284061551113826892470962216032138374884864327142274514043016781157751671158296633879184746965046997383119971684115250533169434425107602612149701275713310150079758895622246358779309464410905347582312420051222321089117896310057699153470757077655512056952863347373637598768607762185689371949608427712879115794136425877109840898970320412116126649649453711430142568209311301876501934555348724629151292993307677163348560105265510359862802895345922335025890729864966919137179633691474434407821017328871297888806397849854987267540030379571287045348987560652046716684797317646848619930676472708676734008493381921260709595277417304274942850205085151759431608091495672059952108728596643620584059316208392040339618663947739910622420720027163310329144730010155904474471801782735262330864853335943111199783297422039715164164480579818176560567320077535891352355223006327980748707613437410407549081973204822186595831182804524665637304472127275577807302016696068117830403011154428577864582662287576460567435656917567936578152781272398663503972362301265319485326470866831943131119875349456762913089261502776093621018085416453118777471707005427454764526596533719495283267451053464474986526639561450174872635549437020775574117378858369586473916823589269524834308575592513343764802088984139803900670762077168962382067908405569470522808769219359952979580463274201064568221894802614730428307526500818212678659986344661615786356160575638132357311785425998437090439810961521863343511957156892647682309978213874388084679112068875231292155743496068640567306286404156712303880257668363623643994225798148700668530083890507407153179065547281297547461894437696808993028067669815798838307693151219937870682205833153518952725065810648191275960051708680386595010880107693992018275831639954678598355110774201027108838979545305950822875078634040821534851359929020705178801509582260274793718867457629931848480513500642762868077927314788709599927893029874662191630580747712465955884669959552205208484363445816896102604644888930134053682277259901749631523028279640125835813113729231920916504438741127102381392406407488576503703899438445324317303777371856226045665042266260840831146235732098816105859130384809974133211665298647220604526630439796898486600142281210462824845661284093924620916359887553109197151077653073906674707130899846687234581558000942719275219257573837709321669496522697268969137307009719891873105312691555075259769166688365257937155718149655327229584037814333990196304059656534513676491667203101464942115469053980861921059520874783668650677331775233818270662214091446917762674249459781252861517549251423717730119574008372004806573824122376774261757216064957445429305732637391769563075427461428381421539369140005637237835584671401847886110740439993938694554141571100370963357147945540515764809653471376067367988281848870839321627511277169902417920845378396016347727004373623664697821702977734961855386025585443128611428968717207078550138336271474519501416962278695717399274010465867236796525791981039916349214412471783378624122206085152621303684451234958497068159343579425542828585967028782624281457751474928057373045991732039886297272116558929686090532179903235227312630228777229955964794143975540919915486292259237782356359148192854440515899739105366864609302540145865456158024078553433882675707356928071717956570882507925627073326884286660502520711198396746458319300917392973781802061016847640500518987106814299257920100520293801973850288501411437822437500996859359765600595886814331837480214176500470308583866319872204749428649746686538801634377983405033918556922688184376626449437893573019412738551710152847523566563576057585513037957958176456240130831552794480570285181349499321858630838945183350975197705518408659413377622351736049088609667048475958779359596054691651922305078476973156689251481656960599265646384266484422747663373010848172253460102416498499437067959114865396771391769538533155328327751867403965556586049775973840321500466013385049641565474398258387040733109351104262880287117279949831245738997868432280353510615039887373554019536845528693182941011667407938976465558247548802740376650265249273178320358896596603894419835796619337855727027848639809716385019548991396183105515635116682087136887045735783539661172495528277877038752358019768501928349485313198882452626432873535403752218849532458305199129754346049611996526365729618706310621492575678233852846431976825868911116769360751177170651982324837566645165534067827681938425863547310115986180631729473825257585961523672852066789646369879997758374185188874225330342122511499234789440198698410066564822615233888165058068140088113715430786725071167287463335488018547917526802500054934759738912094419466115264547445161978125523169267761017175531784397487429429077006933844342708031626904323385564448700847373072084085154383290125284630761403377982781468176551236799807078627733535494414983345711004854982755067614288647609092141664862081947225101036900002628875860903915217171275386627048900169342635789988526814432575988147019080627196115317318952658881940701396421845122186354696740858261043130913762538187009747639775056328708660600026452825144692387179806194663502728259795028849369244273989611979645990968798909303005203518738580175697570255934869585985700680987051836216924459937972514035171541176627519698223265798632841762253090517025443051040141420102311726369323836703427431341393171216009015689831270151935133421104839981780866515339215795711224779466903399077751642292016866873595292481810695651083271712980709391200726602471876980030248862084415480316687506399599452915692280717613833641818706104774499620525114133584706088097012512830122541764855849964191752332260582813249658376759374027746883619893457084209045089271896665295477570527394771125898463623824607317604926684114344290568156237207932771666117612994469583272148866042403967617843448270206714607907158570198186366420596866471069390452717628148637298754775557302475063381764542040111461482147205299598540735116523898719890062680263240716949318236099930371603267487704236304168460845322079346409907058561386479783293585016753751714457353089291461087026792056285670576271886654767390925537055979126915081224734400252853916108106325270936728062104074109852490235576502352321433313496063652714126479802872205078594998314284250174485500252277890792077218286084476394025076857798722653253686653330806679060158923471953923199637608466435713593022574122807648415168689418847822242899344807210532991118802681840119607207078581244865456382316861142203058818160315805493801824692811509372969162510992362683549695475912930194366633106699107531251163671602324170560389559768920805165690387429796928342208660469746928991800659153611902063126022280093504809265853483551392404522955023967340853558542275272253913374715554983249466476258084290082484046585754930517899502273650619338173036948394669071455230541632533940693334677812295163943981798053088348067268046657689560021635339832152422396052317980190760528316954685875810287721765246666183127933084679465035213149828029092193165680227247582940997686261571400764531545975700149247380304618735525820753589508278402084941225612389813607004558105857264843912597160277458512888552360885971890841347966886660519693174596175839087966296020827407516096170133240800358223138911165598516730709935210296704803189069468451118364550298669433188962847962560294745907033660931496647042060994026409183815455513523178226706361365234230493238517964711840749999693631342708351864071251212292998390526065667533742450420950525231781679624544915033915628164237117917323561982962356126187464757130303929245432132156010689948120231398298567557691844854305166541581284867014267124181090572236929293861639449900786533270721380816302361235977730104618594387412672202738536565647481191792103757975667446065228510140795351951833144410561054484124391327113280747201164802527796173470941473380572627297754245347232886291117336367825073447777494825549080521140589485333970744717532488561576026625117239201874045587264087816580367007348949911317689974283048828680188432387131617274725349261715430367681748836633203227885095510218292587010131319337412862344115189047654513645411297258421328269231991206887576260220724462760928947423500583771910428498897905782555518225808884012674463512805115835349743933354109770434485913836398987090889041271789248735887375365226709884404816667135120884348737058412276675213183493768839167228317156953190007223015957220553078312186141834784981657960316625444140879699286760140439428122642672037692356956862332724062608435972011078472878832581048356543370205630688855578763006688349115469291123666478538949585817900400307177832393464202041351425523158070525815893863302412704651986446605117464764399926606452170015050652516918510587991844353095744736903146096735471993358666405573873351168121107579465470456148476067761842428405757503205780830341172268154340030441652107671651894291725325147695365215647160911063796496217693363907836300695823154710718816906534133769449611529043898590678520946313316598796430170230724909933274309280585511869687433732854934069149168365087432744906501523743414148722158753051669977062890874384707288438380784661967391736602851924847959669659408959783745030874821240798069802939612680953365704442256212872787270988667115839974074739485008366044557350882136104889299619554047852488756980565639770327515459114491871998003860796381820801679180958003138185066080234422445807183093837632642013338873974114838911165765430032928504324591436003061743428767351370385205666113559059865432003349254509661453575555384233978270665291454521130116255301411228235009543691401958163529448795711673447284241899002212441411742852127920740934280834098564782080600120544601196366205782333905533801936086976769805286321228569693021397675051389567397741637554163396975722056395680851449527979248111939965020456643527478541232820881978959711241563748392660513779052359850457726919190236426465555451659375666189897918727968012103195528662931807890567034840058685357646495542449806885723286912096499609563789006302922658589587884973304695722256627747386315773584429645107845048954466040967037190868886774754094483188948766901671611087219505621665123261649016831962604740020641258378979836578691263420182057425090382162803826075446191423159457434912635638409654206346575366265876629461283253296117763266620226591885115244951386650060747546456679687163422864813444495040759497920144146566030922507307798132221940515467513162785948807949608164350003343701724857555409733917650407284451745807450565293483190330421266896188776212672756027016399027254247636875860076133176234179499121879158995945604053923615452259758463221046153719428354239598999191384902224748310620985123371350339571612445036076865832418093127513844928982314781143702172256860427916680940816168489768877201890489862944026190650609557425364421937714321997578317676919950446654610628663172311384110306291587671431599501989913155592979770782843713390670026946251385930505447066503067795441545856020985993780693935519111757766730144471942684243943653967215851893789018023306028417224737612107049351632516387335413671356248625712280597491519324760643072737776770182920114657603151097489611810431002443261884525605035487969326517531399027365186016419465491540012010100565977440234312604673559637299296489801102831405985367121574262623573504937208961936016167456655921653028168123817586905181862220446279292128579596079170410501340770662105802119488055052523150595707233067476780255892809439245634481262993997150069432847390364682607941483821593713092305734729684022033979161733817777143624816478972443742930972500609542997241533242075485569016209674529756802078609622434907226017682446149113473464056107236850565023966115544729543374083778018180524309959348194405430160920082108151626148531217367259241125093866687722321685090730110006136186937261429428537410718610397315980034821897956724018475986627041275836464769179289604499382365472099045001756596862733188432488480643135398729904191389357308842519021754657423347880572771350338447285582765209857514535633690438528035810873237280317823175342476007024635647374108682955358112961705634804608488117680500262922549988276415628272438913627037457205742267732932151230328287567607789803741574728785687258742277671933074678954079981192064804908495044720489815292190397580876308816451440697556198128843795041536679135953277489899603444740730251828993250784938363982547267568695652530948943232136922026952757156833465397103866162684058780225656514208917669153609223339261308065745947947322977357438754998646662400844100346608605274664596876527749757015457339879768598878932332067928956457657840824639563182006384267772740329478980805132766953019854866015435087041721056886107695701131027098748246564875313197432240853601142864642135703381401195090976134686334376938294594723514586490550321918378752239327865907537575191855203134109446998067286470368555378259413376963152134574465587670977851934231936387289106279218410482953593289822012538063415452878388116556583541442070365247364864587986928405302022700382836738768259212185320526899310924017763389639169722515053582663805960392564784958097334892850164990255204179032731110481890248427334621109778527913490519479113356309924585424498715193028489360926481690953391326239706992880278870719155079357848466523716585324264211021885720484460479961349571901336028901303418651236580805371007568236288884154234549243592699108253685117320826581947465989713951522397921359140287539507845214106501706191542779798687454800324654394182332568831980800861539147790526564923074440705371529394585288092305294443177550858107766109605661916940630040434170701241790504606455989534454459564837363743478907274342850687396528873215780350050593796632889205074294391323797427792282055390140241696604974599885261550843753127261765487160605360504506119732141468985592062323162882340633614117655903367766921233602285616643822610452308972949282992952151486095692130952454127347118685365804854132561783745635720036424091573329122778697461236653317444038382233415578908232397610259244306226138133312571335272415116221839459184223825022288902771196216330227561645974936090738328604292600709537170727066913820730649987538820671471354842645279465144804554775791228119996918254835266638671054834168087715998923642671743980203821309811991275392493695040654166909766729007778732651180600706723478420486527961087395299785685739287770600340739350083660186791628976320118552759879949340669203628379227459548295717990998659941683149923426378767313979501424580361663269797642479975824169764923375081754962555581859994394361529649707283370378146418385051175981543248731803223768809826529795487766739976420615633650141494450386973475506149859106204273759605425541907034076182459236856433328101478516594397191987971369148907580457879842686447280217377448814296732619169719396244801570832541067493593198504848898429794609784060192101060570108523354788076084374321423859855070540369159744182989498754143522682546659625740707044734039821757238978447996037031058965000506787851521913045021521693183698176904996433126449273124281772967139227750108813973964969283508040185373674282358776289064042034009407588329423351240134674361522745158377726831608094543415907627164595584199672460220483560166282065637561277961446330731239277871522260288242804996837512090352292346442754750597438422556270744820152706946115019969244224065032415197041958682024546833924332361020259600766329765398036366267618397718630412842333293222973419600112718700555162554924716427415897183198485887877821488263200817989386365077658414607822067879175284154722366947966418369574422006484863129181564591164906058994907771968870378341012378365968435321218760439853653325543675695157216557221794501512758924787574286630926412216341226037512283480456213875051625523094309485192407699946757002744894863987516921095663209237370629275617048843419882983833442320062102897517526207781845227211239126442707440658250256554246168970730069022730770017451313274147969134462870082916701459890576095936655668478933528069294791978398907992940380206596117999130678005288818895386163528486498826620435909889569554945710780954511939733802106012619425811858094062537281526176958098233608759098918448716045727231595188662509244633981590848046060035480849951179768418129087839351166159632219514123613110920860644421581430989637954826568818627577293444026604223733759286413678632569732057334227621262325308716737519231435586338124097070634142187564307443700731726271545377785587729707263562069481370697610374352238856011059212224405765153889306275095340464241295907050656781704844482327441232960065280050201892307318636935351789756954593919180015841645270927306372655958161473509570810932855946101383044904863324147888648377346724386304539422929215560470541425304173370824143874732752630822408252974740112610450663700142637425411183730431763105983412468298231003422727037855314319666095824895196439087451469728517222193782024785408031703231268298093297572975979930171808698779891312368871247262766146795253909630804643605979796992404735080031067308114315336323693499920903102741281835126356583584424297039779406631657724984809645872140162498565458848161202662382225417316255744355702398834051245723391482487741179919221463022677266648735383148335002560542409998559761203561811558457744207960561391077215938974166711482989370366114814693824365948658953316550115735689661735944253358646040499397601801637646385719552676047294057688200233817164886058319992276499208015393145778994843972759311472682175414556402614781625921734744739846584461996748528435639804989049082239559674936822906731840775439381066739659936060205259624681619075892954158490609572216258368447536723356673000254587143192087426756104207672949084162378724415045478499925342563092766271440098692291361904218453903551364760759464360559072681826032610358219173537747235089633942796272309365156174204350349949571332793375631301690234430961541510988650914057282254765476768108507318553351211811722669531013972859517214783876570704391560118052228755825649848398139185182269527026206099818815187320199273896163745387913072522079537050302884134897723186274242619731263454600259199424916279582794664651197252221019081404727935842389828686140408875207120910373359419246107657323988355236011583334828939845737312983669776432508967501572555391715334273916351622943526297271872342568923317112208875647928256234901982060963471035459576123661301237917272565358337280689084896144753472858086307581193848036393646653507140684207460254347346904645929944266976724731195009907897104622372702561075915413422675646835133096418043627196863125226674347379028299372764699250915430981784538579387907515690140408742157911573344581907471163148805325219019579279973428503841368922057007404242053824937351955313468341235310071058048366192159523293497696343600610878798242556328400913280128052513279133420842394597635075171724741693890222517311588855640801931569240934049724853801596575416806614668846723235325758335746499803297800134959909242840673848605354851735658775335555486739986059620989091417412181276889813132226997618869657628566360042431911565984122336687697141674180752546876512162803802549592212368195116613028809113673322974477724195569266330898593865582583558568035343035286928896332520021082087042647537586120368775369167203405495576948063875523339105393163854167618560828138563584914278468050097897835921937147332380217336864431685801723631129590696887212978164566211278240810878305651648297516822329664067521291705458286074793413060716602788827357916214657526684097270941289115184723378473505136846362790201508037053713773580244970270307167305378418004139181822011149187089090845891498267875969256149054359040670527103971460213318350410581687629612037161099552318139123693988886302484900667028221727002958497089816107259446065862232112488652208863894520839258974001285680633495233385143152796119156267823106103076551328281995759636699593149945607686409039064174272111914490511956018046899549814051898303439219613866949837787741543509492557713897598334998479926061937666761885083271792486903608812500481476906886717642253462113552923392781706208459156693128010769055768981321776735958654122250720746610452385468528661392781120715915086859213656151416141317636500129289478328871036545232264546583748966015874238120117392623913500074349189664020057204283926547191072144659074895701491940178572436001547734961857833647608436593470014830214403898324679330292391941689446579446142291889530422880419629609447245266242935688701841562983790164580897701760351749164395288739546445371300947574681214295736991142915204508336618674791829459965893279509276500576944236825998860679374574966620469832827957723876182525504748612627371428767182504505255310508899738126733802027888578775115098415219077614262918090459578951075754750919001034748381911300112736717443827544281622861861600472808182981312853112969503170216955041918495808424109457239841216420417429054624520569891781366775279684180242607914228879483835432344136757527865577426257228756852585280769172022287460036763858741213242472653621626653460552986280039825933990991190254488911935009412642724683615630428948207960534150490668979190821252168200126950923116933952382545499948543787173662388022812059776001641889032085073208266827111410807954839447156706230348125851311203891266832625481099524305768371891797907338343452335617287694359925555620344224074037718246187121271440820327800166857715757408576679983064157786111392629961873873465837027674833274518853127896393837581229272006497522770102432758041095747939894513754782185117422216940462540192527115155047077057433123018573602806798231662236404014604017539059578856508692089609705849597754688056543341317195161825767517180527492102762701573042579131778623518580263327099411385568221379422005762848271265280837673400090480093341408965087241354489269349425891485220568158840419793099450907660234653595088793443711692397029823013110677925105324953555926889903640734610816208923239470619054328605790576770428450337364773314897088651492644095449861960266819014119321442257679888266492798264087946124612532843823651346264021356357590027956581137835757020357266715020287045849652598247368441536844887820262303013758538909901757819866632223804299127038634496075046223216504000026402397427981950335677817820514679229777524168117685140801533673491590832146029144771656039867587169810780498160028071726983479489029695681276002910419651641011584710990973801774287724040019156576677644242212097565882910346440616155056348609959869247749789323061665600135032882244336161686577524240897438280101610035787283391386678850492196501240018827355141494042753104185266016727418380083244362047734074275426865145523979908977032471933641004780734945572678212105153708820416574147009243019897649558541691424089405413784067538431016028529807026937929106825444914642276510056450936462385225023498007663872918002366603533108749270549804528882116441317148337551287413995653614338267798066347674921258439553625601865826663993047231029995918540550378776609337284669984191377974327546452647123855560634840796855035979524005875028939350470732067209288322440376311433927762751558832290188765101139064340672888130310517472689173338295031201846818705957082727837825886718254185638628442260663983488577446723844754277904646721693670071433982614470316755971029025071167347695643107135810265267572594934285034115804630539388535012977515656400533453690652318804307461768081243598878145962461994019906429662007437443458636458224553956424667901537857424299682119983106198764993005512353204433571682424209182566865743300737990848072983470061870572121488454856275137163098031181751234537358039044730615693271983956724203329453350405720076865634796189644600109078646686034515287987018432909884127756149289273739977791951296002279663277153318447771161244435993348038449647417336254932902605592638451644007072771461583642585710583112853719101188898883714576879026877177036174332982231741592974225204675383925718374656400972213661890467976806941830516328360715188586269913753849171508573628907102047982739764266968829824426632968664058641025074049012710682743071144117799692738652616697080090560969972373386451148408588784949411820254032014534905857878206641472630224426760628947826298901447754051124415896631888088250526177363900879186867310792281658772002585067238506984228340456181177517606167578123802725244608623782716741710249999424609506614715572369538056783310039808769061538273561281484264644718881662081420482261898837998115955098581119652044755820076290165993344874296003161960255032475709550747021760688381766629912051860685018634884328278978598185849967207790836131597456114311899450283581532355920531037332071817541703036388320945045313454009480686256444635203876971715330906753051111253275282700556808908278577503401276253935598639726776448553076957681384279704499069638156089470929276526762192771440479094045816523316980313067844847155895583445232525298102569181857967457531606765124122855048174114432806939869103598550121184483564450811501374431755989594774685278034211754961163776680956704384713713415800785256025405429053626698843346466412931876999761601876111047361050436634255180028505137717069338328383749591384583437291377451531419174304573202660056422551343404304242013372544064056324644834138458261562198485900946907661788817039205389318179448742320580500327975868881507648250851544196631201373127742964707942249230399653018267066112517087240934615922984472209242164913633443809961796884714068444149065632345953378244304305627009134565508378237502798521697062103598142058573918582391647731739744607275757694837382320113991689108796908480049373623849072025545967517303350442183687216716186057198960767519267842808795179750086294234252667992885294529395042513959553829536921449065746766938470742328052119169619853481058374923127724119402308960220402693242514114701165524283313357857958321763365132167934736993776479294849195156238971594764993081989816212564200904427757435925361746842818282835760757788462881856641472257256269666287903132295556567914665956168759162240704485697027188876202390198366385384236163103557480027073819272431426829815220839945347463132969512542910041324742572377853015687460146327016155130083654050182572966586737412179824745208741354629090299466611406869925236852777428969895430877237150548230984467926096507726509675874677268093786472834699749252976801113333602969762151862053453324315888817886058004142690773862662144585841841216956041134380665100465159274166883189010596033337061449215684945972784441794220258983979127257575025779344809468103533288475892676474133540598280452881584721614828949877473146455471363087582734575895813840516895778393010272446239758571737392739154351565396468774019990293050058023016507198491811238669926359566780083227694201828321474828363462535279182885080492052010328038951472433616721372609531999127724242351356388509277664145498818317854475772924734272818460381585065159385983540648560730755518149041375542235569644704757467559590466768489837596248253245056669150242587379130745555939757677738229796301700958848978772468802707291781004570057483615772161933195875204345700333597580500816911595946296931384202760077258442785592658776516497190242085456568023763687196740406501225736327237847872285025629536363886182826423489724284875007255959843162986626802496263653393725189273956375012190490443198198903840040703906879574085773194568815534004912648002954792861656490785789911066112520140567364771189736538647710460543949140675959120879939871867849821670205635163355326302029269925437961245975723899387706366889827290955090700476809649825606761567575294105758929247741628663602603509774455327688198946246855583455584390137978217923211597148866909981520043369909610598556887139809943625026552820972840033871822069092898911828786967949174640302645723930919021971846534726651032136394937638393253167447708849361064077492580101050213714672269003700144724121368145361435046167330213436077763098265411969510619767100633007393829164952795356528226562553074177746502233316895717824482441408075696953166405742787268816995307867462586002279314303580594794176776560039187752380034202319880959494259594992039621200288235147509355531409447617585819253780675737120579940097378957072694172271387226067860202953905224610459870966831625215013116390846834612924020112818794879597141736613285823853555823268070868331882457255590979616458286863377861161930383805830303712325559436593660391106133316099320058770106585433289995004621230002664632376224898781311000685234423005314128480231236710321207567981978254840636367420465606888737889948073018294299979107420967086104775399060386388371389460183138327515277104212874964514059551949159694828621665755296316416548475558363734095294636622672264943585106860191777319493929078091850561564480034480345601026153695645406500557420055142154282091798549098710940947507529660941459463685388452334515219771847577122346917060424813427720972703715208602157313870219149919386599817857488920380267263278031436066442492968885064831487985643212779734910417128376779707057099583794713067797605493209329714561544839196861939075320382823773251738025353140789250775671453814320710244603512723405405872371235756902348770831008533685701219728293023126592664524452082337153337359745347197170957340794588610831368839142153118797338205443562801187566453954482937963400344277632427080003462852599445936770430376518542333593301433538895242763805967178668341879429378068476291933595069919779839549474658643039280829101909583178059682234746529140203552730108520499412103507884669667577596113163874630995118596629639773377978697805921843722073298795874046023728992472406310012774376336823105330228930416787190693589578914890661758235873422329506466328235688751322450842116624428631197230938150427720486212689060775417698356709577376140087222999009877023261281441314735922224164956299172042387367386016283264982472068952509868200865979217278901603673569788394178050710404061118468076629881432130978277124875000899209665339549207138974642646600575185161616602082464662492743337822433607165186275110203480154802676179089674566022621379515987253080485382099116803893234289647314597793771345769898991196111748486342988132541481590660663603023597201739189766646615489035648971992836057629083114886409251032032004315423677801156034519973477953668497683255906029160522941100245930572890084317012032253777708616597161076316999697188916082919240704364994562632635612794943453833432897393883237077584889572181743535839929998894946324073012330758529546085838766810224815644363074242439924504808066238100733881561384850120710631572633673845055056486675106509929438067944142925874565788288340668091268644669513002305712043041339213103257606777379166433170740217643140989351187480100014267147909952482176624214858652278205941870647313466617359153375886582131726730517622163056172964792288910094654981975436674690858895824165792618728280482176099081182874342823260009746877830913174824465540561943293945061517452612551073563987612479975521086722373456403442759106511545641146955512658931667302322621198550829197261956071892585408847278314735100640249783998515029432156737505544551032554703386064203000831168051684934395409465306421047236956892593654822706057824168446739363679790098666032707211435110856161451387922088925889243336906123744346119011853028557125062437419397308263351638419501069115079388597721197820090179309624822429091265613326877292679358585363683696861068360170356484380334398251973304051145067361701824501830955349671791526720340149997588091218481801469486116892156764452171356979723285681205546836240762680530439395029216218982735006418639500712599544143741824225381759031644705886088255806927717438400933862748802646814274297309298337197703677117099355411365923191589421609974135353091743687853174688930710027910030610128918392856468234516075270428870747248627548194327485423167207089798908244863882600166007676596022313678360877549872698374869573139959575252925158981316144881141401914545185590455584290681009591074033513709433367406038693134323047125683336362049449466691726182623291706467656449773038008373187220124663818007759024690806738021240343535053875181896933026302899168473521058423190391156824187421647500881949695662052824834694099659247801186753514359255548405774995221714676983393720607104640830240051063544347873267121627701018759762565768245361041396201625851397443619326994048195534211747307383915363046372310897916537077195230687562396709752245896072204650389936868482116940997500449732319575421356772301145996562928877996888824250185818170330582239357122592655816860554837977633068921122502925962482790699516089104635968125312268545606579177609284042253739109940018001527587115930288263620555304023899422699960568046241109898898343821350090003340101686122104043074285330736619507953268778260969953751799452180546175878416905130894945979273256012885018763501584772890412570664363452048381454592593284922815768031536990792438178913450067681691542255108357724236336818677029621863846095466973212327491849142993636390338966294766591523495970840660258315042539093685849993428354734719551962747654919220399537560210959446350338412425980989944200924885474411405481514699121049830142397411573830667690271236402698011537077602050143008008372438357207172285652627243344328186914343062139366245110479673975016651250785030837765377548382648035980196261788093352282971459130588244230428276203357067895227935921798524410773270348970055536228187410784109341764344515042468175569755766363080575266815584346629525816048179455407899620616555559527587248651513547463365158513456860718047993033268887057543975257474886661874213603485064099103088712927906527123161828094694045382577853066728184381072057873960518302991366376649502145689070817990480613167274534376097651221571739222612825784426768608313501893425716606983173762214629987703176744519850470002738922898994186880788352897037895967255051138183404205781945329304895065113139337798094403738733552346518858176213629935494535713276728061724595859179048719982228768066982919917278029261409139124620971199025649587826454884012431626191009970443577391846643664475818188159199974468466927177927223349206697375362810348008599575036851243780744801567324779645787939143625437527307680152181551354229653532983808491615159289251227865659021465533776774230482983862539481759075493363448853068886880639662415964326647582060979794624436659125776248737618948703220096334715679496886012538602478728564004220704034714361054132718193466879454506972257957703019008041001832616903325801860069026001057935800379660718934992601984305830175736459036936153336421112869140074040629201091884375742346448491348372306034868399203285533364736388352217434361679123539556424702132804224533009256312315168014757823370488357929610828160640443492114104329037426610099765839012760622545853670051214727703695718092572075885568772185409491793832860015553536356928048038188852755982262819600051596981536582636893063830741521838786711679818799728297650248336048327099741089772844304159861748561112610879530960380086765726668360065819868148521819957598678527111095698303769525628097410117604030791151259927473072004429095338710757302343252059434328715307805425573749237177764750576898033289389701455015821304233962589625444820285699060753622695323371915798753082709361044422993521275165575458699593953488722289501348602721997873006948828027706193770950781958796694748003489646326273434261217490241239086750935257930393845856870088759029904690159360775739529041225827101689436050764893750954343748086889134532836131197628007579699692380030929200499912774778702788111952012017811641261254654967607791575770092393082459839676481327350030779049705401735370615527375893593243383280617382284418877423653482465452680660406494691067243402297838617772324950886214359810750093145634718330838751023199863935113903963595946392241342501878228604887252496741345977876608954845880391255821051656752525045282213915080708623975915258463727418399364085938186276678134998571454512427083916665712086884597921794003278848857901320130970311854904973347547316898942796311888803617529073312811590025000025236897828193066528381721695839974023587671802600710727471336002557346014290126717459344221994677342330950161447942389726056180283339331686232541925124097364756698665419901056527422995841982600760747021392320397414296170280365976863648968467328961193940750615659218239084176623548080856588646911291987649792388909483334234836770031655575244708749409503783726234643825155893176765930044614150085565265310404639607186961710858600838972802098282950446949750892150185137516734422644855665548506133270010891838593429636539968267135120847082251738611375417622595426313918111323664271890040221336540233202708391345211304235543088514638037168034937430594630572434436826723435815857578035015529241736660391129918480364164980103647298507719840288364425155657011241034207753573952122358301453003094496998400774684352539958338661786059667625545044689888592190318885070440189426674502448583738855696652569699248994583665787936692676572594337757404628621450710649626705037832966828938290917029984493132497715158798451733357971049014149094205828013083662048427324957179620204557481585021244390952192811939815457783553920039796256031913126689154720965803837012715991881956217722783622776351295844036596693500560090557963013816951038754507487341532949921323984831382418572435774796201505174511827192207230975290045792089568808517394333466736351258214870017075256457826931590124266870232506396168358742804356546997903733540356365796017785960514806108314614329804458368845621890362356591219346662036044730681656354944719796432780616833317925483258510097702028223741915540606144556880464061586489597636535740146344339781421384702777516591272827444627465436162619030564830522665811796522596531998876528183525949240412702594079778398765887041087310876044282551638559816122102790200110857097874729491903495284657931123515939253664798776372328891448886850477274039167282515743337549753813636718400386653603741637806747776356606652598939779052369058667398099196731090479099417578931408904047137138043067691930117409396876851429640633134607116756778007001561258117752626298740232906990054303645033390188226633938311672979031708210458211035277571173619157697554672877212790404364549026691192924321427988298324087621533274866495229557555331098272284956863713742995353031627222258863487522047306508692076853055139297845449469263989962900221634131907272906629396073037444610859894832585141974390375994047274563319170718098520494833058739834443009482474827091331635221102330819253435056674962580074878085140024459979111738757028110916390383589491864665477533017226266389313231784807977096935215364535527241179713660816181817858654654541231610346888431841617840508399386505988285238156948660932074973484129236251273458279331863883944440370881378261382482655730648357789714526635936219836755363719924405331819532034353194648641687818120744800693602511020062862483852932991773369822015651590653625726096269660128395033507057070051771163296806280386814290982424441643751540986669881392503724335318193229322899794038190099935820609987949345760769377519885585209375146255258068848600111064500071969899690085396868864875761754058154390617282777032530617639623334889772378265233891004112982451979205103755572218248128678271555128412474695864283411494316657663330063096162316755468609827905067447236537558804963860896961381729327706280858965635130796079023416119426039966196373903331428153576395894314107525084610418288052938100969235686389549491387364143988459563480272396956447496895480191183508154696127916111375527354432713416779553079331135968795315395806777098110367353226626396043762987642875233175368658374323255067860882977220477215828337247311846863781063675693047521147222821017120068032006332133566050231240286212438801126393451673869823502467868790199318724575038394275853517880885321629834923352539164385049390467953710975659054325908758578542792453408921772026171246409410719211000110093249055589173352701681719426794179380960843596661651019254077931195771138896521582883329681541745789612553491904435991115865688629407136412325703813593073278660821374561397469178549467519030865815587513803533604674173860095755367570783049476637624717529897506602261723365075247794730773881148550580836175034909431680201375342968877926676182332828308187745134921311453589851563408517511976475060219945206794383591150398087309733479022163531380765193870689417986844370249530251716685348608470759699654668575084531549751067638142237341661453194978874004658746516433868578242015134460568124116596249507162829843399917047766984042960515517158055506801895901093084757059296712906191354927721191681812639885077956386355483352175027895813513809135532516813161387230646124495984028424373324795502949162706507113216957627305701744626087516473058537989365302368308743377368360884026020916677001756528481834447736328842055780906504826126671036568169007338872169363873292175794077101459218195946338835875580446500821760552714680652882218983268809715068374489920156082293582898878488898326217326000808412314509322082400137075201635071596595068272671981271280143902020754134308635543924146190976375545696599500103441160785897176086757198648119386799719851605293708982325604956064603247943136978290981967080657658360173561168181107343167003686228969141206341031293083358416640630905909415729027488669228862718592474911755561848036091837832194473310579901876184849049768551184185111910823541943948751790525289823834777735347777236600149284315265003190050261234510646851639288155518637652842497244721653629958649481328052668802100583118915759646472461350274411802719042044096517430355857977569264278240725868953203981838313064600231762526569034757010386705968810311336388363259672680345805651197422196617650915517504856912758039129844493160520887299994724117053599834928379270979675329098552628784596556626821844012458517707787267249926302255464650656056133876969262692678857564113632361373746942797583423851533183292936523822643314556213112950971438330694920780570494954960002603327850653563523253572577562054502883424928511604610264071976918532678624589829285306335703169082515073845323741868997346838537233790355234092430149748034474441144570353062230750955585744975784318007680955070724224220478506351224326487050503668274182046454217354970729287013850098768390132685638924774129796866757224149624328452851693651774960789022011369405963191110353877050633944340066579628750907620542175144966092959909661960425122303759509531669976220941766062289382893091871217536763891032165039005674673016692470124224132346337212479220644615330714823420704275375749408957705245932328025379476099021663261692089034139058805391037853435157544736650618581844494395907028392753162774419825851233005984871674130306606057170228674822561624056172544486315912952922722088130919471488886481609847555103300121927826105785920453903570605384790062668249004233358589295485480809954577045608487757362715890452805667680803250299881125497560448332829698993584975632376837370526341489909927057240018000511159212064594096974785023162460600764094380311736555761085637445120918216697065950175532257442468286399422749627325799523540255492704413891636264666668534121052655987660148748741918421188449593407955731533758462956415889243310600430821633617896396771172637717512447557534704549179621995459647061708586628114092109521461135837314036989882743031920547814673086805099837423422138462995141526098214303445205005977501857039565525247229400904537548537532213892084425911097365700548139766031851557529214939552710325715793540911895569694403324567423166145612622823126391518146823150757133695997020445700766192112375285496396961677722090660979424118945790767676074448285176644994643176560044241684778881701245176707025464849967444966868570382108937302159771613282522878075813216193296147221041434872191854342170609413402924047595459986379561216160721831758390441812931630414906971819409193109748341132340222463192862790793059950075558762181532870315004421631444098535996780155639618617969269820647137914767649310121884704936786159211719970430530210221931779775335359031566215361533361463887614172393335067647277183792333923814065407989029669157134390093107127483281939244923845372758573309848933444266605836005987937479467350101333208588977789395122693327123569870116940990786138294343427942376918214162528124730999400516973072062129601111810656076838560177828237580848695231659855556125208127238320347381782815606651171833827634020019707168530024664721948233832597112165713171616027435969383378208621044948378033033590180767593075394351532739840801503933432597681298818785042912167953995280813862399627260701286527770518970099635324776256604992972901004091099525874610710929162349539303699650250929360251877947534542443706213560659298265719217037786919897209038333700519345380281399134580151631493791590324789828721202385610614731669031944329996657221847306471517381576842135763546257902254365613060098816395456828754617387895692585390153975706221847506315596123539502651824915183104157395260847310438100318088950773806979617857306165023706224805896032914148620519196970415846046183195884929886372636246889333114766873152963139197646403551803038201794826153917565917668986329606845911295378998821823249743246600556957230043297568451430748743466613943938103031937460352417615271448471522170580626519602057020026245350956364062151062946806334971604531887571899200830531483859329665507967276945066620370710104126979414335905659580435291625891345960817603321567581899247210375804179435401584624505137955194351152704488443863721822227428463430468022046680521870717167917106709982054149496199243820628000151381983022850227011528324496346539964316269352681946958080834023213296008445946259404572434602608150328151374050400999620105253112236095260423315009240740901307297506382618107167534397519903005340782151619029812607621703155076049384889458994929653328347444964170828619968820955633288617420582903115883457015788322427459977260475503012102483813498696173452643503707879472254165473649041589451947677989953969947261648667926208487297460771945292700191173220484413861790861876473196591459554069182999730580921709228053588325696220909134828635325244571785335577824469589051773729558158179273184691966945390904789620979088851837707494794299551776184952771682853237088330639180508062935503757180978215384966941335497843641410335524501475779390779381736476711780877885546591221398581067842038823773098656460843291889478511898002827561888541626509019963830508032009185793988429272441251384470780312837874034164979548034903099486242681731927762034930510701160266693864984193454350045558507565743647615172204395864321413175663275965683012769195224884035478569442216132847314350466393151546604514190229054741904558107257293396583076997176433777679071048244667060891648779483345685409810198651309680945878108215137739481061097378450809743475836155185988134047733398703984469182243738216110953743869579089600728755040156421799580882217374547938737865458766730478625000915851273033689123056150891215043379060929316387476880337091402516905597028456279451982728521765204873761509662297837399732959288470405739874290418062117164700080801650180348869237971138549504958923844348188236895662238483609958228478883299682257139992861537638202979403114917084492442786832692667864782948192525812665695179841552178659296707111090104783298549436356039032621651700074745601922237040330057925616904071666250856595423790619946253755169646664880934313838572102100063837252594423078379986504048106858179369658414773622698416507428471989999397775099774118283912663996612315696860213949442661163973153402404728521251760104209152298109745351592679344313180221868880592458014794432352394031491156097345829335628055168241634134699870567203036651934128062842494209203704909920165773050732773086506659540432235264916369251934132877226397956455603148909252949026766292081550558894357641373462986571501034723687529961309423214664282837874850694267548711867636074861512638232529122772518448670546522291431880793363443951151317352558966476185646934634874392978969598071703420134961660844252993573135576440824282161023051622728196234529135743874029304885181800863279154718694565890357726759767640897731539099475278755676874530943339101807984214614678948004473848642650320806207553022588749079308306474065988739565551477332197905820909867872926234588834303673482056292324807920947046963872414587517959867644169861816462705269719404237002287961747741525299754961364358645640753865373861665154401142504126425762807058242984407460710877951764820905237118134331108909728584245077449035424437363597207048217590916832479270060192520904051535786644869092974898350523683692925512769273326460986886093219548581824474986832328896000894646100555217672369318988992035682121543059816996950480963598644999343313891091597645768640377685911319483667641960333166395759122841771959199436087677780906421160071319089313658163593302871237937935652729477559174380617725328127463043850582996924130644565215793796387999096760288139128298950474009025198873827942234778627565891578063645584936066237802949084657757067023138681054276425867935444105438100959024806938935407592297383514608222136014236406538221019349399963729013920584400477575147524345693430527672519386222565902481848146784968317070442259335569615630590596359790853581821753138955874727317354069771770176134765307488485112048702901213767186891141119043750501080405886783769562577446743369074851064927939804327811773633101105718390161573161001875199170695884419316238953557803992087021855666163671655896764194893492610166417985101748775525069440220658053081480229414411255490389145279751835282726825862496560317289414786504053644385864770342574021682337527733797235139054351101132626246415599759792829913357222834021291682333043008654820965376399156730891019354620954795919435308190982766224393318500303599764309146215487696921404437639070848611436428537871152719260037207721342486011684113161856538109494184144033802846803165544415815608956397925270129164728091750485723978200147994934012925822510569235661640701635553184518994512775717642911799210730571308755827550277286904894325482091177882742137860748674852924507803259693352698946237438996126917718825840829173632724881707294303733775421073421470666912778084243258532017863007376193267791455507472762066902778381617513084915854337692665166643709022865106013251685416903780668052300581940015389097919131375923825176526098649079758672593530689009256918808753768829305064523661101496118153265496691051431624123083443629840769119774986503395341596572418416549615596211058847795908366390134259513842443282994685812593631054058960232515120057273309922851887507945608471692167327884080119018381264914535295334404928841345102240038119358940409588719335721095157524342585011503788252098026764843940600801472302177135577418965696416239878879953048994494268637800919968858260170782365797222389668317223918100726944898925438635465442205919391164409872985578885307725738199206962773437620081174961365737105448793308810174328895106973345279148859043080820747065584890674817294868642301307117388155661557573377031491060561008896935250924258353206130873541300742784234479032259839402490282967732979177160742138150856091702257691926746786034071194739801092712695614404668534871937272780092227332705745300088766090205020280072669703811586013162676950571386899200300142508068938332795063903407707766128851590278312612920637067406698119887030132740702578439891330244050694628538947083840237687561536634771660652982070755431814919770714482866954031229116053318708256847216728690745379906610550926461556144841402878689272443208502479228175742195676790305147756438178884071082466250083830930423577036689151043787393002307345362034046417161301302269301902246142457817387346609092497903793355425586222023549986910340259411799272287886614784393914163911138255611876341165510345207591142336843143289616721025954481277064938626349464204119547583793133093147554318272076672664449260047125251878653608014752136439780745633987363838125715873067665425751870732563847774414101748083336179482551723901877278515469477650858992347874082358288744718685622889243724046985005186332124085827629316180128031706330695154670385562519201502626822294180071655388487822686154486697900214483793246348142539259798219429884933539464797769068420983973005566993833320642788634753656131059664822003937631458255579771623231025713248896454045472809462651437253820596726068523219421153427538778984351526745598749393373756199751941795951210887914938679450369278364949910427855855927233713532247462462013674136269061508680106752558878622759077884310413252586170186491750913710102697287414586638756234670086791133944671429387345686326246445017406339391627246702011138035534880640544709774068695094651308544928779809652862738283842855472234207878215905083416470904274758782773496803326719236597444270261665776034864479376948250100501607917346499678960748107063340742375474415321640869529176503409858261807207010547681153993121200096231335450152078805444524107297600558250853566679310213575311455187873993347819468369583693608921679819663291972744358586253201901594479276119157955177154974558015612954493255184575457361436028601888792279425342938080806919131408483799685772949714890066544700611802414321516165042198753853219066434336292678746690567673955420878083827809667329919267575044741220328486212205981834313332071448800658554088087601588826614896847849989285941350956143301751687569726042665228331552381465898612016025522141574794156664418790090982715776987955859173875963910709010726953555069048811846174397226560266239635750392210898168378514679254538594825642639481814745603351074545190366841106786087926355711080317201205546295109951483103266818890253289269986113651962130157809379771751633699433791859363706215242905179598590778013475579158326245920373164261066789581288761911949514411971248911772968438597881733291949880391339124317804204673809180719646509283235109193566420029457416033971843481725500908874060050241682445487727017509608267428918530036433413931666651116799585358136202414172099924558681530979634147229862489915117186217840715082009915269728297565046540895921318594706924784099450806711127034809187497414555690679987506873125832313024160798268867331026025664965375439711603585091755496047226523777051733582235691553250138822743397995525552883865508196381646240991515390773788539999250026450346516365849759302017595875022405906984637346889298995595816662007269320718284170536047567539733831166877421782590195485406170165658053889897759249192045030973346350932822619560985471712395183720141271459500676409646277172100764523933785469093381379894969128846121187484058721324501871030771126570090417024793132986528354070912547229946324156991828144668800294578763713840084932540357930589977449955173935369800861679173753352982825438645046757818477839614413666006803941873514816480146881881375553533556409960671231748754124838251050570944682406858453716642725002884463148481096037550515860218754684298917760843106581355726141399927451120072389555291064104378285575234483961564131067993813828038401306311352591991174737084017283200725487930711109716294926249543996410014720031249037209814482330320272740534684035491671019940738108454102326182343662729843873034261915446072055211071687035965545331629932713467808590696159129249847923796763137586439804510721053436025266280985865619010509803325642239426806214527612922673731796628944876756560873718897968600543239200506488381703515231634066280385293105068829291783936709857242562616119688942250251876432141975480872670708029045616322555447623523747395304525699206100138955783573428280700333230738341508176635350202787548701451219989341576612539800402538628566119600186236773936798138410260367471106886864789756515683510387621066171315190696782408811504368312249456629006964132561435565011015404372935039200125472185033489319262106239769428236287728615968642608968550259322194815448288055135643095651852445762597249210015272817453077779184568911934310079835355612939107560085203050728168130963552421504390650474539181355642943898986417755531083466392413092927555270120490205005680487472426755334081990698770631595825018149096605144455164180545870968408868101586511090407120775560403054445676902489039840327743872277091128559509066504413670318157813050923812771157055183458611646597846647338345978115353123778673709015834313589928202439765551283214154922958724120774522853379940972304998937562349859314435674688015266286604693467673443131839692097791192553814702404721777362388953255224482857991958777676357892333149783375253307624871717424545464564322287619723276808396950365205123363868304055148701291191163212075812256696395111162051518483300099980067290029255486879896743777968607597680206397191845022755804050999347389742956834269826646176385302691853816109220153354067406149834891990736640279435492255491771774112761450936061937748686592467473137430184270536155248979537490233901036219391941676504395338701214310442800612076343991755745539533303724693394456459759218062561258982090062940429693421360110609295113777949771679745104846801585862869202956105085840628967012837492719081761635429843146714683605279900585574491940529968495727095271355753275541387688203703710170778999653882289014992088853707432654071375585476864606415405389343693560859637918287661229403076208132315335090346189016853201507803373979865198487932237143342112814554118980796632344209342429675230546548925565314959299672376927293781459816972526872516151540702582556798426581353058659163408258075128379017141599471331726993940894049514442316240354537324743553008629137767204089119055556054715873801982951255240394763262818412816277655563694369559928981705172957526668274745768142955991095335984086124052962892190598433151094922350128887839915588570385328454190472483602505363626631763483481270293674030809312020817607513391135468759871071470268154848180455551405311407359938775291369603351341965867287744019985525904683117048413784505136686057367043548199963738540319822902073860107659800026258574248056699203593628137605354444555629936448577757851091455979681091751602974343110133037347613635494604884059057391219970440939578876919281387746991727105119958987540392499420070734133955823151931174183489277246317742364922343835651733764158243267963668044128656447022637056753271564410050457978593196811253947698689847698871917492427938569871109571307762466447884183315374652138123324139477631330626507309863290937232372072693507951921100536240678941664589585213078370080814265083203437544264642033311726477043712993552298476125453077939890214726813594817655796302536617063005880047168109944442851183997260956331665498532369161517885503931840273186158984534383081118218831954806138913658414701879457142335349861747264384245214968374992104758110123437222494493216231812039127971340094147770186867698645471175412544707704189096340436196793329981434524252572654247265573859431497611934445950719587665602934801684755852808844866832059978648500779259565259438687208527190770206925199157111217337248974685419573020813367373956986667115407746914390664409792765249277059003753981792880008727384462457335448885693439921394673825029631066361930968787468649222500564734347717018954727101822502658371603584625759418416655154707743852541098060570417187413922285168940717193262978298141263590429899216418401144233363760018288200704929276646828686561788356776118282274507607998228825254932764358747628106309807006084918447713515385066748291521600171632057633519187715746337022691936832336772055063795347745221095835852681437411850528172817914761797064457375024407525143468764171979415312963198734451286388753261720886209707547264820946658251305340924380135253023664706742006055367597603132594718686854704723157681406543176251156498688286704708924522148236639191904735419212348291871231559771909767590915134491678142678280158850769229001444005002734084496228715322992950761809493284425379335751617755084069248158092834229243783949560507248671178921631210817534544848113700279084950659839908709693087303057122027586560745545266816425203212621622469613014181750273372652922581389067792683490992514727562040328671081110310378500352062783415669507487783493550801938416605662974377098655035641358290405828308540803097282970697918667858768368875567816736160415469168780966210853706464118499753800537763088632814865449087435774105585709335443317582516685305461412028494237702571344265224945060753747457526560550570577184818242439541340390051865173797299646094924671385816811122195830168455892296528400889504497717444224986845476035249628605182555967698375794961023777704459409713927467185832817622197224198471312930906876054031978749079204611066516730278760105758644158111388869663171089293825815795802741019840378414712985601553697052476021319212357107962020071877333315228020967765939204860879042277513298882358879246448834381277044641872810396985746652339674354194512403755917298051375374067433011922356587729765654453614512604189292242821918676450610926747176211444717499819387969240648763537369616264618123791064857411618790647241549808090528878053061967820215486915991589639134729302345846231293779373330885357086488834589781554394718879139727074632004487919836716507366295674467696670513071193839550804406633443284018647234034640715131328597079993806553604148237828541562849319241199885890578798634367722024527101445867376857880825559904103688129796767561431456863720275807984901984470935726403837176473228632325040519721059855331027415070039162077075491298738557890962355758454394966496607836238138487897802416656309850795973861201026406160711103205736377579806567269899018222032075767260138781824377850113450787112621867318212206517278848374766170492179640185011390903551487606985309419493609254348059053408538871196664335840505199777132235341522118735109936291422128277776796920021414304778099187362924750397597542427236025183564135742246944371861965006145096412013347355095136467642955315462852342177076862519811950246172696317612672673217603568115391586841713011238899193696822931750644104039200123122452778502833945970573792683220191147657176860607021053730979945908153746796954934660766008932269162179557580520403397889892756869799313513763373370206011073789877586966493561160425199420612602128520838648494311831552898358810066151653088906797249108310289493876603158503254685465350167510668053596518323670614540802650044112935990525030062680229054643935089692858763712690856495374297915400136266041649728247842941117406498952921403212866527645289644475787285048519131138466099979445967316609853080499609753189252748727857722172827445635730190179782115593266661037115241910146726192145488572704218722129046069204444124369756204889599528241935737837290949931620159823749787097096775032731056880105079265167342805055591183774240043264108411585234338842483334003220111546782450853100148804235216780302812609085141817382305482997089452935756387073900391000618942992698158953193207068746594398959415093745199034535760051253912255879901644877413631130831873751119852183429088535854593856896855432721448419332838825544283959234161340872783310714707844030844593174304714704381580664889192377028942535158947288889866083971831018636296006899656741703316854564246270005304658139639597581050328549693626499861604241667792070303077732410314068798072977420221495874076661563401028759020717735883400092533486768693108238915014908741655743736642320634979759046282065796017972845785404022180584166295433603381918077486021010907717441618739604585739181273545666488096705227422452778344759330976562789521364151173078146991797763132250670816010084117235671054631791820095608811984117673866083623022056089182055698066557433929665758147033855108706139832677304981793243808010424568857784713886004004388029888946990821767154484188101321294909380860980368836352000974683222442572435620181763912429673166385814940982280665458692078939617023480069000697255717451720426794128799099533577428776610074845959912276933716958328723618097441522172870865729292221355701926332836158727865960349827183806141186837515762558798799877754466508713545051624797413425602863517322402861790767061726925512202152357264420338795512691475888098877577781366048968749802865205440982165246808375135218646212188627137277062296775703669980079433502976977104371416294786637227839559562664050345811676522988011653573280466717637153248213174561453508135348428485344789043856073833746915726725786206664543434460523945480724271670469988469202499355878385892179008602098201310231362285550850309048449672551273020866751576307804636110382702190980158703484392538372326603532134919104776007758524084679513068303354379462139603698748352163126496746954405805703147509588277829418613005288975980754208184364892086280433300257950590493809698217955164147676924417385669755296440635541187933497179673430482189753069316747264490626168971776318944305917827516986708554903941107359024979433367871893848770059357408786124078809238223098801347014766412347142073229529105638977954360887768152694351784952025476565988141424297806414757772002746126000473278960382701184432590272487704705253443823542221614542234255325139717868277811545109945650928595637990204755453247926134267475370116753746427025232430121946630230661008240931869610152000032602459712723616438870342330865587269003139749636049076487955085310635427703198686742472341874825556964889321795378866194210948620739528507580170752590208939339555405727568346796408327780971052524131023737528173550065449986166738387419933434099393633957779281056202117968436745535105876763699041132807396431499147245900833641779073709188642944910133327380486574498929376393341293179902668337725769701420439582554117413342977251645233747598891400608849884009514759079545969159484729130204931295270348805544607461534728540808102479189154230689264664785188882510512247935427443778005485420586238849236884102385971574671158008994873695586878129291676550535314666235840899053972251082253994982321316350414756620416136893520086782906555067629357098132442542932586337199588172401908763433908626326479761509847039041706914481400904123200953409710568520193419332520848199968874317433659748362386012734685994834378020629535636994621941035137189154877001605717887991313231379262223394060014840821734986828437148950901825319863232053303356653749498698638452373657668554000881078829904811845791558586716911760837230221843853360543014519452767987606538405307107232844119858667868808065030509042622903243261062204957794684091317452243180720072717788511414663496227279382744220329319199119865621462448207163869049417412313756365268318021503553197179243123863365081703211932754169396676709410689943769966435577340835459805504297267675353900679948596565142035881851981212701619818912103041272296355433596528755086104389023524246917805473761890742625314728280633648966231792971686358957066922891009925497565293482671720702687363887930485918204093366238660523330913975776137128721894687449463333683386357029152082724553666329481123189029381318160176451776065999464338613313718291483838890318884041924496549476904524017984557413253791631064303388141276865006549212895527909276240629496373514949122387514387605216049640142689411802655089526393688900911659722617066471569590827232843944370239357612492974409183309965950907540732174735804774354319731791947400404570649091924019931488171810180549065343552409181802510394590772457157060790293977013003204855805462865088079674054720319961260990291261702339069227968224349752747126523032329110662730350416690168397486140102804680716109410269902242743523630398234956456448854018622553416914402480884086641939106371266102412666831869392785029495506058308926348205071551463713079285497764683220911621588910566227825594697844736420117511521003534918871061362683216245744555022605415990401263370538072640305074096724678353921656892006232485358146603458934986263539627874362880016841797673817508693993205187795162267211786407464831381293995801455864870250056412261243622097757194916809292503734564460581735775933911106607788868981392188785326385942228609477282467724733065180474768305694992939622162672474888193454620319413896427746083779192525591007906157202087288506446814034912299822681949821723218254124416298078225659659613112828620696155399215484939033141447685576807206051167559170371986192000859294881086126381770390184322267246601734963489810865875256444197502163686077596458764447547548446013077428236181379382169492039792841015486248393783710015054840088035596418369363448697204188945046152391774568418572889466222929525160375709312449118345315763614919177813101415190835254086357372183515588607955753121440639038919343436027128588321927304942571615388910304019220868580389112129376222046574534248735959511600544336967150242589841700849716142943862392803284253454410393933532863974612904162396788464758889189680313721215280040535129601504078942714220554922464408211587079918488892075230380431134709440056941075553407242301223847871304525567887307735011401666234861789943660721637604234590944789257381615396590059375547933600099868917806624578420045908018126391086694555439750896935648552754116341471138067096665738309457705082664746826782928068692254082961959999062065028627904348095096941862389757340876190830104768853863262589981894579068911723819766270742879780253442245497705346154319768685801268431575188913072370914848585642538309879290910138929560791976315609930713924220099371894533782837826062503946726397960647801454042552699368976677716237300955598995234410363665080149999614043988473029094478313887125731184040009156296192773443215204243235856820952667305452482315144686182978723621638446060904855084298186240309287703787238386707819661538981430578512131285138459679847947458434315367156268558842307681640044341406359769651104640730253973159454339010222727941565170945480789041438247833395907996272177462475664915257714229873540220174603022578592707485914335282924800637795036404074550006841404072030263587156674763470870866075654960747277340263776038905049473691588128017803995375790770366183506393172555983563627977494563820484015002671693908893064146721054464034383703107160409997961115532553897170568318790493589717036870001486122668361785273390533664335746213561777674745195195178858530311205347295114497971211570794462260011122042842222140890830646678177882395023650289199145891057323415586152429413701168043570520777196500246013845331482789829054377867033667091221283580952755535411391365358567634585060676587004447327452226089633703481701303849621551197646596791350266209202892578401292625809000377458791653367917996319655623565085018041578453696264914760364695936058105739467111681395741211279713885706560661845154899891326722187990656000833706287598577280547329714166961470206615993822268046342717663934691411725141991694705567370865543975080026956856953280900290037367254048285972410871605498180951579784966305829844390376370986008271922058825837236851685520421378711321905417482152027310982628693705490681326254462748775882868949342098062391560292777077839403556752572609740878712489160512382595730341611664300297386952305133573724593551732858333269471125071026261259459893039987222070898248869329324132608316364230422802706163314083708588881344746273890304874218784529997857192100257138622033684461152792515602411087287058080105963830969724700687653140195121454604021912718108367256629437885600957601255637385308271168870921734576111973734592399380414650018070372001267695378870746793608181388660876756813874528074783511150002601630522263000617596418114006867407538633186666810624310413629333437822942754872437463150599879793770266971320251766610868656766151359175803044867339091432142024689281807727082686488594962246191772085177181133536377106814729359440758501111846573772961473045802826411907441352267099074465316564354783227559144905905923609607835314155901612320331778653436073464227396287807215134475671046584688859722374104716571055737504663670130855746759290474717977111845729591944878137389608435445081433612211008157361072966106995139881647186773653935891444012610311959812532507370700555458681739108001970139502187787493091429322377314956158214485684077243035694229958316893831248675299849737614949146027658624639323808482089882637569150425126400150501989009879059211137464074368252790025116325916962890033544656701038403847258512586934351718008679437431257927545879319905841699882309156062723155952453651232121775201755799582600058493937574981615064464767303185768144145325209317945549963360700740026689992800338044162929880638518435960447566226126582741001547883931950565928494240146367735544729657311356981789959312497279225487643914516914060536099984919773419101155666246559324658601438847274115282192796278551776490787030986276073159022884075234639897222672510910020228473122824080494355908712859628162386872681076551927623036746080658461693575908964101074449241513448667860712280170236973739229689515738154425161802736997034916767935309992733145707031593991636581295174106837026399788598340264838269329404606068881601318628313222069520820547021919562103038368276545535080771735719511606685598956221886297833273656693857417825901419133099923531509050866036897632759895658344025431637625233962497393242463124768112401255959479573219907912262133270309562568575445456940959753876247984393666222859996042447859441983574841683490700249229494415598547836346196119423451044812358699518652862242531618052190521792511540208653756477780323771109267644367106322420527236987062736159900329699562538249399400122743927293243797997841247628980584386846827898826784327626375746104279889617747059128702517702793499519428926998057921797786056637335268812166018492899325384983771626819428259756076845663219156989046483452200831213331079031636098660148958159454749224464880813357714355963222345204088990068263951738523433497924361749323657981017617720286947657107284547999074540863548690203238091219084518675261209399585004846337829687180105380976461515409643793332113666252728846585707539340635262245282122327023478104331717336402324083840555674091445485054404039632176400272336939978769649551031946935885925081609687344264507524296324307877337383015590945091421409873093621779847286328197497922712951082788877981592382608418671200398107545661741795961014101406484618552316396870014576994701482909357180420784722744489015549045002058987930838835162047593954156294056338620499908972775313025994936972132738005320351130158163135081953942066447612968055396992788133249068566350985390830574882302924784193466990398498241076356085251120898638334769127593952197034459719747433948294442805790278556147700407634276412559950260218839060243189821938293907757766361028964456924686942245040991856019074180128836050977119136120417974816185467914537552807712343138570102478101299852856718689401110355411290955583496121148256942677331778372404839150114097031285105533987770130995319737993223063647452364272457805599822927589334696806518763377951247783258077866122146300835505164170217325409644727373337931174492681482681065693593828689997314631071750547662753954567502864489628678119921295271085180774974056732233613527142098083416080562720562567864734445077699482588642991289024226409874664285995222268146367590633948392146040418837588709990751214071442963616742044744631133112049045982545881012844391214479363781177486910152408572468119039416494564092011050493199498327931102754324968291287421933726242983996394454184019444555429156725442041964578181335268439510800064112771487671960531189266893317587665996574107770997608126845126965776914861479674552939363514252121538399000761212642945930992412922354207734163779295597909769329272634814807205471568622326690377660475480974479268852202625812788687133473513280006679398915601075114510772305948972247401423497670734333072458678485442232434562838107226622766658428582992799678262018636281989242838736008232592654019451746571773464956031799184790191690689872384433914822598755007107309261334631571726064825008906873775037119623564005840679628215608163219596730730574541780031052989627773942804908613310511849997127098956900977979937969120153555104099114487314338734794085818449127611069624469749078557909882690055980384022658116090126279305496492893598656696181460191275557140042392643727750552918613048006815535945821509428110465869444237161230400190846201360702512089103316707188781493439474132542800033885580502869475396047483990835969843601103867483839867891865352403397861287395723447361743082480729541914121088367444971768182109281404588958372122796680271267304000903149108209881697257332729788767081351871188426560326559904991329025911644590189860082099268221506303870167366562474449874837987322887341603628285483725615571107918147255076319671002909874227544361436609548791576660799273850565328430056662678371254400770071502795084761418493969456745362206135533622365326717133975280027223600059088187259181400166711398505012771222881369073035540931595706386495295708904643553824120783926778092982617116610949802867815986056617434063031347861779818563765285507666553571560661004338848316258678421047175814565644809184837508251113124483560575573927179739774572901405105073691606813729802933302054935830783759468337433012149040459877872139958863944371007034891137175465693679793550140935978411361710580970981367971506705872747563057285377939640392398135400238248480340006297754911849968090355230309497971456516905100700084072707697479671259890087392243057342202966113001926701799459880102686974827147445153518014981675351358722174961330936651108367556597899618574837745779143097194087528309729372074894351671914258605769215771628803312146212228699815712864628774271344975345928867763283170290782167620338649729360931743231519318718837528211042963073400450565271434461761162384082798774927439661151951684050131793887898725531511659150578637748059692330143669996306134868529345618433279403645393284008810459228893824088664600670919680989724706818717240465569805676554710512412508477411356153043651786633778462199123859469758292892059207980214379244713605564236077924084948086855669638697745040297859955103859107817145758884865340661736005661644216705767057808940709395891249672312952785128280527382109623974021419758449754758212921112821360033505049117929762545664228326741427029843855115476722717626301257567838541553619392893168465993791108443387471928354823577798923652424097232766896128805937484595901022451785348626498189332337527620614670603852379268401915980571778120186609436038189785565524981888741290558777138643242284027690613050630756446133332002243438931634883735303927726384104193499571078109027112702499554522714950860011157392766332615613058195046779850257823802240020076619428864258140426006282232689510170134212436105383184873016589814685005490640291201853651102373373013014691341717601239534248975025209086832680526205450508468049352683179448017857288456488904684445546181443704340266048113706937277541591442211824698456615561036547326125497880683080091781895029698438255660933691941627774684727185051353419115123192386835706813790257559363953116298148546556501948345602443368249714423240270985044495393466541346266539884666065075224754743665939523575336657538752294899837770742526589131466065071759575302103429468658299707898751090578186156992370439737044731658118115004594002463257234790485104871669889659976872104527311696025314326785259369016142805589435671681290717368967423475922948430036194993832795121644077373225531783412747309537417726317150977981853840688591567115630204279058114396832589593753507807026742586430539158464231506147460629929903262134832434251899293726969616558543189399885066582798648288533250389805195388913417296971321132014863220903002468266386714921897266246238934008675367449545493584935113121785023613810828979283911734835548968421369300923646084462110312520176677985277956685540520094346338814689174717033427044997402769290200366883670405889388896136008376655059980300782878590937441532546887275579705962601999911700362849982204886931651391863784029439053956857188735348027723174564750180823079531752637296437976908948535567262545742722038350678065215781448053486521972036875591586408812201693902053679817098229401879044011957289516434645790331267418349961206814007284262358759922206096864493961491801186990877980377721663266144508851166167390674947279642032120311674244084956424682479473778335710474465298660588153928729674676930722255760167665403977563953784147572756129442412963148723405165048090657071982878383812385081756877486362196514051410219169018495326676732652580482639641487702954597750160602355299340272906344952138753300390342798698243424467754139453557423261954443628833420411046682113520588187873100316220875017597724335689885556202567231985592992479300271113069936385696831911004188353788311364289348965612431949110694321427400925897925909426330438873777290104209243768880925268147618346040456866273162232168672132367521904734124146070879706233211284646906063149682555140109340447845026648913684244195328490125231381265227568160891922460479808881017452969807588225712815860212354290332095026702544184469332936041117991519056198596901535048453726142772420204406568689423103185982816163153360094458071569489836147841970788613497316858631588077311917227421350453997127770811515406430165479057905300181631969895863537600378584686094533938805939422015890567439470230592520865107991630405695728782881300911701723591169294018835138410395578085522219282308673476774646201847556001479212344817061583582532185810825038141712103052785388820208156754141718456168353441076229736939186938490909887579815762971954693319054096940124316921694848934459419132292753896133896352848567235396722258428853515138120411582022202735222318185692515769815067726865266326113020834623708671338227442804517324789903261350792834252064642705723217007995048713287708578363032051961375747179650167114411569011747440454378768551724696304313517332753637606605637538740697082244629684618448292076780787372650932245764641809340000201315453287485929825661345885238216438965644660410334379365790810801856969334842082172631406288873627901023845439862179460205540946451328649417793640826074670425133091602947270729989816621470910997978141329380763867650714648234209259971458245833102898884753354877624045304476376040458003563933039758441258298463551078778853942437254519550324081836677389544279036857763438093119381234425597037800349044965514034833092781287981942133095345703296029469842608999847060483037789613291606790051054883981298251311922876061611301884864666335944281197374423397803831293086128685968906072953294916969701611827304963335853227771707459800022221997078826978679876035080645602511053536468430036199409047183728163089856530166558921942291871402028299889052567755250480242950632798299763722248173732723968641032507203263927613834616512359980338468205711503189065800884029408646592524055431425212751918238848051418474592402522140917156556324692098942260583776347387956170590122462670263368881846703886728809315982456012781071405667267416264900980278155126417672908817486448466368369808178782930793639060826863552207240420783607585477654108964713690892652838055895721814073392846171630391683894018576529192723284612687244572103685728154078630614244273972114151778098662488420722891870687092435815212178920819852266621005559916333099306195426236494647785408274738678577695979509261324725233004854287391087737195425882173096555935344148638329978453524946443842197409090733379469975894522697245481658353961868636197123969436713674384787457830995258860282834381881565918820885545185171957046708996403737706327498381938143741135986100433688521798207169368902140683824233222932222948599800848492118059886684992018360195795188788733525194489603735514377458232973724294848353073768957428858504336987352835873486117102853052689998379705710877839059741350263078970420008926491953738801385729011732112287272683079607828219046963215406827505991122781942989760494282009057831886036440214109793051337839098639848930307618187562787476976511276018559083128759569436628149181147341034308417781582684037448767336495389215305740607098797957299486246471969387436937090048239234429452560168536703318488237920109741315864317345256040433088340906759591416145687974506925712657734820344606957293510619413928914121679693265709517973803266334773174480084582417871906179832611710747164242111618051518178417969342083650016381684388795985876412064080662246283637135114866282361248342485303486972943995319684125641139012974025281923913436120281847818684600056441206730065460982857924142903821335297425974008885731118515075454019580750350915482006698451472144701535032535667014239424771603286441236537828337895152772885934164236092696248116972688215531984800501585702906886216326909065916331616373344191359176494426153317407558945114838050490794877191587698378202705439455576797109064467289274464073234677274138923449484612009378278229090381715330598743899641335367221275634878208056696928908017122361727226886141472580889742600692012273876993732711380706023991750918433478092025868652469613027157676299318929985266480746232140422936450311273975429735893037013592498041781492050027332600036321902293998370755207905611247762450050291411914916372748059339152561307542307496690414230198457132532244134889244167936153798700679176432203764481984072587584067280557018014133867679313101327305039433156478380687285834449387017430273422004379655987922702448521755894054857731661069198281719449879496800471589310903763567950096500087885400481847789837490305399328464941364539226739322019562125760499482804606152079550933418984578418691599791425806355328717690069612907193530769620782417206832518619224992271591776737516389674019563404199233360790673877692644381610561934827340040333535873311899680062970190099696780551499239778177953752652138820214089225591431195712380752164812830532630351677851219980479342214440086131293048691201822866088411592308962215254203677524678820000289168668705932405109149789257270649892564535265024273887628391963129396875686242899511125746527432306208409004654972427852239283227394592456636491270121403798164027464862823205814500158304917898270725193021541499534472467871188998710910968855716105700470208483941764410180791888322774132187474134520625013461931854811881043852692184302509527729584390604540383286512825754679334049296169953436833900245973834641118499717850340277662547361733952835877876230516543589169728994727033586702643169123025398836160496603790682570977685132907373045570913524597893349307102088388946479857598873366307125715574674366536374268406822697447974643765064528406716535205746729035026994156880853805887025432394866869394037432573988514020372709203513316188625029169331566147692715476443070218555710428651454945371178164940531577611594516644183836610923173185049652329643935667669557246651687728596351195844369277346242598418939207186098409515950420035471499190835520338831518186161944517323341043273792790281230742615537070196199038770382724836524699461851223514268730273789581887297546208297311603768511109744373052593962027927119039441268751455850000580223579115055679027903084731877221731313948324514445535438263904529801227653733364503207779581425911913364350524748951129195461349163286905979855960874148716264483556394475970602855054592361829364605348674933760217129625669899031315489644347637623755118660053940830449978446817125600555088299763192011022392201285995112415726362582139843495838757281463982913544758506667562799669672796040607439637749698867481584958088222248528687913188961859174639412369006813534000065553052854664273037866677371786390304090955192192002864812158535913904585698385755739988998430986252469930565182932020691214608804436985700156639694405665504687147444855109966010859191965811054952115203951861738397957681571939345382303768226712459410021473441434166917639665663103028557303474550442936050050570844530330083135556171930719046681585582079998594024385538827343997502263069845595992314460303793764076620578799809811334400101138332397349743673139744521841698349089846694893611711822654046443787876083117114117891044000775889431553403414194300891112765188618174675668210107874623774695416305136716008357245069333518516803636941697828177104213903625211653476716554101903103016075079986330372691191954360418896026508937902160459397608413684641638538047069900842455241146092766245350014814348342633990635538592092847031251651228274639606402705102366853594171171822407835423985219829486586386268981752176068354530682182554061362839148522491349607443764209457685587951375665488563455513132592629939396973733891156332256427252587208514559163710436911518148218878648431323194002611864417831361248343836739557091966940246611639049839323865820388897648577702510600678307009658029212168030718187504239622588017715323167017862654703560755060030716975636204844502676156207337121142945527228329081352851222452796832291229377782102594289757463836072158746929696900538034062790404116533527320765707350284301457148834448236171313109050591750448212154656775517093013390294985041128478038624641186087459115086490450116940750928379034330476685140350568723865641413812249932845053401143788188749853416304047945400769146206267989264011829243837003388824236854319883163186149307544477415765742394624971272477216450736015316469855788645101957130312391051002433572202409046863112506519570927916479183643011750742122305734599114728986286858043060461353044489497121673008418572257980917842394723847718815381259237822677615407297758987515174810530573658792430470564460402748192302981103911025104151447425087463805946763377958483741914926207334738643250294104209220763228693991481982510262012607550588893667835075126640710681124515243999124901743343177623894638733612705514837879992541845236516110204650185597535290659011207129340780374081657375477331909070096524763028587327876405710506764850873037625630346103170141898995817790682887169261824747165000839510239562161466724697293768125677544225007774050610156040876677199585659391793069063885090823098351252036435571105607266993556006447044406862211933712052296751033204442230289416975077076525540397222271161111940211074780694693796800221032342123190780703102714240667712373942283401191340465612427495042617058778748342404580996134761001591911440292056457708082351084290422270159881321929411961632382590947572863877904072556718176045079892047158101949294594997498110707606500113226535283122098205758344338564652155577312069484855126933665874710632691640066218531438723490655431964971175193277346061188618771944697635806618584873912168027009547753114053521614000992601097206639326458255018158052057639344695116269417192814193603588804261261909167964436859306450419485721037617155723406882350792357931222830528068857153936837103790700865720093546766929451030785313911855146398443568212967712448278835069643034128636434281774317341191522865726486544755647327874400710085921873278001110044309891291680201035088963722890315340856065622864516184199252005308284308108213064361572180909179599401518985599710398750272344010312989157351572352228849844377673144358259475709273849869358820383975669181087752382297316957760341901710761573868772535913940262685173399537275704562379606049772534623569633860976576729780682048969205972013244215769597345034287859817858715025512896391351524691870240843742820050658898319797009798836000834194607012728995858058388569751092390892606392663108678583584544113431413985674453155298443291240209356139557102856223277675884053899761539557981633123967185560764995609340697973905201099939092671309529763453480190519520090416620623048755116088348232455069527072181598532399858491576229904892811310872371500245263893753244530927215194719700483025965167417536868317830109254347092796391413734335014296138657154955154796524933219561087974842484726092258493630407288330382768245134691455555290001644434256242733036067952599581468292590271127025408473341664272061653241263411442528471285273567826737529823814906359496441196605788506145589537226135753334596557366412539028248801822761892927191397147988703245405525140707152280866005378471093288682627576932493330402301440479278411643015571862714874978840686515208373362746654600837093851312688939775662005642896516638741026678824237561307837816821469070271843775491282849802047028123140396632908095631583124189023884683863451748068384910460318183812454307574002496156520289333080987811454918466642776820370884881409925463345302570482951416188226784757964897773467623028311021393935294421223646613682718880607799721437539035867668975192300645948668016482167480917708232354208383969984652640978640309196232544070917134782585939107195692447339911467067556917757019832557093951066610259203131192794841844440804470187725648829257802158283025058059334849503861519754989768904236372722150073986191475474958207673284510203717988669798618504664363028349458820288161177694517537390784660509568490641113519929129033098720428525805033822478093571700294726303745007368985392983446047605475221839746976169420444735149102187300429230666753725008327916302812570916339055558247952542094593030343873642911346982199667605760365388823690669894344834509773512186471989502310099082438252632671347395126474553384333871540647401340011459314035423960894917370712888800608041968904359485908231280700723637834243456311049995313635560022531303405128992875825248292058001815477336606795607145264978394344833697452734400405010840559698579126523744856306277191960162917378316357487130257123332351749400625568284457237659196422799281202997689852804535548983087184278498223748892811052207423162259257745021557416706168312496198566095086395970225812991685348531377407955244541359858758209739962510116506003210560433909565559110618417198616266717389082545982117111246123193627430725964574797242646612442941831619255116157735632382830061579335951598380360667978222879535688203031050529657663564049744528140307420048029289303338286802892529546327707643216901604090654358790880792663959021101901700001405425519771894541759128190043304033987883330007380490490615447880996497169283043283578348085354884717492673225733317191431518722419536193989600914563378365530481068248304465821843277512020478868805006598502504810423794441985522952268507657967021042126785708592839824669229736719713597365020060343628449064376266097220835152682502202067676781033112495550856652652036051617262102475246008985344738527211692118450696911138486790105005072567184815185924921848474247111188706558828961943075638245389322593821521130818330528006200477893283408004496795559968718828902958709468161235008955872793896056034873916857284493088841581203126212783366182621709258315348674256050606887470801074943921219699301080292806089953936904462281093331448728579372473287777950828165643083518046450835464427267586654667779956991379123531851236687378587865558958674817479353639666277676749439921687852700586403850590044013596277551833918253784663115890063918790873633680801669632617051540152531081874693110920906298670427461200346615565557355388596622810012902271792523247489696097540341827659670137288354804454355815852243251695735241808903756353661954079921564833217031729159113343380243031118491826938970475673370532695606604462043848120884704491872386383646768853130089956364942125359055304914544946419747926781844958417367655196043989644720164734649933884524839561181686696398599280970356114161306182638203752319300138185994034758451995285915850695220228511077300683328470854420616556674451060741421921824116930711236144400293831993211916896777119756905045413123800306458895069344844482899202213563669068066007824170735924788115293976459895511986318519800552697459660651208774337222504977897047794904571530204322899870497415605620073722394553110299238972357146669240573656367582769767031230956602933529649995884095466928066857710340465320899445027703842541651752234270584997398289274023672962829999223882589615299656753484929429324325376406401707685517863836571214277930272084444823783189370822424415508089860544181324758037413034722697846538758505819663934577447347133430265105649503071309423628481751682802544225943684732835816686190621533028609811837006701527523225514288024059937451631835225527848809794667526521787564300791836018557460345367386632778776040702608966128880192941853974957786015940251218038280721278451039828155294232043898081935746642656549247095481102954398920666538672109577420772068333685381319636293904359381314572660004132250706972085274383393868049256629351209328697474782512180229222026571187419556748987774179828456612828783430262060630954837047632293020548696396812960321001988936864337892261452320568067171667331120333318856835558803566000987969285579325379058372883134215673816754310128045752125494750141043434775552109178039088209935648624976656582860787809287241397641070936973661853863266846594713731735013373295364842923571356449947649605114655309060306350202809640364878770080547753850581037781044905400308362069994129043432988869205750487483310408927175241272610519617613864660407294093842665972660574860313602953296205021785259129885144352543094066487534010829206053348013130403500800904932865528851972277185917509274898107559122312854387633829042726202664283321960271445257657767631945643738379255074533312602575013686832558932336939181175864010860620438075359123390778198309194087640604168400101401959015606535031951042698983219265666677939141259819184605583177932336481637731006008371933858483137305706235185868065952879834161445343609410337486233406413752000674207427228779121442741366249029256782107414715208446120648981172618033867794085915796210678439081943319478289882762266649003794963993422425093103285486214796382103738224084205608834754559963805511759222461360735905339001090439126323681555487371705751498497314091380511378138537804138168759434895237238857168314070867051711853022928463899848905915385384836289873476551787597957554204475970326416694153397634519385582788973008102265539097936127012620136515044763102649701592495106567780453050731320345183402672657148252471815259740812839469957962395572446405539816923589378709877842373101494670848297793157441421955734084056926897194934757541766988306504735198273687040361334559449131109397538115063738470542784915552279884056375524439293764112201196819403353816722831075061782580560110714496154367525993521888219765990701679564226592526899168833201157936667776707117193531963848976950801211794681817433277888225117487816951597408142435077673561990942301172742091723457783582604940755570697484427107673824056090079525422336182072949397706913561781540287969555650137968249997604384206286897071840218068469148965123594468415872933399025895637171384699742714349722088673348853043407506569588309861376119170340588745679226473192543501281758998031911613948078807168854068667884295683411420326439026207004101317331455414398298755680546543822006643759044698056585858105274647655714865699598209088436837556680204151498448811978701377396858893036004587900731816969321269235369817977848828634215668722638808359344331205252530185577235790567302341686851535435303552133734504418468808285702750523622872350786154466146923880242630583026347678072770145623720746705119284196266159196114438793816807944603138235571220315282861951647993889820771111095560476868027837985591100548673673291248614718458626776402373359409142728618536250905114188348315840792858769321766543555508387640669509071977143823014270372064407561459569385729038853837728003776348636663505870761321361935134457075933265766439433106994789342071247948814140675061906104952508750090930640820633352199058896138398049764195902708182758471590238536171926917949094433765859358481061407062084337035743967238559488419538007765896705237211225964198770415620614594530024736289033784803408403291426496693173766138818142750128495848910900850152769484573483255250753440029169344811244934167351386319321486270025248174634068756054575045634803565403023099659607179440665196847861650270203446891950717800601664441012525264573427596804385620868866579790750889552120653258155921551980381411223570992375517337011183478275455429573250316927931663906572639960155951007788404373692821561370548600938251088856442343344382621826538635906726019051942739029590822798239318762887830285185027726265103483887837730430005930382010648732645321922069104706294076786017368883673387796751868542868342699326215814636475130576045490810586929732063279683581123488664917511376616421938352191967800457851109648977975725607300036815818778345692420652342369097429078766599423710419141227362917923771643138485128146818529157089798874935743814813022887217568990370378168549644458248039417388281607475016289392863178291651113431178070956118303243799100241273163488330719881024050663416644561718311719204456131570215593248024746456409314215282798470788249992667975077778535515379839167530760017556688533197508732795029846650306748606817008416084001893304726153884083101186897488356302249897516148207539431103013999585620058268176444466442064621112541371494956685053318115046850748935715262966604448072582193930678599148492798133353304224802003841155349616942970921789983125911830473593661326704202479996646031218996158369843005483813835879202798000386424094234577439822705583709926110240498372150424403987235647801269971341373836183951866966259430677795816219764885685711048183964145312246035970617262021265355011770236155992504435421786608423807147656428962519455774417399019498619273367003280571966253585077956676861821017590401396022117959065425324831920014535844622124350079065108864616670713269686577043125180757385459462422219645124781980564603887822379117952850134277380768581059997531725317408104676082053804597055291002152892597802863043948513483998754389820365622466963416324078700229732982026122633133195767548340790750768448999612863181257623110560843994631863912240062301667549862850857794539535773673513194809261852326991133914410616878621627697683997254227033738128073628763520674117345826211851530460110327668601223241773853649530257900300121949391847195333055738305560454534345911058291375748182913892284192005538058849930022195992515811062532028656666823938932710002469334026691216477005363283669672540233206969966777504084153071236373735866565578361329747663210810179219810295664964423088437172341206842187066263471827998032241316224919305449423508161785981545417873009688624479559079677018292307711973867847871895371199424423649107206652277561220395905552323738201386903024302109920872918040195751757886180548391628846108871711051415555644904592111812387758017372779475753774589582087615430247095950878475623334620291962881737029008037914122134631236467948450916869670631400206412997655874175041429448309322275735034598533911798375389755458185557657427545770931330827940658732937267524574022844635901046314935804652588938529573959919160043009516047073524237035396875761483548641478784330274154605668806644846771609080320926433763356791481143857626645094905913286763042867387203727139108849779132819995266612545000472765848429898215202009124892521457066219332706237203218629922367579411500570064469224028342079028215778630909594663520507627737599778508114878374129531471573291131253600970292096592743841739034738061282136272755679652475304989643357840739300095383132015619467018742430763435973112846461073728366562641385447212026614639879544074456821484053936557473654814216500310707721047796297522009086816322704149981968885714315952059453702181686830401729312344052363657764087895445472079791664929562430214383198063872143793983794843266630756932739075466419729871012930818679638635262220334925953121070879160384664073630173092077717801857189015494132146769668096732811024215812595775819140027321985500827960045549132750972334936470161115822141661841250684189248339305499116592422331502478333789606630696332558602876507899187283119051508332262439084069957660016415327740433726641706183025752293375431492007589467167320743006974214911070645922120801987248742976727393670077154284089428723195434809096774967517141997018036906243263855537043930445825197815383934408265971664918563203366317603787201384571794810204450307953188210674800587993750454309886710188768245697114061219147713420621220764321769949985454447832679532666506670764661707067882464667995222705456027021767696540806006883336057897601858655392344372756714556054955547346701221133854238663398188502233806351356659762962434019258351755686412013454668168653608296672662179464704652074901892777615923186594581622365447033824058816751605864561139811157285236029833870742578024671189318643654226204251753278618535071041532366556504370124217498249377606628590057367025239201055045851278840597268768289583876762435238623147083065130142854811149366836040954741799183052974688308287256922024986114290649180175895174537205891674797644115082844517845767644624664268255815540567665923789090553119778210545136467638975418150061233507842418932274869451925981369022866498223696160154748405072158111402216359523753706799821630108380281159114178801132511582240434577120728810707574499177054401779596919878539316850435485048929124759976461495346254183552748854975380810307388945304516953831773754606673139357868852607078683040009181543480011934136389887514552681993800627210825490270656396347947081100420251506875839738401704766433008266602016248907304880408999161671532384763019620079644814592005715209649329322172593735836832254084330763896337012331234943177307037636876038574807457845934678062621103209289738845901409365881241252413376325985602695508016487549742179366153799208349486829058820437266239652220124849458523076362823088418496129002998776473591780641825176325752938183215236198016789479744973667914873072777622917970041745269954892531803222208687499775070265043284699387980179582085588541833074597488221056108407596873883331564519055678644596701054984321971414385999232456752955378828591126449879803868845397446171716572719904637872637970748327657906659273231758561644752211735970039475093380817011607437031048898067474191600086246776723495949823236295770621427158040614517029674354923518142924594513667686908348133257299462437588787245292557629271259617408830922302217950355202546564059417341312511598122373214858424873897847586617437283898950614510656467449521917415862223130416787344079475994036138981342898383884769799185079567291190756289835810705261093346614807012670701128886519939090994309399087003526827637441464747638833482945586010657105705164642603809537623807277446719031754150438584811805868583627324234453560040580751895091734930921650259301153539608981061257654281069594564837829167864274135148905378449901249009028054210626209509797536994554469032210971262831706413804649564024044197465274372592687257376947512707446272173230686657132005073404659226475439375313121490805026575788631433776686125197481371054645065849980149501586848688665356876841776440947936765914386690779587765045689682561154557729296556586358942426155953663300978307025681374509475385770156904836240564864926266053872457869034001177692298638079805241055817777992413038101087402791055833976999978184820366601197366447018056748314909921475979922527801867694803845756226329195886349811055260982959702177205247709721463409091025432641493882986109024078928741925526729512466240738806869176274876940690853709529918792459994781702381947533333427066757115027938755187111534898977734824625655857677505017267745277514198923026367251081641452989102225958347972802533348449531544271881960181415087298773136770190104785599779421574869562393300650841110860605201036973756739517902916216484908235537396566107039269867578863661001395687770887279813776744602648094176404187702869564897408058181709948690408747342530998387544735858713548187422494036592579501013210635940300316066045768735926960185026390822497373908987438938900765650618917791769765293146249850449710731663825018472319029864125131119789600700776588179358860845741742247661402252077908786911826606034257126203523898725268806575784036853047376653842937563696452235839605450404877151732769999213384025681685887929413748221042465297279659961234541152551497234674285877413547636739905442637328625777749058938105171883654099114206139998026709741345347292777959646946299536526927915619717059677401117339802191780861307511914784615496246477482168889917992155009180213384220171179538162014492156381257957429028227937321385404496838659500414943764382716616841930629489876967996643783774751601952978040698069980935424342543304145975449824567955552725453882548186651592400558936649425031115764946617721564772421503114696177357166734276638627111921439202236452468770773236017402388790626533920579701799079047334643505907164823930536896804697351864959307626452914127575087659852337641880808618093165030153782340268036853451582710045315489249693429826379820067780075994854303636225725373610841052746696204608770680885666408217962563747363313730056168114472659918928868288872765405827513438269698201757419663586277647193000180281626230660219710490450844646076810992373258905387796373222606826662520461176040455668547598636905782622270180637151958609580030255753839347107931701688010519781344576724158588064617084858291959612792820154737348048508529651479191550318310359189268623336509362927848310297052045114413541988177784515898234256239788498980272969922190531189146160620086082192491154355451942888242497004448655554877597078135508085711885377152476139342352956721772755071792231993350947828782465718887653935629301829432280046185735480085260009539797669219349707289173214487206392325183419807918370173228418848466009934752824530293668774107345110732367405258790030697530779630678213769054272234015018147553181924897449066089530849510957576968127310957727926092507914054817566261906975545081043585103825414576948625941484569504236028489928149754425205825526135972686594265377065914993392547535746160822634129951182060248283522819299052315971422037806645231876558447502952790554236001804810657862177959551286860931044693021361976152187348406357865816322920633266457360975458267522872035080638062389166211073300591053134582514428074773368150905760108473060071303350832208579425908781924457289119619595926066765293428993213439758311611526581260861726464122170358103532782917073912414712159002065112736621930902801748612249741225308263922707332255754684323846261191168040318489390265184408849614202669549695165562910881756954936531451424357205302722585261007751804594089424421906754742147392834123166030679890847093416417412222350417770277502386334171546768333206846705464168163015902463305964619229820348108912480852490408214026642892059691489951478123250901967259178923833027126149762942917382630124709160525205681267972646719742217058652718641592146287919375246109733934243394448424146823979013405225661464820173249523246837604926242801038050019622905393603376558915076726107139783124730356018950860571376118335199297790622377560373933097514275682601599672636269875406172867920740595131137394703377138086081051235790005968496087198427107489970071559415891306211750823342535996219858075503460797014254924791582029533679960975471972419063596519987957976238152233300497829984620335849380074317541398090728579785385615348612057847436543399714044298316144175864265938962878331812481811415273431698176256506787496716445619865282647581928659129795638836833601685661860966546095924660585738481898554135977530559569706196712337005608521653689388920794639100225603022175444326084546541424623502609466997540122209558782222030634124604586426958725381574611426358434651080037188202103806322589150706648356528608960174190819229404558456391467994173950049193182084376552943423718678256734403126262450924646488436306702668327835384785340989249809222135964296590937044079640843346467206594804265439351339956167384619604696070606511050292014787400690452670310259480193317239479774164308189775146068275561807731406785163261617829454596460078846296473562371476016684221013089294800039763078996866027370318858497475090108040009944871157844428213682978719448006693280255775943852992248322856793771159293380130925319463154723842391762850308067899677643589016776560516297666955901077477947338458284956472740606030452384012796170299585462727745448485028884744637450708983828542355982801161974631623157502023234566651701542459313669292149667756640781968871750882569164553476595967135059025123338559705211964403765049570507734997734124370566335440573500694010849450627516261466538020817606125238197906244912415430083755597396739701592709770126867642593471086424930606962109193156146472372253265002435421133296877313442191365845130577382276108474420732568219618666331887510290943618302785518033221673951542779310731929271259850265727011808975937771287501986614290611454033068800800241569612970803495397047983706308066672471163362542777979401995650251479355195205984104378913242594547019519756137118376999451863996514801217047583702120077984498953195278410589482744592882439030373487752348330112911004433504879494221044021694693420661132605966866581734174705499859819113475954935025192526263137837086184259926784452319068319473267118151106344270512106981210456044756461413134974273870854252982717883344638692275181741642111571895798861527718846596595422451759983108652728719122525920032669253966003285640139029988253827231867196354777792396270047782308610562335660408540565777689643359075014001412550948602613721498847223672987587516390514768173126159523841234254745094035651068862486829309108582641761722282700851554911447604505530764459924795311783206999640551827077747080567482181108713008810810699838710475755201626982404343696988597792963634764204920988273398319954346918605813298715051232528015989411937413297297004256993278092939797781794436887670968586809793220911223469358940918381082620216740563229677597158792323889027963264742642762026046273476416578514445403623247860074926555092216873961853196376988264557453759605758080552216742684423158740040144963989470024488517451749355479945989102634722236692212400488363759762673314674926678927230200461967312426843141700114063253929894366115852541974795987455035814223797937078070051906078026715287377828470623334805713332661215627644412968788387089922748046369200087828425965869507887717689898433772693299243917087899332611552481843345834205283918855063860002888278527905387211723111361396436054093506098795588812502348353681203097633354724129111062802782896579013858098324400967602415954733095372363133377772322726651554120257302908707782594721509159406780089644097927666328669565041116203964834056503344036015245601538623999473733022179809435409404524029118992478683475158963307873439667349568166517597653282058378857620194691835029562551585579344970109115297346430783373316315033690654419919376564525089757852676825930867733834043829530730340750240496302448651380031145610224586305198275804244665740863733499579309729478021773592679903095538496686086594546613707469050840616567531720154234448766757375377884875727445046002160028221461405497041891865858051607397419535610543936107166191604487792082952595635402896070144809125139301656553247084253322804273248510064741111546911420942909654628310797824861629352093179994646126259918780062118724340406981977486484456255724485278421437560866491587388825257952368414453166004729593042807909965849738375175235061847967126959047126650204591286532962517429752938417357237053680523277126000394028622015106083291536802989658522868456975063089532529916035964611010522437327856811997662241047433338548183136337516770715181636988258296847855685839288263334763633118188665166550889250409086414633876989036635719609427399320988626032889670364788201761303999806748357680531101673764696765832071031162851719676524472030880165027643270438054785783186013599646051414976427622312855457982753133369142695699706849970802129508889602604192916883969462544305122512920203037042891523498923277711033836099958484135194970852113161179801165684933776973805312971812380009750699888245955544488564981277049037660789372599752935408067499351973168588075538244885156384591208538562137434570099315967775886644086976797774670173605679951329650103303187758574749663366958150108133712912624111704179495815798811774416589447896838769955645421846111964464378753178434728027747503239622067115710755847957746459626131511469965885810019023290169603190700945114812568075109612069101284039640522969554225878527990823712417873697442911607625694711535742164752074537771738615848543758393227827884895045613250122413979227013574163666691440821438777278140932479819927275100408524018220590306904148022729203978450211264363308357663731163255675199182585895437210425782603613537787773834903615615933380464421829433978920881696911879547621883260933723439594026166829281669218445921133602257227542002443995090501119373607880105841813153100315996650423082527966132122017177359928138150712158417204272314537514687297796015097465703903266679112199175818896718254919484135879815987799165423750299491676191539302040228430444380280480535036626967810562370602939669307501398329384170135352151208027081592143904909978178038555912024681179362132600010553687796175975421802751651742967462855260577249709374156126401273001686518136149359115237103637676919561518582937680691069318949136439794937095055506978991921016951038036922162558225937698876251301327248274423969848630226080690083672075739537315929139214566823569209161969037130996678978871518434658147555260641672298822216573203604129236215333735545423564879382847884559034258418739504713070060458967564924290877760438289652223249659807242701152724641748733531632014531534761343315119248035711435080564213203712198455608600451204814336474199190796280749619160469255171805795229338518473055893173585520949974335021872955205601487544130814568350723623919617922948175524275964743456663387200513285628849338567590693213582824149632549103727424743454876504304087006167461044236157692198139005740086117304403608042133499859936535753640932759544614407535104917002686239004551437497061268755112818336999572415667131786816201752281546486253521124684319681390192521023492441059523969194981600750581499463692840239614021226614703329343741184477512525844373061683814661245252018931939389864919388401573334302310176938641043329139044953770395396346464380375076437988493590095895151909234033148494430350768670308651382140493872158147070822430219916493500352323091905173365507220119098833510444498126011651075813263836140100175324632536385251377124648316811792720376605960879404988839486045854253168780183406490953953892536827768863840089881701275761057232014915886774661629727147247025939949644342441200417700847730864495323948625465648716286203289933149276559014308685045909875933498356463143323642405401570317690264682450941076587054581858753987472183045845906148558060099266993850903269150968795168042922840287388023044662166845168996463260141510364857830570513828193707726085031269910255310167704045649814465124723879342011815184493337690060160310577500888343706792343069396960368653528173377347733445032725903499623712503051447070159584681137154879187686767936980989107940861599500674693152140748570061557250887915604882848282569825906126181223042670466941020411934221178591453786391335760085289305767393215804158714675292449198252285838350038998623230471921036112822155339101773634846730004433371952044124696414580849122862009858911255363006647208506137439587657052524433715813054730513487468189081127894218475711744246806197955692674836789198072027129434354710141128013678966762047879273746097057988407175168209489040896995937438082827134038852730494641610700220391588709717968436123598369448008407201206204200425230742956173884691630364565669984718057112767083068662899007543338716186741286241984361155957977262335669148298872242157860427872494403942262185360748162435666008217694503980393743678109800477286206155297342371767260806028822316877672570737811127759625950078713613700086022456526898453537909951371166453480191953540271283140577932290965878450641891371376607307003328568595142950536371467814105838807665742848132480286442234128473421658017309737660497994878263719301315883069120186086946475887400942845308203529879577202420052156793708724952740051791057258533992703992002094946728332397201581545459979238692008648339806741473759371110491900333756731174460033419321578026321837898431151293431813493908351755023366884287863945966801550342058253650316721750608917710446220063362925838618920679821285207873200703681556942291753303996140293753897012444919100711627087062976389208014924140960657085052417386272454187302032939402481388842885123103114192289310849685315784789655103646701167075963929628670467037582270372592998857928133782391660598865984877156488644185493123449928431479873104413275446042926586531920975350882037947294469562866382992557171783754643251903120671344954682778677830635180635627145382283271119669213101436953663555306582227459480980617568959686089830140686305510146786463711311586629170812282669625663730479862819329569887994515228567144531485178376507759816175211967107591365340435671190612530957524538046199347456376555156439844945790806589389612950703539984884274037449368195765644203359721026572270210174558571194856443771852103765168480966301912853801236201653713699025554765058793804105100170593796331527751896185424442914761574777362961152901526785427078766123058733739260011308819024956895217980882819987128820250721355145764190750073735832845196852988532019407208582597571828046818038731595783490559962950500150933142858120554331961448136555520906910374755839279193545031735703650318084501946704354194839557328122220388472426022660297420104988895509800572404087365669955250944155966066250266643444338337663067569476415746375764496052668735712292961767412255314146093526540311215272758743878315903764082588004473855413156454452292150848020392704009300871895466907376022749104659143901208757877669563213884751512897351433648257245640722329209689326111997314611873893291791759141886266018802808925796141112569231346491164797890711476376657419367771453077758654350078033550662494325490888124797850070179431176445102042961171068450865132501601596191219443850169300407112268524525485444854090367448557182843678129807982826681551919807605235863765644794742169073479073171576597378315334679455622208153983446068129761654838330247353188639289077035716965337786610731194600713340378782921846925170786431021586419840162309805418793545527363932947148313605072152958220078105000916202561921633915627748170586893735552063701789458543526306581127693756760656301180530213485922463558955354159327099959377199507360887154354374744413098276157337097420479516854558213428304867711521839428898850359186169977380166906675055039038285810906679162368633795668367225039234777169124616269959802816087066647154042549065170571145629104938433566508778386758351156972659064588705308988993846156341917548486649107718052699525833705670621024345616757872685867892894142263945341063421936339787105142405984076419177666349580735741232602039783966618947885185857574833418768871676195457474037411578723222196478762813177440963006008619103925275935033654230979087439869481755927378923566008376954354855371110353091743966402184782478650726996240608929955403597772273470267689613885926835478816118003182985219682658625090790881575521818333442555117023273656577199309017496049954867993223699849859329557449972847867429708795893741172415195361621311362598354914351782175660407702458514737113717424140478408660913984472408991432953994980648177746050779333956020640481697853428331712148608528568444629551254653169600488041656223236687683269947374039689251124784453496587267756997842548881162625634130544645757683672878247493770152529646397990912548235155405032578852852167421724756678265909737028758631362815080372354228406575666496046035095146787668449054420797150135681396292838531750092615985727320693916671096042159625800346463195492540144151848903653011449989517912018373991391423447856775442760600163041253716779268907245682639836303269823161543469476095568846530189806555968508934755643384547088397549570226844908888252088540160831513906368389715406539772470641641243590920210146681015512063341094260781288251331608893008625415325242968331456943546231253634706285924892467725829681848328139540718379922089629259453656948021431106281056359527956162807211216168593807185082369837232146537013027741286930576496767728052609965232672061383328257353920950430001382478780342344847973415509049484194856106216388695076951911613938078251928545852405038379149268316136745939514310947616303033568131637286124486070557525068015329997712350935858931293713714457357388087144758822774553223885259672391764695447149922662483817374245684113114461708463134927481973149559978148171077667143483373346180983038668108698472146744654016584152884409692522105216376760226531134129834208133904277141244271085276090668211413114858147663667087142945180110268656647400579358901137075969601997966947063598177697709984727632575766107665362180484689931733279037181182422507644837818217128859950418641754510257889964563930351134132772347789739869908135809307697724131710343623884972073660095329002132583633278657235100452499783542818115440788525612654965088184206590128602360245135029442723067993000521553478325889261466130002508400197724795572211124471793990589542241229368230450756249456564592711466378390479510068189758597379125929423028901059865218741087015465108837003461384240255980563398125922811983903953029259641556310616245761753859966076710209247321876341401815373954437966831560070209934287252646336531150902396683384901504940365320574377982087006531612649034143309906802139628314627647705398692823633485047900628274130004395177273735897980368817666014351059694263622562268850265358612876706471411587960087675552742728317907915614686426795771878985535059569775598737968341873846664043779166650506964657577167473749962111412308361269176569414727531808082066642602565913048957791566567574759394485348734599297638673326820505267080237058724845614332134586714648300517495062649715166902472691068294829308446794720403952652632580632341538238212087778543224813213208251429039537635573980225080182026137586764972214432269215756222301955323113377058430949538911711422054298334537730917088456435463623713224218838858063790937774058405222355598651515209890946101321717468367373280994694268828596675701132007693708005357181971546785686671836750572984746588687868206532641743873570822867800219194393385260851688765047999400317432268287178451303380719534590536621772861693588536931390507071646068682511397147701781804802970577709205345370574420689358870884220645078645169230030922260484432899860948801055090231131226013034047780881472925664623883287446632092055228035237972865765661807226596980801799228630726948649388657258999355300622079134376903652911052449819363399434980046039784631111639984851999424079896954873149230954135601994178673844932022952850581885390568286013549133266374257033150116412165525225435939783930631178865978829540885419095970759004806414054832256025652780005343757176575294263754429206724849170091434949722831256875716811074819832823568499092229835102081848108479768872041569723804691055419554378454341806004136369777831495871757726552253667988959662508375986275479904814296995269787489669288683148516427167800613423341790372985927595348043315548160077163878097182427474422820469611353673751615081330029451717106982819400273637487019658915333866411302047097589813590797386461239945936665078643602606467774369314910832137525797899724831512685176502891724699759640990385182266271632688242645896493276925208598200795508950675147025592283461317999243846972907693772753164889850198402342161030111188620100037815216670426581607226573201913312453918369414109507449077674810297198869514064814880399251365119841532852753376518593337813568062785926141721334399561068214515680480386551000483761837379002578802198517722102061496320562520308493834233154882212849901367746190401954797465767226836731587330958760878208084441121099947227765137600180367521832127618253130648755850815694604014715055619327154644971583736971837792800269486177197504797437503765055983220209604040002413121839572096131120789893870011511345894079997143254472978069396176033822563457699587490811563759811028965200917654849509425128196407066287975860137921388927992207213049087274956755301029632933238463200387455099808990288792530297751548363469056136576396370124607172334674924216591827371012477461716972780276978948589706450899269635103214513409031831656564195074319827727054824996883438837603527780747651973875541812731946681505608299061856345792194259620088963759413928472998867731898749084013867433278901221699603877496726868508809990288964689173970674640256422369523382810370527904839678732075799992234442731788631233843763912640289356305266013776984863882198742453785800974353549255320657913005606857055014695409651518173578484607846522623633733655056237978793979405976161222035668469378846909104594210354671908141306391885885824234319861707929387411999256650526935351678954440241990924810299543943392245562619812493019177708423629162582681173796127095448950886182654286154876493396801494138623444560354610844458143534141986556445332152088956350894656916579161880969329370129760250335883691387416513726035799372633386379564881990985480209726971043881958781261533391742271855662205378882072906939718440638290383263876868565561247333495031143922437014563827202357282162984373023569750665582315521649249736955005238387442538624679702196785198274264047245665637337325295192608902945274163006282752643602047104016697801767691131931157794632331349607805706694210014522459947861102062313115708570371913318494928139973599183969127690856927977898192586306950432304921998775901862730105723819472794781306208333208348056099424399717715089770157720596405458783829571669075249857569288028056471410328261254789712286716821012851585027143245493642054362504684155252378878918355554981353789995623834889228279869650234216792894231155249962987075499591316497702891178120768967669689832050564286287401866850764137042613104082552821793749741378783224734699720051121777397188540886944891615614291063725120167902909200622022188276241184064155572059301409111609295009619916617522305359848905953433510611837943681064965055357724107288897653260259482866645499124142374584072324040533763891892847183161109397768112321820588666004001418427703368117578749351863039743232109135768932262940443267988226991116502812622756852779566055116997977711891283588099397878524754229603708680696582263085663149103330868056485395373594737425789612134595267816386384231938707123842213201247665617762505828112634316935331066957096246230504560022798638336987398089950818065774400546994866281763356699997895791550789699349284271130875139187090165499323468830692288289435418411543204895519445675346199086693192553471837463347737831583182003767632052251769019970088345225844734442729640304965884925925172297567297204305938131555536798933878869191437496841650975094242559018844931036129463254596691853894473745110566737368677524972741456162167571744523476983674540742139073873320373546982641050464331404461329118384730014484347152827958821180834608019165505214123778265100236459683418537073817278331711348490262516977752227089778969710577378448154698723247966693782179263065049626273121789295375717551121947880377013880403524393271228082839286727555954208923137622755603198682388102192807480893090326694454154355716725569883882178277113499937043872292956624613415269732234036601868224824724145799132398741541496214978018630211573994701756662132693562774977896606384064763463070282934909777122871609291655524126831509075520683860669271259830503819220372006569449125528615446040237819071210287837422125858864611687887406125120541773815456473968000992261915205040008051808601034525685407315495806296973428941436937165747710139175600108733212968440783196755644492073439185437213691989081669405675727821803629619508264723905700095598169650112760361696464518468083761222377274169547448765526081140480134271363189204762166666840035976179196322324183314389102627070967681303300136042675380718885606712850573594990899809009859390885819109932509699418635730744632442220047279169574307742766170967272915899399938551964439970959775021828306496200670961249197471012248288143060578362531616825410112439357917709584502503768305965371396511208210090390040713619210643180320631122700433375151473606352112714260169356980951137625435433532835364015152834677007470755842314699712859894311824676946454982430864562819746050004125228145547002118866707485417635885926565186521296490816158594927880833799168499693654972106207976869224379122182664089919626025300050958819727463860390100588288793020217370006870073629262804866861046058665486737431117253612518133235782462296970247392642095228879809984833501953813107162358060502469680455037394181579179335901135239708606735569964317301001141820879098415624309707222255927003539895458866745503085873409974028834016770623857966767565005674994786372955642890483052911648529993181807443550277432272594568122024436440964395669172435566775846247217874367051556978642275377425507306231740419543281860178804806401438393555254132890831359449140947048567244900059743926868238662665999641480554700453455872370141180275133423094982496457981378337632536768798174619833175660160132142564487270135874711049846199176662072533258200895251936562897390310240903770957807275791599443932575978245035377501591408561745864858459892815319729227302110674297651167467575551758528689090290038445849198799490493559681590339569280433139813058373363857992357404106358461298290011639427102534010675538431016261931342664082159501403628420338230258736227237595263561485241067488968647814258479292916094470136324486642389065760770861469111769683969306856231875449231482690154291300025159748973206856828279138009504267141966763411783526040829559089431420556092718754417359335786130012334945813093360471718129681624516809085707405172454938974475181064687683163545376233673915212113269975094094216724465976865131129372516703728813923464476790605276861758894323212687665971933862422537240036689398333669283742318503887437995461457215305787995214132493522594781406035319279998904283988713515368643222017209658071070350716467844177023003456696300843191169443552574845785181933873036151341070293954108911871363941801827137471944994936699970800884688792479040574192244468520173339723758684593840597436151977620932813019130988176422437348145472698593650597186094381654393146771333239139178523599033252959449472385702851284454954252016231336494757695882156109448617055608424796436651837828244160951118568344935948800962161973272293087749727252765395834904894987650640738525228980285561478676509563345123225382191494964008637025626850547640851054463513669553674711513806084282127078109086746677537456574980889066111960838629223253594407671891404873885900590947247016583995993315951544214993511192156063226392484911666827539626106426964437409279307179349379378777186698376407514286953533930397776179950003391982837119349973951935880225680313852955827360981653620798410523694325058360606209304527042883910957241730363773381552316380848415713136258155782982152298442044751752898454192610419254735713612661155187550622833769590298344349028092712340116687935404447695525252684833105739807425983145118312339464222710033782294271436608412934196599078355231943510680072216105030066302793952588535988547073319342178292483284123073640094154883135372369190000434328920646356432986801479250299031662837386809821663816773029183516214622218127901242709157396379816149790741164035198802359259983392882441406544912885977060169640155654321613603245436396432346070140132590572641522718779417554357085912705065162587544798293024294456547403611823115016996311763213323207155819011584784288232999170077677372085076058086208381385775920300126747949954091062380679509192869885770635605419956182159140348818147779591144024241205259732403577993479989579768482745596984609800481763279857161681534814161195002161068724969110882817928139127113511365307691209224850603791532807051613535776910267466715352587544966911104404205798288189188522360148619082595439492957802108844116252463750628896565290738984732665062344230793792632075274140990954730306751451720422404080648126969948718932556658445633332127063765944439837332045890448570829177154309199387380960763563085695561818807164339904066463513007840811069745731186656999848128441313417432977722591309210014330045174691521700553254519920043070949301644444472319037578236347983845240461031089203954343920126672660898999009241079344426765477822522335357592332919431652331008617156039269866083527304606800588398524587363429982919509339481964182880762512466813535824778536834657607163142190200341389107730246709864184919710800153324376533384588996706496009036359801823003745811412704206169082074485650186996378809963214818098440899384647987084889424244549233105514891006003577865435347764132067270994368139413919594404613513506874141540131567145784925976995829824248966584617615893996322004333381147605200994266405276911730247040606311035564131466530248061953404071957282217951290522895766206541790060466816992995746786291553511549417823268990849513905258885389564677018227849519038868226268859716123005448032223108543729595097706489501710866636091498224300126047108959258044770578199226491833799983488197853633384090146776208050968615006271896026686149256762707413677511649035409653141376627459081378895146997208603950354999551508036217640506282657694257610154431429371840291089458162959241345364466229077560360596591934670600844007510391587093340776739958665044186322579746995566177751546385241316788728631194312724621424222026800212598139542092741197288578530354085918468855049473132259310119668048417556773393657899496791141856610743228062696661663929446206169728510349616926979617425542387518254670459304160480780975564476614688977045443700275893129967441055911248337103266053184113650136443102172903201223900104994251439950750273152931594237191893033838771860768961260806764556673308480048732676037518990020764924115075790460226148405912355702465305938616299419427211364452281501790246471944526644386357029264756871114534577061715668352039199994011217252211537394880667646384463485278387298862827102362712872959192358699847678489682212151691040066497673025885627402365606312433395546686914391140304937715966866541889564546858835007290122183322227357065399612992329086331560402836746585231852557342944425568954684773727758945418731298559632167597102089508775412944536003060585106870459847873139781480812514496675910234824115324553026914548588367536604518264678149158262816819260857927341148834833751632342026723953415684993972949514561789243736665266191536317483081503703815545230155351683874687929272749256938865203203891674122396516038332847657881687277138090099285563501145261680792916949751061141250372541980795426450623874951609765228997670427407283628851526307233532090540741587703202848183010489301024615947777687545967984301093130090038741006121744262201092015668258541981842077592173893490223512018042019900247009894415485829333161869237454455794007611976558538401131028688994667779047791252631043836988084468270936336030155441983414314185677641543886448099757414989886937380786560991913888811049381923019099356914570035796584192640398379933820751758496095368117563219582901791164626058624613930305375226751853956031400730863167121706688417406270280015691726130245500662350982842652461906151680290778557655103382520536658010025343738671814867836608593249361666404491599416336656785260734892743533241206745142492949187850618114588438591545175238224100129678388268582091665839920616894870929183153130014497202395734103015226825283712095650220867306654886545921154121618285186859981897713179299083606828747144568881130746666877384668996382516327857486112657354077758564783261562297970012362140551697747941981055287599368131327936414443207812882827189839312348686655132612311677400214115011128828357669517372292485539284920491155662512737575439534348425966262345535398828468663442900062312645783938107575159189265475334932516218536880093700441291493050153870036453135332650638386062987057755440316212343607383399264673291038051619482112396014452168390704577111406336134386114308800834071242870983546698767237166872569812218079931150913323693282427795339614532937224730236072701663070893236386893026118341382381203930900275723669599506627161372447182111825827396738636800499738707983290878640258679560828006793793008903411643659512063386668630736521449901360090406478391474680325864369198549538598380024470799543273309263121633866992372909334969646997699184442538040324011169199316442480725904921823985598968150174456248467852265753328167484626001976472981462396804284331079340939639778482116351114951452816555462873285328796024713618418473461266552550884368624101842192125589745958528541780233568360449012113925368576792137206369271834248302837650557271745043847332765549146298416300934956836712597348678143177471081169403433666917128023917720671961114848502885875555506769822053835738321876793411068660319124812259736204583148069051404812398789816348074856175805627857928484353370438205754637724441155678463714749678089188378217004310445935917850655340057480407402318331830835531057928679679249620660767722447904710520613507383498127224998464712821711087063244761510998680204205142829145634360977110059654794127337463686544575760845694059799101573254171109815360529542607017138278496217978587026597146633320922597587048912479920383777943283954407109464876184309892348138261879082773018850970116992249396773581535594068015595700157096672723499066585701111584777881287470172451034600287038936662724951545362204432038270417416207821208604308517214179516641257249295789713694041990424580545205677184080205760597466608207517012636773713440850929754198627935917025422638909350355730261173012890033119494411993825257493837416351176761997903932393288385084449077684926766277182556695245200481138074957215144845014128673871462245251176516169739278375825557164263344143670645690789957351359490156999496120492834105594013401699157298758414378315925423642094598015090905690304392219185060572092496324462511079089575853131508341500356601042355063805370375999112502068978647438722501813125715584939742376234350466088646005687209307092313849981963595573372046883984538823090966554621804386225330759119083665370824474077980095516823693175567421345660859259826350680744301923327989543250299684047155100432388958998169985504199418440974525827782306793806651507813568536924001977850885900416497750554036451632629284654688003180475837758397337906084796484822178020722998353524523190649246075049078396933377860320619559904939801398048542564072141702563841667698237794621263787164461342946587351341125541004368664570749000168939251402876670636015062631223746969627250201131778088122093554728818104785211282439189570169473482603607416571398021172275310069845742700047033335486347536349636393272931569204650071851068886548417151144855175360177065769652626056081632238758297009349792141552194710044193537218119421763725958315442821141612073754712099620741332348375717223696485818572628313496125637749725672830545764933661010185208239599561518708027775215504331290293758330423437526013629794880455220469809624741566985749352432253812058043156839749169817494348809854756176143341352739186948164049956702833484988247858333095176992750462232679076379369007989418912479625609248030495031927194250477149074172435212462700784495419219891808806826982553522656897906232569441094169270047478934709017420237828787614701891230086856175658815622948227524679269890394864765818427809173818862934558413695101207240473562514522223461488185601686198622458218455920124453535901354764336559952145254629361594716830262629791409441222446468363467923531630548008125747994364866021054760974063654680372062037027123552681571846400483148948885214697831283604584398639871218887854644448464686399030237730456164751959241704138807969769378438316086423411423266873328561157876083856004504241712232632667230918148303782741897628850763150552316245195835535738918731893350588350068486971534477564094755613790076810448255138223881599132601784053171666129501873953785104846525492326249723355242376189219329580888560167573378866626616746436717365550674713448653843302686716110139231791805131955611061590260613708240068156622300625714793584730371078299792551873319553939799194472611385313324097066166542099140839781710542672724064712147547944924853362287163873590199726858544678825532952264867983259146586187116987650992545797658264544205141756647948174725283303804425157291575127036955261377124797066364303505374664701360207384333683208524111120441973829927554737997091825444069342741044534661394584808184042495274354831137681273756268124197651685514441840313327904027239102361227790721761583616415322367560268221234835953469659510062459896128473207425288337807833397063253240887458859569822437057536865523396786926960113147297673096891207846084653172890274561974556081529911264944458787930581755930025766005531481460743204756091080247842409889939323005399505325523617353677819747602126756433224336585562556322514692275208032621680288008543457781557936860963613985964612570404708465478324676362964295596888115967090764683817217559752598273409148293138392525022520275494461362010083568077407365689454680715044067601121973752284340409037579074498283275218623386633484670062153200382556416990350170455645029954118072336562640884925207694820072015433588860210496388213313812250014686692827570057710290473920861267278430138823774891634151370330195485941401480316786862507071676086118567130973808259964176668513206569891268929069478609550018048210334834514428714779555779295950282570731007950893731387277511429753635662826476769818514298466360131357601098222856622581035519354375282298429551281127045680458936916822473968325736259676344110616900902500425546738709687937818993176569322923569095261900947824471002744028874011501466563248202838560040996790067002455790203677593172001213374983482643333046093357687633749763413449352528546237607058063579254406524444226545055064248689353752795563250779286907312988221984715854323285052124476177873357295231542850807703007724389566352640145312774186556975124819848425300778571117325259187452300312608794051538596230757013068169092809901323866287479283186054470754440235368659743111974864945615012819060223412468562291993428843279960179925782545496963710000235144068478606489477226643275859458239899342567271026410318043711143547372871746755805568853760151246354138267821747751232096707720148968253785647986870563262862564362797729211434234193153875562825914630317439326801338935333272221672093878162133984827853930928555777532016039757136214320416359958184090132861492066519730044109756411587726948207138993138167324485848568846901540320986214727388493061574114081221404333524248823226601438849228498348079464458928554275084692405900940282383175568135768854594840117762748079521886078447233314775954490158134543955906539626983983495374196701810447920001239903277443509871640783169689294638967942278682138207753302598506331481451152230590477507943780223135287051913009863943092225606428020704698541962427064501023794618022269066553627791716534079907611125867651072014700847443051105455842721842624803607944939190104405212406769024396194754794563062368548640346318269796643375448037318047934909023043082856180947722597267403190109770430603115006130238117149973292866738899172793826071082221094543042498352303056821873641943387406663401965490104550916109845399347068523916082213701353475916417924441400154777274764996449450565452769868277932441486316094319526859148367389462594373619195161753204296523775533085804539282854542217382088071868603909938339425249103010148974587138820953236324267749406425621842820454391524709570663782775685390182186146056730374846121541285213063695846906766346014614438713414173880133204709422402143683730883918286597463521699448289998955539788619998217946201291879999855280652094653888743190175659478196963613338454316754602161685832947925638413059364652116990931149422928367189264198066511057700503811678760191756305400527844128913689932627313123570608778323136761044665790195528748727695768922272702568849824395844897902287474463649311806960142245993493886413054087177594775033073500647799664203718964320742278331440626071647893250062488279216552441046204246814947779080100083219322492758141289413054249447359098383897425305289388167366666121909094056960858344235755532048152003051770926305293330716210691406849069463284175973526139673383468842374786014666230636969228096438860669443860162527101678156070986577660473199399412404564387995525194984972302317652687888594256158015265285528925714253191426856796052627989655537854283842365854272636045551547537516911630543646173646470081648729866903500448987908263647349686093492344835306985527485755117175293523892174445630546067764700262803068968553871677587357970274966421850107389143708857060173444556651946579785604432693032479352721467606705173116296171361941790280882170538131908462837317519326935131478058326390933083988294129325136765384898091951324325129331153488185538830002396322244397645377253198198460311806204342988619782107912025579317009776134960876118750460234487540624767296285301967979554289797394520653448022617440625134596982679058737408682467762653954680534188003047075335336509431763907866001894131845874476209157882747013567743577089321746101334652328147209675588423711893235523328790015196346086493611462822322712544417069012050133231605837161084218037818639593820482099412072881159526342404993292921397341857096942174546257116011948851763301833428017523792939501121073648970643976777787779634026391698044142599961596537962625764401139701852387560719194640233453716133757285095948125746304548206066607151619196584348552330366005124907734592310492016672722845318652572523116579360328240120593493393271462948738740995406226231864768965332856553139589108423514637600149791325467009911506895544383180630334386961182695461367516589676118196645341384944686183084155637614582391290238485539119993872083867423364581607252208593146917363552226834670624859247378113823871956944174502084726619879198378384437992280741783173431780127997555729791267303308464019543369436140113707504936528565211886564474557714941109136461980770219472943122799539086445017924357371670228955630775492298944035776652683071222686034030082917772702966899015638592460445035736392142179670002450262120502280979407539440039462749387230149991208864784037827871495109713588951379188388398020519317943314155873493356948804171759473416421746993791579547836901734463478541661380825116713836283577063856606858654490369345667524538373667641352260814453879801617571238284362685712102171206853218257485818016709356392962325831990923243860076900910610188034876961059855552663662976556489060474305062729406829386399755822781930175836998515177512217591459865186394815799080213467467820207006995970631151302542927345038979890320356686097402291993498500606302722531017676956881384163046866481168688498240374665069150904042315867042411271862333967725298233663338979016524626782110843339926953896253679108603897360091446136584562013636634356974691063636361776357503271684922973055309541449682604855858572900941929914101656691111310406197375805868523579513740242068736410838346328792838292748711952503097188456352695380124175622298861662533948520395267877877363593180401578520665964540198438719576038504503689183091237458739258396586904335390289777559368520312260925580594496970125674054098296662494672421391260766341699251472821412410517397610184745551474537522557354417433181091477818584907801180111482858589313194460104424561198179479493771737249800399506648411422546498002049824908960930613049256421415878232591313628845167797340838314191621821728099256063292758584160379855265488547688418162516990873286005789932466919557617933040964336990535222827724147344506676129603505220515295823204429195836332456597131564910074259542762188389545604762363962683256283704353804198481515289672657099518508122035242918036012339557144421525187457244312004006120038709479332818903316686456673508007966003602938733569354539373535733042588206289414948656344488360320526745073236414579495918101589140318239753144477031611742470542181955282741920362188309306383027165609485864463293059663879124329058125603755150925764984280653221819031859295668861755811582368620041681707353530590228318023397517520937917406441403094764928077548459215431752591168883125307631620246804068041772532996558080790681493026059129645775602339880222295661065457308514060303181257583915961052133546829400127778175448981373475366067731944237500508625048484470347373381893771042493335357557001515333847724347521689120813689122015542187574943128007947588206523049257259034799983942875784628481276663676259568619833716801062590903799331275894065939806007003576227640645626374169788907414160353498429684969415247522526099174121160963925224450682420412649366300873482805420003305672111436225544508948678412826225180961741367243524553208265026230958673474663455254503389857472274367475128905908994830478000651663151489414506462747036274930143347294806232400690774005728787757303038672273604763451772750802050594097856105562532761242015301892751861857668409682700035146288042397398623816622334826122739169243606702799536720814368302052668617352753903073500250738294321567734801115576253680707917216145333850861579662790240998473152089895018930118083421428193894786463259931952407039490396360636848878208289411350881852554557585519335141630650363493271989452007977665540534901900679809913976938295665443515926816286190849638289946370111494861709717389950083428835733491018018537637083553386643219152489463960787356727380137649620834769756961249562293076809693336318672097281681929717432943541183895362910945238201335946836481473347255340184898168634768648575426211741652363098818052899641904946592396329109433136330141803145163205127789267700201952021987722553828840283045498016702398936260865698073341005870202023831362342180254410935499718798247540417570671496279394713070006120418535837144566110399369506614837609728118513702641023836333906926030927702276635175084325853987740101627812252804910451409876495649269838241758668800319792737311241569560259406387421074332580560980283551937546150280058377167262238561681685277352981296297658514088387885476458398710816202766472974347715191185511702124078992918356116370821491736114382559678624584333612211348110258597298552411419634422307680751009870127521300409914004673100388864405318086901989758465863335528915521090088518874203764686189314900668935230348023411801201816127116599529190267091799199145319163419712836145574068053986184906329379363350822313426905153955219101636517824926550442917374119620940857300369073198942164426436332690532086030968083297941621418010275247699024102912069165342041182173263285207337938763560193756620849343068201031657156198471483963245752952509788890091956524598394447057496592658278619537053685030145568593067928489964020852688805319216605704569742322532664412088681412121105675715305748709399159952099428925386397771556211295007794840659519169705530122232430063833794751698184393471003695497539607396657195475696596344055572948322829306686853828508223996928751610007609921845988842202147304753745683687341340710731754507313254481506345693307500895725506049882056610730600404880456361368142028944005721571181804597840772398624819487259656416750510809843935155352653429265293360031647958218443006599163510543688726233255024327720985415905677772229198732662851265424932251378358310547313901865996969033728123029301899266821749017595825223074332039223342333273902983197060047848315507980189648196200805942271061862723043007616801686959069115044622662464070916118595305895077288639173856904430191539901869648802743604310004986244864531032377290313431196832925075674694238998810022029256488206514926613436869299897870260649774395062582574894758799269952915837869642157635812337922572095271655070672007932156387631443872860374411949644079000223532271383781193042343535191455569331524560866854377964413456180407020266831944975919456836152553928227691730146226930321605421476017938951058572111745964054697013752147828623707083885577188548418890920836121159089409330035134625341603337685417859388034116279741985773575344956263579547357801087117725090779688657156342890082835719190266964506101197582650139090352256709438994693871724294587956407988702673029442486584588030830432065147999366316426419326621112927349296595613743524530752929673225294892574402348565927745704149348128096935694324943954423795647760919521454927753064628132977237241988509761476774957683419524868941654911567833170741533771714621021841660040303091450631913539748203853912673276661320298290623342973137956351216299328064186127376329950712293985298090523474298111879470688300516097840066245097206760241780958391672349137375049946434263470373019617238994516366963278721196311550088638238139586935620758800307899079700892080123739569671839354321601118432620840374732133475929243204370332980794331655464151025853046852656325825298245714104261522205013636379107073342968926746251717437787378335001665200298287128703571883859232319269801147096419764562459661692295086187478225824212043773750217282848871334011780724507881960789768643632749251670726064647834942698699439114843633277291988713751544591475180631652741146805855610151484360411489493218230036718106232779051101460398344444518948367114089906058532854723841758410400595716666517204123478706180435025960711087626814796374194389205357503756945635587615629799634836187609704419862179468442511486423131750110659968068715471090515772678707080046547323873632186517045464638046034713162408589947125285216382240350141232564239254623100002108008056511644028257526517861667982396814298111483648932712068597255152294501638022009383758287688222497654277921643342299594140472418889122968221846737800064439120036519714798469564081341145812061708907134944316302208568634327517028368820893543229848382782432917399948635588883467744026552587637699436668832470392648259944505924467774022622919638579467673159261166931935733412835959822291172359778270215706984014624708313664197097698910483151152261214618833575245367213162688244091058249380141789936986119012240126818110251686218753847980654122745002812540296870290748626684306367588837524246149573520513267153708511483409510207702503138250245379634220492154828075097468974384857446129505295322085732542765788469861692866434490385215651685538543832481811679141107674362803089313589539879150612973898281237835829523464154835173676077514148009578580716666122583029584142501169301569379937190648183963272564594697206104384333104756886951460125201511592570986773624616684061099595339322014118783168959213107340204333320747849454820093723711886970348271357090003979272833767004202102048380362565185265892492126961563990238148224739693538046791350627299579164945136438692867669373004865153523699018905364612984658783114152651806248871649509703119617032991089909736115018808335255466290074329769638881707343007465447087814924063953334848626721534267020358197178970856233064770769376940879801089680139801212879989185094434548414977987260648547310408638895519254215816534979234727090012337195840988576884078202982930801490914958746934619655384431804814220170706733424022206093644340868090850487166063829919806783665097625162751323126840655007403352048497908508590309155051291202943368311426761562992865482881891845446219876970908313935967260650803901627288088064504483540239660984823741633735571216246889971888221191216155823156865382526225704054535848308544936093509929252003853193924006236700118818251799757276564310779131550992520540920008612085285409329396554099166510484768473936581690313008537827741971218240460774836691444199756582019872476766311317417296803673980016517524391609788450437990029693545037540652417761555829042152042284341882800562079087258692058969244183123280150865745231728021422296413540834429760813209035093971058350802238192430593073025530823905472761502109816407431679165545466354500645594314794304146462673596526248603067659360310265489569511421329209448417668120811816469241584689877172646001146616172521577319752892539409351994247395078907445218418210749362741685698771149313267813533274232389488961178594341236208726698663795043233413840754858634722508823003951428598109113242755038822939519162054681035234600438474761808819932469367243603455209999243070369362574432285477109704982377195888037836197565860487495303762057011852399162803021589672539399799438428671094204520294161831525696316255886696540542317634153797362499248993423743717496913454801668002740223223667100399078856192624215821484364750216407115730166996999488530530103459998269270164898645504124967161917875361488624616143666443937285523794696519322656507303167196505840416580014325142383483877406950751373431475560095604710596198202692624722490572727093429607919141825103369531105264810331545808128044306451061712614553726870406916211604352256787582970006845661821852452924826780960722065277274476916944425036678645908148939183525565540476410724590353401195171115778795949702579982246334392740702531720369738001304225408737195581369225300573958245126328805320389073738584990920530078043756379476946130096463298416415669295221833425611575920994815235958096200143441346470730734290502287301410340512602386291152745109140857066951980023754244371500252582741155678971126379754489957738793450806833192529033452379879356983402627927850635557741848668205675084354902167072968850669037521227847264801747195694024831734052348577889589915350028832259616736316493166002818351811409736824890452075360718134095138643454571007008849970820438879272328074102973022477891486125109072902512434703409267144272534778954076289293797079865185266744191153946151146979720803393014799596445459031374466057894487738923565065401698808776255226213872041791517905991695870607610881885599719889351946964548885405209046759668572474528495071796522583149787715528133647742431920091539962067864171588642123869777699837718364126701200902126437988763585216755485948365560834591634480832650256114484398854971690909770536929647498677774543548211194334363641143983986503539975109076095166926314753457868599036754330684611776423459987901313268709785613083659777584057001951563822382324879819906019825264054944131936548365056866513016684201645922271495572277701390388170215721982056380137079986283631652646087820228625123659274389142214081589694285057761738521312210490891771226061919045197108454030674199545386646777097812741524202107406363143577478479161911559807499553203071214207675998320296215752904178302542635956996987697936798978687481848501898457435880349808503447069495994332455563412429638540568904449158888653285208751896231061074754685734787053442061643156197064816775055667396349439444270185282214037640570536355583660675531916287448808680363697254539748551891544347179795628293371252214850256363557498088004932936034416819892547657712449176180402681972657264393466222879336063227122537368814197510105732288666584368907889845996622847319557501820015234529126195444104737829936225477465966217959224640380222442051391186926710599799175000642026092504288362730099738410446322960098567665060873428514634972386537241778031343750541775880702178020685069303598124857668710630491330218511937921018297755291043146785505481429946126649048616161011325478181196897228136812860292266048787094618938826874773207534609183551841374510860835895961745852104380225485311206182814573738014266356218957625609052870382383951157364438248604589010652644747978797658399169443938057012757315088138005409872589493161896409297191842842193325752930700041776106974789283847886459748548598357813913447200660196954520724461301944968225200651238114627302384952362639175254354019868025073269386470319875785847002798184019270464272879936164929171676266695676952714930017296146501601049401686931864918336333141363892742890977533372283828079114942008555544188932361342715956223109645303889890577895587121039786549981427656717067580567163111426299895737901370152108932818590028264766190728350862182109297626583115997041593892923706075399135573436349529095780074934297056988980007322707031109191239589632614316101687198190340292415747123549578654991389045117070032359500338576854363315843498006712610378003795224369239010718250738196995932173224360364763656205632630581463727254146429304919646384493225681919948936628974398488203655085560434809970387987350880029553459310585451402267413419415808325026083788163396713113843919798060614783586218298408610266740647040114144521003439746154157689270705259594197906199393240624296575843890201920365614753828219274976370421292919346629824111473169095202218147690140238662836966433476987027819043831798921103631489984007289826150750317695391649991129342218055375080944694229342105646289524667588188887999072709947850524310709312218617779505097282614145154449296264173444175490634334264210444853128558807446237739952704377592026178154852150283553836426483122913542797632576899184645279722428726510572743404357289611165444500622654480432074216411827040587446830204129036042527185646293730366841379101546449182977243021603459030405197682102460299801473554227227975486138766719600118011492954762166533116940091089656288527622567255951911509270181970617421055917369825381082412781822389607609138387822456943123130764957933519134067649899935820733406543247313431517566353395333815210774975557300705529824359187526615616644939920475304987823814127420151086197689775885736083673412087418816618995817649547220521533505563396458084019142206338309292211574043694970208582402437390432150224882841893892879019128615144774270597576376873497743355948768991827737547090956148339221073236699693725653704671762125584584152409946843843410865319245108405037834714015738689292509354135799798132072602768418191856906580918360235728288919838633439090731721659546307860190866945748903544383381915186118469696160599775536554858714013699152248017176434655960426907958387409041662811524177976651428388421614839969430179888803426277245733611446747195736036812401184555656417464788560723859478514216267101905738343056691368072368063342359150371054798670539219676569803096446551828123509398832694573840394769022199976578198998006376875315537875849517866778445639020460074767264342645722028965179188243363096852056572259249832557498628388873532224726430093414704248661284342830919192613193493094787539237541861227979767102244461126290237925695093307283474014034646361656083091852859979641580980379153389816199647751165701559316993845259141448366822446507211144253438889356356055223983095626100043047887533413671278937521259468768994566161182481335998534378347643763272876944841382772705678514570363074544713204427567577371361862264390595042079598454031604613117636740300799826088780851010625803950824463425182802989693755460296040521701245404638673961876233373230816802479079811788010800776862244142946730171850779095660778625457466839204911989797523226716490631978852770034414907724458583930190241257177525887638036298776926808574166979979153427577797404061369723957985968424683197195734533539058328697147948504983959565587500138500080381953650544952728138186282037027310636791398714055890660071703186867777452486445745745900134469168160458209532016058705482339655699531348798032236288080101059554565555320905255294632874557971425279409656379607656029606996541607018451326099656359155808819604104115923128943532409878712858704887326064473119020182774931173694511406668922202331635026971490923322323564216603964479409468181367211969759272852947190652652744148419439034892509540638542358630447922579286937537911361808584413100721904940201214944489119890888061431875591720207540219969914817804295034040074251655841047829912675399873497910607262034724553041295623981178808261268770746086557039560319100232822122029442474186068241291674624020013366588838804258712088030696736397345665413254068014604266475822460501241128698068885012623925991142285008591375158318806506618312886000110592397242789986382062750517972672462637872733053946429884034442021180965048726795177533431820908525901978805400568904756571193003310298948606756453224306958866020592701297293173433397186837899935073138838021964529646691141578056873210419025183720360280395048499067401599434588212374391031601521982244303022955756677758513052585858564379103652218431065741587431127861532742421850064140639527750174179151260245285361083895629706450785354640183210351653702873168552685590891068739568476303922590899069267056372695604124648443810965146157517682126566003007220231529888860902218923479522544059749497899907470861213418019403313108700521208246660383560611571907363056746418294340572394386369609885934336820670450137748930500787786297034603400655191955396137214197510397370979783761769297572515074186468506580510664655297143491814135348370252912738388510142116514388636374156086410658800903504742704885523554558571024558685447352753367180136579123847486805431015722823067803081581249863215380639083900606406100754949857121906714995815047088777250771207468690974911314669044069026075944792506613922396329309359920017588723340582665632474538423501853868615575791210511734727382307391765670481942234042653104911810619738597324665637453652002168109329316946175651520443388264547554679033206660838057642926820486454174824980378646345812596507016267003608154684913456525000256870988970162979771069594345027495677898410554728462390509285943106419486360274358704578381653648709134598466563106708935418941551239773066599921411013130157520535514552402431891679135740297497397253701466806758879381572730486685189627448072789879907903264453504865602654001110952834974241996232689956237486753147660500996363032431530199337769805148295064196375861513117840316662146548239454054431776576248126504674541046230331134904184120183263777455019593895655347091761707525094550767679698858243316744965402592989123119058229819088660029795450639392643456885866056408215822568099107702147181505749039239309240213658138760218874787920099688576110114962771850528224350781480981575851957952502898756500986591159139529022977547037577392195158249113435335266743371077227118968067935201346564361036933249671575898168300523645655257149818201716000183399766983682725113635087654548657642093110016681281198184939299816445477018670304504266021175757685770820088155567054356991019561591676367989262544531105072876624378389507470066702213595066289306493790845909514456934587864324486679726518837842233265423697228511294830406691546679444213701868083148671277617599871954184723299855303996762727918545184286156423018480460243333254444479996062215971268687398612179542149930629996313315964305236947752884734208663937111801085243319366535389160694613402020342394256893355193016888954667235773069340788726149436596353661418387502700629199099096440178403754007434141750087286738494236869808690112870481505951391045808471179934890881663577902840133257731033855489771162887941969406279298712120576427638975959384215074716468672427506490628007947897159850199487522982572432386038674681090811465699218152023360126165391201562099696376326640086636637216565901026266036509797231171055841408171701078814205446749682291229523954514506619759470293255452957574165849762481970975810630999015961062761195417974272856833461697644375943030129665472148579033921600497025405234042799362977139322534903204819054318588502224076846311530258673206999143861565082790297322653107956596969056995305998190838167418494690170076827885739966290431725282576300330371334721391627567171810448427450492572327288895472300346354986588289626803216303064791345863101115330450802024695477968663506065241451483328138643988934458031927447392149544122039236703460827865041165499176924984791369185415458839187891702826805242713678174629029322005473680992992049585041560262938000884271968065582780387820477254768002986154873694491968967908562730963581976130446102382838887072803445571621956980905096119610211587673520623107587608767696354516671350821208891771929605667455374281398596897077650628388512811167269958117946755124397526079981959758440910159828046509278009021319199580527733841646081767820356338277956342546729188935790879220137804432214648794678001882630742633799668282271339566689598876040441224308815471252732900354900768224379456494960624537285073301417146871064966537841104108044204877176893545145497880401961000902420102045040278905325206621466795397453602190908738621018538145981045109672703337691768729896390589512148205933544799226509744797092814951483482298910464389574754271403922422408767397275525074548442420203789306474369014141339471263194176517823602794935460891420595596625524201743262875875014119345200451139095855931073624439759715362055143998718325374650002916453479010204982834752299475011879709933819848997211359008357788792352443248036276186496616438420397599947755050519684705908215882439819373869486004878886980230556237799858307101456995743697125524415789600002511626039457809670051556634532584141465708546931229240582790101855434261054392170085805467327794587973727438244189494420146152369571296896524890591422165565064345686452197148734414484223638714978284118068188394263484287874267784369460057030271977907127819897418618655285682546316042783124770621767410480973718439013393190733257914152880499147005032847200596190375406797662829833123359842890745002234495587486537615955038994854755427592528459120966149045797922901650006859982768253911396575213574507067321035513101727522902464920062851657905833627833366617783557872358509574191662752762719060991410082816760974338414684304273754650670247352794066331950527557171065656202108842797887512445894936763045330140767661326128266704488560307103276744618000613720599867806952806886813829241294103063449690038677780322648229282284096349622106561038814063496206976941616360419220187605725238864822089159482240683574778694862948300633423185307873199385690259043608798074706940326453524256271181080360326416124030561529134718560508772763847419077936246851383277553538978741478296519650611773090730712562672828174720236537319667746146045578966562418803738756724671024997425726111259679953795248478302477577731845155815940948714142145345352599341885621232225030790264865032125148298616111783575517802544045306370119724073780722837849471460777118177952009235605552810914730035592489322740996969430541247696783232301645159730508531647916330354328851876591572510849771725054680938428406483443990270865115122104413748704549534896526556461006988109607577563244807070750290788212651145332559547979642555351876561419154547963556529845714179757685680091808474520762461871909400267443551366547446718703038148418165023907033421207676093836805767876430368537632612763529240467939305014987552120288962277563040988141605722329817427383593038036585771439087973946077196570348799457737980410409785706902092151214778005390348432330584474810841320798043841958684600069496836413605774685175452122705252599531608601907157111921419690272424400603213724384445360180537756308274285829186910692689169882741070403517898725757412821926615476541614924888241421374911015065369451825094022841154723801533368792186965566813631153303149260436011338955274258413830545383090224083407442888363145944645089848931010413629843845893379311211889782424541072795464402027930705907087071685794488408012658595259008560034281199953868805137640940438895673247836964012121150261379004269932678918719815855844861787537882263438362438029883407705911651279814986034624288931043616629024448712998166378530189504899609041032972671252730920575081672619796320758801720950786541452589864993349239524177235216263562138044388213962613295424963633209178485892321527057913955961457565066126093285924275251913545853078770838194477328839685383128778085686495729182501400625116021269223050102755948423039810628206522490459736048211934111832900420221801390908778333463118386064672562340747230758716967835289157150116924220119699502378655819295616288786121366433809858757503111293822843699721248852718912462513215471502942009384467343451330090787121850409551208643982230926121687260978286237045285373382062750622133322081399619870534137097599134363715150970690373961405772530355403459374046997443926100330293101537753007285465473106626154183134751973976429977787129401620285567216835841025473730711047651281231814256704526284828679816231736445727296890914060168533318269778513999733864573837198162484994932030528594330955236262370025967969922614625514166877401291208564056083501408319780225138161642275474062264965762492371546580578091927538344061132302669711232274800787696128091400843887193521544852721728938219031686971783448497226413890511883265060160787953246767429539011616622406103799317237348312170120496815930721903080824636457265828694719740330417773095883937880705693305662356427721871626454124204593025469609447369126376375447801172880678920349128775343185516007333069237810071467935733730588749260835994482469580992837271090855896287184212995219428602842307468503588125053116500276688512822844638428773157268449196087915051835533159790719555983239726964738891879626540570917702317349842748491197354117583531181879485433786200493344882106701325372859094608215607020275289687564597193269287834158347502767489224779577821723122743014133876185003820004791126872945351747729934798003209957321631000077396128286521271557821309804017048086291920986145614604985349033217028205972252006151948117618417191609373395758507184074791446020828244792558992066687760285726283144060994494021165692196664270954655129358054431576745275378008538809022901354677323973177640122149923165596370530329478575007210913756810543994850514153761195521110979348686184402391295796150506134771030381662509591287754271886024271673993445374360247045885217415382164024569232082058339813995277119034660167539992749200301351964085259671089176865741430905774501678938388097407553598726474330371470467419006160933782276504918729115422911997857459649419342007320760778850411836377885057318928186576859408065029901799579259323592527637760346194329913112280312359154694188080781722773418574204159531327509604712931581516213261164793475145557809869900025830205850720792326966479117816110325771688555623135061975762912465773404818040173346441000154552199636498447163778448521691759851283381618197844194837901268377591643491054633792179388669754264627979965723577523906579684461282107419733253982025097709284746772054854633716128400096117685949064598676651805787009054782735215341985164862980002580034931382878525326839906314823991960056626936127563543777903526429440288765295049573322099480168897838007883792661649598719657735301459636735741948795564751303416890443473570477593453090451480658419559712507699671046290939441563658384116041981221226818484588241169355029021895244143744400206737617810383660187329042754172449925495670110267366646710362485584962437913792393217598015217958598956578404193684845915937219352558540590612155063081179600234927992581521540293066492282811665268916235184489711545930188436442789020201975742094566552639905596183070890592980093666483319492988817567138134166485336069644250043534483787837203843310476778197362203343301601489720409229692469116669876343193799672964985886414401052794501966641676376620721100011349850644668774418591767820238139110891882194767554540036810326192116571170805302950009693181724199307691292395022446340097682216291863087539711488319982578127998012443339010890223481515474695901818850793565529185897601936577653427830116521501355019382723685273646037823571858632087986868544780192883885359434033846271827840861920614723779391554882681289749217863490911499068175287493141623697120097712262704505225155464338536429015635887391623057737311682780719491997910520563756345581382373675230774716089099720404055786580358706727936406996720257442590633830265546456672352954486815459512557185935858817724148878500026872168120844641655597320338162309218931418064278307010660717045971761582259472598740462599835844529056478509637098236485794558532520551268945942279401917766817978699350278585859734555598528615795647253643893669475941393625978115789940346424070500218402812258637746140487366663559861143655315335807900680614992610381169072070109342157580135301778632398438260444172622075335687561942963805963072054354925339901695529029277194958730590203849071691703769925969912194428560823912297701411991189290236902763224453558534938276372046511777298552663747124190358627413793866231773859129963681817472169839117337392111986459910599645120283718985166474753143565442799565768231422332333968236902479029375990317530229549369932498590605528846941906364917545856479781331671623633210872426529589263529029955153355356330682812851393599792094688828262038042972461198705865855703767421938028444949093193608872724442180864295362234869855930026726287686056059801289363703303616123777428188373834051297149797702111905730800851065051585458605751908985358519332787312062667593596514824611427986718774970177962576766232186540029596260465486801242583794791517511943980898101141098449592444169299201410366303590192673930369927205387331898165306864435625111267498946036843533647877335054745346319497156012567099243779201245796501523156627580406660595705512850926267780065753559858644231852719905960065051143711022202131196883541548016373993950303498143899052494791749731060466382420998828509201765313932031505433167038738370469469753553262655631948207383461746418992434543972482800353029747877468118897012417587802382250321793314165593819276357895420938641537234774824462628539223512353611964575746132189975063482392600271734091166305534273352823686636468371750090101358129612470172041323429962641501805701231499257088045839878442391560672447040303165679845338622029264273074541902274132838277078808807754670168285973358926788423206009241121125496226622360629205241554501215117909968552514573171685836910056147085466196204700058301205840919987979228645064832950606909423511137226320530028664770562180794999971787041938548107466257069239228941179393333539590666538663025368679163631135579927976772631356199680458613597416425292112237754508481732553873145478845644064404544932184330971084838746143810686101923332699855630339173780181879883980504294398865512295937635875540492247532806746150920496955762384123109638229667788099455708821243985056921879555201294088128923148977664092614051791979056293454018675090529583185567005131263548527734308935779882312568819752494518236780909700465573899064039122170466918425853256374397756629065005772097251157947367393805757549800916117952610257911215705522029727766797535619460793196907783075570226738709482587534412082786630121970339560075130315884233725946602414092849659350099371236064661233746930880636227692821609261851505857925534266557481833274346830758059823691007004416614383141886719697259553513786627080999775849392158163050923295213080456389028721804559915817418843797459834131636653682285099601079605331079571328934073501303490586023602689850585550057267681194468034650307489454077560501124404353893672154183002256253966404463285359634833895640393916295908389831716816292270716087240788987399252093533265932232885934563094326300729972316646614866056918519119386772049485820693248203862533987227906528246452996197556969031356795332006245204725574736032030987186480115108536843926451675034898435333993429735259483613154997913780256049420490479831779438004737997067618715184821669856049253770294696143300453507973738981517671997343344384181824376483944758071415528345395752678776000748403651725536577585044044472686270665011245944290866466504277883968068844790555219662600285214328604647521325120860780546735867798165562855061956414344126521293975003891495420015943080325250312592783234208023636108729835117433004833374766206621241414560022997327615809831903229774450053961948753164063031515768108169717135679913554640225724356217331537055042663258591328635258777322208136220652160113757058662519067069427647058685682277006834752176198785486333644559417164524724308001792768232356024634087937533079848424021408596388594887982497716438891215385855843464132414365520999026176195401338039503358707829154574317273789726604544535431743717073507173465102934931892462160215095259061091890755895259042788705474551723460127735439793682821324242237809098952945892676946992252090560821456978219925784602704556468769104816781081222755023500775590512905219099601604117746442688660031198779565989338847577384267065784474770718605337197808029278825360644306445963828025315526355068830668746347859747454717832208444432676920101091675528775267216895925599877645505765087859152844150807769525149549639076637786628914207003239495802202482990799726335850102371381543147203003974839752300892024454578023968289019886728731405297436388310739433042974729357600089032100307276688446107675991472092058691415864070535963553634606452773204593559892576059428249020088908484123795468489672899595506788121056619562233386948923543879970936273772059355529541369363926978595876835496066194441154642681526452232588487055629070098793408442354273187975790357480684450629346366990342427113702491699177110002150230759697255555197167300737297752291573891006146039668821997403125980709876570738518791774079128549123942865764111018539727646444083946826336641023712752870467929403648205763695125631768523713906622664191387921536153305344044024303145577801824781626689627059770131929856383352941629775264535929144781202374599191508996291478427224541904956868644200487602142263498261745178719695601538672492333729447421813862384013639890882019326221628781536012353486425488684023113176366709236356682208480101805250254610870479160301804821596656293203968414580226896520562474929875044678026487098166139604557965213115893239418949715690407586804837721080222175291253709739318104803137817250845912632062659061297483121836847145410991023491560111988054028571142571343767173143642837487876109336625075232651078262323173385282054518297452902771136542305669925493788958637965060616593196092546057093854713761250582092047352709137077030516668721201697768740359869938901449041996735863202505315118090054941681791675085476335010305173739105307114033903548501967459521743889651644797302554337488465450628711052768736733664384166594898472731585296995608323209082210556833330505680853594042701102843101447588378356524272039550508315811540077313725881304765289650457148775479426100471558915150911646317165870021389066954861061077205203233752291874049812802028177097513155200715377586872415407122071775405137556749736356469359156188411226841403806706306167855040520895992909339267977291584540782877814968282452626438021153400632807962760254785152392431938222154644726389203542613368369171852979154322603865042610083992133588359306384540205125714479130418301264063359891196696922495865313642122110069280837952588552231718682499865278995820441150000151509365619631510338149796759533806066723829535368184001920440802691945937385077688294590227989614146862181865851120857044612879452449444867200073312772690870710296173783617937022171393474898269584616777827318308805794347281290768605889699353336241142586055646175325386691478237450521377443594405995445485083766606853189828840469756076112601025339814612151865575070396366401032460991568375636155907608882576710033188076610774828895661096292878654447049136131381652998035508944057490336335313969201052170635557852521429113962394049515488160433057761186178656794423920971777729084211717621814025224647430107366465797470151096955127558064920267271791317747421077606456080666992639630958688419046202208754185731952529783788658056732556025322077486599739642826931463544175060249270829591762477181953515381245573625248231710006662721848003098325628518412808240851319201782129954158335295198848644300643470453002939323942583372727821157071116106266896190994325225952985949468211440365802785115421312076455741250058520674172305938393271935667749813610237813813011882548030749617891366962797789471855892742748181341479969715648156681302629579119569165039987888043592581197567388770860390525470604864488191536483023222440787029649714828028388619307116930347125493129895013529524495151707268883589814151492182221096807712873845774429902266328060991290402395860857107867936552674219606097726956109820418121607728185443064866206347586239823612813483726791558065300325446212982550412694649808647048583784726935251102934665521427023993987618035926405475358774467553669928460592630150093030381350837853684180774230940783766862858565820063625390155458270058401814395728232186640787835216870307665271149922581384442369076885655739445335378045745865554193424263859040832190011431388805471643308199657538770814602338196563356433201902753099513302213833311701687690171110179349482059193490765356459467177830249164907784801577998497565780681821661312641555417744311196610303140474739796200764848436010954469311361350484649841657997737733861995518573884117749683854099641317912309517219664718073419241687127474294206605796047222128632592630869923752849180837069445495465941128080094685937393971437287850052054883063719142395302151978548303285929474604172784082562643078441120560105826564941633442263059183897806497079314275468667788199247041454195915779755685205716240919440776384267044462780783557912834326608760133413623097854967426419505594196653384254726560238137802844861783517686583785428290842910697083043987994739858469628460814882548382365403159674000540015821880950976403405441251793070468342566345979233848591883190721084103523940566938255033221842215189384882759573601558785274825982462516681561702760776218631463995571740825063296944578852121426447894534677318336153693541403454719585427754330111275280426073916958415739089113315443078697865587940684266338852883117701384116375410632080347813225035353068565810927571844628147997563524087075980278702353796878474324050087891697622051964696506168494302983739294022505104711364478004458280131474227035724904313069721208191498461396322316142667776814010987301531925808515576636548792311284691391927457072850472492907545500552409200511449716179306134971944346701129955770132056306318489231954321303399837924131146982860194798837219982823688461305545370809555644365483852981930087735893509142968994135812640330670648358690880504948914436256196048325686989139363935045458178195783683940730726021276631264890656727619190796749725210001892262568128048874516842798294930751912106386573944765351707923101444439091289431147403991549153218677415913053259324838169894528737822719579448693840903576659922299765602538158582536022661928892633352786901734414900192129421373031741858940345369539428512574689513976140522892154682257148224254504055838133063784937834517409100101167094759192995837767254027938182875677350434418907630933854181662250571633563845427749424871177594437226593988158639656126967694528951985918607858763598788674113588469590308964571987447109494682325777777007361153719649750288134517029812574328554316617531016400151194617384098189780765559712367106289453782383408141217475848423931095684168189666117669059333477059122042397297082173765026726190168079389186521493219404070608588233159810818928731099418377106023578935723911696614335466377521309478291971218517583801260876790327978668117615220125381323110511437182282912570201221135458959300373732397893583927940501754362992026900821752379743982460906210606461510516897477074054515157099236154101982875093600010024882747306057262994445944045953683954698948985629349731844192864029113888628420814772072148322751481361119920993200847505328354776982127459852721936282961639569563878642172694280677690136921829547792771271269679400277825792972287259598950154977777838021570447148641911677116133179529780894700618731562901436937832317476621318406518990867176570452510304293188096162536134896909082323299718244690755916679366662041838196844974497501479907677844650086710446880523520360834337270834164910045961883384101565875935098933315429142853144166904669329821239882819943759678780699990750489929940574104986047340750274353538973111575707039491077123542262846738022527703888056700835449020050266409432459749802694415250140298490764546620919795987871195565737646761933071423218573149037445767301366282879979174175274806977612340010960329373146821416728504435143688541776472483724235019121150907687710449322021055812246943022692391872560058996792987110203989932001588880805197794325199993186956591990871575123386802535359438757743366165816832888929357735726745074434733798827028976326234992784385118428928317079708837860282297941296284321145393406725505390318227688453091421295319999128286856091032381552477466640632060821188311847806709194378977665728274557535485108050124861159484329510664760462073704559123981366821821143719385843433218054469840687810150251325346447361386072114806192456911544212370434512143418868699358528830596948821145172501589608405225911122474568313056395168529004328801652781680356228558494734739253166950270813077199823140825927733566913006448702584611195669833342484445836843364239352029060943435265324188485909590512903248271535478268718704125143428160760209629589618359580460445855332830895918114045161596846763899603298035696016378300358090943721313886825419539475424930381891615886541311535734848240929778398814358266287914774957565014627343129282860499853795768643459064867839703986982312428231972273528657359131056289975899359950549779255976257032496802274060094888220587292198458974159685307578886025706304259201940372800984704378125454441114504130434860271531293066222693938796354505488610991512904166705717509351642408351025430149007166679016154024910682710557685160365720234592384808854740653081004245278226364267088697852698647492180982428356801887651048876249683541795905467508013763186329367864940435834039401567024739165739955673710656528267490268764385213762640122494843769957128971461270257233516529700810500568899631248613558920077265319343382965234734150147200875968078585183181832875498603414499831901654751047366790578324568577952754237936249409903834742299920826425418206639332477135218806883658395355534569129909887089584898365755708416108962965008597821182428046097290360231121628186747713001922187314220750357209895097117249787265125730186623349516048433248139844705729541829706455071611617476020537694333102574365310002613790948765764053246351584883966024479418582334364209438681580175588403505158488415503275869472445298673047381770744807506887868423755273556783761628790214324345313734976926169977776939223978754210082753750213609380215160090608779770384393796210870642062147078563078335992683304996224022130336250057438656764370602068919491173166953711730791183374358244788638129037553194202201432265898488531609797622998122443519401451961603398518130905789459978666927216493620574896156819193133435602327215667094215934040362292769274615302019303514307642880028678502508830103902520038745689035019082581259697138972227674452488531901170975352873477964733572267384075367012747648482265408573335550335463788774133893998349413656095267574109854193094232344579226935816866216277947772968667697144560407701891102955690970712609538654881932953190555204177478524843605703300880372513676478654659853563624575460664753358460085347384869173207956451592971836947982386810733350832352165522356323316230396908561352383862092682657937867521390146158791311761648304310241454810862239367974591082211932901895945167709952394323578554950823051870109307929792205374479973242238986258911533065167809858327769210798229302761040446168545918295187718822855948000847538079414153927508702667306052608846723563078305238178865374225041179497618611707395797726844590100124099350207484872749931695669683941398442394657211990012599982165894585291195008149603844135885757307647412249935773866759568916966673549943212884364995784713356152603200326296716279203207086903525203873550384820999843639786794088097028026704982197441727777419318770940351356350847607444483473083022948171874197874313621710238745698358491419228678742880230710788796515041786983300386783662924881208564732222916255708929185857088092283552098515434765049014947796579011882383175908592521878810708785100052653528382642906702737638948333434162040433016515445876028439505034163253390996364109262894545546907470294343707986278061515154062741139435376938472360097877477032213121537048774001613582918639377010795794581355838412162169285867107880675750203188668226324760700796550433456422652120659425170488134884188600258804076047032109886219966845915931424784943275502057878987575977925833911599389399078233311719252125092552924349466138955071996032176219696687940523356193565245866055249199675847914849504070371465706223854193404669823706285858926601096062658984366110435915095000190056780834236557512975819107472493216891257804761500412361430806917428560326560495511215741735725121276985662665298883528466990699372844727535203452437430638247262536396770745957194007218515354481198658954895842905835637099210608651015102289022268412226463238424014325707579802661903051796605587806079977836617903069143024353475843800459338753380399321854210099474706760682554610044557242465297047514442761581965772745769740404639926213217787207762807663039063626548273601969003283623135345409521785483822963463428147395158873817145699720824845296219396281221722501583480179834888943258651344549197995070045050880278965011382007517552431328511089930995564940763357311818732043034018741367298631727928512512061688390357775397151410338778955334177520377120772890550837510522493480273722950518765777974553611285964386349416825264472618496598866432882014354940022064345922066000321906748832736580750879969979614453331423553487444441971368394007151542280654848690695760039282304286963174923743164251643429943443746710690091596980136720999755744376973579270728690043169674104165934874356028941842025570746654964868904658768170215376328626341404578255783954041189039765874404048828621826754770979513331521570605861612266041288991532474677129289989395101228784574311543312606844940856104088766152036028876576411842225408259324658632640056123558048997119448814235770006250623997067840448278293853031754964750133943927589150568727149451066468853489011687663118674351884394579408785425605382174108444392552398434714700140485359699842250031039170302249548950635270041538416567711509678591408026706496667031679526404539863809771688309533617800756056320242766859809090631798825398880752588799495940754735704346996487928801250950463877865509057093166363042795461961097848370255773394434858349576519595917047117829912077520724199493767879459637952000680869228012510934099134563833855624117677285746808019850551671657379629057329710021834684432853942675646270964152682753580566938471073650705906013942376500267161807747803166202718434980858543228244185515145585534785649941895496929872587175135960739368350772555909522735562773110503523858911725795498624487284174465147523710597128874368552272245110815843947156786358250353845174105613953972488509812599912814904355644782818353825263410946910112183049072041612569468753672928045307020580664968233040663001794702936197497916187589682717668767388238346913926374418173261332247505400926633153187559799300753771336845393327345604118296328017400602694209892856499620828156755610925163554570696095653867537132000893094001405401013649562484622152175285568916054801032466643722602287174998186462497714519683170340939071835084720042960060764896707048732542483945775868547520211411070949615548479309664982733631341544828570756662013327567212272235200343170568857179112417026550038063757347633935362138956846099484891250855146245797729037495823980921834746830995750434389121407905985923159543500516076561446727028300470312635916065550266570003774032282916261722796596390619980947468680753964827891726408035756446136375479979823588486331444227721274636259654398534718124985663228140108856505162822486138913124187430001414067102967739925451763734521625309837613291399427151647764471413001124309403402869355479032824843931617444219240968480480365382698440489401442311655023698014281498242259228158211210118189303931189919032158909204099340868319815828258420516605095594702139136184152768269840003288437306673886568247832582207866889835818005543129771758545197967325997593810635846600560594413961574634137424581737540261896375355059607966234698716129144306191562402116897166901460936933832118183680558788561584427689743245540276320667779051520635474066247160297970245717293527625293163552895748759101352486293437636406385732162057098170345249567112658846935011935264014067183212304807924489508293025330704903915368342339701468314950788897222803578914057335317276398387172547440908040888927579734102265324155135707650465878492115659935918418560903616832113088723341606865771512506918423679036829183079298008626467102704614682964961568961207676384785416060627031036427917270270562017278833944588041757657364988099037897377707104186784330249443545162399004802977866952144578141023295909423255624436185687243840151214392850451071458606411108625706296281994312222802470105052258516653506255654391716588109107422013202212502885952984885076704142279487145051043197786879068333190527468716250411110352847290311788025185686113997818602963337982275571086572040755759427461020683877416985970808187818396115636674612187204019402451453650034153514163180895241762700426973876524443348972494314968535604711250498254551679150221920189188422969928880989284904520034099542622621826864176526522280896841575297111748768283427876492316985356780517170978658531520115940749261162687043316308824394916444571859971721446702344109721013423778524046385423769183689376929950254052818642021923205168930936003034395013023576547924472528536432946590500303598813498479658908501684684843295660839664647576384970216575460651745462967211811494782980627321466923572924262900211518151515511159150176380834012389684302538398712547067304976979711010890559174611347007054591071369785359289825754671168325579583253402725199457831097668475208374875732565461484443206383613144396693383799218336894225100116330470448783097085712349761222256599407070945706176300471361167932502688415969724393854596249041142414244204819299596706732940178087710268265654378690265382635799888363836536254366773762673332286888232178676455218915678253162558491886151623565073327809282517556944592008847579053687277037382939837185940642442030316395758753954710201692570610870616672511785794305595938938963363440420655086246406546286969414252265594373362732756445828047217410845759130594128432281350327215467462760085537073011019913403286391007280058504474696167482557168692157715408067307579815287233918242405359055740213480495513111460347795522211176151230748305719121108117279352244585917832728665529564694287167716252975838160356828262177800853583541943497042514580347390870947036424139601305052994273891068864687733675113055551599274084722862470861967545489561115899398048562367164066068472383126162704975138475453846932997919855152485513630806798991345045877732014004565419709187465942966392850815389079423473438304490630861855049622319214639589916875410728235697899186340231445466147299781391542443763165438086099347696927451788218991465104861474389719190607010005759310873286379866680296523152812903684073149728183025096355914884637029288618013851948583360287259518496203797278929898821994301202343077168038466183900745489948157238258333583168037874156000290031126010793926127592398060412290038130485064382569254376188800563399469182736467737445032230910375015304808568193905600796667471184503804472763053286213940847411096414702396598302413710809367580880697583695029760736588858475017085581373757968241959697617728442522023443266879898131139912137875300180136044433509002529986942075722398909636981946158945178171144708003122260134873474269443087064201705464040894359501274903873275064953742294541187393629725494013143762636204822453976155389841615281216167994420920862204856097461130530009967847899176325641970509131499560359233300106188076851786610786107761535780199528342547482692054069497401586349656535808896405097092588552267381944811783921898352605150001325537923379800003914973444910218983042424346461889069946973549551246583835170669916160711377207454790764065911371440236308728797680723529479458495323092347922459267776186837087589904382627109244131964306856903868809524909986010637002703901380356006574197039850411428119199249505482889012006157732618042963290334836167139590244551811205851395377852721602584769641194986420457810658803110966726936477181110526174655896121146195714739166621169621576948780008657590157222897607178343455574512933179356072428955348800107865363488394024390824613604233799377313281911517551616356964018499402132745392720182023694993461385095485758759079486298829787670959749691382918331348417211271728831948618394014289270392085626438903133696981796227517721688098952363391656238244010559219938078913967593279419581042273387752249002352328880889982015290771830610565470371825413530378085241255330988651825871818768887150918850234093918930094642639932970034054067415463804545739830168979028150679896127055663615365385150920441901637210116160256688754898308474660567899523910644479509545597109755223729095679436679646451255546537609290888008702911211104645897932789649088023052661517122487970181034869075106801310389967880703894148053119066554308502993322735038101233746981816382887804862382881158325508923180512536690378056920751227676087154051514881328020969566040686691411432840416588778491017410676100416108461089856093599871413661229522471941078723962679212801479674109579362433982410840462309818604892670957970770908441315714414357762229250813005609126338570063239308772546677004292722726305856170795828955373882331241243818245685428028517329795757443748023424035604637104121771782826628249574953359603445180512081379578466332956790526544400651441211166810231634367677439880933138579791983220020329962787462454953396015876227383191884855142411037782739270624773431025433540266416500440730770703562341569158321416404640293480915035509577105912019592582031276933820081468579163938923555021355692617954281864583675830462731949394088682780589054107352807220726689870716769618566076246512995552562000207203737231122109183351348927435273807679202749512512655443772897780723816778855137384541850791359994377720272385942345457277669996315445601256964587402318137023340378041999147021215672938977823141717249887622748809035729665159881659484816894466508118342566607528343022263961945862364066705940107898559675737367694912680233901470924921733339628172429041852998856585359722277631490323559125030005014138563420091285980878516362047197275871159665645809264285542264290629227248798324112475898634507396790644432435918882836809182750952581481010365172769757071784310291363727209910684800260216734464978256561552227046667150644282687852809218156806865139692001177238600367730088236552510359594141332941580819953263657960273874230173749506164457810106585933597705601616533908502641818553171769023510111017058126648566643877238336954336974956545062133255132339370423110801909820975285839045126718905183805315217793697490977800977660328983733546927015144823020577249440911595470008855488488461372416944964140325192856293773725446249839651808419129949615394121350911674146991038158208408216251781782672051454311518160875634671278899962532071010279770091305362681227421273730867830908525162604569193274727064447808049262633359816480170045986718399095286874766125172289039614679082097000982232102267091501401857192422112785272906676751981991280548451501966635550324144628085450097219434772510501220873147385675819502706104685872673100827457082673830840512915931947102433410523211003733103378170639808240428900131515266079567994273907427289913665844827111020071260514456208942138814138381787076108817309600942725862694656717928907122541852915364942182349132930088578469823143735677417565416967762779061156282574401362655900865664811628757528208292100093968710307725403168567528470539788829926663477071394422054659844024614439615527958156359672254077307149947708150389364915092697610636552566848295082188025773314047335541098384637705833192681309323064148943148761562575810119493920885455556242222437188100388221824159105587373820192885555850935842982484436621505870406180542790782575839679484989287824859974328940050083210120865122743619230733861186136960997334614359838292118047311720488273694144670463119932971658531908310589943057239274136891165857160776072453211223374764519659660280906496835218283205718200321890029522128748348288868675330751443361277957646217698206169694600644652194247925816359154136888844084292581224247104013104408965664570529710150128451733471113863774451582904728333132066353887069067422241611064846292173046367680485963331751808225588960902964396581284553144602089090557958422803327302088702932722122897850503579752319492031702243710673139792317332068890492851575533156532776615073814905305034178822895164697907723668847092418806637335351250866774307768501119849673013898794987362297772072010863852049211293130999662580945166096846472783350842364570410554331310305014781997559959651364095962539806166996282875067495015535521034150629640481687762335146508936447884749223568117474166221019241334073474699259666950416063527292593197656007106544753187012200196065530854714390635552170361498728256082990465072485159835349673639820679294348161524023186100739872225956772410307683399232537909518951533951556721332868289619872001007443510006654224267724621503789713249087738712493588195408246414363887814365872688832709731124279493389615407644758491422000986230470214602147920971465985868624258806277932539770561689975152246630894400151431077784498773114395620430058671620398386971568106881368933034058197386664944664176944062294715048863379894238533350400293553344782440981866301067201300054617593097572785356154968553742091101548253792564999374135136096872996876194095140650017412365710865999406031949357102059896717535722840636116410368276973566671269810372300075677289348886428517003316655362927018688232873389165589937173616351309355651441529465172376086854345955813566364919189199669381477100639251711961258836710148954756323553635982274039309334908596838361675680141983650149703856515016158076791864902729362258024133157600367625495441090682566611380123972357308835322046325391047204155420472243581503427780137041763267208730138114688411811456202218712850664656595530318357497407361010384852683423546024098280870980311084482432567080929281837550691319780677387279633540333890264108730437122220913453458974929908790784810761897256769377994887476742022451744600511930101529431724574954788774888330354376760442623773829375481985476710937388769630631979908023355380886959264139139216925955998952270942681697089507522070131315633645060073277489921320491112028844942039653963326698629464601508994563743729770209427892158501070539246397377242418405679575233139566261324499364860022997600962549884694695634400051239919900130496287954168302191594003534262734163923978561002238059957462672344985951358052565064230648562584724423918123099557437339389467269014422051179747725036637256817018165861478574575616985397557377040476714496587542558090216173797106649095511993594713640833592480484126347922489753331872158680269625123478327999162781968903344497852628162648667635756270849738113131823543472368353084730280569061078472969924136411152620887191368419957377500707895340335016958054169787909650045236714470576276255800861663621298987364007445395195763453597940186935532726892499689982723898561072368138262892234250649722552464791044136857058405621151082917817244709095644508350116617313984762829661230003994204351087988946588502642289637916940350088991640362372481508459105198489877496298172436192197380665910302382820467842852839812998977465859568147310211752122204997978343804242478689623466523282391943130266621610405608001849209375539413443446131152008766540532453933841939632693420047974165660717345403404067807530283089391197807086952923072453584602018899817548706509479295365003838325254882294767113889189705958634638913011565875517608741674772551311983008481569398483045352520714596096717721814471152868616844528579137000289912082273619388874671245363992862944107660733056509510431326870622694566085727430438912173538925981097216731259614167965752007052890730663632327126642653832306054842268437632845172292766442021251352653562671026053960691451583662389006781944139780062392881303683542071986302268686955784941271807976149097443386587654665612381614969185725597122580387147982434442492468850530922677869291540459829469516701684983453273329643977308688152356714294454170826487152287014223505210740479164698602667642857476614159702293873641985434387774126456070869370549816877385389334398435932111274986096899807454922082497045496466871524482496494396556996070733264767225239313037329341450856932902312628474798071785966972095678827004174815568047058067466147057195198792657873190457337963024027545285461903745344332359850313692587449378069000287479720859547142128251331225898074583263367196329509780182718729938221683978002778342332467605832279726542275380191419743225324776524058641543869485590103629935787190424647285798390309470018069866026273308373500071807442691972228643353793259043973127433914448062525491192182994363893941920427575526756854228193206020428780627913983266820143470700856743886363830297894939424029660455219461564951955256713930620004251536346376650757657547528922802460271533992757661785399951920161294225934543626569201273844893889209513439238272053300859750424430517963294830715574923870832908708436895589635329351002298879624642982540006834469925347110330970125958410185445085679238268879890432815761053505468533132268956483983129051990177258141909003536975654566400652362003662967327622539018428083144805086662597632732462052085518667240301087260391996845284924154005137335860784092043464443051641386288783260804493407411759656215628939103667345365503820395978033742885284834212930944253851067447198632491929653965500577324658977092983192328286319041743454183247539835442228901167338990541667799334251169062780106215353091234168694161048024774872592904499043520220900286740785425533727415274495764042352843679085151920867390371084273150148933538116197135654264490002812351869143784089851773698284595330724151824068461360286826051636953834047466808430020604260948835763115417671753195238163470101665450308946994422857493999920409223386158800247786145339077023911881948347063560635334608965516518409861729248207427116340411889944481589082562271410712187562726549514027628108278035470191948746179685781651484229147329847387196117500668086892827650548602114379056771523456571377204519070047611248508791189681202371511588454680494637042951959234240754926662098212395368330629339073852225950693592665238833818756030809456466979038102993906817022232954968275188801969394133216499601316892241288031580060507203881647547618794798309809076872831395335024064155976901338815750613559080986969773512000046041418197207586166882047440702883090782908647556630516216996652476336684736033618766239291290110678210811926556510436185108642589275528361934751538809324640658420550908341187406287064624561913293260782789565604560186517382404755729512774304083673371331383194825149131491589647903387675490845471224616284254220684299663737666832909290366290772819597048112658526932274174545106979534902084258218849374492716225051158844856213428401489263318603475502943635250610961960044610676885495112944691654546587224271230826989569557844955366964867568133332518231981482556164292424756356832770552837958757784932738710237490878660212011899842606845498686688876246656280780382212009956846102629903428626635900017978609922098871608333242653060239992102187460749917104316305458498639004311661394308842106755335574507117289771775067812946474537094600006564080855557150863333338423349722738901964895236740377843795100188072453931097680241892420162480836977636547268178685116400665592076944854419354256173624982086335941831342663111351135090901463652215670681098957686165497975013464518916387019004992194456361505862864246034801763851822489276135220961568446568402611405687541869327453797437050140856341914065938890626429604729518959232360599579011660823483220860583238096715204482338700541058554465240371186276369200387788258064752002479674607282617121575816791220074533950908661045102875550014413822942181210113445669816916068201923819889761512067636718243733501470881432455491999741819102843741398430292943280898921224989119818747220798129522366424014510855588601020154480004979970917503108455783597739793639574908603552674235363896396427153183909783031541450497273617876009789205181082236673446837579955166422106681612198845350930367042402528497916771597842856326356254925635498771518676081954594170303611807324194983507526077454011579766262166098469886629145980614913599265027288416634387964354136912198036372484317197641601102103956031920147897460740714036524552765857816943626392005501177244983197959588980086128678144429495631892592929026892469484478088647429776941934270992975543252392759873818877300776855835251812944572816048444114025025147390539737079162160038488074386605242187754332402987932587544996095098299084478046055369114789176293696567938701922242189088756215845859614647093161090029377746642387404610028454768818727683595701435239764356646745167453028019770462621584663440040587417422662943766670695333432086721679245124904724476315675729070416594831348556067195745744908392918328275024440982786733022427838663244044029292358398764574369564603290671621343358889474416757054564961026717009655921392656496969111604765523324234256605600986768779238464788258584424990668521277239463809558234335966125371474542455187569206766425460100320651518002205806485849966759338186800155294681260647444352275522255060881314644452625991041848466447482939350047103787695942370048007428621607677422253701954441512927998585132897380974375683779410824147980304302076252372352697839113629955967582175159151144044665318646969290959753149881158255632532180268856347656250158416803198091392658512246069668544542009619992704196906793407706827019899210461092342488460576336257889657692518100172687544947136376626540051893938041906691553118605576283428143744901333705133099998405797853462816446329018170895277494587449774688819727813877462108903712881853020072642023594275476910201578599224551617539554377093260084213567676106612102360431304208028368636379715201992856774729568904176939322028534901870963189803265222625443039205013636768413258536019595385870770757250020360768623383553535186732845101825381682080416287992299942912894847155874829514940753671356803833323327335656490137329349207293639368842209942496937905029993245500366576043172145416021288632180686368703185306362363140495283181101720394411637561451141997044757266513157318521397546559086122017031933467285300966343969476263700461104548370086173183170635900739694134734782430267205205302172124364881511673779062627380307731151738638409635386362886041693936032425114365858031698139836454227367306594470396464863972608538970950575506413250172541164931145200621453753434630564017787216902058719876443302618647909617759475217609463811192146313534988549979611187399958471525930210040540798315192850337048044771296948348581118560981595270722645152592277510089813249541440825692947904933109017664408029913917228273268328783116957715497634256454456619463187412172128072257528645437708888642752888397813984515259999886392530799581499393216683340851575827907862292636855225232495026114326725706373721233202244879169295365849028917827460897933172459601620071026227580284822095308802973305272950164219571645446407959391153618409581160777741107197723943926614674488393780822305694307686207429060871465711103477989941842721207739995601142170784794934134402505606888550204661127835324116616027721831999600153447861938784715907816845611807030942456782816882171509187696330289099516757168295073646165775340856374064474440816968666781984792510727476127992829645176086256666971066960708707768042211394439270476425984416752818333888859780274682909748490770323970711666632532035511488247717973380715932124531540864494975438677362304014742966293206440954309235916607785774249612904421367754218341528069495542251848259726054072705342549557871852069155306830895112931207598826136053188602231236950826730206726678526196325731062090942015840571560824696085619212856387969329191106229868956510653131433008093408152161739508619488192512618405883577722423257750674817031127519357937933350962356459525433677547583827562702605665081081371497555544904516436136708615112045014417153928507428590845406841705105196322042377301303062004517488120349226904784699094665189799092442123708892370549829240002421661743123234750541864966518219589094225469898038069216281094956316998181277188055906926929660300225185620086276934120393462348216788397334387336690354859794150793035849355503161792978133358409466797313720938753283226813844435763062367165322440839839174726787021360273903954797271576925391687454661555235253747993318909443099674032292832806223419265877109036045593940266057699254404445116733923076092637105185569203050797247075526352231838555719281595004969344880205849009914169972509273368799493638148791919384896810848228573611089198915412878750237697428164651783568633640201000146750998392647752589371701456634294996614310890452658110813653247097501767595445280542716303203453971198792914605339187238792503404398255683695318957103869007202651448992970857185373405248905822768075826486043060598180589203338637064314796276959406786862398609168184501234130018381440423693810913171742450492031654438043789405690469769447669765221001569453134290205181741242579603936949299378364349017533909310785760144870818837070232693461012428115668086106408578158061298835263474562751083771746950453785461951321150058392866800942257852398633152361373417500778210885602560919055125952612637670490786569268446900867324591130337039488430152894628234663249177981233121188722025280582944936256286927431314300736260249132702403924931772302749848695094728013709435910173902670292909443630585678266304535795184134801391031299295743151505825823305546722182393158338652946007731875155449039088393339970974323676004304724804105926820620509987210396369350180189083263080621128988473989288098951854463467709210207362279145412714733623589688671260526504084973679421196798604154064600898515333455829728047369177936934971978303650553109633212057961832143798449116599136743430853041640287242210129078906656562705735922487400194052492169097854337122841003338581229675292210306887892072548938893400654609242035086812699186587031113352016922170448111295424202334399369333419427407139640181640723741709398629042880820835438084130428075312796787324979148064104954593415204899722809213050620425987812076491986943823133183853561674898755846045508181890596060744177702727671676402668515368677845941157189724659690518466462326122540026255690646859130935390321980462196868522153370551656358286628999998591452429126329990177552630289143244579216246087642566532261548696392804411529486733517890858353647525463714551588448182897450575380055615656625318996253592754216878372470058612043194627656705199263593763247901121866752501415974425048251498542296639395454714775409650002151456678998997418601464676855233844912754164880965469156723861369893306285685372812066373382701860790176447948960080883525651479505223929051739361616108449904149436063828109667417213664103752235504789992276588125398809375098946487211544380154964063044611174531930561356444012179320761036766047793969746501717992648582765119540180856494095746319875153534900480374466473752415410130808372442484367405208881244986956658524928860405961164934075093063318442216190469315980621943949653709783572360568649036943010318430168694967646215535635749700676193802118067093638142595171561042745162652003934175354962590359857284912327748741504258858188302391815669634629622117293539543656947100483798561895038638754359387065091908240318922781066077947289550123643322991316320845237723168814417593142986887333088665786608314429141451635948745409734648499070731207668827851587641558952125332573150935033205132808609761713777183798203526640273426023894092667705190391392472611927818824722140343404988960100930690993968943309781135571928958751260525713926384967438029051588281887668143770569188121486285296036494014408939462373563395517612707188890450283721511467096163645472405206638129791504794196042186323572103437849787421072114566159771351032917754209440788774721549667488305897992927465548913531157751638080078719086275083801675405515183367403758744511183127479658373626750795470566104562938026239789129711360638005601972513373886158727191840318519145467973531485477551449804001644124738608895384257776394330110890029298852245728249454978568124425209828438910253177932728054583677648147895502468464339184281430547719518819913416429729475036449983779018539422847679984148297570235160967774713697807315347935735457121715633358921089707817074248493706055134169613684140833977174951215062515721654427440224009451097795504007287022526063624209589673538503909234546532112624979873669812312494972127341438051336986516205032884863266025577913609192420425941649416905660390152982946333602862205063404880974001261719611084450187398481982641452975613979425727585029539271988633970961363474745491373223552682573289838841647486611491329919416654215511943407422090228069744494869558650341974858129621056845853320840838104061431542623598853126708082002211426748055085923562072878404828982661184077140952680755832986316049417846687609372585104316281145836532372342011387463824486527633970938200473723494703223676643974327494618637881749329012141012067547840737979366841091429058278290599711005625725925927683062217983972835082222389401560425097664106351548165772145944272251049058620716240318432413051654760135259869911504184841874254928981244157598683328563629957405349847561312406224033141378142930193192067076052631207108321643503134785195369588133552685033279376845659171726015516398829044250747435345143307513131710777199204325637187612751127597507997392704374017525402195412874138984274334343042922533807534598745229373780800593045605273651284215270472559463088763936346997443132484682870888757475601608654678642221310566308681577727153527141138352997813381554673090137280253894784876325536764850660951643927667254089991545806456258195599669851738493317626708412652148212811492784832045310862120719774124556655770635520118989792428699429098783380682416730258239554449332416099281778874483056780093531781768151004008392848606482881525209828902761719605289550984521603528542842400125870561144506818135698801866168919280684646489032817588354544304859082250586051977650028853124149501066486781765354585717126605466966645049754229207100002534860883355493375557127603135411387480700950222777263932345633892859897667440902555702668552286533517021592712184785837926102663713376541424917294137984535004836133647309688430032616543441559292669179032551158130350662730949552925136838656064236415408150648698872775279036455930201493797396888091153505698681212810963818185714269180491178838170172250637607076747851330547388016770911171332974446214059683872863162056089339248712394188267745737981356910522930523499027264409000046297350318910703209194771985637558705627298267018475452574768252179182236491691893894682751147711020276941668673834498765399631371969143670298089572220198778788862438559174334075779420724250557756975079534525549657895636029661727691234840416881663160360235700491649513632898133706355251756914785318539633049599247228272075311102674754319469649801030994916433266650737419743587976309632970679954936108047433244960382933460534701582826753666886653208390442722913342329095641063374811650072935100808515323518447533702134131934326032757249179696456744229357346782622752850147305692198614619801304626700697594077290411410537115620084076928219027947322495157490376677008003045478977313096540309451437737615963842532567768993893797542115837626858762210928308655952191837025662195721988891937081888819301840406350051055678635525055679156288832388321828997418898881065865063274945001952809385632383435560417454421095673930312069392821319425482390698905209199827325882578203235009430985537805895162366059476079120726176255289042656452812848948691785602192421458957298222522858550193420815958503394640474042717994382879379172545808938267332706917888602672321805908288204365676970207790893400801114269992967741500675576072546082897435421172615799198755846071488539999785837566989427956044232078028891513024170526647069569185519559439008215712867843712717800607622458549391090031816213302350124516484461670774420726322905680648915204198583480166953314980505870337345412766620858409609631211666720530266032888444801280133300040672066717637243894400312348225468755789412141876382276136820407966075448610446353128725966254498028618000107932154043555249987783204180221960698423423983829807428428918239870666997758207321968414975837589762898603052635647380209864647947622882490273188888630609998611913736976956527515966258616692136853181398195121994478547501691297624510862244131575962491698224066697269993747562602583661868145531564115064649249754953967369549041947537635414482269785242265246299011626150879000731216488042695183875449010688985836627704321943863179201572582970201623851240501223056159781557233526708749373487807585525768580117034804403764805746749182931907005577911118536249258768119145763811070640389988932665220501715421163682923169032719537719883635862132682289406241993369410171896598517626202261828835663166052602669999464670281274576962368176624022867424323768556995189494690199964476997461808962293834016738521617323764782612529044342418427783879341081289212617034944447199483873313235137912340886315513854523553886567209833560172105273763337978759770311568282121673131605757822549422379509780352200580776474144813218875902489255144146820452471084181097463447031825730408570505729480906428068980261968809362188466072171235705727588462744765952020790351361154312082115358186731128271829583610591976843990827766100101304809412281426293156769330042175141271963074409836134126212901061670029559743619354150273037156526874373415979090269602183275898414581571621138970281967457069348965743246221723352549133590591506198327122626800167676084927128975341526034939866233563966199947979968609442359780893406882180784895310186940982505291768565603257220580187558964064339756731695832083843246254746039376862827755404366617179841238119682199084075251714554547740699278706248266333569368001837022505006240837865876160381516101341681846033669338078622718688272871038952882277714197163091762619471353265713935237253457633584385474824138248368449063640264010998627962638715732835312134414808610382928408408238010761825059378375261478226361770903965158318149317158521593562494027069477440465525826136112541936058403239145232150121757309560860551766200516927376594944305399659180595848827520846685335486784456536693686004866081543001173396612807159290226222023550371242574250611552606436492067204191833185477144544896186107417652959231554041710786519144410937286109336180358241220801614989130269086657998311877915645029042288970645516419618705245910467951183853322916572404506195431710787580306589242815495145690181653354999527169380049086230349876656125377992194576806226987113401856910085544262893696840056141424556886445965176759115891401093826726278751362740486292249902105882753889131894511449241929430093334994844483178331700572213137182124265027845262832314225371996137637059607391693542051222445480284380496378814711901578389885486374192226813823429716578183050787134178300523558991413071793839165795762089396324806110760096919258559514213502680179523999266304226663018500305843183637331023962654074981566245053447554054620894062485110149683865615869304236905832526419859055914694226217026916251050742983801520997982269665466921426115671292350349972542696424543522715217894450258527250910165393892270407360584872225793056919864245694579094517378921619684868996125812430808196692792601722646078998600850298250350768431062208610670950097101160733107203586722678133379338596546763148705018617671242144686967307360863220806914567573731388252759328638021720697931485426909006578922478746856639820076780544407974967430002526426769717256427071990865542668968425244621038900134808409650191205692057301627222958503981919601533939417576120425358287497738882365306764616792968536035655656206751701709513548854384711801932863824778748925766763675478919751256425726314194058884950475556321252503871388304304633620781437507867944957165664545331917192863572276161761026676942322449161833987121193383959217284192140317033578307417642024590665964767474229113217352688120819030834144576207620451178841901493393058571855462273420608278569492538672385430768511605754428203250611451657254458076587425388532932330836220909748805426321730757301937339463774866514843956414087990362377131279811797490025487334068713618229255113581454880912629670677375700930256650209539538595516560076768178608272874465829623065352882199101618597681860098893289288295109233799948712443183301684054883337689962860223566904593016424384380983378022930705134837442096468514062530157557829427758489588640824453432499319037631917200950196227556614299199902656577953335234066279682224335124348543750366898815027183620316569669623705713631438696329154089324271633358470926316388265547224094889100991687727089680398492850534058465958798968358218402172116984025016921510895340959219096412908287556004140109009567765887334480147228768339633687589898209681642353413592619262017189917717279400162338640886816046992889793624011828409540898484229155678251185464417036296052372747058208581419865221293098805649682567218920937953669635978840445373602084467579570804794161813929158340879273442796051611831764159142064848319248769891493963678014348997226238894957934225731356447300309309339835696928331062359978281998904788248412421369647444834498027027964191745164534379104157392688797939862797503190861421913050436603845099136319679584817626888114999691873554816999801448927093087197251613415931292050599060615265973940303350943252650219538900456376714809774803402727716543517003570592445504156508029607495556374582552910179962109291381648826295775423006553696357651735004241243169877618447503935000436531689686416962389883151918038945447978654870651214565125835467222026218237298041910654532629516790575490904442595885095867007390969392076185094274940383496860508195506624685312704642676679993307778551133573796825626207308038789596296632977459640718703637999788499610679240990770054028733347674589605271237869455501055111825097368245184557766228711117919853428418497907776154923496312037961443257857259714503724338139791220603855304980459695195574735094028829681085631253044792949077326856915350983687562190688837321558357220592139474795986272494065626722915152407912381913002812722898221732110494976118697971501245288328488917231447726134459602051893221312921699701543611798826562482736365168738581065920881195625179030455498720702473342513390869975078315574793584705720582236873935180333221769974804258411219174612854239979805080339698655451720710095678369728603019080823995613345319919582357027329128397224953201352145550002271305638390178297388837311988753195695023121171294174293762585435335473894063238195368937130605935480730475149372067922365527471158438723843048012852146020774693696579679874609822284888530513312900570802648063880401104362032184380611625123555716406150078679132284160791133617171301393683781594737534845690169560402968190625340460336356780016122070189159759627664080319718794436968737271594134686094501306474220340004672200382470807862083210570199290935657966370685710571787706902608741134735051123250651115978213183538195183637806585144715409616254382699817444597755893621529739037819606104487490716501096908363197342647841843983298811950657011627626485121961058310677819530415109077054287618481719287026771464214989892369752303904931441117507779037270896284968949273009930434122477895939814408133386984726272084769614683271286231388221206342785485767310241016726931726418498067723545045051294807008109313267725864391411300583109052025959419503790490076014991687192611585066122288836104025070651850729229089883231415317806407729494348206244249038003003517680701811513978027612745222609667878974423217301141949931042736632946370807415349074305723463029004114147482092103536350875764313552077291232615597302872245204296839022859225981612489649612523814739352303044311340581486932000876715060771993659363841416241856907101662442951057663681306390752465028443576562133602466968918186377807094939466729718663948811836591884736539125969092615700918310843565136280714747893656443739343318936638882592737277671387371014132046242005987282655560999140482131874512583577919961722179282337551335916919600903904622979163308140228582341351133545808405888123068732317408402425661076083305575079340888957018620106744784479937832987791307974371684859121702975684706319824729106071773567120454139066057435033838939247547761514808326316657390326573077416566778727244912528942764782812360518815287062016173069115707725205617786712755861458094347180107849454469094316206326384831976789502410358901053525792699709881805491892440296927542808591790452443740434196824117576960692791103097564773619087433804378745398881564562293955468417918952310017843998472611265764943739202858630655028509927233125849447472188716858895893837770607551784377609375640486458495410856770594449000004770349184373414252788869430280956862141437434083387868034121286651677540594841037092903409436752537682487638434252529762099285501801284666123435719558680316519434512085560200446025367613481316543453191461311328491747495217589418588897548337625427644404744307758328010968345886272643437671633874131107217998207399445328599939314514144930863786464363488645831307177234633697117135849170461979663873199013553293422422718577881958008209488155035303556026616139226600496918895101464483622647580581552827708008688252088992274897762275212210069315455493275240877079571480368529921913652719608853450869396549774036161886393140044101354591846038266123137331362951176119228549993508281001384355550453605364160175420544369151131135767876913262290871466629304668589019881592726258118572408503530996009202043969219563548747105956915149143228857536584461946764560287620292413980244076328235079508435751786289793531418757489850371249094649994218768653036068805218921212405016198346523203949680189741348173015466100949823342403367441630364195117330404474915011995718887496290714200242853390153336592257189966448785686021255758861993232721007294768049687651695732677626057267441071097442003976791910722543179006167382959009659601931450430938659653116098884881982204096673700326764502743638239288424598102693035315028097216937750462048068804647410115235327505734416194271630264047648964826866276290130204072311681384413987115926504441574616275529175825242202940301594834344039724809707083596379950480098823945585411877490070076634597012355679782915486489338170843154198725514479899046396600364728554478888840274711707783695292467439264091389227318860524567080192832074216921730425072653573739085718570902832706507236705574732726266052893879679460269086441573164539600004181993296000891084960461089803026052815203602191471808207750241294508403878483064561143544847842924880068160995085674845292868983785730992199994822395753156065652948813515750849718606823361198149340362483528479797029343114235340106326621503020217471813235252194962558428140804821185180448450359205379093049312107288325744606079004035693637689264255009710043869722806295716912186268155000018732800057614345606095312776846764588918122046335144372956060022643667930373396997559937457196557419434873168337525454624520887875538881955840897099995293419336628712660810215022476450586802649185158685372224694233220982450380939919470541792441268625665053219796280167962410924952991014061581282952320540663217065977574791741821140471174201934339997612120015420894079864257587229780492390994351466303738249382351948740770531643205356920043886968554611120391197177318079418360715009434923455633447097055406944143023370399048730792728394262923273832420351673211597469617843627344247621946832142317065706314957482475214085694755869175799653041766519848438560760570552406956626830101653728132720714347191824716717450856953811329302027688458152787699890216910091152311304336538144222570082999746755576237751960440566776276701628102848022265934501075588382560831794814758468845308822728620975438152713566036450865168452475851727061053774809033671404648831220993837960676212043412315020859037646557024424671355980264431766665069739498086985627212197506369890281926409814127400428776845849329108918560111471221273259378734940976380212228407253826880032580571052692886220607412393533629127831530842375574042881773143568070361096198525963119160122532586910536051760612740376992883891656770998152290383960619402341952594652448816686187685501915773766135200361804824463110447047449737214997953646729089007906414120232192566758483556961398046848454943389844625814357209284990576968184789331922078638320359442061506335417181515616477451406111156231330850063729679675249409110260701831315806607843699552977536322745190299945840562177571118894857885547984253770373932487430014341436228770451870197077959080540105167102833126680776831328588102431555323974932203821355441264214767929392020396018489488364322078085970658760933224511178682886040667983743071951360675470025283323118098771531579174136985126872416059424522639497616176702267281778771817300096909961718974089691006546508663756098066696731932306166547301316782978784347814224405148086780571595329199686068478993295855621981539433450087656520426561167237097511327289511600895687156667956425174893580991907272712699677919775591467206477326443554955246061356782438718060871321841342499128917574887456677691725421548891057754435623065961015237453204913609001077827598840912476651924151604918543299467659652744118747715859178157068452135027995834962905365711811783916824766213516907081648448635577582192561358181359021975125131897422863854755735219385139513187370953926227384367260677774193978683691652479443809199842701165511485193457843451857365073365383655625253033812903138406680776548790676272684969504735055809971321608682158142190793177586629141944415001941422271836226785318694572469556069061918974072090740131167630356189561806609841883093325741956511165333912138727502008884877037795712283074544957484129341198558790990229849634030610126115421679770394860740218776679440644258233114452318268458815253953601270236099167471206101795142353400098420109544963006988967810038379893533397090608296900874825608135269851057245016928845791947615478318415265338375615457839048689190032190062184486713057342868911809441438014546306741843257581863317321283759132922693950035520411129403023642370340164623469373639996325188786524545123305043729378943080999776564001523561981910801272132152652780165624774517177246014891506601018441577778562752796759111180867493253142057303150817483633152891017473049929617104530343709651276684085003166659002522149209161850881918189140323758736570125983253460968483154446107173918559753979193725621544733078017447701681724173708467537223762494901878016858771464240147559852222830186380585625245898279740085123508775045374159523298579943922044166617270972604005885692069458390971778402240397125946329792698217824210431723779392229832075231480445401724615167998721904518097000132403909525193802377896545213891382852495586118510030510341600882315512354317408761101509191742761418842320998654515376460596388220008055875223543908045274795569565023641175798615386454610454453795835494677887143752603990582690326671320828739241310898272831195733894506373621228846134981969610865107388143284849011057124302228582977316154900156542637800113366113879704601300883073800985121013196431561138658824118157200338563765182799732552658254257126344079838633691728416328930553065631171723360742446459366597852486612644073019781689415195045149594523874314793391624152879949370806229314846483148295601503499470786121461257235248013115928008791892917778794842299189955967601466753164684985097438860806197013292472775610006129374358685746841352931882117643783800906734003860265960775705557802134696760607348997293648937117406181395269394710332128871697625547183650515662057564325101930554857170969430491398755526543348203985968288957201958274346106351119247310525858260852029308312826082223509958300302514623177645152809316542638926994945756122317232872917968808394458667114575681808281945416744057005281605253106130683935035655892420271556345502382849033868949088729846910877391605042554668887054125206426970830152494770076941090976941691075694627263014445663949029298205538517011194184284036490284175545788325861936766145531353726553465389176940029902034943587786385563483194138000202444954653554984326837037124457266843610021312533249281133445200963094111787674271461645896416454920108003598654261313740787266170386986443419120173218816066591519453413033541450927083280492769636318209737617767989120146894821169682564719805115753316826338195605242223790907902862904446934907005689362599679123917217587913720636652810577690134439956985418979738476139126371963951262948125620834578978072259758765543105262290690322164346429764622691929645839692931919772879487528398100106074177975039846116493544029938058496257980537759423398399194325978710908185920027380413641362718325955384215694815937128852651738691784155405886965133323859346067974723977862158139087061547804656010905024166030807069381103399017589923761222633207539785022536222350166452514949189516297416536372904319008842768581676420099815020295658790269819197070145681895535981279826670359301442150210173021260467937736872929329886932682998342986787943755586905253693679130744657220044820862040197516114823251825377239420351152317932769469215211722630676043886286156389699502643920919086720704434939886539128556065914902810301537664247500183440216588897091043944163710342001032723112176657160211064040506574932142339576212057346500878571932409294015443410892441920223439646737291037271252879750578625709415344429882048662219319966734110722108024546892889236657960845723246751129778632266967573615818909833634938464285029672196735008893887429892460731124337600654323938054900038591877983838724890689539107125059355724163724439704416880636156159573648977878437373598410724666627445981604853532737392640453793065665004906280951411732981583687484794495919651184204913496317607550442417965868443087901135293865879248404113296828892872631704085933902619936571310121730813773719425306269903977913533432650093762671314657430097637856134677268960627312672883593759811551769226569904265862591272742011827985873455007373588974388060234741988156354584487813624081874040888896764240225309578971648755764627802741614984998881173649325867777328075517005364926003333644686706623886411273747182669386926661161242439467201907659156137926998778707457037360516680563905598078932877969624280401350395292263667043586352683848948190435753626355659591047206736518961574197844345002526377854782449680142457290674626763035477760269973366805226716856303753509622287209814722660373604176615542793975811714666837766945642256199342156944867946543997020414967678893977748929743088312150088009818212661780773534740871864729780903499496432076027423096430185756616646193381111024712698845717848251843540580591107436207362538328671345009125636542693480905806165748978993068630416592115449245357591883779754153938653116350184946189833166327982020721538747500364127850446391880435619952289037818293655863920758000144642918414493265754078631290580816223879170229843570046712048182515869344978632650238153092496638221016284907529177475178613814745937265034346661524397580772029110876651834625153047085255268223420307282665655742984799863558879927560804970432863960082736692343963925051760161324271647831630814590601431537450510423543555005000692860317885862866883504067798382198826429026761354411849777555912254703097200725806148562162092779851771876762293364540383592503547360006504306050748303105600457895665341604738807960710243019523526569863039723208548619061174328259409138296026352181572310925073063802175491130316231843054246829255506729985112538968771849054037272801308515771919619750664423511878211358642066944753888650744238500205692951853173465852500273967937674140035656352883165692850041961717077965917568216564281351480292571036465783238307889534999407032587639970481339807344480556479009898802854154602023369140701478712011426272612294821529765372399882270605119606122591156285663415501120587428997415386709603754097561048091781669384432882993234071439811927836565203988487805424551486049506383119768219976991380617321889473298115806974593655843908514714869381467781930395082570974993844849835463433732950498550450955664757978009345725945450085849873671354749954766641927280713768649479339332023232309619760521113173346396906246095008624721524388371908712274839584596632554829411013193509604800133685811749123769725458579990355654114434449953230609918208814552286806656477542431871882020019558560129813464088279610231128630810376566857421729888216747150939666338246695900779149258387413503568909148396225621848185951396647392847931244359635799161568204902697703052555158811258410534509911241703026674755751535150526624392050247075400800356769072340171323249067707601073318625782161230502032914975339657692945951084801500944367585416760934200937186624710687188707182131218566827985766924621085879805149357427172589140898749592329882039609124777637838700528395483448694712535315534827374143235657805752658662196563245505699634671701144616888064457656626898770337645111300404674688288688386498888525986780407018875469413977121511880994984997528366961970181707279649695185732753223512456495517924171543222331749239469007419648572859678382289757995552252371240590686912523631804617499399791080452132238886839673429386153615512574383858880133507552165436588973305831813140975954310518434356536966896232476184016374737561921502760946693140735914206007285284856687030878953483533875619897667667708276134901055090447705784700809859570331434230246907555332665763747029124526518696282699904792094036531433464733339093129294230714607222907613207761678322714212383550213651942283006969967355608535169916691309131371218320376745786223786279383448597634620774454500140385794180275326557616145284275249023277254875599778201668427638796870652744603540849802758643660064915027404289257902078292207534834605963242317449898406083411313708632622544044910819335518688979401041839321531192232263592428133131726701740632612449113650858524502063801528833154976392973195388175772890687597777570985098831045602465800010268436451148176563994573361106866427835121127641748810301480463214558005819251772197902820992002043646253514679255514664467379060871902242750300567363808742929924520831728499146752512172105488380838360647327127152600059923132993607016777982346174305790534571347790530379066574414624315569068219596811028683928992702283301831778010653291842165467225107074972349237889929590430942189577440160524206023087400747386212282847588837504386577617955893944286480794170038598341788801593159263374661060905959048810620042888291979314785864036419529573394086366609653599051192228443257600810680320477209840705661888303387785700341591034079688492962724118545510660677374822779066147368310944278083674878067810386572344234178975778853430210089693604122924298868163332434721085429701666499599754479114000733080592115514315779671624329268448489851135715466590436618128836052787182450593301801663972720955933645083049447550547098062427543778365491020554501868547127299231289512231201484448606413753608668017877831968854621278800530197936632495953861177525262471235763445577529105203467546858220964361283406817978875135915080156881233460655114465177477819473728847231475607732853536708842030643647706870133081525514004040131900883820870612074883861861482387174985581306633652665681973772205884845252345407947987583007461994646987053689151811021192070339172996478944736901848268345422452798415071363437405873086951239743840964737082718829883086773737295142861049445097574805023891205376116033371402686612504623527537499446127035340349014130994483085615924827930534578744141084494827998878783848796538739280733037764328266017258489611307833087810833384850609644278481554498024472451921565405646097761825988578414807399133373585584993517262781480059487467634712217996462072377372469839974951077640051212281648865076181658105049566702836537380798665394229896936657804594984044375412264432152534524549238256390872471737398705615663987377083734038448747378630197762911212598895946077134668205217038805810240895816264190987257988990565949345778359536027663295604488059552366208223267489616883813990200304169323742692635867097306059425239994785625892371832523976580969538509962149446877487629539768432841280517062470288503730093815888097891342433407436564304750388178096811151853150586483680472372370867905170915433863705625404927169082528934348971872157324490278291017002614033059603202108899910228938198033909323177706100320234011079955907818344032720877539925275597271982588693002404765811374605491315448410161499091538507577977886356074452416789578406457369830792440804507903958910470374522843969081508120234132192616175406484187389910732277402275308604305939072429603173887882592587815582358812067573221335127143817680252833478334130998419401966483399927588956678721225337879150274942300105604341186951960769520027129112151172814881477682703965042662654640769628348959387897271962058517651238284458503524852064399523351092719227849476402943875963244078685704460790018646942233207407266445876507960709811829644520801781071712116685617323121977458880063588693285365205567861237424192953255222524232530761285456857778138132542016108757181837152813648336576208405673633596889023682763197309763124575722098490702453397656380182522014504492157987149347296777173024289550971373208830966640800274465475798401013605733127418955487629083027897778857405809098585563726481274055412122020624473629648867894966741732237467876865191514800418985414104542271108992269159970474069992847735002260149802228020761122424653172845971924003633617002470011424233655388761691274020408482074226469095606647825390587508140253325341806325739654343715026878671693808651334434464299550354632726018507323880373145626986353444156398564456667523484615077067048920315748778661453900260219826531254455314992129989729339602734578423067447903294413954777397735661674823521074060852155072778664280903366302154858098942466626407928427492226334148388479012737309546771903908743237804396788072769271706713686188396501319853319409050292962673026606111243541121125136224472164946173318726904733510304569997838392604435172575585279952255417441355583931700281621830831999312926502632029720138223360646415259626204653885508946347091754749302813056071315829055012335322480125303285918691711032748456177787492532422319194746442523752081646551900285380547796680313216397301722851224275281371870501064344121668210854644869785896684623083201836339934709605706706144136733159172815505956441178936880831327355996342128389990635754874785723281470936809342756253640511846721924202134843503699948532136977326272456737466060366225954769033653017550572905847518919265528863887983652518719933069708417159329113540050215752831201765229854646922579446156150396905829382963228667549874371997121211325118699700553453971017997960424465446680168370095847095095003201974816752016282766833549460016399231430167416208476332461009959023255091657072187392569728555471631550148878731060058482131127065911711044752008553802104743902911485307307431413350903143728375360778005149441947037103563516314521613047252194446487316503437250239454054173142566028474333432755642941757104555750136403729949641089954020715009283264157191351258674992152770594399851272068210861050643979020661478044444533536317443200312248995040005602895046037243750773965326284607011904345044962124532072787346308730507425187335045177687047222468524674792464188449123718053761599996753267150220718556252352618122887999640547363955376122469918453010107933816623582220938463781608024198372659987344031624639233355030363350576954905467691625040992159422076008477781673230797727973282120305182899493876714248488654504661404799995990988793242788227892270765408452320070102025260533916699925894394524201489477140650696984856275002960126874303525074219527916973425650198945354129213577460291616930766197728212997051883778428630647994872535730734602988696627677107762723800302295400356028087896265730749175570287396541514341834741019655408380661668512903665268594034699388877670013341254555690642736146447277157605103268569012071472589372133722816582524441157760962393094889437523542282513072335992458628409819218007764542046691463849516840611222897538532860948656261381309279908869476982398439760089623226445258663272234275955609867238719516347957745771432729184799001220125100885299876255345364254659600219089096241266816057275000935076703142485307599886794556571744088006632344450231895134123432664325223162640482984545450662561772808437466620326115544727888199173878604295817957176800079484132911988150665071666725577286504426440776616202858381155696841426313137223960281136929635859033728254290919639561314074694369802919452555770990355144645677002792829709656542969998918965401755541471183924983430849414129983551253518680691794349142790902265805334925266570064097083038829086291200031745615481898174298899035482760764285114791339457716604349053172018696621736424879174907626603460770079254830382139819527046306171952239679760276379860291376328857664765825257246676006729078944064972421411068000935438477061155776629693327294848297016171674474326851363785052722298980532714197905218204611682460798261262017604225491987564842917687854499678871501395944905282553025472352283509348215191310303744279550092062690756977321507842795592449104511145231690296073868481774393312042374795809551646329682548057199994429682417153694356196148800804102137870140634131874082755553635005669380304420100461572522346411221387359091794870352072989369586941252185855933622739720911013570255003479350319302374641016246689840533530624598907813360332598855557532570370721672866578974898741963920229906567665771912144085256886555440130326507185852669650685492097027812176571286005064825096708477610162148529487482325470859262242968785647204711728054589160878966381715032889948725279579261024959921272100241905045194535671162784798449499142289018457473924532145653029792254977092697557581773070968847713811137970517273867423213773246844628604358706324762290531156525542978233454158461157764611850554630470466283609158129027757785285543016770202878099347993988941004655981702582288794088203211613837945092802061749433256203356294086197458034407831629710412640898839461036364912188388429301370389806199933875858971540716438137577561493034055368841556159579430238450928558563361669601118904088883918657740880762981166544541020102304023025727748035979773320440344628775465123014663725992871110263900562384043132415201058451499264112530102565186980609922233303485956025130767748948299255988606226331997234919158721022347843205911570862292721569199023032185787373612861737920912985798700733797288048004072300399810651908392857698245890644246222534535793291416497234324029182643859321324961290678359910002953998453507518622627031719386640689583240891519654815863550175242754256135574252260926852945805493008837866621883565436809145001745402556120658410493548808529817049434457840327097758223335302870882988233857633278162424753228430961610315654152059510890393771731924089331191282933193374786409410353625301591754620180316952997936466964843748935241899883237302241158696723219672087227142274784331238568364066302329661677359356340007802399757003446565213718238899665088753762030843203829576031473965242477759987677821339181435286202203198235134906592442152144760932579011751954964385719150468732622590932626648420211125171653104675515432357006861245846669920376373074091188385693640222550834166118550018142263881016953180896040576714370281896351930894878312754585305990993318496671474557266360940437802007892403911791563944433006677486026486778220937532275225103039430905738424361737525255084583266292776817534723577060322559535204550203365168061420339097115024709897422918008790229650701694149249526580127822830299665519746102340880533832344745291772863038952795628150978009918864038605512055969384816236883210249054279618438003579560766506312548071279767764229699323578457651960625082499377394755985520344309367198351698577999465651969007836215290668263724151592281222746032139181435942561567235075640256161283871017485665525404273059830659244277097979762549309400061064570123679997007308543059633234360184519233731463781861563881608626239368779755334498436990045936913119796884259011658344448981878170188590201709678195058488443132664379268573950115688338685359914950192842603988411491072426082284066211555964527226353203120977750225511495746981473850591250193984357263779321991987858394924652321797726088580353730601796478275389733467457318047093752388511471624266770023110234450828284580756764891697958200215580958236385147736130258214748563540880743979860537122156665862757539597889121570888759702311453978789978439108078302092396961601210347200181032180655443868109084124254485202016245172521755770686634737607356539279558522388450693559236647552382366766864654250553914592347844272314000103144855502077139148645084792532800802149521789673765834100918897185526407220307336704622217269201717318653330958614999657591191780730670085916518120219694026822384199877037980366632048625156752431461493008239465391998600370831821056743746138278974892367663178412716305484265126868239558390665960118133422101409963791416441800863029985098657904524240619789074784425249786578860789924257567882241124004686811799635433221154823181878078139613540316239595478678173817849063216850096176332177217844976059907264050305543401477306910366622859275066134767800199355959663369284517419466648186242877413950739008286225891058691791211258685410030519217041343287339866418289875676280866693291120956775139498912480990674744460506358703705865718452433861221251126129315991814610693799822378617927777089038041365811988613265583517896993366725464372168956321297320962849055577860302257043409212935567367115293384059212136254070946503779931021318764321450257090074159539368373252196157953495848364925570428021995097672874773780146454211198670210553681356308738193865781507010206529488148918021533198715797599640840613850865518969572201427961083297135573556928326308935387660072172795085344475852486272788576253375053581751206917875135748911786197858599117019677039653923773135583698314366236820655602559257686145041835991727395417807108005990929323677597162059053442900881068156740493996360988608478958786043949516420437530494062475032121260854503501111146106296197357882880688752447755933349032732250586055270017114236976005266047499874016171728791692129287945992026653955308793441168374762165407983263212698655536560695606503273474965910376006670573945903575441168045796860755577555869461390953299575504402397784272107228175873604175092118665879956430368168694213622238864294627615623025665791832478795737337331270020212729399423125743544672819465921369985378068443340510334017341926337900248455167121901971213799862138022750732347334225128046639796777965995587262639922321652899061118704828242243476420121786663249781728093887641546905365685302012073322811590933959577442507002123002737865416603134557560771136071504426302964343692425666782548977622541650817218107420342661574135834595846583583058020198004316405777065265408972407553632521285559069507240228965193309590940606056511357366990381196481648081962150438216457457774860545412212579115186388572619300025700004956642383774728359839591525707172916516171069924231729180034697479532381019321258775363262846068341274857825560545940753501719123000036615670919885825152921967574166001492135460101400959553911616787731510276903526687319214575205587765235454588482236383100152770851371707027990139637013732527565431137702377595445092063420049130817838653128475317944134830888619980294402942646818050787500661529789845776424881590186363028341820188458748275344146836811248491143489684718267588772753665758438445829706184658967004360158727482080552078933924979967576828788787429200249720557511659668193259193953822181935885225664326971140501923677124849253987700620591075629504079826130404362820561137076482137829517323434116815377621378583763993462702493325937332639189529033344947621279482979348888411824911550691064626527942875001001465012293917076684278413020744591525762068363239883327512822919185824699290830934246016278068148603697709405289409813673261703917334544049031710385884000926351615252293036960421269118615086988295085513435595509906452041420668506713760607101812101405202738343211319287070553227083483539574594140122909044182995768175060379557492728975773895810851709481014258353802100378898345684441381362286236872377829620654178466287312131875435630413684449029589126487283588685477080874441215704203187310575942343624834822720677419478556122288623588681968593964625223765403665384447641554422930577605467276767105618441798606039751456019288425360372035865466177153728259459851564316364103027477468975607807592686784284208338818651076990292408717250269661001092519642309199643361514899191711562997646247971107237030947268558602417624776702378997259241388695850190741592547386563287936587770238126822688832341067829931964063253431881185726090688622318015078171331133533566071498781707814490073157111094781462076209978412211156832911337138607608677848847850605501334052092725424448404797079913594524035128466009348628880327476243647349225448879093365822868535203898118546173625140332300478590252310135774707502716048654426934166814664618660108990991262327622986465000036387712984468087749127682618861571693394409318166359719693030519718383409942103620726045356534333266650259714033060489140429651635631927159851078932022467446291688008542788082971801115298963077987290235152752256892088618528283191055603196756860960140998968034174812908907714268664679156540147773200368875184191337167658607948973669476163493875901047701056773506447862087529653464749139008271479989232028348459667196725492378467063177847208311115823635928908323508748445444067212245979851157114055247840228622107935899343636999994593633943150925992690204498597640917780554760729054484297715041075997330747223405554418008732520294152038845693150261385551308839960325106217949876983705979570683675723736344925979630420300529517671016354016124903987386974540828355339105047005022415409579583155761428773004629139669794611749018595356890599795516924549855270315080808198832770233324001807534498185454097644512787375690732949349270781935456279437338360785534316248649101513284912198719650346137899338316334129754482230174261267378608199653860903609609170401562124597824428946930806406219369750120558635704464115208658710782301472108565632761210973072809805438768187516888819378119911976669234830236075510760325497357171985563910164658477047868308942615166957711362580473137177907362805204959253420335864990971454544121528669763661090848164875418304384581109925663595663642971383340873002036531852341243082906791960023384965069373342843706469264440362662715539250230175608518890103441200322475829979875362503600921991345192005540952594454897364306789158268009195984314009807017926630535937045552853032747310349782400119829986157662593960017928673241397956017228546726630199827126396769937643673266030235165350127363831784741254765823042800162664801581807072198099004004957519776682263755492886802192196784488453027929411069203430548790242028257266595748037240838067353026534625185038692959917509532490607093234033239628701781485335943988229353537285800891981163935945738210838376752244822422060352602625151676623409744405838036280661496909881498019270909093403362047947790768971299001815683474425578927296229985609136385046468610042753376572669486818987972643308877218964123438522260338165434850943763107176050078541642877519367385600181544042151022041899096502982193290745231607198102631455030149840332160950236956679336619721012590389550734592318423568926820767907730666694810547249502959346147506039525224483627240480460209362920365524769705803074484682347528316963601005440646211878685530044275832350878490212849630025655355251200795339714026719507914999341062565576400305319990449571506998036478464746818613542804004676883156857352683319266734569446099759812721178699179591798369646128200149070742658856138400214214841241025637729814624887596624986164205025464714209983574278030971881976431372729892739278993074617603227943927702856893205739194680418894383738580043445800356884047649546697323864338753560916551129864600573584026115357497103320538985497286073774695872884494336793196720281237529040623057523962941704175696930682538720477421426738470766076609443202585278449606112097121427023380553101474008635634194574137647542351463734993582876567235866561250566175564933976871294536894689111505119790968093284466398144101395799000647258924483399622403550782842447700362491767507806730333927125907324378419177202196715071343923586674463846500214126517672592526665790653307924068783108417930903242748134793736811908349873946221218269070189383360793761357060721927277653959098788751505182228883488550431312766665757436008700626127454321471909235865328039098719380858553459494061116251041217589180704351338749666074464710544223865213320914113586890130043651607986095266378180112192572754870740046661110063827860744856549319524024697021149784415951158430925725757171194198145371722525414938811715836988087464815736246547445245833832072988526736896083318142514037034274799983480171163432215661970278219366901984338844805906670284575296722479665625453630589637159139962837791202014617979043475853088332328124055293298513417283954849383487909898269829865609774567801570540019140889672899581744788427365815394661809521373878090814264284669646810983975197951060218981286406904691841497635323625736891492883484149299761489137774676973240890476174133502682378801150353448968776557214603048360698043532800591716526455219991003148247092166140565476955578422696841427358222746694219186216452438874721471285677497760040370110251797449530512367259519869674446420118696767670362047285449843294939363881799332291768936060059280194198074860672519911193946515471773376798261059842491118915713898748123283512868123102059754553587204052463533050878616108474284609432487187002844097346062353678557385369618731505866095374747314305890657804257155587651062984966135663507772939528816819457148838678303517129271212155589461696070103044653035859658206247332487022700503069111901704083914425900041639543028000165029160064470510369687687157293274055677853731138963363397200873113852673794175690499003093197799896695386470900902743009158264616483773235400297425569464667542764557099244491885745690044036728855101927513915582718285735549119196691706698769983148763052043456643586754195967297942918437083055838476173230749754958322723811621977476882119005049356789659680706354584798725746194428346634736421617931476659239615206062372042564731268786199457787125116794833831428769104923413616093750125085461575242713688712366370591143434770352754136742401338692735209311816632156670803433953793284251541056664441576794868332974838609274768699588672750031146582455908274785215833930514307677149288513543482268594881004954206361819995659337043101461048094981674866466642309566716084239606781478485470663235304101609322304033458826955783264578378175498066110681369981615151236064076579039778667159036042652679985655224936036795146278913713023325748261198491800722824312090577847512337890838331481276768588615085517196543936765451363988455228085205988622280446316999145891787879085944995197172881583800125381422071319035239465276892258001512402868811576974406243645773276667016344847134059099424113467865902987532246830078568789859566887079309213573099939416424198194491459421670567238907459995248545425640701477114179964551256373265578148536443658175738695612312646252550887477255347317192528570859673702487648788301131334178010178859058324227189653370380285955385799460131106843782532442449415426972376727764140222462156571165689797381562569389821418804322474049230153179884490489704126169501334392441310399065824412619749405594271028444354619395177305584087793707585914390856580014806732889673046041477332034121391248456582903386423198606793293535765745922011158664963133136653865642916861260440529916038255777737717819797971311724466858193414128392707636313157554156655285846114476903835548045605023464051138466828410836183200761459160020780321857464794187756374730743729285019439665273973538033033364709459829176972506039759365979932650699015086368051301347624427256962711706249224339116293519004994339735158702705494819247700404861965928925267967955820664538268695501265473013862642378188245345379469024671605114667554455713328692874361709803979959094504229532255928530176825144207668372136004930056665390450094776156053097619821900391164390958856267051515091493465404180803001441032060120062503924469816888496901720426285001463529962226309067331072798524099100679697844327974484788657793663709959870303098559157354888900975292265994893641031421588077664868967037656761598941070135902024999606282000910427999025726341259942791717016856407632741915415030977232214947276555779231215849352471264605883656596019281648916248862434793821109481115494873850338254674963709719224756075107637958250225421309614678120247959559099666399793837702384403403432181186541227366870867218178512771771120977710220883765611560431130191115197539629169230329421332176050242178019387284131621318842084029341227118184378563225630646084900010106342941196742397717750902297406184836202629764285168331581812029666978202756015436444843974539237000614896774874689630565341429840121752633920276156578192714387170621365093998758067340741243887850622184806430797024779360295857381001225935382538431215108327021511711869185334221017074088464428709996465185686529656932896533518722343298021199616883517003536694726745333224408069580771369603014123793432362710600191579741214922233713029368217492926553985074891086899042037587820203311726012551991839967026137774702211064432980235205859273868086627085800487744677602847499257730753604159329736296058541289038166214938277337224532312400203652455858446683161535319130683361812402768388132545040274287384745614547336965857179321881274296629015732047386511665618492844513093899069521197925801991444081259394564725191719190018843976751907938638919673689503484089711168372037151304598062638131331842264139378281625650925393626415955615625750942819352380789504759240197189571517120842390466554407534836522485275368500185517951945624062242758224897801256935754875503600221344062886381927648229823646481360647496745374729163023375041551483938960768551359456593859601648328293604841176830159595632382552112032305216677352589214452452040880673120855856481865642270480985163266400444528538904755295323057276523820274673901280464481727304881466918834270378173013889567466064134129624405658158421031237607816482033846371272911941571751918115088282844869058129367123944492200862568013411930767720888577902453711927933589419457522878691592641957601175919147407419914977864954087898577844396373661549211435193170026596183225863340214985622416550249967869048443997191268982264058880335874815135969042683155281348282990758968942641228444106620225529488893414271490253448129065205892053570219074519479297852842448266467618290305979739196786232441699472167960543694333087019309073026914764557503084802278536097180241979862687417469295479140505028816107499477359066718839738982762638489959989931659584588205672722414098061482422204711701158928668850486203530366483973092502193645265448366045063041712432439538506348930267511870797322790554875894530975386499905456088551852441211927490946079639120937406170555450168491726392079860269926101452530991001364020608793217529091333270484210208335207230337244689172263575096004499613526055505487465120580046981561468345062789960953465624575056519918156680159803600153301585112570388042668894791867243090851717655976054458932501377981137128775559843418570652359008624419695684025848244277310657839359192278995696988068676212795653863890360006482802453633441662885937128579996238126891192539699914149018366763759432118204902372346861121239334401974044285729431806307298401291048573123806645367788269419517217584187005765709550747709033032556365160558829725802094763709748128892423191679520973942254643470752239122594993255884276957187154148148674374447536775341258177217598416334246370635742909979667751422909862949209382118799232250405956221963239109548475414260233293508130283037529886130924305264324345146515072111644953395578492141373372222683606717071973243829572627463361376055879872120312106670616310372259549558445127586823713448969149434062278211871117639600528182737204908982000020772441591305309283799512504023798362361071296691238420684615349765407017725012522121856126745215186862692324331607936715433998130490964801571746158095237218981086422863015242187745043335475861822929352908471806106729103835799379787971234518401062367467105588923692446573022535756867246961021673598346433661675434346082572864877642164195362469498466582432829014857418648306765613522740934764661387981865855921168713035491575906258258410562832978638049660506782546171476809044640445838839594003755104446533816044219392206796978403880733022683045715920496554344256702670044356240096862611220010064491354811380726053112326823061268536085750185793857542836840381353417923675733706113118612216010742807305657701493352775096858553832252276374211313108454603195054713551395884216326389069774214685340757323222411609379743010715049514930968130231952584004237423486569153090605189931008163478458817353309546496149014871265316987749446375722934995397855057034475566383611864742041595802374819572277005841196949899340297150181360783143712791024876518402378493896263133494645031323403812331555635466836688830211309909623971082597333011565581363523432076919009740992831796010015744878586946197941417928733830621449589507892150275480789665202193129780521824525532110193636512781706789213643378315515922039267484446769137182504014113144975502867728405984806312325574450848464274777871167776971252054503848702875232260667742974830453258099607876339486021864262055041077280263252094312487053706066457344329958927175474717360754500286401913049954771963622078865544874611074698939728639060630901014241254065274879117223666452918085261571557439388916070352386231607974113585280424261515103104619816349844416447332781827933350046136555151035550738268565158909962659536430213240215131035819273240409989180566997972163415418145249275416908548524779120875503486673009084956110048870307754838550584172279943241941007257041436894376677776578055464372209116254136033301793609761945040777567775830338435181869009810619713699839507791634630337473683823174513405419888276498495873062263853752534985158268012315119539659410736470338804723029350976956148166312868509039066359058800936446733786352972842096984004641882798970727204115454571084084910002990774926843419861279627670642928617193011275703295924706050115686538057093016730329011403601558583336749574004502356371460440139858169540848222761823756775940912213007263825439980891850798097706010528572705532152726118830705560076544941617904660046043614780131900366319118379271662088918862427749535802212804115913068445601814625300251247972538543463181102771465334498792685541637129414530723289684112131349979729382566617946564618974629328697058285592790398887406050134224381213198775342303958253281958452427079044493536128722096939015477968686632831461305605031363827476660876941136606305194824326006276763009841292797505605940566283988104849259594007307971943639154197960215689055356936156222586033957797515235368698236741860032469330894753648129129945970960058283657825366373713467420468373137420269793363089187033755519191742181522036991881696134336260749385373663787712276995256696806513385515502341605780724066677922066420803829339803251171335877685370792368842885214010903755299401538784270518245470526743195493976664286967587802913647229090925083511858375418054302307624367701506805329167262179598378806134123866327072290353442066686395880334942003306574881428331461264477668411133628478643992263494570277550581743220706901780938548888120531127462111178007146730346721078083076749082955472116234504007439187889373567739825493642838621095153876779929608150008554915634991773674643971066283229488535453894011753707139758315009154679669797589425960758186505705227908244499648402559425533403272672566016456559642818398035422739155502000464795095928024674179620699180239839649588315413128633546975107637537862361842322702332993018621398022674885014097349076901841880495876969513865074992973488664655707436843535809727571740256682622988521766880521566118680336989679113291065209637794671695463701694847899079840093420631804523517135008989668504912589902061533257113186208849120062255832056118528115039447092163184612796939457579787502709914207100113016398271180826631691519101999403820202299967832209159341497671991322665562213146529600307666367415579383315280388983932229517646689594542172994411979527626556842110169142971379793047452507374609240779384323470061228208069318860999316107828827951759862936904674584714691742617477794971321143452965388237891548492078891118238984962737362572205434064236914944808198009556066264809723926520059856680574711307597210654361610872381629986270669921153535719757845844906188186807874625434914657629740766955513684875527365946468771314846219722614889782188908822212517390409229261932811197059397247858646066730918621718811798275414709926159135885834206750144293551282533881902871889627420286296178052236463689897443730358896675046937333206025695885258715210504699002027931653048419861111330404923987441225644026825430658594355420915584644003089837432296659550812598092243113330072018671102844864743662332722079284355269805351879092078746888353045717744848863072091862333802401634934014796342275589898439807063678861970077813329342474745359929877182464468750509364997812762003924175859262616646658490581235387576581335755153709790322352847377867651542836687123858299288419045377594200007820720069629379987294589915987988705232050272948363264915839857395915344457387504713582639859537710985988826931336842854343437711715189382519874680654589739553478580033780453933919096883276046606606233066313764457899903796206010663211028419662472867049008355467887635853073855236550862303650184014182202591821987018675729261755623610956595191140323610803354519633518815876899314113854849453570422552894550026445486864152351417951801601007933690437677405786609208042835187455328388261979941372424375299034314035845806181468416027540768984013238150172782073947754863062834264097432256498286444626807625985906801328212749584252483758046507555599746534478321035261593766059206807782198060927483633539033995573592508925711611885589393300485819889321684183460247308309077448738194638365251272161000640709340602081293121238567875994496022284412733095315028687819270399440534313087120189089169100482186012580166987212811455701753806600047895014398794048450747842977298722670329357786631878340547315054564845023043235309505278804729911420292962200151899906236306361620759843427488096778482958697216227461549842992585094839916946876426762788549843827309304976496452026861446280067004838862092047702153777695287249518392709070722482273131479429862508350001842407978551315317031014625938430020724520615563965720928398906663103912468262873982520597120172011968323087494175380562872275099463344301351894379431475739513587317028996424510112924386401638173178762709726500181515467514968362201980203624617960113081670828775801628722942021574371542844085730083045069142610670723167362739356887136656751307334828621297625278377586097122120756132495107781227511066535001090281416449011061804722445336442811841457986485358163254592629348888696898686666059522009799537165305129607770004578017802099027208894886893162449689221634639531867926931563418055172853505858594525723096282650872548366496420610062242022051542237501672333023727700664825746126319796433345197557491309430482791397542727774328231200493847286403407871174734189274468001990091989416903057563944931193282499900748967912649913044560987999582705262004316041544898593251714870011153425352879567104881825616381777142358581772344727365924934865978682017153802383073169112807468036888715144676819958587425386112800926924625432851057862778546527648077697664530576373997919549452853025359589138902766406376139716010930880109864216237890282625264129882217336180142100812322410269263480392287519401576488422160223705848465431539892130871239809699178535902145861843418886239676939576295825521837147336133799774831591974091494769024589909563578819550993337196010300497294050315333188304187133965555860320649023304152570699170144229431451850504983113935332724114184177748923864561593723758486336865450579883861873986789188082223510043099200695843391758246348615046629571077441492014104554980440704939058450931552409789226249036271242740473870415178173924662838895700076960703753524507011670867318704101071278524452881177505265081299097277025656873259908610034143853962138325675030920751755686473182541923497423822357320348464377559826160114693984793690170208472844312548362212155548374908522056225242833059974677254155260303275621957589208820753393945861329362479117095046140568760676723699451654310471978512505808115934469492241348475206258349263767793603747236799559150998850253341806432857173051171858418737749829302798338440296147371416628227169142397955281159817431812302385792058534528927926847783479071626678811162683201246606630979626102246850513631238220240686399574155047976288087851770562676609036132171021012346094972250835331789529698293255696125947002782288194787064562395083239970981134640512851720894122583242395323305322550218929242307205894451534928518330722315658634095908299878385827023220177809956950671484062453558385182232806655588705898997544177387092392033041747554042995009076439300720757102818573297610132991106024649403467346540184739805037013307952559439109817785766044542179374624955473023537518131710540858783972613449341110467707580972156477543663281803684332691915396666059680353918927083590504772395369410083940994392863655220071921079085119161417379889190589643319254023285926148791613818023604614390870130713073076596859280933025133221550732991251833540609894306107523564901229440764064008606060900802668723805687792057704315555445939938551987324013573255935646655802981037330290310692493675380685041455085154820335685775159813595891362240876215596540702243936604410507267443313708640890704346040922397814675567948125631370197714384622442434224608582548413041616118907380564501281252234927141248666260109598612269664383210852052533614797417708269836379397495266728309587232617519265456087790555422575321900220969454871637064700971569995221131343042045904707930733080954596594134942056584369415138707339599362989685790938491689496352551455234174973191985913931248742055662117177830103618451963663557679311332469748137040148374209025466848158725204478880893397301047677953216914431423871527347959453271650815303332583263063535788312131297597698589239943860683516418015540739598109217559456722824212645607511849465583158960942200649466924670247979547178145032569866645498275529239000087638867709104252981772182870560680734156126068713186225393290261924885988445217508697628539426365947553896858949735396708739088861755170941727314953338219691142162336523629947553653500472492651381541238494383200076010655136597419159863398765838028377663653994946002310987864477426087831809842449370307878128032149241651239040387584941310663236215057792873435838368390921882062697916437070613242910011388469143998783817138619583390525907402475925346192807234626145007331466565046560571106604326253933936528201837471147354985447783172371765730539286265956653940346007036032653159646609087175927967285448455352319860480475011111695956345794405998632209087728418941966519318042362023969269403381991386394042783972488170889492862887872302599219774821212632971427575682204223303925195365463797427977966605424520677784327165035194574201637946437448228501659648034248470861496265909439770309186644833823451416229654666908669207808674274734995970488954698136737633172248201767018015280328791552830485410873991662812511019246678562853108748486259073922450988631894769958303348801447342538401912055429569411703279078119959351558771346302601406635186922300407826827906705072087593308330326560334994026551876188657819438277807358849260794727312148710616582980784570488534862018433892034044853399972503937441037965808050924751143200846492504779893167374322712956449096224277719527689813718813353442120289011542614381999817996775780133013111645929293987939103178396484405561794122527640614257242068147009196210752217894443008196267776536424615038917719137725318509743616543365260236767546623977758281688057082849728291425575631182424377376973749980616588425619520185730284546760867859433346223703988380223491054055834461233098957505982994499989112039882367942186321808270009524557274363274582954751286445110189654753085582459154384860201019007244741896025265707302961215906176456537892328668384140227797980999395563845647478180256132593126169760629822045086917221443105987247566053938472343325958354790917411226517304319242391732298218514945356804791442227466540474975616394449242795488201462770288411509868531452343616336045737679942384631358984907937182517809586521325526574459315358547033807867270994032328627398307916043181697846799292978413342454116956857457121817161158173654732521647721307058430515180789843301736709006595981628706192996513264806803864292197687110179503706639391130104964227584180196543638740240174784304768294351078020804364508076351611059302539837622535612295645555640722983798175255833843402328513689175124433504410011929012483450194401231293360194760418750493608756712626356757705211409865501171785113859897149434498295283862649991049326491432877432320847387831992933216415641601473661027939915994254395843315109698584089454771152329177741011502226725636108065139215929468642193672650169508213186394607599091317020602140319063076054710016045371608397773484795504098295796109360945493095360848265438974034974206395799076101943279484564244426381730895927299116332322330455667228454098585231222398879988267983802259766803203939737448822616897280422640433384019979751915370617175801028770494035146443536509974400695276281743540320006617229449541992401076252597524762099394929016455521576059172641693487746953120610057273648279729727474777498493387836325279882909754253360634019755013294963104173118821614451752283190973424446546137033146951709957023918776033309598267711174495861034356975312026581698359282738347852831091052926167469394856698965839995629669786831689750129636152877420750029140270358806129526950492547733234639763612751411710164930763060238597012275171014162799661026837659927987398952737353714854062602992804056536099283572013392728732357902580346097530325540101661105357102473119821130271961469191051161532504819258930334097384109222838616607481005650858250208842590013672813961357475041656774787476440456696042458699790772978453195570371730385147348224582692253205587996616758646524491243299605321768725105446258135864488913597601670036124012122850381257366377814398667959824077032299075899540118166258192711899940723227943869855121598199763877326436349526609670388876004290205723605533519056770692283523367118406907094236603121728432881234802286193183173462299834273568707257069790107099273326810171656067915238927896545086246225582119107478943251756140681985075240165311951145532513839284370831832470332207122345059876595385368276683763845874227829042206049002148700534204882181238027247003555056346685975637696908769137524089785539795304463509851323066214252718303274843913006418345620726209969072914351933163525253670394761775436864249953114462499606954330794667987628524868345185016661960166506207415043991612044435498897635799420145598271640107367223794142849957388890943308633767725475148357910133987239217954209743568820580369688843908922896662938804453590327154558739562341152519972310848496696195101041449355249134086162260270058896047505530879009403190043031117235949087421435709720376501170900669090463741389708930265875622771609662314346652772196861261901952032326077778523969903573821679976361683386901958379061010635258517307748911002276063012272155290585236682954543563507423965749988852068921284663579919395749368626171486305435118779766611480180777713924822976154328677433520998906828711734694757942069285605057087084107413941465645996870919329354306301052452647955913845624393312594181767112450560132202703443444660758181763126115277172435764889376783744031078832656832474224432088704640649119002121843930978056100282132277316280435581518619013956256475598164232287471349042809038781631284114878741949663109246599615794182503570747363036272005632088254724860188715135868403754978726544677143343735728989621620314958141866552725453570955100713123810004744678828775786307059464609854339163433222922500126296981203077562830093686385354287266347543483103889679036344720966752149571856614850394475788468730718040482784226324869588711041740654324062659916193784940310248063047583287973116818800386297753356588454886918874204933746507696804211704068722611326693752935467026276372900971251750904431565619600930663140743299744380298291610686121545068487549636221954779181899196363443891444228424149768109291645949238815044142492553432859202953660382864432140803666187888675603175214466728952588323225736958306762497517327666765839496675375645996234262049339616902865520376968456681618436372970055806001656793834615031551656179545452141547405952295585064659038988928925723141906468731185676322935399675283650288559181076962320356499291111373806512117726963860233509931177390315872998086232664791197549744697124671563087874668885242943210455313867465783145563389386549841131197037233536866811207715237000555055774662766528045978498692295512651446237487290328693804281083119169161097307075020309874573225972167034874864448357731997221055954836358957849679101451314956110740599634118657478955840808826227334650299831594859803954367426971708610849174830355472984409040319797667308096640768150129814314681842970187147347391626091246941064597369452594867857831364279468696186557440474272059985091382495173939260346983099000916389716510924333151913858800398991258611481195274074044731223604868456731699467481434849973190799715480859999544048697246171261432554068696458972980319004978562124677686848661977415095790142647739323155417466175748170648601222618340271332712758851655679906054305884839780133817874379783914269656847583703505453493345216358483560734812140199575664381682779516343878730787626682477777114255857948182950401189803633178391659612272488502935664866487043009111258847526392723145884836212274479537365078124466823221912766308991358062517528023083964070596306307908637219155747744507222907986304739751096590057178927954191492037259934957613072617659687215467270871103430916469965232441255294993551815574729521434816754615302249647664932412016274474316181469223617780706708127080369264884860153797879804790353444697881143396986726446960901845609879682685085338630963511165585472700515036298997367988027366081933900289504612687396701975520246188707441797046635088791959660923672544802161750098488656168420651958065497104489500404967482399125553777110462433372750949521929159251970342337795234708364020904165204635142210645574556991082513319768582805469605761341515599213296975439555960748614458825620594591159817750254914972780754638771771168472671429900752436049186991684319733165144332364399331075273310582554749011360076813730583389881272405129600956265047192323993947676428730265062805157461502580049582868262845134866803666993698104247101894373827656367361368594554233943543608780665041366818453288575326960555379969545546336452553437637495424964899569454513802608799803989094830212825354305662936445191970281737106608529274397830351599999478477531426624504143817175682540999741199820318591878780400257551130180545658741482524132640742705377786820838179837926062761557134294753662808186574760653237051567463141278185642339970199718131211027406247283535980680370669027884460971301615253531362741716051192407106679392740923796055585177691161166029693416279243031750528398508322525623829721686053700020772872805114551360200232631208142303160507862064773448146479490744456862144530106671942770250254474059100302969316540864706860995470172572665121791440097604875008691147211229210128381932243747051341627654207312037230468608004716816803935031379828823848448363495044437334167677574902298243687019330405055297578607300008998057863352231898780304748896313903773837712098994299363474959501124236023838478572484382148885847969031851446866919698632389398057365173872864349048322401978750966353077924182523324932464190537374166006531788168456420047900349380100665245841697292787758429442011004907546013773172061417823446049537675080955983564567306106965762956676473458196577651117181229811151546200224152946746526938767796724060946201024976026038589589100170229625337165345224470700498409019987066098918621563949894778498255686211647022375238746504089747723574547129553907749782905708135829751056652216846669712060733255470854130670010943509544690515744671813818257144878453303467113208607829780125217858786015844030105298868628788277997695879841239161733873880735329806819782362006650342856740685344190336005953541505438183754819153340355452056500441279163860920055390196790689867119643183693242972907474714985242755260003826255938086995338473290492069625567003905537435861275507326946552483139130499662358137674016207944946324078958944368170862643706722635904734684915794860192467332548323315430090961716197587338376628485571082307579608647836435918088314916940234501331176275109996500014262067860134551762677804675303214147089158836544378868997056448403946836463006575288868863454314499021851474373307493166173723936675132599469168626744903754439513025153922222073893837966450906792812092350845769645603207344820439401136085327454416175740218029270663965371745887862250114093864618690170826869213420582003334032256006115347144200551093751314254159339596832808834251474880582672978690092741021273856007103187313716111600206639875203876622486525661821426496415999340958446211279848926180541403670220886021405311789535955723609899069904163649204858702456573728902435426542809311043232858233471349200264528158616711827787735529253456478002528362808145217494243242902295003934493091471007607471748792433344808053108660899327238610986281832620896877597365926518153224356903750982217988404492286368803863310304308373448179608942791496085077041804880521542347112657812645130210379442357890878395151169721348085161603257553487660733289522257209919794112871815914213358822426144598637113307465390162069216807716410566874269538760242288658593951032114399540431133579607371452715178899724318039183043617008608706669655564599067689456999920274654363634903618101950805038001339808166385749070016566817976301574834525168424790893674243987322123437936749949003551001554680929103962175821649070585775079861601547509588860591832113250984506184138962229558306329602877572219024477404648950246873520000659860865688209456220850607611835428058800464272127081480574896890758544030918035135761433957262120906624922175050908950227995647904350165097039167229327283216222827597919857586857237104611388500539176552059378583366588637851963102774949001011049173903154366270680783702736020831527594931904099373482138258262652241610608085942917607147641071968766364640024245966178448680536612651706991707471563317304730813131879034563308250381294463200068643480024209992832875436560486887574669183797040952388116619421500889318790077364978621190812994551419323139694997774326817720778656641031104791332426410042322283710879289329506436047996856503025913562594762462426696433681938773406248850865026506092156770926487863035000286667455720796920366781419627746943576880519728940627323591428417770698184482786672822545101967804176604565237359559726687057592423257259462216779412361241094880500107910667303771027512870694242695628075635370907367550656171925735553009561158627171106077181388036351514985590764635713692820278668549123417716937639305943528479446739323870329747935023618517816385113021043154221179837870374243661852575500234071795076992156117666882870641490179006860931159927116693020631352325434006976938554118476731026611721822733882876468359825671350244076159371764397065648504068845287977021450787782089978224719884772324876926669205850126203703191452684003278080809867616312066562741035999927475692495102214584899606257616336576734069589461156848135011612522441353725487973922320786414241981787548070354453832104379241434335522719388188213870633420555908049583014110426638360961651955234070018541058768180112334904484709545808450589572524720372393527956591213180439579824854776754531009782313884593842138131416181320039020722623434278018253223470867142371925780504686933194912861248370863307305404353208123459997108744997235606119328873262357046627908701575317336966840442398459976435440599671152758888325331654306992837070282292830176385762462379720262906174516873419841107691593277452733289525270098903477827984826685918730980690240757029130284873309833602720476402314916900792882823797083124847366917105299255748314210350775137185279440732385473396517292044644785610692184228475607234879439776244214575145892579640257189574298521809030189861398789153083011088858201014098049644628892265451193701090531003578229151185395484499088282258564916157789518159159397348320993139311577421958658164442550111163802409264595887896356853891123655876363365423023539593888491468360245166531719610987523377130388670851653015073563017316602392770944772128601493226059202333514189195135946744929200222920924341901334376357577809926654785665003064983068899682275385984641939258884434721066437855399098587223873551297677791549939615819828677969518807506103393168304113971335218032300377613414611342571792678427477544739184539643862570638751109890372408545676331817845558826648670298283182903488610149505201986186255364843394955526287462645133034100925405189510745578236813807969869664534865630611521690994754767419578176702374373331590693494030466178481706436642876868866989341132400343267678323701498897433081658297782205859515646642437470200578405139735579515400664579830748862733935121600216325896677744082239903311522795857769365052008979385813720272369491917505019810772520437501437085988600567453880581314951531310097277512060933025711710947376039545597243336325962492449946442694765218511922037071066375132836486146203418303496571373425787198783802165848680913229544547110846380940629071969571547488195599936434360417583812289280075947732121863657805303282888020526185325423770755193824863530162081163519901792566075250646494478221089965840266296858257735063480696251013534089811725594803743015363789575306394951557628486073323154965948865726488056549892030964897007339323215375030960407976001296161521954598322699946305024106144555706053191465594632401834302889940421711005482723573295560183881706296996744155593460253724967633827755125541277044508531748693825306322862204991886300408251957916579975617465210979898226208605608514398337916486773593719101142780001986802392501197030211051089938309941552032707142101537131647274210802329569031478275014283777075083195487209658668426180680978805500753064701821462370441037095113677761877782339608642972974223523655929771404675384474884332862727030417413485413762882428508728782389173478184017334150580665311938729670066891700581052613902618576417265865284385445146533286516932455426765266740376406824563274210827174254529507865788146581695920672374348840829011244093303693006913674212885044869160590124211694672603217941769518153616675759718807471644366815102128932035861156373134696392660710383752029749711644012195345489775149088000391324784475840447569059476689056550361120729138215239246884302074362570824794190736734234097984228257325532858539145071496904799105047235541439423500554484432029657992285669611738029478857140969541524539574377504084641517482885524109711067406285111910864321326321629994315181211758339438171332626224620120270538318616687096067365254638658587522248445224127309479012779334869435924229999864299825032758182699470730516579438083653152417551957565358047713760865104943298316451302718338433960248235494718160045816554988357450859935876840051527122086539774050106492339050535286890667762722168773796325319235443112797738567285484734435292991077162391835552404272599872098291998776202359010111365320805412512384990225737985494172772029698795184368606017422323186700956583953609824750370114982857503756393393411445343140744103399608236930463485655900674761305062537049052962806504109689020673846342167356262147902462679496156092687391346317614454688018532884110358728991753484737264063505321557253824867133213419662178198520476833418366081073423980583648835532638590169360831068662078106999487798422018805834462831399398362487385454107125184329387069775439276116442156212690397340576187563869562838672315416148107882563192250857604391066185713725713257949804230445169322276869759798090712602390686375197025938974261335588430728930520948173309301772653689682780585269122530656925064804254612028795478847843982613508046964760396375147652789596225140017394378500391220225268027296514095617894103117990454909683154839060973908396920378302425726824971155416681086211005481999173776361468678809106662079242527051741143324129603985617611666726929905809982293199171937165549888355679981265776726905208662587659373454397723785839326060493544856360878775868171879594327578016716952998810868571428129518199499082606986461657480335524487099149402390667782880384115693157154175978354926173229516697813259996958460312932316758491208986880346854205067828972413638382081063868126560612538018080036480441767200787618351023248538204076711882958213063915717569119409519259267593208935421705134074801095367874868254347971610978448561849371920985908880600363335377817369594847744480373910544007200976591815370022125073819807963623872327076027614488396259726312757344282556450844428206103799746728180079525646157758373218310369032385408502594218223027154147630304817516441180008750360082352188431527716618490903048831516167082888743351041852125181479868630713523739151927558563096097240768810835527875985780550218914749223100964257357576574481241808907167380956392682964000842994168838061268597598417108431786633394791047331337945356180363275835676591383035031820471209338834219121520358026791997582389107500740664455438169279532257378415504825778184952389166782323651883737556142138189886950782624891717890970000189737089195657969322434095179007291801566859389696214720097741903958280821682333758851035209512804364414239254614379622875962470213224962903417077277071736271429393583133802108291044753255176842779906217937465358025410894458237877951892527538395379860771762656241479365675213519233303575947480727311161099711917774978722409503952081093635701452234947708437643569486654721498823619175489249502802940664331875065318763571856180623753443624673269867482707064775323900937697697265155000938668622173355592921373142697200394706732537225565975413364974098922428720096714093438266556619984756153173495049042178699615754589108959724363136891609555520730160468058142730525036530601565009970570910825955649401139813351766227967464065134020768938684412175578338179050573225051639561870760381588960750816080422331385150946283544248860698704543111769828901739633536272484777765554179493910859150013077524600819612731329514516696320231598068474619371972033097423636708382895813670235204816130361736970408890958086202707421843073883712917933571399172028259282590103371302862161198044960680445243626526884937458423228997967110764276858472967260495074775919842371614920154550563488882150166982108645259908196139936911890150426389453269152080646931046790394768234057134457056282359804923782242207192428681394732170595730481349408720442738877237588124012981442099719429230023144207331258647674091572376738959603161970014548015334327470370490402606828183565351847261624691169882858459616725593498581210868429934697634472571429057302842867204261846216127460123506021658044658205352516416631556404712271945668418592642153285079414768220649232723514746374656438745800931664151031223305199833463621516855447726925318497764506312478296970380359863733974135783367040252304180249048807577809456717817894790955612076815274379665359640796635709630909053875353601479090458848069995849461310245095958229738679346556138041998493810695757734070211834401709392677749264623835391227606355691123048341645761815075225348152165345234831764976169463686504435226977535728894757472126629498103844932131269900885320140700008885222135206248559420930821326348492148707437122206207062830705469707964908593363997006728535467252803335116291781249748485607578044622962357760937369457754182269733077611902857168728518428868305246025156302255261693326934323436875734548370923235988176072373547525241332170507649694687409585435143348514344436855777564486025958999729732858476294224727121554655718168408703239477281302236863900271523193368642043655038817429642996194714382217157225656886588762984646113336376684485128290537378788174542614035254683224705895034437176684804323150764342830699528044311631174315639003444165183402815078061590674231573180985141532904369405520326963730960980058102606516991473004011180126477537516287055557948610498256492114154282906952677095379342930077098817074805183949069240316627864976471052490185622850895610687520398018051929751363617260739033500756482255832187534042221650431319535487193566640754231501664048575481707984795181484997373024496179568298585007032409246073095598181120788021426573285795739331625243680330925301553128871380805888846475882068569283853626815589914106593441373597292876662675735758305568001945954014912533826282802057816775462486052816150600022051456061402922309047056953801341508740808240924344618980232253932054314633763463334479049274485499849864302728981825676204286677310755647864817971801801884576888428991371223305501596618095652445101363136037715018701553070684526622695103798490308517277941028319574337665945806292497123885849153321208814933380619514261488958376548909685896528503089143957477099454235911246985536161587904489402887520618821623570556804724104305806955909466340353519303733329992093319536469018459809966267493761336280196376032620874495663125748112515200609469504469043004184390944348966061344945093074756925697341876261857294985580841435413880315313350960200699655548985870026994404211059209559313269727698017922382470963044901430464382408302295781067661955086789242774773590341363547115982005478590999878013673972192173706399226421124580137757538268178306633178945793916444657703997126244608939192453169759532465534527461678136597085114162138670833112254504933753549323483931605934547686990159908243431653175424623757664020556571672849654683277342379653449185899804250312467147289685486977572727889581450037084532591927515392541691505872780199132764079472611233674579183055286317848325592331856832947182487759612666138529829933158393936907249983614630501191667437960508371850685357394967578889580581122772182549200988597198447263715885317398939554012850770320431267588351147205206620007749031575835918847768914491626795767235737109853789652093619479582833620824828748379098972079359709468050341727891287989136364564837855073579493633060830962363594911461426007156627534393780422349048694419183919557197295625079437982880880921616327451135344626891377349290227011012053477068163430806563254744035856041183530637009592740878908013179690674668024812696404050765195244144187874646421536438296147214326035557249764723984764536558255762590107186020004822251638715033184050992902670240963010799897952254833381142574954311135533893595399048541795057094399971700909241914108049794311585476006437146039886488311619037313455504982261951226438439742625424667133985798949096057736183637519926405548399835006051010031030214220124412897781708020854001373385162972140842291558243133159029981837749580332581800924918352320760252153873609890595846922679518979348949963499313512888397313485697259913650910708977543985558796500722800027439477479051624175629540071348423606754781395177095897952316843009114234930270299649546705276431048318050984223064260369150340044777681961298113787266027741533468144845191154539705018749155129030805323759464653253463731668056007491631984851369217123089937076818745252793189030250215402076972139729389316774330833585523230253580688235598866553774313663679504248378819902833551666425796252565896309968989632329410582454593287896415796521850677667091910699845530906024088130228356150004045532673482530330309896597082485710678629673439817443404903899472573536420890670473876673832018168677667765238129762968469450823008841120842453473655641116778735678611847983378880176230171493505002992370167189433591381872326894594673370395191341058503260173666271294045491101729300615289037346459468660799360440423482332069176913704562856111698897268048908246442922932157524811105256982181398507716583191185482411064713355208397272842344446109721389647503771411344903568705570805629165202392129339355739134745738837522392525143714864251319898958355936107726007047612690795456393930230762731737627447507509226355206982845909553912827693143128292451388412308627731587422760302011081007730369884220438152320287946008953123313691105519408130563838322060643529092122496198415406328789549575201639183177827804571704017959695466360053128025552582953039085336189036228567763920578520063129170988702377166932326945246475987653230095626185534355313200438745266815878532848750430928426070585057952183419398731675542484389441895619777497213810360412611643513670555673736434933281890256170595389078002051853005068983009932805746070032730645336206887736096250633597207170920686444972333088304454673146991638224805059592935692502750234268084940540295944498201068274556342033763621940310845958507812536869729462566293421385213567998963381690295946227285303076401846197211499171348351087869527767661207362855614297738434923425132148327934466810149930745102500436872052027188118435186389310574533104972285196457775477078373657881049582101181596973165146169650282608928963778907345027954038880462861500488061880284875214151343805646542760351701564593637282573318076391527548537238525674058725496054107741786637592434761728075616887753317312858159728323812238805896113430723648047186794903300630926014811976797024804210793274519592855649909794452777469379340594510266129821600799702111848511301395982046615689423470080016955501683205010342840069135276854220723939163451878054981578662545518654401813141196717587975787250621056756978233007857728819402466081543803100888280849826465786615962639188662056257159759718523865684305641585970906600397242484265384922078346646268746387564937304074860050463991848049248634201845983192266956727860936209764082221813566659322524332837143104297313972810837812123429021159475679660821324861141975357441706142467052764689926712493479362659043472019067694583264623514311850251715395483188644048964118796740240919116514446757736452754750799808021182749653755080811249871013221486907472892700639254750320069132831958401038346170786123817277729341084112088540312689746963159845485787791509209182406529795981335685941430512764025831492665276919237740637475482196802047836451224029769387030190889185241925951857862060527223448964183657040466056947796837554286893433080953657052128826454685137741483751837652474179161391387554533326916925332562346593859323505410043226996138679920666693726170919020426330293247913000659786496603838293148856094268589551951175689084439167166911222108471482291020661163465557698024739389366237343000449850883819947465583127884254660019512251965416536943478574518190937670901893015874903937328496805848679138286043723362517142217737186655992133177081942506342893805473187276080638359336023423530133727173780679597646667921558781640321463727548986152228894720543425923095525266860274655441155870456508294116828259314350141308257792521283311939193507072562055726038303684787197182476637982168060173569229589365716911827317864682599703667264251274100709100182846185545726047965383451651705522455680482722976436513979181325967081622937759500306150701130574034097540933461557470405462819393257648334475315507801031040277824897461054916258195442017291061533522118419312268449783451287414813884787424905589114804907217290982886892049441888184440985369220187664197284513933030171845699302247863253039496670857138912812502699676673115835588067402563067323031703671868381596533181484982501972824216363938373323223753167004422640586812210012059187301655039340889522488738698612845189258941527480867810866097868924912287164460425233701208970533637818442149482806039351262332085543240432334925853026216083711711904452118804991282456701452701814634847033637160580138241787968510962681474246403122649936836582860603838342154034561962430402878085418036621841790581833014684476900128577300798200955473556120645735400055391842925831249851460783802606039877207788617833192597101931774548855505627061103973532432008192793178890782572717004841996600930252772796178367576969384926003166534972289034480518526873405898957123573090754592811243286979891869588786419739350405549972216629820117029060193529810991967248452765168159620064326269982404739875193161247757568063829503122140078905522493184721983517834909063692631857405534891389970848651896912341018838157374477243408410903889974077494474868723589445495246626562203624376406321173156549401577674862147644657054032905678850854659512407724923361662419787018666325110776409290233193379397428226719657353498905102975517066479625215190103593847885592159566305476280284538120597327301896111747800703271946626778188002815273281331969543128765809990674258050627482725738524674128261274653996331922087617072483051005708556954046338539041749353431370723462016034389646464842849952038678448071352020136037273125650897519459086562429009020229818678584013134091071266636333180644658582896647036408932450961326762741118834384262130773220795112131337870611765180150460689855221331762657442686542758846585097309394838708037041523590622142938901445870854540943035411171951538185603889270040580833098490256399150999147727132805873554543081649259609103789480159531332486043842009780943617499749784735105296373804106959350847966984462340648228280496997007213945170038936296576197088686131733985436655742902675049018958758046554045040388740506451619479075391344280256467259567926467936321605321259050510372357942203629490282801161812944637437079530641563590462326264735784615021906862806749827478241134587167500759592175388609012480435567267659816886909569065224757420832174215798729369769896379117790933375646713496318719791511562815087096016249358053455030630442242614458335103904603617505960631585764515942729623243744369600885641592037832582668450883072507139674466736766317061021651104142284767077042677518109114859773375519013230991053486874574679025913211654594823736060684251515863375579865249546306280883249906168031397578653021339512973162697755699412363476012424340136504683773336463924139955601125700508515620579996478292075584742857212167040492049954030158455201408308791712373554267502542489361699843996033432443529200603914884479826255287678993023162985943680360089415075215886372613262502514641127442573263665504793328046132863085243724484335846695764599535931026940987768399090597027015905728506886635779973674675795919296703236521293016110463133585115647886983454582519152158859365356512115224658404743403389652511731956369042436751184520351422766579786642579884081488333417122935030267622224507281646824289674868874785742370880208115564852637661375754981185876705875331192621191703093723675575091051152978171044241368504033625768437226717158404856207833486523501546998497837215361957526080093540292680137852728925784139321973301957357627408057212231948463507223648296855507522572604824900950386849851035035828353950202437937226233712554488987519594952061627859857368161271562253704411817503340104081835942284105014660361567535803998663715092064935531105828472719443882011761002765105931040329774259541453242458936737914420039098638049500279265005801358245733748447842451667162021599926768333095204076125233845282907916441552484740794394697205780138708580597373793104744772256511830795163189222187300412337561412166959500460081433777875329925476520615567217235829672081077256812505694310212840397123193747398992512473686731630995816403637010831284476992159087949878414138014857792340574122749236387252990340417193603372935678261813127728264022400167942251725238713983498624673269007862735408086464606631206572393820905354702730780466526868472258505619610453926837044129443465071889421986161644736856772155012614802494316486485374346565608513397264990971383962715731797301040542991831366911340795174164318723934744326785490961433973924037456959278590185898631864700668151882069391329037339727551417866849009480198242006819824851080536736176191089614183268425318481040788057522395722908856251355134123321420521973947995556683776278969907789406972245753841098534570965800384080242636248879482335653519767900355042294050357277537019042099077076288202240181772631204212634200124583625187637362357475741728075960891607186669898210913817635685603873300635297488647163249863161452145003268310348745064683867668970709047381830277749710006850351311600533007691825005582700259960524490458606559883343993463355626048865622746425760406404165608837803682210977943733145297656989194478074950676322505342774078491685169375225550786219492713949757057766755212310310346469444767130475130541105540410070993596365569211783603325871430675113940566220600749116162594002737167436607940733444735780900787589540157431732909713973778012914422017432529554168854781048432686191024227169613889741269622946734795264762957798351758203378432200419715250256813823306333336775212804872648946783885881643826554407538718596749788442587545222275333751256162502014267663913214196155258996930163828436973038450894508418359003686505778631388262915586048520959527082014155307153884058577544074252001513496895307454639163691414057807604311354362493439565932565843882762406258180288452249217046088544075225685375435624745595568022962239391587836363406924749194959496195314876779489827592015718165661418879427859412286575519158027661093236206046711292645533897858972807042432478018359542164654959533698930079294198554316768490321972069057713486757894874168152584062702539414050993260172654573268301485249614258530031467951334279610930949782628338410550981243333304407368434452939023436979616428976628069135421959178280832936132850948226923091249765233161787958464118897488031579894727964822523082488157288341300904697404066216296411695865754725038519164168424954730687052990458641309153743337850011461789063632791839016780653939274651466898173312104872335449951170409140176220194836971525252677105485014152342692398518073708293289335444388788273595319257349586829743232287999368461078069598317722820798432845132941533785192513604347416395003412217471294816864991958824687140858083431693075529149368105726813014693767508770978633782645086638031728403547393323589186716863968879659258365033787023494002280772589748352766441159067281062263129042732396351478840281726428024934583846625178811406661572899546773055149711144980981732608983092325211379297366769414067789788586693467853518135092053824462618942371946187381301449625650181652564443815626414483952411347268750472272130148208127258195225712334066692071508419584968558942981393624970626009140343008549812716170264984975804283797532014024424505919207303570452900486994792908888370257450988804717218554052453531158898245929142852341582349801903352391210763388759232397101188433415143745923867678043098201238050549958161569401863831626239960566437388848449166205288978152546494128287741406253870872556138725292630689679766698395190401277914435287087907281271069322461472306442333860851176729889665122638505142732994091991149450979136659417635519453444575603229379399524500167381353616957727558225194463792967594202974788156447994706893834358093601165995942698556144385667626593036259818931603346227514030653782169169249611722635332287200474270918291306097479990845318839514224585348149200104821444226142973223318028068604416133456216600236827199599891359133399980369067663564319055188434172827049646058223987762770338125692439881660179127497805171320675833992110007098227214174131692614443122842303035991286737058065249453487866522244683618507210641179501332244221359403089733374236968427349646991734412550538967602705578065917868530012267314806685818929903612479018206474893237201880100842168654131997218500086008737457795115237385340154438108206203104044315853225457003534576568979240789295862285519588631082605631439005280552524227871698242351329774151295471192783287675718685731707038919565890217725099532296624096429374307212524055149630337780962965594887334942304564227595072674476375644330507561676713455172001594372277973393195080237542573460147497113760974814860647950434340971512917204144742889665169864794406697768361426977133385008725113587545183542854419307917708114047422682140782852624483298840755372688858197040647433631092388022405844427613953512518890218554247328139082289335884334094413876820404402516368044170177613402647465812994693120821483043455777548634445502146344114431419920131438361070538414095099719811433996228254518215323124384666033453118627936665695952323348232247930987942712000926590161926470051485209668046393731619402478888900428636370082453502227309339749773456366642355867746327198555578941141290551261657508106946759332956696960048057928807737532633589859914567891895424921190743193575081772992421535755889325592907548627892947269725879544994221911543300798335472199964220533141899467968595607040620806014336490183119032613143622198658367532840861575908116679905342286295512752296653781792146146359942539223193680373563839946745322946880670749162540136777355635453125610767202867775564748004838819265133778002842152880451698281882677118421682431179848767509648341719839840502665370314599029054079361389712942326742190601186944132012804308075082735378149103890269395724990277389354503187160482753709406348411200290889094095076692609334326276178582746467415551301550567000972044212967269301420104850481710376356953158949942332507639649269578480489409613681489263580680965745441067420977404930262720096446002145850398659511545626005024507146624716290358463679209841223083209994976425747077258338139421777119482178063208891933079057368321834967825869125313800733233233640148563971099730902872962489533645955407567690814534591073455523173353332897975598561562874913071938473637562753149521094004966438236023548835546629570832098847570511827783586744899762450419309520044750021291433921107852350717453191531031360424371553678181063622434850141449051095525243366457042337754959678217114376608939035059415833956455699064328772663917197544115342330312193119406428478928050576573617499420906491892624650072195099034601744462730986941613387829200061461017114386366106706511825435223038268254215734065045666929867439275962719584567475150080546862879315675692795062427391026793878116150737330953101879038321388590940681824009289978646827818541197691321714088677764170059693419715911050093882756991899305256835860675497343681330134455724090855022443140225941397834229757067594349934656688980870779565137646436385514323225377255952120473809429511534405895405126046598279053346161745277327559716180214427376579389521636328205367111823211484103026367512556661310316728176420908071519770862312497960884060075762863294070464855618332808977175015181588575015515946554589945515525870471259558422104853282699161825099110469383463005964265344995271323048253914245178276539082653511055495881006808339526236205081830310087747851553132975995288419118609453571852645157078697007433697942963519221425060368768237019410331167736931603138799741768077996803761076605606704325330063648799089600661462864508774372314717148489083949758981415234705287968475809284126445505123897987542363378560856022774839604755333678398636109656485971855150861696832723669685575391558873353389724484380946096089072460329930138992029574476703672983874067380613183127496061263819467067932390319284630335554334215273372439462063106291907830244910774084260354181865388293426818628263423545439509615552143031113266272733819522015577116279082327104553387900956725333129966194017699345948549142144016762466808097734805053494800626904287989324224093895311419264519734258434905199598564205364790133325065414287073075028339150352756402990466136804190296511885006084174069874102542425648360608656200457652525196744880157951072589412119673385784850896984209985965388973841512854175824911383886265143799169383137995212047305041600765209705388390524922364576206979592225098302332409567283655149043803067619695561414818702781900723384010213288312747163346193355800933942911913774449469191845715591437713193456205756021097403001639516592096475568700046014630820226309555187617719249321011369800027349044209100704265044575936440325934281958873670686804502941214577437425974688229718115312022433982238409472605221372931083577292207834282086065808962941518940339889914825198942000581568930501384412237664068534100047495427223484862527352155458930065442135315933526044459926121479876340403932594616459454253937789029868820897529058177543288217544062170341445808839620689851813726263366285141750710678575612393507056355573781340186652281881538393119557546863637777622738630554944640776313022162630348055308737429687976369727125963404215308494184770152151630319546210679227882864097505773910250170492030373744674936570781713712698866287841603450656396974004499130547387400029342880799766823777929713803793272008569281230953693592667054823746301244403009835986191411903153394570962348124552263885251076811995411069857593542165960135347913386172424289360967254612909220604650394411572221944928472057117416700562803392178394786881226160779186641610358010253006153264674875863520265741769197729657132437158582692871441778659127961973508565814067489728487743959144350855224045239916832346493274852247302029955130527588871366625158710359921674482025838964562155824598047372973539832360612915727427012680639858122118357896562212973426481778236916343632068087947003081150784936106318009863857578779818628258508566339319652773844968757593695988654245848865824750885261347632324287368681321239835106323108018150205992354440108416927284640558410708181648882349346446220632394575044845543419207410030626978586241316322775732698739258864355664786613978419218925030609924406660861327299490895768456468307617185399818375959017145894414380232440798379441677497865741184537690662908321384912421036335896286486183238173733944730041478203837290456766286438081820611535459976419100804052698193729387553645436430609067626394143640040909092836136825801551092027501726691880485492017358236875877833974904223439051936013379170468997252119073713660276083996369212216707119469528003461553777671111464396832640916183958149177022544770787263419061808260984383964048783808113927419516152660550367405613119879263501464554695762377245410583200512691925239756712427631858680804169379550289227540584659334591776837029050083759880855616086113084355477074091314276644579198016421737163463375546921790619102465402975823597760044937620149858631498741863685873967911029275054422343277205730317407965112627945829376611876618422492651055706614432602485374443670175023201879021155694332866226217454877177256861122242518661208212231853212190020212526803417132597896065723897821253870027665978273259687959211081804203209227244189467299000493010241339994936585093506291486289241623197765229704013749476016118220956092490515893253344797628503497040852578537628008646940182797031000954032419810217845977322495263050567388974281296170944376049295698490138465498108656281951977195893995547133869713332202696905017697640657550860346739498734991056525762899021920994983916917874632972203889277825720430294810368030210137132928420297878644348661929292068622815669381139277500723353946599218041468561136420280410828119993494150367833070757778238194868917146588059506429984324555093256825725701064901382461878284092657909021625299557342977649201590106793413453256718010374271095280518914685711972395705993747601640005713090042245367210140044587634865245480359016414201495603471465430584810168780361204930161417704480252109467791850168846181971184033488183291153598431090441951903213856146709069436223014520078579950328153861156447010265945383923543011318417060183479808510068412394562645935688671476278455603593929414589159418642166114668144651145396421799006379131336547027465679756360429098084185079954793967435457147981479465965523205437683249097306532942965670402504631142181446573653704760519335844716868724005193404041043585417438191686807744883347006029030539467266033364636587721497552256869207501680231009250542449566105691288136475828983793657228772084775280143382593892187645418030823233798655130803039957097608210846601831720879271686939649765375297938917767234289687182238789065655089627434167293450468234694035678710422385025663736405421162087104399050952503770271120016988797171185601632824521896492318537708907247177574356500066309133157713980866468282629885358896703810091182023086990361488740058301404478217763584552493822948698315585478968168215073306016922498334017698881959990912304833113695038639437254378185294786630405967968391468913187004714478913598935969497679719818449656438328296770135081537852957828992135075382377091704742060425508889391129737509554427276661766353924908084481656019421114495677669168057752830553457467527137773590768686086744424687151269593321359731499457663471579684806767656018014863558348037921733773076747612768381322731885605899287742479575846376230935785232449582911307778919621944349888803305913715840080521128431333444256388222546995884973039839323738145383617378684560006446281507979511402640304373862484279352815794353795482733416262694547312984366732117061256985214715498757583837756789826163122692310152100003264736689156452111331375422837971374679406965885754609808903488044584184926742459637732395474524650436973655930506085137857297778773732938577160017961950618087962788645076330506735835061437023319163301818944681588339966987425700829226490273462090807218867166091095030369656542758340385162514682248024820906811682351538125101900278942723252833420999312541006194030942889335948949748125653181078367251207047277366887009386364450953163733134909981556140171775151349244764552278212631171491336641201936046921229218086817679923837476573756617764960240143505002416626117308067350131164103697166956189743592166103119605769796015328031467889130209255352658868711825406600294997792466484489728512811409083345651433604637401603620497224831959025786053142370941943379969932569595010346540623547593723227726327927430470558947626768234698618634804157830735857275880848410214467371030382244773459278134199877966486286728678975465486041277889146517045988431219526613219170026281816751075334289946133821311389328209297326959415461556617355531561973369332728924303429129994227631596890155919440743243959741934494134814274698922765381783341905451778003838959924587706843556521428463796399517121892201676595787745940977912603563004661710463217721081131993184164777346873695623983256136817938124762174300609974556680381624388984851667564190219948195663018084680076977340912225781481846269193977817967163471046028849249292432834662952108342668897376491107102913574104519766357964157608813283284154684712025677928221251559538019473224526963106709126222478584338225908141497086069936599048316535833643402623362661227592841895924427967803029156160639893842507008690082485825761193836196386608281350228207152841133910636728262835164097636434599274629638706959297618133894766747823609077980573855359341860363315760189594181870624995270993233967970285946080416793505959734964641550631048910441848297074272371394369620732168888284828996712456760756773811151088795843789371609021525266823433908968706822887193420608180325724813981134124736188285023207115721588476975743946792944934475940021567332799592035968458597623319425014592380843077676023593728175981608375154269992434688304390178884803955959720228153748105708331379877089356250182237822462170906840785160475614998393864161470600335890158748018574773735165649014026265958877620503522411278526468387536806889039879858599315226743707958536572270360518556972764985505179769472072380404026758540323430510050593895547623802316605039096575435674680633637379002514614070355775159549363932195060327461619856130754517968333059923097698180731114784737387406272400052776527943291419518044762048698626676976224761440708150131871571959632203410868203339689683359927009140576354271133057874239750951083631191884509911251066172226877391511303602470651055245824577002638477703907791395672053229117735045759383575702853372183360226194343989749211455976871837063674590751575190452883104195419661023523608468785562886922882598858893486863512323910873303762070303965443089558198146696834376958031975576241708007327407100887515030984608614538758346060842546552739201191363049095738943593453748340146197057695010773281312858081932964925489835670715943846943136157813250220380171741857164091046892679146035300712551375411762925711378105002278174359793835915056547838957330117156147355965813236253955214421788469625466198369572323912367228618889604786983276919122784262072900073896967984198957530104649973524413977390031117865470120437288222299652701576096873144665166643765203684811193173065061530089311949078959482226886067324159791888267357110800759874028808236556353157536803665474622387981468608357135514312623104806819814861482104335004417798862337800698832266975846833954302447120389701911713366648475767974364956105502506236149983050971103008739710898338179199142390633290026629287634441257658688291006638335607103031034267409351708886974741385796032270260554486358238329608426404723449646355182310765935541545183213261348789160691191328854756700544585052057987924263857051006011555775328678838660098570122083264515164435296142287813965124662115381918174632787636531200489705230056930519097865438134258719040320060396009715882185038830087165186746495532545829812099987738170060534578389276857094270378308120567740071324548230851024739277024634490826306669809766527038573161967702514970360241114586867358178779103517842374780548630557705926061581310995161969788181798544767388799233373162653925520010731818197387065727271319727855072261703359714587246684271235140094556332274393149460429196408837321881582128407715677307671185672381658544012747957944116130964273349190071294729668004950642860561287771403574718223790775049701216003243835620058928671721652068151692107391033042755325413995966237079664233795937196489633535386796472967092728407669500108644203494611318489297443666813165095554569142332616484879326775146776133799613488801201836193508685179802748989282176132684785768706918171585454601951903805299713969445231228530464346260983553458839623031573465662208968583897368964350411178430030606838457719784609671534072163878481786236414932929052347122820664757824124460796074899786838433475509146092691567717135951689599568497389777476469613452596581793527082193128338844650003807119847753384171109475736338190406181399500111751254396939823501486047136517965371740476097655571126566802826866508152625950852297793700797022838010808262609666440706708601386892607565571162415134375379793841761185126295387707376317334989412311046146627973463916724572179353028482815808958654211578244637347049524773398676329890262588238195192193851710686229355164124275976836030380555055715591543345375400270805674908874245498159191635804694555380514169220928705800487376710361288528111724394443178613535921541304729408318755167505603836005688576300257296669457594504654443520642599455594461026249172407193882919004535524169726935237006638345743559771342523672707440240143056582684809679153664879911448250865632833748785233671404275844974192697901557744086730261164138544396163913426930733332347485099774397562653263792126597932426686865105688966306562576251323209278029259658849200160804702848070098448534189892274273199005244367538554133336681990158983932549675003061078976911509350683959520308724351787417937373389948150548070180855444266216777581682245879204756750998184696936197059074154554681633513821638130977160831887952630890427892840384664630552966269488923946993324683115574155390402805052329551471606342181542886570467677247832228598375639823297518071646630687663094533478775685599153133670523300507020909258882360922962763787168829894405707762230957769574714524628234066097422841750788145623584280322116076309564515770775032687623851121918406805075615239991856863248833929109933153461730968775383292845332670072140191003805188792524026974880503542219893746925785105332309716275962715845955697662983333878256952288550098637587703871848995494476942492895974887618344353435572342867953363311930818440329031757392664576507122408087249370652301658662500229324332705174715648329109558203129597375163988556261254079021775083177593696828855232447800690066730746354573569640890654076978381419795847397878496568617906584643203722834817300467854358021832364194027032007534531701012430405902731516976687570690860862642370642668043695589286504785999557326759400219989480403817344242349739432125188025194389099377212994949713025794634526295609338364316897504975547605839716358793033564199118448464961009877085613016269348716482680473500949317427949471032103609695454449799426154806575648374064903588776421369831061379124186943804589215635815983761494174210581218744459193895315251499999094908307622075001751344508116991940877423714955262435675096023211747169857786444454815808258617410642164018684638412205540761538678377113357846029970118302671233498967627296572990803328271867820399861568047818392649196299713507037681453374354322304659557268343488419000345535865899467897483212944074511776502843934194218114411888319374351317598198652774574297793984036610267416288433949537526020668948186048230625969194068243284826524658204250110121508200215543245282023253388867273881783208411514161007897675151814402861220878637778917919405229034665461355217370158015584257556271480880460178045621444775721836864689972112487305131831608164638512714440353750155156265622502390349084266452655673840342298055403029793900638013349159609894362514193958242516714714130809584131822787939847856035763019264875754595539170282735039918981349017045445282388695868448525612117434030981112712989040771440523257150518129859533363178636105141641735185574959757424709974563833869209454519874171235160211190926594790757162862041698609694230586974587757398195059806359224347513987091910976431277222958660646824982880426579176289154149442360434868610323845213588556553506554529027147632550581822271369625436359099040312505336318734044368902880571896784709918112676689121203702675894595013644327501223340546716258722966271513435589933739319556178403209677713840439112074677747167648704766748194806908347279805121815932900164087211596007466591988519218241973001498826695627841161307788576528056559096888753261938735890869267314288997683797584470604291501393705233348714662267136031065635898343831773112282981957906944043528530766459347642293283746248912240396531754573990276462317408490945655404441417730594001881743420753396571842723233190075454994894972791157284835249673571046834928746541566817689171517101893181465247540920167748120060705124405224963588616606643871766758323304667366833254135661235718082731011087229432448687697388765778393790234314892206141524849658808608691132894502818277336568973957600733702888489633252436607689830227935545465998260138418538471392279615965467149114117608873253364947494451086298013994759411084699684274744160781648325651400325828852983263964949894022534854339226712472464190889738977569403643885863668014271716107029572611370003762473102415541544234470623790556565134327827702380304626710361847998595665752118691291224156412395242967683824700771953735957022978944511879419829288886289696323426273308146180480570011798180554379546636015035996168516881167972265978125679728405448032112366231734042662721074968408207634119195611264356139135621951234185586836960472473839629903582309346755796479500613811774662935084985573826819430601806552181053076889375964781267107760107178382494898287084502308631731806599653374955825948717940747859640811680604442750050101067861157278078740821300931969409898395665039154540931303417071272870649549253472937685422736652276795873350038396097958576039427304054687169584385656743149104913110722643030119292598257589408822660226799782223926060388787593151042523884793470656707603722951340929018897806191096003667030584397765872917806020091167126017061104738046508596374660953225144912980479909567414777128745823230733712565932112864133416797101076133555268856419604045934942694249605463495667036344635180873057370991351089997362435782657045423865995270553298404152364419869457673187544528909834470191387807778416185172876515888724515413278176210564237952078263500236702889387852369213404893824361709492674242106559875643092030145278649006934819486819650953085811592856679608420752261757954699985789018895170634268065211776577148946885208387119882276153423594990890856407733900558766372829712755612545055687120922262616575492597324524133592869915720857718561206898233552403678853974744084570222097038353930830039438620613489360363734625266645193879221843660378564594037692254586150409922888963283673388866273298373216450768110981581772731932886512665676008739970348534157944015737082027845597031761320411392159725810201768474258838846577377938020305013044299293837156212181207985207904274185603458349002944432715714084663708208073173658603693250345681415353909290520102315341038658659528007644813376674791320684445655276347842598532297620883095575423754677968705505571299315089111462222846657822048453440574902499970733576957996112721729858023358935299086400247385013603924889078215886858805916956210655413543665102347711774412769244370901015831032302305910594672624619956672857797823012118276010895077645537905333990928868834226300772254484746606424514381264331249166761910109465422661161047716511254515155616496541646818724321292603702852356484561035937334574397178405580158513242806490447237868224524390057808375237599727161196261179223986552481550440346518624727999637601021766073567072057612627812065304013549567817203745173926938571198113732430614392356914892677444493310558301619974294105168576093531460308891416635515516154987887425824581071880952018999597060510607326571876422013247755432493998665057368846199158854382942108846168438753370751755781309886420586462879956786181000302813793555597050512151795066836647490636241657154479941930648351314274455792368000031811986171606399087130505457103915443073525148513947395136123480910305446134129870393722355965369499849685986487006595036193066965945195095171673337530371865906784926745951250033204013624786151204907805331687361871261096186024927749084008250749056453401950779219118604571442016204874343351509223995299261183322211596245167185830142041524790694351657553515955523891540640736791628239867068282919546676864630865311165029552013747747979812800914512974719423869727418027485361493328054168174288981289689764836774749098096039266436145313871663177536111630085623661394074724487963338661746423830394621733886556561747420794127086653880069811170002789581097893201512432097993130856225460361573289546700960640756816895482095536212732126193625143905896013718157818094828926794106351522378288013596921114994493122858386793136243302299035474482876132869021386124116865466144312861481332458319321805072749870830934850501636744007424516967548796553038746709570747903237299334596934716285761643182231293027918984795589585572381154483187059201735532647189127997965850083485562536947215971810517484770738326380378490815471100616498649273479815425571016201357150461980414105136514639984368754588956371035045694295026173785573980282368861122173786221716247878154904025521718722864764771850878369165141142457803631201412738851673448486846714866833471892895962878557907552302968706542529620327928068954821362105168059707422847622930795739829603104864430337605970618803794510527536452051428994520605819498363653861530513096075837848541783745411585842176346821020228438834958449927937530406736678839215615566822828357130828126095399915218482384731432480979295136968930616440912392670435125512236345432542756600667487485612121506299888882544823176950361188471663780936886141249944093971697837901432146344270518729614785835671416508853789042971100155444961832558833776731263934468845443995348815638222813793421654840993645672214466227257617290671996006567657173474421605061925084423745661579578862981262544617853311619549768688650517521385345871406501251595203824753380029135896744372056878957542448774575910871183876024335191610059457775564260608024278417760371492281178888672265556203578824388784254181571115130412750648532149404319668258249405637743660907559363623908430108903765167120710700808418873880830238719225513605372078880966601242655637443069903548931923097118823060834939056561199440652271690197356274028453616746376910394511255037913148977159207338199198691472449132461098973967978413754000746363096534554857192746841891152468336691913733515061598288938302254947465040232273731546023811801444678149517034736753483359957070404699694628909541663197832531358518363646358320608631512320031991956728895355904234473462028590014520673648680710531415557036606352781637337754755626925224635196149113663178854208533233690605444657525069116153608899617560169884008292778313493061902249815238608643885089811633605851852912948415647799215023999906386267476868133444798484571409339607868921832604986564473332759066698660474738498812480001661110682448886683249416816084546408715867820902024116573526767501887239646583843002880065991425894933169954910272429739413130604211416800845272149461576527116671931248172902243316546133282920233802071407370762663238030430564472333311145389959525394133547228991971776118799649235958990606678984065896216898809308316371738400260025099776397011431504302654154701720477452775189183824221932328334222364016082980202598048664148187598816403289868288857236717767914393632051655903812902736569382265998124882583107386592042409122851593819256828665377247117684571501012612736565630896014490947393879526935616175564490517273773679121724168798100204965035538315868528354358858021270294217185957092353007773138340907932000246719860883922496382350558264500724766012042730588053403308412939510414629928076444062957283835306997901314619825757534076437930562147064435656575998801090644802358526988111815917261746229974513662800455599893096525868790939014360026761842520077108203627169369322435599667107847574166070782857152209913550192375942169768046136419921197129146603548164054869758226271953789856896443155128964223054835683462382463145397981253938170863250315243086620400535773734181647662975202804108747685186889076006302974105932607947274761866108755850804988193972578473535117579733466752377002950880431633111502025777309393520120207276644881575096145538892514412321875419202609244204062673401586280824041716888100370637837674071340880627154975597194972694038631640522213620026282555689403191606499893031532606504019766028073175902769335572817327639161933989249062809290642213456993872418425577315171874949781488959239208298049187786650447110284737479680975845617219689626358120208689585866941867050975687268421723534082228791506955058873538171072235390029418654573089495770592588250953736794063539948016108344265821242186095748479821708399578899069638010289493281506929680620010172909028363978569019538778772361176111378067146914754507040145763783576571017315077367102112257300467778171251698269342802457059986053930116637151664524838332907399262596490398862660062657857354109239698759126481727768567601980137983873490736288819869761414608616729009140403999296400617396708061305282885032056905526605168992056923530531414981686744213832965046216024834513130629188033648626298575692850018978466698069606784008821063073670664626251859852650091206988995813936286231519470769468657591774491595870704228314307632095701945303266539866290456674016983501022977928931691699998604959048916225898703664972158919240501777545156327732384561095421744034262564554705859344762082342483664643123519575085719676646390782512309104856152695850692127451267916164409261115672724193964078094978249654388999204171405795681734342430524234169857290675557847857166035435013985687862817390523343764642344700882634564546007390507456209988989426677165600484477069575846594666880118968022160381770820667970588084242615844713675311086410142486145980024233261575506320697389425231211514162284753833583391172844388151846073711019552183250656584557393186556144987933062236584749972219647752260333881868167477643697732224225187924014916554418093386589999373387169072232690986706485633382896717856676647768144644793596535398113594068502875948910998855993112429982249449451019188369685132648843273599525515751870813785665956129102566518565374544481716242004266709544482810584894120901741788971613885243266460821369318293111373525651384983890125603270829699958530606111540363575657992041377537146294204942990037599021608683358394487673273460894709504763037410277031834141809833090974156080888210344761193399967730204771302770539480100321382519472389240253485756534093662488068243001389785665101626846797252640507402213151841997343113952003262906687614156121679431080265849445772513929950593524614597520336809758799774548323837390467554826916256676915485726097202149746402671116168678263333219415561321063707216034490157078975157223379738006246640935462196468694248089455983821537161153063606203268873186531221609921300484900439785530822921156795198107809605269005100440960959972942465758786210660169838429650100370355126697387053272965109345604628504810578845520374867157403591113802401683392735090888717285784087080569167265632173138108009143187293599783613846502761149964762282574921390742783500159132592350806883628957843886456867360474531493843486346011015258298908572443858446858261782064533206981285218946682028891114022813308543991051699430926775748857665752475827797921829789928126893325095657112350409433530285965037082382711842315304504762744224863500196143047033913482311505555233573131454234501990707157648097146855683241496000623015941203991958619498008211520528272845997510110319777981172699545707041253257110933723689954497841018417506488012590914059527724750229401169245324503058732982763822035065811742318080886825759678781351992175918348349282338575554402658891097413043449865322855832571503444210976373919102656992827393994676012330761368586707259924941209811595769671448159355861499776023101662792027710644883397442521839408533318814119301837689569274118431895669073025235881401764629497869985664711089530451395458927589423010740871912737835427724964150979302980913998774586703777948901970759355820329309647478233536136717210361004776611735263605139457728312627339702187815472427037622369151778254982947795456148470389891883977722445481462884895883485889689881586839400562257519841785971894428055942538802946490666256439950008183104656775391837708943882119933696649405855869495631101005260086120960471455995583603735669119785129614210918104034970556755072225421095437786782490955924203489404624497978523260962440520326396878540062485148235473905736728009602975874179601165069473250267208868877863722065427194679086712906567817942446743992242359555768770813894465416870882345278454909714923588633412844293530725857798734627855665335522000490520941173630607065119615666331882182454261641804170165196967228693628503407255127903919828873816293986653162975959102529057971918720278756445092015070939652392447642212638967075077342452964442245801335078675420695529558783974323545289301971297906306321765890360202469756606192959386887387188470926098305911590246159364237121634853835055514761623805450642855698253600822030316986624677063333757353803684982455051645846969998658882713951764260031736446756197901274622150728170746594119614965245653909413249677835659342903115931362379169805615216083203789033225356028095036465243659363629299701592563621354911462533060182370581163499697474296333280534805634009509116575786134868062619202165076819370452574198532948083240863067161599742609080577707947211387160087361812228036147744101730286406281623990750055310034033350678051288512173855758841363683780943499393775150917398710282405106231376906967897874985605917371044405427963720141379975952748742854972959226664806849603967699261476126405253422249614269396478139774496284491959398406393825731309876215229067728836715211624218685951317889663436130986109859931405575300566424133023533054778664294835912622230320879751397093238198062700655136363959829057106343317427295478051576745927921475632009448687188909203908703394426293666630454553829587138450504650698458358286522756985602273657110458198222010732685934622090381487529193660240077143132962621722080945393627518464468862522129843813129559657543062467566190106208135052776211679139253351218594985724636228215274131728552788318023752589164451453008840269287568648313431469182127861608148215955167186573188974333887572248326677030914275915143140408878914366634422611376461225030271830656961870403801125111765667070575890614515129424655454680009420464462136364219056373539938410636999771463202119763572858265396720665318443758978701392372189403466825271431258498904978025425358598304882954198719049854734055452153632273022349828108829447561304771024052100258058599556588264501509019730514318396440739647793557232683409189869125192478697373644717107873568185015341944812821587182710671398912671525773387480438898296527435953662755732345610731520608730670167485493522523783138915913559962976929716909153032168472051135431407305687182666533282262474587447902962103909865273275040145524176909297372801107785175653862266175466668719079560780488267455183288993567912261081682489235647828080406204669902838691142541500559868216807659417744874982516580225256771583584538921935729037995752288592111444178950979841108239647990613468138611237071889750596268160414553008047348399429554606383713305793642400926987091321870961887064721343716653860222203470727544667819098431145123350558147361942667160083051955698211693730308511940438842333699786246617595506659924849643369095610750653664409911045309608265455207185593293237356488703411588743394938052630960923209849730272188709880071879387801598537899087314645351481465229403112180174886267170550566641252579161352857493551502294428677553247880926424803292373994079915219651854687274151613393256921851489009812491020050831302149602552118690637322504419651235468418846870650004245809970363123061644676856603756801416410183848961209582628604388620859208022905591413809527872740058066669750966555976699098300452487871148259888278998355646905083241914556352440207588089065998033196705619226018027833695467895300539035474333948481856368342123374445623039925762953366175653389820708181179405262454160159212933391328369697349094099525420755557077462831325643174546377768045398469378921237774894269344515235481948914797602878891262712743814945992434617338441261785276582585872178458294012205239514772169407919081382573021208642059418508113048460883479308303266235754617287906317360712270835761053159169715583091514411538064106027752724566654327671159935611197403642465281177072937407688948366704674058092338888414958561819640851726347919979597345033985232453087710165286348876910100366004228606559082372908714881063884437861271583457519027155880013147465892767849997186859527523920732541122719311531605645851980614961457933308019198763153410841430548799498767322786374573576895326480815655631252127413372662283171273843694503069799901508118150338663683853829985369361482836318650819038624942548275527490981425974405752867737264231152420025054679192632089405332771298759893215709550773554624967687970046078324413363330055761249835203322071030245899293787679824770749921828525626028199609817795342205956629798467715608115970453318467547458342551871087054191638650772617134354997301343803447916021840252080540126615144145618974235502931028544291655770236671577868865203369320750656228990364076611223419552360937617314437734974260698685898240796544819161653461656746123001748235683153817185645822192866022542797923375777990843710464436813588331349637864200832713303796505207874203786512629378034412052465894876755477877877396150706928650025743861000499353856732841941686136719053758728329797143317266706550490983529261624397344120023535619097186484843864736562657538521889861199609765798647485665227822536099806002939982648108066536720843947830417242679014174756391746197791634612324698662326085615267663718286306868062874113943769695236975213916556615985048231339643551819510376908769859017240191332122543979535404208496068418730224796109223488312020433206834582300570124630659515917917002292226655292311564022187880971769090926027890799437983326111639140130616872630451325227411184213018048359116062081916777772719052993043921202232172764437819261477791717766882380899624473282510724618104672917104778669091243356073398037090917755634255917525465991034061301059561015695497883596299074655627013486433746139784089418685608478853301896555461867927716104840283646873888542486281025525065335802656891399195697478701630227025792829798570020883191416912088072086755634139759926582072929816644608859684501918694641419734947308178800064169329292195145959227256113416292472768664918256452595726097729125646735266095831272002907859571539634664021878534405384229514714542300167774887503247508981630485796886941222216777940090074585497580774067104441994336785365484995533683458064375854371506195910258656774530167452016006122224453322262747282866259180469753123703910348787913729885136480890180641524818979565796112414029949867164936283693492009421775119718009941896992738902034908711439662556274272285359553542017217221164892003736782243312548717845979708218226490658703436709241640114038049672842824710547293182166447308013866720608074263129999829049467928312881801939734372708306529912921459244706993223513090166892753561002775003736220682571377222096548339753181868194806484361297633134729215131644960278515657696678821286318998063492615528027618401615265172692316390847880893731359400236836423162056214680279891169788220693473212968431997265195500601419465560328147046896609697904509031792263992663530003657595465619218798150020811762311205189631883411498015042617081667101994778025969611171209767000705842570687453609794249530512108990512636860251700379582594902247039130748365167281742325220093228836090370071211710644928358527579382837582925649933484490422486461410750347583358023548378285020935744347433264756169445568749805466837475491374693488792150342668754622126395362776006576016965406058813639336557176184931174813056475448895017665571486041508616256751401169387744969926390697906417069728015331319067363888780045530835903066712996936506862951866243751486597263190240708097344557326434605638468732115955204395358192630847856459710562938630320286101297241510345416590129012530307078837980581806100923604269317161707196244938858633488875448737886974101111285197073776774635177458869641658971408842036202268484331265815622708112139683915428137805914675066361881068733149862299021111127429269710412339056739479903299585823371167484200613019339439355842347567388786399868501652380940641639292376732597296919885605142972370931244160423250832683312271203176169888990493587210762128876907569828022785483893918168179324612275086919233770605561052359749826488973374767754099372524001315535630926898753470530638902174655679026024790028262133129346246881494612317075957033988807417596859758035622889775330022156943892835209737736871889351790288005497312494908626223348796943376253860240570895825388280235377885290075213744822556291004727093972518288532558353881339424852455644853269342752173162616272730112198210822464942617334447562456701353604644574068933080639647270478011291173032965699808578084882889796794346703877095719520807280702708485298754075847377265680995523498471840263843948581997167466452587278740121044941640082311334453719279091124998317304603972041626193642176680919569731718777680357255337043651411506505285625417142787163684500068645110588133694025256022342952370379930538639693598295387455060421145532531112447697379456400484453334733148494965393254316740293702772305363883664029016576439868324800566849967620230766086702271257367841706999626446461650574085213533351302065510986310748045293959478287127059037932734968459279002816059124016024109346787346565361835039312241117021120676401529663174569362215706424802715158822604716864937685460154315099997047233212159280658386114615778447545772181801699391409042308005955249929487488653954115098123128019830256264066023089254781326916348407113457253540865467258008778029607532143205898790261079082671881998505208844286017998767709850466339063455397933344119279564698964811858322275799147528643620534597960969006640420169010734447861491882340690030742644992024366351886950429674733773598545920309459562215946531221932499189381748634087559974866957245624955756775540223893290679160674914451426136507039057432664981489370295871801715258532777481809614132631270915850757585029915861792969838459019355669533026663094751933628414987725904046463000200353889876404860315015373500448231612961548255279216892505405296142004372334008388747539636058375895102611626217163523936035769294900647452992451575912832966494260637205982412892032298341399196643015715183101461784464171994307986176621861907264945892793869857775115320336693168263904644530963582652912073801711806678674470873385238379624805668976979008188653986902306182724243679268277394612359528358776726185725105231277150310696030141594986435403745454322408564084746874845986304460596513849237395315249012017428942411178166994707657712495650560440286168670272551292301274825640113133710202135454863116333262319501578059390004823260344241911683610367902571550117366168163536742525622074018607128067607298592715448840611385259296840011964944442537930067131894921863848041748893338241196994993584810321474542387059876402798940974040051598093470485753246409291925727155386274152716803217427084048971437303850281550954951633023998060875154207763936880167694750583249722747626886021333188452020295452033903725536169355303835834540056527920318966210112233324230999948308521436345467777338959193753458281789179725215194316862032408660949419141532858373978664838675405477183097238420602201316339430367306544900180120471883087756535569983488270812232489789856092096610408724624157566196491643376643856569737304649139498903119068468803500822714646955246390140582341283416113005113647354612651071535041304273612838034032800824203849990268873271378129492673437267033265973352480292926052078561434535254433493353856852592092983443137646496118182879188464621327193508349801107408258065114769119361710542512806540460713766035017395664599771286190279252309971464983575124212713384616454376309697417824201041133161900662694362103875119721400060229811390696620248163040511243671988901390601256279395186762577483992443954208656275568671666469120769995262795691147674245924094281853882448087281224370415277180556898406916555096496878910003291646981728625557157697197158944583144897291143574427333058855055718297264970159028231803784845503583370696165054894126784501464052624869671606720435452845715126611051770669296097089068291076646505659793643423012642941943414014066999179689952172595063267144159212564105408847084222268414194447702792366414040120238017808284993425657956093629703768844534113257701863867454486501227807036187204543133032631642261458141896540389907498464555264849536275478567197269702016402609989980702791290323698542817101402189461691228708471798816143487163488770167260445551162855716749533755018507221990570268522901495078915627268661398772214835847284276091630863678877542364556784173242148946431077461942795338992076922995461790753466214977060692365523303456870091922606036435364836594264424148012273295742707465647070055538468723633011422866088281555964570324892654133088339391361475846333649153805958410308567043454007393302721296689359644805330200691622281546686818210727395681568364917548504829733852467342607818608170681269189532149215561258796903102173632812645710237673961859821161318223846549045144152361797772028753255830951469147762471661895696978794929586384717356627020007436829719602683179682447198189382791992183771684034997111402505475448704678015858223542890648930209338325201332482671550308151384382882837176335885532630498411707230734429150277369486316415882395979184580253595810288267275010329451810186476255955593750263787364168381209843752383241071635465473282056415529669737812048475299658456151490513427821014029423891212642457092097022396727108442580088736494820056060025599108814908585647151869208243685264085450337728580506823655299286462015688081929431981924069934322313437186050746138882833254928061291117663987833723452499598043062091436546953213399060811846877180009383277735757247894445883288507000461609203327012283108349248553425085949756879736371464291752054770342377357634817441952835696622369464901844100552663635375919188716471894901118906172996006544386415444799080272383492157080954177701298848975179391679655906126788221922859968147737990581147959791276235903769080080807313052750612087867226207532484908857096440527608678730931801938791695891213386137653154738924477609469846953845004259699274598058014921656127862400843745243852606228439841510598875261616827613260828737966359769195423490021729418848483785682594397404981744479673361300168098021938723567126461710691458553604684971515683519089903696977955317232579598559570145146268849213580106252636437264079168432992963860568533578827216781149133647401775985497773125379180309773127289119690834747131020665268779249638151016385131092350469122064232310043783943004998590289369491191498050139854518506104808617761871138199602829840337139318236124645965615872566674399334215139467240374098722097202319606578862414027215681585332341770687889694061890619055394130331800565849539717458064770293953423336986385977789026997984311596934915602966462229379834244850664651850734792125352430846046090825534922618560207808474088285285251137729433579769814535589346341183968027559496142420788740693893473643237020309025018152007831095173157735051079272042166144379778125675199506438937186977225936793096382251888251928032557261727939664226873403682717468821884773347998503133366484601110587583729709767485067795610894865815993295492660161663626404845717601758937700345153493245743864270623727778847430854940831740402743048630872212805599074063712235272998724676937401092476472915284111345776167906532711531379758813997965398858073701714112353583974022609030515797655823889884325912237361663588087445621620926600933632318650925026205307321036551945840258314762941711357876327882165571643871816385015882435458045234762643642261685537381079254843481722773587906182818962428879741618837890230982742951465946470566127598962931364484940215875450909329540283149411983404102282643998579801075563358631023959499692360180680845809493019214872044254819371633761892492000566941838804584403699982307676701896792727756598974655513131649072048188789791357599856153139639237263545934111821419935638963253567841070842577656531392359264091558850186790180900883753148423216022109708937745953445625006191034408335150489341838224693161316842570385863153068672610725226089971592999102940199585771087464561548223345858187920930024479867077292148543400553569997771218080248835575643113662462106138015292043097045447153640073523709907306156003858131995819983327498810923935585652187740870565872541748846570617493872763453919552470091503406624611262753793515247816717928940079637293559872406200507519697015846821281592430061132855831254187156548586899502427622277642967461567526762522525328030602680505323533914080217377707248553663356893560141066769691942754151332295296863432537425318764716268041289820547164136571610720197751711976362870187230415968700507643588105070449466445640245385626915325448911082724575307337317447522126967792045993042293689913758076750951747157508852932017459811164367119927034789056448871490882218749231104975630070571017869414106793061114820905264153116919665126776737835720262474902469578002097013710711826178137427761674696730699692397421311952180287409528259303957645329144899357136527035519721414945705703129955631916336958082701356952329191889054509439251021706313709335226479079456587200036559818550567671730032764443049122940822434480124730255985714093141883797752651557870875354438899409271127363524529068052092133875901006785492320929899209705715380166537534505542321376299757612040462069683400888005206871817955419392634844104406994678395237820040129741381783796006213593567660889056420552391202432935112980558258495247080822682760734741041911817363414464417264127550435610620381591176215932632068737130388575796963690290044394738273140659675044109062791734627848761291066668478529220740458670603421869565330503479517025578281418770519381877175130243660766616960734203270718369373706087805607502477164574667427147846157087879349805819106557342573071650372400158875992131538347546108938006802489418106095899434501785357465490023860403753587531032085908749712373665186558752226020138799906817037065341721846235334705159613139262007630800863361709382817388296746466728794018881153709793974519923636925170622699327746466142990042604646462103569124914088295733944029170319946827704965752731675428192850114405638185133242003433059987286239557474406642247330013200012201177010686934975927247322030353990752376403523335457831081229538403093951317542160057960078864696743267620359408875551483319242324731675181082829568988965704806577701746431060280265246622378222789911851615807169840467987890899224719198303861740785789098060798330255920596373302539182447887716866834717250501795900277638735504125035783247144748315359061139561360926073717253082470497708341108524394530246081841691028785501437954130845323048194881421650551467030085688008345293661716752784168139450370715947559696304602900802107972100538289182291604125471337485605305533124468925525454439555994181834490935129525157250234418755630694169975795718569060651263742642836034276351851743603108070568203998442811358882199923640969195968040103245548716656128679061587951670085109554461687987954507821853613749376917277350672818906608900700619136053706474426738797455008691571606127949350541494469027213155101335521093509859477969432062539055895723555397213905619249662836212759315410931814367318720503857269231547636483667046260146299289984077654266926501949924334005581541933940699075478388580520652653832248522726027945699512213780817010899038834762226042122708331108272626023558483333655004107100468933616026520950832084422157895530661376216315364401698479403692024004633198330958943869203471102433139217524654541162029653265081262566252389895916903688163827899018694243303499221615031157673874854900598430221271653227900713255554426749323410470949645539081239175133177093777271839170857389925451096260487611537012084296019745593167796228474530571277022534337002391481206146144883291996547243468595578951856865055883380136924867932254775489932554580504311205038559057217623680770735833816537373430496251712034562650491640051744972508719570433987464145778322100694468816292783531942642885316124572239856966617757132808165852262459380314743348455878907986266115768912187240173818626696793546530678991600227550660425914370132845281381442520496011571786486731695085367645559815405843150912093976223119443841092287007790066739823189035013514974785787714117419962455285043925994813837914081359348431708888792863930115084758359657971752081750316136697565494649685646654825488185758118344442680639514117372170757244511980780381370946060241711916453378618871818977399615384118107091666685231250174346323619333688581295555476587525153551297070929362557579515522538107457547876240803029170273501313793436575624444445467983873455491412227433209534146154343700727686701323228081575861521172243847228816855846830596173583404198560792489094493940082135273901152284406698115290934757499678866638688676622161511419570403579205636368058136825469635328737045619671537026957008947737024810077411031689987387723707380133906582706477210881172796087538296810041558277888163599697807119583183973913961030399239235900716662258069274534315616554842589728292257181672934356734280949308749882174630676086085855924055479592075532551238318030058441201626886061111866673548963617800011489074771569756386129614428680910343990706236236213889384740538502007657890865419683702056251178373802206691052216092007751272400200571027532147990733000286100596462027283767289153034402040709383071469391048614778597551091183648676858238918446630563784437777841511996868543669369151247824808475342357043442288312899503938054576570645605788868401080076243857739110064685527994713607196457049574245811877174547543114707269908636533983047817665968315087504607484215344259452494359283775911863179845256337182784787723599326080403078099767251788768747696235496014724735965310956184752556526633452548033621551180982663005679090650214100298781779054868130577282233677682790691384740782546114242758059074826981591697412374161526222130792208705917396800399946283346407288865502266945243171262164562018109716097478309697139691439274742546268665257112221155160169930641775159872269814658488389173995376297245060780292022231643019086541606470964241886000579562485566871038687470664310523557454885709226835235407203308333104074316224154369380143504217830788258204566773601776290369398146481406525709176351123056848918950491123146876346454506549961110450668193352548442589193802941115906124908478461808010229648648782205800398394640494152304853094793409161480692727576466817234141278747650588677167503153424415457653247864103425470960950054322251105235864173845656193713097483144501005836805104121446965619506952463221516520907422439164342102672793296441454370966634416051168612820128049296754238766817346896512532689489080392050858116446149204854388133113095954858588472304742816217953989143139667360731101192232909607112748837646296862136776257841614791445288895517535719493216344467507671455449363494725926917604051660560556900282111727428331370552896024733191405609466907911610712161828733437836745050071143775491082612659182314775262073347050988850874793264307107174450465128877118106188680227089691717297796979167537088787724312730029380352529907682081250825609364511795556399260481565996693905183305889704561677566493051452283970354823640549195629052228286316838608587755567913295963415152158278365465220320902901711815868210889060962602779099521614427863903544540333785458343211135173816057620867501081583289160378095095518858553321436932759501966976546952147175408768611668235056415789324100108763037989991056589489901656967000591933939819794819101202504063580976156123701798116611504619688935696571928282344603261653728506209309778168523900599768529687728798109814181715977776237328577957244004477637784242056458777408857372700678444292493581340694382627629536321143684404866923614188678956894054786153717812932239362793954740157933678480655632144678312727010574346389738107882471341261054260183453795491352078309319606099852660687351916254775447647309377323267272440682995845575892247111419009166492943344959845857797331274096707515331529423750192178180713122292631791376204143613499832188719422332678018744756914673707302121308353945321555142559729693638257694864107281927775235792943032170865654014711744929682347618431458419605352160067594517346513528677914249024838490559376992814216049003962642217319129452557495112222086272343049449924801845150284567470096592881852294634530741419458793912728585767198067984472512713665753562944582110065704733610571862502055954446321071991247334497080214110262648113281581757249210559189711956225445088928714582670702276392311300340444291165022735702507958531464258136272459161788729083841612861146184882153480532037527257408807451035831450347767327736141193923609795001561429072436626521201288788466995814165539747374368541351960039741162147232559756143993011710883781784653688353230115774239615227596866472154363806154346808732693520347657350627673760996115776152874405177151670971397118355277144518276045194480395802728371930777941503325018723002806356616995014228092512920013700466848562295678539198377835903685516593034937667294385979793672052111247815597658346681155597020635124876830756875123607532535819802418500945442839997577162086183870253462611478932970933193436969351859685199356935441829135911132030107851957873383289088424025003567081666918497341856492506692766782436662817476067740667087687134380239207999771213991243144005353466930263273501640562437620167255943533197533664377788751572519136692210378219598107916942998161711112942172844169376139241025508093728664310471399725974866194435107210546631254172488356123100434009559507431607586635980900870435733194407761159167882019361398773945279139344567155080158526891222127597848779580626160897700528705478894688854936145293778512658473764513627413091054403438987558617664413685145687873935918788454873881240193422734023144843514579268375290078223114447911260515258070495503053456924498600012132845233456238349535275429085433933564296802130462197566591684290394967970938206054562760637924805695820927879310055632784561367239783342268939684028570367517920501426997978251822800090284002543611790175865598207198054455649674931019069455529908451072477518097015981383384491799862508366739731453421570717021391932942566046569840736977535888011379503792896072474225036016627987868974934973305373089147342642202285400632739802858413635097641437512431142393740058237565977986398190686173802432292432609212677193629344931659325496703888085599940701153652581786292469380766905699057063192897466128554018288157735573324083943234449701025416159771103980892857561787318776808432201509571463072359721130497668490842801740384801303027793292848938688017656505897090368551789276777787459748258634762591100956875689466957181819384816533085993906313086376449631868302539894718309434343970813998895758248516448007871695513185895494372120236272450391900603539257513005501537319655698699479172362077970907575220358038546833892086313387638939516722050966419048527454349123313618659694793086031404673127992798857671118257346192528910356507314211658109757768043824818696253826278292307056970029475771620525719053683808680608883548436574159302803596611689300417339148104907473692459322279177542395677092580206657106932358262645223397723602176771851031803014661159847200269282043752209156110112673826591027073084531822133995943003645878224237129647149658233487140902460744479550672748555508311186924439354069643837870530826589987996802335430382955462387227301045932244456104518227386138247995816965429810714615052168783934764832462482211270101025156328150344986115715042519212881330493375167786681971826111936761226842272286196583335603515146856947489845852651685732174275427411184511614061494203949775109621576320223596115654516025113655503836713243312677840053827853542017197391469079272174567251552811333030257482442326668307792975786914905765198788438800585207886423932717303358231342461548442047184632493428523500611196711798555848501426506529091927134074387552976180650021779468472278045577076928410767379212737510800990672675155534086483366455486601843570223953772843911917841801653041344604036031151631471935492306040380740199783368959342557520390697841684149271939709374681933686677460872354540144701907450799030005087951820729040935579549849790221617772782462066794002932373474036787991954540071217387738985934885973789239740580789709742777003830096118623747083334364632820754139264620426670941890040221534522421068228995518656496777922417366364526711318251057636753487216008456732860293627734903975079145965696998846913657998707339288137662837669245701299789147230833148927731424505515904723599604382472881437045459364753246688039332542601313670617344396727182336646936111582119911717882782285772658641036843293138634668178523391860520934127819847157520210200939899132308604507607029736275341901321046121069738002871751630549288471372420106894157089846066966688039426792744578254145722798712032780247666375521960473192689717263666192061696081751422979075190107525242739747080873632281798609031632856424245441143101277226468505127232048422100269671949780482106890808447899650110971399794624317560050665195740091000246454074807863957536000726401420510344108588668818305854307268304026691880744315959752313915950009305906957935411141534046112473743894395724675943382034808524449255647824606223403147824991032152432554284812681105939174916424100227982774755897366407460163759042997251687570613945483511232008432454429321139227834973081377262410479970409474528959568740548746482691175948068164710034532203533707974042383972684087398465304721258203528605616337503142502309298392094893622474989087475287311478105632955085054148609800539980276975965738951830187800071588857074378339402936108005201674232935679072197033185086943119685204391395377148668090902300976880525835821748054506514036972675853336357325288642881933238159232636921876186165473186961406610742268463035307248808984147235316032011061996407557983857297738437576850901538042150594741388506671344851605265735864248622266262429204227080933908849326998693599200599425724964983693391887765998656968106122069344325414750378554513983818709010509547906665965752000521200577480601188092415540905317217586107670786052800279714319890227204167085721317881842160858930201486852038923254900112280446360447449954035854466129367870684763524447679042341445976269974245197765010048109871251765751155223037061520783317443159735311905336456615552263194349004068782184247500058305612076899003915055045538738110271892834623467456137079683949531720082184370308106887210400561300168926344287050779250846887784859503352011703866779572825052748178001513998501893441468371075301069220312542472788304842655653055350213684607839421925484819594814451540987865193090295473319344546862168430739295282273888279056772538973055129806214826579932092731508418991011788504408940649977873697789355018535633859952705787003207007135346042317977002185592186073862608455459853142440402655641960537126614025690964320889570137422206580334687018228513797481844691254600962897285485886793307085171696078851623792047552982799232817632752370358279310649227349768772514422716603542444785483667151968645779447728231855359985688314015038878233148813949083260839689020129009902171587816918612928725186286263869694398610831520151696374619656662934706434090856950309569154893121350485583529448203303511443293934983307566352367705545336562694245809634679858796755261094291060233847632634216651826321195828647004523590524086382497991481181605845491126655830054666944888443269545820858400103978728326487044564245467426916024566331456240712107225314608101670136467344892808275661427946338042031740915944195699065995852644966938022377644625760723603203177434709061600197597126009349260118620610399299212387001087179709925675241386471118858384779935997772856353893135099427784575580591763114979902501758274791733043421521404094956100656679091473442225734997280587195160565203121055107717685226842691576910033407753508205727686427103951148012725797769753953862428490547698647323737291754992224319750251342359887969406919960848436388532706874910628001863054889741606992043246128116885531953193133949087470085571873911610613273882940030332713376001557273798219143535590342118764537826530228238689402037291778280370523116492848016352576211060753933998290788628557230488828784666869646869457466914457786926002420814510371612785337504628994039972013583640872444458439039091235000812061744763067782423940248838963754355200906367485536799803129421175455943758292446411671796691205543990596328687600705531398237737664654002890596283448108015346231717289601956378330314293440591626140709701830928691741796291950440810438415797843915329221416667502705497019903934673067687525357417321717179601972476728096526417131762073287941755873232925014416549651643790998650764671949785541756867014528808921764517911692953845902936147378462809622301565708537939897972950036938391476121296509250191677048458244091289038965141227001295079462321159826309501875380008565298586392949676984332552637954129674826442058834422071863922577692828331564565657546270818551193881689386858801273143497288123659771625820344833731783832379956395000316053261845180589908965238782659194628558328855294758617655415536890718928611443641647222364323483481818181635496659044570676702056473937218734253954595407242926031395906264182757970901324405294910405106697870191810679268096623398234192356887488493801846439894042856006135882135924651967331411053523865637850152770802607783787472432878105535538800510496977448685425244803968108374018601070408590690534783530928325971597800544530527001728705703366564406480033438245486368807138846331422203736725631366057281940801342706335832018801547812623947767098948576611238412198294032910693893293428537010676665680365321257319496411010318922858675648612532092880568312350157480785334431861668472958949124063984665227584530392027629757812085417139821801799857083531855893676735989477689787500799629468170679082169098418204240410594074713557229997693709991437082657474532902174402382360134408971180433781920132849152664935030227892094121975977902042625005148589913078992881708545519887116542963869808346699536677772917269726929028980776792982896888711688741903257463434927750422319081482575124561183909493476612526507043110281064899685345654602200903680394737421395172759727230757419512123983133546908035608384268510152882602903616605241618762875213894070062274107361075813192689961297332661183447344962643258049819173604035023758363833356323218981828647537203173794211962134475841211038820651267259210516031238071294763851012924772804242552666259271244325317727803725846772281585780963258991829293641784025510511173737555369406169883256106951056048888007553571871046581803728181840809723373439853410588010864621480034154784355461064442724014766047701331863577687127559701775726671136610215885317969153943264159954293914062093748744972614806877182816668198600171919314895483760706316687873302131740742831983171236115748561525600032240740399553912483100231497658443953456661404159554229508570692858471764642227748253479571140955090809666683065151318509401380097762388544012639623068394402778958282216846130916681096566602375099761705454872556585223054324954963015145517596264618231926219401033834623974190017460007877376482004754492473503075094375792290200407627940253014608093241927562006167606515253237573092190297168022255715781172697002704880035340787365637282007271372261476943582233304620248812366513207473047374118557703817995094094057405456221074344662486752483909332122207443233878140747371313355812886283888268375362110423808994314416032197891783695075496832810472533672090845359833782052251634284042280877090492767172399489051164157611283571636546378499171413907575745004254739362481017278628286406041398163598197878308685647975438907280361780981042964141210539736852015121247399132371527976449812013766715798876383087163044280690534766088039066419626924102160740013818534693120344951565284617827083782047939753152838602369553331091655971532020918767375976232756521079970288709931197086876453302297035709605740149674333590837759789015193538034683043515371572740770106723801010762194080601659663075296436022009666140135728538872947013410101580140666739235887795648881780309622470693850187451983409560541782209535859055411624342630031512834484349542455102405685190174044559496124243126970014486799050955474853388274156428808614330863227668147658868804730312845265867310759009405171835846489402821953720156412946635176425359602406184970694957431674309562476556789469737058146977902768301965865116398176896136070999000301338884656042921146090854208175813294659282864490828350700338415852001935565292135426402753836842593734654939837758981880737687740717182334080696312424175881446419609928013992595635889178142476600241178420792824908482436959103360227801698058399755402072057306667592729447232967712753364805249174003007235279831727607641490302354664006345651213700963148729258446423331222206720084386611682463559920132604285977625616791255603021765819197972709484470607729248495391096524572846961009358761595329628311219064692987394838839086591833278877791352445190172103521504838457842647673393919330446989675334464000409047779379150680427122981172498716929008911481331640487236680615116979949656717470006475789165966180438445927286871349244368671523336160065047827256041255927405062257050385879843880754177054071166771205705836558969714423117570917585459704219805633227247527792679772061150832934481546345541934081799591934232819400797636957217190305782694058304301401444354564970548696831382201261228818813755217238998913031576408830942206626210419924089172553155090505036805960273742104083811985740258117946740052084374428227471996810157314750524196702233731667094720391337601508054129293898023138600457837908681798609095127990238857085417864229266232084495874947295860422063925624859130464069168585587990187652313030280688977803764723213211887122381412783942462261846816440941305752728159605560758258343743872802139538167563626227887427956283872538711193140878799898995036621717613994035837022862882107691989906504869976749153419212150940602855407451361589108546536887340046235320612296045436815929548748364646389183218904390527767258804371387385107890971937978535054767443795405841664144797185287225940661065175106722833317229584774268014385846129229628580602651364570901900189723415702801667622588235532237735266436485456756974156209463371486760391702485882263634170421705346770332701629059316291608805839744463790642566783113718255343921431101534386912601480719268733407149783305396645212591144207517315299058796763240346521134539009788390185701038142133145095884104641531402411429721359600339453255140120044896353913504969181550814003471649236993245493328330121948116419925508738693999203956880619548686754912381711856132058471878019506125275178299171616108177245523607380333977405735866617918129845288562837255873734870358242807455800870696657072940650645768829781657795711817822409300235206697403319436150322239675716569624323410095055319609299991789335792943438524788336060577868543728514143607456537554558709429697450148597780335688535311205487465483001569450930424423965568022128664637420369132813035493695990634953862841295887776790633175707439001160562375440745963616706300649043952168036153678132030071161022768285548766410391624185546666475649923479058784338552461761967536104816003951000087151269304859249746844977199135863194831332449926712557806178424388709542162141588565423841195837385951625122342677890227062765361646853691431913993561826122800432971217555069970001924272300167805791186717741506109637795446583592306606595243072312959353697003235315339131184429695466151291252141043036501143362103143900671555941761082169892017253916042945784060793748466676612349908727041646070135463151987895064751718558547914993682897267261147303087537371343088611640957463543382659652756440850727603229569349049811903965068065633595265521925824970031309602003762457888958237579447106285432833707040200665319516382398950776212536732345571182696732328812652111371689456752796043745905496896263078075660641824382146684279124865647975385213020980506674099974377639019921381274537340165565390361012250947256818015822963873771374036935245140194271702884512350693050704900536629066468619235698833952061322943205546453516852726597528024251858361370421137288572970067645356843032704261277211749854277257036425448628549836481854239558330970593870156853573142754513252485477641825930185737289534578673136083668403645435947074482722862006886718653567963097850611357397252063190425107975344236902942145855039852641836170910390333586083216094790967671903084616741718192762630272867461853718778723272910542020269171132779278327750550271140345938675941025477025059834667200494041414044051135433070031741356102797015391160215992718460180369142825017134283083825657642436089634567455509214803812115774026993923813691745185769070698261144759837703418673187225482828984606637695449267073856380624604401783453063150995660336909963709408931187903228644138811783031085994960661922711039289185053323120348564581044568225019564253561217951791633920633640480166543616693812691206374167927032811912697916080138638253272854169888854548766218039136911658461495196951394528376580734036627883790013133609679462160809200407824617687480309858052148122144864729123761806626713993350034391230011371668103443179384110713712939392091982635328430337114923856275122116382209385239516356399332300675606632794300372165462052983800312957938362115519657334977105077137500784401934167667599266098070545007087697801041785529933534982150538403286651187502048734900446851017136753839688250027257642281941672512123825586085669437893095898838298042518999495747240729776491926678842440628916678689858442396243814219401002886985934664862179678137977167118792488157785585926922130382471831602645904654417787508106587687423227181992273468989555348149318280751209194187950644788443005217692469395009878622167643616747006537202656312085047686682012381163004087089805468838501693723968168404535121365231338322404107842163294784700179107608535853165910067472901368699192789544338821874583284986070524245403531799706972291192980180931322582614356372348713456114960674582898743789430889014455162937867221488660458911032121530201216086123913266119929235543840287315954644125940339014714505275146389946673574129771360597778872457032650264559326179726659543666629944802902431192952480115607841416162463341675559084831505940106913607136616861620347884069670640183985445413650260242798161291458058860745337464866545144572128370942826025046287051388495781723743263348467422558720026461653772819869741790129475476050328288667006865714789499920623154873673529220941330151651520126326741117224838295888654835153640660725499695936707802905025651586230873667306795412988354242528506748698762173821035364627869482405071746121133407916774340712905919718612443456616288446750586517354356388933877554703010810646173287549756309246814880876267867064937345197756682153045146863032466170191274014531031584262859825192319576400677825231990895755243659272615146545302368658738083589189202454545423705210504795292564150194481570381548545268230593316578403203079641895736061285619702290936666736854598241998124482765549014808868877199089595775824277698280552750473832315527942228985498353226182550853491794810408231380225669880025325217304229022948974748731348480773089826554417622014495959384972617591887740145254403696757606480871926313248659659575095441851041114644160723573212737289785355575170277605567185960577297392818585612207124284685474047315807485143268513408715868270023710494137325495823749538258522750309098034081459377270720860105991844935858751753388422201202184183384095387657901695117799837319312244242719236296041770579044937984655724988995128138369568751860290234757568253515988649256123374193421806137125098864136065766158117425350095576339926984171698578384949993683656356445897589848388013308285319365114828012168217026352765510875004947019209092048467050981784749200876601580972336377195576434336793174609065425737805918687080480096490951537808811264841512340684039815488148343281315317239254167825632349284874480279181665144662523560414487428698708423560817902035269388503068182591983812576050494213026444055425648275143418957107649732042478038606667225000745097234368074875871562965439448610685868219573902975999856928898498927872059603036077430603172433567420032906376908991626790817896331519193497240338042014511923513489960682163149354251716354301515152587820339399698543550952730824028292080634351214515573490112462644151594136217417096919280158749438171081474390359961115650906335797879698600160516048186309031781971494505552631770967115625874925580227226998961262460453599110340664821968802326097773238530638701340843074312062924209876058679504433209208855208714399201824217702850484892683605412713463725482161074986609362508713571927799633849357046098103093716946641641786713802199041235317191227139291735187846971594142472059516981599762991224015805729787024081048344304090626309747579496508917664885092685826134598981912031189687527815557201746356057640956071762818368455658276121242913913904044182676192915197854327510703020231507503492821478774057203536924596525482909449491380616469480165421441435272069495718955963556670809042858097273759727183097383392038136499352560933428195778289417119662404347556028741711379395341626399709298388892235261061889475799024606115096725248892657316492079638229846154396846405264736673437496229668626741625136998228524000127882151197028712520540912918379200039188383160124524497863543002681389438546302613024257502734812215641251816784975221419162712099026571449838131477678425482753044053231385750354280111252302184640832665013894993512166027140146116459775390752671047764247945579560367200805597923488258293867890156688843671616925493832201445377425588186484150196450622778001967183497171234690127329614572723327678875194166797008365501471258272602186275013334752400042198709704829419785016053131166420353680239878073500235972323983560466391525547616300243272298947887291291442205009780853455869053857995470132037756390914643892419037229269889346009416055673511528214607916702809351692778506033485546202022550712071250124340776333681870681132993166682422806853401129554942949781633374534119343068843075269457982792238245578774313258647861243953106391492812946273701834414968640211327697210375566424543004641156726946210545816687437759161653263172697267119701239071532466057626053431158670376298655597721939687422821639530740224032170471625822132052943813711634730735945563322481454810375581590683050406525185291843205168187897358887969228115441784401690036271251822527589983706189602478752267079893517524660972343041639874203714874840316715876961855568014537931436149038176155563268611806273116620948555519869150667734346596830447354313586847302676945007765625350950084176314624644249824687601716444050448326935086033879249977759171225413723036923710458817073041310863930182270103146825561881970416109840816072156095448432277682858227909691558297580700839648325575184799149660274313078481874132385386932039701427620337363921103462261171391198832322532678646694510356689594712280212393672694803702880255583784792756697739557642535949885052072503765996255466901962719754485053580214116422277243457931621169728933935232242650575880249086467094738422335298275985958840122031454840970738890692104648594691315363474793672454016055637813336105256984105676058473369385979762776932214441639656900913391795450446522898405782325179199193918743918465863656220908888910937425931317867103457901520522660186952584368372503223840405965275784611614533647325060301566419451567795799079849169902331624712569509255342919666863209093031629056740375350043597624118623804932194598122351438672639271388905431041995529205697085763236952513039824331087780700770173366570417177103168905444553711176411804976215395832559335095070829974687075417548359261096337814224315373350280536930144050835284376181525405768361952017777667411878408124401558347470751836020971104099324679461131727351629608030293103004658145141800143363936354176252902993441447756564752218575693442162928278439926134322330542052894475718138780317964524055476027013025194283781769456621994667737129316118034227575048784969246680149099120158146922993536458346383716735355074046615363938151722019220342505711028886200961503952433277765950565288819423834538964467694137172474958812985375876061904190416146037353166407218906766990480013068676645437489345341873615011229773611373486735713057796830042893920242371183764155342739856340665421496760188848711176540321674714977019425249637868744332092080068236101837360521424209143116378795048376092027869766603894285056651456444392051627375932216921533214816215659615250438999257914423114345215316424020026475730957974825048846016829213472328039085955288317247156814805910684720111592040754709232404335088243842039290634190309414659473462970353975389508753189698259577478492969300941157466071650725936604523254651666600655268163737241500997210122898917120585425962895414234833347269497066329008409990200413729672439840366667958331628403624602808314878286784101253622659679227967215274246771434698924482511841010262659508650114987321346911363341255220654730172302068907983442086018375368696767419991549708536783403071481999528500335877605791864494989473135785873604227024193780235302868341597316372718989328501586463575110247017678611833796586809615652591734699701101733819324024959251346857708950347760716157078496793397951119764973450315239133136323156139297220707487176264391886265129259542515484713452094913606140899090854005398688618203288417456706489160992234267525116626234298212218648493054978384724503591174019403567235563302752599147868022675559948748523648185185247774363488286180489122561086060453228288561920661260935494614792224422860701508610188265591197423762892514438050947155006190455292131581299534620785113952044262317622928739301912559476111467237503944405403839303295393966821415569467536428065579062930232615448927874960622964214581572922787147437972634317554379501527204179951740946913856687222080620633917733309581853475541180365945081966464052805669520048032967626440495395660505667483580354011017005592271306595331639115411304276110287298055325183737351117467261356374915150083066821105985390484077097125842641946419689290779431875805836486490640210323340343497297643633227822343918956463227780591562842607532499516391015848529929966668060797696124489264683814508249436617039979374097294533105823499937046623490547509087477719030925642987484873270367357277570411459756715622783718592380312958501557976613818575391799112813934849980793483485908961408178345857568836986629537745923472085330134166965674526501807401950203967129880353546037605216394041672123437824880924397956827290986289494333667357098076309657864704453397687989455677213318354259151047250248901416076599897915820281002836480023069011560654734384731116252540566456698741932243023067703925315782874612432762444270377886112737861438390209321411506235994663444992573592135870435630205268393378977966423356878909314157300803637354370659742487199519601355080989040142018616189496943079683813609584044496033880221236749558093184226277906332842049650071290229570795475536070179119564299453294314237152264854490491429840466409710316294384224082106478087868938499069328140006665336912040106404360583358451492336141485071906345353423118997688740405931629075460741183581841315207935384517759270669981168017099237195769666828286218208871546041467835703579242993918881378579077982528680465952843088823598286315181608133057019164343205707004235716502350595050668768810259843819995631168543528547593754247962272328249338462825075290449122844741509669006166504104766259215334827395650367863038788379321027039239983764440323269532497169153208387225680730029614854295062003374153659163841753234486075917990777458351536653901224896131188989963064438364210813414837460348318765627542230208745842338649000233297847221594434566433800281324676792533970216862304478247806521518053946134284907317986089582910342225614407487641366672543310447620236741795520573647342434906676180042100601012123132617081912626431869024840026192057255308484115619091707964466616615356119717107816569338061184567033823191048308325913204290755255439302805254217618955205632856502834222847261982439674801418787143937674120278220826617624556531859309654029755196726506841133756300587096625104989872998570530091572100603857818351398490396201103152461321730499831069284605708267778096422588289979929524386432740285258853304830090602781648544184954182439583998787036439821417583748200236327273238913575468318593636933977793089912338862454331510067498479758010694566432654801258669982115402276614031401811954210515029437304821220322464061780120519438133473168702507972485411771784003370768346685329458805467065268709686059474937313178738634591028374921272060916860891730135647030557131900301960565552657196403898150924288118884515469633394126836330027768031586364991999651702156027264001963631487616250058730291805813017087763080785238995798390250933924246235395331524567112850535897514311763121133538891577342896130942083563740974785388158208522012458938711307415688814887422621503931011662016802737212457163828679872473575669776871781118418707094065506952099951248671714018250168207795212978338383570382297309358474243142168278828359699646141099141436475632445743964297640505302364523957188661912798722765446264639658283362539417390038095829171954176889264905102215650837627024452571343703411486711203250884684701440742974638578053856519915126438561567956296990659033060395765427322621221694001061619310586411393086122487359679717535934550332436512825206080481506003052214004528147731667341297450760782631237849428498157188993926190380099993570415742128260045220603731796618625211097075629349382139810778753474589784231918044516631465996824036866122013485236363964020190157647103415030559982842817648208587334097539848816289677785538696117643641634548538701759057946798730679855069960943221107169587666324642599132693547042121503454565204402412238882303902837907523556521921122861844859609647969240870334864184446339747770726983036166090287235717457364634860363708698641071277154583384951333353202407617033136199739789045997191351118464757087908287144870129857646942110429514546796046958093808996613542598522270093466898499737529513706528384332230479360115587262941843829719371631690513696578613500104606551786230034441864585845564369543878188622669253204655733511912757779151534659571987357700119566506608328521433558422828560578429149892999708216776568772551778207147958844387056726993684136638967792028380125090223486129518426345299951393461476192818771940185020799556189584953091127714299080678554056536695257725755245191137596821042892986514792596541187638897038239816982815707354093322508731185509085043677813247085116437507154947965660887038373339260473251607584104187737951255030063913690163162709927731197229984807116941293537368378653156236590626472398094891992432445609192245905810042701249898997314578506257967139081722067056198908291714009484086147408737787854038460213685304124093617264800906778332287843694932642524969726396396849051412800217043958093557177081429075353388718841671052983332540902433305409926232261650203420290908738460720406514681964872033565506466869079908460162933708107285296201869017341736861837782970054154204355351134616859582132424375516955692227170714746978190156845054910324977922977931250475236634501112726706063557016604803016797634300809317195083552154800011918740203475357642485905330494309837007051248179326554823347136185353532379002718127877220996076375798430830726079598171076333465812283905638095347520600822574277452181300399453960001501791388551377363897866155078230250618625093104327048424211146154813634548328602047020235102318413784773685962988347558109855689976447018626707784684423332883536908896964606430846268159176085053413768161054143986725309980877860229013343596687448110113916644762957044214360769117173608486599583115991262533829776921403706148871667749622356771486952212976303701837327788105346897444837488821191179068365073479840247241956659729554920936467998099258754027585833477780480951576131747172537231713868027091129159306271933778684131475627315300718130066233502128009861616671812669162824263494463467190061613760248557218162630753584605813628651420990302947080215412550749566849529192389901927218545191529292569126764625310473177137579153071214461869044109882806688543012928180463892165298811897429891062747986913698077015663153304868216388616618795546880339802910214150914364174125584965279803332255554175523927008932301837570663945885196712761653961578671144242364815317449170612656558760827286284090303902300337981495834887024109767525982456965410816923790194016554595297283414206781367909361861292057814443169186366626884463397843369629681316542672629094206301812176352494866348349907621841777088237903221168419422066300876254687121657153460028368550619154002582198395501869824452998850111751888731977723578911185378571150148255266477077921686400638184608574396705175145084409310794668098915175369561851911563808451252667126422955985579439426851384661470895667801218544970411109521555280299152536891249178936901683624657593936884702236567390311757530572650388667207953931191725162347412334892039823970119523062055222846261227244671069805663004371810505083493453443167109032290903079680632962007629853802445005062068917674706725486643350797074857869156190430570970831553729794027023604246177996056226428614482731390238649647785817739987515485665982898844944336426389585413376215771466677297096660897407090402728622910289262225393460895542748461715433237665533096864122321085795329172733592668788352146107438969517629292538521063986593909338112351349944692621538260815179988529116036369072141616693518027908754446860205979620226743582707740702664245651347873051828743016860376753377715721994268146349639820895299240976920086074002695655069900273957638823055339076616486842705027723278904660168493328788415437052300087514978952771247932669241153073008279083185545757593164040592281232683700585419152466732957588093809606248598103998051142601765780424909209592608019606704074541710442554241997202853715498515000518774631450445640006047494063166627697850590732365990849910835356334308228430353834682498482859142733483916790297656330772435903811707662681190633797772825907779126759303196193044463495444929024386469093972431576575141431019440745118498080453257821381091834407935431321474871437143417399307965087966973247950096612445634933785549409921382207010678400855909882085551270690603387241159814257921381311317481549940428927782821663924243025487222208207723426767618836840798637047414530880023783287783370751058779552251945621845460913425596874924782938971039427955825358666263021310441444503428670583378967630581032709069642568633605357765298420514794665458650694774713815514417174141380818226519111007846824843196518430543811024361885231969853277750470866210120169595507688266164632687519861120231328450744907986653651857964140656221180475311117984978799409578567084730157424225762479095954208899537696062593343556238310345296494143710160092910715311368582971126309392046142756089376823808503259546208218030992356928893972581844352843015950595186425802561298019270223268209093927289275170637381999184339138473217059391355135508855645467315615467903795242746712299174082048805457230813883557491282786655355048189653277043225720573480602017446625088445603045999124277047592504974431988826848927364043515981208092309727405410003449460464722867779471454703102184011797408506659783806371455614935851949514456593736806778492539092536187211990042842853895137122102920249910579516387399746383877469130992539855492797008401410324343486728571540365601202458789883227270781315944103838176833674723285483253840394157759373278388709819635444408568697736923171541983970953046933062572123876487917210790696225981350304772156331959491328469777747637142214673113336940300910324768123865625515161406766684079630293363089011279734222011762615386225475366813423195411611823146482018541857950895398867393003594442987208942740222416279778386396304151949027558853143724964436694717908853884468418087991748323764569547527862677427576611113074026585628767524285579215367395953332489177791780302757358291550388437192028330309149206798799986639434250836179856610981358464276758319720743416251358794191140259424206700235002696607212461958166915620876716477107391327306174546736710208988213696499747555016824420796949751996658232852779580077020965901790093210310472712685423146381297826045176848566377169409942748546647712524915898107664376238657889300482299029393796437330961959169429162227538530563004889201183573476077167102157386035369040227291200805359009743459829236969038762624847929139505125656580593418464478881703653332563390678098373870120083080589264694802568645952314770557839293125498861498241693078467206073519838996128941178776894392669328801706622225661473339752245995851272520315926338972576674462348836727427712765086509511309326317537141094254159386712712604199785234432047711302941642519348524770604528559900206248432681583255415298417873975785904081733429332153219161629127664698377252432182852775606942638390393483583145213092424638678800630510280089906091168041936186231960368534148166742372439285198446143941744174447247241365374425721906255208382631686926055363261396569340919812871395025210149744485361862134787501214270093001283143195084464829011101690685827910162213844422126412809044452477876574718206171966738052397355986916194185122325913852728524317504741360161195253318377627014381735266972068358101102866490908761532675289055352490750308686636566027662934151741898939345545062670517013299682448096664388159082526092900026743719529615812497947506138495246442444191776515443918921154723716528016782701259885609384778689131578062586623654621330195687532779267222129859165043462983278659818972923627806651582440014971076425105371934021969176168868283702681594497131091088409107624952311587995233142024571393912112782479758298178207070469145633552738936294100389489418358788664628725469367442231099971868941804834091714825322855079041176568624542488030681997025444435749025233397697204316207541639871547978769821347736193491050838431541417389833579386255418737325634840704197273141501923640497284315680438171245525203630360409071308152368251539331333851650000646327270611799825061481737699499434977892169617708178264143452088156817576901139132276168275030118754066614528404922909833865822148620575305350742035242475012403192938705335753367008595495289775562414328022551470162664153321365738689648995731522141560385557160702620395653766469417155744438020010430647607390782218504689939179871438053943911584565466834533608951426210641090266251463080569436571103846404979016567984684019763975554996125332952015629055913298249988709037228532162479714192455065592148746806836551321836534435946748429205100730312865000475252733529431339842612640712663609296068540257234183939262938007040646213730176305980768658037053075742685053257368093080906996055863489569095250605457141141925195463997183742070993225304410350387479193937163761361860051020239278862020639386896587441052938827769955993556552108504434982188461670772088638979023445580174853497652475652258365873654491374357528507126390186544743814935428369245078111651398559970956754962109140324197340888196445515690405224004082486981891889545481234829068136330476810470198105533319729134389264623020418326584733314230916450360819297228520709391907424027359200432748818718702975131128975892907400034525458834469225215615012648176602943299820922535309445137114030413196120922793650691999762812862517796794533489656674420091565221870016036558272451437345565394340355987486634311483895839370397196814055256130607641265383047927733791805225068864040805347367238481934273405662848842038594252657843523941627071139426890741629081576644777274189281610698791447561900643097566445697169057022553729443534182011225171107630042559661737575298619039082603538708509949678658305138061981287885854430092485136424936753270015179649969802342504659047635156407163082703773311865680697365860608506937130644350065054238087234677248111637496934379904915033050565219997443938583083821938554020020271902337355363715931235465938582123529709436334036175081570604426341060136325851498902939773610748969556998632490453637623290638725424330218752337814648418683155649506511563738167654225886543672170349694651065636394456324571614803717130048640682802101763560767077952142738575059097579830686222921958128290336678106527304114983243417572431864110809526556711259468655613834933306902517915541410222867456982728252464479661818830296659841890296313067577323780063284884319945524523695407948046169065192370225000820521912777836492484158530643609036152035920469170838985163984762073282618705005066533551407398377222328680044672104452065524074191391336525136415726190603395967585251420002457130325653123030346182052051566224597109335773219512662410912830624986793795063386245930434969018506613440352647283594165461169353232172412538138150996989419090634105468698284843423737189283886610278888782809287370231904531698524852286097869522697084396414572185162564020724952554091360199302547057147466924997674613812091705741953112115015194247289171058353057354387115329162195007833337174000161226986528586166725501898098894618274520299368801514219224361596755161501079974264434671141686687587439160884226190392263353787828812951146449219420988667410771740703842901859361773598100487307147201789555689305067452555842880444710853527072763820193961060977817750043431522774098306268699573020406802234745475474152199803519372761925233991823057958322929979501824395743529859215801486043752392470681113486262556412434269938096571627564616564430993285954748670752238188448667538537695588992445292076802893991425222555911657745394518181564994026101170961248091431025865580522374967971082952942241556942388659038745917984997473059865189276070233297144949106374950810444518767356862216372176545115347480301158991289815791370106913142219894991557938429298215487764797288258655328801847687479278116489789240851697593841923581106144368914120073676800266658711577888196828846033714709292700934000741781304277233316824760713086811926237849009389418201961489200889683530206589264961091585158823852879548789118275851322595334162196396687087737704965950915769843226811879469216553643406812981259599399852616520334612838061245033811736929251816260890971953549749225307859675658920184587524961435014925962317058655709848177770344318280168111910647857061622002331048565985453587329411399371056312564545834083545450631222936037004984908241830452536073056130101108434993418146166922790929301531797488499358679529798176513186337897673959504266743223660429836439938989066610138884348782505769579944770962193969225219093710484253234057011090217757169244811554332049302183382609566982373522516188171416592092298096524027109848445634064965505358202831496415461813521010420432292124815440176809676135521084526118362617274703291602350892485700363406622159637280565520525258690516826145511211074691540750801157533055203187239045925551044539548718416329870782270190954391236778307990014961284590262482626748201190623109276236426054392820305361912301020682701560946188624042718842692979489559836221376345100223528692708718358779411190859175623256415360892637941107367873534416918844347599475030970217603533845119772172232499253632773441985649186470743920958976774347172681694631834873082175932547251685796448411871736885350787281801324551637574771391144492081130702961065500193520029978017791040957519577664321997296554152852076980281471018224764877923161472616422968940581360034449561821227788172045111879316257485174689749414420753831206676117772115016914701292574882583267444253101113029785663423971880465726399335713570561104756517468024929092296033312830833099081206077589490660447308191042042160098462784607401782119579016929500201470363776387097478117102425979301402431338589239983458563491494791046498198083322384554761788867530271273130745412479043721690163722975107429516259257886259415569292529533818410889822996623146032252736992934674660639574231129749979144321056348255978877261075728551104530196810161616750809483174968414248266287941586210125680684381479461134320626810018904497557509043578179495554258637545235060024784230082621347839977399837133447972123738187407548790023807044315780893873048958762934672592423687849897271839735673826969780017547013684650916312300162827482462755873315092838590056891077717278595987685699583796896813263880492642354172001173917601005512016371212335643520282296343955936578779317212780131458988711898918873450475431633157671607521621901019207856870247600949118736116409254373877985371265748288248960731442845310310107162303239904664411809127367483641165971886892215982502046417295610626985900881447003636473430636455020954458206007370603793924371481800127793254095645943014532861305556598772672063185473191947080317552462405692726829029509565040408985909709101018698826860430363416094059078218323235461651279225105538572947996207605580751721729892365414953853792711105592730677349536911644329548169771467096119695135530466614628247477929771437314509870004764907129827594752661566812689597113517029200875827554021276894491341750887901558298603012933987687927831379143445931039994247046571145655781279967086580434499779967410533560205866491051799603433485940037356510620921937594355529209419845707741224578685564507368360323339694353693902973596203983396471840112289112135646738756501714080422156385830950080507636548099497835635277448705630708042226881467593198956901905709616661871463938294013265859245816697025787525333272613924089403856174967476689203780697179074150980237957312227749111434734101768639967857038345708090554859194157699384330953034353922669941990501698853340968289428418873230994367286611182416742656974013462809602172753650101999218213374317277991952557280671251233632972910305682779450923952804284142181821485965319038958854572812460396552648916688639980601667254605310617218818025041057765982643603171937262946522612707242708254207364610420230622252408501577011301671010986446913202319901294316058306317543098374979017478633676495509789612290215839281874627165716391983399923650084094430120202913254246627347611917113589835800921090357534787094519243340670054177302726239707968884602208514514931755272525449006829282950560125409152252029052052053122324158866567710820929240617302793412598768433741121473738061453161486051178578555679553777726525293429900759611824898805257818125116383732039466082756683079985603865106980479382158055617770141425136802913713675008918094930890630661731065608920526724906556126615082830071392551265911097691291069656122217039780553624338655949132542827182810930371727973860226831421218152025651305077289659371038275643568048343168710014153419572473670528343502575879751723890756124147989650387085093857180627419208364447808759245395258530870863268224010203607490646507170319554337205766559271028430171236558027597849563207712403817617965381640553978516769688934785313951481698713441674625457360636507812843613449284830202846135864041125534479141657455783904436565891052471341792512676171113999153750993552378568636589348766163036835864510646841945407577940741789679910220989277964603163913584239318822530274729560007940668330464461503270924138063483357917091485931252604472670371145754935736875845700960524105260821394166312816053820879237413677963138171723655818371069565214280471188297173244680928438679795739047939293857115648520411838672838766511229572302485715754211094469318891404532247077480568368980643606289789794026479075154682335719245756075566801811685837215199675646255373032872536451830087747799074707224495053012916603241482294797274758468058151444175837983152102047533890544524246768704072266771463381118972108252009135426221529455660107454680065124640361970134177867044722254038002682637494310083662768271891931639054905265604087833706865998072096423428262434744330693054701426015344085948740989176546827642109790643848969220972715269206074858573082948192396491592131584147857877039145290589491635240256494432668786353158622203783775778330479120709488933409860546307848890879598009760715401850717518898970366567275787657335802997257120893164078742307768319489109308623210263647799219012019375210637347316897306185623619088257527874582840748774064577108817659499404166018716453234899833819020585106809878068515281962585873196130709586219747434927980450133551730349310596216339604485016079840109688415663195116360183778961767360855202113728245466028863310656579049249260739088486681216476125730700112954439348482738852783081983091580009990683930851368080852996347196241811640743655548155117915075706651629754559796922951553978762155057595706121765937378601797749535596642757253192602339497374167915943993481404593150050786879373832768472370120865476892822333181264663475090990699956596108714830632444099985509470302528053450637932683730092488661070847854259719775646088359899188396824119234017564347082149617648247116229978654696887725279873211718371145367340994709502378236399075873262111016017902197017719667743420436132326521778208734463396961283177805859851487834029491084835563059740515737604113475243595535325403870898926894784615004281307538328014257446635248018279285425287859525697924018067475167542098990436610888645042663359970410188544334650887266330441495296412128974394136229519754376705859143976297213844859917884974363988997297076059814897667550949474970497312600859872213150110887521496732278842303583308984806941737095122954005153610280113387381857745146955435449852976975984506895314564449581123316520722527262313881334920066633116013005286167250629855873962876884403719286593584511708537931944202992707715057020025107878824373278499013051833042107936625677648761546854020660175976401744497087936509800315486444488468330437450271659269416152265482988913962157102510713283339231733521004578311080551433511950534526620974938646347521996116526450382085512681646245574841271521718472891442247499785082110506380256152298796425858820689591411153208212546411733854250328818029602359949322885317797054951860141611114012361307568427945408422395043070733299111952836174366622801313864838283479670824877028167228146488639232723483299538930352508952790190136211443723162166976643264029714370167642535284059683993333552623031051719766942386753820933457355916077143963203931019072737298693434608874746742911640877685771768873615431630731402928281426581982519407934051706364457965485899799384045427311771800064217726567951027175071286493168410333817637323953489095999197713157725045375868427479567073027652449952239586527905939416698925750881794235455818584818394228057344631286309931065672142091948696098193428638751389367793471816535586441622205192114959757156863274692124016737478049506667187335839741749708598374613298580864395315648587906602385124660928022295871283824293014140564861432466159600240805223787477661571466184599664810303355414201331685454994448956134120058514993761573953422425693766719374721626795597742573546781196157891623283379864402655226991750513014492364353915668428335989261351612619323107494274299635856542975230451727489502163927728174269352888201449611051487935915930920102870203212950501881111537288957778235338510957293128234017953855028631449293992762409504778462044307342140553927920978106151654043503711415677787072860636854461417669443518053376588872010433343002565646411231074330462014986703219524325139455712189727761489388952335904141191875655023009266127618875641136283780023003964978977551749620569972153772785996604198022337755610562125808564495021339252535675472050149569987433907203640910970698828795376353332060926645361697375971956127055954713240534902228809145242811884805699426031604662838925633191163871556821685902245849099049480906208934246416628201409450837805986143417697275620974366121408655213620478250880745032507872682761055410618815016048780119781615981807988724968216237873612943175904530632594687115269966770645923534218497992342452044841782866738056287111097526383812467179121426019606910347089733311551597435880427954797101327748145480505023361377831002900301663191014294507650390271366455083136886234462537898696003685796315657065629585753738245888010476826687278808294937588304992177964796033563728711414961769042992619115298349455398185449126188929323366790180367935607764622586897649792244680618558844878672582043495295895574824294699265663547439514819939441619440456334759348065400427461658144862513205059878688524006109822884157062778281279811863934353254615099522617796684764007556345600003837137768413466104931530531562217568799811957320526071011367263794201119385064537723344898135446609757946576380947468525587759689353847648901361411017061128356694517318644167539334011375290928870277836177084628665396608644986956827659025349052381166234065100843751828164635123830637577161555720867180806289585086678479410086921100268151175747581225483280147108990943107802458349292067528369944277261597283315590889416823487005138993083601843746940259053851452024391552174234365020821768511219462622104981726286984672240974893663008000186709567305159674122333867335205457152541386357505656476927512094132392150622213166534263044454582052004897273653482860056141795477589987683409003422389286686915426213142855075451117649621267587869747171707218033346898765001290863523579392932187598712748776173425455985133490208214084922318371585729800335122240990300075589856924830096455789772179316396006891061396336448141072739253102295468595802873649146289405575374204396076876638606215553701525899704850968842187358291071112379981404340278126990877759566695059892105817210716671081107233368821270401845827554128019968514427996584217058676921470442139328148441368302015776744098792824147208747258132078733406786905433462291041699080205294275256843688670513538458766674901271586036486986276013069326236398240132320814477020463063964823141591517092152613678922656412970263591242012843293163881953450696762676702835916618582257892661699450166855418491625684564506524333755028127065255961788499266839631693400856045317304666004503888229758262378642230294086523631135139011765185058441703163556425803320180459188117268947291690888940355399816631308401673523792621231635840476753739721286132140630207853829095105424728476950064344718426610519655222177604858206006483035555795102551248025952417539212293885575975856145392271998677747612286000807929176688638670203526650800501783404521350429546312256853378643351691414206364646212862744476477570540889897121717191308105640535018344557349235676084065857214679579693000840643757138619328661593212802816472914936372950062518174069418761944691266940732073648446955283435496108362006525209431084219220977951133342903658979727200088902833473029512112179513627626693229709308081566025407803910836310779160025788462787718015085447344850019283372466178526083474649050631286840826200895497948268450006061070453501181430675170162325324881553384612898236383780433896311287961233222656870687867194965907327175947679200147274958061472081370798885031907541854414002827134134690550477312495864631115459743975929580980269370501173077711596450465119952264327118785755013326512974797004346144496640117088342399975157232135951233670863090418980215426014420046275501426437218073912234795065438483646793708402113711812297037925844047500200262455521581044427189590750755524219781719966922194590217580244277158540865274807321480980134934035457752812400073424192507520941735891299373754029424712922781223696489020257493112020597205695177833031920397969392197267288389709068869984900483245533896302740737053929989575816633715147064439753142171333066076515762302722915756916493638855609482225668335633142200766842166192189521670278360123178252455290223665370853325898500000952986002863754645611235586256202033515521354972552300074104426048335156393099994427834256844628543526110270860500789691071675775901372556389808604699547699861642556185153691400401558519529149830909734760371427142717099761298606797919880173373233007474558753252446070878889543835202107962413855681072630766939697030934144014785515190547978139558267783901068632514719054719414809118680855998365855594193803362162265225468325318960630733763588781544768631191104906942031667741327943544261092258724287764951451666923861011918538771630475734734670469667016482122162054530802212291318783353544888146116631643437124636446601369005205262858459160274659562550776433656380189452723433378239140620230936011086153500549905198652437179638661454593745517647155676134975273601122854373217081971987708248542913176700119673724217925233681315070623728629655166472749878007065753683899387282749461779238536920690816014491421058452029651186082305427355932527943255411213675828285077163823859125539559932625734482179940048615743946663235963023659781005333403966354460802935181787625415275255875363163786962466349039583471165543470960407462684262295473771009028829968234541845146605106793678227188332653452542478327587449898160831659971327003347686115076118616767071245378699951499100415669182415973003594051031142895247669293688275846174161293399507638996900218864057307795507402476243579022379932675815460589688558868883813360098013582300562078604438076737591812794563988689357429896566938339064133837570142686714389343493924640367620863290843780988391005652596262074770883765829160306721226812320979081720783428442820484327142177859939129518773097119601678534866749058283507972981518258210591677477437649514064170498838249242660913538327756801795588229816039300774872006149330461407154951271391610339280925549437010342303947966086890040649736039538103596278848417313290426621355786803894910553721017643942862308815829918026052040560973346631699221273870881796681406494933717675502174188105672272552832369299267840681481034919100760379706877877588040694386727437021388087905161391213641462216517384312272112654022957511158536853772028054716613778960282758499595577581128835715277970722511717514151882202387503604444070523334460079047914925659568796620242252080725332724131329770238260710041117545520827963948813207713634430517845498509839477208359431345034498563742632472620320619071577526833165667261047200710520099058718670428018728300184790187010104242701401318842700789532979044453477090108894925062085684111699994791593322761594298790126966419954444717348252259512284202919659445860126425524080266824932694783985525168674571891560286347890633996971582946552100071902228850522221911519879096115722659663014863292614710537546157396017775633102559610989284588978412870291334686293340699567366560110408466532494434852810108168134981135656923187300471190088055676427508508034284541323090903361151582607355627245728093104656447793817485057136457592434434098876017451399089232791267420446144789079465357937858562946346890941473477149051325492205970092698206479543056868533222408421592607375507675305904175176886064693503080251231749448175180447166884865186680106072675485576074323207515166288650770760779314947614036071010488889689856847438428607537044087770080116908626092050491119465021377975735080990391382634632422147276445558476307499417206589327619915549112558289714978393448615084560310624483738632654847544345447278510374709417622739543453764936960710556402087823700571078464605128610186738614386850039461446567006482633070161545642292791689562337802984425319611561298028849784714754603309653986703509164268894703091289946938783458652600903499483426221806759203363618355400591938895319974857754777768832368024095402098924598383350057768329014327528180169398730176852152311274460962728221963847005044434838793979346980538360639919736888146011764940236414636000827338421852496254670852276783265760414559937177541473653482923673140462863846702986343743635832496324477284864908160691474524354933270329626395184282631616922606167827562797636059849804628215191553203794689177019763396084132501979566030857989689234793087234352466925246084590609299038704153391280644785036677000060234485862615638449691450066980033881686277325476943861370157300588676719246510148896690744398826141206538031478878521111956361523303028671641776079426884422318137479766265274966897703357857293537475596623863326043569450946790262125759152945230503310140323327281779260696822667232856326750165686240778765242615730553901865732069491213210590002458778264922026051954407005940801665944186195192382964854058735075298932631930571020506632282331571868302826620371384094672665447949064683484561700225535601078521854294561003728330948806085037580710477923167093617206148558386559450310920236664773345840658572935853966855702144961585024384958570389506030176309728426861925917662340739236622092993298695802969630317474904386942112068000958206718112937793928910625160733136560162525118488515678838987559908395891131529639732260335557619346374131295061367995227564090548645288990974142689245155611851733677384678432422702452348322401742078558055312452219315772013692425272387643225691279839311258057329895872002661943672872928564311577797677265617189764543321743699013246667375595436568568799227951737611314044246644427244405975093169153776984854849738162583706667421916630059294288675630084478858461865861229202954644521892453576080133276116585672982482427331036264036190249065882438406820686816785328266696040971560003184533677822048219400141981056491910979884996386255832264169545243577908815119279787099515715126004073504957234865259886888608182347499081919958203872567905987836826901900348390495166321897347036501969359354494807451775418630471795326393007796550796356030816726879851820203581626634040039871353203614097699511601563684647287664799249301192890945802137472724109007276488576003124968081841506725055255989923397519344060898317262054453887134945284184616442722273456522254094843560765923847173300841381945304637881373061201853808691120197581363286293234797181255836706962206897440148093183620649996362698956239769047896127019222182684941122372276227159362736587682991154323124705722212022026887997248356792065038162773245254800328584757323404107311330727699039944652885443234781013427001259408632667757591043536011814081438464330735965213055334957554358800190353430838953099224035686556130028864993610577099309188976789578761300256151597735083139530223254345479047568424446980834773231360655687752122190037566812249497054758716868273081862465394312638739389089696555924893081087694372997757955948411063870540825151348214091660412129403789447271375870280364764141886351691523117721083514315637489221321520575481394076878470088328079027332650920386936512487776942168057753158424480414691599222473134359266402878185447632269051439634956649819396472845086830194520353369193460208941036788462541322763335052740181541419404526321645947231075540423788006499667602655219510137165711307181154997410687382330681957315334932796191078367408845699074246600730703731072343735984672349488964736261788867099611199631211315376928524772666849584036932280375590190007189349620808891517618445337916582922951802812273355742621600306334886885006066626831743899314961446273444483107490009340832653848797513251641382895768914257095756743809377587645213799297683947618160654268134892410753797196953190622158823932641410438365698848453322423404903817303714938848689534039042003534673917233279411115567886124589860453724686598996271769516391297892384006295375370233291841353980586519924859448023914564991630142577018349686461376838860871590205609460853837008918423862707245042651546322107479766477613139486875436334650326910961942847166313757430507522167824775462659997391853413289849479021480019272748014037330484984273955812831771102024570571003577238138963641800507596710949306328152575917645918071318243699871090199769405558194211876779697298913919363474242230697451261241456292047926939065600185511342533943742971067304572182081593261466348642520239166422400056809481555918820829827900746620422640472662268397073387979320666647679906862606438333173901882580224888713031851208090157342195740843537975665576153039828168860729942808606043199428734431210955462100215150436789792994662902042063358005884955949612307560412236762613450902413593017797837104010761477272761117396602185137919534410135274645278152340341432785324792454634570691650203750922897372257229942765715922114614947636577234726307695803756089012849066903014884914655100371627122567246206929536275264223770130472576606293733269193493421368748223107652674661084283951823738590392134756581189913782608829713166515325499833396984015591490338130165555513451437261833173451698062169863849040545666526888345797911458207359828050508831930868395851351023172608120093169755128776086614041540397298152371686765074266813502454019775103347221333694525246309128652254149103055220104510191621465432766122866751657341959429489700634193639200569416634923287290418568164386706183260336292094746542766443512582013762824147571969515917989497946154473586711517808540468940503185580055361079238496645638935804806675089252042155764354473874787051567268988962430985224322950851425465794798819982205430853786722429044353133017543886416660340049780595658404304187447464561429763647997841164550659446431530494438734541492029672538504186431915596994021894164708009820687219397068241118045885614112859865370786965238960507877904860118608582400847132315380632396268359676274072181606448976950818248179306816813592258602117337654349276281237474272494541753288885519872548920346221117218308376941194589534654737656980002941052370114640818281816481585039425667115407845111150443176949509141753151211081710284914656552935252763695801384499725136675445384048670790325854705635977106592110341723446758724663367428045662792216674497115131163333737385666544880204550140802363939199006251818719195744047888092999879708389974078198362495405198719730853419141932084440005206134308074499545434140462001376667230105169457362130230799376602191504439282407208394875290540640657259528742646631330599817807542051333472478322307277329792740913146741326175997959337705648954913482415067013466883937134929913468922541213954947572644461293496566934870316553982538766404022015695297352292785616247414800582469784856003658341615673079195077755965800365805539519329208616606664800613325843635490693567482828408682509890588090487222794869910547466368014301819594624844168409562319906159747759109619248698341435200856872468074105139700905883422666203231893010509337744809493718971626812908852096635148887504820778251394210814543638144307183347040756618751932200321314418119877286416670903816735738336505738294192378606380889972524636332805985527935620848579334130213814027655009433104087232324644428902054917748537479732795481926202304508204929448955152430075305689268021140285566836664042514119254259919498417699580429938386887886675571242551837796267788948256331443647259002012586223177231455365601282729218655363331164672937547027087080029668180009246734276504692424827203882701680002914446899158073862174287598405524987237412584595357644661625701530453700882912761072122851314848945226601717658034435110718755545330200327772266448539027229272869789955217866720367097560024739914511465065832329930502924443974387746237842625424582941979964160791884947919672196948421238801276392106183391702002068447888923966779339786334475397340159157677283734316639485317064004689017905135762366308165055649295928811735994560322811977653180519626864600159781952009056370167802035662793358245777422932275742599659903424282136867052111619696323014262152424408414672517601872051910687255206965721859363855853959367619057443207175484308604851464359938711371896190608053694583736635460205062648361525475899181707636672362648571487578584878591048377154669931519422471431080210353007667845702033255356149531183280188635659979701821790102059352579022290359907412611413353850551080219279178158839500392640687532960085882358326405288613387868566112427125550651761220242444056250423236649318096993887097454051695950724600434572618940519809396193769876628406241292689576601154290570999810130543093989211986118476101607306274857857913529462882778282541751316050914309387653401233484262093819409897876875038903595977196367387010783163483602409599914352535761048501640287586489795952516352416310653696670084835624271587657076345167624111418161693870591249632059766618077174936352033086808267293143162418358120347362950824253499181053392775315767307922420564466687537502586043395560354273921866490889354331830209528407836745704953594351144338506404738927524853180360819321813968296883536660643982690723369736049929606874636515541646004392151719018895753123715943490101986066084389503050571848599180236543268220571523415034727028378646034253428822180354337232501631645771553129743087555839402201715708487173090621862170643286326434204693552031811714981964438699046730456054648170231481226510544030279475590397950442241211646982577494089062576940508556236868315913728978057146248058208746227302580032797007915361723374617521021160455932198892058858572527886893499595068119741999956309116891932599853853125957675172436225639981523100758596844853691897550732141216994606762503394253856746285436739309898726503003795012619174423026479871430486307364178606494211568829920746886823415007688310929836333197385631659776370003576362209069800721505343678556826381328580597491424888487073217505556499476004889754833163630410992379523374464032134903239145586310523089444876808136062484588781814688927886154741578900249567930863108118705429425585624860781889734794332579804726931253624091972774810822488471945287168420528818034306700092860744116283320496551733086239515474472195525940113997643018766814772973295258653897992717265754339153615200742710606737765296534274594415158550557664799056327590772477996336268827919469875680939727397394266481478756874929912542742658509107629873973393728812918037145650501294684270911307621006020796376786383576468760040508233550607607229258326639809790121677350179809533615917789171433227359448195038605356405614246892937267836402498533469162224122998492101334229184795299631611788863620003288971360604450710267680732476755160603663171579267193186100209608089519301007551108933994767537844509891530538801336603135573824398585506664329387668883555614539987720337973115580779056012781196780429480595858071112917050051372456791555388785364106966916304639996319331837822273483276197339303073085263171743765532959640070910768064495761866052810242185639643107830058487192372605598546067366386802092725702853526512332578697366493406931443109328742995323566552953403893629365284376229189786926292888773634921452601012384813118182390802580535990523147414356823312660585646057673133491241289435197030825883748714331799391398326881782536387104771195374026914732884896923310648403994180514397695328198905942967712669701842188526261893926018344077953096534523071590708566018249101228826882748990447333429442213257395540781294092246692319576233689481516335157778805370091509792466569418357417406713480607682804688223324463757660861451820728321333474936740346423729582112549752744994144153392752439210140611656236653739558286489465036808839806794881534037738226124232899333186855790614787745628484019367056043152576843944458828555766012763081673805952957331838401252462634355393980335697922321642218817252530460668369325316776872600393062793204923446310627099235926041596415155925338821586383845846672133560003634922097751321390371815163577024028927414623290634486080188132836746038500067937013212256230378106647617610109594401028069616620855903227167306481860213478200478993496241663020407524070697131688522646427612587285277206217746382886865533666008324583599469968369934909237386038424918426632529793532673580724067628603442818409921836608027084337367426528464635984304549057981125988701138159080800652824474535173724662516664510757282368955178048015029267896532506552987462854993260097156599783508957347198255683753417416348284100477626619374067667918775967641193943991535161702741107228331854251742990872276368945384113050350714502868599299373074057381541702587300921638883302413187715002790603204941436145735234150556725271465339972245021186655717802250534104334928942801015051155958163548279153141489764348888731313289633151346978349794570904987381012757089487041888616644323159621238173134816022171871965359389138936965139895601829161091427234539342642324243653090638316277583665305625419273860688296111600031236291023092788428618270168642517824370643046178786672404304672620216709343960938103487190773323998838151156343381514280033530766131048491895659298185846682289062431121299832603282730250740735539084376928758292650611539429909211279058204418313797638815995626229502182128687036659644932066277378815738107769026760703475559033241329593559676482449493661021106445740580752793200926879974481157671149536339189736681101011845546929574837217740262918034548649044928195049841436770220213572041312930214657760992198106280664016711243996770779544817853812677755223787918364900434872782167310514313109268673332373123467258919969816989966235691807549631275200285816925059867332597124768093032077123805616776431004300816112442538462304085029324258719241791828013486033016002951467997520282125424996428751140336462177954762077651372893524268148931142880686102438334202257258044449230654657354891380444439477321459637733294975046356269750761507405973241841050067036177206013470800043679719019668422328844040615571637839510629392226567335579417700701731220439326011799701429681977791406091938484631599338587463832312355371155897158134430222848507590967709068265996995313305341879223493517751486657392758418014295763969580620421954143700971194751598714340707201414113992851327045125668774658167974717512185309124063257751909231101727684373646852109575079551654103554346639126406317242590766354992874443441340654338672795650433937440375496410584683506169619364322490373758554485839208786629660267687856894895920777376271880196234617771576521379319492392606284528300811122058879193217926231908089986100368215648541049995486934723473247294459945530074074778321859207363209130146498283380155314356235115707576740808394070217912388255549112363409155458427203690853425448440977838448861140390986104347246857882998189717891359637746621208094953048600575584057402302960891664283483842109458791042929007097057240194613425835562749766768798150196756624436185640928883028963054905293607505430333553963953677319325173713364663319879975745668964127410596055070205985470122490332354741299431355494704349592877240608693873268291420652972359521944674678138423492012514123096865613616825982528999287335251962643502813838752056307080831535460034556020191456453381305658687792801320661161731082666799654852742102893983582703863168885149613485096237388812740010221199510899819958347428281179880070059126435414947787861544400674811428211785196691066785312152089836954970742519057186662433597059898884994129017188147286854462277705304256935608647957395596460589829533190794049035714667928400139497336969126117662374167081864672455743430822665280875255324363019492252209420703265833347107592999292083117032427470861001594015123020584993692058641367634373568509557740796827975700809794650693755924088712539762520578725508009028177269074542405601481732061017936936757101727270051063853730671111672819054289329058350693460562799686262494151765334208826526213060495191681487892428367715897003818860251110523316310802131953579544417583469583709004079144337416898655477688216415364992287531758446893984673483657842150688849857668070459160248201342665792535381549925409723198525209573140057980728800949901101515266823905435527551352729204991869681997300484510705035319802861662308894510155659441134450312864671130670844143586226512637678854689373077941224055941414456888929187579408724659649313118404200995355224864884561584338979470029186124937419598385254019463870604380753400150016152195142281853751454654473910659612978130219654672045118206248488323340201288753048770690479863241888257310487218866480112252179986927979581873021334105238378221610232685944156306075633103092593736183345865837607769293570585797899621491204065771820434300470290339586948065543366020101944869003531545679553351517892615728764993601322536977146200052680114206692520074024917236310240996942385990151703707817541209791076273039526098863772848519470937564182302094299136221677996255687884786108735252783276885927302199576804126137663644271019127938640732035217976262760651125721012608686457671259925155098539718595293411039871885949462477054739628592359740787676848268967725342363887998099401057243047056397662984700598402040016082850974487677582098382465479970760374476073888397016730871740426785627338340540557790425069470322192729430573703991823576033577891683531783282422551712317728363216513680526874318465391694192417127308295438963323829434724111105502885975964266464077681757094948800884971749478426218041350212706688133807764219990256508562786022657952090824000731866111675577601800403102894741708451324000807798152185864443894580531248092268896545653777847179601893835477642408505448960131818244003531271776310784044849975073392004869444994906246868885863847965851807000150674695269855849779686397003356836962644701761829023263558985987529337032160020839511402727465054143292546353189892936977977723783432555279381710737118050952705263704304134305261741258549129813660172345976198204442607641523058824252456255946968619868083181324400146924353300326224915237145623906189134871001212514297226323154867418566077402049120844063342359589162888869697836116001014096652028741001549388350230174926065803089729529929461448596802643512208153988130982148741198709525568198404401977748039578050984192587965126631990147423329961892516109945691907632258284998994579207770177656095914637928196154311987011228149762564730545747306451828374114076401341372838066333306360722499009910885873029091764242128929848844404022400357915410143044878497818154034603250217599101473471779304059803623182996571277220748710953268371308403125433640340676858698758067178566647644792009943016933084825330429536174312753709522205475449495627146469650810309411821130684716432457316373123643552547027185210423610220964175200053668996425246707469102344920471566946575810726533744412940635813403385051485930933335669655369605481136729844532069805561332583897757761895447543681678414119729878027135562052152058448048377333156178297028713553757905708036351867488420952807401852157067747548226865649238275331120744360582169858064146850382607858557065320574040711722063216471475152312738151691062683134978229139669143785508296932658126116400368725295821881588012817147368035644307233469594354468915615403231896248128227866863362649249258163780269945556056940137993911858116197379659024181430676690835566379178701252076743583526304882210901611171569604013719509861172872374701413349631394742850401839048643022316596751055705635175730630351114278915817733489281925951710714479931458544834320038075589469701887461520417226853464509375851296948664724007933738941012179523892002675113835246200147097616108495571550455501919283467256919353755354933204941691818589419031854565790521520853333405407402878410014459533692301735585725226554995583098213394110451022611540876857650300972995068133627796503781405877662303845814332945122320544409327334955762082369437971468344509002063607454133366947488841065449181390864131268549615560658809160341156961157599943849578581148162283164013355137171921154048519513138073254184589446563443700102009598023984731323140008590019822934288157827558200529694004318303623284051591493901670333635513813524815849763406520103849104434059825843823491645150787700082079410379840972677003417281284887311340443272721679503884728915921147385342795145422264561196191638525567088180128264221752962549775045376037367640516926010547018218106013372962312483277942061778834720496821553955681789931709399243102948165575671439020705617604056261693368946657407556307874709335682752130530732748682973825244773701468735037255959018919627409263010290380468836506629749530206562642139353431047985450663900451313380185325790855675255429890368370492691272734923108777906448904437423015930165178722570855070969167426468133325226517790149098731617008616260676001685014296469035127690277968190494811937936310827473044828268668481612491489886162553866147705984919634496442501728010609595907177151163101085024159127154400045952672807708798969732743748416417362850801978885053291900393641220027248248799615426449630502364611230293260108517440467149433943226362966566891157657945097602718040434515803654274830353010817780929947207462368164402912485527544101870156172704740121491664875194477172919232774547257286327515990036077855440173172443650809199062480073066276738826553540955683052051072622188376960587401747195200287550802407165647506689124691610174470017438300532671989080201393947348095961209165013899194028799059614409173354236350010071894223446708992340167102887774271040265291060487832708141174941116418232232243526892006049354351197922121530304055167825561351617893972823662661525074857137067597691909194991562583045222247553875537516391474230766240931002931508534267008346202552814595491260771662451569741183871933058597118072232684290531827023933153777329250169740909970218075615718936458683190713102221646805562783223039477773245443262611569453223559251696542472787267717669593426269328051607804488166701567759859609025554117710917236351808398779901701002689627579865685930539731480042736552829595723387242466721935297652472263234490903184484335044743275249546498704429317282804189712356086352645514157050452101765339023479770912764745617033528563873499736455756878796704098146116002681406067370113391376375045757056539275558860239224088726565816925889712191735160561245667631999729333437301904897770591434410615289371232691235768349450504826494454896253430613158717386496492464424033163206256165378765906632785884369062556770469127303150263007535962038366594591287734318066998686289916546948593223404425442531686670221887662345303648689336511032673529846598351339068578743193715704626564837919159906185567364251156539720298625884763594311926701792656117921537526044158399835628399867936996282166476331344958676262094286551534519345225930992462942906779112783048958029799176908313612416360060065636975163082014950502466198100573960464271083193082700328257213666036547432632298372364593011560901697953238795577621560116388309823731806550553709141309687067524188718709197883215710602442785614212646457856892859875437218713862585339387159923592597692678949952636087324224541865527480756227134326883243678564174181512310951123375722396763134253052556005655444095779536624685024393012192820152569995281278360450999069964239356472494438269145545735342442619232325013435356956264486444966980654735549740236421224699019171078251755521144169934766139906939956611609264653924341543372323761560363258717507138704194579567375010478267586037979188917978879369049733823522411576807479046369870907572439042903012636430199733138809777637043977832490315589616315644592129632894125538113418854708492392272188050602343325994076640636113021033953135520382784202477752557646357272364583654926824669051037621361899691721224219332784511524112593200233800907370690239122377000195226701210879191830124547540238938011526189479209128720825980640460019753970294319791879817947294850738273203332818526640718632804412636436203862523418714713053557859044603433006753876230925242906547496070832799922077921149711931846607440906360731577466352212215174547344361843305805812850769469723800225578017199858140108899682669794738038588514375048192368682697431054355977062151992628902716784196877969719591885480790045811173798785021669442451038685286392908458706843174795452695689421185576386492686731554234264305354179175080489194748141845287408522521327390120799862282796267991527021433291232657487443125485642377169956346675089274419136055265791709294057067510452066864100954289711902589814837551909285361969660597574520595296460149851958505696770803876993874366969504719142061356156123574576643350627050929028867882848519031376627584122514449391732906094885059875563866097017159307821050052451773598930286674740764970360682140865509903811459669846306577404600755032949250859547725018012459042938342597966372958495369324958301868634838803494151621493842011566840907090870368503382008172736015292295981028267291610396181224003747347162132508638044657379358194230603204398507560633510807073058388965591572639993675603203992414272876544741859837717029669508641408685696929642638287780357734849341284590137586531866026628685555505061820143955496991729449763358032542658894755825670960011391736557325675236322166300889546416690692892755588640530821152144338871001442929210992940647842410656354179267265270011550928683871188522136514533503469050112029330029044174579718916852327434882908923513624471589252566686061620386095254881479368445385107353478647845767952521271672206105613765873921265900179612507722699394972393111307619106810098188646568165423554640790032401865236952803264113906490461850819648128303567347469598385070063146863826069656595340562095208647635486497201710501018068240104188928088549645635744932766958689375231531540728011555245783936694732208183113944971325646523559465596295308650581768712643656960076503872618082230513254415609298322273523762851652887204687957285135462874127438144584292223883233287674850153806031629743208854417382900603991745632342278979821776406049869697144664461145610292665824026357970990673336975936858819631290075233968426643854364624366423160637019919339197419988426742602427175059469239873823083766410427115702891233604156201557194332626485996158513285071913898419008780857174851049538690417003018256463613182770666738165645435778231883350972166217742735934315308044001069354216109157660176058877089267784164998725850768982321948388230397304912673357852780815449060253198049981264959415462823828759628947572145587114161218353328299710010231149521222022243404253225116403362416994354071975372757523956866555925662612084877571761045518497088259078340555069835331469532195611322680506756485300104007016217519980468577434544428017853470446326469915184851033426651552652646599602284444233331822683560448300896597159863550088339566041596067459547448969311363778274437371166696153421410779241105520720003751530266808211468874324898391254180369895072009680222451064611882126153073033143235153938237266567220338103474147483987280173146744826206376539812594761878335037463813862277573844051347213704684504664088455636589672690170294669939192435120780766043841765198317857490989162983238478327796237889212108140807759964902867828017197457158047239067905326006021038079647797569580077116848175035327033801392289830157331595078270078427508105769950394888625934293447892751238466484029668850692738148946852299600433461387203226780733484166935336965640149249905148768509708593133258532317478913730076261294318981693028952431216558297204096511474008795448960002056339998900401149589347676409499656540228966176057302181126890960226574095524873970102772534945450102154368996219722524334077477486127180801209713796871276274937672447996537536916799411263001982917919142468454109121688696716841576538388248744360504660524025645361025659474795388163474144175970974987173064321458178372045482652875673247907159736491072469876948136234855761725780225923899175583403381345267858730725979398109596999952544531122567084635946411050960179949765190896522693134299639748620771202573490696385064728330715695376596792512476719140000751071161421709455064791823202816707502746075001675223115173549994705708370917237485609331825085062192215975348810678309419387427315470510754903357161808807640178872415383223479186774801191383305572772814224168816178806927021807274739656659424383010760589226430735122220994762801276467439285881896640125587692671141201627412180566089216359265746495270157322803794848829914290150057748381968491730030885821315559883777030305225276344011636901311935446637643853550212292311702168361229407629186348574245498219208512314248753083279516335803962672661723565926621693690196319362351948142113978142621799725554066817699648957107962547431721820286423060779379514030941340193932011984721845700015933206509041184337496218931065766056826230621742033369978292401758623381128165822960697426979228442731955797552137872964744238298530971954241490226313854948909805945136424585302292885452452005467083056199478269172988451063669997442328191274187084645417128514643085412618447729047105124421386523544695838479416369088848928689128918155995197016722089051536424832076650894786108939203456757512129779384055143439471052674033367161202365992232071914643537874481922173328928979661335389171314744362458659763562796861756861442980867161751112587385115820701933796739179914703279422707021865489426550566355309441371262681151884156068211687732202392127350673309996085644485386815151679127023577098007745995388768205887386437983562949189085166961849011438709479093802820740607326351421372164534896696237080410879626956735417181200146827619632563186276767561077004545122190040073068321356694841713160599346506774734903748887592366320937133679151898062093718504355121588144978235876268256338711510968274952002380631117127365881548931496373356424615260932790293871809967697546669614982108404921718597276677212448703224144055612399519357491589756368441704497520457119664946920996492410128398013366392987058019793319830058127761787974703175467714767518674417943106259678143690780575075376268846978601176859461267704081425369106583538849071608094245787849845602995644348493967344691983230241731609920177059791767015995533459137519536474564924188163563957451269401163746586438131802245100737836069956199375032298546328157026366642398620772778207664479506522608158571351616107540451159410933998938924221964059544480150900720927584873237328454722244192849747237744101179514961174827564686378695501928251692538427220982273322126671395074060618929023472823537632518575953149542440344532143130140091687448863147375544192666146149873229897387304923790675670489717097867790262450481958350709879075758238873239025491961692147264278230093500747558352340281329464562009847781901607387440640361486846786869010202557951718930328502292961068555701247258091861146740471656139127792310424304085523560309755883426802605836373370641646784611957326773328619483145941112044457585975825693598050898355264157219539575284970859373617645618315695525159427184062885941617267391842458505558583381589748455893428037741591543992252526756991174188376919167899242211501434454421738697359671130476471373613204449260656427714940916708865015702710910794793158089956683101810261974825281581204786492579757347356996569306970947950002188189376606495109411267241941095878827002499710790227777748742729002215188034413312479819013942041759325234234196580062182593789689221194462623551040194693949206366373725519702488000362575452450943357529985681859871830531205458076879850226641217297317930808265322745088774401584923403631017394600074307978878700361944240686630431085658731226979558117302573884657647588282385281271649479596865319136139981663289514928178069569862059279730200291725719045273082950837657870928093882176120211099209009996913046932740487917118376731001069555044425914262048168212916672536575642498378498081957391471539661970462495913497040059779101098500019027087904044404001010282987155907943136154392090166195059176075905332988409439205231568448347331576512892330358224158864067977825902401677696313502636293943585199439010913996954029152605023419254077940119413081596511404264182755191387462367378032306905469960343000750329760540141940288353632939934266817870708162477399498640887835480210696659747855057588013271284627402303739290992713247462430680288653341697530901331540359297203115172081148819223543329008077891784359155155850416381289241519314666739652562504954810771886254394877295891048408933931742845984511806917333680760191805235595865626559205338601762833795363867768523080584929268533152365002213164191646787673373781065909704292566192768215232055665067978040277271588058120566484604255576669496529851386229423561509254173369838043202938070235112189820050633517979717869544080452081613340005805570970795851004662070918661083167625258592434774011992526185282732045554449221078151516699903140629952004632844249889586204249026379454957269448913893027718621739843959994515529244465937015065939903824216915794364393934885348290928412084302487299381812995078629353879978772395548320441058303764673648707562250228002972254870428857306055898916418536698828331153412737834448722661607331698495635184152898878337573109372515283573302459583727311463722237979073952810598472280900225332414174901120819699091000410310293872456939767637611609701006376722165105826192612549809037420945872943098554555172807349178641918129721108949064015625407053561675197735037821264715081737064067476566267741832246749049200310000941785002449178802470436880311223069576794496768561796061487884317205216291571355028250098321223283057864832687212946394493500002824154127637031567220943817225414894387363588106759827100624435395359875744888861328393464245567034021232707545266841130318887951838828475923202698869188696285659388075154896434620631833605226056501848727969055372135611050335868080743423806394198723331404601730117485902225146425620010236789345338554870922650355845460263341451352903273437113284172283723005304541369091775708347807407460260419164790822537357011192677340145827063356512207312095074727816311108059332436031614668510259439876646206225454426530079470773172166021668656243767193662415058905933941000587015173815723850002810429206406226049857541598856222101602908217114745683254512933506299745690454397958131435062710849041396114234413665315793943560010163631851926116594851958985933639182144382438830339083480068720280401872692670045239342488562622515273166682728523465041718554996561869673043001622495749978452610228525858518434036290356553135230766016281473117514949235321482893954629216451884861431060803225817329155962504702485458293905912647516544214349126261003635141202109963074636965100956356229968585763834694048367560843951887403315231849771844156731109526734565951704887615053672809082851266034791970162641809617719605326823252400147962137113274875897064007535108854973555889986415671666432341948531194828848153887681407747462486190525260881949546378934148463465759492148104000720166826372852693560475150250628610495334830257282088868199038929336344471385711934463416271010835715590083136878089412412641676626020095800936105356346875656936643688827898487100663195901519236488056895917465430148953775252215367945775792457687870171250135253527297530697066766098564324212388703016559688538229974065304251995166241789730286774868792096439523851426839481498657302499511496932181478520081810992804420033738432447034012345305121819294979449583998208930764928744072332833873728447593880813385653835495094719462760973991686208963625318363135036871308486603763548730990572792121371333629972656308188100756034889497684199557279437515853621225200858122970418355928828765742935655157283202020648625274706141716498347682922873922256032097711889962196361022805259384272066521965028427723186102524542047664038864636902599081807439486324592994803369837095277877084944412071091286594262784483906559494307132601705180697400850432501590906548791810375628170339021429046922871103932020798007168829298031483957083506313692023324760540121544622131114387780482820506402720596151399573441597495200937252462463193583808405570275316129573332769053403614915352263708293786906995357202796560075933081716969599210081098416603834286004291085805777491977737897203871755153532619118991351447345752748114774898190173447882622432189229915365841921981160247591427950999424726998873659804251667212924019641091870844701271202509883663759158722378788373497076982326015716413909669535095163152794193365913793771777458563189661918605743431014195888142249307558133965638560736275975930272819710152616711406262142940839267376987980832539108394474063234842606883944600076279544792593484924826062200655760089573624896969683542440023927934365049277917037392715170790335877268270090435658000987350886734409819307512374636601788030178076062253309042521081011854189045843426204227916357738014473615543621873729033938333606230021699771129401711880997208535292436711572421501043745461879547661754205044617355352599462512653605735478334074017708675249483327188165964401657686539330532760106618331171602267368872363380622036343574344524204091627835507293142757739898218829029648775389691747417160094059303177627096178553262538527674433863766111559284934780042102611689052532373387946634787209830844150526893115370692358935996385633205643589753904075913477546641874194429578271431612498398439394464480233804205265503489826614088283907079927452250740643552155107378996765797786916066692818199307903206346362506373295872700390668707602539183158937615890894196050671846978092286051658720432441273575410737740846336116835948256445915689165059930002788176360878901791122151190645264109943104210922228421969997812335814497488797611220880975339658220310630589223063591184679016592668060894701309311958765971762270722881406856170284863542418284326425277821827928402332708970418067420004474934538144846878760477225852493700152867122619924445596486403761001042275521864861397923179871414096035103833565826712874053689868266167341227808273201095366469009683643312581753529425200021279747374070268168775134098431135231377547670077532288757247458570638279425051951106251442119381500089155841080686713017716856308274368577581314008105272762146436429235312425833237889280205411253465042192284615058648328796315796094569275477113102498378713940681316133911721500966610778203779518059968219926843388603001771471824855447475425950003894641922257730783370534884565042428690607724624387393915290539225750937509245317469829832163003507118296519564728490690653559300425661605609872474259274384339971170740336145447654902190861349933037924769905378890464935288890306536171628852556720162577712593002189579018472774331640692462956924861890744200018302830213475130289661252600302727758241154462177726083219296215811959383304481881164720666859479721448856591203773368241429221455025199628362482908736081608876581070768332675115634513531956773883981097496642597930506108995609298106732472585240838599797837413333220253535150094532532752329798930705171971548839571978672020375354749916157379085112812318040852759686014241732078207073376004222669419889878375471041387899178693784406647609564789823274848365422454173982759446413201077271270028077627422532614329556642546905349596576882201456696289895877923785096906489187423221402643558218446346158550748248581814722104112750350830106103481197524023226524615494785107779447759105461114583532133334749440752058433840064697411298440975362606052316491320786924523664890247048470176873974209904329740888285068067727302044918203733452815740590111129928136915709430690423899972266911012610790688151290150376213501174220823456139063673082504795195551790934393284965638359708808147162000234542752452037978620674726448130443957460018688431409669830900597780150325444922888152339777987971853602860134278110651378584661173180537407433412264458720885949769291128794380799468794019697777748994329816121909190573820274350845582781145713181207193779550824306806838855516579788004334595767746481746735788233578022053450960487657278982453281560011788054149264728721154190338488103677678682308821137419050211114471962273825329858174680588972356068502018037400159748342359654576593409776330216300960743813925262542717328386068710097918613748717484835022317033248818293606892631544503869617637132626703505268266115490293491621712682072423358107493085527858649886535805449053611387703131175153065746470551534563770099424447339673481787213556097343636180680326915976673947623622324794968640837792213385235122536724626060641986000704701125712336435396735042160910430491202913309014575230065305345751407418349518628858218784615518452937013633134551044813025672825382930170937789581618067401099837098084838366478511660743929225686928770287545411224410458811265218681425879097541114916651227081986036197770550843155946790218192551422619384142669008241476880203003053275196088428129978829704213562720794704111819773102674153965229404464697608475761291916632167568040583741162422948701842746397473460081600823899352430329528865498034532984113929984702361028711166881176444068015987613604446088566863502732595833464554180131429465014230697696757772762055669117078142343898250551971133024560381910369266539743261726448441232380892579406783572277201585771416252677119941219977024583147130528811553903944864635035715958121994443823027129215065950292271315538349464712985738550579292758437767419166385199286343457579651547478163146816408997498816126982651411009584680561083483371937236859218601528312703361845538048760880891166679067923471815385917477102170210170817313799583820081313629464091135885216135796886936289857220436201032057275618902587030369975236012465171906920223251572804920969867111417625016396540631870870499347419020356389682423733556470828808901523711097014426545709601618339875517397165781783658852466717940049998604043116031186910460367360125436800024063565192078451798602519170802531463779662173458130625744872348030956705623967427601844437694811665592196343163949593734787033352643959325812287111295535108825800114316690209668566152411190442856778192599512749268632193432360601897132763924504163673841996236593557166028911717751736880574498353209515274008841951065580371954500541142727445924364828946094387515399630339686651115295532675658163191313208350516421941193666997716714591083063472486349214347630480161668346993414764908919789007105860917308402789674476287508621544154515042718720750117307713642604812340490354793965296338691537585896117792225858568781922946292432977776574246239387624236171866387261264271679434970152324708871173573731568008211719650143183945816333387707632121976361147042741049957665960098146030656229121687634163097896803085436918480664496934281371740369134094461780191708775327211874359523071120226036514546513865969624822684018981330339677882099481042100273900555320126914092523023886311679941051375400598569200028205454807438033341104277614345882331665683091714699051687901086821380258330452523176627197036140084229248187448663014441213394958855359944171296060898356399822385623050859602863292433629506900747123356628313542378070023524877534090462580316070327825984293173836073859227845036231403460176331367931975124543769384527152609015121347192647398255461962684309950135725167929654389963127061385287605300007422377549912708270184605446651746202530781195870499746290307937756070605611387472526615139408678857944493244483433248589386277550118572539708682768195595893855495049114991332138672391029326700219305962081768826550166090768724731580347829442807968596407812999513175143297294909297717074970365864596383853575565172275504917442356850735250331533370279443944548208603696201716277798882164271826341212248055292687255725247508838873686513119680249068619227686522124019577629487036209952575227173207479451044519217553645146081975701429385767595177931281357083132163833590003559583569585466430633073195668006006346637601781644563615722892688638350420084716236273756644717589063915011347383731941432143272669816969926093808556146639678510730601887333074996021737204696052620467707820178631793940813897670211601350033046724197557622001122386402851293983383774028623541870127354814332127473669639626565402072557540636623937324490988373957943604950186468320944987382680065709104565739370261370792140382000192548924634863426046999300414341465317929090139841434256153940617938363947764224841233780111112008125584170042937952389209673043574612332093560951070236240497883359652846920595608591392536154860458904698065904639569492261079541571448545056511512071728141577824615680670383335508311684989215937444864940483292924220429898152764230747703120859509878688258795902063667330843292018883352972479997046717197660731694445267447002139937045547175355527337667787403313952485258760215698112468878975327768602414894265499352234548705508747351460735406136881737060997501873280354304105664111537478897904890067541947932787746493395759950906427762929722008410873062110031247196322348654942946060742306743968006178989513976770460902518281340716523107889884915797939849350317373295817401926592188861322966547016484262150440421014744151094126361616185409210339138000566753201438565199789512522148136495423923531799748252049504620018207660982380739011718723110285735037182346834493980705564312951588001988764105434396555475464122953444531154587167763654984925245705358221454337501966315034072055150987978538076272638816119146842935598001682152261840875062506646854285135244783031051856313783418847168472647626049874325224208080660194586350343338363915363587005964850348106063466140224843454362435105561321026338389333655975262771400768944160681037704120855802333153481139759301667610060252827504202532438342337323846483077549422118667245202342928668664321230960621048593991137494723837737290507731601858410821805428677360679032011334473251946257494543679221597193079750515252224464703670843819342433372544168663623454865327098057365761630348239367936657167109433660395789973028417731378296350299297979213341428675270831942709393672614073864976548153159517030957823722639042734920024822128363451717504326165817333363809919809493711536729140032064066806517994669919202166395412647540206581921968854257887443142929093905986518212898908216067485644394891196836808996618801009858768841561775779350232726915472733730342687652140631432276929655415596267299303115235424510672776040086535267061672447323941830159568643903268870552876459312373164790514164910678383312282895863439665251388932149314705146412393747213570446057084629140059850954991841909848321038426200933052047610908948961558463404094618340808775808974508980209526647945004308666482777972686029093921164849096850784921339276369115104517067847461589775367477045144088262130977568140399646275599375119539178457884144455112418108006160148390324376387654013613968529152739230070653616577305244137532975902679648843319877678809128792755077881639006797000707542393109231540450329705356085406307905484921884469512063905778273349473678032413140710945774068681355931861275346960681861789691900584177235085419681928518081261836448427260374816666217937317215559761509149894029637599539130492415101758619108816495137694735207924980245373236291771235549013089662118683679187150038015725704937075848268262754449283576267169907348408212312644205893833096114405320884049547892891501729173871322088188595744782556058734832522913024431151132472066034379029337440717143391973565184514894471459599237853637232579495649338975899594410160902490891490842290630355366888324678368608744115875984028390611095549910277377315099199282094129046075146235269176046477943128471377989001842482719485985955558048073672862039762250904628330970608245912403391836388580091284075470977124744397463182100480320358498628657104814608843259218688077498833914953512907967990403159341890781371924641820222894143062155205125317273824884026680924415910664055356021061493398267160902859085547892353779578517311735174777385881846549954303887582920101295378555466461852068234986105098825709171017769824481128770455284766996283144536525563582260806212232650362820063844585145804614280318062957632793451664167496802875457008382765451445731002540636154299306549582364168108062394830194596555777813531788909170527016491332440828628675849949291618885433724455899047218315614577040533729515131488925586428125645344508222883093019989342685102473276163505058663555647717273276651630150398598049744736002768569366374309164740884988179141500728114030657013428981789452924216228501982970266751216133414657860812227304272680327877463478342998811201951127107003752438432557708104785408383553310917645125030370069534396177761085454117022926935777972613054113241960937040735424278360728208804518619057287058788070749163749824676117947793244907005302430031967526044507923960520710432206357824432497104488748189809433529288055190065492172826703410410515353744583618459796940297323870244232964479933142319883367084006624594115628855002107687790967999119489962515245804882992877185237718877565941714711925718973115419724720809249229231227254584503797170292374449476435152808477443609410175511926067471181043684028201278671584372417507669676843191537111941905289017208328924295319738162280520348911666913205196398313200785922851151253702348998071495862351317387914502437690883119202025135178883281057804327439312312077744173693194390476419090557319640547060056095869958330451919724428563471849509463830263881682636670374464422171576786941580981268346650892101090980644717313349222622235834974304999302951893827887296798775772110790081985188637789745092792103463694607639279283700162123832781895235936354742414004066087595771523733571863465254451470146226497379522832071782159739246438167668386532984902068308664989190063499050011746893624103431759888631971826316597162907503911757616380251038407244104936695273907022849851719539772087031901207953745206247427862903483423935219566644859078623107997516116240091969699176455294018537906074283649310066386261444183211495310784591824522056641815015898534155966845421602749667850109142219903379875556410709294376172446121661690307481248887494734883656462675076530073800505896914179347455586710409119577135420591377207929630315909073265851373623774281576477747662218284740815903611291967309240983782817629367717111208605659055738123072552883166129296166915386581152803627317075752901750252138679574660757957714168273191448247829779114746362616077821347418897376527853889852948850477410122098007182352117304878121918010029549593314744180103430436538827932449924732519796560096176889751750830814109331586695625324008938046056763884889120611957623177110615615378691090905992071911755715421378005670375857282632872272179937937916856286310000937344732282503637180774597621307963596904669084033976655644012793308302087406549063861869406113064307572185711075967086178698157522644308214721149948108718541825386893680443823747430851072268674348470698561609728674053018009436800995448332609026762565261755943116730526794455455047007597380390818268173072647349836963222155404990964449558684058740490517563117413033272703576445063059125843564057337304283175651362770674213281677797279164782365022732285807194294764594689663810978541711632861895138547496001497903684774947000853060340478861188118542372182451080731488570362213090443345771250366815837699975707542047457831085318385597544869405561852231153237572610163933512787123267018443507528964094653502474149217327810030933414463443810459923645100015012845220476139870971911440690404424681994831227561981969877811387860099264404600443822262004938913861969279153784568330217286525387272785245312614691029471470811349492475326034255096030410749418057108502792822597458946257346892452266661940035874512412999108510594325652391050894603218027752061238268892790370979603260027407600673683830993550810893947392597539999541009615710049711997851366922957081758400179178184387259702367384646417171142378428898095218283206912988355696783927333062251813121651371578687819850843372814264338512728219366465064009156744554095901667268928781355239973782706575981076378693109321178810426611521309675480149213874052429518820954690574937776376409464898947814596043493620483673435586832637388296643392605410501372855970166381836456949153190835399294184161237267358054593373990501363451622604052068124858713633584769596573194226640568082108587922018640237267600503562602183824489720240612462000078372381867598742320654623591302011953464253736399595792102319012556979268557247856214352676503597074912000705112833534369701399932467616465372965249701194693967000560021890279891752619795431003559564766495833988613612511718798261032722424294113335465105071185172960688361429924946041464253353313432172448992578524577676574453838780560221710468831048696147469873879048407105143107371307157127583914519218385960745369717998059135878421112270183077340827241583986524521988182300912220711705498078119513166574140889629498146988185695632684681995842273775979126019322760608986090905688505075124395696907736838271739424148298313187118855153998555988627818427530149593648659564307482648570302933089582929939291581287035260086110186574086625811938234546523044441462552110940682422703380424330356865263825128106467375449003271342748287690543986291803246352009570617075164384543742185407291103087937785838608839724446297992759919493616815909348296599989230103085797005233668753507634667168585729682010746886254543529236160249379506281396624971712224587467853477686662799201314262532066946524609359831289966235209319482510195680924275263519079410149331595191169473062990544440103002569755057233344350068661796802186729458462267902131253629626087708564104286489593759205302795449826439575014622605977752905860288192243829745554976095208022001519625844518324763134283504307091603872625709694107382128127959247702825130672114161524978596847536679175975875842363063845674511912617881192470024412380683229511253906203148288109393198101950706206260876892087381739250651646397580516567414542564385814681591351849881235482950400484653028608441812563349241526793691986740415690925600270788220193461165747766952404668701526081737038661813870953731877781878474676718755323454439032165388456989062551023100441382079040830748691011118471408521533046193991542397008682229440521491319324525464333400182113479815501784972093524925367645199453047357237121584497464667406283698299614415721591230749699687302542114114064364023932895500369542634347334971037647091024836636648761525347538796455499146183541008718008261759761312182548631048685722438865335744002015981747992219722631535043246881464523872051597590983327487069622650972187629048017936413343440611172193616716045115293138414143207718553302297168114080631266133482054307823334245684299853859896570840598189693214296630317013747000634764772569539660283697037805987778141048350725847649710997250488146871374696879849457813648023489974185762617518233566724379063770089396505886155964142396670512990906673928130535734555454211920497064749191892925833131707532618654974360244508068195078922826451144731255465985692146480524145429599500442886703026836833250196795656358991673735302110813901973260850177950748148733337646548941383731202006806810770825037014772009769577098112842259992738055195925012969789858139291092345975029252843430431792007220045706744932559118760598409793070752872146709209032229301798072925656461428227848552967072087027335006655597024842330642011715419746497235469843962212088539195248200021094226697411595669259124139975900528930258443492688186432411790964117101872928019311030901049215837986408949474460221028265193784682511311548313337217297601408904640490843985418392566117959559727604092746450693136494061009739170050192631807899532608104135055625022548995919301035608821358921455788525440406903690983632059729567534122470682058727878011355953667537450981277761538868477865377510178893422589758615940511396494156262247652449334107806367659819762884737282823426454632234834389830560755537564695639187105807495883037654784860191033573511723071639963934666332909276664010652853767041370535846790152106355940297291290407817291379934765514539738188968460473877979016767395511755520211578028110314699359132517417553723417871573699732207508810744471363027873900433484184078905084845819032579043055685483947295107963923950032435306370927602306004185157425144220659821714524855898445804640645788209459960090641226347217730637167532789863060377048283294015535318762010389466155982478442479637103242581079585241534505078178366769256789059651287935620856132629385303882514020197459281002772578199640924338573334597089598433151390266752797330789824532386535831361326231030292390014553961931469385713449457253990055713514893716845610963732694814040096183633748728330139850136357961702727583193043343532264595454703709472600494618807037264970050487085802562548816230074269734505510504940610611366068606571618003367475271135140269536926494282418979126140335089637713497210606825983059848378976788860451014734142527540238669629011584642451461460049233597985033281750811431610810784670156001558858523531392525544017858926439105024638716704522114045799525034798312851730202981330233690374887938527917626944943953241296964498760456799119418055795846501125490620599025493771918286761620929084735883608966010893750155117659303817741745844594346985912832089385849205888086100123155946832157034748141299084153386199742598229800286245186485364386166044806536951772940660211234645900701241241284535194785901698206955256721680159490619908000477310962184675007816822797793083719133594701634483640928229235603406743229086286153882835880270194625296711854744881972509784097866743412500400195745934233494760842585641093220808586775220138399781892430291426604421437862384110422988444620182926841075929482533276375763771107163038249447344365597447659007333955137910231664768063064658144984225068872550654589670807740957461320029183680938465851455732257028655070138664041992086673440888616415207502399571802605967638629199745320161591635569427439135513567365264852339768758893161883122877710710282985609361338194154340463421247345291748641153414499597350812633548306054800629580311805928852690465634031144729288235247914440452436540205467911822438602761911878108043711385166031673245199033281855909789564309018113611405064789716746666734490857969404067065727617867846737190036120490005883138101163713644258023973025258807042062346518029890071411595094246551585049385614307714080224341934922537921324253390026959372303239775835166484785158467838258129535263417295001648364472539384008167548057981056937671196504927281694903835435734910006662529765202239214334060636742453871723451325074524009897519335436056597800186280410845023579755916051358640250579777307490387200323695186600041995701547148632744896635447287894306501434597224093183889973871691395174827100822130654790344229546284530189382590814130841878562661161163277477169248523916413824577658094104551572351031564349044766357899492500868139663886176257597696717396157648491932401026846934690469370287357026675801070325437949797565193621299796451694437028763598441115161622681700360214726002337967693848720167187545770215365254673059517550382534782163544767247978891860148821256067672889659593835336341716232570238032053441451731492262709093457147168725923380574482120966351399058434576661995149046260567084793020930475940712272159897115819011731305565391203937890978230679469643309801176501945012358025698867944220994859791766794451444829756995318437976703620344806333405267233014200550941495773639053046092301380653399637991986524323000026544213016185185648263625411420480089022688879085355344570913643358124930988532496873779033940034250459509849682274253961161497718578421811398972688260948817868318327015662205040496466097588256472672376576430149847246076750151468806212344614682563222344634417098688860270985274571884989459885500066727920861229037455157042851098534416332953306473161593882141838942427451459299133114998130975591860266520792055861099981767286045885137371372613708874160604966045402589928534959998599098487728241093515401628458766239621112254474313149353031187594122268766595216958376871894885746843770256423529193950652815680777482235839795131001336720739176314827615062004659968422580741231115946168388388081489619366746944991629150812885459946279767497668686996080011763329897878243323544510691551250943253003893475344740029364439828030241848033732636714967660790826459838134999458904432993688199326181231678446530889328184234706436963786772159001987194626264062261072846799572045363340991603291990574534946846893750942096736769539348502018949457748284928532677962399328420237399507867396998859386849887021295914117592476206590829386026497595375350442934748597897189062035296691348417603794733402368562774679048270702409022021175031084059940880705401719538677702857742237496540528886693160835239692577021296550020848237256097951653744652100391184445191248287502715879477981473275870565014044480010892249351703944648513506667542762879358896492160126448845050040598074506148228899392862624243725666409444655475566714252320650223585343105374046778086934611217254349483385292109971778241057705332480041945572840659163444205658357819528164410513622909792023550162218456742864941137134874757773817413735618076906652223344370642922574892180364709391749007230588463842736196005280559379759946744215390844797085996860626199630323547235870167040332049939029759531120608833617180631223687883948802539115736267742183440222368196757304290414094248193647480770323928526464574253767539438275469955554475636854621106411401289598485140810680347745951680152685555982209635499806339508842783965636893340200399276543628759668467810157147660407232785387621278865680687932799894663029994091550011922656836666861078596640256980925807162182017907981196379928630742403157030032072035914250634892983530935087445253544644760190936007286182705475443193820550921623402481602206472230958692058409444302872245541018308045242491864806336352098836515527157512551397907009836392936183410902263363593766379357811213659726041296457446461505742705451919322806103377730702481929066210554855650006064071952062894635999144550826761031920868459471454896937491096773065550899668278785633382635785458230877500503320704372707839243216755728485427586012378825181615497946973785368650488440426176613211160851161142402410537298117720631563854951861256641133163547756169685720885913793628197509712136554068564143494455154509048644392898890008568620587824577268656659632475961267758501070226847587194774304874718429702054689269644365047213616920339293796358373002114825216567999636409253367579594546087824943332761710078264669656998425061201192975107075414991893988243231634537874687028482885478683418275541808418229636867647946447660983929087002168323480222702128458968054399500971273723685662415741004375454063723625435169904027855755435454194012568208636885116588515104148562428217837748885177450613639922463265007989149534720358968737755662685452103712271761615237261553409296893996395718615185317268215551753804781027057318306430377177821453446825414202447847208745020051305068069928638633477618025226490482103534595311621301230358371764914068867313283267004753173754881833116741324901417439075758935756860968836500551140976322782372327969994032252990392457883852805247053152545139060595420652581596653166957436094190794016424664365359566923921568503336816843162494765947502519285786600065969312062760128646324019349647804943663125638861872573276523949419065167460809003936616419698512697313525066922122291403532886289642069467740136878480628015140061361741154275411237435550626621794606374130104261673955570218829026274330305358927773710835038322040432621247906643667551045485549429363874379690004055931950011819701742199972501035516353254780898309115352719619713910289123148626271683108962165025756325984767675982401619896547016477673412830208524019901870409354579098503757174412658550714356588845346108385359145383019696827347505815248657619867878528019721957529284884776297771934282489944192171920038447265633771550758922013130940934564743879426007739005320624364956138567097438036875884919805121762090117913820947549034985484958250887223210401206167179020527032168479007504499517939989290546285975516631907784728880452262984437130327525104240423348346414307439058097025040442024796866267962039368875803589754038217658641701445310761413627962024157284063763430504616899087867983566978672334850657924296121950008071893538785632375659208089804660555021757568860927993434912203213115707576733342328629488404535093215012502861050650062983403069463033039293595341420497250767286201089867492969988752043873104460546277901358446486964167960506924154789294841252606659313048967448068218735882204495823587778343536911505666455530085077304532115514131115468749452836465846519155061355136664908356025016469105305685300925553713358193418059524601514155427551420508301724997798151040675989096501061652270393593825997604198091608998003570941666772721330621975496293871190194364604086207780481260835873519575217007205197480560098172916968642325266261553591324980740826184344991523164590682390523948970981474323372430776408225110748671088467770848014376724231307068362418105299100371382490780615638008893340103240504873917417480224108733067867539586100206864655532236645418504362289367644911628020661765318267229241022472657511702562574822496195597225389188238383433939859623768028375327088899108656525530464106721792278217009300983466297991755142067571278961157749798794999997278313252679180146834530623977402901783617884287897005830748429700262143632915739424964117726112448838528216911222752483677479291734574011184072291432366516877974150801177190811650750225887710484335499105111617116257736324570097158219859633129575143571031706401881337463094942800551991588653682557037702395583225922277775082575925617130298009111087896672547834120881644800025540870537970749124819183487652036662858287364004672816048875219297885361958545683011593888147717446609975532855057134347001699014301687187740517417493534683889596742954374286200162751795866408564134312084974551288697420518777666475949335346844930281020317206927855588109603755869987239237694316739799285269617029630258377521275190782586592039454594200355756361254935821925398968515516011487868770581895090630819712566382829345188764350628082927412467826485200408998695514743324046885942184148904013475378407012863769457603827793788688577135330717558055717963664777232955350385808979325091337661403240014563548607747465436011245341627193616842191139399550922476267416600151716961288207386276954090465045532063522062749053828702233186797567594628975834896050379326557133024031378115478538144264408202273020697911398412782319432580200368045149695455507074240646037976579916176063939738255836856295162324804740846019944234786893802395059233162353514156423275623505709883025686040006169585860623352320239729482027497519371806257916689372652698081988493231722693101702806531311705941704237981230582499902056165442723771472280358208537163919482309926869961508658351372465951484307601721443423166314223245257848764917134311003152783776411685189545284373897877017098989155832992510288609194755444222603768011815149698656051742931915860483293740621924976581501992885513184845582316370353726076229085785104579108208880520414575192168226535240729953653204357518686470829769462481081370283849703962961644045892926004118952570954126522288455104458234553867548574514800672746455342017957403457367397096331700586402763873747322895415712445025288693050695974184552616348546912541219265670818424123913193741823176549176741105433317352047101937628658740635090332379242121247381831788038577478707252685390868351620157255375850419183058525410469244123908189433420149246433514401125645419153549618047415981980636965469381925900735056111373463386916925902002314398035951108928581264856168808068911583045776127661317694539281022545321807331800196710968610047669732816870182480456641178167299370272941170960490475107379246788497309738486469011878927888604089680278399682129338826147919125977772051284241369440844244099473617961574922483843245025494399459137146985495656737793624355939426036076636923272865590848155595814390336886685723186848291474478611516409588959284925656055315868535448423993486382535921131756971351013759198161478453804381022330837528903853933743698012131478766230116581261271170064858550084685390758797489727951970050838670660372834988414164206559043315779584027323044224204917288105387193211273824983314924878529264590584304741997283132623061647880560863529849055844745359348733004303016536539245494433094914848831047597904690519486034847790057251541536897940240178719673667263007025863966276326449423227838694777969403861421669030195608636419573642273989196934511170594747575466518211019892707384876875285262270703374521100147570419435521683219057444634189813521098575923732093891974113638569349238552549647462722850871155246305524715164037347020360688934942192750868855433678179124027677381271556965767914946329590441224228450849068291455090147213329887234434583376463336771885455055581811772181787435791483870113788888473766192690726783828923017517695040784002130145220812035358181286085873247929901471813755819767058185549735360009294926584906201741850893392775787135912096964498259066670001210857570010117152686097856028027944101232249989502989182835850066571072776950550124850920274987817834402117369054615221255203448185827793021375424262027439599827959137883932382496105564775207813341326981879980879665979671244210907331897925007851390968670899632702714550050398970867636907214936320764064353631837304098816320796465759771859854785527898772647258467829469024574321057788420773609605618215601230725349431847616075072217271353385801315738334878377083587710594500995480150968447680369860990820277888473897404774652956318923436334510794700897840797838423695323689317907870315865968884468313567283551742039117907677346629701298719571601725804915684317323647712685848868157197758748130206684149531799194144697073264887143827560946508366305713523190430977470708805004303132488950472055200657300031957760985378220783859248467454643071847933109948387528764602778721406503679199262129831828419230166743241378241742984644022510581394254269678543660398431063755206738641534394046191358538677555322187884466604396611922279161239978481750646988180976964852222715922726941323630637061130272570492956568674512510368841730056264933679843150072248511714809970359131820610556995394066258874325175829015158356215201337344008230391528265282684530085035617075184638357296116790542388923873665616772179778846593660385963272501204840755331123543914268256527526015160345723525853448579159516260454755088676382280780464360805825958549440476437992454969823853852031676748558404831519613686974070394851081652641511879367511827806311307242363466580919707517638717583172994431669849983327840767478500519370470714701057921193652849092382470951812154206894259466548971733575156419607697071640382228125180135656842852693727693791604382213192820463726745485377977016869223165152043946438866238556943422797103320520709282182884377681261049697866047968711970966216518043706848296330941486906751428334862523005001259440052733736799771554552070386397382777117550129580523148781771706826395927249295450441082115894520190027621001371743325605924104931207103465520789380364201869453214595312494148754440541385413866247160281171246548128122303056652654394217914360684918711374578834572672378490912440147690546946025641401787880265933984479871132411901113776148263126575712154172406847751939782272019030430612748416119502314128711385913835970160585176458604669043390417599120574187289326258604268606630677576260094275923012771601619712497394574958316070186199205672752775957615384247094389565686313139958878034289380739152104353517021013468962525489120142415421678438134753537787655152892689960574818195252942817791208124406122647799382551927272197037930836843152604966920308832722612445337294343299943815908282031503692846295039522298388013703703302146106832294943765949294912226481295646121773156533556694155194927367672560339085432731137344980020723027157492488178279514244020604467768099939053562571773553842094350006895538859916915861860104301394299696009160261753946572517762571314170387910425766211075575451446465827421979969221239977952865441921423281912954789362107914219045789801758399386059914174103720143204520000398533575612678058976580454536269472534679271873886373151305374847215295066256806887620470301024596986248904425180149248591974302717614917742829328854867123868479496109444232301064105115837821897861194219846854710036723437138468192474220313634997730041415404376904822526049684550700945894863547650852006113509412445503007550527970423025742779331222697918020242844415195781124748895791964242869669653394562603974816198292815729678999713660820275224318258310554978220733997410262950356631915674931757569977366203016749171109083294243538680243571815464652689714350220858363109647717976553995800360527629799849372112919645142746664660381988162641413082083371091995006294718882197811417957134208461986537578965825282843150532296008166316135093205990656808274484494164684095975793267941523103921333390843869208762845867111957410388988453874029785339558521988306483912816384335487320675117145525584644350283475957933066920162408232453903063948472202423728705341624265832575308461905601128060954821970394830869902904251549255961262853023343237538266539939332239492745391959727459217846321563971389058713834322523678380426179835115875362061052163625923863460351114233183101111591785263397880149260091221948852616005372506934603166116618783040906752464886301927113525664576120966080809503109927927845311430452569743122621619942314949548999035729706316911104279924979326588306465679258470945896573572617490339895207052447491851928071783786576371688305656307915045347942521330506169351572786345081669104300992197333561596365018033085718511359773480343084627659112188753454752671579792927749869811927897773313389037086168129471326735375164356902208469168950860159706449411683537152730104799661575433139050244543788789660267220332638980467577409821345768117645420077821233147591158449619287455730135282672613377504091409559084687472879173008247522885492047527451975564279940487943475446880083333401191478279599868189604058738957424270003269361744416661459456362539684011406262416478420053252855467661442967636649335989979582269934768455427169786859492212483327114645165048896078126984478992874563604360418364201748560279549126944806149336441997627274093609971974474355644392481336230892987087107282631533053382958282692964176310603355396744112676748507954025577191536859314317701727786306677063926046074278990844600464117320116073881500276278078631218843912592490043257413494292766362087653579941183302771139144539290047463651282085758397190493081515022231197090909663747761177255071142916419179832679982080062824381364256671132146514973838777917651929311366696910093799251341902735786903368914335198171104083740664720848914699136116367892525202121723950900529112927540406039985817528906473936447919366063825475375244107856854702395302071742532649565073087936063210959988245271212891842937714327367528117386372941530551378436329594539479657887608644620398516860724749485052863173609627603568422450150583557463429824391253437978300916756785972335286845580954055065125406139737939516221018158643085879737082473318965320049278708158900757177073053654503274007995965424444726942751681755312895196585231250531032602605444147220526272139105514131646287395849747513746312023213779950040246347840716597447774502687320763032595737826159734457522923155416480590441817643337119845246819803541447383040878198360788480700880073136589328644322391433739606354627275396084009530488414632129068658849256820357742781086633274460351248251080771395011500034686741930890035691265299038118217088421696509261999180090315294453801190254667628007976595535377586445142659164040437588207413515024075598541059008724987166803300642579573740134220517378759926896970202397210090813832855896776981209928461718229428676442454679888709629204976155655708699724531509202325179664680358562118933084026079939364150161443407065641055557447047069491389380937792515238327547559459569152586579325063114239203523645598723165723121260947588793478745856721230283680843584705441764817551889612512952496899494935950998203245511143494603981872762954230334165883914316788685738910705137041554153936602855872805860428126273671234837848213849350962792826962967630114940257511737926153031296216892783333811133435441390520759033088929660207596385981027248275998588086281831045193336797128728461343298165585072915644917061029006448632454902750255072894026033877201337017154022835089798922102694159804650381104131113216067393222161523727894542498776799647892605994170022177775825815350842184912568321071093753230658197333286699490645412268180375425915988434028109606219821634782146637138704173731748378944235802482214636706104810933396675641445091152555577458642908545220147985462574993433460126380648182335817182052886338614965199201899579755982746487428299474872525544836101024645783008767617990000154923601730127514544191452752438788423229989743885641235213619553276489825675600408959508136705970724243723658784525527774304249880076868690684296602034285037628854149555666973690694961658007327545682908215663516441039651375105507590009735514137411313526310798387173714538312648434817721351830666074122821088407682045706025789219203171468123823343761897240721922757214406214769130532672173119989433336572341249019635238652033587075922605587276273877547476610610828324845136568623484786147070885008402303273242167347778223949220375713686091522292412042678561724901860933730587713850302939470984003562694723829076386780069890593088045800148690349869936629404846439971249725514715466992013714001132224404828549987641782783778816409124736167541207942373865005427939795725886860225953373500691893140391237341191450827001603425472138122845052799159642555237384385581919033897894194681663877806943390717252653019632816688209632860429194122382239938081340688744194169513169929061810257996814562762993059940156932818568194253783680290139701898168228753516500475323433390171271892200542016540438627117291019596315115255611140344216069689865518129451351618231084318296171850119882782054231453571021773315478654950026838760992512482272267157357316893343780829946075883365649861692845851670067994971933582156972402678599429432327282937282460411774300173911447905839721091410284327465390079674100360157465015949392857041623424815091331937206668614879454605080523318061446619070543493722895502038502123185932127206799186005380792793568315166927001527568798741432681775010815987370635728396497505918263376175411999810602005286244566228955089137312542172150597169942607047159335518704660466721293459473027836372792649292821324363768213521203096570483501360759735650308815932009047252253287973522153037208980818140399487600304356027010995174305111407876532206978365772771548832926425323251323279425083845141824418381656130845619439073872640400877502427923939373223821747642681742321955146400769165329369930769031622743250563458493540738857742103362897553349187986883041830858193698295205868471626783879886233306347342566958624794040634186805324297190399314588243048947777236716511312044611174294448168024496180507778592727543768996928465856337446629668564151590928065716867621293056114193445213805822335313572641893022277899606935715116062504749369745236291606394547483446143353735226368183648138577564092265698337210488076780354617582069119417770093579456103413910277532528690629885783116030286581798333507414321976720290277863520339550781669451440064906041041940770263331834276339695605360769376540565160208319926427935518729134893769150793954651369837492140996603087564681026027149195886491082375096775398762992458552568032434538216254168799162694381712185858003678398783068231806166749339976989541389435726220121671799507781924452255322599380361554123716229680330228522264871018507489011766476707839625853590349408859679587377872566663310513830229896514776445967054634274549189276477595757137171499135108622492749789972897572863282254646706585512018189749919909157425838037641529500321002832531933336659248224448134838919012636001704142157236655662338587310493354870854877710807236042394135318937113920674889023347887945223002138114759421085078266295215790102010761598110824746773499167290994155730599806766869378494416561120663872954716221607250164123966184552308686310891920298844139701142620263270202028417823301171312748647536413808092008239905451881327286472586031396074107626654412651701937510827101611721073118223161212672628338041753331525933275218063933165837892613814986687007006923787114615344082444797100760132014776628165010909291475422237712545922722877726243928984251669462166123277718275724032149518891598014245634553386549393803264335620728357886856365164573721224606201255178298155434195964505099510786894022709860799027951126065677040244130416278099157111781565528834639875705069843952430505584421400789941069015221474493053926420535716009157712678970985413622880918553545281287023911083024474664769162297285561912605168450580668470805905807422503191830190302982375478603055140786616368486853573773707974248379782324319682061876602839118388166679806723470591100041434028933396523075303956355950551966867832330783702240677860241237031946086946375461466072877593633063915765423114419522267177981999404584888129957868919127003355782383770973005023281513586293265257352475332166876555614958721472727339400869973438600175093548603431662315169137734017423529270371156199989345806286182199895212050882817687949239545493935961349242761358823605198574265909788943726223638879348492665825880025045348623010839847889138806061456503089346571867013128253017794311756210765286369885100832895057266465334283304264436824944238618709702582594993488965530417845405233818202710165857126067656757795394139965188627355272430825506693984701027813589178293021012730919428353412313138961559822123256387636055407229036441194603173109922329694468769888509395812598489793872729163507570750100509390378907355766510244441325061266686524368281293522111404222146761226758063818734438791050831913076600070442562801622354386026016129582025750308780330561150673265960335091980190960437914552991480101928372047708996297173856882802641899031958533896646582847689647098472344977983862303730082542396368613817625880497337272071914599601885485787306757401625655885407608318891657297355675660626290688396813713477659929104904337525586914906240242061270576858330292857654666840522585794849246746653035255368149528794440118372662390364646501304483452497999157440850512178484371363062454579021698585106004405255125604836094280604082558784732237528742749087006169828648677127506547938311030240568139819554770511666884588470122110328413030017638800574689634035696568508763954676428213984809915288491398342007599683612734787630221663829966501142509289262366280399412007667333899438862997507774917414506637714662209571597283676787782698195890820244067290113554961541125624218360805506427510711289756797421794609252764206438899034164495364148897621514685817186022218182800339456866398706580449387001674278953028153242201538552002561513791959534276068888870086292474694989965582741022725078789069437536291001047809845766981054275739074170182316383426834804235487108850372428049964803519025596692536782295739860681993176822752059175308149216188679990544588491308380874274007855544740794102792736144800845434687031086138268739052616888121661375310363780614591543879775988084433884089489443539942080423914672906442970489754287279918031244982725458439054999390163150241952418882952848297153836660760513720712422124237677468792926602740842691746787237521970929316178673747958265233931415957683733336203782302980549142859761417837888083706372184414405053165547971077448150028795410021828813030821961699605815961194008377648769218172117815522341173655783518416785025656915427247995974248651920846468918647037238655254646313437277119076282753608166434402059212992566573453925508967771410719238126139241450951303391981567198418867089781006616994159594931210970495944014034326143104325828526220738652373448173505068118295340373026633664248709085038638601141238787176881088150498752895796331255635604364440893448330434243733494620141236177853113775639220075455028864779024971416470585288972411419702440322273412957181050762515362387956526105129595616691665303197897005347878842463944032120698732134074751994829829257455646826997593677624824904968327909094642303216986925575295657164551061191462816562376441364450520877172812833341442561907819871476292049892406755601247045798484627868965977604967617242792158851334597482995101039887459984321800111363073060202727256972838249890787027269979601602336107302134834692025603939580774939339453491635153607217216757002858310584105211114299540714157503069131308720029351854039900211126637625519604993690849774525626754734609512551187270080968364536218795892885862960952472709203997735744954035981981883651482183338968829905932781547866782188719367978147551644350350985244064690238850336400595380454118278393819793412782882539972348471553208844433721411660151984946533878627368245366915718537384515802347701214059473839223295122913063551615315253770289237580969624215773958037150974783337805582189958506618772759546765400745967657105884735797655928650914876699566943015028621664663508468355076928531812001935290614907899713213986441852497256855045821199783259754536030974084186058379353066841017083518004978947795341035684255794686531742378073911957162982466775362848037149762962957022401158298101568289227765045735152652624729538069506895948883076658007385131801647567781581512402931275839119443951963597831737503830249719808289290145410543427702272889638018600603156459640788546862446096204070295171130858177721444726830484103740056609993878314886214127261278181166801281915751872447741648726958780922131434415325646750364221131997844686811827010226478867468446005558676304691257961917528360697127696637757816787358622734049670013231021204751398622153508500897437691894521064018795017272058040353003851861533212866204125847017641169619378589892639954909909621635076994844715187550777136364839919384109897985112659196241769782357881133161966510230308874382519918780384020905355384121652492754072410671149169121556972317803901826476582316476836319955005762635945852649586445310600031084383810531645601843001026637056811328931912085475435676497156331557676454746138455335817425296708875529078584216380519825435859221431679856247320017132199344609278700346605152792944007607058142747783244579645544987696433379966929763569421334129648215884094641028985857163160441066586620277053364851598476406659200131227210808736615109276087466625818135917762042907653838120352260437205123365411361015620579828438247566469695178170611319948950433284260911661527786165524107422618929583886601500734580344979611891115459892611662115786648745515285587399939691928053500664386454822747986073782783697139251339406732702022328349027211672224430442460944679662873338188617592368929371819572591434785829254762098741258456087434304200634029219710578226290095600122492791200072739488789157623847645219526456841056009444224362035996393330492724130557618611404678840142777524271252626562554572651925436127340621910145453164093750211377182224484916323130207045295477491181963723660337098258727537437420624465681611081129568245746137588385022337135220838739661715326128735841950416007668374200074793635658040228976828095346136438334638147105815291098186622462287944334613366448241087948374910984528274016846117388237187765977572375978075949357627401542721656306783360262689752434252076585560498936951390286853218262266110698970751109181322294590891177180211519159382579345752099370334312540118146563946901440195132886469769746436922379450091535721991663477791504936696322757219610031825636572685857873825165732828845164736197595905690713878342825370492039009071037070227487285489000252025128316933366197492934256004102300329086526282216590290887893408122970268688511491258833158491252313831935717072306051935981331794566357374976844666751883540967181487736938808827624011430287496606519233483429018654037274096958761010549059191239643766676903560326547708517912345864517357790168985565550687881096038379716120177026231544674461307749410162932873234913281139469179807998694187653370843755174748238015755255830150975861554350130886642221757649165465327309457477298897093011696516035538029365805170436629585317809577612032395105128876253498424021498825583186210450331756505755359114171496890835966266707539227817803317288768878647024727991189272818952555376793711021217006844121000406944436959367560176666511192923766986631429614688924838931450625677262067352676092076990331399167829354834544063143438466856109868555061847815613757623876631666128975986469220632012752012794297008571488806303317102798350612978649353750689265010723233096413122842494744168760090203820798011917602013447733204930074285620515118570421913848093579148345496123916299544493458548308815809408102962435777251671886999703861738988016471172430067609088740847003979229991212802257752979245328745506926056578525477513721196518255078720363659328381048035571637615148445035524682785198995185355059294571517943379353069961325420862949015750030929426195184654599588449667550245655762760462313582035248744926271495087675023243684395963597765527496474008680781265689221625877553970437804980420554305385207726018829158048850529226268271390850107713582581577833401942387301004156622699906946977885983362003827647239981020197813818384219464353584957157492483271487614191923433772289500863368053163575833565546005841819169412091809216332838062584511516470093978626243749562244294797526524422809692248971919993641725692326118261151219954961878016680064097636980476316809759204443343489338042107087298061324951195628025173319069251575790371278666963793674310029656474142299161115407124432537854683185923366694424404532044053154564035486514091392415041264046497601827449553287960450811471143032985438391575917795216849217600297047524186344016503780318676694742225580288098916495833667859343459797549412226530104364201424051144657025586361937072811969532278772109457624443973650674765608992124676951950329518401050122979172063103112315616750744781181161475138253259463403823171336476504296408220016107310571405658859731697163274176917790783152526974015718166149311838011266087885775915500843712631887877390608736963555174854613581636968272497451374440421170216951558093875403345339624785923693307215242179104217773044372533073658638101948600132205966916821165543511614013210280881674930796292786196453605572855183306915352260542900374596860522432493842317516175830163649624830094074908529929382647219801854966597030052639077255237827351128700194628425381927711029688428174719484040849051596079491874515758897657170676830551721814492015068253210223340408476194881498315171829147293323729795839220737407647495098760123921027312429703507436493944587217892625853557630494894690142798860067057076201337140440158333277605364623144638562133542217783814319470717845772213011339917086317767499907684812204714263638309548752076613994090162147432146653560029213408915199874519634746362621489562712549461920388189208969382261605744283156186857168836673115471836911177607185437498850025916607407326425460526507548604640155374140470716584678556436093913432986948196910765811564564553421897413141434906578556208897486753021216294652253731890768283093407427566581368475356134180045146829027672742164342275726270282607049101930109967570257912311339107456172383235561604099168352222680214133970566373433386744296506550943471734841502754072145306954084166790921654754811037076547547105024161178523190525850260517486692743226198633454563875818556635946598323603940122220272386843421074642951086682803896616208573357129837380988626244533262696293195458134889487862494876677324435444461216601676435871403291912211087958180139174478383031310812383389174897362186155274840855424863634183017784343839844127154996348013202350272440361027252987011275989876363336075832657964495233338270427918085049656932440419401828497123920637260051252711120675487817211522245302867631565782269829386580039257605064801861558925449204096238944231738650893510152906124641893334820852717860686450093935060298451909129198095448944187974296256739438273373961445372494905712898181142695104237818185808878690282914065952755919575315237195256668464698205309514642434364393370489781038673708837685140218722513294863989093556171361786859086195940488390969499175202160503500752521414571908110080205187128987438635334923382503708249239788130397963772772989497452286198861726351524041483666319638970593040520104370273329645366743348080501542528611788145311807052427155059439807922477086345587306358606104477787763559706177402544174198783833637466837778167242835066526842587347034229834688177014308438009836833344726354643903115780603733847796414880056070004269006036807180366506430412788613114254745581646461532044010558984354336180735427732904785074902323308170253274478296726678601410703228855161371288223615171472389510012956605905432749185508061648632835193283436687851840335352395184450075928717083171901392280524906355829270465661967667771190531334467302229484480238478026583680717516177313015443674706259214013709319463096571197699184027990642788563181642811725276341817200541268210573114038726851649731131508397266002582521674124067825185081242911201400141455053259228908582811530011835704151039123826635173361844380337335630547272429041763271197143576788555581573889495308109926135296157671254368379418357773344217527343673572215941264667621667587151183385027114524250674383850012193318311176160570928017718606230646450695785217678988053610979523978805824652567396267465586716554425907024092236767188927089470717177553970236255073938811315260218307171842627906997948958204772219312389675419450207678106043143992960103128951027664049755976592193742441922122453520731553948478760090272414408473513216363872820734107486073344143836946659199118984447135738342154461591138414442740627116446490237906706571429560295825096058092215899169920574627316675821327919211661284987401594950749442461834400927154131138247866677310335007873357831752838389106616965348523299714611723893939456695405602378872727064939983192153442072572194160433568815914973665672642444624886495371770710152879970899258438649410163625402961917918265266624435290064183091450573384814558112470807554285186130757050437004938902974992662279615308927165131456253979706505310473149807546705499252805813059984256171638702627129603950058969784646562151256775537094509773114781764028886350032779822934923939619524340047299939425487880372369253871072279906734861552599287777542511082283520571538748620668167502118907869511580318544908635998329484423489251795711059422471395374563713844250344463764279675665510715650421804827367012073493941256086519444465105278030816283878808541764445492758953276963262922359523471607053527956482036592133833255162558218511982376153180265317895508708529421313440199428980431438521043386238176262282478399057686961894303901519773032418877207676585525875549082167486497192119015413584396568362032078698914600025237241006678207695754827662740745835259041164222226844185884807563521069509370751913290237173323218886867745849346084797463010360031891047785346078165282449394448666210963110708907960685717972810669623419704374176965916232794342180267790777881198639668282004758064169294185851099738125569467992829359967752305612517663863650850222686571853952586013965346592061321516440211956932611384680803349633860482938140836066278592080121217938004827369705153875737113360718714316596993740537411810029241093217350183539475065301078725266245643989540616232891485931653138529870798450044581769363269202314707897611132399260953531868634681927013085890755594103388366897214410290168128749492458959368935319789901103829710742464853554359602867130905173490743695052862669428044741266866071226103454121283724424894842126746926893878136906034256820661224028440587034611484189528647388341165958647723471526193873377582284524087829253268921583384495932648942346995986757704405832247816671305173233095116761232846204557087052301618408101211072110291946371258209051577035438770342378302673584796743467235395606320316839089000327547349369487449885801903712087113254181685633425007866140088485265151533683606636988887262659805840117724270847937778850793155686558995631965214006025095371938963861559640794842573698499243589347743272745121035840315654325642964621503040682778915454929029692891711233337653587265511858218422149606403116089791333837765628326467849708339799303044467662314717494221409985985884054595962298456198468060476304270659500697227945781440038438108531094904328915713140170134239232595581849385737180039660460214393358236646360997770376715029659945271161019809202693352339377604756241422359057108168865508425638876825032791484433488779378243358334996782619424321088868888331602822574453072679945667674291895745907351082823957669530535177548306398908265124864966770955242593594366972153171195846740709447859371499515963992172626681657976396721001753792784137216383794457760119282103778545833422341575713593163024581068760789774202610907373859544810588160262877824761737100915610536841862407519180018719041579266922542441958899147422567746424293762407893567300590351695209698746781433723384585908679982006739599747048696213881162138012332559111868174540841990612702538410124335261286247798870444140983528666639805458087419140954350358069851641786399060507854510325720415042907155589004029816420627078075134288298656248105744036597140405767830649081674278930072888298810047168961149839054659987257017503091689353929753819103272439348585511359529343483597408606221564857325321083308795765669293103187270261725515521662828356732614138906101978543471279451633867699489596658801827536325653225645419651940217688053668461513783878422899860262615634263220623707806759182706070953718018606854858651728154446794740245490986601263588556153357811477161715407911868402726136314382006187383110075017496336820599594334364346982800322039337595040941753454527129887449884274209193761148832882940407360043955996153991930135033902873059534620928318678898105132657910321632169269624320477694214308299480346396852085563687460894690190490269704930376801979430662343807452866850441045577982429761633862186962769532315507801709828107718563265655789598100356951758818334469987489373214615725122182468385399858815168414801324872436134261298847634363238454654517888413009883689845021421866331820893165080973909044650016097245107960358305527518384823300447968019713752247803811890006177377357952612852369986300629643918152478874976925228883629362749968671542970602318430811691758246833201906146876273822815881891697472308424690478754253341253313194968751903218340101003592800173985085378799100758938694872073442004560567966094025104402868655885451398079927043456884069083365415208546808645852691980081519524825079711941403680003833441247760321133736841539609128380334573195113870033545758764958205337645707624522328032909558846576465609896143073536761214640897457512984280015238915198189893256738578707118683616778042095354066312199612479252510854391949567511039656829307801059277335459709017225008192830743987336312315857029598034392443947926668717075198859682629143207854070441601136073355456114883850183112914557137690414090102077824787181855995492370844319749981320946308353927844452321909537802354481075946761226156853701242469339140712334869908938726603109608043551425894096118175302801699774013025916908711758678533223808635642282255996180898433969083176014512885019219590440333686635671528589725002179843752578217469032725984537032508201937850832823148784209737942862087452607264683046620917676986352311602404942340772731799950544469532357332111071888964847239755106180716741558463369490426878654256355319821637306496259098489474067366906366427358217448210293654795795223276456950445683214915689796350839657454952024516686300159615431122643329591637474037189198308593885443846854734137255982940021338001079741184714405272088070773438038551225741157064286777047563500378483015206615951017285325627771007438189141412303194168081598445134989651351685754110928836553002941238707025850474048259829145795851320375631318215573549342136950466035452852600401129785562442759810926837856413086567099134693850989289245225652864097473464148526579645988721273450672209955415662361718767874914553915607007141529157838554939182312632538274657195182359741428065777299857502489565729651944965809123046251890118652765003740280419802447148491546466222898988200553285154430955104260757301371496850408933364350824537580538289065848489823713700470374714479937863283006142572366934813870734266644031328445703176997941695769278341104806689239386522363141807140907880546367566842867821160502379077554789934766547096252958732531388111842998395688623596195083525272905206450386185299213701048838088715710379440458822584875928462797500275496882563173645238707075403904121944008005274054036720498566730940378313626425027993428995962024146066732041629553625061736020174434389614748363486887915446165087454563154295832777034875540781912841358255741467375321597833185386581721936861229084383644309245407302536558032921527849242401636313015905183350041675027896881562442537947153729542362349394589792835817215941756253780449306812727345511675971514814376513793558864673959467489312154608539079909750502928237627708171827710277198383316098104125779715899283406309616988760936470130736117056248418373092374700583313232437338089209877352921272432166981043893020042075465861119907566119312685085879777808564292916769948637093724216264473040789293809389447720884200368955373815593140881927728965545237004305054301457214425885579455494377165425800807133643507355591059257144234187553313792688281184449446180211566147055460708532399993445227442753495661535774128356543456763615161704053713386320001479624658148561676589540514936154110099996227730195996091386431835071489403012910240546678018645816294466006748443229632449614558645098328665535963813717419762656337928196792917627262217514921769379909262217423519680822530363608318666403512545810568071786476904632309132315628911948999708020652014980046321445531090259655918744137434652238214570921856321037047819761762637500369569312323744719460782865352427833122764988774870460332042916594045205662000276698274615732595061480408411273822547978548604873891483960222132185321434384029607722794362246528719007435642257718023216415674684964101516615029695623965300398740294463391850921060689556283150879357333327112727417702606477146199215047408430132740387147415855583659442945157976675179753266562162239232347514306810965175332536500621405293055892520735706718482228907784910422791597743227516256234898653789801229350316529231186696688249433845958199468749867889959287935555164914776669614927875279244941219476552720902549672270011855609687437733324527207928691256407313156991537105454612019523052556884571930083668397750409495639750414601362734349290344114075840634767667570455900100943987592537467375583162341562497725399351552230193188545681263602714848985540636455861313736500367081697805240572183257377367219664188069870408048532174870623168514582435516042259509019129653073250117674882013755218649855850849673634729260750037750496680685501828123524732986206170174115024280288845006468207725261516383470410367954878223462863492413098816825656132871288926952940679467819206252163484453482753958947077775419943727591018690454580664558856963416684868925408682659230270115896976305635276457630299029547437588505469638207100359753798979468105652403910015192767662395954563823286418890714100165316406308870941215616182119471780647129711232461797972352058614354142652580778392307914535697982677739875830774269048020680495366534421134282941034597181560554476046227475999895186488172382409281621796644030256075185034693411359203792357963711981933412275832017366458059328463103572487379523316954315389097930746231612551278809893727666486865632610486484388690127819272143291438585767897602153528868328067078579070325033357007141010410118624343983141007387080689097992871608484598236516770180019431549347062634516250713766151003255293155895872110418947007746759354867958038113938520462989323374323266220547399996891032210339725984681211175173177687596562424607914219848339976263081536360694367645526314493542484134686536286201020936105248425254163881855174451739942928458405168214980505301665732039726186894949169749912046396145811315769548643237487557407219835702050493333466460337829008880256945512654864133117049979613175044199295872906998616690260837970902129145334031911066934316092187916570461763118080546373964959613736504990175497015741673460760809133620530647791732221155906293181175521897962968943438219793728104789476160772449933633117094604057285305794662175308546050290206051789097689887016573753109813869883975335368216544180522798402657934133648040215205582621178418846385364583083694782261236240768992166507023515128910000687231851027529533663394459878758751748160791879495586875092160513471109620549402048215785672055027775151061502396335487823891874323759602894079663786094547482627188408687790803493167849269820336348521569020565188912057991479433212909651580368127846908717246779183491573670940138860667507211258206023383993785065748003165413668921199741934291388300366168677507071404419041306726496977719146319922386462225868190708181299459484255477450747944965333037468554179709338922241172338872839532561072114329770986450164221034396937452254023875789944777786488962401009436817803155092191118355245683989549078705934430120407805937582127710005993900364614768891116739455808855615891144519086561210579011840425595454220407049031475917340744589370946818377059807470191397895118835061210710647452867806700067771141359055914676695819283295259144392609628565340170523811875457667824172647253439466900441811816682682470917449893888574593966303000569063244926926743230511139828386506573196764892080506585255542572129963982282684871279206445086510516356510310668879162277351240278811973500837424892644649168702104587151902371955798309068699106727889640993309237410284102682940706281542049786437088073434479361476237039181915499651005314525469267952511990344423198222669361626319475348324275218144850427153531334154915791539783994888180372433703747218377821646839181238537388576918630337954120386797629319539310286849720390921993431396241575674844542589466901128294119932127280446640779655271266923160840814969795513572400426524847379011994833305130446265436792955481494564633712093157013300011997318801454990363896174905892656544134346655863586280509847305932980434182790824638162838730869805133267875075782270027943470766538538042797594570488272601567591698528608452937103898224287167188888319015072513247157756926307916523663749058450153539354899440569949626750742182539750617184387599011441455077992856914521879702116533107674531149042456590469180921409594006255480804985833668630547247525808162166440418517395500149310324878749839176501329661886680227735070199425766883124498285024470434021697030963047038705369932865798340089581742097699820852209139149460968839370101320856533910185832850616668388198660701108837243696277023544046724258805547498259854216214948237471615873969603443371409196345023985761882777926077094293898121085821611352454862835530118819051332821443007856265109077864128678908555669550903319869982239961875203376330592765186211819435042092134626855154514639309512198856445782861212526322071399836322316387932939135864429361557635256654229032175298184061406400980825639862755042267384385110874906104905329755614224870603264029605126175915833067934169197741709629968217271915423114814306946197111687331070211563190801256648992687000009488675839853145753606504471350112020695652883196707947527511040829166138675719330228062833261753117032634588399747611312282509769816889966715235136358175312396610410278354775368198272057456756064580768209138522610206633993482795398991589082762629390006441621063942262782160762120077423783992232776233010100071024563836060917417753739703325201709230623640615672881539097349944298193074792303751970132328650169261953282774521028604284320677047984225724931476773029697075416489477809256519050201434426711305677927956044303249549253154827085471089558279417743085863228298335179081813938942444902516618701250227904444115296071055413128827433990934077980617838485389331376871823226371470586366916678290990967424194093689456818523604932762142226505786599513648333662066387902810145978148424829405109111242073515172161655894063145548814529673648188907718219817063792907513251790354245951050714087987271821234598976707630663714674153258121312653487842296843807284496149766331510304938297776846432222027103654097802113071108221597814591053073216135753063487872267214921204148419890885162767695645914053840525555946534348394687940552111894155547095011102606548975653173105761414109540879695553822647154610834654166576954295198397792443252223542044605859781940676542610481810351382183150831734013562353780073258571126010422126811524973875109810770917019714645864333373624519910976989958971217422607461577823855595626359502030242400491205652924131509039430200052039220585143170704555080113429430301568854083688284747472010045242099545375879903020131919406080413348410858926558656143762843913627274831169607989673409260771872537333211051461994434425250806017944577360276356050150202153843381809372313939845110447398452571202781358370170465637129188096065480982405696797720126741706639970197811870537396113282780745864662798528745671327608798618115262810056606633077233801413649866802347672160934346653939668074808771954010129943630826966026841495089516128030956466403136390128901834057622812862474487839273893231349230109933714185421268129313092143666040905122921098772360345046161402907121212104048465968739338169843649824202652435513345864202091022171120717421914122662161567816896356008881529977878117194608471864297073113320093752754225746129449728322834315674538846917831012977187443934108132590642219129705060702848876900929874356634623761948247266655429053857621331575318807211689711201964601432567233671654183351864970626188238541873806786845252448058000911909173157814484822413392346818958869976413028989104098068713436874802749081112587636747694110997629843376998090953983551420285982518299814100325647165074415929911980663352713696801188417515600879178215709842038532494365321430946879571766690911208356515096374714609049655675364996418381059307563188213977409259632537998122163787555583055275658111459018410278830252959749821005862271072525389876262897914642065731513079394618851086249668098662067341224268321310111193963181873764731416348486268243756419123114627020379294818246354955848264123951498933741435864792387990068451217119196607827061791837681085580805626829018228786537298959891865478626494480857575990550661874106750101706463386723196712454581360020433042797827163549536135374836871244315962473353031617141852823122575888990201361646474315494857097064282285998088689358907943564673734249272532474628735369631948422244181465978671046269774870727655612313157338542616408589252788484343806965037577979758485297014477857056950888646665655750432581496278882348271441372904912611457267735921630869856020220643454938160366277944738687029725356332385930967854181304424102476097647905250005111877876652388246492399128248750330626459158597000438880627965683862423272456939833202646101951027362601469815502847454734248047386073744638095537133119647268788810619198636471293486525537076649887144560501697793918068606491435809066631116722155561630575659247897888734192558344333356525454520430178049142917641517812834849473044345288222970580687311429570239209850659852255406636325318669431214227655359666343865762019296026768790983118456440745000011462822337557250540300556947382020598318210511674509940099383679982923948526107634795899508888872678075182707339992431634623701714325352190018209499935646878586449961516978620606075621256136404422943660131976518079339302009312388790579020254865943263788682314393510122307677796485396267254399883943504116505485971280950746275282087808138822777582823543168055794394578129437660089894901218025429039771736797228331600004715179426396734582817723543321135611773551958607178737634285469029197284036880060394561412865325370774818401109322315828861016325093900507974173120566066781121479126180154534313014788924061540672031103080989512358357138142262834855846513045496001091863519331579173688570865764863623722041980068708636493695416735420791939205684353261271892244082006975267726186040332337913023324638061472658856731139084796400327926589043828855637841211661667190613193101974879123599463944313667442543562631801511956357598608049347520179335102822680810609201813015466916334066072396163845091395856458009561095232336125397356780821679099683513220868770964039071956458459090839229901128993514122598909519983031260136545982188953889816639506314523970691031796527014052046279512346440564563636916303817266219720390001109202693776177156095838344187169180392020970916892351619238287243397743997187359040597623320519516484816744475751925751852594798217684116631264882528155951909155626951490627378773820171338398447010270234724605983201648883237161599493605682170768936174183840568365440265254108601856275978371743178695037606048527613315784171907809469389223745401602396160934880771282249528721254069134059302269527757153617948208518631435942800583466010705303794313322597908345512814220083884697641622483196028874834601099409566746392023796608038416288507033596319989053555554913100275464846167249540936369006088477974488816635417014424511837236527746852093585414129170093514803756094810980755590225712544494893511098018877966484560772098591532665065530411464485021118823651663239908004801119443090882859826284952331110270116316215483118352016454401405545211401253260952782589823168163575506346631915373387543743573386521136930245731456375999052215510108069880958891376385500711060143773534109265100304325551988934113789271247750450814510875034072618668788052969870218856481952090791460063305358976354574886168912042499885486751905294082954325681327663088165073647378613236970649278906220974700137407432786917792105557338799926659359157220607433833488689917524872146080310940698350247073970348004723843573837409732744093234024065042730974269718213374194974426959380749891811450393577259400483857742034457619905592981641906919683968488585539772799848830747135143688820222783300721599463733400442147636126879379179980463037467697432950278039294725316962129261088682124028212072780305821871801083729142380922363122968622898304119918884555855992420598043708187268352256504256205277782126406975871756037707851421353399965897930939746844432748780474693364287642073895958104699663635365151564527475589302748605203806082814062929839458565096859685456739893065671140533488953219730372527129868137405267063832449163960816065184583011426408480948423483213941363556666175152604365732279768688057820341195976430861210807303514338051229812119627165362356267229059965492302080528917799461757503053340587531620833406512718009157143191855260844245180111892880498757995155749382000388308617089367801586632605581359601781704648685247875214699575890785722110077263734790342509881888263020816920323897669809492563099144338287658704086559731110900519651092691497383420245758759445216015646787919537765558415553420555381014523550136941352086087279664378385417105505666039240810847156098657727370175032032888633731628351409321216516070689605743808022021362027750883284276886448693837251809026167914653272671960924516854661653898757058598358522655453234071253885895400034264326678142328344088672232539441500149377231608944699219332133851087096970796790774513875802076535426243275823566454198863864200157970367942164589662446731415205808603492647956631105761982548873747180258213070206130987651076885476454138458622110818468720555947012638476825170237940903683136715526203631775479233277376404085843319045083588180140228546543573588787030402508962169868836538526614981178821329715041460567729805412822764955816708692368294641439841488468317681767847661551067111143418733041131010011232396215285535168825477393086257527522264668227182772177831833343833768077526467743763309672713515452798242455403781180304036977045630545587507948561728400359165123394602546665350336410489003479459915870836964297476491486020435044494340492461512211909065399296324161218620079507463429340486875511337910711535605653082379097334075199512629037291387302726330734597192907245787792042057869587630937363399078997951040348124124095006297306364197896516564395838760743009475148849110321983275618295958049768180676682162977130126699173699732731797378719524745197295275110518709500088057913953871977963623804509052793689051844833990838584274585460303260516051438913712956588457904365825700722609769551240408681779289070264517963087389988099513941714653002865524614961015372594361792449012175594997144609152474179079069879119150112846141511267575069133870265550530669830787532539018625938800472909851001175647704884269848578036555010993558689715461490915919971526070221633171494157527980269709014581627045442148073897803449915724866797514272684834510100234771518722532485359450764825510775246111362973772668462402795091653934476672193327023557627400710110226559006342619297357033091572176596826739588432583877047895469249359855738102478049909071576571585508010515971330113390236784936530669506261227379466852706082185579341588357547315256586084807032118109640959205349865017912766013642027751051319301318142438081684285906372342229931417910596919083236980658794843957585749919935112223481317350398343277542084464882106597660770018493919992525806675220235328832437296445848689377867452519703225434974221104383544146667643896928354643380118017349861974275742228293236654651874392582054108445485689188234528717309116635289041229582176352954756671228555575768428936800447791192485570235569720877580992872974049105432554279731283427679815432282436240403565648509798268883194701124744488858738714973748368510967241474588841371592965558879594948490059269854921396163185829236502354259478937459237638570453511286532917781266969218861385957647545621621357964777040048075769248011773970700349141299198431698750671936570335927728606989293457966547160129896102185818101959978345240729563730364067082307728557866499187253870814972899449549540048518867372327184873674715837808201435974619332735353416449600983924513357547349327386448903990212822633068707917208015093428323670089013317336650221094530534960193274661343846842457570093297035945231721999933866631950836734422552910658942417726851194699571120878051339057835682304371271308385913185700854448227267693509794113078263751346380366013875499674992917360719443061082037304899963927335336603992463697561337428686023010711026756934675057808619742898704132722173614163547784960611587622728195076431028377453289696062781931853598522657737049411850783636857732796734539107373539260506081420563200969549775025719262021139430079575751485082685730038411644096982714515662837298701305917281772119672632934912570791438508153441620613210660740586976306762900411543678809964645544817955807090145206055690348644299348554370922028958360578442933279673344267123568848962593832878003966855772050596012313313059452495966603923885263097532041078686381580843850720360960296190224343136923164495164433994709228445033627894803679958070350499874767055568070670746794154630776472427299607270874187674830808474462993051548720402219165222937265754216829501796010186990939497437649972104624611957759828256757195045428030126517992658116969084364489472236789839117114123552038598469587257580838787880331629859250046245053654202662387705296578207994906100134733102352535491405741656483014719454361071958523828080988263076510828047260459654360056239622911056656837262845206134631868437180033614742714023687171761219391725067369247327738477533213319754258997435822677020761326226440238495212685902774774129019762107213572069680041177001294520236830440441852939814322493187013577452677379235671436404840860562256794942748595032090258400197704803788056765071037824931477539555275199019338898331630425103111124396540288686055109262257811724786258006341072962146649240651538059630523482340235590350854177147569886956985150061147819663223541999629345462473694288320667955401393223988962402547919371584453999374327257089762150383223888393211933525977312868260236125278615505556056643150886288014154314022136220152866594035430376537474467417039906162783553478659340122534657219232154910220189207542700626094352511118397346338118164409312802843513892351259797225562064395196147603531857720348926654517264901433848094192668580744838009162979362388294508294818950181701164198698904259316064429286622395640608929551107514223732931792747936232844373901206094563669393676848121964564002319086166600394494391319566092755222257500055791186803994812444665008831158675960435642262198468685736285989717271576795409389681886079677730522826449592303016846814887035451930688820960359027341023816897115899623825855424884066338320106479608451405407891428508481238639380794305712937455890476327008648572190763766872457101350525983549983036562722905022557463251071743219322124782408444458672834412857961649542410031007038877216086585000530879674075875322367928365504383191433149400789318688213663119006945391951073982558281414959976304184890132743036948249932040947626190122252734385487901682000828703558438251451409426069799218736047176215268452994403219048989060828454328515197423772123638723281267419287144284723095437841719985165829974373055535774234731463998443919045855249472420556056699532095593576442000245499397253502908584607851007294661412869120459898976028966782907787534415634437880842681577891857342873254039766612432849474373847556446176760975294384456522082464796030198638867925721656591083397436877840646294690690821627729905843135624689523293291782249650938549083181613914986013287077629457555760205065223200279041055888817538890730966837883529529887509154183468633742669426475420060226688818195761354387323944582318167810350476890009579276964329822799028350667972602755611873082326784560241064624891937473841132131618976200599262471100570143641903567767637780228367732481377396112433406481716246939852799016038931300383195223528952338193443540130726608233660311762761165371906253980348687714966779156230982920806230791338141789432190545735054884814311578189791440676668530538544250296394334743596643069345802066750649105693929955207374513524922307183146640064804080921825181824977059736941307138164287885477021859709492293310561423076541001444895409771454950915725444518175739716056936701775231664792080105737065556070578161163955473181862081511554499282466064038546316506044505098822848870767193173966792233779006815089213778431150680172940532411467631967995828927355951026731223840596434867090637776363493906423696230738967906974153748638751078584436522276847597145128129688770472162686071867249151386697752641482460112349796394877213414648406616308083002659420905984447875986027236382505265460576278215851618407817850020661443582616185660793672074974444558390722048591576206077132715320379144972120050247321857985307857695419441150765497915434864905616964745606276703758782072494387812559343056736670748400059201550363170055160472645559541807813482135386902941302268276005282852097841436668914396653199412138357280028415160411969637729428149002042404331821031748520465089977371722107636438789345875545415863176810194331553772513144246178838160444486150801046121932553534655752494811747355437068936015120022035016925020573625320611820529303270153869870524180476661435179959094910448662537441458023505857999766159716800895492952333842354345399608041509189758737742441487939745820050534847734845900710752077024382741341637183962070010955839817561989971767108599351704301560232857778478743385776414447741360055220071250998051953988798326157000063277281122141858908659390305830358383693042192672772124556705984207404917616572885619421100221899635418483696815860880906397970349181042548720191268868756541402839396548923233049727644714625667969226156451466843966330088298726761989993142864948357610101961719047777811938604962383595858112314458954516067435135233302534558942942222655049451227361515020489200862671856981347747225893008815025147147315658585579401467735378742850929148469927798078783131171943000711941430495713711275736825233033564073201318908332203800908483528975712957553587837304672373532637419628341771172430325454566707768968624847796759528040462090874086558189846943297424416583149671356845388314919642273465381107636020507217572149459728743193116747217622239101779908380242976920812617935475906398300537846590344624003537284530501426339347309417476445795771111338066324133972783005244040851752915458919882877321125458078879094726540612168959785419452903802142668895364693161280480452647354769897102249624056031381447461997091511834721229354670050882255769574313833133711534351944717783884498368283279836828518592522948239072808375875431704738105818871254018853243091143404768023719034290954525959186996640774267370454142434575306250836897988211803604235125026389542246137851276779049909029196211929770401554534140389329129171340223333337930643885153788514594701498197575717229131952551282787090969436734124905872480735948198111886380189948691188518142075358195474166897725651453673736339880493047873537748870135378074743196413317334198849061570286913334828414138450785728749278282345593499025692957365963457240709335429719528049423115006334221577596246698253395010464245654808184249214015954361265303652990231380795077181488854092931114184795742498157565346401908830032731613115688406662398079223562150362069108805629807248577947923577824308071284047502726865707768282880963798872400043811925697230864414617346551529812370694441608036255951953976062030219078148006941053571332246621318822339981814274600748878686086560474447243916711463217478284260091770913213496288741185059486917503460469408005962302225056297712757713769368351288292635215397122210155532781624561606158237144496801025078895302365648114988491570959071335219350764674831504357869297956262571507986463329445477916806309899190268953733009074254282517521160777778061326374548140197152842147400059388272012511122375663855895385066298332521841432771828214779063553906680658554034047426481030854887161957543201995387859154787545378436416113183070352411298980411629811861075075428095215407197171838347208513018584502558800886049976654282072400860281421713039986618666937902959798422952073631599483591105965122982151351721557884612022090844090821189908535445835039720006667410671132429708824155909042263122684326684764418123979791552331610955120424633550587870451213404436449003896174323013865133054946394217786259569066538596274924726196607487006325670802423962156929300129483131000474697629570164504205381646159725052144216259448384839764367415446017844363239510221801020964922229450616022643541181302358174799208310556735391449721098956438784767557024776416682949304812546546729339532431673533274111080099754654846381563042216050381201641174909573749160612171216954230702364927417207299084255927969687123432662556637891290217477642206293368383340109675559297750668839158816925173487594063919058581130003740108178281840719698559157393972184342544714756690022031293645929517343563863413429945337877244522565682644020297239140949069072212667880924091794221760042461767036940088380225424648357083443842922430838387536624921414674924059005580272673414766725142091204449982819018556241141202565501297717742232479683008045096427677327100828415217813612041878227844248247717169459786687723064052467081845613809086714194208175674749121297944467883614462101602838892693145527111130006203974467689588600202496851239191970005461985220758295487309997400055111599354376428489554371300436447568912051831338601404156970966014012511063737012349992373334651895519751612633237812477795827018020008864613088850703055597912218335084899853346939315771226439485725060202063090867723350904022543607876996299070819405950681419010249775453795140918090684694156731618953449933378299527960846747058767814294851872456090847169116692983486808783102234369224588860325532140304936234042443483333535993791247181607225755394818485591943331272216247141949241386805685588479478987131532531889149820532462375963197636510234372509281028188948089704499443701474533055995472865017658060453889899885688865382179226365269081263580804049184147097716844753713488532200696438932348020631771267655066339843502410427924012183102373504033793449573015466544668906438009643627039266316610738380449464745945062944101475707282452634454060508755945285389306087224972353258965800150171223221733227999065500663183244984549352747167773796411798589780977891323967252664819659440865397224893537976755902935015097238692703484002711046440321009197705309397305783615834120300869249453042352854945971332497914478032251615301645051107138621584446582079385518419720867293810181805771870529043308850836253866325143182214983471001581564352103923850997776230648987618291475245137446199903446350052377773072655781000953121748348340047524136402824990580942363611410607095654247310625889280739836759307229421728401566892260210701035434225294765466801096217189955671544914227159389899750680146021832738669025279653342212589599350557853327949357149286786443060845927923179489018119071144556488324618254241384550702935249730385178219417342257741477552541974187638481327179092607176831226536468512259190700131376757260480483471415875576063914039944920195717971820876344773953452299184770416684255600722521775475115400296480585041998016964370908795958517022661706252436984066603747067376927884289289864193790225726865206362817639304416482978786771691012228667500106869428255169135137044561808485817911572108806925120404775405481560972705325968108734025512319176977685861566082833084521902952966945617728544213930793342249417103479485056221901545321565069571906526272301771780705971362889786854978569208415002893725359636939462342878311401071888733417329892946712235295916642088808895661734544414174983952791702874682613525613736745591793970339089867815637217610374590557373744038116635845749865560388223488554816256799033133285068638900918755105163616686193683446389695416822673676840142428480988812440230559554397895635780234294888502216743003432830872256968772991819547846539266781481626163025475397386209875469813761521371436431710560033101982783290785295302343843195869883034577441386717311335186390603242554588689970277437795582631152093061965167464321972455222621252037308781110935570040974466959950674724241908436360159239887507481879552594356145005001926052726051504204402737910168975619808855122161927434486873751021981173683589479886393908917419049470397594566333036547125706610178759279260852441984011452480658951569833277255424355795614502382597700691861696024756368422230232306450584196377897516132193881595384944774723661679631093318494338420531176718229884395115184873728894302721412936452138454055403402771630727753869541743350281175227164441144403007515418308105588819094567703432202211612726689532207000059234803784095056283100351490339418283657378369719843140794283377368469981810792022981316093997808912345754607682631131531173445234217020944976659387478282762765468931040074579253116054786528016481074439774033336396206627113219119474203684093548097761559095519839587022275520281901566111261460043864939294688774337155258656178512380359135023658465847013553608022665981072770309230815798744448777721903462667663812744943546055200272151889610997299660861454823339044605904551624785576104298055852043087258904038599527948308366051307396162688500967180662041097924624205301616771491778779947405934709670956903287067815174909509818024200666688066713417472054450561959041175160934145564518726157371575678982201887958024230012936603508523513682963312824380924710040256861563799137592542607556423778423797183907727101710082801692830081152093024456848833379567270424992873568168010402243031109033253342779954683117672022296720573594133703303157268448646426794728789524532639024871638267424217002433751553395305618664096584194339833533625301391103659139763382397267214924001896663322981010128334828596157458035801371372312476401181698877370828983339924772192471059285946784769943959860195927706100529048044745073329509902446289380974198191396850700246039033743571259478389046935539700641647259933497614199257709842101759666089573017183666575963693546727409592767087302478831295724283911282345236482160212361509320718761002290100512497466569651358255144406527722702478832516139009926568419528853858276284840950968144818936775492682245572897626962483919936314073565126947843784688798682674760331766474491526822244674939092806602144268410274213844838520617695131295145722558739659581925503635908405608765429685513417143711487857565445336825818191974022239237977280819703451165160411250804101937315415869495973008636764192600227445701447789805135132697569550496040239144332066684114511460476539403044083430901156941176784363241490458764557993143592525068623322092367808217805283524414281848522769552673425820864149264914679962621117612811203280125387388159676831957837204882481909427158940844232851021379937757574793738137875473500873740729380631538143750060051601192779205926223104205671978253308730976479016759722635161471232781165733589143203337661169350476872055403736768213581616640579581373113654679430470996377246369523673892281658902359567809729046919018876425166142525399611581796051117741873144884474262895278304466224649169125185595716063693428417495056519939195156221165838637193393277733782797602561981682118622768165561049020165357166854597533171233412829328206584833913351914620316843078440360836482053991358015144519153366534623076027938364923805593893923625654227248401108425536156750275921260261057981779653420771469846870671358594210040714061179297716722606918065290024887236122112298968531541476421676579477746879281495700247696183427523450021642232199329689536950749240712547507600079022047633730023955713400541094057185035605463417977940875806352835513249589251431201706216550653823549226390073306707450489670302453537797489992078377296476417713248123796665814043901515259435763254337172658844706007739255883628785315357896077917260721140264142447763707989524786755892879803952072239850520170277106601235445608845975416731980928283543630058242259627081018621958010007127951777951016265230111131093795174493938773000507217309961985165716396288570253715047729194578450684440583709249984838265936317265460942241430931704662886624721357968922463471116255981748955538822409900030842576962043492488305755762051010254395759143140908192830763946711120782927549017986936318100745939692219619930385837362791000475386235430567237149385730088232535326182777945487644521319834668076117207824971937317449303292333865130403568768223148028718388600683116054096527851093215971449762957006436248020617406547747366662781988990518796482183342697931284018387979178293156544129015997353600144619124720300263363317098823004874730744331893610255230817941460984634990509798347139928267443250276649344530823025699877281472390153226046309887484586962154991146797924928683804173263273643505924067373180856202591620497595704121624459564138418564251711195755828381910400670179490656671004391682497094123920593931619031731074343156858109339509199058505356898201403800864844166080384397683902814105262742134787645474246086665868350494457318706702423635855336770935574537796101793109503474180389318594341158474243821571465790935169463460859972900964713150049459633008191870777857732222214622256693565509264288666566962006700776428043442958369530308529623529374885265519303325080301624646128461145650828700023256127398019603374551168361695185121326258235710012884206441695404744381415267819907753473725368610476718963093685709172727859643637981601137373237458141733743579762438568327754602788698797740920905291506481395110831082358172214324206022865147769720256226171037471408497570889080272668903289196427526691854340729564362242541356335154423638302468490260517677675878531183809278391941618980992882484657130185282242143537096459123621377509108588310436588795515635304540348083748305611106913719841640538178092767666945506270472247346200085815780669142263840929832813909054084046351347202197255785141053354129445595937333454440629258638130784787130481494342981421363027754677865854236219924222197984012434092166513316496630501290705129106537646460786060327817847699296698253640641859642682186988832302519686105023850708224852190156671956561765517205532882597677045362928565390059526986900991897994622579845415498183692769808682899833967175801039001910167395099436170400568912121399188026143411801948875219618205488166575215458440565496129060696003425739225646306363995784283752625685403453016222714538364582654604385411798674693597657159105236412582166504425251224220837127635200845250280996505447616205663269570532053266457837005234691649786558914986473825455114116790016185355926460731453906919581283706571180815978928116201033111665491719620286462365865770702051120563586104698417602533243524244711446826659602195807212385714303236513851962382325945851990997266145189017565460069780925082257155215368265840367537107617334634897559752823205216128308866481178158001738052702153204642092173471115888066298644058356629769621334085819007437806667262366740537842182049419530045860092876684102809572860551837824781366517648883236066743823368778363223987682099436843948621705816383758794771436202337830675641357101247264777795679195866694077538501846118209724527306452009721082672807540815798251211995164284370064325390984430682640392017292733610195841332441994805248476363786409135181513826248542105712667656972919244725462275773986624718298509006822244125878056664997525999786415747762567897334521303741684973051164330863902858524262635281597995280066836231614795230971979108448891768896977400810660639904584363038183523574113157542603487023706270254749082163190783050214666800921424321172447248343347294304801572585869828144957728989740090357245649628559849740981546744409228757376002296151402098198846531088220521472171690321144695493670737023476583743375071888474563424227533994378438444627186514718951719068415466989169307880370716004824236683306003976598929999228599534810491866756859811128535675858653132186100883518039118340529584789825616939233527767418000037905998809284049584499456552684826920090836320936732228730802461472391958770380650996977518546356471555223802791053656976162854876258928700632999850266449344399623307457939055881989738091308211821832520639276038333807595701964377327220089314566396186660379658341965383074183462923972001762292731895207679928714331491134225952406166824604861309567278469570364281539941916988707124463081627981810801723421917925594474560256486468727517429375383607541811294952566713984526128868927847374741785130425822975068351416904681060034927771169474963738062361563464453233686326807337977127172666212663409413317805363817297318329364359459061088270293337063485166022762047240584965864778689811007635526024111682955023408455929980317885512409819646382212276591235740158476996834169988593839561876130299314275936276898750295285541738232578725515864282081572927752254934722361013500448333298857104280645743405136760817331702974275577390357703153867062063172137380832011468817282918068784554701741431031313969966584650815611547685037399478153531066971700083719615282818453610886379052986132024977906163700743805872506935599004280496436902958454502291072939033355677228984465553981497983725620897193005361627112393622014723535776360796452325471775947483995527093002523149021238321564768050942874053750714853014700723713242898979947431190991636937004052603113673685830114036043165130954365982605421941621650482818806208501448904493221039827424697100166126703683241369998707422367917431048035335111467884449525577410402738909125049864233317921795187004781699504115905067770625756532720308226350872880082783525847778499576705176821557645885168526207353167899360081363334607396889175505891726424430181904473291248105540784172142745090873369249860533116300032240054047676570793113879530043543947732815705791892406996049468696579429625999764820910473709053673366831260331554609122935168189805435844106590451050228054901727179209732617349008831999286054201580285395490999567673452522253842354707704047950120912825004616037244061846917272060519201454763132603972517433309527420375985560875914561901999186841128798586597780404205457126092227163325555824305692092493651995299052102343443902293786646347066300581387571485467736579635449154429713703178353469378722797789918700080277573239597525691135910419060960852715959132811714133838904030900497697819994040342339841977324373596149182861893968333903635149959121727377737020400944737005012515598474783713084514285497953757921618077716550004358581157068475594707004590148647569408515018395619303738854792492622669055154807047899106239855524818145620131651256932601753307693794872907347823375077001130851619740173204306162996169927482661949697193082839682598856534815986211797276807518465558432856281089826046464812860531997648556033530266207537363099364473754691886461631546263653968695140113579602654077192652269295025689040390282877245380762332766384247436243144452857589315154194933498115060058975296617949400760066306533474061048556250949213224849549657883748028228617060563999277560647159841564433609427145699105754274247825258533913597290808235552070949207056981420103418020447117228607505054298377938692069068757881394090318572643356955743997245485757344079123748065352156061842407010892211366245520883789246928686338440289598286131912246839767900535356212978890084486939267529139485472826252234019613152112293018887075433750423933283469464865457408600401376371163861623121863767678927851717571064900181098572610918173347104233253058597277852145833167985892773977603371961797645903120176528216432410954947130128426991377214570338505880272411778757717812357008347873315874126025415881427677183253647290709479126852499329643225765540531979677954521048364796635276920991406715048549644745079688184728497785436246322405289192459048956319228710669841638798046970604595194822576377178814349716770042528974257513484479699931220881504367393370476363001961912417718691186848850214738449393570490571012259707867105185727543938976709603616657292559876671149645857192487469493548301614819305163333190030217466605230826037391658486244611517724764639639350218293056324148095129784641105468093515541706859139097789000423898457060091740305288338551801715878718301965711493284572837356067959697152685924970589821506762900975698659589331016323660301968071250157951533470216940130854942818960873662949702962848334447443950673665090474056570668183719147827222693166351492740812047723473131726616377506314306794353803933033946391791585705723219738667837798786432993427865613391101665171118858192293832028308911488028566110988009598466744365287797704953476518170025985899602388957405150417054529586891245556461147910740458282124092720557987420528343540403392929093866369891564276285785203527084868574827883419613673754742941204218796314094792147034641979889870944590684257885619837787691136456977537773416480331126065465783778000450970959055545376819552781101951528847359520961745275405132780147693957118723538290698417473634032526532701255546006435134361952613758740386681615945048930703058581278500092268455265994274220674300404806637342591314438439527886988186877441736105619018625607557144189557192828423520700636370059334720436070566857809587546112340847738243827942640317997681922810268931654293920698585144390360470180934922613178066111763595855605824369983245341406576918246096092577064875933789784122483480701899102632120236402681782119809843324457596108358809779197918652454986186975328063025925915190947786007125020555346637688791971378336642113179406298252623863826028703095316345078281609758115655088802532682804184055646185409957176979566797493560232419979538646590025543919129167242126328570910489137151654980464250084935195441481528746378078853235024003162834070221068486030608249406627735634076007840642516859772228254127526943506106263360424272782983248578812773310695916280102737948903337808109037234617533777942861185558968119402416110702305694813752497081870382153023196003068610519672309819860272897243037933478939090327662275233672540533834477506732147840736012678722122634582572537796550755166419851823948490440603097387683088833774317487288162460142597057040483332301174620585843383809313021738152688479044491685805067800640874291924948383076071430564365524981044173232332784668457780165830490865475842441248887342529466076112159439149503559272021586359202499237618588416078153332991108264345125813422779026285765415844245534626996402033188850538002551271718104568571368053509000862063405362787546821312006622901314713263252003891019671171210600254507533233788492126458037130638480986252659557684317844030435481345688833386521567908777341642113079190191301610120527098968024801530265593540093166555449912616687571815817248523202293330746296830439312301847659860385341089828655859600451824361783377484929260647414487130132158838921553380421799194406187369046379943846554706907176961540356060225596300193302007945896423171557986704840750191258253415981776938707021237848588302184109794766166651615442890387103957530023632212353794812340319826953296030878778953636621028062366919829304287884938096431630475625992565867861285197931739295921124640644133038850728254756707555988779639839690982784890242074582046772253662110237747315488159078316312872115327395404865647579189890755374423961182674587631312663693858696888998056668678296712510908939352045057573462802394143253849759661641581450381857324576541084686252517865367404808502611627822526817678484086640836175375400195447600325685796071255220134650713269192389850849769798892249626039542497970915045434060166757897014009122981143141747796570392667661342366971148067221527591322436489058480044467700251523918810614961115077548512179555583743717066514826116354566439309468599040179290901008644994540749220341231331476225186519314695266896642430444059166014112983635481304408834163470714165900620015237034110198951312381910223528233404780708198516856680394034010963204582377930984617077597303410549638438626506979892426178142927149670270282024408411880210273885657228875364738979959974462969570916294145404340274035817577778564822863945687731859817869555044154550018522087626023198105178483575448977444620883256552830599228464975524493706338479961063691395347769762221237266935222503855645747792974649116916598339462391493944902531295605167538720707377200203315910720109156436673854790230839182706097771520030872826704691417085578099095402233967015555447721868217480993461327449619413226858817513150631435903076580539219795931968255912475224001015720680692351775286808039094793686170795322489595827984557188629003662736374654600702476462329941397910360475479945616989766082515361240332082071008018799966021634450881147342632724408017442098430078997751551370541327860661471014516037360913264908088211161798304950059857103519512479946416809640072628192549628219137332053634978500693835468847648289439312366145743207531519492958526203440130468398206048490209023678069299984728860400447562010748097062240054458967655217583243241547907077886931740717664017352421211793884408420663595331993174622828014320796133743027984001191007803318716796841132930290385050250474450964204905543663221652432296941592540477491019932754401550284673033773572474956282314404435825764973814160421442757917995914157919392183153294025925650144462139177448518984481006106136342095149465212028540922437099801307990312538118755871279414634795236280266956317883041739101424268805838965029894779216837234568712552427298926752819412411829508986832551626552826255424152085055512946592034754755909665891426623663509625231555376992067705864235099395489019181928903211766839762077262193819073080374198922595319971825839295526928169636496963005872322365886830086005686925702989055660525112509627487089359331260469813398231363261558763163176198442413708702994784027321018740738253143834610400918813098418356457914650338361303741396706778857585886546029682539192239648495332957032963483024177255983881713125900437460974100382184233499940685142281840272961468416023441605342375184693604917965170146533003288822965084837880838620155337855954087258882697042241859968796672612656695714369113696782880064633651342776673512886088400132988926908180119558955950030000598558105053568613609057905459176060350284211468433191078767903696861869830948407911019595447485544086789925624531231727030353059867681176006189608204131247589250047864596892083592230591534036682821296535532029442818732115523964598759637389652330596297393585437829435659526583579162525788442611148928822802707272792760915208980470198947512262596717207014620857837218613178125091870708656607184974522986988991594986673253922997708997647991955013245680013310479990031543335823245628638192183370197023028131972524305636668724297348512559090931037958895899858503933034704046283349480765986334570689248536305180268630205147297919578766002622279931352207228330065185083555545602332163041163146152896426224522750136955164234296615168889528722141117438943088579428847801103006025933512315770753142232248084209127126300288231144296394095008217895458549874749558100774466260506927403112702073046530568131539468816974109425328421991525757696787007030809177588186832723624440004533586388230357107430760457544915324039497428775146528038040370197600014532294271235059247703469917689032877964952083892221190079413954805374482571318981597841203571247971389904715134837503144707806634023098161915753975050185540707897568540408051212665354301449796718816938065914440394737558837348236608142009308126084790538646820400038643468100091681068552889666936040854988188720264705206539127616830389646243341471491673895847615776007799398820467533752931360532195545938951040755297279498083271013979440793900102983334682266874089662912809385876397397261635516584812910143603672923020717719313765040325990799256411299292344517610255201121408488277093900005855639657673889596042246536419705769307726210863514325339218052886159147006055399753580721594982816544262382591968177578839655092807937331400256602345182328943667405501658078413988250983271804976606814791758244345479507012285823242189493038050658691175476823432216095818171153235593027200741108140940840799927677739136116231662990671070589304534313253077768440696880982980026928627118838171775274826845064594647769741690758164241854157394635896099683219147057134718050298736735681337390679079045132776466243718544183714461143493849581022516798521504374425939914127076023930454744309057073753686610457391666756486271387708723395127647976263132897584830766418211474990685860789610555494099593916764806952882226904392708290466818066356306834372458839416498394862087845855197855057132850510589015314344229915559780433878827479167774895849434040390371482533850241375188112851887159757506558112221971165081505650053189404682661080126910007422281106156678611064234269080847964652466053735452460455789813927405262481888869125520259251287812159991060208256766583008069317814049212690651285508218220768933616885385268616439722286883166829207558436656646942814992152034842367400226965381288211850249945859397157673533781883180996628840527710485836462470761435187708290733622948328623834501389894020958514209131058304674339517532086314369493390601967114055926908725566813255869578892853659067748838202034819561040275849387998778342475768227518243409393003663160226521243994960833977231716698462786695463921928040026591236248571384699861511479907159526484528977986362337290730746649919412987045405128495769098664292296620478245712838962444953684756638377571611888966866167583828729211546945932678532985509112085983144726558068035867666204437602219670123297665147912772539673933434299184383935352620533121434444611116517617101143043878337194475154934128009599235979009676289795189049280492875849122949082873751916074309371042637257254911754828725855081141572310664202773367734389572267971074426242448107261445809963234315890959215778712537455036778345278695106954915330776030825156459542140034229236686187422050881216619757308058701631526795858017901474577476065952573721480114803727149771694662956116454164582035954518485315256980235938033875004926323192588259035320636239867062624269170590738270074364675317106456345891416226462170479826899662225620056548428520824614623362581875041143195709284550051866927914978731824828968324027550547652024698042403628962948027431650955883835151895975353678118114658498410026023402264230296117913083366436408312262317151329307695923500903889321639522447744413698422984217013777406114656902911259241732595916027014592046216314628681264487154159914016995298718967691782070220628931740604258236170066234505152489121131976848083079338418683655307896459065545067445201231128192657307996955098653382225779251690605021942425757349175205636787453020721371236719898975231246036915086369683527501299612594232098855021428402852482360044913957253859856244927863747785708273657369360390132505936669658533257005719180281281388577860783615062131657731506651922646869709527801076140448262984801548326126447323333955927903100516180791509087123247746265125591507220973680424525876771095394752286414590609148427176173285853658582281797058017107910413753107449763786741207644829352395121893535196828338106440589815885700392047140298721381433746144854709222562174271674734710566339846142519462899665140999550332173995994405466848310360358386064412088453080283721654990849585872025798782450111483131243077404852412830595506886191715590676536076276738338823345501688993266001177694287362554287576746806178797786672135872399756632521845561374156231735763579008456726982834726832426698368112597194377710839442409431616560978373500370357101449785556910964076353114809949281079904756917915175286528844334139586126943001075879179383219780464704712226925390334536796040951332280798512157116272258729189677992238947133744565264470070927246197446518247118274981273680610368229222679608937110900556016798894241726046322772826114226891396009145161615530383486702606333763790258389519214530079367665434296144322381357403594919664923844170307648167909636499170094975359527849349463239992939692368071801756296196973910258092961448959403862762365286351788509013429477101338347538580227298137688066420249572723640497153551993899656114017644854618406944180438203175838489604690248095462748225950730981553877607766322636558725337604176396714151460585703511505894870896346681298571648545752286910703909183023368846813155282484185676167639342545751159921099702474509307976870568507469792324034761573126466117123139843952160122694376278885984598759705326820822333847956966579255768125307489437571759720686086914046815546087033173044083922881039430927301668062887759419851680205312846798975709533365545853886933026672991919012722333840040407284101952640662921657620914121256835433876302632493026339765416357241799553215821743451645235040312895334251981400189602451043817625396780842084852403217792185584743277691854776685558556951225332353773900826200859186066361796678240062625796743548224228070530303748458200577324227194608084792973043374133391879262563047633150162035573648992238141097527419249399389161523232296446435020887991844458901114983452973937785881314413129852848459597997491361407796284862859659734250982996342223977073771168818776840975962639491063875851602602422953538961665096838462957237779780188178851842673267756675463029928850176797900726134045068277774857316938375384132304752809346654264086777441377430411049110995492679563795508264234407584675683260237233588468004699699300066640949799057622760954434426125279522537828900622037662644800968138626479981619146709238254331202818171555244222806769994938970936921225097909843305184709544251058658963495611738737406928062301767156571861839003338515371749264628620378691822848250060002961493413064221166484324238378919067805438121117229032125559415631916051885849713484240422954032301013885553935857812882579889798021726123915366704466626638748432767632586295812264007980396991426454909444598784058175698308698444521494798396943709121262603723637765180872847606979518677300883031036984223070903533418018479294328373541057975717050078543286724162689903252453718438364691573493659611147402298195808660067365252937071773766524388451563818028454890258093515722585795070266193318464994984714240422570860921807666176213457668118610406222035118894428501702016771858066882869590498830435675128732453275293343033158414149261513500570576617881459686679007158933974054959526720989599692715746727357061857426662129474809022368033070613248592896847821286910273748408627319102870553809318696225766505103362328096299378568981992669797998338186423940761677151614493912572342703525473205438464303752765910394230525925108283145439654213731902424154224709239690263281063221058106051918379645833531958385630418779758151893561688247775653975555676926804311168679939536058854467743275689011129870389766927517180828728401483054851872302217228453254391685095302123897547648715539647684433842601202808628074095893097528972417059913309878674329424992289070002353408775023987264111795866171563903014582982839989703546148135290127906953499830600601759655578402411203854698138997773235428416789310533832467335793617183835503906227661583355155301844769384518244861507280149837653360600907207104153872450989722538192239990085966609276977211302360646067234173665950469577303491789196573412865692539020092177946540125646383567458974215683341074373434435532650416213729728538439952556307327587112267786697435477359393808460041429404203500214377298780645267227439091112277599573586197017070610697826839189499061247408082782306717359542653673245989156448838953971130166513703720309062537896196508744905585473833201461212042590825836026255270414753726003619024997634901314674185461510259277260614533455028858378786725267186908412736632345791020428715699724584546868846314581430285840945522646907810938420100099203857302108887361873932527280799926882699704520605964730844314866874435560856898207541915235978115198387771480350733066735147625115914461918837495359207940965056080468258857659188916351193474248745332684265481020920896608275575372783114848001657752104654007587834786269342019303148211131182844773776137709912632953968089562532900186441960892639890212320857780913865109547486576529621285569967268932065469622905384330068085390503169445141618640119100755261766526511191204884805382543719341830311885675404584738357492660068839093287065195304236531116491258163493238416166421516803355786386938065337147084837271769610852818540485648888771079640169526207373783177588267666220143827192335642308697079685514604115718714718824098260180461406824895235148340576809209126953373230607078573264477333003641660444081505563135494635589527006174016237990898903194520850251426238540554033646819994934655280291827360133258488473876108963834498976007933998479248514158472433918435834780328840896836712421717784372581885997579345399997144842924994471575986195722986131071041449323210443698090902562658589467019788981856235283020830957929050978319471159493478261924460007482295903509082338922735053857916203872850546712175853929729072174785909074842521148281029619803587124518042434935873336161880150998998784956570082800170840818083113698314829876707197449339533297332055095708936286746146552348795807458549010852503921327430532425517291632745089282245481240335394189935017792123715342218625136421893393765816673138727428120182805827138242613299769936210962998916740110904546628641541502160837024552538822843068031649260481662155176280866557570964477106713642320319925689983430333274570698318797710214691309713563503839035090994001479381433742378452744850640717495927769066250428032858180234174612211975799713363401776041410294131564269308993047320988089566310716106372348753827730641118937449245358184745517428966316665786046989975199271045241704472884057585313426206627964083936337922796776749087951654142814054938999272239965526260531160423400380412285576013410752341741869410260124319402345463133549406465660865553586851432049152177540739951030147999436524558821102122820184049370946920299050477114540796025470600703922912021069006251440628895673366061148615251556202459952669446432958947150069573727188202152839881545702951052018925199561275494812733341737399273677971044184295026593440144572102678901922337126743540191155255177702486340272675247200541328815727141438577909523471944996668945339757368805829824372035317682051369659455199529912356545400553123376805935067390652766930720402447706150535602847755190637627578922265335841424757469653225147764496504268646537828210575270096947076410271116866425508721547122439921135154612483971656860826157804376485553817021407995833165559107300387695316922595929948021099129195448699556757809913817067727092572585528801301755092696096198368673747210193708772153415878214526360960115674506197199318000974392540305588583899009067903859519695826401804955522509944764256757920421356807118873377054798173644967345146901157799991894899537827925719841397564375920439559743101751660562484181656052240075128594585505196693787907667857349034411687389258565977026723412185942748069450239133919485744113302267579209240424762606294357608175927769126249706284111439448670582603833111472891257425955805843867213872787905398163883201457602847142749035682390861237153883629345960629807441101531427581963124975619928950445380512327622547601432351366535383774160158593665658567972422257881418708729201905270560824314928319959828922631936922204754015785455081572684842892433605433413719660076237521567548659696411932244805555252695535283089661795178069657893383043347866417613687269485889830972703320158200829970332795765461262976153266021375099223790320761379034911506601696683977916381057762777526190171496259966004262836734806136517528067742673964525178698964954013301007009649249230025112683848913633479412082801218570339231724338803930992721980553147140641216528759764884533763705551007466622080780263977697815940703413424656144922507598773948229199501143347576790654324209668718551593703638866401147331028026414929620900707061794156212107500873465422342508377577871312898877428410549291843833514209716350180251334439462873622616272489352408337224182528375660198843171340268800241872811812113197087758211324466749239077374767457244126998723020911396897914455989379870105362473450182156892882700711095569853086759661613479615219517121945001295227320869852655093781992840734748037174245705027734445347619081159162280245973164576503185347994872368438495722110009037080814529387075757760951368805213978532584923102638510773713623759409198061619726148443609654772009636703899590363680451275503063155578192894965210701485247555842941003242859884366951046378725023808610903732173507612263690063191835157247267760059597979753328729101022100922826753147683075275372903597426617815152267901571678734620010413429332700161281892620443619477284481671499824837818679429997540681511711340822847881918056339823915327557485612553967688114329974228498766625182465646969452899600464599056276228299196542625569430881154835354718380458063156914195614043145648335771444750256437762072037028052569898446186091641992782381954393496442837539778546630685444116195897404029854528854140849026812174593141366645736918342522142686552168540720762076112034174063846521997027117045286172965707666371097597375615372764396046645974566440253053417510295403133125042071559190374313619190484169887850920408424831918855817851848860896773801738447300910324085406325000722256337572558953928552075707328664572697742380188564545190359542332127745474633691591461873029529540397080837016356474844228469598671741842511327061377821073801699761148396825611784220128978316495959936162636077826812936768917327966728522067360677318460233270148896001320527552611444776054087765335872357879355169789268556152727594418767178116758466543371004759314299984632076261164612729088254458431544818297363828966355878311171722369900203027441192978274773800003530349141461058924184360186732319723732570677581060168962428864584749191281270710311915303773816625827807110486056829317457694434188444322776738691709981146353388412450483664970139712431097347317267394514951686973593208347476748068993527043458630983417631036118644778526214491168017905696296641612768506402501501677159008605498986386215480994315801498588257594155501182935647271532295837993898390794207638719684585268669472721918592377577296373340953914011985103535044001477300303294748520094059891815549698694202201030526331867608274323094382385887731414259287574427033212722704556232695836569318718606243363202638054282779536426909163022926804857187082613367650943894951144330959843253274180928831726567306888913871572986850049159512275696556127431546072548707643864741635677224503242983400567152470263595563015751896712969446938145160326120930601817724111561901497173342085917799007865602183980180909473838434544882434929772803756570854699179607373834090501227929094132599270187734620776085595373612480925395754559483145171940104042281225699356754480511186636062973771262792470225171998667494062739429868261131298830797373448929507901811061757939104764744253681140094573039822457794409820473264495925367598213225309754718901692387876707797854168525188909462726807546290832769670312693236805794058914693854875725396714042742894897536058392884993381606153497368279954175616053312005105507305855972546042682241906345944227720074828966005976170159091185242548918977186339641455884848374416647576619509039618214079792190213738316500226723486296062561594669592729505482247256420816325174449589188551649386916362694132472337001667472292067243027822728769642849922147513362540328227003554017638322541699888643186510170292870123809430155698068134627738299286619289944669938201632857377360605221610334638972305290910533178223529118277461029343883320779043797258135761343495566631900485182697041547683413661246440135451488678748672823405569273123456774543530859069896686513819335160864864781365528322532285074732682457296662641007722885516987205719295494767458760573900086719667174873737061592189323800476390152093725405709898941443085941814495373378638979524225958192744022786359227842354387514765903503296657574730690067954077153490216217478625681460912796577081898712398202306241330679889467529880622070362821179407306712424898101226814724269680154440793983524777119380425297537517836568274694528059225610135550744248688191712146777941581692992997787297430013583333865044996272929632052502153887212149660754791904833967879859512392942645321257591914427823423933400025625653546889380995606224707388626541850546454487583141199653473938303893441595937021110529281491466870434583459733137513152200335751321443688525737980978539076026613338272543993398259386855101947620362671991656306019931272101757650962520308014597501633206066693030604630136506046077902830121834374461420156871724710669984969265614874969815594593621800094270223043827656414290037947014203982892466468097490079168003600216281114693649897353792966583088263599707550224193632691184014365601958091234087475632717494544811790540069375872700332516604713102847948837019016090391033525330895203262734211869630146665306984633344166317379921433689023012795569921809537848091359027310929347977053448622850275461673138844086542232410014253396305464141294428650098095161967875456281022901115092839098802671641294423924125815351435383664378308876440084296279566397008088390267047756830918703587244504728130166677184632772827882504528535929618810671369364203351838675520232947275870376628985121124998334500452600768321482792184327829708360838603848699391255180886160914204784835887854251974879856809415899487815105244414649588207399845170574095708986578469115559686942850115779396447738645127677318187487379621999150476628554344118803562438927234427177788011707678441715681374766842110475102048369280868740967165893998456557483688117645581226822352701763403413961417754316970191214966732922026022379934796231148390808895987573362995885966164539712717373499686827115566596619840298041854892243699498777093832159338330805661783357706002772292537904271161481304075115520532745528461820927341664548318544483113747815677267510537685245704471250454843305012198942670111755258167991227534129741658567787156810975368224912469697069535359820148915986998506286099887377762030895139387923823527228821930876686554214914142873596174031824931818064738415156273356716125472160420374759621399147099548151748007326255609260416589677831919329075784985786324740756375033933868967496003290214494874080834210614025887148270185793372797726223179754148804728303753739698982698617247882577705764595114210309308100316050127942253800764542227881466542003730888365561138852743280587525455939612258999312373073987311662022661780133254060489871794878398132829857654277665637951192011670622237730876434534812477133246832186943298240588975630817893593760121250644587043006756038868557749588503978393605029574118626643976659517814980128984267055762704937255042911200658681677124730291860973668752292638908904598333875453509042551129048042841960624122712933980794765465817236917173116827330414982172059394317084407923065265350787523183058285771433476555718140854042420506874267305455802419240068407052803368540749120101956447697060048670285703665030347034573188622441725414401546134555844158137852051608537756491159214881905942611781911683559928575026669342865574161784244958030671214364229453415434254394692308221770822081593258626310550352884857603967811428571083853009872864055270489952268918112259421012438507636395129639386790173999404326726866289434995493866222326348758551965609962422225765269171963006572031647953552658471168889602886213883961845162579867523438591433132556219096988599454308274195530393317928111614168505328644566613923820422650940216003698220460250947793947740790808592646597157530235103271504081024479878495917420362499499793188504161911945632296254668532147334345769967664861169107292285185995177739079446641690898389369291921602655853374042242948050370811135261731660751381052275103784811504502407007289783598239327241740679609471684530730401037833269915964993072285942825528572940583673522367276880233069363406511140458337642189358869748796696066146364164512451104656856684069894871127488588000976096119402953352467262891313723933870861876378687238830595457240936234038844853644234882948433258907778406603109062888586862487509395761745795937305073562517363507997097280183774044874806078867800074293085523978567801104920052210771808804743600292624373035982191108343008280611394802030640721553316914591113405296720689719839659822785926323832127873862162785029668489834386794826426145963454178617618951740631182859417216516279680499336839439524295747240233926809932036199602880240003157325126566530007500386539905713693915859666138219483664865693084630077486583520894590484988421293275497066466624681774606357138369766405774592545950337925981272827882247889668071668802776720567920309860973327017857064967529480727725151333012015680329349242578010916430111252375474734387334546020294636329608647586292448763020644691444764558149190996227133650324473109682241363484939121087633255404976900787423000330496626016790294991453265293276204817071198187987490374116703741353038085739500596200020542984022663560853187163723806259865816508720696911023720957730931388235060660815126955113639319555346411285547012078491372410114623963924726402965635966825703770860286486381263749810246649675369763664051827812344020449847650609344366393691585689636205156539612504544826080409819064958627519542635744121090956452061893383255847083461893028926472028767480417630960090444025311543232999676910371170488963256975356250634914697750166837883784228682837937117003424036097385106061877819733415256314731258818314690780722990397896668207772101143974376122307333730271485681767718694613464253903182970928872705707464799010351078700713716263852336320645932979072274360556931183465310863724524504961559487653784750053130241687724639432229124420606646789279220605046589674552648350767679563957682462959955859434769459434330388581104399074934051911259985932606505559822757515841782582822406889959282981872540562284283543897124501653179594543325797369012963890120624514719538971487748653092090214703612967290526237505255344330881493064763849274381625061550123887330634827924716573974417046995021225008017069093656973308549827824621979084722674216874878670615891133673052721431091236576357036230707086796244922068317276888466980218259889007368187045733574543078850570266070168579432246210604527008695365443731510972290886167378893381789552528761611642197991532619629176054950633213880878814893684215242249895237239123261545853554265875769360294175283353141561464996880816759827644654082276859616884487069037701684083902933805926475130621864258463623915861652825208503825260845340399174989522156896373342934862244056727134603325136555238316237809066358891729757356383417931203580659475012399096951470465493658538999049897184948019297521811870663266898082231873873091734234604237730489737019286587201244196959116861251760703860236092735781398849540170771092008023307085645656964511302728940689026043018694223344281955231667037934564936865825711294625980610009554147914705016557253890530200742714417857157790237691237184951407273750350829326744977202444118113609885737399272681788076422081105216451290488105408318672453051228297121470630451779548796432378989712911340748446095360099264679660266455370181037445916600127888023163487335225786339432781586841629432758858528653323944968489692261610000169955985053293647428726699503811579816813605903176304270391915729310892058380883123766315189798523316392993545111454093005370425927943273991620767209458843240438644741520066455080095758619848014146995230136062600742390781596010512619960214526159470107922580411162321827029360094336606583857507303530365285785926247391306645506534885584474238942233387109101304961060926942747702874103738814273491824191281715488228183367874062168370755480671376189695010521300570079379902096655958751000539860032388879487833497227623373692401022016191164688836487905896331804975359543098985214861365168423556746842097937544788842296928750329380515183305428947142990857362063006513757404092859411090757758333759437734006610698586972405535128424319322753845323907129185952639305588528454133788214281096985236457966828011796920223765657728310284726601423631954422451061489838770693996738717027843625922719858652029313268240625572431539588173681725693241832020435810562068786926710340663055658742955881844385195209257157955364185697069952143626774054400634403911887355253527658997783874771461436746851634898792091604501661609725845921484211476557980775750010841542177447262427744962888881465213855867822233938017441153389200148852660239999210455576830831986363830526574277504781469236524135659657012652771940311237818212249016032861691043554813647928041086104401718486655689445829819153532041989567707451250672015800560976145977182250896568600101251363125293858494642214996302576992410616842355998526210463080555100023462010246348253053799189158501057807149749688128798978749118455975710348845798551259807978162702562758787454841039668118014525522354748727025340214521375483503593549766621229121047118803391760653682134228034002614176530791857470763266232360820547696450951975851219246923691787528542087870812625550510723802569553228282045033417217057050089213566170167467551926574022886060082766955672913700292532271977047871545184899575853171679097666845210947341110443188111063253132765868254810094984024880479634609857283100325061329454066154366398918514503663006233657263215557663958790775919066310524532340162356990507826811695958008536635969810296059265984823548616987236582591905787630968019212862835613957835751579912961989890620286660634396821909007899260736064921058398854883656926066580968722425856566377279290776743983889814654966236393894504283416399581497441524286792680675737598033924986841669044396960756166616108980582139859952997550935815955203439466829746621179235784669470969286674245442466124780848574859056584289307737972885592504812231620212622329232846114686335473964535339313705332930901433052116320152361762991683068968737861973944132389024738117484637809407832366885498385612455045378024583390135407301518556917640031572872426232077265833463002977229775908808537680322177423558757291160338884716644481243090732072058135034272258330815398836810035261257273649729686895341981705545248849814606136758431525757391332276416836193815463936819427283003245288599932674403043571545317145264776608691942593357418408260410135299114585445865512669970004923552526332990895914363695844090709863107512153021569018492202091192054944567510724294994076385970176593222120203101514417898826528239812676315291962428662980323695547564487344684198878403653968902742191636905952624789284800193520783780259877388236515218427734039706638506465723562235487338960861359205659020763023073214802333231824588046378236970165001988521524538061802994750304438349533434350402243532149072215302130574293377332123023485185698717743565482485497283875309058648963730223613780214768255794968872594423944235626321696060011758427424136670008446583156680188998038066277232785946491041974018967601957368556670170597642185264688218535171180579601583006053288455794941242244321835056873742925357688291427239863901040042863911376743864035028354468565968973990352942628844928120014390013424752319957873098536172906254314678632489352257421518289437424177052874848348297314475031887062393163348712246358312353744144382408452075357791428774277621874693933288250004227906533517153784423599361206078648225765654472390128268652714263009107834717818703139566304529558618568768765961694837309210270965309047674014598597712406175101905869090282471296347356966016604971801968670948401301714059171093762952278478502371324307318729153850532492354320393355929956020113748046784925897296853491044135991017286327473035457688939558465407676149369755317718818419273046185222026308652829108359368888564067598344677692115351008128585399612864821833717421227042282076500864466770276201569461499598394375093156563285000791037157615197027259988368325157783964194038614653630555280241260603609255600563535027825752883146104632320948438350689908629001260985115099210465373133347065829781114984884132711801733550301670156480882915277219243762381608379792187293476513986711111411643262891291152290520281547622346516907404268684044133375230350484679151708618108870814365871666534426254170311005534795307550421265123429382140580975778406492481509937744817525277302778355300540408937432455397716727064073033479204849883388684891112629204861665474526562893855540581519265547832259645495732918796611021425348546580212352322779139074960007211834835306435036307517065844449928571536051361666425966772140744227611555241151568286643625993773033113579928611639396420992338747584212582735783527451157320911683766509861674328302359090732477449438696950734676609531949733386087188874245342227602989648302198561273239828430208815181052689071624377530450174508980016375812021203140266176156318404583745266665331579026847057462139883303717130000301215132913778680587416729081732014024734569265910240428495756212059799561277250406134879709628317786783812231214993235252448148683070943350076563292435052183606245328913518109994106542570949962296287248834109592021869206194833851007618755226784847492457682662674376789056845775251416370054590227470630457862076709151667209024283654417015085532991166493954702229286082236927661067269045046813405988246025863390574737428250158740745406514672208452055601182338525943685826487581212553625196808694765967580894308164621526176167941759380810217423889703501591308869195083061183556551395905490994807807939094252871182800438714690261714607635945217963289619163128276676018827937970184557240418731861796766299773273348109094282912006808663783942596884276261849003685075954065852831339413839680752587989167114685204073579015713177529092879399278771419910226761666776824234201655032706260616516397372408522363356994248592905046224848345673107649314110195610945646260581787571385799312944731852510635668688250871936749355933421250484423004024448185890468654508166948131339265820926493022575661185066102015661871035589541120344297524208770667647813171450583451052394635057728578591604184401134065727420421380856395450528686012676612523567609043763350018752130925864441702340949883788567722342491046198932300993532374844096526745608834884085334099822618015776962743390227621908080720091190489234767441477475762480080596656155968349392177788976519250873199812295058572658312957364956167367156661526579752276200651976892066666341103336246767462737540740216935755613497196902065769396159021883724460544177883725826617013219520773566748717095718217723105606754165410540208577492391366923843464462653612107035536591794192688963081768237650757458503572404791659573643065694569512887707998872417696947687854850374118963265265954384448170230878314014444435114568125142463084387803248782823843999628044477086064590684410682985722628548954277743674299897087777702998134731890241643889128277015093291755215704597499729866209390892715183147301990414352387000955667987713271326048356801455890787085007254337469100031781001556073871159750935031347187112601446489679634273936439241968297013925201473459242290415580039703379929488716835303470670360974107349678053654749108686636227211523881517866163081812840847978459785723145877470517518730390868613184954900251489345705514361465480199520642328207968126988409200989306048314972452984594361997210873103037458300355612334141705375163254946722311443646828780798288377330511177034138878207282322419938246053078567715230105973910522652757885627134145387201164899587944476651104454509664339510317866347681653018970504140689049692441737633502608898786084938872933357334072421886905915495603443473138503845357576983155237686324099576408622351860518278277985308930316648495726903779191278281334689860873488033863398026538645713782393079517184625663934710243086183412567611464393909987029747418900732104700536862373830597390327580416408946618844645306842820528859614545313124831186573753124569937612223663914662682534657181409650416773941809968587598720425033111101446236716513434609769867318042127005554851503266628538886489184325346922637999843096519418038616224591763389043410685249945551768277604947589421674500534544370061148423519982578810591698579877244164012406647019357571142141351334261309015085480453574019203822650299540159054891693058341726189848585047088841636499125972604104572770938548966546769247420148746116764391564779251813245084386872853761102749493487512335762533464883688885659805497018135837268080161674335720545699344510770531759832532999492041282860645226387899299193740622852296703773262854042211151568766467112315318185964942447376680120433808007301144873806350743976889890257208009865123286788861048492366877807113783454174717411458647425191367953689207487568640002863730482025744832297808724645908696965685326265094645371641847352991042803416459573943084008464101318072057488907868883546403701679385599409770329405392494638260871580115851797902916051060801804206322805603584396419348073898036901446535817121792650090155523800354393233598655477827160701180059448098135563679048120603064165564769250988459883373464424221025745777738209839165836082069620821578583804462626705139830085077593053657441495710203721048156728508067582064863106980499480059624488338735508794989711236519850888677534990812354979449039235293856112957589307870554225508023576950185663929494426724476334486919150579964438420521313003348441317156271243534537393137952252651718558452860114448662202883863900973037567262995500009312163748671149975077908135149640063858206821908908433415621981182317636450292616323872647409720284563224575040715767840044341066087417339560487702361716297153872071852239979530646028727351062902205719178752004781866639015769344037712194648373579809924382675352131237540182767686528324913248996596900210819240930394974316859013549775857511868683809052885590629495065294451808162375142129611847676832755925729505066888219735042426726690784759323039644962116945750883341742502912460488724282887205804180468088910290571756923349145418424883135777886569912122426726164297770832860907603849874986223123946721086005679594305262454187378116562888073805697617779988281125795344956058036568049725800545765478473760085278861921309976529791053874881727597343617152362952116781579585786922590764134372716306932274162308458855677659189390617403996952268974439158686786732419242591072698003213236515477826843178312199058691100602571594941930228624251203037784676042161914640400028774510383073185018932880188454355304265621475460128386461020204623339011778712885138231583756330827039517611856537177391771364717103075651628538016785030423677397816381292414833551413182906178984071753284394801525604176326119878743794307760569992671200418346645474902553067510297379025133297612489170539326981061758803070215737053723236976837198220859212695805347470986393746762390978657125453722681516944787760311172306735741199245428424522406662934564325270978484642173034199997265191627673788041511291809850376156887560845384337004357633583360606225823494465069990897543572704190735394361030479241271926667478277650921017504185181344238248341256574408765445195916253247036747402736424407510466029140552847050564192693287266753078363980957994242006021391427826129409675119260291872924063799781877787038176995688037608896501791432944020571817637409576645527565459660065052559042489242922174613685045927360413085127291744194631878718688413959217363118380137936522729292771255695710755802885693596517248141787607779175384188554131492045316925220055611033749144746459223056280365531048245434795760329725507739743210235574987743624398788167319809537819235225838592156177485778518696603724592949184275208611335833947043507818871304725092554593787643400854820811310302836801200152855129007600075723466776637554238483190546327950272365705293305543046889566085644396724573441861915609304980062067547773584932616850311870361540636267024536869506805493179561344080470347340840424121537971984780162856762575596743106476206968299221744921233213052873604005629265150651492213977205178137401083515321719177501548039886248082861883308036872987815403193663974860164717326878835385809708642667617720687076968116076378169398433814639017923583814124555702769239518331248098083782725699392622398186384940129335504432672617660846724874192837335818474342386174780077860585275761217861333612185779066981997259566761072093540504922407874492125747904797193408739675776096306243260561382653102734740841317286685877178330617910121675051103541919604371226162523281688787263430529199336917853067078766536849390755883327472935257639360775350480621077928102522722320807150014153643287114891355303491251220433683866367880709731216715030738402747194720126948175088741053540042296280751841297008986201105096067530216765859053158022806175693889617074201585665289834977336272429740251250742029975992998699471513848840202299835422752828764208225179534572509800066334619690122183196541977955467949386737772047439769087858500406827642500519199336599831391813984671946559920884634793539337610849735061220204040512297413990348601218620464208605647418145388245205978904090570289419079233454867564441786370034227717490187708562625142133067880460613910801229748180671162351688542806713254220851263565995922933287939848827020595106936698833682857181485997716566643201464429197434924386407044145585867912903118609845236031952068525314664726518162003094645341589009902543963961150315374246414239252040449068439349101616887739412919165125887686750871582934854899430045222118733358947512529284363752082259559916240944217853692458306372661642494580270133970275917128218548414672359794638770109338136473321921759969129688119107602034288690104770750178467190002804817871129825700694592997579118533599943775333481688539336958146400930908640586577278528782754703737134829115298539323834247070124453232745065453787267347261664546118252331018057187474902118768941830805396796253170360022767054727638767272562724481182051304848925147034047187344299083965614816059897863514325439662709446249334164317184992499724915885906547192974919340034827880239610786679832816043748805712553395202418511155005690601460995325707238898719728573532358805574613370154543679892967572768736570599540472991048230995167580347419615091128067146197593586509086769533687953682902014491373462005229730454589360502820871832042140388530367787117392355676757598619100650347585283622578072063326501526741241973058104394094975109533715340733850288994845129545682734292596029754881034177792301295315759531957488506040025665428797408833773063908112896127221603820750776080031339851824548348992234231425439406417708322687234345819130245303025148371882309327166405615341813915572062028272103380079027127846135781658328481118329527692942331611201518472933786946378179951083701388619875156663120774331455233005901071752542115381007384805095920305348550142241902534348544472566181112066447286347122157037769003350763720051863211320864157971008433015673644896017228434124352746171650206070748960651954730092027331030778690197684099458677906463634577135984457535817633517033966093835891185494201348101025354720847371590364339475494132425027005353343611592455153340375169065635805818948640494933297375175217861545147123383520150579560845854549334621272499128969604455368020348223160939218530919408956033018970228069353348234022873888009487170192856954838104744589541494096445493083525400783511912186485488994930693530701469450715142631751125022581186035950424455957295289417213525473223194733782832801261093212962538839404174334522237457263902301077080703199294008697906007130495142481701810033076759791295952048871020317415445248262574529431982462101906740678261639156084345836926606224965703859501812767700689209774220741220324832259509767676027200253292364018102111131802649183326926413379752919989870684385500859348842460676391829556113784796901671731511794699562126775672036288921989347933200151827774145406770563993397112412870567477960422038259287988361472107752371295216425839004355162944314451719812226228776254615361412144756543772950758901643323654871329871399891846643783515862570185100614213519720517788419303547428183903543083602394157289896751174498246390845170387174839269080421307151034219227017062868154628952550643876789189941528508027918138987080090006099743244645931403242887502632912801333917268865357396359874281832193718644965238525952656079459829987721205654896691028301910552833353176198376530669995824394664521700473485250801442776145065959178373082837423059179573241074455275752469906600647331705349465681241184230308661117102934019608412891824797460669079685367618564422730746231576840242750008300470898504645386212074274388216973403480507372381979085194661200571894703690690546626775755436708575946268377485675937045929873876902795581172278182126516237317418950071348274079066092231807058294443353502312559117053075941540747091706971616677988402293216919041678044731328876104666157017404858801711281310373131082547708454373870149178797117135678126402930400209625578018285455217748836644633869627424748116359550973226719652624835618281432042377061720216172432682401075456210095792473560965018846007880348656508898018053800502898492643099453590650375262754018451451333989563760733540671697174358532968655664482251638855445618029851725984056921114337224043150932109917776628955802948198415164035925071969442799889554873589482299434641513021080068037649330051409507093869119521226739110198558058759839203624033479928477789184598648239770190769903284411128634719557375118074527296894566992298912653738534166737455123249831825724372576466451732222095643561529954838066710532438113502276288664039141459903591588929003023191913642198532813195669033807093565572049210523330477774025223785918152860159813721907956453933187666134248296917813498508256573505219669957129713042545771523922567130344879018105683034922655492639735590716871432191364876372287001023599201087937180267317772198351053704232287939445691821676133310385170914817496657197528764857506897820771792991471685318165570286830673457044744028771122622331946795054417423250263652061803726336583219367006359485750389724705448587949685411525111810720802708281523803476423366059268029573010941823152849015836896182527521173644297946766703200769494355819644220370328493460627743277834195904656838248097799866713927173549470623524712621461538993790375004852915144263819045189133290566242242867009686712404078461269458286683631111802958692960542734477178298134164016919918299521813984477494624239221305788829418987974064907666587649647132797417522287883172784864123431103308771971550758709967134837915797296434048499601857056991200465655874460770925082637912236078311527680397833325763441397324818047129490454123206254131542503158182620777706160678738094450257338770514604600099270817305432434985681153699752135677084147719696504264597673564323239440597424989844400129196682789395942623434951475181136001410201857631103433966019711008385642634287008761708412309500411966288539070147821146790164704787656254412685497101950377072981274315831515116418548768178250078168275954623336709812920275844119124847445180457788241877397656059634841989715677829118629434248101229182313655204607376789056367778852144595261756805813355885513455187565043344576708803558134234124960058520861793043559012139346721947104050339845387020267998368672811033948341626688869409190977587837015642750730399497188835740232658038910140446086403972830190865236172517938676637332913472384833124766823747821564545243619416767701049323605637245200032573484770341420693481635876026996663239462217094127371006832092484597452022836989587800006340435930585143781906470380569104779088905247032502389262110553192362907244239102681116435324636856655974334593380356377098959755446970718639288029199599215164695795902048563513648559637262610195011169517588777021571611780387563439983389829785692567516192406328906362913444265005601065991335763186981436606850483012965002405011273770446831341618430301151915599601857074851865485003280368199871461229531822955306673772877686663603789505257820893022192001558090463029641540829361901626554583113606119721692848147342908698527804843750893649738373474021966894008375853988394256384124209414787792583355001512695658203255219918270641732833921093099114643347520260677759239596205455358872659431064743072324301543202499899985638893207889389005686875943716355151168187299608456136833139275886477463644888972620757060365738941126736720840170239789701344912785677101787712677291421051237549395898150126326608361729100620839554708786527830101484107571349125184156398566290603153670045411285257933256686057299862113252341779521000886710222419309643866656890764727624244717967028821851782327500147211402875383689976397072796924808564886331139637415318640164425608739248019688225554874299592282095726517948422227962474014971227364066942057465200670187832750377341267884353476179503659112346754497232362278218371457122554301766985852468920125079854825947461394181848833990917416983165155456182552314275113890596054866629518321966032348074248556607630034342097760674741619078567939416093868467850386070751311538798516412936795827987282967914389692325517976069038880873631913866698205530893211383609068136659810221398223473626249793741185980299021912377862969927410940174882434464479837189476746072957373249819553106481894809926513669089380039109255829840349616522745772804669548513958202076971067763554826990449381612596480154235688001021720778948451065126346774283906795594732134708412641378184264606172448429222327912960127504707315555681591228862849513321984094863146997948855259642415920094927352376420839078131885439950829988604383031732994958829243528416229199195107729948919759599123612667801713525219108009005880765202910513038082922063209047397020045974295785488270997952785898414904989095393024335641016180374463443857666726530658461719979659356695223979383608737926739232177004575977473159487451798994478947195145813084707382973137676168926436642874623019115607577516799734565860349690210161705216322346027172669018864514009307506284064366843978254225517022357830818873832127856523137698266067806363975612702119807124153796910931232329214043547696970877261511325579471439249042158023898389912757547534575247164781716158167349363574163198195972093690215657989536886440047640787872423511191057597988976466974545285463477260674793113723352478363902638272077384490722566597376769443848684417372532243682021528908773234994393850022898313120521281041466548181028246317435313461037667516468409973975993108729613504322709483314133329686755548733087570031347085167620903809987124591895599395785814103771057243272117201024880518658870977466616581555338338190860215481561398431487954463270962271576404660410983769596260807242479989589832391340921511987092894822341635195588835052102547353253001839449433101711465841994057437854167071529868059300184760288975076707294618925514491176526658188297216964731944162489567467400673737958963118233780279641534802110694197150865245775338734016090203681048849052272289497440169842088094163238246987785208838969478241052746367523765225348489592571487936236867370350601785455417042171917728212089616638728992804040646151421044965560873047132470987997288669538055170294842899932748173579396155246488315911891318249087509441241738372534185650992580840037153409331418671183946954835812468289049352591051043774321570254277487955743631837867069920256545631885769411420183086670743218665451417101050665496965001457260472472415008729665763464232803177050479319676748951089906648267983613404602907172433894039498987565031427740801655596850618849639841149265915382107833149135924458177179780787330123025758004396816897092777288469706093826549248399083015104420829112605293389319579742133097544400283961610568416109223589343695388890564344262788911596008315101437544208104980351761788000964778347661483125917495798246205352983038157679341668467687714759050595796072600238683247109592142355415609944551402546082032006478776224275964584969444283611042089463061582340582605879849009831669622601120667621563949805025029307598598775468622349498700664379813371551404208461655334047286301606965865413741431765792664869989210898053514154919272875611007821292414863141751332696133905092117268240821107378159564543235536499794989297542239568375131007103761521397642543633655866196643582562899413466984598262835557756333941183954011937817062826528898598767504429396295681146051830090422626558383296817123287447723526523829722566891824442042515426774967666063451119985407429361144566043466158598612061011441548273949249469317789690487648349530950881366843960925277969615031116288647965026919538445723496866082500046958444713648499108289449503653468144679595038471936705787614491496983678570240626881982214824094924875811274919519353583833448001754016275569295684175103186383243632808247890867436359846332418929172736975260762807745161432163052808369065869421902212675184382984075967425130651227936154129575805510977832671088186353734056048700706183267645584029000263926358500364354292768074570756219714550740772449230105397760228438395208396353839813066422462665159382120481080954143189790727351242865314646122744407597600304785615422005536952143024928553693453367543795531349962990976265533089244520579886352015023221427363647045664987919472173014912408943310770396612809473730968232389482259797478897773357297260461165920277005614290951753824508022190478837793201311933207251100369001874671691646778778754828871991974576264550827112299897834374704516290609942975325863734767845442285350494889422308334512589438046508685779024377501619846967598990200273552741374551184064269765053125556301229736084712401274519711166774144204332612128056349946751529547669703430396180525071350825683424306819164823418124318837939240584488608503517557117106430405036964110150550527831581117771903207562619149994188968674284163954225346267688618814334568950666192268809015210526814039676555000912685434072357976513665312368248354546497973367977212161177579162843118203170605411520115234270707626380791653673690163704657741677361494857778791958111757522087487369955392803652357389545647426202998214878195297709148586129885967269331719914563659900417108333230382446182279039792945081637339816012311945574994290565129331224818364371207475019067049467579394605247390132322967862749382859078486845700476925924219774962120336945479369415622123655215489620629554587643013457106233983537527466946401037435367971987143977024230471896579646267300558419813591977367243265894681106673615570822470965100901467707190560011014402400127663538031831951343330616740049976806453952262849244371814595023882507316312543081142224674979044088738015727925686857690196928130858252373440434059933746686223650721435103567203307300178137255511399091553076030855281599065768106710976978328430009349054127767370477974212506251677154189674984968522549576734411287108267289087951939410691326451842521560432444673448844259804855999453797667066949698553427105307001884757671830175521785178156673061368392365336326033124784456287860936409706177504458877351854855634932549949289234362573407213126208174050285493690419907731484882424662278034758034590923081333531796198495616278828477345597976005316667973792356500856942514498995146191000950600835190310907309361784810244509221960084630105719056555371832000154048756746679984565229571715742351042337822156812509710064446465995161215042763399513239243234623549216815630823162427870211417887076951315597947895856224085784132135499340160674690544208959916635193795198201765260899990356737938970735173978759161436608865478694929796583018828378944716526840052785322462428501960667680599960324921750657689584338945251883504422370000325266775844923077994910289556518631289187004928605312566763893993673425598112246684211489789246690456281951157252986982577486951737303579272052358183157100472059690223350702485870246844971397295313781719668883792510554559570944984674226596580169285129456255465851254272548241481279890599809778093862584201808936493535282503742469343247566433046346648612722585099406706746737461777027722796617884178671430699446813412215703773218540923405369612840426638040959514593711988833660131535831317500290292805958452478790471079836396958343308777161966331426968364133328487507695635252564900947872810912027156405936039778447867644634824287213485116435287319602348767024198061172388764924782453049808286975593183615460068008616330972676410750873905402389625741899280131584486894375975692460047045301343099615464268647355281489109362313327394800006194925254310740707197505859247676857696507464332122381632762393788628974286816860293806265264248415297039270633031656928065092481846089536302833348132884455850046743901097724440037714956766573546107891741381472614771937783821354881902710060173729568961201726938075491835611315180634897000181927586647400904541383931418886684481800866031741911923516132779788583205380551578475187164921302331832837842491231702855965237835194599441867301253920358553430626486054978401416397393677874876971957483068870224988530613266502636422006554040121446272768698123265516831496753985892849243854886980548728620298323349907542933953345161507654248668092207992162361021655635702916062633771667772717251131792844360629862083557937105698164320903646422301682537465186258972536899091794162668293920090782274795738192281225162203559988599681107330215118944582641212299598055770319142684803252854287840875799786334054797807615114384742478094641420865253444449152630238970791657076686547364092339688724263462160720459946058583093797315277957855725494331668836486960072046232399135302010090431538497732051889964308162072086646300587996461313610234336009786629534866561199513714011863769197812076814987300602023096884089732890432036090390564542332423912828069486679171983571896969338712186215506933123348515287089846695655927268930168997171436088180818937949638833622357119896332217197688168957485947172351758995609784147577752917733945252028069933936175866583451302532806408291058275010879144431977427537771297592164717303213799798815923790270950597437352256433005987819447114787618781989367463154649254813379163988186544507485802248153369675373374575440740918815357500848511808607632886465392657196731503858247715617117299848622689173360132574713216319388661124253683589245781175519061782350509104440161232810542732789700257762978201377084891222920883300910947251100794547761454691302125183861813938738674320227503822254602244461601058415467769549805026936586050211152564523687755752439693080226235724730997720288183519825186543265946771309047644664394007854801650763272291353474384089344201631994873292067048330904440100300458715640932232210488802195466608055870340640100049650171420176355537771079205937051507764381424419111196760107153717194481331703998059721768130854838101489929523983213669055460972584772189367349759621862848585807157789539702995868371991380990056655348507869734413737470817362102843333658719354260691747153723946676203601867232438855362068836690197610261363624326720657530699260225365788644331259528947133764075676012940167227446654532660007056006583941640531828058171890681117937408792372437897315224644937206660211854070935438921183633210309368986985495796250061618568295595441213827950496857077620943530986574188533125003236154259012885316829166169725938073657009502613884141214075174160591259406308120131455807918552371402945829793895736928988766872565533766469907807545078600749131690130246263006621714782698561791035092705539641778667267558216901166619135502720349259533011979182781049338474030371872681562281646741704431373142951385183200263203241247389822100882501544216161676977058680233351557775348975853697461660627136035031707034701380053183365206578613295980773379738282235637464761643836085015887356195063750268874393566195624439394366856392909206254310932325068930592208416944525263920394370723734667778075985222244590119672626473689128165224873372858005293642156364810007466229081171918855992748995652061713551883434295859631483318205243341984544892002702017599884581088081217763152313830526438041571416229372876655238736169689725005349233223733731768830291763929039212522493909386636702272583739040917762574913953009011327710342415957182754247303344019868585693311924133210162804609974643816479772856475755922652430237420052273657520857704481546449126752797907860451716406181953265539359532950917500138796056804522197943996731854875175298766049890512890146172712571828035943832064062560259067407050632341741498881056176773714883455593586685202295407069626560757175770850800820433237073591638178793901472877561404750938106452576219659236002774634547338108492812111935195164362435440144813843815811758930033874436996602382104602477054417911078400225231198392249503091928228422146111170401337541677862328536072243256564440099880161753518354121912191866542754699420232385283011862685902111769290013632465018922726606174047324728374046386423803893790524121956657716060134684820197500097670990134711222504240962699171106749411342565836457180527462950847403963243773461269115767793106866034453222485036806613150777407060195596611982517915428650380176535367031356395352410438685445010998849182520551268877800033756179214794905146015877172439430741068819499946619242817292621857600527536485744276842908341570991545727884155026388533418555245812264647450214529822061332182553228553736537729631194280876686773427190543857255527010199761617121182237401605249584271129413517109364344694030396180087315237685004875430077333579337452497455969172502511589122672260987133480785971336821637891886287653765535619724459946882725961709004580602446635928907431769904125320706905475933583304828392087262857399635095681821674529778852176626539110274267750709208262114406126651084562265089761077810965431028564234604487795090493703297823454459806605820007463235566732119325233042449351148920510357000341402125425610783634063115498331300325249038967618286941831003506207479576320413961405748071431480982713297516164074730311864333511934167501514026160880557171989122222983611920715017120410471064217582143727589149003117053702624924616363390429291362888921547570926046094901743097042654244281285217468044585140134766874071024459147804088883684479530184505951266571528085722378112234156734798531370031302413016594598120049698611060604823756366498764219643555262765011348318452449855390578157468489303788904430581190874706558275477103207821575767926455619822045239586647547506753522723095402433057997652820743036365611173509829601074306912807356874704316041722594590732878457279361626110298102803831932539813397161796409400282957123536113071814538799867460853323868664209428023444079416422493218321414221936890075854895889740630881309263919844881774204921529643346969445783588579217581406687923687034888986271470588676704485489874005318633976342389466952452289786214459784402064420078144644181462890822566213856224495507900780880132749814173549361132190126740603684716131733677704676199570376959547131829044240931856736098628302052002879602182500003369175776352959357297483048237375407128909405980862035810309884400334501947103994277682868857817396690393218974971753823260674365384986621681416914145214260196284875558460481022394191299392038248161788321734241319164556066434579171941832389607980476819086897308901455813301782422913024423541045438994622938984032148389029251209733118918022973164636309288142141627231410402676065941690026539444324652093212567567759283260419668202940440681663837670692483674394929346581531203811167566058969045166216679770539289797143570021439863736958725587485621647157111151055458470774994766592892547712362671768590113439828147525372332747313647667824961674434650303479352031100450602343602120867004344788599736111000573537382952208809939837752915033332934748159723377607712763746722907194415402038981172155784573036981626626909191083692430065019809634104857679393792405035274143979360402842347872998842635672922221664959875508629051139857387161290577381838222770348975373358210542505527129143861234076234987942831023377092677672536968448986834205440361464562437130805109821243639754138419789172161614950815269079988439076387947424958306211814801744669643318650210777046006193387240661847257142496062960491349021755378411607329786316549770051840467499271320581408968781558253641981636571425092355203888814809786736603089113475417887249220914097298711461715893497169404166088727275509526599163380553214623597507045252682440887220126446610430923090095683385072083255573286759173778922160970130215104038368416324972884237446312071962369975113721566621348295058819209581337332012189142731557742946359437223568134762598567729098792651436921419405819611166512639934430308596612248478450844292992498910147829403926702023849860138743517208309061888974628078664360766147752878713989169303808635158839595872767706693995981839284696181226048304805118259758746486205915989544416885261727348792728905787803197238626361592702676598054360676504620377439565531516732169048548264103503982919485395287568953502730906438704871000506866552598164265437789680318662041983149009355194668164072809523609299746200598540799576503534135946122109853078668486650580604850510448829911428245171716229487169320616923112038391073417249448428510119046804435390472399956896127848517744580350410563168425495769258025451671843473703184400081832055431942784824192293712600998684970526750634977705219072833198994073917986262623743658829861474753958825483299256821164995420164476355241954532640333477678342687815005164864987889768483653723143431621026518361540564530718159058644068427308240455761352745059301741768683373163011955482352152637349425665279102488379361824481736142236446650721244399519068369978295309783810800231239292233757500377030237868126702966060400186379147135954121324567813926436239393460543807710277328193984783816334792394504452484112299568405808800691002305626183253087285161318263148035191708636873319034535281075064792039176300643522009837298466980468761608828829534867781479784657467825823655345694978070878082673851297247529135239751498127532675102760480957921720845665620184183539049400855117482155940421154810491953197919426029470882939386214905015125012493048138701852841591829028941294949114362434863171621999690924835974514411031054816559359895452975275785870197370924849750220524704779009652207187640361726676147353098025077218464579590534437742538324771225588534926703463205060377624702106281015203894458175175719970760674129151695722434710210487586997581330481499842837836366320356205255966768814805778599959420416224722856998719277469148216569297661589867169161586630651160972701014410499910492131475055659796721923841519768992436377768757649485443604911064570523034929761339707050533447072500605721056354641596433064657110218482454674522865469490689007489686601845962435128801577994318785213010559553202094184736796262908672890163852587522482178382435666097768940306531955248287800479733562576141176844515931210386147783587572664868383345266569188033324761878393178897270263764087419865837297700890211016819370350011397569835993535755571397322712517636640969635528962407038450420606474348928891287590963798144709209116568230280069570921297234286806611866632870335818494285113984572115028773506458332172787734236438765480481221953197879308298897822514091815475788338195478067035885937757082581228530360727161027874468109554324884373878524481444244547230176620452047690149507754903825146293148362150745384819152947494592166408572609908046889715055602119323084656766505147168513602352647580980171286433536743595040102570629633772651694921095788872792491518750193711142915473209918836194326840685031604792573081978070639179693027612509806855149583641142493466768779766689470160997149875646175534171308410829919930000354623979577326961694668645474015903130589698344913809991284744089238730015200780779651044420529262597066450063769798151010867818363571580975549189239286379116100148207418566269353433441567054831674215936333480750869625671493534663451446461625824540796651552113968729719315943525774552150899285262896287360650062465516981823572329052910000875074987691465667175513577495933450811082536981570590163237114051756221383134005456537137718241613268577074586807259080325528467800395697604429394441060789247665424933963467659562300571671764190058761265273029226069493358342997963133036062479928852647276110748499176738580927729815651849732473759459211669019752387011072767754735452323251060905279744712445210035654501395540148818292265654083668400238052186984553741167668493377370515892471958285916588922588682549725076367367492096594640164152345794926792539304218848958121126043544034596930826946381971144492722041227485516868880597649796684164720789064255101371844311998252200369421127226386033564715970655020354370975974380562412419329629466229107609568240253766458366740542130746506156998508651381048001566070323061416742229391550498874380343881408831625753359860031498132212550152198926829851092964834754364343322201304907097370750148873466828372096202452866135510369341049740661791266389025453859570418941849352131202102770101706243436634107723786485610680338585042144218835144082651420475735432499106638380197301181256859991393053740201311934144458886632157094436769821276307228459150849541830259731962284846777524390791498108124915590374621375127069909566987243746161412370514055704120692241819250572641151990005741603492095341116857025941663013839093405455853464109588458198071205720894587401320975866889811993252297261961743568014570945280088215929426747334401616849744255353629784128490751066234945400207781664207332598641458482886127428935684503007818512312678151308314657750004002694696321673566985277708474605712195809316942126804730925931051552552757322423165303771959024804074689237235534637966437640146715915121215600627115036744128212411811927566501269334990238721703614867262313922527897019420037071079507117645404945896595686469556490010351236146564401169356584118187481740539449524991901489858415692805520364112036030338889679399557693324435802549044879254349597608853132633567739365306367498536902079283341863131096624081416198655743149874577237306285854251912280845578182122455361260795119157515000179772216054355151897958660188981170834247967547826654261384158963290792549027122786919764046303332691377666988689199190525469231503341015146258028851580230677212526953008283298637595763499917444188378755841458096868201912658400461038645595096136455702205983162799520797025907506165568905493714991062584820055774107220842639376010330047296205638015550395662463866063745357110692484351181108205815026988139584596025289785691256164165705741161910928575606115877579118098997499377332436095195846458684982216668960094354486929239228419021059592888281721584988642882353966863235463964561056984225285206708645677495667465181101446801500205085355845598853413463106530020913122050500403891848417225492567290498831867066186921929856475203090262337920822346123765964405886066969391363351967111437122606359956441281161351680473576557293919113902977173694338531970316041498099763219906589199313863370560437045441471971829257126725781794614295012192909064588168085580593404030195828542745070613362803676025201608623495745582143878394786965999120983154722419111692556384369688477173647944287142842891398184445355903712400908916528089912551878233658869991367831494831363924905386929496994128138556750223680006247531451480686527805341720158233713433799509316576496974351813887498307377200351726594814820675262629779264142580447595298442294095899759994387331761311947430417883064469086121364451774303307949415551846823242299019289976412174623116883816841320046593388690957738903832233726409507509840606396614086194303894247055027096617137073782766487211280217257647305930985521995937685761675616374040815584523969753135944151520465095680950679197951121716607812819592742774239391295014528855135416027719696450591197686131802695654677178313374877831749191888107466049448637985319044596931466824270190920619921357650739562104317866843762609815539557533574117275675688303577808353582830568070809308942004566411695423468206377881201740793304996842595864855670692900548930774690745475094037674086996288969756895557483796984865000077156157320319171762877966301457820970669566109002702126169395788694327589566925181788796511143755132098108794774229476713945301542137452724216211728679714443857651168337915723700939481935374411324977317416599801763484283020739043130953194338544063750360085483041585630509626720610014933831316852991782419379880877155766189374979659302248225497407040003514223315210970080119895558228458580131016409516675741113658221026171590157702680222081567381588501309714804436679815928324052680765998656690696702941011957918538707722347397753173271352061818123552757494086975467340066136665117786872853480581340174289943896874949409052566121732969848803090420983364826551363855140405859461267085070969030284294876409452100794808747810622505528640878712745569315298349024363440200611728170790996123977383326020232880292546174687482073680622916387828181982742884486405546111675192044362903051003755776810194423280073434060669510279095336067172963296306843255184232548539975050045097485076140943632714708924475605881904355690219320205868480268610191522314483632430742023848227517926603429716017863945989803112529804268684892915245500385060017977497831464459657647776230419737792413659187083153529297959072913107582051664257825158302360734875975396038728621118007563980455375883054447564368063715231137409928196359339621186829198952857437732518091580081507700187746783676489699764487437082244498321080539225244279664167485792034697176795372203287041971807183442976829725813992293691318055701148575313584756308009659931227331353451447252812958033358100768050199857461507255712183135173658390673908526030315297381096973876204731384729124150843298353982360789895005809346874176496469324232635331133592726693760798830831099362771758605922532610339943931391314883089598951112609077070468625020273653908161805334289124918834171204073469136742729013926720984414735204782805291267191759919953533500639964120210808492557790317277062864646622596346089058114253381705813685904707056046635104047765500274100371514759964220004754293841825691594787286400452251283798711561284432975344828220976392444618255574711953940749730689459367799334095843200160156970348975521723766579076200524938669277112632733739301934146629452149973392594379819124161485631673907373407168918733648815308898131960101440134287926949972896361432111074341905794234669297974226968567171408462755944138914368498076335636453306060142308931405603681217200670006767633453582731520967732870431571620614830798113210724267726027112443624510462963313827522737356844185321233345042172334510389083926222590940871573788601245217862504111988619851106444700167187044082699011702845609105202622068324021512266447880294137923532525997521030258961013390354472685952494556569102738701890592655858562022161410144645374107430715030103816883061239914235369816222321639989708294975024230665382465405463017136075534322254993468772147603289682749504599298795314450868402602389332001583305904754752654855539436898412451228117327196073980518396109783971856192781634241783176684525538037853372393208462429353883762317061543151085558757783909117470488330831123425356627607107086660481483919397968273955682594251164564989019182000337501623460462417210437265401417006571681421293958244572119078170480949822952967500026413204610915912589059260643359950502723448731112381844490506040308127617103069672193508987618887378902389373062151596729482864677906009154735599843728010185334021839217164729078565173297938528490401755596244825642969718044249353135394757485572007415180930188879923659116896060963853143770585710196902520873342062634952490819087224231467986471037421810858081103224397378076378533206953566657675749314112333473267654607307696698109549824609556032561670928221243841548526154411278935040171751579358359426427305323356893869295531962419546667708534295655980878155548557587709415946791106723092724033096415330898143690793871394457480677421273692700701288193493295767889567159817227946334399833689408849046095746182330302008022533159574550068106656687035410431562017131701325259620681356643139253583684547124997955328406293476938035054998519707702013967525660195836977817586821449574511462683470159240365804655320162786623054358478945265626392369288630342175876720476560830632903140530774890721053040938551879681565779775428786225093299682714495754781165855088999184056947654789234271923659627957680750288050245966444087356875659458163975847404478738850666684319142193588217665290794051383683634427641506385750580121892695935777162891715621090174744421333671605987144087991367471069597756833042481639652439565749986636171328401559983152414530793621795744508647502690671896725334910095410129796398876974959436251371165278484112164588258621816134501306903531408186495517784539945210768513553220432046398977628932634990720238464340921033669828562586304697357016197181788160362276765726907903573809732803918784843840901476492725113954013157115968068368054299545495047570610363425258010000934446809042297342341907954461057362218624115571029388636361540352392015304921503975491421850879277855189001556756960656973292865472383995374809601576024074595395426205062172114256217029032576647935443227218153325984019915835278301187484503842477408005936049744093929430034559165540733027693168276215907261922892165614630652725715771425801749069679301984188093312123779890743965611815415994474441601813606156413815590453828214731489354698722933853654876575498291806216766310692018001275412454356966640873352077643138284782928493166568726613842122347981792157136960744400381603411991902069859536297012658755629641459022516316151357593602059039871256082746114652329905054405648251757499610730278498089482387890895366548789310000276015086870237721169291858454282823732081721179718626891969085383216468186969812780306513591828964172881123908979815783364456780168391815677670236424562255334264349939474138482478831211678078437866679676249480208566166289469750001203775521981970315791532896802386289244882131458471761465528682016073339200593108824230448046033563602290132926943533221927592521415882440004824962756758368773963216198506961932134152621828949839813246172988136376916195250657722207031504514687089634655704245808293587650301033778449679916247329894771937362899619186893915246787465517619700259148892332690411278630750942974666829916045789519548784750750270682686760503219851937188752802698459629686348389253820919915712368644074839918114153867274706164717276018662199742210384882502450684501196138475126412229922024319872481578718976980946002633923444046694941815305514421051183762842913642898135984808344389657447045022039983038559767046424855470494157232887785508788312930331999750606581208137299248027183973161059258807008414247158074658652389706456733906675244749284896622966902033360548431041206467833051805567259887398845647744321538477830796265096438323083244902040435371626105035735896265824123715811630999463283684118495539717911405499852997449249205996632127002527906470748648347376343496618877501430333377599692817216309701533975433750160066981549021095287399216539554358011679636697828255371143052043634132332356034801762562216155174824082572269160131537847283658552596274772154447133432582810739005138661317384227851101793290815264488849360225239748317816078526054100522259527889951601490654805747999289518039751186798791429521258733696153153142075298569978938307516691837781558688057600885328878643138752991835845842034334013262035441150017276898611347376447616389690124526645927340388816290046084896144872871210551105208712656150476982805608323472163937770645356203423607068047649642172601422325570756263751164127005653991913405175469147141758237811767167440018776546594885341812128644845827692964488636560483472887052324302959125529436679869474156832798576726033078058646937401037117346316281310300141937105389850153031167446534318293081652553477542629830880432552537169032674527587354904934094566008827218899294832250690958382631397979192367568564094682273136543941054433734290224853163560440120866068091862890590018992841388011745786639229179038463350749695476410684822061882955390985561042190020191076300385986750993904078244111418453959745428016636568682756464105921171355528399472031046398741405663924766224331034266479446129034794286418881718929384162565132636703773882596988914043886616284487567439389009525702182722112434937050053644319036851116807568555398746331720240952571237605643553807789596926328981383888723231970620116890160994660681012633897653521037315913252196840798536305907587676944449677295984811642020776723955818772158520904141859811827636951137147562963451021520119340172079438941722010480543514976546819159230860674309104835427482424831466210837166106914513903913136519802667169760976379125675228500568240205723331557450568057250915885446925887097081713082001150457405488856548773314363898865381628210304696240348861511784585215598397359667273556776777845551364334510969440887161641021411110503896920405464563073059854013633111175978596476134332057583504611478430548961846846829524474184649190241982055485054819789276475964478672835149545015588563418985151959775961387447750145742483564837754314591134546112087758877698611566463935309471323896985706607934811423408483274321458472629247784937710408745207580072069446576424931857369043634638062730835393409976633891280776167362455246723390549845468447316258349016038544752739699153937178792205482012403897347576846647361160883354797160446436175136058627932852156423256831572101665988062659982135272516367178281594875009650476958941882730944784312410879536096538818136228126363918445627431583028995164138104286732268680352481566384592766983007164691868927471754758108496379414094481778783139418592477878286176888006532108010611322451468339592713789323161740456284230169058219322572641502944949012475710657781474837153412205002885484437983954189732304853732983382757600154833706300568630062222202896914555041690464421766201926377013670210435747233305550365461049689182104046378542698519236569029606371241882437488949098123551227001707544843393599559566966374346206585671648558140025525905825752188340154517025481121538565258535710550549491227811391216491702529969546299563547777432902231008716692219454038896051292400753158015724800896579282131161302209538745214615027537264942699842201415560540016879465214699378472281775348920774203445066341470642249880318549955202449174854186282195258938317508883043491089712013912326035836096689576225430749395232660889923868173298136982546733431458167404769223956282461359439905728047652638545405500428076838511109313610665012163990076082611506688228155264849463602226601756588122457044224474641643216725840409303303251699855567722867066892277904532082461713813215179479022529108542134881589824462264294682234184517996749770680621303086054902841780952829597731164439478498948167733370106888233831401732307439726275279890769264551140101667915959186653944058141875520810162428283773416073698217505812028596210448194423076231646764300396447639445053066050456016843885403242563455407683064799522678635273406550866081649090755471710654061585059057972532820054912852900075957994088494159748516611548062955042995305844293852184092003222973024686657008213876276584507139663580745212684552520960908023704950835036312970684710703302332093900744756849512621985169695126417297689756247706103450547241338483606772032930655443580741079485893205404712987107415183871615495964412454582425465705801878382162293376056433513169244908136500825714430152574739560685219197779175883841503202691961666381693101410493570319024704197428281022748600166154767447576678331466886147202149545305854724349384340875254752510126261623769191401859245090858559789408516482750720401607582904599291811501906878048726253000377478972176425457414019539932068446418651742551033396586352002909738936329175802116715411291525379052879111446375201736062919619258235208780509198735990080377087244932650601738937613714608508212488381899593962865709971982834172243450565955256695377748037074347607788450367100898894058936466448312007263919243683707102497882386631491154408201611257763413703935759905644667015655637742399382964226703582339835604600457647198882392822351528487088238308711270267809886357552450691158791781302181546052071915497116737500439932069999213331491719187339975326839102471183434644270836807216757234727578045950662730847799217856831533840762877268052650828953308487194487298140907867129425694649035675834973527900069774362852227744944600877203068809747631014228286602991532452807502257090439845551905270556236696479116653243928790422268052882850798974145812751324873447049857950820097020289847194296594610779502442105429870445500665921412478583411268056027142584815205347727903234857381575664068434355467304888019282553575935668383576534067769277403123291874451333285783913417692431770606599757712883056498334067875404575265133911049099212094343482100509766829608281507976326562733415167267140939405000899939166723612725332535836335240021996927220197828279139962430016150361503727610301823827305800110183813955872964257944516728816555945799498729181659272243830543253892559409567565271997961315788929353146216609643534789416009784209249152801107937770841239580601068940564890671846597237409963962500102890549832131887314846448959132411493071832125404716856601320698472578628187170983478979499777218712869195612934706069409829604888754736678729756753170911380417820518336411755874731306470469044618671869384379851691284697833515563508194202379588169882500974634017709335106161709584902716881236266273895349147313826359482687590523743872854857022773810239139769744839399405448847761762473412570513459879398069753472348782667338853797807209765311184809991797130036929684105260968471794270412139016617087306651476093090380300485141989802982905738771699017405995448232675698162030718580912810624919333041179534711138283706556494841874234363027533619133543357536651673325942615435579580374102009287069726840114093936683561070182334972544769582901073918519929808902774621370280235639913663526824527124770355987477068915126748677568899538819367667244826270052377088764966519549223832444164399164953478905543047923764627674124973065929790228033463070458629849890237968226325566922973734648016455720283377138023434220303368890968529519332389363536529392285451266609296077266844935541765267560797033174683093815769419776449809134585014563376218299922346239764125444973583617887466385832438049042965315111773742676713384600534962249763444243672950891230125646684359438299579304721823817948027884352053640820864201617776005225952519016134737153729379386868068675591978402298886051915065311130178971219791593160599284465990075700835290927480865344910339314309224779534035445116200430489666964835812484488904700334153079597451068529319957594398619298875833656469145037223090243084125855323694903510292581582905563819426370029399280884488956188601459817020809067410055297347011493812052493317982102089768472958627056218361900311380749057095613891417757922792597824799635264737936784598312800691240359562151199762290253905250871154805526448971137152997969199477905403457805835111629727796297320288652892051453317641967775190320277208795816570980136800788451023283072854622443434981583995032260445356086743171554533810577872606859714823716929591873382202391319623058530463190467317754884744485985088811865187749727752499604522619669379771053901219475471958565781239983607884449829875030252588088649892987419296318409403671599429766585176239041525456822360030098989279124998349042486499103163626646605411527053337273536132280691619335452141168310627818673669773676231676367750879891850679206359877078974166554277972407315333288237193920495606348273593860728570441053097192315013326517512069774329080592091321484214661123487208522490279331869182317099476034901517054473733841566485685598680524537516767762004074317406105514598050286161442702767770100988023619375524995632923178134199616074784611086397139718576797572702987174912069451884612049458136541439746521984152321288620275365988156726271401767766314467584005616978564506995053392689810757783886426339518185971106425419355275030554175171393724720433850346026259398197777465822057217565417262080842081450648555912737006206601824006694062966629269557123692338330699128666036619554066459600132581613638243268970326673010024235728972415601072013585122133860558911804949191811918364197540589355546079918612053333546372501134825099406696457479360094609952055840328086147135612321417127374405973940209910002371815341953339502910783142026992014090689817486211307766116083978740980688863066065853022553554457119499179385498367031668691880085656651096431279426223403050748649453050655262347699259730499694378979283642357377112499501755297084234441929749454620268723477961437350150918424889179411164212374449885046551296760329081531234317947099087224967380035407514537669999385283201729503678563572060461555623062081807735127749118370385569703691319197138899412306265492116681128983510869300942961132165616452189050914120915173963057619691081702332642608265110256253661845742242482037588723292476705646555243404869249231115106217385491490873486613111088167799365908473000802693316756349564631337277282961387049010841408790823607009435470195531733099670701304307527018867512464775980725026718312945159870820854038504878427823043718053786166348604982687233576469289794564878341763848773327642973638731158377853231771905839082246046080873017613795152005408185826799250361902656746794172618961698196041060814819100160890861695095368423492229698795720377471799120327505247100884632274678544026370379354973687291480251219636611632628593109710990374881708471579126045627833478457968046841362763222789488199217691993554772887042961788777367235383538478164262490732652505841208521997051822702592384411850145924921644355220985950025897679751963941351016488120420103148305573018700922867087482951600062987006917371493051388896269812892207897002358033857581835947721189316969445497753350266976649677469613828067931565197102445165297114307128138549772651579060317812953759037229830085184701540316015365552677447449631099438299727355488220289814335521541528862183698202115737305798298179470929968961657824108632394089626565751543539295928931927634655706779175358626926948305100177146975871550004717918865725669836886801788990808093436846919762051529558729921969191387121244765948041759419793797592798324931483658303042310731357071681779088198478389848998988250792915191117099617967500201160211181659599491866756826794287215074024005957693185079467662132420199253493975961367661941797772940487718841088114523205220401100835539311304337205721661187569656320388160540743911760070558782841975441289330376025288376785674593070025588020515653065943443098028240219264955966238528659057279450372536841421803886560674241691962574513843681497064116532369818378259328592957844522149563523748240565865774382589445789688400098262490832246493607230196857838544670479395068562238005003450950233075120199796908990991661463046798441022649351715122652704488977193225667912430511858182530173846549144578662690488388691963511328746281964523687920637742429834364421724085676755504481287991316802141189516921483791857951319953319134461804634510852886811140324877832779504236310897807701946490912307149936491824431640279691383981579853115719816480093497768954251493254909174282189006078052576731287271202891514669382344832879365488877217269006578474344848990548551217547342690253634223524676299280631309570251166658593488003812486241181741236042795928178210348489939339864505073992781633982444748352628061292771968693022479293489651499593491076209368291714215587619911990821380463746064273671618642282025775145959775067381332726736904925134144830512595692868374748401489429308916649469355451263838237748691509556206866416714213427070396288894038459051054617293343943982474309976542419944612749702402272573151600722293855588648846358434321190646325047348843850145494044860006242670139970281910067020268245072602927282704309366148716899854558531330621525216574273220759228216358916343867519657074862523433386543906500414945354481373746059903808203462443684255055141347715298438023007240542657329138288081405926095658131463436598237112803254487490237548644735171271252496620081007256684156414250027566739116818370581205590828546774562767021101748301926829667674418953226287548126428208699103252880559502825259696395969933703806472432745621089233216552200267427496324364714510944949541087836222119234998666208275216626107744235377446174451145287069900345312569005655505472748582187562676394960142614743591630358872467391505928497053212970734880717867432314180090528302320577399107565918349832709975564446834294331221459338015581723803743850389866017514175335192422345256982604264943517533680958872674458875530664574042670275188242181643816253299503706901197540706409624591127906550224604218460831689612795958579889344443670403065758170933807335226099459093217522076193977795420184095147257340071997476742849045190405758688419168551836732671928457992700683873613353583905554941980367561884380074762833552444227241101265613439444827950705790699088755296876781244504485220669812709654988022302294923283732443378788874496156632770621936485608948985611869603946107703186316685380055860234092859349157618557590580872718047637493045363880384454573280298362296555266351693569652305657422548661066780741707840807550896065049791567086613223942807207004538342907065540663480689162243528090784692047068394463813823299310381660030076181579266761232207018774422940133244367719575662009275213567626661582929696421547278041995469213230034712086724084128735395204925591448352418047430630899263619721839664599109666841146937744904790798180372622013341132717433466065822517001422936288424332685709889945759635762805855121449234292265851232926701028052258800702767178596867092410925286762770108971646793089010598944513861505275897351176374212984006082093343391695884899350015222147250567400570478348370086193777820848144117909692567106832610793413288639126439552793781141324047520334485841889099742117357424042787251821526525028276991104476233066339818047688244881626842647312161210384066929508901235011468363053991994703604402213475599501128405668478825272388446919557407550276560838286322604902742631061701524979245679764905814103264140210033294834565542188413993909002232303101640632498156576135495807472286998904985257122784434130389864436037473037118255699372174202989304702762789800405144079979097173367420077846690511209917031655540575144819839242473035053670233224556949950582233155483750170260779246747137770481315224368553297644182462800608011435242916276610387781560726009629384337546141797246781821427551798610796784078531943604753823501880883164598012176433510730241490904548130936388934141957422777010817571676192972469386607765176903507557019287225936750818381151603057398204337757516980626483564473671920403923548682534019634636831882770659386544367880476301942211670176633173038625246973612402355586821397255921256957520065790628650928384664579049609234899120294635186674164707857821532522764472328802497283908193572879219808135629815247255344798941641452142512755412212502050678319291211207687967490297020680619805373026199884358684999221108638309647101989528844032566980798814856279092538225218625351388316723332769655842561150484214932529757892168375118141109754249971172258066284884030481784889327277799280364325041018258983941766575815753646480557050202561149636090308135879643872763904344142597433278577274864990408750745674313131901910330059386871735889811578291632772069545722241107660731817379705864842528765249440951290748009362506264755757023040792124492764754270935161238592597643262963124989730611308901798968766545769358447524161235444040161413609088897967183947037235149872013528206353660251070362461418080913419284294448743212964919852809118073037519482862995852805698146085272583216928410491182716860392809235910884306356799346970525349207899502854584042762917799515699243922182505363243576036952741757982219119956308168622816439069080755978265252879503147272533627849885029023028642820493750881582124083461167620608890951463478181268440646245441452289412430660172266048852586326152995632070587694073050305696376168906416323503823779467818958294269923904330057157094623454763026327612070896349881784282800559050679764909526593385616791589070694341247487336687574575217841457112238171539658725408367188968686784047273991769189133788550784499991996239735929513704452539611417178145867472877073236447520227131409980300314257844107987701360862936856370937333342019618046098500005249150384876243530540979106832170635955103760151987821695000549331267160873086209367450164581632544074482891329896720444762042854265362530961792639325553312419908732909978597310846887480270845886761151834910206230240307809664288780383019803177864828193563574829799950242331369407379665027659780575211120627341522474949094185081258555001291664315034150531459527834853229586344134541293149877099513529767285835722475766258875709464216111265312626427936136177296610282423054808602359748944356950780804511711230291209794205134077177061233384495989272417146028139212526753842038196170520505984117586570383792113892924241772288461509341071566610379460445999170356200912541456810907003383492044250909389673320390212392379374438451538093581728959612817897712857746826031640574980673112074880170494609477223240073985546312907099785506934955524963611066539643804553712138417153334904328543477913870864697614491252517623463626035692957048589148814827578089710249608120183027414614352739016506761317502227257820649808039820457944080785278174265149268113969841665518807241706744212725619407224336236976808967304463023251580609797802870460019670343262812041570138041787542872908605839228877649646953226334634654823476285401300701259697071472899599772353972015886486500183292655402500929939762916056541121446537474790952575828797999696792963806142629196907429770393294685088950302418764272505683101867301925081594399598073933657472490635964469927858843292881471737401219341524469695062144011436035480764002040527249379807435118598605931307964323005686279071195050209621562267232175149401606975035129215069604990849930593420378327246085760037710065927172834153313583496742369617161413608943102449305215912996237829012186703836662103507775816839013606477032840019665546903208139257163021022520931148766019954166334308598681915130725957243545455852867212032053366622325539435466368644810684223465985936118825909728389127001001732780826770235433765829601304853467491967896170340877281820878952477343373594049448874743839088145220301574488480321969156519693320518797469686531515797660482695439351648454683778755513031812957446864687539398685113932020744574029720127853913298973377800770365437957723495749541419432988531091689160764301402095779719733758049648632257560063763399314012452375893323265641917296457047723751642665749084851335319720105588621864431473688152292518785117253794512279407811887271504513942607713229209638521781922837189068814063833054096994804055486526775675563793003473404529533767325156019224482386919832056036422591296207607209827334732326646364262668216253045805559904401898514624601104831218720601299547758687718310559790028972697646836139721734494377586829863975261331347321947366801585440789649003529227871666023326944055487306422210148787354171575670955718436436383825940621796139960917761876883158583863039331031160885408472863922445019096055801548072781043200222233550600771085191168144008923550556516680890453205239746335744730280473361032439307677839253937973018509468162051979304531914539705616235264566863677541823739890222837117484403405936181232070919673889085527125453023674241262256251487594624732679548091330773536975380900413111463480664310036247557640117089363084190348725370288638502823628733486653539400139200111399622614803326606732437361314742217090330708886449753460445369414695216748657562621321418843462304664131639023649019588515062421108840040678801778952304986594966574132805243921437133042832902042761249246303165276640251802878242883813200577818567752075563415752353429386956637110875688043345401098396626030964905989263703813622251006042767987190668765366805651772570454536657311128722583559824142178706984209953201394534712080252784909813323786042447036982267275699959601061152816771219349723540857868031146684074131931833123631559141402731929334963580874699322210822053981172273915329758928584224053719941263413609282944637315797665843556983056336538478773299883343005523122673747161877325872824939276649311456581460493219118608137653203255472859460183220731812808499763177640839627099989104287936826022702099630298003087000057971767960484006426711880279848159709566441588541854588647661760109346499925126835851880019319455692707467118670863399647385558860946644895045880221899093977577547421726843159345658103685865624338775597422905288248234485989485751483667504939495474322472884121241468249974151701369332195648058877398050461546086302107936904628898673520918185322353868660468950009686068111520559275936587402607706839015217394605433066211215343708597479018226773815419405114191655937077470641666496690059668454089819877790733475686716735491836828716717895247045034080657961120357366237026854943887738999397839180178090788850289291149165529722806814248190499478904338709662084737847048096269834857064416032780948333827424603563459236065722859652369426559536097426235512079860632410131797693783090577815225366526689354805832841476359512084007830879705474496339823956068155905565675204021036226914707158475416946462501134135000731400356593317521993808415000219868241707576464292932398002638827076563955759289324217214617248432171835074570901599537343873988805274052172464397796711102225081353129444974433109096459136101412947574527052974125403830830009019931108206264053438820436811834739299391255684284902905633195958055574348269897384504326459271635365774935814459028045878022126590001914407298352874431951747832329809629596392933482720034223999051321366605790120163476524914345598492198552294419069422359437904934975733362810574591904633420958475630929058652178480752009376187516597052671604939115380927412709488630693662742659309844115193867115040900115347644898095028158977797018154255131903429489360774795617416619058312225915287386212646732032387600412761299093488009043374970084829859720749183912487276352656901186588357163590336208554763883761224362437534067564818466526474764404223198109177637874610806339439941793911646459947214878955689456821404166559010867368299221521485099860295619360402940298102934801144933176821004866569536493379699013446150659607754295907845138788149443253409844002844123329612426964382319081387634592636308151030539403189269806776647844833132665360998958960146928938739704398746135816480555631160149516999399187013424059624528517838962085373531646503544803527408041835489867429857887639773859446403375732248448875027860537375995316013666622341383597023097809949253913117960022366150075235897124709532321368147166317141691803398303079489577224685257831473007567234132163093907791786776237441492418239873702416595603916143801174771460494270301004816076552182174934383127353794049297194197042243376296627465730194459691765346141053726739379433261040661230879575456946000857174277265773146548902019322370327363593943726303026221248654908793980484628474511859571805747090882270177309844710769240280631180559378486925106722505373637021314021604863002169733100243434082142750905637622922112781548033666568050078293347080072058467665176941312934557792827526227606990954581495398247995613302785540317336286686306267440079646698574859244221373267998691582987500708636910345102262187966007029547473932001034874708769209701624136008670103506078591681269897897516957205994348068961745368584972789472611325690971329380198506982209384540588141076938680520989383792530717510707557274166394929257439358604308745060402042298841277869501546271332108130249676033637904780733912604934733180411854126264808364839325206259509608493280674171565127092953565523088933904564625249082006183179636603786340906914792573156649755268429481089779567891589088334142241311177722598385800521128297019881870903718491817307685437280710653678847848578145556019307132669394303900046654689110109807788356342969867814967855487368379594633081964835025964791311283977044106088653861594528873556440630322976323273706079155068462085355806924918112764677022957584811315246152479197674471089255211049791652408546011958849057984065914671695090899028692470421245518949721400143956852447263358771089778386522930265430953151740478119484478292219459688542353018708990499623598927729013233099051810529354048670212150407310138906488405748371675167197468766129085222234460039988253519905461475424674364305311425547364755786847540851541989231205477599003414974751589142966787682823133517134616354223429095753899327112915687901061350392774109855016150721894799068489589704544164411537884234456464830019587717412383836518338671463266178402064277235839212027521392570444372677662423264873608651392758454885616455526497211088069033927914720466467230409176708154455648439917598814814646272538893243347491612857740007339270230448799765025274608548835107087800592580268542964959209812288752690955785797673316873316800397083510116322731242161933799356790642601892217142842817930456789153648837216165918146701162576972267291624281738337704997072967106548141686278559971237551991669075629106261229703011960041814098708821994623397829935767510889683826157303396073146874958053309485654680660478934771921439281751776920985918140108972437068311962932038763324037146266435059262049654587455724887814039432518239606170251099686200845129042702055167941753894205112684637113596644472521482635345311783230633278065076857364584173412208391311525066824050359946769075636665711063402744370551503404042451776476827161557095158179582227006454319916038125271545694606220368447944213211421979887662593756080185973014464229833264188649297001060165940944848901712793007006118504637899647668585519663143377340887565820757502065849954330077798899238749126270926814123830854745653897859269027887366446965941932952279675114557484618263658539338129747494139652082614646380194690561589853860417881883764591085377449500792825427470222351704262382930726525803718853409718723951498745226914322523176323637833275490259018341338715557196484514525950135091009391702206705286265880116975887830687882638463404157203804217059588339586740742374510043563903954845568026612239486683294882962321418446950511677168071956327671630539000161950743824558982931646095159226166401034448735023262290687331599751309261090921192191679475689384013507382918911658144029274904234104507047655565929067969515686609363692536457246409822101963719107121256476003719562690575139665501299504688912870339497618744932929148302039849016645600036338279110314343352111180570218132347245506165848962925281909519865249243289962255933829787591198354763077364938735538389568710205964742213690463175397126099084408937046927273069185624016037556535711142487481481458504609255860431011355813130138648572049684802907175729156857615946250603693135841629396518222542542840989513019042167629124779315718270399270582651475640535891099553749342632294732629570761855777047873670423675592568471622066601325067353596142719551294396937426277168501614360852385604307701682070394695065130665333893593040185716795083347625251377700324370631495094014303261541969354426668433820258385013027286634000382587557675805684048048762708617161461313534573352633596034532950589902924583433558938099325068121462494435123416624813419910359579636883697454656978026732675395756206748123324919582217453843126625336156999972526293632788274401873448219634878256861117504430892143508839846850420081676152966932379140231581949012380050566700156654460759424388313248722341697346116443054236324747061109775087549916127441459788689476066946350366630580860330857126816180932860611918587067036244555099438498316705171479176624468065337591830632073408316415541251148209024469823089737189553387919580680412786804728749688971337019610715335379683962690334561728486152104527395481458397655771320587771788399824997078119556602657525952019933071301768840383829330910562933714339858245985817724970501179699326480757759600798324174694380937468268623862727451967282688035505641656504474407160812427529572892505076710453444864315921859592181753424370679589285655599566725687497738672444710350383704276408574967481574498755818686651421903551301492807804794578303742861431565591542953271707288390179272527004930474742812299519546280755259411266066217713274008775630452429620344737600108115646677173583984020416552847985524452093025885738451143726843099299557644337167464299788444173482482274299589128658904328615648411397068186083553713358384286943592757927195582075596208987804855057926758697776307285373337101237815134294033662995523849447060590206000417396341477287408551464122788398606551412897162627203312796679363221202627271639245020955633485733289295355982192880304480113567790185965768806534850231176951347757970748464965972812108121258529288524914229028284616719375233121983334067530322121915502118021086158285608385136858650058770500208232262088328067220250313394093979672916894040722234540237743348162520215992005004484800473991769431682506201641164592977876298247707834007925799717653828898874343835756212796920890184118087712915610016268902960341735408099821739061132775902558496740202733172828121624367175016806136447028662265003091474243820706042635253007422911385986778370628634459060512973075276755568430189543503884101165327690194646388200712212738736407500699353625663630539450691012936706787026528268553350128075355173981327525693691087234810658322069803590314406111845442239160741189925692441897600590848134448196675457086879679109051267702336604655056722809353396047833455633185513499378830775895384716757949206524099309173188157869666324814615755382109133459209885170843245349614393426964535084220396924615726719684266535514440918244621794350020622408421598771332357166494945850942259152367738406782996523030293564458836680808572505048778950471261765687473465412913565786549573984605021190282311565971147673106604882675469790575078251797901431515795288224341112384696321368339572129856920485732314140551123352608095602413233271727138370490758892552918459849703659318303416780859658714347210238553263270394692084292280955784788546395626577249981795350132131368167867167890920707121883071502874752552481717317317868772988037451795455597880865513897537992847563275922434266731436269440058982269751492174902325728114944487723486563391731165909693203403619097644314504902619232178078490452274875175388393797545144625117889087923211220273708330090108889548545517650089780573162012031586716600857488551949826694142098843046682002961061781497151186308909100613461202380294011170085123635281551353019056550043398400369282675469762891179962564371246121839461089283478180438632733354226900280110081598760722785822103038596493304682373501046457655295632568482764672992813296535927367590184212630330044193004146191293817849600231727607131790101506796917762813405886973946867443562234479842703412592044547227854415473074346615645262186743045807515170928259641764066121449580869927017219676775844111559702088715413096628302477371848025370242175415864504440396226863450559709604021544074721617599907287871627701074669045284913994073230894428711967992105736629349156228204711555401322300114232404871729362617606578892977439777259244304390311938993207185758142854166652083222214731123024011632418446391885317410930963249162447273301566727326029671383962078831479090292981805714373278333854411349436654561731382522299617622315177650298530484212420731720582560129435312003554044267844851812933822774835339980524431482547486571370550938518952173303596018574253140121597000949955022459225771069179677199452259854109302701734919530724807605759804983279108060608333564141690952594346098019531671125063689779007721121524132087063368570685215360118668305865476286336001148871942034771827565950455344817617789667711397947387031922724567557017886197493567186249871119673609311995203486526996619810272477596899019343575342913655888939805734873175392953968191968317583223646200897633222892407290046680484984823851447133879777973184777530336499396899077001354523340346979440237063389362577093294512995347768599020081454513186551736306330410782820051108416823277369517497921824761256499201252343259305101071877368332667324572537221906997125981855001766909254274938175059955628286760901126347147920126056942253684945531844756572598664526833201426363467881965256094853714455370623507681253486883798918636779450400644360611594741324105040226491996520148355787401382491605447464842808822470591239895664371337127480928320710035097912529649520909495209816456004127669644793659688474274087260510548244974736607153618236314101916340489628181773905282289329578076786903024938539329095018632581236195513354660222021834944751797915013214385914554278898189436016247457900133878275890277343982362669675851900801127246103998116695503453330409178430897915203195044032869671166728998576701107544213152648706057480722448265641189467893673101831536430948348219903799066698476654197265106123531760863856375487635784013865373427186281229315839801077706916521409779340342201776514050948117753626070408776655015251156183715739661615067856391041149634954039457584488738840716034285958552418181883671505668869761866598182622068982579175350030597194521087982330129079908324085460273594552912979596197640157197108315478241655163649576369715353202115261579876633736152707703968435251580885529491558042167294226812639662092274819079309620701703026756204614551280497345746406072684710086905678949426756206783789103787123704435844212574251326431331609688741446166232016325072553149733961867028211124097171576651972712476280281145845576333099453463635053147689757912023620247403058120749791364003203421655091822526860823048672490089991623521856724510303444476053694406192511393985803433721186832000683023310041529408219492073925710898519295499919668636437920784895412854528130281874887641000246559040296178052473414016204734831923851810939750379412378991419675390001639383561241396932834932545711220642057110923351641741150320074552524032461263175185374766837196337968439971207794473016674432122872852012885126227772828344653293720337677061458122340654177797572128194596743795598964104338228101427608419762305952580713338810815265796072556930716500352681289328452237955852096323612822623327336781361341548108344808288461066270163520386330850870369299909586511325613697199396980152823220601840377644693672629984401128027997842409064092240250665656051359282440323613075890124602648115040013131139998659123930557201800047469927955246492458473695472137122961858075669858852554227537829123196183474813366714510223154791945083704246000443084392113409164349462968362810055522489479300643988768828551292603306102459813315250415104002615361331784858660462126383466423811224880863922121699701523097639682025381459886576023909034990978181680587985600730328205833066324590003667910961085248451040773737030947582103872750503264805002577042140958123945666537198631123039555616939564154489975788969142968555093029683020218672664005943035306276787402255022564720947378482531837321312759710907885925567093337686450936888261182352196474050825757558938794410826884172329190524527566589316813510405183388631165725656538251477758437791944466106690511091547804500692556879985947203374137203022788181249075272606050987482403444997934153032817584804651699403815352369695181353348729299305825181841262145359461843497480277783393298595591140676841602455850075091248752689663088853286452973708882903349710324005717940425544351242225350918927015375426954929187908262863502148455673824394991367734182897887951799993721880413209133816461791665410659350063505105599147287736383619825624024623731361574894805717560439055726049700531844588495083938900695635219517832722016862665120378177322480389115601462891023821254255053526392632541964302375432334743733015452428017281953538403560588124127787408317678863870605091416333357717813611776955877124062160358004843415226352385908161929959933855554724580883780816739668126041946113593165894944708798268243061689686118340676466627375172921997112498810442638360621474837541666900441813410131260983054081314851187358922381782317252994707628147301184827530093877938478277517879703569565851077834643226086703211479127477815706303968490939873405231187402548490073768624887219829014601714061078770157607631218174716969673653043294199687732512402008348317193879948943337941811530596560922087375638992878865216576792924741556065462710568761483480076802271969398420060861882293059429975906592841639340297109192806251948515175802824087614283115700398243566912720342349031388085289106739389022899744072575225876907468233232745206605233718244091050458709042505784676487251017507447226616426952887682307004924190387102410699467363695328820930884650663945984252918559254394555274367409155090776701740634527361166889512319712334567053230177203346213279892875597794258424148218394903552846500906150186506930182655391464858345298610911595845458031733381286094984196132839314100801131262583890829613987015529630751398662024812718487488422498364919600362296109879664683766444725728947768591919598568314243877419585826455677539937334691271612165603170921128080808973554970342695952764040142664716622916037836144155001750727302000317615657977318202079128556664026288673139391569060635666905683509753585329961289514254565680975921939658839655103522769813687202461117297759531549321517111498786674136589505090779396203307315894671486008882803221952549324581074378447875342319363914250341436285703951812665061194241389601616330824026092461407812001456103554700790085663941147252922335231765611888586135569164428633838478964737315238578740044710300108350731871614505281473687536350948891108542310508667915262839194792873185583855583694762868081785110327266580536102161612184133468736414476328441759327413411533073254443524501493616890003368621280699921864241659912306318631208242525473938440506174284992814430973392694243744803863021637186246040624197444383088132222052230289627885409545870943143576872720879418256919471510811459650379869088337893143529094654423388084229029708797026529358478657815565354847814491991068776858900691878408279361133790473255703338122971042231216164826005358902573804885520746885700011934602129359720988387701743363123262248255578887637086096173221277105804669670163933955339856309432782948962180979959623067934246669783772729803436280916957231371622249398463835599384146757492143372018198988565401927906815627129144062959945113464264942250413880914080615821882316952841410266618865626704499553940692381037392721187042501420159031353035971978480892045154476512634779346728160039325192218208398558206730668235916320113757031565549731072204991891085646634546899768425328790251617413316942306220170704304661771640778188644729533262479752703737322556531049715140840517193907589026360890225335766809391468798416826415623095564037330173868112213080442450336895896816810365351630062861314848700680856719967362705726999690467116259812907970879497946025976139547834868853732255645839816696610360565742133047156486374595683740824836190784800181998836424605032972765267185025762343229403765175273326675364819010244772524232495667255855168446614992736948412639929214288606066928427285593034698601455839168744166187502674933778390802012234343810653593133827456535894520067953118775599372009279265622928688424401347643404988940585797644993639851079442883326003176820679689595925701225265768795433196898598047662688795638768144699573366776648968662323868490817841218472886613719150952527624022723874831352549659161935402697173625832683347218814804289036366372735263269909420565193278504795081228915564194058910770069390036741654496527614631757050421114309524730279758808271404700036869542269668561991266792903512427566356343215334219566694805715179984316510672975593270977383949851013401100162870032068459423000209544804508257591230166733472323037144635579778719365331447737504415994906366423845913663569414221696014908648389041039750289914936258683178947754203592844638031729952219298720368661849568917195336745657570291238411203278561503024665365719871201911686933427896287119306682346969154974078574508408927566264297762170297445462156945827488299467677979110714482649372398456475250260496286893963619594652527281397488668819573392404735433564138418667991258193408366987963786651059546310136225223367191474842551510589350281036425829267046406399513388468015600801585584512349091872245916917253935979301045897645749924559622666445856621212789396511029461903700342123097891798346887414632361763222111968109813046023469479792772105283507264036351304797872241133635892224537223050177039623704042451224837532052678373290904016456307325090728999759228823694780991306941794699036983507162350767097946583085131951301334216251351577009861000764431963790226830759003894937045936468051764039756955311457353495664226736802084771446525792458593100752042994088987083182599608767217065978708441504773722623426013053397937050289568604082957022903259716269341832221105730358273477368003496554996866850327603740691185841180866168411548449985675964804656339751474437999442640649103888220232111203285916306150158632173075647189394153406470776907922319800735023858907426177350004730853511075562323751943184647202106035917830934505870152676287213277044523542003704336246529494463999700122986548595348943487662607390951445182978527777906015773601226321332680234975761945688365197579612266848757199981538742979136337976657605858178508069597727275672913361624811554965953300460254573641376561560771061722142092210506133911720568489763191098295336360821314578709398892014673580435403063504028872940952149148635273678422893567774759024019373224445295844266913516081281152731923823067295912459233563097663099335296791762353222917306037767214523874757228853687602325444320510715630042135590192076725433933680604872893375544417717618422140188844433240068160257906310075664821248641645629158806422488336861231211833824888971711906815747498389072423280339383384056864024092560749412920337892777895612499409412581101860851416559334347850986985750885444973638070069109435711083532693624399619322517582575934078069021143907572923692243936506518759636847200240530308429217603992408007366789541990065834834058131423867575631515749760260797169236978252102606261049403730670145927875702546151619772785481937161814253315242633882001147389059777491588012159048460446198990559602135804165519401244974664901507895297199703564782771680901813474313966254814720924561835899584917931318374919313887635567349440742964658887781875795068573000756181066631849166071656740451881926489291195501939154338739981986515492904654415743362724213471592894369577541649453863973267284195955979823983984439505708427466213985832453350791736956210213963427661044010854154391806940578984133192860865564880887880612126833598840174262735996120801318721418867391246644878412150914518040666276515919657405042144384434970132298237024179873727368965304033552140590902841244973664166592428887692352698624850518680894924082354919059409053684736348876735195454589760643627935479105057025848981923908675778146935218355734457201010632567344964461713254813033300766090035750189993547005945799632591056203384043177328961174167796754182644125302577859607917948036253265120480763470852024040607445491243485651590023239333352555316747311424619269238707787308873287581872756042782336326011328433733442061548703234026579080393167676861073818454244085831460152201348826092111975162744344799861091296622055322083519033979069464384770836837149985664162371406529345321604441754122243514258525729362886616381338553463322479096492719363461501316130441872586426258804912745649557473506414426836730859724716194429983285891979293214351423181560125813158836064019317974843372262480544641757248834670247777617998433666206905291856970022626634086061112019408381285105146033765394992537520759502176996798546605436783052927326298823569536497448923847008360970293480364750637843955498786480575931666852140754554111554951042022576141000723952531287452460288436751484412248735911319036754173865720399822162564817838911004904636161260998232362559517993153020984577338314284330424749483093311243660361771247829142655583355204515693445787922330645568913593389036310293756138257351964751083795394106887176923561022872577335275046702494378427225526762317385202202633651696609452889453203623216122723171696245756424122728261102982885904331917492132383940473173052110819059710910896436385315983132961111018897401220159673608197028116891550199852714471213204911328811816675651571158523518022152938588896831994280565071626157731479446967041840216159000889998230430251695190238849075624407302236266530318329009372415603857547208842524476579009867937042332294190710817060644026424267542159995800552104266753697911500337157506305522549982867291589708594931960142376242723533045037008451836326589020549431568077294019675961030296032918402634379822489861933067719969133883190261402664002661119440797196636246091578581172151903267352497762076643096594024117200043579447744664086496833393999845110432643987934014496890249031357169539520804431587526320911269453486307398499523481610624448471024856133205667433496527181306283995147552508543547831275707330212449234034301443426413013902719126402209846163527527885478420321752101893129280883826371889868616464851023034131999231168401804966327267386046850910825014707955567453281194534017484870169532635977400070853295254090538391135672083765487841593922797169266206119652200350189986351273823634300022649551556787992365148147839638802305441738349602552004836959106570563542149287269561950291333705497588350438365484173945598648694615161453061970986602976376134689488036969450686191236923231368802386989501214605201055504393801244634920931127957107058624776833923489230773097528894022631694505396199794215835168422001186146293176648803807547772090895477260813435343402743615846021668515001024308931013761026499197545744649645225325960816440262395917366694889450460776767384109408402017030944008232737134859898338984697718465232018562773777496671053320458110064783413062303805097172442753205754857405643384512881632669475200012007111786973878206488866480570263106189203097369832308993934651600539025559327961546296257119527499063887078958912507041680294948074049865056796012006548657826548004709426725430553366069055811630350757298141432570248077995595341676820494130875620489162997420147534181737897712832541034778779433133308407825645480811114824286252935900467816735073448137454278893487091546780008849437215337611534215453514790098540858305749099329689676131866685783390109991611507093006162524768941044130560058003205682802641289468893159442822930846290783830067340509073412830689444933698030557418695635038894614011755049171711643504394491350021612105058519334723713048985966309323863778633808852487641681514357030514099796249635220817636177565679616594617903704490754728809900475998226563772559953651871356883430977303780188619284460233518403261895671048206333296483250220917852613308354125411799391346111321297548587060916999845702468687214705582361882671562713031926007936514638675332325096572496689210401258451105124075109069052873566399487142186178778892166937788378308543742244015505047966050101625466205303370381851436337519288245216140388990922030218804124580754652292111158030728419987873802704963275245491221263850311858588173389314392361749434567558089750218409801914551629898493105217343561977068098560561498538652600714944257995346980533885446759558174782909173455774181408053060716988823377845996386088073523080093800694714798050387706224376789938923001026403696381842830725150417709628626889088384718365912777778470423582175933153859688522392897029502423384959665179252269996671675224945317764107882365246656050435040984096435150155054255625134109869757007774171404864397890527370165292396950355768933912070107406123299301190703668038877712751140960169925221304145463976313191436344964185081450105218825552090147797435575102646572107728368893808675019343310791854301812252171453433417044141620027528009418351477347776171765334567814129442579757617766390123436557847566392585655041578436836117935948911572968287693907803336454683795736240478533207245360457297490100431972803583277226835698188613290571259742140624946715702686921645789299034548397289655533009047379289746312038622376821064475161856271832466862913239469274479995101207564490770367813790650699695652235331746080356653140614015662855025375891769420295488932160349850889473658029891590020716922549720796982217343659559811763595527178878461618927979354833822870493054356560917010740673125780138344534218778690396594149632829322427139107223972496753180588453575561274970468177172443787990228967632535606484829823953055695224596038397079745300383994423573745183908149303436660165852302257518515112455097153017987326686114220286217927764350377987371534102352807024339006716942047651117642712439513380308264027899243613627713519287077642894371398254191843592119813483450905822082496244996281456520388867440762631106462219234163852992248017813883733081506460367064246493924287409364435660735772863815902880585283575655686652256722126099598419923236868820964004630458537107728353883998409587696958136500636602011321474411226960036026771206394120988063580443323182418633392250475840669948786795526005046681375100078747027025593015133848809695745030255165005661096084822198650099871340074931131880263710117981781886796814009335825192148266425451999143604211574474153367661063223486994027778213731756888059935030003171336854511138210296537786366814365152791045912693760858961892226461347085107497734798612697194194079319817044453607284684362131725194265670639164326602121277013331844598314809750844080273117860660725164334625406233055537037756717491822053262381405915692584697603735655547040513527304769745453358500532778303940347199377895701677962621052736067501537594538952973332958063528824308560070582428881926004289214939564044229431856971019570658193019693310287983496081982225809461947779317346143392249769366205134031423822818494148042913372476304639824664914036530329576076138295794277629994526502387089042638912702411758940964590577491786590506512199364191156598223543279279578075046277204215476563435422942415276627264112938150825237917143084907434795003766663849580938612529712372041967430742450865168121808452108544023799690138895651840784819977606692594334034762821252433254188689154866889599867049795921472165547273808357598478895752331323492813321523477823865584945932163370689887303966992944327546150855140477664120632105166138123013264064754088224997135089068915220849939903945012617060951224627431556879205291891741727217673423870329040230558300771978856146304215603273725630682605243150205548464685436900505511421972959526556094733543731421822568189269724800279169902143121688471233612038054553988685486800744870455764332455722220456463524165592564534131806582217910085392740990471899911181120792613982858170201578813708564181775713756215816467389831064221549274086111261581205003641780809731361231052038317164148238977095313306065328599611212104080328332056721037939554535258294322652522527244875901557673277239510138904906540870387537695658108809274531454560597773548152902183569656178077605652120492621615844209380053566071070023696611322859638503106138413456328495402208625591164714278222225347612318271693114761606023786601952269879967156744479321638344699014045458415506112178257969890541350275100240513725553796519875474302780724561829872153590494556074136714160697371666723734871639512888204888692039804264276002883790011215836068897058739920117425830076603300997289350132085893849297163772124916296299570526624889134874620223045984431251415513046345708279783315767425334947194206846966280876141600731721216241395648643654790813607619382798397684451534208726831526935925269982039693983127092953030251276879348232016098164745642830244057644626520114235056516984140374140013117959126208067495993354364802993924587672605298234029800248272632636643514439660954852513711787660970170173772648287019442705537414380349648454347528680475927148212060405197599000362407240744028683381749791306935066102974658168149664989418923312162387511468685017793987420591950383341783500151171993288266041333683967323878951216990648640427614995121038009433796582859552882131344398975229444857747256787062153829293260199330326478945540758111046657585298333027837792080030011986866010636693911490527393051170768599540333338063921633357490831746123853642163654023335384434816175823325051905709425983606214807372080242564127007091699069197565182507327721362367166041895492493242361297293062411128735018141885174860538760345238173087198539670983332166155725586835946185794166738432545898425057179327230449737181825488813396121868220581467865896060990249847937830990863903735365913224990352356371905023791905154343779347697217751375127723355119822491814160404642754619718118857943643441066202517191196414142832933265021148731412606476628376549105892299862047618994371145946411227127612499022360159651203989200713914984880930966640594620559159518267731656033652836172099626127706253023989608057628095114236662600901462996996206200600885783507408871760735973980206674247753913571589909536015416307306248540803338035704670736085243224790941503499717310814467943091272666438463707537214271912286162550976195557975222624888903812022643706037196903505147358552473095556193293837298039895654875777685113114744024387858156659789055779575041294593700264317727928135670406676720340242135792784005053083591597935596940527391862134381192728466862026579441291277248745034774467357495907891847477585021433500097980911613216864694054281968812002462298497170772203617936398531853964411900978628565983506034048105858660220833968405649436098430884276333200954500507244876828449064646300862794720762345949158630575581952764877537933071417446458252834723623891554533218976780092755232183501211116067063527384316597764126079204181608840308044812961291214430420850721106684361918027817560697956405212322873024359070999938432039429546545361836446297377404124636126001854200586941512780266952574943464019921857422465707738911517121593279957085698945766205721005806284739294100719395351252675054061366901032679798032522638160273272128139325402127636188858146545430247557231149799284274260859388468366399925017370606269658050004753987511268252986312334962203886700435041771791624583508641178617225708188944876952965187188783990479469532486161518557973529252955418395515640389736999112940405381393729563852106146526246570957004409301541786052790270837672281844809858132325618914925432509503547881123910397959124547996591142280073558393668012327422711096373587114010388576453977320222305675414325060617994988605064209649851869269342086465892367471796153849430006682643443033939944154257923335782478994143757422314545208466967690500099618371829420061296646329299377080733189033876942800293330976954854002759976664479953803758020506135109680582637542438115941706224765079932560419499197116220605676065709681663615163575972213805421826181847220846351164289755372276104472666737219753794483722765588752266236091769860744132826512635280736800937527763141044159087051060529968048620728627133303100116621234953451294522381460000675603766400217554247701838313423962291748528762800460567341737336448351394441196267922059279171466426586138536971387231620972009075129957644697486204285085186000429394705817249848603936403618600742114051428212914763024407817818369848375842965519175426458569288124279748589804326170409011189659538952737349408937758481387980233686506856996905511617263457205117171283768658110840633261030217322776392630146592123753633491134459232457976931738613957355758532670280687300442203578715584582940996821741219940443117382857632434944425917746493821390293454905029898256807216889842024352331129894039564209725653531944203936656905034210969839729028372596169334830758086834007352584405177572688596413269195998206985174541165519372314763355847774063325178814278040321646218845096702062664572798438378156375542358603281039094514178585296511423740578833643971799346028787099891314628564998044460650893297709728432847753833696314591608849114113830902532386164916146407084094824553791802007681399777559978816255616493369875157217343486596968171185375184372448747377308725414976619618284707251639472065364948062610652958117261611163438253426871090815382446929973681413843417478806587038065350051417528562448479462344214595091576484592113758795495042979479384460977856383126945190025425494249137040723390519736011022383667634449389284151360271774702608810363856071548854813038795504727301922100927930046052942862404547528203688215998328631283509409981817341931925671468339903393659818295402240420704490949492486631951803438709359756451102571669180126796058647604553838809758753589421366550987105295540288115018499570857888398678173170952405913606636082153776851321997193279650630269767115060373693299180775056012121911034461642268073420768919390686432361869345725744332515638304249699736850429066377034899670531314023473002923011520955392274921179590184004394982288910855083298715475610081614226077227791185446157670374091697267517350902113151594835726510376225930295662184133924723647837978200303949166092375754839207152348580493918595057677335087076113720800713261837151758633972191540662383881558063468232417856733413516966684326900680250262943320454564272712931194311802854616030054146534743389084361516902807135501215389829204587926294932458139509157562983630400925482601132005768844895044272097797192125665953285853410631920563433896693042623378778565176003091185357388326333299883554290423880939146938107153853310647989015103396694606874028074352923248915709270830972472991719498050019824222592198322188897898439130684586592005946862698358823113649737512060993161530807333545924846404216121234663090838628366950090202815741575910013346001106571796132730089739159115378168188909702495852255162183341303927813782328591515398082611866665035368265761300896948740209871339933695010303092254833214179766995140445289840493265083609093599591123278023271457377811602187922997653025606149267894431035071830760029506812320050876648088763874845875824937985221585617610273676394383341083600972094247908465571074928092936562607791947050715181970912120499291509287918687371751328007419520492627512672439214151367427256077127721133930100455969982472291174360696520982304121328979671412315979572330591221247585731510453340680025379576884956673544700701180772899672678604245785668757839385695891996616109321166235693891069286947532425530649018286521919739992397471220180584238473271179719477560276610264488718741097812991152589438851767398547398009486012765100417541315963622850439320198531688119949622401985936004217964454899244844548385328696083103646712340770841132367621048130196380496767632337221365936265334609314281948283607342137863642922417868597904779743000593654560991210871633242025968846027626573362803599082690945923760875483663005753161136921262755645550285252164663848456077543548474786871111499682147910438979481677382445279669712290239192291131787281095369694566205681657594946379559238441873397965406985752354952685081708269816243784476951862352357563339231347781132023718462177057342868188410720214501402174359262965716652811197184017235550425104605185606493191562930145151092551216479722681083508512464425071654789135331320604780710116929563027180024209152648694696350231510090620535667927893431885849096531827946734182832995401934628744452350667585423173146853783199314689640534858256156634752239785648871107628047328285407222338449952136786955364700014876580129013262305787312028525159678300444191136002587388308615223862319461217819114686842264939086558689441787354432837222731642895181829261504123376372059198828111414264932415499668635556741806497116409896822028695579421724144318799154365616301375622521575078906614222548441262926972028895757875595168044698337349294212305866715489876154396876824590982485507324530613508122910820511442670322197730338654168275194910972190513366834178825570425871080025551496095608639770139649962969245925886053517466331261178884026025014012845632422909247529505037927459247869311945621171902116396263874728694547868601506339256703232508807043054160623750090443597234353454808436408992726542278384601175767205735011982602578988547832396135752965164702557658999564463675089986764045995301704805940606089470334142431532796623791603697380646278247877204120119981282790642982109384424237943606715700990366850213783830651848905962519031447393325266863104122759491181000948789626044829089037194849392404545025458457735194144228689420160442711931800624647148317215780327298764787673600342113369084394711126756985665996167383827045123681140690521243151726015918488189742226486497673936126640910840312668388860787544016384359311526897042322718362790443321907177358479184183325854852706586916979312911800780926612816702283658578728248207655652487884951060159692404786336284013968438583534519446055956856818852260933535833926152411783961631047955423982816125721165328347061406935145329840188755190174929371951946245401973859699610507407738539498606770863869913413725940430173232932271315542544885751083628694854385463219751325356785672424051300402898863663642788319014059346582966476501673271454549442919445482566969927213059227130295421148795477079116960248489276203549948282965718688987049355242199179953745179770005215124161278557116238674685799243965851932066683067950948428193568307791100401016213655592236949728198713012017453672067401442036782315847919184578920602746558424086540036663595663587591651614194283854898375668612861342615048983046675055416927201230553363191740012324894301977942331791220968883692439857938652992970667411069935276388692213795024476904033122128809514211590846409937378655663666076939725266543787789481925264377737271052870424227771058564609176791454615119460827334905074957660928662620881545309854635017123299277381579894252242905950143969853037847120821805330227370649248550351057551986093587466784427644324438900218391205638750647742696619770003718501539875504055292160420959145723558375144661765110504173594503667276920010813529616407020565197878282332349138111653700893762389074018048422948527591777054161894924888561235106472610232174874612549157103934696520264094270920410447257732262548895037546696413035450376412849899078543156591484403041099810693127065916737768032069400995051637171376608789897127582564069035070833425564585153163397384381801329506263402275257639616067911620748488465949506769155215475170630038635396184082919477630297597041457327691452493413412592976622214579762149982877386471183968851094203232451683549244926063479559480423480428038800477547669328977882483415661049523796171493668857971770470207324885958179709456441896797534822058498532835393391091584298001201763617744237569855256565339944175424669135455158293978422860646383788611655392354823125416155119060313100884684245877806856896295709284719559415076938403947510536806827361448482588477526608768783606128416197060745834077572422569338896959021372861792574336183610038534102796297397003955227323433752159425417865722908223813718703655465627951474795969112860827337353678743202162583433757626045607875734107207034941680192549690613371516758168401157429940522886483439666444492447318073324450503429997046577451244136844142619420923054285095911497773585616517228985249484708761136412224950069866480885144574299576337417827406812781661698848155385623802025203828452792806824420518525814892299737271622888382538046774211724212154417820045962325023459284360816536442499774140155813287137110798653305316775859501222514019429826866790590835267171793078328238026352785686134369936751989954472023428601927013977286155687123329735621331417564260397100340434273020880651595513215874509351389557859340654199925967589100080912307094501053548326447902470347734753189758935330368987648778209599565862684913305459287343771279191314102611921725965248257427878395936701322858161369462647344269253480967841442785496742641956926360531747581609215828596656654670968670507944958593451088301857643678709059013774448467680755480957647404873115835458243878062608120672537408880452209587767187485031944317165231425800666758252754162839051666890083138783226569201971468022959602108950573997528454310787332365116375672459636058143096096306397094692373412943602266571249395572753322487355812207694260016857412981902375248292358609826494100030346189162003876819380208438723223672138211459092392494032360866190472082426637965754940633641766466927639474522652072992772170169266785709089221496498778053970785428566506401537107380621178216024542742689918444664877396021410356600072439111656871819083221721533478758280421872420346039131853455400540195971099467765668234138345353812894701453602596016430879438742759819817995046028032123221868985511124984728384409325569710889614115193331619937070840369559756058934513654710227630729205907207256509662010819816408999799437127235948712542061498461627975421316246823682345151206897273681237761788762969831124388885984693580715587209928340454687779655292204678939726086124396687017549245541956547791790329350835886682217852123016486841371187087516071711452872884072413498998772050371994007047323472037254012240871382773332334336332677539875597876400584878509083666454076652043192145696955364601997286730471979262255620906947369586040188948552013355729367536620093395769888029048974887075158769995120186791637332530015579292286749499049353214400584097355615450054382050946968295529396442213248680939833622947083184323994326722143209421617523356078186766658689380914579389007789965283357737689891640306561112657716827054789929788823028264918378461547529483163986570837767819159535220728564396158698265248536397616831655478218025932031864833044803664708692345733379042801314672233925555272323313390806261800419086846916619104545529772448304917663662331660500415961173358105563265794252824175699458479492024445510816814981862279920103222053915243027885880779121253838194205616966457753073662666844458247635404341665502010600839928195281469173881222779434986126251347698546823292476708366207683780464766599717260422703474370323326759895675768138992365834193180593661312240558764330583619791290025109476643923905663943451719226786230905507932919086446381049898467954701082307191521294635861787746224179370172710089081300043008585435840993596360385683458015696691076992376224918508208426967182505562095324209919151877162463745192534072048727167183408335964610181684345521093797958050384658375830146161423558218818666484073508008147665792747241478600781170390751234776957392324043807336313325092013866915329322714537176691815183524352446698143193858448366155427275183910829684836712854606077686647866221491236596609115051636363871431726804077965671465327837095890905821563725978849952453550809064859789664560980789988598322498028352070094322619936180038695637027751582809619248992901232317880453366267164745689985004988337048681287246164892809273944140520922745339784528236186637565238401642988272623217690958247368142524091807838990291521479800496661455599983313556947741556778075094159792087105255301095035837465021240104724121926917239140575227704619957317404371474131536022310030528231390717999471836365257443263544831263813694378538674829755453631461208824438291475084392974534901961328453222187141740786555028582979740730067854744023080118463132526047307026154399966497708791148316583499907525267055038702418398548580090342341951117938591089919219810016830295674973330231756590063457029617939610663014862367706673579336431835104922778512076809889084740665040213476629071655822784431174851305586589366894043182735433172591633745137797773101771814996695401157547933985087723782535239906251973022972391764101468667576110039707329426069457713661699969642159386522400553193685676283249057701333985473990436919928040971641649951566337720740276909478461978002439270886367395636567593067140151069282456403641652264219325491100449642737364042337187992209186312563277037857108447991070567469071523756380858767465604843506421496935503429303919902121244689390490852373582949551587817482954086862357018949579826612229223076158453367376885858848185626047071776634935907799349659156442643583514617295701748368682163339606065809629340673025161768858382033771724794619302215602361865006034745642283844371476013020522121213541561834100873463485391893550308050565437233724958823979382790834989465114928994240442051418345057426200487346088978762966638273714654795471588401195203861457119045866223910040540511192295017194700850945249372204690603342868223322492396449818444303452145743449981623395069150659355177187182458280915281281244000295917381529377326976924822628678633463261401166846536153753780771950581684000632324871416158770097604023091327374155633325168772685580382055798010403951352277145929061665047063654411407683339670350352443729526122618266605389089218397958116189567633577565424260277232305040046795247271763492304179612368044739327528272442421967954231536963195691160405310052666782744593493448924388602891411383951410694105120301957249813847420818917580587264200200785109346518304532134846658271210059121074118393653997750379089753247637166677837781810562770608794629466820537833850833083217794377891239437276723659033416076022800154237220262743052061000163242645278437845431573191208272930195718404054507861250434387536467347972349120704326288520027805242232464164337783685051351609814310663087145305012674487925650252429609734336445501273918685593801811941010981779100841798544353521699794221821262449864412407777673530090390455571536731216977436950622253782289814212434602584841982474869877336184250682968600804852087604554031139320196169849727973886631722321472709284059066207714703718854209718706287533353466238893363580060658053878804816561350773582582010728355952829531803732734700325511570771302012799977625484722539566075208105023506535427608518710898854792687292764840967748452088023365620736962498835637995874336463327533844899268435616689008523694918005739518966721088742878588247463726496477797189355798122573903238891583457660733668532813881673575612478921998690541742303692522711248679983777242195420262943336571963228124927453203872156297876075914595519142532740755394468990610631956954306621377830272950628123763633946167025081306074288272212306548016006697817020683809533976704681550620804541199654918157257280753365627276135155774014148853900913222875036765507845277941807037195014392852546911542795401735122061349614606911197159541843825257092527663747963090789745808512802280923128470214608893686376864629202544745357335067774593394800762454482635025681856917804986889206615915304261697804073465299925843102930229921296485992854002981212746311313924229580702897694081276176591090914286766697933663288489009859291222739896338308934820509896357821900964482422784516208609579746057432288332580989277021052363314249110477624617591104059708603279661559184994567479963143450296220481279566596565511027037779425489092945227654028532487938494500803326649727543458527510153672610447293622658185327208658975743499090598522677484781091593252398509141780891655580630534231658811971213528575408514237937318211789005990420265443048919809916997257062014953848136426331693079631949578109675677760902585531321198949622944496371083412233760552767754536831638065750028158216307557340017989672726899624574547553294026230520854642668711801252623988487709308014163207392682760987583415461719905761021507961611619523530029590037301347022167602709069290839235965812487883847378404234632481850924181997892043615983923971902593760532984299213204982348201727601399336532004851995133522297350661841309259751163897291375159714216094781540761188082916596438264679555946827874529282626181326810549035014313594220065346698551073276429435086294906888162379053716777142207752933538570604095947858705466133880934073987809080624435367929515495671837495962924270916146009650268739438968597785168888627903927677565645693756482355844450944237613259557821752873510623138896305702697500979239052926003204047012583814961830970834295779446692741901923789666660368087525462537593702846481679580902256838735933308731097138716092817631665696003002077263871310230684832515919806169610327998887898154529020257246024321197294859065299126987407362014574969023350974644909374104316368997711586485408388579093512497155346861795639032027364724239209098286566755886946853303372461843848647060756747460861907788194774420648392913387138193311308579029147367872156659699812929760421016771299119978308989884747781323874008756425410514267905285306470415829751109433100235694488214501176729432127637547799507060012119016656865300611275323459868316626799112097526434606977164116131103534973099001183272796503474518513733581137378128482907216966190566172060854240580434432981044642783703096780556303869242796129574809000862022139537386876781353997000758249711294772552097552038861674945250859905841648147239151522830953769221522539109241610047942616654339941043911750918806921140014280595300124167151420031675126812038382180531023438478394634426753868181926858616077921543009045146943810137474474284248401997429174751212468577842035367350367748707291346231106801187068979735446293583363557602179473600766197393389186862637348869135813190913847917334723505311142453328210285323654726226990577615641984589210712877399507486672025040518575555662798950866976091471639412659917056083145944415021627454545625291304386704853514588450746032596703804883321804299605601963529765911137038775341956184996623599519099457871096689671672747550930562718824416928570984494003280373039004309678443797948992721843798998716714837304073599054987792186164735742962649212594632632362195037190976636816480184200469214656826074088575992440414761698086133508591869099631967525037305758417307230422962519064743253331382247851403444080844350963107739979732489285192365081030069310179382502932517333451686005351274720425736496331044552042512474215156785107627084900271852807461582881176777321783264930762367424986729382855431786128958140314362761742693056280028229755183086478917650829969513726877628942507698253711611487198685826231685015613037088411168203663463045304585021754568030046376991105993800186893875249791611106236513047505875792631050897089458847865594251795126541717040796911252168077419243380127167349135062135369875160214729693941316810291313880030627746573504126122569883431006402484217512314360247850197639530321613270538865641732149765719176618179624022541693096278977251332335224568795921738235063909033833874999817367636577764420028908115177081846228572535840196261937455435602331759139144104047483388549406627016519647937103693090621549000889485437335386076829274716742565043603873332512702265312454943738625581999051115482332359140226159620555377345355703509711980154013780689982224152063425806705707382199745156988301062176409587064385090090022744005345034034540122397669833244831885766809692546491732822087764689090659898536709228695329017870163421266887469235777000441882505636139823587883268550527389672449368050545311607600548774159119011932097782726025167058879475194742362634232646183798323984464374089696472733599777690058277311881622003702277841326809227392860464543049452898168707347186316208523049972868189523801044612923210840822190522865858683572476372349615080837156754380426089256732932685535099952642686861920568133322088019208139745314954337511471811731144247745871297503604314290437216037334936137942115639424242735332268270838201267548441882418700376390468149575754875054701077068818076237329680066708307953421345504014289052979907037414887385269200356431008510341938005414830649742225894863072024850205483104960721386295750271696774171584805172406048366442973278530555453423911103433357022813902564723009544468261787560520639698640000755145556245703918414923267574001050404602723942550235635060070758079511100768414890109522759311360627353212857190273774093870622847745476855035612269624968605206756621305031792560653689538204399678436785675761252249917961441841789108137074220002154676701658138125083340122299337562965243960064503118182916487256846070256681164421796297620466494471959815633905793449027544193240388760441481580725037019673177833686472493091226051491539149738418920371419829765359229242776704447367021938890045525796695092440613228185335848247717301907482635006352784355444355497333222664294062111739525087289821552533660314547132141463542900554508269569177180832692727543071962975898243163543544095088009576344499484067196422395396475196334248750807191591247432227141224332977183106645317878854796811928641992210412813506674077205009968839018636406584780870461031842206924249493365739352559606893759156212868504530241216991866811654826747925121270674529179581018074379957629838085578258033996926190926824910279912070205379630288539136006871956453975267473026911159653350365728712630194510343811825527535168316624818661358703846670115901325064448376339945406539460729664957759524292209801935341400775133216867842052353931435798831702902544735683671443273251101730974366408522276739886673289674348325440334596127116456331790434658243535971375407188737151191277334603263237075851149228945547574484804088901409690284188208173740505984252457437685212251820682120256525220686007566370352227835785810999170185188657583844742864561555041656172774616401206200988821138267439522197210174427518192449696398579735640344034140376868299649049218123615022571000011840479362083750298386055386902050745067736788984530636439383715456401639847192789306362502724625709862519405508472836970750300772662037387134962685614109959740739196145270333201137371105385272660803850382942242449055415046131001331153147934361794098962169553151630351673809766158900401167377577348950528518554456339968040633946727402002011469399447646836858395442674532136663196216113695795713619152079721894317938504736495259677764675811779465081686121526831496168173614360734347029538607259879608095822281382193483725819661522912132129693965959264113652908673227375668040929146443931856412554034602181611679119801347118111232956779757167977739428868337614146957038805160352099034422631149435410122107833210989578129821019495550056050926950762267326487436827393340379930591806849435883736456187485002123381654393863474113552188656884956209695246454420475187292961733396430739959008247727872045689707883706750707522316607955649986368337946113613530237333672348368259738282272278901895644995213991978113538694714843011261841104416832560826782925005742765945821847096346128971513176292419159364544760343370259283614007985867437948352012253905121973767427545361459168648138687647150861337857451394116748931580632020151500382951483450068641785639507397799208561743245646888913679854179259223746897155073607849345437744634130906208579370100341571924537474419209763108061706121774934641018456752777481550014318788615788658862578323307589881256561446002382335453402362300317650874752029183177166661613817278303751260811209677123455376292282253418449637831241796895799542660943149872984252496867015260878835006684901586207228456501124720653977209589567546500341721311786598734975657592756623512517830856864648183568635835462942280013931371726681803165617266143216136779375931903490250226808321237996762039270532819907192471368713816873133319682809340452570774991757781960058345516624340623467469423370188262221527913338973464655322672634189609229669610413358456727205695750740059328444873951378476402414827169440351524033956483336042396777350531619110421001795265203502545927266412603916021209563888593078743775815620525706096802994547318826734850922401830897144192674653360860588683873889956362679453255292300387687912333901755592704481192604871907845569124072942690965067471692477011228327148660356370387705688614825698090928164579475448091718098149095714118658635715753766787261098248039546623229933329350331034314548691185260710927032058641693714844188349240887899431809388698421981509218635890510125266166904779959877638443253847663347975615046801322367876204556276360722002410778290180380037579489059895012762599481889053491597278203618754354274011526601575571446177275066390333575428384957545997475598825145081414330200154116039608698238963380702459110336377656726082321850783573848311812008145753175285272041366917000579259202667853967542533375661603237269529785771171258805136285804285979307607605698538716600028067413304060249524953671867883419682545959265741024621938019859508831260355917410225351280647049166831351647526162825741695559068618469403236755749623709010500169710954963463665059864413843954794816014502835927229164812276518193181865871270828419778420338052948379320949089802591687913568086088061324839552617565423095420983042423621123614437304186469688794800951234839119100484218176881322165329343231789964407791147284629520390362898657972720556741551259274376314051691144954265582863933043502942450795767539346642364018742057338018580399987477043557981881825683141006342992241913887962408978196763625709074374793472395143569322785895930482509698759711807439362394513068128881855682068008701157790326104318036951983141088581263712208554908228109553994008335602550457395224441308064281090615564454864608002529064084959864827190539705668621324588789539950116440844631730274205025109801048914727638807951920081103783533882244449640634372400647113831714813210217277591486693099634420013281668643780759302051887394504567294912360326039132042937814646564861728569363257056062038277254645240930119927111245092729353872867735083003606068490243907414871311988572974596049992996533297427154272017450683619591013962216508820480908598588067004958471592001056645921758949028811593321927338304176487943491139186888726088749768524445023617626332066094285421958775594478537727082577010132035152614295626438617756245887944533844208981733293046682430617523507427271926368325730526731905566693631192764154046957454234764856548947565599255678611081622017365574920464854684541170352698935775668775794819337545287032237616392473499805786917586104119609234157649727491762854667671672000532867910783718239118413693762667308945683776948534047109086291510745061137222655339184957165895653639707953163565051492900710813457039325186616477261554909938206817100146618835914677590881077321206437062466696262808835507562959131685779300413232479460014885521971720353790860470384482524071008169028746426679283551711915073658192592352012103505554395414609661328369368024340938160542318465874454826081932968246910743940229664568651666268237562054765064666311303878442303252589647960482133803948968438543206929250310767121417402427777854739383543840248236343378160687332642847903358104544306265235908088757074736330158683077957130695308655828281930697669259864845429691197781345236951718917414264256802666897737266424092294120376103138781643000705102930183482167792744163510962318139510370828192425231651131647403730135263916499391440241638243925281040004209788255175860633788479790261280983764420726414066839115645781521406104877580407196322596550424957724387501680148858366666723225014418659967323743488583554934036009908786782444572127195950864223565446890852851306379809830286052617548025217217812505893464697952675384081589851749275575431546160484029898894396093797242436103899308363347563280096752967678069997332796828201086067439451499043370402401084554288082722541604181835352601820129054361702651902117576668895785462022942631931314852441015442509703153253648422467351653915675175071382833942275868052415737494779055708761021439549359547877762445855722763475405401354412537678268871546963279591103806973120699787215440237366634430480207657577641702968955458818851726455343119937108769204936083116741150610543153776658582923897828700206634896239259799958285786906559891342461590895162116760812392722019210132987693126010773400028952999570475317204732994904581005819218252790680086562131543656662371820126596516102528353109433000724069796594525558202185735855890362013022954296896559255142731508703043299867925890225524557816968928062747780528923184997778574399907009867509884031999096303608968101552971021963655993074927083292649024977117900426229110191185082209631232282949204017892066573806331069304665044575191273371824003220260827432070823042749032271505933349181641410175238493691835067015045661034851328401262120032085414531200833642431461439879546495702013192386355464031298792438080654263326290324865285236415438708142903077961463924188028780737065914779839702390052015059422718522724294413435285105475992230707946473639503105159295101607944046584740013626322413637235347165235555371769009027602078930546703330050350229125608425480674058313591447152869893581529490937660964304451302014113813431184229725665162279721867042396616358801614937214910443355652518018254009274748704255556630919074361311786163759088351131789651986342349860679190604633214959706317656817266006784205269233288240020727869323737135174867211627119406528042240226785415836511952410671277614260443145590762972968920630413338293460338937135353982973465772409626786935918742486697857660357469631722302254915806958334859929663550793775322199849088161739404381117342507183739720054306181041783160246658205264557262850746558987261929442685276346544210104919264481710604902827440095221689327329935599650452781481897467144771928192666825078773862369108007430209120814950754109319626707104495794454491350101673511490920824508272789378441133352379574455347011784511196712871152145271624722241542774017639372463870693630132508739789536555710065581648448823061880042081274585719133292781735095930815934114623706252978917336406762596455894488990305555804682734500780142065123456230727327921689978964069507857306965579196830799042233726552352284210272808982060424856350261628347832274544747144513196795094006004434731558293894039005759918172246274050822532272953381551443517094008983244419124148118635515181656502712153081937910829349632325406583539575950155981160831847776449950370506710814209121557720047799926522680184949162542620847858313311297779484811498255381356054060575954893748658535627748631181039169386231860350441038639467781767798632107696399200541420774701544950449589318508640124883019651280119758243277795644078017612960720624439128309992115573855457647730588335200644993895242316225399009195964599070815976468396807623739053839579942054818233613664109193327883137873877726015237019079750393158555952361060663009665993868498290060780133277728614153781172269483296928331514878498466305684404637983421524896956592296416704204078043801953466269650281321466435469035303832397732038016158829599386617073442548341828550429120570254217048911789455569575538149968701825237186368839085801289849859354006681039161418597804313708801611639525641528712007868456355530866005339244734243505356573018423351534007553512170161808389399144980243790979436334814522222205490938728931814104811102972079760028095600306057929671163334054152291855500814013249978579495465605806176354790305404002917207809403490346651837590403482752172945462286916982717120545703051327534882517515447023340118356856198863533372770822252204106381693641385585012765652585689797119227786303129569935154928995579141301982469302886492575595711134092829652888392599669023198357202644395925248714715957137355911768879948844183250664094477426858297437446605359252217257850059580943532882929821033030808949937370896302958867659198289135255497776473305870275434129725976633705077800626088023439930725041736820035955133127720077903493271031561874071312480460621879147209357580053470707375570228271276770496138412388902785582942541803495908394614379538151591852050531486893187480000472828843551968988726095501254550646456860194344052390558772663931973403938195199777619429007911987578876321779169330949449416405003309089610187001368745310973866436285694905336903756879604465962891278141512455353177698091715618135610304581273414124535058621562192993327431952289678698217021187830874255179760313046957254069465397781973956252044223805854979425481025922084963736352427795538234636347823453457218714092743607163323084591692655384547124713753201963458037281534878876306334450376479314697000592870301627416943306094946103376812954652354916340909258183527188772567655852642740959983379781642208819727619278608212837533198314636795038253007155512369899286209888899214080187274897440963040595594225569376062374838152764080586824371337006844526498611501539664319171117793032286477140020436282810332376892142028308007687829738447489937537688123187179685337401147140738470778315514561447182346803312336021350378519272203590764433390123181013846336839682422060489959211323247108219336231613644061260843104291487798972807848558323451005689196938630676308610351755007120229589948682992275017580654437215887027560388433850693674348309760072862797428647980066062407730907936752238696750351585800363096938468980333376076162102017342460995976511620271327478972199352700970534641649174455424453597743013789052143350671085394791329327884068278300321835104173952745675397810573744106722150697310997508905275183103078906214226183043516613815050763081615060518985602129612813210357790147668795491228757801954416648862470784575995124339335410741532604948255738806387239927136690701536242536509970962484655107599651177713343179439359010367930201222407899996484823771891833760190176685879492619436146989316097213710161477896890845854124725985706366179335741863857472626513701360111471094815213901539549748982304172320437981196353063732284289768525965666590498654677827598072317683306267582580671019009782913653134986184213150516822741394284500167764865122180394667235574063570825437488609795948035512647212480790530558618419012097806293475305489683866759044077210247414266135162608288679112320021994471618090088603879348250089719346593817512877803599940159220161494511633832072106055854311296263588421310687455774998589629621097781992567463375839411179068179651546293173637881307441621072998280208891893966201926195877795853616369808728604910753757570906175341233175294355730881262667001460866898818462852368017442797017820842712442655666689029230479224357962879318985747916859893796212292945133817119457662267941041708608696770535456622993235538696074262550744418095182106907804534771903603050160129813723702531185214535986492548703693037344310345045791080608998895748216324975956595555748936226810044461905280185424524615808008955526793178433692355100679663334668975923519884874499164188386649227230030503346399254292504149657675418265718379743301388337304666720246448256435594017199291905100327142682663344181593788650159807263749099625425655112135368187567915468972232954402875393074872491217361947113494193190350163265153139242750471685479785779564510159121974261145180968708619074270273734844689228674941910862264585040541941090302342507980427930558344493836732753274185554900407186436158385061024711637137745698410138298477198732930167315079296590122610480607100398719062989726659575617487937192226982417064283539112714268814458976924014771028658124568114810710736665264416339829601014518414199286040635174008604434143016320588577760788206569714360303973626225787026320181969802183600827025805329313387745042582237321875393527750944261342263714418829223975025861944094854854853107499082012686234253426281966442642660614243608523168094566337355001042980086863017206761767687891888794297573439035325549768782526203995030163408182490212960228626109023428440960834637704413101517082394215762229486219280242340007528466888583943633178508934028218207179994091932190439182026936644794712227027283302542817058174479505295660800746226946069743888040731078473412316513866027613108902983588288901751942299270958280046259161934732195362681919495781409902063630206231592823141072669863468569264150380190410977635421841542339553799226811714194978355201010965376908578114052880785106162081101396595229346047226544181848185874461634622567902377686798460014481239029842769667274154850279227627833237670284335869049081038458726691262567730260640828411879852843950249967190865307303334281021942906872574408189635736822198212172490860316279507623285346770358979873469770140145396520068849223653080818842625145369985052767244008104690757851011297109343778419221794489292058120437304245746638294620488844684251897898738018417827171485490392838008273157933916308980991005493451020042889567356165734883446290605673408230691411444141234057262908791130432497250261256964692338389726447226393686629757083103135518940029867765138371374440182322334949469403886324136005353374657778774092292056416084216686698030666980980339709259286869130692190434976846457098250304296329841553426656845945729544869592195802126414292498374057628841419992708883884278016047029231781680681683312482676055428958000404171922161843049877348405162739931330067563201464187424905154771635785165550657458552651842459319429833737405877376721859311922432065058096821535227518104807309386523281344944936439879099417470495069095259246008363014370789993186443121669826449858451929525271867968499624043127924368924635396081326381924807836490379354607444695108787220889449706841208872523986387256339044627803255997885491512933444570740766855709325196746339896041249990588874987023346007318297339129404659993406846937690905799644893724880729006900404359172583688164475312027520120778931080362431574154254434431582775667825693870500378068185357513154776164199110361067484273071156510026000154646054498852143671913564860330790373291884106500296921462324225123099997180395286759343448562330940616734500426532904249455880435703075523384447999572036400347004400935012247127269362653490038254429574774063713703048882728162166681531172375042137418631184667842117067899612025994841283302228302583686794317063939134180931149135400334439893081410458525090094528789331508707716523824127509750547746900865309575709020744159043693987728086861122051722320981543663575111642292506949326147946383897352441010461849991875443269741629346698909045320055483134432276308315326341395358926428910862389082730105895361603380659164665196643600316465127267416289017318898865414171617868173973968123900274913286225591965682184656783203103651641188658157676917008349092843694968800714779237351229462357264941952944646754904083029774373410327967591412557566655718860080053623501624502960985392709119703131797744111279428543760635181562051138301929354369075574126127802956164616898023678218015155897606717706227895685937106904882776186007538992438035124594742612591600972669382671339815680670789367353227741216493501720753618130936385523474443131073231107425004187897044659151364819835180947516958617430291371496498221458499475576130853500527935883392502101198331279972350623758461082609238646629204087555963957984308176728816445779797689903460296367150088625522668978922872093610397659361481516245369885506660949446455950497605202523186800246554133921146916902244644338235605640955305918836580031004306406848441448171156458475358821238414600634374932215837540401073222217069922295311534327864267029796323329650059710106784496139405854301198231351462982207265740596326770812530911469460224314586128341902194868201396035667279311478924989951803897326822618522985383333797432903570709098186161788085164735122943199342677667208594969711726005758537637620729963446757607602870444702208169817891433740068908330775631887563731170723508690633428978432132697644698251426821253597913957724328215150539451343223287055740134682873817979827270769322462084468674615731789659891272952475432137553564399139801837573604626769050765148895534010441223588512950438196689714523681168598710728612540261069258133811057883293105725788254516562860749393111252736981879169309940328082470046401810436369894574145385821961610795268217671990560944661019902380631440138472726076527284562294434028491040970279059092565443385086444436877947600295336561448075062840072288285492532698349381983751241795209701976625034236046282242568817954774968215271720248055177466910745016277181530237628837830615797102888943539058065079652864344895980019072269341510832771728090832105591503224765561168128633222294295244249856750362124708296789358454875222405595469469571149066866388262740531697946800121776972866088274266004590513357716664920253671073996132953881302667560946293272281918869253599858727134261060460862846877445425297488609568648135491721217815950700535922208533756549477728776272606771432707562923593859123307642092654555339652720260775958623646558643781667030204159311298443499416866657120299371937562253162186963565134012645481993102221525769697750549714844789960333138081073935780337656884428150862519689210612878184023868404793947014511412195859447512288101242481760608341143013526224138709511191601021444694310050081554676973607422574846270966387523995112219505846731650136177041945244708915330590407465969242097492876442703393548270077590846146030571580883477084526038121304908957519770027251286238184798554586059888223581141757891559666828783224204370522574544984784780633263244475418065735480376016202175203818260866005616571265510727927949297024535213336245326182314983239031439017201648712494206460042709718751836777750038002145910882643400306844154678566795097903347685713817837390014437776743313017176415464717099280706029829696924169783954634331884957579874576627398294659636516733658098181178649766967932890830161641603221161400566682641949395441739057699317430332976996304403508181783004365429179430601363128338199116185779050330879850405775800830510029510027478536791027144840988279148323084067298771521706991887842377922851057030429477253386621418360529031778704537117028675109198768325830864624610629013871484314740466530916268060286480773929906816828883677717455859813675731588678050674446512659879061976703108855490612149609741742955108501199417909952359629528441789903540244050924016411341009883466193115134445616721025741729800230410330249990326527098978658623953182830725183219566952014617356304668747374748239411802019701881843925477113547873480618982628075442243052267627895990091290424020911140028978234357255273442565313937093573077012444589394719752775781711747358887500964683961948672375098273767482714857855272905293788825287323237231714949837453672281904423219191787989500077254897317227379369320664674113702293956300858828085434096967154816910352035955788317760836593703131693485315642185059398211931639952044530566804347121792024788170496221712087250813715194995613228948325848428803822918651446873917994302100314750361677717743078907920221450635740420317130535491114554513593775534904874900536801880233045412165413819330949176203329244427347316664582715147298472120592833886768163282012783714554532583071830775830183374998964831663670239979099325169346674846615403949986028093526885819956654704960957021454326796569670077109435943506095418584494739737086789315843564492698429689859741083275794970616390188035781441453738482225995458517979901754175433251949308168547556776531516087150388093330879591846668525977435709927482839791151748680779945591640805952695544913883315447822786948537643153236912076990414868466952731766440503047354126436052993603753976926579084078281545329727905437391633780477514654266695965846134079711967200773216652740050476477110090961327564963488899335548947353180524908623042911945848579723476268566674142452347593766110671399674777600073085021582300793636979822370715725260198247099815180488866969686634357663705163196475454863933170370682528829817219931277188324709521140769215058575358077719130902859115213297588243713061094247977091492359122386854943455689358549046987943800219952672906677649896197846191885076183161295989222144805228857757262469290336255149586913460157338437368873846828354033815219493015099405925889773341417834400068437255098544572430564974035289114455430387821483923355161913734820816736430014531705704163208548286674884543665473910241157423318521798181956301094447262470778493181255970127534205543447766932221357446705838539295453328296950537217518018830765796181510547583097157183865318346690485820334611939088761770640607145552270845587077689299731751814284807884920730911488967387756557759423404890460474400650951799637760353133573749899260491524478726808693858053499363240535719636396495766079473811943508912806334862624965536608008046142381734332541747265472801062947926284847783489007070147917170305565166585988231034185402053638522119573885754790636998505856746876092229768477952005294780311713316448598337706457168696064037502374892709016221262575702505706708417076029812501425528763502224362055534027670529299545782390852132630676441203356657230101801096464804925904024708667803560717157437426646122884936307178732414367221568939452473082375616623762324302321997367727402605707499148998860667807282699958690846178706715922598298645057115567056661799180327916514486196586511194078385357507186723126075007025502198536032093733511857793139648130863710876523468399481553053350507762568159533013328469065892527317748811772917766334041125782658954609318277395967277275625096647584199645937210138971211615030270178657207934842196892610252480261204581839680008772966669636220604366758062481457953173720620077184767711893543543221823981887853397416741312891637452414233048444420853317455646792951574614046194379817320016088423042895733382790181509630911251548173994264982800612285541902030424699602059045780139127792867655008020304460983461282609971064260918927434094019415920737990720349488219355270549221824828086913854569446725558499997287300934754132152485376000275038514683300047423072616631992161860968809106121117533838281290242996512034195644738730881361302961665579700873502420600607042374705285651503019613885385840887328328445154839094381606730138078322277113112172440013791217068559230530474517250329641334735336781291895937386293057276824885002835035658824085203118203371198869625244029980060255965271129188371539848164556621957641532057998907185770475569226817616250619143022582233992834628474608239961745532390654574658149160011035281066424348149600122585598590116626489960665979276629401265609749749045261755282736461452653960424176022814363154834478017695235759730421520553479765639236501747162432092138815447945140568031049703038227243932326646665369603062410064669141897360371261658534045664913816718201196857863646687603431840384756121081668637984772218140253227020397203454776232690725420819302242177142911338823626225569959451065682183604041256458155353142882867936385436356126289136206244452399873765125224690265362608536325533507235480726092318175989942060074980984090961602420345011598205113933602857122493139936400475947427763376091654558971816342385846388894327740664722145678670825047453234286725720557852924794212934813981270983364279661894740065094425823147133471763381043554265832617583607603649645370740582698777662440438019149502277607673896844016539843323222823723049464999772392701538892506668028358589340875004249285794050672043568703755560127137199387096428704245035169454542424704763393005500757949088164917342771477484021291310813792648991426309654210947285652080922966098959661497181154308172394156010048596613694522499402294175610036860190985891985959344947456280698138182629000417807952009108656550880744984389880139731847641521242510768204554833017489595795289970392625276192864538109268894901529490683435181109198835094461261401227573755599200309958967757566322843535852625806618859688818207849793313454570821484329064859003183916520644383581431181394761677076826388180242149871103105565425148156126630246670726147886189257472019437760641435866100200491596973375031373328537653192741613441341230235644098135214333435594592125633135263401592916023180281331772808190206112854874485946195591725252158933962275028593660737000377490990714512145704731793072095761397978212378983070383053591968174410618720501543121406085312860958760220520046820127533005429438282800201226557064220891993005387748886292628006297494830576027700144206653563925125380122934409089532791625881065548887596034989456892827267084030166679518132439991724418876820786769319958136717647595724297978439862156077956079288428735773048572046975711208658218132604015235642327898223104179943775740142774673591537777406316105150305199936183107596684806695652349069440149834634217720898529957841913440373120254112597526244879102906297697522991040329763891049302684063796805386383536652993059251794508144924705026260517746512970679022715357989313458267459401348138871583119665918210536001089624073078675492722064418624665943487665734161045760999948710576330222825265119395216833266653191839356766017828770299830124941187425418482148515052070214494234964800870564084720048144288229958047349955714826343165425995588288139721074407291992608822923244006511351761654281873520256081622093843891279379076750505417536160864030518049454026655655392415736056954068131478926855462692488530158369956074652789059936949569287515192966563275301739290579039561882031730416691705354355143114027386326034385812813553840187016921615777130821594680015705670629045770751090806639350901473145039749622334289340082047848103363343767165089914840691760621109194335744903870623553742195788900255529466276723797603130702229413445900742178180311466041060611947707732180093427955142859969393466110046423569949406451682972017967845378333905185182771875445176824776893394701451943200426056375527616745025874527685891087580480927412589214218513644172163232715788677867396019397307649609439930160288409924744007202143257284424544636749845331101415357075455132348525171898813609775201070184077236203959776365150917128985794990858305444894750273665025583996856886190457153279051368622136679227788021065080909038989270136837983378596904635979436574641968405991363423801751484739286514641770342758930262902842430185162542122119192597901938885063131828111137417354883010258267379091862528902319702808868083325361303559883931431281827230669922676619927443626308156835705687100791517776563548601968396630034221478700095946129211677143372658063131236791163172207925953131405866723327969966922572842073010607606258925617232538121040810391294438716974544313817957548094442441023208414499336437099144288480434368777385219514040287133274117937493614054853774541429729405297146509451259469235921337969228221203398134744238908164643678459253623951600402284561636492754533821849698945765958929626804049792629091614136435593801745417631238854442896434747078738405888601387704512681405186662945645269354400129689320602882675842887584694944699988298313883642475354859232029681458308228906273375400517271733493851108987549325439457900782881160075214363529200582271081577580953526653714764803286034749921621166051352260875839177599858698066388836481401657636714608557981083636384630443850414297717151218938842584416410429929923835957565068529617584234292901212590288678503534727349459609619644424609924288503078192294247546722624407560174082066320517256444428993470329383551532920018072155541900582341944395944588007260867147718586682933188024170014766912284704421716468598848984275136093785247975994688961554947950005877150027556320684360081737098306892029010199808288407293647883599432599461692615701350755219400774138402904129468593297804676349267527941696152185057266266863758145641555434224598829592202184168414124060701310770368347921409200582429992130644867382770704831873919816257301256418501190613121905090765041990802023965556923094522130392176189289627322652199378284026264526083923762113315668676427914970179749165969042522828794504161257442890553727213782277484710931868487065947514596084369850271526885573530694078568334926811387818103522672101012587669319693740124423465047027534555359793995593728213355564786123430239820068511141490509780269495383042842267602212758641053046866021446789420761043901186381272159138496700302915392669978009090595585600938453832891953047403702788473583304036703983481085883207207400503320062409262987602546385975907869315963257548147611237369821647098875666763178457268333122570089900634663901770398805278121415689723612535623493733417115587305656089574023954055491675983456341024423778052052626242996458189579894288120907694053606316966094757073503917362217267981922709886377513219225223072151128183329609017643928990807010841279702119231680245996421909708855501785465041467584067536974091493488485038930608508065855287152070198911822348778273758980524677376381837154401679407721766685542539959000911832701186055810090334045592236851789296740426867600892481528533010109137044886123376256807490311643000040533647142985713930201724053207147294492005088573233806950715117857744626152292412108480354395461389658735249241944450378164259167766073516543723083780530271101414597476966953790535388460472583542841577403727806504591558948806576458123194205150254926858343104758309035095435208149454235085826910319677263333499055805555794738671596064475925954347000070632827496948969995364494447633609869684530405353636190987721421442669341545933243463022569402681191557408349541224667584401816162720020506131953587419117884262146527974196621627348714616875001471665952024318502551589359769334888195213887801918393403972218399080035337113589202051807946455272232833127366025935843662837066972234722018766230591656905724758583951145969103090468844839827214219033186543360996421864150162735536119101344148104454681493664279270334783136266003848754468560580691209294437655608897672924967695526293178246619529047709813507613829550568706171954632532217602447554009809436374464320508006117734756441696604824285954215378589804106147315460455353004863549322329770692463363453698478486504076657460161366123508343491912600469521614443656085336494273996515819254936445829725780225726984924914870200252085496231184981430846064529330673530920787877200638927448397703734223891098783527857296596671269579540554363807781390867188913062526110298560291195932787799007946000958261092470368225563934885974850732938558491114125176727524548339974051466429971969689334961160294097700951985590407401893856639078631255122304768506085894841477939093250960809399516173852161169751110641892221812028387342297641226953602512754538396448054062752847843110701424339557867485328441237522164221270392908948266707840733582622142000375568528620073679918868934678645890926273074478978761675719545545280856188585532255572699418459907899316276932651899725637931107180444814204928499025274857059210021279334230885260437727629180046915404444560494537436597514738399554565260779928208959154327943070023343162840854388192701744448062348173366371933606677975947586338525908904356346897287714320970652954591332901878089276921117565861394033739281941166020273941711050199858993275643582732354972967425708508234331450323596252532220759198341330507691513424905654768048724128954135275845484030387002751213001711640934758187713254164898645683172794154866277554349880710103239055450739203501087477108150394244241262624772114308218680047030321107164117124267441529020403169389680143682873088630249884189693499936439115203377949532102843062119924274893483205685682979409271900898108932117657268720427726217493396547402515782367070232350722103008392343879886423786229738660594347400422384901420838294038015887705320382850123954774391009930262954743143056413023905591834715522479320847876762505120182148303211563078661286373053761735268503780844113710773032854824790291020491226415852534247904857158846785901620411091016229993666436877132245657877823858974777810065721964884676290339066501973117779830728193897147554188058575973891480209176895855647274215108289649396306924225024327836491644322786249520826777655757428388835390625353123273108136749162067257941120236412286193463043918611555125262042276063610155657055153774501984051176200519736039417051267685095801525383288964225766193179866478530482029680760634396129960351353080601670451426968908870444269494586534943771299091962603212042187130663038611414748871198044447037620661458035980972506029046644113029880998690787696072335883430898152571563486620191167951699687163871787490309992991548194389163058558163760667762318092999491514079456146120791634886240876395098117841575623190927480631038395240278353095235164229337273274517808225421845024555088865075864100929439513368814020320220989792678274125655955469865234249109966770231524163735142938353580881312177921862442665458180441926937734700461361088082462325382881518307703547839657425657739636961063741161855563340013094048607697470755542494632825823525516861814767361493038923908699781062262614914613338495265864318363286233424191469529232980940891117293299767519844939259921270022503976624647007900528828333987501537719046620082947073391090536946432443687017545905112483349471201597238564727773242281393803012371864517562164862087764152528206940840728359549815595345063176859134882653268070572321602420340009024843096081120089083826976109750767636254895660832000962185191221906317806890383147578629702100004032507960494245740769699703663099568890213711647499679652003611509378562339436549520767518562544637966020817562008024426595448998553014830886925548390167056443014333145383478109723505013678399593641070766251362228084582560578207136475803179579815606590598832213633965758604279594180540332748711423729845981995197399762162418874552192587563422383390623995244521941835824231382368782473143305503926217867824790564017176924867020853398103418538582232975090379974629868486969739584943928883711805638717024844302344810363445506087321359156432524330188928860569758520916554313009034573808818713162677908440986378196748468163461267444434953477514025575721689611334458681647851208925885726307323268283606959422281205987431576461987945430324942217651524185876625874155590902763125426660081235165881489061865193756503820898362033915090833413803595938539137429203164444475894215270147081093266348363965289916833114205144102592845425720955131702741095465478627594627926708550283470425173830533688556777247425200862636370072014320842807382587932462659685933537541709722595395991836476056077684107056325513223563288158501098964356356767741519425360557454528852846556964485147501613016202747736353078138188107216245603181347805975080805353888661350822343645850206179053930461876705420772944539473170169197945117202372747501704047891184937457083268366788474700487418272337510544082404968855186235989057843227090361389786500173695378436212589191487641259099433020185218073197153077029414387876034512913843803483727113381997190324561746148255539517639099993532291283311708379964183855321882040881646601205834572919957154701514497915520576265679113634740767885361509894265939124939183531696903781615563260868178429291547112337135538697448729057165193726646429804981407284335728812090291559323916385517815391459047521402418980350215688994316952132672412759929323310080027553935783110334202488703819711483345119682110724724323986874628189050171377331828919813377788247853889894702445284279235462524580077214137875581334063998497560424531276679696312428090576132298215854800593158718797559195510852019145316488958410231259229428696470834765005658976318906834077350565714307786090870549658591190025077403499529595084219798295320340717031361155748226470970434836076778966472923480418024981051588352194738178831755277606375479592241243383366905867569957031294622839302076545773081288851114078196206691942763935032329369578953109197928309939386423531114026570714095747328891472973920766347806502078975680767696338930327602852041256697667785032914228290137312936943256436965342166800015367201438992312178969903100104562818539599508775031687784968913295394558894169280037636461816962315262589135109772912039666371496129674384887084266640226948483132845956152679919428933191224692792418386726070623703451401937042472265363466939537448272914338785503007214261566870195882234814294050878142023193621209908212316783269260753766643787033670539464465913792717351033032803600676629443409943617558937553207865956035505934111949508829800259404871843904660910464262290265030973091852450689734635463026108772717046891344577033758701838946393682132118384166509562728760739325184832506912234755114888613695595427580943463316847444806882205559336749253552656677400095957276443815697448258086535765295289516292736683457128503166171131241520509934481183520700215501083110031688126450786100990579663654209883202583424701998381494199207358905527594695567308443058299421112024794897432139319523658849090919274737315679142652424303465627972341709430581714450605240703611779766888456600281643227782765075826303224015794021867548442118651579991309148548742362845597926679618319610016987428661918718184549687097317438687469291399167494100861987297365413922477220437318443966457672856520105074760229862435397926759561513485445792109186724192731697611755916608205083988329393565463756457829995699051543476205205989465454827396185720214075540035349259141446685624311597413128318786886012448889561208745414006009727728083326201089203086224275736525502213834840175888655226371742036760119420243524151118980297224933788562499779143252382177384283885609621139023514136299897511809238381054548711693811530707742787695435322818989696260872502598941080751249677260718877594304725714102606034443312063715086230151369135404212473923898788163171164608366383753866510159571116672233072697601774625492022797100347669490362564801814985095897225036200892887543124930448030647605863941444261491277975805731659696610402405308716532823464738963546722026785968488589288142910463317814447256349561778121392246384307774172375299859548810449765572866726445711215675126621426744047179029456876268008166290609742020843433825673749517361190838934287839450327675021478605141104160577502369836406658941109208429422565655616584855294962963641592391957122926662233236500789287640506254293552411179142379842220524026192177448671972767699392306858229490786067830237358891966146165886084735496161935961292097283917984972859112622052529728460544446286509122756014152759163364615013024974362020087671806091305737770272708607663485955481059453395615987331656614070484571357616387432873360762331251964679837322148032808539201040032682519513626442945899270833921590786628746037240789588954978815036879076379023643962646240734288362085143100720179150766184252285987080146873421311583780325585114518939571369452042255435124917377859205986266759619164757856989836122175542671564802840558067266682595648605357344599711878580807886568216677447980246957490361367598423463358584412204478287387092138763852955947980868512169376094505608987318647889810194418967112216826356873030332504884340141534929147945670792133127159766174405874716224692556443345473647477725942715287976147550798147608896031015449584591885938067231260213892944195785686835565233835540664267094624474175696229745818536761424778591179913576623094542907974558411872811646604900854548755470202313724085818804224110962254303046339609580553634175117135634232141542330795416249294994478829145464286063275152031790011154507844610781325781419256631074107065819790556588176745072319101957868387760610003024477914205807111808174072384326096751583259691676732079058586712836954071207013110371335257318692979387226820123085154011523894549176273183878582402571895352091195765961443671082198546316788234843601910601132372491701886474997970193335555158309724783776344661402226244125809443772778674167025264543785395246936611834596887363194752919058892286642138413654750801817809700796198084988079780221510127811947107443397563141600303890225027643594102256663538923106655350627161656933235218446494071107675655720109621196904414038866145062595956864174695577933692904622066720514592214858236298918044060290119996790108671192502353353535804355078882144007866523087144668299225324650811467160641961705721901502942211621682280831543271673026352865442078100780677145424794147332924657780135469182084954131941088731401492609446359091676084657270746616498098001735947208998116866803841308973539884369519126121750223277372349111034513033243653180141545785429746892712027605634362937878729014598920501539767121747724346396110763585591521097942943407815753141463468622281189259080090679272149693489428787030460519655725498391923615563370733620374608431557282722818255106589781450862585247680261530930595651079276426263769879358687123968245485685406563512378015154002191656827282471342478553519574736917933891453848478950558975072462940288993911597358123896135406944999593106083253997472133979647534701547468122536245151298204216519764981076680440780320176589886907114770008434258447641931270754341550673236604932956842584424824991636560535851627054644527495960632101837919522752023122693436182627058204096678581732045971677320706903936337877184870487250003805871695205433299182133369956623461462076644745106602303077327995016464609974434720849778014535445015734009620629589816872571296084297853022082498522129527583085226522762284808491556914132592585007888117481900255681810535911261054802343037785747000690948404889161610177789449279566798548242913059044829039354454009432011469831242053553857499645834164910141620950320196134635484619511738633703508832395942887501091292869959815973726386685596903185366647213145567779789188039690454925335552728291711763377500106707526869220921415829466512010818856526293521589304658355999435323602562081550409984659171014286145294197585452183386342271742950925840594848720881750566756036477382739331825835794839518855556053321295131170583895023271742342180870836337845967124336854414531984391328414353892180640074112478204755516308589490599656340179210293494159992863659824754351356387624346549995624900795949284097087103136642496522480363267865390375968801207334284339825705603750062937611674639144563856861281433851116993019549932429238296317667231167625604480689686969669347524143907068971763447234074158247225821871567267575922246174100995552669445338801183931466697617027511443331973108791681648807885434428140449031894892083303220086677716204730105872660763737169393643107961256158269354579799089203397944527844514298119406545857916992845070201394844473733023287906375563189669006097252500215346514024070107110106002704524326878073814673792001936128026433986002430984610956459820620730150139670974383559203338643078170128128957876059302001551634465742277332622664722981446870099896416134761946781613620131399992545269007985200954327429837409764535899500045086286936960829844037815966494037108103545680518648810255835527933908008646889599575613885378453105580806368431185733031846520563939961541534903041955102560241577737802012264824622070203815277237497510596260559605208901907541877130680774468632227937643202038029255876358938223538617300391313998604904020382866555667032209619824870909619108878169372136319118286907331023880044809425758681959269804747450089779139322688516997805153444333128286684350082316945039272263390719645929257100191214439441263188030940790579378499324110689936483430297331029934812677099256466917772624877398100326302133582528696970689865172113011123596907910904476149482493981748091647648546039857229445693545654729547150096590896158799518945365819226157692644001560004413868210561191661508911443802378645357404846709897488843768495252361056222136694801284004454448253325171646463524338374694882743105907143264347972449466091115646891073526521690470073698030620225262805585538856602145831377077388613144003762324510020444280830854025907009463888166689573021243750944332029000138303324269283526656253384200228272938799699423627175430122529100863850257603114101777997631687290831266533279674855147259258072183648555926285285378357180835407419440260207821685573247620502184628451489543789241080245973931449480532164361653287411931464429283037724280929219751396146843562039220491154408159793991201145708833436216454080062997371096464718177080871233085743301018887017845337413551347804558008870279660938804213309798369434330985348597506603612550907800510583704971851292600717692798479913643500608469860477702196559315126157097266853343939062850312247524613522622774581059339174947029374019212525277270660286821373683509382918090102425480330220269345374908775331725166621787494883061141296492482194437046866352792732364292210846059768886748362851497078752969968309671470090963052539016120588131841879216283950936709810805613829234044805390347686393462748233926047429859219407326422100190859920266670144471873589514022669815536701752595959466495103920226929745956451476292057934116200662515926050233731676958843644917094170967665621572955295428023131947393167689139664766854006205670059425166789210438438349171565861264869927668136024982500119141946570449408408760225826734411607498732343967089892391462008783453436038158704742627115175722226515249557712604209890061526647088167856244007541797240492772179803154889922006321449116947638957404683903316115213562554248360218425827567893859218066476894472405885660186671341644435706938226792256876936235715780417554955247223089370214434325100546900602802559342756105286088852510651129520902746772338780072660191905160003363585719992940849811519885111348521118284224176897492426222367621579574754207788499077155039540986168022709275707365576748673566605788962905668695647394639158798900008003016098301698008367148635250138278734134454846976260513816019773797231020718313843765304647410333912762825125229136552969333571975606675512008887344024422279464499543937827378110566506405135301971124591326957110230291043700729596766144565382606339253140367983814977456761219306387374700429324035876611443246426646102331285926673791681036559972099245070209615864499405003473591638832558770119041836942673273993688788140303108425403117510116911829565387320347436077885848645026447537364122189714567255643482437119924367090259084716864226839685955727399368354517039240716191895702304498070979115257451820150350699083552297922518064045673005473714279783101901555227066327661896488336017176001859405309567443870225400200177214359081999434459986694346248659447347538830621071699395505320672348372862778421745299989729716649725781028935910380140810648062235034241979631791587595853339832354103123023716180470563662202124241170576801863450074335732192880288757663331068383871035827214386472930748354958034834100267638177481800228831187468875946826894929173243431441552694151802716498813628262017420767603982675178621043937240784922483702443114311304089773862760116480014962760619526025805206894723393714984382899536222853855183256282309750235545509795132063861674948854167530704967680189780836421204496647332832585368345974369616482298129562885272253834647057738787348878108892232319719627805687931214720497553924925961119126577228830250015793677124665266504956458935324628822785467576467881148041710640921428746141646067088564432998263385677773070066805050997582538159355488380823746046811076493468720960422019345275178681781501486220280220191364780371262585199136306166875381911721000144524319597243117407729789010775505646337153351937884303526332986595230510945049985122845770514482518006546751267151401016239232576210146812874101116088005363357854775143235709897100322849808086108562294603441862081393148854004626887225085950871258875092771344227604806179450321229019684766250820016211186912640056696200330979901201518155905087371696244731351382050586616333724289129830524635453167887088513690356414906021047377244690819306687899513326920929538594476315939580974736754722207661700389546862066960773574479217151978993669860038750848382714846710504996067057783129400617850946453594085242758806853327575383116680979001771068033682241687463858856084589266963028526371377387171515465678405050598659215526603539050245141998467175629535460426079795108991955505118114212271224966445549281026802580289539491319835202579700403664452419615664127137343528623359513347883606466761214525010356378217905928503814669868363631527207608540918249594729892000479785970078600452310093891030419719411409000735135902079647518745127860716702849543007902436582130142126239568508218004680785323924024630931334068690820917128003330633239535741863893125618266698024645744778620265361214555938043877461975906476376551883270712912150662107297571204900489835707192513417551405530573153184724456850124677679618190583519122139400115778322434312324922956564608907134133308997275252066122877118307685867779364231574303730634872909460264067987764440592324683326588512726452769917583096116231875795512096375883685243757606436095278807237487871864503307660052399048920279056518309943597324817145638922391613622113786034288427569476735717062396611146004928598552851313558359169040477076756195756966396503166512579927414594590989004860032167738298591946843770701477147058041626698074864743548057646407751852960403411658137022215572627566870590281086716469227491827244911211941396402445593616018163828204350967965171169532928620279254560972174852730010510708006853082876212767371270812093497858112170928660452005707414465984673094170371425386910330017672604080255937428866905404775060893019607348235076074736160501156670584453666405826113322612183024100920697597025112903855172916774739212334000010249541840192177618432912001505122432077406545349811069307138640047500743152778542103997843166609716622985890855888879365361326556364368763809805251601568598320420521009552505842559458967468054428395275402779551301662648258714559570819203982286409161995970391863736648185143970990740537451497325335504971025945940159446407820390615932490810868329016331043280387913698700154553883352356283856679766862872794066676917752568037835936778554704702949826320241079134764289251318843860728993147348607007464604432948493183635652473141424179588720041549546880782455032540076833026722282408358165301438955631618651344700585914812190338952751410132118006779735857586822778655064551283925228965794122392162521359974612513893810875187662451042776120044628423543080356771377631102841406926633015566130005796912507609173602361264154433582698690873339021177338163979166502030989569817059332388904358019608319496963052581848765710864028491312552126169392225317236205368212305489498220077511147518944048721424108638173624264780032183519910626207851858324005727760455222957970784693996144455530684640507858710120617577249248001978666562670600786515219534860721652508253589095292808474526054088139473979511022471240150656631282504131516749779785933058277192432508979715276519453129172116797445997143583221240982060851658530088582031522069538219783714385026998207399474151206296268772044880464803424973598336750073454354656508598318281701611016987235729072490616329998724857334854157236635384739837790436857822922290888916421144369414377056370776183956985586617198009926941605994957839102870252432056153957195295880477647655479686790459884452034257577632965115896783968455559850075644034464526372607632679250581063045721124933719529154344697583215558984719218328787915977977184398217735514336592755608241774242200494642940853314754185112616438224449110207571149210892307824744799342159205665833043845056378773255357300157747385582997382011205978399158276110356065851401645809115423866069866617337043641190393406148573141107500460239788106124048138553399769087178877377905438359215588517056411720810614428162710542924730210268324870566968913538125177182154548909068043580157644490631547061099196128848269433765602480992506945021828483124427381326827659502926167232956023618428997659282268994750893953249140465078211583539505008270714788748932416777492316211605782934796205697201589642207454216549105094243575974244352744846998757142802540150195108330805979730781461063810282432805442832688799433409590331656130354424106755044749966956677994744402835360156183312437663417746803112053312268053552412799742430986039238391633388333817995752686837103711801201288719569237229889807904680450445349016821541839403050708254498582526542068591522307160320687907276073541992346035803412109025790958334840784970855232981267460406662484202936169346576232858467908596306444707989825700132564891082577118552998729126895447433095035959174637429034304280720779977527458669670522572714726250926239221096221926628257102170049590314079357293135919790341580351407214277395881129983854557595893441235776685585973822239797284526337596464516437090287255567548717842388749072170108661980050282777699740950045291383485427083310852641674698310823215738864841379551151062549026119449811304172211260239592046024092669877486071408265450067618621646057276857441866093754616245616821211607363907487136721409869041812476870803791796131656810948985922794697875847527002750151334532009237959812686707656553653024319009618364725729817070827344117379554423656118409993346881931779668514587560701843890745051042195704495049152972842300455370581273638664777641212779461285047850030493687920367587742140399863849672801877604900924432056840813830474650394826859593986936138564277385471158745730599215106772384068957203020650150817359784878111358507851037304419899233720227467549909669527381669516033160626766482840058596629291830560525406408377212244812597144339447608092669604255579075539090794457713124856590277902112328810409691639656965049580143341395009870436902103820800762883113939104997790110920852814312058834641030504543990699560118747775771828686318194941687681705502203487999646328755433828943685240526007565223599996839779214399157837313516676291265360420944605838950030136558447010328510898560345664486504299189776470810789361961114443367688310512759573825669052805979746224832635727565253824079978279589715230929475236048858828970099694393915760714312191794400140610423506876083383975226614831141082696800970656543788558957263295675708850582855242973416667180822177450140983116666563301431576924534577489968960969201102380227127185665526392246681839460670529020512256754699919103607696728027276285758229482579239728925448398340647688234268847211196246001403953793848955694450322282249001728136690241358101886924662282985378035515536439547061238541951693953256081442161187420663144826196068944204382966159186029534267763926530817502561900839626120596089277467006226159553242211642667963046994867688330469696257803578546563681719402939115203184646652594960152713708642886562442565939233089002443808826647687828737642935042303073609511479054710620054888825664844934026712103247067707532461720394782145870443164566797383935602898289988863935605019620735384200553343255051472578100262727432869410530200467336735782940345542184590165077356881088475376447863862580321057810475142533704250875447300932280453188813688476093442717486021905479431235638856311572613158292943667261488902252310481328835858337610069076735090045072180621867764497840385206911329475330453418182171154757618314148891020013769882391139773516362702486133112590974023029736517682160285060399735547538505407307931104127124974537365416568596326309349601359299785977766330613866875933596699297471999538930514645151810186592740196837119122023419346761610494420573142922229511288656089288862617694399462376634896520195700597270738951300133039161050648748884133409140081714850092083083036567498959999885451691075383864050334509262618186912939949220187973527928983677555067274326595190715843913363876448840216679183941090651021189174204594877467856784513298710300406655539623990193627349106608968904784456307379720399498137872403227463834303288382178904142640611744583402320850502136687199088426780307739686689881650921520479860156428533531925225940826255748003578063838381603385070707505089480717454998078780261133947356093297992225279524682477673663729809940946936726256492177165954284827849137191996413752706099221016116035140602355562452831837453812388408742945768614661493988045065392576455476066910642811822196102448320560334656444222367764693362427641628073088676967889511769782743436422851634963392243981263506525312126885025133719896245553785174564855121376260257034751792667416682633860942790694810112491065490470975104833623159860569297333056118802410767085762426013564383843553092151826563555700001207305833978035303658540804182902101449148330044082901770817201839366975727446822659327505076624196222426009028545437966390282794237934389867002793099268926604097711092266055357200161173049465056010080881019693924370160142186987183693591060579209558708070553189052001945427156125327258476009130584887293397049529853254018232798323979060847271850994443618876362379355178178579861260903243551775178513780415710417039221210749743393786076452814156083958624307753702013429466733732775048559299450157369379411993173836613476536466376771468488870568275825487699421058236210845194686464040240149291324043328994621896892822737298890164806426021730259720437655335061108115171701873467306794491695652886260565932046770177641192439724345236685350660383163332110512548740242530543605802434400230229291350288840138371167232488391688137212419165196558280440771062466674877843545335860659779371264555284157314406051692971004623643211989578694064805585914523349179947174290937585435665952755029775145117255621465041293579032431407940888582269199155139641198388730639554482159343677393973105643930139391747135762833598122184271891631360116058820223217214660055713189566041781003056630506271493480083576482783064216350451369703151462959014844662679291637394751566943690041131659045802745014608420287108813959059453373852946299644253395378936433374577139285671040468977382618267154267742246982406018673741888646271529481357772999002234030729217246670611283776687055327843877646169504035910464545819194770132276167406517760034344693384453240472485953591178659286372086753826154973152253713413547923945440604690471257843102003143657511974986609803350416278343124194979984427615330331480339205103141780482996975382573532144239765273066615107402778761171512948611441205267196841334293423512575609299874927866928840712234266209528037727117091493778986459339233286429227212325100806443345746871958898216420036379109480727225248392803680810076096709574411857437246643923705925291186194490549796615106089154020911454222934365952505330040082005485673715821444915940029132650749780651930378139215122955924080834603463320307355401257372425985369000972045768097625476206846757216773813495152614591761465901711741288782031238637464055115358135168504642316315458622363273105766768057932518348694835472191760368841748178282810390678099992261881204557867769448008793711301265780175510066402746791837961594348842588544029350872543130066712122997550945037814455746189660884290025449814850002486008582863605578547229591220159741289591859569668951501122606506740544396739554313403521421386126037369140641269311665532319025222316017593074085865764603218096777999794159890364957529836026978585210008292238402776737051225698332854820198470565444959422747755388085695404522023803582104218594054690947526181012485269534945384523938314773715653834342009638858717558859226949828481565490254120244751603437524385959798612347988594722095467028514324000192307850000983096877758498418871409634282635404409116314605850954755534702433283142115771160304280255277829452290098174666883025123485188637600745828657108437986887644919568922891466070648708805694049692941170815648032728759377222260956749881748736117310677368244267612461007687954006730146599118708535387803926697175913415171211456589354973684182866665947083967133744940956754436409092278214643529934877946635167354489539293386093588091062038256810124806040901742711282021654779801064158781490317472942891934831861229923882143327824037835148862168513861275053606382120799944795856489161384130700632394729397558819320564715023083119043597706507539436535928115576381131720245540607236179674905415167969857646779511945556950601790503739547837913086269489970766953148890677218910189448724829061554865846100381324290441081449208928599002520560473380070927320980204483170372460276290228078718591621272225721467698664077113328841633650806168420541623015710981572751340879776219300303205332662058023304600730341055663354956645489405406989704334660523019358279097687698253899537433962216679370309835029055224321035438939057978970513435818057072400792046664521135323079663849575890888131546564171471385959596384915539476910939890665257274386140794147855723141902946906934960148051126156896339629457934564881050222562484706007279144398976391705825536689805284540357805515676724865216494771574358093473738659248918464355200858922337340029718039273910930872081780005047166666427534258930098382737953178297499284535062243687269378322811902812733973852365670342573655525896521907392214714543325958004888864212857586468973694627873750031019421547365681301013411815147658659764146554608392066153155286651579780766520607243095913995666727673501014619673378561971178244781580127928292109536573349545088691529615008384920464887873875851975149679473126215577413827038575110264598143061933837620778761868793768633239909318044337381077478826932905802172036044749702057889502158504927866065115025982031360910551719860748145393755067975028630315212087486994175321501224070593648785424550663749341758302686624338089903230052688789911884804104521522654532686352732212350102189261770999438185296527265985375615357335014476540617599674241250908506588266429497923929688399015121106314595474097422724320167275938560918578624526843249915450310511999412519584739295969164911500198328812434223866631395900333905407265281635026404692376801759235174914734925332436883704978070086215398967259030586400003629493338076087509934387737681064013828293667261567011440064224513392333198192297830708756285410453938550559985449382553860782836015158351403761249491975996205138616930355183692648483238461735528318715996387255035199636605562957920456562712003496835454169613102006264480562416986328964360309760969509469417035334103028256361815194968588939570565657777285219950756928866111099750804980534765162545200865457562884519512528576435015183021913334203379388860980375308853948486332033922286573711884373194895908253953686615087131681022736715963741661507341532034266696889057236176182095591322260584436615104704658412151437031018016009774676768316196721414548614984971745212145871574370044550076959207352933129228024465157207740142349633117323719880468615959023984403530980898896894971066980893091332838759796735043006596329625423463752543742127456627258188590844662091654979462600134742019870687780635794972084143073617082373497438088667615520509382230147989677524792448872922365544236763868839341257269756903062857678089677623387146467066377156019634265554965620571226943542434145600518076667157520883498935862003385742038101342773661617366783568593901062277331345049443158957307919814236029591202784338393801945438747756084903091160181159676472639420058631635494578649286343193596200220132713715582953802551223562498567607495384943056627212664403732872129664017160297178078426725015658194219525383995000148362423108065752089534197069302240689139133177514957165878462693838492800867870802686898556991469467682541075319635205823902574821165678402822984758501875529057349662736133173302768357767282325199022020847944801849399726574106207976614829634258183315337413190013838418294568627734661873611742064810597723928481801982298354834584316288802167101069860084085427857619315199541648314657888160137464066375996142388545389251153529543143878688395845096028189932308359098320058715304256145107292255136243194914325167199003434791763361165206992793235957819896110144888894370813571784828352072593094632776572184523207080080019014446151604615794874738734974595561877281194726492362685214152874561861536059728571558637915272357478011828114775873163689082476470802423446432660442222750647717015443044824808681855479267684536537030368643616735896552774680871077945813067124659759349434815877855912484244930683260471176251061539658547056388596130477405811437041361328775443081925089479333824148117402341262365432092690457346799748086284247408393938728379161271410082313317915403417115517766942878482109891669360176499529186614986100381886252377270328312581071321320217103860108777127793560034031105920742089153895250053914308077660968253787144083897407862635863647400659625745914521420652563533450645179909293833270884680692286480425841152771397302107797268950851689538948981531478977580098619536226023483583167743005672553526288095165474340570893152726917585342671399536171272495909363150103394699571848950853248466278622348657055312457622379044472329735985605098937794642956710100503190250986423924910450291593566202022370901720635991686029199383533548640157778753510290216602845244652204521084330107198594382762836968383440955592733965285895911668343853721544501304964333272377309560023519116391552948871855358989200692842217575339726233651960795925366399523207077861296261234480185408033985231655402776967162957262163673723423273802180449442758389755161246812623954355536257646976427135195000994561801433782269917100735448908442117696362897642460569382278434942295870704026563948216664291765718352744852550552476175817417033446582762056611109662990887243283746257758219513554370046160258339103983388482004800460140237075170750255035393011905499631757042810211499705559984423357505496836046428594473031147507652202198948957713042386194102888704062418073375566146764612291850971315225805182395175664659645698432686147207705182163955126179020565598237361437098329183584988607573577804857802125752082548286366463939467398837734533153285910910186729635345243296502200795901097121640032543244682109530840371041249372666384428350316650731377719357169591449555358842907392431230689437930367472286570155477039615891690941597353358010758069235709544870770015267120406794047230160923497687783565326963152282941800603728462830876976113489824036811584067304124520015616687556937246466733690192429725763278154780474564648297160579841963307775304685227185119625612366984281719614923739011335605546897730563496190784885736085975956688956190982273535872040870572176927185884351799450130716814287581002783946482216652837128970956004331904069903959564706997253299617009390103954368732804061552736152738638240061806529071321132991482941069684799620020423528471556843975569157721501099263599547642082952036633749440778463798387387880964311213044730432742001819632821882279713951539295360913610225007479739763088826139587931596242018304575676366552724554744317863323577189610873918751235252246363024352361654192497372415520706009143734649676929574575780858796531724098799981901535897881899845509676155953028181965819722214214131590465786581754854661576645632091893853454250596543892286160516358240313723432579096643650646325072200871228036986960763096752057029490522477725869498208739361359029109757168176518343050232308866101995392983311034078303862019352076733286954550791748052159450612183621261682256473496769267295627902705549731667365413293809037180821772590261794179178961861697467358596333871554572060589180467115097262974758058268017377537201233619654940951741938336678691871437801283143228441430621814361435692832023271965008832263795173775838182514415711450873533527903263485877699316849482244140506222026020576034506419790880104166439859707610525065343632964340015289502787730385088073796715622782320388494478868819508050159263192725139704453385135256322840075818980776748203037284149243093221538074822954825575576564584586433331539674330366406749822000557929434782421470468854638231832533321466900466417900365911925850187838390991755890623331810054159299704370296685476793864016943166582924572706456834796362350324243944572450364504572805979473379012219105825916473603129872769068248090643400346434246807061965630228674116783714772442320295488493464648134042326952471807133342894102393380471931594266856830878909521124647072580907317996815966913237072756346057256842697887419244592290376723159084176749650549486409562393482965632384578598044733336530421181066266605162295935863344999295116806129622687110883205626903834792946988707734856792136371939809020060525481579350026188400473657521534979555250614221031487428302826605515398485532785155568120179596532617736639610263716008437964770168808990786053943129956990625645961239060934372505242277880114447253009098761232217346238590003032188001952017818872193008494176781135002654726346572038425756713406345482972898460170606454429771916962952453864658804738074375175955493937612215289153225811940250520157506205494831185926280509332919251527838023021507242129071210360653315721985063173868844945734578454649158122041589372617213819087388288470117937735014084534122996956501592290611793036302277441332350486884008091381261290250696718482097627826396113005151024920691671786432448249452788327957763616557557408091895023637030203114038876783549222946440167836112401078743159290346618879803680684791046925409351255296500071106783977567673062005922885161720044747125310649735169079539174176995847714348953484331806635993842040816802047504885311400006556474333454918540159234233147323167227238907646768416728483177021081388023248106532004378245248892797169145369580414072421527309340576949146978971346969993306837512323058341978633282718274603511292209196170004155795719008468132919646322777128742505894958882632162503996602276368471848875739544858498521199814755325515817894014248547720817255359133048147315722174488280111145018603840615203819575182875207803058939017659589419592397680444024115291779463912602749794534677193787602129544900614632427883967073190833817775511364882282567171353711512504052531865062714683486149136229830468176249081853530256179060754546768625627374363893285108740275188290727814983894997120536896698852334458230180379894683908174052383610056491488104390272910612244803769750378204287935023092960373348840560122405376063240334775037368395088405338476003230396266839812848333418331436381320519325922987376581278368639787331725259343728960331124884271851020124946844504478974543071575989985122989612490445242033521258571742109553939322600977981748988534090438727277830706739874798667819688772789233699060461614215088284898283112003558324628047341044964524636556991370155610372325298033913325682291926133407495473350637538782398690190100616608346412244194120834297033472728532848736086975212529577328656308720461446857887725673405918635937544922696365298547022170145412776299389826387092607186266124848594392314488405857518603056608958596478010198524612682530566970524099814372167611541809306967628405996065215230569438685558359594879461073832748120467196655216016161276635380248409222471938008991262457205223560652754677737116926930988571120625420256194151319896976591355705182600520142920657459190404962245121800611479447975790847696976175294880431482158918645327875853349289015826381265444934777578822890750392777599050042677200346745131030257853650642545716151053771747825693221473376732650604151006139281914257946456075267838526955227400743696049156821717140909400363933883465558872345770316063975521866408169124922811413372867455869435142301030877746285144602668513134133577302753308910609754418052750630777095737796365153072071216735575319970090715895556752760458987645191214521114945114134755019167636214726403603982747193091546868590516598243700164655782383548095599268363568907329221028424167977927095114144954245899252211488233584959866405743908441299607732964495179675542328192490333864500124820942658279462235137358687531347472770512304306502654350509945450187749542837944922214705130727132885085592145204454841969010886343237850552617440547751440380492889412158556661892022836872706608271933333882956352105390219177760198370442196743765669780628540631936540140775503795269294423848075576077391117470476939443817338113952118372132321227105605557158870177136263433144934079439770020322786826492204441327158230213975121197574171829097683834677832550625375059392703543912624403403377412969544554134982758154877383831945260440348147822600254948552342447086707810574261239323201134003205166890591313217805022889157154308127555824840298343217424420939237682398358593463842339629063356218934548384862562284883472541200372011772665757027883619574801730013691334095297699121232164900575324860435760198147792621065580630290276700195713494607886554216337245228472046449771867215489633886250976354405521193091491767299944964203265555540668156398611025058683808518627817105359500308649313387195258900344169143583652744063443906872231168233250646307420287345026326054257740976751701217916619891224600052090026178240504038594486339203393795388585711694411036772424362449206397253771390189454848795035534656755673876931981598337060533890366060772393799068860716010929872931047003963709710914416033403154276946903486796525720305473445211545688472685820875433711636425736082382076000398561859173712256763871762314149090706880161488886327659456509936929707925871912896523034534307261488103968490652876515881681894098041287421275982235226658784777424526032989414747170911793667781865857288300298909419778492395573506722986694017864420516148173777469784277443381482772363046708884919126663709946739912889873382736282908870219129591788448045332124706168115088765465620348879326878089045273893642406161364981394655531457899067637557863414716500646651894343607031233928671447251395888057691389144428350737617425958206817159681701294076100143360857405879488045981666810786700905114757413430772877984960916962886588251658333318399410883087028053214611680965159927934126475084789735783671450497370863019519835867331486791033725206775028559822427275772005318878215108898458569082940686459355020354229471630565066570213960431519436972626054555164649541099215578787144969141730301669760607756528776884055557857664457807530051854361474114865028068592044563474136531441479418794670386052411626345233514773216793488766564162440924065797524071656235122550209277925997690550307642918944407996248591024207211600340697534299327804139858077271796875890710019938703977416749136119218801301326694412880258100059991332930875651242988149711025413787635317689185720740002257044057519199838753365198451963411130904550423804782203744657003328621985591547506709576447977388140303100494199395913554948022844205166419617093853141163325851841716177107163337474220353068935168511411667896386186190557552374710818333468017006359982139391314162685009946308891582785092806461048729379426704391094163896677808890118301815296605488685351130901453547037927080306784867939833457316180281021741075561742018337282451714893496244405772795457027738831936453025691014867841276614173035046546756864155697258134011036780035061172334585139875850266308810291650787292957341671635685728045164623447650922153904329638432247461866471926035715640155419657296014012086248328533316234468214392828599702577336043802562964298135120387065296109329421097284185430074842562567561197647901140523937013791722377185166321647063691796925525005523498130430028121432285696242035416754406342491087746219483137598175533030176286831080302790289304636113349853906778314059605174085913290824653101011821278034291937661845147042874409254866640014378327113228994764217010693362028790530597690496301610981898499150866717478054874259688296634989961490202239013838202161868693577483652006076665129136500107112262336270423467956607939103976390382872816831211586087809323421243230529953683032406034560754756969734720043252347303560494525371371513485239183428950280372088781821659052123142720279939209895140272806668636897000267365368031358836530894463743623062319710390301578899728353177156504707443618012322704306021109260555117108837838188474362110578333335999281633031293968239183650036166568699844035672831431529740674611608220309694228238903193916937546165847854304278916201617611292558371715567019957677236042727009257684968049875841020027119614730965423677900391450932600740944368488122676390193811157657361859904285385385295568021345837436536854873732825804931150183166436510446230525603432644492104263040251287962467897324112243120245745675551550933505580987585651675987841460822447742838619911028099840500484567208214273202651195071572072803520370360748390334106783938205408234003933096338612159446776092112728239585883415544707544808262311237500657384966121814924279473416389795547995036290446735700116387981185255801854367329766344503674439283281951729099812804507615938025735196368877268373370181475481772087279962825558669996786820237938744634838700961449693386383754367782191873075451635271668623162510684475415593870565974963495298661804444084528666625795193642173032411544015637663883023595527728447562743266243740798891330933413404346369258550147988115433212634017039464575473600984991201355876030273094216652712175334928567242742302088227361330081270578672306748685114884714063885542962520767525882415813310080932392635600529256353203520858008196785799855402736538843543618712986406240315531824569494284677857345084249856005511240321719141850913179888223516532468370255812847033387663553036178165452239046036816844483130184850309193640611064778773199932015283796538670735460340775932939759689971342365925370831241852257847671271835051654043508271971699890896218417199229335761365954848174442263653919224586209413185108950265422019016639348271658313969833703326003807375407716029549075398701891065618014066426801424958622136509510131376471285441211886444392467611338216676227895752363221746937240629261988447890778749758723399567922892351448074133958664329915729577982485282997715161643768713434020278085608616745310048931397743090995367249756170329324993478526408430162879251685519594467613006467396023476319490586113330272344272427383619945347591278450819852705181587295809136133995394043993111705467447373648671214295014048246622923990279196890594263567846082384616300876397041862934190386907086417435408030592168902956643628868537930929255175827576732922542846081852154450156233890085955178600494521384750485211475428942231671845302415866395264786203465278413687073418724321290730023333330372784823444485691799680865314303777544734997364647905934761683374646551050996531928699483442230240925810042898048398919378871747027760752015290181249738946410658744147155752929314756167763566158014680824459361595674769831701210030369845882593047971253511249042768447951135877227390113985204668190146167280648867409005488178505006816752668870127825240053949914300647788631580183318951506961781833955125831635219198271308982276411060779562355134703820741164342689528870814101473605250504558812144670070427539673668866968277597098796865774456131475346396539607061416797746468756406803248430222620533359309089508014850348281625687622955303204703841531191653525629158150179464491620891601878167698590200503108765252317932772336039820254074890239871684364435056516050354790722836424393052175109060641754250059129300531628482011277574737629915978739253157371302926254279437691425961090163769127341472403147102956084956960090771858374747425287181385640405344866297786831104909804592619122311174467752050120580835423306361394840500763506631501570884884045778261883525938199088081547798785514948857537976485937102729952661873313782997634617772817751805501592589900938781870278091391472932559951652416628683441338532442666438985964239267958858848864491219792482215572920173417985550859987762906469561273906878910205989470691768632432812202135431197706889027842724350500013115498636233614417836417811201533067157292972807109114394480305620078442845990911185882079787590105744686714726032490635044900403912628947128855035259475269426054020196403193745817534467779918460926412668801045586563313464385260009874636416294377994633962418279378381892953769994280591343530079763085460550108675693535139542383156398737148778113561191096649195268903542355925618277291630406014781949152422476246162459523693085746080759802600245503410718457168174867906512502411610686246357171927631620046688872533747753198648562486062045911640966305285769652186933785523455288433310858213555645916897499671075674379023821814427622395909643714023042917409965692366994256706182986190171922788368522537924777819921011060517465339981097727133235161943742928677988996093851698188977848990815600120516775427509803545778949540674136237147170476693288907132932345215945969971702047211847149553485838566033597156336411238045833873857556910482330149199807732473144378068476235387354182920178712992620302514944119406651136730519714901410320172000806812636720020850125391289373314320760449925371153232783469633787427885932780305435950551446588932034114134874890003404213522560920896236293337754896374718307588816417398013066707949644462656903578186090549905825586482334457885202085551996643174012126055015817586470703436628285550249659325523097717464195309327363330963644759724794413795647554748071294707259684438184346134270441866472350498026078849498990443070693622202826831442601818674705172766164941146659197827157431050791910670555797968995287427445949169446613080516942476485451565583343746818005290773595887187578771011674208094886706805143550886296729988447311706967042291814000076532883542873135059652510487623071663829275849652838300410398778534423265898587782432265103201683647932238354092044437327992111880846822854824183240270391778132373901902341939960381354096698220680247934438857861029905161022565614812111721882253439252305916389179256606598060991398976751866436758354952727305857180435580280661607502830385762562759293294801862409520898451853995548425839796997252168337446573585800735470225545478094732592797595378756856672420390377464738052328949153437411230190734455291644846994938720430895554803781588622840459484080231623093890307779215176781455511950879657706411125148945757505530821673492815401576078649916661996811023086780679115190597025591478303056498634036190953481319420969185133635970177846554868882484410303020821147080993139159324830380237301951324450138224891025890174966191908875357456952947080392756841417056402842039971353425519248683151103994564583218616729637150849483933307248512104729917623046914199692803728735795943632452575936799620529029142949735264336324918674495297600755893006737950742519234746348234302461606116566047134786379833987052061839777308765444412683705342972493773637563143418471330589059513927138883923607639902531500338780345128377572136640216054154000757074221509207054071860976784967994665433147294573680022326473487449623986893364565134625139380867206967463492561213294051941009612428662680603177611554282701061559950267738081342929686187414368448327709578111299024491857026721577117098920955476209838710181488719899062599663498470819356637755447262406007566719382321128954317067322060030469936089848367094648937530727278361491056024310951067111035205920993833169794336856277554657825117845429999334928932567065531216011662178278346673760926891485822194827491257887050579332953858838717117078220627843970125814984398689618750200015032554286014613276583070041542185336535942055284328122357292447734835169753712032864271012527009042396777431907086188552639557568581495371325603256653443633205666756545429343932408788243540502406163361219546893986492017132492315776985762796079190372380052790272053341404999467841668211986059952944801035565369931017838285753184767850874933567073183085858961244931312207250388086499261637553931499052622867536061962238836480377335731908524207323912743776144479046284109066293414012082486835345076896236519740239108866490894748813974407209367671094320171457478469781184869361984628076343985761913227796874869928393211305996366590479611168404530617128466532414546982079933708966764635532825315003751547645084477380197358362062181996443795623724495849375542592609623891515040747357608842569050628495271758675699822590647197415703415196960103992738479391402946352414838951461843219267634331682743149812516893664063538020732882464088415334329626684990935071028737907597360659848124407743826262756163448628470644109046439187701236804259830642172464465070127516507214413559455534142999422400900798743488557273314068789761924874233877220821044215831053124309124464829502679928160606692698655052447178825249513843083733592988463980833465714950692267014954697671201715183372336369373618237237711615357388127394367874199681210304612131589567377572564207496156759249494677633574766823978334864604744781579499234593551324448482972613245735982670769670030011550668235014941130883981511329682540529959893329053297208244437679300247289396545153878296537985839838714737178932920123080624547886209573262769697843689964797792791500303828059876951405687478121347188687127269586153314257270168017711483246469863051330133663963414528085381797794502684551968080989128674817209955177715591285025481593252745422708154726977853185375270495278687064497758148068734843855025645931547674505643213609158160061315445396952733233655430129960356698006194379771825551083317811297662084573443101574711159628195446393038208218710264160470506553743091671027074417609607800739861569861112331478556911631475486925892559388978638075034405617648703460152203954452914989651247277927860915109062030934517997191588653826088135702352644818872695763017981623645781951349293532378889796790984559507841110243527904081516975314280345774878872926837879643296263219307067852397052843262421175728971854074460336109455163804396789943194962590689236330788965807446395655133347337226511503107326757561448566972086282380401426300204760503034716109202781285283408883206011375176539200049783265974002622214961970741665218524587816769300341323385885107929467883585717386677594856379661607233163135207273858942757819754046512427827503006704809786206182289874660058870900409691730160622729226767973893270448899891187108677210407502114358664240060368454939626410001718396120555162768542045394542804766085315558421536082952876461543751981822848360881523902267583946440109598714474140181327170057879617255751450970150202550603486343119290291743087838282708120652899834401967162235722796653962239645085739720941490472185195099077265524558331971781329064462885613247241435466357680086489814936682285509230633488289454412260494161815588138123129856166276902254622233920331410355158643006673353957706321141897164447762683429096245765514102283391227005684709561911337534211812923415525812952729977017995025184508761484356977399529248298670684946182419631086242532621299862128653539057021929379055922552964447120734393325646769507080702255412192563872093221744917275073646055262026421547914582539932078175727822981007865632643647089081984987782697288720628420113075712119039172198765669416930991937830852901386046555077381848718711624661041959605509389416042360325050194723138334168721377446501463274844792712295162338546327909107249650214615487155178941911238458088664741490699974115196195771582593092668731863776322474497514674715099936644958052338636398139068479601865693382517109085815927665867702281191427803435332461800552194204733300543944417278671414508237369410952599560738630611791721718779144316589612308626805642283591605437728715838695832348889050725899112558536986566413526366202619896499855691767277665126739211507726873228377017362753287417066380231987750827985966801875046310378954150234045529152653553312049024092780392961500012440376419502897747931558210680055403022382590671913016047192812323490006050957719173491288632257586578250780746695348802940004962158212879275139788649740163740562885792368059218781597889952091977824597311877092859132059718248853218683703668129980423126004060659151337513341364462989240000806596304039274353922482599153732933523245092986090739562226439328462328845865957077990958197663369172202168225858106231337589646239981557175612671760684688528091296458893455688412661639004646967769313871527494054515563063616435452691489399836933954104873858841806509949138466817746922157860185767387357913799547349560654867695715549858593309940632454281082275369128395231202812658490178023874173504854830538645210392087704615298084169881059650157702692848406403831265617738138692669986519347106193349544980115888703056021593279096277083407119888093803960148162702103629186365960674935029128567559290053150806119357380230726900097490443330629798376522787710935919121514102975167233373685633953285813605818565434429923684138063127530727283377318822954416725898867908767535324160420678633765181301968903576913740934253346932238349085332466536745380940990044969047368721315763473625463268711665176338925332076017147647355568276489570227641198717731349161094333878539327244691265098728298801328065113900338162214007805947352749713534537999962717214107090390488020070348012582021513563935099755916448057528649201601763951643343412415501125551376437819820200135812217323253841637779003728459648494021760564075455836428931710988223191630125259208278513036895278580523370336003823337250868724521355520678541957949348455158158925586546603930732354471510565825945997829765157567358825787778727033231061697643855489841286935026815543909630899848779564799174120427747877830076010891676770142552452239631673567438705495087629234808864821845665668899242092114923580613704769721440278614547157132220373754825938225228382013849628319879141599296714369860361800194320223056731559097531488359688608187507489203337227071957377390230582094668383193752393948706898543756941064032465924465353436250665517831137502190007484147365043388842171244850763326459861353554155923894577647693012885743929574406682673785970237769974025069020241386497933816307423212268113964496117945384767749995102004342837655010507530955903567593828381069587588267290927876957070085692374349167412781732602943533348419875924928220533045912130770428700193165485944622589548540489447592804274046561475716507950155318239506798622826061595365612760713083777194480507819553553563711322571485419495092785636307529401583177871974751353189493918154530978139635210087710604230679518245642669565706263594579819127115769333207173017586943541994441056991884328104735966917596907696378023880545502588516671931814052068689880121875822945603704201968482311345715553766028455973646742789334571009272831638944063426339962432908129248489296266472795617594402410936958872037529449969667483901577498872046472882966409698952108547783794473622443549448235994199190456805981776018663917215369725631877663748973405864369886352719322391321183324842818907370916479528425537941627298243917035550902341281918336194672188176628574415928752415369574661672561958733596491192840951772958807934054270148986765434850326391639664943046784981881944659334213941211277456230806539823735026469793739203203285111896037376339580369702827869572725898133810418704365457280699147954948501364136170829671969877157153642049304985247881018602729211076069225121904402582229716167091398097646552560428546787962979020770863668679107024200338117491337055175502767708408291133435383467483511678480868497303119879378333359224329419319180357629860677738851470444496292849715784155371710724023287045650462242407662478004469226088927776763965149636506679544549571436107814775081898779536245142054651411717617852300107158354726760882913403122024972384217554728190667219849965315935957265823778217370002497236567145435533619579899440672780080997046355755861507891327784056890950700441820287867155160780698595114722862861661426780568634935068634624132738293808104965481761364493653077205965875076998013276121393026850816222151268908545223924835838076872423909099327466693413537698286467535352501987948745707815857221183605747448345055673227670114807763903954825070884722200805126268486428088741045897473102159894467215794628585198913353459432564172865896595189759071429433506129723535009248965244395645349110121109858406134991287793143120887289537627851036478987978884765690169418830605265115429261759145623443177307428251780096661591693716253615523461263317141004968577135522138929480102490433567588518983802672745341302998702898719249295387730196722727002989008245234642212660666248407476892430855706916556779583620234691253380014638559428208535057039148434123881875326429273079931178703178889875909710342020865752110692590833197142887182981517834297069319779056063912334417810327526077681096385723790605905494901305980086216130018314472058872923552763988032607557681673545842291598917594135774838660182710783569470755588021702135888620854548697684557801131404847200245307452573645629695001136736103052474011165372991145649358515548744504998456373964456537538449910211097401200757740115490263851256451795287613177710515289733539507289103906300871033961767323844479763379241022228189030513249042409305546076393286057527301211133296456853848413765010716160441961586073642961474301732884237184039961543988183701308529271899677625384122009909578632693169935267693807721102690982948766157012106926055806800141568463681005597909702466962890162132616981069940391669779581461152541705660102137232687901903399120792693791659291869398291902492664731789930171030937359657049391731963443609180778647972321408999219814359226653644317945659529375953319709942163879700437091289631254229281717656538867329384677402837372189136607516797091369285467679224017131297158456855426952399078627621423863887039079695509753443213132063400177742576994719078595177594562741737443545575307101419180149780146831890272506530540283589471332531248804393461183566219714676813890563695283845211091133911515285700032134423039914428405499249406730685147637541679700572018592546697922860400739391296882306755107212999459813492206460871439307464935550344742539105725656061731273273269996666836876233066674192971151637835945315977434479756142576636852389362243728272255353025529990798031451339921764793723475430596765608826959457522516262885352534020177435465427974099956417564407632797063066602356407815202907117569445344633105836368199007164808870947099340117289319252490003127725328896835294447306212280628049375140919615529758883830512444637920826154097003645010220303689378028090171278195540233910355740281830985680839225998928945320832856229389732482943424250068976222614584656766785749832304092998861696376772386220011800701099095358513362734739993971467277337022703061077857179077316482121155089484895248658551687808391756549496106528841433553371795027658450368063506478717702169990960856174719585509651004016703821643472363766205178025808222575298223447714155716178233988878917806789456739089537976030827309913781892941129893927153636475843563289179353856882116477192289059291933661478102842703898697446389461342736341906874407799152542116984230362436897843816921441745744447205728456824576298585891360140250278589034535051713549222442265377977282657013244149010884456779976743620910512708097614228994555562805067253374388040137892773702813371036123739756263204790947746126440551912889184291380999129339869480462025928226102936793245040088521191857688561249501775791472620639843506101101349994984858486158433979823153467292559470968626486664893189087571533225292556210548241208612598823716309988635403035181507257796572968927872618391204180432931085763017692415916616005004523241430311730008108472362317672185745360356355475472015910121076459111946339942870321860228242519795746121304909473202717018694417346853354235195378276865963011295592323973794754767655914460264796285246386792593011129035515209677979498326678775072505345811883868557527289184125426352432291634034993242888693262628501414191972389491185715244954885827232911190897204151654530402403037930116817448987731796811135157435684224382759442170938405580053737426718885080298948418702894338753091171516947446666088697632398634599432615880463803173855081711749325183055885885638954403981670798514114712971387188588443303585467675491701504436501840754425907609428532805612852194385971803595408529986344134005243537098701857163304686502454740875875360777738301427571122262935421101757359630826065283522671568620239504587305860202528336299436518577145484438471215178043727627302221695581697890742348089301829904016313264523941458404474749540899789808787861319983767418641228379888712439332592004037637043226918216618520934741439450078103374208119724907135999485351293784977670851425404388959470877118443450149994497458946702972512306020879420148931516152522052446078332046730639197009145562632018328197968197067921607518424787383025833721763929762234030939669975079605004684602265085831036336327427495778755396090898183516639632119510809854439229365969091895025894772608234477276283780313441929355711541703843871613144530951291179184847099685751573811734028546702395095177611606687576067443069497510046880065998271366676763929503722067275559416482044489642198965490712092271039221861738378584216771534800800280941477516630759803626283944724835343688343522564568266049185566710887963467978520611854075078308540705309238265223117310124582629156733545033887902161133753562781242531068154535591804631612800351887888248665133894001986951225863842450858457699596716474716821850266256745502253138601849610822724432401276196145347626307628660427043387155502015072979132825496874358175211822084430352320935947316571008326906654481794798553139403216316102375186814736569790608934256329285466627300149988481161263832967725366550987518648262621721095481095788622006887306925697434898625581122372365002080075947251905964484747734490744108208524705087214668903803287657253207429415220012753112930156418499893509164386099584222341568084958472052437447130912903067550943534232564182610281583699813147884675534280152302027040999300204646184672769188458628135858201472377443920541759154620480877462791425992649640251378310124792106735073655768106632067942548302115153877909939642821436592502738447036365785740421192241320711071342206883197227738109270561756103082483898736171690434345052268186953452151412455672982889281636368082785182869858597395971226654431689234945213387538235406362453513872684635400472860001839451325493918419874726127924909135418509318067354845986275610887179248369599274001551932358562213552650370302644710536892677608952658491583862809122172738347015417145096224210104116060159611843822133629881288215560539073869487021816176041604206038778197930827307123075300432429430428826793212454341176171670882868248496589056268658047684984269725429948154355108580617791326738509053638581036426180968597596459952552670655972131766320812194926871805183965869732903048094919777809086794724670017831179349554088844792985507780151695590822734593351612715404898464570814960540603135481158994143323033435733130673358898041518359629181197482851923951972800449731291348970120074023752824661508268041212970716578559680341352424623294941193678704836671795169934620098544863634322772059883426889662031930774990266027458108559290434935851686987218480294074844255061599135192095714860948096762352735934440496978363674801070299978565961970322167904847941200571366087005733106372341142052200371703780839410022218711596786594101716274840728115191433398106350334229799490085338492346017341378789520250555244976036174472908368186746568075823750809868785394056917101097236039811341762117538377400758182395908748482162149528810395181893751116480974129878968662472594384763145455423938032321841555467615180817315693995802802917445234461086573707538535727963279627706772596446256860761855396859094767044147147025782723300136303680821516629471492769209798047331694459290241564380560072944441611024365414938098482900454795123077904614198551258028426561779913691911995540386112802241837563948289162251927938915630367436208061732447648842091732140843753018852008704890571496834561531587322812369210970156740115921646075480140719837072371470026851091429857953949471475388519559408901540674705463267038018292294577286357729088303284582841180469837530401277559631523843861915573235000674314342896202781840748047974671785475997243019873658422009697019602478175954262759627868490347188673078179794572762412817700171636427075103593258674406409292346778612011891841847375317994408354879890909258012648055364110030364041949261686511972349604993580164780285045574696449482629875573108920335697629200778151325319229099574252611534194074753792853152016234386454525902883706777530213544048728204312512539776653612312177436249623502316571134119040350231948045933780070990871215302262554008836163493476326451389653514389343369489992373636040935750670105184415532604521792518625028909294569512796068552585555310939017443356435652501288596698027276475676797925421185561935533352422746033681969255567994650728695427416643083203958880058057889761716440310528630044063661907476938252108489250550019437541791264429285391498719315263904361650685009457360581275586578155474985516291649623686263059413293822151156139585305388207785489681984616102451093867047098207820414198659660522377474113124447744217350120472594208628755310465166766675150048441251413799203703707118465708316387542002923285720836958447834843034925711813032903251494398674437217235542562463561555261992858003393242038458869548330334242268875315660640991859445471795906853872405064309304640217530485946438981346182224936441631910857848139602447043882188564479856471122966785580735396413569213422085815447969149221022297597858772145073602842177099027387676079695699852921748745455783463011201262962306789375389554927698206834465502065624560359543453130324666850335443391282229967433066407255756988197634735806965897155391085300441236298049307435157257687834052843585098602529770041747669416974998059371882280516840368479316485311895886728724458453669742373261657831391780900223822054778006032696275809303599443771067578331584056640740491050876298589930857961966110702800176249001770041487304444257977251119066069947848613393829488763852191665979237478392799601794211621473244729708487039502923753538511414099088875523001698853826905521672349309062786156938918594671142398853904489914135738553776393787595344759159503589894056440636852016822886242282223455581942104467792179363655203554027935661384443592831854129546930443222411834974358529706373586494732444448601960341365075826779854930088364150690647434585380298403951304547604328188809276877735827049773996547990220088030996584336318658143401114864312088647017318427710185403698012338468229937348393192954906761397483407817714590376427282694512799408275510815902208336104100736564354576377781456364311768566800958340021260687586749478154127094890621457019291674189723255985422559823449996724745407214364818662530322318395041103602317391094823767990136293562826876347365315745929113474134933784564280531106336186457393185642631882397680154466742680456321978925781035013620033263359334648213658122489258169651358151629321024632565716009994366206106163611393696482795306353302945653696759895566543812810679510781266510715038089026814448013508782766915460940022757807968280563711510291742901422630521931396821015220409594692861102434696500989744956115920312679780111515873469162365938835517770370134338292383172711986332617557922886544866607403548806724773376514027862228940194284811508849855626543447019532789499051660270164533851114173279291857173340087184972112145596809679426881101882441218218251743806860838706920358791082518305538557388436055075303967304082837673630612281750402883059448945417399860894238029739555459479147486457583907691693829533070766712816360137356099949431566812135805548150074896253425063761316791321204635328664454368709386189331161916991568513176955470831441502000807743780786557050869097981296144624880861813181964633793601011506097560015484552892811089657664777409173807511153933944648145431378848287618855106049159103980411367898688704232371216188219141356311950851246912871901391127422775770870001628282477146448014256546488811054338726665768410998226482706490162780143403186964122130748730786740282506323324665456234553047880821494306620707265732774263700396006336406163291326742475578965995955029627819457299905785322011076459841701695969964843682485292253373549630241318542378831020064088602009590883634577628467709294317551483260445751739976798729777250004463614490551302919688694789227022356360878377233280025978794903017056989448336770936550262089759698182996404636058670095713475896760711637618591329559558964864346523943128062434308365208851106804126839920816598026202375102462200884004425567279192762664487810857773249582209048052741208714134231642810405026338451828097085169896233190320838846460906802287340377736168233904836362309025111789836603213945821722953473755647175400307081678490638405088460063655006237833612606087519889769680010405593219564366479986721873673061324871505898323872745582061380555757132093461016258635253845309185040590553449545043927110883532559637378671380975158410889064176591187971408719316219542652819314265140470911960092562376237787763953303176208767659750205961465809657172628449838208559027202824411649472881368340848776770986821753508917769141695870004903358171963669363923953576033881373782656554133424503477440855689887431899256290057101960865273102208372828653958230075172810662788584735526162649498210270944009512849269886074860004555704938631135243313713229463651426085254563884473575198709492273813588056646409522659381546757586085444657807453029022323246827963326952827530231701018927129844993073226019653730176004176521215975901094596391237618649443948776005098841051648665706937892599401571458180949100483861320330381899081869707377237654775030483850481485856728198611694677989014267735047507294382470747806754070827573600640193516380279143779961202392558802716620979493411401921543725875108656732882582273805332574516008665722467934756546399760689071308848630973952356221186845498496894204615821727761941170932719162903501207744854563956100022970510781360283350033787200509168680826070291551158834627975203340094364769951172933274565639995754115694649007198957153484765941040178230500785445893239852841034828730224315733223195894616695058579820485542214004817917738690195717766766512723456972554284160814793762813353946141489896610423645578402367656983662321634294956778466155288150276992657094427300090033812477955513856430325743951859520592663253796464108323195499323654815282754838155893783067396429670526739490676927685149317571801083299031527191203266955502774716029820757540962743463625485030830067586581453915093524327575392047582227073390263941108326052291172000228921092201315628160025592455394127593167128459372019892108873637557628024187671523545510143112953815281097419277083820176766880111614024724213309834634159341834439394294409666027201203383685175342297799879260763810907954305236769517058811044124546312403620577907024601099042277427874662150053749654300170277648479150596281250466506584275144332507340363557507228715198433379518715053706116416206005266271843233936376242353322539518417263112668678386129171082074972682775625382949430166399518002944119970641010552058141945957065742841883107300280566677134608372368606967347921543773184515310895002412895645723604074408409421272029270537033730431631051816172032346819455674530942194196950132284915913030070215453342370706034254794373886011645097177335819672047526725270072462470999572307118125345687443663526752792960493705009349853401968776988618901993641438321384804395494329090214903243169775348525449501577608585507187219795352465618149909898787939323452401293475824009963219406246433385713060459593638842866023199887481463171928045768923553467503121097288074750771943560096731848247623641665505874452128608421094254985349243647530318584815567205921499765967354172762015637437764020690224771666142630816230231471405786875102771361411953162323726278735650789145380115986252202787592905500063739962029890042032751658045520827759999938530574848260016652944545712415533653475661932198825325420451040180905198538370984392035699942828312178831390778642988011986392774582262834462168314269433873669667132836304853176826745236829869339217865848552841260780937373096986222472756283890878600506638041083978938321570931567150228314085047006235538910576987883011166544658565267351916872164082790122394035509639340856863675837573939215935001040338913522855907856231230803798891142169283828153284213459552569777246228236928382287425337268904876943366440131854964881253133746328689416442154870047906621167614394447571257385625346213094356768012352640564990606230943519973330443375633452072573167902776753502009631898214567025510345601798239661991446894897986782120250736326390025243624934294372679495948241198819547239734489748706015423399337025334367659872129196305251806586351643377395134766056948397232425666118586601417830391781797373804638989227691447775935289072661366203205166508548611365208290966695373515452933991436897045720100605174269563264307601416332679739540418724901022264303635104561156243043021056681990857815037821671123326583109635594422523980582041197870540414384135997625862106284402964691559925526720823404984627902156194637124648882547596735346120892076604679738502967542220197889208248923168361666632902946882249226635830845142580028886408435305600835463025982406769120027609358642883989072699908240778067462480872230596165377316095864749636302744838890464306978688600900017214683392724783484828984885262357071310054685325000329068823336280155282424843153021616380583336679583294369299209582116685801684387986374090488243567963589508358907628340236173204610104033380948281996562823536227113622531967232894381700333972860227074789826593359343682323604069113516422327285287998791170181333992984418216017114229969186774023470532006758619259723249803212373494374792628858440612612073998897066984252184045756010357657622137453689296940288037656648951141927427757150709937796828738905972321681806706655178436129783419450549761598089599307371433257258034293319711732256782531804217028845056102334846497034837390918302765439489330899196131963573013753060532363554198371415181899888173261969689827758144098244933566816093724992310167006795393888920053782101128980499150938419980227418420335408589830625308402114748947048559382660470628508746607767600667613441373576654720031338877240780862705606401238391621495380902792423149931163017741188453051832077521593258211512825247879434067099237841826138665350026711483309921628692493672135597084052576765094726995056460097944469490555418432637134704670149851003922334922162173810470982446164452831468239935136674577482227516813155772052967745556211315347858874731615507905707217898403918646988811644622337978852059868696862647950148392125313326363432037929216150942926582617967425267025446008683080547734165345612600998735715491962061235120470964384507943492297122210243827706941020782874945436395548000716519198336331981355599432419988184658373219169100077675526748982628925005233959653257113445330670937496968350443281706865206433103630870671884509282532904676873352679693479377344040846945924883834476310805673559817281225426224854474786268793574073121977779341379123217613478379099375511719681643348664249632142505260227796128518680310041179503796633363932802348899500588145068468261211165805747795405747760970766537484533989723272248467802590113110488161437045429707106696001186861328154411600549013589492721669024843737148790097913242469767173863832639445414364808330771962749837980888724913671953214518898353081383036454970460455442375914798527039682852898248216491801905204618522192976219421541522879228640694467545684749127388326789393126688370743082861297138324130955096095239140353342378716158132914246357438961923894396434102457173744784605122610977689753722077015487018412494992716319477583887446087767640600486183558152127540195376649744053734536463950572233624300020571888603374332529174827715822925919036019373523895875830723965737683292466538992979580497139198260789555566846801890974034041880774891180843498865875122634120504413242606017655561517545035010932349813720049120456500716304979180460444941447079574706529696104748025173404798006101295076663272092778823439549982727182500272582843506158187594410165179055236048987124291330287224208811617854930778201602215937135270622369323765247831196758669803425430257887950812093996059272505871966310988316580977888779757885156893753440049941405924374891883401139860722357908591437192383933783626400949575568169162632005014362832539233728468414599400948017260654884941786962262694992300021140156301920912223455009992509965261441873281368148457998901204149565597403535090405770428744747375236934025365023018106026712185687903624756310195161904793697112030947929077159216483166399389083990292401807902516793048805038280633611994863477573361542463413022245129407787686786420942515856826000325650550512409637407971519026665581778166323325865041118563377260284264052438597127714927721777618770897234746271596236426927278162732266250602946343324150237735952204970873576882890312289248787095382624924773021849515684700774378182227388252689902925602221540919779880478913995613756688831911036698177909443013385181454072839620238612539412129568786399585087705423829980196686085327419307063066547611765703714112754216901072070901484613966947984394721391351560524449233503538423916028446945591710263418859968865845764617429191341588819834019496193612522508048580769217994374154883704460113399087337668484698929853405267228094224587517253012018232531750506474334883245306328498106983146436580290090010522078686505050177322199258369160311915009514565748513281422929914255213274092553975827270045666156390273523812845685011429875000495680218456283715452617498072671275817297707891063569753568540506656986318541600582014807050174106414642360215927667894010760626877472665703258119483003083052076778094839052678373742039220543379438480580236073161488218444559723730441648264636339429805202718472791050892876365121273947884967513327581167672291205698757374114022356328047095124170046582495927753883792719573727827809087568295286109671891966064026471223075800222046470446182353307789224259402737841575830831271349911896536872202812918397135662624362836477858240817178766085593287072283355246878955681408356596838398665470444050620752400978717608264014599733042535360215396491999778550588732449388069897305586889160275756079612681747008353533258853264494419822139910298132266246844876042046572903878145149559875883053019108276532579714388062461977488704105597153027083041041893836733445109403448489050411402348926629413982912346707636234810461211446575713283348792356245728792414510832328791252166709610838941590657268608099089230650811264846027291778182161275891890387921754408246756090086705187197651348000037644798601944077519229424767710858097775760697888896637419270272234855526539922349576953568795806894870228988832761100986191804697174344477695657645798280060938818233774326503796646086746696064938507356964935971523917099096360104037312287741190792328620704931801386290084843802980011356251505727189051096534159565275137138101143175230769940714394116920013860024204434253023508418537124892428686201833506975501975332093558220268235118568223121190678125566446296922623006768083146839671519677622793583101767357171845732046679770258930961791156708157519892727377534836373754660194042393172518055704145980460982837454330197023605048587626984065775248896395086007612349726770747722958436137382794830076499405606273600500765050898442214168721369304012883212589759374030415476779125118930892780574347997357913663830016451037319047733424195808474206608909706151448531747645062721953410637704156395065229030154210230794152264092876656675678103961221740279718422950267877206943978584633804491078922666143479375608359614581789008645913151700406005311587227572282806472219152749339438283035286455022575715612962268378273322348771788988573876921309241459716634600158246675062680589072338373381720763292539340605953270213142614947983580991804496407231037928925106666671594142834964124449458965243999156377485637473281359673393924612505976896275104977412534293006642469431094996767144277368447601604500711913031423661769965651471017733356837972254597541230004978054606171653249284512434199930339812044080355195805434284944008266057247094623627636672709412580934081682917628478923763479246490753988857378127374143889779080771109238904420449551168444168729582236948509955518133342801320302406466595757159423253688254934894319027743562906185056493710968584665610688736291042623334473708642658749913387762885328804385785253802849696204191814421270825807660290742856370714165035629634780486352342321299392303745837435528756685712079138458265738705741156011459342944102625667498620142938700305482313000154077290805279214671907409111915438354855604826185416549938237192963323187547048605060879091649621249105042118115498205461095040471831684469533443195667531044004399942928245553847390609531739124308093388727187001542494679232846554632279561225156822967769416660788203458803706951404554863292782410717091937823121218632655004218581566700588327935596089573803082727214202778405534665643565403417788293266543175304896892389995596731862097687447834346314719096791029670064466517282699830361979461541586803479697774254809715151585252973153143657484130353762924699549554397115378002695340624343755967524393785616105575387148477102190444494704679116999653030791902411208028187526655245133379437654904169522597402534857389786797422193831087825921331479537300605697314448071761933871798205354545627002729138543346862288304001231515089816700723244783974764451659486451316811931160669658921815641196446191909883574952882539254117624858903534502374229695354341169882872396822997754615967698799494215533172557916437046447521814585487582165779207363337413033021947707561354403372840142407258651185160809555654241523015722709488565445625745713539860785394067895445458653333025368492125298168942732406419528811227757396347181930783826385135905094727928533914693393623371418437989582541432012106598091565817295907144040926306407642353756526397132031603510363884302836133721488519778810480904594963902292314992747627992755055834649297650639175784070963614210478915418739149941616235144587419231044680117580647656538800198579093617159688087071795073099242185121268401290546681780903116326089527639354166192910482685376284142513007784649723342411262791937529349011195722953666442623052485662236025032182964880955023257375066431049803483106747867421821846670259058771032694644637467891192466283205270689425592208911749217717555485407694539837536625429541329245351565353837736341269769795889120018944577815634505859633369263814933691709695241099318056204150875163412694316938191771920856859259561651606355086176402287511708410255351196564404998504976379125747282146931915199932842348047317142626906948644217525807908308885897059722421178932085996022374644314563036634554535273571486652638917691436315455209241930122099300480763773465915256415948801643123944673862933826780929913116041528433986117839402293894035130682315401504154052961475089312425199517108046375318728906092263607898530868546502694814066666050806587010382710547429433669541729254705205893716173451994233676946199231574181839857568902569057408031399172540344704586965528879831179562728570432756832654175161442911458823613581638503343712343678756884292251642318077515272780047404636505685169343440462631562297183695564436845839294411395392771537491852229126457452468181179938625898469495292201282048245774653694091779837959716978112567368692659588920263028306363339845346314059579113470707465584310320754803351818208549452360473035139760892630738519693095610411934100703076917198563942295344180819348086259702269859486201471469449366928702630439426123434859066609692240059282202528859033237789803282644100003409169067944461248066679748336619113887206301783231569721329478426113216820469135405001321769681873022049810864199250345040581060141289146845382853900545361157028149209425237210725316753797833843374957896191433006280394347626285217960767378184846343983120545081594560605304110367354916565646419071088766662686733238275480101369609885354344596454324317196825271506267968097755611063858957412821254046514622940539960035026594124434380439939023794944032227921653232842232510511906020197993056416740180855850473890642276555995796078021214134176537026409360279998906208877173216488964366092440038824716204494201843379439239331580217151428155952969508920371201795445613585088519040679534785178366582194341479834558222603592776798427418491251643408520305651735238809482060471016038487254200338180154099232297320070747001574564096286957663131842959838105522649211222601570993147183119916974588586574280703749181930800817965509348630887699405512484897877000804895663166702999520594501077879281686305893373907083359627868902648795116598283452719162476501770582355925535121211390817984364192464734857603820981704557093141645171891637780351795618457604204662937847064316526040214289050818148412853563209508077877006196146597618365365025626475054298354048390920252102293945004563299593208659353775867857939796787387283910722708172357545215284851368325728250882891381719879825227884107637515607383033887385827453480918740028798331656587453049731585409048486277172166938960099752622609231253605739949325859108368252316938213366397193428381721164050825356860514469631572737256800137354666627223017525077524845551393394696808630942666627243021138741065836157718869005769237903334514233295318418115761921005312000668128101708023126125636671782702625897474626161405685831743049714667028855529191305645019041726537823385729863469204256460728433718655911243693571982021434957958898827964601482655022938402025635457030890002270962205953664425219298090722208887127064755623348711601848309574858297200656531558584242252620016283114408306162399583776248169241776224014833606643307209881030993017983601808302952128608215662435834856574125872103567552814232581147049563055474512991155264148594816229701216257117063780112064844578480368751338179460444800559018570727619003482250610146090725659979737894412397882652165523223981200370028800334723637466465736871113498684662806585861752698483288919294160303449346297070613754671304850549705760184982805314375028269136749147907897099248859975495668761647414215611403665958286847219386019950781973797327071432887433338137354412860103526875423618566988213358968556662360385781873958597549972522695605322628314689501344356499617861303191293446934303757254607176647560354715275362902303766938650378884016263368418814313760199032649006288430055097944075178062107621040077918940486535957727522351278010907957246638856004700037267324280220514326230905921161358821495134947251400620464820498771326183533358642360213977725613372327127718445638828554561754496797159687849479032634868122513206781598961252846456254084453245130087577301563089097084532386153762677292112801014859739814828753109970717024067950455116102250487274221929768383099745563020322826911241690580494477423177836353115224759017831005754106460123650919438404142582976586090995963402271787221077242000714223848615548681289420402666659396302318959461826236203805687181681088207329487973814259393605406408225295095322851737742710371883227099405486078173371334473087814313702579893968507863754706016837006148318060610164617492178631491985085842962871942216521923273743768885323354242150196711551949516811874143542625956077097807337733473663481785712550970342943741281976936258874493435861334780347986440172499838571218685232388043599309826440849161662909973437801071592334618753770949691276909735626052992573379881466318468687948416466029751554696049073731998948027431305497877341410147231503873805173637476977205357466714345573713713313785669324464140294819391985698416389445437770758980612762531397575632598177734315701900103278112641798589144285162371125109200156086230399957349467542379428703068637645910852707285554390503451084749038323333624824048891485171092818438971245191268189114161226338337605524590807870411786223776813802909873082842778608131836712015510955421455479015722594518400445143267016781768249162839862820763385872804272281670720472346337708092482952813226487852744613373169060224927291352874657534277057322527536609887720569871960447226954774475651314889825576224017358342938825517251488633820003129031363055000170683131392541617497981065235553044766939529040666952500990394163737462889686481228914077113417464912438373508181309745839835659324197969306226457248423543007763883691048920840627670147733698482824473521019855361829607439679345105660259239856378462221108563558004788480330190369600917642293715960277715530259283358254185363190065015287744531941955893830850047090866768603676710194849722677248762608989925779317504047291201560011600911621421128445015070017998761360692942333811853283524071218410397032500133181517776620464998942819919109456379004323487298713619952892881115918651147475765885255406718317318960238317720537003747667184082806784200531081169459785442292589411117104698960380092946987768712307140983510561210208594749325162045458003204296440699127106981786692602636076170282219240357780184539506229693340663566991636336859744098066476545454075828110591311992929978299993166535578254856718943428092181896806755098211866965381731516053505044292785647646897038170474254999236803556467580416441501050535099945318119758271781150795688028030376050296669755955098938253820371032399475598913461566789146165516413779190657447182460954534874169557394737432745840109519935359365157390085408016861111204473275850611958146711523624389463200505805606276538192480156271579808086892983166657764557914975500031283909910099519514939740073323876616730584761569312282453511589532074594604151554970059316702889436546005821166893946063796840531726813628007014894218163357041036684116858273585788952802371885527583111976040520519448786049783112979066069144277207585117951105905079676426768765511682577520226172061793074616125834199059705094013365112367899404872594095162400912021650762934728067908078218049844809059964206761360084720870665890813341358883889545981311779406987305081665225927243611485373996446615120207076750513653238841793153718832445450906825256504630458345484158012197352673230857305742436300981645225186716231655240422254722599123006744880103080724126333293927278637889821513641170676603038644897784402267119100404063141032517703968962115804811666148173666483888033976625312969621413999635418470575338275796902579043541691534397023938370904604830482184245244837357200507031972657026420564487979184773805503212138183160953885508944343059323054955248437852860770803139836761851561670063039891545958676139676959022710376716892496872244904380534047211979171137882704297626314429022494170358414865476021171805792456987164183466682899301301531860612960325085320076026168345625142154772094831493751480219748164016689973278724746200446319253807530023701519442335182336405591914349879791464288987514353700803047333026826090237785639210529649508056134704308207291265426030882206323821820648731037475053896047958982839020344292919353498590295400951328223132503467200614037786450293563283942543179360251036582734816705939318321578241750796531362107761460121341778823008452123747100695546759020372729480226282435664696160535937124632088114071546117850093957344512202974909443773423512438262520109345817702170616952114271553141913122765257339829531087927313165604645011437795477811321547241986889182363334444734931214858568468947439209342097984191315062601157771485822040625032068395881559112049344590858003399325863842761884523712651094443670384123845628719270276630882900653053292771690750124761165148841391381869300751477622721541291202313344160489717083807658714227085784292858161906786700624519847832662552694087338880345796818632755119413502520988087564823355918459017070855331667365172524052190864384231498977676103895607488901819342593518381359905057248715230325450683355710193216893174207606628194329898441661383435497355863786033280862381316664707217337665384405530925165528962214895406546444522995204459583785631443734343375807329438082037719596398162803129721420238319702773997366626814112356835388981658131469249504660335996692326021935415981096167195363958449371088402358347322306586185685461368864907930354358491439006809125932548219393721095876779838506141031718105070032859159388384838780552307987401086924624343552245217944163106712902582609214873024975413682280119976373611855087507086594989744582941375394361880575123710339913998426515548454550242825801688182340088578624363806699367985306702306851851436164822612537530613327909076766951702696715305326777619785556895631842525510949850214379255370367397086355627194740340271104956148363466444121618032548162849467136512726703153337804212798000012138109402397779589174559969763361271503598498406783804416386408541198683025853087229006664372916229189396565759835096275650179139902401349793856116201239008212058315985534573831043053843286767387451063140111480966806784646229294443758909569754703523654237741046797584019096302789369001280800386585146728377681358993107351711494723553349046036627797615427124352893793886204081290236423783834167286789906988265909599795650924534800195783214058573892801134526502129608940354733059760659472667467756780425817292580203494174715444427465833715613642955575329227597522169914893401870601930802043065396242959883465473789616641360565742309550612304364948267004906839112227174223631152322935679355054201401896200058336662712895307610874955840383760791660351871114825645492044898794965702500648618375967059400016208598299498990860566752648742671502531163418649079846808296257109722228247069737683012283294675695790009691845816208229810755070740047018070963239087310990083382176091265121040704648990134513418253797124933693878112524438680676561681895483548610465769343637797409946004766678630312614088149263151893203063174830627847235203306917025817484883525133961923806640341375451425754783003861603788084963641898967714564214736638387658516389761808920032736216308699256204647832165975325447585513419011062186995317330730158718328568843877357448666603443838314404592767021164324951783154879589383909866640987861710356941884005218613402442848784380564849446692903143384258862552136635476279874466151776315401252103846890131129884629619296730691475546024152428606078072089195677942513021208811223098315016334198016102643592935178812361556215920306805400431514463710663292308511386502054027490398449198725549033676840315996634215980649798816336574304793521779201829833376965827803335324244583622562729338490200573229474308302780093263101640263395245445074489949865542650237823124643814100242550984846596370873344376056416761213573879414705738815989740647624739608587065703595720765776833850061539133603463595792465806263298229338743371773743873599345928645232407650367496192085891638723098416173580463180744574388072580344387949369809551285572205663718091170025489936281271273913465675796617536838910307341364085012276507392009649674755531526966341142427587614520238691002965076707304282484477032923421514316090519624655309168873476742181422598062654131054007925708818337191649194710427376237456611025148123764853154349682397214527757372234938145763392195084147898309422516567782765593436420603551648288806491748615578732827462803385312772741637028993971319756988860993117019237803455659449392224515472203539231619488757212483852561237605676570140437093463242585455671165642290745864324177595781250918713922667735253742410050710957134904871314305621826782949415831917329702131248864848332320186849392611973916627311461956544117943466288181207548092831654552920030775102674526991529133658919582455840895136118413439377372787538209520202635456535760230893610161024514509544173313684509963812405981572140141414189205779043729478353316854797119832115795816879022022876299158315854284956062530000922399986330682081619165475496821663702303053140376518265361072784893221507686657251478708753789107645777973421186414095187387790894692661170693001219685025292400670372534446610518879826652157455532517795645657953225643009993157636441208862358578818089368545913998602650958344285420867771834341396053917454537513570834586630301331819822229611540735210070303445008172521600378509308217315770063484086863409478560923419700443525349570488975193230633021781752195086363680024512441000663293977932515574772039671059943541921398450937044862327871492311086266819619188578068676459129842559223361702296923326250024117777207258343750863942096037095392441205298592494246215348034987749995856365665385789114844430960104791132264922766966312135484210487998857359497401977991425589166697136916014867546379430140016414433149649404510788367774744226892042150977088422653242209969419697390605848061568404810757962159206554637205059456131249828767531101825367806164215930725926229079134653158939811385751706057274037359829789219651256527369693239654478968682279717294837182986788803277240489666343161138193448049640659355691922773802657667863510149353497072615323087862209677981557393381130278392819402163797388942861629696628444488768846757002001881607991176519297417599532406600750581760002974574974083930020948740288290258193880224420001774294266802708596030751896408404755105191284804661794439514988995252449983570607707830242518899933414094960446859539238171335841472555067736468409092498451307051515041267679065945693300122391785560690031946251694801283759046178601101964009344062020996310978539168080196101509528350017294737129284373784711082934507766920233023693307074529385483883890412801592721090463329200955036562561521690248960276924406040494482077502961555754230805399890580286143000703036354340916308732134756771271547880349501042767458242017915996612824182757254301016879205462668630291145420943702814710617977421672887711623544839830665196220752760692185638883061987681795971728106278937044893614935310825976679347265633207748815740518732753072674238040185080611406178162236090666838142965159051536183281790831088658921950034536287154492453149524148327429891127204282281021896989822020792829040310678130613434593327249203583482339633405591915062578543293559746552596290597622556888539222372921440648783713725635895830661117010931054404170987083452551604079666631310108588976626358601068700342868327294492548385888076561329444774408491026835513983258178026212324882645653988303357433949030648814102555981870169521280751192676483793945196054774891790041685977229325357445871968720730867582607107611123616620478504406226712438907347513328155956252348589945540615752094875693081830151510687846987816267100608923107555469861846029771652637880341332278365032752574662572720041576670500405134915951053919808472276034429420255555992703642176429693338284775026984039780813057177244256590914417657657661338963592162118514142568886094886816184827730400956621944614890951270099003620870626736238317706373771243778616818660404212299299045933533603038677176380836253117709614104211022382959541666160046820894611203894161034914392464991048049811151102181798093013522138041325085638326465867759817184582051661927921752122726808349160460724567669460500058328819664165341696100947674074539433274447616189190655310336257663883395033042206080820429355098594255304837897620408448445947730799707374593421802963004104319035752287815096539937582822315764041681784713751933870228918042011533754431921141053086862084477070620026046535815087572693595507812807745903770365942491350424871468816246220842568390378165699631092815600627289762705012336359604965220494377913472589633040544061250282232749139708361497699387103760284209064030938136296664158354037719975937637324992175733118660251041857242003578359544851699160532126262062813899573699835614095083728050398914663327410753491877245252988237697109912683951223789055900877862095823577358318302523447934995135674041622203961240200398218036610415351317129333312263928620022838070259297579445786822603865760218240515866765494196951423809793026234163705587159725224373782330887293395267596887390598862302361491745520053292005484904220955796880004116218633191104576600383597313282533266352642386897868215992919621256116441122976334970085130365697399125481090486950033835380304395698418375432788615079754552720641949026284719440165018341532386893220980617499037695172966333147417507047615086536339002118378919400563403336685570329703837873628135627771981416389409573735517890688784800692251444117660640753207805100203514704298843630958983694959304309982183150175337855125513099826873285019669694182463062487080389528059719312954533766517311557749214336732863749155377578396558002849120345316849552067125358853595120384994329295234338269941920473270804669550074375489889148094608319326615024565294493742938044277607281258552558063443812083603758067502132535657596947585454870889558836640846511170192868331620910932912180087491437168567994118489884143390782113410319980824546450560339977916896883220851332414686782003831095924484789153828189397714975936039062493167684760399533647076658007967363040849287003358446998721140632726772966936383016038151139164604682844897390557467640333176033525403740979384712996955067129190155457439306125235575068680772220274665388448860451992025740376449009295762480337500184417608291928045237034302466733132505311196481161554238695424732300434996181507394532469666780235489854108365378597094806358714973720517343226385670548586138911134192070929221439441830661239062539245950359791224379276085741266443132903901656542927335711954789599618125508540022948127451541906683624087736991697641508461612492933491415625534461345994809903879846063117258613179300215139388541388754458023020736780969738059989006096419517377037367856264490473570381059763930680949724214911198929566625045637744788021345163191631725961718342253121984908773617908682032222505441319673915842224489639827476736516848308799453038352846373134234330101664000145027849543341393058489692998112215068870960871693322140098189646363364893379721072551531883965906885805876544471787982055154015575562785605098440885785567080579533602612850776509248195562612715915504632574790424053445484819944022937840387245275673379064397128771958386386797563592180660791032594791532267884324295262671871252862888010277855338719870337247485345730829687495952925859918702086293065496394954149941711373431009858264192955534890748653906426735378254957231881720173226036461835332679119741646811679530324582089745010115698953001943285420494813522095658543420463849860630428541747597561677079333402430998810665355156365953292848625074254796405369754441165144019278934431136654423342104905163354296545682620727946684561616323949491754124759415944719740442623914817347857171845093444930107116679836246936255131153753757076735877741074602850823277908284595926171276756697548021093529460716451570233724943134080553539331860956770632077638734901186279771179686866625308778149429412974951139644411800670662977636555661900059089358322495687553887169718950818978171629392868607354939274494507624763980995595577178458558477268269535785646844766014526707853658888940310655614999100313118467408467404861880539258159266759906851048546135650153378272151881161589542232430764181334918334433774141864870694641947567194453757003635883289301522614781380766013052646685195781404930971869168839978785083699309142333764403091041428672556927577881197023232613501878936452388854892474023737893250210999369225894120897378386364241322389333128155765962564358133815641835019698245075153593977870511398313029538663660168383575985611490561160346217574073551969949051975517451192660527398567379192482309476844740546738488571677277625475066361574149134378811579238228962808959036958682395541745343047082602980514016811580367988131165120708251660510218129661421691143796143854482667647721311610068904603740002017508218508136644340220397876801516421533028978809804634640409616469986745108084157388568412143436039134473015950612971555840532634861302938825033330082863953347300695697403352263099240595267914428537089421475006085232689515304824114951858708610131685999969109359982969937812125426769639227147368405642654641384466201807041903183833184255533391454014853517907976261105226385512141286434337037679809080265465100088803512805256832250516720311745880615523856050829645730728610526996903854667396602149911822904381508373950560001981794576396779960521447282858079627751310510374422299058508755690843282095958155333336193339562104891919073670538978530528928004170318064275598528701669899575722004763563314038795324799166009624455423958947444269808160939346619065086369465801915453805468279445723272498601839588848114112077995855894888090343777635806786119249681392378184433221298989237112895982130714173572409820947664345187990450717010232750102727093547804412932611976601804385372961203723331292318074740223309901756955739323647896968573388493097066424180436526580176490085486124795522837882600165510233575632088935918077100893638958345161057896877148149499818867369412245147096610054977592562313982322194669216229070556531834028300357620156785865012150024382336548310993444268101713468421649197403074090742354743241261921679456825026313636749536724066133378548967085925362810857313676859431604210450508929831908053169975341982208196271944667469972357048331877271163418548947771471672397241121914808875414554779925579276757557141892009191339535824142654944966911841408555934008851752933964210855763020925804934850068812078870945661769656352672988504505111157558258939749816065928002062759328051171319682936570302726670313583383824919876846110864128489768935241145841931023454365526482442668891546325308699039067337438894937241300841095238917370144685392544101696214402817714867272279931247812861731816187111727851786568452738184695678222342551256878032402677055153774627936752725552276953216422978025568040913941343627082165736698224688942538949081937854481476541378277007257144238146941355737571697214771111876810670646314464652695254116842692345573892137905984079574685531154961285608660241791561596351013196569889481552841863283748209264749005152607570897742650732998703058120436602865687836327122761842137283355282288696810058544218348602127736275145931802097687855392964339609018799420841327431888298578504584941544912248120757823364488669007271759253137562041797622068877198165811801770534489676058699064086603701552655284792845721762527503510174574674884685640201620087907748795987395556779426510328545881714789647536513760388539441632605020348146714082658005016689764613409545755874758974883016532726859624251259064187853641744017348719200102532624831669959913390996731952375512105828898032811883413060388854159209091549099455508430595694244635539274121177870369735937997904968928032755086199989635628725699162459597929446345839482798596639112762846480516749660508913607312162145781273817811697990382204167582133748695445611004189677700610079321777550089300078372717748585454561774582749450626186978341752061693180168350156022046048573934933287255588620920275821604782536170665582216400777046426373193976978443054515495028790199319740934754036237303108770077873827848913168482178796630705882620579748242902890548123076378187718788716804852342951693092026156540338977693166522547947795177601882352912308174546067062573550041070726241597982609153081294030853590676904280298538039865999577096682206450729298783217567161772147414038051238100866856951266606524019577728359489862520036640834414669636412976908046476402311364442861193250424936218205988180842085260315623787266814148869017963626726742153282985281491720642440868070059391546393947978755000265070440656922798631925874591639032601129351480898408249074688215464799830610623634925860172493745740131218427859822341334255665357040838730443439839121918916946985027103004819407507654867772125140265503722288006702935128320899948102779505025735945327941577174114302231666235207863980067432669345628837229115570968745215795500925861734839049188907864345337447546132163061051884260380095957046644374485449871570188122482201724121068465413769756096935970481079350557122322649915989621942491160758123128525855352120697317748416818108864581410652058738516607317536926943055457354532699075830470978126150058925733085191833295681587474737174805047031044150496815670245910640351302591642800401146169267652909547734356850755857912063679990263911983558224829078367358125560589134205490813649651009535719131978749498670945959808431878772928864132990264948582086926408606904812157847233198231782001541429482314222766703544685091464920910879628370589784568630654587305654194521504584026524331825160748898005461970982325732135735989010998392340156440945540607601798073366545520068524001778813653105031397969033120537099108852450608889690004851028872768424401738336957051007336806736793684434730657908396075837926631007531223173979430576110350871086398240405796169117147590860400832266474147975317407017339750765568511398249245754591545237723866714168724225829514497237028191551148182842842702188656170546587115905626298731792875479096748040710648403450606997790663465392539506880454958764773576148375829861461088759727386140233592577074411059047628854661321376459413858912169773350781872867873529844229193105012089834385700880983614778830722194718335603229555446931049707514926798863205322913277154361514623922326751800749489663240573724266674238130147662107385121588507297720446192184831031440950285603170025717970243945787156686443049159524613492446590737369146050384005827616948253931702031783678207471840376708222148669566998769691317134360990994586086162978809584380821268285204473988270519454760627837414126351045652286306211557813419585896389144548900919042531453240727102656879282302211061402800777674116602603852172705918256319821631730775405590262714448139873529972045689714790116665996978039746010630755042105350161779413629976417662256170840323061347134158649091124390555455410128114770332827528975525909022902498392221726910571805074126835137175398449718687453166335411684719056360277313115990986135391118357144757662014027357553376244992203314623341722781588060431495572124330544139916281997327643601803703498909513490814627789777320706774627306588469975440629328732444731422650890785889764663900653906511549555266771848685707432911674412031099017911192503569738773171158052226017822351792121959984073319680872616637713131527809822998819537289561251662483492040499319374824282069356024778542577379115375740308586593236077830424970897712062578210575023616433821305962998393151780136210394778238115129378768434311524836807562695085301734172710022748167370973770971453241685952696909837436312873981109630571982362291539239124875664819699784710649730642726222794935172101062221283052910327130016204405298577498616908090570756610277755477266660695565794391827734654130551524203167557725141510859839872712365702350967157705921873782380244876561451809352714018005965781476119205055294079750451610440899601645711814812449545125789166043119566356100585417247765362476984088841303126825129138135192385684815365489925801723384223912204491891292694629982021395942011814129479792953385206861785411508555053724532965811092811185059973446750493831658894888666595454195446304189421895347684281112449284792203934278123084566079601010691535449087836888317380520142081007726965565218780672487929385718542625607908847763582927016529960833920635861164269107261189160980513495070830313409812465390533014644773453800359664497534391067705134931298881393995087135328039315156257741960558959627591832931771091665757235084532298702198177674426009668494116143579197634087391834393123294181835584077948645213107070950369133978949890569734049918026453044138366959359978353670517367860364821597930583197657056723772158206661129037464812358265461103532831177164808111483967958060579706917792397236227746291088183080274582254452546238492009427140181497602726443785024297582885293010606624324122099774177740501647061310548357418570623569266828817954472320078985206079242610536650085811648877096304591905662721955026436867848093587302320776610895437854634032620466690122208632172552141367185866822711866184377130154631768645532480650523804637309688613038113005139896841881048687777416042244681353342110068294559995288114383805338506627540643435293290001604737880231672150824786356099303069050790171701464980762292033933948439310378690065634958734120015598595389437185296038270860482013957149850026994547225266125707447201059580011475492961013607764301022294424001058063294744049359289225339212076741296593785995698072490672235412685085510521424258038772792624150718992478162751509411666735459268249390447233181634468255529603905081763075272553991080748345655746018748340879528237205725797780673728982628157701944477764224499161875130819018323223504151001752095508727195479814374007032838697809700865869814722109455964429849079309598769066603841474558072115981252260341472575431187245270687728986157687042764134930286924692715190837320460298889753386169140832220735715261042779500222143341687831453546094747750309749087765414329602614757837644149829267572764234667498345491180395604720801494974442931574930845757035338606684183967496669837815086972682147595857440489307758784786010935392568754768916763958911762362440925813244580066129636420705499935661910370344324741919030250638189257697697674669449806753173607967045057261952048752060603483101918432894755157070723973912730825401033567194424311083485628586822856082189731320779628602865873417089333120260369461114839112139156510756064824113849254253507757813899603095266167808229840832812430897979948849940546151337933212095575944329188524556734806771956803225938860072926010718974554008753299555243446694481244429556399247705045703273205390579098834277980506013311975243154515449278390221187680103540433637557985412216637406013752842598390495098600897068428545680163515071513657864440481618613200955401810068804177443101358049205506213690657720856386141113245942925577900539473615618045366147189809260830833107487657722002423508224280462971007956457847240844805149995879079495363250985928252234614476951346535590030871214844900351473941528580615271991121630107681634689770768437230472030280909221965324677751082595700839145943031410762330016652466595012694753486093736643149652241616952890747616669140640054414479611425259338106303310693927604459648984003662629373075246491634074358707377176619869314206477667261274240070599841923278557830202730188243982638390280336712207651071807340671367234694850771786040819007350117683108224866435115473101341970619457317282368412634234616008840902591640815630213647548199716722177896367458493947501772043660913964298503289305599818251305338291355665372499071947549673799475247538322651785911658409961925316488436854302774414931687191741277939999334652175612123130918303473993514256412437952767278167068514856535786082122308282022949213495607262393720763672482408805294077317969055533856929838608203248963259162539516651308584603997384888467618438165215536824555256192526260500110509311211319368396694212180240731991658327370350522623848587956715451252295376755208573699533914259417910361808423580131000905143670891895023391596054711526577819056361625550675825453669571681309834137725793518757655803982378316383771254257837617432929259349084554735713050399083197728496044739351537095608340047399800990849649348522808281399785887933265282508971629197188686287130994491508522111853027823438476357257690395028630865101487150797731064138058907110043139703368184682140538899600979024162034248658683017257571249987912860813060084615252465622562916573667666420185542141078067955976374272369130714999426905173159303584743722137534870934363745543824500907541644200482663369047593983697044892927679175708209716985439728840612815625905263307785299484831848485789267471105250517317615642217843700297767924651881886251932310423704358142053065381226358429339746204923687012219760296183320184429882118541504821940172756998227462494917250330303855356320781375355667296658491310528324983702337487886199852607212860939794375191164612003109479454775611764580560663064497871354245474583309293270021997236319307486547244904080121575094615337615636138273859697741430003203240296336989868812975504317398469856919787753852387342127510544233018096209170943678824489030487401531000754981968742739094696955599559914976510302339524222369856251692768866430040190844339196004701697923513561502409400427500673032462065843244477730170458127944257110417494592480662942141362781503819748249799917104393187689394685290170359909498224155687204009411855131505762366392661655059832545898328602831204332097547734650929002675776161051781717151447372349072927062067224391149152549279184900348308836201866204400125130375121099454151523877202421797222580564303683931257867300115894618844892526699891691593712071429878056168619197162020931788587148996206681147366460814728572288443102174240080450978464925998834964175051364185005222846339010377941487709726437201167976327698223354431597057059800815319201321465514314646606277558702873436417511169798770979114308962633484442022859467253026275917803130814549297852341718994910000550843711759636502764526173088529278013969179793571149206276148384847167955731942136907974219213435395385184886503755118004725961444308477724988306823164661587944709558606261484247210980699627459647992911711564477174019938591242421985888099321777302234585181402764852402089955477273771418631744212102217414070082295876865181296823811414993392861686421887898222837330299625309403182644457027136056124854001619983945204205112217183503575530023053394640693923779971194382040704078150642481375720699447384908508557153064193869602779860376965486342806752490556331290835975266845796562796415118783986214720142707588044699727627324471192006646368131063969613412629551627951314883065155568167198715179015978299935875001634187345136211589014222819469377825707951647207474970802060026562445453709697245213778024678163977336336517536057582717515658436835085354742016804808970723336195340748302520957688859644887571335678941997000977391230215883119654456805274807925056879025502398140416028084885165072060840220022771829251738296276407671796109270128319010777451890364263062408342117060093185227846461079619203375059998406855769968851574004349982897527479853765217186062938005367691722516002894174157164716316666404909473370716018533774505217144078609680011254067569099392101605909757217750144147305866992286015050865708928024638784474568922911853164338575377210397084169195427062060899698836296058242945291861526831712040253173528308324485311138980262755567716664814069399466361033541682358937673972614078827377306008058034693654320562921382356719697353928504883443891124934119513215859793342504983681568926141853991822770590950801365852799416293372571189180436218721632022735265920872174205139481814060241214189955880385747445084677153339327103173707467945507428604957999754834910439804663201283346581723878325012015272653154164849900628872397158336179049088086943564162667103072177920462881342971270970789003327768015177361469589944672862076835883381886181769639690570670871451129502605439327172787471130341510540662386630786248532019338651168753643795781026642970020637020943500265257859185426925365421884040449570076599543477449078508657751042861026051465532041614378067672692648876975718671235787201733177005207292124783611101847665025334902073365831001661122400621141250417537678972257107609970516209738559692712540155949975145817823424162918172722980646508796694459287987736681955121639878185517307982146877757059352120938719373793664373042824439291994984577885849250958807588817205573530850607512926202640064795705439864477072478104540153843107450204859889979619961934689909456530879669807731259262406762075683158042497766468576239978382258549766019506893658865920242317967294776878662602979034333335746626811849587187214444612312615335434904237507036856365123859819096629040725153993566350416065226857557452933962549912673250684920767079394995979563884316919010807371400699782506043846876804756887462910252839899053849144719656434368116956121551967786375086719942156558495449039005319458920281533701260330816759841102680756561475146450289658023254316576263969990269307092101314751673810964679863815850806063345329221063245646085889532050044336198594699836317593502198747092387194649940896350491380382789707826818251529857015981139588846572343702917030791527066326086116656853884123887085322360966815706412742806759504170701112712177204724803835261745134690511822617944942956221823123450281577653534528167917269684701814726758397743374770775164369733507150363795055176894888729883550394790557201933945335478187218693076236574731411609536021061394591426056452739600815864765727687533688489005856855487122648358432181435973211534973911927725305858685786525643284707756798833884825278497323043692909230944935395799007384962186548057097829420226940968552745745687660908233403137967854060452270124188647407328632051324061775609153205459420858931060290525586737321198408866802445569839474204019412996046184706226426761506883828062577287738474914101252699108056487731758441281439434870086926225016911803236599627831013677056204021840811796686016538256708931435935083965329026971792725408922368607252918315467393781766888927091459380352244966524118845709646996801230033612019550803466117973814548130374001395243948270576924884483560741259471000583623023433489931111576082041377337127956158100734124993957118182357189463092549135859860408925689328694143374615076148359988028479081451512062720804347090742317833393315981086792342226728225198536400697223935913990835010278241845088257205176964113592160263078189913819895530271909227344135831284287578811195225194147956416793562876180598810437599388363042673296512168720341079492686024107941537122217452709479252183591749360655603837913110347778643881894010220172414527534838577231089717335324887679157365254915428463094218627636745818908986982538363837337227049251778846675191257579476131086679359100615328371716423188559378017183770101482021190086561852955910750554418623855350297534752997481517865726730437640497859679386921739113410513193797957857169473735131784148464064533357881745444630295891403982267759848329524915114764168465725206456003772363513830177303454689920521467321412634779627036427496497596071981972801265907882212075731222969788691566609984440385337585770284636364669533193316404391182572756425832856078135691897231192661820790070715765435268048911557544369736829778972844524685495969106663431481699798391069914562156417757490109457415623739600583400018820389731981031394992370986074545415393042260857062271840833582040516768109118454160995511709910580780038114488703877999989337472249832306580580456491500166800576770110015433893138917524721123033742554077193320140228623201157478191869543425794474197950087275050283927821249482941572300039682134050678042027954051417307372899846585919578781327963908699398168286706528465526938177351260273382977508969500690891175386368231997771457166109124417136565267173420531244465538337611343825491672614125474352888792521351441078026660966343680706092534804194897248539924874358453140101042808509490417290983522541250952215779083501578290203234414111903026041922688487394858794284841868915765304474219328834979461586874199578580235771465394458794774981578312835897820235979976220942026272795420406990993080387248580139023498849076249924830729361742261594056204031382849432689502798313306715128372044163444463026311893359174951912543925661399770700265851840396509396344029693519656755961199441996522116585923532278321156377167941962040742170554598532362572616420294509200311392000636352151505185780290714589376179951851534931230068662064748048716999326808474824501446865632624655701560208313631312124819698055600151420042841160943160745160927207104324385356224313350967142409424934834788170056137427992033426277089211967186184545128100364930726831755082659365306414362747095569345647611915104206817792964578579118490786555479041624102156389001726130565063798939860008141133015053144561816043657833450204526921671934331442572904128977873653973214818259711201640103061326304079358428909591873234492469174650136400162342930764404392144366832756237203653401508657193690342956187770285002093615847168895153365109095691682061984276555414527888722344801536559497627046149312023729521113981784852061029227166158074361952184296879128028521129010467667504287451063034631291407102639952470836675876814982484662817917482352129258113556882720481916823138367368744227750759900911179164619844174960912924413231534633084252695394328465819419555172557001084885149790203097656513162039352368472509487567274436191684054977627344637716620101108744474615875110768283557574587481721075896832550884308018307844103572375939999563299426401170421656720929116317183440022247985679267459495984451426762252237189439415749972503662070932891650863552007607474530184056460845703281579881399750686183522093372514063857384807793977120266018107948287050698208622546546491630962465170911933370728211626773456309741456315408675136055384025189620058491581553452926362001789209416419282828455316645686832289614766538441479085006978636375196867957655841410955558188422255805540610088248593645091956011662187549458168406686051816350129700408649518627680140905628032797822524996894641989304908354967752035828214414839323645374407431699983144081669552769445888338142960257577242907117409914452739293941111533897091120681785091978636310984014637618396045452997289342368249695370456508618567907665007740253823915021357870146616195616542612400885327872784804930654481776000290240467093929020102577964585844908727548376219640696462016400305807508109934036822952077353992707424135952082649396098421288571352812899503376279265019609880942592703007421674476937236852397563911097832129898440896924509310110056995983727801823827053907883481785365102249488321081741864987532477884983229260569984567578734805843056716625591474220340665876940137142452897387949953667291407419041846673647846090830259293401738385027641513251685687133677610123290979540781114928061008334765522687563738113038225943449294102032629579496013212487138757860067567584245913422504818108745422516235827223537543612591168811545396410635353408354572544228425990052727636712028987948815071160543356248550952282770074682686339299615027853839142952360251274504729133403755396251485769413813520669011704659315680517915792925995666220310318193919836911274771359242212367455240587160882086438315567837926478807494656355893195748882707570621489987670108805554763644516868034254493224824099813618180743477481614342820540180235564302885933602991201721621940060989220982489243514931239609106369227177888339049771059451690370422762697226063956479443716334852073847282560738741111678301679725593708814791293714268534798559244337982906888673742042535038324310716805977253227644684870152931198838619081378356370581215547797843372759618951263152213159669553355749957162216036153494398848695811595102689968539955563507399584275155626529373366054024969259722006306160950627373412588643447316940160352906377113705905246152505706214655442174914102675971790820642589010779593452533243009801900110343330925921525210699917714326218262700130670137839847762924850804115140635472890789304292190451239533679443169496083549291022811925362818120177303461128271609612088229601785721648377335454571947339463782788034425380756549567590509972363795926885345342668021242475658451959311160840747407501887720781764788734720878499623147121964172110625191155908526993289023014090402539710713839287560904892572221121140507935972864817596439910165524737241446862878042932288670112269335826419020828599677258126980267989559145907917128911222972087627419242021750158915656935842925119038028191958546891872708224412560423872720122937539541553606657760006446291314664220561471628808325938365773268554097559071503576609741349302553290565670889313728210738930811240665190894212899833876159079130262249923625730706186264057141233748185964852466265799452479461722253354258224346897761777269064727143571019572710039389892420062754751041861793195232699951375550076975072181049784635349408835383317495160192576974933240604518577716678704076068484542594185447936585455356673025470134476041989902872674294630950189408205621709617485440604517723951330520794243177272137724584199866289734863940019204953648451589498736121246206727107922066147135130393587303933652633143739104972639971204224678159506405652663294738662557559758241725338612392254157176450916943010683241002472271379243526665968710596163599974518483203116967838829033604064669823027508281597962565084568674383509232302989955343927750155108438127199917673865827236828957358050823293193414793365918182982663689755135896663068609133982064906416145444814576018939595664589053862182675714324412246012598061429990171310382822261454087654482812991019022929329384209900068659297304117517887961518305118385600016014343752233122652333136421241075629343003228532325611135715222556204470944313412831854061312843016043908405071908408900512754608722477917963429516954783510828768465559746819360795704287263308349206949727788588316657774877918657660731874033739415340110306771374015325244549042107289379233881624033435178256544570614904060309798865506065640450413216373233208061052517568813415816069448626807660559031491874530259105070419366092521858891382289189960846627404267653033562262790712822088025740193435858129487778571933893490181614733252231106671800722125065064205850597070454887168727265514110513514539809850420450664927736567533837365139733707477229251742592606780270133223896563215661073212950740942383896250951971480501235079096644749707197022720320125083780222500343614988969581448782805625359153511382183320794717653979251735137382175291489513689477273298679745352105683324024466955564550998154893190290413711102384454415217209206526395409965847446427392131971253651109200225193240418771626948709138673030961309517399564694526866619859628659605211040293605245975368349349391002145024853734191115103512827021427144482109602836604240141978657713962530585161605417979653812596742749940648338561942034445592507471027844197658721848379509813393311714632602065933132677620247407319276489179709794934041002001747342581666237065858252289723017644085558618320247379447674847572816460702179945323089294058950774503242586552108560622774185724420903234368096749954333354323555968819296887310915003432161926498499657192642678859542340125349386642227680543470884598272510815194142361738325367651640665656506681597527980628858993387945914343036101180107827681980885361500509799639508191197555547309763779428800969961217875526549820871678691077907626011504777674336457823504226562947835200557757672261831269240693936280185756865903248108309467662136338996679762245091812172548913634097686454322621535886355999554983801659400343945857192808902366974540815067159365114616407276887448457477255507512377309411251149497175151946205478439158743448639557139073883022798081427196073325392405189500310091166579183372662485241488141641203439535747361358569391712221738473298953269207652054646788907905124726667913766038826423851678661248382384609050792312712314562244801401110147771217046681213480247396296107745725475457644929031394144652366988232747778430083568744375480060263218881384907943197369764660488777324176463856218431018778827822183017580379681837552681586937060958844889062688584045776153969101276439690015408660207234563971259454046614916558051273988687676232220860324733222936328378570975608672759724931138626929365253050136386175548090644300754416656468524212392171254665261095401164047446222107151265963558326280137369756464499602182620978343326557567463668197773255132855019588383652156804427718750926669066415996143413445741511947098222359463996575061923227018076804661467765681312680821241538165636715153489771678267132868695262541091086462516951638929907958383936345774831500753309527537070873301830645011687281357969619063065642166348097535039186126179487438594451142038068167146913283122544571312300557881576176536916394447411652876357235806794166278296572857129889033529430511232005361357872857788407525371177274869261053247327697259279649915481623012922458569175054699961583246105779277919575048381478845438437581690948438386741446106808036168859153523655651462318560143337361545292307694861874315179451943318036659765903375767873193841235697321936300679217508775931152810582513863171816422394690629270166128698847597069410499634884928982452300601290894675596222970766642555509768375128968423713307175277975120255745290807198367826316235268077076430759061907635842349449364263004986586052088130291665486218148959759682528110441000680561070428992641153725002071320449989326326439167672875376146530199684835957858719608641211961622296088953503151709277730807639389045630223004507589450001658803834520070723498067048943951610306213893127346129604822730240690166054081928968417217473515477849751760668727452386932222166669637702608042276784997419912801325446316193247234198940500132105287264631918744681109861990506246881036881161386117422814594376452536010980588345878669645904748374507152915474060061779076669355854256019812655438320324641994674108662084310894224662710006599353374912298201926664276378296145435126325619528822148070808801296819896391293929349344064425826715473221788402243521956838459484437116356287835051687737971137318105973173626992359907891283781004307073686299498378588370001054269417737052574932770364404942846352744373914959882093736869119034089332685351217366329119412942735971400536797994587487218420666097136639020865931869402719425539298575710241489751442714341088509929802604820616202366531945098917410389284327790221940192322740382779508602220581426134227604352737496763033934738263909435161512067883898264609164977027897008971379535119607971504749725545436528511339628253487712664540875771313299286439092236406069475930275652665750910827785763641054038098483370375402005941701583005654246271244369172983321506415864016853049288779879437251356278373090456832936266080986800118709051639031316071797631073758474450165976237981069026050866582842011387941429564351223870813006828335731559677053593638860681506385990569081285458054293739572923895739072250524909945681002834459426717726794407482349186430569143899639414662042917520901962930028527362781524676543558782232968510390391654232784089226769547499497243635841831578333394748326964240983567679855322984149630282245220986067750877012078843727971939826060774950119696612078456519033727853085103469619897198115676329440600918524421233117718237049568963759503881899522981833280678905392692356737343554389879240512694149892358039946632570661044778922881168241089890198563505246697437134172555435850749324915334706625816055406583778263957692554515799642923181964674030023120013925264952529544192534007363362238095926958752918196302150607760521257614061677318599069845453454209653598644694583413783716967613153577571607740919712145731200371036944057495369519658538806563507554567319842054324130728023766087596444320609279963833752588978699774586892831394702210171115966636566556400816125537954528563292259346800264746348258304880014569744031419710384129994213114603811268444599995915056957823089231563761227336565280674143844594001746003367611596807515184786074772575369268705897602218820672807603966935203159008441248913751691358255987094966121559653277671627132948608621548462501565618758205625804512647379562923208514202371597143603142261800492786692449418444219263108571058953472005979186260824911256554250974642630030260924504529936571897580323962644890947680381741808539063424294720486605949406289134532082585767753822993808249606107255750980586322568440876389937373889672881940543079593422393670666151612646916498953282835143353828382387705485630993434374719783080351452230467469600171982343098860268288804652799177016835318321805108983381277189245107905709645021569485785324928131885427144431942745639603087892337387675835303843982105644543183054969912289445888834388998989095932209220526414566126183637137067764914339851718283328844581157803643828646824290789561028511464965240874613128124923657581173568998092867112340572824243021104857070760716727959592765772277207276650353811766185925660275743983225058130081978453696101032509204105119139126896318754245586707968708888740710585741066196544954541175700001642938941951490226138787864139137639427426460808104510834330889368782395484798319450552161978797798029977734506830930276236113832563638490733197375821030541401951578448716635727370144426415058778268857376726344510667141139754005224907212026234256579845045350876924892131195190687192852660550517131941679947589387642564259958036970772093987248679327574491655301953102672544474840947533571199001869616291403145613460748500481272586929192697027434561505207371516411625636195863052957084707319261223357458629355272119237803942930237171043629005695779450273048284004026193138742790406417806248004469495911440260295968727010482801073020449431856398860797099459533309048019472624141549544313781236394507614398143182143612270199523806926332665015495838309999198945686095060095931134513868719780109009309944789859690998988939187608467186714985355952843517214451610451716901583514256813048355875841782640912339950814076560197518600834374725156077991153454030475310568253883368051333873745463879083968652030713660199551497322424211149850664916937910452188624489061338118007611439487688952882005909293479575154759007398657199615149324433708641469719941727078342965435642768916381962684216049809988731616260254449650383388148873641655156603672364351652408033106612175716226413143780822890563700297548064720240451851865033483029166592058078709875221670363217639875883689083490306468001041327823322797432324259496382458420975430468385568934107274974401265668684154791073668802010186561324853720181111355062995513365752784613452850747467428485192297560392645618695571109721121612805886867222632340796031034549396995161013311053089268762730283210965578076938498084612940286232500647007148737980152090234747933524215789714699873046906535533361395113190152001245201279193873483669908287951488987778798352369473623914478769875236175008017578677200068153439682730212252219196899781649269930447362882022495213264028426792440350699755571071513006374871181682648455036497060149395853538064851448661473333068844021326796428136583916330917264566491265621161926945765051080005076444761558915296603026465454499050609596890991833925291512839532020942443894542367422597094426004624467944727693383788391530903232777789447749432185865028856823993573314781829369246810215205467154666346633377504722565044071246751095162197009531069398966423366776913339291253627832149557894355568507443509666903258133528043424855228369416578457897150162897919576254585709060458438589040433563547292673665207235216307689117299854929218064547103009013009328621592209294913040946730051601643965090584796526183530476137476770409011779842995428947145865626537185386059168572509300825925513087601377091106131170439699210135487768364897446241419481761460555005301484837419423675580055938702889781942810793899664758856431661889068753583346045199160338185171231340424286098456449292990901062840406745176525039078325500063368134379768796436997816259016383609078358773880506486159742017964862861952112970021494297388324244358768733220041330804481091340025670437937561307772995232964643809179493732059744796048155695197394757914764399886660130982254714589755065636910768744374934357716507774790197282437219109594963866856776295715740314608323332364312809569930441560086954877816274467309884444167659224381912380978848640326713522417655510276418470163199508919653915748540302512863148333242794071604506247010415039311094267223679671071717045177660174287446050304724167542423770584845741688914037529885396528028785757136851645671813633360228294734311727788370650388846880832375270850394140741699927667123336351378077945382038133669326840392408298421199012557652780673321927134890917377930001501390725085992289722017500207612112878587406429287189405510341600460208316303486558868835469392213221239668500623934837963727849620808064653315390436924789422750082434635124657139143947685014445295307579113127553221722869880982651560713618986602088007606228958387631822432919947669978301136723248863292186293166522897544075336585598978130376256989839589821405547382740131968751691560599430724980737654176603742213511340008917893536818873215923258335224915926214855489479876373252414933075740229517634366485714177844936439501398018518110412126023410608764964844911555967350423185028474580353826181077949966953815519147159434567992818552659345650102785340602727950362001350957159700024000358185436737815582033101364115577419301061154502701350577716412301643942856809137064584804829879837355784274538254665830052931576656026335782607263785926578153456374747716514307128486668192978663285276649492471516234507881430527344071228125038324342121382604431476584136173210137514593456312806222319436735240230238206786799001766008847271872950248145565237392822904708933203314822765532212919766895253427369700595412044728489078522038827357727310884668752280957554701223404918027779463920177251109579128404697823874223180235038308494961933320699914533218529803553436148058639700623054007551469577960679674749904549676068047884223002896712248304313329155009509613345458885285987422681086380308422880649942298423929917006348513424516221459186020558087779923669238195483177093482460431755688131444695334347469514900193390291560689240325230180992013999164842335806734492383021098852125150539840935566174791611429277806570866468517143770337730893785480231428471514298291844896009313354340644396757185305998343717390667609641026256930849008263415559292764129975715040374175972394829557727703672589102332916461731876176191289451690990015755300992059552556224883725663919902495513123033887270848946328827896140145230523634681630117970723862212829223387322729425574651628117873952076259714855407044641007322557219085224153853434871458222403132722370925242977252402394291322994226614666058147314880685293992163814102209415388523754691165945609901246442097953215530772993852591833482613212234291610034368853575595635556826327287487438090125235201112799568680243365364063888911640333257719872862893620699345566069778046782394928244152146334454205242449970410045833263800282577010155812325670176531336244245751130969736766732348656735417294673139902870240186340170468620534071146038490307193047978387585866206422134370733514367224000683942091723705414229258302172079193676216957342825764847335587843287142676288405752362035805243857816500198863698599063421181965014353551263189202856996659900341780691871717217809333130745601124835815029119089490244275425286215560262598964454031461008087753842100069557100273664008328081625449719492985034997607391601385423221787288826581857609947983965379273954428706358571396880661857378352916123865766848907437162664377731387690675129151259427950897263509329051851044800336401657227302423731415815172189528276949771496099652578023739861789254221466575164532599091399723797707974462266590451036669070669345484926398801511137422058618336384093186796029544098612055878315890445676690094243751365208389991049466292414274292991761280527522903249625367656262936912082925880620903492825622492417103299929002954338015050446095143277706532471908604393487253607648366524252234753114176166307487285166371955996654111227997835776172479076216728843109569071331809082157209915671562762096907068324757187975302076211880292998846307565696148269998764561658422187559839239987610360245639272195131788940054215793745151642802192850118397921399475120637638654242113597727941655004968383147054645019109011226583271316922007296766562509833228229894931216705411232631132045565552756507616561842247471421273162629068665291372102628183751814500753853289218615802770975210256699275040671623063103511313038907349018443235678892899154954868203384482949140074281766700553056029858366306924081378839859291827770487212697608803592450993300309306974329830876948042587382796665428370655879898925760742041530782796855307924173866054801637909349201363750374613813164391773694615302387476528825410170777110234285011484266237618284288406001248523072907673646052079548320037897227315644423269410563201887753084564114990508837799132354668151827810383110975235380312406366246363279281332178709163588106565964070545887356316924362099282839186886233439696943785599221551630778569622630872765026342031994658060213958974354338542306520779099516790501655266294246753618079782563078838680769757652214942736612662908014177283503891748468188228437878044133156077767447384853070804031071914937178186297255333813810704214890749348487163163629268580283744829266923423036382603137145538833169423468828422497066515858165939939596483840624307880850803094165116451270009680940143807957314447305506268737658626237768614903551618459816948602599062609815069693246087575866791663787361647207424438943070812088644560487654718312920581441384891701916768776475779320929565641159713821270159024979743488897925242743052246070219470157643228339786228411073929963862345263807798923315753283722885309564924219567797651007395638700368982468932507693120637118586536853157648068977963957847359072447461564583396612813325310519531642821178790402408367303073547551949239604658149715684095016305758966523077456405834708429964769921181307946430953735146399752150954846033828873259873228620069160423407237135705761298390847487407688534190504732916461757635669121115552299783345610365379839876589527091358626106687225162337066979772839136576098549837626918119840645453055621914561908163109656102264595582796281995767944283888945518194647941989265910804492146169567916158539695298023269313618571343207349022285238861394091908343653844360242099740674640179467468786689866874878280862102372642389393080503710022470025162049971120283262559207142706587630805708504191031443709374762591372880837409483734991847342396342017103899155931086159373374388033332337918199473258985455609166182601094089475150416097060439937535844407618630124803692750092769230998187326457995001533072213097579331083640576216550553124021939557054907863150485653694343820735099959524494189389834011050294206193924148916427416840116428184059413169415023738215359028503329501135255378061412562850468160905848616041754209112945799949923357069690602417166967284458687002259802984333634315605808313907971786380274742542638264877895846368738945370010112007631752005810685158068413047586727777841793030768096779583775381340713346193452694302748472725854776790910411329014383301371857980586550212419780770344848469252036966080477001981984048056813293395953422631840482385199502648336923823633173091317935823823468276937638026979928206638268254180630159424032739595291333522304642102758101237552230916277373138515974160680022987879076286973250479922234000167248444230098971694761248674157692756982655822825086818570228468676409218520379280066811094695385690883592440330081362801010782685717754493801781143470297880806384148099337016045609264279210430211325082971388938285255498274131548549906303383306310347906565563181877001429497040230603397218410865531891286715847477841354194813892973495079741688123852733711860964235776241706888780394931288993328836480544397401313366557207496612118303357785764117237205785978356875310811382434133600519259960395717565669869578889331212446762811114580141637624391891451696228312477218737035868969607236499169964721233892076944380537919190484574292869686052648784323039253214167000376114967522713951713789585981870234788067919177881126888417733980372038550109615977620375349556788019654561707182847641783580427437197764809355748905711222415031180032441098531297223132242329074510427155477899544549231240034424834448265973109493627966257646869677747785953202195756856030579085450808725975096435294575152747866096721262700063175131351656252572663488760789218650366768355243577062128859191694911816712064009835905298956171640800843598559940946013869188785840278101943466500684621644883745919817736613471226448753513018995098221942821562657790931809020330413876729431385073634743190070210756315734266199105107882821849610903833307469736114476042075739350275213542541523609457184896851716739229765105178915892194380035292338943957208661629953387020656376014223310604218671864445159285898401761168025080179544547902966346930711791623183473510599859202978828672655172221383856382026533820240636867544122154480926002465692096620204689517196442952253031619143885879872487303724061329240196733615445318790395026253645127399598758742550364312195311847910728515238293171131113271748560467556311262264733550361128532335193902928717379745774970740768178731686570067606527186517314807851633763049236153318523109664092932149190829584411482578087835898763836763057485132289668961816585815489525179002915629924365957325404745087557738814613942030121890985220456736767194039396814595059524193144422702456052263793040296703136587422533811378881389847287644860276587734558047328479922099775402577761526600156679526171263026637311048826441685437675009799471757014236332891516433653323840525489939381920519102968038788829212308678916490318469854224037066144408009566279043790226283023387663768026867198996605073161007637534353877842265524659708208479342537329236138336612008229490797288935677831022919520433993597062455859647594650916408318794094301911548129366139023421576690038367753599818785420277425468055053439303745361948843313303387866177495407634409572827198341905492516193194025150366105572080059108285128792289779983092567314033790303710696679453942006479398275415962632416863344869547608833430721245852693003203644512927231887435923727118867300789058891816702313624848938358482645249022857677529177361872861858304613703475278319975514332483919135189078418545109890737986226401151064796830587041733043759977950757214093115120670004554564835920458927291548717964100097516960156735351726937906194194187203214994146927491275342239668243492128272524182649432811493883638065438352898428816081494852533588714613552433466868915452492785843492506746940935254054623397973671661968843869384341966810934383807470604639244877035518312346842401118189946575181838036877643560724207900041979888922435619430670846937140100245782322002228873942336628048650176690605025758432806430774416016450741472058305472245613634344841561963922254660960652363323931051623627779722668819091698283994897473320404385034131586858710275439128398208223559113325007408410327263690493827235033044759603232098240717593815042642403790019971909435938195249495227719274035156249415456165056927811291664394189078825826560978296447703309636040714252003195683880491034991755459699635598815586580814360551043920482597152283402862584141254013047287986448958521004985032925243432033722158080642172255380323276389328452602593892364087943567723103610911938613405862804409449372617768326871523822842241765491513708596425452754911253242925056738769812026545392643594762079355393274108487258122458666609501175277717025616967094168864947884443712270303874385555906565430706062962666197658956704643836224614824536912526191246665302019678287077285470134902850496276527995254841163682363614126431917325625949393268585871750739325423630423917424322703413892137723316116665216231237863174994206820322315050008641700005708509738155371414681558517896612934586724257201792282902852396680695980450171973404906002344326609006634990544817916656257225442061956289650938306167770615098643708163557315114844445592295234451621756113667991758035108131356713330940726435173178306200437919559618760950327465758589825111868494928479626435815262760748722199167990890252687924816378631548505790555232769946052716461188848174100733086399659053316320034511700467861685043266862550510668158746639859308787846053795245580849729995985107865246547188279789165009233455559731394562337557151462185437205665326798019182617101829831331612380984157920829270598861600937161195058437018647632880033136263808098393649147180776473775711857951808593826529465379158850524259517371301288133303796003887571845352385406229269943928260144589339560374083948336924476552577411248114124779665403463270371282760796929391281983105408139506823281733104058669000186733658465800369835621360428131548692360712330135696644478989337353133856298099433452365969199281364579359869064139094941204406700452577116388185258380029800071159982485296012145329863569534993270534579385525839922300272716860772630208462004110534668117810938458522452147274500641796974625958504637843360033844750989706509963345416791607393040714087901535484410236279556697606148253852414226449858764494063336559845474180459057601157025470088514664410579256445370354135819408602605113127035281566027187126269730668490919518542869529503705064425265843827802089001554211290268943356347878607993069225020694699902150264307494657249935891341619814317677448477836487830261097435200742588978219755766922895361285883352245606290922359883349923461544577217216145592408223421100793817031979305014376372768013492459768016873633145236593443541129339696997307350376408213780648191816916283132211887388788593037987793721372087839561689749913435339365754501607540348242870870432391595667703920331989769734131375309033649012766027797307389173188883030718823745212615573343845099199991954310921019515515071247053442459836950728204413968959463023780012787219910272825360880035539083064673647622148320831797080185146151808380454649570211273939352342751526263644977603980069251853078276688182751410728249104268023625508123411922686708331961324313475400852899902640204897772293186006388459224237870053776816651210225674555991056642589918105328497256462894012685326261969623258847551516014851410443146612828370327417878338646695931475437610759735801960993750935679596560639585643942779326681562842531837605625383956915933135566489559152068637647217274766308111175097227973216791595074590652081325175087778765356770004736575985939005521002516061021296273163742455642069078288063903547660466842259540272252717912658970151427937748686053411731697667361504545800479023890405851207800120085653942176422907242720634553173057133299450002962610864253942137596220994181506807668319796398155331617357281906022983568370230461798879940408036529986615462827833851455941832713051359538640037627000986826597079760565936910545910145338222316870290510151480273644108405062157124464003818786593991263359203625186122224517599524759367476157113147828259751371617908080547000135680178585721553946773409010728298915306233812248522555944923838656332007295585120314318198686614730760273965619472659737609849613927444969562219815619985456482106230719715825557841394780626128736552771205669468981229435829109593362195360287509387102851203433824437901005204055401596136259038475392723165656021932510118842598038604509709876503400087969948789968951108651274848044259086684431765295066507943540500269805942896495226392276073689288474769204258485309389854873547389321030936823347263299833971260280209966349597698855572091201220162702570509172137021602477560498257115278143026867892108513904573252182403630697151931865457479679590908152106407505445785418314141741425447960123777395452318629537236706547559233194334635969330400000580918695728666136207223097455780407977945661178149780353831478127618189382021791250596835185220961393141018870641783569921626211989937145663681654006813727348779237331142792622032857698620054768730475370245392531957850821592642201726386754007027423536776604211438741400740322457436485615916114540034860630449956883332893417813938950707706183299873044561077897542825073234480712102487760290378691563341918134728059571411156854238750150508199796222110600652804298425238270168708810227494153947758095948727793662325143813232036992045977041785145420695430962876268439166989834803839745476474630937521956234566352587487505936971545800537206377312114379720298744313961737135245739777608491423785063619474777479074355962833315726263546011507656069446580378022736487508435125164657339052645841535334440569285865043619725066550326377266693488947167667158036860013338451155731582682608160711232390854328549810029116302467382922088677731654112228680754567087413090805401642861729859104717109500775009639359426872761946452171732439200696895683005281595432146252838062062328573771352200244092436129947014499111203924515707626583851446424051329509847709775615656359982896551864598255885514760033503938595650480550355629057465973150633103912193597928797639638651120253555668191124446082907474095819822635927374105567517833873148222235493878943196882192239132039730555999680878645522847831169910366654859363920031862280087306072582541289806307530798091623831821084526166698591509107363843986124619863504150679157933685385268374633408899952974486539576276792082137107540306835383155523855751761360174835024876090590635378366689580338794675646739117807450713016287548453833886857680868979487229682409423487736451421760567510119753556271918329747052556557781143285533836421791447078057674986628293389847449910382543635377119539054408245479014706770954269528003427989255213670254379331980199981534268384598186478492087012252456707505503481884135654280677709628555403264337802275253713151414511973068840546634750497048042343783979493787785703792516399063453281268002998006516880409127814218095639298827544407494135235602029018280190835260229296230698364130395883161741226283671787845863468655649465627977057457036295338639059836410736997540003349065185802155873020966638301520496332101850601504403935607676176193801289258712893025576189979062543936277920160658207993066252391941647300874517413281206166353000936651031800366295478688120459913601650473487439100181623998990856939888809131844662971704409593925406469209098045758397784193885134029733932532721509003168995939397832442182167284042956229420449778730884985700216299087114434360122700397464695789408357605189335912357650350578757165305916302032061051309492499466404236655174765965342329691277283855113291296626637947914876188280988256566031352130570231167866328397101658009021206577526342164687283995113430342770586569809634646337041267664903176237130252570565784455911750790343725639011440316143538911103753857059080570465950054184038058337641930494044993310367528298641387474323795436203793299621024924093155435927793439937954917623022486893794242035758350970868676551264628436612122547087339991093037048662230538129440057118965275451682175788167995582998858445052739057082823704072776521477504292233745778646132665662399931142321181352308542876862530117563796874463329271074408348443029156439498218381997753173821194626738867834119604953125321825771247562255714348013120421172884524462356659915925311402764086537911744150941804085148149935300236814458143297822476611832104230543898909507347868443012004280721310216637820376658145625507160853160950284003646493002523211327505438496081362659433595897773111874046088559173497076713146109412770233535663681839620278595786618364690866243512792054654863054670687655740987037974098027854707868060876778766618365686551370460388008517341432634785677416804671114113919364718350409928301060993348643462444627141233709142680779455133100095425337313770992449211522610166893431069108092866764055117827966775242225230994467001448288265006422020528999642920067488435094015696699731119453041906445712443977914412858692961618121892349315318692871008210783819761671947040099779851792972920050611672875214765050622305557884137862881111371749603397105124006812634451818279163738103578182916957670096502379906941754158835391890335296484138119741956445882834561655210655310669940876685440633827329704571862515129701674315488922034941994207844135062500018861407057995117313950799028193176877385098542225965734927367504035236677653568332679051742952837045596984562313230677406286046845597205978647613004015944002966868820440442875895162174940723480594122158106783977026718433719647296487298925681267718833537663921011004505079825539115054325135590861316570758508146821352559540904184202400044027818025669596026411962470027362057815105511108322705467254934094059512496301435134639723168098207602244375408916010665626767420773730888968293483263371431586009705008159911882168714239277356748482251846554298174777893472018844057079335327581415756503443812699820095499553851641493710757185961101170787017155836092486521412001495821663482812508821669833920026263359186624752571446745205983654157569640698881413213241914696191930641065228134046049151718538419517646440450753879672537315494108396916850963855955416277453360832060797963087605025670055211489468560765311877787747156023224465245784284850838571147735296533510670988776866980020052120302907029594584410171181045591259174018639416992128152465617480596952987134537332251370036084982706467413021210978105842152520493981237621387848533695158202568050922161393269473306791448355698233436796138397896336851272829226507085160374192167951021402883244335001929829964600972427915311352291024864103358638191145910978975316830797986091146068215204288312510221964764367271543835206577588203276370029410690135001378813734357156684532393074381940180178882049594842804552219333739046428582908073304972842064373429682279338703058970140049858423945727573338953733300178042537444914365566557388492130532140365423085787796053919054052225460367502523489572001895438963439028512614095326403364971627130981633800347699184559095879360726898090927240716124660908889180851309311205643931633174479272529159623853819509612760552766561645774647531351062285643133686402984899972830307621822399082391353335974008711740245528975995006199578662603944781969018034155886168490195627246713204366906556196223959416153983062298415318645535653808240718475853559704315256063515560637465882925408192247353422135076694830846569027473027010110497768447197057534138055797514056661760761804243511255557421094138487126026960161385061591524996271517788188252846882475895659590071423705810060488159117249349654545220208035341290224586208341249491895066374762497438939190161352317921619360142904183328893554930345562085537575557843313971409862848383517473612480562599499406007298150472141260677460880488661694656371955194539303642755602862708759870006891535749640743172770348498818071300351885421070527494343358429212735147834557507209565199688040285889421828832788821017940153226146137033321659296675104303640778261367738344149409992203196733696446595070483899374797372838763020516420788455376180284309857808220573355399919228685602385453815647676809333007777854328288096124372853733686302181998355620904699191342003507435728562281507939037820681049529916196870179590141169219429753956563589640594746897821783976102362556577715124241725661971739065005547116030830783568148976050213306163904311097797558988248490377091187517272178059303336287229129567851926962295575563498672236171800539093861499971590573364851536696344392561799156684532186517521416173149874960012457624549255564388780414306878591918712225023133681766122852178488524505835335464263701526573262529129133157583942761649070800560274520797511914341161274689023260306238225472753177293184953219521306671339940899025970558577640621097887484358933520449893389840696651450989478299184872947521505568260738268787009601765117234067175117801829182515851905610036003810369483460032073291339719670355432250107690560763337542769769727287567573681538253627571003754166432495033803672380184654352985676177314430747361045212723249326337150881041562228615649718067769916007005308026742222441235313051534553179359012179344787699298749123242895524060342544276792851260992867291039400761307444444863628426440242036658280772172333435624133644835526454855750731134573581031969069840256394703688431363635161614987567175328270936831435571997250597056243813096024343772257142778149863882682186222100976454297165847543297327519791258460495371762238656073945633380145079450099439521319478618561436202292646841400569046695433271058456269745047360848656207302386611722036562581730533587477311447993480058397833459156923628246690458535613665068136744191016063651260341852062566154478012232625979205413399011418403678532640040986490591445509250557902946309055686502112405164221837861275681473145998166525903273165428767772929301544216763187772205344289411455517696204192403896229305965738456286241932409122220050114395537937909822758532009461851354811751231698154519257667342129376472417930544461103594946472823179502487027235475478469027378595088248832734448585899570700314148170380070948806404885894516598457339064390359303071174860752924310933334417976848866837995496907892005125897904863026655995257018837473934276252139833489830521394414466684687581995184662363766164747599313219758131636335661972904763393597759422256943511311012807851127788624016484613648647498692617020061830204677774785892171726992017144263379259763184301136783298164489408115963336024712765856971277618218606564471199315429950792976083832523566349534483237927354444380249042061332026907523635210280332830589251816552432042081274396413204655714073255127357953903482442948038787514427458515106171390986467185169233918000221757988812753657149012389629478577396580285086494976677434034981799937745579328126676596248019681959289641021580187409532184165700322182017898071176674451335362452510032625517849799892871421240618345075274117524454514985545565172557950848130624612010643791953400862838940018831490350755598523224192988174757079364524485995134775390520706995922114313836505828513790301999875875545137134809577377135634581565931489869837380065867993877978930437637789667630471852687661361508689595570083356966516090364743098280611187419835698577040732271251804140505356906679768152439182400228114430470311821233901456550396392928563619024655583195936007747965084004403486660355536617910939792299433006185385611634324476466439194728418975930053624610837208527696290175258240278213718094658013712608463996655292840237268293859957045469482411156558882381698690084609691667715590823441549010725771497792326251710358652002021817831263007975707808674827799482429280221125776733295657511303243162364346317243761162658656205808676998775189265309670776303420458352286847713796480454535480227171041707331660710988953667250554915202347843264997761807974122999846075058473280528231401734343698377342066529812638399274860484922644303140727576085196079050194121736753058742929767253358909575364458664054668742164737835632878662580295833829574755067543883899897511537493281953251743758243242437567380279127250438392634065797861629163513648627491977393945513636622490576932683046425334669929949602496905953918176025453929755375577339048515664764029100598078613272975991337204037376467142021083643655722728456693921463139940465209931026085768160897728622187991129733676573279695118480755618311900495669318331814873464177902022155554264377634828350522749125121345801375974002966653650935088274961776534300004388046049115647261355658046139960338892209597141570623194778118172834571549589452233950474874566809516320489002581038224985952562781198402571231671651806222401615728939331329359030903752328214163690535466109913166742660811277509447133772106679605197554368988575448842515205067702979576588911044892423159671486795739729460011651671302655876278318171458126619212036148565759368660955793329760178541452679913095526716183814369023416878502615953195708814606193809705072917299659830622499119169060314239837530953861603461533393572082461599082450366046028061018315490087015036923718529250633129671686548045605808858456411369982028662198914145010710226791212249476549847547561446825149418475976620632754116739001142147398614413547462850052915375221354120995222977183092569308938099260068064861993165452998753459784569875071769840460976911978499361401235170598421230660663461826098724134407869342841303477143253812763527673029784196702192148639407075414077621685749688910936370808513320029341607890307576177260245864490830945482583918826002782785880526719794854384521640145081691039898755436687885834331493332317606062653550383026334880417692609614437012086403055267569335636487451048953433495393355788677476493651959453635000404716535415171165630302351417436057968849477650263705361292478229223716765512777259139604246115992313731109012419055318501300042698937991593232135072654363123344765574798561305778793350312408224350382999311309764583207153055608327170874176825553100496041425518679512234077425755010730910346297817932711462770962576726417069859931925565453554298095162827562877281284674764351949356879975292775538046653537168192769733108935948127278103164887607225745327046579546829504082975153023287127507399373105015474754322140414189298159242898336768218537567378618833370952410010221307274288853782788024862668887380464861293831542495074816166399797958999732556680880744854098223667306897082587463650996500587209041232412426734576406104142991967722683451833124004280585448152994021388460387291485893108674485784641443137135932358259124696095886598651115149870473480320645099156733871831208969861740044664318991009800951443840582722101151390923473384379702854803604827626061668780927628604237778391375682376836557558337100534281922748873673025433623729710002651030758471713651111454697841738952198955351599916705735195408329509920006274438662909238461450578262465669399939977254930094977926014718487276329587197225723673329576346798207644931307714354536653442307093627109393563758626008883003868121126579967798586822256325916032616608589415652851838868248697958977558186663412090426285676786231182907247478916389602790446410017743495200526150234954426152368486266748930205988670286591535452638807654031114263971926569528839106933081238249134433566874677117785759616382047424034587155465414102324997037948666004339787344583332980539627741816902490697971051728892490140489666443168521433977278501162146084811608717508108279480445459021439953984464663460728241331701172897268677325188768824787521518907427237787743602751752090615741102166429037430697169429749260791557728585019273235584827369616154033535882906329772257039212781829650502083886369560620803411212626293377852251010443680239556490903187763300775533517854988190678651786302812982845104757993004117630268225407947894184129850400337265036474317722737482605934562146321792185260244017759725750251004628190944141655827816327891229285465407482217205342309565572026787508579823314866824185392289707684900386232528608830015208960429672449144465805114566727502264004992986536725245358026864792983264466471725229493268419261052637948398127225997360474291832371549309154761134913507551963446390398730144163309377974278176505407962582243233891644226941048075148467012004937085250803055868151814414250287787885187688552666857736029286611202999556215234411851488157057507378174977224127979409646954636651894168024132200927632879351509932855814228052960707831493699926635346070122176207903405398330988499464303258551722940795084775269961250891794678824244696772092092337751084366879473203271470529503795560350097735603445782892204536364540989313601550108846693358724294645974144796836764908180166511513638764437810119975880142410295870706266597015363282263038868305822088119486218450299859250464808422440520437070102747279941554020473752217450511560796194673503772949087493445085164194730541298807070968315104195877778250411613845674784115596182992394478982036505015195601736214825486073866097191699579231607956277505764179016435867869313605697632041131811047372011867308378391742618506746108441836195716946358745092025230977817237949983012126330358496581832004517337386892164866879887580368953788814886814098454556334275345809380603430140300342543328754362432809546570676962563469976047168869983169489799812182980747580320639929519295741726852634322207771632579508816373217014174620163628704110487224707588268603621740618153165851049475391008177463820306044239621293565296348922242846415701689515306278070258847867001631539417702388698798069388980454462440312286824458164761160293930937449310004545728186982990599208618419447282033193428464250481025904658313751430210713635650991779783937570481151371393668366507737327526910813843922961177885975740435315417931081340176624503147853643119753958713053640645643698846980870371413327287605076651088774733783985520981763738074710437192888712492895802272252790066198878395573888502004171029465752137362067305467088168585172543736130108963705343822378086900997951450183384228547881713964912043297920506582769476088022177366746325923640441727234566177671016328928777524074648641458666475556013991658164031570322850772938375790818718020381292591434484429753139225781588335429566643416260728657767068269234699943351778648369998531455951851531085825790685103283064211958602768133556449489130766378515939938519801809052049979020390579083367660207122163858406570813585989162581488791644284287476179015486604497006594699095656341703185615393729913931123711481844097115216744266236464163004808832310153136458928460062193977794365318625434473460722119100317215514696351391189920400618996087423026464355105059318108509027954751158085883460689381146056960863862401706506637473314037763929870371441843745136571561093102684866065334925505175323366250564135048484210853016485306249791843025895264203567168811553022674080068685225492220766911066144829033634161969274032094866520880250002505622676142741101241197182650252465265914389068338547933216041736296666984876431382194091070435094742839211009992461342841289935044321128596187182535640853638863363342305365936869959185990139665458301413089776543546535074194514413210783313909484038680580463859584527152493900575254651607969944657830675431483378343966449872871065647823453462670929875562797365809609690715843779446594947047795704353722732505381822604890181532226251675389325178749659327313841971171379695595342299799956784839986490033330505747041446242574533892353994242102983492572833166790136595999291367106286718759940004133977623938814143155180397707259862401894075847691037015175164013400322418039147871127987602915954010237638620670245938440832165483927307708112587456252849469827830095768432176921626127088362852131450294011894700980559727236483863097026485791753197617048760596648822632527121668684782834902738434315531685665120062503578336685441404892783127277109258649237138168729361136056942317647334823246966422636443697505904189943447574900770330002954953395586706756298153413360445930842476088120161884805468083242083853833009956893899694472519557570714602950495907870140640421193335224332205611128371858814607492015656834601289012405331637895940435656015444458399945819224986793564092661163536175548382776999352155441074425824019642122467627904259585206327797453991860979826299593413894135529015129079253155839761274285589821011355675409521503798549906493138708173484276432301646443882468419745865775066742520502948694684299666408806287303541965323957974324298522422761173402897873557840867593863902767111189012823220288315705561498507635896916231101802388620919256567395491513933724210305641834655859807213562468673772856771977579659187503433888166375326662821240718429983831420625269445583935624476529809070939766515588766527126477413703811838610893322237677049759984062684611915267075581940587548593721188829573672883494005772080024049686337159548257309471145441379246853161534784725108030214903573595460589604258602135946288336198139750955824925309479638366192427243781663956597203480717210663615629604160493892933050586518558577191818633248707668988425418109435326141865167344190103962554764978209140609282702162526315557854199252613460166582457431187278547493340407494742556875274228772968600855837849719486603467699265147548220775139138879202642426215291132022743798218053816153302373150533238610664310646030755169076834456394445123979619759371532880556214005632128931546524644248128521128038728435320920903025752945616789891103065026904594179639639354706450722288112441244469011380709158231106382075462054108106722715982142015785722998342803578064024744144287727914872602458960987194811228106842973118365913150739363993613742445065293072018819069553771295011254165335597156521375754267883512655417951637988833168348379040286553325102613474518651247163512754523799581749433200254294608915504966906896794978656935116304658551147653549629184330153108485009013519299088750476741982331847461292560824187530234340446078991776089329870524024344966555837688977266683169076457985752794912729249431700139712429397313268881070789767663974619997396493161282868563372048885124727043535047225675869930166950580767342155077924502332921632347015787732136492030156339173018431689660811836501780296347128101322945637727228804290463636818231333285299628911520019560343644144843217923786795693922755189791383285162369676427576243973949046995768318741362821672213399984404038098823606059255100319812798469775040737188571588959382247026401814913455523820552908081228379780320851910632811060153007337017324162270370561310274809626564474693140563001734057543024265031630312079960624232372096955655009074719806928225336256952632804132465037292080926413505362550821298337550003142447589151298094700591311464129026639795920649542453369622418422193968422124030229959761415108352394845257343095104217963795947077706538696533727375723336724013616636480775490243550677127353726807308056973068796620202868088521866727053507357992459984617721370390249344447714055711477013272468520609839118384170002951831487985589283486166651621535703360736870222738588315399966114427522777626404404928161564598099274555524305816593743520674385862263661176710920507241030615640964422391209926918153859020002728466869378275383423604515880158661176775803652148338094146192234566217919221769920490146216056019739121376287656285545678383643350867693159613885930478174277856798712528188443827656722671599622318131342645896111715677927856079941744318072990047903333286874333835134986745474023759416919572688730184089502552294851684306403215497295681722436838551163164750411366382101292400983633070436703833933942339013121146751958280772725855255808110637774085743179226409858866206727819297811806409555454802696574810323463541399736979438292978183962540569512459618605549483776634616436742841910323414299118134060005894573755405236914244860212061764302783711581856361995323079673705818088126832956346621837173807735553869700671005775899939792305049472783195695541874520660694504844422703901832340612523338538884874042792568152766334593414537037757701910268973333732391339179591845906121706437348975845380810617180880885932425526100796921424073154145054997495122742810431080059679676127928088077650653376772859909521918722140408878526123964010094206610844341007774482872784613705753946036172914085335094578023905844396013589515867011158244332926959453640699949386759611473304016501309465037064721729749535677546777535856394836224803961261403475382779282609878173090731163360172496755463567869876235673744469045228031609688865050730245641502116604939952426307935464609063586597420051090047804003653456472596026183504721520248775071308198656844929618596494162428927881046628157322520031419446738545567051972643192679656310373613459493633163198634222520808768642852083180666608672273235674044471041225719558516889233899087834573926982957029186625150800411641490541421298874880172771704761854008149043278271169810247567730125501111576748290946443223083796477455229561140927249296717703689997381891294870283368794806659298343745102788062713903473105975966690740419111620079599525769444486672664532704966738007161183623438702946175439118294850600764994853518080238557411812896506492820688274005464663262668691542861153811925999543711549832267055941232780905975087213193614156632418554094443717360783655173248925857698018883729521415090149611765139416289593361028719780847055503523637274230026424468163573862253273183725321318897083008572662834051450731288333561721418519442483537018013877458507467500751319560105551416897345779634104162731542614511570826733090338502169995830860469717581314206492291423687871033559255289220905986971892216874319112189033040643891802639770970325551372334432145602234268414255696526661703000324125259072673107699991790790840962594762206075191877157583856451406675612576120713008396286546893989006426135600155770169434472340690936288186554735249278582634273068694161125475409500036012956018791268453914650160052038186373498711697083672475990533514221370355669471875404811817467703353555513239993202793693402607907929069863698329977203719086140734981556366545294452999573226211779859286382491252383783635836303606578233014842867677339689796228189979031624492173895321273635122666367160523911888078887305365541746972219506127663323864531386936981049283708796715991587166847077848793188834424575603097723193903964657194503243913833956354228873322480973687754488529319905382724892156465155652341292136561457681480255269737270653436349563052270936154719670695891193217834574174129230613597080650178566144807592868986715600828669817699720657858543281823369873682762049183054057888757625743167891620859529644992228449818644261480686435388958839961464426802485248105087369091796340632634161273231132854817646638395718795979809537194300340678569086069643673627579447659651559278433465524964772196703083222280536363543914081516627965302915373143256819652971324139664467679484438130092097240042713563654746133767566950895528933887084465961342098863117663408210089215083963565109328634453565781677593777663452029807741883495580714426866379961823569419250023814109991002773762176993729587816211728071602855040764579885379798948672483223703932864574066419491534284944089714226908221082094802043489657883777814974075689452515515544589055056619104623488054794775625904971328817874236863815613300571378974835325567566919551321283057880554910375103307612076712808446091370859586616351288576110755824378858287357814441752857941979954616512412780072122465435938429552258284043954454810127392755096546137996175206773608015479273347472918625157438964479415291792196447115379732742717352007279992014264359389804518097837095684802764880437830592261719807074521138488815537483812394878610747055067794085303844826509181393332199099384499905557525915749774730123722315590871979040515785828951544511596457071159789806320882452938017547764329752635048365952507978008361609585948446361915748788640774592576667494533513179515408814829869948256325199171566137903550257991538491624103207803590341091910602136014784901041532937641006089780404654111573211055893675091878092950312680209521631042791780942961792180971021133330438795677893986124123162589932209679020691453715824316868054192079442300066963281478871744111902309617088455141336385560948484399410753626534281534830590713603327641808262365684174240255911826102088412435009954821854032203974515305709803572503861998834790927780935720701725540220879989033871534149506952555792085825643940624631039861208742938399159693981367229747961070206939472638536961596536003147525291768603031217665508965934561858414655103905711143277459944356122203337121589921699366586991015461671171436690192112699564621297404059080753508601363444532962831677719430679659464154834699089140295747397168533230358788157427819948010733563403899278903339753773038533995979841242485722825867762574648817268544008015465944275661060196128118498868017309691193969320959391040335515346023307446614396933493098449246966000376971874447050705456116565466828289416615835484609335075905309592858455622618127660674013730476174445976592666839572040497306568789648178256045207601639644893618453953542605509644537747300307475284708826016938985427555271125446058801040275581815680109991438768663128905243669172336417621847444309754499335640283771590219357384888107254034838023570431831719501065327000166735464390829589634712317185290712699271685701952749510343252893139641222364111634358104497671504086094645297506261176290235198469326541815297226565984942967129365827573415002666516110081641239804041667814584505959451550014697773464755039350307540953059528904855531041032278236724095211113756750159236449453144766596572376163270023415310781013335432199316813642602825245625264558335037755296901999401245797544172722147120495516056173197091797403422844106761112705057961927696779034661209212760948253068002327275978138828769007094221757881795214384863765832896683704248265206470639364059349257867984865836904033768172940123847799082508965907683010934164572557584073470082641193190285588164734403371821881633891981610447369833883481628871448421442868795271984205848716697341107117826004658121388693749656102527476805521427537113169191648756708451537657718191132131490731972155708361937019867696953222695788636621142718639879846756787977604984599065230227654322856490810853439778841420691609729507885327755989981018246119345339967441601702577158379213412987685543016591322783119485761598624761680709294587406135926512516167276825240888906597550866212628487135115654864206429428489892155756050491803325106890652360098474272050302571559697549870428314128684887698707154157749054829517490944054255055655348015326058008092869827161930415339201286215182169372420211118261314748680368444503620977380725010071373994421936976312607301765931173654911704280491066466792087408394843670071340798277758255711321643398680529303595472877783525284856872415597062341281431573200165010462698358960088153376286076082037504150948402783701763651722250888815326020870289175312073455876807429237157466151164208806161641933788242796529831475535059986207833155476599361558121832073593512520600143654003504288322644455473622113140513154608918933369878448789823685544105830426897266068324140038033444995338389727126867107915298110000318117302346922578321210394061784824389365054340164871024979502956398841728161067330011122769676942357142373564609112934334058215858111758432123503675284313887576041815781000712667519330614683313290692288628875040776756074435694992874281516483134131885348046901302055418637861535240054718013466463937361905295247247217853626573539932463644316559643798850292102598569082881896676127050761368987829767980714416942197923603374021659792134978407258651279953996583668317991984402316103647762197287863728441047336516197965332540846454356318141340236857600660702743514154275435592323094315422993487248466144250939395596033890987826753167517710838030976959700886221831152425478805045685573745530589730044083628667549799067762103412820688757637647937399683730847155652406070827958798082781632377967991156724537824614530648684732589312901628349296779098354178612880094558340886351604365962547516830156156747703213199798416688693097604142014030552611976120019672246451379940999680970373173117258625516823293038843898662203844748774264203362557278096969398550502893898080445877139239870452907737852868144800171159454062996702805781713505402757347300819599093191505063628776965869993406517671096368786400338552813529191629976805314479535288083292467004174337979744066202432314462964325012215198647860932086180308410471608506901341888617509162502001530536938966632264639795795848681404476758758757116139213443863019591232710797198860405905839880203968584601326918540199557207487018530333622785701791836418369075126776334983187374783701754676531129984359249293097555541104741196255232350273342015350763338304594842384000747150873546081253783714555221475803811545973740979128780305904499274442775235153265794453365426577326932842846649552498778448799088206845248957454740644419160447862484368093195788547892824912858510641196689003586456651654391052981891058425896044984522796461633085923032487254959461988574555779652844614371511991425537112749346344326621999937652719045068947250552805933742932314472210759325607292775752582466011715536758825445068244198784696376954361478603323292234223933660216114033458968288516768598397180105708434650098325438766126933607461131926626411472133900075937543741422113927415692320543374900548639759834484937301478259430700639422717197713882678175763935233085353781415592576565529667487571629264265292364418226501625965123313877727366403787486628033613715663436357126917123741960897338422554946285622945966327160762775649121389986622172237180387233202590629237771069884213863297054587736548405782979124824727818694570377669508632077333746113883342464082860531681979653701436431090399748226482076814173327712653784495541491343305790282619449258004774057653717453227622896471161962903458552229563488218291432064788884430549331974567688280842320389168088279901778981467765237491087971416031324389179808075523149010162564579841434301304703596065456388616152319100642613161201945671222776108430614975054941187734297704144960760337117740565867411838000431436147282679757782793558677227009443908636703546026791230624991428047615454604725012461744241857254501489730542054395637547582080396448107083004826243979329399779731957646914735709645386051881384761125169547236743592800206355457023490094937331905306788117833229324822356463708410489482348640616395507476842926827729734224028085674161080554275442048213335662623896788384251622151386498827604061028597115053144482824977037297678112319116341408392671994401692587029707250773509591013053358203051687215025797721843463400963176471591039864942626729877750897208128875214993717002967008942936296809465834399168986778695957968552681372704587796570044185681701885781642958956820589879358707634657658232627060368264590851771133935862678145519089317397620017252796732089711288633358452913624026264499206756010731500860388278444297465954219341832112121396149979325505324172368461976919964575867999994585569897489024904985956448589875112928804613335636225789547876595671046006219836043603987005410889708827945775702082777495465406696244733410152951673898103293147339463863080532513055480886914878001090666791215347011839933450621005185190896855194622878258743338422932806306855643520225161264965345787223229071364133460729279235461978915711499719245737082214263839622859531335182610164553766428192014837765447323794331461614120167755712822627223503672415018888584992737296967725260923718305060774373616507175686422574357476029679004686959342062222049452525544192749839648519216032762041842815188293396380305282129627573946278827397493363556217819507580920157749186927378587092962388538593096565655300143235943888752429840721309430975744355734247063312666443672111553119062795659683070882903080238748913518520411109930926653020353815720497837523284934501771638349701584575466779728703139112805349821362698210077041660735202935351421133866252353601025460615366071174250180477554355742699692235699948644146444835257087271348292124216071661540773263714984704056490331726069525050443658569918046352932746021591471835058964386162553423113486111259509021858064287149072871377788262653478495072525800874179009457233719152429739350083340214626829280658303939439815152307846272906796530845551856986959351340952213461776032654294989576497776282154856754816643196125395321857518254099302467334522784227324882759204532055948718665491857059620056195144694291794059613878187824877622481563741166424255480459853524807830862605386580021614333419015493046958632437902057000252679581354119877385297742200800459862027402604848833546219148675321134116248923126366877483576555547685877399333032454578596946815690936521291187593045402850815617309964240380492284432686840061897824446012689248983515910680342242218177421535204136322393100757743443003514900586321004676573952020729578795236823272727443607457391013419328508125161905698081137918444905231252923421496900838364436946423015305543265223295190781728321542328541873011244119771877203871391956003379195669739554996301515022464689399620987217210275007349164970998963677249950272653411650078250323387391659237410372832233165425772566923440616173029580499244256075021374205331858732083790448778471188890261666951174963248189698691139551352010609794394716923123895154744413010588476492463176921423527380740456879765112102543541424969092190134334658572934546302787001073336459594715124946734949870850818301691999469441347654781215685097267436230007720910815367428495578582665280923050426845388153019025271471269845458984611760972468600744062971885388308897940170996017365619592966110860062643049443126725878112606915625546263272885226666178210962374649344220373324909156657784401529660722923698841079109976596256594322180482160536145533241048895297134706770491693331366415407274330542180570289613197698222443051772582371926623352207459157006233655969429302644303279167517900995685770808477840289445874641810007885788276303065423176889160191783443380338502347720100614397633390548780518203249572165782233594900840408363024835114709135838911548619372940283385244879815774232153688348576537014600555410296367774937895749517855316257558658766144176631211565020751860746988037135732095018607397111206402736451953732376155202546936035096849218939914587135635064454821336901477066663241953815261167345584221781968516541699364864394477197479998631141719144383404101655492380490894173377831309552977680915725824176805217901011627315366241383519934654122272123582793372981103763187843642776978818400640226032240604254799352129427823448667423366669575592427720113271547071821985674938692840622764364297710326716050003015900479786914707651191888887252101992831858705181683724012770636802015763825660579611035141695012323813981911150756429808357884057780530257427248194016855544352218579223113646833459262421510408779386261185820633572892371773132708367703152528949240348827640502413405822939338953578920045277546444668095748042220010351818816025850664554155534834395597097197867674272494288024331110277870014056973130948306428595034079368281732224472491976288363391432006397560342766527775879367852747983949439452672640776606325238286946286176639366760330428864138969970419539685804695069512425274659544252685816845840447700085964772999202037096942313482985609289859222060949870307950096497555702628781299624078169929015607297849794316627830708479997525883724790383728283227710567890751931007988763520607774196651576086566777631813362700537969379297989200525739178425764018215523264174373537633694450551781888210435456789460803185449350094670668746155140068292184485480727315641403275739738708075045113218097248316446111747334014019115391097687563081135115872039363166970692548395869878275202789985651497694535527978376394663468606345832931619577390051715442258067394408866426734268867104181252558816264404118321563163205818244550181955124570965570593579348190480233696587922063289323170446562089536098968905509683070624547190250655936397666481875638704143290347408221966214471794508843676663575550825204552292316345188422516964814743207103726267887219115085434358677454409733265128806629123690576662643179948355888108352249901009073501090259142272380060940028774237683903304799890060529018858528267997472362972401980907988433989682132657232746050421766207619801529013428502452224882513212874700378257683141506377786677190209207555068491874162412402680475624488066928059873527245878055436038934165482984409025939148281651811472925540603978435865645400276648330985748761669053582599686678693504054324229143142962767548054665485335298372560764799187013516018151503184451699173220788945485502528788625322251471310154721481991927671625436315925135082032586079356626308966315573578087674706526705182825141967380090766433542364078671893231000130922000559312269536126081893636680671819388365013319968046455818524616296466546028086060726201839429993829637520323265154515151161707207356915472098801620018009592724471263334501615683248760475731803029519544530810224175992794861318384693695749017521035858171791784245209879163205307215687730667024145906927839625787737324965319562777851524371191979066875655701621711632160845136403969535357663297680184782757633583257093647302738609299065832056036132819859510752572607411306775222352125019453139137594124440116866163635419559030825920243765783153216840407237070765995129731243861107952649439461637151090714992037913060973951053227064868831207741809369954746669944013930717867461784806610126748899611057302708734412205065639460503574463835528292269342509607801419917581822643017477071861231518014903067249438098740310708155937505584567148577924557158922523684919266957221814426373740177500058640915802841236258144967796135093351869595671427709134001940519474776511356549299569769814210871313038895165552560006970266253453544236091724047614409985848324257163996694380319365092452331001153347262106774722343622513469771686518696162897949317455100344650441141520350485131987654604907917154295786674544470673548172343330150191412015770194831633680781336195744704011781841650450176677919549064225603978151656660790494308937013301330855563383859130801133571630726861293074823041771713732832575991200888203665223885355678093926272337693466991673776017306734071128023635175508644899329917552975117576847661213256331637569305779559085955632570247811055526705258356316460264592523128708977882241308491207645894695756079573584247926640425057979298951050026570020240536771089890105356060806855485490709727822844684417444920257299110992511020679548469763214789676098702993686831604418961538936336733933695076944833045522434774790548221394362560231457734693387002211002672577769572502596039620194966787030352509731494780602060944105283191877254172707769793322835768375816385575132065351056344412248373626677094197789769589900892563168226848776042107503070843245147611704665168828123009823039079450707149857153566022939402863647277231495422906969407210174521175120760906472829848872283456012972439278865128422661202283302220107758732239513737427404428055694518306598502677456589044384621943190999217979307167075023957755452199934969775799915170053067520103512403342067556572860099445939055778277861287096275216890967256789666484037068071195618562675861150291281640001101960964901484490584242246771713848303739591179603829630101695598465671948085708845654070238148200744594999149769667316007369305837917702117791940230161423965919236743019250409241578071935164693207753595470334589463190895307080670703814186897823328465526556484975272425354324011860442406668779489269112183564679113959189743014170598568754770418000135395094096898442549317515772303751328136944915255878794824849771469254667400317210041352471474058018778638495295251394936202149054570468409469740875561478396344001102243282076712857141570768129578063803962782874717001547495879141251323669486630287864992636674755785091484043302026588441663366288275374371132835865905291378351476062892207992815716755280457933790499189989030767764303165411415523811196003211725782940599380583577067528996349221082461158534982092604847400145793826540550552508850020789025943745014971547824300446141130056678892049581022055762063605391901319630459175250714638321618319363166620808188353613788979854283155233788296769793963593707350921487300246516008286156815420951964277345029250703129230120568484616853307421748384260468665990923264760399057591516399888844014504828058778263687173214171345771005265567154030674378509073001148133486383789746425507394905236645180764233526903161377004034896906227985983966353935652113193690937328805518311287933160687928607039939497384744736807318925002987886599762265487583879676800207821375603124006940682172100446295635300052537351996481338212174595983008872381696413771523384763919681340610010883392923856390254181809012221556201775435225015859509148935454384357322969378194392070130897507345978451691356727855551649703081787105495631917619608041563079939199152235670252608889059616067346783276135690058498781898942286815395509654725733062672964842869848630172040409164749034920448704143191122761159926934794608508754793499323611273442391615201755595017323134436004389604218225006627520524034568003345248337861773935070883294600312099129888660226437297270583153279243887298473743761753318883236475693840436016940971080677280066708717505127542093606742705683067605468587483995627755146765059011138065917763358194373277609785700442406724457036271876573241316883030407491773157100535352336846456150775074007470924154591697189636569212717748570632851049593813561294988817701512024644941832604306248492417347491084134095525749219150472737802138569228701011884072745261428663295614055945558287500465697585369745338341697860463268228149924442228636056793068426814394063093631132005710519572076400017176583262364710462287920053149346616506362076305372947687061676885238126309466626311475660996369326052884669336973420109247670597454365700170359996565201839976985636391029921126593479312492993200875760209386669472102237562194336262328700748604830420097589618920243987192976641904618465190366836789816741285104845090122287958672543972062198506165680393267131845910940894924411873119878394130219269967779420959385625917835960242026547486335595049011510650456358335503615462648379645921983136351970554865651673881966987156617030534505368588222100465007686149536743961742547876505508005939156906443253853884078324868691291711396157055262204024147320540931344664328250799112887780605721926836770359339512591161580385660273462561192632632380862038120805358203937139863677873556146377771211193516218021519601565807007769087578554013629301240657805374446849346803391422416669990358431967908074368244068144388490109091309545243649395393953694706439451583304601362819791903091992574032415246915978177968106355671230074083565750061134197606698489216037976704277925038263779164524419790161384933669022332122157740390848083522521771396413421447625741789913328525536942638551211309927154239173270061128904834252583824008377869310135963601078743212165746255578592774965101901228332757383720255758075036617256055234368792709416901819000513805219304796422497619786399195776071661552226047560629148665379145770597142299207792485238314787869004968159607225953259890705670063236373658185156709981667270322768923984426871217235392583259634253620409237148990055675337315160311270696118849645101966650679594400557029710183163160705664527049282811521383156597446333934640281712838934148764711492170239329646054519301940231979486542691401502718371211983137288576803159878494677561939594083389566575676683502572577189986414006843117427050088392762409063693787822568320438734524832702514348964268744140223042711385784805496790531561770154333099226712546292023203416168188202207776467816677124863379655074036442687560470847415507937228966108097880961767866031997025772337119884612365280431982243435073198309906932867348091092659182862735870128573493997458635832762911414974554130497990168008078963009015525466603186839129073632978196578546714063494841515852869207402283755920012734470001773036295544090202685673575070283543073161871836299286619691729400259126075663677558996971672759007121737694589592686556161781095544474981173602112594750223957010401115416352366459570301187155570527127401480201770955054356317093082490717096899675932855610228074746092012001190516481175583404836950313719469504249545442843080290694968797186841161594770358914204994574916235617164954132668237845151662692768985719087258309714872220087569127422848003601106402131634268294910928965906596035410827282738295827883628056875201077873043516923619091439763945724142656828371875498515853379014953962820896219918036808371155277783736910431250700797564857699882055951239574373583001889729843627933544959423877954035687387386760752683115647854904024919211161304860622856598886971276329205232884029408512613388947899017689277364350305890283338361534730756315270546394252224263827153239216993084935409696482689491094880483126795100474210092676928942877873240308936646300058008012655120250839866906625468220485427372698588406177474657774922520909223938035850384358351491393554932486264025565282840164591165046031242362259035750028808973509349230894266586807170058708381340279878119358078379542315153292865772833242154637666200411952713884339744841296019502419881050879061639873082476038045460785107817291709806605750661173020750063607489838498993363915505972687184222059392977077246906627620367287348460131007966199022579149444707772045080755735509147598996739823247765606117718352397462237482693108795076542904012135192700870134666834544701473662442586447867343899999241596832555150032636849390393613848783599057939749687977422589400406487124795003633163142160351876213162281066352761174573941334275847671110045458627552378158939153410507384469174638185854725965597138170247720802263123933188781651652495947505006422672372184718077554916975501356911239864351696341781605134362999091667450463540110051611751755685597261152400273169135986382030939600227996098314766124540794918159303044783389118911533636196129784788391550781991636929157775387548537836194698320813342005184665831358376151981790921781781882216463383523275195005400479799889713393462461323449454022652525478609734295928442066505221577149586129887585099687369347741136784242258880265712894172779036806647771318168428671818707742832178988845219564590060374263479450040044118491193398925861853820306243834801857301505830386885574705251037707591635741034040514064518471972659220627834904057541263146899796327476994900634248450694795639871901090411399839039800201953591765757243806828070880162874623213218901598312133375005605920100637413845471627720504820194486094019282851692109539969723468235196843566932744198894688756829524481104600245729819251280403218705741875026483872486320352774078359057033848313173717107654462324323892536702334237840217169465922787843978397623922885212456115757027525104046207687177471933725367843302745463073487734082160298676437954754734049227618985531001989478081531083092176586274094570977601146420184612675405218603967730485189158887696829980058703049719642306779227753476565240484414400089365153834967772669854006552626355801757832763894206419558996773489056753614204387960214816285314751832070434187870987579351422429085031050174498991840687930880066929923634713701165146913876497461886965667624829220021943093901813337635409209756346527882524033427116846025262775858880218411123603484480340304449454274012124391656016194552426482240060050332314667080154326671532886278092745075594676100449200382686936538116337692556187353272070723488586661904875859961534790327644013450854200376058197829740224490623923011878004591165748262591321354456330748473925807881953974815339697912892861480322675690770102244473227645655278240985973786610492179251806459354265696186815266407299154620921534517359489044780032407027822556653458406765216447263273827852051268023804958851202243466806147190488115660272882427902223783367763931722536851035936849666235225531841245399189136267968722861897087995951938083572143090684507474179428839547273603386066883210640636108549626343795206741587401136493612900791798413300522560047854037667260370888087674660459524329001051996950729020402658783434363808209622577141024542427525253096812555005211319811615621583535758509178757152844547448485234450887541061982744514592138164574966023611913350298697802220668697621501009804512839557957062571599893793985414869947152544884743583746740901261359851906778744733803018583653777943050741334297814718178545207187297488314118608686762867613481006259689924867520864330958144649598936242774835121221041581306196416769953482993620491392369333542366718147435098825373263513814698592725191042884627925665882706880108164952736399130315923103569619400475378020457753696016911529411377060897112172999893801916939735181918607362719634324076880842800896620293542689693885659231631992113608605883691679286393336567118905815348220583433295562045343124521813159322687078825565157373171441611069282135397721062094548135850093691341186139506620375293475236605166711582425978582358807555281530671799809414257285758669693769926920998085692899417047647218051946068586417041321932990875787468442099309925219552045005536630532175972627491440151276426503850384703196160991661770854696286022339194260513381771936794545993354206225117880023849071638608537221159601390910834645966375857802484854800442583183806849320434470044685879027929077091696618760308913476754216557677550560817324513779283234953223442853651576725613019754350335943845709004712744323383473793871243648831240386532867341082333320010839911736514957413149217536579744941823381118550875352378416689898348865883395485588300009585737002416358099614322804776026229737124748745618123756141832106074704487187956208484440786245215728756848859563630418137550237784620479838783960934934537520784381929126563386121594984536068483836290619022477732662922080315421780764886607437355396045383237029348145974438624361603263332921295513168403327639147882138758739447763717608880952290911247628215384953089015250836324693118528212696783133070227685622262627018778778662372293181532762847131370995840121871325909208262496434962830930024128802242260999203028783554351374900595885686482684772436529632832533701534830998062445865876996460624437165977820825390169584347094976261632774572928458431503108358021479577318012784482941201522426472743241386719883825665157754213233889473043165313599364829727421304077131150510814813935849217982169541791376132437391166803515592323812685507017808767787778394806211528616407495452955019959628415924855797122905686145935629783006213693111206591625203168050292317654823573390425103870956597822686115262326402720612691311136886379813742598967706255366044927254830317029690698014647849727567537382409440005617428866724396422837887816025847970788887338470359535389990574945148711253533065518660731744713419490711495133395743349246390454220094050698597563428356819503044989553073047347711474033181321969061986367842328334780617235044083356554360179773395447827305492178827706494664430147372165551811291729496509930012704418574956996266518449502870614069988100879524504061372401553024460972197519350884299784549610437862401521149357535335658080206732114659544307684274816161772926105253891322297847990561667719916172523130085046523664694951999017633462947157416000038573322224478565097075525642804001277189649886778829373347795127094520722473077060308471417318109720650202470152099835122925974109312276329815435240967746540269303019304600031513676356758139130941416663578862549036524455095751403523346496686898713911594222565871738070212034783528663880285860998031540803031693009940702547468583938592799600309331751833960523906076186723498129206157324090493172519661452690049684752672972047592863708670857377023948636601029073645470563580560758694089301769955786901715402639643990549755753048248986543203273823365504117331853403032668578361375506471357560401874391340639341965608540967843070629779145663328613913816823906338822237188700385382739106155240928600773419582262510441347587329932193003470618686083993262209981399512663616592795553393373069226560145820127822918719992830981761513633447844091124063486357986903782781087801323693286781576879301181591600779087875667612259173149666595581836510481318078894591389064542027099421760144481908753189404098974878671391854950283620633977229309336085465419209049950802260212288641396460191299513175739901923564045822139736168586270023062218210584640024460021663856211085510959929062921844104971120960104900444454079710114114579546947299158617775848958550676730614697555888415581384290947958149586288202647697875812798945329143707365836182454846768638663928539848168758735137626967664192468859199792345770316035021726432912019223330715885070450281407091413644057397592673956186128436883281475681346580194631477430687583966045101037191716109668100888985491225366486601873293885688946300255830019018561723927364391449533476307412398852102712291125714237436008379166323277729932566758578467992487897187628082058022804986377791065548316044963210316354232607619672526326481321553908935761822513589764759908202288327976154276211791660900384513715421737943593946523276189169031813691059333114157332697593215050366262508176257128584964315561911080451349579962227583917963202469812749933651603889404092109636983016769868738557949257223179318444947824685529320094825156134932353506539960093497327488147359709253931906694655919091029637243815287248116087250972568183486168859858727341073514065246506952721211021331025721083153382682107038524208637261886368877030783780175016391366519129101535947661963209568111771926244577857839148178082769732681232957735317841972738452171983244778744011755477401621103262211087611769340407547297696226408964873353921586623283853046923387502333116696668259982238496054035763432784621905224039547099042076363074391939756071974474542669888870513704029987266191693821667139432386454142173116801096423486912046925433303314305909366558605891599850767986756644725739954795188180409145040307201940693064435360465618873558323120107674682518620925347004505467192712678145895904941399255291685018426259060109400013758393491911589483922539033502631207828478856939806145356146751203165564668467097880570673927801122378784310136676875394116541579951553418329938579603950713186670439778757764280027846959900167326400531619788653999795135547872440659967359552507457113924106642726135803731245376908407763236927803984059410946395255238920787836683856914865618724996026945542789198156720512380128715608849684714339946952618378842506685350219661165002737237258155349459649014522831839623542953727665367289009441330620970044707289122352266702690597442786788411530112984829308187879421280069936668953345869325211287363203695802191720520823230494959188237137395075706417147045566712289768230976582685124359513461819817958255624226446064496062335904238329580860467254329653370555033997877053758099856529193249805015939381136950516948781678057528613937210795345629598886060623834966094900405043404011210063376142111515618958353917059425714250045003033300646540660948448698148652494508483389339120443157216354099258077040968949484653105694045193259935469387892964808199981539216513782000933738136330129113644210513332263797224094274236733376449097871888281181857391470898671805110280245651820454623716321976575042624670977617702870398376306169957070708641541688329388051728283153370051956404578051849331148497267714538871694767773793679518508702174040513435435268538609258694975411011560420439250451173202695908090001798970260156951254659235181374953197708512160666978636955947695598830771288321032471139921502954168898936540423296091497180773491049107439934842246991026407193994402770126224088787260260213536589604378102342693455916869783368613587477925035174909138757447225394076498785754788243840879819001468434191257478389617996494022677658341323372214489249214943447345170107918196589720640096892628574667243902614779916445048118307831139850597584664102570404876407565390011696902785878694349769324488865196256074498321322223700921434259448075101575244352319843389051224726708298742006641853777983299456408248400758707490876890455349981800092150741848996279828074813854994318592458659859700375903734203870610431141957407976595819604135619631918610872786110226352769152188412782512214923458881232840886241448688014529551071460612712385759840229745683487534784633010478141639076232213489396062778031235678730081285038212281813291087367122268056967482331165955112629689605051802516982983827681254870126492595290933688665356619221566897959467989515992396107940095645920142040403340175291497148394578620573705652395769193488155915098783460894979557400745091240695438508322383172546134432559945690118650463214431756776128475877151657226902922232625735763449722138724391774132847227030024088107224639404953804048759726659471177028792331526385780777449975349951611543475539169678199758720011250518205246509790402850412482551911263244246414771632713595887467661678286637598835102456961697869957421801283379427389217943691249547169641061827731413309097936792069692137852154306382359630715090995489720733853039034923517864017898873060777517295545685905145196989838351219785265783463511485575518390935795720945244390330480968548922318772244659341537037305602114815273332920342246484720334481559290947195033218095236804063286386181898303828748114023964405730010041121213944125961790578474887726075869910097266888947204609296901683735788277443997473653861711246892643683747389368103106909784202540182882240129170389985283804784883092498564765847835079436877268711906493985094617435085536235885997937046824215588143496345488610308414677257800718697165227683450655981834098138909449931679097732331950887790193161269957190293822605676473783039029324766301565433852660897605550913824178573978169921415562565181217781230400860270128959326438363063207777200217533083214905011581449662691156454864806646261615811028151644689798749595838726785052893807115250131103599793097801183773233343136064988175615768119433256497172193297415931252380582830166719088240540965632757451090062177150609724871749820949562961969850914515134618893802383697252446643259827864246948083290960287945326355564686020834972244105858078151515508978458947975253139373247135529441256864496495543380485209514005701274957480628659873288470708573765882018888331811756167388841541189936562842240844282071255787503906037520060620082098105118977037666032012622437770244858233658382147920815729476528407861020997998101626358349959040042425273561042598901096713741107373470123219461191527646641804316768231227149229378010779727380018894409046133112744361658344184142805667041856885001855877401103594391885713090741802629747464951544004906118952081167318505675308499392062498506854494996359213361080151957213079519358817731604506764032749431191700770354867844601237423193188189322906449370609480391640205320475054433635412962428835390857909562280309750177641449715020669389946475748058130578248944751106670858186093729877041882278740684274146314591918048595738398244948183993744747042802096364771939605018968015499193648559290496571634488538269951900684906337595382429016048594367066967103587360180937581621644813580818867120769022334625829643592059333181416795733825410030624798730025169205366938656565260737067721640022204102487934369411604850142500137206995369111086843026280826942409431826139274329898879251669897465607763494480357875189494143131133867248579272218871129905526653814020326035712655378287202660771786027159601330600897898253860478500664277830818333406440774539462124367221333970876158535653452103428714432787181123641828178216532590713045700508729155556578946191266103989767008705538816287249255160841210032351026904329430515740702959686064200570418352249718158103114012776555577153803397045614149205529986152115965521396834417235695944931482666499860773093477415273812106476881649040125034314209748003927713783056931145992534915544274857620485841906908179354587505993529945470330117373516674291944456036237237313149945576844263877461767307965225779552229585507917667769596728490787418469205694710642749640959057933547528396559372921823263934688438163713674004017280622791845866796401598567641925799920176803403163027123656627976783660237451449985404178248493127525643985874532129838415855713767873793166524877848943037403277581644909405368581191537607996767438140908458723730375324770403161412736897268503644289662322939880802487248162695755001064321590178222351061872194859035812268999645616503151762388999749217512083061469685028258036738447602302185918144530523411810950465526022244835809500399061603915235304685838997111285264967408033134502774644870352935119874294350890657664635497231219450922242679363499208134299693089785710997568083731617110765870618381413842906816483292685314845390914094863347465977700384711476682565657469647662295368447853965310565733058828039481996750518649098154167128724461826504078147575388557290454596308780935292449854787766999356838215063260983322394528151933270532584331974450320890814342216333316091417708290327040310375157149946751737960772067097727522356243053026497439339640602463215511664949286447580746354101293118994112580970913221737302097103414033731630349274672436903094598105968677267812320293958517176755158215376503249239448048814544366830416371712003745948371983625772894626408826127151937386302157437186306824132859585566970888297192559790719650537885837530702441326187095644648068104539966984408936793654163417326235743814758462026750596459853963250540710849345469290103245526079230422203002329027327590282605260484780413392338852118007561559750488885563609580867823911116288614177828193264552404581327229266196046465318926530321617942486244564066646574320758033150412358440312331409728169114753411607576518168667554017962119669411668838288538886701893121933445016503640818392450923393225235709475143552432877269681375409508706330426185985497228956387858919602433107920014925312084909145231072459810184990306508871880551528881205347441072629584550588786642810133500735231668534394787827802849974451666534456857697272551288157744236017875899074201875430480109025294263051128889041906207413773383878114563536816612746180417790205649868588627168694283392883588744272970437987789937427977398060994448613229016583529117336431570843602524179583219465139832696365164194946555062687666231897121212569216789578667189313028250674215309022737253200871237034914496983594066274243300035729347384426118954645671052395649958401130716809275962552528385753057794457072540014854951420478506464669197185904083695304148303467600307621244257330298947578221726751204476641994859519029930716365826996267621286541186040259824098174618072636813586636693740974452048180419942911014121177186166938777279019262874504614156903463917283894098275895011422864738156954589533268556694367450832608917687029589400698489396488552295251147128505666594997849324423122516917424131109444773037482785283333788492764079374249157510396960109813921266069389648298342761611527518992717937719169892640011897417176201033753394779479917280186518186847863547125190195247711394722747468488426506442619190670035697671546902539603785559734946186427703531592502744321412944457194890631267627909896372984887096534990455559520930248305915949762216364653686845026809777757374570289691006353947621986595919395497668695681480729658591494978046137916233144185280845782852219794965447250562891817223697998304537931044463094698843975753510616449567480268445517720871257198182111168116955394997438086966971328336484703595312643239068734598032775434223870658782135128950894364337657200189334115077506115318592328966270847157742794074330062519457696061184579696087277266296548949382665924468957232263013860447496290304543459689643170838818360535636102014871220039393046792952780256308686102988472064207790093469524465569382638395733045411413052299313229236971447962514252892571831482801460355081846946474757379287978465008558144936066646402396678313763245603983850321966981798411254362006240831039712331092337565338094835443357441928072418081331367947958255056723306370232266801488946360888079824213548086864063090456438568777711589681366616295006470575058448396850379476368115498460716438651141600540856334088821965829398117925594218459515856902207862986626680564029641982959522716311288131863987834320359973308807385348702376117503219115733933164961790116323314778748948686027230174144092390367766156058849143053477749131277244978253151938665246338704141669109588464187162970298496959682659580012553211685605415996968969676205209095417746154158405402245041834383134481269701050308395093909627321781618664477099989816753216761201488496221287064339472073858745194546084692188927534018896762579335097258262567097002818493938712691975792104793378941480530056179807519043033959131859617105002051534401403917100163891637623177368304956567850255131827300108009599006504869316724778685128486244403546378781649696173603869069401878255345184250492775162688620193827690576964859407417280254777453853573644841424535758433058676628631706772981231823887757492593644939536234331655059084468669891696127013402986649840551062578867901330442033727012730300326737378459015042225000425738506358387372439284926821526029164208786922774389105129043356460113481564615219739335924299410204528868777494445433859074288770031031680263025676412806453289101389169790396213801205927823501903978039575045630866938333029995374570356933065113785784403059468032976876995598350757737560888627187197919727981372900716206638847788856798618447274726114679447861492386702478929143219884700345498252446942004855615557329348403735046595820097026927029901455066428799326357116698977244371534833587367488248501215129133868902870920151674922566993693587919682834424365769297744530730153657742661496710405848633588649176295501774408322998741905586956327582212858273410179966799228707100735276546219412839516329664546500057832906488912132581906238149509310771932859393657959998167723683991655344744104269261273145911284518112663065378358875266514732571874026256167899976808650273286257514524378511325454951957257684256916213371220838386651804627732508180987415815225859409332018629652864918965384416467289245418184690533936196450849886921259672540382918836908648815651810117842008244948573150206982525068652023861588797312423466307343202038830449471956059791620370984225781388501394931203508682562275982937620482093817988093748200168401915970489291041605841372854024171756281269525968395521811629680248767738643922109996522446542623770421249677607407938990407145098786707445267827983816611747011546668943310891483106682504598886450973897621875072009422397340534586134782446100558635473799187401727383581323783749073564833596129556536613854674748936926552469175092220658746322266943336434378795501065414659260367149286332931590690929092869490480675131029609221213059670246735669218284540454791346783036239401533625458407471245787694512047231116984681298372782107625907807982878808912647282760205840869694162625726635422407416798002269019206554022003559258737257252181575385901487811327960748330357373537814855299190536663292288248366846847189905975330314776573751751340693351695541260127826604329742163237619217464823320259813698159681296433711365030675544337566187253021791118279168728301213218159845272922648515923212755807359811170050194637291245715226679934752234532875544110411999937045899929190575056086448025263653525049468889005908955134334563308760453919856636217624312900322216868124490404521982445897411583568744328278510176651162307941855519310107389969145123689651525009376143255806760421108797492734808852081877223492008436432881171697593677446151768171580183463446150012325262261808851108591006766211046875062495274645666611643474840253411421285823070823280322412761379055132630815206129441147990223616482813374945435670927903016408316057134558297300519670942141539409401114335853938679252496402533932328482768155952518709630952647477083713882321754794549437505950780935530391975187985318893483332549355693394664118705238477191538762926148282784649132524456264271296499808056037694702535230091016087686465809763136947967639630978309795112291544517450856035543243973597282946997787224951304951508697801787512720580031569137936274357254757229148255388902617965653525128885973547909908929936710540167355993362972705420242003734234957914862940426471280924177784120739103516912400071039627020794696470322691488451347133521630288185342445352810834014184663427984109505457952061479311310193699016874919570686781240607395303901391597874000327102942157906151425454344017205149729582595312911289099884904760354071165733926803365254258576939703069205439478419872417220854084712229271597884688502433025989373230766575068571037872803844225036774314891569999139086749028296117281208452606995828907938078569067887050135591343848376171244149038992417718402387691202073372251489985887838604959902679400847117815078892952775364976913284372592009473705587526266241247920683050819690311997540896269156802102137728476742378432750771197995630721855123864696828883144513452592456554257912642996855965259241443003466493670502090154270661645774679110173555814698916072501992000859837860722749835052825736394727025448646262659297525318229002185077643733289661087971060629465007822127609219918473738574073534714146358311434903094698511138406275499587889404382791881854605945732059203470531558074854299627323387525409644779301855715942353213579008479232147256852980055880554905797114541376782405239943628942678836029414061423323371082657424604009626741787475058894299891806216553213713753565975676060176733487051823429431585719781000961642099530444197071180580091942853373155208704905198472165365365339321569866010839498821923455700521555605317305926835433976817102020594280571588080024653747526009383745094570311341054870786484899657517872781422714550174190358923527796852783793089230277043768392303862064158848502919123095299398531300088967153688151309937843584502181254813927715048312929722521030364719995246093365260088201602546600030444937123092255711514862748904404761160735737710042776521808814997412558477070436913463913360777442512355354034217492991028780240225778819378159315394496691472378143219629266348704366349002982104410440710902717909006943981376059966350326767265300459639992830158390551416870110606549696823577622123588712226788079837566570218616320782009142572978078650418826001945903652575584897557790422556429694738043952143771593986496318950606701232920080547755618705203371432982851704915479028396327890317927394341131404323581249868727490506685293074142686422877371695586842936805212285330926315488607900746437704338834011217900825472962640966924115507035931844956345842492388005821250474111828920574660242556752246233939936959418352362515447281434172217686388894759716815567235414356501156652054289321319996126133186622427117087860557213880180361154719822157604128052168465728987745280067808719235333046810493843933907889192642908984267195153072643880468265691742979323018619271295275704990953338165919052239178227838051204978715993263843046790690726967145343989000249399542610262245463255788669648348251740935003427331422172609034934141915620093246951522721988351728744720004765227323054370496020609778595418796680178833992749720608346449968651939463393801495411515021855745886328806859776446897137599789766812318384318143625217195822544330781979032553784328749331624930340327970293178702787751934397535803811751577985302744909567513812963586785413126561347195570185910862123307831173125225513061790446563577463415253631405435570922564162661563530665627338608956514302062166873176261202510743045460110778108314544468386304775240511651808122914282313289284882915537949980616018783452595778782160637054753735496557844416025178804679749055013079290919651857701022456230402559822181446095927553722345267030769029389760310687048324960244388879843987939564588952811303907635985491932332452582850540799873812586498963890548521316536471470553995510196984920364362535864992211220305668658200365820256385435063434040791806007735419511556046383751654718266953817495550868197967567328090417766158519490480896329001589203408056388720804381601570876070535286203702643863350628686491363335623291300732466940073066370681106498815511213211233171009381626723271658287840242290828525740281229505193387081853956254929616041289092605049912714013744960213915505180852997659134485151949366312663381923760725788405009414950018633913203167906962241977990101645226689199754564044795965564198602447342468861991204252719356400233506674181595026719329651091675566623238585606186891886866539257923934928595330345326190429740359319607065937938328373730234790647074484935539911015713617122238770811803004546866358233604437763306018728170881116491511366524160052486217187815142302072109767047365094895282268366123438700588718200116761748318401000982047834880845137252499256138081115861775136815907731039995719073538251530752602110191047053375870599892599145390671172634899366117153914122696571625782471179431247739063674663790923058164170399816814475555244582243716004628794006613769810003692379255856265995495520739456093906439640991891407348168035522414042483249546042746494734176075039249062910943641623738589377273647472847521844499610287835675728218352426253664002845540838881229554010655573308944319456954250958824842023220056798079325983462159673828766601583828212248753237602235916246940687725357462802687482634341963393722151837135934270014768893414069814046374646005026144032976531743320660486655117481758701497591257148379421258857011428164730506262348987753883395463776077742435098165849550859980981870186898218020792576979381267398061472705604864930240164124046163060191113339266387003122553224467164638844707891867769918830327441641578687103117558209097178221026566359934867302213990822878326465684375330896398135271652670962531151691891820438354185240909243600772430044854319632857825019882425809179502970075600023632626306976419369391359687742560820945754589160529286285060118687185717322721585158286546241261963647851152731881266054644497619907156012634732362073965462294100599677736597394668321018556640317417807086739601313544444959350484109278009823256870283258052430148362945292985952141469464324958586324947253012942119835021334230907552785418686659011220752669990852951175533010854874893553894381063982926000302559591412390655104520418752455971743625463727935991515175053033062431480619862305029015907654407236997508282263369343079225018354269028347579988384424664205890422240186626803373803799898911246177565583671348669141066616360688410688238258742799233249811055625969155901495771492158342205030060758918387010380304859792936865403451216219715770010883864398764091517633066910780875543123452049841448608119465292785810223797392647532660023697146344560157165590270843512864114850428708543446447807963463415413800267883296675507465587997639769673786094205629714307726928643947293479544921224284118955738576145951358945004725282545064386377139776130004760495637500779090014191650338325487976660730847776022656493035071919270197480275641586736089591237317370885815849339032317897356510461304952135010953788256908055558230692657951599105241237503711498468128596457702814773154307640831927436626530597556150128762840855635372322648690609095344593109901217315933843092673694881342173963155357966128479332488452445026348554580096370596350395231506361443417768724182896878609979938170022709926658907370971276114012306382320791257053010324169910025512561851414510686493285695480886147054932963199930271900862443042274565206951290972165446470798807251496689223464440612464162379705144833035246926515749119281762315089144679533099434985658617677050997102860949152571885686966776999675486401900117126256221415303048862470636189722579447266710105418627550965672320431461912781128342130419010725317545586472407579458405605591322666641552599443160136946094733388310014051569527544500810679380850304823823165536881166356029302061059551823484107193345892197206927430466346311867257829937919780848613716923327666400644855842517504873979228014470430003700442375115348736712122892438772327474640300524991571987932232506279710582930954654834875964847488937117513954214410732973205926129641853849677617577567133626948470699673773883554119065141368229440662388332823276837574071923414829862550763671476533393498790934894831188869706892482616770375238735855664709649947160496719019402121475155566314925322382194112031442376064362097597180093347180312770870743235399597942346728027680074606334537902859099362139969922146206024032259638849789180521128090477794386109033761408419095879955365125167338371218055851903767706115629292250471292823483571312597684448180931774873488723471155552012934056307432736985914586751039652152889615115297273009254389341529077326782132424468722138927355137494583728366555536551977075780134397848911177531230055751799183876341306127158411123402425152092128930469212382676322767301927820557434596398964089751982989717823932162804563401358601509810285033742270505744792989272668707219929420107020598229394629273656585726426369818619683092574761396916166845120184728445289241662061701274643322110236010786548244677555838023479809711662926409631886444597489311882845561215234541849946643797420204241938943778613608206317957920947143404833128801218161205009351239239076319041014080638513021335559756480797542532874619092090458752744586686947229268920204477542030977861792981885679944972870303462055456321985266358202621762976773503044386695119052357321602239673253375308251485204524244366061927001022613573076482261094143666453674138863417126819815191998924462855011059061245747199280544242535485389281969997891019456466030793792043780295093929403055178840023764567142903837191128810438485015572236356998945863764224063167056912528536851347153229233745030042392986381345396506501952835238149995849863017956278867867516665169810481922468131852427946634496309051288522873906242123724872668234609913568403054043399350510918287171235705810624947044496830520472193528010237694440274838042558539392193147821591834568625810580386789552742078744469902770873480131996733369126803940327007393302023058803808552435317351662618764788466264241288287457648153661375329718039256750473537363382404955388214741810338190948592781108178743986558935358727636734884182552393296038455708980890512170306812387743686649124165382388659076522673417100665065754021908570995973549475981441301850239570042660046919498427779764307276182806019952229335576701878021811420159028911531634236730366847504677385053172635044873146014408425515343061625897940825139021288583069848528103812865064655429256643460363986712125101140761260285459126572267414017115169021553887126686337914305506041030602978739341903612075293938411091175725309274857970660374370288405291954984364242913703078024059170828452444471642243288545189887242025660876432909549476220873263071437736664072245542919200193414936978344861685592911963054135512786038989544490240688196578620327942636835354058365157484175434940134187562190709830038885843244636168049959189596350089180530391004425051297694212731526984285982508931203448303353226219177815057831090775229922066908504252991182349353884628112982669015290358607879754697004620400896533853115721659638061283198975397201581746539068513897895820913446256346497625097940743820970842268122030330804787760392013437770348520078816415381006035786991865867123171112920889429563093420075374026296278922838415549520148008399034492819297959797899057969286924129204618944312523048014193170740683066395881121477626157632097379602676266067510098380956057425655319858393451171963381893058664556717956971154729756224109000544378429024956426159341798807029104561515425467408016547542793415754980828394505319746165665259005073627917548366054071445644165631450329824620977064472128179353933511894656069985594499501174236484486125677841492469185687601690535387116703914330896634673357471159546800279255812801326827894761690046435676036345683797738905989241582638849400651108612729880419638020628147489632809960333589779354907531923041266644010952229339208848358102972677803571890089289981369798097136114567646582754602201124193050448947700141387518165507459123594666680649743979552356106199006864105093680533532200186861077717769603226985396639660344909559045415142263621183192903936802400641801616244180376227319914578618288556303737697570758513117060668349485319162796622485308487193018888533969441044577830409807611739351587690240785038716929096269459794490297062766973233657916056512112843059499733136394978667618100685733006834889204042116807089726343458748545507581802143928346948308834706324163168225667322769850556793273931807925953165622493620735169357063732175944508184752978498499263856992382278894071409758462763816258508771381296633346234657139681043207868306104369306013750157215070757880705123748975681289264455668316369080996131154649309678864762024687986400681566141514874574917084227269799321167766656622965306712996264254741846009247009997669893013362238105576275799339733256422695762058749589875428968397704832430684213109994333238909009032572017418844193812690090327687218845897992040448761222332810195425725981842063880499786962850421187274634772493883260097820815427445394329409276770053641895127894550156000515898835495239940125196110004140251176791444952970971896112544416623183883013469068593722806265106075410612933595012570704253187093363781876691594025834003673989140305684047354510444994081978279343683956093236085092517538259481949378658210572827530662197004945010529077745556112731712666974854681894367530255284915022301077416746723007820108126332990171911670294123654686124725496393969978270446586444129080122308367840318824296908008102647756412365891059827507357647234652125245057250079393605867340977542293742890356418994299762816313256066537501751143790202028709672039798751156070837440473326723807470634246616002914905370453301233050153543269971578677406983494911797806871395338092214425411266667872005576950699193881938780440449569959687875777479219123982410740150362265910385599260081451531720755301164072620723916230014731508226266469288513475957350139692143938457445757725771122260100751562031386149371838837353757869718932379775747119417487786893381176786931766855011885082718582299349562279993206922148056095243084274369097557445978901176201991642014893967431542248704232848817486765863690518341010140672414313046029388155058844596080532609415921202190280060042983083501365841801756627926434887672038082620968965586157782644867291922627307599769967134632209134684789730121915045282424198552337659693289836427211175556945632684479122039385144079818567231188305659170950160770757049589574625023192008820274305673064807314798002706754625690236796764158442337212811701729642771988472064094076275785522876380922281041903174895591739348466609617248446304400799670857103838624027150487458948557730917729708326604462244609892118991511827310212272446408686144171989626811907195748199248256182817468295474421513553058279570806094685606627121208048826574519768340211048535951549730439508621040422004160214826705671517572449670477929274372150340650175684718254595035417875576390081752974937758360885557976967139239734017139738284421352628773809508566829277780835563865811867392562435796174834702309661280650405242432222865413532052215914695510256188304332095808618668794028322018803604562516141048988434772962216547382611804419917978908923229861182408068165367140909221568693077187876470711792677007831207402763352568546852209569825437410116785158364870636159741182753942168692166646316723286106264009533182304101645266626649309506775148967169603250360436017683944997343148592739577192989826899772003054271251908404417973703441905121234906931059535277333533463611982127798324503592714256330086794933110653895639201646408720541953839410127282090942188231684054437927657203800329413238243140304770133310854222387554006287832953681996147395345881459413266119177863683123868863178316055274479253626459614952210128978486068265405498457982868526006439402180655336247612008044131732440099580040260752055409391296714617275192974134774097723296943840155158834171266997083288506935440277117698857828832043653417781497769876211045183318057807234713455940437252736842289856847444644376977395052071775415181444715686140158461161444777287429280182600291227926687440142014731095756501367739687915193983070207375138236623289982936956395425390832793844756076941017867121833011651332464402736015872679252361994829787498841018812734752092759236922417579810571599841530447390114585814022780611040769115609003406109297612006367000476345579330855245134876976749852970028979494800443039316941808868024696646985669965969780760162849480667167873964307937102015023408040783679624779212678810421615835620675912467609631836436907245598202200617274003864207878547603892024344917147473560491218397907908682390849643186645352979752651627957194101930813595764500258431698796972012717981622340067972509644395983374838946957655325404485118776943991499884069054444351992475799057453517093600371045573569167268669146919749357229526556220947023415717850742457403921171455461288833272082016882444457841161762748071162777733858947017266292426405795852944754793433027825530131776179270133423620694112131726577248439605324279654607539657206088426319682715201511013034592140783607438485715651077550731545783380726287976575160051492198171103530886673316065099018662813847421800476404490596355448767941352421689514132371806175555315657542187958788579724451410753954498734740645924485990807271300194101873887442915354767333398395751987092270111477912020398771225260091144359629402197766217696964455915828138278118733265358798908835584834770174358115072836802476671358487026696914161004288068690634387390242193037950666880487583106484337769798624688971454446597001808054575266394051798489811525012840084787655130308740725293908568417330056948387569096631453225724874275652969486997216889846603881443477456824669472997461012614802584255676549447525343764454146653057297584227796052749618910389627366689683292622534829445293133237341701958255492819288725143311285698688395730716515314328158517256802425909999523928989487005233536460429045305169607724007438884301083274273073707493615142007088676320443945448675158395161404987132242583996940605959663351361601629239682174836934462026095272333743293136888284964476194728080404500484722085880931541460225315874959655277262735326510026032237691858961417002658522895570122291726577940264306448925102715393267861783717736498748917972033751594175438266653295860573591813698694446224650201716132398808599685622171445100790804843729305157097272930693449312069788423361439286520965097975978336247497375122571273977006143060956400499853517105635692507666001024373800718727830843973018327977695870688568137743357062447993722570139759299891827235194480986274509259867505414603466666597535781179531325314532674037421700368400392186880518269454371615199046458465406115400504852779253095642143569555145218541161093352184869498169635860160155012543699446681520988770233584711906497200658710477663589337600528028436710763007518880994965684986561256775677909336732333036224289077142378156533164272962817125438666386638274633239485029891968726221560137811472890700029623227159688332431157188692640465062918636276152697014040644179286522548113629999580634831443806511083534985313176498318678046007460631169580293404969613162678937504238978443405309566192028484950316709974775818392770317594809347207840509986482693124954177965665208330248931048460214067356461653476742164446658483351529697348193470744767219058123091080570812718446606054017909704656491941440388858242959438459308344451980715033363774199462747220137011590828311967815365260566055302157071989794729950842133877753935001157199836433241807878754826757266231014924887108826044730757480108632134874052978769896564868810894889054618728441591717380147615098497208549941009290898891376145643125059704752461730414555219622673581775526484197972637490949760248750799029336687339447180383742333271822867717539439847746592741308174518298914669549412295703229182054826064691537815637189941916836199927852754221095231927397533870786098343946644980593220954285240375358139423512048868503326906809738967553763544129643383312235187351778256453048364341421205510063929690997597794550568511666509185913378929037235204066307389906355197923267538588164539060399775651257893761301743062515987489919803679767597110653968745231273852573339055001900280115537060507634808519903377378532296630938279356389107827238103911539079358641248798266073704525410529425394730842061810142585121552757099803498547831736099613164940572547989015555197522390959994901203393216969694073700071332951004973193416279970323485004693923886940590284302835570742123007741742716406066824218375402692163883647261298778828219701156096921820372109962322557305063243722486490205452279946444034613253688562660256039786688299639710537852985931808004551321921171338746775316496296648253545030090841153823963610932077457399461479535574108377369150650090452462639990167184766895563801553323015004273738102194626649762935452197542003767507317863443487114098062406782886154430513385530840240203071534968959879858810492817221330925747391782447115680215382786639485484636311833070608420996981920802669784793972563821289137819144922491135928827739187186666314587710633843271446000608765991452747654579211832119312272418152414137567775858701300549366353232321224807180707884175449873329034165406793720517366446328487379732060809482513750154270030311732297417510650447640699548513592506844626127229899559881893069767798802522628663590483755276281026534130575958534517762548789811249926297559902698768644495353997502433892998932283530421292970045964400875445851228048582520836840659027156989666015878995782567946090712902363828491485878126995992821898610063418167026223503179325319395327705385231000852422953373938772081221559299581475808205189353064470449262919222357000280572216893053396809841566650486207017122934439844078905768948881150985092015782232093726655942457629703135885896441745214305930899623902055970051153596426049393639429670660917355616379055624236338809102869838292289247507610666551985440786165867016656644181997587012651685367939544002424344567494026412048602682813572602643836575962597182698220753143182117929003546660979842837831633169287384291498980955859273537745329725563630840472473335031344807300816416653526137564963687799713243232210874054376095829083208703029106157082016101863513306796422470980959830455914943944626010763123095834872109428003077017968802326062844897861718083323981856029456906317911356868918081983696136614288957866740913682488603323092575453029259699510365671011839795586558954800223993440376012729853200701373930951822306760069792601365169742177672749731623998541153352140897880065961324294257818958183978851522023984677588199205606570698661309172789179800716121608805724973460033686932362138415053182913406000879109760599066003274534312575794922957912218064485515071274554707034819580424673871631584835448594441055607311044109964544197299459580920739374117074835069144210181972656637699904360741011622743596580745061629841928082418794989973574180188320157919022962076843476564046540631764795604494016204065243425495647781488418390402687475302561574322083307222608751190116012212629489318256054859425730868114046346085619855040886825354030222076638640119083647829422279303804441749843280745366142635347326997533341091277107743758547868265391860925691210826076657106691631327713918243459351055675005661483544803454820843573482266430920567819402021547146489508114515840740825101159848687968136122115513172543792857183250440652533355912429301150060360559841911379838256765957361810128135338883889332248282985235568439354440346857637531934672541429245956830098391875589943892821513914456715033640472362522865659330188320453951416184863771250101739437275142318178490715779551012386034327243173732147158737933889170751904982870719457792866180524151013264823395149764910216496510573976112526432697001276399985418035642223275456021610053622619725208320141610785892409435494897809868666764873216803002919963573418499741405238502838460279222595081705450254122326253361364909224878927667224673865365134430994306045601677696862030126014944487377614594500094923436762689545714408217346558460469517442696813025988544224954281200017390333780016794026088300279112548066732714928459095269129421097688641087230333848633618312733190382647428321982001893048923446653024803181983403941462538173771791732208935617147362096090267832684032734013712677476730208563372910854754120105469315960766637113925531820752790544905553066696387779862297184199059039530558470755759015923984550191523339429174631283226402819720452836593330249977303222190577686347985276446299142595971443851801621209325038130632275137453518301003515584199375983288124308767979596144934638950437520108628541113373927395961560257416441550052477797174129347346087653051561930870644763970460636890291513436851333391040760778864325739775224800925696204672776344159492276193251693292625178545665563669965156920943610040504396406004096185016425449052444103389502953250195309731676075137893844387674846278249711694904846785322652967599252121387331770563926839964793029288917842561457321104053096903299877902658735806239960996135181751835045645231150215520096994443235229010874242980569894842805367580853471408617009290145894324336030847851055860779713033693267995987384053242063535881283550163083439851359587463168357191148056655705038422656004820349215134060669798510871610408730764029916625748868823313567179184430503252793546512322993736857017126979312186126780624316905021065165449327593918062848354143287433773193116075096072843601806778943343415589197789617840783098855356402479398567417522646724037693258104801624831343282593881064654507698904457734943582295891708883410129632081932049125074253564415985341048810270397236858495543595018557071522714270789130391179758612640106014447842073236257545704144207474663831419848858176188790499257144086424422296386019126336144758822747522284252845762845273725013861202297330462876804777811415866846648729981225036781573534315065712714326006339262008278024217913449970248839611767506517221737769167334069602172050968492644056417993059512892607974848643086758880767012719239060682006533430904397031992095387314258792628992072954768594886817693143882770470108953744758893520497560775291405806340592143567330017887384792137807144932557606484000482452377407444223468442346124128084328707877273950945641972112233896349462547893069333285237107511320393998451818509704076651101976589235423436774282310302734298132587811402861880746027888742618077449135834150755599577640996116498354892456718199090033097460667887751686575511847844433369623359195722266276344167786472158291084993076615002705512275405073943319983776430683081728295819037837007101364706063013028864453819101475530801466106530176315286181237135681457081357052578162346663311835860970145185068331752824811931046646851701227279203759460455642596512146597599044908856609353309064782126452388334448318882586376267135804318535384691169187913054406117824546502109830238172266649794722018047877504233108965399214161328723958065665960233222096930110115829682432157885081816132874469914548505428076986684365179301221566611924083948394431571748845825921254934593218656969037035347207761170288094254619740171382959989238089335802178487148517491605182111912450353052121147585645270203978092406020105860022574776066930346739869504217736114328486990171588703597055724053306207211845259789646051490480156519381475912098647773664546795821383837771637586426540075825873290324889386142620635530153395996435108630330867600110789302556112964114241000746800799407459092239441164818333057059162390415910058938851110677936340674448499365815882189131395047846921367397345022197245922860276148292790178468817091327890693854361006763639162048485623295529450726668420633828089579422161944939950316372253710735830038904795745876600058183349310442231205949800051783643038274849020501628320849349899327808040348096024778772046583000026251395899547296090555114386364450749685735770550955021288828671162162304488090711436240496322003104148822947726382863362152147825217855779940155143237604328903491692798771313436985209132757690546373929600768217287600407072210414843829172420225350545343375625458280962250066465749969470765240455757330431904031669929615371266638658553249508580418528987499298956867170877344536696303169756510932233117473675580533659867535696866128288220066296817035731377403159744309871299300153273684605540076883716147165655809029509421648517838269982365316646377042913730026346067865223156362899507581799435387150870267635131753788672587720385282086485158651318960661717351586576221363367271239837137341368495113640175081875031925729034606280355027746557170664467222936299330573597001228659060563478088038946522401724429927756483685689044887321804646795087657642694403063073651990810584134970227016822254272506256792962729256066726526865210858907641217304269160452219800156542635999038283642436637080495109538997303251255347940446559811662740825518599129550591186452733614478574355760947047409191645768563176737283501085726925079380165236912364826384328833588974902672192558702298552470073602152669450800146419548284844712887047767167849967543048215172290409267565768273633298567995793406844687979953428046828085128369737888350373821517103643141145187067245899351828724467717178442463634760333705554874544436050948655202459354898491713401003733464838982192155344443467529001349251211281007865061080260888001467966511194035633022246890280612114026733117981393525203539797520955573234034157725896988756931385411483288730732815235165799828758115738173987866039214645179419199156173469869368503928517355981653727916280173408800834181030474968096662473798575268940358013900560046475054261015424916117233257430238994275082895287433203543215156611316997393885629050436491989332149305831433119134771391283372300311885445236141386820372983115887170987777995582895907954716190704917530362376157672736273983581578041845937715811527512040758167954523098298785138661020668493435404013717104859601433156865224090538783037179531656788026031177861570451907703886382418019655133892179343340646921650953190439694479173211753327509351031203775341562803773212962685514928937020162403811161649969117169148669203285648743879464432220646934071488471829330107497412373591712997794636718710280642155998118846099191011656482069195415703065500417924428801777721730952753994267217361748738446140179225381970341873958055538749458385050758126640112738510022117748032377695202638373709601095753328238334933983449474369829205111784059650484394183060483935672990104483889567663843823532172464413781729457609875917454715669320211387411166076105058604659531698314077144018544401886817584534906642467366236190876417815177679383981991733766187975229282103627117527407965494178870640862289633423912473753679456494849414979124287662605406052690421189526347966484865848518132020632170629612171010222697984904695859801435312777848860687802337255679139196253098679114129553174348427069775379862155273088058147059331060140181186777231473197801033603975356317659900229068629541854830485907537204942156027698864563454090615249102840983884932592822023850729866776206679107007224296595922204120723913951131439640519107681249364430068494781694794770394719109567398606903438154563779007354303173252822861504760372580833183742295779059857363151731785693123274211374098152947371531883401769470795740712222391865120532200726676282775035791358971168932763511690014848091673735792985365523308344419534000002243805414441978224099014346959907226038855324509815940171097773562003012314818737878092458250049388908775077526162745081708942575023837461668958665734408205858575107970339765627263376021751395150768663950913927237774278494857247958017559655932764990990176363538307658569644864282309516667473787510142946799655513020452958783809328773886392598150978301848135097100292383914276362212154932835782170492810571744141495082320191479110800049528429152201904811316524986211700583346513972675916500038668033217793641321638137965558068908530338086261541865237490767522856213437484950618064731958491944344188116543241391333945956415111687857608343492107466454776150161396973138217989873638576421066992688271585582637821036143836145128649297084334915108964647094062320149986579868820256133315991893372116522161373597249601985674237925625066828200086989694619727512434790573357365610895483665579335522969849401484799979889090498856358591017454493517288421742417015852101108408088288787063061265429920471551335528649898567226907516476123686162898280057157225792265555071671621969380555373805555958073653254387264928411258122275316152978950134450078491034705977589717428656187247882158429859021439930185428174309422637299633595720061023887848031966068251836713515575025268888043436779972224497638426376975652759460539561811646038052260999557463733503865880086880095721648864185559124183767855457573527238066803235959026267801759697089458047948888499914757409692103812519294751199952390400309599547765387566951340862112126439365911280948460360980929190914689515229380910279647794702611802280503500100829483389300190951484898091980085004399241408159878549013315302081831061520845968439295230785913991509396051087223990836147173083967246304291893561255701383938401761338979843504201174556780679801517311196198280355648852097618905650028604771984330712158056806291228398863765576583012945432534687407099438598980595022590411101061170070204221861871912741927580224014551353084997262020859963078497339476249286864682469099774365725413446668663821814155425541497699735234960743425010298902001104383385067876254349885332371011458963759844510033353434948284387808008287411316453690343087483330175268137857704447396249968039362266962609927348543302572977535269879134946341070140045479817083835216485530911660838269237080860194328200412850051395369624300516848998154810471976551903521790189887865153971764637044778187333357286774294180939585118076171414293452122746983246584958221683869364659543131070533648810869126896533307329446534566834766257892940673773806467976877043496803739077465234744510278186886396754793139942134079380719300663589699761297751226959176521284807363211385463071190423339933832493545588052757693209168040156577923204073049929127281192625771839152509770536514093811491171348119566013524700554317509823916694432007624220156761507259001853964973003572473516354131624207651454213744777425460890093091667934915261482637439390636365472287518148717813552778222599374477730409579902083492220546352861775321971754428405761073779387788496149973870254174936925604926029043553001844337844679332335974780369565444985430187760387420306991188405505080063209004951402230197166289128987263649473844826172904503149800029867504409219368558348440385363050906514789409434455016301042004939362664171402480782461474455717534880783858067180521227335257481737250271670235961025614966200468330347870128354842551107563979621268219688330102259805219826947300738920586712235269315713352912374219032990009126691695124744402065571044077314295228250106460500105346097547887522878570149676150520678927783618747382205209419424107653010543166860978592155606037498707431403437017815625574997433450394640532270108021076115016504952870139013549427914233817621732261162316901458942794553636785241615424565052214296857009725262245849400842322073698965127809148880572622132885684160316937533456924388776661639996044030363633085550667308820136702048074755464958641294061885226065607664459979994608311844668527740890026358563344209457319369095095697403465008553517283909773982057419814094409085807204859844488759876918518169238963541741903249917988811689519281482517992508389050426253686768891628879165061424217440620331755517396161272448724093702782083343448135069854485027499511523851641486638946658477450172629631172252369410567076742186507692646067235925513417303884582549205095586829055320275115974642343190259245492746686557665838837222055437083200920986230534901337552920485136561280292581983748720985068481119629682825053326498154286510212672548104810782975935567636098432087364305444457430936163156053524023729461540137903267657579077307748111614929132688306608888586942087551977678927483517116729405618567564447090320233433263055854586456686062126557810587992814775497736342955668247425274647477906171278078868991904830335572375027553969221467645664664439913214191537478966325218222177306030785102383990889747954477471323100094895044228030800611028155289561367634426109234620705271094639989100462540491527512945001390270346201501841386594261258465411190465755196021243865407369262692892825107662282926575820304949862538617044848448473486729831145692803640487278441579346193719555641107790103528066678297202367303807231894945475320553547606369998739689345201970741075783973444763851852866898281583099519101787936701573667802450796629567254351624225315107383931672813396044914938067831939513066618295870460391081678367395011686662356339096505162931212483438933541907133142846230679782255266994331742192959026475580190534830370283960900441618528106063455486615865109056539701231192811994262554331081985065642154086346029086756134552827472522719938083834554875707065155508221826149229824700742210339374866705249495148900357887306158083311120511836754077887885862284227310787342274569110308382177412866828151850832674006412665700059308477438585247549213168935908082433727571833727414351703438488325300178071600468085081308224133307043083700138969053916395492149192594449626086518082243208848259358798378437219025982520322052924780778557028009198617372837951145851807207522424964378515277369535656477883966033714456975282982388660697779715480107313231732333554245376818136490610751650429855203555530341325450360191994476097031087233021069958783959292878384560249803084640692984469465724490682882696637730061122138656256862601596344841988653281123239942933406310468408210048145352331612549947748159636197830761007922019388037858783624515002156532700988878326709546800357377387623103325538176624792346968731113024897486783223189932617185094408963132684215976336542689997253957579439022278127217640315696180348123150336079229637918888455941473886152355803122180203050476716733686241083485332649534073935250289872171609167077312790116035929618161034927344573969107848103029901231429497529076619784516706395665037971493174576354851218277825418271736664793840975033619395735725228171048923603454668708387486998284149641514948557691698208617121228192492144236097044774101587053176864447579647284083433922120306495131873464179489026503777368827964020158527557292705951540844511315499839140899588832221501788582657395880586672148640890965582023144879202770198783996396873944149740761155009152830731756716558838375531301348313273774517773694663905769606948325580221235619204439103268874265668544483023166065463522303432612565511787359490662322077167470818634520558655187975085612859021117526502476325417956756983900817340996451085161292066390246456623330817066197245598214292764242685246819438155379579278496379621360490697392706124999315935299733498073624851138935622883378139990110847043516582120596735761880269826821909709492399668669041630548095199578501896430217238188207740959851737166769337916484153398526304153864161630681784857198285905609817271503610362520501836268424092676725837806897640271927996075884150985583751095754203268026927603389432730271745977359625197223012996896664882663680513328304700555354663923431585138153732810530053427390749698448915436801040607148571026180446249448028980644788352228984296177874845835003011097240272629077676023026813131297853142135080535977232487790175724434767710550277041281938245785986395449332011670302823403267100157921078608474711103625759440466526583436220377671038912566983509474064487643086298291167632774908178757143587777515021252577202047080513731147693691928619525192751479170017712406990955275522290246580290515901851696978517205952098668072812890494941519081015999591127107588704572661732285728377684090789629370232214628163996705842244698355379867332585313789068332764889627983857264470793516046574293272217615171418689966658877830202593854630331781749296738446088090067033765836949907143603073840752174442468892588945627159873163861687910472521386017760354209310619235382675895703001856775942752986101738037990921141532134261790266249222818353167823321915880677557394270648308017722743383620675586233372857062313266549602599425979978801548918542670745710020706887481989048311857377680164161156911241991045145952694841325069839611485791268943343194041446053327838813816211137018422704959358131635070430996119086854542376566817515664347653350644852778049743559830676046311353481417006579186861721627806458465322784150127385371113876332008899741481731209520506199929514126242006985554791325844995781454985759385470958740283785224703368070474303566446583146926215091844788127059771395316478562628471417037301090166466965326439273118608778029143532408003102851607572890795673335525505466631548619467817145484518356900616008343807253512747552107067835789805603728782308078689317377556925631646621013481346094426633482212818143646001330064710412910498227246026306194263009581599490076083006010525873390367884399652069656620579121087627964208921554949737148423521263191175535800371544683796301520941645896626330810939314085570357285721909094428624930737526597596108571195707153484626307972385017658509070957969520625896651352816534377323511112141124600525762522029213986729047623891831878354464280693614408661075406934837270512106543279261673020482419565859828164393734556649538839462155346335829411861731788306975772617447866688911238482597173786007383407408944516519276942017028499648279691894608432866092578321251118682332339792345814073321918325594402737517500788518231199631637235951110870918790128107519024250645383912796881735922713316038360973648330597078761701598097463065080603899998561739524616057981965194794327643693503145479837013229626267192533571805571764695567055359788470471467740321513580969190202583209152849800093288348657432919027499184773267390704495265890484208280396420181083130441220177434558282885015268578967431263869841956366885895546706744424206590125250118375650154588059338224929093593823756822724403885041192675947857053624587389147372144154371972956404646921557043517653073065241731598055154238386246757162379533042101393767394188619787136552950355521521939344273377589141453428055209118842239807619597624803216987008165763716583757657635466461768174213321922983973161716920119260724190280632558294487704232698369315715909266137988428957449476899703639088441576584898600740816572569514796927077460840368865165049478966043903409659481986732763271441239297777774994727371282736235039442630556913890918921136600691580652760438970802785472675906688710680844068584727950624471537769530812035523560241443832750196254069141493759156808693182509391967609523231759888993691984884450193520302342759352166130833275962560025546640461492308660035271953929883979598659208966414196288703526244257610184896550563023694867638040439379481410130404731698516227331685170098822024985728893733179827611729043740079879671677914443498695608665751247073238522324179292647703240393667884627622606244635966865480201150647863454244284712980428050443242488469519411205755750205372237511596936849126885045086065297889720248503325488785602740634202245746685764757929174066045528136164369662340165355396158052475454674764968448645055318727947694257640873363342978574311644875046050838906186887477842598916254507042223780777311620562917917713788910190130888783039605825940094879988819428726543867171171041764971152774669839632715458326244137228414577642585855558020950705267306759074147285316242081627934101375469452484945142318624946153753721144090787480244941388852609948666822563982347863202041898347174796332569591910660264228078582536466683413643896217756478556832468178296512086085260403058394893007268720113958529238854079790106248644023952965114072360936322690629877242949247534195617410287196416337470048871384333062986581640684692761136978683323092788957592482934012609205645264316524218670055302196293722088947317833578478302850035209272115822986118157316518837098573829161917928718983597772971562869960505170025361887355318510123839328910084088004545771807679971644218599185898138619359597319597015631737067385199131654495699482367189107216839877975326746419291300502410760377606679951602859183011406495780004345655165659441212811408029152687381882257999347302409473373214729013598838818907508981641862544564550271717361196468901182449695491694136510670415848687293658338495639174712958125265343351424621876371516641719620399282473178185314302299017632274354196971706409353702093560911072378409302783248445718014264664446148289706405639310955895651391429632866813623659735555683685572805283433746550658672255081253501302860907098377882868133283384948866684825572110694773829405789768085934208384405497089830676439264411472540083943513892174339002161163811737512516124199340312640026846913196224155978267393091477477727554752829577326136712316096922644149749942113781730001904576964609485230155683970062571302314045821445519839158157067740578526442647258968445791332165038421446144003546388442829294115765430783865820823428653745475863244680750748183344161228690373130900736864481384973192339637529739125996830578039679466996994930095481026102369026872811642721819775470103322007366514383868086783483105470234143856031625625489687184730560274063523528259551217869792334303291468023259149256799602580571770198753670865750867406479558396629845328415424628618639380420144765975451209139121298601129689623367327534925627362801452607800247675088973948307759772095481038911650735260087305002094894126451215099150164450967962337681004674828351987211983264771006331118215458005844056617960781238747736994627342671774112188647665356189890071251762495216295739805257957390308341368893512415763500718491102333967731538139027885611590443758746293178153147586744931210566992071408568860076584797636069019784772842247210773000916278504116384228107996095176404053718974610629063289678128905707941215087478925383370430029958564448163211281559522568457496672380664111882326876095666568037710264234291109257859281516827119544717681676323481797552215844895144931775385127403117865739983400148475345247955793244621441447244739561838542038738805810879767419437843767003485112140895917445641110619202327051773061565041481707116114173747232925356575323077356112013799071766112648031518947531476066014814400986212401281246808843463100724054536452131128940974348664889480368321348239569613215418750414729870818005744069383356374637681252202741143612798572307450790289846030557656213139532769451709612267828844144833356983032392383468577870530820640568204797377097126005859776777546668570204022199125434448596635908401363451059683632785993312156500443968989229230817892355505960370965070716125824318848480858392224837434247337955911107229761144872130816164393230897440103723761373975892152776713554527527265367395263899763557736541869705824831088536718576978869016043068216201600404000786282812340261055578293700701594394860645276779108529620323460834016769715805205848388512647770897557909199203246203881906637274957889479374028569916084060385222765228824381860506125020182260078732612549792064406461078260638280303800668326319762325187155611994309990461772742412182318907547597114703176058020420512651103331011602252893894131137363577172124369936319049246100961763778173436107476903253372878918294791172817897044496880283823134190897077539199512850770514392312430483735544973190526053192516137537655578486292600454472829873104491838671963373328207872101023303593089560774047720033934982062214179636346185434752307554114455481271295552845959857616907482867669364735325710578999443012812034048211158460422236847753111479105357155952671628984052503059137578691752066990697573738645253820175283948515287710980973864993647418784238675918446425530171586204311714013517052832520193535523536634569454289436371981912337555828068050310458219852256565887605977154204819815332634585609368971073046843579623441213453682644769889095671298678725819419966754313601609788509756484967959966948202001809806824421261180607281858941544224722004881795444038722042629311061608743941569980433196861378422065478042536094518353708546530665174365212483040442435882758491794601552447461982902407019754577257344681998532153393446350538537456150115511413220647378687629777581629566776746811659448589757541246032014495536087084381514528039530202108519941230476660492902613205691010526338075463688286195510993240055699614336622366283951982417342949422413338649959948125070136071751492803471066013059294400794020095869249643926916263226123571385165178088652873405885671176562183239571515364150231551265077860960588306499751457142229140400886334958433488127445043719023375637478734443374513792216627851639088401471606991194523592374340378413157366187822625434868610586707137101031179764407992433976383630773196046831821974825024143948441926193688311593891550248167237355950832397513641426806488358652585195748643851849474879376222334978328522082006440612098214175335041014777354553568732155270923874845855068788265614545624173246093426872664200258729480785771990294487238205736352261673557072768237402800300428448161470015745328492461358047052735531965695083733903658991426358199134789487777863866469470749267057521234287922454607034178856348846365613349551354315526046421973485500393419507316564912513960566833050111438549553666628837410789539524286043308343917939358910701647147516813795084020851823415085202721036827806426295025385866119347552426039809039974198883406490309925635408472266640261956165689678721934519793423773912231956536798403861722436761481880373266945036815123466288371078309114575178872306968901156575242276902401316162225096137402627828111033854324695846970828817451935808032141749960967307308197455793390057132353027076764032901558680730425841657279811655034795185610458523935465398601705255178404847874646049484994338948946322459732000626392767729888438782097093413936135857771307106678562610227747893751495173092759400725975075619331578072727890109545797291258977939656528726421340643726244653190535936243295710643977989667056560966481576526832930737531253558961694019217015249953663339943800134674293528141462464022841459619454403683689906273988960999300709339403366481854547799931063079121266735048370126865108077962213688787863294391446304159207195925310168418229246617868808275468519433081079014191460054889395368736132218187930468293637252092368463156842824064459758137098776809138137397622388946522725112331423191761311371099242559335922410557584645881852191088733178159085739675308966817807892881880950263200578157275066101412982289028283511093961689303316739304658793280332991839934558289294914215720336301748561559529011547895537178505283149521997397249477747678739430804732886266346462603660429015520012756694738647111783080454241980779935520932011882615652209535840631436004304565503059713922791022141018517800973950419224036558441650222934193056213077632691287585740084991756120046232381385806740331557831508194480723790289208120236197100772288361473809099116105129017542586456254843626695341773367922474964270923059384925494640733310435815507237950517050104421097164056006627674099273529747262829817487104207039736575902344348564575222445907533048589702480094199348747180095521630528003424958880387813422389408057299438127628736095430318049235587723081443938652279508927779329214092034439814118205666473939347441089797586216199267669839407090436811019386106920402673222313898781082083667816000465168158896186388276574557552712969921518473323113087132944554078382487457527904759483824250006205566420558727034088166683522662356857197040831706899727544776481941070861890372568613905166011588847686060976903708741099491172194949004785180283097776943899145196095341106638421591022829662376163335909538399675703454071468650918087690941255497294271054493279405818444931482765201905940181536199316515215425846600186898131149399912661211053986567423256329209022264611357779162490494581721969006967619078744467854866013938050259411749676959962120111105206347982072281157312697430692348615301717542710126516604538686187084433033389024311508379732292966467895338552492264122633440346885838050574577102565399631734133589048194730024663128385896330764965304593990363395318471360312168248464663750696072517894744571548881026120660523186843005790853956409176157299784789432394746543762090644292175718901413958694350213022488670433327735821020534551423656436572793365951104020857798258429764482221225490978187944878107150301419765675865594462805889254356809479738465760061439286026782174242192483855388852406371411804304955500444353339364496061210123746818746724482261647674504623040462085933790269512147851732603995490851822696916014716037923591981059765458508670565368435527964918902796657162067856276388606193935245561793075528476607329599082761102109899318095827274241727084448857006408488764571441176816666465185845624677156803039762138063609197972890010237762828083260800098568435415081175019735174334823709909503697318773700926629807104296335729576048300596315575333345434246300007451138150033517609163609871717764723772625388446176000964546346690889330455903370314168165033698219436864679666139632164059330695448607110469436396357173411782506194503490670118110171581472439469287026473469138132639286589658931810571857377425039261248043338422613262143629457772971896633707287865180204945410521670706488255830251082790418980828830795628076462743680866020120271429878680001038155706248115482661223436216775097356036360992621711969496997824387434307636116299033522357308944786919264068116976272052232523388544071951533094996247343568203281039315703492587447324466569546491786807655514303106657216754041352632840605948440548899391465731854277960031232531188770796461793087340964999434618702172675861060614271869311459032461331834340855972991407614420532815577813770702859469241573121100748459497713159312815347880374620027795007649544011275098414465010081052140382687294480709598001266009811387185575043445252788435839710961279416866757034400801185002653843830650353794354680417313341960416055406742219718102111053405433936312185587027602566302213327229588137324450138399657786350177109663291454828127146390586905919112973725241088132444903752801071881556937873315354231732634564877603224494646661205648933052164560544605442444419284144751660887337507789051973342955298680124565728885880541751931920217919600092895448330629138787452803991524171418060972669779674567802981053853576942395997690546565556967528882007050342717458776937685230702831789988021980763915187692064918016254709172931548020185168733747796493719458576667719512354621451592229152754835343634405789188554181243406820815195662803537786972108526073779561705404989429236351853621174035342893635414760726442933908643470861605998900805673510734284741179784893335039577839399497432768691684663536151287156372781582368167748001149454338890707986942988064436573037553091428629662855043977141352418574382695711250913601077379120971880208178607818362881625318896533518768607602203166400696046051583830482622101789467164944942724019370564669486297180941944132460762204688858430883304317203899880693837617090761199875806377478364625068351568225511606415212293899947278077398380595815454011783486735229933628488386018576061249477584021129955697566553748732127215710933916108944961858979337564236036265736341730480814784991304434661085044595842123448474632749075455198265900806472282291353695446232325234116956607319248716537202755473984265703387556478152168440731974879840005412323607506829390742576131327976338962939793166802275687539063085795500187925065490410770478518031817531060263932744331817205634601953421626733940480744936197331929696261831761063498755705084552172175445072718882221590441640261819370113852070487955533473009315473001901996714995020604129734493897302346064461326054108975016252062988794246745561451533212624032320696469631423259911599374077191514588465683578662248967553438309241422116498020283862014239150246649873503037537531030365641648179118354383819332603284177130934111103826228195587307824945195786236531865869037536907179188625689225137861125132669169158085208240630606688510923545936459557509791280543613790178442668769288536372451273505416177511615918747393933423165373961157346447619705548935413235160176216058413438444666685937036175823540122402175820299017875808511875982055296839217610788706860288712068838322383253526539656012087994473955444159843723984256477679118185947537262965417588738563733842492686851548805307947753779617280373982611879342874532782609008905147900285822577032662195316071591105323552870771821559770726978233533590375913552999198174161446172099891958184363389405645553900842481078826918990069020064814379134467754465619741600221318757523564944026992700128492755908069127902871099748028292347531933530113452015060019640756378592082963478245684176374306858503615097625633121071544170133606569677169615673484132104559708844414027418109001233617624534795773685989333257007621161093544674867540947430499855035296287555674857855119059181150520327891290563655624827609655989213632294926869567592382233751287706071635697940604993272545894401660425018310892128368136903505571992675840459734688609055633930728702380955559158251253212187550111758771678347585148901252264167723041048798638727159245571415050530724924542648237644639201161274526419938873176519365677447232531979290815772505120380157793903531932331528551925763489982049357856522327817293509792530520327223210225967095520158646381626081510719880336439256592325694103852316539009623666829620027408973062958238596296469386467447697599949165487655137517684655571726637119301773591635324314926420076277078154285179367097832156488439653951502626372370712318465256801278122255165828084565770737730671130773029283555296569900058643656461112857965779598834736730056282817982104550613837711266042512278244260948613756920920475261281925092894249959703950856571103470580558937008988526559578751774836216720053064546691221912077340021826041772731871417771325662836542856071591651560635116358283892821907496078668783653692963352093249942170576409639858601839014227271938258049380993676162896254295819084313987800055679244070068572007823256439312008241352089058430590750552768339962231000465799769064053604034280482015602083332646627876727070018658935973090518176762614335988899478994461280825400807657689430161879267377058856509639548372368811789206255187809847595468869134081786599095905069500721718779361467485523790152956789268105080513155182917151607562648809753168068351913006323417548446754167942787721033648019668572415529337231761652640148440703482227817168843449407379019857521960363189394748817246117344417634610357003152861766422893692759171889596249286621335489342463809906576972101448939609756508729013140189002938766704975923357496415259307102704012934442848695811563805430672501067842203621557842713381930075488637855487895808051117652874985617460931361968860889718727546939755939879610300410607499506746619669012118889163264769766434685968185442327158614435337030363955522229333717138865269256070918762648327933828242907765314720322860790816516554386160998113492981177066844733545651657366620705541375705576685927804884978302714570518426238975141769531778559468884893472244287598083595831555561413757959522980319213797305499896594930213166974173581412426620536054345519941892877153029826595992981054987962192154472635190077665681344030536429325279634312399963393954985055879732221532529998184097288510242910634760995163132611038040300123184644446939142405590723635620453355874720771632102174302947464687024509292348637116996744391743979004995999284082714312842645715426864945076066941509435814958753475350439085563636372917038505046098344819845587411074466408427052671181480605605825991030621436142822464358936758171109398650057732038606738391084395328620594529664416333935364876907374702622498688340155900425555917898938846448737797569038341075586950399583168832968684684916811431080081416443342169958350311076016936168680945677554805729373568020271941919582016069054466000566792206220096608592044174435896909460232706902556002700415097568852970496387528449230741694180975575743611986631252132880307300555053804558462657230807411044806439044743791067010027584475918115671721213276672487954118970827099055276977237421148042011539954163178050693021993974915289370374545545771922050333438842691051666538819561256141055494323904712447913775261169111317440073254029060854622632158210319297019945925379748699438710159629899307609027127376576464658091718901522699458990165943719559059780934805966084151568744376136671444583988280792808860531037381847096099269369420602441228235768061302255410342201562892951692870046047695313860932723661999668047824425068274299545062251856102480982951823457059529045388299537121669308470998226447307175508227461489206853054657871698592747482745722687437199611825158932094319297580094077547190068846706453798904886943335035871908461523920064022312379821116819649246038050791740684152266113084934337053377183614085413582133165288859599453724227747869055814959018522451979174456667581379244315765036539245970606955643095790549661338741200202859596426449388528579635810404711046098406257710235797618910791739624221271155151504793030749318423951568337752558226572517230124304981732764565995586496809549771868705836678884312373353426143062426964268683174480073996367403556010089816674158388352989874492500221578982603954890950791111933587652746714247802436921197401533856755022276223978001189224581162273001145300906334449545130425084759175199605640799849952481535039015391528997932928146758993453107757411561910100415787040458043162557671222466611828234878623858852951684008407372083025778345716041477432062760528484626244215751026785412216515091494959077607750069394323372519526698211706284536608360616556131683461418883407203842367465186905769794786744565403123729823876458526755946734540947726279694477970043893881499285081356006491591666401418799290061637861325662439520108607852751332184026438272749269415021941464388432229261974911199864349853046688795104828481677074163097034595321434052440516232638057994744473885112287668917584132235632910001536688075153236521129090472277794146513061057154521158245115936442045312406465788389183020474998006118537488782254534061404784592038262598414424214192075649483717870615712203105476472416161219895431900951869974231938923416289326547971434628930542443477361084298522732640039868091554055736200050936887760399605572483433966504249774479041244497485623230163898883685918135202400061222653858087973339812827153027998102906326186866112505588203559554357249312997835665295879993192898384107353449913482197619207780650594847379878050419497626329479091926321529044791854259312381805232333034917558418007781994810091570917098498553564906557839938702588060923047900991532293580006799180891864781019023211504162058997570289259241215830879715466409600308061201428727088492425387258691915177782929520098331431937930284705258382845663498345859162625429119977575411407268869030643069642621472641261713393425629439344783052745632745188517541547722076638364594837153086073705826343730412859631442745757081643680699259217453116228737160643250980118715382276497753178212688014179551257781524437097360898896123701830203653317452948580948715800384426801710373006380314544801184891348901312178477601114256573641975868261402586087898960859385133860931519688146107372186518258985769038831162280219478467067099339847057617776026679101706174872690552329078868104245415265726937121506735648549314337090052649562618786615758821035413842531085739275144285682193293630299213277464409738520991440257538701324997082672697686468578185837918106343842146692129010685925963135069500614758402513612628797308891501864268318935710364225288290220376833901659422077697603372350608404159726303477507106273823401777120316424808848412031183641846823699910989563730302075155170231548910143741938335254938240621783212319188745519672572510832219627930269524347718813006628598736933924785151843766442369189925115979128058913487579623866987350661392263243784524681905538620649427915059214038009778782918248926769192090981196582436414329335548508444385092026322054567932475541429292753781778236714524457291223954167178175907750823264341842281203723645303074404248083569259645867266758408188518024528889883657643834867477572702922861411445943553008905082849338456137006488643710818653859307822480936551340337096793362885443156528958287228824874143586563127890980892845343217995904933201762174699898276319366716470609264191503131702754448442564975309731716108354826390831414086427660483405626473514969625422954427148705589512171445484648174780309553508865034172658223768729423803179924959617228776210050753970163169736410608362083500339653325013643249632840517688537460407885572308025848554627771083165030977920309041081205502079967384774651196832780665004723263233183211370425235552108830437965994910743445531559363602290972381494906935584519084581707419614199476031002426510027090516429943950361834799537029742473025196297815638777722753629697313931573112904450922567099475942439556377348081970274485597143701529299146074641332076226763586242955865638528700337316147784379083008875579815561785523070133488275415814178809311768995519503907138818280914569429720914351685208552550691111154693466130096170181724005812733887746195609873336527617394324151842275735506328793874515938329244563360283859307217244012500319017337235144921272763728835263829747953045809277742027201052059703768357724285150117329138777164511995530179313196348778041897331461877835434819224662190049985617810330942059866193784601921119707915219933911630053158468132750209641609940369114752396748788743781672693766198947146363545697776163893369273999172139543396313193893495251047653937958201112174336374618051883261322747733621960872665307922573683146847700544602850821577492503515938058704558633746423925268645865477323250015425766530739943728600871476514839055028746721840796077598428489880012600038730965816638365403372366086890957020648802335739846455490727868420931725701546852699807172027513787177454044170919111372401462568250008595589919530683082265528717206752516999912389336975144510242583607904583457605685422580191061912623276303010561402379291612657231258148213063130117846179624717946415944103850191567725036680462871169354269246419131101163977882690781206011932839407375171878526043167439289268187586411555310629664451596436738130316007946401747620769151504373513651629324250727630135750159243267008775185677532822282714279463526092490094504512933568005019971997204415957380934721839375178606622182484770410825219255918258447296447946651202651036462389579930335868063132963062841868160295121349930585035625550056492333545168321293574238516550546277772474436405700283751859595528369716234592400310432881784251210583449147943867810947409609329268399364183619764125067188948468909319709425693577778403339271313667865796503635099590777473107359070564170733437298206116357435802611156328539806488556010041298224664940488226850506638046866247186868217411282234412650842729943272307137585350405806958870497659376127528570353380994915795486599811517529440979942107168154314227031122318509907197977749607309468557988589276499626596071303023076226369506842252911239933672002362614912711336409866133927397718536675628414473206884881344882108590212067135371032260419883358251371101917788013677641908939856936331122158739388055021971914228687488769393286015207437711406624743992156919479108193164665712335646871486304988969024913273906998559444360559648466862395390354149120209150191217942462006832085616376275957343917889287404142387040494869898901043798191377872560482632002457602378410347188959052444395988934447818645459304597549479905895518236599963469704048710651787214419628037569390240024079724419766179764926004757056138501901447648262765085048458907678786472393629442849094601058992280145607436061000703101721202275852268239600863226709633430860253506375195184499010140643217902185559929928679431828183253906022097532058367368416165474375737450570689603746589070552705510713565947777268648375070646615257712719524581390408618536281234780437473978904919747085545580909473676701125184590842929912306257183590394891099572018041581766166752784117130965240933824484992506572836290853693816869159231973695765671019478816033500948304895679668747579359741151287212154919906503856134176083260554065980406804229642007292485685667945032654647662908070753387476320484557044045403891014564036660315367949571371196743240207130678237304129725637098330832415929222475499516958895573903777403771726185234936052772215212003317584603647824074044212163499398789091606306137019368843216887703745754407601354271884715527004601244548583445518078810769699260095623146371730378319879252061273609685340961858529870847268866487913300475988145503788508832903204053835725891292917247782641006816084432021238929776655272927114715634981534246728561841190503019202783536333685869354954154140998347860199680796367293524057512885071436259469951780054518698286160558913021941362809663022949822921209105732945994023403196500825189766440920430061534109920130364348969933422140766580120610357828978461449869879493635476905868636140184854377027231817695549841881711340713664263734921804780161608051427101247872613987696572292747646371566352260223859685330642281753940376380012742279913418273223400850118869991206687262962866795499950058322602612303453457128397527198666733017352447429738715288598378214635918541055115992652768127946450344535230507844454268567241966559765093654394280359170250526777704398801197931576269021141905235595654610552870914980506440238260662417981084614272481610924752973903957170140455325524065218582941974365543517187223083364725021516746017434948078816399031031700165422326898937901937883811154549397310600170368699400117056780614678709126481253207109969258104729726927990652313345346985285379834780632936281016441533291522437257281006308731292368259365778164131729989112894518005866494471132712153888182137946027429556670355963075013122834472883038564622457848871531033665374848899133869614362941618827707991808448928011461551390019399184021865688050881241353272436349723832007325390836620793484701453712942119047841267600401985058150029071895538652922232036651657363955928789753629950463727175560381965085404829406143447993987935836127007615610857636097384917040530191713778804906846637893602245931859068316617665059321035654871602450884561652599638310251125671327717930069690236498074930817735261066134404005966296289953008808804233100837185619467115981310231801474443409991812156994886208736114072167515294341746267061641151312308571622311654010463282397199269964372099320787723577765143889558699233347450087704242649208185723278938429321060215802888390689464375754949780217703267234445461168795849168817685129263130005707815333896165129113678563748180342299941091315540862062511105575275640558653448176536445535054759646132255249341353390889031862430777531004918367128762929256570255689557515215508335075989243456716154119213331486358359220840901066164993823227841437916424831861726100462749784560274755418813366833463736383707490163283827582028361754976936393434537617772956589786893256764058671149214950656784972280069125628002282287116067778214354399937216472219836850444152053332488516753801886512876097334084623111007240479066437550861561593800256001036157483113075692883929506697589201648714421512016320926667041062244673421856464741353501835449823625676130659383585554710422248553127310407844214146279506379581336443179458590612299561768448210287441893873656757187705938921279683320685861566000613985177281057550048135861852203748723255910716072295417616699416579184219187619714821517035393008199702084932442251432788297690821923214887591832773809307496773458122292990279022520337761773345100432124881462006488743582047609846375779212857182775291419986619080559541477926194150038558384601264270323380819667743965173915131915034787306704383674272892933484665809031633600540514767063371950217371074788648942429325050478950135044708906130665185951032214430231279522073923722708534625181954827953969655349547110113516592958908402200960865612892087670331074659934281203490931002803440911863234691874833942128134211587053152950869125451344400307772778425173350914244985999988238374719319588892837108957456765464489639608454938448669600470217683911277292102781742926841788782701434760563437161416509844579993078829569762187755819269239251817867475738741111436528593111012851531457272381038319828092317982988878990221597531774390644042863381198374961337986118324575147332985575478694276395068090535265733450872318915263911265439139989436076563055855302297847942300973468440693057553876726061548505924755659007575306267350181609975862107408047746879574936326201297401394363349816844476850202321545991234838267121314424154787705691622611379468481237420024407980321084333180326457987089623907797879214696902824694231648570384501737041126458371549653381759456511787369213284636083663509871037364320642888129683837814291169230319346476161627208815408216636013614098438404841566881883704607415242917866401258089196942648137447382951221479425156588162862954523299333748454202731054064907336265461091973544796856662659420616468739834147624068941083539896930705205612982112189081728980484249335644123214548909391376258855428041017896909008327327133389038347136115977445096354256495017341663061041881273634037091824689157590581239632906460832612270365747268234452120755236117433754421085702717752591947770731265148244287090050103023958611243712499152539977165989681927876426379498022588437369532331731985929092215722683436368765032657634758939726824480154179989280406562962516853182835406928902615070700494334770349210302967601313129110132041131493838896319553840610624845116741138909364312526937844497468092335197768497963140360376363359383214096852452875450391376306097247584537464109319021911903494149021739555047260076067090087443492305537597219508543178678384604989559912828453328273736645326332536422788678052063543861413711137652156124324487922518264996311845090410195134148301117956397133648891923511170633680669671027054521932021556946591062719358298972566547616753590653541124777069970550624425368140006522403521883014711389798535548134879799532046173044257514416591547683105161953675671093805066712220648285914812517556032569163633890143031597157119034339841048119892377240368105749475829810860231673180015334974583628664049225412283804570918218903103096748215152099089256234394339258577902670965535749807512739749109375094038729256565743305200760523158792767582894959969737569681396358468063654304074555870177610409596557604172509543108132386117542393765901763715542876889044414951205624087416002104608522868478990013971752867125600249942366789457462789369756220032219757617985004454599137614506789803438792609770830676493824751732902540734903630053323412835526219293630842742222082471862680270132415567230798481936925875625964228770661903774094215105098463680628756114334853726985930448575533292956853981034940147464771179726124780393394799279183305354733359889096709122135512933316554917525540444169593495945193953457866249234755037986310896535018280889120608691314266153139175472405755427161845794508128535832115700045537556302528115826627339910969049137043443357438904312723337618153537473441732694346783808445378851663252022138896028539612659395412340819533245030478818204994852818563194551218777043621792541692506790273300183876823513479871275591841060209236090227769612381242697207077282883637570626962032018875666178216424344279623160586224248512068062614773939141352856737480702185292921850022143767881140079349991556182195634046291715827453891359891184229132610695670819476883263587152723422400379254558009598048110397741634898102366328921262479786891641861436468043907151144330482275134656263584058627194420872775115826426772563961765885201373636129643124136210845518446492006979432643447611884467695391532750997079149337898052503503691748019318108097678982114225094163085987040758651315915068934160596236401827985601987926438480088980061527352333049581889996261065061812102058096375194970950473001850156099308984793223410626809002193111333619639672256929167613016306025353296477294657952881957582271430685401964029750294417059084286565489222550173937985950499625020005833269182880194030693292021992057500462388401795064858153771485860540786408817246155623148936633468499847866963473425588679178118370090411504951834653488303450019003014897737426034854584584762580358239123630959687093424589170877758415936988724810491033179465376023110275694976189687621792499314720136349972118753040864332579280306688041081294578148737256434142097619755438924603816773595112256531631215060372277663363364805614953342539886806082622424754613721223281648737446420318086077809138890379096293197767425500146158950883245270183399046629372237698780830838311925134914029871985785278612728431175633255290807927088685669962809715679751210879971809862876744771213999658895847483161696427934966977858058112451813278222516464661498935409496288466528943337995457185814202049594541316634761169859617852916833198644514678924388950539862476799690575529889168649019600576864176457865294577872738655958982028270021558544938743266529374640175819436786453634667357440984939019265744578590479582983564706661634474220944267408321667756081622798446839458953076803594707180348656379292489940238438173886217984945052968555674682792832182775984068332792109758941956365316292000940140833311118686042835859187804054867270367412509273952688586060581355365767240172922282899972060530653881371056024423131836708608813831195510584830568803442163129320422204910315735457353205926711732316990804860666628065387059613630348527375423844377548626867425167251572378420993518544747229035742419588725417931686414397325018240475078687377095492049098420091695540593755009697514618740759298905203161872469653035088320735602881916850385567646158120990760961636185833847908976033372759510359667524697817943799273454289926637536181580780287519903446548371129020409882606171573731898828110892717207907485095246893016501715937300673390538509825672786097820849359264029055931963256229832722228854587407740723805261885543609019590490391214349039983002049971688562143858099245056594642416188470467115608498534015051503204122776768437734422926198690318250791229250668835108539566096151273450031344604435706165270609025256616041727890879117130793463251771200644567423762887627453310713505335073281500892231144246213587921711575061960604547753961744222205131913013890963664414694880838472425477002326678977719926041551817493322000107029047823519792316940248782857337092802236541108833048954659790314533827711244499395142804462265623090166243961136671418311835506518166577780419453116897766239589897070588741920716402957362831808832668395221213686335727577247159131578343315517926308740490044860024577714011134846920235581203487956065363025351410601689814864022590344583653777422653559129893649277396478605155365174891917911401850606904863404206740539204575784728327783168789392213428657105759996678409371392695836049745347798009774580830928414984531169131953440898914563057190208853562601091167793794634785214305077774022479015785227831371512192848327829340716828657764456461002189903384393802589112196451612679941829083416589678634339852053813533844619653497400967726127651169203585644973100705420643254929301210587512336385796596953564957380644818722734064840500140963380075566127072873144418815492526340725351130127448819819107908637879347247101155234368123936038967621029633298863969936306212507655792579601211303870731723994433811665384206041855060398772988976984553833001854063004828629310364983432683501526936482805557790248479096237142999970132194599067235960529408783256031889557267480214071586492771092489109366609837819559836012254408692212415746359888103901210665006274290714290514111236941089215694715936821123095195698106148959947566898781350861827910357401821728401212571851975913555115071065484428000258623197996585348912046725788814353436015873043022955842152529413116327384171741839922603270936095788323645510745315231976502649575784696045795329656909845462735215742087975255392769879460594377401700466735164340725655467102269830508546293668953487415683343488726374513520876872525143382904941030214747826976047364549841855277615167394235031329825503898355051335810844043854382308677030479443720302670469743084379477932012395767141889986661547601418163625639516188157366259831843936019112343644772729670961176290921871109150488137762842789969918836143270105383074187432367622864872132259688051828215855075065770081122284908916739403076675526972790305098872805475206892746750466255821156786053017168414124944897374525673470480838755577657067474248753115823316303378371667450372614215249717838628457097461808149419151136761578329084336418435466171869965410628080997019646628137516034963248797498166078501366695118310438155720137768654889284885398119288097949661971837248354165900096485881090845292541630252123886489322937966607168103770655816276512134870146110865171318612586490147795329580458985954908469070542889185099954994773021415645866433609268874899683607504704102642797631982890190081168583749934096891579657700199910526423947155672542880168296528509926550629409086331675369451275328200495637291102243971271826710450198333422348806707548976110508086137734822392348418870170066021180546703344806849546290288087365768744568442884651863891197563255029210806425344286316855498692406116334541222253757057439313822940519358049007769999224723059608789204392793780144210223598118234295923657427279723055211246994219667845753393914403900183384079891072597309877423864963921644138598771556677626764795753516615656766053052512967216907947771909787657472476479890274867451043656480250642293632120042977174155686122268725865124218609741501686457843035580657018323351736000605992569423240163562045689092062273943960344336868400389396705183383484159681916629504455070214043530612058504793484343133764356379750345471697525314156924477767837337462423665492308749789546756600421655379822196259804769253614914712952272351075161203717127406518646768071307255836923683033443740368939641154659270849887885244054339779413355311922192286193847262475366091506753490996574794290812156548970439436540831444797456291143983855364879032927113727334316438858131954649869091526211354536128852696935995565928243621950400380008413295880027983331055850154368266166837935258497285720934425716353019734041549335648437942799430826929804642782956168396414997364660953573752155949854019907737556322744738554112819983071469924904210315332217438386197455898010308406751382373566128752435719629008449443793109721971627651280710747079288316654094703034839683499921856268845791094238745886509658338753636230726088479891257501233235705515879238023860341310062923745919925932584447734579037491984909582332753481842966981572503475432904553970579987207814203075044396817142639940743038296399877283623275464616513871702179965859095023487828403289600928614378525607613915930767201092336768958418534706283151912880409400960181401688857116117308497524158045669555557261612320352604566571300693195197807639821906251133494530682668432737396755213498682460918992920002524550676236939741585529105704239796307350077807526225166623252985138548546639604250679699938497538001351105794637827570378955277871063727588780334565499486915590109017397602157841126621011647403396254326222138388970581301423144025711635628734155001846788500967908471500040123018330283015144407939732250889973923127416079067855937879642472605774934815404415198529301838746468186587988630787395196024046445569038801000666838079173212801033897117470097251216874678772031480351614296816330944169916224459163963691528686282643245117759307450473640065284980893891403445501054304482735001636040995584687565220937090779156017353145114630772586683686799115574989773597726271957147923557439308911309729657195756411318069937028530723910564914595533410863261632436202444754388641111516672422200451963439222626256116158438485769958276190413473294908772401219582731614471523575256310815887656510197757869245041870097425491289223509537754918701970250290602220408896002190001339633201055212029369634999590341676251769300846883852968599128698406463725167145894318529222237077775467725956897500895388691926157357964059933313870652918418518323730472093685349211078467031181200065573203435916447216819991085921361080519322176277767194207128005303497998550399203038010664295605816013914378602442573937830499582363540772554795987271397736687974925808500806802499382240144749823660167118939642545946843674715313988732479382029952000515361125749287846476426190565419747265187719543822712048408585773000848596915830407917871890822565998936961162518551138119104980791921658942599819004261604147450547412966909561746454285404624625050851843209737497379101553390607495173315576849549212329410812653828182258629656209462023235443006972505726358837347596467874435032423875880824960625592337476271178532950811415822425359481647649391394578768175104629424733228899376095042359858545111849249376657657105642454511485179917236646107602901474345447518802648308284129453850714516871829337323282702247379122615393180270354465738538163885791720272572586792807611157277820802346770348069095404070925125030662413482883290030082427372175123483653324150642575066337258568005321788286578200375772732615827280504354889793106729758953399668667646162577304464008177236975762069815572576415795808195787045005075740785164798851548561027158157416416720377431490533426748262235032540199756985284276622561866672296358810652637082367633912567955270857166630106994020422281953848444421561988838336900501089572687570098929291393488243505313525335332604952579273384063246611911546255155047008549522801565362987319039434606566609392893770882889803877794150769941669377415625947123780715206707649792438029586735135439524653645191406524263990843775128249861390281742681392180816614837373740073313368718962005505909495525326785398696698480310030035424688058777189649839870305701831869700455146298196880714222394888228356458620810466095233013333848745408254978361883320636374189739142099882480581762841903172414396886046516608709447812215550316819703316615798594697838773264288326944852291041363577549741604718317862101979085705823235499545637578567923445388735724046262205594577595143460805102511762347343345169588672666090576880644583549334093838888792666716684500127440577658829762929163737810350024631229089049126788155454744450298505287876690745311003897268927144434429409065877413614853817316414233178135695564821622190198435875260072746299813429448538112776763969576877032362276327699051979814646793039324032246456359698001073845975069605774517814880027417836905972420359142461546337822307464274550943217318031375408148240708963629448498582136570426701784978860777568034370225324462703537874333183864784266352320388836311858251387686490558760995780218521674226334193301757779368150065482010449375788693578679529110572544440574648260400232896384932040145429425619994960786109977355298418562341580395133835289516964589192678155333402780138479146215554401248649775074124870503269106820203834392825577940569357869071975448628943329662078846631563543666161520896204693710631040279479101125163572974175392620974272445489064217154790027523299518556269997632463087546136223789468135756728901011026030352530924886817237829037802030591819469836786014292938578274670345655968063297927498208991902070515054123954130499223340718859717177429860554632011914443472747944289387419681895251874497246394583615041062936152803236629777069725408711274544690341164824716830159076002457822984729835138130585941682701105031958418867040800739246561797152035583130374291813190988602136400823714818928443280905393889120666072036349253103036733698273639138329931916831039202908142553482355057567168300111962155150565237942334219266176564172189273150565975144640631954700617574013748263442974963918714094916775201705540687572871196164854012851374634317908731734745328933892635889332791278712115968958682137160434665034626593386925334784450104581538339705042454692385005605239587706181562722594918526008462070594475320850202031113858096736976778460757075178460763013596489127976666622615228270295672624772416274067795111208710404888795262924423353363094594360575897781559017388603310189871897708460164372786661466666337679350331691381882387908698423740308065313945047765536138777638861164189315412090023935243334023088201709758175856880695485737230853074243574482459480197984216248944419433127903476329472946390252288777877190270892650452393760957728376486591967786029803525206328667462319410561636551497838993301767976242167353063853454794365603979985184389036157054729095577061760833740220398866776325724733031823561795636107215276943220818500415984864014200802521653894949253025984385268898388611072060380952510273493412882356815485221663105169889050223762055084187180272820745885935059259863266197422358823968236756644964267976874789091648359603419960116359293039947978763004046510654579506843383930870338018840447678196561471081537687708544378557209492190695699920937474723090231232186259512392990296681045688819671255505658540163190834449633886311941013259122749444629009123947399745961174744719523140952537633326502171167513241042200780174074231122392378653853571588971057238199076305956792299395344833297884767985459976033314785503959430048848699250945547452532979869031750104836898323311005294151295583439636293276328242960074843396886749489570692463683291268099509917717733400937889276499910076541000503509067493978378869033639565676137022988403453522949642946422798111929035182006912257626795929304587210879473565708945917897572030731722108551873061193776525384918411395691351721501681078515957927948058452305025577733597791720515107990838032339834665999051423688711350628866066297640556749655259110733314949265940420969183618253600693687208421721753575215354847384378153278928109865868939110913496364140088751540127485980037270989787500540134359807914373993869436364153014301309627730581319763600766685113020072820806334074286965158870859086704266821027743808154215971109328407089871279449177234469123139900709095200187589434738531927241988896279860986022381486516955489643445175786086082433749951583297568885332609945321385528096206788327798870574455405987476668971653851230070652488552160556283004608318461719590223566146370873345103852023426928762659006847267556477036064061300533475014989325716018055912376407183408062205295697203357147214216402207163138137178112058089685733971335093744024856233634023171870651948508091451127570535293225295241709282411956522583008537970349143218191391577600244593245539167388793640519293614385079644802955809623681535427475524231564626613901811191982430486014250857213951347514892565024594460856293376554667290494458085611116749828860026634874816652698889696743599791748682736995544904051757584474722174797713668652484243639127633439795988876929834758236807126301794031443704582797586958620573022918913930070780017209363390889119888066660313114050888690323051693070682093517148626602970626626406797770419105281896152300068047635202179591214850196568934625543672602051184329559211073052386740526067919983296927694263268773261672363241711531220100606898627718561834447072162040540759323494077364753344309106883394752068617158630940980721815956918172009303062731659108347899215757726303763261073521550450400444640820592059448589710981346494205018153775322091078313879565064238493735227425559886572802283662334647778318434451174601468342947424593665385169593196021466102571551089599189882100839103036817529224566543252759575730209492859369267714746947464619808396537926015704358171159032929209392288101063433366601473513217233873139700646514036187346686129237357258979251570994637495923673729439028099137744720174272066824422631557830067591429071792175783666397750937355073465876204389734439782089429661927503950893656697332237841597614736163992107988817252602272078595266143306035522276738960454347713815018158487656331717690156407115335132989700113141034145301847632077735501177566573782689116779608407769723259300055090176772870412138757056103509782926750986980420234419514069946599458879021614239779138532572724021347113287195301282109355715524630420497853200442663326012296963573794296638321323749407352867223147356797924718378991767819388647202194830997011962957710411077013401151623304367766162550547593734311910810306879047239033971716451187616080673945974712365843101370870839911472617427731359819147535349406180981603845224378199297308559680035525141261429135278986616747372182669815729846075918986606617673648873018782029716713716369667972420557167657348592753558998832315100762782167718373894398032592890702405997020604311840893650901790957684790637746304323329172257594434448110186116061030533991078543018995407586534650343016003101215665141899530164883636335630928924078179400306394032938758319298567300896743336552621411156663242314046608156708939779810543191084649028225752442110793932691029823195451998357590305441539844648205146678743492055789740720143160732323754488684488377785743213679948312630151080537351106224155991094031620848543202138853133337675707510227982453946338570240651972104266820793031086080206435568106904583402571130593262324110737665063265247289309022659839542749454418744419135642396478304810074262658222143973887764034328764679061734166915187573167991037342486348594313172611414767721171527335015178553303517849817845087666909669148521446596473014322214403928387208459711731605411755337109219127696246170604813239790238601913490212803736075606118296634687119983372185088131221851614015350988764860366065175173137330136261266857270779487617185348752414128662997467237159851821104153685616696309663436973218250256114522618371060404560085971001093995627635172905923382841651699504418229333190856333701996577710000762383403900567493102111718414077345309117403852515144404991933466343717048832353264593640422737625459785707620385148761532568261276110016577098405851151902901386564341340007680433435284568349443322187501435785200636776634047766847377508755236109080883741688920359073449942435803003884585722542508116286872373008696720123048567368114345246236744995926823541061337496100288395894664010906643136431001990680039973655014748243543511126791003417155835924514906337505525477920983588340739298458210972557440255573802587743418441659741322442529900148794082623880853513281804082605503202898118611629602455774799157594196521578347128497689845123537529727443823716830627175346923268782059736789129503444517422963251562163878644824523517333562830180821533598604027817374516842086836520072874871783102211597823081488005676864810928908630900667959250116468015679019384290070076657194910717390177118647572357476172740294190787510033233391041458153299100761134085246441505350827862763763992736299388716957070831825168251300898837231151652769353745911991491738685782120419405406066557729293322224365914243236790684675157105219881328918654966910906406834007671627400276551748816477162459469424212500215091997510515910046578039066461152437464670144761853926339500990589078668212082346471439314873968760355047397915229197555404874227347189830709155095592138790207279572687769221180319532571449024465857323391418325317672834567148153723062488136589387971450265883101545783755743761673742360531748047169974111871438692275398100514461021869252758902483696084646383522799903186864237851832031232379017965827242483130820054539560525733674326157251871977607633746513491199620493350462496692630145013732916037523881327955896774864004932523732938039890485464064758736747355570019017487796464343845937509973849703535371124211377180421610401369945703533592128892558366306169844272486046192202128229623730677919811152450610887907597877725048238095530077570262467313442265770731064258832352410395558186585119751495803422442249967259728429797283334712533641780501207827782615931199837899577938784059189864100590317682344981404921521161715393524980444243905397645863122892585243809191374994090105344219281928213017431226599858768909646105407697687686433284830382562156185645462575235600404765226857935961390448678783241706441622825988325255491128028750678440740081206005902405692804566456519699313757174334985407233401410947721104487539230737798733536029227867502319345352625202467419799561116801050421466821478567863691581649291487417120693568690071991026098759638590490065153710955008036547435395711239592234075293588599890601952564372382500267746603266938119295822350898734620220322532026583387702362203256838158650807869963797878510355337859077050123980772568675894756577130466781021286436447021778298142142609071613551050181021836485183378295835120851974034598948829538808533131600423552550079377822188515831846524858213687532672069206318822048614298758586250307840842821428762010283996920308322649575736392492558105279497821741632881925968221639457291722424459639096713768791132552192404157657003408685918601146361774215004663638437805363546283109741640054784169794502040093635989442254023259903561523134167724715986074736561117157091913603382351460158155029224428652626183539900499160984002931888238204028026082970484922001043239061695679091598572427573930948616262459803433722490646175480355726507139528058650324276706045592374334970493752991415256343404104744789361489207398700389382681846932843946544874532076024871919570515705038752492533740376047565884910166124608742420899978479944412686109403870577642681095638652954450259460170147033528137146994951823294451948513660669614117448460518162748286905022653342445223139942265489016829072922460381136136480280351292082583225813560044171807659336924032049131716296794663199580939586938551575506693961956670773727496252160869879742954675645945091351648525335870043611465221953716243974782317954466305807523269825508406151880864495864150235413933924917109538257695426038625715925369665834625296727846704211892129772991300787593140864212454824211678112436415540956629174700344925375787380243470946328767291581644136035665882410670097313324670207540449484061375582606686242940107960651537976472669797854135901382234322001258144676863106505438608919281224108428869600938548915163329080310695478654313655119625978944914543120722964430316475547017328323578114670866459822910600044539955317053148720731511662347401263851152400970268859476925832575085050094179783269471256059394870268874994488977535285181063543666301057839477381950037227364522334796396485896223288286407641019422849896186786241132987223430100953587133678486776575455960772255969113853496349993656367697022640856362134310261343335678194786810033239828897189190397354762699418374672816141192901573316957408493622228015532663740408153211635408245072198012082050471665564695261246057967775332283401518176013639051051706954692226267176074649032435267707699458465216669642318336298766190842045876064360062267367851717743427179392009679181460121344456962526820883523961044760141373809134770027872088312292696354083540362267155137372711365997347005507251040079488892358564819666112318118384701360154516449322957155131595276444663859508695291552407470831141132096831902910282899428412949144602942201821397931529460770064162721738196628268353856356601050156863591452362997723145081932240974512381004118795810463098229194050882611374540055836775175777027881970808227143594103444504820769281691268533116946381048851790302085874696867297969164819145018424661333890910709667545045192297110011188858945511271362859386078573745202353191125548237602416864498612683440833506600450214374504237249052451284768950784880836415660848946782782961428326422863665182613775784727075291437754622962543172660116221112312254430999312700071490967354443551296950087255238255383493151397714388410162037379517210461485725601375547843604105689465633460719366133863153434546308097026025293727720581620247205997036568883691449598640486245435853445347783174585033307747351269861020535181637750377971093832191830636913281845349194397230234200372329759176865245415699059894152717882532941784491017601673267886115316435551565024700529972813469119848346122852715414280533216543542352897787044349325035342821440902276806252557138708586522355294909929120545208312068208609066720216232612556669529398171569716897171862746995234355504303212534864360774884776581599014942170235581550283092183042795962346443212641127580314557408870401873647887881491408389201909663155793929043229210685845241997438338951345864608876622418490841454820338450049727362328369719779677278480958536944660816421557771016254588201903989127061211613986770385847093211183721682398524165499814428146848359688196706037633587126188064375109437354977560096549470803296795947896320991023651028540287580592277333920221968490776077294471913277648892789816914140823561605160104209557088570651119609058964095780875777502398057442471668559533703939918233629215966305193593995968664509443625095395058686395934826299003348022191859905658719779199553339656512996889876727926068390464013734525172461630374269861024093636682934678880415671069381416491426842473763224959947690644538466129525876093305245722391917656097417239644991422159652982570847916163731744328020988734783003231011204500054823933803104665697605793788938201659435628055096418296096304863801936234449182056465823384035474087577972545577444554159976472578932150230999935677456053187058315444499486246065527453494037412052617589236420197403839736829585260718478860724594580491716554740682699180044133430593406869248747401505771416485472337607374482291500788765376510506157555712598533052951612833645282515285778533521030173658668334677245805379917950367271137566711169711031770664201693034466134252861634119702266789602542140049638888652795867560416421221136173513311130645873254914787482899616341799581807233652928712115939807859848240879016472293000403037650947305145092982675298648051332623631748454281946849129292839331937587781280376182591820478173599695250530630869797940461538731043422066602610940407134338648755045733901432023952015994389188665277052517814081555247811017696368746269209660971732346450602003602874839055293396716038803331537892404112964058503851223365116595211952997983082428908750110136238878579456573328256017367576637173814928402587511755931220300943627922075049195496362452982924658692571679171370540163684512264063056855379051641392622775801908171402783464292549344355363606393495903222527258948635990787020165077002642881487781407295604871300160082703331132927060233628029841246046845554941646922191756083873690383336871382039438237797808371901432819954861136047438117448172655303472283867582771646137427554349025842223126710089228843642466425531212577085418216402137112658415984789937100235329717680969273314039268352364124416592860867649735697803683702220572922342070176054655665433584286351934280759813456770327449104030211911005918077489940687380691660777026839801266995236876749293416790313820758566512381870707251483271155383591527418456411982667924148169887211109569397343843703333843902823038964832172281155571654747945829612050738123445955930059295149393806337824323200879451916431999018461257283060606187597757231064303970320812009325712852479105066900381081121506812356518516703720024319434887707555824543556028747891393227779832970253061030929582169672761200877461641225053743358948454686179265914394230775094650277387569876182342517168395620859356993240080532177721257377896398649361349960389271758616092090729400598888914054987368023220636982064027754569853340051181376487386083569595461224879987564377628868126570542519416660375271875850207133075162280324241872617891006538719004525657610330921296275456554013356358988761126244020470294580889118281428519598929327825176869356625973376988322974630678998845298710558891605509335716191717030171849192323588107895079668007400584208093719975352471921690673270561148530181370150188598384495471824596008761053756808499913350529599959036263807096878770536468196817755674911748216890030211102776072816892940639676394178490564243930739129739245289392661236554345339963887104745961298894098855591311009912360160127582488199676663304916635545561565363062239408662538041435870956962389022199892119995776290081798598918937888226118027439239368234964595770569269532649697220674773447727801082218209116357370833842751607117528172080061306736591862852184747517287106430627373007888797729286510247150763740059508964382296973122130128533987840454056829770728376773638856964155757443081122712896037697975921779759911488548431801447348421149003281455921276772528089959605880996257364613258011418205613231926002310937459105005307044070946869276738563668899814761368314498586724069342989694277521819564196069872264851924703984174726007983498287850090275358527237094563702394545831651423034018860878152848223924011129207570860668166650611582120966104092206119372116749314027963578647462746125836592212005498470490943867864729572447867168362745958075394449631345621346910219162802280303112809444064336791268994175974744276061288137756784826822781070939635554054827048044834683150311797727667828953512139237650857346959524222911615750923478725282181177589652996110005426223766878314108933206730337552014300334013403464051904884465110477830513332978341699995208262841080938995014393975795597913066612058082608939135765375225242661200939574066909388006734854156720489150894861376983881192493629164138120526986439555948647032126576152495649608494783613051874377932766493052756126040844222353870707730917371193234998461209605958853742417865525302519437179928299591918456006187195387598027931251063168330287643075535548734521421857209291480511645641893711058356626162844365995212502032627157766667220712609976687746703723032022108451747742594169929474427027283131991072031599432374045062209409589550970767401518386210650757954619697855569689295485320795663087392360459286985409851367398552818426409363163900084268051743092374851070119092962930049547091506585160978225221364650950498137212223223344630995900154865707545966287749131101287929426404495140075306114148479283968931765673571603024995096276026368226840217794038977908544641919536768490457478907330469683575760260163929335159808697114745260136665765674017991677319324014632333801685824739718023292477173974904578498931584686328598960180143298943370283357643030351247966137496918519795105227660203171063277779599693149736382405897276371005071971782359701786007638699636565981158884469656971865413180697490910307786437103498145532146500591930351190585265325394346233476471320784213973565470559975823561796082847697301633099723468608909834803897539222287124229991736629596544592662626636585904964441072444821780796621396260991266973780388408721511235762503958104912407964267411283717292091259825368896783702573744321675718778523491884949875179676418389030059137233340203171770426207109686068047737842708507413134627527416331177568390901607376946541477888114178364407684191579119427732495108040400617536043581221773866567792744406187654092675735154875139450363594374729244950436140420108001380400798308631234967962735652804168492815183051085274093207329574415431831838922835221295905244958658720668075615538033927534701383554787313167405327532537472782657208196803033469438760833903653909436542989453716822085974675618199293669689907180016335061749653392270431345977071930432721820681249935700659664020955978024478155267021220359398579834848041628695768216985580144531538683280662195522540412719386282927067465521943876590185368302237676154048163038385832753232935931342331050770865495926407972957648164313429303605499427246683052987689711737962832522483670362723979725978275058895616315400267861644038087699752361778489859039118136084961242158805497592280220902669073397458027768707496043904245539990128175897596794885616998722566977739177811935582998852596027955266157969753922000444546548737261076763743307618530240682391322633962962861992785712597739752411512740237149188912514730886260593480566586657038932409025914579509796828187480588123517055104507874951079759065199813727809583888033826314962013556738482614965815807360810847025211096214933468580638241775249869962746136765497937428101030569664590836880526696382874222085837861827787141686733677049157088635434641724307775391107933764641015263048358544838344703640340990066627465724501960812165584115353993829793310326189964375618426270559147437742154386322994607389055948033299106680134327176096127638687367410582152230826031942346907667534767043257732292755756188984261665091157106292174278254878865713066451501711170131791878334998052528120289769827495584149088403340515973308180793854545826352041629052138487529250093691674157603841335288685549726030875212999276138943295522899304438866068197565995770216304094923513989985748171839182017962046144151840452015959564792897068880242634642606006419392177713951975766632201058080536206495271295474865861024419558103317469184728019008257646396341240303679666838283259866630330081541330369448796288094430372248756169259464476495226822277137449897687374889140095526197846388246052435474040723994811977431770871369363236996118591402006683872631067675718112139623916506607895004805742236464568464364230612583933154856440188610499699338712662801304278661015453677772328868978402025984243187125600017824161295626515238449892226689038464300681721235476496521034069857838768364598862107005104312377270678196799195035352426268393392299378826584136085392542153051204872713035230703799551859390692960274847409078046676390415979672314983903263841741897285730572859016022140023932099165248734288535733411846089422741161415110741659971324041183197280563364477593810990275702335921634510449176821358408301981878796852887760506169737707236529696145231594143628782193308481405200153026739306091500143847008963913492941653290963460412297656116179279259053911158415297666654987781231521880206307826449379542575971923707042333997455088305784442367495909350515489304573732284660001893970198076614055921603270564599581304563597044852602019855587572555518996437646201214678927264580096806628687815411290749240986202604000880412024215604516596257626038247741428966671762559505089290955298262534060399231850186131135127677443098906528665168940771367973088393035325823070917567209889980226146888450725649241337034678416204419444430498268841342682449069090938334697111905286439655067596644260112383517674900389667683419816414953015570623920356105503937878705323832608432571871362602915803986222860456558376998640958781545899723077631623618803779808258604417194438147579495617907100220024297820435208709988391200906407942957699196243420299468626791373771414072771137238854723322594399725755149856384632748611034435955606312280911327861279276501409557543915783845602426538185803343069420099068920057190024734402807688489197162334244600125387980599647849210587152883514210847611165926915924029800525590892571058160971048488244247122837749251283164342586841959401743941091136710491978924997538283194549710974779616429296693241111054385829528820156341540194277732444869814948831518079548080155446707856629016722104963868797064391753509051237148362043716312513648915671309198550895192971071387525762322831232368468332870643227769902453677883443848426687371525084625687815200825821764228842889666172843044959743068361876291751023839338986450732731087352621550461410174801529483996805188822618527177148786204596223514891492439078168411087121514344034161404364277117684053639292553867731720557105467253258749259681662767052477783161242036761510001906241243576156312285674843562387612681202395098221357289224279798493562064470837628599823483743983110964175543326367327502083899127971515855437279500244437712660432297993337983891454523403197214548334119856450883868340177550963463617611642373472392969743816073266002251813806306563691087232430722482345912135982337993189471310654152659682208103143867060618670804603310357633873609252233423843577586514054727979473406200867711183821438865276577026170032274931493085527483994848934865467145649415374862827423470312908836276728588461881994410332472569459391554846588298053511430504412663985021124028518802057306021495796460599334402534850243478862666665315740801256624030015992791463949499093475220473846610407745894619120388053942489571998837556749436422598720686380727265719853070540789970879548319657311439154912830521236096783921254556558920078348867270666026422715193578888449401073774175645013693650009241578947468902565005039423251320671572548140830827248602566756241601413710399740927121376816329799337407774257694463884998403737005864870962240101876389291744323426255876304069261125524931129912453010991065247719648324891533882816232223276504103754143060282340791993349296151521222134313486663340682872175654322579973044187361183766135199429371841222793170646947458701707272939989966672183805795811024908486470171731863318393495080814574049744951847535833710917834619499594905940934441783916972973904470376523337040723545410825774319078807174970538375359153792982159990987639863599580086348514580495956548430147346403738511716616712593273756010063926585037457276302045839410026432298817005961264043698378563366620300876407641756948441254983445824513634183494280218365214088451592174198307516580731581574547165696326852242762969164816552577536351044805803833017864814927287062588929362441021359493365716909198651687616131897275384079896239823114891816659108988236774329757211378500989074119194135439266835680111108125279837803883767904892022669077336282804220947985040465599967473197747484166103221664889900039135610357059683193873853492547515008816940428095834770720553468825654170017061822952235627041792041316298747989941507407324111652098336040983637226216425741284627225053707667576160185005219249966414853602039937799163151307970380976401091309731124835658917586462468729207826304231813186445135569868457742586043967748936389861254126785631082937308588260575387130651004344827147980211324822736849378654538188153461858903008440181682097015296777855282795644160448386895946181868063420007951571148147912126965673419337475842235789831021045753787416684447704213497459403809551229404115206250054194881440900799720706893082917852148813237193520624206156843247038331560024456587423016053553883284389527406244897993509152213268389727151011619091616045005958501448006046309661437110297857336406648992300807363727146767554418869334983645370409152783738647164222100691071948304493681316782689922065813409853597425197243313971382732490287862868461737534495201389970567139822863931605850096938054665648912521511012945991261105444276279451801660737509643424965749429213447128291871940517720819364593448868931381060656836092194999942614473422093581788914824698929181325042950893695402894540497069909467482294463145914450060257489964075943967223455109919090076089459253503690662346736972134903354633199994320233128458039062143469525426649148483719378324327068425651955648969113670485846282036683245205094133223221597714140503424040735575774073732822930718040380790469140408962846370485451113496560160948135512839775555195525868850990099536100083044685423168338888395829033868858213239703451454380287053236597168841999601668890837905294398570071064869955541113008699734990699463586705320930464757059127190772137697221951349667679346263408254726554420634721068726073826267201606992866956687721869287617767548743806304856469433082925540892719138238747866187505371675485424123236263433720983694366383418135026858474690761004926072981807466990707355108376357879407504401199991736863240646944911502381824739646712827190694497723468937940351097527956059591590831526798489697389161179875015846634193707572554936123637633194398253782085837108570777937226858365825932897818579348313508202345856826328130493098805531282240111506403473633350613465961776771268971291633441123993145024292335016740508552254460495380849778195922260059892948477296227358827529061446197481981970967514032115607266400325841845347854511983681781340637422793859423605633201340616820746595571720914421844151527520859200704654399632074353804800587655739859316113886039752743266023735982100760550346447045882927156535615332808307642591193328332949110747724339982816448560861973634845952136111834474694013792811551344739044995308738382136470423354393678590436186957752983240711369105295092785703958119687575184626484250586448838377262173735652730026944855161614367601495475045343075607513148387443735518324493460269115900687031976692994275593803541901545771868447388064305790554853661409618331638048265085352207834652078299503118824956895560238414388138440020942535855804037314799275640304402841655596571717260455318838398893897185309461091394456272111181548620162800660868446717891703012336346254633269319326537705398453238766509816985908500618463926960545403612728176811130243549230330620998924260564438583447022138961191587771662622646043586617625012503742046141428360583707222418836739603951023541879519030287110076217399393009618934887472618452747320390789408346246172141333670562785212949875230162817523555823056212126345362918197290810382959861885148346083033902210638060326755577045388460548024442427190788708706403363271783509511657231626017366251896336568038168640967075980422105530776233941741043569490140699775389979719838013643624218614410692141598509237687157292041167407322985316228980991535099025380043237432192711045309219884591813228368480997759568634070020904556169248615742727884205655336787594215418737301283841436051187969259890068105449418878410103792814886822802854986938582948479331238702084712659621691395327933560545584872155917109447196308300519969433533256096329102013141814532643065879969245423355943658314533426619383035525700624658037425004404769981044318085435658201368259426544833223832976121328281940244300730095517314363562815112895335570193961886325343358118390840370590170451684972465506072506807731325694900398048642455569840851116264502897297536942270674697442894545578981051710755299539681459009069934996791772132363969300985407177163935741578192359652707837844997701239935210073741066313077608946952705150904024185333336346002638298766183629725963674934284330795975557001709922544016806934404057844357544789008757577197045815751342863340804522343350108555411499042438798027806828927273106370083943987182267594634121792960031988771673010093956865932353423316988766524923211807914828756899747546405572233154183289881229869462647898030949593623559146603508653331366898350191056701378112680204983212099448853980574539883909642060622748265117584430473944857417870934749017704115145508315552588437691803618985689313793856074007822879058660824833759054238061066362185151196982823018546542867878271711715731770694883235760867304160397786535876710659713883299239817105799392471467768560419096287652990199435413192608417480639332123131658047603705833149941099259547358825023150073029565248146139011635109962578997542285991995071950513215731300596825791792252387731403371994271353379546851411343733184918781148047399604812756681832912369055711729539584180349628674225047758876213074596182910181768513209843283328525868253051929885953737789644319497116781470266515904064904741917106912202497979721652725203835724093284469549811501054648540570922764441431072157842347767654661502300259901915401519269531015982469387417210675608677083965118361937055608341981208695751354508830599370572881446612096092595293519207862714292914709539607660886161470596780692151079346321709541099606238526879314060039535086965241116243093699139898449470182370078414048029591919260256831741719425461742366706911095248292683148068572482127239440700582282944619025642834350135236965887633160206784618881858620368388147784046193790102589453425780120574340755390171953016758136820055116255190280994664981798949414857118853136429877177206194436101144136107228323025424562323453827065827667782471567100783425001763810755150524676421310794742966462707075204086885018993660474556516247376435230042639791260442532627920650593686856581887203830356914799398822425121275967902735053543547680957066792174644856722305268248705609349649499166461909345335271014625981748759943709296239546474783627059947909865226829491979172389954487143147127061865653721203553064298897236281385925021755667707348080369421135186236010439041370550660378748843861223697187824489186305775259572406500205204031045920482209168276613687619087214803065669487484410691466057117776500311809551960131434924375970498079466241746563907627327209216131857045040356162260527471539281949588873916599946580768692431613002698847005057559262801596014547108381136883499143367055553280006389692370395944498171519389527990600807437812356158715690141595072794541160097767809658342222416538374213898210427077231723905528676328648521644983651793365646768938648534224548686626887690422833605650748494243459427988103239956271637191807791633135211832995772481965244507881149546281521410857974157355106114783260007950520519899973649044601545442934575400327578869071999023407821156814216326321522934540048151182670429723454274093958005632673880756818428316139271660902176992051667439417254012029442175285844395769945233805645002829559339785530511109311747383245880320066720615181225994663637768652169553440588972277460016670065338342941193346646642260193803483313852447855366568131618494618566857710155833882419323366938193751359380436352102428652834987996874826982463462588195553060692897101075575119681104673675304963950624826418348085469739316948741190926324301897515697350920910686500914723454499149507485021638709738035512154598566396644412209682247138207137008535327150206001913012947607433641774207177404431814952456251804251701781728657783200317522538806033293183063324643783652047228713191068067644374171796241436073082239866039035558095207001511823207254103120892069171881993260269057469241923192850855901495322999357077654176892827694021143339893105124687400964563542014371658598172083074142977551663308751729731210150734619183143452992356138329204700252584002318058456146176657509473721296445554057696954393663996614743881946422676416953067556647426284957056481787749366347932462375589035039475027817304239990456404187160993260545811141738161419734882396715780369899852401530801418955582751307430452405066623591632965317004693359036936137786230388429221851406108361079967733969443524794956622374742354432930179148273038951153759280026696109937573367563173293952791025085609918560620833059875811083165080257605751155364991243752469892362141964146435339102966649164010389666410828676647621692044366750957077770839303152372549522741556858406769369525108281154514973799207264851220816429457226247681463279161608837984101331810159693626687933119257920686945172255121507461342355907367575826433074283347846820438998728138043883904628942922882379456939358418631122621673436872923766602338513294320603018128692367096746293003440957047756331850887077155608504682902614362003579630043273084756887025584521002967578916046684302602056242716411171647542755692289685947890684256606067022438068667367590613212929515589472714945258947312250913759753140181283248712721925614954324014808648285801338055313188701415848456386990405514293489331478817148631478814111373428024282579844619756646765214906411172920040510548587923085668528004343302825888126391489595049040250815166910341633036102085952362744155360485897463327153246596776972785378731259531434970828178146774485877194831434491446142837177333104569385633635951031194230760781216785146676006704970353685385402830721156118300467309563886509174544510364534638738979189085546500892602616193151611084185295253957047353492302462941799233697103926712582160426247763381779151841659730995432453144721925651566629418131740274311610052274971612056660542135881876800897027140209059498217551935442519049480748095784865486039746431483156615906245634009784028810087319270713976208981219920360029947448367443356147943254003656299738722808024311263089542656744269509702276366372156341084673324387780751215670466435466073473649811118735242478143420288098175797692646031788233776528934721015847817914174294016140174032276498068445279859194311397546831738215666756357312644121484834209500009128635462732618605200811937195074462692817027558763537984198585079483568810064625733371673161152540149968794898423175008737135775133141415159069857408618669577801891470041082761431864016970685951300515951180763912607115609610469228217553545803851942687536543636943614645817356809810690499294621997074402685508966485800804353023964314695649979298413247978414848964077496795768947025928464318601177670064907645898968933277372610080287610101866583878576592876610641057687018310751829939599635694495369382639183335180455595941507409142238632955310022278301337040600557552461770255760122069345499018156615340147535768931647436049196276691083146587380453883267555778270951800943773019318079759536250426527253901130211520295719484966148229562287926564497077006572041554045594039276704387004436371932900315553333667710359849082984558002703816221499800084566679158129873163523866933084049066785121628765929137865246839678596675280363249226979655622354243778260043784997128644056317080913660973344761529968288922988401913916183589721893410450574058441372242564757451332779704500452480020236666424182176820237266218324875635279883880892199735253991028615053940973500522146675768165075036400993426611697356877980854050665184179571644967964181629932538576840716039517042516353950099817533630801835886731556434728038027872842253632049097542478214471664121300254990671831109938163618065043628031081061608759741314516443163098300057304085004005441972829486054100912363101759248210914233644870378589955225544385067720502089743347409989651117435212773920214561523419423016972642282845181025184323673697054426905316788083483210673017124271812845582358909796299627256422464035049763716254589197929131725356255127925973868064732898745525956902593013237935133180775024038563613670496492107831051885589341838294538343960313350033711357455865721471450503125023978551248705771026009456255419893771678136498473318327768188590425029329527100832089556933702978724440987352243553630155029691370176128937221797165046389815190711237459445025396814712454205456937028874541126492744555744781341839955100600348918336617451615593981731344880229269121571761596095859475668013588067603765280862834429571950610948734348355783786157276313269073762311896233163051674699868106390220965377158817050005336984126158357216073403464221129670626668902730119848067276834886613642292847217112956914479730199404519109086746361938653491204538471207526374779579318742373293780546060016031725682134532816273482657976009872311134344928033263166279960948656057126250147466676790864242408858714473355412800914499761333640753332417788614878835509503047629223848243779099819565198591271223821857503272878376580965154910708324215918716775465135707538630111053202240132788151313977724563527467754375474251659422869171534015980003056648779893189841979282150890389577725290022031975084894090997047707513185464100371800344450216293575804675609939042766265583518735668278121298804956130329557259218240479783617294947218816688569167940259765163138631531810095498019554738497701083450130368321290084569472437203950105855581115762847610616919001697255915901736459521986780798887090880931724751161345260724924193830831449232134500674227425594319281677248225356633386976971144791407698903998585442504676373856696694199432922336970365528043256698888820859123796519944608834427620251580144186353090673044048294945366651772680476522129610239742407758302195115683121543899209892201394956839739308285851170347595322471545580221803010233775766621230443854008407465628319959631883079707557960857194458272624862940911921287185277981752128298186354635575341940271415041625531978777750406787891919721838232641550459118948943417356173854510941145602745801733688305889253397650291418060967458268046235498401300994617686515238275852904893195710852355806264340272135850848401017308902251030717824186107862017633613741773122995226645106216799450144652036667394746122465899367569419275945352123955777435949595850095697046535463895414673241121607024238985694474575017542659931461561180424013186904981335009345400521975218051791035841348197763433182254802195601427056529959490848783627315684248181526452807523371698226742544364864283929052217160403908905588854215447832547632256146062173957565928486353941542024117412042301990581094756461759928100728253705997693246466662341435952932483383367191368003324523015947357152001725666309077312559873663810293443150032260871239618047559338506586380276634881975132516973921438964281832530107880137649556192492407141417749531027297966729652109274348140298575641304289204253612356629049074118386848988933082775733761937677781125085007170695195219331227556562062029026289983446352700556310629235522165879956201344801413206224514567700559913424500089457251616592003292450915107571455369399468042134970751662024055717294515097966201021932841468901432012314947046652283492157906224859363775440496402598422881263197707853740074391151300899513501916724494716897030913837401476703638675736042886380471803592227323033063069269295856007343409583330729544810201009238135884840085965191215268385788504148851279518726369854304786515090056805600626693147339493849392556453436735816024815053337030236510069876395701182069736756993700729008693838364359457269216245255508697481383288973972729687705158954119427856245344271673107201071969184764710553861564219463340039841103822600150687379155685560466511530664383996665671165832528553421573890022731932522544911270068444272334562542551154672056772679208855769688295261508970297923824040042040284820640308574158946209459747691497859962510202474910705012018460076619468514159630422857869962911873984159276869884663823612987428208370983023352361083263170782206113439962915206548226132350387334382815505525033169361114589456084772710563228515531689377103833275174699759121121937711550050728444180753976560034003553957678089829302066206007315595463964516161757856686750641401246168261830424653555540870326984536578807371527003151770853904097370291927722870033558117885571132238595095111673052218986356077691496573923788748464131299691557994125846563699444071507782401956634240947629161432938772451794921040821100808428924489363343793798741092193979441387502600346506238918616498259652787333375985929497215200760415729717745744837127872295921966305858549798449585407126783059370910883430691443178732814218078139449483219369563315845359055921041302694007558399802513256907487373087799348674161896258190864602129387080239747891847158470728654403050743671353069416847154092791906842689529369102763637212339988852422202647937810791504680219583010265001655503079901380431258256184132450108588834647860445412371276298071971033988682761640505260568007100810708045652922539337676994188007507387079002393233137890331819404654868287823853099624631470595554708651855452379781920566803872421480272848680386302412329380367978875894746291913461728262794838320303091802397198174473595117450648710724225452551439396002651164827706125516939986403498540970550577894018464147300833003539054155093230997505529145883684301420160260516619728472372305038274165458209807758583211179153406938635612848983024198271182381308260205270040160663196413829541797796747886653412521037302359122103190225117891073324803023974197298764766244496014179819799573381792348995297072022515911950604598840725513640769806260712480285710297116020687427673878078861648677252930888452034877839378308047833022499361165129463076219662341137839465541618821295936468641979300320902482730277723445640199362471485278354781569962059641485125954878615211355395056277047049063996499180546358776969986854345408535841035377544843885195857182323791474526801597594856473858311495933031124252934460544808984006757157850163957914008100507188551468323381099853611750475964488931751933276157162327867357619808373071681695384319432246882854866356773046344328810217178297286386696679760126180096131753164390077900581401352195497675221259069003810554020472837570027714754910769158421189209333966723331969613945745058428502536645324051228557084693894660900218256771938505646011586725178008389048364010937659258418430805720555098017574096801253322328619420746573775147214638719247550018250783628255104290031605729789305533054914721700170943491473306967721384996032317312850950739714406297849037375250771023947906015528320357454536661808733944918243461465878781373371713841545600205575763826522789474175698026885881387058462796328552103476311123123330241957960153078356132440906243715828852753817467831639873989571650511665244624128628146541804416299295111428635499653737537847773366243677029141398702171497746797166356778265709358585213769053554636577235019576951644243115913264157797163440730745171887275522101596346466572259651417675777934719726925277536191886355611774863764639539309202609702004589840257856243507074536902506969739504530447142335931311598180974665379262108869543093039788602700351332227172994551837400619123767969575300842945301249424775995432519374136026110784614190112443969361425803140573496441600480506473925522770511282383291263160594048418455058759559065825089846766877008562198270183385619956853343009087946471781240585063554040747304925336511588837742892421548976977808064374596315653721537571976225582650342600343669285045049404644026636994257286526877273799996147059059951250974764997464681025592932907148218893733131798645662290292813669056919808399270747509315306562275728432261579746373398891300673932112736332336331488667334116421492125810050074913339737620642270678498871890490168637278615541652225336817457225994765923885087530357395639566482019422753229873025874608951748858079891394065690315059759858593258402250289976819728195169858771939344014482025927606197031025039940964128573852604133837799056195470132130567224016947719691815412805157520095185579604001671749763110881477084345134706282595601104705358165459869859934103447149159366440635635991847373029629468625911419740367796725835656699132533400052824830175351631320750479354628949685652754292828083618933241458486231207076483496918302212776438042246209104325415799721309552166280615647464945024584281969076729143394952437617648689542990798135287216213131182429889245425168928168130405984761507503573528096023964744613805978889218433405109375040603976680003117753907957349703605751310746965342322926886445885155893671729660757900085728632176859893659468509885699126580954088212353990431272645676722644027908584878914413257583758073074405027187159456610618731414403173873308328146374427032820899200081005844982661964365396325297369708977576549025344852398635148741031011151165124565536467757198667402071441011163210871706374047485475416143180846465174876963901924933692886326981180932143538550672030945591783044468210883777209262207785541513467273380592681701831215288868298431407316593385896684069943456958709927186534781740998978211854385160691386380956987184988419802034313893293383835234666363761086592366421972860287489202636338755894286906350494488653316011684997307015699180815455090348570008674330720401583152324932853738280198441374559291216427472920290588648927406893795725904725282173713215960558872592897266185732439734006963589603599445229918024586320591533623595042962195468001222678225902118296716156223372697913484183143066595552808977458437087140421239989687047791249894021643319377821259188832898774733474945743196095895461258162105782778842972461982008454289518842742222924531204573267375233621488130535603022226837169792981670586550057313346397291180049798520483530716478819833949371210431124640335766386630327192316806614396749886470255425962516486645815100015386033521582649490922477160752814100458817851459816004528339927748352209859931289091527096586010184247066372897231895929832307852675432384707226671225124981984697711369190930071338331001960860378069645337652619956345738596369882534541348204309680668263486992938954185232504395411863990829594909058694863299764056763930389633869242991928679825927177096051739814449118484251784425234205364915714438415647427118029881214439704469274945147690736067795840583409672908660010613252531881866415529216231624626430297288297661066197683587050959600447282873750416707807128517805001986097948060700901119610625624400706314199059824203515183543968749512010553932624993366275756891465160530875808345598480255626214302826676242217139157090459313071558719103505025893382495965217067245191819364735773221785752289112870923313436422000108253552697964227923616808676779727855263768350520097718495160681134122281868978127470571848128823520023756961919450641070394021069654641051731870970063997220131503323508453529069060486854707355765669097739693770611879849033036837333664900916982778492918769726767344283121058633927668350220799479313596791865067357013838314911525078989082119610064681050671878064294189632741658912700420749759097816992766913204841130817737608945858600520306837987365707917878820374079958840620211352869771538313184507176072931501199036900511254394001660879085480938047707614751929157752674684606650118787844580270815335297881001866220952648732558790746631479020459507580194553166723136774463057994592178493097585340355539311153626403106113840591688337875891141158062470424093005398764535071347083573503642903477695956242646557310467071872093098545496949096373067918813119722017947556436462333294731934444368288332594694176223841917529677094991067970722335123269435388794304340558088387975529367325468913288105628955712906993691210597637944976051513795849057436868802164538230167064195579009031373154953120742810628536793769252124633648417312163515150749905247178266195499578593116891691429357855420982017992016487424617964179224677156956216372604999618500126934885088777515513884035262812115524820617051707670991637449736021595929149792359411515766488463736157915557937812217918888946255779887940422763984784467357152489403337755984706816834527862252282286618141614596567485197850732832099937011770640817354266950146129782657995825725304513790441283128028333189957887161070670715796308767703054600650045052072026121503916628467177560633197748826485312762367118728181977262161347126922296952062386970072290968863545321887128004413463043015671161462313107119255447916445014886720634427075608580420427731267007423940761812126781702798606260955774111080946235085367301086872177724676796810043868663398752513441094102571376894666776080310886216343560056631751512407558610472429305362686407746220924613376458364557915243526101701221201581417410854832652592741486667789416700250437266514510113225154252590590388862187548378093928612034740931758176604554886466289563832124964775169188222525927834657158027885753679427501839987820269654643405515552879333307467912626397092635498369062493711274212507045555733524004385535991520262059628437848185718705472641599735491435758789887707818926690674544852441430624275125344692143136547913368425709450324557956849342116081950266701641921562671948446898542465988726240328928032188819303590863563364506779223345974352350810572694524602274033950002785123984110901246092337109043770761819657987424517276538387840252501875803304244040275864059918912333244243036458709691943520913168676925624143816908926740505378586777987240863744092565418168821314594216449129388463206234295003028728084448125933654093864911315413020622618622049768969776853079759582969838118368487438925640984143474754467454606234739123092748039815986725884166173195319662920353409134706273333650540267275517525093802933635199652454026195467618625761746142865841280875800786637720280392880298228387550337750115696364101241400494797405432454689955211337015447248870810975665561076837804086587245791430118570324681071123857197993237293608597033159706662921879793227252781209052171744658980759296069995468658479943224354671115469482703060139897647899448909410458888257289898095700955032978219707385186695536224436557162811460606298823400796849228529113349870164591854355268700279478559591274905002796574206212927084577627417659794895697360061730498551853359341833942196925669995347976574087642903649435791760126688705375603241685981946318526108473763672337451373419509567702867060680334376729981695307370070142144918874271293688488976246331385229460465130681328366341878238068499412616526151006317795148418687559380149755528905022243272784171586704152224373316734784281634522180164387770117695382455373257537731749045510162566760226875340183992744318513669817601580652670207700149003393744965915274128759733324451540792993408931179144573669889778966158889889037693850111742449734045092077263339418823688375166313789604804370810968578471101407262287921708249431639277109256497913921482044080163162036945872605290374622651297019264383941736026019756870115582273370498935862354809731114295610168996033380837696228308650193368183556302742414790959032960122510626173936811661313042032561023772946731518480173157106004831975726369025579301771650918076537042005994017442546585335829528459300500504646210845121041150250680405772132110478278837051943956137930620476244701604926487464979095264602124342293462864912884055777317172349713151824480806671716837987287620955234766916405416957186323016912092949686425398803699830621857806634525209254904650657509110096497152916009011324515026204430480599753614560632335102498909076444851929590550434976332497911754336060118215810201556943513545063036925317317501775159365394346472764416453504566601800333670027960630685244054977072126734680561232080052554683045167177801521973644425006796335579971946301082595652572685200315512069492509495651810514212453051912681692384323579579794378710868139332224753662916592824273894004034679461921735525442639997862161630544214600406909060653573059629441922893318479696820418359152117213881749135068495115039739724315381466054036409752614944405261666249304512325938845465498909496744179066975522416862433762792814854367639051894792467742046799925277280142999189264981218288490456887142550009935481105213773932032030042836171690339426384149851577723545076635095481006151611341995534978579076840675048441178979913801851790327177478724952595030921084256043001109772837150475670893807099165233633777811667722210542724433498664168414945958719917921162840781153804349558267106926116466077412330953622784318562814813395571330938306246204593243796181643822619240711537985375232852448537775416409109551219131954676448245523783872401157267165015217636295137260780578397990555137098951995124872251211284642712641974037368969244538408883922315421789242945117019854082779075823340913272965735104558106922459181542753413295029653132064054368300566017957024113792556600188608501905818031975630021362581001340238197735616436659878740927860761839766951268866733735718916907418537054177142898170425613685047680640722237268196229086551650342167463644446553879609621778719689931953952096043048415498213273367757241114644303038796780650928538178457172009271404460394930220393574822827136398564818573038393739307904104793672867226533389764252873783963375830296706399053104112695241608754646266728160160301462062051126982334687938439322826397138336725764154207395417078167114022953347885028147972108199137963911330154936765535507908676361113340702455984662479437716067683238494910429464434324556681662488716353532467527566341041696876392888453796744460255748306787055662759828274932942600991501980792603711467908736753399189299164156534487870741452405496959948703395083415099350445009973657843417655521352662874180531592253284134194479005181693259467479623600530397390594122706772870680654921564062497279215646841382384104100615870009135166592551695349825121782302208155776514862368262723064615898440871999044962529781413472890750948790701337129823024069792075566568202026236354144816895094239631842695743487100316266076570027560862417545011124289058969883713773705087230866721278315248100352190123695470310026598017561891597731151126410772469155365945661553066218558824993219738835572375240657654014440849019982452695874825659151927393253367152785116760698261822738993075583207215124191745976911116914352556971003203307003726843751248300835466392288387512301430609065471804124215882655276124140868408797667959936198904853848381515425578816444083085714936055920114093345871299553051097047344224763663672823746646465277055264331841098544689947646826566539528888990820655689989536454415811531391121186955147020936123686044274474097513841142148102129181333913072276644457031929396044543230424106958524045707907456629170898223297247160623390932333563520755038504964938868257357600829188200786250383078773529890687670910278292244678954837036205779694179514048941767456505490930472023176243725809622742736062664892278841322570374886674891328182830521677121976880871204597121148890684577724634958838306091668248236650539803895891682701285922747630829739979268720969866827150699174424810865932011735707162825180422165178817487906732132486545047237168239781958723725161854441814878036610395009144298685814860389375387772281838433765430568593251550819927856951246780050658619603211942734651701797286347500327794549084444381081526327662812198948404078519990535691983693710448557411764889098519582727239990254482848809249918909963002133879290414538546636356287350696228793289928854051287819608919788124784885071556837256253588076324461215757382057653640731813333774824712663163854629063576366998804617714538237847332457432169899958573125709644298566513766133468775549869828917401658528675462136512178646168415056572142015076095929582820717577205931038884432858188730872747622960488519740559483710065813019718938521956404117765068424430485900136858315568025340703233846413679920276389158118989313044249080460801918939801983584271300019104276748260468441499320970996757613995611469749687322927762016190530827499524487695006752984231210990354926405844013649564483585052135762161337570471440469576827194788170520424852047785482486202407796291702113338049778938474673382419206803812828253587927759165836684620163696026295710788547694598398777921677188157804577159908970339696646495937986193465049314069004177778516371557547555695034532029855382246453189689854897411852917724997449179003061052238756016246712861935850171548393071398374031329359352276967958610701943845062441248711296230839469274145029350325699490938540477444870199643462768509715404130712926513586057358106310231276472181270339010256870797390013013893391090547544104110920570260530766014265779479473563319576293296957684526862877758396327326037106517874278585658056801646582229579929717075414649332306374559802512661652717861463915855814405682888496693852195296911331726598421785474397617636733264380761442257887753390638238042607315946981355201834695351827997078088694341481252805279473726593049446981101691553102778010521540944567532372714946267186798086039794022684358756171976939087953705008271989968740747917636240732416576110812404062136130827062826603904028797557475896574806011414693609517290967336177391871193634212634263524384358453157197463315886477713017809559396248006844186963088114424454034311910661361796566250569371421537365990373730425547905873140108636085333262136263627327102485773835681435606522143219622036926424150883015730537551063207553681078680999046814549991188200690334140595884455936318767406145246145032801461997345907316002144187419619141235272655857359002276945962538479229485027857605445256983598850854066338051259850755116041780820919366483566854675138891975312503608755349392477933498519049110019572813807364271327426434916510746949683523264939323021901841316917405167970407977262443931578028812225135796683959191195037057992880783086778347029052080458474440173087733069748372162497162564033634591073191631984918506148846521655009049214837046585768794558515626168516625026867216203277629237545584253629204255144146402956123973653325069602133771831094997618184005289416517591699713542261607635659312731718895408184813730945290019242142195211406000133502213444443469729273059233221989275077639727766430966497009999946682912989652218845227800913361314185574283799476389523873343235206010389287265469338640691858745101244840814324062839371471224800865693039217286177066903380855878004170583988294227218154665162542940354874368075473264549780570233099769965607398871058826475770068849204614377554449748637001642818317944397704709898745397085160932588236115625059676488884419269043817832599916279779135708951023818166014367982176179031443807395987974593950813791620974097456377872871755631372947704518170281830101843096627265162474803333068165134571590825511680339150196268642107114186544113273629022235730667570070234685252291974477675783664637266531440484239404816739622996932029919449114598894121336864854022978173423702490995735687651946724081457151741556011992586431005736389410184286374872988914741280055364727271280346947665894487988721457013006446233936912110573989619271424485719185364974418640712720926916875446695319042899055494574631094755410327754216474136045216497453721708288347363642598522080570093831580426095753255169916372424412557055915866176028227187634557224115502242484155409932721206164790817205696731006804553014593785338979862200762389938318039089466357212459959884804753967125659693411064666224354890094240314059907148092075638182678485252692984081400253530765475972394358608167551341691495444218089793542427122497702113045320688037618169053491788137740840852998383665550778852475805969892332136515120916227167246046926994642954046188407271910742331803905597654799822775575860139569893177064439410458581402877332251762843947238878734300971323587412511674372530470011042758653446118153207806950037476325193789809970715793867984725880343353921068438316291269978114605758425719231313375629299535473337453533806450695375758253420084895316185112014336330832695886232702943865869803227193679102760063096488302193778826478246887222502382948592094521760388106154068316545853040440753410367926148857906993639764279824986808925557323525802571430689083812421419010361988465798574140435126567944867809091084948515890361363764159642719190988120088085356554956664676188609840388471538539234450236842204059011937248783204603909839704492603489102720747636225847205847365097974963487764132760840101235119698006009236838800897685137152004393379225950791920239219065333682529702855460961419287114232898871167747091660923754047697435428907759004044478426926213376660507784220915174964036123904061112150960384277244011438485881752397834582411148370177395324616132969823078869764039010902158058979631450011650159337879416102049442039595809108816566540317569181978361266234483858675970210789715735566583459466309396369319286363288794303481993424124293758764985094240415922638875534008304543906708993744557329180532702403375436091537893164218832545903292483733979168165875816871520539971488418487011964872063305435790679596991599185366313658668506311043540432490428112677098869669749409937059089575388861381645125512633503849583514829062446796715603682722512417015666515944917498659002185059179790067629343825059671548054504142738975964261191504934193994973884848345871310815746737560071534910766274339962723076548773893043204430947141701066134882492423406131913722826865564156067648708199485805984616179480466352094865750152547810989313755100954005471008447335463413162694241112883240811012911494995547015197750252549237840802337586654433356551548541643740929422750052267659781355942355385246178172227186833670810422158731048087205644425902519449277843980737671539375001000580283477318797518547697533012478739173307257103007302334872102540352975480194212906065619739426743403027689891293259521800112268761286143075067014382822290049791237395003284262342902670292986514572078300422537848433995725078880021925520139063734087225181023847211044625546740645489358986883469080650955436172554258746065421309106850862494694869075385715512502862695809547330974302588010170410944350727631244915025828628551828059119696900228906113325936529959950271567993733970747869754006835135091611862729433387847492426986204311351043024991054248603783534277968916946776396287063803059271794003104672206936613116815990032040584516114763112441219280622732018162810964816520310025569208651105310154416802778707151328603800927337067309278089971347710522120636422419839184319500006225092541705910718144340973689678745874615762002228795332325061636122651516412082763102723587274072289554308839727366761694724581883448927649739222402892252802123735510863801466006653380985700932850675885526703294176963286719374117959314873723401646844692362484139044730085447872992218875867398364086209730227369908889394137200816816024966206065210430103808363585309010034528349605307422646514216875462119569395701475498159099076088737599732747206743234136318557214824767154216759682559501440183069884481912664587885109755415269760305684952657352427874301641418135925618249020494232712722297080181915779569396794446173351901152450757078357925282124436769726183306820442690897229420744980530500985687496433444639346953846467831294814899136798247427509233412580147659872630398356417598814200890168675028206090404296820381545885946365111722224707617247253639268014521368391399669255859964526566641632909688345448852121618187166125881285561836235396136151541403770949347960930234442876709280872443987566411504788001321790364790609698964458668699484975837009924581948831133118962035256742346402639688093092943656203041869578259243306631375057881980672888274720260891178691876938375615850878813895630962272974108044699167956005863685738662941377138357023443889930249588311065705045323672468310898863743370787898437361691829130287952333323576722973547252426926210822925516226329710831514696160574930203372890451752796142959643624500188205009839316477740303634615814374986690999611797764936755915061085612291042254846974214759052996370950293530465695507630737528595047446680853753281688199706146802784319235689812118337516346397439995655702042373334801368278780823583569432860998753456238829238793582943226176238785509085010724616004781632305075485169774533688128420293099750623468508729171157835126883321547796551208654051616532253450740818400754846570038651499545152463223108687225565324140460730503260586986560972643692936978746647173715445172688502194789210772758661502140440067191903603575235967423218050930581325951035899870428407057036854881695799551086969265701989654170002304455091934996211310213746447996321502846781178698559606224874374327705688302758119275095607904821058705917981915883150270709001076632500219576541286980231956855476204749329747034401899630147156917903397218992762548903359371776983742099203895190523279436702093180730930931252436156643877904121699982029839972795002728529263310809067760933997361708624018566905162046420955166613190361259634414340979862063068229466221746164675884304727269574176259173272706298087978547417074096959872852303830645783284070267746940099899356756119462778115650940469418203722530447207716821842215024194184286326754879528189576971734463121830813551911813566893823678459537563813578025341076637655020329621887837861998420600216512472811202082071261943704989396803804879638956746387165047697591312022029360707027698189872786660608140320878999158287471401223633262927890654482306380875728297293578164990971016886089199026329335137689615251962536700840368841854273122863946137292768112617119462874141334648885758975551356898591208458177910895625699107518866453425387935355659521344703058465350962648668644465735052268643150647621548090098903405342373640997865108526261680682147732432248474487614898996427329019830412492681382889331107596504665339387293501233329540855285156933577454496256629979670725568537631670381663622214403415607884692656866961889775567207745829668084741329353162276732562053630313481162227390937185841502194958292403435820734966109988561183404187090099166341680287012012467691879899435767359780529139150288245560111082907893798785832979778941551160304178349636527066191910397786474985884730816501353347137432809190137031743347779115437199241575056747067417222248928290721753750269460162498326131687812188196225656972438216640849208962087662624497254820455145888566965218924730547943588206858754699085891094741631209404042635358057565783806985412765882494639565301399961529773545743529051780562339401357356857380069882665440955025391933946338427376480822400627225694324302900670378612535203970166162157217168905975872959182980661210716865722173565398755643185698687302982127178478312758706254945290498208164124173052432984065197823808908655855878154982436789789346508188730011278629135841160066100303985144024864271763213293821303168373865940362369715830305307025072308178770311015306770880270312490127908568655516808530084190958904087211860260085460649674603093381250084426102669988160260903158477188551338195611938282567723850454889055972076068114029518891635770903762268202688327857847810968318077158284888743136836680401255250338081491592211005693894299759468162674817145523829407002075951238335478340740779763746938205644921303350490700284569331246082298473205873218576918423269586583791720625285904290940501856694442951770251652125941133709087035183946699365591971834194659433122284508779193537942482899671514487138088072892537003774337742221658418127655441613226605497962827021328132467784494357830452194954724639053211854111050202621018833291694553614812402818928445947264461659439610207464424449414467261436082269642563446709833106273908082641133837041965404980572864403591743365235709391507841631255665150038665267370967102499678970673076863463769674236597225455845081902856628334062598350811455308912149052290776913890516652745978063729748771939280516994351335531380277331669238782288253853134464447290951499525034973116780229770735330039313048983103140097012048484654276713443345849215300928726027763265935810244049066915444095572923304508375347610492928020153131034476761400657327126736154982278463863701471556677912082429043649272116136267371355753444030050115650894291908200802473170091088681942775901578716003951480645852707068653101152278096273418763496005301522531522892890610563991938448681960619780250898154452383470885546324445921090595460035391696561645963481333262382067952855298973111265757404462457423790281252885195678793686676732830438806211531395826709081606185317491251363503853656364528530769454826968797991766556396260491519902939256201724977676004464515772895766211695021585590485135925838422992651121650777743024200286476612237647708416100152156920754520004313123796522048358937130029014266376560230139216695541699428511378758820420391214156823160884512482019034553406385857693307432032454878105182681591982804939779025458234612331108591258790480515022305439029203538811704282206874170985556389030833554848742171162559650896270983211188874911762667973189026942677154835920681572181497126026982942098218120618308484032088831929997045093195520338197308750965031987495485967266276491806098915022692028438327222258304384748208437348591763566698016154188606269737262183390344213807816583844691635227526643525698760007119803298297774573072073993198669363809054023610459778938536810911672767726683002459591238287797268368430992355795422790447234760144015265300749343143594293827008917342746678949738629819373596398462956730721045626693312497864116058729837279483429843055325697409000042786058640273601533570839206199336419949682858217046570237970728872978797042723906671540542120080372380925299866998941983183156103450728478398729512589569719935860674580091800996338019935905346931123549365735349949810479936434603115249843646334491691140994821819698697539582478888906098323234780612672160408424327034010430005392499517808660823861635127253746844462567268898329969839598012508613369349139184424014364936322542571923835670948973809800735373510456694772240065786662063964950176648520670250517918325341978263088213270256561062217811874170230586773826993470156092217445718459162712916023896899960557510469382666006719008576281740309473532507216498974729948657923471225839227511570008923754560727439969436784517406634954074106820310790011938880200946672002459954326425988563446290781663358128136536813351726538448480257497464820120721111440928478702598975520483460042727813563501187095869796663507492119195888077480455483691024956104452209825048819668466770402147054487431889633344584919127428594860116089527582768324868171359591972101346520780896224378083658485723339422249695610868313829300767935227718334722886118092129395999589247192098236571366478370369395802241414856412845493915170569560442838426814410971017948297604836765440590812657046601396749440876175063555419875389089872212598658254661230765511350378841433821151435141029285101965634348192960043396385611728650907262713535813217091844558784216272787664920801632412233421887429150185555168897599854580676076630920636319729692244668996784439029224108107900500766758120884705375834809816929577491369489634849636452680259004271049255935925340220409231711657020145979427006971736038519782788310850200430675139030442110033509505620313523299503274348184683228649995952442139775929870234639602817555217920368904305724976845012250630113637104282388122734412199354662354947980516456827258853934271627304706959353974966388196562275152601723522546475299986123998344025173104608262653688811686714992127937919768570418384580503030665860113953164588205130684068009032835398226613791843480682641605123928861404084272190934877240348857566343467429338447101929502041173306903875699388782419257176764080955450440481781235285491241440922083651008732886823361093421237873408580449218773147605029246838244226847425310018923184526433376050308545367111449555424677035938368341421823233884488803460402011097635243892893510115362226577975635115134285100492901409149946571283450576101180632882888032902550824735286151826424074167728727830348515139209750124226443937243148385773959390060710102956979666156789732632071149916037871938651032172941555268778671403783597887179910686749294379927438101311496060979250300331330526705802904349344408021124887300264250182474325949917625649949372968821487175672943502069029826588862330501557238814798691122163317082205642288721133831609774304340870053190114218862618750189017929827179172121833322147243371365570068329194642741416574288893558568583112430063325894844921026984162583082853949539391644115113390938543470605511252538537333447630030529703448701664701932082523580432427723310420663427878819873763289862824230578976907274555569845960222587386361851216861092620497789550587220078878311422944798780280141613908905567801142769058172913335765191211468953144015144590038302618264558735537414923767177466752069499595694933870651030070485289758674820279540076205572280248351262760219575846408087200746903038266346079050660814667985703517040652400567580906259450902236484751725169675186223658640713993390434979996231524206207976229036519308488783076445567867430173269045589713143246354906654254383879309626662569149016104101586050660476981782434663470657539341604010690483398198344497803002641186290196337627606720593457597236246557601295533369203144185355604877644212398865060500923494610602998808890277678084758813676050428306149828730162478411961113891110985460880516923951637987257110473242877005216590673895103907195935994114876402839307390472619291447701923401417738442124189265452002010608075169081771293200115180701985908617217941382777144517804822930484665910491192523584784486506205036176197569889484577533260682967688658454371154031880851864982419734317818334460222471577472086748723980255602325181219367843199598667106927012412667397263504457876179693204902585869077369169404253003624742949272711093749067691019473873019639311616988173086344985234544992443263093101578345858840883089190181230875799365933381353621445600404857041651633205590080518861859936255777382935186935115701605286701939621385290180453021315494070858124649452099274588420650179814183087488041348701788135607601810759434422046718418303345543659988082077879273613778633006013036222242017217558802356038464325570252453306707015528416745861882795553061257295775771076678442495594230318255783367006895068339028276553575013900574591441453644076374826225158651256877014375828325746118338357489329978994837234846390542684080017368824843527813102426912777367720383052026502613482614504550010773497602547405187495141604745944276346518183109528170758097578774135860691353808291533930006394956224878251338451187276334063529225734118143428525517955554227818081826535356466961232316940433535733712943322836953364798329639201449385414576694923900063326920236578642321375772559664993778637917716219667963718205083428247549278267289315514944069749027981990003047819061922227107413215614353223605170618750701184542996430704769904656752190650536686894738253956056322505904087016368497374335238820649586250023422403076600815123649435214220302328275579225055903153805105248103061232645020280704209146537977869372019340289462963178785910599516209513464923771181264611899667895997874519644976117363302897314888155914793010954145956039647785646970433866429573157249665447526554399863726037978704665521570263749501304308405053553711532285564592129997086693065271259869108396589608215358540932643459307018703778798202605962356729300044391666037041104135017795240357169943211878971238129879807352670491458997680640147900862383994993129176829024390403186693404726699938518810876823057261387541413107953901928601062969464694154566125944374259242826518906923012718172788148801564162668692658580867999797124404094888043029735172483827454094587268745388928033102554842218244730362472864195171112480441001946771483355881852424243335508158152480973045112280120041380774245936197128159195775133211109011798634781280620816210915980457016780078020499617021551425798543884123571345907182162923636748869141979245862635653321333308498118552069428164113770812978338329127442745130677770418577155474723013644570733788277976112643754753875598730215926003728329599004186282614152069266615955588745967153279121292189287889889788618081580843356666983511505279231211158885897322057125331564036504005380978603231379586798383913634374209010656043824659319885523720430649813920760447065674387901484589517210214262909393272472991200165781400995613361425293148551540512596024913456687527236829615252667625348466779022401824854322056536068049602054629493393767805123051585687724828011159788265311104761823031676750983684352725605002133372644266707695593475225744480460475667104883973484104847437962341964567346731959239146031299782008938682362153312659933758825277771329595284369131547821040706865202421951984925290912518424142132832511442386075920937266319609635189760362547710329859764129475489162568579201641196569396646378385648374634246972173797095850006714189420893698470651652741041626373446519136599391239968158241159734964090373928957060499623784983923459230203944990443635847091940383074622933088444446280801487928296369986152134589140827410218595717490904279783782098327367498546520435269435109376896105497042793697634968579791329993690659766099321727048327271370416811535862701938458056816122599779045338853552401787489165190298266060608493058728511932121087169086526465327366345810762410670477830569022981321796627603016047767701417747481130278178910766793057283299586652153413191663779489053454943667343200320196044116790271302716640831595430946149081735072110604915970364685267349976764726681337879755542642739804130665722753118950328317582147609348719004551848170987978673294514001723913250185760905321755419296133914754781554713625910262067864171249610249794326877736039629786617833256991958117431148345710568099768664374671945537510874155100399038112798664067983445343276510762647481731690564533290497244590698660437803932762766096025805319112114504265127996888063157587937834909710384599452160276439706730490337413700541425959723753027527961725822116964101305548710337809834271126703316304034212715822196127192366802397117716060980602648906243022114781546959920893867428136102934782266233485727601264227899576874223739570474146187305526933712961719317570041349742598068779159971809039937699188223884792413384118269782927535071341112137324125227213149966982647435482024679235029028748692208757836532746610723367294193782375454788861496407925200127960044219519061552366540534992418786740014012703197559473770491795744748320703648269420504627898353899376886934416380109905343652121842785924951321573436092043712736345714135749243206146006148553502378717757779465316967848160472707839928859359647023594280758770975553519564088772096205422879855164310181031650220518429022994850129151619734709381220833460760905211738535655258494561947876112925451272066381889813603020105236018449980737298719802531302097015137583974422797423346429919914233066698711696744729211053884463492300249738413623706142506988354622026366940252196024784515535711690891660183476544541283322573067880342095545165515277366308298152462199124338309564457482599710016743455246602697680441171583439721146110502496056760540440582521131320491581372113678682247979388350757246559632973790816495787877999667889015727242148525742849024097020731140130355192859729578948631408329942956188759554824366592376939631271210090531611166342595285858366163144365979206534294779899324703384229443302777565753990555755705724139633357751077276489624591992329447736316430466104310181294159882962165532862849485797977528184506238438430607167997676169980951611387873821181972751356326724830858029527250946115034936380562549360952094676669981017415421858399588104756448540710488450095283578338636119378097198582912935341202824210631433199336310761745639850367046697461737122804693793086040582741874760558854087014019453870289195726181874798465969421039503283907257930580903089011488157168152064418964587088340055485822602435874598781573778608580560788136694663377304094118497247543315247728624145432283982331076913722192715077672730747013801249082076908522882374365802222384861240674341303512763471173738814459640056227728992308290802628812075491419115083563319210871504236855912734325330842513397376593809456564661406880836741103420164072179669682883579573542806824625258755965217557684181803793953079643642889383711227281072944223110205920454440458984237201658993722427890059037653180351701268589623488661489507109879894593425855570283149432596978513344975513559737185372626302512623053788617158495029791856400571534039859890208192467823619762246964831583479105282391853168445209338256359800507838438021365916368753181954938082574892937328188992521978238198091273658572842381056441539235223395091555074040037838956064385536757362786159991440551951492159181396728870679517370782427023761376031089030741740000161016867805747658965891565738147101324127277721368027334966188424924915240054326506901991645415965417179922462696380404744716200597937498280236368959662283955916621301558003543066661686955487476168957285549919776460743496469851060855319285768720527267873560242877846777351432973288675905088770150736024736867748255996053384746531726913079863487746057472471022595938619191097131874660979520930492060727215175460983184114638621777042607160197609799812815390366157219715582437814414540506357459277578768504065147269651238770757742327617487925523091036608565788514009920527669170310838662705142000979258954072277217226181005428496975644786336228080781823088058885524745638805324781063135761350885631774125843138128267392570398860223285271840365449409587154037945753285629572771031328726436412451262127680796508444783621939534296808012412810601219878341843274954587476459507304454091522677277900060797372776624444634181671431054482406639351368998749670391531462466268306965186466521484612342038122739544224961716610989396645318127895995549919514751166933614708031927363912860647777376863869207401545651444982951462469125373256495044240692949993477334735128018875364539541853879715992417630534849864986246171647894873812090499976705642248390900440119989325117759509827901711012750983409688867983814193688894594429395750518551766195028464358721270030917596965031802972817884161843284532689287945192023031953736964294116074272811706527670993633456400410467433850588092281779181795872264132205139773608232100503420067824186966670719274458953131793929815645695054986779236466523517610633124835323297545162809333903198907068260928393581229727677608641182322980325653896594916029560858921373347825310694724050857001947057060414582641996102123404422547746869279714204218292004989186491546416502097864669541105550690520707404039113222912854032076010601079350962063715979027333065524821970611336916867507906850079172879379096535442844679691313064332619491210616155825347274693691543698131205200837047586871612883954269905817441583427381764804782189685311307537930513211808719050279329326960309923637035479182403072488457068649860755450240511049801448101916249696216012393167080748754321709287137334798419624953062979502554669640226920909266460705178803757173598853569630213586296090201347208446857718980007668670462346322148758269176731156337188713384267265956912977230921935721651525770398939498359273167382023389640654665903408202367861774753474718666714160175903612765673840916709294811192372001642775331981929434779947302096878948603270417132214469645071274995268871842288965446234456601248743351194399380446879146943530793832668870207518869731490847860183869725069048304618286674832331944665670086069257531018464717162267298811424695691152471765337265780560641617282452471546268351909096014307973757566373471920921220701373566861522737265102876363512590564503253815495350249943324803146174924884175312331248605891012726554960809862568520475025185889602317678318580045330419240816831676338571114352668433341694512054110022641315233127905637988413444721108907874584704944267347610229214952876891438560641830137240168002175448165915663916554112133642283090106477536208280267754307783358210600863328411554270642110985696972867097326373436777723554048307477849199614416574597003984082461244872228158879160429715089618382233922323912883725168452932491383958486041414281611042049406070277184062265225945798927702345349382082437063785786723287840827992884067795636604048035543625108882075101896184342971071579542075935525017843355984076348790466350719719422928560743417349463014167364959867861426988588862093550583898968616608631235686995030406181102334918175303011835517758955429718806190563844967443338363697208761098917221306181216984306049633762807716489032480805717252731290913354573982417495594767340280804850215231665004744443968037362991423494811927983089344634783958577875619578465653952073626991327664403846817346215319714235034557649754827203808769764452213375952090295823378198203985943722279113284144696972894690302920893247686912842729673417333238735288533478559065769885798235721344654652158684708305785577173958917109657962502911477669294301973842026283447009998736906013798354165020429423591371685366490731784691734066238361556903078571586037231121328480224602393826110118998008046541358603436351869520942660462176828233343573442208256489809407878374778881095627803488595613524334025676724735305473928411143616352182992710738683883239685919774753173299750791595778226059121747514356629515414317891920510311443356684173105063781217525326963087990005446051992927291525317764483836524295450458685903256909604699722256006212577393696091381886940031642677931137606154627629724497702233041763986330748487774107159023585216365146769482657440080707199312564138868326610276599381222605986941201333013816364006116846091802123275161804493912577293030694815633276817809504525673494475720914982554510441953197749292251003558364104992440766623116772841159092364575894581720727602008074093709485440424503770247346100319273497602520143899296237044881968059528403757680396394690368413298652957924222418580152334098176064850164748527770762920661900714577028653681041375674626135472698707581845543929796340620257266088779687460777880045048623985352796912468641503430258974626888948992467068272246211099013886851041327387012807314683096316928493885837539281553103387849490694792926455028857711135283815852843058900620227308670854540374548514776185225650927846389878268862057983318918825274797082812888821535613219309238198332030781618854298409547888679641174859839711332473405197268875538935946759982139752633876748176913125401871276906962588139903910932254459486969778854982818585757982605302352261494172324418963195971287302815072214712944730908039160920402328888347109729338248294409157650601443479860444828105832407725113609633838206599446824664525653722659414271858883955855938511373351369212847575388953082674010993658293374391475675308479499256398588711340652600233921264583133778652288015867742143399385356531466534871483612365165591916677002878477656582059020513599280986161439169726787923083300274134275213800931686164379385616523550956315730393393292286961993803431146757073578231874685450731203001453875413429647587202206985822561815388830890318730706734685508017492509321817767483964523995041271723553207648542730014451616020253513194450734059045682945827007457946123929478258622336753892986658709984814720836294741420033970780543453458392086344837120270932604619947664340371955167014092105630707141705474499157622443379937008405781251658222840290277838327930716048791856038826963989312342656919545260667162233385300423605244873475975240849709681609220218334589373505905457015773836899137138447173845026487163763460294901459976057507395194813036287854117351135320294732137847847772631879939299081534991546638950754344010714469094236050411125587790385873116820493181816645143865908205546662416475438192733482370361025333563392519688905741227471098791627191321207766389965984060513754704852239500527307884350214545507955508311737126575942207891113664752023660315407956903134337724062942006016065536661726144583300845009171474286799030048835932739642824614116478726358903385649703735862649806461127756502460565549556374604909940624845893636367948222335975085892842133637602271275419531495894173244308343663743547622034204393562884641447597507602023144025214886211880107407080874132657741934033844670093475200528333387567031503632111300132557574818009220122183835471607862672052442599017329863055095772083338049069167296561943218562699884830452846220590992358673398088690274525055292695958939887403201493216172928892800799859442061309392224684715765798672950746723977724255933600911300711335884446184151965123888060334275910286901935622667592845913132140186597147080961231331777849600210490254436447056670405070402253492660537982448411100674976862156763985769341135276189247319352927586298781269359494904209048922358332975263222359350479754423352194710305718660322334197865918617095099607253447386338489689356028161559254702201523671172244589548211674976753430071508671073485415369899545488047395536710373876414717926653093911165985360360913270851142416247553198438200815351477178681413657542309891836160559942193308264264664956636144401338572477246200292551762980888805896021265244952422036003901732833104108547552314704527788050638024341294067611548420275545031514034158265192030756381239257186463402257835736015981734145002048930444897639498170614253278742589144743004762871472923999773449080943148021546270327342064913597003437893046729444323732203896277401824674731873153147319034539744750015306767670046922743555913819895524922897882044556837565829073522121635143854237567014778064429734231339111328905467141220203161099833217668954006090354476087159915848081154192044158878313201864287120210678534450910888763864344999365669006526969407170861635803024142122446552625123413630017611183177892419327463067610668307907139524544783235398672923712927627335628902173550563206340602201970494757843236551275716415557573710498122957644476990468603865205590263247844201651909386464364429709795498947898927056657867822247935674356125824031216634225247008827749377008194709411701613990918804813662133577340832009385362076013600113231983894957441945366541054602437579816719287624088966327332851399003610265989056584873815882479440854518863531452745198478208140288903403923813980015941190145828821360333120678987441312193743486851669425755056136697296112901126757746248924632154017759123247108555930349780374225060909569978265137405201149072629152295272391138014414012786707632939118498378743946302262153988166983019637221460053416519504041367232747967115444342351252983730254585936428409787300419450165138866799013831626034584490256400870774748640403693437745489700633968095159010460845012541440405083709794714595295383445779879017381273316003948131027171020770547881945468068232926706685865927242928469560070101378853587709951976959571560426118853263050051576021128223613450069526417961328941732087592369608001297138944309852810378927338107242327144763709971788782270370190373739304580154955313675479764010337922445191900495811792778070594583001322849785863708004018558081263484765694298952034062712600769318410743939230003436345724895073004030282291861669881246844639339036887059197203729231538640356016790269556324911915856256975200572026181248551008215976415319558394633381838259026841630815933488963492032590365926143480181353844419343595728889512771003632216677505789446859104388729168087822602825273024473166600302596547793320984761911674719710231408477126295960019301728303849470592310300247767472355580339020129465132823328525918586759956487868945425290530835923563284232419510792892543067114313438921245166898048412635135651237418446041450959209565135239037118991730851052413404184947426883212189774459332667481796558883262588120360351627699460874547280492774434696875918377201503540713685676331949454537428343811498758463963459329652681024011699244105171255721199568667112209882104343226821156593694183947959167232798400739875049986908654930541139778023799450946534409178639511544470475668502618894644976502352510582082785457705496519168978313161159784896817836317772214319446904617579123021211574460591109474972489984684052866645037878305080088843540172990672696455227968693926116169159360023299606537682453759621081167207837813839576061327676135957645907796220696269542140386483546230254314234926016188354505740625652601917920612315033805141977520535933850486450579705975205595089296501114122254373940576463143398175388584382871986670274269577307505621286749085395487691586851061711231137497944954792117439679446503774691771223060519837349397641791189165243092802055926899274567888506896076447458702255256699056499694728747467788131358156630972520122129878991500391498039964073411060462916556225185005214011607299762696335383737550231670403175667603403224691532498229380591496402462131065315376713547632458701830448514409435911733355913216634033861809986049616430588252287381440604007002274564039166621627582578970141466015478121779326597017074111343678423934414713862752678196354461350323368814458482287039125799805771344591945335076727107287282899230721733744670206022610187908422115374750320177077605824453662158540896829234978170097563423413521439605401132131394519800858379540483085653267625803649718305939741241581939074194846025760515248123731304353350826873103259806856317704330047963813099465156922100263240554107981184449099510050435010846206636502751116379147119837750568115674069634144527389862356152110947844653904037893979824886424865637656565429727916816932129097354142048945418369591734135637986804970425920203918215964833681051654187340675890114379756572889576893539807271182521166989684382500588480366668093045305972067667872415875312270900007036281007525992634447473049996279749372411962922352431489694338665920182790388306943259704162731283949598383205866184527285574108807757210541306178247525208311674205667102223061581402449829676410309803199977043975166243894343847729145757346546179311565744794968701463210860120708308373090352883600598610133522104510988198908082832607865471221162119964893886666240782545648859272218921118696586758959077803629919249275250748082467454400087663664182310355367469984799025808733633724399155820440199089296835878065570713273785536927687895140649250092748016979851098295822885275671997533136759062897827986527242442617753898778404743237273235435196380703269220580313872014723706277501040494155846574440880668108164956939192696448669284285757036579782308987475907637894726205055820103291231232197106490221111097086619421495014045060292862505504407181688188019107142778397562615918167964867624708935636069293274215238782884128787007188229680301167774538700514492254311832185257516052500758851186125134711655630767043172280682756042110406107502294877687953586438932673088156197080716231148965930390119349830338491522315687831021904156641136558016633459111868827729021215671584687732960676747934806292648180506969478273907382093220720853292755554491078394397019044338920817347685056014597141486550309349097222390467319511913462984086299292234079448001244491383191484670133702625812012329415308455956610622090311297042244509610065142753177916880379385088516855676639154137404840306404272301889440320546514076843029777414659671843465763839217290929857227284392227145430999414716181119825311815233474317690231764479707883393005656138984672111725577041806079225778203217544387392777665014073113508838949589589563585946776499305202672860859113666145684007696941374799491148117598977228757084395348898552132416000123753642526651842560729228116163342992068097588212094428726609218784037650386150545290479394323129451085130753646790063220903609224462640519582822181377935291171827697013722193909601738762191001158388278367237526590338777282005317765449617017303949522162196045129325309610079024690525193268895275587837903844099482484562638018703526455132439038408781719210607244668831467201326528061578663827286619724895277690940707009979584035081323782656742146687308139235788088871664270141372670782149646979446092828597600029427403129874366114294498744437191574927466206632069019759618407208487971892894893244983292612626657223649136189578334238423499101499828896785234380995404389121118483846612575036621704088410591620604788803040881347951165133347996458302587823319877732394612665574191491181247266191294379473848163029474813025511137646858129967278341217923325822586761176695424361106081393504988631683019035339813994673405529334789539945638457892733806482715118447915742451496104981755274299917930232741050068790577025122862843903596914531943642330179280005497378777887290982517367623904743716321706343191731597116137448914829469980273255984975259384251600254233019661086486827221100731383829698370972246994309324690835698618842341618806599488104734301821655013324420576329156438729814752604434389034641889350736595081463765812204180420893153944061822431013732047605181813811745373994889504573165473749339186911202342565865631383477393510275267522528939669614973178058099853710181101477588028211467581376615901491840645100371587817741359244755189858416400699169041415934523100827639120310433960861142250071367503755136051987097448331206349165728316388682229526047205141979593268121368596477795960075818270800402309490324411453532515827017560703373389927681233415523255259914842214303105776808095113222676333972513094641885312724115676763369616315067470987433609682329901404603959966254430333380625784301837123493401056729468104591496121735872797105723786334086953812867445821673474834448687005026215203817990844014751692658129018666010237927170536728671547962419551939555502426945017153527754849716176120266198297782768237551605460003123807313618866310411419790290168515951737231597544671134170620885374213624877709544448457714523108509255391993805749238711621590960567356696084668985653255504877797718307029668381637965251954440091523417860132133213176310413626534432277986987925635895649065545394944476555888526974864185908666496960366168879870280100779729274842749704482331517832644032196381181014278520915099142672961618719515198839771781627052040080141761100176222931684404173474437501207345582345657186570409672511044004137814731869238405149834737497385067194349391875855483528335886643219060913632174281439470787310214270689464661767451644724283412639151724010257442361060878395869774812074568122116476124239200788256042827958702355864468936470376001240737673201232406617935093275557949274008598742867630864954841752702474916644344352257298509149793543696790164919083246445612664479292608789445875657966486546174099709721072240347224867632923906113976702007077803027710033106793881225366728809978239842099791523401815506282536902949339389726294620239814015757609505426065349646642216465043441269652210822410122342581411819009949450383212094501015221623934285532792764506892357964901560091307381431414845714090426170177516796668416937931591177601926132359636246727611269201333762340983617775959529075057184343440033176698590359082024267164697502539205121660431792575431247445292553187999232227172266078450781864952009211998544586513326570833152530995654829579686867554164552432034841735024032058861012266175856707126195005604851838536895504352248937751371343464186836567762751072247862507534008491380086030978902526994888115282398428078277236921028871383431504071355888938874501171364434410617036413511334248860513435421684864145209406343743823891815558353717501318481176810733928810249074021917315963223720725227486488705447486463375089379593691686822662666152475343614454454837572928554258873940755648395756016023789231525084208166463380916748310480992241145315976591392866153284376040839657252889626512262844997713084265269260464586148591934791018746531391718598525805283861833948573888323910386770486633125226415193737136353114258304570959887970369183591961806516409058668694436519723281008285156395219397375507519257993074073994100828524179495775142501002703880391304477717751537896807588373248846822613827984479725578756577308482717455108636408618418290273228888295484168904479870498934923827928804577493700352301962848158124303096834150202762978133769483953617468987283519601402464447372637884163395822060661818386511260720034348928472211900051045024144933995240716694911754045830945931821799910949715883201373868332623271204932513445676434611127789697389941933309920910756864643845032834476678170927789454791053140968795088275780810839530780767957523369866959127482967561775881142090989655095835584567344326673227093582177594132175687248723442030449058387530107001440636208645549396311592126540261678792201338181428958896763272147545200606601001717002210219705430180663685290444154443431060804749617956761350565494079935917348720856427726348690561573355598734433243568643876079708377452248886596062011123968676468946699445737668342265548625387097044978339229058253399358789653802309300883924098533731338040164185215397664938832186058423181405937027918964854257294554561067163844339953433300633451846017509052817586688349849531134144957813743941275099375841985989543533056017736181931703237594848985322513750076439447545499102689022033503954387465041150714752904157625493581050507981321442436081703849683621956966857980465394990219192623476535444039859183010347482345302083020325696908972502329560601152055236803176491222888716910925307626774761298733808896297400074136105207530987608578692932874496049154698890217051210289781393673595989252398024959537295615504615892705832911636803134699910234488554778515809057959673842837934885700897520549162242906015168526843686171907741698835090360238600048363989123990408944135633355322871257621053361664321887959513393972520366778067828273058414447395637785921447123066266592695244283421599873983889217593435434821083956261483677097796095077320749633981930990048199428412364671879845065105502832642109718364966006365730958437545408177385064819324481752213965961604965974006230868420167592932981836665187668931780955590617537583174143663712926743295636654643817781252723316116015260752671820994635061778394716073544472965129891249361254743031431500923829145261989834594405238288174943099302799257855323906365084320065157118690122996606374432140875999732764365944826396840449576860213724856222819996664508917218432088437143550492475611760990557598185356245316487319613262001051990106227076314830939453544279069051437800802152072315846647394340976872025291502976906131874977000484141032274918616324212672853288729787110496650023451168769357481140783159890711962799237503598046053815440639797142938433009550370710646883702476042351247938104743474805363875221560775010333200676215437986715391568574830852972191532269618409692631468181853305207601203290233611100888506493203933267382447354866956784621566643488104781241833260289154725323920652319470411974307286663658268578413697745350178028260626270125005920839443806366273445796596087965004259507506833408293503533394210208467924468437252630663456130865829435024400649280349517179255412578214945125358100421494686697927184689838759342561344534136973877228469732665961152996239653677250025891791891787908165113596738643789009614636681831533942600879207193288977969879600311048104274710222280134301443388293309620480767748079118701699099610611205963053816270201381223153194458524162231636106240604545536986791445992723452775796778400402079335492053022353240742021159348763595006027955502538145198402395586897936481703379935385892981609396227462449451221952460560876684324440921339603863780286549341413996688150395810389075127253499555916651516582418303868758660711157092215477604356355514610795049237863053262405852539672513424823327489506364201042412253698965072166382458474805474692756822951479431335393169784813005231612020362784114801300747618766444111696217181703773846771966052329928455669404284150398858039074958211105711614114394786730462749728550039283176672453209108226426633914553419210757549597515538794742588605390389554400118932154932795060101794909335467677958138640021831828907489338761321341972502575210017217706862478707997443222083320523180669329998852088144026824706850293341931830712620004457371706794132075929357550618319243060077171130642903636471360228184628803407906665003386185673048926859113721287481520287799454609489351265294320976145439911969929979610254286605140382996771228808069528695068400710547061595631039164046127065649509169307791368594525847928799303761954970291438790945339392328471118579770770960428099297741778921504696438833037581667551990459314574972481519043930532284679126304499839260530299552098895632739058113831130917482385420567504613025292673984308724240160711109309276596838313253984107605222548577692385621317780944632642706885938782308472879843228804769037829953453740532666889397162333359885390863384912298349691427984281507596539721240465744607043095090806516647324259647763294757673940622475280587346246635385196870766765512033334409560300806516231005636843048256447311144157789849284449481268309145394476963458691363543147905328637325224328671454469225514199953468010959213755943531687590977855127230850677484780290599701050749802548771399197096613603979213091388527345444243161178723715207955543492345044438250111919240357919012799336481184137640664663383535052493673145878273136111479287133701729684002168768194747598812848278247696853475420013148928892029441392054758397339327994062313707264528364492758915720538534200442249082957045881965900306806377420394647444638118868290311206527871606114176277321722324368408530070557304161428287801691874655226337486353257596108196051681401714421609026992573745546602063031105411932492442750087122126345373883899342791689761954443714832308650569546456088545243707504466672286393119296390492096805261132571208931417490720847602570954193429210139038974640181643963310858892867346623337617799427591833984336479754460032308832454804590351184169893028221763586956019686111555274340732692325457289728645188469288919687030467521962597893813321561432817036023037344598235217311882947842695473143783994793957563713088081044311177429979374846705495501634689432386618641654429397548442412671665059048744934406644805773589358633265449362463215327327672161647129153668763521274030772229317847270523473585339469398594887855963878741193633457774699575191600263614266993213939263083831033210639232047905400826233557685566773964607701761682757219754119786585623373376428686439404506242597296799835115463606302318079460942026177789410784120743980638467081794309373539723562226636582437869283313770780093172436986511627708256758213798837881858829575593561743769849324757173291588723483321333786131183528583974734533512671755057585415290138714349239438979679985287552776976068642721086885552059420753495939156951962576311375171185946439225083805217592567868290076936773186460726882546804308824429239172840328266450017160644110776767478411653985088047127299906134652936439387117784810342603650471014581123390918436668150005357189092275584425992896001443807618426227491238452980685291769176427493494623806070528556947762732287939118977476113482097848578258910453118400158978391396872899012905886877596103637518609656198992353259698402262584100584860763905672171064594776713402947593600080902095050553081890623570758906527110575601919685839940938878516450934128386751216330374856873169949175104303242928486073627024599467496643715772192421722448851267722769180783097692183039193481750483680235833973884083322271073001212741921169861523139002753426652404888813513405740365979941810481641902101595592197879493726594709544329587567339885789008700482315042795164397707811489672469811662178149340525076734383657247002568644332679230830207436365926539353214775128200418394936675780729682130679874926636600242406149963415282931482440455938795101016212168527314217566316693120796132576666247572983813311351505649955162060853441529288150319923297459177167322688005174382735436355906058639016092989658047151546699718922168226145482329856531405999213911015723206619854738179398799715248996976574474754299889799135064914784961828540516441297058003909839555253407499701329065065717401976476499557954066467630725509916313458654810078478200335343711782276788407980701802376357931164482905681008560097319900772449001633005950986672605392579781213237949946113304095776802425531461325195988322050996868641199584021980514376461066144935321802562873243301656588106599884915371209753357071869894201218001227003885263759858739630002202155899198172635361115969923581150708182324624992608633862389287625188539750905990083931079206178552946091906064267458898069952240323906732968449589117567644031249731503452794002749921878983924974201098033044411318237514587087836837101308888289514572578976132935723686652365321517362545736811020639205177877523598814735458309792303523656678339651542796448073598877921175428069826987626921924751257381718111426129442781865666800456768599807151283410403898780134395799942951929279208839719299262674291745846282749257362123225163278464260250363571345703031362475855590858162427203838309303022020346874214030091994391588341662976853823169529052710755898613327309792101661038074537935193584878297254670703028971712512703336080877826099358867821641229888732190539659614413298209949401265054444450121575132707987119176785179097735108061171178831701489374032682967050148761859219672196817076244649620349100328832585005319420786514489455508915974222426911136914391618790433617436013071950538876716394846178646031972272765846597343164928316931974212761515183934944778268572842452896731609190039516966916405894814773172019687863858361071594168203521118278242807013070354534632780235076680833271431439648195774981777292388136217864981386229474575960694957086910819228420038820741443237374339147914050595126128416128787899617035487954546004171107345599997734587865211210545273676314032191891415162883496767781665073928917136050504901186410226953986152096674563352446147470644957082426244744147487229782035725999086196711404347094804584550767734169338169165502453912963037844089140211157706258803329925260986957193028431450328364110566259156789993880920267420303273933449455625543682743917136767782868921145317482192950562581661999065020969990072188073618073159676143484152410693104390814571631995667892973388953557398702619121581641209553223331537704283044720643281081766876169070175398687369111545454722087506877552964237219986225190383350172957913734893410592548113929174790025387953052718966230972408539390667237467513806029864551585921547907040431712759622424890757775645429371104256922630728364742329971208955125086877865140897021722554647522869831300258266940400008535721471645257775718043900121677824745752745622753617957097757646498352149366346410696234001581958295733787833826799069658455553309757825488355191679421252766126546431383578446707644136106861403591762015821887807359441480282379936773180132875914345394129422701123658233527339824430482273594361023358302345410589284209647862615411671188555550887239792626903699299297329761733805917128638156015079337041109076478179007015549450348284614583385964753440328156026007668783737145863192707209622796619539140550611776493240941255175275316034291669511126089326201207893704820297777402308890791639605155656710244167335176742714622131916611349250579207115682105915947819523045917450889702944229714168947286573067819767921008714302447856462420106805269493858380919265229146097697536497693425356641566352553331196003408111163094559967933443219357112935223463871805236524069811002285442660914330260932838924646152096201228083191043152634962739804685106589900195615529225690831640160852370701282965053816576184993842085655503427792779080190681579384577239745665750325915299359047374832266063205005676402109758953634119467231062071376911369520785024204616909276741886384800386213691428805734997922348169695471022567310460486254953586672947138168532434597460450596300337926482577277083042122647988840561773558592545902306960436342360562426681039612861369703089618016646896844786010143061933372585811824477705591196585531687832398214016301581167501792400278203889680297708814746637645993235156350730720314660988122684717070143907703243471379589177900154111606811633875784475958577028127110809639692442369065181708853576157971789109501634371110693250905316087153281951963053669083039691512414502113754027011552389524069698714103638940931520087796426721714481370029262947565184336172914280637350480566841672872437980660299748524355426093513652240280821349474438282083395035470061993287612571532421059771736110721792616754121073931681689563525796818569815786197984391291218303175233017462148392331677388436643826109110260440004053824882162894080224400113852768845863319457058331350489855081795848959344330401081978524780854306236506615543699132109419733654748200579213400739797258380084956958622093826772187149064271702243890227188946790698329598258772855990178168884320583430385901032759144054283360245707679600312171887352083199904388173136510352954893423841618864250339008146223798134646339124515080777464540570778406880409458573661032440391987266339530869938685134008888482313133742238703172422242389445386257899566124998348396922113660453911497089328404589787361394612027223005939623995199683176077335976856000511251167698405311629716482463565830669876840933601116729798009776992385377418648449019616873948242138991492693585085748777410556487368231764955585820548253710052343572735835185048049342611976562602916634932437786855320077485694315830050305649049721402770597852929526511904205761502324240822126992991015764467717757426819021774929002531280091488517344153967843991436249221724008037273900149319401197223477687020066069634087218192988832994257550639056555312545206599810096959762873127738335141690327108490427116216453547227346334269478037082416907871552441968224610681123835435853789780629335998980209682905710685611145593524192159539095906020573606244990911807498301773062315285503905060889104978929963613201686142555583045353605018994193205341702213885069948610454466352967271081328253196338896033624637719082058235915229929126679865286148023393838300106379726745974900086955460428872120044210368195188168515030004506755573110928185444507593705950873969337601412235257191054665340997225696596268514132958739734513884991442693192303580225604621598839745445825168064954577966193350831145077950062724523835872957973800886767112649497182490047086117799987533156938890727394231260743703839692119042316451709753827412595188969232107935440699569722287138410895751604047597352181104340409896396958975006573066041990831567570782443120373428997230883313435233311127002362055504961640792657678298602168123464298649183858130821075882274984367124941578148927430286871662082554783555800467353920151916362567518168091778495524269519812525236447072241040390427768472371839744011924800147215572426624698854211602099560167371762753882694452904853390090531573192578589883888570254906746099566186891308700148542233528926079283159868469262172737130046276129774184532173529867206134820698564882569209437774620014962131244342901603061873153174286704782155813949578414759285240257070193698630029849254062660293234872494068527533804118486798328011900825316142004277781072519965529945695369058294111605694024608678674467188226421833380753857266908472867296839539138018250234368252904495522902732914650191682945640274365100234836407335277903750278075086896236581615004395112038561496265548505052425349582193407980850436943227554771377355885540541312237109173851139736380124594201894347921435605924505239928937791432074262704849918486675156052509579334951048382260303879125741025284202351936317959290435726320064607555550593192317457657537183726571703229262397128431973842524717188157219504928440752040873398334879838041527139295913418178758532541756347733503203528002888216316615405340384321003985413062022762750809289283710422904743144572026343479835304545907228565414360452011397659583480105694115322261150675958566632396919862639618535654701684455033468729537390298414642659521210009332393921830617196380641409657060016586685274731370737372249562003286740162137347673643465002232294589724752332079825763969827386378850541741160950236249987408677215613123355279318568010235670899163304985349485698273973785478260399874689398438821760607618273885290840224426608458318285629272678995666824189121901998933645108682868460516172504188873696634496706989895292100002909086658391870556234806001717034441843507299403962854159742517667119154661491993280515039126462248549700657091587333866550360560723415835495584271856440087178404361380750546079430010397986487218220556519082646764688313988216125280916290173012350719172949003206870848846480276602368454584287535776599588026213218838965560306755653490096740495598849555981489507430839241093262432943022587457700427641381117219253132379169634600589340559202212185720349807990194782212259656311789962414448234709563333929840000100678691637067820124706019630005544933449120858256294728968004916229590980756127621972639564896144104724685391188156790972228253521838499563116440075669741624057722770634952806548899949780971533416552347872253895637896335571281185036440328307590007292280640016689154058715092265206953275510017385929532671455791185870308491936737744360385991669547517309927620497189730410536386315044879650880980605972196640035608892649319095178807254087376464877283778686318134731327337129170784985906915779081600852430783842921167744513573950722941127635354352845327779498427824035786083951221453422468789024213431176734301824689203488571548909591785602646973767651843916332515249434490345630264667867328911629052372423751149607940330433287689612214180492252401323599779905125213197479196205421864795344460785042563469399170254954797163303288509818998018899661607363242863030230074498642158289004935715380354433205298778899541560809254127273561636556526811707339467009115341148382450513176727804131157836454743845796842017939329052178454384990419203528831757054525635897436385173996916600988153532401999045985236731046325291078840208981463882812700443732130932200167160966917651785591595531053613582917262919311009846425609365552156873938244084919156644382650437567145551938890266921450397242329996539363906890570158447200415754456718574248232836643076209954063811396061560956371659132912082355444123845247048261232290639188305424201204976177582204055247959035442469349729952571102352662959067210207765660399042153870968751396549533539020454502918617608396898336039498639455986234164920783602233839022932491536997887222285357365175087272303619412188143663200989174791334612744368170119448580515408375573753806800161275159708952090309917616588014288816719604390803029803757995294012793579595960376935090843695628313503836892525988888927528889932380057870906055981379306785329683009940461610388188725209342589579728023361692960428772505911696227381017520855296317195016068336133953179212761528107237989475759561077682279576280380457154305472570102041553207550952604757499268000098687673537866048434485913665959732505032701451628198450396619407516710053617911380489382665874007004171071567480051878497299149551614081945714699273332417716511698071572012495215488552574641122184599667958191868710272696631517961825687431914377673936913716492287907010663089038845969890878618156973411460973360230661768560279270896146114549266568222330550761976900400846772195052227296117778688209843784207094073002284968245213792283903376804966255606027654789848159486381923871608602614868048989053446564833996079022701805731901142279959613979194465228439312775878011583399114932096912002627497625817355228251511682190490027529746292345965501469732420568258915255459369789398306020501903586272571104149297984098341207994323313191370669896728255170932554735434261704425487203108016101752480718507732242830486129968973391273408835552126632440820921802679521777754447614742596752699754873464177410403798626020664184007423601355316488308483662450599017084514251822464911456133699115378997690979584718680625176867693704318587263907361673397077961954254982784907172774698306406932164378706227335344417678986615697582105876674589277636235905767848891899800879976209093433487660552026704993737852608667382038769235730991198536967814554362728251559013949029078182524501147240658798377734869564469287223004843330017291804106850393307290838146216094248956702401925349218189378671237717501080437505007157182149406760453022821644345189329788525335299505181960875147029764707992952153284593617808737584165719092867027171709616802397894829037563494920927981323116701267892643015173169811258123342787298620296972043844906088972291484127692848797490263159987347095481242947267455122817281520147928325648251947304114821424987915374743484275683295648025595402307091902650646069318033153218819554531726929152106843933816343164440778856696360826092820048602867019818968240816468955855615316752803310111812869460508825052637781617229410437108564911210163605751000155798375157176492382412808934112276639933889682710517851544087464561937309473690300419585454186314800513660060867439829513267239170314900476463252949649283820059748327568813610050010539951970171792158963536436020947837016044973668090938357445147064971994319512181255975067128059602478064392806568470937643865680786226739314645504466674328377985776872060304557356315997425108901428677514226040783219386810822523861134952276708069161100027782248825112222405304943434642438084599179936456040886524125701253181994582954713560408521871030966357327584640474188978379358666580339329118209722018520291006807377938917708212811779741697642413597143984830656392248741856316574219567754126258269360101618784063331210652917587921249138962711777754001172649380364224410746170027389515929100708810850079280038569306384277714943705960278121370584982159106770018754685322565676000331506431545899717469619347646113568008255881050691281014420338669357086514211719726145875732294340173796997233118655158062698488297769107834900038623423047941839995167302167968904590693877239385643826232999890302153570048371431919569312275074048794969931955830891664623961500115694028329585791437891596383144052218226258013614434283920786352159385245959350390186601511325784374782589374773154021852720175641029245062213736948636745152604617184714468222918030210554340427297332743665441867527350261300131749058293348977900786504864418167487128926780511466125769228570927386953439622918240053441837893177724903628584577918591998464609051436440451818893985406667133544451052109946608525299231909287539170922654195527211510138912360588746883240844009290167117181532202468448042364852095990153363666461093713241017784490403289051607686540110593101387437284340837376025848083295332044355018334539944693397849032619289713864481593700358963019662456314414977780762659223669317089424539102338892651565294372377608744597355524064409728436914346055378164983291073535222348305727137193689847438576563031058692514572007849190694532286398659760353475572650653136365234786630872145393741742587146582877112919922853287441049911032657755664374001639679589626721329641113073228337013553384300691053455917346602242194809443927872057937786598323390941149834588555312718966738810600669068700496603195941115503596074658421166448350550924809125519710561639418053167219819280277992893349024836784858677448026285936246934164562405714818252030637587516960957311232197005674795758716855338395501619849546822446169791563908776685574562497478951740698061521860555929398333957064717058880697937079813748855116069533918577760465643490808716372276325156342439276780089915026135445371755631346250255295179958041134558246735467308124631109428279440065172227224350585743337098605349213849836433725835589953684088726148679619353527008301453717300750687010255036343382723499433057648063545982634336370466869345044754399880711873506491023254684647424256902307335568432316770732090415565788189705970328227331700665742934295975289283453287720846408299195630114661836857928982310319463807140464076799487512655053615204520908920376083484563661009118283753493778155240821564348145385285421856703586849390157756391898978628841883476900850399836068076539193934752356560030879432421623414396868008169598877681246110585351889372362635042561702562031984911972775915868504412952844984575835484550612650652316482541333869973984760192820164895530746262762145991054472719500057805603564023917735749279299826818238614057287012464377759102220545476530251720339552726686003073380975814287081414591315034929577711587420774923879571737710413839006240987744516336745081222612122884441900787410676204080060598045803104725771323341739355044639627335407830500819861154097964802496045633994411229385960052174079627135327099108549980934414420090146561070403515483527525253374155662591105714288278226120798162435400298655026724236879982051391791130329782579995713510654086575509794516334662448117521082610457824420156987614426303870668257982204771574482614987058684016802378375567512031583122663418141934485305533468381217629020724566129428767820463399762639459703848718275703930479487924479199141212011862037154860080154814004394162828489532982153603230434188341931302145755479741984076847188390123132384824162033395424958233647477410010027236651789854380983238502972135736373017968929880300835588827496462384294774930869406658591689356657788216935933964686403048807678695656424667357406940677709245423482677994453578889259091387530384651279466741285541082344177135559917050137951771300518365664473647134542700538321771292453215228340864622535544469278963297823097323410238298260128837038720142932889683078423750875265049389771560017449289409567628260312097692701094770234768648620698533979925052681616708806357393074359726905170869796774406592778365878464547752975229839361232476802701826415636526405482686904737965630560293271367144624615426970362262685315488587679643478903846600721714581624096671453637371395168914030322599080610465173134719087900087499994691179635215579706831191389607979136069428070904234297511796678902463542958551904913550374208799017551822728272480148931113204450255965678341450664664548906771388850746121148305587320101620822106309531892716384789744413931330578563897001195457097939407502691759409656252691065107753921684273278413045726212453909227359677022530842789474134463692084899649122653001791900861895155763292958455005498668750416612273593743875884123301726252258610180272507329690910499959926555335371171955768621417051410620889745425137526292727471847991578921595616994139851909805290877334137652215028011464371119969721459979351195991383342332907866944029108918337635505903797843049057523489796897381993767773501020271884548910171811925878378147892505068950651241094648232404006680194999915559540314927562126396946691881567530400818441661116360453870946260375961382656224829601458738803846927369504877254553228153636874716684329188706341692755676382432167307095185504896775925307818190141929988090848608918074356809888676533079222821072650880815218282883890676529078098699285357749241090511862670844775866532084577107444810137355471645083255469633599642747583773738101515534391261778502738685215816915973376006223980541397149906330810261790476204685237333534837124996778778703020948063712455109495416466405654879965387514318056352524531697916689104111872261685033689067187148893824332500131466780109995616388101901585979489593477378388382221522391891023841084883071770846646264625167804175011667535659546798698715008606831973733923076975030172550590754829268996938823430152092338185448315670510028145211545317378850988653022539968605195767795828197234965407317224289949015172759095153302883114748209986667754987596336119732404037306537364459301373864696455984628621152306948869058132433841497881208633211430768851942476599483890009718980851566708076863232066250307591935639582555884331865876119574655320685263005458030970894773924203767562744161109672063666657624057228461532041995042048810747443606051772925415728594068279858981633876931016408102163800704196699619591692405163139550901058435383478699286274091627799587448253389805299444191634560204047297742503060751456493882685518496595258807821716733734387717422561733191026908371284716000040775417247363029305982977921256877398113596457911058368558719941673580653621717182680712229272326299681488758236387046520788619240366864740401291604410818290269657467889460639691486015020458739079476095340973555045000191698890991589823877758686933004340730111562031844880299778677864718806713282418337615006367016146045953928900720450792002269458005388180830177388951519555550542422867945547912335227784272092891633254111071286710652155606244585415702798253843583989833547314663239684575506885382575441140812351646236883144382733777120832863901327770853628767461443124652994176000429408085384115239661104307373756919381754176376800162983519565481359211301860394207265093356062258120835948392052297253001826475769764532493814157696242462003700553373699818856528109341883844114853473237522839580608863936367784154263606545466021377421666038219735669726696831093565086409425096787629644054567861151822597910653507576855191419816221522294046511397205323955267096587409866493804384657464069894592428400752173086384923612668089340261824577203470199921532329903977306061900141201014737485880063340144559090855081404737141869639601609292349354870670738324282807080403029026871280600351968597223120684967777405356781481449238916379927202033744005358811700447250671678876938770420505159610074092244677106602196687646182538828454290433372799626734704281937822406454852211903977432980704233861036450566667405007768740665581904685042132798380545532375241917554302624625978660691226446206648163685599546437723287196416078633562379151020835644578362110545059969995817018052674927509510536244564908612958850579655155763089667365979614845913826266545971202187553656413749426647966689118174467241060770456241282046578994451077634301918980069040711060311934297124158564458940434731283962846375700660050302498124184104834737161770204933141217507120298981641926275932579815607547716151258978103733198265200146615281328342118646898190820711689155258653876230617551458000126010544218112336129515786731156650247052239606248136598744115240460109629337889214995331745943214399742001940670641029237071715773578181741473655278122005237338625680147645477144648902094929007539123377120127460902919979899214963896494394284348816735498186203764853940296213972931478865960931626032201097629067034714899576943132818879102881244595498279269655824362648740919184622253925960149305812880905228124295267807932894606033973665798937458197973647029995228817360546421668004928422965987996448598175510205977088170776227743423683363508289404312254168360371486773569001041872018948478116354634467645507012571726049502913712507435078039845478764085133918033652860112906509130018393608987736766829698453122908122287993965679106948762680023415565384555738449774387400066188806252814893101987788603193412744278311760135715239658776138485994554846398205641869675674726009778051781498346795588232696619817295255597599914119041040207284864189138200815371634410403128698154995312808040066475747880092742256740075716588152031555256614660800061426082556873781740047636068701957869524266140895340944470295010139151795249234589426591894519395033748255975959546681217529496716544524532862659780389700745866038163341122942848539383370090816371747247481043160136494917196406844702579288104973138078151638331722712735671901667708741842504939158335794051874480468189467928216756026111709168939892448486951814003663709725959942640276313227350496397344413086545948139092187182126334019571108732312394548142740815942513632838950224653588603864332373938869983212400810981988451226189701439107632128724362921792234683020342231458723509184152709003343215657001209927228980716460685794304840185108000985993745868264712163466867640768482780804906390275165387822667657126296387043458750653352060123170115542119675201663191193256732577800015947130589396758616426906428886130753507251923045661203792418504168468165613072114472164929895289054172885247647384577885670305397498496093296809847145490531856819010146526245557104966104538350279052939237835791678548225836191213751943281832580939776433854926087855037355917190563345032685952894551768193067591649164963154000995466236164044455886128396455998162302976219956618046454243401522603972717816987966812861094592232216055659262624339828096028708618398741181685509642595366783964337649865174297951978511459686773223804825824038164644418483667941283487383023773661394655965535407353712000094460400754922565584853117524436375709921159094934520642617360673286086099404850642236215992522200554842789673688237085370799283555544740070899700040542549237343766632498774091080376959908002885091281486305039076162070241785406263695430396877100048832386002490760139798056095541616865599019870446846682897736430567067113898530394830564093496298876275380385132830523245669279303530707832657259089576714227587699338766367948123483487449316927275597380533083099600217837852309301361831421582540717603427301295393063948881215984102847827383269245764078649367680881780813714090031985684903983637583551427633390816970396801261712275318400710788427338941857890465835034494768036506486560253360599239178791608622633152980203270388345789419467754846539469524350467838955580581758220041763911360063425237210153722701557228935464228448995872597228674900002118877183686161533268898038397933848808255923821005874833778730203016394902253924871710799228380685563624555334949411129259192811376227735620599328971788237722203055448525460355857700272298846343496092405817901101456863302143687540562899800507952678247776507999640547237992495901074090059113016776794311201932691189478577038450444080686571738362538864251848576274825559196113671581769248404046293983181080719564084832878322056993230295872213387982666639135870693096785890001521314931830889050135377409641389541048943278464968364077315485304689216796300773569776308098870992240777192187035617023870111938983144727971954804392481113008482693425276515200880358365049427270860788765025845859431778790661418746161501369686085463028363371711989144326804140580019752874105501908553529867443280124671798600543573172384350143536171711893608653337749623668580018869830238866674233423385163928325270151062815888900093368882292289920886567457219943749029356160841971721492394958159347383106925484652109542268235945489881725231334378449306819555360547898344601986977060447396770614242825452379492857217180520675657193919635288906947341985773615853970540636742658802618290394371392845091704252403892608441688153259811728992314868329754149168506781509365081942758934885998690017637435184882305740953942528312669463791289473226636864280102333459209582063625193902347561286159674787826279717813918760450836077034909227015669140624760028532848037129530451757406739592579903764915978989461969190616606504718659413356005030232138839325217491157271934548133043394820771783603532384306707806596421086858514553348386054898551057756737791744678051981258133119459406131127424012960478013083470890522037522469670080165149011744565819693191542995473625410765337082978525867890314778215148484971627061954142746016393622757668992139593629086444658165434128464155250345398769421316667421291075429135397000940258082612288302147695335989440232549625582256081275878399822704993987048599852147016324492562102587979469456806996550073788574698814455779543420825781533518922409344239831197660948163950799250299888528732041929758401996932818130927870747258068543353808140104904957049543992005448190225599582079792320426339891015013527005079836162173461390999140455674834636634836098356972757712396609014586576494047303155104842362382380384936941548089481572691878017763467274136614562297095559206577142441123431313044692916346785561954514923157586780777442526355435750468573506916230301168015054411680281070019104490147481461811031961738884567977625469747408732116023405483604986543261334242632906251122716359885901655379073452088293439816945017557220256517582393518623133652938811191789546195604230626485566975979481162284801462965864160970536879896151464972576069068250550359517551354909788928975253999337856740561086022188721337757947301040483338620262324866144325234156229473639029559543209992526013005944931734527982119540595361769332332227573688572380909672333853310526031671619051053299872005000037465569170616552063417630917613279055585783016097080501565245591265353219790538488758924680216105616832202464790261762075246549371264173270233517585173722304967320072092557916669939162634161130769443966094372542787773240124563016774324512062783065948227090440970756348656341974606270952880327083786733544444036163974335268248414120465561970029648946282827580422181324778735303024326624507074486660412645882890150787989304380369617308848525564885969219664298706436499662411820695887791308142180015994716463603394950413254345766671993138137928420923356120087517600207240633269614657478504354144058793219913010743538521034406392667853791887960546316999484490056714440727348395624788812297495879111213090627981224494886607169040209411741293496878820215935026811603103685092946572572019866418756830183637842007358151940611358846628313301801462116083496750244803641352892648578124123192877775396187189865600640178716827996554814888169101116030988732823776778439690295125358516363052271344999999495594059605836140531835558467012539127208956553000754275283686302835759682709760704921055666695811341180948189475119227648217138994790965318060267710405852105321546059829874903852282938921939164267041579833233971459856024789679562823341241733864401181668576190972716699652025467104579097923854543259523651790121554658373788779285604261247814562328311925352925571504173089739242793426521131057543256345930676841972190353123796083086507624542689795495737494310064805321715114679804031577075250974963954307928179845223865567842902454245958244037041066860827418038023375810163343552528969528313836558591549283103375455262557346560086822164154511998259836959552177689400684565274955834530369948248614427047233217908634652050483377391400851477315823187935345779481239048217898634536373094900934485698559942936927055848681020603535579771480990236449285402201369099522327141295547196974460539530101535451916563472427061131632506605844404578083055285286581981933143730230342796090850882152244910294908207372691420766726594954051898054778698629582632747391318065005710638956177617401591172764416364177403468010798005408158982233239403826050223647156142155701308501033714496862526205071214626559369816187731555752610313956208529588624187948602234476136267674855391731089974665626541526633954168616266717399227494988374504904313342130511572754298038622831314776332611459468431711942418554045922203322637740277392734323687358739660726775309188274215738807347157840763172972858349565300616094492694469552622666210605320192734482384091884502064299485064319611633846503138536626189568110001688673063592921107900326536867682021108882443558724476091295767939676857649969106137660901541870347641207401174970144660668386548847411590239190183177965465832071368739152692076426800212256712486331649472865237434042193796090474665981015678135444248519744934379293433440881483731525180490615479636873516466041311161029209226470480546288123922713586686999858673773519111320378102027381866907185684370714110401402777454195042345168562701874160072268446757742716967294797401195569740772564656090705230813144940716437971574479497057745695146313597996411157352872282070968018223834352404553327429379083896329501024207360862819364904617290807649266718443316447909676546229969342980210244172533071993545566898001057771936055210577007463872537644427949370393660073090830898921314411088888866376839420883225168461102703379748013314409190068397102281938830528303161898835322096705884064175216526443180532267404549236414427005315884580681564166968776501326517018141323849873990230987174854148298098426591203921569046239559877645605611297447653454901575905157322611492193423903057204899965183059740070526668927917070349633074319871881046491010083554766166046270828654128386943575608925092083197272219818392962888310372643237476065768026410578829542361329894182172756374045003193004562881930540565008978512365105939408996855554800342511625862476813543711146188166548594852898030706778521635243261888749267417179944101315484728226158506825376719372222686932953599046040918822498044929435888747584500768562435053766600491479183062573528036952070952382451204918224745943971893106053105561008505114053245647054014496718637031110113881080995088457402861920554785099761902617944396833282784953465504792816282814004224848912471076018941809801356284724736069288818296298019775533825945701357790286186091668832723538309391987368230977955094717993448384725811283985070810346390522461852063450397831940033194140845327923937277077254990966123311682040997904709879125403934726486207849857686580264897363847943162897614810518241548296462099749363729368575303813248624903471135887342515304196193034971053603692572396385146915028448436499898185775717925870763263868312953787860532354145828702573541753373948727715432090239780150771638766723578604742278477224477010942298135069322297912218618368658369888913155666930205919572226132601082771752034046953335789062305600812053566740187482382234122695227382674898436677712352721945870797323348738430627585269729639261716232649821461669632636609064730481230556328924563680445715147331435964186449354464463548511803621659943214732363626888969915480322300548333088424726148480043079671864354619044588005293546745043529521954354259021083704173900146890797685267566536550755601574514778825877137454752797633158613020385822647244352757776838151974643294627500189981895164418324445775935172289360032456721931419813079664195681570665861195940109708906840991538012497046247492648483561583705003722067224471759284017587790689963170579177608885031986017535801699700671421154279619466877219132099307297578756602022681035480629936092413454547852605631987595391674636628310041588264976507850543163417214764622717241262010889143900578207571136923004940275659289963001644527788311116930104509840548647731387209530330044597484048567002678488313642315120859521959107265029305701626406652707347409834810127523499857835803625205384527986779276986182246438232756849835624416632750597315584609743747948105071234650863408940471206087426933521643603290782619814921380422239016444092909560768521022372164988156040093488434399737293120503446582900431965704552116523031571900629346382107458794416034812185072974282949269542759951874147619555376875739308879543719636485269680735135012828118831675655540732168691877636306394558834456953198603993762743073153710497588886580231244688345481698387399198800725225711789314847187766123580547226124611068286753308780782000583196966193258841529600599936287503454824039357422719402136401347697555097703945462758792232971390712268914266219619241784895283776694301921983303247785961324771194060512335648048168351001185453946646324611564061873643758394165066427671527129581826679104311257987613693103833301449329184084587052140834246331999446453758920507428572201005951400156941079088660161794215131858653054889122323322134448514281702236459022193321476654090610090847061319838146249509310908947454057441807998871493328260847799870173528429159508395659225791508831215098398071098938340034964194784951430099847626882663771919624801891304632677698802631010394432813540304084475033418732771124259267042953132475509650103002676824323005962246808454797506959172869913885282029817061251997074811164139275425464955556487060389540052389136274611408926709341072470840197165673589272834017267018265051973509199935920883203710104980131066251127097850781908586188064423552655702601535312271958944681493215923962575207815994935867420831204222863766225857055521586760147831800864329994249558981667246336626936894289491262239941404381320201678082511342064743075257313390020338633246034494404468568582312021629062223910029694607980213091348865249027063757141816289743846519626850662517753807471276409737821735452400143897014785484599634294296514991370318090853238471639486695933832008404478743721843639614200112008207286370448333637208961453504437580072413411789248773661003931175573388140896591366005122393651528024372896621305778920259178474253858808168322615371069359542699758176501145460368730157867213436138869557877704574395094264000050513985946279292188672092125433325483919727587857810079162081669466496194579365569075586456398263594012682542533037905645771264012730337842652778465866323583136400002181393013505235489997709720837458634963220381133907950929089008610424493950671469617827861616667088833825211491858514135299649047622798919953101460428665899527711505793236047387080932103621117188811785742059295731522609984233824249247608305392895071248029356515803791587601838168452329467698394978836303138551084996168537508334416885128262594087536723308616118556454742854354620218705747448746912369653764826546664601283355946857485546583710173192273912954428271356207816063581839817180116264935719605539572284057505757107988754839334185882362711206534765874683914608140097777154600017154388915658532908237866830505899229457632477701179119477377838842201426244394323715458364528248540922232054480373371578139065163986279369185959491068937636925654260854030583111417366781992229481936902304518936157504448917785392766740503525913432177532293966155090978746137342272793316375466185808043280005372454977582628703579368356457319422886444523132375931089541837775849680894804092360200796663559783759400710645495659321837574893786022255737452968894450087025191274749217678918492245522374840139438106301209173369703514904116484234527981457026738815531984510721815802784221410350759080028410121000855807597833764990779423645113455258056156182894296226367337483286067118664802987588417833599752367709857814677568823512579326583450176538259757499271492807480997403832579987714591617803675000983511093086035522574271119704795343665398896653034444206332221162873033064107306057013459772077690552559541858799500906174382029569966716602067410306237031889734906211189953165416987146916237257144470002945596990252744853155828237061429998760288818094544766370045248924072174805647784240614015259167266501077190732101211249867710149827745673794663570761661609985375917265561927309770726202053343627373674487482437822291870494145885297233915803806098937902166792270797637305546078720073348601277656710116343314073138919745437697893940007853450204232888232357000931030961686471380605453851069255130512779273937760182441245260026836083109181594117010853793031806241487237668528056917635495166053411764355961953609080187535810044787781429583911697480360042769693108535293266818768036563348928606663217658891613481436485133397687793983130707197370320168172879778309275634623068620695888814409129779996611417591323243119029009274197378052248728200751813505420702551209703719505358239878264261638163865879745243728560171431953980840243124418402214893521913619067222821733316695455403093336362527609823429555387693987135111261143373934442055544721677642715428368669171743330464544674193128562629445625255497170409384681810909166422166027720954158405348891787541410162717411307795318434165072779480625268778667995485746262369330907358334783836766391507816873392438303041688386722071154062037249333602197188152834838853701350941725212375030035828815454847839683170052453107899469840477076331412607091581687996906917566516048571170052483005473005910533799548061154112350611414781915602997933517927677754913379938911041151159790168048166626247898247870481303362235456981052965374901342651787085471551595524361802598446613867416589158233768699573632029994857465298636240053817490771548191992727261163291377497912354051323840081187045968294899978419668659196307127320824926387445363069152916859769256617115499626381362962695394891406142830997788087605194790429381707164919741396812894748631643411344988696273489575993884367795332650725708702910323933444863526064118061162528709588962103942668847412990290372618607447591760605789367637280663969834162675412843794390206449256327737960196642641721702656147239438591472552408065605859917604794962681628677124123428708689691841513992597364347367142110897183303698224141171630301276726913086985103929658857280378338213129109231162714646751800710538165587013963172940592117217953230573059913581303225158755480241521962926391863259933780392544452469736973558839616852670950000532053080069497676149911555106588696771501399953813586295867765313138289276346592881816273574000590067264553519238607922000197304787289315169445086313454241352231721969566785705568873643261968773056601090923641521895261171188352870725355196097769669412374372156373983050099756062886444108008425195479308845052966890510385407318897800943187984865528736549225535545283928219754951377094083452881871802198573378878574596374334385610417984825288131492444089358835960492127204721002147477157628293103799340146218883419128960521613286203862013950420037662050559084103075864091607503738104748528265862309486970676134592974133365465365160047823359590708373225146247522121850980153501625140185727703696669544933467459145757371709571203409713015877667872584841925382187450606707584589522113652525751716125393932327234814931508396677941252565081657353490105387568810428732935106215670422530874185621920515627713954565064979797096013314503027854387872319962015478869825197116958104984423445776130805958453049469143397025835608180066819047858860026310301498028664551119391099418778002959260691357586114555430724708478312607334729204485853810104983596604717116478541245955142304601032889852991109317882028723570211834485336256776855493618088441499945134828594277990526782791695878523706598332000459264386017034795919661954108390946609072154952948208874657824266266819503198230925667235880261254056091325567193006519517109687919857419435145250595703643701947037626238292429446454386732510700957612044781436004171424589018198813930747464109412830511525976342513774773143345190048626767093171226995512475686189174752025362441184389302816408819950545183884092306914836481805650891645217416040420799064551165646110903956792153674383781751948341644520749925092240754242259301302641737925139015972154875328371656334978182388578023750507015605388332459940658116696722115347536681822135206682939506919021468610111538968852645013958086145777545558090531798939242078690592108768246796064702174234109185158737075962052599246468817519564535691823271385126527347798652460463186906320711888344106967354156618365422064563853164525822275109315733421234714924171483339612298630124154524447562699698511396302164817638839912522624566742053551635791027498319482079253144939180428038989143227191839928782617523330882272830246392961723925270712335279770911276510266972512402666750455535261632120226808212481412301405619931305207752080514003930826889857009087084893433492699758829018961752986589591776555928852843513947410975934650956956438601527173583751810772583601609601207154888095301413718996763885106658002517389020351272992630186610514297486245576864078431195353006415805580929166902698582161118889943017669987746614144784082652977146901345208846099998639829746274350991028342589249382759253202439990955970744573506463852642705155318384383781910828409891899581634993927646684526529499391251192612328087219564130317112832180687533248655108335765892751099661900597196182955886323664849389192238426483228241649670658830727180193472342676539111621431725426242936074645442954378002871877962991038655191650464367730520536744466809782012382512342492547945573735183182147197965530344871612530178710721150935449303746822359203941604480185438256420504735965141553118121819116278393810082846211585254481502025951631296429675385812691828515053984071968889201502110022511093818045183511854910581569207653643842887751621274406948130339739623173379540144783699780095832329062214607352609098312261964445805102543114701691994625854004327684137522197905581250150743452509800573486306064529992828438139973350280683312799152186490194067564200220376033496150951416822720423127649477499207759785012600745691293730139028225953955873748327232569687505433125241757600497326681528557243219492873874192403011254745124453382299072786994386034944739540274940097334603058995231686264281392534284975402550938805087759772503378256268108307434946764714257589530582814057611831945978891372881459720780734804957683196445654426862418556167221818092836529100214457985713689799869351924891656684332834109014643236456095635539200597144914807743087247549110406806472769137138216160524199454919822979198750888084375143377537770633383986245762347416949588203496844913823446367765904132748213624042092004629483735073736101369714788675316670030448021057598489232498361504003485701632469734310094209273949247213750272899339125859874938252154058398833153347930278449635158606189654915381418603981612810163206531899633730152881566505008932749492562563613522871578803911597396401227202586861361476853753615097612206277727097652150377047479249132811423966842237823085949725029584785932059277820713062123328918480935092286484330718916555289231533044256618846925365696285779541352015441454116394004135839014049025389940787751741971763767838603420722071996205784923655848762542721726529607057610210632096727788901500225200970226161596797775040264641573502233450490146596159808395740779398454207467890819697270855883977074114295620332399584283169008903812780450173660969353823115212444201183919795253497806995795210662509664372255882126206031190378999963496921547777967686582846922040199742100587071923875164241539146753524529512944535659547318006739292649483084363754601367376246298873538919962754576765697967169862606615684929874324386670061241590565012204610916714927116717066081384287798439265216055049919713969767729705361641299416221768321641125432724970171624507414372721934447513681797028951871096497127083467311126608780812796764113339145870957035319495967243162368766199463575397634318512832336860999257156857527453930063109874511889545551024508550297845043203415368530887372577843234258716103761437860905372918297328637460419774342962135049747021529918995827258371172835322179471993652103445399621549429450657913214163911948645144679818555464759502028487188630344901104681780301479382644373514421677207494144080861678203605331711055902641055325155743809801592027829751037523139839642465968163136547165484271284284882573933692902170304788698432608308807708441322675308309339526000267612536705530903413280144984497743266039394225486867118336603168595398012540451053603160558504889836904686299095707546739603494585610975096362406815593133485438283808279136920750751948808065924607324978228470903322775459383060840416081647318284400377410522750833352270100848734846322798660469957145417408728389481242594677928871778033955175563437022713884981247709026537094867590147944286499175988336371486672741352105229671162503068870380017451502687968768112844468597469497563173082828887980512506977988970136777380652774150881354095283353463979481640643981408195326741541844514914934976090872547863755548625760291851523237292905752031693510788191150402499074936351657772789958440228339656957184225886272970793011940771136042471401842109653861413251520096949976288648385271869907276917326242023924149748089391400671201818269902988272259363065467557643254932791931837552699737759356823573286984098226827714931071890395914804645903382869761339509822780616238068657225960584174843017019740449179528373350293605602459531082893239939655231520037142324375051395878356262113752561175527038422650575733497557440047447634323813501486192039564506223581572865199899736755629444870335137421904284934533155767776494217556938806073907547855435691991381599162815603724090839516995593045988119848251928803861954823240316747040496069190379001199243708466479453921187532391164010469363893471967616629702289540715752663462855598343937684581980392465551003456569638801199421353665492338902043139754247232373578008739996145584759391270724980724147814476425053051146134107489445741890657062715824057597557905823580800808619309956520660966441093201216234826989976482217864814869390966422669319793614843966649111010200172178812379226657806275126007444804294239759574726937296863611295140926463540498593455280377515028570410504613937341010784180370916776782440482394035256568562505998171672638286609919270953556364286752814393855146916806983458928919090847692669620151093229616676666400605284454837990761469561271972751169774403639609334526686562747150459017899468105965255854688020070777234123880533705667276940399752438522307313571192015816585597728697897473802323423716180788895891902087353697150522134372154997225221459579207615893319581096887489115152701895746064616302873584581260683025917456150707557655523857893196228335348341350060545196468941786606482866653387182535953212374638009401667846669644448811577686938605010097407785243546022971125189413555155515680881901747409593829495129382419375045676799543695816568705825971270811805849177697536979477993877044611771676039591067280974807340884577132756045419382362164352474569142193470042086768655906467916733845381894548681978647050283065804023360570953936961070959222597421391268337450221020061423976750966659181715857032061629538513207193032236510619811302066295845239441801321012187130989658206488148799546301379164231763883357271863080252136885445453346909349070508565806685084759676378655433063943253049192515027753397659073530318690859529704243836244314473990601957621167706208139966548100469967474727310544526866354055253055610367009145768596096543492608502496286622330920387139316357938325308244344877166878870816397990024975736904768338166865221419130694928442140935013396692855801337314794367558620150471506999519936891687947116879619650132263689787166587278755629109221885685099523318261657138166874082670437672831003070498092056302693758170051195352016516864914393326231323446057305999734380275942629700869782578385567442844549588185566392700591413585299738600154529041969126515590260936174662650433683162950577522970853877374238024051988443640830938192142472205988633717865164292249753519655578276526800804900599650721466720031026768744318186680788039253658518803722750636704454946019102626885365927007002375667293899643261266293415585041821758120740594296326612337171075478542074160178237349477555522859126218910809458713715501660838466757117225606647624005193314913880777517652367082675842314075308406808918618650232881643823863773365651792707984649808181796645534927697931721162557284681598539481688538513319102781651915630267804386442318660689347845590221343529521473131194640495111694554181803856847109591823412727514161301502973157782986015913814496669272120994861933623915679686038052886488320384776566211608450366847999594807747926571826341612616738332648578578437862873362442964731618061947784241917140092585679905820541375651818974766237447242776770463600324586761170433141706813890085945517694072527273638918721664330032073158283174461093124325260340807872824761311839511688435884295884557338700276338561365529406162122674268333502487654000280875153548909423720753297630119425179760473005510669409236794857363097415165833578160633959191715677478760577604327799732231888356446478245991393772689093360471608966522361593436268710214576479798793766526251685009183260080001214417529947261105519812238703198168187514084061472575397234528479287909159024729922035532073029533717399639678405808576696874901374935861258589740739106360446094293218082686735916177460305014181729200730203981315052631122264877988037976894311408784288230946454797797701632595772754825696839811345304918728695193482960063398229481846748346936650705055613007014716169313779701589770636641333988566195741366222880384958864279069579106621171075785766789047519394219169000051089837811482118971370690878070585357628785978250249074665348008846191118348830384594120440233549570490214615104597603916655521128264507145187799652480992808115478877551759180928108916132142792259801987654963119659752832990741461685376466926202019191259826380619129368167772742085652565544961723278080723810059262615449368338906720440653209689326558475558035361345145677760695043718365102758754312871193687300894535747239288196892931874075849661994506813686641825528077036268680246828868667512188095080874901875575124662724214407296275812853929516941021303614257914540426161683987820907109038385588247344192599020833138001042716356376025905729715829353466448196556605518647428288782121055527297523547329972347509357465234694461096511082306368942538977658297401437647912336281538052920495347559203153808003404974142671859023440351981270737198198796462272011422258734716745880886128530262863155601295177564775500718557602447490963111439962414088970166110647044275243544531548402587682893370969842680348713542326491051880088718359931660186794709598557119085670772582625709794680991156660632603679849047515935158503061004079710319450749608344206769594465729479316362610084440448665112905329598910498189038240178888007839661788583145334352172792768117180363473520052130062610562772094546226379299390099431864401816107483953116853716836805183473701302289598579726633199079385231267317518884984990783240382195197365339348850023123909202039965126272367480827479824444344229765456698087089746202484958134413130712405101511039026897024696254919828781741480236351867362147610373799929646128055182617252536429131953646411135521172346336128365267988512356765132080900951268834202315046449695972867680416999766743913065437924841680176694773639398172168083866098705627228124485113076528920301301616338958258191025640619717631937804570940243839163607051574811345835889062219711910239830527156254830078150296678386855845013136139881548480372332421807131943698724798153023531901852528833947929324579214734457089982037185032103437293787669996321576026613632472457787904900226297548265681621021415807378575672253274666195895686115423337035717722021207632584127450067099106761893747342345670101619161124881185757104291580398781995108191914109441518119240476757441607607340569885836495057100561408809807133462541923730260691337076566105755294249566813266768558976022265840803415029999824403274593141603077161246731999798380794411722942872552730046745312850530552433122845269905642794915892964253009964305216332023347978788430121575913993968724546714660872487469960029019260194834762146624841590454933559300629766202198742913517797670478284226528794423509968532981440963850190965458846621318826778126118585785036827687963276320393387659480987333507794183294575162321472860303704411166271519844241404579216403418253643078393840099762757366271286777282402663094648204018541898795098704744235597808667993027701920248886711312133292465444517557526139911505875921209733246426043959104002524940254939742880993974696054308079262739706737900002598094175614018211612676709581915183772808489656737835910608519608132010653992317169776226093175809663489172977785436675107383613814124851147685880276636072094510900186461324993605572496254842017671030428856485468965699991820328144158966047577844509576086585934986181339772745608560402252957703850315011466803364620287998236106104718280597249175228153476732132747622336959119114096332866676062497702411417266193240152652647710088157311257156090579065205085583446426824148486092788058357111984586419396793297683338630831504030552951653153875746233892414550001602906855799144069800567113528025666161824858890657408793023186506241634210536604541719528016014995754691834851734365559680249388489553883373803778969140067172489903941567186528110193607460960100497504732874918155242020821840615397103328483020265725691917164862946412079305651742049740440310469609574790561234882455343005976686668803450850443577956507898790047620486270344855259190258940928636586825280631671133569847824207225204217946242951796110715522238591357412377859490775385539481270267307873716694499011997265694418342450857274780202712778095595636252766273624269849709455783733557479889082034710589944373128850206110326217102497485391577523261021500105902257384700856935138544372974609699214717559562946194633843534751117880887447725832765923542571282345864439890592890588211644249204974993591548819538424198847680887040105813988865587809696088005922718769482304221295879175596022706716471865057339483421614583055143060233641516596681406628593341144813027681173068512234342804526833049567188629491861611396640584622658198196050315586730219197810075860104984484402956099168512509137487598280952188086674577502107239403411550957750930570729487662829501389571084278623175086488245364825836598033507659900614089195053854384814178227377174356478202584541729469500891819947408144210275354115870975991147722106150236283549126816097567115349680270962958836593815807629512248468875436275856859950240509052869531465994720340609300532767722136850971666831019542492943466614852899951325088075919953939823517563599777622979434949991449734536383422710236068636241607299043522707446403697941135133344266798071230731192961977757865659643308564676979864711446732779254811185923688318648308253490751163690462532142860156533576083555732255806106520024708663826714454676343424029040921344564102955982170409790202812572875771241812223225631085319519684808873313558643181072427957316416933415282561704963950904796182079263647279031603997929230714748570235807356218921517105400443473039725610418541944422076821234859135133337149742164742978956064248601015916345056975004363424742773415515494736865727110340724446740401783122079379130119376912491472054639192392343432622747959956476279795630443845025840578629304224984024547687416721961435290036833282845969678208362433822728100094037487120038351596461156321932300733849783922563486751409390704229152094672678534018476019886316581774924195148381521965202078830596661086699271022551270683550202153265936592755285711148963609543380717071737597028287492180887055578746435023738300824730684144925129918460611863755968003674894212244987069375504128892715911251751107466119252367675431767922183345937924637315694116086703342338107544084099677905849722903739078165949336778206588111010349929699256398110109056829042418591407643721113607021252107169434648192964301050670483641568709425505123729262605268948855246795866797385043303557078525570491229100655089960110793253568165994573246438067896350311399333042861494037337795119065211706274683261829204096981056704950176103619666693784947052632078318955755008982712313058950097731881455798269148723264383071300808316850524121565824976722440092907095427524954730950763838386221231286456232736794058942861503164187466072737289945499602409805079115402281901150660679356973655662266535580390795485772504748803595110428684612745244467179031404357695643639822125952285113191664227132917195605412801606730419859131170088342897401755031421476887273398054037794341347596698655818884797860505646465094585308859555688817530589763700393853070618417986981515922033819374830421029035324371132440274221930670349868461636592745841625930299802864989763374900433922179420234584710348284549578883304099456738025716552198739333089212999867700538971117523501989431246194600915076567686503398367420584782685882631556741943965607510965301302301259557143521250438771227895567625037895811012142295310750460205650180276596632445740993511387117539493327270501151374051404338082905305005475495638774060898453583099037665837205669168432063399845323565306848736310594966119785209338456564572459105084273321926384823060697388868112433202234657718488146291785627122959358637789454109880951967249285472281768901588265887982690005092543968645495980507887036565780015610319843746380451141794648071255746283295298267529113667626802993918215152787350813814635467349109412242854492258004593622749914868572252583778356847550639086752931126630083736169233717630023266108011081497048630081667707310971113500926519989614568939743145696908412960426149261593185705415349602106949556699045877772761629386556706258184941507923266421222092635033666983362977296447337121304770004843770323946283615616307263832490602348417400080904872399083436082865425259599092555378278756899817335866740237599272557475646469965377542846746365486137682144085842443557507181888057314393133088410650659239520108367588892941157170665078538403126055592145881357475108602537710377932495923418160797509562513082238458136082106315589303075749954918081779817606261834618732679321684278591199417082320592848527878859478451331139781141383476761547691581552042335627202014444678354318600584235191091880587713013674727679413984922805399260198866906556307695410082073564402323854535549088945054936621853418398823608882174993630763306531918325143933879320484148361156232805340673219716633439044362566558535092004313760855753072738631810984642813541429666723890278545177856501470300093434801394856141352476127367227722148897613735134611749419059779408530491181759919434914297553913005269287647802763955198242689996743024985104269926862080978485951747751610656197188022787361665241707401943343785668389215391433349706373120294078330628142238431339158585026923218737537709549294151885556123818436542415405125743012960917017437372718988093846847380187963284455254947604138164423166802322772581674729908382141864649229903681960049608415366909895044677674281509502045714610401776052956086264172563534418063054248036465369315210559237956800475844672199515990239619663889093812527012227667571232115154316353032226860759012220574255001495935734088297232305918398500356527363505569697821361021490374586714711891355687203272923878970477767977330956857631880427262240543334533680978005110906273356856495528982434516231211002031914173989294441250378885076250493757173362100701670197362763885907763208798648196452847600552303026409590360543659752549187476000291986526838030895486818151056470815485748523737567352565765188683365871095147844155866018628790519291147216007236386055824439714678740503806993092450164670397722546838766725625292411983986749731722951066154692264793976262271830104566431400636873935925582772136765257854131643208193021287785915219786866720537882495421508688844318906001129354303133265835989605764606903231793619221951825173942968889487295278316318311892683060855496692490393646630392936407458745130121562664266880326076657809518034394446793294866297653298705380361610082394190828237682233750283362265817899691543604661141571003134902124170708461192659206228609733559869860053635258944280716595401213901799835453477390797512358998428727144164607513139260625504945124005024047060881766905457101744842186052241499819309809504032596068097505907998624711589968772458066881725225710956800383646577411243410683146859731305900995527532875359015876718924930431109947333426758474214704520439558777699139619278459266213601172387947974617111218581367327368656374728259068717135151795031956266801923289394101809206042109946369948859472699568888313825045863073359235589433598403731162525529507672654900269357829813027021535334209182876977987685701749934467520476721459384093157979434333948109944845622921507743449450638623195259069998378825171781399527454626489810549267591713526559904061145408219490522943480718983430829756776866838586117674928766809162370377842649617752570251090977720093327421481731993696184474623676183501868058895972274863188275504388094076530281538907043695189034051947051509617150689191301600411700601456941996371408886195233820857331897937508000786471856319001253086568400508120082768732503838630321440040342946580128585235063311555818916963777106414099705349846360520574156530250162176409308377306346191714763476648613125825444616964358430592245960611948107070649100833392813713451570344537991227414931197053594837479664817069978374043739560357801863574974400395683451781111815891782213530433883041534325763199607924750093784183465695305890126541326545482089892410836262844566714998850812878988106624894477245954217118671872541064682541463017787144002350141721662463574209904927109591077519152880439757975084855784626418997542187530875345024138879167966335251965436808069284465715470387445590293962587711866909737798779246904051425797281875981918156555651717018672704104485027738545271086537909306870240928302310247216262772505878309109994412266281935979018445326719837431826727047650318154478168947093264697689113888337810980638519505355727303650401099821729443500931565058935445443477674403266446413154611964459118925792424707526690425083870639435925345801318262754308689592427823903595140931849613872667966855197486969353454684487759808006251764261678443568377526431609623629593339091220570862956280724159177874648127227818056516936779002246590405563112522776244824209719800693969856500197092819066465499911903329537106587587267815171318071799827954089342171973332097962362088179458828169612054548459132940089956787990371163041113288877043906944337082667916144268523138643747774828171018479467620199043428879680659313383264846053279707020661955370459139374432536262043866214706983635604759878804228852019094623823174541241283029323074354365554612471781204387479074492697885118287568114303819866689845952386281165865850542825510630363245572906844224053846084939555850938674072871113385841750223571923238745893965007725357241095578464247009274194169389960290263586710640131103822829988829875158023756076905151039098543987568032148356645222218958895483895279480009628758838103568998726794673548896836744546107353972488849055330987222740939945537178530353086395873615833169312059298980067831225772055388557403481542741818434840926118937372407108224876273124433134073180497535498542805597965151600590863086957235306626348539203445079514906774229011141332411705079984407046029558647022887635035104088916615603838544652847018033015107359099451209338153641741348205785440262816763088537799121691144426358436537162568310781498445267608559099292666876927369840930381704035961391221038366071144439388955420073916179359140237230263692470109437575833882306233001864158890699991952699267649029942265618177904818027293896700489998920272143073371860445274990772677518471636012399153249277242498622488006166817177371699363907825121680663363371587615694345222196039597148586904170944676316054788309753677861414242836281198827110221634833117805125656455827554052041265010213180919363722972810955240865074623295497470624993037945267048773662065604166626053034025895047491176549835537456113014265888077474875097897111664435304578517727546060003830541835240802802453161302109248223405655738611748481813004314255939684685855799462166764464360047745331295324357878184124700309763755431732781234291136179340351367203745777650304000089771498917721921433702851971701616431370174934560712517705380151744697937906732670515522359248463781808512112032957562195714753740452722828213215690347224037993173712780642164755500086503894070806026322101689128791787686741273076003939215761279227685349828729005441581916495222803443126164017716289841705606873942491319021182327476312387606241811086136946496103941488106588518054892220864687533479788821620356146361382470163303012898108474680771965862005827163332594688550193612821616528031962885485496656100807629395890936085758394433371011098061951442675271107057763188228377890627531229898959723720073184717987636899893886551411779323999413163194875898524821777513444804974085860253127081127866665439058080626010004513015108959184356067515993750961312145318713470074090181722689692318341906532370798038279500908819303803539521998254159588047681089935019754745600405034219827827975772529110743782073673852332074087403106224323362140169691928627756676414036057454726270296007877307881323892430938000532158018630470414771564548229095840893079671491949363149445220051335624194930280646628298155714948182857647201383973020300158007107802755710542407559959914902628038512470096634111314477769638342839025036060333000419979430104219424982844666166768205694289069179427832384465438220205952349472262270187853447533517695284595210067189767884490657319761904643193383878018956755183701947794749910405273052189162530973391450290223259370725374064771601987410115832734120231110271602303918136834156031175859229898933029492813169184727253868897319111730304984344383565437522349858713416068085003881512465185048646947508754982130885911172055928766407946384762000610862576957017199908553080081305863569946602848020668980494413075247869312126966609154272385255989491676186921859683282994412310637851011664337199162279959433430772404215981377594073726045576967798406800043225068320507781898044362383053385013892807479805115602338361497585759969432369909873629821950593050927325931526166024462808319708500443758494011905922519097691089476981741364154526394667005972108395165239401645387488003045612835210743788867641806444806739997663154286660500478959447218301293395256428020814426859899658693700295376770261537884618503229344081468373873053122680612879561065553523482174932890454142607086134029352341996307916383993637808237460239123641477373132622279442119375373367160612687902586763391041408306811797362583662121082572292390782471117396710177565565261638394423375755689724406454831430097909046431608222621722666282177349178193886728190723050351310309007217877867714216930307188079614485667796150765324011363506684326300404831863834080810282350048808496546217538413842994599282463549250717265980236230680099913310215572770142112276895197958155927470370270276635256192804574449865601383249158902162986632363551947143419668657733543715397791510347087995071430274991409644128928050586706360219082940704014308064793881176416267150235859076607999437412878753483972437985607665447973305067562874144446170862543955185369422380351039889879567910820295137784660133821055668840218182681694420231176913203352104804056279176592271279457794640774887326492467021062482828024750783763912660558343224038816344492697079232207078445268296467058088720218218323089455175733395742477732432266724773818880739538159228661987594342906000023347469545386184416850747526070935232969490202642634291948013640514049401062812510296421989821207591489871640870761080675406644083709168601459783214564026430039842160569218892707278668317762461809614921148233835480813392518652785389290033319034104414299030898543955898225923170981308873964192716212418180095207857531606961806294928452553296977499126669872813696737847207343844350610745769562262787698124083691875992667021069748373434724974758144563219260787402645351553363527425497934380729963182579591928936774034910561709456063689898443962115611674894953075263900439740194058573336861713238498619518336712592664355897162891428764321190052668364613714087571246035431737736663812130392983717820353937875147762743207020308219794659820171949603499032381691101970812359967233179576324815215774477122128065337970697961094771789989476363783801552979967670459460377119633192000168934566885670420631510769182033644375691826502084324353286243308344074616246383276339741249187698300222088804365935607454100032784187015016625274843083858760827950071113415061758557273505647109571171189761252258638763670533408134775755758009621635394256094906196490862909852849721255815093229252627173680390830702842853687473152143861107867607078787517801376988899848423086712824382684243589372807630406828960585379972344984419592615860873778168231087014003446150364794385224305251034794815760626536575323745015636125564841431339444603784286151512147025751557786145537688866056235856370861208452460498944658081757499348828580738277655118112943472253173909626687264786971314843791662293523738256254775999902821839025870002510320233516870810247869500474075042257774758963704831629965122010925734644623958905862134971975669036657831415517930441055575182366466439563035632613788778253596864559592254127994547252853589352587377203585594977851842177812002373828054773509083147869648696661929910316528414863609245666812487876439959290208837410316938699039604362161393956218526428585500991101766851082430795672374619899688841334715279037650752154506977618610046270744732865962296761125142102881529398389723936442095098903266810760074674989099884046927505681570934390134341431623410880404629829140402117037321836493872269737524374236820997421429878033613655713703773589192126709625010541426881056164628691222694462749994836429168887001911917285278641817657919289788790326214878003240994382012956834403350688073626016923725942125219341171805791474862767577402241016677809697758822110313212903483684277420743609101861414877120455629444759524521102645925248772254117503249912581818123372988475673754138203625612312676829699218807510169886038686385445485202422614350682914596199380914258856875294205360292801319453288804118633651048950082774667034809312420760066920927825933417714589113028780029349374115064510906303075697318734643228145219764566567387709199235214319748764830030615933487843422354927476513139375610749140213805465227098454854254476613148992430280369377882680220418164638625506825978873754149527649954359047398258608884053296039920704006110389763508015305276914364500077451785962973262982077096022272272774453040558703008456583407064047868812828995552188954372233795741658310589344741787450017297849020129804969640572361441999564092262398857775709077307860024210427198898871361275844245579394457340312955456880056022163368210276583641953577348018820454447731506128198308197657958296515219530049974014648855969720109302591488160329250042758849658921260021102530764828156406552706969346969619802812741285312031741206931216163639065599242094465184104870707744571347671527968840038461998698869879151522986016189523203692491106840392273653380846608494835186417257104441097110006325414623037647676354883118314534593822607155791593173231671792054882500466204204496891024421714185938481182740608323269165837775920726457010386810904802432489086598955086417160570587383238532305735811534364516750227344919728765392901232672049385748178742651382150932384231408122325517027515948269728004019225151471002423806429798472259380980088409792114542264588839212831247154051980152159225600351164449339223626280092738653439519978659232172074957156470525561302618662338711086593463585673249646650143802046971181747385773655031023574206358327302075285115657376849635652598293767783388348048492675284860343516005260643558396669717184811961376719001618246665742659835578923976942086408497659386792090254290486002853824271452589497755834704271896193049318347471110027130927568229034774255618119592847642553205343856485419054840997888101834046682216658988356138757368911327873844328733044276997695816155416365293416086093539593029006854357775127449142112990276539575804999510563340283658516324504763481339836054566894739507882900711411790759267894381454022084185211287798231640729285728164137512787238393907872590784252879287161697335913919569819958702727244340067763000837720259801785219158539021536235783975114784004081675462824162902055960710663764069216606720703751614079758567354692260181177226276607291718152173181022346872404689488109878677182509908317748560372821489006688071545235903025130960352046303373919366536653068158956055380277620595918795353544172178374144613344491238517564134753591407515230676211231942132358360413197879028094243357901583415028039708066361603034341721470060769892092141971551223989305552074050861003717160201737500265876438801483413543488731168501057814757903902307416920895948324402006112994332806455100319596844792555121286800634102607475656186600198546142250671070156753302655586786727822682935537022678021600523820731128890750795360940635577962106219899653592974961543739644101655788571681877798635548204632311875925338649609686883683856597246503129806588967513736573252521014301614399317306450504823508731573161404569901128455418723788411207575028375843497396668352639975437048263301211948784269001300519559338786039136357893403523903169866700054297990048904052840277758907554140864640235135425831537028791465412751954111287443995827362530131987217693946352613833300104645521654094135187800939063390055402428045470349156912623369813900684413660606261260892201903789952913544487700171787827670534773764756371984428116758024887706442256905516435931290624613059185264179431669607715842500429915055412393598209054323250602147485914348149051817428932658814509903301093283768749750068590646047388594540376921712915348178719694322781517017878144801234057312458461255149350517281914775347369326356889030903160560154205557697861825941508838086259885497577948399329983474439379667505911992374981965638428378314071482301646504576639492189029449846665188788796264250789618075479817019106439953053427519666540277171001693818436461640312502346827989885519259352913112511930860382271483722558518293167060442159069942047418197075666298581874132883467335164502371816298177776208471518604332904427932582945474190216621060221222055240656761772754428965415406674952549394575636076060627557713848168895822036341603317638147109257908224281412707503095551615329979303451641290358325892539588962856857786232699857814295459046878134281483907418183244189965363011515314265169012434072028051776386194980260504361599081273594623075842243783105397319301089731087606007506690128817030689993252649086192056720387859717652849521716872133139578986397971134151062454128957910614641254097417461130242774790523542909941920197464540108365378812627846523901395820433099190600750714360600688971535152301448066743946709523288694545505719024551041744232346490242701993401233417443770742749350224121334059946383822066828666538473194565422926276470146727414663641880133563852916922513558039245506839082866516198702617596175818410893901152924727333548042650563058986757003075261072341710226337254457802141426759398873831104428332155673249103831553355338420687888953535221735267321621237616358791919992655230460111224531147571208392159174706785866403017887030033955481319456247732813489285031369876487189819652436713921808005521669704686799582019698902674054831010056546181114202430360459969703925485429345333649602386814210159030150654635170201190813743916999462545251458950719143489686769134954997522097797110819561767154437217730358545262625834100730181007827044758407952104593994849206120394366271570385668691664228971617105133046708759101066435976909886336128878463666397385634509011126115304801413495217275702795912612303423167699537121154888248104504773912639018100147285259626162783148795069567036052271080308671609063804186173016836402175285705460298367260655132610743034715726880024368948432396794952769118646482126461415009191154901726098421393071689041036491221776725378576994478451508296390664775244469013382818456316527777303624752036696839850320158558885530531855746694106355861382330216249852497157836148814275072178636012139448731903716402377502868851698094393394412554710448492167773150184374877794232001864129480221930783973619607091850939664611819081943401783321219668110790425623919251371522165578509026589424702974963135078936847451969835779565697050185246871162006101607590560304250183107317479585575137060895333463392876751938047815477849165651817380142065795078575311362036141998759302698865029336005053099642653023194715587122658215374638739404302401435902810720710734753405775581608271195525148133572434865607040014845245868654167407691913766035935771033345557474513682683627467783211613695550846708983067117514053461519893728637339454079636683165082822118988046434532833947856170047778855511866704556442531091456033678191707940808816277295359266228333247161032254050111005124901035584747944521534741385756781014714468357815281660284246562858652216536936744762498711605458890438209145174562732239681899874863311783591514427823637690059665867272835024109748899462156854247489974738287645003216867317842838825382767106108167042748461572914686092449386418271535907622607912266645078395618486938369009433521493881749937788092113110972981424057162220249043804743683891592506563296807653761225873907862015129795996004670613344776677670444409023402604789506865382761883087249536542820465220824257242350034381976974183127106715327129948863958432788664754611750615851712128780973824693097563020366409438074769409506868485424510027314652249394990125642404467061380714211266898571339193498393392631142303922808688197522779945068627251329011346092886971309306154188801814582053791456533653358532839360297018089411284312530602024039534595353963135990713404789534161366712313010613349932815963607514191580325085570242704040657908151040972933793419087459398396532160042297152270154208374443704340474035834220232856011519957701051526607118732942581913174413083445135772759378755065422867279333848832519294531817369276920826779942675133034266002502530456110123506217756111977552539018217499488108300619868596079489796606528176960286977190332237312215370620879728710597847427878525423951038138225865241150500101104349773993361153373830811915610112280896677236382952105002263402328569923182269889532745652738836728831287809301069073830079055568580831058336577817815735267746214787344428288692854596725220573316169382705373231141275032927449026098326183524713868842601075771106761940702314781122890232247332447191152943995952094506105992513760576973797759951163465816282796664342348644776440772296765256077315192653306949397425468709564279799726134934890001418800134375367253142146381168856450367443176801733253655657687229965780761902305808962044897117092937401373608517497565609218894381772298294792486176942184197102817410561565813479745795998503518524967967566216585606475605154962813403636690470398054374006043726973619562084967620734502362543371274485965782942509299775190662419903001428529024361658149561741444519393095670774649191032803596692832326706222905533536965202373343056846932922099375355361973913459801309470401511116788772714788182408297675756027038586427860547751907447285867610888157779776698069593505958942735464635362184770623669988463524773197238814981015243308788546196847348037860816202907346205551627964324442519732062415461910565787386026498575356909321367742838690036171234205868500933683213970091012051569518077402580017012188945433070403248772274411181981262361343257409035533235089526946005919072929526270020375296254539583855538007901817210360402946897348005088364746001646497337999918310007915078345485713986000577257779155229480156441261786222539488962775243048871851839710289493467663439407947663593530809031125025809744019209583166820676923659927519632063348561726490815789934690983493197055678153776965740914857501815063889274325468918439454128039396977612093789079169106696249159278295774874300856855261260609299008108977213886433196406990204401992018451181189785081380765220284795525275628567251691426128438814861555258554667368835589179717897224794774068675363302871880477530555804338272777795885214887177575940249746902709293667050648385950460558685505038044551854512339038760938027551013695476794840388267486205867401716007922796566825832271793431033920482693970809634381680053693672871945118255351936148598556467471642131808077664721988740047890683644057405819734727086742469478949535628687776183856469541567163840752956737111772569979703325573873960413169308907397865644229828684934978237595814719941228434249253920688822528671863187890822469347709235942883774929972002309899155450442450396449916723312341370072037893238130916349504631988994040201336268803713970498194761755515112934790356776522998854884848388115870815402619564640415500866846042939446584509640635305752913843375431461678383316270256966986176526375002748120303558565203680934112464477949495192576850587263933883017487840819282782755186406660480154231775050833903897848748936846876029736146250686249441609681682036978928471824669093552594999126647983624393684811592211125564174362922420121074144955684672992513578536163163184360999739587606860143306150145916002324151174518138503498002540928609209881226674954411067265833123860825851011822064617655268053785528198370950186997890078635756667191949538457069786109927229178340133427953910091817154453803079653586545480964005456433919813446616313807222006159457903295871002182076481211915002533646200792652581441236619113840076454068858162366700326381159355000531580951415284601306039003035511404632726011022897924330174779028551045483565422517846086382624267039638744477900097036705837810828649205084621410997418076442362332520424195532734517443588402411898993178156119629928081449533470557924346780417434470328398306281318272510429891750572577171568208825641951990915587670704481985114095109592498206033462378499673294619394349126425988367688340863550749059038377550919208328614166142647995738211860592638375140839431145652006001058889575510061432138945034548772150089270969057512257705151547349231177091570385072901656276140125477349175330502324762676657068429181046998533637149296497623608156892088220090709588806765973088599864037036305839953011779686332186635576007267801640291933395954703683656116284657891369284933325659524831265393502234455429410045751285522482039359338116164025940286045160874857774849903402482254505779992993650766189357798032993362975879443525986185655004520334672576284446212511902339307659552831441382190820796073898588254075462869158223125191532805852027648533461737678098900215721321393259188292883174086184184427941477321467826947149560309843029957926738614732126521162864930951074630657327633102298796790763292404119413012040460089665795620578192624044036278031761256013643613517299181865165807794553985618157110239184401567808504116386756162812504292775625569189455724079424024037563080391532151679805949126274335296361917933290364235131713364046054747766482931942600272685317817131200553945377549664573168394304770233028456192944199684044147086924455719372427530047115957490942548363411599312975478705725175575565122762026645688638340837914546676487258643943063761160322243187631288659220693328878875056342891639904260805477799795478531860920793378249996796152869257587447843501326408224342191299452180488052800545244978118091961885359399296485869938767204841166353752922754407823103840266307095751689996616312508465222318468190871563627521213893830269407241002261943166485666111363729709243022740053033193116792154119644328991620290647329956585748029579685129734662528700493730669021665466583064600297918146810233978303068297120346082310612956480346922962195805782516679822428266481506555959918315232013941542031827870397739168409183686893874259679998328710535999110719008183655017733957547204895570713153576886117699416407092718897415266612600201617834823997879645828198417529261053736587678156140193531145940702121303998895617232390541912568894624732900039779486234898230961409864633541482046684698677760267550954961649007009042854967216438690646491142025190814578051436130121768503570712421668496009521030281106781936398947533902152295898541076122661120887208769127387384150179162893124049167932682238527016276903914122171919047448513010565587403287649002641917173699112449342788663562528652310262859668030479047964076744854308526438058814868226789859084639378518871949887146853941381191690332544711532018445075826195369862309283873144661469455839200129649820420926411581701299650050206479253133798722258939629627924838995763708941837783493234706676865847148396424126116502453999375253379058703693695616092262453047701835413396465237544874264908275115505569974551713719972488344482799383684161938475658152088610477381965797131626851937530519976184778010488138882127423390434491115211230400916063290992646399432210733918320851722485556005294955318427766526877190472386919593340665731465973701700433413936183835584334515629633462413994302944569260432611133703507295986473993692904750330698642578292215096021803945465705161325760633392715690812147250350022843302640825916381821516329285846750621092614067986157984548898549592544707272160771130097938005478792026958476476279553482135874625285619652417887312109001944146868205467490658614233418016701351091124134168065824268802926076156580680797886703958631716639275300277769425202524372804091430498556828676040904263134926029099274014332078487982602201449856729400923460341029368986369511145073574485249555788070545558399949037724780647494112260287681515794131465598167448898008508163099058811037202373426271618610243892674540310747366741366885572786638114333955096191047336296349143077577486310298014663010315394521703154364286766630754063942073734130791089832837775514554695459867290689356814392442271985398461830307000046201537536223597516164795762207845483074395011875853324807055558697843845268090989720307397596904098954752113065476918216429395705355544116818458594341684499320581496825446104868533024120257348742347210342525710091446696163970187997104619814172839491600672046894335497844851105904935520539357083823070495412499333688203481277226318156162775379609173392364733993920477114168586686528923156298362247099790577385947720377916764322756096316935427606498487864663544085264004583074788294126627860184830371413194164776231849085589241014986801781127199234898438667743482131481660122312548642125729968206297862366874070703254856834358845876356046571974569420109130241565318392303136161401868443811250188486262030558704917839462908453590145870441931197419967648107802556424860931594515251142753562696969212130044421080139160682361324879122926405167020349943623864541186692812285470048455132100817572962400502631946603413335543841109197951007269838234687338063956476322243651120634567178173264322018665378557042728665992413882915287104017878958981589428449966228896328649285612780327985087191621161364296337813236894851120781240544714638280170263185396524432796741789445166159319624733358480932298033369433567704951863758128922234830209911019155707969132254261886880505447060715394051646859954903089110873080622796675325398707277043632275921048611477138142024008311729617974287344822550116919679339327793747149099488138605241741217984969070315058598356916130983963328562142485228346018947397433231972612081070789632481312734013789725297490356532202433075512878982031946224727994382415666089901216952869332278701299722874173041933831375879902347700802216056441037000481827150574087187595951519003054898365516901489362115452194490458903341111234881151489908446835595696430312260951562807946030354725781098131435930539028925075652473172653195749871855259030904169776795249216082510698773293455350406567228408480845443539301376001952586348610786603093523731655976494112442803596550202900941074329646065124634542868443758993298038969099230176045414651390241888033791775823262930447587679542320071837722288979703694420545661179129845435963301898480512595345755199501597573649772814362887814436906878272617046646554560806278450497623138614453623698406145297623546251472136478564539449629742158610848023253219358771327113405130140108385136627432588885206588623751315862565776220239358542462293533975578057306370324000288395870110246706655237712313990005320345481922539420403450952478642204509019938291571807213644611954884401295535764348421809049290442915458043606114006352142620415432432906973888345822393613826898100296496859435725493904907639695957028778376713239004384014463516043835280390035260704426595548275412714891255307977094047541232910725594586458127061380136773352753767200810301802251744587017673726323988056359786891234704859888082524944983633017141699359116631611153601719368776081011773289431347002225792551859041947358474877056760129452411034758625064215344715291760291240955044625583566737358534771547578809885820501277273584609503521963146534271632484963752692949240309854772772532232603590325815211556717264194620900081363562704750564153445464291886643206329872657223379408888268894637901522355547431644541203750746861944565114027251195803670674894386981355509554746514056904021673469861495985685132715751866916150966853171520340469929984541362215964452700950796506558010699191319466179275743414549137647370409998228519807129853071688120628588897791040384022102178850512172432874386914790024733406977082135224742048161867305897986681435334448237986307294630852253242641233080986499108186246165702526093744688356832398657903972791723968799404779664571602343306904410619000608873454087114402440484136205917342062033348809625779861315701019823887305550201197155994002597473572405601102515994807134446852554649272758198848034827347580674634204965282050711080569229139014027761171643967133445227473426351508295383369526352382121605750615605315720023634815062071915604799703102714377494929837995372144744966952359011069318687749267879299605489583992003412442655454521013431195646138484640413121984847305396973014800161165104804625069702578930133435108790358381461262241705735147822553838470763788014600536997018270680992273363646818277033352684716761660842629424112936043266324981786936060183281894707543393356244639798964916073014641615498195921350628338302058862456033309352224902531612673672155914682195104128653611136665929890173520191399673180770561960833156641254040171614004939410667160920533304099405413547093430765936697203356630333252439412440359216828617797171915349320027821731135602351504786233794611604135644677027252777086253852783076184942274089590587576088174933458846256635494115574380983636386265652111919846591764255158365554401071764233952863722907191533540296535475164663146747406099554080965075180665071048375936002688125863279977796395771487782409800970064385431680479972906629460162785195550518688218271367256205425691594073239374886093135965157183576848174371950288071548030954704426478287847359672058298551897352981828062160221560592904009340394728654230723785117649065416523293270562091495652978493938166321596887951259439900223826592422994675475605961078222008116200418033899996692626046283782784099970006388907154326104601651629238421966533950510558773169839241430006345697566487834813077213519049920918834906329234799185204984707004855384682853381528723100331368603699750360357741674832107342710077120742887885565628745543610545026555440983174924912118239246241697182267741528027725113467600534621668341830511483233674536561906017097782454273134776296526379753924589204526457350082502564563985687870290336316492857800181643131653312237234897931241202482035140380891350463857973966412737652042666363577037291671733158888872047173876955246118998905771159439745191442176338058477058793607068906307202313790923476424480507438101188327754045773201697157428038211850750881336318423844654947303654576041818209608700355838452584572628361544087064760479011793585271420198783080363488523762855172461544546235495077177282206341100537969283417491829531773461144872186836769186801766815760745233106059583683249889892302306159823977149445907582243857853286181169233441989358830843350971954517653134525449124088900072658043398484420029219387640242805341047816095535544254667966654251826844518764600146575948786356548417632789550667957900236259495327169957791788400505586143573100025830500395424931309654781687399320374315133806737780034437196802941041967564660068487999856639209534720794451006539648396476771144848172876091083971260011010112646924542315467585536108772225065677665691339491774173105017048132824668097697745813773788267569989457268202971211166856041937249980334669741865958213872681010846735545806442716946807481795556930721448538026579846974215127391015702559588552903002186723663046117323896819304740382528070090583693230527050540473166847844613526746275828659227856994883643265789543410405276558964664316595962683050065621726146699767545282561602295721466001319243529218377446079512016160017948437385883096756366575369760223233354688836368815133157064513713116362923717591861135637943786828915034172186619494594388132213117543246856067813243858162088387697487160825214428884593068900808194032556974724189610968346372073983867160500795715548783545965791739789857991435569008200027309320840618155917485944719328765984273069339025837740792911239841453189637374804739466243221766148546989014342242415659378883646325625097990548377280729876583390986656651000574854723403762756057806911522832544108857889346735201937194695279790200556652595463988094795834020809140376168505253332697180414507828831625512068723406491248259816308852727322064314577107506746740095558060865392872923380616674645639508604287653569032446452817606582267053279577547628671596564384498340155868985807984433792802939664936440435525746266097737003981004369695121781153083336888480400289634852757166457370321461129076777465544040243080250123690664047286638104730332637234912520287928070565996791913378230341497247917027288949759437067472549266093523749529005280171572856162951010341725815510009348194289219845758542994086856986522682572698344220384341048287416127916988204617317295482898643060899791995003004197670222228854942516972459999061206001192459741485324289508482340594589249988480198412593547726992171199207901629395545638690255877491649827364217956640595366449617902607767963531524505103099954376686503725673497651594051767232235608320602036862548446435830772015139583360039789500705187241942552498767049937354225402085924961819877616585424595282847168096755371466596563644276952783359293914488365019635386229977607648266855775855933502908446815554440255219489838846312240673385585806224671363125998050767812420097315564953758180338661868673150736383816888499441752758409002947291543855470687538607981573262500037358357768845041575775428812765425294745184315420343207322017143947487273670399373809164901407855069019204652246769073291303734864037282163005350689070870071394319828847483709212311830167334728381019530745966414057528560135062476445491901746949052227759443476233911338391885932481883755717328617872237874887730726973908694240899878410264616442491066440716434956453594107538239660648721451027375877349817991048098806281144153810610448907472196919947256975414550732005953732573704799551239779447572579357183098483422951827333126366153546537388580691442637736766829556360590533880979952491403759030069963606702331418138449175256759932337248665157835608073617885328373271542988351105728023313427512470892799089112403170937836347036722980357894106986971273347878391349795210932035333686579198036633795773235775145975933794831666384634150177510760081941120058102315282039680447704403578069940366135234991373571703232809595907354737674727035440114747016757273416447708706139746900579831850090594834006015652315600080070568408610553120073713450181843970895941059343766421591400251946871087872599654406923299592936102799606315369701355437662546432639847193876522106552116611175490567895267753682561498564043995176204757636102513148832705259851922323650545724358231091581725934676318313930922328542815316483929662841366688934058979507055895034224282947652025724042959616202971423714702387251865363690548900578529599130193781376402043302576489726971021337459744399064617305807899324598049635553614171676522192864449744788978702182239228159736452206147325830663519459699330852601287830576614293393156797119675988055842267923539041690272202356222181183732474740040261141715079888517869498804938807914451432128388124042719589091198837500343462637528801042798074722112391478573522313092762056545374274490498089018037426467107928494447513657707766116411911573733522274607506108571896330668587286696037546588392103789226294233548701481380468143785935093484365458732359382389017754146903727772540414640657937809931827612146541129548526347895225349608767256722186338876550011404773606645951540310091744547867048445085909843581459425947523077859337419547335498670247073634062496877005058565212504603110682189660663697280191914809465420360123075659462748793173645828693907653117437530147955358473597666851898916882379873382924279495009360285838669083818497962448592870599342379695889273801480182622673412707308190247426997554801023207190392778610934031200107023489273817886900020341908015518391377224789414715352928996133971388752989902411629451242067015895955628619849945804243696952517882223575555676274841228367184300897694615760525504525047691625445391927865481090830668798874546178352039134846573362718749687853616123871940764714441440117691289077238206471276552889433825733936732259163578627011709116039087681768506344061938343139073510493973221508479540441638484204137392163284979982858039744991793350780541259976306207101606542646966874028522423239554679904176988230988332309737248426086464180569767715157428900183184558934729544933736658049702251975836534485697048055452202001481854966156564315666330609297964800065609431167312547537749792694395877573626528572837639829104024137838830419169703097899291273398454007090447038391674435129608083456173183194418433125246787810072057994676212646196970751943107796789015100679148905130797308916241838778507486162888901034814899984469196017262559740393436332967389812851502095183006504110841578376684700677945881626659998264224671950344641349330940400515034960854307130024016185722324432137607861618279325841941862861018839597907263771365919149650570095988549090500996167980625982013911093518488485295567671707617162967916966271989660130864244275269515582667018226124646865722287875711034697893706425183665012166156885487023972517033427059735323163489214615374118733639861749303186753314219393951409038933211042969825450908209429816145774342552711200825132683711412926850556419147461138653338166930267621946401759056009381263858335715804831907471713987330163572286198266094762444886731795281145586048182265791996689476410108235155390216235204729521823956015445316954256804907231904697316158541565580523349413853682220453524735627114351028827996141344384894724835717980832591448489313373462578368718024156866731102039899698852239874497939640403978038134534673013601560433342736007389270184633157942098985093661859991177864806959204632426173821164541459477785841420267739564962341672073154289593820488530618114156223531473851708602420088601701431738914007176522669205411876114835961375667669715059872482406709646237076874901909749420997651447593222410725200267837395874395253101551738209718041167062030298125220902350400294839674084376151309938737163616285350897575245878780846210227970143346138687976824239650514242290579134876701129268142659741635103246182014049249295829564335908643669278312646157515206702913074515095831468493914718414095316483655263446505796380375833408763132622901689059768999911827940002774113113005384717347844835398127279809910761574717703849588501571642221820677680627054223444110849827251306283036327234552001482741062835331961429281140429161533120851430848490825801183159914902096232477623733621479580664266224877913586625852741420804303893925995468538672316101526124518060472980756787967099660538282977978337488437380399122561435743963031282356404199582398306286120435189045505326202046705367971660097483387943155721439496503668468757258766810690914644068193058020679220714431932505663195633761337091998891644229621962855135978480972872611348534952027762739521093649832297649166217728978746766816277667057336080390623324883441697537910600428896998728908854646633875399456139588986943072037740599641614098302497438557048784243608911333963008191097052371795932895446032066355097066139879561451858207558632650983491852345122268460387126073628575012450807435590814088442896212710999519624008403742707233028707733158238335400774834544478538846908527059284753684847818903139303146379668835277170698360985138915867088173222588551962176220243752769721016493450207184355841242027203407993626886149465408366119372698083924750152803358546808622682058691122152478452189311266705523464138712071473914731841227807438850079739964339550511579390954586629120036433466964803509350006515836631782201069534945202593278077480293393570213080975673794676270693042172863652609808041986958348506244680404612395541615621658421173066249117950623151880428384985714397711744218968187801889344396388161436440576481134143804412619961046002911401537219855142586476330373558878005565215880331047049831633070575811902859842651938833028549169115371292419872261490874229747928548777120701585994862161189121822934250448693101186499010289483242987544684734428910502932656570743695071103963620836018549987571610895856373096377302383837219945504203691333933551594814581916546609485359517040873849336514862572396703990211489944154353335781104692791311041100966268482515959817792037292308679196843933160245600390808365310440227701150996804244752427934941846548071757774759392051487891288396687551958002866918613733513337625761429978614623485594927530901712943105092284939133701734661406702871582315026455581945937756009870298421685939860677586147386892322133219564937241981743517287816321214023018849715914866116878677184567096044555827408766268980491325458847444311600706639568038372857678257895786771574737543757563580260857839846795752663241426475400436958781086998557641682214646004002838132145782633818494847547983048632900977781218115394775277798279023975674113170708107365548448643575132768873141250627046286510221613307799598139743916900083571450415372190819824194775323417081693840284648549950117742427543978129824698193513446753937598479201616222751279838513992509921445812431834003532434477003588814397273566329763407656280882968929450987988316502530514388296459119298153102897127133229621486210728700116063183076550522804755693188395366340358964132510763022605940430501709155914835956096843836579433745955976561719220431991040565730682861151103141021649714217877453799551540435411575859128805213970938645390390301787501954473718610602064080336868933435330562600880604564383691929744737912680855184599837013774977705155544950188487997965515453920479663601041818628986511494510738726890836906356226711384129202721674217755011054171659843899358126733995500764477467884742738596668812441997037537482050578127573442248811221481335665767578123702753453055881115540136679357592376248139346133008990940780862556261987851262613756810760468143238426783429913295301424022569197661382016280661318655713803662845074023487032676697898314284835978848250799936407388584529656683503562133261181436228858531036841027202524192558166368743112921383796461966609125664777332594309492892049752625882017165466736013612705312817357729238021769931849953775988388455271543451567556063792478072535418970382945651379057693212397417841353692193890030852444480075203338425007881860954764584914339368929238077070342361854016670272857460655385078644220391992948680007859775155971555435374242477767954595030860989479172653944005957642276765755029784866800677232644937537441236299203107453094859727064841013612479417113357920428312414891313836164392503423153255285672010508021299639825986042483408551233450110921226733299414853829436149033839938907155301563426874256235855404606667198305269313208039720296304735411658776717184557446244559325892066031079103050208516273610205030641306474969569323748055799726903625778005631453485000451455464070572796774312191476006789074927954301456624701706043718374244116314340310543070286502332656244150563356773636372200468441161499645904802726399729590013984253485196880828327478673965388837841381537222907597569233014336045245538379627295247796745606851099345395019373945329401786375019558955576400249019764977035102348634177175006730126675144137230965577736634785756104222124514913491538486725634338755409038641772404001225425927125004762327253220348644982489075465780350898026083877654656419805157022844452656835465598079423871079203706992066964324071687816420018672977762071199738550710568083759083591044973945173193615191447870598789462146273426234025540456770043233427410315279230536465607575968702535829342472791370863531084296363536451558761527313949686436407327160492358258702355559087591971129233317875623930768076249519709900758093110083348699171886097339379117281240592439213532210815486266386042292912152529158723945875827233248723462258939083332287375080999503646056726042917687111504723579115794205468885826022812167774503982594495418624652457298844988537262551844006772831022446541560747721563009276699203768065513594513444667352684808558252150784948826002737047896022656060325559171469511542040627525804318251164071390272652749688459802236213049040516988651573737439188090039688196450020923018748056223018347080546179192726658055121542389219586567747065052203270983905981210761721394144406296495558550279339994172099348384486133861654696788637820583653807941951304966944111883109065388633197157130591134241320796734808612620484497959001302094086639373891878725141522105934853704206636672918871746621236114965590664621497492795156677761271638743255006281286504730312724062373026300973985451314227101613740283853203714212147216742924910037948625188727060165830361889474030531340625126785857940737154126120142700521198800131914085927701286354714823014135085545326567340021366360143087677948234411115542188410766205634680708191239555490233148658715470999356676121772273888811238199493082321341604894066508127903074281955350623271995169199964567872507518706344561577098391661021452989336200771895131324798101241231692709785903077933443023171364690379513855046833535832908486451237743221499797629246344646558036655549910281884709436183621782309481719008565082516452386957119157788119483430772685854097090983034753805672954890496287874929367128269555276682558265950401611491532645103491518415386791849561807898384586408668605845908765576963248443198302272228985043571853308859401368707521183759679435170503423940152593048778982266686133565114808235328229366088074714932315722062267926714368804527054910008376801612070179513328841956180758236765803019113754559901567107981049495407105269213804510634176726176518926575812616582469241793298320005908711947996480068106257455394852133875987169980256901921331048491506869026425196567653666834482045960033788304331378639120384159470284425045904418469096289033478678271984325124761971934713535845445835713249862964215374195364104248670195894112417044935260485724082122134079370920229087040462359680453641614541948964144760336232046647894719230824035413158289092667411024878847702973467131010352572260383778840416404922929726535108436160199084343178472294148774167763860872176471413320313662314916163787094544781526401435225159312718598345062477004568900020600207243200191344656899788022626906586862974059162328637249392765136962128585141717073388239028833898543422244946420763870819996303966409120347021453396790571118487567244015745750212434403239965635050970968293033728880423874966057530172922942394468814342365812150118851569564955866074831431095869130592347714748072845967177702192055577494906818791226497425901747367396287094504805087702876735823508314724660978446382690940623059012938465199436951049650380954258647988449159632713646305889892651677253986425891003329130102947749780878256527490988813868156633875246305968069379748543752452279063821274131097539753224507089582921903699522363820809791342084907004344067941341012887163059760741306405778084210318245877472169828256013065469272757581232171671505939471335594943724711450565896279338377810609477892338593562165736424211884814101054033974199697756866298881949869378896469425315799481987217692856514501506649545685373581273747098686792032585809354861797181583601966718038561968357672228343035650818761264481310352158414086219567136669950061676465566015843560497325298066081486649580338415858886192497508786815788591909552823086384819995344389451494249306205378222216225507398333592177671370745229196776960680013887899726062269564107089487047472154487661597222025180543623422474335926384601613007669093819465539315587656577429720860217401148864464832755479267590231968454845635794207600598525743184669814025775499344770765141767414518328599454777143754398789683201860810384684773405705303279203040628827071508808910793074142488888884194926714827690255271865481305946099341089457065516651721157874522704018914100817210540677663014442423531407662219279105230316945412750918410417640576827670864899754852712993008712101721832359825934846930540880193754486203515704001757442840872958147403341043429009894638214078188202450318840257160575421419740359201629268474131175038767153000394452722979659570666188103775328081910750900500116226813868188121035442737073529173272580317350794989793706656936991326521678689691502773980974714862173704172405779502527654002591072369073035076096131101576488704608397703897971831702365903355806827805560967374389622203298595382110436546166320054360741218338642258485434477093618977630935633589310944052672325184656205067512006205480719992337712952762222949805339065753706826048739851449999299310021800970215097264402535846635612748454862710262304053272995221762477455894541659943837446162447774325926652251578538516107380939473086028296277980770334890856406253290368766511650721747846615502238359031377709368927008456640347013047478882933538559523204712361268744934627957430158031940377653535357001601910806589334374114860109021529502766747526482523520167503671540984773217224394287219873417156419109677206860167248621824826880084793827309863322791801601446106617287000823883773398993827692619441218780983833731218249159818575774209829170601981852646782815352821409738909706228496806890772362946540409848433578140855564945193076681957900371310957912405520282792275108271736522801808747194789872992180327185960460715897118573190500401622811329740025622859210330133616832067830177393233938466023410604304651047738824855001760053970364472465916402357916482602456699255781116841484047753613019383899581138362074019099392081423618791430472907133246474231094171152743035269641084372926685629409416784038548309642693024019684012617764191830585492287976326747752438365474970935434231088649904904078207715218976375688006318516075254199151188042687231162773115640680202066065790564255969818430875002290262109017901262772243227283371138283942831356219924925105537842025077554684299952686623627494963028072080706491991503276324579052215665462795430492368809501873249752461259397005063877851730921080704199969738168685253088419850971586229735510074784389626663447757385912707687616665973270367630863769201081031230134362374488449006245475971137360601398516941785894988750292454314203557484518684447668046500507383349267285612999737945357304439466933032520977118796164488291748464235222408318922719373591856533844168050677300086585339595402832288000215489256216096606131718040010897352786549096477372637514924828729039671532862339170903517935478941607755311407510847941027726982133691783104522617075353815869063560733459546263416558152109156397735685203495978666135358759337161890359469811553914257339795002480673794383924756422304452636005033213360221015581215677677523002246871741884287664628937947433133863800506602254220001950643243267717622133526961866887819260822175443175991815372245316521355106607353125671273181946011500403566695371766565706571204639569891418429968509535425531899566451653487031565300722782999337472951160326541799922286584482475421188010616667102506381857635654626621948934839958894252487172882552182590323429786696501759248096757575800254264634549347085972634010929766663331391135005033678039468630217188960159204101172285769641735206678132351094134063412155556843490557145953291788816279769427094278282979861316635546499038991675235085006077572345769383789649458567076713227790863531307691865915594270729184657015469764299764602934944589788930450751396997283598500242904499248236125446562168656053899741376757728947580256532405377300133221122923153206967234255473872556557381259499016293683086894426128172698604337192207495391970622130580600906116634401933647837708008582696623403455287737797669452513353141978550473605636297116605182861483343064581552127660868735795167055405838872390276285337511970841346735130534056863131935151707776851554352429226947132115556443972211643420532440762959742698749172256638805393716848017420961201918249951001247919840592592068386088363003000459668560816832241057224039114030029830149926674162718348819003977887329248319044909066705405223418287397383510265653055604713007913300338330132733185911041974840575411809967642125702780519757436924026546007337786011232177354918299973124008380491686030689088633881413494184860242668488963343727396898174905046369852671538852099902664690507413462978220326490153167914491614009120237062416198345950064715498671752098240683832790056452452338770238314718904439768724545179672168306522264936708985375508394419838616311782690094709607730492607483735314438372999568746965197728216807506590515263392331121347924199943928126511427754624650953748097660661897729723680374976029183548776219916714171875126822736762871055896129196282624613533067946988288640196667236953853640331937534564027199131728359649292267414363275135507980774540436068688006891814072955228442925680906529519904094680567633105648775876727970136449484551211235754700821127110631155574212913480163468172410124489389569283047079127423623394835666205285881150929191561272649056303136095428769616394363246179926252979111410941803606034334299257232888254363211248747122670435421419384504708727382790828855386926617346724141753270524858356593389745156384899901185146550538719646011084579163926622811423561964923306225449875502504333349081813511195809723757558798689835956786401738169744191969723196971421920656009015362112892647163220651972563921690015354166441588443647835046016515921729460349985312596758875997909179608728988438385574305725467053559266114684487633338838679022048435205717013964960216312777341771102626660781358049299693265870333581261544162441379380401530745090519132380684255196405354038936473824470454358558257681154356108232029997546362338099834647859469978050762999731423255901833275924042700936941441726208120198942589432019330002285660597305628326725959828018332446330148042114528070012651800975922530119666849509478372652441350738266302649143220982591159999471958755314255267125933641465043923920188119078064144413061460438669937814268139312568050901041478470002370759971176548447400399241018969796857813935242260520485130556336693923667748573763236164726028723867241336683408142050400467573391675056410111951784848645359958613327950224349253957740594739236297746811246284028736350153780853016704311690629992582599675465073917401215775405165745800461717078465962189629429199073193074402374433471392914828070778338508110776054034684216233602573702763968679121957681073022744832220698828491648005214749816427124894965321809105841993005915734835737492195192467837155873379769066334178290846534628362975109320411053021369328432626829220362007590272269442625117191420678229891541321277130806000511384221578783110114579619941737463097489902622852515233575847771243982564394937925340486120626586174547877220478190156635522886954142917402591489068705246904746013780887907624550766860991616950101192944172833893384884322268141534063026231905521787458684363304258431160655334211365709353995287118087259799213736787070195632648194933719904462902968717290027278951045593375346786242045422567994569202803206647192950441189359321089637898883775961233256437326868164845594293782598241428221453400325436505048546219819031955682502736430412842485742896133864671501893163423538719075846237225182441303509088342122281081571332395222997212146010295645228461617375729425280469658069904916369959001663602073252342886160456351163991135808768497552778565028920372413351212845961268788737683424671674706219131169214561571640017498756282735643153041071219149980197404934569563039634554062592705879180385744236061327669693033977917307995115588373529094465740935747410198329603499961398663087679840746951080585866489803177087044733481903649797240237037269428118915138672427326986113755553206396657625791729601122452817621805098298698939158070463043718637073513638507190627298331099560490116600532906914055043698711804126167464603944473522172308912378201211914276239792551444327523939677684215401329428230283984035431921571782691660216336240686894622609232223370797658045901396278237338670034344337181496654813540852741733947783787853652479429558509212061097403096026962847138514442168256280477907777214076208593074651874727725679702207787731248213979189533916871100608911015531958714720824551572107650062662845442466398045779233447916969539065419934345078927815732727033328054167841784785468044484051596363483505632436379284153111015399371493704728631293651029679319904411023680405902699569088727341877281048543410978495769785007463871498318054203173763246269904736881311753573404705483846161820273983258680075929016017726792974357916736544800975584200901958204504904303929969766705763138316064297952973654829808551144537118588285913736553704718323858121266022875672144739457479050040992546140165887954948402755140349683658811189183178634654438087284105375040148687600309386840297718581613663008555354878339036327926418338042561318809268025028734506302214735244573188154909083730337779054353981126162010411022581887615996350156177763434111178162996135271630323187394714518927124251388050460354405926040061823069611632631482318577850061429257000208630421855759854518748180052114824428052862650726606037772294451530620730961468609067937626782011242138193417347626393698733051692664555240416695365400911766954596335142847940790054569937267090714508962014971723180850212449974293635658264136819195009718421201490221747974017424911110992833795215888817064519001822739273284882890263269666754966618043667683328040455060587038594789018039877614171781749539170594763953446461815936758502353578259535112442395971959278920789098137421341363933595686920557134516453842196340349960402123698403131897562240561920123594621067421536386437289708222537324485760154835344702404255456536717826178515743814229651447925167894994954663505973794801495009829252847896604514618124343260261646694867039654094029485011337270072597275501175263742311519468252204833511520341015052993857277982941754483877870332003625325146530487383473728786187056578178256043362947846689320273267233672231314856088662998702367656252382546442758069183214418042444535350162020488107086624977430199394661757088068995634874402275691516239181691528150327012580272615210391928304195314688151769277157197176059755887954682447443527016476850967737073760559633897166550159539129020576923624232212472926563925824905080186506029738908002441236348306818804790030102327741524243024028268656349623798335531408554359234808126676706045102308040568415443244029061194771658312635444419173317956609738758443930683516779914153212655856054267961091710685853763215993753415737169381284939186907174008988446440202974619326880040236525187613611021991865743804776916589497168900067819642502014730611403401688873746804932320347579084794623376675688520151564062605023472507962695386520293966076469665029622907712012197568088241037407045430557758934623983813909417844991946905156332697200443563771900293678056100048073936540723944575369117155367828104888563122708120610494045251494547909858733431705774551920271036995326560668869327702597223251363916314705739210709674763205384212154797352871985034421890710383171762882261877842404415460156743044005295190862105309689448513966637172636257285491058066535232343947268527007293795532308421608394580333584346991624763022697199061032189578470293696498625410508770804582525202404607617496589618640820064449696780101665971074404141590940423451631059791969182834020542352775253173593469909010172944154916316249286652330079371252132251583928639789470264022261914201976156304407876383575243000343590135924391401530798776422089931867772334470731145465644151140520123612462193681987823704392392419096634899515739114234114212517485648163108207587256422990137923651528688198087021828119473938760662747438582331582738095493351613106407726930375905245336620918118023929930925429228059960162169687860022905078784436463799159503119156853661161219896507095851812389870590521634866980694851994227332245265596205807290626839517352112860409755490667439698030249544837192297338295646950708581335861553938597576473546571628478271816805944669367542215912328329560619766905749537823500808168670853627834807387445591315999239004372162072988360602963118068731370010909478422557814231609747431999632037200908156769099608414612757670164773435981224913161689787576814765682197050812421767874380163403083009383724686147110428753162746315782828748419048619721663022700966077416925308993597649074760245320986749340663695108571242397088257975654019636032956351893488229469662675216331299779890164020360198542329907345769109193358685693140726831657088704465253281486260991206051477655319833794688914703143748507354232621638564693798297313430904728221642259552478585905679010286868055999420467987876989295742995681536722021400407865960848219542462593943479394341797396568894490318625101397359075129342298550990539332149337625592661981817068718026124776298843501771878580364180223726357198336508519153697263342198807904934064829633103237645591907182324759713018582195392456401420151609589358666699766567113843798700181021391845268042313349476167918537156505437436279033058723758779122256746837358643265483197758772747057599646604633499033820790236107050451237637631700760490877690901779197410464626387167989825453668502475179554519181357389694391469629085785537228340920017995261270764692688114077317116189684197642904056593294685879740458539178091257672885869645002159743243002995279927935193929998580689612348867510817461608908806762596753114789393538862225155963220592768411873959794108876683637939251580121514270054568177944787311652095188998684465091781899212665779629067076789501278855664228735170411367311354833710446622563936069011804672009017563197498304492791149539900145440823234720790299453982578689537745732192185871835371602465375114979707815189609351444880708506656550925582289991775631307499565941686218381443306855280093760299704053744414571659224426567856407085079258385242967773604171778952454854640757810574296626621219559139508604847251778768757297620173676946147898211111023267270352818923456005244426326342830411192927680118130539504629321985711428700035698817231404101652923046629078958289876416543993378026609513545697464430423903998309958592253311764982307774850547532909921044914215123698563737041092730247888867634412413125398952504685286051290157916495278857707545828708761763047231970469369273036527600687758521465994666737216284865185926813843880147391305566122448952322145260621130837226947422998591549710862837746164110351031120598593607429315217701205760870356479586914907901955058563581849034907130433332400228499075900442198171068922662477319996468076989887859981115651222979201993869276487246418411728329848338674486801205643431525926133348759406213588242132131401182780523626144533441777072712952494751461090734022439630042483486553158157217313159603670392913299580894396354805528292726978072352295379948553501921109404458959583214714035893018169568768487181032815459777488795616403427946788647151168132257786942000962732361104793465002920146250108559213566175478865153735217462185781701630995911023406690158708378841275361498261575553845052925365717408829139592257406563783608670506793384092195895272034930488841684362271844406510833217333278388508162675310682472471061810376978863334124692326994301241933445624562497421934567807888250898398761473233118024227975494020811668301225988948947084326378089954917088932311744313707516696109784583695055121302929000021085852984787846832025137400370308777005444368650904090952028572640706925445118161501254479778006374319104369914091949850564299773616444372913794361897907693585866957254559215488979592736760013407225020174393102745920395482276324430378069729437793566669667510177523189654382815689861282290864961209195509222385364512125361819313503407347296213371882999606023470842316118893401482771766639714859099984576931192712745850088305530982399708396592351290585703960144840259610252670887525554839569167960233383520303608947218909410919512356960779936068776805657599599390323637190865056008006766625492032605879140412597669038339438995709685055402638829093830412868289306713805756660739488507465271478321388092024515557158926496374105121412402936093458361129614867042194896074324429262085154119376921007402516457726321542260956707666497606444783188629673590168644922257253289627539914812412059822671920463341177453461466468364431604982567649019226008073137231126791973322530667584199812082104446183614898588241472191232915073295263183175960761375484063890886958893786650174197251714938976295505134838551363590294675374400816837130336680584165950792506958064543795308921238961704790048653917056151412172588812424382152729485605816348778000007368948139644493600306723678556058841565717419378073380720440782929310322861332104477795524385966338543532171070360271169656297715480041031645044287024750740745626790745725136096175233943618524923964705761215091056285919033397056500145491372695844543234567588870219094143087255117908014183419512409778158262129902116025694592911898327521825164745399899449593405488354387735698815165015659613261893156898174000885062320649070942493994362627913869767222508206427300776443360611805426851282809053948028162872001986283804631453673297108157057221361470149259684854294915831486448751801941710119047585899599142135774922900597239895091556395260301425004612596807243531715041404496384851321598094278868591428825084794939375256678323302937401953240423782853785572991253109530408608946178808950322319531638324509682359136667709598892109829713586044432295846906440457676977940730106464441308262645998302425529660668417503371678935063441603933991378361515645405933954612948130929703270869412637536672311035783570297107826665959696596915486250892741927677285215079826418649866201128303202976402281921651555637258419059315705104617913356004630612091078529021427885978729325603807989563446784801718029964805371737298057255514971170232458556862982587712655422736712845421029059025145277634394208390073572588857692567046658231612715397013023682921667049645618742933974701994710609553308568958167575987389899855452629613172580480652154265916734859708166691202982473221271274792721324760653818640814514259760740981479772268226436133022433316604696360721281887163946547929696560002657144103675639618328539953334048536004507615410525709246325812293115994098183384044983267417580706162295374501860642936974052126363012105785272707809084761313058533282210576094752333098545778732124902096478537338498017067106059464252429573772401964949650436511163974375784560978138384966796896617051720979669989616408249942700406875953517537521208229273818725074292255213959746019411417644853097544780911052479059924603903234672906801241338769624421734551908401370799701875999458063658803122451049189793503770753690258823201939722904131060795497597380588629127510637930066167551121710267478581775162400955828460919448204881938545266422456360678986848794246707503307181674056002116158836105351228434111984338797756903646737586573775843010949391111772660199466838463323485604067476879438429620904237445850460723295475521988821703681895793355951027769781610371386489040325954545631064485633618110897066259921474318444721156478601728600174900560171955388210983591382558942492059236749380328270258442335563798335782509120659404973841571820911496092539970546111731492735879690303274607256215703199854089061273238635265676383360830336640489976153087506118315866824822261475248938045690758088321691069996312809211817887471745779900462619434697628515319189488452457201182362652473227087771506560000844308242384999852996018581758980576648958960321484170618853634697640208014927669482232505148941795703810366071553912054222324065098444440444833911548119838620977303635118403280822016575689758386419174668709384233087907626241559225860943587465659807039350512808198476999664729039298273953400795873220523293328997884426760193666508449610373683039247763579239084681898449808449677531245579305786846328901370103695850067244882225576669328542584478735625925401294305414160959928371475591437184181180265655510190755006604441414168579135460849012179531815503782660880511213690151881772274783184293712105614468524605654210531525745114723346242206753974349000574897724178320296472288206551793461477485187813992714711012554002565102841579079637782281708850584824796554402528774922027375107116325899022727348777086228921302288130773054887044883517302055384961671235956257676309636607990945933964388078845305879948791728247147882896390310043107989195292439761086769516598687523560168381893211355720770387153719093303006981922138658775424134308786221418861537148864769896015925962379778466538537631982054692812517808685656574107213704250656211457337199674288376431164231601797181437180448760843854120626237788118375792177858939370660175648555180459548487941004928455073220737672964319312175468583006858418949834060830432507686550641602599989027665986966845136341927131226357565561109572568645711378404279744190898469984727897840928269988537711350021986914663808577419257669119544786344252137407598287806826810907927209133947880865439584396649737130263217132718560108660716895934300388596278735457906413011290173149207033631494152639791174108115429727651596115632322773288361621871201908567872683073741857671789503831199956218065721942372323798492867669696739186661781456745017042918802224484940776230257326923975220627034635331600730947623901229829975315224112081251745138678114650679657695842777704444857579118093779280484275015123600062234099791138049088148303979114965436506765496548212278766384585392941930941077184973143437928326024406223587441662972060785738166592299315104696186116701559804729487794430606434400185750402006983749662108727569168680862456769691222702393092859015274053799694030962853555921389030882603299555493394372425396478174687660246375786249578750068438479936316770363287895677621116080819654090901372931225934595790697445687124782533841054686211179567514170709283060364816075311980339149029066647400536903059924867552468339033976400479577135375002631946159375387686166107638164143179281670167534062203040449635180995549097469185821348844819414526134643854303504243061302663151880363640422985481852341669805642199011145867668146854894998476943848227040785823290070765218646149473382380569497637928828520801343387406680867827697041976193263832619634413582802663046612934708442053218883063426015615419916874790047412966455497673219979943878293983074787822222469653011288892592965707442347205207526571747339492129337097427310725911931113037907976450048376818538929851631122570618677192730142289630976553250637248960280475996799539673714168678502191323591361291954822382708934685824353994592327641251170479741401321951478277447444718457748635209680519161301332985674674990307627598413441626704784194208973275968992457673785111525750657712511812196763156332321899079011598288352144537423900781548870349339685383103662950133635793881746703958368356199867224199475420506687621211746895427728403863137547927876896699465612053251781400409263824406904549488890678646883067822308953372278150548761319718857979996750622074983215943263351624698530320957665086210602122143362821574873450055784273054617575516770185160109069251951554624640569854852460424443920018401416974890186983164290961109854012354956287512347904488798385112497418340449912951298990071135897611994829086714063764646418917159485421179730159058594504874449701220662154380719980188417772763620100438484770975504500787018395827531860776225199550126964576060011311753750126955331659920752455489548188246938797827785564085126635879281912940240857081191924124946082991849642200718116635620201029539249185149594176255456038286890803835138461220566702127771069084237685145401146731277534010098300794349665188505128908872913979247720186088261026534558997724668697808198388723744240530380346109338534012871216544616413073441670587456908855405705301779293451071025290833072815661378192181956772737273009103369932713147999579076137192851286530373394347589583096354612535501608566856228302148444449899687093320112493062208382907754892388699740293274247510954092922662561215051394264406383030403757722775323825083538473811876972808912622362290142761851005340090162726744181537776143275268630379201311024942289928236806210186498272695245496262743687100254359749138905425466941362087103159305588595742588306346646769339903293314721764645663690983870525343588920632159551134098008803018038201332658559798623468656176995153635052893246032847934411354149889181898953395818780579391493545036959381120924287071680831467356498938582343079468031588580720412835661940242089394187609019842973260493496803124319559132345624909719213344014918428633893557393886860305901263212678895973396290898552582421770951354692137529734102244604144760042456986749989338530682826037725979250253819916839804313323925732843167732380797896086373567421457657479017769790315506483432459210361732873698958711885379821028594663330526221508967114389993324527178214440314065644839797386485532146532939729711837794491913262504480070935566860849153413651995515451996184004398241887121339517344258074197242536192309556912324104129971877902805040832623288642359709429035370478525186182068733402180604515771423766556989511260794382012703269404371121021694880008410653337082225505933409623596257377183622208041814157444200404893510298558930120701403274992986321549581771938957084963320700630171132785831885206163563473434304642967880545227761571871523489192674437670494839388289288524369723580072766324110308210074459610021239564305701095917267042205903143165044414592529713339132804381796198725740898635344952028249361608702168832574790830947960040679890482565785661290134029427456985593180519772954949145179252723462924996422117387238760805617646808723478294231729397334859317256669425162957336399919804726893524723319870852078927246194191525727115685320253489233297585376330901840652504249171312274265428259815049926441927761568224669681352208883591362011533122136757766130278630305136427005391653873459456716485011055055303057437717472945116277061983717622689874571829351573047318483943746490376154185826683544562030820920071555065584896777642990525908873942822310092758922666710674282415453992544102408970844404321036554509102911630801589467304248485542881240506868446849611836610702146976012228790533931651537398496113143649683963571491745985510574338656560807812000069535245693788450997880116935189881747651455982718286342258974206518936381273104482713539266663282046008583273123778388819180234906952365866557305163218592897619792630275256220778936044725139582629639776770069979692462470015247822929639380419519050604589956839539981014987368018372153871448244966240724863650108186403159152325307481734704249208932850797235680215304143982557106637726617751668157849654296221230818534604353540592945170296046977939016154695698407518746164878240605024263612879934243189214131744663558530902569446271440562891236808547488066205703995191819402694875910152897901169555052732604185957744332302538356404903321615842220585547869197084158940986663312421055547726229669289266569875542020989452025508107398530665721989461156286404303831219939969497164193581392335235915230372900883378616869756750289922664666247909598506993775542927711397734964771683826272988714407932475346182275865071675009143266705905969285848523527410131586246508763715136570438900482985466849076714973770261118009458806868337397802672718220740691415972492658300128675819397110285119464241092612825783846429823229321922585933964207764430838716394777239779659817769707126177104347699038557037378937403921728907367845130087577602901852705031591310728582782431205074868255935763732060355173736545273633148788128632742521227856178092615930099325623205807073466670297543468866329736903292498628404705188961643062394902736443801457986530341538921471647762161355395225816700056400311440849711079156166799474562729542875128178727124666526275734663060159324861565183273735025862403367994427534544457859459483850436512622556737616325733173369166299837280957197730688067319947281252936499130274322010848724860712196972687250344865239291400994946634285568058569389685130666330087135341933679150501361423388036088879596980472794126644937286228846842553866922658130523518901631148991859156682619500433940303930484300688823133204025141167132758705517466235313641090796048551663120053998592737717955063557522356344099972988147586472153036321769809203047068306350622436435891865547580884855568391593685927044785781632101983510599464186795527763704078036508788943332353027143980670276571787444059017860891906863249424513576300945690562101128884153088442599534559823157623401836677706756416054977971103186276191180976964862270072800158391815724617154956041521315209909971055780246898042869556189703004232815778588028799776265421327136576127918669728554539182337516997119771039155534781900455359522952353005118742517905629308626536687115083322487756799649071691862103711273937216310675343654465507588874465961973046466209170143753609057858582023117934373450595355309304553678878030550569803093798424842578211953906695020025058088835132798748441185293895604292897412770975260110245905179652258073432574427403919974265773123362366158060168356615766993643802773341608031609764641348630703255508596668789501876316621538797498273272525282618141523892381387949890597134161370643366740173227392324633363483344319491598111208237436622978280659685013991387093655497165859713194166082484495149746747502331887415260977923844113929679188803564014329213292310659303756296781539929431174889550018411560200103514070055988529085235855507410406993170666557543317870089397014202561302860893695713230498971490819697055475831810905915217234747815195139573614630710111280627502630862859494244994544853330722175292147649830684794481156541220546837260977765177353883766612239061257671704241337294575765643644903972579016727635479124674636562801559266511116985408789679076706240487073630840064350584833977955562422911028375121500250793276752026832669064941319626816635778108513225918667716759649281171373895277187742737095276360171084990892855731238703680584257921005303668187988426287595083941919315104951229216653617264836192474860886520814813946793339662512018307399432967120835341211311554531294655062684123942042198888764927136137632893712780541907741817401232124117383424602227049651780727560839593829377209045997296296366613979562711986135076065255550659427503509505320277835541725478825867384991037670093344378281914295661451654992973633143044344179092618378536146206185280810414974960934755102178238975561239135076289408411344361108975912594943327704893687328579452590389932919450464174013520021011445046863368119999067194763878244481403237971566550458885905016157421999330905084086544588233081290963294206118479123267941815088093077398755170668765554473588364021695623086945603810210757101017181788877033092285852445536338104209812546606081068192403247532365104455702670027177105188287418594922886481682064463843870329405949885030121118394307666153242598333658083102198357311572839853395918406813498045703434249555763179018622930645090612476851070512281266540650803532618551164150040598220588077031694752986669399026760404094055173071353526504234375808541432681444239900624483042129937398709055549096036213954163495917694844790890897443799197106833371129883392289721324463681497243627593360882789644368758012625029646071300976906198308799723800725699820259702963015649240932245070837638892314455813667648502158940245306690196139358456173906937952624915621806837597812324247122022491055395602658112576368142971375894570757846404916881436583071066754096827192453194452548436220711905838306450680316545905995950438602216942827264950477118042466780625377889271680441850686780666352037901891969235194895126630830646777011051304498190998715046508628961177759457179638710153347091204159500567445157785207412162707079262211368475847452303006005306165819882091732982095460812788875517292963964733951372356737733947514659822303679695876260344170136889914356330432751160195880287165075723752637640432978910737649685287368861944779570515467238980961923071587280031806825019067710163069936766446643732870074944648098242288958733933637845001167003271779081542122855666198607325073343819397221650646276664202112743734301123591309210693517736303762198695889801615605087622163943214157618660536589035502892613941590117538575928984433198248816001119934312768932092240027689290179711375373702333655693786254028548890044217768648743426309343821563867994927949030599529968713359582698480889727707317550288942039124348912431630152715928922066732693457665532712489320711916465216736176092811237996897618672595045054509817202616863290932442199062276966679902956347710950395684747229789735073274851279402887263490515719894043753701591368165131444420797581164957814077449155536681392177919101100427036040995457306061751215392491746121084099826403436077053533729564713231023750406687293206378606220762279148293503162289534746873036631772984683896290567112783179531354454533317039422511690052230340809927328729646377528754384282624012447028231116742573995250562611569438169071677576254501818633335741610744633307758548017505974034805120278476681393579307670568370699941530534496205331336844571815119552718322772272581500499380912704585906101643962877452712825953358279936725493250066323163044831626353178185693410895955609591787860429094088543228436418855019912369858314406846256217135162144282835056409951152090927011346692280438701304858762697673969375202861125834615644127793204865167957228860096955066440624404012352610137201280645933399023389558908825120320903176287579128650900216994240390490720346644866028268302619061760252667845850729172776434952062252302548966267765972461667170195771739494278754351841212789252821251549230771349773306178523176336962196325533667897297425507789860438258614322415768125205680799706447675550625228836081838319182606492932377821262674732239090315907098333495047381234404436666153471325712053001065231045530648633782047904152433891461238833503041457274545700199895572462747707060618229932827256817930737525171180969781241729129279774823135648446332552549913970514116837405875074540572831616796268298041432809883097626920374644273711879901761201323286910959689004703700645364839829298087673957756726505555283378490117361669979251871483213860418083691551373761373358309436395258130868178639629409291647979750830224196749146189642068539791325564780781529265677139905060486557747212946032588003224849532879427110170400631296884782068777974189229846687697749293206114058106811871140857966676854185403163377662467667450279138467905755503811202681741128842159608774735644976786746743275020679053138927262006439514960178306975226349401855515554692390020181750275703383450563211675759704066927962320761932025099978475775715277361465218742080294730908693485172377197505505862107998990093087592602553351499934752967781495863310199316042453541103472788416797076650929358357031413831394345694463905183659503366015131063112262580356901875055344976498240934558272926755912529273698775679756082102245589266139994506076831874696678988049508802601177330504603677671159372755086892532545299602348744844182846682555477608292990475604113155199859667328005310091134646710162478811047068387714028737355292632116725319607528047252478729076613066211177318043940194992136244652438004753906919538835435851954518781551423350691520564308124260127222253216502565395642100210094246903035832306119350758822827149289293961537455127050697958953321751762717101861066007416262362559419934929993731009970269639376264253906896575624781431484964530258841561146479304268588860369624044037962312643022775021584680047767402791813764947713208481538600154997174034764706106217560716325267695230979716385833216920633551826950201878742580601439400914253886986212497471516044759858974715481542463692704660998774691755396174687886109299235575413530482737447051385970111004679324573858850345646976141448188609656345213053733481946304460664722716845239398208763709169457521263013978366910857194531452904443672222524083699282900816457539620330802762482961614692923379017542639789451328301992090066223414100348158734845368700734774090121988476401283444145007418201125517728277176514864475193583168245881148302010590620519159435991554067767505312968063063327559773067850377874904069569802534217164653253427844327630143949240926776686443549056804119437090001359902201796626054998618257044159698621336278253512941546826213225761948776365571007571187701631437863379873322776095935710524205557795376116938972965738849825759905416435007210827105290907981683991908669071129054759028314432326795588925294669456043974652278694589194278634537805622319000445219033422674108078692770068586208682253365423081968788987743951800327782158822406189538127207268349502890266056390730595376216446128628160107809077223299245468022088026408524445011019659835309350422014156983088332682985701699013121602741516635123386361084079324837548531630581240635682236134441076971115553454077455618020447823966440970524101972260436803057999272802302251774321419822699681331965447120979832334949618832615803039562812962503551548132030267058208993162187388030927895838656606775567399681542767035594707478590469758356926597039150168813097597395427949558696765369923944892813421722841938046272170167949330773206986883417786667384809163762640620392853979663961908702039752798229528846435759502535260999199843568550467031515474563562223690101395084600632333117882908937780925853497095208803817523378457894799793814612441752472255948106707665198279495770704323577322342728233390561656183418172508975690626585834078519241986854692331691739937715859970292642959545293521482736842186506458456705999669368038903745922820801529269599183622814601723823251009287983744902748859670480336946883791417482743170021816494642494891516373823241522394001770545292511489746895974160771358233764920892826188934293575940828207328108457350796068264506916727114540955820013419581988180516816130029062525019816804503604605133601278610731250554519814103327709252542538354940109505096596860982890791239855782360274901384182732960005477017857741954730464224380172755047843049189380699393382215614092588310231747961631640164931843016907455509162362554338290259472610234880631942869756506630052160524463306218045120434135534813856344030466430806903023123476652932917072676461108130732792579849205432205604985393652150504768234065358586543688006563399477339430871175815382245592136358399277990588411798939167068519706841590342695695550201294045619897299753886069309891088460065215868929136491001812986462760271563577522066588312717094964458579949108639856164353049746664541683347649814973237284632248841163886236054821872165202298507885636547780308182227106123605039776450595561191616599774953238885692920144060372835374257258100177369916627060553913829485401595605972998400740669694579261909931065653900462412136906152788384812397925890495420657750933268223051431979952697293371582882282848357736914499954710753686749662452671769959889321995041410884791660004064967391667378745762489856637079266500358492342951837274195883903755347142646872379113481951896566283128159584856454762494851159415965362385018330738330900684736588031479376982266820928715074830828252643048078957929278745364322755295372753470119958131811426106577256555832768905685867266611698767240405666429598094010201019189328915401450933164270545992903422714650790876081372072165721386081051772908149050797802468038345045337432160216411883233059979279469770430019717150872430927347793766706227025736072901877787745380164845519833819165294994284625426560940358283552669079354175734987707167691305700375320303093660520683190295043613728005566459466041511137398725556190545438476463582838447426604023527334903346775073592597047324407315761754597278990358303058178425873688912791351622184254721704298838126682392959510065312652614002358352811348513239317132388620969151139440395689787578647587756581059579661275189741960115195808589375737342900685622568647644161729882158724865941201959263631854447229264988219184887060140761691580190135785327242473498179585567395974464781725774917562745449309768674626173229940246186532387280386291172638496717490796562720177558470724368320148071349450428959594984136411879319304996726356409109427846061471247055599182608602775898279885863901628275677749204884059367608760155943692397262864497371413245471078111763183149560177516087883792531003587559452952305788573420881051087592812040690399309452854395445260046381677750059804838456179133317335719594875859608939666690789679365569612215342093152744811534862432903356562617858953207809572773123012891496924609018883944923216155662833925377211894068205150698960815993156472991636068939336912998317171936713960085448046400301067403363203460010919184726032103593952453894256727884264563645655961142854841824840674863587366233040227576034484645867155109372281529712698372401275946923055015757919981798651968960303525618861560808842683468312566719614346909408300360422280982938636426405691515356943679137112307464710681760812393744641513265384776299959227388066669325931346586886496308890988136183025335022627706910937568166685833907898227026830308256059713737416643059584828292342583990598284117044265466854304739257414908508245396277490424164117062647520840527177389731161957947291990754244123929300748470718130180288685321547397834971423005322457714008488238153691322239072663681411184565476294224510274319299484925110308641071109087210893807081240498135618833962138174016796294222196755879020513219479824917074278363710122218437474780863158281451402640338568449324768850807942671296962832366222166836297114774872923138043617233768245000984913238666868967269106990983517405731824029736236335576960089031612877367838379880884593594514125952290530418448930535151000909198551721100706852372302641931870952699233794185187035057414848943627477666576706691477705944744043076804603764328476166570989989613043323802524882152906647927560381786702940185929738718244381505907477033654458019383921584264952397788870022611431269064401992703107389912150015677833069153126353003967570916551842360230178834403464361664712937764689242411947881357270332907170710819578100334112998229172721106549158999450960166721712412558900349735520493716758907344549523794001790424064186767586414788270238253870763975932488747470569042198623266663152318064160811761942686858748910007320724112899142390575833005439863256370995756094628667007960495019066520122375022166821530624264323868789561428349870811499634265140989763511568912072491573709042271243133994493513525747499527142913305112012417871160251574746146249634158338815774526369575229515541814394541160164000443303267810537404942105932804624445108837031755081791434773326210424125847996246127262336288515231469304077446829651737986247032128761753399836125397184433758305954549987001881327965937410819721497710620579439094328298183986943335979692469543965800117308487083156515686622009758401903769562530990363129233468768318387605099898796333574172554995040720036835189926292338721561420823521864622834142860971523757706926166282705409551015942435409420757951448037299434611148479135316255438268694374612214349376945715373476012854063728075244758932161670346486143820847921865207084673535207469873086489058575475377192462932145351944479178303754841228643922826203055877445694709506640048514164457313504601537813568924599245683967951830906553064630001169254835725225894219638606407898014022008061937408912479535489874793577630413871658349879755906674463677363899153837093317786216791253633238830659103721591930963499883871551714233531912584604819421892433588637575353057725060293249412578451506004056801747092203331729666910859104325014735034683425214434568269136456652020552141869436685110434407172794772061821007010079439463325986205157937711357538580807322217755088439422010400140127284284307537992359266138973459980098717514063633903475736068659033212652921682506801923718593532349315106898617083071286475055407618987293589092055048609491124754845052663625255423843680836134763811889360682152687260974789263467406541244679016723619847014128076895811287797509878636832904294337651200818378516360206594312977319470855216496105316409494750093781255234686139392096532569622567404685221255898085562650622534915100646289877936885697987538243314141218217211378957955560082081406907254141789668920234566023645506034929847156432229539264844397504415209864865205656455068053963376888136769368275590175172915898761375601821186155272231263972604451449581494837257816840642650529324591752880677858966344855118440821249499244057205552222833337726159667288729633489877562201294146410151279832935652029428882204084826968310586249478840553753185061935911586943601918567746252088922668463695143528595928132450196712729167518294863649293131541942465742904781022427165279326065738699388188211382106026377699804008862608273777386722550665426059461797930369407398586252366588366799759781371553951800815923906465299471484553417247028028432839761293697467634013608167276240281432383544684677411346173024487051012038641907076458109508728165012586678560035535282322713075799332701135886236729559296132204260911790209588763026305142215387598922950190208531051748407889334913620776648366087943935264154546866505670053805582160968771264041825868951243081941009461070919868069407303670096998880510985176829893770024598634504360832273391881369971107893879870755071075125143371536344326851071037464580137353096001970042233435329419494662698024626496065050484677422761022683046431781556799499549709185228031549124390640905476563578889768801055371413018773366412411467177326249455601358095176312418188739072879704332734441128021548270728527920514213341527698633281045992766687922002551681208053867949543848977141878260553211399892570722027404411883650010198020323662419065805907896523570456353291262472734261754908571604911146092563513536083556769449876531225017764719706070312534090656551707810825026016376460521032054777764377036257838373393976055554709806851591311587316409620322977204319096677069793516233958992380748241014551541958710348180906419542108352070357092812459053753974815782899957477770372000228368499123080084845861384656119912096202348054994891629398052097291377472818010807765357848072719667803293544706216041535466970439432086577331711080548423675155819891762840101392799937024007913993930163329352042053709711158647390753268925309392446937218203705923733165444973386379181535060908277254658245502099707997008949205804880918678629459296770696098970323146563382551710725797716759985580383932411502436427257226811499643370736001954583697187082777068899290644835943445154520496515909752638905200216368153629529849139953610532514689468678792194798314913631790216359757168627190279644503383853017383899371207526325796139382363296811496425930509024750748178121196374117304847724446928528066863577480082824780933810123887076466290395248276050314170779051930191553442265812173454977634394724257864912178422925481512511215295081277472484431073112163015974204124662789996034219679694032245347470759445251606707494451429970480960936277334455016673109485551882831275550734868334102917047503653975600071462486712527741255414032694197926739475345122573298669170111755454754775070222236425717601482751015986245068274906625646246149512815182608622465960597760247021629332812743628252705415391652127584393360613111390619572877054349401462357314989425143116581809800658968821453103621188045808897765337454268184595655676249807211680220372250912223555578522728134915126163730645347128807122547258555170248631671309718891658459488366665964350540714564300348278158670880665657599057916794471381211823828019489451157730174939212443858331799056673168706109573703898434346330649591029453059207036053864932611729214685902466728829143005958685254963888214076463382255445632825996055149917096100257427344445087228181593059323450588059378810587233376512380087399087959487083518422614246309445127036046182602597287795219293259131745531585197047717175857691966283346094234612872309676278683921374838255138447503040430356912479546927644796303274830638293944363444538228040810515493739169538233432153715880056869227770045204758457932149475090868657192458768410881707644454532916024931417910277792196133154732274101265364419737944842819655685075622078171424322952371552093982454403862722016073776248565405783492062510651608940164611701269354855429083586657134903781356693410108469451975853389921671055297554070549423699898222249690982499592275193244605226824399934525474740706618017794847928710049463467167730223786088954536658626289104420113595473409136091519748037891023398602288196822619805243808181435483856730662701198875131403797899732104398639397724690192241360305067154076962481126575610027138975387286506476100629917041377880294643641551817260776793021645798963954110700542702326130683493876883765120306679940079111413508161363414914909123256915714206774820409324199818092289610935829980260929582517510017473942701269834963822828579235574024427710347739469798230348642587366424697514194089760338711809239294940773765360634805660859922364126440717670371055312784772552358793913313043270657480051995721921802717323788675960407326548204171561488291203277642348630802167912255192605229417884804289039524982157535740940737871693354070608859808967073921252422276716931580658274387587144456921028038110350094429550076306906450983923387698362805865700872715929563614661415342289514213343508444488798434599458212023456463707196230323229180548461693468813690329607027919440859578751167709909012198470712226925557303867097758913648555018905388204990897600383213819053584253461922527190532260455898503226494494229123468172878735238429710693757436380984770140609187168155193866281039287462049723965590818337366182050830125310035842755589290556303010859255189210815363113115121884227190085649723928473982343547374849639345930981637364879680526008505356324196651576827183209089866776138626747429991694368720834127814323988414126201493978854794624083754951050226039968760798698692723136606871052996475536153205178137523958382805243890148485062859258540264111882843707231225638393469545780746830413548584697950640280126421600916358882809128165319945979718080135951529411208850184274836547055761614334180703818432958247283836978484784233398078492304177295385995462854333375163888192172452756569771498647334273595313998436460311658139042823499646872846279129480024802021520542320696984900426737136397892821849776973806350986861387753790626982085668253044206495610017457071130300901641753195559045321742064034752671578554285847452987856726460613132512642916632417447066108356261371717266604605154753463253249652673746058170944832563429797312497800133355100498757261287072797427078956578230397608218242558440147590835916824203066634141198880815628324204498496513637252993636370160931126481061556289935549895186006557724764770472527566755477403901630660898319651848661802851964882728728803404599729348757285049874192175170533865220757847408111868945911283992568983206023847621466213532743829621502309396893117773778049523049159539123635907478676508184849516291008264352848604905042298544444131483387788852032691612203341454878472901400307911651533199315548875118906196588301918773723567627927090796638195269244039328295798425286842205365334960617531779978356278810178716918455212463628412602843616652591975538679097200805560347193703560069973125808484370897925750348797209032322077245512371945594152311289335533835954593947838235652632511581641270064934714472247054481668043742347332086388307290710851491770894085830809695777482220049040062838448975603163273573594668093396441463766745644629956676555107182630284971152993784466176230299419333721650242641464323840769807535823108977867467466791404833597256658221703632483455161931949335029122819224012646561652342419187303055117638518266591414162458255709442181589826973305666371998378443684110219538282607149905637259254298242933791051596655263050432825462197105200633287147392456846089491759383515158769886876852674294095139831580462525073276746926278367396911865538967127898772706175528791160199017893219627127164314566167786333413851550006928534149262651156219851303348880560839340200140533445939145545953910296133550280540902161661168571018587971337040864743753805513194384847907373802438742749118016275992868742901255359168423395347662224378262131771422065783860285711988655868243009416876894289043613566367192956063248377130892412968739050974764927973062881068702625638072355039346803776539009463977622785694516166127477021168893318884437270446753175382997166740946885464077099504842610097622191370495743116955042169934640166063182892391619625137507190976975189063815726553513852883531385048439383173206224859079141515130737043690423547535567955256518649643488237521656832082754431230062360808338665586859882371990766092918074724359880218565441075582239220023167596813391187373550245305304061967543832509759424172051699841205645259319207129245796782659546189008808445807326098105362313277064022908915978934503448946021857954428556095482708631664521878607853521568348725573564781551545932099016136940099002859349331869977443005858159690195761668482299265596383805031978817939147418136199988471704060847985541388878014402859860365641974085658369412962167262883478633084581800943551172240784833408199445353154868168532117455257164010848888071112080456601659302658834133482891804629365338202284805289861679832068445545579884051611479114503127808324933791505167366801418338777265339157263279272064339036499495636752684634244324420989315821888583900896850027701593940315160381458502879173991984992075391413502874202659505657891605296701534262732982627119887096856057001948336096447634669621734568745496833561948106367776724453516476458742804977213640101167110422024237302561453005443134961859017269362100771326481485786178317706930315957429697116114174382560749608973432430708065370952504813222771421101962159902836265014515292886609319554317402854872730286891005713044261850401291890394407615557723876520524670496543126337052152859095473276848396385569476666805777725703320763264671499927899183202738433687360154985253517435725018441489218999034896399312457304342500065897187292445246545776363130535413980400647456031391527466768329012232185243565111685409101886664791493581443162273406704127749281523783156392164886895762922037032966919489821779630941890409881945180771747996795599547996572677807612149564936802530299448306786142244952525616589506596698107209558673834059771533602196882667366141901798908198326173436789851436237004481389139537043635604559224711627705282329578011555733410694206626166318858321276609632530805136758579163406907454426647096847272797174810955735016130626123990279864937533459468421984207616201940377835436387664163225705260317882831374038507367295530865522651280058276431670214989059108978465946881084760904799411020210534219324167311003666443169954955039850274579375985600448663232245431261089212490511805388419048954419501186498103921153925314490324684685806711611750336102111777470654943237734183207943396294132872192466610177876880133523466203390085168131657433500655268294996845701569208257847590741925854931169261569890617653615077532740279655446782030295883043772902871386934366813903337986033412570288922310250415395870158193112169994698409968401437233532629757205267702382047026461306229031723550696657307152642461620425830993995617051702200907080549502995750773698307696484252652002622693680494172948037364751552872285154734161730982417411334939635613687906780424448893276916787657535961664411100761416244110906016994544695308900636695727347966548997766923876767978059330914200453511183312062092518232492710393019412980846338859557064213884938718745612417281601266836174399933505538317732140094768839465286934795340115456395469227938158232008364574432110642067501304418775151383871660858273935426123776361073091430146956751131892431003085809501450319006653943790170176865734221868531373578562156344144709003341589967851620629995246661870280263950476262302331467349486463944471194114765895435500629041937217736990911739800065230521927417576501445058401584572311305374043855435894930243541075104286576548044140339882515786736413744117102875095556233330681163050070945069994935361368451369326341588427804466465531398734972580244556854747770924730380632867437890068996916316181497180306847701622565907869836446261099928502192533375559239971594441882812602172254307178254410555531329295323757938953012448776195444890153120730454530915963550192393232977823582880757676155626735606785536030382646371649219161542009794012426301889259505503767940534549228385007191601564345865471385710069557102756681689341650944522442995044445434880525422255715287531782183449257864287258829455871934997226754302966999546797730790454693404268649582637429250701997349718990018894778379964293973955578239910087055001525664726195660687646351379325889085313041248450079578038185175768318864200091197457314178209518537259332717652538880030643984589557639881970685683527598217370119558401411805997235631561878072592245884661103269917441804820387344506722548362732557279565695578841273013445690527024884109871823250649908219149742364225764211760475596846445042932165271537598152845950996422517056452583448408920815392958661852427508755639100156310945031657304883644598447114541510147313028665338196865330476468937124770690858334102008615048623593656571088069125215184801676416701096900026651871025423942518706784970335802519946878420014253487546646912598130297559129377459941245577007706781375621866159026134810817869194004967015007703040384479512349337186909260297163599855573075720606526537128153268977252994642824031385848200898137837876362196743391277112120975347121763378746384039160436552983462839534947739276411187511219990081015549525777201556284110572328005262645113534248143193311537884739975478930252703387824998718277263372969050113135886132662967926564612497742898331185942352462769978189364060442719046709052982783920690949061975508774655656084773240533849915784505295941945541180062583543564786850047412381215522493045974195180883083284939937939717748829912545561563196224491588386916164269691525876188672852526398075922486793561161726690769697655067545558566930619524087081256353046201187753622163350933741032179416758425888926500388267786308204910782932759812274439569732937292314799442526694311119581162730705172128866722432169485639249226320663887363285865562856055354805740382869708551678245448890794748933191004383086839595003896596781630336765985425962686610040695264134745619763213687320827456197797806387443091767105337354395755291282255926782843671419148290290938650726329947675033879613928466812966249453711855678576720042167631716580591036363517200421617063629838660484919653194323363243775480315649076362011550503759277838245196328223994462318672544307522459980251429549380380576483045646461402192826682426224958044683599385300908534701009317354310913218975992137459573924836590210627855752007273118744387184794052169269957630144290967708787014626793932006511638483393507011900134507548442526302906030260046862095131027733435798510810158965196314107210268151791766890771430251980594845843670642029573924209722199320565853170783809645848551407325836314415325924100870253420953370162948436273101974867705264847517446866010927263443381611575410081079826732092255129093431710065014708952968199080615042450253523847138960782171925878982995536463719360079553205425317694819464708064374617718564791830352522349843986027512157186920688066804119923163003674957355788000398438536229193728851547242357257290636861441892947464251174616037909322973715809332644217286165316790837373360432977669961001580507240117456299691327899694492284223672508213460375321398055950154340287246871597452274902442540046385915055613666419838516071358558845954800869456489684871009962505900266942128228579797621620099897071639253705675985892748941787822120842339218836524838888837952649473202081945588850683625277992698302053237942792045701655426204477058009651757949298904084795072670571769504459194877345976938865970305528475905780436276075258889341388485701992536851314460520334910676320961984024243471613824860572699602315436613359903917683771793385272460898011196405099591894352182713208538857123861609862868091948641003970491683625957069828348340758056559048032611055408510233435037861353511306235320911241636109112189391838406197435733636415628457032898721803118104246853796258895835397160784130601713734741654071735160231998687545861570820813636673289241777586852536094658761519627476073507158012584711102193754270440089488215715450447782620894930497546292147780729073546129353983758201249662594289551391501647370161571522219277289989560866172066327765662400172076507667722060810267732421977903586682520746917133396089828040460023749755206183401103020050414470111167633838419542205012773070306983982836306379288405495205305086427272294041908687024355177667696589935001127248870529514999885463294416575147823295464223414225991022773158150411741270138261424334071706418903442385577939849503407870874096638798949505389095528042694167226170902140485025786702862099710528900150221190662336070950112966494802961143616493108863509700561427324632609976228829244492251073103776231811649347244963274754159150830476200142273363736008751846715044625619365993431195560730407603970088016771389350305009956552835203947960051352700293701330530257279509371192169918592839195430156808729744254617142278417384263202048214793204072530439499332816524860573320319889917447402544607455890210187199529640564833323892050062801699402240268259053287409554170841396193475132417303081372671003613528338152834349954492689931346852911673613823469491046984179031536108408429503852032920173748217310667865426303512092356920774502694193370146559510340950858315063955579740025404321526351924311612750657565437869609773575863987509374460143362422713838295568175627659173063752551679710557295580681443654823099740280254492296916032927339310746395833159736670910200124548351873151164858288933396278623852302616931015668295809063873111711775457362451090208380299133646073698646363876406174048422863164117866966996287583561407539751000865320939843170260718617007071099841408435469493155309060733191635937054901473976971940470752456393250926174542642697965100866907362429704683195692115186626446673755185096476793559810739704857515831446424788854284697487153398074940198576752876139922165528326573511407180483354279778954551090666920667442550612023575155320455115366098528513420922539818352935242367012841256515023584506768213391014247679129844052533115608046704045984840808003985406705681322380095918276264087046530525053999982443336517207456526718996375791365744581329813850894651356071055230119116858893187834730635172084392467534419548140836697030313571471885927318739323413846086733944111671126330577323121988821219000716269579111486070604429122442044622707166502117759918303420452357935142420291053797149823283871541097605402837397375091357572012455015769370080155123300772597811411704009553418033848306554479292106944103038759056349797719138508821223313951116087963437012804501751811840880483322155845856788579517904217614194329782742648142118905375136590648151047072747220599173229012827690321885960077940167809375703837813779663873025893855809651552352989822330938075253395407784479070604707143198364465207777153504984862935093759928799118467574868971525405011358458815374232595051236994280445719889307035165299282188593532676586097572973972359372476832762548878937987516579527709789805007733603382638757359702733582501453429630753772291330101808825429236163211587061410146444841196526074777833964603359783617123183166669839695118157989244061016387705083192490722418599177193554902398398445528645800654196902104572813280730851689755558349428050859496989532641823868345111507962236517899428635040783299562906070225412168479126666315127285535760703395304251562203005528532159675419293909853889989214450269774227811798569947596027367188664135622381402855959237549704880349346507778075638917383639646281156703919206070458233402390886992011696784149525687233808767186784832139073769700180341130279524960509452757727195641169415789887229230556835386592393049856274189542588026147212930257864482637299991487794655816056951248520896848597267734098263259880053139196676702968364203670951215178385204319731363581202493876789526386854559700088341049557975826904344447849217266567377670185104731931045785082156681716422214994970209433649570637669497211925808135971113648325567327623943249272707203456402220423333967125160105394796320883421836594891449885005891525181672713735906446803324375549706385360579339885930336298132715112069349141285103902026774112881392821362512387622049089199127076859654638851897619053696644534490980596617471972019300973020929827006284452567258742164217968098410583849899628990977184439736374889048121659627236949651529393706520833690108084359637723233127557315799272006369821290704255559521382847106817734843920347583624164061468331894287569549142395247918992129011404139145152486399661630871494291278350907494368736398105701571996210009190710705196649669347511937577144330552720530076298703000053461476923961330430460113607110470923457256982108342477193110404173330512169953860242144351360713870891958984419032693565361027697768218280815920482054634133455112213934872815124484566115827631974086749815384357436525378448441082720027243562669629024221065037589274678769963524152357446314954531285787180674108326223604010193246198825112893723105873131642444054031358360302726574975233406893215091782035476508826010194053850704993785970990206046374954125573696812528232668211684963201490275693772107202762174568531208216115080214814005314738594521643234675425538845875141754093694845066709169205598638025770169119198057229598877075686739112674181252084446348682571272652757826297623678905068239884381383988675606642927294230608641024683731188406283402224975503641305197423242676867879366076656979230027197412902882813476572858017335810343659781743110175220809280261088402885881237632227768134403365573693201996093001860479625811430734221955374415612367336540380334338056064556642365967705474978000272686231070471822356841261357737046156438362963575521331058402054925216611364981141642889987260096617494106087056882672878814809580377991593734965897773719449626834092700541265942326235801263945575940957486269264339264847242200296355712707140424284545618181219309690827501930071516029797849264650620836059821907084510708257227910427800053402657208758520466621675985211871509269821302601870737631803503577363015040092535297669444378283042723658910516865413477519254969803923063859940336565617953226897390259262339750015106332594651759949638068864024673602132799225357415302271601147365039937539950709939716814471422454535089648124121062040250885247194242002786518186917560670664478882762548059498949032811965068286954423256093098121134786249340248192936406604669345834366040338404203045308709714053097174766260420819513144992812791282461865628671931544935695569047324325969042651964598091744549404452778004467179755066706825537274297740572775374084501397839403546267734104862642470457760611029568697247647249046791441630387272223345326678289870666384533565959793552126357135151846062010206317700251208758677245204312499047789535068180524442204476656331331258000286742512705049169381005839403657000357554173001584413876289383430020182227458105363138675343288952210430553809864424568682244208321420816545783324407688784698285053269559556004891324724087429948893288876985251877597247296400407396083105604941773629375591120159775254537218736465804711641188785312712209913324692690509672989550307850105287520394210560828666157741710227474665826186811617465257324585858324672900678775314679059502954303692977504508322316592834848491391608972900531171548794219171203877320357954058095992446729114811877293846426108310845813904168984147627081392739648110188954911966489208281204803642771403495306968166810881001434011682123167170146052921423736556605262654449781121680124889424697286519599938678446742830862307724133126283852809117023511821260331182978364598389705230405008658803709888185737586645131473382707914777196626506149722733495898542705045968007522032136246106392466870108760979856475560055868369361270130016256038072619068293641262462932567366380313212804914206856664181769082579510822916162905142601214577828116034351493911140283176264309907409719551621903283024826971633775666868859708188845949491968222411586864814465907693482489049781249847651065287425491040803489998818526066778070772117546496602060536884852111004662194651079721865389349282280211168146590129534038273333610490919167584463150054706853192758328182006530916635791822098399786452814790211351163060935547709474384260201721130255703570729251799921079897431199648598383971645557866623358585322257093770903109146921445158820311219058187239998966576849924761518488210711459567012698207316574253344459323557287627292090677330470763789813912599796237025243788383082117515890538364012731447866885064938022984548463950325206142316738110293572517954760579089228926321371233496833902353580646857561523475987239992571448416242869124585143401428677300505857635495847414255564676409927904207126232495982207205536568718182069226394425169679182037885839514275167331626481708251944793359444705745199653273435984341443775254783864415652306649838816870024475736010626578830867995751127674121565963460243979172243269507676961310596943604227622752037207783139933792692709765352984128410139239098739871370571884993692508319976517280995918847179988626086305791105336157615831130357403033779355698588716689831331779335060343540224916398786532744580547351302285395728268044444677580209031620006091013705694396928366866653405872622089037665774854202381643802968403498851413570778284932162815296151657260291576697518992554935729345821948053436105291592642132522145547888067638583657942142541107568330084060606359931409767194523946915562934470949459779587946496310771301530027198721951465719720748751786548266974343455406221773872345509696379411148237398250320579972934512560562292875372264569691417117866181683028226487562125961946012371692583516390501023024139348191627973304517116457452001691132698084095656187232972745481124832560451288057690051311378225667852342714739584633436343078619121181559529466122537024437580119118001414725526329261882048217740929305941831158246009053235096389038023242801062630945343769661040801884861713951940570125577631802196167496364846817473485242185943038310234913025597909333389397507000351857455076378482723336728522426179789583187642543177128218719286227210041722751246574282597468603573092409961359899118648908293889923193679698981880753247118429390871118054814484406398617285643239994760681551329286602284749118041632391228758448752324820632518591924234005383342395703504987601088316657425306405203711543761497003994078867533627056513605086895434431855147584348914743405928152755864919967456834621263967869521944337049120268833242149839197697617199620497075243488661982497069567223033135424488473805984859561349231550981782747800340557170062233819680512810068916212500515274116025549342792236012679017032988420449712456301870420405327351136980164927757073702364639176237703055317898307313704196696934606996326449436516324652830317086794186409905887403357540939367626946851294257652188988200940019934150613664314552549519438413043882467010606257464566078583614921815634287619960891965677303975284267969624009843290200502090617196508217366502584729973003040276887524810570895662415849974257510160091748830149670108260811942559746611512831146046637365921653182881552191673223487554654417468279804057350572930840317427982971488023712890020595166817407367833506080564686187413426166954688057419681257146704934060543702039790036246091281490939599253580042152999291875921452347282834279794936715120893312143530583621211818479023320168877718032733542210230724687403081754729600845192353726480558963763383764663195025006785252367689591029104043512324510381736094468631142576011306078287619977074313278001400761459071600788035874304797433527329214377901606517194697857264256903625607605042791645202404721812799018010244923477924447138087089187645454290697656519768313401098416773159999851259445536009639246101606229595244967001912783204537474631771415766824461868647478548044712556809324040800407937156714962011066105494521737447971939757556451642578402617492329567546911173265962630009442523560777878977338201060239372526336195971517572236384043936351959761682368575974357018353951774767273873910816618985865154064970272606372548565084509524950116638026143795366784570356467693166215065197144687524089423007167187527977785983275308287996518901295849925549964640415098901431770753084599532101754481401026465887285119268942273972699330569348753019705663231242398133471580295055975997382574547609481656756709484155113296929471322045514371338916191890213957004961735891123540532722978502167804291873338579749597245542707471368911829838966065422780268067975359694911940413850193203674259145781378087590794935588929396956143780654638658898431671584799195925495228947281933808865142416240560861864696580187796990778189040106330554937583692831590273179185614809773568615882685261932905617794744434944781382511064016224151269483912971920137232731464095699238429446882206541794965249759181582108069369869684331065025341233498890853678619724959627452540919206653165026295101220983205159659085429273664214667389763028990051108301269557351008101233316474663134396429142524485520616876280643075815270813618375453599205911149792089166845340307255034534270087504978375156449530757255897832613859312200492201864245573900481694621810687920502047130576819595408828613193113947204688291211011882861067071177311191506390145665847132819282373049647076365589283119167155798664647769228300769237008306853185478168023503718563671913230852042787978031990947841713494600424317428508185543170119254368606443334021828924799281628575508635158763023860614371883727146291892529422654142822616862254846055365613169788758132965670712140459918883054495983074528124911167706097463353975567917474893043159288274842547876695092912735235527829554802845157609579934578984508851728556043921355750989242194068893146175607642466595636613218432965479674342946543050392495088641739528789848306600325043838079173227323446626236956305976776885206392208417945771285934056809299569816492318056720276295786746743516356311228098870956083075495721729077914851677100981652912613983498700205196095379112312799894257964683604105734555471883670808846510842341628762545747070591212506975357335194320250767991529255705946934432403272994316083760666435506074537421314504845224663436837957176089127199900996164479282583243690963378341001785001611750421145652832962665194318456483659212141674411452891994139674810692622914119881994650755476426166960339347587616609751016052508980758069858920508648024764679001019539440152671235576097166078970216451327842134586475581349381856935168129726017860958417321334400209543343080275108438929391143158686971744377036836569431634613324019158275623987368950759692012840391460646824523756638523398568610910754572588840130476080382174396942527570703530540346933312732421492818901528515501561456445382709285505974432729448086595909013864933127375011845029890644984675948657476296083809244124106024457174180137978649387482397049866028644256827321424109254368829294493103363605502721806229675229755718562120401833239967686757134656031927002596779959545704476273608417094933383100058198506879886338585266515853947595255129691992514940828833834500657863558275237276049027817763724332434381128625015127191853001286080883707048452679988827194225676450876400746835846947424014037333047230859075040652633964524596256057945504750985549351972557063064353851127812274861543217052643612436845421425868703387983781240417425961774271124615509056755811516668363108626254939756818965269566050937899700095744342933931583779391758738729286000084250083860541473553505752526170412888673600966689833228292856024884951713193004420916384340885618681255097698314511813982854014370150395033294711041056902289401414512549630997830239118264501176251557369608133868598189044272080773674431710985958591342520857744046478259532636355907580901497882458779356221982581274377469723819508169702445382678271879331879182444628470796743077652683400838808879356087745028924606231166060679035230853202345825611666524619262811216390107733063420516284724510851538934992975425042406955176760384260162394120759983642518556654046954145520637018374965653030350553860625223957319676515376854722314717492026473464252963076746412471944525445666506585946862751327764442347133223282096331959610874010884131687977966699289318635372448716979355343619424623128574581740910298602349399624195182725174723354295866108975803139097323403460878353195289504747010522241718254386300891697712189838888263002569133174876944383955846585399006137661859764827946315130471908373342849124383794536752141573349268441432572389781865695874728475632887815039322337002755399788803709027835679773638839319615742668747132189000038675418531492217580949578220055704381441405291025515322532835389664866564971337337689393941511491182585919956881128556172616356083234733602815763126905444076077058521000108976209538947511102517491145664823779299736568534522368772764091499260005238977445922039636016365435010049331721598247747001884005971008435082376281586400762182277689441593170467591014680082993514278809291142366315382777097100557060198230725238646435064801372454934831885120319505785158265071062733059672797285759810033369752379480831750135743979854165409037886096057050593537489548542642238485472407127258408426338420578269927312900650165706345801511299285568207620873149300492502240050985376802856410328926143158688266456554351180698705341615446841613630392685857537344691741341021743884785970509093041099655307818013416058715724313996907094773337780948730946482045083625184022852252823395502643620089953953507069662010464290941721630121789527857448775219449501630582179611502611254821794167933284094621269634791341892336000572286545919241119878524942197465104188271504068512888180023090403596855096142581933393730274058561021350826134631762752747909692031376933651707209989416440698934699728686207571363259776941035158434623496899768403497982659309611158172289290627514121113801815656100330692197956693920047230423171694161184430399461170392231668307001737836648198844215902250843947471217202025660368593484816088571983175659257259443506565753593259697463318386396372273842460594833426648033562632423196234382050566445203416991931993902173046551398149796427993636255962266463277537216462474438953604339288176475657257237841456042738236033324825404308672475071736784994944087641729761689543879806901114303791743324344135388397240103944563982030907789263131086429198382884025026211965061693297313591952291477588286582842159969279185730740899199264938703730914035454817474040925190998449610655655886083720947205086572279071082131092803265257197540527270464509741186315491852264852602532712297477908234066006285057959561982084909055710156353961163867931453937810019814218999452222653569063937549038326488194490016293425191514481303037719509806201922061966708676466625196477992851442980633126145620599521838998297142982474413605635101009326322228943778221876218837626868760779579647325615994176774796276102345152027202778055549334338530492460491914803195666096074873284344933325268730610796750653646443300711148497703434030743540523464032081935064977606187148017916996543719915306328709375449015450002687715537069751537171401079986951137500785164722547913762660038772928840434026659555196351412472368689367305466768343371795476125392208052489894325388827290862553965006443215477345548619107244841785577404336508424438879130811309927316085728706228790583443359540519275585891474333918564325570413020713928782948332961007342823036718719063800047543042329403473068782123296950419106194201239066852409515920350006997237101760442473703006636868544715751584248305085820458917134744755837999174890900695538573567173894737087284369500149434930121377438902938934881184351925354374229484287541411136795830261869122926777264068742586550433563389437717842411930297111417278976514597868236117725852517481893582488901423509399788513557659373113813091399273432195007897351285536932952822602163216741330104412898499287873037372090946381964764540897576562191219189454929501026164647883736165988184843967794168243852156112427716286102381539099493296457392830486857462632242972176527291411884339335615495410605510658724936230186529655300516249681255634571872937261429744820791204590557270781246019356984688584607446143908927498164606698409326016224014603179863517682597827620972493203679116333573937593397380218400947012130416129620537888790199809476308347108583611213664489567957750101228275955256498862457851381678054271858909736096123598552202062423906014293244048539402677353375721959957178782652184572956810377266750525618671156861539075703525973752849642659866336856865598686066127944059319985149582281228212221925743572626152054332742078441923815348664377178140792041180668422822116820421598856208665264095895877729614450976058025770460213042895512270067486890467199734062633603085322578253109648290218914956450850838722270623045800487976189426801235200266263791444733738595341429360923060875714216721999021050718037768648983204288543629893981043642919016553896102392348320585917316603278137673313592202242005717481884507573728898248747909180363792932968955589920194362304196780656751642057719898587047793486811060309085906640962331465441144442716475096166078110891367371146948493305969794929758897110342685746982366885138478784520238324490388841684010889931819163473100535399781145472362884073676602194909415325287139083677311797379922034877649093910770295879407522281657879059801222239276941803712761181664122392564333987405604003471781753580412016501243710084137704010032905324434757439545295318995315011987721641194671566112064516106981227014784629567769194123715163579868747580438539147622990597218901049763387455890510763500451951605017530523455833441502903787128440117692692361233849333019059827104094667113831556709072946244916229347165129376241258933528337969675114907664122252037917480118183334298577046324431055817436073738615438033497261529855918697083598343952083891719075105476374862369451399343019393625608264785116974046129867501802891049886246113702646897323650740131257239799097427675435130966564449189853085096766096039876600570487830348972755263911931341406797361244033281762055649878105045879439723264874582427995591955032795049539597241177460584882697537396972038790085730720377801985222984133215122406437777976275815414727991822960692147708627778026492436450961719148792772510474561717482624381129359761384628591296116640251446321100959451912772330529739782104804092177921134973831527969807659437863160177666440805917648797131679106993702981879234363758303764444186016146439195527905923168209186079392287003979018999686591323802191180074272427608245917536681668054005768974085029156135825387113605635364363115613793541643261330879427768221944550357914668852723294298163710860245621541951241645991083624820414354522420969828649631505427570618215988168892585883486531259268829889405763469747054522681616985716142682899928373401293777660982881202827265124707901802419084877264741627059329330115341187312608057282243633171300519683730606808507347831681733420141155544846349657302600629640071930619217501574492745940926897731802583204842455290387896571710905531462613999409736734488092472693353992863147999679566066048950241606355977727157070145584326183543974708195363269777447648116294028877747443712966483860780223506562895936230806917360888431379735639168964812089413593334960511360681135535021272976443465488108623765978363815477925663963196738457548720251605131586586167828075873730409986817662503023448720339222634198775419294393145803015815492472344044070839399217625816095721366627914249787133042281168578625734877878403367731219270787069889262712337041366284302921824823436417543157717308988033339470328946108383801690290937673827082164124659855744480757428231032450262704938107022590377522963921405282251863324191824592948572922093752204277374381265551570112303245454746743257236021916525980844943233255122227432896389325505362417947862597284406290314283476441461794265480638931060554054828302258552384309403411265025594384093674514110657061303798810930534943211196124926782549030170944921483963113043664986917623665289231595427516814799177936987643489233266861281724657279632096290162971644286932164851158024634682276932784137299974916229899316007739711239659628214428788244503381899132297537980852163346255172943556925460814164850454625923202389567620517194595935896507017191569164831804239101896204571517989340955196772653167773358253091804506845742993810606027301656490382055086554986368667411233173743032034572085726716579154756758408912454440941047063921504936021524106650358126165632311369211304006446939853227760555972093893622846307986725536965195119356481456938948317290838517260415658062809189380893931743076162442412167666528731450220197803411112492652209348943598755151784099466602871070655303230511255007256255136062532200880668656121875243768473855489514528165266500431040371992852326115638254340655935554300329149586078773267104402780005296487637697377150190031935278647460193403529445711160401673838162290974988508098423776511188113904800539175494885185463195572351418384085962199018484881907755409080597757668225913377439047649117216577906701709265881519723156865792256436729756775965900934340472939117446634515998823409093284714978936164981519471140623782277367011669897260185179284877203950992939610507898341376906621108068803204732683861242554930022118164589948430521692109109309485887656784600205799461575187852361571479882651560707105671943800607953737157371801331525755979993622394209974603027142452943361453692680404984508097866768051006091649113068517063929801047020481267110068967319220433320129222069746885629662087979729538448164543599846956664793614964070947307534679537844138303634303568674919653019501802667958431913003751636101970990098868221097825982947487397589452747024582010780361980584491699829318403773019325391841072728546831323686535359642676617008181590948813109936340073287401356549641627182001973919687514165167250649129504688085162485273862582937060283661800428792355307166217393598646413019814644399141122392997595973495994824217020624414295513330567326128724378286571554390110619959966455787959247285044362043935848773086822420773717204526807536655824919767952257700502649602895553554033313454583065578389339694425880737764017356653650540019241384351204893429459704069931330154252435835464345505455939672826547760715647697418157973832402896612466144274198388945822272431950793047796476130485184206915749063146693279377807752243982997480058746843683854810925906983417495355693002764854149427578777454943279055962963051218548320685459933538628428622705738644781711872287349979152485270002381844975747225837509975701145251999224600300863443787101097430038819894243964089953616529504617701023640810649122542374607478448378613157013436222761427908138457875204123577441538369824633173884821029304150326742808755314960825324082018808190163519786895552121560100346683188699548045569241511704214577465145944511873984618965263645910425909381667843046967345382864954658159247696519832027202745874165724604608546621264524529415037589242539437155583770477976260037180390145055545113588914201344569751818352430439447127280192111438821194472018409680747974106196253439518644987351605823415824480795866512569601979980873206407173073819052475702269430524250685409972806032788240759532492054563591245093803071515727184277269895201691171922780878938565908109099047976186809937025885082457715637194813514930206124459975763331730960840687458238599041663694984707162287390809518492283525340945770510718541164683178435993784663956047332801408904382694738356286956183329177602702352202006147556977888959857153763711943781783146594574461998525262528544777503145204089458967940526213385789390333230321931383802265563259075329563486767084879991770232570201243283977642215688405875468350298112626115508128204504191190260824706080789777230251370096343680361155958733263062305687113825311626355624490336668068775758091473859010137920593017633319372104963654339396315912092935262765604347447078758596089240840177672570987898607730574163216018164418439363698651300744667758459104649815005801146422093403010102476310395050685970016134452398413662906311342374749536996502135941244991909841566356795104675937066380675833118561273750574629265737349338948207473090151661439719698320844749957769630262537266585412615907164466950685196762241108660273987228638943949402560314949728429281928663872550775093993899544946559883793143926191104909193555481147471438722933910900999908450770819278420726533010260073310537210810908962834252716751852836963426823696641936563694181990515851839803363983640735085603003783027142766893026452281147058780871358374149254935445021618646637802031878029255286108964793275729074763978360909426710236515549431847616120740250125052386226175491614522318866005165654926012370122132652453294396140214927962623307540786775383202391599267095206804455927166242812563837482810168024069675835540304644527278437244861364383202207334640267743401135233207350354270276005593058662014437921451048337298620593199693073013646919002124015917326454810713158219025137712336272173075498161390682804441685817471677582339388930094457785832412145894441153438853130821565707175910201689370986462822393146877306463508954834969070180271396038455331262541263135105362372021658702276406924224468806253170097657004780547021485448603177134861265004800200932114024765300056752963541594789034279092500750926857958810234349559751026049593216979114691196838131467695005402460972752504386637442274422599198532296730692199508688265597065937838838788354677289420158398293864781367672494332335842930434621802729759885676318670170185014871289653079184923344199204904751661875486267794024725136859826309532722872848607508084994753431965630902448920591726250615673232272475929886127734651409662392622628354602645123384331808835143341776745336747398518093817995240621358751572377839681257470363070884943675862641001651579014151973135292828874525839480860556682176081224412921551905861105628946980766807379952342224994623591283741400282140391256698865859176033338389973911233190040019367579874375872198793663974966255516349981854117301966919534138394061434296152688075385691374423590768691157485346161320235868316996640466950130855370027796491760008105124218675957351018403510197280849437452788177651549696689895436715215918958965775414976256010556633642833267056239133905555733405878103240770276137464901054547112577556852239848443726317266679334479457199886469459808989194055423009338191267216244311143583295086169515922718347735066897001989949931576280997412842228326181120738221794110032385863581276651901322628799802911050536801098217473734718758334880970682546350308367099956422929822180416713029942659280453374930523180903240365768595646473177782583668285650921586973361770146667405684767376676398043940068661542798103238897139619669823653635263948971932236731930649441650234302013457943777870601768638101859741926835216175470119508649444504522667752856132481375487893700470359821838016754849866684483329534543896044295541773057065309966539698634419690816977799806183298519045096004602033227196191938477330814657234425386087405168408095361762917085072551287098472897100180389079919114909929112103273448407359907571409923032088459172497042946342140847511136816997658837039238337130677525808092397858077369859743315979221407770776932135179546006098376699233291884137482544490310922408428414901149938610408271293038140423215647901019085468339463462356274191560019693485572626775506418743971600787743890766276665434879017105519248747544244275032419516157820496417995183871680570653361204076240103426172551166920461631261684771085850267201490318301480059179189741976207225952298340372825026054016105820161767213392573176885981594488248390335126370233678873488530376612587343186949525214752229054591534649263238652111423844276054804932448600009146391945699914492748331032590637012426147051765098933115412892770465232515303989804816356301957559434974164482376938436970978988183432755193734919857437522778274788532034550724707924231994785026779861165430187833191363447569760741946510065909146930125022398221505790128506578706128074752216565916243915957331910532809395044884444987040846047304462703128750997790519520641721725322126705836265774510492295075009487586638491056170777462521208644698737143970518981703611101733844772642325868187803301622618915260323637855604065468491067993302492948941125221509380374895670629162779516054217055359898360642875548555112350257848555790398355160768478739863835297626447763899448585367699002996043091773092049669641796508530847987937719906387700242649572416268514360249455287872086687398148877213745929350988960501716023253549506733336725610469105238817919616569867270149936092100751673686367336054345431514275821092408996041162780679314510286044850588600180932472212342984245448963209678635302247458685263380899845446375771168320955061911693290176344785573474663052258976517408142268022353738069018859985073439580863265208525714614627710314951731567863923524828945103372722747140361044967113956556958901204066969550631739904514042305714045499436756343069637067015325136868868838462858462954435653926831950291113359284028531940377501747995895454779729174213463355546167457886004132659480783215747525110212416268881771468367255304971229624942096037907942192383566827776323650331470680281029889782081685168815596651363543483112368456043952183731616457061237217811753442318614175479146074903020413144491792648844529833396992027815305948998542151388207001965776814717210888291050550851598070378819915682572543220428738863763174514626986860527302706521242788704605068310993996657969759289519729500437997727603945111052182727006424308872180176276603896241476719943765380763048077153759825358369801076853005767951289171023829259211404138511574058631898274276271132252430673857091367077079102599258916382281611008584212070712659493713600801782446555190833116681343750890254020845658283454926835024101047009981399919810160433790599606409576999107430344155548995166381441321545322079476963029547929926196021845885774358734452312128228779806336077440698179042098571189730985013480779293394195576448881014891088747447959585273104398241320558051749540548137058154751013399015804233920428944487472035948921599937934592137820415338552676015157819617424108818270252393119904985313859062617365268556481295188378707254614873862987301036055094086962620274382266632324799127674532845016016615626965333986194957168204940587561677393333529332468605712667308992117596066640541424476286729508741672047318624158272529059317055094102079203405297697935355151169928774885270645983222163868305112124326862755849694318379385814429225995956746979373939344262067378254151879288646638449005310665477034470505086586808499452543546963801448732487967726555039863943239303456257963968326232800654633590571029585000924262168763023330125869302642358911060262041940637532910717060044103319527396332347262686665725425135884074080196901545543174484862697684932674741341769492368932894525596883888878886898683966830162692749117786934076408674886341669232125351179857156631499119850356586423305448146108259428380680283766093221051131149534908404983651881495536104342121146663804163369382192905737433457671554600891834922939670165503122009906569950409045996020115246179898486036269283947879057689661927300179472235238221044310154242444111262589969414021160745127214156907886420666292579960229041729078462697536161168692877878505864778572534598041901488908799556937099151168513044003360857368376380033651998727348028382744637766787468290669479960473964450270670000431422232093821489911287558165415181534644021620952097622002571518815516731332426111964593272221916383975338650797776531463827306970528773470629725828307690255185104935689557139157739816792185348591606535495486408260102209274094409228534759095935809142176490843014272154553410896033258201852817871515363861608714547110070608717278568070773035525547869954071732670927859153439633044496633491448050147979896734534679299831160848322750785833333416418811628595429140293067683798226470420365238652066749402632969330085437572644207278913170327331345898314593114200041036131149429081353778156938488494172376124937991766546090665342491937416445981075198780560728040311196345665455356187565514705051769041851518658806601380333982033239781971528185931280454858024113398694415869053879357937414241250540665309279622750449205373138249868674070419754076463159122008120933352678253140763372784095043340970035350525545054845982881123240643839913105413379971605611270803232744447707073613206376237326507565040675277204101600006617521428441213272474973547564967579176274849632803725766069536936675262354231822023088333898785498414369288990423833578877048702370418392189155253771703529083350627543329186614750940959200643017336932634586567948153380384509735919704705552798884794750412238005177135775068285887581308043873100194351073333913033619310097596645862345434808207829037248596232448417188398057031282741211336369637512629961526524353566271465556102201518462674761301066746312258615418286563782034417879148902469800729572462286861468184800888232396715659772362146707714284329096756741950158341937234694194953661286046075431547786030681095804324393830837932114229902625630099724884670151764527492511023915368145983183289865292373370763980708568147935278711814339993499934066769029577210755015959411674241619509688289862394585529551185582666293200658015925598241930737011215620245456846542649107320179378970716806852050018198557070595811415818799816064192512403529090222725123057387653534412178005321101387980618212222253393730946214614911352906895470713859254629893682853436364198572101347937969060032593233173114876890885379658073219073648900841085654573628302856230164126035269096233672347970324726928194837025378570669998571962443287235401407471794069165469178013912775192612526578663441611664810418120970576950514000158356277877110567359565951107371724547903872887001975160657855496065653285113562518617043392100671026780828164645709635283704052421849537311966384990571188455259818862777561973204717115259248349634472527664326646655037734096744272916180631936948315099755127464416868147045235370971727220976057905958781717770441164577533525416091620616610868223771208351953094939329242812429535688678566706126758581501028871896216218863893164692618807493301811375194280994943333255071336470347760172118967082671943667935920760838887727555143697171390028205048585190997470854589249498616082320534099604038470635635391566297236752777061487960624176419300599701941374209282063177751200316666739684879698659039514614956661642031791800487772412292466833063274665331937114336391668414253339666847090659154905094078636985268094789499356504652727297002799053263782254544427273069981953663168618994241066767533506840775044439386230297543119613973597214840859862711724785866528491739661746801278115138400194881566574106104190561511597841554466129128268256747703837635250097520619197445369650071604414783900071992067256684590683312736819071392996500425116578094707862438869774158276496103393518982640619787790115659790308166066152207661175305130374970428842422034000144296101174373137980097729917337243116403932059116655846243122216318850619469309624280112970013607861608250535012226519466295869506291239048526024655205311034963074860677983177534874857386133540201760121891327822697342413188448084688936738600791616123537291309414603528341437926031397393831798165211360641472823217545337613650024224553305076444224976983369095452137429899697206696445578946688454820606110031151714674403914462553159885845746627007063921948590362382180193339080860140882905698292650548931321009907127654629016328917405344405908419442837449875783609850235559190052482469850330145497804072837705189616673522949643611185813659110803312021853118127353232672322088829677750767460449994521711174911264440799140498018148756481151653550696783552331395788483879371185189435463389956203169510805012491094972626114007883163025903058028216499129179236581923441956145369920963064966259964086303374255313691224563085080808651392612592479628092000808428361143565616842947134573257626748686690582132564920463157941104733607441240610954493120156460214296912523709534150417475482451860667968484293364190352949599208215904381762142841080697032974218548794429418336578024571042469670125539024305129713389708786007922286908459039709387425423629252231225657037430198161232154285063985273254542359651592963747898745402640381049736256738473326084734098427876036184130277048189035254753103133046364126002144288050556211265880203228339685640298100879828746403806623276143256720445494901806317601188841119805727231043905777837218069403605042570430230872829851974951528251218232531306568152694679516924116525660888829425022828495935194718786509066060878812910979671556709412085372607136193534708395364370268485113341207873138432596046126817637329090917390776048152774753055525362900153514764623051849500378961815637427069322212433108350165119521061950555763801574114871756279199437211681494961759514036805285793477303548478220221476703321621577855637783422797662175708159901060564321039315090928540035663365657215866066987395969161744139869712459289510649092167498009977313330443189293819902375497817222718657650670078120573520752091274973905542708660905292660542757276879945159934660731498952593851811672903710206632858750406402749446512598856552220135164574933653654885091861373585192043748230540682859451007183147083448483289392501451879149836025974176835072980227288739349451120568902930904241960639025835207514068072363521054389832786416560466139086075929234094814765803877140614828797969041228609858405938327641658590329448307229486892486513981875408944417941733154764447946417013218428750335596476973669184366124340904849056052088440343063454675761877969320505025880141389202626946794930516740916340896586277513692228406930024851244367373331233955235753760831395906297583904009864390738676070498940255099799731411821014693313238218234917963864504232389392788858848759087936040857806908607554581940830623222794986611360382962508332776658109116710920435160671618150518257438022088949908532914748869237135551898101685408924405131629574536731520463873253333142235707305034069574474557676767506087348456483383657279387954814561363255383685402989893570932891017946850345782434020860453657327411116404495551348590441188926216472183142062196477277296704141777443251690808011583115671946740294742737719365421137999066265005433232955763291458381838417372516194997048878544639976558143133680745846579611628935685725029379867906180891180831873491227603540065065935995028248700732591815460455283415833768326212443660451027428468813417832434909749700954820027875821953823339476837096695574440878148117412714331666764389413722214659380856958417671278592686136284076590910775173144638970399923125045682267708991161700397147948281265466958151034825764195312156934230861052008754219826348844293942006989265631645198380370528891439186740539030550747506210832469938577049013189621767031619578030777837092845185486679908201909447788251436930215568545780252468845781033492049131804220509755254950712948015378130082634744930012911144940457380273066420503877781097521803943801304523893476328157807782683574601104938740721875415827999854672973335507978324712532121754638959513521555964854492629967649106991131473734630273240493864490896545324764763702285160728597424817491853406523352359148507384362671228717796878008225790809325766586164011753954833153564313396916687280087546356416000670591607034186660789069817751588583360086527442362036250928146288986437126965737012646165784520188673020506269911073387482497558975260147680646690012655537962781022858177851799487989716209366278680457352642627708806153526182267486832082903360368255275822232841133517446583280283045545084362053387952139097884118628616063558887302058967840525145434895848477803213233378425735597560886209544620667374062449565131379987905622358917293957696495950529956908383486140154421948579924647283901231154005431871415209653393262018007765357001521277961542168267055155336146493443487494011168453538218655819633062962249487208093464444058037059025978812193284892790290960034405924649470368692333431598141815625078559487949288705704055399036276991558576455384893170526815015005246339215683850429760271268172701343334468379441438241417448116590232370532276237711627518114295478749690841078593555676564707160371423852280521812483668236877527724917677669574599521892648941669350347332306120791769020343589718304793945679726544402305621593132915263154607087269826923851536823385892031781444872505265930132695039567952853576506069085807734676743063535077805113930405670234118376390464379093300068710974982593365210923946379142414999786125432732437953758659318959905561933733825355905947996305666942531362510855790264534877463763302193483120338557568754151846947738799239957763316002115636045517751257345192008476748251342489038045000132156149536778130050190862785587287247867866093454174888015685955508316271083005370906224450343624291501440039391231836903543525000959358841138980664293764285009317010673058897980519318370338674034095447242536147209976093651881309750989321581533867665877399246373131977786761359637659987539799420320746338327325289389363448061286364147262372756622136867984325884630096244855161680206751108526610841760938063369239771441058348303173920692505905465697924071927082271352497451515715844208721913517820710702410706793486822695351227150982598443289568578147838128488387554353099218528789989765837526130314235260314470628714009282847859439953370489599004277853648607668231025225976120518836476279162947312441050468249955540219862714181592780845641550492982410603243874723985547139800061103346445244189376114585029405792711768472970956838688442886730826478638061566813725525898319316820057453932264296515598219083782297897232423455101997051355156625421139787936557882583732085171162880424754452120407855270760677473522922653138135484918624052100370200523546290741994024406941882664162722275142093305877749253390171952064843040454214471619990706591882203130764431663027554720303603511157874212235031186912315510286178246350898535651585447312979466468009877451879213042166970815956930909070820053040339985124898858707899447342991854051713033311472656098702120598683716876398746678884110324811508672952812486682917134403922855110108655896371022662462598726425750752038574951845551846400304104339098289689055817348221793087569488324722990647078966537169365811449755501407812926636988443001977382193968081635205528894006412734080755837469354802537244341508675740044389723617030836601097220988308912626515151137694270061986954546292750121269518742562945900805175688531283898875994401649737889674545581180110884544207844835912709007409053250831340389497603197280386719465084300142545037986336569941442498210385638201310241151475221905913157069744680706777045757347255362913258744178046009168508108588815683498695154354570959064417962879400072458929041075536190359508512713614263417678103827074833828887267938600821860429905779838715532770159886891440491591368982959684593095728375428153134776893470425429704374163189985687998402992318797050538614973930823003926667097290878962573192743470118003834389142954318080967527165520077050297482458649558166387414704436753967402665515988281021031342324010910850700470736275263465062665838964597287420869300459307272498102365094415520729856316579608330103827911304812821497275492496959771291429684118832481008174094298050556843294316095119614492674726898820090808218313949391796633800098478028933985766730897964047008694793188618946265386850706741449895840022612323108252347538086952235729452047718650183450731562564774593731788892262592127460769454077333979942102295216471150581723716306738084795266434492597746113299996807720455355467561186044203137720792771590355793734266563816716111246319283738284663476781523051099421177833225489712977998919356617159645488057219613070999468103076224704910096414222325978236247271693611071958087760234266237699925121883983836001635272150654511659267782881031938471470569454465607199247999825894919492883238316078350489744765507001206096901502864953056667698530618914116660524617223678244444862757512182522497765135686584215609109775262955771576436014278185164186428289879763674407550870784260073300727103435383055473709827201014297234661683481147090806377569977677740641452227686193567989735569278375051762385254915239860104526557731408752011868181689291510050590602970483261138816733193567537102000774941386344655257974053496144527479574954428707469600597912525085556848265855628955368268244995888977811523791954029510391611413238085875584695221992522250876225284236694900271905702875887894804473389951564093673968957528592636572711416735656932919515322637578096895625370291222902845154259924423580745382973643594351665617928912372669688204265947560941062739286755727774550529058653029550369029869535756750743359671852940168843089931570032769416469845890124520857321962869836265817287850792421345192825341547309498018960895137052111870294306925821888949235189895651189767091175689192725761045835062365844491782075614989738033170767136153914518370229114352014639938226697119285076427536007646533584439574759330577399189565356820152433148610174428753804936344792094681625385447153005173788614299906662581159625338210025440668434035496382710913265563480223341392548663188142762813209006832434467918864137335848852227394526299415525590909212444405025634380796754205322694122235987603658792641737134740400334967355222784998219811769240845194566970141571158222094295785822850056409491845305835406663789892665320220111373240823128084832602005219505647838489943847221716619352701781510084047341006183980436551059406439013603097241010634044478110644465415395484061581267697267579975011591696521781015389080880141043870972396013500095393919145162530630688807159653420788966385787418454614281017947647444805863511893033075018597324046072976780254066030975996857820676544162904642777171405697085384785686798136469432212982532192871554940710534004373238128739282461894579960986171723339321461615191695953908298802980511298966301881708083739047285860937220521578028242336740295590822996932145863057674946106363552561003593852844393046180971248834133112115392393099414233111488893061281418251570851671388028299794748527549709702222288542362662936743800598152577480345960071489354254073269530793989289640141308844622786629510012955053075855352439776730968928281064536546767691451230982282855330331917771393177342829578277645678861756299534536032556081393661940153143249259584182218499319535102818924083527432430620463520884545503131035519151778620149982866001953629550804641211738020721597709983339084204510743148372110457113115958715188205387058515046739993232533628981923790173036685919008774580768344532098274725029903508436863013582403299563156696798153908135800007383034836724817016769127817861118894435697147642610698025088159095599296236819441357236980258385578091430546145585369134177087999596305054203193487062566740561220806947456425312310738795728736327370404443228963687377669214519327268269637995301143688133894168192057663152157135353840656187766118031962462252277473798671992502856816927067768023902304807981552079368350310420717531992467324851822099736740311467775354049289454486399359906267087881507700274298603523154449707636532714157820302858296917084914315232537762763788996291052364893122129427947667474328466769510751192801106818997302349011239764169380422228315777693171716998092752729963950029975673778379983983508739201958519298234167333478266381010640685724768018058909162313574229529099153409252632214943649502730930216453626218029504400033088741655828657993905584936270518457910025525214785382062003049559444349020533874482134285571944197101106944656557103716422724685275899037614353883259256946144773542481621038761616530547171414951822251834765349393074251404595072508159394259774360589175534377189550181510108105194889867887229533450944566962938517608975667825498065379559285652011898554753356226837799411952918265046969206204652167992765229780371192802454101505554442569362965828204549361553329253067574821269128952446056199491474625621851743461983310985200154681627476181296490240211495481154489496654938987912659440492950834375075320331732778592554025058789411278893122989975350618245270184890366096091224094585489443814025378243819803922636872233607392728857830830255593537715138608417836794589208673195230533586296486436657688922574302389473490328561913449992962921073684418074826269767828881980206604289733190973183779095089544879640262996251969845553720043212778930901906915804729139138184721756833320910278599334517304055347013743879233547289258421734113673236194775073401410075211025186630000346534736076396558088000745294303083633471398729528909570962357545270735125094923007710916981308512249773154898991175156180992962582883006279644382391756577383398118373208491317153588798905386497382611601811716421457327765400544218508402808533744680514341136169531328460755196953291768539549676734484348703561361383520308437484463029436515545245928633298082354533962419915687850778428382639808440030063093802959184447565726727207872818093656677576163974286172540068298633521275935697246326805732988489631895651057666047377662663751148235112487508231695686822804385258413862885436331705102003798791111905410929485764889077474660659340496883315702778737338734245934069346453176556691615145527822506321726368395887621654566027669870235038273282381746104893184663444470024121810575238877356008414948565228330566412583648675143296086692968578485721843748277803701675271640187963720697625427811310032647873564574769437722477074757742906948149918462418924061150545689870528182935029165478186586602866984265586435931992708026578065655528396837745058934686810594612581971799398094467625043532388848227349961833562174241045050757265598883629855362937436120835057434305535313429191451425874209613783492760255091256210364177324493611257730139334147110100956452294662635616468980180389490213388708794160260985708609386662687270609682729825096032921344553860521332990589215929938866235019377163826123110493875673856846181893148230802298759290551187787484043394371117609263025803884697680038902965959407945679152358790692464177829507568969864040963280019026987108433981338958847766949455156467848389336730333726618826514392163550831038203453990680732949259827754253562708022164710047496021432890678183964857710143118197236868224603767451765867987916981735997271150077668490652825657029090682858148700817320838083876160243133174288198809871614820731239681168895560970222391442745097085616835992717570838542169077504626907534603896439423893710607065390241639837080694511539438185045124784319306396448279035549428184586282796777247094221223381182879615063586958529020558814245003213876026404206260865614112943060070268805684064590421330807488959021169079605331595244136932114811780246357588117381977539531163564527540971208127188530091745657307730266968160495172154694528573738023043315392402616385707316126059831532922008509860423710522101126009184876164262917878275713577483555075335038493160302190785569947630350131012920152877355204415900999340646408408844217380131561752033264255894416945017236529152909758371736561377994361039035442219639796160755570553720989536802466231939616488864300441221316645298915448873491346342321997694703987068675512863600465706531190890905789607551582864913791091306357045241692035317989695843279212449591676951201454382870774876298349858739299519405681157715198727436280399083919840535873331325076384372782012923985831320761953421369652604970059323358431700545705048916096432072994967455744731333036806033976495576749258198022569336114673532678576477003637461265124662970833553439315101279736553442208114690842230080860678488333860692360446320352389317884968227734258936815783234082957820453511512319311128326728410811300870849179763402979303819832167325832813542092850307854110309134390992405072328863157731129066596405572923776847440536077970817081178666205490143888515476121108251296895243691701198333139754325013588341136681840630978937079667555691940082052686177747322605311468023209708784766576868132427121099456491492604021618528566250926357419776809402710138778949844676708610792314302860143442083269866378478109297723912451267211094669072618135442110914312463497511161330040693515432535795288142001842274205368671557708233774411627872625048453460555007091336434807514501815201512254348674431970087468251608125047972789241579597227930560660537485401762162120070271167471244014524564705216219515512165105902401140165374043912261634203409634071738685426521624623820683286285125936222261635937615550863934344720131723209845114493363549194149565091143321577024150343541183086119844287235154251540880207346651041264063252405456531697735171478875902386781032808823534484822981850230809916340311503449610017517458834950749226231232001487451766105310032733580435560812803415175602464512136825690096670135334662256735777430441438331807491158445770023419300821863143682167559609013696169984331462340319250906044953974128204877886108621133993917673035071962743848010911088312423692509678110392153157542491115562194783224887758380107614689487170905027079655083288083018917030359835074900839806881323489663193280343074627901529153685609589854107431878976583474789646794707008859854731885625247044398476652172508658137352152603450267383118278927550616290516517293608154567586099794919960995089202138546703074648981018981726559270977620847934729723468113897991624140572502919440096910755533457064861332828249913949210883708158791698172588875343305441629902642705031783965586917271697655557962648108809535878574677356439946865292241571922044733460316836439434047003420011243349450270350196408366845565623915624432162900804479737990237646623287517358364843358752307441094744234149160377283156760188094615071199613596493823894622999024974384565853982596169903864814518272978920902936955155162721496365118559650259624953657575845452701571835055708776709945326244102212322909259201242544254441651444653329775511802920889118698795213201838451264239972221814345389397015424566334441962540287295613626362379004947609746580146755736833957491857226755304602861190607240781507897910131915953841622869005417221499793929212906929138331358717568798127574668349090949186795433115306683607015805505373583692842486163749223432443327630931733471920124831467381792414069402586107388141401203574001365986572066914599943085726264643592032318221151413358528769403846478023868826960346808486558131968721687267546238614189573686592950729306218575289473336574633378748053995295416532569479260821811253388638922278214535052795280126504489457402636270780414036292565451085799161760284896243366932100725447342368073306033174610547442922614524572849514741088868597037664847023948319134519624765316358203860222927022606609416540155421624850597116718223338511331536174268280708958533583863876380033745321683207998989789490245102760016979153223491552086651372522240058334626967535865766518710550062488199127697400264573609770089807258086546886671950774597103533069728576345721576228083947605340910763163046678959486443120649113313393265066499151127122648075742478970035759928243239790492666774968876658358418760542037212579655671815933712706235158521902415059901399322308754589489458824954149212383632920202554179204385262599643002931143605302131060049290596182973606025922379505132665946656648999993343987517218513513886752884811709925885974192936047746225257704248826094607577132198652899311065236636696883634444763541222767406297089881285092696677695651276151846337421086259969892157863776770503911217093459915697003672188427320332830861834079224051563562971492745962630115247699378865914434994320457902358483793900863427368139354906670244841632872736019924836870116786094910921643512536777037899337758695482489030275951880259631900104498543399714090475508782680463189929403997217164816119391638392321833468631697538718520888153415676983738277692898704277127947662186081995798405648335048675769866681017253047166794833685879276720233571549039105211652674261052912767902368121483406314594319374149405791971357377871591114440822563685126861267953172810060745957871870235438784150494279980477294752976390730198919021334897562191631452625333445080693902637848634572043219373151760248598002332733522991298573286937332767299184137167802148534307013667920574316484905894491788704832758809004191326907956363291727731358004228935936961519004366804166339890980291426304004552662063011048315824605185803526469613048046111204402125266486243611476076075896586292453787337810509174605107655921207511343010893397606519659331362902465368154028167925002227411094361822367401317411676303975395810768322874128084486613889916124635163734583448535855249446205933889002872615588715805730095092019948670488140441190662164496396444251213671658712148076751864057190913862547888197266725353809428447230106176607498162487351145164335051888946892337213492659520317319628786186777431217423053525323164514603530548074713227621735049184761233759830748497395835005759168227769041587888982049164394090803118414884249800280082359996214807656831267952515736065589775772449593770493923815199133568732787672503202511582698800352594443509359136310019051703533400790031640337882283274976923762110916802061158664914604558233699220883796981623192732607902311759497384034718621462436194511645914823268988956359505305641507873484108176930477451742611744896621864753808014980669005528759585097177229667222869859024452808348430035302034083704474398851390293553286653970726890346526841963222883692256640130980590138449155422407735215818258040021231066069656842457460789157498525810384153497429829796445713054570766859202394346610843371129337214329485854093502565976406652701800328010365352280431023996795123863783572882521220163400242765507313044597114950956220875815470970334039785060644915043310703254929352089847780227015458245184562422660091437792745160703132067068030697733926224691788600262252485036725528943781211099507199656016890360051057170753782398583394504509023213968219559129001080712769746385367958063779973663593189633284443589832802386948305688655748772118693282664155599205546242641462979283935759488927757375907961213213519466394993056133179999023386416693482657211730094369445672035112080972801158658731791103198540041520421736444498048709450373288099999192415240081792150274252059812147193165214762567295898788101192559715021100795639587542516335235856460031460005888738476442279499663393715077381063360773818775695135864007653096311219663667970546087958659519309805115443315970205547669289383291564118164577352699514024472310309303213516323577675934332897670301464859128737433363827747433886691060086006806709264112294651287068976809565224934234316526965346801291133618192327788491385296807506738396727461568813178985366207923366809869987139866801926054940629589802104785070328293764160585782619524452379758762672758118113263485478745218593512660840596145781689313341547671390401665112894234983479933188156801797114751805946410463866746853293483908929338051334689068341470793558524550573189924314996184086410544648633158194629630632854646036308226632153447707159090577570012368442736042973831758216235613124471405080860985444552753247937781940873369601688640467552918993919843568209049541016675627740977768096247358084874563455446288472277838273247510997129295292304368246279887197791052181948229076393933204343355781028705215435388246654653021471445959149796569991462227818490503047149837940019591565756469291766258255502135761225108964887270822517101550235928504950705286390496563725638959363594230845778817614361692683684028801696118619805137457510452537141467855273745369359337064263411056353335094979167507839100945350067474220591379976611067301975819103183815040707105585831706870091658888278521775621227223600457639384087814836212999628457737924981091502001474670176570989655824499376041061934920051337496874100168463797123993014837373450847808939827442907099432169117320282608461876924949893646622907533211823243409079205931028395776551046763380404430769991265265387570261523766827663786919705544777487325088684838959770923882570338730882997341673123838780452967097103579139566092956513098156524645007002608650166952809864711420973544732623560604246927910639270483892907721281026057213521599545379929162390480818101993020649456723836199269816162708920183488871861284589529268112499451741144938997388449399809182196072979318008015936190740324458104235097009757254948998010846413361977097195574920119242634547692431207265618506544435989378617726782162779761434371638691481622672085032467403585190859950737263757012574079238431075767643299043421124924745366868654002428836833197469630760809738728535619128974605748088978424831758150749514201154454355168115809046749563298253342605245601844396459682618546581529187031960081096581506779907940996970468499318939534003794503012926189615694936856309545015293833813977971888906851469534170427830878211019885664223250409949912628435967368827439913057354976559962369635199985017848026809630286131426502056652343870933199586586769784522561822285223278508255723302383628368459814871165419917359336992924230731079206860524242493421682532335850007025542293298349085407214200368382013295395163945479865092325835377474296364775645164536250354108209117831461237078146111047818381493646850766517834753818228084422539989554182648298896361716387775882349146936364059999218360122287723342912933548131665859627733949106518233336399665920397602685313104625049274204035470777399833100145636800689808650996618534570505713243365861145359859722785372813279881709028408416753910689438237278412131205567509946752576418362693657831278325745908471491077848692065451061954843366475217605759575793009112701823074050619770357629328098654989864910071687228802889128178435219308685264796565863576160706458687769286728980629767034249469539545949511328975280198408314081361947212293294346588701264966145606969776397192309977161475045960031817625487170203153774208067340887673095812396629390339927579551987738057681289555665208149403280665138090027517647842607486503450531696495931803942657832113554686233874671863796563545964838691772598483481835909426817983074742314779828923933473319238858825427902098902441441003407067099778166518211460538144814899835617923531639556751988499242936702769816495070218573809999557616827972395318347076333244816681474756716423394410131746410582049510940120880841330407688969272988445166039811596015888250410089572418422127394847697848568368649983130062342438631927584993884071203222559738918036180401738881079400519451982535184926327645510575418177530384408665601044290114020106065506671328485712801606812814854407046609010721597001596203574145965336242668924441061420534350724856708631743881044904965652713098787589930761638021294436739443196759561806566143401985215947775858647154311313346188538293063090663776186799777163785297651679717744432745359991281890105484124375704511572366519647674130256781219980836293867459905859929110739959432630942238733884377677604239215536768621920228679891782897039797293694299952783503264187612339139901375150103441192373345348027522285526095244476385204645320089134346071276194032095037432966770171666718103603572859910092760545764286114770284315577510304553459622118913601067701049148379552771352184429026844807087246595833062321822178648558702789863184265216428202003068572005448292480612254604243571437234657622250049251814906697639849273964426931473302614968285696276530464066149057895229632968774278494307813684698378046850298549695655076687307039642571022995127818391938603625635441242396542157842512323482240992717286126528553440986474529571395241634702835079594375564939158726324196246598111357876908241051211775816304836778768398834006114398804793289328382291976329561909971975240395830359520554639392538428807278866420255424654381031465579190117562000386798958164727161226248183772587886063478761616631906147395888580288826956458282270417363931132766115993810995203446424099069557135456899860121273918188330678108206986364682547691208207161680892091618035712094595919398849072397936723247913348088745915265864584046519124003427129789680106883204191253345380407996903732586954888569162696030979817222005060767484696003333748027051030791814994045824166644475053347635906178286063729407136187270290616526213277150712671814691077417531552584803962585977993815303127812281765612971271652914556316315885431252058173090553469144855469043152404319266095216220861530757815441972919000680067672715129752575199298973494397473534018565850311407579388413340425846457289755279733718552352655966973728979554157863866822362104846899366641549038867370887249007855070247266592216350692533572515102055235863902314600817849851433768416771292434229724755707134810125201526664762750324874225368078939079881764485397818196417993042890868256108571806369023022905850833812904814533389904721691302859226379073166451982339480328545506897392026029155985516645373433620723017225189677530202186992315667192719267267031972666739105279197488774550622721425884191092103050388336413596079131781325246808420252645738968249962743981269138464499873994936251236989032433235583399003533758161835477527251001102503811815147109934796489802594347806752943338578900932788262692731423361009199146569161177058002773789328218040282625108346080670125985111636827909059817421664402696293417670819271092722209473045256528738164931600745869135598556050549473797392537654021958199196538466833706376649084942225401427351257425989903934767118196832606425552113410464709706013306977565931982473557104101903471997293340571609828367902503003632450517447075442812343542788540864226523643910919166372212578227414596813254248025010177037286135209992110297514866645399086441380731696410437956817802706568570395507501980646501185325545694122465822010689230664837230735178009384252781072610929392912522323192237714717635507961510807891799117042484752612527064827622303623474638130375907453999338739189399626170742025116937770332079841776010719534535739103467307957643392681212019887360773178384989688315756331715372395498684737429250308391179619290141949170102265151557799665726735181451117843807313235603775911788490440853104863152512117672873108629316684890955883737609138690776646046754800586675889915423334758667114634879543248878221046979766033436610439008523465878408396755696000129744210568456817496926529121724039883391013723671319166258717110646251564983706960516429996228767290609702456026570243134610830848977031396507883706536009038881254580083058836925587578183605028224486639732439445516283319953398665985054892900246829217140764869989251561541305025357184588445256410376206017484764508173564136193288936748638531247061818894216995348083044655193093533696184118509166113879791273368408060355619056205508181370366085754440340557263001171816307018690840549569463862648503373094294546352210297712522387981143749237943728480950800795018284993718157003943833122199445859142707395982691724913681540425816219915394277036062561646532970699366382832306967504231688909839516394085362549247117537644396254990984754786190667349293630731019129755263122320651881527326352549571027181880941770620397263710910093919766034311425906930850134369560588750447240243405786265802435363306618857703330557607032582905365754564978150192193644312895060518631903562949200473043914694585056292868516327728130563878562303979372558448103135285565702184198267237238908325206405076859219518906293048685283867012990699816788030839824537127307723969536910042131868253238437791761418218163025862594721201030541008147150143552576411875226007190117269752230637174937264011220066287312030189417892457294812745716531598481968177406005732270847177239273597528665710040395146603929206828233945038791891204446711367650162690030855934394716978344945363789664032078269175593400200420974720255228565515910845256537435714812072683705186379557032908194756737409760828733794225526485903601244708521048818889737732926150023397234129751534567430882613082579645010412436449332398618132835145486881503736928276716491048075297487256594503330598041551390152141639976528086868842958404447423953371172089773698554820026733015341642056919714545985803553029080644208501330570853618930804415617208566522119565178494029198485529778444125598615401700955653047001623170272038450300401884119250022440006309297143117994355803974985864699379435976983853237737185052812979481908661634997329863135970727364555137440578792663450127678120048141388556315022901830996799622466619461272816090375652938318943350487649401948463909484871654806460410489785979613078183325610534826366835501562869802292839918923092989509974155963033938256723670397948457563175657200034673234096549078622233171399017836353840313258172628178940293901961345306836653395224891880959388830592990237743846166918714492397680563155251919408343760755211081737765497471608438939132372230107756156363499989437040418641436588997034708503779875646497732675567465781829350316741482093580541109567351158857494572864819434833772811754519782838882093730862436397852600957718067352083906058618197511308210969383267889832765606761229959847426180193682616649722340426026868453592164261679416322116958534792977752303178467022915645944105746387412245961661403050105160328317355011605014527238343281293084952088810628734116699391063998604572222505566404398018883116642564882716221444854814904970443429782106427640343221444163567095104648699232315313895466135253412937795471830824886442235699971432839403145433106819211973672211704034114538064847356400291402641892575046084972447004322446034586807395864210566841255809324360394804242315519816472570904794767506398259144000684357256976604469904970328207741925410345898004382219826787256915328298542868797308774248977251366689706363306100628525526400453462742355756460716428344099337066823340868976813745320364672413290803516086646714231208192003861118082783010172164262379180678778594762489111908597711850474719162936366126186360708989735515658960303165738154287087655891508774809708610655877696036972029191430192299106657266247401548922343365232180893698517256957013825426206686978717902532166305764809281114169883518982144363792333196183069174579473077448076993936240410422011419725013851262644720465666268197613106046436772365344888127461431990624252025014103975579795621567326384182243087552695500234023942146471708053067478819634534337558409717480869584859255978854518830073987996265505317042733665501477213218217867768948633958950659988072257181722826994500062025928763290487003890311326401737774490351114310658935858940262085048084490435571353583883548582236400807636955996026543725150649868388032181226774591032962221994262122488275949024408025606987136217580779936325398888983183478469899188819287298351136481354125272494078719580138814704953837694860938080406329813055320432024436169458857329636398126752329373755944857304218224790967133247629654024676138651042996144068042781900218025256638769032250839648528116582283620470693727389172254899163596538175816326039837279824427013851049515737892422616356457629339754754174455419686236405785149375364228694730301554732852133124906452864480941615688284991041189751911161250246095863380277390341966783242494689054516534850602710019582312746300562635141369587679383497463038366101171815708476785416906817565921874741326476754030000339300455588985601646889872157588552196999796201363231169787961173320423029805683859032578547452954117249767968589104528482155427518205493122509137410965328722817797542349829530554694337450416228664452157891547229454671721056115413585390109216192962588489948359143192203531127567637184265349950819316295560900710390136746407781446212267355314180985095535148403613364087241080191602854246088037139291581657956951985627438610765266291764898072264321334060414779087675726859960260122929833906757358491564143705194267905245719640837147220921337934358721139608991201677766826045127395323139239119824695897877254335903930239911325777188185806513283976185984624187439728411254871838781685702517863211106801866029139649281328915228777043090157445648943581707893594067359501855020680520962923083550738835423915812041850667186646968800418570617549010570798261525844591506386958495269747030987194810335011399078892011581827169668716391464627997825558764671045472040789797091446337208573110269778135240862800964646631352187478551575120391889946880521293758751794549132116496982506879328244819664098630873047043486724977233198816860973273105112512157172113024108016430122499221482991678975835526774608015794121036843135523145893058079220277644804531674085591792084301569959529400024199360691857337245183908860005624849341953642529904991592793173753015430583934076334967564111995765405688413078085589418769642360734221519907563376352683303240821837069609426484310850883480521965137628773100406836181144522546007953922222963309044075683523343079614890330846426510746436655248681735433687301410389875313946082241923282364696558659011119204054012533766411680915326701783135866089405433474925371957994837254595407788373750921544713480323994765372816836404123741317338543673680578754743229701896489846992507193681944437123845948564284382370268891539142489111196762753620658785725413896829729731132724372512329668913019561125848708695310650472214803224026036378722737207698388366346776435539318291855791465653953423111826915647797107617358557923293576079599413607114787992602723554714929568976822092271172860981239824855874188423894563225910860257183423838035995373076952320582350338588182087159975477242040200729211377547355728332533376519788060122855361214956850729224611995885756338722745845487834971258309449273013076054443835406703114469735780565183444041077155687879291644998990009881813577217370437903554668422473244439906909827739739372688251427205896351416999859825080234133184671888992190316812253247823164518776849649601550985735594091841094071948337799626664277128305403078287668753826263120024555509087884913346110220849605956127447155102375644912267951488643765306495741912934667518171273714823560824162524131714218345315417215549174240270624914861923915240975222825710752502568249894114879795259137543924990562958476396634849788145884429368907134008392091449365263017769129425029059757753586932150658073465430834761136301901855844577512875060905211518297183240787012504713999199101695521037041222858059964170276103658580869192389645612649818953948067043837016708599125935776599779586116580949464752575388838902514844309910315199546562288442495356461878923489068634016166991566236445912167085613432449503412765510874980095149898877050443419398100536773298454879002344353454112732268189753067396633262584805313284703306140924657440203692678939487083083106667574342062512529211471480780472034015556768461375521091838941285092869067382271759450383267642132048770846964657915100108003304156837604411650090817629784652470371391364149747948213015698574918074334524776062906689740979567358472620047926331811259198961031274437901108439223664038215355840445477179891610389041117617435318559951862568901550714174115383682652490696504679407960911974399522702579732236628561548483160095958425870984800518568715835449740788290744653374127490275457541547944516444235094444640450365462627014839797916468900653963943649935215668182786452672489086758587886204470341718868303865347488312692379862941079861852461459850907906767396172594017019492281892040405537142572344766836645526612769596536097490674544257119087846372279639314342590830356146126646445211914246701734781421519596256782139267308851507944406032234335708964360214726855700084585405479915575556980019694073011383379946913021555821094615089073018563964590045252734901126896027253020633385976165303119277524451609773317568569126474536276804697761026846032452881035897324798671526022584255800829066956101328949874728878761688584238586208010306847224252300943148045815117061118524776159877477034278378864463039788277688562479915951491132101915389736445362369070051960132670926018941636855810488807334757887936984375919569751346591065623737471526858560283564452957791061241347187388097707092403789331303271545150814110282817143602008190362468019093038137925319321652007380347439405876039495974198773997662517425135187784798634414696333344722660714401198393305823665869325042874753805206832121931391262592071019116800846669904768576544144863265796576961243225644216898938187496741268888360435546432724108392902862611471698999996997606778597307893842358468865580425917008287290724874969671069821548281403358926266252162682635501836551641948326291014204234570384653134495234002304958594498918828680959133604897916657817589339959495702126835039256090459458862529420330487907823283976575328618320659411680349875346669405095975952567464527325630367944291037389622673174245200654429781695014892383901748935432437750586222991676247062782653943358075626069415143487970730588017814393055654294714417044400214238444114366189251016525214263639280689774923451845677834797280867741586849596541785695142005393283735238315026656460127200017310457132708875222954715356335830868379527746023989579843935995545481831545938433624917869602144645340162603844737885853017512759576099840918259937469558812222772476469319528103393558244271921258694222324777408744933927850062578131368635395019820773256602227884602876572510254809524833676561895160601799941472104932899371519577485029203460511262819538305055542804382161322083711349332532273539804036021495853605745715471817539540395638697351339285489997614444266351799446819615709228684877332385231418207290415606826370457331954590287780550968769558150519098384951704273922388395297744689438562990406590999497864007357776598614144908289867340403890647411538315761958585364617292773916562115873690584538486226748474583879582863455355084996472658276696599314390599641406597905733478183455288148084528592221248211783642791479404023927713893627884326502018665951137274410669293246686333313424581416410365410439739676576310453113274930684324743664404810108109413396496581637800738473895350535488362278902392124997814156646006851291524788135667530256347504923121746002100217742476147077290990498699354712307019232927790707208551332711960321574767063361834699274687733817447115823161950904869625348768511607131089012793524733387430401461251524779803557552051018995325712383932537622478243861191032601455123050873696836880308920463114455016987596249510610599924608951812916751368461104838274870216492757799623295179516148564703255493300049950081168698143407277607871482912417352904397948997709815484892947612276749840953323789997611452431638425946403963116052188558588441641911002078892896930229089612169723209489693844531377294282692597507322492066398815774307225876184502616491655659521847141193689238471133944654532801721743865802208988489195938196223192090113065085280194700649609024130203416931398672779211652810045381835364688467760939728667574445421919540073131447054928258867764412808581492474207884965069290081402007895211932661457258560500974163649050235681786409796695296397109517708112888867676021184660450232477417435971390983344807726392233482008491816364208480737779279317627051007910017103083276418538303446842193284985074145841319919878678400676346992584414118119582730547286357498975832764116482908726282314056784993790497813007278102171864392688834526188604333393084396342368299402983619309444569878034524967300724355910411531924318119620796697459828189006946922522719615785697751414906220638182781896741183379703672017488190720556824437690380375281296627022066514919504852197460576890484292467422160168658454601029033312148043401956317622646291858775313604761884101037858878013184063494876040912979699797238654830846740580441604743433530729167945799780520329576448239428847825529784062339479160479036268282108016879105246781763959352227960251330907968776354420018562260212155052983129773620018031421402312563488019484978186026995514731848972493846711090210843888187610827517367150114027970680360682022164323312274996973929198819280327966440830994279713103668969602971994701488028856150004842468595002967339988214492193951318072134570235181765066554269691161037850894937140838147440288151102402325235911164739050235430014498443682775336552485565452915559729185697929925574042407700397691344426746473642285428065731966888678179817671959787340087579821365233082812508020352542022242088942534804093105225965221252614671626474319654596989005378711952578192655709788166278685508437202756531059069801541761435885244683743274223984676670644059003446873948160629559506089172526380727806217609929780152692207269264916900455933107420950520490472592299035146653337669644813006333676961381619185604818377503358046491210139113793167190560781088303681907010984587676547869552018607024970678616608509583767028359926747183889478770075003425124814230629918481172931575301263021158331323956269005403051346172193314333619634564244962840668392981068650378370444071551822213369110462969393453716138246091333029106042781980255992938380790447668747691185928743369011690825581474106974906075841509463476047264949101611797784417924274784754418103780304540833420025085952755103483936689911677523925891228736754961206583493184436872266596754878447907964070702284685511853111036040578282857235704146626011742772738972258874794624695793310454747843501207733103808317059557738534723310390406736417529104649776888468967611903781026384131560446794867918611450058371268577904991094282086321481966905817270713068350734457939451015262231974322968405807788301384213084236337230368578117787848606668755526712184854612436441925375877295989110088032087907503230511336565301206586828893975795520679321410822272946038464047505003045737504302560880050765750072440498697161246526579845466119445229809624973735686699234320091884163108936154574858333621326283811370276860212623521042447001588861886942878623053865956585741015286198234642089971412375575535932271975076519556938557526411697220365283584836730558206611336576187863780298092213460829636134211795923968912428345803549194555752968737348374762074458626440783434848448545529115808709260133907149486750585378391885849308737040163768805474922602846068483299930676188966405102444747871193235887230775738292825273019401969461789069902256914314374391997125430425315043416373367414734495297916056028156988062335088811396300867361327685451174932599754430984164776308123390409398995381804541257940556626057443236992725542172182984949609496199324402865781067803198091807153063563800973024226591277347587581101776814244582554802577444511333901627332686426339638224761514205096854066404434779149313839592022798477506398256929413863995403452383901932749074114700718374966544079326466181708906349530371730190934675861032808207900915045437852841643400169521454804731049250797135687272476698736896220262587507925014980796716751259689224573319525551646311357504233700932312472638057125020588510175292823131940222229493168528055160202911374897789148924106531637102699841219307597452265597030548158726760484457015375903189047738067705297100464789976971754703696874400767411314233324032506486364109694061169822252356423778670174161181501099561625019352524712511183757702607655906845251167453303165165365246882310084212895063431063097516752558284147051758708490804918842794123354188455245069883456456177919674931539964140599527624813611083041777417975068361680991573477868655782438238365034947435461785252009911292164086572323280011769735367152584304823414669968147603320238831080709291747726081086721401908141809887762316923354871064660302459612234027249739025030501168827234913892162433118180724352592116991615787315317844341643690642205138076197062394240868267024995028573950899580214743075698840459394202174490399912059130462085612493499921839495664087574263004831321042905226254187158554113191953033395182902182201698761710230712779798161340879454581211580163743965673242636086922883899998786833397747467780251911681116453811087067155938495049352182121892189274295827287064114767426759628855569601852104287275150935610648701256432127596408775429170341534738561783459059276959250756930778712637148053673072776528017149120290644715513176951014460471831853484033785101169328833108381689492606243338399319013560469811826390988665058537165949985595673507420915885628858773783578124149305747012009813625581896776229366707884725460090982503023522527999061924177148764935999208322542598966636085728671781968599856227978113004283189331775835244612761342360234877901162859526070854354425272596928818673368711906724333401173205616181526266593262865656437521753742819180551915956727792828321724105945635067067586373863242438115100346136357008667466052671378128784348897453213316995529930312201492297750723350211497690994479609834820442278006546522220959800209913950483287267210182656759068568229820109956916324098318197829387582966297051311711024857613368381234919911831709549755852941304619838498067564071725087332908113946847522003439817877640414126178863850813796117631495667920955090248553810061040901956145652859088989525587665930313418772207954568181137362915089667277205044832038128845018849669813785129052605197352822282038441776265512558623158017656703129662955406525582537815323804182065285643103108919662486110533638292317449733813655892973264816847781926186607812379255181884085147440212545999086839938823381782395221086717736720037628819614574708281816533566069217219265015522009826363615015594226759667203340954458880376265343523521555947560545923311436628220679620537548363006261349501606350084097555359591441992539005249953497054197439329802908418653260608303337689387912982464811281320874910543043005690526556951349670081497269017703579475035410152673679657306384240831761761822303842256692064027684622428144855261502804515578762482970970762821382341775094143130516679390656936941354336969007888383060637071528888448262387495892656530594482399189705377951093725874171205382009137823298683618970377853330298384898493846054017861930940340501119088988261077046565858982621436784226959500873407262984886467085543032083914774142748354962103225484610976937777995194971417820261601780714631510402094024539089759684712337650158823439125445476233669048107350465411625747314044906897076125924423798920510501357736093753188854992457592973633846733830978020037699152129729166936361538953477917327904135655053911057329990411633191704053050002376892372016737058720343776945122987125461820850973133234513615394389439230613137273074940543329578014620524977749324687880084555814682410538964008297398549118028526030279176653580313523392699605902033662107278783686717146477568687237945727351223720587041888296739950728830914447951034892970045063587038086382838133140944923605403726314058971659918021910207215736770450480736126455087014538308825162175645089284945817417820938955919160469155337737902523759495105183413906545885495921201367791357390833564024428364371905276106312872242513473230104733168259203179209482038638792654763760344812798397767463721429849259460590444183499993502730395617253651400777054537160747016020587884509336947512866667915635792934762636766059284606275920308256137803235342244054509294094990046013957815109888842335816244114876752709614870566884481707838745138449801706488816594209785120096603565783521926586362678609869460505659935270230545804788240045631383933274719289172806035769761891686257213674557793328557968362175401822902265231054970071246976002357512718482273017692041634274179631026772600302581912014802871746147894607802709371725494343444761045794582658171119880656011716415168625421622298579719087878305485963060940841943514651710254983173232087532757621767832567632826096182288014303355395164612388272545999943971281056868209745744791439692542267090502112302769086688933118696311658330722472565460908633224228019609708377895487852287288841201233261155447246628037935304211313171822907584363630850707498351756238100041120413458960605694749020991900046764654908304437636750718601654303912278792601301874292355474883840571497185676067474073551188129513018315857331014924218283148299750046723432586177998853454438004430843621291064427667643007693846375032074066436618761928288868323263174596524698560133084040356675298525938960517217694617701765198581263236953600786861674006269423424727423474382495904420655765884178434308866365978463672736605627873010089410986437014893205773719515553362308254154969774844337591821327000697964444729521526744430821759010507021987541861825540916751921064454511541146093130621917516335424512302565271459817371153632392076423606756790760126049310301104634814361430244202684342590745564393174132190820313720920817010381007584518512639485993968006318973945883893502150602946038937267458377587942731729627124071222860644509912289221026335342275700754689119188705419884633879510550197247786265929248442754474450290800967833508190824980462232261778284078037333735335226769322251196958506083374223906866232414373791232499893194768320745964040030622372486662654304493744416816996086892667439001504737740900296764230068037998083110967771756477777955382026892274558597818868548746755926714544291565121355674557411947004922881146865204634645935786722740686297576638754232570242326318825994888696215094351076592349015315513185446506040473414682734611892807202525135351355184935250473068846927961035801464524077935744992324306710409724456676180999260483300358702917904181120400311401945223313600064675509588523242520280411911363708591159148824313426870372289005100415227268885585454171824484249639410247318338169311819823413914163529181622220392886914039493996733191880028084497344785106015015944805916907107280002804766653710712736575943439127573313978164508398919091656095270068631911318734281224667491468735274663687573513646549208660280064913440350641677081707029143200889010719679762728545905082738500820156336355598556939193103804934366135688899784872093054729455866102828465240132275177076057096458993481980492939637044938598262622004268674125932134900634830289267655923770249807189051149824551384556868964054579493945083954506405429944173088500867696263311872009404641114460502323780173206395170964748958699407271376250485056212917673477049127075277265843310320875154951583298075175451601861969664932600250005266075674970201628659990924406315315907228289903414112837680249435615685230888161404832389687677228795669405097687366076857932958437026141548614548313116789174956869122674999754719798028200676342541245344316399496278335132953397154241599810419941984988528395871222678755057524609314841036305190288192398920551332431191578105224136636856734076460945390301122159318894006473685669906552808601673007548858758454551555991635940127215854199627153818299461413812630110750104613675119857729774269832611371420509146234987911334128102422996993890937085495641389273590052838642682957707723188067187964681682835535357783300863709876315021638633319193824480528221594294525739171520740441842855431524765061306701711339984533151345327863538759536066693055116444430705397036530314626355748083866487458139829335903684440906769801630381343156423956204312727471758240575327564700832105917993967383162393395176881290102206860010782865518828302656729445077895592861458816485943120780362020573423482368808135622511137489999160383195240051576619915578216447815911899135187984114451030062373672447477404357984986502552245549740926120999355678536605888200632621882320196376072590461773869787190189970356677426273344529826935045381030818553719562140208688258696137223557016560905065308713615959539436029443939764552693285561565695617473129509513290212341122015199258809734226852829595557469699735541567242600567453116494081916598367514210752782703702899678388817429753437273578393747535359901819991652023272402952060104989427991887787166130731563133469574066479601501858737102815536329951563960164604349039111340749106323303261401460769842476422195727523250224148457917152736699864152889194542031339428408592975314325719194233037619458058433300528665429528307817143714572323603957797305265549290951255658733730794563246612122817865161111367880646761126354628084165081324395876328814787432005700758427751658384349880022177278411161528778551749538866885278321476365528718193418985657211440955170799303021168626246409297256643963327231713076999666951550094392637347133204767164159173353380871745090688877660905936789062231375723058076082095004965244676482572079713070105649152913459164946253062146648686274286287377890900591799775134814985981296350234436988098283072600566471544921219202488839988008738689771596248207322587837548952875036481567947951296307283540907353968570776634646212198380065110678047543647267101539403222983768451286415515266720880901958376353558924885504118090992817552336877493248838181183902695695678079449348286081761664956682130360281482424663714976751623528404463406749912726324202141589316099856532556086954324822960744190395003489375360620084231560206103595270159205856194741071061563570797324136231588797308940065001519239957325331861401970691886023693298263280632899083023626189323139394485868435032893124243223625477417538579872119344086944510422880683085178797603047982352169516783292267360768753758367439239117497226957299215364162301287626618562927149997510752518689726654890519144067261284886427311229947693038975042798634460127943910224046524400430065942162911170819380101470209063067906732578043381619927325399041132976393188121922886635834198113297478316470663266732067788202797206791342791012533629518025163838050321580040340778636972622270682033631150939588797422288091386709919659613543734276568268112670303287715109892002610533956013917687454870949686801289023226330062549754428221471728270602551410138481891955390206510404326386111819434833929846607962859414893310431319885988580666555652565176603196797018904396727767674444335329271121182392282053403495318850452019688837167580423794701878997503891073550373815502329018774187544113995758179947039034196707617834123408049349054862681928917420126202435903066982477396712874151854350098927360166520460743156033207588030949259326837204231797301621970078079324174387258994176005024663366232519599553586999983808454883174420877749080887192741493387334067090932612552964513739592061851874443477005882649273097682543295595543974321694449947142662562460033847457858379783766693346772839121756239738854274461624813636672140371575967787924935685558903514077366492831384939150402803085744268269232238475905041561608432937308618508923020449995842425409722607159641080303410164496656777405791897605177555179824054303533937574094561400263189953649167324277299396350372617561124042450422431283598412793615937508580703050670061729464992194811226828003197700815543707898944555636184410214980097389462612322736894916977088514339302827646251174530183946503981432127723045834365368416064947610181003257897772942885765911404818033028475064780838272955042284389783367894083890273574063954552479022602056483572478956918230557596921775575188979730143738884752931665196124752536211212873843221167629295577648368523607815418472356028810465104966382840187332487115595170087456384549431942936597338234365406768039230832300811661270641206889969169402638465645533165126808753515733277179990919820620667942548625697492703605607837535544938362316119906826971331215336515559026800335470095913304223679148601021306431905045060444569150581904142230671564538036668333402821040111054655482477749427005097095458438885074056777909307702075493421602535133251750884480348651533593556428587841443161100730336726648539554018245729556212036806078698927081729587671933250905030818720297930491597614673186905356652497997264866872002274862681401389161203114283039722118922546921360403663917027465073352695680668012428242817339687307682395189501014341855969349368342778702089919351603857037925369550264948870728314442380982055884415297197913669711412618165176183911710866867452737408505135266125343635699973349873751265213065265294415904420885271717202485998217452892624547666755633127114704106515491081835816632382608445151311183695916857222406019355267459080238043363690591769794023458848335086865780503357484468020110246597483811343440928335368903313109877214110458245486779619404551021243051447227143738947248166486201919119089668361065618941364615354280328306576996889463662930969903096001667345449251980034543433125968312638663400332048197361442613745223782496014666143510149264454634376787185489690404143161957044450361309623000613685709689893958012313600304119020458373924732764098057353024568244913241623221615210097196109701813570774688550891575930630046261018295987042340334601980598145203034487580887914903956570432856710606136824755393515175697519045754582133452896786019684574652097908724172111141639437754699078675354126595266542233816594595571188246254349868448101425113107603980846603020617905722833390369901286058187777678221907978383197334956798643355447768313674398257443210528427202323187156396119956024047593989779651698987144533160556340796670330524187666735852114818945509489725412649378475068213587813528773591889888878042601166961077064284403847160670100374518078790489909247909335811297451427036147482310416167490178081782612261273725617746615152529153612506511923741424124800704856618613806745962121286433144137120942227123510620517196005171882038624155374196573893512544245211591214708967699006947005248521811957396250826126976424777182909866348870508130935838044948082803884138794658749322823761330296735919545566050072307738591075710390216447041669116169593637592624036348652483531172477000350745747143677335253409423165199329789537986680401227399370522998121559283783603549127174589258301993611128882098334248508225720092826054982509507305807421850116231829102281661483155782506970703839461838693183830579921215347853195545836819214116924816704218942652025753177928208531557224793078720121698143328689821323443465117811446663511538110759667127089390249181971632486314694977926446625332981907398189414351099159048937444264236400478634040228694909379094867431240460646824259552520316568114472363330298418011476546020620976303134590274103883573473188503242424813981405236190616793555331470354908957481683910967924906865528964664636162535601975136916344402706799244188906892639034750314314155388691346863347969644684854846068583217637113348673592110192178069621232863041246976919388182580721497366679019106867910634057132483376936584404722507805381505463275567589780241317339953926524473319292596200548269203665737422025590597035027857710436158183304935124954772697028388729750951674111282718992742145280170812370182669435857492481002420804955906283384892773741110630188243742865446288270825050652412425195905901460059093805317543711763207575297159696108918403278352198272916999246507291017519771260600142441492690936607823283425095390441111428517257360957251605574736279645954793114891302355660545688458108547243940537372314122479314212535371585563943557977857400948969475848659021647470006261751328930257255009980397639400804294146822180281734305508469685542177177155947627035900222180362992200831261014375750502123381862643611596477083150357915693566321914826545226282677430263833433837588234217629953911040195611259484246957875396091928915643213893758188753292049905544449767593837506561199486907928006128166701407152694395383692457430137526831937526921713151694879696684969027432158004012906534918629499022870143108546259547976885177125095661605929196067709592903433159054885106353212831478519009840295574400357654320958240958906529264747822683624806112594820386970524237113690052553041288392052701222842966327059664682755614482077830628205008688024996268606808763558710205984342958644651244353781035797506277227142675209387543268652662595118113426763098592889404344723000800681454878600771283807243088676309309915647396129773655084212100216074207026476441399721540367024036039341195344771526508689347056382672301634620565762169603470133760252494275762089537905974361975685113085453808075633851631590162707488753659827455942446999680820504304305944244376181766663072304593937543721596030325813775360372226406231642183448270608030066665295807408893094894825101565064664202059653554011270676836122717350678860497991325795060106172333348736163857457178295193323909593634507512766381282332691361119176707104904182591363910683313520729477549889748750535784555413898517066714563273482544269461261971320462504623284965254796441331606247531825573970740114876129009191705874948756750306633673019659618626800659842072823974446208927039501227407132655864909735032006570639780043124597222138879646880214814471856757711546846242882051106603462953418455077719900179814855103819609522293385145723283496419421371232924922765929169111694593585290071342046143955736458054876903106361243143628045341352531718687326110126986123056032877341044884540177646274741869368642080600413081893865364444520154818963326816636668785718931957777299997343585246582898645694668112888598533107392101392697158405310003843131065112299296828054842653122668785296263101761667741166273424209520044668466843860458429023827338354378752514071432967872804122555240271301210342872118799871077793291419765301550156003724584588219104009486141009166462747107174226793901196196226099291469760853798792563554368715357292130392063101686340146436469081976416154915519967642179962224958267156447221290832508525382049959938204709663548087125007019893037426233923503831656892725041081557242800215312826309785859985394691356227819925277308018735655389472072398207014996271881015104929119951755006421976480229845687885375298248446397537500172216363577989305071620070927576591261123047326068744146195803703117323702907100263948893668473124807502730660306242850908629990885261691888353954260355662232852945269724578803504192113539328466816102398621901380077946546268786723136366771426977967494246521987260343290376523698115644639201296008318633319544554186374721052645978146574639859307723171099586926013897033179942310399944962308563821574312479527416484737651178732989241453380730256259536544390698488032607665138881824583723560129303452578124702541612927180867707445464543011386873390980625235179536292080858727424404518652436363761245507346050083442134928098177790399077193330891974812013512090808159145198266817237988532558301696501360222806631451304960499379446080142011529822053556913960008779516310441662650171989689904605140370529713156437326579887327311737159116487423074866027776440619007578740901036502672581512446584810962476698587462730686681608058522014509637702411595077315523888411337668989078475357684860481658235692258825159998574981487544133854020847747849015383927717176918373817891463556428855813356348099596872319608810958495520918118889173408461622686528307531635833896512181768870113968584149131923553485668361064017054361297580752846391179839972166669258749993232469526790587538435246604450941091445732249626489999623865536430716300898245401592896234796891423073222828458996363978726293569472105645765189708318620687705316311520251731911262517434854209985113417063434423922946167840766561158090737314727715595992787532394341662703738249264815011559600384866205824809140659224104756871766404989110057906222343691954937874735999721967607303303225216011275824160697403384275680131290861697488406346577146849244574535891190330100670855070747539231296733896571632621796137134338069610257188170632412354636522188782302766353204568212803655784095178729910699770409253975472367333147595201394447813217456114053044132441310214271407629743384067097614853133695100893370582636848675749055363125077540206043504538798872966944347140069498786653566182311754047812515901781095738108964035320174462565523380661151212822559643550850219138850660608962373657602477569501036731287010365430800005061363470639691894553452148811274797567930861160747886200308733297475151309749322894088331812449563717800729445131764494682535345852984512939023670689058939378342891086365993967342350774124176878978141139634804974528356497260729948094252529328925382325145744238992937567111265628427654071027195168769782088203830002147186910534907764382940218596874188205658143076598891441414591741967259024284649889236598421819101765845135760276767303683264367504549662382414795132869669570689807528632099030949621061228585018085926799238563839359173184352173941627757673562647219903677230008174589053065474813069297976941513736044432742736684893019111312208065092248204827851941266408839961178557068097942194746566175574577836101052261297105211003924069786460697129211361632681176627293117209828790767006075931779568879677877907312582885069328307658446102106749160471738400285629723247636167703518036058504159775330713275276619395508681262041722443464896679848700576697899858124686819791647459331802644399067224220915714006115570165776034574918805850014134981257060973852562631772646732592922318892058900029889826578698270482610096476707031279378385586782109733526215084077153674334894335196515316888736897407070745927955137075847500163907153146568609169974022567923456131458064486677282164404870286342061007673542602510358086494604807094835547912782903631300182199482504705076369056463756570984769971893261750204686776311284464808979235122611525951558193316128188399512111640404620641075339383166457905593227087388277353673798171182290669718671541211555709349493014564373742951669369227459597719916129235782924762070447254410877212692258473806697468772069611752792053155078765355850305665233146860869452710536197470042020558179292224865952965145622193220158527573556705328696713598190419077623239976444834980860774262104753880714037807247992256036472387951372722363038153014469076305314781296204914564804423990668101781388855791034041138196559057634438298986902566628228246537833886574506854152789411300022495123092580394163618131861056109710013122965157868378493340776417805457734884596702029406693327747582160301116690403547094841237554378971534124880075556356213619764596196652667493103667113543501805501245719118741825976655494811874843285400250038823079554858412109355222098876192186332790529214165555109851876995962739620034318767044613934249146339704440586854424000164446642042796832438913208433382203345755569820891039581125778390930654111063277418005518012269615582217557284536836405587416018594641712131624220263098789809606239742567513900445038936436299181258932643158844816643928370600779946066138393464209593455756990218132654816900279908911951706442155185690020114355434182433189854699559868270922064449567256465967488609165619891515583813618408272019976226609792423644346390779035326321440192991710787790696179349710157840419937745988968727703636977855722371557820843189773913981500501910453944529257958456130460616004686964461716899642878263940054081319983463655848271852385777849531573035873525375154006482635042326184573714855694145646021586431365800772482157882637835911806469232398072022376927611708098513136694800938472009060404475779243289459474872336536956518292880845498348252886325835180030090325185937153883320343651293863074207021084939770328933295655333326414087440145972422640644378347635947591980257422230000086766260978499857787302830968077522205720160155818931626629415505369785574608223898405698781249019328459943818356118818154302578445529318389038713241876519269069141834193040552130461866494400278113453322338292070662825096572975037043797137335798608275370186001962196968928760608453665321891855657980170692531641714958341113414861336327879374016021917263732805980057148104809507374892208192152925009067916864438781083932216530559240090055622288604744449807833187904766493706846027248745352389792329684285366466163678396134715322806070715928128211220398003904720704174504570107825133305305858842394047771043135327357635495146448206146545639955305102649434257738577457858925412397374124586317152930605330727796870935510885751100651968972682715369071641124522871115894943658727531733055027078708517382048840879973552677706455718808957357667633086900260405164456946864603508364731855036618405596599346727293526125166125224298901303042899548719426922227071926197517788778854361885925484168243360063106812807236488313549651424225610688259823214172805500203817922619108966943070033084573536498464172455806318352027993498673262072358817002308400773713012972826475864997934524105426615502303825693194164272096177725335640539254634591466676477367222031219890256298360041870929527640459024013577768805266956917845729823750281979907817548451258846580136992256226522805015721708565082482776654998842001742502608496131460922311882577260969633233096087691442920713604051723137884657051500557299076004375137221255329297676076747835841487958561289738459114550896660366541136243123640398224676475839543320785623124410247301661658715185061082765985471478402764416597696315255319982689377037613030498454756365792841713064028309321706879046527026478877547218467446528257493757479870954657059364570896176345361114390659014926418519766647469956853568909307639664829334808669309391493645275673758915411000715806676089034540518222946226852482911750113293037018505949283897159233566715867195283966103150063920599667220331943299550026894417623293175318300845436948337446951010174954236150831357436267599134996155949509887947244284956031647827851616639332878368145140553084270526315472373418133679494190001404459831384089310810481496818815364486407629856315835269170504892570784046783293701052648651546034216937151953005412020337426639132693619035046848793538305886536483440718063054526107385871207439010860313715084204759450590211407907378148733976476226151269684495250799272992648095487026253021556587681127459160470394136433530791591608521942992116319958210835948792929688961118518912883129292817322291723764280949974728067931515784319383811347412615324978729341574147922209009831526154817422751355449959541885010522920974434505884479410981722825729125489141197084891760992420017330721698497890442561195593948989365791326827807761034638496334218124214541237706627987395704302687594606825975004340582820964095368305046945071917930614378891075932295702864500228594006627083203069242283850233519981995437806468430017763175669787216631116979316642420447791137004976865564272009465054352187402756009599737471769798867489558554965603054601846194217346792253602365354990244314440293159463097517322589737879874902257553014017767211586813873778119151669568182868302298147979057073085647846881014741559221302216718004564290285519956276168091844039098373115801362983276293196430190751497541524793987183149215183683503438020010491335059503826903565118770115364128997486908980379576779347621461206039244835970073368198968894465646884773086283659781671746355238190770031818900786337612790105509436331817490585466677462325975060029856830401890969762847679919507483423782706393679726900686548089248291385129779088438321596870939947927408723826747267360058769572106302388317969616081800332287388147192388745705474667209215269088265653946430443543838433509666499071153661372456470033693205013316760823337675311307393892795208138840944432093789972446982901348240343994643126314249356450813879956754059210607770872656008699827505599004791852111417110563320861859133588539284325262742784945993243567828703576932782254482920947272642948706641611764168569338221808527866145126512827377939236215289795777537928588827982470776054752772337392908096994573682171649567472810330506068199444207794695430380190300477766835563267106551368888687557008475355264046949908683327542310808707551135329014622166358729796783871172654301445525115201352384575112043099303287246954369290843499558989142148907560511094286621960965775420167309220653119208062242616656896777460201182153139516421731343640196624059235383564124826652305694037837438344712316371366440259526604779579996853404087491436833987442707897315288880602061960908151752795858847864950454612429877989880887482253066230376256439352092381785716111207031382865810047568417863140295302209012731924629066677940428150840334744400401684063819782735974302429434401438069763510067899187149428224109989950903400188764846311405099593580884285003035050434959853557235127232538581993534629471715497370428972837532069288616338256791082421461784684474848098391316201374673254356123535604690351977184009517842156387318693016273623598794458041545856679011280222688571229280668701845821760696826618754536271302979233132753675616279973732997598544157750835583454650676322197395685142940831347630795571475025031348703132267065162576157064622769027525863486475077200612207011219442240915246590977460419115107257673852541995303151269774051934801223515317794307166774463624922106071303081462868922453017003918096929141369040248755691555625505920556757455682155506461105765328850945768492031846845050671748766647287426170029250709911584534955189442099440794281310027512616562552926394177501412332647755999199478746903485193089642066670476909854151380923523661736032315586733034326892357406639221200882188065665836143148672207615086787849184452865962169474969033119096872495675520590840875756811709589089669156389154497520968868625213118441606710556814043587146906410262817986675004966806447025591491245937231443071939984818761315896116445404420986627489290793462574034123362877738635158400765804755638199706013424871086075886132930209763750474045756656547559413465594258654915326079033074508277443583256005711454559232316736061132080385561547830994045041373537225872227474207105627116408968648680574285122350573832417493552118027603648367148171182314193263804265258695904895500655003456240561386306344480062866771011740667966519570957634669947484940550509870105044579454851774927784270425953002462476129495886903167630065834807828549625032606345253373037167786448421880467353769697760062521838433218034521800885458126132572974752114490376893512186903803294941170149137282654732550707784237115560625374591924198934412124856415793320718601484306178570842964075884803541579102437234427653032678305767429008029358075761138337287944299873046146754320619736644262737635559081689404942592691496413625961555924778712145005165059980396457648161633557859620121696221364378350871533505276481510222840258449939280115673471498109542653262775387006566456001376672888845655933226151232018837422049105668615027145161167712154097690340671970219005484714466878979364209033995562838910911197152973448350271521679869022574315658077416712484710046178737025267109354406684227753607385758196333448248781180868506833021812434459636772751464998294717610313701502192412142755761906026298624627694232004631545585055542559900236355688209971316911333642816100094483721228008700462749198251514284334735786557527984815896194239268106292744416891327361889809329585952694522927275631414913805963554700156697185323855785022195708352828484296738297994312886021852557757820961043714847991520264082392257061594598294442909000424697825602256325981582995565588891947882567764490296405970934437682855651193013593490238761505116909226902645078492957088162601792593229978882259677424316208125240050131661427350582429403504059072531262049476792356499721377685110857717964579989510907634718956570739256886140457340614297078717593520527786277268195301442040686453355595755109260209640008662883984564969936493845871533424346983371562866398777894657694723266544917598910503941270909373884655857448223279589484371689525254019072731678091091717715707253793961764452236705141496024257692108901170913077624633803307655705408868074727289764181408545255857311676606727747012171931810828657227468141030226922003732590864345830445993423379076687003687970106359939187541657570955282555135790626696656533894898563747300493291243072845067277898677674983206460144321564653901213679240264696601030242658242924033383082607239653389673119739663594248145798310175609202346057486032641409047708308217134776995699006099709407102707951706675058590636067079200018296064827539850596431209283838928145060098665598503432896835885847625424280814774893834856209251726959533318985582167487901277566897203399168500919598201186629574399206346883924412341984521744001231047795471261774051408090600715346858194726483900524878645783443378717909554912213517512330192572417997639678673280951659888881683457591273892908596783671571281932681647270912739684446567907022262794898451174523617234692264046306102047859839146848792383379527934667490447076051895523524917477529050999040002559104703854111258289099362323374634230667171201270853913213995600010408946341161902691005907814504817317203525823044637256094581582004660394723791332915913566691066300154766445057059284711721706756256383295676296881368479915026470829735830156133955386640558063885568217723823168059620293442266780757999156911752520279272248629520661419456233134373582151254161143890967508623649535246093134387997968238641163624474397686582398966555924534622989342670806640933116877563928917966990906837473770004068933138837791681689755921676692688691065999565062906887047205381835027479903249942154011724439453702393739225079330276527377450629576872922493001412340154954245151357861910221579885145932320429198648447171716755672020730419068045179509084483767989156557742052039520825713216140245805629262180080178364577576301883581675112677479283522951625029169412831458725063594347160600876373677760047975094418477309118078321177644859535377824167866856090130212071660052868394597824369428701216961438251315894625891031738951392462115746669524545282759360826696392057967924132453813233874109449097107336936382197912791870528168773371372765204709931824793989584100392535433765680204737098765204053369815235956058607840167904919986001277155268926727276974783154126198420865387694708432118767726309482953299260368269614116925470590709619248714591364335584854059599316753953028735730003884625079119428255511486071292417267253760691075774292239977329689871151229002571043164822336203266216743874515328907539596357615915498673927373402095426459789508834425307694227877313347084346323784081302292895410519664684323909715197022858345668367974733692263258088626838001967140111137276810527177773175203837500279619628212522951960060475217946090488518976810052038753750193405654251380602030580485939566066672618864502302689861314450842457651295932671485555568888244241075154744421106620727139581699748822506600176214176639103101534982668380380581414296600657799697582081320709573193549442358795681110355726557777688990645746034229416360971968377148916932564483111255907163885166786950071033635746594038967569440473766748570903426569341495356867470058073470339473010251691204402413867017802973377556324128231918679117812343835114599512496063308019634941434966865987717490520242267609408759937540691341326083564185735021042369986530445550413681647561509428209016440449892906972062149081436241770936220526526959824246892116927252733285545517628075954965635918214409904069153847248858849488380949716039246823623861002709590408107780338179654266010987775207171079266253337420506912808976869834171123638321341981214935030001473730781904713769587909479522867443512363793103368146815670880199630132163587363135317920378987675284437141279813505548665576473498547098858925677781621409277489096882425488628543714044818673152628781874721157133938185461321048096219597451291331016306908680875230763060495933842377265428150878846828335816606477341455840246562312161451813239428758616493313412770412585861124093293232982834341006263637898644250600564131300271865889292853756090443371414961305191535932463582131768851983088481654646713514135427111304131025726976529675670168903064920930342635150041737174154452280319585298116133167746940283409518490919506547718288099895519730272570616168499341435063355591131224463076286450523521853410615006701333734182113218238284806170211303007349694457903345285690597380696453978196967647953033967355578663628881509797515047493914296573995185748967465474480037822485018767246591477014475186293142257356205171106552002068676398857769341445193821411793280874306092408497027958901326973400931469887195360669552635246445908933455292909418840613296162745565000066231387038875529004737420374220434158112622482440148929042183113061510167651477078945424681114588238511817266195866894319419725242846458692456104945278684226289836443316589553571546583763759113379929001806312285966112694477613204707845184568949733909415752154922068687947269133165821486995609308452034775700636033185810137175451033423494260670861445458408782138058905649229397337355913986750363993251108977240207750085775265940205368531544468013818271146036996168136754853558809555571528084824565391100537246719370698919568813599224044701592462374486922776001961543041614896572804615232607339271637762086846707030121360341602178388938783641657862644925352994577250519055765184083456388765488068830168390258120470112734950371113503479748613032083835690674663391099281357226616955450134838735214241100183523312344573352881516447929908871311920562623768134267937445300864140855662673319517367296714269981951703537542986491329987704853737998730221068356267023285786533602428361052724833532830471364790731567400981459918476988667247254878845560925452182410185911099824978408365516088476314684332627407936071272765112841978367355447336688183320925695014425105378925638110865498218164977485880267128555554299138909193866661145025491335829528896496695512226374097074310390702545465324759325282388573510552874069885567807203603978278568716352589913827446254864554607680254266303920469918068259982007206412463971907007311067413188333512449955516415965149293336545966888684014973670529275472770328671198355872120676991247104966898075409130942112006943806592184494777261979271582510425951353600913573317725450822388063393324685297058295721084493033890101629814099474581479791679849718366797781533136610291089217136590088990353827442994360044419734692253806877274253701895612230509218503707143665799146631997435340553253061452420567928768063469692159324546914855227115507628517338765047790748730215106369230301805215286853598661906941664989228636881954059117577570096275883089677173450581797599802911517918049359930765999832998905936900342092065458466345538418105760714603091560448542120606069997608690887941466643732866129173617282021954867847278477812466133796941181731588009101248430792979569028433126147789434564846654135934645363040606689067614650789864679732927046689403018948041237545867785320873251862724406146778320245173599429680101487909109324654721747924172866064708106884416555941783805803600604930545370111001578786421974793387215956371797461896089939048274374904762263184257359419499277494212136584390488611119353356093455784455809228633018401321388839747921868562714173472595525712057156950315412570584598307802622119410557015298288424835588092398637112655254713897957141252691205011817346243638944842251285796369744196754680338849447474749622128617736560948733516141909594328782369264819017377633435779149013279651711208790777440973419531896051113216709082431989737849413795923642585822525743220999006451617002667899885648984730502326117182968159808264071643311703457435298844538966837222688931305812298303678228359318175629762949814826440478426957479335943364419194091734142878301343197242820570688421406953999962097313583953334609711132687810121587831865018539594515997023319376816647923644406243343348216936369262596314529187272560890665421265250778559648820914985959490269442663439303918721835220910391592156749062443147548858504702968179796086272292175374411727728215915542389026342721254423080104910954514906448413083289266470353562315364302754893834480862186655117270761187643908275619020227350451820703730839980455305206454609947179283252157736532523540756690547301497280577244790680572943397617327797407322750401422394891334382689354203546457385723308968018385479859156695877471115458555676448761785657515694548890212469226239822225357539776811660709280321887967843416430624053860920536045470003072232059795915969396159306356965982040265438767021237984637266234936055355985791055613730144086743131757590402356521703496274896169220958472242590159869253318139092253711360448211676309146789218622553485295095217312587326979871777331932612264163066457633338272824376843813463429512102520123479108080036583986571176989473924535808714716038498050137838593231299802924689064067672085944284413982848290813732366407304680489977360275271927232386890647248673027334564793224983400337538202858354317722474866040060863186534513789732105301743173208976518471145586445369544559573307489260022067588255025029261210477765281405930812321431591079382277223268565232762170970336314393517338338815868419553970401645188857278772943634252704644561283098163115775670014551135326789876882340762748841971978681605617560409387965230965917052600332945577946176468851950825704876718623968130921971513793710511682921897388464582613338067636695264413204564513017858335184078589463775296561254914600948824127712039193705914002723261583291771834002912921141880933157297155232106096453984949194220543821571400309853470867926094567242621747196254101211230624635956986369775023774023266566937578684873527508026327698915706142071384838320904797887679901729025506097856771814867311083815887559561390697323886791308660509068620101054808506857965595617386558045433520432561644236019956862831745163325687910956732978182994742335374399675324861996714719506243464659524281559231282840241104006755414880571406871087794693665178592747926373375929234888415827169675358725332150517907910614689922782618224649526263254648994719696826288444268499819401849696405258132304809695558713835241992978414142493304794571071676685105222736433410369959660077256988943258155697039602969579686595789124816782656024192858353127947525382586102954687406267685816823156270185645899118345422184959238510172358511307036559011220200136484655406463463869264800403915892970070180530283969943866354296010862211903834374239406736635126027591569392605612157808019007997465396010779497953875136385245689205681973122390197296916716873271192944013458371309086772861114183681392150012613112941057712005937128471649237324678968307218006669880726135636234579014472020243547766796731272542903269370222100210232224360501423205926536682365863099642437631339790205206894429290378042915052137343307330117793138070221142390101232454353945896848714578803896434802644613062048420732234413745596153349294393818893986710176321145378899619043924700983806078041944352008263191858567805616084257572927901461036635170631088955141596436249126077224699110545584412058721359777251313371110363868738362070392439976061730934077095423122454320901287397818595772360514070097900648493011048527092066626514581679279792118460157025211743502990377583242760808382426704726111377530069157031252048205767601600943834133182743045948635077208843715030556177591355977267099337957265101885662768763893976697787947176320857337735801075349925974758105322747310018301472113143987155780012264991122260454834832040035609268957717409472887465896058915251049936932107575103610882483888714198910866940237577379479985203776963315957676445848430392107445419156720033322337361236229064216208185691572082651813283683575108544594018333336307298050923767411542306892454861728818823565334967986278395534090102636238924882142205607026285485695696989856263753470249274550419561525846849816597277975273889029539232276857880065320970737342651694856034961650679186714045247684884891493012598430414970955425882233145486237413410025749422382674937565237795241555307560662587583270555978061615114183997382026632313503147668199210779073948782587648046337115335938297859106101489961044481829917784176374304448555361615851063057330517548510080357962898396325601809558113851001491930072549072630973382866921958320266721316065646692211367263755240301647073629291870175767440978611210303219218862145032268224836536715888797994763425187471333827680541760816799643070782697482589098569830172382262671827199352207271224117916256646968064279866156267195486114683302237395073975180369280315705504639314031454628412206421469909305098133036566071195820854240999443231104952383769494622795543989444024114238111253723110108374720318771150558256191903601181199897040959360679543249519063931819233409956136256976264268629514883017286735723524983897912148293769514356475473541486389732650501117901477666530886862380030725610871570845938166628032546108486249948342530661419767662006182951259745675536770054775275971791472132597326340354014963735086686778878149551299575567070501501457858215857252510395476487832939647845739477169796728834795880351390176406646007627336302828988497505669680504301194891553015535292965803582325828739491395229083941901663408802363931829650022051238279018691851164409114907196502531693176907341611548061670321992452050502581549892112331365681641249830982295016465094642845568937727532230813333487600402550181342125396162490766988437050999884436978099653345929805825716892841572739258495519975234272836795260462339632619995481574075725212303466046786827177912383414222929743251353587875578236014724912046450916810697177891973891122440897898809103961387267210165907380260349775142193499787533062399035379163283690238606171618123251325924103627180523650215250985510662998284223041972595549493376760226310033826515815070792638087141924078946198441889321806572232991181052138869689025348189909343498075781784473461907618587388517689753596585653023232068402974440389953580858562617614545393879323643050288968153579275919453514646980862900217093907473993747396750900112278605902557137561940220066374002593041107204804911830580569683647237697731452609732654481049816204697503047630150556167768320781444705758186736605517442684793005364545634362418619633645140251255138738287751924581956623913578417950912992132502180364126719666167681089396245146193696533842025774943376727463992211492747970551673266215638165026469261790313761401560986475679137354094261144934925168456921484697147007301443099361777694891726000948909856415640101229542853574470388498579112008221416705109901171127256023397282368399099280467477206042083304155620061962904296361903355359954287112605299793733881372510310663686048893540783183727444542303028085826224758823805304289680814166492924010585151709439551329416233439457067696829739853954448724878254497675858595045660089806682081269034692734304224209941824264479324843894053048104449510397452444537129607897449291448461502707601475688479327858723417970015670730293023754383841037428892751411389798243910311559792407789050795025755810782076816644458890681588047305261395465391869260528996054184193918427538227808751985113174887998031261972253001899932818781202858024747243447626220950855924997179545030547588794524244644305578372012971786354323123245404550270666262790566820498465830269650797385904432063100856767466515682532810124808228631118914065964438251827709051278634551319469326921619922874458110277301089541690935222438293029315331963729636253905127644167130261953771575030810481419536710749698832780326396633558744160954079213181744516098308036450913215405886107129611658335896990389603420415866763133508799112924237539566302276066192876914050169367447473403394768945106599810686552216896776026512170578605016744202705477838780274598063369730284152052509270785487357775046703079817628417922431619371428826992099189903538043167847822912863650659901275510525125123385302094542524730786657953930677695132138555843459449031608046873431236587963551494114979027231108586905204509437081095655285466081191416812154054897989386775244855716194419721458656888577269152468556903993608631460717357105559502629157148856290067102867432275970298105866573487811574745084136349865542942918931546313378553942158778567563484830517538625909295505061095121820279710302121696980493749159920354687725916819834291383035298126038374267848264260122054482268869560256818290979987470634311344550590008103279851489009673489683827928304870352164542038157466917011219403784505272902626841784347076946740003784670013551724524817123949337952537809891994842432885744036716894883088244315431466613065673891221930925656813268510120470511467911928088936837392027776496637922807260927313428647696811438259135579564745670159267579816154290421823585487474210382695203552406682555348119984864045451676625470754011999235214066960448485595871393832702604756238832991866971496634998779760752273247288744921139673320768849086451886506999252840539002071190733178355739322206064534013576709890668247176417413182879961292707399082771924372960256346856691855008506841800886299124834257499552560969443790761165507302922387357339665439982216103325337165455229167392919007634555246181188330270104446832052348850997844492575829987002163728373629227578737283008570992675891927283317499260677761378161221140723545646295236796363671179145518939249746564397605256643304917742552473056279178971174126811953233336854211309218153188532443358509040433241081082044455475776487704050076152347381417077477015580453721228658346482175409416010470958279807780110839034762047026249410476206054743121769278160525390216824561844242869875413845636772525709923503177488905621781741484469955781575064164142976046616257231864833688221828275791581655980636887302768901645123615364319657969441161256406153344480206614760685276399655641658072211610403485699641782473443891433892737033448916642986875844669935471408363604293169316601800566813011510885863022222327701365176526784301750577496264411133693167481342394870309233367334795121474702392843346434566718535761337916369931645193769950207291732890953299218378921795768979103006656015717121418673892315331601438252388308354580605072238870127788552932497541503117223420369886627643435869328714235596691302551549779969906093789158992970210211435969549963787351349524817604174839653213963880268847348284246958788589762215330100656544511012974597810090340587956007011371401199885643179677186630858936338354497421614416896870169520815347386798660180594984600223232712201999502126501856322780057740543536278325561930428292228298661941835262707322795155345258899315011967586570247659942525294053994492719600772586887394469931360191172558318895016660155441105375047101614873745621118210765463156749113207464449550748813081022034068975340101355418161280791263097671502963336325657580508127285399751033363547217141561566461500073265883875373981778367102487508075103019231758688882464128993417321064584543729270312373965896925002408057357206289538459039364843387823240358231340607562222249961623011755262726451098014014159217770076091558576903005311368202606748441326022288577687006660045575824137732388607849638393485510281642926263855996635630730005289010947838511359468467827670661198672851956597839578485115183592068388692350936616773490312624505119662035881426664604105162856276731787187132233343904417506501207088090300958729117835651243607179711544548724600221399702409280841467969073076585301262311199620191619500942781299404096235052657085354587866600314256294530515728876832460296329938979884016015077784419961567613836729121558842861091430762551119440452162104726914619817551356287006387787314854367951479087403188435649564366070291622965198746397302111540943530574102608164059509974742177985039197280908959661402563523437524661880126299226442648941987570044958899773973489547864170158693699928995025512630861361320879412220964188851287715557438092982067167183644992576172141928068868771179607041606027107451082742604631417597980122978321256963732619747808896388159806098854279767422073010665263392629713743813663304473870034688417236638923941366368685405275025691366171307658213464149673259351442013498065263445932333407147566741020201594567093610169310834150593918473518248488309955895333901690982250760330724272047919282212372280663750261311899472390482703448813518864193300149454944442359236266381165508188104397914710414267746536847713026802957763833126472514834168625743107516196997810914830279401343118126492508316948153863363216597364150129429741926912412191007063962852082079383783211173793745304649006279320088237362353702761904633151835045757621693294798361919414141480029563544491157183859827853022146868252749799636865369451812583405631751079347607408408657264613374996501266955035293697001336838385443175918514984247772770890363883087216648780669334373001202252004316906118146981255630730807856472172519548196078428252638958168970660658523009484662726913620508564543197661902488757113480154957894692735461182108404670307997363060692467333004524819524400832310776963936596379532123350675749342716908110908158963599822742907603070387200971328327778028866671039547076934193738138962137998580436569157556279474611347059812365679349886145265660346665577256915693154087754823699013040625677661977588568530434164849865092561858790964425018850307453898867353645123142897654062570330242362330991739794777823399265071685340194903232494799648722803166412623011925609420090533209451539196139029143795759061922203804760321087605440470442663886819243061540151106671175863971691479800092540765189900754007976600510368520137331760718355206950789796249667995384315025676197415449178981768708915703772262598008775907037216177438441802121988864173147984512191565039120491404955767603845796423217505149110013523618143096575822715411337065385180899943036333628378290324545243696254209212141926418517044010468632116410280972758030854014327498528560413865690243240259119361315757005905915900166813062187436874057806348150151769818028160188207941330684231637648825065806117020872232080031698023542419056298291082999720331439537079339808870532583024215775728281992997887223906017984776557335730597639351678353248209992645791914547201053922620973618923746427573629623081940499767742977722374168012823225110635137710300614990889898463633561465693084304223065015182704148510821049839136910438663219623131008913079740510022926005753996471735079671036474287044822136554344651058249916106934445705996803820426912363024948762068043609903924042424679011680291134638117579231428702988914759079250739422961611536674775335023392894563365987616092636375342883662036270798550251188594206823284332093505969463557328233475308519149017383076131254941856192229828336486432507338350453613681365486635174346245838443396532913257145648294370676140128504848262973674063256849697091390796452908415017062827300089033447770005669585721574686335891886857733219334888628695786808016423009863467292010553836797549318291788606904154646422977303829465263923422014202837301674112624560904681808641463894486810956513634463197045503617062260288430137000177164294238596010100958674593473683494379699391613802176901286685810378373572489936824127196099672828188579715327438713687375344940948934439370865061723801256193901833667746453928043282045692136665961708817956816332077960746701990130208092851899080001440884562902338544860595517019783896330745619118246766383538800950861791700550833128099530429185792177931486958917801797568040901862654803748085364390595959253035196192155321644369463171812926160236732363431150170197985809589996368407161212603041635549247798646306675113321974401100063463579605874669734381987408182842186057819478576627587321448421921374037644201759892951080504390540269701542414902922888987335642937759000742815965040583481250932912205805055028192450777857390980037547889881414868720350824743350355995972856852699019708339124954705070779963926787382980810442286365242473841520843277776270050566457965997423986931528238895454427666313462700230887686184286689555578854982739028848075817104297432316869885317864979858952391169983929710807536176321531704699951533623218912976156109024387413008798322476972647323246454094155357427443778776167413253480850871443784783951975331268509426648317856147276283062604575216880198427249557281648203187458473772955810261920005708998367280495030027719163863162164859564422691963533486527375756277643711392659670307294463153163366769437374946643609640300522793173908519829000396947143488375950391435998343305791446653468234055428475600520391330422383461209805907976564235449904755912336549453949866225948735298461927247998084124894407578765812334132795556059234940098860286455968551400605916445563565856420500877304401098462066151489917452305387223644162143044212452818092708656635936675081332237633748564174618053617138068529334942160340710454817254335162464004733881486770872016024513183672147838339869884452512138643925481522960158749793255848726598082205523761399976018041583187258072578603912769993829738875280365077954048179254238103464522695589433326816630553823515061029533887466570439820192539131908829272790013914389083897737064750662990777967951534880043342078374499320696097530367519697292665811584393731657637192741983408314217452542738376683930984001307152747605681254207065849065377108964909110221112062723574763630666045193074093448194325057539027592708832366593412319021568881913136901708976060029561729378339519782614101370803100031830921457603424824374521011906897518626661914470897663222850594519309709716785702080737047829548421334566990178838792768734235853062680206232162331503399480120798184957647852732000352133942017019156184618089198093301232526233179986316518571652413699791095689602943673566912298075421766481564472801877588140418058817503276217777347669269770697343102579248797751265885177955064137794963328506253686089647123729613799166636925847063017723516200796000490464491299436120301391406026384793750118596165067655129392443814141617303436605404378784313764659776177069648513982581721195551782662998245723701798956306666360598910147491721867662283155621619852806858528399241006359919702203273691892085894499765947946750647220019491913245906743755084468719536680459949701751195288298514827104594643906781864331949995990784677669437277173938053855749724566264011540879257692711837151661333284437204612686079153321849482641523262626061756515331406038361131100438554207008010635895484747459520510185089965848092546900905846643077658537049985896853582395753086199703301824486243321492301439464381294662821866496293293500983331890428554770371488822975064639521515674754195388879031401043321910502938869295293842505054937393215817478514834341851600366994403119734133335376330957922213424838963933241004663168969733874081191680650666979871450538265836292442536183880736472547991789638542216436535389203896948222480269563010000668190602430238017514825752077932986188610579192379648834256730096434162333262145950251127049854221577981839650656504291030866330842282967740122675883461987031438698847133663771699341089931338104472637961217631020542505377527685310646992042504841489427276496339879866385513699989808237655548300505459856455439541693548868399922116481356692199559231285179940823801569805671355194512415358005636120852350042006555225841528749921045242218869986864021436161367858862824335215909240432253675268131778175512905676716896196698893237071196525018497442340881051813802671881045208085316418618629168228022067949103802145487761305053418823892235892198106139947334401950672004336080557632613296875497347516141516797806390005772704238206781403626494062650436072849008301305056764483604822144177117623545261218975223655066446528137141863464283181751025879601034120903059936762763487836774492254679778786521119453851446636058506633890951957677221180153057822318943930827441391750570091163899452283862106810223072768358069178245264445259200712835026213091942583060678191899535614128901133440792319492458587235726675545501361792550405750252386139537175884979653729043470094954248573318839456861201472930185981827393454217382820791867648177466030629537066900422565013639642393615107220453324813316364517673113941231488512269372390241926476448183125528607626288387783069320486166198784177937549563742902014076303637559371037017341454257921707999343644431487569834255267690400497735254845073352184956567498956507785406935005632954200373247378496808846327024957037049802261093150397847806277070796592457633365994555806036070219375864652867213005655903611147682166451188831939648725270705792335717451582745335134211533569623684388210145327565720684062713261877024393068696795627961648441580791965851464903290313289241057084018093430617105956873151156394256081591561423319015027497113719772325110549168657957958371151661518358565282523575710313559721494584607656497579487378479019372340723779520361835317848395129670550894087742838837028672368234573191382127248282062548995747110710656487051421932200168443789522807020025919471783543195473439084274563681669007156932504114719605800270574633126142189918381467582034600738984342950714191479783567892860465098590929125776428986045268898117287800118986996119466445110750496527099679971823758588159873998333200888085670711647251383427063573592308039102152377045512082432050061923345247592062085905978272570912909687438129857665194135291911130348238369305092739856468318697384947158845451584961747137960323548371389946317655802112521423983083164408678237678716569520139745356148379708091863392257220396107761601624512054050325974923182148435147276294776399691423516842409193508995403281681953657833022684569866915414815066601186661811645689266823267126823294575119365130751546314554818712170487346019418291073800604441152086000316428908568582741480560722373154142916121688720247765096687534356950876643954513055951410246024568996766280720209001258724610369864008690252944839948680944254253984280134454324550251900638487132568537715257980925058303708014843256534672723116168813941250029519103959637633332635927327681516540600450537169206864778636756072468610706605879882683281620327905860827902738900421327120846312703704062413143384957594163557550248772403499753270059381624134934499952055457619758684984486607619710028253218162049462438246237862166945602562568442293995917606107045468434160337027954162401276081090210190010848928633008103239012470178270433697715924302819793942920456595441049996028468808340431469170393027543258959266296773678271632834327810391062184655659121941652325554211421142582980607303661768532345949697145272190366894323968919283023908787254147532757361124922641588423506845963407458308475330362004126686489972808870688426671923184928723467824661122431327432962137998343154178334004580496798165000703022982441472174238140093095132624168583927693756446284564682069678139509342402403842532330067233171377924666992200067441336502732517123292577356291243999645650455703875473266605034162234070912973590962695333467896697184842216439147914645837155931011009027568091749716093068154908935773868098363406484958864277655163962642771281070370482370267626480854188697145702334742521673281771678574124110943222942144400561759673710652100992583166480414258946525151843477155321140903032053083029437182843478723443465691602415700935821066019541035416085113989885250299696070535618908917660466295620010872677023787023340754523367272827327168205938305766812398989735632976636401339726709850464965624795179778600477001471956932236685691538880659448039164584170830392637466497868644668152062745852004924561270768018293679926559275053378729142131674308691420895986185071614626218583855681196465609510818823505163673341664605915866312189375755436836998880077242160575729733500989972093017609760374974989331444761616843825492064814430523596259849468100919295042925176677787346867149805267217315043441826052311848044569527824659053994385472282250059373105828299954917009322976427747308624170572786075287832975109953866033030113543964049979165634807365315201739543018197089022302446113628295044347742152778287537062739436530693156786572980106500780599485281777472134249502560752116253930301354084204641818968691889866144696262806111000241521549982689736811864411650985184988387043310283859808212552563159212819419144777338708644200261716822483887163887154830635461594345617125937703086075999637439602780732785928665691363648409490163205763128568781099969807122116866269857889504422178843808754889309782154204967327063556789929585393869923511623749035684004680045985428535024954736049281705242020986454218096042782815630962681173558981174667354216722016807724924277164658197935557846522478527779788557591051124187938539168646827313882843816955923111105032625401354191066055210691390432044276070176613277612292015108571024258296522950253157117907675779715917862674105869617465458138358709663945665943133908320245291987099472897588821375865529357105208978067707414563454630774383554083986209519180515258198811843271504660998497488280038719175149332242917932087378805645292128459152122100827627422345972032851045986829716786612313163761114251315029892543304322098272625978389979389026596800916855486222512540138544278275498748251013278531486229346840157401661342739099189081217722600733176418065720330946664555479589406945932779887168577889287270509025909478074054540820813524330665993258239828844730652475747703364105729468777565507024321591245853954307186969875331226158954974073241612201920902646467279110132899726728063091967498393509636774522331867825234928748700297273908927994484102114416891146914126832659635522266753999425376872765605710102853914622428655973906285253526918751540375197952685077637502838399077944784038768068164043959396242535236976377743306795211260213959279219876468826286943925056914680097672513302114762239499496925422829472220695912519258726487267422432428820259340412158122009187368420243531630488847482391359619248677496393981417375540465217047428825876183415768064287369217837964065887921177407830108828818342939982347874464202335639157743744765355417511225946825250896515178019673683347967815003407834442721251269055366379353483523371277246601732315983574414304990345808542256053476701417357467942481788748695367393933163808627867090089385494630113092304762121323604755715774083372390814828000391548727061931784716023939399007665138207872669741688941919540393402614185049563876710783554817647786755250821304576414812516972699068416327059051427980153820477387377195641967448424904026749616209434752143014384058306415383627255199064171416068011744614862694839890565179706508716010058058812454966042617784249509995385133542026748155735551538886096871868791834921725855116651160068285601899483469031125073515429460270142835621941320566510897514024723504131074744161839226266082731841752744922955342209191392891837687085933751425248382569073106499861035850899986930412732716777449335469412442943853251698928423864323750971825177046872424182321828998355487326162548668980925456424449862418593410829000706722997906283502748798254690019079564386372435644215819107268876177336116278550364377034952503954364822737392645464039931153866821406450378466907347864281689966366061885452847387652291264367357197255076471829453847371104686142807470221230199001782773574293056303387938244703992655222833496810194061677019527608752181652845677934493309301979846857660558252442715077613465833449298643558674164957291530464969142557454859461487079924197694647240296609684818462851418194322405221922943098755409208982559136855020402905237021672800421677244277530608229136053975857123851111047225411338501045658905434735491756954798415094058264208143307273407699694703883782381488751425168147419416525556683680558820088127348382022469161176267920222975874685238640360432917959788424928142929914262529990735720222722859513802191367270647531867788832344940867718661866135907644290308462856007644440619892242768572372275361518964981545530268091070773258599057263482225509737684312186092211742577708725575719269854055521957496420839960633891196007121447273834499534889743520656315500317714860500868900404085025584625854936344628443471047137568985835153029014046534724927164304672773969219165325269251622026766261888325503610120755827863226783750288948598727220619933693663714838701436949646669952329328664644762538795502097692481380960562994600413955582445969876133330978666255664498555760405881594315889973489256698774360971847789242047815730522545152811346631334367880251270672779427963731850722422636573719412904628466706075420475707837527733617696634607688049708854722914145522452965881946039619566352693743144183749408372774594422269086334702485656578603338500015847357002719028592311874977463681284393712821011216083165966821177055118710897887251731581307462732977780481586752023131319372928588132132614923988743737485589742824937977008670251708330860952022427864105330091826020190056414746248628466717817077129617866030044594656473020343702315188529063885845135984493304941972657755354027011328711956458587155192665172988566525134254158728076770974208173656539083263907131543222235585613981085145102685103333927262643399091849029370303365574465463058811482739701017528263148901788572513636533591096793782094553495720976738097759377090640799221092547828733371552494791369519571772729063814413634321462398820442439216336320481356069312109847081444652499688293362908923622043509576078497014208248145854559525858959660504333636649518289591538300334380989576249078784557247519414527426724845554984428478963157540565924820266662981997832307587327437727344764988550087674118203707784776047924973910393822208795257657935059923870066142138009756856714258687478308009317957002724974001361937899696496146998883570450608543587685675838509759433834789122559508275121630595169698231972268481757878707213559633194770918042761370368642392415896458582952078650166889726016009188101897539977625509598553840532347044463256883858828869588836710459390855623523174541826869756221780718010105207058140888509820226984440779128859981087894198633226999818174079260517357643143874843534548669503011421043682199620712441634871227171959609894980040097942240326684984393247824145879086019300857067847185719014031882239764468902301885857470751317424319017329741064854212052694019851157731999321919975000920188918202944632507565952569319838902929885835721337731853572863867247823552372144941281121233574887819514049898130765365173688633837304635942002201688977405974041087885473512383455024476146098191989537187473060152106229377695230245176364666209703033760795765753999550042997363770463321892425813782265927994128093665810624190348087074910026126719018070276909307802510101708620977294612862636545122077750911575962551819831596331563368667160016710982642845781145457586988160951427152581581504412924784244043305905473061333235823371685810845128066909362549243059861768539808041134185527943690704520463120277090782914661353753583768189679679095949990031628366905632419970728893824296981324879335417424288064040076109614971876686532367209935886660731867844145162273583707578910081063077701203434567548081022745133239691551580151149787527350647571606614651937681254490151907200749023178130604146255949265323546430679815535777838774453992556406853634119798586406789711449414489408097809172943891567797396052385319575911464712477731729159281754657001881117801852018192428995564091820272219212878376352208735528160024921593197769949730821381331125881756311057792402551693080227344866965649965852620083710944608025994145974373581857977547630159837178800175437050990981955403837221909801738288790824518126310775852599224610199364855499398167581930504005671165740200981961465130796981963052518824375364230457504540514891892233690191795082429013027331615477108919126504635273128389287831213875879999240725237012631995853680572890742980942385909674977427566198818476781258035684639970252022065817701352185757667233232842877908284514168445456318010357717103176639006363938597094746725033367162479686725293517796811009698556299868606752222012333110877425783574195613348253386941434862799792172366296949808829198605893203268086667268658699893742259002253029090209518409445199498980134418861221766553109043597294769555695415970322697665348035087965411015879633698398069911857913492223705387920534717239785896736778535354267847008383134100108428500955245818125973116407546198417136798361561649410092781214137929083306708309131569965411554571732312134375104441444755690575423294337141273885290161239579125885672628026835752867562726101082627526399823943953116527767597230819903187150649646616313131596739830299795777144931270976696341239599922038763967567507711863654130211173554545309812679191418501214234880093002013064607091871749429979566323031322714393363262765968905439926697805996186880618348826829677964097191165617076270802686316456357931901462619011858183856022400116763274072557961285099929187729152340094067085817377083829251831090516007933418075403691014738902232307572245330585927279909153675769198993027590477365473862495669802206785401997779972661297913470216699995780393172635654862795666681105919125595796754373130672982251850975686704716708030410232486595241345946153298233862943149901747457754144004380465062992315965317054205009981298381605219873178469928684254332237166500920710643325602922629875270629921297545017136560985087878983537252979500050784087583110397780654247708488107016610897737640505169064233567229164902011704459623057163880798586724091409368143090955612667315725062236039095140470695326603870040068947886293433874402366375312845568711572661362786638960624945547670018913177872657541837331028063723689884035078249688881555069741198842974355592893563127700497461180537594841775743287955252207304063199425646100084378114718536542828913162657651765841255376691147137901619252520907342411681481042752845356901467039999012105251135450882430331786523450542774231107348038893328943922899711760973843907072989214664372076410193489148768785215978802757164780974581654882147803414830456335227060634609152654417656954028923133095108786113736934734273409025132591491665771400897809806250021382872135256552650575407902320728140395097728676722871372249749389690629074788635150031840734906774442804440242811906358016198084865173963778894199302835022420673343888111595598156108273981354408924964298649251146043549745179153845937254383483247831568763853830095827585466188491568904032826499445293113913231851257044970217391224209944232480727722393363156559406847719877648537658971840046232640359078007360095547007116454036799903470392207569135437050653338611858636515746770101669939173091501471086725944650173536201608615916306247784554736708997576894693418817961737118881057343714861029963744530823359161773472733245206759260358610019565544608775673818701281796723787358590201771804545256993259230880899392555318020645782830526680571912336502814814198947909379657126573717107374329638796602740692095024334009495957145303700315746864046250346964572853650800729555654624427062599502240512829518036898781037947810981968173038363770541036550273563607966244206220783898750955834602847370921902280232345804008717297581822206629567204475636967234280093776309245648837300196118142242998542122277204832424565364417777858347326015132476139224484575797901617070502780298273974925815676275368771996301477753932929747273277339080605771162799521141373717243781839442000559626268228676786140553683919520457663740327950258335669489406002748033002918760594694055038112525421482524582380423666965560220330402295104488049367667115800900636110808782433657740614307234482358971006156562138536032156699439900521082372973898080576971595690339799347209596297377176889096813843884752522372462237947156034850465961282010123431426600809352850963127607291234607791934373267485184722569602679319160882284180093134449447986863623342742814633224138069562784441739202171499715120704634884955756862239395294539143968939075391732113676046729678055832071808166931107573526653208677497262658819178321823002556150805120479630050901361829054006900990064206638724102507927078254465131780718516660089823153668881432469147523020674034097069874675461153190649935209607422350603402261171582350748046356258093241638977870583206781879992331750885504193825199300683848876170672593443034631503223915463194479721013586371157476887730138634432019710358671635431578869881795762032254263622047217619032667312701053244032030852861181585114796661036818738373947853296830500187978273969442836841504408921457749289027000833285083553547747504578987739431515550598634161529747074461522779923141211699449166649679103171152569243883729310830041901117891452588426648766924412139970677607216297893685645010228817657318597677400723509150824055637479613490490414183643752686534171420498362138708712365229784287903969943342132203691285436907458537088956428237698802194958156820606237139995316396487050678485837826696808952055436361956834588201789394246612909032835949400951710812878817170206211651517506719903986369029963201870365017148602771040895031798919904496894986848831417717356257619410179554970465424713143361451237197664092722255222512578670948854912754258719851892796072216770015892362983671530442612245242463315805888735954697354290788570671400135908013781232564025780299486627898437831736054842496276043569714481109886456645744054105020743387518556691440284896967632872935968803141999386705396893229856111023755830486690957754893714625052471749706558075395931762641970356696315327562249580172806444961692838739179842664521344019715953361768180643052504561088929534538089956434014577356269574488886436224377278985111129920920006426484317499003341839388587675490975890988082531379835456421534706037789160535009715938103288335097730466485579098828489788086684405020342090039840393673442534653287935424426306469722178613922890904641240125888774813053683910463835215312250108498617931701590475424943591473208379153078260362374717516214640605609201930734173917340806163500018969042274239735055705483643832234110504990374975004822298223360421852064651564221427845605574969198323400647214238772065616017544126357900884334020509961853475532972450336706182973301206297453324871852057176260612270465759562713561250545089590666838562518757937904288275416862744999728490153290398402548909573237860491211283760507215242023500956308451558087640472541735177334867483154810204217786356882148112485216457806348551477711582886094453400834345766187441399342744473098184024163073240631393933359784959383479618863155000701492147899500375066518268620994897173753533449885957895402130390440834570101878077087960470975927330194864819200686226145089707346058841101535484616846187814977109919704254127562299379964600904450629098719032375793181408137642530206994043679012401140301737196802627346992754078837686958832336911104761388854951617531987363465207630274421026586006491359868792818756471690824725028488281456145967820789946580862630293055075500853886174567772454178974895167500681168503829388120221682861796825036638264389618504997001622309697672392299087809851139356910881085212347586449968006904352059909875510757112048629344471255675855989666022119204426494663122334099742392073046593044350237869470682205820349486423572293025939790660053629824928384199648102939598687020309137795356732553375021444289224669189795043781160628562514966612463003055892779865413465604868622742537872703580453214123185635495504303033251613639997302162370276661156709202604236771103838978629258245331669539944657616678220143376790980335528417516054049958336030849444323805228722879676071063814172050965431593980520451691794354796600712090378946797358755879843421243071940466004804485332245958001462720897036311921874980173103530871789683598633184228611339618586433689934813316053610428334304273392598662684475454711133187982874075685148873303892034765048949650420769841155645309176335904267725323382049320822625656170585502814498151601228664300140911832631472121265458362182988434875405110522072325210700621915939475377480560418870616723382644996803252158763258211300253479472662434485106609152393557080287975987956517102861637011566074846719756378235425825236567683239992644386188556478256160148356848597998442237144113130991151099008215978378137925397097026644088145714429760092799214447200158081353066588143960512938834677943831711372058574070179717691042026207762941282456611607239852637260194169494659286864006154649444506029140138732143109754648382797601444732230329935155515763283584684971247684660436344059651725294224314797636051395450817171168859166460043869844336994720618038724694748252746666840236155011483567950317688791344469082673659362255271932076691965816764974864829100871987221520574200472006499471770247488050389179479108202595790802933545136966981867467334872723904059864220144423409967030301358984616409392348919597300438637587633557967398511709641053867450314680344549463849207841647952463683832152991709932510046091443518093691522217084994153676905013730415396114828109489875126330077822078010790855711239137736263630801309171837169532875575917138028448413825553766880229911166769446414437497906829942407807330004708053196800860118431698965469559642534844597068390333108541544119570529435026757019256298199942340718169904163414064662981938649748770193936641207929892325141427006393641408248517422174749319989029311350107031120938303030372180768701986933727714744434003399330833987526193896576269059403185299346716853251714313866628803625821053671111241891443260294423509138224367081022196996564056578827490086536881642210119213184064499756272065902207164167586908414631351354571856317718898335879628143243710108396673880431515337037813863910390649244997611218031545052285744445321184958500656342626580636164849734215165733438204664470187086576789777791267064372380819512637271920364198529956336195396003777923658325064057081318852151898684254998944514937263376858578189052766169324055887752372668212584038854393734497216118800029598153345472480862848661320334304526326660142175341239399503809948271427277709587290981514404812077003756636998489612547503351652568870293200525220309334610180199651579598843209866565631576794909770690223882227340272738599543825950056825970237774469762235215417836041184172873939550562499178476012535889247531517318058801823216038522534298410375017585754637546743200386492189781016407006279494879564430411023158414322496609472587573295893186353389571599544594705076787924529345543127119274909484111123594438137454092743277448066298657603781501453447406284232981641891368610708591445557425452567019606007016544784667013052130885729170810565202555847352883870120529675691114107259964519824031281530718734167282785531262313057813927924801992226814013307084010679149511463920985151350808915029575319085058647134691221310809002904729484075930624094628399460524105037240686546063257621372843276531189862755305440775510902482567895987875420323527379815320523662846070260100794785652138351089157157291770107506592053360028261626719878725442648266038521005802678067125627396004773972563533296138823393937429817526252825361055042219087326699171407350422079974659274906845826328540094936125714915296124296360798486729213143564779538071847739698397834099752500411470386240256601631429727207990099696290938480802539901491968026504053276033404522993827174197638334448215972306412439576391430867153759742245892107507858336704479297827897586907265625804409189526447888847884956568277526530593222419406058876595804084959411266200465245305631498774525648225809641346846041016387133865934454248250408122103525878943177016670065471534900215794766061806550060707114130428639494732126089888372126060124075696851734232094960202534134262385371381448675946828992707470308599825017802298033168569824438230976317841397965157356796836580079724770042237322656257981835805810030905372485286212462956587270002729758039396216388033675871462592740039535716073593574065292276314002851323283157649043695454036945539838872556681384172517234460120843307437931719602944623715158600959841924728891372527376327252388048737557652378562680277069629196608324747572422629645961276949984036199953803658892071283499489037139925603215901688941953157003582078259577053050678032864955467232737299794344681882929255082687749918176209088384804393243680757141855156491594044824920304751398098623343590672181842018526519794597953175717740108002416403578672035676555801510054109039450213560918381507627864550047495845209189517700855966783782424811501496435429305627073445185483868317222273711392207323969944946180593651713294610922823268788657450658158709101216782761891970877743101472859057968526262151811655954363529850628170789220202882320793718082729281781345628831994719718464180571001816126479540093571654984218433895236622962067070495461154716741811399705951260621297890389637117547370058072672910868806892637282191155728732646345753260615106753709416319684759420015271413283753073638974203805719414294975943996417700798278982213313593792200214466963210459928478469368410629540777401298558710859472462130293420166596946680519023174889209525523816440504485301339527247968429071959150325394023974921384844156078780999199765704167384475137795621274706384392198087660344664145490127158182090515106860620362571378686178967730065566802534966637091231525676301366730229540254148932885786873849516530223110994750233554606749599668034098231714792695506753804835148109020994092419591807209794472824272136036710555462186374268060148222055166424231230449204052769921324772076296205460364889578315179697822389792320239936369348079488622183540064977656634898288196788067731482949345846368017975523471484697180096201170499649916591063281711707362726819167879820486395661941529647310760847430181074234611825844463673700081858078254627825448960012104192126402689253163678192671474726502705718289484711951677514796475379228566964976047764899611640078158729361436266475358162999393217059737354913608385126746522770933716849918549177809029846215061898697991293695462046957955024041345929632635246563643994969149414716919863717352564759496908670090715750385981527836927218792081286858828637657127586738495715061304249370585748158765069046251271155552205269631282902187937319709345217973466182017350994671350928936480858715058101451736263854560212494836679821837460772864714298113842563749008379010598465656899250468772469465924168915681535256451331545307980493843038911340609884925008853048946746721079145381817692809604195456005587887480575065062477927934653539315378350106968575869819032291527663376167103900081178694953539871207970956378409164412884806301069004039207388853347505340331655984970124926365041546225045524945623176798655318473983817217895363989773877265979633430892731854024978383618417057403678595938907125392048856994873286104743273721179841016379527192147447463475634477180923953778965975365765105987010332903144654053951877152772596462284771031942538342232529322483176002871642162230163737423354093728793073881572786011625896913242573360422522680174707225540542228195786778726106164764464722837191002623977089933950201610502411482803064030867901298545779477597867004886079105504528219100846137407184962842618793697743090788056891047593250922765652483565035072690692455136539823075882131141730830147278680227557506769086108999378897370242833198949423649734886527947446884749657080500318693500642344066550684516339762825895057377307487493252312854197022358407825746929882341567245926411665465028416021242059187421177879882665572744549376433064751573820498227735078132397401886229047354641368563959689240419123771373564960888155116319667238537986641517548516575978831619730939528999885703698410908581809917529801950445426380289612513815191094207909606149746678889744324587910112339958224661580319952320792573657234398116836000007978854010574425160891640247064907203916965049279706831662506303063132069512006288727464438052805536481720656741501324094684298761615129248514461204068312122554424851028143342847486860411470660759565008597341416673824074488678056170304636331003530895456538681841891120251320648546031402480758711851998950724942673616609659858375671111270676419915745255581622819066894143978632517170190065851454017724443049900059826591446019490978765545313109869563870578726964851025956881331411608976046161974997833325997697554956782505320636267702471506394194097723675234727750247660918641459582405464615634855105246949005660650977387666035069367769444619694356073537675966455486985953073440846740301813935500252330719604527079581954224312984421549313656917410534798423186991271441189624440920123078335990058959689213505844500061139673882853323646144200450559473863387883546328081584789202819174781306002242948903597562381448269711397830220712780776683714772778854822943414339585977103732676077444578235747365209652912690915082018177453985722471787751082273598056948102748879767143344934344252775528041315194734574191618002178237168680610976882184235999398728850414670475497357211018318677923089016842768631087617977406962558438997219366931979926158744793048082683686257179380465414148674698737041731569324853878299207969225303592972935043976079411089996298466553473539652052444246784147127816926720078458465685974138540533334732984091180295182950216914121853144600427890152837072421698083166857520878328290906564412228326417433680508054649144231489363309578216340530436696720795084904233168186229570637548333992156112480503758139249345689273686130707023482094231137477785656537271817211428459104940387993895679530091208927302814152147358592870887282219596729563718155358096510692848486906542756523210051374057637390395619960539077110660403942336059042005626629205237507798970707724670778229187461457071667781846122401180198314741122700985808683936134030597839725531831515950618208546071074178695296273514526408895035717762612860187102943659451538179359552139047156436808628791657245920279682301883182262691199984463757262998408745783562841366724758440702615155103239840340552889348283712335713770656761219713985076580622307257393460239413735210094352518175966944455398155350813269314008958867574898876341752722725450095430664395254777747595791822852789404187379646089198408345522403386662824055848819438845063173328630506999532802198571723608006168561969467355035705776154769902678250178224066988503765128498596452500422440015673064703695244066007251749590927014303388449206473327612678548210160051881220004092950611824990025501131711153488439036744616766387722666424648212134063947385855373015849743099364082333200568977988369110682876427857979284174594165930898119495248832173238548484511731295977216755948003792099557893565055888133504675527780341142945853333350424570412956711330089173905258941915636976643666894910291048494890623810050475642968479421205375628389869867673492607021264064414246892528140518545037400437108215812514926959390243649529961816142695102226149095276435007094064638101340672089063014961747958219927867989464904067589031140310397002625634338471541186870285678318460738732963891265864242883374206622900818395238283487016925958359076632217979359033668420615246031571045454916057360720504862880081993625813722692752003458027663060641262897267463531446258506975595882496289158773044705541012949191781460295168369265329599773659743750183378347475717801816563434938138392443337715187675126144130396228083730137346689083305734895395033322432829140332589502392566369434942594023867284697055912760946985854747300584848959372431034465017123327084665172555662917338825353726011293261496519535365095808282910790958950835645134464733886481690009340257663819214497268758344716262661507737263331433082906249345702971166809656304212665909218352775573963379301692946964385925655766717112618042550137103804696773154262253880751701934455612039407608304912713007014370937880019880833995647133314250986308330847702101304283390300126711227299591665226428457827037179821353745046215164259441234702551457828480187215958820139110405123491886350230289733171973732804106436301869123770523397454077074972031043396724970108137064189318878909175321273250387107019834976656173005885259092987230156622267149102310413413797391377090660440780326742779493918918133118452025193652153064668985929875587860534209507408248977637088660851395865354274459031476977101319321095221216560062172979443759969710616393056883407692865840732666751557167884599719164241434358961887498643691186818365942259911143782017139731928052201803425364223860219892565802402375646989464507516126860128787533854833810759942760305221837820715859281720879782983621918399788322390412613818698194294179119607348609013811557582141493834516743682755191310353478459312106082925969703901326710546370447832442747311774926522578622620057340029162985599851239544526491844785174827648299410195103498687825047977237704498859303079587113326707650076517561520111115857074380556115180843948925270059105917657837951722161940512518717852610918885917344851529807011620253493664320690797590290179847867174641034597926074398719127243627606202426045034208325153815747949385332705488748421689055002755461010358816297974248510022723726726843548306914674536561303582861648066989110486561079678606651483469663742674713770396671124657390379980507254435411535450563576059982117866763350139598991454035521181528119666658029423230517595473538032343878714543171537363939632319128520992471202089062310679966795660780639305900921265309527855648406829769833700697558662168821693100886055700353749507964888105623825612645661305422482227025606285961694149462676705912122509294253872761023996748535807068374926271534327528308246450225224905786737642301746710648226973323427807424093463316087452097333813784769495613364590738931208468722277716762125951040131592418956884043267142644071564074205125151573757240069928434058538562540530535554948073931416426613210544356526600864396130644960298392552913645678797974360606894802868152156525917621763803810669673559555840453977980342569791541617422846816957151453281265443100720882992860448708159230850133753368218766624522024321984386657716375134371200907753406511803917639466429021552427832325805824708326657038749887267772049799279106608742676921837944841039190517988287205304065413436468217642674983066108930897903945680158318673051217463682185088183255611881824048614995366379233195802078201638550729870700389665309811132555534228646410893066932633594424150373592033562466913126966374437463082623926408112300354062964901840462348010437175841223906199823044235954564331283024887366645960917573210588641876968823405452226514882370996267681742788913743018511770742454970860117818282904967489085341682202316471424112554941594125976287688430135923440235404453261020262000724612241479851246544483626451519521686692643728753262515859182776077222127222869075445222622126479550881466541488197581805602450152771949146713516572074469954481148984826576900597954262173684562504156333822791201032197177401511918752527536068116667683584035938919563915231945473044158756050374640689720776874579003259820060646278158374864178568232320632502076513018225306232404700484000212233988043882105821131598409413166622702298173856829059268572864176211512723373622984158379604503452349892145461131781028199296358121496243136838403814046029183204386341442254664774146669861798064908606038042673125969488008708556152548691071562163314318552271493742825119152105573195031700995449680733875493937987194640188614239919898271463597111229058335218861761857040676104165171187306352859851599217047664611447865819454296814988512283496519621078417531661940593895948081575155273647142557793043436457974781109355800761228011138059881094120658182706682969624636786519136434720259435327396470034385013623651456777233441461381624533610310653265258180082812939547108561227488646618252537008918370097555473851076442019889425631584286629009586295626817091981744989451922024694379036955327626262516735218530405848356224592354501435187973069277419134479498268547202360592144884686889394966178391446150188605698355949626390809089855979857871879413962240444859762513751189842425605981530863137876016115396193007644912782340134969227185746139026377901314574562008709870321620016780707638863829249029367738375127758137276295124777495516585152880494623701835795865565522675963972207373868793882899165823566067084761198551652191931565041233913391654475276075483486271169540710765878613060360962783852730485496948753849665110406334279059236613980025819451469770870599140563255573269441173979493832274210856534904233122576677930018837147018241073625051372520125833772895441960427551597284816091015280139168243469790123866798528533327910642332406069631702240954574434257648809434164307142805768430113015297224052988518480155395413653306138683445579842639155669650306922749481339503612112789640017114814245060185590278550978958951319094599323072613624889752209837805138020804830833834547955172572538540628780318442823385425038311539092423479344767214634319033487079527227317004364732749975612562828491465222382064088246198024546156533893661311962993066047700064009994229884233657720065174812328447391733347764773819675132314633059905803699612385422029164572047233854131689481704074506924527309629764073851508134571065453321774814677789845639199388787891851452889528790261754052212338387049589890020598219132780728790557580267774786244184635751967840836154522015891141267334841469309830724852005962872801960514764241513936882352071728311939447203202947431139928861407558450312784973637479898314541343260842823147422005535043619891733122963568539253962447201519192360007305169972254777929912758987121809574590117150767802679751248073242632287264427199655768992914498610865409994159958782902588101608806269212087456271885935232208446289585472372224363716943441322662750652381745183407178522670012387803098270443839288782255689124577641273557224077501645615029694066634416632995409452110719016380316322915018126512096379266885639665013157730157373437484370054815940327485998254450838765552900538712589636621296097517482125527369586616541485687326565504482834089722633152210864679283547009422746422223327243243431705705279620625262018311581114901555791106041070768124202777133175969978036068571255302766564755481690361199541144009927674381922600620808551186868172719752596074237396478097412827582550299607746201243424485613625548972694361410742533437094425195124867006702995266600761923579291848836954522676878938806417851682756670536906813936772104698176341695585956996530908727061762428469782785769459176366787414509325734842415017447535816833211608946494093658265068382877708370027109071070716437269670699105696347059955477831874929239949806914011611763442608206205760427472961560088278174465782604373788905173014160202665538245186175273260383175019026800265766647942737409527353133239176276074706215096439423307030853764653684072326517301291300359549962253246787535701952373601037043701033710314554231977660975087635622480967481484329939106146188761615917799906094791303025625493972905585750002930464432426633867815298878698494020975939554870783627117372913033068474893748627524843967152314878416421436199039749466313738554462327026257888005183460731978870137129335559549151494823117556634598807918279960259698767973847053679876585019130727564248875116316839093568011044865732812126408913155569607225494752285259240488062047976114022819584747497717673513692595907198953563477681931197953934470032637099453998443866060773153081507406881666534419591692511578004940217917339575833218062050240812559795793193596087379501762939963947477727531751779888612553943385786119216368894008119555328054038418974695762062701778445660913260334901056086265724861848536479711488237644961069605157064599218706548598212484240777354445272222135562444382979454124443258158224178078936648963557235317069962408634231596990858756622724240563896865786967036104541182733110228470708032639592576491938333600774643765877850337450654412227512869547824158247706060129752724474213194546723667028141032162283179898214767357796466219076374068184994858358469500052520513878153795478358262502071892043355005676040397657896858814535444516259828109405155455918872530517630129295001280233926792072248100001552439991333993522081365551102182701629773829432878347612775609327937398641008592694722468457743642046009321967153827510059080856699943809775515896841703551112973717957732675816352262872256740768942738335408348502221413183892672987182550047602734086033607910192771389962637614112503601189167338196566651428571669378674499601225704928785977506822800962664290314461807034212654092791048481536625791448157301997737927377101704972608815969957029899776051955728440163187232674221023927424677224777244553267678539118757130061841564371930633505318316631455228379706610820618955848162190916461043964574312636726694437067935918349094017286092804959069528131133699404188233652900755477944386228680263881748017205761705970786901443721391572933105598811783780941480201898806024155300737865807655579223769602217164172954722698982510991427686946677607402981766806361177868731709496934095630836223830878150665102458182213716895070206904050197429294272150729409171861848086084444932324396164912665242526011371255328404376660209763108389531386934139290210871620608226537910418143097381538273678188234170424266719724563916142770112726869276572328704469370273524162926465159063144713057306865115858624408395325886150525278086292691929399389514589280716194742915631349129080461490048976667957283826508021303602618358627876535522870538256870711957983114188716799394339042953159903442837550692961342989516123325560087122796660049501695601825018686301637335654246426033221520818330120386563913441880875744839228624918976110568961894771510803072985888604748797450660485376494375776471291349311188228520357423347690501561842224655733993053886915265951471113780619063082760270294609138860368436619055232472334524290230862278277731305022337041744108659138604106880105932217067434307736059119981675081481794240004904137027086695248778383083013887252506325807831419036307015769192022362148010019483570813838543644274267695291493835176556501331778772361363247594585818068972020503971164369296850032855781857952328280626575589299316406543516832858669608258230349992396221859515738092699733250946711320806709990288054950236893819994179696115860569398289463098246628326831988736534401014452837552030179858756644655513355765736848162270336770495837660210164979843027939971810892647347577150604965385939400585379823898006766416368956148370125593450543317782253370509529041378670037320213218129883696104951914940468734698476870818443034447469012950508543790236581284897999261426758295868788924902389165218714025762198431576535736150213602452150547219314171117748205819691373486014472593198979028795547250641723345227659914617607012751580504399754692454807912053107799250227207170024697720179480819531020522688783824901576490397239794292106697756888168199175834341794722374723804031652022468913688325523208125424749416710919201887571367395953804238285818526858532520584159706522557082804558749568063574405775004068727814398388973762393350248810489047515340355920972053412899648766883684983904342116976474011366770016084269105495605384352980270638908845177114556959285572916608108681077477032505126258647531973254998119763332799989864588205170672494326879174974320120054544729475716287273216886000259344655503823014009465526134155688538316467139036199466039621183080562840500904715103628338676783430272973332225454068312803498604741972333115361616158182878988799043618843137621346802533730779620879482769125164500621206590122847291908225637532122931702339444202488288615551751659670042340420279999147924478445444907377487602824530726699299158198100804314758837805286003376629259164464558388079828218180299653044068766582176439371114658520487564422461550206335877222409463109748652636917267291262635998487179436886678272750794109259755281223539438301055244763465115493969607845749875095887037600701909503058693078283284085352096521405301497295544036925170022462421195408757778197514043598744597512254861787753909600363040916811963585741928734266316613619873821598781332602212940756630097345366997548633062676642254159887182641558118731360800482778316120752458758251132946785603410339520272416299700598805288037478088087397396518679004124123161759940447975770602592425036681753000544332220851351408420138622127481046477024247129224905834229782025526165221534287458025349496585456381337385860511148950828034078949569880388415775009397195126513667382134346170057031805783862509276963950122843081028458474007382042629929717379307998709290815526017197242048070640872313556671934384903799570630240578906462224349040768761535911514604755808982141523293524051741327455819538126193191149447065807131923899296562966044289593804053987724382802399794826668842798030026094381804895970580301723530949281805427253875213526589446842652366478300544726298732865405995388280193974825388799093288699962961184685320632430045329471888109396543575578253870364581931575697606651601791652703198215635428194251232839340452269155775724529008082303729229253364250247777451347625229565433705909751349761563728443094559803877275773797724613198515890893779201818129413411540287097953291956500348608908148400989449603964926055479408729991988488521202178437683920095605440589694331843834980224236582449357528324879652214943533668653091129676190694503061358069338552849203927358267678893526574114053693202808979541837361630395714284018510350626611086977056484012186788112486865153415496082769979046343181237939095456012790938354370159566335410942458973642515506838522873743173832702537864449988673242314564057779372823163788272610051112550399550798854828985893672086166672921816691116591748639576072488805381049052327719477640306351686220992732504138572615943329934484652869861332784072877209783870395066368440056212577629828540030727631196274598070394863338654017193993258549817106452369258500457852467004863433776027934587225085901683353857088545904514591372978782705213367199548969315899838817312266301367633421142398080603101533286122498046916558674815384025744309930209169272792316593847280935117573409330702437368975741389601774308454357563589176766767727653449077733200958637987425196955224585178044594114201762867059151237135478417408724276533586865120000086891464970116806524250415617883499509207395318020127643108617479762331094417719725686597952426106566707939973518137086355529961165021137421613371271091948666683337728928984548335119809182137265025641492414049885701544789533911896616221176928847040659057079350030651300516277267834569433566182255728164862918921735630756635987406767625510474174092695525968240987362280833561588769593059713675320985875151148814240391371757132199893387138850723547323493440951161143185825068612776625360940584689646197439099100459224060583763994855036890134513619822633811933172666908732496878218640147329265167746608918232013046296004245424668478712382321865558061297677439988070875963955945559260450382608299316848076299060664261112054446060189388431391799095523672104045500850141886663035421645217195051832917760010532970511407905688359537897934850393375826533913788076072590962273246487696303238968179248048115470853055606379109250178886685610572185839811326351472613496919717068934429185051418329700289676472544974727501743177807242438843762914518044076575224765297637148913892375915374958048844330831185052849396280555325684993161569108236551017273953662625736061006269816510510366519970181150703866552313288015861310445906040974794201778621874016243000024643914567214405394914331720506887951468842876111197100512406809298999290790493792840773235333194699916788604579284156809087307926333961855807139750037683394416017426282640120139419523568806026021787052539558831448402912148365006451262654191440242119563792623797109073141386951545325889331035066629747241419478344430864579350349812566418994041341599486876549819566805485612356545392308457408544196902271596285163748271319923478706380436340196703024694582396130817002138630061555332973788006063748534942201310845067350339261236149572202940186006972961914397168643824971647328799806063355591194662227295897893281496008660544069673545836619907926742330161784700860634740551960423397742645587112590460995650128110437716372937032750838428474851694140191296177884968853639311108201737472463730920855070816415598770910961453564445901918566984947158712710351061023655632194293671454427267560182962387908481018228853340858780334454155920902326570845373852036236409940276714925542129924923632684352116219499612471008852054349844789329478480614595366232890115431320487534997362662126538539624048131762090213697935666313657720425653045781907320957781059107931760456956360695281487151073454927788683474992601838369072619073561233619827130077787886267976994398757791726487154470447093043777425422889748404916117937190390662956624076786957621059072639480523684113897536945462111304937073856317931070941220769746439683187059513295869291902053907267411514356091297678778876370387426044207171109379310542060136491425195875785208067307181495924092214800561134184889588246697589014218989457049847355220408538877744423782986870656499732493917949225153152591126133191816686578606218429845172593284182022892250904332748301067826362445340962973232937044640065630133769744546887175929951844835228708108826517624747558776671045967449312172566729731638528731320603709301069970712481588137287379759356575744231870943512886912378830019833292769494717696844146293859505343018404785918375978099237232530872522291692742042426455943273929109933294203750860276734504184171954761266724611505095759586126196199273092629450329942755563594224096778975513581715994116305849445571602609798212912816493896485128964291580016242551936004778803183712420534146026472502752617454378328088349751376598493110982118169423072316122496274192881335853081971465313796733485056908345747007068253464690160168575810383325084959242415849728436758685670541461180517219911343726600555641035186134224144896428469882931463157532189263049572847182674820681446884980238964633085918792168018269308457139031525217558486793681634836963683699395385941620741603892580880258360265910329926086430376509172620636503490757614318536087901962308061778596271674885927401699691816521230118291127523931240329541010668927851011662286248537363762499706224283463007979910949774752461593075790795033198890570446462478655539903502644691176873635259253716784422821190720466503209520246457442083805216936689109085121802741165030098183296267166412778245900528100240382764309342266729528811821722292762118565531742932271001583041205507779462528586608697284264469639082717125857385750748625705884968464978795844607882756492998422250892927754970490000275082314909439033340278177564337282855068067013028416671884124300307459494826087953775966951476286303358902147862025006674779799874666368313785594928231911088771456680878666890879888047881040778393351082202708004181005993565789065143777229736510520295039460712998961781503872009322558044414589525460067057048891600730525930646948494471978404437715934166236288067348979820144729233618286901288875897332865114004188507318905443941913386705825092677064727381020206264444250431208467483365291667638976286721610935833895419380419847555268761404018138146527639551556742825208860446299126948187425781637524841854609409064552579073331614560020196445431290594457238079653879252268348061291306596565431497672049487224257353922104830613109496095588771898615414424890528897408403858256894533109105936016424355996638846066778127025789929190233856460669602163810650083053998025959866707396855482143365838263435504304881762855201006784318202785022319730202570667007824529945909946076013287500694491482706779033063019316217810855580727721152261157513539688307062449883345423864700430832654048564478103462096336297646795860430591143709245733818905234586930033369660120221299474037586207966893735427137437590728455764735710235728806678860846818729750511824539702730388848335801982458082083523003427689402345960642523724808329455057275748862041756515323930496684549087264417549353823806788636991101566773159201346343079071507743412705323738686908505665913731421052052089804193711253427811229933699236475965611850530890571178882241371053264432964845622375178671523757034732955836912404659974103030949838442110695683632420880590256643715204769069265177556617359592816086421122294174354231180740309101594023271254409220975474332206739483596282046151213966350479770352144384009111027849293811680704954820918342419748269216323978300365263891957201574638935842486009807443046981479031233863961507715238297161481778501675578543778771989979742589124727784872832745131549500999815819906334360356263722284812637281354493209884897312746597050503678673461436846249354659806882359942271243500678458651639011887239471467374380728614243121969155341930257511329294543185172737610582113523014250602832473984975968946558470220203781575124064792135302728065369473523590019627443750451824077432215004881537292834772342611814031510500813044378005737885007851428537722821398618717684338441586199354570971040347774486709294948001531753837869422569672636972212837278145657751633575691078084224802442035570258653132712231209726138036316152882626139882922111575934776038837620157396513894855567521808432864403827665904781906384786696584794555646419403727014263523813629405055525370503087512118322643907571597476960531073920769957883060272518556213082299378571301866207713855062952646783795029151394292379785289171664257473326940141625398862235214991922898704183017898153492231711168024884830777720611674161384599417975019176837642741290470177098114141041891453028056461191548051036780638101707650061685631721101879214714216808006606131598519481534039313114061426160764533664130695142657753000392618333905962751638650004509008127230142589410270124598968138203049694178322772383985450494322333442569721986900316142236872290685440082492269175631075300595177347497215472351798947198105784845049165931034309994821357719572500782402732514679314843241213747272609593616080276646619331416192766458841914880395774761829145984138661516423364590562446188371661887959964033531688121389743674761345947056356885315898945130871235980028373864668126259396576396509249966757864044864461381310401319879837487519586299120338908447712700934324390619046994999295669082871656531919841263150789014102783040418620162395309919860110817349497670083390118973095632520892983460358482360987847419624063800509982477835152939281565344975861980105015531816989824314304000493012248595981415348206045601974335153244704404675722329200569471956154859730128231309318328866740869257894270147126230356612533271455316621359560045805962747434618166538715090247986412598703401840891342600328649811753125735921628514476621803743182148230764813808624635296006567835805162573281381033003512926775225982103177524605199140326222501974018943356246211676278431076857641497552706689953451797106944596967595082237686982006990132348402182602642172433429539192967999510035061756347480978093485409258143660778650614775199334662245573491396323654079979118373467336469790069368037345942647127964493207872088308782137023107131976632586324614559881074163278678785772558436856330755354786048070779805345571811622529322314437331218848021105815272537713448722213592117018073016228406591447105866403174805636760246787176974694082536600707788072571901818942730136472666605642344912559953506313120918877734423074193172548699388685650099479146529081155548958716244368258478409017054928753989211063417271254640187504766831330099814991075645094728958362258537070751286248961447252917091235268538768459126935490850540551527119886964939030727524858510877521134945511625407266350282542891254553080604606604970441137180005859888238079561199858276409815101466448133857760330529563377472536254309300168618870718265657860320821166500082695980788273264036900753052627763881884533813169343893966374112590606149842132873327195170674777571259628035406289624111198223726002435901125061697897531807418890504612862398552891293966384134518501470833137494593315504903534507891980019041460731277159826332074511267438294843443954270047023267876438862950747529601476070200315220534217055354162626502462587093379994170934105443055417185266189503088775909291226331791633984423820225532583094622566899880983083006873934186263684140702308566558686927989706790888578176138097490661649731879494193398423805011521743207293586811148351273886491637878211592254522131973825433478261637403489080062744854942614086816698437944840124983045523736666828772184165897832396813521690871762350938509797052521041276141391962912135155726455911410607963490523449392459562748564571894830512072831698947067859196497108809011893448740846813461533324170776284480354416518560681854763533776213690417140650957634070595219568409325444568405036238836145578534931343883945319535747821751078909534407261040403919661016383194346970420312573716902845062136303247685868233132475703167183279419192807291658467852333629944077139197217051402111255164631394766136801366504972783534418137158738983197440158388449538403836029730743424419211132044662610554046148515191862546397006583895349911616426092322151409893121755793520938992832984540063309852021889713664315141368774781880133888376452564334603460696679465771680460245819411913372906720790311098914005617377927727726977914791988918835116385590997175079609257506125383992874195159648719234137760542951730827630916840870627803251025910243075538951855813339134480570675091384698809279112603796120754106325952211788988305134779575106041056838742921878575243770214945988387907016943699204300054073457480872559503557540288084504737522884203983813325183652669116180217119619658547653944224909716661394481026872787972917286346951732993510721407352369818421080938415241487554861679595479432595642886654922862012648060072375300190769587351244483489651734923013715470516362371273932968417588053999240392102832722998122506287061348497215255273365127905280766049210090749513380437948951572806951340532069100713716452194072733325161293390856559691393017154129905147107502144162508966230677931011174133673209946324360041472694014703632345412070436539435821704087323578238268260621427584893111268326940399577493878652342883496318493568609260072850807048977285259676852681423210256522016427096795069174035632817921975332408815656814496445893156317481655285323321700505106080021283860703791683467819388638724375538266207395997817395836130258164518627205697818872738350053759650413418305451413071264243348304995111885770807092177915426702700079795557221598278482118820870318104935159240757755802632113612738616404128719949630485535452887382022808061984575338346242313160333533000285791091334702325618992539265282469804516501560174390285521984057433676059681713267810032784739600540542739880928994622536166073141886712536013967533441832466400942670514088338526210054992479850835145159623151880930318495423230420193090615180976506255489536760021982012968130185600528222427751696142616474479578872203415569359320751386595234882565770412173543983758874903963672107648912206352033394936250273723695946830638641285454528193935902195218302821610343212903599741550804646747704190410810479415180120442281897558279027188369319136168161817622722480863061134436257504652843335067915033267445265930336592625389292752854334660992313706822659634813008378184949905288173104343771900742811967965157305744336761387767021193728098141948344188931105004192563393257016045601109878734640938154330803653295863984902137638752821915622224121962182789911393197980019798269318131381065843571979139132401411135523570536998183888951283729083392127193483059869656197985444490949661174841161830743093315437721196195401480860772715273192873469492443607481676676601653681591728480045353343217658287258094137522142467006304326947763501094387320442222647577782006046920585224646289652168236206867670860429555082238633171237118076188578561961045277667555383223200363809966552186521919161789791887868395993498171416213260316831646065710322851261112042683589724740978612855613517021721654048363806336764262330691964692144302122209311442039319934775978050033447066573772834689865190535489667685838614021866876583602741346481140332600876302875608160471885518110197312252414973870947447662737205013499959793321287614749748577390531084525108521859886995955720300163361172837930100667193496007705086980250389364312114364822007674422952424462557168150140685618242511634131257296466727982500255762376866709583415821427438084430755771419277837776852551221786055806792763350980139767270006486329538393786696128032580905637942963558097854187631098978543616401353121572154098739511041439685115078966822486925322493798166015142607442635234781341072091025993685344620392943978749720098518216355839930291889577134657690797659866882428221944046810256301760814723465707463073917644164500183316073820041527805317427633280204288433981819312438926044664719430745766388294382270481563211092464789855023024851465195289560931555390456057535852620247866194260416984870761040508322475552948837754866916244239542956210123920838131054190560068825343409501217214489411206409558852238486926216667646128102931980515014129744169665712261696621917587566108965623323064762847549582876983845661488270784338181536453869091954363519083217640980060722448392894806509720686246816612989228204159861268452574010060060235584140034714933039545802448199757488825693617087713672945594531951054709022299572363888092984494861687230321949953207677251948670327032967801077218236633554852741711377229311462278138064044825410687915907339097674213924046919743173683995250636137605428402087766381454677643539440768271792052616363906056508979131764162169836258848532478214939729374081518539200510329088682247179530185530832824782943070907627366557649225934512355108320560439799089742270247816464479552148504779867495819040774891187613450024834962748149106732268933982775984403349361328019935426832827438774486734969023900382418845823945982158580947003163327595858573734346138169074812228642394550333823325593385404120938830719827612021124250636452395589919419272016782623432728992820809705000479817586302572616566944273295870378377090786810365504497809048811303079438710561859890833828783802290494524157586590362700482771562337011082943590597418269184633971445001411834060164435700333765539639907352261920813069694554908127856589264635991838922634683638757777901139506393897617247610138665883671863172137640570648698200880236671180709512565612062453682311519852986423005935442414729882292746267959488337882504906019465012869953818478853947396172335120559462975221676920010029718665258908413012382546762021770217040563928112097157585378263979505202575585763007851619828834850448280009412121828287238243831468991456997695626560569649296944866826965639223444005681232744075295660391496256811958018322371250999213166375221965374506366198734398547877707112661142598551683408905874492108760370301959379573990783171523960474506299787583562950186981344771291859853871662134838513625741609534285427328598589060691661270506481800701962131781440999135835170495528816607023811533612200379509689002622366498536536243222219789774249718401005261778236334071279008344182551944203856814277710322980606037262490309829462488575944449841778451832381839107931181146295561127564673618062357302606721295847698579325523012198257869603206970830151197734910656782898200460476078292548894556339077281160351392078264188335986097840022278857784321321289359001898661447668112764791837391410605602723636029124710207891055957319482050287704261401841327893198205183290288732836763672753632290845639069477233793024295535897341048292269759511846602871556104068527663799599730734184827971250182179989411564919836289796967168482609244629132394658557153265640055885645864351816916204004474701144537328381366481010935299682725820124356102249521299887257939953022607100428050853641963849291464912023717007677061991894661494439489705260530302922489647457899537122586446782514809746450705693104071018165664218779861431332274655898282842043911056728688189686392169523494985571213350056127937914581390674626611731723507892553328785822414436786523750178231913714870239303499736209115671241874942238622021580597317367466142590808712054590600003675684303633133038165343745136057613908719018406733429580217046703383713257151427727668784992913846991244926548248066866747515716494138560139399033966537379995846158314695813389094669353779098816326200079763443994181003564109707416763438060181472678356790393681667507833089841342302208974518343577878608237361725314828838688370656107738315691090087751453605780224373874141107937890506272151308806772940508679906048947888719416203738339940556317515419860713697197323334290117226007159040927730674194471082232587869828415601134486110726032002374630572055130300535476865142056988496963200929330087123218906964495984485495831310018758850331925566719731155617778473827084392920618644586582461263940809650825687169602878910611447637775098241926289002167400575375422473555143509040448900807006251339969265139242750171111722244639231921093098797618253408877217450021406816062023112776258636312834666977640971769112669587214263357685996969737692121774269776026494107051851617771930410694438642873235863486164631656776820233746349482939676095501256325157168146324061670800432521594913430172542911478645400211660163632600606858762316350037120243956968710171920138080695202645555364121565291462724209138839306079826863197655645400685417817185478556514125453810637154924789949609908913358356058595664394387303295205307524270474947108038077952108448742307044208212943960446074176658855842886317281849041397597763683939303037559066185235503325009694232832934402893761376290420872783255644059807817976964411622213052443864557599086568795813423529017316139429641760547811511131927278943112960980579548555842982967389380412919000986457354456662271938413541107721597679707361523432487321982049646543634943160860627406230457181565360715013626521758148865872202114751837205333199148604426479155923505699031722061789261532280972078090858095910003094144178442618159499689671118307159470715887725530122458175627603112030893060390962058043095517604440746071885082217753020216045362791586673487288510625186159410947238538395165077902340906465310991954877081479448363417458793917269991699411412181551434769723574362816425360901804530038243859909678922026905475156911982343611803839119296769436102903531408399682610290070837333187566823573921299266276431475011747999150903937068023812586180429958211389490821226853218207219968487166705870360008229046485275923228764170266857056347185650142311051800740122318743283744698734263810268832203472989925753781634034522768001522616429956747640301482733710540229276423839196096984411644362688659151214252897339663536081453392395802433859048817845650211896509443045357724025669696065835340284453483195330454806166800538449279660727973954742275723739749833938947713349939156335972521929487517115813246513078605644198514803056024587906011731212360730154265221717228910002537979382723547021071657341157049877092592764498028455401161223236468884545225759190073341437664898773152292933919109637316486453740224287500389961670064087127778212413667727367326880583093424516153837488992635113726480159558542952973817275726286225227875635101265649914466009325161397194631507698135860181600540032144223671788272372803823114614823866567188051770624729163894951412341865846908909138700796940936048777519879683425812930204777981704095835149801419869633412664722620317643187191457445259616373629363270569537702557413130391105021312660224532206795700721483844470994837970917323567167066224185821319110103586897420216311394047818822765991007116395812096149576624698020754268305734115762405706126619839008025181739135392430338706048208138764370301981404136085261460670417050074769694320061456131557786049549096456833301723864930205482437463429256225066584234323222155782805662237032186790290890127258110533922812312036219144082969552232442866420920617049111972201785612145930168354144323402977529310541881770639461215652976128711305842847679936287986245508649583354965939697744539258529992089153927326654361621433536560242635324354534214534362923592365411265920744497402859773379342092978308831517540302643159600864495851284949802622304789284459303013888282718489586261662722393838849734499719894524397783988138701537859038981540431918146414722474128346055668941636642703205990833050967773425307627300339871188130126289461467718619738850926316987036645031148929281345132382019751018944494919705325273076359067453095184394911284009360484016674570881048760170389288049480036866104548745192147713299348653803747537088686856659929293027666765762555196677725132359061432540257325211254741942837589126205681295227880952551491756830007246691936163961130136972515287784623053056501867847641229800926522574038187652369623537427888402232738561518766144805147212685180383006778518770415346570548089571923357723896102546969216447712621767600130303855075474953312834684671445679477742256266372721994392777856398968878139361528684707207084011442478283652473343593123801250284310662776549028536785920782990922008984238658381228474679955665448070268046015136235658505264931898563423317901932711054028431396329596842168700735759962142392998324473381075681629157455952895046791054641633052564953299890328780119512967123599391716379974390242141810384277232494988913772117320044815908332651358231051584522516438285696351875005730897652303361618289724145540589616004531835897843869562870232174055490219375498430005907737778804312478013211897101035796846569958656172078969135121927037672578370494955849829483891652835636894950611501234085939601661451939520894981245119772222483069047120678422469269282482177296986587629553589656355156801176426109704491983936717125235263886971449970891912812340176318616508935429845688031957270367269668299381645693819201522306910511455117054676188339912838648232565243338020952156146268635580449153389178153987302785312921016623805198247447516814775745311081386874054054608679425820039633607766466984451990570619270140343418148918197754001525494023073729864456690849654745069992572572809483941548448287967659857691822529892738679400032328313095914347115180001716216948415153280407502548918847120305321601637192425285252097108372039049818226234968923540944580185800478322169074310003087112573531433814994050895808058902118725653167492909431670537503831345653200520369769325535656037482247144033776676486576701706088840555446109643269403944290199469614593158973286860377944846186709942998565352552439401411389687690280241536761323768562820656716317580482693769783114838043923164315728953153338310199632646740069189919508879566663059394529862975928304032973515329874538070609566173124186559883398912611689131068788609035280432354689212270798831547203451821813299103712866636485178008728578663230193560168543229358402491370789520919793534816672241873574813456568406278683452776290209046477207113975177253270466710532654031045483194313263181499242941265344874276973143457840198064059580819531205466768522484690120630644434019896221511987156890310532758885224663899229762512261216925101673319824535262344729341076738202838201790746587508708042974379667906145453812128732219418836789264898329302926129109520210249584038729442987560308186073931514212979668596142830063568884383498791519091101788098190641775435479971747919388518994255194668767893201188435473778060238933400972001367657829058351227459776579869315348491576450247220621801317952729740087950713287879519503900737522500561073859692527339740063835535318757429597143915836484653299355032020672660700089202545624313188024527755144612547359980218466529909829538551988978829765024241869734234126217787059440607581306105123897350865574859469221774419541730847231191457383190842805006322931172400312927870735417390496298677709801255019940914462406855054245827451797258592601434853111846831647527555206392394829592993375834560594020527554951764559709710496854046709791100805525933173783240134487119352251707435914704936908382860164423610872180292600329579487409334142740785953751032958959142005328516042130803335950703804357017012052718446445714145125110193392873824777816298507101728168950226566508061066471637180478570460239672942655349180796641587539415958292080878595382993563417261079043323003479338908097806215875246104520274117805656449790575809043112233504212662213391620704488485222814810985915916966300294611666348255217299270819538736925489378440319468574386697610666028468710002675803677570466755024028719448855250911765024117281376871033583285761739832017887869858560999849534267830443967834724887244017220251366565839700659153514064246364009208706426787452685349495409879372127253435389660943322249235631042584876578776809755160725761819118730789414544381963339460094841085696526667514340188403011149687330560402571247061299927242898045581424507554799879563473764567823606460207591674812841355692867324487923500187859465360749427819994609588179914226220941686885869502661327341097869143520476664188958093577343958113558757677038169473045142000512777053981285722286610441008314765687450259897417150445260344926080983819230428280892722627387315664563624147535980915927965863923814668028303084584251704395230926152315586843135310258877419120575352532231324684237039890078957251413564898494659388088741279508027256622800776380849222144151803816851642739244576692375105089780358479303695504673196014864586143536369626308231645845261857974439720144074665985286954826277386750205704606725659952404909095554171586955875532899272835701578581993463214125416905766050824301515318947684205138123823674714809897216657961599361550499047959690792682067995367700337878941385706744183471602270168066834344795818116070500589341854886962113647379605440934203356659371385298384310089308303969611808867649821395003954152689145051719633566131400746020591142967320784752165209589581412755758131807243233326711703979811440296459936556521204126880173067152639494265622352839205259536909286115385860832847658695789330909975237661688348365681975172965359471912531129307128344740523828901833034149795461925520470695113921424374504647638919562650860824251320059365722721160638098191024777650231365981592148735230727136308727877896255646016940047503157887796528530084612445430287796842000224416554013378238971913213839794635447926093864343655227468895062678452583419530225500886795558168531477130911623055524801890006523242567804390531107986711224097518976139578244147002509162370201292181607951097741484248334797669375866412530704887129048480723437226265602444221658504987756552845214484104396983619378996569381096682502088039747481254716358746098498555641224548211797582998543150456007827658085137594064295972452367102320384888382165636758018702179086680794095962179529371110797247391403773181415274275375831385542849250665892920364824445202013778453644516516208110790018307901180234537640613975047161589207684385720382072416726373326081630747996234557349260520602189249895742419499125904098594725404648165802412372146122599752647014215637700780925189145072858243655980670486132699091768088178893067447520438805202751921802232520424391073812532837101350773742939395616489626443805827585863188379788759321239844578462494039845238238710747968280427866214027382954162442448984090497241292873789459537572944924568372404869583875726344605972722357508657404221508028030385110056333126384789631475729783733858964790304071020952974444548239923676024754685094386090681214142887808421957690928159826310975332730480724284170379054402745011826663753428464009604885489568746470769375249968806085179784717313122571072847870779199088679780215125226830197960690747984160051544803928454649564908207688451476832991540487489095601634913991343191110633121243338276269553555768988862943673411143213155386228595995068745878247765453450263948645251956162413262473935130345940221931505695961809123020022383558868002297213410733688174142701830561856820087251850545074904503100389762965302180013499989876955597253077913066848114775381339621852839433741148711873799352847243682161939177888265984210388211965601901521247166694638971578004632351704780931239419853752091186359374560381995563197123925757455066217134836288841140611146265411861118763235138444967360656947593156978382532663824198659626181426858562665940202850902425683532938211909632572468095064647702919585664931899140674789990864116445239214888466660327323883342364820763450132310548180006209694411528624440787259916304420963042670937350454924049818837626240158796643909309322201852842370519713537299108983799540384489700236605019212016748447168948780788768177880656904794624637201667319249069801137103459983275798277452230268820741061122942605409234565503684061520971201564362487440408801340469639544980488390634989987174634885601695669361352422302051755384594062647316328825669662698542842018188412965535386281110865389967850204261867529507398345371075101153354744561469548467795942677237042826677185680670574129744656584370868173418315892753123054447890570687049508407938015856470763130664790218871235216185525138169119397887548866514041800666371790764390885738831010081209178211521191966273876103961819803523020847302696695752262960494250671835698399358238369716946913440520331869369147913543766139892269681128331965403886819899577674384709693416040026176066813998245493977310384701273769976333437758394868520183225507975574533576060620948553305681738506615460602340104618270657508279981035013183030345967500685155420057241942671232419665000118547173169929403435629238707623236178452167816876174966158146616233688615665545867421715559864411583614000581871581535907641110274266433554663779565808390515918163647545412312171937511099731401364465939659600437942346195831837300270232280011451524803972695517593592836902269146024311356444568849218130241348049589439764335301642789157709909011533346078990540190097656686217949906359947377117428830707635406277735018473421505495090546612697541439515271480375358949219436956015267683436746988376001887978997170388795882566034192932647935082816599944811227298856101533368399127807172313183236466458661182302912019627360178354762910806056382909233217315177904894151757711594702547311415148939068992998323389084950852620514915420002612693073135194682754319218066164500819912621183944222332177294757091129035316135780892648370992745834674130753692227440639823282853074791643725648086748540575883637414578770511653907243402392461897609299772801010295969169365587533081815985329044303005854827374382778757057288550510981464091111842077483793568374506521857047998937040843419937404955525021459953441123557939181837990201725591158071330041124281768597749975530028759710675459090676656988837722443901246823267047535749156890360966434388717321064222107365043349002083330475035168983993304779827501388810921953406226479196295828721003646693655412586095421844998992739156938907864668621965214639269736575805564069428660432132118986678225679436883738665813239692058462725768101400271542965106164794165280415356398671379257465414125727976178652003752875785302559625600900406983340075230909993072244427743811758101324118580682773799423015712072640282549669456571210966296862086827051567697706808175591309276639701886098351612091616664756780904559704117060854499503149479146779025928570004560827788188567471625954610397047771332336466117584731840246162941069040712460524578897015790681438780950662113476895344918868340652304344911596771921364328933450075724666480467383559539833147891271294937796437493202841790098441817015832064818970145850596351789036276935066623549664337902968871818151055629091771457467934758242488414760045232504563252041678873293440755461837528599060048047225198801808574381240878692504649703138551996790644374147401430074855395382392096225856459312279007534900747785792986510695012935737236439950468944140528232751053777553770682571688953278679028387875075792166255775996881892263735099956645013914466799106013740606332651408756040000792841168495980533146887766216460313548775405179571471283481824315268526661375825021354679377467807043631235498793458031858542206935377766216497570792838874888417435311672740704506078839288241453465234546045274536191904527318642039232536091530495544955316883223051446630526333706762594350765572713233463743920905838942424937018501191370462451062251508584144858546392925755157176198037596333961442869149677350344009211567079767893576813650871236230211900262875988209561504638878006407573142914981526261891390888137849220978144363431249069340245000754343977404397685755634378596042818488697778571195124706005392879853909563061751124921253177007317791004456412608549053367052690791546120042613684557764216622756956636505348485185427622011398169083755961793956383118477290094023182072584753146333345815676890634143273112514984801101187127973801162970383056174134193923190702858100693576741290577184322922039793579086292279553533989375588751683778625137109351849679582542487954914509797672225535637534597410649127046015956466022777315637500423841985788128753930304884091583683769732823451974317286028127117474844904199203156784225230114354516335804837584090512575056060372147531186149482529620779909874872826814267140187657474926269908926104724202960686331472153250945524782151552498181059164566294981705212895988546997786352502175089770914282167635122107258716313818453697937870916091981584313092142031087929852372233923557763884182580547915877122426110894566705420548510613238064327968585974945287303915041045753046225179853421910827327674337031191861345871129289908490740685914228605202857628083705810463822129300606938232179937141613841041828961892461871831555644548266220648828085576208830291713646809048550491223696554268712539233507278857078631479088244597062509177650619942010335611402567280308882701280709953561486130203524951459487629695490625142274628919223108705302396614446755434722043229038634930462091682660405529318112223822563355927917638519794549630575991122452745009672779251818830159781033026965273801901132729940073146276741295651530719710972979770410217451157414047062501572445734398301075582475918400920218562947651430760811111429315342429550996988144428488254541227624358558123004499900776525547918116249202891992595947040292064852802415239482185566726544843365274509265035328501414064289979296075697033020110963336086422545384321399258133814023847100722915965453782207312264637457458958943802801352299124495075066015957293415587772334987573204021316683405140156794201566316191246103890875109657741703984102373007877044050324578348851790699376631880943308837997483332220294583967853984922519443433933364614305058427822873361251308030067583348550220967705989824696910546269153765055391055576913898064311729914120043186673387109649435112840380520613241313988899892034856006722861540012566002047113451424071740256646102227646810974615760003744948701587479152998585417259083055674902008835620732738856860463799631755070773083075638175219956011812885243300026410797475501168514709668225830888658503944277491172218272129231059642910671031205688351325874114779894212683925399249539109675173502155360260847772389158615954796402921414382858573885314849065522717498328544868997177618785050233578577358125043509630016792780409299555796765329680365392652723238230685636513909466751988190393288629591209873727802872424595124020606515205714079086621912168315832526079164552186228527312480335749229562611886856155423890038923056411077544804339151805664074919352665220307054807738870471969346217667849335842675287253824831986893160943907487667294507018979660936823093868043824929763122077849898943748332343881441531339095169262943070627130258980497789898515733014959243130522159254169548171565934990898950572144068709945672650924193885747685864799778220033279691789570495661715728530408185410547427999026824877376578054607841694805923131412655703860807848818510076047168210543892299210932015701450121620999666774185798827528370943424951144249917642636692628376757491810912766532219870276080282430559229639151503979228936329935900047034534984565399506150252374275271022871132143594028359844266341293234997103351077744082107073478857124907449492159177339506613786927936610734294454002582050295996041161897326516913689949258381001166031133359234447145267119717878649902189884090655743670318490463120677899448493933142947401027011876525472342822144281196447055501425107990855325106052212062409921084591691682725610003342738973698038531350228982856075547543789335289379508936139976653792817603762029432707677888631760493231248869461222429440096135178099131887574690786648730663730666908008443482337150073688744834397509639434714272937619252651381762300437788982892970491656741724568210031971881994461522449683235888757949736738566170886254548921493451662996610469677621473267497177200373804992197996780218759544383399054846790309413372896105420373051231030440606947482570712361100359969474744063690494752204963555484244665341252992097947285327950593440026676239577788750958277741102064344367781875003646209264638616396449805309111718932116663158351529976750986081694055797192620809560049944340198816805989313177558003394458336551940774442329404467179422406300739315075143890276661180469418657982261959395742762113821832615500131120641378481787404502797270381182732796781247004708353174364357187513071262537350036495363199342679719073978194683619402398248864334033114599026480417038323496571887747726014083544882018354055864070309655993773921371774198869547334582893869841325194170141060829090578079810291570842558431190326348592478177359626224655400728329500060393798565859823156856089643480318219172067592501957744818352179273889088683108570454605684361446736814209560482919896441445376018385030596157205742446220062694901670102727511160535517396051977008172854775780884516237203220454950185483276873622354303526765003136337300501232306598931660876638596196527308378455566254502189251710208266575272982677435950392962995444978400179510453296669196193364712600904079047845367837797225003061345955597781502947966658252852503970837555703751713991953783238328851580300572738966690143020556668056402973434016883121490690062304315466277967541176494709126421639199339875041601679968095520188877611729639437522363948047426395779330914336881691469083972951946773407013642936253354345490592879753416296883120329785612714230495984573132702187114741401379927378849798087015164840331178392430901722734614752514326384642298321137323824062177650745627202095305751561529192711506272118379112209699590831942124519532112339874536487044882178549648959280755853254010995642666750445975591424067512448679219389455433613150117238676655326942854121644200128607502908372174408048730504710844322796001946078928136534324626544096540858359715604994107425456304230591334877236539782099819945371031063558236640698416944614445735339038460047980615507420900046247866279930053876836708380431901299193423814170599890052183725473297984679468695011577791050517271178859728160816065687991153631678289257551083008130348151307094795147066795686767466980748902412441603524394290494799080886682791768861508169733301092359849086827114844621011796408002236379369547858294591875406857081135792998276912690497924238053850420456036198035600607154790890039929144922212014731659057182682800561653222357659312874991017333933682762225697328567064814314676602215896580930619452473097675408968377087821700925509348747634505721417047815913051937528043262340123925220332159866112000366530876874551014746299451342016066725815334335212847787212869977412887163605366752077021748706575144746415936481012907369179312332917502855216950934571356223786431524659898420328650776516145885170038601540215721236800931069117645341405737565135662254069645148027543067461273234971703885543646685979826003818639642228518171097702032941242466959301486993397132968646117931384196701329602672877593174478624678884555281031684263747955942247914797146178181460978978573700697286044508983714770863489034885608702173604843194503609937337037578016959950230304898457962380803803883437018552757578812964163463158976440407497883094191828977938400268220968838510748701030601000885261807679985653128391824268141118535615638685087964040648273920986283584927346057722534223276328501268362176578926907735185492571861261306129083833430110999708270042789868278465397119776417979587384666417778266162895326965500976898640368722379579458625467194098714429963854179623882490021036088457126947303329605434711871102766213693451102541239179273944186084146318364379363410129921417504510267729470017671046282678752332647095105384056644687019100433110059027357139650954171774144548848344837075920738221550792689735317331393418056670622115017261747236587382059077591226605622030385922057070629263461658108200545113677681006094810610081017768077038452803941877198498477780674618207053595875464521504918494721890819321610677918501234432374067232066026185901449336247578902387454083818013765896389585241892701558096071526000006374979600047438073831931097219103479037543866001235891932860464375675894618862147413323085205393623662969420926145723895956625409565182924631240430084207412768682535532511124358716032628877550288117868350979587842335590288210258058859136995756658061612474681887137058321565385939044016385225453982764716351070554683457015311206715954995646086877053054233447692388565364606675244282473361905911980888044484948694430346916805090690401499747661857853209981901086655489512512616036557931669274596928623458192661379030860301036696881796540007381694903094852490752499983270188290599085054934423129987905728848088558899120951888075799432850523776963106607594910696028926062067764159781664333194527101992372875501653691540282756427045633484875358322522513113168872869418225485597558862903884195429609008744866967555310226595949529004522608817425641434041228353118304086488746667605328795121960844082450924309364296105640835657834641551517986025370843360789616195139422803128853452312849482046899180568567006257950314919366350348625084226960591149384778573093212957089591716129728046673356307163181211876122340242282630113789889178634848282852333601512876742702160358037856831321048530308326642149932155903309908455275236890328189370108059692546155406160143683168616736003231942121776681422034821925992694329489444323861569875784845831702717076203299043821370131094482672081245333913458783165966308168684038841981904067218203037267600839400992846098667685620496293772679122032397177921511715942308917624439768908439592034053913769562495480475174014773217958197370068085936150158823067995445102973424769666806477205120501016072580797506383465438030241863341722634903049634944603025675635668947079765345991699614055132409466213443352584185543548729336077584367665754398947664183231028301140774047574175661490408465785752640660127915298128409745701236730201853997045160932669422050781018849006047322031133192057425410207904955737899916210435815759770990981801503565256246557051856383150406096323209213338579777762948328569899556383664033192920611274576549761123374669432298498394333474026690915772537938935076044663854768346802494935012027847573033787647174299621151896805178476339952268791038246960007405750548403838203886549751946305701296924899672453651750352497966875180716769776564098178750947989196343696787472069608433321134187404274955741398910959589614159733031795207875849001307702279198009457169397855214389907153448190426909099921733939166080707648693471281894116639421110147288726344024061966477674897593584249181965870998087614301377407084641854523891896974913616416246848871211693275080506141259566199785262729153317720289488806579791844838323051230917598795452412345974494238581340105014714061568683098102585129686378365399314273028676367997817483140343915812384052114506157415791773217031630173617566348112475943362683237603647085648772113713345297089950736492974966686473766288579576529457001061485337396691427347669128395954509938048913675934791220651908045550095018479121855305090972757159130619901003955372651120210410204838313301582137474869724550895749275086046798166888561949546256991555750165782679341015125125831461385301509500200963575907205299456822094484111118620191157638384356502717826707603925213061635070706325032158524615116341010331301823641188424390352784050480398064722004839208632604589032087879024040415124497044309431978806056768348386666053588455636005093374522219001217493492354619433766806302717116412813996603612727150368866423887361307977665408595193790313347082673293955913372217192501806769423917262989621529492259918087338939892998863257186374093049598683608666653435636609847056927913914162525318085904956314889998697685382765261258987504065801156287812961089541599630184042199030598129947328987150496489730968172503773716457865867168228860605418855131682465508572415023374379006870199858910293223723878691971425498479014308974729746538159183061703805549073935991318812908815514322123850791732928155824782310690550508028057237861890850019346370026311536421432150842550772685414959350772522435134370402464776335647039015862176553070734014375412190127229303320458490826064739488206793032142283580724274150311911945688481921859784201830173219945684175833725094848208510368939467976385713741870151180662092059932879972293818103010983001419518113094680337705215584555853122697333534871393251716336009766622775891666014864114844244965698061469952646443593090359464028759770191105435983237968565993104786031557022015225819199259734414464265411051593604524988778310198180110068882359479193054805830208532757225558302537218248693496076368234612617715152028372977022663535142671836565847167030890237940337491098283233162538363853961450649763689036289113405053925275804137563845353025491194107010106667382458215163908792326469510017991474907218867058458056953506163253757263474292610763964188140085153847632057298165762121260440600842642037050112720361219510030105722203044505459086610453613322181905785241868727033824716909016628879780922469068806867219210740695546887350989576561273081498152464080650999139089753137788755267284833257612090611122559872051710820792629300726291516623391165796480207025510221377185880582349613277412286857653933476982747362202872282584683094806546500854072415009739389810141197794230485880176525612906321286427438092737477183262580898147920444833263340992459416345982911352634128209803806880595225565771053575954629847186991896431843203451923629921510999162995535379565280265528263685468551095945950139573287228593990199860292107445101012186230176517472205286958405187844192971850632568619502181752956501628090194710297446404340499056842472897143581740098858007760421262510175354080580495811274490991647851443045198551140916654295214270037524356269621146798500118248194698323012663749849775762737610894189702558636942957859330125911278863938534812565510672971985633556146750540457634251701647675462945422317771428338600392917350935989220462253588566751072493850179959902895639455984512617030381126014158673025811849324153868814044579931198998400828961214904368522468067397906080566845791687244763999565434499880928533134692252799607209474587414663392751879842455519658645013530750811703595303572347485730568938542467605738109799968627657946616947268176344003570413016285631136136972729031691050602544351031219888302901326251792793977143041974488193705406364723900515559598649950451973847768126440724463418288893968042027706800163277069784908999221445308895865412700126422203122700131188398318119736533190861198340152830972664438351305499271069215726580135543568046389929580447501189715291898454529047467243266251595113271966930955911657579041856798587796503328799772142777026240593451510207421063511304506143709458228623563101915020235927875375383581240957146515624608798707958379025170747644036312677364531949600091136643003416992061123218552076607901686978170323429024445027041908925436069412306962096678610129738520677615190973459707039691296829638775868203400763621746093569703633311845595987638673117965768049306388023853542287447419002837916786293561130057268914587268128506017929445056785209608440155015925388451155395454302842129106494999909967897893338213332140562981153479071117882875624983085832027606090106071772948520275204856983853867025157555913935380307706732139177485695399876504971995147687724200377139427403202465194335762740485756452779834104187171572649820456022588816890540670172985849534289608248981482236852741544507643236989738476287526636221187524852987659520493072195614655395887262838778003753328127862518953141656903259412704284574894820229072465331826947409859181192230731114333218824614389309984859626543081224795994820275114121382383329623502691450490589165530225106540104212110981964464196673804142951081365716495519507045663487531301869421433143397528413677580777539935093935502832267889470280884547428572673025103352315881721067704277319937629296656152396270164636339609882679936030830028728023203255787114535101795409514458594376047917409459758323988422891669869922920475646469376406282475479732011847096375745937984386629684885339457478683715248883454357359112999041309076934163704070219279755076076490620424210592316579678067634804979358814914651905786953302324049138753635905918675143967158087865452543307036781789630753813350832405616194371043015168896810819094681675052409432129748877874473520047566641308741871571881989895653413245689553268867041310322575334877529660888109870910791659308104898084303024014724560527980041227525343392404085842716340977094215847389560908729133633258019460843533662182958227642413132213661728356772746806237168319547220254668146000679133486496009807898847100923014012816651515922464012136651105061118911719997187891789070349452948479761641630020289539617820208981317157564113839749234681944087183359608267039354215839060768148426879712135887148518417093285388230081998007409021852884184476221194688032102534410511541470127778671421679790185501681438084133698637720254135628301724691354808792387085945167721229672079024379591909499768144443507571773100517988521385063915619384970824310711559406600530890211970917211616073569485534363396846562116735173126055121792377273611492148645351338930994525608260036407597517727743931157865707573562441443491274869645749232339183669767499444988811857971797315436837205510016811723998212599910601546038888945588285238038296778650966070392936492645569442236205910270243734708355733798990975912063817870558018661925912293707709519545396412939602609711667195681308966738028847999001285364383502232862712458558954581330046608329273087658595733730361580355450691625389123860775030050130548887442793622338647736349866164003833429519496058715998445051870594531112710925783400429268194032667362796676971657508299229083852098598480094755304186203872338807711787312277296924928362337033430018855390958670621179113401370174155063520796280996808844753885808361316929421073224528870688629826949387052106670412173178174009487070272854413381973376573113303887105432101478699366851611546978627362196446908354085172842079551382830504642767979475499950330415429907351859104997794060640926362311636849520319815579606291390299448982541494365317765118161248346581928258304628895409926646247684807520766346385557241894226399574865064259757332574345594948763268411873622003913408123577311796197125063242616870992799263942239656048291803737616354498633054840275566106096595148338074552313927341684914752380080961010840300661604665559574796633016644157310968654131415534649862098072445066397129612298302136415345552798698813669267543257377985559268587765234008560547036769709189369756688698678464652951006571605519982531540727416434055360498892258395934652394869970113419272736205248108702756224509681386363373143394137788312056753377378929304669045358848684180201994689529557616114347196165420145376227605789275120577891924847722706198128982547495115184976643241232460566379592695654866857453555321062319775783675118189821205207051367245195597323783770887898805914815140932540958134892447679989188275406413957471515293997565915644025459974628222121422197449225521642139416427264925316901130182109836551791791642372373775724536996072681591463684150027594881830031718264328055965949220057592679052914731053950484270503620245849454334604765088351545005495274769637464363195421192198031850491760315343939035610260490992037780506318193592170058449530606975415482493464504455526413448445012382766870447515218673722724141867039706828935099825779398012987999083483016782022825367558437375778036834580565873996977306360661134908752248303241909383590476253938388889513496539660592237388280378817668388798694423729174824189840433000006979142896282167662849378022672039637809715260399098699186384441572035533117462159418344381152035510235001942647142820428246062542448776733767314223541083967521210501479985766443898457982598624434650737134570432871922037771751866938252294291551881228034363157146387419343121206402374706205694940807519049218753189924283447848899011220853181220477606990307594328239133573401412262165243164923990150496976765080250375041788728485272232393634631585175159209916540152228553272187597965890524332957499508685474535732148621568137643079153934317475644999977666311757508682627231845042963281795303337066767554819106603621682332343860645982916972502593043968224205491984149794748774542384616382247007871160722080920437162350425094934178033885440328063399485043119104134920744880539159316717426893764780188678668514357565626775163551474241334718158521615003253859327305939328798471228359618053790365081251241794743261067007414547403141002731427504734006024746562108071336112597974023719043283348428932411096884653979351279583078520463865730151869294883523617581081224068498884203388414597153106838160054528987125017564603991919616929390704067126486159176173012777547309241747573396763850131191141723173477909012559383072686078447820129829010362020051257612622655863248395126283796012133639641819195009959329986715623993659410099377368297472076389760513732762366532935355113047369101708295483286259959251516050382632767312306963882499558956194307051463089299523125444948910772925569644387365590823502989112205593885822415163339962732730313033323349646465548279786337083628825658300448703393810740593702915397042410795927714196472619752098263179420911141374933264796012703924108019723987668526312173873600307460344895996302065146363195866772091044174910168652825553775540082765324156384639014102809488187086112413276809451132202975455967944285529489037913781823356364826975211136684958952991462478602741904098397917047008321101611503183274020613090588047132692447161170575557926099430037880794088482271174102366770472854408140968060926759153612176346681611080500695825343816893099565426936948402386907449317717387379707013346106505525318096392925727296399046181934521574449587893536393260783875112168859898400817845872447574013847140085974762496170388091448825560192769924550378496994946845370854562850694009068252177046943569137690863664634594384727997548534412002268754687128608432631641266101949025493302863376062373335223767494728139962470246395842902592057890177331070331397494007559577996333578853651323412178180386403218805706318644651739569252698130232344265149002463809999978364022658422664717412277614784542202352193553246551656748395180626228662677605360201621380886854839104785074747490275614900018544984126384217281082514003291291610867627191908594103018366484607832908571266662451152703360086143193535108296083689132725681830844667931110018621343221401232681641870729201173880167172325747674546001814855967873737597786878643994585328694108890627494063477772518748499243302343813088566720009412403030310595764569773036631798843222657998098276163406191694003081126488947564408732329737057568002945741369936370098309746098645901609925646010591830888510019022865673078677818387362267533507899179822198075281077416122735354505291674934210609776434551058424022676068347100851764557196708899392541112843636572870831804707191003133764012639880546972590581015118083112442110209067669764668440754238134181652264281418850213287950296844686419193137214392806411001539120781358544515217458335186047654930869104391796834572145012770049347835783575536915471655001404651952048298979065152341690040666330018623807114595503000325615780146666293377882050503661369621717251046107049312587099574867213230741212249518998073523420728116455904528492080634187098717722370015417849404771446442809804844886697633213689288957443730061954229578078977334869975985578291712069872245788802279521612075226733024098305612217325073045972834012879996836101215952072951620399295974288679548191188856283057085123154860483392055625040686939791558741091669380404609586185745416762342025421883423790884737941164920303786173585210532081015037555887976746109534891560789052225121617623721109067358521247556959267704835821304904021212281650179599327645519010399852873642233788852495383253842496121363564974969299155230060009678849486255369413197990519286902648441017169468053159803917532608826196990731302128912717315650084944227271895752716837955166425112364309746723042661896766503331432793138643298033516439313516651794558868591582054907725976023012036973822049206256401796345729961244352850703756367002608202102262600160248001805781549542073468004461004342491642193962538203121474596284534383274358039676090441766106586657043002997602231235736689749509234769036992238121427751581822589862057215806355241205693528885194435371143947842521178905138862245344341908459709216376014513436787243480809098304348496030859331608701280541331987652189639248597222267272652858224667725186724251741113773862750742445183846817687647546978529065392275401679383790136543632400675402033626350821990422900015086665496396523702568853194089796997446341304706243945039266247152239353430169828575228320874101614967026402555878981957931531815958407560962530725662925735594206729934868509541414727962819889348365271722472961817547784805959831940185917374401977285248255369325465802411692888832350208084579811624486370190176712520153471434303669677590059133813374264313044930785793414475013358402867422757484595269597053257214873854943456302172256700006328733334592742500496649943276291252973022130439557530199501626396589264772337478558358024483944172600693637853782661053681843209170119220415736054037869717811406730879512477091475362826025784486906711200160731097528411160639256185062459799152517111376537643939315010111331768111793510086419792263690390289846436827068348156185678375240934929207884785174227875436569736371654769470485266173548073147245025449836972289681851647697200197586098726693656581590713267718399451033836804171423245192468567837680983771903962694730249846450780653509320512873214892923691504932027085325676110541858411084581107344387974968728422070926551877728013650477202763805316821329707033851561872954124613408260522066880497201747194454791129618949797020498446642242068665347139381049002941682555304882310465623418489111727983211793340314482829873665085669067040522648438594559305425807380048350248105103830606757891500542573073445950451614304124489902852817155940931207077738004596648165112643974774823107376998613720396386714102297497807644770634512567091256787668823001185362370974998301082569936920777233831756792325951539466188776774812862793482030712477189131635238608579447551608174149694763777428304480718619951426741911483116950389505999253184635575273424720088713814205844433663910915995257257349028627458401334019099114551005634420283652273253756212256415227009062623509751696925890947893967327868711349266446173472000164387001079712732225050108568068884456287269795343577133824172693223091874594699247602795546676662489833295168513009985271488084786185623209910284751606629656755313405089573197970303919757634585812174859228312213223455923295848803089949069029328504171194540227724834452991869796728458971468939446004645763655160933187182407171706714580621135761041323242865788447898825664745213222686319895689743221447823849155391941691612564217273225359401710767576539587049507170581397698490719137344032369259305830723147961819012546609904219335160677672912043788272480122658135863376645463584154806864764326933305077516509175608604979466256842425202048941071385809958433443113895934383182213859911034662487482541627255142730202292230635379632847074168347604496886354053831236186461026539061054140909712125312196797746853186624025313523583531388320802969987411432483882722501503384846991499890966313184590031251362385829909310674744727496923398771318667446561192923194001301989188647500345206334812264572967363044173147722085655389823596915039115356060087455850745236519733140092785417476122324458619580179642746077531802920390212110441222037277660870153726676723781369381226517410743042842041975417173811217345903148396318535454820208495580931722507413221383056495741866852743458771995871810569221193233923543763369577689254441054637739498972124688199104533528469551789240092584029377993918204302629353329193523812349615279648081632712474898776014325693888614951265961816993542968536222050878027241860171520623940507999548938263215408947611503716898912311610823914987154434813885860275952550592109597630939479215212227149722140996833100444160039377060188154956017919071129952981826486732220183330710720930004776758420797332375154850789093736216884099920008084194245940453873989398557610457912758152003468813653188992534397518557448071984843843659955925858862763137591228484650913429670889926599443384798840253987551856749966031055148431510214235061275853500533472036219766050166196375072684308765120638673504666412836934707488908349021419440516103186289714496810255469439238315388481122784776917435875967880976851684498550778323580116395772952944262325636699288398782383028118156326422928246130536022135483161065517237644359728242842333928160069129305958692711749773657576686407381415987485303772762577252261107081237176909343967872991409479275030974988407740369094560345363135271934616884447774622255675007898759304667262785093228722771780321888649713763671374549574724306449922296416838660584465269087007327717194972455837606438586227357137888452651699541028368879135273513410602672116372042162333853121590640290574960066223891696609621615473238088147032713615264508813461239961100331659691102324130422982328933579744922398518909542231127905979244712846275423846432196805748043004527486614220784974810401227773686099592216235057134502752993701375441060506085844967443540383740732200459971629148222173747164407808553423239423736043919053132213516871814535248058891265501106860794011342229226675405322173313882391739071771771812007961338104407481742816083181976058812435836918268812333149601607699634496644811877763145020618583757821041745910939709943444900043223000835151999313192749828032928071810661751922778554384347489939387185288942996119716523529043970979200926480647764650538693240425712128931539012867256374879260703544375696548319218186352301869193635517041384208975258824415928220579245023337253226007455096119864949130714994801792375076869458603830875299459177225936737258363085784521735551625342410934702040422779256572605153272518190091054056698761922871048627542511646762677220004237791878158230197735021506511477764242297414127450076965564212271227112899793120483961346899549190452444724469979426241286908828858185089432554581171292489431836178596239902896458745816990388749718287260869149569427054058083738588564311952795395467143413372908682346687878678578644791354006915048078059305667358752084538901585282730465594593078711541154319158413555945334004291690867455703919049975145163282317390367732510700032000248586696011767716909075217562628930590096163133918057657077310393675177735968344036164319493426063233563494780427988508259234179941790859373217957616343443199981481389225916799697486533805737306467321373418993745333912681923644535937372112971027359934402855554375316935981908217835057661272018364967653938657816130221569671482526575415903237308790753785062222116532404085171807577311895068973091691037719713053394464494443057451871703551763252719794079238398266116993002307295253559355176397158677094835813199393394374047193056651146962558548453964572261804331162071770468068587179690645335866848203142278252818748755111843051898087113356807113753294426763090534626720230308475933441240494764900964610901899694497479739559212590947236314534338911194866905668335935380614606827049048568136616545855727975389767343581930055950375421747039142480371627635984947123029523545404307604168453424562220791027985552179728773635784587827193226471343172617790095833900996368748520359629543006314357524004395547351802230560053991599757476205224629311788042968448468012678607604185156866567540787801127052209262944852917390504021275980355873353516953094838049057979887014136208282659473903794720940073355557377975348845748954786839439963027218112292519245173035118994869810699018522554591145110912313741996764623940561029378673197423251112819473906685210022524113363922775659513055490959401646524017184338253520336418655936858439311843542241786580789894287331732867722053227950545214280162387642162080232872893073487596669390117141210226295328261000562265937144290107689722156179343584603075509273241548500220283494424601045312367000124235510310535738862591661170780308815954740776355896286701740116568956569392554261387201024057712232502687999340538617708642621729622124317845595252047912624597260904419706177637245534190815782978393272517956417643366772127889612670594101578628386867469721261832651315197953129226575407756124342323173660911812245756729897310157076743879264785258053596942353462506030203100977226414981807653004307629775449215380597650569161398668117623666024904351434943225818278045440607900243041782585725327441758557966368150016387474987335842486802666366728694335409427242763211771320792385687095428859910534373019636917614849168613451066286431424898008324317728956465511832933614837409574115409788773047598832006656003544346752659122535132264174628781303216215148149353687311166169769932150580713829424956521883078033291660827566315514431940179634613224801032804512181720737678315096138213907247888089146029129432326129846330579538331632970264101283898113080822685120538021455842151047154710072463269666384377615766993097604813744444320582981380605090139489732823173421342724038592762002774138326105804496340445929176397601065546874265438901184382257885483588680971192698381570421690908277275411102877524664634414519727191530815155187463684446329760523199130962942223163519994025849475317594969549014626327665282756441120795825700883953149719227468021628881484518035687973536438036881494543020023192466257987091566480917475939516193282924444631437004458437519705650426971301293673323736819420145943433411060579434942170263681941788379832701971377709814246163229720022993176285670305126568368414143715608795275730697147513935671789024155218592877900431884384574769311113532583618376464970885130227788139527973568580429090364164634073870368853506284202453362940683240656440338743439093442599591761765023074872459035406661941719535615605359037338631633617373109955429059868193986315279198509864571882027428816377458385914550190750188923416444794032799495542441529102807154202931165414140459214375681060684990521353382650213082755174278644100353426169913772375844905865263745652697264494409588984787133564898596479313594512096164638227424399008234504375019596674234653949266944246183514698713304769230874827721139137242489373929434973173159894575846256901578020734619264969288780839358132771112566752356506523426726850641868803089931995874873052356788994236368107994278605810979018851337096519116464062333068293550567238938928448009736463864385102842761010808049916661854455372842140651373575798381585508087433056320193750746159610955606521329076761587587927106994531750153943934150823549295781409616233986679782431824750286617288476948696507599291443244640714525370328275796376654550636317978289485145386634867528292638664042788903323648711453644426052252870257237727104615749694482900465897839703327433637150216925690866140606717595423081442438649474297524291103242113418426356657375197122360229371042781182015242805200854230976228770486794086770510464218071410000964275917904913296367083350694532224423284643412886231873834684606348721183164873255410148352521899677027883452816703292134452828300743141737437436665549301775402046285274506201621697773883011484940343694154049124035668780540033031763533573433398966402452182993024100049895155636313846833676927163093887793290982726315416522503086312741043912459990803938581774789470846732532696009033744530079716310632821304505688822707626483954681595294629901617066407149057844423087191642710168723201843758884766353804628830377871185455127851696944244032864873038847590149814143591553577055000827986662823816735105701017440538534123470940632140665285771495275333873694429022564592923319744191308711512482546351319557341011945627224671589138019199502892910198892620909076183236617128912214474447438595824924910945616968975201394293228536445265425618718390692725295186233915845319608094116332326591007942992436366314775460317366472745830315291908986486526469756631819551391529970153615641251364678331696518042194530802735072899119159970018304650083504746213167531372138522625143755892382830055491536222048775463672720018952011263168134685900034838562112436520817575593215196863066217980748428327168349209866791420457107380455850913077869754994381785130630049128378813637506440010473742812684254812100203868983462342775468193962224548763133963017151788288622339352492981416736663327565093726492853328641174061317171024699398704735602549076343657666268958179786777114298257860119991747784749350205278290768289982925751219981892744709943370543032421229330302635327258990487658861324528798791176341748652548725156292107692281348688269761463308924627466066427881427660228158834733852169299364125530256280171819733791378347066941564701500999636366292997749143501763371609425402730954723965730863623414254124187020188200524774302619501949757195851730587974372309689251533296306927006561049680693742607275679563446341365710643932696085236576540953653123817099927814735698747336605968199777911716993104536558356791885238207312006085223799609183895059887438457164232828895895097455858657988509688005060249655057063165439682386112563051534095584172298758469603002606881509610221831346782428980728272818036742793094958335419025950249885656781254365903490857874497692023260065168160775139556147007754255186960327320033841495921885418778253770877977614905482750658035136656792638987755072923009817923923701854517718743644263296472262271486910479824160637397794737709340930875545352152911629367009289158742866970606112575705744246489885216654432282674261332840757562331556221889868515380814705166267593547728850817238702402046173235622529015717736658798722341603455738712796972321624023841051002228953867097000127866184782843730977637225769318681949733966875047307451662006396634612770768132325828318197401617234888319112621646061416167622313711840472482975720830828594731806772756962061306877289657121818206379914730639938202487151769444025722256348622880269154709219084178563376488885751260979873547430999168162334446148569512413914184358557642677850194831332970172069137827886425650548825266810632421142278293402403220673595514286019021064305224148124772012890631737086658669378251485160321169855736509549842706738011953882733946673555246126185943285854196030537891031692945669662296026086793609697803181264783275020252130721009238409879612491850235691486884671122860260380137329332043188149283565255676561175291711752979283232483726761194735430950509363449422587996428270531908966436512219967929255035526353665931079234716583887572922643823052695158693906796080487680677911671739165082284412296756134980991113211866373387211317486059539502968093251367434802801531718056711077510218582269913028007534974178199233698706147171403416321052329698544584556333868029239329928574463890707960071778593991466128313267063568424976676046053654167163659504576586162289012630485750905446265041692943894336982883503807743334623006625098255500367711996792276828714832238376288254299996295511736699532012444372177900125399660110388227674099124628080138943156730505093494428659650582143308203184714956946851981348336265483361782880596668165051933432920222194268240551518409148331576347008845018539764527595790089624159851484218759912278268483244556190648238131064264217948590797552131129714136557432072518814279149823829277762101898207069034711026838755143620493940684633255226330616600657951678121836391976590092326720559049020882101589903679843762377096122140881228413436772943520760539123924045940105422532589552022961352454108289271590708523218201244706582059184615509816280227757975710986512874476817853155979172156866791054372780904191156898520993298393121586236574459255562241575738753429466916529210932220805966486184371980387273885276290237711387962392349858072357404123109198200113440973433442432675446890045599599750505371951302167600325861906732711577736940449614524699937477664723140501596642383414668370853290635602053006872801952469486382342578643556545379187046867460016510173462478598012567956673027083896542433780492147747926144817398107426682593199022427385641790724487053134807341780790503427940054396763800077245008251969265576618586186268320348046714837474152042135939496507678168245140182587920090819725008684931593968335070176220127360198161696007375823465880358935314217545048191283434214167174445766353479504879608274499782629927125747454273132804870628387429606052366372478162714004541419158065174631396321241060545826388830814973822689040980095062982002703962282720902503586502801196937057613542304781992814105196601469292784131467803115179950173824015811730608922403607337729717071718852220697969907044637282392319764547657220172264246430854975123988141165586695952028662027828131004373285413050948866589579624766082075620027803892234319983010299028433470938771493469275260517377885530288634672135330498943923575594812187918241492002604870001186575225363563208048921907211789781929544871104659487862181587110623547975438307725278705512049667413312248731262632172970011453296696901765595863893261570709758166300462801659577990423685032086215290867631812452076386322776599884639138706243218913795110069002361426982464883991978249232852830479012258555321314290623108022790390562927068928341919775916926092477411227799727983799634051502801393314173683035414981406710773711321193190362902400485574625282161308398867531058498957058816308522449656935859581286874372955013211441743644258520309654402212750662806423588239471884316037421980205955998736830453284584109057106440681618595814059379326975677303469187721139870326932550352328272839700378879466034916004872320119318216204525433730049256999544677799731748193001805324429142908879634414971356692751647943420248769946730072098665354351885129806709539896582123635464466102568384650864112980952466184430365810290289399739953409280662153745015429323200681951250905006892880614483601680817970990480326012553761310452957631744137801545109342546177589543533912141838552165059232383867839731372585995564961945822314204499568126530533262683502612231831989666375915332626443195683083498071799067012277084866636950221393815891180983304569142807774221733458547988631962067524864404856408152228025408981088069796312128106602018451237337645582016752057664984776464959644185900900716207318745326383003965228634238049885549809064902294708105508233483786499368757238740382280247042655207045734388508286289119650315835529414006253492314843562674542066585845392623255460755609578491252692057945887587954600296816296593612692176898471850685009614989851522698392516438590112513488289407716845740299447419282705117631027848086736248300975779976489500120954449784207088276996211268207850004573666618266976450692203537634731030150225899188403824073546934515997032185787160512862109905036489754796562143213514384498125852686838969839780605442192176601320772338035352592667942246891640001260854994725236990888806833547081944404573420576909048365213112206011811465578455917999763957664772380731202515616777346652619422894822895879138264740102775450801849674242061920703478219086564466684802901841135247025506703533532774737888492042864901365770188808001484492103718814774127912821324590054365717058016252030447643006804920589851920154015281078412179406722244560562242021628559365556330791129905170496196268071140342156791687796607825742088773154667167125929345911866968548855336470936576959065001463221660159498030810058698115324541495984674453897559024713107886835348164031348959904690307098413589049044255350140414429562586788757456269604636392101806215542954023900978438084438009771200211162447583398642923751661692805582780282126212797782633599685411427459703328542934774391894855733521240537283390984820162485681487773098404518482388109966494234157528190504603196207759000903933121058805156889166500845094905971697169378101261303434387267885285289013659385890413150490153147711792981512511565475076626566057505310155290449724181789795142994799043484434604948816374983401007344349834905358822697393530076738836627467358274032736922459509419443414861614706319832236548264611257109567823229442622789904115537078002341884740862887736263401190186771187402460481376659673700873314826481906112061940440876771937060854454272952389165560122862944777784348330874095912372712763726385611298371612268275257637290116485961779314585508399312910306640795101324763188250503080460053431080912261347572487066520055539048311838190280509377998602098829215769821394556133449157080976884472349167767422740697261332080209356876823872067283504684109143988049137503669281182065024318167829810692007341511439311872609628549816433622883773517297557236733018787297948699040838789547508556383609368117558923949508298574133331179252697062107696603530436787466409086198051057054437903641601200760454781168304320183243581426222438837039122333432772545848853218602186026865375646454318426950899641121903755014797362413663100706427830078706367343764597893408796629174520644326690593572881869660292139231367462693565595716368182713321557413944085612306930949500653155436361429082473527730274189264283393775142973017368371627542927875899611592452138758054436674428690267138625490783106891543072733224885736214239344715740574643801200947565357444841831733054829443737481845402321286429633871504194105098439556942817309988447125982812218004253733410209887413997365883123425166787309689277509557097045205681281265509572179690442537152200487840593354446565614109272256178210110295127762785746800679331320363877004473121953950397827631206542470781665182063845876649707431742722153166680104058029675194518185359862540034881334671763783906788423647098284288999690564836002378164062902713911662910698252152894007055513699105181937382272408946931273372430260862809355077991294468065724210072310241326518328997158150663060623405269601662828754239487643175256111839196480314785098094345502329332351930327956384703631445629411598883941877661135349941486745292153473826684745363625773989727813280901045893753162928595677601584231010914509782336482044689949319482069394408641043857583974835045563778710436864828766141574281437022780419486224904211408701938158996381408483008225991327272135828295317216311465663835334120105516431493822456650296018233465334334236405682801303548737198785203765844669313361832511533544886768955345554577273572463566833230329152771739833551045023536849644452799143101051295391671246259745433471810433209721229524788188653642288803840502054562610280923452333962670183428278109797833183962213740791751641475966923622331532867854186010961888940174221000070994190403392071739027772587786328933971643415946068269378534054633248942581659481991302163657876108598362079453362824191383393060791644048054714085576525161811189696599265354841802728220918007345758553175555765109345554523726849965811785733853940388052937551959233150181774720927731023292433598734642247892698168874424898991124511799919825809240617800169188569505550840304275497806565766197849126715459754522983325094409894549963629655971897478834466255684526108599117444437465338570972234349951754407965157112737524465436505361737272040360338728041292980512206574237016774883979932961329951944428462011443371944805767580023351034734358231311055799110670500875295470658489743075840859650554485547122358600170029073518242759078721753448081714764820235117852082504943537597713461788105843183615337720136224123723393660178383091256772810919146105683453948761610754289308184334691540038725851067918001249802080448196084378033894562037156763571666125264173077299438756418947366022889268883683778920537357683614422876557201021598403777120555525034413159867186318075434083191707708460667619751851765524750599792928881269778398957280981115720284945238991620520730973764648243481276521368504368278719317412512300597470808447986718675784957335341505676918094716860021009765965138977517658259833016984636900880934039158362729086984746247102881569291198921422416066287317297788023523856568722597100984395811073342318902827096381475698874149106623442156017919217579867270357388511568510282875657297025283281239655847172132625637698208807813508673660904895962030780021380444986615675594016276423644160248978453856396434256089112646452268756954712729264187299850381817030924249013136860402338784102373913344834070311715961453998275097060493667243103314369480147161320696898887999512988267088428485492705793726187756320895184032907933134434856349749686608624643697492808656686706557159284254782246983383850012415294486313564423427338902706177544027352915980555320204320960410428197420292163918994965499743038537037045164221388170549550198120948037123310654319052825978758277735215769321870447463456020058364922862699454134336168187536943602619381342464565033247380226545722196310389973610413003150402182496741547058857271441595038134958501686252903782531866627722425360677671616927790382818291284101752728403690557370058346116206220452928320295995933780749689417995611202825154950903613495871424012948821954657458436578665798044714172951803309342202468715015072300220037766767621454578259319312812478635303629630253022870683556833598318767983995201177936664290900763259120756804807805556680241929957784344477289227200657423473995070418009615800606779682739321004873979167371597924756280823689364066263444501588427355053854076430151390931405716240460532875626211486744142889884694493278418970727735900845274935524256480140402311486735723654350784735800510402970524248753112946168972911522732394026951374103071938534296947512946296751499722142817506591846818191402887660499124647009218419184807412781259081362188608258270630001860564378770139227770578743746896103070113041337560565728618773872275079583917470531172759940399474744522293865612677105763083474545264224872744732318788317971120258695806989572317135801992660526107651412987469583664190037895938109291542233411780496699957782896776042192432559836913818383366247102063291076699608873118645648432214348880301329424040273678703128773527827173266332263651272774836301945606882330357604187262701569330026290402656570117438385672839374962047351450796297047894379697847693108157989142305489604429098822027863285558151045176370010632513735807435056890819533609624415267459254647087726123193337935755544751680420925082425224949097532287589679621414724927599271628933932962393777117695360563292013004193013425942924000344985149170363414832918687378810260215606952928275257570506887567468571383985034224356875249231140954342694266081229261780128057064448242949929773786132248764639933891741118868849237685586338633659649769268003812805669249131523978502179650242232937739532868286045662441106566289664825015829017407724194055515320269131882334820612399097901972464771130469919693007156599306472466269689238260570685486640337404687378903471422592998438773209698173399837077302090173426060578658253029190209413292551392127987053751645719225770051617087206238699652726722794305444584351684690834193125966904099186387628857013301363340520802907405419154110860988632525490347534536815927232862373830396621072841651375963998493346394331015340777146376413186071146200967843859510441089441232399662909861424660393858007253551368036264319013470402270454406022536324473848184445796069580378381493901735409805254065966153053521241323825331440416276947164167928915290873242807904161742424209890445470805385246081902281132706935985525475957430792858090500325201651947936257407401865747189949129431835610882605949903019122649462654239155773338734945639904164360039253264802526707138465210262103137880782539260263694779499062291654317435598359472312944262481606848319274914831380067922940346459036100404602288707465225937557041898569533960267624404842435506774726911982300439476327274314010585376888085502256661075213247624593445669519291088688434836610128517130453627757386269299357201127368511746685008610701707272230922457639016195710043227293906218499563791858995408911905138968600049793828384130787524459167057438875692510298527027199781409178564910639447013468997664483863809548280192376581100895108805776533822182503743249837916375961833290072050770520096790646405915396367082249292536816697670905416285000499159024765731524504944118061135162473249275854367205950395079359267179119313026001155211191660290763474548524837246482145717122162020061498849009351720198195902401905526402562958466438406555791817555978592027358632084880680939393332064903485769813781535711942980456989372476325833944988276971819135302409919119390109852170700716265783230444985240990997409731085705250280125892597394375543614493160495057659189210887866629943785313859816158992260160172402650361204408086799736169744930979434371521672264037339023881313941497078226163077439273897821441766524496862601122272068050086680495103302844492544150909959992243647068618810728323461108480303409308950293450250076953408274977061100791069112780623939278218125957396015681941153294466942481756998002432422921139303008149959386076822551460589366345578458296776015615002735012942683574921647512823228188834789107663805555918978935824004100754315515624834347424290549261491643802420603135954631543059500608733952764094192060250820771295111444516185651005663327918394353007445460703571702358174064909981340422233376719929273055925330206536876670912255919253011210022743450647774340074442771100546791292819988089282698244042364695131103480768946217541084528960213142778070663949155769489816663439161715811345029497401319796283190575180476608535188309582915681458894851214284780190897359856181377775726934719036117121990882730132156798504494231434089419767880259387778251426290666926501581877442750699261591960569855440271655680720781756883571328582546953017279127289436800513848327028546873547303849489700080108996716788613862171774082267483299507321147114042300408463416143726968818453789959503871481109810134489963218713501164584488524201596496522341553580239611552265282638499744797797303553492602233821520475916014596334783896160157195101456377173435743925229457625220536381637810790170979304272962047650313321054863583014134569871015027574419952050992017055574167048932759351390837097004819761415912447050378373585005075964928464632064940894164984379477355193469675352941197037552111067334048507330513041841509220252486696298136305963450861562072444982412187949149606104191105121085451190391604360166748059959889009302602163642419808210229190628260573785304371071987938730645287793228719468188659173960430332742961733504678879246041883366033518816907694536517834499761807442498866598197169587065124143904680293089586414962856200743094637394978393031967629178030308029197127946023969445113327347439643481246448418499491082917882849516916822216719056935919242344983245734001675942886841642269471554669724719354697686558573208215321206037627096000039062676543914672707037213245192784723282283670200411665243032354168074633825836495816486275830982281773095659130650768744213367688390215658648257978645662073623760909160126594930169514108447622420506359711531151098304486158765724702218572690350735400536838627741531677553129508247701311930722891347434073476820036093041865710238865820611814648379632392696323562096729197966275668871947276052166066898996566423025279522405582809240806094401967541765830857494773342478249760361271729901159283618269776856578325926250438059387537244593403565634408933921820668065887417574423652970830845658210724082941587761112137537063601620641527884063463403151264455822257285776838268402312334939311643886763288225424096041013888898089757560836524466392813810743621112728558424689435761320267874430540712736689516439537330331316265255574247429216488233616253121512159771091043123837776844336023949773469587667214421507507875517034605779102452722843288644123068269726319133685851983901078831872452631991364497292632288912196157873177938884230956645661620806182519472918079442073669856697531508412826044755856307830894314567224036506876505417773481269674928940358555955182698046941815686995205964911603900630489562245863266387765017672218246451877963984759249525825091475216322639629270551293984986708422411115009728297966495583380811850645622624424162480264397638408257809710401042947463249877312333500442500708706826445039916080359838448759471410029637108629729646110622190414104376747771445039712948332770575735997849294440093469188489814528675334155690346512159250496539662806310837172078601900812638366808394227465654732110253706131315072047814531772043626028646217664345650169747145892206023638256192517799791227939162354789418922482344704890423535019396663986996988017347938852978934931065552540893657900213983573363138957141991534154680899568731857472444435642553602443526149463814401060269549190171993683326383749772514138333582027758659965047707192683551264101929279330896009831885624642667571069485446641450719092557555858707698100517157044684998296975375205798537130799312701141908339076117547979552541210181897273551126336209067065112297435289642388503313418639187345870187251060120861930577443141777145408907514909692878755122596500859219266881761448063082508075632502800101132858521149333442928444552371980921526767849604660986983322810274115514426139817432627368654024601619570529691600254233464659541984101065361239325631078987982208467414150978141363366581197459122960310052994397544807153814259504151935803621428556672034599883318192160468887122147307132426672337279637191178658553324635713534747565769442061220228991924245658068781240181247698958521369838254914739901079521368218153330124979037804441791745888917715873951886170679383730490342979027300724136619547185570686906790929654114384401221832635990177198617146286138132363235853884127069453613587611177654627358596858690465078069226581876236207343790236448956622233302024822930565772040525588967620748407917661330748519682355416744703618542632240711034180845888006418075998967819628654853241966718159572659913546161428010622916520945213335497830463479797305662448364635683056312148533285276319296084113180412689009044495734769128617466239257321713823997522029984828861644214358943896506069410822733146045846398710271963019965627155491088123869969155107994151954387711409054260498275541142952825309759221311877643590919623465978515466429849680842917763213115517605777714746492206151910324678728849459721086356336980621887002621813524820905929799626489240005145254182174431975923205035951323035732358817391896147151552584682971010187034797493129275418514862710853415386430451107102446230166703930639842053887458233146042730354742521808714291519289477624825291585600943638286460152275487240151398474606817857532042731424969474948298416029604569076329691020446965065487731877582772651683067525138804741046849652146756051798113169000255710846071820898199874467727285164675023193116258298388092956601182333944549966321541931513282253623893597621986475355919298814239118047137135242266604819893289074135887252997776145687187637725600898643908920969342405258909518619842864140730271233467632911866245328429212272632306941349910996253656998460090948683117316053981704428533156325828708120356436808220723411858870208285143879787123004072457284769058615136836435086254736158079875389262482034012254073968975910114158717817243724884999724000679979291370322964683695485422459124041183367581481407829237237616318058182776349410487949639241452846719989815306557115568507414403219759005029875145277360661627341882627228173400139432080089828915034373186956112481494950734582734654699217829869094038282883278025525419368158842592849695119575703757903575456934362789796182493877280290025345443345283309982484271076662255206335891630495886859751606361540255672680798267833189279954286238136619283461923933909153971833505658612124309156448398162507269797127539215184060729869568577496162843498755586833121354522873546254239780502046777754411513332172503019144709677455974595252466875015044791733608643557401700174692878569562340815074844447954643663370705105475306334578819576559996975978847499872132626009884124594263763775423768115064186465733886213118363396149771290644305829993782504737689127985249374690711908345505343610245738761154053457039184350571592452594791041212291575892813875608287004146680162627326828427815445429002030429102285874355817264582583132081483238818085134393211783769211492425087820517503989848549958602998645642747922885553803550405121623972934058783943119351460501513020278883575064671933787527525667609972207180982962424849100455212957467016370994680140531075726434242967272034203083795923739379158501625258638559914918804736193112142122810622205758187320028200974515858720966129746285027205428550417965752613924683569594298136434440721453870447142912649819495949308647602417998685609080449263079864347617316776649584876561701779067674835975313713353676088705237178562774077285349477787372321719546485451522564978495943081253315229095039243642247676945509709894648180620577539319447874585531796957154333828567772149459384227601911278941056000239313514318446391639242849284042659437835129754176811766381904749891664313783573040244594630067192659017094369284524029902163771850993744782071058586383011380580123732485228383094135022426539326625768391041861914483526390751387433891928297248193097281606243299780649157790936818024911468061244144336308049517146237203456961933615187365269771278569328136474649929952574929740050951051060771927858647593772705890202555840836510928459506791144323330462155935602567277803681445173759432879256175225520448830582385080610737942333383333797948657999636811235894741149944321783452913360703839653475288835657067672841454460721909508069510630765464406932708509349911617108377513347692703483804238601036561974660317431761958873230257688591090946178551942835961179116367044008227463973728986980488737130671675036716244981031402954198068320699990239899647928498828567311887370198164174570017363278383123579201125976957118776705161998521372175154177152376553745298165535925063776756633716939126605178440187569380674541851605241630917082504515736233223628399663423507363778589403780381272631714936092594412093539824392418076002936743664102763555304717375932937957178345621465978471239306353927089924073417387381310852119443946186357400748169545079962034085885904315926341731826225421699841909216705933088897643922476528199943751226858651893849313249538799920510133517019653194044386418766273251442977340019557553976062701278906273112597532542238635208457048612626929975745942642539161676654434957600461162098224523434992061716123006979672280201067385308195002079362913105626853768892694648695240891658480115301857559742725788896943144193636631081898649302909828312230057794950381849481973459730298033521895398101220998775394639830001524604702461483413291980151104006049074992738438096567101159840359061518394460094551229611605873987160191179444213161722496169705575589029338309382532430413521417714883817225480288453086703277976959402982376631111461855164666346278188895029677610895539383611524059601609517421958720022502304768454652270615809467163528718418520518006656098101844289034721904498943074046659776044311488231696720246570696887466776928847953041540587442099018307927611656589793336652534410313091028967657978374236720067484513918064934295758388236713122103299203199530736051334743026171753316011246422166453104430565382449549781503945838340670098232598234468684716181822572286122435419169250646237320923856715308537559393717251271754170171896044921380974405076900903097979503438377089697191949878438477083648915476605901791203042927939461666383047004725176181227581174671596160381492894569218333517895485971949232281232765657274707469105374001121543769765075047759539631364883374579213263796277925057120380606955936047297751497513776596065517281820559345588376187095107566706632289827130993171597792971757980672497207453675850759754528326230327631696738802928474142329694027479142782329618821564291639181415472972595747000537443392625118990070401482821453075014981731112302811286791924624158538211346417410190070239079473780139304467549077344322972025816372092536863204144898770243325912846880858375639248267685002594757908062692475396689777092915457310739997342543611255985991737556254199628305465333412030330144977768888204337250028026058763299849807535682007024463854748144493785175455432629433749262738748839010508012170647632564559374876808709606750068814832419704874207232906932740446313240719796024385048364042994491024617361702024092946662356748535844461214313149487362255005576638289886706146552690141847526029404723180805024956453816840225509658030639457905259782333309777398666340236934482297251113183761855027542364311710518877197777994267981311834924137938007685356468847649452886590937109346862750252898073806548245274882390025145041164200329919373890554433921005670543668830869934696793675455697000765527546151061592487279899384790343062814159068491958841042748642182581147449668187054636919195374503801879742757608880475422042360956507958752805452302238111875977381583948252551466713483462284321289073169911922245342089327387938539204779033940390909474580357316762065254739163864852213833551762411755576082118609029613234550185683495099564817717825121508607832381718549871053029045738867060137690025896774790807253476488942597798878152439455581702233768262039496006467526910668623970861549136916086381853515520848446005854145165372938253600727916157577223446875157408618108115751040980076604163207080347524515535826773563350643626161431573709817954565573960777633812801159097263779390366290855550776672200676957577090528934548215264079943018321322898302152595988218494402251674079982501999900936171929638477627345603846415213458750909324171217235507643263305327099849579020677062589548641075357807570995128413419799128667243074919226355821464918957162120529360223772332394798497101472097501375745757410864514453314292463638053172005077121002903773327045958110452075001633091428328044881562318161741939719569710781816280173888409935586089549920129902296773208016011237286617125615339695131252220827851968847610218142083923225975749360575393693307790359543683908430092105971834038673778288480750272426948648378972431375941638693320093910448965869736051679740234803827814722779844031381865104426134450787151901415011787334537332056953805786689057441491396830411448948858528163341197163015625757323098371135861693620983557209072834647970951645687047656338088473282512715715367603049106261273641054982820344132643540408581937806092904046277322879010289702093561007544878639820072556091598424336805722590934279326301811905596446481172734775739214490269048530290303762413207688688586776355731079835560642167005886893368027660385813207700160576274601793286308251181046265839692790770031781354783548494113469424486002924306078596107195189093497282935699118251892769355435033936847391575831057614632943769128725885788813909305344799257205223869271293217546099681628706068054607298428961233139835395444427259426878140284230855138778108828945395087509569220052630086801132209760446186898847815247378158388415123107052709123898089351012856617710293574606587457761748536811716967786698812027777130206166086499597527034152568143650441402011228453761087945016453051360854351190147434214980181056716633640542266656097689783730230750066935637549632394013645447365718211556352408832160582023422229572078948166292872333032598995085737465471056035038659701213301982311939331510277949734791270511222243747727560291840692518619758452203144989255509503949246793545108769451202390233440100553217933901740885524625601721407364163906066094616588558590560274737915745088459335017780493077483160064642470959997293203477825162246397918972201009018633541642026116263651443656014012455618501375190788709276906154155205048572819651008012288787788278256989774455755499899355689496436986019033094988201259197543471734577198209089124261667733949018743854677715126325079852992637512054022294465944473304012410734689767867888680722751711569695917552817775138475336168425815157302485035864959080831685359018503969660650192393500491080547460936708887988446846109572132269961640888965404824381794758931994466420089378966105317103062460894662578494227054376571137304989709040240462477082504990088904780981154946667801987275015345454647784566679100412913548317868423802289520257697572433863325035547609222897705648211647620777886236085953885124764673152665359546253947356862955693510375672678659162642261130556537737187931430921277262019742539479642476212579093460025921869886312135870747746648239153301452661828407988145474857569013001018777937865915103612873556426714119142773220352756182833396479652248710089119597613871310540648580176128552668118321727346032232782246694006761396913937617117998768485696768658826476269607963764089490407574030851241335465627623901277470602511491952490103207509713029499312162910664712604705726262599050429909291215390844486770996180379023158275346926471011548032727584125131094981171183647010156336497557698096914428288658942904192088197632117784130807843359403297188403119398020973231106946998816781389135041035179422814834040417658014554583769421842515166260385754051911191106975516412045682651835509051531165186317384550804057657695053791978759847608296049732232063804223579928963251544960948324260930027532940723898862155086163189740136473459712899579914126515555020996286855026239089476128146950114666162430892447111514614937788939592585316876374454139499947849782561904947123334022757836711940443730255908489003917365853870396580653683022430856952145196999524593831047816558879727215990583756095548875422385596159099648890123305370434498695814749696180434182933623605594531822179536188949042671870949008884699819822505939019976632835686213931232141165683496390005467107229608368528811506527900942476849130320172555307229633279212941692406174037021019446074922151102682895810304381814417069865509797778457102376129299314128989585365999794531882663739971992829112309646216234304868332868091344140782097236363531372551334620353885427183960340156578630288374357403424413165487509037342297898727454622565726308309955086998542550653886505846078512658385669240081952135003197646794685544902812952846375037944285832710116475222363374547938846546634160055215817193703707278486828984418139842870665019087114157402051297679584251322383713232715991314163447503723637936567721786928177810882871304845854556094132917053974840082667923840360918867504187559602864391697210690843117298302530396834696067828381139027034292666833749652643002623485730749467306065110603949084582182307002248764231197999882853171058040373034366248356543239159512491780183924622656219772212670128134255268446959659201608765046346746481817321931073550000916738064618908958654224720970536707755200839773724672939279261534314448682164483868747535668103969334301644968263434086880337241159146991753763482688767447119929293722051236366904253045621856329692416216694746205799210727936331643393443075056535626446693536949250295160509703649175893809457033989879200947997484262934244017527709475412490980687005026976484466946353618338398769247429422708691983886887931539884520224804249513966583144224500239083596076715658714182772812873127008062792084402049139669628949594935682790302328249943251158405031544264371576750558784609822605167794073703837247881826143069411460988486014582436025995914115519236134297149569512871351353800848696933085625367040290874533790334023832425829007429997043551940171428958750176862079886009573477410089219843374881809636389367895389945557664693611471332015915961954635948084051162605871255597872468438744777413971597735640056609844449294972538074920435556066228453460654210688597212863941836829168072402597400118075878871488031569125795078572944583729542025031159134122574408876190987938760250149891128583596349117652635499766745141265965304652133147851323326563667616922100562705798740697912957079397530816038128710683054004774282530779864899801571226608719990229457492481926407041137268545248737020540435412362765607423651023856658994909486949018267611172732349873700246539251477010839066833721245043118005958461186416321971341518728197802425874760954470019761521369182873967856646298708719887858624307250978441130983879816577689542141350788026229658966616659289699019021600032205682184844283621091545294177925240272854231499971694710842191686716948029012475774764906768146361111143091013416589327941926412285776819195234161863879477967670768338156749652001267180486392162427145078378428406594707775453929389199992897116989234877896540204116235940674753070785174253968855707815521719100183096895872889963807117338473432125239177501564411612015054834711377119466212931088411676962790568717560000984655885529647685683182606086382435040549989153509631988850827392765480009253988520209273696401669655130636363750650770461378041976810104389324067102076292116840031926080589752142915686996603058571274719200396370261764227978565634574479483933027368207660809328327409646450557738222850510835388567742234566011248504188810802392658257043852608189043726180683140456287881965042340818609168497664618647348409042461331249605410266755592757241937476968248630587945732687188336428173055386795688548080718607958823242151191530496998154882605214954399225814164927543719397242586521273740642662216543468373339092305475690009459630328942128749086582113492257144101680614784113194516388398826226976010315084466699992937475976603824338891612066588085409577929334042585670874693187687049150491735545265752368049761653617459314289809189643332564216470303071144660025955126397405897833245926079251137795153073966834692529745079283271928349793093735510085256539971766462113473475365971304688541991977844825048250925772021266368492688959770571608817326969478899578006333417847790805884364427838690828524657400278315667505183569300213154829835183216528839005039016139496297556571792175845193360736101356925423218749773682706402836156451942624286734309853081141321146188919355734483786834087783306647665738757929789300755360065485852354387188090534468484068971021757183793142340096657773305249890617082058208142882248154898614790176027686457880545204141124950450099099588475540582771625929587286941780189457630925096003308167117017794135372712500730714811387855592433827418278205477669085721018109739595406154971609381466221475411191853845057938295034516861299019396356560476342309158388480438193609700776215292087081636047021721525650430940133888776763677934337149062404460715354647080725991295231449421692443502300843069346721020145486854288007387957696682837631565899728771350276382875818266758395075604803974189935284543597692297802436889146746178816238621542784103841321678922693032448362098332336332490132322146883582641513220600242295189287403798653688805199636825413418099604459593061306633529441870106729925805169412201522230531791145975169008132378429652356800799768078973735735043979604316369918322723987086579843586327908119173524191304016278252631440605407889730217424062429709206818300234813757374157589284832108564180933979018165043932483703937066191319246624124914946839839422269059338113597266888332638290685685742979750185487052842613622823758143663669745542985107890222041231970313621175862597173708101653790722762736255323364869063675527907431998228029082472676190134405950905099556769616341797809554408169800142730983895300131759953114344928636647811072701691468460149962255288844212708453568080808324057763644285692875352606684852570330898370244775559219547816931123842767982979239278629017323854467384920248314228407525349452245020867114064329833415861592383659627539964789366530018502538050135535947182889042272450810699662590441097451768623340827565322731408211418415442737121787789610462388073154885066010109225733761909989137764926471203697681027525073681390474374118141236756039889319883973453661857847567318015145452910576417268150066290976380218994940565326087594478756714434335880386364043941491900310607758212589110280123726005304782574290997659476395402810156717306595584706809955447786592097052410206743996634216296550605092096958951781368541434240383862503608818685718552780003163205451185283232710450360958091604118653618501108446660437646530703925607674973870774298555365717560834215289797896554421773841353020350384084141887718437785408136546259107577324533514223045201089992734161803402617472712145625602620851914215944536400082724398509537449680442334226512087129506696720510872742264897143535215641165655856235423187412206901620259202385304498538758168869233119503106535111005254249719300746234588884915445928854091857056223882427997418681800880027081721366112507115238421606601585235751101511965641501756746113339284041355579798900424158841506576677970945204837099625141213159525945956671229825293757117830306164234117433588781008387022424702644918984953081189619910071436476113692121958753174131880105936213157798897095919174423943689889143326350240947589574216696561360009270192954827668009617122685966462727192055791029790995407882755577902945313755531260857588209448041008342642232555329541221690741118629123691533309498369950176428837998377874854015593514676708380676049547764627694703465781366206411988804879501868355029038026866566487582962062837292155859118277173609256623393456887466606959721449877996841224577081856461891266352355569500506261954070500589124105593186061991934182191746273197180740343681984978242542963243721686581268057802636589111210713106835768248792851483551525360595831254720359524985401153219044757766859534805272326559602001125656812084969975745085820137833922564300050198128792954029941397337726865593373423954840407916194289434573894982459650742075205011847800706056857415350300036144214570004721380561790222568002530366416841632210002881055481914576360841099771639492124820169997014194346163996088231456250545152468188807715274493344070925429771557835960673352295598943750479703862522622091997166342699726149636683731647896408680508324986499923097963657660205640943680951917949696548467321791158537955862558081072883806790721213952430289593695180581484283758114330785415374195316505303135303535671627218671256357210895510626525102959265188303821310663451261704982034126548127515132810117023978053214203212619269590850260938829589804488176230049844918479817912067889522882193044385009267684895244169453177256725017175283517784192047158210125634812615599977213037629329130768124229797757181270426652765717695699532108637999954889494859125967926900675382322131837669109952967635229866166927155917284501693322801159893808185184813519455179605327806952159025453362863197839633228804209400965962207892420002293608745608359832688996557595190018757770708889931952108677876946798225529015912952359166256706073085993673947718719359238855790018318315952218923172915708116710418491798550479831500163997937348250944686379565252507918228979578685713911204851508362706237393287520969921955957065150320845366246750145535848582078145081670473464509754069988281524179463450748907931271761468816905653140135034370127351765698598887176474318745643860476605404820837349541379517746479947334371403826182669875936417935640794860759918277180138359317278370836661019255592925113238343388817138260958479433076699362971065480560300481637951698550661825175272554063432629867321665557376302434921688854694776693856535372205402483459299807796898497351784176229991653804847777000327310419699097093002251489042974774477967105864272911319609344289690588595473260887057914550970172638511390405046267197698267475042623647835628934061091026949306250145079013952872718151403380882408688999617353934919511044367199176286238008164812747729737175152376254034741338044347864695417140570190761690983556033126800038442271043541403350477787307094201929475448676350886995084459790141436378092748589136031627592370937843029383306339592065132105175940410932993198542505044786616579020152030055383304608646582617791787881581708351519317203650706529409375748365669434726264242988640480350298279072185691968807863345708627900756530160054979546624540965119233527540678640548850211573897795536516022084160492500940088866005919585107532041072240020147629950838841875268494104085059125913048870234901392298896929996573451351882062479007731648478561805115663644076275352860131273541300429893498630647123609449064286285010272967624258375164201921802596496675572319172267570580101614103070388921255248429061739313561028465556736677243234001458956758923265039728090931166976414416538666875487131383085565166111496168456965120034275621554956750652326275591450680233815555013723483153255199573494851649243098181322876093758461357824225011391345619844466865780583591196315665657899615525660045361901037877912507950376856880122375916282948849477217134968965828835902544214804382612998303921771561907429615275244002896524781654207116651301775986967687229152969443062320831835572374022112680529151020780805715214378897331371336352296891621764400954509022926087590546879364760743527608738500077512539381619398325088127731472009731558391322834753335928319840466141104003434321935334817595597527579809996327262157173243956726368870457303182718209655984928308085067557044704332788505027266193266591861730633868113729961502680968989320190473303866924843263875921687952769444028969119055581614307288462468616107680359044616777615238373397205006524308073784499932019076982191816508215283990369443399011960479306500211304868662418455676081846514483298572343660946851716275615421755494827856404001868350399096982060867936055466930296829707346065889309501404802367893550208973061520310308922116459221085457945594642247157913431159985183741737726373762019678202577510196522317170585604494138929562866880903528191061233809594005583235961019032650155842669875121930306171817996347538461500533523947977221701304627990428840104453833193404903323889991833213654864049121471081198912390047939665629516919888806075768741857916917090067091803091136089334369017333805743077925564066187111136057890581576534316124141787464717344905692867949651827022541351852587153504019859787737130729080985765049709565127567440531949575812180340299539485276187043204493278648030878604679855266061323658348978227229524748478703360454175760578358816368010276692705560767132162507155646189229900089497803721891696852588424755235145764076691490639640845264631101591049376108111461218930034630257794078801256488938033368707017361235587645705405421468445275526086385913022655320714406400843478720875086113972833195668813526087178959551795095380413743741596064287193212868796706657711314362389055313443482771051371156632745956826645394765440014383168179254352858319026528773903702578076419006312537372471379451780445455044055424327722745975246350573777462668401179134592347628785588035199757594504458586979035870584278367262817039453399965443267323023264639182850978444853085961479615024788051733806950857783697918787930017431819834471395899422685554022663614024254320883713346218006612552198730168720726732980181352729467919167627021382206864853344702337501337644416259743269387514004161637474642389117920533118492830350472312230304681444433242748499596932219325794445443078150892022352673617047841737116395384255763854542328137196067826115365002322208558185135359071089024295542524081141226321408469917237908661092604798392806914914890381149375497318652539019524438567828118625071684312799847443965636502464544186315253499243808604266820504880480615414638049893916812947734097195482240713886881895414841572708163258449089807691749291605817364658317713454809776932953610241582241396676817748030394240147103241997919626801035299352100046296530619377265475480187349891472779766130763495748015577743928546628390451874896261112355446103878437967180909297743668927375075256538412726091688672572400665446576649264834117697507231935905520575211042083793766437197430337032978651660297456056080593923459058835331008433126315898536769797873025358768073588181286482519958314490656860209634427546728476734986267708249908662385973958242490508800482379578841534146474051154676672034330963943158575397562066455738240593282689582800747436950671983132093300885674365994503248968367647448300364861427507050036792768544691681371814185136091929271366929963865546754350986583815924873258651621597222469580714828653584455099564514494391978928853605494196185358477274910313318678465366762375940214249489325446528808368363594974347330416779633845111565239016102012798651025646806243914041224869771577966133164558742214374404694997335142092251918152969383065056916109046441885845789078664772835056396919899078814899343623995655084513471074968286244410615509028592068715072255157708982937698114542701463245591866793502173326640979763987567895168225571262911088837133496121375843274756301662610302916642758597410974338190555055804517192651900758540352172836628293536105188739577621049663999696282379113526308783215423238479366667021583289272950897433392948837406727355696853080301603302160283280250105205111445589097956245146498330167309689415280627523379590082993065157942230358921417497399433181646525550050756552405501237325709891320940919082807254146149998573817043475773989507326693208152429407860410083932038072896198146248618325320926879235388669236422768939187662118722329406770114634604552936206074011726963079885896731715411519583150191959525297290708701210354975369805231989005523114403259752363469556490192763729511117090182452662378231530972918958858902294575420000073136313128210461917868015211725019759724448786331760066410369921172945984605022508662991723154625917978520165299832158052780120352067261288055248301034908275750373243981012506018604135372122832269032529173707494053024843653718517873072109551817286017469144729041578846678537902520841975164049374399429592405861472922933991858413286765870523557293176933774394132200496378330498345163399584720887124889391083872789105133071640270473801346107874043987812778926742562250213439960395450437165795601666764561086958390548548705388239944023074914726996805130957601064568254858064204965733470056478738103668504670275195644847693169701283788608790175147947047001348492497161623535929086482861913628203426992940333782372696988399673421346190783751160818198221724287212822286125096144049542102233615523104270101787087337963351531858141865876573329537257171375506681039852065076278278575049359219488599735619092126363337238003319005066418738731134610589983619596678735125681677890313719153312795315234598605342135579078889536201538407247571021308414760218689928449081353368335079958536139676043718445220397715370091979324215903821087778973349768693504113205579125092376213078164059045684438743948486712730616114013767791391412929899353845518498924011008215117389390055239788599935942822271107849649944662996144521941045459863027443237525865702506308396988028791540576349495549689719295680655426760677162161931408279959815220551532547540951183426858668708887952394693892068765803251315447476765353907307553413832592936692704878117095480000376521053039800914389872103644065204546040678226260987504578585553300491703945181506360594360444138097602512830375973462204617621649892865632241450600529056210578384771250945781021319243254824892017320339017929342290838479515548033759129339038853460751844549158057664339535132235876191710255569765338967344776736834922519568838076158123110816422136403029730880650528592946536264279079422320949170354058592425248092825665683549870434655780875091542898795735285576382128908503511936242950073054975251865689718416959872701812418006705483298910428084109071507705685169049261538164338191909882278324328468628973235359953828077303319531128540693112582800601316827883461813755017430416399165467362553922740633767640650695419181245337610018165617334962326586262653664149706479760901287866791709791999232868873253375739180876868540077234792986582844043751750791521228341285529048869699439915283650926727845371792834663879421100711460285651467122392252376974195182833495136747910840799500994517066346298847574254917393719907121435907769050711506535995101316819899675073660187041426465387537955506839558696192504173652425923061172339305186132829973679523237152740197186730188260448888949565851793581299584013237990294624435863212948092072648801736814768719871901139972454601659793119964381522606161361942649258179367815041928628495934413682933757289622748641877987089121578398624649741976040544705204477838825668649800506474247645274084680047514032011505949067197589161641549110866185316185851568811926682849971719929395761369817919459766555596981499034970135062684145261735328877880382631599181080030071361594711281111957801475046917491748661488426308296788305972977773497996834401234612050104518552147706583347583386872457821248297285295450603526446491729870300636642958249420956209845093839047983089707221443961210099256555977822175631587456230777765006283299759520168233885466451046502714395674889632386391411785176632959607110354600188913748093363000922815017019530420704915365140343797343744938364012802205433916085295344702078622478823976827336392765617938530956882734424133255804594380409027501344265753223073006790790147170465032100884163346916883764437876447410858916335334551659849504151992633659524457975839615314039523095945426743291825924333715487863852127403982134353812323654909240702810051131195252172781493415727589450654876889704633185203531374200418505387403464757340942574871982803855004608417376368044169665382579327366773845106898980526129979953819646136757816699213460091674157777665027840169548013562093046160237024518698094735841973697864764914642183017944875803917872009602088115182486192933685017736897064678576304329965666122862359763784005001547012744104141325582972207085089948138462989321367183636829747733587599385988175431544192185090753049182740821697217090547905402819812314795482274932979110207917295147454634787312606377751205197284848854124585997537254262630498551845479082581944828792129131068125404074433768376948746799982798401491947453917017706742938035390077416170840099255540817778732068607190677791169084767596311109546925753094312990816340549137373319389748198642531294635499322240842105612966243816968822322911599314959986997725505171243814564698513293408246320781338082309754542526758941788495673522430655671044717817371741629579623525885617885561788060359599502572146799972915116562856300709369777982589059166960129946200510401761072174482257825161445856676651837062251311539726330765935053213848305390146381940908587106755115797622155463890667532029025032862558591714194219444852779345773359432267265792146274244621049858189065649197522422923055207903172404095168564944843782069758274856540029327832634538698918886595782060890593836370777151171136829950165885046089998216365033073938706719416118340882438845906427710172797617748814436911366207029226979565761401995912929819000744870329317095095230440844890751659994391878654721425720210655347162164027185166295929295200892906421351231683044515448201881475864745762360323915894344064030928768555257468714476355645142109060718242410174949989719040802206303630466192391090948532911445429624299930541759572531612641671903350737625404431349954764983839551415858900200768042151829417642568101842810439712820654873794495871152642140475477852170838178960491332613592605719201794268676425633967483237953000423676248995440542641160427963520341060538765821287000989902532588136174096696653134599140494872382909680520597168781504077401276598587234466189435878133460163273488227438481203032443352457350438733049387581605240485597372332048049155442928663863676461191336586600872478831863544180607866051966290911504157663164787765200005169756736888777411489567354251352546114259867232992665693054688969767892386300409567817344690138091876610732619740655268268585222159205872414811198619543617528909202728749267575011562638443455876609535980408154545978908245748628663738257868685374764037678452981742389451660516397474300420007002810213073247115765920312877298288217602082657007911848042134659361516178788993311377568633961155737305377011681106833809933742612870903796239286970848669950042236697653431494551913187031319933819453573009436413770448680527210000981791996336200257779157382938149993318751209563014896479971812409950623007147928878332174736693146536024433850953969478527555105788722294043293689059262698720246137086377883964243582087832146757475175220139709335515174816313625979237063879537977545213114162439804357418491786167736684542956641410324703009624375475863177252459385707604859520214822648919008499193867644866169764986992755970772882284995240468181171864592191065026971306685054010044806452962028865982881735047269816144171660291593995570236006199098931737609367026778877963662928990553328872412091731863554188663170906757436247267560103049442791713702747450652297706536964922804796939624168872026161411286547106210083698179569574061650846561297225668450421616703667777870145264176448953325290610564785488346214499267683663356617866898716469520172401550818037188825194475360175601605562992941582839348141036707285511994343544677140806307790558566563343789092510239038026273649607700161226519652956280592051374118939575323024720769365257999216004429252925095244681367215719353084522340546150954258527792781307746006268637460706762285918166975511308393160284208395706868601176008624203748217138172469731447032394580728718850224360525399312778642686083809219751838630078720441357959232579542381717819895111854701691705377960248461755834782567587624772962485985374248768076421587368436420089233930090640961634460887671062237822944613075540122142567759370675129934027498494416756601776446856834573951247350465922222830231038676076773365229635836853782389422053279571604045106498020129296603966227411343250695480621112256363184322962389007926834494739047019699083022031854197338715282903651780751413489977475704718664035403911132952433544428703945865448807194141111398992565340592380024328376148392149452808418938233790610005700474408337330424592159625279303698575453863863245540009148066129092466310445523966463688816669991066890419800020145671157750813725142806846876662764606740522726135911565384801485423494916700785838208134366068570040117698838952827695804392443353557197564570535860196779804404473110879740451198052013336531215371462625225849222447336303740150288856206134684123411937314063217551385278661698098669520278003268372147519324385079442920593983153369928354960051884442687220876027764759249457160264280375716354091970575595957010320608307723958536726112418139573815489311247107572216120614495207125333217483070914574181834501948622735958780056969253750812229993584870868010639022656627614311604053640405380931760522655086815353983810800721830569623888314308778407648290656952514100769408790534003982192400571355481177415934513157588011472654745340945299819502352765105471411639530968268693445331084729370694206110214841105959520708159214172340493206546978272716419292412497436245403414678425106406135312364128495482275794499216485573651561938554311400148319178691743574289974888379913282707258359301184566807925887910307639821300155797977183948576805167980577420988834642933899601892907235174272863216639894165374414055823000108836022937077017658555234171644253314675934678608232334876337671815807246695824301146656424555512015043241860996981860453327576312836089577731552984049135738898544192425643235516928266413509798556700755925822727053218891152695345258592370019308564959542479379884041877190095799737904068981275215074233791158967551901684308031950585120153301812632048710457552956601466862572319593424160912190786850443264262151064387279219496606803048835732319867991282054410184642964679537923369783474798195774689655876455221905708336184465986680759192688072296414517309961465298476688789026023847134900663552382780113025855760875757348365581253272551831222348622080569573989584446413613828165337559074069360740874434673741912113727734055489077685397744375216282694410129130384423273163837953618267429195849662873343915878652552541165071729305545590992888043325626806992228903624313857679106846107025792529193503939040310156745571685300848019249466823361748306096449327445998310300079767973750370798376792156112259802790644484593578153623913681081230966997069439278036663684073705677640394342767979502983925780617726853624610949873748100740246507634738023299210531461397759850135300256168509450312094166343092058073135430326641125498285872962323333046140860105423699439720809829970621303071960054731568879243627050350663010565609127590786205727569135372786416715434073692075695310178450645561677666255224493407288473374297642784433850729971492583475489621427390952664309891927040758691785533526841559170191484872499719282294247944828705728593337221335066622516487281540917798162028002315729749674910330889734914560132396541232917187049067015583776808128711717029553998566213860443934915789419672704528353458256980749615451276846093481723579693752298501805688045764658895227598462580140847981691605777138421291725880080202966465867326727975854477941583625697338542910880962638756782051397261347082686134928968957651694840215542167645906735351586339620357953744110986533863264524708356751064948977258644477660815450049312101288520880100397598899100662471765327232141128495000711521175673682588111153827656515294160558659517614244594118503409175683774600660669304083915101483471970370959383188839380388860726480235239895168633348052472650794111668211364338750302802530785563421277623851603537842024763967212936377551352891641704353419226545716671691355829221039279518959646843286027652183189595668658324895882496510651375820456685020009540782978475272909767475342175559084633163438469421067558323085855234274888844957386921265229658139772872981575735415507731999893367612151597925793010512409250974770102333885029649719823363404192703772525767853127381454139585232017768267664029490991873035223605103273464184810904138831305111231696929328706038660005387934072748640821141884436768746043502048046341772307023544065055132728712875381116873401869616460710721150713933177685368391488940322144565138614940391820273830474219377343943768441877907481779060687821175871568396337498626099184549843802219710274490742655718666347889013526981157455479017733539625654460958700176793260233529612106526813357498234699367105465470017981471964494898224170206850200752425631099250606989014914186330996172987821227437899599987885391791552635712148128138425593648225107864875373716161267113812406428184127621734805241467294705083949023834637493290511557765573406444818434487183253772000474008262587227052771877087048788136610625091883254022411215796021465543537096304348310498881840380651968735078875516872964468460011975455161634269875300867336498301643558754876106449805547886958715814048506826489520873351661198995824578777625787679703154375355130915226294615736063028763999452287327860963678549615645512322470290615044493003260661177537419556677033665136515827764174075986262946415539280102971082233814723672171493473388334846255310177797157405872414714706709980271565884766095831725874082802769006447202932742154263943072328042429012795332940899223954829606170834269464573407617166458291862775702894926755967628416288851518201070211080604516886417932532628395023936942157348237389865710764953306816817908877318487817109837895692749915049594144334481018562300104885135101779964363945523013092125193450561202893818788957725302630883397993146036572520417957507499632281487926185165661065249701739087278790191262523746944380654472838586428636914447758978893864221235391991778912359015522475112262633311799929873089717568219950551542985476360821654698341241013170391443510921229430467910187044216845411145773638227762771683654289891823475898836739389154512662576395339211581180379968143992570175913927007810495264704659110310616215753458675233435499646501943351191063308531917788132015925650253685215568735949400573801039050006936773954772313979361789720915897089352910496154176274464933427632784330501507940929816147235617092284323349938981685264943750787673405198877624308040277574026144021688137400997040396419695948844152820154669127466596092661250137748880429639817772699939192828933965515158222354874081459652405754987737262813095846002403290877726565419693381522277878330801817462766911521841503953670754688560164100819651420856599736572418557926980211090710127395742369181630078830975080853518738991732587536372405581646830115424744986565857530389817507065634438418483208037815458748320791760786208629855710424538885523556658420088844214980850654233766906166380460217174871161476751808204607550679319581280378634356490234180009789108451548217230168632677391960253334488363022197801046347949068506319106532177987803115783429432658293581121033940193129498339447859529990832740369838647540260430741219311784904692801748978852289430116928976830350553710808957471329676946872320880944110531555221236750706652494033526103768868140730664256965175963837508225328403658040943605572177683831310059972634675067187689381052686856064482208535248785858352900419368035845413558896807728823159269223315223431884962264144736263202868068981743531457900244390625490232734476939720549656120113422123622623937659579226932159303757295268244788500019540582770859287958844579106325678829569368916023087572154710040628789164024049994175903912876667866394674563332877771074256817373640879869018119020474050195829896175782992582109327624932674134799091109184354716813221893283247249409214919949167295996340518726362759881950549297544861974941304620215122396701085442757363064924614934474008564926596186220281937919178395684946948527116816932676658006835477421097242274092365539737918257847327749597078158374243812182683240611016590610140737736768731547058537416666547970659420173240616287876146861007331107847360313343625826627701028992586374944515191122935491736278445502677853333818808249260894513216062361004385628497257845755665895904223297523625217993629469516672055014576612460926898455481442272271409581447833574488025520157515036374586142877159821020483467911299311709475655558781196072856285945324829861209858865286759246635086045596101972544983255884783492605880628612142361900405114138202289069907547902948853986555682267048690274131324503376355351874672832872434708380550957991283878902256040484656461267073133585604904913116482593359903169496730568401062860608033172945480340825426977306849564669114418770348094949780365617419977728808890559189837605345047593123003101571773340271163257156713737243527689619061953109092613953708407514180695746968423013704249593802282174915650106620188661371009829500923861922394185115076670958914989131588468566916602213896537968192928788220751044367200256366376777874051927530406753558962007951228699735651891407772789029842026787070086323772459507976437663164572977071815908084057708769599922315802104941700950793703762411327614816886367342864839467485822784472177817035198944953203204721470164163304986212739307675342904098059392875526035585864422831164802388588883581049804246896253615762729781480553430445081651097270862181794863056471421418147835133009280444495284229733329452733494979201308718703994004046156513498722307326374512436901257007921437582432653903658815379355353799088491089735521742404520582727892062862160672742543711670596942587681052808909394753821620136456162813056436569236680836384052259465379784557355931046323697486572670587792873077913376854718276905601961949250397769241873176333715138049567650009441519155410557437263076754559760042129662544672324566533333767825929620967663806493441404993007559828312784701800979540004149432493881365835169446367929271853620397110903302773998345326286616228246572468365189007754373790134033620909461744116742738620560543457143003104166598107882912588587960349176705564732188556826307731352798941274464023757528110216338269520121911512111957867541481424533315471306134099403929791320461049578993982916802798127015085170265046576120173600466544812015526892597493246680589070047899631071282933456774221257091970198457027269909246286653722222429863288802820181028991969556193892307105034670253429292146501461119081698460295070273326359035902871495092860621652912333804832641677721375993678017021512988988423786040322999350824620117987050134644372583177828320029095102357259406567168755633636810337167185000237817342776419320413991289163624552306476206466249864800601165298667724046668539525480636361052712379195325357438828111119756402764268808087836791151434674273493132976072561517225450001770127266314211337457817473397391411316181478455577773822765154295776874867547098874353220010649401524069228465509932939020887442895766586768397119210014361967373854746784844370162543962608532425583364558444328433658040379239531731529107879580887063088175583505933127400484608562694953061945298600158986932792805120605056036541589851615753674419963920017501443214030229580649312717508730215877804915780584329121937631594307727947266341067469610760359688165843822441891227577491043925654438142197003429771788819756625635433724742899782635212038556838656100662699323968078967881500843692990596281724550725871667061189930011908804266002653307778601526324257203469361399943340898343266996439110949184140665944793843316013219051391398323532296169567593656210660148428966231605499162686165948993905104471532924435916329343331077593388378372455466570070267982701381782021528508856862130447671110444993042294453125983220475222137069692159601351350843814694311347907084903731938127728404258778400865249605964532123575339337579590296101884369913562695658045832942989883110098731548527184899076258512695626025254837608142323098631844224953465518416932170337625860948281621603483211680374729241566396855503794404899807372282546120644499625384476357067024650806162754410744591011368846084352749832816036912826613212493761829179206907497819260525752014250374976958661346457143098875080016703216851774178366174071543790524127723710550603226919720086344678487154716120751067199345981255280456972594712992707814322059423267163946187474742669760207762691073891131362880760063255899533608133140538366366179882024332686493843666363238485450356437391939022941397435366273653088395046079113668653217440351088021370375989797607892180573261055503523638379910363519344476808026786236015972216122969948535332095265521452091629062360849035772129919566160374956836295262794431092263945927868575290171900829651027210770893092318740105857766780953545846415449005505176989633348966354251882480996377533839290784405946303420326543475823138350941945929360009461333108739529283827621287939685147345511115070835251340615519928043487049171071761462643184194899498343248079284815266285015736623034080263486036421801280661765076021932433280952089151186320206683262567147408373021518647304625162406948238709534113438003088407307435703931311991086477833511998860509164254158689736801275762203861268217519844822962090581002187971520482917019320555360978698513253175056567204289233604036979021685494582154555286983335148477101389998111112403795508276598929367497293620257699853090898809444124152751673741773087732204920289011144965982448189555986257792726902531802890181164877613044572859123793204408160396663873026412606222920096735962765315224150243991305355088008648470836773623047130148041687551433033624431927835048998369322323447470202809695023206897213225104626352664313602060420897973046349876844093908508375771693915930781551002946393517410224799328132232655695523005816648696617806639971698967745903631898565428673182791456938790565604905716436332826063117407001523693630072186068244334983508598144190027231219743081310248434478565312685916480070488082174503346453633158656580968492686388119461625190289033113810258150397879702352349038651856618093917003933973580767074585749103547830935115488070624435248048837132999824929265225266479713779900942076828289181402441847895394826598756104098239916188285991004342938068652160346406886940182064151195967863453577090595992117939428814167296093074538828473942369315376360555841186184711320712113521170661094277801437778753967221702438954827879424913652581820279165771010644150889490108680775476812633660108416165491151785456009665822010629586384856766953505041520279797246477471194656401763186353042606937971349267602125250240625392875466615265334665184881532897568278365632781661472201023312360810443307412953525685670091574947869728779078929616204518040441872764661385314150028793465123287900049280968385688633620546391798498064004937339800862478244892494868878118296916549005803525083476361489942623070257829549451060327657512166343215073936553948811868586640341801680036237149093459467406919345373264679830242238836367029897869153741884784408106252130910315290665507580232108859109023530431325800066937749918975543902149297648843397754147544899785858041092951916106854915182334319288852071962326943977067668081444329124041731198160542054158973467115024708120561634228200412370806221634901540942106128084341555235298319355591669792938355125663668353236115330325633908463574862823593320739780868810601386977986826807659393306657436414783303393328259197258547670194759710395834053987394460224799499913119058079172493002256130866166147776923112010267828109925257680537411631659360645570640625949138756068392744664766333860267227226456861873794206923221615084546549186061398669557398214852795562676489978435161212738425886527205637919875205988411186984980175912759427438581451654673702998008464927267853841839102689215364822538051755449750472222404620699082957629106018153806512545125076153646106717779945381263616948473916659337966547153611434573548773423697015497084916267549972921894767730567435345448605937928640236464192080894752777068345668010652306192358356920966524320800203076056536525245440427395004407685430140104214641064489056420948545506682158309322311755740393390444989844069215796987891370494545485578331220992604954024328689783457376038630388743608609893003299076461458336470090766529087640375717895951844091940713761801023977666508045907211843256756910167038038773868753004614219983696813228516869634895817344002261420258980336686865442405779807066894611843050798416836345973986807808811801937036857096100759551900952409011731602424822250209767636816507007181036356001250533765164815078787144614982511283213108367225413867063504442562948558121691257273531387238897646179346235991355303873528354358804173677042011874979556999348225752413058805371728863569186043923960084186980321823737972332110679843018075777611588850262920248394568971078545208554015967151340691709824798612024932668477676245068102644079515694009222397319323968631688295170028764960186750230398267501750381122094479434656406458869178564517910919419438486046831428232850994165735044980257839222429522712474137173020368967377903382014269256546647874430711738710073865698622468796741482228790813751326792320547899919939201380807171714090880007329012091409482983969959657740685935276203594003129713406211936244261440146132558718873260821555015070563116358997439190317221597790301137890662333500337895725500128391705764385631780763356168147479663885198402098835117247488967915373807309185897555136481161140813919612732626003263018194879174188065215319110336158354263069698818012500712615563863415133234183959148773565152699611090530214217383144791733750743576255626258955590233436181991782018282365229785430910854739973394495795291339894057864805215511787715025220663555875596975284117470672563716853883203084885114652836298190070472184199460576501177441558654504991315313480865124678194845481957088104421546894621036941930395328829269889965043143565105920529901654609031247413021782160993939127052532393981871865845461712372044403121607272554449143725528161919220641331288771509941032066537402563519153519459644777303413582776584217993388008365467991118587136011802836331444652166946175437067021483960507082413500931219111989878441736318674074241494160591223375161760401642687496866434003720919359587349921111914994896497334008179969406656889740309793721396439156158553243454819571805486813357449076251907367923960233013348156848042433821681954954442380545387890182310175782604956324288361798504268331156876325429262649395116868403932972043290977295950430338578378762964262716133067272179636537716909716075251680526416784604628676978989872971768926171355316763809049937781389061352484839348554291425350734731831269150386284592893288921960666003675221062334854343966371055082613692631720991146888266906138854117255017570718126491222011616366156412589438353139365931842517106509217059947932681313435645795320920070702094754266759170260138355706857979144689821324451321753298529007674645211085747574297302295240488405747930166493874715197960100132030461589393298874695155043785395205885264671157582232777941152668012108648891221716876166934959838146127116219734984736741482535738038612716581570089121708568196229621483487515926842852796788736827235727381699435838144180727280685478193103563632961600720860001070031783447587176460288044266610930297712074128510747169358163024478764516353997874324462130149767485705517199604988464567662782880677962578040841754535270934532331774223391003425716970065932268865046070624122927632945866994993843920236514531206927475139315730295258985238151436606487888613969177221906609984607156020109376702555165993701860797533432001517536514474803281629590963793210509554120503893218539557778648494445376489088044399736174278442554587426481631458664990665961982956302235255163423156752001984440358871452574636325885579303902923287684203753134059915241343811615900793966849900783799250284639027956896340382450559034684203464544132481239068792942550779855944033092283639235364309817952113252831797219386034945319290917812562814011025936332078025289015306840754374890581279911927629486311891862869117637132010984756264348783593395562390416818230178314165773371168367668749076808637951480853286914256508641834427624388215643275307098291118268004491750693237560152807221759675561128737626687237337049094874613274803709147584347651682055055401375641564023215665668502807221984063108194172534758192947463210028933159371489469370033130655534173886159013452885220108458299800044877828316119615792903054304975367870483737227659921668357523043585161879451376474406824212691459699034551870166264009152685213824321321654656120210152650630435372940517601661706060452890571430552324160616124896205990745576069387651718603705380827338472961894919023741519454533314796675998387933660976083239276321617648090229260949961113173607058914777452627584685850911826527944091067010483408099567973764901979388458465229313865681877137362379487046806356979718915212581450928118410203731487265678974083208623366103111398307343381838708182838652317458573097569525833339787254685082849375410873347690784606736242168853474720470750755614263756635397203468032236826689608107296073116701350373008567727309168447781394955303378949396009054312074443846407397446457165225693986893597241365731557111143616455584143071727486982504489600045154556644363342627440531418091710733001275207017982441494332676377752825325415551890670650431038189180520924133068192805028052598749296914547953960083537248134988656811263656413500208228950903621084205526236107712294823649258416091507052949709639069787419696220711495006227040391103776827388380418641852678039563458982127542252127062019228546842296832494993175430860438510805830224046833835251844367741521215553065974664938235847221156847769560980830787819947561518757959961298279731434295535273752563885899348208978795608228852909835354719301288425472832230165690787487166541003311227178288571401171699399688628304067941647939068088408281283078475585216436076967558319252962755085432562056978218218563059625602916876810595193059589884740172183508086969710709397473748874705447970240816746967862061300815416429953631684505638532016191312875954383163556232129879826592750569311362504724344746366637399476067667310350895989043825133547487195017266730703830927698455040168145040900085814499179696190161430727240351806316755630186516643233194379845576248435655264965695332729867728745991559152286113358207845379423567497690576754891816748431014315699933202656034276866935123440672117974258191036625461337586112181592196355514196031842123943380035180718561630532125818213421265088773781865652750566478604737367685211905275854484847827486970780767441385432704953556511877084159077633667876622106104076457725166019010458618191835266809023096245877760256014883004646867277716055627704955013707872140389063284350604753524654970209602345513786338371830386368500948864052806374135714938613598769101065499724072800460698226710038169237970605995508948204781759697729544930222795415742613386934727470358681624335002774804497237825096594997909041898854290907772807298735098726345293592124312249382581587415144554845081276122194476502503879330058453083467960814520367186346208603710990836785303982559691854013290836223385974327763391604616922286462107026539860800385922065030156565345785073636021416943793596052210036116964617865495148364947975115599020092413286011885410901788038623679098844151539377679818632045513140439844514024216728185434763988868326135575248564359883160333172422386370284076324767358090143882162396560364524515203060405439495991722093777579410693830101996630853001482214580255566483534386234618842954114980523521571147141945836496868911369461707902982808422124366427264981531349868118436173997491187417832697301429932658776768129703392960867303604454714123245996695198279741966226965701697619747527111493179006447841486834884311596804391679056818730484272769934173186825079737786654286629125796129868752102377462381086121548868084281372136660127498452831850177888402572812839665339986086921264360140816868748511273302868619920677156795333746129810214675070410536090978267726351820147290212746287197931455525464370430272505776241604793761765540341261955310621014525580996597858241190186232933503824461224594983821774574984231099003652134824759366470065169652096184018367308540495260536567629982061180400656391186013426673564745033620835188891185386176350112993261166887461256957756102177004495641571618281541388709227405834672468950689802712446717998231084656744182603051619224899461998719468667689753713292997896802660994627003235086012027190325844864339495176311619425042764317259814030452455325614402686585390398938768443332205690432158225520703618256783498140136637562686025884734045044779406902112087170378032634432082389159578218605943683478766251067799343522882535710943012412044909954308142108350531255867362926385994274344332274230833888241576995260566910986336090087022427967062260519615739722245460743518140297974778958218689366052092357534179011973761759075591074010980271332540710953209094820489068238690818547016117391255284689752985501173819610942359579540239538466659692078384778670167907130357380638578511885556726261170023112253249924391384129523844070024392846479692694215295652516657020480398419130592132339505811243145041751105618085695257181070576540754375997027022301128133170793161844606657017164739279553692857602001741683058313880684759475459243092523233561510055022166099538642875396460799977356090476124620715859082891165448888129439244341765814817536438045726277383978218058854772077091747607765596557574976695721235660585364887779707675182367926307647230099795480825820578632953712709418610349127275148808825467523917986933479071044419123009466526105952259975665522361638332327850795956852203615141367601147685341345812447575106742403303414861152078445523350825446825885365984120996536238933716204839479479446623862107184298410177191806513247193163802336670131068275308021581370540715268363096786916610987338433272806087850530087117473911550896257680515901619859016979607383878797117783526738911995691642475439515610458193202095915557646465111788078173780081087006750367756651640686157466226295259346576848706092052740320607179684023433379657487716258353931479572410795587777489395534428611332614782087760435057804333748744777106530079776996519974364784528591096859878277716646270773812384855380025313881195709562044289550323793341431670729087852101904559272372808400029927757638688002927739245338897143792657695239278576545560595898726160078938261775102721510169656139914784109600056861502794659191854290266416940449212113420939152802572016040537692540808288739251947690280489802444460354582967227963561724319070991607114557692991562353995200046605709609056984622071926938277644626856422288857938996722964707444400872083144464126037207108142686148958392916587032714629116909141830018207796172628538032180323888862948725931561579913309206715047577561304922519559946717750060857524149749389437506221885998428836221440176964829039485519526189576563992032730315684706124203283349567225101183461226734659667724819251938929928643108452198679543543505060666731635196567873776024096652322489563278611256979349022422977786686563880488631709138086693803169453882197080970746702061264059811766945026803910687105920857124572216832967158605633127552257861657112715471415013655817879271333035946113736140749869413590853602493653573937276685044110914759617845497904477334113103543855252009317839648611872597022605824589935753876291008907848128408058809316308196134465266220869708780585917801254092036965110089096268091449920646201550422558363011284112639119569198269465375771602539454413482246645422312425093196180111548316962725585933404339748167811821802262367538005987962998899590954073498300165584295383678908531002260185463266127797667379942477514640218406183255800626788212207972814213968542817315988577462776058005616693485360347308498713126482841785184196331028160423902977993075323893264687964787057126196243367550361367109715490416492208132585622220081032222129117615792211081310381520387872566835023045657141219402948509603115122394805483925469337302376410120426481650304403941636842007128421087616626424863029128330351287383121226999577238776358622216585279214962009862760065502774163966603239616171081363341230266323085846691371860956662447677965608861063530262972466868682732681200857876995168479999757392838850047015769188578546919699261899970467248309930863425691541602517380416190730311470147817375869125698664247342298928553060051276998277078715052252498859440766977344699086685275145844740336108970555801080941325514834267288962539027830120876688931753644940679915685973403362838823854287735620179140085637288136104184506040898793744507440690628529362394864158987217198674569495278710027487873287239946679983078449053010300383549985852702370134959846893819953087301437736494133889111440563571833438023407872693079673964570799221494278779339030205276466931780860435853960036909003169729356837343121991759909115954101376068676651866754339835313907979591800651170387926366595228720593199012546552583697537472592874406817693563664522205269422388769988093416404435185831069096885287260732582363857879942092595710103118153992446126304394692965841467649721975029515469954977877143582746198593966682619058776617743005031680560263975959256150161595341110207499150215339537867635809972134126766041110298055408942847962027505240534409844031918813745501510804808439993186649353749842879240468649155658490315970896505547705740488381812052311405286112417672765456980933278980746712603792151467153250826625721151786434212875288102672784841597458113050807959623944772731410638724848150535003126406812952496011422767594197674311340490797374138848398309783721860698101362387370865057585691705671149948966310940191469052475592215069174182091319433680884363628887300480813419677235788421410608786545162658812706773681496626574660900083920292265909142297297495274035316030717934621123739285086422427462971728447029335898843865513806952745085674632475345469759192095571167110770922544417413455665466270343493456144446445746945345607502949480182231678801989786939851965209843179753740136716507180242158068806705924335734014170277983152135729277591488891078281455803668216158302259194490691248544266955207810599452116507332533157264099393827327789047965721551535014859400464795055420915692633193306960532862980706303576633273540915549107412385241096673945429505783597594055647492784164359316182269844225296829015405237237232201352636560924075437939792737268497929234149111828086442261579560943809063057858293511022419495269344986658444743530336221401653178242607317708707179805363295834588075973644315477601400548414434306248970754027270293423923613629692091125066702023794900209296409141521995422308195997661669750144814033298603678722485295500198011593889832696827331771711207157094507838838373204242317262970712893991646894850543661567141634922886918604927014872668188872703055713310967813919777530209507980835407072788478185447502652416378183271216891965382416309348790666889593178551119565688040775272744935789747630013862859682533412559037036645834298213304080659707201252924326039913666030549062638032027005194583534707863898162119160370387992918956792868942610445656487703658342328546303006549541442123780906417278905719891467653864345288748792350827828569641863611668880221131392220947254412939840495547529989092037667115389410097740351620341070573781355606512735380346718186489647395558360128820386336496824202134020946595548294346522038502592863477734572465727310754635412030182495130982649033404150475645451995630485603414746729600652986984338225072127191922849380465104069730875165976892152260163868073021327638100505240766304529753202081086615105814141953272670236423290031054995364959455779468599281841695110627902577638972335978280791829196286936384451876568983513892212249670536000302513845808350184964278774964377452239448446876711105488045825715236306996884801717878189542653023174119954414061607089184148140162215690403376836136832927538305200102286432017673587395636353164949987782567146161622388199072625905840004177462831870205542976373357717576057735138342703011489262352680599178880100501164782011632419448392645926189457673555407288930174204114544120388231450153711396839193735829304994917146715723114006628154262111964867148546211962364724721840893851528243594164562273435529692390451701010667083069246526483814855123802306876255883550712906980317110550304894929970864852415366244124089720159829504534067261060030766739668951252847533252767306485529721404519928031516157693090505626061248339445697788208145212574094868076378491963965960119444091887241188122240961247980475821608483686639513725518029575954773353276794482652045066009214975039129376567546691527355547414919297035643733257244857136972609032880697268864054905560800749744906918885183230241719230859659225328553573758748433598844239181866493349628763734507115371005011484274575647692298461406109789961992457095526577574367848119301641627731858789400259673716426452121420432832821356467437563764359903713111333838612044834383465510453109708879781415555443001149019066212352670023890604078283209002761165766132561139992746697988695355096899650203509293781154157981986105315728828708370901232537480471952268663363179943182916643818690334830099617518521400323069971028666832829629099347784011128800393381156422184055914703064606074251208907898797389540456676902156855815709901363823051552723989848074786324140148248573561803499409972052354606237869477149417199499309990665459973536969591166260434331175383973893657203471359667255317750967492435532038634610915059981078721334747154670974743812449104148235014546361211329349585396593970230752142710102641389160788744062395260987778100768763354964551627483755736945386493934274421108893902254498454840253572743225613269392164269603329009667337434756923765581042054121869422486198757282620669703083109335172262862136594964449198052928362970714881617260391424196345627512523516648999332038107801472152744259724888660372073920962435830197853679683293587508281622931910300774557063091489926303168993244020411114652579033999205027347328007926382854414980578992422589880738980194166109147371275097941673804920355147039194015965117807973665191108173011492970045794396031950373609351782687796498134473590777181153727000709149859067997065158902416210973519282012388886631780477906209841489251104091074951313861988286927541947613001941894894715971152939483296887078093331761897137098455851644767875790288995226068448490486611114429795396218177468857210251138411722643763762880122734757496733782535288720505517219801547951179015723754930079928474186399095547919716809091114973057131643803793506265719898412141610074135058131746578861241249613431918868514725370451546359414882068996658090120749434866720492476439064087141941116962086442209946364771348252987704501285088492376835671688559440520761044050804352745632875916244102538374352751956734347391903866873190733956712548868292334900686836039181083640714756005135093451287301888688598507609764426558951016966146474954489788050356020033171544512902641399556866733794800146005306579819992746850517053129227678646116256981749410089719306623817418867793914535111235575928160442989506003507389335380858989109589223989152535487390619318154305182740756203037387173436493126450247578326822922053725213415100016467822769112115757035640177613889395363926567986606731365484470320251419427539543032425210350511638422474524650212429479117001330783984700809792441502073104055834318683899567801825491403860513875477222463927618701060887277005632418017807164014698665493652198606134471692271710366410229838145959050246098825781505828737042261159945827161351558355483303905708487876198834823728649268586921842004792513941605109532077382131721551689682003413955935215001964927574518946880667370551012674568587055876581422473651075475186361611274036317360205147048930628551209100097604430381618826342821468350742168251432768421218047137608899769670929161817217834299551689414567108414447754479479371006070424561202658691377835958101573229091754306180441770376421413103749493622455763641469760702325525739875431083703214883071622997503374807423091836240262245856076584150020128982209152307035489797415360516340702234679345340702491846561420128622336709369449628759495047330784120870349212704133535682979858397946074257053896579262550347790698970802771387180431362782869475822151547571569437087249862419533434675757922724149879993647465160842778838961684970757616135690515531074846765071339150044771052013595885927471669173714680074987200156153086010676185646668647571502110186144921989349001377426150556213745357606282982486709612735523811718532356805164162815597609608504643519557035056029081766108273476587681692865118119718393491696663311631318832898714844223872882405611058143980245234349454180213254254740963307505354713417832669040062436891461412146659177614699038068504422645173833714162448345526618600876449305800152864788603403879285022345939763618713678517984450930544718765634958123468421354974926203106276846536800714607013947672541446150670570772884095536325627464329047856373095498165265097993805105555336860079925917105154892541167629353100694557786274146671328835281330760756638320485197206089076207964022082141445340076993161944580359180943945486978587312673148492126943204629995097328501035597405244178227373536998962025968320112366989249627970491382704932912169094316100253519695353575734740104484789631123652394561314391216901626407746324769395893948938350882133718065044200089631384913712515376123141929680746752701169268742958297659429951402941416923079886254833598915038531451595056024179337833113355502960170431253835937441751095606483328131373950519798365978551000494300304934209955483397956993359758453745087110868047738895511765572445097615936179138238385180866881730245118511739069442326866500059729820736562293522559675705263442077938251952856383322543021951910044742051842378954012490390026151890658216708084005587887077090934110743948320554130004456685102191014484245809395770039652051920950610802463960731081556887344971385380563389514781009541081012337614010074345790274074090279644789561678606049163478492947345011865233103131438488608263538176068616198254643723768701376928738411858435754915089893036055461975421864562192845972389661976753863280208675841987566640509289413056960354646406506272960746298076457632103032523145566795939109121957983840957816436081641474510754435568363271235320042696118591417341803995348085974433440156557329133979323899490112580269923017988161390696530189321944976483945332878706327557937352406411418057280754406372371903065582592131193541754327628592266457453674382796158851216040288904417182487573970922888283756110584898076480052024203825450695320015715155205985181227966992967611780908791991429494365695998725493873713652141332617344439301485807440121469593466094009394634908073305047193509169866903310781352581428337205231425931375050018217940280831175940418967029071790583139542031551948614892805679997096714646650794165885097051868592846974638858720541972833909080505457870622455582750044159847081608101284511084251874209481499398967007502407331101707497114991606112590526310524403754741696247159421849353131878786882020250277366444296579646303376647219420121138665737318188326278746433761783300989220427058725094378530435673686323954652847402962598991862899991620347546003245208041639460523283325681446135982012278956174067319847840677526384059842800292898154563296655329581773806278641359255582907262780839501597439390645919942194812838200733453827837891575581956985750786583177456502800992310153980278755639293081090059907941380623855200351417646194898781513406482996857959078383591355182103614535909591090505501225071061595834583934776763713736660287918135652833601906146983013914917948950583649009204191121578515457181281388684525372233653215693111903792385635144633144832999882887865473325629158296369629906495634076253360997872503565861610426258449204355835505176046123259566171902684293249793773650781060038196599764802369526332886551289583022284047553576768986824770151275069050792851693824158760618706271342729219304998829125750105872963178394790194823146115045048483152640586850073904186854778363179862594740229595154796089094573218352262349707587861585743133739998231242591367801946374138662941654867160881796343834787560419992316226656877308392623315045260048980980094959946570678419689910567580325294721299828980771191915952334811740642466550778044536072057619605200571344517780067397357067696485023539563265086669890899959156865467944197300630158342563876341277524631888054263407921453963768790129974712443762048493774556671789720278135085596610228606326440167340309621468565168177716890166939771374797047519663908295973345849820224285376388457399912177932524667911090699074349291501635494436780554544226311770257332717185737539451144422863867301260373768390904428952953722798982551719742177409005743085540362189855391845343105427026658410097139663960659737402008630262033682794033072125778413506969419566984446740697162851270299693031117639599549154101271176962589944954913408036577129279645361851236260268472409570470299255773849424632379194020112815894270357534830654845119280000052463008628583797425722229719492827061650829848184858038343731004323226916891660554290447031648425486827037560252902025978226615543500317621596097641676884821643343375648600962032446888664624446442767856347712238810820151133976886070847588406002791180756384359964864770952229544581089955007945570506007480566779067542649621976021773325278384020970103007817607096738373828794484950070222522197096582499748445329891535764394817652177741953031507274384857487165332803846264007166160637804993761069416166393034534700773576019752796007327158119322559343015876663479097221098382751052177932213504218228890057246675157535325452745558368781112842717589943800213261286514256933993177638019238887068108343441611255110744418335808847103001257849015661053479581419674895043176928018595603023730023087988123261548001900955981832466679732919962632526938373836960355955402750774913560711395291058210147102197685985592576735815501569157830888643024325113922604232865494344444935276734787398350998166597717345301000975772624113192609889264330584320657057959003964091135487737230886610520365100804812359996593641054420140723361334942535285079347335529426442965956142242659998934346028726534784618519176552259074529866789638575021101722658139129609067910542409523120730986629289503850184543183873901677064406721660175245713984403690383979766913088248602549409262304363090241029191893384589408887049789603561943542263746397652445385238308683428575743561225624158428161801513395113517130207235931261545347757319974220384808591653503764123927326295318421325963204654428444199309924487958277124050813422859093807301943175469830006358823218673103387713771795127119757929898743244552906396280413193785893772103735794660411997613293047025762416795492732508340011689359893087308961850618355374549227822928644840489899557077516878525445761303463409565361569330262539122928464687700374929729487826697387082782498074342844774354720761650631696242709595775566219514312089460020590807423131418285199220077712741564150417321022751424633512336317453500464066399143807411108008391715672197155674993136806135077672298445356476056529224317690494856095076157192242758622908617474919839397986901113181211092269503262374842357893360040781542729449845557398278080233788711616582328999450880375138102187992891293842556338019538511470235539345064106810602177649070560607762143570351610839325767250438882184923505096735085399521197855779581557219268335980825144523413882321117568869981803549200524098560992429009969512976781062638306398853444784214294481143480508531640105957169912233143000140379636641962370803930867445006664846014673399386766006407365306017062319910149122912013899690483678148435986297823264687911396992425222581203448672616178408193637305906180102645608711834513589400477296129796343147093113659399203816865975850541121597769099033009547869724476165519859577808971075826070012686242610609195716517149466845835108138268189829220811243524795103824670955111418631366310404463551916042804065748991145064324852342190789484345566187206280852768981215305929648960101059164531958682408861983590626591626920410480173194235294242389560241464094544100621338010169936684193986314203926937122919501838164403286196478803805432022854789212208516739106564074857420446937926372482977183055045253746406786963051004860658437310853913408436276484672713106801994047310404773758453945729673519534892034426201519943008916324948220204721435778687866211362847797927277891722468609179726164286803203623155351128332702496901624933710124019556768890272515721057024998631464398796233913570565753802726849611757085972352580261448271915168139522161810134302970974889513695239998145801557333878606982940618444104311043809817096245882111887569683140135351251670954878226622543390106735340582148964997688720532628792484873817925393966463825638012531958411973206933381089132977053673121215125607796602526108647574765173926854253835463000259368276707400069761300223739383536473125234902682972669781895902140388153288358840803486986860033750949709815770423756749402895942433374637637833423758122879106689992541966829031819888044153426082753296313837060996970894771118453268399128127026879213446607603997537209252829061615363463431776362456324590799580654861959406030122730233238177040470278149464124078081117176370064036774392625525155830232593858001619994002121133235222121638793978193883179870021378573112077785193800166266906675068446974905151785471602062766410910920601167939771457891541485505968874701911696527973536239887706169280740039359052574729352553695456554304305926647571017283827430770464436834011030637535359205677414415404454792176949960838454011427818586523615787438379019854367266238154173857572829778285855806415036622119962529670723667673593792489759792223768776798680171340787282988899772821052546983925258667012315857324045656002662673012408687892478499804142151769736000866804429823023906638229995758322087180866889969929541094947913880318363944776948944262527462114468756294450332602217671512782925178870361614129157434238424890374881770684326467880567444641314520381255348014852724362426168123110454208151431688683971422643419917598640800917348468957414427897736365247878344459406055963447828626548990744616986480955037209618636674635792988517612627810883663979512424384888619457714762360347676308925648223672549378289570417532296474062285208177142984768763564229558333362461810462317436646972140775810460398878466127601678130910466831302426564292930494253890708602046331841314968210952360740432607680990801606033786917559177501456906751404083789079379628375003422273773505098043327066347204479712474912361143690558621512422647886239603008112658566591593926432430828180931594528756668725626806684819470422388524676430965498610073092341324077519877596150156644860359064027490494263791992352145027910750499251640934308543570338084642707775686401925833180263328049932865301682059553321847867755036016404758430896916181498798413001529726150502308604747046907489780980321739669663524982146291030750262485398105230557335432559767455250362963313700904550414850801020239978859099211881127050520593687100889906059201415992983969722292299126072190680899644675170993652529310993886655034849130090579993395109734787516213985273178264280102833911097030398625321090190755643959354345060189271744727569886694652237564434722625093244907957311009661872198198581480261226405849310854440816994428444953953844633565652977252789905651841393909234600388685954694749182985349756840997357387113094237560336893338459835864829133304555515049328534809192094914015339398712253596082842318868242366763071501364362123917748516812556229249452220492790122928771717009128820627353094141749218761599975157067717538229079064453363193625793013883364914946537118035938896302806187505632949588212473108945507833530367500106234274480290263147503240216453651030106111295609868510973529837802986701919656737829907058018186293067120693837368619780206469349221434926087390134245685955080924745398969560322262199275604162816212237341829553631645153722902822474831998753135486015791662606921238225293593045079257527881108725643662284034085015739504755161200035318233633572347734740600459647069079668464374926653634287609352953141030868956351912760989422411357840796958701967579367849591991639363245562902425762209878985764755812306419169246313833401902230920969914443409948467891790748790442526313070695450908718577478860819718605286890920740179684318434663778253064190699078363599311262651046183045918627416971608746268889624585528237913857066503046886165966037167131294636595630758121086745200289075930976989637293597867391013085712456851208827878589528995564018793258065075802242932358576981866842108263783968728431376903616172033208313069695830288699634504888285085875794387173032238415144431817598051348446680108826892275649624208549003525178192648923121780847461122920522986423504454710883921973585173860381763762052506348116929567033281686529306992943568957016544855031381430114549405563463859638123560777840579015925085421148856468897560617738458089720795670611835012151327455264164288879366129716925007410033177408600222144682458546820601193348779183052118678740362788842687567575341725267708881681177738267219768726667174959586736994270705710047824454699969198319666186260739714776006382487637939287629823873533266890731201350223963567257810100572981002611149975029610525443142070070511582697937233846307734159068596081020657392831572937658143784633971716570968469094476001427000421744645864844858671442559248850015090765040912467460667890765294373538743171567863759460773185429046026096053847381118622040250598176702040871145952090192391248571984910932453000740059932279101724986250157755368413375380725719196334405013602940855784396764953687018336340942045231414929272710834536712474284940074404145077073760209023825709896991329581799548437435661204997025305023457544437185310154535430110897729465415637311140293056824203747758973823878441023516504041718033602731933404098697465104279102906486423583705239516241177967743814815439133553399492134697011511746509673142817715697769006695037503312336255685493450320267138890667381963971995272196189713328925305683342619321454132222321842721913632775534141654925736188061432921384425383891705446414725691826110446102199837212662338819806724333586905714523008537110591119993460502675698193262628968952419461255066902381251289346419417712885734680957509741591322342679190619507183936652984010656332346582519468818256522565517435486764843246378860947532270367571098250917602588815699090127747208253919459756486396908820930725103739417128602996354601220496969564103326389511838720823102401045461797590251907632318649055565746011562290426743886225784757675358170765386096997509676248022844790099283711924597338727817080489755918485240135962639846869908088562071213320801170705715393805153743584894482706435467483102354197571512308679864814508689966658903580542550634266218440932573140234995067043337428026145876103784043399387700624903907246812513910522357357994221124460092816718307746876294403416857602733825102320869789856430872038323183642694460429765276599872081908007669804628663737452658622266348734223218363456756053291618315033342959837612154406985838669604746159216482524976973379578863698681098015885831494848077604152691839385911189368180955692741053972742580561094206697825373526907045914336175773755515606654784193808508473220931769991923136712589146968349281754464149124579661144436306885474951981519906515856315020571098831223153382067198050102995193131333642315004083107584483654890797993461094437708158288172914567339854877745522121157272672899726941325812869874009805352265671614686167592979017295858125430118828636119421481899358580925451562253752347970858150833731835815751571709197598171718278053209345885927587436918193841733692502919205661591983879568461462485775127219988923975432425327869768861643831417650705861190510285593240236385785984857991064946101042867342936485308819418116733404633815461174678778556741707157323344458043991375542492069634662830606464068714698198935925074481757270392185674383351602958015020841616918520896356886465240932365546932427335781523693765557679003271688874988332314419246326226777172831251124343032459355658137951882842957840554964497304523051221597291901521014031859279580943495689519540859182198687965814051369469991216271157880312178634239314925075441206991987499966562268150577373435283786899833805564981357800036934609713981608715175461183335450281859311187676907164297520217816433398324262081990511711605576903889916840378127400273240609233270607163370366629085613763009579684785375708803134856316786776467240136781688874831496650060342386442788511171148241786401926053217329806208468717057416985682569262015302522228316708924965047730468978571765576919859556044600148189222528463072659083898707706879962985461518436452511332640380792968934554788800960385863460584564250571109296046751914750301880441320578791555702190512024606212069922114349874250855092753690533580787751903933754370971578368660849696785166682858418405138137705024250798356582443086917827550500909799326002901653354206940860232082341959053485872592533316209170222135640484276243134680418033974380846984111646547726080568109417641313508408812882655180440294918000881112278691184826386919648019812241578713461057025125884218260683987955931632714252471965420501455948717096121355285213064743756046893988892634261093013855040863384183909079293142517636230051811423360497212510820184454679690911940372795374491335988938303042056063019262020640559225449703160502242800646383447022373283524758843787146391304893775352785133837507100625349230596501000236957609110086655646508150400871457780287740342847053927185820663536869801221258428994224859804635632412176548494802063426495484163032606889103674166078504539388875542459903772493920228180144960472458364398250809531475440586463320955363354931697796377535891233857860713818450998819177945341058181013179497916960206247143788704298009288047025797083357920766588109879657043663032736454598515654432968210876143094856754638598407095911933150141193798587015151496471654540406002100989115672034178153625632187731151154801689836708226877176740362068786046119909375255752193398647276611280485233837637723549159227339184103060654011650475428069153060226615384165836188780757338417663508344754089503672409338989976727646306749848379416667098403785384793709383073251937414107615927507710798068680472686134721345144545970268565330323860612562513627434330045912980004108943376121738825177708084408196302789477836645528657710083155051500216732406352659036858781538767503700092784751872114939704401211372778080145823295217324763526182315486473152971116806228505720612683606505906161436232833432402224769272628645687116813614932434665632218549837790115721841373091524826719930874993400377032571731771675037442328481722408540166209410351971942912349135401308538691055899261367707674078565345784504491603795710049176419088670748274205792308287190475261940887502529631662243791800348136728377613547303558469812082756007290604728700660614885528191208361970299384376505656649465775008270536431434733011204873764243038002944594085927822134474319463458475384787863564153139801743647340893555597833212003917430335470255004689060725130659642769321030710486065516348642940354999632002872868755101924202231463370959912777541681195933499869005866708291613590173048856114408603050764563898673259677083544283380237784109615102423572863476901853403468463251034473045638390504724873295596132475153277736267348191081002785965649877589101242800610557820881202508290602771492972910725680243762359919986473131172348654578806661380290633358660968379984144315812086623155703154002194482744918473784085124094323436634687053898477768612215296503482883660881151914651909639107824930875740030656831475106926273180572264032720210281168246077662539817288951973312296068109541401752752297808507297952799473558211806874635470690303586193389305997072105157373048513290553651173740163098422147883804341371176124797922567875322244668992070210125725980628893685924079928215776081287599402078572447198207359819275366055292254553858940428354922645332670006272087044748559352031549129792542589655319746460886681309283121443648042201439034531033331498910193203659479065303387610725531143115432361180924700995948508971094049074104057962662823968877458413654625880982658947377224765418925034102357082508641289195353508323213777378957564392390387520002195526630563861469821664032679414423251717540818994318069064905851896107122229758063530873453670801769880020665893551463609242506101243390959337703733884382228826962987285256867934553071090400934037062741954572572859634202941141283651411438231324658779742984407593660804981763575175339574363678845967164019719099745543458393481713331016476311827834906393845899665719309355422626999137144861591547326832885560099704640521915301469220542365855543066350509512098460821632406614044494644376661140577410648460242840198832151307996257275531643799308367788366649156367220322830092627222651871427548071019585118891003392807493484445980840476390757799128327176598870010720429210207257625921103749756196498468616725439500957369984992377141849652037260249680065611508503968685554589864867629754207427368260074379826487989967668255868576888189323519371934797700982703800651204309187943258360857107194942941261915557730718953564444827071244861642407359592961047779878082046048625467125211994789619357834610944262549728196579884510966870774557042302212653949272896691433964899543139162804025789575307471656372629600021878803742699610338782053976895075851135745030157741391141854004313260139188742907505617704506622782552193111141511414244828732761277223055706734898657044815758051308526506850983127414199387217495728879724399491656228092109897671536119819377028722847767529813841499023183842194971829836530659130012609051645793196546376558440919069606251414229365741626138192735997708800497751489497331438990681730360679616617794224776813998944027977230394078683324323080427374391572358232194975380374624677190481188320262683195392759687392951249242351197782530485650368112447453210826016144859429616186551067287505341966690837868314442649645595913515535011182462607708112645615120864253591328349086951802757546306310003580802639867417155258638563163613635318713737777000903862356712423954143772797720257849387776784777993210733574103089363785380736091083694806442461082564980169644615428827413850702815628114877595114507100227848075336224604081699680430402063916053715055553811499751175964394806531565064040165040066076074791474251229197891996634661614991002911430799496175219599537803173093576046167740138043208880613962275260202024308760046259567856149573927927393561487462454577562039192579513657160304358919009174263966129687073989704486703422826040055626076744095382396190647705403985447516847556986221264611303426836100191631194557498968419790439887376494421221454602068898212663585489319877376687576586416326360997640720078877168871477301852756875326408169587807140603873774016517616990450906415440909009444040289190556981403016276785223612796923582085921561851317721742226284064872673757191633843316280419640776023790385297575568826658671237892337290938393128060319962963335525163312787385383831310598481102296656608136274625770706978642042047483724524668155004159847757125137187596739732859576753209138440390502133822693819215998209160897066689618317076420011825874539893652023061255064735114124066541976746753164672892720298403310314132963467868346337363828657060491047410594648851333891044492986823234255281331958958909467020616483509247881623206021804870678264199872246958758500866055360584527681532210755979186764064934969824793709150240435917771503373612975510404930918718448825812292574700867752576893673460375666976941437785935366602646672805819863666749413418139311314541892630900388776326794161992264537517587683474633137033002449775890482186893372379705287656811232073316738411953634952895944238065579504117382314938100482926521580867985762966619073471269340208590345676058027677708011089662547447778260915342466682770918947412661125163187149348414719336546710070294629515339319485775231846988996521721044167005536986315039714562110871026088333523185312402497669167394614936295810424318644350401241611757373864871961301554979133130286803697218407377213666275387877381978202100508874719238608274001899816378256933621189624999020023291320464148556487110837372777348079728793065282397759143761625953269780293984124013767849932137940415073775378730106637252938362441517386467446291100879353695920755831279629824093617924058068269744002563817698473181011397917761522983775012387256332851983135818490247722842200077181962043844563208359846364925685581141492685264944547685100391471962317481174121785104702341544395515223725293103654406693178224347788552660611471234202524319356018210738771631120537824186846007055794659830280333074663596886815989718444109261714495974691053776410216555197195929924924452524220076099504669238488389354454090869006959104653527974529911763967064347698446884426617733108674825224426442405104044924130907561445207682514406187822905761611179586861973295906722906561359942737899635126374769906491301962891265849689629481082049693034919911217376926011173157892593481216343770779001520488312950335726717192669692568338364182154735883431570049893324140509959476347958742850357409644954173316264654252642382094050525862018275210703982736911121451610247742802755953455606535510418253015750065976158708786547726259960394704936747608864395657681674648685921216251159748461516361935597345945433519379562605625933936335675334720744831720606618351746942864225964110835859384556803092337646039420177854323034388265983316037999863082884840534193186411071869121662296246976334180130486757024870826117898524784825968445412079569952428687298115065156182814705227789852348894869441974611498843682017886553871873667439050276579238208137344328665516138250078980360275956420409430478418366209058137557504074748115594159185972512092140329813402705108448326463805127449262336900597443298100183643010176908726656543652812330266565163778378880241625747808521594141501901369442265813353628851412489910812745015469825653846699292566283868353544155864399284052391447084005117205759602905880501113427478710499089321444608558976731365763309630308840517403914341110469640172684232930361951327725798968794783852647652404742543680699574050275718156460247995332293556408351294553511199954719768803338511955604231374772859160018873457378053928767686338990248811312204254405728292652180113786480914505032378627646583962390181791171437456645845088473194033891367539440309910404564367854381455003749514717123481351192971412596145340829762247623499568876556412263573130176717253797397131455733192346569955277153110374491524126314783752503317059702629816061167025594318256810623833092439490891611295283502700281291850932342341872283793166864195445654490124164895286351754544854991138939302385529497658012638856304322563835826561015467632402178093340783492887884991413594958344469742501546308462424831959182295768812790958357988875367016533514239904553568171595347345815848335183458972619073577107371139307329775793985164463240439881575715863640686127543809756807889038284371736158560458237989740055987688939284876334495421993536399951616008827663686731431199916865262673224777750997932612570859541530777109738288841654468023571955352878452627544594446612033709281404647627463449454616478738847650563627262509062651066700070220712966639571334481669583831940405671223143823665092662723513250397553804622997227044450512773747519164787939262294726005784597538056838445841327066230980907854774846775245257219761461873217454666627429783856511627574538655667914484696608043084933142957026427741259416432877756868273415949495839098645025173810654917559911908429349225733968473656005824465392002471064074655469038133322696411292382273786799100265269689672847916271415767986419380171210981310262280431667705571310949436867760704012726533291960384475261608378265918100978015471868499760534692070504070990661071913188607726160977607305927522925311884896562738946869189656328267130619264943245992834431594163920051227370745823948438311906574023974995979439268337458786942871319256629507491138717560725643644175087615281815520168830070967826062438792196898211582831743517507849503825306765880372894434882422758374110829538249162446193308226298298163835644451211808117671457751335336984447571250618911907160848848812318996069356639546442755371853684746961261148811857820319619896339187601553188826844064900663695553115292310444403509978116716823845165881368048669641799558411551477155540405046585963345548534843444027419176669960711009710936477173282304903718359829959585863785336877372201555936132061033897380468517172655282144862695874756793170868443302204694266955238164842123177991824827568297273868935314686661677803011313592798565164523613523071156953438253086657838015970287017955826907977750830831363061802441203635910784483694286629840731171100683040412201801189483933563629028490001761151052474714614740051515369540425806543609923573565082656244713989250869393768593105735115969338350061862510018142808891641985585120716397778163076414830746941471429650943290863830097326970660882467300388809240272416703026480118238026053238524008999209176494580220881831799053512477619077031753232040344042202161960536872641875283111326918189691050947351096270104742628666487107726014624695944161153700235923643454073255695351733965081366882608861727228706103130603305343111216954115960329112832973642130439062049127472916829253347361710828694354374954506837420162843828003050395933559457732823737536225061106364157219900005597441080955319855745028032273772341116832419127785880235903546976607094352361001196941553747923405631939462817635210402967894961926723897112000075663427762801136877943783596526678373573401200911542769110422042823723710341253548046172920531214246286242926758011537534367744370319982871785602628533993751501957125485671180282253396960047991499348509338522096913583080504232739942947639007574266452790833789634590116242362941637187615561272964638870835050169755410768572156620092039151961579420147172086164028165015069409085329166542722319242718931024503363112392789190925649880195128843169435029296456697021564587937048806462638055053056426388547909991281999056002773297141009126213535845375547110836486061978995418156135914130370038287046658311607193869707769934736921294061947354865837086643333626958416156233021515644325104964904274683631610812631626377875983425799801986530374153046356911786175894848477298772657649573927339478584974109028274956214645022447317305093696623190255817382620756156074922381830511956514035457359020698064809951672227247120223846625080823013073114194394152127068334150191793465919210116142367988068111504406097761669080805287131086398513069951582523406716072629839978337713857434183494645785129075149111390350265163585675549505799397470602709001492162846548351512085626923291075891806012815403072440024164010601659592906834895247143777531050023994881922411789642400877227787396714880027018660344657152824250015664594812316159542685305712962472466731479045851414327093928005711178598679095127120981069886421032719758302569439328763110282639802003945278538024296141946503081527735319629060214059040136663963097853186061833522479787150650442174292601591075828604714059715258907290080835126708158766555472164799984813453807569352593526976104313010260392535820331496599554258382643736568419571572255913564125038515516341226657863158717615184683383599658971788798213869569500264686881129036288210928783560795762942065357459936358675785617725069808219586720693080275883498962148654884804041715512575240964373333061312490215256647837026467438615308798493632920700733642685710940736326713478317362124968555875277636363267946001491428409259179688237872090829793293190722202708338243321444011795762708210344721346857406709041541653417453626942035467293771807613899622676075680358925202773352855817370545010620196871597403391384865318629162366350097613596617078124687757739561133169320771939716217962889054314475424002716115288214755679535685902553894997604704210638057528162347551563553303172766293506228314358881509626703811270309837666410174813651941227405781481380223438431076887264639130881645451003427427596336062970826007685247325320649811870265368376398937264645945516724832300514405328641066059893798486770865466361996051568902411803064713124122243695383228723497361830771657371728265994407692959688334567288286717320153342626633848255836502287900784342800218067592363862187946726085265387491127267498351505819274942881582704743964431082482757840783599253011501218050055742849027615325341420347322075106485560683438646049741274575189932858341495530525017699243744400692319647822369644821317688449527280823341694087178083726469776599566341360329053670692668295615433529821807809955727457023551600243791442310683209509469235420487064570992132101683885735477485786867461054808913618993534302836641706302722744553157906836400320073581006594821651077438149582358347953056834019707743198427305661453492678781532630306508775014445167541132128287224637750072509089222383215056828378992789222970487481380184508933482906718319430176227512322142117138977106455656502014133892981483217023228818423651628086635244380916455379142264451210692495652303421845409768620801074921156103763500392612556663275159879628386368766731487810645527104343485535288989034078744994051413575336943213880481407917148878243059010095143998552088465340267995321122866700588637482701396391455695260400133058347225567970251546378075421008544716850067934243835947026452172306228118937208096892534811692825044919041648169288759506231140001569833025032139703152705539712723496040863497068419450941910366351374799373860117271591331109041867808507041240435587185389825674352074456905222209816962485616913001954492268297789781465825757323257544195908436904066892626540724351426804731943930736541677326295381581485721445225079368150924967725637303762888749375885304850167513150212639179627763418974206415305128105809879657381501655253591903275447637213202739023805754397822316325335306454675597990969387294152928568591026035434099877664622720799166787385053047767221329019380013157405521389670632777913176396298010157479307949376034480938924082242248254848673868260269939815513119529709703119068559862353183957105300708576635979248409666255524674075067774828226611877319562792631725706800452211832521115453895070972289293618605033572542263381386650365394246076296298275172451236263187800864159073715043364732011195592302947766099178704897954604414404271373376112250182568951264155463162829749200464272430624467616281190138483671589622630370548660242192604918065738179260872255975755866759733510568050088792091163166455267811811084222972481734704025285940852767848979072784483885453984106385470560243706201873657641384305076579187034919841314248887313375168613975540709625616852664946966693849154297262469810958933145181401891418644241309292882580165251179208635477606363620593342217391534095289384959653344198611110525568155716519504766210552270084611211109266328273941550392373794773557131058901639311728811214143423249305479599684329180340878841017358565787773306700407837513117354812353223659347930540812140431634938164948730307971397089708375741053072328087001390073603133879931261320827381754983185788886600344363136274766805702653457534583287047338757985874540555564304712134015228357680947445014264996813791307634974690748131802339627388065464625823927192729007066347749127698337067989116232176216083086421160646844945171903419616047066437359763772434525026556066511836654893592926080280847455084994305788434304406871794083821559302418514717772652093712236659358676685346070271242577855218982250371218327495917387029312181241377366573612662104361640149693468967566391888208967031653078777352483896884930149717670983407524545794885328213257328023596684898173774720594196866478440412320376355405855863827250362527916257208096465947439571045415916861311196855311398178148064546160802941740780105864530846896505170617127736455331376219033739858210502333071066102973617064359825975187300288093674669468451255167028171042620988605568714368786967895530421798047106497527506251351590551615548417070602566521058126253772553859605398869848004859515861393924846059432138053744149257776130064272093452960806213296707534185742240082310889157891682545539151514314370085238846875437431682804669627350514631839368090663483587936337724849690535580430982191449181400591955035204910725308579215202241582422353265260310030543353046617910708105736620764325863160615212182370857869809297766119138746625366223435474753410594795473406947445670969267681313049846894822563289105724075671418743111417269085836185584988315097175459581598513928876701218884217968590970185984198927465974242321862324345802849499509079776765052771284687428447587003156627616109215463454080833276722704127961564574905825262762723159415929087829096794623748177943014683281882043306216686627750935444844553673544040885076531146681991533098391525076540287326679723362263284432682969336306106991758603639397713550013026733352669830298488762536230251178460966245084323476287729527801844893406923516192606219703143345622094211189017744110327087912077879812908429366452924846349492185814126631707677208277441186516162597329796775910604158740707227462676157540703348121187904045290280440248312008847668451832995777902057405680955308061236559954941275572244482399349660194687421524529264795666948743361955817378616763491092628513467749947159739795301937879034776321389167972582769918958147373632421528193714802420997469848725160237054268496555350102482536112085354084205433032782177176610687077868606400983957114639973949978543498305002013470068211142986258808306619707228564245157915212345166815167301790300417520299846727888065242739376744649222260332163710129711945177659920953363695562761288434442429476133442672847751747063627302510795644257909499798207618756686413720628949057385849061905414608251028309098097006419090007845955702745225974858087067497931569191411317845232565872157460720287982970575366900750533600194257703318584484802158401927107448758318621819564370273817454492796840540443178720476267747933949749891906696893889906074358526616901496549390289383713630044748170289511120479177240495622582881255961064430843548896925848332949812481922465295306454653343702187808710737002530788787092505430229710942497558579390909734903694542860508395598117010489639174401906397170946049384854045928371567231458875474146780718529138826395279511732022744674841235328708526855949750685234872588231517715198610474475632817397292235409414522463780616630205483348340331691446403554637488116953487615375759726849071406592747575145031673163809904399496990786090474163443723043068385361247052718785561250213790386091709858417322395315306386592365868071349908602958944763186431999872853424824222887505101533025905407222187116104797192237085634169056473760028124974035902080697360113666044543981197828086033340559480108764647477002020919784683264289417244381650307947297952934775588264268360457538778965630704317945196092330187914200520817103677876511435789928782441416423924007301547782632589003268847934467978176281242994248763315561723573609520610429065862264095448986268747691727701984405470145305200161094920221940462528261890465985139444855632827163433458034474335964871172557311972977907485294792132795494277834008800327198241153774050035927266427166201216447706884804801517384450356208045027204794579882652842163813963201286097790008464567592457234707575355042827301716740291994729873207871855668260347808426142956148605268920012533557725134768374479963860771907308006741643967057497707162655751407652865781536307575583381207970905469187284673229913909967180408554738687891695180228880817942605997407664729339329100951448919463116393008098005654835962309535898709206360305343608597601002847781452293275260751890952382857174262571720853278192808446932723173471238532563073139373358756611614889941906812222262877974508175660733953394787713133788913995151296373606612968090260593370867710946095047503020042504218122221517347191545041792800932768794029110219106891229824276535995966394779156300785006496228629160839781481811007733633678888532311826759824830880408572004181314751580345907028646328346666303115924789751728322223104002760399036262252057500932783062931058129412270444273167426387629658147681855993312105010666669679615205488803551153968656759021560008830970133146970356095506914718862852883972935630310924317963423500033409627544370267522874008305725478820952256688087595646254567103384731601692905582405300924993185892623032797533835545748140678076391500125498045052660821237543477653195162306057779623301729399899854305434455164407173067229790173615601728859163888844340403055946020573934953893883436907731920701790793034749998624532080626631627166136984689465774421247595529075273253600579031753241353239789293378230009666722029846151227122941331081085243420637401254978423448224331848830268960823047095159433068179456647106461806423737271045626690182277154833474813873533921452797685834252925809385108335999919330134426602131041948792135963405115399315239130255156970453111444738496409977305062950017113294545973788447371629125296226696410342485934903332317117384686418373287799718035806919676062131054480889242443267481756242726811886440361796523739630034891103757469280668538463581576995331358639436320314244605932206191852200381679165986530928930376771381970445864391476739063647671008604662680310428689076773940977497563327024155898260234609275951939522273844467464169763512042328398132686497569273927722043446955708716238858135945796605344653914543584051343325915226248631038077668166228866046342576820553250977023304417055520828126225283847222240104730988331660205890191641608356945031485719257561844501623676124704101610137132937386775564798714030461825178398180258720566614984631619491813518208921532804393143371724176442089587604121225314489126354000720820916113901052739581868403874661938121175534341235143437118332265389136211478132487346497511153309809200144913206730776493579666443155100233997021791226148494902187616786892517488664803207142056184951712227594601309551276520972721262255643565693688289879745205110023470343157082393087354090023361501252052209839145299364242703129957136935443921148561738432570997800143887074060958919547645079241000184852676769351731279803764512776221997789002528360931383045401408450257891078474690243775843723741012009469008142027716463641821264682171810827015711958169646880991143701897196419624017237608447345633260121227514798132469170896165753784589018843987969424305689455319393800562715452405040693877901581746621111052167019430694556110585534501677501144026763571920125565546029663744373293006667914499203164734750942036609985919137043233681765115508659976529062397245658594106941311866634204923313637933473088910884626807192116762365099061318400476703925898658730507014564170851444575203144475410232024230141593767413624935503121451177827225815935583551125070645851719278801292522284959249694621600429931579144652647516443767595868531568177682913415039405934297922875628276075720666163887399645661029876757324625163381360941721084920909089003365652824432938018557139618129834723039490042622686677773440885441883230227350396046809896248846342183980151774657064527677041617003947961788879431873948676344504476300548771286493629856924064819445982677626113340075353387847677818345692775766509416858245897831071240847167948678066474788085455623758610033933775012723424391644112802271413692033820204538460874769060187393284683296995795932946156219877997588843648039651847669576012617145195377031815000411976280378240570321256284226697540910026758252300562887125243802964242247849619233346771079147738454330986856425244772529693386735276105632929016567638943033218709798607420057593077197096982845386882767843055321362578953420045998204459561360101998590949818261140773801870824768773078294937146877984024517648308316179920270606518834905290847132949271722867387560637290386699827159638844686668170627309698354874580703734228992667576455880951357655985708628467625297508281981162692023321972745973908061423816376986508290955601474143686230622912614378644953924857343063247847119034351328139498109573989971236849168438883587517920150915473357739024586848856403705157118820566581641829223265954728394867705526236778146563686239407508607222251054779369293088972477843155310608694439683016041367213362110677379257165043246789283294611698693284622734935898328445477913085004066289780732476783967442481893355306151441514229295671520394480092353453427948822935241814040672624883926355269489550689616451614591098129156263395169017416850480516730372390320877043158869272452903650703040782790633132635678537266015238226063509915358047575046003176036255669256852281792954606168182615041396746627101918195800277424826042431395595017574588596069468013964720443777813380488898782079308847232438783447701175799503169312799902412444165865105338985766355825699682189250140703068471554386670962313080187475848520176453094245355723314430368553694538859378964417934226841651180246981830034240215745216574786178362487503547477180628161542533114550306527387650240029923456573102752835518559579129403981597806786921782696593086206599207290701942254352059811982415689226516460858495068154821816618967010674417601664737576880030776703071453123860881834944303972358128648940554285378818241712598350915802120617406661717661571849162469461206319593822933905707493744313843414500655137521695740186893246587670304837683473263141311634904611287646131192249368540771234355836890199561192574398099251535462034732531556883213960117551042218608950912659075210188633911281523416031800756548260064788621947171438309739387239222257495249144149834626839132050284965367947746928866845452288193791556137976760840806401725974291813885779060328778755375020474375953075738113956253767500437499957544449664672283657318117249051580106164876996179977009977259841762129900655820132456817228706568063557990203071145354889102582880705667653149727125221851973116857698088634984715457798344291089756239174180043403881286929901594420298656780765705646725083436975693364175485859295156548035726926011600460609134764963269628072478355288894003041075120580349053374175669823898119741976112121722715019668905985532095684351081419466692697165611007270464761094186070530351455885694029739308547027736026564675056833886613871294994082664119385656985529255567426730545693976105676764249418529520704165330111239702443116106941096407629981552619369802229720674933880461549122237925534103086334411608589223814463260132973926533275614717693025829715091231382727747374485834774323904455404261785366963979688477107670239670238463450032235344805884119281970833192042663775372471381579600866641234845279860199754948708643471390666673822884051221219117799172035651022221177896361160908955792817088575849051326159685580589733524502761639914892985126132316004999852819724946395655855601519187757455052603184544072354748113193003956099261508846523521799413340863464037772291847498464352194284679748343504770141323864670485389498111469652118611791285001069872050068283896264266465780164520273076401551660594221537240674595702169313753912848001320566236011366206459247332021823229123160976412313351014184904184255770087970636082237046353024531988283791204439477189098113524068175417178486868439942037295376591740064578156757793657231729110603742369932436673317105389007653492654700471878841566846065978655844378856803968108564339409889439988463824361234553317282507060016513480326059695950508295625828312970270917466998590629317344335515889512734772785713279206798292356959554076834338424903069810366465473585421495386960959411851361742408467652928110501745129592316022406308561400121762974121027897163737008972290072026174783179004348194560657941056625899315600546867155109575132366556698453813191166118515284397686756048097208249199600502808177366689780892836842723890568084063967265066977432706786082717697141722915825201363847458197940903406594762532375271685438138614318988438962966820261408988141469195013013269587027300093034623473682734039203539098944424991883186704030309208560080570374560574962682127491810467019957881759641749126209362016784809605254843484718586482137122319472532206545527701116779670579271379269496904860048221952732955399431243337322705325287466694776947723575766996855308150873115991071544429682260850147281242979284405604255253693714036704456383018858438322032879965500079819864340769082023046292607764784940138350795428665422391506220684513508103983314338773506365276060157671169330152986767209302611966135665919177321603525400125888044355424505034448000127385322402327716223533368563396349016162650070246011235928134730633837909705682106984646232539910317666227818240278485870178799854696591156291701978469965640115892884305303931642083611136620303631694090048146968645709029981853567653035999390853759381506500503707663450617367969039847606568801055040851883560715496356417401314977651854705628375999114370246011098627384202991317830599966987634440227024962548228932507210936322888822921954063259166364113501144012840936879378242636383088599957193255512465719777964651353580555398075740401645582009304255772972050598485678891095096000343464186769542838966830014440193876579959801507887807213223293415621030461264645961348584387182295318861094187709815146399767871710821495970479044577893407453726815635536870319507725247800692893289754553595684816329781186968971473153534749015726351368024924441953907316459964914350032052931310903160301077705236996752652164809083553214954518324153154056475890669796290579745955055200100811174011721654740147681225159071193268089287310217640860326490936364068261837511362146544925668155159983422018041356761511279994401710206296796733710019881870232975009682168085532995448769182212155743460446995273218169258995476705044689925039921231040374666996368817950562480631453724100928339672593021043144071138042318790968215856467419272413295144557446609981652881512799629329634641146149370905697432131332014219652543501467769671976638624806160546952502487139093586573095413115555669941705232051132403171180330957948086492943213181098647651141362022325282969975363040325685650532695022859583628385289470631015510148687627701248895731606154871305313869142546236278967245056557757058297630476643016813227198966721649506279161305352051304642063554039197753224283194494499233134253594907041436994572171757457235845949907270335541863724758598805348372147572960397298004319177634950379231696418793397411821756002820805426867072109416913952389838166850995623110569971366375763938573591897243472183103339350273241174667673295761526651952627585698498165494883808242278505782912766806234920189938693057684501931964327264755734079734543453499926641900393817302796057826346484629106945253992756661211162974446341794031582786573997550872782642037889080146530365944568276604513277875573658842360442393646594568166516795633647836641639873665240658110359262087523918543272549704759679230505798896635204541693455956134719300490573504354711317114487906134933002398393995854258054076981489915493449562548003571439059716228673427103516562908344826960786382063647367439292911914034243114585029785692120838923308240164929857175347177549815182301598979932073842501531466461768001183775921720472550179046586649369051280130337127240666745233183373091413427167727266423524418432369405905410560484922364561827698718932910274934301983214751134415829546886863910214542158879556307439177225427399495655014202229003129745252175197549645088425417595980375958059024851332175094623610173995246237096860164171813208140042975562302541942328511165388779560870401447106290392514190411489417886385593984272475739251910523920544756431189102864579206553408277037502376473056821995564162140402162713547321009885639946868104490461292594714498393425596895827165722234626202362799698403869565710190035703780952979118780303351255288246556924533138209370726889317259468080521792253697448205768460031276179618434521292596820176051404676619196229606549983140664760000051516882951374515896409557576554461484355102010243508769607832750116495569977658628108379452961921223625359154345483345511221055492545855252009588656271959802849721621353529091530156212305459165451733647624914830675451778782197503474306136741875851829613512582447783215774514142441516444089079338609883649809258013250504870593604798262631407632954773999844474581724030049133068516726474832072795589310870155000316170066657663703622647857278260904906538741250203776754621838176428274417817257391206531275009584433930226237674874889425009436450889805786587037601807777368838413855372002282254159440337666637136938604892332070098001227840399861605776739606402785408200696078756969887400223283505625677379550559073479551536332786482292299854230178827199316283664596610857386665890648951170799759284688258569053309152699991611855987356875973514842482120448819747034638027386085270924656046178832665029914834003734445895419143801356495229164907365743386161067592074661663546675793841528719371759666320720362196364882458561334429242238351453012190375570224243962647027256137795474530473498159677908756689057900213384988753238870819242989335842726592584979245746056596639428306985246505762262292522622357262653790355906943177376564395882343667199967080394449933004271920975187181884875955918158345266526519165021561439099914303979877399967124756359682884775296779003426489400048148728596758445775023557290492745406389635257180877583825367382085223180765047231338940542173071005689676266119356132593918427627788922685501489733780574352962110808361814902564345067506791467427196939615736230306640842933602842989313155929752207481787023340966581493894628808997653357953414100725299646246528187409932878304818164697701852839304482719873652678693341227133423014405703831573948609934730689346984575913445305354062437716586017169117915560188754601241296240597848067195327517200423707051192933445859776238922307014121668021748353681164751561316164979605324948073040873025933305772822848223958234836547762157406098506363428891678817978491916081822615155918760886640478669848498864274533472600527200884362017655832263472370518730226126478996697448112944545390933045991414746066727469527271401610667430175624949788689171798553937536152684734533183364287763049427239697168052242782361627321047456623154427485229242198995745706222011093620806790176587232769202194874293095793117097403803836319907315128510251185773264830346815415946323273992438881496032760308333813946843308482785582836632735918047025516596554982169084050259477374981874762804266586326442521503348663137280554537705373416600769688442876522695037014378378403767953001117323193206798184584619396711750346745239802567778744350891431758511152725469030726623624205814684620302066984148111134525839851987428375384392166608673334791181160725678629563472041863087080101824627462260121905552446274937791321853614751163925700984505619351010776650794506250712200844127318933546703111669249003548778589631988156600818183300937683945295360073656871439518763487642474322120736301005981167485946588885708480701723270600046029879053637305172965138028121705589577957793937802155692070395716480440362708074224620567981575958647538307239054963215947859402266177713210489392178647890593737355575515579533149868778532525789809403115421359140412265583364113269575779126123764608336946348071398241217445779780747704541353600382904634367053946540083938995439828333122265502653693859277651068535474760403387980757986495773870808328412448858313332598255870795382369011463743299109986398926582405715966671175868520966342761974554616252580915140304709416661172199532615839860810358305353621036490411113936594159737990505245046839764027802281407244496434050624078639159691849247261672568923305538487222423628174606208150336932429544657735483353483090223265376872792928513865155276816416923039803276655225664686217777118914690533500254472035251859010664771673819211186633301495784883933902909059895938010331494718197667297043840167411385851484201477031918327202221696386119256617477522872741627435004498849642481393288099990998764737003459148458583188647664901554862006729930839139766749534791710822587949745295579373797261682196349792865148878549866496749957154845432233475602652274107287220665214237670440143367652281353842555590101308559390060217477544295623177014677870943615579491313450946921280911976205499969103810602331386170504687471049681437967214518100351816609538905173893402253664353787669327621960304309747108046391151049223512888527407623784128825435514230968854294288864926643879152410441994899786784536180129121645184802946173071574297170609040853270297494514398266946741671779764902577991634067854383652938147027818060646152896419241396689139392076976955723003432010653741511129637741874670193356063407021646930184739255471453236272074881180185308929388240681260480594609407772611161237553795442336905816209991353250903302012086835290819131207635842767701123461051231477878530440788284954971220370131895270696823408090456227640171058557372407133232525487599828336875059630283372799344664034501703482583017412318569579681636043279030012599130932194271065778781442404683023041091364693518102055742009457786851189333326007163866446880813869690111138274636307903123657189280882317461498174336945256706384101935174825622493804386350366472822444192904547571105654659080729883115813609218002245046799008184429646084404507552183193747142146107616709052717359262736283920299111588330346930108714670038903578904918463338595841260727014085004452381027186878159751649664404190564168673306600131786993673685553489262603390747900452649402204832961599920068071577780209927942244361932742652167674016112261349837091443756019587804493109661672516607775267578673854810394995331960183526844370111945862755228881627326356465759219352712162820024986674752691743274539073491949556535497320871237515249314595354320130108086235192937154242917999594413822737675161654320336116568092571577281738658661059908725852707684645827617625283529500966975901579618445334845672244743189975621197994672629372678416424072779460485502220832726639869431323631746597922085420943896520509797458832306922083409328421445553248339970909893556948751179672292224963839733285735170185941811918638335184868347416035630309737248652781481117305344680443670450192964791011926119926368283083306825982240418531011083132203571225068498309884642848903935134726361851349434981653956236734176339828395231354836480642444291416345279698721854100150918840785366626777883393309329010965117478223539381293867065035383982807915015656330534188197342469627443203604872687757407399281656931945151606878747575391395397517214234407844391121753883022730851665009786403028310005906303996691662214336059187580194373148201497824469589339818140139601187067293542606161208392450683758299531513135678948227222423374793124699510165412530641987754038393411005402208949230177595125052965894725651605655177190721989577616812917054296571277344420303379366453342162978738535608283032512196349275467836624585013670644207559266868965095520143631646070643191542696947488381925395364795125420653054316678694962413514081342971707883150171475634799391425603382207029568469712970164944287130307777882521819116210083895520276358669784587901361104805256086418107491390175215169293941266086097769855425694132289854938626004020111373918816457074983562090510208507672398458363883756966807840151201711218775313819216360551344093299669337726478164491486697749378649338774301274476776276953939773031081309614825720281489668147474220707099997045484958675059350638778806201812624758879033655817911995052145161745743853180321738969559990161644770431428530883346449581764025871343228317767109533748669031774375906256821666634834266555883706844948582084757536729294140164141058809600952170981572623478791278714394720062907546294314808915560322011323771383651980372467056500734491301219239943405101026045111552618767152465407472339337218900948145010705057162065038888733379963912748972179855374175846792394978468548590050711593868802152491585803237437418213162994905099425890027194652314318641245422084323858218089474738266519540762388696076424299959050584022758359778234182133527937794277167261684939143330602928628550348979007209633040971818733502103788776494143278677464305134875783919959275041810482886294808029219102403610101988710853451054513805841609670142125278898089245940124523232700242736512401694073778934314357352954289897260226590718631872473261466582653028875707993966609479502073552086731125148111759212855488178509445452648220991152550202570191494348064871390557359334776847187326244335732571707763159011840217346884360373840129139620047006354923000487387669873569991202088764428596878116371120402733875933274778740062198974963305896571114099925832216804212214607388729367673557101637840978457929937210288448475971076872094697404518071580730441198635355275460058172674045364346561928402934423115696972993529268418939104486781793635308591362611283417975972863331985720973726342093122217636560156394520468631758580445661910802881665587460638324726700894983971595930212319333878575755116566877460425763957287177295118307898833082788510744454405958601461637628599868389022787737366563618721711022380629767813318637581119501817388174970791510091855474909872168056458088579967086707345915695927874979440900792023401961031818840398474858716410058224742937446973592324420572322478570519011074543520459016835306959924757907264512825951626483108139799327133024368801660268873481887728434351142911349854090733589475440505925202272897505375848122695657414028843750110640679033873051476346617201179080450798942118012826399758566703530696446026748727836722438860337018083250035109063821947274555875513189218278356598773960114287403368618504549786582248604180950666540258248380610944980669850826206157417145390486090714806334223028886484576471201407197968696107876174256940756083345486291806794563577730951992625988034085842639123918138412911819371595019123469754667156446285405237370459312747020137359906173178181491885932545793292662469079260196202968571538339150607099195894495741325766356022572319187899523511756836174529295118558224847686762159969643324581735186240983383417890891286440890524366661614858483287775337076963161798914562988369852396525683205953024087133413058458981040418309433213379229777962600465449787274681130550800212848645106087009994255638141445564506672883680314689093353184666824007368684513214836443462258235328087442990542152275698055843168599086191648184514519307889909610976692199528221208751705866799431571812920351626171344282624989509946794179634472725787006014511981571231390095919292681827898496382158965841552529538492426587643280279573089936556723399524038063553790401754619579287279520482803592738688990904833965680940803537642958789022348907382633207375378100219852032913413638184728446291570909547301070454517879145041040381121727801838639676688440560819768643112204673561224362380839536026142493064277036949106666928743682869111257199273889463433078099266801539934441145843253056302003868629379564252362527000393830263657609177009294467066270458841347158412273973338524671069599758107715164233090024940037503651599838293777460859053326317304862321292550925102441739220832996851327453264330721799111145085888997793855406942668836464705239498761335125397977841479799267914111884688739027343600900632129787351699347714921684076855223574739973532374541913755481911515972669467690436631616234080026946250464767689755065672685773356224579587603322650830995439600859648689937943611113685826290958376806219758651883751713152007791649289016649969817509096001973424923004721045834753559545121912227138867482227363027153608046484714996953503611490134800941103015860766203753812446582431577259183306941691438684209765551984614963492643543162177927450821086114385289820760443213062705800923718399007065478287108258926516521428105216944245524792586628864062898076462209641692094469917363700421482871035087829212542002243428064937057348629936721391053103271545693233689240307417210334788934235735350129284046495792117860090206083119074662198112297060518061810451228989296102399382968330101782235638743198736620380218735749425424175554578470337812509595279359882684601819071853146581716165697208577584744222810908143058991483381069391429963447651408683875778717289823007497773831465936082846727809224809384368265996527776379286287357782801639707227546881975328256441069656023549243326754713885489065459551275063540397462898241338249278705183479747676609156283099361190800670693314003449285890342262663585690907802716059122263068517555527182947379569943749275655765475765304506754169084946344324451746188396378082334126858274112746758094124589365695141245442613837976891941818730965995528664042193909542849535981330033540744399881093162378666877391400850251128685871912829799596354383490383901941977885135913333859493269990260926771578267634014439666391049946924771997951793581608043202432897821643452473664449242572894330451261390664411191983489632755250512044905781365059804810445896741569780620527669173527070444327810134136041177875542976236822148724854484134872843024397672084558382033153081765812037641967912650950274734085624902998958592194305013838065955200541080643589720371251105462260476030708921328965020884816231484785208321165235621693678097228772165980120781841541779171725910724271310847096605598366634492274814257449393326739800038047617002125311806725121203933860189149886979286340652102556634466179792853081428359369040006537663418642548779625815608804070806219454977268463647962122090908696122112639349693954331765759451664758099954596177216697039039364874880094270396134614834433165725532752431716750762505524586578710332768893479628450483291009482399893294867033879371696113414126489222492739781230496165965114798519236805129594580894967222873160624758856319345006237605051594859970043781257158011262116898874699979851088127464553779809285146028132341998524266029801016626532663825967628070435381267177833794024504616978165248687594616046217597877162440416470885327976734665807191614672202868050721716747765496229577305793593397606666311335680043786094890215836985556155179847131015921308083597056394485921757696038294667897989753821112212319443202550655764116294971068826096678438965826247798136232792525067172698201488219238340099209627273610638761894786437098960876767872834229961947812398948446517309617950984408754374364037966954811957166898562597072498504674178075119592132090351042351152983559568448831001795687584592996796127215683955634743628832681294682155263420167810916004345724480519492576671099251403366139309888235666840331888243168036709874089728250033640716691332298647667876522916909431037788381540983716378811821950782770394594621702979339956934434755089541559120212947149502208236894873643131228974990177676094335541226494008329502590247227174201103173282356844476432317829222444795338458551597564660243457099258138896165655499631614454904394972020670058773307071453770445776655255496702811901748843708741722858947379650927046113367261311409549332586939958696279122277090759890933710171169062632091296299094521764162598948200373033022856252822782117937205682069206986610306331930413563509510612197363487143904727788276547210276229473762693739575799076633114467857759485965636403471973252884755844337268165207627097530306187821275392231151078243759028812958468895503504837571340412301751840586442242476976184423856115031095101596946586747952725891108527469510086504780310403486216892006088257222448259613751558612760418890959493450877448267734667921562098395514211881385843531606238341518109172647480126422503116417642722246056329040806587113960147398853139418857188065108543483302322619440103293029189140744555682141102592749585786557180905269165828939893167711823161308474349184125415141494053739288172441464303913854875968597823631665744515815402890550470059161407538757945902114839309335698077335411018259810782329901547719497039537328279607353921436672661137023902729577393069915997750707356856836253897443922062592627204478508187048495493061984722478292862121756497467454316880721573954170710255461733829159033924140044255716703443279127610194417837080406076784913470989158265639937636013589811844069830832084660135554821637479859859117640975946149571236362652156853536467964052055620089288870106291107348429609719907337980728662361745264123983596266730130477695970254078778892457351914708664202270910377235871881004855143362669961151032905274453058391826877641621465231467967935728391582241886083885253173152102910257514803144493537547330046662339165461326343381825673139177374521141149172328712482243472663290571213911697197627559455011686898545219219045040834321523753149941777401862785461701852199083069022637780940036734461317453148753443989271885621411118130969539476098141373804617176207799884980077769039889005261444345154934975931148035450843339219104324791574374611030940531494209772150453485077021843241635710405659672216086067608126405791534986790509266486192660817501938596731428221824454500505913493016219014235311461997452005746737311154515173854341231639281272475846156103726255111785596014392842932476626482069602852335226915050473001402316168887373557752759699857897535180995671688528998857078753739929126492185723120693238727878140885660843615336565535791740873298222680023473131681006541861934103645574655110700939743844244209510340554972621008549126964731499279286165273462538706046507702485139582677615405837634242154941590608687929676118050296610156822123751856096250338536033123199896539917725193972358771185582263881798243674735502584217633673388042245913736525981118050660401787971044669660996387748967404535882822724417645167998089631480057665549788408810046246726280803930370090539861173720758508809827109686256403319593144349694350363844652869065830537715755332246580595322127164026172679849268020360779773133160249421488063084657855988079559085823449386145292612697478645564395799206251616739779686948280678180558583143208354556973583155458740088710226335347218900108787368712676507013679521632163259474302305755264928213512890892063200942454496823869602750628429704430097543527293318959909302143780415394451942192740832677300150053982473632905114961360152071387068512528433990789181498193835895997725498408221341948600354182952075710213903853108720676713826559489462597156705036320059212267237415998469902277637302326306554643296596878787684461912089729079158041339976665731167446158772289170299364382427220787177636699785772457211410840533243966257873471765192436586313944025710805479099258635749533028305809843016221565863606164908940704677035691873627592087128533234984249355117678993106942705329046172069982513492262312444104215011690411096997177672553727775869149491568265553133330899258220592077435480504348111876808936927386450247189212536154538670256210851331594059546957217656081115340789720889078448884338608467781972184353029446994551483441410341442336951392829673988154725919197381639134901049260690089673644479960539355416520218195652521992812359615266521684430446065690182953952151273273216569026873946790103440256257299441059123726013612642506546112483396916302488405585355384148855621074046454462638880973207355027566900119283801406509037531114566720025889354920440946392822701390671302579873951182635920630118053464246016024963407683774666561256715451713376229405867649022809759094568906837810525836350928732737765951099027137144974525172585778782475592160663969080739083937381604035905702246571657290240228630421527585155188256457082761541473412465279093749629577200910616651739013467068032637896133424938057198419008466163706697066110751603378547644655751471878946894058885994023448072250958379442128497635673103768190338160815169959718259226735095675112788611313341874634126303133269376841617884760337944113372794786598485826819126483192960337749066038781039114394996291903318860892677341143292336484764046828512076722097768007013533367867027157296256559946738155443534839346756044725802867554066404321428299092493691255413178044188415033140036504382193798641824041382992510563504667641819491151248875814549095345705431377869335617628158786686897875546937621424982070136335709839694023518655785013811210305966163100566820538472089248160323382219389553864570184712251532603428385611224443628431076667733831649046712456476289266090323746109774040011914320070560816375759332247428798978965661271372060668601963326608887218688516302107644295255112624724692780717212318325636873307779723626915248223657448208328900063031888317500341529158268738779093656133080025206657807270763601675573866281862592111678794056961639932019043944464759348064618727784779588311570300702199404486578878937445642463145314616319966606436510080127432251772033274887711810684712943647642061352149371085198454017683932394114222377847846253898309835735689290092979379384947503677045981492235477410402793945020295160700375868475036818127575066962271625146070557958128706324004982677406354154570900387127059346009699437376988324445074621630564716980216951108153318233188819390733537616525597255566920268955981591562569113957716282399083152256218720330453429635707409025276757049900371899623721731827321791931808926357466945478365541848214202115489513376463402049091568315267895043349461337645933534096269626864731981468277634122783418685692325977422782169493117360873102554114165515883842704413483557730998576735927773816573208862825053798958179609243415295099899175352977506614099440104027950473926295312092930929214895295403454367868714769787929007642412944031027800974850568076413370008448386264999464650786327432467069361978397190679888013284595993761715641447457056585608022965088556339818629608981326908090055405710099491566904741769592220294924110324206638993572042853249776847117807757406759739803134375654893837420516795060676758666893080368275265360020539791992400182142364550163717396682305290412184195761150119171831441252264486519965604842142648197622311756032494792545822155380638581549868852736668821876156293954041642193790187349815711493620900465597076815276130307078949289832295604015306357834314059504259206778570579540881318966770108642885121211741274223430777694885147586851094128256344134979932270570708748353846310617906147906498378529602650681728052229755907213904550833221480657548589773945228348042675479559593066545147039889723985389122112753862634404538287111446764808008863356602190796447248930368611799780989535053497770089872650027852919573573766831209968471701059950693354333440676781743914115342792137203511006028988101859565520088532583031259634041231375930376756508819408746456408590944086293080806336271721379423559643861550169315789060355112034606113859012474565712659169875206906094095423555906120098668829050682006371290799885953002782272926360310718138576787594280571573868009335688843921643471984890521282711461171499246021901143367395854705434612591857319747646343865594633147307917421144635654088967712445769813494964020524073696256108524987925607531053502699248049352991801389172779656210618770628405991044852789141580898485052146264640158867558781773028113337678148531269133431087855962503870114255215964512151849443864396979398352534678625208940901828152153931537729970865562281560058674370307000758527086529839475359895663428799004737472847684550014930073668156608406767956475712694460830217746670809198920746450320258316773245330359191963256216276992610419120561350037514240745936844917477521064171295992499717348415967248835679034029804113505767899833848137257559347415674395625280164727950287671358947536320817033725710770429909639857658362573614129391151237336434305598666467402267497543706118187651288405358982879126615896124829935671324543788828703353373191950472851525703918755820403101997216978398752796068000648359861168429788972435870017619174655071352568614177618010134879639295180304190714387533102128635043499774815446517274321322092807241179562888086829743668985627826696711211120277263455178065493663762336472861738218416338213622228435330678833148428838632889863820256925753201181827910590319744008687207025364897506787970049184981377792859794476126796447545651989134293528097227139840928164481058442281901688941421338660617615306406717644331474430522418750603434858010110613832696389485642599283316746348077977215472362572710546736071005086619424968113227413519916764262902241923412858901545542738731356095954726851859631150696661286535803026673774762527524014326777507924390639086872292482709015324447137386118370081032439790181308386728755864282448332314230168680824566469308952666587396614708540662309663297636778902391353256705413872775950390407723186979545545613076165208433534427046144268171055406780136690850598190074011970327217410691246744696501624436287476415013924674429603411176222075860155503510240767442639268172811999391333016409806359328521319270170411397265969501916210634640876131597886827063564231549199663695162499628290561434763315629240753641332880778077931100918248999186627898974804051587937844784533635263895530719691240942623337125614348659953049558888606908707808949953962308302586714023261553808784904629947196886009791498795337898054358008729377940821258557851974694098605323673024800079033369158512194186931414930572586431290196122380443930520527270525217112449042993278797771914886031221270141459020679217903890587917095550318136832565526971951013069793904441494602575798980605219172640814625711881272480913293099555695593718737417086121040417076629434961391752455953440423963003977534306445208255585600899768245638574016961183152789351712771989925029447462219260661383068558405539101018919299474714106181564878821841052523401341619190290659833874037071118521944474182132787787726018138548946616591033057963898187506462884728759033806440935315182752719649348118181103170196121010246177585144694662174535501406597957053088437228510831068754384821158789232724256471743058883969216312637748980278947688567788215124396838227347305011624609203001247479386849864900210065591692677508819936774874923487449443616185034221267605241677365491379794003215679429356188880603065194931503729555298928891023729344899591591401003663047885795360285870019829122318707190828518563418740495299851972925233126288400521618539123642505306922781366634730895373348441949852448585207078653360335128286090856197634026961744362668334380458277413092427081761062383209063491477081667654614180133724665115341572845971164048445626227469444983281631306712647191876742094854479600288010702204205843585129446465550926489834934289581648962341562165565419679053171093555148570340098784064312789704267156824806204805341412626834839482285734800975066110350739494210070455999115415091539011422592540125838118287862457484594233467162640103813361408783494377708191190374604721981094069076122646178645648835899027393254661559419079205809740809986248308411173393961175954130034353994991249199700031824307188734446055596520788131874685178468680182485949961128546120392435483082038746757243213513058704552275648952289958046572264717558834921141826509560717993545621752134767217254843492909318149582370085317505975854004102755394921689856442244883356325697425390984829476914070000906978164067356999583797021283439266524626129064602137017938845416836225270658611562605025702048454699631778694326114862206289269269385515402703331607427107470653689232232773078626914255720157091123492991768555600982810865351736657332367651087015334365882995746629163351423303139253942978453519667455697077748846111200446401838740654030191442665922022745595137073279569342218210935581603905210102771448702541381531235650093916927494896048775065125732294659558431917968430130510350357139763822917932338068067546372790917674712448482702017315804845763390455641734330452693880998234747290526308545200065082176513958419574594829519822690183989763853903924463529633133484117924365799346028755140870115142546062659385010195217095379936194612926305107092474159105964975142696314590859900047778459419843626102316864281664998453152864747888444857538760039457108893138793982934331322827750868660630360355244141301479509227471355933023569198907128991453362127196829665614901423492837231618595169446522777327194537949216082891497101021839425153787848339620889420500236664846393917062481155471670648990138774483350236511261082979243066968622343954575287646513909663381598988421534623910798175453028646326515406899638081720303228665752329175387741465290670198817913241768401126399558489316942120217270994066326328946421122208123931248434365061764505956813613777150628209823032130899286975020645858406169115355502947095274218015644088393822519858609760000544871484035932468807915873701055445191172810836951091893492361509083075046374365966987054695489416993996841402071763206922238399819649982524826411862193425369406619887813765170037205980976044907771387693315489787930459709348345997350906441769500370908278822780981472206599499225748529820019734093834608411478493582663073314508035145649061956927112915797224627740987786130675700684822512708392126555899715160298803335515458075166079547610807743726606517647822096739915288300636954676106286580828868778121347335577298937724391958609910992215992670963158900444150190829623958254346010013822178552619888539367443747711907881572292584874453809147362871755862354493090193500451734045659224639000790663376068951369071177440890561413774606651771241238391024552076732191438627961842978553995873411432408177921716063399212962616650506533509058243294396232302330100597634744468863799962875273435589453766860642808222928730114667959487827295984121206956961982284234744788118479537670541213961082702366088965351176807673751470625379697167827733048187385212226001889496438513066809828028244840144272585350757163847770306177230257987261712002729311185337942754018583773332296817653793750740941771477552442247837633349983331814412649866585007564913370681553700740299407400202565217010287610066508827103015778195362803124194364193395359757007183358403915318825613083754276542094747645351027177474035616101854919771494788572794936954675043302274113790373821082753254316869780028912548720983419875764884644158197896520251350345110976497288886821725714659562089306763941057798252982706104845930052547322982705124354805838430634899616169072953653787644286181603755893965852457277231619819971488274919468345238162958473311253147227919726371037691608724498294216053160744012364593644023746689724516566910563689634982787370956865017800111620130858105358121124347831814180899775950713578514869920955188264862155748808385338279135809951883964808754664406724193013664394299906782674562279018227714809236753081099547686117686373718438648448003727918579218443065667111462315371720101854666619811106481493092276686746400623960024690244589276706255019582814243848581624243680324326160871464893796053572675530622678557889644836637956615628788181792701580007132801850893726588395877379181209470255624171324658871543593054376245238043024794761646311107039913218053286053127812158969859846020512100147657161287356675210762858517430962831825692634575786447864718306815320273940587471403799244281791251854804682391977834913887072932717543238764728887872057036192468792428458418123761117861805386291291587587945675000659309866691089578631912188798104813498061018288674926746246786332181247860056830843649620022891722392086639768415688897623454470074192484017748118942155005434539058027246909522188178391077618950978595781360109466661388179081938891820290916097463699071176497843758477813967255268895799096457174708144973552739286368800630676621751571505899361914008438772799071107507205004596432233370146489925704688783144727941302243009643388455203286788196859617956981279073288433133802705954051581229699433100491486542925718628747567473905081127773705689612025758372678157253790253967615363116723210499592264758227140209143795714893572829794516975373668426609201952048024925074523241879141110651624779264608848241697297199020365220873764086674820794708392226962609926715521243710102124533991368605156224490728154472963964463936800269352851568292512659485126094643737029246925547133852350424101373804519780025082949664295336747601065924277003853409634345118974793480054505149664868691329683627925802930661531695351872438906961740421768087194285668137510323068714480139749118764646322256862842380431726408359435360420703560951997088348211525343178520346882156049728533708667493576044158679287698782260934726355421264450204057803836614648167107387895548952386004124631948319504239121891112504907497292995694998834419132089898895689857331898139869097899890533484071823287289702617518305725983490547861331901715781843213245469112073236911279984289759493487791315592734699494791013343921532040563377695071464215241588286274032114128922008368413457800533730840371698613435699832860619938654172778946040334877465908514648967641386186667594740589620483387100249437298144646057982922656610758390317836818357271291251658867016466192444500627123828278042121930913162459871064043389352509772039269258464839685974340793869520195663737061769875861825994813559426474140181890784942339678075619434092477911388721437081725540388224767058183876856138437069759255222444329581313464709318203261954848686551714832221805251840175599673176790598826920330560807403812486415818392904576072684749013509350411481709457592602876642129744840767822219742557428712777172627772119365303110843701980113906997583597080446762212108798893370317192283683477393952497582328461230156968654585643234536687224850468457646405252777052568313560295809132227757091703792743322590208362131036950224555510999795526420543220905329140752851373466303787815617519943885621660497702910942209237634240889763454378674789235436561357573285151404004453794326728305818710591590852742213384138600132451689920057604474532525007967432951902376426375693212844828752259758923068464936165834278876142165571453843146736275571171368109832859084157141146124252273212464653123339815837676309595092282502883973628618910542627519100871039749724842398837532851497710724721181543151828362216342763588782305989887695647503134894885568123887021661357230264211928103096511365976020489201074713655037356690246452784375233949884337241234827147200828928426458381569574789378404398698292905687489174942303435466705923611227085536205628328247572525565624580276309001788771774103843968831233223324335788148449439422118654136401185990341203636268667108604467818870584775667708150568896567963145087049027745910089974113270129287892440353439998836799299197524425587067773792739994958507453130765392634156527222549630341747810668941724602574336196627974179249151953742883225281116480255612565683398265904451760458258836778232399385089840366611557848629987641805079455601828158366292274862452794656614347323719825189196166550172370754560844468469093520639003486591585709338267099003082487447750085779607447050108633711089108864563307900846958463264568892168726283364742347009815170916806214761494940266708041122998877835444912219826969418059629037256936695960968190318749838139120550280841955277424434957947041696020663415416822923974992233367612424561060255021128627913165298293127015454682612032527700460628117512111065071220577447526948033281047602811384191810196945395167597630155062601810251104646937782236926128643191615715380577919069738711633602876737149164356121891718171163685306349325850005555814202171943153569187990714776009895118922574646197732658662066620274557473102200319342137408476977362677093707941388018142419551636928113089226318222664947688071055522620748205599702975744598635636987710509372866573349250882045437281303067610713505161591566521488578661881455023867523341876810958912693788126087130195073375769614654917410107088656272315360070349995446846160884586400476645691301194744270903401113350189290371062044811420926805433800090304533887888298333215420968923485699563742527767801121544166065958383120394539862423990701115086924437810774390458467282912363484997169211862305708137958272492424821495981485454126540867131715423910130092141351533083852724100874296727625044938011421565703211443289883922652606506748134604772573798201652704707440207046799821842715414031030676930239363485449584819018209965902353522619882785403356376841927398252630968323087102888771324439957851258164961042641861611371598719088211954312082064026386128677444395796669367502456095917028585525111211379151761633505636045198237574284231329697307064299024305587726723076659859067326123098689770049118411316226233884192384984495454476390506649532771181243548505046548286856165071155090343252865862318608006563512897924407789960332457957506423485173232475470862971102780439948487038944704914029036461704529812058837910366911813587152661117077976207755059395786048568211892079018503157961239332690947012533490425734455576664203795293995245059237601596259106198010077306014360061428654564661387654000695174987969276669013157609865126475771263491707360535133233257745954450125559979502468642224168098979359803575943536341058524159154254697681393726416139835514677167767781605780214097434316023716466965536697430020962616636678328432515861636413525578423851169198172288418776232196261420515019619959400331995307314943361556112920216633493608990910736819095437956431755636382322739553772256486514589135100928147579376670813768851199606763841241493944708784556045899373688349200992654975485413912204425465677032722789262821655175170894914321745873042596320397577030353077503813868208850851902584498431460864837205821513911966622212201507992453945463878474389605283793948809583779676372034015435458900421102873290989658482614040109324927897325744063298964706506523278641331760010095690211244975824056551604533686623870569962085256285548221951122065660352654116311896326477887030373930139451602148176309562020611885109410351531220688763084180830482978357765546548685523717987969265199615110625332869362235852525918222483035816737664830082255585401977410556263651410210856180911936454379798633413283737409549880914381034550004651510822875810394241104458743391211053632158125092172220047349388095573268340087259579751897097116120514844724461079792456568765855888394820917747801905147989115446270770799173147697578922984120775418997232307594787546224104451833359961700435887506113461336975410887288605134214090985496583078277720355683039376230546959556331397375650770065717870871160885627065303714183336429791020263862445054334316466714509363275535067564568522760284122078213445462446620320362470187846443398613990332400767235245925912161295495617473040311160466851872866930600644914116270837116755272777087950309084173903540228447877654176813293942778266354910537004031535672857120496157662685472395450294597394975594047111591405707944258888810259358554007758378405640039635013390091475525964120610759990243640211551787955219355276690163148144824664060457152984662543543559287909057304439536946240877157079992249110647072047046755609945304395296900635298383453701875446618517385117194169367437208629443386345650699742283942385224327338649435019478970472670176126385745973209973335240069497170576984555237824641998105910686449215343442003881387955558730364887862240524317100711862313375640386261052527036866277168259104628158882376500978574099851132200378310068546684501197688062543509605909399802257544478179015491305503764735321527355586462174679918007883290941503902369746183209430060553980920645573945560705540408638522223466746803792914478749000351419444250434516206349114515896684424084625572300666161013751709949101715611349729938649143699126000887962823851881253000941091773692817109029159463902768854394671929686909992086298883689037018323846150405620106791033393445119492760907776254326871497383570947630052391735102478621370679717095321844771119701517273827957720176243787639526145880738632467053556594070109250442084045953033552410182209027630125895438045080661058986634760120238918738535119878043022898218140756142454017102500985231704578004737839738179442908272498871253590232032442555061209907932068091373445286006777816298564013895823789189816371966893933535972817631422110396471235662803259035255935775457444868835612750985505946922012260661104321797180555805793166805295150823394001321930409848978329017453195799774612879548250318230726419577969772849254666380080587088178641407450211247558171809902581368884719805890313388322052934486541515679996573908375265153985892060419850022744109066528067399496700991024459398370871453068215202850451475477936387617260632501441162026023179570621508745155965789541357730966176585116532588900530664374430604464890735632510731575144535304403529022236907187281025053496877846929280350969326012412071773915177434852863074375876675698018416603522847768453632236539490949700346419805657080434695762757091895575309362890287754910061530721970520498825293632692826663472265268294530106953578791364564475021008794091574308080320536504492682978443518942857422844732572406185821955256452184842161026660345876471854644506512703897901818472246937908671740963239939023142072435306201216192440648677103066564369177642957093488659127206592487728236993834068271684469118099351690198120027778588272673759505668549704424272862348957985282218481993403939383725342122324218763037382882922795761715878457491536830663364884245504355150348215530773511358222639237979387696335444214035494345406877885496129543822779586395324927137905599795294328129785542194744297209270944244737879777505031207970115021625878635270473431091747183151733456330085178829792737096729663111225192276500395368944670136171085998376055708023579034901494484984992147947161372459841771978536616552027782584208176974489424381042545734453824829276822847322277972373771660144785356013805052017239839376338550228578266568038637935602009378719423878937154449103538266613952138449642813407827747522901503966980688607597871646165397999946206048219794369742049082510271531200794903141126745996696763755475102617831432860703942630687987469544896927791496847465212097891278802982378944625121979995372315926362434733273790087658195533206844293196907133960794932181290781487241459132275504038240616978170686433376001221249031414322242395820073179385324967907012738169224034178252116918665148510020142438622953710813483362017007284861741238189643431872592587653142862397732845819636001288694154194915002476073017301567276615253932409011714957258273575398982682675051181854333337880619847845853782481204719675464530895987543199924927063830249144501589040533329311432813083560116726855266408526553204910816870854391491143850778108829718981256487823925624546516008291684901696430066730188357114693121031639332158903242564308625288042385355821368313572528949586779959544335434883373777853118967377918598699584400703166439613259576257478997481211804853615972220204836109256211347951752212032156833542215327919158343106110698885765937046855267273122463445914722614527073897840913758865299279740267179582288722672906287897860932847457915736265019992721753348413213326823451791713573080609793125336877640011187595240848181638221563230464347130994683178500258932451324919888947035597522817023293266459752966892289210272751838551155401486601273958645673283775165343299276002929321485071661945103302755402502862713293545322197918444329464356096213478171269979881935616516022258661338244074815400775197685923640765975151560321128898775638349827643533251759417580342682703920337166406507486498432292583175434254234488900043947693584301884377061760257023775842819532057942564553682630562665433009907948273782846701366514986460747731377400424828168119148681934767432192344270202871934773328601639310965462586699859693009241890862496888000831736942322987994264288243907576818969429201337572874987170736722193479067626663427947577477588555557210335537191643206758836654678528993062982169239977294337621788359886927485183513728442505337901503776148478919673487304181993782596922813345911766214253583738178955646617873095963314317459092734069359302887707800223495942407398070194614118002732023813081010120479114376466824445642388950246008832613360479738300976243942205724854554426274497639751002700747462276000707576334276063240643445452406513219304161482137041345942104446400852924563394179330609378264633991546139251920151249406150432502942466044314609370713202395767668182760617884758069079874794828005396347852095378488215043174352458556354349431972775685119497086965722196146963109363326954908401063786740611859712872291950108567243185908238256279504109889632670018001228568566447500172371678217429635904084232893626038165335523619987137708270800565835871143817848046335493844641996667215237172968091326517652797634738097773955980152398446005308206275479149773137908889243724645283585441900671959533842377080988554033716865111113268113273323077598800602908565746117583114123343733782327337245568739213217993049071762088478571233986091510992298226486314423309433933397683248120011486712117254333692361680000585798742127867563598088291031192744744142399683861491286797300317736267440780606318019077061999472989799676352203316409483607249474680721369720090329815852640071669826725374759755885957875432210674079943850122205565549664494889694388389587937579097611662271723910007666281425592835523985376318494231393309288472069443184764174315107178402961745719442315862391256390358448272273644140523424506158116996914003642246330726946866737253198572742629619881717627691583597244566913911452411116519852971502107021746029438151962587474583813601816952831365979781061726393315930473745019296696281475025326379534779827188697895196779621378356142966468533857289427319641343741027267126912787381224519083984237945821057009250719370406661231674095184459767100917291510203717925704124071926155812226177034459857825480933300563098045176952839141689669392065891335607113825149991460521669650485867930202137140601193835519748739854981260632093465659897555022170917266138743893133567886160204657643743858639731793819446020590378852137499337124319608369146864818758395096786360211653980735068244298760375420464212369583458438798846649367966803948163003928143519946947241916971912407948121628729768266740835773198543464209662743572775011323302144837471851266915976170965709952766244660731919840783840030257546773072656449156939071968615851128593169141068420768191259347416366302197172952230521440556756615410066928202116362600099418124480984012434292087057836245532141245592057923892644118645961442356075911435636021076538022983934896491183298928833566400036999436298979581688842442242156704332886697599247513513768258254849177202762113760538998651033233135788089913416589347578365289532615940397335749742844890996144275235071377747842534893734860481890680848912552111075378607473809454653678974923863454232853287687666766448974314740982495116147669412838321250978598234103411834531817739279542548518139723890672329156810653160246398036661892328223379909468203956814096862086327320357938590406619372315031311239794498521346183834474914686650645578228464879711789513502045538867065759428754463651116492005478717955726334576454572973497860655317470181342950411184302461863769409889844079995337892821970100493004394762788972118317713200250410400239399874865077804920606225545527554593019272155705795200834139360905357830271061940925987903766180200354106794019713166513229317520816252451870543834877152548146234693812592102977957064558452952178687940938524261321405961323267668791727592020690825605496103694893399771987795070513733330390234222602439697478985052377579927316183194461361572265287715414972852677241434909679137449232083210507556381412131568988384745478413468578714349572779573223966116688124501192537176733841602696008552361550862398710896937440671341354366842808458142335536159059412599850305600171112079819487139097919642270692062166569312650032919715747229153578303587820191375267331809669466196151212569699626807372477053138360161891603378393389556773933339280288162518927473665184855458482974550594688346095352715735529656670113418158834428645365845922105918424729245621847651456418362400893548823012233161059602616172145050816394977803916986363925413476844924867250553618970579454476727818251858753468742635564488597176318318118556241452469492826940119410516090108647927669257373106053270339982804340923644152409000613631815682435016541471222421922113174093832443322573792161778080448592729580752448174125797449289741884116711157421536482102535335582693832047877819775011614848905233251476242747909662385762821509944167193178655361135131207813459490192213106599365414114936774531849714021577121583041504540711871180513573258977108273016306638006269501279960942556679475949321541287030498998231050928107138089366977738584344495884758813131350017335337534612030463688261847609026419960484734053881099980677909715349690404809841909082817680553483058614985471112420836744460463100967753793164559762365199635216000035088777091146758958788774999354177744759524869547605800070580502378654746548717780033413973585750212790573164504618997234402290910759737628305905535066319882580256128943190448003739218432642381890235990931784276972690467470496862947585676837146148169927197736684934928917157354915000255983729385496264786595779203314218990025295325168885121863926151048882034488251028987098973386847234227314875272883988526271671012532675601673469421195390900746033580294820489256052848382958431648448570584801018810836953370061757291237565712089619688834636233186292013377651997276400060783082095931043525240530031982063249537544947104712631354952486486320165471070334618040152367336179151777217562592119828058577130331247755947046110654033911226464572024577977638053089881848259847147953627875617062730697251053484301524109124734840932181110430599727093780447870981104655871515686851349048350719368562253501820908640941242357809897601238173208353291076822131214906559088255821491690704972921120210695590492130226071016617396859078071864351581868770237278564681573467819083101443800196047172521509608723649688347824272902947709749448657003987955627149373465076268392266489098210556640483950544119595627150060318546728451078060550926009844001326976616568073236559607150951760971836225724958744638139051494482110680788775978588090517443519815892075481768036944481995969860672483975535239387696271458188473051108546371227488838406467521595140326464300862470763681044770080247184364810785805805733633052052602529647676361629664142778029902643678265958505655243092549018765070011616700026848801725209736880040988398991101803345247391015529712375906252929044719443665661137232780368506775634842149594809516243705992001442219738148488027725902445313150683750764693103182614100371665247422599305205309432603546563571702530527444011551082123886400455179641653254238866810705061574173692324876838405370982828608611806527467469733668741526594518662824365780407986040845713293831610311273483130714574394871278699966296380750032192939039283252132171679692982637370628140576362562796901809485163610020563864278107991488024635232453492492565634538607616631597787863656764946898505259289818339975403889084906508255956469976483550041157641005984190306533383315999904672960165730533865224296566240427939311268534109020392961329345409473716010961476660103602386374329475288413631396481332944555146924247454934699869448744571355480305312653424008499817324276480109034733969716992824012212228439557542338200107924472107090247134726380844808823259331553217276613399678074569419034498778020568672836699125559899326561960136531513800037700213117948613218292177742171128461130894227300946277836007568660058858110357986612041926819653553231122785555886667551868021051601877512544515506300273748790877551236565874177917722557502807201714532708380833340477716375720422210441452710928019244134753051840958479967311543449483490488774857756506700759985983010764649276744577705604966648531282526746497340495605172503940800908291825729691268399197834937607206681312732194685502752173351887670936635728812531128861534891255118418622712301376963623464139144452593845069426066507455043125539822063029595442875005359499689086476797199316699955556460524944553228684284774893965211717654513665217704456150895198963213620044545088341505253023214019640095160404839675966351325786717981562925906936639837494858807909525126053047189698903110648473499461842914276438662592121230057729805414163944340412334172324359908717292978884411247922733220925432634681433424161440573738268012482347985499000563638455594508203945164939408542718978614673150759142475014107985883564116875610115751023821836244028454515715952152845517621703020012334660923175865673299064557554086554639656724526587509788242444550805218538533288429935623218751449041845827638710545924224582571493550269235843554569169438743475554287792441112644716575511736141978134231289739754932224560006465945173194552042725211173633524970882291972564538393015988312848215186157948382536317798053125780795147269142706529305459576422894381905889953047348137251556721649923331317002414883921734581260605992920655585909066892307926596519574841629979552111129787016134574708815637158869683609782146831932144358847339210054600223868978541347501667969318519194689038565362175180614648987742506089812002640883246064744665897611187147486403487372726004792941831574632527726049607249482587988802004359591617118157239635941312076308177581007271392996122108911091120295985617205106767225313692149535352197502503226405263292229191823262983687776642136842573780282076485582176911989658709905443540282950232522832728442577694881147698226400413471532401069244184487301969505809036715425048342041014771072029542549247602193621385978961459761977714713160544878536757969800391049728433518049203704050590169910145482140315210686984725408993326327414397018001891135624825874934489432735806746057600917140612866001466114813187223979610454496873806179345043890440450460233403447485188733734108688161295044093407598285606700231406495454311438129864216728171014177500371384326896489596365817061348096579311583338472692270017161636279607357855765851827494155197820641277896086843936427784099263939824626592947367734548258684114401154066022883035235250951012322606847041395515658208658890700751602545664697597316443066324108086610544384078682009749091933429555244133964624736825296815378761832410968392782075699454711730101127643814422883948440926842493243779136992029431572415018735550851551050509662028046619926308462753616402213698558456722418934002161478935655837133249008825229797823399189479648145031460203825838374493072473098051300983912574801949970237033460645442400952604037261016600837395335267736098562774162983287362953667633205426220730858184358245908129319740709938133882957029160412910778906106169760074815974996784632730173912362123812661561408517728739740905201929146869075922343002342174412787681624694449853641884483870109210365042187336334809202010287208750493835077629129271587410289345861577951191119990597258748195104922228191517305777524424701564174280408252505118337998067326310049856527070875526436356656497098432778003097203717799164997521489022398914669481664019845888994903122275027259475886729025641437412355843829302575837616211571376826901422362178507468674625102039088648628794464694007612599524318459940446584523759194800421222554729723342614875610814551965204505357677841421576034604240310302050024378429575089192956092395038499916296862709696366928856579136318422292799316312066543269172369381143358633255773484838563883515090099892267055165291223400055417729195783423200675422260621190535691881865415702575043969059222240863411695338870746069196122007458866448674377341749841360210083069673342918374718421370300395989016082363035072328108505674005024326589842643657615549600411575274926560684113597973360873222572081561422629366019867877961917740439088472231217462901147102194593883271331987754282703950304514888310303438627363055912602917164515385631899360528802905172731876819318418512905369284220277128659640763590232004822917032204136819584225912339611654077475046252541867111681244577579805149243859270050776052400706798895252667804757697365550400938177959103285270473934139153515099611114898596898666721055707622780743061151274653589556364519234697541046433868086080722615364186530144817266351178117251523525738192351163974305382797103555155394309859504523124432715278887932287172176942028787715464769654248111353132019609442163464088799088688971286840587130966198832418623438867808662466164573301475301393203844058038498513733462523492161090287602326541879634778922885835017281170607066503302149729108055955097102996179204847278353134240370672177114915299220733078070920790387294767508159360230627599221646390397698940774225775867214628505827088197774323505987264739006956010335166616305641995975011681713147115640319606350787121843804451246157888596879211582074866501343833648528673855519509412133852857261061785256142680786669016726751454676337263817728356674750677880607907205688212240321344785304588367331890075292866573250083487751321933657746890077600249291004417459678084138232375577728736174204168110743476230122312399506187466747263180895181694368633425898230525583691341438073658592159472768591634776927615198742729016632549252978039768961707032866230088321860204424938994940790363763927487581182667854788997017643052257277057576956771990069985057074589646140383059017917543307932534795380867400859952227699675001417085836777524948085218214111685046289578729837637950831763613826355182610102266751438624270367632845660442165623341132045982884133267588783278481704075939243781170639286539512148299792116319404299723258613783646030229705810452540294755532852531579360933887758503255305208102669755083238112500485800010643549486886007494242369696006827889265991127853748701967372918610753319976603880717933577691704318889560925327952662997416708116580092035334280523627533974517591956795615631854573411620564880333802180427851922600877593429775184841312693747795750108141383218280853318984720308534330816132693601992575969752740388619717910512965133438227908834893514591064477066109146733998053933073366597339955632133753458234868627172597683630939536609366748814124412446121833395688431615481219393821990135850283314974439960769901078790772454927205610589009597769210919196886026182056823298436227256958236731354826377575731768124922753537805855398681333852230320657530338318590389546219761650423927678473173935996740218257030457885719410412371433172554048843518829031451166177089116382786256961302448247751675557592726233378307548549149574690555221090526240563280816316528137225243055967533914670821022086983612063596770914052924801375259106120072458137795993860961385899341681242291721554020148690942433456208902881373028697400471924541931426814188279421286128741206085083163693291251238204374045955740394591212135683949877382341860062849606618414700363701477036250363787913879288507091948982401293858638421261574871747435495617625789200669095949352423581809510061945894787983881546472334297734038178940022593177911926279514430495592765175422958930460028770960925502339551132313846743200708666810139626235394537861518767024312983231926195021456494465691879137170116904169465446471599200542302601623851486820033490787424273070191121336051175301027920889782364518754226273386768674345251207679381110306285284917859666709990556758046246816472709587792286831531548243692754347319858807141008347530590061302356425124416839215771233088456988048181933735739293232283626309806370416756282430556914006312215890853838921546607930258972407248716651336601809622121923697897678657487683145050545107691438940909660757023075202252062542415511174148567837513432389439626082239541530228183157556557253051400350788976206674195264020897712019885500949716363693981809096618793025465441704246962132189398806729005576038829319397493792338974400069012977869265802391562462635971974104484460664167120237793385514820577872054739411675310215515814784367956976164740357002202077492778062518590886489315379906043847960063689808154160180183721835785758220568044223412106152088945749598432466363255183063476000207931585716097075215272663911440519161893944615676059423290745389807054078292393089826829725804929014725799220608752329773700554061093897395127610987357305923178620196027694343154303185174311953623082463026703117702375808981002926291724674930564439496276218238530747551403247216472722913975573198136254518770098251954635365293786505329272801994754038086097150704925927781528576337792805701793278442769697028333878382400993599584847667495455674721383028857045475609918030991479384417922841889460063785544963993376780329331658530851095475679584111666079547908982682106042324405511563754195657401769557636354138323309548565117381780493767749980350292124442540514460428659430355582047640602875076477727807603617295354680835400829081561964725011010491806588368888276065435492288084109481502233399023796617532312973928675229719764167108767438634854207033020862291005395075156802808030122881671154388449208841664585444303028527634440597285046434374456728040844138391110490835094609276728339274965686385645811588589630906160276189308359212520609409751591636763272665172034328120461983744022346541383436295922607067147507740382083387932522427628137600854667890399453201184329246337681077645105194843255725755938950974599589913374104527264560263082336003151520428490406744800366717931291157134087438572901879776247344801491516968919553281465877062821655203047635722598921711179092653095870153217855018816712716660877623338614253214429306162979470233795543089637996479013786647224856068740738177701389595510035957617645160537541030545132332709432111044509730863757758915338398528498734144876936959054347238495829349820767508258118561118545349497332048641620547693087244578561561474841530715318010691291887269643748245215794310788100584180187356766441460636047199135952642819755189965876275150214989236366705140909481838606179142353948943608639662069317743049780176177638775596020700286357700034426665392109389775716736592992673905954381223656678437331315607373682853927816130226941529239350705536163742402013303359936104554725106524668183051803427088975166792679312156924533436661738700191404022990930212565980692832257577003691987244155932540956077776819970998355789991934118795866429101677841835036037588400611125461723380997854860468600947292692566192606155682247327420870288082484497229800723881609481291491512394780264145746522357768178922360306806409819140939135906417915421972562354057076561941895655203377398390532776559262352337215166994541472337296311176907931181112732915271957275145457462940517199809261210391815165403502720561264225520193930678438923811696120743415340982805885804421621775151326988771534997787375331564179855913017542158137351071603125663722011711382502172172499909960797974887118291155387557205209356721057207008074559681012536805919869207197695409602996584288209546735193658321032856541559403027098526427330209106191016071867448238125824373888469582611985072718163705283441832331805111736637010251079111696060059175944369483000927526556171273128387903130462618201108464088852513761272467888098074871954884183873774756912200433199020129839573368703061813274429402567971895546287529190720691719344611873486880284145353530938655010548471235466015440331154135666842731600798482081422861266126466663103727197460627305283763808041386805906439210287027704631596661199908355359095190843093968301854237933457325897727215386288943276425185523589542977895353313957372762606654232268467467903288789408787050867394726908592014127825392691224799703403402825148999054544829527597076378028111237499335281649070691469319459986452789015374699484576938537197123830924157846494924796755777620184367822614634324715912351598678937735738613811051897871465194619763745806978036965242050739998523060258991967226629624041880999160546569460142641368499151585748246820988223476987543506361377441655400794254204708786021712475854945773748787734596210410768132910556252982021192049936231583252834928517160615135061983757044340480668989631215439545032974589094315193664372308907887247594571690245437520412236799643925704981473174647244327136152709692241624631019446838639235667690344023861520033784955834077974000323198002949374355224588764648855416082719762680670969446212095683019385278460001321603306174722961578255021250226775256077457408794661660112733010302974184288494888679037814661817969545475434047657255132183194157742201976938048688146713997471330940538060662401251599866946968012905818413410612855807462205856501006209798245181228964181736970434136233599349424874541226820523483530666356130765388811521615280056671108154901332199685903861748368706011891401058720114572084977133277352854638223166780086109498123515944710751879984632440548051365238020989185674095880915551036744575648654038970325192128054283235709200482676651949236687154282423797224470163668431220036372199467380618492172621584913862682979306334072142190585917787262684458943606578706579714968162194299621692408854111257906436310668034312708992042563011328006417312340117307262409165398571675280776599554963407023827177207338064969420285756951650750540005966551995681579688140956732177816590360480140086837820564699706632367360167237245802119134648783312854890314431287305757770560115910396848925403182645637027990268418983962032665332940486431173104694362686549805411363931648420197247600322623199298809482727519591836269447852861813409770283260350973193777888026809368369041884822664686057479236746148114789260693866805470645408421510080494994597058846097095156500138859074869430663046821843626507887893832814333875915184724682451469136166178114359076494653508763171640131253163164828611909398320736209827155564304036300073917287172705101861969101829104727280075130518003216713482070825395423522314009626380404330120111262860539576341744428671205855255029486016435797396351881747216978122231572955466482901162141194274917132565471712524723187112851768435848395920949144724443544725284789960531663653346435299350696787778202773099009743179373836247347645985266196492510498137062727306215778539318483110889648305607237338386444484674268934144655298824302913473534447050121567297287844015198949834778159430975780294247681131236648249102920193123941784317479637491713069469694292901526110027765076021879104565799676493755639265748497612861099386203118689681939469143473665942275291427332060788769777746086512312590474703138343457977998405139690821315669954883118707643398069462393252207685842017678808409255804649915914932329835416904137155422856835595579251885506091797233694950505238211398984087985650509715893569680592490370250916385877768815514043924688513971787236124460895033139647573411450443239213937647711728562837707524094143669130882019799744782915275644005765396928383197181943213910799405186223687409129378734381703000832104092063967540878515395415321689411496221959472007126567967345090178060593473575087354485328002417198151202438772869748781637913211441399365235732432678172419631066621860479983410048613625145698540855542505092317670761830417243299738620400548750289863202748337610053108405458145292512210069743535181358539958017894929644262594109394186517014044971207689051952428852756460438084645967397820991431272285504977712851787770294753687768325965050484406632623656703971898745306402299796465461133261348223670236549687575052517998439376952702231740414849306134731401352071159494148156799597667765205846273838275656594662041901419283132601049199304467223790814139340637408109270134386765580842015154761695593167644545189370330811071490882738679290941913029202994492286257142881975529623167533202111167688490305036200546823846940488062285936653085962330233854603404053636466403559717120598053721249968977049578987704712411168909877364298813381275750138016708948335345683381811065875255121729409420507136504623181474686540777315848215195546429710882105935386366454179705488858524429387079107054327614175436486750357252203056355896528472029660008773398006878057574063704658844371318457670734951267520215589023537607189278347853602170377115236573725478948877229949196922517658932846307830874976926264333418843619660777179558498515900270813003812996905840223427257633482808957747537777160570397062473629363700946661632413405004006062901161079263329737157381577597944775426704310848594429980919484762492978817420279058088752274488878672444895623329549813164560867966035567155044925683394098306944410769968356459078463047752649072532685706597777088142367858032172311935991033546993603610807056621116038991472434393247289448841600671159559170326371894054155057651694541581545695670396758662275826882898973898972110343097501347353311736146819577801183409919008088196619882620137089256409106114159266620741078800738731011136559350961594670641910146119209167836030237112180188822144722491505930882111157224625851491162579058907018223276320909304788020127786638136688992969180277466729686456536955826851237882114846931527885604064076114399023858572365313855549420453377079875828422814447825797056317988939644954172625141297519889282608335133868879178879681582484359869163877691209990758740031928988133920550183621595419261969460892469464810709052664673466754288840677022491817486573530159159596039611758009279678465763551645799256859911853984063250717637289044235866271467883719056270810758959230038403404403015906875972802265943010950150566020823517217277461105073690791675327843191735806321450947636244639871811217580187560631620271484128016280859451413987628233568703534600829848153589992254348764057655107759040018508524391347686702981190651384874825983793590942579577728252394190732484544968729158397771976691385129097160851030737701113467039343969574614982030546918898474861693811662801992005509318336762991702276605896921667417314691609835390086567611649726818123032074609149269095887536206600706192708758374901108943997424352615667017432666515484858254248532169113017347211838043810216747812456204230906786961485847824428847361394103511182272704203462174377769622860337543742384992256777467637174534946764328919241665802947315171824389219361885377481136864058450072444116784400485771557393017885521307837728873550595345561648516204581019240113191617032570361403015215237101634848263428706620353433673401222614096560688257356963103344131692400581434657289227487830526638147623564416524091781224102564361320920146473286033556533003809523100361095209070125405263759822611390770338936342081273152307011368006340412642083706071902099480982468752779721442304506311474767474931074480390494876502944885847825441675776253969478493097877849743080807121003508842569405095200138692240730156516470924188469885863758221009906903793404450620485127851406246561904165141373399439715129015318964917716310367969015275306361425445545014389873366495326004384077981878161835378580353699528329812194159122042739108775747940200121209967403935248404037636553471417707351870760381056717212404234998729322377626204130961563451257914872382500393093794634137500845971996649543334652040699873940966483841121051758094927221791828307355216152394254222358246207298641617533698501608337355692872478490444157510422107105720411939374438064981896275623812181744111949328500008504549893501257806968196191321181385266530268658905227920010742197002638945986443865648454394179926867150525888161321940362721114189126385150811730740981420986869896847704590818907112068145630265560838183473200620586371759539367129592232533085484458370338415800741592729270874996837098455211809722756143353251067911806694364652337674131523927283076793987515660833048261325959776323990527705677319570910283083117037479959236851177049684274902353368821970120296736351481881748412377412774467105846374471473736163227442260346520254697778094048072526608179790108772009516597881887771334484092768178890408215182140934821798049745782927369368672922402004082791293387866008827478426458410949827797551876920063619658840075077495749681377806141570243218381055390001963639231128571979980770166649696700711482098224051672173779966386757933867384040850892478475303814042017977016224059123062185103994825966301020032689351297657475708667237446063186397448170426717093803291963898536376068162370915131191044717451702637982410173934381490625890232197870159856147180626231656399628112024491691920160767801759889874712905936286208488416785828205868552591763061371723042249649778737085080341717183079227049359372037928856538095385178352029856826339332928029184153567866785573902187717006394007479889370965416921763129071066795098382356853784673247895172447480249020850286758175871093601193705428676780124646371212160365635280869320615625464628991847618501209301307475942071051787730314875077381253911210252935873872985217567925327208657978383663293714591712203132630067870005705728802602067350249164987632603133205240507340964294495208069272477007275702090971798923962571438853889087339803971834546543918096774354073933274528595535654281281589493655636936387584867347512460743201177236938342578244324838503988067513705808712484487642414290001111911745717441105137476524561901510158628645239564980213299944171941441900486491851663379587606057349545417258742796286307460172798790326409886973846651539996479447462138325219686345510441116270725158757809511295995819499174625405810350921101517171185107519132485369930756026404877827156906942540540679242983031976867317864476818184709851512335013844884519575853895070686746028025017501659695362242539837153364838624419368233793234881887598929959029074511807685397450019646140147263995657588320034959009806909105735580816569693824732143424292979277974917419753746366298859052919940364178419749144312993060110477654582625585879582348745463661999754780490470895553363158216736519321708414873887199182966002824301240684402451893475306404433143207253766475529871542416875687414594108067209361114707122322284811771268028792687182220841123548558236486129423610890732590068376297665805719165713741287811850157155028339497617049367923246797743541880546501458316808236012119446936011400949864550138841215286259413779061089414814714317341133407812357736416851553485225251354481647727540217387905847645697208664136572807360425493637871577899515083233679315592152504991392315554816538187360731331887642736459123891356294802132774092448339170963123892412072564632579384178228247594753509160129185285356008136227122225508690823321079990199719213639227811125989489227891702521293261582087411728438690370699613744005304610968426802586189022112352016687663658657913375297812792147433149970270953214011222070809428771763124145293834399970077973272936863442635792402089110085375726418173282154897262702988382064112063650894426060610156335137562677448009698516159051141288251010153159508119707490388036643815801238519882200310636254636744147683488458902057542829930158283419509713260834075772829278231204387244088146826995785031649264467588899352925390623748092654812969420490508219763418651178488554718612138875767416697242267041053329742946635256745187906074020749597406148691080007921241958141404658534162701597581899910149937711960476130549389324494285401973227419539501634387317035854966007787025519933122570649593671259894822269445574771336151614343249297608008770792628210685128136920257469674592683124722137336083199895857297882311652384548144969780851289579505499412989663809553776585902073908574401632815471740934829308345520364928764574338799955025415623186563155069862091249989254048005703522425940768510154262017793354154866347583152317782152069784116158838773254293015435189278450293561647166980687822408565476553051367979172312573850032914566298490348702419501247705983369819014701125047038750496819168498403267803656554193943775174458242578381277816637369755630377932854408633706575692271391133500826906940441350978215197865207950578080008347857327913903479983518223631884355011556743051108181128390667067404034974007468647964895212948485446910251001792818685245317161752384409893065344208861602581291290071128083322388270789081455119921336030881302090425345154376280811280209240448085256273125532498426858856489697104119985904855271078292282273046143228144539137686200587784192767053792077951275560509937725369802967564084559317793787848332551619456759496135495060381275795425929568067594435849253669349602781599878500156574535192405782948059938766097297454701997468483160902157317790551698602530334751850494511425327158363755981827919933410187885664520629944836092867909918789360280469714089806247246214625311378770420846229555972249281344874482031700662777980572827926765319243397793300436935665903810334333426435520434932982426391732908814865190651372688411802439645192972699456839161757655895224862696194297923145089847816881084075065912761142262302469746011940622977730286695182635012422660174650677307773957685032138863435833012771619067375930214935677002549969211373779664353007377457068889728266262309864642970074011016594196818318637077214021448129787165381255274736337339244496208223798583916611772945750036737763067343854089668903346885008298830518010903962903517978436429955225132985820638449073818409444037978016788573005864574615729485418409966170728860237923300259794487799467040936505520969512935603772246506443889211934145533584831911182363064539498856200055163139122927404108040509650409736112037909222535399092148742454738887292716072693523641513730840931435251202783123037802630625458670148083748792309924425135251761862622347292640029854935568327850647686714808784785063428489823272799531033193194593892611332524026685337090747579805785049144072193453903007178354169827632537837057695734683619728173276271438844125634585631617562589238526108105885366161279362324166243032002523305542629689317236062180726438720468027883136781853135181544412415302826954212794458916864934947487703738439501630106320957796206508379598379027816943228401108200015468718603322969384568055491875786395820929470889043388217810592861047370406911536451963929346506427420012623949594782644463678406428938261155990235019927239473498357041251350325403926915739335597362823389230282373870737154622269948668684676502741693951517370344100912947025464299225068834790990542572514728557099317169883386750226550143052264826427191064730289732813765759585696675374243024443828621658482882978923453528614099374042170041661693994464722429957766981713780513485634827790739524459144472244159261283660125853532871433676977511317027382309381818353900539871000718364819559286231455009600318125026506413278150933074489828390669208419226793380431070384078104002059007288237172475347353973522438718340946304859138595125255992130278009793417557894366742152147413526902154403454644846948471739486007027307412809691084689522582464735432680403564335745019511273967465570297700750406851335517511660201120873654582617362931923434046352489590385560661271516037521597268079324442178213692508266350067904361113171798355112701886888265383284752511879318753380242006557245889715091697842085863834926215366259333410148564192493442051093005286356150931513461753562285215051090752637824642110693573182518773175293972777666082639269646175047409147705255660349181026261729907285132886467599841910358534665182520468030537702878126120522508567332955267434870640799737144687614906639428092235665102319259749367401071409541334633852800558116993680158068419386787432786035073406702400329210100091120290842099414971295251523091822282855740326551737255884692203339790843313436949810861980891349916137968773725365179554440343769761941651608978511698159517074290537450261403656370827777370020871781423769872290430310081418775916817575622425104077905327116378536521179638986132264156052546457421363294611916801894079497477511821682147391265750574099408008815348588938994775047324837348175555485384671764704847324892305763904667097324075284170779267228754318979792231072415736227917815486127353762569437049308174661472995219492686286532625911608857388415577247298031696389629872983988160878535882125935651337438018792482448450329456686426283858359800256318502453832496473364825897803666465578737571515163889024287034195271000331815723308195015739184508968242589027738607774419798873389176833943104549854839674083671852160345544399763740952238623216722040766467022292948519237664505633988159403189626042896940120581943129054603950767558792491392428675457297806009845810697787302399515973753769785221990344499813295321220383432954928863159766521704870963744653064138055376624981737270637324442283434567284499648668431352808324718401259351399530153762098700590193542827066750446715740273638543480707011223715324581023260556405896380815375056235494853354795682213609946238507683593822692226560473193623630863725925606716607175642770670322559831290467172480624706658029708787000733728400045407296781041619164531344783708943027986053801785404269461903657818072390560724464214945383435585994462536609143105266396989239495058903560763968782042972457805496925104399077981509377790809543382127440154019411308108685915176295714916617067281057206763646731469270379751469984935279207949738583720365667757764987974692274886905880388630563917484385865358207969062533198654701946404012256682092060901019881843757000231516331322076709740988432698341902233802134615453746343423750912896966806538175712819982230635229208523513819280241959298017414224396371858093909406380219624414086597386961736188810262626463536404521232082793984006662590301422507579899666589368632836933427410015585114134544244944341045992415074444497617470345309419168726815421890610421923495881819159197070241745067446259223277532364127691388338234333526311471200988135604188344370703125959876603402909198383824538807427168278410819575492021289478266871423389614198805139477514374862985987717946730954104131592455727387555860555989097079592746980209455815593983797115901390662988679630639375580184145810032242572937363981932442794527441828635954852297007285116934885949036326925213173890513119208980857637366348207355803635682506309469439543046629081508303099642802038120173712540733218254002935152568678307155899538716277110188658460100468332775799397773477179110788882159131530025093596431127228234708408196897887522032109370697568496383686466661581055504188751591293684666036776330091432308129308776044661870071378906379217548433130707385264326950009959421868970048187135124361355725728114425011215594418280660472914628897576611894187699179514103269213793268957531700174925380875076256394312887345557185258997522235918746970205947527510622686703467895851907277494953519179443841039821974803790834047599589946300036024882160870923505720033979543332540158463352936505162955493116945308550439173873228854603580373800676235352588446418547878781918449407406548293386236256891777214634304619018355459489268585551604422403014524629394528076674427370393379913856882549576850839273083067069910211831487647024224133466768350636054447332576044538312276640297830873386128965087275570439778620024474392317136388903854814339063932513123163802633576627268724989099795135183715939477531493071648145488204077036647864235134210839155303653226838677840920290429888890323172577751200486906290062042994056565125972293010647995596193393819771583954973894233311437126050030658628158983034317942492795488218497904443883696359160091687134491160545569221799892544740294631014293675802839930358450259175460703350789754994610062317466843226344896441688653021766942863630501610608691971319075089656785899776551817524560143148648066961848984950294882176972755946891282540581893333159910611482687189519037694815945269207651402927107813477618291503916102456753653726575715245985061804008615615949610253007529955771916187096134338844766280135700510961635166133723102711634004947551194920920495690239571505563782048068346413263110338677252353178497886304878684663150909850767080250310586710394140303542349243900831259873409388679810860775632647470863447575290265498386094058521679461074054901871088388352992196437675507898965351238360070385511859039705128901689267830876934661614957263184098987752082180948330981693870287662053419210532826166081023561753826832127252524564687309887212396522315775976747962822419168535537835204207703446993561089296694564628527552718931254249394820012176812827071384590077004285218415924458969790529231336666717178874236590555700164630017961290023786734143613860137866686481152954026991577586877546681608951208619030557995774962167512782545838840215123504343004157513907478166944694925245010220515651283214292889647187333953474309874523519982799484191166891008924444317368795195557699876131547974085731466484952435396297336361000270198953837757408311261909843892521955858732007708851272719287544883384664846405206194339386653543384838348712755030818817194284311974115572739369548031293770208941764298502033723420400148817468174750943594433311969413020056642694413666106604222629685328175466289053591697797562083856764605637811541098251168110055930058330590729328030727215196641831628159966704214291742886352221802532757082408282060906065896752503376748463255930665335360554349549957827460641626666660944543366113931856813360937572209745080299478832679736737910226641990671819340177266235055145959285887784693686356531022393531920240991738033363655391473659804471962512756230906047154528372023716445968407545914980594464535122589378453424789170249713740009513191561774788808705724587612642211109095087272932709028270663497785407582896807279456167788274025690609561017751864579754107231545158216055019333382373755353266335301264088360458496326568280856100221567622361398805527572548941192278896136124869408617674050607006278795361325140747047170949442322890339552307028041464552655771335945168635747067545225945028740448703524756819660353499541577192666303792242779179512349370439507438410885613140701142651531405377006923900968679044216481694078437368189197950591343034595707166581650776328419726810029436714881874890688988939279832031085245967038695865778036657482003202395285586118816538400161122926148333993171196884067935509936495846027857135874583728719479526948988536121830146814370631408132493733153644567712290992866872050947828672764919847266324280766331604329513298198402150473655492419129947750565472816861457520092553619425139203895895115360495615246669258656909992779000734498371676603030146016281697754572589820632450827059367985291042279997930744913794569485530831780579041163655427914013704777186468985292975553352976542123028841294446608603870235553067585065442065799942198044538093566385325808070180900332049241299278818620307574024513958516853418036705518689100831774098467474855030236574086863159387441554072478689257428602842693849960681546953902839209657261907708371528393861316532561950207009699105291022068144252545040473776110094052458067776821192380916073258978580234298732105107405377961803825492323328481770826290247651216106395709029766917729277524341335314384872928105362120698264211754729524403381628124103188231069026089257349370957052252630058368534333199546119148147494772067355828231058913085388922861041919419757618000948057963304087898186836863597657553108532728100266147106633934457313508199850438576416831550043904731772661217405518414879261773762691968988154829865461774669947282717792911201322352985661606770123174606102971053838159303126456331172242409358678581763422509164886264022980603118775680711852807953547122553987576009234695328870946383427867832410943219713063454730264641389906088904974318066179668133110952954251294029450211951024641719297993446769023890217965858602081456799880612013548843240289064580854558928442595444388133411707538144076556365068750206035438261622121458637908236067261997764787718862593574262038088760892976916211095563841775121877169449689800498842651798708366578498360237686429930248491354221919759859136699699616477379958580073913540881974389508943379101064598261336948427348060803893124338385463017970298153383809814419923679765993412179567773032733087255047019158061371229178143771882541786257332374287931776626293139705673331075860997214655409690630723825113306363146392061441277370747092790462339668790982870731688692457633469958304441615846513583262806998913111596832018166456673900985591106841264292331405812961052611634872067334874160682952697808515842931342998288523138137490997250274016678148274341586108444493542011830215744004237471483858316957054204106011326764627495665610506788063715140151167258424079788474543018388265537993854374901857135311465372421077411862593103778655042256693349761809173493944372467597515142485985488464900063051629922703877369577250642624103450543891147146838078199254653077674415732787386352878210006889097855236337434011875503534657901333442967126021494449293953052651869255479779419704350921998906387894548432214320803829519438143285864533624417882093797173090496035438650882774966548495602464942366734879686662747119145578178652313744050491367101608897815278577120046433200437913590689520469738227105852642615187754764349497648128893660370699443867238680250368505463541281455275702907740530856863899724585532326766267687551105184146896715474813064179245239613803298973307060858360152931090436193396665091945019743017548549124370003804517717195429681335622315297518907221216949552636856542695409128667096633128521763344268243635546590326933251554592938345237375161705471713108758599811942149559729680097275346419861020247726325505994882665581420025931905275009345564191000392406138112591032797356633160064313946793624456625056186538528318528739884244339959600302022068862627399326026302427627309819249930177561810526501226010460299590578294875367906600462992062585964870213513722509129199807999778919511635106448065276626959454178226337814701371234709939008351336782758870178678789616438067421207857866808059346078928510508157952450984296353151872325939409822472925225156448187321974864069960737929585049332761126203283158153974706731755177374334193397399310070473124283107649253364057039809049759145476714852003388146029573768270530324666583846010807875958958216197915437102318108984081299786029354931010530613489971716096091844201283446799374915363645529553506471561350170010075603990261730293612657889698497973925823302891579232926231708089976233354549053519612509264310625938151427166895674153749402272487130239019588813145431699616747594414620375474771702156914151913723219808652064484861770088076592331188729427001762387156096738258448886068745259292277537906505292818239172043679068399029332235533925532619155880071603568930803419547639145379328361108041566294320615616345867204090490040812779111206092779624335614227762559547386831360360303909815863510247955089684161653492453865952663841095393340226145827898984484335961297785008656449236705467989608935733013483373226121991347885262791611304913427091425106064104063975668598248102044305116812068209005094821171117756662225584489722010275966748943453967038275202251045299481549850651863483627800622401694193531269206114952123677985613958470948861674627538116677286623877699625189527846644144182907984344856118859352727832287157502479291923757829553728721280742071799963024681752497669442398969873518946274938059293020263111086857138759671628717065938582606372701600470899674975934584472527747975889364688434032937784139342869910048825504650179063803196546508584699769083303928511753414242076448694061863873225291187321029893373256827770416742507759579859950205675014044211386473060088761399882087657828667287920518379602289004958992201433957756208798019546602663069560393270221075852788985228550741065956769529264810277033026332628744958915968271305408322744150347364897246578245044206298026701709536237801932094380555454388987727503354053121144670530309619164298862560759396101236506318066987287143550753827642069755172797878427752421012679196532439732082849433873368059352709441756402705378570927730841449388963692930186217720959121540884339061177135050446322546836588361930891475004073737901893310212361267174560609532808826831750215895836162864753801263358304445364194150763839865999141811130247632426552632049735693225824536661492504951211337471917917364647655222746398383093765091403342016798998947449498142544522397815752203487172043874780642570863436458554622402513839726900112674423324311288312503923119926874730499603742828272758940703619345120795836128478529524010693728641681907070888601052158421276342969773737029950708523049779800187037981136890815611261122405542352124103654725546138577550697870793491187678856716849506603511319041349943582093670758141951689858609319449150005456544493174278424838963779265422293053383390627250226623565905083180712846299749789423713582939268013063579283317470285963223466607243252733769343348538945409445866672520702016228551724896338996569961283302301682601020064454910961223104319843872790258709559929356067927204771074604236220024282455819649282299659638669919929103746314384583748642430871554202377104022545569611972840523406644372088438106179789012910436838591108489665678715228632072246475044647233675283015570977474957295482104824790681176867708097347497688756915701806282072863139173055909764866164909779566661643653229446849527435005570495847446692295007547501999800285727655280737355037428284735471971662573401200223155191451265556377183730245819377374636370469400922591461986471150559285482654039572404034459760366583916526386436009433065417235896773777180497412336767114459960998568533041908127906492929845419600776891743456108068686664228717196537811868435232449960016645111118939739427463633155626978369436348934775272060618334755855177979666703801592706060551660527674735809980433636235774554023805012945900920012447812983469651566201137108241395250101900732284844415171121024453742770051835503452196568832662764953920087901373214686332449264002604415241467355880925641378772299004758426521952382326873748289530963260797573825299045379258021921160266779448972842917375869495561259572300161809663439180546083289985881034789534630637426359521029907885663067275353481980771338675041432019877200057414061591207518433125225822499399073529694210460360997389002067754868914721047207618171064572661748906046444188974936858150266592191016540527830016213874473641067702650054146412504685456702116887040963424887794917015677160439667448421976505384049046060571849127056573007872719774411771147463397203052719810421254516769184875506073395354424314698699011952499432622995334732501478982275975876892105857573344236322711700407786359091384066084674593184582550183004015331192054445105226514981345617124287803919004643397641018518355562101422602394719082566021590529355968006144857061015641177102017504516179952374868950730881406027365368235423070024271554221351208092686877016189967974005988736120314369615552001350570732337581390222731016690399776163540000715009083264164162767866595024331623791657689877411984589612720268322432304197471774910299611981164655008991654861352355391147885707207772424412630019837884593954695968991112713050672543714172815164292769348043392463149959370757359945864479984160237101021304935718833150748667931637349708620796658833973943669983063364260303807889988702311707355405049266828628047361427252878741622192789708116110681158213724105291340295575083752880730653155750238223723214830722258366887707822313709822940874334079653735372339122301719268130682480567164951371357306765065815945621615229510045496947508526130292703337577041611172045469148171893857320024702118209420430200990691469572469473897086114307378587866852064309901312060083389243768046498008583321832909228354774818153886507143655969314806914675126430069161685341844889343167027487078321821660546861998694964272481335883698228567774986726479998641002124417732009954986511105190668880653866195589867732745353443917597666150175038906402335173768709974018107602572225336156469412594634953221543940759252176985478780538257766270127446188171138962931300031756530882483041019038957568108865466832500030991026264767054478259751750503267772320291006789925083793566420199979900278667376314109732848389878375438021000099341498050612357287452893948981366198772520685236814534906090429146051844678879787084042747899567680443257892621861394350588543493181738687067819266930431017436178862391950149028883744073649291606146149070774585944321862407364616893722940345686792022932276494408079776446415028205664381909726486505078670501297803058493900927729721665812437742581605153832546650966601933134587372738983730641455892796798800174177123474596580395046442496390740943776586388715003456500874105546434298580397247576594497374692138068510736606199073782593430428538773709459697275533209833609950449223766729269127326264986541231568263581614434625526469853555756155462981359898068689815642363821287581454954116905666940134548457146816580356220641875925280448110648668296341398286269147627383088797246930282081610588592201613114418899049948702820052110441622254041261840893985705285679559595362762463870238143169274276592569102494503703402957743152285724316092819081331289851299708520946698917540521679113827089889772329125007482558240241636981751956122927437241089947408481868635127776801211304333161539681908363721502801979372641227746661027856557749854802587324881542777248976914908980316495043890400038403639631676015006310921902188412949723940658667527782869319573828574575910484905548134401595754704062048722006761222049044640361406372891433554036906461758537593471226401702036891302483194794547264737589093493415937427510678945554263541568798515292250654796062731251537863038294048346498591075434085240775091747375297538341605973612058363696209956147166019567030464117224632423390250701598267627735178634393715570389858304908290129170643117103275885444760656922566452542196885597663422704319020780302421786919304943513450040755732655568002278664546792561165093688574422103798525468056961123385572016578236909270064935316098774695381973411132681146484712056911506445500131716442284909992058132804028830307452632067057355784636776566566961031498217149961837374709027626719640038508328515549106960215167341261987392465967695187284775108224759533876714733750957152235778474751670317012326215603395041364659398139999364078888399321047442102403390758080297962977040859058870066513589213556936398152056329092238594589074532346416457017015635228930111687656801820390595587402952218541990062291993924430174021875857560856104937340555115049817589899425735704456904103088954786481832719800828400052351265100345400021885832308555953595930597533965576282749194683741182920945180282430941855808798890310626783551652376347052546917701346903636252540584957146807997202093100035507482001905281245274694269162666650186910330335885251121724461273425803463971849539687987536618228778227748903696267141446091171942872433008657463621098864390740473924417316882991451504515351407693238255200304336602905551048994108095525426457787511965713296618577668324400028737882697573491433988150241065452894370391872506976954897457000677357995463552253235374262920534906298923973252274755087228598276928312243942574532680390757846271075053608020905404089883860305726428769417591038066083869795202332400524174947880693271189832278586410679830206428161721140232207724370182520138786110098726780920004138781637790280087978156939616579011576621027583426085102477297542585794822372835526100284086913583032731701742606254879076359566940498712568920203576049049302870915623801381130409234288207218713002987117791674507645264600631096281162733321700073780829838106106675408609709234652081206585802974213457807055327430534168213603790420733035567613342756514237679499167738015245783492991408760013099232773954653267976395252887689657275221116942907684693268871968858756202551668715203729392849875902363299457752406625276398888094075673345997648200823849192075416382912527447460108540061027975917890391254115831653848282033129383882080968772940836424026435579852257304334842911960508613405297863404234233724917575321170634744167372507284982989973447450960532675091975773897878311716806492374281120788066051714090588930063059107045183318769268603385123735960839030508963102709918136901853163269749982745102132167405722653546153323412457488508116082934452352491516833623846610387331039853156570383796740320727717789594694717833933737285086169574282212042537481006864740986444965434676437625450519691731119527568940612596951918751450682828308680241737605521197896931517018453548996225265323158858836582069644810059749371480462714157449980074456621375741808757617671727225443465163061769199311453449427888414951141630451398629828042364302986420475971051796706970864895552242552154974269421436811560383557336342863485136707814545120076781487845147084273392240564422163573095966069094123461453575245187913719450597087361333605675171088327079077750626947880847643402686628282097936586286030383051170406435126879321371147829456273183523240068619140916494134355895660851391487559097832082587566045716759023614343396063815981290911988337278892814073002880007292622741487365137325986326819743943236630020196960287156777656585228792335493534006982916140084485229852839198867377302771535219662766442734066084968082977650702567832563170889707815396438345295628725890037873878824033112904844832464587525472953365667360758148811420561239595486973524234696019577959873918132746520548366304431875443880635141220046762544615682883893253099631963136680431277193580321623979297859065808305809194379930514320330375064483750938165801568045346676611300685407953714926804590897554370457175544458693957596267602591318919668264847810957727708327696482287140284189993992193931940171268719944861880241314098435617041334087050857370901618752645291700394856653260160279194968538943244673944409485887109098188175402207976804811999065666900393198913535440901167527456624211449786754103082566848837132126099916195226209243118536227779934666580164780624140343822517265333017044270387609654323553893988461499879487672879812218848880896151505319578479055395965784236848732384865120853277936350764365934189686502182702588702326302945078800152842911247096710312154771481603156926247747736450543907907666295214170577479118747630426020737138268815507208771681511550891595215206159143086314001389178117946970381214923997303192605017249664114650592861100668531955410725688546448840830762532593442201712266696981035167901668369731564137210860957630897337415358987635652729821600760928967968211150883076799699310521539360967353096056346402825928234361801183955597342403373322218136966229310070999867352757295279368833280942835364213035943472215581586404720098846848707798623247670263913763275930342356223223026206306830521746180136330699914603932874734032780031800639889219929217500269330407619129325041356648676947704397348830571606959376204183049679201671415327904812153762836966776731665952414318867646008028608143613705399443573405469908480149635347821677821842964051992869913833608414392818994296338426210387040525110866739929734973664725759950873394894553999704764877240662522240151009779574739606860249240605044749532458285970342405455497915853000503530726821370519286005570762358909093565525606589566943524905133295992191152385416960827228468423628698347263059896108450073664300060159624759584402441576716009543391300757867311173306919299702723966271826735570152534125108439753290434396400535004165739586082299780895404899002486111692948589615071646696333214380109941775118200978484812471849931830446655876466580243422039747465105080597231194990648323385628978145527471270087258986226165070993333289712029622816785445532371886832479155781532489503866049949041589806241080316885355377804726179804927528848985603271928020767101031314550443170923248757934750792122219031906721369451055256545643220455506047392861206638546678702349024094567299782524162944076784273343938062843504613752877737375252401836225511441436137353516788476954485974376098800787817858638357859027687035404189283209443555381842556661665771268677912070769106354180844519615527849715522868639587197902915268478600841408607131052760776669281376289978043982321050775754700268361855902853937844679185796486530624932777979481085269654667942292433457220785193318328585071964958836840249197478176100066968827741106131812810201807460071540040828792614507374901004005487518818822704331268834255182795800634841797727032201294577786257939479370570913778639353566084037857372144874488542408679331608655556142781708131502702669039793086920511613881717770997576179400409318455682653719689555964269640622659060699676027412256952564165678629069208066643680167306545514311670579483307134375314444992569833248616789159271615156744844718246283047214005279182641021144361290113628521880192518428928235984953134424498186736950448566230030154998524957888883713006406491335658148327107167859173230237988776008773440277442668246796496801521272206853678663817907991672366032422902736566923359465862074220055679139657868552079097682811178002036350321439846844349663857243194184876900689022714881393123833611154034995345100488913810755461075797281193787457048327339742276712161049220774918965826919486473802973449252214516813020368974123375140051044308924285869194055991291685020381764573757418389446363522643653839242617758401836511786643680724106713208963495958638848536726640275357816288631112112236421443764497306012732592431763931539534120933053807301779775190912911339236533994357039831704479981833690731315526334416771680750325174353944116989622951100522582142261148067802760253466521209825862921818109250777763852656440998412100431556880517337297739340176446746409361294484741659730281819594464365716691848964671949369932207008589810777659470122653028797387245092672522760633314043950334498034150643536046753351411312990289467905546015568225546735316543714193646822098637825003367676334710945545877657287700370749317563261545995905893564353500415498704786765236909264294101010562133269733908548920734950980116852611208453096612499173277149451400428894597689054347859693665837183009810059498032463755565685758718023444232958066708598013344256611035412392710048298306718431998526161147514170954487896026322965517086499046990040780485858359541497544699892511350983597936585660661901608895833779137906416890253089265833830606578074679954178172689841224000500379005001859517738718079143275460123278995171478302636009957448424499011342668270279471468714996296919173295111885654369141151410085003773855757201279542059239183283885911411720081319159056592835449530059889908186579759006659879208582076233852769939415714065933093065020768054570197951914060057407063244695016794067447462334922273642336898402147808165689849036901830879507449240916259605663458352761110275924123258869387401663240717934489930618626714914240946261505455044511974360382158160454444971018547748859509667394850500030405393426910574842528046326603483303243231317577476565642678504063472571636310427996239806432346641096065215117825303032908402106079991904679222228832745062425646361587831118213700569071857416344916708902891226437151038553110302649407416697557934007609264554786393310481160496958329792154475936080154692254715926979815073667227150614462894986782952978608098471129036458789150403530289997874648875382544264364033983866909946680643572107858263051252470150378457959391615768196643939657165102154012127457171788876132206362605344457045278025201873500178121652470971033027582397187746295640062393587925256603813123311170822156983928035609769851927561704131859646605329359371541484016856577407390931678194120097387127821448674302542216957385520560644105743656538754314798983601502596477032403809793231051643690251478310262153865432829305440910300037261200236904745873271459260404395825538562085785787471247135422501669540067393294255706540581069145878093545240119051130669805350899610145287728250166796028656622458568392905033895208376908527778994174965260451706680774430504468891629000594147880802065147722484784536595940034761079910360625004097489781611419149530151399940182804141748950078991890849277634797413692706133085574642267012095104832347099162863978762033872045717841677390143189339773792171664693565825606468000667927720670652634848731626623199931286557674663174057036058270465809708705079423241510893467930287866354673121317470070098146998019011450051045458099985087301101125553934406998897712644060325490524359351519334651048002133612814910127576828454428955366284437383641664252809369061437025047391246418549761268419480042620114116427614550253339115262538131563620552651750781089646979177348597256519769367988661580667504633342250396635385308075280321203305478297412040855542813569939328413974205362699632041806367052602147668512095179822141038390658944697481943489691636463966649803710086166385232982718877021614276158173556107488955174037822350396715729480643007690942009297301534725506249691556704902741707315751473450988734208904411037339726239777349972380778413579919103945236180597176766866357201558480533735883288363338594645440793677053515065713923966635184974090107800928103493063562311717771787588163844314145956689692731906255414615546637381933032127112566050954615445421735952563822837975973554175845205034496613009782505625113247014017925042993040284181128890478317928434211010620179083908101351896413535993852611742642656056567618313889608501920184948880503125759252094848738472764010131398295448906918495176506339579624137645187238799691223624971060936221322295906171066291536010474179852829097888479976548574841310209662543657103319960114174734562790422184966883793298308046311190094952902670608928535273528586665522065843342187590246173433336373519564866815432500453963096300137399893497694400007436451705322671957728997343749656541702147735355956210768243501272696408354911825449741433942243800518825449501007014158804627403405725785490689186354737179063301770925581738713224759458851181433256247739902124097063517177324797748761484513160728409328598255111669278614953935162885400578718096881931884249124372534838755715785567579646417436571154820444451649358825184715074089498351927161743773913840094812219673541982379958769038577920505425809426907577961019948271642599354803229845562670748084803177564188946665666656588207593279596439657379232593784533552005951088806686732928852583670944154670364267578225574466276545235431249177318943487831749892840252161952385122952554107305119920234669116305470321462678050191993026364351213500854661027775475918776304021489346087416494118064865488511691394322645914106496126845474197719832204848480154850238202492507339508505306182060359425441998952576322168314332477250950940199129320768708677466934824743569890995929474631135463497120627003082829528276666822497557210775379923684900878944249277517762626783771255508765309913698260795605443776701223926453646374212830850942701360262760518163636037121378166595272630315610962293308860929650613820542854312771608385224828603532399064158782141349097114760569358153947331054427268070293585801362335891458197297607734212141494186118497976205943932293435728739227112620777782839224603093847788729769098600544589713244909336623706382886754851522452093171763353679664631641306694705042610519559380465670300210243811338606770013520347236325061218204770888761746146965480211958583725074843631405746605303142392816659471149038640670152445546985568510621352377076797054944044818967476747460646440882659696132743887084505956518366889636831414444757877561068469117809991199766391448257142781086458173474896637978090127016025370895812381603743569612012796410639858003716161387049514860863171891892536218313448921783717096382679813090541798600256566253474663796881320914422988174069171738472411000449085954613166346212364504174181527675384496455477379134405389730587544344148478035763472535576182859536289077472509772960894083743561565720258211876830618917795053892232555922029892997434728668674020918792639974488439902060345561585523766491903353356687870380911012456860624585734335618783349704098038493113835518609715272054963719955490475388267597643362997586621703825911787119748706669961523507366874212197063491457367019620609629615913705327105391760087585247345581272978110757163525002788925003053532354764760096856374259150215236425985829283593077288748605211421878368143258567064363679852747383625199693046601820092550122381387712568572141319087951411858610169808963189920930911891990538071607008360983285232394702789118249267518921179656940039482397865725615105880215588599329889235093744455253669142856435720768221380012370347288365933503148556206843547829490315116382538369100798336848080401882960093554322764627841006393773950360883291060707502787814419928637993967588403978734823090832284180047321683252525520295298635654438217991514028174454061116817303433421884017031019111126145564432008707549818221683739922960459206130676176002338462149574822573102862063544942657731042849755005269078111068180101174707081623694406390272866619993805630411468878886337697019754329664128355181188699652967062562727134386432572050157055541540766470404180411770876933930989417172366866054729557392757409297731837075963692747051218915978931193834658463564909023993511952773150295366228743304866374361862447630169346068346772025617922023868967011760225778811510795731268375994545857362036825115444554698986629153091215763352429716808305847017110379362689091035459862061483400622346660590214720719147956437356452554733684345220875849263144496694452186299385835428849999495457511615681196833845794874653874855778715365566567575885410820469524770571819859283149843223166216435038493797723616597885039925007176574460940471821710428468846036523668371882424689080248494225853690596215581526323700748995594519661796396532633247795090801846318723355454761353932825374772005379098529155687429548223708975764919490070121607708559887949749578392518146185987865142964347723343545960765846909235197023885100140794851662805623280030803065651764844140612097030878937013846536093452650950214449664910989983698372288567146830919043306264278436778575151278358099030755662565226144269748442403606738403334094491568991799249179724107960608559439377164638738136823357483432291416838151054050449772098709421431468094807927770779040832919175520362915042835240429431299875214838414546079348009452301874119616646965577117822167092392088107263527020977342519149366999025143814473230948516199379227465466053894123674939116017304828806108883520967359626289415242217095307644642073080885418462887572919896342191114296390312603173544034534485647268151258585562490317508002979815377220457725442110530126394796282319347350728493480548033153672507613409813804123444569093150787877508466287819498565367050353111039076150624267138112650167439212151594489585762711494286095578093086186480046301272209747062106601944720658816258733080929326639857068616792103302440984430672797332877159440222504053972321661436328441629368511634186924839202566207147704018427117578636784421365646552374644252701251828887381377702572530462065312514550823987879884282353492463608106487460936555974559685024599663803994816415433791090046792399891617446799806106476710536994840496969312938346605807470321233595235538305090789904405673344211517291296045304734424329607129181480644285602980836915856548915468654230395724491150422038283169768957830078032330965689751212652781863710327763021045682969286695188742253517937047334760438417412967762571030912064902375588766833352758714617519161103039349973824378553664594756532927902102312104151467116338336610953683110942557433292013568692826714354716451911417527353074151984912755777416156990892677226903798706445096809918368574753544196389432532022007060014763694743166804990485910319481502272110526138347159582458425573763626971100956616798632356639652282409266373157762554274494881783117192868667785153426838227971405305676639179262454969124101326315694965243866837570912918245921742444213379080225591356314528577903002438264658305950691545676925455088238253997253684863667765936899149706489246869561984672170504338253354611348609888519079129553022706782377628231220745431705708342849559860142545048439565013229586647695850074373732241959060911588229433816568486833784575263640474740739937236606560474505142370029223518092755819910474689983777664511214546996169442171566463708593953052221207022718953637371243702486925210170840846909327915077045051657461180473467840166343402659132924433870865705757711311807953765472263271249667799877843063572784746053246917316988648983671941041369142748881938988297625109676226322836725402525636674778006888720024830129604639743274527937295675672684507694166156211937757349399275209628574991297757224782283659966438945171873915437016827064202962332022150394815562115812344977235824609433004569408995493597458831944020718430658714856507208238034221513012452420940773049217275829449778110147336753314282924061700960080149289317004553628251842600669413557213204518080312396247218107745532187353333402882349333364131706441988723536021757452483496438039892666783772931762317019074835489159279372353912757648487972264312744504283721139322333780889168745780847611448961996630759105183724609463527670527394972603302339217025149687409283497803419535457392987880298925031570452479879983801103354743753461225189943561416459785759240872761214390226777604637397127931631206909777954939848629694582567846861317032579131348675784056936493100724521076532323945439625316116063126161131798467860399867584559462639526761694904890488801595741678257350080652355518947248029008128067044913275650991205649278844520304351752537905568081843935023846418275575066166166365403447276449559911460783200430910527394232885216854338197032526733681332113233046472180652991734832242617771947735914269521067743682539229226642766980088729015996374862525981000743182258726395059938437011298333645059530216850097805874248639934772171633370091691573382748078488428950799293644580462860155589167475884651867171162701113635193138378162006810604752905645688146690480562259934105462916260884285980923856197531238303323529713752111845714979399996650040376107365433782918866875992971597383230674775685075007281071661642015764576126326275193322458560376189102462186597611815578830607770586738562026471892238499454563610179419393490309562960841845098238171525592389680391517564993231628512624523020175045248918789253526943767462361851310497719852179113570161573097380736877472634150116865714196295100695723239393784718672835886364118326511759397668355118492427407103634531965157935025500862650859054787704293997164466212495765579986333376455658082576653510424739755636109981808251696179221261248681921910171882403084175067161391354985443855952311793460634105933850599071223044603643886045723933264207834857684123266098863377068892130440786866729802446308824895227138867162844765727333005848287509615294066902940800407289046949087410626898676080638971790478674302870334632525812388955704603901905116900395075321531152516757634233230056388805868847038208497641639377962638414853286266665860372646153441721799702075572667335763994641109074776095943763353285480961830668171185090278889318965250766823744527289126836458114272829166548687623724413909136709162625622956081325163986900850268064611904360107879334953498890851195610211492843203050381087936283954251112006504130940951310274381646083815803421070477622568917922497415695815101610905682007886092042605915847883918818158683251563675805538481846036265372732544814528712561292390084682649637615770052754295825966951008757646030621755432497779395833307868830693654134986701586986113654890539429801514383392058951255648528783116751544461831442003288763867937336719741578873165863085997654387397955696770891478065909369047439309600570327539196304624036675860358939297507708428311840531537077907548640746847173810432862150885492348339272396831320783240016769073099612499240631895674224709180363583084326364394108025362048536081624088170767014069214509239457477950911603110351836530474047022934602547418664955548122579000189976297566581911526072999666022468681026855834386631494879736229925154964129041774923171551042026411955511122070785503585351231973635967882038593384650244570050120121998504106863495158782253985588970015101559313292370882202047213766469836005087586328963688647875052848956979302009786002969873598708450266130976539540509271859821299297209286226642756440187130730265425381519479142548043390351845502303800257513914494619511412888492257509192997318364699798038083610326677706968712841609668672247772877142447541640594047943072007418045058311744140430980689382908082961963573296262740023991174038532667517470323138826263837011153879193850474764665735855681374910125671251945201270139684809254594022745590498557002211774993417880741285280863181581975117227276603468891376742441930487668767676689159558004326936024491124998103136631587928482797686409120498861774853749297270007222345829629753203819931070033667793645103918211906074833057860940047661331932367141566403263959354754216730229526979380144949230639055000481357291680197522280021705254824885920662018727810755701350171716804539921625569803700624862109940297255324665932099801125695757719786030860084133828327157083016080088126003427104829865335342854806325576067129691321990154535549759986814850249052045977012824706123713917867281860666489793819843689778295055746871027424756584626492224919437088418675300146336862385296476633371078039711200379551203359124564385269732102104900061286961236084655308728608043240817854770816571577577887544596224905366655941029929173693165721058455206293311588011115037446354782262853566613697061818896831649558418077109480657808510573012526688418106165466669267054508170999450933414105472741363954990302824673180596163574331903338134227810498023016885719862363735888342780819493934804234428222307133043757114245903873205788018876331058601656667837380725468028589750070479032735512647939418352390847429217534386658161328318858586281537650873838292356477279993367612942095203568123646015689858064782657194083203433704453177015898367041091394001824751464358084791143917985360733534443320913159240363530866212559975163576176351819581839841663233952161836918033016303168821892645313808791060157193596642781416792530645611262165806632695128123588440558941538678919927207486651264623836523762760602561513161249080819883199116311939639377327803177498325971007323276580164734504179867595527340770448131397056254069604136732892634807023658825467553300998318403376354089466758391965350054250679313398688476480409107912905317569665976731564638217006735530945908955601513488154269167956775703306182942304891744852882227346861136588958363776944425310965730250635892133800383232016857846696923777680710819455526906976445656590838439584289840297416724619079744600024116284808070868036405498516405175220730883743063705045993848238042355177181747719288445999558358318658072080233816253756067131970484344196677759940372946613496309114153643012116270780844029112752724737663459614487633109896422308774033560913168547156832802115341772529875259028664826447054796919576679464526591907566952499297260817456434972362767609782703196206540076787368992993975556531936545514750899031139040061817813769193369586105972468989141325475071863329214405767224510143945164510039332551418629408030555802393960444062170152585718662356742482890458998782861197733263871417365164273134565594942766251298827436046492392619313901583175384331479428359719504828664587627856427424449738381367591201362925226006004412157177903972987525561810392052146861759534399531289414401262375706691175717800857306676193309038272713812446131367335430030344897545211407158453892040244734236285388893965140623675074137855769816853232151919396261078884922983804778440744157447586867075981860480266718236759972475704429344175723101101987332502562887593171513222922271137147581970624583169352148796580530121398397810641861260848963479224914176449489232872821671054731433521126524038351635296015168890330427532330790500425572782405187999257502688059085384460711835423349156050926051610553641407537990405403864339089126543839556176908840883145389705745056945427912899316740663128477153826810769417900013343135012234497169357707015893899657503627192007474716383712653969890289161838283325703320876805734391174744824788274116205369188466502841112207835543279051253238705050083257366212646940839670194026139743802908831981566133452054889766968421817394669881532983824799166822169196462177242586495689006614845169733142515299407210298942171379334388685766165712705177111947415412318155450213774898511405437715929820728768321260441449567259681374344866884541162979672867662416627479839489548234441847301386896292444913524471627522127882780986729975547140662576428381152868056706212351324204144507240087535965127240326319015306921986472971962714396049126061298764755060119298752036970760944485324166446763869088667843441277392456229071775456490601769372389004574466917534990633676831325855159412689653787572890834178147439047843527579314759061812362549424612190926280738018129887272555354043143604094210930551787353607551366797613640070700407351513218346249961032219532682474917012742970107389726332233737292137642983739638285571031232471514292228275897435551098942671154485735240736383460076690450692314581030531276578761855903792258309911922831260229135648287807606651318481949793295848801849708613761423784979840262513770516189684557914973267973174315225389654938739141262986679200960478356175159229310358545347298791187874997811054623664276055937557329095187678000912625902467460375511696130191674049357313724226505004377870065818551611150809942578881256033747696453032873214348672539484639015106220282197082611189136544519704256211042829465293413853500148238010700954207214014835328484096193484865733759103161957154789097606600649592174151781370787925497883727804508205333361868600030109854344552924370930314980205758421998344144052792895019798857073345295114091689204233616448075330123682842339796634441795624409297000506113889218653741683015760538646690143606568130159416608811981087119261056663785103992038868656840134518963462759966873469954209530425500985503486465676270690197322557153866002300213997908241289488739727056772131237040493568515260872787636393322525592722449029595214549430329174560868744368637085078392889642358381381621734199217732617784737721203231171717557570479060480900237145258709674577219893958439679655169203299737342547652421592686688370509523927310814322144824491850273756917367170942504483927574831598737703887362069529045904243653954502820813498114913199410993060864332186424434502337837311691751369442523923886669890158338973409707114157970699665762105628034058700285837966048758934851758274859527395074822012081713183592607851689143213428732115725537434248690136942518316126480195844769585727225564653089198645670083144060732928764664017225824659582144533698108501981595031847498099810300650612961857604108021866804021937633529295210083099248808202652650549538809982654476758666177891607665047270426016300973580493033040898945472488576469932565345429930102159952803571755799842014858476709211911457334543835556961555650918847565120123692855886653359561519252718547663447062438873745423707406260390459709725293655724847843652360057550557370231300802922229986007288079978422469110666821460920788562242256824304180028385960770336278596081463410017726805292450405606239612137519576028933454605160814830899488798831705373447170604109457004984754375808608054559655032981869250164734282659193439082184129821445786427488932009961892113325314523267585017861327740328066520341799074542568994438893226926116519440293309864247856375066933726528007829954514642501930791688097063516545674320492409029698442714647410579030592637467061277260902618799111538041446695622177077627747928714721821369919915703498680208930893728119202911550483161296602803649620775722282958726334959336792568970075509881863700346824185484423990334971618664154808645132579218182328990980554133107982035253217664593916402271107133062113282774513802235947798921647819493868087147484184299984420159540061656104218688057370569213318565817049836013022002172559574981470599872206365828344599945333105379148711874094408560559274799425122045338322802333493416913201369556520117253967506574239285425385879579533141425034612669399546591174344319491746275444707338150869330290030265441347024360026567774880281874756040092779277173734097908546995216885812286492531660814419024572898741054663852682932430938871361378080148389775222027277724069112152166243807932246945368609087417649958200656948542584627119289169737892573408741062614738750726583154137994883336338702913735213691949309551133909297281242037449870454592397463494915856150764232005275525592738492584585367293300502063510375181497601385824739245450477401858799811106655711981257896422495823656202913164250918937791791317599596422633882530512399822616345757654579623915530566221258037823188165842430000270913956060352503438858428524816333625735489270020709418115419237054360839842173285867578022549167610032721530760075470298962659624336977278656275929053043187747142934859719428917581624062638614889512912339931206356479480470583804824644373861050504106396476246448075687119344991950486490763296213854732854913679999461058037331410674595239062343323325155043382073020535084832212808836495152896376197706131882034268116333436290808396319732009080430723442621400201230572367678771108953711424550175012079623893272056403379143635935167733110915719738027817452971446073165409464065528570647273342782310936865652350100122846513439480317448179305806863847955155664286500980074261677982170364943680072717610913451091653092127739708390415701469528161609424197633854308884004284935848020723227624596381449258792329975169393857880009390989147288784079322884853933020317599503157313741341894398725386484771045191688592954769205694963831802239325676443532064345010040560736443902363844801712284149217137572308058389421410114656548792179356712384647808574740931820783550095048777573658220083730093131663291632060739869316223902957015240035107082926232778457512827255698046616310477477208144195089838955669069566878916754261427421851765648722754110671798487230289010786195699431213518940959328601590998274825516300422492715340932100637265221726617839772606126948542003451714937084388517273346642092332276935310875990498606853814494086998730651287330609527203415297050554531293978817822004026045954761660314074554563507778337554458582208024248556478292819295342115819159452106863481090618425406304894721806981519147749149307878344142951931933985943854375077097021892970928675255669440627754794961322538582438629273358655532134542654327556138222006871742910495264646887080194352318093694235298142493651374635983768803890522782327802754124029016339759914183557885413945553110442517872304411612586740637495141422515045318867528830270982749605087564897095347273790327691853359726009322332998947551969284189940753764669888541857290251192518099153476144903912002170004379640217830714464554293194652008348236440019466951460044146226804475806308873264007803932583076567940263679101549775758983349441833428482901643955468403628961492946575875823999556692209139366969372785426372883343842274558166499604621949962881251243691911141512219416908379517591633659563168318106907765550220672397649343445548345786418296632223982050046435805176421169205101994217531067011864826466472071039927566709239184432080734932838862241167859865002749062284008931776547549548475137027725968051055071117797823505617233354575069716696920973091190819009140264142692236570328668003599140931380382359870989659602529745314193392876580368949700052879388753900541929406253402769610745536946231857555296839705000426191932438113961783371360656643889786213499419672148101040173824921360850511014509582064779186359709734301747879250608845582509663415114599418642457463816618307566264744115461669087021353812733589277849526410034333485977351272089618991106012417486475931864171370151646203972446812979911918069434225823087226454608690717168973075146249277693451681743690021403712138957458888005936973486938470863151994555025017781669695157071061985706540167751724748685121444867704259191916211777694375084361979429636339727288615608814992292557224141319576328549309824394343594512189652155627183920491280802773377676390060727980388251293981827946556562887832093953038861717295246192593453235309838738246736718758439253343443256925506416979498703938143765141927319387830534402489503763092079008944806086782199208800921596374809829931347786954061664525065483249008487153681932285463196978038736026279243770410661843267700521675904196390797317665438920463092679645921007512296518410631542073843433415724810797716625206996597975500259247235375248555384740845650188384902985445124518593945981358144623251053082399740981102235547995377864535650509376050808515781131518661985395356367913599848980822906563083674254914419314381891152505132135416185575550490658429189459747183811240748735403498076153606733642442964284795990650848424685719822475671256602480560711854315771779482579781629685941704819319847337185734227706028215645375449897552592002342137209063115045662528299088722930125825564725380810939996828447402648938638829655363949565207690784979271369907793650693063337243756181701764885286021740267923971377550941521833139810598338610353804045524328694517552782722501179651736512156166084654521086640247297640939680309435823953724270808911253818382457666580742211962527999515190208042820236430915616478798078545077453646827405010199858011157684759147286965022634613411967594265705040416035829493052936367762071118289269626227039837343090248196026402900237040893786424350987465048447755555569048000752282652403439391737783466910930394118388638838405119424620392964686202263173535038506208960309373983842772011888090442208285153450092517672183997375020545544056336916947858757508236090222534340666254794528622507627206352058497181151980162790665611317428565194824905392511517759927325202561604410655620261359005884404280187087015249921189640368961665093895739554745008584979666311924846761796656432177403423661678958402969888461864527871176452825714968331394902488225362503308495339552348056863767914919656976752123814131811800143719164963025355112541174904708564242175848268048156177302140200950369243621891518599037511992001177940501182738902330053597270562348756309786195680618211673665585775595355965352390539860460257542126374344197326259410010666685059393580570614435371228718189598051144548829385399637382878311319732219190503770642252858853782764313059809805394839039373808285222389241383800969929217330615838454539631167192115332716206120105279790585996135862248411820254950815587075049575066782007405081683634855801370583258469025933780614673348636711981298624193301954052505330522345307385254838548879316345375635235215437325606415679806327721374391549917879785284776129101238134785968972866961747820310841632073344072447414784609482089250124173391423211435487772665033128494941857418499553256576676096786627345329694054312066782398010259318056295597314834919699571630894623853435378295155864397775561375723835058701587647723388318906928236024133253101652184561413428956460175840216426197540688945996811930053141917741290347251417135891869589060930332227173246945249319826622387209734232420011229878948743702722564667437844653351992663819196674315383874150188477317356514479064446206908569496506176364147694298171766859616258320985082606906802735983695229808782655606950067776252266307152513572753250016230915885752439752924397640585835633567515041593270575662645308454241512487776932491297718225445807949328290823768154142132411977358874173719230360265137673892171750727094694453095700070330090128597826975372488008784480054796701498066319900039861716609130905407992022416132972128109366749064484399272303849074750122947147263072305946974357166446178243713545628524308365602767488519792081979242269317612807044658440637860151546863866786861141382957842084239832570266883875178882749048452670189805260106276045294753656520978407249466731809351676285328854687009918505836259966133216505834995588132155175959595570423676641805689647468883734334881493746127971076074116353271031166128475520637981748943726009044671256812357749360345883356560870817048950363532272350718880742309173800924282388171460221993912296413828323648774595447866174011617686994133372288405130270557937073131116094046880979429806653476755506938561472432825086915329417371675618923724948801798427956542044651121433913774363415472893702616868909117228906454018563454027838141775152755389005771745002793347148422420907988500764460679663476402735340935335981213855542190849631164871323826392785318941647033007311558012685659739375441084636484405942914360241300568548015329456328187808166503941534526587630110940161048450866618856326606301060733934156751020283723894598031437257105647751779800721123980018465897724424483894454194189836905347874380903754831743613712850167920400567845738582933633223793623271075759097443758679901995261883989715488383996053478905254896983995783042949160876975924651544834733840424927270352231585071522214986877919693206599207717684003524385542470165136610062819361318371122829989229183867735435455490004668568991884084985172394620373676296906951636249794706581150576944760536075711915437963576892475786322848381216539928184747252808271444187882176027619873250007455998879729768711699366412142824453965425907264495430058173134928837832817547285273663374256966212785627508007600877248667995353010384547112804330659297081037746131201801910239331594951143539894180458930033506760066026539796629863503807237939025767321108776575153002432115465327651612295685403464785808234442732669263365824833159879326106856933418137445437953264016406913274028148444421514395422215832511682350657883157317159883005906918387809628722346444848969643574170150270931017709285278526547550758125460205282019594892894160763326438862213261090369377035917818153193308881349680037873537746026930934885064414503056517662510212666652400384419161027226284443997144574354616691984963045151938410741612232634084766405362760584683620928051233797940803962867229979827200267254910446318540678136842435315943400271560923217050759288814165106673619986465179509964053124509745503104120266841049433879046831741752873910955699260331600916093155324093201810130353958636662863812572542957952130538725418134890801295665217907804017158148528031666928977655345034892944590083837700426487331484191482047825112930574748674970649976268903961317309300672165010083976509594362063732612423298841403525520809313059163483700335709944035321093063360638158056360632548638740136137148811337977726220137314227144454565740318185784838942701473157808936135884912132456201726151034580447850321313293716651659565334640328937990352774453400468242034340345152905824364909680363763005312179726328582393698883418273709468181600734829564191465353788989008014998960266744278451091468816281847936514326642599699270899782856357902016248882016378956645991761670894450345109769564720755507091934008973376290081367327334715221092573445939255665787886351938916197847980550177044999465911922591701485526515441464540200695410800897151582470520683731084318460690570535923646882828782569057928544946195894439118739557822797225484055144046075205181132286094584992573876163067269560756171455460092089656119967997549849238634656598620376197560987073725836118454675166244067961766897525366976196765417049465907098489629948673577249349069130218188682513350419793928959041334206613235182717673296063188604120293590712441579020806881022098256028426668134995776069643357908024294527043985964278607792427407982956736133457637104868103306553194776080480422647912090713863398621707195042757575116098034251969714392500312565247652179734693260470157000817940368120590782601773713331923919585180525894075692398913078197698020411779202993679782663049727294614907357981926645451369975165917760099758219705545802870419404779173280229145928579341110414506094820640138007496865664471410691803953285304973224673031071228048974027498715068256235974716450343746930654359442098637855771124954982649742212313086173894044675513786719902022020649715255812592312049612330584867762110880978088696473204566701180455579946901545251973997627622912662480595660328517083637702319186098133550289305944568885659191950397332533283417631677991800143934699918664284337046349705553462100388716236446651255739089747119175283793441988428288392713002601240899350006903490877242566797908151815592215437451667517883078851959586928135691026654330507614204801864197728541744857075003758879304929010356898730288060557869110498788081349791179536968809414730565915312388928438927428134446921887271614235497533834815515965724649507764395301425486419272788003007034914182537728244668194764434366525483368983433522869418751780934742104334346487151160488812411226103121744970088848693355818603510479230430486263288131476119777837123768728579792056766598513727614331544667140733869368769822597338779361547802429843282258324804860033837766683512611446532119303058017533144637112154634201555416460985032944040515293972804729983422505560007488779416292119721238428093410880167220471183833070754551163563960395709652882409666673662489091363436808369692980775549661370731880039635950654715236976276130435901152020814900674017396489096396889734222077756379382249343766581255104954417898193252855120684142064924830024956821670495611436936661060559662453834290790483942381432272751043042551813732265771063935520716548802599905880316878129161540477258917790762502968417603719771987541190397359077168750925585162215560253007653639615796267151605732987067240803246826587728935451382849252807022223745381949426576232488544573754115501525881897536484806755491667311172699126946009863622989132952378980691016661857457368608975285609399395757096179566975121296056268452612253788762524840465440910658472038701532436950104614004991823202713896923989204731727476328205157289295244717460914905721727243878608130228193773536693225447500460841782621964822036772559088795741807195622241787517730250867322541341160846076276397460474446280876689196090595118645812959917301760470392367097467839809757180050325073511786805475735487258587054123285658467180403424042661419491301768364293440091095704925927999690949942791638091538946335335426990426826719613473893363104774037429992869853972974450560738400191048486473178449249562899332649074061642006947170191633684563227061934450959334960910033730155079650184527294310905489138988762503079771507221331403321345347119685399165729746510445427052395720067529299203815272223341870922197012626443131491661548210221104405988497741086694179169834933853023079294258664837429689437340446188511247308486132866152443842649010534284006306571560482106921232854354403710973309710658514206518336021156159562778671289672897768463526664274600603553221869433949117915613745036856804664597140922809550523012354031915810550296236871924958294269376199351753496695187171514073648226134238556734088367853040744831133912464305160722875519908183354736802554807743539912535880108447695763174554873301920716718728705146476116401233067090898190413412055465018457212602806331184277493869725540492757277846388447416223707977525739698699225219664185181924156743600926482154160209596737718769538025663280442894907761224484029732985724703208658663762103735933390515043214472548591797419184163331902926826504322607477696822254351643799405859734320378632625434358572656425952311430354191740029208011865183094974722126188943479821261794645365298016593899291991552222621983750900362367511605124099375895080423736357957936548700380894787543590286204726167835525096821038109683374404933553755800229809076565685335354211443779407727248772791600621142574202283313386845815944837509758618640586837452649175841546404652403167235581015593121969053803629262201178120812654379746378030546886127157419773676681754548808639164593238724923099938777487553913083554927767052409690042443104149300186322387317272352659763097309125938644875784595876552230550557218623137043909196805940130685897867915477300440319466794939919415761420269696436765607198627238253294408534330008893871741992546411463248032952522926355705358841504272244853288121609080625797409089510796176123519855263673208198586929467926177282289402990599683378354056729894457998803944990452430207978575953418292762302842827619529360627924579928146435889311820426165659412563843864995313520929268949678816483138102550194926160196761897443938994514298862958272468316435492432404582740705559442279702913468487491790833202346635959563752164756856449664859799574518989943337581749744209711196210493677021304933935430345919298259044110742726016469294859552480770261320017998413930658567883540028106574577192329934890416235081553119670197279039166650244599337087710907475993327009783182344820004374823220111561384824411112892793533470924156370678958052202294627667210401235571731134010957703148255252889012573785574887387852869976522098267018656617410953417322642366441821294418094463201283463675247582743027808810467760176481898305457883813710567797397054934521301832258122184675335833236455545392360764125472789666655506048451067019436607058742195597323645110298711083684713778131381399295239335982112617206251034047977359360892844469912543140600270145902889005154161068904369330570422961558130225301745217051863874739481055889196568342786878792727106965143297386191068476379588707820995438578288157266230053074565433032293808166164014269213802964144136109842029819232042246249624363756196794673443315478984110845461946059915938297142750235514578528839535088718899046290322430302617164634776480960475891199499566355770121721981281202435364034460809381915346786076709452119497357964610572108924010233162963241454214161814853811254893960441074870561434904877703925861357383228828200891893063880156341490695865253375293827742640386518645125161859997248273509296164367284779342945495300262343682821838673325851187023174623185703450730786522444868957603702620432513720973304325462691157412140454483039404017264730575109261678527576770529223932626648698694015513724410816164094424805758742278251202836591643343730246000423529891915986845354316639048252337611180876341793985731279302115100801863590549666046343922977811100174410782535410836160044625479088910308587552760088147795393278891986542031542162900926248720672088575144446620531139280035503068468410813026411188133502741133940852981659881598647615714853870405183625616610446942437768989701049737877672777223268278807718766016345617785948398229045037535150830461401989883052634597525588492417824330232302877844056754265345697931850109137760409169110400838470367916416859090588271998977722630065159804064378601221234734548718346556601569916755407964269915344905689484777226196092085585833230522555748181975690802441432847632023999603181501737133932758426276566670384158243726338170246227211118614753546962737160697583559446501658519839952064746673447937393409403932223711280704643018090013987797425449800355010521377198229607800566678907895207549057826991812812219669282548419267710362542244670777902008093119253664937520357089751716774160869261243924020101460171236287541332725481738672592456359779335726605411767038053042975820742945042539182715204513234363430441049883559804708188724724575773711585585783764249854519034873141258094618212441629042419963428147744416192901640590563644812382126602438411960562713631766010856079294536604622240610551176137532173948657515750790967802657428984424127357591348271801049960714263436041888735205719274969160271379973323054474734763944360618875992718114840698377507995458998040134747690284514001966465244051387160991463706873784291987086950248643277945565358265814011193468679526989015867564023302525926959387599541824566768207899118746343114052453405774040221012423418679208839541060038904851634661293956306849156572136930384241151659396542034185445775114616666199736946113515873137162622982298299663161377836384265798690666327777848686551320481668519490179800294178793290010857592690913526328939888173889335716779825589318203245017686213546153953527557978776175153568669880870934500212894311549182653690836114142260426701746304585215846438005528390292436483047208457122084270775563434023103239402840195052955088406389892472299282058191319406876952134493870146356918121687537914104118339021136229776608248469048674769529043940893506847442454940461322654806739024630209943176329482152393946451159236587160855763013275167118249872050470141437517590316179826909204901288760010760793938083334427264455686067180632681157111996308578764575799918234604806893100572280545293757140765643647764175433296783025945752636152797449280662148675108584537439240706885775206527239911045036979155800145918056342757815956921978614086807654091368115424679776413663501939472698466331214838248526310089472253321356456776613607246612896781473727990024311843175646593461792072411481625309290667403999285850795409874604465144370253907637508069382806190218609865892912648505785123445836308678425535199739280023845788650669334888084263516333908768483792005173141914796362268558414384978009157179019544437907052295011146720377340711282032550503165516884863727800626425565571786525621724022619049394482223936048241920334025257014931415342326458541299772238567604961083517635013870570411606778027254309836639955977502546839821883544315330706689074344541863800557192162555282524942083633506004567905760069083305054814823717131899086336741706492927323848483539948448655124319864651342427121197636413766083041966764080861387450695054050267902624140229428965129085997899911108152399261369125849714824645079382713682165939723183764964390233477666978787940377507188831125852491101123803268177080523383515681180293379628899936443094543727777491065790246894466444998266611816217305101457090214718719661881880391867955205156587552974157455383799957543350465847508476703877495303096158152350157743403477104245189993087783922320825172057625740182394441973367863995131713593106126781123204935979567452181835731485855508219670654979318272879137910633789827475371824785598383445608997085494329603489710881461796596831678367792210611085454816427452477849042921648285967736162365528445922899421795292731629576632045721904265685166414357754831146800641954161325826477052082218476471773941731422548768065458317581719660841056798746960730028961289560911970244459915517319879977497865720025509790028115994185636624479897820421246515526075645482747964859729029982533107905735779892003838205293253497401276654343896153296053429434140570478193318696582110048322921317473805521143470440276195721299846374307792754580220608448959036724762478460021916096456609377907741178842715854975830801981648427920588227143208707601902165229469136509925579471041974438865152412462228658744819267214214369256598123909264208888016381276759076093515487723814931030857411652028594311983910671083039319081688299930021191173579879393329458990100032204389232178144576322933072661807284447979509835152276686317612905664243338555677500150739483710016156845685198760255043182576752527250549105201706700525584627366724648782034894838007628082678781050994228392921591459602323376674121644563669282168601658752363496577665855572821071636730989135582875517676063635190232818123673514957284437418430868696481178976525996200767396882858704382944375880624645726913371307509028164655223074246652297602619558455950492048471455776089488376708180573006948066024763898976344868197983892568924734391298578189802810160176773737726543179312311149477615412645999787555401139792078442015306718206232192031531298784743331022528734784903185694871749422316589509240859024490466384376755581221511402938100821121681023525099868946324239943399803761607652331824644485325590772136325056749810414869943407926707153070954620768813361638811503534994464554119671756549271352237934244375115933185391519908214591136129866306406013262277380879691789043125415300042798515901001598528270676937440772783854426598077731008226823257848581705093677797462510006355461807151313641341360507956740280323789242809596741158284848140219498151896323593296086776257698664467898297958051552552094596720970119552485072962000907244448462579578619927413345807849992094281813780090607194414397163411582905900708240705677915637596371982582953544366360751879157438329008498305609804989473580703101552567559873068545615509499226910997831141683418942786177667330476077972429750091450551448226597165993942267583473672856109965876483007333663325467720620041074612289544269771865094795220881466462622250440241115689108965248691655616660333607026456946906031488575583870137634698785778939675232678389287105317923094321102453684294544465033981818428167197037317213927286474259550921099197370025032693337265317129814405046687306234946538184683222383725188709704935234100083907704715661741531829312908009728306006174876430294541366722816601615979047665773599945848152281873371896074434738226336261468596852415624721718107019647691437801837512330953324402491810813643235331615553385200395967175783617799685760066337447489208026717861124713057646852331531915194706835035048652907499999911636024332825616870719572101929472307154188716133657594866350680366321581404288175671875351404739091146106235877808115360276556279456837136797591890467553111900530224867107878968518219304631870221604602243988281761028546802152565812413898422903813894341045623199291236255576163661831732781725229689230627807511431822311567174227448426972929382119336181168372708621938036026225671973975071040646984587139085882828856489246013594251766414966002148340714429817313509576946202807259971074732965703595517115787576606861087361625327650816941496829600712738362706932250793339966223356659677684032139462926595633469538546502507210941394183254781078371644768916371017568478413558174980453242397773764887595103303371230704167318893584642689029640593939773774319308791941486265345938659717478822606654437328814826825795315046042140986690201770791416826630052182691515690986960873935937226174718029583765904389722292467081729355396236952682511330314020462819740193055613663934825883011593851012957804464604790786603534459815513526056241584420833893809520806700506371821947998254163005497304234967086968657969240099167581198172135899748605677870636404472357475684243944773373182481997593994960783655268191612505668089174931240650270172671260048888616599217378423850632914365482598492806267085685851972927661712548757415728892300947175979689001609239272514523180798190609802104514262313198509147413362027490268004990050959675540124950045160658919577118227918618311910654677171093414231293119359095626141398570576676658825916055563059576334342676038962096712029135028614764333657548364634089786991227219551845515236836137557278496285211003720963762238844564779867289763083303259617432508668042406044601217250375675361601237542648169140758050413725005434707784145974298371129525736482406723367690088417552937977654621463800564831383754601860209016922248649435778007296652923943289869695704771574666469574544042175861597237095069437807992860476209326345930602665651622074533107276465506072710628419531251978939706252725481423094530178273995592448480181397671382797282099769936420116954603047451746235976697260073084567947430369029006600637724548807590189663648242939150153001941208068337867428685640814053111712308562773182842392280641793640871762374736790076195331635116409767341421268755281785146299430818426910641577045840697534034862105747330333520104028816778397173590144359154460989837919492046570776075025479293111497411261758111819869230733913228441930897251707977653845140062946889538127644379995236148397999623701728684062690234555133331049597557985929360263159240143154843508757469891226953802059753935738444594394737324975536853984972352075514692865608915451835179469572655304491249852668850642863312859719518376263197438797323247029882983936053132199818494620090647146780425875240779397884153704075723134378835985874760550224275382550320697618131777058754616616918542476037727415755303985588086659248907916167615909533244124408802944347279543178912994965984546188265854362200163524596049395534059761560017488936862147825411791567732404879293732866525161535659813690785898002320191317258927241511021005491553623007155863493977816464301839061862707136950709297385967789014935225890562135332985644091237018550233519556986974446790935912477676370830443064540395455183972260907864447348086862230680971488981839134034468002480611972669194946773594263705524659313994922201227620206693084199990208799888663829195173951484104276545804344048208139617192639384270880302531519501529874155381478921950348578423153077460776629359542064632664404351403242750288262483504194597265854453331492719536949174741917130614855984661283251327220098377770707819389625708819325499262471995062264330887152635390074275457015005395356623671279820374071084884576497440831740911471820114983795422038850953176897584578231833091813441049707283116175555918601323151423684062758090404754779512870974608268861352503135947185787381946619060007249117976786085292424542505934333199946744513967930562775947648982536881927614531190569446386231500229690777480635485962756550043222340097081451780641038019879407035050451985190605817199492831214548232268706587120578888908263899267925237207196374464319209239870820408968930293639772708626346668800715085840732706741018989095031581627361438004237128019465258040148539530715035804135813352368053256793746710477566367070384922704217086112274497686551418895666317682239887758119864578019544628019337234825387495136230915969727394365258887001043510478176716157989008674272907617744475766321976066511539184040296193445196758532243049548647216304278760921671637487414130930113579066641475361218124686216717442817300636128828513537746823958173205210311132428643680434653535512881745598403437099268611354780179906336094717926709685916911471830375876006061664216502033308490887811043888017518278061099019435848628180016403751577014163203197567733100985701427470089590317396429311055050923618419937320282550703067246740678664318581678903494020526208644346380634082191657263970598914733151386678347617836518304855976829921767457310177568626858199030149471257228120264167552685912831341782622773727004310369500509193746067379332055347977214514246810714569582552226919942089563287715614868131110034602329655610201779446749323085370507854591778020289503117864027670036095216396526841085340728059884901704626242133610570488835993774771623457629218354033301957974881888085367537203938653477580112588315126723370629534557673528396184580897123923777025823710860265388603186247718440346243141564809609715522210875528557750200772076651314152516476564320056614684032048989274462329755061778656995968575718944529332734858320720674737302044464361150525082997028430509946958558344956497187973780044630914903811643635811895744412359031810496346067242905198276459285644075835833183721328516316590437585739373840211579381769842185553602000817707287292671074907730322149703821811382219321448834534774912570187569269243110235972502262707636495923816118412404876524776100100672690451435006973775483862070731785713426423479921488131629041367199745682366234208041585413762216949335331508221480736889633383261152197952978047096226309713102216551911320776475290147273321075592013596624853103819449097277512504260956852833800062949844838814717115572711607173509349219876443330458177917115958811973708143591678026014973670100369161896166965068266545758887149877533476174980364905814712728291367236964849136686325106587817302779984985367573472449315167526651799718289498792832864059995497952016490903151480576060914940217177507706792103387814825936157660709851308056035743409123306775571272147695993413970193849690965720382109366948310309542337488559424375380220333928366558564817125736770756463942904337640634882300110772849599767482786256739621208059310572426592709902693622578455007631320454257781030293224096033322348140908896830652339418964114946839865696364476726138881610607516976134957434676050441577394857157633710421820770626616463926348477905186057174049692216947465432685144108480897862268194285259952023229730900254042279750677916801384068120348306395717402469203514684933870088703803172250369538156610788362020441786895798447079176091828056810781643366449421001254225782630272551007211133709738800115831741789138703666182375820019054522394791453775299853827400225852895007723379651842384202782983131265150471464450913423357587029794121111884762266256787066578418902407456534264985590473497046044663428987842371560117589513368180826293017795909107439209080916277935595876804901618149761667186832428551467448409044794616204547962810477665553565802215395184537170127663269834469920689559131805340678496281025761737705256697526143529918880792020282840320872249662788026091951133828229783343205579602264274975896588772913262815656405233396496463751023108729160243382783297680025552243017670164773166515614688270307325118158802585729142349531169071022612334404669278946573930258937003341961873494601418841420324630166254706936789988944466145745823863179060387294788064124839832215590689264965637395686367038353272979079478588211879176109663569706607517309721042742203521942265334309201895099861338095970193099637358699884801367078551410330235622433612738000606966917888692029852932609889544505735681151954785418639621824511178228340719843901167208097046288411398926776340574727731348708806341381651677526237478387352431971583969312448690227959531510244336894463451824554339389274032748008110375049358328353284057928930738524110156702899719271727938178300365076938796481958307271494902285984878902759793883885846597538991201395955643227010683216992145499326338235691969287436759725184664040373165891194256879070838709258587441239578862125765029950973264461454157055794984835600235438179352247732725876184094658178313678260721194246023617765926624062592812581102636422977510089271484855361720099506365363499946051592355073989329719743687795085468632776664854956421047036840719135378713388709579935300060264007182715880394146214021992901096004580738941236678810271958401238889933570544421218376119815509832128544443279372319213586529853150090438182402190210592360688642868506267466161190871856753157121204182712758997478516566391722837655255539931570683434830091555749484012439395044009878486055613551402455497986581706648429559657516552543308913268354394768760768001358529820843703591849033281801795806962638577526341072126432484315989044378078938165418161894456017827019709928679174968042788630859336260196900399720361608826884526822567063139891309619926577402014015034567130527323720306557431834851572145446344660730104837179974231023310169514124445891014751393891593600888096465016074025164794233156192322521269318139570077267907923847761618841697993781099991432395291235888453451511602381934571948972367023890571104037826299943079578061958584085959272279750445532147417271569354258236164738195988326160793667425290749153650039368262426476100810652478020981649243622079538313350401782012328473174078802536243008935153046729452349072366506328516278256940603461220585002777528905112806534990274165153393982006021235584405907607560466246962919540358525470828692124248313007990681251360331311474472705088430022008173099874334424188699840746996954459577753257252488187026007050982914374935754513344392489619222497262643443362583940768114005774489449848095589928864436587943296085865327446367564619270067766741236423841261427237103032315463528283615377823874854984463827245408302807155942798096880702995857501705801101736851698462355000848566335877630652527056844338582723462792891572760275648844566859262481956909407089729848639225029225106618418374992004344031411076164750363481154692274322811374265514987062127821000407127802288938660677075997415580528086931231662588437823490679025346377030033426482426718916577811036176428298571811757632211559626342107822901175358522546241870190813729744885753876571802167420881759614784103486932743124392315448953524163868618075398162735913301134902494273459080773317683635542478292450364377871966072243889753069860160987686502365531359821096492592478445679852473971731189486119347714398210811872073187998031868670616784866814955244331270934831331290084522090369414678648893305888880520704152583914090181244054507817510634792702393510682140784812600122130825323911327736519735843336295374967166417583265607192028791528791359995955774280110094540174633161822762406464505801236951020757397408632713538672205663996152053771514509901840987887880896638707838575801951668346473872503859952792024474291282617565664630608304957533767591958520219719832159351899319156292830318175708071070978670527738442042191245261119478012456262609416962671002078607810622556927857946210500328104916794520520798972821518403699166336506273572884133932449597005334464497779178346701026550240610701403845295389271894714168897645937281533599848719217766496751888793027275457858792720493279924376283086796213021821280288937277005680198619483915638556279693302207824500188419339974001400924251418056706726261924647644769970194110420909360915976734304727816041938640219520879456805152289801743017201341321565904539829687701896096807718725458819746264564440013405906260241300519123633630293291057247072308125141944068550344233885445540269870904298393251853561311627731442880287531952865351700744819593634151821689519395422158095780264625514568989863136935980245127741482857498469760888873183901877067073443587454618538098326840609353391262796936342070218389198321685929670303699614767008813714628265626341094406215373561923342467852783106399332978251998122552457455953878911321960489844666056341375976088463609503206714189620605101417726088462561554547224298020277307062701418207785753650498612744085959327458436316432342008285376084158713851749304326895327495800469898329604480731409496034200573377421839366996856681795317489737319673341737936883762662674666796604612486339202229625618702603085031017007403104343014500793145310968425226088590917586474939809803248550826033910879968176099631591538709794859129721419070455896915192483260930325665288529163521507872571078829736838045788292865376656962378317239630402098180683064694060809859467053537171043681574401977185884759563789588938102346789161978147141585893470788505099779717981594245073775136310339634901511680431276636792549278835027702040320566001675108191848361181301717889128248145265832305578940113393723636623504774627445336460759596758378105479841422576684325830245716254349696308279923154905908537691799262510080974058798037369798170629940885485062666816862793322016133445471954355940924959616873384546899770044863464025650984795404349584966892758938765548771257409383445382237572454841170456957580282808006948939698308415282326780692704559077581942936602683847400975740757693967777544579318719355763442136875887893440820680682326330944863685894968373549091209665946647151925146811680868057824481814393234114618501598309498011519947213601363209215022065571093057259029250366896049884682225682029253809361440111893281987641573188791123685223832411983036057957899428234172336315803633041124099966992345205682548445145596535543237169823661327992070807505382159464740240553168115566292899009823710250275355392316400822099462109627285793013210662134003284939405374190607368684226036994208103979793698217512619731649565468701177950294177658393860547085984380804528931721170932699653298935002773118408772856983486360914048095349001771066976193826584116203388954421852673866876593822652947845614416756486902114663228990324461443503658936743317703602460734106730469600820527840087509594724875946164733412277199481395615003871702880398672198187075954264819292802737811520158118881789091972106225297529899746849334938252835366263807530118420066330126012959725600303959264821809302029340496098294602689388445804298168807724011985741949639399762400934979546915954041243092185952030240643274825591386315944724266379247687694486204652555703657206883781402935459133350523389591902212018756877209052320301146764635877409312036618329158354365104677520758118493501269489058515748808367058183887031391339020914802521836578429628510370543491848003895736444865074247168220060976826182274239178802968349157310677930016457323174194914826227286535189767090342279750828614574863029776831590777339607612992425917900479613662179749026144045902589708455003471205988628140632422360997461473651909668326159804939575487973109135366506878383401326186524066422265787069214385962222582937799545056071748400403991385269453420183818026100784066949637999150594356879703877403656071185725267056989132863619195353515432748757885342597165230433945132236558126080544866388783725080503979979024572853725738435509626225860454140347951717000640032589799957760520428679116035452105616814150597010829894096538136106531578420629733685599269223205547677930291327844080011018809295027767989667915588014148153297997478154801223545582122278663038880144586963623697079511526855130512963880781381122911835088896107688669787407610433587685637476980661461424636040170263550188240473672574795835706881472543761062051801992159941122243363309820098098731035046162394142722848051894399456778889970147837889261888374634980033552320902904019005206325103826209933691823136298684315334457631072252891500792099599810532991943323991099486678438131743820789945456258842485010972817710174432040624308874374074789925460822428908127509289698213603779910242784072193739482119538685012328818953252910623880221962118570399379444188902217854870934632672951119024834902060160247720747505508094236694656775997612468316076706737858827234901213572158913328449985478810854090132578099087003519667135539685371420391738045212740442626623313004366257192190330616426659302690673988658047111108046807832118201973521999295938927243814899217221810983937144911729108217898169928554992982752083851697979297240638919085261158853143168303423530044577637622023490884320388018506138837453607858963922286738243599451527085699205115217950492546669241322690551478792373993544641055480669445705529554300072704348883076812654189680937450681117830330305840445806291786549588426969268379149293481717472621785215264715486607320980687125818428917997694461832791786839033546621675866507058670848813701647235899359868176523388525567765164332973816212228617632245151281520361520561514376310945196745997439450299350962958447137797087170214768835625766771844212803140653624748865883728736764319943396370998727833254709559848309889257044009765126248840355823681555122992116810766922313403043805665326483232364687719468528987741720040461047999884534280629146622685941663813311548931041689612816674507551402889347549781188297581883788609603302036612946619368771415875008284317356211891387879418386690530080399026582495031755524919382049467269825599689192613709697330177792755960546032450733102145439875342335426613899513639494193650313413955839594711563406391997736475436190436778574749295882001749077392124507216889849475999745301607115063308314493091589914191553871909685953358467487755168390187391366921126776176827492465528270643742067287919484692264467695409145523301571967949876952038461219093742757036296697508710366847323359058794432752854493813227337787930872960274151738918636228163552575167608210532203161212894450735984490652829947660305032572339935403705605094076234441455328979419917117293758703591495460602069565042892039366423170795151796747779708159871332318470294226686204697757932611400984220282135300892670281214402863687465894299705468241860724326910440571826267192846491773672896826570959068710498880144293728833681017375350924314997701953891582531283701839911095370991854539990602275972904026316280842666101132356383453276251010009296781575650830522418118061494674963134965455546109237577049099310227786095919887423538596414683705267652919823484838847677612226527503612071663800477415176738399391242313800246885034044220560431154940795805138867881871190419274426111440238159621698124647525236333455816218249833916084040293943513129246880786326614499822624137391576194852400838980692515698660240571988201706126465847046323595054806949621982767177587467222268858364284279669896586818933873037598337955736143787344644331415228044126785589833393874951826511898685210345420019039435455656278095984603266190168003038157851182422150898596020334608199314105705104446282417704108086967917632608643695261866921332792278425836988890433065789955072627294465160854326535956118395335054346433421235206271309716770370700302800147414713725374418769136446493684131589809805757008941799095798509575075839937273762814207063336664748087541886163334089492440135057635625207684900001029433343956629098590536574553884496363246799453238653719915606932264056664048301037142604236401927374996521672533594356299971514836671899617768454416042599040649270735786493438476870355101722600985943430646033814853605618946269328897618097919184969146629979971614397498274076061052060011362997746586716711531862508471285434800775031273619194664348564292977697948119938679148913430008979392640886799126566776666508296786146996513397582307643552641904825516232822408966368991812502232968639153795322914705978004352708346792932995167966089028604357323322612324399265138141413290155287796187950779278634784940739000343151250863394131305863043417839860752191455074595536131498322388800705520922118701426690722535948125082724399611748687750154208033487255250879215521865608181955008113648801393686018007534623066972509949136461474634903759880316199125760017996640868478768577419158969910155237061850298793615276918329754718847526181238087047701465599160534005178228750734426658980639328091864869865894133501558547460980288279583428888648829660806341325335994319669367067307200387822993521616865399498356439481696791196015384307700096411400071596596498520098086903572271241731023158798645828370444515636994577325314876004226963889296533791703230903364269874347198899061701714943847268280591937990881696360744352731310855621589270134115529861010639551146067094460662002663258098562147206501822021604189884340623545809198779259394041785032714372570434060659851683023440221909443702529172957300066094141941528176710411632445488862790200430189370649014294666402807752267696925883844438307951444765828762443729599339479070047568355256445887836750221041641331615225316966369833070525088414213495780617094333301364707205452361618421005486621713435320096946436587722486462107365672113035813369615995697570548649210774650093044057939675956059907008889546654744884403850623431315537438860792200194138131742088413137191497573055502560297600898091680688037992971614280459495410905286698647358566718357105212648518086871815945093997783204596515106318332491521281400654736216595463358832488653055569361166142617767084773983328694758015055728172531162421951638983618650488491770326686435745588079958682707371380309725311005836535107484593830484786438421872031840686487125339017576141818117392449425138808092633073914240685565561339917995797536581150534863219169898243018587094748772207640274436896111456415800253822780776199434038897420699476195142781057426472858279393847867954828433978329410781022087121270790735960937096083850440234741969236113800673845827414635942254688375207108948525313590417052535512102461055201110065634321387503001157380066139534140878472477633156301281290864030482571648744757572911779208603243178908665955596657918653257619167693925973110710908245696109038428268112339207935856789687962996209769318573073027667981817482884989104675029348664491356831515896694550591558518857781170536963260240645973971615984498956936681121180233183375188645814303437349055392541397102811474908589387962639641344207606799765942354971357993356593588331556318840169238612953578966785765705263122399141190289352012836059696905762185142211411990271259349033379180899529554266575946721994434174581003270464218243369669006943367504939227325909941344810441231492466460872371306958444664541374661936013206730999722608149289428363417568839418858629010754968374646813022521636038718555841476246442326246597188885957089268282654162284931654322360532803063906525661185250063018410849503772178184091839112108800414020454036570070409088789122625445520724962336193665879401246364282451772698675783414909280507744286760320110487549644615361749971099905600381440673205382953431753746533537818702420041265169514987199368448032339732016179768960862564846206225536698189642890252177032372321645175201868314897089151929706396606860790651021335021412044832138198943121025901281892824840324393465714877751496934156757532212323119850921062207693607171800349230986878018503477914712411540443961836013641385742858525824974673731853629409672876689906256432518901836353495269107219292969146514528322055692281893268128011296203393951986468452227842197851628471320775035836726292665621294987216573564570712340775735907256978818442153058537734668837485350979563863203887272307196069286729426116163895968106003945405615184246584754153956264086231734746782718501059761677346913782061714246989309026608785407404416479667046492074917746037505030580927789068411949864825238766312544105417971224488884235878553181579362850823727712656516464123997270898146221237889362104323648501144215622003391824728302271680023231813748989864848530243548542929238679184221126072179575184377063555957573518581929498738530102752999265416495063413588622553886845685009948539611835202468008507697753292614850050288619766410071007340785452590211345748243077884235520130957359650901064616521154880188595113972301515233560541905454890688987436053962782787049792711572392398044852084521960070907525857286437675410004898886517844851185725532943081034404201989304227797699048770182052845002211162333668412252515687696050214811139783803283572122163693932405312946699978307814036559997668323012207526549110059489344427880714565072713831446386114082718668155880715132800834806306796268626396517604565859659076904006859131923556838589223190142167724933373148318779649563641645885766972232063126908041546512283769613008847696965003361955968967053564611040574520899086751363384432104156071325520855274915443361434450705786090041730974150332439373579621550046438006544010231045705776477492856817000459412916714491957726045565341774997889269515973698690394398101108860921027308837003147823757017735651751305093063770511843103695705282501453245299279736288746628448103186390405163851560968598924159843360093684556410607306226896242321152564332676799605567030438364667733214548467288311796050692247735858968607490621345334622787182122867503828725335339868742748093433222576016456651549038650149553686381724343130297593440454233179000653325616321728345346299072108347296005031959896327204393373039514998863417402428821298084180083695785578421638578766525714750117240983375883880618828262335150013051170017603519665186042450693193252539964706325615887822284777202706902410276789911979343652518449567549711578463873521869775831208911115833596446455821433385463480808813753584003451324378958543975893297662056939086984653326497337028906212810863937522140126911762490895046096809362406749891191648640552022368109838521028392139431665806763190994357513929028549629193002465503722829951537121715746203986904490233991750504363029050893985177619959145384824358948440738383051056572645808752520674055404396856627307955930518838858166102205505309425565540474535386715909289613905015234217967063174977114134277045041891739186843542464696284439921106323820564335757693899834746154827880134458100849799044921073658405417279512591766263420783182308524431983317884197008419553798020558747371513422457096145067068956258248227899075214620636708110853978365408042907428480873210888622363189288645859438742709859222303292177745527247424166392606095854781872944187109205306070647900717324902831421711391378089825384133699496736853150095620978381777865941034574441852039314751760909831295391917753935397901125182574361399164083719832440859487419538502063294730313911314068888964491326488423381255129118223475523739629926634482037361095537720042710721793829522357377074641303819872391497359633974064007746281850818648974004123322828523761283596459870212396327225990581659704262181002282241381080051585786469615078968112319299267148155255302062237544437168420488728953016739337122313216488145265207498275668171005386195652977688749653219498661313221903683935215054197628634120522384320299778111826959195100669497188380908958193942469124588638970558634069877747592082441856440925879468331836978644353367899972108733067963972025366382651014320994142541054992974394058582631865042705571862411753770931931260519343042471539275686035964211394194155587825532450012736716924307343845529075331029003308932104534629529834463434221600598046075523907055038440497911131778285415830178935184980411870591393097746546500637982609219271515663650063336540458272309088737929727579326367550893799340123004967758531329399960870047641603374552431772737991944864969107306362660840136942710974070474748741757145541770313847352862572994635197352432792138983063852811497515281399908372962690294605304421316847392703785172950289546701078589127808318888690179295025648915559361912722620469772772623004566259129315716733056806676044794248909900562658498580876886376907588731732455712324544917681495498309783551509069748115430254407764069767744334983827055823812593587587086242062095310437201502811224371622630526842164026477034127519140704305449568966978425418291983728245739737353071679674662911170488115500583962285719347906779978362509492656703115448341892036250585495080179695820770288362458209826818022664870041314655071672617532566856506731057567655842550399090016798858312815670760594128961462127679531392334756423044947815389580865482667242687185739947164723125620406115653134321338040188641161584175461792916243966556087993464956560080886712494559853452157916257414869502213760356104610422369658665247133099431352613153030436461567172472820634827804554700428916083002423232237805847401304322609968580233390719373071319029452796766562691988393979575894789835502925612270961899036639452814592658671289781485790119495502561364482503990036691305116201890481293028392898171490836210190795506038816963407758531188109302089337924791575774170240719148666549840757954890005684921002423870727057386690051335310463492954851091586444721396330097669903931144972453668836392469900727991953589899117816640855645488757125324011213162887996184765046256024089310976664757783218519372439461683933014907640738675459465892151024322197027495746971612080631310672776442838495164393798472822697120407998821111035421438617402379409220673260209698260751701244065853661177847134325844592404558335574372698521362619348658925258820240952489697360178256022918207896085300878270444676457244579526047527075864121226142536691410906646231815127361959682617259897203280145774421200529009220934789061990861267152591771045890272635691294271536756852846721643377131462711567190754092580466941175481637683636437822037185493960250689978782765757850306794646641002486345373893746189204049263095221056794558052639637924311855164298300748623424551639866383845717006047793504008402225398552607128352537820863803654012718996548135542515148463961002942096815497743640618234329198388068314648035602677067890873222655159334192521094657909527384973379760309105784205849404607663528721028202489134886472105699771474222410188810678370227213219634788949466292180835949659465457179664757640947730803791930172217717786450188781016597987305171674363334715377382376889568633402332898065545887909806541665808948436438153901337126305826038461099847645670867150296871350688195767925710972227708509377196139112738412620339094088314226012354048910282906228329819600278855966043827797474372327280028647060575267813658837399210325381146964135002169024722933568065741510369137988459272248510014211959369452555510886076946338894220200918831217910832207201016883181816719766603219522350130288556243498019177021400488134202569186008761415506636019942771187856047139456423113009129165293975673858396064627924260112630834005329657961661062967142772855824504920261702032552066625662231850366598444258295879254056994583251811551837892359991487938312064850380092198221317166712303237294333253298947727500240503224826078842350106316529491174187736780431929869032864482472547950817115007236209850256384412755057512376621433118976923450509170197977410090814763575630101877183095964543960619686652899762246111321814202586719219294241487631564899276139319220565464007576336968536779013751015619457414641997623639164057646735418554547523319304496188456012971956761182513767648440439041496913041768436678069036981053550806934184405597600966666447208352907686887430184042830230152079135715094019534529480390910575215009754484625163664971850211514304500236134069199849391397048806205338364993519952824181014718538292658234113274606308993622655632520848259858819405200850227770887193956057157381951141364519498588629556979533967805276877413839299668797344327039404744677473826388587276562576699813673343518942679569495525759875690155041037080657958800412229211102421261710990329351108227767815177833013559677987714851562322034038690157526548440355840339377347765049096536572056112060882960223430675125836344013521700510158857803827712481821825310933003174862622256270872145619891882661952592275007355721759171025669799416366390800904724954644972599567926941231596069148634611663073004006088474908999748173063715989875459721463064795966997757573427993286534858654056417313791142875014558771817852851294403099178230100678672357717205298909454272599644926283060339702143684429505412141164126064323540010761485007832767642740808371764707663917799356977029838343990335140901536997436155884502855400386541124591618212933835858884459946504589895270790240776871035394834560486236928462738937759779287331269979119514113718239895882423428192004319029785083774791064408400542979537801561441719322226678862559329674302058019795840949912994232332943567798521334795424889393415469424251722371203495616733104861418306350807661705828281714866937010166914281924223264966530822616599717318661319972947121648061174066419197102951700234583214357921803834479019721659511739486078590037082910781676391606957971575533957335152988498129484873038894781680012168928577594570635935854983181529553459115550666691828503606326380781064777384238006799593287031398880343593328351711491928360184131320284332075590486747365525864656486986668338051724439152950849636428517515588343119864336535154814153141386249656378174823978782094608305389783711935033470696698231636030375119981911387837034949626048072841275532675268168948321074897909192210624459100169096207743935071800402341115294837233326236380858248058089056775121747896440701106611705883449063302788123597985893630048577507354131260523321290788283071235591312720076772725961065359277430703314223270233949461907577013870206563648690328612624603178641866247789190680778056197182511012682219486149501088061867834423279726033729977357452457134754358995164906721219552443372432906924948851089359558771549358524589185532718268164657556131445090099652884172194565244223312202073333974071349993824370351619851977541147657507620450162141569693258679155707549278792612106634735157561431713967138974135602281402444992708415351280085815654092687189140493162615974579136098576258873106059720101732058928115795269393459254330503567735397916900422875506170335120713284340076399953751501626975311284894385189505603774319152994783796873119134158758676348934580199074825254201667918225480928716782966679094153088927010473669574086458378847117917151888199594280092860447374448817250940966421916499654718738236160486761826986869315697492304415495211329430924691597237866850330544195613163145360317420250216245313860468202141960980234547160563243723101975396417242792494663718524998197922468628244407689597637128030052374115219392475461666120507812332893258645922405319620676693968040558480289594135388707290006417814322886065106883107896030060643229855444360664210019799917816012363378980887102843028762714982092617405707112506599513639515648994891624476048114947206697137337896329998708346592800114429565514896775988116876073591373107894094044009398974874928426588918214006797772775485281759555760592817646785706238910221919599608678550833282758584682977916268929175632653627028501975909109452772005196731486826528771735632570408502993896422539742122690484883919977921362799389551113730979993086970186854688974801706975809291249105414255728596338522742224905465420694383389520371502824767771051187117514187044493544739488962671899228080138849291120777793254109250553474231520177052591318246170043103915728051740487630058600209040752588296790124681138756588167803833904764847919040723879208007488013952880760625611982486536877075655298514245155643715696534989282887142300567693114543542715281328715655172407012140164171586155149829014157585386764791426339795498234244617688422031128289316947302706901035213477558730061812234067846957871830785688559950539722744346989012060629565936320135677500894826728733956736403034904373310106761414516269448805077453760767131381150107082034880652880881835311828722500535301381747938334621877592157761108230819609851118875891958281081719246112840165598180210500192484358664274373080077309432664126882441364476384586773788951791031842827633041714301887345260775615361500726249775830865740629554506182264505021476561805394853554974951401038163105212031115005404004615010647833125317055419806261596526430329028744194564197021822805687594296595301215888373560154484017335344811080847642853146187333345342002724806454669953035511359964514198091497848613463310571825804515160573688789105462848952881596226833026413689533222620800093309054141113729224078433317335910471650185357871195657796648372797684342191406175189208098229341529626206518143866043766043782901377723843140762061721764130415289657351048040524102024301429439887770830679791746612813418492322768688341605257164098338404742740620932943634532625635047131705593938047611624880592827613698880515685643706725242148945013401918141266257258420594500755115887717209956199755222442334630761432734282621618093540298552707904676157926639135970915285198682007722446239121195689439942060293846568597773479614514990151949417903630155426202214624823491014338750107366814501889534785162737396161556757354909011691252665381922519256806419401024181978544966529742607134774371878970077715591071935587124605777012271479140776995979989190714934562718191962371764258692626029108693661696552314980966174121838138146071393149921646513311306306125071304012830232771030193536103989135336197040963967837757877211292411470283333507373103952728817202277850531433902214999680200449403740073273267459362661340649010047377478956342844127140931585490197451547856523919789111588042593546007399298970485857743646035100172771140206946175001801708394294708658853600909087847447818814303348983951409734822176223127037199713647926962092072466847351831363666441491328951918587953998250466515720354573903754104785650706159154372086717414638406407164222553021960175393269084206927117446309900988503568647328618682006631623530927846989665471781294487633538199265738847018572492987639088090102357036971974189400085927585907399422690792099248095582936134481599419631754646646189524174867538476104305224523048564485923029702514632555329811486929043442353520705946767538886855219490456484429356208310129591920750651458528498034785231674289564116311848769760758940028531624655649998889604014743291025487859879363845835245298744853596512973393024258446734374943471135351426532801725724832380687261459081169375360487922409641981700450317812627744427921755871883803146009106043230036877667693975600983010985857601771533293087354917870809867858937536003035771146484793735873974811875381478098846681973357490282633835658069036778087437946456378531378446793259999423467553481232448897326185894255832751629658070325230764014903497800725736223868915959823843351936442571229235196398121702369785100867448769406810714779261474526363065714697751882297523159788667052614945590198615233867812024840662780378074487238454408403806089231988827907166984974236728081672137762824584535529077723273111040711200760916200666707299987558996163352656659526928390036077604682874303500143567921316435294631871171153414588312599842270480854615027547668950674951021160688286039508221689498157758422227787132110312437681598847341492275422304296993447329743634147004207684204129087485642812616115631191396870750753506917498719347476876440746491026332748282041368772978013168917108393310328093183577786658028469492106927599150450871643322228686788351962392554366781647359708702752148779402643152381281672365241390611252186202364471291031354852062806280936847958843544963296297594820944529300029628879984021787711520476781832257471284688825578848036959226581908354176776828405944043347531511031691523183206861026860946542308917000942126723367713409725595441995527044426168743209871785761957388375172252493863311625739549691621467923668366687284465285307508020222534349594317293427010007998779246139229514739982548564470771846036746992194325860570705763554612663090561125633048086784929759199432112269413451065128335118672676802574322489463864088765553879197764675735835152314084280875817625155848625570767175533082731975180430893743098451100141817651823453150667551198266474512685448178226530337954899743509311567200658931380649493817877046705608613052752761749169376199181723188347711420641985994698759173566477225109918870268272859968962744135264750931327886340853451922447751693193085035764862001159347661051021820541884428412761711669906332102877073508479140946259829490360580068589946690108414298067458712460218662547165733356203542031825253694346780701913601430412236998748397802734248744410213701807658061663436275021928506690115804292740330216511076244071409353619113105955001314456308687883733672989827762375839136597496933408918352099901781019680034582685136567750763540145651310003533750650478763399049335296121133038086146711569335177594194594005632117547231397225938549469847603610348025458723559081390031334988920702506013206936130830432137331955959724789949551194480523011666190236861483241486329493627518170382560284448492686347334076425616201080178760157263960518016450256354021781813029345144506177472287419298433388077994998878568885769972484834233951620872892660343106906585417860008802119982787933970190763317630646167682421647224100893230647271150802255891839544236941151302582065895323311019017071541530531892280699204022013646820111754625718388944904594542861305051611680295134086342432920699224235111927818578853451373906451213051902044838785366307020501669123357727661299422940560536305181840183042328789550189499447352816874649055339183032175529807601582144588906005738155533662826738403621517937232256206250058574150023841679902846617071837555609625817065678668340276277355306492432827686732821843750779563382723130026711873609421921815529783883762247377273005753202040511664082243673650359111933227882440132493121630912701815628375774631637640021664673483107027119255663431226755334565515991435908413936440375158375764385843722845199243153223328087644017431483023677887060006672428373298746802086459250284008971102610158716043177673120155173813253931353808403279452030570346926037797901595667810474694797655367844407945377667103958473553473311015277711263507568027444799451577402474314646252894598034510576731499211808349260991637349911628585804722940138911522718335914000509766258056605639639294348941315611853233258171869874590525359697875165033128562539386813941868532943493240087263911393783889852488982620499464856657462102233787785393641375408811386649132026271564553732204073765166638817488293816666371083019386802562405148712391747702434523405816433813279205299112379488865791655236416692301611263921351982910090712097465631980225168687286640787392737800189158957709812249900145523839150366700124807852167925663393728762354847559528052895672631365169872918547265470658685963848570563190240123587070182948773220541025697053571057264961207908046125453913612127187356729070293179091287327923190992988189801261200872955281411418661948026109650606439602385086712318343304218453024360093007665270329093526959055358849842584941294223870205491622665455491342291347104618498330097130788021587487820697726544261282295282813192036447533188982632613370513745557200814463367233508288718791823959971918918028690473848224870050525248482174170191264746648953929880656742255329834922826325444106543424324325809786747883979967246323362230468404697673506967063106545476021824537944200355777111897477301612884348018471653314909381593116993767077278173979597430113052747977179290344154719200167795168053113886315292548040898603653671304951045013703800017395724655124427495544674196266813606276582462619533837275142053090616753187201651130916308833923007623179928858391318341318099737010995449026745685260958636917916218038343070227482963407606569785508348236988346286712407979128094276069145945387343073645767487706906765023739045160818039760651674557185381213502455797069931620351877171507095787506031161853431114316730007384623419660816658112928797001541347912449416491644505954095344492390864947975814413725911712052122432647478023078716373781120413995022882594896921449558834887378591415128165244512678442524758086786911631504159222389944804940756567340751751095388382332894100885682693405896543910101370291159826321137786269060806415166365137046026255399411315048194885879920540710155696447932555452180789342782314975090265899570577427738740070927706305171957544697957723129288626597464375686010610361746349415935877865829660139677989869378951968762229160061533606494820946529775676883810612324705509347230543734538623462036170620485995191818914816662879034113738477227483644184951749647223674045278952321646588423067803817773610210307174865926353439717535048415187824384286871267435075677430822126761247627954802051808233706743367456892169027501959398378934314563077529719369110135087181250650387233721551403646003873490167775078968547451338798685064321637941633127450583700667103718184999517671851610793687353371718305450406037837992869305876599487915340902783737505502870933465263753091148148338002754943337172819030671347650473714445427160313315941301200135338994951332058318681084040008218150307636563622967283705379407226276167147487125545293678328723363849010639700291750026350796010531600571937673928621162413083424307379712061197868645126261318046175811407991622712810012075903012250907443279688479959139797881812394361507611741574757553488836130643966882133670962091412665819081234072264796220077791878309831608082107512933840683669635401508902346085861129630500486423617266513941322322349334856612290274080174729217449596950238112327680164456367004424953920026745189484552195850877998767965533883586812960324495220587261705174900518919894919699906267686889389635839160795959936673610242923004927346031706226637453297124970822883664882222838765929821932918578342414041189886831261729078829408327338216222237949981891960298271416832818745218283991790161290289326727805564929414160563364779726009423296542744144523042212659476001044305864299934495202943655537503611749155794214816366107605040419483945266326126362029487827666730383897724561420515902263981778728080391458170697896365676226646506563213646304878078112764652190861052043747426498457130787033138479014285871880263190321549773144328174112413717451090002170419347498803482830872141048665591890313803254015755222517420053407270155726930996474898487142198057712342923853899981160815669253431822046263284019631579495711910244984444631077883412467885617189196866037258116020969128946962931463140587983801691306749408282739643067531444745781468508994321367154076351420003463755506598825567197675887463821564594820670004055011836671413440983784291501316213289557226388757977589541868396702995484349126515783405427603963870682045044741873422896004793076060448645588886913442661013032428515331526360705507625583023942903823656779182966069608984247234295420356395502764086106836139174037344467588742972584381460425624078664692146235451806935305114448535030322693919161755367625410161490155938043710713620644493824786071009405562007346895105991202273305623587430894196692955093335129829912962273885990090345552707261338207992533325882312613159865405977625802516929772381422833365327899632034084384801059132800163942086986547794626874470522021642738829145313491902515330753120266227051162169084614137788141394269902211472233998455219936172585103926827121047268261618758909102042635223449540792541908218704711011352221596641056155402622169590991200780427309974733453043391101232566706718643723874840268589955485827765967136540486019580436310584345068323117375293635388510759837951446506095820093050550289072682587712355933953385405561689620168392763014454344904210555382390059316747654284191444908367314147314026681856429062106566587277230269592925638367009338114023471609718360932215792683515690721264216226635743079488083705983094981784430394094028359063267526907999061940328804329922570336351024406386006415982582194146506025715959350826503804406006572986139154509956370116738197488345106581136518115713608137470455841129582046906375827812049894231347633609026054437711439558377220442245852527128877352600757770122363769447647448835682862353933444219126961604878212175142030203008971605721789540120212492775403344510776482228640919378052576072938559281653530445477170326924094335279395549382842077662715350590287802682652694599305903210112579807253464785897729573865867602698767775530812867926127808006981415997308422290811639662585813992110139907886608387213228584312909936239076802884463533753464439820193258015654352975922685848230587743531405881511896797650576587495757834542362899516081875424809354845269199139576698637211892677383450473936882168379700208071068685834724236293058621404161860876883508604349939708779663502548691954807642725688609972073451759607147083677422731036488818926406336955665639580736235634579102757920027601285077691416136205950571361017218357620994613063908610256187007071463797030513719940603725267136529002812662025731633018052800078352970173983625884668493704725557961547456571165907225474416723733440070528422254681731844824219429841511313066013079756871792409799856470475433240214820658224655097575436282917565171045252319220977438992848377864822880651632171222711666213427975935138422446139776774122925148569365128492322472837380000308760303269003756226823072647259015441494901330159130320025008475643003029975831896734060670055248875205840590312021726178477389668178936159464939361747753795613980979471401981833340984770296734835174689935266454433365856446254103427508936953271486879363881639566170484190239270177550072136317184014846716343793306966062649158294944271281461720297364923937713661639179054017000756250363663613101110441533572126423996816130997005850988900351139474371680542131041108544143160405375174048277391517673601007888905422462665186894126087987212695318831903056017412965209912523305493210054119354885162954954622914499907998498186022779833462051846259291693272944153141974053528854049490030912720304392714985428404030901502732395801868800829123672952596157755683390513491154849894431817584486559243212431387446782340410677290411942224815922403326671452651016005785209841245327906592468846282730394029154727244086219219972850625729853025316481506485400736815473611141413911681700767472028716512363694081601389579667112950866722125501925111370920855315805989288473701206050182293974050815595140210763363131550017937976378700490417371061632753925123125385908595818030275369903672630517725186061951538922005098560610995234353057725426992180521488133388337723868373791079889627486601850441487834404101647604034804308622733550238162851375260794379811830787889045453421938384523061136829945877834404992870620920682551238563113525394439568890521259898755053521666819341112357451252372587170832527724960384933036180267523423297821240155058583516388638176801701375962447360776768490220560398753726269205728333644679652764461557692078103176230490450869774162119045301643815243897320427210160422983217703567059838212615802621271831035636689013452964612572396223836235777677304869111533960121548232336481827365449459287701961901490257255716022926882649500401720767054578267651242649413228316370505774019131543884562231981381437923426760438137181064292342351897166282906370380374609239392293026907209549694783176998350606956221294852374250276295443410656658860839976673307318934329399665660330996910741514133116630769206705043935115109155573815577356188362022190635448232273085005413467144734654028905899888623706010233895585520919738874184847841152753128856009594541919706469820169591125626131457487553570363262454464185824389321775020191151892283545711304072408067872092382695653125345252767731937478156697562189580999984741970181849246149566252633452486089952430357733120230105372729823110883317707847159214430522226962415682579873362049473639158064266739126604272585851030036912423331658949547633106946566415659048921226737171203181693250041654600776920642636237206358779658561586694554236689586907383891669483082589091326851493623981600078044211695885277998712365911552015433018755377266753345638367225457667069596107387778951072869999406355032397773751731199215719284277792116975210060964639929167309121425552666733566370612014780098841966507078382586797483080781366625155913545157355577480605615692676896807106388881767450769160803257511259050242193734362196211736235502815444114576893991187972456469882591637725827270731537323911853090571001807085454385919285431438656651115779037402994701266956039490738838357280880575250422516367760347405596384119175822335026481739004835408059197574651918640509985238580186767717634474880066874292792547859395973372102630926897210663975525057606580626600469974096119148210691336574910104748167944056814240469554952713877906519767495969863514198727789073030747244846543328283220985358606822619250679369736761914448854707340056058188788241235025048319098884034762714489832253742060071804965478630755140890898685048815276939043194808890618247810076903001034628494781503862594554463417407985055606506493977788177645079664398398808163924105150168769106237580137456079125642159286415491823849012994521789460196944627135939704497058825717994747712481952656168388074971587075851531014531443303235178987349566370605342399273877775457904551594418007130498622314601784656757771569311948628029495422136648315126992724060789975372156858560462676857677339538340659839657573917013040118366569153553190231068632007141241888483667277695647099681733043540642932541376168801823611583127223827035805656591353992311839730748631732193454428749292150842016054162642063393608761790757377504693254870502292670630580888381537430575390664950461631829946952174677658382619194904874143252796767308795160462908696052533625562888066605215927389700472196338000573633673807897572158753071722516235521449306490417152169527827187997613905481572035426889906917552759276020850694896668434461583996568843372995866707438254221664310668110429220417565590296688428611539114354323960920182536661883351578117813291367181614346582029833078735146917687736313177414629676364911532195521842084930111808969020150094219634701250273250544903719614879914324810438321836537522521216877461521333767165512751841464616019489078472090452678529152213420262516972546525179442099781720303607042614517207273789831569472917401217459805600047448320548669038568700814623272573312119240957003033948350201227974786454122508555897632524397102656513998128269297601861488704695070402804927254093460603477918267831102748621809001294850998224905747740476613456284904477279840957792756703221500447491715111850515182999348974330848383324859944242935828105704334724002224083984064786021562928903848620631786729321982374723746047827054792812353579928260232894496806013089471354738060318152387389098219548536541036450801707689038055833602327995823461834348992994072386491388906224797486527723091994368237112292270588574942160973167505993640929434320045897610424274154824093316998516405845576066317664690197688760546139995983299114828472807403166013433848611608706314064707221904913650175430205018916256216415484643462290980165624270310521804610734016852577154544869555678281867859959649196114889339699359204356498673606391035693658768226045303012641836781060805812467976069057496732962193811867277077221550232630246527048381996340583919746896047093768534362918670145719704182489224883462664486185702951889878099388206086247650644614384263176082396351968819496429119219163464926727546545061531118000860475092463007085754181894475430622271104366194606665972783784834975256908527124733195603485848542407589259809457959059910918113184647056668843717577239846711244263626411772235299500351050113939979991335208591661522070088702136853282939672858604373948272233043275974473480954096884968466211650552793846420871180897608890344368505770153546635554227688778516648001901284334714587632548768045953555513519537135903815333922430047150201166085031401144341739722246128439216805899318534126638773702860690007689961226732667308733477336396820545421478784198379386683448262792964057294648702530471589918119242234051001560735669684455989870190084882060075083837569274154839786519862839081836878431249697424430351140512013702676343881138104968910156682596364514134753263851761155751714610631936177502530410324461882956272015636814716423070631955465292034157009730216347131600997306173736940937970863053969126251302282244455675373317234541285972142038669341933962805178048362843786924786502023290784808792742462425470100563485663198974216282565327433853044125255571890935837674984345897506756206680779156158551718992897454185060660562726086059232855132214769740000923875533896340422604063477375966033891544461331337393769299257067109263822259378203398170020861714900603839813985938831497933436811470032177427983639673805677358930666317564387968435896764950761427595073393563539945392064191659228715543665507204196303561534861237911614592187683866110482273308818660278203601146368754589360567941454453894118899450864124120336281253685192950280174031249405426275089397032930256690158776930579316475612362018702877633142730771942836785054991734177138963834720985960299669706602671958926910881661192797062120781028570982898537314525176792835121081362179073329188637809149910680175677386265919388071468016871472849011675759174239505594923672320011391505360064556921004918708015231689139376770287550864997184462531191596878619787703980567812857901603570458341929006406829500141973447039285054949573294362865650198671609710075532637051447565868305056767151931506089956248630764707056111462625571259741290004396561109491764221502259189375200753496369121252993283919387154953487367733011384970133933766385855014637952225104111209076075684016118166657019196498985584632099326403065263570751488001908860429775509411903665759883022100965644029385736771293787724961704400931642696354459208169918777569185202573587692200243879593050058668822131489842471163045682599579224449691109389449657303382797311168174406318825843559821059927083634565053027569745324256471233677505579117498071228204222071249139154930435603824314264378188273576214671127472991751607322581786536458858031532325942185931670232840369800445357044685488412748464018447620122069913491503654504153240552029181435738584766369298645038484044562074675135407435664095178179302813868113498027987796239224404680001061873444606209377204647211871941642252561697739535345001844930728297279226424471863519946910440971375300708537169777450438438904067402853851257393532991972124073465116732202268449727389111027534480985077564951508872107195489879184856989923721875356244616075656249183318492438867651204217393062710950580210580591365172878545485485379540763833648856273165804798029640991222007158344453416688914498035510954406632656048740580675657592325912304475844319460596943624418998245991285121073527817832571521883284318443497612283142082904787202194273608332965791619387659670522791964249908103214551790277315272304741135949362287108044663373918808886275638337136645966997260773240941921515862518231414504444532993882983166534014604584643719349246555394427333071214463772431882357446735477936333043390783536927435302939291190477800279607000589640832935494326126618861650614759706103971995793497135414833397212522208724939403091487752904914166564079201687958490301276494052516906457138723987875908702968986911543125637458086554587673234908521053251472686091243777874901280985923705991765129029055147036316914922684291760575773999617103798320246137468146667291058465540050199431816332870983640085279410233637183265667441687457529713320701197603910817349444996692225566480048492163184766420136685572685487708398016231658364342793828777207694044931859159658255499746816219123334182015286811158251560267525692059062610259478591287547341646958668722158314719250641402145084702615373747587961334270323082026246434116719661482786787103648011632945228460597110587366927090168136620444478238568490519109386317896959143540925390533471003307395448372492660074763895201515171656312973018168068195274054604583824606342653061267428044366778765340661543499242006553097231551654588592956354135477264752574673468034004777309332490790104867401901982006524163811259105040073090751515418145244743663831527392247034463663581782878438241735710535290554523756176396208715453481868991136323623355597516928694918559457391057620671757858645848001604772963390237093765489904734266321791413356627950545025501413524501445414918971257805331032229303709808493814942397362714341124929252460554142807441562010487640777952733206243528484824186363710591300483943395150921440815217606503221444717401567506530078104379147184182274814368925294874317847001473608119360461130112116578199893129630305890203968940858544106533180234223840250638648586122994311207382542735909271223362434120269976495695837194065650897299426747148333630698507758464610468117283912081852257209260996330307624059586046278369689355572576529704296611381384931953987669932775019355167091520935317378515692464992373027017197376933572122866572772728766696661646966309544703219569163468683735266718617437621181082977600709566365705583161144917975213015079426075119894102411754973411064129157548656620289397384889896367446914063538018802586898298189501056707529948109404176820834345997415599253506371461512235691012238272496941141426318578778742461983892775292071464392545727217097084240064595422761141755180285325730472223351701399351565297031938019953901012747467716984540241982470530923717667313888023492522081986015018042656624922399543926982141572780143488478282955447959266962442273785577459605750163819970247431390117010963275206844223284735661256329101464936670722927061586886300127070900711607384484022802998767284021458652513754474996430624636655016357139490188425867983903702860242353008797881518628073094936131265638438030526910354880723614607398463073696689388092147017346056353866808938694995562352514194138813805399188079983764575455670825529180012985369238913835303190890056256000692695164601587819476669763753530486269038265472552771639418148660202468745812560911081691835085260810882725150533229051213622337994334209984427321990057041673497934524723240053240481826210231603336744182066423831479070619545648436738571326315655042253115568533332716081710914168863754417063132418473756065481384032621090857650221789913894929667473247240399784300843075806385808362881229914465688874724337860758469783991867365330387325775494507232512568545177002254386838714852453028495805296474092416692648323903608284444683146312306192041164147552886963772343106245921225550788549280143227588430833907415965431411812291897312993743376399810933533497256775896872667289461043085979821563958244785663050977292873031278196631114188592714302284449764983523651625691486109455897964184883449586471385177958946068308920106458357135205357225018221663941210349514068642435003558510980673255996988740203397739815216880220442706319051651671138827973295587991237838603086475585096753429831941090584051147896229046365796153850116830661692483344208246916238283503485237832192400135144602154084358912296843000255457780535727943866206159372195775427513447548322068700356978319370730704937840726766894670773009919035426869883437721254393625959587140164145258458313682942496780092718196483384999400023734060583219880584701614292971003519824888596491948637134526165907341356831221775016071278700812213576895167835758535945758456281529393493133590934463583073830145735297273113637579008306279662504411848442335482024963856675195082832328006796771254695805294198705071003434381518541077878868085578194293034009921720770296323865325064627185601521731213360690656360119917933405717850613081844415515026352426819209118653564842881325663565932423254845738951352841980979060337747630970242200403107020386787622321091810001748000282671136377434822823489662003367946714731218405349884099356284649581564976787423197875238482777920448373064072275829751445677295728272516114632498668193052368384855540746278041468939873327924873310550874165659491413728436363915320593409348806091688359417357980179775202171009676504654561086852059607072474319684475159869572376930601908464464129611883988163314601407964053873117706086950755595708060308985870077881473671304591161882420882706074639136433603676681589094387821616060287627678838222032711765108686149673659083514875757328965579357150417278178441542894724209634414468231196443764887700132173981441078238110284257165536811063041433075510678544698846352103069062010790735638371455997020885975745913522919703842295503613725620939224689600082286255503838969143780192964979774370964497340285439394771525542007564179982114543682914618241111384749874620003157415363069248804625276584528431528695630549275026055906137578071176060569021428391913619944637509216580240634171548773380175621982804482615780065235668633389136564480833335276023028016712283171350246791895726784172416486954580716799703773561379098207362093600941498007167038320130655800910493358391706742397817171081861700106634170259999691814104842141450367417441303966107573985543841476177058023036835181613915923609519632924697000028836250881291969909732004928369969581310337346808630444485973391317780132915272131398100056660897042356056589595408235890892408674397863932521216799163343288186482645936687483245500087684618426493493128461854010755783024491225192701079393680069156769496939811918566037580414507403237609138904847400962967521006316227034256714596253564554771902844474502391341181336438460440638148224630274201995773331485278498722017492134149091794068596895264594666774634385709071917310348595320553642587034018731066613987184180095444334087116902983781884716141263131173015203809913017959583716427284611580538783782710843366032635586584396588413344550583196976149353056571253479747451307621977149035592257628496720274245391879001947385534026965248808680194880136694973707180078765770199050145694410606399774474500137550779704337595697071588619550296434907640507863082701059410675699491237305543462085319662497819802510558274779479460474664550895345439826456707432072346970030075059175763774482019555820341085666141648812799192592882280765070189973422242962915220124452574033299689089985095007181120191545055017623234562646918572372067597305998357203810477360167580034615981361860577237617636225505818616155761532037759480741803284382689399329544718353290724917506365185706482091979669613663956321455886976909940221079145575554869966205577943540707157513622934103517559898223823803824412981456461844063946425996224745832826099151450143849928467487815327837570849632328361020893116358099521377112623390395442326656944991391464248306316946993432144679734169915206277006328975320303514886987259546836666359021096410607625485040177191863886825368662616047875763348332526600956027533864249457649782254289878610567847802991453920447631082267107099907945960334375382160692900090821045658081933327215753193783798481800942944235422214940533913244534124685911554476954727573593788467211324762408996366996442897897850805141748945897680492846767013527171927208035049522014274936613079146158222549707455849307984691085916465231488509013541367757331809446933277172315643054561198309475457630766987111918040572824882683299802455816395315166663851751800219484605908389156649627852559757597901284101545623226347211119378065227205676922350406161797191578059000844172262904841510989426004984086131503360286201707567831583919511718309291857207260075178652734619849637767808460973478892874818154894972509398511109728206847906400198259243341912412453171031129265656195396016186901368509895832017559505060723427930587006997850998058653901343401334757996995305607311326813531056059915056151419932730455090232436014824453068293076737820980238595021920468073380923774063359940077845136985541483317326976040429112182449988354127727517466779586593442253788371369900184708712927130110054226012860085637520663867509460341421991775345940880581413791741459376382263190056727414876064305112900866393082264585719080924012935330027315126486800033166924556363991037512362155919653742181012268449452782282975651645949807042424823721190676299579598132746619341082992137513515362097076576278100073414926940760262266292541924603459700534849485649025533131523239951407348696695616179430563247574544110612047809350471034083485135689291959903086926260932403010350031431769661309301474948201614952294136289520553585435791589558563660228859454371065909962566577062486877105775749542806237235834953807245577493051836598263308429673261046830057719413413917619162981639773092024225190609237773459082563892701812593823954107209011676243939173007462886205169470482843869951465616412620546773283015527000134817148661253016249125406426930740539425498042788787866175102273174124726156308500222959013323845315598469593014421643631361834953477492003151607415199619071232834761058644189927995078822426218120947683102630587913272557907947297180967973312680220469268959422541173730564190272197045893848419091773258778485619051296497708173813491591438884178858168436154623582045594543104744537786616743174142173926404389832489581369837413369744951919514357358687901470828977506712687085912123876720596161430290749250538924860123299155589755405567057105620622954283181462176843732059357905053179200618044004393857077092914804664360626236829625996220637295447735766238179710672933527228166802157338039307612139493640673104131224360866897129890718976224841601615114352425805423607376041629926809651813373052388600822041131197480664214418054308700133774280723874172374198188789011994244654490308705511332988814632027752380883241201582448348849616248211679165918015101821626802920243615717710713161412253234460415660114152563077239915407689659431162601791798241248456728689231246294741662571470373394559795719743381869562290049029836630651422948556692186730205495318845792527395318691484807655739453212469608956657588102847606165751495801283828324796170647704845532872664346322702036271871524931866263934158653069592715493733643205603460327190182028641679810912748097258592055381705528445496864696349992131800700645707757514908385393684164118257068119642148157500389999830739256765513571913212653354572146327050392414506632088389628287509802117414711221210686361348704554988901690432267331649135862109259609293788341868792834307865871603896999340009376679737508497635150596434964396248690229245892398996536771897146072339528280467854711467193608300566944421554660377732155624693271771580987488135191948065605420064199436995297042260655574008945196426676510393270441707343438334908356150891512221017071223113119920169130971164144061170526860034641466540595098291681223028551529523104328248119541457377494819180606771763214581505098619371845064691033668955577919574947747117666651409596940120488507692786839579523874342440429669239737955482604464406769259555815737452922904007491089991550642567957080345863454823824955987702717810973929032341282402180975527115526814007584000051795148020367566853746014143457122692701756288688310099050294580464380038254065148234599749375463371965847430057357873338393247477262328983268179288128419427040191665594920011840463395828994742247189182543165234590055828361824971407666397628448563895941469554408225668097794577205948149328235836524018208793562709092635751100130511182793632521935926792625939966980333320051033528558883248998393816508881015347738040049274395049429338573705721150278250576893173527622601444558635869726484694906553639854207943636670688153922389244386231675341821016919126370117002553673573494706188646262235442558165793400359674292876553109969062204377610018569543348783448966713104131072189741066315079116364042019734189684006808929331090386806573871870642987505979258634567323154456230698283955855274393316006727545753647360197838548829149025171023440619829342763559568102387338649468670913756990578693978050552671604258539424035791224106347690389457675059234140213612635217954660685730311054159903772343826442774151844556125499151066995069727670255368801647274746573253262645613379687647226090687881547386861289430322598938824370794581402457182970693940753168501317804247061188624615287704881818207216870330526530821195569182530080217156754100169446084577413129703195148971684206661508850286907426061011827063105257164836987518311618030638592742714176133689712920701873788975076726842296107573723607871877106839739179415045547330132521694554867825028564244406710670048062547172412255589413060252758005507281966079381030699978790879995642628964091457933592796016537432320184139795276212783905328332940638392230135459652719301130852881978671953591288754966584554980322103560177089327817830792447376391227165434669409982829158675935006248961047518492219909510224226745480757164602996573968445358601465762743477377334562817790060534920693218854324008922262488971615218939227552110338907164051012405664276894416888911923107855454366427029914155828589249061010740089577758040261054876625406129097847353935835282252972869550106019931925101205631931215931587436223750501581326426620920498994954127458743478229264051683621099038943661667350412468214626319027560859019196748977230594366220612929358449627640901991116028453797750833478813015680589786432865105073641049787484133745597996697481380241990307093864505141588355896567838853196414606067119305374230302377320663366344863288523571558600265095996188356580329642410672021764060309726962753586135693948753110074894642978530618570919573342971217839191970228482140844324954492514336922117589465995985132390685674065039055742296130436110669721570703666166002327039553876304871483119411952601303602737010764045250655311365000622822509093824209394637198428013986951099949787936760930496197168473279409133865883912129529106944604653766138285609926821756682083752766727153463473062720931653533517766822850127035089146222135369073854085622632652527671204508293429242748139542342708700321566513759817718780315665888991125599120410434384516515197310654583498318026589234358641577761461593162414447749860651831722718781519161255434980690969179221349757095886574467174143103661721109696007351051989663263736192517648404861603592183090285682913313579234131109953629109373030203429031321470652087815483381652598591986536409198521492171970173331862533861100189988405075192034606115426362407137108056640529373053061926823411205319133817112831410858417141356143349893441359176047071333650813954183216224729619886388293048705566146465748279222807609341432050480772089996539579681486671316202070059994333075690622370540247757991625682264214340180459975921216580596681446664634861190681212473998887524252939915576462257344280377573821148029232900422353056824972959781607307700162321556825345318039186115155638879931143956684509535441562714409448181116101962889525157746644235831338856013522531233788075037236205005136116889268958867927174315664402649327611624226398905203231337111807726548588231813478720535218600089276417308553799203036640389831361641762432470345610521384775300229960563515882557764853262739198970688282118298362820840187279010585408823775870105534057346370226095837646139491148250002201371230046336634305783526382436565859640358118708135307262443189752656728488944589706948392561032983005334380737685397607661374586977109364450620064924626929900111955766550885343814981001853938273506209316200653555032394077617439665660821852354909694473165325591704831464839893056084305172840704727506504013234957097555905469041228813605140878860089890388587185579620876099345110538331943801202060684188317635761467025592585888752583547149927043215361633136331914728795541175920829483276381619896264792522183135227395981787304896169228238260048062250404161832733194851111090596621484264729711941798436487743312553728870622144558065981743445565074249718450022782803580029988106717726556407652776211859535499903542796726121685553350886726741919889963850489920022275757060520572462970727427041943074698576183305866192945107409981931520185572650067483009955724225919508943802858458555586738589937162223238973759114130594240368163838723871656931717269062594980589005001707519464397207046408157759050834120247569669608830398543038726255735944420654885337799556791303609849742593218028689840298128137500491328919522850800361496725066478205423016488625782997083272324313201731030529309448936275814772832617076011952200697706476304913088662913768423682171301601180628794291889004951454424837647770957174772263536909161481622281658821647278467924938741385161318517168658289702756245728828814996744324682686510459437617469358672871422965537927052772626200148450542268069993385472073565196912316670112559507163071024134739903404091835973787056786175586719337527950061068112772269662778707916900816617744904899567789055841254655259847699583098933616618665480480446061427445717342196308383412457386144485706704090782466000004770860649994913605506812446728569622875340664785631692844987355132238574322689279741678386148449479478025185756223827885293510185325842842282355216094786071856500833157843714293093638397451447923159315308190388668958651039667173443501547914015934333106347936819710705654663783844372056410665248258382120958487866697444619070788310842232274376577034666160130167331531621067071868319535604617827989044073915821863868724371155294669999879595270391623245104966612383428160307187737980641054131266139783380573261958962245937093608908944521785457374583924978877508029903527043795110376585402243481124764137565422832101806913222262227913022211868443971653947160723288600488104218540031665439672306103743756832383854013005412190772722938497925648748331204675586694623877571292453202149448948931695449308566677946165808633827560728677591146365285488700006326874131648592973174447301303179673300546822821166932994384538318741656412303341682355646913212296770875620918891146371597187601340719752653659364428283829789907882480306169536361907779681375055814356535291339864837543406415148338875074323856546413655593745568964692852491613708785604688721034601232570531067217759663590539337612529851072212731415414091378971109877096288438062573540196074887083516039583523121387397631186453051914675036856082390573040623526494738928430555523994834361592046694173538276402745439167049934466613573046530345820009180630659938823891285196822007569303824213631474271076972772478616933483691727152068647479328972680101507554444516822432895984698246249847878887568318969391933991131530378087248200834279154209216598259921291376877165101983612949374635980386556256982766781148972254701712004534422570377262736228665427050601342666141220039089938062380211013587232543354608556217182947303022074339469983508983292445329206076083349358849774964895639798334708181031001773563979608201037243035432867862227864444685360744217212788853718987705974045614339345942978191141855835444331472725596663127885849438091071487651625086185167843612300653309767030005706422510123547549475119049429671321409493013127714513659957913327175935287231592834968860827249966573529498513908027533303071455358254583167176097691818863080017679915499651199128786502230421809902357751081867343777276590631481341257473112887712531342971491353648338848320782399324541736888450914824155007248873144342630541357227971493182345681952112661927397373869978978218018902553149087205406156657154879963664744679093794040135200158906716449400981466012397662177449384998991637505284702290194279183535648377505526637270013367633245674986488729654501036960590881795621706930759170281137366016221805190063970672979017104125421092281855894463156955688248638438735637886934234716641174275627390573545007978721635398046616311089869592629684672727682968181502741836178891286701591503982391375997534735354159915508732407193412589713711759050294098128816106042921023415771961523803401124710893953226974665053962092529916864844085790387803134750378434987732325629626350865317212227651554684397406571268420692432423471637363765493457278397331090364701073486998773247623371593597284600198533775798317825293081509392847982643960498909842142875894500893343492232189418974510670430601680930004266351245716247940530505339911677370949202653947891877137800646071362167619197003974001316949377708193675664370203995966192864272357003929490334184297967450279433244559815515691495675257101438440844184585672734363446484261198636976786040154998768046043456141619829240800805741685587637572735319357109708704536388697660008622278800125545529858881486523251239644808639336683953334534170724804408005906994815309319198799833009552626599330726105217664390582489420214693522148095097150249124808040167888076381694967710566397281621297302356898446225165795360838539808566353238085461758289733835620872122615885987975979870283030294724424298573940024674815626654465540439845535956420643635464234441067229483344227294901189686746538773150453530577913124938095840173542075279718771832451510128413804067681238538158050783107038543734727541463371247838395131202740329791853223841125005022540644392326567730484312949686623486708911779258668598593989646662487705282026040778300222896827638265280908759228257880516893125777367504330684332947045780107975906377177165881893602665208508203136923725037253469175121130351037617449815883551579023631626662738434052352179178885590765610945513507729912814329851728422918227423795498647430607102213551405229529471596749036978179683411326386344219131086566493837822704887153617447893105120421121074163938441359814630010253920913818981640789787427986306506413854544030996612900825119658466298640909068206430252037859081252931726197935714362899532090319675990227387017267580604101441696740984646354646939521872694707927865303177146837758886125903582823718314367878460805181055417967706421880254365854430119377785022299621940424370430810258217422470899962257623810555329462662155023197372175051669830185842468700610497797663014883042487016549648585283580128058093435288903296538031440523916409114370883826320934507705472406703494523704171401166960262044873026481099399842666193494229228143048386116484129551395851685825870885409568640963251958987083803224591728102600030095314149653818856541725723445152264305855333981299211203318078453958604785753869531803996711116457227554802591968390465329867029575954337109273256953462173220327085908401620345110107868193602236919043464180160770717622417254549033432272816118984472656203834639473951694257650243297823600314710380660423042330912494952785472406267274088626913796096075017534595481234640465733007969433886522757438076371637326066801778382066096924931389026574876161515745120113123207068082816509945422080781253028608541369151948844608316352269127538487273241800699786457991935232353388207762792143222243025340645886205119551148785318443146716450384183052650915542356751842503064716247130866284580382852594407537789074965391120662540137888622913226036849625005699715949803092620423896629701288136901304717250388006704070364961881844350256098403937743801510185480328466546667810586148852241825586928996627189261202855778532729837238513334023507989443939233465122132087306442080365862463636050272409881170268863525882516917164904617708660463789717150081497293330125952628090501486320214667741770894493395116536299886425852549462014291340678086084940647366247232667617494255337447639597340964638052366919951588758488647050839240422197907179108999615985209768092320353114051752691670877080587949179834166248335802973160906643355037756616651123314034113028312822200086600214726560656417307034055544513890631301980108673981436884639685491195150505710202149267281086996691973409419417089073110155653331123117885590129174022542135600104401612792238789224607710388662758740075898964572752584855506895352713795821493302084555630239999342935126659643805667193531854795710849374629379032381010392214338335168440070304140638098362887821919313834488238161501133814907828606417828483520187710690753722607937425526480542376734330620755276381861428486479394728834325757987937638609565442644668651618228874473099861952865578027557879533299937974647594281522197375763627051018330128449816837323666642059877849091524569871381892569643011831656778014368834339824889132613994786327388114986112517203084494600118280742525802252100674607093605417162787919795286736226233309924043109677614280054165387669021719700079297710774162328666719345848997498914834849526838912143983235881807247758446909098871881572296419509073272845523087515825290296870155090270096831344543074688371209824963592618535723096866220616403261997519458024374101956426250336475754927705182981456619030642135121958473001492114942103659055443316738301304538889056682117384077682275515481817001657760924068435255705594991564727158556409843088176192755748503522356570012682185938637071870961335125458509479548574210726132954319591939577785789165952300626479437895142458346858651627089168233427007210033286778814320737789468822366156793604543428557557475542637314365318405954049354190710033749355499518949370838941966704912866479455936391303609749344218710547255107208590985775832137041487040265636115564798155050215229618784529850185003020299459556032227721879597385143293580375938172927410533958785160396121563947515696451948095918775844663719026657086394364100127697726666965994950225054152528419182750764432049038454108305333924853410428408234227279866520686639547554495426055240771125937524914999489912886141874486223184550077989440563444455964764889438232423129330908495900314007433476269243666177355863698355492974393951511244350374515883013740112180377126279141789959148163387480102887161637934050263658896500394618470971300814227006810401009273489972213969963094162657633673107079319916072529187741165838336101238600704948974539645176670522574322679565038461803792169522500920066839796746406001715277064535436556484986839096029145397235664319959211852591376556648487628981472167458427749041582504524655124832733071356573352716951513640530589851199681567601168428743346326024184266204374670914869085703199019302516995728010665961188841177584639583974585545252305050109423088607185936087619161255092897534112484629400087241486586115092325014274980364867990965976986132751294440801506818029847795063885446916495519061287189594595942376888308340125468501561660270012003767576394718409300654549101654297579448590065064286608846115706606448693183413900141396050673947349016863515484261986115677640698445224436862389950784698103136136482406809382215880638608919709681775774175450162072165212792342122117813818651543132638796979748250467252171676997994809696666376742686359714889507135078170281790070277410396017555779345741192055128775792964372331928286662183323829832541370895694922768580259502443385143116128506446880788127691985102267349405053266498694110553040747694527293978734432854766163194431008655861012754935703439725125686137426186572699742046307951656008083578917378106967590012923408247500826872900600306741590335044707302278149556190184869436999326628511978492902887301842831883354490646209614764716083186751061672344758282907694973573589478680457612930967764680476708729932177518962054216446267386178124268137065241683670306026611333257833633183755741437362351919019878300809830144751027975468599716546437692040392901384661837108206192801549641929408848138602660396533389113149417811025523059466876593853570042170911006780576943003451840526046583059793845788621515286870646221036746526546183707052821260837149014051857432575466923154568275544321804690402144240813605545647113105895744554101297115454418697906269991402578804738533986394148522506181193794470357041175480778534020639390494317215487389617186712158103357259958780621570218258795270396724433916754869913869176097736177967761529126591553141300867392779764993227773472466181019184103996625221669373809765980497892110803991054322238417381980803210045135502493797130642618091438080884329816309901919541324777484084866306816774266596551526401337575201024221701726412982818904199719417376747639815137943654369493369854522184130463188849711801605572493597150120964524887415597549424102691595794368124489164844255185792141809124455770136326929854205691487411481200904374732815220866343302651581484911380573989474388996245606638924330483970823583041543468421669986128594317224520087396801457639310324953024018219576289540856041261786552102611871651979625288916148494047454464110778790233609612110708493428088794188423774261894097684201238797074565996668932827600995602479080837667582435144052441513973018279515434046289751704473074832134923415256641548071404940146090315918456135834351000633618322476268665531995364034924178553319949740109589453362237843478544550764359169618665887013021196223386843222232648964916908536147400281416309781532439871923207288442269067137731184264088120414907905870494897047346072272038583072688521974674774168686913711895697486557206472186134283296797613821914695351970879306234026399999666029795766655893322701580888210590900058552224524543229489718466860530658611073706175985576990749993717470831851543846036346579474462506087063433366183579216190784006945988297686135367443945389736633649665782122417883488083259906655567534306800313170101780329666291505263894130594194848068685647122007723006228445782129431356923281724331143084748401935891154508402392489377542164847448131140143629913618333932596486169312449956503222641945159972050328293176453533623003025751118342936838875090446993481558012243438355535815018705769877025898226793899345781172302652051707975347200451419856088831426241925739478374260694223248466306174882660952113071331739715897992791278982552453981649894273602493126042072525554359970593367157723891552271057909454603760671840457997585404853081046539352241518419440115352910489186820924622857384607624776122798816854862409911747063722983261243804523900613176966421282586006626021080672860882885140434272619457534100696598110436404556711177507889906813976693440041965944318310073537976925735503471927816716430764685754818503123088385991503863564858807185587686935476973443027169548018870916380417818074802031676144090564451228683210679011075019120485362461752534420992941256474247985071563071839836279423076332948032146808230981795604101296782277098028773320559591605791734301450454359107448147677823726749399076029448309565330844201727778908374472240843470862980891927412008619516084635879150710631393988612000942982966717433159163939617302090515445120518106296928148066584803488093831565919766683883476951167427325330891005949955935435776170781526766971707580886075222363542752244341004489856770286617637931349080141756762364760748211755082209801991206899755974394319737467413723857430281626337373908070105518040765200632040413588293304062919023229608087737531230385761919749266112587083231440305019863853368677828604082271513670737017225737638884933283938993024510300304421679768333660880533741937454348399292814435687086278796993597211807688463784742449109532000593531792837041952405772441329106094320760291253053077223766506314426316899578193516378657850688498531348474530900841585241016743754234555226217086196460347352232526642343304005308358683387886666638338324320249652773658094218017586243054203643834732740376347991394759995832436447208316593514260877647173369901236270802397400398499180057827343389173037210585555049362633310113608914146737096109526215300603182147538983750031120660439923556524647472704462117477579451428812658072563708044556054542586735073054972497613099118078235610671018543264183087131526611787908100282672963471884904888216364106260567856423164816900281510597768867315183427410775245838677312143426658220609589388818722937427918170767212038435567259367193825577067294691774314780652719653080290936605159361162388606285573405179050505170915115172910343274763793579525607214778702477257808040975541860145342908872468090684520939998188284477008391371112901374895042811528796126973726090576243553128187206366746569922041102788632052764780437259219965357094349562269252945959308415915823960103356367569464226833292299963160451455484074479557333940755887879851144092796235855783197961764411254660319839721607895513067528503891003272793818105408450908382342503401713060708010247029085566668356569438998812164419998752963610642206116680150362634681850482630495512623494320133103841565003078060416698620452692523211492398799404971450386149634718438808688202065093318799547555718148814602621287832688412545086475836998610366194293591308317476753095934871326779471636003447381224616791344259683764888348506926496923845190255500578320942284032851720930170660509464677739180779283417270656590633825410032228003664519956467435860877340913663435733720851884745196616309388870562845964804790704639428023700790438953861616814734261554177554207054945147168959248852995144972918712713418977551408506349604540955045394460021373005280748270310228589975094973863582122632731261113771828259963783317074701327530678647833891894240570582167735542908914524542943869515498054119308206182562243744988020509254425064689222660905884077920842744823522234986613088950595152600075744001524719109876280059387602244732003537656368886613784398397766591002460089811007721153160679659778184855935996527938114629917302507511355518924115292800996773881937348232847071811839947969260619637655336202035192551712230309442846455601412482579651610496265594968431617919211560832179420206264292186266430610044820511174293355621756136438847440126218583816948337986440623359671326485063447879088426151769166714152009520990329042508314409424648679991480813123646997933865370945018628340067990663663465671398540798068239145023108631038103341449395957506467204944824406113458240886340116426590641863750177114785582642349036382157127622473680774164510291563020795871581899782889919994807132479216678135795445175208407428427434182891251731210682416038005178458434040652880955137609731778021471002901400882925202648893550054956226012588042187016034153695985061413398772787238083820897814369898512275527010249335914876766615436916965564749792820555968801009479940923286950572327337758675883251964471226177573462600696378689864178647843853772643280910087260629211173782385633542680361873393480322372008130529465581760763318871085324780148959914529968462787441676210235805969739066579192629105378841993098120084681732255413244030115974075935119045757106200655768563536356077869636309072598918579285191257083346094936754062467456169810777674064006273251715966455557994401027106318318622525177697979229295540860864285771418000008995812175706690117050705128458470483892855379283143799028791816273853240490273534752847771366332723192734356115280744537433102687247316055847674511754139218616384826856351741474873630221851423400532793538936342878092597732323901161084449065320844683762423033446247848534749551641968150343152327743973939089880504450743955590355450507971405714883156325148270907901395001619312894611756847672428287726086383739896302572619769862161590126334362620001056242273269338543858026728886545316700260074797468165817126901228306655563958598202414072795890879968766370538603382171155117134298171635125535429565528558933565211846849954436944966526445514034452030539273836567406540428501257653882976852579482207918302734174667813270289404494600352151156893882779825865962124358056761547341530495371696874859636739806666497605797678829077739774233143077599408056097761569455587098363735493411602574823336342531757982337061270737703646406846434180627977933209099956732505139703681696789736797384349671279311451071625177430830865451829373041145828485603401042416776543010680290495334564354149678056797381441725913736528119023180484914312603946751885293675420416410834758043787980432517814726491367200563043600999892123615318299615357281641849793206298319931584057485683423471325967982222579495546105967327691404588381956013772271970731932299749413374489092805036318262097022756685240500597905092334337475232288779247308849439623154983321577692193673702243608953252918686374896313414137549310448142269155463071935369596114827341792432997435975459013809488928577249999826719712815276246476918783441297677572882851835049930933669274147840868735669319654025867270370809903444400496046300417909232529087265430578956818166900816836473408607518181138883526914248716350185000024457726608787373037110432415385885395244112279828573777346186155572410421558815737336735306659614723584482451795614926157737662685169735505615338767319950387356001040790945189354320325603874265433896843048199456115970418690482126828168336069103824362277930900473318867099676651835171068318672365725470289016703663033948694984460979875874914764049120363367186373803786825956420286412517148471432818735209514525620990043822592439515475974069229686588103434902969790535683599759573296799571994323400299261397644505225374676386670177703290122247976875731253927071041129258790689472905329745198939727112792756117286975501531238016172392247749764039113246555244209238332567458534071394581644627511700703926582493616056962719102343033354132780735377660902414611286680668247407345150444113854532696023183410305720785388230489851384612245303252866698281747886056366864114153357582527222776097380996801159203479102672988383422197082998814946903006807565610085258461702818542392437867334890227573826346364585098909014379059686695551480358231570133343379699789075688474474983545580011167023523453953867166896648870516152168365708138428636866220630483837669325978694681742773860490737362132637625455943359823567419119417926432542109654984726900037831344308670135353144488339371406204490322557896672024047750618560238685423703166262610809666344498653593236631851704717652424130927300147257625296686078703318910121643481017066394209545424765648636247551248769871785447726115710466470320232636923568209849676012704598020526888573100427371314703370472183564617041111563180958896338315710502317146061094774801679499106904865391263708065117037320542036357983997373119594798481686874057611577460581384642883734176705194971085635439385728347581152656143143584059447593970515075423401793728763657239781295792614710047799511511598093675835957715455311699015304645455015086845305580739051827314752941654043309443780196292207837120416342446315639925902637289552496650374166959837828581026982809463056165732502343503265289002799361631480768931422611236486496309564000867527579031795637368083522320933030396521662039101470828401725971316514282538873008706217762883914383649951431117631525711123934146285118719375202928224010907877344568272825047274708221359886495332755383318045802755067698057276791110548457209949275442470024355319318609839857620631482343239285397901212289887687440291545796189636664697113423881832930175585145337492030394565053081675043206534806511937104723871054986489637472675612728106168161178543603408668660253991612715539145023312656408258995155772720565386399162509107980541025685807660975467317509201619317282950739616340580160568497462135443303964173671515090704048512054457485390964921963745197734828132620691335452422056299292123120866113537964591496242974279005102053148957448720156429475605935874443641812748983021051668486073733200890039560578007819177525952632742801370811468732369708197297617937351845036602451516720996265928209117582080135613432696394275582377925790917044476247070471584427356772949105889466108304610344349063995785515172066729800968189030486155757111221168731828057969771346643768186746341374318771740872667746347533914801913581442589621337629033459320556872847253659563111001768127378573228208792023079822449061770318735374660491195343815648227858591395140866847298193353428352926736363365824007860628485796207219299032790263310815911487277814357096787335225504879539857668039130166264627585425408286843679902788241547223488284883648026469707707166062232457866166613039779732041201862358189066357006911222045637211401299413203040071448567796180041472982327369777065569525156510738063231937661071699025085300265532982734383843962852519633327899426716233825576949111188059089215995596274629439175254462640813295215297146303613845341140829003756803179432381285364591644510504543415264787050833828066168926076026463071045241299593295238031311911610507334706708128479200304658926186446167327964486989578576568424051958450676777378343467632914541699421668833340974273815789032462507372903207952411099017752875242374820079389194837149683912906006048516677691454478244173495398710329796777878041352136677996231042042867820300283273926713331932467013153425686993816407590936329168361560633268812227394168047214080117206725643953483935573584435313642599711873542482743461201008269818858787934056276728803155238856503504956931486681784772995332055371039072250601750949590327145948997732618963001280083382005053396640794227439980068417053996329079229361710484581757186715919181060895900698576334736485340958225177579490609296826226171336621053415311751199608883050708789921108114698734867054121911182467785306262201372539113247464708567972057744183585450233715085445899697028079175627792764356119999772442804545783247363678045049594927569668534730057934853543836005192399655394237848551863494271789374125188086073464552654847505840327863938425697573149230782538032101715431067330435710044817665850134187232916703955176101479341002378331266614900714984309346301220205036962436184374826318210137728766104227715030811074018075133230758267565680839281139586207795175809538490477404140121488222722167765520582761202175217584772006954499364381489015074769078171217575640397049192889547872717695158132949454166292487287477639967937810113448069836636389367898659130866288494714109839100342607417419624352150572215183447223358976848023067871076566100196210400737001594725106142867538723013203168107794865584181921117221016437140845814277803920268534584156487637962869694871867299795986579043063397744810866580509775722349796045704444911137757002565630596679534764990537913370890095541884915269807310165954257967871048125146759464995309482547354247582001128255064763956023088636418582191129974363253273243417335031854754067460389777724821625903736173756172090140838094364286833737938548451021380212905792420633575429704168243808719243515774434039176534754917924432276363058074421331966102087216836628004192758313344562154244213994928867073240288198354566227519566288760134897918454689734984902921847432328899836895155048829741007538812604819916362385285647357435012937434111130415174404625954573978968892347894374371238883010034416807657973912881455473016188966924785319323103731051408469387713745323240806204625667807694844383590922851749380585665023347670450824521513664469613820439675653045430038023827418987418589276634451288244017559086167473378933711407705231449746730018564908006699975286870106550205653396589608128953315891180529176168513265143124375846164943362590258675727709733345570354202635799672173283712362471423971861064008574315899369243169583222165472435101971765683408287967577536405103287481598079621961213963097291374513757172280273738209684002322452685456316526700247888563303787443726296795227470674687375768517902350291687717831585417565063613833569186329818225207858212513576224846807867827576429507180752548136235123664443773071293653298775473930148082554409311005368423624084524196635916081061874502073692136926538041727773756096422550889647109625727933718102393541133635502127035761698315843193021527700956830985821605033253176543517185111648189366591266991503232653663205915050704512164575189746689527629648808858903970133182202364047077820059064261542869520754970036257132660236730783646572457570520623834503267703825092865306154016158519626377731645146794911538005368077469464491549327827910069869337489496406587498629071398571665883829593943691197303027666984592195004920795528521710284143692448359649572722610780725716614410011643312909410804906949451358742271180627353149511307125225975021248613276921743701775725863139660101452181672618032626378272825119261669337169084093525607579488189838883572703806726410017433630852476158396190018928335404782938652854906999846624872446051757725260667592156366944625860317585381355488400755489408344313848659888703968678327654475262483221702502967383141848418807941232539231671373879793525160380889739251779126626949389182019334163479236464728232217111414487467562906946128387551984015546665304147843257581230295663288989172969909669810198928872055100824968846697871258945192339432917560400969569161596441237896638459295600345243909810715787918637079479243465503384101668236083991478110656424837429353659397049641166022653278670283067785509997150834985856478964126916010648348106189106347851436805877160840605032207712214564808748124110549051740556385499825226619504110638997018652530660259552640300254730119178931943319044799798337277969270085738294851931116352580064559786336250542294639265673004757748972680802648924657252949503921372037883375353840427710731056438315529308479429130892511909546991462388501230131500533765388316427600535324938172285149812302550235160544637717298727602038418366966104134453692432350362142324195832504465402367536562514286560243951052755550846276073437315831921653576513824342469308469285967519957842034218765541731874260379922477072521583025826153018916556295107844150883448584146885552788150800696227085151595837144335296515761399298212432645268814096867942980830385227077615971339231500606045329766607773379505125473894166818855577704155049255949843893250164343041221701871998085322179281185806985700877389626051042931505315531773623087564579032051443142334402584643316990751699118833523225537645516470266319926351091519390226059842202215643772197623100905290620654648168432946200013204772986093492013872654268215882565545175835923203511215154963844573673718978827461107152621509167636415920829235994886058107498015669794360983048706697027149453106741695025235442796248430124979415887042106871172816929743988543907552805423805933324762783112429680633529052062810477660864072127439007223727520669723766678939933088967000578949047726024992721087058239367739078860759889421171689194084119700288082651663176999465256362866736407591712219096027498938245707007300315289601451946980264513653630797399828893801000600478137416012602862701931538890906663594438189043340936436196432951408211369925966877419793788988744772228748578596328460135501071409378102498492135714460021128221756206211402491110910250578554000839445538463500869749019848583924723441945440583162507835502376675434474424239623080004232478994635801891480423690960498271321996584258237267816891944354071104486738625424448909357924138055183474931763043109000305148610563064562820309664589834076168437466703916321849286417710390091152796697075706853054092802259353287676441743823810328681894035422183580869141526548756867478044731745607506308734623768431468818152904159501080620383974269910781040544797535389264417927177735506747740947734906026240699784146184709445199647544175719889991552798695156366368522853461799339449525727533874979081798272927302482222672803272281064300527685540383221026278540608708696246389519579920892088720825964229065562437585882317889595897276815821739930064423314304406684562067288025848845839016337621552978617132467005236669053422397638553243365797365972064724478764091812701644480562383306637710815312010350893400525799916472517727201540603646825155843080545974139975584862980171692170723177059949228547456542608005954057739845797298493352421846341207905141615466747746135379800065096053958561659785623477816925698928589908725679171709558877310400396016735153444105946993628421402926432714338934639104105715718263985534990934466897284888610969514192229354479617223919557675281231550003624030125253186574459128247325194801424664646715594474553758526920419482583741862800749012331399030463801919683935501364763307724091237444375765706378728348239019367553321347375930971608233134128721169086593390241400409372947303502582643062348564331903321716898657265712816687200081463638136695419056461869096260124839814634232532783540186156846199208051528598953090390842472677885365678633334259518090570160530451165789560183961942953055236940507698638481210183123863726435433479261508428039999374373804573676529140751735733395262771589233280010668915799311169831964607587243732235122548966937080347227800711092085412286451570476084572634661782339643901377796300178356930366989206807769271339120091155446087420337629703838029387510784624679707770773209481398287540419588966022602052487903017984252515561999861048612200345612706890920156420514466253727348256853752517683952288024458738721052602166592029776379068678403743027965654947876460203157738606996720790808918089672729961331321253295588067333950796824699414672077988379992829355280261421460706639653117207163083385582398094310526999915559959302443861174292188546032479855564422071821860336668207658976743678143890933602638103801867143167641291980593520635237601474757822372808060397582972545557102745010666579227678013704469667969580666924238237836408575438380351845986792063571031482968029973067353700061710449258078895582822800653342730476601373658778404636818135653005566802362222049213044407693106554560105769732750072043067275111690104628985180299415790775423986977807137313281740419694038103429978913178737202629764385742096902257334718405306966478884461109805520818485737448299199853284220816420874865164589014146445729144699304870399669927025689693002723982007759625743470780942381581413255446347041356204128537557604588216341377033981789225783000491481049082130293244825877389073431841935819391833826143195104926959712757235419910462460864941740698202558880201718926013191249644217637712177724208792932594410594632217164096529427827282233404794539863807375370653580095870118368278068110181366831335003589570643031936360757253223917090875535689673782916412112541676846499507715426865686065895747284637291192558506383025313319789129111811992015645877296782846761205347762398678509119772983881601479192161915737753958753590195573759521786443745513879394087317417901393058677036626709322974248244406911975092685996281770446452826308389223295420048480395744407778039067027744469614218125576440579139126303263346339469672049385836953126572448240351288095681571191651993751648904946594736625868614223954970544905207953768181623242823072718232578170360426064269847490315712020602033185943748139531098853435413665797079745755267680522654310440538629646803773314595821623999083363778954238080971156147633300978348201974052134226703655478696674064126224190737628345576379783082086976310719164884120664670622411499800460303247497463137885267686503049886478752762352849430106804006029915869685997959441813363724150163156639182597594515397815712967672195131848844912159251228677291655169072831543742387745282356526024551514948958708128856971664294104355833606956036400031216534684576791993623052669820142917733573212346324738262010674732802644368049544427683699035311088240337417244755198875437306750234749845925381017985432107351096650396955418280081119301230581655579723553605585972200641975832533303184615387928537628255516064749221736326420612235993964772980940800886966831253219486538295798239925677439558019609521236666634317379258834255980465799073385425455081145763468131794639046318205452534048659692332414176616334292047866822976282052948751984467698556907946108469613483664998628235841586011967437059011557276486881390969991736719417119369367089900603660559066343649415913698515590177962406080272856467582040054278540976548901063583733414756256446001968352387096743033782517302799809206048939866146871056238061632822992220456567070573258348040880815643740805610849913514587305989074647945888299856708210713568827111566561241133824906918018447466743689771171474045424489364538539419489206639427252767737237354469530846666652282261668085653504017794214107069467279862673229346162144963002341752139440335087209441823342370141712426816859826781326456665319554480605485516967476416655871489239267470262732513707263607362344973099727506194599916142472160537567616274771794457365130704960317963823555482481199940328744416057966990035371116765538454669165226127518754291670996140066525872093832584520689507725328718066000221602693523492171827412812466986140032204367891408062386205807956412936838493105635297413092243248159660025536064631834059453192725824756498270866496003820788779414280892096641965904384588067726678616806852095400461747042292240028912158697534387564671489493725378396298618489257007806814051331483413519133025591192872662904992320622986662230289554487764037598819708941889207395875228081739865022008747431081209399602838563188885310496427604058143596674688264801530690129396616306682847210929278174477535532582233833122790918326392079601261116866499106132307559772208462443961967964255665029317303026694776567166515747578790299054622017734318550362596846933897828023938561408747494745945183783247577438509677560538193951685812148140109016641858518927749049474822120666837532886992361122380646312715034116988821559445441126726552085052585342050576487706318353217170230202130696498396507278068423437386817701973452572972278173209887126791451809741590549995500660615409204766645861531591845991019238254626530216682793731247715160799592974071465536985932073924254750642406201000542064738553862693102218384501454530814356190992820134367042782190990319981711326612086176447889084170967801840056290217376258431752058272440688475952910123834431757644937720215409154583531038449872658724568064307937686507955133888282613239906375018117548230334318759051557381369223986603396375361794780684163672392139840291060939086054782912031952530482391789798459823459990250533424323958178618849605552716159495425734508682686337258680693285666832632187621287694020799251705615031362338948130106090425490813257093971298060099836576809645479096591241692756701966205434814397566827967429964550165418295564927098631558369572365603644390180506066469822419422549960351250472369539681142662670358158828306276066999909606878826916430634861835547455225707829714491445829575708686347697356868296267499970238293897194316811115983578094031671289533835104742752950498245730173447711623597921092167350507794216391683942724688947114147132240559224746896933087141497505883558931488452913192602627963879848030213832822079640688916529514229255487707943687953012006448473314981388635598848990721618152586726322563171140817539687334602588873573632338449223042501389531154926586476973886798539289322085007456384110027413654989512264069802240300281487675869509478416929483394746073852192458197806717251502355786336690154072651943980930439277201915596432746913265484420743161523765013614422637966222475589362322694804303278400901855175013869642312184266185131540934703348339271060194138678988299934352542483679514370153181654280154758543697612221679670186544808332974984494054140863531844464988378924902474747551668083115601708980246221456449142285288555439554283073560067156712454251667782009290681540376041292705185159694800965024690433462610060752453912617526412402863699824663272131797765645896358630888023399935798110567004002421449662125317314536161075507415291714173210431690494802687410429119971871512745178807949942528883263587010804907943920662560672830966337570824562461387117549970546150368741979497310906908332405148883910337990232094636957878034478683465369448899807612835443698344813641217962350159994253903786599386523931101929443873502711088310000941803311695105938557282125951384143126961845795218695882704569330141984605536844627118312135078063494065548235402790420997489703121817367353957459576488244498567417535600822040491884713506132889299789920578745149890141915985616824916356656542310385439931308923227330350718680213687548323214036617797846150694152701301320596543553733919595666072563792964066365313000478347337739529946675039928690764314944236334681282462426017551445145088677768671914916209403360255993284428103361472209174276983345366637762484353233825601392868276342087023530331950786238555417630483860235683518846356285534810688507889150388085462123650082804751324423760534349138112517958822790420775142246166293558282875567893787082708166867963515574001104364796329573986071530058798733685087194398931868744587846747901449320187590629851703621782147106304693175446238510939505269769365680512305470271253189872993446828156901958368545437607899060895486763281425745153338863514591323846733541640696446924805789282984732548086528250196511839062724406127484805901013880372278279814024026009996562817818419475998250366199245260115920064254316701286462989739759102757182145804165453935638153820517316572684870547630310085105134295471815071490384014924531479476214416554903268427503347070803928715863852802731700940423152083093666720074538847573115699553787679223589972636782535828416464431846332931988249704547109105627027282433202980642469796527081394803214010333516207206862013317209049963111287899744617772287817134153993019482881690470566302426551127240624274039083554406484934281710415685832471270546093862976340634494251822291722892718905173247314746341841817136998411021646650678531969408602333515436419977377523708004665620686084426839008998202546337912865856958342303561040658847473886812900891966468489733628222988624543061342942541378283330064084574637397093664667708325903300242936021305638698523381271390699051403561001941308554445843278870677455575458592664155747300356308091735176681803485639508418721230671215848625612263228015642190617404510891571870735638180154268053594356843916039398258646052506183014310460115371078164554191451467724547908342971145767099570841830513077754948007998665453516389854293424604572161159223005606934132970924056046212608459233146119814967032672655001853129869496171357321191297669181690555291958579109272055399521086149893497359621160500290723071038304928547815590135351506485251626625619395297158468013351652933698317739865025170107373487546732291394384830221583610454229441662971009397429078808900066984613504071539587894302236908453816978714835623266174911799173955315229806906414480201979341040309332108753597135944329513908876886281466155464322606714349751404532143810680163141497624097676670555246823365192137112967419530092433519867324410583803057010890264496331661232728188243343394444157372796224496225520917288317192672732396702782256046987489878319574777663554365304078566827789712140444610596592766662782260983260320962892663223905879181701202006613140873014588137395231289751133324043604149234164054445970842492118397312993889861402582461351062436833069732114453668724398440508879617242270984114715845193533254218094676795637222514874455408187315400793198512253503896187507963227619249308949351802965505672746342539062513616388428259865008349574974813496169604405454523071534650710886969910215128260572314358920320548993210285310766695912759265392083862957682375490014591205384652308863636972872171143489903762852098442756507988273402569229675880291863954919131901812505455419748025644021366908126198560847321690377538110075293692555322458311929289174172739611968792959579893403350662009298393660278231725201878958419726776973930912645404206808341335634040345372331020166318212437252084932880148853470158802542615178317330884902956167797574093593304312401393988021551922194535924608922863763094723471602200520618525858270152581839436445577646162152250093980341614530977024621930682044442113857811390113956851930160524135615650265237492806329204919397873275668254740730539902206504982298846283634816968754010754660411594775444073321559064572732834573442263958144951838262395900949536962082460520059039561265985470496110817017215777595579668096278608742942759341026164540090105889424512035860604186687723901663569931523036480740662983573873158662332907601068506035209297836590319623321566436880412213515894076077123634571270381969203298342752041254878420446307597202982516106365642449676590829911455195675453539659097166327877664699585960304477885731178235327848311009625349323615838568162327919195838097042546409281611920349807250755232320598653275372567137956027510184323101427179895053957128978970739310863657146359036207795726231476812666465471313459693913240789623686664416807810678896788537076928076738963811228902926518875108979214554736190902717099792218642059032414024208215335729528251518564187652046211242239015201358430750394522158174084528851696030637735881524534698295643022090629139532383473421088647695410139055595853414240856453135825520939976991902499116075975886444956722157070495825141558179611512256325077237409872059082226630107476938817264618284799012123644537420837150960809297803856184056012910967982837033077020233309119227039804476252239060505919844308962188476751886466018765276895892635497617835841950603935330577498251300762906186801938484152712830084065309660156856936360996667984438714729766299732061189772303849584342687596722632697775105261131846347173504204454932326103695630323382912726589038705879058884299783630866536765835504199010994456850725700720911083930252259638935413244632880635113016348098178044556832943422911194053128303496536860199772368687597383208310124658940272329813738918782739505300080904229480324936099999230876155046622468041490872789257626396464017228103070828297357347732173359166193233672316927767745897924217329265715451587103642161111150040396525883407689309973231841702302548745659304440546115384014872149818386563867867165082614357319393265035812614982847430630339923937346801583661802101778805096077327469194172988241381053276558364152871103259336594382994583442704205638471677303405296088338676640211559399448520338592133427515247523068676019753617661123808681715447732370070518165340751800905524270498221714201557577578717685606692997854053098783628774641707711119394368565433439237570568917584543724018945637030843810129380583740727969877315784265327374739414206448327496603073977509243912602239831135390601395190086407694856702929133874266908944964995124675526651689667030586693806524065865784083678449477794876984756477780186706917197452210378059398421773312974912214904919409307654027622882151800145643065973095142176714743242602966904884122298222938776540359005033592912178393331458274253221777668078282876342287459842398032000420264421600840452425115076373288438720943914102542133979652041845904487014970689259206284338367816960180638341552829971885746484482267076963834902719746674784934629866975497188920818384145059311003304038395108623803864115561174588457622246507962131386540533026169495896435663722020102139847686714316349051421995876352549221125341177859393361084039660225041292032048684702883829709662249745848344703463516260146152981678825615373152541678620528505690061669539321395571889440171096575359409384217343386063504773359465812341967433107969124675666700690550833108788164271941822506015292536035485091144153275559642770450478453969042748302079292675802870601469071132550313625085794923147216277985408213514018274326242065986235952373263635450047256365566632109081481614377894715694914202895868959953971543497907083999400638032236209964271586679486085896130358215516536018586021598442710256098169774889825927210176170076720581163487867273688143350776339211781162405941597512260765659310247967329282751800290741763957575694633018527365364407009656098591848967131978762794418363534210098538438799099151945850968720545327298096954123870245509392953450659038585403241343954918383371187558425823507889103730834532185807075716852632891225078448549060507179865722955695933979081415413811031884326617855839300554799358510265462689372033377734322142567431824846137286665505826797594352798093296830161969772769867898621978467762639469512281861206401636812868294397161076661456260382662625793461131315799958483283577391785327141643165399865578932849403393060479585386246965220610413113482673995718983176640364673489682109194442880032671127500515245168451931286621782464140366878029918935800330740643262506358052139576142143159535726969574344318366475117158572473097177783865893942677573095429342234314916977900384881403325223513026728379176766377525188478429664516670532733731548782699191446350157547945985783061781598356916043086540383866980167415196498044314341433066373190556225551636121331267956734216271299838209968099953135179901458196782034148027275231208051151542254193686052457623642011651234078669758631818974324347103207296966599354816629510420691445940782934736666283305760910084164295740038560987298583842009149807866739503330816056197110346822723660171363900988986751697626918586225713996563796169309108345752365757726916017598947727664468557661776358819673033836139726244436932120419617150411706324449741424392431346936251569879093286302593110472345588162510335159334588727974718125385787200867219224029388478249790375224023406678553490832629307097217418760334170570913432273178876520815704681217372053437027942727859337438418090678529269159903714531716272013140238884184269624301384849456174017993773971071583001390868996396231999701255320402793892067319238668228513466156278242158211661974496409134017438250513665187556837521012619424782473301047674040179627836103142354082833494918154145136879630106668150868752780156080664581290439973230548436408370081760200326134823514987161455925503145734618790746463169663960198675535875463958768140976233898719517942598027620814355354037811122902365495083797907461792899327853346745306134283048083430065575857595225864280294859010462199873561642032040989512853764963748223671319683609830078979922713675832029798904541436188220807378676521313462558469154213634843488056458609334778592674257087926569518274512433738216006622331566697041460635129923217638912516561667260248476667016386655754324166887911486344186008234268164149533358861205881960982989458820936369642036278472659717401478142939957614982222186206842072680305347533398015269445220013916476110372558820062418223253294856756031471338161341988323039169595405684045238350295430774183430245934249528801372885677498306422455705954849018480171894283627035720835736506192162396027739142407160290300876948931841571966666986695925778579099684733760303757021104563980733364744362229391924289172565568159872179096423607206507618506221362484138860628426093433699851970100737880392876531471764618251171221371617622051659065722402360839547723516869885171299502946191560030062195808705659885838134722350615593733332130393982651419242609031853381200981864243046850133003191048617115143851755323275814646198073128918229410823992390420687144046143771366189913122952094961612831505611287772018804657970506875817308875449774864628193388103947893193575383013765008546335925275585887213155628169029390084010560121886273763776662130445603705686391789782526680080277572927671868966632998666665385859693740531162526474781458633442702512201003116610674072382584540344105664938818345694890474271792744510087397481807529395537453967013629432500207235463586755745722213582353346557711170370727219282244728950539462284995492571253264419298549859320776940052895961104067758430589040778549324375403332804162472609154745571775100248724790436264227327834475082541233535367802610917476330249156055613490185076227190308544360273590226400800989642231803388046526255669892781768615511268791465921495287120488555279430459806988962915704245001443999805703898971508811340447492119825063272736493871341267839141170428250635194428980305464136544978418108439007406032765055886430394253781886856029920433715180133298334768068820120976760335785611034943879622619459676397164460446571932325689558236916509302395260253031982234462621054558730059785051766510256459399703328997827247299617580508903525784251224515501204672662034539574665940538175922314586501576207580775791333105500399345170554150549030483149823998128151034932549862542566442242116203364452681313581435386909933007895861523232914614266282121936931980629709330722314731745530732082263309202055083149704307568229055216062392305455554577915704277871359708210933299049792224134964942228633605882200746083064710579809798038343203325133257528452093055619441604604734848536086925951693653381470498355076454837931513475224883928033743069466441034282972843256056730228086377464560234466462171949636421773386179529328382548344094443262231057652488646168879412823405133560143999286334217782274589381966772241788288665374581424311407008487850331916852264824729746466269566777326758007855906019393992007529754005502298970137121578607940968897470395923886550380280709005490166233732681331876408871966342204090335367172857502127874580298901648037985837094155127135299653745938540280928635121557558580354238937131885424642519385946621149186896504215273939492907600488084048387973697967362462077074555275024795534993666957360053249650546896345309537730726333803425521587045187799323365644131322823869506358217599804804272507924741632466909071541147398383867262584368142599730727977768862393818445704856171216536299873029546784641211492252119042537977588311319845143088430178111414252722444185444857266889084912023456127692714296393629039578802779038548038558707874395849901101634452910598957938630980928569727356007965482566037882288319891003882607829048712327848477735229620885722793688075661953154753126236607184728663233317635485928545637609510333116244044161495596837781408802340632243292703123129527048524253083593187097473054674854912879268919344618556518937545417846312278718227703359281152518602793609122549918602801915433139806155297641326166466602971153929234930850239268047888662077653528639903165762178927925690121525660204281117247909107803070824213635036762752057080475424787682487701921048783377086512845233244720986874890327378994767914871918527974690260877488359079855528314218526563044556262740674588294995311350567304725796985122808176709396023287050279157624279298605972173675394109507426259503929598608212337782976889958502973286010925865293122258280303892154004253343564428533565039650315930041692248656155542223279459018980973573535400286405622428656640514016374943922690012030186622019062906528242522233962300694546072742475680374835645936188334331171084359698108566719619728642130084729685965712662543450289044933435047340364663481759817789518902680247758116911635003288899772160831970562721056371243935684484153863687763466123437186744188767809891803164906796317050543467736938073324647550834843663346121218609365774126493786933576908868601930367604376230041065029838884558547972194267702628312540580204818435996571921715913061630297966449133653208853104230238366908725998262988909185237281414185949244465889339009551682407423359237601973325084444026300453530594633033817145431944707093440296153059243988180367173666757511137666318963309167026018500364074713773570483382993063730112568928214838783989640748595213384070629517843673543938915483981353179147893470064698236299712849010968381010296711823213997595743302724397657261304938996111472449438748380896566265202817783821490900332229657655451176285681115229242765960505340434339654031704944028944706234651403213078714650232940076114387803647057070410646042290660694944442533439460904909774682934805763045183436213367363972248418538453536039005011260352786993071091569436534105419622904129463562062853051760858776691346788514031060974587427075158444932219917239222929391547128830682472398887219679727280384056831505430037928572062529712161636474638541510875487303604538036998313643288883820314530758468151609820237937237516346109191132723543533423443543277475794631901126968470261225596104152528814020055489860774890095797160329716842771371519180314700072207451948310480884420693275023394594707528557260697089012575324047962187963109201934125213471604821551183628851631164445598948461357307876596784587818333070560412617658967516519709391540166801664814683366713736767191252266412269914102078762653867419865453037913467271413085999087439258591524090598991462062628198228031202276788318969693274195517393891716513699290158750105837161848575960002543869366134205773349021359457973590423454336268605932749565836649588357809271147637871534766548824068264119252286205398457955778238372511037894240490300515190432831631633061118421266864663288412674876827390781564046804196230249170999502493213739547110223664470712262849876679810846690589979176461938415279419444558038308226274374785491268598222409627050330980976440460770897998903882530519708734560637234230885508913512688175163964958149168940233279582302297850199412964015406628957664034468798584492297648291490998345798738099730486654195421418789854817899936251612267608761104224790762069780231223407488710091740334353273356112224311426108087896395771258846422018420962717313316080174160955977670844414595117648185672858979660815063488059391207416749592363216456355168789756931332822704593414528697053279005425017598622609311583232260795874103866648771957152050411332256353565154839646196745380880197863840049062114428702241648762703979871166184390594452762854436131953501006406580788028649535996559778850461759833427196779615404447261900983386014267735919958741039627352831690246050189983067826716202393894864812967662972080429458310915798346347088256661530746866425959664580259008279841624411688457883701781621330567447087414529036861521196099973428423848830842096630989324224503109757291137123847611157444961169939218413075028408062074308956063829781814576344009546569479921293674715366127339782407497192795059641753116674322285548190985091998550071944695332053490702562658135542018370868168530500455594991745573076034367246920718451401097677428739784482619601489931812206114630821643443517998967424251149721857875376653578524024297767531098647810900015209232057168597667069182148317303424987402458395440322804264678551973084593343874922257043560164117628432599285709978672300924419766733402222492288402575385656336598547193542245736153367189576309115495839339861038264006308986102851402123358270238040520261173777415537378441477730387954036509047576056592660474188772537208045149181690280046969821514005383748766372083292928474510867209457821476505955079712545601957800752531251690210391468411051278559234841364580565617657885188924870574098417579221818778739696614055973966148155198888178248060898112778834997673485243587760670419935793552810865452666455005080383044747438750130189130685329163774702803537022402547018434016995182461829310887167197594676126328387602781214225306642421782654167229156454146626601497567054182754566968510478147915790669139260842305688312729447193354410224677419634832918753173176544012248897308964137583172278938439011871278083775349227625539742678294531560319022977774783433565721351237229811541306637529248533219170151367003361427187726709536506903077762652781771107126896540729039387606158318999167292520190882790656456167378571134625041346083949751078720105258355574590884583289776970384996124798438495946871444647892611955225337458008099398485143019491849441833883525888155070589405948865258018510820802532650986042698140750555396744371800969652178859007810182039216107472256212245572427060513519141835954953379884302097575296199261461246741730258257494108555119114622620080156892885810315085098052839943074723460322083059493970127332723399856432567765850302588418807622145032653215651081350816309162177578629424134990928158474531863721562300268046049482846571563267237903704137596984013940203755546908454765033777169368576525066002509358470339119089088202308383157902407550208274696109794451634278756776689401032497288687835233538346746822048013384954325198186684810279453070690677667831561600693871576957865673774537026323475135624347148635475385433126423770669242427914770747104432300732831957052799797174608633563781524251526869822759721345386547108025637826931317962082651517014691991452501869869081727182110357293455615567006561573657910748497072345380076648420866709254435103404305027419333163185412244781772551876554252261692774698487134947154632627857012642209750999952288591231576603239623819560592272497562023215244519587743333552026197877834912412583400330930358260351420708944519333040493884497307376165832753074192829634761411142878644626463773099962665901899582076889084857329378886937568782398182901292089513472040734724602082396315730935902312921059079555870721917940382532301533897616577872338040849371003736454711707930443987717857259364759412359012874500318229924590218641935682644911780837279187950718261365693180423474481034932951731007068574900439480821536860113523015860752913054834407342231034065887214863917521234257331298582503887113219635143650172364435362118920925033428707371947165191982714898279080443354020690269042310064112344141509889080535396175959081020460154637675936816418598258675588465152358771991974551344522143258597654243932061755041274969418891913587726781351743584637597886031095718072160440108339387773465844315124108732329399542327617198181672779258393963720460317244512621325508226721124879062648322425123503984734976928363379628779817494026822610625939219314219050614773956050303728318885741475952043853922807191210369345488193829778259259612435666997661995414647842311697728727618806385852510959007344176403313965429572517811517889863766284812079311825870996670701551233826462662435748649894655982388510322500280328666229403374877429118705041864221475975450860830953292290999873239593281023696541807444662482983718833550512997048588815703918829458634585916147592707955761529881669315068273576053039576225893577990973963561263697356130000745170750997792560368338134362646213814399149883666844319809661349499288791711107501484481955808268361202195383443232766285645212067486984403454398102254401074093715731856579136898309821148573211507338600032592004204743120617011140118734582797562151728521078583943680141876834198647831008027657760978246963925802646121732504434832812513863616441206347252117957757693148611010896518842197564531462845620638605504605026285345236908841175819967292868517483001723010753707968677699103080303462656495429235175595039793367083582570504280190756318928359654251577413578169098955054065031015820833139948456495153987375606162537254580386138635544761319402358871638823096700713081585710935872926454622314444724748630021018417465609369371368509264769734311968516955245118317637132236081732493729958991397764837149841326849304892118059383813893065427250539758332164481041172103763850026478875132574981685172352080774344598840938318026700212811996781131953970125226624802373258339833611036536959171472776476305241172724613088303660609743480723941720377819723876967054016047987123724597289222158113036210787383388370321421088993719504188902579950550671623280124930330026652043295518431320471630283935664593555134681093415164803573083265123463034515962367813786858759860713115896852835512379204503527864335896214465901972500973408498948894047892463582648058670179717150422429657261234172323451860949226592944414194681377117971915736436212282735872613955355781679752121407591166650900576910206536015767836187407966420132404371647225107321143642755535558536322458152677806318859617499345664829854768603641484967663519703805505464810214988468390141790018740673541267164229038564330359117308084356437178932611325804518814636398179615382206418120891243011691039522945245927987764095199861688248396052273916448849164823354333478218993764797943730105587088463410590106007564587234253483065264569823906836172505588786535885326623600380538025035800030647989183390521362676218770516915024314939790950502902369219991874310994259095284331564458907461630878315469168513865259987942555547058400533257548760107417444052871720703076455463327879769948928008338626834129507927864909055570297889287958305751669308926757677238650336932839210957422651466588753209161535421420770106530474786311362852247582081081984214143914492521836720629695165170399712091437434670778538127834813417246401740781333499955885437644155422256709281423754637337427708795303645726839116532159247087679757779898026937736867378317783483252929869859270556571923403796691812195351616593320240570266083396082558765093218802417955794001485280386733928798845480713574399470730298083844023370263661347846952149783011890937026829146223113858824060445266687484944810984766891175446439314532121777522261045823944051189946478256533851105361420575202855991505077896418922899727263406177693774097254101991518322900563313031177768092887302606449269145102276099441859106295888739251523657796938236127108529413854264238399447366666897873073664379503054590404968715377807542437515057011506387285839302095047732422298566920835827504934759877390903085414227921063690964646109996070475727612460348629806046368703309797598215648000645500735395975962456739167214806586787196106181799118970309910567207692448434690354075286235862269950587491736412952233903263279289254017284046173200655247468393469257513100817574193979935917372263889505154874842301104984006968380107901911834927696005550065822278180005753179080005316994964980021741467742963688642946008672942907350810438661241573133287276504558057725912440923543913949136196932717697268909302564359562872177261348811751553873213997697078503568334610420563128141347001578195938060429833976385676133075139826167119833098789265300710633915368309275076286149327025570608813142159819033462332544279356665404345240290103957788588414323178517859365731906075973437698937041204406838667929008125249201884745272725168681683719670296790510422469571380864190687592839166543975482274041940463368452983479675540595577131212185462693513371940135351874351905211757110179510739771113857024398395001684859221809354324595885232210221464444246603081129914615501595441666891541305125650326572838407894253715280423581965695971772262634817257981018813161961568175350855416214504602968840138236684700767476914039117938885313742466068864515706284494405639619615996402684646097223902282675128099025311039512119282797911345258302008054539201717718447650145541978380631032425034870565461507659385716379454531246186349407401993616218027332354467393442504403500775192231365712265106245260125235654714088240762381049779822440221163627589409084701869107116588024367936202934364299650887879385440361982278950037072926579592750604358691440141607533531008189338378501922951821430575351316231671625275618629892612327830072109486133869989032349103836633505343541073481720922254639481749301450334493088612286968260718957023728771566346689968863317570959171396906131545542454858253418975976877366955051464706322682246640718302250002716658482630447161678793236061820463843960392079617926651722701415472982551312780287722669137598191030439686039049787730022942867341810544325171888481758429909220109862829856580687722073017462772637644617152513309492810737580163579518236833333939042627789595502026235814782110960524349346669866587035570243804197582233481272316575390731612004860726061177250507900683496044594425555407756188509981143173724398353435327317589409199862460600568270645186289345086959301885981665917251677086788146784701834233577150272981440270809862867674279931903897096388956178538430473113712865174236874779854023375900452416132360330230369714920949605834172007772391520661663736766279911805644389775367645295591031456225620706901735406620627361697420424896346609123341770962988999675712748265534635571761992012334092108577689888078670581628267291270866402821199677036844453679046132556058569662215389190298403255486696134786775870393615228990870754246019759794214148669302996343318854398958003516956686163244875415586871046952980807279321787426593888922526216992110737827576886130738238684070382703290569740546851335027336861769448693909050451207128577215291249239896602969430898871685406599399600382161163777881061071558487583010779507192239265049321802979472251556554172599647760901590380534435521212446570607245506420814911242411753571336509005801423872875345417024318527689496060764709927538434681198901492754083841340933854039844053604907631419650634308898683813665139643724150637516744590475416929381230573006977703666691532591506109780942405195444185922950190412912358087335827916626685119601556373429172817827614723123933979026309317617741058492761667636627021289286544371916862227026093462284013381945776835384880338187533823409413116897267655513677843362666627094696907419535591742089175301078994595393480287941382845615891955907482159448102253557035948452389985945330318557668877392371543852351488359101166984414082370131225157421873143525271804553020818636744943554824031351862389612360005654335665189569215973358905835847027469830057924374972269371237712796957259459817797025959118437111779088382299782324613036646913672102475344936596078134963734240591028850466975168555408169534614086109066609555113713859544032714664808466358141211282726800434986067239513326418678925010640643541911115727322364369539748151590174570445697582026790946765646402017690697643489724036332316947736108966424999364503072999837267111561986018363873893625223746978080149095715490796145520560843528426574749223829627959459487665307794543195232074732085994311003107932761804044366244506338010420602647846812570745241001952912142530693971311075680731350260794185765390703160558204077128004616237009159526994352966606243558788995533512961552949035091955460315247225617951272107617159056598047109334965378071433290184372310395698315793401975814585912688286546800146593697407153169132168857901550793128913912293375318334618712510764922362336491302020799231470449594801250798993083230314321409968456237490341062606123285814487587885140471441181390387216879423574334426227940394501368487477499790107146984000982700752112548726571343541694638736315154062566028050856773756268450755077741609242205599090672569307255564370180733972067432378369526690786750300709504202318687205686733449778232659060593503599019883947857895366236070523723600394674577421983275316160598778192392242611329198409594503450916647376979987257041617331254453096779991926025837176653021940025896734563199986821709614715061020003037386275678028946846496299184121203378645999843406906283910259396777104185153496563567779113833648736397553759300373718395269379540913401747910159094538447646096220653727906724368202712257352878605581429006609675849436047972438699462485784769020771251043413481835003943805358896602951277990613957042815230939881783118437957358229508885325914792322364521478861239433746189779092638547993945251242353958496398913674453156669766904980190052999414902778183561260903843657078945825500452314160425383983751607871536815733977201806136754260154648850537564730207454424825611892156500480923060905159264301974182065362149080820099740664059674407623403883138426527269891552920158822827303748807919200095731440086014354075484075891006677980951575643121785397763344167787068387923850316443238038216337642115340457857034738066341787521421303356372743314185333865768239798923433610612763459850888119416044025145439570636684773329097236854859797394966668794400541918620232972837536031528673831638731056261139372751955048152218842563769974106746011489422097443510237685390551460229567822454458141803409026950380096009339546128742871669001928609645462813715287905351866181005239649397670301732634181260205687413657284470184398076885036402501809664875818065088025415333086609470157194460187831551231612907117936072999185799397594628299823931891099970225381174340047941177662682281135723970827698178360070049956332903666698134658423818485088491777311545615908520801306414278303601541651882427706842062280031030451980331947438210647113809523643033829129521440021882361894664789656175935037197480153496310117193911719726851096561714194649499892688923009356061132555369866000505276464152406951268435244338420872618300544230790633037520138349409751766936903266100304122913316146036179863436733688413313423619643061279311510759670269131855562920264960973936791040829924132745903858952148737894979264843680323459063431638233440063989592764590478341881166812650226619067580547024642518682459449417833492729218045191728801503517793278586698540092027290103258324877279083315591536826087887677958633361236097379364082486099899185225199610940383120087290767544868510047133987042092653032945604186605585246776917996758448332746293368369965215770607582935251741755867043032041093989934384280133456188353369994178177378117625259489544502892659623574987066675093913850491702639130540680790720243927501882418951195682227638652248223305747807483447582365344430486035781668223456076039902717872571692737636834311987099109158194123693165041512606499834474572976763160750265373185099420607127393589697215560567894399644061220564682451571625506208145638036558439873066523933198232202712367097831092341820079659413277069594477078037415382336663613152925210484388246984837743274422798281925499417691702398379281414951539514219250028207280182490186893146509747431481119976177816804926258872158336189721805906290318233367151983929192641250466749858225897843162034980946422674201277838373886603555994357563495396679054697696547689065575272717003650931874184852795175152811820938036903763954073597073051723915089618593795993976864595501335128869565382308681002788383948879970562845276921065218424207886473684846833632979373572610504814932515697018691721722458254085571961529079745779139488987932119130848085912586024992408656826891885725199396401627146639901518959540934727819795938305639958134653519285733984793238649649466272750326318860624954265233809036832188811959936448809498368465417495695252354762482122147659006763257838930598260971230935896743861762076790783953988741350194146732402573857178747533438553207086500838923562833889045683260924340685663328740060975399175527667039188010814828047793474735447753158179463418906421401600195639817302179023579376126010137931950208385214167402118674625800449508300327914728187844658996698096790756764641204115071000289358388430516267780614296411353820351394043475353636000598691046485358515637830153478394218613434790977280786655375703281358728303202179290345365373093629575464023841266371147070055274489289385228094052076940191383751476047273801879231109469653805712931089054863979456448232607757991018568483311257570256419484021994834690557310804623890125664924310064699483248962050171653745650704535991884825233665492809667772091449979893933499311181008415688792152631997231776781728803067789799525293625113323755768221628200840013815840596305893822550095880019333694575630047383058599702600720540158189317987611028286121908772274110742918543841664433479291506019949289721311330882730575487814893945383977303916613592175214490970059685621583048552163288380282137068055556433198984418361730695907630890486033967748355409597731938314327046532438779234237604404011136272451679460939493847588997677896388737122081692896133512715239350404109163699374499882294875638364686566737191376161068872821967867424605713463751463978645823113486613205617182075950675710766444782869803857295614743820814940948464474602748832048689338596289090344286121809681975043632822810752682254483035482107685771214200807402363546681580754525117343406816419174464713479464066445844859130097834642251978822723713382771114519654693320821963585307536728323928782649294459454821487327642149698137651153661480685176443986911158936882296050316337549302626459047365417678468375425227456501807153670267600787574226168573237089857025206129531609932603125437036230746022842475440643992852805881136087648267763387801220288416999373685706676229255931556082989782011458717170053434168522075647610622908913947965831103827116906897578519596298686472607918822515135120785283030378813723703181421810525129569481325191299699308999429959761399321047999545512423491388195779216079563646057104115181541188378276358233047025921946587749879297462041444475069443234605942887318448637625313671676741242031357096251763364541218102800774899303539857046126278246526361970739115231466818374760036873045447408293842020738904426992827722651258630340921148598861690744147977627315444966882580091248030634380671374975030972888432282147127944485606230146100827723584887562135584483666990156022556078419734736345833096198207496562747509019926052222590351199006781625326220447986174306302164326423950629201384501680857259382286992115294371130976189792667131567897040516229754717947392639430827206441480365531707977546827437040816600113872923177499955155979479003821766265610345900461527651431813277342006495775468206550289207893249586642558641543673707402276346802383786578959960526383823452616139097061697148575351593686290234685833578596344141326037998220845581194428228122760493688009647326027692454218889577569048147078721965988320667673330541204445444631413861133354805443151009876444846560605584280006094738380861535910177636679539692475474749495630348961476236710510289239436385042322423857115654512750906437974000194845394530938052690871158782642305830116307411309865884297256511411539051631907842173639288401281062565233796794438168247484537496637479189769792482142842348192981568245399194381118580096962769689513784263166850100464558464755772175707828313414505266837527672370938387977376994075549201988082737211210190918695923971485095821360156016537191804264320596425765904333501555036260983388185961995146035575119434576538287261221663832085203980417932094832757733509530454988350501636544010530515963617532340640812051653699534139040130679062802999332104152833254021441739042817077353769062077602382962923064162721387344344270776595865325830665516914640347004656667066744111606434832683925164596229969364590930645659557055335610525051798588317272850379282066937835522726867157972398548860404845085288104278333522517556879426251278963417752817695801915731144947498665875113851126646355723727081064309052560001649163567214749405621871559279074997364989441003641299645396899290251143573291431847398217134181378058720962663663473779622380617800005523361391398378233774156012307431177829589657933314285977001879920557636333998027474726224702709540067779344481050562161413707829264028286731949270937438752555993354874325429641750355556125617150951786758104786755309759962720009629949503502041574134073879760261972192943317688044006036424868592302551240435501055846270893405002810834149063342238569927634923625997594577865060483768414716706974060278598908232642512605423561449498043027207349017732834497706455826866467596414197014713678222742332945323799134219048879571478828178342847419135813423877284452241532739637596967346802469406229112426353179224719783198717021132079993936016530498641972445501361502382992514339810536061913811966990685867317440751049785050596400749466774516939865508879702087444947698432869984078695264677278279180482184525663219397893367727326148545496047271462448030020381252590102346947422031765891693957958124938052577277961337345350669001810544928155616988236592530494759258222924964481276640930627612326740772686227232713011465566580996438011228962416880633445366956132484840709828652985297610458159866771707412798400076106091944195861450722206756720979569448782475780640457925161720130935224860627633238339798001139248674023094345143808715109342950748863532676427487968118427841913352860340298139818544630370088764652677683349923137788367894229537544442280017767068689808905543697385232804908140069125762668977090640526394739015369008183648785557237856229218971669789034990596299753917348857219972366919489894330336137193586066919762393289342030298495162971232761431716552361098307825667845111271042739015370159232719451439733644991598677964514324339144965653278399310070783348864186527729144266870932217588939831694481847359278833528446731947209241340656362310220198059163785058753741462907951891984294933943574802206619752356700858222856249516859180916273862101478383448637892152319382676991103690917582866969914967871529769044331116345269117027454742586017788647080646035188442136638360182590252459657320796501191868245720425124780879856052745323753639529417854122922648083381701742138058758418670931363359056292025519992311030944370023726819276915908416525400396286784929670015223786681386704522957707564467074222179297754090615584253921975629863838997571691189623371311002882040134948838876942401016297801175699181335202233270860746031078796675185521278063579028707473650678308780614124310868618967536028759613022224340672664935062693680454447961590101414740384667820663722573787626289028066074167395397730112266095383903109297914020207849636464609804622596719442342437222739162835058486185778894801680864187376544543170177852796210615672562675827951661717138488799833065364670263645526119083980774648382542734906982244895875345519683277881587678200007447185786584968090953323463299709068022799757494099512261567767476015974848117193038648688016322213288129576633734116244251668623397549745112018727099789378355342173009456256753485790737150572849594946642258232207531244822553678062172024517938667087540284530765734793775603761370082693866540468484724647350828515907070189627963455748006183236731210386534809376331440394620244431937550936089479080236512080687544221529685553100606940883423947234002157254231538711199696686588061432398129927739974006236464044568926911915879768795212488012985106947720014330938623894217062023004741228740347212007433179686243183217514744096097328011942454048372484565690669948124990495954199585203768397806785316074093125084513186327327429224162374686601525157248035268405901334499185146012794402576481386063436325696302290528907096067388993023393613294517563071025064343849852576876998649752447252513895198715433991952632016861279362490032253432181376774095384214485682853055654716332570458759215694646611459059924084625114486686282878787683170066222086989963349207625212421864850731219916691409395138707407536695586987597889691799243284510591541972621071345302983161360772198037195848720665075009325684499442038085367538507999824865642239553464277407568887024946942372451035478247968143947399581390455351331876207571263069667656119997225944779197405815912729816898883785517696640813092877090741638922643785365769182700670493905421640648156576681659421826252484553988006722933315855152580810157870499709924896897905832826036643571252206833067721373407000885467972617005076896195100358541536331603958298550497726474694855095332130186310067533598569100909282641784811203852049274286698116720804842660032293028542951800786547151665329270103863165950471191436498686448890608265501024959408757544142350522089630062856432007740333685877595317181978442918075107009929725182268471665172257924667780148512507867010896501901059000884117880422139400865905666527427182991333258468674803099003096035018338751247178389607370905634408433396252957877458169939578739307476210384100237205966857967212630410515930473475815598683716668122256275162967160144473975723429777313888440636942811974739914102007859003306724032843892538668192452815880259738844470883586587611745651616066608795915110719162743182907182206528838196363954926313567164887741624783551134783302945315021338121300192146146537257425718463293915143017140217643575232234949498985254456330287328243164678097817519816390435276060229441730669298188091717435433701497543541356037977162044368048066196570066547796616386942401838305920735211759833448581043699567387581454821550869661474944082517821419560870363565270069853515885434471507460636282657570448724966605756006888124429406090204355931257257968647262531957289195073206095290622020004552508034333594605995758381283869294603728784962217743576428742642270115162217408328681755664003799514757370494704311864929849988885955901165397958790473776793652445550301056467305048019591306089510300699927974548064180578008018726102592859965153511851262304240358300213391107414541542394527461914450116338366897063857506182924281300625100466239464857936751711177932953492713403324151336931191702918514504490012420235878278108341195932570533456933316541746638162411294642479506959576104412611993968203964954795440290482300353922791339365128129456412672274601603439045017944950098957232590881365100731895384958678511665579226894942563585436836187314602262632025529825857948417962297468937682734414975943965099577497146844550158679693823060657307200965081486051761631161824034692211895782220371720265347495250733956967003281698375676557846386143838857517237335712527339701259274316168481911055736664447422559416351434616321531188756405274870601075852466724595373429035688858496642801706775099613592372054718911638253143870616205120178597473766331621281791456767177941752369518975656424710870956894924568799535251563549334075525609368501783597072055509660470048159945500309756638453091916025615757390702485541898956657702059031587661909548409743073686452035037614531838374380627314730355628400658938243090715709348606307043305593666513480259031708985344963042961875866116800270010301253933630793672786440234326413665219815788364362208530461275371162314238201509251983175652109979965046727408586540986433812581582665207957367210039133465734339523349959320265625134568877027195972184935710803856738666483017323686977298137776166818569697214029406094612725678180379042875176344275669496421208229380779396431726606931292216800464193589147025766953450686227781991757596142047744646106554759753987488270046148825751422627554899141822437722497763569317902207314688513146588992738545944839855826991620210255408012549240145870337137124485738708402218361919236553750802998574525250831352055574376261637201161134463733658884007346498245572397289022354148877223021890366214968654972723509009232195226929883890905243515150807674098699140280811832371651979066195744897247741836265727357527859676679813697960300080184977119667279702619425398254804668866800551694939379547005801865384305628909831921308112067046134811229454327848820045797205873762019416482792176526817455405987899712613124257163913846158282893125127834313199922382744841990141937359100821709731725948969192801354053517400334394599939354526018137267556677276468954803262671849893307683108692008671291471180543666477733478687362699503060912688371772295982564043583211163599635620380826670965319694292789282778598129483930197034842573911624656869444609162474438623780462193628158913199464336525738749061512557980626190722872815249628937151037774987967473427480214429119919085044589809707199884011699520263345470780298636878448003891220864667979948781264437878016396171382552388492114076163116405317970609646883397857166810777632381879232144441135986609845598747137721602315709205550205937241227096216689247673316833668392531403433426829125596173753997352834936507397804669312246233523353434915734618230533771927529386411375801831877519270078105091569962202704388783293389674979452819285199720267165077518436880489298589167012530507802958745894216100751349632349971335848627207531515649283353779671639924099280610907442063537303822162394475986359978936242493971206684057485321135139265844638970665374786244025282933302898910240334073993959856417653271106625719894300796445461443968854814683554918218233096246825671275884872681245086894712812591465013160030677097533195960425123780446505726389631189033075414433693828356137380901254094212455945623253384143426040502301222792866027321966168503305393988353996261827515384147045488637234997944193929068261442473896991487123369796050897014834009784669492462829837110222889785515219110281419239057156721405167549464671426537875820852208774125517347870478263297279026403160744362697746922958497857989184874332879399317831171793690171814290021310779943397481628505872255177112653114258412243366854301949671004981804033576783177441455678562227657712417837140565225901765455621556997828169770139152706964013753939713389748283610174339002675047409887973263207063780450275869940702837406233518557382532262587593828455562674467785114847666042886468512633146816521910585164983425161205332870716056743782549452137169411736283544502494924519019750489529334231106914596018842844896857194946106190255225544136240945713579374399569214938564919540445959278620808889618770931296796574531860492191940402946494229726149367189929673718952666152653074947282147662497509494308169567974507157497749773240511056889317811149813039326112272211007328788524279030445500406824293671507875039996059783138169432449345478019795704523933320212958235750687853835142711263057801553689436390431038419284431571493885567716041789044758962587164280255185333891038941545121807576897816367753772515466101484894490459802262448336165695846792905885976665331503800251279186219775756741851079480795936460563647674758128983707803748481973349469724532975249549645446280348518865052738835515974435803575037121262100191200549867057439774797338130391185325766270473156033083579244894892681580303019288228769424983096790753324392814585144766488489821172195762734587170643440063444239702046655498291603496465696683006265097716330433315404608067957057004088059647516429550206147591443380351682764365117738794947337236021444346879661000090557007872495930730464267618609911804835241731734129184836642495591090820971702876302028410570618768555207727321739846732220597081433143748357346490641667367459820556406486094602269700930677620494041647144123868290512208976626815422208983843197793084524921368377846421512841676155600233134009816908242489702279299612498430813917492363601965244881358183506527477990574874025480388881866442264359711495511409260506708761517603586007307050668683981882148004544579614051355192155838954653671188073492418648442546071725003406089154047008357139519181523167836761243369451587362156986764514998821739237581455745473219829171434967665443856930068010353105382644893510825807419873681194916011960645023988931993274031069495435227534564854759322605354150956780604862311273443225950514015908708524933933189147198867111263625105164970047263721839910991002846760554479986444539082923610084756405685266825041117520858308557331296065998800980803474908458996560263145579040174503834438131308376136961136318591190383672930533504770312172032391902935521113082807833341298275996864973474323451046868560552179895470854257889579347767458261295687567317904771795838595346941384879844976998864389957927291636418325379077060758016997671101468027540634496495797779726407934009603680253117402474881367182829225828391315006714595906892995522794864014468151189084910826404992191357973905157139277683670267114829686568011811785767070676401428253391677321654461943395621187674051773128420257945468603117775825724667056592413735097481231429590740727915680965378494635314942127321929389077738100748164920871632851658316128374113147272758478965579003631722808718309177672210898105292518416176960668933163011712524034849196346294754480338204298395799023183116376809448738285504685116323940553449596576850773796539351893512894880440960737045619876952220471957242476012595814355313215630225816277850515868644217671237316915992072410828179626570936028626298995108500797996484541769815795160611818487351408694999811253162687262360860637899855905077078974461881363781382266334242123343339150293459816153149649050071334498071472427567342084493977035528606441276389320151929746460310488398780857576300534159004073231769545130692670888311770857202154140033591021345983942478048720744392450823002750054572245304193605455412060683484598429702407814231160144801551688264676095622219767105357107853040097172708986358930343038971357548842668231015787743472921662959656397313491182435198790095025665323402249239422447696663539135493784715991786830110117883153590563817360842497661155250244839614490885087835314784749672241199124705104728934814638503662969998432897315462333470846179887326974625374536835066227706256641084860681291286056717710928046549929688081985801778176546638966068641610951580948577453277536436655959688031717157549263623657946428845758424426563712708513437635252206648614055459703340481088332979860210400182057741596432341935478271713495299347474899348074671693011326695417978320811476426591153318073524503805135913009993723942418760633998876612367797213303893483768144352858366281316029912007722263484952254995158087683985017325714093405494001996608204158681859206526836392468093617558947407479521671629656573645565027907102967639499700595895144275124218699972110954646432141458160033659838989595151191846256174840334720388756943698391782331574636558401750611990864985170401095855926866724087631086326920085540921173897122866503717970389713161183802819671327443677325045996509716084228577723036648913111668798352453150655392993554171208223457773668881338790748031749454282055012479170839713810927678447755385385113373807773132412597728847247968496881505917420650682999789132509763806912433413210385735543844337987113360225749424209868047764780428317220331010767117651769013580514872232936559785446025797563060433048469082123503455124826811827039094416265343996434676313135854359371511812444423828719341423607498640829108770484160336282526004081180650858665735120491688987560288851634952876060856562116476479721338891220752100178922639997089824297110928706390873478336460488583572539358196671912262369899002070012519139926683761594988596021126881936286858186400518767919409411473557035021782488154404495827853621361146763006116065926445604393978958664428572987670598213705414600337142601691760524406531992977849626794547160815210058789303234982394083950501428838124333783204099518253312338144556658184871293861058311981591114000233492004967801036443815479009626098804174391827493233196712770364372367459954764599705488353245169999607944750741919681567813252692366722466229183926066821588078472277369461845248477103955999545550066076433589185559879115141780105122854755875659221392790088469750422775702844004008337420264079843397006872295955305606526165905429575950446515815214575009388647132601719113338251182892554552801145983930622414948704879293733596328931686129403917509994880837375312388924123804320768509454239790767141822221736968833389527276223948485331347083286724215338005316298357670720423421441522058638159225838068696652796309219985782440609127584017694941655783998720187114423918267974454871621831602378587713535555560375382901665823840418132615316980324135886219168501322897034405466774491553190734510961108964054137315141247167970311746730845390694769905797013950308148683512793943438274786759032462343551461285311100620791241552736338501781647748576988780440776631647330577267777412768290492156826568473969335497962594257134735478220235507775274902204849867021026950337290599054537805695926278054131500047277779643036527888806760086337456793491773147517444551361869459089869126619557557849608411608410161877991580752930485526299036702655219840703228435293381853731688314548030948384783863052326969554895128820837742697284710404439247747679798270305521037513255851223483718863840391276957075256196684658039862219896739460232680725777778275079729238547559984942318061799057884247605273870319611190159540998439150408684070511275701933178994999261628012643335391657823434836567183460838969302622422239134444395616687653072119020825784241473819880990759748716559579230045340139857868245081959917013140136610449541097983472076476190123489167949552927779217650885854792565378856411847125314185495567759597445042618964966977310059088211427177082359885150288199658085287972422676270433730306130245034764405360033751868342542369332931114191386196562914390361046476561952779739668307790054967462251465916829559051214746039960484204911393240132659102546580587597881817404198420924094385123315963606409164798846109464240613072866044531068264123602467663660426293432708294917989525508057483207033447007505411641424104285201226388056014404646866289160876615164804822291472988683635761703132497776453255238794689430980039208086872150262172681987855972293143525416500820722491912791601166832205659392536901828867618206517495586213306094261485231915227309333066229823360418630596128147503815023241999318665489235312936702207452430968366442616593605845257054760992098439633382066942755825787909051718308555357534524637627718236004590292561370008917457318983372375676746306828928981400261043332466673504745229445699347130400515528589013314325801104932125807924973974728400691036192436814484357744226806454489560037941472186080333044565448002904832949132131352904250284665538414017142056156035010051935969257108771086418564245086592971321716822447805114914692963740606244962080411071593286353507032577401510239789848359886815900660382912807027911700920697783965265616773837479702270126260629809291998722030847151072163699185890265463285538363344736708229547639373403782433315188574433332269167957384821062174057371934203607602580857741984362542505467420215329619903069506048306839314483727063527524959003281116666763952306277385958529589515468062508218976613832700968125482920447061333442165120895426166471188287868831504013424316816108767579267692596071437188047457108636467663797011054698915226433314646868372915364189936309314370538395739758924446246040587907073085160659469108467776331025363026454323197700056403758217938934907448533972970527953379486458102246626854857544624803948103462579719330820472050179414700994639422653366286227074541926100989193838717383891305548685481228904646057679168116047475667735866265349477076674892740881404939806427889346478120196845642373685126475188943336481499173451767011368648357323594937856962270010031163701301054981177460026684622960124566488486681782881638346367359116639189415315323298868853964855537044589381074475150491562382752733502908004595729989059877353037215950965404490288565666029742604225556451873070043645847966985949993512727109338913800525699359780743353122878888034218336246731553838530726643805136361340854522559953566200285893207858699748657441370069637158100513723701447122744393581720798198617377547226668723630207071965514401394101560796770312846622324372180693204182049118044947247950948210659795087761986681487641339047887612023189173271411707510278813906484570631604303294474182039005040480924202323050738800622499065686117447032150368306866082215235083833139197276497015338526836482754274443305989615606118791783009798216542522103136773722418197113397751974407693742283993892803469461047837679301941348456340390463818709400232309126329214399478882363673375641408739170305846675377658138461704895602661974988267898686531790279856875816771516902916950712780403959987522860257583277495821604626154104732932239305300504646171247406306764796568735036907393280424377731451328491575231487721119587761672199872657203296092387008475279556101109644887546895547841217130311112620217593632291339602436951012904332207191895594487013084127032505093853927456797206647358025588680919188595508135054725976598523591860170807312176774967985153436448660064756166112820046743145712518181331878521948585420549131025908681774594591983681967768285532613994337851686662460953663143830031386494340492446751680294259098491615590649455332197874963115060456486762228559944314630418720883683107869082371476909395118933763895298000819590847915863402365489318184822235189404751757245927249266431368688175493358729572467076121547589241105937314922895407634852696647434280591351900441516754624185966689331305936430173810832134586896313956999818112022441058183021809613841055732925492551542631300059117320151834436081336184657682239902132242218474080623976835001237073012937364247383996424801029716474195516194875280002873918180523758851363000056130871964309794954542325225132078054351132417157654762156958000281928714572147366827931639851210800834941168329320978252626938068079403968959908299165377592853936519467238248842652767848235232528356539903559538442835653766774682369023928636247707805061341429165926116174271129841018688880870015229319429277559929297443687981928928597803180287516836453798081789806440019928288108147054658096032007959573754219258966104271085810953847204111067447981250563222957653070752796445071110818473946045044101695158525335197414214626539137554352565647433633003411112331248653234832046027851219361272568159633248848941486612036172387827636189946644500921496698089706655219627080654439130275231890661808457349132376526687758301321611522600369841635056559624457863108902687490311042455795302305238561429849535581646986566033757042432744028847977672481436535431829257343006082398694283539922385319012020591757899894664036614842968197231996373090087277798233986135206869158864232166742700668531381626552645881508827646312582454477028915784505634696909273962467045638604256576353568104909807200344851184347975240329411676090910889748676546667684336309239867417532874144515027740623240950265740522715511606716263033808390898392424670375060082650080405443398472291991816365779583599745289030355501926809330583140530005189026489191655128820732886327404590704573794520002239211048170480134055748765115866898350057127530156501506659060632143057782381909919687852884605911669884491059433302767713562180067405410934235667945472920324832927490283795131368564554486632878877526492505852095154527056137189211381465609855842339811204357023269453320681762489674555178888380814607432625938367123961840821054920088096389844623656334320046947319705707012632015622217396042038490676833480118734088251507419615261008053127034470214135633116815887162076873979691979375273651971705875246564298756531651178363556182444850060737793346359727806115450844518466644254955633109637523062612153313518130636521137631237008809769161124393274785866069073540143242583519396488802779174072493302379834745758480455323197899864402492383981851704152570952637218038228892205248199250658935539291400029951554454331853217662452813260383537650464337609704889175624976408261555352314971496962272265943907340548880956072695455445060825473326842136684937810360940449544364612034315168522897460212647650327401946921570119045677611520644419178594260322383148107537686216554281136933758130165297700770901382720020813751827877066650068055194319336633681036855710357758432818613709852524269085862213094111049085957008130749620851970715509076346366592954323153820134681690491832844048619143942376686288500962495682007637753968165047822194466410258440866826372389599363106358451934028849002941343538243002544737688164457548057491205042812279256034111723554772278418585897761487197521056015183098305766251909615102603187990926537526987721350143676154007227419010437588518255383711778304780817661083154278673725012247332335230894219871347192396948644540260536426234536949111806965035710443369009080207604169920544294895760462037543758715022431594088761143660087643879755381816954975975609839497906641576293202423057417568343923318107573435047101103679080111340224960346041183923234232244405496964964109980220951666542684319501457010838817505688984094111579599080393637489689604830389255079121267465263446649437320380056397281874816285249860532994473798454329230687435114253083002272344143462664610897495325943780451785117002751923799514414458351539491684533102888900255414722635822143614834220774139963141971028480381095805091208136169191415384442010283568033629559177297116996008991650853343584971800886964618867753048917446743698089105950803913158344145905803387294810323062937049170542635583032780923423916923009444105176655374440369890580788149181037725203257209687793230425855056498111601771975314723652101196625480276757555026503408577946990036251711826226454172156260006762448411355275959458411581002987997426590387169883604578216935903354962534796552195064195564333976995260912548251406885187490883975758584652291311159507206599337072885500686444724412344662575275552538207072861894038449047962759906335645821151077864430246216905545104422034864385755427337173369762176132167449675408143353021568434870670597132671232871602486986958579429172036092886361702123288198067592819129488031043528375782311160755200662761294628677481264789155346098578632399414041958303058828210066983460364428975169152588692587506556746925317502192041287758582741518823924035358963890848807772018272691697875525379340999229170700926080932852013280393173104788947122281656799855395147791730290013020980357760355957996544428225565814683775806601070586919986865200161929347593389067525471786238924154453091310441653756579074721650085347350179650770584679374298175008349771851401817787738965231114675953264814256060990603639740445200754188836318125993667406748916029057522351985353527080061403321534803550686551810550663839586358771722274264155008775635161253715858514374048615976171082086283887163800770850397024162988522076742103077266408618751810099847253634555429275384675928067573416846059951476016446767118767509122643256072994580688236730350346569474901890570832471546006794858867248631550100952005780143489058156986456696538104604703089267183416705411276989714583781409909110863693771141579283461982270888021500861616600448400287503311521316522838371032699194508442170904662785332482754435867118225286936191860845430043358417845354912525405417706029593108369648428322574798819825229580527986487990505198274064684095005300149332101266448195364530233514981726977868055659169139010268092578614164041455417567907645609977568600128724918642464619809580756906888544620941759339731767952003137205787943352283477570717075807765658346804235088857797543960485077932662968706297401269116527963490280974132127574424555483482847720387806543773177265882867885985399469575557550236814958350910546310775904727287171036031355824573052828916872012614291297264825464606876320174081070635709046313339854728897835587288221708660966164968384756031014683752998626175842332956087743595768186926197303707833564818417224452223056967086879120879934147774402997342734142164811994148281923924779020487634739000280053924981090587691919435754703837390432291611860197520720265891165020050991522377557910653327534620596037141352561874722376161006279138989864880360830557575416965006005526079742490254210756411795641005882363646344153249754100415331196197370302983241155038313436980627364686546739097097458212777794390392428751169325471800001790373553989614507856088134793892945676488440347637277390265415257051285326901384039516500854151639372468474846179023191171094029557674896592303523661125838567470574255519538994606042762032816267578226203034046350725230755130615152364795991087968314398604095199169492331444034887229232398926227223403776223363335062033027507481281047839638721064990126507217950865606943526521261644919396687814739737319537138246689463076192382271348038257451113323494515751501165598926336959738918610486114482849229211957349266687084995137352590484230809193752102981346691743171791423229318536162902926244431638880036056924181331803895944540435240200164418460866910153135032420524366581509579718112821296465777999335485823301797779157298515650811287129570951224563256744472046020220089397843171044141341910288639098356646487342710836685891562830411148089736228607115150688080226106939206237648234255465017910935369168183057002821275079004490775990171434244805492659588869574776562338634828731659730613270120438442245381324810166455765075955106231622896305681379060721536217496323285242045717931900159546730269370186407878701994200008011651555646922577259357432295673397099553970114495001412884561162951107525903930947292015169999772231332984097701098565067282599074529522874204064142452361025024466633606734240769510207024338416034286199754363513082958347173825831463477790122659694902306668122435034266190026068879039663994590092028689004508847909137088637924937644473760218160212669654119255805590179619939299150060175659851193434724458811747682871106523402622674639170513441488279486699838172642757073524838379032107306674384279130676064740525820364576009358846679351388516529898619627569723806275435636672548964508050553302108678653846058067982584155255750109976757653613373367262531496958927343675116575666693892206031951067312770044505030098505227697347074816736581928691623195984209878240135834967349449649808958953167388312076980550795306628239726334318082074528105018209777442644813552895763037971132060711804197630220719147201354009568175193207830971449122624512896659422524313773408967548998812891153975046763608096875428965319720853446954063399938577048337168674268837676370780929972366816457694301342270006065892321727932333705351234198589737182847585978865768944877045365550530952046842378352354125176812903804696071558304177966097604849966299078127771658244776720907042968944817447075454352320275377093946266050382499394418522163438004234104363454064544839485774250789129069947472030750656296908853357673389461783165139040169958040410706330298650308470844016405179121155771200533612613802273795510528237285317255952493646251767768594158644976216597566473858577040244051454973482304411119148117838377107992150487293650333264399847906651167827471402565883727423409105157677623152223876446779592204097304429390249991286502902429740070249904390152824054030273337678287214616594992779533882734691166075436661753936826963801146270408598910643480351358094030277227504049585576715720156301822668762467814294456710079750031579185902681241088125920816514765867138934870201261540405532211709592093421715602790602742348967368781485748793140534580064799231189456833578265984768897595886837244778403699433801588247554477577467963811968734377396433632368678031849832222707891938588950846831505313069056382891060095069825050393538068621731964378261204906731656827772456265944869203465996897561358120615005729963539533241706471280243410199963030260675587550915164385731048800792499839458621845437423513347902787621575200541922608488098333835488067897129235471822733290886238953004905321917171584096602851872095013632217069860777893396670533088317986817164316609754646342720920197863427205244492039089151438658277305048998811109520563517893639653165830161211981425417024013025486803169169679644138032860325105835014995979097381268804450374353824112720454054165081689875381454397052026969964833432677207206654285428225559245209659443654358348995376256497606725400278970555023362517100507005390282275276550724775262068028183994420178597427546254437396643442042071173533739140283882309232757318258694726597060715678561600137421677145957489079182450068532414992785489654627701817935836638384027817254838786987224468472027788630231815547503547926082806564008953151177521777419616382651425419547559655778692030902416886043335945155547824630372456566069217862988255533864509971567992696488016768760792733104623155853744162036286386693018966306381036418868004689923328071434262907133727955715119361631651366497351578083887174207890341065133332152963546827538773571142654329297410504796442843851399927840485440212299501631120269113288146604858423377972490098894062877061019246756154914511695412934362589010983524572998733280327646962014375575744511554806255900259797447906084233523767790278781836354157638596386534893672616963978697174361131467641841462595300193883134699561522254803252886838831906434339824263540456033249926770266701733892268858978560360430015634196039970432098655549249486109212902181504097643283327504162307725241982350697581300990885945765598563373753800534517296996887009344082086264261068692952560384178868061336000948768248568197780156151998567860158006046376072873859237789514098718647950037367462479761873137374862745777313088938149205992198526743329955248169216994370559135222558551371166827644460878633368001468200106575984415835803021518926868908669756317745137025750904343698019649757923378372127163502738900959307009506329696718503343486079175732152031466538641266836473009617181029864617048141973433569822001282427162680886118512814259536177000766083756744461317013797626227842328462854772984483828639581454541338886364171293900874267126017878334088809200262199164531300648065573305234874423673265398431569940902917126970641361885453019350680470076049629870555465725314519576224198722042345640260630186463375294469886009862661694387396486830337334193565145751324072659712879541184618525928672691520517909433078906846190656181613704763009811725205737197637726779174978533169804931159601175965103715241050284801294624395190619383736148542741376275217824022905524391040352460958822630875098595532532373313366906581916892166363904541765628021817773077146208954492258724044841767768142290679155803460190954963963721219683128068383088333589929553643218430926174392156280259459775204158423394045828305193097465272241000777370168068349602552252471436216839674581594850722806441594173473804493749938318352137761976565954564669537738418697560532264715791736404657688654283368257587895624221929375343296584170601374674597065488163704664602472391119886592752572677248128619098992439297834789412946973793461393454685957028348388391094678362466690590104861509099215886238842855146586459302434765403156838619573328459032097166347803343855924598303669154228705639652610213501474130935149458491760487500507295774722780249161158771982101029991070855172360903869863899029481664776915795884752867435042774345456148594250165545713974285055899477081401089207287113955582159958449757427625424558961280405244873385579673023032300905075507227326530955760462486735410299683758995636417115990283900117340908660649910930131172575345933488776265173454895392692472044574685285168002743317226804811824797435817830168987920169700748971724755190924343766329840932108826737916937198927981709699589117109143096602787689380506987579502587610491072068663127761237657007836260583980916759411458456955137436509638684992839523723881149600831619335013747013932639436613392083428163862541892372145068628230156543459791753247232417763279194607695037567994043445983320529620154726705974114133354686386894064653312824517940102591151849638505707219655520191781855978746673233748204784587073622956646757649130388969364243899453632635805632865797288432342743659342817627037474690953167468651477442949833033048812593759930891309724561440769780631767155018157469391769945302691689952099762222028904348320957317106017310721899737675216416136157848524993724580561689629793657986360296811881386998055778201110417946398323251155792052306720509197470468918477629464595661629576506154202719170701846191770178853042308346175789531844216654813853556319664190286339187326804995703220749743085046913058231151822972684993149126071311057178179673416963277720056814976626582732753872868826865931027947995315304902344330252723596535019561839185988418981846214851851201148052268505704228237963810006269936166317708605757283292722581531921368769371833104460149134842201254308411075693800330309584909034465564443893917492095954058959675165001282357343408029073196632292839925183594809338484960917150992962783651243136392843090627323290399358289574399530201301428596267751693383167919693231828027487498530086256685522868105823213824296341926537957699057799645150922357135244933469111615400224228080207681656625857197910922374318388110162806628636014871877194335328142960581503232787832535818465462149111026835260380861837708224284459359214515888182842647687324683497990813342360277160732526297271892793413464530511622899348640104313366373980040197737585935958266229196438544129586612497988094677247818588540067536490513995916490928922088037045527637059563270200050028932540915472477268828973244064086115973447564964160637474513310885281610738533115038665412493818916302129550271017310483840029621147687519577980136981881614447174262618741091373253519421132918544980500010427827853511868643965182283045849150959947389666209770196541481251010817949566197789055205323370251288815383019175212554530369455569505960745848706263191456027743821402850447239815455261532155308581418179551119807862377095870412181571981123947000419872433798144824742125297325556997071485342827889374445483704319685319682268897857316186166135973414968020530673412645273939004023202882382553642881475797390545820235610733172516525522303005089298199425368258680599005947141093334980225254963472261268571922966500404796253517210804060778056154464307200737224455519576452371073175411516099973464094404409162703367943488221547765376934313215602642425266900746464850279924868654365058646729764380173885776955121037834779639088933490284523286312598148806962874301081735116047556787518488560214039155178174689618007021476757861381531103280991560829789422542673602608172176762011631184157921560292367853048544183447504192696125912163744631708897614757906117472066680101346851261009247101480080574709469649115400887580127012963859208212066529858203241871372304272648905242264785626292911591162848290909490523586234080271077523667440611174486017750547322931169267441087676177700729691213407697752004383839377375282169439985077423687756277063612045112797801555867579056219979363080846524436899371164862055845803961879777012539052480609369702417619900197254318695406498271678574623935413627855323755891982281813072116274234131252517750171564629177298523205927694729233469290563042962231885344064810907061854037144104110242815704586373336863916970632040656454730891750754792586213852887258764302693325742903295600860121743747255448256110739145865327901578311673608807808442887384259548607856001315046945714412189785782639208647539942251866102365678494800327920555307638842785681437546139359569356471142864231608364112407359642891990888672882853632132719109469179733510092738516867412120846697211368431591526437836977386822571678899616372363590973352124694683752003827926395820164039519507070545685149217901857835010711596549546152545791192442029970154585848318019308894439850251451714633879858302705350183900646741244740837992750696180339441532939853482665669170925790570536171685233996033143046714942308318744885494099251032797607950574775323253708842884500620722377569037546246790200466635431813800549646832158784003508814144849520800692327240449470734912278806464238383683477773531484268761337714827445342234426630609662875768532616813061161609250272951794687045266803191614721832522583219836183510317217670319198401775558291999982257903689762059914126290175253883097454839954008367751337034443599802011876521887963966338504964295702234570751479762757316466675389079743678068293352881625895350542444914147811205541303606173040805243122675640912377814338873814162278282372263905649015113406916343171651739536289260265109281722227775136477641013862577510774281543660018054536247888971803085662237433391592439313602895904449397584504774382774793497061615394124199757040355449697019278783634544346026146576761569829187493081930936119820547777358096927342636312237652267945203361707249459747904686414030725785416356596795853457034751862693908813365949359512171541454748724851473168378514447122133458271716926638384086223375569755636949975453547550631760619699106913263558260508710226487166454860626784537987689054674022980668227036143018279760713881835293668637778431130244258350794217806342415361655570891882050003433773653073326275116241009883237083059688994416134178668587984493559647241016625882678913328169679519914387649186814973443034873651925097918914970431832508988979881977421589382611308174836419069584367053641751991134144207446885677236336308038613291989840409049843433378911411936263773448843397665162885744761260804690313830573110199523442134020423767331207992728187849614620620646263577814029313628902840737256113798615242466327511330841588773460326869467365994509494389841288205212995048724084193870095941398896712514841985472931643960225335923718367546442497387979751970195707178916421511369685181585696419715590759123450449025559214749853357392618130059965087738655191322189445588338349745141252978960023314821600326706120844318499385996912868860536814815996071993619058315529280716812398132786734330349244725450391801371206504339530519705458477737678188692921555938764816573974964955522250907740414202152844309333760216598779096154321199778680256501810010235672483841491500769398718560559835137092199790969133025815921269365086705054971423059233288188764793313862221680680157823221792766399783098404702158494330931657656691915517238451870315169599783923023692918212449019916368579289047306604137702930526748576179571261461994445182403749937028839339710307172650397596194784767211417016174502913164886688744794131135062712325512558551919126932202659964592135044541920541735696776513782197538917016358825514265297618180372245351807746137049736776653738949844162584094251804798606508104742007144412367978324558026672633013985183731827410663060501616512001057973989522513778234858877245428995355274818306965638531361772762536925776045092267908908490506083310673056707590039564367679258125522035554875185580081948030874269525960960615307503283597658991227004719547496646563228446915172561665589009466383240464508803058532854212987383020305022377819112412557697853100458725840842557940262331710708691787865865315531342853019582794166355070850786196397982375739733996810920690723333216277449999733662355339438746392619877793983741006759725731518898912207012856189044098344267894367521452592101321687915491749772314183277719035589523474309916767915681557991849786188882022927174054494331153800964768083361481990384641480295331294071041942635852724041768992889865678058989177691516200354019949164904698411196397103748202605313920808007271673041034685191826657234432572445603151401221514795023305597965277604818740364937268086645144272577919134940871129631466711876569431148260568816900534503172626555560606675790956580676904868764318630717051030476193764570483237848069181588834913155323146325594058647571991928559998367922041371329655768669784826881301412674253303324876176642463230367338588468237945522922558405564122209792624746366656358204040699872938659988399508725437624125115722602535544322800077605769272059250096713563813184894276150264983736517981486053857691255127483773643339488342320762230229401816764108449472264443835188420364256688710634667273440837481093652103788743091511445562900645168243058649846188051048104483233372669269280702059241770193473424401569843345242568172291998799858244046994709393030247910773422097996099559403673623385655334686267715956884835196034873349385610121352290200987994502012237111076874941805969131794297220787554890782362504615868843450084499298651155933831311560842059854626550742254524339565160368811322059902235489913152188794951571673090404808652080090202400040032993289580400063544694933302540243786264315629505354347542194627911084892278213558545387048124516552629508626151069248324852999365479548601594709616456356986991146890203723205750981236357110716084548042696404247712668164265797148733574257910190736967329576163284461029979345680917073040477948744314656763432945523383310713750635517966838506135181882908308936104857744204198025842002610164799372689328884851254345038874523848098901883244128433724288866236027644029426070173996922962974177417208280569570851489545006617876056712735664321318529978646535756036477542589900098962556789481686625504708257624556242432257237641022642135480016638649271894251912115173134628100182656953921659032026969625282576253709317226661729072176086715642590390339922106151386058735277518163954228483450769336985897771713855047435008970630832016672157280649703858956656576741871069492338214357481445262283774642203056950798835023180063297939479389869561137549423458630317172447262223962930897912729497861841323745702120836370575495546805833464109543050664312124567176558135746496541442071931885548104340553892486372075848814337144361662283374979351071148768308724287545176736903553145072613297759170616892720834932027874724234111387175474472195599762830644468648967512725751069854647774471531389359433345628021903527049912611650547055005145928533994257978277750191403452433580124455831231020342411217092056864892977708898964797961590674526099538982950075817650045965732443982927821108171119901758263603733436580743237863914362377305944931830905942666740392594365189806999742666694109258497510849423977384623713877467403924506963449345477913240601715054524337441222906744136280338546220949302886995125182322019193512880204762639173592745075349997660506913469508108923000804945339377142039211755021263750481085499068655531907097999188280298785292013283595846303468328593282806946565414234196330460166973799140218224837873166826871951000007631357314341223488427096861850850388256950165256999002595408046417367088001784306932353432624491017269052851629609329941099590965122887810662856133645434594891386932187706330895560039709413966542162221508877404999735839249335458407492721185545258118434736370279290406225734361246790033165034676433629695744711860277814321687420139361553332295000434210680938468705686646830715201465416410788699468776903383436532977762041285293970792388364720320260881480497600205113258719089254637010394207740437037344615450342996793938749261706885605598045275087343430310876550711109369697435613689858662541953489123836754682131357858802903840866052394276490750332466561312781363420306312721566627768043173946516375571544814779916958719846855243684437911099619625856488814378322182431297155442295567449935217000175022141608610014865456771103716728241386438966490720349770343304723195791658358035121817150367967246167401477412464768785554033642386637775453528660854398154019659115026572623290920475966788897025305486404771752883121294467728101994959761472923851230651227054287563469500177657383041440494435812917050975663599451306852420449942066570178266773856019259310452056695838888848641390947277769073643453525577053019132492139644823786719054441456324741968555221230518048610413754477132400872885836856932940944028875166188349746963159676996374240345310425701833584052185475902363052482556091577140375745161128612202269339286837401401682606117017495014018370649991020688360136013717359055607369644098501558559430115878896263077330505427898425905999495375549950831282352421890713664699755142137541788568407256635210632007680460925769474441583398922577453483074390337882748799672556905475866204029912209457871326715457791071008770038775697859586036933468277157778705353595404042190519966870215801485073981648909341121015825514299348160139357854572391327846539071873287611110459347515083507125226172487045449800754467368868193974754425854409178903240611021529103894465547221087527801028847949858671892874025914627152972105874807719904780784877326357858259239169578671032181459869244369101662582587954013715296213405340529890620531138152009347329269723346685780702140480678549737832291162830585299457651799838866901317596296880183610140138030573366287472854769935464465854232094125512643689416680620902333884452717820453070636479126960381897379084522222233966221666351702506558754887426730241539101168527326173872965520696474179906098364755772757857486073789916226869752501154606010036773411149467477396195913406785189062966974203022566955470463925114568221108094069745013086544997652774103035374044913329934323855885640678983432222383802865505293478428435169579872673636678509949710274651676580686481587946910494151393846968235058611981181573206425791129342197911235067096393527415128735476172213699902499722698868512550113897725669605506216383257747503277750974211008101498575415380590605392053716815933855365208110139918846548289253924732761345391261160947532758909281341999295612814345925280174874324559797258846008132656625692853315145305132317896679894758686707396995256205976853669528332587197029344231842039072476565108732518588756793749537719565253662104788481302821807652927243910311259470409484701964196612658232240080973341348892052501651597918488333823051872977840826286367871727126080116871705627230885862241213607210171687818186060119754095115083981761967750418109121146927210669081149012223704361052316356107503892253120260462103698936322037319035269731099355032432600536591501403833653477778150531833194088180908320233716967047349456897951388789699609262663032056653868799586851479574477393923854020130495649364301568508976683616109874190303266559889345221964696621662417141304345970729137634231183236021615443021208026573626431538045463782897538083096698768969979689202408656208904418365021640849332596494882096507339789251499150294690726095827483879489514469968684283092310912687295921417976678561554127820503870522959463997048544635048423079146091169066050150182083583390387491268496980068052636038560080813408923039520896641055272085847336043368511598029835076865047854248785826519098968939427815922280792492043207631984169011613179456200304582800423172839663162692725210540430168550712377581961723716425384908172467734541663050677251778013891877193976817075338984930932069176471690601902010053874679117272865825718250177719895265234172679293199829094752885809128482202729876333438833077942045783257391860553221985399927193929439302266040435807208427817681146945225184206152775868575110383958146860518546473086077826392592169624794680768440413576678389020896322121093046557495939588911122754080048034296549145781130387826148480070650103997609432853784988391486432700945416321151357730128358729390163184277447503398048618866059582540718127703149736546938907296303997618713533398701976976870522965728051809504552895342638981049909682898931702909361823988686136326936161086593380696226197489532048398574985586031477052434619010921801111678514410339166124393003669120648468418704588748232846505055286905603341503561658024388342639547107363351545213136441177738281736338438573033647636276440048468874582219229519914325537305305495374366546563053509604935827589689958550673091280364459286031349626990457689860188356874218996969653133385044326303094535377091920061498799755054974388115975077955852907725098796045655801447703474016353912976824766183728804803339780687220545663291454769336983744127197895995869287175352237299803710311457485502676723934652682081090379360661493995557156837727354319089598276349190022436920600760822713723247081118770921063502553029087646455064760928204180456497017859855565360248907677467673518285831198317412189969457560450428132547984785201829192753130602843246791924108407325806242986135358278350952576189776547650855152711037253492787498839473889486942270054263900458060366216773868734012427974555186581192034768343412109026967692463818424267553732157231346296613562914129938845288926532513981279774907388508199259292227216210862226258335310558725995904452036012862091172748464475702145160804018363785494946487090047778730107545084499289500681944913736737749885081115715364436011507127628719078719049604720529585630642039932952085512057319689110586316491366736511445544490871908549238076799034176363907787855902711378701982967792333951750026074978500931701724091451725397136101214454547924677093823059701098366693454130281254972584725089326921015497013833621468877154502414371240301737568169793858145392139299949441550791200212334685473181839406526900401280585188694546406795714454842761789096221508751508093280107079806953776483904142069614952074597961245064185638152594966841576068811856304531108373555723076495076751654298402233591771053620999993835019956915519381808535415942438873432979022210441345245393931967615673659987379463153785561575663580963883922546949394309469969143092948943507578327402404500885074321512504317036806202479077766478363940325863311030936512188408867121404078258719369265929494865893369200516673870015171474050475821275127023597581239913421905114196842482434072626919919946837515688776096704556432949765610608372672773855939062653386527442086371949911610055029091840377701755241438083954210562178156694633436029491080797980579142603625107431789006826549048633090918141397529208081951310564256839528770132187898323735932790985219119914992900374181176397894083081037506969408655147539739862715931087178459961948993493107404226320819273779941676661995628533557447581901748066779350399975068069271249142730004022180222064793234748903910122362549027511735054545992790923208148222414024494186608714875496789850067870708566039932933957891002430006621546183193278724720848226012940729402205897029018861447264189370950673720588998583264608372321185905327979217320437062618776071123756610507930305763339178626268078938801356069068432785464842770628774345957810323012877535248860353293071698098677215545899051316807967031691691817367168804164641505426711801698884025730714602348948341239158628835643375476110892780783082200956145538590469741659006078338959837365287760532439746388478022414864236149723048736673376356496568509262168548104442585056401203170467861998134601402100695988455918052434169853890590932241399022280604571482038251634445544273832487805390365867596576077248835157196956812102032084568658513179219284776762715357725707601899166665676350734650345440026142003308138260317512124405875566596413772542498157722348802626672562048353583320165327703246562753508610058433133772448079122642341173750617695527370532959810879574152355526176661854861665069437469275250954879508035598821573938781637448839790854518433741113403597662058848524154324616286823314155153396031689553002733594333458997896553294192312679706185060731312880468506340196915819018847337262632136746801748398028980809935403284698928105382947003028749831005420528711740991875983887315116652543204084424663247577102865424735475371481061899209140872297489535018814305507094265026367899872991926388042016849485969140312777632606871182456379130979332824284376972641830561558298232945210269276713941304872034878987308112943424562125704165446205717128809430845550253550874587872268749747874445787931288295288808295261440458154071184522950349241202312299472799569067962096599916379236892454382104665702831102470103610617883627843196838671733974515059769262662546483467181946879305298264127779532422910776936515344540729563986566454553213843823756270698105090892790425149266966209966666749287708764645097031272004957649999989731916031907841699520989950744712928389199539932443869302188908215078477346009682821299934781200055213388148523074321539912083991488902900400563528204665049391280789721390431813318114768227136058754794114961409941296862128144696731205998416520044951724413119609640183821106806863829831375948986398850010897180016579136317503729861051391097323928189111852964904860339309656188309949292804909774542971137406567670951519247176366177032773891197879681572927406695463827354270904008658522191909937453805881604765170258437521842702279100874818061240918534365511192830578037794934309551404772547521369217414845714946646131464581102308693617583563560629944588188761676058363016002711539773874909779903023484223991375175239576656612927143598706236833296696046277531885682041849456624679568692544348438699638695514489808683370833601537297782249968936752538378040892568859934522069722241302135227546786512504372333573202784261806552376528630689868190621017429405410518458127761377107488909769389026638353230524799701315184626447631863264341842864747037674554984605858906497594307966225888118344965335338133089335423908633460898935613340421738623190326275266308231659104736627642388476545563686167844215606746662023833449787274558483652893478042163763559739529768589919220099396837733700414124284039851739772652909401314442168015727384861315924508456895825448326554604480967318127578211240043566779986043311692335459604759508291872171544828640938431321221456443297382691977867726995092046358308709371108951510973906956446701635055183989013439447379653634445103931327305160227467717595011777478108443857677196269363459883726899177884004820497663948925385732417263657659893250715343299498092483989650585395388717701038864472706995086867750606324874508375590587631987712713717162642766926005193494002740076671443856081386132407372307410728526605818776491937942038775423156537234043517358974902724888930814573558928605099189239588467945813568147855203013690517153073468189057091343681441732307651867051976200039050736508925792559201746961281233530587576771935953107906834986824719697098202998521738452777152067200217169899643815422813950169909587627793591892000188308820146277564469854914739369769257997242716547379382394439804642522851190461190166492192726889855437320440150836461291067253032825422188792047885859731145664271899407746332563963741265961545930027139768039044773535079015867966427142444797935903720791274080012779880527310802155117078162983697037174562855554900257558807286689194445280461034100251644019491492697262454122601653958012243218915789284355836148335243101995708136975605257890165798847636186022144868424238257688874166072807889282243036669777508153912205664336737645501278879646832295212502223177354031389552375779141342419800205552489594574040642711666602931572930920307828559320199723762062133746257137836815960712487235964533686022612472635117771192290920070776939169373466551874100392016262161976809189519923633161534717946515429887867159406013797768613089043518022770357499190491272008772028022044146897406269246912798311355556549702477805222003171976047277651478372299002807613843652233533679287709434819644749510703459937766262120181145556488345192869887603788631982173402157075526229708888145994827012357799196086958728643240222347872331676414227249294591545400869170855080755205350100975332544213436570783867583900643213123664998379657282514846946666428205713192956954369752306408088930087802029111007772499213042124390840759640286305011164329588498948895302187440091001958378381612814088667161455207098527441980218382587042645380121168597514993616026116999856277781577688063018358066115699599946293196328996021260854168017295930662103390354612046540377707739841572123496054350289025889301161820416001411812301868668295516879303043995282938581413453916095907526096491114398822289949614362862084531893695875379208686796546789825440991149354829613476677641981610377964729261116619288803816466910970161920099847265839580885065360999491319545436028578053302366323812280283628661525200523557830055872366204824490184408023526451809913049580428456859315592606077551492218904045909828507922672511082613518298503320664132889156935700796717612810808797876665202453837886001817574161472382477722475874032888103034948323136365733170166113891752609947736563324876114440988455144942331958716572064683407727684971538027006224641202520517932613482077121225473817731613588320347302178555424990265686255366819020700397957463931022663336827418742516275515225979175218025315420908256418064661203275377959317892772571248663570101682347411474968563181999721356950618394349028290746166391376385301488422930855901445046660748938906522330175843845147339014802462402335721266355725149614618043684055134630844802774706120581326407792664442838469258309243851008166897831733565419685877100733887800399202745602785818840680623021298024880559138498913119368311548081127177403809499883875640779207244562804401278248068841815788498480856295509646538392936265376756898991421128774832349711952265605054008335798316351932643632320428848725556824545364407138924498885762826270977784018092968460036208659883245804076418394728663549528136095607782997160346144118347708629516472621670535884599543476517926280765475899598652987409609744991945697680189126196583006658060060774016912540185893354053819040597064823786448756874191920131687567277757683332365238426815779971396684107839165805437864084416126999483875861157345926277421493440449076289645768638155986797193354728334165678583095047933372100023273654697173100118402999752292056879211807131686255394228216395275243890927635213716044233493601921787569497571063800898337990073942953141415760572212408346589194685918029668212041741508806054311365881951013016202458412084075193477881007040002868908269791135690970038024196303921271870676484500512126025420547236388443121857391031130748475544335034837132375736490335116710650877810411135755949388449191406085850919883531489368095837631669106195563073071065659274876678305395950960328242534825403713102176648845559174281115869546980152101193739358657623057456463897652881813494830524290371661432015058346191528618330244261736935235278999736729479256401494320828283016944894672060157872311071150080709293712797809427687369587926329731889687513743003727836044800866482897082033514747158500192523504825041534285448057878533591278259392914267080299662083438931148320523622249170838908867629943534767692888545379278206873341521611075525397810196693999034038985525740554892584343919270136129074757038476373758240099449818698176334530727868834001093337853180127458357227802242596727373054131033074534511589679966136015144997029619222790612664853594572093302771399320401228677494770400486958657269106892917179413905491551608758366272134229588852925820652359342183981511173700838399129649391824453241083457811329006576492704394282411515175286252538955229451578989609279102117429227735814343190666522458477678515564417370663293799241400231516261844148190446646782325776176207053798109291445281787552111332254504308241836474357252323012327227584054254021319081337187935967094683833275111714100823168720667856083444996667897904274017963600788597219224371134224601385266392006985805638798211168014829406225272361842767099215654855501190159404468200922864420174237611400697692388082828308540870778762193763888050599179847827124958367118817991337165891116174416769100749342939417397847664341951590051324249813162313042656789722819644975708702991005960141933752309904902746322497248238812070878505991066253922376766287097996645509565039578690813801636708135445576843741539774618431457791757608030129174935788363501669679002239525857589641081577670384607707683436083771527397348493486277267961924007363710352628285537791012023357704985961454107969127706353889654770502161298641757777676733488689076535043414405743283222342373690321816980903219855673562139715951038446606260477877431999923860985297262448407430958850163615871195414441216106349931195957755895137875446188469054713428910787711385653103137205235521109889279188174759103767876000911601559659746083335714253136850555833349503322769330750306277298974722438699697304578974073610287512660452723976670854330808269638165800582551694475087296375972466344093360103240469345093706623561433069282823227488756474087979057210971434936820324154859865551925968196969563037868355533489450960628693301235117330179491494402585772633347596313851165211678815135444353559937423078175360345161131657940428549416031217517981234420834380822292000664570683341635636172280083294944424323280760284236080493097971959662580894888845356186521223482642849037367881092904383438478809780612229444411039024996932721250043735639700955011582270375297799845020796712578851067191628008133221975711439615779784738596416447858957128085613090264196827449247527509178036881054278083543162969155231626448872165736970270566620124413280142895783852888968902445378069053545883618943279929225250682979584088355094220620385698331988422846092909831942305638660906190454740160037425815555095705793165539806914449357646517278594739357047161618364758130104362547880738113379182612739474701526289673052707991875782139404786490951544507220736648312287398705063459965120908620192356736855183216640683956086984420472768942530001208229431092838280713606399199888477181336156813711008704053806548674363466865641842762219749831437448474287972675813823562259564096566917096146457180291371797578483558487568071851748290088041352490820683516997322478526396382891238027454856642871165851642939637434763137188585022367823098888551014288857686285484838837549940805215565421634556025325244772849042271478150946207280311648346415971208183938626731274976000740837295670450736920743930020449179737548040358640894226849875156691733096875994262034560272451253513287956064874432687162255594997212112324243390017022873799923448288552422089061590107455765337742292019332260171661180442990147494631063490280409104575498901177049051947343905057123871921142642860990353115016313580633308458727908829410173536715773871539768295470370960254151867704750453614195940339700294971134667954024686422726101578775442324928290885557337907165666672720661278412082986120572211786119370799158901143628024026321557431296362966240228474821209400618995840194181817410274815990213946033312633494693897117901663913931980848105155141819860790241659530927140131628959778028915353553932755424032132430213141441161638300393833107872922528320123319927680629116956253687836109641019622098292086011256364708131612604746868365887081201990653418253628600300619314965394488345092688129371200063087664499784708969777796909296048613626804439660906564219934917700604683819641595297638408799015607503921987118549585750167563324280304251745120544863127873862286428023130081789748514121740826650943928146353203100031521986391582119741386959021244999226747716377541929623236499070948743415409042836196605747540943291638057132475317306751198310948892845967020522636851689896113376989358794472946398201112778623674611105952882527799763958228913673568352213639502424498324743772565757841996384711298915292761307012353532713230818416953255977348418999174460687523297209525718914865708393623220954354176919285416192651937821689962868959132553971480602287658292930195476389501364011413985826735902566235717921267963197646460879786002229914323613689078738514871810241787583751110408298012961370770209670778687059562343386489013416319288940328593925834775174899256861110848605779136612395848758423432817816872088780593925636448455865483808724351090849154555463720322492538414842980517065060434671589920896846439610289682971349161100353821298511273748699815755571374595066979738692572089578488385413956869537987643908816365262994883968613799696194854609776051582739055608408912159160855883858259975375064442519724458460184647028766539444852303203807899365189337859004371857194977424999684984091991940768558246439858891082358664703184150627886393301764834633443566855507162185957671527545626963739993914396464199983778051971175868781371426370989922834196967558234561920544515418065947245942419403345787873305210070435498755796916249529821089216555370826301931560075926163025307090829142153941721180086302474128907880814502949672009382049260959665717340153520078734987670455309786092401959517722634378411663629956961157056203985703829611172616533595081200628151907576251673467116806443403574316399009355987049671789657031099665111735794749727307690281312421592481031287794337799106101447757779279668649182558304173326253768115474215865931461108122040406787106131741005413962491402059647086681554645756521773564796584810728613296065150700185071435865529633764950385080027348027670850379369997476212616177629757350091667567815639885876729650901457646846106856299776008301982903346545649582651038996380009691550920327242113915164261183216617744175825009055120950104048028013745789080154039553566913420999275413812724416123306415345575876954660094322829720800519689775700638457455277977435933560320820257394400039038733972157345558308754806576979455718358296482943541176720426339446965633827697760529483066483199711148530654750962601955036840865657774144436890906764242164596744788262631834925040790101075977330415380389922215150856781241921418967611330759217916885616106203175207039926951684174697109807819240365136816326626229597744115630005644369795096180615686702522013188254749300552523138312398535829078758438822985799038101069472527986119151758309367731034234303958382503240006833785423656324311851542647874845909228442156973138744317041205677788567849632981118327286717858675360835332970602151411929156689723451291622813003348708705978696935018840394346124097759002531909236447259599755770041829299564694428028094896331225291080748417986401264756900588863422404146416983077253504910728004977164226496902086925422601647372802665018294244423571743884260651714414005537613789910138329224580965804493383036109661498691083913512725225525965296700940769024929023922421275181461311944571731084955944207070326437679048215742224701619668178865547673848709572615542356442130430284329987379704443889156092647543763842679860038734926070012186421645087650331609979677568401789432120426279595368049718117817642929840937169554724315875845452496395976385896383661649573614372988227410266343557724469732766985489647596538468123653740941763850385746482651754390348006367741860181729866023770095868937448062845887399421782911358400104111918381068504832024335205400754053289167650958894717754060360653969783696709647890469850507414640199577711336191572553136961692860289163534439596834790336989353471057896130405146055599130279621089598457853406539712578322883690803308717393850976129082909407312199122267679082385631956505376624477914490795487007019121941988152166366658634278718706882057590345395584685550488113496750937097297791833539904821120744387164933669193383406156719409227330950782451661179076180507193889503084596733468375770350561990037217337286478084346315201047554681439558010799263541081041904512776109370453808478005182000404669550393594501288284729918951582025572192580401114175573070284941768012521094865630220355210828214829606969857194153122489078159001785656659847673788949031846098172421866755510363310670506590591035533303447965409153467584809626438670700359100538746963943060336381823342040384031542880552030389427753464284152105823828587652282295876852386462468514655775833352414858344849108066126329434393759698087118386160511992461113105418262486641316161365371810287097625192097566692682689705804502994857296345319886121717656566766166974020622603135131320795301252233332655342217857718288706274564351202282207448115648788786087406696011492436941980227633956454071771046357134146578467601216446741244404431759793282226506450257192133686567641295427199876049453521979912691597590472414825087734006576801915873386477382349433363363582729803404492925136924728811550511827207795622816189434042092112941919169854387957940816949860824584499162192911879127807542060941095919502396669941112355258945823443835386460015982400443821422227936460079600700621393145188628964582609234411205389502127047665020628211814351326404647663550516865525718396881861655947503877442863747457520119050827749457268494164855842197555070961487929930154968732416145690890233764818633564780797297118300310901473744892333690389494866447411258574535147870697825778169523405729473837848510374354474485134518604628609452715855048187717876989145900309432492757661004410097704521370029930994279159511872580621859173422900879261369460910174288353174812547018962373628121424690864331432678838313448754112575718174022219160944582661169933601704455653229228588931555760394044783269394326241222672806069074370328079226857652938087270917614721148915882529299542652482802418349085726307859803548723966167831770882400334753267024942608183729030149878994084580373512764164189633340657919007767045118488740842035047803577339843026930164952598530931185326510092533290659750990298328231363197351860995563443167116768794973892886504117475057221709841727874430404509516361995809002667716761389056995369790378791194139894364406054921857576291916728848192623456381568703751809515072963888001702049360724968809954486267729408385592226046642017683140602310262288730439108545855315698843223293354826722852198855376462426825781696415224336459579768048143768776555753691475440127513031571607115191658094865702353467601582698184546726536522203527523384146886296381607293129709002167198344218871919489051437512687381203471174359454248868899969275504759568950849551721565837540317977849383459290794308930267603643022448909029751424025503001528330127653854987795783922477853705791104939364992383307164073634442241672766870562413963723619483175346728304332322192876196510122476133336550197769229726771734821595231338400165752866943074118994880674901202277176787007682646369452460323166541708615403708232463984714731605897940276076906697015232355670997797317568367219179304807440200280230058385179120388850293264762342901729061298345438044661813041947338872433869145036292865185414716635976271780581591633053376413764858711789864645704008959308533162001064819095912967323292925097360883228000248859945946722448194279916401038146950692158670522566455403605297605459588448206636099796005227285432792898247603854434358966112120797133218277897235758188301341897659126759292626857470270668965964782494387928337413874671559190578379628727816361691549220565978206775955345642710781391335700137014756541969331074275852694851330305298874704902278394102619505677688294297040991374935663871003351313206786361111989659909685984790607665616879840170295002682660347044583094892115779973235966893792453481922163771554346843278649995751543282941098358476721891036534351601724446585588530982125139269851191707392626830110116596006288941437676951684311948598854361998503061212408182141626708243840915854581116389181558213060732196281345796233558004605509458028497839475052064473378763147013419491908317034655080977631820876492657952580906232181504929923396800692561827137373580875016847650366893311531894811995735101161089309580179386654018143501903379804118249685443307242329989539570114104455935184108478658736044692945614719235352480588692492020705301697365118742749421034279073635837739244494100650242996302907390796986083365218749419939753761192083039882072849347781310572054174427466205580842297293162201328999813076221343863808069138435861225197582050849358518582711533805497929085967811052006814189460860506945886378516133634267841093181713383416391162597672214446061951731690545000296258592209615107422518903644159449568597672284229602024314758452020712189680847455136882910106503815333665386829396899066276711627889660540437238926668011752776945860896946421623454026317560495430220515999408319706273385393184547751006854926032692519278034641128777979713795296933789467732162922406742041955760547039904362619380913833160047126333635438976471392976265449312200705482441841497791102864873845156508307174563314102504095828051353882609835766286187975031301547583282814610219262368846832886181676429838966088737475180388654694429720115313502009652733869093675773398681428694214429870393132272820208452961765539069446057251755791357264105597496777593498722869169926552321300522193606688003290669323257103307347751577764532224602282142774364621935744014289193545401780596794713933815704817787010721504335103265639704339143929201508113454015929572633677308345338635656165910588751315352355655647047873722928461656572494921411035818756483365460151270045744061504011164494331439863174357342386836533485029026757512507952330883363780853321818803510252885506068969853602133299528035336351767611778892604787261789645316507588286891783151777759173481110390185268532955622181101145175144342868041822251126999208911102545241977467094615635015401711285654044082555588740706259345735725082894820599621263919664650698590430289118168284526353143785325754121928874517340868318188906753153498448026265741412538279572361341552995140286400597769673603790395690437800908085867363769837698604754300648667729476254872263008271011157672453198892923837158048295652056282788445481822648471533350617347822483494244319398991431202869612226474160783203815672986061332719611418669544055488103471507459865707823781138714921535812935201892091497664943017432751373466356312026911515703804261142790681547021343031377319749714084779623871539599296460972518423569142624387938406250857785603078332145646478140795056190065835764425087688320260433156400153611306819603545688608043887588250093653567472603948351557253431507483260727491666721796435763550027628998713156384298222425024122491810990876400904750212501548859555967615815391691424668318764075820900845722245621446684372741717208402954684881421978202299131792229837553344663556124985326271659992593545609506519729889683374166406888852927725076414789818541482212428777469085838978333561766732448428535654646018247981923389092407310800096587555707282773674821275948145983864258123228134468414353289676386207620929329303132185838665210306043871812835754694817059790311306798064837765049071941000830438177814824335237897939042706664265683562405870377116840715878663633388394637850229737646787567978610623813610500996544193326410953201183947766160097651785871365825959602566466638316594758425471793855494107378368808784407724560256465585130533402499893811253166678247634805200994903171320823898781297847073994847863078776456476532254665057526153116901130084745870939855171460518997826832870744305867706861059176073989763693183611202863329124314047595294212848122987662503061077546347295977066684604187624942500822244030227452183453463368434762624680826800817434714398430023495596333958482113911458006844629327231891087408368238575001468291976191640861969553812835538353939282801463542824674044946100215797488506085395849387890304353098390906347854559851728131804564925023589492936089674998148082102980718611037937802414223770994378178139630295429050690013012723637924336059440773398158932619009628094206046871618658653523511977089871307573900137381611710458105428531646218858502954222044397228813463080235064104423437382126489053000681998574962289128839622661025038353457702211562049938389245603181701842694529136047605787594942007618425367697454697527172843448573354475274651924420972690345623468832413015679469307574630021134034695463377786652629876116936322623393848580390943722490384385722853174645126445706109714092728868755661983538235186900521290897374091282669807503432336503734168768892924637445416591233168942224111674670448790414101859186028030829106386368951034818130209360595009154382368896252747224717104890691627311549496855453500615108187219258152958954349117046050369599422526186231536654562425625382912662850219964959802286724075839125844990428918980894746658593625767802901472002759965481041852490317876971619395063628087758799142234512364229544402246957272944743184732252576804196016638573061041750432370771652126635954994766376244545854147629256362054099979658795377808920930097110296496602986917168635657843957166769815151597715362975048635993312358820591970795760368919780889138208137532036099304911881140007884256549726265264158843315703798349203888976894114947400866584830937366399382601563298633869076076201136520339781737025801756764349129080814287079290522557566014587468955715031967978723128076059861291407826108033548574986041878030026727581014737466560046117914050719575469307149510802329959037609664602069532977673109840943331178446967581657165106784520588599912618580305120972053570767285651644605670928464326776305602016313583685473213582642357583918543610568231156170031512397523487536449320405202765440753260220940555009417386504299538401383838733153226337686146153792381648657512360941101811834421937390285436542849321790333295368335450963188487672728437250349947220993676659634706019132832073153877443293934702132619042438461935115850028911819859661280692774534321188225221205332140218930278740994517321051887733179530391760746281041254540115669220676428447396999486283837025477967430958541628927324150590385373081891290570682740972065996002730017550685656491606177829818990891476109238545264475216775392584142952190981765607339686245008639514236205037977733653157546019214491138319998995604862452425869795777846659847203826799232394018301583237741378863277832721160056537429879750096598745893542773145344356984006389758607449440380335356043983940954768744447155141714365768996134134365071550303938376445032440122928061013870810931997932909397924309447963367252568417316010269067544128038897666722365503746432087665385801011110903985571978702542750731221062699998202983927302284975778950020414007939305484597928585968944983596903333973550764236654986276406186960647207530252156616081303446683520683463841742805133751885425793483462494285904945469101622249106663468952425545100514499218239607260219768490069902561601464440509782065145285997036219495061356781643281702968623867987491076703707472696398254694558616350236155380084923200025334091802157606196246056551457603700387815066483072958346074468049048915172464052141840203485089644472484520580305223202394643123466845684544682861171737441298249876256445554436913449194148514598494086054886431208065212362976663335146316799780394596977142893461924650738557646333237095506318997361151259072808320752793323056493797959915744303619049990232944334767204925182886729900195598814930726446285027797429405834944437661278059035911183695376958886357333881235758862479473154517812525622529866277821073926871003588532363315001347909875557025327822292702744097285684698327037311174686429549530233097251598225026678910608905799986597699732603836568172309173919722718171230408432226215831816911697734093199481769198065597047977660939082649433604478619552587807373907986193440949170013557506712122125297720601986011821199307685525577028936775090947592624945811176824358871245716248908981165164843746337428389499691283248156743522032317137883786504843650071267631230725315067276195272028868408194019443647716616578442586142771573977602422710823027042224281895713133491149463801926799899268499799780131286177274401271522050035999067491443513589723417038229986542652016160394267807148264217935978104093411147174571933307728734292459858241840257879438174215494373324853314606416048127461657262809514213050357323614153683246672659083353732230759709915631253277578862489724751235959987095848242148186257639933561696022707549484581832508547986009027479823971773288261228937778436108622672960327945416705722228514349204545268755317820074934293902659829592231227636524512847983177334190576845846701107439947510836835705397212198371015410706077801259240430226923361779769082525707753709161000700163656000156883204768436267137960401944666324174654034890147617344490870149380018684001528213501148422744177393223447168339069734691202672023444917493460883717801563283960054512432912923626505936502578634860765988050788568382969961913654367816538575836477846056484971327187137684365375375367293811906897936950953789521387239763860614378699153448540110683896553890396293819710999520066392453754933518183623421351299002393587443019510959176206478015653744879400912529560363353031663676837432730532692733671511071409380943336294769826090828682088092675101965515048619761928021260679018170150998951754554993776540891640415079212973613076616726028697212911293405880499938947187171016097591293144570693893511489560761671408270892256388132134793417044339538325950360663744499950906891566046812311605287675209065876927511616712150219534032130352275324465241730829722004022073996948511108429327189698953251202607185474854440652400907319448409155937134198149783731005976250428931589962713032274241862415737391603063881824759216130344910876100796987005161328672040674235988474129965298488286162687510594111369262481848502219918694575504547369638726020792283152746646525164826758100907120373290485328707287070039683767302440851668747516727408294044458616419547396980032548695236557547909776670263103751937186414113746961527219308294056534297624578461231157220387136841314408974787053444578330149359272739233969314974599756753475285784603396186209432590802468906749128503387697314105499627427958736422823716379936928861587854149952774809447229879042402790101684847504122493757939790188585182674373943668567781429005979457261769797678409215760669036698645924699184461305570219287052676951116243370553535856336190801623863693418629654843636099464021423807017300112783172400990758728178468897721563099645862239347973033446199258241781583022285998503374947364716794328856927809447287685268912276476597797785680454046437085224088931254180621691206088783489499565239044398034534986205401903782888868907907014143528285044302980076786895203261017774709736192914522782349974027662547448619388376911837671317334474980300709629020514194866264981060225703402795594534232029140558592965857954556190511966409570390507405862230300937510820212967716248898111953991452659306285006062427674899228014273542642696725290631062083786205218775394487167385760525881463630036567259504222701505590173346905871822254228918452365830414431902413607834114119540346875220642837995690083170603806509609876056454912535665079598409217687570995004171566546428865979673409085980936385691659008483660924419211621969353265276177105415573584521263645431245400502108410667698692227640172194121887298420943217532386090761052122420929584949171226066517456304846621530530250940467604771187028786582896024837307826553968103392040499145125102512139061509726686592433195234323138074170412854737099682934012577876874827564908474839876942186294111017629446987272427823673386001764822220299838809991837413280538450683687101629190378882903232109147125237022064409639872388151573014034603759013512490588415882568442564657306503959126955102033384255813741759457081993474754573459923679568937808367614480740963451678663428186312239453215732664530066065266692796743482309521063287500793009692830692433061732649023271728130759486474924258175047684343332655928889985221832143146149595751537296912873446831292628917703172333886934215754446953192430856998127192892358681959087607661954240295379267288735291162240352520350658880199564513192562112639675202323727911658495063195149450102799375393252286586466781148187619668903789497138642275761203235091882735250078304648466478853004793229057406922125020367778442872355007899515119041284785389551760597558842663992525888510840912608763699775030773869784754777308865168716767350879288968016413368430091107484539215902792544926391826099231687604725437393684476953845702795319943564608020018060882642058029783787966222911008627458949220200733133995461583263590889079675926907088346926731331419044289752354194635261819247321432398423432033866472136573440671448896459104538934577736744032110053930530883453326243978543199904324213866516781657424191537948204221861741446320292871597823257134316727368816489005543954882873401732804348017212011526250991370781216323205636216888161009875324005650565008520250981653218662125221952466865513267960334184904394735174104502634735350739704652409070571685715842278563814189600416424544742690729982280824410307699906602061978565074649818032327808526069885948708079388832692666754013103052475991000856609538058001848475212214372563630913786067501290706939867272834403325899035702209725063599509908621611562313669444031679363363827865646584317437101639887928464045969780220916455370276046235663490670352634300859897845579755058738651903889422869266992604359164715458793310840456459681886536430381225787599920656121649563880493007650702175387576581258944586926807323104959864165373960802943014839174668875575055827976195247002898607653287603009448132342447273536476822243440418131908872343578677782487680195599859620466500145410094675263817701671589886683348346360515073043097600667369691432966211925107342339180812202988783221355788894990411673930378016799407230376421945459000764228670837498747587922272694797004066665407372243877162131787102708518342255486931781737972679287356328466256556121192569040047017188537360872571221837593620267917800712399736463683481595964434049125503759479400302033951465134157050163350217463336293742936294505498246215622860085754095959567717567947729213483116145134103239305719830174578028491168630110824146359149410048321187462218625181092566738333497235435025180803903887879091280002773881265210396206970969637112225579023745431642335899251240972745737656414824814311819405178324280337889505773089822982126909980045236222839629683597155087814944879662463940495911357141142988520646333922786286693077075743287777713950560383055095701057568108895146957938475028043193424475083470992776960278197304041850479278577484532829821243521592890791162991670805241087257348733792065678343221328857409699277447142852329386632636536904878570654111975194758633831904683791374376931191641917192944833255892574213129601940126761128077606402288943745982601441530117366705567214236616205194551038630620445943762709136218155860511467490095111628104217624985295407465553224951776983057431747091347929581852676327875562239060100212059893750000945990000238005792056694688963187399500425113132925924405891791948576175510881071664503856518319052414037790787385578336182542252162104132909882615981133664003351105946549644195723214601998579049127245017909030572824323215943549223610375320595240343873356894070505636602263598325545493545177022960074010743632062742121717292150453784383309068381412012636644650738265153735122579605587904969774393839994866373040121523053722904679263517825596806770234920617575382861751219774423538013053991389452274803975660203053278610865308599203470913372864517044185444991030694926913188951253712304411307964592505501245200534271402429887064583857319563414755744878167466301977054398932725478551400838378578814659222273924850124103996284348265047758861292242236553593079394545457317154718678683806361049749773997988802173973360959920319473347343584550143524081033550777193970776375377762009323203731175259852995568893522372178829861606239200336583949580684582804938134712414126781211231374512845685830228271751269935938421747540674179071252580483002266404795037497035030777678299146613872012543725218159819806159965297768918619798055956519572059561540954824059746141877241652347708317540914889476893234690830904517787377059454313995429186901407327892116451149898710822066729905494341859185923933383157211914525758100055969580157860469319846383651241279264694371678552219816691983050509245242606437599736091938500146863529456459278186719774655251954012793140586155459775365051191723782422838838734737172033909481872819884170054237117964578380408312450382862002970060336088302900391629800681191378821772834639612943623233314425404267069977713447566142809311207053139944187760805169326429064931662576406104607813811180078722533500028889700544085940203314005410561132772313441494777536540689978284399664266525890515842998276942143809767752747543491416798414752795211744351258388306265775537550787789494329819962782182975757398190363614360962903955004895433809212140155557294605090123378818219703991900450233453570490636525930201841470947053275328940731008543188907668083853794701393921100393995686187551320922629442406904698578941296323236590084887333824559063450053157466048453494358894946595942139668419679760449248322007112635266187457925984795869308358985123752935783287713957696958656729818462627321931495628833996107748419022714093747254341605214834141268407679191749332598256126740411802110920600946538960175636745575188860548124997795617486896720441615800066940730189621985667068800819891771374731251493522086730904587959202462007811604380626801743440380749783179734955154137545644712043479127514857588224996544147910821219670324164774699973661997061684754428137643260670598201707632470372285678769369011524606463788506783721019141044703066418771884204389170162390950067614613573737379544197137246664619033014084903642382676401464838779019490672572587418107312906864435045877360005038775525771743740746697147018778603581818878780034335849026962055035957199062854446840153685760044072810228860724369691962493078672441759291628931824411197271752782346906090147671758551091329870999946245569021249620282335498452226311141431614720802160603688447203129489724819081212822474575262395963070641771778189102173007514464013090653301651112011607250082274164319118165394128777531031643024748398907423413722355522387159136516626358843875057114992831305291474228963868112902753979902968773969810845488320453303662697150549449741842999434774032141314503976856212297032977335310116547474057905603866043202206837453127307628688028795228215701600414709423718408904588733235033631913065689737479790849065110018137122778151890853096625970923166528498632581832831465312799657822630398360584035175263446756871413218130253846789958793323618290244872485629563531786844401173904955409873077644758002340167807873439655957502856668942256128549583193384873949102199163102168696366653645492207042837845434406989997829243660775911463777627062732282281812542918598134063006490048739253990798612660460182367862075524507355230091613976695009554092341561003771090209260429607172069063242983721895041982902210248051910052284048103399390105603577558022740976486425232684703249018135273207980188288572226069263763888765589584646557141003516909379443582853778679894148590698824642647594157698188198557650729304791165399091629315135287018542729716397755288388211350225920879250643931219451360913921011384396491074176942010672567085515640994426002622011837722187238171792210507701957761858632051092942806089052477310312270399863222473837701437553110238549454397225042746608629742351100885795581069862209040292740014941398078006522326431605267411674122209946965047883675492141413879532921705618416293370172698152187284027567869473298390797266292549488425534195072729758998236431775192084804360805570553380666088314118278175356067689873860427265478128315470548953838714846478343428135273068941798484483699236378203120160682180187649296354599133156040419526046175889054690100883743930943450398913688364296095977346073006722290645500512090673711572714052765130298859853087022423695776284142921064118806144625889748529062889255267377997983737367267079419461433684679639619312887218189934113356328208412891451582227886947817016930396644435316956080936035270771694181698992769047323326214937445195726253029323287000890231427326330004936083125387378718266698201304894557185947067035104418482877974569570584792504781914676103639466450091218947381424891394610453416376150759355857326757152524815413999441452651964692047843157142314877604326948285493428615538016119884888865856215610965159858808616734255957881122708308327465671715584612010722768802725931831063886573559016119841698702345647295939439223074557618627655411118475553257411809877244708411991471881726996080087202047658586608413412753688895807136244053532388441586160445555068197292539451348665441462376238858184504785269449516273596228539811054596306240369165059222018139779136879558542404161597601884661985573003238936196408194416674849353515499165079706542899309431686821099292336730430488556625241802910598750659274354392734994217831139137806909062934705722804767515234530091807087250469340835556508618569057938597044020340030819999088473704378575029311892429937428369143379529600546782133877109260078027652741198063332095337768616320253666853106076130353676040412885221698548691878671741273403213812736601633201105686013494253256671813036156543437833940639656074431562465285494746412425444945136607661718115071062416330300063296949586713587177013160395339419936368471524550011892560800256189134672318083370108726153531323683737033491102945560342008715513110329873866067603025412438829813925887010846089279308338491921300199656090824651851886472813225623335013368700448943607417707370765206092032645824895637818323043120322518986207496088332922794407223892569535204554842955568067449296644986231916939547308603537715670449802435921970605726999439700237709984304108480133800029793730788862686082149894983332217269427259351602204461188299472717388849058368711801101503150887233521359054055029205081382350227284481702373026698592591582673163606504757512811905081015924465872272748805622352712596509967587944756175150555176617311819329848471263927142462873840293540776063216785338447578005652556282582642679624778339874709067053398060389170076234630964439558428444881638641606541307269497066191722269026189850454333784437271628209495831957585169323778840192337805758110625870733629709609309552861337946749912556262735757447144926357990660523215538329748832108273996446882474311525242752788718798376456153905971953801681465207052274769936322802221758049025685424571401630954281568946475431800491929532669865632962906944968182727831591563083949581652514153705136812128167874903147082298363241369124506306251751508526725892749227295227397892874744232569153905726564719235371984379109335646610437076504534320100805924418231388905028137339154227122359779923492664175728971194472544438920580468553807648137051207828121090546224211814362573614228757388750770640061850155567640197440269670111641119476664723700230401378638013530257397918120651493201273762155535307082973289278545886956354928610704023478590194009648779743707900559233082510823926776542075508638319519642371763039927368747752057902039019997963037494083006215304989718574688443815654403547643654669566278158124107806138735126623858130206853957116078497681216222287399941315061795402657757095194791946477298191335751302020072778405024992784950640313173378994955543405544038421681617749069163629523555548164476081643855172569933022966234188919967752979366774944199603049147604812952159131458619441515197701245895542256609329140300102625443652359150874234620243136485319863428310755585375156047820395957071198388042001452480694426286556018403435814165025854102164080589749430648979296146970101698996867980069742481340215294932364736768152238489426766678772730813172062379008718558279314603151888965814901150932915291704029338975369653865731731190915552878476085330814975179424152514222208916150437612869690662078192690992192767164146207427934746463400617478720442056235328207476575248328126780123187170079701175277691663361388574947670354736670202795480612865679807652056307575529134505255738718017286161160590380495089713093943056656659571844810988002461765004036349992552627161872009244055928034015097492633695964173380789757033811682483195944995419372875558205511190185950857372019149405338749849837735540653584691285329945558144580876069634849167805020317913380533858189925118761494858058362424568725476269466226864263975610144015388718561575733261606971567385417755189247297198918342271211629788601482340689553462467560900920014373982235700572220064493077295201899115712510935366248497521423529923574641151829493046768823084754279806959766951193812398693444697627983109177654658459717334552056893979978459463153796255763317543197297810889720050168783314017035608622823842647568105337093398048232482115940901534422351006851792596526307443954597104373268172576637771989087409825136344504021039228071308046069402216247891611107494396823462496395116675534856894968924343723217450803744182323092042888731092110539293903248687023773078627153956404251459618651197396786533343563627518822897401453363218981048187771946789317506155889044796642398365833506033431389236501004337700588429620271637902847475017433198621291558284844865183401096437724466769585189737713568852248635440493148388905555595449841870162319906493535894043621632780584014078858338639445438871183476673800762620711071035931123421945517509979829409197598326025734026372961125107882005710345765685878499849755952255169912756639492953712033978727557003343263247112676358246274012576036157067411669265103032884547198246649066051104741497245705636798782402752193896777576943156353574134546391367082853229473196149043890925102722457992217564945878512559276359874099232897163449127291600391722668220154403513227836764113373154033170139397665475320275005619855051675504113973368070391785531716495127714921343171364060499561233369615542522102349112725087804164857156327877245317284548118943376670843707443239029422115530363603647497605663125021653354259345246692192486790615871753021341353362251015594449672111100654896833860079639785181919639184430606268347178124363809957414830135183524226971624325805624116741975855277848358712622220797064574101911648287286369091630573411755044822684492589561489042707511050573159216640688671869614539245239906984121810988765641705330165364622297182627710665188952092746275177579505141267287336705407765002319433316252811735701793736787783146124829578452181848386782198886240122671193314179869143280525278799809994387409672731066503129855504391965250762964988955148235421235161050678820543705574507808865429666364892145505925237482051655858908900164258182075924291760634134836935891932011897299645416249912919283449090828469376384210705935786798112264227156164126309950639237068745343297100452074443520117817402036062278001962255397650091637454632418506592569222202809575221231692818802353107427069866304213975544651202289695572238574167592683087044109816421665770873566281178807181311972813713626757110527636891327264119616919592460593774417664655483378078545372463869597722825249105309297235357096445843825203567651495206639646626701091306481422587244671781296236511316226592322507017269820322121490928850950046027381220718192701633130455190682507914095059510188443166823084098183081217986696888402097013637958669792940998906868880023827359045958735799368015650338831662400167764103983090857521820489138819020318528316451067049116321734621507862700196437436302143353845755383365889204048981937822677367478281671707156642555663548514120557488038975372130772365723421473097561448580601804177283964290655398325435105997327509255084052355828002599404520248330335669822684845567572409294825084900621700631792862853172196328184358511633939269041098319581719630393396861541151782749132087117208095344656387180110325649916798114916901676164928345136156263595415491027037804163950228337756359970916352425238101378771799229354309602429919174738026624963514607224982406342838038268553772285191181517176248910947047495534018363373549390595812999432225263023419416743925330304876837942117166166787933516373150734591418385371322314757250618328926201721059506213824486253836511606417741342947862719895479638335746735919682458902671869766097432867797109723444090991947149494871674509415238025261731480341980764264440893216190061344822857504639699128047182442014090247670748190214456169104712073182219181764375371183822392141426440862113800457168559267402457613712548874702620221192656747269636354136164560772208242143401074282087607919808094588405285728686860398494630265710759608141160386046721846807019392678240176284339999720356124273291687006226713287307411715762726258822510112172354934541742444267499522123010300804873265218676853931833732325615194458289074721270279825769725465350903682908760259802614743707178494763909695287232899652499023962881526215458566444903257343505185125327485380367283259602193176381587096734454094740766066978677599361158371830460047724489776712644303787451023142764681043775334158901702545625264777769880434025402716799466426831443647591648268852368370154057907806137294474990588542215223392114010765670080146130371852596988004722085379715558822589479292585531316035730182900248776456890014530739040047186378443605181721258876039813778715038978710021483115059128389302015384778310710684509312461296665643479776947332772000483847313570226221430395547646502116033936812886983410888768150594523209654841053861568601644146804578344119681840235898129826692769969688010259110276297613870854216238503198129303282257919280941777398964536458160904581488643747945745633235669642046053491580840563498869403601373248668543170021127260973913806551012165978185513113455372758990812933574694120975475180628218177843239982632307911903671398702399425760088433046029865504649392337276885819562674885263270233050078737201173184016861347067526598004226819472549385845928809033180911349015711139461000602265740498736866809495206352837672903591637361221933736577365074929374687197049373764088147247683192975281755448987123807584857759698389113231121055159846213312262698570518698854236158408446654224455535863924070187968559785197816839975246452342709143474051627499398479900761455607505511727310770086846277535059696160869230229804818176142010543207293961669666649623787793740668687811706621332762744118336949561065877973498085248429243411812461951652768978363514769577129658734702165673797928604845254564961210614700061989807162788693795519512712444965803710005540826163768252964876613927401848596277746893928391138025163288018363744962094527496276445736705156175786107680680542629182062544432056371903330620137305489727532838474530909227079051212352366683130682387413259459916426761146377575579349342620092490108144238388782829351636784327233406792990605124859925808319352324405732086355333063680679842303966662325454892640268972462420701424271653470188180526068974792417664768539735306897952809007532934022972717890363821264692256916965398958979793323419291298931880217310513259938541581405240529149508167884566715642821119268752415605514453169115737085939825957973232598777841884249989118954261966050461107434153319788452644496320646913704408965115138425487071722875276282520337939544432466410712007200985102266110720015473270690472926884216843291554482181206492640492429785168228456262311279721638884504672595106239502417762583885570942381639208159405088860176688881834289368516370981187124177087072092843134711422786976431680873636309518910544336163715432573413238298772783626594288380062615932341790117324429605785135080262131532194392862191130738628616472070992496024763325192686078922480056672745042688724935115426165684284150521913370362637126349588236944161273910795843769163528792799873768918713328302236183689022157293287083675330608765649578060659469707464770293294928252861157365359125618768444015267197002205688901326186159530851808830573693506413719312075123581645357285500864101896687503225548042496675790196996405343185015181103865724057305363204801426733100598340221077420871472054736825217665700320591171120057954431762752002533442215602764744402094843300214084749269535525484553307972846624360849359971448618251040159866466789530279859652811045769604807285284233452190562268250309999054957018837226903062436653967188528140306286583435534222551389039241784493850937972672803400837248546261435016016859957953284169295013622964809479214345365035259571373422113160374235410657694569960097372665220025934479591269802711098974019351386238678088231342745214930339207875390260928456231704872118276440151403718442668595233753297123398455924006955500148300387026421506009317120378919717203306486862226379529987028288984495231461936500159217430922188877602686122496431087380043016863795057749834600452665763282406312941705939299313593201128777192437445641013037696626890000321547673903815602245092875796717540815795871937302641977424912223202758837797905384167269108674098688006931705912963241696406260814580490845563725081157250146019141661088568285020553158886830431271143335568942921775838402481765179147849968859406987161667953202901554630757770087031747516062256934846591815912313453103222826578864997049442782484862025191870358843919772281346685857886339806306120257260833533497716135261269874278185860333670213393234154279334909980737518483902997926151438177431799868912020413255882996393430974852250294507478968037216573624104118490712078737080467207898021695327436693462431221264300266590875972251825921812184916505075096692852358147207801274117650902484444843997364513986324860821037386502093297169168748549141234621850530433526810822971932121978596189833849405187753549761087286313579602650714744231369478474847483084986380022086423724755512812862435819342110031541129255155218066108513413322702529551947268024210673945339727132767346612409377222528708589060041972957930516045830973135415478306314281930923482820993348352315309251301179789913161506431621398682710248503229818919427611457803100559504577295357138282411379186442941986447575804177183936558001379185684938963822671677144852201893805493774476399723678677425552331441332091980085847097458826233230479682514661498354843189532696089331564091288485631358022319774354308492405253195414708576652932824988758127459242521261929966984774928016686991836474795071420361111639089416936707134536562413759340442016416914597017206538644367055214340259691569112692865873525859380688960499276614485034125911828210341791330655906016240367756104185093409828559482792909364626030043826630769605560729587441873383655022054669714837094652955366769850269549655190968705635824902855349136593076819759978019621526255339866175196949456437757987458813968264454704612415279241678747529909101588729716590747216451705337199941991026809726480537675069602121911318221926699774956889362837100501548212081705254471113099131226576400314968359846835168910348062185555120110333452562004338970520244799778287222920760397689747481710379796450283509709245078258421458835385267957362504586105314789876048322027367718304065840030298729939178406428787001985618223636094848939780605324128359806819458623311368599058722397931978971914173836963266623368363082270467359133536104558090247788513670077274408867562515828660148595726018966756495280889508233094877841668615791960343566397371778559714577667719040876785551335064428042111645025586268566018167521717479713817474235906541232475021893105598056714992127394651323836820957758107403662119443050022454874915399056348383241059295434910422437098342138159039725033537597080514716373242774739297714994868835529964512830567706031951908042809664167493923269697578387199767642450545678663391383706947039191808011511068861485091228937914072114798578422525412468426988224031024257459467429438768216201901773308963950737612189806421274995851077464129427766092389204509048035935987927789758190095866991626726401351265308735299442366898134378452815871901111935932838610068195448278757392419288519279892251868060291987370812566644282058062353615702331233484677234717539317638839150172547236881638546768740534841563222894986057243776360100329914441799963726271110217568400974712896021290508204120922228913360129964549927939002440689782364947879950061751587156275740166532002723604148506072507124353654939172185594358595393097790633856286961747325408168225970967007971511458236713821284505016538651864979993359544192725692314126212355240823604724432631004761589940374178353348737574365817057501581404543339989017535620561688536495736781380095151302600686502860016892966006857662236542011749279250085831429052195191304907470210296040444996356616424498608687982141034972619363580961257081612560110548617532953371916520046292476614295974581722194131371705605836374553431884931415282376330835343270367621867865755285927870315531180757917285724062339887777267738451458804111459995104730546547887574696485226808401267159626313685888707243261141257173651128915715818969133881239359623875038594367746497925997424609462317297166122248013211031896090241775547056132539363936628729042333577189002523742353803597245763424056505992139951285255678704476007163196177013065222011376167899432905263112206983586204941737347249367062976388992775503384955838634325750899962428446373221747198980396508659923766927633670060290441351345119565254541896665893553904550835542658636582625398071393245380232551280134233241161014055346419414530401105539867601729407271819589807139904892600033488456764272000583482548650751191584633123795950943968034244349380384117093303997829585076700359591059105185316709725114681031151008938743615368629345830022623706853564256984222625470064696703036954895710631832469649289948646462517634144528536965929440390408704802478583628750983469436620156751568936190829068650839619194669724368037595824250438423926574772285342970284222325489616027274282280416043251432122775737073927478418714992334265445897195362759035450264177167921618224442942032243822526150743888512493173183720085900432770658557772197144434392143380242739124433776948544255652274890190108103448571787556125013345796657690126085132990666081296313013867335127687413977262154551448088984972553126454577028852250082710767856663215013946808016930354352106352460153434702455681209701316238512220478657903354565711805446950459799380120806857159713001986308385155412652715807675449642540004208126620949455184748231293697914046294577449596009033680755253101011913704943549450217735681816356778403027249464101635061487366095287982390101168031717953815263009749572678850970393540254566231906378282290390828560739607327425732912800157240330213294880745300215187350352582401708001183888416948654851146198717777514132745024139224654677206700098069843738311367169849815026544355922309854040644613191004118251518395409344987365997619058973018010724550154627119040404374409072099203053662801252618930844988415131098239437446404067081839006842448917566379831578604589064106722928229629811300857913296470142676832733022538600143841505595987194421629034849175558592930813098273633009335831546063846406985046732436261900350543326423604248013900960581914672959669047173492855184183877202003051874589069285952118829181830356134410706957440821556378481787340008040763269478989592540881330192312328420752828665347455401351904308626046231234631057777663036147766393064057960787081650855728019290462614933611110870218475520623520546596742602470200689532677339176702386675064908147185087598868202784017317111732927258264820859082805859022963264852492314757760673663992943468925828865233978549491297602985195459707970677774266600490484757782727360812470387079374875486663219401471676899736434717623567784398464153205595456451218625493501423696191078657884851843975999245847500373073126805054702491181139050144358117299523995608186246182882447826903366678202470080906325289890081952795964280689798584343217105187778393050792089282245224025482923734848177136114871493903978838131174945489699733809231282837135870388936944324307551377811588664611362724347936178022677528020938346540472058377894800304052911775694833206868689027012127914908719626101302402786104327341858276022137642155519635613129957508503803974084076938246721869411820919735090287538336728850454335667548998390657981643218197765743750435937284135376287160237541776900951122668231773139470849891082501461881751105456348589987403935906890628634829980908623737117530192636086972578384912803104807803352740380058453657033582422165385006537397621046013981607785427109462399650072959225167087739001734783049663414970663144487034684341710321430834100762392015912113695794208627452960014346898881567770921935861691902420132883775215569804886935686254849134125871233442869075567173533773381888901127117064420030602260805599116241732160620819973537487128734559080496369084991971422976687750023965382722188812587511807403948721318441140757310281989242642219457815302691279055227595935425415263706421257944557779387755748347668888809715856719006282051711173669001110839734288749141446759656739757459229567921207374468710754527614727090330896334127107385613879616236034397761960435331071781510731222900116607906270381509353627343771634302282744020071872164381996100438953602307171448516938145400652023664399691972575973745885922245747087023586606101687064620159662349127762639083440784649353123957973530536945451267254781040108593049089621769101446374482966733442333322256687315006724685170757472199959376863902783620282835004408299616760311541324524857129972702516658311632041856129317257273524178070862810105711575645204450246612282203946601809895379758862428644815341194642623058334188464053781209578998413146142395284335883823341452200358947187063688038607390369359584716505479524553356500566789461584940527533637135469774747391673344233615230304755398482694157940145369472760653040239936704453476837285957501192088948143873854086472480391607980401132906239240745429773352995721018162910846075932293691783442798313189109518129612075559514276403735716882952147122939701756211237378066540630560915170472138064341490898070978399459404469779098514204052018844675507452256899800148347466615133585445276584377415228893705308711119705059520551960327893930941461954658003211096697880236929116819541576182887635021482714237118958824931713128339424401041811432107969445169623971764426151649385406266268051864115377088333322402983546058846734823190503362609277910377722198904090339035634310302500412082458003853022719941530380229860286018521707505201394285660403924415431116389331486871952403894367334904082164214369919270039176668580264096544429901547098256909119739793162105445458876510817641148481112162391360496878360668210089623279932154471423574242086049056679993982417296221745944397000398349554214999679782021848018158113198859101190273382946929039948852729249128324413127988580233520284113583012650421474086740573820651105197763660325682469058511796281963636307171531725295498410795838024217696802806145139546358877610312894514535487186302020291974470745388875024217998940640285205412513408919622686358128891412372488675198511981095062403457000906998977817499849144112864788039443139171792029294988031676435646460475722894535278274535409369871742983356016174289657894952772969942493116263055033703670055446669412895933760473532424066698043017696831675135585294829458060047272921466417664930152840126854927068182024311789762316950229493946417138138109613887302980042161574516765597530744156461953018568226729161930539325949631573148787257503195189628876736322604921264947668938524720142608939328784020038371094500649320822756643684863096798142205999633689440249313482627086285645114263355040596306838065669965864091830766073490768921320515710347804315294105797647601648741558748945091258552020142313420022317286489529424963459795275310037179656164484328444681828963750222449248905539329586731546835503678699491163244191717891806030576018345313070300277959628335981609469230879627141280596015895131817338024187774292832098457726967763421028158422020468627325635387944281385228766077743067679442379686718177165867632151151318208238855933840091633634359965848885137547461774860582663856769979183897116893487969197799938076750793895504941285718199728575410618529838218956509783033567852094558425790262872546120700359008518260132882884342760814701990006985317193952594521290303908542237369262645773422359183346423690246314348261382599617685130674685788276695891090221523503463601412243613342325586288244478742155650052179701820735660978471800037122797675112861747165431904956281422149359833183040760945317679928188956954903704379077228563604648924116076309811121739690822661156651360353897467580559242040054553417900315561025671022980419626644557703423069035741246863528216951618081316510089535069892501037118294325991047606340970790103296151804725783449380036103435167401970244486547389841981297362695708090880395877198669364193037876503124847827585372513435382532186035133086668917240829627001868781277997949181495556958844052438574540860679085427154962421389304273949605896912441709917458187022901466261854111162033778587052589218563872147511857905000364468863091827846663007757087423326604790920683376760564397701182065308772392721913716150040136918707485548992680976706690761461433725586417828866629243480986198338485930518157455431647764263916011218548872934347626374283562576074230536295815478979096329905229753732355210905104681218250200449735534064202823216960004571771951466517611991471165822618098645629079204865355813588938891249032123628110407461225190886627128533884486088636221738350111850827330621222791436687431140265123430600462207011588773192025637767450921932150376642571305361937171641067646744927362606560212135816429307418487260341007690260279188935120089726877237686536025787035675045776639581704374812932918634594469580421687280175785788924905599646633759546815025648662160223088059962292859596791617743903877656624370764199019512285361066538336969546129637945474966829329371161913894998951758724072055719315861664550362488231178466162204904626550496241863615431961163493577017752545030538289728204378872630704650499740958848745589371053870648241517960437387124082160980711575345981261167705790691409105842817595483880292197475808551233189189798436934623692015798754956607267382987907356001752784503699164799069027685686318428662864804096304879648623229611136208412109292532097691076534256856602842769416018532374791094868551736456710151047139623037301053422242167882067888158915247678054932929007972569339967872556719871209293568712645984851844103991055447572805705989538871427701264313502105973081509860869885827138820003448594900936222791959823624072924192454113380414123566310344996746805598902955232941463944814684457561614256858024085961866460455946633731343371737626123732982330655726845648035002290760910605806449026219214427769610599816799010814450379450993367946122556682882018367338253366381931222818420509108220767503705238783461618966181200989590132760048526332744431934878291316498551073083293793984232159955416680240843263786453695390170344946583203089315580209425569646849610915291018993595138866117955590767399244092328814989846837413681154387512141323782954717685922682321502231947450708338734213528818665644103111077511974736515324439772206365165431471557014068800817025384118335727002423239881723019224351678867379659653057356326225631882591185490753044558612887664455850496926768660391989134138316105032426583778500026961772937519925315974305489322935959993523889857878724516178768567842505526658438551361076610130155900009879135382474458431072858732033778464363052097320658761758117224898600082175788099232969752848900436432380208778710311250841839697159878957013322357487340617966021857737690707566019067546613972779847521153558423828057048494528632099332029829137021489060963973113136651748046814389803608547045936947095703165316198934507646704947964063987699088225008799628777049193346346539227940500507698622673605479610174336956844326085431837107393895054829914374661829681044196732712636277521553239190127210797771970997274890568108523190327317616639744272641938666891311004299326053688376746033988900552080387638794763100581126821148926461908469938938356794556848143004761174868594695320167440358451446671435110856782956182801788147446247972226103428542403326664200879571794859722032890856608917746101971097471814069412517707672679316686975309187800667491048826850455836886629232047073723469508303752725342764035906635777632790518299614158896981917353361084372980738843026259445908603211287982359125427726601886878976070806758261505047449263993452258334491534294211472956257641111032636085314194803219641899899900500497677329136851383777051951241266900703856944071745832252568138636080714497164427480732251880305906006328225271912627133081148946692663712014592515224769711135388300120732729377268826930911147684200749992353740039718099987727284676740911998896871988052848618908923346147942990306729517524531865576020942782977077705237093723746913149925458948290549308237782236889714055724529165647280977173817701478871686280943897322067595246208717907537302408666463109779639730451916182833256229428351139854190275112754938921526406275907002991170325583495065398069710947893798765285045671761630331709012392036146233812925443134543672416217002655443437475407354129317883952556110398220396230575533499920569368110601033914181826769825613650229979998239269068582740837396809821829026325971499529692358844794817895022744856893989579539646102982322122843659972608933263794480331595301052160104761331420215879947155955276004384994492701564483071064145020781706424334294610071962202744514743432919323981714989190931963933841677908471019313425536074686867278070505675661134126396884184352479832418070062698870468183928985012922379916497900725988613934042180233194518357804539956890909160119942007990423308074588257473232639540655229323632500785641112995818240959904711180442293164303643044001643960028695673308637596711173432880183312316827113171515879663202829223166462740576979638035544867644912958597090319754418951146260862025672634606808296925232620442860181637676081542434633187492785768631177682450938439876677482130258586743643980220861033402621581377759455349601870747007689828592571401705640438965787458981452301083140918627930622134539048173377280843450616116549861568897872735752383489247855622764387484113659301975083507950848817579148786673596662739248885985625251691134465451573456968948053538677032934590329268005462563553866820329099015131069508111193538069975147120748068752908619741489166040932400412863224852419331175041205785734144015312102530795321511772434628366669504903767353713923246023445013389686777066548747864728584884874164790306857354458528336067629977947492518340852905075263117428561461434285134169170390372202118301670007451705866702063047423751684489426072184133298836402583743873134873017271706101550523346655075724854822600167191380036852552421661607514438332040240471891732888063360041655823693918261899805404715530065687057531171536369320693571410386109809472094419892086908012268950639515012833715621241721281899001369640733273125700599076245017152155645568880113238669374193663353846504949192082939602766829350525620916444960273817715707483289255837363739332453478227585594834797402824821831064732362010771790692766730005690904099259969843120836303526313719635126594561966189235814562909961568586560228794814818062493202707832931424371780874428662624945304783561856454004040701492894801347531374286650062107582886379678149543017326590221717272726525460856952081944388827603156625202091126735026040380218865226245543747440790617974426729489390802971229382398396333039358968825297074050450802027211222771568506357007032168705815660932965441976557926785245088885034488465021862430902630658345597829494931900984657633012151701836759557516779788580251622761584183629121592996284462854692790699980227993870846119258566196540518145086713360026528982336694921417235201160356505866442145657199157368853407876780230118305615672559904233449758970314617322081002347489044604121961172869953668132099831725466070687958342927018671370107713702568577427963139581520444920900829719332016622282094403856262445990285864776410436861790428945303441742349274708719575280423842633900358921294894301752274212271764901552909623435577424829336372712417117118531636266397969190173710516393467633544239493488486300672687646863017647166467230921756968147820743956868707913700290595381952966177178987630386620921795199320926949176571803374455213646643045558418835107213240598585912996301395368463173912461483758803339737399078265086554444457535642154561528082452262345192860289202585175525714988768982197232263395033021275183997962309811688544957281388162319007289024657472453355165867362007297141357626236287357222325390752497467572010884957346050677818929257282040346173369477929881932980253625032990554763414377795930004559034596011940843719862128587302599444780000810911514867075241929679131945234951635073654648535826130539492131997479278888041447400988579043931197235827781325497470953652149443540826569247862367242632475471024109192296731306247343083810395223274882825639536126683243749901011151296521058775732264286552760360908379745838139148030346743642240552698808891345343033218041872925147333629552943997743098338035619162582819989472987725786939122659804951260912226653046542285067561699266817808554643113193827782694167726330543847109759705175888851143563293499247785349549952253638370908064191112945265421076068819856813456169363944244548719972219557598811516454724222584172036416780042252711557384404196977308226922506199790828647087660325941536946859090738289545285539926311889160244774113825686352589517244040998406562031498058588090298515880793785681003710025642803082699794089472743181275713848755589998508986255312405942998374478303437728129775661407081451815351424575691285345685101747883051684481168925428183098016943049088260553859392404136832002231617416749770118372622389404065627234473293512545326792411846359206450728830731631627577280148721313275493420908642180554846997580938209649379098347023219514505133479236786309494437230631062866311131336637964046719244905816572977904205629488190216930511863381976916806631229001130569098812127066569358252135072424784319364691591975299701220188061556224171999436660813759993411084595420213705772838579054392610433155180566923418518612804374331431913219666793203335850604098067102143505585807036856405454540839908864910572690625519250688730061716341958082110211541163497271225086408303100949731131062150579836672169831566612232900510496003944619962612049199254812541320950914027549678382495929082343542703925387854141168344062632938202765713874332384548971624472446432868552046260616380922664193623275769144860176283007931860653127382402983498300995440504695450525861580771869089544529202996911413990982019496605016641768006047005933584922691679392318953534492204697475833720544625766988560606230889083043507261985436904094143294144296386420265467998626864020736413159761822680492941077947104425729844401054625498592387631636247494541861484243567507194559747767417527065171691849070203526898711654188026590088402123441256329999989858336848964567603549728869816132770682354220597104068463838330395720290238863570075958543986325411150299233144065465103368627440193935456670130802283500576633057696804721328720391631519845994491524111220763721635497642271060634384176362787085067997539887412850515331194030224580116290585428849751193216581635543392315265757090288378735507965986273248558010784011125001999132219410988923829939543398907045175710949260019062600564088438565761666083172303334828098259911919778433425902439676960720888997648338442611722520583368923709014142820837685345900470344042000023721395970523821408198529634964240338226269030984180717033029755689041213746783491132326758955733601775999155191595172268377787603019507865757815321348164898017333864076174957503160657820784232385943617264404616937860524408270010066487333384078779018687016718453778856222901443597473327977154543496021515717349566645331415289968474702196370945291484549235478215230107042255874050286598419147501616739968419333748345680633865607398944202033366544877232810862513154857812056347377078767299142844066089114804341246192358740272536540391768163431730920753127477528456710411619244989770114725135551355104766639317996878659717328325090038421871545426179848518622565099538333591060746804581348953892596061776880026943356018886361633890529599912517116359792984470248013161502105759642981352809892842323161077476784054996136851931891157836863625114630498995030985366738779103863306638840893327133891342608411245749523646618380671033769534155873747935965329387267518050104953283253627960133849550754621598309566946390920022748904560941897734863263311163298129790893693806202012145696272176119946777427824088137094283860267092137395728996144349950428062599232369918538839222788582222393219775974244948226698780703658715258059129058357711433638928023266110358134725725209439634250511670191495052932616289628098935580109102790333954304875129466214972862650244873275279260112613561173980617344795798543443484020744451541108616517090606726794946177067787860381987667523830424535658666329103008824006789546783292860950017844248931473547037020387767037570024497874711574612010754390869346709795284620495857798475686063812382800238268494708361763994838529600752421627049672517125596365870401833592230346200462406151357383446543564842953126243041972146520070831473026331512621373718047463991196752479586429783210198029122337190392653483044505376758506648568049727981391861615237432179388939027191300641742959894050763380157951382459641952881704596762554220053080713545128644328624980342179613767588728453679628689568958497609274737095465829174996729648730610233463351845757630089440541957003998995116241961734022793729915789032419445949062242862902448165468323182786773290671425999231142402106759510244763790279659350544319951499927298281862841273889178666777529273210215148950157610903488751144546279377813591360595554916425841959733365885346363893054321725742268434322735197033897910735135345965009704379262030770857735813192268027546672876020354166026106003922214043509194439845302104545380257194155925395596580676556358409520686470124905172647272120739863521070251031158839276765635069863260094201577772479640817505369429533319224598885420292389226921465590963500526937398965079462300125031831003425166087030872084384877229775113579979041076592255770059333609233818297556671908833420179123276908041120684823399606161519752770291402650702249743606219299786102472199478950096101187154765737031588014092852374934820637727036900660792040910029423873656491390800250827227161583242520406942434889882411224665900211867936974352671791284291559894360411899406791675307696545899550928873790108595005872648123822280522632985636904300400227581188988433930679070583584052920051402125623139927207181816076330890996567850052162546053712949144326464590154267623316812718831584218989962207106954902732290975713893219445880150643046881539036898065212283941095207497258491337260602516096292047278017384837715216721936863896325870885747664297834423670588590459164107750649937991973976041114082226821912445669857833279062866864523019218210004133525212821987683462400924660220274685199423102372338694053708887221626608856024747796221874433263815907265491568458844358384860787850732201022660553165411930695876967706590648478076671739841162762644708782656348409652273151256184632724374494977445526567414219029334481655183182341568938364977432365365762695129931054818717410560130311065377244444611274582950938252883164541758806856524774521099423009787254734209874477640353091704217434984250216340077224589142353222296705127251361364966541694278742052526052119320556212935460423220219929617821479944131023185714802172073826299857043582414407692751449415144059297873366950744393135731778844264388324660692657021555685270159611702918335928466202414326249551314951556058139331543031642643484205043424163940526744812759520885435161965959510501196990373739130142174912691241198829285810876645768250996884141181562793494650674455224357481465858799918103851999837456737672139210173082146301720952913499614706065164132707085061614625191537760009886205370343677444153402305665329835261831558531221400679834127783048986214502355393656475981547869805010435413537506195363286539364820350975089677579272504718490380092216203737550801172211754804931434946841512183283375730406477777272908530191830261261353683442854009440632725111109996888398797129389597423387106093153516838238638591166788334451658949577044960503723345457040533407473810909554564783821850693100789295336809169667992352557143853306982009291595488784103133489014064913394589018324311506886714781435115052342493678004433089355694647739944028888380906712472090957854191191533067388400216416907584099293431477054512368645049800526043077800069339811457257272307805527309143201425330417799694649692317030597360754762649988570745865015359904318991749045600003169823430324955665647876592878472032398640430598402913697560077730988378943500628968516537999791516623997447888874771109613423498179948354792493444557362918467444772403767893479985720021309201478717928394415014382987581781779916509539549921203673597530273361394878698973336286759318160388760018405873046481083479978087881478079345199718196225192123304183159143658321568874537375308771673702186160939792503452377477014264424939738798145471763790906046551237764314552311385036160583031718138323806252164541623129340745533691103455252227301879727189063573694888452676552895952891674522723779138317182403384415077948892809513222866152930438459099614106610855121490034704512954678163588319671326393933782557153556624772474235423200048005404418696332332746826425021584829479535345950281644035687342830435824303587249957195897964194168245234764982612187297363728337480033224691036598938326503638011775258095970451232663863880451041555372095273905988228271429619980794068688531028029726331615708672021547232576639855209774486038219940104364386789312033235266673501557602688412273531608711312338642221232643825805952428322882518771281704070784132849676019051527544763353422138966561535625893217797792560801073034344077008254801966985728824767401548848373252283228366062789137122394098596844628999329487252575325521825338912310584896045993234939882617936301720920707347840197824240058806685783879776206843143395503524812884285215978144984289858787718345785898238380183915416085710355060761604993344786140221180435138627015121892509353733290639843788779878777113846084301723760465442012025206076687264337251170564947835050187281216564164343746281780557162635842320450867595313192157046551734995645053139157007708074733705161985981359510397592134886425620858266380449947985702415138080969446153120889900753571494551225720833824085578900415624304862455681970331259081747057121444500186960052772676894391599256604666571142089962954402246499870539435892456106985456149028103565121608365593995342073682836967753547957795066076794105963923577008990743664915209506534891206839351822444043114286799386682180592047117087386695830860638806364412829966559596838802529479380257673370599599194413948586287463426990797359279286101450024050895899716877480219070550042911503963092095327962027413375178776583344324158494339908393065312830284856495437692842472078282007759690688658743766029477869359476670572413250867320986533948528134912866130005807056922356841622445741036703622001637387032451977802892419212320274793338330672380523778920168569478415238185033150854715298746308996823767717199503320341056049773138390678574779446322206224903038050050244630472348477656769552470579531341003167480838571452997481248666334833641951098417452563009627072591288408249446796767979276563450651287442822915373609952197263925309955071908951536428883721239382649079540009631853494171765195426781159336476343322056447939465022838364909034700110178918636450908473982051587046291133788767961877805646928145519415097298394679622479507658782908354984163196391455913454767922477022440560435440039063939883538350570161515636041543445303922879099973548295416507499502338960327069170466352564028245794113839013170689884205230726187646623048741819972641803539878269250059491360508631598036003514965232176661389494237344657413738775156133597951053388616066984784954432294101717934893446029956819886362785297857401728511258936543861843538613593004196271579862101614434997007091626619531397639631478728504721078562256121784567273921670723853458611370737555462909736958135360682665957143503096058158438239066585486223825455922396200623207378278970974891739961519565010772408660421423294744299150337865897899275047109072717190780169519556159671548321962704502778369237532909615741310033806810873774756698988314008817351098882622475225126825591347514350850209198758414883351651836196082754661642521768028609515258963241991789310118542663470765465527975563033793417498324506408454511280240194877024043206030936918226224786315649457118993199586829105083028315325983697189936492982650992848866485844475658881045799258755332358044819601969485977495218449873571897001373282735902205906615158218810655458431106783521642784298610156398608681870617421633644238517291527323446302451357888068890157784490287950608953360614637472661454017648798786126100955903481346913681631762924738477963212276643818371355772961680785630654915891669450155073294015289553997968066601932465401711936504382176294551201766326452604314290630345402185246632645279325162728285149928725274146788791406939465806369185762634355824347173534979699377880831788213966537338643675187411410641967281981692528767364993057761263800576339821074850768738286743843585921197819772923020727634313167495267955780543405884985292502348291217292911790282705133650371477943003366252941311973620694718874748522454856165567085113555837955418064526011246793377928496143097170151170985460803942191099177389705391350609247552350788004512291697580005503048723727529961922569485886482341440407234315588668146002962780291689283191529530211463442919134720760270352941401807613549508629045425426532890561383740872357387964037530421808258751231567285157811581627674088658301517271688957410354694705614683585798759890171419382793246716862995759640445764211425335129949389075231295212033195999748254249377354014265456861125762586336091275800614821584341930266010306180014862553605484015734253610215730146315749934403183180649168153148960160514567303060066121657135489542187864180670755965099903655415407910356348400362366650307443287843704423800910557311922141214083619622486899841231381677063535448721640965659254354837238053382779568490773239466806565893122895554924303096883407633979909060894374563348066251588569636493347108197584921807702932912957402185031881555197280463548630845896876164635829605554501324743992088457914842926085120906676582724332597566551163879738614768496484621956640460979335101676531371987662195845750511579240606166816869718179230305027246653642137715696892390994326154275999421392901738474120382896836963202148721804852966951492174829687697177424133536746177839018839777601609039407241896208103665562570286859618449498009778658649373712091642208307371344588834564444127597278270095387536672120550289029448819915603727559477034461650972625854738621547263216749160746243245595499946753263580079250432110869833630586138370816209781379978609685681321760913478633506023551503921036260071158387505023816865834041790294417269840135206886691748489903213669213121918857591502951358370062557312049437080795005148311878995935392387156267224722278994400598340277686402083810712101552973555807875267402745999767754774139682313088731240603061558240195019626038894297834976049078544127494762223832803023482931067113199650144189139915697081785095015521872280978467110014227374154497590199357424135855884056650366469092718823426229851590868409387862563715185840382893348680127196967874693109070624535594862752211834276983356186265303469906894043099003041919082783153713895251773899618040208548820403952155759204974381801579838387968568010313561968307304209594440097378720367019429065049024194949713974793269138182074370445020472261006883837537101444770394665237601483032251063743464759610010364581261526459569436307885148324154370920027715944052580506068290172250742347051102804299876226242490525582960938642437801189965618440097945589258515334720048420204549053890522818512248541946053764449070187660273826220217926209067713962996001109685678747244876027281190214320984264023734714408155557090012470375778082102729851229540285856240232853683791996873791465562186464732977915473885677126156935836926082570679494612449584166689242496974482156810804940793646561087119966307548667785980723874567284469153654275371929759792836575605383996912894501909875200828081014113292949025494151097823851185990025831401331414484079955906812531453781496917593633050220281879990727041663621294329756551245212366328247894540834059046593667820283340038764327115465875091361916877483562430965156631638561443045204453326945019843990146333924412218157043416443145259857481719269631709647439020046252167099177314540455538813710635686519434377171867160046002585161883294592358085400149033358653046441619440684290887291626327270589500038831180442209395767884258891945839620139937927107547774654163897290639501193454728175344064202256001977129137368305093031549377605961216533844707668485957610275355380569270047444641505944353859534149303592008156702889689898594914140622327826870508560261075374660705221948548602505268830471400825415896228813328833218721024168527342153039299319725634273398039886788703329364012837764841680188950355026585596720743930079278570468711375936290840899331307682465264725487731862697611889687690883777393728291235427109912648229047000435940125400843302965228614427266585495862933109015767062368236778003406175727727873237295982628508052391399088550351830677830689943628589325977620239133696715046380007701980376086476604885600900798245294886803851312702099123919901561910624595551641038438040516433395989274807109339120792650090178084944320151827614351726802874961352527293240535069186334338376752608108957427226255467548919898865740746047714475674214642875785137152987757011871432073017308487056644224701708014442062698681260539364057232882882010522884358548642535348776023199330515916591447114730660459542486596461475948232159982245451602147623267968234398366824291610876840952595032832825366615653733677816409596493547800882510166638339616030984178712192976523732167866005603603021271603916463788762896206860050264514396082032706073997730270634623605683243873323739156756886223806819885664309690397565619418748761981439973916475271059914563652382734398228594867404272564348037098849421281759057894340158476616052458657906061942283452874411791824484037603344666485436012924589917354099750308378222023564150049015216757239397460176966213627040925291439213386053555977652374427848564020766150886187785190675172365791780895160206725341090045912422644863411899773776148784249943530895569659704807592882797203094465543628503995640785206288665066458851425464016244824264077663827974965873494012539019870363120943762276770587976979828246132460172924075424566067209761698728312646347467102380277491999159207414105679639050189684297655693108515695434206800702515084785664527563344023241642722207263360766646054337524864272421692749394283252316704814186720922111557166194330940799654893626386548699818489789641577740795313814955569678828953070678063776992498637040026782346677447916898653330181561253700235548326005403761877438970994881597021371625945864334601354532265930549783908092896183506098373781779669332721679241922213839478562149074751041541624718513331164328368264507287604958128237752539127079275510422987541815162047420609510955365728367815099583011247149643882212473687429685977261637363780719098995062184004471892800383988609513703767781426642585162371308158457312964363113373820431857826671294302565319345418867429628105641045007894857160284917764836606080459422684367477067428279114268413116298750692045012902095148926340214409031244002234781771380802906873415345590558007652635721418693736920826710259276652618762347764800946434292818855333200466137563174739228418728007217007118412523872338790407254145136586073216867170686523326453526571469856510929429751482491082394561427960033933826672394536816866237159532564407986863300815496777457266935267214418972224425479751971448345009005428047539071515225844182936530014576300841336110830503921256597075969998626087415307042045911368814301508408585021632361077262178868467416264017140799249957623370495236060290777320206897363962535356462780838369277204044013248994381239540682955862134262290361550822644100872138749964697006433725916920045129516153726245250438506783097742929137171138205538633754508591295917472310591207508458013943363178143060008029515943984436625853040428770834369952838054509103831282420948941504861521108247166697035029060755231780827608630659703205605598796586642475226276753278580694198472407731158408132966805000891275365149825587918380717670774197155556718798886119310720433923258083519009582152375470557571782159885982239496560295083821682871249619028597372854769220411798655214104613948712726507706060328549593647484148984888700634801201045104354315979207994504225525743102612376939284848886417344460750191708469517674464843860007543360721502499436185042086986873007358044118381380658089474757398526193575001450012518417639248421526721829743058299414493805733693495381441328830465740499149048573458692360314830393300433126652999843788885538550692406860603438362638395289558315946865954882839435350890815898573076223488439992148537862222629545295338978674004469277537729434828121765454606113436702748620302354695834630612590035202429774149763437483639353415994741105813296326676593522982269331814803320242850488012203958664243861976264329959681951884717407092184899393757646129886135162735590603330515117527508976017774286737572607276722840732768377453120618691741645614482034102050497465222615497881567287997207428504283495519887934065497833464811093804695434993394451455900229580593498310548147037907322633710182757310717136603527705027140530527193404741928375229867342360168268818648649298037797839391202354988670675797889619611682256033251815103764898274788453538806451054848888225539600465074836545260320508004833206057087478261566960097068616690046455025983302370594835191962049947238927910107439439974670725451992458637646085106837688713317448247883324485050898663945057681012852562260894076885644188181521399386654232048082791797191664859463099634075039757120862283184459187682784809109930648833322733168498931668070031339637598242703976338496378182555688374492432067102619560734043836005686091616916380073975220274810452808452753775781394643878229305792168784737192497853691881214581675629584336704406078323182250463237449512098437660801401690891611323720703681020351755541187362209144773253828401680455739496963012999502000853068045264004408952253619027681362430322401820179288726404225669972412598018821664519232548137326851506677000070046200103339368320343725092589340431501936742759327613006972553234025584758457470504079901913702054812894201733170787897336294885655802891208625560157538084396133748223959785194504324052038142703460048300700873518940915051868026636136680376424283976014756818553587856662281984276859406962440896773196051919290519258555456393767928145344421763409139093794030825984600461452754066751580270623206561279113476028936024808462076778025071647879413570334874669982955531200393513676507054746433650677032408836461451062966564966630874135626773422582745520476572972660896567307141657517851949750547959735764532656955763074553717116822558575349776711452026777245735467433125850269143030051641713254617349432454731645546435852400304670113425263747769831582884625067302472321720798944820572358662718898929896868001823103412056476660050525051654392825084654153768511982161088890639987457802936257469400629905588891554197278551788354803388588680133543943981773677299803929826581039938060972583664389479745777805432868750192235573682257733222276293367149491007387806302738557612225361443012741120545767624096437711116867960851782628763286852513341356187121024323007337761146320547716833598382880928976521589613676022975656695523546784800233832140837284674858044708238423438495225879986996322789772508564668108810420794967144328274345029996158069439555320353923377063436817568411376580882647469191429179042139345072161684055805112044650895002965271364150672843177207189637762494630632084465040502991469085132261474267155473794986443344328342046363502654365646232991067674154080934472898794297372908366053732634978845176827657442623014211993520703124734084635476388089051580388395808607547670675354497535766990206931764144551830386482344266790746044896607357147796474775593369284866402647990834938903948974631470210219522914897197765672128569393315321168702014849117721687941057974998691861714313678307488082484818049586582015912652728013250950064752498329307883232486014915629499082199526800712341155494581617552004153300705232702007126292135009216795784001106115915996953729512726375716441697124768465058868154059718733312497310161931750434881635977813722199834512279112325584961764384936971147411846747024844260832668307154865735646626076941817845097475216981765372704348734105652642206474811389102553170837007237733036485734603774787005504956715615736275858576265139844267017176206579773245581857308517489934737063050406127391856286585520176396664666520123754428253115879587694182950206163202075586033216068490140243579676339443654338696569748598592240989498275760583757095024984084575288844429986537175160526555453010455798025515422854890323619864894208057270414594778504105915142552891232735921760719421351684420218112268820819048259259693344847257348316687664851470212944905573134779120390445133668488296515541197056557266410483683665476788902574030929423315818874460297162688551587013681781924077955949166910394357895525643047375399398759163563801783400187264599819266965286417738742111670762592987102480686739161517345832263269255396460724010730913866038837516813733240414505401306715615589652671178246036425196594667448281108007273064204778186645174969239982825448422094637484034861365863017633413225127157141414359233952790547330138096565432877624890710893714761015407858413711262730380394290761770940951739264581771358303542801631749198498150116884782396592704284166445567403873109612643880463164426877937280308834861962140398523907011737027293824759159182740878450977276656226295422117863939990086540201455226109420051462592918566635215411525156303185035747000191031911421346051889952759190149219521708208984002139728855063354955108254720558823905336866456256004717309080125106365955439948910427620497689480926821455828290897471543367807473058904861535215444805791649762696115705018112112426481802674456141637786091423437279205734553639935388807755028307616010965888646499629679257807564980326397826817089382036541306241408343357563059593508492404265534563886968172618777669621710007644619513505600695518628847439131931860936469749609921280436682144302530905857559086270243555854351292254704617351198580793584396813164516401968518116951065066318409908549409953660792360780186198707706626116480238963251613859786468230210408095608392344960789329950977636872890491106788605666799925906309595402925691103276460897434570621350824587907537206759779613960657055312984916175123893805543201168649583283867354398241866690796497957536190104156471372013565075590219339949055717559134906282196625299770797457795869417563669107306046466232116156176711963005688935703850486935025296072111084919434834185292198397408815237903258306181682187142694136004135335191687719099488857319978318925661644000722131018465626138412357241876025581286534687405960379941245895904336024610347958724593721876809497627692979667671728228378297527821847292709646395502363621443261848277772476381870654661900977391295585395183466106892457407075768446093035550463815660996816758699575341555347498560088600879153055687314866907134263501153877764198664844449439809650263043357063265116883146940618755856814438878752822747344674592138227933853503444548572943876180673631402257940482881728502644668794499793903892111203286916809756199160261680014158848485521348374363114687749879070571904740807971731009769563836481017161745105868801314140951508341080918655576827758942603341904019639611266402337087949037395268709252444765304257936692676649920690760861617827214931331028831088158514469745721733830913948772847376545060927954672220806380776643636034062967809078973787529050403037157445513180259692703435207097010518324005106974381486018461166732946442457789495879451217248230535080082444046273704726556864736354509940643143848521418768249359445399645718956186074751893496380974288844628708770554663706217765019951762853438897510864108310753068942783999699571379925042726753757585971338268636357518898104887165185633556252519307118005460980822158035926840586844831876515185502887365805294354043296745909212407992415838430132049331810243083807859907567687756575305931608624794615054891842696845310656760757525787664947459126212821656790997230152131717431955498009707314411881710510655786581733801484870159330210589285501108266281046661493718581588075532683601672211411878675443747599944526931267443206937771888620444588656647317448467108291836178709547848958919357971355291224446356100449027856152121510388913131899715155025405449669615689926849947660556922198685362485315961427511859397961106894935450690096713642365101442931551649448931493255846078356606647956865759946467663058821344118419390372909648492193490306989370899223324115686945075236484921773972574689108337169231208919852312879025414492697504776495607937780972570464423858656140420288561714906091904159416394806203916933165374664982214518626107246121980311461157007081782485521574106844557376652629666097070810854979842887427906742288300872057112907130886400054632612611153246449107102822480567090485495077200190232799775458401398747940076482357341413898260583637793335284405461947835881460950116048001650781786376084312357752390397066792463091814210852096435542459212005273241271252614662944087454312497867513151950841599872431912479428646113700390263335910735044984622966818332049242559578362231662397096953841524430040591294915314208830660215612825122216849516110181931831517023554444226005012131700085719249479086208645983475778840876043169088218298795258335568332506063109663554611248930235430263973744978488143794040283551164688669261533109133636398230131789278195041996655216998329742754916086016078029687744332837823378376243850376788515493787456183304564521267761024938420752561219057898376523242384108834778575873275914198514586937334039363102883270863121376513256107879336106469820596432172856999789743555723348007509054056950583739459429014949816866588610696550809697025766287810740783270496672796415827057038363056112720826087163150063358207451748119793362779026926217523735197455923501239998543356756458614427694119725843755618818349791312886914023859670026754036211073138315508634291786269777521085781300835161523185138058306478962301039553251359541007207886835930585301110436388422053954531004630095061664409034328127699102213214723597623485336809719018170295716864899288793414023478241366034795278777061756432685248201677232491779768649007966045681267427074618681797618912121660489747197959947383694237674697639310206212408541831012369528563035532060493394500939266213331861957069439122911895386309149976425989366397238824920615996423595605518971512743940639986653793520326476784090843966366703001563783118949236001625554586645170515723975715923381051712796858446894106071622205224583692574438907386069895911090034192601493400987905510467512441566908613605727068373068971436060920624598772956529290030224685654239988998516230687148565836662738803751103991725578260848026834764271255684465109697068664169767988742180494369786590551209214990605165748999383046215181743084879377601353821720535317507259888766798982359434310779962356760476670490809516958642018340889592971043308677372570285582797494222494193811365473248272753217178996325486663993878092154534620753364790159072342635608529131432993608100825878828191838318011464573529376526132919541517148092632423565619157024624615604775670270570172423063393533003222333341271639943252707947616687027481501970423854051717005918510066196830194268339307206131652800841002004992760414690900828856975094756012797015968242754787043384126522084493345941890415041835000040745879800661993564002479809886777437444211566657952780737915247477440592689705554911528416691632201374110824371695398935852018899902967501652038234463728695586080671435587996785443393985628072626016023124548408970430433065748652783561362008751396806896162193795363224436473034301833817535102025599476819798086754752808114647564633863727082142722241616397067229968389607879516914651153267922491665200829607316786462900837322424579298453415913152406307289782996216268504617973707659634039242932441343459487173535437817048908924156213288000973165053486380201181756551289578386807006239661173634049383793801252548712087003299159291558687310439325924895747544118964588008504990518860284657608829982362738825888492355759229446677391446916174397189130968833381513794332864364584032961914131767913383458295975777000207877945129613379237666927026036909666760773864891767055386025283996951549496821220892561288789051416908925355931235574531192395338695077456872893288461617345035566501423440538857716346276810371642115165203854919406426828564650750476772163461620576728870229542043385788381302135891036108774820264625254031724875358347388218506908241884263501130775610620253547363445092781614128029813610320241695671510738306321821442714313681108303007641831504277112375809424303617349339841864624868789221619458069758538116593317035466761122697610568109825311481371114624480454634587672170982735041138340659946698119354126603911656492151269482351520130703042166422492679046011381982196043024154230009790918127434476933251646198689080796580814784463516427066080134674248912989720462593220335354902184776342957497970130118973613937982127180735503915493484459707697909311321655792939343732205619976194188339575895552661947876171644547551043846182875822443765174848664576093483765379413440359330986030651012500054931464125657764857618478581020379387811423156498797849182747671896689340139361279226331283291631285328572223913387117088856621136645791195665458321746120339028730917930725589132837535749605060802472503750703863300917617114742625175715744236812475867715164230863465752228580073273560866778652546855466830071343981671455747689151438074837500251857267739840028191856553391960646624244931263240580810266683076238106781517048018879091657377811708797939206170009041446504563071647658532503326448857256265609941309625886521788885172592952391659396700644206593528500850364167741275852411760521477819245931860242473033082893716674361501896378234170773978619529522460692930570581929488498767734890142235590931897539989328794072132041764549169327374364415919180685773935152079859148595025536122583261680288225854052490804933326659491574566176336095614137732010223222743645661237186075275175844052802963261883469044569244425426600773249067232284962837828274868038244730794155972236367699519711674962949246201623212372783795091391721636754132616558873336595657728674758835186196063145642883706451061558368896733604116127625681590614639709328662612311147014111857790408080562298629926174301639042898740513658365932495947376931713358250732788185693035150622255041819463082237388634222995510063413580983005968448180432384303414632739850657066621410227963173675274951431493955880783754186621217085135359062336114574013369038248184522171346251990937178307217223064521927598930705658264357159074068377470621350339863180164043056740441088667917800958799605034252024202712601948551944616369207228438772242016951452821837234711711851487899952837863149232515930631160014266595620958417133873241611834001185046855746446516785957332488003050956420395700965017008852803249552849961798160902989715732348603834146707361622987062473809713803510294970484610250191897414935917790611578316411184517694152083448209818879729438876395146731423985064479998715052420452367565152082057420397039552388333596438738692528836360829916502557674807843126523315031133529349896671867186131435994888504277045997732431669375751255965558068648156451402472276995880329064372314129553163719553596299157592703421615742030285688620724496149253298627974489379520487879401225430934587504869770808017280365253561747005367623929045179905286997026756497684012430773722927347456590504120794215349072201779647651631236387868374391331594436569843525699838146133842701391810328428532208500658628312480243789134276028531187630766945615099368710804708666217180253030879904601262782236884015021223043394622806343719289054992661898271246645096426313397472897991635521718464352419603969606136934941039786049171629755786876227695103717325323722891503677789724576163955381815297834685275791350353654651916121148575244578278276333051560057732079000998377715878693935403488140127585318814403045556031174003750330659605502255782066804684113728970277635073568230969439377917595829034611365702196904889998176857990511460894487364320178932448973206856529945140593285255422869224548522105583463084792688930390875188500224687374431595631196816909724289983559557126813730248277937145931852631142687281833914551712863930743877505676801476367198788442372083871401466930669431506223133753517436850967386045656881645461318825907445077648722657818643168607430565470366978187939080532443269592824173587059832314611723537965383311471940418850481551404723064294889117507106305267377921825202996685994753664124653073372866393109844970776769739802428267361539767042208466440892687329056193672799488090477454918409243033942283365557789913196814105275995098665529516806829158190066956004882398648462064761914504265390680893629075107898985741678952137203268244881905099135218812340493018532603118080468787242552402087233810096039133284461150697345373936483611529763086607318678030846805712743022769268685202793404972942096421317442257297298989941808106060830292010871255930320660319640283051140619656768251266013296588884361555831976663245533922675980449760652725862894566754697718811639680721860663418796867470518918345524316351618145315894317612226973475101233283937708353200787670000774327450785863918570041011679633468149197831415702034730607419991912319917495632646483857851677870491425740085327025964197892782707733872666209471529975876215567659831700843547030700966261027875465885484923695044193854460484226646923045136738217280780556073176865052672659390943449794643320473946314114121989728943951715239051332777795186637176844429919220783199288462917612636687503005319667582077974580031486632191355894849142711277497326111236418573084231820225175468987134773755715897993688550823683011630440067028565099431650775512961122818753617915294453560252117977110307968519132288389874969659704128439690664860774860328904542402093880567317677130734320608301913065890678134288640608031506067279514876703135051316182235403692312704093828804483718556922689390149277840160691595595216146692972157348457044649489629473478661367186692148688325741440696583918872636230124945521718686815228867964698123820576008127048535746807084527477640280918644754939848467868398611496673241574120967013741974274515077201001510305450820637023287102293168732101663481242314429947653647286987042436324731187878691614034742690329797818798659218374443591452674358554630444982905592971622804039655205341400898851641137394563453365601573030678445947063323246498768494839462491673609818748894502823152580367039389202271929435808876779919293266143851740415539429399632670885368343252535955245403376839357883118104549433160071885376786904320886207195265384636914348221906732070582817959546274654634253443540990944172269763493916980248227973284767644406557703204616079776796882175370235538803694160409569075328784419967861962980667334769689321047186102031705325345860423544113623401829060767835382615929707192325415413850679017303064258961616139014744506589209996788721642833296354433497793377945920799216171150170830963929392131178520967838027470528874287454840376661501201925599165941019635599313018303364271434176685327680913461887974372897662263300216422778675723687767540922363235140538598349254828480753076901570233435062779634973054359932459182022902429070784545494044790085168745907889157368413266397928943958750441473433965421660581391334197665390466509605920450071404686739526954433742062130315006787709584841905118123020100500533596425465092626750512178007375885605486841248269438132170886529677678372875989055523237150236711239919873177124687662809504108773254733558366277686140702811955290856947026322134061302583108422121074214035648129233041846581037647265840837413695488562030917017175315053856764484561926206720932048932942473868311825062700060757452711503676139827441082429966541146782242741733285989050701872259346428136804654491560306425805666596439148937831691065157643688890791044337152789468002329454870656187322352402651838356845659071841008205700808064194708383562343893462007424628255824703222030200732383712632657486478211549256981461580324298775954694700904772214824460170767857903354310846109429755659785895224565236574818192917906791939096482958962329884965911485869347040461714426919129422826605248574966203036434564094777837624595642049131420563119469471177635527344948145278693100480869481493631110942513687355585176149277725320976205478094931857450070178010312201461930395929014485304974342319351849988666827565804468684277938189195066169693366501155427013264523666086610203266017061267413676054612080100060743090702099776550045741199023486627000072922323334872040175005314711527087419429057235523036037936024789688179611709735232420881776229839567694996471800856457883176632602704306189595777219609863408832597777965962449727578502824851362604175604408589148641113834504392552786756169532045089772368874127878601907048517156435682792652580069245939000957136129851724659498513515385812550825739933128011337704095855232637668421835942721000694684355047636470349889551947364146092503667629713184596677762518990858093964906166829747255410664524528058627524827209627732830923229648292414289451456714161730347027800890466874558470671275029172153734018545654418660493671544807131687787209657454633078633165486366263338980320960574834608841626839942678983588234748557878219392634028973555263013280203802090672870842261439888107105630160228243917725420744197099364216952251531806220902779251186647515124753021417887133743138960775721089865123450125906754566351948375242165175275700448608532940577655559569405467243473755457705181282672163935042377936491816931562764218141272176379487758939531965192969980393801137405396336276419810630456818865492611819350879303158256967640242683775805432276148078877941686265946858556009961647409176063350904095066966312654715326646892481069105784026573790867203111567540578788237331296447171400760369843276756673805233136899764977769941481703145548134513528301348517512772440881476840659254830244528384664042895071172537439809961745804966783196840920829926912212442033952762462745971709166348386594982851364775036788799910157193291389507625820968000707105732396155973263781634396957310348718405275771494275085325582818644482960696294248527087766081442373683421923528094718172856959563779254057667922458176172883599289780640820286033201357386855151710952540730424756973571547916315346701724258259631946205790565658009789108411162708451166222098114735575678627177850934611384433970751287806209044349739372357134952021771029617218379733226379854264787187895390008348759736274348969403067202144723499627855308045212844596179422683506365830617829496764275148881308048185550555871331411237165074390494907782556818597097891646857216608612560504036602317841277533577942240958592300259477486470024892124854158410017407804152425324814877149691085222307616569833050186692830226305565770792951036893643544672757918866679090724370082272803997995042927884967092117808764959974053457656079074852359848350445209629668683749508196567999045076633033707132412153624158124564786918560228020747958073800237321725435522592430286181438832824339113713034558694992858577234588352796619155084862251080932447137982431477796956534045722588841690211451774651461888307695888852876954553377910051349880259456875766832257223148613793350642095334741010315545411244882785504804448184912437811064135483135379636071018898957242529998790535222871424218492435051982044529955644361900394675561606922715953013913478777319540261211820652732280994990521946275008652712488838028387464792869678143925904562402658709193633014269823214434408070573720664320143620869710803284453840145212681269534592426894971041833813228761158183833560809877739044295864843277825416475278877851207689647046431211517667271420164038609249081816404171719110805733649946740869256140298225916474810217546712987591153761955919698136907598673992599988465220333831187677288243411471770742636027971541373346260362510030595397415092959953774430038937079266640166275521343012760110852000768686314670297463282175676605683988069988900923561247505209912160683301282706740809822153311001881370419768706879540244769593190882080654128958361535273260966543702470531737488011461438322583561327533527222006763798429633624814996649810961315041854117288169355347475030745160017266823983073879420422253448387443558961894313251543525823397014689290031477642558352749300477656677956964535496688541223432223609295205232567908968977735099290174164059133273516422021779818298873840952250575837544380713231035080049450982678940942420699672932597433289926963014360715181591879245175953570367857544307771298919538719941156156655771424503710037001539526450391172825695170884896818598937088275485544399981464117042546364712077510636094488325667371491096251849526348975533116175460534530202056325365752162069003655217805474646398967295887138377947401181706491609834060387902967132887375294486871668651538732762319009137428107327314423930806131154913408396829086059904583813907344290096950067102186486631847358498063380803305091724811704352818799166919282969366959752629027430747320622574373302067555385673731515597283634658374422685699262432597638614550519976213768093642475836077669759841046580605487111407736719676408462448447562987565917413908646963576523060852134142507527682524482046834749741510412357940986918838449422293116535064703086768493592229207154623854353519295298591741645199861163732234607078773284936580245869179790946595804565473107683159743415875769063961850163626240614362898870351521365481568745939373759030027398037588559648074814623094049253526062735934916959602604221283897460402927687760407405372275328220225613740681085192592105824438844670350475134305803396839969248427333555234646674348304946341090338760209147000429797374422050323981317104826905971943537819479052425061155576327044881224782942014141438482517323276213628945186251755909378853332526812623837380373224796673938917644325914796104518935116829719919545150159037866829398387158282930893013109338570458333606606823783129082349983016605687460935082350745609033319202154491540553686498803342240723154763885836576072130711315498676584566728770519064756476203075322856550143660302307678663827342200488067950518933453206451075567484095236759629185410268858239157811381243323329750257735663000352871754888520786711148289321909968396057918595684702629575169036756877699846327788624955692512400472076259445110674961162244362636082938990289934938363465304753588954829513517371822438480785631834375133609818023486231947537696076518039568709383113987425337949140276191941771889376969942974998798297099157073338355873081540802576596091474613757583655128008491295133384391752180974902985511788650852577244463857066449453573514205071499076666950744127649913104356358669489918561776359096543984583499759673409689153496603834196972749017153714573909683716041211095749239516306202592741824627832283598918204347608483268251252422435196851389709599977275894153190976976615352364305012303284042922061842753672599437146206397832377378283902851291227575078586646597551996681710881429064042223645053589252889100801632155223578393593908725729157510489015512669260383486145735827256232501932449934837982765644235020711214511466649316155224707364668295933179600613761723844823470079197145206132862662524714333929750702106443685371400535833494790104463873002584259268811706687921260345749038012910195805633780167429117060743974440097188890426546244278072865843429910451179414898272849227506398265334021534091475623058531794055833677399968682697368813030650528057760717468074499566756126764853822302597130638074487976472945079655149152158643653620074477745211542452945815940985727574010241404215253923524986285322121350797352509412225570617256116851841297360202654684441101316309586535820672125235487492127303353487397496197348832560841224234512540557675587293103353838036224827111961265269496924759552245747767319765785528391905277251136027659981730199547042068543164180522273716479335206312757442125108295552297138825897945431111553689903326540633511424148878397533640471975778284249654575490268117299867535853664066495649553466286065346627819270349909564206943900587726091308169868337952893786397064470785210628189530454631301761934781014156788685030217373156300550616353256676363034160473739855277756857648225029376850494299629508427251631917457631614140571406774533028871967483010538965640537092273557574561934601368105291683865526929478580585536925534178273660388523707086418724018745242774084202538969522916783069724991378059043623808474262242516956286319226325095102010499671323228555483732770668651731342612131778729163654822373480647905004814128348954572563317396953290528829210773602576853119056846352023188718660198897074488868012133153356884749438189511923169838049316888172679194756479295227073104181532236337394191810173090436760388524248996651380166450430395972621120198732161718187058211146639718464595290105916664037587492228239036590729571758249862730525834157991652752138844276068033515179408958307462294790094744267836747139581080355802488869562118081955039755408622652585267748693806611990341263822148178281230326489289703378421498149200023033715363599112093556279691218780125188941663867042788081665339240440359953935595552956955795450988198104381856717170468726319420235963803348144912436943956250219576444373336748314298285840442256339218175365274913412946711535653263018068946554004134424847545111153431419536218519305047350126893257184415336092989688045033927305060063138849205941306886259821269137118761582372850846278507086916412135472949818635049623517060650672140075458344729147585716294243122426345562265619100758956328975080818919476497981120218117171865761421899352755944599197600509101626576689737416339029880782205544958287697582003320066527814122098617731404116822051112516584511069151442580938795932137300975963078803701782247108889091037821111105620308640550459690062689371276729469909639325000211269447754823248573571724948077631799171593636510339143611613574190014985077084715620894926461339409135355916971176950090137851491868349221790805153049754077351009947737678224425037449136452993931257676978421284130130517410620534409169057758968014272528088962966732048113949564213044669704014012891903697926825230037981814474997283288903605593017501710072357965676634914212660838272634491744069524188590187044853608924656414873404993118306620273979370684379104768417163781659875934274503463527547757863926818673043833493404398443646264521904121405113770823557176838867846649074410816335292774327050861323322511714492963070726751417526268530132672881409224409383125427526071467105982412517978397141562538527138575838682121704934267184754366699063482619308732243346227204599137147246279922404084369227325641102404383247456404846941348374578665937915251217698105007200474729056356011501643271929633816177638978333437666716427628242879321973683404275638859845441909873424644984542550146767611527653876499521213987598275696290027907449858212636051293171252646887558696493504932249774513769931194832813912150762354443961535668298173239632252656806444089086201470098379392698099883383818195387466677395557946284929567439780681645941064640999584656293687964017934078440537803784836648152158914863338021971935364397434738169107347050876589678989652412570830404628631753698175396416128958613212145630191249556928316622262716026120922232359597814418160113918382481106246946167879778411960045446005442133278316463921939510200496296322330826836262725701236275581401262843314083742295271882376729673560286097708626614047136348660008656326755455853038053138152482626481524182832484669909851273093984995214672702683463173253413394743931405793856879790694140199368175589129388434597444170577155470443260982838835792535635640558633749145241536685664664376679421570619694745131839249391017902212132974373547181344220175086801075427408999827006483312361293982658981213682789665653888629195828481486469737585546683087026964639777207914097527439548163897471512109555465981605079653112480796856755361563475814392715009692136555571427210549989091153853999941102719870042451595864926884784793114254052344299417390403253351825739915519523872115523771410519845946876893486251686116405176386163418480499297568092748130709190594599934177103222809723009565638400355123474256958719192581586294308127053890380569612269618751297524132780485031904336250931226895495617141296754829727891495161995372028406112804688118201017613273193084276627974161934135569808692189225157458343110251405781139753833951282838297239014639179756594717056353422323328701955725561032203872382471540367641289640287200370456160765804106846862758732853826738092604780439816979434770274801623274361717765341067525856259839866311593847182072543797911942670713800468382230356535500030620106567707463028710665162785356047317148448039244124900789649067372344457723260498270014050277630837936096922161704528089181740003428640118019705330732443521401078841854143129274062764461489215787159513629181135053217023357382989254329913469011355239546442447285781593437676002142966754108682399515750533514501915231631774093147877522882771230412848835911906185476167336058222219217463510411710429666416660887987855805681746076822164436919255545728942095886063676725105996595540132676435283438858610974080501210513077474617929397920203546978180056362267236510482002099743223164336915517256805308338860126651739710324195979187452920336511496322322586611549073910903393872877144235035890208080910337356583370630986433631446081665914348184017585367984232579281008104007163267880426192072212575281202078239564806866102046717193978532996745662477636366563289923669282431275279437297807608346860512867322800188764206062174366487019542608106297379729032954901098675061524882606500542620291561120269929477893537294322042652207277483369334122042589500684034073281866877108469595975497017573353314135450823858638664300970061006142558601862382439427945751383252602855701291769172406102508692592451441942894753655570147015717075992116614355800023452776582105116656462497961688480084765220367216006088518928092514153759595127736739677079141134566677070677541883939776984036898770189139357321699305904552936419503661838991293423506370385267167518748377892821552959223296570601618548550342752643366782601220863520062293116908857069878397259449101865533827852503012883177018616970378728304069372152821987257267371056902910162122931960874690736777244881400254340865762168439932721054416635926183568383066880104530696567914175770495217458096054413685215571422981547370698507910042372295529539237934136715148721581759993606677540926428300321369123356478059277283283630899746053142185626747437042570015534885943699034133806124961293840548135114567507653529377679342439512450640365212700165004404863534821333992892903990162652732629021438040229974328569126586389754417942095286838125118713955172997281717345688112325750670512365914854218088630057688799264807552635301041334928246536649125913498123117840113489270973963974406377536082210203689486994865614010525543867097938980851879234928243392749423225568585976723908369006071876806293621535042077692711370690619198402876950888638111805779410558817237653873035326315124476541367910522730377863824327854610443389976063512699847133995330309182037978382150020647144848410629375045107098583655461264292556841325356255569051805259903840019627590299843883436463284151218223079697151804440304998254193727773244983252095209341797799412680443115805367039357163982437522755593088645156809489693866569575526433559357203885997995319199497618987459188545767405692952266839532944291333843507662105127305127694510681273557936590694962622482662598652726938767383234956959720760905988886498518071443409636225635407225636514466707058444932878645425223762613193144766279220920613245662907874179774076768601757921925772581848237050600394846601644882762623742576287090401551167412689989504601458982755579610423585451001375975808782206243694747358757060302775203933788857862774643502433541529202918793956995226226204745304912708154721367444836760495615628322357587624605007644826585131100980019518138527699268517905686109382623757386676698234993466178992509072588968929065695481684826636747610733753234372675428500594547509626443278747441344768148073248271489202205248134891842133979976932614185960917792866932068052372616371601407091891492075986305997594711346575549296806324852494713956449504002404626285479230892752340778897508841960799829451387357272672025931974504392882031967226703340596073921828094335705137772016247484404410369519828150756980282431893180657756471932822159192388523818469085479078114806187758796979268369594453636327133784577769220675142327257540847980117894573874215359715126187747538702813142114568187538589898582943632692907324772325376222872497494772821790866531125108398240762967495200788374345371903015968488079516490627027833830948352782645944986804276823662852031491464145035664993818492990328227559112229400528131616345784780921169123673185475140361839251760971255425072653007207604162803671496259597553785530056216308238318903108673206294013382463336492048788214481376235109437016514245259468650508476362494630150396376367858881145962349581647630691786319883863409376902295538181848069010543712690572553317490967959224683683100357926054584666334931482072866647194962050492935526713814462931112018231666287616867356624350581936785387477754497353796188173513560060090597323664693312944493858641414642522796716567963316587426328371365632642322777191344025691147317028847887070665276711153507847740423568617997387982228316823757402293410431696876004867914373320869120381062557317101038863513681987523948799970859805171562642899675874268999181385885391916063690945088387248107834408037207241589286341205552606651342830681496635246115326195992316554608950374534962706704736725015170136113105546046629934643408681631955271189594636934961325291621207520150365906544586966025008328065810908819079566289571255908507608664686079865973740363540180646831379043680339925549942045635669316261248029942613152424915063150557960458403230366639633488486482692397006132696259228279117207640690205789255281434171338679302688673413173604359033475936053706172018113946236148625780889149370101280483342021461598610310679775333996093518731669806572530248252472704953504250499119063716703546745832506284024764946235880235814319907696938629551124071711553825866952334898298274857699122741411047048525124953796644786734214902609113179917613432928227141471669773628750904804099602045082212226102312876840830757683701206714336853481022936552227188105855997045591247107759142200042554774365124574033967246190399419078139690820410501694565948614993721509623026113059789084207810660113535200939718901702449489005809362719236697122469615154107345030466853263512608141932565886771382564995607079436472714730090391464151288897741455433538093367286353573913614697521178035348185287143305067265921134053617479030200546958393703932968603608634314063391631682219541423178334586965712693346263813108666402717063919436386366697713482734156317677056862171562250362655686736351797351882152597653285752457896884120659445483135948408387517019366572063518697162152837778906996564005543689185696521501611974372046998037486673535234080995469273989842277163130411904349939643530975669907342834741959745863224789691843342562976139285813486076258012567704816135344565144237565122220548246500903353258083991951394609877688471632317014900785603681578967031541981972633802804886556169619801388433080322376631586367139139568381359106104317139679955362228992978847317259940398107623361871120884276081516248150392732644538128539907638867050965235511904011309438281588380356464589168899054429754332359269912998482706381112980112702243225147899144973269462182561103864059114933697755773908319781802315386627356308009295877111570067494211177731491014282653106590164692299235585683358941655644257716946778920246059992945012578277073369954874757445427520901061650112056358160881806583590789119765177218008833140111623888291628406363696819250258363404486966649801490877543726421917709397980895607378689222188049021721256674173469098240948935456653783042721393230994405064395809391157624949626671078658875259486568659124396063470881730489449929753169165738781087855170856238419570260022219286959468663550668358457097417820041432587450134113214953509255782788656396632834964575522034148383446457435877784968618217843085421786025959894291419004150077745484214302061636350837017382991945246384448399451666867856651362989981856418862580834982513787567004806656265210648219701239339458248253048097552992046547195473912571786999313099169693875676793125208169544503320833484051216386818996707713958714897416236511268447963034557672785376906223089620663709846793236049211294996013151184237114229842124576676851310881317114807905909448590248152622841011732848159546777103506917321026623475226633075409664577845883652084925996501587906095250731164538662786204414022685747349746963603062603523085357646363507981890525008911029478588237425433778130490271426321404916481518949690074718868480110164905024152843466817729067305640067104734857392955050645445644837025391407365837408144095143473114428653907368055965143706132458421418170200534036608580592238281727921851420804492623342779879033841125709488475899572746469630631065330022544650952906834611144537449307982055403993850276330603203018364786172261782204231123853415116468048137010627375135013584724372135995771013244350817417244721562010946660542331340038775884142975051555703965330266206544063904281148954582325893778828599331065244619795471954034108217594675254798537178269061349810050299541574918469026912871501424252302478068116383015219005256516588245210004208485996067649667477949452815427103585871206345691331982479567853116274252505668607380587573602407448792084010488505333853464652593389199028702199041557733814938689832045747690015611969377281815715306032965402212161648425205704438176238179406968486567520317420233678192326551277145333760414443700375131695867940544863773734280691913682612417164067310194352683021028962418945695252121156071287757713585443474624634237630825124605145031186569597785361362034636116460849403619679126349735043289821936610543183350906598387984303352942597542287806989354014668549885525043313434024145784034429126267521482782572268719565674383799150150679985979943289714930997358110588816483025836210361616185010095638409905500845266230483869250468652504211303783272126499415034397307071284177160942832410484291160438189536789685746186918534862072119588142607334846085320717328757964606796449169892375144644675498033391532019114426979208600084814036580727011485652240874083686694466721520605734207036760272138116964592193623159273380358029777621567197611965725256889334229635746267824039629247225526610391803813748813312039829266466498761123894832956996440603992981902280813430013707003890044542759385888730146958144977782494332005400836614398248109524357361995944808824854129050044058450603218383576152662072713635190150047059347460834756552908716085183660597391241468780337392237641945817317011306997510043668040001746818729810311597667455616089821004517022864739427034163484264586974140814183104987923038481657598947511145972991310040491697171398470248951385376133412674528854514259427427598210766013904246515040308298945512042192935781149334265101197220456177563452714126290755443848709658784029386226239539215577698812499468179579531805277132124698148703496564879848245814895009833199003816010911771714658773777240811025270480819364357416091188901163130169951047447154705233595758455235689616805113969248202199951463967835112882410309315939667334488585799007518147222926702666115435286588247748749819261102831364199823681086085885373428670370061134927893234453735839956215304722714054347043379333640569421332377188924958036119733678027919670910492917594183356987845696305833864513648088197885804543887407419164708493899661890275630691797193328574788866937760648425255976874484812994924255808457494896463453002164447159050695463318681607171377262662384393994359707447126122936008054114538011145288318761062573937697306796417207836319933237462363771418475284692104288610333606373615785855521893368235806531717613574811789337910903584422082635105470586801342591508830054600115877176606492216933570240521942572557931780117099868853121887926862741556754136551939894107459091613571991849808139922366991556727817407408416142913775625659030420518756118497520376759775954781535605106849513531282254411313738734747002253113070650364091684993009773706938267904323937490307652129372273398897048161814838568976573739846324596788626511923602882488561512963471780790857017441553616422458366901254277806420603632872991369252589615508247228993356217636926362102049393200667274323632427118636264033568060920010540006802752467019208907182029628240001378608621907871282943717830858325917022455922829161843575150713108305891126542144247750175356431959646463687697390510429834548802831634214267569724745906151266375982982206225615436427123792451194217597957820482075216922144369862672149111955833350232653283082179212458004214133303289140235490410928254326841418095353766777633875903027415871414069896964221464449859032824367212223211963746218239251394104283667870644311133449169650447864729553848057237535923870503925722860210673112209180037496642279454939112464563110627852301328121017197178976943926056259455890354265727683247844310449089741483463065508080787074458841226245773734947924396114873667477494307722845663780478680591309035492897547653013355272903773756622502354656660383961376254764658608708560979038666586624115515261848193618669826018451407590505405170558037076847195385179883898850203350704695886033491916194856462411753308377638341130139198561533410864463016463355824604400015428238528362212399678211851048386088089004848683002480720037843355662485812577509313053831735931288810110312730556554447992809717585816811612289354138973338925965280244825408494074192457987423698640574138312814694400191840248504193224717940031951344161746765778515530765902896125755416760768055081899730704429266530927056263727151202367254007058272406773422175801903508688543106674117803567269712567559368157777815080384999717417972865577160684012838900181925837091607584513522310085432572054967988966979464338733923868476905741758089766758357538420102618105624054156818759159808266786381588475522444121365896889644262747533161433959255959871034283591176931108643277812103342442334031096508283255137521240218636054579993789721126578483219576798498584135856718789247282515383635791403721014366206847634943035272699571200758332449695986620611316217925748551353382683166101845636087666122419485737100605663105423853349167088382145548315784414633054259933098323116328015154542178437651740582353411597863735875937370825721012953678205624586490026934440420353139874617149360593598911698429623931733249067401781269337199473068955599274885125290671090309537311455556667064427629135778117885902417495364147459631441241181744370329332178169918106550250200547468310234063114498664230459361211898649686815419648005049231468817196274280899847073875808453606417810153026280863685815018100686998652642570562251212968334375425566337582397802685780064679199844731830654349507429086305823200606493396749162394066118362703511739711003488798975945849873263847903191156592464521839716689572793604346306857620932792281906349540119628122132516201938857898814272222508953475209663338650793232592020685593350303704135199374868532326987128838901766871778754619691135445370129949534688379151207582206752175371573466972392060806103069388255643709407962409258657240674323871361554342747131135952830755371489489018881270124053237562276602643104028824779371717206902990843099521687726142556738549622090129068505459534902059182233150313719820527263573494355079367898620081659604866262534623194603459510064720637048499438145193550748735940620292132233434346563598707022570230996816006689487978506935125984295111490697048859406082564738778477695205587547119850303089814048822211498863197581230088652901415474557633997940323171052651308783847505724444000843324586578506951777793881525878214864388574229032474103232279863987613050526685513113766716637060012646088812890054251933154742162591213429057963413930236951834530424317112311025994882726973324563192685083756769791066744840922108808133231766026981826199462346563573699795388064708606026415538742536445881609533824118820410760240578723866607120116828067849483206743752917101455922914027029199563812263046743466964867457448110010268296038174512172102802626780647895816818516211568379475994565943829786224279609426475687857362618229849711895112436481109052249275631601290187451105376068591432867198929612162923393311737607488154127394324061837797643399762103311669308118040139721986060381788413083835514908417306231827863564970797132065387858510285513261449694939356101368318891841948053290485119519946428912410582757853005914106811820601077817676755648342345658202951361502004187756607508435270400031504940068093836637423604234508147117373872830471547214094646728526875672217478810072267145798820614145165948041889835585180070134841488194341968781176199234735976053108670100184005383600684123443211547533371662279046673694767088979138371441340792539726147442484590566629871570932707945109507155917893815227267246619265851741520739907286199799838714119397072269200787995528345141773301073443138168687239157878725213940058892687023092115754405186910241373942508235505876894794954055419229194859465739399089753175890385028950989922859170199939306247588853106476935106724771669870615556738748284829320883842733978807690556650002532116334130634090597404561160997149173620100200784852506445988388898476630199288431877347090799371402066550330798111117082977123361636928644346671540287457795980494063026719913286764961120003671711032756629410543029686326804980998710199619189566706574756743194549003131639957789493830027210556181697304036929865730274483004391095435474207203283336776510886322561330512017044493773513191597052508454387325993894951942283964192601254912776182833548212921577565051267780936034375141018715376992350620027226731517559224260729517703266358692288770654297303195462862511459903493050474775262514947800022553244585497657359204337109255320777343074599297633739474992745750273418815825336555737617865539971451041095523005798333221751522638717290404305892892236258528675693038079644139521060414065438384192145579020655179569482299176011920929328148693947274458527727178589707925048816911227991109764990233050533102301166368969184294343427455995511789157629074804200129955737131155847895682690613206068839636971403288404581056997258674108510725683002423491682334945676993605902552034768009118013822631495670600658649415735888138789718904527103419286888455581015012919885616965224285448258555990276634079136896421725228355250547103297008923225607707718575218818875301156466356917850987818094123382753183079967538899036026356109303839321407335331603132923001051314548991891334441262462849261130099851640583825182945491444537487090519594209705240205515000802760886252608755986655222008903609013159691409742474625012145292585130919766399309955790330643239765137098385880024434020746812300519343394247681068361529831302240304905624489270185397213707716337525684562868787544334083426349939650156651343302167046868363704404855935334451050933845299917146013265319070744494500771534969887754825907686395155782116180524413356135785115181433667462415329920872180191908667577020709472576715183809064526783939501203322358883169139681397925153362689203103765149103612596834436380103712881462856410897046123522540717423052027997597435374057073505723153427900231620610027392633461764887517064224770999634933205682355212802344162275939921267993580289063973793961374749038086238049285216884644716159413550342635137553444584643711075579131087498126041489579171556102197678597305248028629095678309225628134800198272811834766237983549298042154468348573802127096479748771545477828352224790703944997881395334990164825627716142222652976584007899251521743565101596789661879407402751306198966164614282393610281247718066304676151444973714033860044389961803200534595314422267231626589451896375465739893841360559568578671300748898610230811390738629003009342999437387507489275546820001733706231667929016878419848659674508171313866388653543622590175676926020700181366399975883255034385271465792083367624560336809346091029125555348664570205520473709879783295701371720831804546115363376611620716822928854891184230270662636596227351669022377301530676752137405561869802840964238667603108101465685113671756193314553180754828343839449671832206649789929718728825556727219038297665163305828588503501292334007856398810020976519976503217440879103628193957939208052718625746287508776324150798050955963632794048648931151217173025683843224095751783177584256227631044929043473423300143922445052405705731362819931110295120503380308360804747112472252910927619875958411626625218927527442849349149152357552499481691505033486331631833694600368265312459020880094195364086213758555477278748623778843354146062725793337373589931111124665118621059831535949204231308707671446908675113176176304321723620753722275441128854348098696162968613862168068654893706486191269993066348571062212197611959945309478029492202951055604969241786513705387206759439775241938843206708185096138464391401226399710149121529517839264859011484581321012045980645500402413086558379291361904990712785245655597604828026696431707990234313458827019712696100661962594036677058109116741865703639764439772290329284292257198158310296508649764474499122555503551459723880491827756818045019228823243323321471238987064786934492780229271313421198142040355686039670556196326496245247361814831132672618927049921571374660412861991943747322326531515690187521113063342352556465247090356534568771290260301167428787548639599883820096001691505572023255885073898189016222466775642807592140445422173067636915569412598714002126895843592903706581578849736648626737279593403138659608696354849886361903933472627913333253964457116326028526055837156952810388125818352764232703063198188363602413192975281373752089976652146280830659221498410863767595286169904895319841109505726755668994280393233188593564916228527702248149516482582792647951796402619155480092863879316009403023050298322632944362225048365216929836135901162458037352006926819209158255789011097352365331849429594300358233629415066967731364677954629736316739263478863199023304380834232053490107174211035508028420798786936894719228322861408010831614990029327616870404699893846468558496747219790059880549394789363013217750002504311273104040015774946111615915193835796305162681068812942575612807389391806977160451723133365858351862839735578056023695880170408274216624815208986393527830526304539657196453640063890530889506286567649459762018688662772551810055207455120487801153533289767799062356855768020506185775173829649260737088368868447872771562026433572766404332418903514041259590261882543722225131990614547118137289586423181998850969980358155626906744673188781537751449862941842159284503341479659112885075850996439107683329365329615428384405053597956928598627492403432461152955417539912647607359921163171399987014879572572132412175656078533301307783854949248352535412239671289538171711116010763166441519985811381661949654936570342978444500182326355829247458308626162779232649477108386372701203236232277936314003212919951028842986845047815884403293557369021506936290046727911860704661296407091785929064882675920363785241300496146605524852620113612853471245851254767484573967261699117031051743820951495428948259056228910515635246852676788610673051081194403278101972461050576604368120509006729675505678195278793691884124147901867397295895189258429488063734749935034088793701081660670226327179534324077505471285806739332658417770653184478010949511211785802731197918225405668558428214545060613665777797209964570992853538181978462045502557045678912397258782471110551293885898733256937247165950397712973164247851632220677206647824185765477160516808117355145282301238254993639298116684618014313205971372642270176549370843994635632036487074794683862922671461023813358806960184063745491431042766297157868462872935310278765275894169363854134677503414082835488052603435154521125634264411554850117887270488977143430599280690826762845428219234981673204139475504955921407982283372694507085747129722184093885132192579728432298530925603237941614779541716402610371184048998411371056611509680198425681739527211917670240900620900391672469525952720714727180981247110307296786302898349539345391685923152711174288827480527654796089201355606578057276106432443411340108157843064974018369243266870489462841408551407354764615754497536558974976098636970025869631248050179227739272328488601091337467377077434066574953587028111821933045380403672779665382952803635419683913395110426066161287145437329987614697054088309814474298796746269984751460433391110660449604181773092058525098861674212206320080003595791465830674832578031879634307672592536914457250208511892176036910179011051970857025791575770474240112229101854686037548761352006032897682355099919110804709786209813372041653094999244783628684163753163194861171166737195572791653525233901029750880828184471086974942098301036259871111493671257731631921905139800941219195841270753261642575031868325745639567812767441520370333318775109975766608842818950730860814641783274147283645424422511180409171417802457422703167386367254897176180381084891302796169344411290705399280963217873207859226230174928540690480499945395252536970820111587204903786303961235942502356598297727566494737342642267107820106615205522982591023906550473661298615114392588204185482601236329010155709648936031308610114490211021115159651080737036267256382102557700255463974952152618959730843094618523309967443705247336436719917193854756516835463236139112357836043239553695919379609582110704275576749055755320257767643716530100887838549782436272443972123165919464286720445791247874677225107303223844061366749901330520670399963128631703511060916486648226753188410629567372915134033580832614544098005732591460534182878898354746670545083305472166563932017343297439770553750068131687417040061935557079386770792913838776197630142736244430031903146680955932716108887777514755741211123425032138360622190871149815301570641803777040663138519070189223159584216380408846720105440225370632128540707692354613980700164334484543489336458722921658263889383022457700632401117917042114443922352377053470055982158745841205917425936267306345765566560510753782356919141955381670387737245415895278847817116767254301626600478805019610033277676862206947233214316045962092701107054849497084553766160002348424418786250638115309291932813853886268620680484838373099263054629321863998547638976998065389289014409247324635525950774217619829367025184263369380630677000956849880224717739578717833279214888544865812942333425347228678746764452093941789868874082517119549986703516268155189178862974685497280078383980907152253687973153470406684841713894078227226665666879995652204434212930499234680523282731440896747080958538305706733955924523019329930601537754777066072987495402406203161016069651110797632007056346810302743468569061717914062811939716038970334063902639788382451331651249328441596379494517427127577641756657989967783516630735165848325518440788346486779207779897959757781188153542942654714991411654163553185719969335821024087521767780721552051750458315097862434048470385158114916030865717048714348109295634868908317718102893008134375938276726696907654652358043371401279401230047530740707702248733442267765036418401654913246637289559985133493335570762670728190732744540381346637495092820761478034775531111803731425867334042438513085284183162152505396639940681534008716941170080285833978530086269195086281562301751526421188306118965323651564881948279184650135775837939293310978742600132077994696026856167873527367622774546477397887501140664887789677262901487297207871702803294346683356550343450610331986324807614025818504649376792280453728814303215365093922353182700793003114350754214441196509635455126601847933414795898438030604163238990899043387846798040746130966561297680453845777669101692942945682745673729468812594642746871784999845979869426613938266494267141310457622994811257328063476442731516406740062397504759046821465968889975410726621110635178088505007023054940856387132990949362764030360637330697493831126232573089541488710343528800720697824681309367631695141254328514467975578268789875219613922736311535853616542610943476255378603768730785854284144690434889242740988840123013383711148400672022454552493677641322361874043688720551372422968950391324535280759986091651571147735981693489368409168740556527464053453789895127017352997676163770928624570472031170280599748816252847169261346221874825018571640590786847690520151680147524755798513803719921072212347068151174246186121983050805392116987399307738265249322153014858006227855283148690658710475255264372371775210038032499703032387328501455927890896730799352244293020686942406452537792521793499241883957705218212157701948642274857106214161040301538313960605046908926492396427580445051037302343325612719804871873719611931346960460856921288841801910459453741511687678644208909534386188626287255424290176630915400909307761526783088216480756029385746424648869025425440861002861452336375688943357372410692272790169880303866377062577180567876588075212389718889370684258141297673280990407290961509514997372449276809823394213560229229243360934822008209008162606188108625292207750724680141740011380719505667921193652578087739741561561062256225891840482938786168933849205302201858178198767304198518202402098987342519682709498051653305341450921973205454731882655031278966584466751396748212722902382271327594484309873214188782728387348833111931497969086444581708102556779434966952589957970631792307081136926038570614040175117545758353116177895187211700143222701170218534344835382244181640467631710796472182471158954169158079984587366492997029345664461002152603620506380217241026725845527049664073959392479518245054763135537080314077706084949662997611409466187811153511320127362538404916664474522657931917705180998412460807222838584216916460621597217773588784145676677252390530325130897095043256110928362176142521194695258447060662035626893525687296947924016323188785827068279859662088309305965555661943047303371258489432699006447245648853044921273096284241245302357333135965472944515076936689012070682085139025605638111215021258770259364393501549347284797720148431982111071278642092623366560171753019668466276334269538346204778177980387597527219089713314046970060722092975770423758210357165415055688748153871904784724742090606859939104938864094990732301426018030757865085947262611053317216728040855904049753369776530046214491413072587974606456978742483164039695534786303245588378825919660808828636602151827157025185152856572691114775136586588032816723098202030211965824902646443391418110483727349236444613981091624073284939975097848300575633296777075657350262764061583064673668714955638672841582626452654237566796519783084136916281506314903918829294421284871163140897139456596396482329781799849046261943479576788462972316291731194518186656972444018429540565696373658951635573493999879969789162566016094724453515209673402765687390907588333223670260538565694247215022336415329129875450103680998834075070004941160730176610718356864495037268648775535942550042861216023099620251670438390172975809109549672330483993403181261208385871942148032244213051196807948241401414020355369416091067318233646505274448905197189740277938626970137200654129708474695275680578703477744519071327482227349550404762720980108282789796536957254735900285488731718674456069920326921866249088480699994177410355250668568789260223707926925174832880705644792992306905451007365901216340194573008270870555109515739801275488123430808869390958204870350280689116940750755066025445295021984087627111384404928882835559148350169860094769180001015229766934483836647891366409334991281638132483843584234043484335969602409767499108596615826411012454487974569296261342082944023795145554250975408498422954410484373613776633210897116061019636416351607115821575060152486065236113500327444887345351552521973850732529552358240380502969865309649514878112699676839739332815337909050125744349208722685433890104137564068879919072329864026107257138178380962765857495459778182361232823825627029457178851264465628821488997495124368114174949267269420119730676738250952451459576964201769751751623308332266763587692738449002229292322475993052259824175759625430634576684677267909245114356733655677394368193263403157671278231106027988254617766302506576585675175694921088062718825145968392675682790485614967672798031809351036108869780935260350585517900892615567398575128256073843007037545118866606832780641783644833226973584605630583639660820426787577371828498621920174558426522185421762567187875154786707658382015190333769254514702092591416358852441177645066765832604358431662009446269328248678029827007744447450973267185728291007418184821829915263696098219776408414090584998307423277713657900760808921843181287948583306987869723001916924882261597417138983731624838434149289383403318655909358935794669147245125416359424877447362041021983039541911031261429325802421038198903135940660267359646276944216584023898949908900825206986949755379484389568810798909779583637729882441725447425151812949948590809051918852891796815754835979470424147882154919790490516095121282095711322363345358687242671165976857763039095149273167113106476039716765300595569510233274881522400195530831809829159410213028261586822423816508016061793602397124182063253834209138089564094960673043519979943648470303132049043280626400836259156789475281238164883002436551030552323247514052834952237414482006593159184498665078116776287788333882531436197032264381516004512815394742614349323770052317755539112158742200063032805956433473772784709018491863649964876310240790253833884025566372323249659835793309599941133692898725995768437162335737464468591262779007185940582920584660290987673570446679924762968938054865134559728203769280785075102463682180939185143129686843553598974730964098357785834340707284057861690183246815191278603261079162795335379752349424931266909746192328485112736207352488106737136413603998795165296990778641532097970257982061274595341813262205105572847349012549754904395959050614243782194060759569548490868116849453579753932394023505970959252743547338107702800444896972392217896611215106460806631323785712893874110188575815013297615378693751944134687602401132630452589504095833715186311938672089789619252947431034236077202809475085884627782153167175977169177636444959693835445300087612413135599057671582131008784524960494769558018370368233752912147119714265057265316464097727577579736506543296692714309824520947179884927446325336338140708981241532454284316857333605544422017243749058372611261968726379207570023483193089210151265932178202378665688059054638726678679226763207777491218854435007730817091854690041144420098101037800925638762823938183944103036436231904046703331782120431105583583958495909675928811770810630617602169848337707791942447914801736158149835568910106393945264728367184959303694638188553180269360734418682191921804325209184431545148260377293593708319709947294314107128515260126314453694676107727357076421520841767022940853342393869842625415743991560721717241073846189246672282291157844936922111718507085023802144187030877730452878645231217662800423121129024980365896920958317151848796316217452698450176170837785334036755952604219464986047783840057577047907282084644818281100641709316541930205608946952218387696305062352041001174317255789328938303746287272459808647146802037093082754450908780003200922049785107873771855381862436505707256394885569510068070894572502680502150556193767114192543370092353121491498080649876484147017547837330004781001961539276835840743183150215991575816476044358955523349153904632831350097981785592634478879715822895320441018949469097912816806928451655319792370689950481380487800963416176540104322732677046068300601513423717733330951654550436799036340950607633855035926743246981737662319721174964681812965296916261109622577943752231915271022197688257293954487972065082578957344184528096415142921788210881593352152942834476998907781633384311192266924418260554832686564581490473232249042652663527745616387768582603453562415699911701506589419872645380051188790455868041954119630284580963618999524127921710319882642409111572867135871108577003089460493871313510564950984950843734295977702187478453667226045866202665667752298967049149609843343876041184387713340359343297856272704629509448553398537390299108600869910294966973191590844862379043056571728309759427134356747615914974714036652179864759863519188871833337426569310064243038749413581656459491672052760558583955583976685878181471597058982042218887685437758855068344630809317159057945562021575737920985933642470103957716028366909133245994923161424926074732862175652949695133693568665217373516744673152881013044486736853776230569384638985982724679630685832459188376737960274803564254094628810872068189995781076691377203913184176549332091510038602189217498687533605250248184918551099405411053359687366157557738600322906976298284994014320650240386280428588357695545138212744973348954018885485523225044715618473278200227698184087840669003851858253949544835005123785587868476261009414505645101908473442125427452776368061717358766476326203583018548935172045833222268141005740674226948984017926748536920573216063151294201960304523358645778937920155346747565868441263276813937917525562452471694379302870604699603248598577036129626192625944416367561266893319470392119357995780103093365449964244337397599461118504239546501519898138475931258633418537011725745366244220762088853986192725700271650283085045179215644489770940673274770757586216732226202967449454960352475814697124600084128201185513868524653062901815549972574256336520951192936380362208363857937769680875375875017051580394235851321744682277975772196850254904429468777441012466311801834209127694864046928708260659509279373922801597382916629240676074850444612284630861902659186471579811586357160447738455109468212456933300193588582016390968890355212884371529840894959405902163215231997528680691675661179653397987211374832559797705678735829375354554923914010755633038734894782971436649431597904010620123820904564644994518253931901780770953715241198079549171041622021894937421521779621617115394219038068109979626728824762920731661480219843004965931434304725610078293581661584453966239501590744959912962291281787422488622412141164354929155490341419374380473290761230152597525876257949113533122928976934357128664835467082524338754592430621126328984797047630415995413291971390435435553258430162851527870536372783236702566324236160018664015795484807716583395652510930055809329836882130450978782043786578171369540120016567448417604319289524822310335504530480050221606534630758176704996127994527458546233412743788985982284850320692305269476392336760086772864355249537789242781251009529421047244164411323586792120271594551538009578477952669303440958074255783109214567153373081603913916169459627525283939509988014658847591909216353741887142379078973178821213534880142628192512469239480641065647354868094006393004118068649002419568183075589909650481403693906144839807056291229290238191063988740224509283816664321622079806381028433980319507923900385225751236295474769131941787197844371966073680503104018932086645339354065502146045818706002732864418294784711904069509993899607283965696638242867416416699962973479865438358468304962109102454482146675000177664550852183546304832177497822552324416037719348520695456903582225729773682450908077066779689117943398033308908741340080298659705621718602125817147350132706509788539685450730698443174885196217590573414012882235250297095133801739972230041207684068728617931968670483511662630223612721707766827243223188131437276689142409691200236357016648149155125399446440244098479909532276389477952424078292698912578266803964321368569952947202386914922570579704579828745662024312023440077836393463582258160486436703301623803945015887197199161772920073949424569975777618231451237302143702076311559656450201744440037127011674206759692274352346904678778403114356521586873868645844500718443185533078740001710960209519683114785811198916780882268355167231333139969032318211980688795345592974581830919764207646171625766925851180438387525090041209967577824257952163178533972567370874585751209826516874148891959148488183328666180381270503403794283597693848876291190492040061561439616762496889163773954131445640335189158398520892298654440162309143476445043217958269458710639765781743308854187360504628180525836238810961921395992901590491404630606675881940212587526485515238990037397010724736522257279654485337903559491678433309215368818491472716804219796610750804864158811478840352517293150583514807737319827297968981638930354977146574087444081053157423136072751804110497052671533707450494528780476266539183586559293167549406887062162482172582778891325380123299191729401454984619854546125441402747273620493973083042458552511018828801227315020294951359130326592260735638640556764969626859476037516994476580329356994770938984014363738300881441354901485504978715880432111135968678483405070368617472905959201246850121689804085969364114545484501272464428847542498826067143666178252611096694978772140063478313943562070341560288117027911048414798916142989062763245084621035607289072355808537252883666084107525151255713003102613092064032211256413230332159013799128526189416700799659518728840799063540373825737663964012086393471913689238825599937912713030427470108714139002020371408493279343779386905310836291371090001940926724695476576638333728212160254681980907938245414581833058195967893290718031154670379563302129582934970494307697337745671384736488704578944983593171853036827968456511170525723220041318221440074731346414378203130149948952309278197155920757972123460090458706551878827840998700881512579937166140164970478502702080692892927300889158971700479075338107474477087820640352737754553246460169881885378651325081397501968127225658143796695736576197932505154703007537638472317988621641484208866534180721364268495387932293056105466835068251570973434073647715305283030302429226184827681792371501289337561908551869850392446674801864838470094534373802678744390180224339862188088588100724131798873771464917499529607954865853475679591837796959379599415916897441136649938468209293717571782929760314620494507319416762140354589382988558284020345353111487982717733607336300698072019599746037944916442212043591338081743628813603574999830516126255313333938242741222156635320379124250179427532404352661002696782354958559893760906935447550058128162286109772519684651041283486857928620009180448904851383887151329892084259648532889010254375247390342006849591256929824229227500245858877557977129934769373638854002229787282997970531000156080027238164453549512443377712624816345239413720195001454633462859123713333163324635363883264630336629253413582974733057267157893126232492428706690267200196459629333073771873452457362046697366914447902972391405246327105974123641876399257881678851694148588316245296480473433004401973088064623249858746130455037392476763320218414610660800973532544083891317772543621630885192840918659906874546311515473159992972516777326050079657805928822954416249013733204921376952131580537780740881382413416996571225985460848727860737372266852635361036351015659470537333376820069396999833885599106300927483210546981372826357170293971655126268880816925581040700540789864457596653735886747641801790433655480515077725382625526341637409785469438068568548591358691760076607047449362785871535390694981880299675250220081584238502676458066976730821752530501278147453166741166730016853129181550399264178461830344555241715257838660830079217808927789245504574908323646486276961866422149708364858078485642490338212802700652558332607978973477740095645094639625619917731207330944487448205117307181474213142368237307548702182181223798065960653142262935671210510794797376719388401816408504882007637659850784587517703087610279638867010949853270507342133763431609629972834271346660246192190827878479783909857294378966714400433822687571013885190692209248335819352850618037572440388975276050923940106867395729837913335683127509769912370468931497586591508352095796540559917022225548769280441762372589781804775447459321553849992433410983197176366132191783679789822131806890605768101514749990455924684259852807979997074810347742259028794892575089930711452402907194303369503604872872380921282325097872409843312901058470856560891052437032820716788367919615284398267433831138795414323702163081895693519445436551150646128324748560942914266851052599000709843776625410396501223146478875766068538344678346280171738298247223680406739662701658378091888833025070785019300433427635544110086402455715645649986314295543597293984787162342761562377823506658574616594400424511585262502532715107281504309478036062909476539566989934162097861852583889615794378986612224832221262774176975286239901177747543884685873150404218329643923016134469287237233318836034856673553644653817253007814052818927656744399666714429977659402307059578100173566878803544942797745699861419400070741961168709339543458880768192535130661715041460910010593060803937679866819724691410233572852673095846995864165613484621551768147075072256780865917980820279607934539086197168607912735991147648371087370165150651074003043959723803399776066089222415708282225212188887506726868488143468841792871589973404957874174323998497759920310757339392663991055295772525460258800190933189396706174607474971523087824448415007884451121674877957214730226841980931857734452239377611865168117488281565902467502363132659266855435919749012519980400692917518587921191328193207144610877099005374531758744711139055414950859107823258195249028897531623877935600889052579521269817142334543867576036066505327096271984160049740813978184546775000717863745861881888538425198440264226288877471883457177031614332862578801264142725632469848392981751886052735133269368034098922045578442284756661494057764338565480741778443924049276937118196020652540614917004103337782632134943635322544242939608616947682640495034773825439470390753726409666695757256225235366642626188393680985812433819098447719005980732436760067898415928407513265642929376511546179244556498355428603671062619873651650111649706099401767530795677652958623455438791989562207957296820638894383718380573418354686345993599254523282069790448765443060689014616988565045629978043149665896986435623077218338181479002508089431491400733992858956146554494119499627850897940616248031923893956536926209631139872606729130506268105060437137691101242466717367180346565620937005578989658932787931136362508285587099388935083161465036372500141576670394822309216045494593596318813590811602313617372565473079853816367209445784060500926506017433628855115192270904850774985694676848816375054191727922685139725267900319643278855137133702403644593809123542209990510594330936203439608503329063260974282317642647196628012787846162152420090027278777104036109210065788825988673733336633305049768827877410617481266771056849358515462516174335152423907915682837868734926355690027164773729852974286510243082428675030447232940933322323980020209598348151075733693875596647520787379654610026575807975898709678149048817330458891500508219413983531792203493184039546145665927325142042822114034839959139762851630919729851985237653749079813907687182866990219161739369977992161122204838503992147966897048981728965534973676445112284529467794722546869563613447780627399927568215233945423543494263454368863414883046956840744372258645434269155081762422517377191440834749306974458158834103675533477028095534112041617612476434216858673717269149151335777128035067584230991752118032111446722173523583096501083392685807526513957644848066775912386157462002754497665936618872251471854196159793599363158258477514278616722509758735620148903830904711170252297561317859698565881739438078926082222434863580612024563792849396711859995422665124962488058017633073203151738376695117583808835606673529353820035942581907905309270868892871208755524519268455881646211904660976802724561039148296528070960079341062634494205463992416654319680741659851056083373517729429804806892045694660197660136627469106400517000403649880659768478154124843925169668620143775623468717222631896541822548373544511192341670648976595218627209526403703182495772686030468974489445517665080176882679596233040276451397897355604408851827097096647423668165710092263926936039441868641887164816008445300127755326495448329520575331660643179546066299398896457184607454834142784727330421331423344828524692367838046415132829232063325533905749678174410695440946369685927193451263581094290956738098670693908900932676882429525628019963291380965676637124166136563938329545825956339357781605549271556123740982668881416200427380063335090766654661049870913223873618780257469580744398513595889082907643971242656342541701533708855701017841657322458094808634128184310634979982368679260957018121021011182665772345552741106188063336865311143211057395728812460428536771548642558308857125962863145404386441689618579231569949918038614549218598044269722406538530268885911973972608748899151382962534129765076543802243490450740420410598321459511236196052801019862272740787548955322759684781356646627500189328725353675879750056550968323867920949654784060663275773680801955514542209869478397003643357067644816407822479736039846857910108545176276025159233012874565503439100260181347143351550583661280459826788399883165382319705395709432287730717291914236165800375456937012634395613253583985947556785326038094592066697995343957404932416136087596119742879995238200801949245192042991429069853304235775347378943973145184243145618686889108397225752210248666873997445941511176166690161907507029480836798518964664624793122986821156913240601053684977272859966208414518131880609028422906717235294212630723189851867702994902296900681024749737865701862446574129880414101845214030712082621660249720812031452018255070607618671226972505139067186538578320093899836194235414069381527417719001196570699574070405199166571307453848523178475077785856043195507351505190320553137593675466058855578327463003640317054999214328219142560934496088906590432472459368690604216633315072688113031371289899798917687255415012275767078094006136429195090183793556474329393913055705564932291618985629996771274662782459170778157215674686214815456449348915788853249657675657143907745936229703397067653799947972459524111383716731178804306361468549738683517644836273031849719842245141829728746488567019062420551264976951813898851153929100869311682998172440199415610805817278229433299885523512465463105272891770419965118292264778548771308764281700592806953788363050170689524269204847697231075218410248928420537368563369302503086396569961068145777260682812016557193438665071059048590382893780940903219767438625033960697546067971935876632468055241322347466139767401441015838604553153605394785290346900678590679149271439676549771404182157327592160178631133219993921820775587888179211157346614568669723113502754111661153157377011295644739740543336172419581123191671897382234835409722599302357637013627844997341479425677948510052680680507057323793538545452549094558992718931997830401441876085611647321867547783994124630363357469670859411886131990693030646880330758470761972634003472538953746391337861349343618504702945384888506072473617618856119206748412935981915117269601206479152062715201583846667885508581684523679502250175444542317302263057979980303518418392775609944322873076146556185750473791480808718022202152580561931881020926247911673138934753040143700654615628326450256930312040443807030832343906548887375592648264219563686783554678153237682729177931639561518489594000873411266370456722818171321846376511041314564476076856757349076567435874921730676542359208831528562000134538095125923170670870321287937922158955425856084611920870896134209632473131465686572824022188397686173924647459899575438762002503143033296111873714993681324062905952373872431646416103148618956513756583572684615707211691360675866449411016074237101553304921951314993495893891876396118802913682987188539428938893889108527316996761137596998156967755480221059255903291729582928008587932517866158879075046872462303172788194968370029441988812024286041973333670601731248453169960809125122121709972787052375670409043197835487000181244643471224955961623058698497484501043294507785859760738687233949310696941925377033368855086911642388962995180442406013187443834467460850408027353723446925319540306339472893655859703619232543767903017257048270126986261748503791710557245578016846346903103815683968206311582309734048043823753451442290636932656339698918924679380883547600500385880000237748266589810297365194500585966065183343651044302264722247024251365596197593439364006844729945261284821720767958231469968173118764016018863447446578391330128514737232656106715916955853006233613115227931668784607905637870494228984985530091879629422303599747364555802535958058450108547678473234322328339588058272951262292994177312048874960763491067632538971098477278905541073870614555140906286226079725596447145380965867955988127677037185173901675641146653730013367538895925000169565660576101742271934128690712010912920107428437598151327658727961081696386083589702463027045874339081661030736147660928707611563514254668899287726017292995098865918072534886786816126851479608517318819659786511895306997492985539263844448282949696555632878033198501909899904967658502864427678217315312039275732739345273243167225991231395817616665593199725135950454247760282208842224617140708807809917591151198379733331619589873668703367002647647139584920428820852198938510150846578464476170204846712581079994637410414086306433106871103801548468700093394416864140391480557102887188408590325922107755836562702154943224000625282811409526135841110940832904805157126154096937503688793897408708025077037921913178507784279419614129212883896528526570446177852951645423977672558415441074391631241310164096850797749502620652388450318515241117869148695504950419571898168387468933297981538767302485754094294196923614064206730770697252762605725904247802047348348126120470708922390125807878977009845899186635272771633627520020918800256500956173183094995382348958775834156539417266713910111329675456799796202441978558880370736662252770494949212834748970301109260675250235938512091029819302937855301723660604396933476008477213299124416605370219003492310619720502383241908146458582836431362861893441521809476550285510876818573566999194175143921554138465860873969974318714391255292968999415747726273621048343231977045446289496880663126698407773872887161976560468907042975492348634732990392791438411365448886216742353852878938403432222387550580635786957293561158845357139780092642558118330211412679197469766942270692181533910872029959413971734904522004773061027053687355453077497708144458872764311556498590081553053373506771023494514430182037453362411794361104781368554798974417275967720140050383006519574538323000688467929939065516085102286362023870956736193590854761832949735190644733660141576820485755760008833428541545532154643832891119285853735083677852410668306680378479445874919335764701022890136708711596641801362070580008159725090844376271210002561653896135207804086286308095857726517928716104900610012697950817736898219810640983373590408159157414378237999378331412889254960822834713814397753004187224820240430417204224049818933804243088494888688068913877482707262364487370432356504175114084160934747520285467528914175761599372531042277875777693267859875232386558591404561821722576416604793017363845703064446128348599587614492246765093372550683819083780952811081639515903639027467194340922802687896343067806340558231272418853807495656763935678702770367195791593380746648399939778036518154787961687711450761855723662847258119370205099021887348532325915550215132606939396135209373067524459604909078685529294209849995027240886646083047677964115180265959968115621677205087507309860761523548450053749943790493535427824633938516501598201992566509939377493675327309581410484490184082477002392443141629945421778532382675822840235238181605834668071556998859185211368290061133262653722524727173956972006711997501334934867041427318982283696895024581439219627481181475439848703826599214660279634938949964958429386860217296117727625809914756636585398548437696378970117020976590937191026752097746230655881110109158918095787326160185699721082085780773913057966284090235017303945046752518224313734504329193022791059014140367845735384952818213034518617892147496303227280183848481016488128384485453974434581333159179742711492961055477022957255708126224378456555144196214736143026050063479677221436518043853510261852549553189108700673737015551271076217748520606138844685598804415323190630539476277968307208723266463065003923633401756469520321720599545333917730461410706491024490811340417398520889473246190681226147505224202132620043249300047917096501001383968326294663500468155843231856616445026436910584977714825879466458855525120285772372242763043733596193379558608470030748036111155755927091064363501860017090230717980062330068693802367373056476931109440372229990433148050301020557660870885793933216845709586313504879589152214909019739618099313846430510673935232918588218948233543084082974907612350455681185455512213601341566418527350369340056878582367052263662408100318734893687648286206461106362863185917198185311772883698920232659287115617512994757117857491937781838937293717020985262674581046000915319544954117325719572223676148731634149600969157376060430590973128609971009054814279506120310776214165352035481523755982049571983652544830764553678718015650741511850130357339977495430168511364456038757541369691872977009524429007090057125053609723411834030647914247630070700012075470407920070454806942003478147004380018159349207728145591992622099877930638156464926359079218416425314397941804173955898692445389838282392832814251465456532476621496319411219621608884476221883638552571294054696636851951300781525257637605178528264091704277734410747375016386684853812912042935026145376738107739443617327394661357059701074714778177514794325370677836935296118415702632731946220040303033417531425827519321203811416445242620979205380615544076092230741899295537882885941783175086794849079873347839329017730075767390057052819924228059267257881338330852227187270706380371191313349712891714211590720046593225040866272421588123935007194307434802799347046223086120055535339246098752479188490167441675145059747741966858479394028831468275671575097246820978850507114947366662495748448225709056247092220913606593302979108886314873839450847456319125409039617083702967388760701852255556810488225156168673281166877926160059152381390660032985526349882213504641673163208876882950592546990562387603418180304218077833407822761460094488347957811194795959471109533596036496956183483086095314144787988692563094019955198507872062594942180866940670541156757829616689098992186916126099326345079109724400009749156167916360748901633676662868689972027400877651946585400754524198907207650514980661581224616525352533250776720185817095010734537196514149355417782673621965136411409215327968364042452663932810314525399109715907496978918966668649801674951023731365657521051533829197397626552518037068650596580008531653887290775610395269057739628307258841715393710564505400454621112652180658422996634355697528120045758323504966253424780138932480680260905373184800040452449915886713540888145128523930026262538473662373903332752748349038123484513436487072765415533314706114079092723579624448456757298689520148488167498216872254096428349675946246668766438215323923212419426874978479906529587096277095330147234050053399801246430527380574258686148492394368665949609257667889012521856295892085906538871898697207525552030846729871431015495273169502180495123350680126201454234451276338710971674014368728949999595254861480243387731875923368488568333142212769371179860230350610462532664593815730193913821679341452558420408254989010992825397098846115847930865717028113100004507167990253649163887291781098570903362003257501299164090140905129422383982699707804002286484281475592079363693046555701929084741984843730382898248935955785206488661684266734869192511489030091937492047970688578602993124106175109709642153358439294363329060106916203678217521815654852137667701378745175660035334047331370580212121553347992910295987793831163103089615372177050304593668709974341752203132026801555767693173355056453337948440743603440377711230262423770667042076429720948350900910586680612390718810494232904270554140961698568652737563589178072872271236400704130221647251767465419932484522134412003530628837225606188281651088538748353906456567043368916785727574646737705776067290076981518479387440238682330647257624269436151800388482077647672546165346550170813596063653984579841509906015917721558372062038232073017615525856904104348214196614825435724840150471213521975011288874951036453584730963764329945186499610825739703586032523525112518462576506305068383443839253409000766185925554980645857910942664228214054116406407236959860976959056486946927427052081950933086388289502168549660772383870651186455268299732507656562422376159179199111269364949865604022406106048478139946200467797197036918872364873250012383679465814090441494006751480792019807812439694395230701949055201181514873127270938591114104183678217501001798898839377792129298322038559142918628664898875862359141180406341449211779108534928025316364745655463346933304452631417027085599105248950139259424960476382337480469329681649769368840572923391423758835744094124970646605841843369208433079014626918687367946075896617333320954946495072311397870915402124742147189981057203002336694812186417069105197735383841252735837893305929574448125075564855559844314579910794988427467234613760742841176326131390218280448988680791155172226417346274310109708193515567906482273208397510349945079780103774043154106402807863359468351739278759084277561408288705518391962565316077986454938716611968149627547234382533322261028905406421906110981667601876443689575102474872083429840436672225603827495793142842452171616183596454329204300142892495107670125306504905625719853938682830900108682356489921356209305040782226172591265802249456171693358940995697566550491221524381949298865588031162066727047635189966650243536851810849748561868489241158555835076191380596831457066474118320839729276575211907371697011487601306567602957432930374585466374265664549698723331067247152223984817479468070337059488063955697526242959441958287187796315808929471366805971770304075428459035666072570104848692799638465191141439185010022646000626313968084793718871883861053541666799602766810119005829715894612012039540606185873192791226814553398131963795597898066807068083120312136145637763290249836033531049076055740445232236001000761641762455850234558062562955541168353376091753858381789938233303484726388972294750778717750568564312561427145394456080405279590302706732376710762525148394060096302686762596674021055754230526573330871444576518160299357202555725988365576055741197736439339138809699261351354803437986464448182751251085870517247292487648045252344571891536256458667981148790015292821730792925105186829002715636139426807854273519061336972691393148378930010505033716229609155731303678151843155141082669417026618309337520994371779510886476797554759123753994992706189955524248878306520930230778711875526803440801259948991155333124037774010145285353490830684726752292362110348134089441080253438892282173597988577245577761336559462699788326999067956433068246589827204817686421502159440270885306815054307209090718821261204544985405345133749557804684471520238634428975043078856574638110052592737050853872718733530152649261758345083400008332929551891863266283077454021181736939239636417930678493139161239173098811913938266885212536588646167735031520984629943115181641657527805018104406257868669451972705672268935777345561508721997430438392037493495108568123275643796726949751776120054829144692160138970474435104603381471452014268183889783241678479125915598126533544094568279019636547611160273349306756105440458504760425162413267097223324378464259557141226699811505651381647489435338449633407480872512469890904982680163368554577392763362152784010831866386539947216826640073666344384492046944345127391030896674133589916308036154421131082611150195294722475717725346915964807784770627868044188940392091539647174711611109829484235279379564174347324240403080611532096419266387429636950842144296362529836450515192679990375350098216925310276043030742318201992255858578700436092852263643121645752728443454264850028543108751815240044837557045304213201873228364927061688574593572749412468989249198316522470978674768957588221864295912801797122593494808364859713353852010169875707090307985670807114596811564403130709404082359404044216876596054268471027544540466385257613507763254982881162675607811917350740177351053959417117359971058199241176305452380064248861471272918994624967014103782934303923629218546241401184330987422322787317763328964975378330030262044151728678458221712307073388737020107635982241853286085814397078848636312092457959743013223540749635102407021938059599467051997466069948392185714823026212660560985537607115433317505927511124312366540213890776540082936291859265189511290035840293660558274023409992654617503992641328978969359709674946349920490919190918964469432727882530698816491627128049932132099525009922110504762552342089233464285268903170554770463671349276244751767139918092063000611483052030402061097800098947103280336445999858114465736145539165922737164524129541500742031772089415968995679858044276169565887906632689800159297811611453192872972192031180873185156419160717871324487865381618955661845908946609582865180164770822370308649430583383412364546173783134033146730584425375071153332152817755743379225736601054503626595422018039612629535223019702136619254062859714446928964423685737247598339545138513300579555682754041252770611441029948422070738074519606173894421196001349160661452321793602466763198145648037892702307372524366638884680806625735356699705756417862705279461240901397503692937558577845507174099492518891715776091525251678782475297797347923231165970626691978076600745797053605821915648387346748921517300266574987937723795884317461670171723175329873835036578463332682848010904774747434840555695689548041834248674674368718925257517430109121136870669651636095912486333579025406538046735959001915578732095178738650051063959386974533421267628591929129699316123728671665397994425687467531601982518892439799546167860102849306675382918196723469181120653829141702760401172150588255481758923723671652051062321500141369183608745280619935641897024354900890481940562849152217661660580154519583325420658516063849645407177197692505859346311813679215707680153319298241995379794988861142697973796904010852880087828953430297060076120070653196150093622902441380682472316401503066998555519381377920656795189956245228838479624646615058509862540963742383177169082451213265550045940321457294700767400858024832694301115853871498542541197885368094180653965578430013443428431796923121229888448188708770932780661150336221077648505293296721775653709575402270923275190408453478580977331052935514495449068526436643643564799243523684203069204399278388908293840412910943643363749696295150698209100086510468279908436891476918986818174066254596569601486425801552221750406054462195098533566356264470832523976398617902355959844496707229387848177795311943574426872378554324420521505897141404777683197785139508980528962299251216736681946929650419568554474726374565602230438597093831782820733663661539564498411668751695503814932318337064769122906193631176755684518556832622446347272516950759782665234399101380943791657472692458351746326389412788431261667996302909461666308399395110559636070767830164142703950654285405845351684732240001863740256872088267088047337846500843376541456278173931044116709621857136753235526490635348785115096655665837001268169795101916398586178326714395165764304145355661939203506601249925135303759361437433253520142929724746878968531099234323226956850540848795805567328060085059603868746736444396450907440909679628592036260715350471229730606134167340144426945814882906493298407596956786347546221225935134556440228237155702238899937237460082613937065058702478264845444155183209096729168338801497244007023986254887412443853305136106679523768517743144715575877288548094295525221714418291307432671562462224101968350150118759254744804099501889786550465797512290233023205528939727294893854016575144051100731349654671450781398649344042767875796102179663072103647154139749068856468232747985286068661247540081137175089534402339028924389218081082340278332854928462377693325142104993314748483606491972486706413767363384056839333518331930615000918976789654635277206152802189850678050011332977594799720210516854374393664341245393163071757718847375162640181626360837592192942068895269285370894703206467448860674933157805920096228290680264272320536894061321294445279716219709004102368174098025166198040593206767681453370787826244385361752919019313222619758242894813149606631682721343459205140570214638317043479474926217773632239411251884189890906769911124135558103567509954072526320820447862775703031394675673097029209457220999025325410523252220664405084963205534982933169046067674107988983678227461513688249934748814360022976840340653150417499154470195081518323573037408308177251706669592398587215544237898779363790317516099459824488597577666352156285117946297165144420863404100031402850449887931119125606859867437723873773708681400416813797007073612764746419110934558177116126675570233844494242443481941381941092057899344422154266745619783051172705007129925265654373893193164402396778034081981501032203201949515274314419267237862739416553618214736690258097077177250789341711665602630080543220408518270660570168502242713574091467384723720463052201116916133401595936843096833903823228597532286100978186040327611346874435094302876750074987883932313693852356204649157825709011130036985191710874484134800966968856893190875113148734150572425191547437642983344594148039017009289493486916379825081964336312123603775096156530985281982332121033335888390460971673302764461312390836914511239301572789106467802553734128636672133947744094274470671034575013041355541868060660344794897220009810496201789350878168700586772595618015442394804971082968735027282573491430671472662894362422993693774670156277648562425616841459905477858182053643632460757328405749420873278507794677067692952759118580720090012720388736415915457136608770981779070604201142783646836601029255577968701503987215906971103284534897781457538489694050247558983634239239819835382634509608974181312772889339224607121754588192157281688954927062915735404303542829815267140155046190180933327623045771901944867660760891670419848818656983376911629290601339893440204639857864286821653395656054818764492218473761575454193303686783195453012025608947097109990663598954474029140454269602669839464859817290184746383591388074024855575576076798327180315254640158048472308235415736049449071860876006861797748337765069715520779059816692531974854454682994818847365479174171397752259011605453161309409788799665889635022467678849911915333634149291977232103634050224222135017136347635724902047676185167802972886007549885113335925698682379967827274678573551098309226195172601888882047842307339001642603132498763171444935114254336287366930102507881925484765456221142274920511168513993503455684587951377955179652721395363648189791292980936528954146920570397003815561651351326896216173946873446589291025790737783993818023813927134369482432846677916881016736093576847425648224593028735682880557826153636003966948631100672053654664020608935468772039038817482086444176934502923869656682468999173388778297020678982774277520338123688768383382687110092685523947898458971010349619227011152466354786953934559639389884191059969665873009357525161169620953569959374871425795955286269544906945801691313173445145488417226849334108941275831768488546427542467720221308795437462890682355786085932022357080970234978542259901990107402717066951019628894929924383992287588787506920471499058679566791836225016482727282145966378429767634056878906741632814055922280865374678316520954115912243067132036708492287819847152210382566009834855107992772067327427035700951180282973883185098218753958048180660382931524474751681425781701537518129169253848102120900318254724250782737767261971505007531475506077722935832560956575260422452781409331606706161507784076384502878752526927153338704789665968311598194944779477996891624844844562448185279071716528293632396384633147911465030428679348471055587654980713302280633970718075938647302731596886776587682652846904323792836645638130111900511756135082663137635543635226417580407020315919226666782194069837785081700280934041314170986150507600168084012012923603763692559915350058441729951606462966938523120709175559602377641860460661257892309436998063547494836803304310899973009598389068980525853448128076062892973539188868193768076623930174293410030709871617828093450603368081541765521055521077335277468697457881066083003069727365404616390702313682139660326064742756140457862012831326660074935607385072724790336900009233108749263010551211680442950518011103309194674177981618724771553167430766900280094483741230570888233800489983310477214486729455843174681256922773490048679677412027521260821286818819567909712793754841453006909677190569477314787399881398303876807622072761582726343304830601454172180979140193771056148225239475736065285884084449066174010751673510937381485073374410697043165389148747476471049932233497460571422565801291364187709382136919582147724611593323640851546609752419325273663621183694399778149474467342001618997062239759673935935118576659140525734374293918205120602113156087501814172105842515621231839225229649763667504637926804176238050557682807602753002976771542580134901620607267499471658263480879451785039407253165241368707154317324518113579294759961730112689955273426261894760236981077931795371329501304980447618249460962580222499352353374670642017576684229214923319216278114465447088801670901418107019458725900887588393666463837327906085255689109933803456367295158899453177569431529966764374631826511797589947472229731861795452931774851713961501601069362189050104286892592262139244877630036471015703078547537337525929021499523657252333855949927659237715911510374584897816764582800443398607220281010009632050953488631630865056984406660315878456008145927399214609559492333167356876867239635052752708333774038373171093365916609536979178889843142356079236280137493298824848429320063156754217096167568694846329820459195863525955408183217022768838716966252330378605638711734007807220867878785433039479987286417871319090384723895553851881437746543236951660572443183357023063530848183269804480971888271589627175429295851958862625268487683703066647260616469952351417898087354302614361683468626166373985158756817076220439127262597408603507341861452260324128251103047509533138689566943942009944844346982060639571345473089317166405695873358270920250014954499692591594006758269401620466522374210978347237281247149893954353319268806042151539046362931586876973771252567081594977617555239745972021183959310479032922767208208110811564024583822333271596174095689840458585362525966486346135205148044045327376781299858780560991135408201911334381924623357055762707629832953297730961155132158457155236734611834562877379823622741936150946904426212516203042102098313101565497439431134692162383084857052365902018873641212308312621173675868885656948457809784201943531318720555442884752366173043490784996680428630852109075518757865017821862902002756230444584252683704198932947367826443625587597462572083775132570619373291202771590877643386138100033991168357390175140663946201106920967985104600131718648847822332530187846293682357955290373550161582254286182154718474132845887472223020921585795873776701546762666504459800388969160439611061776982698911545819803225523412236075526390131148632364556049378756991631811888588550307612298127856344538625927553835332162909319084067631814782477877083065554152909113880820757419748967359190158143523794607592607481146802488971521579210608385342944041911137655445298083387688136880904230690074564628295798756680362321259251771710122035232875559310332562843386402757901625369241422560486916693813362357282966026867453513572083515063284418242836224296039887606473544939438673787001063344716372435177335677020090687047687089649590471361392928741316982941618018281602410469054404586703917349225996710844751381452102905394905950088759777303563148196334568007256961356525101025177665630605897997432460894914157808277859813722139199261190864627657356042725131084209700017448285159995577757317582046231517526299514313409250472521992641230659860606393567368364685177462167124640294597751220201225581944115763838667817602282859332359372336841035793230765521673730272886821110604522093904131890255516746401334295354108398353161025658704273445631276698334625583018123068275713389133117827557797526994817115970474893993693399657887619047769740902189656687176561655528945064256549131153538721410126416767227547819311473622577140988622279492972329802039790559611825759347389049417110722563661109484303419412657559792963572452974689113035253414483086389372779584854359904971044308588396774655671835948362274422137774215704572705703211253421244403103784113801194636386993516530090153726636856148270225547432142659731603767339172752167157390716674203047246748241660057477533130713202690888766483708942646498659375205048018656778491312491346587584488832133133091153085183025269532872588278335148029061813731449822916593466347987493259414696788057995264281598107892540317069396133911101488811903143224468580485369468344967504094495784939317571929205049613620995986821696046147490430718367226114564749666325292682659117088840657415014152603805070990180965265115538691138386718583421252706435373386027496533519846811121326844526101216655543675034459663387811263721115329683841266775758102054781311794793771688470331186951125776420857140705879566639965553283544272390791203952486227854501020462828206197132688331093790433030521992041439798235629316422156077133090067267990809758228039747274661450679625159400118832511557755329158248369612550734599649407570943240474966321077269708029861700966406324559939904350364774953601999288060285392267643890336300793866451542219911279533123863614929180267048432155328441177068990288627727118522370507030774304930356636960107541345337496897423637879037232812295896821518398699778740977396457176996281042935333002937468490836159609865957636928442504301054445749493355642772664589244580685047009575455470386853601071126404313837754685552232298493745790790728937918818745244875924311349230878402887758117095922971041740619284840366726396368435033280630857749133664302451662133036298025133963664431908831406139992793069015957987678977078289933829246714483924733814110914983389290395078320614884546986038550435665214363493461678678594445128618094996697345331054959632669290163931442309561451101169926432141305989808927602994414713257794272937029860628953899025080396074171573098356091636282799275472367049953758524036119781206956376536780868393049413790907384471180904324446519262551626991592508031237994598870907169826037906415783496037034610932675627768510011949109136250724931506009451010381442789483726415160421133273874320141624452332278374560011879917367253931276017925707383367631946837199604076248130531641645861441478184846909424420989233147728538826546450387771784288772125515635121296192041736997296949209436401708514066191238801340034299753774085025457375823747449870161577467126335613935238963616442290067901192680384911195438248695367573195478948614005569698092660295857619447927338661522960990198599100320837656583095814911400057941792105891418009227704707805873353354609878754286183220547614439384366480102817727152154671267428593354686522660063502584431259023722331898532665778859393025341695715792776662287288646538546847326150222546937428985218512685922040581743241491391562950359048936830007087036994277406723810960767148458167023135110412067137265373160206947753804995079830205844600079146597346992246274216690855213689200128742240666991001604709838925500040530183445926531339233468399091905977389955613006089579781286921718408218469336872423989941516645522807545531265357544577111481453533815824837144541568141499687770973186744957914632457305019922121365362447554608820056188660299616699019098571182446165183694345056513640463203880342688719964984771464985641464837131934379370056516827558551504366563176650563354724528840051873720023193837098110751766232309072649908709122526443656676539981167069533536465236105967434299123672816429670782408265661446613454939508691275725301179730460575347723166128812578294871679446667278399753119073658585782390048820288886241666663351142854114132515591672444117261158739398987328304035314583585895080695279766863315854667802971006805905394388575823776576025963946688408539172147018373071536990223171720007030336224025294598085884169263694270001980885900665893909122282381077980944701858413168205518835779561051447150228703683259206337999372993258976844842108291647315053994696522438985350959579977520514890647720813548635244585917098255676448570488133185479399550895634961213703653172595321342175018076087777161798998421908600496157292337722685068515540766010620957567220108763538337851488853382108058859369247619029458894958205243112148890089828778187527787501437270848980483033777412563649727287364074915426637513829991321800471862871979163165898781846184368619495098117124266162709944878501303331608433680644127655729153021406888009768798950324516713129964842728368997996433536014690332734050179552296406707616801760309848424549263046334572545479395395215814500837382875437070473315513089720683698842136839612797771252833913851510780427332317352633506734290266269746020115523042247344537192674970541449960482675981078861106765990162925453262958129078796773391949514406079235194711099925145622284251115660924761068279592426358278595708213864403849093744732238831127034618278921238666270361017342641456550843831671131502334805005613029543974539005319931871927696437454039451510197648426932359423699906922588512423696652276344878403758073518948737800070020294536255053284604388039484424357615623867518774010307877381897557039569588422899354652685769656230096307118064230268944700229759259566702925117167388983955454840195497889381501472767273923391527980833205231004767607335519907654314535089476411122249118049481241715195744333493636196874705201443396138391993966256115989076740171848506434358272307669596301867975411800431989560707730096623378020554570310099512931213453112397621329999630676908638339604077389186697411886114660120865697612337883102860466555028881289265404820154692619550773544137727416240149201764832567779656050701388790815851763020236775133452036494703254868921000447216525811261811566790676849855034864341004012898641097813335706917953423717308227943073071732609533336831495122705660088866374897498200677626005097283333727489086844987248003309243346285096380183147160785768586169422840650816834098474319887039382518762274940614902071770296352850406798631234627245764534521619220567838059793417530093710023680772692702999556756369712481624947025318588938524923311548885543540219205424911471330234405167291897791493203828970179960477055476968695077095848220950222024787524761551868508544640718416822083479446827329461004395399497324184085660151943719180741562548447844340753830279398546153383338747382879718965153763212573784551765434292458372036439991852469497650852778172247813533827846800226905532433530092658890514231378062679648302162858397374147277541544464748276113600179262976253267293286053405178886742294206003588511891533304422084769249927582657938560956296339701490144538850942974639000037315990123322801505594269156515489493082482320245808609583878240630134659638765278490369517487618694687550346485669105765400145384133520637207912151803578157116857515747582187274853878229080688766191908335660148670264594060348819480491561536816160856481688214518373315542808803772290223162254564756373359195689211506756862884094307310276180859112063249249656047461397735244941793491493839915039995679717772291999568204705615692177552873274405130644293929400497867227602990652671666570013421034192239802087138461876808507720154004770760004067110924670016288311923739946165535108295680663013271812291592479359692026360140507794155345772171748922953102669934034611754386962238722211297532052597065650418718339908125620831170248168204931816550198860938220810356679968099924409577600874528745946863931796038562638158494974974066852821238201767898861766303196774171095870232705445199406165436728918007398594712613497861866254691643606201598896207349334231148031442090081804031688012668576547348227805921698823146292932154242446772999234613807709103887874307719010887000290073700567014037612659584312796121663315378178078263035345445709851661960870237473552283118134078666783968481230813631312019576434230624538642008964167074754372536870883247761529089817630676811566872511203687973327994275228937004917400152329364948931237967978448116566438914289188739573732368396321002763199101366624163756521114494525749066650791660813950568144538783897931240590988663894865188518591658944384312800670739656818571965910880435929304345140181316013334946840592410178321993500922075547306145370943056390912304778328354429707102376494030200393852838622115925555553977460416467605107500373632366828349840432666755351084333641291063159090296859894820881101034969634220602396652895799031615635904013455909459590764575995744221196493102153677251597145305247969124740267333695271507031962472957213948248534500156129057344596800909584775755787917173742690449427546150258874110946403189955881060901997055761265361836336515116135833523389806874365453598823181402860021512672611725979799325885697931372455894199310579749692496329578319911941153452579144282171583457876199881206981559284390257848694940877036738525079784730925384857862394307979744823081013653356893882903457831532838697127826506192046650997840939978402940662092117384723099586226814995028156219374999016966702980566205136000926413148344566985950393762556849740187906952387760575775373738326412069712587528110046195794281500512003340456350130332315873420865053473408880452416805902615484700143006853152049925163649129728103851066732735660927257199067761300779313412749651099749451992134235232352788589615264282451314056487338853609594593059147462785792996323766485195832013067181760375388274014904346863837120495908760229135085011612407531941608684156077612383955108048466293356892314588619196832872592917771143974712422136825583294409070409784192972403188031577691353315950546332629112489476487610459342512123204767297796093815873798203665928923742785508967578893158471337846618085085288568043502797184503123250679255263077777983851969730974079037086668513522635832843472992322505385526724381288524919335765697608706560539597866998656672640906969624557455775207660424725119659972821217998455643923766785761486040016463645896108801567867400912016897161020138398168479199743481472402750726915751258972047541264220029185230129119305023541894221324064613905059935664792420088049997187151397824942922050255624353054475391198436199652612038845971179831876692457493467869571333266332529471952671714184306430039050013388713194338334599258038051669878123779146709778356919382497212948498153708817577394841156244799719635093480843536382487872793957616176763059504163705958173462083539668234708864818671450283312406844349731399825666804618992793783578640405830661029566678366823100457148543086426213749665311798095664191738676664409823616415207245204672290038493468119454558977196741293682089623726471105424182067119140512864589985179979112674844111192144056062937784806562480763220395821457308510953246697929167048001795034253209144626215518860989652078451729075264310329866280454159615283888565801854452124732273447834469581716778696541143297303878284028445632012526630993317987163925453274196783856279778023291089533849156552738614934794987722228975916636960755040064966966032609920219897686079443574808458986843733862491686992719632158891437182260022499822902735492909467848390759862436419774705867601264503282669024527610371729847865300208004370855807619181666531039243312590205095550643439031392508856572249421844974900376717629300941660468780504176477050575036888499245700885811417200691660252730072575970957220088993295171659768078531309257278386684748058841259949680904998769550177869247340074470026065809585116040633597307039609503939115528385163032186047663380843936503510617440216411723009196118168055751665746597720486301896664907668871850095735505005584428209181388836877561173579520864669829876422171158554805984366451161208211079925763588153021463404456685659818538973437676435138871759456599347919789849226536661955516713130620213526693566782695262743033353095402933855576364268273536236579506385198272738328947431770082017671933282932347281469050040708572945332639523317442212615228466642546187293767664067355098201290511853194785088734332625297518104413142155139027467341460008967732060455442355233883408509844030599679968946715457778940725683299009716787546418204366332097598054422940839258859325056539500399540232996413967565414093969524352129049029935571354598872665583853290930947019537334232527911732226378972722110945659862803437246112709776185274979472207141967281072141850262765794845249234192487199843104016717330965875030876920411077195216785244119369700452199655654988341684672601552949899322727559928044027152139526398365261933387722726544925364610710786147023968622549661399858813113836428282008660282585449993890559667580221847478181185589117369620403828867265452153946898854168514002168822828942994314558961321066531776823704505292934280688441757969886136741882098390860472537388669775633106137235120344851486916767863796971518752812016749802183704794145093533802358311503671282969276028071730874950961479185904956412214957659657544535594921716494786026055770527264812844845110197375678250604700108865760423248704911153975907044345967161670733553046641952457517548093702395431830281206223099330803985048843867998361288113453418204083285597018125229586635489864743793975278876533303462355760026384507027192797348438399007665937598213487763883861020656802353920946423486483654746705935520126901923795456416224176705344734809712098023294316749632110802157017565844500679971099989511343595003962930143561375195265044715560414143055117190327366785504707751588336748862925579223701997308222855240337767580507133557596847206192498772777077606153925817740422881351537713057547356834724166131087222075912003650177030456174534139907171927157330452690146816941827281064205326692943651289841777566564556251980699998864258704378410280490267307759548526756142318443089550738580033023443681110264271368574089658916245065178848706049315815907791126520657290907458216451414014362912178615693854348628276048328065270053155541986334856966426245170516260439598071871379694781003793688436168251126938759668623615499852521911972245512035369383592757748163444298277672450848227375167608707331364667506338835522874045818344831244664866236236286397320558731420123520476109394879557413832377246254631187497353068256039036195406004246843341498063858600232056947589873079626187926182473681268708466785100241471127818858289557197338468877176224346762992986388404836672671698253759940767309576529900210549194589581923011299424441170053186241692862001553934707209002569826208528207941607268580992498577685013916250918485254766294144972224445721641633532216641327371273360649667210741559351494677981740692467817422221500959484003390551710895768098479086078947013102034131889355914114021430771249222136099557951472196198973031183925204838932325899905969676763271395567279936230211789101366871725719069525267748458884940524404023694764981764667527650307374791407348288888759029854561675353384135495342980984557623123783553835531572828465878097113029357215188730809874977325156082758598471485863886474319604750489762705311148010252175877607038303777639929626451669135661580683183895120166520890768815804796531148106935445776542867214337295207415304553943761554093418642434822706586245128411949449687293077058764888018513714773108813383031535195014750435706033322262829979136781267964066688584261265229233609340583171169569467198987217099981634808288171554297066979054286502436934687945095422521576346845329184420701657122420335051642720662466709318342601594503103653803646173736406256945689489044850534766609236943762752378871737242369908866448143327614261102095068835584347485376869904652110852051404176337909570095318508971405673144970984271523478981531609836852903337582773527711074028947987346143470953814133787738298311854176803627993502084973447000278321369587015452390129366878105720136427829589270918671763355372305177391794869015134647964223675544854005569004952874993088331109229757153282267272933522128300655332201808802161097411488121374097817597063294039501395835069257458538965776178466316728833450131755585997444991983418828517908651346847294163564093143779135181182929195860508071116061174121523070469536245886832542688055295757916997430643821599132259963977441620821767960072063889084360864962842032054050818771549811856221294868359842743946397808039385629655312635116494864712939173130797838255930693269997738568882848961393212959493633244596545447468908930310883566556102553099367836465333374506873346953387394488263471162528328223889822432839777562661560889810025422921747113054588583114566162667699585741167763827890092777705626529349048536048051026137248062265439312381755442213482794363303380076540601253666134934474050348546957045631931664617057743571809750090741978959796296884341749586733833870627495473945603597878327735511481227440942360365429369231423903932250693331128121568904392783865073097694613818933915915113522837781176961125835027797611067015619442170832792765013072083008522599065823993169161033484908302302914790162902407601816691693008584305090739094655302477426779153605648896618063427363893385735648140257652187632835807889308284892612138166910164957570519405277806155082420053236221321460082473708626688710793234195535876379053444523756548014577174094036918704366780938831569835015244738882381804217684800691223729443244321430539694225819163045912229898994520551868714491830107663859863742742668679283884565866381761678090442393835545009937637164080160955481243364625942056253582108508289834920029133527181879456598645957679430895742674656816190868277317323450764526944133629169664131421502849938932421026377307596000616837814319982090572151716363737946675022834746825338972916170899288461225645555648150892499906790144151267716575436694689381411952352206047825004954659206518806199916506945871759901547300463114412624059472648874107089625961190641234550416270693967782250621902262419804966095134400454115055468075950350884320297821693834357483067737835782611555850678460768203910173144068720689152365416881053761955195130239731577069104902425600700582374888201611127029732672903114399034076760311435112736058952177892695270670663654272202941964564954708342772641302563978763858154571441165000806182875382430589620638643571541159049576513551529863892911193931651902089843506961075316703994549439304779166192517535322739545531066611277403079698256529132663557984629399325447190885548492816505704536972738977669708106749441758224555698245014343177350729041897780161353543297511016993091491256514782359436932843252073589820249535089567584303854907703723465498935019837473952184373659744089854133638250582305039327709899004472468734271410323962969922973802596710839623973050644784453038171954901294115138025276034924831093595450127972549121051372144254141477436879366512749932127732735809030508360486182348290820931132574062308338604949880993658751916534128894395704715405503708427355015967556235276686420553870808222087066418347301600149825024706728410948237714450460853900664772447180008827928791642632948179754563384054920532844076868705300410831598000841060979099136475454027734290075841906587679048287881583073251637397163813950953494468091516827202589894092876342810064166629953635293115451019191486606417565500791863085344116293781629607187785909283029244667875448984102670240735615008502019052832439773560957443427489488913634487903692693906714236329748430592738633165244974088459528537210896683707306347373826504933104594772481051511364698737476562950299211675362871221207567655044648066373311619224128372423142928718207102298317006670790220262788383536438153053746662558062941292501821810062604484331380022541478434427156929579642865202970404695658566478699018275530868917173459991933195436139160132740392930296625262026255807494630600066167950956845400158183100904406170247835364240162840949027902137651676800527452704617333609040236843387918706651762424861547033746379573964338623350243188757640463492474473829264367669224851941274007361494311972625969271257110075397746431268091692626891127489175883724483192667755288317892860002043899137073656391691024112717701291619121881500259828313713831998995307410536997901134271828569319545674377223045536923874052217174911826639913307078145230559778105776088874599436954164206011515882926108046071435085311906694142506147171230370633633134129933232816456040180424979239704810838782545771805110527022995387325998953659900178381074217710740275529650383197133263511104286968593210786069373781222528446259966490873704082486091948317363738612437424864437200695881154539232016798454067007147057728296332535072272624172784470172325287807907160744269456480951546822083970879624486141581426519980538466669260788697837112963608580658489344785945076183222281618087899705532086850989138699408161933785725756658145373282932823680338933143165203114687243101103957618755505686763944028238791083986472821172923503010373505220341826616428366953623803446089822868573694150717810049041106080414949389181984772466663776098158832613767076797204170873089831891433729446817990223345787844795365108566210503408598195203574228952163614495959452643639889473505601646605718355252625877950131883445878986315504776638362545843916604700676981563731666403462729101849435216641846541333420526949074400710496749673788365186636500452604278772271124986773492976042439232782570142289886658907348219080570101174012421234684586380895034585414990235411779922222801429258901215468287040281439805025042544374183496916454649022830665926063979767609015326948632574375357631622527752591686836214948794391260409208093046708581596250711376928156120507233267086839431076807589149623682430202572513620300048073604832665138804922372277988438995544383109675204377668331012836384227602062617552071749038757098078742866315674350338220762067550152371971309582812990204091657866431139434985450757090383827477739631637295918558182589948430456031392639182274817040407705076056144680147608996099537039976667144399325497146925522065604148614011536004093709433610492546400803595968618284128811246022611569542840121571297034163653616294379528616093326233364190058234859028973469288896652746002930894593490295403617182463026521439843585279431206283921376485536008048724118621537586612947163750662364204325767451181079172329498454959763876247759190754321385427087553336359187736728800440808512030897455202607501365463480729476578602382290976798448295412302723580111525614198800445823235347086336592348850505087945027056916778052143521454569537238489223234693414944232097764706805576754838564468791319210703911697871267885571216315585037001945760106289295741847467703957115121353182960644007961297888380370966997121825392525737499303877582222024260781118465478805806711071769214540857073381596031760353220390868007843248651854259341831586451119904405470534050744777557264362224029139333177774678481885726215763976902127736968119056307495815366610538330449902649654522119332337664462398549674857032418761223511081162833536130158466215015583858241621881332500662008826188989742708985242438741783185471364049400237241884767243859832543002154456595040666059815427887221299440114546846886215437321125992707802121344500070103943128142407615259040387981635460217265278082357868427939304441118003280407867098556790779065595353243762120620430471392434496624879263498828459853473207168734832393290938665487034375655444780026559013549969141957753173281013467845634954866360240605517414703757130194337081971717689727719106702778296636767148251569812412778577819992203545495292741041685072691307639474607395347348189398167077654796512599972165194989901256051738034188852115401335025120575181670009490606227682001758843969557350275327467337967421134401313314190073462697179407074908739920721658055168629423374023647737322292783202086327802305563157395118777692968046116165871687106812778577606766571374868897679799338250965310207866582788561722080957040069393076530852319593958866110320565954786445179266922461084131072194073782492282512030432622084932209831588467501556125106822906895179718080806412880672439314205979879693583422761877051615809048807900188362681362842187339682645238627681840286144707787913124242678530229143468910346473140945006495392879885859211378667682298017278957477664524550065062236839948892773875405219210190287808201869076933155037082547618183887770159646868097259135547158199738332987366530944490482657927988038712144500218668081107674110839014753987202300548389088023223715139197051490551537067312046155482921406802279563032632076273288007977225281623445152787554336040545157436144400864406673633783735546508008919603288595749164938299029867192259518766773910661390949484812573581527098934164292772615142580824065257052621329174656511932211497200519283230592025856770163439969461092492217841909015823115482662575357302505000823077659712005292035107340722318130122372233680974960376051107597593869742537934110977741449347387532301939246136481739763959657097435491364364562419636465311381982384607688891503831062881662902240656586619724353694355792128324591511089037134662986318304533280254104539260720338632979447095446797508260017892453271303199951298738770407601716920329758818578734874623867062810824916424040100148156457163990813522822385325468339893466516088379163340298066634463064971160409810629776215503988871827109259951118258664832725530507847423929349947760706792531602368702837769144919498739098394987953509836467894875764582972169162833211629308738638484694834076408499222768638770467842993929812140601262160356862480201597629523771850869331228186497675427453582217165519221139375764351083966371886446696057787260622113526112218719745483709971624585970823711122826397670664905291944004203495700988461070307359190723771661854031648670169673283146128070176610087565109872886384704540006853066313904143613072062014189832712423255771766329691163678045369630042839630978877133776474423160866783115365571341507758494665086972030361214704447168255230423149411123087819603253882581764463773051895109405299704740963453079027111787195125666063432076306975719595926434681515692699254788263910200753983086892811599841684294238926992145632726120184688457660028068312571341951057522392566155635330765980460319171189432979908030982803788096412238050705621456521272478226542206632813970375737710077513935172109144370239539507124898429136496188427380963127497919155725565747404958646555810066449446378615323555676043965340204128239212888124038513609127081649294443988916848177981304376164019252376092109115244435636163938489221925503918727302055450386615406383249150765766486016118431519528549086612148237455412160532714918839907210048972778820708840211654888706822435736810297166419280760867905102537319799629837891110135828157667892254823272687272810126288336332956724271788582215519136512334631916114163173662499906098928136507425151149517239733641096590898029909772690125087149787901292362023266490779929215815822712790156392816613089598929746679995979964246250437757550637560698547202091740232878632730659400358852603610521659885148581962550767183749065131492484599467857436253054357692899429457276355506516637222717951457484323233179321716158669042690376682115756217780812030314036334109107470980189937300158610117566837696419122230481612726200087083142137594735107477463830668402389082629786209696141872373967911702050026960681248491410759819015081931951393805768145564869421756249624609740716699712093848320585488447026975446048504468445762645180368613252708487898151402523289654815984580870372727062545450835674980316136881822864371748541508618338592144407653054390916716983478343268201727368634903345780184105276525872852531602884438219607657937612102960675664688696832351451595958266625394473136338241491630595515015306692014409237893765016172245121948919537220745300308607641553223140270574935943484156842861221893476875269780995694125178604544778575654990446463687339350048540201348396168387306788390440772392635799028745197983857281666738615449347253844034478398557641903451075717445817720783595584390241525361981402550245556501700811105027882334040139553246356105861747619016407931236687527054636204636306071161076147429632386246984451830537831015020420100396729307910429932698240519817247020272391814234229168751187227011500338993605419352793904555936616185570376350057556275104267156263537217250989818461218636665531105192842248869782499218934585359511097080082204116330366744020314537161670438074798542346741726738255236248931832884603717437588718338242353632019077205989732492176458353888233677914433932326429811038014617711840057490427928020329210710951557461933165567729670874874834024681661293059874106413915010088570221979675137699143555421380597424251549458022491066349871603067339528444827662166583196256106395243802885187760793130583922510494671234871377375118715320869512288814697422388706251403900364137970459539612331821204876788752779719952395095684442824805696764152047270392319242304128240802546396452540613594869159540581475907223510056345518972102603585786444566397085653593046454190509379510791427432536780095344857279987568630746821547874178687778496350076857981190469414777905267298849276017876386441293858586155654396132243795820498184989229778696133685160698447884172896562869418659406828889948468874010767706334142565342915430342152634460391146213881325983590034669575101653142939144533754898514442806796583856894852146942270987492551892339065576133330505912940329072078866593067105140943309178877434645458013723721268437156168469386628574223900074647024143194706970368023909736838177227953433592458989901749887919416390571486080519809246380097425050798918673528869038349866981875964408520378883281039842251390974042068620081994786027389571235746675873139685653781427837697415292266804701969517726384459290434320670827760422498514394036142898955307844759695146168160096225744989812531497321743309324772272234492206572796565710638145658125448007796591046074061032983706468328550872918690121612842553729968674613890959098022064970744758393088311912140258973532800413071605529368421282798568575387860511331936307718513477887836048117438095010236169070051906392911992146186089936876921794556483373140526687362378969625081979811903920464479604871221197647670348041728500082556368240787905818844770420360627651430575980116229613272239729445792209392397597329056300653368592161018100429657056777834950495905466529398289975951384900073491024659617971538461183418069224081786927326127252181461934115753612392902642272691302576812210320046928361683029253510844398345544914610731340557918425083324976918429254279217058071009582323150422152739115126554766117434107566656689323477619372966235713857973059572065284660864545698098466345674204066672061228623229447986848684179142901614763937696336631505744677671738436858307850007081356808953304384291261499500177619964729514166572213439591510205938328247954094476459681726594491906324747145157288250453277625935172502018472360914137946736027880387674494315210090362272969881405479249196086532020958380350095380390941069135476050740635552566089753657027808096976477062372541161345552892142475384338909139951544019928075943317960399748645877489330748465309123799252080637683445234471018290938312697484540493882853506838153926387818069213568049930820887520434903147739870797399149766434165106770533956804410441673167136489472427765360994780578017465522572669705064986308291405284713008340928542246074649532013846161867006001454449339273989205944174090013848028283666355832985561041752319580420960491287924358391295725394622002559753156219893213595937299488874935966559791226494041946202830945344155624470289626622239054043960932597275819518990572457955924146778417083075492119555790169349724203468651984844738196679242217090559581636135654716649208811367674545917981962793745876974050161583604904325087746938918131021008184718071087598176264709990787242488144294171969424510458453781222599093439828643132010490629399125508405358158858624651705700249270077919365673963151594869806084536307553719000641364514723221647769318840407984227677839303511375158529772574790806866998428411159384543360351818829157955184904614383301171862875001007052518122086346908251707841929914275617188119163020763470990059826516910533075595032672013651878463547637631479880650665854274416499621517155115097901308954140755344495304237949968472872488995880563647285342241431105154293877130139519510001317821182886975559903858395043675292349654837111144540269132554455659360694989543232889137955352704761569697335908029760021309143151422341293886390752037655126108668129688427948057600250632428300036599157933220677660131575943022327703755812942079634052063968727165415270371300936854609515017551977689878763267923695085735008313694092764251850235089598281865319180577842433956995307104232150432168083461314846133907627959995272294998615217809516416888779228295344205083038148104203096414979174669136656904870956625733985063929449660921165531488122733444942876682976616211307306376966419843508656199722273694878548191573345460575389096442093037348763689614478818908463815601752982703611889642508782358547053743865424970110554526671249629007594604688611076803490289949845015860401906207756865783703594230142781207533376723994978870826688818080168204413611590472312039279215636148029529982006944280828121627412244225236606197190945965044225979207478571976561699727717808969165367114120753259097103816060819925542929037820480933692030742091366678672333184621718479565173696216013564169705569168839961439388758415208833914035823493486444186335566807595996593690839746186207668705911138341152339751873580226219747053880015033725404011920225898565248049695715693122969390626408025667400202082151816969146653236137770450390188001751542859928890912070939748765939191616748282269988389038928380163868461533727613756329301673571109185051753919396470771722890902846601953696933753315504695983316887911596786553918159065583648278903298998148993903979506250140867328939636314268300640513469905185855147233505902590346444837565744226081707583185349556121929778136347886551860842683815327539943567896431827876203429189376640209211423014520705196871248825846402487382335162400500008775499223113129052561340795799922900849285026550219811921106627028119422063412317641663049989604086025124207641106271021021055480344073465368874194033567140100723505498771829683710478027344626544849388463004408068676205188973716633262950807496345516666130251325499236584971809983040218581158799385119396674982969836414571786053584077203357650615825223237702755803457139975068745724835821079048153038943805778235869454985350005460185623428421083849114295055546103871569699343816906302178547670379497145624578565631985986562634766895060364034764546281229008601029881680795299684315559527347014376094626457352627377147602199525790963810304559898228406870365424802491928849980915659092425904630867337017065488043475874129191840621160039429941362548027102810222566360135281440645553084503056580624859152229404704759870123439451661151956524616861325829808556392583412738041743129651950669079039103923380952151174959277811335912209912679905043091238861283922757211972128258688036311396859935296763753342457237563555894247993291331426289828916023696547701343455402361004676474321227603861749417877070320532637771868648368787375550337562751562572479207712790542545758948667020124142820968195496527970827251452886256445609094552763135616276808851445349992786714023808177727932027427977438755512092552760281090426227972238774282267301884737209581332700601970273319441750966575034734042315406506432095071241854899191932529323336998068017233239843348147215423120831858019365463822673881079855653561680350257809050175207803316067447502069890137193223855539926169291349180918065751059918792707584500935875473448159866668025671012634067996555052249687874931203119022035575174448198080854414718144567482848714891534669651418354314454170106074327726465390990476038864761523568923961689156047121680685448087608892059727079914107526825914819434548132515083885336051016568941303815700792867864974761833778786285129509104814755903346017618334648294788294466432565290046351914933243565279916635413085104234582674471187701094868399835016828316361750096176143793978882695462750650677735594025794238685026569552586667827255512752110695094941596321249778909416405609868923835096797697449565018910541099556622558541333426842731476955389921050941099618451493313258793110877934273476439110847959368757638453324324492581222696644671446087199343267988742750483608715650030626078624021163014831584918640018793523799063051611416300341146618131413380550544923258372495767062528107638988201268923487625748122381475817180660033009368059809075595466575064658178682483974811927216573973262266947792769781883186810763010293583926553471402397974239196802091207026398544116821169707677042015238935775132915549049846889132214083663960300829984936605163163658931721373242744692680817024775735954635340911777997601851000294430413955614311576930382750666623624116334184454316309331621628149913966796749701059563704821688364674525000994702915360784649298345542434685348243489524233213643570117202170014920544133582658248737935425959642784511821351558301550902859154582540399494580720062385899565836222084819359346633388672371317916107845659772588012581238488945269982391700111097905303308959928412006594514980802164444184579803978249546712523679435279333807426668936994722682517438681888358351383512134406514041997042820728324993370255061090260499302939091061590047426745186673821875339069604040941894738044166251013043006095931196300291936826385306836266759387080366101916866367231586841289520112102670234480381213987331789786327810660134061760472624393276431455826631122650390222791014355151281067515221824099964757057308607530051432420423839035513110967727925236291881627685649622918023947118746269509206425766916082141738709235357347888896282751019146503911586996164441616406134643502787646479103296365772106375466342977454806223162121374768938221461897213621518812380264348389365054804374236211801088736877046945071041256164785541648409761644392412708090740814917562017448518815268355356903934134090205718128645911239630276541782774083259721884279551470644492660083965807924452917394025722498508436399815004712945868549954364691651215013612970916958775777498668758961835439476824579275058854033591210577484094114492708989308842468928223002749997803156051211900661052886522790324567446351230843027898908890238830571423447119634641148843022734822497288969272308102033064752120662967460121078129853336310813803437654613952298435791118357358581290974164129863440559480304554032062336238105344702464196641238924630624499010694008088830876872804143643780952241271635025225053346276007258310053409342671293773955306780837620080695600158337216348098884032165440761231788194750585754901572057343888899106125640832820628763351527001100473680312237853923528010900567700670998418220651096624757981926927759056565904349335562690008408841047919773501469066600748611665021202775571447690975688982791515739175582169317665766260973950764189073219751321319343837288875405515449608580516820054832676516958953759791316157021475582641217124400606594808578644470520537923492390354573140891925513449594685913488446957834891283971874663971650741568772776425132709660210151452329552267571545227975995777072047371302617585948562044137167695820024211613478565235351122633968376717386199310309364418668100455773091239864215205137251755513807910887640544137651927990746539713555228453395361596102748080973263139578753552842639180647212772427728910740836005264804946899461124732400765489782923834924747314322826865214744696481210769390312762602547502532694172820682867924715232018892301471344747467297682371209274608928862414711389278047242372043223959869541043575759529800385997171102446888521608191242429122833371108352147197263300571300821831105028132749386830499978200729478546406068620928727357061700407856090954425840904585499804447254190983155199805941766914561995089619900442427253694914669774573688466450494340842269587325043631175408051421705598592716138236685450006847332466453225546331338381366178483612905561818691456141762947716442735864283184552467570929433811833462310755841508420984827518332771830794401713458831672731826422393542312642651223744128708754439544322416258793775346600620026860223439287204382392070281768724421145411379012300752849943570114234756173132157448771672584266697395059395150846132240361421305043214993334867499851336422170027613834715711342174710828016204654815910026459794830596803829727997135585224878141227800418446287431340653852224817357574230613290433598655823589913353086492820514392698127437213938773364958872854119747137347331853959454238709605191913550698089747828021365227917566850737259589689047020862979008889019394187834136012397375276475904646357415022920442584787352323487051117933474684566858044675620725174598405391818135762790223635381514352544958291524863266919329601192662517907675814645084626816005106092373891397006864236267944473505016499458589625324078307723842284576520514381432127165924014991440844131987285854738164311266502040369387147698085110942485080754142150093168766567414178075665012522857213079552447904198260933265273850442462312304760308454925534526915433368468282753899073915139646534197842034081621967940986645400000815924524632516048012071196609230983261773967354916950384037015066391462496796153065537641246298326653155867240694899316433755330370979107813412110308719667020236103433685518144406823393836541068469039548175916401795009424300285788203829515613326050234566976875185936732032781239978601715763372406271082647392788814231419846655801487189283723479641730934240009116360994703816390008851331395495143015375940659005628688102231486724861471045772377473012552991358977285852283707841351577065409670317528500852332972512270140151565339338604407457412245782825853034501030807369947450113830909381237806338027460278903845888360722884566744284145190397091825376069131103731402609183672705473134020753719911914231425654887454820708806744305026842808959562702923474984176998284549532991252562263075460833915661296478124777660620143467017448588557375467302371047335109908883456319651836226734105897290372833442693653329500349079545684199410383737814737113465095619563053028497771534873690885509867267955993923132394587124477173101591796248521393118110960382885579660391625968197066241046873662286692521801832416701093840160791348838943183769336897830661141525603296580888573519645782929385981940816000072808693089887978510422717233470673487346694957745362750424252581045274029613283766978517448887647881080825340177731653463683614886770230438232329129002273165370429423359414989949996190582817152290004469950714778177512056333885428748042481982548237860936406447049307291069160400123904621749594405922247808226416551146031596778265061881603604076018920814678999571174632424823995155090271554877343114519315207373082983670266577468513947921213951961445007154422639130944064181785766457875626867589495634760346987811603805690186476941929088002996655834680718978842957082479169172166653054852243089870404048478378115963758759297904728570668483896965535938243894479460574977501570595367132165761769037784422460948633747428258973128148768713631106763599835670683728235119108567357277138713575659736786129952195032333700265561470715517499063924690585765099660763741766685916624291231446137590523094794301550268090884462424950531354229457756527147590971006432194828910345353989527941233628022735880239468354592268328713093000883048693014143801665265970923081230503444683180295464904406260443751251166492487856109957744841835311601547711687411183313190230944961598125151953010392347465776533699884868053775205604139791260384194249201236473515243023114478607641665470329670435417724270712105781041062310945092086290972271265925392959561119710233678602103850724854222436588068267182505643705972464005311853445024306607953298041622810763307381769653533051240893380880939029133493601671535131445981117325141471711239692799169757154382054626057503156261597312222614005236694675137896646609950728100395314462829958558292510281161083403132811378958936546352829326862656522043940870193053526891036006405852080999384890012150462294563359559185475881631882892082095580465641930794199373520877914988517786739957843846757298363387905797706628601452952447519999589753034001171957944565971716730923717473591265615584990459491323534684348126967104826989696400376078882864940197411581055339253902067126616547834707694547284502591374051641631323316821400570176082272575071767793195686671044940456174819218508640528308065276500573512348232888746680275859508540950509556705714531169187394964499365795902432566514619375054680763549611782429490431436727425643820006469844744478328691358111974633613620371974653997726782690951778327623127943910279530973926074621880341046502493847653989938512229563370732826184473582298418949838935206295871984257900538539765923761272024362111521197656784512820044153775204785353922138436932340736795564798314694401666459996783548881370761023163654709323093736769132353062875753542704695252227176712047395069316650410974306037636673263271104531856081292918535687327499686315909698811257552202144457797139369604670373691708477885839539831683440385755575567219859230381322225494780050073171471625017956012122707606006574141447560824329871818035047635977291536967433985387117627743928886599047694486404971517734666255054382790032280330401778770643087074924279577006931249308535236902853329559800357997542473033391475432303814723817863280990133174371909991630029031314233406335477480525311665350541310717931751587782060086364118487972360722371060914960270091789438308949424669032879907898601798172587032660012850906521364245149207003292072226128490190584318958643006530673715157771331983797779612847822171289257955612134736044704369652116289361581916416451402452776935070779542650661812633079827328832478417676214455365103615003435511894054270914831323570092331574734870310168349870301285069280001070914796209015274335108207931909254442358942204335152114910188442691064661264549751141983679915412772951010112486789949762029038102565507890775328353103175989895533104281895501530081599410573982077623021436916090695714714747633998014725355031850299531834134853812932935702248353520755838210622047120864479999459295129717058194275603470403260708807192517370691361858978377795351011584241714397864261117155164253535543288782842628575494394066890409306944430908871258870803622235767079201080819070800484213166906001095344705035649408261396201190707406210378038825256817586530051431187189451975838228038341586222392757880668965240399109552828058802229493577877670351884129803920673738275370994074887221252886627988326350668708098389782976168789085196954324892722077031454232089696301263754488919907338628022419353284474152801458079652625529942955900853255229564989731070369533564415559772593927163061428393619212195322400632257103788346507503440833474601431798272261927608865531410291125876481605891690444006887869669934231285455932506645588655549826311454744137073963333286196839195058379150237219347297639287946449846598010279322505660745941344021913847587802136752638420204746722482359444225295252165250872253799639181872014873007182192857283112485425770923735725171585521281604140706372455473279468310712959734459115489318996051296262888271550677031213589621439326549884664833865700524780842454129512148240941014433907471736946192887530739226044370066732227780372377808537253022097946719611654724268962905742517964965366436427006612565204058836551015420076327898066400731877513307355091111830463202605424857553374029133378719649123142077720398981462452725039466004604245370416837643420377025304776496859335926540394729309965171438393414175201556770671512915825893927990543433952736425122971346774422430542618401087542024780268566625207134248996031876092201061340304330618941215428940998028868533685312473597619783481484070220816791716634683998639517813612364021750454071175590600426413527025077766325381092545887722102346911198008026150117318861457144029116870024670376460521504803339472847165095844729670394542344854433540002770223967842344454761752325582344320557205119050144695193585798654466520842875326589350764828351046156381619671034826243400089106727691531729879090868085406217275667125408312716233041568847417492250948441762788393167220229139184843986603572445315191715693143708523170974406633283004156718867207998215593244157706412483208409658593315823001992122621287818491016756181421503041298027057755460853009655452031395398416804617142961835175029535157052986615831095841655562554184359834544333181896265107583748862664114746363787559804307758505247437027954373942947585299595686642574538002943812741621981472104578725050033084302473233959897742781700464136318256432955590121585228900134916944851717930511421011105712883838840366802290754152942976757656775678504043258174280912385949658871280125122144959860105826794764415424407334190373084108280106970354223751401786956591521965097767729233451060791649192748960777286672924633891153158888453167302559740522873318089961962659956759812362293421368610750885393947512383554605184983764292487316550719914075174633147293780064680304133128866260362309754177364939064666605246774061858623807622083878796965935922009684612311174943713228288492640608511916094231993996813626529354436994237922640526642446853470069829460472779723098469835429292972210744373190110695018243355555120117393619294935141850574148885561776291390968506719418460178943578609101351590971007207825122436524386164035261535181131161709456728916129066940580687826852228385987423321866326313648919450784713801579313979086584990281357247331668164397648175462721378427068304185783012780845586072492206831706520546706980422157155540688626804076922521322124194042640225900152595218581804064023607344738617620682905700773781862155460387349151671733904462932994313603194989362230461506319739951507411564473124338332160036095945022998999550247523712277482093984601642304741444607754248301248059086952768711162350700253586325039613156059887417353274571834190265487197858741709801441462209620712698430474073510707533957928115563037457524760688724005144821072373329392993676437716731099093885654346881200242671049367458641437528774374751831877211223866579301092414830776229604147059296954097750384692906518944305986445784108448865422703433955938371048502023808655183963970681904957733757144457044241958834475647528284917341395403017430224997206316851909980397481053321951299036655576998294999335253562284309475732934955904562776562142202893558831486686076828055912010754564580946859817688040929507273703935870011833127836888690792930171243310069666534695454663324624922192264642410611295158023764319852518422810285152251207982590591466069156478938223631850249996470277362336955812402054232256660173289786984315164328858804959259967612222184450838571104455650138107056979639755021244248503495360524842097793288545811122349264667448610124118723053237012306589450801867523119478265646664116722932599383637430302468215069833443799669139771738692609606662411420370341310909898435178585736208751012133082681260316792715643152512048541281584715917732971189100482069737019797356313443333547428092022975776404746754884503311368185504285310771441253692502402184846665306277716952131680419077898394855576207131588689723418990261863014499020775959680079353815249626876307243944421870653675312413759332776430278605856862386195448385983361417125129640589596381915786449796563934608225259947085082127006990809261873122134817226865262249885784641869475258640407299436084656798934115612875092696917166513994165883617853260024579570458403351640448932652957003060229506296918417408556399157852222681158884279141769139018969751129035171081507943832560593048462678243355829914400005513204236973953126332133801975033933769684004759385919640947749734413466790246879479429683794941546286116805711584753906207704085573911155161132980161689225727010752203130357402804373649333772210375674854326479603609252936244674399101762042524454926688106625100723838373440683428309759204333980847046319499237377418838215527703973755328060233523721914659928353608646170977034792036237589370366546194059047552183984800005637515577232238557696056273282536709732558963175517944679739666616580007571176602594714656315017245011106286352453706514868879401635527459547357606878926993341890503399503265641802568983417339087624719112238813551621119003194649257591333199558542176613398703939859433004414013816109048116334261386064787551877872159430527523690915258033578935167232011455434365430873969454617940854547651273735415268604768556258532985080257043215119045048485583839319305565284567981550723480093570063704559665192764237416613208379592293690713525800779929389372620673521113826333116291013485450590618445420465642576445753304245383749936798058853669816057877138827870780338785279611567524584341458910505076874991208441005215692149752012794625732677270618398561628717503334429523948963255322156845139255777317540528465463418257976412201416306135352310753463995947581215933522985742979367320416327527071214044925503114126280365278184807993089325918672518794691201312456435582226045530655614209304607452640100403544912702164675956431595790540081371008197515218294101693138835699571342681864510260310833861657702836465902397473061589127949951666093957403142037985375945308668580520831417101587317240792752014932649813863205134439681773221119091985508116796319964431940852050724030870473624784347181241762897229838303931004514243566597915871005301910484371363533026470211906010215110134280479115338419673768012506850451201576100119730189453197577395415345511534325756255945966787373985629807701381969302931651379524708231996462618179983523052491390921769609806700751480547209203662513008696077466194003964214972770388656774287788873846026665609064342677150859825688695495609823674355665930511698787665340106268424467256011463624712222383998734949522658368805882231604919193798107218386871717091141809790526020255875789197876501219195072794636641044481597998649759341050738578234650954293988335323952333743551652057725465749677834894316737850553075994700231195241462966629804677014955767799573373412476603642011903834917380046708610546870317822885181951754105657860586868142003807281245597998910416582951235865145980067086620851032437713357609383150168701680718304701099752160448014304684751713257244242876598020507244984304163455454250102376148086080192201727503570312449897602044114256758478246925290893010568916200399392822851224952872830025737685520141581664419246362760814811971903871085426571688884493545925180172151160790790370555180782593447372580581153066608459295881016549714586824963106765294787234454003744909444807256996646080705274944563612183096218711205006394712968994236370149790631499679272332601129512485666080147769787663165661795048088738021571416859396803952121366385703965302786533059024746154860780174901854403213020501930492403069561955107402373190276856983646425538106669655597006664334436592926976195483274930674464122363893171323936770398755742544984902042984491394034709750757152344660129842343786497474089444463388974079895234122624026060926673857370193036735507106666821168865810200219716262782130249081837958939712555579040654713155363689829641444592473598290495684059564993858710192152885905344604384419750558504523186909144734830796903475176924827010718833021086140161718480156775030822183844595499222367064822286306772503651880720788959550525088359788743609983594844944673136844639858694932730757099176674010855786744177121829912129977125252736540155587137749677991234962291706424317351872991527667965578918977670157366418009384886333647594573814117006948467527642965339864424544993503685143413131956932398643635735155690289884959054128209526972379103271757657127338590397333386146193920820741149331536956219524182010238729346271638155773089590332776316770355619364577976459240205548762358684844726252987193830187538942406992164818360983826164457380448850145468971525212104270981496764434491985098803410389969284170701452779779488083457790224261722159215350105265768911967067166174205769879313595012446531975107606021034930821950218019799907802180215958791839162630709249024583768902355501317334245049418709820944026306464364751396329023670904997821222379634563120463145691657019001441822073671889954230816307852224515010198834638909313581070365140515321772775440338717227093657353689378388047511518496809064760552588541453569834134902783385529204718783303698357368894117713901702061784231983349931105987882552229115536017876087154839331228413049622843668545544581525177546195829160422329765891955635251820169557707950782725479022631423756803831015141931604070299884255081830289041253484543410572163007158306645644891446110944814586137657708070692325791541995917721861476696375048101056691674726367458485847708385236313383542256267668297677277043272983756162399165621592916748881436538123079002189932037025270753987759390696704692540523424895570688015051712302623182217670541293958212224483548903980772749027196990517517252643455015298327972423361756640307119220735232655819917826404682597513893651246294069772904974956247122811979757161565808565660580120803861328490672212660056372564660324523996735137992668277068431160601967097382515655265409509145586435938489206978841294682849806862995779438482561890293699593507319979514815970856136524109192993775707503447951061967814317705091950969069641676335827917914717174575027203842486700747777413826361189182789246137147534384733309512899815826435185013431199663811604316386834955553753749793363801715892927250252682002062735035030931114336886419835788537095695207922397539409558405193787407792542177133657689831741931093730619777558150778627894517116521925024290535895531652989072282159313344129379945796814162581508140625534168633956615471277410761865047250913058437202536215452485659620576924019327348649415830934064814183209359493568212473142496618792918126917588191524376201128253715719036516712767351839657496737579526114756397747974705766670475046462746688301449883935559754829189444700479854671962006012474984014757072789041944511632310041445633153744167538787987658993865297259245999721386653200391937961726527146437806681630344427867614239199591718267421697031638718780162919629920233454166725415326136875769907681145007178300925570378496702903948446173756723988270353181700207504892716748945756346748209769407229778038463169513040553761439175626700290884139988819170862917203070492793035959096943712375922324706998789896452772498881318170670608543590974314044854757380168230693923355516976209308162431817691425807204549229287518105940573067947032289989549458871110685058224455251793278384815869243669362500490335679415211391965618853212609224182736854899142039787264726611352235080413870017291446156391671994008547926479547391783359658526591262114885090840570635008217234409009433997892375212701039740548761299849804060001054687551255315864238061730964572890979756187851984307731268743906366286075726997049325297556239217882272206798131557366317943265513515464754795495956008298495743579133307782855482099927142297138950066523232162398506078632519656276494901557806580710755627483541157149624428757034179548928257210562203051829992765133258373689121545826702945336836417841782579532754548279355488284776490732356554384176021283381182773767311472116352745393241900319199959382475865917710481561660492725459297938211728377331082209098479109547954908868165224918120009921881003257449395750011687414870212786381141595705940142477341579790597197061136611581574538944415977163137168072992212586020038350287618485126016612886977002664372940701281154137591649123230019775617465989108005746087105039675578979341245641619611197578767683980351049347720822947315418108480688273655813908100471814351655171984766920392257359816831263523626620362532827501607919367702188567832170977324781658374772875596882775064446565788407126112928457305500941238262187879913118841890421354203434703463210783047200591817265033536311512072283221964152454755627093794832813824394351942847666197602236449235426280154298524177239880702124226027729966894796640410018170827206616933897128145754329846711446499256883163135318608441411784145833140787720949211236683433818870204869219721194814055329989139917279755042305696910034226416555847550560347831843787017900462669034360992518359784931585700714877258864409894195014255488928517057857806650423458454205068184923880872149114715791440788444635584130605680113612770675722134094952458751034775100704558581828733321071278889399661299998869329394980620129944507838527305270789267950439884631700129491412822363720003990438309768900384954311129289319324287064768954706443279648080709828657428374541576674245025456209680983404480521120657967557843627109032354722030353752606729899007671878673325297526719586592261324493700946504129328035812899542616727773234371158683954793846036155939144792057507450151030219493509093603714327764361128611938355451344687897275323859402842625700296032147892540813491728780443129144295241904230155133187099880262044053156706754674496212742059793444970058553974043405421123971974783662899282726218499459396482129515317217205510528147150362704167926438269924405083976676644241113710918305131155561464774452579213792237561117035537512701787184654897874891350104433975128988124074069187030060751484342571115973853624865986893267094212297937162695265676990943320199135155030550564639246896700432586574625127827505279591117943267098484887067224722252346484517336106240384249369950231328490306067151008243367145520109401017949089725104374021218053803008478298349160010886812122149456763872066339004938009371000536491499953342769784527765750532156436606202335168796232823300724776102135928521531329543583821192780294153582180257451773680515913334906475477412029093387203881902494899677341040349453361326454768904302150661466742180249450982447510599979913177124212534508987373965298982297387156048482166811374453368321242817526769702761286013640079627381291403548752730554022006101648682121237628659553376434318833519449132207494257935687505012802056315875819708642191781506490534683780249411030568380299229498515380597510452950909033147739779509318828119317166547576803359744425008276110597037530630483096527640329230851995110179008197271842199110097792437717531598847286498917165612178971068010952249001832217764749294300914947373806042027872014361205756984934175035129732352322661777844794435349066023247955056970403529857958846960677229313852215872523129163168261324295589285810733596432105007085029370204883314460549523933709496645427137200939671096515497509784753382796799231571928647702941755239485467420805543704373588945549438021956295516168839486250346355185120054728025404965865698134589061710109536012963089730746873290997216712354690359066555016693402279762932709461075135402670307836205406643070167187424944587649468935406113060492232685481356850076919456292330085564829074288484054094339222175405185777755047614415788212442176518984717657431535972885798208288995759432379245180668052926303773569779315118324965916232559507681213702129013859480580389070541590384574434983690324250511148575967657863894717012721798271392066487146227681472216499300407109041851925744972625063176148898485493638643452370766555489269784703326341525373963961181877939040997572643007111625220087716878409546183375092396649146582197830726880134188861498508890902225398752739781364301117169090939971843339650805299593564774246514634144491621846035170765313986477868259758696600887326416408882340562746352935799766570689731532980468716979648627604446541793480681457661173612787294464604124573586829245540813358190334077090058488064936978451544322791454778633789573212538777715271483230045427724219925426889710713887135436304016210271530177518491226309517749397029732277056593559722726214144281647862680262133833678882751722243637101491356575363577069632620138328324072786460282815514037631596388303968180012500584725120184637213985400874647424422914843122720093442327790998292034571161050608352329376470251964319983992397394735118679317020091821638667559790394283446326962333660987541961235067592910204061530560267929887404595389304519897193557275878813858478671772918492806387080754035119029129650115923912582828402419475867332672933095492455189897429187747616517573454632927086818649434851417446665443137305775211911310955042512169149346702100770160726641869669290712999416486237902187243415619210684081357390213203093323135755583848571629283884767827264163824789827758471121148538028005456972541672615128001398380026390853456519631973941825789129343965457586586086837891941011311050212285110156641549689750761494255544644076338561817461337544862387310116875697504548750931495769926685220282583220784308176068389064908438254188305213082732820555460726971660585590843868737716472857092984073591108045228799636429332105257979217910151980190298697326628806836586437572106667258206816026002840753724316760433661963642644838217356935097891828613357098103020739432089585748489543010519525700647467441407299901007858585964951832087912599995291248346647931618706775592370435041267294299515343539930569591466651130750604857210374144767976852643687985068494966972903455910788885572689825604157886327382138622205014379612989217542949411235743979436719231039628734278004372334979959818488555615269531668687673915654796417402014553515336212948034706732876715071433012422570879655120414660208137993127657379001496096682312278205629100893154498244830440925622112106855252405461169325411279467287547439662419526959046329625652488680437580680550518989736532631951237256216536841991155271473199161624282840200140738263058647865690028024681684339809075766861121810834830725884774243844470414168043561006336876084070073420431410536191588375067040940249333308268354388568698429188915028689612863735281390598179068304309829570301330410060904375574687997749739094421244068855116130841843046143132030727778482656937066126889683315681112778887559848508849058271262323021467837668457016447791306547356555682020203519024312880436087985400666397867504241082804203489338522206543585055351802630074969201328835640650879469381132414483811370553867458270465981683721848445475429406243147245870453568601082897581322262190356121884895669784314645705125051656936329212439813535484377080956293986697578963874729734739236501349595837166282620204971346738223213163798758971587758307656791249261531033804780776701533480682449335665426764971134682016601142021282391975228278340319813279692925749793724450299039561495369448487637438170303007548374404022028463778857357462223188264939368719666613246917357478124280572678015127725961714150885054750200507539626243919909897736557965170976637335044463463166343748211443665298400952203922033265126047922000100571202018919894186511679707626369139865343026926053212612856026738928694338930574668835962424335316015252522537900227903041697097789840419121990260112522530793374116383451561047047208454239254921721722123661686171741799813145447721419652440089245587391322325095985913458182253583180860668460868239516594503613993938539911329174682547485781577111081564253308713387893988827444512824858666462075912639982706148761917372951394114233078365781039123875488889808467070761559450600176228449947905442527822966010021796565964597116368898250993386064391066552543463415913748245375123668321131425730480358676764386233769140572096557513813479454644978184548847954710715986202358724153274233943517820915393250264889893618137442517067078102443678082150347956657044031462687411674790557833839816574221993569386801058113260320756615258196753749921181701351835043391344081616196772769588228720365586239583975111808954863906311042559930603251535682549415554044637502068365956271811840124798575159050812500254614648055572570721373798777359462835753228790026357441610664063978521019765175085898276186932986578243594148672538282319285183794628216226462997542633851118936398628074867347869988200632435077306517548425695379781020016302719449628796144716106538744588723411119366097365669480622024651721262918774093586792248260657784873120636843642277938608838127643708038764325870890505711879159166701278064039779553677728796702179687494097753593957298698457973215130729843225557734646260540058701265581176284981898579448232706005474923185884392647380742436379938045784381368240147847441779998565861295987458796119251360415094810630324779627580752108737624754217123771590886909092084166787516109066983800294075782480914006137252769197915483280365533054387105407460249880771552776271025690874139881797355813225400412342858451099031456201687777561128691332632378788920013686019781645611782747069812683279699519243195448749599231566213744913451964354255680262501911800651411565301514351360440458064024444940912567709129508724997138878737323460632260297585139710272294391260956996883986967919351376706243985080427859662068771408893215235989027698194745519554637761940003804699174408966646873909150588165041087111044175021857436994082724561966837692059707489779576706147571563586319725240735524782409566465154702707586141439434444966865584199095438931207868950619981996308900036835417375704227864047949181632617288626112811246657258432240249884702552618199652095096872577287761202282540133483806610046797195772735717565257349916536219837693584558965903008475198258484241223208090935108499050546553904942706332984815054750947362353379439238029721572385739065983157312827011565364682064151349063119085608762692728629121710473940778151830861968431096588903175936146572566030358827765286187911372496707561412130893500485524204066092836784164796240875491125291060644950569126306122242594838623227028007041805533803224546435103391885647715192142075859106651975096784053905250648908991227436481968442054009261061373269050388657531825491970625613946012732026281979996684456050404628859708576974597250057847276637155253008250562802493614076397705919831174381954849198654297430873394997375819193836840867506244086008146950859648776031480706210781363851706802616441217293700112674508152265431895656679712770705409403749624786624823874059252281861708632923637858131471528295364143849169499108420222137344910262667239699493162828319931089402918671194827386344110963936372523529030161337999668295159881014058620690752642732007398844553310840179813791161449966375748918029490052869675200070116261593372271987601730433573034955578959717324181294980404166846140990212343249621054223789132780463739164508957788878050354866423760842587225254929670075696954160901247947089043471960558062359098734446184660399173581743257703967755819207815845680950700951469476287090603051361796595776398128245555804213867468161801693394597548773606293879281194267709011153346878050067597810019404133711893255085689075368105522544058685124695578448215958728015697088718169021644558198017908440162325256701126702286543078580224817957630124944820371632735869813194303144196823401490315581691560179777278601091667198106112051345419206989990847493791772335360472720446698596742368269275488497142387329392306058176456707113223611480967578761029993214466596018077463781584439632431269551285686252457509977742825294602409502026293385667925775767285655784758252682572543661441888883806685426953804777470932817634166005210922524021193194876266427764686281479279405706214348255054468958962439529357579984458808493165407711839969282933347804052042647587586051572380791281261329821264499794474232282428986644088196890346298893618945022873799338963509718865863928269713283027633636392630519384854333483994051848939268070308810361965237087195167245774605058119210557874717888365766384158694565895641721686217441052635284956146297664782492801143467732812721882614037080431123958760996555393907518479650241550749169265718822307779824034721651474376730922874127483488526414001796071348941960609556732820685075509149283026340765388131590887728759456732617537438013225273838619505971868875632948996732875564510433435725132608672438234535999649977881565692846088757874929814899530287897412388518243730203508195369885582400927088963873196641454333096879657268414455567024168614724191778164882693831874244018330345964484723791028069718213752791569481939443280434969123084605516052667502663177372690117455061610213755840274711762602220052063216547099125585571401924448913621619003421775464587615188263985219294322723199538450934772695988888389335734983822413141655070249563420490147777607762233956035063472365906874272460095848403421812629591620752802504705884358394737002490435314256950927785977623530830870622154404735173178592286498222257446800036203293968645018939693692663286922905939931980902905601866808157467544422849183430852436505621845113381760631781553628114818505338274892389371276662911231408197584778345354008611630624859577317423804907454903725763571607710900526913441966644658564978593861766093975363112439097823742834375902546757445907912203747949827071129053976641753863055749283751786273917413831842288755922442259654159091179499956132958024633680575880676819546269489362194600569135652535370335656334078411000483275769859773582610183841986028796535269173301488590162433102039920363382933947158470838865322558977625361803029028595404172672636959848016365862412906105775533832819849127175399949328486728574338071694582893387811415773979557419467602238482989121891422419579943107454579569584583960439066749494766985127916003651638765186152343295492503609680476406179406561513318530791247809135609732722362202751946952846563036516139293795025991122573316907981285778526779492545669233751517036390472786066303268021686648195822621416001855092877402851545808184719192620036154299745577633854422934012141997006914982502770560839396482586035412610587578093009909950635264731832719924473892254451285849612204806318298243207282347401643977152905961146323137622050428765862928611524304563341119832511970135231391422842092654417035666857234830340044987550156131527369236825854435595520136776412130915824015952160954426278411678835508692338458551223357194039666792091913242085269655117822900469127959419427538692564882907993660018848796054403013377065795901586877332958407028011514532354189732011560999793794150858565776063955573068362236764966029322522649274559945903489789575215900403347801958781700256972136634582034295660489834980379307049999604064738082756674787123061286014680274201953407560862981684610665268821600917657477718877613082111963939663442199380457815876552501399114506147981247910781161475940606306029099662463939125350666145601373294800926631892742399775715878114121296735978321318520564829293598658942913444895969822382169600573309242259168776595290056815348448466658073376428904366254606872913269842869356482084736114240235437089481279306797397917606501278574822694700275747796857948574543709820265151758653071005651181448851947813230657090463248854883807379187312951602791283068593880774674929704937643025824317072986999620403648004844034627701065325133428358287079293778849629362353214770990376215047774968761302498290072682465091511903448350101030963279837844443947416234400234701770132922155820405520873553281622228982850578211878278656178286065938260727662865615901370055809876850583094965585083361392328409733925757168293176868529463985508907138202860886536391480782694749663205555010171875966769988456254699494470791236260530928259895164340263354174856129938962086870848179167359905486779731574447727618101608984463606063186571674003540589114541619218357286477046787916018926371940947092714089196439365627164599033128870743494549367698848887774269469575109575585312237887217720970741515026908570142408875989525271440774866982302095883737746533115337173396517678460412838348237277653290976029437815969030557828765119741639769214836458732268155657433348833486126547596995752116876148125296105165068735224566518320694342719656771732192647949483298052317939044170599621360002523372550211597537182380487078367054299204612164059968766646654887884466803230203046077687625261008641225259589303853046296164454120002746396821308553212913402569057154523456660016313743917069199279814475094850520122977871655391374737949839629185265535913338994143721867553177672041575054879317860095217719563115452954745811828806517310984991387608983012625396776365321312703217621793893360207494127255476847466741122241424189626565106299867938809371238801735003267231011152789756590106613362315049185164129644129061035658129493525735859142164399367318641868183979399557642722349375739009881039898887766022045450971901679336423193926001187522942348000846253183831318380426869544396483625861083405483302939534872882009132069491038651152601339064246431227498454119310773854581918058890246282875921680694727117711977373219375274823660057118222767222928480973510512497512799114286632438723762059913116374529531929488389636010891159342436690062904143846440481758568614136024170035806233008113901154981642497048830248858471148097671302192020642490432034746338837782360638332994874577989456893334541222655307501851094809240362300141708676234647117485803701903815259765911289990342338045157766855854416815990896571522044878484156032788620385939867037822447887501138500215260981085163063210658960876521076493083445276064387880865463635993967320293457378791980515475293681068643086385102077350935606493012251479549316057884709168467073731214387545486815720301943595127030739934769658535298114174835271970835838346788848272032345527083920188030868834574413511177473738585054741870074777214103954671869062793386688858839021809195002579900240866750337556320367578934402016988735964631554044350027918026864659494196518375620019409232966233457727168358280436382549292106978578403888675798860792650922522219454721988282870743326510955240055894906976871744020321946944069842079439457256505398282739547334996025917936172595428740354325686117054803371596238671755574297325194944449343891411037665121903505710466638962168479321699503895252828259892442406340739995511370643820982835676809914361337844356656516909209018367275163006805088701458779777640710826195465447539705364732569234503515348691497412443148515253223226740786688016913341220246005674944646799435149371655954545553224252930595057075328870561118434070331083759828066602696246093309555841910434930657640964731150419213301589008244879005321212468622658202245244453578410636059820925836003843547870786160705356058640744465209288361176998785489330035340779805989065086678022425918701279804580138449505388070060830731094897950272567978781017583502747601201140483295850070194061865437883246161127659686936648618446638639554661682342100906151028355477817976004662714708720131373411645890312777824021708613483356989782575652360981902854077170821443877190689440628990960763088716412533056885652604816648199751585737325498169381533027176779354703100721739241588961719510470661111863282521704019108994188466904256615416731812382542098649316137333145246083259082915817989081235602584496568417705406588035501658620633766270780146897991775550470848799242022210109824941919813664675211224968083691654974839921401498837667517115687336860505877935961005006884902768113018411754189987336638122546851356037967777833146672682931596555549635021882152846437197289142319061419479243382240806167530226545523847635613731347090665441718066233996377672105019040425400758815670964784599533528193967537705205314578291098981403929498388095505831072021399459389338451270067563257090523885311342634536093629241428842540471508814312298528456248241441193730247951418480742235225237309919549592254957091563960967014670687466368402224084940082031507432450036736817944365182961562016155026358849064639558532930240657616670445832593553796559364970801902950793014357127391021521811035210684624699943458935357560472234745385344756985623457494146285284301496484758738691667421380812386342326057722599825142503570110265770946841465594163499846822369524930905752121846451092722893118411996389111516945242749583474624692036066998847651740306372022714952398382230073480504246730110171690278355504360607630995219438925676689519396741171667660053462408543404275730188867436032618024091001267946335777851747279150095409563391391453788315726221939143643240484256147687353728955662714995955688256941144054148379317284533665493515644885851334721768891407982573991007983027729213521856257451942383261684822915511444815894972885786914390002031865940352255778439478384414416360843658577167278649538991766865276971196808301873202133391961820338243897328467199603016945109152233572473635111816634835570556224688599478801462043215246023379881828834443022221274233975301191484053602824379077263525569022158988349173825494864117566634369616012197890992259923917989741081935186289999277330790575422818204481227419527019656376679690248088921160129917704107314659624298061579644934151100583978544946595472624413786434082214184188741523861177500789064225050568123546146347861158284479780160893730020985806883793565652288239445136717821941526554892777301217798572557262541596741217333549164454813995653351544746974918279787224576135906641729293679426283535105516788172452852473174445582843914423907526475617391363898804948034838184370937501222571191787254693206391439862604915553339909619919296954437369711208724484762449952599301561289520855486061103736900110097074942484279066602354294248979815991616065000140653753625686219352625486779934888114593391726621621969049183172997104810158883290086199433207684004275384547452070020614385446113598439285167247408243916673674352909947018938317932815474680787605253676032570905903054613922934294068656924587488921514411275619178389693201310680383664211314053383614965540250749599335910001676248817727523835352277742194789227637777185827647882727472503895700347446179310249356182604654763293176810754299382289409084328247576476075606547020761406339606025854952601321353720146039127210063949607577402813963275001720077025266450265365453661079542601674277936973862193032909852426256010205170112932646741172622717993577128819973699016235676267633461941927174694742463768289443672698494363616706687006384860504003549230998483129800531226858619548401942809247397222221877123383052372976179030520719653074569820384492214914902995440409834775007332065218120950830015056241979923250255723974926339041106383724474414745377884742059717730039218070202237020189861741690818266207626607790694809306715351802017077565805430620899135768302145819812412024400407944339509188583895467459483667215393060298906702956710595220078950013270320930043858555163474258321172542827978077378851215398885272628970191867040448169111161537339735084707967860754667360819986504267701854839684688668561058121799963244112712815578694457779471085973647319937304861559505171588471875689956260909545623266619118178938614160180700585908782047190473812297370588655962084892716049265844789028694691534138782214140727771921296556628025135340587382542289634876338326841940923525588368071167321896754011698948863667365669360452411961216482365127480352845451354184922641247631509483903449598276771258185071040516430425561240727190440268318754604567767101881261612234672510799619353560287124272166818723666122427860288991355669674374848085964126657931128312233966579444522735586180499103905540668669462682446018870160401247910320462317721269146313298359431570938023264777752304731074307619071326010019268123970623939665889287330346931658147620084252850208633399353131566638845531520168879569946770665422371275215953040986069350960636813804147543219097871309138605629531066885744720418540365366359703590865739749011012973968229825197607958745811966089397566051024624871958078081051828278939205357626777383438630127117413694857657468165257377468818217778876859919622923028358307493866425165722762071540654843251682375898102771784435270501055032844321709174733189309297455892290637189788276853644043506184779394289965862404614359081737233110199286367775596893148592869968877886184330743886646283629298457425041009872251224780626095220923658814402344138773291765984544828868694194317415906793454443825784244028114937856394542277663763227078411626801387946685862914017566015079201271125167894547084353227770762877672782524761505876260247242827139670711530504089632287038863310228827147917047566987328186021553735280144125085815044500402510453604603481810520737625787141110485130555308963478673267074171228878751508545766833974009521127456453241058621867933802049184440329055255760233295678497703153431423244941630149106364630065658880154749071755188557582988969786348258413443443929208298937325863659519395482303383595009052957185307715898485333008166332058265876363408758957959965486804067365271317317617214646373362529738595858762689871344975862157090724229149208177126075523672904979528070972855612752363706386717763666690639263050745905338338139820829262662893590821644791200098287833698860196184060737831224245233971597399202814878094410892528850915680176248229902685155586053973041673799807315578405670204325080491241018288281374289461751185314287205773217577254976377321126276032290581796126607149396945574720590916013890027977264786563210126725480883359714497159347080380021241062435762317334720516429890150617390413712537628991168294048309323659991656278408410874613200002463187446751444180435064727322902980299083037153799709942368071372901535725960745069872244100180699957510685307149764913413159231128179303416107171508441225149917371000263267959087140253232537432066446588081020287970478880685485670390765142669798478790348944674040746794788887525194650247659754952544871808007549809866213602054604556720624273545533755019188007067176283077755271105973105981735064800109035023957737708652254699784170056103702627746760138777372430286984329230518976572278441544555068555302059488740096123016874499240117761157787516450409521598124131069584828759124604259608065509131378516715844114294571465186286598766051038738190493341387190696042504819396399274560731806497901259194304827903554051110441001811174544863260017361176609543229507645876312377324457758951147338192893376451981586084056041805613392619643906476853273077416997043632793161237969917007858842687939722362730972887148802492748333964229882444189936610257718063573735521179747385123780516929322568191170599779372296556571877355737868057726928915938282688491993541105775809420982387258248298357700881020562539660593189031885501705284873055425405414032906662881971119632329993808177625711457631765857647515129952510153926909161285013174673477340236081745951845955178730467390516011102130730690506385016011820954490371727356990934281883873764492699935541609209577923095813855152975943287243332417280923140628210398339511835169603902889051813387589929372789849177578421067193810757168237827032975027088136385667561005517466878829328572648135495688233199717677695075637097175571756833803379777823306272799957172692590502859084495115929292285687770603838859062260334710117784663829657907307824863801442910787332795319231799657821931011843243359690724442510768694319086558101962126914542737738759305665455011069238892821731007167874859346877043074739369894369569567520603785224706956365281051967209180934813128924163563075255629383523638601477902565323760855341244142320061960588197105822440954905201489557145913499147993276553801085477540592103758581120641420951857000004392934194547184635973159193452877321423701750489936497188201545547964046655685847742739188675693412851867310807684573690679667065147178955880227180978090297373111099507150635656465731973399316247783869981744076827137913025415429594208558602033740779064749171282241874586809262189996858410736997119826472902886069439021530956967716536175103145588498097242705559005471035980412127909937772497551761463247450135668390573884402326269734666617283143975445319088772344637607139325120705377139414552212452183292288209347116766634421983268910463637087047445468299648366613802899420821597472209500552793911718362470086896467881427601033568121669033687644947126899259445883339767573889498304646488576192512011704178080918307121226649764107751941341452020961271449403796894306709042731376446486117701854149983914791426370791210745068544037676669935160586778624417399747576588098263468854050849634985489846289953578565307874049286788422572938435546388760839277261241632124632283009828830182586241176813114490018194192743215046039606062239608172563289188853646858732576611058523919040973893886966850944260243051115564159290852854656046583597951273708143460340013086416221201096904210433690993271786423668504745690169807985546865531051848046267161077637034741926702273141351542713170773458135019663537267872780358547437258668486681133637936413466593733011321094952759949295369393400335160695405449237065957243457878436355723796950773296749322679621659854410119050245266242048275873347438834077302741250142997557414901828604505256081092691359984385124677885199262995839362954516162662828201029636598248218887173150373918162171631431622277508169166300040205947046020011407886513002000465973453339042260194526900971377816835199437805528739260092290165895648291564110063984401499887560679083857082598324718292107716222534207456144990848141846816314798775183132900253297810609332901952798136775486184496638496911032046077782356364259415905950883754289960532814228688724877484374416517924124016117296156443062093034042732565782772859428072331830615453610423585512212260332683277217735427640774329663397387412539577540430438510750475897211092067372468361144216567740786400613768000656209160072663864526864249193567899523396519699245745055841257101415869691468795314650938437927081275476037554226446236044768566335935595328974904855697402954749553243135590024846617380754742232665107387228529531787642504183357367974469331281987487965319178169205582501210130245714132221638686953563686865099675710368210561145206602771944028767235737020288941536671105341434292509520406866203487165016110242949314619941813269566249513444588810438730154509680716458105802757513241853368157609300428165152184761117023680426843455248897472072778607435220130833976059140006522015895967235457235567588646051081664630715753798044505638683349862035121764339433156772964509206155175319522303078175555033768407742401531829723578525596025868702995865090903962875450692834104272225367737376112564566560332229204202294421415519427057843414115759388609954746877270941921668849574066324311123911060752628493734117561583788638979999624901914680264533866634329331181593096665134252640963965945595558180816042607833347625993795205966480398053341850731396368033246907177547106989866001393873078159607100596542729517318188278174921485309633862722825026861634048045490566046956700037404958767687181442516164573314932371967853277944348478617238191749198549707965458376361533486979507851221635336661228750638648760054660183630245752812454013582420456682800780766905575547708494268537384391349356895038131105284117714027673846903385036182742013070829203207177069290682085599251310885203265615797739397580507494447589287243359686770958142634677195998043986626374507369404572138483064899047008881119475003462148401897505797795420912914982491034049283765233385774413906271387204953044604971016260406559277607053607817478990345821958256103284703615774522133910692828973207978923879446313347160538841015398061503032635981783037969709492065709229680050749337109593090559128818548187806031725689723221263986346563373977545705044685265238091702072378119135671853152848617323486144561063600165698850217522336778155742359625961659828991554540360809653198133217332156938108371983501701797079752550433784910540497331560018260528585636682228155084686558767220441125732597869944695382036655182906497423690190194035028176266790977267095178409172543021088428281414594609778030756476866138693267007092529640804841969182493585069825559390798765783041565164975957905736739469144074720385903545405758678866648492446821055828318847621832963103432601435569181534090477407313275249664599809798512528954955492005045303214074854867429528281577602664661899117606595095840132940706372432122041850799599148752833222352771435927062648262956898429779747536599405052902500780024125517573637084168923838648192958057063524042282152820762579617572638410113768484681920191471223701333193709530538193539908799236801357408745407310245581575662152802276741850221712237732673796957049302719192132265488470069308399754697886769620873098103664198704271623216028550578289210779419970028030314291518897352009614647570961395055653208108373743996294193825883678645518258654568544685916654509537649660698998198720329779632884857918150057175407259996000590506726453828344140783767878136177722576929759479413063251317673938589638887644233150147134405095128611009281143441099440412568828148757799746869948197910515270535363304151866146962141438339834796910447333627025443175304974086599327978940453143096098598821748245901317805651479826992237765622753563791068159110291522691618109110972918586393588432730267255423269463027664770388263218533185462655390042045577124111013955220503133441455034592137278322282608068514133141292719914547115054336921036878937489624971900378825868914993669202837351710552014339193095953048134283604652480511688668722188813506064502399194873750662851148950298883769907356768523270495016860860120113324386151699040345411760922524373448613249295380837113351112920710962549734732996701038902099482508375351732796788183482212113728709161755262381479233595284320947603322509198040943719545791345815554013585575449976080912318796083733016870129941772534015236243682554125191953722775306817805483369132514070631145913395116917134878813283199282703011728364837302027169549764568265921878573437704026936578128517860534736250970928625963635988890189979604831023392264285942298967644057873841980457367278909308088144362550252777591670338521812149495509640916808670030002232250560725433257699229231189157877262749186793897681579256785146796822708986982570880891115084415741265771343408147141347454661906107479790312522296089720657007085736354194746528838076900822670619443452536808922721758376639219844785144834465965777322232191528877497027650735150571251826917911155259508149382824647270407357809148152984585621804216151284407900724370605692877396923779730436619051096298021215795427811244038069794775023912088252141366613466360036293361929899467123028461133083982274573274395641111686340250693589263610023298073324631235580717380411220867299749671687183709848548341058603497684644687509438162108425569381524709147776674075873915131375359800127851936172637004064708134986847316725164509379406783186532095007378002505522261904018938073329969157279776951771784915682705118628989695192716653408040620627661091766050992906279656197759411426527706740930764554018861036288622401324161140493892747922126695162642611202999676609686960636949048364875955896605375133721173137792585814594352151626568153843873348187463324790529710148124501349562598486462838245257736030244970208133039938350331182962154097552587866690358200608704394502595088740904427347650446557860489633938440769088774202246420147813586758394922011030665718595101224098352686229044014279409689350907131784449806113186418024512823288102915648898395665567218200900341918003768247426618256269547552863095788897110787641831075870915032870356614617851041936776367648907087960579810719155369419353609843818790427922929785156288092524224975255653700123016153320945786769930448742273226932915063926295134305498361891400398082069986146966931027569451832596201235793861989102050886265698572814823691809006622655098840128308450809633312417147467206214591409119055332865341404789804431501136202079552395587419072563711212857939734356573571945205675852851951087711605228621854790789762434021221064807520998609481861196369743465778771536461192460528273806881338328493598862241878260911039193297608537254810511108842424719728334174600171184665222844541828327152263430985091359884254552163495536886185965683625715422015639989956941761158226833995808872915064636271716658141784506018780431512012224896898789468569755055880474688110206575626828688319188313211170698632256056523375893181430110314732893273316197608021961412088299510279810204443076472563916805063117768770019461199705065502368105875475412616083059260732017479968364789049768496659767545200988550017085757986209337947852622353571046926418910310708693459259099637493823036300499113191936410873673618244136095591120898357574877357739220019770864166719546985000327650255715763535354934773097724741148480017287353980404505939639616988802381563650944796677756934230854026333427450613132205533090369238707258760060599139338356950637336784041603810075706246052286028817822653935894771152109698370679523186441852647388865293939736373453380533439215541054145019394008547418427513202086416872970783053851847650284814938753782816198773938579060096692418899607970250703563425692773007612988543077060287085558281564675045510706207498859689302976199190735901976620173044921991556816940135979652552606919640083189595778071258109870141605247091933147634636372548000136535944804261053945784286612817084722945352924344639014798055767824680723124531818530665906909321093663359423725004100000281375232007796270811950756431754483844455865259979629950601497478218200795822070015486874659791635762904321795841352053479887522907421786566108203657799350683894012389312056890129088161011325480727134559746373099747354187229006827707932656575928812961489752931989362356072450078860621493031265232969689517183779767385425274532701293639260935890529756234795665727616936539552558299822090663799049431489593571871430296776105958945150423906225152645366912302105164384649600846373369264308669548857318909527213427506138444410960111304255594269356052860301849682636703840844988212207018557756785822903851833589076415371609394405052440163451075523676071756015801873556167678772882821190599816608870948290544677830688864903720541927218142491936016349062438516948518571618014490124794705593786625932520251227863756321081538327832239352753343880793258668504574875132645344947062203704430762572760821829798193562556596264640986276461168395149658145383134681929546574690253602191684178181960409381071940065357390154117549127691378034022314727835345887893291430575363293607053074637858665726978027640148705027287439489390255666127228481974367138565688642822694786003331561681624267393428913436687232084681836641377473095874765824361136139141076022117235396705488742517645095018780634537514552414165856754223120649566601381903746396822423117316404588535970456059398628478906886413010117790198498323314515005932390317554104309421006096474635046285264288539444321148825798928701522958216586388864066072487844802875927361324717900355138139116964469057823239541949816461507717317112208243540721312113786685460741879913657618450032268717917776102129133865118513734690559321175803158513395002939718375097726422165107081850769047241655798372050366393327482340950304370294205249728401505874880546509105684730995716793021325901529501980055595078943572735550203469820253704529616906991662198505451876261339330755460473138521024819416150921962715118778989333249791346047774150403363513639610702651683934435346950096683335515516282244063231476408944740901551510748824437830679759620396754685658437267356352529064373388743529592973644505122088000397056284201403412785569581442153182828076406941179345848819444907346799589831696578462856987459124737108686175951565131574616481005617957100027257167951885619831669516118188624086643022211397653688175365932554958198946318518927343581168283318140296907385275175441905815202197628565003490662522566319289003315057846787433198607467011646899477505481557847856326782955370048753221521068668352847275979229764362936569247781499032158771542913340114145852214080925120479790246773310890402396609619621343229676843244329410816205005554889037493901940704956080724235129505294908914854538156246735218309015989974145084567116110596242762595524430228733023054995948583804270840237693892247141522453356551964426288080031920147126837994985240572475167347445923074802241023848497026543340284317490572965889777545867729789132802438731562664880107184045660414911259926066472918937274381335377502446809990195989934977497359762106824003550301239739838103471574200758765626254086703304633501419540105773622587150966448105356759054414015808455821388602497560368499373211273207866745345967958993055520298877821086750011001895523136115705027095522691488378988635132247843826327011738886409529225768914285070765442561071261696246188199542341761939360349034208834203349690702719320567832945290962231038060453803474395910862840668196776690726197280438849962125820271577518835487837242095243125823150354953096407975159636714342648485808902441792716819071767474564234010399559409366328044247057501860858123259545802820045131763156314477463162956162994037249216951299088794345827858079419229356184875974306536614068314558374122835402815316822173194360067529591773237744499526253435402338905049191824213479906215203386559384796990992165777392448136054849371076250707151589401143711853858120769127129689351762463929324185750034550242415900308728253524680648023529180723122606700975242178254995204776602980984900025759006415513731959573449718961553402076561557223817019842848132187828932862791076204537352802837632499722589419632173825653377234814850464216233387644109630674778996869065410604367779628686368843131428245351836216654256903068043059660262371845598991112462537926228787122651527447877175546511946016805274547674705211356319009880978685846682861149017502633882330028243840212614290217143649014478453906082797876592430881833718236614829299844770379700650529805286199923586428555105806530498913245464627457562557411178349591619306122917085468527014744582861054084742685479694313091286233391551077217609504648315683347119090313731237362157650474037631725423026395055609516472437657003450503510601136146337476716797222488416268472579198715816341522596933572410924839351133616839194546563498412422085441625127465849545579894297941442257558636700458441576828130914654676019186242910998496062893957874080184057480044391208894711788442565666193258660548529214080433355772346064001403718783734935635755656083541702944903045359087754598012022692713868643940959734433075802819144852932403317365039490828590964598908197246055167586493573120447379081932957409181588214367376726571245757172720844841054506500662266953057213626187442232840980465378075385379799403302372290429972029199277837490640737604933562287954474100249209124209633658494153692976702793411177342513133903547431184779195941932955133523632743245973377625437470320707868886407002241812442388449882097769628616305685922024642616769448377315333839761748039647401214443610491669179033701817815390698098041315190157826377799702958336383246148910878674376998222809822486927186712900741257857378182905947344773377076133837839463161365059450520467232523656359105543125452951912194664160183042311584192457117421288061812023050301550872387412206725799619393725182564831050196566323739871196631395094347499319607185506054151215802432614033002467576169634635613064220110584563489149516869465124439705270140219166626453308727853991701052977660571113801166030894505470869809983456502721167347636004084753253392797603066024206121080616641281788266414590558803653378015317669571441891240012956019952479427507420420005555566775145775204922120657699239985842926012531604824950098060251235733057895381255458467485608592539124895718448590711538635980980881427767073185856112265460974033560902679083009829781493880445175069526858584298656267261744918683827164786907318958037504850089711047989266048143486301350610140092992699254926497692757326713998751481914874277143009223024459661827668297943576759042443702705149880897854120824472934572683025462227120718786073303456955501301046720287844312224680726660381611671195438012519195934288823949738596704481684141644834980781836508086887759694166053144713022172493644193101374557347111025226058901735780310654827214865642886745154214468848191139751763908479286392368723215480460784148782206332397892168610195702535727557766120761450804736973255728075507684433547800406406187778727687104268898941111486297491987303668690344565547536173332117622072904269461713251012960147544907731359251789703480474933875470252868943433399110388539578168500422842550868649693308981377248740419132384459785821289263212435655027943345644446751232654802356241037514525028229365408385094402195305695871095233056135230476144503974911860545014676801602582909383765691935441447357360494055796565027386606414145492838209748888195988517804518908098305722825781975551370958757052336605163326536873662283826073879188016685568162681370177593926390569179878467026814154273218690489402103813732912445652022388661885993887479349177385729323264657498090203879938446051934557150287752827172335154987646607209293935834448060324137033992521563682571539714468253342572350059781556616614839274719461613206988923005689567343811092442603117673177755748430078276969449752137481843845575885494111780914450774204169830576849343875000745410723347534117105563582064871676642897401010232746790554099053325954267518692098527478827715412042597061836439000683678689325270569606923811559859105416514331454691975982201408029084918293398885127209033240104531876396320882703284723426008061344848509478438063643269381663921211926082904674924181424075426823161448995291215711746582298855887986246336575434738077556891613546556269899085908484116262027958891896179520737498514043054024216753399888770252061329776164522622814772903354573400372116925139784889474150167064110081352961017969891896379546171504050159437253598132105663707943849457905764466607866485193310595940026443842436432384219327156807342455282415213326804342109805018326869046274244827320494905205208242320444871761579080365854140022863304673173883114298696888934546805341608014082165265359520000446289829891100334076633202556413271292614319305175713196084052505216020941661424455156410060457434961864032965647234256672416779418540970634732017096202442354076499909533077728355169065870389207313539078539905167243516658155933102482273357092320741722128245164364202799196576562703925571267561172157601560073278129804267980463867831696776147599403347196324366584775866911482571892162233100711433850888671448605726318689806176153908540907143024974317872341606996439421652304610319269197249602423416774029595514862780489470322097205255755547202679129568475640129184319597779389658928464039979376331220654451692290592516265664109211283441038179830282082584580953656076664141767841559260581310415456276597632905476525513335713688492505391266802016356319189643598186895992523062775722355536438259818724062851750003572623531397215762886543876427439191559423312125004224919327319813902820596153565188536755959813404964872848086250124491999132353995988961797585595606111589526324567640213513702360587411449225687350726627359323004276164779021671070072419547058918316918395078517181856670913658296699285262991947454731788439397099397123985859948444456561678931676753515389816957745787950752411067220616964912024062245053521431935666993106450408203475301274668115451841132128596871568625481152000957954881079191980277248640749732074118405738582395588049508570189773674255827038420246335051771677472689186168606710658288998914060833454801248826417495424262050217040419232853997836970538330023439164963344339592582737651605564996388680740150414939017082687435283705809310686816126819979047061411915872318753274137645802482933979489003949291616549809634336620559479929572860623773132526209989216254980168902429340713579391553885126164764080460656294371712619829322208365811871537733386422211779973122047518891716899146510372836517025160876508352603568000159163070424915625113496211564618790634320701995551056829618806462838553130288123764168166182375877380484845664054136651818791670849831323150910624978582230804742380063639306201644253078429358038454154176419527395447055831619203590067415462715131192339755672776408347992822766856857371383664304708089257288473460813852319343316364708281399268935220547930705007909426714430120267395538743467342607347352233265244162927054570364237153032244588713321946670041994730068123006751571083073258034409699582741176784912441689223653308600946593259413732613361776171777137617598066394570970438667236891498014529787815574126247978690955462957937974907176939207949357931978638777939550515911756670429058650208284322309397951810464880673389777000630835940990661211330845815648028725345570675539249492913937751529431482233526484638910946296499940608606633951260312540710736813228185135946240791025535931340615987613476607591521686648889389560159368110107428305444002043293505976440802141542130327029818612892005701817640315087651689875635775071937368240345522098893511740749942988558902703509983801592730319604922796356738594238121358043313985474663981799276373842752605964465302199361681442467835082239954942420965441426438815380102182501975201974110011734289116074527622762458001617823847794627923372257275055450419655423217425427930095554695877953224933963664272761578676817360708625357673830927625946832778488660722253530741128090887419437169891169001238605395332657452587609579508062700471521422867080405960888172504118635835544566368935929391498568176465750941293269960036935700206131629590196481792263650368428000468182776881467830788245039559685980582109169788400766496252133199436850820106740577339161055640748262994732372081088685281190768205426282745480424139040285609560990924543758273732091773906941531496349870046615527920085174723228072161580380852770526893033398890320116658589321641613887052716694421754815025947746542210161050150405751212311971795172099017531368526045111735789043287521786600513580051354722709739379695369622881766949968676228013162368731588783687251804271115225908469788547681685862512554204968524904029983232946016933099613988043903209061589375115226818862346064315009202370592403657758372075411807307184528899733188026502916461107243048911215530782895849076671452716321197839000395453535313818502832822120964388304205073407057253645039620393130553950502485546852130998626807384432013704379676574882028207223676383096992306625999724771300628395728812083423813332623680078661675171761474038177524177096037923315759222878098515804900319656917274661232440065134646822383241096015621787146073283549252484188471094645239168161148602129735117773313121279276492574410624641201264243792718190155590966627270867663535126506414965540264204250215046793395094402464223890303160684509594290068652061061938641267528317702732760504501460128422362384688384555581236921053456876393584320960958843657637373962945966310602355689834980220004697088360539337555667638889032027592870026204302204980612975133303790875411354865146434136324588403541471408963827345899661470321147425594788736231651763093751229184672378147358215532183800967632943322446915026084639324415720501746287360555169111298950871288026966795734913284513948099049081777050354040942320039234241561120640442763966167704861982612468946322953630929362502939218143241463025129200168100992807507351268281702830676184714849060824485435635840062043525538479814747895516171957785473777174437462697154324855840986143353785814248884917358523011947658680230662473875414248013593332157878235736279858439460987704707916550427719623248321772589026835297209216502564393052823063593209385522295622987659682637199695077079842287840325461132510303829762781204466413459328601483700200547745501058864467931512857696780128823639821396309198009785584125809571133878532899510726926992874366678344378776551325856109941067096558551647241945906695726767145868321718162502690876541458510887084847718780028342477733901510454257025810080558666864639440898304979762706780520386212808150197757091075314002576892324984769725953978133285895928629559925474557073071721119851168188523336590386589274091944220749950764721442616431344028471778430519803401424491383440637594472597924330629935160411883284429935304410075208012414324561635541175004237680483573137498735289906063650426025667589443463808057272889377171341511372937046035253008628354145440917653517811168173289772515586498587952677580729650081484302517301721144145593571174367816968278961498750674296409150573692546444695766756364169304058985228837530843474203253173453672822513052308652210903434483996782626318378145493741445159985374475063986529940077135910893594150260696508855811174313388592938161398753028159969755848131743321869022986502556229485958591386151169993303184897060574564482130107401028032463589138413551203048318456806074190575834694913839079673831572325135362502097677813453115883489137516044337349971417937856596824339395554854825397584213354681627808005856209979388714884946660619924950880011644906952731700443613758598562439626051636858717797725761326228704574969339432840832021467164198454974582531527877759695878195467424601350250461151358033019737763129920652722902846571761071465016025818189508745470372748996575893843808255692014338656724349613336561654105745278378459820476292678752570388877103525342788716957594095275394080541343580863987582922533300785330667601938789653871046575683994075675264612365549967606555409128538010903711757394249443902988095129465174913210059761342995564655279210291647208505737685658623350498194823879127181375017590017451413394822271928697324569242658634602933798851807379689994565535660672162149409380494933547777907846560004800328649335932617309083098606009823749756772328327597562237088233190974166417458312209982661455483739940681299347129054213927236407375952733233205449491443704805332605527475623738458866509928048707199616138446957225652673522925517844284983501275112233342657285304496441566725727612249425218853097398627661599757715689042936092586082802457829535974561238156188410118083551374494443978131973117573036273409782555030948237245893731398141551450119893077859430580760283214778695151154688016530336891198595113239847835846288702803381533810798493487176787584181953411480142858418284373988426285981823168255637781957834891701097469558969063067993282646132168747615443599417296718749998863227840378262696477174300747195768833776138525771129717692135407074030069632808738177652668651046298238622484650042029002034050209268083413229592226042138693989001695771221308440173698385108972675114513508984688689122827557981636486171776468819701518080712877375213967724100062102841103815219801461602897695907889101530350896880722396814681405615396924955572870965758249013286019954937827803639537203868195038275066940244706323500498547843765933306466739608042873355890211328788299442694708577855394477076954750689496558515108672106685972928234262616285481383403637948923816136933292396157944153115873316679929552420902096238737836113977431133426932446607974610411778597645403527918698320690324889275825034602672825905814512230530188533966001973734897039559981103798812731128724656659684045014607334325091380033832951746263380396722147789081911895706154434233593394790391077455893495266990741559821903890086174686971439431248610110142465707620613044578876008031842448374118037817249010321771409057585692389951104743215449786885198081662922653778572962090229710537917420481342518847334761580129553872147502829967563388241996915949743513561651557455746344421519429056469875609340740469693783839997546170271390407821494236328394846263680685378444634217343422416266865638156107225690021936395515438903146509647788611627371195188558647368784065306458521073239880692075561373947693189167212249926317004706407000612191322068322885865353167364726146659963120206279050734337001737061000933181493752985172112928778647636780231921893757074528698115805134220292995655165075067255822321604109800080294359699304369484093089534196971457530459380022278621107002564026566956382551266611775743342569532752213208647759379620837844359113799295376746156419953212355310792850798144398608439694589025477501008822577112605583734717423278588410524101455093236433515037648066227156654536909830458748533330487636075084913315622376740951961804315279403991744676268533402098778158000901237253994947697585950381914608939579779349996026047328011921246829069546177843750911282164069797247036692289812590464247523964674993092863798103023635299505010747172122225742355143182287418080396230849121821958418319003356283199126171128348596944046108547022984397165277533854304944008780686451278833894970097911422096352541983354880186672688625240707078238226064541958110881727508630775731838951828256516081104545450844394696030235113618106700561542395521961322313110541585847621947354251871511636816608757993979403520160669534464681707052379146144641309694627782117087957237571404316589037926247428270215614998418818904561430259291647337469138110939070258027293034174720128727324730085733851740105905443774362904984834728832727082454452692169149252534191350246445880725435818886881935485353281310294327390563948887739118553637619328003705971946542000490079295058266440717916283658231412170171399941134340177140421486317998726607931488721771575781274524619047789948532085065081406862663078067470079620401341601979985011178642381218854451887405899059444609841734043263454248953859760382315369589501361951902329966286318945227956461625064373670357215060241107071316521125296552132890018691608449096346008215634751387226208613012609728519883271538816091011377620049733541740999980088067679601220675598046051665389544306841196619369316417351388647210180780452547687207212460176905265556286158261944643701924728066370615569976836321053256412705157228443248437977281520552433797283518849850361877193494641510725042747249140623746437632963413397904359607862137749351895686946982827133560599216538249463423421999467751082510138663127996444678410127737891846567288094380728921264672576545213945810011661366863827392680162980658052411594548821018971585627980057013346939789901485647661570158271523918009932278571603337470265801951813364838302951059444689842067435309270619116804094079036246502938392484318428855166821286437607381894112066873007163070768554794514246457010811737831331180326424519866502532401017213314646526931823935617562338086002856477635337917658794013972060916136403967540304551905772222205485541282599334803962165601136286305533948172732209761360971355910788441792030904761139344879405292339461740685715962425502699567017599851113516018646583903143624679059144835350697731467698783412271419498082665682240118788260187952585419066429628860557767865579000360237561061088889313250910658307780010275530198144025905033907220493430073209758764539655839288162324352827667785191263084268359698717498687563352893599394594656568663174140616019598310411489891356579179967305745754275149751335909567516982879818467053091357405381044816151980196182098577162082668446803561858570426439132830421580988381303913468665403222310333920512689289800723224951064334979188024666360276139981443081107966259537168117195499923991882084264638956120830390117386323784999373534839834756216042224262606667005257135779260370091700772353876577020964396360001229080566963830684553294335856850727062826269622212466491543389257113607607018089699826743678370855850367248017184250632783480141559322153367093341900729305525129925819759315787070362460991034972654233408484123418583091936643679209218093643329978228902326918720780656768196358638970859246135388034578287015271629278436402193529102523197875410287131416720083836098795504374929626045499410357085956106254478065624984567140725565777355642011749451742892670416469919083899108272776159056231533462112900522859211692876273710445371380357379724616361089731132850530356887289856342048630370776134809736473286343108691747404021462740506118898050794987435102050309754209374406500649595404836864157105301975844909647356005698050499958591865620896908665723310473990507528751790223701695206912462123624292333326289557648250658431350517774274202661864014029270339763608363857606910580541414478757915562270379550018458187553270127617798014233362468542564558253096093249163204790061410587098075525811699775890860279734458335865727604517827930602236369046168246833956504389041745564375492347140095562144387492921443028955934210591549699081858737395095171245148629575795506169081381258473264557402617579034379030849821619235430788689072368920399890782305603389782827014996169400146489926145567205830464054741099363606732470760535282163214765762886426234575304716755895683456398457086172536619976508468143786459928087248927667807437307524811341867519223835733135657330820007057046601528047126148767334915910589410900296668822036130766338068441422755843206983369383406000024872204520268414130799684158979755388878728708937662542641813291499207523628489669692290689506790942033673574765251576537387133161015183971975845614122139682128851908652515665775659094894619277584137775033477595320559716129639063810743504092126461248607324791764620047917058547022380462732907895352121793256631150801129274404658347157651765515155707251472046201606917695521418953899927443191368981359485482362121323480722818744386600789742428347226935605935476376614874222427397578013186193381437879260056283628449356205111768243944855597876975277227736750635050074997244165299972391153059434660346114281374082276438043560290673286958444154902678115526526471622110336845529909846758201217270081999989884400325585772027953424066234365728793615602470517681961500037830807691411506887160805939321522472777007408068780999850052380325929721690244630750867778608954378843759932747099534624121257953840171871412480209461773813578090484361874999054855559533821261617071784260989387829900012851486245398748197455212543609358047331555849287568916263968052741308279265817439345697828153756124976272459000507194096540214719243395941736993582227804977725709951117398786850645245000928243014349971898302498311923246241542022232063473592203824955718110133925746277307222904204078128525143564536452900143527345547805658809275090029279293095799222870335652950342953868458939167831596391124656026644137968108595916838135654083476348402544429714605671627944648824756216210357777543871514576117362926318817728594185685073988722624263664481032226233750659148852888370093813155343272683216539806168858498453119789319561808116534732906109726755458169522951531392944487340817068362658328269788522556804125972319530742360976190809348550749757998184856357822519577895606376655341788311409882410600148642832459869603958478029575133716508851603289132657384894647886600172404733844704641328294782679906827597298732317435645788807133373147740679561873443349005136617048937991523189681690678167004863597640590763282408395060390749573560697541976175972403057637794332416573161093272330244637259477550490060212499191505587361800464567674482106093111014099904201601121264624500064276918705496381656899045352540839009527101302215371777006906273559830692709440498890067071776972639433209902254440287809734015497966172542626324260950779213549992373967983144904113599432581532160297811065126409404911452733510009955402168179168589562239687627448367319288767823410268309328140277351809763384402582392182024834424968201634108393963172789680963117873022931537807972821468010922748215301491135882154630990421019650567299259981900878779145955588701348634424632759621386986594246988663342938412123956336750434985836213750032614889968905825057247458324853294618926897839007170166059017640353534934509053089638417790273328852055099893611786313377689121063725692655145820900264782466041766288536346278921180221576001785489745930286093334061546112893393770361720039760782797470708638211947393546916778243163374922264774754123152440893633711790140738637347669156153756560213819181570768486501545390378827154819564343392122054459485661058930514500975596172369110988264474369453270365629002810169067819671471765917201443912626043853361030135523266994350494479784715849120729333734203601499436080542334676041072012677143991914622143708840138207881629531964748856992575247549961393853329015352922973791623029951647825468304209403042711465965679016082128037838635020007711538015367414757132094885396076162544221350673857043600714407772802684195033976444917676105181933375089686072524499003473266110826179131170906962255101525787324908719590286579133027109274038516885498529724886735284026778140145012013462793262858264145884200672625733146442412726935214501370482065220010554633159977344430666633910085185789956125220956472343025062391841158788372187820146634562048144340868123097567787617021926313608518916556737701273442870969153421407295097412742283583770963107286353142630312967129955068102976999421024011653516797517708374276338825906461909268397596857921336589573496407210603545417169955697706237773691441994431475777856906393915155313297969967239621747868054204135619740829909391295748214387172563638239154475382439557105033146439486381207564402916426362324616661187059007212282077247600193795502912859558505493816069007909691406264710652895038190306776314502807056350216150714027839813697882806122692038684356787828201612810539541998224830409578316511325934204868155079016142297901050379708450767965558838006846729761307134763033237721149821761781965146399475468959403211317491003775785909498652387617475157647455222398245915923657538512591603561446295935066156863141341444925700440120503300005459359668520864412272697060860375551579238438551351879593590237488669614861428694658887263146078922538837636266023671962791220601781803996362573870514888907865478076822358851359026110220873007023739930130088536271945155975386937802591986014506663392615574899661477362449552429863579764287962650590341570810806925197586710214024939724269704499901979443116714215244636650490784457443266182197667362367314590402332440623337873241238773870275036161679623512740349741512159118050830190137383589973562793208701250356365539063582597471038617180875922272125164814091498577268875592551448012283016424413152216087651961658178265497545125745516343341608147923145083575611811793271565932759679857453735662107392794483979196441079130011239085995627890274379170191882551890986971162574547173234498223595441017640362935175121132570855560095398309343587413389266263672040108353153370273441111049214596571652438674787371625113139266820126218313962521130414972043673905827002616513596938102950623989458914291786944605615755780975547593776641560487603551076001174321150254191749326964189971687683971046440092393748905928845560372829761207226576216200932003856388913393105419777955508121566298951761522805286150039657744724170771988480369124543014515459503059054930025497478291963344974962309663020023161176395892714763727649790178867436185113096278986058928914070008278858765068392433141887345757637494280209500711239700804436634398254581327158332769260263996678435274084975979554109591518697996303206631575138469942793671590463151769761680212701667107222691481332775352327684197123244444092015952650193015526209446041250936258175011266004417476647506753594541716275714203551079774645725407964739859148010903050384518500349364607570949624170698095248310017636508234676678353726675388519993592342783248470099696535079240137014497130912036550985236326042480684126191177570931792126344506569413880834287901729501343346147449829501551058464781085863860409039861469758270520379358076457881179852084145107529313613608287423265478579101409392527323123757900170070553514958260421226981167937504916839575588855344251378501568119437526609435961374839481328275300409068468286072562990352128971195848715208483363348158294317397690293047741500851920224241041493808366442221817042637288199970252806818417472164297196477370385138489432114890640414040430485744850511060943105579034559302133249369557928157520509999357512651338999669674829568379318253766313530456682209371921581737117917829847479195249318919533083469334324549486619663545130457483634729872651415022092557598720842942631237292844062052686605106934867443821321272974554329714077153772692800568294034333368405129327908973732255036732594307114175199279914660545744186818152997980482317148233769551319776740978366996458324232461416871277492013634598866873997771772209198185431789294769825484164840960071633491554042734715519932143244987330522271494944538799159936084504922335289418640743324646723818931849894593258352692871753267317932819173858695741984537579522133840794660644066606724830742915208550680179360821506308614587413810342778726998209616554068815500898232741425928189862536601145776620846826414970698479200465021211114535441982665094110771089888038313266566312580388344832840113973070174024876172317536782987172901083996607226125832226722074469097537317130191906711617516074020673134428884220213960153720309912104499688930913862956575669172354904990528754595248037253497747112524661867313071029567510825362873216805838921271534596318317339988519174315265310344200004521703705572999211764601550432042798086380397896881532809961038992841684080647176849254531363433874623408100138182937626998182349641555722028065840971374094358482436355210777942605357282093602385628846842824680399295550792696743418197585899376973325798724346862855845032586359759099096422878612079306909612382821420190568731983861762946294076910146557384879252176557300227383900561844852736882951759248209060912548965662110042454002525863252587230833121692933400236115605972884460354993065830194446934034469373968784802687677925116646149413670693517050985187120771587239125019355551273730165659365036643730393178410302305552966539478247546759791289388892737544475397974064742461078817016193520428652304793744296320390049612014142025371697851217402016113315398511180974845569702422510664357327978994371141057338852914764658189975659485205935079367663678719314864683814820345853655794725699045985284394595359715877026714245619065187866667980465680222280886275466551978394157774387666091802816207375665166228273006521308790918369824351244449541874382339153660296520074590473351817473471019372574858001402436965264000994230548961186252561009598442643060739407720125765625377461898860113511249299975560312921063720844478905953944729337897432140383531585125921145169710938354367250837268570362955886437409341047229481889014038156143433314964703566446658961645363627053098395443534859129292065034405942166145156717786947855923184747435518966087855775549788686030709111507973542929598857921715080339629488069789575876973732388543788429021836869515457605672337473951936875749466615909326087701598518170244624593868280842824153014008117129135187348099251721824842386358948181060334049490712576149084510103513688487456376037116498483358617810010429859233779586170793429291289030904788075191660734838264513408280086097662611971741608268806989965873666818470744876187945804807102070759515103688146748847518279047223556220416245050239512503985945643997453528050864147920753706038676012468506551962027182793598230779481623326362253038198868253783932040529171275069924711396867761611389360985082160970855570987061602256646716417191041575440115676439338672068836428618685335943165736087793425147126421118953920730119604843773139576770647669210406515111054267530455999590742525203824498781423746124585398403061284432374130265507731580845770956647992890199880378019989195919926152334571365748546556816312369276549018291873483360741052904698574453054927371309065727867140239685387230064946136627056662922297475042424544440911757442294980597629731095338842687505571607521167210897185842510313796323075411739993556173020925487857360567565140676782198029260914037719276442371173727309645198587233656510441543012693414548281651355265339627973760463974312672566724438860647522984638210320411212066245202886812331028282972039892349900748144034232436025642976258554210407455677839182970262862294083531871265714999639499290644411345749679676664649814346988603800528383237920544057442043851847645337213681256076449161911808215535228198612109164107418024028496077404032903485790034070855237644987178247689867188695457142254528662358635217130787526561895740262098260865118233601220462447066206262347309751681309846172017447000226386649776796774560916910579008394784926059094965787757672108148956365179629960313548476759730294778502849718171804763076444138195763141642781511769643492151587768522237188074831640665505930182428778966673423414722264922792949910166410430854228260928501408124135646249996087601067760340278412213520595520706521333847936310311958743441839220567038557042046993535765243796732524564368593906532946725457510406941834119394954327955067796721615583582379384789995149025801671575372441930674846047647585948515860664593546942018548924553108128083571330449304598361162974335992184430346681701256516147139563332360163703850558770171998146436738646696423354809152069423659514046347992635311212757826078940919408341766503435032464693671679359389756140952576470309851893535330847321158814115892951315253338622290634927112499275846666134445092687426316922933883744886570312522418663399184217826435765298268241039867241941441766236691089233394187200601119679732040799915224939901400324258173783331535077221121989929449832811197059554994925413395392167507678658728554695803416354016696566731682029983548437373020582095012804065045307966571408170813747435482834013390827616504303590308243939414985146749631384053173585518161815480773862559064525076059847444253495439405875725302397045706233835060600995377563907632165265964167767771394509770170766446480583554766995558473691061677061567225261930897757443850212860933201330015025770017156551413256924965779618061889491756926491551110851351709769192602021689214803686657569407772529469848399875648819414488491811042950232742062984567149049070653923678695504289281286129004386174604942147562974648006747704322631742250050608340095005471919850618186804435552978908735960177732797538079445447765231389604966279227917275778587225998199453625367507995242391235471685346291511071089097160420472744762341617131020156089580844638373679438610585375749129141833870440893200020710128406896622987017397127180371179324889568983858315294522403163775807095117136731714011340471888146736284812504375537976520181874455872391176086686286469862749071445129623425673038885962993217116796466287393637193130411829500625125981859233583975994180050222380130662522709152561643832657620373297247760479020192689090321953484321917001562277354648960598468868042872320671105037698326961242856391348411261558528801264957472115830110850987191848013780123693641604208287884286031007619520861229771820932791917528577720876284414564787397691759287625911006333863848089707683344210208988305423686112875000628800092035717034688627780337764288006858342719567847421993505381097979528583432178011659774997759806131512795269813909715541620462227301668027166315818979121633656456446286557374758623826606382080062007956890872518752434064487038256156500538070733549970799575586414257606160077427006365546370964346161714468201657183569854219626555644604613596603130543620781574636187717273749877512507251809593589024528957618518746918161531117729524206366967096476650625733665065350298330899118621613110709364679738409175337521400670767270440755356267079849634757336178086186785372993113556987564916036969858889992031925472564932696046684240573403665197611449307767306335329520142940400281643948006085109887924475496300282194571649053230894067554206661788181075945567872055247658664472581577847947225675744674139692401219603086649667970601545741088617409070770539969605646933825789138659029234225466973548363097335174838307206204053580661390334266150358574924949936491036362470559875899537641604071569749416095462297843048080433148328148986222762872906239520338285935738879025636220866051095857176139039427417236677109371384886954488306860312193178538942412392240031543261454855925493401971272599930906464121856188253187902957964506358775332022086009454264749354092481655079877354638849198565587293892810777896947568961422109847396803009990132796670115402827369874145682192892477895046479022423027993942728932027840541549653129992621052733739025078046236007119117935072943743644601219914018459772959220786006788664962643647247124602989110355599635816506686827250227557006697422094553253923654207982422483334232508563947951970131783699062577982518400084351946493856870843011923923204427014845770442401171064347544132036450402836000253224318545070459670387810991430899692629776695405488124469662314473370429032719513146560613265830065371637848015364743018955021175569081507115820721895194851143677062996558149233411271803611968912284217649761243592949205286691584305696053032712850257021159441297194836676534642414518935757294007282997431377771625378115635843509019122591341400832516324930581940767704211643961713628191802400365961240126830248977380026821805137066378692744598341344507847127640347511420634365989027551867110646182135159671473737582068924455709657466782907568456253998768745098114920129611883560225118700941291969261870873702847900298788870091950077464626773025258958291422669702990597553148495444516710393068548350236163481647295528965505302543723807670895888895318487801099051738611907711327866000578592383423088202842227304068982303002846867840572689407452092821985810880494814122533476680017047612261432259292676648815848629135238775992475536663524022494140257454441572001433835387528127675185258497978738320861780339074221124562281451682641889187032173636293681466692127903874766827580316113610627748460439764504957188091927731793799780817575401941883509216058038879433362364558221195750335950077776300190428739204079315179821672675580688382594063808623265597650381909452848333262330496562358408458456681603684765350799728673861351332644178958021703017945412322546118905196607926877472439969813643513604346514842690780764026919662341851427160377834129031753147906577602270792140698846243646627412732465717458305139059359017637387726270407842157818657562121951146598450465027035658701814303143577856397335446872795454200310270128595011357561351730166368830540584362468022012670491206163791624982390679265052515857425467491800917197818728098435157768425110340428410165488196406112118937439495630314406816978668978948849957865720157315897957453905916356753176005026212293487779740569481577106533831188287412878384584745137235693981089572623426804026428992775277186219923168986741847159877959516415958448077921230008330955375111402243794129482201827134229627156014309451047487118432772595914875982134096644365799735116774528342702944843475729911306149887854755058633522930746428958212734019646331504185565448458272119295248413984034292886366458081942405633037311454578049990780308843008777045872179471954812161420093701006857576255221740287624035113784415981825668535839720334592775665345185718314254738631319354321718767769580603121768067548005957447620855396369900194270183571287850156833639273149953752865890520823267183642092747963264993235792547931805086551851224435199476304768152846644651776414598028268382567836373014329694222594022612597945279367827703460858667727344278235696081635490846507250115879358724032822027548210110062952842521857400496880688528867094971805677619413830831697947933061879587315338193560819141476056302849038776654667756518515666398588165918758910686593575492808999577506756406468759878483858762517610196868538709357160907301875267937759670616460650684466353344311579826019568813639109739953178529596160947427069576679007321805843012602240669742691813811392270390756329737043215912157454971348398755006751915661544757380744049403382015044931478302756919845983732639472438256450150242812589732450660341309390737610720762581135789139668942774547442875430437776491115238380340820786156081853014202677485525501005176934208568622450291275206086043122632632516614864409347891706054231511426416810387977905598829835375615790953568654396493507684505793763898098234071873635118367970962439163648124898693709583108195714326403902444840783193919074117093866739222712364404161654705369638569853055049260916996994358362587533427124782011245474837563081999485398894831647421452489143969507040128483999501598444781933798697336170080356390871577124117686148285838716451859441987341160802515855330397153627019353036760292528004596917933545198842392499807545401187623827985726501198784286306278821218952868363516532016182319572249925658281082738491437357303476423187133864544647749728413393891518515418314981116536843353289569773084560180918427517866425649640051680396365229127233551386445723000292151463574733434110787347498473488103119915328855648586355943227737251472763831077993757747234796926428418713899759451009393958396131837428095367576084121029862591473316345062767993778165884285679037298897956866868178637811977284289812803624061979553440860758338125738730799614377343502213478495053045145079593857797526504330505434206214666900990939844141651201001661308083049353190002706146608204098468784712780112844973866644455134328123107767059206529905302312967578323125255353981044468386715961967604109278410925670876234342418387317276554138072137484632235568260763547906833225421366808038402445896791066206387947545686374434425115858735729657109828741757798603951530910225911072944745191243378997587048354397682130138339263221982538419559892318187810668763737891938472747268461541154676428287705328100315185803374060478256337307239174408586094365232783349634654361968990880917045143709209724869183119547995095219004358814207685059836720990421627142914994051173865875214402520336824869029187030409896445731411231499486327642252944145917452246437424504024962994915021390311514831836917281662504594301942118435842518703175823181262218036556757168530059399212604889919564724295552995902561353197906360470376311319162008326600550227197032507949967278282944662881370158633296369216507112880226663487813218747568379003592674614011709529328503425800441124831386759261091581475658857763360886847358992690014079856344004027995750987306322828583065729465523613234782040566348292282809505265064167478251069579090702354460212846591954070277759835933521386451924409255691798214633509021244256555649926405997344478569405496875356623037563825540874862168072686208814910828583227416910018500492534590081722077321366350125932499780267248209710362607986430403235854733833936911232555745050023425681064980886665001713799055382226847015045512195287271187447455931189084952192336232006320742275844251061162271350527306264573570676225935656177034608318823117262135500328742499660359048027154353516136768587639112697958260901609322790365922622833156996609712596984116629923653794296942072635456530245376772676920728460901993154454403724147123099927129076232872438873183446428615471652193883530481351301502254936794524285924892592558984192899689849562958421022744629212919709515584798002898936227333590596250753068842531216198773244739742178962402894212102952034865832152828063703274083541349613715497227880672331601715686475676522060778043168791281379191372137686850208530612952035248686280792470776091457218871179360261814956456867845271112336367494534920165510801182339098742493718835264410891398287847571027500149003696420858632304642117673561152475365730488334960941084918108037209308189944346263604912847412436480277802070700178833563128512499599440811838116006993662657376358881982801615369072400534462345871116198850842574498442459303636174490520526324644339086048352241605435805151946256665652894046699983620703399759740791564131624801721117212841818951484573477613324848736521431745094179626997177904615691033055157450561545994085234261055111446502760275218592347425806953722784351627920573077831202054956157820787925440577283341078145265467807292642693186909985619376879573814080021168155018800314420973898605891116953231045591879531714025190369511063952331986947394775118668827846891897665513339759655257862049441922048454502414258898644731636225308954932231566556348092557595003211987001469271232300344548187993137095645167986976049687738521394531540454364966469592341510863046241932008167602616440031615479141880492912088997574174917894563645516804983248046401204592944087715111878486600219514100547859634818319928605734966273590260303007775690831653332816860262082871306737071737375466942571360862465598794288283480908295783408412712908888147803510480612744373697016859445218240817542014319639880435078676437364496290851550182978337313114638605250355972435542660547261095088279163230934551625543365266525950798871687811762753896575997279634425920472992081916321873921466636838590558806820067445599539211810904749183862957907452768116613011661739376675505532164490794777246714008995445921297029583627385719268231935783056789293353881996588029235792724191973325486771261659061333631102857781914509858542818430303985415564832362221719954905107695894798592372775791575517437300835514467590600362304518026077409271954686477894701487200979378002905219988944597652136688005061610556661452060991696206626899197858157729445906416681169925145398278400855624356051839867637474969539155923579911921781917124132531528573730055016634253921042905410539318532531710568657538322621178352399787358995503720084398903600598948128381718416057506151913872727634457797263067487515429694234894421476525246318401574592654542371594265581933744496144103970081610881195752159886146220449858370891668259783611948262853596958332665413659789548844070066460449272328643822041801508141040654328660382943728764897029268906860161919065690128152376414959546758367547496121093265035107699521779673491028966786952793377630866045504824086467297964991335936997079949009304669274551528222135058619793215457637394028067171817886801887113261781878910162419140343087455915171481065364411195881986286060746945887085220742692315455817450819656814291604565457588388690565071641751742502601687659622570784873471922794528495542253757672637916438490925287083609066105442810615902774028876448167945476001264005590350827732928634047604727481462176611467412860979661463058103419584050713729166069899434079939685372827268538259452934962193410232982241158907076971596164324384403318524997810794464625487533815465086998281993060491150225040586832108583375913927210428111761463609146805805584948038973073303994574123656109203954001966672355169268202402249064099225721470112199934251627353335712601279853245796072577551111447142123726992601555294940176905934132904829797555073472036574623727645672043709107791012029641087587543603063008653311406444182900727669877347622462409849487783824842057763865370401521367932807310360637805401608792739721733166973205307298410245816338304272884117561785136026944756565788874202185846836089349083261310108589584851515816398541562788446819521802180174657005380443751053869515611209198658935383870125968283022496759663523486187967600171926567405632096365952385069412884651236745180564677840838270516694284793011465524192251646478693409024775141022956101027433281038641867281012037456676475829127902026017770389001327471600234655248041636306122947489773201330877507353057149346232054403827540000548824905948091008460799786951717257174456443089256553787256299670582245864956844460392645091705971601224169632538684758054163565460632918032766645423288288329297888676043387289230406428634901356179930792571548122734790200505044342131074082406656867889228103163966778977087349419067523373772640914405201213975631851066111449406000872437263265568859410850683650990010578479491522601308691640137127060026554187483925933154825437054155799981630030088689946706671288467420608730417814858041259836458761828573434494458587091488757311370892912244443748779391474441431399141097542932764365928449380096791578086400086464629420311319227364756740091141156566419029782043967815230869733112570685481765656610559433132414975070018229676114529685071025735496370635283781750335572656065729830332963777096474016380957775316043519292524040337926936488855600916679219171364548595581549051902246799738671804664357723535210092606076481989214617852881991919786102261859973646639852174581462784167303028570520144754848231483820143484748816939034263911044250983918558552708891310513972201814120048493722759826224107817581143204852458212875170022182639736499283162864849165377279941643936307902936010095461543928892813767094451311007991415033416941572199196133284967294236124615053870598497211028492704104863904178069393844022585459711964053529288848250584067473357525704329370002871702260863658913095158948184033998144795010607311688118194227597516244183462812605306311133024543292776063548136866444361036163300721411459750109289308995419256910865985278509620240451573663302336330712431394812243583030313931582699369619023629562440671885824684700571694271037282905786935717543471001796182499822414210857992171235721792214343629824402500240286181148512012378451278951789089966834512609826231972956122692857520639884275067741547657126049337194715036298780758038849965546857631343630246184002973542154273216897032271569181536197447196201855835546901599946750776119972332789673207168211664026927331368443152133931564858018272149394316072407091151990930775335793679238440195750349311441791564972758543915749420436361199386320152852255951059713721264364731785096007174748601509543934135781277989532525449565546418475303972905675653501022026128955560864847944838619969928738012703454851590346809185604517873943727884944684117114579930666865625036129083696607769364554037784334292526989372649385010626356326483253281668396595483717006557553360563064523707308565288826668243747933509304051973237844718853511408620054396831434633595132803832463629988157755435769852361836626902303513376485004746216517392037231465390551639542831903267036787427514938066684612076347307364986545321300140983009670509110165411127302535409580628284315983108135637979994093736831442293578173799017541335075145932811551278517936756081911000804561279635079838965582150940312889094627203088280214477899408680293107381087971485653263285105158800863593840339297135248422694507881031122047282428758217001887832209673512261967385515363184645724745911912045360725554994334222384373884500419438449969225584248775774032070496784445291413093083570268286355507037994585569447174837272758498463509042828599257653768162758630227035376952646806176822791146403301295191387074704713608447752902242985835834023432211747260204650545621074734753447539369230753535657198536412389528535726712040168927208027899227266474944336777095308003221288846253722027041058250466340126416752814348410864904673843159969017666952006243252074299124219725683433972668571832381033637947296144184220662411889218229723306574720428998899365039954368724414989074094825614300187670927697151126158907175069203509062533893026661322764565677587938426261840274686005241030257409601010370875674442420201023705366668552437841508245744560053503109889884404339410394557795130555338711260880308640432262315633723866281488719088923472779132162198037029942843459081196929797559806676972833558173597608740940355412768752051036909673669094846071236163454646287896225479212188317016743078548121238499425707022932807520884368781072655640611493168757780424159454896227331041365317775734505396549113486568275038475815079729981006748288617703881605089049955471000884923506372252883338800105054511903073103148269179893027146664228440890548384463804956662202950986740638788878221400658972852912484376674810019833288864150051687837518336289948460466132951125986973107192370805476750171177868357633057728449141491750455378770277138905435639558449559798463996448321689856446893807923944152078383644182916746973101795737069747511381943195169635632630500122119419767717737283508398888663214301726093821532722601268403475839847999170935627260640317434565581129477667702835833856466153903116360990302570044142852683308152126988214907039847707675762116257623062204183176110145137972662188860806780587624783118737890661199581389154229435505235743102616018797916621575792478217720970099079321063414275318545652505395521394243194954367986539299818119978707013525512731888348991523911879241606944096302722174251678238373408554968398955985928467633298091551357260792277259265291597940520265456493156543056984027571244241983932067455772552675713991268848361244127855605942762314642306960439712067390453453756093674774606803370006177437236414983021619470216549868796704900692778268913831602880901266494597278995223431761462913210882249944934374368608882304713216003766002361235964534478488858561045923550781349669501899199572143352956115019092958759750315522413059149271166668716915458185342188946325546538351955732846619977494924198679262597257488836840307737393565103659920200683710451300774471149274918969028340285903407044824985659568688930775856783682922163345724972222457805050306548252923824255789822705468946176964937550537355599117771543041590094279984012789333153786350378424354409087770355800148105027445137436587055723972949258123937482532321981068409725305923317100247119527445493993493281047043478044873775950548238106737978509322125344468417156463498568122682516124274653357089598555189699195295776095904035428332558593093185923676315119271477913043750472649979696333949984961987093507637923315853433671381693372591304892172147610552199155123155682813978673882607781153669147680785131813745231053245728136420789122205606144683471056827218071215416136122662398012246882076613964816206766860978065093631830245995168220977276740614944954477427911412114754840298163251727147242854125839389211887360979640415350430750039389877058209325919516397989849109558605619700013786610149189634335408130109193069023546239004873542522140338246341595302436859265402084096433949617661595213404577913344603809270123561225464800208884594996289464019228609236660607616014597956113851493346978122545238643242316006396940485881370559173586851090809287163189234520334824955404012447520101556838095235794447752836708959332337066503510294040702917713862676356040411890548517745428460175445176907873788281724343137900213713389792126163197478410977674965051127370395718594822739478205480029731470468949213529463452304755357436181809962982225847473567631214768660995842247651385472883271019730017768989116242582114001184266389693938522346197544074303091877083019253307768505232299556766511518143849860906150368278903576739003504398700398507219459849316436780994544748103835415955554814760457502562717536209929103533184857716104861313372160774028487399641392469092869702814493927835113048855651562075653636176998655590100810005513747326811373772499930301512696480538880767861846698382258194506486931214773800255033290147878237972691795498749454211333182678964479781109694231497156092027504617497197865784429664908859177518158938579630169791755887960496925681364542530818095883990326347930510252487598492470353309368507011138159829062262153208285131691247570203950954446528376809391001063737842407987398997926916024046773851501197863265108688306390947800520160068537204739565872083637837324359704521910975782057470883398208600730013504471985674667186684692793174795525838502722822836218431856544518022363185382090032352953699356090273868643965801902659800149943822368294778994621832789293298619970709984250378510971740755186062119210492408348949905733356929105433931045201527959246350390212329092900893299918288884587771408997640483355368988796582879879178262907921697193496589984119178363988976845635679540614317567720083730677112475018114026048665592547133288870462794785873500264096062422332913849447344945052684989658703751439872666001795253667110088542151252283273976432150341248082549457372818302505653798699870288871345258500647784681390625673675627944495043854618557426416195516011935639291756136112987734931310505250122056448803968134448742841446895208570133474308146905300713496897296615612745895201340190324711332075474339907746596536410712134885932010415555298156252123758577537685005903218263770629972680654495554808493804895061717184434134247397815432681399516612410969268868183321580507320263635942888928888095079703114538882279172191237083959127075744952018387579066481075165398993836259703017796536015667040891605325573722185745142404545687903343468977677959263530695571382512798723900245788495225731951725073442479198694272470176240611070970257707390976941465905375951041982931942950046733930714697888484357836829863994533628529924850021061153230974493929200864504742845709314054025854842562656657474801525174666798161116587369515242913098289960726970496804224746544224773972238486789275997560890750967716722491213639381601816233169965916251710440725919665745099104871286596256241515959649816100122298515675398458015256063620173966136649220266959606961551793820630898850493598426638370884372644472022861017237765182881500418041525298688073237772644190039928581854202702795223007644988091396755270577810596689019033740623731103088987196768302485761030795795123335543966401181212009998640931841042585409820536066599992355516237441214023223840529191624425738041718586342469605014864850846711424355689873379396430671003797607612147960665664181815507106138292117317961958576532691712914680166018307009630510874794059764655854089922379478807208774187089182959442278166124869956955197773573272275406662650614547537785295872592565685857795816534996207894702497322784977236708107597424781411712366665225537387661306136164342532647931721903831659985992073492577120362502228873484138936400743487294942071657706398243465070832288480521082322384966241542661014107590488840134882331922819314330102342982958891140724300781462657461528050589227706609687276705526867155289330009605613899742159868430689476546286758701517489897443404149502874876070134319393987487777804002124962608820475199143214361618120585881033811042711267816330850923591189727640146505787655536304378154315925372857069053141499633446192517905743820593869606174120217228842310426696381172030381964405082378485650758516341013977510681592544986186569505802887193523717315723867570280219667348992242582194870544827416524963422146141549326662042266046117129952121419485260484785629795750792282974648038850675345600891911827865245014049231793328325987044902632313551986584649955055726108009603425272805566625630725743448801044404211301733838077791523697771566053994888739267220863468452986292481267437132817953808268650364474524439166657067924111355396492171711816358128103480150990612198484084234859959710010762495939160221673901714271249665630174565509178230232901445053397279063965896402633596289425432553300935407820761282871436224736542948962202281468366633982079888196721121363322265652336075335411492107627893369462410305881371967809810635026855152617121174062643586994875540708260012016090028011482065039067215248212522904205148351035476853098585650618863665424403817702286681073566954663179528021687912427023357018973485222370825600020103566349159333492431767632817021901069736449990724248372317215105830684226217641333831372415910914234997446614858810975402389512517261238159805760772352040525168102184004444725258269330522699863622379045962174524783825127387710636632916463240622553811698158956586996793970400381398639480111615169782211686301241353442281880789646962334314716708735353820833957419819824607156048783688178490453191183018959055172397699499555561881150587501089923682720819545531402061815342539260516492184355326501966434051159675603219606118382169026882452096841618049872549677745453554411776111716886887185793228711887872113383730027751424845858838558466111380357122885046245330888748791667833099119271535194411503576983057697705464112765489140265401395590554769694241738652928342238020993389383004016370593311208407285357413593366419653793130033794362913316052161060472029829450676861082762549769298876594044928566595612733203336603523503466919898057782167125013972087303961145961841907440170185782332954794715223987469732944663277971843307550356113648508653786529083240692136104969525532398413118624159786219246139288933375370736889386002722643100787363961994633864954886641017026948377487711597035438365609762876099794557281706262939654773277855126513255920040104086792073956907576900943304562082105669188053357103479608035446970443328806710814166955633952266045541924112417908208478308080927345485011038067785785801438745397892694788597881650081959125644629450242176829537039193867595128687253166990515180232914139462845171802304711901004922531406838400349230273006125283107035931644502869939627888909873882473857623999306222393473694616557426933620805645006297254641634114243367327119480830135469624534499071259627763640707007522474022094323641186500494007635261688493926340661305692140864075604566711244168397969518418738331308941785198015763360052144027083760744115021184361877089057325598879037728821679488356306778744823959136018143147917640948077129986017501457543498403554432447587123252515726729700352036354303219039108597835458892515083611560692406904341560591533258490036096075905956477058185295190405233096777512167134368560979676680299216846107011993309442971444607129881364082922029794613520436324548789090965281142640797364566769923195204043440120052901336352203344539317661827122754691860108805498674175322564665510527471925473017627919748324787376747843744981418325906329493813856743084170064568290160725176118820369430717255889392407612340849981747265058603412830387699891738958002988369163707497756578753411088313914913560880743764906209713186112219576029145183484855458351331726871661894760934434305826497830874467321024331965890693325695209217269914655389407859494511520370875881652908546966012785911765838938710508883043210875500657746156604481821553418847006560268101182734545102290052119302058613941146014707530523520456871413489031291750577120001948382393205931621494310679794792874590613756302276013421589612459405325063859125647972569652348986945765612361192912203990522510806394328453571958985542797483165262868857956668647765408516136775827877379948061643197526169035238586786619053930698482227833075016049672910487756350463229808624114148895767230601490582880403472981648616287216247030884816493489984184189743351817077880133015209638860728059805640696279355340955415636371628434012385539759308733505859012108454740353522268712710197420687199529382229688115695640633952333006605607252244275180735884831324963801718312453131882701969887837050622198839338635364161036996673215455692500470181219542618034508752915775883413660171454927038344873027605560283893153896624304645631465503986567800698582289616341335966552514081269779702247423343148181338624880532836540814462520907225237877254830816582755114742341114836863297097662715260893668405546215595348722268599260960718022817466116891756761329014095307144378222561344693761026472714590753058069475047481701269700422234129325101099446936666236712003159709823898059665019563722626134318143136232376609425425132836753246970509117340439395426438063286014419668827502461252758561425212128997201559479363879562434429535361799301230181818012070790430868861397437503180904843216788107558414789672137392628328732553793622920689230989375976470637493142067952862624406824529450957232311048542029769722046951517061083524944914394638696696081914590403075960032160241603325462853246889454983549735870495684494135945324482868231386446482231696464501850035797947067380253555449996592855627785626095490891694821320566091312276805358058034115176353468460433235957139804210184306779331695966376672953100471366918591329435901120876061831537799057883845607559021375438365034719763733804729634032046646296945994605255067641454022404308030756472924305193872950773419515876767507474205324370022160642711394054894847815133838514454890745939537142636665527172165057079932801699193130560020990661617524233706966851510918220139482885033173003026002279555978632535900661643472134303512862124392266136986808773729806418601150566135259070622377870410476372419756375204847431508053984358719456337432756518007008159839801633497643044787512465645577796867453157385461052527334244000955031835161695626735202229147092606495235063269249361541500387509609784465967704746794008155243230035316343053427898765082969371879765036341275651852797003084606168000948218156445141407239267784107428451904626029322851932625892876455053118525756879683256392572404560531864484401758158034177716455441795453593164478738649241933482346101863306523809938115762648023410602143777075354509606479882956886706486187067964734556080572645324348033272813987583988377126865736318516188199168922227415315008613648764201334427594896672422474854688465294253157428299414015480569874748610019414051211497476243961799524325859217266419892098868321517436671206902074563140239958426053313029626645358851875419312051431870129228193906633141941526948490717874487019910398077263509851176440144854298352262031168648818229245837217383349912967630035791568601145660269354818407308344579796311548687140972245514391638865017255053946579462723778071820177700515929521675525964355188175705924887417459143722818658456905855478816350748655582346945178531117732052987760336530868272057759808882178437665713319739273109551870383435860270692210151161899309571666629668302922272335308996021427250235071752125087268407007920300585736156348724756774174718578225877123177754127761883765119813806887755362549917163217927070178402520221411588967459677306670057335060881961590271335999852051672210655277832007707804665521983094635753942922234426273418469015539132606706480243942706766789141648281879792218855276302769452865747263060581675734899401537151385462377981300346981505305502278454334218013765483836137375382071054357367769024072972141572909100874721290455114251325480021186958504264028971728240418101394197142864683777364517416119103927527425851800199758278199637933810296221367218295796355490499168765575994368327942930948323758572365117788475356205167286157341538604107419530832106584054543282692092935650388421470074543027830227951708165155198661325335809687790320868312079360265809905826430544319943195013641300373438094463398944870619376043936532635609259303523384451967667682568237077986284209977787874712967675718891335437191544733883717584082957137452751966049623783843262084920221309080546615182944304189047835221752885376893735403392284561511173450260978652182060072361785001487942822235400302442585032113652693370286447651540744589939241710644168165475946410005075423822290408984869220458384603232667744584203331799107776486343611154927125302057045748705837414771143979633806254254204143558228880527003482592869343904049159240143085570524211208645415269798834963511346847184592373211723212146925292328899344264988485942457487265507982256249913383265912863699530060789161172059042488587937941588808500373181771134028633197350894316902423369378575075254148876617313269494394749099850074303983338371300453918996161881649170416737273395566427089254975664437955343824736665579873016698938484728907436383864262383736748801622591772981851889538624108359353355974237000703603190585056919113032814624357038433278381130271344863717007126451347761086248546733873612278422901945811882750373362874171588467502070686705944400839157769411661885994087899388159759858687293180091109950902885241175429489037319617024724879615768746519274411716043424831703787917840930423164495836266012568079534128574444611621185511734109621845176402842590558332586068478220135485963248543709779635365587218308357539696747415414612084292565701912324219793182645798657136473607440419745262273325668022991391209895484042366209326213227468375703341556539219777589086516860083395395713509107547057862100210014328536133015514059944323993629955379479416858830450520448618310595162148483473742444559252672504023652344740356367651235374991808208393969940657218954063138753338866450474059732159302343258875490532190424884259733931970872794933053276543979166964293654406530001838992825372788485795202044310685599925528982439001353388029220918295832019060514471645903071722071641079785147805607706035315774783115464831871838645441418761728966382709182494914096407236375685868033971431478108266944427079364553629150921228012003955379124855538715682833966074017655100991656562654431904428841521513665467919099088259399750578126891402099892846336305988838670049853954064125193831557900548173960230021594700938349365788268031150196076433152682198754394936823328521572216680185399290303685165999928360264555451800920605986108402660029427966878551540708648073447079111695348572133159723231756464715144254434767854741517880722732330180055946830772330842711109828596006853222253414017259064697785659707076078964634646684075272928782040007933399295130858278279358317681768771807154973252694368944491761310557973686048400331705563997566404397638137550527608187643011455359293248338608446654568213264080073674892077875683034888039881410937982260067539023415868141844482282107766183007611513526424520716617258888479710909866915158782772940233735292156210518366957536086004349644219644331301849502449841483908125184341454530362574921219982205564228386157307128146778629345186169806913185626788924286809810765818971301509427689850765978772213345866891830735381036093377776264584213201903442715439458678699064575158014359327922297301875746127504402809710523705548568941332120586352530283885885630077481318314260942525085987834253305375204877540082060548322671665987933300094800811017332175088454630642026968370792112819026397007858028062699588506219315330796636115890454758537133046539370142517328875982158079961692974277014714848274576942831452298494542765573332037481590042110039668936150187315259992031886525146962257587030787514561752039941389912016995853536239070464907249259617950042942751676977024922499824126893257952684365508216235186679055316327697575420195026780224055044315093447409326252679500881892708657091072397213779723632570960570169244420449717436479300027669674020132919093361046102758137448393958433536627048986329782522307384512943229395331331477409978011885213489446937554978411426100423542106226440396219041717394816273820471494388940519135656334160705156379958821630173272600254629007245549738768478428733243965106280391557149365411670184453757052042984064473711603022859002376981137921030719143807011689895170530801937752379197130490452865310975899040739747252206505532355866009847769428270647575173855847448480989601145377827050868191056713286887237256199641871764584385119185920566551155777740998847053472632436410851153574487807525887290823175579987819626681655046519485074623335359523988725784424057365063174141741999929512170676935779693538746855783556519685572956686014799335054759786730938948164872551556981608721474877715055574647640699548304617532442150308697066377542951334806524303939892079064821183589496123663121265771650699728918241752113683403527144706303172424015854633527528273419640290661378502204593026614751692705133815662972593707603485507287545133849729313926368759282471341805448639352004495359779534189751989944563898060096235371863110041660625578676312928430073710123609313854975888146120569933642642021848956290223517915651200748567561883745917016797469909455765133117813888946208195881872272033287446031731294243367225724957841759652262582981879709247268845421534714521444167134995747829128433076646349086243241120652522732775560498681939613600175871016067413763350449909996678774153768508777902776813923182472693802081404756459543160743697331272887871726120453171140278268022789351411050106329635941945857684027719374502321205073752182734065744928010928969943991735098088640136477545302098577623398328799450186973358582294428921168895203892570681175706113635970659099102265691679710475482871552009015117192449208138687675453003587061145152962154652329978203060810664157478032136054082656619282500287469773904913489098127902273666870959745665474317044082262341874831003538512316910940852359830024013830772343990476089364680318058539553812812210048502341933781331412378469282938445442171846790223657115628289989094382946127836954650986034223787787507834271670283379944037243943088110536677962837748439857764768216361287930528521863747922398712492717553759824896552499170806451610785619814426309869356201487715556291026281778139164981333553119475218591146832579584531479237494177137775320029986035729845956606082690481054327355736127350675903973436998943031023967869348976429900581342864425345977907562990571856475286698487890460451139604378316988965817411815735291449010673309614010700772379880878248478057955088838140466793903973443745499097342907727886684975916604169530404539734391686321951491835345119403574594650216682276013781286470984424597992931821151024446877400277595518796771892218180529534391989558908255700955504273638727857625917774845480042980892261527131416916562665508922092798859309106251397804864696653463139337348278821378147847193746098727388205844466877153086949364650091023981843048524432342113591458471861083910027302253396987212297834142832367968808022748821112935196969101931090703530545825375354245169697642887282546563028019807836893481744772888676165328387887571722580142221212424206818860789804494566765098580191324440834467205613473055388165014597341944860974447413146450038503763043041094180747125309221503860016457947699323264508169894253921785281873629923578744484118308171190420256083989072073102848904965514102136338573817511490274674526835483153220216943960267271475852673164424772248170851161010774708812681159087689295424169605383344819679006585433301598433280569859919537248479759248695299329784236791766038769696132756386995991420449788995754551148706320320743351432253880540926016066798766232016668181591375363548555378387586230475234306624901661602172118789629101346819900087868195884350785969920096100750061351401739321281560016199440539619154003686182803564931703490338847518657222894898422557317502090538644377471265394492399485223787915460025157736322097202814639348397453659017576960210544950817292681746657956657903914278875039191317358262409100695058140108030542719170508998357018092271735044654642763304790530145022615942480706978621999738922843951442412448008749081242970963208870229563381410941583677780321568832717147245288751878868094510700946953355405676765981207724270052504108440897138895417707419491019168998256349573489360115097334046266664862218529809969448073481856689698152317680683576780573099787531489471624644092291549192404803589230709887884382218031713808206560859772388531274881684978881520787555051928373943559533936966653822878132808734832410476097189184491619621077612861196567760066298295898557751316219645597878850154025385092123599348843756166531673952519130855993846728516411784903958410194981569204188648199112045694039755339351192586082349307026983570127922174784038612209563244366295677975582999372311772578471932339166959724164250882408264098744876960670320485377973309771414903088166655083519142715968752409833835756802983624746351197310287374789703468751335136649972598902721946048236765546563124219730920053327628904127218916482033229975969511688827930268397014366745512989819715541814406524068676200256324826899148175007223701242389043092447740828913251958594350428121210988920443869840552098293838510703631418721897847427023722996684480279976042289863030265647763746624360961261258215416689048557789250008903979223288925773261390024181025732927857576915806557593249883249585799621784541577483071868342865461950134751984569747234015293592968087524734530403803651084098154081721394271776061373825310082461063833204878605539921236372550684186305202629823937398115275806014938693478295889977107505415964825592912949064057205857654728777507740890166640863957210609854269625237070036824234317402137612660066461099714831655552549562183763789236465696418503731380663868078544534647392024592015261855106239211433876758601286264862308599636110067967053905651111270749742078104572841894564154222149330271526590930162836795730099882877613222738228294954046518127147835944770727999187336468038712372158941700446153450648179565782160559871494513388187273259414854266269885303860902736227120570913898093299952441340040752176623807989246995592137470846461518815242404565532598098614808728384420745957883242296292585575180351541606663945897742177220987794715658061427652146502425204079446618865554325286045128010263882986001389419289694651804382595677534925401785179968897029224142942728062176265146725735839421806735069942336259615006648732151406248744516951519958977782817445825343527444351140473319484651121692897401676640367031188721400112010077417263078794179111561536862737812921969858966686871968719595075818218251951743306478313636364754315621305992849620618198929236651578557557161747828170613642643973938853014520289262425260426285378383366233227860323763584284205783060025161029542601126060236002896390497217148298999727878375224244735916736466731514802228938823377530780654803214759834753994027512295431298084183312597394792930360896191777910344263015444508506947851658247597877184078766896448620848729619469745071768851780353911240449904715839941983180477987870598865344705794182834583883102131292857019084590143499637756003518477321691705081063615973536111575781928159982629237672419422569308530322415272073460899562812762077480671539627389749426903024895111063580235937141255316811916795000830390330369036294922630559586172755061122597521308103597884090327775570167143932360861518254489217825371364291989510901768846642832482580785818360886120305635578285970484903426359446040089195847671208918702232757870299048983910372372216862900762510962296293087064371100161567453434936915393396082685654533482962575114353585867456424677285094087924782958511078619743495797526361698372044119065196628881606277042029571009483806731812629905989925255309561841135073370771321112009781137337204125291973214826938937411502628764315797407165938033497847024625342216956812911832988085575293323024740243192491135446753518651524138202530153790882678573442724617030815437936311352023413409620817067740512740000477154709313668612097334998391903398684327964864665633708873873616961287022707714685461761826203512309421224908125118847190847263566556286900607204706327030473456651539043530650767613359739358973290368753718841513467680899772689073845521945775952073675193729716448460944215015844614852647916143378727181180291806082644398363863770983322026696640985717415843305423506534671601706041056400734778244646139977174768234377786009109638139063314443391283014763813381288841824446774196926435129276736328681696459115534465634670999704334268887680067751295690435123580038926849528301434622993451538245376641672322384148093461982304380010555052604757330896302437811467005765690476226103430536834090678089562823925877084030878266195228302180322606807723235623932658166291083730362590762112066190723003985693789923179552291242406669594756113253262379725786562830866057050506855350729456178014243334707008271735983771750737302831684285298965354254533620172331511403857065117943330855964456939430982968183508010373351964882415208452601895914896931462152643877130744380312145499091428474972006647149577251517403289812282908090603488130746462796466039140415583238880086449321992602445401884940729823932368345022157913077235662061352110330957063352488864331350871109202270933106118798788992784907107306982324757096925561316105119263864045454270549669410438696840489744598656656155690039478681638222635285483395435561435772097927668855574030838762228129833853252426416593369745172617899922221342233994805641006713963345904047440446085925885264648622429428713738750125481568249753774131000693311218877360545250256430781889970112700621015132929199363933478320759852830463864827631010985447589377387810368759833971076626354133055670242738984598924873021425739888743551429027702952820966441079654342206857926366711456874455445746880006422449670118469539204808433773565431434956449624935457197479006646324042772388980883120708189680487597291376250851129779021989467977390560124773781071505077521392496397501375479344309168000356201462463967187441398988632829610393645774388655633927433198665559933949206983143143951991168581694550578634577900334620114825405578946491332990199729727938196191979715269753283938110443105390102465055329618665970427770995406745353885589219257099425088274182131508219555352455308158976242653090964955967105926891303452127365501884207980262232658697223626283116843272298222760469589159780704859038229055756092063725221563466379109703568309087199363751872482255724488739047872348668833830403939534169689727094171277833166244190019094170808121057108163398643671963238887716733491633359299018876640101045239444648795166893940210492187117888337711802638772984878365071837022483870429161188568736579998990169803829506215720569230420813810729595509643515059893313014382091303201746671777998266116691209733660625573931510559520226836224809130887539011164946943112180902318343234653514591174046831200636410745930360712756049449681301911671399377915125671541564661879895012787248567882944770658634831277173650300367746937821781897668375771651939677155531705607935809467157111652280192052147778071666229046915261641600134240017424828670377755417956635110554839481699613908068705348041351640168653653540083389636302267785205868022070891323997697605170359392032791706930796950887428516610953199270487590896437802037507698037951351103426209012373759375030829425424616534838854430657589946771947965058002887309348414846295085539169041963446693444604436445328304619836150897250593553490578315237276732754188465369175395913743214800229742159697624468027761280870181812460902965035447045937086975884583121482566375632961715536437938568880694112854033190873980014746379387266475454438745227526837174468648796669635815088833367283184413669913596279671640905759865526111570087709663093797612551260412046257141983494675523897915336530523119626073207389553346446464697985140903038108932695453750375071332483897299931633381233395371192539823426219491057480719616155922793649444830078289302063085226443164420954705331550247235937850168057691858395346014589245698834872492582803375767564085755807862686861901416028680142257393616888138932938661167637987000797615610255408220019614929769928434188225729932722144870717504455580806396239087054900074161470660958270718923389274375391007399600547164926631947903853513420617950694968052347306213289025862019368080693764443612537162110334988630019593373722328773734980080016035713611068107284894158582827466570830265450476685897679983324245185582325005417642712829422628703358678403316749294600556235190784673345215248533155706616493290256203236372242842405836140048763216153937428873117481506597225979080706371333598854546834603666546240790265117709499646211979398216602821163044685420196945440656131033223593456264370630133571810861502011545040884934438291345443883151543503266823842286265397903161738812809730086399626975327463369579699306134019273260509422528596018108616750309338715891660200791287893639754552304645810815577412946279957934204124221496588663822862515809422887187670529163962236422595230821139838284029833797925555108227965858668321557358220216603319391086351687152585984866099388974153080167227926871049104735522022266494280569370377456939905915866557745926482178556526912960696997784927220849964588735490528860254196540068330508961549801914622161283566090835306994308237520074210174577939013186005845007445311680160754742693561581975753890138180315192492460558886884788660319167774243629529991014939782174052084126205376601252151433106075455729102349811931323726128917551750347948627955074283308338127922570792319399587819011946492106886618293119940130781340898037176167399060843823428405003592543005560130254154693319517122445316495784464756087840653294257137151322233813654213503102284829445331713185219970667489138470376815024526404020121130815857263792848467934882649684122094856909860393699328470416982939802757065972985289046482603147213320479194206793829507467007519368282454618168684144738342766913756365979373122082603247759639840514360045341074590836244324587581462339326112310092862928621792633411995943808708453889620621038314975578865228703406810946728866368530170064372686013815961855337529623726005519729447931553902899281849227941813782381488586251321335477524396193511817461612918950953865558282483029591451632648303392072472750448053389151711672812653191582517431805468731766895474297950731614680557034502033717947303595420327843030202249928597318607734606789973396436999816577520117281830716474589304058518527055242577289346602534865195945154884836791317477449074131676890997923009155071235094820316845345994413294973944365392475975450826581775787949241096796302052288985065843830616476629054668080278810574328470388653359857982728888727399015542711513970049539551128420576616977116756695159219288491715929676400509830154684001901736655646459387548619090086562964786778155619035516555876353015795121899526909474387024989583260048977660141532912968566599282608800626824301403360741255647513355820638266471399070077606776955127176791982937991253450926902479343443778851843742583580337686994276026295054839203165133087487988003257622845316872875576476999816096300845725141952949344578918109746855967872104553402979723396386988911222958213312352495070996544557006461715847783643621702177763328006436827660500272473765839568149871039223659568773650686381133222860964777566183738922154877879985589304291773659717466184957489525615246316802501624402224707270671237961283250254840499110797892932395471111246372717428886768598331141595044204090582716135547887873295619788282083636075704915205168156101357240613878025884691901698299366595949883676529880764673472732565383285346090211986079962118448089165477033112471760505699693191734777939893489004120061411320141498092699789226166840759298900201268743002637631009850113722092850752686357828980931862711961954786775298521129265757069525727508377159054131196022676259333328401358031274753702243535930956008989897356101455961022544383577140553800964916022372761000456038161550135201997067516568971910681266055855357266742725703273448536570475669510280100542635567559621800319683803292706742009845437217554099514175527019759133546002811654646977619921088409025369273264219865934717327274255151890546403795070690653834233656510695461785897068136399226516268789799381517701242940640386521731789328450606122547429713710701213153811496130308673339599170854825584984970027760596820486910371869230705461002268473649922125660353339400824344516310135262794780781740443839506827944557287721019238280005785938024998543989888539428141082461914368610204335554496828999812505671930924907162551926714881179685787917967548002151127758267218658219913000546641466248734602530447776514337283144271351547101688789468896704195866195845465594331660257364074027378115979187412848625268990959481842918127310949275954270538549470053552092443188327884921536402761356882137467137914067617575315668360659117576238718343266821410815082800942142166784945405569798099284521624848096049085344495646665584904269639782509733672926791218972950674509313039923221896903734633670377202591469988333361158954757422067144836632174882904656584439345203592354345909360293865588729376737755600636322519099703710511689612051131732507269087969194418881279845648083171438060260911285849225405101809818922958839396833942888031048984032956897790714271236905634411338195775510603527816765932844037536406200814188333954706033794959816593373786660102998314316193902168258668891686113679229653509280663479481660457208288437630859128508519289291218726349670638745756734454411978166611553605425494242080664633036722703438664371691468609020171292575567815001990656956710556099648967137517176758214284679600294331150952443030757208854110426329520492598782117441032447963201605610604040223736384182544725437686537246205432669001488444101373909484857739255929408920596167233507523880994768321389007654261775925014613499634126221833557000677314074659638122145813811696073479139860309519610178684770231524364444218012091569857887494445784055538471151618645516748720187563255126144363565984518365830772976785391401339156198114194232681622123477767990056290216698234147777579723699472868901827911584452607861079801035057674388186071748409579451778113239415605439123731160779074501472135878133480656320857680561004702575929115765237104923099031623800146723015259446554517929353109826159724894362935142783584838325798613885384513591246038467020712366721851649937988189345069736429072832700722291371022060802234286398592361775745124892538603270848686568882094845368179043516078865675114855925313274202653356212964529430584225686161177899456040640158392245476162378992503831152931301716307152746044671236538510822017626226558554700282921201695582896711527363062671928345907193748695342547116112034077405299835292475764694953373754379594257982066256441621006435067144659700913039702670819423259005735431173663371810293325527108712788859735751173891992405124642251234975502008428986330749900631792626989822793596872680658405011647300741291784042563795686642686866961766337532331211119548803381554743616183544625277561585096958265248983157147359267981953847243315246838416420717595230762664826841943125934594010234429816290751619913448823852503686893623267552669483471219316207412105539287579925721666373585938838793661898937658121436145009100873803412794197904975337247901360392024713893326802607118168992872932151429418059539444110902968432853574513676749573559014005732069617415053358702797552925773286199061457319415236525235755372239910313507399699923032961510079099999952408041855816012854458938199641111137285448652743045542179029897736400050315077999888407914841874924625012926295593099151976966699295162259046193354610779047337918000258660861805603760763220978573995435854336783454498209728656207506538656734199244890928742382750526241005584897562895313896490060968888547199809674478840852146130804144164433078491068230206609741817299003127966857464390322106461411533013485393810269190527506002209383588060129582726190522272273417380698964642023281992367317148240578643349587295306953070978381671004950161846301338283735511093456028066859104398896960086452489521551900233778286077342610019810744496784039484471725635605609755013496069748163923358723100060676476581108639741457981112487981946776689351952483276119295154352381157505637998715975909856250317790763807928768062133859415477072754528545934680818760074172319718285404882411654296535381730462573476754233062231770593783309444451271857521473883838474199328341942428797140818085763332118373535417184653331239796425784117670348888417643890959847853878781347742685204322218162461114940678185443382427543430195796321387885121106690449835789437052032217727606479466947079232698237098536459745458867599046938702124550110635601725730081521351412514362044426827762117507024442488649569484266664601996879112452389774813355082653412675426331921768678811852830558103442458262511855564058530245837538597003049826800529068117186042247302962745181337673908308904715028563241765900168556068969725983207875882328322051186104895771407248908266550058660762668735638070662098242627753973806020538308921454043843585398523180286015254108687544482471490379230524179838323150085014494232463258674820882072331509409438614956261034032357334743767068427819244703131660877331092956694828761215012185471802356705245545755173618460207274523633446800681776894966745739915292574549946752071485695191074630612755081802343940013696785290810557637612810454761757199642857289765433012532257294269888483613132814066079622986308732341292034034452024133166202265758298227417368645600619554663432072408861306073020291864666735741992083843872954418775947341308084201744521266349358836126945028832996385977337214481667438484246375772882204488697811786755190042079613920403501321830182556147351462393012234744151560646079243916520131982180085062729523322693319757434800904098444962499760777443039992062507198993471898984598844429185914815122339872522507043686465794667865580835774362630359986737005433553224607863440073567511020842022608762241211200597064467454110167278613690743961204485524517274076011217555029494077480008901730454500952782047396464865983306880202701659733297549967940340149353305089639087034911957835527602007018696887685575302169203216125584270381924727857668601754142282681469866785348119284631926233625989450474158276594160423832846961520871984389959902149317099383077453216413493927244471417460418383816789143913749336565364425922926943845650731680531113274994113199022524924955242531075565700030480895264800818956327288261687818312329646123118319204663639291826430236900616843128370703340374061823917641475598586613772423707423146639153345325905771167257335069002739814944890492696470008343820256837776982418399153770465175783229253423168771614415051771903785668469373435841775818697587823192141209186789880488583334488597140849087515724472613055747054365681607019680403135118882206616576685869066812569762465535866692547232409441767209430954624186479172594663399350723939526635147721873806842003902664505048416581936263267369423486042839293291162586024606361423949620981816391579738755693650559306107018226503292233645773814267908992012830264402365950157557066470323017582965094159402723814425449860559406794564249927945239307997243506311318492464946311451752579219736980203966179796143617401134917494697056603428747564136009051231525227842513936321955086995387348889760777844178518673803027611446354479121787191051650647773854827106303448645641060547040396691179204702783090239039054381455561909426445002313154018587670674244224781834554700877201198622951376099495270951371990450991611361158145533627436333667943754304952014568034214950725285957892971393743350575374674935979020699872588061633203056072532369354454827844665233731385616777402325147577327056535336314798170005956833766539142981713270097885792049396015623962916503704736719522610282430948824045444052816616239032823416341922693821703449700946367656364689396892500018037863302121720771859459859111267746005839455994366730058224774704598918215410308378397181578582891824870431115434314043345139167117630955376922510225815142991670630119596535628067522099551825064120989857212151256014619028641297892528951700222538797759809094720679798966154957179539465297236892602823068163582790098297676815965373757009374025326968652569834521377689891204718757856883703823967869967398489429414496978534136347222107093300445380928983769205124791008166896157940165499671477566490072304467354470712525830886464679287889819321496751186774202567998557557574131153038029087712448591127252113303827093406531783415590325766228017234458736625952093544941940142334609732550692551182386857295006012339514210548488983732375818271950033861000456016151484623135886716860436114968166426893678212263705287462426376132144495396043012762745363546979734261725095920232270223897670541374009283455832747532442450323435368133402402016932303459340545149764211593085728634922745348308659213403590621088296810281671167958175372433360674280881934855967666185152189885722161458493308572812776766000265741635065857513379435908086168252310283012262032584919090664516740633758851812834615814376475754104223089863655265921399131331011660395200037019951225003855967685802427581743412064565684967240761858558400152576452738048125909150462604590012348499152505348389201327014093095147330333323161781886707780737442076922070492887887863538922603564351056652160647003646405070930577946710724194727574243759744729851373916680319067018990601875019158634575645932179010378059054914051591261255109291630596704745692828691179795629769760889722254387001290302975671316583626261343202824493443352768123910472082578618367555548961892800721564740557152391682392204097409060134108693285552597160354784050190639017639686296479925462450997539355177820862999549082151657320198077929378865078281310572009458917288624028150098640533101981124174420592496272906651980307640480085750558031336791357144654668239462947890323679390436596189967868172461900282381740785361766087991598803088278151382564711237737174325234003186430833564335675226929057310041258664910285498780430625535672601237374475163064451752218870341831868434878001783891561783099292056038928936858113662583164908100621318861239864517330058023689323609229532589777328979566879090060147010826799780209714532922917469279651110331480676339641506445915535477525992196006324978398468759803345570281421593960321960814142005704141524497026810622205215245671396867714457563272935814824251115321555252498663657817127808115062001005382494833878410032126290024203350625200371591275385664830590978713092547221293659443428327689410908324921957312911425462990800692479974071252102723894074225639037155794315684166046089977541999636270733190629516334555764526799637295027154531911515361072073918727849038606880395016704452987686457301300397187694618624861722966021187098825378993155855325579054001686656757627478179006470257526769956252554320466643257501259347791979141820055197537953348041515932161739324945570937905329420202843686357183341514173489702107842048975821149906337488096074510187730252359463111411169603110219298432038166664111629630271579436241525933860337242265599207518592955223463809958505654179373701082719564439782436093551306698447982178378349143853938902173791603136681532995920825273488908582813503237227123021326603116857952170092648183716504285852203814455237842231598213041005338706274234958327713568618009455605940021575318599028473441778565706220722945712617555048287207833565605565970128378642968833973491338849866976375075537373275200835433717986222085172182164428624995366060906411591622630665975984910900279285380753703345380305233187824022780653203214650343581912072333199304426674605427642322160397556102655086242461087335555384143013587308298446714819249912845821292357280785769986145932021299797549374381198748033992785744182723653704530575776642103495341848260716305825151991643189475274996261887523131369319243438693599678826949369165322929198625989669628529038290368762914720736743463308886050206072565377325144337149006835059067563972314446012607445756787948772516424370016463756575816101388494691794965806963750467145298837307875040379711117193972071046841153438308825083072454647903022556323888496821232487452243419514913330616817388351291671257702856356238165410525094984593998531445267958925648279498141413593106448877023368521001866324088297497409798193359803414622512853652998761282194863048970735862640908608043719128432289824803423933613328065539042296161034889651915553058063661202625168531537920336512108974305784617921641496752008862247580877637591507116011671668370815230745751559181144694408030446958054660000789023796746393576997239736531517108558370190124579551331062520939490783775394952423673296295674072011103367130935828540426674731306678019520030074227697180568174197352263395962046258535761895436070183370926829084305465796165039321874241192905222044464050808010725309221761832848513957351495796635829797773442757293128186762405658137380034467195915371900238070752279044776439790549464082693201031486147716186619398555828976123505995309612004535076297274998336790922353788347897429754821450443527894862670794432745761542620915337955595239439236502267326024415506264104113393837791252572005724466910621382284928388347886625656881924642841250211429885456789314720077410975242120644624414157124245678669305457682701499143625042610883745169564394817561468650930845581281471452609914790583347467794041742432237140420285624356811512231169092132475273438100183088117444894509688117880570531434164987988099612081128507158993309682300066278439498057800307168586843374036041783907085175331264789278237910403632945826253140570654115625061673228249075708784594104711872931383552797775786519661679155373994643251214365005500142880041420972160589809597329042344937196811687270339305229535765186017603589076593894672536543544306381270315905339610987268432190839475228181477210182623637509452030623893642382627937975646997990523461124289397937193402761492413325344462812031541569013283252780571055812017006288015158576278522969639493957596790204300743365648147732033127484408558194626260986974655279776559298079895928457628960742853427597169385447493681506126562893127646155711234279307917033141263185161415517940934183117408013978552259145916482740514046542595187125928888086252171897555256905971415529836220704944210698583165544140983908379733177956541287332196006409169280331010259211534677972576865814287168619032956454692766217952010447868681981721125294337747858733228199842983617230997371943348582458575732872682224420923852553729169522331147663274854363975040646390784712220981960754127297485619694750179286413328029732591934750300518952672130115461638105685745758611900921324747243620851702637862031143596248944258632831935196708942471088520071754914171713614706002533760491544867309813386568087753440325720434288781644881807458889998296329958710907757056895322599166547413077443909601478860924011466041970544875563323737482093136609597574657748753115352323536840507172502126069986853707127178248999818792122428582151980938125706322687820013832398188648016742481181848939925649130714918965238662744900323470712544255699878752670341264133372024494101340012351094992967205879678427221086512572881952367475085019949772096254801080423022773787707779473600496330515659666966210744552621899240591305598741381390849573311583221736853151677559044227435393299894829174091748775702853472720624987510521048295146796345659443226279357722101047391472385448570473543157714110946382531845758823522775748572156480823269643701041099317238437296857720285794780439116875447069279050698674591033698413648317718843247344569792601888100672447257625263477177934116807056503448222572673378928338680220472499926100669620960771452585478754472636249536956310522969178407760353339204135996455073079726114698944156634008665251835319000850157168485945927347845826662171100771852289376604754464297125651437281636598337114511011719811272674515954385152100653022868712905964829002572197742933424576770443697440369270379531058938653435619681679362237323780726452825385137707169810801055675804606618248408449983896986236439178539349946401017124458552529381923570263571773160658428455362112829241248520664165164768409084924061173890246496247796119175513622116375647277057136388159043200714827238943561025770228544383964485139500615048323553889189041589731675575532859148969284528509040725868531481343522363983629427269130811743110106228221591107834118113349250436142871296312247310183990669783250099010968794219708555069218623534254553706730372805193091532462983118400255902684939885330912471633778630403063759774498397762121211186022024945307438490252936918873039455891997231764032927887466027149787992150918315000293314958634425325685775656238918383414531249154023786419357566211646682445827345769437723137308323559031772843021429320581507588547921642263237768418495354717320138044693542146155673871750901051303109632375882295783223495099560348933968880547258803087241914612180259652718108851701149019848066317943004587425835921312872720903662620295873674368471134864858681127827007299060221974937602344123726877360949771506540821129479187105464973416751827544185882218131648369604358591615038398131584879502731227433337094675885703937634443355374250113859662786995983521497756990111600407081666333280256916085157447911406831184273080895497171970272010106922074167240987727431218287056833141478530537060781437950955673056062820678895785688646700611094535075706468274291229608102003616861165623559461806168137194295911917241774019402465682430063178538853893613242805261930721207508595795839986874433404792343331178264387822279947658258749488908176423852408798926862656854827958348169677527001727891999809707307925616077388896041750895360122427108426386014711179370701184779240847280603268774457735512280661841899295085587687207808520726961072988347021015228942825284276300927077479082568313317795790498107834614234289817321251142799943038525509903355952135166639343406264987048989616067170267240395678471252650370844028923969456728974682294046812141532511313441418844507838664921067154345234163361778486306184158324665397522263089104837635050970158246450599851932915124672781116043549076229084005924314955873972461698950096066038279481905937011761933640301706210384418294174691463664941470863430468080122778656256255395250858608758503486941170714284409433085485779989085627118496584019582257885960585119879642940155393340124628842025720464869530706136141239735184219450258459631486884039589753926901641617688428255681384952807493962790817817899698933585292105823543232298130777875579127149039749819479858281965565666529472975191411746422647161864403866034508187026363501184771068154055174730199576264643448093056819053497558371427361873636076695798774637576963262933152014269996169232515754011902490327366925678260809899341933872958884221356533644315750139572092611186163044929698980976298521794688732114014778364475713427654359582051254975460216411946861069025817862867949177403142980966084688490232409782779332815686415738585814037709813181391755180781883434340688416460156872010087700321173725941254434289247115219841013865852634202438604264292584956702901893869819788352458803220705819918180732480853444651710034568313206949320729187289078655215318570854547442108869563589884675809944718476160415559397326860513578416342146660705078345955077759772731488799410705253181409383673998692981280726584575215949178085995211318651313602059155590032984601858151184258806908865036371282688757920096287434158480271426350470256737680206842402536521240996316347832888986660707676493971821117227858412573131298443363671241365876643840604346465118494613408510014582214780941653127711933638301334536213285740750287186049085309931686628343107818301026561136754830739426821697995579223545263385553737550032876830542656855377865892751040983843157061363069905880615029843040387220505385389189516541325714751963062965101741404553781012106257797408111895984148303138340880730634427842199075408221734653922543458014440942737534324021252749094995952332484608408953591942896004022962354333113276425948200498005136980641679046616779684847708827453625914017198436775512113030180320295537133757544027307983977451273223005318381956579700450207614440363773536602047069729599852755121979464278340434713416245115127273402840297045615949030324985063223897505076151014132672324090362409893754628054466771712509054926146287496963011002879729367946552300034667060370380300681553672889210898409284068394023917136758311315810259430181982247698630290963962419589374185150302882032869713609565926535001235601011351791994623351450738665423019621563133465323854555373188874285978772770027655440643624095507310475553574826802066977235512020072746069992770022748022597101852387723951665402950810626848540082288596698077527541985914229455415494470228446896315803148016139459598130205298360538577415088697952980682620878320637066591117517444222587532735066756556207048377774879619277805664548418514709267733884791901945258664284398956129038255156887819806087665962830311854681302124235795417378686874223646625639170857965244574904697330573737886328474519111007301207042522972113673533552789105349892386165037730230034204958436497379858688325374139327113135308799006287996066858524408069750340473244528989801963332462817289789496236048726691273383479653415793620294146467130035179933576383067380496764362120435469886530725148304325738880628772161062389317612344780281405106981661822231017148105018481559217006335851618960175436037569356250679336609883304535937712829816550273789105533649546921641162916789566462635544833519854790278389692396938702289313453942923781906134770045077792974661077448143732238530791358132721313269330242478818815589093133345389982703154723253327686748896953002814532931499303346014293423322301687524641037196141983227750199104660973045418921417654859044126203169260245931486470927182441382251013316530863516303287578284568116433788078708882949799280956756453931249765099965502760681350280362465167575558576088693319462453961393275938232696216007239497165040101676373665245450043716863207871887988963158614575597107536481895735708962569894759356097646710009629500380903315019349427709251269014942298010333801689979189488168742226164176691565527381374737937634018393875276983914468563682574576549038598369339598903677445333011743613241485544272013278460901382268818528252220396716302788281333164501541366185822579130128620355731650096675749641258481424333664420542620606469024788437279697868339548365608528885074267009509303547132483647670285315575056551321691357556853724920482813085443734596271864555685916975537256858652262113610283370712563169432998199616997420288995634198446280423195851462762018356511122760763822619328185745419707450871556118850654961148754955605852415275659695949149917295636338203352428520531283418837035259819888900436871554350200984768422978192962945121119638568471870446928091577387481247859100143872003321557647400106534392387206761745938029254245149381017980123623355855141385280097110734424463494333416374334956520461457089619278505202421339096889804507614283440218139006744015716220100716013734521851984960803438311928677137196661063754280303691136780158974079327191981526764653911146999992751367376648104633610571407955905192169064823959375004132684708621500058674857543364572983007598984260247652364905694125707832519357227970233851198912741216351298045729963501276171058579610938638125319631331267861398284119605610391095931325780265910039825219423259268841608305083629179698878420602952813320108049622165284465175201401529373692034063342194609160026901599369557116566849775198398309515432097320508672604881848576575278413111693495040200338010852877636539041216444324355546066742081589779371247712750242103385171040892719528066564156378782605680015482338226056851260258967353268686787973092516261202366859437549745176067076193519202166434195687287070554642142655832417716413725381073263428794080351828601690149788222509100275720549953227760560167576357981776257067684266513692254411694128710288817195971002426773134074091982125275428756584859945313762973178974094602041588809565732176524447514732369247318312235347550337645712954226342515818147238991036592728283232205131307613416596824934426485252705502710298347464650301317097702215314659127526262117212994708355958336692791685455454483712027095876099620601610740600751121505114137340239036985259949362838835594740191512688834796114537529535805659690223775694604551657288202039577533086160985809882820705825756619079269262858734208304562769091302858711589281477476470875932962848802805080258718396978133816302163650164076926295612165139842014056293971804403213635980572844067303628782875496265218079689956233836542066535461586815733714864680097944731090006732591644681778048820709775405391962974497581270180442623440677237629206784104308602915109347076758813577645341369878784197778093181784827579166824087929322090194705370417173476634045934186882405599032276804625053564708006943597679216141352097812856754328064384172834530300210006141586429495963652932393026953816019267132348112673229696662380461078952769634211042943591770219432238627544762718615388947733012353740876414268940885880443682365798276305767291934338085744117178040583660583318711842249017329030069339470112283717145210568887860605009464532474705724816969578452615940949219950847046819310624078747969884196674328475324861417073585133392149209816083041809162325785931534962766939480756069281468051017267257514360136463831506720343656059640294595333035742219714912010665130198063028866371467437965808643231035524236457601445328850320536648470802478196849526149501880126370454911224904134003816052192574075615737902173069790911482665849870445357615133174247000006266028958795876948828436547076355432616675103692889425549061696254165308393984199026407631163379480008686061779922798254941643554300937354086519457132102676080289632840408486260055208289933133209067669164830054827270581587790686742262727001792673658373552997258923388167430841867602429815792582614293582004110617884109059288876010099118804403464549237358025922437727686893306939796906425984052562959241173875720214118813195367878537867111684558158452013992931299233216999742464115356705299813269728025656215804499096864804809293621099590994304917091846785285802342965518227516017612164171808180708396575321977852930150133807955848175749027218311158318521217148472723367016720021480723055616958490636635510666133196323425013843067176403304073695020676739165149341732510270863911191673844686678686658151006382657008921387083616666408238871146509663227053645200986404854229058225051086468112855334431614270579264873866335376297665236507407971743903749853147161602817805322877529914099121757872288292514552973320897895232911953197912983137462596436524010501016675501321956312756188572854651241202885313920578291729101352578404460861828265357349473208141535219041373495719349594052622441293330713749665063807515502224998688075831091292676498404405010769512605504622321616134235255911956539102438537241898359686975130864598349965059486350975471176729183755428328561905254955115031247650255278577672477427445443807623107909931802403920219286809437956926853500119980074302840406613187649985459492459145795495931694280052950022153251825171019344685680306236172969771641853218640352513655524373670627989710253258058066570375759024991665038957770188956519714786690813521576677952531317478343935581762427170787203136739302899679035175181658124721830085449265982870365673900958750250663340896530294650137069272711480542033674289730069162426488837291791513651983032124749620310906576309959310469988258714984953813259109217683336861838644451158014233827171126696847404981804184009950485798582576727107515900396281503191901216674540312157141853871772448881260355693510102250751539551953400435418652856997022388594423965338168885163780003752317739725408343128179227371702809367377005114552963175789470864075354710779821101350389322137296564559833242296143338304724268452197385312270649058022592413364932320816749867436259359327243292672555771410733052298751245259497751275572242920653194470691883687113075046309347161948869991156725712955103710366413109968484397070651713435486168022422992376290515416518301609451454683163663198411922187955423860175602007086991577559344979325393576304984701004043607969978297872055093659649146062722610927482116785810124298652703573323415823309221486259080650634723252164367886113087423251531653687701487967180303014505949564128102010418163994740190123178919085342949312287342386427505311139812991070661912686345983954215922427838974931651566113339534039847193486757518832105691742120417007704047040096760753249328808820631143346331692142008147036794077314712453226896686401808126217003010295294808331784965803251152309983397001077084451134898211510671869893985786310975248471278641074716491596110176690309840838447037163564996905875304148548263603584018516338764902216888372339717088818526554896683405508178715569149379576908927794623904835344050398657782161271819543042674088298657726207529215210677773027177400403995293755394211531928072318899955542171438458305498484731527534619072641826249512895086319327372053635564370747301023819874522122107390692958176333049453830849946143537740425701517704307956369125634609220438404668227657916847362513573896404955939124567162993961012076135385313091756943981414571272670917951449624618894935977581777965610494747046247562567716326889232931323694095209595602539482469046330483519069147674259121193123091036704358416659040063824552067128149890161103644906652760250837557850186093862330305457117844729273056494174121632996837202898118195436905024080895496901543797573295710391739311978562650877839943215693731889520635538888365465813565506014801080844865544475709494634243370061079953792068838963601219676434436652742962385589225070646603127916984827055541093895073821289860718694131302243025885035502904562619339476689086283920639481717963221502843570061842586526228018671709924947402336653493929910173904512915352689952482707512339696101309906076889933671169479541473989509913905969761728556304835979214616658089304902221847116004392915621582780743820095483086677689716462423634327658854882117403449513783202943014034481988202575780786988381533260018930376402213529207717742207514242870292606701572578554871232108370577819730607122237337067199876220536840241390851444096510641644243074545862698347135644390637630231385999935772295748685179896218856019124525692130826928081659116716819814192288341068075225162748404739114335341841019147430920566312293277070780837823554819192678131299319217485050702133354289472741017157270176289294040690037807341514478732197788652617995264837285656599655116574245345172230546731585463125188758506171637291376379949624713333747609978947013112072738374911643670340496078842371131858905185760588729841297571487504873495631401426258173999244778286999791402741952540552378636060600439700651294178330004985018751593264439341901289289044283990814762512105748477538799645208484073460186786518245708079770597445941809148075736749682293923189728769864175136465561372372063879662454775096872803755399833175351152933775937966079405516784861906932305011829538509098147501452122501034119430290431944913964187175562519698101159210080752358950396974733839511920950264623085079251475710935382547977810529829907406248668299830335280730864592451113268814476004705130901818585125896612000954371047492786616067819800268774478357754870584119022277520507805400004497656866768587068265208731433104204507095967808972193063269537627245519122874086503432613152647064660287986537864923680172060456274109123296619134946851449933332669314109939547365526494576213669942644410951675472258799991159611877134534866412575367608737491545306013581083914398487459568594797600005755933311038056178611698842504678451140747256668403116994902146528814152473748888817800353098209601765307833337564605146382608645792617415255146514014285837620502819348201758877275148650377546576781336246918394174018025531063762748027169120148981066505960788037417809415242438703774949989396198068636927038574868139744888995845595370337785698955857744881527139457596495417923573629902571800174836835250952664278114809763189547764258643546597608672566748433496014663169863981948759657404760257711894279866414645872349684393038855441438363990290175057382548289641188731284593182427442025116411245236304474690410554548572661048600936330667801780894477153790203614746036877432424084892389538097368193439576084611853210134037146749775653934411057119872488696515209968243323382351587856003897945295745609196218616113316064395247047607922409637681766552302509038112601034862721895439771073276815963974157573969334617461536992614995879437546689457285612535382293968481719093461049928689960847393855394047675864346096425649578940004111216517878244388540154911766963977585376942205193764453856530263834634918290692690042468718868923049151188692913440043825633415383657188236980476901287134631303723207713977035062709971197919045751168830156240000458994830758702838876846806853668080451180699232491610225260339043451862064551828913844702406553664564280352103568299720096066058167714417882171120675282773399596966119007259053220129631879276717692835450574068115436992280450713435036497541044547223878330364151816539618269799873307490370798803572947826394482762438938220469406671971590958353180121587812417207436941963220666955811717611320656060533964208282317645140099961058755285747743667407197821399863093228450270107253567621330414249933810727994617740193332179821634251028185825377956265439102784262911361682418979026517952048130738527161974634136687912065483857856088013220830909316143046933392160808782647001771030505013484517405598378678967880597641558220134110189179756129504458878526099251010701031914290652866910946320158748712513848863435233498062352126372507217932405876142467107234085343584177659365556715232800130426179893009753692264547556515246236617184276615053197373343299189233220793229090882474971442130306206154868085714697932990523906474518188015419987907815520041608219403761807387715457878605443882409562808572724954925699000688336300475241002455641298341453814177706834912306169696664846821583152065135279231901043100031302464456586015220977998445140442999508852008757811070366851142993724176546744501177218546724014199394671398735319405000842337616982901113248672135523971180356066186887661491062572625925890174078530711670309526539841450675357711336386187180618319379740517636138547263039893337132769562904065614390687764634459556093695901361188105592448872653333089185489792264937833281281460357289180408572744843394403429885269292734595652992339783794930368813741299851778372814420109442423978744685773728248022828096144410218649063865352179325024568965420760182420688291135619290477488931129056722884879183495786810390512596518194244339340871447023821775535545848191292660583954789540946949151153578192918003271679952274825612458941450581413170294364551513376653153636831430065662045347110172556266849753359309053767698248230135265236687480689169791853267077325407526097605216086859847452864022149421280868248920241510586557941610635939359026182025104021389573682686318024625138514822813206850922962179665916629249962138318867600116119695782102706824209653622711223972191828503880540847399358542652835590246263475860949247614713901904063469033390604609493177513715154310457713827037094876150663874087543946337302413838798659173644346011848229889824302959032426887470478364338274425977304462579626378063521755172915845251572871412766745546847899197415446449559410603700872918633511433199232915570415664741243536656010755438067475872988480342237592099360085369769430822032490416493609388686578643526063426978815232878421008947739537190253258615233979105743443284580169759244321823677082121899057171047447868854981569947461134617721990125966161836373245255633762944878499127594878177084473420513087351906483488583976786789723417083558261015985553721873512622116872065070655823234378180273129595678580148834406244577120175496100440898333363543362213931444626921111678457388655840847508803169179680469654848177654697350019871341937698959955051223296040334751479828455018373867755334740777609832022491849420256072397595533177350692800255926210776517632047952388503058617231783552102041641159632802037922759630221338907587411377611933356322173537189969555510041392006157204933529412332124190564038339174587570585869544676351745118136430979862182789072963578671360693899323108299288369722532474407098781085317088770829711115574883472707670161659199209991268450256874466783915628518472203922256948821841514673576618944007477022829643414812200373274878616348546656629786276686932720173364911158407327000155634073979860813457636327752733868107018867969131178306255820711308194275389705710468118471714245310461356231258271348211355133992150678277010311624135783092892340668710645078660134852012830696431907435945866362528034787884536123615544859485313580807318402008355977117207859490560588122396720492012007597866683640082642267730754023533737220992707594049544656668726253520211172909696517483681374187337746212557906053528637264944229497127190654208010510381378686528361582474394581193731000429345541221620758888482407629750809222354945005025021638892063357290289095300817675520143695774959853286172169805958101293280947907395507608314688299619807521132564061355308353602471920949497074609512248068331511454805984496699834742380150033266996223127020815933268832637212512262708338685877380043401300801610364766355239812424957779337548927080918022734533217326374901257966519124756835604842397178594754826248821043763099564861512890225570466052349340805124015224987806369688207926280865156429240040962799737168053255713840576852281646112969675958596986311979986646990873111081451833581342160209612466011568088705406525294650939258356545670383550883964854104438143331118373562279013603301677445638221905235370303692324561934175470142432394763224912918405574787542325532135087155416394613473097344914012206395025247944160221129423955577522795577985024816184257915688867307150681075762744001182783439459500898518142556402772203359145675680855713554237365551324383971978673845138215518015974389722010384273998952464709324318932434580365316263791196025491704938711819709876138140531314384502320669168747624496096484272829394520568912055656294505498477565006170717994547810543164348366386391983446434351840623424111858224839406214552024149563456185128228516272509939832935988447642398464603364163308584141543320118877407017331507019444935896537194859533172451944572260870721581479714694011144308871775580336018307825114147624490877640402422119833773276281515622017710939449345858207946725675523305166762594063066912796935048973400314224870848616623963245713516281707509293262291426657198141518911163554166367002111930795620879364778025014240869736668691437074363586322432389807052874283650926147774934859122275368820552004953601820023587435787768396030226724851077273815585183072926442451032380180465296516534023825414188154941890286804327946265632276400158548269952366431106335188864947278456430236763932713284320553169346736082017670020027916177604438677105418385416135759353028175464192228399166778045892438189718103992242568862535689247670652427568075656343813927385200722350689880776531507275396270726996906583195824759996683516655953387935577717666279993731798678088608153314911241700035714207289889138433050159868002071683849461296084092009961777808008212949992111438711836818297868285548119045203753402717758345039013490770153745144858811879100601849437651070712801145081996866861971473850987647740691320914809192535538044589619057197336886232609281729241781701017022691917533202051931137512602397506956921964820199777171760743210241394528140383263654852038613383759736816827477344757501761983650065814072702040226654165642876047655443783941347530231613725940455381566773664504808406538201059785265624008652117304094345826179335245638109590935340475868599594935114361744414521292073494291386439284673541828112981089145148607377105687343440611046564975092119386472522202398587633862747901414437459281930720487018636703239150039198042504031501789169554636296495971265287034257560433698483530847091407029422909053228551262104317447093575769602703951655066285166107506032584994665951553249119085304900771810246351863136173489778438562054231113312812724213111842870039118700081230188250055314608718121760884805853136900642294118365888127339006888198082685917247998501965126943930949629346709466949554606363343070039092071345231542165148458153926198367143247534149403714673407189944426441019773004978838273640423792887948032002968739384603011174934381066338040635249749029347694464349067998136796356222851952660250542967834763859271289352625746243689806719935691447398730319704282095565522983887776292036906190693847653774764052677356420940922281102992002238221444067977627127702947651023195208678139032635210462188957447946543328908152015552457256457961769955390436196771488962214303046852422562250716200080433093446827152254457769430885358845963674004687431841678090530761028639626406245824640465119400472843595629705940806878693634417417883420429580268913162531023865276965654597121611988772889845508530222353287685973115356255242174219075603313978941237974879767454557760055691354667510516687294859475076235299779742323118587702396084017027817556124590763988773620668143260160642643316678474384495124602744963158851837032368602622591125296391454769682777562294398926054658477337662868547914459473533641279797895532874670927899095593820795254293848805077143821996082206492244587131659590783784150386774768465835987703295776695703997088090394449318729649983776612676334329684395928766805535966890368975113382274352733062388420722176064858818099055060040738314073362574586509860187796909094727504907476327235352425853353319413680717243316294825025305879053528192480025301670878522786975683999277905775089058848932605822039020498631149483254662277225716920790107469453394693806068846762958923907284458815807453345314478262938481233446250541759135973120300120391113428680901746286887452421982726673573992958643419274895676512036074208552617996479701170788514166219677980555691832199463550034845633739869470056469348037241002634269211788766182917340712600644661836822138180717631791333394908338485572700773036155029541351896469861357980519842618712494460404609889856134708929000583970180387828952711537099112840525475296757577916231122869574892777044884515165481315658319516867882287807663898404970690278875619762490110908815167324351904919414814321175510887651768194651931178041960472437866705939405293371476086116755795375398922439460598172273059574499489218861498334602147698212026634747017159759753799469190132931516306066400587282280296279063062263493705972544368758409177952018899072125179278526620183962043120812449891021223310684948641591526329068927505853282865790831067333183444693919055791199187479595989611512424993383144720255055492066107235357073678342122520175252247007801942274430795983335117856007798248378956663471611487717458764744484321948279864583083550708573601548397798910472018240711907974273473574976231488429239495918255277988494410943021494562978567040448634058228401873433798935619598479366157020007197203743831078752862134342717802414326858577371785116864697279706323636228156472222354044212022221564325324399416619743173488111475048171432235131866594273692364613820844718683650391948722397232310581409295353090728308396597046358017165332931797154427896574494995987097703618236488280203220042081507975326937531513900754941883612498777365397442607378592599591011776749301069746882132142998599748607409082902199845775896062620360104819344022879293154077515163335726224771342806909715782006042878424969321281426611053845301146355399039315117526995688715071020799862213120900454585126514261814687727406463138650787702461181679418876910010044776438215318132341958988185126697778346630705608362333627284382063388827865992370070747045318901352591026619783305643241977070511487216841626360844237344407027598705984454287612571115911263679154443179305332073197988427354552937674895088943594119136102078694562085010724057302977547532360694297122432326457327294536895394344476521078053550688838560900444079074736542978803062766883083393320111575286149368414535527974584249915616227025569287665715048524180476499226074687345540015393078292371130210471811868894632530272030395319806860160997868864330684677609323200283687614093642513324697616473591098470331636699457717125872892726160194281789261411404363159060453699879306739196087408831990987073849954355280249636490762709836910202621987422193522808083358672286884925632854148976103581506111304135684696589843969254457413827200934554355222328840570043454980476163335953188215711124839605738035474922498475863961259724507465117369055802566716045777006531651157941208988424194837747995065819758287888103639367815348040760986543162985692219645514181834666521707990220407794199797414674801803676928321693481346621340428425356174942219108708448419246174964047852896991918001376362191311521878793347574542354826202447667467518508174124798450868915560097127024432263545887573623074236857688304285991087958071649289250934754647405926672575179672017869245208509168351393174132233169938351221135215031641652372663733094987290124942147304518810756524923655302825564576401186909306035985813310992195456734101208985620569888687168455037002190105559032171003911872581696271678730005197851540149525417715431729721217302103370229813184069479292746479903917360723906789134781781183442756985301856617302781384399947666454845239809084277613070834675699820426168420026581787458637800829508297204721059685066324863711782476805173338514309633708446686293144501625507600001947734844269261828915191707252974872746036872684899671017438451334273232335967516095761799543343693344220486371298665640437413885344107172933060501281275346764218058629708252170180274372416713449259693628426066637479036658979303447601439888300210338848068101346062152555375891033807284474988331473363152270000828987220828660265432631200995310931751935488414809428646677656715504960673596805679410603634629521167040901202753583318360062586410177748581238592405335774981831574061065279921950458016831829396021064637907916658314623723736836163757873221479610556934270034946785487207242679918930153271134561853759094062330614324747923800417079176374527970380256156661891695893452787188815528883928648434202041024142491567139302950894275458539538703202132584387622325721499097983314620355146837425103648149642004974010197859696912047395900854794161994732007925836069188890540152765215858859940183442809289740270396043679511899909393063040994522174107071849163592353664994027258618178184018460236782430649279906377554651291270888793716944496341158027052610217520224719237367577187239270836654528055957792085585453777276320238015991720682916159012879866872366528624671700111099407748489848910258882555924559373691628036640415132282886147918337620262610015040233336978244987661921752996784134257418636931878517723965822948332061667318224429305300741378030405929543849334264521409532168913977611688470153756269422590466117724743073417626797711070826952256439822874800809761568975255689562663384712474824030263458381867016015100497355921757176695507560664644439346782768343401725713897649533011596842020254400948589574677871244209033270602562163732576464104003984334698881028902251397990997385722571027917848789755710850632436303880189031078537135214215166360138240715601371954044194132786569533630466184998612489563222650802026820319642364794652342006682516448350082106578154902235252279889045505389697892458261345990819176963195743558135391388206044068873433281676430305945000318087609052609511093806722273557395718251200451966957719853008024328546131395829196719235664712504527016377445800276770099361959827710832814624056850014963988183168442471907526623907009220493112042323059778991370228627399309679876819067254971440191555160221888046853290976429152641312210727096780569291542674314902353859958574062453459528582658015028585209817953792428620775271452493073160918900071397730713256712406594726091592606597826926926554663215329679684054694645125716405663951330555920974536537543981640150330909522090770500625149583399882841040528510829939488428970565535001625994644517843887221727429254765898166276087839433836786628153519946906007207480788550795002055352959963044188913891990481221451566000057219901832103108134234822658776988349663652884042615559139830513426803086526726506540800444794249180437241834829773527254656531924684437864657819556014668322297673457374190723688338212572749150454524099772464753791061051067954010301902488155168815535277870074094697934272355234501829814582676901967849929073479071507902831134699519671919364841612701000392958570804579839905706022411665740151300471601708968274169210173374557980466095263427775151432744593250224987558416863029037770322214442358453529352807007571551249603882141987057504931318852578809171137165836546874495312811407360899568360558584092488556710823995531386689957915287065703400176271306036620581877302157109993844906963595640283560097735214172912494290877108272450853741928496229925877036925610919418265607293051732952822306891865884666893019919541863322327253796653015389416005131207381971859300456772908940132213247371542251209219001696599952313736486760326313866279169061900471028983387827715466798134098628698466136002527512802027463613075013151134046783206204720824419766482073004919511328094948613077676165562039060006954710989963452203287255769059630092588529771250730466038241940112927203847078454743518595879402637945930383689226815371256016890807204538952184200027468286598357090763785553942419994573364740349105857329249614552213845781022278379107882321504330486494355892343852779522631485059861076341319261051205870846564547144183195861328597913656142338633296658381767520449007700899887130391526987317417661631747168820391966088417113598256014349175098439008102342671180082460169611809575905346588561902603752100778005482040389307310223300435641475847439900634095943655235229785831938096143342985222996699506971938706712906315296997252075905489748162771911638803402926228745597602047880545983202522904208524565395258944826673898885142083526081911744670359554316502132163114787074374751845567863458470240460271784171526391836427083265587684228659143062700834767500846325844274603625992529606295393944262602496544460451669664152598327996801422754127662894144624332868971757262183929484038911436390785540716765246100809186276455996205043629100172029387816311853432166304810069844297143855610706896693510689393576255748325308399489742061611700532121029380780275969772776603975153433068058314441508114780380904497074389993436753800730922169510513608903684542982166952544588798857093287837124514623565306073661528708679104428086318945000196566947927879945915605272012166874480808802928904430704758370647828775824264633099768013173562536511595424515731160615445174836687773208297828576126942989683131316774908993535058694115434963460501478298158140004390590492666779249751561899701352739654900464051138553314579417780260300330621304172499960339371687112403796383064553294942353027851555503761554006091749326173440589477168926783965890936538319900476535033404997033987603894291024687038527432399633656039153279586208971987502010184197917668308173847845522061342083239464120671855217746538963345808594643041571271802004834900998815471346117783384077799657685977299205940184583765153909064711975872587638807663790983364925360637609305292235721597213222759661293608769365775707079278446275351719448749144335038412661415825094686466794265995140040355133502705059456469809735272905624271067340261955499421171948483948987212639798508343949200055532834774146324229612273747329877625739662018161378509429083491258322097853359082020034524855487943862899688026309442572324156544805771961610948037463465553105243624227526784312650080502872671046638186171295454764713127825404745532002654780921483086512716774570260541034336804887511380220204175726948716228776625738425047562311950572986555171725089675694932952992022972693254788131694610402720816486224394682639140429270463380533464969435756746041451200103791875444149638962247305396576291115522263878953235791724389306432526571534692471001450202257690198877699959884738817919590115454296918074600835447650124781444974162093910169361825582328218025018441334591061728204487192443592466420399960904068887893285334420800433256386576683228402323014858845786174732651702765812728179689537738252153587105735609209611061442819590051729343410259563766026875452722575910108781961675174084427704249545963970990867490744393743160276048967421541326617486136065919058774943557908872932540408568369714605698761544863111945249872335183147483232633826968918660930757987125530663482710108787533139039970882873283556583589829504839378194300434769389983813169419187665131780853935820246426767539179273741491175354415522049663143728135421205439355897938151598877610025119404698058422629352061232714937557047976236811548296838275357599694507257954087201954036504339153770842859841541207319357272208429233859809149688397470946965953136128697431234655433397296688778599488696202211273373405609944874188246559287478009840933702349113631390358404549279416971149924226554858191676164472602611977517651289992336334917464599700928144661274726273541425810070082984006303280684375356664942324838218254984800442906329374743689270889831315062924983639008733022471920799143072578432859416001543366336960295933551599992131905318911022891843151176040896332932769303017348791292145872406912575621127406724512778970325620507537217690041283691990023476231642913692511325758602777391119892697821971476011078538001852979092525250953593128269130384478278367531982787917958886639539905158429624228847300787378058704775495909876632449120637714699092665008997221693623741932931588410231952354075468995599876356577404164824720537894854575250805453583193828871380870111483660972567696871886556801983600976565785583523133976439891609266885528632892864095711810418573000383080715716360766098510457645980375408108087053317804189129714092641980747962916042717933602569833171365119567781325976330482642062522286648190093762458548466249886555251780916283352035663082236066323782503058907073008494348478351054074605354685668044329599454252541023248322491738524511312817415712921734621592032573051672428264479760757224112234045405220131708008941303312048350244053753086343048134963310289895065139940118686815613016078585893607889523925041977768571771136838394221232436647446701733591459180458247600134855462706052571005807700471411961777442406165551182847855868308795409175990384103863223953144497537832125801117169434213282294542208074150846232498558690953208060211294238438593272787641139291344581070579538568446446181321324445184979591105193429847330857206276244630062948148442475259340727481795742569296850401931195635100999617512905586474755787847561170197723022223714739960007515877352319541437025260993816461812016157146376630846649992483225420750680857073596663965229147347606796309511936164329807624668110460140886207686082124345676900698189712494295676736358731384126281709263852767520610696260144412597641926268387855941700175295806775254982368650619461817382042640997746248309557345466080996139240038083290055509830043218414900010067852287932407996715070691986904148940658783280085841028773680265017689554545309532572678306579350088250591119918096940834924512925063488841797441410256365262503996264656003561730224693051040139134292890373393499400829399334164144323591568288349519928655752034539499525803631622349579085471499504815331092824009247436014382241138954926514164384797705248834604052226787570889431361686385956591888598741677906271559691967034127980026112114342871579682503021200380380444430253694931821039697435414103277959883816086383022711478101865151604728374964056143140031439966863489546704580077295405866926011646197542900995600384242094331091287830854539766336451915628500201547361377175249271522390997670923955302564892455627777430067961669039476539294640578282143413133149371392138995582065441065560988815454541102697926714885605280626226959083949903585959441599486117878172152670792485609314936430962017877307574136433549732345503763574591915979234568419499529408244637684292548617315442730332812924920136772533580632909031561732572834148386365902176850389504969394873772326717081189600620874317642486430969219767451791982287477825007830756806759249350443492188783544073302894827164264673182846477955826936024908906978508660117993495634524224798735229519811050115501976717527468574293262328367136457553955797629399887879884370493195918953799705964835513885277429406161277995349104585543949496502769454983187663832924405781357355894027950250591097656916108280892561096738959255606141924709117550391448760877388199635741439435073882383728726471815349845563071567208889676392207710407476721845058207174060463869588271410467200656473255566498367826236552862229441260263235854218186763023705257429433010118234298600442175523425217413734976265087059799511313178635302669867038664991582257368516798111227586065712214672423048720145186879477454290869354980541697435158044784207184165956518908992048032478410334769607379224526635253566858051076829017827578916791560243203027568818589096016908728342333845401689412930255962771780124078309426666221171506899888896951285909897249251285055566283064189478615381097240816324035970944579906314386992522159278079581150691423109949702583750040918346353899781031441915651519772847756696745101775856318998044966805121433261441129335416348018130447623048177363431626058725244440549169406251917913911513987091871804892517070191203150737384964856307262210023854520832041161169943218428405970316357656446611987734307699998301751825106434484232024071842592110113664690449354052544940987733712903461977512386311200027445637239288048899555214165108926575231840556897510430661469690786173500951896155639720683649490973845668806568403250588246983605169470473069598606626328201043009402708430797035227966130369808612543578484927242139171272410545478108705597092397050147068402329883442403533717236072777950368049591769896296877401252439959375930036347297533680206326011515586382375678726164329402777284296161548221860519273018440686704646687653761467114510806879057056262144296391941990525572521096871130368285271560997956077132876778739405764817543427518958619180143337564248996844353466152545630685964178786562954016908002414244950009949544550349853038164790754824135610075856080325444766984619911860658403729372189777139626395002694525141882161503267409901370087166093741703277925541583260263849260019712889905213760096627516448056477509733633885921876165023889932973521711699653121569018430427761563490283293479993741641475999361516199131001180845050792101612340559987000815305656266227607891297670871438702312421674370371904776894307227110421504152331757013933026775123793215291636252994744660254716261565091176661826674199143682512181315599484668690040255335657874659161418214222642887665180586112285415059554604991173789091515907820632941841451854051172771383983514897910197839524240491003795856254177034902437312435302504164466913723626109054677862465270922623779982895037013902783824006504853381079510539483911137974590634834218098507763124161175197050581780126746465685215108823988139392947305565797376436423076775072746196085870268581831754688807771657802245395540598863280133179997221524981779724216154264087349251761815233975587544806364450305938868456653656892121169891954977761977886967364265355517680864224214656191263687039915762573708781449245959347308992535081898662194627861578813822710235594036724077506112436136470034390405600143529926540043028386915349185351251087934010093517088438121248254962089570788076173677734968199817701345642683926614801704691858928378466136439460383486096655489042005540308462999475825017145868182051359279011805898538053335606746696093050170650289288937851712391846537541930456025560246833442386543975568256870296229019260592152212256930123462883333741170591449914679422321824373502701376314208237635740269156695708037013195085519640599259334504698408984940344993401622832902924219877375999627034862568016255135233079285884545900573659141030176238718501820247813964391232604279956908991900773247388048119045166636047517073352342074065280381388062545463821551396598219323804626669748912231398077051818384251320718836829094843280772517583236503709704448025680337823269736934031404976925765041438929974549269257461707347013724623614920262271550940245226914618957455380752399650360910175256216837948279245506842687876494627590661481014030797617445272922757443783386738569801862667902168482747185892380840424807130466302618891134007392010162694379542853079431662197056798044396356132892543965565050649602214112476176713462358427859258360155144745674704779855275330971295063143647541604064598888962217022803367031456123219424583399310507975331173728569308761325520262319143215001793378072176610540122929227283088078657477882724048042726935432069141156024431241153013992333293594007198104426482249068283748684561095897361760464042199221354580523670612215708225126293027477815212487839057209211627053547975325900895048200159940013310258534059879225561198344722957084441336734954551278948360093447246332787721805964731265890228881090132442742088805504196624308642508305783370651695781670046153931485213574385740316809512357501400124532501328155646189472243851244974260105964209136641837639229409181882536116420418042012329400908852814172014538929475874535670069712241727736699523540291496246486942351835510726454504756797283313153722059592457292201911430055238581173763297788677893021412670560483001003197731024643837439052543083819548954506642948771255012508162031048151570463463231142799868287219447238859344386636100686095104104661489614643855682641423696181981446557287297792387185808559334619983029000897632474000499674854516261350782954452946922770833020326416131025644681342727495733699688044247195466075122743096281683883144054132316662473128181414017655999498858056664242895705161537065533344081652278363294880217905944368644731988021261730950618445633307572872257315814955412148654796635214190616486450013967209988974378519423215188292195730507704638022235458358318307712808568585634973548270503231918639114038283096092600660466629542481439502607267570129171333079897596801563825389613098926655418648997770231583440949358015175776135105394799221656155854647653934429371213539115322525848390941050214140516805255094921964088748707612596799990230716757597535029865959914109402834303675490789146159717875070331063134667236153907653748986700840862389748650069535704407186243864058222486226603680934068575688119427266999632608964323050372418472987495131270943928445114990193370931837315208552848271612031910231287275278438602492525380916885233930227630269511601223386987079862656222187275012605976570855383470128659895956546627194082809685700607753737500035666874914074624984763543703843725532026357677590158399893894139555560537506661836631728894800589623009956856421062678080151407286526129412288745290365473878847326671235856039936646807981868199549941408583751696505401693467623090294141906863999383075524938012014187181823400353606341101970115026460664097192623981248545374745028824499290344476079882236875013494919056986936086955255097837226614408096123080286996624708349241519435361102514740340446718648945517044605622087266114663563789667885500142498155969132447259025922515144431104367677763640571375348531160824043311485429780460734518679958832059700965618046137553784238456872633747365730686116257347841970379078818313339510265033885537406697884040637360246674013055444564211805273750867244582800169663508131528780801263255209725242223168860011844816332943826387235677300868942127355718188946769345411089660266211537659265623488736049423254889122359849230830775254232007953439051097264799381335065614181775532726264627877730960110549713530862160463399882759563683063382963882902096980379842760892533100895354457246678534510991321947949802072230173409292294477894553149588210359735200588712002244881101782513247717286483348963482042872151738246811418076315632136880398051245373912442266051316282941029016127891635055784905382155638639822812459482200658653787700554671806355783080421937207542366643898374663038878907940020859501299241233420603224604657524727402547058857499213976446971737303840428893081855223173023038655856407535732326788203985016044869472988575565268713319476577436283083137036766059289470659972255122569628167286463270654315628827310650728115924739250890489500842548583291181563701966040356250266326186730096090255936344718672247503335564836234351690192012081267802934707810063955343922572732498666498594347522842418489276001443021295911589481693236428817778086910361967917073913780985188154438826168343040103562723357739438799220510517018006613687878373977500014321920753199249724188369405702977121904243983204703289507184746992514487390635722998227839291503706345259878990737175477095105566655362676444873200343957605136690281397187048444109722392428586065042781950264478659219499950604710261805731074372267323630717837924961281981798560051231309614257607354180468822810638281848103084677136940978419850908425505047499354865618304104611852620850078014422752089121997403968066105866407655071541927038791124363970440339194095188406290842840068538321070474788296912382094568028697549590187040975055310834307200087160691873051269743460830043654869834780368502713702936686335565352886248311048524310926119343934854933200111980324245789518899566266607774852857386641017453833173168044449456181536285725961152710883788097140346273950664384366225468396654981023041756611310375493749823771474632370260927849267469300244097589645874950499786916028221209728541775330929111751360465578804058014581141969117006061722430343724527839898783516143257849636770447170837178753993066090987250062735478878577305827984971814655389768284773402745350028184974763674281202847322916458428781133455877621294214931217623541135537353957126430392343931531962235875987189963410794416185352225111868083870969703050366912179704477932940348455149476885534240713128754326916230914882060982951743966027336233555644076534655966765172430050041881088044694242908547241249488676818467899953648575766202859828598654393752791692361036807657539051276913695423538721520276831678610520370730101574922730725323784295803444417355409615036945366841343851373018111130457462041201827448007971056393813887992710796945269147488013873542073026371678694344180789867950709997227991391888113668641632016765456031396087065871717801528695714044151894693301868214253621297680791589837447240581963826548986688147956597589470468070588622783060431046959125224818471160046669134331973436974281299346457170367198620630717265816099486165601078191520258115526692550960318754667806472495085988227664369761334891119639179196473159700975833498346778717093208851296975885930885226119334667038116820535949245108030364145245067801683802320257012038206351822369612149346651805590186742811130223602496573992240314113038324616895912440990721969286971377385480568586456056968218927469594852963341332290161054626454080975354186077170801580844265928194202072065889620949529967735371946312335860620179333959750957770810410710349125189416953208200198497678982106703545633934338659656528763646666595985765208794766962546638192439329259359133205677686725004678863757286788686291857750432425753861613546454862567487052751410941093555714264066862586388084962426964842782327685485924779274091872378905072206118009377507353174245290949302987703865452382590441525176021348587234063781517607712497367835637724639379433985635542213828875352656525849987040022341668656493617643060598139642369755504320624420241525147763915147098853213375858728072418727071810467277536434662442079355413107732288778636526616618670838323427446004747220196129475475496843913930253199048885953086435463752736972948631302091252461033917174782689844004917562255363236490819562816759819766725003033565034669189086501374168045446727321572895867739466678489434765309678042407995916072012769806592316917890940289890722756935670883601435386314156227022589037314160679646799141882658269272153207193985718360672514049585276995464666542712861368500818951473011449069533004364017977247917217269221059272249706632606676957935870413320639699348875896117663543115007759259325796973239194014674056105205616637517608281770792459900521651494274102454727529100927363557173997709436752660696868407353032236474624649774717199265710660651550092039509472786424669349687625462136656271799368601496808803524651637456682924382591589020158391556824178880465491908804584111202217695485278654663883206164769270898796104909355214971282782673499587967414960310502274569948360342947750061013939745939450659506535588524076781719657648477886609476812082150941679769873994436208603446184537782609396124466062094382395203416770272363469063909810705971118413959354685366636553867106628952232094850399917228758446317159798602583720652890068987409948853479966406187383969242753967266181164965838777720034702841505240209829546645596512580087033464451790287729860033577613590942255012678116789726542127313738806067962958440816046149241282070097256781619073309277212220501442289271078315359330728487168498767581573949774352259394623493103340987528103907468299901646225528668512780967140856428298489948434649635437987746487646163635731274607765164119224952474122320295321171275587759258715278694472450941276117957805624157603424463683538983236421026766634613375543909102457097714206443121091346603853227358003540045393563737825347972676617017282932744726670694865176928097019118918824802725495045405794980091001392044124586949378829326167057387385665689447378378463980618418636673859512982268109297221862882775351914076735504985178681139945553163094387166961732879286276038387291958845019302021862843474546360480631535409714392552546614488753073920987973280904275818875439319746908429133346037277004673176004177467326340674891036407177157499249430515301045533450008931667260210787958572890979629887315907640770840845661664598345132779860802644800374749733740189347840825779420404331033800744004013619301524752248958403729377969427242789286805379234966788972008387067562365470302069561930875480621321992812816674558187895991901303447124019226440184266122892529567739061868271484795406934039344997958428948060624128184587768766353375767862205620942692895642726487047629897813571075865529143442316118332260976764385429114920869998755448961023119831898735928797698075759786035674456024416204932031834797545003930660279203930397006052799688507246322865245793743733841926532432795630566070506891345165805386091530784456337383461176176142329226283124068572572076930353988104475750767620188165439525654721642970819642537687592366976461736005160368310099261509715267507818942334166790682222510650474396770953913638968538066259649426381440702253211057767032582473397807080066618904997225462208335020690656278524555105536197181358756341088743577555183789682359902234452764512149947180033438768616844120264723024572614064125957988118403770298125680000071201069413528672421142154672581058573944031994315709867052895132368569762130826791577541847617759415914619082116351645711064262894069420001966292925852577890041244975800898494172919088143584437491318421946224518641877956226392139918529595894847194227017788188427537782774823255853853448506974838532452601819340580467485970466864399521509869708369615375428473190644960840931691151697421669338422767120477554467790058792902788310954882872584370055840222175583735216267826209576112028901364185741361261029768555885277906511427496938945513509162559938634875213516731942888375552644965575969187383140945683801011953464736900740076728699484153560468148545354500492696065711737690101280888087460742450270972450344371325934874959139390960874299857726019124356348484801405564698285692606113693242896717819288943363905798944520513787018662800184347357610773451376647533646553772293316749578681551708644800639380550317631144529496228524195576525668051814522993581527081444968000921559775906298874103718713577243857264166070281720869514184414475418037710968762005675695144420227711016918769156741722796468428215733457838336032946482405093080265974961231986587876906806439777116974718961463057492008148444957159998207882182283384426812581000026524696641417268024979857926840256348066397186938719870180366734223732203400109230421302477083804395258333345374014418219415247333504628074822897995539090775223502887941320949223991708652650010776652026443396426602367160290154536740222181812002620656048505277819131805609104318792423803025416883737958297846567558453039156492332495230581110003750663250430994843833352727925931794170423969771976441091191712005560693325651547314122609192086049224557321714206361331808812543176855505503951498429816901089233065340068913457191977693356112931663846219836908700520380271476619358007413935267821034545025989179622630311704103041014173739571075377520230302661936391996784908586850868053825034465275021304822973233925969519717721300946131010518996692108052501820595136309998936219460700204651676991010969213493728410441920146227542823261579352889151238272600641129917279099962154940455186301520651524072425744794785349373813216510118996144089147916844585422650904725753524967959869490583276533742177508582904608883414358516164434878863635704254755250416419111527976957767041918714745347891640169776348662129963351077708100036467914414587537618136716110882111183950336029861473792215267603695154048223614914363484706808814026546338714187523186023361944413012522663683844776035410649356604852796108092522249552436019066292413562707634078303301492966576102159677334331152140458379681487514825829495420332478191018194336631440373267864346209544250097305027171109015257316359258304964431577008740797466865469674772324507086201037307806308039958066491105463038650721918849091874494475045460496533599123523773566229127197744621949651858106418438922693275679129390951204714078088413011875136022049226955347841619442913659330621080231184825209711299782825764244085436441513573585823363721694922236909002288730840705981195248687660313014837661325540287863977139481880224255111311892671849032318395137667191805963421449259463380155070532020307949397021604335977823855504305757083480904171613901465022880317933023196940141498532587320820489421873531345960519216942566073932543586565160149346020425182581677174053881421692535510397913231726444709349536357770886196025689899904796516021330780722449982300009143936190329973716293592062628250920084472860558954757672737594955638603558114897372761429723218698272210491980258879861486707377970007359671267783472411521689895621745228560638492019957323435702579224122026382494168999888112407285961328438916265776906701944999056009947047272492890103283472292626403987846672794541353822151955715474412951631209059963192920685885062796574713135002491350580413588973102367179993013518743879667796251168799867812195330255059441631568460743360805326887743018607761470010162525297855945593730991887927938941606552396241236336046884527997677930990433355241830338713727178926812231188567786059096054982570073378693098516277680648664997108105916085352579547293583915347321495532409879743982639493165817694644968795345355261444743613928357652665976077914081351249737557904543791261715697244696447656737265331876645865816425099299439869553216131027274268241316333333746794308020407546422178428246293778773179452943363050717504642632263672300837168851467890679429510923245832929752446180903711915730686355614662209643802937484088227870479963796275390139111309315114200414431526082575015103901780746411273414029822732860368951295574763469747975603617776658363085777408033112225542304258222743348369346406313581222467736164204464801908109190829991940251154352450361830208981325654802201203792521734047247144293287649000475560154448935164521077923097071932397343472851197595475154068019572709684248117801682055071297143156216445639652570375114987634178295023442801875439756064504073076920713984850489850455407454911920304507310775454105590390996152124608577422136407691556426037929882769323335266735725698133735109795644657366415075728151608343281945956408771645174156341882499366862373884335567017786808384693879924685490572407328158304341370168154617076086235064966715549295198540621357163200538026449811228258142659527661899966504633684150914852962647216421106120008268494012288670508747239924966571751073000707766590996000554914292800362413059188636417722965974588197072549990358887051031599780900393014153079436391054639105194213116251769743820878534941299958081649339426570075265677727266196822938935075525830268242905310666292497090506999468585807715934426905558746763472741000739652351307674489171644224183052132380223875309493231365306115739100331915589058201405636964988335970768509903652024674306798036449198432509403902741123382398429882613031416357139888257886626960514567447672649375836559010470321997923831098420116753254136417795398345397052538635966756765864552904776041200137152171692885639640760819246140422794759904138528126445651886584736266839990594633153320917329135864517367101151692503056649694957016500233191022680121820238765350081714674873792232352940579495846446258544077011746110794158143579383519094755273282595393194609720886766819635730616048837376571673825684047578286360213190510225452778920337062320619457730690956715219072645350325655102648796403701635427556156515895690801244082293170360741841855392070403083858178786845302029596764236770046603658543256152557773485231744095945799582826047552627445933073815585276263742243771292975680334840558978368426739676205221782411435330330135684137320428703229596013420339215498903143936622275718271342597506865624937067346482092723993482552482360468479833015704088612280040178076221757505762458702920843552427463242944645632278287424596148009013371276593104369974419461640114013820374697956341519389960769877685053776960577909408155928834906217847772850327726789059738992137374745553483262190596254527323196453128791018639914186562370773537976376667277206588470704225134682899574359824893290193327407387430150555032521953967780563545162301224946358617536486435922007813083593030485012030007764527919842692423465676719488214639902476482375681825655324486019284003562858404574666145191425342744270378516607239554423712519316110092388118028503591039667133126554884632809991369456158091432757395452483890057580376851523523808867318088636699498836960977911796587741906096007530407076027493439636482097983115695649905703704690728732498112571668492320753508381344801340957888945013890963264092459933878034908911911969063305460270131454994468319222970322421467544954334621618959559918935800673529012796801834075410507945136599268475575914935709263134635575027483659277534539492907964880469050444037675918347957107695673804016751833063008094973395529898585094285122079220309142744283977461955449622425185720762533911138821713720104841111230215443227739413466145419065878956903843953764729214747000384670970320498401172340619606373917408277900194051918718591691366836262276266302371878992657630425374489295274503383379111832244578387586964702984668495662455050538056341713052768957421745962634691818290164587900759251270931276542240941221171723807981656827859635133410504761893855239901703658612469288879067272989542167246252497562114271026302987260571032235789473533825631976291810194258310606969619604363363408120114130199795916064598667303276225169632468164938236587917199848227599221099979719161440271422195333811346872165616389263523928119818418440853450210260077312527171571675932228447437820434205729133044828035481294139654113077703203917945845110713725801287171625325984209384520597644366198674397834882556169023272210901572253046936856118559400562241563833963583583112021857650067057790733193827112363725876030946334100720812522245642343758013189141733329452618772162860691666321329030480162408061492950716917982147991411569004358047369383781175888555953636003159456568068765556316782181240746590451861711226458001704524316249438326017197679863886757222288862419781374252000643870529103372814341282152774369471553474968959331324154235623282177159033692161765504298942626745333690968585742180717891576909457330305133512107412216054262985535427349779480128909418885110012236001246384626984267215577897433151410409520856171448282336149955392916171698533723301680433957692016325870380161012465969746612693531953317691225842714890414024524836563375376776497356486993793619380293215862678125323358628891152163521350651854123807151679043440604733175651275271222694620569885227902264036252973922206324087471060968122778317132075565033392826590693178526013908347838965435225883064312256518018771574372233622168342524871411869592401203228615005575901825103609437467774056831195568526957480188092150707530345224511586632168190578578597787402356510578506627144739507788769191163185698308200491726276611874586165140357922400328740056829395757421580356943701934508568551911559581735718305946009893572932781756694473829099388501198945879743468870280793304275817818508094652293068974558085094785686367289047499466181390996910742043203491629170996520465078415772934024966610895590312107436741783396933172912558783823304519072748466186768339663831680206956002002592111797222946750807087919400688240962457386557626706848551304486574055237480883827805258398606776251392040457937971756782298769927601803196209806752959187502974932770427066345519051517409530816373280694986054053008899124508448350397917565738974584250814398181395812616883350816088482700652455864089510161064164062552757692250978277182765611303626118499862802358257620545522037565469014212247530012111416089228663756338049697479590008847054155424488562582109943927812521511253033910910717934661008593557942914368026910282962748176739674113613930135813605836291564689019335333000214071471042011671378762397846166750870873486796157793729037925472394538957754839920265301644357513739014606020619633202661847268380664070664556112001398429904593680368694585559575103192938862850685665210510690194677374427326064102883341902398379160402163403241122626043263281411152033633467469825967939860243537675008216568925926508901676344236102476695942490759754889034821927368061875609832972201585921835692346355001047985228328999415516304324589482984802619489191893046198716818250022572015726389305707374473270391315422566048201425682008929625403947016114144348956040820562538534607261188293897683714412789563156282154490367515969080361172189007778644366907282335555374570218980810668628288674934041764262280294871434420402694934574178227326818597635918147853251561419218365709143207707685505342618915948688226208806194044025533907461248891764330882523321682721054869934642773552338694626289730858655015270365357804310955409897044593554978748977009225334961305556824344678017476800054979610530378912489503556569420034236222381566402918691198600434100455730984788354994299689304604514068781988428243854590600084802957841842106966318805389140344403083659426126981009879290181847159905748685021335592598078412660867978423336481494415601359354542925636293835090522548701828288896553761001424881003186728285264005403502050674100537608438202356573999018947795977670648231781440391168727915893248222615640928696802803004779640309523208593425645909134101343790013875777129511059252021849634083819453856874778782727588106250017134095618003596055263683735852558628698328807071742769589134765883524999576021965915257349901716555955433618697093614470167412254024676260654941119272607400961187872084762407533615492481083123466029918158404830405621027421559736624389239157861326738141278146491999201254701986391712578874978867918919727132430005973651958198870881549355468614616487927826707632085970816642838062242232320474350192336416137851792757751491322882557250208590546490888264360515602781191473974829220000135135549769675538061382849671879231188770728911383231369470880402974068567846481161681061540456926907007550455875872533772673123135088447956798939618622643313395701331295177218206546963519858109354696171816654486372001322273109469005840055554462145396912668463352644525022441091202624669102095903114246778401253832819686088709363549616473320539519953252002327277110439711848342343719852483253380149376111695877530658819705672748754558625678720224119488670058710410903210793379922899670282666172266424168803154517895550707816723776742120075815917355006265277573663949341613918698576701203286595720730144059610939366776183057995479517688783401316503659056568941349013803044034437269192000684543971986444936083216257876239211096405295440054664650975495927038805473979597150619412138336941000404653788853609190716005043259377381364161056684734124506580888960961914416154244614797471873813031417769996091732041993623824547566205342497239907698150077690375498023473262821495079928811680043529103416003246015573516867588881518435003051724074502363669462917623198263359550005075648496323734970176511137522882257911414395194127365086105138846361833701768548200860460255055734594163988219324434620824878767095000077831526328661957983594422407171120207691443339262936708231007459725438001918648508240627195675652787343334777032632829558480629806228789907015788766660001177364735898525465411890573807350124058299866627659588334729915657931585720289003202436673864785005330630833293854699802954789497903470092068565235701958210051531301837886759749669690305563005318833068078453222525305405491777788329795744772949830523113263312591613923725963329953357337601600828086371445391794214978878393118177678030268215893581981700332359563311892329670825261014028280363363342911988748818402364101746559799085248329205563347058299606541836228798882897578548057429418544579080157688944465660434728864956943424419351707164385212947132775989900967772348298443071520475909653601912609011012485928514084105104451551090257422037634149265383159101819859667975937656759087752113278929091567087277548323224463311044379204988900583206913665107266063028227524221521670630613213015332405073518123779761890715778824524190076233341287850152007068953014390129216204522306737595232183516833251586656268610501062984448339527854221885253070260713422385047132725190007413660317316984899464336953210442158101985809287912457790556788469723649117009615045338738878351071087851184610778691525025548989417532158026524012956767373857199987310024126075562289691569692784748376418214687044864636062670165406379133360584839751246534453218992855158699567522574012225297105931876407659555535529492233977983438938034853681527638997221844843320898270212201350355228686231697790169370553118195492912372977066542498590030920947350265517503188929242524827895097015136116482003660554188449608903046273190407541610153798439377138516484432911937778534555470061157589892407399141932644072738747102442273672006158484739713329649668151063896448279011868843962101763650372933164530291171597805615642718032307241369118249894514976957378958941869706442896777208596437583099154742885398859685350737276013735431805103281769936023856874569109630974668248270980737491004538378514731147836691186269025465599316179469606396199001945636361537350055816083511755306088052201841813137199290861550807708396780969207135535501637530248865144372709266073366728159407903953245594631388059491320785408096921061331015004203989635107170065069220009757802124733724444493328085031829196914898695750818124120052811106426588742550207867951944337174208741813424146939207165853686346902274049300596712362805374147768860904370420566317353566881509192198585469101983770639287189647189633242627185175935291016665780760434313324413522762447234459046983878795760325945938795659570540211898229799167083432432622259508219493522660564377315897614715581225724121293053228503074586860016706551187950066334044074257155394449782834912805298060464690020874440107046748401027129409953366964823391350586256330555106861876834375071490408402776944906649959760627653048125470709343946741558114714547705489429531998722839073864683008083250887983406986236780529149407813872588078641486039543871413641953016255954642367453608663022768223874394358773356055159089339350584164434524019307878473346842839346743440640291900501326497390790430284924769378205833957307230597351247259235381333540297959364709037451357787343927369710228190561398983240427335434419601426241421749868300881549551768376983010910368879539535797843063814169609613814544362169979215102989944494193865194475201689133391150220729915980305969711621499635555671356334886989306017489082122683761464895073282487624851424480066059434343203923909559616335666610118254280066360233696183555952530341194085175019291724336820102008254045853629875738285328146008233278625699017657476815465283821160287063078983099514670705630572595607639449853546991101873194212587047683843196084913922854227865975771258054175065057010630687278579927741508958342417774556973103571778894811051412949985179041730950312609461339674170994004055003565764388675018041372271426299875582011198869516174665301837337801097082208273561599421767820538608968950893263377478282574483179359154999809731616893572788271354773211684697554969664289557189347041613574091774561377682540433049080630956634321790473792604285757511168314659929808917544282804606522782298153462925939917214731332414745689365134631552088118050235416514839474122120538469375618347352127890925459881202105013752952820912043067068789878319596195372007957727173272530561397745325775796887628893961774651496083850208434452768208805094235950047840982450353258402181814895986306964913099610794372221494143337811781863907460858037392435481575346882018567604951551533119796100694749486856314646818295205577342533635173963148189629164804537739746163288588794750457782294573213519109598461076166771671532970493774850346781419124958299467639787516607801073762420726385184348729325873685948633331430270011727838975664669253551488577001926096779423349443321753936927653284387482601700107760353001198611285550427791665399494974133651783450623382732940005713967255653211160000727814699164325781461407301912586632033022193262155564324012304848221043028874536968028012238370145713246348739164235941579720522757514721868553927447510858650270822732031361337396276045210625539886014776850507172607804301200905008708367575911389675792030480544350741576506835859364452030465017816030697160819017022470108155972628312694163949173507276808083337931867401741380911017520657451967198919392222142956558511302192691622906699996244760175210257631400531806970093435588976291670001096095888377859044526879165025266548064330204709490573885095993380948293881709263927076977476918910989244213910607152541995795426402022957721552837376158617580535353976421811433774668441073839910300244876991249215028385196030389860726155038944496782653610993227453807972953973349095514667495032723289365511985129946132200375840168491429896376774295230680555678536011475512913066723546701419089775624664866555509441451097187111180080812513663899173790372675650237139746438244681448765255000193212512035153115231864137582974358956988137944401610741061042715193414502997284978196597581248224745563024221529350928458808897682573830913053940613692856206852479787467196442640019241036934708711611058037336796659335428142625840543575011960906587959223851502359919516924450679945956517882029289027863081474489815334645640941864661977714859643371600311393144771529891990214786607970677328787896525501305400578363288454038667135616710506117741436925575440503544411069701376903450258376928735899824569121552947552187318149165463317261136186087567005560117210697374079790580726934104186228179575016041845939161048552503186279937903458976951557198187337608559399817257570846704483202415966558165614852694551303536801954718386584800710591937108234526171896289615606760151312220087168841755168674582777412903816132450380428079070198165751291821315811362569231437646695512285146900610740438512092259762274418800706087273144084477191691262695298311990784233758654195513274126973784275007011101919534519357358316179493225365203674861513364142633029145353661263423104029080772593725377691723117697811113534639787514051206545600567237241318452274675623987064966451158570812791583711592509288405451702455418468808366316539806128008043070118736620627285101511411715418760175615567725386143188354035381175467464910532997446516783867086628250221318185373938224831806088247015527371517718795452079190167904119158104098471305969082825903763932541378343512764417948216920885021207979519211854788914058397420704299872483442640773410210756897119765812275222768498494059111608152877796190078651560798697385637319798309562225010767968777513311136966332160981461368241739776528455214069930108139376898638751511349827544552401162939049477317528578989068328689605396062353645003827647224945600253449870443311311362002882646208069220939004761292622284181848954310630406231875339243054442004768989093368557345015726594263448842459188131729685020645891064897783819322175272606848344598589056579915999522804576672736116469539369835807368701620582340892092856674375765876092861425702473268831542263344253925924855486357737473792482687111137188488551896845646838364130699942336673412536803132764437022762530273893330955985602641900207491304541159716589081111457641401223327370615022373575947127722947828804611530859075336593041585657484105465474495871985424110776143394140301023052213508933894445378427402490665179659036962716610407813555186880002079630300627541903715105532427971222216660276395633459435963368991840154132769781655494455633703722712654885795643954487990953782341966450026768233853603923871557464052391674412325228989796287539165965739444882026753388430230090816297655018681069602618438376320288419657434630325725895939075968478434893481306873749113777896296040133213425473651639353749151603659624790263942271884797165008331993620790650645211753589633733191640223663909446826337924271486833426451746428110912371893314473313017728248119159365862821927200675321886412635249420873950042815249943336797484272487252215126382519866092053752943239271146137605776532308815939494026697451799750337955237684329190481764143881109129950858206845961760280531645065374578566071615772713480312760858378097141246286741310582985657963107335967371401340128652896390774508503800416561143076723905700775969542206890354344695775319630847503108125503470859232667321246948701522624616767807009026200637752973332636458724525153126265487952660273626850374680561328174033325420961555014067047487815749393776037682677144320610629641248431435899271178083901238020544718900511958267981318058866075792819906990747697635817048689694602484577711033265844816561841172241781387969748920744898481589305826934926020142272570034229685015210899581134084063476397907374126932482934585818860604907418344366951580247987134049345200672007362600538995211162718542735304419921703287137005740514525333984491101625305219122381660110497213674261214769157471487313815655264291390559894839219237411231248455313067452361876431446774424002190937466221489278900643247026068490554844171184934075730805786412923908232384744929970989295006883284370080044669601320059442459909858468763036709996908918611335064940578706292256166023398103445161245791125993195006995674828583758365620103265061491835531910571078793259760301034603856635960622698574860919864181736636020141947518534845730500929580551117290592202270143716401666851595604846224026230755533742055311965721085036510684669336154276756985873725772374206455772424437322503731550978630209142082448233324001802214211833856660030790047067752351568565267173990332383780666133090743141828588302628447325294239649949301093738830080364100930729080264315319077510202970489594536782196229863771200661632589068318826652698587640191527962160273775104550805168333954329291778238455137517543191511083222522943367739801325140351424880462421904082699949026644669374523010633749303186171195806610022980049242436651200008036060594705035925962751032812734201101821379550584855129495308073067186170730744016551314270924018743500990544917688094875826347734114886731855613420773689176197953591692277841383532213001363975567387980698745923051621221260786972111908211039302420394728037949426426024886013799857879692020100812474705060916141011814528976363789882847105988631971081331587147199406429593554204065828086611254513711341589558605486987275920930087949567647664639154025387501436994600002148358414620928428061689383479691037324088253182347373795287485463744312326550432218586851514977927709131176623714080560699810447785778711830683128963766222505352163711125845801548858426054781621905832638453875488744930654064494190930960866090903910900749908831997797970909583389824848844200848377627559167178792428481084048637444613700117366331591940088249192639696768028609373839485646431572065781154696724176001357614132589674230128169934564247453651073722275154156184577674020877291047851270888754837765138307874909094477628697879653595476557759857469853289107439759289968156173224339360929256466014443348929542420336160580233165879333514506641837802073703214470028074357103156528513346495271526163341300999566232114821099878833595419840555938840877185442789344217631574404238400344608332262702104104188875830934590081568678168021860054728109822409136622557465771095925782748385051133208823800248762163908504041786860610194161934048295928132601240830151658742661831655103989811483774642497580909882071602127496166992838938302218574391847476754361406434566048488476757155160115292540747232986486594122327289587657050603480047841776835500700314850586596661987346750207702244435563185860928197848471140407000028445288936991908268067201378726329992797155950011841569334161326418592350966039702336055051871910691360485334759219939471083338617420210017179217928895790801852553763509596273782528128836639307006156520851982912080301597868590884021431001598776982275483467552803019952508440131840151720958233778389833624481859996974491285273833730077043441810739317564738412154783856397746631281309243540129643798425348698082015314661528280907605087668706841713514178808343649004044638183081797480154344176694332566747211495377678922333644454071775053541551958279710876248408771640921872155427599375963597440207510623003303752615140393965813064048890261620199353637764503998046139325805240316156388304294758228892420150567261139974011056262289538884286211392635283238903915199062735472825108520822464383038885228296038464878622794515344559568777097989094580565577748134292873148862257068721319065751676517787171349286609096487845992204005099272617741059448736545309870082341923261711548837842978158231556350958100483927477910290077575515661897200224091630853182864329261999597459473789648042586129468524617804083696652627333960704657705366797257748842151998775765493122157853092645177103813342880420197188464465110703143079768663994873382787330690922096309512488716854713239412021570570386888461714306645677919950763511259950237749881995982582639975132037787810020014912803246095991292319329197152383326691882944186744818220993551247155328235316994672687753195974018902972099273596862953199232038555578157053298035265026031670799449855717538167319411653588684126916385537251819019574317339635477655025622195016945353622440797160470539992459583964811953109600146648857919816842990070285350573329796328306825228579740355221787142437574826691943083319062891142866217617216646566460271196992504654233682330424567237255885945842715480306973362949232949164023991141704027951188768441001374659075698116082255475164830118784332822693875579836042860968983929018239558987560250972462403028871926480802414286945352867755891679596413469442785921629476680263180125661600165586043885707945138304553137414033884589529633333760091363044086900006900610246665503935298707881242830835567483087524563952745596575691148634564597776582429606807854820128992301590612033284149148629935412408486210720681275609055116355397923399393553451769272749529352096956744272517960192875834575151969084951366066322246946622295819905641306557564295497941524567137981300540991752406058934030922066433551189091067452206758872461915448540919702504008831872249165419747044495853696511238373824036044760646265826671872241999560677788154908025427220936500756928602704668529207954258873044127233327106825015492812561981555752136130860644068936900231825537507950117232506523473560776395108509913965925231539346577025026939450393016360567150696063120396131042394978799104159945457180456053313736877444479420685906394017268574219508760185075589693850513125773314183239587194146528849846646079165361183029776523348913650271287201613406276864912234181532827966341214412496991865250582091986308085068356356228412897680837995646416119117028999110180799851557052183931756841876748725601524787579776994693324273214834098768553459925155817853073305534332263361197915606956360440419009348994015040984338716549251637400819695187217015326761889188846819720023682849862458105249659871539403684293579441110731164964572291138478633902213538475139175212777967642245737555086090944606248164447386231930062134148338057077358884578403340409661516073946447016308618341471462176931032350194920154064338520846566424567747368658965366948395984367300810122553191088999901736112010149878569692864729516495829077979714369202663104033407233107666128786105439619021276305376967070449272455414096301020462167581870375558631058413689499009928775147932600340738349296361052992391456444783492775887383941779730407545528463737883194871638269208390790569104396289661149006486888416204308275974454492766743694363579531458988855934110731501580010399244939136569352279447013213720279036286368668222556127011777438640451958981204862890116244700221380594950596299693884873322990768783874163672329601925524847219738822743100569969026647103674978980110476187255852692288542113770290298565447147198921672256020032404514077083466284910003355079856787516684727506991902480496454584546117277140135847837097791730130997497479378467823385241941031858303872683311951379467948599807189536817841848161404694879841087703492462727271960728058815588142154601043626510412113909250378949759396526987178663067881336115207651728272661299518161218877485431866814481325545689155073290205688518653374691165925450448706977070167500006302295157536847335651148316557630998608654986391875028997951408323124677110319206369917420945697230193269223402706951844698350757918728377754393266978537462089074657106501270380157837968470941367032268945947703841726997416354509354012771482917240479619285164925176331791779348845006977222060328094734933303491176468590167237074291537647363171935874811354900659694930230178982726897753053252300358404139969801125677716233846842304055199848876461972104320995927488506811110959974916221577179935787068674595983950108502462529620074240177384418204879643921731914028335886403481760725211401167901646499239253771670945265495356211372005208429258786333350643135621748020270026573420820797809868183124194339344555595353531910578886393944983755413694791221718056786437393289158454884979988407492150301211083496841496865692543569715372718289702998352676089926258290828409146218382773455272947801098524970909277447541462429597592269407937302495550824255628829495685916301690495378030547092622906491554023500633451275020030809928877052530849417638017392647585626516882112836265740229363634429158802558434843964459661818815396772763250108729567662368695859679000028443387630705565088445919294758094684745620877194284748755993540533305638447892993265593359187057765168686258689734478371870077746757964430813974766429269598482412718409692433100560968511812441580954411076792628060234499997068448072044681958100103690501687766807574029215048781399765463087955227353865333690877983059380181388986241150358982421537451556841819386248236297644163092142197759991245329476561016606701415398337198947722031634349612345576201331073917994239705482770028426283745624998872866351228159538067247593514109624158600680069991854746560518686118326640997356368833833654218661925848977723587228765717684705445043411401155351572089036284349996843372387352500646441870423581477092717031758355658569369152143967641276612536396102059931085010207280720566033639378794673572546777761888538752243393752745363060285335618907014097780971562232872447216986297492810512786574041812675586336278634481235820910166076358901844419416389154044426009575229476849007247649902026472943445975790325528553487801624909868920325472091167220632549378937207275012354968107665098463299663172873021373605954524128561043857456312771337372068966791618981887563335546787053100580248621915200472488604550556602881110053074113003225892777986858273655782674725802541028281027829867333440129959268438047008933915898479148951180116695718846106901669412809604978517420818418735826706386744012753068343278989618346542546858074641342632787357797695684282317287777285344478831393263609766085067303699021529818679840340161536777216980553782381129398748959675975816865982215367433142344384358270085348529450035703639361253795740314879676806879110045497956572913556124674620094575334637968785777156443029724921752207313425190497240379028472777995802406283317461807427400898311095929628384271560514294983902771828313038626128414775749267252430531205755129959684746042476215845725361849417291146963980644876307048531206468486784736390562833264803701546701476375803739718596855322091572417596316853852210867859156544358081923344439314374531506657252300977725793464764780975255331745269455747008882565794993961603104225571363232534716955956565356470482631662950752999794336641514041740741508126848794259419298416223368290445910274081934549208373996977163657250181198003722597868578354127192864546539527029783796399481357462592802623668977042967875261857271535468099752372894087858329600741806207510217242812825300731967719996166513651318438069044861214141944452434203104215864132210970180039461940644406299638221032495569953368912745054598954170778807140951060697549190906386674646921667730926634750243423211552873627862838080805000942958595903771776226328322433199216915236526448909701840194151396657682196147159796470701545057421730382657630303631649487528716867266654448349260458096207240446805478437026975707598720538900370241816414438988432905196920415943333987677350578630734558156763983006610091525351811267111178608357148263517340056476332937300900832155024230996921223990239083795057916629846839717790192722810066198995085921729213453951207330545027374286343561952351471547670289757503342140915486832686016328371038181196979449106833447455182047102143628747322033865569859543470090905620014411835168441604249695641446285120272731497169453346569598054884777991175848656582657441834081992297199764676597821257162033457089035917678596920884413553511745565841474769957126441649156627947297046556369366325672150138422427213812083185756286037514307708623584615742233683513958985816197481392406622258219697419188028374997990473188476668197777469542648010984523842755535423082578067483397110894523928279945483164982753488075740212012971778891917176255050784874742055910534447815555951929154562328374994062106827874189654206608817116825237812334174832040169214150479603654633087392727676100570157886394294262412775235970499515898871958298726363128529095748237396840155043553287281933237286056801664457649953960190846751996209574793664479097919529112661632786096499606619954951394199165945929183658386204782253651278012338856676166219510955506804640540160597980388175051515646130912310143328078471224841889239192822531524547304258204719800140041015306735681045882779415452077662857895921961470875763555029577835522087584145566025942019002394972301897779792250486811435401406582249302960950105466899532597970902560184150460193542384800399160278800729185151496451945061551121875664674379135653479435324330405916430095188578998847947060976904829809948264644250501319127064743866859420930134844003980904541222809025820854141007030858597095498835083484713749003275835853906453506196025575302853154179820045986313007569799262999029420594573262504121969065899422855063814900625046985002956367277928158767358924494554985557567968479177230858289253196474242248543882923574651190511087624347915508960570764790772835525946857699172914994582550920247346967861718552929531586042303966652261278497156633908821185810119075729335098026124176339504194825939302428150527316055948915130469260305984490668196009445138204366894906883656243505149505637930952749463626866134215824968852453832651433374160059795137305122687125308103553630810650618617661526743873490868594574875470953699935828679659799666776714276573399817589889371275568450845321394533323638937226240821517005698530952375545420130553304574350570775701317256379554061629282729923130925999943664168963128408389150373350813006213413554490102679590777587736411103660554215894380308365783168128680855749292580310982436563654560015742644275687518317029547879536973764499894809800050069746532233473251039521519012094838257427679643042022194002413025051073652262036359026614485367187911987424449530233934285620684753620901488562057753494751064720709180951309360766953129606638113405696176051021905961563877181489901306103030909187836018852136785837198418107409487436613024918179831424743924523029655895397123900655231259115828692187684314239732673258666814856437668533890498500330568513502318241160040113930276018525192682353121511534101256492609593910013324762592020745875239455768545334341536743288786697385097722396043612191173622683892514629473579687315065555866828605166409209746313801185733511030544638915936855690042050134134058549353971755534695018110405386377555304882168507701784908089965043451598609134318057553340247216047709160206859198679441380101763791883446663232950823563918691502631688116474023248001547748051844917569734935163630836093592787795344135612943699930547339186784266050216536741934591876426765255811343061744434614082077701049769138052401592915356287876882407059617640097046239407634422289032016233491817481346952150620772940568145058548762479550386397766915762489313131725878441801186036900791823136262045138327951848430435576247908012258433561873456921473237755812969437715911062057633891265026519177379422496994717991060158055914600408266817163774193293724038935598135519543491279407935572201646884935951005682706674249338895947128084652076448404804984680609975315036057319232629613321893424738209209120984291007950774612145665619565996811483200260011494584195645269207260914947349094262293871507109525295909711851662487730112234230925922552031347074563420536213398848880260314715059694735452961055222933407882889423440975037154083328004990006882300639275681702800241246194029495890450966910283270670337091716067156346277347900416853580903787974082361799383347035641340060650102088974957497475704732402630435169589308992979416102918519864484494644325449606159540044025680693712241824943709100162855027075943223903986165574057999764314055236271740186437086146766360037895943741414897250099907199079018060258980560451315724797929939011152747921184651485457262640232820186324332850463861406517936387118071688542696295723005958884051955801264717000011460020842608507695866103079153323871874493795412656164631581572233536015717989121211799845610920882619197661046312858996210396834835486743706145986467630727804629367409293683892144058849594630270435410788190319253853117084481692447423155953907657339971308718969697562029727042481900658654981007276816038970232366429540515443532523512128652447075276057783728458078157507560331024031300537134153952831982072469544877561557187983815698439338280715471443390204952063234116993005383784492609284148764310778980889032409556861697245854362019337388550509923995492471884243858027969475085602584280917888089413511641034374926066024743127111331286761840066509385935681602261976783559160205078580786603236643911197534238606811324215084375051510360858702231419924557621487340560855377663825813565728504257047796774414664929060692802970276009090857825279622309162262428855960046173015485546672325561252550412471614462499474003004117730713284884273011740737778419703561594366075883248606693494229914207041854908092757976617714728129560862421578714377274491857618704919111782423136982261562916499308496814596398438009440255180124089239915209505940369934179995866130910143519405737071857128194693779210638559349047401274421638839294616551869947570040608789463658611737715449586467014916326780576093514941263293195111652346460170942908151566227155586023962425586408913928351250013972930991736173981638366521094000590927243166374338202935878241064915894120958721688509970637974126410191339716336291768964752680093643985826670841209276068107222577149991865389983896418924389226674827718707354564044411800613259340432045715103215678648107177195360278160861763909045470961417623509841686151411723205211773530596116990128798238026364718620269328410068330390326800416771918460839945708561299413420352136924416090845377220188636506946876318577389148446137859239599581198455702547319253550457788010120872121012966134281884249348000661183052734523013721797536852584680659312753568316078648339764075646031130107071807170253739206373152242241918910175268959562919369122715493592148404906534556790418940210155366680771368323287491792550824788575179399215860559966344873104166797158322766700066888953490634459111631145992182987390497682524018252842841409989409160923239065009661791927840990540759305162304235535433033017446975472973634836142589550734247987692430947025633034302307886387590046993991108895920661149933673263710936398093015484838791310327822389492327148970473441756981049149598977100610190167248481270148820359341989637310966088108534171953946006075083558794358606690164029457316163237555168592436893681636349426514863183434052478261249906919398788213314414976907431794264123365954646018654235086483028874761543040722683582407544940699943202334168467534018323176128437071400800886633162946721062827489946699501579618763876563505642529971338776356661629092976605925395043170595899769435117704767574245696167787317872672812153008462793444094015172510969100897394275311953472165695891451205802774112076802670136785155895401446624233159286662420337330865694994774760907364920840971897970127935178743273731788258292053852459646186425821810497508642830485518013384025219768883113773377295459123441074808145419923676756211515924707446865549508672679742953449260148830592702345474028795765545335975467303409251452439217815711938280033227707914256104270023510489294672787336416959300428317697812076529248505816229358450588225721297957961628830680011726533691717592764360241479160023340164201512187814501000761599025026041319474921304655336346961154541561557407617522995053226994309365084191463213842917587968593250616871190681537623205354330542776795120041252637021824911628298619540580407788914081886727313995127626974901680642640129175837917846319529182447816987049368100013437771687165561841831364002139002231859838244464435471027618707396591840646709415409254033944578312672847920242776276082647258175911211493588877969175042026908081122940792202179167578604571453031397796907410524929966616501043502286479756168104947538992671563145599970994257034462366853792841111090154466271380392180748422086047180649757371834497067421294401523252760278909774817475433702268528456647793946376219918529234311554452334405981663822605016481079585053025092905023321313435400779088049316387425306560997943605636629352843266112681615611728588560417933855310591474097411138844970121091624793160594281371684518069994661616356220161138814069118291730120819594400837368198314502203536501114754743946165807783762174487949018590209159555403441322068477940581523610989739678201012773158053058462943200596943451960755994562694538547911887485992726770653770903110065555536388475338589941534577671912641838525482797246326694938820809873339527971513683858982612828264263407387335435675314553850454829262417732641296654608556072388516892738463076055849508159551482577023886395714406704427873721239671009851181657655353432240237711703752491796872096500664000505284409835895608651288033524302050547703315932325334398087963469623711056754265961517703272511356931462780263282965298876114281579181167887146621632166198992578395735351286864398231393997621103589344050935391537614868481227633096167396936549743161341179773897941826669877247760164994289996787347442350571936867500517977827568083047634704838792208566520731444928624105783763836853744020584933288560391179450897065543743022103101285406003085082022848683755472836586097952189819260598568525281486598887764645234031711210303774054410278939408055616038279263944218886795675672710321098553980974389640263921278173322199574324020618272272087905451294404249606361948015869584756833749042915248307911097546272103194401560532968446721876745093250483859103195380683276884443759840846305783232406764096508160410898816689982222266067935235263922101923107635664363790761760369562345294830939494482704307731369125951981051766735149883659018869186939093163464086878905413494367789622078297711825995879934761001450854201280379731351834263086381448112056097006533100067023215455240800711003498033719726529261650651502470939296623821868471154254360381761401856739348204126564151122507251884145018407789019024667163654224339974030497774925791840859458867732950843329503489294050277384312418390938539545097545481150385892180488647275495342613357606730824404802018633144647250960056785507266848226322191916591896289750051287432804406584564900317349363848956344618137965184872389642829164943109887523597190090198947530069522233357392246828916952344278701162844253213229323930574832106076527531986890336750145815978749210564022047028023205474229240331446478795761699950222592074949445642924979945653611399925739372708862211790932784627221315397378511379343772582908636755609426206664728210616003714899433650166781676829630175383884509534899178349922996410435092283912418143806805187033219185686676289619471973768922663977826886344305910533616302826926812729953338451804921345620077634140073941509135174999653597124183030038048183313930150707870430744538193544932260006145733668693385662380369979259134541301049854238998677331313397806440320493326861614328220192128133064062896935766749321158685834825599651493360069192925232792050227028184321034787588417493824201121680022396353298126978217145527996277913642963725849375395997883413956360055004092435090285279003285786102832458364228113106759201094899696767856576510294165145467814326867953978034678628264845655827000028113425550583452693505597667417819784090990230853521868378535797339541641516056998137363664414814690082859256296880977283475822252876385749395251922690370304970581821960323478949947034585109908028039058185558933981939622906569755125726915277913020897089411445027860471233338786063364783974950426998292447593989440684491408183676027507666938330693311869996603538909047029294061587935876345497388998820166862297629864706498810222504075515249546223150901387809216350747354065796168175928328059116931126714453818193876433461601438194634378799274228183102477230135191463699710177012683848547748864394025398470157552196816128924307578439909630768438426319928494125179709433180546582826129545631138857554970540221302100374081135376304345354158062677533592575888669594407954111758823412107825080796906579027521310152568548765555564468208931675908081849539508013145695161184790958836185327998976302732260436482771634321912803985767554882964605759896772981699989548454020842181919417155246215026997498011837593888243452196073853183988583329732642174327213363179529518375277135982895513784155784128436698086261851564825956683869800545019484948415318193894875183295718133449523819538447832282159892728411962411678974703057451115207549923250635446220792620358019833151167277567958566749219380472896240763157048054123804758212261488445985396634454556048450406772240486235517086130187817790050679793187449087461594713745897798070081277790274168091765566808724576272568409372149666144866361764364992336973519898843265819976394227593429712349726582078239894185843218164283171528632888470473123818565307339588689026286992272852384509967278233019526690668482183986158649619530801833145661352412616294516598046845736711027912796665242177861439669378223419387976610148066363639662451036738669909225645673979850750420690228359861529143180801270102275391289861916754436497398135097761091698474732745730693153809346892520540965186831991563746025600428929603680580795871242541293520388550286096066581315008241442313307800494538885125627186700132140230590178393052157627135539877465616298172441129890662292292983655389793203134010925270442694861709736154285373132969113372871524670583713803913652320872421723254489850794667048891842729305370243241416375087550899907961750685088105270891154148212946239220323783054121446141860191764856301277618729010301805895879169838274056996352449418316540595213363532487800615436436530716646740811553948998456444548914842481883385384370809416884426882686773266497756963126610606334027372294688966974297488214991046863591228818912136421745453142199820296436591806194542224731612891966752825428854076010799954054342776123308925109982627020314409014189136714292201942513519829854514142522029555641160374677624719849222411891821654955889308404685369202140941771078995027519513137217599563341893647946928095946753234201821073295254361828424352910037797050724043588370162660671140550148980164000199856934516990658809310537067997719013470993896398196393069630647596851595722610366812493331536492080948680233082824676306890116995579183529255364593719366769100167538736573060988414132659587461983081514016726365493426237939989457234737094580921399892875023721163206329473283279367188342723939911086649288042201599656197772583125136091184110548972115551739978141016483526981083614386463430284674946525742631765115032817342957132631564541901225724187033815184841950641773165276415535193583025835786968998319870878680241190428931059912750785691662861959252807534294068029488354905258348660011199224006591931612781121338131484656606828245337752756745496859165330459774877230306932333872592921887543823943256171055517305471081019682250521936774997088455104513785141204748172958559334310437248209970634950528196311267277792033850558727383681441099610758615215615807217996830029876611591933062309368474337482092464407707254826897819169855127224119551350435589625344080607681037179437092172345979929555218992618501007634994626390776127125260551625089511861631891629622442205951222465457940652978524206520686034684575677558779024573491686892838843519011745758748423966344249791521955872997935231325738888030864332019591845488434810052497303048830658522901726646204408976803707718627705332994568487379836091867977761336447866055827016813177816747222868459987796058405971958623187164346005680516652496690737089195953897378711950381719602031417607058717406217446610936491318694119597772591908891019617451104036746624166827858512955765220931432745407545922009879563216618164893353624406688238598404336384947399120788000428752127969545180136942351368071781523313547671861917726320156675847048714540609094909395840914477534321228297681551533149203932064000531947951430833586767329645421328059014240064596056510425351406495466404403167919294687006721753346126925957612289172125416431369484004462858184558888889641488070844981463407104007714226271630134559213404961069574661722779506461988016399942485473873710574389484086003810535842415995264662220479421527964686170607410192370839311005310488395002203697086923641536540624937653676766515692279869520794987154898721076913198967507422070695484981504075986912386345901184651140600937710545935115344236184290036816756945930493809479506797742305798548909664848129780664776271573547866667403130539324250579871985624646150819889979784929190989730044459807629372429058437575092622933396551392230036356448286988666477088200978843056789963022367624569062320098948522518011159174507546145037677817748683398054812216126642355885418029014781607484419970133156607714574396466827135100097576304427212283344538364448206537906693297063000477813367305532801294833203625305485214005148845484323381122944796073679958871853703163966924208293067186193848394245637276467103995863527433619768494626669567004167789585163513837405458749346029010285556517194797585755018534051416074426861992564113971275004267215646995629043634512107102375216507396911172125854261256261592675867327290934665544288368529669731571451141152561806395963532981353350463325258239274117922711799425960069729215268671447130173525658286963690219645536004183693749578533476486543533904520140393021081507842185961444470425125697614416177947350912482008347667804138370514216767519387071121211727204350996653336445165544060190458966766943030978893204162403284938516471221043829637739548892762061850255541133290443914678285322666965162910549649436024851898290551351928052941530591701084060565980281798677620358178747521078200865525500208444666473673059950318840129595089802793064717994822808047884692941244488197635224996008997040801214737253387136582741073038695626447882798553553689691605965918017170799564501268692888298608421170445732748492516531391631040406400297401775606599688048127689690042979001504912889840046819925503825278072322260453312361205041821179834265974261065126486860538077554382192767351857863675214586002997111034221306753000639592195319347131374994384445146397814573872618299664885406477048683527592220471236117204576310573772046456424943800980131983917183090945740883503434486513579717420421306685875474246036380186111234580954491194191932012082416084720485382602583491064466907396322263195456320259466306707319119416555712386256739327880020759911053121555328816616001751516119601571600508841658743019435061063684224794189338955129264211831077685569681527709151898807993911838239165283782901928531453951637188456012303336391125271274335429033747923243050770185852329162558833161728056710021832480942363914565593886547819592448787245876660716692714567628787276408978594066334509860339708302782706499696799350272665355352552375441116024690706556646982966500251537048899277695765623441295434924782717302404243454723548582189284250798512226222438504028410905072492423360537938748051985784730167544647854541442727864116964834226877088683932930091350446183137245229416740425525618603261409905598901956709142491427832029978011226117848520070540491277584938920139470583804575306831125966019136101786137750484292447095552209864221745559716565522304682921139153578941835792653825070261856726730663424617131415090755456546351965809256329239508685599755018147437263891975178624739348677683423089444629261522239309597561343968303998079365829859277964822548767764804097610255300690729457621017311993631155837979843190709332575646804469084346428717700672000773759584464765587606433485066401069309530218319141928851525348532730374500622754059808696834985784203692179853697208753462467701362859196936491907617397394541709434942158612984779941891644798090320020010623078065404136130648844263881718568550196348869149269280136153194962758496998142682703191846355981975031030839634912854616831495326015742201313231550449663165293035344193045920222302490449990391367134148511520346148193685523926959741661448987350290849760624216064625199171385947250321426062155299552055167956265869342311621209343012401604620652750854439683931061354271085088882185777559075526169429875544326159598471216560913324147661914605229065232367261856912522837175290492081981060463695853697744964531112241599244120582523548335862605919248480995487223797261681053946435648338019950454144580100262891716938915071737494620354718105154947715351128017928566911331816233923755074153740291823113303484358699036150375150638610416049795916168893241185906669037733273856261888308550713588379749305697192098525296002446141507040656575382682120274280418549157004684012424000382322946450647468053325899535851695567213761045043073695152300837780611321677895412521367209180410120881296376376581984693968527771087191068770009265339944582683632107017076084396829554468284044946052221428011592837796194152671060218545099230241568316429309477012530659497464302220628956243053568092823377121534096253087991025164932871741030474680778137484394542628671168668826483400734041377105027525664135689257202450673906260789752677603672075696238789990801882839649259895401822751693213299076171791415539968299088758848955444546952455798568698935511774530219918165909726035434339076777019293126593254762854128901496857515260646997946196467479239450985836543969430238532204049871481762276214415211944109951546516313023784910556102377731763771272360449908950075860226750712158524364934449354758600960378575236682265206434307987259692038209113378938539116271412806764392419852705313406770177120690169440164851067733106585461342736566279892822418650828006788736632160141477573007479964363669867432448525058387346136371319184478106405305044965651223273261983381335467934859739036591677894326942344348630180565896487011911171141360052389993373467635121295346700967859141327006523969350469754250050944400116688567833660394807179642071894913642830730958198379108264447269673360608865767777548719870267105820459731631026893074950095385020821584251767341919698656622137338862667341757785017663550008679162270421459932651483154112063197121310134593125521662663723584865522460211257679069202853858762532391993736148433314943324021311035183307411157837459697824511761957072860314727209340678061514517230422707044995152314627678327748007894951995040847113262964389115090620934822246020104412840537199235062285813568774682297215142325246544693191713524871627094984858930829742286565405332620674887136986560708827775990326090983333224081728235204096992252117134561545108525650420498556175863019949805728320701059399571591310003415465090203724135060887240485853455823859713283179045076223543341410234812095264536749847665675770103587136153915542393348823114299332984084731303429458817854253853013904559736871574561226212874349393404178191406189657921827543465488983598547873952462923643926679340583295460508649143360840384004043533058060131676250272499708384696806542489846539421455120103068445525843553132494513276842416533442436754849373944836326025370257080522459897173466740914575824764269724531200640401268320997439267950258606477993395541263114142220216895791633177115226936877184025396034634942871391792388880577896709492856408431005449639504747129304387337956563026864191260697777263048074190838542261734601110803178626041585386097822674839729951284312392340821909067373225940198104185506149239202160535325771460199023967812588918215572260878588381762969349102080217553134350240247351673147062926054202289435305710459227345292598301463330589874422174088048557797466401483736780282307956027083132970798879148353622670547297410677925468723043207989905568759000771024532063735298758347516086544301106141326661489985362818580185840994855625179604231682126469216767365066409292065356033462720477463581538617981766033355410218892996075428088040138346752332169471912383166833288838135465267672766275037613312895717242084469459499843963632932598704924056900650305743906526436925570824137433444488255376283602297159920033380749184755586906870317112385817133208701322554460055982575133700966194467490741411420516959300568135890791061522613764701303123620440534777246180254137095429415573789328027068547591118749194243118064561080799523660562673780235142572655358652207790345208563889679016845229824505713627071441270506871884379958501494604783288176982958532879914564577263914211086942670864968796685226180087774305282047334940642440103476171183833626568372489949323752920052910507083178885393891924305939220425295373455380849912720568013222753627960424349245982932151964521902372069265677827509419316334311803278685473323798592306329427999140749488019515542941856341986571992616503421924273775313318537818696444360508801080172704758405165375725438258336367840678166565962291326812950433438844058347214038375442248316504280095947242180173242734270245505059212009450992017440003401623060684026459916939847162092670550399488459711048578902566967275062700715713589803229553125491180652587226133335900729738776362378928845779383200249115650030431175748821593466781323212512998900668939276226995046604538097208626167274005697977552216146539185554307624874027970844596566743921899629291369567485630853213795632299728192550131667748765284927175369596117803306716837046293770703858283207818820371347202356691269044492650943441599097921358854716953904692155351005233738531047209368752501191761205990255474835232298868667210151659743355082068966722056432256183436156205409859625402201812178704809414801086290916053127661046563369873281279009784459339438576697518700424253614100206758458178858316378405131796179072253520455331428515597119221124356226898361208264004714131546473079800778037245954712338591846997437015914353104256927068007503174152955922652563451929072832824259630949033695476417005382419302920581497274984605914431774161206237647267533303787604774517224417531395089707601720608205169280082049090036908385109937820331050279625130376140941198625569678927874892618503113345610934691137572127904144431048985741910482523545579935417298131769715186712794504254437419053924800870008316371814926700664781443252245096257956504167214670051935248851809029286453228411890449673032674489684524692839090452803960793753211212665157378400640886532341989374360574341799400459605408821590628256188446403373292973723348096896448582678426825299382109805723781485464605697688181587361353332535574710640112318290015707039720785388818413960814533463088838979359691514616962922415644291151918299581759690245587760352396176023179686413090310618366261251461795987173263307412415637350676650515051437628750278623574880994648082276528775702323462238416106198597965486758615548212896605226822133821588161098545271503727983645401681732496384665689149847116449431585796429082859505099447092222702855115561540284643425591756383542793496553219181680861636608680113141340959579512892485380121073755478120745990646650161226767195690010262586469028084603941365053954364527017527258005920746924238371659379856741519510540699982722348284188737441297619039828371774217764360284099633238122117996164560174601490581765382577947120863492530189661431620346225486699989158169127585584599234648976240855040137119254119660203554302673807762028937322245083741635490167068041354446036737347116663290515835955028476111622206082208416231990115085699708423965237721600412168576142541711571927717141791179554721739764098789943929455712383197387304894794043021421849066412249559032462283367891563058482217015096417730165875545931112038592802287035703067919439179425816030734827871347467258498089043815805402802874566816416475812969894974740483222367055158989233455200976631773527149170966080946032317128114925286989232114678277036169437112368218357437742837758193427442046421830896029372531221570636710916777301060876100469832083701083579532191158149950457195779219034259959598514818047073497554530650522701279094800843014727879399951131369892799967509195210291618462113804821306183242233701957740538593990464907364449875926901304761764458074073096706878919677802592542185945375845282508535418366263600522184696471930352855435156949420544918878221716137254638179831050804128337600099718598340594810578889942182352879014602144268964825808410415765579987761835544237747275307581431401264305141173133542960293819303515292875730531338193778235693248559536905423755139604657202841522383249011955362792815468406751776883713098530267826038778520572460909663949137019366268860795402431599412519309548808925336201826350674927881569948911960910169068405531169878290936240998805577436366200613424386719145932985370887716378203713829346409352606502398797151340786054369359060821563855865864270001410246767245745115426801565256432704983979133052695667119050290032010145690626543620043720744078264567627221654274859252356252320964382341784765896585356584975635080388004572029486239098649980941116931569373736081110698058964740226208745278324705321096200898591543946652606840194608916023024240948829925900518308966844542742428938257377164704887029160674977874181237812646491104739170871803034044362022696329108255289217933623093097730929122559501283738486785926669373610750635631171891211291757378171665036460458733320286718457812492047996443314016327936648076725116381880937365396830557590795934001028033924064903437904813148853261771597066779644799821942533028438867818203581124771334182521794996809668983452909853554596782150053540924774975833361959529244645168717234965824549686926578556582048809654019827708013710636993883895943849057842654105311900876233553106318446187323917650336976607167792751696934941260203534674413049125062560391870706192887593351543403820779124106985725532662574577876299795447893293957157361579296312930331627061175218566284210509790476958390362552952997808807652930758038727489471073447460396019416947037423100674396532586550010393607697092293553004082814112232088039694808529856990999678986907309337443795515703166267972056605982430276006983731775761170086896630175418403343306412134227506078182506165487831244958177965616974609649298298169478742536962735175621774402688411886508436886377287093014503635040655259777538805262152915996274239603185964825666859983323155685202697907221232632280494447374414589264058189451935376260303883331344602879959904075638817775528259346792518158429539944420405194230522373043471192291122231318176662169565056100136556915241769832979147551506092535197513484210357537333190045919191338070041980139674755383808084781634880543919711570873368771898662303779047958633110113960062973023377375487547542655405390431717233870360145540687798330463980526196633158805699143705523644176200760766286061395890432538663634808718433721770520816321843842608825477293771204694616948224950429565457728522613084849360165931160170365254992739203110483640044303546373623577011687095640834254036485691787266627009557477150945658795416793934333350218005842736811354238220555691440329507170980808986695071682791971487156509696518537553443083412017385408435843700211407956468357225147675181589574358573953823378877490653810613046448267099656297367665259833853731889223206220368223041946670668233940607209991021514852831517306439436910175675985223689095236411880433363923219625682212182937129026578140206091328548092513289350502975672383751094415928216944288599304081031717016009475757269373466385258658213911646561371483154974746502105404984939141275973895096819123138249618453142130788851945147921606862811519487307937379571919194875088089424186034246174381223239242045405028100776411816356179848156912272761417998268143652561146609984974990001163663206446169096157272216620820394770112921941104853491618248579783383464783099742575968563691941530558534964755723447515171972253997060804848787493466278936494933273225171083999526305146203516976075464786171005928641951541306752736970883115587976274739824464111831775269810902414674123471085010513006834524826113322429044090852662273259783584413801515592724079047302807339378998705560777746108276995602826721377623683248336005181856100009059279148252308040989335118678666427663302348975381655782270129607263791073524617613990999934658576558335867777463725708037129509725758783600503676340112636014431397136011027018326305912997833145718508941843611397854209499955211425917280617838396274216832784718125754168501618237307410732458157688255074058679745237126949324639051180840617059521047629529724133781946785941924935725395165468267633139088514000594157568947476088288425620979182382239337908322764873306614690649858693065757103410852973871174649831381785892904608278979780735653069027593508922820934839743949520818218785645648997950123469337848686024587621011540685724079236189668062552404186627134348271165074877823787463264057344307056827057154106734994619858626052994089455037138057373557365194159535978108011882139469108029875902698767298106563177496116134036291566624902782262315116718972194790656851348558945642948144039607794125182880965441072657601476803252086975092504231493263908117658401574782496312621577236121366364563026654176723650895339175299274691696528332354821514002379172852524872303703861304359931942126796133306261017141393275997824794378008455009238763563366508234228897602182206922297887480270297342929759181325229125034574184934668669574697872347950984266704627506413925771120911455281055442969432837587284697576232103479837484692687229935178621722361123242920504902841808473455507455143449448662532876722857568458433109572657823868662376116648126417415390385104551785872915890748715157218553251473239389629447170318404885935780352598274676439594193613492795174621761875593087015958391271964842930923956237801647739133385024783604708695258159028348784227233618845032319920366118982483189727930437561496594121809540360204939167939717405468547257722032519466134767632198900312809602447924388418193249987423176980083286973484305269752165705644243828055230943317228672722424401277919649716283384710718719443662064264641600090192675571665411196508184589711236653334601251546622605568226844653182336348008791316060435166357558558736615788314402350215265582842405102477236079269268461062688749804027027457475867038440202902124749445646289985251825235983630013623925768305440339760831021572378178504317526217834262638846199302358154363844419303205957316136612600545324557719839740693431140670547934718198252053277987862748238615247897295507345297664814356288572887620249764902644833778610863333658259333307786055763443518804739759009593606466655719587512983205239353894141403843900067131746265297237286671144031561150872205918351219694983389911642367111103038965375705814231526277270451226240562641241917123594237680934950037859762212131960789316067315935087073815818844860758920934089189424857879852510687849469113078936109161563371398596286952788671649543981349016225662881941937234886390998105616339887076980026398491084075358041229786340797293967058171871344378429873091173174110964730206392442712709665654992147561361401576201171744865818525614246990401544397228678833623837239894144318389252029800517223540563738119212294219090732609373038311203513532061598988559414118885962196335550731267152870537654255477694251787871055765395509684329959765768772752154647457686162793852661140243975984461424347699388681630465906368176741810984697289500552264334580254393808268985287452678602381413567690238477146257806677875273179216330219177371773462531120000137646735279663335795542182159460941954771317655285176825834170964320849667549942540432546962005977155914536820227758869972411810291463148195839238547169486247531626490793245645407922828410871267385276774479136992108016600287193604018342193834007467178544151170513994800494336749460512070583514019424809455432470549072640686307521629143049493200705150558666069884682634659769997785341570648478360273208684306798605946441679734903328204382800686507345975329404357235104142111428374934012788230159503811222347428748949946294784295077622932314271309199011881596178530216492941838855999299742795061733263739810365304889859802365731025501092434012813740769840480346516218761461376147479557792926437806034091609446660963563694927044031401651006863562003837489899505178647765251595821345755208422582210692407751790612706847829988404861116847829503681339886920060049411883298006839746856343963973323003751469945542930591278245694908917811561567378058744180313578236728864269546935334565415559455700579628157020551439494777186348833158616510568398125826433027207019568657347897075398411320329363250336647093796859847746192062512495060459647109872209659134494558124473407060664394216092892009575293790115650618542709793675998805033807226892866797748469400048292075930703501205504029940503814357239872612312715136136648038001583436039292173153085374746210287469902646569678925723104081700886202045638927416858544833027351577636188090199093623538360490199332207706402745192361823050101725595875468855738228025139255048846407263763927380173750856693633879679723409440232240364528026842377019417136617420895544390653425251554943918868676660811847748361819229142758643657472818323712608270432890320755203954320962844211180161201409604668488216539271850027822187554316262005881272044121680578434435318207952305970549802370157565042801156751404534467838115520416908845872581522353928108022161990509680964228545248548246504341752777313177495975300505010068688453268646099393313145986360482824947390896765932068761514959267116660353571801228276942580401350248293204189923841154619545370054197428571715343308017184031957181721375231379891718487301832750851092385904269604371424142259256308058603598093599990031792446620765375807810701537468409964826482603220058530276374158952107955533762511515888454000621801994042190818467309490881297716856554639542533464017204768598010756654848056929026591805538737616347889045316453385957185911075655666162143086080950742924937343110968199667749277950263608157241453962238151287318133676950960515930767275967108309315495520380941407754065711612110571478071908930680063574085288122632401878224976804183818590030236042004488999305275334516215659639364968903122457435594478069199703492397009014944880711720954641863707466146085809035486017713111064640777714986400404894046656946259672275666369124943176156682807646728817863519727063827739788934196247395780164650516934324801508765577561181441229482534641500476923595972963481496943174892331578414913162989407248361958522046464070673780694041337287149045426580533710097713054787580765183252661439666089858250031709604339675440963507975513882580967836435090059035562663669850582191681340741946798564328654638164265241901938637998089063478534878689955748729474384619244999871809411533265034845301153430585008782363418113507520152939586398032291781925104885667966988728394267541099377055210765188189128299202921816446857725957273958797876884373052608344532551506153099918592702152339745575852308555668323457470852373922112802554559595075462544712796044365443762598869730705523908435595999084917482476875051792902053976977549925143098830893084311145219493192625862580595476844421074586529108585524084235087916913530465223277981588524440438958109968183347004976556046088573848407283926639126083157194135837114387092659238120722376941880910954336396159794548571567650659956304088949267498853292907536777337406693982212450212811671953337059015880241889276581816828520029626681568349138733280766494009945833783450111374971144749711900807975805411994122502362979845405563959485106555770129998877891343497626102282254948582472221481170330037885257199374160769141775586707514450884959155038185936548769996278499822640346275535176283745971257202213982490818479144050591630784792785479724337286605758886677250950302105945294918565297834560260904046847111523751806963425761832836601462772344460469384805917664136845475626115305610630147432050294582425593161867803323075349416754995489736545509935188559233804447573714017071144705545106016219484672124484000159528573678222468106034788637769977191969867417206180155654223687476524371268062893356664591944220861010772152077625412080307753388720802730863058261240766578834867570833109845289316952758604432153581234002031570200763971792149238484069305319715390366958249902951185004313995907787010512001317410841726107954293498445568253697528256530951381212481498829081709035574321258953954796977844704210001511312086576797941628195966209119604743588300813547054553520230404932930639512578353082947903875316954235583953135280882112206461303937173489908336408833777992891160211001639516296921898488957395092914232529087646144001235612482330152875559312966436106507626277818131569545822487147365540014448878145856322465156594670091965658204556268933927130109781196341195547064178902868061453500231472979684385654872996751842132278899041837891138745895438677313172981375563612254178288003573782342916183364599357992319269362661297872452888580443775504024026446619279277470337240810715594967283852992651042673409552594213643761658179688613675932860409891614850263115513261324016909759980518003534471140038518432806785185241420587983201821840824272177011127319443451320773386161292397054514595580731966920416713460377370360564603971187814741734220233421761349336303796647940841803193723419907308924402425499240398620964739582944756572717754115994446032185816748255695383882857857700027447311804951413910956387232231734213070402195305050478328001254211257660139606457967432171632521809675381326605797538039885525798978783734716683181607705216657798447581207410613581719557849000962678062471489140335168818256622266842653597437494259762194561444982413010096902502432755999780948669744880989390732366934485114553903547413770211357167133594037407743507286193843105457726910379402791160893920288483393633852096029154709403623499880913049345125628807142822743936757981633930376124248571094835992724774478769113464883610468706013328131585162621393903502852103352263896583789306391738396195994336080987559964984966597702142790157495224805666554484434401810740167791646915845464146743084850045259985985630955428316594785673300643474154371591527039449800324094281241126663947632938490434979392230278546549098989578497811726084551191796766499919421808987012396780525773164819855460416157404868311158573197226475167410447495331774975334016130896631096401037252586356613318536261738088738410630765363045484008120879790775557829248943022044067836665338887814104168659374123893146270772828967765091825956829288049113013377741403542448325179655566687464913616227522278741285709370097300830938466247786376204931296552146622122349485495618204396614668620378420274932565181572501496428248032562744608476428532487531404974694894232182141440685051014561493595049736958110137885283273331268321762920158988488636330477261714394431722909337285880490720399081944762413325954816244749252107291688740834419055931431315748109097413662661958207543091210817794944999254302590142825048684874698074095199889062815090587434585986951839897885363906538282641389683508474809915673476491471796184704620584924239555132164936698987051462887047584749472463616700008483797511168090652125100188321066617191519140293668034538291059159361115415135171648871973369047691323281840376241053197586891278940938128878323713757932345780403764447954118105175810879077504846645457043217533843174597247356767364327866465327260753097141358514105519312313302575212748530986267723951585639752637038412333544332229192319293392781889250047148815303577060181592441247416258414568595664233315003341517618170600551573520329839708997502066381736633383476519984631706096001889677231253208701242155582902633290319655828907792595929299888098682978299343422441178578155177437290573065161073007243526173854502039582903331133712589090502000819408019751029923183477106729100821867669579039953704113562324067861670654714877212811957183868333301273060931066196579028907345096307280757652225956510281971830256640463643227191642219119906274656204533376925700264531522946415707553261570381440453416356007420684256404619388836454364581348789444767966148546791899594214405409815100224968351287359611462808619162709367384932440861960593314564099182308719189303849529273212542360950152601677507195250996492089665116376859866828073110283642518558215656955872864481071770600095288279705011289654184115799243414267647086171256619152773834788371833802785722650553675215120538171208154271385771418259061019332899910849764943754377177354240054809544585927756414195271640671933637714479055765290038272593412922679145194564880548660704095017468182902926564018019339301912596119820436178645467239221235506069127535964884880530394825051515121146451443286886111532766759765800604240978196990565069270462371998653148091303618249133103726210640396704714684398564348634049300230009691208225953772421397871602927629677689172418739386091830252944957346816020648816962636076138943663679736354339402579705827990715029887117920292396481657285497223249023357641875250693070290795535446037989792495547604669877758441104227966319653775411389120369725620543373903236310798216497024318372249750745352775457132471097399144074766557653888981508556098051520527945071596268526595915104360119525182481377778230436075473175106886709343791474002003374252834457378049163566298785579451605248707042341930193593317343293432201078207118090486058895868649447275019755233551966122686677764973608974223055350660854286726714851587831689509942021209947155853128700583684855154461351078738208690890994797272074745419489787594824148741397424717950319710836347431150557108348814509747563702809221360022143820287082352374253346317888128695712523835370415333853633110858304347613960960179460042820028515710978764312583192800755084330481430933545313994010755360583799941630192333173357997543434977914638526379463819639913058336062698583655475159696879320513419834325369171808614234683750305982128470396690820968355924023181142797163851177325945482643282020514716462929223785150969414618825439832072077437778506127683570033606105317682164640641554752541393531428436829777425397161946695160105467437017071852164279832495601517262741187812537170089381700720811209802726600228276231831388649912771121089703562219367349257314878491926116638376442129249955477693295726284102950828479082088349556458766180138579510566467258402995831309656014085370977175318715883640751346101986717303436790727373122260861690761303606302915328170287206353788461996505885107025355819804597887056562805905514452121089188113521490173249101189205694297902718603473013284887270261411704192427187402948348889769899281803754670857835116684898502978544532101943976209190726411095550388853274090800441305860687533001642023359697596446138494851753436319485249931872642530237672808844903767199659872111005139824830393645382721584201663458860346072260878621714266055491845203947876133730537808207443519820403480376734727094665767690544287344663012069673963785936949682330385706087024885342622442220724550213976819062272444504426871748755785995026076535412289812920290711304412925638745316620297721081942720656907460861873635115086708475210188032794410111084565994968814610055281797481870193332435219779255750580134893358315210548698387330508989734492194434502105185633291308423956841223554654242327840320280674701283981762125831448027033461037020192199480184155152280433097896085229410842313651837523780913651055249186705469119077974250092229389576655556545590894951437018247546685677878068102665828988394015215787351593281433641220445432115337591996452535752469990266533988979777105353042032659091924544609776955351849466089947630583942293698849687296471753254822733702500074425112053139034590541767589416857723960039645269805979978038770093754527258894583948730982493217994694086634053786215553890740408178498819576350905322520323761020768231397985891885779194672939813092120213780166818280045821964354137661422426760270541786690109522512798178072435453938677766056676496014240017609925881625393329239016100624256923155816510532187222710741483402761059387757834798886561481661536659446836151752684083492334625067123346265498067784081320045574319475256971848377746285124439743351411650749900920835150407615322576180366767100288850140599305793330341290749973339938670617158526766070271431302072940061480053013601000769710662355606074492393795796288788966359941863328244016084173486334466617739991206856910446426284455907344844821800847753716272734049945348247066340961355533905776748629675168470674945907842171923756068565992471993931651508003745833491446023652400860144861439166831163252834225013876704427115919053168212008574329187573233691243373918469805506816429985422108802049765989260951779576077772771193947986067995962378118739216641919264993812267590494308664228119383873563812838682553895542341147809283735077505509200733463498167885192344420854718601517690171480438647683307536475981633360048813473712864064589424001126840954296791960924925414829775642851033994199062289612176150355983787549185522031898980094720118200086630524321265750641125004296981665372070835084291932783193246907385707201692994652411733867543338053807854945949216303967255787925498309096574184042555604262576912561887834019848677489244043870294696963725201169709413431245125769223096358548949599249662388806109168707432768339813652833650936419735307956303211498066669767124926767515201778866909224699198860685569014944572307057863671685432294347663136131694741959013093073547376114916906567542349198342266567684241588976438783190086028339320743398990198259057971508070605634100993690496235898981232002672187861950954436207375393004039410361601274869347155378099980736700038765922442313384119946280011142957401393687576803717285421213426848346767850030464795774343907766805349195405459349259984995436884519890157352099785454151222524766274792695717128159020172565519814504816925428613570373545726231950869157521422986974128653958725915238658429179515410103282245281377614307369217542153176616220137645857102649864207485972095540323892622647449755851706448292269687372778077566176595820460949465599434446771930332107260325716557532565788929554624970595515578351126120184821831241515571305994172247178363463357367535624731789963466581053394789288180451621240752353659493024057582345388092902247189963733127763973076175400355535346335863581916580804255504922805597087907978522597446795500464304434742651374741861259101195658429187391114041284993330588934180708062203901116455750274598555704261890273181295390997230995886229435100479866020502950906144405754489649033969873741335816785968270612299330144790113283759509964492856107542291003032256918373603717485678540962084574540126697190709542845107579386886649207598067632212848671761134236797846525334174629836741483565752969514091705773054755611672621154406318380664647096916771066950171949312791437647824386784249526398412527648469354356269968399118142440888250206764321963374736707666499690963739840208709135591470551798120885232251355954854004480363161864513406778103843396668817410571833203353567563479968369183020675808446596255770239620516989061291750589050704821018237276214035854383659045180023144133793708203756318474233216636430173890606409441072810055653285595433225289708299746843340363072814554059624947680623499354597838117043518792581746341110168622579913953310589967488933238529302888848885718124815792950900376364068795906693592718372731078726455862766455296175136546916080473935358997784263478824665035069113740743342908667834098881283017802780938481457754892093416622796189912822423657998768909627928751607805453912255386052887858724172411351667097917797824495327787411522920595240111452953830187808018121386587110492254321718335090953535114890226635758469615971975218527313979461271661519520596435679653902583293088714749202393527223178013201485216495252995545570060066484967690491994123728929513488826581791138496729154906546090867703563105035459953150624635022961113806530629308090027816416283574851112577070928489603309215453337701185999094391596612749744365667146191809847111993489365507193751061021248044006437793331917347726553228946286712334701102044859836116061397382383467279804134648108267704354355457685464605711008234626370829993327751858352017976638448477628380884819068207863028431199056625461879504714091376927908297424065902915483317816735709293542650056377370343032218839031796280385582960490437042276071580688296782296674018457593173289892489050265628564960190128400161622509799742488135773529560121042658179531214228407344445014113216140939049888648593327254450027219372381530345099724050392964234796733336538989412858752765417449444852303063333194459279184967652778778899755944471763395464051186854901848837047514644352478407040200372398485893027702369661038261685298268331211511453560137707153683357812046809230226403360595151559383349204618638180748594601775973453998706965252152490793347697257491974777549683000296651076185931140251676764456180043872858592676980034032688814693482315006444368808492029015011605137190646109146971686990741060087103968572854850096710891903918897731733620866396160028586513580568597600029675879863758928199340765968884695710256487900900813437194366536083094864980878677544112996011997402497191195151561870433533282418834080842674742936317673176395865048726170427895081512136422279624748786499555799887004618667220076635562946748272971792917717945292217231376972887402354588414126049361555661414296341772341627902207438253502859883006325850591372950904959396831983816383796218572061747874480772630097038077962320766835788357928357504141871024605216140637391587364759338259842637706577971583479403579013712340537507697953375425415704481050845768448507810813076248372394639798146528738541377930881992617660049046927933190133310478480754621490850404307488177520588121119689653467729501191122486608831253464600020546099129589459269259676938225222120664062852255548670677793476354048794396390505009149968393231529950276558749148194424660196003460756779990565946949989415439912696473609807785315974117921946773400832885227407783920379787888986802076424525330799241228923497087917269160485311716643603518548592620989060672176945462576629047293928147714486281908963819958575196225200284613002752751813054674412124639340594767887439439559706562696496751471117895344447183220879267603513503911538239034019260145335936593585410611352814454759636188801387200449890059201825221156948613383704810666615559959111506097689908753596006891149333167527740943294558604332035612230396193892725552447220669553412352186999459339052042864617343125617623592303142443008453614408639349612231887062722999092674238963962106947112149042944073608688462464573276604895851982451458040834600825757633528148609705480564335142902039625084252908032474463385956053413452704095202384019748187395488034742529599871465676350104648943920409952214116260841182640067608024814035322718194690072349001745822441481022879102148692483440950811676161758748951569129246793299986279329649782868000082564769423952441289743937981817312756339601481276194271566117199433739724754270246390476500145328132870957448437893943862860821005274485913977355307387750635361510084503430432519365297324588920918314386128970466562448919640573126492524055306772299273397635979945828507131888537299971927347587280425103008430669376770082316599569581054283873017064812190042844363472179826052674048074302380067755026503826068764549491754275269835347019989752489178373162952149161671054976300774847822963026427759222311114076307176032934631391533473087343354195314423285139117271102570036808257528764177815915169477455331957269977350101148190619526223368088906612231554242513350501420007127638913748339645765805261904733863656625979453575804855805695671002891512497431591132691874149751591965193438164568458586169791063828743741685558235368037281381225161599099389907207410010838337601598247010423551838437470927650795678473359891957364034666399233991694283132998336618046314083854184746040781170100195067648558899729923601677153575765646133073751955716646275720326889081884577001368049624433496339817977940582983079388109694320097258652137827409099249720807136152300483531728769278564158266156716954086925889005175293228445101896532287877307834035662661276316940817010489546322205226708151209823579018230991105133070893743600007640180099653154767359000751344920599327166632781759110381336919913799762968730050317457569190859485615798055408442120442555040083577121928837318690091048985370616219027435404577618045193267633100164329401035957496722062422975238658008385704984545415514043490790444369617611125340702225985038763078051154746602650910603589469167531634424868339833874082603395553090200192706427268574023439279066819929553702515068911888346201606933470309032744252941447016398255974781148425626011125167244460496072925706117049384980364994216621873255212594571196594102361416760687138868900254742351883682076713852713783304192035436662513331970585537279510642064891388548267545454316202732326828328488230350552838560894452471793112469203953596841855512045883606474958145018028167012512505659064141783251690013458200966852042564005150175892995544519862935563959627318786447091756351329360146998005448971334218286583684624980005667597869044891676199864252455074660178931861212026876487184790545880073874470745013643285648266380393518026821924556238351725474114782734679849820085204572406006081432039053777047221011323316994056530487997299330326150908976603726219923732647903497540357800647491324717002316984659041379794679582285096733127310621500975567807185159352346096507848737635642916429138948190092640788494253176514653350878937848432448850173732738453990540310163985507165449820214570970325240200958345479598760886357949450847163113346026393977398574624311002171244654227833921310160278198138227104048777844403323490803453353477566383395211730971864499211749951157037629751159224641104598106614872281241575029808877956917443351533611910323082038796016068960591868317296318324434418548000755112888222275687382457797025353285981350898521711430779650498929749464410011919667856502333337630927769035705354363508042928895265712413399041871410998273391949622419368041327248423098088422069877871089035610247243319701825180818264085831848054653355900181266294930565203039251670830444232033405269445623392092412048017098241512915858371267731593545692330175749895609487196954422436960154754196727287722949909343754864396712263110351203589340774929663749461330192717669445459489579754094414321995706271595969100489404681407513475668246697134191300974588778104000072499408391262810745822529907756143271819642815555644629412985891026653118926690694800769095478177155281203175710949232784117606234340301315284269873296482255682889607613983405698844302352160940314143562626790447860791469102906728815673857033349407255286535407146040196721074643387989991189259858496383236828802363234485532158050783925566019878030819047253555381242801514527765607864667950509404211439861369992575710049331149648340428305275251113560883001986660496484633457881397966569384483628768824802094480755794422661914274314223157936872220655967321452472223337128830481367148537851712463478475334336771188657091448529703274516970017053440208548933715328947147052254993232387839175227074763729215837971933794800001521968347366247946696679034839375496868232845550045645788867838206767917970617795675365711462183791423514068046364141467078473059691975102665420356655011810505516743830945100913969709586892754026512590331027531182818280983654063965611902639228345150591833340419020644245462653374213638593406429934233883566343983616434282377935570727747908034890960153419416187175689968163206796348855645217158188528984257181001896866095198936719325294276116834544215047963060043546972111477042306775447647434227241411173075746787246944399121718049813148992343670853884061948890484149368815529201578157241623735442399105020807403695466751742575630091639241308188726690440607651306025464497916616171073877299713567801472456691971943619989811936089995299781254321558034094160017112937851370823377953111014923263291787992880101983769924515630266628548772556756726972676613809605856450142822245322352144982950483941836878041605953285340018884171884261287958212326532045412989262595297192704965879952181955956417861357401620355193538767811967556529391895179948881454752041402574584065554015854127799716899835531065636012555626045297140837821068941958386342712929339977020690728434411636796316228650533470701085898980628446437623680308225535319092305754043945804705233355679867798717330327777566701549398388399469600209522419586008041044766623640166403180023065984212761781435436446273576451737819892134687192628049201831335243734072317256689441100836263526309427263078398542392809863373443186225254615811236503601895151577262880782526183509074960303581529718455328117801042234472089884885889105248654475050459441217865456416859140612086794987226062474306713707893202418958586805274194082322418695844882312461554255108323609104061187913219854386433660659122566943762700520586746862717951077624164639284276264201099205816044853128745884820852945597185392568188640615662534918144557562126207676574281004297057731361165057502408753207691323830464911513871009731509561734735075055317634172169256901561022200402661762670735572797182522371277000230274276989721210186820076884982777989906937672100841445866895431820645242876090929257567212161030262171907934108801723026439465179980379862031488821356414835797736361709478538957182064239825461548358371760001633999489821892834994726577742985248639216005500062041612196025564812856438728744272599829200390571357528581732809944248904934626166444016417658552755822326048107798472221814986738483082482295058176529753485777577817730463727283312715979695545039803709940431553174876004835302787197630534868677453056477827498996238896644987041962175077855315194965528188693852964089581499832324536022922259428229379262639470765327258280551028021438723233858160906405681451605142354742486267945877675853795265561226508156120877597282553142993676237739417988136765018320307982980497656771988000582978365021414040776736648216778608320780382009154195885819904512496322362751347856523489988298379160247015063531742430007792396952171770187242207245805764838046094340934954290100942180570944960345623780816173509889178900470094553014157854283317072527549330709744740882443827143109163825989381140016029955058740940861014936208624590604789769180765260269613565170842399112664457622891575191314378086365388433949702600360733303637877565681849449938198093446542896401524842223452685979515081229348849128169866468189772505849964421615221503535720452960339703908418271578608138881872087709816032361490245100011135422122203767613678532379822778367848248251510227881891251652618431083908860697035725765600561606485360511248889913242576551317314692143244667797810945521017966128796745701058041344934630028945751482940982017023047338745705449445406636520102177495847283148998699831470504230842163273419980381779213802416835826968251306446180503867638468374813175754887553816794189301560498962143582352111823009745301852677376190839636142677267148113091332287239569004558882598921015946677191989285380328210530248548273996883916718339746338089478695049633281926642729987103811898170395163087718900790896916635209832253682975857529124219302197975988141722168309377022948980809324316174702259251895691610500360737578738591118028042261526677101384222441406967896800040897536883999281185857380751329187736755412480886027987526640992674631700111329436448660145923135927833388681799866331228519215128183463941463279886608721773419497380696201256188140184921299791726003531091177569680024362012679230162064916247137859479006915289519645027062177206809817354547241214625097468738509054331376993107480544763859191364394849998794619512473157202291030497169396281746900930249262024103867086471799027787115887685358867207885252136940034168056184469349363152803853276258113807988114748025649214731283875384090339558360751361017394595044818082382865886739662648762560004158572983424515405192902999960479245822281893599252474551175940415299635695540917636963206768055697415355608373255961521402698453405202161938353377873441678292845214539244867391872456486538468934942355752585228239968351905802431997538549447937406456485066982357313735177341676067348112283322412666682841536949636380037591067137411270408769191139654244032507763828314546172676888609191480496735587294042940413257920477426170250053762511509665121517058712903364275578773915541373375362634534494802349092871977505534389243351294564042524169531950067382065835982321804319852697424183025978986608932244749012898672294217157701103342395390364731916615776285934020697936810679584564601742886616869694018401081195533954823022856880163235496685630054177392495169114866124390568740635989746062391558159269534500495826101883167649053196317953349242874329893853140564257266729805161035750226043534759487407145621246633381714072984674218638038082371237516758993198067057502660051443671822505303822886949480110246988028597790678807054235881659841259192311906854266073522526837177305281491511083544940897085381472542780504646741809577912036781794093594099147178754894685231611025319386920536463320261990395735460268392309611112873401933795769095350410963025456229354247083304301145105800708216994565077609454319324589344603591179561430739503247203954778434681110637501000895416761441208438104374849372727460635219076304093146938335786594703505731046053765625338724581885142111516535185575489167015465199421465531405611512290829549485335932047687297950490604984949947147813298119527608918455159694662630095285200443967227744765540442090606862494953049107693491414865010488999494663226211046473981918522274214053364560485477873932446061545528332374841116288852041801064245266068095495405694181768479600761185605141463698368365634443135164200757781630631663642102050231761950458153384368594357118882506213167226506763208682579142860925405938293033414889723359451860239431940659207252226516729856794960072656641051564783099372938925373119964147044810289230050226869241165061841468559967507042522084864008640094813973822467307673900467922919992261499340008095064055058700612349079479831106158815344743210475014307102111933082371391985487450992285370586105688041863196189871727222877804665276082147533503103958893714610892087082489725368831008547277654228619062726809052545455731279053196748918611594638936205539911503680281045342958302080715952739867397872396329136367918978671895054778553844741017374531004279885792814164735088884484888042205354473015759276160818163948575595098442898333378568537394810489710000461247366016689043468414992492703965316617219508171740416455186423524520088984685799940321377414064730124237510172920111819198142413226357467464498738856484585738022081179643844185621150266918542266843394288463887845240404288941075927927269610930159083915781912209785615539574893972602672915752791727500605398601288591947892990651488349941021374161626772271289508020240978615701476499091352163609641913767955925401386445697071940254916838768299724740686350896345673816545298558356229385097808522151144578640570206943508244152671924547544350825505876466996727326443883974210442783385189127320583691916511807454427947889785765449223289206374923841748185696377457895364673458708044618692128460594208140513951725131918699128731831606754768082682077686508350547702710419770556950308617613106692049205745015583823143796281023762147762998078399719971340917837641202667136475950782131585233777185881935422858189737626207851534592747897693651307219702918336025821357089883772331213485169284283010465692216077646835766996790711266627569927592506109257329392687562383441651303911841997987377093256704372764549764340411075929717590746977096736146193378783189864005478621872934020334121220306756640893729735184709491022597439258551927648808116289173515855969722683769864091767479763657593276597527399252442423623064827398963371487710795711416067801514831255122797951490961736926000193077719936899763690783114764209632937585827716177819121111538440429645372510448754527040416660540814585199939262909693572521106550985633923935414857153682104817515095162705263407400729449986578624940720215948800185203803827958315304742648560354941846748928497629211752392917593133863633412229097648612489733314916683695504897738513308765494413564886786093154909346088633634799319790395211364430567699710916379034451233361888484075236990805638724574343883034382623840084349975204013935666346277575730718944690427922072140972818538687124025822116071660254868484638665619711396586365629780809626557533922406745605898911482231621379879547711042806610958380066569851708569454366816015809392289719588750143102559166887709425439659813259825502416641633039733137901453237693835746677531874161403919776405841956608151438513403093721622642571208699277811003094345538295889257647190321295403806658712897272847883169567052205623013821428198414324471433657788095064404466696768210239000905562238393099210336473580460240817681719318340768615213792392009837091523998863902448906931894675852887395725495591823722213183715110922497212487163953089480233097246978819425304673978611320026748751847636363135138506413803116983175827363660817187280709642099897355557781582959532074547187869124978113507899676799640441883624951933480182706289004307714227495931479873493347526310464539956725916159998698714904377350637792660528808568787090414708298537956962050410414806128883401669412322483443793915772832452526499467807735088402365119443382632787533911790887851013554941595208219655465027231726495146727121773587341952887279716089527891315567761835159955194859111708985445604082775843282575207563022237184946275409367009988959995925993533331465627224537263285033709154865257174013782887632443108527086415123943220492892833141160306206734045405748127351545129558604141383753660683686952114322162124120607057845869214152514463443646923616219760760368659197287855878697751608029503081258130688569422161305160775941432477846005795830396938899997541608083920107285807665388753531394650556480880288675923691889744738467925226432773104517849769316840312284269306179897908202218916201431012127864438777383923444785912029682883232372113575306883973331276595498318649357655341708335337613310303906616232619067960602785967207664948679770430239882876527686435735760012050005804066344007744658772327265349366661736342736796426750901451766201518905774502185660517583994478416921739835405969020341585532240769173782357428168321048421042905414691299816630166340926049590629919888248418533617093999564357233812672697351015075863735132586288285733065167764468980334937506462930189695045399297603829304607537515893793278687073926658781966078213813790456624439867269966934936314148041870657205864655101020447755328399236821470194196668380150507199182741633069486468022099371585400786800178970849254804075785406498967002061638680077706054826494061576291010615130172308598345367692747650027633253857750353927463399361648144754337912355431138572255416868830224124485564518640167678514236376800037832842190689147559109853631476254736280990509115720701825346182712876806847130653237214304078253025614874034670482632606358414747009072440300811008824961846776949004981582919919085930034462996166215068855367457152347655758459532208535245436657873663250957721175396812646285755672708867056021327687951722562693038644872146575332251703696134080309285670152708313806583782812616652600372121592017085494629081491243851460310111309677122869130951216326980154677107679688566270014532243672774992501168400426803199680184061324364125902645578207920207568654574281618500161147855497671635135114777496768906287457226434430944081753848186319985789650907646456740730816201562354173635271712547308592240462764167475637394999934495113384197165788657761952500746781122861375032833485196589865896832937635708079633956277211465440370794465678798784997943994949376059960423591346998203718372843249024119450637137073964253992717137293999767652363639018960876441078305304610627751097376334430854368741680239885404338988402924306408520871601158968560569206081670404715471569106584029715732301026377262542191082196136307878696777162959489918947234227482869080259752873880626542728645301320246920581017420353108985776437214850602432466751340477279313551411070075152357885992977493116061625420760019176467416142217280167954870880326539151372879153771336509956374002023069344625023103198655511957271338343291643258572168348449683680245228025734883527576947514713046071660083908965129657377719564835274780823790727347029731002399037885346122439903905676633194872448785303647606670997176739852546664313736602404850675714521106317323283352210923504684461361714822929453326027522717672541374139932835112498822967551385358649137281727381697611020745814367316126310516054900698766875261019175404665414583245654266627195322902130262240532990773472808502973411801469903410428879650406104264855043164525531998758537848260689307419324290703238577541534887730927927130246408641287385478069913584955902198696994269494522606109351442486611648979502055777413695368280977269758831101904073215233629831387360767060807090893724582905832892789758242035765840589959093295690486056958736156823786236297615564375613058189049183302431617174884909064880172270910142243408509362299672952286457777445645259936927401500934507365991225709062233281398155037998062134727151684584001130850442311472374894585628281750742769643253370919345776655844607344798107224343258607402599554992325816605300986516481502368435627047202998462201529690399815666031652712098355367652790563721270332627924392907769692818832570141555332559564697383155960709169683808942846625238529069106829819609476895574781862081188542572747029846990173839085099126007146454913361181717070722639624005807137832551690814201870927449716592836713756374757361288676849347139920165698823378871913704554169634930995653491380594549556016759873338430179283399459107595272903147990298707126156231946170765993333226604213825495098447406355171678898698981472230141747629893907063834650404705171590253323210727443628944487194377724979965322698837713812191407406631724916021702100708958142406065644958814777898627918547565936984631606590912635233871255871982887901131704728420663645196949794336210355036851446515495366615825397763537273283868417153244487188547876439783637702893160079248660307179037726447284842807744735365631521157801662680485827551659760561434859261157536898624917642426991791375500738552227330042627243827211843952398168986910320551033163262416088345706135739056019903265001382311837231017045544724026675172332691317660843821906368353770783887246413084427549109707318262733780736148287601855626727811142492916058183233376547030056791832902642166307501126179343392922798002063499993149322949707555512489928433829843789513043910652353611772785846710425446268320956911202004533840546969480840864523033405696079324781636784485276112890540261021117342373191924957854193861834002984293066975292807073011036789806353464654994840513385034625044016398748734570573706994868181567513698794596049435451339390709934493372241373002838681698665864011222800510366389910711049677265228000184306453176133495773503378310138069752086581051989254026240585940060343887880644706588977208629112611248234478839891086971460884025045824115593242977682364072760992026923662961372821163906499518602581741167760219626416115592126433820724780411772427862355509369959118915268121069649376705275640838545645117626992473292216626622992119984538415382758463388959484852793628865502416047482367166235926440939222588467881548640805869619483704189177271913411026759124610359667030693973496568687621678844220204085058589481402624552965343661498780069920200552734357881545277093543125724889097549979349915728024715141716451597843365131358756329463748203221039240033949305006828898418919293473401900439114894876112924500781291901286223192767447619195620523020896847693281315123380792533376832054004022433379233865903727944100060943183715289010952377966672025260813367924167177516275557195519529782807745060612986316769164204283510048125901465743318742412867153670301500544857279530416891157247912223924961271139865020118015867579334344434113964558586622989118125709509633470910916961379433887559774158544203234128835131392569107544064649770247022026409465803543382050608719456895477654056280142783582553476650007543787082787404202131620648502983972323782936037125647902905194560873351799967399698608150886443137054555012234651974238097811162963142701138774766727572650483928109665682736887939921277979811129622713319722149309714187934740858967483923146198870969719272674170003303781156436919258978417614305922689053008271294471011488757043053909545790806559354596168342312826051587568733814863751912563824128707847278757239412942100908951727466369502629830233207637217309486702231431064619764801823537863116293564493156156799247444251494715722370535253828686867200239262727389420465705265032479738144398797343117854547924815694152418212378016949153020781942955818681325935245253620138009272363739608218056494641789279737430867261588821534857881962725976369547031127701881353553655899240010711560069178516025717888966126379963763650190461604272378135845526581195038362669763773558562225541205184744631890238337650066469073645686903124794639426050645284701210266175692931907580208342508908315914839655300790189777018802186043892513144814019649354008698665156140383862011813464329710058304314269415499957341958582903145984232621758248211811008900631520060593669451296244928761760951241854412958549032247078859538590330732730664992068141065953353905094882205269494219775674889595147830034905766621528576210742845420963424017551234598735998212578062804179202617099690824455078535471618929122697266146557235899286340933164245786740131727220665932224955542624004958769687516306436007044794070037050927038128934933212855693862893003669464285187694776790124518702215159874433029929875143112402010606151709754847768971473699582511037993611180145052138549604976161259446306978949924823356159077748953872402614427625026340226616509380441354835774643134438360347765937214984448988772429692726494685545773609367870646487527844113616287420911474767497716552743599005559181862622627064657129931913795160168035717194726204846658082252230207367841822164612293664778189845701914844002726472394546988204853890584672835068850809296370361782893766259053232212780632326118046720839825881566573911846147286538088576312773100598374111230381213421330759280785356995362497729332391058250618326126813563824540462446091524091021807185916637770409052321342360708367710595639596966487161602550034483153018345857270780628599758470320545490657223738300237900207013055093585536979147735376233262464784300717168421362544043244724003044448457297257421400375034618830647082453139146200517385499516030467480268214589874028919107354669130532343742060369693860919393694739368390220674967700247745158962536175011693986848502568083932684837692048710310828733433487921698374243157864418808721412274941989663982920707728597667683623486669178081336612550271280110418310700386744013259159112145663084600615881725178442543177650217313084570021556270119812515772869330960519317090292740346998174035548218062999244010266414792647803165655155415737867310632089584639301900863861167805754699318605734861316749543039562504447261091373016405971796890106084312983727992519227360351514532860625440657985652422417873676765958896282790360856492832380633407941051339733557352245320566462017997632297264337367860640980072865491763974951317160069444671368594766814666332646176045530350692562542277856043900135010048629701431129323845690441855023024050406895118150342245109251673055867102420220211317790344274923567947021525995048354637698658870174289402836264858263889485906525416064171433866367226527512080088067910777064986128654392694267731398690643682632378940450029182529066384450147041124822059566154759411611228155811462786189078887007881284925768388791009372826605982532295306173220618942599360013021126203929481307846756924530253345004566380313864797086774742514039326135160807286324742643228796691443922637763889882731838296741765527120502257607703685313744777656014164300191059511957575282339695471030442278493823574469642411192866533838402766731982678033216818042040209680907806833473397806031006722893472039271803486102752512341480557972639098266107493784426329731347667018940439013707320115638781892239045813035785432433947478937756664233126413300226562651907796853214441471372771473702858438137879213919575281031789044540756746976819683369519642515478724927687440166731154476825100297460594054297864386295492489577250942031836760495557466299369726476873282897050890213132551511085982040752066281851673390175541455111043133555625431408043702587178138958162713216419707755245036720067187066159546308692631740261374019647347490421381670493633360842505604154721450121454436384672687613271308182595695825192857033269871030894916673644804953263427705960945938713998434813190028452021065214103810998716999027464652106630677010955094641133683833114293043341437589697788524580903525702077260066234913759587281636869834861910559340835884755146321760073151701839799578041074574901135340826754533459304677867367449468580214017378632801119677076591626427039067929441916821621924780632847030407556262169201081048903454453056204506797775197537228314285932621768189640434737489931042271892078066838975624090324230605679844085172989743386994457208480479912487526024088497036020951324033385774637793231484735436889623285340122723669814776695257907697289474026361117444881294332923074764769483487151952416771738395563649874308365979908526989792177687996401319159910086518159212654762470147230526295188145481884540179266786197324085685663853709369413766144783718315585638234679157315094055276235497065336928913906356347754682892544176420576707475368789656718001479433893861602845989511959688913129020684326240603697072614058115104091941084004540294752915144246806585955036710075627997469817448970316818279510422697061721169187132887644263000103783589274174050460562917632352814741734084675398598730396229193909050866498715081452260716956696103570931939355696647479361246789297678691356103206903956245199656937177327506833327312008445579734284824924203843774634495581898518352280743536297523771988960463616921686220928293454682594495275793164208499793685604378109775231558756328176793812056985264912906708140019454029155929275486509740018375676860822882202961549402639806647065456822946580789039180959488101646923841111700871132785648156441544778115706211869000783710732887680025539029540289228253080066516805145665077618090068231696628564446353286098648177232221956742538844037151297281290725588814718221850456513278424278462399265771593156553415559896696972957737143262123260993349132959572985401826598534685472680815082053509530358331518368203745655388423005003733528805526775239989622790464160812679781292970241694778007577504594537436718957050045214215880204370257833053809344575871565893231188736405305392855439582328361147004042658620346999206381678151347105348530378724141862777187538443176924092857484158450480966309181422344378555015325901981130201461959207615338404632722900141922687318942865757804097266491075803060056984861906469553150554957561246594158739481474320788349922583634678528723542533279661740331135272571580602480680625637655573515614251333123431989476868011201822338312913037030878715395133373573212700776660730511624737360428236362817825452375451034159270945975701496577309176616172495382869645453551118925127641692878887517499689764183257531197366497776684783075933417950825260995998110261383146064303594120472109966332075012012319093383000682571968133745031755348036124636229155348715300025988156100443603866019209322333040631759782292273213584379362007841746342088525838134643079550624680857949890350715895731719778157319282071244171339800865320463472175816105378965777179992960472510075227076900937299242364319354553812595928468581670897352956943933256862093022679678970314550462522793993866712299164827961675417110123299768956772659984705257713798550552347738023705560213858967549743129333094531535111660439634548154337046023177168822049840522664711624459467462966353867282836894553216176139498092156692788425969836690573408028901800362777435400587661535799167105196035586176260284573122436691330288700842676444332106326015629732084270002141945504441803341380249167204608324747062223108632605673904077891723196722442289207571372494659599894260510845102050272645140500569290428897318921251329466373812183702435454605867002047710366001361297576520931195444614004094697262973573594852802881023450612645018567786068718227783685816247427162615292665157205144497365814261458926491826392839482730097687776690308046559632726038591988878810789891136914205694622606558199016537370415616791177589747635005194304329569134416536453332434457978400277974607577194365203807016723599136623385278564474683968387139989264900856372963338053379189762419148865202750397443722596243392104876769653034042567542226615343463446952017926981449038431081030366785833094360714686279857007146727373310689903626048813750511606057698354162487903514938186398779932733940591599003734077859588098278153948076880860030110582446008858471023990762642242454463387458001248406657181160380583094719249600906220156952009692714396862023571961300868586071306541785546749527028078341748064571077031709995463063780284926826390007337184099659632422784129086933092368645185389600557608855361457385855023742322465388647170132912017025108939958499687421889576768135087305443484392691619150548758905399807471666885424411296861497961911171147970772689211843896058494379215100028434162530850026214182085866077665568588740973837476945933658588400579858252280575644577027492233274288213800817276196864524740129179371081329263587689762554590257597044620976469644452290309456848481455302634874895606776173124250837534785967318844894998280806571294078304208602505175061487022827013751837765978991884218712537014946757065401509832401111901073449469683789471936273624678140807392378147292354900117470639857282534770661937780975589902220375836960944014977278499218905244252132362917290685639747048782032162200766425911680939744381154867439460899818077998597069919927533723548994250919683793281265365592655341152824755382065990573392572433098795222401622626877316025382714199538434666280438422252046178676588552472809906869507875146879723016139227128660204114983058684029999169226366890407114011350406167547524195564860509920651179873967899347120497946813276275386854740296634930304717299981253867449016378055433292224331221180402686335494905639276956813421679204943370878608994938190653803945068704969909574787228103406329147062253012472199625719882024789921092021450038854095835476096578926985708192539485778313637763421808889983593516332507288873192950326475134560952895699052417662554719829550769218302246593241498890246284228997890277639270660762758528967434707692873870543283504902421128614858666187031859825613260213188736085926597157680665007246671406996684028561685100943341609239161953131502123972778945137319079896850574907835799394797642879607189436378528244037629061513761102381438684116651151758855682040633095000961106578646924552449026318157368993630939204684773795447172716152835939338572612108941948774328045701733769467162759299624890069294761607227651462948269680914975425498588575992991475461716002043583120796578459396468800144526221723376604860195398333083414778545765409028855878163579011567116709228115836840781157594734001989780403184118206328413032167560871853163425771497637550138259175018026410743162657552585263225654765136932852010543958861502597022203183330733015182404518668830785688777956371683675939937024605994726845999529164683025433433945233244792716653673736072730825815474061330881731887597182272219911078381201222857280440381248435921890279875260548961353729823174939121780080579561158671760053914979565702908058508683518524576250683619349281198955892283996311735001063445937520220019092985278359582488781354824146282561892447148396277117079375929195226724045320828464212935370025209401378663144808776266879515666445938197864380228337738752353491570026216543973281511858910196199717211086780839676630907132192113093254831745031224071783704306168849918896828807179768606961157770950412591160690859032303275046610125185436369109687366000038883528604839372917531069970386315460016231753975629665294608912615084718161270361697681977452063134137635051770128601354459701167820449537118494511036589163707709658096522636483658945446643385284450541108293543760007362279078495764319025901213961343341011489390872343626351572755573596660635776968556147186964374441096769199954274246547035282623801620678781170460167340973285074484501658171893613732261423227297899790797529605663776446085857426447289508371919877436630335278411470595696578496425490356092661602543936423046760596840684902588251213933874428025255521632564977964097450747907866903524968954281456180000626202738797492134483908844843936684476967355674739551647164217123463019792372391375289143147356951999045456782622937982795552076802725336663803883957501458031781248524719976536301861397184338341587846531134254957144459935710397851710023435457622657053864442570711412692723578405342806323316370096737963445229784820345186116022909986366875375668507847656524696047978147808370499541210650642098981448337066917517374593555620789244315112304984429081079008426488423663303560353109864099780532384052669534216449310435303635550542406310503098246434376713600718145214775614329095129321175262505621257656241365514840765489110440546137244734315735036420604034641915723445295925654518283099308916417670123960654420871961481482905914195026150634304244599583748687006893891136158209762427330865261101584269234919763375304583985401355053245271328126817018877997874088950784005411944962856335940446928386394750912801644269028290811284698698170783039356341721025569617973134875167185002179373357958857444536254025662111870195920105024493378364915373407444712207240036962416067944014658737949781715203693962728089150357157646932361320677849091510220453563397158212092965320684739175951874678856641424429259974957177359578141536666169145247658871202705374613124206518222619960476070627394362424960686419482604884961564496716520326944321568797601602810397826102731270813710252359696419300420817430062458132933096092259219689690355560259764801410582814506597557355943636550323647918747826730914420133724307048000140707023017045537940418202817286921281918518107522338238276245250299175752509181847497873645004480848128156148061768500979939415298103578636585260816347375054852758601301710904220689217532736365907431911865174808941388307874426182517116264124197126184643629600071956747381711566579564847217864886915012701608077060607688536291535835786968645487309164227369263160575653494065950163393259839819347495415138665376240629823889022961634597752959747802356876976509371819684339880663475310018324483724188686541686337480271152773017347528622332043359284850164808005334524782782983776565868576885957393314887778096305037733122643375971399091373149942019769660328201916079829178072673225138605650578592022157149392452267722918077162336966243693251605109574338806919023136862271441070098137030973896001709556016263981385749866822751811446948445746135337342188022395839600749524884605041634824398676131587848062231661919589921092913654833453979962332169931377867793570073245328772568407445319103535270672383747319164214288073705046125127947373369932636573136270481143785737400210377235296328872519956713996592337298786468638895214245548598163663844469650266161150158125620609821752471142668866474597029469628009231051624981936145933561773810276202419053213079037318161256811386976113235182258122899782410757638359501598258225664514382209657022249617551998227260457094792522806711074089815820042376979360378962486569391820797079018149136409238162605047035267545154000415810051662718495306983241755247987657285134357389307643544069275463430562829568983399690074158566817594653441484429924089747508827085909965600388707023150691984253273396609269014588969285241552365538684040054293915353949568119263957764673389403665971072801693140124722298637754677025009757895504962342228585579472737720352251504333848692937912317905637375509703004665062917722775584371759960472893666624541298439699389183864657832905861397960210983602023820830578385409414664514384617608904412557261385439606107805316550850013606488488543228044878416805974748471097495402563949999708664085733281100798772648337627904745396916187959580167240069897366654124210438426656268411033918590187114180757158328881249554233276828667653838267442094848437768471017608048153524851748580389040382109442664857656700822325385492777258505167398315551998641503605657978612781126256915989813186473331272967420425796316478716730626594728636336626568792947339133017519393565152545447227003695173010477416756999423116347966722577562715886190194951702086798327742380323225149117399626422664734493402941733871542947726129877766058447847384379046368101579448012704132065210696152085490560703554960377099689636266631260649813914289494209666277782204304980208662208934564469841788559195876537408661581539201473146671552026511849115097185577055282767546008668173039247431227857081234217567580188976500604614052468617907406588826059122663421632048156468229069043041463706260013664423211649659327526292017209889563550822573578854495208338815021961357884269551657105155904552955722899094977716295467850807761934936036633394301780757704934974479052586879153098631023922536150447092948645563375449586313681803236611033284834420597421372392096346774715548150105243888188778882886506821974045383705323451758418050004998806457064392828988571323640986781223023973053458945408183880821990860244401589752819752864026061268921583741526872407240199539416915688132094201894516035642889091265603226087570246943432646119588757591196345632401966716052284949633563297222076914317742163964040637115358615757697976826499733827773793553792730623301680201510061448141655981056135053915979341780024241629420377745535896709578377681046983208031259351574994871325974414074924305233318224148436504691732755432825310989221346641068315961223495504905605479687372965051272587671393808656484545688346627184889989592513859505507461762959853849512983475683842766352499562687575162393355224620873138265144084819672696222755268885215048659735511059056788238455122961259396574378911570141734813566337870928970423566688231375392846136324238010437287474061771874244033548210063770006459339287396173279369683467376591675303004134798154591573922626918789320121262834128957006577839090008283197905396934389362358185759905810045702733367865073341893007625495715617979370554031645572139258964334760618476203895287814676287673812843871603723220679952869342956407549918924793953659496690356033233501581240208579640587167748892654743231496251312989788829408271172375017461306980374947236964341952045482318221869714562537960236609007896448267016241668086695659957766140529645506191048148466206450914694399755645332687629828702265337206703730872989161177240950790330714289279118836443031018821213148899614826986987895097178364277871278416259416207721275019525622142960558734500346684242567925513010786518318930710154659846001202447058250600061402085129192224311693213434464485786969895118273624396152712571259985567212984737707698348857713093485975231776058294954216164325991071009066032207132607828493186300754685798328343011895311971141971785221364177558034506083231880288901821334204254886309712123132400182033468363368114323723606259968300509876455864540371857588671810705797457754400260714256391048428382192858365367468042020430676336263638376966189959434472431555050312677282928677937751991732696644250252074850503715539988089492787074468609985790906224643681417646165506794563497251055223260487230793116255683130336234391834014514452974054682283435889047206165725359933030007195913631643299176168973879882665136109416063686799510232950886522006474322888200162478920660872862726551863372178443521058827893645563740975783778300910752855569637279938102681759036093673067022768348456588341130273629659517040055009464752025939749394484507851227560542331721134116905280475083919324941613041989860431485291598145630107627837652656329793673182590834965207333110790274043007892370038180978048040849457569771387205349974995450459393645755012584460119790999432069901967353898502084005216282815998562588253752604185619559615642015180480984996135282604235219101435426575442538107031860694158100692938688309683458823356318808222295259683478845257251356504478195789874207570681079084199471745597520352755155034693242336967799331418497885495916130493979101818087983239751551178080320956268801696961029071655561161366107162242977542258367648126505260687402488568115901392727190487564759291464273948205934117099829463142876254441554192655891367496484661916950378605483910419315706162248348340553552552242285780119913146018436111324122018416441795442453345628358088936709432403204949124407417711243116491030015901075128734776830473775172054744628904613990950302857777197916690545973418637268191194584019929728772534244898548971634083809273558459168261797295470403488508610200794612235382551406640394796430659471597320373848100600649589338012534229103490495440890366592861132861623422907161465202828027374516245115789909349682209245202903614138375029519645290621356236770706136943086454979142671355794116450565647076695266613981037858615938564053655877761248222598009110317129522359009066874759994189033374672687388710159459992748464396481999982344475085365655183323129583481581177009205045973810647382671968296440693755992441065408903669435984323886911731723885727952715206322791915116053434829337263590009636750978943581121472154753981682330970575752351192002317442807212170152115635017569120634527345662885614788928411655091640140725144171454321794087831145885555880441441341269955101321091604397185778755609730161905134425722076857396896211228673404609829980873994387463757995720548384102761311967267592800300672104598686782158776729104146114147431212622617828877710225050226439445571202759005393982143355811195858070524570304735377003851992613374307524038252610721391187374071144633573585577573832396051581390621831101618758236654652413799108397228233842142399323523711302445067204752395846992631205633324771509350334429928012516006941569977002728897604140233638131489559839230219629516597177394149675093467539987529691937732241016432091765536379003733966169184642358632452942508025547176730012902118369040957296830781871055288547163976151533788816781612790534033314023060086226642325521436916270819430222162251551308533182578681433221059240426852212008793574616000392791853790210119460174284302369810475655891840654100678431360240630567009583782609998550687917998913698248846246484863371568334961996997160550316758273919599175992648479214334976811480333447212664024972964236936183517004062924692727684154307035304673243853177249729180631977910787216833117269050849778347811410585700537173573026790316388378015913486793109369199985558986251949384938907059863750423619165757701482209574441813425903006033289525981387892154649157871057991131879178452483024275300449679671512313475088293282507710093219239594613150382005663467286988658770411324384554457112078441013669103160576272562978894834975171976854045702572216423586503548779257886985277034197917598747645111806810393692462862073036042107788771148858245353589008656242876981004294518478195149748308969424140616842727405601588728443861735705722681913812543057371310558361022330552518762654830308252220395535318856112429883150291263770042109285067064863716383231385511172974715874402164823290080144969847447963596206624811690831997153472657189398704738397080176407691253338541169476271068614263952486612919181591905065274906639004794030790472499902564728711569610634773701267524536739972563189590214119853121096493036561358660403681866793134914764119073726506443016691388938711145839065334228223803908350040890960411859115033476852999192777302302187357195833781965537018468315073389595164158419578886334162288002512040874764274898239825540895056920168958779263116493510444500393428471107015205884473767441223181605603879507264321022229627608432426123344208985457194924212770908098447561225890648804331297392293715593707621934678223965515981078854053901401508132880392998539618276102747198085805618737601899235503844120029453190862804732233882658283963372053843873729102028770457756619665983179159488140412577011472811046380540571057204100845847115657118461302499515359260571655227780774440571683425041467133512277192228078644659004029261315976186959406219097824362052728106019057781551081720713939475049664530725128742107486722941823660496640238056524866186209789714459545711354091603098909761079738428286927966115942734683394598340040672462513884564503953444794437075470886224315133371563608680367956481940258152835077250575735863055110822531407910363425583808629347210743153143712427833664225487207180239809328443125149216806938255127161004618867514295933177434902086687019477123686492382081491638431742746603734689259998261339424662716762810290803010145692314235405672000707457057462628559192511229140626165086183350476568214110868867486976070170016271398407265316920585092033542325782264956079927051933594781747257863913391201862462775334232772225902935817895219346661865441663845234255267596658945406746008946756317729808340516037376362349286421548070716103803198205111955826409159243614498890979727238221074319766224202157701002904186061919478789637249461559303210373353755687017888755569969417503622992716104580107967002134726728281272050860340966585787665263826301724604932219170895165148110881189851210635119897552637131354004045770035925847878057912471198716932224943359059030211487305920876442501779603253747522697600776003198545966048555000428509167068778697649689001864357919642434917666225991365966003172530378648114517373442947579876576260944786072143637863398144268432313276627093926200286208978349696069570388519567421899807674701638948211088525423067544826306694075421288158076891963698692129467400741091949902222759146941492009818532909350662993282202714249826117058611302730293879108296210760048030708992232907361811098429633785341001861651421392676253340675344243343759696169182224367257338898396237689498683468205646942271895454224215332036498072379855312098017682108113157575869887522679589879258490421473287134573150241737200524305844396969054549011730228284060214614518789331460007527152115511472124866678935847030564764559886399386324334091217867639243606271311563551562885770384996986773871801265058799583228340052744215935012643116445821277140322611519937138619894768704394056365587643229062864871305708367499978179908459814673408395915646205907875663844034425995231225238722717334790899557217513338244809962222360711463364966200343377892714715883677635114407866677620271491736836569776504474299918606095278996496550633233981705600455668468224484710552923073396652834010193468175388502635318696360750556104746412114708894718311618563674595099443927984184132653147666715798313496130662942574873108628066434165198608449778887194702155595409620462740702908782005822546109527942740244521324522868882589380217346817639416248933472209652064295864373270037271038248152256085786646688529293319491356497589249441721835727410122244929502730631998844844144186001126883080596816588988457907904248601533553077120428536322943072280960894957394725286685455930594222971985759971880373966884262973348695787814874109208731276728440196793946699312563058379762078643599787095561065549171414157351478238157737007960015761258400039774462353336580693710197999551848020486198011414721570267151090573650227059388817746988759976163287148827503772181954468891798779641515385300437870722002964156679753719025214163670303868841081345272190369874743207061524524701506557412857019284664696762240473789947038748866819962919492809273844603885672797422940836636465257246738428151125272468481221099638930605931269624585803579754110635358229419678652052419648648375036170586459898536348417162430785186684860394288216601068465422632055484354902100875427039135858576398879320727080627451833890274841933580367437069841467831258416161162383613081629398466314392582480128741795163130454919533355545716879406612450481620119983940260284747803957444187274271248536511981760647848715982011353268571277618382190446262106878395023672972967766555648098097378595116758426428801811279942343042628406936632098684945674621087312245902355588126003609331697309598801566582470128898928091583505562219080570864532678766536933995407638613353757526194894308900947862262926588033608959207422750118751880269071991890437943521971041526036360846431561082060588414990226100888657886900683240361738280597109909197591998649547146758099101664520988435245041874796981280187139789561841829929075375003696597543372410739650560413787803714379882482957284880895761582023889252598723108987733073424822984967180124559487752624965869285754762108382928207389953695158476282057948973280052539513230674745198805932563111494135387241659648245246091280516813620846239549423559085753855788451265002333642382180395880951947340520529353837186833074443390527462023539925720098536060753769788735990034313142823017566202001808945806476339418354551026008541105282233413702653893188757602526604822889036219480636815815422813097349711796766512288241119646194757371019506695032165593491241293794949264633703814121158160827562418580520390322184298315528920918836993178834633141302463190269836423463854885414219448168094505261271841771205328285323417702601153810936048784884906756168200931647522267623459892795175768953178616135332288786532207248697016799353552536484399934844681640692554177704160358560684901972976950973204582144980041017169675901260921002100584181113405656642921640579843211546559063731294364687948542115984008833274620401956171192833991482478742029216244886166759479760951283130232773426129809144587278892313438638324891860163745281017347201693687641614060559365545911216920388741877101928123580327890654121458760241364067394536306496602990078480854960595352208604280238863249135908801906464453632279566974495546807374120501847102482422831972572053413944971606112709576228683254870265230434879367669826574413362268339997918244421510174440928254719407604437735128526675841282605810272127135719820748834506829449213932485151516489909385193520071429784132614150110544296281109921969321255365210880872871191971983429671514698730821528752287704682900716082608172172657633711600711950826482165670874423020315824414406929978631380449900265299541974447080454317621177107925249420541861059662871544345021584711617167102333922002749077066640118651293508919543867642744686376160527997059783850195789454800194855806320479629041005081461408194311615254485309256123931308102073115124614937031761530603544803706280473601818356223263077863267334707834305685627119529429997042998015027866086216931835728152896057295673999273782530117099248319397397305457540217902262099831841571286691572277729601257351452954941582872249511788870559496656281769260361845922815320099529465326768101239953860440847161985112341723522979108908832098592190787096509281445995456203420911130131099212803340571959358561621956784465060784261113728584392894627847940611368659841302676221374495215098949343919982515396840545957173573610897051322261704325497325970391649379650712975120483152740250606053465698017880936976157301410320624653255291171505746496427723836572437892595607890453379622888635544215804869176832649570789583566746481335638520813526102595484031677423095608370346186032839666451557219836320103956845572855673745141621083671538854911584746237826580281757715220039346684859587452597482462184323044625967004721897766742375119899429730999859726979415991839975497422791872834455300401791201365242844313680063740994934648005642325037410626031973016811223694321118408063934434515285920252053082229725705427577259533499748966502552655086457926917250560777288829005528020418586555599160135104134502754535699404711318360982547970827947703989890586106435777659688532666965497905559092401117458882345520543754647702406829335371829183053957693946414502121102207219242188150586221853349815994919359878177732874027809569982605598776882515413533895918921730814461054951057749811528436132003299843175026827385115868721941489399539060888856869728102560994293766682932727236720103594032655711139660021465981172100792371776632727858591094989577513214088403345059665898874566127120413615142050068305766441661281203927993444443824192356398710583753664791546079505807956909703991736565873566793085598198501567344561621508183974346073238807332587092969901593074495231369405060762417569840607302305742205442442097937043602660916148521947292595629348128403861953627149249926708939081129222070655869768330305202198009229067374934906014681612859184815117652572845773016443044544455183858667775511837511237977952958448643814365081015930417998344149992773149466520226155709662084762910607591735284413776494077023690427577325643409933442282501096249236158906302148492916788037004813226982504232603459729975974379846097769266335836061407604308049844107405213641170819164113368542463802313116811897483671795340980143840065734114472575465715834509009233123129264739897621231585265328955184902080284601488820634959196284696629553459049696998987922691820474942999896611452828014237459201847898757037534119109012353447544384229191829404009163268736474372171460867565053141375870640306344413402707717321312351507434541903203653820073020054898732168328904588838763006083494107773125562395657240547802942830457110081984853476580906994274658454708320471934600069646364216360825561325772884434871515992811334935227613455729431348219756087657421760252963624935959685146255074923078002709793486128143855775709703805797357306117240424702998441847584342738883802671386445426661192537019504861485984605186225594383861840225854635075652461545156588309972411630006410359298849262284761380110877309643285815321122562401460805187068826760890866768989238380397775679197259912903735774459154113730805598125769848713520863983707995959369899626612758689517162447457789504371701978121973652699719207792608791520411088432977168066066641373492235115772643023608165203720963968778381562351120469807664690955953237420957201850271711357918353126625636551277250013196895829767503530672830405995541364404471508007103559925957571713563652579830401182541240120255314283429572718616527753941942182919968845145128981247490613489479428637828570824601083046087452791345464329645976890958783636447541080162935726727359865875239132239795130147999808751772054759641895475016325072629374198979965783735971827854937268003914452244565272487014612580214436743045909011542826572422596758230061782378386399361301581266958213185452936414746264444519383701354662640000927728321854820305194909321818384786839501118447156926791230601267811607260310369824202190579198594592338789778047700343992939593755628286633079071831489559537875229430729998689542808418043436378350043119274713520807797319184781796144241106997531295057598998916819304106426344620140237790524742190928206744484765327189469272664605688308820104894929610262069110069112998834278506812382210824519848039938368738429338387841584117164273780286338860638758251117367740654784348045678492070606279481676948950147530633912292495907941160223343656456581735395110101469167610662054978016584737168830735752227090968438346466980473569625602553675063344127903628876270609969105634951753969067476756803458183320563005117587259042109444898542162789490439997159389755252594728032479086150181121674152105675983371859134581726137687698050825693221840491584957542467707868677831959187471830377866714428551282309113220240842550594016412655430444892540694285855063546787507909638164839575961897858181169749807316885107387504832183788692779724016868016869137179774359990704627208702064347664080869410436186450518684056627056385455368145102616978512516166364613669749766347913963916380414480564147191118733811686085013233665847224635777498090397650004467719367522655822948805213036320364817950631731120533350975782151630742409668000421399722416072643707200849807811056839598015993935653267731976138640938553456039747281448024024534318333937180146906244999465587612831257029540523036125181767456690197291567865758983812396074299133237356481604330300816164841882776012945163868692185154507663007049055443296315395317193551958196536902049699685758528203810293627181058246394911110590154115976548923680158456419052356810575202664952811398218613512399032701070580847006300500481784511258540862663508183579418853101504191508861012436543151188043776574867711639082166211980491684048335455461776145950189057744628706497035785790238464996349462908898050660784991086058662851452340218911710421487775368440659636246842287488246241073591160328639964206509309171685493320883235535453022670535809532017035111415589881991055001995053688424224935737036137010296961095100074040814468960293712427939807691981423572954964124201996906547427270954166104567838048926343558354428009761151084389446122344731684656638626580751496625033032582142215191471749074745808362637034119727642288255224132846081483829753208600793310907839437477447416766671753520149795241117537607814454234186398186683643961797030738873927863453594300640365675483360810752945504637125423953122901599222644498701739311525547321060292630872610648596503329170581629604219930239257894406235350816392295986257049660897810471900867816236504085830872864385780234220189495806548857812018253146297395303158612134643025715146920365046816184488318735435505353154958336445891225711276408419497882305291732422858885828922666898747700455191971677352224168980308407392857363191314738523373219678531863740118210473445391499492218787004448260212827836637016239396419046492704405448231956383127933523704375026012177014777502554671339442893127201284490469578417538420531290044386397173136064150732344656871304990861053856280400830492790065248044574775527019737283029973793125568733925956815657499997611374943475224685051861631094567805491056450354917730415788658134552434792371804953906273189903218081308966968914938651383292339210753697399731447176385509872912944901802324330392340067471526311637138004558288801204305106342422817718563494553771758022764613546618656847170073776984110012338475859079475670970952343748641006982936873264275751107774986112107827086656048104930851968486889147499223969528145107887023949942702461389227420846930142044850535539834396024566447569248524464868632048283014370558156232187752566536051480255084400737000594260061470986396012423517106510323074231253112213695093705319665718260179476112179262032712093381484333273714292030441399170195404978082900697830095871070888335941902207123188950887062550696637480532358614347615742013943500978085671653836014604953582476180119336136212817434213175486599840626347101514295170490731463586533383535449089741858737851257642609354122788841179300003783350455927055420777287361374020403628823444320114435746955363224656037559933092130563237405673337673282904065240138349475066772521095246644209727232689832185034654947912954187691943121702289614297128351498060503200861751692177458176613644810499543849204597723441039402409896603759408150952836915334863588235469482435290334510525057609405558152402414474987750631551496162210622523032714877353598379648231392109843111964528766418361140622080290242955143926366374703829503391701481552847252350128324960663387793103813722866655994045522591500049870358512007573549622754122508861951556423571572019381403192604271294745149400586795221279820966443650852988767289294712256518051681210468136376391551775125192738746135724016798903965114235918377204079628165009045735358318546372318313791320659990408274775902261005146642300426023967398121256731471402467743620110151497108873390723978447592605638645636880054027257296684281509373533030890679073888819047634404384839334854010645208319532524638571527887757792568262008010832764784984295319334002065387383299864052172340264715882382863002924961590365280094547842738426302187539516609904199685028856825392910713047758606857714287020494574409206280395523833133890119574305185011981077768177662757340836833247750234010415043346189515352529173924115527706498574110755342874693994548868844555023127435718240881476550303411784998862752785057565512657756929435195589083328120126127200528922694416230700967625476368189964204433578623437350406102472826172783728644393877445365008119705967232825191414965332192045977534015928653116692556214358180414124388944400622322245150758376649505394925850792455794243058334743270151864115093182277519148617568628573752106146077613761975668729597653088561447372319957820083485142488381285641931630718614884966537734600807871286925480123271664401574569923350875415530958451061603325771073481807900784905761630079417155986030033283653242509670888676435264941601502722632054709633415691889186149089964488649280025414358955448876055635937824361548100521066324619917621014245353484830004460953666013528289720415503375118912772224309983907536356882971705252096310903234811136898475051529942938213584385883006260334173843696965512415255345067234811370245585618060672870614637824483650394154725929510004079430242080380260359208731346965133539349684065534951818867089735258487414497699453796595654523883528986070184712176095447031518031229396569515395337839964571191247235120164324683077331292273562944305742423547489716450580410072358327961971983966897586163085522727094902334123887914074280426752929281151787129128115728774508198975380950428466293650804156529773404822636854188453033138398033279532993226642369093338922988770906267647049528168761004162527137227332993369159682119007450316851485739584470415779497664856142400447424536673898919343082475082312700669891253265624948629315818057182363252964762843799702062643493303497712140122131491699492046033978757758671066171523076044804402734059415549399483477474481555902441380702669318394137855410600293049158104529144814997388149747808482622453345621605827799969219667290703718642036063006074679796628865597185203912901736597470502899447157153759431263732686558537786920966365507324541833558741227411175544265426432637087538988477100090622914155380968639156258655378451115107656531779826731167057885679018752482850006514910489967395564961243307109698654244264947788330735677809296688362507002713208997351652084920060203333086685024358306014530123616472711483225015593758270092499785985821430333655317805240851821603153256041238818386534269839323413952062349787343581974029930307867752927156901228899139918488354217373517355027362368261674422593752119340412268765507283258563763016511363712851924850744192520687658623381897026932375539892134317180849600502076268290334994534136525771696756932032309132441024988235857048080597111615057012606501960638532735775472243949332845011485887685253829413879314019699423880466385104789348006330491737190894800708358367042616265625408821186509344034724785504093804109948089598686286676599694015934332855751309496498275735155204301496634161350828151658267990451174725270874907203097411841745628349440409173341717352993170797336941274680542685314877602118655206055660246110736424412028835528692411914990708942362227966702178396763959825065908371320194498914413121206899880532216351760609373703366389229302877035342628792902879315413446836185952471381032434255096407034632686947213956953932868590964974518869165068397228794442250019263790831323809659659186383708965061774002409617241612777522902742673382548052070871475875459736755688986192702710765368018804952897624051414036929838880220977972267220000981382001418199519028400521525643851574743142518597923648515613754389878244902869502160807501067660915063209696635573747645618296323810494673242810598474785048485371790646375428664231066791735121114571195179966809327388257526924683441995010444950738968674464773137288059613613960485204040827941315913358327807176117151437022668247050996737456309224672869216632775959257219284343723093492918369809198660834761165326872564170793872628262169271919430647273159698500290743105440658986146737750025895247347423386163516924675340156004159891298773165418537773922558595191588385118694241083321144643823063976268081346808494167477058434046995235407560033789996528425737489050118754523988759418614640936152049210799950524659863185270522107519760583091321231140033110432171722162604792059724234342749196524745438101709462516920922610326648223133367271227097531502273748107564329848760524570650415019142730639402785669317941707770174185276993588866194352124659919141565399142462358147146398062322793186435691715443814145039041070038178707273924222014805121306175888618019996066149741228257260413518098182638950815053014577935796407522209922130132755637418958739584257924918490291362507696595781369603838140396300521553226984560760323299721733543566439138371896439493085888149373989733836288127194902433233997082027102780227318053440459372734506515535192274932925867526262360133493007077758865751111015262816352018118192711531549673835058640043376658106566985894074550934011583869173563501612779866971721846714383587540351115854197450124189832957841165567183844455055188185238521600471187859221290250429933235182360745286442434463070153441820883906353999025604484167361040582979133113608126577880056809946124083259418668410582847501582449686525159822442794807467161368517464887283621348910550452849140505984807610951527256538061102125922803193403086695904202412119601151475678879022019120137837338507682071194745295426156912318463545680540272425497556371636110528986994614671907927160898857021519128218080123103170697873139207836399190706042958964371258730646968040934220631619721822490043809172249547983644365581502702812718356242998925220191733327795805778437975793128581874289206197109948242756920553245093353953932417069848496306415766383265662727684619475074054565484912819962938529499096133846825058357575765628265347080089298034714809667295597073435856066525911959151153993480655195524503656048910505042138369695337153943921594057849208713930777638175269282919682235225176836379809981423671625560834118852106302421826262553662235404988603233239095600197341234584883389607491648208895240407337651187426386550521326857163174687576172242359223113000168129852553285760685918632932593331746935535192556261692367878175630884444429724244857365843833979417788594754979995625438209936862253059970937220477610072820274357142371450594333509254193224409965870411384913188866230170498520286535315520124752103875271218759028695126159928187356684670625198007186680774803408006619486359416328928343777834567647071635311683952638687402599480634755455196475258411727189099707583932915081142705700824124935399665107780672485519146604475576845069109017307232203834153657185795322087083814334776863701320590096648128698404522581640429911091489390726319200487801700489940085573870721767325122638403158492715071968705867069927816889408206332333269941684583067688347233069790069757630036607491101414900302856769699831441587680320165422282146390079062334501535586263667610632243626902895535284717262506266834440799161805323343502372177186345328368331619962175644975855826147947260724785655633004414000340709321813452943781269108337056379296230878258053830406676683217581152410862895376263375668960557232172467206849671844855239817207149589065997378061321879168577564288090880846664110900054424815574007067062270457309028554397445551110385156555888451239534962746251552408889189043441938733700615366438823629953384681882151119384117811928171706040736378728461845325394657648592184938369367638357384859101449892533006495394722555922514222542987190577934063746736869877489871350508304348927937934012763854118769592421642699082378383541453480483322127973748420297513895342294886476247229430062777810781425263442249606965881734683849650337992614586390578884569928376589959261613109567493804104650390191932621427180918141618628741433281476696297058670215053021395617080293450835169990109871775938173380222803653095505410745623691814721110477126079875415253279334050620655358907280858639169666062733081607838992086381370213127776909190992998464485340749428498897706146447599028590887239738154602986730912749177854179089831601160702822370581203291113697320956797019543906107499601017051850271188357423112775685939211420640071892014536551153895607783995766779741279387574504973421454291486836576383285714284118510232600968926745615176406611925345620206449125006111417324007824038764399861677412344530494542066290146067096226458719038705140520931093510642381668029850414044654454645763503243167788120730019635924717338347297251501234215831419232899896029918307699735357348943673796818436191597074772073430223602029629713984554718670098618312287753419603750295525400352471219509289576032776132751663511254893080749872316010250443399930758195450939979012614542813836156742189015625451838200750448965191875003981371906832378348004016944963833864890205833851096417115544736161830022519988907838469123720405628328225350605988435650410089135365370352877612916192828058499540284748708053135859287112407177849094981078722188000769137596170203162870893991396690331830173358803945610349056207731122146674719702602896365869303673904955037222498595075464292452473360121586189423037011855469512094721998947275093940306359869082769464200775085091379507321982755834393774792625458337381177545775315443888879513675976738683944505986415403142044557461708179534173473961279358830556662958169082554196022202829150467624174204220222616593848911593280422821030740790647139631968547588090607342122979013060557615699429369168644282329353189454920870029772151009658151123342710067610373009950163057948918621197736293483172170296754944859309682132462112235672637915259336204210988163119213003593859000425180124583677649760856436597578914899491763359564044066636248714794468748049874856401756985774757192007620311126178448013906631853082056110338388320673925941424852326265413537590940565529898738353792801108956508342439432674168483501637907607939009112446159089319304306889629460641862596814996972230094784973300986754440364936718845677337188471719856364150250830588303489942391558339439465784005923861495570699029737282253733370063257029864695733004817142306385629104336479313714521598203407927952820213233886050591043665280996912623439717320299407683515725703080264203223356036456698195583867596946482222437381578577324773339911960773491421365760357990673991470901410616206116787607279687589457866053075125558753851561600952672832066325102410362109701632203122757566491202092255157214381037992134848804673830267948713790987804666513419565842542041255565551795129211704410901805446143485241025376062960464692525661390198986086662897167072965687723926467567967448405468870830997124547700027437003737423567224896981817216172306896260553759563149077780302829124495717962762616138965750733230195948166995019223936868228133972814536575248395444383992150626479777970452832881244661480788405814433700785149635310451924625623902019618998241804958759139630465052851150929624464560965515101338882950432562275717881631390918168921488632717267321561892017914901817757945788454381610795706278352125662679280820444295804451039852211156636790556951745917121818645133784660576430867091822084337798887793570028305752311560187189352894797556242244310935483645945844495732217600641825055959412857596971963677390654529622875698354344474151865894332924306326333703864596570087967376025696152033497675909237906249628056372131113087947477428461715620073780134690033193041544539888332691241271467015500003660105874336556468258379509765277200372384207787674469077140924856589493815739999620704030373758206991455512750024437919917776920624254294482159889552297888490485626746259388449928680675839439820613345041217146320163930644442165010187137188306264498927598461830173112658677069848962199097816444564316803610026146127935605833729231277175032415281509154732458474916190857402109831913047895917778488539662746407226744422224390467743552334378063673911864144176779205934528014857784120165747473210926032063571452676102199654229340166688659078573541543621641897526463565503073695422922424382393899744685616207666871750708688146167484318876997087827448847425300083177426436272129790266217011360250893301759642548657883096271401277792790993719089628994277334125070154007602690854645609448609096029207446810591731965626697956317550221887808720317457064163538567225491962178427589920535070610325776224661083881065021790794142649630844522239332094241821678745836190859982251014379785705095152368804260980247439529200862484381729857923487586887823181319055777408201876677088306990075171787507808362242997285323960963649336211567330450999825508934880357159219138600758684143034851368269330656566061431520917480213803353598647108936783357147905249345759838135122099370426807127398684643183894922745300443637166176266434974956526097189318114231055901208400805360440921458673540937679269297353761470095222494522986928512132085325429976454589857249107304127365445712707962312201367209441770458674227598963287065409503910294162709639685074981837253477637185846453474485487740983201417137002010498917200419216653513449662659604318357159073765521315600272525594310043841056518942518999796409511197250551802241369459265610889685754952821641107858070288902854009061529675783476651030811998524257262028764461030975318646776716257555713277760614582876483863047577486748424755834642706034901047494681542888163211343865849071464519038376377359552844595374052488045298879153150657914471971496974064384268823451316319658746516412198867058051377158265032153211157940218003916215841499763993090551665388243027227038655186686997304731706853317769821185377598209663437421986656199840817877496765799089781109735629756171888370025974046770818135088121060675255817697665271205065171869405382689252633140673689066864276876115377541848972483847122998235122807159704733523347150061381307938698979111389769718995015769222020471470329567679544621561594950937031179225272889555945670983009662356618396880463466623971484713347616632760846921069683196153293471231582630095816774189266259997634231707445050963037283196521123623400141988576918275664139550883731579521455201075721338057226772288292497629054706425153113462302187097369085702390141914222325119461882140124162199481212117565019646730434360356251491552823837544899242822201947137475406933702593240204422205689971950589486704232581489383742244886764534512437261239534159602743440694760967950293133087462422963867323685435393007000013040628483597128787211457351393508738375628102249471017808470898138428807297532813516685162206173508426411575382157587863503039120842248018288209564283803950449053205309412401687281825058455955873070811334220220956606280158850894259448765148834709649355994059506772307418729894937831257215773192093656577589939557994302853728003137117091598311383782894681171302183133189607718583409266819265977400171448622838105403108363977514933763022120378538222805840477008188409555177840095073319092505816817692170854119033768111271212697671231620898635319054098141962794685882602159087309841363865157528635551184403027035338408151747715047479022217674297192563557679817561345907527767031503429638135944458846806582468262734381507286904824973603795770752068890383868124321604912498308910784163286012319675024714509735465342653140116505467719343013502397822197929055610366599472268020770410107481126134313771727018198242219996203556521317199101637246742235028353122167034804894331867021368028278472080424819402198442844750951040281188370772109424700805140333981218211155273905451866873636647892742266958788833981471772058769024733055046839203810893277638085337788811360454673705271663127900143434293487837352249256920771376608094435838013129035252512927781653001458979515188037130179095800428005107332062280530131487013341858126023960045333624345485171202162386282855390947161771356049325732391902235786091684641658808987992532304629091612789188997422442610289177924934584834713277139382706901296000755462591688546964946518653924405953007477728668307702171121391659086205712012386242733259773224779915596699984056847380887879076411745902596850018700602489460536356805579416326262773311179148578088944454074944447377163261159760910635086664723608676947782195730038555676745384873664710718828306704249052104359572054479444239972059421164760352567338762495392647103891961745991056045343468047440771487504273808264134712866992581879389061281151214952229592658673916394251543438618178110685774684513192657927592781137270115544042679091464018701738356149003780369120527792136547925467611228955450127261309741111205126690833398256108812378631291284331490180126689861100619567361665156723726030486634695124132655329920670577557951287951443007559565472749808934817920373731645012609162619760279624269406055386143831617456355875535974697731043549171517869729356606379949301500542825416869999235042349768332797064830776163841042873337926055171575607875880386919903977095460979289361529986662227041792223989944723221721721967407393389698426853183986532372489939548557302840845078233412889919601415305994899398848430532324402621079181248227507694079922291840146311270218990979411687752239482281502890738782274635336614692524143852341115081674870990504023329024683304661775391067907212923960712056841199257133928855329636303525150228893356097381336048028813856500313432258964558455354502382896775143215759820678908287073101328022421949873517144419633382679098569825103450703392307095301573235294651591267569002326316763088884401030333934629113062012078696694832661721283979044606732197684696940477251137141597508934177185289777692692578489496831991364674376228513914112554986184601240646756872852787882362840024333161465298771798424663651623065116869635098779344896785456713249375092411938235988214940177290553126304249509008926417052402436943475662774701061663279493315180213161272287838064506062458470860926488797407639620051634588534915806508594833071876081752740545721417494105801085173877337109070366273219601310586992929510317839178544548975197576739617451982305842524236926729770670404293840157314694005955398185678874506614291102559930928086270464881577833760199672766362808384199187537899404424905869890178869258290589868517244734635813075347961870994443233486539561456547005946378875587775359898226371784859647229333807779708044727448417896660536308437429468001020352727715005652425169049358534812210473102753989938493681382018641376771190362771922958574911636591947023236226829750171870804602645759471007819480447990273875790091952421657599366470835238436302740489917573284389081724621109709070501337159526666363519079745707841114144229904521341084179786874424662939567309583716985861728043359593174974445849090933803378448935071243601456617114303213311624658779564345794314633012455127137279813683378430257061707584888744594828321793853634818525178416542884019610481165778981052046400721600342883275095854618886761329207377977085905008371238178352350974717306569040078449851784056146570065890231077614941958954988623920111430507096369500999717173510476562877729082730146294584611933426720380636058827276178879845395190494863158745829532049957220071732863436710139797114029225739011780029694282741717708143237032709400002625768277361842019935146711170847850721444659059731345229221253492617990238889623121203106814986885326569446460766438822918193850599038270914181966339914705458728002511485561655219654171159974356803197633161983606561942873339236474880013965933719935536159307361962104952512110178252497021905973521964911849595627659005238700459742398007886271431109735230069587771276532366571760272688471929735671787685782485818062134906121684693817253243506506552309717303281643856308692268761893664768669270605395659793052985962723312043122268930198130122662339252870868952481893805448048188700928420816538982968595879054986342054875656268405632246754534548886753971059283910748456584505026981114561548590370829927706527206617274514425248855937213946279415242190645264592948793490141902290538436825367774857899034973006421969672984733550801774731220471594540428367718229873320094525632024738004108145409735118254309880931403115531766327507830026507202340823094979928968977888719203097437743484732702036347202512796214510234395357884503267074856439230993574851343902930843884237728562833635090558322695590199399463842044675763631973876837086290728387017051354210271063058793890220263342845684362624075756721845806145506246925267451682603122891662566861211464061788278682935959695007285923939255762483594203034625445748015098836691278212233398766851749397902977118627414430939001160182726002152182236935457402612642605632074977880289469704211010289673652583013262540259805389401402126807892256839492858808954787103279162616390196803631631861921306693623993004514493432698174372756732109859797995815466199573115987870636129064830054586253039261969747593390007282660161920311155676843471371961755851537280861596600484388815431889823195206644485335488705840769675301429296391079656799114295481796491496352059549018568415303631192735657151860903092460780304669776513134782050581771822823104297549465330000665547193708135483745047701859233314543508592805196461991378217552660859976178404410606963576904338180739733218539784007643064132590399170226545376320978168030230373955006618934212193103186600451168178200005418695942565636710558875841533775808259870245394861164624730648890124485889016086715024212514991603285704880397158551640739460625012137987011714842778136718035630549631612828513025465127020557210726038751756426677083635403486244711836327675870563615713185663113994070446616071864132949666901324286611941121443510777341668292053149821171870338462754542250513475167099290771514941749240090648568057257733634049925420504758770600444799668929766808768738923418921740774541600927431030675862608013002616391996822313522266775957561036594161096343239733420119714998387080635289558903174306312407134085078071304716159699043114199943849006045912247739280413084887087164520963564295376232803505667257375244791120763078866096952355955162282619196304654465438067923747066522603328558567076834208218839121707063382156864485240692551809983105425524587922064862271502589756852839300686777956816111488070685728728505945162982290406730494056846040684062703159871567803268731991062198167926292639893202692540974337908306538231866560251966678053593883018298884559254435514798347182105839367583784709889315012458126173293737679060877985272724498042298416402482838468485493829816048845872815643974579657010473720985164370990473590557968063060547506479756424477686364134882388567869431127740864356644600507793123378692712412426217053460753990329615015066441448434821843474468756019481665602377597728820509312662256789048960194154584087237294848321094119157137570247894225699455623892482790473426305360661642757573957193343771320678435130930210054931254486400113415906059241123670655970949815589614468212377064868362060385995646371060312751760962855101822780578191401975740045281276626281245336990722079986592548585009684955434803864610421065741325631711165246670656222259291219097378539451034606445918948716469540831853438683124564468357510915813914606284423086974065868603430924248131458424034015128922993729884969404896200316502775687571512807035195108796962692539925099187794083353129111772760091004774906067249852543424378918558250247725511417057673764254211430722440977932671637510323856151754692631144062834281989080626092890401377532743901433283563821759958295695837569576199660496515625246821452089731577528092143004659335639597550844813546038854057156781726310969583986950889107823580112823753748303178984288945725490153406622828804984414946608474762506955326621621922817355000972410333560330103659133560515003342693000259036393105436252486100367397728035259871193887751068899618737977094574829852043708981566077870320361237765108803748038779333117326716138011198410201640914225498721711910697219244992326077972826920519551010097427944122159935740261999912632573246453553197821272885137395114359716791441690764811081926992902485193084974302521020445297237175975524416812848433765877433945423805171485217601325764183032376096684147093395126651198336172752679360158757025566631972961319336250060649472264026652323036212016624047442480512961470193345609420857462176806367011571198190353307487207920856625262717420457738611511930446769948192165575157209425834826909863468585127809276345374171483125475961671067762958298500209753383234030659673065417672191269376937620347692905435271154204250073285673388255690390860271545822255981008991899425339584291003707801553013166737586446562300943650737134701724090147186730903566903374235320105469593128508166100694580166277724100096077670856017209271140741447499723597674649923086104319253517562808022934517803414705409558318194092155676387945392703117571925409614188765795399104285405478267795538605965981515425454494433929403335680690958216284362416668007975235871549171287764296563257014971234874174811603455153446703176366645953121553353354471501488072042066668724355514905335924625560808196558767543374652737388580422933476256767613016833355681420800965817735304180082828214327296109879051356582601737276183895046383759422640139493905454134108853213798618109298304381290805194422842173433667171207363132222264722847326213281406988814738082794324285470210466721923365208394597869325062949334788692414075457021186160872206103386061553511733919138542496546729106878729277153526087876987257426263729452105566375624776098492636594377665389113035983581407363487858304381160434583252846466674060809715564047156317286990839147814889177776252595287401365308892085933573073474045448204644898594082170855882022097114092071332738850770892284309697017391740931307149090299016086984410111663833843849542136068696431855875355592814169095526619681570496053905933575238006358168561166467657825173719597176144413025474756479000601791551264373042296443712541002930341665876941472648395807805447289493063640077175763398921347177524104802626416349562150821502579390799343815985854307194601998376256472413534249233102691235681088049176522552474243595592662828527503338401070426939922442690737237439014454905164658556937881621238255583060342955124003010058260448054765220072487891496911038805827536740644880607501964377134352223607879028467433908828588108592365808567273759028557364863373785561811519399827240921458166317054368774216181145144070522974820642470633173639762104505369816930478543285192663022247844147356182805487796537299646482114335692990317266379686581788409072008931315313014993322830412337652777280602229700207189678985121973795586960764091356396529380734186933591966979821824328816411955712124958116094010487213873879032954997678275975465108830609888750626263086929773509527717107533090931667798687621696613620858194058553513462689402002833726034802414861995460994648909528104023636315102328151902100956566116764471682659107509103242307085755322949836418342956869384537822545509351064509386399707611956265764734939991402156396968133127942207369354485593681774021484705221972203977817201981559772370194788596420370565449511147890185122333214492596392771421088587752380499746724929683802975451415600694502848002049840204968510445930174018536232828130344091635712431888777981934448681104372243053261420249046198844177331664664449195073226571447265174097646384523664369058334186326518748216189394773967997545648252412688104117622868362237469477077423837709668366425774374536546155561439577786354177298570704725210109383930837513628964911995937279147537440658835877300695889027691114264668881403860075269182856069343216451726271953113754657558179944676455696488838222241412065890762320463926373815878352554571925819844821716183870125032098248192390920615923951989989474945946979709160805894269426842452348322128407253015062481451791311125796998254417002397879237913500636755004715504971448266622078675792824450003668746527704657552395691293450578676256681863103450631925064549328362983020283350318154426416519196773576157683959960109836297083238264862715555290448961749825504856683045978400862980942648862872454659290083595239723499372954163513381309399466187691315446459937727909552501307898989443924044590461862251596727862121903967784307696966704768327507898719590480402165940531027437049127796226165486597373339195084702861750506390138908239323714575863882762727306749800912881342170811511326107466442109601098605595462340583538162339548394233470829375405236656146159654152859342742800614174102419282229041560754021365507137324456405455391899448715355275624909959607890602483621284115990650904479806674858801660149995571566078748857312808973564786333450551824361279092503426178358228037908435772989878249830809061154741008567667874453449395443745086871412868099387684410118920909501933816441005062328343224605878814536811534718654081678001692796741741975938907147671531122916445322617015578959968981838189109628912151836959609846610437044087582582066390527281033949397033080001199576140110540496391191384826430861363537510066774662042807817414296237979652273210892496486183076335544278701147797752796040140065789702919554667556142637203569879966679703283353650305931876960598829139544870280157112516479223947476791924885680463265603558337305907104822208077001590767278939038676549341919585981847825044468304288284308913103802859973276215985022052606016703386782985611371459056196657623420292806899894001777757023360825743082387706752628614625029438281904336433351567867058453751415684335668986704539421292549854416442897806445778976500126786382081041152363196812362983143738042963886201274404947793270272396973512348533617733924790128545187998151498332225853018103133275845946412095066235180038174004384256594090661027964380132732642827595919760441961614781576413027158419570717539154722761437406391451903819022021717345390717758917768340147861905168330073741577844678464190269472182143294161235039243879404829325088267485846538227108169369896023301586426446954352170212353582497104238634973965714721963402801674623490765229522878876581998621581788391878715375270797245707330443604363730543543884571200160648438954514654299992425701568575902091310133175249291925039342992352900002574195064865456711934134133108452542165103202798112530523606504100572746474547719995410904886926907956874505498653660280301581905284567466989934676448048674550093128875241173751549044150324458576994719415215860480832863079130416501128036606587368460745330657913663505094961954400860108104608013467413868740774706527508684278355734922451399487030230006505046389375047112287717217230500054476435892259483694321067422874714444968418615175823561622667305321229355974075241640317463944410279615041377252063051646490796778592637159989219093604126204494511292670960131083790637321754891660552286548172952454427582407802801466499329855343444126367075706924767694298911953504768883396652454113766743425871476685538665211182511644655567487020377785824749631089012478973408900049826076073838775048630598616747417235781440017902956723126056421221113001636805832357998428308716443270229898310545986582181805513537912447753732445933497254138464213094070130596940510008267125092518707242592672233450500389305509297746757725958881754527941812317084967176720354734462503533924614696609760686440220202294164203321473027352336915632033690598429688634226508622825553553105962331949861900504191850523708209491166034385404621784955692820801199667364914734732178131725938842511046705450675200266882233912442652423314141767987572823453115075822279698146033053231531518672384366030712257265411499268861237608085762531261114454767142979097013506880039743537278594815091777868697658538577425936351439294070739065244745592628426568857421590263646557422418028489268429853158547087827090517487167716043509632292056572059071732465860552073573126875816768865230892028406552746306464157822585604418055851605832017080091422693617709186979311300515811695360624534074419126436515160621416075818499715127844268060168687174900139600887104447521931084493277395181139139929403900171769323536399339048652990960273306296315087592234850302313419786715742297492080066686292259801639364699638666120753450874057382771819094434406279790403456354941165114649275188778779348972100398668688478421751303636961277540504353375201908254526161866672907390251856701818471264456286528054877059018470551055405761214939904838036354792976705946556220754406779342410512406133458835049268239282612400268674513981870742986896279748472701800135881199819031543020752621167915542948005111513884262634884076433658400745089955192578907569388595295893368214438026600664050431365942952120598984633842027575449220975338317064871045187935676447528967945484297637215750519192927577453224520195522100323536310619320263814817788580508410338087825401328475273712568116602197405079612801899539606748589980669264693981606091224488075514803428946818477739823816266834741944392541576825678963394929311424701694039777948440467018678875314456995180702850838933852506897570805291169481922574232077538926684767154489665039122805208619869166030673654423503318078283059642228858902706284349743252351276265652204213228281043610953683715595520403933458031050622271091938344166312148297440460356474014653895953307613992896260045089779439929922782446769359288123933664951854406576043266363922982211312860093200531355551417209724398375415433616940424760544484390699318774907694723722165592291065005590490470924213504232108136359037875322679510572265327686374492586947293452825487625017735074674516974160620443192172696713952737770004302407462338505143062897680672780548141055585525068445485889669252752559350033762959606348894270481905728601384685722041431942827262145726939179930409253041480914960685748801029269052210312977189457215470843375907609699690442893270871198329639503144793830163457653187742508701995496092007996852858921867382762574247796302402442789508465880276250906181391249589713205155033283503922298275110788286106192842430493746824368031231956176774697115581774269250933864215923878041064243523822449593357709729850537955961098641609559759123335123861348049749375163248930557673186738595965189156138346491568597357242879793459178378748608909229857670236776033190500741506613091650680154345609810322666769983798121345682485402421733571413716944540311291656242308649740532416985029850204062376859077070343880955549945344691931197560073215189120488035388433339869585973135189885532797881631600664164885077687779725766824581005564862018403068898987885197536879309501510833400307624901507880299243332656644612176789056993543329323073956017025449109535700128696148235914768535494906083223668618902213297018724377702117108304011361293763961802197938213955058785083194666900393529239684961540649450415949260045483475227585160242584532877038706551202846638475982938458102152428473554756176586808616925002079617811593166491146452134327284233073097553247843073493205576930639516415638885960618105422630534403467986557597979769143410254258561284003850933128936425592265589813600043193598844420158065694464903791005798479686677219016165456557854891272815056707110079608084320618202907635959776472402004510146381982522539159613958443886090404811801377957312822343614356980581107927487240377546412402705830796081351834961091981183862191269960008609247190554916985873354116266624246995855152132593306209498971433047287952160838820016873627705951828390559867356343677159953855715117136980800175970949251223779919220482923048688459719163786094590002313049505551401337925631921529271159683481763603318592754521942988499645119560661588044063636479874029517868027107676401910671500716925910333692701473336358810031225668909833412734705904439375685458800192266751186012419975067489701665147311705936162060398699756719854775108614255635792539590370865122462204511511304737077745760961564536742624733563391122393904869531374386271204477216756332581520031638704539360225936876073964116464627006840598673496844952438495432632280829410595479864489933543468253192312757120582105884605972172389189154510574240018189623748889537235582701274654140765650936188805062526405809373102724711660226190291622289225685801861242953406202649706321970395630467797996786176776683997496643656900146018610793069932131961137564111113564790059754017523586554888570683654255851192154964191247314757309271373902071097075083715480971190183694686500638869864367924183704737001018516506071213101457140421187376977135165372233552795919808978900404908257545444482727588694546331108116431925858646936511451774835587171409858721251953829045579416523250445429555631075687792459971134052826221083350072858659203489946806265737343981296552443507730096038955133384346342745289158554923739874438863892093473396759234798346165509163061364178765971733121992838581980830606593510899191536096395293264720540329574997533049700380425147116274436711931950844607653261491290676030569755529739063982789573048901461366810405487894551560059947018926944137871257512406103992416210090192736133060657932085221652533600977488899785096012480848700155778962401369500625462428501490067703800940889508524384002542530788766155238542520278145829846890001863866775918383943846084230511535637120885668593792797240105739511942332009769225113839623802194949884484874929803420153477836890162733196392839212519412647619662425744485553552284159128850846836264010757712752953077823622897562054698686096058873103048281140908996839206285526549396927999452902387439797039808845473725523250534876363975917180511093222576017192022838229825412622006029514215017696360006970806142598136042781617432571929346776340248195006226296411061503281942327388559373987553913111973006293516322321523310514080823197343977375179943845345026592574956735093002062563919614553952127547756064898028230782245869229536951867668182761966623353682186477551278912086829287224629939758481245312159099422087677113330938795679265406352397370431266567644150177961882085893664896435365767341748942733444257889736286063107769288014567270432677868953510711144242886803442994450403018219271670604575461962039832305264518309962413477826967525583024334856506978810683901016824010201185049118479696319177519260707733233855075747815412934513010466924510565068344801887805724906777427170476017073549105649369213051243057862887938819394331857007925607107016070361513184719328045115473426778458137427293521048291480004610872520279919810242742988683530722305640732654582593529279289179067271918083772806740341187705574397378341302499325297369101457126637244806667022463783688854743939074694469108314422940270341545848447446248727461887931801534017998188891316184199057999287057904617254720129165401543391922567502621079413657078942664832187890405028621439003995849029164791283408229049424457001253628807518397440231670579685909916386052970123002177043422061334918473385354699060997773304804886708117531983311411216047272977698635857137269630324676052828239635277435415022495618470863279303704575862916054578478717475186073640286324379122140103975454690293109967817963388117453476289182749565021069254745598777262413837468419172690859893445184010649198625082971693844500440461629611599017841840967268693201994213386311097632116884053980099534813688798761774266501113710585061324726058632130510762372404462411139792399765534222967924274115617294444280133900077682586389222000770070237508208467484851624649854731369606961545025530421644337187095810174898317199147791408769158747989167316901262238337588245387394947080535645088196736427532035756177380921710457627192553231881503921976846791962416905158349824443838892357611368749158583759612833545559390597776293839303308245306705423105389673159970417054825945827352378760306734904007988067402067380859931069888581282571587654265073207313773886041911705055641412954810764282838949320740028555699735167927591633409023059477507962438180251381921399121029830726934062323559246660310791588024727703099969560171785856679606677719846158167821718512779527680027431870702457152130077453298092658399703857801760394037609819498627327076305654837407617468320998640828840253157004251754929545260899161476767124600071878985984928659435803491094533125619885232084354157348306313100172747065118020363652679278828187915073167613396111220558964055449860197837017990142485888287489862906261209849178082225740245718513761804179084625865814437004613798772318683224882431218470020609254564775334765588789930103254166278604404934945625618433638842124568637619036515959590118710247500558006272382007088562494166307845073116445209414225196277565205632888290504317442501269215840449916123784845728786971402538534918447964964397021110558930873770493481554786128612153015544595488767695869833653403849459283759822846891961051518041401683368136935995445390838425612446371799794901530246022283361957049296365812472808051360966803632088736937015453277198550036123230362292357965431862305210639162142249369492368581109403615812435073091010175266452991428526280527158726215008730623714335382804684299232495846235610325738322671508074135620244311822243811092949866252507494660586042956466917794675320657081404920104563484780799323188062948490243101916798276974680924027645044125348654948168316801986854438690451518422082794623243524475887943230278948712127439984196423023181767143301950143617300562508124071184763521612370343277763578088069336042257937903876195138891723478348432047243171941385824758803045593358313916888284705395998031223316409974585221107466871376626336686423162892968579809597271296924309965593713451030279136123004477837979307823592243414717271788589964877237379359023227969119383410112519923833077632957633253841852916744816352817643454019169180631463576900298294959795880089481046386494975459870097050114931026585078402313171209834552179392784674671656253457026963093614317712374112836697120817905042219713648724648252374467807330903297316525128063391417377479555108020988529501386927570578877594953204889468403918782615484733995907352266359472625469420591400819351480250758697564344395366534538910554983850168259413420556313255267094201218895200326069047928628102928366205730037117717901453758057082942143483020511915937446199261171250403732502529795991713012220741001841997164234469725289884674034492935211995075051910156864327340528190943660097526970639630827600088961823917056851086810111291050196179361833548442706109616887501820959514162524002190619973101639830717235135600140011707509562766463547999172684583026351471729864812711540888309261639469620803252394342433848372986976293519608204525994781085631680488088890592879891747836057437980944557012213170977007955275940942443801984474574953371941252963299142136363052645681861309398049872909974327674046550443427337711739188532205804740102916940362457451086197407605589616460633857120817300386567603362426458772254414326991345984403027437616443252783626388324760903864107193070339258453968443674292070798872513414415748479826912289883696872847592805949409531929740265819847389741872606453081168225313797558828431922770560597087822013510075321699107950035005071358829558828287746969433593183602639022016974248820896722494159618505113745202471715532900165872382477255653867636687198966392936026133457627875610860079700837882323236862768932074720213767127425193438783083130927666329432747513636378000777150731538572613107946692728146593018942418462899596392694867171586201578690985164811496118539231143722694982624556642194924027064513485090680829506150335509992161305894449465232807479558318559051079397477811137568766063699185696238031242774057204895709062934094971385703654122350403753123665948265045754841075508667429485010335755096509414327421710587072369802870669662843699027178779703731967158480032508484694987563743937558732620709594926444246542182752514474921251155971713925335948329104815387467723300399586683114773539490163240273665044173013211197524810496932950551440890658592632632168684936613465719148930903355483940466336666691044772624547279479439697031447590353758977223759581394285146926134682142604333197655990208610623437551299963633504991377696224628823791356382896494249496624033052737649768821098890021162162430914272351892188570930116873534970416438979718825765187912311622283885694873393563449313251885671415410429699964686913817983660794678693435001684853055993445302480622469101224136982869539565938788963923693434650575592847794168727370036347586225764997324390247411092132032430760189379696263286157455849164499153763120095688120968307648618246303230085253814665493498755779784520795738492833676378378181553587387559288227505890733970594096659247545284049958170991178106354624333236963408982747722038246682468555082494373006380502762553174192371081735381307600193941467503383010231747940734262005102819089824016855689691088196682092149399686803872576300359504512362926812947710107220001119755062650748951653610837025503770899943152560039910083219998855823365865222771196909168458510268669176807422687663160199469426578233021053761887019840481591526086453092027907549659848345666355927870557831780548131317007641236661103029637555993377462405005168027453024559781929658921481020169478234340124688423596495591047512588077522329662994068662176895018292378874561525049798817353893748679510359909796168572002313319165966817422851737447560049043466614369916082798817937236331646889483971716892349228616629854149943229089175835550054213690016749015225167766452075704552181937920567880434381107631489393592528667738254691704896063877438426683544804417604546549941764332656243995804556971070997112366533366967583176008708757557612839320323345277279348160088691392247289465559305656287906224075249560600799526414363877210732439945979194403130799912999433551608557378724352595603499658216752221399775102132707598028181015259974410032338254732948949983172938427532419927299752241810084625175517572379671432947849303496628287698117953340090596350680082548548632703900386376664037312135725201957934926636913928680361781068745714700090801752692126516690718307272429443305212115787074450165549742441921555074161432393709469174724996407035410823287626339740927093419413243429674497763216878386940866116501371226130586744975081487470594245365862111466459019955309184540639424049366843771824266778920696609236874009711574288347521390427701607285011125765543082414811590120827487512342860029292443582991178378559138687676203896695729841693332602678106596158263327673183427419079009701064829653624287266515902769906967547089129712487009446693030639725244597044565957994899060968386458689102386679499431236834444374819723862493350866413880563005428176101559573555190872747270901560336816135561503873212442506268926168316746255422715064847881562786842592985310432085625141796350031777567578582538134117425931391715817192751341172487612979435673951063052317275863313656915601530086350741823848294416455020419131727498836626374845319998137837153291830905132786181204316136156774063515077672315614562971296216454447500208558282925894695355550230792071176672019178397434666859283384398562672088594146729138556620519376426489028558268724944659870848426540866289875079864221847695319557185495676225262262362993957990270613164928420188029491008079693488830254220236986415789487348930017506341704318324038744901087863082522401187180721244956790505224318748490105905809008131039000891449404556868864783562026282543025556785684247776509988738759424869285586062059712904325804572669872850541462322971404556608817093599410074177341436687216171966510421015286969301207318931007902574627388209085348856359961636554593113799317211922748909952445002643582332689241708800771047045216985372735339366259569321973444196111488041478233052727692914947784744406751536183176758504299647141054188797106928603341369946359382246296690268893750321886668787523987881499783791887235312300053433172561994410153664193446264694011206035071846397899294186203456758175429627972580465292499455283988269117371014940829536695437182687382906484143290526723272938437122681926650598898462068557896777161106403475863061164548572826261422123039874135165612651280494846550558236806030120971533303866849506901325689133113134504235083764277647015294047910970727753496858815339550299618959243931304410680836666115544388506814068128611183395276926971025001151543903936709273972850574141209034822779059084774716022064610613720133516235767224857074447485787106016833681395572842987993240605082691153542846638504134967678260061936105835937811745347246725824926204104691113012480091933879885057193453659138645977000410443622570092985087457950477275977748297463281528454843324235099350109408619703883055264342012848488718851333975510404651209968751198434530024063567559389913512426693915906905314165424970643502044801912452267594898939066843770572036373786197420705287588509321450178061512725774534945304502317697128644734168121172254500106096455778407954923287656515629594356336500591350114230617375676943130677111781092567083516959464911563764116499282617375619646369448111933793336743627615928795877300230636446729149338714741852782044302352084241756062509514667642546054122635839263856600035153613498708463845341811575422787339772184672185105991753462290322672645320455586529545578544243246771866363406614972397020737447246091749540260302610536917331271170182819977461390842574906530054711399364982688002471740428712427862204500624219657672571378496025586579036734614931107955407093340807554017976646706719683481911964923021557680176934765445613923245027373833971942082395514720965509673042778541728329806460394711428374319811518908063896323880652759811220448917041468546261633556638557898871378222839908627432883381434713234102415286801154385980349915832843233556910521804634310519824134808106211638306070480618058321391743978006536343674226183489053000543628345542010474460012310804586649763989632408298103585842887636129970507260697083180460875457485308056707172039904701743139748481551310963993428360824022646031825522155006288829230229907973044221500773366066504821369641121653586541003883786773903444800326260250304780721723784193836101437225076210942945261418795367471280316458252550062961880976547290623535573041672559164091952632570692702858883368253384701270636239173822240105502625786265842444016077836433010995902590820293822243535238647670318868211255578712496366036159410601863399124602534465020676123577414894153533018410725324358006927071795985560966919769330506042534013325208684943522904866600006323895241389538746775104148430121395972499940335907833677267699932315488983559926002765489957826153650277146541236351271755930414735505769796414557955603675923621350271243674416697399991360076022996457507502413710147141935411980159685675752648039629005582480553902038295995285603465553823289643893071342720126882846952933492230299498772100661471221530179565487615890628270585701383403020486646389106096255246534565107511698813235993781772448649720405421442037588578426234250217455882650197386230817432580711084663549120780354312029934659647383987894651782715128096442198010356137300337699234401485553730385559687785063434010063614129986069132664475243704714384308094601629292302218350798769922130028507581473103047353313091465296477892440258014845611833333463094631012263788012550003637093331356113577691943896205424650926606774214901663669278219459103605425364191087669039927954320978868028029753881346072398862499893207242328316331551505090268826385156456276857432013288860250050934171298373813254020963762397558880728631896044761474901516198440937828723686423082877975418632308497001814321328999126781989774157237996689023074981768115315130295865225441095503631327686496637094177674674498283661038698689024187430661055634590559449951180648240320342941024042485227038924103350083258139896974598283841504360951784231502549305357017869088043625944608987670263096022431511459391952606641221594118481219821319039309696347772436242674092790978229361292758047282266264518230687498229749499658816527915569650528642632014290931002770171889419503252210036391032711342887394925826026907802304428364113416677251850368141260067518935002913500575974660523216721683759608139879411154737325077051028765700409037931350286902029984911530920198168315357442896009126155067614756797247235244910255592868251205140056483135981741760369777324693858443846714771371872425104301486652233322770287860865147223653606122398014592116266470678895324569186169009943822062906552902617818688730054653348129329950842077142431308520664923278179027715942425551629131474165928611610214882143311355801789797191712888358965503989095831834441050772265295227194327358470768242926342156491335439776335931832922866300097582670901495160063536563666070661368972865860578242916272788165115332603173890708031241249940844421263273065808386022345490726849847509078928268071546763465821044518554625229184897613708357167323096508008737602574057110984660532512816988657124796667655862589152220711290532917979153183434518414442039914867027256931010559335454044410916877856090516460834563913864398568757829412255334874084546122262211247377431652223984839538555724195692965163445127016120902332805659784547642413828547600890340084153501134873966040265646066238191706920718764915180965954178823363492086710195171461005523935371440796396849943509888292754760179049407020464832169425974947212504095942470171887800658495352658365260760675881445472443328438910453513536383678052474251243418968271809294852776580481711499536384670678655452226163248505776273217971383686367450178562435756353116761079957444401992939559234106079860433579242132830177298705284063912272032822751920961907405534014097469832821424433874039365474389934909606586429683024873684911777405305310432569072236999564996328098804340079973564136480990938157065714650730539142330878966820689825867853142242185059075228515850794929007757753122975343630104352117123860360752524848059644015582896520548048275921605299191242854008486114906208025333349137541324406019527381233981900385412440898513711936213601124552523408776647186798632126546079769265920447779511012234398499003125649408914143732551820594086361809966442235127527855022942811384370139246816989515796787786952088543568298008346389124232776347306035507437667578429141077143550004369779041509433385086192739791259690316257703748061502995256051071029320352542876060570615657035093969905230500733730816151875205791423744466073246344042684286546374880307430405735298550545211834280265924520602949487417722211107465094355680031906112618297104090732720943806792891493118906065014447199906788220837520475415139983011692817478788787567924915170306830967155635032414205995504050136031367575011466663236224571206623527910118457927857834508316472916091135689579322402881816736451624417005593769853247186284690323364941975471712772478578070283642512795201726322839967195090256143152295749072864762742357920301012553063088359270935541581574927681573506024360992549736587636147284932897191255867761147532251936944513753193950980410859425506914345290738602859603745895664827117942740998177668682041716091486969453906159666026411104815446272904071610448685416654274257201190763114734982057811265669835167957751536219738915439297192268492614683362532740326497482350547177014663095450445982587057762461984653915886638358300412136948187825772732351672887008296308511886273250956591968864025660817442283119811189069917356803910045599765072263379221311879919965273412982460326859492061902065236094473307492509612363165806056835639584148891846621847105025976749241613166222166033544023947045411594894934202146041805512065766889832800013987708011852794799113461192354411816416893132629617657146230721449133942198506876371322335682979793569621832788457069627590109505650277252496044616870335539737039314788866886593345253438521532409689314333696432920981784668334646749609594363245442559699070497282399214099581762609816475508948188137992046139954705717262170125415107634513739751820639291235482194060057369050165084083270599217422380834179086700601804974804738456195526936568045464023274534195768317270519179538401713064463022885907034834382139356523896072810480566277469470403801768045540120703305065019495241739864227835799065921445696864124325302971070265599474054392127900755084699357942064984260350854676438117209423815910078287415009835459966788004930850239688295588863132341487340673424334051703415678886602284707190256679229912454650918503266810715383839798821765322616788446562533025590727051071439627125330218000361457616459403353875020182986343045196657288838535344764542472749519180474897614747136377301397413851276199052331127449494385219272565786781068028346996971709267672743701756811766457087690115028531023742436909775569466214315021980838628972117834355326083542961203714386586364333817648548262285566054061349342891987797254646764518551982809376468702822632586762495203167880173188318380161285961109160165104155189327486447209578563148246471961331166743647241508287164028435075556714480165869212844374659338758635386524682560308558965146040080433498816244152060244311576320419634016427856681476349384196848019487627994697147235133874850255226039874437059111952126075948387225143959285614776561997466269110668892527585297800035786791490057833854022302457331071637175590825266743750463947908900482927237802992986904110911372523847394696549108871368515859938877756425830856179494681402507931299907852919547024808826320439565139053971406045679937690382956663354012854389957671493008582578267474514655457483800224512663635084980468704871397761745321135567866811768955425869072011523410547007690573391456112993676355283975391732324168992522529227605385480846013304642815410786633095137388416719219878918781214403091541669485390509773995746940167458766729571487835708719543296132929514866650512669195253275131860652136477466756591370502887792302349799316467794148705450652335112362051238999216890131365927790068533127255784990475783743314051395480618435628143752738103265886408999099744176230382144488591570015790071209985654861746754793025099020361126306122371818632639204286299243973098694251588709741910390199058767776883403255278197715514389693757698578477578794258852600585994238853850448987697660975454331490379092103455360756207474340442743894625741197516318564429178454413277081218745506849802641515815270994321724844745017922723342761327186739352337962161234390170761099098531692940518856962255308858431503232231115420353435742329919123538818563073236342925662001071214727821792183123216495130765599823016286478500051861464826054979430002344048809638470091328532283543146686199003884946511498535102194603695321755655005892637567084748868257736414510213335804738523979224328026369600803650452392784188948070795047852539650740114966547490912903513953226963335120576857076051522042804218754402095482798128347635270052389757924840080282134595814614635286167365927270882379208320978012810277675949135736567433831997646709456048767400464478777261061420324354371035599582271941777194903478278274222402903519254195833410221127196701787248162611330786377358908825019882021137259377404832887152485044443994728200719932871935583838577931830008384708561729781663314409934311394939557469622973663545593557776984220023383414138378907172265333017231193769449404075942412513271000101323076430068313073950440054202201254615704014018581094941093925969404302188458381032483679126735976703077919355110266392101012040312966051024555609210070761225210700416409491890606186099760732053677467446863913927667359522244424414279706275591774620399892770994960740623408710834538229107244563877017116817075906301617566018898907361923187521462780569265439894779915125085094588665188630329986646307551775062209027158487374553925121942264270741677781312913734128650522979552125889545038478279335466894839314861949592431899890581135687902234927593398189400975354307492870859144989342534990831572624691829721588094662311954719265671309096760583454678663859396918754555687494628811236062733631105648302045838939223466289552309457786248337543935739970496468433829571254715768139609839742329829274776288548847524499559580985013924144610239384176597058494957293068581884268044145870996363174920675446849300934745984625676953035803266440886767592630342391310633945442736496563666232182057212296925407753405724028223542266047870663784998801550417177896106001699888124547849785018730849568579249847521414624873915869846793473080849153130036230672198412366181031424563605436569654316312865513936997731136537899646298460070128951060619853046456299329026426691441194739868722342547327078134894226645098828024739556785755778602272581027918691359309023452723294151271824886946269078386412523844982740864354605900843245021661865815881687686259042568160275007160127862255628687398240939379472654693799246906289584438747655121790890741991025218075058250451233447091012135552377486705126228954558149142263633953875311501214420013289194215149111140428055925481482006348579181475133978606762377238603073179119991660784991128292315623338228843938720080753230219499169037515254509623083865933554258294097625140030172598944484021766582040571302066779135276901809102819226369341249718298206296401677431318305781353351347658089100253904109949789031474878969450643677699062363601597324504613855368509612934725277882992686305573540626160411812849138443422994771372024469024101598472440667844258307319755567921870156021493682443659026820258293093425718080859163568581341002692193068208563666080538859733458881931326509668679706031358173340687832656846849305892607606634774815657178945043690643593190716733216857499798381928491671766405006526340334580330235706142505501427273899429419378271572401670949716388187189217430712953298883190272000518848469049083857270531564150781095183509660758990679534612406328852861946626174060687811373971321099830059632815884917871184905987099555102054804169021053192343732437454254920065353534135399371043928083636426781424055556876831894188589045981762988981693924869658100253889406288878750032920973336602563465467555316171690183309902522050794409000773363024281790055716446622043159823634204661761694719885371889394100469044925968975931678108980862163120619157465111314238388691932432200249229768937160506683097589921070930268075101184585658779198922625890205805946389425461906301957117930300775818640005284440786440399923085413493204469813802764321858050720451375289444821344419056226831145092410791552324775656942609416084551096835273136377356069630075860660893190484110558670529650961378501506726295117033152115375931117825281137784018731353168865094323187858772947943565900849783541730773019750717157982373013934914142987305274104213861301406022989895605520146619121882068238483844777134992934103211193893950309345491173457822550985792750585578574422755285118747449155195048429841662648435924737673461300392865175804802592198723929879410429658125811439305183881012038887164329970403728673774084970866451544405743500021655257425660066086936284295244595871390854367100803642878811737155222401668366845239823439941324751820354234167766246965621247746613669070338188472574911714217676419122740806430794051299813955342828247744305876588560747576035653580489034426654719050042405757804379181159115120079602450711222924418491163881232220942587075322774503406755178818503619548234831065208677897733618304269170881519403917148272870059599103849535297622005310897043703222264080925344546894239164975263218458214612098944510465571364925607314302530533216943762199167178758987166183595697614498723569454029843399017768543098651524192360368957906477436059646913837108027355950131278398005556951557821246974892557037022379170308029217327441223934609126983249798463907377454881800904648668786175408174351205499714336925381537433303684305563570563285881890084223560601528398817243886652606563092479921406332202422104312704329644748895075968286102482480508789688224628163445028577448146819145952755578033727750164236455933364143479372081846234219522345269867916725084494635158359453965335199286355773643499070861286787557352481024386821468215153268645491402436107117462664746212366447409296189065702366792737207368491255038061485233009675687451932113461730632887826288899120811845586938166587418531586056991002938854301767071106081992590636053817400078261347519679375046350499339873125391739015423406133297558590268741701703004103014535706598991971609144656753804662359821255757239367998579046734115783791516335684065853103616266432137169555894770461160707825141879402480906792522941127817514954864424869605930562916262440588004181215671287001641302834184322066964617457953427390486409393948830885376398365855831966480264532316571664752175593522035594715251086535769562655617665380292598853094898807522068961924495903345678151541779605631556225974030911820254151316271636550415380603425458674374152738292029277548668752071425986064768544297330508053234923130071606590084526997347384996032914325338304306170581257633236233757841566334733925493685381510115546260493057458594665648388040324912866929772968895530929665946370903473596117811729868936419246379461197434446016165063048855830065670754919027657324273044987821262810128400565921337211447128269508917897404373983755688048785075963671693719362090751868216947907069390766701984910277991984131027173096812968154561983464445588164623584232100420525162981810179955066260868406031991801559683653846233949803832755922966416034678684263467627384063958762206946221989787355806799246764323833892713871294339906919871229288453006024596082318477958175070810699342534826954356658939557948042644950561211310630848492088313292339183242338415753888556401442659652463532589424263029759009884451755768032592298551939009272467993157571611548602864767795486907031493455616282411406141327544209341189742168708320606949609601289728604068379935122028438996056022431346738741338428177904532540268162416656353670322364842904463748185234478947117554767671425433376086667012799820021516888468405687492021318119456067416836833917751472543538371769160921744100487208297691273537119052721230587074442158895243884047083135437398861015212106251401109597110271185516329742724981523525891846720051912669060019444626808879444024644299273966911018637832766885810205430992638486752399159278374513416575678039707112552060798452153869079498190925979574292327702034170633783764898295429325670912917710754616283479719804553585326690668353599300906475807716065690239726832851772480963799997262389369390516783659445188355619840077925572541332545163236573277028644205757619105551222692275690211155566946725221849683418938420740749896492477151991058835898272802971391460170938207668704996191217314285320267388936467142924273993957045345106818138439910880997180050901560007328766585318874127944869658724839520701707299790193983478882779373132483686398840834472519025659985737276508096088607509662535967085156097057585282280379743088827735753125577933308388675365955994212252146169234200968321674458189177413100220120902956050272266652460016147218609620440004484712447535898112588587640122296985662217521057558817636728402348353034117846561783550021759171447686984815235289102699794321799229087172275509351908181224789888920322172199734577353638459736974773809423540015756741095270439399491723405053502383187118719018451325226533302075086462784809435688995981866173613488411902792292339789587997790989196027404790816296441082305394066847600127060389633830557776964648446642596434410484498576532816033647532285463833329660781377910590525014268212492842969849968997308472771617088216180497953675018310361796082215958317814864069100591543170387923289745825457012380843767483358642589967710088456420165002436425421102013566940822387190814422967020727687894289020054574223065437469641491202283033939548795165699199112765220975414159141234739367227535968302887303012206438929511753373475600917080958699790412526133957802182021068740545731291850367602809980558515389100836602553351581681700119227302239303049693688772150863522434727983580227107550514010946237892995695024480621473449014172919079988923257610385159765188968134857414411612693327541217339905017880437840379362433395306804503011874424164848813563702921156425972224985749036604358455097773594578800034993788407975645511183955213834785205044178513841110907128706602936848187569948779381761310950485150060316079668305571803123551026079308513365527576072165213550134589220688745737781276280404258962870442607615422245493680889322496399067233296452579655456064197212388403478780864166530175698117913557789970407536615273616791546488455098648818923300534456900173171000198172336442886401593310594049985003382766822274034591533667085815898532199907004575025487082718686702379039367289862768177606303934656552886305852156141867063362506605728945261620544034237453352123569016674710655413759486910483825298084031498209547776705504027978619658034722937914280249302899802527355113830316567103397282429010604023330391555536303211968033419163412515033748120543491540598926641234995365358982305005985945911755334531891918557036319478624911596819898885077774653941719098889816862055594163989435742349024901000751403812368984769320865845139591862888179808344805553658095771269700652641528349812369286292510473000267051956150668858995854158484180200285765750894853880220853278798823892205620759667948379309580691494840211687914877611808309932426407612031355280972521543420779943230689172824112657833263759291845838253999660928163405813850701139466249365907462932585965368459378871135624044730713143526226669589342001518966566235113227802570197144044130885966639559104278193911000670774287512972074159290353495008027949846663082406291545024287782970592345120813844832645335383810804255004654333054808826462743103168304454155737530848685669685866948835393755507455200345993554584934303607657487074929774380300809620264514181085925836854413703582094997382323542196886559161494821650707677950800100894169642844902630457276595366204148286281958230401243841945516085784331878751511315613923798624634327727505757829856695303940750428687523796755451626027572479640958056703096318410675697015209175561065556576609758918417095473096639894402112622987387289914086420111747304335844308318008075828202943616966665200796099643853936591645838929018131440415922320341942351406802119327675170760089248887158788087940839278798938752060198960192365745104210758041043489844397790427598863352482130274811137422904166261225255224011973582599294906744322320115554683921572055308974224068414876558777753118562279827195811911458837063970950965948996643620092496033784201009452000886273982960345452288379773950563868313236927193818883858896130852066708685192712070816228902644200239536248400114142984156326926988144287731756465866467573516564781176455764726724971254609613269976794490888082253619925351400870948952719042672328019569480983866752401132235634919676104740759977051779067764226493684492852836871829125922107759440848390966705627552278530615614935767689522709461247458446016356899002959106773137629359842649941981836002954018492452959823796690574548633571655058499262765155440749888150016336172729878462155573177192346860596232973286398375057495600848644015227028985304206259371383347042475263334466786492718212661994761864833476791035759669654244467621266254484089723320226475354959652677053531858944148778210798406881853727010840624069399281851936205762849592807246843042105893368388793416653753786758857466767144801238293242502005404446057242857428206328185996820718932927984589403014031782372200803125971131750211941373858129036165843578136891584779205945247743711078246289498713279487704706858497030290694089989492140478782036607356125096247156448146660546536727542434340441700021821099769679258501722055918187592594286226150328808549887863331246594545508550959049836724264395773551083916571229470737582141190350169595860159130933144067227053416438644474116211475636591353811753106584539838047492076717705961393338554682136648889626393174074925289191725344346308157065077172231168189318432947986462628431886082316569701034299468807145001678353633831973690674676165097914963723496171867572114861136966858552766519896992034630702589984715908488949135405806744743755965741221292843442993188439843449747735124119372309416058724235238698409949997866475291685028012072279693114524819794587999098400302273261931378693322634252517605506364593791889616928089110933631693021534574075111920253023717024433604901449929388821669430654560970745706046501064475460002770060415220838561777877560365268675180300692593409847459437468381589292733238573851027228472568967491380902592643070158763198026914236085184024505552207377216594644096089418540921962331143868430558492182205615280231929532636489573878906356348333144633655859468835723366652138400573765083789012510685174909866824497121887330102355530026718112436335634483993809168322994495084429607592220957018147940738035964972453149903604706273260446571670702370415938496479238964051229693687576139115948414569365233745516663275052211798859726182745926534151940703629924527573857161328190932747148495462083281354776956616566115565722828353219368168262767040295902473386320269157258182957707759183098993429307043417106996675954774540576071963772808681748509892263377278531642943529144466136460837283398178723026503394830000684684936480756689935337265547556243240609518011935689854723858602033735464207737658817782018398628592694834206105006538005741414890913682171491397868057909473520070098266294475317186560213671062123650609160881855036591625377844800698069677960754212178833888992250053970776765189125722324600779952449991237465955675756216428905728019007415132913964738904661146792441891989101918467127672368687849267252168240367731589206330597837524417631766161457476489471813933231341845090213840812847946555200696075291462336103723542450948037430330367137074140806262328610472972213496281053737879089629762115123758802479359192119062226507031617394595334543723274602334853858141433322311489243920562080882547690478667058738671682094849717025385310790089005194830964177167819502041016211246239865175420682616716368901851587466161527760379837017543275633577232759400863470913350935974949919350720550660132107185148804100977943376433641977128885343787039116427896471047083858909035506235465443296282611324150857966355856299969215905546299217301335396306641432072826635272354785831559903840403830053633758323040798361464475330221288935365593174031638781816163554171418463148815761646170734051445485046880077764603512591028314025314050403207900702430795221113964614070949168586248608703161973391494402690786688031860695263239131154608075847570257130682753807123951979937033643596899227293747612919694937081707378798153902703972648192431235483261506112965954656937671553567008879545249421590056235032430378045520960444578849988470702930057577197851556007513651075108565987210413116256935118862905425634522614070811790531886965927996989651587923099209810027851134068822313915339714146701120792013475226686979516263973329339443638702713611008279915784887253010070852674142930568533402887889219500634557540977420641117215476058455144827523341504666952120087030204079524048050108283593864602402496670350078271772262060836382804847471477727836524671157921034322495759793359465214947041347211629221264866928880751456488868361384678121643277432571439480506877516956165023024836947684426243680565862229903254681444445704247281675878418717311088209746361669743098932199858250672677341974613017999183962039878855988838084867532146007417471693812521424047732115527625447674401141834921392413596825428851007186908531114382181227330257441375978275461265560117163639602809213714295527140111701892813726409609115386815857614664345431784749973357596546958354284372988029236850231818803862351635711185574844237015681335847753478850666524261321842872344663760278033371471568159090195198962275335736641168190151990134877094925108467537630329649009521896824101652501359177590504339562245641235575182317053192805099625987031995134880387226167696351887233205739204582861759129798850484858537806947910443317600702024252647685699329796921302228369719846310048455107015735180028446421420188217429495042840908853735461828139338366068254828136294882070419493673711700592163329848683276680590411592516167535991920334935983632942557717733013966061739336667111972453598471272457546654929092618205498094414117116353984189567175090466002395144745435530247666177757915859940462185938565683783556607243611786883486568142902628743765091894861205733130783374589846295092893660225723889885449125740211863019788242860304568431801887475570727292361597720259210424644108314135896526022537159808951067377228407810580704283176258008851445124664593848470353657386745541566668509650369028829669650445098253163744754143409665387671734823342034169292364340660702720944978211510075590423052698061737576338311652133177661673474195132371084126340184544429457794932330247722996698299112468642999346569616752177953459260304082807077947830949952404348511126780482012890651084414860099546525413387863752322012107834549633015832100354867760223358683702822418643879282678955429174017879450173961518201531326779838966534820991181263242303968449509429978478738001994757214797753694900522103720362626130377077395305466445636317735102453519506205043035443911913912122726516917622793614219575204122850441348770306385184027262909628394567667659317659656738208435455176599649202059096252341324084667442540590098416425522700911059661891605801589487510596244290416117579350411410825295572121092740272309257650953999692716851236131809277574683672698634217416804561557506454851511882085497442114816642531192043840394756122013624174655510325130582381549876442667720829420261695017617743307007994362632197494213734709104476593394945213557118204995077478740256142008437531451207572997838828740111024377576049285307119022509036264114991762475458847814185147837505665899500749708010825336954180992318890860705510602690182282340137612560560136755546975254150973098691184937390127529762727056350027376876418633228990538047947846007339208906928304895161731451064160293206807938155841723197169443271175830087147363806673208667451691080562327104584620542816271597028700114717284223584926560191368417547185310742704436695063208152020691186049735415907012460806584142057782280601244010360371209119991807176885297815497333716170753567255319558972683462303530066932868665571568704371295001868231434700311873065772629659555950029667911136703408160883387324608254323550885708551420000331493040869850630247787767945034950520053660541083262282570372906489480225851295881664052015018282867037451590310485861723867731139018447752757072922650680964847735206429990425049809096388916125683600087339760315662777148478326249603762286721154007706222119777509089369001049114722645160960922719604971222658454245131371302167212643241744974152678377149433818248407115326547830366537892616826666054038139468742179863481360181996175700571635943217158479254375756490040298917961086244987769807563181738560968085860276801229409303312152705690346022771742504957226539458219024957420691933898158255081178830701715200317251983559025880948373415687482676833770220501278802420475736565820161937578598624694994553832152479485505745355499019464555850278515426910449285381115716735356022512379432058328567317876696468270760281569942121567364654032116626366318220844587494330536630399581084463572191149328361067761569188031214353646856493519795832066092755538384614579377423966352357169920835486992160766624743016098513975166862407425045569127839019000148524055071986260502396728442927224311595120166506478820250466039127786242832584311762670583270127133107890582402233368175492075328477955203459715576611539044647728737218524465598545306585103955701693685292097659096155489950503699740381510494616536517132341856028308104026483297838818579432061417651034079201166557784247515642474513144923509985731952382201649912140720384676326445683092816333779540600150724497604786990885354886813800216598277364878750321271597201391098151069216887896887340852421006273954124589669575482041748959111376337309326987260268567439566769015032338087645991534404739519004687538998669137509581856198983100577597445834730882307400705714562609965863276778940540409754834857530247970651267605157443644439221239180262263920115854515477643325574529867322835364462953452374177968882065214351649413209216339788541279913018028901178641529181042923845796940671053600542898052779582044274578660594015467736776402806919133433229257422421660338296410869710363084703041442618348104553158445812910810276279356889095013933817900531479122487396456116825325738128460549549623036723119252354618769097189582153434371047765226860052005926845850752948292613810195450388612225765808127028830094704742601447033998795412429828071096874483323310519614135507422127299207008908847493138754351309290893289582839826586817057923306466612755462258073511991809486511648441172168095955683776066826775324194213211948796119266433585103478046843111998291928631344747628859981169036062388281398117201265955789802998719385023334119182435847343385379010992779272585058125362769591414671430832001929406648581749818617871136502075814020273159772759244514918779767951797783170079352269808582180846737395931989592059751600157606937764507856528634317093855913672356453891977276956033286371679581899586930015173376591572169386763675810364539235941265010790730896007589361636284392459166856529943029635282799761046688049091083486534266742361779340988356512480384824805310221080337071500241482388387242835026623346286168283504302271585609203974978225646014992581306781233771342243813156886549649810067733558306444668660622917370400400573786483560635874517553308394510227676201021318467693190545180538507239237812174001299037998294629575097508563695909454998423661096977987219072039369642998688688054645354957203238247485215997781183344626904766343588466725044007148407119020736113905155691158032970678174310264756074341901920312738448038747309443806157632495265876417431356620269949616392629165616564993621809822804647926107694174731767861811441069465092799959804324538339218894860433493066011027984865242899460491753488383911390921832021315879087304829550557667546363836088919558075026855156658962901710308794198308850814471283982437528195111545134622226315819986683803371807834489236463852723343119568196550636746980973051726061549159637252939277282122094944773856479220104813971488564581439157692913339748490281208166442581789700754631892198826529656942163041578338114561947243513489891303610730733157659665872506845605264520710267816052355716124748820577970866901240062244835467545556520107623043064575092290287236269637762061815553955654332448279431852541908732267235104084905557518439931999724586636791824264737002834509705577248611923230971553830398413237071517608473441445607035827695780292974125414637109917652439728898853762960843713133607357038829469341967213945721742642815371218475894645035260433885208932344589342447133301336032036837653564544961669592500559731298801837632453929348683843716319293985649394952714192716033513891306505460813470446073244579964108103112037729179828184134957898934765621592565706124808349778227853841397870858905238564896907297043135162655773158863335618213630589111145679841453252624496138726958516022669509760296298455666849705413990202779743396255243150859708045538492706829049252674421703507050431444563876341481906479510990402379588962952954091925781226181273891320215580531768236130661230254394670224351321426467179662064323616344760201519300718826656725851351827869390752798621040014210448398911242320279903828120376254547226293495188118931374879516447724332882632044348309605913986528952638324094751420874826119467243942411435867792075846550040122425125950266916052869726233751812594454176596685792955165291592441484356924361472380049322891487982195633643461328295395441845870846725661066252531227025531594298785601721115817827381537277287304132744075828844636887592300091862283550306694443529038771845660409500344929386306061544107681348079336709775362115593070626516750536810213302710974047172261474950100421972039092553757950915553436351516165937991137222669416911534756867115215554843448780512285929356210618633415757096018461209048541849108174425785153880963210714973738721765341590991927055641168840204489347703698532991179412777093753154540018883918098695712263181877063204011613309308739005140534038558355944393935197989895633121034960483230809648475021234831467627158919434565541119600562917337467392556247687289246691614148123279851991818707063808364923412410945863863396852590606841690648115829775025626084504476431160568342201563271742476446861172906308947630268514622115225299932260504600687472144352148275355736486465136522954721233336620166786718221944597000980823756630867524422083422361110666459998011854332141527977889213090779147603492682878658347416709903499985853880122607439930326890155241017580328013172294650024536835384288787216236375405429379801984675031205880130716499187851573575762355215235702109541189267615155939166932165504281718238223283512736309922213333496341085256503615149348060244466191117850372911501301656552442682854910345362991849782389328566134420061572577647408464926877004882009683550512648368228805085146774737620466200862156918996281115761373451452190836734778870106240212447796301143886284492052403723336098884037101479023164480153992404951375922432910582969301374157078763912440852130854871449010776757701616279832448589262499322040345372633290783865314772064607646846324700876115923045156682019259230158053647994701639597725125118090417723162291834108374415869876332130122044282056726516606927456769267683092076453071474981816893818441092634455982432175934131608956818179472702901484929314564880758379514344312331107658779801282532122323545417137362734073445648292869504430779982460272585049292169492999057287937829655057046627453740037359925300914530977965345014688092564854186410370518283011333178246879833343360494463783349820683444255207913620127347295508718955903392352317618428726495964580457955039454110689449218438225264230223789576769405702448039950685693271817554494044654278729732424252627838408745750917202054670200406138281508321922294946978636535857590394180059861017774750054796996303982183188294591661458708594906303270506128124411633203800540440802602417564219622185519680695041400492039799293456355313940958464693121687838416122034778295844692055536130297686618977096137801277579634638939460999819529547490016139423005438482635719340137190858574015205726116753078573750273014216378273213355682433348590709246062900858851948613214279999868877258051446568165597610350276804553015781320128526432040466913745163341548144150603150144965026978704083734478976666920422226584890851064987110227212963814420799603738147674109005554661786907567245113360937331652647325513941371168175843711761785819478152993575100647639466403215766568017080462660171820423572031088381660234666332903038031354034171088842323418479106156502967683372304677133706336238196889552149438281865697732959328410110612438362470143765912695355612767756462889587822702731110672130968489069531698073770749322414473866286774659151566044483876334281972342977062533845101581829324852352920883042608817379030221829680194276090724740589563932257930664539196765749438536042856442283873066681296430475051999217466184631038309922220011853655472639966640582122121828771064041934130055668414014516681091010622988380034889242574485056733724963630198494312802710531867151151700173773047361966317839608366760773206258595912265217688792418231533362247978092475173065432212166603299573167645496137550792013510122189523987019423938627226686542309654565498136517126092636125402771141327412250164817294803302239414378422933496395759590772089537074051963015111401971469507006695279402961338169109770958796619828187938916324373775290547217492990937552153814585435985962459079000674666343509137044430561034452528367175712938684472693932388979055886935302163342975576250473858232872123970181346772040344108715052022627711238364797603063087715893389634210019989281443676371075722522541306197668323422953775608670344476024994659181639648687343316920042266350262417509965113826590341475323654090303167264997093832497671054200924943633277646930417496065862921415200772988454863610020639914439987932572124446701367961628770360928966922569908720817958629951003685398974484732672880998251530033842309046997492524609506403048170132853858234502282718577522540839457433563155388341343268946331962845260628192070756981528264470878935389654028315963261736582834518989515764685892369142606719616397940702066283980084734520366771845440093827845331081300682515066151643994179478481392373867351826396957248837984237829565222636152969350405589488710294665493554152015567317385587622569526312425588195459557731485870308151354617959604255477002905554850341248217832982865306767829294915789011997930676530779323881732341816613372543621557022130839570118250126810634167484444641495713713937079450629020219115932661233769946951410951155364651435298695794425651929265637875015288539462568985725470464101159607443192921844604736228674300535562412683829346443250810564059185913585120525181665507126848429244096364739584845637793123882796649669626495130956170718682379149720665349906427140290952804237806646186400559497982337527656524082642589067316728904904198640526227873931278178759911071751601062672840101478691369402931210281443885314451093951709969289914108779797708932267478258604804259255150917056594145780221445398749853365734881890866609742598165070713267103157857175624319191317230811201432865573726221647158115517301601865509697614957643120459945297541815201106299576371991796929364704619497379020743519013092162538092523057739185721037902214682510464151133208613129492848009240915689597102561084605695368400538964960207587267433915254395898268160390921174711429879076807897767393272000447257136042592904553017715491725552829857374032777563353895662385362700930059448724422764092011598987468985614246175127990251192349120174908284980500115021021869281584480815872615226408269074396749728470485415432345851779218397055802115497393411259859451685601167591027369551565336359399661524697149928867282240631456274710116763656027198339164797457542630476139964473817798330422929921062638998663726572988854879896424118080471550382120279439523469722320779065640817506612436412426812455983199308850540307049994799025038906629159638794178366452148276090243481583224301003437347130910331896647062924635145167644111784980151618131629100660468655468914769530104148061544011130728298796588676266139080701451164316972079052556416539638056451362671114813302345041433541705699813339491788272422684451002034797464131891322784769073887652750390451655883746277104505286541062403251275693286361842531480233594870050127477286390587505996846665455089012886007632591297838440830308889385994658648361264572522492792701496016487053248724303829259479324849618852679846428776553969332472623861281796622476687850539903576026858292657050493008226653908719577748539233024808884223758546770987613187559274154113419196606182241281745378032700038367090530769241414223500855435824200767065908286383719936378419991522563756938367883546645713481014919449694966169115738509172271450015797558239269202624669597840041057412631214498221315774058710272883731795493419614519360032008477246620895666830938052171379822503120510913744694964505649531213348305043701400043051880800349225398627586463992618606925651576108784444711775681430233302040598121244273071682748644794078753032069505334081716910395522361674150750268908324855431555853434864096146284982778944849117149643416270281326890785126898259448507042291202766038131136242009968345874707362931108475483421952029987265622807169869347342982668589156699400288241573675621288961463985792558082710809630928992084295244086317778832503631825963719729670334267839659753572692727814928976351131134761482384194801509003862304732361846354321072818013092148004208498490215774262635486494383615311561141639740600369876149421197639285226829998278300657796273748079065163392361647992975007643518421984357916118350409200271051736414729725896919101453254770164669249517050465508268606611871014675235316042737098785774518361055691084902224884895298117314062349648411208705067103794677320541774348076502909825877771350578240242415873555990611239032691125882296034592432974447595794385325150856991390048366481664246406214972354253290549482134987348369914944183924056833638847407179620230494447023448712826785087523663814761985281363958765334163217170185472665486377851402420817943454698504037824877834446098011153748524941781433397761657964988340518918594590551179869227356223841453557138361041230364086099457776170974508823650203200201219438255575874229704614232116581194982493697021165849622114931439589024330843001188049635267013165116252503444391644068989392227273077220563488585796816425503417504772336463797659329068584946069076989103358345706690559506228960079099062222796893617990205572470622786856007574150082781032614336166083765127516844805899988484451939003904279199987071500739483461899634979503324936326031024430615115601093160249266127059076685538362173645934546495192684197850072015825892543965988014440747097958407589652087349627011138727965065609292669835144694850516206799458889801151363190865885840581280641414304606006185458767803248699514867788857484653003464941500942507224607571168632267377876709053053835267918385934228990229363956222239984843473552416915613620948124297835643426524340879434746838370464956835791505162798180200851460108011262295302659213310383008340388499402755509307371417507966905806668070336437118897444778668066133267804803770903782312178853552441163841076382103068103106917083114501119164826722030200521130612921347467241625948592855634642773570204722326787354501620612843405085993696241333967743354768454820876239598846329963829805675909630698853578311171458066595500690942853728664359816587530447424945514258289433164767122288279239887062354462136421617755811849262169942820647278994783243650998051823855602973625417103634453440048105191762565598596017405073676319609080135730250464735531243179851085541888219386159404277415489114153097873208506412517090657807423363554775065546082340426775948442572509718162657675971520095671118005950155414547799785320676391403114261591582313240381775281272669431779765440082556350781097025886133175418114144571703319366955960975941362900646653361171696172602743616981136112996316848774281445920603975634960453143144680501156273140699278907619114120079919654433195304980386626138579380599209186297967810303762155289025779381379081038301700425959092039225961176442009416129112565431650475720368002740157117459415288920805789766736206864251063309917520914591258609092956726457264115453237196234479387998805758697283185096217656400428574192213962829480858621279813224697772281224257668655908605126765965949446358382980434248313086574435155959167816436612036909573105082900911476788572238095684280636109364098636481600355545682318558110348345097503630338598131203762025366983705678008512767966751416109075179925297206934040166447514740927780483144986203040974231305979619236470455114662595660921384865926640460674595303650390378479574907008714412125857407499621632326043125701760397947179949891919129844016335142437163950593858979916078486504389561730437081158268517852511990443695679568448065945131383633798419733845786027335155680611885115862875399923159145186831405902266115499288368144463641870651518661107966229834187812945656740841424185988678674623557802845835299449051987535804730362530866028967839064344633308951485021322926321577332033210433842999319261120565833070643552027776169671432489188685277065636283180848139371754357582752795014476940527248699021612470307200105006636611915427269957785494991168401155381495501058970558790984206119122541274004263750600449683746796720358235060404156202570083006258224456681986238332557427191989205590987844482185746530130310999598941851622977159146556819739373935592156290533172611050495013230410712322238848932476948888851253026086340948059926774046175361268522599229702034286893646081012246398107475158011927319261565382852797329258407929921813054108070378745399144650578597297744880936354202392090386417513942663531556773947136977008644327065871532932315189855223508927900300100573687542614024490538901815850960733149186417554316025884453724201911315572549849044046714280733817709400484734344184491706016030129843850298397583136281833174380508182575599684534990690520648143128170618455325882268541891897860978566038481393505821967192081728751083927783462125657163568515355625589158798203841732056506538426356794700190416613289413891455239893164018202581031324341604329499325072176942841192006619484703335871804062487227265224741578148855123961300717856160844348596228403852958999242037683739679588981277725698361763280857396314080328118892931872441462457915052426133096832574241265140699436686206418279298777277752770528050444481919316394261055990622466358246010197435279220027762438213140949019436955032583419768277657932885808944900415581194135051233605566155639145526778041413621432286532826855199456580339906849876959371051644569228203379569367761628879975652997356365049074250262186561450352390788664425556148903155619449695201898734875371097439885863610823097653916262179486515110270462700086859295017832966862106516113578462731476410889211328866146494883045938938083248179546468013719399155571475308419545167983300505796773673117808111727114003019414612767634213448816202021674739807059886677597010201017441376006947925588191314605211409673537917915915761169697528971199521463639659928593240534818076268948219325161785832954900539619836056980257523412939713711048987796108439053480992818022616563108828949255673306307140437918740906736828226293384208205672631328555872827176383435251247611376481736262736081743764301143738845225211055037384045002361514600625509766513630278563352107121227928240352742647798892917293288865852236589671472524182638721640014273323149043207294693512634067200322158549537504287258330560488860180320402963669521022893735643232353861194597233469805978538087056569781641309737130116308792199758224858159609377192723456325274866054676033015532383005449559053977570850833183001027905949988587286615216844408715211099824479568251479362622128620588476097218705844463079221312726533989394204791205913196461012151373818392992132128285788858100813888520770954486340706041307419945797242149818322428025805316195442941055734517819685385951654377421516447818087491833498419278345344879827416909504394257999598121123780546333825164723505427531378609359065866891787181623063321563230393428374102445358084158254171514803483653504684007988546401444760781049803399404145422249106496628324027926658861036173673501095215492474126129729676987441992311683921251384287539116464974299035556574289288866546332385089020821530002735293900175042608464053105276235261067775989181476551857366127711637752004882744281664163492618756454513317708751304786390109684430315199874462538548230689179445219134297175942906759824128544561260526130543163345403540288857154902180537175770186775348653043166234684447882101399403448045697107782625077976878935936198602073361828804870480735002699660333285168827537944012383651625407294396856612062173245328823983592975325674991854454316990689720581215877630120567912380939771798797570908002596071018289996553236402495994619312717400809069190014303244236107597658934216796002378532450084448724084137523678473277861066352548064492870944490356342948438664121937379928925975377948080701391643718023374210698079595905821855795251650453443764502253208022002830104265664046565005261815086779025147267211104016011653386539506868387129391025178808372735401941633030557783407251746734905595338903980154045969705665730348229075597395653010328777527309110286059825536909992505214343628384435998313965169178867741075789810116046010867625275891002798844169580394690368029696761586463826117011699803165764536198289143772647820790098748502767079017299445778795646834474204060532908807495013894332296273195428841599239684462573150943574362519884943278953073698404015810267587907250608384972328984024937994020709104358733623641667627164681845563051996539149747847168388108048203337446359278186795243402717558559642347030869474162975731358134982976153400851487829761265298681499512497959753099472851249161280986903380037844079615614427565688669635923285207601643375009817043986103587177365370259797850266336736827500076832663568778299933491916173154629872950938964816896226445426155489937701545097644541294315845979760031662549948371887553732275790573089643485087049587978872786872281477882523767185142976673692251267595155831198437840059172989995422834285935768818653793160980905186240272231317934276279443190249400342895312724118526758230059227453287616574346726835725069720009256395973400410723096966675755648198016541943626703414029271229273754199879754773816256519739791250950305308565402905598354302065345518514947488507099536257592396175674851060852039263639894803828817392038371461750137212546155441496092236311389183685025732961260471673774798256167129954804102136946721131334255885434042704008930404805469789316398431747604674504477415585726087276052339067812382673223698612665212533284260318827807270249658671201474844635152804076858261967582137354985127526522780538095639693427278412939488332812769157458520766476417975815525068025216391787883813379616631275866133147446141031667979185592676452533870380641512715391030528634808332562909888333243959016888122767079044616923221977084649260338587248769259647826637513016544102503995488362603811923150715986570949140793791383608709937053181587955111674998673655536369988083249933671031875275744349728878658155474683808148395574526366003665365299668964728935672046613445064359734580400068248852551622622707434363962509826748098618819829530860227197164126872433981140166339468129513903872617882717116182518830143918118679524848035127620018747964362913074319954062593556673961907354646672422344996181096940985354069266693336151433990811545610218876884140509906559562078478834815114370950446671339100130745715653114915387434156032541525631457662862776538866357409138034723940368192336527668545750981336995567797000335697047484876131249310386166536203683974984419876495883468066567891392593685937732231013192635812896007482448357082498452390806907021931327748901621464093557860340449677039700866030695648233087116663424314403707476853881489400930031433880914585772606908831034790000940742784579463435458352131100517077844876711515036683063043062931690030444642980978090413191575409456519483308619669620343852764494655781518898782821017508336957387776020138042196971598417956829479755413800557307673817339362780802160942659841659492497526181905227592060541470822822642686174527419246118269133161625243201778568214295332091143273717770865389957926405554866741339612935257188300801729249573168262503695322759262708041290052024842809662180278175003979350333756905715273445470424384466432258691770222473832128609659521187515093483377926602235349162191701326051147963881002448501159104154476566506713642361398315684346848503084614417010347371405135951198897272313306316794560065791605002188446643056867169330934529251035577068930553916196749985718649127079425042670313192748773208246845605109581828658144588742825125485278239730965701818166446246450847842337525426165845860874492929804137400632624713454315392551790709117532191520223574470216810771669431084200224345358486690414787714816355866856736398144907373415290158449282555487094884407862287915328313214876674434126566624533268265289873359867819983519215237826575814429436634433446271730233442572602253345181290486341770935210342708380197048128579727937841385453129395651396157803550192459143791227520163792308917690306812956832288565312680251761044259257277855386034718856368136506764203698455002760752310489556168342114870954566798845583067611789667473232387325074685001047438864973400459419153846950871563858920744889262904933437062915162715471333824498307012524953783661542960771008685322242279660908642818196171704226000655144479603654357425766756741227166413530436973270076147169931472352823129705618288358853727729778819386119492121613170341492297879908116546628655204520769184134283910583707615614060818532679110131591001000705724089357506931372994652533638455408106161502764961982273150478173755113613419043543119396634233816001580091428298181294598055758904837643737508572947077349926111298096408354881138811132117726788363084570180171583295904145009110918371641552084724559851388893888364773523833873459904595011882981083578237224103159291773511283443803423325538825302531424087194404589588385449314057107723585336360863772499538708845737846543182878264556771922174145677540584324042411182595690861375225667194527947441883558854133492150033148685671223869305813875972710393587518506153177414852490254449343933471107409568846017725210856302356772119222918197306823527382426887436447748238896769870355151138747321234097222013289014668635446964710469395997281113182987128641824460948784601699163025367234372744622501913726555948095392810156072139974178962562100267993397534145805396047871329126610721920208684724079571578165561651872213782720704805711040039070935360429649825540318847316046218988609701830559674771135535303490585746406328585492145096625244617109098641403696919152771354792338540692894877781763873634039884063453486771297054470259701011672814765529212502881007771762361441920204389967926661985678009608669876248269019420980427714006780692529403263992526492808232868070800166367176991187193759194218147268067019714144375071834212085630791576283878369257282705126193100132379029785337441809821377782031749076086011222305488053112870972325931290994280351575585633881979882031107939208473361087973494942677173738405771478096515718429254823072043715325074978820084939759981926307947361984499836949130880764335799166335677847689178196091864613162048993759326301557380945420028124481283024408961141032449759377259029226507318115528299347065822072203677935904328741702886349505605752971694724898122309890666108965372427222684880870676605536981502102419443421004849946541912975381719082445391553183258782852570506219196883765208858366139813842940068973124786359753825847847485404206660853719936474664763417136198209883163359794715481502190835071277247283468452737240752936165216593261189676164125653930796687528581622150719447617857133630287220715048799653847418139457939891598596154316275047474947211615580131665702931221374888060791917131270277284784049951418525095597717987172526321111308183649725035899989202496908107987926040055595026074681034743599910638463719242320892853273219608497441549720601347619209207025318190696814811079174381009734759290799115450848988589466156683947987804258623653776727770734783481634643707460706342666208533177756021794877440953720874152432302840901871146540999029879141813736498289491030850275258634478543203300507242522740176063391921557791848645708464376464771373240411433202999982494502185761490015303040673805622532419380095922194583491674545606529581318978071820567728964561274274914680542445367719963846391806949090403820081058421436862911736722854810385016528313267228501444070323804399697093337689115745103494927431404238615674097148546419333219431991327471935663682288622424268147831769684862162800274417803468258987477866895214774054768557001584957162941879534527955082080423076947241883678772624409980796047807185482214868762896257162972663050488000568269349929679755781538715157129353244300446047374332199243725603518445999260777299146295506175829872136477654977152139858134439194516491898887673608079887098638393689731688171840507402042990071891626359363657771731478922514664001675478518845135359082689315644772161586922131112275215785289410981525539169247748403118627636800891336912767515648135602630628514801271234053555167112351684143067929368106553071788286504067621631222013635848805070929855785493561390251460558466216653738383100470687067811853647573921225429540421003469761361540794921910329319647002216167155278991047321029473054966183586309810575924212272196193713923936556914138284238151990912099589262700289220609971147689500134375359942145264552230070859040163680804328369632743628507483205153782716254057941237599074820147102401049120368227605052197087265130754138419999815319266716248694148727472357372759549571532850609817245676728254258134832179152887903397056357550557225439630402980234282430987139387563585950259855362564982020296220179437403733511238827862177304117473355774035275159778014576283557803054372615071296408539636747984327499735385091814198117575559492377908601334489630628137386229132564434760468891911828337172488103099431047066738628576850122084187184698188595673414242403740477788782004820525401307556817516168191907610120896605542871088034452509119093075209493417770211623426123215384491917535022893305364110225062449104994217173339771407086589141926141537327052792119891887041762432372378102782778740896930289980177733649351998172127885609273184073532403497308802116700398581028251554252749216498790488713335238354262517539693153695776203079243060405393709206434796771893902175895337435138424322262310589308292042084693764121961020967560336777101680599719387183811371703830858798193386286025853507858178542403143181803317933797796694428734059788387302333510106756496840329496717876204797757515383744743030244167777604388915074836485567342429645358575376591016854506784242089630177737075957891620250610198283745550049712207730758084149136071382470029984003296562039171107421336618034432267985796733356421184715425203260388434032025235561838307050390706737317381263208295677379310258883061908004258297876498815955210539715867060126822001101461231948688435399592424410059658498521128597039047801837657743140729328959753147419617896560396849777570523851994789295975951529656789285246775519580008009579402983886996484895678766518986473555851318060046106513290905548634267558440776453249798531098615870718759675825694655497602799239699071928010014736636461468319466633209802814697901302701819699625404567757112593050248194592696277253393499184563860869095679322859789534716336079904332817792605911779754860474000119352112446359239852162247320806612100832633633143774177413093119473694830104172406142013636959602702094310925935108060092422396780639110783677907698943442377103594678906849057824594574953161524393594487028496923656822433359957246884337926816637506345725297949370525631948977389543878976941782059518077929134925532988361618989027982111118648693048963654625918712697624175024625196247774445802263997124648744211264127472564164809612324682136271868095668574046063592770088982002497807295693956957838284952824716367421289697852387511785255669981764367786978344269832055073390149771210690064592158160654941272655836074414556654082619478325551566282705730824718152993860392420045866906344968804714062734041838807038389213647461602727928948963632220778349655707535675676685289271659622742573160298064686702523305996094754751732795634611976501735582876758882783013876630141175044998660093680076997977699479220349593766188599506331946950261713898225466601060317914519528457509721039671416351125869641617354079809696801911217299089343135371965390432195549423064032917315801431408513237860843221414924669794965223465083713704708712091584188009428866515795810700475296566805489657971583621604326013852757306968681647228462240687186496120606025752510839046551596777456834930379855063040117743463975134951473658150511125374343461801327678259093972246067774071761691613851391272649008300804906018137068770945576171116053630648637963686252586166406735849896795205348263365161916156354538584155973152147527531182424730274959180648013415255003090344275220429605116294865715407770261235918267137226157460979381620988522630204935429063708512020256722700305867794202345446347180897938832977286121609753134580061366836528033454210165957865450661618943521922165170387639618581952211224702034213016688809213396894810878691860849923612523599839649364759851456272235377601659977342321286991958156090024329064882241918412155623992643296894410805565663131918466089389050100434644420581886951730855875912612667006012030400582683792794878759228694668799132464966323861108711474921637276797436561531184922716739326304842015260229294571152231125433256262409573975911343110017062952073822033867859805441291943963587183013448364109615676629257785349739514135524840611148455417950879919883544156740163085348138128313773577875079939843448830592407162849722928911855943500523637588275439894090811487189975836358929518894168348445987551847971267570504510518508684233145702687994003073508886791029686348158333378912227436394254020121498529519981775940915455680198146892598841242433710825857127854423376597762888516257008539770820703509292475612823158175646372731298452249416677687690259000828121627898133600355507178812005345571928752617450816117102082003177916762340105824721532498636371325403280853507639641323521337872860062474030104000903593917530849252574343174732519806808448504429733818394115591897017521214494038953291830323619015882301841722076207608197898283536629085483875975807518821427319964224325524672460126434036623467345493354569601807584130077180725627029525826262116433661001035491833697081440537867964276194618306592712935663208437750528870910209617486129548904960253891685828823570421319366221171451960461049139284582237040052276364183689505103097490296033203213711470507416598648631346893221727625017956187416629129124723977772931116097054650454271521363103293700919851761000788004646907442443846408162707940578412929761197897055290650095924805457369794412879615411044094073240407548958503538315179964498827452541641459234990478440682290314685948720629686119248608932184167719013759416374831081932234229501128420753835700374493927408565291247669450746320766091110615227048380975495678672960452065323926934048391853465185556227030654366209228345580314285044304589277104386496746780804110867157389829722441242486202984967954702426173482593121110798062187963386370842900381864723211738449015429974622864839530997117085523153877158228125070282788852404032261863741816200683385636286529652055201592704862767874856845261806252980998112926443791609401621569063996310624320699673989554870441476763483812512937661268720065117885847183855132150527172488453076612790455000286601214746422968896679087399411870299837123530676952773287360906236639157078288656606448382599862332667458554533094241925105827090795499324862327823866617940424227182419074811468499342836017693829397707225232108767607932461808897233360422859179555646953647136106379596266200484936729000582472405812761177599776249207793405408011318296387356613443419100324251250669706527151455025987361130667182934310256721161625970470331400993505309559833358511101846514353515759696186651947126818053668496272139009016274807376713416023112062913791688937715416193792632077954741212255401639838303973357444616967866997042127882851572702473310231244433722740378529114610009688447928329665684654026008569005788183846420032806595724490028437014937895905806501048024074754080024103863619422339305336101583858729162595194199536568143657351073779253166066580347041617788009634126645734844078525920398553732729325993679929303377572091741619140005038490707861841046204641450083822332369606759112470772327822537892532604035037086885515634517819257292313665901433870915067961993391482383173739338033262659689287935990970869473537561933717886103717638237555560334530115375036851582235385811167967724776768715040867187506390359161206515432763247603727231178655864895687410545977696256473197680419847528409715927735170781254183171548131693701487222457410487460318606501410746977475947866887194901025722905577881092718528394092409119602874268765630825641765798082144417763760741724202497299376174773452240812589003469266833396132128583529005589983396148672064928479704259931120777258361604575366152828330705814402051693357995440740342199401971484097248809779263754220888473628941464406118799917579049660520709825772722062448021249299519509971902071450380702912117947965675852736770247936658644766731742445787736287158542691799438868104478537180450722456360669573189193333673372588187579943001443719511586154483963473295326793201032847220548537973514519980099735501404332354597915310762081714652180910425504858075720969073761751657369083337380872588155742304229270489074033686373507263299746857864142214584296084348663578205319253486563609077470267836224220342310828574248956565322082088235560335490303360184262138271388112521023316867392823156616613046422923833739738312043852459894540564567560301969012233105812029945063915034831375225192477514833875669694137391492694237240640081089360986187648874734156698546620461372126300764432434200139244377838989409967673033400561130522016680551336038766501450121673165671120744274067861708226757685808233692699280382473641125816544170486092983936783935780031840343624438954701481699515253534909660957212278026784202734315347719730597303120491620335291970529264953950995470283669614748866702930889856059210416563948416643199309840801206744571467733510832620218930450030439948343482158759521434848226940543789066803732025151988272129062083170917705473132819267180463732701097876089046482101932536120715652218532771077319742218528489111570698611681180084533317583142637396562339879430905276888908432531416908580217789534722137965259575047978308928561759471855705813019560383647315611557485454950717846897652345513697378937896391636555777497184812056280250127471869082645052989586722195095718971593634133159430588324811051673667088165889130154605141514435367269907568310991780920375761839990889327148910028198611256433054452306337810000372538673082377946180378446413419976112128924691077974984986865977436524734326752029189538069518744158494324689005968765124345126060017519021886729834259179751053936324054314595170796635927099922908910888041592731249511676075939208408706561035376316052873519410794670149058684137699563196129259014470856227119196594954825149154196274946430266397192347119702866110154233015389096636028668005454890364232470903384586544812557215169419747072435282167570238502346059804340694324013782077138379013579266558583345857432324086355114730183409948722923270533397254028292785114661133336295429707539580875315036835820340978557024712782166606676072112739447952825945835775839792334684829033815766632672114877920394590134972451883652627704591405621026770140686193221996508610972659055912091252436162421524266228805985262087646402595791469652160449099640859296266745330817801742320410290469684059515537289833692699978787572627122116396624748392476749611905977992188818158888759472391819803289914140362719613944616954743156102231850586561036281231758054456434696055058406733488171665202807178936138483017406501603628857135557096189668284377708075858449416995499507763071993237009509320195203916131107701946291986497549155656520003612675445576545492949441987433897607257420066731253306725512277760966857675481367702790882942504744304278000624273619717695467856948267833460729890140318312173716346637109604558011091261275016235956185300470842857005505478436695605600440122586981618616999363970627264236005421577579948732751560159054712425387195068677180900520326144431297244885795321210584909437809854960303539281537022951783416440031790564198676682264492220775176320802157888534579774033544780022105353293718708683619859890018428484608671917931134998946652450049742875263656968200852876752547133956962789067575955343707985883218330565840001759132939078851577450354870873768966731601317371218410854435669523740284554946301517225238199928951530931273429965556945098251314488595490382590145535934366398498399048831636936332099829433249427406850483623717320566900518234013286067858116715539674576510962680552796250461460721336245758344826574355759836261518216614392984451487550604714700791230099410311879005240596167119136196790149039248717664057897937404786216288876239326830853382007125591781988475358833019388204468097472146871960766292154245730882266455620463863840034165408124445949713087237418678581098974082717099599459602569599934734086517705871649506604535487699415658829421985043951725319775997164331331979488278081875877288953313287112532747609346233098026718816149404626382232466510844832933517628016622170584170156832904054910493369070378488824463227652359677374632177414439308632519644244170149639250133602330531821196177973251149179037598196323884465638986087231569349837826753205019037613281247210217010338894725895644011929982321353701397108974499261481346923234627546245856588228880656186566371555209544113514070900314273099902195253220524049169344605547209472922081884874253906149030126022352984080125266297324863983843017152725125744857849831608586669246497253986712103400948471950015346677165455322449803375406322673705529569939702199730856627710111749435674594185913887135816279967525813624061535205932480523263099198954809624683050090433806804054724312519529613281481226124868708687759131800887781167353456933635853014792176469056427227556552064361992789567515219052922899816076932718193830494134381816249953772206930468443189569904731134992662188067452666848831075467215052998241815009196017551415556789970694897426359486249269218986598435958613414405215268335789156929746439495077248017015009729195374644122198818684775825359486709555688456524303476258562677413166185522335411431632746516433371484522061686801219805240803979073945509226374570127689135551818575125497531760199243838206979695590456953253499335223215196146423073549271146704836050179924391492597621935897996145180340593846177505519342199307803534670201344391686846048187027123978945809654453410734058027354900747413463056192553666103765307626677008630647603189229715617580797130969410998931364731629715555674090467940678305240265418003023228091729173707536839447215934605671511520061907709248339001018680544787856294791258429661891315427430932026651323033522773896696192229775977765789012672931364944492908994962050287849142003996461157279329536507958924794526443770678091465391441030786659949943467806589715398759840197453927289452685345873875933190821732669037054762231832277970605605549570500317992309159791796872986543001338368199667221165425799737340083081946472979494832019229407443290386593462573940359134571467466543508907086408275952921450503595758002857993136011693195219982845361007136400276828781472117783435937985944985268956859405733405455916914159991500514820460043202478959804392583297012696732372617705650150979531766045499611235874841217721865422783982957290795793842643533916470271859939875769193344144805553383459609006551148230108483412734490746619555149382293695710649767138665061930152495560904702576022813979833895877075685234945686030851477687623024562276643964010567138473951182940174353955491412605199956121122671404814691660944132072021981594592618771677157101108029725180527219402205688997037391357076672408807396570711849631472385953604598886029384712295461418726412615561628410659960860518954372934417591082614822366940688505565584589794916635581813374589519828203972693376884116238587211239589511515839985852139810234222085627966735544002049456391793317838419586621341939525464297271732500614490608943683230952600226946397854142106192681438865763024839731533527302609454132394147434058155478126373569823273999822265849894356331861896560355595451443570142132481420100809188489878215155424249965113919603241163995492302883849656266974012149364276026264651622698115426913220852672640587406558134393694097489711509086415800265693167972594296317298702113200710042609053423639042092154978419615744698289768657582448479637313188263886050763639114582584663392122741375888252063180370841876320591290292531939869040567318285422596494289464270182358769614196063035217976203582632283813538452238279999432363314107972586864577982216078752944679969530026394121511634494323764752828424207154727004809257812751299714389767328145375990061336925540037571984845658770004041102522164762497365011821652207860020115519841909626763326748101317928843752850146239077527177659558067622547978977706040194204708273137955730578017324178964867983704822753410295503697162002857137179429554818600473098506604236844445781736165325922509603257981225456504200713227340290846241804399241659891705106933590636571722275003355255759898858075425568793172007031145928635804344165433419721333739997044913425412575600317324229928716244413143630972930452349673168238619970376129899810301643050862655560274682190019452676871333482258028474918899640815546456109093359014732113374006272094324033244346599688120367852220083675113064174864723525759418975627304561491487119727080824116547137299181941261673115829123867516253555970204973136459080282744584531572266894498934580785414133182511926202378647092827953323405387335952116791475030950032069926779965850425129514024424871412541084244040078709028484246349257103985363733686363041690648856146256235788826249989122437049259652299559842383862538978358085302946275560087915914668083976372323541834224473566555808364015757699260208795143745007726540894539023558493405351863031195204075485683349543393920328812544678061103289323904311507264046102863702995475126491773145507936299714064973475293972277991849544562939408175030880936166510924141150920734079224871565569893126949692391714618338255373374139621908501580684658685612450988263553468806192848070086811528077164020575899978954418548255203609062520269555681328590150483453834769739053117928239166259693388654834768364930988445641123446239459800716369761292984160882856230622454531723603503810984387901988658901905547162385356902845108399513905183646179186619508493473526652811290051177481451125236826114255479988569526878879357915868074784952672913647239559585405404243791638485131553807111095969404473005142377298008737144273754944087679743651311189423274848800955582381134667750492262127685126866554082428085496635121720158868572248626329566887181071235525956715642182378900415351947655309350356687079246846062801161471557020827286938388633763281376893589805582663581344802774646681174051490214840697179699675815954009803752317376537694149799191296407448695533479778559460614720278660923325853838097777073655568191986792783835982702830725600024846554076677719611173236473266590691644640370452234063015378648761264207429541448654162145644926997619407833663581405194543285272599598857052417687236193873375058776721786892872781569544661193500186155479117932562306479899063414035021808457826240996534402952198411881600622394860257925848181105739008077363609544380369557453663426964283804656768526913689847595593655191875792762727556532120323600468645309735335615614567620672334691425347643685873740762994268484646020589146506903899894528199266210471778537040320490057981847433069850789448398534258018232597314387307026074618447431440172463524139545831891715548248150444480295816608474937501842335412014882562562203327687498159172585068654884677331843063311581504931474947402754344654284873540060904148388263400313887805698689013628010248419948950789658972204693303445623037548413548265598829617532620312082331073663565749800726809630120314558643197477497837772702057486423429380537458711369414407709909059298739350636976715679944494418388811829329353758305405779799216642358021935777471565340619325036169645995643424855390214613806161011055448856712423565164226704687395766368062138765521567595720025132180692143285842728171538246889395839525468951759602571188234008529470119098575027837641786962758988627010390474635346775858561686525049906124141494113480646574694987131805366759800788524071479426020779161565308882015531254079621228723246840376628138932416591588449301194295556464224650049554921166916782128107986702290632001230469377603172215705619989295615771644228543759220753342855970917424934094724970972435281806960849819243860641807673444896526034140517335145555101909901962350439054983321227117782072099715668822036709302892881003585940758602283719190960345907746574048089408870023529613792098875099555666713781030303611046111361370247001580326208426821780825646722715403202353349301455975151965494940451320854871473703392707267086728994018486829795492176628655279570052216305960006969559225282483261837785902854778964359547869396226683102493183953199021539363780791792271103218222357434345746774632362195589384086987796599457219858527212206901486015904690651449824814567791309273999983499928235117901019893032983909120001377117975547088262260960997311189451317887185403429407238424999427522231554734236954677591381070147185737871249010957548878537984138398109718478024286776757446823879974366190480728842324169925477237853209379702049577644892511206122883031824912013602961879897124763978327418089733798324228614737250948297598387318906385779626943725712511022016006533455052801734428434952393588240085942396384758631747492770255310802735399091916756597324626706522309907475721095373154876862286246987022473141949184720988637207837385445337171794082581251740806941280388457699016122859952220297821442121731652941549631256777744863254057662791754689386258740862919370758612415623712956220477061574663198802311940083282322405096883785181238482091257136594936539846290379950147981628097841389035568638095377627413914549178513596853165229987863536360155463509913572166237376933122056800471328762951988249510755236296910927622885366198742043376035506437969312434272654274973977863645317097289733622694032537374459901529848188674981678439625060844347897882163674329644717792190628570827775393259245625247942112527398849304121794299994020864128556141537865677754458135018275011321599279436999243917274861867360983283883145300627703347155844105438688348227719360898634517036561130333317472526543981826201161708663504730258168578740037594264852344914177897734454395075202324374250966485289698542659457306787675750762024077632086338280115133481119793706217422230320439735950098112672526117195489772007903047186316740495003117110495282911714050552453363407842471171766934894084290413745729713583708654743757459256504334495793566454983524424082201505262555027204705215584285886128380205017172666948144492154300275049688082229113027722526967359143401356423729169142196178374115250975800447262293634284966602647678963154633690874048369419459899484371563041410832202987688971666955673679793585794753487194690478261863326652560399809236273703153408809612561090542398011775391617523553961600974644516785586185865032443822315874101724570724019946200307984097506284856164382719091330570923179428486989919799663615843444442254907800893064673639450913918688356474377989189041323688232616295983878288878777133435666139582509441162928049612417241421888136870249967537887006301715546199753271763189531746074543356916522310109066123125089976289328364050516505734768825732441636742983327581776350685148115268149459328574141268516392290222748748581517272383428047478194393180069155603482397261197367639166736774167257742533513600411626366444275712669860784150094598301682721540637335899790478782531588716079639098849057376799884038585376852587594876277680553908158004068351262664315131929845288885286324280173397735597879649536804484811095440381248215324885204603449201075447301769209048072408207567330786582834196897095572631874478175774419764028857806807985848027541554569818637385204896755490321656665617296868281322197530722125722970257498351193576339422999623877891863473155235088851769694621218908284773525437143570937774509832273070206518724362864072429440668110883143078762824300011450395685001403921115337606165035143345793738123631149343871369471881483114883734955367954254762944129705749701540696254960626753245265525691208220115260622881639654593219657737978368837637457717380429931639626045294760586148044344236995722653260711012986138459708103868492419822392686310544589632174014475188299459572670950999022100480391676340358975522038614572794041716701357950452740297093420475765140931095020893704856406004315781516051013986988194034340708051085762078673447894465801169127619090242499830872097566739742894407228303818129271852694967599113616095907743977900824391983405660032640400389728629865356601685097211945217077550721632082358140446745520417661531083387414089558155149409412179956999850162459469805314422013756131315737313092534699434164565693234440394754488788682729339651789574652782505887188603101857095399726644403175634298021407652452748374249524505786166981424376059973961334443901822971301860429720209669944502345925052317656350172697619790142093933817847666034858936149948203863905878661871586836034064707424389139238441635931642478577347345556015164157317643183394782605890042007048270006962678528809759244501376898860198026084790299122952333812865446071168180163376210760800395832365400778642844069207855454169967716257412142741262834716008567958073555421904834650921066841607242879502720348472880742841551054427717544667834334680069706193689931068658605220707881855576962951526544759734503644280617082497334394875060670319388041072717059495708145332459859787436726397211257209299720159426890933984812614702303037118586920315179521508266808540384761847092504219090771902515672131579358884082471332930130774616994471678143277513288965435538075644795692804476544832917644846599535313435495773796804932920630976752200119474053861767977745445993601791924859167158814523644292183586967337847523263148258640342441065175323404873520274491237806764412676141745339340355765620668998239526105937069758364392500951504842101073342605980023610830903916910512424972001238830116490741103693032139362394811108646424615510004326745300836840501970873470048816015475756443891908262361472420942572963723146682453322015985017694995955214769463930003351861811225200354673833773268975087316778575638041853681274228408589088156307179394250427126832685475781034462338776577333328143085913595836472627763560338512189785666261629062310962325651522065488213499557308995801510729733057739346275430104203394644013175441723910466672645503210674852173920112746054120637740270536083860307374838629004402232938530047208451480573261730345602451823781576737180429973862373805881911642895965271391190268083787617998364803822576942201654049608557800587557088748054039129296925681390885116886222774689897338426600183945033449426058245458363872795454538293046927783266293508357055873738230612223529924592285347207110436270658483210408571385492137164855702143171024704562323953799552651676683836117146507463198080699228357400091393098062964237593869529709372649825807155483604568943827023392204449339039952643239955446963186996301850446319807768123430998166828902431048716934656650112916745430675628963170413938514695913366372604341528922455273468119567518204994870896173101725110911291222705959882799219953404880726531134222217169445065862952431147757118730035772990773321943352252028972838996957139643707428651779298675871801460917833823241673795002319371406921882057976037834454985387258953360511029894622323503660153355257684141404517426308670332888030994335507317355531536707839227709809960338166037255560819402129519889265373434668856491387318440272303147360967089612019945552341658371536896065731605646224648434986318337509125163980391763864738343646635900669239222062068466937518590790381343380105693568834409765200346155398721629952538526453639861410267341246126263409319544405392343029620932155680162610163503907363753360904128055155606325399412908875169088871323379506325343674687170019715498257289339322055131599270302588644166331549880675631114848967554498342450204589703489847106104898488837437710411764608646401768548747050959247554653825789399490964744499924832618289997312464925491643261717099513683321138189778062835634142720080112971693937752330971705249892632038356665836359468467529599058099357793086874776833299697120263518507925706773986689684292195381377062516978936072956416129954072677554594113402305630380174035348492982460711294092337028570802097421746421676358880233848788182856875769184191704993417831175094390538900778702955531831287915741380343606063737003639156352815571338322841490689462485146041413740929654344806603868327470053144203618800696954929949805026329763289002663543472561909080862443595318523214182928019651894872719793924854872480100944547653255902778718073763761523542842860078987317657521021638624724768515666839293532287448255699715528701745919736209820117210845815471461272630063502199236706921023130127888741959167373618289852079465817922524117224124731474726953973791917789326952223061453163231804293187075684336729723861334536674583032850564484882949468103841094288865262252132838566504434208224274062037713917699487230798960754035216746480984112407456593505009461461048021027681606753219280697139171680893224065087795252227743858177718413369186385968180425472999091418015131597693671248918654513758650724012027276054271310146209952882681230956735593369907457812067851587050832318637243732528185418219287629969797162268822000843163222122865072462189745587475992990332654022163999405829035282405335023100456965148045579135945714110823537571362149363100925370417037698525424289525029773805741917115209302331476062327173826094109009541028700749959368008050040281810077130201098943453221341145092950515586722175373457016063255481884372513772760298170362868488412125566893407636728041019018620921695688928875590422957106499786221262508344517347732381665132436142685916928993536525245245634912661990815469225536524821488806705691539295328443677350159680482326572358330890164337854752460891362362253673646340969360260853236727239235162995752498977068544315251159514589331869281306286793702835848456699003830650667340075670438398516165667953081800734903198576362136632719148625091330883453735955912227845168712346206065085570083775391512465865570377002559494520063189594929434678969978680396559874495956249553659326738057766145722968898542953072998690544531493590833578918586339288846711078092483703477909073018205038723372892630186451428993190136138485188067391973038027222438577777716046265647431031905818837940059649301465504411387563894075960568159889857057563813276861714231500539306628282641521943867725153918326286671839113279875376229194677143822526708814699068691917302936856354373733753613495501941859383845287298494666572475219636183331788470403589939235770735405518551332469547432967047486048816151988457368778724674707011414758137018638050582465879545220578103836095453507769073998292570766522757890923270244798319487526625653315480883243963504000006321049967009664225224341035987517350435794806550383737245781857668696234762446577945460512835479360729538116304931389147027256117399297565122761296641392642569901515910907707341461627557616223549302639938303369996088769548518170520943059501828108809525182949570720387791809439628511482115624817961441964793511048475887260394106618952640518612232541015131133869230370313805877659829529915061100388134915360380243116319475217654932393488407645640970419968865239587322795395989603832073359062659446610591255828111372748152316441848215900329443604319696008127271753146269326064802905926984331497452600974007674418980351631872176152287654283866117733483297444190682147098257998835098291720063206620041980916780673617102320542382047851800858071460162245219879040099521459939402723741000661564790108945026100707939012593644693975703143944598371196320079180469961663882293642880040730928512950829523713506747358656473713148598355904561453914242562545702827848450131780383800557616524812640476495951773297089972068728851216142707567507833178834990695007709082092958337309431842189458183023144065964167120697152887318279711402383872558687193439625753152844791620604962962763930449342497313594463745803523649407916228120325667022303984780681896905095351359851899525811380498560354453319540776451208287947128527022342031235198430467236910781755060051163141950710332520799282722728906716061974567172726936201420055456964655283461035600568169880813801104595534638716554922566974133562393152706196065726709683522186289916561405395187595023585777174391501030752589962533532159754674149203669275032909525410618106540793896726687369642274097957807471559707303180111521343433005685343176200989520278473694985118761506625230770014843054758992042854141203754437074465199434500317438029652182144281153675674790822430795762148524883628025887715101001742347776874404606564201793131362453416000954979703685736864984464726476664173153470499346314686557626913771936446212739472467822655476163710359052544717603590700949170623435744017046090559203672899374193440766606553969483004295198020309756645552327529813555208013746176218722474905214881493255076779033930963610857314128046251836973396484827931098514511001535111453917147373005824207034895646802752541543527094706655557596208043495497678179625735524868808419206785609434103804292359125160218811614132764453573157812470267432180398761504916043970075738832480536762542854706927918498250591322278851680162126059082160988290679363429155745875104458139228664314477839574528378584187353597460932990747250014441524141557445976582910260685788172024251197750252538708841569429740352575004924702429869670354427256742693649183858438104649550419004971262941003409285789159676398161474885614414029875302083139722186774804672597018805726651301647179477524216930365996478925054054609534699796074821476443841498429077672708167218051448797856464505098954988954425943281883363435487905505551827135340983841039160934808455631638633448713621062710513402294791233130384372955318705949634011924122093836334488777292725950926130604973739849515117639798596075327876579604113891383126810276067951346328942800526462213146562198568232541654170389257464130780278628704824542386123901896563972688111981420762710206811862403264483454367503784152451978580640199293996290867167050978343430988419237795374990247452222972761205918504886220714265591783119132276860294962469276996550890012813317958739452240956793660461200053655318440986775667452178946533061401753195403507431799300415292559772327177617849473616779910676446301413068284580352502526224881195309353682090850986534981154286841584605086988824032570863581508897820473459865265851283683761636387881103776465872799566808631183202508743435797186861368876608650132037720502028424738684993548510643794180173998704965207191632290040995425222209761687170330390830119370509889380727630710816498008796478443397260976753998332356351329637342138406860164573535500581827899112978916294564616495151525277375832986304591494401941664230572184574436024818489752705412423617262069437773563964422371902082527091598329642684843324794620177262774920747711637153162684054290375757397578027070152057424978430960876948074064482538813721161589079159732379940758160342582240921719671971026327311100194630917425518186454020592477357226022149327576656020366978690192773593852896418428565466000697015299529546408638095879886685355754777928789376858933832446123164421838401627545791115629077074281101986785873978856088915852718325504665484261585108071851616720225392477873286801381328485447217380250362949588127607186263319030962989776012846913820714622269795714117301593120072284911417415597780141796155124903275987364771584206641300644329241844161125303763425945797176380528880309734103266084777276583198479125396343232284273747022949920939254623412038739163155503733665151074184686516046569892614303980917059879970206613595126841500463303125298642456948868337433331898473397358253362700738608995199731946603591277556378568874484179152921954165283291244622540598120579943011394520357962342890975862670590878175593487174146778966373623075357836088530282557016099488019714955617939123556819753293255431809220024483736960379487258503265244337799492609013502940493841374441353280387312708087047312619238029102779293449475230557958589335742438562222206866917753929056849338182298208629946556057225706012741686700500365380365100726474401562476594689032206135338741300499172964897985903503799783882216547889335545670428550335406600200698482011033412004923436002891792441523404810133103358694986311354546389284294086353095868672637771249783655946964989625789918255424193781425354167870043016313055539416076834973203440589688253059345434442681872686371045851140802588874419298523497433638985621133902913243916222292400900865190442527011668186601224177416293527459293610980786901289301245112443238112490536872770624750947673765195430659058179402875791001963581919364150972787886836219661336167721141606172968797187579247865258553893511880716474620144006035872278545118417646756593991551536545374487925054252562690907043584006306814492014865410497387712373752534806082791700643957522838271767479144378190701653649634156018765219998076436595953636095813522092374446896683186994663911663585530305584419462069199290507779102502703755580624940775419214895478989651746375418678588795846800307092986570680714269453198880022963166309030061037344178219213193520292488595663860321739451416183078494434881029964975126339977033969471544029479903261580137526949626780875308308359610714339600918672118900496731327484084952685579211600953909643706051732772737019255044643095387939343050696946945602710863546434041758204513901464344928929280902637683039731651223744115010391449050715373838478791478716339233369394013970625261752486925309629103547847185168824543584819313158862306510985534743608255596999905006718545044716959869239871449994982241235496311288531627212715842452445641139419582799305799334951263234932952557709803181150885367459218526238902719146952553339400643032429748373732695992247037086073634568598187030816450296421026111849922290011774055551846562734856334713998506105290376930204502769562830221818398425794524576133106612339858993527492257717430509636810381587380668554000034974766699232051246393131839816323406531548134985723684186468308309772599945790838679776371567510797195886180935540359393313167400663624867378485275687745371690655609599435726903414940444949377661770138068484267360820021545782465039015287585311817160147681950642669993175133762853788535840457765956441230800012417724023471339573864565124705705081414433853676899755379545176252800176880374126674408123307772348301006674022060304506280854091879938711141957403635501137840768255845536770548471611048758892478547377138185885200794132212029471298883175297695272250712520480846683106321712457087486011554016726686552270231979895106752245654968944047599171834434752910535957557478571558775112330041627183338996200833158347235924531748269752221924548275165205101098136078860859269189478786200875281276587106489317439220735332210419469093457765448553520003205759884404144158567235328108484264828648127576317584832072365885635714368326970023406265972853262336662459548556753050580415684174523371855373766958263082308874325141132706516956427687344233852951646382115257870181160373975118344969589414610677605236797118954197884731262366878763751234033912204828561033538971245072604958781282607212069777050380950531873934845389367308569878918527930155981249394655154758791717769156771253352614467031138329468268192851602212180399496953145366956377742889279936160191663945717257611364666455551061610449443408771541860566537602488394022807776815457201945509645085362768237562844857591189170746075254964661729819165737001262162749160903554394864726177461723348027158107835460668605192669497977197125803615010566481514793164416573316557345375580187428131674365097108354920947739458412581701522013732291721433364252523714430570460861007357206231351853340404110477910352076310120776362012686918237404392685858774441586970046290711988695877322869101742306884879943422216825980959208245169653416407238006525775333066049183245177146722802772677386355666671098129587365140886688761393639330126610407805860189872884395102891008663301861237763011704812776926858070071732702519722441456503381637133042975753470920409301759659601810998623080868243439129100684604909644521490634450971102171708418556946365561921612077110461676960707996263327796757197577542787995052324886246343853174618259875457727683629456677233368069810102535058337401805827113672450565710984864168804553050359376995850587073619502509530556991409162336695075849864010245776088708843711749235336671147055162947263509791031176840657531432853889482225444612959500317177021405297511436231461532617775897719596234365005033832582244359795986924457986130543351477390930192911301507735645343423020885376738771316433662524387879712971606026323490223059002313485667828778993301911701315345467129300993415650921640346010806868194450530580541220937847765435520086850340097605097982447266448319892321837994648202219572903052278667368085219115147821394380335650849065132007642346941238409824024776482843944655321060831312583516273075246366837890134251830719701127205205377572595527480597535479603230975401896368956596511627131799346308869384388520898759702414794278997986072405318972392205341910091190721166518298393818933596068221636576980559056925556575209856866142179381028536518616777341691662161006426998894938652640193431480635747805539733321138393155437084278632580749710171828277697585029892446299335954039350603903176302698824575584492584414903364021147654779396002716455742782372722909420365639010279578975296896252483395212173501784736380480407035613769639869232997897549785777771152334748152138155200110472753186863615731425971967344555882512705881705413451227501632345652270904330126221147077636291775715289060234537956147318589881025396988378590539424628088386667418291906071638058753194988563963498329495157508278933888239932598631048757230262956208764621736562660447383494744252000951606426614918229385378038073874341773612385139201029290167414608802241717144595409381602735555781638674125636159548562005600130856058263999864670424848414657449390834256323497763274774011304036434428319192750721071388249230808884757195433443355001726284216194103609588994735435529629599424176306546839685760207457676350807005554062116345180911099675547055869192318625533204109347891621853610059223230186015211037680467518419763743265672894068056136820464218919621711643702265813103351737745280729761846643072270141773505925215574723491748119093933037549059241954753672253030351560794746692665595093851804802442481082476772202088591912346891070295284018910394324430765087803593262367620487647008643097576881709644501890228258576714624624208693815869878612484160072652316169726712548331485273038432660706861028872145862280315301591639567311805864796259761081733598791822045108064118845587428677995231436931286273688070352252438770668717144076275299558430820782167039279275767124802187595748918498482353857433316459278314961157760655010062190980867030645617756675585061317204719628245221922337945904194699398743652929031815307481607890471687161720391943283383129819665056813214560046677666155500038592258732810579208285623173706477952060708283717566114162074554502076856282478635294827923565396654399850844154895054807164186367248050777743320129967249887887732017366631754416270789952852833203570053313895341309472172067139048078500648997633089932871848455082547872112878904421701805153115195130948168015577435628460792179457732502716951554859316306709354621202062889652910358279475665240529417003188558056259547520700587454747624119295072864085764336026178192634998264315116314032136239208929774628719901698051264291490623622476169678134467318527291226383496068868610208323907292910619769964983725571225749257484180026313193851322166164051532396584506992620422211242630916942258885931892760448043362125065232672598537121836970240870814256996948878437959665815757227464938268687900948675191926613805087794204820262950787102621394469612038576707063371920050485993953328032520541620137866259624012221349178361693423947825878988359805240278597269580132486282233378913388597836747895749673738923999588827238736408239110092836387555333265220076731498679972143810305130396900807074716501993454643043403500809863540449793243628167330061964287912052580319403334475714886718868723349433714693401281147677048014056142977379284503912909421326246096049026656493307354273458224219415257732236322644905181488579392334540794594050438751416701997273447893703423907733890956314989871646359438778514291295424394401686453281540366325295126351541604652116892777885342350424753337601927830309769413102768990699298560874106002313449561811775908874587800840026803161371723241881748837512328595852130349924316088236941993614707612164577951446791090887783295841542318982095278864680187274506027875187446299801839755921007754839084540988280374599456482272076450239090133863886370088787273053058146625323189211820651613744470690174340343202656354443374239141005546075375287537191077435017971230228769445424384859409070479220506593106843411274512714104968203270554656767186733147024954141714343689621756523235199336438300853499037611560805903423421156510806582617307449682803595171026060325319388168546536366145587217084152865826914269469446552299856692789469731511586131816636976320550894633911547645933924778026837469082466617496801234905336757773493697710512570673715957531866831572368251675325864536877008055506677456250298747871030148641026091754756595155390351087709080940159023408128023500571409684204408736870531532151181927379314448480719350546903921410596459582002012777458163550447977348157774822735577058535241071353220429112295681605933434382982267520911576255104787566815579498939640257618308924747523036605464038540628787577612682124486599724627878446149066820282253286807352655545905673683596333493026462386397799197874844556553522890933006551635254295449165096286566361175653728140082016124611023042289883189757503822401903881674631556244433779711551023688886301329518987496695311706585248135782297492676263584824413500524644008713915396414476011056059199647634511432200225757296043895059091199156376180616953624250694735899553223912079160513876788534612967527533496978428967614600311889322203461326143451200013331958846286630348979059062533115315319091227329341702893529566040070110813893389882559447212543909427495209532743025487057203037955813719751404642393300176115526013680178095821284789585815301434367943139224432602098154403918846000353900387339204333123694219726325083600186165875310484842442922989609345402783385382463414853009290666776416058734225334724996181682888756544842150002077207991622145767048053824840315637712923836939082416482939394854909094057390580824173937488313873762209869168991521058010488902430200060998079676804448863148300315568263414120749344412556313017124596195439025919532735824868343581353478487738927630583102835886966872889677837332592479729969159919530752109411968403245147222464979995244824312400530408020834923309531965015216383934929539479841586793231542762185390394193496134033351735305290079181135636457354363991449294870729822537531038458145876867182727888801024207205524924166302082411641304251783773692020586284601513420979289720647730803620711641447246689922813544608826144693654594868001096192582801556593121157576201620277511904510567203809073267525929032014042351983226016822731006053672189603492989979983029698192029623478056487019214979431292946936286706094040061759295587867347228646510356204774353582359051471025765028344614541562438894611257840622216789949609446667881829107555582582357365271043401508411214346508489603528356953171686113698994468734154427228582634638823393318118025016741504239472569060693453023689226329430589405936111963625902789661865815242789561703653108007047746192181031933584456733862442498933874624942274019204872493733738259456379277290894230104244109239434994636274841431556078646462120802296633860925819453564426246884434765896833103381180594294118914062109878386998968507141677146988302521078950431626276599986026014445702068960669975930365850276850355867281275690474503728737434011701520746275058866639655875292369026809059296363955696120887710906869976181431680753562150348720758439934568184838596925757720364318247552347968396394738524121759434383370378838661218164418829296158220328914239143890944699287896816128327860512332366607844092297757085217281343735332535392207851504092426949104324454495062978192186317081552896284060013554489030214680634500334398126149767925926576296177257565687348559649036524083353046149065085867794686747856891000034026998659801869670409496515927294948833828238195661299591008353511038257826332821838245433367786178093491042589250981321772058116751998338745111934349054441605606253231581971665365546280307536018777040784957366804402885709819110915792298687437756002901731707828174781064264198619512573160544688061782010484506676027529983979528146906838340282683589086641140866505889135668743083103913694342165643766423416317319243751517476587987388242741028928707283180486816695896607036377821380438360616178002770669953949880461966019492614399477566059457621059038787492098695847503537450073762400387700461318445094364882523083276229063942445222507926992689100248801835110411554734093486907052498217454982064003240785178051371719693028595756079394196816901794088159576153379009626293049532210490651004180488200397809081426824960942880457379026521505998159671532452217940202433531598918186074577760558440062615335109048448373825842781928326311999915575606456774519512071363703312034016468824430080329865996177291526094404583222773147141072023862547462430272957669602373144582922605937592221640252941339682239561600784134163642056985186407163754193099155262715705993538528335130614167762904696919815608956575852554165083450289490675430668936757333796968569252085650356012834603173443398208535321837648426099534623405179547274360299472481657870155034884076165189109006694913829486191746042282158341048405123882490991254214351350168165057517442628608320158179053358237449634984337212170923857104221001699347401262646230805787738756371185299452806717690602575468699827872049915032284272739556640366266545389890620853282758643328556131842700482121546547680927419311130162757845161049315531609790775095322037538362235913424637422821807032875492679323915329816599016875098620050725659454044022780260338786711350265988980089422921914267680103148683449787698493619632048555917159316327682345262104915774239835081864467404660632552061219269097691545777632005819894918262410498421786929958338280146395789785676087409377387453310038848017764788354783598586378087129279188524589600434039432251190213042083393659561420384007591819135828774478570141303518408940763724109200436177866381156997635707098011716174634159970673273438767896031141733319639826282580028508139904701986940982040834606287402897240098932351604654637920414296951039381328763622560715504293701535791364388988974444331893899646975193854851890709705949621689580028091141605263345725960741503297184774096161745618929149857563800020496812435992053210530091841304477765090616296174980081944280476828071515764453655048978965141655707277887892764184810985714560752224855635028896982909714197805596314689732313086638617425611872474270787067676935933756533139375423914093076866368818372343704460638233866350858732408504760728136307385308642382747981210131211533101481358679891159850382216243255611037822515803693965815123415685675163031965845027838775842511881983443353786502587269132094714204306784313065948634647924670168506345772842126405727964515584988795285493479625987257848092824594203763601636180741716431511782159277760534626953059044950138145334274346219702851497553901675629510414057641782031966059425115313543184895744405395367592096790992804832822421041335359464772748332929989579929273336819772376396833023021789378638389612616841105334700424603614097071827862186566475694690672611859789026172785755948557252945768985116453208867170249747208061521098678820266331664409116416070569627436550911439404415472404360014271886983857643793233561556998312443954751183278207031042704152182518729738801681731435951453634396922553150951610941077394229872202572539001725115379150432717515677750508159512975407149549093500249563560831040816073541552653382018614612214155952336272464832149604336587330179623042948701565709171802841712513458371744256804435741009954426667911842691029603469228507609251098834739499752541218983930980448303945363665348712270017045475232788859510199438085421602922593976515276246772143505279190697025769589075426825764132828748248593073820456395658679316499536011375852485647505875527772517184645528735977240480314255471563971615170390038745949344758762454996905681251175133348031083240836563329270896972615300406667446921995064853011039704457401374888976381124780263287316031313103116325638788406323896533368276316136501117556561600608025691870799926982056857683070228169816294516093312105636898324563509132110034340585254555859566782686731757975657714603848584489135928665231982533700334407953504091323148483413724510420976784891146696392347690895392500948355195580766339038892646448963604573218427019859263798695773226530429447711460957025692986517537167944168006378161926182724114936990198319160179390789877715143310733008277014785290006285671204913127198373846182038672111032630410826147484604022479205258438311238602157172362119165781446165518840574419187356200292551987123722372675145721075577962280234948343742614594824000412722198346366720160276516936119514789731695575369497318025434897252947013791991064409428379284586604839797000441990048400391348718730451356310148387768573345812670166773978202549885095239755302499864071880443302749152191160350616929996936718203518630059278145194413425340344242977903743563947775548490371503444655332686129754991920192122598839237244001330829492090899114612879132121042781321424497074961219276094938001301880485897461461806761999484744464117344334736323184477925160665680673237908366549990935703046784851719952708390399878500868862404572470505807913210132482220633126296695987800390369269776806879547163503551510574719333348316841754361985935791268036154414461128008452611847184000323882345415006144088224479002136705983493764161316071063944162593909257925757235778818435097829962571088321010793122699270941027518550175849609662902464259810352464136760307741459054145923090145648899587422447050006782575809400099932176055641524054856272725315055080712623290094062707101738100754473737094753191899599591361407345454237844354227206988739214345949896597564453442693379296575272889910400342577067868526413803429737215262060289374308501422949423187433197181167634239657834759985768053275722092776492837064856061876251544403778524131525943999926938945662219298114460959860058953613342470957306942227857704918956145628033877915090470302104636019212670120129533496990516406119926316866320559679896627344216290756151223280282831610493760869138011068749230076717194332524262555149420445130144234406408323734422122136427360177885169862654922422696782131438558919456300218507905291327388670557376267276832762099986392527195959725352363928653203515261199965491217614965506798775042710067452734823182578879992482294058601188707130077645425883776350487243948334650247654813979971706040075227821958581854867133533917109114339658819630416640125419271017431603033088218935318561611632447278818969211257666152635349885212230384450369084509047624456247709378541270081583272462644602891335033834631544832389868722106452892864296039414203333610947612700354982849756393721062608848928793301553859464204695212989383504599812880461723562033718871006585597430301928346554007375121474985121010791040659022780964007136118478295558228683674105633057869297461608689561670433828802837286936056720130721836326667163561109671134562232395403219809513075909404322270293804667093234968133373266752919104384190404654552763034149205053711130748664262315827184915528253651963975512726076189317117752109797525370292116658724948402007861781260963991670770963318766763380513676198404497589986292216055490774348840220158974526780038942538828915848420163127658301017850128259230318028339744359963141347277233267937421701717798743271934095063667416236066233077400408163547580480978018601274743024634665398836820826439320840594374262752903421801664633161453770854095000080042445979885396259300701021236670509608146291325168729591429753029976872283986706583479925597891384719626729364432286665480257585968004352730766544100836611633265604511237366624666110586683985063435791401578325762035046894865882591759941068749427391337344969215967007651566626859631403286303571026044131172432798575257990530572745304630353055517713870910705506054539491463358761394466706637095749392679119576277786341509787401382498072259548240372864630034342253550554831848593604086040756669553350000387096287534436214159892629627630106540209243884792358077098952569689635566498989930337935297703334884401111921709547782253068582495616060545565480096343676036706764637546953358726793035256443079136543592941519537073547695452346029055673265016321638624634563000277758417265246124722512668501452243904577545144751869348084787822092937720431525876200286194713007596085962924993495557184335471616275691262496722558663428527331750673839799907521418853517508508139392225027257978798289868570235776286303606888792802970830135542091027689874781363112435366989993733537086304382858485413939287595212021024926039164778046495434406223529077013055914405330374853713050481117940360150601652157304417700762009877099877097682822379599445507061372959227777501987293689311708546262903176663713308086702352652961476619481889266101676500981264810967564906365306208138868343671894521134524309711726204615404454440580922085792463323448785598471975543799929646330278772964937069372558317223814106728239971744660377563979607775982212506534596512555963874295840118458686415786592079730207500527197888185010455415775899998965276084597103717509261592008231046800225705696963016654140515554736640410420335782189280303000990968389765331805108369844647187223507217203460102410629328013802855210571239630106709209419715832313157529530232183482421105729693014122229511993186588525862999911502343452676911249404432002119868933270599049878777839648564803636264335511250376281101511210333292248557018122317560317682769054950044434790705430303798824665289319718469594553375713714852863529871267026816820122222751319127040664227331546401307529030432006651275731121404725664225311621556228866800982319845159403376754410041571893443037889594959558617073557402009262655242276115722739398591781258998288409895329687834322537016143309445630433182079134769546461858169302386420136154611416029733378861156092202136249318635664290832155062196999671095001912103774616500694374240786532070240596492455062024755138048397140197431609017193684126532733136597230375576983635481164513640766444801087307376962187888602578077934656851012539019091025659180173094192741554951996447739838021804167148911514162250299593064990695490257002962609528088577573341693916572222976964493787793767042185563060458566670764736009161972998184353108306798963662410658588348239572861079295837255631512365807516088770908556102091283632056196071326703734337158113361864445828928713463508310252833407741717849991858763354117716529670461351725862279940534376548221355875191379563426469553191827236743967027414840390440067900136781496625751838805545870442765676848045338996341757505922742844151444556408505339409902335759469556339748974757982188081443247451799085306151019085390541453983638830384781272551344124076419668446874670179740524123880813571726585497932532969547893836138167565026806147113014869407825863102226970139556332434810390929040108553840206386167814776451235223288136344524203915121965927463381422076656848783706691582284597454464186815457621324424633796954631477623098672551619376847653602356329784433861791993492318162135636015163444662746774431016452876949419197617590667707099713418941859581277289889524953718165783296186904765784811553273140197999095446249341295326234610853302061876534502822485556855986141331519594091332786504029139121527014026842163211802632180639000721587494655975718412424378359588293890903190197871439606052383567201946569907396095246325473272405351112950996526157975905399715511073832600386961838171332680520803441182818620911533719112500846314259635306346142546111940357138136551414619578683190498202988214483918907606246040352845131755221711349215878063423729497977517974455610747492502423125784417341825142738270442728904414756177793716519381088939183182234662814637475677553084697725569856743938722913041951641817759242389597872909697501885759106201384461832655626268320964386227254644093028890053167442769463876646840304028167123045597011690975206387840456964638490744756381027881713498840412987691749227068153621389021821913538044431780198569806115529827171357960946259031216050839678801604903841646402079825642401479080554894564786078367177127991394207462309970169305981784132053034167085496438010869141156616443324575768294297542416370770991933207733038076501735786221380008683014292826320766263139054861371038693043997164475524686129053568991317058110136352546664651970341681034853780390705645500316158579026901923592850349588770885347235165834438564609344120412170930488186876479495730358702362295416732756500007784152038677998571266322669779505461858142664366859070329040176888770626772768537907202043251509625921557904603671422519488547082623816670745613244530956093747063657611657769354013184791462528847605242725867009247381642534292107776951805748829442333288158742260345476629562236303383702948812056762797237364432121643830532423632998394801154936740965559367793237406753281932272128525343590657888968585848765538995180487834408070628524888133857682068969031263031475751068347657885155368465825382019711409996233937208967915731033335928980015118674905200597347114617401789742965213249599795013840256571587173682502542063489524537945547573870334709040614244071800973291399633548865439589992813909643417663437653928472497676463479714022847230197253045674242818447298687503502929385583772656358059702756781890365449855859010713619369881649497945750185330172539968801709205503905010427974240778849326207449297808613350204523887217745635409804102432610723600661493832635848925082852991617830968383774425748020205293981212991114331426167951588692812552940188616944877773249903332219152779379427781838393060774463383637375480027736066080265946245361512075933560442606953567942711930570441139395391715130408088780925222666068626645552654639840146690354106351936289047017921532570843093186133692707392045947567050754547364162267012748035962028651408852494836666516889041945578168537332643627172530989506309023749436395196542286743548020921372228586605701275963009213710595567463751012786912932743524579114493167990683359198789078184256919058858500413313760231995857483250396623861613054052152429077957583417410898080472595776624739456151907212873847862250803510877653467802341490639083919267485709892137660616135835645555058965862905040231964784674768906986798139927240018844389230750015907040815026927806049480502442813488366901212978200118825802963120479322954889602582015646681050495092531013649123630097421651861227984026915875864576523560760254314472878815388575804136376908288709998385726587843880807475845130732238634269581234197963833461574262121858497934671205489442249929914674328402846214967992725192893389666372486346973928801904431175411541507346036094299158710800394372771111829438964554174806531297858756137826973918307996609439077308927113915791980586016111770210548003532801489208368020813089701919184943496240293330491794212278050670736926757800781229388452795222100998507408014776649158323867944243521291206552572943495849554228269195487771868951486245987403086862356986238350389652511085050096405294809993900879431352556183938750603649536305643871178487440222388835788561290099590122451074698788216964590692845470044487614897364973309325331580842443393818103285204182673849549622935076865617115114088420139836286971819853358733169637559858435885751436068057562238142035664488933980507913945447077438734560202288102405331750642569935715354823008338032340057816229633367215825045669142208495119236971466748433054113912443229262948201078443846299264296456608767075558554451631545008859420781306117675085102497855929610524505681079380704839410458130430705670928918111198603509357905010349696714365523840735509072405785460904200790472777769176942945482672932257325347701194501290499492124558543402180522800313710464350418785248608410063872894391470774394229767941222201509985956535324363633613353837852556845021579796908184554738454956497388977555373970521021600012705348072499902422537041235953438140200152569213727467522004086382300201378965082874432483939298462501871419769789613171849239616482342475861270778979467826510651148529333895967360651004431854663725189349902236628040938170872966596146257800810922787144826752071103774741911783489828276932490594466569012415054965748723106322058596487128785962085450207409713173286114971461679610926748578516933920065028169528955895109895853662123428809132701339150474136219509132034036354283086424621442178143123568409657894214056798201844979124457349681192560997583442082130505227520986680991388067297857393273730025538266962587842287450390632991808008962613098546097965995203646210083803818313479304025414118943970081238852084120777258717982856579926514447159620924742102752906390890880124043116849958183310716816618188581724952449358031172493020002848123989163704292946205372108247633863076268157705295023751992979546607833882771243111505461773986477152568522626860027413992243629756833573464958013185322730595607133696081355215116158947623159670949402534755843770492481319701164811624955914893931538953281585066647018986341469641489912165468392402407983297582984281814323408310332742687212734299382676720736459177903023515395702253790197516875034075394993501910671311944020980849261148930213223704114646922206662990417897580480186656483021232252530188523122631538716171332125661052267081125806755144044446707545220458491778074542600981330433228855647989068527650566699787190681167701707287730158436794007106654622124165456464201691179115527430977573517717861443171049644312348997454518684736192564719424678143406739300411082602006059276767660683592843147594255905470966499982625902242188326182748555745649187716345012187498242031937194498494583636919243306416460000289619073670999299221584238322947355949389356187585926570606786458369234119140537109797892373663528320247042544941811718718950294688230532154163971650400670989839584679592208174860982218705180819956464989002465172252509034098569341874539343361027082266148415278044685702329837619128477227236544329781053561394288401125792211924334717529355355594872952431629812239931039057630880645465443105230697712443206277183063399071814154518989078063457245476006084772694657294439394072539549268917514435869320048110429199975112989321992255031920646886136041549718947717238134424744977085622153332081179458243211246042083956645881837318468092205595773763369363351192452887916753987171432391836724540308288686326106553124199551701956858654655407274547582856208259989930671143596391764627941218390610403235348701059727158134772388287339930758666194866511761451710566194109581718799834584101097875550772640831078485392910552358378754836850060441953051194169472855028835262337144461167551504120528903781611274983717271288944956631207323081060679306919764874735715096742128190442938749608148763637771834762874449620363858397110381305127841060968835693150500667742861993482924963388355893490596763783003601751630719375341018715730922011450947283986492321618452767074531486534585526038204885154594098523632193516581090320778740840383370032533601651382112550534608721105356159983219225063720399078652216030702118857989827756850726018408618933674861957282638981373327941520587993842323544981246352855222990609422829639136983204059748243922592382017393944709280709105702645288450251817435550296157716927574844563229809415309654685679604615189967384016129053175300567954593584181047568655341155102226505535486063237939544867346797234998301156863293098993127443662937324251227257841943721852046522208011064030527672672174566566225156590113654517482184518102224241909196927947897671609054894510573486497912540323746409786718608428058208014683924901468404518851729368011923691761401510472970297685291322321643878763554702584841412887128122358380956637759878099449076628616731812506184933201891010170404540771285465831859826429043220461879593954697342870708951988975980668712296986028434297484902172881854071968219624383954897758416271899273809046368718754197839252848580317391638923799721023878690616116569658358962019497819737803125154667058389880762135289248147444352936143890544768580986983049664642459425928005230547606864550091819076126668919048367707237263262928743736449041256646866492147967283367169941758785133339787124205512189702650688772834362360583241656712644214745940657617877108470512385785499768806112788336691206722761597804941323257588988040067331193898493992196521898916262179499042997002362226646390739897609416518867605560185889604437341144313797401018921870466063255489748301678068331006679702459169955817136270484291052647595747712286921800700675025177771878810439643965147579734869758970315189410345543426965561516590228576283709076585792550713379362711075211176016030984895826170619389783102972000359451984151897445441304685998205271794870927267608102751978377134170538135064899751368059546557183451420205940424395006364407732224539713959140068594287126373273061750396155259976986844050985532831624959067013393145250456879070477555415585265356403542817670066033766280747031909028100831815536286761440143018987442212654089166110921416516981247835641260573965094677035329349818243510892615296345154800835714669204058480645952841911338630949103235842178170526092182174124253292601347558089794973945877390143217927413824551279701038463360720869426931800911392788731207174461372321781195180317521423150341804874502054274019440178192797427566860866080349587326654881974094290379785065845555255404219926252059768131794254950323870641817874251209088247633037138818631388297079107722577274860287635728259960790380459146761988511817965724346429473962307331893811329103309120924830091748903112714109259386431006981411020991247859585646667585168693996808991007665632756574056014299881335418779970425525007641850330986523431673367726298299522809818211072092671822778933739234957701368081164780587881574689312547553226929289839946260708535991833919540108147720914064556201624275458972624108209457721527858843503363662697944667692899157987095396601070713800600628409363237283856876929834507417902605522338169594900553884787213253662108968999966797501903901534941685445445561116186207758804085244991021951463692935183133999308108787073221410935723352226905205925612112023890810252116982265488285379370284001180889789636775897312241600875556980770360443867305549332910504755361042766781734982828159186122832472545866587254680756361326952980832596541219239443099225119975483219911827675952892239330805882003928108436003166498568895965618899891214767063824880318667391746300140442996135810821613342340963444561081321261211579898658323659337272894748052007656564329383208011504822203956890771030177048202426089748397460717270570331186266559010919826775073460000102445283388522620776075552559679996627305477810860141940765006140851417179444977918857826284549404188734051380422601886076078685648514705066027208641749704560279448242703116144674847808148205687966072142210895263323612878656182773705649421184884784668222126806762557120322811833424909349062337003463658979341695872282761744320637292485880054795155299034958759934260857968786001176388712025849011511518744275742581754398812695573696225718949552294587250128950582227672513008472021147242210452533569081589145588196872898394114318492102098080009004609593398288004761677360858453628080670081724131326671137493149061814549171222919224496823090715359862024508778369298346715755616131004651554580111947737248146965327622396828268890588244869690154523446041907275660008213243568705051911908909608216152428386484762740233163179452568339484881431211732139538964077698799205338441581219843974101571497304124653043756785618562345615091030279291077141666639361333745109724469142978256703527172970945469870706094188119115824742071355836702449157200910037451695945934579801186770840101562979901410080511480742371831958208122621552855271897325544664437044968083622328266502989152373797708245968664663910859574132686644476989920156288186354460659218248647310293863146644065524622460907891734054623551010928980590160180877196347737442502242492720171156254689851604583099666517383785148173667030399028981527037516386724907399905652974205880057627726804747421557903469013409573359194687126575164673974316009986604207928696261825357609171534843690064617609718820196781109533563740195874969886535311466258759031515181371559276302896411718239815864933896922788145909255376330212787922308005317453506391307653156741508447669922798977395987082672235081759778224726627914182817257033840045988717348908846031347440687176252561540750132379413180918430253544703089287409532328353030745587173922137601034074810803927674387132960987806382492691345352354417125786902080935685218132670857783274381397045535976246759072237118523353610518161722177093063294584521489764719803622945493377009046732645715208522576770722838160242001176081112624279527887284264071990114790352957066337581999897789433518558741823083127793057027055752363196040678489574835216346138814392446263379225321362934631216111552338292589127527749333093424282352639700802886171243359473549875825956776294022840519135978087671846905924404305182115243026117141601316771330752701242044229070088548940963618024427726577817227035903077535788977421245467083080076470009640093096075196531337639852301291673006746761952226889517912026501379603261610740777107048686945981152060474087387307526955472460530392886895117555183838508436227676128685014212831310398651977626377241783585326677484040142447115800597982610352392583391791555558849380731753292409301152775406103273873799406273555600109862378215085227659330553862860570299749609002285638801100067764095829837527281784636315769169379170758693378243683437980352091703448878734480318962489670524490159073134918218784707941506267782757931760194733293752604932872340550108352656734969232229176215554182928190048953952862692342747642619267741796037768360450880945078336853132218198385589898553405390339351048588059344613712000725438074317563941076078963149030180422232537402745076901651595487029738792691407717682479765684105713638677271393891614351207952893582094770062654278072104070400458025027858847905107998261904414985474801910107784594034188982667006521976230158228903450035570418737759742976235309432163277962009457072215361166970809506096493437441077119630285669948114898285147373795365404550791621760722994276801866836661113001539318795702582959828724513355994457878098085760602056439306622725444793681844650882104283161527033205979032190703280843261714608099866109914521074929879139541195010994318641397827875205042950078809584809404240894024748286766411300019980707724060386860063903715167921765743263768104867859751916212296046162455308262621449469734417458831779993705216426081622309857377566800870675792281347905265656327325814973091474376755447526077738497918363612319667053322090557185380759705401423292887160406946808307121647024636569676165653786114237798724850270390955012518640697371104062624408347529586078406828143823837266706751517310934172899533829758126773361751369150957676794768510730468280459776924525125352690003525338540302566974338841852118147199385804610620175214919125316993013479149221525223815663840620130820110783236379669777125722312308495106671795003773857373259438390798399946191212650594106853206835578085550949327819153461053041829121533900855370860938077285393178460778006186456787230426994772878818788399101137910480444048573049858637701446890796339460151475257469750774453585787739600333948461533206649186468036660949688498307018122001694374796128446872980677326144369489529792838249954963185887202581262912643545408624134017567320744709185852508234467581290604968721361133061299038243424167161451409005826905448883912515622744936184703685341282150620930737479244865602063042389247193753478809128934265071857459537524678339746583116597177908148926557272495041074195586708215657446524460606106954659415940468052539466469448402071489705020220367534235054681104737769245566608234075778669953690846579682804678056488244136558138296246065929691862336272944776015022430665041765529471722928954859794414365275597339841172873414351108482126971552818458274856852502255494740446140274299414641743022828152656288386044185147487370906143201400607322881228364526872836332327636657252451841038744588366756234922926541514902629902718171973932531713938257285359340635287037738255437088386098597071902772558625280644452710384738521726214739409252930906108028731715224745830612988078205224357627416568511146923823897921094022968570941629533376374649269663705507734833477873220795132431343599245501741192457024435236130595226168836325168322806101002279353180161320176576922965034637190636936980509448700992113525920852018445042175209224381165815319297069305877844755553925332860595647517128229924599006153843075779892665454712708706054361145397836000720896923202369650435248466761273972544627268971332114525935688116637452005188029833859116540720937970604053172308665814367125097276331648353147180552156127890267525182808799372589904413175451822654210440257383692451918648888015916691726006884472345074482928461884830592963191245677564957319087967882820734276755665153000826086037413365326072833545163689101211500287230256149524083628103104377361897938034458932601404342923636638898903351977511364873433910057094641901963027105461064073593213131234168309621691936316456353426438419183545929970459921636334134674086642153022859185584861525698702317813008552103332249489177365222074185095017264994820364878165012989786449127006204519056519582788643150757697234410282112012967182990298341018857887313642444542294279941897846074704531297386207215115627876332075118504888587772758344590332100626579772748077523272861823743837238934168207571520430933414891283182737212526164685306064451987066179157249629843248931548176075025612396623405909426887432341344857323270934079838467824514919187423735561528081125114775901814511249954119965452561029904424780960015207026201051480024960608423251028302805722397982313062208535844327209227170355564969602819671482584571260808243389002806788231935786035229284048447127796361267383205786661684850374260246539917240669350230927274813816111473552691885290957739499166426428033373081473830797813637197687660388836810871012377277787441943907650273306035107754633769367269264593936989865309853585962006441075597862411202784585998118139774943085857840728960856515434034892850056997589751239841250177844796477513321774584299861479527672961425901924681718343099316329349787407333310355869297916547887312461744579128803099960448085780057997954956448242559442732610778688300653758503480753040218489859990166131099254216187239449076873799355174790947468205337955290981951638685513253945228152826381995939243968433853255340837749229937150488640868181445241979074915109526764123165946234839627922197586382465879963254077147316152375716424569112342527306085426970119765822741141546837232806891772114559660387816543790382578288918207712767349553631428991980642514050930731770656479154464034341201744254796372590069086563857559739034461380670278459824868524193189059803174984690264662765100527630456324427905445416589704267114729389315688332460823039107433668474527240830189212539824852247764624961932896071346312391628040869763749960045409025332668891966768461196071676677906237844072873021412195568068201543798594502814211115730696464550220525397234094101828746963374050448014826725848417900668735482564100266147430914492383830468753065392641413040946148563784391090470220780320432400896492118266373409816537166709580214830643141933153124773647356101302145818985418891249292250059826476570291619860429634004422121391196853677423998704383452369244154072052153657142715959777823330763296461013042452187432130090765542518493737340972447327670178647490769526635582084192942331583685858284862961673638273429814755519401859279507565703193230392176746606861996089584072262379540864605677627401299438981254735486442063595873949925346442015360506497825695895807401840459740923010085829001931633746558637715216017035551713946034714843209237429271118637781192880250299099314983553735860678250561403393116566775483893932297123646322354335089365653667343243267074038490557253740877820636276542302548113862360802290971754654322121730122382864889543159980908855080510034913731181279164418353663720259967232595384969115460117957807239496921093531598179644253610578567229935199025194678969281457236700760899571613078982138286235766322710700352170268522740372789305678808884436789852948851541943640564259620515428117033728261805098120706286926934963847101603313096570781253511567694792146693823811703626886368420435168901388035080462516966774040455025200149294234075387332094890899297265679274357998031525573237333329990816300140680848590816337686594596821149898579579793276811546436007333929474387833758041971210943689011300644401439682343143452979984260482368788403164532499275152794353412070427177518576008076476743064426137168738154750789760268084188885221632685927380816983257463672305862896529023434956229701082847665747889682533346077714507537280694857656206109536951321730261681676734531660463585402992385575926382002769854004690757356612150200802516606896021810164062708820681217995365626491921123016160706244115738297690329175619668131151388344893460694474341150594265083731210582098611390631896969348970975007365980166937968843207933444418071997950419684450512041016729820174037287463914273571352001245756935387268887717130306762611583956341956252942672853324383748219764947691136091757096152978231271959525139229505647640223424355784339837132781893118730396004824047746566051367738350883939979057904694649196170254330921377583629355084879263450411560949392276141627782307213635432991226135562476488964059572273431972949314323311614306370430724244074340254948599554587338218534819359623617443352292733563093894961473298911511056506504027123212013185996919611738125101638444061365084815373366395913085576032370173922308890479947437469412050769378868536049086369049347247799909248271677404317659883471757054822346821341194483983073227610319830096795722419272905647852499739028260203484845568569301945070762819567006864202486674198751257262244887255954724598138124603901139002970021268221727652460869897803796653615550045989865597657996653368850515077453495769361566575088496847981540942223904094387981162248785843637450559945414975569492588568223330359517345629893679444026116517062727421514687490941600140022811699933524283761496439266518119548676052813316515111096328292387028576970171802949691754531972682916984879242268583943915878446777476172359290123335100774403644041341610591386689344738144467280153010201586602258920332275857287212162944142802697656513701336089145180799847228945897357567223779183440290122399642781995834572011630813941221462318066352219774486226677464820922197277133096328252867418862725586421285102574510209472604430879970123227216340535735527812798901310975890120716719797090619289495821409165842006049521519895281514455124120101941063492017695064821006006263089547001601095417453467820809432519785464607036686199012882947277596283827102589997558468306169285112280103670627294943503880126769010711532127107933213954018768110045643835099982503954741583135482246657043305450715039723785012870260856665593332785613386844986394478514608745896945337771790678645710683520469613570993321364042323874211085199113815310331775834434364326705296016101514127784774230629999537278993547802246242756171439088613354014032376052066486759309349241149547402903929916055887875910574942826418954464311893011130251419336081105947636313449470343679068783144812480148903243623861453700793932693670275587907079658603855571480576117578164480969011135624812954001535547978397288677477286663628644755036161257685175631712178195567446362233679002990172772574488840326643317918150439504172785884889141375602777065788332233012476515413477959527532035252766473514842109498058865341052285359775327798209242083585992889669030310184580947308590496706464723781408570997185537361860476777084972623121647618106734480958766868442206001960283611558779422916456295208917754841756340649083511733526324233160411250356611466872280563074149311131655144111926523488043183727558505107207845626832185277081875446647878609972295238485538963983717603866638130684935328077166154923127340471859780872529679168157911492772882326782792955278135231937241496049353883096837572338492345020791791861360961607468045935009019245815392386806826056178214584403665318227322876579601552659181504784363541945463470419284209220880270363285103230730421886825465300137278429565553854009675591007273635120324467942733167851635965210498245691965973938863713279545974913237147411729866613723322703674347758071601775064992465442218187090615776172169058326722606747777490101832178359085538229996864743278658777575128774670317887126212196840780022253254044453320679639732464623731854612860263584064969749039444444893025551877884884513477253191631458185687588207319470724593817404790479549117597977746962747132232311333517519231889588436403052213995515384596141232376152479159090096399934432229021225442994890777314234667471251828071110320826609191394442473334402403447105815860372117202606166857741658683597755404864547241549828507514367818900161654642057260642123256645567838484020311478375252650298242692597207149176729669289732746517024444914885783477992729253254972666696954720693593004595066378535350124935693762451826513141835008025815550623565844660009597205234310052605337652365954313778388210131914295162356717075472165050168965006938767867780917035115521047615183458154138864533556216335682641750168253442572142637756573055819696398684142860643402030487070131996892719252435249897494800329136284882367436755012355375400709665707811319729317877956049220856908081315013684595966828078506122042585037138017353427067470742044281247836179647573843330162698948207812542655895638998914581918608460723769159067722248313125808423492931615868370339228943827990518253589939187201346583284533706045930273638855004613575728931494590778571047334132543299436436245930064677688832956965361366998289052486331804032671486693688839798168360552276628469648983538382118975014549489571831030384704639436093988847965830969404632368284815997231736803052142676578655295594954035205230326750816351044331410012832399695271136514270293399321311115020140827055640363982837565832272262926857301689400119578232962838639028484602418862668904362642157642057891579952354143143745697896891188500001472229507622272108770760789359700869235798740742780116517737617351339404104260432187075358877039590937384669982514949513344769890992316576539681367850134705858279329279455376674040598148972501076156296101800558080502856017044748429972437831750834639922042633100009236900768944901853501983267085444432577880987570086354833864536481377190945496850570961022825837119635802082313919657362495479857557703513005815999025955712434279853836345986012706657734272153242594810197359345040041663658983987253352683550489622967818747468525134225500658059130711719893568233523145060078106661594498663139095633605647040114490546075746944615251421374888757204005383056606796671514431837085025813226725796544174608732714434660938917622653420505132158981017165137792700285850902974497499533003007678821676228192613164623525011608571789916394008399666711983121941073528890960902960724589980670252923022325949356637229466184550727464414980819655741264220801086960379351607835462948221441528177478296360373557428516825674798662894280075673747414187540320255472136874153661612859076185832674590856967242682239372168667490560371175585107041624093411829622527296460659406659661330561870078711998207240585034895238096889848817127042048442661121778068828634555567067537573844991205023671474689130368532527283439720610308677236769469893282184922821230980918541210234377878031131932504663541857542410581857002714696980524731495225159412714976852777114272745389358778014356887406335583182776158623735924633933118985514077890212624486875204544444423486558301863018620467590306670669506982412016402170985786724330769789904509043389923201993018818272352439402388335221587571378816666256304853329328818577773089338602131991098782795893680358831566005277726851086697664476717339560406454712442825676893248216186063863389138562046527193247094850801190339212909827895059977076404189281991370570647985591130335824500888826947894160957471756607012785135661707702769373076313376526925630055430466521965452301819113291508940764806539094345849037577198038034871971786460708191893686446731122348449643686194397075268787285087483467428634875487330500027498566617545613564843315312214496597244139980112570277318129067278058007015225271069354496904941367696234187681370848741904042747422410360503171913754201007675492801405091609352945700182366656511256069743465388682339912188030890011070457323736724110769870216779093967085234093890025970245067762785222218226886679996245413040480120152055573234571751632091148625525039709856296278795938451150685299197472732247056174153858013149256942383242110129435112316785213844270179702807764530886679259214118237504361182755189206702746066984856108656351439502447469858168471617592082298619128346433786735790514261960347486561935700263773876847833979205643555217339616943740666777918644230273533926092312834592178918364117767075331334738447634640016981473062060289429755680679115620969635541593005307508519556685005421370217704252629912941673599017526258474675514923201345486856045103064871724896073095752016777406825501519299052657910836649530810027462242995409417454300055706964903876203417327753347056035546858372110076728050260673528004054111417145793045713779400913955142228815348426133055485507497630626499425426793075376070898267815107652346024304369392078983832342728525077587185716443915409676103222140807778823711474916383416593365119890248778158824124181086854805066626690427677312078706049503170416139537840700867516857525842164483127913883658593442555045177615238375483899241400453052183550857065409181571059414142110449939785550839209854420755166563207448682857243259568427096286745523237468836452389760879919816664795817134453236666723678743766828452546851689866262869650230557125231677443907764076238126703599358620888872142520181650841173488715492874302593619514855742769803725691563135900257355758102204229415361160419224923079419031282820478531788402791651949438285180852502710272207016055587432202759685655553265702869343831140379018459078784166962112363390790338355149202131446741984441595217831336699193661235165563061000279466952434320797991600121698043228559631094692346549913088793852926776160272615478336890434504987278826521572999857097899699999243162148833296931452513585961159993136452418129613069994206998572154917787883909261918542607892049164025169172988668943149571713763948229599686545435579681929987167177758964352689151228890916588430298717889660317919893511840880994703486757641647971628037963263005622362635096302692743309005550728668026028773437266817628097365504971328158418123790377709813583737059330240593441067718627791505960479784079627703737725869867968394127501613677019585157473451571366546137144798528001090219406683733105532787174134892011642006853518960570127109201879697779761844989560491233988416764430688613305924433653413112600190093067581814997155782251533735548643000766479168141113085631145565237855975264668418124544579633834725378941372755289482781224381039712504965537478079420128826264641625851983652991989439028444955494691468681085974820478738555166030379830708215173746582079239701065080007005222565108712482581955661252248480121366587993123404749189385658999008229373068953193799010132579389848823957128604918763311486614157933789767984469116038806114047403382227827496391142659132516654259222962007242212882975881014448974886897223647913653153325268427990103475506642955927157117407154793711881068102027121817275919921115377613140351807315331586581639870869595201892702822530393415816448234941204637570118615792534184365768815171541308022558110209781967510789180127426987293885904534795260268990541518046117986728675397689105276906188702114927012775706184349316049629713835545267420609732171547364532116319399905336267854078509103153086761845315267788140561107405984597790826471404800425824996209963463633062296746165419467695880261629183400448735868023023783047755555588672238562646893121283103231559673623380894519703981217012073401094446175359354448495734627811225289714642582089973919404728658528813762135593043817013165072971279261025304487840672149485424972172228508674913166702754674628074721881991366010845504242074235443563973302168319405819169204443470774106858975460003670270327544575964906153454127853120030515836098338511723521757833042238818326899122549169864568649302442809889352913778245493209062740337469869779295184100447366700483841751877514658634857465438512877083228611327582021239742705610218637523604695366404850878860867706631166360929954109498190468259856073865934206397453336809921522756141152338641554057458588327594157730041026641432352002860929673110303916316213249922915842932179323780966659654994704267398993315205422065069774112954146248516062281620760078258647388083836678900832561814930619273151752334115310248097019240592607191690798995031422716797846928240188657512117916588632714168996535193758028592266361135937469072843657853905730877559127265705820235562212697562748396461140534424281655103883663353270555315887752758854949195662425080721195967179679156311727921020792295607864207318033081519984600263968998956877472165729161738147897110861150986220218019862337982945058264877750091702821443193431959532108155138412616617693218348585684588976533679163870137566650868840877520429289780873352319338001484448813756151858734071185246797451759913406607652995564282085056182029337510537678675114817664193470058597830253252179337030416891624739776203819570045428819808996847515298837439765577951372534133754403023427486500932573822970641281882836904621099683601539055976183312974694639586865660665660531605333333137257009143087698592458546228000788779377721234185079241009577274354241003286183664039318986883833719134698711687743655337389737269657900580594990212018519353746078177332186120763115437067781180478193984076731937519442864050099095353524496324413864259565331319222590004828628491110196822611983125815034749346894189672611725083243334331645443136193377533492001002188174094970937891777224602940433784398807929464496812309632448691130758418706288844823923875078488566910590563389088121649962638340144769149553555442198826155495895812533828395065655684295047138582088947521805329459071253796374543036933596122427173458144777817837012453325162846000481922147856940345001783931761610441295363534940462057020247239300513357316693113729418142020285484833443999771712307888271726274578844644483446686858729060326833995747225999785979448852605704447989081024848833091732491093430314297940455414968527046804939188213238521458540901357698185658509341451905598221383101077778555178032393163497530815574787530162922753955534721656319534733131122834891365095698262325983163654845665375277201085604852095315061024137841191774597569433920032026018001943064109450859873341071532860576717717477976453425019000723462577266372657643835059247275752427631307876796137703129508783204334447659904974761149675197668190263404628291147314919048701383390671771094738497842695054091998525341177735832955911248824375912844887028501348102502717521651935214796031374381686669003194572282465095558238952859283368208181909393014685443369238958005403111878489436567288887639631351977011747993833691417773967798941102302665810562313584992411507221640862878227190845247029569032734110074613705864833026553784181476001350349584177928492117402720094733617414193860414839212605669515472981022120671381121167820239616493999357851617989288309563544084684414617551575871218324142825794632946042944204694887484077857691042167600129564358773792364355021558657333287899244588009769089560702838248615460245064773056728025530604562551640033412755531524924291755756879177115424762975642713100992208394062315771739922713200927789302979961683948142229269696816619301823337187335469538770438460434230815780673095500424205965183244129773422184783328265470164937178823368104103157974335019461752058750001541830223380170395634792297020253324889069242564796425486522192335660739152183538134538606926339134139516660718535564859702724239089140942913017894461498264542890199953420629022048010863520638191368149199941743597188778845604892226543479848879444755742345515490048319765754248342946046541744508168084135271799644510298947300278402878405240773895691384552599786983320416674356984909728218852348877567265776540985532805461039273887154281976406668644635994936456452520642264118571997433059554396947569783436135470946904418546528611801907472986136470742793489587370721897859120281587479366256708297892064628577767102013962452084657976879091175479018787896976903773254785588162342562676701602787767364723739847667442372569432834981441757649056639917290939950809476877686237723633832181112800379620055835013052134893681994084337096289209477409886126895182308466216741404167912345682577265481194765664491358211008913523819198630385783731053455803867855342144653792761183141168306263774211273678335177866914096032816309889679216865296293573840538456900900400161884237440005352180181392927075119610462162309095654415390320641582341370885090142993959032666912053789068346978850880547021764271844041622847169244923130910786319049123608408178842114254042142964902858979371127721400197285084963016135729383811917467338982087793343274622433870248012112041750965035492190035677046821411859145292030796355745637411810922379427228885017125682711466565555718909702015203438141673588182541963664785289129722988403925571636182333748411924776516265262913946777117217016821804988051884883725713093737958344537662543959237934848697845810179904271689133914693957229832653362717741768773867134852731958766613559201632395654149353536015074846674584849353274272750032513612330283960926573003396126241379664810427121048408470408157156337749480740193967691569262455932984185379303441287205920766460947602788590249700393076433481742261866827266317505747021113110397271248675653505094048664606088319555809549208861071288068016969668327884828760326977342344845716194095410944762192091123439090318751359416899886201007840479393346373241051399179309960716100171104962069871866891518316488766659045228425674397253760532112079798352471748812228902667409694818858325892458835260640464513534555735994366837879249353948562132927654690912937239814867403854934649979764749471079865716664944446736054417588619981525095253523283154154391034023381996534368391104218639609526920391032364133802276331493718227725028767450744061055192987444297445383645035081271619718439661975505858585060122773018454264776864985696161613210267566556316447692439202698227678867983856253769234760748090793556704135122126518176621873078362153209628185517520144495480578430419653253957546360485896636675683405280405747748698584503703287362059092384663883438807353315708398794960330999676746369147862336789766816467088626352436273604089135962600538670278080475264830591415054298510385776592929441024066862816856175459911872553236265518026838784429095871626084888901051590812727191858880155993662282889813275935733996856324724456876143370803491654565061239943433220235657058119723799770061577808150686545739434705774581315605660085145302399882424621003920106253904489695937231998916266408811716439373288910195090098666314177151497997973261065120014613293633568317629651806297516176300058118723248614680115895698115133559307414029832542203853122892076954377435522242730766442550847995111173553873338844453734446013056790990358020039092852164808917995107090969132779121960865697383696068869548266140601376679380134272975259581292085786014697632314870287141949080917746323417765819368389721474248631807611838856654228277401743745936893969950548711739792318125273664395692026011034248481375142974076356599122538777302604360686785135167522637634778137379870866957837516548595153986339363482941529709691472210890257569284027800203628563987353208193431082683703193984181612261572131455618304996892378430417388919921138172855479267808978238868336187395940799925325443565832205975750283486719170119935071615052612174509211328151301512269167346394898051134898315743862057093775341033817402969200721260188396628772114309534329255140481259480963746123203790174890139008296241840902746410969883254452834399579456598522561846486587784306996598056753463868367549320567469196751828589224137305311928201958428417449714850120526857600238313604448551591355029195853032160853617437643158697371567462451325678594925867854551296332711481230522825882971388996685676629120221798899606409320936234925436022138248957852983343589262349751960841305764875808348965963441667317416630373033373200562140348649500155359149096715703751789690686756506136158773761880044781625799770507843882993726393350425167225095777001343876388625586306186435644214654079965367346399952922940605828366847292588975188079751473447678717364578503558782529553774598005473233283993223126787169746844768342643526349378421266574991432670110160208036882652559333204923050293435663966778761425775657723566237073191317408373656762470446465958393030067014006306548193143565596789475889257738109077940526123522954035281058702575494577986703129682965881549367248204701597849161206458057407821726842375721426951823011688867980911822527974878123921099130992157526656285485324649809089999898393997307608906852550654277189947180996235228418130798492906594486777918300484220441154243033196793655436373618967723951706091059687146837090372938061104913573339470239939007535179587938375665909502630423266421500769571614277311375768164757287190633544596496420744967512746977748161386245763829769178109115564459730504830941573559937230487610666787840435623269344616390031551915641447794076500545957931952383920892863014387600869266229101038347360250791022288341440120618547886168088406784514755943196853063605301600943161250334648324522262031205333053306566720569851505492937163118901680091956239758872746997695650871490897225095753526306008383995189947764497953597871446361588943471306790564493011671384116731095561841084344463060210573956130197373620964322205096278439889903440652183317067419638897015026052915773348342630662062115174241929421582526698267322114659963291130131808004927947312266767886083386238774233787517302694295290063503872319380940779354625735273454101354004494585560255609119698095181509614810552710526810602749536033708136541558844959373197742407114293200873420399362040286939112872385615261826998323033021194235983558710154811123950668804097816410149145470090389828491159572015544918957077409150453012464820715635756971240224040538391880809395037900809539067436009862211390718509553041582238388716565630228390022936577518627060374560806812261211998718181004204473410354025331643745481454115470410078899658687337905036186965605547586802352766376411382055903512664592124806617552854018539877088178853159236891472234074790570876298639829047014178782805010389581687908402980974758153873048953967533889764788331684327274151916436823312781105266825697945156884213663562214204485735189896144259536970068648651729676228800382494539223527497528158483021037297281730719096637287740366030178434316252120595745747923937794867272914517016437912808527939654225615566749795256540921828095819337895599083110410182929064368117069387093269187527884273549470473376963169749126247781032208874933555149633891208086030521397775559132152395898441525853239698415686485644734592512307418959636698579525867124368665817511941436506889233867632719413856111332145427656251604864849917098536316339366074866714196860609768341885852248654608578132209940644770687916721366627450581622458634738454683915597245603064702758327738503763032402030824247121571419856457984009905886781929080644740058448435179133915833812940677532627636874601857392638803070721362787084725513254921390552696581762273713348563142773881168922000576050021442225016376593854242306385072831896138974408158987592608572373901833999105462963242599757294806847616227809169811670380236372102373104486916727149724243965869291739428983591782146218070612811190588261193155542180727022946760907779289361994195454341706748073215978844117233955171130384438460498419722247138412515238074005608614621621400121150723900792846372949115259171858084472631987602005955283521446414174999064188837601491354918439129820474810000863359481598162490590065297717741348413755353936369778927927362553556110944222489543285713760592116723695119500734396077608888172648985633681363380015378574703267127818685030520066038036289986915432227993928047532326690991062612500375523790853222701517127896189998332650052606706299688920963109531377038528920980833805545395976720203463312421271943210948572071985201359690237784481335836598727789985914136901581801279005770511141951012536275402127902885544399214466433246322552608001104092543215464671368622287330099241783470789735855400000180745664076720720946615329369947596390798745893912640749137932869045239518082174769215257560550711521182351060498733888387359492311993359355063631461947439010500122885764644259910186458324480622428566252718209654158233837427735581080355271892716741437592401829265892967488097591259961266063473611533866930173477517241158217517618725696214554497713341386538328153406158509624151741894094325519819535640359388427231171810852893278206904762054530079362403993311495078289856729443482205031089232328968669109305610952904787980503948827938244132135740557626460202869010097047306839764989544061564231299747034074543190901457921498875946158773349904230851645741185319358575580363206537768194551099202331264697143210160355875195682487676600573505285386553791388221512234190183106503914324794884146128844200167365475287493890243435813831748007931169073118747288799306804720135522135024382497075465344050312984749617534624832902346099722453055242266844092701771623764186150310626617447876361789354640055179604423508865742999808426635145561789674545784383055063240989171237913709576916537245555065264520108238215747969903965809025164134996098856453818479626665057145096214997872681396378881343145079800022604417641163113831371466701779620544643342615424379114866695868311015963608362104828019642601985783830988886570973668405389348317255442808313876372451915741382533967605847947523088531735602260990579867266334165509924276631543663504331900641184877451788733259880115350663453777438080164712749980392726490689634518024471753193529807501662875362162764846954828040413824470868146370600614762529370825164382503836948453102592198464622575878810988961830841806225475405343143929927536457758187045055149798359417906617137843134884081693354057978270286142535945761400309645280288990636155585851377610061288163961636884803812646271842783518326712351235209102646180829681264883592327163006833723198446369711734078217756823020349675303307802087533808472764879746650742674746866254388936660800611744693065746060747855323875375783811473397304726454813109879904405336285192034370438534646766504843912875601931808431696270715368015051725259422609640223971959552637756813695750311716325534063720119397513624245464138592142498061170491481768462743275896926395897855422951740832075830911275941786927007579150208212734391234423331867984854678914988581112523763018866831321552624707206314810202739987255090003985228767889164270312032319063108510812282523531195109296936128471217127615325103770900344660502329387270366008997442552133343401633359922384545311161285602423279105222697155410969193264821681413090677033646889995762733752292577923535113121927458574188414421592744326809287572726720737055986165502099155421487782155949978124339965305740133513438532724320011370407256910816819591979212706467728170203583426944972346115327138891839553606532675842962637154813846826577551152173517949981707348689257361252052159366419129282128486361715377922406649734185056053249515929144370710001271930001515187414232993396758312629713748342877226559577663484160129093474136169613299475281274298939852873206575924719480656046755550093823117998873814913856211078229877618413986101936268345621084651934021204517980574183160831978503549977916427640864465839094906186369498068652469805010865194451005594225907599300699822757336993814507993185798850823554346567667443453496065169758570784000750370868664840784677675964368667782347878642690284964685487544274327875098048758179895799240661673312278892227769117599141757040294604334939724495974616939652868524738268372267942364341633611621202842084745853464549052915447173319754006991573033040857643183746730805965033829666323371975601650418528372631158091885666034844950934702962642022457794304875171159800741385891586821329388352723134094339174229407832894830407999990501718138756472922866209489206207736892640560955064945193634659417805512670908143659883114245704609367779364055140032030086581589362601018932015405656921590430538101879493367016598736365855140186359123701374015496886671274933337021101485904761899925760538974685834638773612985268940705652212085568349587709562581384281919096058736173423115481880398711144533284576792218681549472001798746188737809545190214681564651379715561035672593774969839259585370591528294091634978537645866631866366935051825471447727492952766993102575947202299586135961261532323251735062770369396083911346241280777002187162448497411166153905778965514365494651755682346779127935928308633309879985095424817935120609919623473452147657636913345531286025637165584994991253540335367520192656394801404094606608877668791505822969810427160982738842708997555522804816788545447668941015926492111141137792227454762449778875700679312833965130143379642527882587649001518382332878177335547434620329506023765050497810350886974972998514290774638914077537305002776831555462533514571609204634160489620591050570359457758021595129636783324996234598576493502677787703914386195323182636307841292979561116420242554444376597418158406501351389801376918581218126682751061353459816676820309626476206720707110274667194081775218742461501089094484327120668184526364487350512101918857466391693227104491720877477969804963015924550228944575101587141137916834670261012815679982935324025611429629744921846357242745646312174795687977809463130541345260385368314302422599066682776617337269512428139243230848509907366679848540746756015190365608592320412066293203959689959804195044590096524109377266009388125295289598794713216439030734954013944901508666650751096879004747871395633900015120242339975680598468384708182732146849570517549868954057746485281407633913989224184651308567491527909916917828268316552587232607730995439909342230082921537233974540023104181927070266805811473248475593361477136914067301480401261779701705686871749155246944429846073229335753299250380233098830616553648432805419812457880676853844374788929439787594410526716286339729582988387525588259316762340722125298125947770800292801439377993055113051758345176170725622907574925501045126044770199604051126670694486167224489273377262426073481277506088985686052473425160076115376698743316403518300549876787656787462842250765209926402383511330196765698944666829978466428930925797897619745409220119865773846533598507687666102210138945228276916786899768794032450969606918567703695466947930494811315035311535311817423880978245427632744432342661649163695911404962095999267089644987761041836551547547224093716835986337702163363177202376767144151713944426329025326043873884891265301485289495103127806560993572563110825929801074785715754499015721287913209686038684264770346520811099216525572059619903236039115444986617867841678227599961492569951200318877035529914176288400365501964491462575312602149713257615484660222084581367298765062557880193243591865655516595837115671193394652375011477325009656292461347525283069569786523713891397123426079371384398349480705596268441148550588081675246594739339259819423849631853298344346681679694369301315184432752380931188114393896097283396585185643098660980124726731793608795887315580673307313836647955659961804862497209893072845674992011264728982106459426024677893641476893017228696248102165819915593105259419835982777558656876879379583336039197903349633021829346084574196892356132865882532452994161660895408532380411299686998357089790567257527169104777918922038749162630865934498158611128266326837495475837251177404518465839254150486460073235282328908462426095715259150115687268245603610043451862146885297553099261586096864650583221195554031015973821554941703848759180712490857749289463273840193687562684971041125240778780945538717510550694792216288813294154572521640088308691062069261795558156472270145536822329025476352034921200823776202963370148772968528916241048303319876868448071430985211313556754939783435126394991159155023361050005711489917735361716074901592055786113487029219360337439082746709280540431774638554422217913830845167921555929980575515123991495073952069739034710920451503140695522521722550986601683842379678536443833795388163542845639423582899796298283838214324214415793373565982616312358903067391834177868616097182687794136363281485079643165014818421607513668160904114916327774174280945720944892993049870724810377044837911955183280593258849098412620797598305406819812224114070181302479224347268739929431890472630811868578754525563545833674025357920063329798272264775974663297296940176445842965679043252849683133782277408109334619218525561374489243266450900294111187045385482051349526033877292399344745780921063726910915239013086734846390093142116284803656832972735676203107001433644771553757529939555951020828239929240793929020529070797299826486195670661657846803986318817836498274812097240094503968695209492962519001575314116922881573543079418294876366476258022798072998360165873275424781377286917669689173087734185684189955622410912197079354392727545528178289576642419893838270237805449158876302320657867078411753915292855320304407474602120271181851377053628757626801217008264316143051595853391132605066157639965454830670064927060445870534239018878374791029172669750174311107177945345330201209059871669225934475401738808916034874594145192794867179724973386682872657002520372643604723295985119366691100399114483669301940672942754921883304017647011123717269906564794979336450105919535515528089744854829250446645940245198499601579478525845187370128290279767749534895133566306237768168443451865096042889949994875023467441153932255287560486309976889182023421239865235449251298262286108489158746785585621929195055865217406658415232918220513089397669222656283767527114782222136909513177876684919283944010288192481646039867257020414680849632285769725394863123745376953290413247832297439162086235438111529780168359731431447674085961665299421502615436379406091939056758700881729933189661017044259987739837713443620081256825025695542708164882650025201796560754210931091175380912327684941874010691625191198684558089898569161622402500279493675406887913081136034594345159314618778434406260996874753910548586471147994682343717876152903290841462189355065444990015550399255890840222259616376993028075019773658085350371249801530809070115480823700442710932046520438560303377113382515450209678482135195140265480649956514551719291928305762329488223020555186712831294843151993056843618838245277919252796359842049543774737359596383653406815207636619208064887712057190244792182394691392320810963207088737194009654437910883277693982116276030238239025807972244924562362739341539146324784329708278035988274810415496124055944975788244184715818928824804235291879880400525154490210987474159793428869704539841042617012457889512762744407610862277455218667787647848351411766438012289789501077180573056964705522420115398455089714775586309895377273725934565656412457419869206220716098954952962837450230826430120833692656875445561992723568583315733716598882448929329788159777810074290469669713688105194078211484683665589037434559748279035189896551515270116805016804687705889694521554770154202594898856857035629798981175109104874504340000652687417122923436765015219386716042671131368167763509067746652688587693063167351956429461466884122806945218717998269658518101373237752352510630553204399283271117440356816364669013136427718536091782391618216127876443093720552344291714284584247575069984186450740901156735626579788083418661301517026308630500419666223026296057795315374437579462866475448828244018467511665945428282494027351412021498044987439999676961500147848755532455494270858828595286047835303744848136010262365614712932740921741710714462829236289658001012794053938871630672117914584652149877922523033677094372244221893244438987604079260799372810270710086568288711555589219254461077576223479456075137773983367187822092666315166821449483919204901812729810489791458101407064133496173302560072101373390203748437718316255081161824161501641916540781170388192853992474643146178964334666885667037396904801490830247066058323094998414849281639713164684065910338196180494409722288524207781106476621206734042448158850464379511681366106950975139975875203689428413360819424284756493755960798491314208952910880535137578206518542742914990107187093850427913898683149756769089561685652699036384842178380255572919368482564474014293934278780555110328328638274886868772194970080498799481624852597337172964472945905863185748339786048526663313214318936514558121888595141653288492523369959594614200619320088676100913454982526100680688330303510411726346081965554368070046127276588739049125677509810046335851740210970330425962362923729162286291355872082187073119752383195741576247887127533546690554499277279451342160693920836765732548378885389643718777453229804554724910957811293018240530686136059187295539918096927196113013913765198225780264663669266071915355803587368468919714331075310242337829115178325301809050784581360512443062986521617859561452142016377891495138150420261312355120645502131245491898479303954555688687887563136151123045774294759775792740943215815709110654712151507879823525136012229339625890789114066748590596021422326541717784429464428718951317749600933701309098535468758634026644526895469878779286642714128442187543944322323812520740640545494066657182084956785013191542885263640760585004463882637725503494009376538813054855832672052423012026944398748335478234403858157478405344775147634539119513466810169077529769298275057421155861559123893224398329327396915934127147748071251252380661882485111886035139515912541801358252503577336799186300193829928565163710779252376822597135238287615130062583324282682602589377652295151379350440261303232227950511930472368523677945682475888452043119015752042079443358893616906101181591176574584518308390441951481670089671292961021804523126233479766886506537930018242254488104046002072198131750168376701257690817607969537633632495518493624042837801251973347970413551159617501292759392177347245080730884164742924047947666504741694748091119279032685407956730268622620804734421029190549506400725323412771587874798710086467480632367388754495082768599420443687377911206850593446894838396039661440852035996281715391455432701807670412478443355946385193778084116975853089164170547781526945897281993105102701477784636321973282681295625870099509943632078991647867117104575813481208933520449949400727208214086956613026847739730534022875312906993081789315309587858809215127819861442749204073321267697780936244129895150471882915400164128934931818880185350885732128881899040620659508019411611153320211954837453772568815171302000640994646346333319713028603372462528429308654742205607630592721596321426912017067978587339244636448496927914707405226058056299023865947163362807006430885048166426627790009811449068950456102140944951809619581465602781356688094836749827494842103790161692943300098508090965721646901565821168223118076208478292146206665843710914053689965208807226712025248946612148624557386237432731313249493179237829598805650395138319820451334017360963235290367793481639704074366516318720894825269534857976080747449152796701062654656772658692914087928977261304609641648466960919725380760796139332678153255817836261385720752446145079084729608667374501944039378868671516568818725707284797420407743625611807415839886607953741159126801767835045222746487840251035268810587038150533391540719879947973941986347751260513140429256516458962497357632363593013219245745864768321646085402329918583513286852266598543028135659806815539306353782527335916009481657138829426388482144508657309875816676252152817628086714396107469558113830678270058191183428337910742481640142861111725159503650520969027452316802356515410781795908276086190860480706018689767603895062697041917716571010352294786197835595386123619846248490634873893303983937176840932199273218503606995859773440772211438950404538180632232980806396818199633613287647671888313082590196913613742970196267897946210031015234231977872030263268335433383266495824106537040134920225115387173706585809097652069931701327879429648113815601104971846457980365863936909127626310518693828436253585962513805657249836483425844125405776333034394942909435135854594453218672993112512611623106622551415560439254005931105645872031876861791685401530863284312415943315120081281114101358584250581613653887395895980464011640436163001496831114104505224553332654995637198443160058866344838328882707300475353340880714833379025429773940952190150204414657757391634861140107280684475940548634281254269814816337276537882839125356594582981782936045261251111211866423715479321462796634910368812231170395249113464031689759386563875294948998224298965467736918658360124589709602503104696658386227537888163894317141406061695660266082867553020645471585929213277477672759328550874784098126650346582374918691670333410921642558970741115504510602754038011933960207726065071286432789676264922369663790532562933526088802547346886668108547916777067175073244309528450588265143239702361610048220472669069987170979072892505123513465153372004135885521969959808581929054957439186320603075414720724633426939647363647495686051722641395929387326839891506084715354190253597540293691683135465866852259627137049521064232270704368727604149041148801245411302519324677206109630705000771104332032353899629579064370496299333432415124606748652060890131921723235997927963124100512971819989574564051413786395301698787976251232018120077833869423752747867988179878067726441769976839893684046667724134332995468690184157451327744709946699825888000769250829822797699591942889177513065885714674473533598684618142924532000703592646517001306812549164010917363244786118677479343809931721043231854813658619880292826251450140120814298597092683873444615153492864332199417551383784579929669338564455344548496896693105723801058059733769436627587425233983838166296072235609868789575205341837132634459722513707559275198124961471925201662630715477486846682470316992338356806637094829899406536026849338040663451187821856397989312549793993699115725983931919309593307769347244068529853435619410044561945912507304410001732239163835502597245106258514857095050382329737417606440590282535330298349783776668220081943424745878161044845212866469252639610068662658925918438859163636042709848384811214286731172694852433154777096051196456662172713876029767171903730057361527756507659916777738578922199040582453741183922534558268294944085847603735258433299548683112868597411099553055212863162519414544891028830603166443160696772308113624816828668588904726251284818034743410851697128262828416003526931313380557065062336721430288368205573479928439166232574522643443063454644541063136294650432110386788925440376498568312142187343380618720119178909165908367591256849271098341880828112363456436536863031389531457010059408655927435588895874391213319778865331978758916989781442994031909358066313508527345899365400242990011541168043543968457783830232224463313835938279156119053629681401900409952654946240601034300513406533946912090543403083295172962365228589322486473799766077930003933058139500293926386567057176607945528805847893342167675593206758037321803498859224091577190160192098793650364736551533773104088781916084090860709000862287411603444890555994992043101729815538906314651277811188213189977944370442168142277444663680125493803785417288903399445853767925864138004064351305216879841050347296038735620703802724066721429301211043479887655652243071216682953321112334813120857623913021664546243352751246929042194454189225815812291985084253151268884865720972179731932946632011353712681677741410661154936523120283052820023582118425841841529699647726832260441846050492499606445530276879568411452072080468279068684938022398525151888494791661329150315111384261156165604555350635076818849095399972672569669557063523392042225312061073417109302387088015628840929222457529417487308818590308407174308331657552222862635594022414012794361512721236353975722355360448375556446145516728153191425038505006757033740504627484410262120314806821489420237306264426742497643450021612929208832850545594701669876857981788040390106883200623516038396497795440566398036353595785378766680171928652183563483528253057017151605871875788862366921032293777811579742232245294319352014468992644206613919616394290397617218621962711566882183043066231816692721038812662254702257295984701324806128874461823769246197262189697480739599310127509180907688350691003765561056987394694181808542141131201590610660661341303955345875406888585060324543866908030189457143822798438184456156683990553429461454361792563943250315621549963375583230337467434621733451200489718290601802937149115744870049865048931548145523235030029529559580294118659168419095533064276721658002970452097367910456844070428612385966913791956607813251330660792052943108995976762075990346211642956579065500543721802391813848213539876315306518726658978874889893080919832428714303673087890453618800252351256857521165871546716289680562097006562676619901023294175698801189944657592493236508271655908552582395040370417198455025629740715865050290589970188082239501504371642447385079323218199714550775952667400191999643149379901776956619349688856358127581838978924005339796491764774947690629876662718205312306616694625964618687237494544915439981922695834096919675913194362215485805797318730640210449799391193751733658845141924552006085835535789520605271961692112616514570303331971692092157473337493879931172963724709358264830958346935447042773970798641534122956911268052156342470687776201591587631519177227191585881640736143801240004471173582013493841049215538051044436392995810750196126789131369917135397347749738423142241915171021644565864467219350391922081680179587976527194393633808678932751600146847162316735968042190198413763842120755926824641498064932033460783041489136386716902287741478180423669340697537730003353537653228255582090660932481450579898089334046080451259174217301126018289189464337683658425687080764498648261110542436796664993391500174459923162522027674421600927152205104423239331003925788947060487751425033205874334246435950989829906745362612448141598923763843932013981784372395677039130767754696141058953131965042092148155861040998007413333047408831595073849459156529274261542623637183124360220853857441902225533256350043369139457171744707427749334434234304677976721845323540119200396997441927830270671160217360232541869263114412351842955287644862571833878549558330467451300684635000850047025106913240477228688705529574506262439195581274463508270940673770905405002777670836317854118377794308861332393897883022856940018757987996781191244109333316005656221543446100917366462695631873539760395653203318527809318188107692923494547284948445912903713088814851067441899240730191011640016332868773357653623336473354741009210632887789023769050754219551015263846869164708429116935226204489932086416618294357829808648330356396714417712266084824350290588919012430219113240935155732420040796393916129120051649704844503987052698601377088414176873509359890920754683153263090940198301127823213529886337170429851344444522339442187479898902816565741236154778714121575190444797585768575607924826120741571424825196799397858512837524806535339215945632262055747680576577171106604255752442479362387402541891790524899543508611826684204005563322586215910925405682460015302519230604704291429294751063182938269685538284991486675219296538581602268364859494917237243700266317954090211467149896378568393170700630389871051194951555619036414164690496549681822569785658299211998253408835613642772419217149179603126156241212662114970328884266422869633732602939170006639579815057187895197287169866763900152257857205565383315679947349725434001441411470946052129181479179469428152378891702039840094090982721197338767038639121968653169391551544190503506287105949648268771997046209686883476831959340174827739149797808147464252548180088252127345389568290452861321626372784949478171004919194834500273097535452870045568557939337964944208960784045903407687690811285791085787533517699957288943690025119949293329119487327113518689157191099941866456151516038422836144387090316254426834579955682794723143038060016240674180269087083149108346640264648378451720384099091890065453859292074953999908854331099241323214991192544340648343757790193970003808067533555690186855390952777874842598030409871759611070538937800851114826216266674774423413691667969478011330793900704684473180131606625619234007986045287080763619587534485227868171134281568425821556356473493026669650707474103836923451941181209994981023151856355957004579479179732545617970894443387553611336305655985489999929017645218036570112467619585781371387490549572195093282209093147320498157876057437559867477788610176313716270513566359424167903795652134892441633280114191663785926342084356697097335440770150248640842923381209959506779612481282177446028166223659953575191822098254895206582723800630547052295649175205888007235032209845813134751712968786589654840084147685672029898234060920840606921441918082415456982530663945147746052418946952682934184497365504845843040828253817684853555482241333031874895191752342943664636722152241692399282668032599566249546734631875460876699755137305434888926651628112700626821835050853342745806372492457742654926246460059337616089448429080758635534693493041619560193015250957192824759899628025760291589538961362725399848428375750889458766205297647158805228650141958549716204322783141271996501338760119342866730671898133612872889667785761431969532048000771724129247651328105719901378265850905069224094352304608431523177681080844859586552269919644261883136151587178228003039152870648494137734486182095197389506553100404571301756006343646970359389666646044680346809760064084806831645745982545147314695333253206348155237432178495460911425152427718099271086780742561524023914461420650910534815192926583681211235112403045876324518159405235909883657718806483896038423937761752300270430920431413759964350504588140563566841141363994490482337955050740181406308156336738384811981662226571192299223765866331745225480021935747355583744753595146446121301836785465260444036003668146327628321788854629247837621556815283581926140973206720836200825795643573654735571646888486877427890255638018603549328400002071602204344753363854634940417228696282427839635771999612139147712960433067884785712368259971981039782742991405620133080472484590948531887861523144585797450794640640345077374453139185330467722860939359576532481877034073841878139738490356062098113553825239108226301784401297682937738217309800030205123746296569714079197331793281373826935553416230184734299885691570853743882907213303450614973357101449000147524898735372150600422024279820262109741165772410444386466849340682975359018072816840958965662568087879554734886189589422918508213408062316715588275421657994301295760453699102012805163735575607684972105992529763573252851540390378199838832401648278588279329667008805603818601396978334571049842302760677512653422250198635310841779042326099700473620426500380830549456030663102397272117016118966557040824098543888912652762969743131201832913879356030517736207844257464043548133735007498860667165057516478292957227828371442829084680798713975097909499604568617817675966977596119274199853581489613372838230795799111698741948662958675392718848356635561468671239543613494595002440943392040607814289909305282900857077121775558467471385112855176746704403895189064942881161827682350572655988944211088152680327308494124086075212080615896195240150011013079522580103001243342830409816354711042766273894038469089288442558770261536357888808867813759117492660246395397390795804908911840596327805850451647417015759251085872312577694697856194419660645848730050433128964767153785347430924850967517854705241441435611040236495431904759677958760690065426570178834334840636836147624527224892443036562897710755374438803719195988599568844259097122548780873636278696029192290857889025742168918197051424229173702762654315621649352350610599744692456426873571822764830101888146812484151530059182729888111036631707369701936274807958425970493592997894709437800822594327715065414564507920034461660232863649407081543739893464681414385201539209399095724186094145406255097110945933106640858798714144671722214376294611607961451554649204612567886199448371048050826430695113518500155454533564899268599465627466938357299725920438229655792714459735921762793254373908558204952098024394800165458386669525574825853436303926299486500153821266565994650572563326317582874490006274530847959081129442982905828836340915890244728430119686715673553520429370107845620332987488051177948480639192088617999049276940280700188301615422841046099960930410814354378304401817929290810331170260164824129181819970129034708857442205691282117813559489227501821328399701296408549586708057952638626696717242996518291436600979051852843417494688441623533979967608160246881998605655931164610847571678056584569773215213732162391858398792380455938607211952465616617923282105652850488799794299528829977981312924711554004777298181208853803352680648276169539251193192404288303489558537613149961408033770111284524069907792056795745997832089146107577108579454969141364073456533561231873089751104922891235822946681195497168919971263835629480529048340497892819561096601428484920686881037828023594351722783228483576231296915593490896189150758315905759651918228548025423432692774657574257182476355887183976954270755424955935345061087087639726237172076590917776399795744771248491844730933321741483532254562685802971668552211730223303523735493245252481926772892968791424772191294839995558574620169262853786952611142240030317095653485973728355728159737693211691472160708696517985578068765692421774977966160656886354674864327737665126209340228797684059823782647790329857255202403888529490576051348238414910364467812453743595079110577770048677982457536120319610643726829854679511924150846818053017541647538920689496940632467742824968969600860455628397442915771413593580213902958273494908336777224120907239783606109859263102601669801141512782771178649782384718182376279891220926708101846611231268357228997632647124163749405146762540772440460081148063352055773124197236167601161864603573751471937256665319756700994076260203906543747236568647507903050660723848344062627480912684010815182634263839789148585252785907890867009216632230945724355841272826923961578522613929549832531395922868327155106414463364796050748161929769548688334978746578669571660876907979191491065262850536868267276212707554799087539730215148409329145865122428267123111061215688949177833241459908010575639440459765281998530332749807708557449057764183666030658309855512165930186090996697459606000452652561373169056328887861763398070206155507561155207678577216658696371619523512491342398973699048924787370934934035875724569193405973591618571602360010569609503527248513775157387649830033164412359725936629235012500654850034414880124414926705614693024391551481186964203175347036089267987771970505395639746628956917431506465593723873473373090383738939861843652850552156159268709478850729817838418087110622666239847446516401177277482481603744568871371563690752598006364579769220952900187163627058506212488999437226596772654618728888707720033441180983157987160135947138352688639577661597300506020724907396659866198392638780559741266665140544744275930888195058360241408115559649230229968876148928891329340824250662637191260124847010817972826811882207774425939457449277256449739410004777861960917200827216560493344473941941975245065489059409513099761835588484486652729170563174772203356477715101668345581693966437496487592743523065744423657940235742081048689705259547679130629177952485779505402517572708623605023075641901574769410537343030101283516019942300648721045891517028062680133715902982845748330473627489226147826474007821734846834151501591460083320085847488582432995282024536053407080192728981570096843683975663992012679463237213189458486508172396967263344973084036235993815536716318101542626478726140303407751625547875864883741310642515069422633878699549933278454166623828024464123001806857253025755172014088973225696327696017964669039474625307968503564188602700564726142992043345039996975200619638843213008536503968811151370857714754145610594912351724191591392086376175364488135604174102574104710814855637968032877449152923584662874495457769532463654656550230534388027563129419098720527920943687668692323163404606994141319508066552633262957356409163657800501487045279438982143032479490650641929412730044059795154036109611290688870002955924942046874805056867135045937128429333611393408421992857651157783788468833100087465548804213388053879595959086874366930184797432335170206356074131158891737898107032176973441745920132062331474945120270296194782760541731389768978605878635974429423005018808430393856444725922206714512640985435527322520903894162477751172887122797333035028387252709947772925341533566723450764122388007678728909174977074351626263445948834384395915865575521392818501414215086355722815432225683373308820123027563605548014287606440620108846655577171247505501575014565167177427544557490913687383910904002412177517781839247771180458119105570046732361326017770926883074416544373193753560821614929422898293887926288747647575256899548004376819513750889196792144316609085514281424626233967924160655449767890474917312046108576849069126630841944829435721345568349873357963102382231094098721352940471659320921886846893895991473698552651595484519302254358700743739642041206795405267437566651310596114980031288916978103844951383494479311709773064331595935377892300981362753696655143296425833681572996106817480403268319155204330286377309292582530047206310796187851919589803612806355213673696288357276387522052171272912038758611223008990893885556249269584813931547454244590895297907910956764502164286008138400717297967663304761596595297938221708476402378889146952828984571213843905516295375759709087199112751945464380685628333535626941314942268885090558341452184458032006693187784591926977517104539215932427444477441262251071377985591692861641381248283090034580591621105775009012212186402021496189381386232194798050815921243491976439103497869121022463606112480249739406194033492502719434108000141191767293889304561918211191339768636131221141417708111714111411536309911234743065603340035008513336437410339689695988752608492788236161221718903742227808483473752577972115311367920502251466931987203716130582267118857995338423865660880934636598887128213091362442026263623262592216809561331946837196371669845331655837221660366649635862934278997262527638914597320867632703133568539356455487310519682906897190168964748702116324723106673776301597651719297418957849275087254443502889285455617676877539030164025071158825629929014569273455916352068628545095319634194185383010736000306686604975437498022896272378918478691360088889012214128583398148704066997111398787087875903252316050198174200735694890446052319349425240219931633248573206471370821497384402977364862760552635633939750734083232386568554831288596674610701186325125511239270783307519459235560423252771319162888350124940053506782427804538061590485387666267293679362061310169668353641802858591959365842990197020106344070285723989990673651756299485074218120347645816767955752637185379476860300320985962902553229459183112963279369185979181519633373130839105768411788494135761530790740182008461286769828915385672365779816425105171138050146923515823748723353497452317037693029416891541065628045009902005211069958586806392327477471404743062836395147314047218551941737344952882702105895600842427302620855831010317272555801896365557692935035115129892232217119604132980282572648822813092829460734558917825377755677947491927694860877397748503007541896788055631312132741943034651622810806197632019261667695818085620231038637340880725173380872926743530565726584329894709460213878319218508254874634080108500248871207400161788071737818169664605445504285330700627679970274408693485179193629262053009997924848518377836009512705570661163813125973201290469737205404849323175363875556003937439585545909197219531009964830399200643768750439476284383006136382889895873637932454012442541321675594071306119912502172583603663989707046265774647386506065592514950391922868909380592882467467480804023453142017657297856394119087829929357812013066614985882821772621777635701007508545332927459690715169200346008370410227178563574509330687031306856444881486938313971456637509277423022947070902748182111101828663629305562740671055237920482656841726948622798572569473265539273535718584536693353323481349665334560888549234797391993292116564913884278366048831156644265761659882186929848363103014101680076403163525326255031088389481076270063426671929777272321380279286103001282115001803747777012616421878913471047521044080536100845974825701871875113585096400964198257453284529640770324290344072220091234350205947892541570274626804915137438028918344992621432371134713428941077441694755812454700265496633661819040188609467116869443685155402256911470015131130547570203892346815248427897167276986562594578678562083758987406298047478208110839601240194109307792942646824582213476373850034696862859794173702855131864053805191521792737602174485146340064338710285269585060063398742800728049731181205349381645501566407590166117819044894477399257843378657476475373799737361251633517368057565524519580969606090778243005872010075128661231469180493985275506260112934053927501006469678163846151283164711274923874362211129699316995788708063779424798532958646196844387250128959700679342069990227507185722641921862595881505119684888928550170238104265216887984103198402859645344577464002285379489351707227318053209657122243836615301254455758093207253881696559423779365641959696004251738988979824686823123696166056358671324802001120076384761305952344099661028877048738783447450562439629201834779597231456367884653136087357024720943288950778965628441603252945323017312094950549791137685135489886016986491322751269023126940791371386505914221348543731661689252383047452447097797005599019906056187212905704955278874213704931304807449156914665031841730911535473939030356093992047219835346201556035969056653732132391347299356828824979173803802659135453166086438485915452400954930744656779223144369032622366414914096199711473528990785340272377261741741124085808850898715496336893301199421043453645837953213378037298036044188093091220577931425256571518717004241003811529966160554866454708819311498709986339741606137009654168840539207876297755256149777524293943928033804234095174208505403250337882669460621929730712003961684564540734536038139529263096215518657549647529493536760080137431599395599373812137420582981103312809979516789403286408768189842026032463410534360605931306754081153594724332393915735184333497629250062888917056058503468667260041073102450739754392009552084339947553869883770725063458613628923242522759299060487936080173380480972688946030657986152712410579409176661243439092521852901976159053152696849193507227587749674858975615118675807700976665449246081255483904007398058878641810465905694293285857169350853497333983562108957255845818120374545932930089142141676521314667812827921757715962648115463879461682997544993219263459703410076707414489415508540065156638873287563181635622516314385164608398369891023113209808062218337803740293776071537733249189715289219268176193277735918522321028980302750572561901065776153387446910977147753045380715799570396216223687770731663261246651394690790387393757556107321939096828800595480578729746517142894269765810294075000900248130132741257445678448018724388515793164877250191695166286163978995584401306014973284212055352190242751261979529141597730052830331474417407009666880341466056144376584433363735839676992805907958452830530882944101794140689135834653697336643220744144540382226222783061490398190755505799095663898995010656587061098960977538718982162010283885566787528622689880088973071803699016644348246324238953871639143455550919065322064401490060886816572653719750660441113134856340314110628372765106864868829153159421734224019041235319083022567551469322604327587160630335608831089591506257581172169933856952713310610100495730976707631860251085487589932176485590063217372895300993243906785490206744523799185319712571902978016615947449356163730124920040606521836168758117289775395361128224932715483934797956769122733990675329278072675156935084901172294901442704799517227742169678404048193815579639093134057354591113384068381885953619160873358841320337461458037599699881065091871437441706040967897652675093398859015925059287992943519578012476234537609064297966354770861650257927388592085956986753489088955607351264752226955704579648829235093679723581452268717407849680108492727765072255301715424949883721241530310426939531893901209443559782923687595753218776393693251607797159069747677416318946934345712838153086448601554507160995388745564031055004652022819405127002925771590025342342798980407776493249318641023349125465478791415253342723150156563364309120955262099912721915491363927450969929342344901414703700721605018428782248006443353621484176949430244417778909219604298862289791654783030210472746437544702907178258685183782130930472764386030693938788994082013918237759893090751258956525320521299543133049860443093474633290809699483750632120440771101314111159409242657689747356612429662117783221163744712944995238183229633455069057129533753318220566957243556350507805983192474197371991987989827668478267021163301321105578776273704479905380926169435736566212054854140227469255273749875353463144347885107708348992978631424871232215241362539501669734677956026500875134384082898397898357706369502309585341560915498060587054228178890640815140710393971429308662884253799238872506566355467208501086067034129354948854478310764053247143954430644796297204979955075484413794819055266014905269885128373449995326207263418671331064015140567570143041857611616362093819649031082805194619423653873137958369664769300997227050854107428350482563035450102912976009079814121123064564348200543316577799329183004371485272162456926100103264581439648466718386304840339097230054547518537985061581623027362888328234362975780618767102706502265542583837683338996863031695612593640219658457611203865154634909763359380164335934513791873836580682937011520181181945248765440726335398548059468960742596968443693469598633668515999186888077478848533656893240618202160331003058447099301762238781137467860950295172294834647156216023315859601697825210932205747104934947950487630772926489817618672968232652744556817961798110369503733248710985734774816867311456550775187759672921400055058958771212881552023063586772974747352599356416869388333699454810562122746718278065159069282686198539561491751428310564458792299511528060642483948522166034223437672593665174551483493109792932062397451153481167769081812338124127929167651449818222252299868659271804277659163233777484145046758132595424474639813859859620061149047226702212485683348405939996020801692330479054714742536345215099007894959894352468670586717900705275528716356413544795490059312749833205799868245208131032536823026714671201490297767659427705362892585105214582497247218778101402742627617003015232184582573931841762289587121429116235481970772534521537224580663996037608134586143376476790181314545394388060058346026375983331673541333678344459911526453345391792377527948682890236548650157560564045560884515306955808778333380782020886224508708710399889009668664498199653998802680901542043017679682977239556101177122877741330628880061745154406969268700254479604466263090831884370552804576686725359903391438487116075323626123360875031476741809800440428032064143399815981362670145510246715133369405202907394798679792902392415122950948335117349460182981746835780955835951397980801802829621681963908124402380655867074713341033626661786136015978109092576036579961468549490430670379615594595746924086473964376189512870930435897597951086544973682980079723383064896538883420056443432513211509145607739878386438202886874894371949237831668905826306172508026054133815391949057901904830839947273151447238280966962869051813059265384854358468840080561621055172648245781565867347745602920770659387267835323369866165010798286485582133617398434223843384967396532588415770335095776675030534067858950733635629317329949957195753129891435730113900363704409640970987334920359039141586550532632788116080042979705186994802041958248207872557734581314403434061092904899860831275064350382483748693646926582265693782837196739947451309384926555958209627877832564904966255294092905919626268266333110514176596330970310583160827266158438040444236050559173396580587195294245412653755677025845569641316214812788519642273518165622474259306103382344992636806505676294715931034034730571079889610057541997256012643351387169445185427428241872952309797965718965296554063432585817432375230153553590022143019196769758854081966365313320471118467752433602023459233654612751069864398936666314809585134935597953697138372686792744828386934024472780022879324089766769623432176146686420749897200532586346052224594143569482567612058658280763475689850309128090754857560709514006642144718124945765008431668628052096780824729778304801591398473599238984743273401700513301223023197001212322303603851845328604078847426039235708124179189625843277899660333370670161509628124431912183177873635078673122849980897805967289273541006921373681143239228600365881301604356404594861249197320359508439752576089415875362567846074298983897870680204969553619085754754060631398464498529377963892208172038865985321399230664287054490194572569113436794682606826258285802626032016776330181983138314441286194311615254265445422668461217430622089555004647549303789842543409464191265763207957002223720947707376906402675191135288630010913313282571304311933109257255002288553116693245460123744115828011617116417083078974856808577666029589394865007515134033629609803597062648553275116161602033219093696303846661924429078474672726754671233917417297435128496150721297741216786711029079872933761466462308127511166652143874933831512473088826697644650593922996498490256239330970040598746725871694764404186942779941661255445631702715176912539937916801135425567103641832432028564731542046802067104741805627289806091223594870201986064964719074840545092493558956821484622398670406072536005102939478443345732045966577858060361173876531817343077104372630306173178742540456271830964553282607033391585937560613300680648720034870658684292651476030713444722242755854592200485963846871901967574740706838157920428773583641600497381548456010852361252232539391728301309005675120608295002289552986711145549989631155097233853021751048083882395492276501475155624858812242511824163101258755831003473648210093620450422216753885414018099876774678801011502620740690470911647699671658435936745494871745264456654784702272514263234227735583943551939717752441922343957682376910201258780602131448093834448665593130457906037910569292520709601334001856004710790425103470875096896869804204906416002783186481679487090868420937073619047438515424458795056193330265803363182405104118771657272502236879298327210692531757507265340404247204855207420895449948313486173999683061860022568570532767813336625098729462070799859640578491876365927101387381225662886782006686047628413138505130777813950342914233917896860143861646847954241593855236192792657935985704143792826288568598326126759247477046450766800088826040654324799958607688721138569807217275426514499512909589911422706006875669560187001120394577529663612120655119154125342897180257821309090043447156853738561985118418215810100085859188344191943685215562484142875600237116307560436138637562120252821820259738887378304206323540686253611714155692489484331957846057857929084954365057576036839011537783740702204266846177153939376718527076697768817576538893273606349398842500334452520058573279408573741698608007490887413478810993127972400415430461269983457130900253596113563085588921600434080017431477708121008863522111597282624058040783526931422424674823129435506077155208951359469816586686078943471809148131682467318061170405357366953095719734061730598017238775534949722146571671732589695011697654296374822373591377685443445574114966637733135111467255320246212021907339168739515707417560536831442033581341537925923723751075358982632580411491495603144711758180301976861395789675253711854025512523667435968352616018053093180761704651541898169452019551977760688970042824592170049573518129831631786758989154798629555749395200326235524779348086819741972037060645414396598983800270507994665382898229646943912957957358199012086800053130171889502319880412163343438423908798402758622837521314041906959917839608638923873318516917393417565503821599097646259125701333996941678054442531974601901566122920540004863136233876424307630682871149043309468733144376566936422262601761168195196864106495558756414162491284682220204883889197383451537358575615293318877016710246374115064767229716201841045451358475723706486084005652196919535079192603128489635001788025577834152119964641761739908916038521792717638655806093486970394259252421445802302123924732409181298967747361779594127636610950165463167474590236826343564659693101732127233749152071774917032668801495944980423928602724656263337911536304174601530605313525252590206232699939626175287245958171859723457813113610204484171019224144560648455369056596324330555222394402286498394560222451433332557549661858736271273383120914031600884623937981865882238209312507753603584076392746836300940143081779186322192226051998161729556065664452404685445169780545797937733999379290595597530966605604575943130444891350954297880228882627106933521641993132145178235210221105498263404905657079272812318851845582479044133523069571319184353474843305778751281191871295927630225041803627690523585130391266789261420874085725000512815770442856605722918960105350319337746773801536676438069259698637659441036268403328948359248997075239928445931103457064791555148821096660024457398335920685378946287045816279348924190346252454122098525529865020545304558668351166887075547716335978873093962397653785768190812097033024026763334739396759531104247460773795557176244726411978537198973144507795793718414375910546466293409200323645598382346457373669506856606337956374788622326299361549784698436418785526282353713260278960322773116106210271403512243081471867626869646107954474619275465434252990333215014429280184295762463071022882286058210624880499717500277772749472780694567882229831658286634993341941948221709872956197858561674308956675764133080359382832436541642877904877679231876611411346339919492376839393882632579870234316303361144983027939399912257762010579743291116983334765714506705878471901851383266133906528110372411666291463048826618354780052538652412189847492258900760266114488657357865767834675983810776358651890426669670106381694757263936511577377690276456112205963964939807796808286735344679050835239751180287501805877423493975921168652543922462516502853534466341716094834195957997790653409933284877355173149584820654766621637173707935693160436090830123396759291369551434498662586405423554316580039504160336472717961044351280904006165738887905800471955155985183368180229622873407118977241338100606074417595479380473000830875924097334448298832921906302984890661261422334953330983321989787211880707557349263314661675594980380588800635817717343496726056114710555982752376286970872616945726264679908355526820497695624478303090300504549563899086828948770390971379296526076595784935982394727084490334849319583666642292009334054845277806015586945916186470003644047271892138072816162593494045689896431186485436132041864262509209985403995784382449054558380948496875965889723424876855691088469513831731484005754477823834397209559754818422890475008545470813175402642867019656533427994260021287693590549819336697249827058201986412192566809386542006450527259795582398337296102127393112788532303112628376437847140802805655014354043283617537684329364817138811725994015329471513764887749372965957695963224604334153433655083588074538532298926746570393065539733592077356676932271965101720093357849607087745931290712755203303900570293815229845049944783704704030935466103582769928846150193365318405378990292760142062364143814569653437056962394556383397058368919349267748068998209860825416917264243399516534279692401960079670493841517945951344559440731517753171895885060581515439219268549500650335607338026160388454143550068509532632995951988264008668758054044721309483980872069845885069030558056160149942502720294132448928761661306587711012639665055600782117684894987442498514890686822903091584973981263844067493639832361610878962694425035535477692361824090704539550653830122078824489808622834281381622657317158786444559772640112029379036112439575914485727439817693060244161094516454212476238486824461692868254241159954190957946634848797443577251380853985311083532706253377144754286983175565834778444751785227180946214489784841893571282316631386165979320307689237852494207735778774471382841518393160956149879906373045118861484911191901972081466159276594800357168109605479066036661493453314699385248050472570379962991116013225872152108913736808083061414397678474640282665997041651184280006035996817365380911049577676404096692836942596862634415878783846163385975587200964856428182220571047652938193441464967988411642018901468956922207582911314907108481739351676891986270818801237488797934160567683427730088394444847047037134376184901771551610139186814264474262941271002508195013967861842304422029581995397335363960550500972210847647520294854646856066494351476119962637868966088297931527393192888541144500193659091169260297414135161552914507775515944161945565855835799903209235930821083887081921214854067054782966405204223209559325327743248064238212531270560892214693293271038859275250598778474782004464274018025097503637322838702825394634448989288578931373897237971861747034100967761230995864780231976395932255137579476673446337695685880404256534565739027935221922012332446004623620185417088781266420336157466051453844195533149124945055750341570274558496823558104623798762252506785148539252581852661280306978577361157647191777814814651463116332661028285154325246716585995435522947472705738376967264088852805371746915071274665563015565001025730273630009043796022659182110002476949624698412178130306445905701697739861639751648074741022734142799281967146994918775375596449304051264234861814515188263986179020475819278162782260087995649054306699408911700043751370763558059379047267425681771322583887912067471902405193100381190132568676109163987447603413307947391485065255203389052363122453940908787661099801505008510444805667122744177591319450778492039130617202324786560641290158424298404126068656071672034230276257472462649174572859330137147728644697466829410842009341154567309945249577189175353534973517627298629942204455171866055116318000882107575375027381188914266494369169160807869175241872724253698766359653219966164173762547615270098626360025727601307599081955796085451510745482091047816090350268364771189002716246677772486911861360043677985138520787756608026719822256551753727394572647475126487899704269501052418593487489022008453159330274999787708096193945171846033831290949688919980530762101038329567642328872001909816626518783710705054223893784309302198270943648389189767615860675998556370821273461633797455011358684980670450760024893656793366818162910121373871345390768274708652691118308977414644614604694771265389996146025427787613507650871622576817898222418812305952152831118178461352809966866532756712030744149392858750628027030580139713468539487983604169917121422054778922944903188374507049344283141929945272295836886272477667663371512818201776456807026879709297952744487437760820579534691689223469769104904223338164292829590880451562783462370443592211976003520038873231569861661054119117647001451765071355627721815555913195399699327482265809133876614880131714848993642459323917800484093510056895623651175123615578564360590240887851268898551910992639983498729944918333955998514490626964835848861009727900366801527920101706643876404288492434832503023938273983800130268573905496784539257917290977985497232999896308645463652846666727958427629845787310244814531538247454760724627835078503521176860287306190707552174728176673863145738313576705390406087249407422771680295066152296039580442490178226684620572635616810847498271833561777718586745518999921845012124891591685764623095838935452050175889578484849947704811491423713151488330922795034636551588316901735558834975995850632488173157029387577542031710011055207342735293638181563341442007089287895170687734322191114054283201241930178342176992331048955808912853187165233472701201029320168127786102339606993775062970379482449143560730944779115858323133120981086954069514465218031503183589830706163632130292999371520220738951881698901578704079639340015128125030278532333994902949082866432151892191495097735189342587432812005979852841063607945398157086815115144150411193293332880598493795184172956813483793346707214269970045214326974554921245260054776996518355094621043046733118330847078568677606262404104041720383108558688696703100264841468186146991096762183316055266413554180795851897475761135490546260674186003730542848373181102709103672645612052481960915767791690715299792969744488595023532177258107459251813211930167922608207459643953051727357627618834390380445878495978246791070085145798958914163108894475437767197179053437028666992009236607031138584190731686028979782849115852354301216520855135350978136941220472325346010726480305808836601308881190533568215849440335269601360582234245707818343688081101909565594686918791408943176932250673141014695297756195270621430221306604644597985163998395471811446492904762622278361212589790742014823865166743490340907103822896354175826015241479827756318899610153328939913407443161653836905380185798576962174162190907724470754698724354229467308176648300280713307524553052830883613007851431906691729524239574787989579151938449287767748932975499984214535926286388960233447468226504588326285460060968744174486004864982957028098792659498508488509013511712963687076817672438152155212147868193584928800546169966473662645276475026504367783035587707022989507155022430982611162275655739874908469699026606219085497023693345182766857058500940265838133813920117622190516561974658913503377720080814572038400239934459920491767670727050483233416050146831958968406921828162813587010135259941123328168742926979707321740362498927467409083575178798112673006481657767480524171731039378689832180770587681994661988966214945542758845097348683152574707335115035942838542352867391830127839206197740424698197710159272936576210073742604955336739880554725079228629623064142550989659111546551207329012114957492923672929618007321643056106379838782482065512814342302615473376282047434877018442846609337262291570846426592599385746255138274386362957088409293627341412418249908151395529689691360303003227211596395251930776979963094046866592427511063266433208328810019258464085078404178879036553211000950058979701460321456910758473294577143481483469716814022429254962137547061727098281230965833887448959130679478267813321016611813031744841989852326419371745789243827700575633804903439784383547293488180103397021991170948317637601345185441021644643498260929098429736101986800610610472847601655110646202347603491158948177362664571140795440525158205727534974300971128160865478023383831067999883682609183688506795094349431355115041136152711807441305587000603147220931847821447648619610695344807203823994582975191333296066652433198482135452950308202212186517600742106732078006026415167754770876141573659855076193080154417881898096750638570358516722960819729225886708787505477898452350423142115904152642402157401068819288654960574354809019120745287237229521401577774277862054365046592519806959695492422304722979948173472347936709879081998383275808850091697610495579749721712393940287659344279620433476484749716951076761278621355081851822839098800005522541793637510898393586743874118986220728355713947922908582864970923728744651281108936375309616834105564342952201353577423865024974478919769904855079931569753336286045883620333162242034669988273924554142449537283128811759398004209791679600968712352216087488978201499791625248902330512092425624323701112924837009537946083840049488565135638283083720804179214299491478860665756853475709918564881757200142360822568555135923707136860637568103716736576544570760216225771094051181969195451766984374723673715437722417144513576143132667223483122482158170620049786547833432376258577360485682292344928415462343064490239015416325036612748416645321445079638284860041700764957527767151333154137295727619450095610475253297369376110570817134410671362153409238148480490120484411768329675558386716668080502987069630996562213923567270334083203634604898690052874058405633800648582547720070317001815642694943139538760972472021051269119330617264957952384611577612511199060987933451228773564683773579157679360931391505024413748351517316922145397993396401464462902491455517767905377494498385575451462135666486664864090819621108998843028094124475788966946337295004747592445774206199832448155722841670134794223824792702610116182563666432430516809112719564621747887731485123413019861806881748094532129811575513189847718168195088819221400166264131935465506250867085701775431494419102331922230995807489055682354666534940649629599334910297490189730347264453730133188310329545970129899255537307462219245666641455995408631992245564585959762579796106207334181757471450085625184453934137963194648515506647735492336565612824481108416378887125325606681118572765788689434687175396024698407058080683132173451928091637923048345131537969054657666288914731168237584356077713784599272219043906411544305642011282952862874413172412001427945742735360319511742246222275262681792218064778478842054952594922012399861931930209946492716008146993609679973712479675097993419431753764472463883803171723789453566564315320653918104360389857219210560962504656610329029882296763878767577361907902958666029314027832727701523014217200867206408758907795221045129679392898065610659684529832665040016472494465804622715827149853817411030582743821399766330686038224878853724770684294797279056451200635021955994856490845984656360785457634416308419214751505480305350445065657051927349211758522943411188304655845533289193441860087554765240773777462924065192494709317751172699486211050224349326004141526714818738358409543229427925675061931883902760337556108178161337816811666886247411211890632475170934373431368621057007669661266105681569366954726969962821953696488397046503867009898157481536281796663018559903990727543710232016576314454157136700901804111549589508222988774504175391766791711766751094430453057399385695225979210018925912671099441122745304154044403252968946135300455568088211357647756767946387285470781545681647731389373793524880591102327155362476067470133993170146625250666367562248644918408534309883769433912814080489704858900550580126821722863994369865792742939048782413644507832279081206248680172104103806166619668047063291752688666225551226992994327347081001016132117646022440505995752012192801320183353850558586490682689326856747707239021906025370215390177875710598040313521954405094211432531967883546178236015078721640593153911903626900716426556261297488568756241745052730523226512187058254463762930763100822939508672223448044883289039144393217076736862568582426832568735002077393498488763193705310400974214179667813394024058424334249234763391498815369345187884555151410390973625295144112051911590076775612585232611905565624952097612115384883372133848073709880131244466423267605588493525533111341937368825063855143766093352378396603900275929687409249942669203249647434779335925998880780087929728717549581828319189038130439259796871306563763952767347633818414030721047558985226259100741338129066777310018810204980179280459740173338035265919358421374402898767560668880464730671897381935823107391714367583727663162638497009326927435998897340921571460831607855686319618565900083920905834565862593314502162463740295224224728654888778044988316512715281210935745788061773526033702754250042085056625948967721658192412490942522973048705793869570393041061665217087713562902591648386078508427070521095992953958392532780950367653568900015689572893866607083144129592963580814988413964256976860657247660247234880116701108221335198825325492426188214107970319991627206522147613749323097526847860741464090127695170912551311114007601264865669628868675870257109564391422952328218246149724301426340477710447145265325820535095197873077109536116926515744104870481706864794546706763211206930514729373351134632499392711472545213532061284993040293380197326696848719224379949923762014692564740068233107893058269476406137386949221259192853697183810111520927559585665076774971026179880044254608940423803796236444545811101927687866896699361205947392576498580510784526269247213479907047834273980125044863869066917744348718143348863595326438596476043395684145520917917893474454539672091044456482491936139614088167612710425287625401465303543558383478363161395654365385106421393227613196560408937044909310510945293064580000180240445156901656610186876670117540636410495389809065261425823802784084774795727925645217039851130256702348407925684419283874987327972724732813783514883100625096807125033433405126180367332372150449444215910568005282145679009690220354279218464179467871729231065856195358644830515825298521706999948716136647589777796883527307507245099325957862066963822188531168795396836178997000177740631347515723086739195163148131117712828728247548762644663843378715402182025789320015644395953179669401125331297927350679598628958881107701581550440494681552240548308008726123145248451008773473115165516557747832779495779077047535124360611917125909326292660523118218299422482094866413630439530505668967478492560636323334844098553141272207731246624703329890581960296714698867662001794842208303710489402741195668361776895358820148281116679590761341730301928768837028914597334372919701930280518421247108957128477668428668811293696314308784951374224754787596196854537649707997067655047625923250763375895090663810225290623871087924931562277208512167734978568486810563863009012070078089088168526067035129410030750967080861224532181893540512074529872071486813175046998190306576810333756779415772841098062370779485908251276388363142779436934556919751313449711925608379041849538264497814543244513678416456475053864488090836868531320384806645537266463686996278280856267260944605559017540354179808868339071896873682285945728346122775046019804615339028837072110352221914095480712350703284278552382286794972025290485467971744063555447780426970697076273301051574265132181653885954331323029576245790303067256576259256667213073236344467659176381484890503821423979752676590074860449151025446629972140897261278588044456269590838866260622813962503006397989539831358897957696538893431125087300538604885072058660744665622475044578043188458984236008175660405166356147311213123720580202387718955700512905341233829104299329325464578304372916470426254142900194363586817278988093389278122234775661562288836890713144678015973760833696331673320378809047598992233325797683193678247478196072676229411312720745188177817325406178746764060922619838821943711311799315875142096114971429031236581259259327871095997520389455402986282678485735257715571458737147739100753018112101473909438911257218205121461972114164168340059802443122206270082726399779819331605317218550958504561233748259056963739127714531589403781038433025106342155609991038825055942251531700292400561011144753752936963692567945954738424700866518602478059903438118333883953174836437452481947990575339353407192956550191917000250214562946706966724528747009284728245770900291105486519819430570148896642348320879683706899412414747539255021400682686231058573721589931506521206995851393239007480729401249073864742816520970819950828980668568689157814792590270947078695366981499849114131611770569563585672439830503796386859091015822581967753559849787035065416896738763242896757882541230472164180505945858677827516468895269643086977448213183294808465910886881701375479835361411705854914549670750867087626248159945892045612834383585821858442336632996657649902711961291771202342763701805238054485673549814439005218859823954882293445664713985827254878104106715493516496229278360836273320828292713625226745916313860479893638407064855704059883528116209902314739559250149412329694817527496458421759428433309018017040313054686327429554370787912744603586586142918917794332369667034241360607767603957434913537706930447343228721244944737337576960777454999473648668837705771414595360078048840481944235672169038573267639706926017760525839691408428326266632425172408105984573636255056265947061369214604349395390811536674847045881708793658676172930849334372445628076187080883762777506932588722262470788712648761243892745950698966271405825130511765549437924196749043390741161101141396939278950200361807583398337682945903725920392301059796770465266534376862428203550611280638847203868294203739211597116634166426620340766955806154435050951511948013053303555250264636448503818162117056595811537199952842102331925072984288556382963494178167178696525841185209668453051856556777707791890123548183484864749233309304672361186658218043205800292721293769469193962751374785108755099929335569220426953251596284760305905686646156945438300734542265453417585532693202427424896485470081760663096803009184841612396000938926659370423883098539012250860896135756726178789278165035375357576166009190029259906568608562015656029200270753486482072741658631147830301785125379065296605320759410577875422392585247251599753940236538742080605426797001883151062746457331430216952157870254353730403275741598455470053148134885814870582101691647183133783990248736188429001764275450448012271837802421839404597073330643219601801359278231536619585426659914811360026645480247362301258172223233784525120004169423231709434447473828539024355845851071777829794434670789914912594375056716451280280826073237856979416809869713277626643794944336722483728076869958845933932425497177492036607840996322639619540511572553104975234028220980167855243147952173140401080299220730893690603714275907938130960478928203378555876108548831204759601229178020449791833829117270239456445479599332703016609192730081611252331307411665174317265090903650484852853552433115646372583450689385106357007030255651149224987699316271733741509447466109889010188053580052976307282204672408490212665150022085571336228959008466671857914387094950652590389966239071033035431158750068540682115018425378277897681561131378963441467675856631733486677316512291366867522793523698664792188971468944478503510792627438587329807712800868838966578493972155014542360006686866952879310010699978266208383047524810996063884738180994030117209725650758762981597886441947873095130901853417331977783755954109435259285339698147753412435605510001015246107207566145283702183301114828863672706015716991708115452413422629555981734542617505454368214459792982826117689546569146829151916580585663871667826119442143049260275594721144835222964762113923222132597356304009690162780563879290548144170668166907492477562810954973659047463480698444696543463742339064473741017544207051720852815269534308117697705914256680285845165917464024996339950042847002512700831876082260232964337250214378535669105203268936242268522247401165282241226823323284400491158314236725878558140711805640431659750821369914141641715966959547214346633744638779228942499013845051655895102154711145223831120445199598994616952938638654239695802557235939399165332673433646416745755774633375927964320623356850945421851986680091568633142457837245112214662871053043714282783568046861154984787403163045423709567099959814085267707798058758256244449896561601850644274396334363106026939409605329421133234376925674034050432094169638421135214875893981488568056883207494971411146526312250561641182119033521979969707228015911848610414465103233550328127582997060551018974156273667507691342575928978930453102471355573868006100074558652918441618680805785307186347702079465913127079748420331171042249938597464901754697413758736066941461942200161168913109015432858284053109829375815218207579834446824219067346349029392616753673537435255238052502653118546926319315639683750353653559872255240514239011313925579618340886699603417415760572470386204275018033544608832703231297346883007598379708843946008306215530430902273716512144560171151792679193701561734932737215903267703972581449421680312567500563750632213274832608866693913627256947595767948753767026796279123606760276642886743267293823998243148118274351930848806318831371541695847586312409717357177076562859634978066611854761848759239454229504140030430884168848923618797207657144851705385533829650838931795605226617207197067264980105768660245925294180120256829894543322810236100453687489755516269531603921898417925637702508367610510019781261087192388717276725217680676062657169526532551678675942183771759313481368194015011375436745858563583504223061269663221284674061427537013113598809062605423442467899836063299405909190538726548215933447915895605300108942748983144775910745866757735062331982918731087461533169690520504000770332485884251573569035760646223471041723098002991606720559395743642813744518777116513324990884071192645109374932856911706346318461832707390263521525449404588104466951001111522265323601222287697449452998600600058218677386403866764432317901022112887602053713202966209147322329181387819603756313093455617611100713889322588053898467829180663178893709942889454704663150973409803839878098424491561302137166143451769273924343334325871298858445735068444523566551108203631383021689066564127435870357156333308560511486843022665633114572281321302353912097097102810104762956104944169681253211691734522328207573976405996182248814035763452307599855397917916228181961727152671686294512818191147541929940365947541064277692562513867525182724225692254529328505924067843562178780962231123132854015047796261438189565628945753380497480936484202769475653303030787803160164639456371098318411959017537471822181340452657059002807466120236292737222222880170599959361288731976201723539791996377313752782625553224453805734537150729072731288491870699405323333609687893986562666036579478329764196874910117184390367578307633784548438358835344868619003836262129798677108524519051675838663154380336993778644726411792631275325528574656231556106492156251935940724508447868549621919991850099164459782090296214015485409382063361975314166251266507540667038635523309752979158498399062669688333387593496101223113374104237891543690260450231051149084429218141536477092564737676276368093370014671915114273797858407811545406837352684321633233952693126739585925958892238210573990254553756358381191708064155097845332326086786653476403580138438861444124208977036252312688259817451162630493779994746659102379516604265849662512234794294166751882344053975391333239207699403356037367727819827681154557223118634237556857194966312387185499273923790283450858317525342348684234644095196055215864768717022006411984721857207558953417911227781273445115044511734811386321030898093984164855341616413128432322630888286066076442980651677023924938448182326561955873427640750719913521370108907990363238331726688360035769470697082439171166573145069883613231817396719643169508983460737541687539885251683964676639173605782921704279506473114310419427874192371767453148111111084414566770510333350827026003782358108494321407882759782387726663506958717950346884527094295298715492529054634288684770331604282164066322282111137161463971097575434588775781174474204492352656844459117100898236578745174729323934596690459591451601945184061686746551486822741380589787567201505078689060819094477780780471025215264842084468444461795141044305464684106582813654631878030402743657430141211440198673469902178406081834804715976817309487401198149716031669931065615296596341833713396871923060704459630347632377683269098557754842690845636374770843305384606811991281087500168860643238663885228930452656281632092364615070454616455375881798273113486814709471102566952220614857311128356139005509896422163170206706184293054546475950478139092120258680257567908754092243934971381906394478687258954957162930370111528034364005443143809882781930773421948820248595620511407248366586036801509839246179759078200548508051259025675788735487074412381041087682782954108701490475672776585246971893183127337110834319145539645077655507396204347100744585318397980354453157159821390456421342305615117603339166201218423215012924462153604368387935305557151813106169289618692714615425775489859330720115061100818899631779684591063157665089566574832732356275519412691933929650282653722189844004608486149355973328938172010210250374973927750825173345489557548969833157097509987872821188755724544716213240098497490524848207777038469848064664183697032506800797421661555547869115037450399187496172656529242742045178613176924140382519078866502845289533642841417845998923041006922758295685118793880861110229253320990122549077856672810794493468532433114446721971836474957675743779969237203323767388819044930196409220304756553644813163492650924030913826701040310080997312910687453578322161074385234261726860716925871688894939802300798358911019428037799931114695421879939598402516825822865402690802935371393512435949420402259206529010818951176469636627601995305586619261511347553582006503207167787227992830940358155720889385942100786440911664042338722934961450478250635894940990073935499394180754443295151436297980029456674542744573938448705432589131905089880720374276658036383153141404272271835337151507766595961103480913639167451706094665143594046714966630115629203172346287557519677039615634334180837617848410702923846327482845811404568668788313727296122157481320626406304793321888823237436626390973765306302696605099020878003371409866496228589719151599607189370646513276141514645270854504874173212104049470038781344088734027389424155158197553806809421386952160542396282719782864826086445561499591165332984836002719082969280785224611913675243817483026366815292818081565503001438184058515182476349049879993927521892447878445572189486209118846077652268989251897811486520185971355378042628600364839689093158544442851062971416549875409539968971822712442471438704229991278402981366919431731074683465787627799678327073345450686742584074458561997526579883169694629932417742498077582866571087334697739403042593409787566655933527140061808670879429183885302188704122718650289925482332777869285057965560344083985641539234521866660620428198907388748136599253604685930512057026071309790952675501772143734937932895369477827189273532932023686129183397638252079473429767378397193411459816254613558704256046748232475410727860412299326142654750397377181348941785123978533259340606413074786681092725719812086420597592657134294535538351190730237980923950757954922564157644194233523796735211225467041306417667374557217641437689545648004529526321648298561487513745991062672095939131034966902638041196901388059512714466462073789677946921079653454826797623517977375620937559644656527764108972124230695697135203863460934945009803899953737804627698528114139169764494240889828606636200955756316768942344833866977272888935689849575201798998017502076578223755220978595595529750270864034705262378248558402849045370690730417132573055923870051517517659141771392931122306158951890693317382822974494869726068351478312725068436034102132750918437979919638700850509826828754265933256296023066148681570524358803812412059338614074446387957565763678206177157565774439512402350527456362356364150471356571078792516443317181104727275981411759128690102493331279372132929350320417973700411150580793696912413489538401380839141208367610004099187632936711966051100277774034448188489336119764754140939140226820993244688892122398345968508084789400671372341205216026894646013526844017237956899982375021559063170083756753076765839972833503169826420122830453470459636596392721012826334832191830099376931354614546099709588541847400935499638588296953063314759701101207726286371885600803432532325135337951662959318518921241603553130627245584966733745745448551665075072755825241898196391782391475420530367380405798983200441166177455036733349747939799725716918842321562462380557826000905285960115101831552672199307514212070737987563866111325973335025123834677491336761062496034704339629574043211292712693740261591777097364622160084654553215673965382710379794294591356851525811541362765106753020234049333719392422000140854514358896517610677342370741818590061972616931907258624817619722654909859189351027699830533892107667423681608124596412617109822827206117037395253656529864473851065583654747407079340349881148098850069994819912558400310066234064097367639330105670854088791883119391250072517278382734571937859857281660324046837941161754988755196254064138802709728968941809294187766050561349104598198805907887340751080834099806078077807370093184020187358616948718101214142143330557214807712706761846759419114482787881293866566891135444367343769187637507826080704413595000019309659040873401333110049095441366217310613783386383206707940439928858638763740574051707033027785854307011377194079725287834811440237237935298872854531182463169778352660101274017901349023851955695778186408050566526084883577670323577516513948684516878925933130458506637822602016538900871807694763926557690862198439838559407607144425335749388734631842498266799551933358195451457400768860322195364705402200744645193111972544891211311804575911883131181566527913866943662516935643418152201690229309610453564532723167615562728564857184474519473051956300655598047459876597787100919514098224137841722538762252728600140213177551631523368496763976895618179746392423519334364396885978055332484859823632988176647955713509043679088908558624061059559528535564860645432330498762642634602772988211486992431350906528746827588622136983140227654113792653586000267097144142458781622529660944812612653538080308485922181493563479855816951122260198018655871981117807756238333324292165632008828141354236536485793599460709161019126827289740582965776937410445745446984154878684998943628831262149004508868360916459198062920776462306533713540943460529292967484536709447999865186235543110085410722043701779130667922294044600166964908550747495344818031265697706836040253729647558615395849611349699842418850871847758576749182850903755032495167831554654982541482868608802198369770481054005530015362528590755291948706699009183226046760920200653900478648396890586902643265700171423719910971634521474206696614533241986954500381723897968742881139615495321673029312207564198890352655743655068822355607203692057862083223616109119555606838304637672760886592965415221119783352193113865041412244116675803611136556471061127672284430161592448758581511470550305220686883981275194476934673278983238357634352874466646917266060769154958130362582369372809378289561752469971055628317572803154940059676352760274520976577687368506960360846448604960333599887505642553312338260056444824064653447583481548051422450759987821053020874761617243067803636852383399863718792069563792087803721483905101356241461220417560235019922556499600742186144115969325795832562772196939277097055224710578076250925650231633682271529826118790469238375296260185241772902281297398649357708759754892762477157163759206482285164192520921343574196772364980806243756501856039282503022713436265763919281180200325431767392816465019933465495204975625352843165274883075649944268937927217743603840336423927302877326483539116648823048390632587995625508326306513610222056502413236790931625163187854487002900412527227154586149535122309030365587469838324554945846835965276355129915794407700845542640698492087150082815053082729919281341619073502249630261495879722053625630821868291655266372273507519197817937436013080042138454131442767928622077085251225390302686934353263056252001465999214616584126124401028855258836807272397233086608648017892283881332102811586721933511258163546057952525218708722432672889077276218622077971690845299550005543521380772893185675712842661207623757271614582153566199469361590857028937249466060185094483627999299619796855358344188932198318848433352257365267598952422102194493557014959138517016353007353770698141125372693398775128683569084114808718817406760273895512837669644123667136918361230133712714371776617630897291965011871261925134989835781762143307531837430466375742044965807232019999629563150159899961344062501278399649602260339783604509100563161198884232500363127748277439969541896695657018351000605365742993859191462063384016696370089179676032587247862481819027934199894541453833368459111329729830272246348076637501622682580531468998366205002472930175161273284219362641870857411296853291879532482968170089599844869923390898635765648909037196703991537925948196424630851853919627904787663923290426159145806213499368899054156548525212077336009205772268439764417772763031467656268590618314320542605473497647264853097137305001652473443992551501718939333231213056104196138038974294355032106601642235334251869092856551835782646051846740930503989584765974142410508840254698592814723941863536617810514872438038560212213811175774752426858945250482335685309493920876233367188232002282086303441674826570975969365945593919635177851693755446529455407626327817615293672606247658131539720882698427867651510918630044769628398636570708871383688295022401288127096442473693714742534705312747704919485141051920482444018839140335903859740001359670717305584101334835155057285212179210965006689753531820287166550959230307240292707089664991388378372949667811011122546501262846853878207283817084550542256123735125339917601781111545452076963545855079568689227123348595747194947040786610917629225393977176452162048702962473833456295250732636028908716738344402637939623143751526453565255290780842014741672454286682774573629654858341203051731162767744758880790295386877399374532843309415191647671938409677493869567338859805325669791162036637441690255153535792124915083040329885015764416970104911874878749884219768151649466563819565311398599430026155866669147394585737614413537490737204428375160506633465530708445218102237141693266594694849730985074205162502665398513449780078451884201197718796691613523858440992808567272003221066635680218001865999210973626133262867935597083605039230001037395378314569519831403996947092060715929997541586948829800401490633973916360611274640136632316551107634803514454002451642366579812892524410114094733821964121121037179686302834779626036279687958896192189719424945250097745320891543587538413949163394655826898659919800187426818281795328230983867310783824551791844763375112456629603426166953202441076920101311381003088906135370921000674490051095766339994021659688693740891013160628015536533283997944739631037987491569920320313683347458762714346194705029585192600706025778319872104414641366590048102898329060753026905657929836369121370228179880210641380371969331153719156594234818177536912900399199274277432794606180175469364225340823291222034801684695309063828305448757120799068805168846539455263643659141878635947213613337600661645936160359141083962773907544229065922030121173760156002681298373669568588884565105385846938927749230255672226052036336309986970688016390889029992280444135563359341337048041454704984720507232035112499780389932676963375261633335572502766275782223874145362184295487728853166541189288715255471065318524340304578254845777135984283078896955912359534848625086387632798614574745972523051019860737697222534987439406531000272851349947556678522424811042372289905327220074734337677810422857473466210824399919641650766504201179783677909430323807818487845033586452854272011976566252146093370815201584637005387036622219328179356716316954802855313208284693626710616224072255739853649611858515924643095249456284149761788612786297652817317626960846461689392049087395160926604460067962625287284255464465385105610993678922051660848225298236775444955871057527480495638402877510257077937467925443312523720903126533716931385931890295165524787012945900010184228045268202790721361764250409533703731234744020318470551448034772849813344015543251442260206540334161469065275188551676885825872474987569207376928808195433750913082010032049321281015697047909040854348947420761226345046014755721813391678657589006469911998255583940081602464884923850672982327409308217551562952316248953448410853062008829706804581413456053686919345992432914886445903757761734097355136428231014482037510843176687190799777483874789026294045778740023755890937921604237252196056233296675803937703394678830170524481694113281984732368778923791185360946322723695164535826969321115522160599093976857544304285879624163761079133128922700303290315262955791177253480624380562872572777981283680657543308746981828173955595963014425210339253695503867711933711544954424361759733315743840264662487101211241051453089642365002382494397342188524875022405275722995881356565656742563138002070168495276801222551266935503930698842539479200997040086465018643150963007537622923445476731026930090080906047337551314810634323603482100207494191587186930190566334419791104776476457902957739448816976478983860174517944933072922161756325825748069249927974233517044774649664923102671997717367841700340867870093729724289400820838819436942359443629306407120566005839028621460710171524152700252159833859048152455678454621828273226653429444454165459122088015563608517237291739012892501909422540191869610448864095632272996360273022323921158825048592550388833918942102524648478974483321104336994425064654305678053540274841103797791543428990306168900193119199209793979899498663686602837208176954998658596708744841467688411985337734449946170863878801002825850726335717631998564334334517442785467784536149287472201694740210779033158404610010353706367202092986250252229370253206944909693157475885949464667044739647390097633070630722521806458557808080244828858919767220227828184606205575347367767351890231580892036056640607428178561773804284563772577134413326468180641956429488502217058821530277075968212766765050442096460443360457637791258053295829382332220565814625272141535933527777469445210868298712773393317554217423225658979820759571919209284471842003235250587038459903706259001910125863670446562338243466601310951538063255551835386952260176909643873741419407015798563047733652214258656243087482188984547078584628391086356491391790615145098083607868070881404298967678189605337500987420494234576512438026224960431789771250663110078498338123957354549365810767193712369927869915948747421976184304996009416443017969526858340956804007569173563805465479661874420786831772556234345621254626952037840673178503000826083299642085575007178028352498679856453852631805445318685403256082125968495144289410750980760061601662556168167112584637908827462504842560743563736613280264045127877214294433417112788416279150606311160930454750934328096967587710037938234758387922253217668733662584851728542186068655799767894323568225117651777017688363472914041995178096711050447347518615681211437550630005149334780094728501172644673901635457325418663598367087814548685364704910405536933704595151645982302490941917444469244624320107279579927171004936263816991307467530001292944531463660403305285572733382942163876824564925835639004547477419654848943610570380307102564780792080964789754814909644289144132574809680437213580674623426078414340557208055225987481926249443413711904733366665772408249703350105873837903130609313506628679806570980624853991408309560635289333425149779027649602464048714037436656627458218759423052244899229871544142856462294947579022614788431816339741761386738373232770187835762721252086463705840104917131741183566319427747999450634268466763030349539018022965003551033169109028856980087223080923252486863048133230229059863175184786464750419392509079179428787851695583759439306647702999154964055480811594468752794614269592378265103692901495977248041710743381008413395229580139269845022763371484953701526640369951179878548822561822184736613639713982577282966060754491276437678123018903383776135447001070735800186894069234763191091813125794791451262572521609158990042556995114428698695094644425150081076356953401316284909732672906114800869579039062736534369933455851775816059036388548563417586427106244034179408367317053888770208373483517400765660028769671829119916797646380197383642093413235229802240365486035860171286199990105981472405998048057096773794213275731376550300303290243224693243354940878597699041791056320893576004155662763919107933489215373817544687464230361715846064522282856455490619596680720248348428406898239780665720401416246328382559562096737982195749677563317821157727785676268565359613207326419134588148649798886504673669205354686591425850122236585682048974900368713971479189990063323683924924857909036627825069705012284933736205521741535501056765650871710327814240589655053152819969089698956126951638993684509859780805565173995065656898815239404681568289582261739733706802714159147378035747106328388976318340226469975509290528492302336776580828236666267124047559721501825688654470610682482555034028744513796744066629652675957402641960361786916807409545980867741607156758561702737064794022751519637398820615842998762678392484614676824480177166523633966533898023824628007933749493029912193303079555723129693823113504743129339921834532648920641847386539130922539865293085472034192695869805547881207289721333530528366412615443982401637436015217285722635005799362520584565915794913859692215298367779249851878715089909457422594661338328336867834347279163864183396922487884404748946964598649688723375549810903512357694435833522039161637894543054904031062181147931028398404952402494018940068481138057793650526931557811356952086276871989887898449871082218669400412118995763746809448640308973027985209110632947631042842203557463375606309332890828825819002504915701370330600039427408974733709813951696031345516342917266012662804919241699324958611955827116747877479280787697917003551186639879361385565609378526421352070205313087801898524724034544871889204673055878570674124304136105634975822627789469746370164454651969235574335273700106534534225862257533113390669220930856216375364817811864129868677285646249129088025731810812280667049701893683622393414884224406090567537480919558321005966639423806173742762106454341383021243534694566001827808709517708428886028560124873395262402813997191606500895602097418163905513711705284269131838386237310596139602536495440751790438901362691638419373703531484987823391588839938847638145855293091405164763703472016031868317147773229906929484040124119133333475467485100270533462246017853343025638957444704953562852307549145480478087082933478842439482816564549853932204256660092401922949928188711600625952633095606695454767630434099185052398975595759972502694022358214306507428037718749498801836003150551228041417437231634670388658207577397756214664471193163226557307818614962393139538436233986068345115711984666824806957521407311715117548765107719833369655542551332398910944570110374537609886891159704816237219050800683799586881718811151774928849978932729666243542492782695512830909782048681428974203365404129978097800424800163561166055137290313691069927517862228476544869972573640315411394255814877914610757831528238788326499608853605787077388017887489948226538992991113277634291135346244167465790393546673746776299131857217301454601792005648164562745445478933418150171533581257366776618737633823401814659073660033427945197919585147177294423614413614026461983735032906472341500344084086482839370434756000740165155961351956241397274021720290084118880101674440484141310216069938639507581023282276227320066630199670695117833316622099491760110527549438561853950199715129458992270242243758439004364485884645787717814768416067527785434707971249337186202932765181893715663343355023469862547120010222012425972890091869719236145370195281349742405560478203280671424693094448332195438963154417000222033872188689173148421695233722849944823438770959137923717355856172184018904991235457125075915037027023227226171569575976524597557899135694854945620601102999347670638420186009928405819090157376376899939455121161132732496121532892455360864762994117841901661707921529312757413831739225434973472382247476457375342939476575288932630291715699353455817910951304432781649526095681511728191986576030064065906479070668542828524661192179103880731642147647218978309134614698788680384950099227832686471521496974233932491011635036606312610830650603833845389246378964567508162420822427602039919031025705802726668082085124991626831725945217980347934437681847798062085283895553286264331092346385697869012391779274602542779926350654805306203585055016122556036072629218057711784976857071653168323788508286141091090807922895478252018044634002941767817579245854251073583719382266454724527437935297692447437216719634527619761196694134512019631280968480907568579831587902533782626744825403241724531767749334493721191178721827071464257830380947515832187232635526262589647234125717495277130796800315611403425748034352206038061205953020871640513688038702695348600504017911124981246326261041253492294232171680881174850943764026503039624732174865341224888090486022690905290604921673704587312515014962204347308903914156230965495654250645016021124228689600958788431170627179235787186377967502703370672588045571879589688341589056808967814452030732874652214008239151511605099822997312478384789829020658941128450226923607446843445706633833438083323564433826736298880143141665181226284795037209936345157241148993896552732013335937510849993114632415900193828277673014784376962171276647941788816388984466369404955415608383729400785368454268853199967282748878971593171364112180801140614020228106211254473440203435379218963677328133582453532810466733782492044900636730870589435592951581075233879453136533106439678807912718178151246049392365840617361960139488799020742819774040207804611912946950546613573655019002848699137247667901164735825830635899819051444388584755902623781334638714229565108986160642720049950348327319969892962202027053434263665993268995577761390134757871381255761761418642562672647645982838124452171552895271282504032724295042538940445906770761197420420116447407116224650606093461536662384414544951858208663677489235582958298900811534816808711683579010025024882200649780524770418873324311112221263286425913070853803977152720263281667775265739661062659677368776161448916433024226213610906618128405337956925934638962935906342950330767982010477231521659634884557007723704568959760375217987967696259289870246747522750126668538365905035053726459777889847624463484567559952798191018198619122785586979237183177669192642328056718724853382698343892217920030760520026590001600425564992520904325549113834893613001257449502287130168065602944299466722804670554769744616321836035917766313687544066017998028106109251143475986439917169465069772549570466723780966221897505465776115615724315487771602735548338900515195514192539762455399903549208460869927311644875925326947833810660930091410531396553948409515145259445585281174553713363458338129575526152673756500269438306511332440029504192727139939624174338201018746703358631770015966944978196700435141297773247409676877361376603035015177235804699233334332730267817535839415529326410750536057769562707682985016146613514062459477292554872787171446625389530093037381986607113308692257890231670939603181890189139618487242833602853020147432645207500886892527806975651095768537197957999809313504479477401771073938384990290857752755308784873873955058118403357629825930723301427268955905850557267738921001830214653647796327467486725791288218271589443265192937389300788871079469276464668221749753673351634788531608341995897632421036402461728610521958820455471532988702197761574034143912414784952181534564615510854815134712144099581169798840106320955640331913417843531371500977354731981403667790268270983624481533710039343373889797902482460994941317010109242728531714756906368268747833788393692432598153167493944903684493142048944353955189916578497739531957610174153718835748447275495873118830177892404135232800467582258312680511453764397453087807788417400751977964395964411452910294818572978469503437530346222937627771828779665172328004065895026450436195544059362419246630228500203909330539553604672380165047344187690696764677664403084743341342030034344599178042148547681414371866420382003270702684841622306766813841306275531932023669812858469983105109016643153611222120210854835762161998071509007761127399849505229453546070626585372150881760400493725233431391321877558715810164815489211722240233415890207083540204140789183789440752097213855284369636264791783981230942635433058645629413190194236539698389032021518970016724992461416729943516526026194296785317117638285356129878686205429421662399188250717145963094529425145798922937045311064469235521598091167868148195955202699039781965551647756825208950661481453283345464827506084864927916393502709258504634311831101805438419270349742941783295217558207381174825039623061774246953327045851657729319011197404932886067851969762701295968703831503286517485417708439305052923734653357552080230687088699338081186211035746425576810425314848850049142771386205692416497870795719162928721866667740859014134628254470624590729914429072000486892478324719305265432889751269882496162781001854975621242319110459584144113244664999724382577354732092854457681655722772358586429437298374518813985057074197319860422844025818738607999943200026119312521385840733590670403474638166539352025403925419495856032764540551050870225517936967413804816264517890516739304151392632612840332430683796742521733692116039041508455540776354420659495791523489603742680098419273986990630981786103092653041521458238543278528145518205173869007448282080004315146115380730948780362406093474461260269977912557587548241524260879935556805092650136206961545049992405544641605674742630346920539947847177501283595838634453429688571241445053548778981394611431171878922351948319923432141897228480678141613851238335159761968963689665500867469539050298052310360509595777692046307301463695129383668776073005390088848563833582108118834870468183685863086648012111554511709137526880656261791797033915853210920904958161564466249989712059243411987384614613712996658694100374611822522703490535770509338959997847315826226778882289106263797223937123108331085083320811116356670176793337224339533198333769658248169100448142813188163487200443551059307638817127270305473585822864955546647931874278830779150493287844832169239741182585830532840312496258862491304100027344570454749214757322615881284654150943066381106937212571122265957404367400827267935460948987278208611277294048918977310365056740868115945759684440728919380460623601857685779366623035036696516856302686451626610683345986360929796553155037640793253508106319379025720729760931474123637327869466851332072280329628950429908287840905911137746694971646035939921264615462749053887911896634080836404192329382248466731632782200557679722427173068944012307037409661361891750136079026062447411298359536933813702172648739848396508037580544513551096042751383087120539849527845717645706397825134302885362500599355299161061406823509461382266117613874945522257969387148914473097891600493136667472409123696521937353093949964198658034948041626559234640397791905698192323453977141676422345078634250565266712971497470132746688138296057642757835443403785062683165540682824401099552274966072881000505858708684740024799248051449981497601659928010779124871558005082921574561286522466260236372095420556372067252560700985157032354921652213622231645167958526113385622605915677726037433867070538252747438040335634563099053520362828995687870917921913634786648757657023863290631024642183190715448868996236942976884522862752234423759333481729768213113797693315216740419160114105058570382310913084009142109752056026361159884393053901507178679757593281247233763285035285764132888448781741452500373814739896817245807799924040505853228067382828181343817487081521391120938495220072434364795876105159039006944446331384082099411361157546428768959408027821391739250235563848800715175383852106628884571088760778531614688789756233269433126100533862822115370935739525421151521751280592530652771788029901635169213861957285030954286003050261796225567696100440758286897437223556994425674075036770213934226637134934794809394903278017951846097103023536813938450283589733891299423576861786086724215070313003157791974440883340522061158742408032126926762842222524555404925089670505217129290840784351822133117509688453977397898563576676383268520258440234992342323847264079281355594131443185984525420620008404498027600827101050453572333976942543816567396785439564096698965887807339781432332532124420726275267881175081161852410361060335717810139325360336472897301631786109722011128129949202465269627892728450534508199588305036301261592388145984151985317201699468367111065255502277316201341646995331069677777742416964943985726886704478362886854489936756144518032672279158061411975739434626772428432462002118740586486724720311141048098755196358469476072871190829913541408265010944377918494888056381666853324406500812394767419162935038211411177042570673300746279225769243774795009141794687246616972803655793250407467877247819877020678728413082244665558479488479403616533922808443123324992867563306089206515062814383792641206455688791111068388221029207599768800392466043988951376532399227162558524049209420699532047980427424584809712546297851669734358768229781664783288370548401337236727496069162620364856837627820597481081448028894916252328750508419639742172714570494168002600634084702471555324009612606879375165414190537252761264289232497588352770685462243710942891061716217483087176656289671024002546108642420961939115816446178589643987361085911262254521802842954297844404396500177402283344995957742742555650310906323828194122979964332345599164802260611561324358871399114308765995494635176254368635136906614019715232829948449819338195557281428617377846849637322335971451740047145081728243624962350086882639513902091131888371172245354821516178480017684377000489162118619261461420110621942426455880536547471948691880880160978088166665606242399788800659075221680153467306159145163193566518193917205492673463779780911857771761739310028766298205130255801293215967828835152423972805878764918183764654629144074753225015563177735219973341802800547981307209380397716356288849245470812410877170921715336150488926718124861814895951570385698966003769118272902256261675783067646936157991319541444940580494606903546718499729556346428622057525072530973426616537904329092988958777792111724838887440663936652246784006195566634074093683320419029035652791424089250317798933141779823776212144206809246155717493890567000560504892359923266626877467272631887495573583575870027262970877470744544026970837036337733897678842345491206651221974241959175106811346593929864745587999709460600091742445577780592004098341098521702974728562224597944371688477730360990348854190695023565709298205408831223995781046836003246582477565047739887982968498880099340691910827916995456132757956252446188190572269773047815323453489691462582522516266963071821482902247638560663594375091101680327539368124583144202593505109112712841684336641236109848971580320531112406963353330348572178144631589974681860723135630012914553715989543340633173549298406871661775090802695321277059074036447068057984051782513880283144538458618714297270402317307809539573503474674227638999204701178630650219574942817471527243095630192745244966656616480770346209035408403501169065041899614462752941320535950543259602056664195037808065140358081855299015998965335273443400597951609975185812482919927093240015857316761191406761559697245317388198089243539293293384730331215568685254896580725291324627231580670501947090700705508622626666753830307929498412515421310691226406981311413407528089833971200187617060348846311895447843598651217053446314387660130475185135816085974967760816522370478164061737653670010541720376071864426001222364570774123032949535458638428987330914956627643453307501327951366214370069509230564075819874138666758758702878866546304469432570594289842862758411447389009501772652763651654814197785561881217297569943356586254738468323174079739331560675954472341803769405815905625701513915654417421246546839293959387204645488616632421931955410903205130506884926293140172419371558377787809191168612921985803331680761981528044528280140087127785317045341895211054360892571351657718122237287604512799945374657263866199710704237906554545729423553509745313822525498286219202944502935517650131503974133207896728449653734619229102952913019503439211566513041490667173143810721286823117627962874843217450243318868508450805441762973446737539848303504267053854632227967548275998308551085688824195598508227789700869524300258153499142715901875779180889938653105615047916662735847290913012266582132090449965424782667351122576007880327458479990739820814438830233702844465168722527131393720714921031631230381965235842203446930260758737071668458137513093420173374094539565552131949860888875985864042884958215246461825656181945361703104597386565751642610030860086605925372468267514153610075290383651904846509519718132265394258089942260578908080120355824631854383892312533303290294770353921402699261531599188334110993170448169975435687257354967036034355208441296871665896649970153981444418329122374459544505475184910717631488623544629489013995403089020690124244865936015014502719252443863811619001979128113942924149914459482656006932221150837563015594117481409413589433089432992956447838624536654837557949142566477919441052359093939533593384304246589203389091172849639770008978085117597188349576414535663320779330176465703237284949421141048910728380619598002045802534974742833669820964429345620778707748415168480725071247091154418861066094051501816825364778079233085492101738903805721302653413831421660428428807116271355126931074107816086306772034217631264924226767957356062410222279213146299085602296713968053352069240558815458105149170323883927994709350143514539541555860098317520318797946496458815100833692808286398904067886509299314624452082001638657275186593194521918257246563488144424318451136396835472767928590414062230941734387423869811357609692089709088590278077486545605350820946526226416229016724632990368838240018533967692221928114365448319184148388513610815134227836488483932488241892477206429400166702451617249177687324978368355959149881629779262120938906892224509658379077950439852589783458964195992931712301981480888141179412678678335417213204544757658841552694190299362238516228290367425994590389554989348031913626974897860244927541970227620965698703314961086233155258808256262799917949547266441646599090107300841041750660873244720836298876734801337464747809620521152800258029412082760960840396918894301056889885140931282523217296042538562413613748186910345341999599019932866855202590891387959050534952949523655342230250621100040870829914299909430809551514483371779462578589317446169233168933340601574641542003257076056822699363718130142045254748562345361226868180663508352843445379552313479475571797288783453595281869901182660655685427202187188869146454215234484834555050735034525358946011752222766725223360965700787499121303570948817205354340520195384015895216437399937772154626800816501413120804418969519596849444768751046996430742935970602702643610830775073100532709685762004978707510872689693124838246991153282989257467637601498682219149012527730283894858499055865864682662336388044911072248315006622757806526641081047720599915783668453541663955383221521638726229792343120446504636819363017436620258922665925148566251543477277633261226547429876151738286587642339160951036261203842060610200349730925284739022225499096778737492886110358280328844784557007027469494674570335207339860985753581791957013481324132364383455360461295399486320040776445756524964301702024214490721908071555980148810822225053139958666107145252325603139971606286458092392388989346321003861687195154167257134727630372231313713801736093547677307314537877777849629079047696205855518175902288443879891140597384426198289255498239862517238716614853301125005988803633077059115162348337140541978736253690898868816296790987085808105376810470692602634400714954480216564712899051891153216998529861780378907435505689588646969466619298809067197171317824344022860058939426305186772756084379822022345576634736031557875638926203203601997024521159716576974466917500053098228056108857241444668943158418446067925719882267506870006999698484354790835697352094957171144294403097619192397058614281474866567670053284790905741782763220662736047991796278443196586242052099266265421029771833506697602104995926536872664615377654193358773954991830551679520329779337296216638313329856518768296555394090503775575398239879252345353340783085416975803031269957592271459513537449992713289951582935819349858207285669743990423809213812574322295492411332865675296962255753939433497089503645178275718284786561821426989782286005452209990666581014177730201529975668449200223545431548940734636180533256917670319618613948394829183970826463652538063080013632926420311445550755992708513251355889441114476022119551031577130390573091353329640296699775502479700243582355310952222611395887887840590340368377217506459063646440563282611049926974478993688084956672108275545784549120128750203143915890343870894598241330230608594007320560885140078213008435514545619730800882716768187591834334044815147140227601134185483066333610613024145642533316490714341142854749546209787303762825076591506466608649210203911928313708189616346884742171196470670157510273584426477626470597493313842017421954825693992950942641414266613148071008467314699861013492782581110284613624030674338215667006008335977975435789497172114929803033572990931715847292035885949489582021472725796485296685522360002717650003657468559229830022998723449268274576424987067260612372055866151396969184303325457133514166296082486465951943590071646417489249524224215454334721902177119210409282595419089637519909910403821338290895167736921805812628669948636290016744451373639185468898293939210241401353627668195989837973210871051311388116110610436931703659558935970979851217074957178628850012703482964455513560666598638268629553799672971782947607828026309918855594624357332737169105096079333435560512461066640610410893144449049947684871055607861103986551968807012617741959922393989965308455694540164155388462385515697624167858569739214977096015834977879143221061012129542211262592374476418288777589416738343609347540819900439834227346662465108076277774933658122231462641745625753882414625670997873223097810050290071431935112526206326591366035465062897784056254733379243641616580467079915528522999887491032667336882799575541761834510633351809461309607963086080699697740947861618502607017396027357982780354534881080339010063571475137511733331877821381996874556922872276388118547417761588232284561015909177378446264633963675669477840491755629179669026176891395220156504318511852621035277057800700804031722313169977282397660072034302955107382074069786424385507169671839178810568572150021115248446921308645806035215284678354843127851661353351855568660010369141028769423334729713280577933189192301080205310001013315583044119042479903370587046106182234048577876325190436799773758341526667600924717384363451416422248371779100960296496252058268206251837587556046547873584731840911141246873479394662368969734092355458194873456467700441597132855659786875796476322949464242938074033108570389899412666853783675266016718101333750310657333785862023384097146551327898497210209646706122181482229477713633070363092880404403853530045689745282990584870123540588099964073481477532844929438086319072950462176527901849391981630547998024041781723905236712701991020047949543233664639382709347609355999135688503369516393444263676420543482263271735817714662784808693335628337706168077980748112503207031256243012391425901709786691984957877635598070601301652448605623691067043827700599222373632575781089942117840240140294236754012782666675383143582343722840384264349627858975109606864742215035387636469291962161021809261636214928929673928308722354883867147056196326796899337378396526890441821886547936326247092310346483497833636488291577864681534372873981569058560638555912492056406005226761171378157323998105359156559786700724644357386162611227954110765448120400586594143770067655550218884861061169672902328474660101853990481233970328390800204465572040401297093067632840116153032422292574370093942803772154971509489086787455189117143986848416337367342301694619328075922088636024575248758069332702494853586534599470869743442495746984562387831260753524714944483053542579229054274265980470263943046399562306639566683765252334081550137514572121139280241268611334271517033889008855955697653467245299413793108056253122219409797420846231709242105189856741352703886565909528906645880090165397662342399822586326258242224881702453067240277033803980054700976444388350557714991247613646946668350663915323346164097551456443274254789335187214082603443342582783168335657901642871953844557765941579317069815707890656132681196839590902847083909826330396196962497927739050973740164000632965889586347067797574449473258207728461478388875732432528888131740388117714879775465420584761940028463538026782231923689205195181110995815779779120439605331522151354045795872976982827388138315393216457704244260270724180564104775122287609967202838749673791383138138151947607318462144704081098123966841669641291580611098168699769871059564742306031721302774293884465342456530874589939192787637036871003884276576697437696960520562632734774218519607714529091681125322876672057392374572406597529199613327157379169846421996275547358595339081539640505984176046138841536957664864440242784259505016424207299592763578232610129473017321531548485683889348886632497021748866504820885187902007450377082007752520272051701055959138407463420262618839136764424262002986660555246514785626139526837484162619820340488419936670583498729413890476904424646785552997088228911192811445055500305581877734716834700271409708266792704796136746031736869897375501899450750238645970893390155759574000451790310458511258745030673751472472375856842068545360443148758456927014703705232364106008397588519878755085115085482222444363497753528770895337444889163534690652705064477815147765645838971788192528054238857506849419801276183694886016111228642130286110180313086126785607218300466126587690804170061372502514481286136444924615935926559506468552678375122608945435120791843997700959750543104077199996441589949100777642836170125611754212079125788310229074483346296979681354946202139676546008617772300181269125134744432759204924630462481299345232228371732017075116430448909943975932968562125763366475269146387182692626136227533244625497990722603956589032741885882225591786567966426702931624246297289260409634594173596366321955705242579862837088019549868297060682371090508754831135044583322154536106456620053509855565411958408718185314947635183150723224465799557435805546606371033841973495410522845581069614687020631910110900090066689483401450627498872702503874483891726251819619426524346061390553269913809716032018556554823404983888551731522337546992075310264965760071990197919139145324800869275450383776879923487876073420123079846487468239002255509914316562683326787601985095499197343640266055265584783105547026672127662492586899139058285914200996278077477810506135697462608833590434724349849778625384806806236640218728581222278395515373099401471360411698442019722738708971974326679831965795479943183850869198653785721886767937731586380019147387298282848297883472656148820648457995595719134529437034276316283178450307892214350785606754475580918146055861848830744137628623356207651006252538384134377572368286540081855179647755517330846082990050704787560278611305723011050847863817842032072598299070225524029948395815075115123311359862900439560917922977467223036364524661322592400011153554242049841542734349823004750603161486879070471948701831323305284282977071372493935588844258519306956791084800645778942039600291654013546732228807977885960754109710603518342159263658357163524983281122942734831860495163420664154212832933399168831316262274597918263453396904650465958165640297424703960573997860868962975122904457759175503116671068231001505764998953323969173283941658997178512883297854389244468132542765287136305307290394065967201150440341450331684929810950329586320776980187683268504756076220767925673480032938399240534487767856352935771054543510447720968774424651019314338037205215092251782755356837752831006234634764927051069822333548154296590157478016561233061052247329080085462135469123615715671887315868740966126973566488612351027383436579976070088277831080439449377682402275337767436605746982581173955386947037962929519621241346068841262257591103789479841522410309522425070013656810697525824297872193050944660603014969467894627707799761428813228508680100372898056649554009842333992395768714772230458424804131374725007021640377301914220657178578914115120696414972273840930269273457664259831024882248234651358276495929765420589185542411210834148663725554627288483031837438180749450287951426416568810098433485801899405660498121504865880873749767649676312566546212180729464641735638689886746750470956475465204071626160465729939850916660266206983794348590716712926428791164672336402591683435573228832823556293867781080489227940352206219082679271048755516154276944308396816101223345099604820026292891723599205986031747980069827314084204059195509249642914128371201250542019850160722104312748165218498515767609141212852998102201059447387008111893504451508746070462222618550366608069108143199201302631236409996679766565858858810230211115334092123300093992135379007571161797597189312765578523114045273808976826202228760783973685097765559454320378194781527594996991473902583618049148967225888640762794781121599380458000762761667488310783774225354806594546024233651595079084960327058158030533482900594139432214442823492541728210725137736124666962242921805804314661518254370179683288976964211367670312008148015726025274152204882881701461223724637848370324013995644987249066498834695664070183338099748127154872349473148949672255099179704531738125618347232088766968044708939400368948226727301160698665731329799385849456734868441088297645660157252078132459164527761526101758071265795891603657816214180632102154360872370362664027296144600051793698735647873222099949142776993303294479363277140400012953840914139901441768440365346687655348128148316212473206569208339549836455977401322136833374422372470221590160620690191079870636282211194000958994359039083183154964219223578800264347016578173363163087432962147546369959018954872370164351766498265616246738213319536444718071001807005261791746880460120797241748472131546844693626053802975199632721708169867238743350582186662531857691830811783648038482057886716515827413526475149668293480925719807172385906437344526344469667528611412621481383013366038646079049097166289626868920934203196988822335255535597276019028665749610778932202860209276667790803733382488247792229356427754209007013956895813605155540571758637259727373277849074358411981695213249847437136807894081918140386156640421648135553268405108512548747341645547485553796678977771880914927326701073534065893472923762253271302346687121792656225839820245578447523715453460012438085667957856448082080979850596936760412315977477577192476357049907065199365050216554674343794144300706945521543820638418143124861183840868723320022144903693532981603392487014538607069443944941041669505132102208397897238594479353933629730067284231358911751816263835020927526420808137861815005512732541202037463548024310993326950263644094869947193187605576304086332442684550442613129031528062229797965084889458714318128681852740691921106216892674010417836504094559180938534375306304019759105846316626303796024614899471935574767412648243705560241116890943446262943602590063342795217881389051586146114369957105801278467039490042731388002635153899541559770349919092311158806155989940711744690297936395027857030297219560939253589281751172328560616967350611539779490417213861837369927031369270343719089334583563473473078040829025916504538499020768769612893331489607865999462478758655562710836675308081961242205432007731286188644027628980350001331661439523692189318996847201395186945421844173021364155763104755303347132182731424545549213381467295218600507840912262725973343331781322776166799985769995365734378142334596457977798281178854461727712694149705383959473463791228848307750811490258175955366937853487864023863322660781280842364527424742535574235638626220025951496424915003444796553568945178851171176045511350211038377964603948108314762923708355399160429045965579959982786570634903182137589141655555892251778738694798573726641850309677772539717921690113414417962514016875268495222829141207582388684209659921228478489876257024680118106418533492447881468322767883857783944526655212052990286455086423381910544211622592513404083741042056927828132551582391237320591483162952608375965661875829827031946548289473196661668794584241907300649844704003969340317281342816584633805952271257342644718933336057706204370642027550123264938125401266309813352850168468860826337725749171155301281942423870037812070210497668477040162301759107854979020467655141488670515036402646149879911126406784222024547696276839523930803035882347756751425391301445396811503754585705250361060843941948627717697661677883276274418540494341251084400371190929377184847519750852332430415234682485625640695241609937800670457288871948245620365273851666516871611124075048947478583549456429608208778582855911870639944169919695135901288581421338422546661203779913912391328294602078202421791818856721512732247958444921252539254431815102113956816436058323478241623482448870626001375824532723693251195689434821298554855857991937694640052017290617311170018167952046652246551103788925291303291681211042742606686849161423174878443830556795595949254439268499661774136692599856104855830614336075550087459931819224422990086510972296235751800616629350764867290907713705356912223529733207325653170662916236704455405612690215258389520878443781447533470977434028543514760343014270312881269215733219834471016961282628963866908186268022506861712316813960826681291610753801842910011156189009493704575897345903504494589867308665445075104554985944618284292551686894735016937251927853413202621838197886461988724291164353479068217207977303190548809303908740034721559518248095933285444662680133459488119874342428299922277098585566019380135444411708559213748265668897393800247229725675735254286261084460166748684048001867631625648220017890064193639918997932722216334213058944439310988415468612025021458874442576035303750575502878742651140235659641031972813621219982082363406310199296698862880989166879135741851771264979614077778604606164456544470195419900187786402260208093870553491154252159512180596675064721077549632000384861670536281631605486060471245873815041330129410793591946290190650695272697061304201245981402370192566501640511522114267308548849400364330028118631685224981821137459789849287742179711534088485450203975300586771304793518052798942803076498799222825481417146957487395989286308006054477267058823021510587576902491664343748004579530683609213204738660032058915755657748556569321712043037023416861565683055116233897382380439472702278987197445863872335556098911269846462532644950351138201841103934384795388484311950795546755140219126595793354391609606075983592771328245050928896801206622985128135360677011708406752313943407809981354454345910878577465589021951094437200036011434432658604471590463861762040136701210847957315572006009641709357163873870912510135177065619887924851839337764674981329675305486940247726238808910877518269835992132927540196442207195026251868524593155002285119401192339381780994601339608329332989056828675282885789097556875780360510528551771544426492787252391463588969695587076627806903059980600586007975434572726093476261499692682068660619579121848804068915379139524022211241550451735941536641690660078180483361557061721061281047362587187971596009112512692460724364879754472273083281417474624263370264605234080906354297545606476488337614276376000939477537753563598749407060138911923815542352514605392029375419799141304444147137115526986836767324720754708526683229086851579327775725760575572683817038395399446622113593780774443830364691667942337147171648778294640724459072706059806708324525646060750808660805299998923792441481794149666599533530918800367799044306805377882299485495446204458112941847017567178125039650907767799556208950413355632334468806603427774602506785989165782989299909218405307178171358086762407947608684002164266315417807604672259054646536635686504887675780010601069826500812534415364286461341989089891759024161552289959177195337288505892459405313301541379448523679123056703309634103250978694415343735248807751416024767395093168782971732969735417836348631403208472818099684501137413736128517053974641282496597799764371795010183758776883523975616178327712992704447858289160821425185050658314918097803682105680952273735117547915131492007142895962406055909967551327794994862436486403602016811041179450081898561303556808532717827546374735037000446964853402404305658532684660010430496315766616085142340130426278146856824653765189168039406576772528542026338526706300923863623130408000906182976108156171584620331603463943654044257901266720700853816945047929461829069202779544857279347174286462173844101867749433290326114485297621479517254365060644983776143014356146325913833046182901700965991735060331031731242809456198769922068230174280266566338874400166861950253040257212515574746104236346111366779387766785234068108040419873496152827368841534572649729916977315253376067393036195269999871277422168257103103006465865704139335903929429935613820436387298266309013055051874716496248948529760544431781365354143976774821587188545177496752328332671785428573982688807716153859385671938180071705310388912170794750897884713601494854816440213889520182675504327498608508031795504423829459344084320368361380064236911617710860945932075197754131060623717740600881951522157114225906913005631298731114246224092852161908287857666790822345850832766481992018075052809704134842792014963349464662388627803548251986627216348231155049120736734237968017739797660688318675485822526883019568480070592596279232395811235657403141372847552723777270268503359512691383283645434833794380706487925617769107292698709352485569990324413282257442820339907531497450710225748063359073066554385736900771502520892327810071529369355371878368665693587393894104547924808572651036886674692743291393344568459567278632553870171548937989121483456040435696469949093623301825299383848949063380157885289636080305555151604570086470276031251428904088342789691360523122040726423212523230951940280824386696998374007741678596123240766638515660845429846833221435928716710252278115911043206486544560380489067466975672650822760306208181529131779596327393941244872726129978100929550959610979268332479133003050724359775652218340289769375809094143024750733668642842318738319679957981773069700211326506977017159402485938042146073049822645091284067861573587523267633484022994433484092012549632942637807289236375681206026264775111597109614308817696586409251814745657107400163343587775463388382806927025726721803634698794784237829092221597701718944879943409436540540100711623395675228254413413927621050948716524694730725048314103081213214417747796950827688829931418554234045469472083817763122825165168916307760627565805004523047627427082047593649899752898705820595234614120973301695516437224029163896670683271030287198507266646515251970392041278933298428762407651824540214708722603659130491868061646192777622097589759706896403355966685342670874866522682873196319171957303084598242347925182671731636976978414721189356434373521636978329314612441424689099511502571320641826268300139376289154651667633672490254273175002206976720370873098510034284231281835142068660509841324962696608446010779903733670096949646997188487988913316308314074750367716682488848697720794736553699689851955214093577061196442908364127734945314412141028674469324981249793915411297005455244800448518887141102036382628002835453384547930630179321137290570106177576876111624679194690189867872159209573424147328954983203354672491252337108946138863798870134861591047643321203245398551674857340029635581760486642926068294082644110943470391238401578115045339407999946499667633548164827721750824254493092633397578465430163826314130363475463192069391247353295422926667333733983794948375505246524125000126615772825740387089789799103484442368667174700686462338784506271930660187361326601030882274160842690652784317648236684609562937908747315097502901494684178705138778104855897673157008756431187577817139504024264553821478818731773859483983053166568240853851339223670427423134527664376480685613229076704683201657899305181967411983267818073807798439123802841397932952296815817634844992624967118878653047281403671095337439592083599261823296099704621634535030358542243895636138985222107254605350876194389037181181204013248023386591961238867157472855607001690503399734359072541368081074899705788429674137461410122879550476876957954961084630475872262863592915643854447186265070243020568854421975905738638294116864045528569921536291564934171162062776991438733476878780743363193626979967452397814684909681825965602491637356145741972759915015434862405735896252440391418371428411240024504677424971541243168420878868149507467774349674114631382570517182756737519684206821600727723419565540200999083436915147634258701400734965566979282466102193519100318602360852481818255293980254623600100895598211629128244575574322315405251847847107217741147201524797256507389691121040346327778231074183860379300968668903510495716514425420301373949387674143390672190138169034468584172734872051633405993398125353749122476516995093485004818757680540203759183744054775552173885292452310500968494565053782502965645001549079487289239809332887079435600795577451731966073367427959217636631898214207910559865134756814281135773313034455038029012597467337408394589864730335325518268699699967467813145696217660091504672809304254379487248228313148023574016984017158270430664525843169608620753690930703023756901928317363136135167857837284006506641713820267730996429867422922539284814788617952654037076386881639731071504311447719228354136651229251532357250848254183845065798286116574243381990476747266575608861793204399036506945115076165113845304411954691347498859164117935920818469709428803746519053404967828470148222448181630808170769112880866047701475921352571105079061639525237435902873613866166487062070903492832927704749019650029163087827350232808782564631697153071989054024333960740411122938353153855123287422295443969777371311919091192842013808126307327731306396050498052627427600233325807899176320418765670031768642599980602421354388959173773656942687818915715925358089301703255112026673126006852966079227649879397269673329047562853417830797493016967359154985502005905133960853759965143007763505793352636915299551326739095046415839605512019433853183264026069350884567477376037004901449212798554069698808255659486431173359079818642034118808874885966312942627091410778814119176870274049800499284200186203700561364114419167323765999843302027645915189776425652588516154014164426528974633109916247076837711079837688404164570743618452309209977954487459978412147816171824657964734217531286014725321651620274491171753485251207597447379943831122833162338959109360363101340704318278145453442514575879054679442675697301502889969863766348974035132857170659946811266870489742602579430354629648427196482591851154535654434714065901326035237429674837636891724410537472245880125557335053066604691372579180000500914910663455647574232186697041085528501808437917044715566251059291129858519717103723420767397624879460588587668151022666373651389005023513074867174619262289253712786843246068662085296627382201989875455229375509916879505028360535208674980558560442118045431542346876093825310429953033972846933446821559532565393310063500191135894624452999763728888124989445667031698719073305032090274286362244114641540732401722723953747704480887284845189736473204127517827432511681464817572649764794557193527164866759006861669390916171952705934510230471861540703781908292816569444420981055512907032221237577463395236618978196904153282051645387562846139558682931863755848290006313312582710433659360739459167612722546071781674993010002918076407832349177839728010504754545327326541824315772695132577367669140735796827792818261943084205431751940775895705794591789180236050491151832349090312830595506128191971372483532406232011550951290500345114545472208369855215672632730760154238882839490748977469054675756810436421174007241283795424389818258216391669670456421481013149938943269586584817093774341298699891869490403556880100785514049546745709892534248864188465167199610525968727887516138976546141702684377173450629422410596612283694493420680920125236915629320969129643319592021355414806830034400463711041003340659914893797058349145011910934209740327570648922036218729733810825938631173737619955669156672651565642932623600518930649247135382812166357157071208343463950625451587253770728907838579867443765200572256231595916247484619803606296538923759372455133717899998854242707937538056483973186305596721202337584590415726256707628593210893445272619045257111667783174075235619741431836784533388868759583600174794723018915589573499907475822139793154431332383921414889827339075845546693594593808717742082869794302263964563692595103453768428568765002728397656910432292739200101957306226657670455627921956231034460870102974956769080647739058074342984440078042164220787907900239625349433578187766361152478915365792257105668786277079170571644489207745162332542315826502978676469334759724716179231860415456500652722128108924175607489533957446753243404277657544875468982819228135399881314259527876238518831736828926076034959697325086013746013662693759634580266010726278107978154037446796092210311414736399608997588583444114379650352336497554380461980681524151628341640477500941030573100393285419217484276713268207314154247622457118417366049132097849693939409754342591149251226466677974362815127255730137449206618291946369380934299085256834718992692080975543482164144649102926492247213025179492527994189636094436832167465143776515023123783648164109259929454414531353174067476913622573275292462419425286320946215607085266344485878765526351076153106111868467237985482433733950358702511183657925695522819327863263522142649116941723935305698514812215169333792795468263909623078543765175285989459344830751748589115331516524357019480902361621382580491060170502735374019012684098569778828794284173341514208537127049237053324872864948756157447059408904931684698468724156175035668148561606080560099605672367200603139152214866387233317626499956911067817100403791058316717663585841925913345629722188645146744668008189781755137369650390610266245814297783514098148118835079919985262465787568596290718962284992161159326112139745288524406926712103701418289537469434108824920646578093856534001890308599225422587590596584040059400338220242652170273486976942506667507293792106600724615519443671581542583339768149126190699308924537420943897805832077155627010207663644727328141052936379804611486225355050108222161179472449600395007331633460332126740785495213633999282280179337267338030111138746932122116935884201911400958625333838214607016207196521312216822714546757058252491820261133593410486275793781558130283861422509899168825172026237183930763780251991454133958984108014118241849939909608956571461946499194658962593240760481534436320967480403366265589369956478306956363246821282371725816373663334134884953406470812761520091510983782335470465077791462714165490819527162885102022606422074832832937484324911823977284473739093251257609728747410580477596046713155617427266759075213594864230418321568255406833501213309284274191344104636099927091453721741702300406537076264669641922351986111393550110464227080754628748184763955037441429473018192672052209787665303202633566095808431786554006297640537409203271882065334194591306754960280986909543404922238961308453310291018561422761225759926164619818964747263415675657303743682657864336013731448231295113362940426357685722975548038239443193498036512476741080568877866314639709335670615448752245154861811052431359196676495266345896445358928907205633921847073432753239709062215707607160401663691336496229547142667833817943599283724449601274181510283285163893373960763366190081681324915709918166078928432733320244494712774415984498005462199951761465140303010443911122330221707553135571853395838600182912044046912111619879123043717328824423436599992642657363931308483839749768939126843043793949898253274018590804850208708159200647403566248123346903064150722551559720355622704563348598951542198212782061379341505323512500647093911764173271385883444531003530711165716700036768302013606605840665508003525887202595162714720829258446147849857886501766864156526878765338908324163370877557245174679369612854244658516859449463798362295241354575089477320746988352938122224127624987822516284659421370771774999675337011671421816183439972940390846207479991597178168892485696212670101835023310935175456602420803578152609606296514761795710242916305211575490125155718107556603039618167382779239631900715235846788172054997511263670077448573034527926586967900562268234596269135987955187379238028419256023582259843937192101074638618862756207796238591724500662749605129119137575217368933543198077823430300913627667915200648062001737830689865861051933724210016286022628218397750801040936170639339257651280106004977157559096057835662966106208222950052220423524785265399361015925365781908291425991233350836379548926533595593876504116478308095823455687710817397516831402046714791268587591742672954616677165778477412498440548284762224938219858941933358103254168483586077168325737296624620489783699067631205967706937072821417895246178208695754238017607824885370499616585410937101516411288313332748620764827852818147105009229944479914297667168644415525659650188478025549395470038544776798773526314950653225857976335695044803856724849640173319997149572430031646408814003711473976959839058830952277464054848964078288196287323277475181769818543384544623030193671571756664518214493567535057241765427761604810476307796350616077196568171925654645963833528827745419557783861665496847897236603533262286170309004099352919357554861191568774896190508765592036299808632595988990614202911221768071452383155118698308747031085683920904663622330152839591968140580672373575961412724191447742431901498648381095855330377414237732554043478397021727051792952665808606599777134416082259215244786688961337587816812984491225115632361693920587488442189433822504842175797938802719750615898797143835655410349273888561376895214213042145156040666711687607318516306094860914861295766287981730984079597295292994736798141749801787497588686372197045833687255879414501838556499070190947559926855477051165998808572117793248103818829715020616680300020272819241055968803154863227710624300997738975564560635938642035326439832862335704275614151620622233674479218033955594250918886077387586064972532134075869321257457064533650488528156691409450003810976095416733111219408498291782098792359744963177558667570756480121892470262605705917609212327813739859150653014860284086143507183244868426725600009176695333462647908237852943095307107394215903403951831184689019879991625888814790024005235120853626913510386033500638144938263264107400327417073655348489434639434286727593605285565734429458890243046639436475610919354404344714479093505583056740364036857209003007496139244871603662184930745809688359452946682957411449823429112310722380121143106190811950186676145886142595164374534559884943049161145263042389397935540171541363807197920211837939013888225746006656087983518495923056384446689352959090978959261895993731274620910724805967140251720138113599458368066360042294505643154357790564126837298692346157680482304495280321610859318513489451737074916158999219967048629814981940264611951069367304136140534222056970593225375461480052861395325029329715542242604858519052844226439909268399431262564631471782951336942443041331578168114050309859187634179322400661750768713875100932508182657588349962927201659819088506095311556676048686399164365800759252530505196824267993529534840724860740315236751557256875030954744884042866391405410476999188513975440781174208205352956962399615188089427443588018370693510063486925345427124275003338442808993130255757794870782196136970150719375625545459187030661146083257015824945657708803627128220839961389538750052601571679003729503065121113088353059579684905811238489490827157095403456934800521593157684540509695127369927531621236891058152110503674909776245347578518208331252251185376681978274387686459226909970259690181147518447942377618157883555662818334885639254685286193788979340400735188240686551649704602158478684587877211647361522614576442753209996361192232662270107788790677166025649130360396049836714649106528144456560334755485694858590888902728466496059240231401833821202621008411923578199122802445955855964739499833009058031990221225041270947169893149260721407471231186473967039598400524990293483625683447679045572579457980317195143173375424416054646987197923414431379180238704250425229685652246328447715242315943058467811128083320554716818049465600583702023463363546758135036957734338400925938813356324015195882603953229993836913935765522074557914039274365093018827113960386652465676243941048042450490050639191535346183067558032597108697861177597347734150556450132468564140673246915729942619204256546372394511546934208140714615241381321428992637504388738436370467020101001263575853634046997171170466877694454397257264673718022645586063405292677962258866184935373355926308170916483408684156166823775249101615781256315893009106541504011995223863346615065077684891465732255369033907510444706046359906635043523611168657233318583650823721041241863412041055951118821045907922150895801467004711065575256838082360848224716549231820129250850681556509189881248207166400886489580606990697329482018669302138272746417079546995834557829390641457714080020207607340954644355973428791378519922411595215502895324137186977003817400528210821830500177685138677730340352558790516239431318889880611391862713236371937377147478058128186600317148179516517800227132647898390529065505238348325419051189819458579313271802502052019089972986325116350212382206649022850050842154168634742882659771449241556507949575784906649395639066537411948089923503426687633924247621563598428679192573690120127951669934256069423938240246051047741123820977719682565796010047413145374469045260747063659704199245807418094164261895738268042032339452955371841228756503467814832499721728673641891820489048442024524927692506477632550320413733073022327123810177681416838815360903639394365664947460118129027642956275485708167536150377582221516048144903018959397886577818612424955248715331682708217566313340946449330231767611865821987639165316095522221932669212672222256990777359691235566497071120291922423975020684374256251088089290668351564981443157097358395998466153286701784598056763397700893309102839181742666952562721653387523437512451713446129995023775018796138901233068837004711529108678520814266006586439530986868780103123034922649963318677150180954607579660204496584160867615628192250156989731389337694402113108460843183686942966604338008334277750572278507590175761995960261572184471047981994235868784284561974911811170292191512485629333734585359256070237469933262752069794243215900314430608721965188113379073628106453118984267625383964506397634425182208853355926254628052547936595545182233798693436319162106873012508594519787545739252219147840185354917716858638772839874626537915561750215846588086728410422193427582411906508646344595110031487702189566332997055520014715024221876727865122186825234988428540926023513034851448459728717641225763926404665063927470546741958760367089489925671407023469496285749237988392390103170716404034558091168562977098806724066010510870245286486176297213842676027252365293923410124676866474910602677083941751789113462934034208251427585325399734982330688288156185168770366132994783348711011178310239671788340428985318251179513487376646507787965534417442391824899217166436432035128008439849568477538388139546932340346088130557764850568691640106630912198387417841906819999232279638947895564742919208993021177605291748886732145742104980278859238680018187446888175378490946273823923546052777430957845306311602016036622792296282001507399723003479953628564955115618608042196436250629090503843584959765067486123079315662405466090363402128768639012368953266877832049180302046090086270268437928400450015766016399146859385238770933929810350782354496445457809615516564726169015481004098612299293454107982059752326318206488999448472362818253193369633013659968704620499823798577245583800446856936338152601601242570196634245311005224982853029619120178072077659529014135973948854681378801641455089181279300801219758849444151074819041624125225723094807732514053018781774111422311922106585856623826967036488944379444528885914461397209204924441278739964107360293644998798486941622807705616998217161922648792384777865189878061082831434040270438080451238674306404809171836646689714954579078878312696183390948391992650838817578670509152115233521683025550142366161480158418270564552520457407545861344127589486655501588381202449780020762571136519813924240686653247641172923838624844765923675489926200914599200627168540576379794789999799241949761331924203564099151832789726594474731056368278664585224270518303933771803173187235744434477617273581164383658698588789340323924580173394671011415041356641127883343797156791829775278450044442758877569623833154116715867112417477587590436614146942761133397348514944980783020654432103916482779297033063083676703486876184299878441973005791274242102724221926493151436722228304021160644082651455541168069286090939865144101965406382910925043863916419157143764046292900298676553962354548467903418279091967937695304773885755973725477381404564587380071318783778555063590394200404005011799620665891159666965657671750894939110130137758377759828890227488844174433302740980568485293099357109609294284205447946248262361514433876045865650427116810338224555145745652274617400210446274720452224887284728458277492430832850997712931805479662954167809888416842147963670712882571261038545482776141798227296103198120368599857971448511439386282869471004605494098915267968338997459236917946927724572025612881130976228362234085545493104792575263073464148048995852038458241360476727999113931890575645528388359275881472363489505294651142167277800634510135057206680043458936593257257281762385243766355241877414146587069589818980960646713547286866605643327563153330957234339530858523698959014555898135921218782614261032495755290783887417938691193557224251411741830500162875423502974384525062493655641144636935928225662769792236711004875896531584134654885145248065543457745359931123664759975478861944122938416559439463348460415046520923161705736590571354093252342886907468492191038782002868801548089411515493387091963059810578235151407834410760853956648437346734450773638856546252799273043527626502425986251305787760255449933488490747488074463290800599152084027081451839858280306504475146871976628355924348241378048182743789790308332972141064891000650147248471134621905056432328683531479904471101519389463501818461869138990124100608559873198759697329070001783928428826593344342322886588551205562490991037854793349183591320073664470957662650552963849545010415676657818286974344801647547748686067310456059503158034554537100205072740178884312215614488601200169306670105871300012768286953258721170710972867577920711184940693317282868476771953485706497155653616112890628683726237013377002108251994003545263389212005681202752386802127524918316408635546175814932866949034102021929562328831000883608233671869063693910236966580223307465748541675551814324206604244450316449805333207024430891156145003524433336111586841089476038396061968373920595720714831342105388701086022743973067377553029422948672116957840985353318130513331643757609935217966432204915842707298269729291494295697046504703044816626624701492775288105025529649612301201495337847366407766711415595554293276619793039367960714329478853238377490965359154618202225683150615785713654736300477609199443111082140566326499916938559379416601561680597695086014594750392144358420340921765063214084233188350125555178268887001464551309565793838647990274775512833166359035739811979016275511055247758080330655216819539841662213973814463743243444458043319914481068427760049342218242213552446647011840680673490800853508016286671949289832328570567233959222715459887639580462531995267358492075012672280448299282521268735132459777382015687214931135895670222782401734881282589460619958094272567006920180901314429083012780227702924417258683923580147455725091693481310166901322129900507918920065478443155991772799335641757889188966999646379162315570869330600264760515845718030479874125053953183838693888711739499605544154385079184535348703183482154949386650065829817213153347662805418659018621650509110174595122530435036988102487806232697693787354895078281390655075200980189624014422074756651217987905042945232798172832748933993546427771260108082916769301501036391828827991121227976977604840696600060415399065953277189482174803789749136328242995545359879848585282672270467745436809031105596934798270699457248055584873464884573578638421669033506800904669404047582022920602261578036876559121473753091433319674243177322639945524039097985325174976523780636188099935911755230631212044094503479804455373562440908117372218614769006525446086249137946891618730819866958506741905762077999585173453692579371302592582256044427064099320641806086898039321203267785634393953443472169207965618234033276920542710021330314772531706783997576150809229179414590645804049910992803848135699770514498521582343506090046668983591133662040774629536829400483103839291963809382402694757908799107145537305714171159569602560946407030016727630471365526955804618601341806284626634099239000940134847137128314347365082009117749140273351204177960958892797061722937428308499607687516399218177028780881592636625669051458693167395490013060778823988836798323600980908260841708633197835453774314512486147941311612564814911363257361846828650036962569030873590916838909131969378756578823077971304965876959961545751453832601832155587906172541019869442160944714961024453225665731166530949282335629450397254337940516120291227238421935698948263437057724592950931488817925962667575301652090359345180423079409114318775605357338513689745033720016314405018656113265387647149097973729711067569409181644407695109347445608764610574274526561009684484997330335695944003448856874030371269523165061444718059308673344339980792012140528947501193932937048127664303577622586503961816052715365900869537037337965594556125268499358202055663576552155395662387532014815078603194191023461150386344109682514073858573327782886968439454163980826731273923283869206934144321736069981522447629786804668987321952709241898053670829594992373042285316186734052695646242062346019419377056357270002312114329675327254084110740912522894325285171400967129496879146118874214186368817549983321513609223137127959695124936141987566035343252826752834507782174671077570180203644221244555262329122865339623473631587167263892117424000421599756852856666985663916759429459691468437598901015995412786143125682264342080219115030101432275262778691324207819861810377834108452877566525864003356626538565113960031716570778482804998367105976135440671687026659265904063986832753059835137090460458656952738007895466262203240153491602226902641642167876993209468943175492314030714584446078939267471387383193608872704372028092870144686407604818223715108246881180892989821248138594896465505423905582539265076313198900337843379428620547028647080723891180501371512202797671254295170825256096986647254449821486221243126038938430436996238859208670406238580695768462823853473579271599744319113285361158302130194948574851314696590843120173408233543412428256442853912889333571775565835618258938810120576608774337176156855219040228139271358477189270568490945272248363292403433627654469664087937597662886105358196705066554663542294849088877677442569934240107022988784885604604952018844261782419479636610521910548868819931703758531729900365017577543114249120239749257932530096674921725351984493158427733954126279751814143709408729287515371373836908501260859461337355211498079169470846344853531273083768943879436889135907052334798166913678182761139792812587531237781904534659688786549321521526132341567826933572040297737736609916508139292470785814444676472414978929180778225018007580389802944123497023966417224114383615274577826134886978783515329241793044679647405041816144018175309689499415188063795203612105669568487531508122234841002848935852274817920312220018621601472432876129978539429508280135031058269837915686921102457374522011345624420275013474144467395872197938541854507659186556966080989812405451595172612163384234042530958905893932175600224476866033164176969180807003401392940371125718457760283260201139010356487354445805917640140237878020122228093451757266003909705429134759577382189952814096705049353296562276343833987326959938079110744973948507699429415173819097278583086844992061296573610540479426692981177151865211649138574136774447543027680028257218312597608735667087778657224718798468386047604313965597226624654955243797863815272621132445009333460926763002307484855130428664907340475223528679306738316244255576430440859077585116821989269444833194289183896416154996466663078891035314995035635651077102411556023764592226180047164336669057919234512365029845523861387120188074855012842497755031940577732388827305007675134417046404852824404718006224295504732965852078332863244875736858183311477404708863248042465405147117410972563851837144408714668640302232945132494933795181625381511546155869132078124838934678390630778703103342800875304920467611758098722399544451134863126270296755529099554392773672857216092361304645519936795535869797408650341706521469301793334752484812411873090057146597003587556592902436624034610220334553462222358315343388396244437916092941359655470656768619090582713715792271720543907631056062737937929415311819731736880562472304019956181722612004689363261078588552248240935328353806492649729610900096223066055664598915288894332361462211346852687793302457335613232293339857032248439795383420418112731456312256139286695817494617176643019134625844478403594353391245110366306814752392476368468604362958172265236067206005900943945307944549876508172654496153258998441992962427795799009518882321640462814555067916782742165608183911178019769051541027681878489405587226512343136234920526469082499284719823489201198188707123729007287072053516895587141388693243272179520921180019989124109938369098187222653281971994973738890812170756458197975430185811427104977450694659169778161045019891837417414321417667269005754401248492986436350139001513135104398883208181946304912358723520797542486942816728585732107453956856777171743642991873349804688307936844866186060375946842876475724807670609617292258692498112383483630108948669199074349428520426504312576523229937136270154523693350087717139850142554871603598391020230322773515164970120861967110472304611852849759600701982543526124941440099041184271577404445550446993391975045298551543957154795740812077663892171045304734793691853473449030939185862006729643767842623877180949616187716467277575819069994717463393819043420600990776283671088740180208457827726513083097041037561540652578872317009432420415837275422224131737960359168418124314518986052221836544755022919643414402927124621886154426016718761020921277527828984858164819236867950897892368281045722726880751621569916547415489881249287626610811687890026931035809869406416005310469424672075710980302139754810270884523690540620012840815817692553998088802852413673246771369243675643879244781921379664973408907855750405970949757900641278531663300639736926184321299333274061242709378976876684544236006562618638434750684754148892851949006195882741252460966471454779569959377305188158046778131131481249206859696582885652316189572456825287529072068500932729601694894334961889733678471810545446259290980976657858563945884413013155091408141030360320057144724748661268626227763977253177272339902119640113228157588395692933809831294557581554656002404311215363358964406922225627254497519462248138151405928996941227253725736813039323300568608887592916072073494912067563237799891258262411381613549753970571360888294584717386623116931710695699714085876052880172807934397112379456344205941949414455783262798168408493386564430190901905341072196841874071654164194642271768204424851524487361733957381859970260731748988860956569215933034931673487185351958179780033510394938221012728474227050287485064020967711717990953258142281108861974633347428403421743172727079669731626312120427020769403161225230153089008138797339771014088342569355384156632154011969143114955010104458586954470917551319930878579963190145770063137829092231596723785912923477696875902837083877652434606369257702841163163967625448854464821077583646083290703955082642898151879539685735965887170444932012819343471195529002037348939167401588966542097737129030396493379792805451510277609976050555974543133948633173115538798640009414710823553112935124986585821674246131941220137730321961064834997770793981954844770432067410980502676576437218997730786807627585337257112606888627144525862383873442116551165071799038533229579573845719151410411182695849930634377502226641812206214545001380476188251465414638625426641076796548599312605011113481972177780452861570377470153826429188841635703069187721816297483085399918550360751907004096080912185657489719535903252174541540456138367937176278613643967896336971220186633327463850068696401737570499973162873958281350194099263250772214937835315603815734742760195361712812231766462695894635397291845993652738563562452964074076456818910563298599886107816983591696565218216088344639360150091322850891245817193185553816624052157430094837758802770177909286335831582196785184068651074174667820219496591683288802923649006367680846938487616763417556251192795831109266969621877348406440709862891749428144576013509662258841874115139894088433943641674955364023950874289120693129910001182148816311715751043527719886291065027059474738070494791559412435026508458241633629507073783267014695422012722276292913864024964649022629353653488655595534679495880875227429446709424992810222532166490776501549423933837165465405516822319796433872230924611082747703107775982991122775240249318437076849002784421900611825231188644064445636219633273572485421773930396882132779859879084665864922950963813955710722010746618086706948113352815973769740169556842818302530936428222244565373124859902885961241100399339844312334181084250704447546344394347871821254619340647215573622813378927825194908989691009058116547099281135719765626011571178777696815306421509030976921703316605174082876255474044306409887076388963640329318098763070543534564016686958690299883001135662072588697735136245178946076557341256576463360912585763662622381092358885917988695533487869981052323936505340320435498363337799624226480591641456861811739684311122999115747948681934007877956035660891289725339141067813626147888803597003423229481202108127324739369702325582484321223605958874168405187080379896209958337318675598837413934457765562306208732715852374072298698745354810558023241816250093516997690952638347646295695697167620454985841723571454380099546283547486955172479026398938716199354982070325439304625634919510237903722433761241383200200178256116437129081368167888960076659657178314758711099172866766947184692764867710335867307371703935202876234532833784196205253991291195842764483632465356122386800728114187107388281963314666233640314335481648914227498691311449342626210839747305940765389875449534760812674480568878153242986348074576849630816535403876282062597248528308071046368970509079483596726435142292433204680375949889607143395729592045929505054653647983124491430512095232180294009320632844428123716966431752359250665538737067741894200170621277705154373279914585200888146849571778996260570710678409210702343139213712588872128121866075520911015858756257918241558207218957427589771122814329100147275746102939264569941074933288237712086475924426823415196426850784375754198390526705464739557703800924898419027406314082583922332000903945007793284196578453638939097736803895444685056590016570305143965946987143722052569373348311159237649231973284159607699928795738226378042704236264807352541974137010734348273951605300360463492184156823588510213341071710969383009850330632910502197573281437325998996598866343575329275031566146543420335280373880372089208323362706792572898648011348208502725396420448926105343138858181771368552571930950648034012930122962557671890030298145448920113579691880451863898034305868165115431969131766533240089741128218065318424670152949866550253914322845795610805186076948221198716214776208901183930674826906044098460650648900678183851875107618198117804252393126691903026614415483387123460969423477659612350266504436030011797900642921081019371348638668097806506225061259900879006673010082009386285794999614231284940781802531601204198674600745435500226757263207965338558707219281192212944625720562488438149930353547573530645966095631538235099602215719731779457449917909178708372620428019394013146477054082815547306413392441223282823286557126900281136741454008333917946547480431736887495724199029549201650942362530250889336684611160487688564801373629402429333608277261276991379465488010145049840205651481390138579673165929518700624687206799107184535846469395902664545221564646709572772215207400492508344842641445245130385826227659790663932400693732831323288521200539998330937393081269170232225257919488080267515388871141316507082808002947582632502141155108385697623321314100613364201392050813495822347445465591430049598355244157950598502159029226215440708942470986992831593604140934398395978070221596550762226380418513519501618025921413446304191597059997809343799752667770939520438866115485708551796385471421758894269264746400335645959886844046948053037801109295291419058255275264543774871444784072999244327436095702758990253088911471512162670942889143046818112278930092936422527566171889238048426578148678693944318257672841390329873401834631381553838748810885985329268356807868258139038599227382974496476195793101504704133708724142249653809040234062872112498084030495443203793087677993996968132709678625877201735006555361779414461034085500915085075996389614703652534038937878098716522118435342590509251363300683741503775363746347347198087020150218625547332623348823221491124738556037243097066551567869512294321872127119116131472464082428953942127680595407379754867770369556960427897880449725756202315827604219993047244985508045337319930693816004121430157573890952713241179258303834184618672897109974206445236290899732402490499540221217392657301507299570518021455494605810030315274932411918265286468896673623454546542493114740143258146105125302608219523201263918299576856465566384655751961219374507447398733860541246594622015374656527815444628035708579954055083984630999647347514388778036603918084527474393765660902902197568159016573743639203234788079477913792722483424864544129988180150153455347298471466687805076344742861996214392941559428139770936300791608310748746600843213046738040371435340778501733628457877931839982086513085266595734810230073282026562300660405085477345191211259612099324883869448273877481800800315251622391721160738801808830406179239479836819285140773197357436681774975085712722220516303373524636498256470783955038119547174954519579600686449836319267498992827797409579478832645703776779259636648428460997131737361846230818951280194914982638950112927083665310892568562895891693860994408613790548093507276895062159173307161660981415855191190350866549788331934411565768757605142550915007989932640482594596342423447933036265922561915945948440582189030031865450416960298698809261633879192608117577026468881067243203319729878684350854682138542587793128776070753258718175395194395723999410285204347984102307921903468199270030751215647282793821675267256877467643600361295913226260324137407412466997796973608846901061672805731776076669389332370730487663359137893059034837143504701343296951401147209131333091925368398326003166740092340454793389984108278164320789883106415497366739693537160618988370511257982406418294125459108202824385182098080156492207769105825488730388575863508393565550958470942020077656020771790676628712734501149346402467537867064138523185006292656918854785163730469824725046732596568501954958864264738203916940016082380887647630098755775026401627475877445470389147056629082644623160735813353327401299416215938048100541155029568160897279505093210615722013013699712230853523726958674226337283721212987484876893522519881784514619537517544430978726672251527991722916957154585322340588615770744784556033408733630026874024924442599112558854656716877068962606576253760092201481847717090989823629756138517116929294615626278904895467082692798884838996971679237165550064154103414643891380337490115065613711146173579713852741300695951155143186397989707592641332071973789530254512393012105869846067334807053207768639621207608590127771538783436443028087167689964151311526533791061372447060258574760476529035698768251182043990951463922271819471922293647880242285847023190314846838494086064703776107769228052928595663921115227445055135595899521499832160570701061323646572050678397790643345094286367346520677157417519213432157730623073014828842817124045703811013370730003350611616610437042437997022924305283913065259804792870348352691782776331393801898260192019807303447085237597809174223647020567035327937794934402062108982098299836325343758013558848608112999473151660682639324264180345090973518433763980092957521158703722863112681800632003526978309063308758806633222753777793609996719838772674445040745568119438015676511246104036243279844560617924741034767019942091804856471266184745002462746930470074143980966285290176003236887378984114411279084637959601688418550492100486227422651646968630293671568145668908436289068222484309325397219991317481174343842990377984038198416777214175353323503221090958744477876057991380164017575977307856226864004495136827149021688443080741824675010882167304197451467326878359975478099699009552549796805510662765817861140050845381987709182803187250345703902294687521466058627883960360313308929398006941464765916831305362705410129422952221385567630657491817509452885220897721233088018399668548043315975483651305915088154049359863541457099739186222413100193953258482954362995753361577722870531571630992844844834362674158637065902370221640203490508286228169563912110347295715194432907271916428399491330423426917922871571854390886759413948466193255982491854270482042208473532732941924439968630203100252070634056708304586094902397905525783315969955225509410922495760685252691464504095462081522938210002924798441654401262615989106351212167842296381511791806392768578522161573335365149023333132213441185941366238162067299007173386133605244666564142279066629942374197467836176343702406474376599320349980411898248620496297299885161405332516762875032424874083558201710629192450869189073490911228818957574898374042931469600971278584286774343347495630594098831498351787883841605154415453337826274540287635371223283544975890264822677001405089972227287150066185236446029651030952947126314649389520080432027814253388366472064422123446920750612056836352079130499629664471219454335265272905512377006480254637149045298223095123353195918836819285113718146633642589966070610244115184224832528593238202961208294978896369091474147782459797374713399728398905774177902398314287076572760934542858943476537890250549865718101173100606153646352611401373963096491482512840952603759583049154639995360973331719001699613002333050842399215775270683862692068394962380228283002087172721596985215058985920434375817843090040117974318568650919407150632579343935116900035515656807548745137146701470073674848632883993982647895890833320653475082623476575338505441897514172124232161603474182380037397887502453698896377730590204030405859784894153311127932480396026089313870996792136078694184492955851759592150105554198232338576779849870172323534990716876682965588847733267387510863353607257158199870971629960548084316146679019662827895673017056367652914042532267055312610924980687648774328793954756109932243544800227971874182096201140250940893845852750453883497468383059190605581833382832654245793321357905621039147331658278348655723625154683371965248543566406782792372089983765168428115904272750284437903096632048133283631634412795105002656227652100384201985093656772200905615682918886320645987540758549169232933335777178592077221115028720278168705421386527351592055034335598136622996190026103687670684431823113996298285886978332118217910913530723987205947601055995746455376367982513205765064169891434052728949881711863728643687580803167893244289121880652301434708616086107855443492438155776886138792869789711213892391820698336029787234999636474538835257543035427345663307984524277212001166286890877661017541444991490204093941363667952684585473953114093268112951954723476673307611379156089436995710629261100109593895654598410514233834269854003126241922623701265005582843752819794420507880570738838261928061252948759982534586223398222896942076176289226791525485180192435244501662983881984516247415004504669165780487783581367097266693736535971043877809444485923699075280622940545648483255647841243259592679219652082965469971988816026066478598501732126812142701026587094121159724229494272724375779239911001410099745511986696967988451120251560160623344999644830538052841629608237937109013418079334406726594062517549600154658066569769596877821595581939372584463632022817264346752873901312874036766577533376682738882396840932301137397272394832575673656995936398092914978799006702525286396084650694867132541934945259369444716430797854275118370486630325459895962088708527688621474662461858839733418618631962977168698440987745481467364185956459282637529977456576596222443926984517773596864711141915019761370188352592396933107841471946733403919737686465141236298653973024216505815784505025300246650664994067723441930372502255019987996295208399587886392519841865704043668086764321829758018432744739141615493657082075211913374737746372911822316331394394246303909321185078579229941315876742214122663474740265623930084835225113375834657330735419390784949571532185143990799102091553258613266636842119892271389423530665592158490037461719258403570953138620560579638549108107884623964461669225949716758908450905371762096704555063999329457029411224773018412692183966476781524689607861763536218695563139062757639763418415060765595971760894221974511604453678539891633613509390378303883015005092529278475003540646744335963039391311489198781070281174436848911120143767369469627077793801345825695471230440233531857950769425169154712622094694594985968264401241499381712712199829355152379648624846255946507913326369081977965549704900207078681413343124602543402772729994110359107104739219979749600052015199451055107028332055073722606010956671328504163399552107563978363374971158324295626933359194969379267747388275371061620081562855906888030956737924725231000260719243735594056482270315447373568643834292776605223522955416684466467088171441086760283656152976656479560307055389536168440438828289642911946901056283602941916551554368575327854142487564298235048402894870587584549783216846954630652588170366012769254063212670576625260693058563044135935264598642089951740540405378982945549610665995922225054020136384618602230367722839137686747315277416360922998388937931980327110252032954253726227280908320479397496279933759433706659760475633357682171456230093775279634412785828945684473085219086342536745036964258384925805240618566079814032476596513140942065604917757417616638537857816414755514474430732457229401187468546767680112537066542655964063216841623051062504335871651821999953097452297353791950155338151823435116157713337751262546525147620314574557358919242339990570990866377534317312671307425973090662662881442161513204381696310269238749363997198864883106935984260523813862593860287469864633856438155169245959353014010864995049458908685803061993819040072122262689836490179379155584430200980643782481893459362246135966257609680778558219638212148989354447829842185232768688332014789027578930727654078392557448705522950035514366035132354034838018427686602110897020402042577754481871752944806700331133051597335672103917384848670422624629466335069345411672513775262991197772939914457436996154805466442283648524902835085115003862184861124206073185348957232537404853622798619218680222281887459167302631351548447677242478538722118220075703637422287660079768954835735658494827954225675685659926625107138332544593168658714710026412532715483858169165091544700912376145224968586463008516821212782516398865969023829533039857990137309220351790611674664107569091085008974662045258038854959374927306044887331875480675044245628009078236744217948217515070785633460060097798862010648585277439630668563212757035127146054304507050191115545657846316313480579845967542160243652777365392099804068981335107762258551151041250731074960382257537098170925159879073700290229264339963213465311535138789445071590677951630869251024808471122330361828902574297376818968840415889653495042496508633519226479944329380867868910211082333626791151231539086532420516617512042208008359782915897083583506554261395247640068190521520266660216395688657373192234470000361091946953280334123917950716093447895193438967395343054475289792432847747021237453021547439435000255957378717909277435450844863738864464723492217485669342593365591826830248630805790245581612486649944370082712201752805567040549695526875275448201348137541597142680138414946139985910390955689548753089744301814614109537575265887096434497266904302066565722212679702635986678267527433945958065147439033602665199657069563994318080483182308929355157177884530205761885286936542176869443866108669454407783125672870286670002110167703285025246087778850125302189555101754423437287763028223017453281740463283096840603973297162468716915298976820382127120676045133470296841073570701980750907797715311453162373473222402198628973577664654895428755052909832246285064611667291666456177256121847507657972662251877093403277038005553785473355856393539180131052714637612751501082973511341754238515894390627457434875587245073277306116858710956974825694941422948073326186298769778655825972357442412915000804392655798486333658445597776097071460656870581229333047360220433841559075553102659166502034874526343636227302820507067028779723523836504210218458968767978296466744751133920495954143702965787898120463420111821731773995732759145872823935827038190967369152705341282747963519718622351136326358625242227545854486133244244410030520630679024491557666321809121296748306891356174855119143554439603347844984688940025356389241273703710774054096692721560666364176936184548463440368619176180217790063592258572827045480548187841430680453986169453748539500480953437334649654378046124748799703109701336717282507772563267594561201540341957473697451241672623198176521939083883490692373602251844871127452407275395081197792535394850019646828169634685369739219370268077733288811889904356030326728176850294888319390932645590339101967076571073388741829541255820785479825738257684696037580384377213156583360809905220276372415259334862623236310404509942441950489038085720605324916911718391962318696835032910244156687583841550657341897392113964562222645510790526203761090212092736183615418548134191001604125212096790809250643996767669610546089916259330318487033977047317045005817115786088422131837335296634119218622423948818837474064895079594075360843031286026057910193746278332628757255980134709609296274202368062130762491870440164120346358532676459014096907334345099993711845226069575668201284533103861565947521830208206955542113007839315553629192407654938240283888950625404006128181469117407919783373491279150604908042254484725243349922897722862238051256229992830361996860936407603971124927698197191497535501194706397734506532544861399455541236226100917916005716454630482200370795032344092401411923131406983859347001892591555120218484282655956736664182635935713292907763739509199831430286725186413128057689950579611660582335724515197737236985135573163976299704820258738679887287547005466014966636696847845795008263992515110251102388817212859935699863947439507532237562555584842848817439655105955817366328559393126942341235662934150428056102436180424733518499920469464523035316127113666954477746636123865108573921408790403751915423881036576697036254351760320262252437090365727861313187736073912916112758659772801237472177848855775671865108218461807875760572863226022425798893416226893211242871330834565464308693986017420889486171397878302822370558933342804915350513442163485613059385070775771000504581003359643538717950083082135382881497925490098323943424587770966134282325254815523702967094696294917866795929717059185868115698970840257238509294887871807666793034742418560959990203982162116375203945207492914207124987483427602652318481734287619846058387888820121703433012491376477148112141913282184396461204807567564935550248691438679395161310095316364998558916291824372807648758083966647543710481943228273250617718891718261956016906454731580118200470858783838347357099573753362577358851837732386968947058475134930453620716521574470923143320103994665916451306577581901442789766919865984367224649366844116523656982776357544282985856253919091047089985862404583750081283002411820450838381864387438580445823875170072271441764227732408785817384423721895323810007869971271128992977690796740382685341402248121438980506497107010963340321598691190061481766001242350944020486955790077048196649907982210509507475632008757125967160180692136502303507914229292593213572165725602568236741764035675573667973401756596036981937376434207095909423183957469328158414884044308332714210816702590269833065110967930015307969134023132489595990337352211879430443699555998054735111190652005182333205387416139704223009512675079745079827060017654826935633127350570228074200330238430266164422198111610701850153764614602458119219261368284261675954873935876593333110020977928602780406895486973333101290233666194465160761888239319962127384764807055442240637191980993721472851228602159616886851948815940280349414867141195172409318558448510311144911085690882140267143977357164912450964122645799808726932962529579198821578185635865324280914252608393289169989987175739741242290788737418608293857997926858967558806946214265321357390101342310369540650395949938244561510390178843531275086878733999029061775942626812551203307238639241161093897249939432996367385454634646993955326689173242418007092865890850821448120456625725174654562719307465769301812130062526171305069527196730549238648169294004791255573503589544591336988277718416755785663729111179254786785895634458119670871854902421315830799475672741941802058795223518468872226708030496753402487813928896416377547411564772275763855149996943434873646397341437567002617270881670311950529473661129263261248855019113962226599167354207474934528848690717430786675721024582022290852410788584273499401830076627015056312326444250669505608013726817836489382610381209697276277820219414838407205173951476242343234370242824137845041975936310535382083854264612848836186964715820604550269613413184622341012166491005364065487062966082804406554327757126794898627482660386472902107748767161284830117178005414833519647472964967758481847896287894330830991585894157506949631941050785312468499681889838172086684473452457044036251692831133108158687482923553903452520604418098997606824925691232582477637624561197291534140073905516981629727404000085714227688375426739227513912589291569824927760401817189309502540387495418705256509938909815935661453389370081007962952212093486043846961311040038080877330009424334146344619881374454018306471869001882436963996573819074073916433816300171993973801839657048385889730621720081108060060679575646725377853665032395617537155586126018017183876684463334427803386784185911942115078581795208663008774651982129282179512504856663456100466757910689554207200530586399121517588000607772502498810934220629919070430337091280215995505612548392448972139254136258011112357882427332628603112027110414070631301954854289946626357451204490677656406526970955508720975844586342458051405607274807884330826864786229479407498816888686461314583749085108666363143651511318820783518100973191524746071464415461499770203517859672012001939974156857514207673057240762552347267604818064726659976673810034939756825144177574248699089829411087910984657947978993812101063925687536069712791783404951657923142997780153539019225569174696019955692071124524138617777923296625504363982704393094448254531409290865530104568980023443560755363980072205383592865665275095394231276386607978764672523229647276396481640738400129477123742267660356960653108769707290793483178341080678695321153268585173465978633099690007677374375871535288398882167595430965084069131486089252295929274046236730603051453538360948322566346689057737163023972124558892028240258616771702933412646285399345199611206815157321814379573907813815533432220476702055409149707115650572388647589161758065622093345711116764332145097706207123054762447611587693095307448364707095382420754242218832549857710177754555390842873662028526491238326689386813512423635526838478575971994485614642917630941997121064721376743737411339280104568580181265044687767505036163199896552139613129468584563482442266343569150826894513584386138953170541611387135854789547431419797056506813608279405178138846923914319065065872416323643542765192639525813918241220265596722414598528179627245025001031165275041409668940980621905572362223536853038660884510300745056617814084685814550097995598461567029479307721735662019214109571205186208428864951961815517927460933186359320609421067621894190462623984758397796675885766978249282252546563583615085922225303249492322333870874330974266255601510864310382115395224823944634270321085223692631982355681697608596408273086806507920389825001324678102961899026073364025141797116766603559214595690288945561376462626385737574832661973864805267215489429046688416845026341420274040837417911423740903963600938585413985534234625945261120781374768683588872446618812841501754019512021284598284945911960875757973173250841694479622755884821952442489566057930197932319480806249140331708150698711372880048231249413142861901101894651161816302555796047410166309440112463990754612303784718047624769355237918660723267186125757868597846644348633283987417324091508792572660813758708822992313165156634551017183414530600934030442153636773879949505136087053939897586750498285424580403213942724526908075050429471325509759760957678745828059883886505505074163020819094014851910367276122764605219561942441132114597806294692561511903376676759034766058774573429268315532844660773432630453841507961151397703216955553471382528164164882269606874411584615634882428332586613921756423135392900379551814103819247348847838300926601366193914843747206137670047810261888659997922594904139596717835625958961103021082000622549847337263215479196509230445331190424507799672135154778010385091727148239022895017864697235927338891351051871812305526989639370307891606085694217473645674084929587955098314845180624787070987457837083475359173515447148792965295959711717781625794596095208929221352226583347348766013853685330961279100385835661963936628564465943671953873176836384839958976040252627776668500218634818171085087378803081427344557026795028464576659533415171662643206482878210414881667535934932233772041284345758560101646261470067852818073945802498580880044697024057593911821819739057113361670647470122141305393894527143325836868390080710330648404845469329756678390509715236311503398072784961008809403283317113619416807040711933292488931548994860384131792852761848848591631402684314726637397028150912584326958940811841306633002178437486801343898836025814404407686173497375903204112706317586845226606919015006591292478116196050464645001482200385674783118286144716743499600321722652831652752134054247499477136941737686278734662093982751940159130908826068370969348852726635617361258039988971319529023719020986934556372886068762398110632665715326736083718531968910281923256070911320299238653537109741161384663974058539696480750317594284122246389465892378314789207867647067917025346038254292250757423769395363539088257773181062553369045966117662443102632378430929074243727249331487998553046420179196886546436324142046410668501193243632410365043951353803276686718350381398197148477695534216756750683101502588619303995424891357896088285731411322700214503377461053268458547136713200707537433770947211249183076011471846405117051040428075020781651367440102743406080183615302190831688384003496896183857964072058338519172088277399849802692920178568270177951704600674457647832064055506753577848912916826990662474845483819832809348332052979251503146918726573573770733941504717542885509521820733981355165020970533250006563631844826195543562211810946294924998903316654039757565961109026087153230075116677148129225368889677053229167648134506979386621464976951025543878252111801423001843394034814070855372148956228917511948658548592871750954296267983378459984826607805552335764471033781662398367242102914779950969696919016751557471456363084490938027031519237245478205955217558822457174435247746754842416286386995604287050020753264535996778072500914535834677051783432587374502855409041372130099499540557265432883118872505425630207264496652882850465344570486026899347637765758123315661821953505927504055964647850528768775258453780320776048598068434013315608191612360756958806775291276071642297488586349902347275276793152275359697104896152706714248880603205796179153552637406001937519008462523201259568462701036488505345252398507690499748108336686100693626373360773869558412301802008667774628357378579048989768090206294399847734757611176350137424467256998615031822529117421220790711411371750874453139972569174727139608637021436666487641611876868011140886515512450060393299423986883628385602508950973093710978335782393426472646614705125435454463508338061102028519941806727929449870212739525004072700324754141183568088857087470155203999714940922110916485278630219579674900466469795981991824348685980415610798203508568703372089177886873136516088277724253859537779595986499804664013421324672403958711060822520095968015182013376346737529766480792903302562858979802390448654666642653208409717100010354048825387148879170113877385797714503611347994249453110377075528387907933891493283519565398319860621874322494665752197225379400086141596171427640093607650123952046269118218466652142892429279431143815874386403052944291281712402931588174316503229342562972251668799436775667141084609819800743040901726726584095360766160980815372385344456168712943880760070121838650874355935252501008553081096547267209253315662324383170220833137506724056937823279060835200452121056248053115092840853381914169945004509479550434391660439577826745481650356984454200725158538234229204738298058153243356082100382421528115963917606746021338403203031149283002189094230423658489657459393750652096574122458784860758593145212511550446996292889613031385165011914141173459504580488374795236332812786888454528111438436743278544893112777071778273564872136434559909039083056416479923971465551142621756987230617794600424278263089609376648712895982123611320266566328325337521984871543055234993006920644484797794167852831498944937183568847717671534426333256130637330270492356266907597545096149526652221714085520724392579744130715880987139335622753958035815839783549280408769186191494340291019825101714392442732640032429724186688955110943941636428818006952003405204025217360012444859934177348328289758012777356576552980636858807964697710199780073328581875163522246902201773957650518627022371314793327332294400367280001240270105420556948078901838265573466434011586812078701631447365963679345894104803775136945487492564536987895625314380217556066534717102422128820106107708340920252850645096903997273558109194318520857697403582842740045758396022611722313963089109335795114012805412080804425550834204839321213978809632239018936549974156197723911563603075525661134291953753775163312417528315707774853968351842654750307768436881514365118552387452567600789204697593963433233070509229867458422338219700694882257410286132070572556456477318449892961188080342362508245746716910972747534610997947415200595634600832618504037037319748366633746148701623980354635301150843661861112099125465061118055792482351257173730793513363603082447766040467192672892797235614016559323234213843339793899689365587285019305197496159294619250515522896550345920608617412535868523526798683097369467526537005234437233610456730618639211865290835446618359147890242954550784821683177292764408212461267515829738731802705151500705321238483768343943867561689106752538241565118803629762110011015032166795550763669772364127007826034840917314749044529937346720913639717124607604914984082257037571889575623093953892509507664593457306821563605085209858513626826792805567409317841634262126288977727149222359115635062078675165813528277416963135853505578819539128283086815524854910186259669296066054659178136482709347152333324133713209299129481593047305189447810781212017754185103649114610409318519602110966970376649681362892447224709920318127679882643726799223914044610160355828174447041699093604941149599174398890827192394727569202196471746504693529892904514614171956404593033942236529748668646632689136925765693324911683067029092919095279288425903399302315446121213539356729482309569252322499051646916019984495061450069205382428973576726015227913830292456311900111469757226454255079620384065989113986601349525396064964135137205125374227988618173660353340301505160993255496554222878858465374171875501558164103880706341003499465456235943953734282370975720953843696179047921853781836908101140715488950016927111246410796375971665208295707075549880821783594001208656731534084169814787087019602657843660994187240944430309268608331426067662414938150104870349542596567252158190686344921536860079584678424651556100253754951826571763608153816567011184330759310090539741307383955469594658375550580569788161524782487578520800179373863573949099367613781886725879072132176299268943204409504563142913370140379458260120127022515156786130571631272092039068142566153681816682515078532202579836137016104756952914286922477456158337356116131933010187793235691231887099584189192422087479866722734923935683387138229455705300272055596307030116612413625824112693914559398475688397939984459264333635367752075080493775583140629808812140086695427556548980430307998808553259811925329943852485067477065498220725610403959835584104469107879131791959198676506455857958760337694968236988035420500160287885644595224520110551654621854016091725173449202026063297649705543519982003595240488790155232046597144357946681413658503070034622845328517961408099796650111851063817297533491079064242791031457915159420076891598414377485465081301360898711214000005434100758885741557910853483064023310330575806645151560297961951812849062107554039599372233884924474247155254288051073607722821596711148152615433082906055141255967414383525077223629050017015563795575515999918028207032614589106491649602883478343101645904316578926116763635618162235411256651421323131175371670537069247764865172469436231880350708336755914406428479067701921618476918545731104852927323313943653245514122157892420544833433573544546410619652855720282674270012816710688108692989856364664694319038347246276170461253950174582385559246309088746147846608142915937155519715593628426050997710155374159710130765979726109074248831026790820680430090685936954176533303513689433302135687462496239269165295536541094509290274940132095549909976050921197961693367720864658060454157017852633003692860288849313110867257643454650640942459758111031383180107081126592948913005314623624427144485214256801613092500094619867800269088664733767780399545241033781638985115380351542527826668922449367866531706597919175344701729429806347333444728833286910245117471641875121132839031173671269646301298956822066137226030689754369044591368793249270285681479038185020358575602326249961736318081883750212387088565744263699961139471572890312856000987974343815047251040482997978971991639916249124338323342955871496141118804573333901284859401110707692022179558805439452350735996657903525522463516701176444206619643213083907675704468887846433802944559198324147340573560418871758527408655602584974959835101670183724226760244946896548634901263719619428470583342955719210202312364490442657809392834989794864721844985971956875521856721806481279038858421516391914959410005774656604312361118848596788411857380949022971366950357151279836715825981475041061089206005924102182255624615680228975320281939213612565458793184099058917238300557156162969946445529945474530557812619571946146328161269833152014925904720069835302404616160743859857600187232370959155618460170204679014509614444440177174729566840912131931067708223389137313340420368321407728913335641087223827664193392383812337244951459070433230613963423001732877612274192122026295736322788542948349811421776059800540325603680705319268601754441560803510838603242725299511405348644731878451596589269962197220661159375913493681940610646898560885927462884641903390213572761620536935542268159810867637466023700068324539865888405395640387985423767793690135220842632068568342801766024326867793927089290444691489375148741271939917760598899329913873225329541411485495713212718533595977975267934443690358199314284879329278435437477441546826003306529290084096285101565002872743977857082025710697989711873247228816580020959683992077412776419913644275325229133665032854168708845066246604087546369287266163716865855350088321808886303821536953025735999488087072627199315533918397639025497060347128175517052686692518136313577498501348804762948300761907217915671064936194947272363708236458530889848085607567024440927476901369320281048090404205335041841980035404107895316070638588230930974533248356348218546212990755657394168992235239874629141317673209259777012065358183232515353356777268410083808422924943431703261154214990948573283925273760970715779864062512344221718840672470405468701677107494391458576026634805586478700238149934695527869443268755774263235138000886429671969220577539716996167934926273645501213502307112846218471649212676890970360447899850813394443503658884888130898363611511417610602736733253378896878559297583172608423540960794350558093889096525184174887020655954124318500467156861333038973405175170983244631198426829468707464056841426910674191320275839768101071696460007775522788315147106012442141629728798441123224988918504977892919350394492261342229365557322510059796759843336891326597587317021064767585130092857399776349241639252690585426867365169232695009083162489990144308805368379862989411063901267709304353851357649110594715239664472214047520693698419026844655652538782289798495194248082097248002414491596501362061603353118739962438680817559124343810544689339593304327474488374389306762984099469701699289020383341899105169189683110638646148051222414821439394995584813630770428896643419630305573196651852305327978160618057924865560482199505681956119205219118699193721316811047213260577372619015428907599228137778696918612098584382924293163359610350654932866930270586000217249314284305895528483633242660796423306742035261848252460085445588158530364628921528894655450861376558433339669723074832873953682165207941338325810776357171691656011660674691766372154236144535662140296937621864471190809365401877917652760291878064966347521834879648920341868182229421171161142595426061484036746974514496277070611621903058441120413220957914887627612709660844999428903253253354876383509836452308943532797896243643099584017680203395975036012408801743365315085563434037027562862470997259399833854410204846509830331425490186196423298193752084722916699718195102517806735896257133988327974215273473912091969587609089355999824453573743201875873562408919182279067659216210734083207236626309979111612252246911738687438077344189071439375406268583994668013151164313561184565309712808830132893565226247915343523036001375080399750160218028280699252684254415765056823080813103908848340405007780828206735166789465575417394537782980396742549353644463513383472333725200276755358085509950587955715495256516628940773110980623634699172255900857053226348759429127534511294444231502217981254818407934350466068944295699868626300338841234525711855497505921789104208651847398518629775418621518739319556945585202980263598214179434438891422280560499163118410561334664642892287157094218305965805702492378411137170616973644926173439307079454922080006414643453058833053764119660920244724218083324407766479271877745853892665784286500606441185845659219605624332019351296236559227551710513178355971589077840893168357211563632032034450053181180476599256954587964145772628001382228529277159017533439439310072672308138707392016143958102832803987631846089740941771470877780857754513459240169402362266433012109786392698559596365056483318883213987068755499084518389211119370339218262314822186141801767770818096218581503353834513674542796023789776835594808072015601000143103619614838081045635555784671839305476227776674546854509696721826096543365924633492603413024261444417795534960413433574753952307051155457790864248399924991269483137262295952654871891919077890429589697651027236797235519086997586583347248949072389835438168124369862483094390403513657773034816237515408804890214898901132801349891769310287394149237927309251072835297229759819889241641380801379722374561194480533747480328689070265652888044138027258853530225503095558922184342093887847425551342489963618991096619594382346954393297935663610439283279447782616965089148309598939152418685681259430798211748455021921331572936348248520262705584794815566025938412755998651380047125262517471893364147777542719906782688940218381772534874718727801883617255487328127543544884174877238025744383429598319909500363829998734046476953168731606655721741790391480938701494419950896763877727129861233240870947379707370318604480458962863894648982616156704098560862536633783406936598057534729980109132055695549584511147264624763580160818153230102734603780934669068494696311979399312505875708390887836861408974977816235328579181312805579505562524059398945548882058927364751216448658309501462084597073860204086937525731599443111337320707818153151233370625935187249615189012167250329852267610219403842887635656112927195195144423411358178060619344223724578633883026621202339149282568966954662981188585867007834578986514450839733752297944295141288941935792228136031852591842570574971611381942644083333581527586451712023753232926001055718373721797560468175352521819323141798096227119266381924480843012276811033945194159400513219893037462455859991880253530339634075076533172897914827924855328144363930375305413592827732872358610193936822611296036412666923388640702103905889191887493522211326567426588412352623732372898548575000815410556245940546085781337791528002513397398016918795204817352950468946728466289354501604537942711271607612425145059927703851266960110715161508106751429762725053075274642731928313619709877091510171968826488965382159450293090514994308197679313207171785053247248492327381685832503102210482555284656275770659090744952578145293581909662333897045458218169082744211051640909561851751714670238191563449874815480322719965054151062204371904963176840096251299015737127752425553942010261407469647120366440121532255442097494174643709158526330752666469079336560434727500275997460859006392292873164128848664483490087106308312829468356036434701748112993123938307498059580327860223929473121894493374483104357549626312442771866160904292426088634948616671652973079381578240570083084489884944866340695857163822944873386585368120100407431032025763599362852364650869854532977002517579889752153163089961511433379696643881905468470069532329585536614329086313568736748284006769682397994372757012014931384972835406000590391449711480812142530470803764511986420389854710458394371310157602067714115689749825799411070017170394961627662878142905949885398792884782822290951157025618052823521633641740643854856881177593902520989959194487772888061475723792812828633259357790841452442191770469406703905333022898658985267919233449639555408764684564470877343044642980143465682411953783955366698328287207778157978977587120191267295664212593822513884137135678981408399612561056928419146544499052561566314639963362746686416763604388415855264007523542765250103247746754604471600534287388187498416619150006859043607297395481693310085052304949823262186185744804404007419524784939977417429413151039707310832767021608924670074671176667266512772257196994689885379128201972173674443341158546150163661413134462110573893761251902939987618529029375780266821723989513130350736658050913141828625604360713800262886281757477958793353258891380105308643698558200951382708487900814422491192029236937146574516078603788444864426239614760960689355451306138459314716233280216575716759544635083661433610772990866341071339101304551550933170986997827904120338812656447225984138193308127442973859723144829834856385324696845896027708419955885571809774277042161096063091784475558356265886204316735650681298441426002394176468359080347385225921464796085319237082710679784633879722060122608389213202418053009930989067871074451457912753886366975998694112755742924199856597672434255919220535689852441222532020380113772936242858200991352394760451321950259912738191082429352517391712327036696204230432492843166073720311391616261084515654411953825653786681965224773739303629851849058796096362647114330391488989175892655230036392581192173105309823316426067275964593303799135215159304105862157902940476527387368879988602870966922861634798181954699159803508287222812221302584061923780546419491153908387245165654679253942701620947322057936332275305408059299690039120989755953578026403925049723531843886971596290973349434536878076851582231120495623329823935279762887997298578321911517591820539799556761547690206157957519270092244796395588344460022969408614756312094376717993380234562761828666843717511610345457780190472138464807357077987117385550517789037395458432383488178429139729555089640582519395158934655680505796762818366886718022024791788016316680868284173372157958437488714308442879920884097249781588610865311135091858829267221353471099917542318834085250040669957782913444817128576196733875079583498441154727770361997028194340710742657415864976510614626878786065594316377509681130496023099899619685568836114241962651520803739531503386764073217735988360327979033184573412378022316462725260068013560841709510870151771513538366062165687489692048716006527448729152727757715346757985422359088200848520382305517475882296559667519541971652711704013509130484249387017027098250629638221552683270262880315124342490974730242295582498120542700064269817522844231141634473675616499909148304262689903626872280643313279139598674337273654378709590731873962963488537125865355606676947807046918431013804648033263964252262515440595108834608521468619478811365015006324169941935624854192918747043866358126901166471427238662464673598445279875440053268455564419452514375487681876445814754907746058833060518148160023147709925168471506732720144449872446753468583229564896872500593920824917695758478249153825966254569818613776828910667363940078987350260513460127074546660745399042123783463934573809692468002502288123532692865444864404902907819180667665521765271927522898068650496387115702630115112950445573760234852508258120486600173892959270422021879141068785979882059577718841455509286481826070279327454633224018338714563445498414897849387728118335455929660777446651660732790903237602201663979361174036604601458112174152293946863574145010593530293972554779187492172325715124054334306945417630091926110710666372754436223953642167896911053483073162474655539446865802156855065550227089659283110248008025432502774075626794547840899955229154128461904021269943239255038263447821680904416729975428977828187896464880669350365776649482085963454508088220214596676133417042529303717187158915283238071211338252052798022395154302467384868393779057512821530957664795811496662384601763741557297228218301715340090744573275375642875444687266759747245080968447622223356185199908651423331494296187541642999228559478985399421456063142689594598202266381354339427270116423486678990537109080025367731841546856955739822855999039665369863620814773692930024754794453024583267606274171253084341934469800694386374366654735774767013237735622180504179949193872650248021629808334622762349555995242288189017069291757735465218535676878282323177140597777416129378080192642406617410245742205661090724866180923292611954041689765089794508114276668353421540824609067405301711730608594340671356931711712509456105028122795366975858471394009172524384371243829883787713660477891259328067663341931989036492342273070725788403413252834937443958507467086749688140171983395637595973565030359125483332368931886631391724207497459693847527980044447837329886748272410165861422562694305454320907238767204630837412813198462146718679370550048884185862993014038328548900678991462194183400265472513840149965685560129841315799197220111371095336720290930855146457743595165319420570175186860181397898808336855548635595121017995116482844073128876960567144579999720128133130244408156587537945114328347533956891724524399786215884391011614431948334302550588972079861787624781388599660394273806373602938891409712066452221869959746683901053109878358930274425753890494689744857370677623158410010011252528012837745909413509452610503300322489406232737317212617000826463794932268459567849283146372527993658582296376124831288254170998671481430492109904626744799206315058188802682921859320934322497898538584028539471020150537136294399521358801076946845804779375210590165473310273974335645994096280692580461710511949455729065653628002803763449309610456393872121167910251725745637900829079011948477480345990482196269983943301329381803851562347263188072572829264967004672423768621275227928937350204547432847986876308902912232895516956720283600007389269985997449501672046592036773255272191211758542627484954655635961458161670606594162363821357280075621075518721341061362757494534072535572263699092324908036682304461050739581825458302412456087364913341983224476186611762431530398411207587996636641604180603052631570517296228711916332777868824989361489006610613389095373685191081705046522610387720063690392089108535079960327412345319681571448077100613369528299368858874622809185802040320325097568003972826818492380234539358594133644539884422506891933762855711265326806659238849671032178885890744681699649835074246024662713679514400708028485488183068007345760559485114347508624234511216422598776426544330219989987101514551018914153339264306639962672297066135498595238008672287031179762744970163623817091126299953363550587675535008783636983694160145629672063520560234941540701942968607872999289713604953397763592475025267322727102604259196721339140480705624674865173458388360816299686102618334258925084084481662273263535669818045711079237795979935838635352421205468926547958151705656748287626552023972896520604402886062751985561783095264692086507828113849588382630414777657327523637024976304147172418070128301285132575664351944072977373170236664481460399265237132800439721318532810991144400407759349337565861279526431011776026270639888523255102029808125888723409330920258267413733826601735471838512090896327909339306201224085893556070563746453493029016980020290204863466992827168460065287862786420221337085001698403390425753455744718036737795470533872941171573083756562799540914157256507802650983329110544420074308243072439014052442795082747739985543950986251465523727698766591654553005314683735757583956930436374158985122157975024662077175657572420138641830591205021547905118554175737278686649310079037803540371136775230350973774414186947396433650640728762326817476793892631183916786871635818068126478172936691558557110615235986629669743872783788523886591276574715242398743575356327331157240127580854021873278179327863108826531622252758266667834141009509894869431442041253403559098588836604589024263480676589153378215370342734797599466947963343112163690826487871385729333678867095094271335676996031184431091915749413402405621059116961772408793493943636797227812437146957089678289123813860662463003781020088454073919482288191307780497116881536433393348494678635491496360355580269303688454687572864417457139954543891843966051366698458341678842218233900509099115803126927734226811938673771143147539089020079067902033595457801827309111423766582959997667447740345775177532535800810773272911444324281172474443439266409837430920561993211663503573510270466307129088071198922845149203958307788861773501667599931586264589963468673310863005478796037909301311148280556110671436816503788968174878148917535334035488143371620486370601215920588757892765092714633415841922324139886458354742995097750824222061202642141826419286387434717811048653615028436201501243104497450352354740899513655014853961043336378241873876694262731214585729235382026651863518171359428950808118364406305321748108098684761380417202562777656112301732444227296498234883455109797744879039248750391364029590501004233371157973870709577853778077010197309955010331754774058223174763347297257903314777278819167669756760837255252939112830842122624876035055683761045540994305623777818503096074030812314032780601828652277871059226381947114115458625738790045088497082326597951275087352417971272693530336453973930412478395954754887112287329452777047102881587948469004029454024238510270448977754125273632818985576355302585288341283067970555410695332184495739932268093842841634764842751395188651066622673301041522465553690531214717055393291222004507446833938132352128959470329302510631418618484528087645462525723144386178543430845328015072979396998898627339080898870725174273068753741645077503642839497056837324829500767172077401671107986362134662348551507545234192654964147873143706557429151604554324440205045834567769123679871072201767406137926102098679480877001270535086664488475550993849490252009529001814644941869029635180590726306928451358713026776652544274112181225224671666818871197129337099112768580021218294106339015239895281696859398541443801259666504689229071347448710454686271806127216663796076569297800462056375577525306042340904928018083849564523808734831881602517015882615663756199530366182122348574047577049630493288801614329601608775212685090368895798900377406651168634841677871131501137041446680906081046855210023830912202678911869343262326490609687807801782531455079974671122984231253444031642180199928491484347105163826982909529494884101917551816986880345495756670517593815058911119921061301406820764584015223150577749675753048463966158079298456443413108180735058313606548219424619654749990290410950433450906216954708070841707669115375504903480299321456613378492384649608506726650001143206361910941408571719678305794749091644735463701277888411101665415252375767264670656173143312812826694428105788431628346096969290586975534501948159240312821141588314502363786845543774466895131432241147947504678178017442900265405119988164865325726306943316354247627609815446822549505208026544712336430560574752608744417769585975175909281359953869851612106106186588378529011285983712726596200190870028597908652911434648697855541419447722360848168992145184384813049717790779020488375762019090383692955029876687680619518881119608814394231122005688846382669403610235863800585402297882157939978776326327885858519041969366795286191222794960658833434524811183063282948317736660329560305400178537692360606474530804541532877775768711395010379220960553235580204894989975805367267386492070628948683806556135912591251304887972054518853185961315335047216176378034784286799139310654613488837176006458313204091368962136765864640295980989623855387225888522960428896643273072886380619229258295271906509743791141901427767978952837805567586761134789157697476311686241476449027247342855076763074922245965912157693933991187541380360576334947091234371862950594909370114681812514159278700679701590509933253014860385807078018743520268402966003503820420535465017413782218889815474495118588357294670930466516124462231265624424414114935622534928848216978897997983494746087399827959357383588319449777247205659191300020956170447112682788126997225613717192575674674140700675473491466848470295253065136524311968431905115199174618261119927383682058598353941047556833684990566452272178251581355359218741189549697953347309428471976190337299728047516367666566003011192515267865094591370096616225128164562336817329974095010524855405166302325449233508515243964319226772366278839512732895921221489817114487574113741673449673207973142148433999749739855901898594691911383219665687567726583778844124015884296616098000185425866623174341941646786203740149479430092303480631806266053733076308054418260178347770589123363359030249727726526816960456608653254774386514868482475961471723024001004428403543343465814393887280447606199287764224437380240769862831047802673504754539072218814980666777671202609747899824776155513256286022553219271296013151968854856616666982347451478749420928219047570453166871791800714758565487582433364149541244183072104787591305397876904337342969803567386667026057165743712327569344388871679000190262018369519767049188090447208074219309655249783522767172506401917074181316275264261152592747309923383221884211906586818497987694722609749228759713436758845809998689860756821368226376884489175377906643783342124493915227197174700546790193177499949418756544584967468502735628984277838583180992105352357950820296322218211194598413267697759869887895215862870692009608727817743315730751797274909947315024367150363289735630285974435962272680215518105204000709099871480660669094611706556650174297389434514314519985370955644520838998459854506603932392994532389441206547281318239149542805289435912380810370727731499089677487050850718312883868533960994197371012081837467834884303612116150660515602545146995077074500718409152092604599855008886470705514081110363433013838316723285377930831168342490311289238603242779970144754540563249656872566061101967162272149260010754694417481127927379270888287287147455410753266040707114997766183509899956056312136107810741776729105862557671666385151125017513055619002816501616887297769261952601939656681266631758057450980945108819926763458906705490446617314263308946162182726891698798123044881200273730570645649151619110025766088730834947958484937345434433076615022298683608637154874120574571989769337682474254659466280555752078491541422880248983628835179228935659939034150221112644613116615853836740627225370861235077573528267093220527682831368617841394657629285863727949620668996709000748864238639653949222504642257600144732328422527364567263464155322924498803865295221895262540026398301815559177320809268476614703777183195637055814147586413019537611070779911695805592579677032054094658095336246438553681375622754324091201194425783645203991214289831266559524764488840029578156766072104001437483715501509954757627226847035916842031256767497385188558162081245125656849984106388831507232831711507144128416128223459052708605382035307034416972841684606876046213765485814795724267969647589454735817914061075392866889903217480160289900125620716453893508064080368708303686115641346913728737956378105886795642163588071136727254477228558694315163939785585893798143264813644768933924003433397709987381843385488996869508387311334327600572919350805270608044398548464025429288668529201369037838050195061212885952165282417662381913216646161249582777743228595639167969391204751647816618521652542905447242126013652075472618214371113743174667473492575642395739492271668325477157353590459163432303787374113045575516424981149788758053591198710423157185630274999724550106352868853984581712550650938246965563764401994944642163145004802356345139305772947808811507479086266503115746530390901398284732171708038792165275303973425913159581164471578857820582932169169247495836315904220279418128394976777005901632911922517632094182687217246222165779302483034736235095996226501503710722310849667779050812916500199529138365191268253301947042544701936768471782425926598318353500322349441781439474453389119076266442565679672957590420425641312636062351343750883890005999690825961992436126548468412415900891365549306496983858351658816053915751021560156434032062312348221405571908808109557215661630379396124969951971030944768947300811227271276316080863903653865261263995886106831968727875128679986919835766819819722075103833891861787844856107239383700801243374951180299053681227631011947871702432708114909576878086526114053298676208118013479712562101999018206197641013455636199908231221081640648540794774500529985520988223575566612116403896779711394488395904016887680705859365491205594802768709701731051750147657864314328012628578612537498095738248056479674607145496357839735094260076088918131301684402289700694626486431151431992996039253088760378337522418167465532845238243371224817350438380273956688610850874336425914442879439674162559328245970517288069566010795543332427623507412860420478243090734823334788121533840188368298715737357860342059735165984037275446139017750763921412838320300778325988628041041632632247743358270201501112662336533186820103227740137396646522709228116397842527349075213953781069898229920806142652739952175314893543788199940573494124948940892743417695784020546143950735021991440749512444668897908778427471851707392782680532715734680069377532695088599866218832991592668954555764221461581438525394943786437631588680381070846429507900654306494284879763246473567752896746123782371454542668206858886599020684259075920023994510916937507235554772249720540148530795763240654230514071413968853142439584697611187446773046834299481316241683385708198984706884800842830003532862684771185716324349221540890616127487726481915616885419462369115500537239623519473085447387311286129210417376831862944033013621898684852218658184861157130899313168616548488593160156460640932693618763858754198348491804085808753698310588908881274219278422500615086121237402136337596419261456138302447355907069421893992149158769049585885219918469996483390771947624546835783898618795819573216858000328610013782282225070108736610357939560918539344124829443935168444221189568074313735030179862192585759127757829497743298208759979908000303183540205321788877221697956954712926552506944604595855925760560920015377723168395393815495631141427289826433663839686122379701355940477967656258446725179484526258960855020765050208960732822988502269479522841297158255234813929400238168774795549219495658345897603607854835104744775666773687235597272234615303919067856696423710582613908633756933601110079375232489047807381508186182835720305485393899343100203975708976315441201758403779492467065392368439247283007345664850402445617485165822807535964191907661668880496514992143416262717847963310410527247127164450409333713004694813396067578713316793611324729827060858630430186401178656913984395184649118122942334167872400448393946531236420911666778497135131130554276086612536123269514594129949541662866942578756316856876199496443243904927441083594372735012132800116974950706262397507267873981586199270310760508309737489868605566727209531555099934031035460063860688913681913708395246056259765251296410767817110309307363590890613679332609790888777108219225056257307461866122377839813673531697712932393228478333627778487994650415010810687755291058991329702987884455744505544472433019459168871203840999236628296259379939044596382417744802847028507319894173784814186392528298721194888436731067322234976923944132865895253690573072059844985879044134643968089544555130012111192198574408966169411235912218185919191838321498871762654366239025268347643701577498110420331879582905785108106223659528700223015032783543335018105863630423870808042220619504060422146508171022147443946212117963630891387240283136883134482800547862921846761093344546093912725379073324010174319120081796876263793128995610216486063428742962608078169063898458986656314700232366533742212549992687309485763693715590061022041786990010867717686103811297429909368576897345770963294973550919941273023923466306833176030047588210718756318750043386277620628912381842109596542935955475847015845702623883720968365295130148997499146863521086791068661611308486245892795630175760514010742054903963191287239546766062429042198619382957135026768245505345364530004134955052449882293750334696770683365709304759039622180266869432921870102422044826401910337847606738180582331830464819928766003329288964379394917060929377209020459227754851969045230904393537478533713082876464131953786217955117264793624771916380603333187584649721540882029437671206645121517632841609137433261365161483427858327623364043876691718144218592626186752834243308028956541896447216623422147811795027016868400372426220898015492804928927799048012318186007981817306498931581002567246801864893383670712412583341816433800710460034390722640093149188898700591700655743248905639343582550366850920943151091662865059522369944744817091905777035083224587509481892369272181864547223173415526433120976763349412926449677721859413590536805661806550813652663044047821106168589562485329161161810023063172345212297254534457724336079277997024064400645030319935325230888559764030457848311825010081052186026257571086084819717255879326481755935587759501532207241603797284363279889176209532141607517766668247786016839761495552800200775983265251432280262470506007449907472434756501172987869291607931765290625032814103580049244903891958507813086171067064318783963999484383598539112883098486456999082811164959649288779938408083401325695900637908171449201231094867797345574849968519076101782598337372061612251687898922422523930330386711179171006998398005663906869253510494962164737303903140607987675320593527554501393311007914229974371799412180892631139234786835589061160892221208481614586287428004003035807996227194646759618614079732194460833929621024782888705232488205279320702389128790436135817109909050815299607414657690319057629692025838856511486392287665350158397688404074131476956472115568275168724841692497603950931426380330843888573109208186881195365809775960588445185350130308866295525138024953769816770980736158557527329346892513329386286718095878340437577922960134545008250357332467847804150550301040546175068132525036249926048716085184265049542989881925851942522431195032959292436478913282051397968277102006707935269150949323391843751150600637174191843671831045279264327275509807532121584614513530876617719419870957882656887604158368760111634779250119058269597110244508047475236416314140151781990500053370446111249221106432323603017599132228935801433667280744088002674708407062911878555750979979115028570094128268354945318089839538618887472218071067504244578456309507787135217153245574907380678088107237053666562757835557055015596734393238958667167471697623380758666416150781960447425471110133384418120782218942028208071861191403339003617011618915735389079051165317550579541992260923689041226225713360397813072495090053357796001501972553144904354266669446748099318473500145381565544137203317389600771458113999400085344622831282687237659163746776335871998261010907316845088802112038095320364619225550716687759658500840861166878791162005360284594583924009631130551384810676739546460764015218678869724663023318529188661125357973096086082607027572714028370885287606656480188938655981698232463974053650517451044892185775825220243303938824376909096868508840804110096444126145933214381580945969636603874242266450736115265479445476247764709776626781014028758615188189498070459514331628970745971580143247292122332145006965067207636783962241304800388886664959117012167947947020221068678785831741406439381673411944177836789226210480261134434843687358646360235924808419582737278802248227690023680119085706211304765637230104220642726120606362265674586949820073218760121670407206031942650412986769198732031456538847854727365863378315343589808333891125639175316159208301905414359383180363770174421335638366098012098207358409368475186849524824874378232434760678434540966530890762143035544669511894379044760096161445940072864469080607748532066840377247360193739943994543710994411561141732515142104744809060590768078321922457401519417101373904472856771303697422176604662652224499623985911391499959046997889364776500166970297102353897213626689866965513830729011942975668232888660002639460850508888408253245135744386628544653839437376583542794693962408667668328194834425287874817920452112776961415672091075855773331178681995195030786610349294285301221014044949198267989028154153754598180707566313006130040809496367282473121969339136876576026455483035967287836105534493848994812307931564930235564720966733784773998574716638182426024821649874217167006731590760742760536940043222898264351587509043701926984696634818714802918835360289917410492261152857616940114932667277274559618955151045664153524230127604289263618917765696781292645208888971467696657409172722268420874275158485182513061295922167940656063360076352905631991247560225332041615637855918597990435836201602565542594976406063242480331968422504954561991380379257487599526855128842142091266167002457384587992871442270172713453824312578626498564163014734147551552261307902326787046532336740923890184890760385896418914813433015379498331948701011650614381927393336593689355785519964042764657117459695692076550468268862848955042923939987406496396684791011357006085939569267371629822065030910002102401105706097901193743826701616472128389808318976114739395590493538604028777719165922435991778597825943026526835309161050316887211587195911924610675761883682967693851919248226785767164929562944862417079968354739235875221050296056432142909877138515140537234385823057020365541502829637355937112091300524859022314453156121454169185438314904681207526434528828235496461887518917985118579647046086644358132705980982190843378743379005651368253406251185712006795031617094092920843446266293918828519565219337802273058502660065320259203974872447408467906415389039867712891204149794794895193661560309932068501444989171010438764401626571043199960670324823671104370868154431470802684037479488816352126110052485920346306036579329736432733612135113558648390719453491694154578006360759567629568663303560202373816498916657166975149929216004038292647514241508082103026963386519675535774477097698251137310993150205421175549983914342236254287488860474173267059181436755102072671587353940787983464720936107079930589715567767818450937149033522241224992035452318282113246255108097332156502975299163612940461350816198981332541878388254966515952518422815707989625736258768490310156768806787413205236351069330512876671195488825853918523029339181524149152654882039186248379496836187942279053662125124275605844539213329021371684307801751326588544320899360494715834859408201270646964314320504592960285587377860333819402654693118791769477311784202622352019592210185638574870781060426113844868921488632550488034940876710982168727280043427046009927482259243647349120894782677149562658917037518580467731607811913865641696759406339296745871234426162563928028511660509577131391337338859314356838692398957281291459612069386669698448817636864487326079939599464935176845465473976122244092520059510126254008691119723533645535410631108070775039929964018912317008564810234339351306376959851282195789208045651714295120392740439461465513981344980533902805366779654161614810823277159386197600204299003313407647959637766512058445094402734127459892101630706052399205461363629525106673119184623671673894482433270221145830115743671235510845118707451321405403002246517315536558101853796745359605878696645879626202326814625197124966808141514652201107660838881166520190602180727852750955191912694148278409793305856036538548398356273231996743844288117267739695370867371238542435958511885623128103377745370496479236976487471847963722451527495087235574697515055521164208125823240116743495786121956208844922832220860897636428342780154405734456166683181786041553450872621566922055969493679634906507221679480420271265632391202633851948862578831876868703816360119966847024832409215211927596986483360008182699184833067970345400775631883712981255124613650818311491407510676390903348519353340555617226492985034646458031807928392705858961179984297585530018707507106259890654801922176748071645324384168839674013835929191580033399929243913847361979273901388403907996937201969426271229618414878680567805074855387960845440354096089339629758665825407910883304710846238396648126229750710744187350366269686129038212567306858973056840325765375347680277345150875397071552163220491885030331761878910463192413795716179199928341320504012825678377386679524988976834091810142688070885700004836574319397773870911964859148420366114926922613827692921178493243518116236742417169807780285110058124866095108218183742139784074787004308535802478886462760232339944604652439158383056923127006566824591108248269095186868824405816859130949061769192721612924738422872837613902826174750372596746843232334561910525651760413248122111586971706770608419552174563323822821084628695126551062141528049936946026140330759176209741998649862738008992210371688801599652580790476785040779882024459609435718120293657345256690605341948730218478909532046199946349708140744668820639967913158154426795454297803623194485825362360055520971203581289207667948312966231913254485490713210123151450300471253932574119875610536601763994691575238221428561920698871395542934691710118974623985604230412524534741477516972027632587804189832402520948345979859199397984882881237776222882833999072948084231701325005788394628294606326734354592199978052762220906920722541856665667459898794833826059085034599455985360192408326323357476240905758789082505853196435169126011051436420154352755612601477709173682769486223930508882206972989431730205612496238809886664782392573191814079415967706719836908087569231456692237163340513867897729030612916424630350325411810837517626446291768792316094222889562264225392934051665091292913871242116979564500134184473535003954140230175862050886329349005206003317853848914377897781075026005192986982291134559262962824024233263665689535984148411869595110295667975341870150478433837187396885254556212232462053470822436970246419026246561320036460780885660197284796407007263043346248714540639774576574737384391207822615165056087422843357075710649947376554398478764484619873692863658101293915743538989704743583695230546904052171771173405753536365815779487055231299348095049640290054258960403612429630748972261229041870054558987532284925980898325381392776568329337298586918343410963511277206663964375659626149976175352639992484555414737175060776701256507211878653258017811142888664554057954180894718344507046342087554167720261008777680006631421681531427474768139696518663911137887772012858863474940238012288570195063318002470448239063813311167716483908060239238746127046321251004113695478050741446449504657285612524165359195062872128667821336962776098153754016559314420325871520897845684505018205745951499537336190669413063980527086769477562711917488442376445182983862612784529698977197244061135741657608674561203991828344282130976122009726313712919420746162094179685469378812295401516338851507489538582280203154878206188032441718986416380092686990652236155786657294834690002131815839550730012124851323749818320655994346610202115390018830540903019952007900325477449650741613296856507509421833915810555374170607070187725562478044936168230999366162034698853396229169706242426415747980986586787990625158187072467110772925548102841381638510594256677516755845268032431625219659825235226326455900398698241824889898149803915693622611587156794318603551795603932165259870289299318735737038591409630123266558553849116371138139279976695458198702265256084270724244357783636606667739107502407321659829315789610361870372591082050946360374389441723348301285217543198513835505796893283151435394162739566917121219105731867607864528674142993177332730567647481654319709645775215022991859508624404687561334205027644801868030379160780981239982589914487461786198270410014322747267007669368376961826107547010285096652223824396234983917472277509410061519364987114474103577095622807646437927528228029375149767845313080500839471314570598179226531956501135084164334080750226267199578941695619174777028641057750936041839191519289053785329502347798558316864109955585275078030134116756659836100316639773224969224844783912992145283606051621556182526529437491091911634895266907025908692931182379153771178448323775865603299683353785091271186518040320292000526144312471513342412366308696155600075795204889834416797480474983563926720875509205256872954929016109737684952914800234788442755147477322051261214808609414198629600053446407432026394622412738249810746967370039664829658577958924712458227213682639019613247621052396042458165766668898988769340291937344284794129134287492047011780694366968612397798781545490070521037434418775943249747269428881200805153425555451360743376386490082235169018681484290917741269641470041618553964403415768079070676371789246079408972304542880525007635293633424508436047481663190728596447444101376568066029526105342218788471302417670501662881694004679082132950404288310468994098988274224475831776474379494552334606426949226717219234881076830492437769457074401911525599340485389552409207373865991427000398922347712996438260459137987857761310153363227615619268917804142577338287902961333404573177594515571106545464364907336219606847551305162593619826137749792459529197995137498182829042002050808191393941495762385681490165508706781597903108508990494290597062743221730307461501008624665805916801892648105972654227427034408768104203774392072859960030851229598004667421865275096286492295304657801504749165168936770739115098747734751156463071111328349264587212881127718188055724956721573390206583599843914643986900537242925921523622951274261880827246972168832502389615675863631347548645351735757701883597225810463609374845447377664974964926213041997388974149521820394018738839842722328884652614323012986609614336732739592724731617232769121321776160489766220349060698248295458156525727358980720913592354821349234005371057844574113169926625670037702233068171257279812903500242578422670787135752796840495357557484910464530540403511744750565020874736472420962395369640635378684426903103071002773215147863637262288837240207910925418677405663808498792727341716209425310721909104028797895384514734513719726057020671807490819506327933424477588214852049862712487755092642338520388822082740620489910882154077310714329291398138438646428632297098232814819775803883152015967433379007444374767997449632898807213678112016444276597209258653533550872032849902144938268219489298869572736732500095883063986247912312206582903902372547301441975294375787098057141277666691140024757198051797158568386574826117467523201607724438223689459016047216508582814695756429223558194631750693090855400004213639796574751592212543074661720771506456313772234207056883064807934478212600847198944144045822641504175214374562458463847339122818611242813936416361966270990274471830119269973333003317176393566543909736166703230867557445960073731214163498038951156396175173908698685061821402366861582017683720801679248627716338046582042128509387288128617826557068493662955449179586512952610959362349088766107743133596224082380588169369136835791877387013539122018355039174420926048808723315826888686486459721374591921185156493935227953308397306135328449138370274145374496605562253863871273671110718419780245568602933326596479334842663484735653220904020178321130190616141086384992986979781164899880809994467981850626392877091114151285675607756046539413127230665354151059210512431469039362341512954408505752014560951546981960175978690621116049136595210580459348107137141020927660674697926558925779309964224710964529233174459272642914447181942936141810657382275837364349536000435976775009914392083341680562688407815383395315078004697012729251694921526815282943045018442101044605958010140478266556867792221122491373597209604487450921876171013152378661313587157968362870590408769777178143751391951717395248084826283652844506955855657241594215295547595246744383211106982935750542470185685054972707461483203583973368269764727724846639580920531930090270040474565051930361059760929092793017053306263540522478120023864925096064257651951968774197201657524584185300039213641180339440885301388391512420389474734584261084730738167254324602966255699447884236061906019544820821748890198365317597890246966130874252554747061260596746528721541238462286683326084721013919510750216602142641023543221751006817502737083994026664798399023912812066848175758739261001161649502217560980672744997590737604691859050148771948659140831397781477627577636636261058317447982534031291415243761800191379726432046307154732075419032958921530087664883302556163986709418269618662778385481743129317372696355747736907883824819438710728902151561879342983710613535938461069286074754713754344865160092126888953932192585997074330392859031793299196182030630729568121366324761756692264668327282917938650588664128922977785007990158681733557139234589363087992755216990368235473040858950629837553319863171793814657347105800654632852437912537893215464091674930353872966161676679268913916563896490682705618294818548066405438931679663665031213215650505906796505354217319264943112560384202355756506881592204951699818519372279674282505864510282944445654466191649987749684425534723744141648330540023418714229839981659690705950580445733993155418800012019821503162297684141714445395285962040912380304133411019801922267238880488016056579534757484326159893680993623040740236927593833834600325046463694729695663412012241380578532944344574668181954344166007733958837442957137312021859284624010064517713198840580028559742411005081016705883912469249804612170750901378243653902909782728093649142203582890256133155019832097397811561192389767652437871360829677148638775581166673209046552780573437183909578960048745604441123337292902858477275407878445115360893847203453342472847565985887143754390940060848177485788231711060899923471368525505577485802941472123393508068711588259675896639622750805162057459045238788963347681367928425309475183940047966629985246339936486707480386846657656731710071369062773678942623586058621192862888352910958079271095028597410927271296010455131478448605204783102374514677584819424762689395451410592364577277108058889877852324160587610631543803276450792617635956884408353251310712198400017963930813816081232984084218156715574667094723247173837735583916462471611000994825768327826354483412305270682837231439144760925843925851461407465674386952488297631674806554866175170499515674958477649435051308194440400237654048205757468474227325109850085500544337302282616480998713362096426116777498818963473151522279042903320092581845606724938367847052166196181138273878178875435037928298078054479105392386957939065008561675648693061499102892557656700726756763638838841321043709096185388326087977357604593276105442900783672491147564386335630240232780820614006272865542432193767364161269534663545632853341776243786073735752842456435278152367521827855598925945767795897376644066292933414605519227861526737977441589081363575179375682591817257863030630726270610936986679607675461290754281866531346540707175518857721187117886468042148565536333889679947503093747825854667638462161488620503033968160103521090219994903367523030218902618820734813862038240397188983473283552999124432408088389518088720968910330316009714905680387997633544572688446145239161935542660682306925032836081560954315253804370144528383494992090942628256566128438500618164110798630819263224837453105246629286532655031210716346839213431084066373196145123423953264979397755019735558024406975854103457449259206893830513533837531645747369169759428437427571325943206411538789963021173340303378708627886549088320994390461244240486015076903287468511719867980154902479846368351923702332643048203500299665821179531738871207188612780212333005264923953919878453447199746604942514818866070092210342152874683153780113417028458993060279622627958603786280167659920357352062149437741954826827969106077014949558771665021250529896337241536778078005365803513570041455051936721000189538048194222138321779797316761952438504727793821695151207880856282505720877896147867920360297913569887233255959383127311258782549908391919263416474976611669308867461634482002841487197508678446242196398639761007788682589725453840889693523679898515586896663270102379993948887729503939309086063832269118283142198703045739390967622350257717551189142793205928780041276044980213005168132673134467766408162931820724469819925499871446962988762536899160659760192517048512839015728068978214207593026640514597905420528876318805616852529416933323367085626298041292561534063821778512443706402050164727760366951141737667478921878694942451459891832891877574809073134916595198525384200062505602196590991258495823426735864842686095869653695824892073814643010819033953107815386798210088489549228568948494688882445522704410824150654847108274600878602436617990201022886827721091798983412019215990468854867440106796389861719743264694022498166780802936443919543761411547196986808377213508634065127266419007828006739390040975772975335368728884791879943665801169116881366250256193457827476057804348240032475765960870765944243021099219342014260539129251944247890443924982088056993895857843662460750833763578698821831985484560763112127478696177362253090288885417505199553055198787793650517503843512067416581374127495107644771983297429537109285436886765476851790359964611264207977993694047249858959282366438385545967555456065537758983317576654162199631674155261314753527325428414204230857199940665518249412859141910236870397642975051509066847044590555876511695499594323653698915112849164689782734419922979454539418204270092630824470550980914481108299313335545280967581958045265055194938288941539226756650040025077511343922401691592310821146009518492407522524950247784942309585577196639451975077801269255053677681979268735257406395534533233689336701653606837731781180942035247812382817201566247815907228437451119492226433040191157473290680307574086992509117901858171728140870881993576551140598718015816274097457106113144669569765940689769419160048455910383081747711839176113136059824843536062816915177897748281455897597957599807489812113081822127000421223955865349478282788451988181842443361058942305621327997921100925418909345363066635748910072451794406290740793899393011539560777165610110234626782540821792241396784684450144792510206518563606907588150483682840112911717983082199605553647126976279232674587416627900436717024398818200244540041488523198427335710713205308806837250355833275254172505283690133159880264636883242312265083088007183469354931166526623916472726980600723418291511880214373727720960334428642177066955366686740977809284130847683038638820679466490996864724919972901032819691536712122062416197805733472138594235250582271510981192956856035423566740540961180442082274113942766312094684210306871500931050672379817997095531080734694379884195680114471160172231921543765257571458316673253670965548789406487896301055432271914352835175649755363134009386716272056227644128762742978137642088061240682160762912676776604084902974624692059688174717324900585727771219432169634069828522563887139853893491605023253897664934848505741162794005071075879280187725585674203540641352215685095913810641375036131558145238450754120882656646759790353357702793473084480982983475643654941413226556694635480470586629449565576846731049007543843451655856065481707299960368155680500051465524570622945294059734372870323944487976331412060989461706947579137341831378721786005247617063021151241483947488498369052361075370997136370805079934683335033930015212664004023386873147111208929195691838270363438462310257920073288901324098664477024696090561209698545382375486235684573645036417310098903672108439398339585812628728958769786607155701292113792427205551421002852115579532784952621873153116395771108919662687250855602829160407019840932971954387344161325531969150002043930018235235562691768198431556125589347881406672217465729481914082317219684853224724104830791260919560813832455747663640531231410146033952479329431250740663766720408615325427812965586090922249587619605363098140256216980760732103911336308326596831930096596001523824954684534898661105017979769732866448695660380397305804205455803630578456382110689245238540580808847565282068776716136370608288105967912520873757286684573114342292391641645885910046666262427095282584892396678633521827102929807158616761776139582796786319241662996131985003012477320270645428883864765967745027411191725749397701459095676797665333766775535569886133313603617014218928856160899447937918037819813086599559650849623929498546891717500534607013124170660049502405827446875183942441596776476231591000990740996547284936356526808474813756323429489424904132229921004076429463876118285702599782877748500286815621464131963104125248043853083289265627186632260710655223144857515512723266536176091230796293689050387394904853260196215846895749108909811121281644036629858055330775817075203709063818810425573200552504890444671577420719368355305118797792406976433950361994117055846883162404801667799440185850437496085206349005414646605498661863327422678149076751040978119197584571649883539027696044747063323373812552051723688717970544710742166704049769094503459959956263581359568239883431825268919617519129561464029929844979431605201072129674829895875327413059231693267932018381106713143014032972431204810896812095807278961582262405859475827056821090143650013569183334004963768121856374860906182329835665625514054275012008102625855841054413398883310975119031942602917832215635822760561016011395914909742516547618734289441152570656689839402287939879239014608299164591126966348331493086965021039410939340575842672178154382501159442328972343143231005915038373119953797029853139080940218296664331501852524312152304450281071867845978575298473418434811456784013681445403523147735794073796202772711734556778032538277111222645377202325615840585327534224753034031408798913057536941565672728533610270411510877393534585469305805719502298108219825493327040377707563211629854191029109439525127664745859994459079877119430022458471432951009317945003204556227610544814322209409764452477943649126956772135907992109144898619177241422461144904870774884222491386006899819735411953592474686196934999752295386658630497383732919954044109370874683714517124569722375703758155367161000095169295821184869866830207791972073636502601281970825874571271057147344852492684289858542544621077351790373869830706866877809611498520265579433719594857177939897857870907708283604398367801791574133942122227772259894291963823156382705927947009384035436968156708284907200265203448118647666457702195584993215096035977029882902046565260064628520388230671808803669053578960664825270656292222058357532812277217790842867000584054629414245405197797512045035491015214161367295957102335162886802786337747766954780045237990101983099857273382476442962884669549305035440852411315074229206654718522047995714433327416936882538864994662869281059199304447136415877628306298169529182551473541344354263867495072739989868744374779832172540110627694117473304313497280581520204029149428832346009612157176243293055631913657607817919277375002521358497354072873108669392529168954679663322156094165412173299223892399341538501321151308745664627309644661254702345759335641679973912956476568403173608318253451959183833645228811876898251669421884861183872359245431905454785811604045208441217077667527494719804865843472123580168188797207061737697898872263930210438431588291796038610784855706158414523667878351196551341563788015742342387441562288317367998400254233233678567839909784875999024244551609163240186355806113766831469601881697483205462491595212632649891924673041538397036833076520560805297030736756298465386199088948992201253803873327306264063583390534893190651765063047303038837568521812639786775217438283287219060994978826393778944067477581305915491478392013739561445998927839337365650366433016425448345607021002188299806954120182716394947030096307053955313126618537342852508155824473455720599825000354530358127085207362009737420078176748941283025163664071766228087182222845119251512480323133005073758027464051457618887581616505661938607481683028734286111922962104276581765173374827430826115723496961226780638731895660745716107576716767075365109714081025405761601390363826199105740162091360316691340541178512646576112580076095128639494699536570356812759680036959699372103909380845448020477701844478822827362966559166139236107437708593882478297145068178184326930975819561146377483191040764414361699942150283589125600236541030911743895614394206737387921369526487174621761715731200523487697606145731812665711435203928289125177091034040514403849453317790370333170936267012763961204075736138508823301697635516752226681707363376636735479622383751945383220783106255256606966450502275813606403326714142606109356202414709718286195923020392345866131332101467722714284477497577561976912183861498798806431700749997393984473326530265916968253715877536955116565162334812478064768820939272747468257036299359991383197022153058082641156407391632725890702472535838515852484263783771618091090881329201697235649465310331557812477139191691013708744781303434873104430734106648237380822047745421203179484983669389072012722672228976757689075251943977643521533380942172893061913433602157487674133405148191978782374758957194383183992038247343252276073371330920785602618287199693276290847782360809247525278602433103912238387842459066482593676691566650823666433087109168050611361235361624908585268659135126860026944458166341641489630250248231337706980162896080764061236858785989545034040620460506695970007781544972594992301767080537763985343404431743473379967966843624230281302871749091079110103277471884512131040738655444422713026136457801855113207699612834121949874391188772515269864712990340783671567479458314702221376415582797838061053311423728979939832523945415248739547241849501957117295125409461175197186738252558254005550155608621691487449345450183330427687711438036860044165729763395308490916777036113653612959698195318101095458721837286345359934056149932659236112245808807495008608429914056076156420865215816242362859327226807485551547634973615827281164882882205973200736390843184254310140172957279049231552448919878817722162983047722217902308428331655130921466602186518212872065407868512043987449666138707334781604882692555356418871364261325854912979205841553888632119776604823748688506713751615836564915640180390514018747795865939499605091346819592505595638026719213286836669873523049773269898742928500261353204418876925170547906736416936227436634539228770651862298706225492079589603140718976419993121258996422498416007848045898353768879863346198527292024619385194162532346074693407428199350509267893787008827749780955537732402510550533968396441741268013327931918299110635691833082327802440209137858255738944989246858956420391324704172116137038481750909383777293515787108535543164901146585744754707283831092498384583275477361583237768108705967702792511643238029689851646209633532892982720071713515251204133186290466033742769141966861848655885257404299611135559520687069441251331674728304755866790600457947953634714406269462107649131822755472855377981743533449760155612369248343960469853963249484995145118062131798188550751240548626184096831582322890284112020592442707477935135166019228737824447752347793779005144939089679235034486387635290110958134863832912309590732853249907954395290535151858686921686889813558123367713869114485988673568562360403713479286987292187887202179150108625097143423206198152239706896885968072566441169418446091315095582583400856867678714159686079323466733401936867190447333965204129393602669734601519125113640322495112148071392384752479429112422380742793854912885262567400910885452685462704470168054296088488604717272573176041107377026654562953875273114531002174889773250112773719803823205487577602557797692364713391823662919645558677726191699271238698469600837689258691874957644174013603570485044503946017891919802595843212553497582938262669818960263604021775052918001140933223635371946590127962176689870676041144586127820321965789768594322694305407345949844426600852149748492181995319107574813870660260083365266489668525243752446590625073812772389547097524549172204599835622100265210354327219251977719617690386153516204976861406639572502246106103498681354380590913238403771844021532174914030330760497537415410308735443236629793495202295271963137918244485314900133661287060310738965171716557044960254690343825138074161076696909645420785742100343494548794981906675974011572667931733200645076827422837775398286800125789153187013707016274962625610264763874581952870742371997066971935713916997221127092315162505804140008302784838294194529220346006709412175433984516728535933678419896599196452638410548903386299982639874834162511708576984174711780528256582331268086424957511381776419113622986351267954695835696683891716501629347492271288195593649821287469459806617090552718204823833659239749733656514527774469362825098500803318850504436462531242725679773700252964532872524475631469877420750799283441649991788202864941858494584458191099556979296040536836552861460897151944221971319052263736350661247803387906362104430926745709850713052095396058183605945845388244425267229902365229741714309839641295600941518234156630126454931175650056530587892915204372805665234149952851468061509460918742324572511828693761188581615635638431392731347684345546226149572781950065519357539712930285044296350302692025340527354104323874997088122139060276828265167245677791232906635620545178212096271728126563827661240831599901668596338964281924129237229282940997393516442985361779861040063845063583551713184238611853903550836003476843372100200360115223389528113365907954308781477639749054888788209945318265557254937853438237141364030967806473524008875795449963208454734819172136829867116430110695101459239854582472326601297073647527924937328509402062018696447917188275898919145184854907698736320612378401740872418653887904396002399249053047569359697686033588215476381381009845085646869577050510738652952478463585217418268545353577555533405118293340906436363545919872725811686598911713141298417664920507332412682832081788969066572065493344897455198290600751129765288525830380447404650169756437304852884536089126012313593728985126662400044447978083087253121800799622723727076961272031554217181838999763231132060263474551272747477911657461754088162010996582116175009520776766543222598004598469518357043251974243441082042001097889744254646523394678360263172303588317825117815110902083275162731249259658198787319767481639448488309132346394410864726508187761595157122455406953011661404583156263255951059003794376806174855106045717241844951973851786731199072677342574599397282984640979737715456549760284887876696058729773473358915969101149137009105432660474282442202989358950228848538261006147288862862048699120127834672842377401257224532907400619996008447451062996976677161971106404667914674525070872990680576023841394499550113422085082668001849163844784992151318360412059777331515192844118041408293479792660499137334126832905597570575741514650987607397155775906032267733228244282012779235610559221188271601913625537903785945168343080969742717924648171073494602207518377123657627022535544948563618430606550260946640039499187513712410678986462922947033502498118345030389968699721659464033734615708894764016389016359089907025076168764385615307155226735683636041718632565696779238131847333000835747101605905947228035387372313527572146727548336281733219762853583917996987809856047916795039776725156306844383470598603554234398959754533383727918954129074365511193465315594274128488885971945020913386479599892140720496274012784248931314619966526350866197135003957944070464586435680764354296181436581718357659888152617937330027151953351896282074962732261277510191390608978740463114336089290720269457420094080968895523770070239606710118220972598383624126194161548410160100934407409837839967875205217948563558180770060185073967041354822489272270162273010136169015504219406077082226462216183565768238266384168433175100494232328994586152772084593844570182302781659792083704773278546583406312776746367137132300815837050552949895345465057536860681686643600503120400061298334639216987968165514021415324881593433596257726854348829115104193078764541079913336476998661605753039209336120377678887107658845979048478240474301535148081221290445797763269526906094630909369729496345240512238316568701263659812809639330363646720989664227147490499244007930599299926435541178637923131104715902187593522266290631178006119395709492532505228268382853280725582140818216463600546310330031465581096709967886785082919456557447366531358379896492901173361937759988260554789082391485272176272483857950300400424014239052570583891342222127945696854538916329842709374742896291728338645182689396260642695507238765997223763103051977930163331622648382809459986765372589031466904698958853042605504342054788470422439359361794912159244468794214534866505040060372984179715921595922492731138301506943878126578351120766558163112354533561156732222101938735998843996745949317570605441782949057291025426117404606830091322948101877634490344828195061699179975590486686985485875951850852146005606575529133643979625367363284401370412056491163307840643490109437356424840487599170728859145147745141613684937373624872094003542388102101029267228854043276299335615485839718766826637830813453544267969859485506714448728084452148427978363052507876860616948900988243238186689918192794965086685651967940294899933865771262335687865915869353727049521769844094573460595960472677887484306292241268862681122490628317831107903852407106709021123279532225207409731888604687503185863312666203794938652822398726756366650492612450784368506270194294894257156256602344310428793160229661092308176733264280793141974656289439216441040518460690422875222950086306916288771732905969938701516137333683952131684603083165764373329830541207931219556228648527818218582363856710450366310256263962607254894229288719030788785959598660941602670928307340923459587348964857190927106722489813540783427990793320469988089692269450306409347063702378739373372597817802151746638006353524168883506558504145511672853098517602832014386271808438516996403459262466231989751106373938469739460102818285177271540963036246033119008621647533073530028796318187284633479610466540209314530316993006405895055332159913450820882292183962457159187769756416744016521580561795494987209261321641291611628254451612354895273569339604271410709768771846669294245177707769397655969539137663101688124508668488031871431164822890326441790555376412351676378906696850127148960703924355600825806238981095950684966890461956286591347945982926998332543518117264988752667414125373382753620452911186513344419710716656665458365343566635977063176899410860489989705317378264497848727472521786627685924236002454598466393426907213337993433078259774537979825296509916582964820253278515101387180705480408251890583443270360869826131659489914589772913781266585408169340080735179101073101349624115526496099481209106420324497084239706236120769635651607723130887054221328004140410590457249040837126277919409548064657084385372114633719398208525957842707424804068691210337773962541463165365788622983437987527799095546886046960237220411936566263511574628318635352196660672750638720442701120393849201919415037801473246243425725803972080062567998213201072605323867553489594748691359488293235449449468084370651714220935830913906099182428290743143662049909015911743379342025097836904708114680461373173917094052057039399181335167512922473880935470502226967635057323710788457486293171071232514007109579208615065478217848922360086265072062973187365887828065059217753064419922269657472921633569585434745936760227242997381724832182339037462333145966393401440337530446246511934511593101247519823493968856367097809350050422252119147722231052169005279892023837638362978354902988681306744244512419817607470737467988595600425512096751604698075328245540362672136511791533658039672651517412982958468022723801407988332149825835004196387456879339398359639255404089807013932867389304126815239960648448821879121359569744872761088518532097543731529207226208904573199705674005270370621809214221222166662564104679697077708840445734678626248135514937116007892252470310578386312938347215846425439232380937218377444450567254906544827502337195054658806397528010811785676279119826546442284632454087847714652314238698488299064479224838720370195612065726398491102489749130422381303212293424021632146959787548246984062990683574730082467826765969988067171343187844554359188621068780413538077917638864805804668379004230768018096569690538648919931246361736468208353130099473638460051559843270524319298639416999852072932370206126631434458371415873425218383562269919275670497516388549015595235293993827328567445911952120482372237019467278052206073733197231487510181616459290430057721673993924229555382373595769354034444297147825026928259026722480108927340458071209106252901713165688787842895263267390506510405751555629164714199449731036273849845283323128401967486370665063929747632404962427733641576262937931526714351613072275774886474279888323279973925086404631254085390633461804876805434053146720388759948325434224311604191690060101837204770857446322802581273186457679009255096927317008141992358808597806749478955268931991892990660473316148150643870636299028830559054986605616760008899130323360268448152887157208246475635417807181275306416468593932613161674492178556941184277809183759611459774719395151867122234060595975565897341965382789777263555496995578492114907897430501768669967451823275067142448127582317711019650374620831421245061916306130328107231298833829666881669028961092967883444609764778217389157819251781680008733474376513648091861423856859822361745443124186075591531438786863219207909948163405139672157564185746687750107662595144464806228952475935054339222429423846801806526283531853014920160152278241218771327356387676875963285253721104504857212770408211388454839271118137319760194963488102614054235088336913947340622439637229962731705113494179766196485021776206400243423931118842112309402862587437758288458690819654856260575532977377970934702981811083939510436521930700928183848135191850157567394461689957005200103802389799195513238380313267371346961902718089661684338166155021832381886568585874964511716308121495590637785190636535605442056943512456388047719311778065792492283804984333590801498574862205835435921200835936589623804978575322462238622208125377727603665598386012767881143874836968265182848697224923274483331171201025619488117933547982636671479722033943045532781332184585381799916220348843396808519567986777756692333049646024053534393109487772006300971660441872216559076331942983802232641495682388187899998485661671839614753701364489324861253687723432665178488898884976135049892991225098282869987175115041826016165489094309614656407059185389186142081242158969393444387425002767213896193863764776076015949511674366155049976254375559284632551017930219596822567299791818926024189346775768331244536581802110221397874217451653366663482559067260120929584231991245000266022253254787449134191404335412644866921074566049376939235039453536730320992657655312729516060657255274439503410582544585398388241021224011282251901159801569344438876164904410303565507604591200735212693916267794290638001573773297534417690093716580637025087448714206312389877436924294437224700340365168863480119446842767541115215692855133191768454394717118628667482042142721634601165758406078243659267403152399871450758493970887985416734267780916197453721712622766684418572190078873377667149454071411210061124727438855658440139873638625854349650837568574366046220999493748893318839294853467290618224666552662171388566512015433588395637901022113563396015965579926742676928376949629013318334875732108986525551177623267781354228485553011728135216136261818468375365603476448312166865357801672009731805208845772517089705096289315992533557134482925910430192424078062150092317928263762259590187059393399325098981045474167354382250013036328114301394757761730629640715668242238944243753108113272872084032840693352886797557627111297212734542464116461545961139000742584935859105425080372532863132054052566000860071344598673393904576611357558497943198759838324591402000629084596269750950271514010606819512803368692519100895103238719091657202119471050387383675341077484707731426987631442684994085826976220128663659275378085009200654866858926496557972329589769635056938830056488179693170128731174374086651436908456800197336206829765855892955492160678938411648147628167505148500382755203725981646947108873144075188186226362576518410817853313040618335159587025161802741075672722148499289142566411396316284032212903041930615017538102523960866726262228311260801512583118250455676621218873492676313376892918266063364012742560314206851153762087233990296857160414819815326239190724181905242161814339371755035174547352491759177566870245398540049558686688758828876840629937513902520277378609983909316799904834547803837694806911097728714937283249019468633733229024970925394487408557439376150297467281752487360636018792103969477662770591795889698073199216704357158749756337774255848350097753354082500859337664828861679559633393213391836495445751303167889248412559441758173675748998894879128930434416955361859495634155884666331777164142533077360173841482022361060954857839996022634612601143006252822407159704905292793494485291484534607308245981010501043549475937057015369907428704453042563633295176053090928932598341491465997693567953235791262241963937255252650343623354439706039134649449842854458863414752876680439670062359779800485697368156395577137310225662374051815224187980505641806277931204674449952266632839764513558062550380840493287527488828540897946749274064947998304977821411525906398600676969555691301319075384056043032929442703940207648817270949428135707991395238605365683017919441506187900572116283062606956019197862272688280596544105936657166636114801843993538868103871420367247487723671534124779005262395589458329041310450021845634123685655565229878982783952670013098152928598841753867037024112193823628001525742400125450097878558756319000178930879161769388492370726949130582432504377538854515423528034839539060513163462744985320504266546653716569631285309606408270082525080795613110617764330374400756620419248827587206420574327527140748749350903560333790787613329147458080133568279160496211480145080064930857409171657775126512712495831755893899560488860077583821508758628742854014711897573868840402733924755504036862269113840657801386124530395436293049679240275140225461173429928826668663636926291464254196703707044174956624038110964996579394081006620391711512278129191480477926279041035411730349030242351045220457622460008013637800606004940862065920269985533123179145728584361286261478231931128227993801147363780039122405495187586867410945603505991557118848849008184564466998025403585782098016353991204077661037720648585470863226303192810055851443257579646631375405208018200570544728490413941623699727481020924725633081292354163046654059226809030902129409982980597308976330450437124933399349460922029727459856417845896751210973060005235018747133726562677471087306273849069022184661994319982406555872149589081591212397198797852082850739974615693062734183857996463729871791120821749192396597234678972470853910456846964599700519726550992497388033882352217602429088987767521202295859868640845513724494873537857584307191603324070908093305426268232669543583517665129122213392375692320247521217508214394033290697273843733434089218823736927867418509765458987510021283092335574294674133999282644378345611401901050154900565052032190148771876971998274119445410955583436687311341143327888904961952347161326935338747253068241862700013508900414834761129511825982924015550628209599898513944811922620167622866533083583382567570850187962337888459080883047786859257267874926196248942500972423483343832447951273837672018564484333488086586226599141239387578025280740888736388114291026650490634147906704277465870888124665453432920436945213216335013369905279957222837145736108836868981127218155522410532287226725584855920365137103730886140197249734087950262098894669560427220655631492456324673950456402649692554517970562441709417333602134015394016137090711453381259056718800409413385661539778977165680393523958633525931598829446274279084612305248699538555684432170382385333958908387705395747264443914708606190747870351758259233746152442964625197321468962096501028351679754851281556969544738552644145069378581823223923772630680921426537073241842660115741761952447834190462962388639130068109141401247289794970463382451143183098221007514471187285827630357764601331723457637209206773789167329155840817137959254800057935394986891928060530825069501671404134459619071195084645441847386330719344578675612193739205743969989723813922863904110070545612319696754185870999736816180217725271895936084247945154271892356090359130753098487813086974731954655729638740078408675556668700122298846870387540030189500760433634216710214236622353338709250121889567509843069076249122692437287755430541004440764004082400492821363395095062904077697417187593936727964564607181904092223867763065574466830489021988987868159258274987706281631420633096177996753217914015508534595763256947097481534556368013497565574800856079880015593800620975700137663160362285555791905576974222484806607577255956520169862870844133283232067686120869903492523668716417655752425220077515810367564586926993941967513440698940596110160848132672002160725777469121463964889942875157338641622911903344513842912217658850085916001366068622221772074382430992945810534669496342212915600562760240361932257557345676514005075224783957562433813119144060193699620715910500474964031544992988196446670305915911359272728885517832180049790493176726766099933093468059465044249677120469094110348417259008989398963046485311483828462952645150201649974813235932200426055719416087827919806098508458852161708707916259742461312719257064340983597485806948878507591734349681684129761557204450580123996367090625448714781134473741737933873642987788698154062477561432052540778557632191309011369472928326414664569430960951505779028814137693873246486376639573250821789763647877325642768006728221860291056143629636427960403271585249170117412015060153108945592851193852325797154767497050686075355087334781736346208438708621146328205232206513957424987891725843732802730207115842612352105032613321666791295456601563589971546194969978817765320103007161847970752945521547233026472967219991529502777549898605050426832380821339044245989264283146609875164173513731437722137402708594274034877132964302762446815866352712879032170259985832688377702384202388430670657139071521860693039239918657630589344259901244176032406855903432278990790395740594446168494026998345067494707672072934943595175521864246922741555691986250554616713495852701585207667417050796326935957083170446263138305686734630382627986952685174391262670174478550994429850721819675994204203225801185664725256538968880485494678263259596727898496249310423150756316354235414701107337309276544351247157438667479717840719970390462273734091291352039380128951658129303991954406058476997877602221070158110550917870912877625395861088306582428570191925142112511417465878982677916101224894375871296334083238304047884435350265442922944222801784999293416086804364839006926114799368883530885693140707844167264283620397258583708788222011728474800559426564392317855089171168278632325617810963723020539629322857365032424818821369230677928505608027000868080054932879592276352556496266045197975175538895172382568858006641072353638432702351155504964217355694524184038056512884061853311305421883549266748532610887880679353931398995086000775015230608524507402453514313645575466092887822512252737645810216364003619517064651754876653705979511808443894578965139837616415613157158708123057935115916420807879774932739250754238239369608991822803944295382819349794894498012197482042117021609898373479208523329016639419184632861628768983475172968686805883767327793661374899727658853032863883315849065236137009490014320113872289184142441359693053088848444257049694030492770987113164514951445166464681047321775711100972262857524957871735809317395801159278138467027242104045495094230595903799981276523760458891196132264098616785633550214971205881832643666180591629241005531548340598532233704566064842539527283949807427831306136085033485324245506375292514460649325820013880310624026475102242389608079067295060703945534297631608183074201833200264340524405127816842559445282083287681635656984103433187452940064037545566889847043727734243651445855787496926503392557950022962990343029050812167521189316183903367318205892171622632992960098790688672412248106721922028292317636169564826094526954502797926822402765052909203877428458496367373682869463152032294689326232416551947773543286157996430706878825152626740490031285204991627143492817531956033298576703226717644981505653665502803209420647135365451457056095069369359058057056428638043954428020177557120559737416161006188080584944765200745563607788670065081312468893933875085002805357248454539428049257376798464181930085015725216759204062728781159264532024034800540858086660473134263748492692759331856267107531653991447064240325997715036457265956497597455612332828278288701689829381254678821327209705535013436750044056041446628863471882494185260588716993047234950861814778457367608611496394225375628291790018895390335498479826257700630176069810328574215049243047132938302016950323572704356494591049511672485791493010521831327760472178417591259359458103536187269637049426979934799572450904331463825266347834595476767384445949228640179118874949808702047482487716084161550238862397599402887460105638645509562520735170019191862035258216823323453760587780587487601068494997856550113424582230845675025411784009485673564492114506073238018879188752869359398546624419424057166505264367950732220318551989249815046630882139672589664282931295475162081827718640951134605102804845683271422050194166026712099393202834457442745387088724417656679863302723225314969223217835128537155952039905233258044064775409640322491220538164074000422789868926757736327605668177318116827122617165740909490298866001981871658670156339861760125027854490466318589919946075885477738205728348615578115629924911057046809572408619887171113050740815459145078701794770873346437458568320977094035705579392822920044817800192199415712659951574725593794193591987733406050493404291539744380046691845252443447118385466444811939096379563383775275685337236808688354991140791855667201021164966201126742040229078530444035625073023749333776685304647935367049874837505978342833138754580602647894528184073129473952049664364622994783266142020093948331601995478746522528675806908859027756564004900097259137141352851423368005663029843986578168556478765791294572728086856656514895620747533613572255636242644968575006293333011192385471296129181204121337365437014581322704577087907236055975085337863526141133509002118765228838043598819520221313841958190003313767426031373970586566748190487737652591397433609840094116288270140291835550692251319031056044015982051985795659996490224901161509708798653497773080415656387439195657681671799332178277173530385432106216081248228232926963648661263482399502949450988301922425951406138123863608832972484288952890986507660989897885929290517819163057651433240967370278746440490051671458865454351025371006823544664384760011614696226435520113130706725699940357017459053426074270896469312419406190554144242427478846070374488699556836191763413329193437867346384310113215548822932401116111102566102874059853770958155002042472049199088976817029310043395530595225452003318761537807876890541718620076633160155120876660475723349192368866339534822407384412616543937404149566616045349296146931576266759289166415803362409559067495734616707675742759151770932030026577379786490383564073628195046377094871897579273149781679429975663602917453280058607329124230554834665810960476692932502200259781691207565547106300168562226542706678202617890454209485231963838435367170858083394035091376025221511551098365323806842087567318451908182970821741348145571043016061774381064363452057408257363098212217256764380861547389807892862254717713415436149580651900505647047334735655891693034706893780979081044758741875405409924157455119840144557748563286044084435365930886626552573259386227920410395645567982505788628233769936485399081352568075266950381716171001245687813117179895518928188158046041194880726878103277554984850413704397594585354199053898723049020014354810562750213910043760698393517819930146630380217497455763859267300779125529175133613683637957670598945644072194657809486620976998017574217798187327411692756160646915905021379500522407775730191828379939032083081876997328078511563893947929640885772471563595667709921844771795651546924167686717988201305796923281521420927598677755398853646082294985211489947739556449273123492343628853428167599920824209350508837511988334563948633449271687984284892806132696013498640553347446895861129912585673127892410718720274469780418868256962002555946481629840206855182134804494135828587076071145177919416820800050366608589135771652570951369439785537844088126327195931533495321593509755331364120261886274375562624414122931936190865792374983718998145969192291479688883839788947011965273237048794618791781345381468883886936798126722852812885629870456209007381959652939357829226835234308284254790972331181225829527334242694630198047729478277980422653879362253536679056418297514469493826919222347835742958674126688789718201934916943704086009831030937272532334329789305452780142690590726300002580309585187781622828409597178108777139390116581539031480075178612263694223415723496488819027970713018804727306200340572426525169366423606602940707031170468891945444498862864201169124382526271254109203836546445159733734614419087623492769439295217493362352411628393516998827580361074315396441339238650697515881598863371537847065221548976721029184009291090162504991844189131742495567283858929005718502647926841933694884798824092687883739123886153691389974700136775318660402396774758952643641556428052913247089088741978197283369361321732710993587761391279002978299698094592038348244734101389102402974181514515830346162906571106506138784163120302382802382843862916878559191655004305239930681958212528281329867633756822390001349695479672518531581395071723315652100841525531049541308461977943153861953503843053014629849555576546574001856457602142404486993047007551358214904425694379291293105794780583638204324394153857320108287495675884366302353394529958013273840705584026246921472786422160170939383283795748513647206555124844708529336451741816767406950288523334171982632302333041044536267867436403070579134984955452286362031433437734631194076529036726806182485649405714885138626829847470353142147841026513416326825035396212329499558149083975825864331093675471557521932387979532062512641865052899928420552098272498019849924108147144119527360200764087906475462572320766383135911982773932878992217541055185755918313125810753466061287419407255700971185679640092591623583501853516223723433687560546063882858004681757578572766118581317045591232051379403109934782709643462316873816271277818266134170686446541795752502773408588401100796127424011007535561853493102450544869557400947320289508265226494529671013457727586779756973411462512820928943405413217652317330672262938871644571086125021313451053308940685249487990116881867532101391554785904031345191885153949397884989590851732592535369172236001401966109494408747146038238267884590428567427671777902493212023886948521463136352775263075374675780856809150574232471312500584761273867850057333794825385599759888259885720472871203534388152463400796452265165186542085891211406715289760445129353346804877248131619699245140680329792806674196732312175834399131849628164729707234490355188501072157356466947366069409889580290875635466549999890965418013372667187421535025638976551610565059249646494131845243625129834632659344508118616682562316922805734757823352338027158428424248129797930886586611251418342667846966165332089530561892167398784664992751865208499919734395470253380415927963957970899689657767706888631135925693126629441746299246648671536735852955636129921556932467032617318553251623299576856506279041216744542562941184186024138145359803971831038758553939533521196973205772436577718168550705557372723691973903548363636212085024345980907997725686121832573172381677507065409140891420526380528135106376252172034806379024459579846348365196427969883808010866695671895741216809732274897966982579262741072435565695713728932250877463237061917202244239710092113785230047205860211201751997330035429367649950872201644454517922749384597014012625962533451280973072515976199610547775311296650166399351190913919148503436317532794536167861930931939309085416608655214757159250602699760081815772088962572035815277124766006383213562277868525909601524569377798816784216514869720037055383233216868767969040833175887849131852826401369430529588098615664916099507760440340062056965545480610357727358504989128585885040437707702249729742412985067307574253644785820292271441823160282967429757406768078499911246706206680036687816631593363214454782015969082637116600495410151056486558018514809122452889756091910574352201025847114012959979730734061838412399548797726662352212741018112622032152902703058441419932631242888772233800848430189071689747465269112341999095582514777763273584469196675072700443774561840893581398663488557877605816589572016100454865911312227950340222921176752836195165519055434406637612524115003594206420714538297735101191318966041258070648911062955319321470913735217299578502947619678682191527176064152885642114883353759022056706578752235943405954992365912892115202547870242389103616676805685934512636089793594838404295705355320683271105960842147008174779683843933244790840525770085464390082692870491951194254646859839225026334445055925848647458016141023196440802447843843608423332310096664616314402789940042195714107688635005699965632639287459036311905349047369924516392513289945794521812498644949075237342001343233841419877249889831973717367681769709664733929369934683635089138152138114343246382811639898387597661027889333235117282742114090479847304102759534947139282964340674725870318250760550594741210474564457473456603711249827169817121065342331918748299593758479291503608002480109857113654855353305594688981363688230680249913886673248713591873731285660223242436649863985409152608196627970202865426967943046724586474378492622767506550453071551719649759487718138702337335883980103461294357464428524938348947786633996481235325450045380308929958300708727008431874795061821177242161807962170613459997503973537437359191711943389541947714126060201297615384144476401233433066031711909315224301920137398888381230252538889684098682175823421259507382806731274766533491151134061844642483863183905714069048582777689664513915693444426535901507587273015409811587598459424775577386356505073627330957763668033973905261325518725524894850452247552619447253241151838692219560359933299938328396825859857375353850948800418875607298100369096606850670045134809485779893344849648324137089442012501887653572097786178574376887484106088642305122573956125003006365279258518408698580712639594886782296044445466588964339777576981617749684555608919013827570931164896834902760244299588606575335666255365857612507425867168183464343250495014155697978405575272962283247116546131184092707092617322933919557472621284449717695709259259650258527651892375366709995811493885880087196566567457807349940036672207600511962787018844260218403947557534684160904917012216952839593960282770501413591299731066122728537641071700379877726479252303009056995400655985741982735197465886785012624887837284389840679478605194193844371017670269166200367794035288387811921076585141456371315356552497370274658545134751916662346489823714093811482805310759617912706448956655793900151231661885944980479991676482404435929375399483691678470617324494429945677476746417600677439624264747574716242605143525295668926544125157742407928709376706938070883531360041102083145441564320437327892494270501239657510880202086773213467376965449384847719439542776613406530233451379783020453515126491018635586249757614199746286263205388051788333157201975349445735266411431865082445224346480674582723833007265094172714947161548943510102902793309096483556532129141955492656683820392217763280228659406924432744597480192982247884029756030779189936612199221313958256577922896720538333747865315800901793318515387152398568958989437092436309252274219508121154208415594365065017764891598747621177645160955641968686010224298425597476640825739682584081952107455811493036723324681090065511934658175809436930019917938285741004217839547077470758929026083590149104930473499215351613440674011717742553057271745332031094293205876734170516702557005800594014266701757696092687379147413488154464540856297456874282781391719890416907955766493020588987524261456371584994139829659664668740923473055048233353030330235390823282988360711794280881395160518280628049161935613049290604612150022791473550004079934401021797698170208147001093142026991063371008921095643988780177299929804711557761646625696869164981923098601722857979023578154858456055857981991700469767543639099409669616825010309355996815727493330263356358304802405567630737872370651073589281951375798586846136864982212662335629989600431537999034499089578082259151285743550031461025178162775879586555606924203215713103856984561016761932089492627319639787454864523507791537478816660631948415349067473387518601210231209248710236807406508565818767704060780778790453505392672012049923613177098006339169459781484703122096848765762440662772347843419974710626048204760007435258812026344973369150536996661846967016500107176126839945351704726253796338441578706925876174535141245701591149814938031053029437791160746353895682766363957337857424019128677363515285089143540695658741620011364206027064731356057711486695463434385744617482622768852234300045855512790052031399421295238970825711757070351217009613207193023668258709225267636843443990617729195383700354578539211159072941795236331457269123608972539861266164423052937267950106758868622755635851618482020213042698831892732928917935242304161506996044961444995903491100857553040256655844178149856571609022719756220340002775671468917897083228426603430482038371733193737096988272441069570201083768655573468945505570444224148175365901130009151032819180727659507921009279015746071339050297297472887386512541003000066311428160043872055086387283936397405379561991824086012837686742761202235002420427313956909388524527345632224185887840286699312626608482931444049402382063764460363559986287728963780982045947127767903650517095912056049004563068690808540370815143013351972241653051917863414968662840793114889347354248976189471813808577475295242235607284036349498200824560648344367164205958507502370542620991046935654175879103361000631267247889025704159335062019396948594462042067794925560886380826055932914733454940894951610314784472580908103945044721629855599254895479957668839304276388365132444084841203155824866065983340242313854778079363301308678738978480708225519958986184477064076781515532681292838855197734678102405463003701283138669227961566694963013864785187037238701892974040685799646310625572565492408501313617882196166944300243984980909663096277682169006692180874647181692148257236773522081019598328110529905306696429833948816961164569369156523712356025184750871937310832907918139527235569081255464018828941248195961284712390491026256486802467479005062515146051125001892792038261801341230731605692909167464439412006236931448675304636999440388747861904712709478041983585359467780446139907024488332364549228682461785675152372168870886753800773727493820268082085920245205677268411459099484565193101249392194993793158462609600752209717655616512952768580479835849902020126638452817129274621656096584578154569860182541424990441449296490630888135011122917143329432672579151249646685625950838620277958928499869779689064285876765130709906185471350147894106110167541450927454920528599565913293111643563381617373062901250428879902186563174316189422726132325930652732557358354925811113354259283075584873390041114364878442793301646074136488940208560130229568634555072136048700378756587745640078976303351143632912148509149302436382145528324733267895641115865586291373069045246472955625873310264354199562635061730036501519940319995909842140282037769355698745276761378260781437366797443451638272579568223839243974500755193973312652217711175424391990746341278092506198189285027966054317934847667159324850388171765252222943958869111013279787138169928175007625864438757870796672353053202624585615092642368603590507784743477042806600668148984021831212873987256884777801124104564643540969665283692120896125420730011065041276293763729750159594213745242195270088888073465477108158118476584274725186915352707785369440143464815556502900239280109958782008160560963739100077063787083717350648013686001403694137514815956831762561557599131692099869063473234147079387806249079168644793067893376370974328518400636927274702700590446543915345254141765686578841303209432520159802675265298132283888043711511480046171302027321900767965475197083477945475333360344275889311959575266488836877815740879862309760792375995136369493752253951461866158425815000074131815255039098102496580696224208962598427646141371640400676070716121975381415576538853903227644164218678186866942377037097128627583949819976246138471026634288234681804381639717899908857560708619947793161115053646872188911568978426650798322708324119282377581416446024377363859958286131708791110968207012998114164547218623406928198040488327688485452531219183602273038438713821813349011375246880572501484695558215450527169589158278311763225331828143018042618255695370474884865446092941914170436557455676878363521710430193482947558755007489161427311696009353225737512342778601854505959612511084869139347479345598300227220427297982156354088012950243993138046929568248946851363242601383420178194991342382201362891384541510530226481082051905449262435925289143186474620367732451082970658945311561701938305342587499340227553609684006131173042695117834239038536880225418207765752105522277070777823774530691254656411614840280324940257603616971889266844525739152306823989447232107140749302777033459316731563641864262515159720874279091072211151024268879156325935996445936460347829499353276404777551686614979304830968736836506701382515650137348337192094313677110697862439164656075312211742186540697334015087348879361291088066793013345688862219710530174283857351381350076066831662302854439434748026072781186046992155620049780799927327185438170252923234409976603340540956864148476426327081972318626446895597138008887551779837837016401509232965716501796410071941605607901546363014551597330842844990188252852508906301217859636444544990880946847357469906478918130882931404793299088291789341764695485473510503491801239990902509643265514984619561622189176812514560482869915576849897442434615783927209807279574654706808342569595956956078881389765439055904185495577339659641283832081682852832557494552193564011790721380631173969435100728954260308058548416730879562025173042576530236676937055760771627767184004692924433061017830218251563111768066790347405941547217265156311866125603351099079287170297748481052347114214312971745295931793142250233976629158629183383513477877510149879866876399358299924301691131697369860503708828476256361798184791469773685733042797482635594321447029891880188093478313315065037893921157867506926973180140735830818577087194525787595928957982045035527333345905722795099848991258673630371908530929525151821234508313383773185028040198278419010166910026846218090333005609349703974527654677992716229697838033241788680458238173752606920564296356547131863737410333350874816449634079172408628999398876229977357194304461308882182329266788348448405779669396852915004805133818135569543819797718169926781154672493530638572003553286399240044555191009722309838265217190862697841739730026082985210217957831536574204658007738768547389900269287014514279746777514487427862722074870191871734879422536928269882027092135612601397167023638173465423524411324264572311330384202051805210732975566887618935397249125386089025738803641331971480112054447332454598081244458227396173095341665378156977924695627877169404041385518661855804257264365224374837060033606579224132994682732523564876686948125304775139946323948121338569924247619749212666222202661606690433393148871232096083634972893836216797699663431668576119741066226207045269395066997588017244882457709601891801412514731904453427982200455816324499493242466079965044160440151633021395540608829068851066572937803524263115339425534614533558489605110686503969838960821472067078176926980707984687267022579686277456768480855962037659286249040098724392712151290398647878033894294119425491736443601374424701626597174035322529582954818952776478313145225248673870755668621084092329652640743084084176928941075466976749690236689806189412811042479414076228104164374609285998602750568390601045288172624878917620071049459413440504577465236055451498961734318981627090828663737897162784158328344608496041290120977430542651097620734638115058722415684026329421864795779824883473801044499829293263733528117848696246005470323336295703886724961122123460183529226589138002437167038562708546525792358756670794528605388454801318896718945041636526366912251025089791813447748310195668310985754037839195668767705675606505032112165871629691315393857435519068226169775153425244758097035492773353884451873195146724930890993591455169993114255758271403235593510388956009915891437912342933950228942414713947122066370067778970416542796114189808752366989788535835654730615960747646431371657864184251252312688887016776759189643459797817323491300032047711746128965183865766892989490933482496819091288447632906474086012735650755212489237514343909531608798187935706783635622778413911469079206586169168232178420422988312283047880727488628018426726477272401922965402284757197003319012168061844399718686566510263126508387964656333303821512358232471111059309874080018803438259099590363966298334239719697124810803170321590581324383163081673672150656583017170374016136935746952858229617376219506157889750630582608480229835439041998038090800904218347843247614149043510128382229407314366459220460927443391256072614569001077656204823777244792720233334028337843839780342144876847194676987335377731614024236238592082153705851244800706778391510479561106606150521063876119315100884958065069820133991412956813968772916436456258960168452592324531796828935264358636377544388912268754132391838476903928364959336701897665952307630668677226060015801036894403045611249205674950128396608955025376845784046276074307774348602491149844038362199004768510719421820500271132686962106190229059573083421417372450101233922993614539027617906489018943836766727523538937309902548379096998162355177468235737693523461170776968502145724557688312891216993207145224508759552525475509388616696975096306771852570333175335016868375289025084084726425495554665251600791845310497496614257016335863898670496595650409760642690244386234389471077424111995625721594586586992588230956529903367939295749894552493230573714631062033381518072305916160565300159036570170317047243834954438199924917091999421139445083814856854064582726449431013471131634718246113089247510329245655590941781354884657820835446070465212946094694673965903741381081113706891610680163061261194134912686353600709466349000504169124757040944209747772427096996958426237101488788313628433404139782717622167956656509254306604045250329678328379539995318535271423967590694817143702636396857758341748918158290031148136450371254919911209336316319483393598161433833049305453975534133426296627208842914125088231445793734064406613625560648369794031154300416444278889670261652312068675028211714892928980686911023110296431159850167757777901250176555121744814636407769162925199805006113020775336364140265056063922303411609459021443563016528312813661154468540069310628836098241843334285781898038842623952899692837527716151524744677560664384285634838403986242365342581468227263969243130360019369693098462140813065170872812912726599587840459422597393247645671549384869834543707933604956080433593202661589489503673035933852801587700634295644965056467854911838234736485054766216910745809590520172266107680889200769292924609614688656878939510709429753247738321435764023831803719775214438429975939993463788542702238560705304784245031989439667637429019580791034345971012483492245142538638175772350427817339491085901409122253444200425206823885941688144274895322410934261208699244634062879075260623324311401369450850041868581698833600882718587530253151112697042335214392995758668795125998410391388602981081092248257628348996317979111819415385254539803311670740548796212843562968164292684921061852243574596492512244650069806050126965295875894298443499528645475270522474425164631187691549012461466268750582708460030291142182062343158291800750646265915388824020307276306477987738059169182582227733952235306005192386115773594614344603922122543960999969554419961486357111328739354586750543433737276553877379106512632839412209992945051568586321579790940270370326040465211038420178798240259234215343949811292000826594554877082366114291080859361530980541776854067018033017576270426378331608341608729826501136097706797769221004092704873469004569178624659062873546943729052405508668515288239011331244556252060327904551714619322747402410656901265176601441461621292031930273450235019938236949342301128110694027107417090899487649867757767562778450183136192689362846528413417748783122663919797603637873188232404739806878810856330514472126256971283928363912851881413135441889234727046225664578862360162296867017117416217538903523601190054894740997946999139253595401259520949741442605917047652398500439769924803563552612466377910656781454543673241260100804443709877212362684245958511828218596967502040269071150399248682285760028253271885624994310573638445743937639200100895079579394413870278864157362174460325375000064513463257841054862763504876187894779162011841595310466090013769468209078088653610043424363610099324437331968669160592733869954013793075383712169773657782481029065432681683928825182202309376349246253651324492524442591498369438812784682681454552867661068632177770545041750003571062827983000339066819743364678371368183632506748692596780806846549749495121815842977866325427792593986819346311420371181689196322355538100585505223809062419383205373830333682198712171000306237936558363203188777162935793474218935992085288549722727402596941599431706204004668720403256977148925160028426661297829645397926592150472935342496727203150195650093060885026772694771957201003676945581272675988583851523629953763691156163802009875694052014244829260042342917500017270621686238827053552825865336609906850372514504391136169860027353807211616429181038347433285399130531321359041649632499581365379610564380142029784314006168558023758589221458483119824902794368972875169153587671562356851585161183932231602771027892114464003977478429084843662066233084321673477998425826948363851978333802409662542538475548791801282375573823058198892862679618987504952477004159106446444156186645446578449880881681196659203203347109250563341905374394330327679431432700952534195162764141717155543874867426451703564420595724961146541590760730200357473665643370097365049926087893719778395968041663400743139683150413370208973582336889540517680543360861092124926129453286567830160667744843113527375142709578362781034099536700870845793720587341140312589863716983396309547170210257837640270480381792403614478713239375021739054107724279238560200956191088399867414589099498644083563472359468309455342182088387687548519604660858862016507094282281988452298444987262858625683833524550626887931165862950897768904689259454127218354373074175629473543594366113983890440864137508081447674413021820956009319957975677089741727858846631470939176464827429265238971355385883937650317431900705564929617262479304873231982095515432683836309408342612488628177811316670568134430256372377035407140020226156944850500330971252480561579962519815754060130483381985968603860101896397244977875391371628409385338524759947098339046914599978634456765555706930915404117089326863859753947583339775715335905897293569666582919687897288666306800754790916460969421761384316783910482369268739067880278767661081770228767272459697799144092943108214253125750471549551341181327583390798448577643125022311238187191049612649002491046632157830795254400640036573379126522070581331459280098000865306473064839672639685569210012944188822257445048371944657876088859282161243223360215411611728250313703874030421636188623702353883670945736854731352060858551310176380135256983042000909456131976992242467053553926909726642087201280708681404494593314722747083733224777705201660796281097517242563268030794500249087792038425568625098903353582389840391120389849670879814513900822126569861410902197287392030842412526467483436769070906910928930662518596040950972686938853776282373996619596355431792453008440093362768415565904656881094388958050188906839708806333108172459183970005555361279905773032220942080657374035737326541821456939769943761678404183241926412119347463279092204342523726642113023847963081128502488986663504665739841520609031693250742418873590492893535827509747672484579167271222307213017777826018945989228347056493920739975588169064651139941820279734829995467160200370758820965462156115044264779034958690538031919104736446658327209391807056542084297836944591351518280647579033576801929073691205470249587921320615272703370729015934763531992140167317437997595286979395738430388656323590634731051320430745059606878884930099251302279306945451138119224998623302339809912976089671147101535133877245552751419307782567767017794272207122429545812714915134499373444242520325803915999041066325558123293397546416392925819698378467944057698959043405321743112327124492114243641831872931939673571595770309690141987063474135800740942351164696256904786600983283995676778619609088872222715777681675756008612583386432574459126308545241086171167630624423394540909642042233923295957379510734443416573583232166145084382666133821272635135794968677619040173545800745045132909402597609236540684528026637019144396939882589217757841105609087809349433606995897248985604546892904128584059662654374624236933252624980814972543363733572093987258932388048135901875270163851853909522560217199870134487572732359058798430145472916037363639496067027822411830938035359270444461401042924220004927370117966564678214831090728162601428812147185886681160710720674360958717132342134285659570617444055638391247079959895885104776340809184495220576969019090359898902101502961816226674026803440738925239797641058233610450314293221990172801204031322425045144082275743886043437455427939556064394164269672248237470325398037863897599751353281108989843917741402417724973409632393978597870110957104811999356856552815742098879845470064218881952777104688049053690019995942842844214309361503123880717378293377067972462553136094133441351989052334183197817485668781269165632537623139902245191646559070718821362955129918799861621367914336977677850110960562540481460498303890274212352766977670353576937764907297621598151758428432123069855431122989311856964010016496900824853511212448461388995395936416283624405776956615875129538998345879281341514748166076905874491330463488711274085320024317174639179744795465728485100558965828365311059278653285248613724943482474759004126393865501067819793212670947220004450111223481161583051846816306051056386980596059041202674667053173865021349322065837916380993790089294419103878075788385120397625984054715296097762110463751347490227456126033501072265601763539046356179609914568168785804569318564383822072560178018319991898665091410479347344601558873634264640851412983838686303368794153472400997085712425480311741754824772464341431567016670198196706109084651726750543412543261717498154519777608290091882859752854340827632166617792409956344764798719782838424619209600910644529247907338778538534065956859632707276318703145382315656490750392985047141318330346645364188885289125170078020061610109243212526009512553971858622459826229838417028698778345527036856970283200970874538905057441299149006608532570169327664474366379384365690417174916328726494347729929479114889968751131543708040543389694515561879279189690271429142196608800406571206321812578629238907910134581404663879308356867259454877954522656162468121053089654056126769523710896308665811606463840305394934139104525274983319837707538823266578279971976363525437854564881857013963717220321286543830014941494910363284199054826632214298110564376268865067201356980546856023251714459106325833268890581428066807418049751390245800975089031537556412882366509902232650767478357875330720701271315770402997880730085807229222814892052628620145211706210961531019376533127481695032876551499624373734324139452051017130607190789664639400210086241693043446660497389987799646873157876134927917400050261965796933102676266930817458081301165140352834201095556976078915134865263983848553643387507467194023470455196735600179322459612554797959732620871353704775385649698328567115006103547870587214944130215557909589646217295005078059820316526224784230310935723397693547653479184387784013909941963760498355828192522046505277493569945631537915534527368536640199259297950294566416648618090946880363473186822512942013038724058387497875426948276646755643304877331811861751205597729721649941062645555365575923808878545190677572611549387618427607806006925794578852621126896758016916504854594278976382085023642448727187031211309564521224059581607186015297617845024661593514145085687973136353826508622064430262345415412910612306126002606743290352798677768018862957995032590511131219008872426236446559040498150192601777808248090243560502368557541640157288836122351093425766555183815716269450215329260772372909756254499176392306217044298301569495518697073214169986877384508438489509462036309739673252870237406435755938408551887473094394121109626994716631638630999933943669748895326601894944040009633359727695034055183572924882319754406134331410693116482668273102598710910758959385579000466025267326992964439963032370830516342023777351531905910287991955727126274001289468590827166692344548895802859594247051877883591559594303700420683872543112097072307953584040018693698880664813373091653377784808424829992074217514836182192534626758975145962571277973825203000806018689493314969320331493186201983968826709941170164251966075759390372443952239747385638302440900692941720268174456984073360707850709092267810845540365554804408905098910346284787085956208065261205408608663477582922816246166300264496619607864552303643808439475589512465104990782427090145565983464305141696911957860386604668744459608405144988170136700421911759808479925967509941931581231182271432945503044397658949792302450150545454657637477627749093384565141870409146204565980430132131466057036905517248449295200302867762481619580580717523749063488174057090287254972329870228703674081326463215256563363160849107127187420276397849603634152074780921002975000901304082927281317503693705224445136596799859187318347842862078722829241649746135120048343520883942784478592012672671446516034283887302419802589950373779373459553689523684010265926096376292094741823268657078043457028389946380803447510256043123143201111869700580683563613582905433874051878144361351874511878346148289183168260548182097713003786690006708308584220071247985420947727440644168494612104636222276321079625478837084584573543101669119778275437250970296316742733149704560273039417616369630379410477808952177258875787779215765430814166539194572683113484350675350606827887594370983863758764217573558015726507388623438742494615692028485872942573280082735298021402745205471813374527164890059368073764812199179540392739906512473224158776097765862215725926682732669191067116573357268292975426183046213439885179080007525165234078885788493613225385859897589838306180416282639767643069752908344480013955208589303848985225641964923455750491572367586856939066869188841796732158679753676559599504237633992661621962186608689876555791362114420686110328498047855383224439230690405147042468517282631340827964014410637600384044942377817809916086914909257626787427628228419099169539418003957510074760679166486284412573254059200405741455369800964801001258292633207533934440968344310296316878805409198825368719371395251112082253193908867110056855326934361649657622825437713172021427110303291429011269226452476675263439773235027391032938042428050730185636735419466983714886242616145533939815658316233915887108907346638419223665184471768689144699420444235798266197058241196536619101379180360817821217844093328417338060958225862312800520111706855197615029158845557049991676352757309803386676907861162587222583750817559575720998024298018921403885086816002113997640656577893601452182622996319348322307947493480672270161362838656165483586100079651507818498543867449419169851928971037310989613932199256238573182028819040623238540609640021380730128156462525316931900111430876921624588569740787614803976817446911194322001270601339999406686348009951315540355401495444530990843094348533270822469870562805092150302360274506087825267399935762974622938763895358060702584395261374794892655046987931850869700213763318654801777703183308152169844480726916890637237656235477831377601565648044525904544677515644435802970094361750198861839676199973827026083833060940157051976524070687890412848640705630437161095977662620805126079991972705002600130380503906762526651997786946474709333998743584008516623126398498427534711656309860712646629163620663986168448664763711019679236278664204534344472891481949920597111857398539296295458582827830940636267825873846119956042582489030595249430588636358669462802973450270168647533633818956361908990410872632376310942845026660900331627773538118778708134552758449190790445145797671952891965120708497090042473906521048473057245276558122992669519027768187890175237253872054244382697775377480601312065107566321088559757490010650401541842690499603552214924328324632871449312328437478453785590291932235276097094279903238381948900203267940104359078402670200394922767586749937323313716336687824604908412928367305624295143982162906660512931175463394988384835640268890845472130662833278162059903856745810488571989751844052338174870668079450550352996259019780560982434507876551836422843167335464095515486997729374125370130450375450536672808769272594216772902158679211721274115124923274872778157894451662973869731519783565060094626327828655382740370278689096415341838658370397386057652996083714674447288134209837613125494188057293224317887225170857281920682588303334155728244685335180375192929802871360339475803026521491248213775323507763122423130119012258310415452888008950175950616599756215728055208430072544678525867292599435940224510748123859580155545375665801525119967953116519637541348928786222662623729808155151303647896385984404174173427503325732938686259453623065414415632254106538327338522608485696703641460282273964140996055017749787567127558788125145743883796586576877774507955677800050937285130661903134430842015040617721163332923711161520503507179732828624697763967634881579058432365506267076605599566164212698438785985232617267374820383546691975330075096150466905790576978368069328728717114395584085981339619011331668123702535037466194312722090188132330674581005382031113781310561557004946378171765528388306456895467071869491023261635443269087847260741157993539036934525392486899286973601011580866320886613057832783475582092563170078276102646966231724496757476178412027423015222852086772527626742719519850230189768734117541365964637192939691044718982569597631415765784386976356713245086534713969837086959694126383631382022337028029325705363710945373896661654090257402189124841515873684628031802763029201919780245890715552758344952969719197607129828741780042023812270339945990002866082785262268521456973916936584037523847852585767106884525809688596268280869679258989845047462800527694820421357302367525959188456964102970227079813516856907889563826298054946081758085018645039951777866352420139764139218807838527425710395085957561019691676187943911995126491566560637156243463436185234162369164813868555876149383327337366649870261707952622611617407971787627854640927795946011116067148028779953389794556330902202026800264026424436513774952805139273829751063898834507718927616303716049000611355016737003381022993382638500991151932619741897760011650123855701819010721549490121179757216692427480990108425301184493682659206132649316628037033220157629332426497084064582625223912004311629427601796448412743163508059519663641638414948345879542580533987260790746304710867443437282326033082399857282178872424209228309870100001951772906527219721482038697289554605805673881099952751033509871775905334947639647721135387859966873880730591063679090063097906225134341493101118771021966073456507239116544138309167790829804966519087234394826200341102932969440836879730930241863706348045118515131579173653725628048655560760643639130144361691654306243758521924647510048027626222975839795396734227292898809604807935333686499519277405162931329810929738332255703674032120010187375570809399179053424450408062166543301004452891788531302422143745639769622486190389403935438500124443216350796291532875813904044525189850282290229543834029259368701449412168400728234745210673335716695440092510530220568760727347681099976305485310696130388291996541926532269989282714154120611551710803541498998053767913614972370433866805306005744831970785087850967778504787962497200562132594678892183682965857118125507008916511537097981957035240279745521882368008302100315836344095484017136416999641384064715247438044650287739618565995536692288818624112325242415857550140074072204838553294372063331005597257745211773952828535830877215564139256545418180536194102093991752074466146566792200822426716620827080838535583821441391748172638878110900982322518912262081314137241223332583323510324773321109131759583678635891985645030892049112532062281918457838808380823461962456408700032174783643471636722300039403406508085360967264832871805022588485492596580238536703148805134752939059368187069944548558721162758101500690554598739182447316551602771668940929868973980922211401426315635409585155644643056616189732379970342399938234095235451089063991374994917691652027214722806444506679816905371202463080550855851414515226546352902925516861221042030280849994362915821041244459280607732428407054144209618965261806930039358481088594776196699457057534720727584561655427275929815865727164610302316375001076487673097278684812454896658427959963027544494595721207669518914749663939143021474702231259867711582165231825285824338497927346390788640085386639458807590478753357407164788283791754785527587581840463166327657725892635217452087308631903567863895416919998089671498938799493588620962333897846574133514246684059395724874702285362245441559532935789546687648596958067124249746846042984719012351322318718215652374964798406597153304190292299213134520288085487076711683884926083175758376564268614353417476019514027079458171510341365128606963719708946449180714821623574940475364756655197917338395126058045445341588979498938091684004350236230470818333208034076711555684700935210985151876723952404786518082869339711870002170548389119217775517529358227741987217449114676161786974876319216943583145472094788675578840853578419294520093697164699707379607161094021516380927251717706984656377940908832579846254517855913342154376152756313671014153617354010686081415047590696682240483248987716373640568027748980511787659670108945622231364952027127104427496395816620676634583231153092587182582187260959462860332477487457486104116027991838538285756303916232966992023965739837509509869898117448266145457533972235956540252828959591150824886542298798303096728248290933352729582575285840156867337702684297546015753052969027409742912283897264459515238146254669507522160590046738947357489107893093689695534825014569367595037753535892371173120755369148071010078973922998246027542222786926143586366939709995224419996694003952144458298516140374917449256753518941538698433261242207186571361654832003957591256080339474175866969722934997353439819798917829527176168747276951935493477165162275657974384841215842039167896470041653250703500878547944380939273581065614905906359778631557717176147113701814441868909055226421967229696883379921043814820609294839537544468708619525847243870954468460807602394081299098756207483625188725006786304853967519511961479431291155461004682802570101139622517049162223160193319712797732026147612393258639481396623893690396839264210149019413535383427015013445628646253909206365782715451224015433751509720504404244748546744071657098471012241914316974001796330339105455419167047525609202013665187815112883677120007028514582232352398075630244284523823123617291516546744249982542868216002743517760434602429584471838878153904126513125447314180950002555025974030811218949881986701701998067360529312403063805792783279464618273970470513124862520158575322893188616267239870334356524761147224358794442570326073243784543732232659883335787312054611298599391164722192121353685946508750141001106346854760200565880370922459837929064590116786419848212966245679958099112818985511032157048156722964974319000541845735910046519679044220712115032955723815961896479149534760806384810618333733134236447002629872273640016987686949126856525950046197518594575749235296051181321400493447347056073531887219407806733048346579644556277956465255510596106669498805843686202468963343499034238941734557688851324113678464379224906094637915298763794985007063741306579730273529791899280699179862985599242031761437115682096030546961499575868323093227880409240550972642282112703307308774367976152031024883186696743230648034265112877493809725472291047537505910651010891105310078781548510847880579475481583702577815166835251456508232404033454543891223169698869422841205891350428081192165210892363229686839058491401827380325865687854223271197175245782736908674572822913576644580875241891007642993786712271860776387901516807983248500329343719700982620922346965741439136489818845535962956821862608871723132628506058718810698327399655123974753996222506096637220570283870063780511327992455542831139925715244276880251182678304388409892377456821403500936691390624983406248298355878044255750384368240536301902443187622358749368612838416808772782261319190543429051435969849466789691064977999910182905427970468372288648169547188505942024965138967651591661579362218338750285298164525272153951052431800901849893938024058803134397762217544122398429432780665498040662665661480371223317583926719657320087317938732574202909034721760883923272530840223721428354864319004294565882876963263062070512727819629926686449147732440522251797270569960291917848294560379371274254311086802484004749785756065607936311017867325722737034102420077715073775907396925742611115036103730432127240580642723486804216544212168478475280522660897682084459527616751013209750118313794774435815584043312726420384943693853531391505665472698721202011918153090334172734203021861738184043013956187909284318245050485413144509347912491947273728055095654356033316490268335300377142119555429225771937789254668075635057878071818415718079568473983533972740416731989979104964012552701095919848870022777607621804384568464827704695937587485524395528481880373110569883125685686181799367826721832568992922554042976688179009558977497351208875392990548977039555555728956048072917842386925680345605359377576798701065754492596890944466126067690554044223655809197970522506337143034330138127699432797117812363580926908916258486878026650111009676698569687013093351708757149976936101962380852236266816951504221355075013508607540171207193681906674776111961246467655927661431162703356030500842841292706265515897690691559376837027568788088134058542364639738364106479588223687221619660289947953362920941369641626288191095319561403280852461889481521845942883600668976900487069572314218426355861999796140282946301945138836151175831131803939705143271333342338414336250556972927590660717350355262508589600834395788804464045114788815798877260465704801368681768088643085698873375695689262226645342244357060229859668107729642278255455717371788146806577592743090352059266522628142490324413261338907073660377980002444261198845140837367507817212026373610626046720894877551734557634324086701698781024740809187641875534387289740515877867385138243427670698504893563849486929475043379259746760415141990972024378045596361303465045848502403009836970391157679649732282663352964483114396982134198926294706062588363311490209477423501485309587224474538402996709245127145715028614746469285902276928379227440202259504257434211735427363843542748456733754374724860851068596739351311410623786219059514607004440114035225984697577505929976632759189616042749157046120372130550551631452781417266711113314043172824180103593456646942533333886521823865270960797170088857875934883970127336962000338065423802084859564679575504666895669866013325427040236646782222216271340181176428385752754853016216645394629335965723736301917517670426300950770150102679212607628298207257294384403183818031896500392714551544540244811368382421201109704983472093362310358021402952006564603573453543302748682409417749267821518440700167733996549344491914456360256603301861929784513713517310501330022099815298402728995100177908316910775316571600389261665461246866476947511866950020338806465236075292275464643578431713808377589010731275145622660664661042094305791096499872745842155273537110058153362201146610451953817486066441993510723063112968030900599059417337206438255026456404535387552405690109737064506776464606359128903316970919706636896621546133094962796196854242743343867638714288673558395599513722685050233753222836040075563961298442784508685049609855668944527034881771083687360701678534068282828439731012427897730081582415951110038637074725238681126921885059818682088236605792015908941811105336100549770814101313918363086688699651994488301612697582962266458896937543374987963402111792629866054811857806677628185285042731024408952943260335254489369000223661326773241317639190338801530706701902326244054854562149142579905681082202269643659057508100975867894693087632859808493744982534011587610487489012612197323561182446094027831620195577075785464539645927169962297246194159700068922636924096952376964540998437329392398833283170913443510847326013209815076429530961030372471734573637120012318240779130431669969795788678501708405051242910024440824860074707926573073954108392052392373243283417729871620245727287772599274712556727519362689803941738237302834527065600680645235813612552852954366555439702509663113893751701641789596215960221941928158188782751436544802457232001130304115124499716272148224928111703799655111450112436891445484541939869972026732046112133702210932492569082324991231115197584983647524757732464877208694628251619376894277394805264590122882287829984826424662733253172167540257651404118884816271407370114658707357222600370732507719931277427938810754295169675994473107431214541018122990252826987702584126439336505847797283145357171167008078287602951027272636710057526939204799485252462988509090090446016614941046476989592975603412382785710683735722707904463811728990877216726571065320224680030493161847136581321658638611287463335318639956048866627723718279739927774497275940596906935616752734470305979296865287075355512473537596805551876393845166064026313046422471562910392116703630249520585599751993618241989708034994745257033400663581493465123631569502002252185636497974062435190701339428409606031122413887928207039222202411382641164295634297383487575250972876998770468737071881656142814524185152865693935560988157352872371255299309819908944101861502123806884187151541191414234753254220373937803638445875330539477875335820347585610029750349717632820377417375641899394690727624900214212536707462333165755538970626057743821484218795686122617517919082606844846607084242228515099585980132249592928776326529002714811989399250618439760883268922797831435060599891722724091587293076528618545274969098911640239386509329420816849623862402982986459459191693361065998503016839951998552751633414633060063624675192850245031491225410446409516788630267843802026614445405804507663116120372759977344111241491159926150368666006703376135222476924372245554612998246749785292339286102389302362345269254187716095823619318048316584900177830183657338723744522872288026038276286482966394935186140294547774026976675220287812191857516222951841567455614755064556689484087426840919573068099758147687087261635932915511073311032497487051785795820107542664436565319826285602430617456621799171665367053775126597912097346689490110855058789438434843941165707338656740154521400076718000734005790057417111342876555166812567739189122896468768891432250017186713165560229909747478723309573664987206822915764815227449193876707355237595046640116270812056054549839007332191094484175109766874393538507140319619370744985649346888163456491734923152669411749492705299599191258921764828130124373373829210940498778101623929510320979179758167858471165795505948293340156282486929706564127958477680568108814071498391229625218165922716420078030715160535354440151923111412515720315336746318395463632679409660030680359220440334617150305626650314133807015412942984558117219884381673477109389395450977976011265334478704297669252524533893912751895912687827678260301668320811510537630369212554440908230145832241936456891890061303397422429731264567941743507476542651701389881786164927971077265693598972555006627482205608199764968920521325559077740033062196782485484602298306313585116024807723224578126735078501227218893309516373599695771425653368151022261314858572848898885392628061614095373435170240425252480543083366358304086852775752903382469737825946666047975000495971331869834050238693358251171750762104981575801877068027374732145959591508126209019338114519995123927085161762241542891820384355160884488097734880454136978596175403859106447016064075515427768005662039421538574879950515044987727134842403911096725208519291706551644790043880988998083131528904978586388258688348476297920372606880696063329011814014658936269103140840830640998028057840869321351516108851153930011352609258804669412589750600547886884092831097316107141495370855763476563050152457390823553456676591781295161309298227298484409804324921318921597942861130618443320099292597242504516870712800756441072215285756816185954219210323563674502422005009729037197749558799120401843316734374700070590468554172814596536570545845321286051647303934730818024473232528709130320169401207642720995365619917858644844452805462958102469017373913210034028628919772277851655940858142050372763528025790725659662973258064289030898358170221606570814749441597361172945256922320254962534440976498230741144232827834289048136038846434280292729640685955925157655960217090816055688688129246720118975525796429156980504987631390329831537362619817052170300514693924310197753792917636750397553361018040521976889454233971957783078138890316752299909422478791161424114921400506490932498578338618598896504383528272847964743170309324346723160815338457683019553628622014546184003886255706280449155522358030912551480207924801205950217176999340201537997791973833527351112575586502477303313685183986807924589517172350232326897322273483819411685754692946022784352656352393214077523115695582960076342699370113139016469854556266262677733528919712476335549588353664230236583536288011205340842368335275846227125458298128793469793248843590868382337611832549111041802251751698990602678108707843560521384739207188930618043521864597286365100074708778703677326983576051660062926567956588829595460010627241230297961658743881498121641434238348764427978239263669687486653280023284232850041018127056159711015730878999465261267774758465394016705747357979999667961251340977167169096604055073107657335585536969759637162473290679853416579004903672570787308571132803379406807258573415364376411670803086957888789918732699415023817620003732557508977137658624981972453782194081855705084081548978179914375500486299183924024928532736417837856871779317787955960497982905030790502103262607872446328351057275009465933201997162605574491448498839133245370751837282760779236294404889850336268467803473588666835470728463478566404633874256080018098250606484447201737793371982589191692677491434513012487169743699173921960641641154313229306411795800586399690804887278139249682818357439583544487615831141816124930234610618107745693592610215405745714206238578079263419095295875300206485177589561037756740134047983349140233675078600535994390852924259777859572385820754146044670022805138577684574098921510184941929067851464327513818553157881359854215092131536027000240505619153821212595246000991556549123940970324626949219027053118226157135008448631843619456504892667851887697337072186376196609015811611135180601404595244036135239872345762427965516645196765883079548497704563637593739772554067526801266072437648428281900072756283027676357641739573060636611491585875128944191663107397905083724794413196624559891929472418925706864887820872089088247361121395901146507951327246249254453931864215076672785118056499241519476611303932867463891384428363349730065201422943186628089640745380433904462760243773233647600030660199204855470416281028784106559098262556571383412353768317722485318776922908463891551875410883803444675943288822231793526087087448453200627736541541528859999852209796115418732329441150260768350356241725134872276722553909348624026856821298333503881749526933779951744366101490678189810915912299295146829366523376286020914910861787769526510280114350980646744718410218815531248503125800565455668615977281867883679138512132266082946084288904916598708450022296097492036916855192216984593133956450605770003162018344313551206237668825681268627132717881773700861313930828273259855594090864467402084490444460934226830630790475276962295370920028746668581357007406722800556891514155521930247501911295010841150220526449396216634946300056257385904186875075572804294580034302281440040918684911027857271171160082592428387176731692095513455273401723271121966703177697583307280086583815851608330997180880006238576759373318118085392261095948128727042368276532823908116909466659067523845256258052358469423313293909909991203531234660998184134925477280480843655356615749880792693614844865888865358362501528634862508251550646983831683405040182475199867415885457366443296921251123357812748290530069875123170158580635554555510744266337430947384317244101746507423299373642455009846093561751951947007606174836482607857267866367178549314228396826082358703245418385845103198239749809484939337140347714960659034460816194657533793051244561843917960870241846821677123889256753964046826855045526198562198567162779550349143373818506474949129720321600826772242335804888502235521256006523150589513613833940287897019608778391641116536891293045580568787517797927257361715258626739641892285876465614826234655869435712620755007788124219237491763059202125691933505764675771018343950004437061063577941590580169789556529150428213289644558914157888356078215138210923825887061598743575562720485115090015044343865735089243095517429996524080004474536823877035866833834568375954784547246001442755300970403546727098629814868176382772206985275867442562557543328084819846897191271587344625614299930614942123099416961103299748842220818952790777878935624899657060240491982765821850232236118938312484315267102165853934160968553757658489695700904068565556357062044015441106179494303278083989225878111701197820664936028023900488744229613979723329311044699041135209327379304747852783169349737532207206832582578115364307654064619384457994562357831106785558844538842730848288712924857461017089787385729382107735655539245828339646319346566201043361191774071174210566913072814556582124730278023511179999818921929240072527534644796674407244576546264905660363233024286726344589023517623564762755291730488146295508046004820099788733020179863035038670884226988066838422552116901713253080430393893693019509803143552246436395948349440035401530174552677831183643612477644531299331972702627614742702257955930573419840118154093848711121456393805017618265647980304513924322701700787243758648813399692575998217070580106731013180647943717066586659750731740927904987930584926088238343556758560568350524365422340376234549951035829009082208646357898253177782599911186216108771192339308428830624256619714500753379909339475780607380912406739237325135449903427541156752468278998483466302388559233427744438075128704741379038930564847389179242517529239366214984232509123235373100326930164883207967606935147239359785666245856259848674311908931297649532496260818995240247425516245050304422429233684034583407462374798931570990288486586141986434435219993808144131362610142820785609136511559904829815373902510791783041248644448907260280093903703020527504086664282410689802130386230053506833316045520807333084573950612119134356214441105609722264520956359874165481299485704450295351579475383310466333624314729809448958517263274135737605989788782487587897741345683203207487059136640189143016385902585904393851524317051317012842636290718347136716408701128087106914002239219850309437065078511408201593928661651407381763709039755757342602176818830507756482015406652527541171159574079173453361082431389470732434612052974197690301427800305673797215642894071427771655264637184960141602000441721799338534130801557916795060800536464331242665614406502087580613242148148467030971817119010502688758827935040787243457691655434228038408933807347722504828550214204806921481259785607666041758256262270031332400961552926801423159996283609962423942297856331747000654793008027663625970681785567607444027803922018429349240222163783533255486514156605803638818132172427569525768021178162119396957856845746816122971514763238160504649922993271069167484447288901629737941202837659236090274609299690343643160276718862065176691118929319215568796593004963349988589431368304829456312450330708261231193615839039800263377513525930796773202329475591270409385176159970032874125597949557284669223618770056936979301124840698333604655130976826129551298079404811047996750347526605218879378210983719822806280340436049560892924766944445468133235913178229840559017578417036883440663257776758350594613572154636389956670020848036766173705973865667353087347117599512692745786340844498892686089417361501233189020004892443615973593546430789173452461756291227227791998462820937513910682279679948982205859292315780489698131514418032205132553967247879547344524353162998525370319877906362816440792320124920178446306833242471366716570795926174643139975396848506930585440633801819177040085032460551001241888511832122959134104027935530477596029975306444171350576595586478029383379922143478031779641262952153686304783625793724224497851609134196448556021056577936627810559830884963566803302653073668234829163462232601105852747513704156764326841697636395859980401197406329672079089577019779839451567497223554441077438009185314887987276672657233071774010860434545294219362524181760205183927942097146587356260497339501440542349141814176410710421898703488571492996807718509801505584800156059135339760692771710912614553870298077391415679877224260165272719737141085693015373839511171974486296047854628813811412596981524626731010859740279466575099150767850010554492561758947727974926603639111172710599875307287165509641293707381476261744182833623383873038464133541473501961175312106430650595283545972388028540225472351227484415107149975831663820434429753160906530131103008406146743322793370174118225411031042799257257548459391725765055950262249876873452316689755413746148638769271368010727706291943669827775364574755039722030157094453868267568123694191838714764691736252496628013767023882665489049412414387634221819842792234449462833331453022129474904737891436675451562677051326995247581393649392567093482861362658091726770873674370245004355449926106986445537588092236889396735248999993746962995385172206600147066520654289446433399392822688260826063906073424269768764583685322031678865757559324852340195118270085315544849418009216998452257210671227808450448687019891706742649043564355292969692000590671138757658121170394496111805729224921016974763853564471812515215123019396738119523124470023242737880352429386204421964516979232778352402671121871688855593253251036641707968648020041266965105356089970653616166873966551469242078153372552780180436042018176260514048751981605146385767407966463656183843567293452147231241620963425274756978845664079046653097549260193036850139729881909333255012561483869567904081189475246580369360305375016348547730929283297365421546181879636372456702765728815893225095281997844708037300519655743823926297019597868164579812103595378122833517050984837325036807406128673529553457999241750526466688428141608495981834385378195023250236592200414193106125930683292653069396389773473500155378882282697289079376285883790989363301897143411266711098996188067435919873614260048842314241453481246747542445278155247299096956123478504922848591099106208511954645131257338713563229564467473643172329497759512934676169449688741940547318721088889909118374563762793002356981951502721972472827258062965113837894932549008255780994858011907033637950008969081953046152157987380115807647126418664299848586461459773554298731369718161917564623026507647495891013974323710374754188716741332773217628270966175888061518406101104089762486508904640961303375317091961959295280132672170963861524502880561478570320074223037588990901656520950446464051256926592739876021360291866130283601736042374477896192022703378494493925918784011864486212673449074986932508947141392437699151135057681131448651801535669988720648079995146206048817949653406041914022600979571015585827484600417641264801013173547410240986298097900872058013788503884846938035517956189164253190775335676216731713564621133485529103973993037213671093597680979193276665106190795141558432045305024371051257066586537000817173571575700234056203853162247850960918560938981175203068765929654211085987110254167851720795188528112368363915400946204522682639595133149911620157310151970562797393025570315831401951742726536246358736927735273085724200959443155870812386922103672420676820769724162509871453323684173319666634910004428855224108999748504112076597309531277364722396396352798759530342830835543654502891231326647817110560268949195229622142813784934343635681724124377746300096804000819285162086561287456277737417858411216197891950158674486885895850216937289270537068655753288475559967069372229645431248202220383219587200982742389439083225405602979988168249938267332331293135553381361548221165910051076257291632561574814753009636431851675197092425425852765918274353779441769993380752460635495725757347963207918979074615380347447442265206944361847235802853907666385145631494442197297103168266788189422788428763219545202346048789236038885774953618858527298909527298336880999121584444448427314413033161273315417832256129716178100757635031150946281670820776946650808544987722653394247844478033964434352532525367379725050193151139964861777489784957163666627171702575982667183506347200895089116228514267560239849577133289126734732855987539774745730826850542157938686046688530479739511654545232644034385504945373312279751057324435507922647906945093401935480565114304781583870068803930480749116966553434514583199145381063681389243561142391591593379170685328532079214453472944659298768349980881383328771074183099780476646473524029044992325832167879545723873754220378529825805734349222600478703879380077284459004491706954107050138009920293513552881024851620331513572683849118744980139477066198998589569999335552406600606898868761886339109583792199880552698972788986275672213579480765481247043364806933463516438100946255565387446738881749814040368753879273805239702430653325558134735329375235509135293441022639049320843562687965865741549441312287566742690420553070804582237348749107812148719076647906361617299688710349616417474782326458316273756743911893682694860055446188951809099659507010988307421596060184179474996698816442031143686051605105443422379798298586288947072300467674822567261534704453209770423187381076722655570409778489508685292438087844273536378782499227884810741071357476012645273837402617440276537716038597875252630799147362131067332935750905423292817570908388796439405784200584034240810321325661021040609548818028559249650459436443085705855680462280824284415549928416609611603555933676583183289152663567532938106514767936883013222056799424604745256393482071051407334399600916219486099592008705230070103166372391647965154422852745682720599479478599664021960072065635065617507847466202181491616280269799993445609510807390301807978335027713783286978171661724077630095180721161294467777804374326585618836339916432775094463526216991243892982005159336480959665382853157897317424483044956992613471497268176091220630064799247627630355532980125528185564282557458978084418906450919895533531423374581198630507287041346978516720835802315358853014383870111383006171134195512200301194606733438498215915272051909569733452895995707950302949250468387594268288463021114904206929377904613915096343140001999854100218192306767332464394994699345333482078533218015852418487498852313722465648406701868791637276056529284751330185980754829614982989170532121452009120778836887345883163706602109614104442794954976965059948211863496892165428487140370810276714495412073047856392895237142039138205494432555094285153313753425495054185877661374630270797486907888634981691879136571627616679360497179151447676415568908873490680334776775398305510851059097917395733782874236664250464320806932502473982388818098908959965256421696539367445729270675044168748401216327484592011543069241301362594595765140265508795285894330258604333785443860823980531304786904151408329502024908615021291080064450569107835220880551218889717531860715958509657512227708167177208122741721812227539537066349721270074365577780562237964491464385557269011420647665506263174506759763205300511755051974103722552357191129579893023703865978415365133927653817915115556042770297251277690672144196665483697745451985871350678342623224487231324714994200993588832092367067653595282825191420087517474752293229794859233900757360135302569065089726683796220754982115257883859037189036022626679927772512380404790664885150305137104997820363137520023066655209163641848832543162093859980156196943240331258898250452085083477246049355367905221483174158978038496450550442156892724718357068833899309603574630831292941105571483877609315019379318335675419598805148706089360437328146635745987071076869051882079819012835329255299414635711997885898755474569982457413287894345423109615505023641871414525562865435143486352280993314411156303654941752358173811297094251146411351969781583847789890800329607868185711404482007910870780654417696891928498297721213409007254677736599111268082357642389196294116967127378065833365904669149832359401473943520963592684019961558122370113616978202934577390601163577285522452267247088549560550696921100383551611438918023029218590607393924809280760258148630928374909969025381225018518046972530777817203020561470466916359372129977256509942995572046507451396842606136773529702014353113872155379567501214837914817887469597149163751470205527650994104791039472711056706899999150344817347948840439588147630580481776264349356421437977488002152085546412565600512018919759086107309372352364533831215643172640123723727508542007376496088899813770064179636896313781189569208102466015432991086557148527857237468692728908733692420620481803297474988508331162380442369589107046836328712640258299906920783380017549452305465154462934771902782929104881869187899094470233873286957756855780366388059878404409571625859401377497899210740636069699274040481244556168911412406377659241735000560953445156357131585363876003845480698720908274099541400940133101613516298578581768637933729612571322889926299367655846107336489018686272291230729514948036407880884531449522106953544878594500761859053928822226954157389686387906225638248666142653075719634321638366857094968434928326931250343893355693705506615707301330593772912411125035822118091853775535657332710056316924064929648058134890754162772280319877669302712531218482404374115140526911954572960657918223123727847607776889777493257538393832428306461264968858869955487364220734835496900152733431455623335112595822664909221590198017924260286319529105594942769190180785020175413315354085324875086572960112355562231987614308979359847162791527718505204543674164387988569618578434392576945568631362299133343697851282718936858634379037567385104897783053727206023671866713913884730353862035410003805012378940150701020290406735869674639567103650458754055226167742741684142830342920180928960604374551457421625347035217125206293618505773255380482076801579864016173046594779363507884541775092733046805339004651929364721275999835150680550239478077653185913101094814214812998157526326801004578503029923337469487728941072549179122738497041732772744953965264604072808991311665238524039623282278606340485891888041474436205483911262734678699175209334687944595319370096542025654918267809774603899233063171284055308965328655499167710924903667821989421240708602532917460016759995207686332313802141865222543518006804725250908126269652251132683643263778647676666586595506825171347056337689175172744700298530060052562108100768546886921825227406641778163218454762868923520661858533990085774047215944756414025930726988437057636032566308016525393989072278537679205546140879034543371634823765612708299934204680441289655821481264454532625484344627700342902237925456892742593017438605948229687688674921149963951083182649707318310371403149571388167495974029800472490359698082255053495271282711698281123441790679642126217321178708294826339936317452161080504883398494119442426699103730018390067210919557159278717540410008350780312134715020914153159096165723204360840750094120593894942584834275711217925162790685312604830007742243251171549772798261394015248258290737658312339329158517821290724178884346260074515836274741299861538242812667664748531134345232863422394886158984415495507823252363516860967301457540211954986981213637694729303718789611988202558188682721624481640860284650352291213868041407811981722570270446439915005623011628766161077135508686808429673499128693741455238101091641001646960251561548770426824331543192110418231228428412615498010302993081136692586844880026568198536370664264152776999794872668791053283313488741678814493876794569644746695885714731921755149498535930231592961257181653859476013961692582708189036948398684269573061684741181921140811843351849064724293087661298574906043063960862279604518496909898281106032351365345391723567041406850676686482656889171314981512897766791234836852755567236004665489748868034345328683192435472383089472849809300043195773507668441747938007330159545404920949534750050050668687782064461537239382474777040017262132889219985173351962463835554373191545395050285702502636246940511391734375480144516892295606345409708944583193381528902510726110986899543785420670474708189807064024079667005310128965516017435712450431311286127381904123419707540527663473809995852570381155950872356882512708161372330886168681092681158709448473430057403702475636190703289201107901170717392261494277397890434564091885616350974548518936434843540812908432675738389884473071310456956768170315123138096619089794734026404819069403615234946237969998196825128730991004161599120964760829560536314607446426635718435400005153273376729852749359504689061032400873321300497365791777464725908180409521685631898170728565424612853621050984360008904431669804525128627867220530898315427096996888217146577872498301944255321746379974617305033226510916414920462473457414689863499342779773951560018982537760400328657677507851918291372995163056783019608067629235227771923272888427988040703737591786721272373094323380641032289901294268746821448645727248843742417922386333876333124151897965855684162345985042640248419423802690424220841475256849178839205070624243449279367190253555881688980869597534613327430524222230701389513189606383358098842791055870302204301546056721189812418053951133715184693115275711531859329302609071828494492241071470862842657374494594922386884516930065812886148163860846365875093013002966717965825942995133405868631052587074219893157046801355553900342975828742170549853350431158456009415433189016651248525469064197014521636846901491459390822912851736421189172697748858932316337968407024999250099163108780233228591635634693984653822866570293144181095127089753970188266821160055225779691524170165763473644975230744971657565696308984494631280726443075775108972566737857245653974589051578389043242935386556037795015830633215032866423837833863884593153672546840147135472183769839096888365326324493370660094316003048739334190521515182138679778207950295528922573906544821484020365536742535508122256156648411174822822576179068256433192049292091598078569388116571370655393122841233895866026129120133537515246282290942822662242863302432570366215588536834460597928650813412698349265191681528854736250399645893580306550256099078934167106146399239546508884446342208876760381739201276855307446724886370097887479153342475747030907549177109883221635246031332010325670078678021458951297689585945824433818602485453182501400961536097067208719768283762075671754191213220209040741743909178314565060486108011280686030418283321479082366836434387083870562977266447739305868383715022401293509026523544431029406832060896806274201419082130172433505289367648345643454445194688933737832892605662377451865775888413705850554008665720582010132621495280894032704564990227387677617895382964773801354445903043024709107778067203784618430016315336780572814895977808012874639844141589950143617473703033385478956239216548636329846437351187321299372004359043523401249448368894519040321320389707590579212365379142924193501117771012127004780387331137140655282224140345370985123486672544111425134403121671833878251002689522211162664456775885475675654066569314874844713093478826094580034925744698666817960964133896827294052138281393479067196019180342854733827335535547023201497652703359774627985517394850012661405776396930415326140418666668934875341882523869547294347444354756553399192039328146098487487697714733805893456798920265748402490584258101735894535273960287094171225569045667205076680203747780064050386091273294770161125045858732731054152481623539352480752019501321030061955443633742424339271814893252154310320523494818543565111599123911869536476204846522525288140329217711821762800793258706691957381151515116465142645745989600622577117173595084174929540213615238405150557213883392145293436827520661681367848531897540451330031301164409763942675842260871039842897681278083400035321881322209884096024349714395745619288959487771275952041281594916383300713695572519575956058684454893487038436937730080620922512584453619312437208722348241786981018554738295254258931023439359606218820855451406114633308114923325914837064346751551451434012557770842303340516566159931780492125288481279725537734573913241440335236018782760520111335699729418393416597037646735236277190065781803529498087524263406621565084079088294713105589172491908811456634682722617348151134346913977451910350922989024779661323081805904800903884273774392005433139114459291091242226799002025688317322333699034733733721443069547572855510541159800758553624215021900266985120547889856892300415030595804157993788397101831322418005707720454147797185287650183506902117709266846566141732019425069535847794449248677334593690364791445494622281853173821765325248081959758332379695125507882314473627891235365073442235928450356317822777283326481651024204437136194950193515432271949195371473930926091310183226683056016458755296666398307153772304641884037506825504269690633519884625339954667317208805924433199998649133107863177267435401797688730752738890931124053437552200436416843674648133871464171432569962617376115758175585307709142335190333643304906333837218953613635153951620297696833857056920164466611278376953745665010788204581639771880507753030389612345545605062249470051295739383129474481282892162758137339163821209860802807999118298037098321688812743310048305075240016590859270236171606809484800761778517923917545822872969221252966981120925431302110424584536914789443474795001873347483273339002722503434486379920895233231694260683759018588069589161771377454145729174466696833656938573706724290671705588101290875660720240335243698084430673929686102333182183302048766513723530917162682125123349125034975557274960570121421078192167206604032826313944180680072194276894982974956383313045910609722479430815384828349402692634738774667498028988372940242316610923925634489586990173684835526438618491649746458084059918219451458435509858078904558691610499939812714417190258098317448106855650542012862702321417631474342372006287351882551496829603054953349282239727905035159925657012397410518275197281792059357625487675162156866310476264280115402876654376898910480875280105710590558604578483773163303478717567763737479908459863882211830322340469479602542849950641856203736858439898186882097686744478892251201288853806731301789668132845800388996543751728786845203360303199538673717406659424826528704978121536134452493717987047595469173336840246131617964842698399414254495695971808622591917025496780290364557371583597942047720966551791200093141644327698981273345562940279693922058368945672237520019092697028283831910987192645545736325088910277583868600459622329964000650133454154038323022832634536882722902043208329336528321038793523725468252916664217201429754649816581902833469308006560988377730421027129956851272984302886446238818591584533188383678645793362924487141664902272024461577406801364170542125723561563237903226210123751829208524868526714780880228018604359501593600644695669292033081889398248961241430378131027595796669034214529970953313284359159733214919021069861883330366986610651838644242539962824707862270404212774745699226723599694636838872774644114016351185944513443208278145805178607311892975455365303125459580703418818321240918022993635040730119904229698931720889894582521602511486443697347247427798685397013708818173341930908665038032435683024533800525059860215235463234418660982877646819558407984643287516313015802796039243114409188849037817392962791297788311293616524026059887579593784089918086144785973175529841438337711546584359711093577674564945324127209998162971449502604573844116051560860950606113976356397482515094075449082150720553719677726997945201213928445385405132852789564016645524157028184991738559344200206115214800392599887326170054375424929768729103334079806130118108361558211876825215091527219049437724104347439774089904587165685816522500866825030960954812777288714774678067680775735724074502062439868729670031967792558314075250481177441992461028900431477892219869318945979810243995374158510643149739346197472572081518290569206359159464169970055237350006701900505272858219473405059082417075968099910898165787002566615692973013333708005261851344108089853988990556404200599319107639536591840320477096613468642631731690589953277745801953460991439996960566834385083508402169547266633324392923955527135514833325272384490647646630982344934058180762196708134645305536711931149352400612980334467349560593280752834856166495506539935974786817420090078323956756472649459657348464125707616258770590475769495472881973847456100503767365642092836973851181406130212925129476618072134105474789634853130263780063870375213718928869110854831243943386061850867063360704297921551437105158817126847297684181104825874638197028793889775567346877154415277928457422411972167545371078416070506976203966091713650075148508577771009262399053264911340971753697085828228581373802038048101853836346076753686181466939628627998299413246776925171536272647668185326426479962557525489007211674074636959360240021712029886187917428374912294234976498096114198906870116729493970413020416824018285897464312940561734777549058978403068284713840633297268393463516176965068365630794768453636847756009069645485212734299000070626280986235407040865929342407489236394213026234222789995159520310116484101001283252565189444838429243372386427542253532906403649954955615697783452545545098228973177513358799263263434605737079692349009147117962699081825620539944084214298189282835503716598088345796699366276126597066897556795324649453432433139300224809381588766582834947923180824180164270281527673970721719646441819267869790043200437962403341595468414262699994460672255370623002485884972271687197223510100120020766366409163623059343108141405992099736492380472799937349936552261748490907366128451312665905088105173967053527829414119793959362136394500128954884888144806007721796995727830448949807253466831407538523478986920559341268293686182440281308260288888827082068513239384385918293690981332426339685236870684285636645316321870150829012601028170960730388277876441946844301703736179858536594690380580238204468008907610743358115915057537581767977552839880296556858704274973366593502500349647956667455269795615308483523716503930542874377330939041926438537333120669828522133641770057781745362436261002972161868359825472918243823386165853001850194000829410351161043784459586242840830991656635825715999468076380425953733032997861477175391208474784767616811548440622647546304044809657168919879203322778604028698553819396351660540356001515216625727230474236038468163487580983791012196164430706508712813848874439945041521353132796332415314262472307927698718516936928058611428692596945977936477219516509958560073918088557090768268777476157331494345284897968567571116110410061539119305604554773711047209353736320733557234585203836778765043195219638317398417430185262524569187001143805295681573080774133976023781921828940342273225385643809863550485463413956537316858410452939285839241535352781501684008810519360635608769884618910521722132479369721438785202494872186060121446357938581622401355933866592182343181048737382727011348402315078579070772548380626026449605484688039082328968486984669198551988955672018839695349901405883891243802810162842975608345631073315015868240125927469626288097750116704936293179144378465241689107034479357100861233825847629252946343839076586877132468579304785111390192625018638833485284702134915119942617788598232392674719552936558181615421750447447381706816415289762824895477133349014771498135001634219176328887770136988755807024347483488287359981793433513153087639193046251752334106257372216118678330412489578727866112578455677083249427983309813085990749684002486989415041786643509548273276499440729294296142573904638748508323488130026226211317961433915259748087068899038761201833415212232019967813025627927408481293753000024594412581533089466348734182449532753908405266287915415846377231365295328709812398072497448865271443883085050439668661668079800659002260460643398874462554890345092242052638959572827026616717254284499845568004616602143942466892321606617496424009820122523489126352122070173376881765276578365930207733225002877904288939945660070819840710823012918854958797615325905726303955803690046655892884883307214374541910982606035322408933657465381872551235264769499447054940829759644642335805061659520453206828219809603379142465004765043583728704565247442333933486294875349593977742366352576858817510339266574764996060572970750585891865298434779896838213655684842443380131361002447025359694112333109835589897177789608656589339895426227768933550772817292422130844312231045604373654137777544170922101087125045089221466474310827824524065803154778268788327628671241083632537070211477339739915499594265892323534183786388561493303519846065760025531712806118438891554290333757963656052542887666741831426317635129468351045754268786290428630874326543356080151858656457804028212955272072699075191607069225660213730788459517690391482454988650157902199296222688648227631439509798104488222147148157281405469921164810466756628656833096456958841466913656233068773937683638864662612242970315607094443415322401712161244977534062382770526539167579153197825887456798832825127319423487705079976727817684058156085054570085215514525552741460428397480016366215092359848030004671443095909051210171459813808988793315054265016996198986461543501006093697769169693600139969467818214533364024700553836208097311978452093305424189338051655586893252297803790866526423991558505265108496856021514969285517956877057560026144582969505539181079216652166571702886554263744222203871779653556522800698827725258375895924462736145771907017674462965824852442277103642165907063337379526769793969597826930472685669643835247172505943005445179312947898876112969535181047134612161113100696489161821408747866427928247877195304007909557700619864597189593703356965780533092147437401592424123072253692549825685677709835347199988322883213406650042800583553007619930494391176125062017779763939697252166599197270081380269980790967377500926484032543365486921991705637124137658143521972119627879622500225114479091471481235994916350937325971328631985314519534902793009205119997948523788525169630268010805410955617697530870524880040692919244794921102939191116512265070926549617002398999541682742151956038104507129363643438972610210826824119842331598016994859217830997630790115610977776881058681876852184889967494837158373241121586724408979391226964864661441759697150822425450368798483751176941531711936052676386945489166407290631015262921350260320541064470882654523694626119744466160904450155230303361358639342824789355298531605405496318954023881843042439333426243832420492358712922349346699706340137824592293940494996141022179716766667271607923145438922308291462507070070195708945802766295045721909661436676646745748585674034693513288344525123821782771666064157511882885825051390560803744231888675553403034439009536218796863005896181911458062656402198781984002220195888708726878129991628531437105774242888188137993163306359701831475260559009975970161047153564046538587119358000680635300279574980585764080610357914787891368510906991018333393265265256089700624258058530411146169935451970891777488273355177510645665858193082745449115388388859696675796998634965791167647333986728678001732076187164901962343032738146436616989913156786284353710465559541626611220164061820223260076012707008564292266566422229437534202460887065512564866383961530160090401468781432085177946051953703519213726338879228583231777947071131333143861327849778394478790347204811123667541242898376948449101182167732123046213148884271403999409557605982836660198334496870476077547276597016535956363509331902856183369592215460043902494457683656404379895527579120453018505844046828097018148394025040165069485719102131015438811318981336991166307951058216875606725992294829779374650030883155591586723140109229081079890317811724341706166564371171709426721526846365897410272292445858703289759291912038230993956678172182516364094919926571509610240281317497781675068841893638263408827479094582888140926051757382919363951000602849121392339640829148436156371046990101833865295809777741697283467364979799754492005457421647177546479627271596058775700706379206604776992596241007683412866027022831235677620589903832062189839053721767117961102792747704241499873368461747174777772901698857215333482139277674705534574192125415423434187695088846260060701944841926354156447795579084127848955683738296199428268470445245906251696946862081824691536848664098628257360363140082782868854679662467751967397411784693451331739947142286523489345197045708726923510558085152301311413099079687091877934288183951340409456270305807706110860832038874110660733548123843725093079993926565490984300290737369227193890460357343573545564038881653451795802644638186946665564221012060091267832263408826276254753461520446212848367906265440609874585822106456443706706777788196711179862492103388428921037617737599700881500806385046117628530538513406048573933220895966239723442035068742227372126704413477609897716126252877153844325374341799735122831129715733966800940830089583146369032028916485750398530385235324987341137023746731888717985899002653818911758263822091460237648865590123074752289447093670576922636956859069894094608469096593485578901244008113893550635237868550682126348471045068649720094517951243928902570737993491738253211170550194596820262371085094292024964213801816482555211880721569264207855376723721499857880296549792550667333811004422897357811974438220855100867320048292776419072876552843239434325649698293915911561997975317909800594161763166907417857105090535637151352086774107595173981948038571867060788836370710218975831859438441965509324986016744533877018917966103890616151264462711437213580965525189204607242885973790753105868634142618912288766457846395586561135379048814011928983653624060095015349849273686864243938607506204092579827127589404251390283062312349013772955563478271661139784160551831105467603424777212447206430060056039674663155091608273362132291109361148327445496370104439686077551330480973006973012774253741162548792527760967799136523051220646357068402214485799085212125076583147335471614072242160491855254500042325226126673716805349004988216951661910521673907258741123429485265004788158044560972689279386704614026864895357235228210607710030856450827545265402834868206178086443743263789259945078936137274523228698037657977736944807151914318387677780824490905623895757704807215916431967086006952466264573471272848428277798826080077047846341227974016929390106812393579907768153402728100381953162393917627817410666337560324480092687619305032407436093009191548933240721905613669255332287759877821334175695267118055843915368672948342033876306783130586289155908010958468363273749172719261490821642800329249123711380193077554689061962817323105254526040791779853073315053927209109547900382562681207517204941068994344021497670584144922155861598468596656951146282007643150462822005607843263504444032692984054637373544203255457954781460404507701573087017997560103790499278084990508080972184974275774645596338335950359668876042141153863162571748437087777542424336413296871106657105146630288007894499298915344862829032152184244084994739002083607081932105199361592532968784848285549196680017895412186344442845035798469358603354551656675817083642077523015284085752927229703701773436272971665402875003763262774018472894284393322702235409874718673915108022263022663675107359609182077186453672169366355136479603214891033910977585822262732523749350337613788691138270986324234047685294130065022320651226805658690404172587848265997365754453013712291068277734034329193715143991461875763011744325493179813882624913845442949463328872630263176121887240863075645645830526872154975867757383129312593232266313353627235473120655713315090266746875442834446831698853050769844462630445773576474356721675288184906009613721970806708325483185547598022966953994688866016627637381580462239278917701681098255313555024369426041176354751169649694823720010570802822804836825818393225220268408959346286389715828900525092278387966765769472190624715608064502130723657074358515092482703399233974360706410713056294134309077989286241167671685097378418471368415235601610375826533685198254957913148538607867181991111305626172411002890926877281560075609983960344301923309416643698794787422409820672934271296105170345825072926874907615472418771466515894365043114065968403502806621098631346121991265935047537952619779405638291825457449875613099078939709713298838201033444326289648605207901943631274664060268680636808592966312125721317708838065172063277916990320109754969860320611003395137635706694165636474154838958119019558836542283025254004790148520284038890175324356311340491293603141238589706413896913496912771269286592929251716544967918872289876217887668337372453881249137710477887789260942651277300529094689469066347824087960483809356581423351122862872459910337528561145012807027654933267103784012650420878514621240303046154227645825615351526252830451274868821530508179901063668254656863934081413158556921080800760446828396454420306971425754788511804149742248891847503900506307444824310678802842426939371738345014545077933882543894376551291993251487272868115287548349934620016756121376821802001804162615742947295540289419944192411534935714770315311968599703167668480597278861755741816285368694913026325363840703351826953490778251260064422664299546124634637132375815202697558908616674338949722791886980630028261264600605120773800410490011526845999804522741344994970734322433603297727645960586901273176273858653591418212957352614599273887993336762971459594231627888003920388705799156137904461743188210027379369300088964118666611196782185821970693915910193800946014962993066357138413422927192823132257541523528737060041409807870852478899503949969696705624836105331660328559878948623748703198380338135632054940561737365309567676166980764042545054180129458079951706919717521267748052529139412113974347989772165115931133333951471714596988797497515234677452962051815691570740552982901861639485130310663802575376895292398868996419103483230517674906860723697738147968078106489008694699858044247848501451164708354096649342189709274754835678969150149417847546927944571555085830720554878593585916955711070682115871862286046650965258887367697652366173792614318473796923815197464754743885423938105524649848323176946585699603582174176445416022823612386440159818937642487495163480023197949601289253330105537327375025185275381127001829462750547587422636797115505204978015521123190077843275461787704111999706072194220854404789081001623984386115949775271340948376504179051034420943808911637586991090924668436915463354936700832767992754422136593778022535014810476098111187334551721146917104761917827981284332076277719285354364479695059561244074847182587600302357306191443134198412979662967345163503152599308127741243730395353366334107466927668363854984311105169709169702103830808919250165999977058433433078587475521801065023680614891472694668868617364947764845314112767238398362126296796489598588974116772014834217982446285627488950617850964720045105398334412101338360679700355497900857252044107355844985052458863891044183222575757844925298092113868531606527395728125891907403815495231311679084340192045975421759333528827725719776097571118977489291148292942170651330066018375712839618131038523620155066565748008685043221627452873890174291029172780416620590309114805190003728066734090483188516699927684467016658935065019562165685174587699911714236374184541091561017341432322623881967363845734735223409629612500460304371755671907258114127340523272411747089869144328971352814844199958340630402688791227509762180202255487575595815730571158823584551856736622918369304578796254888057194118350845962457923866831157713708709501101514946392163093928163055799217841017989863088593622167810740208801107569301470974525078330869889245552360279272925735594077939196920509199440734391727788508170158462307047777460740685917246757164133948115055629387399514303773942585963571623814124627998308622728512403414904630874279632850287337605963702905971681958845551297864039574668062319895817328055878110931366935129668616682004085778518946984044312593369446993996168653409508845202992030478089334713277730780480834768772164739493587979599554657757000147750994091983103679720431790612999539272555548797445474006935425362040870706456902077808081922036936520661078885026009946233450519767511678860055166046535204485292079570662662893308490599522156787095511508671388665929053128515312722206236513668817956777000581745077600509414358375468125675656199671764442830085347158233731355855045836643518399055193558121018387396211967242701083925154241348814564905097482609643380134023193069392942795799854522787049873777947655019347201613142260337816065513357753848540172517574512429821007346814810794267111706909631880400766918122785697748176930540038124454386383105707078959130851560923246672380101424089674850090123300463562627644892311320767769642422529767624931720633781559873233124334301379243290297599718633925027100785157094364135698331541564506229696634442255317596132809267906151489926146501232683740991768219121864328586405285120621257998778588911019214467832155064998009127828155978167770820167131578133576660704456413101092122196575954977370010500881623858222560989754373899338104773291513019816574387735857024563321171604144433448569979221776076269957224310859536207623695760426595824225510876728813056375170709370440502188273259020072909728112747940394311976994257852451627636548313870393553512826533024808663979630261753786051674941489994068196223207138020839709610503509968389809254275054544108963631373115804440361488120424114106260139628613282189626333003290849821237674852349220024938310580897093652482557807107459061492380655083054301036916107618689081696001466804332029069417389257739102347363213555246939455542562765265749554897960417331938465374379760508921281712224257097597133506537413286496543185599225968962402805595070632903792158914907905471509154069501635119407474340057945226892002500543514491615638663796156001749107844910823091509538970032991408664734958744256754900724366500385499976835758733836218000757692470263633490364683451143604601164105730876588631835081833196894643037954862867621323514189120462982059905263925352162856988763754868935857871707820290838398085050666219844470617332186729373925134926285232590238426484453000696673239507976492031574968131655369404920450049021223136142176193677072597437383628396180932359004825402908052191296509627367212851743812309178603383234667409285267619694767378966893965747946619452474994047862463316849480737985005085168752224670660878628098559965525177112031508665686615318358524044229210158102507182288725669185912302581138304420802655028543130110754310857508799441408891904909041453409430577456550898717721937103392734098266692534804466454470967712771716571503398742716776417291158065592121647159382810432180113087176511536100334874183001887306745400771740861823895552877801688120230733537468294777899545589735027383112521413599818232368984444405398028829528179046486206803073189494541070129643123422848748035343237813792321750289234663783650846536011628281003230036345548922315262915425404739186760532988942395012566251534408275288197017128613000491186225213646907797047220633839819682912042679443321437599914750812254066940085789277691679082657217240482739022653419139564170457288696218132698791495616794060651601580885564450902308782617688642858797718833837292186831803522062287052734255372092027379569009408377882347926067724650159271990026794429516391640299580396047144822655463518067183103397802053056831764278826935916642805704783070289090988864544808315862450335899323133409264191925370205364810455303349823508884003262756037207846607380247297074092022110702873976297770358822753636686702214132422728947031890911496202233008004148820256162599577020095708846200270810006665080236994745255625113905596952668067770778706026391555963937745910710160563952343409926436982611782248545479252716941647503026897866802308160460617127547411730910494568438193324539804561954507374629947815292968075912023038017162316644458157756121074503503633562586528423058261452906691545249366492858695373790700764879123595337261167073754378154474077123609671035680763612965936526786035262993496145596080547510619165747683968534083750215973107534926783318161266329749310006166847074751409342276002542080501320497562940200762251875282210837735693846242194803714561041716742516718339709126647564186270740304035111204820564197466490762018798403132192124669149576466665656526017546245618339549551198945077820911048161341456444591967950069782339724201290795027360173377225825848617759321569532537941572681410756454443688303981897760403473365063120373774851615839128188841782281308259624671506305390544180030265178846736161474021258551621452985600673100193248297208624715695696709723425114172272200506339348479250041146598294328893189281405497731441450640803833491025155655054684469612817263658172865197027178479754457275691050455819510795394446392098018550949667061643569966504332888117195593454750272088061061920493295174551268443734287196950519995128941506719601150657724701331406821950269812879522095540348550300175110915302071708531242962222699651232558606441329354121413093971879868565006292419662199814142898227831359119644411704689300694001224496019140317662239986712693593053251235269827120378429558499576820057520050719347599306999244482862757121805373321147403133206362132738549726009919254093486190501620781394032231385587655851026310362579549596684461870758764199036108601343472153033291212315016165202821154832287239742883584749399538789599031416214346725026894807739412177999238639784490783347575529296881205070159916153125570294249251714765237635839702608741021822562030691570739054149828193879697101351450932376580750455667689889000610960058216016155572376752251855678868870442003003438278828531101928236536830102599796043050366674093057719124307811014174068894089116805751568863975729776897327691196321300471549151458179193649268296933868407181202657496605408073166017390176116083851666347459089863704681760992368126150798668082495170125406035804602398342323850654533539028580582403129593919688786524506912159271180107764019382635876514490691311918978113021342055084330749805134731153881178083451056590520059870529368853072227793852785323692485116610281386958108674364610721720921329832552161398817350440892012447486000074765254884993089613712478905578124001431313313345827479680081017682782908615575039369862825859266831196328177635600693772693868422438632342535908518176549909076795017487709199409169486244837821532444222476059926175082301727879597109735367155559682329780650289181113309312297534075080964025915449768551149860737979398098650180738639599073794162762365060160180788781984304548819401063899937375509399461231234691636803269863818392757030680760599272605544612331677442108064950453507544918099954125164447837306941535864836145053093557012144584404574927126675807430592187132569580976206641083727277038919869850443318452572629806093079989456200181436128111652231142042778717804988956604139437093643415864470202875019884076711084705520763798078585208576064966007321161734662760115321905561016778444919138756176444748850374941508834530277758106139289174798265851585656301038672335506918232185358815359470907985022628809687677911041619681519531822334369007295563846770282180531021954470069716429466878137358924193300456934205733696942677846968435155170409545690100502393164293122989679262812275173828311437920160641331717064832808451421866045584100510286811421277962990437971814423829627506859841291683040876137642027032278626631153709604827620041932380465584506979939113049111381320342063580094054911888189352788384565773170383316493732444129428598923493297150988045029850661420438564484748486315437504883429438176537832708588229056816506260054497999082529773720091511206124713390525321069849308680706679173118501260767270614752903243899948115238773353207259724693731343460998973438711463657564823917691847629162631313855720368245068277343835414842006214208989853380536335394546049947080454535345047288629947046922496505788711356696414308728171154919462022812278363328612700512832756816363073661975402959656758435728283601183999526765781929348672358859912019496181129696207149877874928692603730325509006220192502915212553315658347789400192935484840586223660843046325616944194985180860037854602400649387271272416819479721469973612102526057022521187789208295583792617331659260459549706251950064613774537163196359027269333578180386055474913386279696869863297532143008453113209477809104080178066700155954692279697350040925688819478827373525975660262326190285283875091137006427949553990267450846106285272747988759763756135477191102312086694617927327702061697957333516192416565838009080332198222068390313632707936193103854330766089902830222454344158574602048603011488525536847577696089951269795387658819358311767298627369024001269096366732827675321676043696086141387484734195710523772511231391849676888295083961527276459932796483573447141849515019360888768036869899451263814882611871660859855083171386063682300172316830296459678374251305314737256990498605723012315791219917008706943868868860497918449869409772012202388555429957464817070713783591072482743665354783335978219003313192496501422204176102479922923119326634928810748467041845538150754004760045784115525732197579569377836714971074640713406367617149758230962163210555114647077191035322437799375009326754233165899748581670202984066319867851505394962304656549400772321467892588461400746816834086795772610905697404287329353630816850243524749964418554036294098536038204408716185201234217229519348522952657307115124660913658926912542226015856381247967431095671178214600858128710784187114791053794717465698872650987315566436644973605850301810283112363628335888729972040134185873510093743008899720209338141637564131806418132668789021619755135325153759333648138040036811104380748900626625115545863559650375233362390894489802716187177354926675998051899008629781908344492825399913300069697463110642612667591409546439040989208685226303756713061836939138739286849228609300893387621316349644974043534157877188389843355035561663981423812386076975262565424649602982123156940453164724477632074176369961030388418448229292707608514811967139667588148628561683422266440306689831611095700997894661133758463104242160311410413212698028148416217959706927063225608470810341211571258111129156797049161553964028836336009734558865082628661423831346369297437543137657444683367002431821544793759147562094144826653934269235685742759556498177455568544185811559102238608822906038024664851806771999117749785594914310719388100236537607816320554930629971574130411376330620935960746165359215562652302643942418337854857162405909564291364813458033896804578231264053964408845165701169144982178474558279768951414473173683644757309552594558570761125553608102746162618525396360225303594899759510173334926440214451422586608058581427046082224498161361905770007865884950101673170370080152814812144725878067383985244341381845770446936222727271517302102162659421409831417507218030755713630780917926491104095515583203760529675677116891495387484806532820877360409631874074690101984904008153357347832538159809922896624582673965513834571325767155373189694726266966148674916497524052276463633386120738491543864091573655339680368374525898108770962565769594895600141478051199858714118736268615374079918960499818919304826379170015464241401991156811360768206262219758767211709875307277684449611064409283655572724230394974320528476806789763101673712041356345939595992759174021955887750110889813504016481890637494061003014106422319400586616660136533833671551238429001478165083009709435952786126463197875312099365608132840339586025047120582708776351626786757714107537230689264676958097154101600741415876558639337182871585743741749281516290314497064293784278961256123939236138331994461510799817654334060507550035164761389128376015991469223379496223911485260269210312448093144786256722836570790385504779037740447449847132781301863151108892273444896459276594599480911728262566462847802734756649655405917979390307198333810215271727928741839916706424025702132740362887728323719084331023505739344805288463405144748657854599700656730909619392735051586262173519856249311548198837082947220444526143704026580563040469873270967102620283811504444667931269454972722229902634823219505739588830260166216786106038265196344580070384206401598511728004209185415012610509833340122540016494914656169459310275295836110234151378939786705033899143695032870952747017168506673679740165986039996587042408713515301992096316531214297012112322042579712601494263903252701668021697585406641172395622928004564798255210600186627875951792290461398027517681679090568751170792567205788151712207642603819587747808689095656730909174871698812971689118066114804244868576729255465773517071310657832242749627759791389961262929723128463345587430843075271616301678846025079415995315178434841355662150385876061733814118742856444155814823860803061610243541439192307174072348719269540563770213708084121766431591714169307029465722166189435868995138166893380561897746921320468514952775522961116908404740240435055020546056163649220679907693302784157784965809541728148088894218336935522395690317250001170401249148559432112299858791664931536959686838632046536342137524658086821334959256016992933947761107746838235231810986444497868509368460698660797378985364627328918149228447951968736559667965911075039036713066958273207053042244679440320554484248821102516565442743560113891943466414889924789271656457972261175664355919092428174019232907136874713416137666565073873053332223911928364199375680745961497503328617689508061866034136415417996083562214717742035231288823207703008732594871832149744396475013794081190597395760157736783041324026101736570036191916123831317314969535043217053020791872321917730098957397252163447901602434311676155978203051294136691904449183151777065230418772885988295644140709281416591327157785059119606355378718732841676037985171877797478717966286702768294644764995065066887849900092746733718970209444618828829528085747000773491183192577301003334491770668673883112911110053639514592955684228595684926588831755761220939010701235944146331422571317226228660813335387772629753638700987600432422744984404041204033238947043272151730124074702738327854162157338590937406690082748425463114545869836892333302324479505578442225881198393925546823652117151943511601547758901904722765331125256258011243907100393086384698533389476968787873712256925425561208771843028316198431131684823920194735021875824307842326341999708977491821340470837479600811699383174326188465563636904868585401615336559977090800755377124132112402891245417449557526019964485636434185018948309272358726405189897209884615465471969072812053591247337306415008499563144312546337347482576163477748766691239114649602105074475045503372774283188172141373070458890519662997116807799002735626820870065346063032976306899454663782694618230307539937871780653596116809191961442367251191793979137150870406579247933264663287365640711598053350702557145343415936015418350525088299136512149566589120763569548140066689238969346660528808328167015307960172904124274394086275601939656680833187929711296080919348226634046678662367984577129882268896107913432299829203578135577415080243636330215806290961760234419577887272371728998932073463890772565261080154945275534901812747636308716737041255295346701871516532003533491213461378737229963721131984597542572342621496745400481742170484021694279986772042709773421106487508128446693433100937326083030207965825834258514098107972963840019776661011358053416284760176164667221490548374788650087603052589337969298705213069218196690358596997745808198705927726313321698696078209265130644076952788830125357165748759318296752305890427424665050678960516704759432860842066372167923277168806700183810053363301061063767557961536404189043953097501250210069081327639563896407664699043341184938966252734699463557854911355774028196193756530464330049230328174976166181100471388219750723313163511218933423729196017897221941864356060716768845363426338684358337735605889388716864408098199697711563748380168566011926253934937159460677401076399725710299665152532717667264413067272183842866037632937639878866421800605617886911807447834431097118090892218659629137803341092265290168052983690873809870604954487913976272764799680152913595268580351562068898427559128438242368888141456943393973560897456058207936367063743327120004411807768635560904340510977552774342172894584511083958704250655459883131798613313696629028185239882731032271667688115352808437299940184549031064069474517335692727167909979060833304207182280783920553086291126468741318840469502180755833402660683566884596151777868448728988944479909865030857790902609781185503419709295984255067714091094426218519815802645689701931720666182899074829333697306683993467952644581678478767880642637229898059529615250602034886960290909352873314007919480302223099597657060665219235764886136433479540867264705594761404469548309624072090260527833180487029958109613066895462765247995365704924985417371027442352317673955230720088996360519132767332538379430249379656548963881169634987812789610376339442325449468270546119318206690599465971377953104361126061617099419104610497458573743546578394058227934500385087431851032782894593641636410051787982282781490690140565865327501285312860157127359537295348634224816090442734932769239365713848210473404362544766576537136419083504488981533061442657878510198040351625966319306181870848531854935947242205070374754770148907741441095789108682978597531273051922910575811298286891206204044127558401610797779463596315539648421448688079178915007633144521353458666554678389236881589405274884561027743697918766525506048821702221892794171210126882155199600124369637856006850755956889815918298056351762059027770173435615381147188700174511355450624148684405751075018393043891136377943582235077019089948036479915158516781148125267075607729627372196585642778413070956681140784558236333986975391884873758080526471322303044928231665199184642585720853131937043318499995648636255031884882631805518134507601024446577471790758170318036657941106433052586125874252061250763975954935443089621155105468262593317741359832926978288405024895427990503986931200724285813599290485595719640324650256055364907416068867058181401120963670628150439860422540411208614116983301857330161388164793214920948033422600909021699159374041557714787610913180812878889335318359674184857143843855285292780737341956794152191919896346697744150329083196200817415754651263468690484775559280334235958341057993627438616823955908022208025065449213232452857029614040922529051938888722586020897637205549187285311894401144794119277837607539014412889979055476884443300992904361277381496234387240433651927719379730340840285339428103847012674550980798102056846825920670420873487896559624064056147449169209851303830509412311302142842624400366947210375127544808960984245035828234748309753501846060039146778089220955805125154360581467142107169232836979188770642945500422770274415275752269078989159424767845960722820293186195841460011679010382855730083953593236349615537815981410183655252227254870740404010712535204946412650271079727715634478507382763951723223280168369375510268321222115764178036322601186402708238339294047956122369177340967438286869962251345731156875803796848088170340272334679670941032516971118211523303724849067483549926096949938739032931758677104768588709474815995947564721721474766949311620866330863012573119409600644887508523732757309488637914065946996783939214943357091202428340268313593694423236008523220325052082401075971470341455834035515436417069383615489350624607561419177584423297126923202803827930028085646243432354176072129585077256609266528273384598529975787491434820674562238786949537170477043349704794383084270435164325843937452999614412952992773694673502098038243433899744552046045000949744645782880580479290868578520284257491830082132522328007606505683735672526563090337146256580899799524245235227526700736692673651868118504440831917060472004795639767000739822648237967107540500845433069291079917770352782900165778181656329668024530582932125030980052797237073522164503992507698495494910504246588392791345935581246845056060491009721587084575724457910093650209278602600324607782154812296397891855104801137264433641601771457966726440413449408212764536379651988967437439060119407977099429019731824902415935560614493662308553661833698333275454606665953514314583441794884974997323955698143877528451922395737598681929750837721690468791692087416995310588443995149572433579908684121419509940474650958766523698060066389918145091924768833469395575717236366242003874840899306445903607340322272043172135424321198446516178694487482972469751110634624980338472247062353380953159579254575208509071949987251650950620096626413291080720831126883809042548041259357203179262112402093116940852913809302944449222725396730860611052786095715184607364251379671086786339259910533431125007604400348065510632607339371852868234464493322802226628253466120396788365951439826809761084693978039569164926708141151094618384779156690557966613977661784716236198026076390269048708359642618002451661585472075976386794372417440222857244413462622916620522735642568660004055278726760513680282116932366711021532312449772783100899573421747009036855704997565628429151694525985682456896435101047562491841866371806761301321433904713625076462197900269174374439518896825791228478368862036059779649650442565287573226468132914289063285817268312608151039541032051269999695100629026303172694804903830544062815811222714452336951945291585429744105885427991221626792629251242748578251015495130368437973222478879561959057267408236754837984756396547489210833849941144875434150292098820869029252813595029715517717571572067637367903665209839489516529468117556750136897899208387663739364855040463824838060480118078585966486447129592687068389422502258078039168071979570754216346471833975916424941876415551274836753879678327716688201323493526464170842325177025784745555989007441352894155389610914251956170109944244807635713977161345161092164896163355422275354243149123691163310230071641424640197588101108334509499741699397796957856465535693296038145033517481796249687938547636148305713748476649127030765659046612544960662241377150273773625106863811698166839173627990630975711095274116055796128956587657774900717108842200624264392011240237858548876130062422302044587843738386473021163571067649277562761948087768906182700564076683969131408129740970465211897896425925098352544652762775161639156999082851566704573899132720742476421985573613277180059268039695944843753699818181382261569120484064332420592797153305823537055778697458613239002663249926899586760082156369171475681047014807870380349502891522069491797578540750509157982995071294613034405729238280638695816064454051273594065165080841090341741277665933581543586817277950590435186322681461067712315437796350167307957720116939923584554698097110543903559002725550482577655289594982355593693447978138662119949731123853877261775774290949934646478883620720545880962226018658701912342406137365081334469906957245303204590284291367205103822248873760114771022092449101535716174631435223111642088458565530471274235156740629528379715131750354048228893034374068493612376200049968575681023719172557875942268728688583509106997138572345673319364406873077398160860855178815720025671029431383303009156188008279875612967391736014713101667936186271865307517883336216668543376859757917875562004463214785954490056699593647240307638883822787707995269525923890054782401016686821749767683955772062911246689268745978803962988968434831514375294121698215686300447150901603316296551963028813221047542242671042613699581134877406070792734977661527344345157039688155871079798870886367605603069803277156648511710035320446084833228003178032433492171137114348844948346943883717135272098778344351443331263515611874026555606708577481611968363175613964782155043797108192289002388911937209527420353581665912408195558469614614442375810014349541512710893306301756198390229267727243651529768568652883512477787484036457495149587108739536843173186019253250957931803651117555458986245842608680757846871861738375472057074362794959034242634745053140011538119739163255936357196587773496598965314324709961989073976575738728342704457707527081152887008306695575390723464039993316582432237921602768887593950297116622517361613662557109688351854432651454450217635704055959250252430158456324592569090195555119408944747986263125693555817905649732740538760688487809320662296561581598215463636716840077682726482022635193551814878380035454539091610746623502821627812661606671018630404780614302225570500025110280859889882975468157667571594080978118812828019933340638400703266750536703844463001420271629037560327948954227901984567288755487462703464109148842118562384862378115527477068083562109808182166087049178544927835529680587250930396913319436384262447701340444711483439147081457667274507083744334744717192622185610731265907598452106944802100653809242281584727480430544038334130422406997785868786098402391574242031688508870257513275056584604045234948471022684097142815242955503240506867932111543435516768418555805337758773104801253638237645718797996055110328062185523240245562350631497265293810088189902416429669364322206419680510879793778233284866546575785010105826348190882595053781834058422231863150918043651772081788354920298846798692993622360353072015584061376428406314944772674299944022596576247685630647069442103895298870040579729611379199059176662806060002319025783834065049787475568174366568516860629969066827092927883085165787432173344461591917569472958719132604746131096637043825288405477264938757356573931738277436090458259622091570868239594204118980513283906755945530185190048189462055963666078861908259147307699968148036111280456815256310994575623165633082797488531150855960351560775285437077494217184520526786134000491086143886055095377170240448280221389960936558695218229941048679261710700760379631131939149389270969720848261551525633817112897753528855532867099084983971485747829180219408152567479323637944403551788939688168674377248874810993730229923551673567880218447480719304965338634972585230873072604711730269321306193938729743406966338203971919053886814100724594422843973817177334343987411241766931998571378180793089737258146828920197507521994782349627281460402382790703816389753305748682995303180959562795738646303681037434004262051416985937627564159809321276169571695742777659195857599128622714458263520769474662796148589663816175116150050630884307795986183764421422775790352286116482848762138436713376085389185759546770167097262353407027510921537017073491636746479445539232502899200474380731463795799361630105834175899290567768674130891761709098869652691493568013448252115748951393251785848802146113439278801389844780155815822381397889036182945582869404280970878001780378129428088955419408458630371646551918374185387233158038758442418197544059298112982360827956144615887649539957232221258419089765499155507750614270927358201217241010475912357839632426039884432558994486958995388653840277123346713042234542409139954966770835819680987055906426728458422791590237006706413048952388844177792268308535633775740046258101296131539131883124658574261355894960341217219822671005840901742025884361064993465878766950644094296339806005637801163447859440280332236197616279803270297911324500773798768847350137613259765007653665269313746596315983270561151352109950677277944767156527386785321045975310601172696158253439844820493426477891752243415196855196567250988119999876859833316072512109180695615282230129819079002501947235211092709202798031123531054909200188580661352682399887839549326448904633752441130244936716588458356900649515631951022386173731751845479328322926006153918733843898379893616843722359410703846028784179083432305688527895514979525278970559929058351605464229821512778046148650497906902304293191181840663876181021958044866769592746350413841828163318380827268273855442832621420160732834574837474651249181380270920780576052341977699296442441823002611595588231263452050815653479666581989556063339466398360412454058370175308866841975316499157521756032051282470681139277047926613186745067840410482708597070449848119162213496198795288031258954625111418183477751873599831637547883451555603000222803159105776529574565800925728910358876842792591633580625458388784991293622036830795425405814090112990951504935513877055497584304540354484145390051976535737612883077403105740691928009874328509214285685799150038834784217629266218245098806749821371847507422155198559989853209672180661263670191959332896275060538612269895700020090823445047361499464132463953556934990438840251417848585366668895674044115755442908116771305079248392831290777254066998089833062979555306446199232457818699918937665045343985630518288686087180783880769311313249186484968195797306204846392218032156174694619549683223711492201469356939147789389912074226419031708871712137029730646731089093782558009597442043718976176303337157581336188922975813660691367825577710805068003613739163424090345346065911222884266789591806011637711287587966849351151547017742578429034638278524727383755110642335770388125630421259069644017549059266734837413277880402706710606683102495659702591724887810599219098207650008523944357751989630570432711329213963536569133406165223548770085315043252283412776188893177381384066363710269123363956908744990456291254199092476593824187119509585950612326404022685175914010504842695615527151662996280325753002542425122885431797565024847525579301923553108865588353188741747598080708448624120870929309085638030428206426580295799026912960899391211639162596891862983779875030634741288636320565931409385047405290170132522181644271497573619375433478792820801013271860385863795190520692402201516667947737901002025712261126337291255180760435511782160272513056150857138213723864280983616769334550644006864003491174690255277587608903065534287417887267826228643816982982795419086140919144366276736719827572260593226870517458063461680415525016708251708719772602959852561287176946126681180380892293617649248096597091754779602874949813403501485496537663523466099944983533944151826272963118768169820487745265699677549214669983437792898053785103923614022733350373374826717103184540996992009712665825268085148366444219206570415381054766520663144659222146606783997982564705784036944743425788774498849792697738950535951330683274959658144686978112571603743291278578938586094857093530934413938837106930844801252728699228381822409135943930464278683154064254857809510190507817936801126739640855239894314474818228354659721569654678649123728729664732500871518681996911766301574552079605995637252711205480393139828768501187742136959851754199467580700203205554427330007935326795731061660195643366344055976689116805799285013036240062060641835608428805261028102990317443026746100482783695823035904742144105756975981302146429910111213213565518523733273726654992014788077940699251286397042045992860289315379551410125933358359493239031342378706590234829323267697670016999538825063520345288930633045912312639899612673118403270056373012601982751744935442156035157776295822144622891806149131797067610099704591053228934781934620133582136782130579026025117295317638787891682428924698531127454332748607972531194551811562630764699653970632955397109541294622680760639274865066312307888276110948650312344014840366172661133864210353160546692094543100626624525828191725444566848982498909112790079342536769544826359871420179754309957857866868117354633636186600419597826961017146654175016056125622424947707042047454845365391597373816354769982035134787182619737216417854737161592779610603522754701331880401950949310015550176932423706669681089095372366622475036808905057741520695798070206169649869371305411256607194458739248841488607396232941274099573483654867833487151756765256933102356228159610975761382729436526290448738593619619985953211002354625445751906376419040031853604776017740343382732175640854336071901488007547761990863948937002409797150164244240626847588324433478234742855094441912014176433992152319294442293598489040617176720585908567570850889901507051223046608217851416398282501686918297410331856277543498556197479592223617134775586793683213464911053445519406849950545543495795461813197935111614350485433368937574414945719457525621177379833323031094737220918598012133976703158539266220203296661110621185164568391111306968226273403618719549395598172340394707603002745595522730695905082404053463427982172440031071975980418623838217440653682821813400118528828113241919374391322126392630780871833146682798522651858304653376638317021407869561820915372657232883802858306138449739141911671604585571998495651380735735850890734494942085485395033480655679022236454868014253681707251354616993598620169062596160674103274751283122890073425988896777012422033426099441546086220816423861208476957373529324767856368925727368161556038778907673240563026522651582864033954594841169184691452169650920249643975457533888374823481265577848802109769769748839594582503731820678911582232560982506081446225414888175645526400523802193844249128377180818694726435011950410121780912820204675005746173823553118604289011898552401561727118173423157280041701734222074152473333644686129874596970106892868146889559683492928667962596651701799269315081117089193460511937390797839983466990984269058562417555233792057665626779328531648607174695544588919719320859732831198328710595392395653293297678309323784035593306285315368127488532181460325411116702233638001391272444805580476587136040185728845266938408950100250778501364192929380684636645536713311784243035889323900101558462607789205068038871972147201182040901493559579432504372533574248929339034436395221004407622329475588474531899851684123202706565571697372119922586586620895148125661654540632692261671224967922060664869483516105162550460087259325689593954189161587085977953463714063519196467673359548224595341699758394785181729601372114500556442258072119798522829477540351749164001835661038201944184099610803414607863506221005546661664576776898741775702594081070752838444562577153897824955759696497731465228149631256797935945915760868003589247511846870028998327734978202835989107779755358583802444332007295389408409458184115796662413653188708053257774767491899195135136663486451816796653779425941596330014237438643226638378478118988481857287378797802888772270360068118925229526783942042620512223673337719887136624047249194755989079221094982044296318899708182223008857046466482848189716539577615302836143196949275047239689872553195576275631940724736518725028747489563404924165205866200603056546276441885591136507000914767736818696793353891901404062666628594423212913220701129559216194479116318392212511099319992358734544211839406360940710601221579671234637937789895635763587457856137523092857575111063499990207748133577039262478948582310859269595326367682135834346378815677421159551123292474786135190169405639918048978443978716268082355153583290683120564902088748293511780648766237466607041267277360255702141244981975461860002680095016854654036091508674140607336944034312532471634932531277899428954870060242744682574425494197293152909186633731123744143578465044756917714418884493050986854461585683881282316828048911959855873325837442099615511210106524814821511108534257246492381257640025490923367910412120982674280106589066435070481847275593116254707872139994849153056882661514363104273396860447429896398173619702483940940936317581407537931472960207439564044219901462225014667120649158974159272361597141044651658061356498661007550172942917012112392056611182766133401446064750318094222773883105718285471092111153223485924626890253141539135231979214804547466354784170360886566059968896502897454154367530335172987241167604556014006437467435551400806458294065341526587848465615861932941616838586729588108842150205885617390471258270620277973220579962184145360341396009119249519333866609996670073090785840013356678165274540183000467998829337157510014168989031840549013325094214341200777310365565568566959837792427094761971023880990796544920927645390932876505166895125183970404778434890194616745537668573732501282790826150866756921825218432898896870616555178643178990155504155774286940043893571797284025940532276064137816783779968972396497793659492902008776160185653968579371017251763773862965467817313249129695133902192979057861985700399552899278113462841062410825348559196388530617985752553271436026984791074740643750941373881141737492443397906690702773778541396504698208602584175636122612653275289022489100988143955507232418019102271470884475050666725612759018731351786677535658621853294119486145561066528324348938741312590833071253542859467671177069858295058796401673935522060138654656856629767273733306784905532738589785632172445179749128301019599854369745326299836876689198809249986507217741258490833796825809145117981621514557980066721505362293018590024044043121855321176271141558943413237503513339914949854010569984676804421179127191588611113727546723530369107201663243340979066402314084465856092838305151338436352561434363934151648887224913278670453421727159104398708929090274065041396492531650879278182084452569677531357255510151629836271942049063397303557859977874814848884435753837694213473262648498613109088362387360840362479763618649923776355494841237547073505523315136149176857614610491252073792645741302762837018287674989958113207523693298920933612320178192795607032526209481309647020875965812065712705013529187279194765818280271599682465876766319746499198152247448659337853833785080845143465519604353558096439633240964789633246475480482221157841048987441144696011774649250459713693356896069704412865035763755932404370284982491659968456843100436593603401268090245892312869290540386513700864305886322888914370480080206886035705085135535652021379542911639159435951215249222620983742339830174000689237014976754078968412656007804521050329359446731648515659026086352429714297252119994722238443709379824719904927948241998548589758201201651617447500788945814920991089850397380584961590863689424854046592094564048620325282693582687234964862676389148478056083321867985037222051229525981699395337243941354478658280402127364997426189282678658491903377673255982391463781869070256330510693717715687958596054318370045495668349325996150408594525211417700507949002007302361044706584711205393293705688671015845000449814524061487916148201946081287307027974807802737418376335549166962702467901873500926451932335644970702060043840106526796931041648854396192450372501211146677362115076028677826782987738772714507166499652961540359572609679241649307054797279047995829449153404733098231549640486896418487677422730314140429637062839764765916823462431677936582781972710913924719605738478468395532214378898938055504702413170109036522167363434047901082167485460056149007775465209622457533667507568401202518331837470698066768871043991240879002702203700973653875334869662155516978907222084543484955789571319074811365910817462993821178791696433981539459336013221564192098341366893938046574376883869987489029236681370472901454525643711892151600536372506822498853944590801517576658582862170385985616366515596229357987818069634734067383322395232569956709118887342247141215099413824081980729083418946711883119432721915121960009332912442792827048831153704379349415714706255949786346736475159469254778547721631813303852925398179133059766475042573497542578882711202403147757007110721071500788828442307933906423642228454061025017658757830584319449069837599066266033293508507845192461586465911409310765902926400302808974857401135720268218820683731377245953693374967334554402809156802578325412608624164590845250915292190154139866154463217538943151618234859275386469432362153542471726673908562130777261453297252152720483984343570183680120609100535990675519318422010939945988226427798909609308214070108847019026056382597912974349402125688137319629714283006296053640338418656437011592347610862793591249620786841861755401960883242804656225764757876848509093262568506588072839973172934087263254139561267315482400448465624539723410703441373715813770476874400019666725169052600925716994868145755348748135961425987540287868183084789518198406547948393452269620806482382143395468644877145553963627666519635066342759696316623521977531840743330878482653511449473766625870361738993319599535325113347801053498075367291064205454229941767271439068745310634537186709162340656366718076776265087488438598652781535526896699273399071589432753815018784784489366524261981164287956628822162422274346573367497509576936772426270981036385416970754914789726561457289221127374818230127555821357917651811690711121846161910105219015621203667087493279206866555296976617059497206668200618715931200351265530354701657016230531940751805232371479230638471285534234194649225476638851497300089171557733444661163157996287912905364143092716485786714595667505866974739167492041086818544456765536932050309839432839515411569378371912942649581176510209293225600150452777368107178175208068693208359582563454006086367272274614730202802972421568688581806556707271772924628742829131934615446094777781711052981877513318725488654063225539020893749223721112859885390069331063180953296529796102879371175426573084052978343145168712227989502952912479674976501626357295144481670554915242834213862979309684957899873151532754657252582459804875566742115945933636695071996431775633072066489056237310202347490735146925918357576857310294370207423232305482961671490590780036989998180012582142258746754935031901022699451985495786804476346588667740098595276121458410636000679472792216022337518761047198203472458221860420904599600455052239182871014048247129629173180903073072364351471694906471176830826201075891982335774338777909668703460010646926497482459287874227366054455427942284260421930286073217185142828559807575702108397767934576685315658211979965907194413422839113185506585618427795650540785331362674272400138342301164815926053974405779595196720949103985851612841934668675332753369063367600601196318552270049717094809345536445242103613841100424379731220579799387838811391547603499977212469177110668812184908249514877746751278672931563228112741897344719590154842457479409522953295644250014272343544666865001593216283356425082206047152155876050859786197410768445295195819600152678856258478264454216640245545977660336025539566031232361878527663627774108085287458108575570534983744776652083898417958705667817353735014080234149519909788422044999374761093401138449466820276865677494106256435322353695321956779055787620671739171681288509066970221990774128416670844721913084924570812149556568844542049529789094615175309338057763510993790839630086911042554965315057079560713920170008735092043811090231433816387032147454386833968019688149938538528518822908066644042302160952579230569678370077685819467243372996764526257391688050338098797491516595346246072437166409427551061633611336492601060459243336575035896601372430999251503425652298640625358012883454040655702381316778309007113275050205162139411814953591891641121120808906953347083127519595467386046171285101045421490934758003547274799011119003780894159104351764647203058008897887532245527349620957614198807313012239160387950466809094913892839347618797813007778206460131843577166735492846879753551600896522600318259543120899221935408562550725278895029925248746424300167072148371302968284113380050702844702818560941828878546020160664834337301912677781361678889838100749430742379555827439366315882780099331380761609979012979019514436528593989550559784416485147801979199966950649201483336584785021091750790507478831303150990658136118164373191209867555309608543745617061268402741025427814037492862371936326659109994830972947116441908876413657080412432818559954614183011011035537798927312662404417114011127426812565513469983593388784284032061324211490256227239084392147335950689176521875392224258726824096423486968293584020910372361432391733458988948708864212656816330899411966527996102928301577450157192293883843508077560795203814612338256937111177255527628761075417205924297959475333071965605982361845577439396408628853301206285086732228007633140829804740098572035559462044932636389097344010636893600373079617265997517871801619700696367946699651231709025124181296697532905062882627128101270010266669067523769746821453186600354014264451529944438806113014515828391333722251234550040439840008273734895958597066290238828450128832685244820527205900598712123366544006250446829590526719159441628230040753650563257135593931278108772791806783185328812725901552451166865615286965051435198623982392085202502419203660133304568798790701003847240514345786915534040334227048598538955153767247804263422371890670890314350972162988203781578971448707438644582374933613776708071030605452060933133080031681631118480992625549288558350883782579655161862202621736826573542351106124603861959351784494046036792039184461366203716360825313203194630074046014063974996183988786648983023152508305641135541302102552650232038659247445236780426052438006274252204647390585049455286061392000880113615379089510138775232554365492047041023339183398848785315119260140784639358862669631536961610109240719392393308726586927889331753089857743091545114824091473762755426444402286924364409275058252648864513325916773340783003789408294866396424387798545073914249209423022726577344743452366502069467233091163191238547471460964981251390390456995817531708275264823573502106919103541798507777249068693354699077513704474639989161999568114142486250835112442596142773983452027127804096220678592563026989653984137043458226936957823532815406546974265891002385405736186161126146282842466480552122780951566585915828448094469406577116603638842452284854919924953310679242652402646957919927477869952452434644947113351050665994306894496427524487104890601754171502231753581987301610881110872226866195260023376876089005335860731685276066280250190527932459678931554286136012370700038758858217752597421191676374545218827767185642942303891376076377960646911296626373395881625881569565459562985589590179613866751760549932308669594358581195034628371117058330018852532951657351013548819951767227329255100440682468401981218777945921446502793566906677404498643445786942505983234097516784465589585906687751730348666585982564767902270384276068441640749040146416017169893596872979091285356119497877149918946280030537374099527674356910680652655852476546541118183749388964264476846429708311299548589407525732726974255375715550221421345539871683475887937998213286965863584538244581355658514037604734739674194459763688223316815777903355669859372701710861785482767656060059758715044267199757596742567294868431111487210707167386414469113186082585834258236195085502739125696762060152224044425700879052576031424697022681520300380175550993034145315932620785272956761396264612977969228085148972633302170005268047379097030685010688583791186733182817546114948598167530792419188066681238114818898782550298644306269736799512010860295561766301359263397889310926565693133113176281045994371096025325182162934173377651514565061908852462261138259199149696939473157916738965510877926190906337568554124073022487146508562799036559323198086613439950082886715110777175299772018317695872542366836577612022539384639094598260221441676422040211512640459446959183453357033244310356082234980915477770221025940543665681562112463061680784420567445883282781683838872546430304119060135242719218988776748543527212263547238467648185210414903057267992999368321188135630420633228587080444264422255163612310157214574993500944977793590332043876402254382898750650525747145919016058741994601546708899677356342155974675017745445284690142709389241375261121190168693929448412977297050861677086748793558683025751674653169352250631542408996658331872740335462683649179569263140028317574182979104780165096155095411463344201965088942250673998618644013111493850183396918653745629785765301366230748026904526063380722800181499003047159943278825525777840846865216329228080744961581562330796622754242021565946370737453614149702458892917183139217787953027471244670906449747148226928140582322832175003013628796718677938201998444417483082035389463143583123789748491883960733963582052399784923277505215539851195260645667528492277105017864562651916463949170226700053409393544976626521271204004938849645542667763473004556637204303380387569182798908630658760129119137195292249147732503228215879344005493710781203827982531103864653803632635264305641240684663984228846624494307007476733080998005113795746454042887285544570600037764142634364695732147956030343164188917559849204546502435195915907267587664331089856237533773543026438715310557992244268165621948897945337924491067490409339019695798162103882992253006546096942783439109005903047237990979584068774546204793524947903624404334778828447067023777530618094433644069482962985658411798886799728200949287514410836711635281820621786355835009953129470901947973574283671517278944333398549257984432644034103031553878403452561779133839892977986488974962878662740022693290775155619524396613390941857721608460648627684972848545608526134996606547921532960292082254669833092700074444269111784632906214400897221372750538702366506554983228046239049013808960860879874642676383841443811217322011426761509369300375845163786790530182760563753035492205785030473811799835640186842849340308549448378996824592827996573580059789871376400247303438459127113231604112431044669707308815414860786401170559584886552891424061959485279367681695566738304912383738667389777921369880038311511761678810453750094363733367489210768805616890576776331228981015850111758998203198389074958273721337218066037579403108349869631163999327968648097477547080430103094279011324387740027927797721106594670677955992485398843498591665517344075117134312904268281212500932675308854829500844918091818936879605043548113948024745118905804307375358247498564283656915824395189851992848556812401156141384142287990849338978955678423793351803130887004792601495303308377609009610746083154556240372648112623057887469921311480442610964785586450082377747114411061025302682602742859005217365654199176376115981087935402624137744257758178918230012431685255318747427713069031118307065704269647401113694937403421011619941057136873666584371582407575745918428119103983225768891425294587061312456140084412893491236270433172829082954643287329439311900043023520397657748134069941060243874845796555701749198231567624067851764159160732755909286464802418722673373557382978055021175694772578150622982026585832951948723719519778335916686315706878390360545527658106793839798174899618549840069188523977187905923795461911942426957989682607920926957801538821453170335137973119377844062336482738778934329656454137107135586755478490673869485191444000836264683835074453994793033115609829509630807656102226415724038397859715895417190758078372543508695627409239268618368894666007025950365065213601013353149767507815418669830644454979692305026840306078367285288476976408997238632610384726220137444704278177500685480820639719067820483451880371717984380593783801796071928217563058682118611639742065092893482817234962974811350184177360915429788031503786091778856582391826598993398874890431202771916050126389790295616140452765371892737389043199714204861069478333055564493678270240771549978406357549242233314155631571551266257957028083274719325624912335110605789185466938569940807737414654848484800362227512495211708174515560591598956404734958656007045888635968870336219287036177180678921741247753330582211681720092907212694368719242408388952618724177104936524218459396538638256786090594727573049825251077675812805588028538041469158137836001662549422434751419429355228224094970015042708929970718917571987858043371974744665002518802680821169596634854814364361761314387550645045760091452319343592102452586766048156326197809565715951714109692253217704236444681944876989990570484639562960954696220593650501377592787122306508093930601656853596831748233702724231026920838599717284160864612730956558750592419373164414921771634457383385308282327983044087895911362317227690435979571376214098207025083847040203774093361624791914910403191981370691186526757188020580834200756025683251689376471168962520716291363949915212612094039813201518004418091125985907851992099744982303027502308149488211443257358406777819376122830718081949193361319722175873867791670600193439908872185935601978864921178562726521287232602044588651821896798917359999533162281804389213821649792593213707570703665750181206693922337967466977335842497242381388508652953001117986342679507796436254901789888199360428720223690953286556453163135193020265130205855802037722155752651980933926760157700579485455763935899974778865860883076490379226243604404492902208451280412704243231712948853234885846061010127805921515194746118120938067305313409525164386470676505586254693152903117680468733706626124442545108562262791246175750413157122773305495097800318452184209238815137839474019168210699288016723498217468372011701577965712904158891570346443216967928060002275623741277037063808096090956620315621100170660036787985553453504181845660669038541533737243950390749728953969796770597058730578926208132455835566806798954764814918858968279805835954353592839922727975521914352583139822081064224052206522682436560688322281981832524201660063165825306982575938758278515175091136726082066733412929213727955158475169855439624563267741867209985353130984534958422449687777688686543206100812535041706324341146066386661820068065245677827049882178298887333486394559280105990412048174849264644350159334148330119694496045122978409596547559992069042461351879760520676463043054611067263929182683562786396651261706477432346867965460692639638282779038184932554203176821228007745962888685140777843208176878775744456596989141251463756336381380187385129828576174043407204754406495547597885341400703759956169575622789193888012245205189222003419578286934347699477438725613658183154299303509238883698248180022238937212401881111230031400329932335976033698884035838583110682949408142332752386478077417501295358347061993064706430775329973797347889503343927540027931546299072429286553738945054639078728788467434673805020901006113338986037766872869657910579179651052967313901696429238766275427110785260786608223256199055409906348866739503267562176744189077961415563356317978944672557941295651142404940214950607874715164642574521312121619234519973687831636752244119958346087226113323797221729047748602263399890998359139034752657088504556125133888324794652788180306921189094396855651943959467952697653354481214188614952938529217741721892983521407735768335291718465488418335907712070474377492624759687066508575513539327744346806730572579729710231183796106548987204131343763391019809828557453929496693717410052031295127923046780504428890041124126923600127283144411909018325018998162287519754053405184687059991705941777097297278085484048052653324146266559216145131559365998767925530604994140833633890603853300794857646204012318283178467375358742737915548798059887712368699548435198504985993963209218853263672377345561883200098163315198816920442583433159981445826381447787616595245032717645697653549732699566769188933326296388368261864479792752716496496464589285521647930246691426447064154869089510915259262674935874698789905677564406775003699847000353889947902339520515250822057052807137873886360058230553273882249449365941667913129900955720870855283935234795783969251980103116583649624675801185311278921546163066041820274411597791939606994320108206572539125197944465261062531850548313730786478434953253825109707587552984391595510254330087196490153144916072411043098901845775225686032167818607866866420240503024857375274277632061043903815696582648555616614482920362616973663029493432082211017533108249119067072842682581772616854333235102221002831115076124663944433946631537229562120763422264485789931557007556293128450986045591616024093661738145094459531387853206230689269025803036011780606836134985350106535042865920675930568334231753534754020758120721471123105217555138613214527465507150624495598836219239040892773133618511573599203145059902987222471816040036112781489306485260016965810026202891907380827965994298574956798134966760028644574100315746613475019726621306867563325692146513288707729820209977592749795535377099266395330872292356822944126536086630614591149768121090161967577379884272932279541330710148789902890780608556814992542165616446377596107096918662354575885415526720897931527988081190234644460105324075904343031421148690965471719447218186401976204377974733709325768932577972316286156780700029453256961721741658974245120215299508274230076957070580337788086679336483733030740016531463422258567174034918660954410885671829790077942770937142023707771373504677892918660258749440294193378035447315488775554590658430806773863358866395302579724804323394948365217178072221636702910940440707850734581495098431817515593460883710378574423058388956330541396927108323829929165344906906402500754936722539354067859286547812762181834753793991270484239227311490560661779068352070909377323741174864518761343623635521953703571500906069661560069957807751988656606291410247406948276911743025902090652776853646029667277966918152974320889533888582252467146750789443152543546622351286699412045636525476714114065938080838734444834961339726657416907527183012057837961344887858165067920104877598302439296197324248040469483066209450919054600706617587755937225293953837586964461388775282591303095521674533559017606330269780036197739747022539803643595814824432245491722297892297445126607295421182732338101200072397691451948752418439707931921080657568522428388438845910776113583379203552544554557717499841930470709424568370612717709279455370641114610424868146599677572726894398520183587188473138768882708157711612620350060440339827501294784998721832290554358289007046809189408116597846642129127269542641498009087256729219738716517291331392941989060207101275522867568312766897126748760640153111502696377296691363186159536139087818674223933912301252539608418193614220918696380804554062488458361122474250380776933578302278902551818115360312522137168227837388678533274400789578061507840548437914489433056294013527679212784095798213749370073298453356796081656617751838175436121249984144114801210919133951687591015586934056919905137639561574523801946440857740244701602233900673112191355742947207936112338482637432670428123840284189453250659457912645881070002241375954692865724128586784204903914656113431046095291564933616338137617786425906894811978274470897116779173634338209933073937826647726352431265418710884843230399408656801476873213511551538130765236586088839215976763365059104662915252267528572847804085954151722041826785472677288500121261307965926788971010653298107529164851723023911633483773946788803525636018453773621928563492217740968030214408953465025901460552493183444313466560797742121966848344115803897746349750203039084814109443044206705387918651313844101579924361250028004793587236467217560559148850845986949910437825208182053558896086858589098117935160786993983537741169894490916603417616757210074038845662748108759706036937664461698766625671513522288382691293465188446259140364416379690874319803510179889355033892061986069111897105557964139220952399501256418109770454173004714489861251529634606489323731054196052420396793398375187567220264796389671975042233091208469728800210037854958929863205466967426950795913647067986626256573720997138429748433985180117277714623802891502985075714197158541649806453863236429655990161248238442358958278733125384821608810385057263016831125193011879722943298981136261493172901575280814550544669964279275819139723777930375476599354669322012705054075674351710570812733649993259346490509783248466506624428894536664913060146413811811317389383840488623563971432226822377376972750626544236321937121945434238968586756596599706388708614891936689009271093598494965633825262791444186004030054573122238940365586922264810262525347140945748394298253674186634626054019598978999909684822130197519832962267115008327533004057986210691672218095309868235220938830433575190949925239018115279138546894851051461607664467188444359924444202058643739089397874714018790475113097160274221909261217936651657355095328346663888295336192803503014396175501435985366463745431741208547680729588121807334726300682722800928478164643864713800651797269518941589812680098289592704884339130096395095444635434731844096414581735124306810770563030716321573286099629228039580501080265377000693234891347839297624744611115316424984584315229391943110124040515286826184334231401704140861571243539699054518782480498854367549162658521016159174107592215534697471755205012651742454233312733673524576083262240486917117993830596171501086435092276066997551370648582951003017004914140720848206809668398749990034935929036777101203769566529847573393484822378655310096951397330309272302439477939871556550230092936525490455921550062932625322831028727142072284691390937914078618624049548598089794494498813129744882508819858942031119289774493905598718293024183412451367355421172140451106827894229844711784901699707280505418056919994915893876351241310630775293141459717003868920475162879324279370588582174804854486104366639012960286233263239134497197040650875182988089500870142839177747829000597187268099942892962978136134622562440084167500729331932888199381867147671558619288123732146665681945110432184395567350253815218174833983209016191904231115112044779077912050814164378873458119601648160617719226833850316416302436140215680836007118554328970595704425127204714752508237297015700046352713611916901514818149230742871280293575547572238655388988331873076641537206206497416477253776633363784503956900224929782972748111502668103073105261755719974949060600393681673667204324123696253518098750333070354365024523358945026459360680543217369842509142908205235575309420645178443639478675240424613265077575400294180198139139044453329358770955872487914043767896271130024402539151288088475637986200132520904203815416779243004358995362310500177287617985726326794697399156934814405220107498682918107891752425989731160042463272919374479957722447043313677067716020865070610115179559990246171335215982123326135820605910062153744235245278641925154836432946581386657169275729095478526512527275588153362705133778206014705972981984163521672474428492575933286843120562782438860828252218291747074418297648111457737848561018996434594437082498358459545567114667762090398588542214070803986971181866397081989654244144477547930345167322052800564634515383459440725578327612291608525385287032499188073850885667347218586204170205482290459652453291087188874116442446822525641278520786419769761187999424824747107062992973889818104539995519999991802291019220727727875386423914616877534996662052838739118845121897396419905566444451111720857106463481353006466009210480782858223692039097876566361058707048733102371307796595828523679136637022783334927849157307958544647790248963450326365575521324614685598855302709766126574510675736422851580358874330182637432765485150016613228662523553696642024809449151818066979563273577090050361500123817268417416506220477980603072007056022809840959653132536244900669529301669914071751382024808353478473375447469629421147537504619501080756250978936593271078900410408161323876603066629452196639949509762277739420612912311267347082333343190275082934555416458767138417762341124610557198031174282582266106671369484673782644430313715009760498623367435198565470029254197404178763733310090228433635767559335581449699121845626991459057643715331443233866918569855729435343866953207904416649055444692183333233044944827329188927868618066820152088014737298293374776466667848014311766187484312092095777907461143624008964003469842681078178713944619530070445661627388568350082470443515834421301624444454080451138584584091768550988822820221522602123138306246827798719909490864913093443337458962220378268749342834546031836664409146718166266634402501181942232160062085378831524383216802882374044048744366820823495949319683760327386096190716455886064755865793689671812898684878717031327936355013128003231897401163079721760381877075711202143848658456873424204200434557695751638743530234782125840883980758959007866701319088230538032802304148277761029643637467836110833513982182784578060693357967255763993949472919156332552728604619072635167027853624135602887729322082854615644606606892621345683580125946672158863751204676984161810387659050142473218696668204546266437224285629501143093611876349231397406139521245544769721782816749588444021187383997131582861703700719290621862802791271665041578067920596560314091452255444292966074389580817339243826511971857907947552914956895811798532521528154036822945325282036491273709978866011348971649499961540907737441171207226147607884193570905405953266632049293949516223065013269464522164155188101980443977250540907655150932961542006017750305786544115775453379833213009469003583611351169860267031086823177403902235515400529926266592873650307175941178420273825014341200753482275413255654746040876179292986945688698193898221284336491292926898517183069355312194008007827485636059814541480766270572418363426657959250682489147570984748218120135782202483141418499554537958970589465933343263638470885992815575843105739451551284431732590292684636838720188984879357340509769285518517944979918226892208457816496561490350063954803196111123581340687900822801135745468893822627385562577098127070411550308745288159621107506250924600632588059689100738335531787837451912441950496777150101026626865401613770487588722684476728723081421565131886105423880094767566593074949593704668866144389725830500867651008375694116700867541375795096744271512593396002974860376488546288218578652901413175266792071950759965748001222802704816640220893170690397606180995754980293478030874039587682228844063689531543102738693697570356880917272300975931298740936876666731030291582233466192389321351583663888230544412754684289962183344122134520918197673217023646625969482447097734298307980237624639387449520810816724059418673317237039506658903429666047895284416762524258128061350547549773088477950796591498670534738205249915913078096809700983353697023492658230322193018125772666100307246484809751023381074935981735064406440426301706085868761148434479945495568300289778684596703725424443119108623501867604892936417788763191257575218047657425205986953596898793875959946457506577125080092889818477470473147833651346052852788608667819617688839593855437036663900555752690714995867717208720281576386780170995148266755482254060365072990325628347797100268155562440398356598150529069693162561478474070275263922818233787504079016168523597568324416247309126409907698488917551078991479905985606503678842810236755666757563428068948554012708748230572635720939769867251866109711546977794104675733527013368903270208577550919876762103055782142116846573816301062646676641605660229658926147271149987880036596601886379882770033684482231712722491507967490846493711794364282108690374194718979595236762964908352487617864310199337549645107186567735893759139587020063204100472461290082573354153372831139661942203743217133909373721593401282145078060452919662682847533101714945694314901421318121796041857145917603672858247820082403580752955709701061228817676000056533471316339883641145384206653883121389221868418385815786202647794409992793483382227546887559077316800758988366642880046636738194113732590724958938859338801231022153440865547638631207178941789695924638546400397360416282412279845987091750917339554888780957668395605164107274521332325316406309507761613852589434238085776811857495157288094562252129585741601471797842032013272678573750443980769655938293406701613707149582439137114716827383433973198837064826737814454365579182946192564750005682803723531699369623355902249288779972526424245121513170535958964325933213997576901880338952513704706161611395927359870604671794328291416470231519939597270141022564218875612256594969699590576878618488999063631360129928627498252040744138026536913785697680140160451338622903100311951342287026643160694889001972092299748030556511236596614367991136972999706348341925067567610306897803971121099261664155969416459011253890031729197388640552651190791240707805653073132532470238251007719153428842329599814567886234242224440252682515030084096259339796796865342600771776574703314300452237333473624696588163657393225031801595172457048612774288878333683282622269314041343986209064916996218540777638908173297811598563470089229090586606637465367627380301648662404070916929009426670098301303947983674845224375265552945085698054681782763126751053836020354980159784305122674200171633154818978453130970361472380804174914830761755593331121942449783546153636078795722102893493392571451049515707126071894653702908660786550290426505714346733755059875898407915596935622175542870881750645208929905165900914630756785344634543355828735445955538589828649143723531488485400361439691579300912441400064750745256887084845929771117454859664904878885349888077432996970023369042830157642413664828684529085188435450128592800531228332323522689697718854100860589171422544171391539534888021366369056992865047646447200977758641314347878962398869177540539641387045451615236388436111793802772152042057753876089742506157300324884984272316078562651356383635543763345782303207428819900841120379373641284998486712596037719612637451575539957242777442653854428977257606293398857770534675046578843412212100914267441066255838919466132632267629610245599911758984263991619485916677234695924222481171070006859854912420473319843562443116369717035297194903380643023472753837480834369132711938702712852337274471214615292531772641814901799365771528371225732638780188951980810126953967127864409057762437145565393132110138360429657117990722807475058720606491293313294450418084464319559610571655616435403804375317976752506501505768863681881006985014739590394187175703941016189348457414678340857076894164844645203368240807292996037995651358568436670869391065780681077878382916873392798484772317241094158274942850838270392545525208032630553536102644770872812440143885396269166819967483791288947724979699749536839375202304754216339942459933276606769527456766137938748905084588486595780356407353468658522851584516975551957861057754429717682055721499332176807406752870348534975481755555710952060209792715881322265182554453619239732056577232648180245472582262361604573041240755598549502480039832389559811861550412127794189016462141578080780351442029047291469239041577665991082203677783272444374308446755490209526397022281728083607845089256107478679198500469669593114265109917608012624797855598435871154188415462089483413946901365204043018515835958513234096293477147211111204074949167075676052545144707808401270837908850593431654513962731237771756329485272860625327894395439632507207456925953365864351436844245104601943755461993924683446061503538032655423225274855724016268421026636903206420689059199096900812951889580052004344416340767142207429906737101785276582031516911800387943166566233312328964129051075651987753973107912905000390615631219915821965565416858553734809272068920018669629099458220380198370976233970968069869862084634509222432708659265237091395681114026987423637561057825611782802696398193731827484814506517241693402374795508597175681240424397722385165781660113101290268887756833533858415158425759281732310910904693116668602052825297127382102319925020940927359491886326418366372478177734439314583715558380101326387235343185142957203825026577626473036436786529732445060093284381768217349909121470440566980194494495081000833650467569987350667231296676509373600310706825265114977280906205581451274489734251905873358073163207977732822702054175540671609946171975809316502212761641891955386308979638101703362129992008279901383225954957170554274382409030633337882881720576660002992382072241327238581482112909944739178301976907386779865440661199249023384727833698834186171758557977118525298268215078434017093404907972271091150394223286121941319897944358930533944518155896792111903289385879319031648706015498056892522845601304689954438641958840243252212432475991907493889354226557160319329583664778704492535914016786286512585355485999067385152974682214174765200668564178110025718280889829919121568352959877488964838143648477253453540605593931343037249458855188805387995872021806850125884980283610948351536838372751225439517912569424835848662261439963876599550136973623081556347743260368145103700591913434538610180911372563774698672332841238577718294182276004101681847041599644790628761975002032024075027511202889747108668870195431703672162199137576648791795113401153375604058775186285970285203217760588324368934137436635763474622187327425667463928593464190852838653027658454568651257033112780982439985308524633809335748958070810079877323873918844274908945970027208976660335660612523813168249882636442196760987276288078954325668402423604722430647086009452274887525608535865991237822417246615475540462776197968038864234751494435288023474027537071823487225164330289139362094939709652933118114967867678367762307517323917312107764278553888091848577085804389081536226380113862367636171242088732541367620229358980042711179091719217000500740068324143071628520387462889868453361947313378519384742318362374493640436893290703464154609209664549244491868203545029394328182808951164820795558088945392807288671214971795201171415826791815855251087566353006029802955771541667664686364368315513940492927394722274452175013835683680819083684438304976103644449609881994738515668952480856206175808443837544376580704619684786166646626436137326877663475129870710303354761101275839427299206949198813159038022130569972358392178892562774251258904296018980620716348897304241827440950880030878446005086481035046795072659822791290637093359428549120022949522826976301301334083123468947520668709856555484156985579310656159116801267673371127377068803729442189098114059770492257175608000900528044196027838238261974253800167886312140935509377655572537334112407783686794398297276949857867027832814090604119137154527340612068751233377777287392940709404405433672194528296136842467884287120987307092197555674045765363881463635658718173563965125048465587206715658979923351209297153019347938510034996902538613974898670935132518542554755795904229226423069552643840786320074574981044445750057970507268071881089074320898812571222976696959955995783943705860350129188635581380048100627944208327918004241833109036752235799719572189945471277680513397539385878097023685862503711788060655022723209314723164122925515273570497430140028434263000173847524423593347310586127404468905596589507716060607716827117185145873377502991836644470659694337013699929148175855090798767104972552811827415811178663228191298584630153343154158378534271226485312723110028623849816999223253842232194359123549505758947822331558522923603661751828490957613103153846592749257126828087011681116864447447424628166340502551662426102879966614975842437852820479116151750754272177149481330630034382652401898968056744499411000870601800981789790773491545429294865590298023189787020456102110840509476987802916054077072264656591143631115855774062960343813549566166350012704896808454959860036776039818682365579763101554137954327577156998123736658167728620088799194044379367344099704129778677028125153767682391750127023515575319702118175292592923730521633272704366268202690986541210642464381345878147155473432555502735798403582752965296142168854076307932379619243045351627081795232108359715950863046386147339179202394107048571980310803703254750254078837833186928992930051850747474348171197885593985290594133166192856265202833007741798111039772263099778040119132561066198888572487591472519507519164648888819102640341865327737537780203433627003065308919105191719495894917693313399353943896949927007068175539529573651448157710652137902870541199307199728800975562863276235243534077424894284952351059699936345479633324911257166645031822671302530661099451258917245027205084077656465192350482974281634707288651201795426566849258957764384645082271693625228763578724463781370282105404064697244233514978535411458551890676887260044065466229055084441998536063707059613449115205495137468010865121086945881122965735650621361436658411931763083936522428067088059644766323525367028931537575834647026207479661858418186211365135292579498410813274139111644982349358616396737988879027692923786672392955614467494388246673108654982540611621047437738235211338819750701664899716653380071342176380379993609491530291023402165665008388086618178112600958594982390857738284984318267845796121235921445262581621471833770224459014029905018945360555028087165860399214237415575709156984910289099482406743854021390791050843013044776506605458272736066989321615276489091806085365602620724832369419182590940001065757124639637088113581785715197291460986235590829046986783920399379733888723311631907516537796988491185396321861940002616992168075337201536900890460740299504618965475765760988555665894247726851550570894270419292891517741273633399995247913038583493164358933964930350034594657294480237029020596054278379053420334732479297387816789808299370921990710003835000907760662738675556782255000095521871495139693716895409124228905411984430778928592185239384810175748872437430376259593714943494149268528869684397115764665755400550561420664154262066473623453879241499579187816514600692849363104501328102742579305993095667791755189623106121720785853965254998538811485024418360345114618618911901704263869984599977005576813315987236744978247546520357258285174314164844625154418975070033434443070949705225700901031823133275777428970233042526569661907581621365478528067742148708247435786331721739252922204888756801375702895750808545983411755517928311045775315769300091860838602308922551576698317831431184835440874135169276425805077916721043313233690993195322322788847340073729635993944742257615361551295152280381092920656756021094582866884473427933935172193810407313904166053400764921485632483709349246026005873981205585878870619066967796622044446716433108793757416309490195721403329110822538503935579879764429436993904196694155766466269021549272566437512276960716197571071705854377867494680092979680153935097552096755501913599516477463670635375135547070191643303417420414754322345288436824074998759098681270262507258723290035181448401189725842760244123471953628862637567628936750125293889714279537202414831619134832769783760115664290165695253615386286852781589238618759901532569034083691445402549822513434602525733555785018771612290885307902085589274047860265656252364507508258442059814185360748359889712268960806062599104683419272097431880063097194474970479698398570030492304270636288382003259822200458958402413838270240426731044471612988720765634758842592822857973789372309451151097577472364458863434934113643940639634322065062508890796889765822540391750707274446663943811384307162787317203333643388715211795221643588918996367506588450867566605489522058829018178512919077092001376587114578627723758605770620632217198555347192031365530564549885972364484684688853287456101627155266887322855596416114457714168449284844801937737504902003773310422320366222009724112605747967378141215323164629069353759587873358540740852890404318505207297205461459288230294999581408894643228575200299409822321916237892808292023638617244214893118531973454219526641863547645798293191554962884639628632928541426657059742212894106015986496054195522508808444461852542506009546346242040162855798609359534162074062490427315638810384830852198018630065660284192630200251838190598479303481717568433235391637228180606918900175436871290120064931905845299161711474693374025550809303318484849332423047880349440633458595964411999718198747610622117366249132089666425454254044699112635940983646062986061736190196398340047593217354561895504301131010719558547221029507071116172848830796088746151823485441308775489975651693076359361228553963678792944680435260735681875900342551206600430058651373017558172594407364800382529041454225906385761586265577711801229668474498060377005092668934567146531218033658255142238025072003735435638816894665371046487935517026799401352683818649345704906864167114103902250056360983460042216989789104998965301267094214257701408518869263338565674359384330778307180852575675340052761949779746815058823501933329480071954267790337794436058701486846040178357547154685728474020037399975601836025697169387656844057119472678014728243398378428270953380486434893875148179250862952260000514242506097911578666881527673190895437708632135493641585993618581712523527536191488331804966652383618406045303745223818689065451578625149368245773388917165771195156153023414316609668402410869741451727322321022135858056192098857603635734654422162777302198261097170467855994579139807838011289847778736263946527306942334390964280787707348695448964576028975790438742061221938651926626343540330685856272175077482215646647629817944643959376252874954308621040819534575182109894682901740991908637388430448284528918712580924093613926414778647492527507803679739227510480856519434335374234910558138683980372248640635678846990072262350056255335559469497652769116228585868805540851202146815481217646444307384937416328531390689936331087214924987467959251633387896482051878747237655859223428438056826491343934852247824419315107064489739429745126087829829845079706826115142608827213272393112933373295684522303829681718297392593689239753203852970958062991724849602852425521508053817102546871501049327273581511333248559931804446684779409368476256872872542654548555066286253093724934820545293651767991623203493839757566110368951962982152582511419135104029613751762576674055964806506687296815327619132685250850868871394312325787758140547295462538823018690734473700368377279858242565978585853223688038336511598618660399386487708643994997013078584660092930421222849882679927871776120232955323570167375741347329849351682272902403746921591125247392734360701443391556057971868522116738342671557836588256839783565251633952607580149576245429198537280538947934079754583526362990107264671192290545976510394905389819900352400550373013294807399028635113711317028917942526454641753467139246008399054640748643513098656356100571593555865362282847299366291140922367876676314174133738793133432672634777881057914797589389413085924178333395452300600158465007689400452933143223475730248976739299010641513471022721461714854623238036864142717945193340347749944388141588041791529810598462440231981241497062547999841999325953198424483376449040594936564103754058620284696582937688511593109514174852446799332278832464299702706860510847281054146138986343888958599518844407972349802600173006021205032095686666398691061993304073139026353664590152053718332576898360635436002053524901609627328276143038983943498085990355982935660337987951180423773275025584152279749610557582990199150607459571763584132949854842818006505597270260228319321785366152758320804821996232487122883943555711731724414573792086053332761219199691036526752464691153735674035149392287619043559610081276205826447893989094857085606646224358021213216763256356819219732392028181081197741793589822084588752137616414539356798298395804512696554694100994662485664398170217863989994150584981426536209597853952847178632609082653816962909772726552606538126994448862109472274990577661885708567652100367067230022668943381854090319995640229908152602118102896661331856468146525955926943584456286287480729293151716121066099205952041812927670978992762599660850176776657651942014177833495752890693605969905125604518662230867799966556838198298911346880388970428618247454796159440245839868097873918236639550078598763288687002461871395117497487778628811196844797018709481617975488626316020327184169348661745250245821276983858854729686624360606592961464056832228211035799276280514077759514822238536059875789759182217770313883322928487747465648401118493459431398530208008923312672408752630233055624578851292725711718549829375963945558513948898511749441881233359375573979864911971046954263252425833405213076623942663979636600931715141471077360337607923667973609544321978298366305975270516971752461359402304618918372441045897912260006380530421490645563678114922526808208570818340724377784337852013660560859423750943356562823909969783487917609671980291630885476932707718221627373535808110198421790557698558250516034178015177036630115280279804171422834079271770130070645404786007377150957195292293267617915894954058225967914032262756208070362744373782158530527508756792082849486424429137350767025157332225430994978109194175148896043852019728672105326809900989202618398055878329832997639836697072421547315369774772040468115938918255604120455649411896990852747385375270489801118093056702113445792786368045107826709756436761224024511074741330855728869188916380569739365642121920809875492905755011193016232700238413760771596168259428781486108161829436204351720639028358676680245537876556386990525890525899430111152834968183004370054745715517563644443601834205111978745593191702486583749607491073464239866978821802871006572729134363094091148672336830864035960212887808477392598925574576394875446205303405160587165546689190922194726336698797928427947127599421468933543479203770886557538970240325838372260434002723237839541223343922736873193720400414229570668438891081473652134827239567224063352493488014731343143328726366649188077318133258568534345967786591650736497037942249696207169627025519081877278897689750078433366107198242667257170466980397732585544751319496116152174446079385491813805759300066827335650898115897274679207037643753021108089419021578384162868203105308318371320253493495115231487207965242750021667443885001411088348590768092523476592970354390395288716917089717451901297509433588772577848976948078563752679620977176609765410335511755612340027659630403037159033607995392249197749157258974478164765163599305332159646666462539425192284884213049007906307064097315398584290449442399445733464854404727463138466881786172508430972433858544258279236062650910570766102536659916311952798699750483181647651271512826567839191252683052719573021217054355129290797618273978865703664238752084707203286987791885936092492252734429896977909567403435374219515092159085761127482673890385682514961104413108519216837625716295103060099481142449873924907645062500680463483637543281118055116286222052453905414110717731486445249957280336288506324612349802696777248282887897495772801558116341600554459374117333317796131238765214439136034597916939366258785839852854768674333562229611966761997135141765608283906791939887500123094082347196914215979812252926218739965493349901661114552892124038420863553889866558128951550433057696722046093052484965406979058868367917764237613969256428577974951761154343406855588028742899813983810849117882685787580234677595492132936376383174715979131877071435103771772860042851613751105720608663037593088392231109122154425894260649370005169538829889477534671381183749319919976936556361295632785959182482987800033843826820941457725109771166250920258249566814419131459983759491489158955508014054605278550889251518629696900566152031869771168538610956002048347507338446510696105197110100753060033801177383895877954269994951567930570742998802785868700847865027677402521271682586408296431118264587778851583247216136090019058222104068601007418308389866467375863039739076772793378682136564942896380625494030714999791136525666264461585541802048637298945705995339529296707842071921181445274845064864322080178438966262386663762301164259900106367770844045566909599495161293471611741048101725669322242199210039223013096206314310543139877853966000498067004085578268384663711335265978761351651919001142673217053888058896011049378606639950026367376159398950369590237722537621843294807351152793969394440714787378488310193205498165699912969915222651533832735207203431356194550922436819531865697342859201323549352440754922446407559153652042141124093054179211131754658481757071643486964193751576870398268869856618264418841367755824806555192320269293440940900833681374771937448475031860674347788476534455445643717160769175945245415994468180374101023107062814288801003856667161234708037012383409398219997432360465190368834668888766671511327296010416171029813932766966709242068755220618099872654401492857831141205398320192329269076564513118546985826374435355086307659077633043973717146048661530920820582016610571376947554636384859725273209567592773370557397080433789891552190406704280286184292267019206686045755631644156258471292033018419106546190223990970273502389931579266646156054303783238217260628356433097893837952340770881449863552362456689183377523233140325099748705176291371913638236589086819265992079726135985509978133288603146492870654369110818278568569518829923934905960000840338853289729023533315131712572625680998275142606188869486666272073174675387781463800416049812112027378315083422591224351029965152482233513723356366337796102214690199625790756359289088806874085115084642384042367839432357591876927877524826813575784415835658702761493627703097770079784297902693336164867637595416216283324173058237951918050983943560933680763734592132129403146752327167633913858122786431885172169488942252235724233247234193187724800261337752355289018673197912532618667681838320921307478878606884700430806006446954462794300452432271104805774860001516062337059468093148527281010157495243484401157725320277900837497192494162992076346628245091698356022966496122519264373772346924712804416616863265752432416326908573860311195289626316746949985363478568691373347910888841639804543013423262261978766781302284897868504825279388336195275693603681418387668221676220687561572832285135347655792034621395358403865733139071767001885814328185050061255823934769074482779246357065845127917224669084320608875779855267868674417617956594096965988233001120998674943400513480041554007536880125568503525103053766843549011917057231171410529038018428875908223229712566940719550964829799829721687076238901314798932610588599612347648374156933224943624869180169738791502361154847882982285411561730101062148263272775301169815619358202324056618191280759214199995677855362011668818021890775980376650799733161604152840292498298626320736498288808399286014991587869749390357486243822047102764845721479419883830632861012900778225921054851205089554542807435295288911461299306558170196883434773478371109870696782710583105809592363101307352839246990410049512805170590017847913049703000070972060056520210526549676009528876280055199176167685819741139528849427781677492360461355811376195203821169334012246250038426825328924819785853393578498914625384015189087169966003874893615674239311475147296296413617500297835965643188479259291671371705350973132249948075463432909226380865376332668378608603374102722337778209249307795519677937023521019324280060700954432703502161090288617559732752322316183801225945774925174125791853231931744112879360825495817535318135478978952602743056095901424345039856574090944898355555189858085942573723850214256103193974984344828530404089427043248190597618630817978057589043980531314684941298667183695400134615755479693292387779001370898530629650101603832583943709909451643970003082733421086344140458506489864011226058818207677509720587242380701990956339244403994179088574435115996168729385389769838883061037774668869627926650264798165920429667636786299959347526594330927358025649719773785839302527262325790120588450815673292725342661862971070814787625316574460547264867842916916509533972217344657133036686834119792927078105641424701915938682493975989801426476980155270382071435701170013866913023749238905960973915135198551402614331639502207344654135287364685180178199896580586166921356781781198278183030358669671055460808538655840577164437136595320472552433563930029852871727695367277321470569505453702539344678073621636099020348537176669103783646103880783064907746646848230489361627374690767990930674042320496283672465352596500200847867202612531329873277142725603865778089843668929783319931667832135982765252040577867536322103119963865111606358136587041674442842303047495711807095305485640747655546652163555230971649892779415698720986887101153410963917192270364555975750812361909609886173971522633163837707168367254203156752746643669624538066657446297275240476550940436328121025959869187768150923898851348574652104438213690036040997848286966003897772980031027623018246954808457220465420490142530084427512093496834753458362125794872041120147110882564013320760976678220308552053693989082606839587523953563466006652505637552419484846762919892019181961334350036868942505065887453607382035307424554279083575978967057170897852608042639251840571079476178855163397835595234975347874665988741641033112305785354212162215252800042752799582123061060782512918133382911801253444153917320877277129612519050072215770505631094860731087126592171463852047319956594717289166485863206613026953914047320540671796663568008467817767629696701573517787723826286413518555595334281391952365912374968025619257132138050284726397630533616609123493719949576608852545404751152416703849825111517697491302685370610260444921456016856166943415898389376480378557581569960203503659166190211245379628473197587929163929135066035897097993043623121571033860815734247587228451243433667230991172334758493734969133236127666063696071137721280741673382484419939392064043153685561197180744210147390155012880377218485016701076558893783862658746126444092108284486712070122491823113088553094211498219022183390730228755649978558897677974568639341709082152008200787051305103479268885582004433449827304048248889502680782389312414336092708653148251650797099725453183117376759594641034391293544903954480028918404770255209063380227475236248742884474700595442332582034714748670676534502407008944278345610161565990289589801297971659412851995160951580701977365215773055182781382092449518093440748168815116082036432223157330108173895346465341712368550779904029031930757301499888945655863772275553164562399157838215136504279454202890853565464242510755560062859306733993296797380981578359917008212610806865763584019566717048128761715610690393671176037155595969922252370391043486292358981973505770202071515854183067657619160142701969875797132943807378031026390332938324742600971838429778687801547329267043375755776475183441862229733344539225041855750480946623471938881368223257385461060748710248573292394419180601887174726426507450141786708416580531811421623135382434662699442446297874583645685353027996200109441099118004839287506277194515977970564857023354443281763801138938286151331293109996790870797663131751994757747642684159716057852782983230386332450508459282068711637723551455879787550260705926520838675284822108468913278156907520288925584076792834195477303582667379202972798960132069423453961410846540737523388415376500421449464955868729628743510031372681606800070491421602458359543780576795940926134511306707387941269894805525407400359785775786742050937986019091237472857092060760891700011224781584642151746830151118096930735742458046129828082246229652577781043632157992968610433586548285060888058720180307962432594410100580403287371535191651880298350725519040639797626691665387114359717687185583444917580861138684822179717186939063208534271445578876081655319604235089918532120472752521725145855249639126699100578541936373825820192780436904992823224390310087027510528350104631066902935333655078381412821302267077437556268807944573468750805529255085853286452747940481568592524633407844038826815257313319833308244289868695056877968534354869557924705408915868531416108882880793064987917687603507187499381419115170915464465051090029303140133284060356571762101897192687977932875463183582121525780371665212595309121660477827867761245268764972778795633988161123367059545117097234158122326988555620039098877501278682350918285673927928419360645474700686260773077017182176189426963314684255318802786411397743351160623007283109904675513875407587936545211408376052868034088286516432471063487113741223671872018558767748096035356784779182402193800195327933596387502903664997946436144314791632030631442543584110584593816595794885191692399821123463894871702637299167536080389611468187851311351625891520380836225274485654759812034306194730215554699634559073462737502413692157358684475481946601608450918410432124830882314997844000131488691053314242295329086576192700685376888316350335924484532614505048854176485230906813113774269535326749991501815408030868463344123920354488532045803761946798822806708842495878318954199135284822231913909161241811210949374186812100397252301564400540769185398864395973380682948295393127796468078363329466678200690186387987502850355253641321305119361573260873388253632136562178435800540237427145251737740048089965644560294395745624604419972367305763459255895453789553223250539576304451071122477621766503153911634316925889403925047349968050543158231679821198758034249158454743518644514601850602748411411644055430983256017441013583495953585064985376336191135085197996917270781780732658381137748002813711484367940284105596153013076823882831570017869424251168327359536682030606648490098326084743011732624211047043270574775141474579362437290859942387939557414075420395550817714764928912959962420350654982583097836987520593241990598851376858713307748606566184326832902076567352018461996699443721734199311200798091471814355274593330439378584520092231024483022746551671288545929632523556243785350066550676562879644583650401563866607465740669334485185312286712438608023858246172146671872656816136408275466670985018253563801211671162505734403998786501441269882696842173315810384786227258720076947362692382667335745994061251073129307988090410426208727843718112956595903762236682598122652167952212852279248177648406683142672575064640266607189367046326644706769731284743144603586173566365716617475032901547768253732644888710168997525317344036722310592773279247182207748433989698192837377263573600973600012986474888585666439151634421622162730344913530327001177874154166116509063878152129323307876900221172168752344588508299677916784032546115202804278022486576450582634430604218371420628756234091039256589065776646756168361111222743007247259636646570345365680949983544305380233883261863896966865902567058744470855796902360658513806581007818754546778073612324147472053942755393103643896775044389492315407996430827561363854364640760501828667426532043274134761708752664286659948121324893286551094514871258462750890035549856813884084143946896577545087043877285445292849651502445804392928075833945094516022812154526833547242103308757982723519128060060300420212535887329227203254418274638345286048429424001176305514000497026877825830680421618291332353054348272423090916527514808042044965141563767770118250332330553980816125432757848408153203026908300316742157427930397601551230362681111301217502453579094728956323890310695258202754586328458806281600936381880546417573802078490045079579373218311968192460321929672503063605509397696725488982825658327798872314814926455196971394538868798121439780488357715496623273412461582386971419528310099232136366418903682339211373473121942050067787733171920278587801750254899985103178355002099813002614856435861701828921571781495920163315520542712885981825325712532277672361951310421379948130886205463659739621762120295600068938547605658164352973889424896016014042582240606834845824529727099881698068499813731658762164824415205940286998275701956139883035289279308853549240071020461879083994018626368522173306859781657131576536210862852831191729417169261128100388130176694134029320770526730337332866322115706674787419994070476775558007519746966832617119160861632643390154146146110805778123124041238966148010868888089626699162732852902826612265145091659838279304823371886688685731616888787708173439332019747051112603899575737473791236348867635759801439128024745494516612980909591833401961974944530709178213350240209172520118516026645227921096423520790992729774612698258871605099977974375464674440887523019484139743075556004221915168824017955423480631252110642824176167640332666647742477412697648873460449955155032597353352909776261689794278076052188918660043681450833814076496199075854225043105054022377408500889728272621096257765565865952891054914688899270114346299152539441741701605371264768395964988254254983326032598571820670489732856543244852209017513048135147347269123954751506845888991847612322041086981230655887405537656632199251003010778739893462147994476475913483363594630133457536317653009021793197440834813158420541324821134178868271644827246437340919784342495364486797896730807871841058384544929561355518233482766788937864596311459268452002930526651486762435022010029114615131433361686130697337198626876088173326243058793874261480831556597728095678593257389407060035245990274559253726387101903147006197350230508385981462044082834575632974019375048226629676750257253529782482831429472471335731124884918200688377857166544311460274649509065546269460812551303948718558131947194626993752945134229713548266586640415851628843188478852442019362115290665190770759238877029128060831404376899800840919069748068292692899743421087441537872371652723679915487633564384578762549488601449154026804938128922439965178410418223506049590069969835862882944439989801602723918442021913154434572707996438699029005792986873748206061410822103054677302664906695927687468794854676254474367120516683114653051941370931284763329698975323423227568147149805571205221351348867426204515904892619438784570931922662595936506983128071691503439416260454424224424813270419255927478930171528077715821314425954775381282882994343506364188326752042523926669803716311827904110474393922179504652478685567933106051981463279773859142755788385909879926034775871466934290459852132107388199223177166415001732807240779786418080890894030114334142015247178639890664480767576446972069965546630350816045912643704711498633157019857119278644917015364922121198998454837474159511980659879736830864414483846200985509913785901411212060609905716087136196514229194035702669421005396379709796340548307446851986728466804370205980589813899025993768686040444684038145722439819161206521541210269835192918104894677150967614012872447861721137963795558781313124684177139686170848900925989831284253128106108524872961602729506047920360389228433092435634290255881748616011497939656913929696286380159292371043992173315883784445003560449547856517813563453688025816897443073461889633088518485689487641385611611207236974381052191717773711416412773298876756188135425658112840811505054565807217803443042774614265270532478018147340079910729112250486591595758539706222262459243609577501598011808114187774872148046434015547342234640496156008140748213290130306739780978345439692299463455140108715738078838633516796725606042286952703341582212703613535179957843238340302597271649033281953193466695453684767959369181423557581451199220560844561410489054320170696556654489134176639970227735942432849809214436257743257205625124071794072975252405776197179646050854481986660681755343982004208745144358307697109520689210247224402976909770832242801207513174985467359282198499005232509168262153722243240380999999266650147542907794144757483026274971893208061127665368886631656944735572925323937573931265717006533991438822977009189154658017074525604742512187000187713536409863250223775195981690661398558403198258298501613418995042138681774610088111814163916544346849291861585104589478713309326978455077061988437807103520734836098570238320647177509011617531054990294317849284801923647434653317382348355819397582604229281725728797469000883155678428041806630550336411178028751099410241575990902802581389035454493877144998911878385826755255530522159919760644386725776751171245780438685557572950968503490014491645332379147560444425344714628578983845359861452726334209508800981985300146791747272078437307434270733413241461731428935763358622723396664729165250423898319042580469381269983118824215199435310184779609820889924090821549402407981784771738133508721777564328261800091764399400232266134477943476299500821867642000358915277777222399991708685621805977783190267996653504837255478145996476565340986000824224806090505438648670477767867543472718834380630154260530440043348362344833390501153028755328839895462196781458820235125085421816841087264732130952601412267185372362903153839335274454572829830641205835038954446145466863764808898659386768285222630785952393259411115019608841722288532505702969828892909231248753417340879621089331744931589146046220702273671358043854697559212285294345886671558315945326163737684576149845918142597068830548383301054390257089682439682959803270986333019929921269457782155352356448369277245335984227659254650339370837965511290334011161088317046682680778290626114479132961721880745113893481589306989362182611926754852442240389943071386155554306890553633593465163957238530851772647107193492934591439728261985107179519095876313320266019321712469378686699082713338866772488230989095098749143169225045591457721429817786992425017288938899892713567372158475526660632220343176177755410134510054859609171405813571190926552937423330410037904753931965188770013675676911107240138607435308113773720739704747865917407842320462089087097146042567297959383657110069086772717916328188580581601693591925337635046823946170816619707200217325438814889166803907630527327664973511294997650881439868425059138714263238370133260570905149441092199751591936424274914134371064860043074588467735198178710324170187870734943250401330137677831830335331690276475764522104104982353629726167134066230032671502156069360951073845337382005634409034854178549549585880952921805592691101919923757150540349755469618091654835488964900552623495932933775129808455715749355152283169188788868145557025408744617196488983152241760576427497382400638147310337846478225046102872352014727736282707837465197746701707092937653671805626799840753189370389787744426371724231804395194160283556151906956861658071740827738678072750089426364670958639144991715010113552838038182435941865656194985320554381574398343507252670294703392420942750346287930390231466659914995504921501042757905570626085741907669495812760289789417938210943777219840611602768765062679387807224472493853976584266390732457591214134804982880160745430421061464847670274035667668935175601182433648498419126980479622873562294017149322761526040072717255981200834713010966589874639867306836612771018611311742589367633961029450443816349108190560174723701819286492235161199260449930933719310262513717934640125048964531127724915961036361385342400509270250032312936793933483405945028748211677348026288228417338811533890338549756448262911278380554181688332340661175391754687705158111021801221698868951900438071802959462922882569277818199236343727183445174344266454323606671080102395211066601738361591595612099128349975005722145874229458067070894041529672143062175340544605933601609038412887893835856460688644741749796009446834582440017576802524291515594286768433125045438985187929951435436026796562716411731637915754989283064287197612985075718026605090087166133423950069575860327534513824836373901365575838198308011364530789495400511813579025060702058164985633991202557112552713594956921436980825226879746090193116653119110372111795605625443298488551546583509764090213102725014596520900154482001836082775034437302366783037530832787513386275551025222446134556229725118875436133558247831073484154946426346177338746422945293989773898581331985711066908934204608146701070292226978143408631277614377438831039521515482071863600601907935614394585864997294120612234898603836475693144364989056290472022460001416845373358408870690588219152076948243486738534149737207108830285031866674860085257998359569301466739347747774055504077195584451118552405033976501520141990851896875604897748787241289353395859300463829158889965482806781071669424502307573338234529015919878689322545185694488012726282742333979008772494300822817246057436086518395500204845785277381667639904932569807805641648817526963906202107375117371267058434011193269509885309808019880316701759166078186493139047342093202788130905823474701489334855987144747285380153427907538627196624930514389203484772171708131871694756011809709221735459771850100641475044265492792915386921080334729219085043311271043241904881131005502276132340289545998559532449241779525559490576276716400733479793674732136742348056989009011337801473064499229310131263261673775102937048471813992566388282156067728777091285670680592280046832925613672313892171654930474314743667192762636764212557841548994145918326390287045992042465357753785615860458053030329320463755856659611402517753212195093545498103739092485230718470331882357359279868479687664361828969193896534101373938296444266189306014562017620762133063594432833847185213546257707684851228713545798597511663247290003983434875608528318773042416190326793035956710589514785914963171235921202052856099521628045014945465775339957104647834816465834734179796576391519914385923428046548818411003374634836797229261335469024249052457652049760600503355022501573659751303466607722744515320920988057386011175329285876051432750131414541030361947574017281018267817270223369035483866930526899700372638874795032888300645004136865762998117608433891042304820591260422238849528209097479776679811309175583214885319806469322518915509041142831925697538176105561792528032328936397854717338409402931948234914448129072066943722907441569435792501483414338244454530731519496427397519589163896870829533972906640401783817809809393264753951365525514166604961232291790240750127314794741536365130680109500666092660301601572409707981468467784454368662551947339965077920996970958006312224158488109110129388877233338660971697911284996071454540699554400912285152629190993534805544984498903332244618914911085805484501506696369199355670824410422872569720178873607147374060744159011016507867724780411931090831721488246246573909014010345112545000312926151028716720190054807538798143844456653819930389124470796592807033794069921607014695158391933485484806240421145848194386243581589109061270448516861786753974655184521958617714806263827469224203584548641361570638734112897865638413852299595416773305808823110830837694114321095247604245258412496574031275624942098851862415684452160738852289071323229289390026047644007395236981007474930592617732590818566769898364340387774932256332329828993931630257858558712292169385174873086509254086873968650132231932628766698731460032650475259604670852033768774582353581230270326890745007655860685272751485879473251481938273408533726812267490466757430708742652360462093242673193120904983941972392879350641952664510511732511620729830697702030945835266588750778551851174722202451676878915775854545138171919980416965049643628034718914106263999701890492020105222086178217211108678508728999540172321611623491074829246295823869796733541583264949492470796730096510975105218222436890954572624519518420559415717783395386561630295105513865522044465789129208810682992676612128532583550741470299177995878203382374560954712920339542431932660773614058739863886465657953466122836016553588431046257872200845040502774878384542999214863127385906210560877828121676431109961496736802367717752996313474219983682709253359472592075641271206480875973308343784314339778242160768618811424395777014447116962716606944311733563820212348658004640208112935201988482988925892762224796231489159679424899107832563249325464666887806153068917077137913145590093228667114509708142043186026048213500182093565469453149124891391245012744873666306639511074132745101050306451495703054600404831431928162259805866163504800378892327033970489518938315006065277407661335178574476964468228751672227120755075489735932304579957341843259131681284585500110692258540564314401226167875925527872601423911748176216345186917491695498286522215213346364889143915959603378529164152198058921185791280666735386599762651721993419120473379084018911791910478960370359969137701525963480981489858249592782336516147223770919132188166938459149582298004295627091252086288317234208760954749055453360531127128420781236673452738542459836126276026006606225063856474831077435881460419028984967622656411211341415904536834946793100160005192312464519013177286893350467270804854717756942375737528234663127178902700169629750045800423263385245680918610980662579862625217097449138387006310207553918339000935203287294046775277537065114071358286286403442351463846741331968257777564995758908108744189098267616224174589316647680911870886673565093812531288180641039056467481733911963001051464183874511852949033775385449123555216332981949240270144601878188376512226363900568126251305509200171059543939550026428313853253412255305069235116589074661223509277916901076194247442609950727247993251605481477228640677852014128188386994358313026323169083262195658687691895831767585036947164532431093869106935272819939115353491379510511652820638159271440534370673565181953982925753918034465508019088182269126360833551602216275063855405793530263422787355563586100846815883932460949323505256591495477333602556285014685094084533118356705804272330099403378901719630038064548466233438957189595087743111884767123141417311222534939631940985884802463969431064701053502332603440889021563429460577842563933098302149607135520871403194317747522722741577355476659904254409377226211120142022680284202198586486568570632601804258630049534332522813841723343830132594466012372274723641824349492666288548294669091905807223472865586942199580336776510085854459587146157810605162036720492590915418604425030559226219472385667554496486194171244130026658850765353409134692486232405179491306974196978161018944043026581808407622649955387824730750262829765978612013320856586499776602216053495301848940943749413926311610341446021445200823153449663824725957535256205993916019304137675075669786274846734939445332479858645094414053800850972089546771897562526771867425255428858848745991996827265749652711258600421875568987205851069842310210155051825594873100754390895006404438972897335178752795161680796907761440048549887140923705312066315697207007597411066555680891106318845636693312853861045865510775164891775670463545138660151240078077607270351846986336685874649673502069637480845895657931849597939384473767774101412852031632888500023321985653128994094515280013911299442071683162525529079799958722358368889448904922419788084901522183058072577562950712667128868577931720178731945778718228274135464081621870319831358097202595108551520539084107442758372911431144319226431390766724271763294589310653375431032773381087400938303877885728259164716909955745422284100273650255351335075507852113561996958855300684756264035639568094110316192717026367893931166502788425701413121411832514794901320914171208522243424168514188719808207037103459517974486886498860843260869536910600472263638368373826468920661404227915217874642841596095220299916112142616092167785491139340376213286225122330857990767899527810349837215128644928865521779444851288098670124577236218566381867869750891782903460034887249018379399952374388514121307774123083916560128284786671978460887764335811089222841898382155399378822558385574498870644599890072204925631354925029690715493371710271320558482879261400604835640892729627934046527618716595925139214125200837782738373596373436555566991798415776016207417607517938982966131017309286883410144663413825869161892902876275223656858241887221332708198501054054065853256110589543946507318907994808758049433237562886477478811264531662489404926793500013645939182299813082183209574874785570358087675704873496728402452065513537781587937554400738201731879327916554316899774003710574569204905733100277993945290819282683946375806077365789805650290160846004543782339424640805404864732815532366494491668125399359198052924427252424784586928693318403580001136084288943565235557369176688945328168522854135980703868522722781139963012823654494664196498791297250123858721528006897671459853641897863207934017284934463360628858736990744781090729166410393428286974670534060686220899710453164914741070275300017907362273804665605831334971439744350603520837618364107927226976229167518831652845729093767458531300003706779492811054771448147445977962754450097054813191672264325790848854221618730596973643844377928635417033355307450102415374775024881919888073976978691684492013059193875086666486402119811381769214700594501880462144195816085916062841060178391489013807226905753907633163195862347744406087749644258572087359330000206538341319722182183272637503950922965174452271653042554450776500423042175153371637415257062815925591428186273136694575654920684306992346677483389662929649625487332829693753714166718485814653090336588517478811647985340894380783173598287193019122914632434232939125124643985600544143458367194652060324827292684345364442756539060646175452476454714194020957616565938058291592401591092581523066556488636668584857488808454832091074335381556913989231880844197816888639878520073723268995193851692047598186446728106457939872691229788670907229292363125795446793584688959477417703225484961869125768818267467908759592467602881603331958539887431782460426670891064295984651250625438110300455417186539992314279999608670360074071494769127043635099504467712660267214038209258246560634135713963394829414195492323615088915300573959683876456529896981326881272723572729862554625488436607347191649999471058349062351350815544179634618757538243466529175717825993633802939835602291737701240082456559541378645657225182573033752780739828651460933027405389269669350746278049878139746192423641812612641937527788915025073874184626977674646198508704674159059369152711785633158727959446168856926998853262241343433768419879028079837374970684465764081898814385426422618304079205063431616403535019646154601452673737459623116182615593366455850957409923691799091806846787519804931570167202799777990284609390816949985121410183499001837506462340107977751759616012765677512467084508288740508502719443680170906740544372938981143220481245855670672263657131584174904289250763516384902077029512098365283401622148631891805123063107952080726396858401125162244408861269946149824279122370538146276204714460820404438863909711533822495518291369491139719542247423339832868947972537131635907820348351176610044258707395537377049376716837028441437176014016589014266087399276575081323832198181725063549441331261972253019136090234711879399688330845968686687313299947461609631911312209838401489042455143825897749895431533766532716193056572702886175904146905653063086853816786426172632106222897770536636333085637340478001501723831623682252723357252400265951710877853196873668185285772709814246304726920919153737160272606007198877472923515317076550570767048721282079629301908150800118259076629232650372094468528083929970621940896276954437111707352464871353437796943920430159549833848823831849548409300436476824652361036915250721119354273723329870500460089091103401665837929736456836468531422860540004754960075295705831817995350404415719707816972999886254927226955601658402928305628490379374857775423232871216818955140200108303388075284382256136316165456443880962134418654448948790767774162040558661441669196146052687207212291268029943373974660661385253321423566918206973696896722942618821641559282929762835580952220880667927477542276599934933560853576049379290956839112700982151289089085794679300195889466618585996366341798084822270753482722987678140234626598346315361033975061489728097452463490749719444349860564112600791604573750318560884931539283980115675770311424794694846608873264965492317769321072039242091502549813735767452913100946485943774503318629243273149291628863353606351114520077065213483008178984187961824930673632839907660555725558434277576527388432958597783310509322550026389691456306251570463952570989808869745142960047672208442008404473513283456325402485069878596926004215096433695387356348950864394207100811990583452936623220739193581492322865915185166435354787616006647038316803579341538825531304687047055881836822455271816386137832197609571207285767008031643379846918630398238541722885290851909384601415245823425073700046816583798218181978738887787831631091466433213304893743044470120501207618436939560353360360010456400440209630841513594598691703556627279373896936096939008739069843193414264231796440714077969893769392863316992818074956143375940959112741955108892688162288246198732119661009039884628739754141505224210731207636847672316087729390514728883191996797585261849383198877343446791105074121906323650217315358227933747840856985669176233823385102589454865314157197211149144868163684127413807527562179956627429460471246764890232015418912985984809338335238146714284867660235775806497684531841043662016982879659465387515592008772314650492595482451514622642844199820335836943956225234475782742870806801296937283840684169767496150390979861234091617855212290988692489134439274097310612833621515347650361491109859537024527471092942093282216351257597294559006143662623987985599730077001035745228630113772502500373116797253640841569438012460158035926407868799176414570716053985700478074157957656170239678112582849897182701794626583320109926299929052967815009788295509396770853119619548677559236905900149478601431583245935956323859023218188747819012023438166348223282224260623055962240093860753560382676091433759644700434308146004930382797234547565398038144272114179014071477844007773327177245688818501176721065053766416685691748970934316360344594610017155685005517347050304483640123736958523061342218956962810979614190928022792493510971852431005280202872167785847626608439568306355114031504551135365953200529990230955631330626127025764591888519338802691151217192790597446055499785458483089189491485729826773670270235868343349982946669121354215974260761505895203159997886160596204612145895481274552270380091111700308885752823250163577033002190198812562916232952006167812781115712751854981310082992738802101392641206183531178948134665274056557345464618420764975120626240994345451955894850516354659994506727746512604683967114284680461735873035146641165479775386522327395838738069089888032366491292892397498050725967371741895872762407938036925562912754610518054525415119337258960314975820836427891727203320581587635051390556929251433659613014034063940833584918679982276037967507820281907764271942614850750318430544349690191034672378999221741151854199817984787057959597545930043574529766894642621208138742935258445141638201796460830678022967679915395980339127362184934070281190439836676545874520974700233324772678808547336793131626480700233702778469329745201450583228572278823286212461053680078764326775277557709501909813672173777610255764824827657174341162439706626507033088877101970715887906842185585553258752918714323702458069525560978937913999385574797352553133021032757779511701326460935131151705518630298103177407583940529872033170613058173448551508251652666358729898772546418093255834102329865248886815512769400642634562217080949534389894950553422041576907049290216603619774153368418134746901225787692490196467785682200443142292747944860814358094886459160032381222356080815613754855313305948398209836501152644549557782592580468283816843077138513835208844783757228428823705807301484448207492587165720181168179659302534887993536602206920573141318134738146311210768911205283690007446279337126287018016740168951723688078748694083866065602442292205397235420914614156070563390328063735118498341598201714288102740847864410263807686807724655380647569852768092608691571975387520552012186927132088353716805924077644837126285657502122711185790006259046774834515194245232344509955852288439148603333815954800169948570044593691193450236461403812759565968253982629319136485681730140659179699658890319326345457436236447968194374784979357929140989612424370002492571414967073062003662123069678063764873846715215294056457535377860777751753158722985694838685042605666405011206753820828735972308154579426595022851809856160158617067421431315129796754599125407400839157452404290668599544330823329463938176218235689809513014137358904439178272679369143469000455234513050347691587756300868201471340062019821425451061373657880846066483922241699103143656909410134510494049512397517149094361133042320257151826053502610541477435569692645137249331040213400429270008232149214922589609679276284672850861633563703326335255764039353046391333233359444259335803947676822160499042483518801330215686906664422073322278525502403494450686453803441861662885892431593448821163810520153276921206554215014616992767689330415001359750425463042154264644652475619670117362191250387111479228527268158827087080452176611956935356313979918912947553483853889182098737509554780619177194186806467734255701258198056818222633146039259549050702409385481780551334477959677630562290115061226852216809604565917401850911484383184522423420112581752582277855847206794490222774205374482002400886185760879964036171029839703756117745264803761705258402627046431748127385329536754103051765932515302013045699347774445129177490298620106126689150165669823829427137215425032260955232572201506705418193576301627706436108267819394985600128051262461927183951665901709213424775419013958193340056515002217219269049305685617591954510524132396081209242269249808100787704965617889649890936753492859496332081597385449270460021917054320015625501700403126309705614635969889147314530864221163943655901885093292550378720797355794727394228912980020942600283342783275911890283736836502259132226985327846011971776711346364876475735252901817310435089973705162631352240976038834871501366653152584654542096189785452140075385886497306504625374610159377441714660397659211116418922116547315179892009635113572501476252414033303436636392564761488622994970571653115597833998541055770722078008533404151169239201095220908304482650443987893696411554502148698666050834055757911887461094149185620872772513564228714570404694493135830801637555101444891935891798240417524214541287525828447427553949570875863365396399036446929569681184336830788629970005157500578149218235099783676393780747607703946848567409655400797906399223903420237329073646923167355759456214710078495869270246337278773445148550919922679344118667743614922964044667809470232198911173497941215373040761714975237017580589767269605121319354123110186670965881561713419645903708181296308707171256440426105225141480856559300102947892734536644122272680282878903063996874923195861041374684977143350009945772600749614779938575408123721750571184087225802832926806760977506868983118150068475171837794733870145046704506990139376318909629891664784358474639802823499094373988188192666089278200661264887157004858276443028464923889164196057679576358388396546390486395205174770702821075231433952119411488902133632685567601905471438856003851783637971096521181625615834314073878849010285951552768363681991658976220980487620864903095752130420485177260302929463589564038550749231022327240690241362700031341814078012108808891712552784137062020698019454095979252867926909553487330209361959043350792881783203492696801930203523181368825200330797176794710506378184581537812728241699644474110403759324365163634134738843519778362665556655264073640249722730039462597462574821580633524796110876603580704352504118038494498235448898885387711397569230333126268585081636053447407054849980562467462760207963950760834318655981417438138880246154197128482739885803952735464068100168097996714205382798753480208116360096763912778269007667642799413561603950484372567844421516639810541695574535456137609334669792997458450767070765750983477074013097168641371564344551065399855819482097824975054165412851291179278386979609064899799431078642393915270169392525638999477081144053923536066427265674065694079755642980297420350324284978360680176973284568633735948653619640885815102390881387904962140935772401709818391471627449165942160412642750467325495383841154563334534170316412629467696155056984092401182263535371540795069896405388827111750439451356256043320997618369563153403919603764201100966004049130772434730827916512612310077351679638216533206155074264601293800306105938006212689284949770354506825644934096688889396048249198017826608825707906072442691544759571526361728496568768751316833973397223364193658880380124387630383918810580970965316115597592729822554740596061577068751705420713441326846354966118714982837319776222587338191265515801938890918145843837143451723475559386350256655070825079675392601989730585990812734553424957576308644193906947609492528127812538559966512671784663460608412778076963851001094090364877573672315911380630602040457310172604489378505026100193154540013602367765915328741939219538245256407664063597073457386339756288392100214964033640987634982918719360977241972030279136312699876122037090154044604410075493814028268206969451397468825730810812080598595117767737613035726259845506733099245977037146251336484678731598016862934853047758313055485862337340649003502093395590421363361922557105367507289653221429889606046150252503061716850869517667434913205527140283705491533862345824403529720451148323000396442580097142873801722731104278043448500772294082710635166946191505175798214042397022195000340601880204750623810467044766060501913367251040961926054004430885483251865591722191702242974838682907114455572513168484457198170279082267158671960624293901959474448510813754862490371991730523035148233668964999708442533282598051234462522319668620241064280525366865159729950373024094745536488860927867479436600404954880007383198075789633400391324390473900017295625354201290091504577250322750558815477148660770744744396372633958943598043903410430548573217691999144846231173683175110152136870717982221843852394993555110881485264208764591899370147528004133437917203405076367692959577847958619167883501086407840565433843397262326520822212954228189679818474737364316634713446464775657072463683720808644961057359852157555549288733861803476905189612350490792652332290603697498318075958773127760968142702947454294198545503689140086193967701690202599651892540612475265188652333287863306829580609591329788979599777816896174817879589259910350300740944745302645329344258972780471512172930730847629758920653415635349718089652408130208682488713367238738798869554659598409867679770853103391708423060707313946000161893633400855564729773074853162652616299375653338719398877989620780860939151255170975321104486686972942271413175960388678588138389330437315250709597924628711142112185787891002605466252202081581231315551119779794013364402496118613544918304359748578257665154102822942113521698887127560887542192612532909261925590005790681493252321183834173314660230500418344808072854061814393799831070988583058420658218334346265177009667124457171617875802153263541300626769826530685367901768019336010985704901148172237752289130130712232004586049887259801643977072055192660613486192999400581756382279014401955733563152687790924262567260640921892649786517978393394505138720716617201049300045704223872551092036008067389106704509462489399233982659763798813736725866330530237077089413263029086690911869569405188824307327787944429544250488076308674546597920713680172888912054613393585623116310847644165520625914463465834896216015849017259714674252508696752603586409172416678774179948331433251730418544200881522377840504805803404540783607575519995346847978768199100159892926242703677934173478912223480262912370973112749901977599356511689904228642041981731422622087607823253664210910040825792876191984165021065074694631107644314241379578586080286145631912796029401820325618064400196141087795591356098803172232616341488377468049605793707387171735133367295645501395383293738905606979382089814508495971646551554503075525135582975338742531852739708260265582280039108372830126777159323693678805039915577372450095584769336044401465311152773386639407958318760659325814363852095296670617289938299150280097754524267633175333695251398133491874228651932807239179254380999740806146778376799929869917845609558616367820219681235245512973109621007204313775281021606042577134509851630398553171325621664228976118214290044408235889727437123529364049016677923740865952659989910001560559464803597639529047555473908170339586307493221343087409029020976484052369513522817757487262236179213489232705250332186307186377825866405035103453607193205870227074930450886377032124054946276376044650410586295726311128812186738793822210691723255818147320927845648183743538805687148173980436485182913210912835017632072098852680579664819382716208368470020576618729564544200515061782905536779021709879222654044729124216806569667104219535685812810065634726937704808160184274486590995191392227091364429258281503598261961636065826647932665601042043909766402292641777354797328542847509000159381287259863031627720499872153986434647348478969165974754146358370012319251927878996996282367998188320429630927725882427791592369245002459275833329042475815556147763915238041785189295001988993628106973881511794767661236091169814952234420268463515935191582515041226966444846637779920910229590898516965891521484228516255891916787295349909414770833735972778760283388680189660496602846390210654447058078563110206405179132372893688708091580045682714034318356572487282283765806051509778148053240592396379867437978835733054085621309247307249044851032284039446937049796598294370744081392612472259085203664640877467060533638611720350954576243305500429084640678190223000359843924772150216771841041933333961084584807585975781347838719968332631898357293471693853157624983334372672747466328035814248427281420214843416832031197735482627015406975245635072089922996249454463086902048475413378681568658480957848312860995642323207632360198463569158639678705859899287604914453009871486805145879956973757175695797458794836022885612639167665960534289271999853015873295374430227929599972782394852481641632165626376366851985933208093480677866881059908515441936813817552749897451033608794868719506804036710607494022236910309580401373454345793900884407773094801754591751693003891361574865443830111958555669182436282732555663131440279597512317543491041066459550716920933531695253183757588505759076785298338758476035853692374342160852099444941634779966918987766109138990580387732941446614689582216685333890404355514666124728045062996488196342316289164870797986678101313257860407896933743109142875996518324876216361095694404457922335638945260407132345276657542533980134574706598783851549250177528946629467913430226809582453213190426448102208558257645300221885566409775575384346153604605262258164783379686942008690312237470307449861246392569330143906902912971944838149565723618047407080238264941706309022642636132261706879027890005258478763606956048777756815359532397729269621792910987677317122245141357504405568075900866008533061500418598057697792882126280152939863074760351611964921660404294081139217904446468103240226474462116175985263754803837367773481148599260171667695732507368759547603785816100070672073050414610392528433406946383571244105377933731800685150894779517572377503514780323672555705460781815135843669109381395617619968606791762525144509179666214611321452477739919195252741001132602946924744665086108728430926090064602975979567870240660301258337619984921813785200246007262256132750135367255988839974936659220461526475323626600290726366610127506608508087511201645665334740609560065037080163971293489787485504535230281839500350511256165386510924654078305471514937603965429565868956916048595856057823782288053647876377999776417733327369106271597378358784663011533593955447430379412979670630421674598699844931846365904010932213840536646908596443251942604688724278662806474559413472776745155381907554922769059708488141834324307775302131535184165685136074500568656349054978710070829991699295550743366527338571649760821441698885401689477470147251692892224381195950404963176898148292709949566832126160223873967979927394444214201829952239579675339988574379784184741638575797542997173745606111764320693467636912575855641385192242960462018892430111769074721083387139878586031704541323583005687130326604900501005865424038297949125801786731219122621150902831110201630863432524665027146905387227483224242518162284548157442504481236013477676250233890637650369525756108508306626257785393077401055851068283498348026645642392274395057154444499157756175417058377646041797149092321760627750987132588300099690870779815269293006674183282122659214275553605324032997064017424008819150064832461001042652453736085384753776173684840703075673059086667151858719386239689881628442011287963442733797955300580588339132523028457656095750718111142441156283164428517733574286077702062802116525947025977309440227633319276819092752023072317182629680566369093235498500530026057064919979884019975347434212507890091739405156257575975771492736141196049101835959613610771473285017070993649029050500770799649986445797887712955949691287833236552065203082403320114235558069264751289390925168757169562001097504404039936505046218772039250858507463070292492529183950117186743886089572841441667097289771113964089857951374306520981267166048070609652352614597607806082323235654678314054512899213663835272810193291850418371736497611914298620059486491714395896005140634106406980594155147009889146067632860147938793078519367401896808906701841452372479909768369354024635538392426984260915276368219848868854434041851846563412111590949188201916471185665776836473142634581989914364363907567730836560945399295895989544783715969255541022744391991682417569661870304014435487559224894347803613180103648753012256812762446993364112316597693705827881303126526062614545426499096623266310414602775120900735705807713018653086227416092703523069143619220641715398909191374386922830671538847744319234964472421049842509922917632962350189538626874011687291973224278148024918356165341907096072122778445865933215392197728562785072185864704197821276731704463808370604040692498650195812457253028231567196336489143841144896754931974216420797472472218488944297801626123458635664853910250209155265019040229682324918540437388449121954474479861565129780158684302960998672607973622235038238757289624111353365892064477181655883838524653759625305134743282158779745289267806656040779777905350220128645530697874462241615270802372070577874111619813180894260061450069701345573338384131415763153389083096083122108910083510134704023353171518810267727614523416624868440676192880829909455947480611126070951336889717705117067360010850260419355327624257275005779665876414911324091229711916609280054437553869096550771445691273451549301115432556633855468240420309956183085507129350944460283118963918765414085884778903714745092064167040407511304086951622932257034416255592493084630148879993359056125597877244436798635487464994788271906097154153678318573035687268076689298435609450448125544792201489283056763931331533802126352165116531888001876957335943242413240724689921302560614777795327422054227494291566235895355890302158258099991100150734760622616990347445071497719845789876417478443905044399440872673514689159039290636617500021134945622907862456379912858549604943626148343651781623467723693903793297372236102494334973494485458405460394945556670683643085782589190437749711658762506867118837476695347865944351925752588986746559023905253313463278740824094991284286396150260390449732987004516529791613809056006534064794944934036416888499447256739742144457092837147203431451535983571117511455555724256482455686351114200803002829622167058816959416529399909701943826818927299020026252144190153100643142654053758180011393020536912874651900061618759417101614635589702171222212747592337585377901401618009586870047196962202299098062880247178777046834147192381525278547367934286779386834898609463021049514771294343631544746950053731374573284153550231622313366082977042198471149644115786416082475618455863206688697618750880767433873644269919013886601488431986229627003280065286800442369104676730637839639847350430318618311615718098625310497747287795365223926759640760311101260269156806431524080764398927740900078502873337320772623358638087193352415667763329861431769034395233281898867037610722008145424138553813504962712884066463611172991253065440239520160741232552400524381421881413137503594960906162021150713265833828513569654176686611501891821656532375240550036534456367901515162977363020613483199429635002460117386147796403189070967728011118855138558907326325498154838447814136733223127315547906831346149848141351355499551624675654444167769945913110194966940129049774024151992870647915727746853162057240707990569764899635376738401797129582222169253005400603944198208126713762516525778695453869282503492653349432938750440527089178116452643046622816696601309965951504424988441819165036534564820331637260095681152817791538814823526007153756579186203695952790341965347291116481965174052663553587919428471228534749921064516401158993086090422076819255142686101471550637419395709524709657820729683144788726607705044204550803557046433353160280450087632624017446847133467292055109840594712919431183101354604661516524930873812717332703183588515917852795462703952605097336384350523224574867069507546097485886392778621308091085358036982985048828323100893981353394696316644530636164578311409419903942104561752812502139730004690410488285104715563384757142794717177693158654716963809403356738688156236646190230583611279142185635187008317055218088569274863034555973194863496492526527769452932324651256031469021536083170934129104974079355135861733911522583483383179981307610317463070995576910010062002954929336852996198128177169391118601551666418008228783118115555966849417924694642427531491431295011036430138969203936610509904949998996675379043089667559779459427964177512592778270973950299693625674404818042704575080849527438272260652753986281266539097183418248310402219242837683294995007730413684966869447550116863986913623663278488502943150094584121241623302625768805234952968911966458642046932028254805264193234042389777716265367755823790122958420588142404111723117343045043753456360400964148616258504492262370358742924641144093618195812151014127860765197473662658075543349501525315048315174057440520903578337713743294514286764453767023072989776344888596112519738556810200149494278215273783661965003572303524821605952491001012010473560388701359246205515426572128389540672751893380598709829514793657409417925001681531772135367193519281466244519217573277408213230110460020608398385955898775182496144225549531229858388749441161915269288624627445200179858950862597409944019604735254550654605122133276863567787222169430224294536410314483622214567245257091536838607710771288129223753516715982811846194252938388073358307814680507072246767537856739806271440723119455872248614958531314025239127978125825575425800830433131184425945208999778161981297712466787934614262883826183152708205738054866648286356240250765369125940042095437620265782794135746555121966650042789084326527613848045626731029943802133511590386148734282628855356398814496324144303576600713158004250250021772868153272093622757856095668171409090386553198216946564978375851933783968611024591718237427584268125594345648542428539312053841448346256217721635000965510507588032386626463853019372656318029597100239818738104442458444381474759742459723418172010087218239203375236987695610308890795983956180620171285478818717608631135053470236552715371819807821303506756211842511507141840047635426451078700274477516309342671589250236433113375056121939660849743478224247547510339000164894903932483888732486800451204393321012831107573057879477304450624838724086244505866459573569116621942634551517185173982020940662630660024460424624021607333879356664218926359556663781547972981918886970113872736315422439590401438654243677739382232281485881512171784949461960710850125882311634999439176322226307622834257760112039377311733748396965906537896545547459871405591586265309336636265263555628464473728639715673897436908600742918593221881947941577862738852587620614902714870546010310139807405535878040076354115240595240749789429366168201207487296746758037567134150452846324024564823034203540728262564781658558842247298725183253198267278512515618048295863114641605652913550229018956695711541472554498558559360596773389294963907621236073352977459305152686628108409304139372836860209329355865614794269067460291200647053882269769501568618949911500960233281102167593947424241033651107738631223765259771906517908495327971522989937161262511170294289865782281859741677008244931215897601134427488445647515774998008789908827112500666217294479002568532212624508429821637591329162606035619062047241532751815154186092652588384817656574720482550282109444955614871724090614299591944987075530637229826019456194380991037556349827232874397038842672561091866473529950968454426949352438157489724112303928583021311329588583501973235998134454593567066362187368676067234436921715633986440276496354002261914516770265738765859087572029952801946242620478231010385464826131357050351307438255662538705796417021909305521772148615015434878438900354078387579276008664464020442635899490494052039798002321321655155858210537256795495467180391791345417797226535787697893867312555940032199748019278819760581708311245299659652142553733528506139072273390340035573245339961795291436335305883913640844124329419515120630573512403242263351651430921583746010090990075816781051218445296432426873001843468779503069029806112551588769902459610961076225914094168635821222183414557394483402424182419763326652999362870255068272248390527294627773194330876030809926678297989126076298332771596773443354073582145599727213864029423082435719716895364769995711323302043991586305772911570321790670415721831845282655568459672649443025141474394090275280811634003911506125094878342876210653735097139724150868469792778400244213198476159203303178505339578207012272634642273539981378576153702463755109356040438840242129357443054117354312196707852649140625411771179497934279195400287432671203981882502580947605673577040175883373253359391504134787220660622107424350565193735629204768539385861528452970690908020284376311210835324827055253385211035898006105465242008627999860341495047196235152564797844137273142900431170614781538981152878826645193980017690764925010923402163193711874701277701137702240948973054412564699932103070932996942527056622101258675130658644379046192499888792641412982275151377910992670039430698824574275051047029673524593283146979852187008740368512846788314810144532034533681606222588221019079987393606825128383961674389374072246124218156459106413058564162343167991391734461648147176862923595520542543872781467256441846031545120150713812299772384561096725320656791434378514831090338779294482856676717582140532075109859958834975742919943031611501514867117439019972606385549660725414963324144496535368939941755107374524987011668054301758809946429483244898717590105933616894638523115356112068957672985984071397380119742002263920772847326443613054086920133957589395369436291110106410443504820331020494669525558985967449375787159384013277379348628748031728751471301380543837081548056047601206564934213459528444375917241884919150119565718332172284707531109994396574635177237042543192747598534234477346739338497814961546369092213850886017909825800369315050903801065722688052758333961481005390483083662217775338834495645615568446129554307354781698858490831865186568220583136839705020870104892360739565658275476723472427150542230228880322502277974872914187375611228948250772809400579733741133952712298962567543531469819856469489999317197077036904224399113542424945830316529755895253818222223641884135328343974022361002534900536544693409337459661407864260837858633753457432152733369110858837500640557689056436088370472309990901243491041894363761506191720748841686192858299374670517990544130700593961684412026361010493107394479123466441273190505953375112435379420148037703491339309338695229687102428332967012271189039584468703644143870063042121237843092322985148106523273097115113778827672139827266589551811606135347119063269425085005882217065555135715922376668130545704496494011987487779111341371370431956421186022858700217597903403646077301114925685703964725720699217968445473313377579540172732532871852668014566818937329631264574961350461439897990895701633713809270941029739207776695112888894814623126166718609607897231133283582641853715323962670011813445516730218107151893767360730407926026871759398629818183315255528238242294844123619573666492720758202323998928064104932446405245220657886911397209506285109119332356862477390915492347086691057751308686843243714032427779545416305029598481222550957492062218119516246022313332221313482416150783670017265452942039698739322670206372347286097956850950820932271588952759831316088915790582917477290814037816518163627796109943876525769407827869148430894541551319091275115295537014584411728347903824818494037872011185617005876367270450760719853004457683845188663652126860594019973007581691269170137614563171105040225290002544409873496117462773392082548126511124716897312970146002270515932753986337719060210383730542271234790757008476823320139292110809760157890953233113289347117344027885628650242878246129456129665413785999333905730618818940821372587398939841701935894182467406290010157298111411761907638685390351855241862148780549967626026650182045048360139408230276049953954956864936169527645338704716333328866253968067070326051091756124343956394644343020465690974617879168976628969427721776702737943649198032839262080318323076655881083722938680989377833094684826393920953666042437924756732571662612117806792297158504013231464258363162415320291496934327275732861924636325882502710103903165187665935416951435012952755093364096812584254004272359945581364500534391195243061967617546560117699037665839826903313584710518368051203677164819121795439660973094762823518273934347984207313016921277730669941122085851849564062181362930535469817251614204654795455057321099883110218068585097816932584138714510773658075112514324394215405726192586179333007860336841835868830347747390606327713909559998016682014939851475041477546357901212947623982037418091603210619058423239334597097684955554025994533891745241327071120709598264659136918693255824461276530611012227175798225511872392205947974920087940078295446425394134445413233487839456995178994837010383994347508593931085139408661548467957544374553632671768941279291432009049264919468834274079715418807128537751485008460654771706436259731897016976841498462099330269878601729809158836094662662914540354283311859402669394759877695216322296026041042024041304424153978213452194758529635263882797667286247648607222356533098621551123323453691984208304150890529772840702190818896981319960282209515423447322245586818374157351165187276134686309597785010537843747790668267731589685169160021933869660842334761662805375673354331882568530650070965114453328036391099596582385573390974387544113220471311629343833434477753052369789120415799720377798523174882084537458205235864744016146808097202671495544008642475509742053339476131726894372076549978719478193379009113631876903908543271226902816907793601514142707986408993391222325016764450705013509982540958217124120568431696309677292853840186399736055749723740275004839853684450142651195481207134387854067583805437916060290699030724471447196722596560717334435199356164601118058069776880929177962341643375162204604015475541697294879655295693601037443361060023828127209729196727725072578969339823075494387613969220486553828423521711673098670587201620744551841265349209544081201404851941629031578890485706850349961852862795878671299888566013446780257550796014794099620143017525384318678919258408381373752835671994502148501651426009778590710538589430798993002807689193723137104988643623151485535256228515788809870587429259134101082174724909524035280436516026130953194171135717955583791999259014133964073525684703575187407809582102847479666047007961856471764082069348819147779235542512003221103773515892767843119945447476975872906559782568583525395861007235371838148015556303100816688568303463143018267015007299612273910457078470795159188347698276816956029091763573476160042218421012465603778044375264687540252490480139900301910461923211003557817924728003822942627939539850512703742377478309814183593975600019669252535659004592821562219379655411916350827600283782156104715721429944420132851383498234028300430449022137351898876102215066336377684198659327112924882037632348487832804439222369557426615178909800551522206641087271399882957107759810459952137640416365906483107441479145717053812091875499488119644436316835423075202927121476885162450122666267459518162111805763526499992197741479137896376344363419375787186940473805135348204057185625551460312980768573577044878917394895823679480665315330356966623572452823100203156927872389067271381710723396549276821052256826954437250965746974639367068392202089447023118485528379565445019694483027517310869492925860405753408038650064078980167745323197445516489986353072805515366978435910225240317588852335373377609333252697739040667830078975753729645480132833305281871848257826494199560627046995755289844905492145326539431845786057749138357576492295499679379012121970237989520733940490111325845119578223543560349195388766286176556196155432450393973839863374144122784632930745065616849152947685171877430023187621900181691442903613654451573939915201547081138425100972811208546386451176453327977336711663776075642054543303545892268466906404203503312375182385757164582909176291098155839169869010102928355944918012660338505893247059500041353497733861458881485081698139595040630398499766246858468826194817792195136559622860454723116605949900495345973464156980618970637054080199174779162667722691086017446434042083374896863472567257643258764233963793781165260283458330043247472025889359296800198390757244341027816382988310498054649028695343780336214755557293182144348945977832564519715486688847783226250923002423506708537529040345949174136448345341960344799178246892065606898180561472882002395546206316465472935628726458742277693397002214604639651438502547822887699619451271770367789133377406296210481019059768755285591577933289394667321359393759959711111400151350993958016022954369707764601387131136173486289826834484245671795973184607590240853286028300003918961088895788299347247636364203893854216275626530276674290016370293132458896537586901229931963631555257107445203504776464318795816669237606549905692825340790341792032954679014503933091285035335997921256353298142295567888787062897441029585248764115937858248006270317360338094466404320630629391676432372655316573918187766662301657512561114813475097928986325427010496534298862730756359700485916304061453481230611796368319511690281624059125341411119085392085354882551941715977029366555076267157845401117181998369456351148634734898903764511208350790052609228771798404799791707802651775544219976805225391824942942542689323908811406794411269144759935157516418379004701333000743552975160937903858830887828093691912699857475723106629614798821528312238303704978197782687345397609149300369835192923602261343570709002674458511612257403292407895594586068391390881634092268885607262729634512261971409058541652217253221246661824718785165254091977133161154873023566116186790220479552958321932848965803591793018419478637367998149671893019187987272539983503224789482464333357496133030201269193260874907648067982539816157787343924551077929601582392580022090668317425564824064810866118760312678112849805790061526915963427995378797592224412802441851080152810746749439326796635230120412333708619207596024143719447513941586985603595834039672631008379690552760631997708252626130110114298069528894519387135068371267238786221499929001786160935719156632891001932233535856295413972265968160742716408151229794221711796409993505822715661919916120840255922006838287168806474372677801702045816969808261784153415055404810025836680477607149014746956287812254320710319861219304872358379212385934824384274492354004971841059551163641685330022797517001972303035697273311448364937538924130495353661056213352367131053049613356187685759744801744952161383842637685937491520150101346547457669587980727209516463875449600870926383170829807780691908680287960543478807573633890947910361149181736363805126489584151516253647635754270352043521740618183631771601016669372538794354631617954283241266868967308179851780089302371867833211580209396749511562249661442864356791193609586512995618538282436955176509629011300818924405847398924103002891046830277435160124934302087188062847764727393652991698308420322919660566516031373513747486801932659604223611060284004891227051519079342906868499351893331921473240799166654259082486963285607136884575746796898148825866938564459673483849402124109055683936914300757780592396664504574360750088580880971272771688027131341207056348699738966489393351619963066161484332697882409651931967131476316856799062586037643382511906809859880774150709250934282329094478518355521935114432947758014473896753399225759055795781792468550083303194346575370729119397657231988086635356930939406010800316239686651720982465674159009056992211151314761949994234050674637063162666022286764470507543721191140251619618007755156250197171387569416301548509828956725794524869512016118697652503954945409068858253914046458237585999894515558636448344972202226811498179163492839801761849499050532337547786754519172403341309418558297405625645393795794533249692264257223263875129673919674217096872618844583711434421816859040138048742411184725047318586819121076063941042502588492819172053460560755136024569708194787913535947571469083793982994694194642535830018349897948154052189876500710473428810403847304068514129910265050112938602866644684697710464104636853315892168006244529826755355313162768891155039477626151278991016127562450550400227507250858714399495815627022739816707614449572559506544026112457993749684616844779331971042642796905122316853848269210036539546706553108959531635839738939018644349913407020328153073087761653685374556623175631967557302336855395257566780822042971410314215649518611515375604549787576643715938635140006597356725690802304377538241100663025748774599447228708954707140844216796620557809263579113691394360331367797755792891393597916018342757698355242388746918154037232833827832217520089113960198167610525265404060149629577300768764425490819203569198045652542233017996974734596001429453722214142053349771976816398693943409653421311607524382957475333242223612397665165964550379085213791413281439862630802190404508123915413528442694279316455371683748331421549499703936105464235031958530847907767105949841059668827609898703912272725353381825023071859185614180083038386324362042390940253900074170799851551435356345888410808253742249473724942883231682165295778154450120122605506011350740333800434526078362041613840670289533358880184173452595422086759064105632837949950715455017891377930858587438889884186813993023348014255943201357221083558319732884315722073784832488347929032852443463300708752089951696833737987088940999989879613775777463814172938061014971634815222464602548983880087231915377747989496830144841125007127033926339799271840062735162959733875878518242516016484557391445405019031251563584180583560627004482863613586479281545680582756546054546076891030853491402161943636519587301181917229394444530618907864798035805224188306784562813066965271757601968114375643209300845223641824419116881144202565065547892355418426044557443265370112610395890466441261252479285379846924913530023115619455313910685226350113473003035827700964926057967467199978825204719077315735995760203570304535056614804972485937746086246013760733719710069787468265559719405086386416870151295359254524788517361268538701722852907065125533605137459911081546947661889396097696687517164691983862822132889411327476214279113502486375030137434798270659872660905720104899152306296036482346368238204127409754811266888511112801887671560519266053624830725612300951034693576637508004059756121462815143986820558795772951651473135800139900233753133549416351999410387561300252293312327991525173598842938058286235865972419486132759189498010841283637528419040934555722791413323989121860401148294844453450577030662894726092561868354033851457960762667388582546196410569203226013716741664425313100354752106649681190504612924512837181087802801608666498041943497526832893461786439975621663945640272910163041192635649647245038792855270494828550270892573434738776287217638800104982245063690399498372805865413691435769243876186514379818932473408512598276305552204719251926169129884089631108990355220796120287080572804180866074459229988836254969565771729471118804521892735405452587414478439092753028742712596843490568530110620059377854833124362740275713705231081930525950217482693605747093308362815384338982866039644110690357637506293680606355554222231306783416126510355718171594539384985520699729593892711833534773305391259717011136518232645173386519604798205249486910306510131524961030795726323463212828368681345053081790594413370812344126809311477723030468605766532314383926651967763857369871573554539526270200002758184757026513543628906251944537713020721435441749394796828277835458776855120674242439995988985772389255087484763532719570870494936379233201184267982035387770390283350139634006686127584284487676158960765295198119132548844017932071185592493438541176410622989871210048447797947093694962691919269241535404302315907729620572758694254876845272207412967460138925806880097458192941927451924939326568139184363040975440814778222465247311867097596981319722697600687507620445493885055149603364420650844720615176914543565778897095311104165189908322542452084924027812671456176110662018349280529377854548214177184639819050934091348732767068690356952941241770819827087010025299145216639059417661926074071794727859924842980756199808020701323585327274416112622508991207861710525109563225302689987988600570260958134137060724359094667701344885144514246146040261420361112996265097313328990698442703740916345768417737521607500165038573254887005578570591427164998244014474850528028075965899713253215647585833351199147950057608474462727772276557055939964122239125432702329888372125440608163014358457903581373040849065261623566721662293132994236047940443926233900829111677605818905462349178298920924187913121516371840102796584717366092711261744058906329631660898407313707311536956316064772792526689959942442501081841762897461505121042250016422188173154276771237348209211346655592178968173607206841529910322208482430278525342282324297917728157218880641573846415389673008583632837303034623526451501851229547942655957492712293039768684571363672912147522943689402752190572617106279863730945488882901404618153666335157473121348767464205632666096896193499672543005932181200609794117086910220116230467431497431470954766814619665204803154658770871389390440198417778809290794347546478204693971831509710087772529374806784917262517895415525539709277877763113498553406716127953105397695315591859745236527631543375917399062305780658088670092575483985461201916802979692521093267806075496089721735424168345144826927487100229199233001127476137658894030590945756939747876796735549848439176243224133852338851230889374701254003808080117031133783107494954018532046285395223375967201587446116574699916215847844739126598855629056456271973126971533990975993146010154427926167173583314261119501405507873848300883947281221408812847194770263393506449288233238075140919044657627758143139514018793644537837922417897563157166206361306393905145685418406551816061521460019772943205585241362669963524294467894670203178430273883639544013403001521131752670009244672701923846510172407143508011790526618106529774828251162834713615058450057788271598385016848877240261498151745278743139674711536846966156755418159204476107113482252226880290234739144730066450741640100603079041774917941930264666299337315757854738060246644463767073944961545969598189431802852657931440376468838597367293296487716029854959083356657589208600095611366849147725398132474719795345966520930019894563027833716605368893447863251742760052750272187925173104776889077163146228566354001201666612602754779767480485829418491234096038397725924490773942606300728539878458664012270355490907995815719232887369344049304170676295939251092986608538141719050252387787788629576621732084607023162853537689450663532671757469891836017391762535938634520896359305900278389079151115439643584966498040258852477492720063992511611570376004998551345606375302164172475593985085474720498270318818225247250621314479018048640679173725972023524817657394353284914633587479045772764663593705365882167084941937296059812497374755012598968640833774441094049945719330205102480155606096185777943533781611470672558706996784958196756954132936770939893063115454070937066956012413827305007060719666061746102496699203762723545374031381275505543523055400049478949362961961701478676855168867204684019025000532385152458888778994421256888413712990599514411734808015143487338780930349594614610847581147571411535713579549332444379772512932708827447633745769136186686031549936790677148152224049339154700648629618668601806404910849036729197848549020384745245581751173900114145076789177235248442067977132876827902716966615002688148896667613848289610001462254229690059815861054577183307816898947683024953675666998122452479602083682273128381179268122923065549421144566665073009125501388221242411038113626883463826964553444431157939773267192492665140551442297418164600185870377250029629691949534775283324174188661971858083433489111838071916635215270738944509691316377915246022329030255258958594320389671817760976589278201859956013839318349170786349136490348846539509116270634909702628295725897074737347825680035184721498960186391691350126436504588543549931425347387747774629338133175340622499815960456195757301993628906226998283339903843925045352876153932278796735197154913219351029864424710994098567018092597718111775235668645270944417629279527222541166236323022188434479528705455907301994214762347876322699439629664907834777704915064348684102514075046046483270138181643973164182807127123909284146349405501993006145991655896255567526033196212944435641838264130613470200342223340735309332811566804729843018058321097104304838895463747989187316189635380967300898525009622884628173956316505179239844696306149721602124950121104839904121986015984714072186584851049144747186086520614703111015380299451746012479631660294732064159426076249352911587904149015668302787833142171030254436505475987525394114377099033630002746820165171847205943262036185080424392650359052986612228488612762515225092316086665549852830751608132380297166014754978706640872370581320472254871070966293838484269376372972012084273391458359714976589841479597086827108890686686345100805566981842325193642044846135206170384556822700600544713409461794226412411781214713736622414673158014272729442740607654070948535865390335190929908143401522073170542838097858298841911974256050768397431521500341971871797427065394909459134751116063733634177820209329721352426220309504194596697984826313736386765650387560293844433076818417471971948766210930641948626586708408793194234331676013308493967938097542475169729973114974484883749913161124550081252803500419987954501731200450281014736756542762129286153886296217478387348655288067866154142278726791808494809190590384185258092562273781779055121977582998006486315446491509590980462441589873020586221051263589275405647034021781039961625753653295945263171855410359515161199623211722679325885744606167684704873867453968508920462938553655705370298733798050081387840513590119937221260988796933757844620366074872197009039023907436534248373715665510542898490560834266877853533593894411475322475072169110782700686953987746617077519280913064242789198195111398434190800157214917038523597144294560295563362920795298774262734122515790857767626773008982471708388378504652431948791853268030821313846782699611786002277724949627687340153074466259415762976001626532330418990478936180279745782336425623589453438126634563952478338469012730567198583002755600716157077645067897912931333235107042408416136478722954225081012095052170650993006790836419486713456157296655924549991063946254905819428920476219340290031536813022209629131967056721983340838237167568900778037358133098964452995948056104233122590338622284893854996907745893766438799695020027385464198748508033051231387623667729413754724549985886724740076763275326263264124812919789596714811871353566076802201798135672310353871764408122180523658806998206939136943534074924208006123486834396438377219231610737649788162879278533974801026739004530170900982516601285230718812338953746504962956583052276819505570583494501743976933545796590738911087608528724700335926342106843639919863486915002526952928154869465239527470808894528019264343032678657441446627042732082520901755833590598825861598587730574598507465350855117791722930527263647583930460302107934552210509170909704891886377335777061966379643428439153145484705135284164337389299275730843633992384517330398933979109018474791773652099319094912827288685097030947487657365239073480432172629180693377101064539658418209913118901395852721363056926211952780776001895989266110782575862166542038938459210513638334974303944890395384012539050232539801240312563152268988013626709378865601541748917265154340885971361183667931249172428182990114824356853806720316275577613408743149090493170430953465426003767235454759662843976221368166873301559827459115474929554679777224952584212273425756509104824636405787381087517778989124898535709321349672893224197444008010915299654585823760483300219520911486124122938467172487371088865754927368487086168617576244893795341240185029882366656479924136425813225069182406361711870440648110961492779719552781281412746028974667717884871795589721748742307882229945013380374824478331248447513153875103522381538146236905049536319422328626531777899198880995046355533429723020773650902478441792164085694706554178284765566385735005365076256111788455026205093427776241747567455233361099893533068831008425730599500914118870442427271769468936752973334722208305961235552690583255332402595101858742406888571525636679706006651062637519895384918822337644186759338687061500828512439421187025225704318907203296231551780067043361137052972808258350643035230273167696619221255702616103718655204830971264939830711057038293518902696973734660767091627752156797508727487265144534018637929509719576230601379209261235566232146380545045652366194396625650830221254407110286809778170962934893659208292479571962940353197735857991098277966110989220368198028548489464102457474836518429167819464764802974932554048067074015420770103145419748875787931614718845601953501030686167517367484184436080414778034894771514874894032456856890843852242058242624257171843492197652624712171411565585221446766060050096365118653089812565772615642296990937376760050899500008497257636353704110243706944627030959908920687170619586845725362501613923716627126968232613999470900041811293446231443062501680738707639477925964833166690104183636302283367268518853102865543696339907728736133172346389889305319692145142560845176330377086493386354060341756599873166842138118598067299124005118576746286438174881613495552003589777959621278267102052152109787396664409017299441795668971537589239490448188881170488374056249452974756253603708623215500316800149542596328110117883147975149456130462161374270443654629667139968599090232075818861560077352401909586299314139301998762691413254931902940625380552214875879286740665661497196129124061678951854678202085397338843617619800176390848324941282912687345809501496756297503448577247435878116144002013105764459606231794108931420309490011966943890648682482739737354789179879317512641397092388203452950997873034592246441632338801444043924587796469194654538883978343496790273109950418306918371988470095742416983981828938262995934062755136969834242105649652078912625777741214792560611890927873674133499476875149739562301162300690337784134111383197353014360621211699503329913592435211877329841178587401580891438983324138424591012231739915744478847029363074571250295977154537539039576016053066912122693619130118481947815487201026186250542770307869212560450905912528653757073109303834780108204972452277354282005276635081269136760453805700011546903801982798804205905134422289171271924996265583805954764546210658969449194206186692725729806748719792234163163962224901936378053775822329517222692965953988977132176785897474489053182220332724891599093530054844101133069785501000006928979815805949873922116703339333827835730416735913513726289642105977650068642116135555051339655955705953770780388755657477599512271081341137280631882188987232404711799806356090453738879106476804777869414907144859884165439876520937200561977017051615909288421765055283918508322039179505641651074572072910871554437602658997166241412025707081358173670093373543634629555950316328027581974343451591611573276300152781885682471319286247049560408588769521521326428905883227726080942883293583738433472015343196677109651807407881218304652589825762004089671641765139317169562123271372581207956587247358942604999054850112959535244489278383576004781188128683011227770953086522810214400880199325664515926059125235956664682224578244506423692897486522169009044491109897817545721039359186634250687384365234009498734527681949751335329198263209499318387825456315725842903888715386309480174041436189939254232761292801379905673593418541597212415922432214972550108039596088380880289449565155409817635149491857631314834215519094954163051351402926098194446934255422918388407479582536232341382533937755864786487773112335529785345687335691673994961257603800728968377377528768214495319820869891845993367500188457096689593577957054504525774553306334884934857642260588289829761874173927518698133125216145651126686030629357310701532551336475996418172419287812794260263575933710389388074133710913574975997281950253189645175504723095710760249362190151174733025008082534808718430971850179783122563737733931571417722811955700437884051373397150974062494367749655436903707185393814927685714350299301011964541299749247766707014602692327891287992949059263511147165685521207250690669629053713483070976233524485372690802207889668911846313297654374975529242685468175402155979090839824119744430910221961867708272212506411366816048608050043602879350648687038138242924770071601779287916808870715424943458265604684104051311429580339291189404417662935611521018059251450184943539143195869717661883518406931053001004448423765804744052065700237861079059314744768644111668755595431672403945016771452199974366565179922726572751986809737232511350460133398851272890547882553700067102385211982161584551567675828602101466048140035678589641741330166639795740037042668013638988927059494818929210635395400724432906005295144794678157298542194884125639505217437006992162162049567387840437630755787813628921262974154323913948374850210849727363111028969728153827779327358000869949059607703692673415372756005103111309774475098855680763809975565402003039805152462948935663594156839687490284821486371664476305598758958577286656026622066505431536020121830591583608011759388326495376070721920995523926511454348170627396025100039525685038803353411241298794332422457996503613178786046391317797036826938800692920126548023053841740014298503547169121341949286878418065812891642654644727554492264549568433800089215597058437976312914877857386851589323218362441234532979080194692355395864526055386257473819931862412865029146314845073890778402653575006952790733737230866549133785842905405957957898520053408020603634211009971706790263792750696041056653378581097682372757004936888514245222819771556508762883148915398634824066061033775025881889524217160387594035603116135523363591045176835834683801054367279755840161576611236741445420249426215943282049659238892401544072229615548413623901076199920843897133772569335004867999170550784766059259611542267002549492089334588167800876423259338447738043777618809308952326767637873165044290007572981785796854340657367093672221421357097755277120684804193880110969782541420785524673782498965965999793574074398637160514437491990726495825249734997385088781446797400303842795161631041412078485359072326354159999347906375145937198297466355844457162371643684629894520146913214698424195711308559098531716334352989426418006065967567370955509980631655259174033037959293103123488539175664310552843738491647464580825045404270652527778386597370690265162005221398390049977969885626338959595086661500848254264777116063305225713076875880142913239514988330553900989452470176042377277399975632572774907150122938285837337028186173340003173868483567324120209613875045886930767405363174089478083338467834133027260575361353316443788074133198678146317593213613709338006027005567058221280497683337011559429197489573983081158917567404034002517180920607083613142172687331977187742924613667699024765938625789727596833139587277593732922600964928248100830932291544338100859601675844739494836889838188391182882417006711366654765692827050444355158770333747308526755799708527258689787238922016009395211948340187338199212879118737410073533901726842636606855851193879097681161012519848439966985993656364675283082930241875178829157131631464429742093445890511899457116428888716206755101839274581561742115311563413203810242248572318277172750028867216298708681631076036840413517639744413136037754469100189075265273988010637779325169232526041424422438583967026893106277884540950848826170359367427156938929278758260937149328037379102023602514556873328148498394399901690806167685018803290547642293042979320843904885405783729238756943431329707386691558858912305881992905480812969451803598990387885379290921970262822453427590564952782791795227836653509226066412654623517585458533819094827683795581146922684876549668615695850252580326432012526026758978129525862995356756091591503824669415039502783629903946592422675779203875720827940421931550537833016212693548619405688952429132566084860803648304664898780127630779391652344369056964592062370547905619199353055016781249164938362130260212138172015529006368078274722551376166127800277046594689381331010563576657942809668043446945144841461655838604882079854773668635870356223382741349165816555627526340863627149561536185884985058299650265241491313141119782586620935893094569469819305929508206469444964131228388088892019862320564630138125450565486593203781251451280097696112090337508338837641597638277498467853990726042454101389072742080723362202632477542695208912472800379201898235644256930733541388331655266784725658713432128128846862669434117802754244316106327719818988805910385855616368712037005219803175940696380973154927675702206885093658931422324347566486880018378194629556714947570410918569446799802216747651597920145295008427596882679505004376288686882431812125522433570452408956818665202664099155778395251070256428446584442219884550588582541274354596437567457203612737733390125066401532568740106771646868857466469392032720448820512867597314392257896736966886761300273470980986924383377285871232130850960380796308252165058196558300570872154052173947030520540659372732286873205525443010969878477060473093346856892328604716981353407059772866817219135000534055857984728728706486987084307721494751283481822584123252018204870635010044049135279785958557252557006211834482747190573884826411009558957622935655779972141823034695726753019024260906491527508984998040225812899844176617749879087021308138657421390238893943859718377108087279156781405561140001364780000672388812969292202300848121801821480901750988633029060584035303757200873104038697972571104022265052334270492685324926206643166039020619179853389267544087740485714628348003429715267748907658677665498862305749618966302295264796562664069444682829166605247769211725103771551526452810811241888742324898680738842028241093154661624723494728419575725340782758464490518509034905468137629001325507583866578615662231742524975878562469658471731012070152392571210885631874105864341405993254704520508139671728471666180586753989955512679251347494893067462112986957182218695817126405093216315219555422295448052660962897168858747311392687313030718965521493792795990005550083539887710688266859552734660196858700305000135891956789373249272754943578312782753889364340186955525414438196388026464213184145074344626306269498312416461804568362579931556309090773192176733976414453280667024200238708478245477527119023514137078269056734543422526976199392123166906675260200885303472954133768779980088231805737111313446087757151942206667743062226983858942461952416109817910711407447657433228564116159341328972866665996762172071724141802830266277178597173683419206695241626114337005237745467078418123795928052277711226677888243365530526823558778295324290421549572793123776358920381825638987626818127783618139739010820802170624464986542324752312369671315645439217223505202365241005970604073112839536191031216833830414233789758526006939552683502526833888197628457289243214501553836270307426902359572352980299124438872602900966541784684596309502604851614844669375338587184295873727971677038869041069242132527267086278156218439081462810546930579426522941282743867454095297515055521237005361945298791168832773878573808605462458650252282841278451809074465396676373052302729786943684237350042453066117641402278433045117113304645983319805449742479688580732562554925040179971078904560201056650039711621151672730512620840877001832984527785342315152897455120051491989247145986125132000345349753975730537877572674674500333565213786455926975866085972279350512958587685814871676413610109465634805891752588877807659148281363377892290493452559434809178091805313574454842846732255678933687769061175276779037311013964549818494595235060175829091830189003202237149136502693653587726393633619162394822050750200563993648580485240855228713925129925182596552056809322320923333381115629927084180949253396063624692966872283675153871194812293503364753434237331859291684444230768592366021339915026175000543176053945587786097578010507077862804995936875606837777132665717197777303699190487609550725745816382796542717117469146798438514050229060053254759742493187142337164157506527225305805399630530947004815185157320348258400295579034608965794022952749553183778168980084257502573770812107062089197724706623950000486642869699565544950385054138298677671733071268906974055635040454373749299481721672887389652932417324570195426317529787443226716881914908845447024118968747178377793453256662849938365998512900090425829110105320574778902656916874199002095107579768855358286741747906527013748826043107270554993100752912268952066798873647887671777753549136963267501238661810033281918482247636748471722203382199494063548834527582062164334940357992082249381868947176060169877560718649691154741431149328808525631134521180149703759397605236255478214834548433580797258104546106480083988561157336293860852989136757522154804841407379918481975323788177591316881240975210402634418019940295592710827258100238092485321567688081462101671570611463624835385233725683866727614443113427003465251194603398229190994257400834515220220452096146092399412347290254697268033675364085283206609519338619329715744226012076852597712887250827601935765948471807814353625722514223813688754973918438355545386550314249855675536074100925975567928728270120796628109836980882856047226322850332238957032049036995262389679360427171262322566944062497080927328935842437309278686136973545167165035275471472195210881842007809110844920147402551363599452006741204230309698642030198414074424928507380882536100529009934743414135644550376446737109987175147671946139206063595096536006685239635265929305339613390889671238073788368820882090221552497599172100730444840102136051146192711392237942497163462892125972179481925438730199350871989864731850539101059486710819443104149509193757245065639887687135837128456058175987376553849503544817494015586566423599683070418853311871115331376980557056224641567917189535644924084087727888341982875018362125714583017711602529115188824219798754759102948264150416784708085581165474464246690309759265704172561545070954537985320638481905005850159138771412459109515586864148659864850345936950779069124126277419628965393366695378850748618443888074071802428828295871415695201214781941603590379491993762742742049789587290046847305279307595057267883455818761177689059296887734221187611511497822373542254599800033237767867321284777651974377748572994972001975943936452807367922160916364245496642994430566868220141216415949134326095392402263915950599938586430102165761645352758656181711229300319977158331052046054896799417010486726715729745849914692646204270114650814849235193106916274674219606520015814864428095950700645285936431256616633168658704286439840529272409546696448788575959865318876667868418532390367819383876421273252909287118634769195723472459994030968417169402049717278327060736249801388317526576766835482741878521746022877436774290353404905838177176738899713694199109907645359175842718049574065794643606596883041925335552836486270715001448479679060002762609481436954323827393869542394222449975147275636106103577266502131027491877349873387221185612889016871879356964784588961201148165676468658907478209823154432057857085162282091577643900516269575130334014675201736560963850653630037607762446146673353913436964708482145919950955450385598777983942536714225347003053909152856373817733364895799792503795415433877290848486145934675519935233955969652231153545407651600288447410130133791892975083157647210503126766895565188857199479005200481189385645231391391240349542707510385358172551863157030774379228363332948085796209880405691173066817929605413794641622822137931463195181012921675565269026349710762436724654386384482782912261133085453254235647382241996414168815425527235163397981964083009248325038912073888451260727330206584580578996380995644240580293948263126309075923825188854687535974986984877514143037703103744155430208281201823882335812935316721458483078418251287975830367703749051402928514032686694614926886363412903660960242803316990332950600425931840599263371745689449640690688387706329404065856847675855233210519963534169028332720666109562926546783149954625652374390000366847344891538562376006646030554438294438656123101108685975868578538696024739188390361082014999628494244876728136021812588769673999004934628170304889918924515024123418549168637202669001838469096770634007536295745703455339134843326772398166039642330209274536319657855223628148014827334636095123837632543633249387145037537224573670054048347331778041737424878836720595747569839823117014424934128982846990568449952971120879262991405374371538449203918857761513754123017635855293571006618703435216798005599777745064987237155751601097057576160615914014532299821926623703758278521323018621877645391314531094349350915933779978355373586766821508084600339822812647995288479832357341419446200495757047739194834348049877036346619662974551857400752981437176423008193499885998587727085061981876665403784467291258058245316427935144451616051004915693191171777323766867870466040468931091087589455941674463860465966152610208066389588053788841712434180054063981061865795701008552215534599691964403057447495688267608155095778494076200834776325010663669168895654889034256381871294904190176356148176751398508601517328016870672511403870180490608183040405331000744759921662426538485076034258651297684903703101407641692772939886373833828287516062553750637730638733544854210985067941333581780074266428523964064907344648792981699072974950180712243754743963995360751059760375327886166311128139332511431954379594652635755785303597699110449735572806344506177507557249186787653239338219420161942868582042410580518594445411557630126156975220302054145752840040269489287829594918021067151050364909435360634950075552573162248689391774614878310014424655209068072701142802461923149816323379445112425356986589405589143334786226247825092492221836468238204271160239730767356037459151847544907724693005523841415637912734153200414413330502816758517492637828803182141959746730666446077376113814908434515346134570981324035867729705314882088089383196900329611529709836385404073003474806935277406225039269868612171721367771429689342668101307070107701666978761247926002076395276186598114052474256857424397531684407365687715561807338322799280049482770448066833263938596278373828030809679172363406581584397501763765692266655760706719982359942320674356581584734872986749778197164498695519505407129804124278762409492971516452647476741916174796566977093958966486783052327681231014448970085348409397871472005647161504486624982733275592608533653184333192301309140700304501641643620839314861588807886925984512931387729154545619414103142359934877405591559741815012442901499928197522449368224127086314398055214732605362583291146098621237027087199387699852827603521982583932956747301302386496228700886944040727855548915873068731587832600391145284104968651795985043893794261466100361634824256009286760204264397858004367979806116652365567099631714460536852664024854828875811157210760879768481891195100167583912181080132188122146068553106917283726093985739538105124339833724685989651405927445951629379515100695785309384828804799942814253589264989199513005549021162312228603578671031561307100339647855859975752569744048972557785283707163603106974893938738786387391703238879592040182520553475282675057458888417288022845238073983752930435867581123179061221228374443991407280203520637762679124565898770938551265008656016180125845901256231695740194131576482224183847527516410812625950368167597703261137514015787989050181867437839983115837768733491255368457721500413831401988198558210210615972553582468946779351142673323201860699476477122998062112071642019050441897046090839921733048442314962813051958332474334672429455364843274807945389491262442024114467674333671769181688188009300553461728103422555263349345736734480728781647980264531459485992107561588012670294033633193943757520178321363653954031316121659268456231569696315658919547979319233201180821065864290199719129903385832369550209977908459093373673908535892223763469736250480661971821865247092270423159634797040793563753152372639194775638158875003335555170850177747929659198063769969977859787114194027613584084630092509783538529703400927241946354436062119620204974449791302261272793280852724189978429136533911798078490873111290822959742833879249384405112820658504865344964868050243374207151259551667439368652584871993982829936117548407867548671596291326134996604730540640879433729581260967647518318472695150344080965260318825380717473785598436789892875694688938371621299082791851777148736632733906515031721100977867993331534096945813853870204592102615401035305763860473698647783251618954900945946735947165308402970390856261987230521900570002421469678337577556111140868152393395690005593311317467546288982970891826946602637172884111285779446705794910317790551954999308496815810916555309731562355867147722177242411517012433781866680888182199028297598117658033587801906172401388028215481381986035211576708063095161778663665815530477801169637463047337317624622875900626144394929198349939415404939437097027186385379953769374918687040141933198091430665256685686468338827066793540481041712794145123261862022621878328647837070062899559027703721363660400737126247860522459197756276284190758553196396403311584217311652385665880426300422350609268751994071889516689967938125320882949723131063214514675564749965829923460465047360372909468003210441085801831083379077704181932294897891712542943092372445531619576938699169415969137724747941346822319248079545502096772284876455582324090012788436227672293064321042469235103795713847530251158200443876871598882738476396217521830019453871171211191723467500360542464112236967683580616475252735551836975893177745373393461966381512846522266512139279543504067249218378501934812308096629098742050650388227969713584709027862671422690769008302753464483805061675450456693493590509562851841707482768405457250422393607825512095826044066661560738278132130870868580695671152286730753620960491366454804577446343762003970693330285254080811161342234292356183756986746519706251198542374411257264667433535788946353563264691397210760588837330271833004803242808865057447869670186541554547390469780978349765926094936601599465074539724400478130276704145527932818629923540685768071120541875669338661100022676276328656586373088664912143330286729772153041996858151192089966927991990164189018064494095812132922915592240309969581071862740867923915482762932393783923390403588132454857650387289733068141188206544815564290119027319622504130489755457633315971972557648489708701132833832577768585636495357065448000012450735656531485359207330032628719797784172701695708092582564777309078954739484844026137654306712327260339562686361607181468959181083310175956653239423372061709078919288900076580441867424673858562282463686741912936928954727307217918609427649674784660152958083000027178206385050272921583201949350264195139279781469945568184858364558374597789862377441526024468498467180486268669415364464586391641662776194019266931051223737715250731817127307147125993272511300817745554487427118711018092152260390542472472562619663227393711482309334516950883641332851225625375480850584571902795519189616494944469767563974304848124141035384779288529139391168830068965806206325280406698830259003966678527729654735112221118995462712337777818284105063840326755856568489754826864487289210989076037561184888359860286737160438459386219503661908248507207100184029866641980924748060134261682594636606884026300652468416290676486502341022112821847271719786551586015144686585931689054273977402603965393588951996517413439607854523394784062277303531255458102905729439703915289308633020094182179038922982172409376427564519243619762213597217485462960389353375381951949016987304675709284436580049316491384754514128404200140791292037840787172186369653394236385204421891537360630650738412427163212055449041018816229192939153252021332751864806797310273294699728914284132566949678099488450463719247470291547059948392354387704313773119103047127581655978878850885516199932691556977781109929813086230894882071554836286867430400896725573955827492088549516753600102769579475308337281749873218144910017664333521831867963205208990163217871125649296222187857438001811734933623974763236101773916105578361896605449613304651465616775202935516130963852825811958469734142536842380948704979623196552902584211604989182637737945012843419885424197138199405035916176646723292825770191130946719641835501790179382676079925264985594446272644002242834659354673193537353066345223103728579724934076348480816985273741551827312856335182425262737613136397980783138163152536359681886397140337294075468704709562783819881198376810159322333061861665066321895004904028921730122143032234039657735693462200376154146951578238865292261323532909685887769125352718448982087734199001193941458035806938942229160596845693249061716702083445235764285246684133766870533100654372641182783268288764276604721130940417540267316464333194718627829688765646803209876569925281917480121363293720862635563112707565483979507265522311454342491455835136525477505050960619357341320601956631339549720025617886087304737830021612221370799147674689407627424656515521044432866066171416216770347180220626366564780705755722766984827635510632083048017570008797774140442399968880090770664323892125716521312018066737015017934323980537794594066462729947985745510359614115697623995833845511983558821355113338778096913830363532518276420205858123173220522270402882716501657719605426399575565115346884180539584792483978603618780401501210992589521218153627750413477862323555778513796082622147824755091882654188431244802975296683705318099455308041958089729247196459137165105274152714318393911522801118631161044962406064923878566922113232720267834325985600816657682285323062316472883322636903788966030715704473475655543415238163840766419705631381492594835541891548755956296192244464788019444302368481319743536003291582670258148082940494777974900065497959488027723117840936237240399164171055474450603235429840393693030978157392584761434296177069550344180664113367255911121376394637321576303640446675390282301634579630274022143333289991950197723147888352409931833448146120300511101735588303642960742972548786506754521234390215896968791568795455800227390110791385884205373530124625775507358140342810215078419579897732937307356996615535057309655770591625409341954211108007477873774845411396532447311344649717481965456206293280648356417242272064094661278192394291942837324357762128947429071914331530343256068641337095839609495312217362653419934810455583725807589325318974556806677761994638680883920170034395475672829866915755642716743282586440391936490251620625686809940066906292521038096480193476936530168138521171513804675306724342286629142107814123010738930178728192283087085709199589944553179535322038122363022244646764616446572634593257933087109481889873609114142831921159048682167949607782842012903674243396444989447884733093058704932631101980076184531151400195323836940863939048511779357694299804122601335787864791636435047236225727553478170013692408310603300714307691882844290756059819866211739807268483088627089980246395716478343274253516053685645378291414295057988090648861810500139558999501201156094932830836702155039304612519975827613461575437053060109937240594615857849024258393203807890842900266748498091831516869020695625655158934934162498365120392647330370746981984979872357989824132983296063190802681417644752319177312573248691768210742736665398046022131601111320564386925040516851886721963833970136268140851385238944291992406995468023972635363642967391851634555007221718097914647065194189983813146205078152688075775929919999003626954364486760705591613696866284798968885587321401525580086559367508875509140313839833562027608869478750409828193925678741455259508272289909756314078807624423953448769061426900285927017334104821846200711178857910953704497622388454524499092550729742239517033021254974708769484800422733520183421663122714428420524390197699288805169518965232461993826173432911953037874556052549886526219567934967762192881419103105410724854236693389078765208637059401140867991146127342669080604352402803558640161520752312007979451719347711595030957946084214557248783909225452660055426878027784199938041418451955684895067572332089633520404378910981448881441699382127894064329599926925178137899341024460023199180246237401130797604373040345167006792247303065829459706423228920345486358855812640734191566680913752324213408092878557977028239178535967012845768504939048452656503628229798269114668409183539668165264751203416780742826601323451495577876870971786936678395977533936551760755892573002420867832579014331918926128127783891331074368126764903346823424051723821091410429678215810969883397510534952728680755421519627565068495983555871673054419432793829324363094130804199020080076510472558311558340867492422421113624122939730897040237673954197356598679578261087744325223192478368437015655926384609011710189821260699607948702764428605057512976579979733949008096550694692622742814064330349827427058022478800299842668732632174541203162620927178634528898679083583917623848724983293955926233106285819466392500095807196116299428596350721251154852203444058537638337006409358246312570821199909696465756884195269169592180693501835040418779812254765860253302318050449454774754821704027220144069256983500029269169126457772105505224921263934586876585142229178338742744266204250138849971969875789729516732145938179244899649226565211590839851820503392039387578530827727708340748753632478241402214631625586113937810306668413793424363782036212946914821105556307398524465346007748576928767539215564634591979442092038686390889687844381344370832220421717734083489914088556050831518308078252293342376241258662620523955019074486661556330980577563093596123080490288823260491979952942402121345167281126381348033142494839210502880611890543658033699164232898969629335345271625250209508772802337256846785772426047599745803881397802388935182474304549572506869211881671205885862232214916586866878212409217477470511295656921782695129375137028731101532241287281486295509065608883766677488484132064532550152681102371060057078078637015300795345173547681239633317817995885161426358039719766991028544161163970733787665054084082594271593565188160540314222397991159761341918041069149348510802468998801881510530456101999662062698058452932404582613566771077177563556242227314689815925197019313011288606776583291825201448559498498834375838091025900672363204907021380549342370035959359215361137278416703522966925967962148983056952833979855528003436607264478276697734810637432403165356201983529482355005885328262782510560435681683831933190500932446728866332838941671062063161577865042261248589802020962203456735271317260564932064656047892025656680500811670256966533291380606618603353881672860339569953707936275857894099224294771484453578455817403845771436894700383512684136747259686498309019757201861328460662558209263973106211171643692011885251600793022107990201796980460468882895615190710816734101882946974812654088102399182153547767659729454483706569476181347607674953651959788613558677666371132914810197325897929123873046933200856110471130233142840468656318322558877650507002142468546114572588549039942581259091621850667923802385596387125198146320840593360726253555809663194967136191967963996701218422464274034564501082932095651769931102412376787246639687892906169642712004754112930275134319357706788998936831692795624564107226904147094976374361128741313824128953768373884140460727787611363899395877542533659481124066752153308775784270349446301377120515454273913423376590129185103850415062082333352111258264513536094406883604297405789317696320466081787865005599378246822308040876382341921672105198386166056142618000470974599704945304437754091650540765678638885680348261908994427244942321026479798573979497297146851152790381530435140824328872325009789582509195807614710574160356213030362863589754356898062036955214279779764731102051894954254989148469695649483413445336049724156919515163517438303537320646292330809952865702515262599704729052852192131616442524708845293986165161186788762919010477017854569279491290097596284347999122175046439908026592269118739933193805606458931846557055602415748343793675824180288219946143879836950075803738361665038875069976813022054589896954172270822377070323178261058317649443244402571584522912054741687720293022561424564171189406022111887054796081229104120424374078569057303159560636269870390574450921460930395446865695863763485680367603635903375842864341461354310708956120686504566086492171312300372248186223389004796099790258543249792980982720759367881572648923641978615337151986861485696840067433375526429537094852569453234897178020404681033507910260209246638800590354873946379615838880411312479049726810493873403724127805079869505599500178243091983232080164120535917636695837464030223150185820655299569831834829494080613174995810394230335630211206999404639751565877547012005446622281800883532344420165251427052331190309928460798731877508488109501311446866968368124958817448131020752429985390721949846797377035203282945833224596866186660254859439801639947448944947681290252909082412888163304924744265975627469755253857281562680304536754840217539396095901316898302002937672760693655884946158559736694090839371938931203146783005743608902173571976031371399241650382500528365676237805419412735992439606606661072637727163967817297809367502564691324527510632200541123767160417440597659121777728896869090576521180293230213918159883530726348084903733964632566388864837336491238250145230916865677360810944268467066614614844282296099274136030578423067532645499667670401684926128387191403987766102327814542889913165957647492402887249911663467064007465889120443381996088893027167521709276560545235708514348313036037966129096199351040145530847291482107999093274839939761838693839888213850277457054121271090591027501473662725850427627665846458498604026963992810888470973196453773314250484809967321148216799868433953112711269882285496677650557576132271525328239347271222718761450484277569888858155688560915987780620826675926471433651859602089650093506847187530963996694605516222720510102181459271834518404395350682805861786581885647141518086368271622324142307280791250522657882096114535603465154064066634542539683933219511567347557607608213161910001451165536495232311096351822797084432127116292922738255331280750763580787847730282985409684515774125056366683724774358174279790483081765135272023274506213604914521262518367138256182561599008015036230486898087101435683402733028702069904475006173364468225350456059205763748619556759193494267717758084628130651612299264649311220762327968514931584621249689842268454922002422462056620252404730371160264227987604573951854983464706993463181710917311964247347538597312791423599367588628737983141303759459967874388273751723587104683134640638268174570947875805660110876311682179012923077991334940498953215483509658551725724433029929301815301241103007127603871786562963611916633785610505225015518415669187501965079057265213304949823499672203834519674146531533598034632750840291356441934779919175535199679276266029573372352414310503626765834306519325690448979537793936422721975422941909785856192408363889301744206090410851501344735402822291420606775610287174968817044598446529289636500560310681528575553351675412922233325975779914022112769050382767144421887462025539729187563132835652133960268354630343555254550101023137937545841989933181969956961890942686848407689552173492622903255403022424062961568861068889794796751324103691589051982858174743060474106381113350838502911810258035556220998942951282290650208824147058213495327450435200770910527681387304441450174526764546146136504291484146075276703457151055158219507884769667791165128447360243615899473167904749949262392491535836647401832591160921614934943078985753515338988437463850371580506560564180601021035120592530979102356102948845607173506646979261786035728894024615595294167840456659369523165696381366230746814533396042058504011419520564849201621130248424174573292541707865367159324221632741691615723103279891459787275650858400751627710103973658784263141679253732685551111508723874728816313241764094367286230985238921160079777611131158390642482788983507649132990212556211536656637777611265816303426435157301605623967008628252520490402021136853940367482346211213527542349516129899044499120422348246643597838039465821307098620845093297670000869650077558853670010714639833397008675124891648354918726728171764352880947824671254943676613468570642533945154884917873252084413085069879373005400311155488483702166965710991364188009924954101253087682780787737729471793017371484183608396565145131518941717651315754400735995006048563252206302861343345357997358011957688145009792005863250283578526342752163854187208698509874023287815568929550415292709842156359084533650477291607218075355343586461908293500120692541605251447093581497128165524732948717692271223776733953426150911811160732854958487470778295683046453683787766267095543238226336770342847455239755014601292929720731586337075450012883091768825366996070383659799851020932314127739684274590421738651566847456543990359147397425270363421613349264400725293965169596722744515019421723552829878886713067650041145712891621658935565960535792756945156637734889065104808082735058084814882667883488620980082482358270227820476232371169951284759200150938189788015158493113741522739165620192744668250552561771759238670332589227259621077746093703443093234239103693373566430798127125034267611862997427054253168657403349116026120105788538296253484782510441801787116683496680864181250446621198962055504156578844605478714630857861090910163436129379133101228669264893675147658461951127382240049745646039672880668665994775955671682394321089591736034393938308138113605926389132292712278289572874413693309789925367976515569747202451911532794895757884164766153342197977809579161664986423471836817483022698177451494156309994581335757891570251862125086798097490051647494711189091211290836621269413891155076803630559207045856506765830923706695613682879139926459694015955792004983685477966754560648753234159416572786041696051900169236146341350822283030248181014621691591382872482806302654347901077713388220785326998122889906581003208209565406956916040042285459013288912247081794878262491676943257334539887605752405820008723682452715624576391374141705586212274678689746519477391049369761408834143519206887162880740568479352791364617431633922471942096257456072966491997316568634211570289217348739609267256083327587638117948173567423156989461532572125713324035795846313209414506651290688145693440298474779468323719398165260270073895314274484684060189417932875629365590660193097453183937660060672304876932851568421103641928740627271242155819854207423363544630081574804640984119007411533427749065571695104057869550333849144980352234495440509601817828244168615558359031657386561026703744121117468105672238655879351647766285989054081316662803698923968077609515864059537297616713151105123717799531589263677232260120543206169237585666387529435563529759283200705533715244091984167518297673315952114347386068013919322297724726318054243264207962710996916264218055503727061684858064981617243710275337934096050090681005853946355694702723448676587426702563780950928257984000034212841424295879391687704584376975106333425308409921874291675547498458582371071160567556046322795853036749285266832823493884378337534893066977211605269298886092935178561307034915037866454815527534120875982448649218751277684549606862475192769641124930622314914965764721413402235504052186151053381276858833561841073381705524204519750353239800066451659539415216921559765838779413171534064026532509221105771272651930166957830345397030248873083756789433243877573545775702203477558726566399647911312302251648624359231374413627735027819888098952426231723816663870029707254683788544797323054439709268517647761376343318955107694614073609243946906550751138521933859397572685954128914928929821284308780795063843866877386653548344917065598933000221525300041249410132526626298348602085060629951438123748496470976983682791399286441107483173066792196109180244825733098719456551171317794432584088506569612419386406528197424525347353391522557130535113812351205997720550684421542503082159040379367206368228220886005145249648988523922175866420418820250028426593913207060055304313478397262300749350177845885647084599527097146654473892160414663390717644946278649513383301433814133260117256539884505735727792900611676151767420148814359833416720880081651990528048609785204505357032528991122999984115901605759677069788949780763813428553856472797363590933116205000908761447156967176899716694161724923329045025387290523526457493984713126187425492785959216050853809049761600375595192418670498821278744037077856574828973273067670607999547598954874335805198803161324124819427203260200669688641400561352041113655518399392706802671618969029864681271688980372254113158627645928765675255679232369731817053093552754484743071973995049853600592769567606626341643421381631852876953318605141178456157642147415084681271140056170049692213981636929288519637725549128928876704145568113158798409331443108163815999209561591399598519881280064803211968186356929393631751074435196137932169591690150949021365243106849326258528163786788713235881479303670081284721856565247304660088411781159921118407218876103104748999374649198131690738007871734154111219037580986482371533770938822474040305491344085982544950012153808076732725810131526590588894991293314275105972024273993234476871034763487816040069430162015903398317667529691637783467656927158653563775280274355235523825474305416085611867975239332908721065582662478383958106088566634943006739527783659645286289456594550787670973682578518184244992483312650172541209849343089968752657259098661505203637014795511000413811236362679961714253903151719085171199301238983894290959742673380913516768319663589026998829163150753241846287854462414767177543283055781909428560552160027840343690659195067622673322189611574511345665435439352362993207797236482611875017187418974629641563073888986721626062608517097749334419301176227153057025467723917907337789885334452592641372568140196580929156891435889717384912973703340396214118258912581409556000142901877992365962547298754769409395002984060034457126664288762277847039599297184157868636707042358535630874013690807245590457120810726729206049308470855607535840418314501167787691850366560160723924099097599827447202319157118849783570487005721369199358796994664826732237495921823358897112649767622999248986620625024908575720503138251651731064254088275239205794724771283596612952015147816883785741758412644493123627233549318391056440740074515157554388904842509683029753851171619851367473790338213119843528791101213803709624612488034895395102165253068857218811888445329981540470559469927226494384815648466879024527939219118796062086650706241885409417878251957110740981730665460843936977990080727918638581431327174989903547280967964050590593406425326347698935786132370744586580680019890008383037796946484914080814745104890274894939587397165036946522932821505659469042898889598676536100882285707766820165320471855465312802723524247025385258411235712230150395323567031617016744319454462377967928983620527477406942543364657307125717977145927081237277705357734700947456749332591015046250053990809017250814395509205350833227919792509996687389851365438865147550817259418340411598260704580154620205818414114396418558093314268355457215978314881504341239506728228394573036762247516015525122681072735978705767986063659707572914987728222714098019964439973590200909717911101856721279407045152237660483866065912234638438240117523097903128688742612118585418922178667085838706686285314905332035278357343213795255550641399889210093539612651413222799903733686837846825676194587988940127524556377498639396871843584587522314294649011283134355348275984017061893668740887218680374900786151788079121826910022580804377181862124602648077254901716324530400058161403142098396070206172743231467484629680346155483294858000033150656674096800578058057026870929525883250894642070392442038563541057685721806577384800028529019193646510618235478123840390200843488593476946397473118810509372082910989514293364721507324023460869010820242533912656740628901312148090566703472708531604487505010418697389265264984235428231668755727793798130167339396706238305102577770989368728522766292580173748689188004782093914199395752293534465922733838839358653148530302533853965598746984934894487828328229073028038575883576891677795764084913147392662826123329311169267470775530823347675651297495967789584329161166512575227388046306739870695618489986907916446058731224921235811993881464781928335322442186394689319801850084256789424573584507836252097333584009670493407068888839265247787011315020071519049194247191140753935306674993024958655728901781899426936911959909284970161195968813059276147632099069599399013329348205709698870516760374743632973112126912756140459340060282811666551475221066904291435953249285014967317870319011228825802958494673440555697373784624906927988810756257712180657273106790094807309423937616791905956695383390558212435502783653749286360914357699899841642781078800062904476849396872791074237724421250275247705036024142442164595095630837122497193229639633550487114256748713236099200434718107073506721441561558013677344029480457053390337855779807477307637841740204335641668133385603554846660943391475476017929359825501410907565757375028603098027375196292763079380456808230943524623411965311129727501989553470616492066201061902331672518762052115784112387870337887512059984701459147398703400090710975036050420070088973038411728257326337055252488841607359380680022998133497213722372238526553906559269057587514255410026227058266786435848342856002700551733352731764570540160948352316792015156023910511448534335693265415783015277008758988889848585835211620381479724802483721858411525866582615484334874598513224124611444243969652874366543486562496699223098764025546504576023708420805250836365414745486282174876830501455301702489825785839070787930579909857355253496589072604222379726592148418805204694962537187321596235680319961422480727885405076631201788371459807382493027850920578421929886064406015620254879742146358098635527065394425248969145819214827596982674371590891090376691904832076570643297396610591536947953830472751550277490451064557027452739759721431115276166710010454093906347861127527776698919301513208034684595527691209286550340725702238292065740065044995660236882285928898644748541427236217026194604545577460909270647446852419648952033824244076749898400647439715297019081785749439009801730645915055643185346407407128314576719366814035194630496442417476400229382486980619388826043800617654227787782460415027072067684617221520019557279033190174475000983061036552809799598634796211708579033839678068163991961604908472770001648989547793033174631333359343835185647327851262195321733649641854510923382344231548195413673000152609663327672041051168595958999592885913962276971726886935258104465208338329521119225083870112270919388324965974260187422921639882917615423617115239776803949774610394260664257270457762373779684973470318624053348988194857270065729458566628847382266290245417269915184757382345103061792763870771467482619470666662242850531857143507637298514810968497557973207283845854051492706684181957375965529845504913547136151108946329384294388167191892698136536228475270598195249183476996709730413976730814418799018500389786618517280902646429754840549599249547157465194131792426820138322065784629328590436418083896183212772116785631276973642698921461893774284140856160261502898736692316048608440356065558942444243174997102598082409492624956496495319619547800243293082234490730428331715101604614400201059241826386198043365647553331461817913351593192984909385797242824613164541143297881147281241893777322855558904353141357355820260594273702966999042808411866577472091632065761276764846445728197420216864521226455780875300433696367725122312118012249663672458993380527580326881038401342645048270873645036416192314617662786227056891233813776845516608857506874116761377796817759485583227432826128344718330817114411110083698503604959526224909072917460335327246023679002208062179834805021299523449351720380869468171136048851122937724298998304313917085575075211672934586034329478650947020160382110543614580492294103623672186823120023097397939356689657149605183569840164559480389855116318179018576591058019152440719595738058447698902477064245578515407078051668946276109825623608777024911138724630805204097272199157805662027937116990685073975920369461881497957045839933832690659200435922466338835664369913123901508044386833377098390194785304617106088691348088785289803612148529378048691629485032769230154024857971680748367107984904028596207444354113136285021924312830349085922335596578421414402818232865077527838889351197784166705122628208630482480395209553966855257081949405183053459928022313101183524026056949184155074146424345504831062650749098275903803348397917387296239118080717282237895825322375128760541014116544965080604939311103976181426483775152434577811756419971406162559497406926234838691345147787125686233819996267146142140882394387136696173773685131701660369095488715630022431462349204836401948669805000155683644289158204755115886378120729225079813780234841911143642989283304292807567095555609216393137853362454192077800433793648340776373813043151723976104360870944248687074179384205955015179748658778042071351710908633164365995245190552132406727103890930280903343091987915619990915232596309767395034281092405394187317428754182206283852004206114996248085800328621125013300921404441434017780378253206894593920286340303035959900363490175727468352050717350122769193769822926967185183594345266918226035311203495141518517341567683641732229338838507872540698388665572402973754896724558285378108510663632120132115160272138330768298196735905263676376797998521307689208417311274773320857990001075253392696379021429954564094951213465985943220305940942651772609502327292003236516339329369163680873356198705384257920965338304475751103937970596468836111115658333610762704839467261242848131447203731648055186766136767041127356801891887683719624757712583392985721512953442679792347961090443650209917266695506953449444704580290904367195811180990545191277351290206270931647201060026266498274609747716454933754755242964456432525986329819036872043291678543681177567358259876359497036262939422208334485346087290356552642801935751063483116468939163660790588893855016728396478047293714660579835615558601910681768309867284703203627741896598890538638015633826228918183142581096497715550732680481241774293686792198724916692052026236211240881045694755320540556600054526493044964720994899417179099448386041795985851086211589947714058569433146578834389056102785924809272946111504500063937992944103096175907416013144166978729953321729346253703957056058955495035036480154895992075982514002810260954444585605029035236165162229992365035637602115616788087437216879192102669622160817050360753064246526668746720271468149997180202281618155555156423636543318479294667847143007760726605045518859035712920954210353827275924452730934360247687197125566921184723716960941188357924455667361534374389552798304985855692417405728422511409271599505438706327128575788434454420102699110288316711212559841410913833873610097732770242784174978287181122453696458087229262499750876939050006181427634840780210220334495902376146653680398842351412357935353990628074687706843617992471827579841639309728601450726086381520062687295216830108424662041968678977791945900070781790066296863811635252841009056266641206117868341132369319848797280981192524143283629259159054251010230294270780086252106969093951925863546700358651734326873789109350327121289356600644386452054315258310687899794570806301352631494369868099766126566783165512201341046013588393710937437887133147005484192524925977881199525959280671772508172023180020040459896859588520206453000744453348319414635920543156777948705096972928129909497160010556849267886875968669990092397092236777027484043759705564260076140219333733207391550383955594145297540188832585766142603195702043888258915355103352978853548921788069655940907549424828894104809597165026198225886017137196280661886899293563046686287575085677327423331178193331337359907223577637225074697583679852398343960289290014505185879861693007439841471140587938951476314821940746280961052509327446698854070341428342921907433701082778818301288335203330103726975669793350617055723953656623606058547388748813727512642052351860358164160253220127712503003763720756297386009284246341973670960842706566428248515842690908564543161532017430407278230016042545134649794083093834181901493745444514585893577245665669549460526248874362689139054484715535619442122191192659238221292042272631720547528221756761493799608027864021518369168174416965245803678740411140927847499301227549836833122108397798561166217352610657202141193100339657193348981571687401899289063712039709489756727001602830782115368019594508239588470532729864337689937715407943509899138803691477844425575384636056569056602719613481508871635261235193982862954180232149518607273382967269500444793951818800047173937996305433210211294099860782511510478097990149666000335063980067360992338058579799162882954240959433725609572250997531714736155544225923257639909948019978783840846039725268301493004497847502410652135879821162705418560247577348925612542883846898472085513570436835382450908929390103746383105196978146893643421102308343902835776497014273198453757116308945979728476259074874992211092261721166211335793243990383269179630612260680724323227509698330086503635431459884140672860680894015372507711462666306095096396018063303889598273937676337528312255857578926886385123920901265727717487795624250107462443994582180116496876189777619402499343241373360752055701940522207774042914594385124161211934308358100362638601911905843011359906139813019419812960763168222341610248465204286278899648092482256333054434368477934033409440046177705893867709479097724246002879463601310980052110309808374980704797730203838466326079092319168118233452802883798444704529164148554343721583436944573236871428734156691486613788572701425159698989485729948254490143355235619636036547097416966827838610533437081064648969214534863438173402110730913840058592783285749092979594701093096912954068695009478318416431643873953677529489756428869888495701933112652891668739856118401654732596778777439797836535992944080571561958257970371121497858136414666241505346985820395080688480326558619404529082033085278032984563588802519929465143295742852300590367644027499372690175294697238173626132473083648571963245145926511398117614351347857375296474401783038139009979713275326130519735095436770502489885908438510026261787319341226113160460274183336324657982929048818915661069316883369482112733798493221415960990106239553840373869675418868425374558837800017176539913841295423837126815096235502186988268506180910964139721636610299576822611765964803429169747114498447293167448256250515236837405034561716241846685066228691426654189275997226374717275111012985258402720289068908377763606317526842655323450394026710548524165102650362705529666780807672701955559685732783125445466229034995093385872316381632326215131741703131885902212263612656689449604906300881796673898920154194132306676645066339537891095780279132803365784924877510339376744892823686590033861942529326487227528258936825048147154949817980051304327341572364771118058952188689516540678485872375443693238761852614137818268306487184063755226091498488443893415666918621377502473919225662732989329155982200500614981074687750692929031120657149691043632906686427199704428809001975230519701967468180932809971144635516561600774190520096698182449665914575450582465595951833434459413713996614231145885034219948477246913367314879776062691848792413738188625779312607525927157622818981664602676363361500011790134493739117283172132269946003659607387281139355539074167956367673839130913697409633261481500942137798739698905136445385956491894925875849381087071960666626975422441333846378378037326523320535811853537954410550473518107180472080852476493790383592730169261974145909291772751154445533533271334040683733667548799977401578098479079039100228513892958013185710795954210964399122756032054966038744126749632798856747527580996944757690385029527982659964482223100121389012821356161088703078170279820373906113364016085357781563926192671865481474236977344862509695283087766010348836332875652686106887484604477977711320769199749788008959091811534295040355942531532277906183990159645158713452541782217648972450612343866417073439625618881683191932890344268937388456871878764831846303613808310345280201803362402661751459529417306907235386329163364822947227463245803045344175033751529761416099223036273790068193625259411205620479725839649347293936215045015341480794279485177697867361127116737547812262327476257341654882805205862907865106165502964788113055119709567365840237758850486248790093328071451155433993293994987264724082330802444435341206681513643778295313418139098599275277894798458578494995099323356590031835051196260892849286758799937105729921645058523930771134970931490372698665387524209021668400839884277706379868319307079038693600926122451580681309111914511242870466854739194363002109746812838426929997297873713457251107347195784515904726587368142136876367043360695039684739935392109653209334237122955764538678872169783012226718573372418702880087832979936496721160988723815469542989248562636708103003613614595589794414142029005800902910955096223179733425412220605232807735260644830799981489617354837866873637469721112325667895541659322232353775650149262825749881730335374141540978408346666599321800463266383010653043347863286127424857583596715322649526248140177173629773698493057125285055425374064620929732585710431108750839281396955036437981711059979243800661730694457730443285655701007184586956525033962049569359065268110824835965200639211267369742841231172351743516849129997941333849783588237643952032285276006801214893682117772886236486235976587294119859432870275560738988237291040612700516973105820191700630274733045470468905529858301907372576954152623033527955236425080892796855568062163571218354655314447734486996198826224367351516264900873931444791051974241209211053026565864493595368222840022425118948558965988887642410426966078334755172557467984457251218908920452629934120089087965277159788026919146950571812825941892330559420808634661823765794949266833457161047059717431624521015358215764895425930463824404393147553750057565698137150866936433403564673210652553097643397996012478471059674969666105106810772475802471501753288752336760178941652353634586112002346311928501094024837768680339349348174805961865505983210681435990456590381172433200374995387074625766684736806041404092812370394514120322830326222340591129566740811392511525203209781253120243149255362606397508604154162209182370221477098133083992146889117568894837405362531293918889297865547388418148679874613717595596187778679375019266257418534095381439124893177601526350914236277090257406935457382714544702809423056181519567796081914179167220466685304735919475017842889751210873441009404040503317279383796917313941243556828778717657923790781096777946472874896869265008448234341634681507836912268978686494681874857097875673315657164364282081007122584001325698988982334703630958565797796743163905683223049998385753770775601366325927036023270355965976907316540158565967157024680941999871521616759694571521200375050425361875571766407342749513096447176503280319594195358983879711020460607232136365472904283679264003719018850869748892642659855720512116483033113378584496605855276224826008954787685146224135889353264406454344636433946110785956150484688800201420777452323572686451745102239293451115787028024996698174380207308076529627461630637335776498555190424218096425279793904398923291675842987628888357595444306895522843134416402362730577847827009742980872644091284186243549575321692503718596449018129617875611400152923178564774379943163655495804547844732195368562070092884963307010301859012517724484387835259141793856809400906843263900130056866052481220843351316285662637637580710695209650753237891303836964177353004745323046060650424294759666788222294764695410896345782368992483797367061638548671174635442278327358672448717329521384404468068345606677697004999731629462281186003407526200553127616922591613116420645627873810107966400670387169884877885119095432064966390172275748356269923982711690897867269507570056204369378333595300810360983384219816697089213997487607561650540510008802001708628882622701829802995045658851373337701432185067135434570238963684434820565825310171398648937848943816761412640711979849897449711211779872872708939957570401447225676527957823782846923556873854276380513823557063696790241215254741843962025205230533884102926965143159236154208372383752464263159626200033161597675382949766464751261913803560870483534124392027185487977223589371087035730435405147336495777053307771372424854712926220697831040062573399211184491233433350206849989297353426309481924212462679645275556625768085252700124377293385180339434470459199240393811607075518766167150111468801764801226627154807356414570390734804137784468014458799112071514498769070164981854359506643472321608444295428305152337745385478421305239726262932385310262101096786994164954997960053352284201495898567316913758814667366447040620607347077015841488208896976344323077177631384089401950145998242229065668434183107300366592643064154387813995939140991396383428913312104226470087876311462631408762862019501234523217607613113601540408536713442373984629230966870359494270073111551922089694951321384875979444399386119204146304654020046154309711417841625682433624828060481769057057290032199391351635054453108546004827899681660911293427257072926610310809751334902716731650800870381365808547789234230744282514504844863458273982531608143143518286254821634486545367950072772090554561221124864072827950945945474092595672564867709360806335042032958754509520105833560251375833916009841342025048973239149355788032368377298304086343191612557153273434163629524681522289706705531110727879345334423326310471597778996612571816680637805503488769153640532311961661408063877679638208579625541597495437449325402452290455047094730101853699374969548033847206583952909798791463401056340873148082696838063637312687845455613897307932579540627415054725803737976221157922462928075736254380578250916097017028959766322746804341208488526467414222453709877336916872133398158661282812105182636838615126520678814450274279806324877191210641198331604283557474069723918664155659418761446912663262091204771180617088698352851544903223343616953554355983613146613817151829430232560189499673142138958846141108039490818369224992455729107795676179029625294606986310577225404737292834955010090073624012375837506120805360126239993677685311008723999016043558154752894404542925353589880834813067071681089482505670426295475798704005625044799064517216195503237858418750845542811734736099722437330908691075486281395175157980127477252217579257020510720743016730844561858037194419542284356305424471770851710726537728366492825785823600510019907576673058572959730579056999486534783517200956587447903170085898583235181911484075369358968121962690590475283221769084063327876316356885936226756427838212806182655953990615061032207849050318570158477633968620008407593426991842847450854386838707106593850144099156813295806634038728120391421400121315631544032901277304886757268619312359253505930828822519048503758924708693387995999378593369102831277082655868809704707152314908589370755193251570887034993870206548940661180421377886641803576075405847825419234474251268451116074383502495676556173673012357776481250961844138395738838277359213428190472348573940709887417931032677736262739705875175406168979702054610487015270292397917405375207480546728637156761575831124971922298513257793037382965147911064936326931210571247755155849970294694314508213852888205477123352869155340141659396670212560600734304657612492133979098820003072228024471155328726726933261132998118867183998443789941984552409688114477977996753108950837495801724562673841661840492325852216830196972901654797646336780968652588463988912618389397368780486595766382373169160413242191199676476534858835116164226521683417692783571967427788670246124589884285595514224156430000255535520782765549752120223768909440639247728191491541762465385179372795041295417913982442894198355472719841601836316120112704059258297382149123711934093959484642546951036488221414620401032363483452475941861338270501298302037345301453737084896541590378506354412683491572745812327202423300387149177573902944659482346658175308072615785644158935958051947010939699237893377546303756333166020985155514618156394484721683838245949154598983577665052175017199383373689639166632018356422656233714394229911062130814880138653079971287915154466420838974435083791966253897274685021792831001633349470786289544000648210384722638272817558186793892115737471578532910146144959032967825745059519379041004651356782842302117239674899623261487243012430357505865376346895902825486729733511441396711063356129566872004546504343580354564365417117708631987715533496136878987298578572750970474171168195929298968466399353086058328786759653965000054464574725318955032104006010407868373125731661650525683521429970854553923442900042631661721168907565383759433880837926298921660834303387374074489903610722891325661681739722537060631045615284254573137552568290348268529665217965480584024871243625860355595419804375668209972163730649229005073142837158900489186636303680037854389322358240262435522684470302215656029476922435153602136568638878941768561224532505119213948489869281051528753562452751442699031981632522374092012280930919943903512243328951378019380465166572344659327407943545294909509623211374308917231858557339745545887886771238588046896565864161791595762395536121934801412627347448999982216719945893084197725755671828649684820754304416665723582441347482302613547757793038000230881670575393804773724085561064584903878840929306172964941732614754833528644152620223983334417697805593283229390623706221018634679298203329407466783120679527914187198789769679560003343388355091762885602000065865343000373677935501340821862454848721805767229442004973190186453331897526332767171039199585447518853045009617799503851929979577502767457402451805888925807362452673857173019087393795520646623413091040210330668865735726139473349127752374621744226027127623880859450971692859664046285200106815693475210626181526482342589516376470446206614298617777818898705970013174164939022345720298475267401495994381952502221145110795189912141141173592505836039152999231238395721662787136007299636886854182897022044322580615804402594942616269523342760678719525102140830520730726473084273476049858722323174990058939192637749897663486076576555819761879157369235575068195718042661200063283846399128969879482329460995542800477203009561073178203497499558914334429970481297073791473074980725932931468010443169435139551858912435609993912046676253790631388145626176325827273160181156035873251778166653069971138605157754903788910212582295055128335780779129385056070090789086026678729315701142122562205168845913571247357945358599026710777688605002137456152668540506245775574588418018483513495840447681612965317477188513283827068741934340533519099900305446253622896298696793845721025962812541534349228228387483235594338776433939215449242817053353447961335621307996503954908776596966125390786969063791493247218169402202156186019412743906116217463045721268957903461174401210697726802414439808798928540712321975005417370650861048881976359116900058452707218242087013981086505636915714197278394279187173037563686150077792343532036285031612629237315887082314210449001751513873634047106560900131587987771463341095898128567051096103445259339191582975323065748326370291558189739347192272072915008914494546739736116047525016664808494495411568025728030591029156063850407481386707032362161463804704356023984741444540183126338616953187539625890148216566999633575246301057676726195246215923912433058382912612817612863177349324726630469497065869611188569488482527823393936482770824927572125065646180807998789342465638226059444811612493096867325908246986962416670426372173418037600701458304653253439356035639921952696768300315409847172517714165556075066482302469985826968869221355910872866326261936328608504712363281201897158330081763859218352016007812535196057918063822373315784655211797487586889875499328659120778195202610215996328154283085762391104252101897832121226160731376244634342140618943320132564211636237027396197720040222820323983108090185024694402473561949061913366093905054881245940596918931365194225608920980469501699014239203296512979284481831713912059853937298432575671631227621099357698674048994782935598808440119254512904026958854168701821546410962808411744539170688572986786564770157295814852534258573903802679466128745494557335993987577945185822957834843189980475022713506844545344300523236975933346790132034958855726268815463496244369305685398738393991749160540197125977796503290231198505436793987269861797548104432798189060434178168838279873587396909465753785542572306059796311051831823291222940024597909348349735815817832890626332338139356748152765744021160056485718259263197537057376978585842740590679837024366042062666285438710780487584831487916362598225145991421686046804798674044937081950359790775560827649792747176815908158466491091402496030482830106662328402535174694989568837977360835477917333758741125627518503321272862236626865689248162623871174017020354309723937656441246572887557310169410462118785775975844887537089651199717004625472306488406050279881228723662571932991410751409475293042568791763878173148502359078174152942742962593553910066551079726628323113575043041240040833989281539368268358141857459814577781712276619528714444085957077320276777551948676785483867778004106346467584385853363561458197340415586905939600983255304558756401914070972953330631688893027777616865696356517283272672921845204717947647214965141432435608186663696856891588897540629429086929928829185221076361630697775711514305971065385078384991469331612753472190569589313438145246334333477782897042090673730627580553061240865304863921823024597754840813072622924166597440903088907812253595083126866076222553747094913386020924999435277345741577348594851277449636386427161754225229424362047123030754094694699295376903543195735333568979395123454640254900923785511116084068680329691803992067777890677465902493788819025528938442614023398297666497135315452651026536323246497623143915282725179664513011415316952377321260082257843676809166078145476739815275227149472526734646179726478182086136901985381176819629588436089033650923598698049859982761742322018731667114788755200762282609895547559640060664549033698343775402032738613852896804629219195468587664847653723038477141162242201580858607018180261227211527363929939915332353416207516277664680391752124115349574392142354264002732934144032377025401936531842409591263768604119991771080838005145245865917408215143734975640530920705272846879581287157279861650149319195036939607405972018155068914293300253704910928124297199959601594481406842951899762377844604893169925446411535699259623392641189997516402970694897883598592146719919691410486200777170705092144176093249657952549209771923287690436510093852058533796081184649888591097020540220373223785979112772744284186597218086456235645167506809504534488674173695710846880691000096318313403392482230247422674869818519117822119832024672847124743378643631462679755432716449869034052130922790420907001903139504997179744274692074312106266372186431305479395976307299595597125808230492131717968455663226736888082356631393794844837244506371650414670933676074526520393968077944333677426930594148026097370470411093697695316023969176572452456072014796718996415922179590396714219283258680915064433787935157601851437204424960322480784035918453203199602075764135305077533223989504344221176069242742483605536355924091207482305605323163415566724839777935241201041766859612370099298358589761707316658502542673011738552404732459039172503805855580807908668082445307117541580077960838153954482054014112182231570053395181896063730929979794801337017966807524756399918022002418063618276529849667429088435615838680802723082744487007835607030891214511902984781906081160184268627492957038669864809048126549219143843844627395051563399434446534992981213839659488085328261351784926164605000678118210632748052988298742916274425599875470505046021972577944524353954608830680530878828666783995352809038658249677542977947953893537518311873161395793556494767297681083686603960881541110339679284176082921130569168152433930844259417314618565268193340853997652420168641856129360947916038786627025325757168120898968738329911694003365338575927040220883153308083000124687602612454089366368000636761465535546835170741833085262630630429183476852272339797534590415828696238148169154753673065243823547114625469802834737957370794478628180564362053907351776255101906363513964932430087942197598471551636592191645614656851588107471118617546356371131488072788239413222937871229220390310681655176420567675745328102894474098227411258736414384555485428772852965963817747274919984431699633548633253967352655153734651421246445069938103979265031068620444678376200037770525075371382348587435291818700613001620477147215559693310652244280351955440049593217513074477444182233145842210442738518341322473430654009404013611311809307812155403758062668973694240773508898319077721545973904242933818596902855867691857913904386886545275324423067028300152854917441685938176272587497397535220029557498220582795977416096732319657385962823738114368325664503296265556836423816485015944369689058871199581554019761715985207230359813146363626664997717813838738165348402333626937889522625133236566983424012815442774372864837068609955368848825933634588602275168759585092182300126457985927033947106359404513260252316711960390555773302041572628437543611446377695499748805248480374392469535255516692684474222609658578519067994629424174062195161482054389301458676955724185580689275061230520921393904376078966208662018018518877812317290063430573677288532953234450320926744194822012898386869502886396826027543783753861332880855626313635950617308046532914845701218311385103121062524815254965442649105843479929603564382806782333943639551652027741727061722695456082849922111686283659353505017227640963993969188566609688728469690041034099770977361138282303559291611637345065986641700280621770145294706609116724298693385075844691930019176290495204982395871550527044502593821696692960548934052548407437790332446229513505679952794612605128224354098264105328575200537132133971982560516216066208552406946300115208644445617692647581643408077761671954727349532315707877987378383015426875202213332521537996024677949056788421562030155416577033263807679930263140648768800966843004404936013168555911544037154844538820756181075894061714457734887926243854201828154196864833127007437788804333081709943568458774308461320837032634258280894043456150283221279538775372696274655854537988360886603197761804813886490356710905376231016838303594264956684895513227017163900166232690640533654028407973591206337221935644957416346767203779212139107225514815021638531027549200508392768081905170811380159686032506809408287618594236507116242309129956377465352995413741486021552572067890428454865438989999596451515294426467214841562305359555128879113708831977462483242429324387469370626033198386134232367604482083563493816780320895016951692044283837765049713375247406472061337360511563467239913856039464717741108211048663702189318044189542432737879958253075136772059172050047308065356233841367923697484222875655492901444119073799642138896701512536619113429893990516765638282030541132936112807647344371762079711109636235379466412380679566832504276370392637667987114501463227882025483108016923682355527386884125740772557570406932112180200376937822475758738334165969476892709655590606414803399268657735062581566800744969813750333243414052645803899359374333074401628583228622255498997467698744107150743376789687466176807762046139223338254676663381319472698436636405449403740660853441276530754976361205336886082545542526273107208998538039023157929506444904072554926479429924497061570736360957273474048565532746962234899476421921367198673937064097292136498838614898882633668158626467523997480324446591879714964387635704297216944499997594752897312191763729877152489988762414686830573972106044395616898611404975561911353963913428012067850490097907693338478383947285963851762743674715118449839845337938205629494679210797711369174212339624969458179384347653246744063956861814955532885558612106659840739592414071124296492912309733064238040893520374382469297566255296819476885660380340803850277432948807990643124553341136989913920521401605254604068998306454021926023326744097136897737110302490795284668890274416576334191699595872352496722535598016953572635521942682962635678108966527251162774124059701445229532216344260512977872183249578828367675846266110353614712357265082157289539836558804963221852994086516659743325170464933262722334447418957558844507504399755088719823650652483965463337921801843419584052625252553770797021081956190841511322089441923644136482336641939433325696626042179767194217862606007360738634242884800339743673366021518115572295261840651245468423285477461041947925029890568918791720889282802281703631508516369743083533670810847365984021396209090028896772794911579029367057016776069233175767589006283085875960637511077354615992713016276732714175222549397579774596810332071932823960569048380711513470686881943697538928409883227506821025634906709639595455749991219758396170879155521402272637891724166138274861625618921575606026924639343048617166629811377666700869520346970084390928185627323659652799716735622184724554414215978550627625268953565612117461570436307982812799256151828638917034728092078123221835888212592877596082720323304655902565268453367986606088623811517101594723356513506960643741554724464226659583245513081848764638890453997050488799318070497802331723033604386437674554158009399723432284494172702165018651334547141032382649850116703814908049408598807147133314919589297348395685508100846681233224782284064307369010666927359322060385714332187874740812157355409446523064799425624162026673445471849482430474685161769595767703346534831586304969725970459406422173461263844811550187874066819941103400607679884663544711244402141199590240101962861728072064943213646518304425503282100448002373289281154664439480097176522464677571812850049855320034828324859539557913067643901715521863517846648607113122038744903814478244594252559283533926853519092432589388491550929765411855083581005502433593868560814139343650952955591451153676941116387795516082031271133167351615035914466901508397778191520889582412102561395140497709441091434711697900011670841082674756331692662849454890707795760692177956759998306304605541116981856403595562053006399342630571880914375639132483013993318626467076152615079871843992900506830526973241178072092823997587411337462086156684610128240347574981628587928208782341739968539088869027926439200107537887859803856287454284617095797334907830734801318195253241669812192770809161420463603365583698926660861393457907713838925961556781465693345691679842329043498838197319635420158454249498998327560623633454530563323274769535753058806895406527585488309980871270471262668455934251161904885103616605019933883714042842421903557440816884861246578520786854347523760119784379633972143490032910315957447826233029748058692161690763187313837836961427193898798761138619254624149924631365902591123664919163847523143403437520049104067105906355777188682373550792115078267705353003986196685205735379583545353578204732046408187138329801864819002275357970745701627250564885975081196467046706560297070457595977626493218409008191739052863005275163973000433927722002292699225823742295422898689509855975497235179816085135620629081321583080144960371640475614310631909660726850709744912039076140529055303028948877657365950778625562485819321566888405382628947315685705992226166593453837033478866284408162765094793677386671415727522905684782612333128857082544635968663088201683635982763216599810478658016699065593121857198778933828623798689912755520550546751027449444814297681327512659461641475077212073096445647611991408757469853696034107542048500749146785541322731061897465998709996070749107050744282630018456861175649373762324345631618280343133027447448133826175461310336484088225294554204025338662155953546951317507951724415216903970556569134784865869607069932335793345756236487633578095269844236934689486562427762184678934210204077584409426916827106800935908404822177154831573486850034025476669502144703720557888474964936496359184596158706891203933312478469647346388999380774466961334439823157323970528301180644736805066936893294832234178607121245830565764305212496873591514771172279740464158239243513925197192229360320346456654529064717028406376952402483929503730878766641256913902500868656053566811126265418666901552951990127604536073128840428764819929248471688668803214425853978719746151630126709455906396404278504376272388219445468616595779681201811081942308916316604684855423624789020383873407166362891476845112813581801173779167432719158042583261021998323363261784113916833649257435228248588842374517668106842239755287407927897781740233876412804755132907451938453626815926902480487606183947335929621254977762828850855821056466079655846087702255146766023253037608717306073551049549883030595238759723686236758342621621771642931627610372977283790976067153882254580200905771811397419301728357039784359817042928948401056683522508443217134162464992052003176155572256575417226594285428522171276164667082423523662724242730873854975708796417564335225989962620392563815080403974484944002594647711545983752402375065408813631702598398809640345369169718856711809273353661559333524542081063834278269809992929074467220955672631701487739072400415627996265435545661111325470907594978284707439003740793730756735723848607060861174346768693195911961419389441808039452015210214096155235614894455914987807133861550420670199971668841103252622167798887874494064815777668535791375415942109345646230959920540337677748364516017938618227057179139616455937197777249288604431944858181934864506511265931878583102139715850732841690864902828772971473531379692212201022287167268646553926437027624337868437939142344089210554850349473719409079552172560701931116561246597210150249789322130871293603540841305746345260966521006046523048036915233602608902682973145615280584719090054694847927008616406080357707624459900080135930088395293510841377355729802447705749029223586150909957384181924867641553287513236411713554465456667718145131010668274323950718624548863330634895392807026174050606013966075126418875119077821680862368788982618367185492776797097821727404522708975965123270809531036307400424243405988564601753338590536053248088095980104580570545402806424958989826450989858878027091278847171208792534223841142398984596815118792154236611306207797421373808489108446525060985834459021025585814687878251260127917060024715540073041007802407890926190175719382163284534153812059438140627760759828764101850313356237248147268495067488903194628196608219901739954765182406408009921124482914271886126386620924258357577394718704882924461873373821267136826695153028472278199134042519790900537063737695242443627696623189368511799093325706655090308109926827263463813029235001117218021054089346226945729728201831342972999374078842118168124094038975527924826343170724043848042213942722251968300813546015032265718317596250499919289250969826083895772861499562655191507198461572690361910960581448953818886579558531140918380585906512892615254694822370839476072096978982188524939393960689290998136873014657682653444603403108033566647288352619947025176497617762860583505396617507146591431180138418049536404960777402738338333663479259194041292746590856730961209126941548547386800408946075260312073662249522787125873071809241028807684335749161087516933434155959875081625890099751627576254919840542539476137855978217117200732931252072113043290313931907602593641264310781635425385859368523348213181137568258640627914264422306597531562898227455376124642190721991903247636572309088398247539086590886121774344059351154465277644210580158864958312757567905874722786084673513698047086838041175789478744631402426275889161291587381042996648652951720334347053648193633923318326706322167116668594064761667677860372550809265751986493437406010999859127746541934829248593865071762527951712426516610008989150586719988274747136931027164006603811667180161438780889114602526851542271964571876950913764455214059508042305996442401392197896829762836026223960663510749620467138416696245404453328202350726219915767834330685769522905107693247811884489296604132190184886886573030909415008728305295729398709244822986087297213549192949876530867795598562159316533676564611504229503543929217232310026740342850286048421594624545487771835625588169404449434845988900716563592069712111606826870378050390848118014335945945080976159153870795110651369580704900425962048359407008944798322952196411458210993928662424270622764190100453849326490338087576831483643298307999887943798057052113986320597822961371272114582940816598678143236015302845563054016662750155654072170790484647114679297373822526094302528605464517526473127875008190049925389041006252818863705889887416351184058147514702099866115567387001493328748965556894147135948621892868798477756466190250041799143723983074609282621630028487318361563995432394759998527082618018316974092962932399783884426918298798332850145898253058997016286376427993352692774818730052505183404259947439333767803564833609618438167974224573395710911879868186391491763286015626599312356280603063527866171179546362647902110446366470486262934808046543145535269062034421419018553892106159635472974041684870034021497758497156472042664463457551256295588526465852379467284707117910752697475632136156334129559524382702679391208805218970032137501059862248763549003601073330993824717443797285227293452617042697964200185398406730811612381568246713134553986926591098847159616349826093135210066286718281058439105615092670148190833267785183165285506777523378192197215609159547099099553390811195481969425774757086979922145685480462620308269076359385110894731099563599566963547169111387667294500182157201887476874735528851321079290975059458642980758931861680950329040049267724031394523635982885815383778256965138476339317236087919395683030224799390371373132543973021139338264331603245678207921133808279271773521660701173724995011262981107057613420696283455421413251035101727122379340556142358611289450987234414355995471273458815908666405853401386993906641319307971551944400834416586500887820620216960352468825121566021127382507986867617775465559646059726940298837950620279906742308708429095667005693472114859071292567891379352827852018526929355120626389824976496793371829785338374337630204856944304840219379131191443723950983234556190631393732290558695612027451638141968121038239501607552851077205351925570138768407181813794572728854319383266653599616647565427654120840319633599161005605629580616098859055743244220597556356982762349175398890391943450856901203104843068321897158531506119084179640488074914971919169761860074146412989527270261060656601580974903824347809882356070648614228573533832829423519815970116691913059376444858051743240402398795182092193099923664353822238216673105511052653080302649918180201498610292055356532190243353866837566256046644814314932810181811906210750787743514045119015522718328784650045993166899844209708809828671733579338193714363692505420422005794307899040505360179857421263597402632389132515771920716165553506157289759625839877132876454365851296534333468852975631810593646554722055341644129127357805648720621643352587567020276970739213541125168492934310262207103366660873915204556299871909591746814059600173367725625263911698711379767667929045485017643141306256805049946008034572363091343441425416872227512438475291999451311539164147493864224652404763057071653117602908111812906568803220675380324458805461595621633825151065556382693033888920492132825199231778679805088929743229346119227018326411536016520593446955396675153792470194251140020520992716543536475257867333095425490326755722713703711178603726557396287160589086204790705568885281505574310895619365258250576374134577569219243510947811807536840230379254547711116866946356135022775278175541976628185500267370050330293948290023175464981195430595982209539565808811734571107476145782812716952569956863536609103190219909434505575627959857385456138593295932512223081810794487043393927553744347945110309136159250973363024674107279146815257808006647316088822551536246213477406791504562053005463795515760583022632274457581950432256890225415412132295522704280736126772124695330242657028012617564230413043682303127084954931202832811399434110871379833518712464377622131777218772501547414938722652782170386840149197920217980620933768100581134411969390582124908068990334468136881937506549759915121858717230740120141170317432498705169686533394694740859792471751779944099569682237843620707561344925609865401858155434989468637911468834543121046873116339122170870557269692654956283389153962704888023672996508373383326219049706956578285871730496234856056197665854860181931380656264752699550549832251086828463466231654695937048314382257516069035908950539418570217323698962537898635391687924824408500954951657249337777984798562631009230490895197087230858664296113788900674964272050458455870210822935440309827008983542120528780401484810457023493675583538480706259008982097970299283222597084639288136905362346188215406702608761607846590503466216052394633117709816113152691491308688868534565477946097119425556567522141324442336758104782232818052851373325986650595026142508765301351609684212126981231656329720620249540502361209854675344204901230125009205721317313628815503662074348513415278207154127223281815945160026240056367330852852050817963062930278824306767009047146606802553171747332855042295804999193815702123240128446202344426618237823131789451431930735718271846623630177991799447404949038379573258350017144841238997071247299403152617677952018685612395545579487818800738827856974918957583960838189959103210600392992375633447530981191802267183379428147054348263082251786661170528489921599013784595249528323147433684935860523575662424010654538018742850162203892524684459435025299430676084752014176440901799427424028291062566362307108946907957156993296761872651983944884816197433852118040722124786292126846765530184603296171909478646206439698543311762539576674427521805683448734071687612914251810904697027001595930188462695164295804419376819742593298514732770261148001959846123292688582528102029664392248163738973331094577978327167346868081384374244302011520494680020581593873695334005301891008448770268086790704099297034051580514010728804047203928738044742056316040026209302607932624063821884120579640480096193986933020557153254954451833273380669871726748804483882777636989134861848855930613462993641122078240984260538012000012447360931391683139853259842893337825855930154006659154433961867339066608928100742999538305092614841379919747793145111260914397377052285740864622709657525123462845075399976513771864365562990711938934008622668253077773573359895700200079678431342432357985007131247826713700725662488474855639935965057386739151366490230746632517794775585424454972986983266412318628158570119826243599175558688971925198927314291910468059541346996106322107177534246770021030160112178675369390170486692559740016583636542116528902149537505629368947419275667703513481096273915929454133031437329699502204428229842655528686606359921283130498696865906613126805054703942910834592206135106460537091574427103010895161885966801105005492769952429293481075226611255513333685030744930933268622265823593027078645069025927764885629864981787101772262729632284466809087163258489223082847131570410403352109087820354922915958898461534910297557054968020663514324000627772607714598342510235903432457348948637606850720714530865415889134615536559732954792589860602075672276040814962672623613395416765629284642986107888214417154025548025282291548239957168986520288314717307487755667793934586797653916862885134762042013439028830363936410217269059113681791324920052864593882884863489319424550469520199985046371015239237539453118351046725107887722003692264961145654558056083413106750710205514024441015612788369024245659543705233231413756954094125315088815656686851909458842612394245821494721517266714024670078537892604651030620930978121388703856376445504124028709285298385033567816855039657208915304695226238078563808144617308773325826417419770153150716892418003483828970809668446332604720401678885130990579217986466791758377192826512305166864748453712681854212487897216790538394308769446642136365660003847599330066039454867151510951061379532893923007420713458320787903452748879070951257861105532215782561148676171864626178019634358487240611386567722281486254558065675907256536498550309681187142509399787830741884303363495874485107965327090828577311313767682413382922371325960485228635406125301066610857812182918410790865964412431641894550304197636653057162551686948974921914688280141723547412779550931604942988330958848483649673754050559080846431504551363608220879392992648207005970257031784174484566694028130665443713323267320724194052259390196933433159319391024502359110137327807523448014299515754085481250888411756813866938229826003495532335615683913318488326671324911849743761764902106773464219397535577901722939669508312539314780974628333882282775875518523961420330695433188734474585204618214825921319926677302639020953640532071046462592539910473291402727279963244176635932114615961245965992897351823361416081561234367987632780939213756374949081093804723992480134373096155090735264623192303275175794376645567203271422363380892327335436554422314879704485453610990932343383437176724778971891640146584678568404888518477412571914878949507318688567966173156919537176671723084153860835743504071260337427989211746737099364862325129306972299551727361327090306255946269833311829839040470054031142081557365122573901153249270083918113098255715128467890760205954983513138517781727871252373556071433636317639610021759824316068895912591473341688971352978328601367979779009483673012865156822888477038070427725275014510253837349176850829314940143557552107302727070303940737735710629059589961125459881506449973818915714276746332832637403214627630824024743959493464438921919767526118730814314740258177891398577029696880711674913153952035023181592338711836694953349166431353479638029110710043730281223823224811968203018776329380083283997285660394440265639705988026049588774107217646831963139965826040320198164806515105897942188856070439284031899385710437176260898540919698096176436838641204011026490553707697184400533609950893819707879848067309348078679682419478761716451061533031571969321826458987596053881931408100971455884552460325674921175050687407515329534292247700801347515994623251658003642580146992444217111878007345379361121940293679620006669409231914780924546868624107404071918444219477144963252663353658598599417348613669726265263140057916221693065682400708585527388624066683311807789214310440741415761536107194394426239142051550310249839510949999676650223549409791817096737881046384191120716867935012013661475514474397073443132699146627397987802290278946506131729414958263874741701133111165225075959974679760324033573148844601574909539114950407633224407576624052487745346246280319587402412041900942416008969337511885995351900252153287138520201921853067462588042749637104076136777807874177072387240150202906644877625460258069820732525094528774414947320361550871517997915097422269187076396109007984391885649630529303524968461030621225077599884262057432011574409347751711936736238537447906998791302738877433044304492502726312747339136835523354023090456301635212803897714229210672743551098457036033991872266558911978000754544749934549788707317521913159767701674411190543297386087251351256114378285105825122518170732397301910891831971086748177340996819831513177940186807409325394044123568311930049175213232872330918681098040127843503983418602892698739683061772458494438723146446492204409154940601540053244397116682077170289060114345166193356134765473996185397327267864121932490988669803113772419737161108406192260845994576015104003891756152872575512354378741074856765986529355989964244695658073432184312509537075551607547382487433170245220656593359031047932082435944334236191605460502098371275146560863897768763636797441913327463762679479919440836165970407685797466747183562041902330816847603887305755590063079950030136375325722283487974692833531814738547774030626228402880111104967516635092707928373128587806789134273912621038939228803065937237898127782756301709112554662736440102602491927862887540987772497444232646065912926375070553519243346319699659798898559176501358208906676490829147372713227435815082637573074960228558327810809348650039289909682643043236443352851535604614657016395862697203693421610460393130027823876832547537365433216442543620061987890606045860290370875768738271368392038571412195885886447013558513204344563541327300479459435271819555174710818145758765772287676460049375614953154252214752794861856907582254349535465338525191518095582019869032005653260707863951401069895812586697891206870581854956738034914583252399653800600721346103128823308165667193735933857177846436564127878929438846697679747226649587858923396889753842011956680381758671617665590740206273976342591418239808597342499822586708770378542468984599806229102579670769028726260627372240243538827421065963938041348483469732938472519404698154859307135815690279733929042364164995506412229810274394093500670508576637258914331450374492663893483867028819053529706843715316795164022858952366286388163801493418798665142820215861803242594733142535579681484234411321633816614107015190520331050717155323437760429523992769342829793798715350509756834593240264285868980125228289870820488315670429821292199515748936981641835827835189445256929509463482514360408189475490480346121994098752686238071689805261264653077548266789560509561746086146291796947501745312173530013315603774346872271412406443031879382997157880870691817069948620446369427163213887125640931120743048315242921316343090512311395325061973349394281962010281635992219992812641228910466328327843228518924240839911063850316946068497009587085153684198272102746962912234276684088667705170710799390126600245056627221876430202028266033377116793705534617456883421357948056107196703345863734228045235121105489519699466722893486564075249186109575899475499383566842971479183642241664813225544539080514361156391400551493957376709861817423640390888336736990442235788192116329271755928506706366440245645769973130038885438651917807889247444697613132447205906595753830513314930655775839829707829572624010364241797552183572243425231829942297875881873496866339366685852962963155940603334742282347654741394505703509765135867369297726645669342423659476429735557982596823083822908864078480955052692693816939494341719128331607746613959397336475187464246943255383883849434174627238538071302091433874860307551665255266527667951565412114894573860669373522476068243033930464207304958784178680240192541582767996538669533991552715695135583871383733084253983357414964350174079755381856254990112630103472644633461565411223050540914012923444703722393690359955076066886666207848012481033939089613628624633947413082056593124143212004520480210690217298708513747507903887354319331034968303606375671729748033725140334453620926814625939281948888423930026070023202143710042532172011701528034085676207362782601095553565084590066379528695650216239563162827007251658802455952352893330777569138503739526749605019439717246819515068374252539209699946571987205428706935854118565980843756484838391355963194404340865452304440712551457575089961940201519772026277482543905050948882474070489402814190590432165229881529361492703546650618166932044476286392542674157464309985002826049470691122810404474598591334759311065191523214027189887041264349489447033412394044539264745450523962261912340494883942464267469837269593340674933564053768614992948254414336013072932703618996927030317184835194535205586553459667063331803562057674593020321542472325250341636014855458912721916730453313247976309121991537855601947810515404208830083171104298612216846258377118913891152255355453306087528386999374726204725154972961606842288325984826218766422321053203049342557272103988967680099455037052235769955316476776761422496170705709048097748841276896571700039010270776536861874920890384629157217906562584375606834210903509730056191869344547734401826494880191926659773895456528863568083187539832513334293194505736510028805488092217382169135081470185017355934724789723309918960051059927218716981788999267909057042748326633209094647126244229023886423450268440945185557510548607278605353519394192325701426408174183007898497055815867054023933756714844689972165147034129686969539665748348423205947127639778806217847162369270791797711253449558396246119703976691075806267393049484494783661883592553110215720569846180026832515965792317159478037936810001597739244079986047418406824570676955338959052359224106323512720885909925218262142506285718849009367413289781344623953240970218725154762377001094337884426485037366348758269887259726852709470147335202905473341664969875367258789719530396871356053782625406130824977056626235022284478162467548598932063311769013903159768742894631729215550534690624142681247242283745935452688717433544081852114732383834703147970095357946162130320536771970603932628016372084347049410372899683018766067303524901046722808286058831779851123464962078993049796962873988216079364290957964749889059209506870437865264817921422967648288105491694247566645418584486943217151391308437585589954638435832121651903710618557552941515514286185436043811536391569332646872650835495841463432982992362500829113103865772585451715374015805134320323599079306427290837540738507360189612246868206634947285732575121304379293931320871726105303535888972261862528607679540205567334028774667300900605019552980302344606461367523669198165222107956391948450534716884008413523776115086651077434034008910053089955328607933731913934245395887192987744305567115700357452310494005887027370659008525792382767900443701008288666091650525142508636331137386540106685425429666009794069799397753931028621493734913124930087833225976420638051695006188253169324278443665281346891260787878284164644739535639210955983647587145055881026593725550390851619620928158708118679773592792663042713162982291584440975768776502264829418315188889936954419220118963160142026093652537505745671166771273167561165493287504603602571437679446250830420605159471154049222778607370240010060500955213997407870254852547620141829858190171109275263581859324802967695029671802283771787610911774642000589407664698647984294801628324413832870279226665001480118154855733437300863916447046066139839107055005138147446994107392677294373577518861436235934544575975099932362856285296238095760137301990213038973112353220738029289456409521462692813834791560471780741184630448566902142977285708915547855628021408278786077750360722129340581225122145455845330596280180610770285402008315257485913210522126803922945881434070969409711425281326874968407943531284727847276245108969534710497636085822596042640160558060641732845028802588157256120254015805902153573356983230220893411778536446440283380116884304037131884568852689477227005990504655427332545479174911909193426400158275159962888067887665858336217819253499688035133644326032487715562155733082047944650634261156311310000840039820588129582145169453990626171974369312730139701957623152889297574941852554537564318894219959546839599676814882740887975128877987432678473854172344844104020776210023161107733143205585262977759260102819295549062356452669239890484540227238714348850151204059307870931585344129881941560168721062374039598029348285064395948390599268372193511310985956516886746849433245171485969114865078754151406805816306891229974176031677024383037683213528261715744497820620892440543600470886770552779412706602664231011146607782296693773157167070618041345708079002112492930727728700395174490988792386934579957570123151263361904244881688106561341547603052779936262793879274461765237968879085175533881019227382929266345368819113199601627866218085816524769964991464403653842862669599735202624048063806041484032299133943872358866355497602570573453704060310956278711033584672413470275276138501719500710120068986807740390253789471380708295306216109928116519083377700223991115665035650235075771482730867862408099688196961565151482480659792461108803004897559250303410699724362626293798292743173074791182070820759951430280862617364160726305933083761285747548859103979238717022404653711234414071915262645255451272706334870586739425373455199910371726115735371839061750034473118438652331040427521320271010807281658981495173341546406137782896724510454335664395374698402031705052594013854192954080024986167647155446876166477604785698813616974945950534408994875126461335593369624224624818371778570293048564129433720644786363038003944777316423937638245758896195622782912799365520967506104710727111828214281052374402386274510755983536778516023178848227399625479621350222864820378734503562194077736300608089570723307384141177700999830784265732047608955716380435836795686481092343017489586498434049360565252665917082936778517472362228948644556943669373164641700437072955576897182887429196491292356038989055603462744007974338446419433221274736649783694210440577988718266965334400261575562647319942022524361058842225974644179719351228151548536799677668687970982102537879088113213126429993987722623390168734347183284282221109683925674688347899288885006295396937590143074431982227457610041962306953279125645401443779653627019820280542592497154093359610591232068664735071334984835478389702805964070829512215438980261893235316908295545245774837554988552211949671668681454976973330411032690416577791358228672009424968356095515555131113395038755862461851470934211827721069464863335007255898999561932566875403836105055085548164907720799035209895807449676792046067062174622914768264502415451179663107136021747630684280066598476659994664767884942726217446116348569662773949047159499913956839092437356220711392280601828336503302721122342018280128249544971736229905237910707399513820909148942052390593038859594764179956262945553089577049432843812942720868041350577920328048127805219699502290628079989159783789881427074771999175593078687535509678764183345487030922973584957165973689013193434552059661793544546045722787105922917886406021306814942625690827300621386939319628438131169214517628618932842682026815660763294549167356056904063586068554107123041486446104224223668482695538555620209587951573685541555587965950979702012328753513907635784220499909446054569740098410463107223729465486493264338378732616670619364287673841786056135146882255049781657461992829066857183989815588798743226652257088417201520913479579423160789360702885451610122896407740024479812239203691244830352459527316986185967322989217653847254723494836956176996731946398186592313283873892165810438489983917556771411963654711425487244333835044025818253950317144385085579853170657735463342018767625646682204215437354984408061261055875440171646604659837829085860640863441543828556089187601979654222191980370898665913834846878700474309166819704978932431719319270635309599043112978545424645017388829500704668476857377671223353066221684306208065002222928839826578046894189780930886058752371630175392952346878347960685889028049593215749400369979691034405990080774924843761210492640639996421659542477453863461899526444911807966504090603267549651259635822005416185618640626999713582065037400150309882105571636436225550227816867048027403659864725568233528070145866194590671979699081753965849067347275286323401784797893761516666620245907714447088855168721879179200877065587632557445494211228626738256529405918041166827499998350437656370160171659545605606716881837947663489499874368932649856957591568898710573893489333676549799506990509366661619849884028840590261406887478375200259263292328950047344641422244228846041912663575112088261429727718362171591251872437369632397939289492676077154325655908863316749863877239966571178996910642901793132063584234240770111686340839438023026056099802308148242766138220924670220958189148745896765230844094982619816371570703496694790669350034817244471529924369869703952520259826840926557604850086724242571247285812712128616294810910126382395186450906197778592426875296066919816387399959620889552134069390862156252871270001996772203179452536462467187371885689056084502356592632550780409007026235664243777306429275258533625752111288750230442332722410238871896926195756150821359052785379549012273960650298236268413165955702409492292030693456859806953189433776359633650466368406054460843564494024948143130330043333730628439872940468826263903273485916608536140029512949596563700611973952184874435617195515764467877454839514825373484633511229450509354683855201761166846046825113697697179887869803442509536608348297554997401284234736827163719382715730210751066062528425841896813903175549108392432694212599429726623309363452984996032163711257221996578109514435875342987044219395152890141835916700811358469565591392635192267685640440392787457114023985991343881447142928291944721784397878167511918203614368732817258173298956269011236025080023103526264825027364207439216216198837062933331323422397474145620739194523624871382377947662650484451309502058287039580797736774040748456169202450212611182062500358320670280424715788485456774787307185070040559380417555175432532484299898672275732311857239258271168899429715185443470473560296183883472579592919840576753237210573956307110538338022376634128714773355471947813351228324209601420170011945964429744270824694754233269940847098852077768307102043101811300445269350923804795636164384751556340754332244149736108528079825594682059440162388977759610832755802952763305245917355884413972550984186676829460786537134593566428484773548153822815619688637345355609492797603674361662525828063277368270633499327570441692153478012008750921174699421183468525712950508851703877946889345336902208020716981155917269620904181357426049218942035499810306248253228647264905406204606656583501065541694620398814599345380025012950820570459503607827345641809824535289940672788080739609931463629812801086598204818566810590536069628715230791559852657148948390181773617178280453530743220251744982663801662768527845634141900066785279725664209128226036244111440305483700388824995625917827174191790349381650202860333775952969007106258398167022143542948875539265978902126586164893058632041566257634769460030467927282340071379681713101335618120963322946008412639564002277342994467941909565479424366601325868585300039352144761823399245796289972488233638695183813281065972286826081034701542603075724257827123669983714820582538935169324664443041455063813477390047798099095929565069797233902886323833809940619097948707602459627553551064488925951180359322386960991162569831543725392493342563743327747685783512615833000977549018679350747276623752306221574099369276417773133407666424589759017230675088305560770217920288656412635724126238593113837946805672724926536338299952787695097519338145499136379306492250098468036158032712014711030257612010189620426171750741598010305481125558065058977487535467218752358121251406443222014068489852417253817385424697097818007677357975620426257681445273120306331409180041256829643593479684800142391276842507974891228711669491903257641171284643950182804370269765023014927437839560343799511830170506158890124487905274095926154819690911711845182290052715014300164435279409898004813014834470730516422626957427662919485507048511315291379170970245361961401742729060139309389920390620892723581751663645405675798926203290524358425506373010621638347867191119936177632216653421497426905310967742265389471887751756729929567220347574919121978824618533979270454026102915711401350992159404599519723108165520079090109091894219644167490408935312018607173357814278440833015052497617325069125919776156781575168268399811308976184993881927136133745851521709411997883912011834498068182236442828944394874954031334841293721818715960208600731086604736957114840218223825817680958848722584893767926770272102569440091896440696635299770999076610740943904690349989604401772393837373622975344239112771678968955364400453364326526256636257894303248637176555135214753820583575105701829773446568779358265649816385050886513825461689263708752002549908029667786945269631323692504963661787791680189582291917161908969609888903890630749169285280136816105407870827109752575541775792072830275330594973724639632384347076453970447818795162036353344070926329101140889653747193050918275281127130504789620208371885218481557979569621214873129073929596261885070975644904430098410127967595499743105249436850579634170917513422540153962367364618370772526465255698939183172476159278965402301008984856005255667106803071419594679616516026413688651959656123560802257947274904677612980684300013949597876928396604257580822493764910496365407653909755056306742531268464892642657196490759582069398651625302507355900033785473435258309287100837749287185326898425295781736407328689166869558503792062386994733771474582959127301823137987240878190103533387017313648400375920463209987483394157384911556049793988254018261573174473949968246550715931353458094306718475275919726015829971658991455656582623297906677049837045670570539656932095157104464814510726761149673186264848802979612744478716710527672457308823306580098597570184840077096533803209561557720798305699880411676110200665517688341215212203374480064939323669433386187329030482674024013517038905959141128913919450943274420684199363089412718176940508325128568896470839935502508576794586890608354716156804578057696214370973183398686947300594513998151804853852107661390740169168254648195928422354291922072768156007905371949368406384049080305646852066354409394431224538288850653568857037298737090625923603136237890102244644747129890889105079898712672780939489198628734499018706895868494985228390270888572996751220961131908328004774471198003571707233494708656824670911408214225526347722399939573586056897008766218106978589176349160284783176087208014991082193755336441607221364995788045537107625882452916706667743868065878836756782176523445037894110241961239069058991078913989293777602692154364477099106120286214196464770479489858766306491088147293286251811646771420153962834866472336807063408195326722600388066654138946103532419403828198516494908023555305750336196212875503639060171448273015898395280559265028819941644335856670098301154849159596281787625568873797586274142562324651599888120508632372621471211586461627934749499919369531036198951301283064901698831579774568549675139891677918812424959703972394641806898863000151203884688476849403150144213725600078129278474057952390382233477638229921800375564125876952335182812436846289729811046035646792279898560541670616705916571161201465218333900236551589967923295767674407343294394066126879004965264893421693575594242590765820588992037191032636637590696720399631809515998353293093846954722886577847011503471280378971024932060256743549480324193709571830043786678374566190370669070130483326541616820545448797000117862211962950862016033994057649025669124826930065873281984617183623607884548269855166146092026700288142122819113104977964560031632503091448685569232761636090618215691273379972656045004370370074483559678024923442684645908595931320263079585042916418784998886103396305946109132246935320617332338848114492765687673497182640945063315602842619234721944929721658302668504651265455644083438535234130839708946912839901934641930883417341582705401368484688433554817655188537503562265945660091078440017913879999661569501361883815950670392226674755235767790501829313706481826130940126166387519723871480110101739041727930851278270391427132229244006012557434219655424480180235168917566493197858599567786286373804718326011940569305202464392427429804188223514912714938005434774071254554601758809021406291383685049828985664111123625569838852080427091963847471761390471267241225079530460230666113220943369089527214247080635565969136192492667149158675257188966135053033374046163154980864369560010540058850543007206883552014838501764472162509799155804608139404995532607922090804277902105734613265034865112698995888398114803481987893144136406969926464582415762822738408813924183835537563845334835428845094168563958408248468409022420829866927419015197775653235699198030508593955836977573755394652683125126402045507005459967690266736748798205568719378124136242250538250652604576191082344521599167225837685226517628650266904409583716640521851837070540736384718988200919265108288483657299961632320661432209866465291642922175880653857333455334472438056697194774893965008714183616875385679614118889046146837433754391445183773068876667513892413406230273030191277072405221966310452522055164782197423802425234469360161532156517055537567486931901813639625165791890163470213613573482844045628025175698543302011119430000114830819346231707535336011644214168399124440116130243740492441875962932851564664129529237125167517542740779176831189591694882940149710421069231021130626501670880138613928716805061294980771617131629353840220164402338331416187557242969510339804955372612338305344041489923801938407098768706064003986168338696466506774173485286694632414820655507044230497689951113711274146252646602442337829840464413324020195704876868152990919523112030086483003689009365001047235567467435504733140858716655307795835429237621829667381313134989476885642132246120531800231842598883670021487287735395355497058106850135737937432550918523857377647320273788590905864778416062338932167632310627495185882639697272136942785605536307866463774083596126588553563175766051393819393148568746160968111892005779475254296219136610605259656789933924881613648034419184165441799995012120500267493513461477133110853099002593531295618763231590012446855905359435509005233100755341388468344517912678680090258373882423056912190735018778048314675408311122729985135754133657647528217424252805892332453782221190031112638062987815208654428279230142813934423210253658780677842507326890135198312884702393676110849903884764093022510447789835543342362386578215095347919263552028269093093495866229424115643163258185471330096664461844128525363133301221457704005980307172506155908304964080897321093735689657291678470234746420103304841222131470294307711022944499134623406126602416521082746244340793146348501131736799834399803630478520948879363163682723387630096130941515001069138116105246445950059199133994525080993216273542310779687900328403893889851167325909626594150204830468869095987515804796170131461051506458476956898953793501269898366077548623072474524062928732630322751966670787608257321698984910167595021641728710218597073285007522298113388088435473127016280038771408721775291373802609400395548135152874157741261405991287083978999567834413109686286518006786280079685300032502416191557242003279820429242036541534104379648422485100302153595744853213299844667351039123337521713255620601151970167686819825001505271501820957439983268909637229344860543514539654915350981700850237143094208160625797163086732366550282848305459870488743088260180344614248526136836070689066450064779949655414944492720903930250390448551483517358560251401529573862995146309145450363422239686457343336803149895393275070691039235760651534505464746439219571965261788861636551719292650072097325696401083666308361485237848890033558123965196294168846544055479220352070707005192095656912460795486763392042797970779469024635800253766948038477029005577937352243900707700868544208734338192388595780389740315097885071710860573196870129532780778646482121130924092139498166004139834564946286536395207680878515389808848204892017782821984103837407016124723145067769689440522037736943455774675512986594310146833836267936009264212886871913701200448228461722001945445132759949372652562903336384445999290844992251670479278284919639364078685583891653327063663558809980068135996926464916233567041794979059289840189638640742981858729399505755705821723366208054499268402885490817007784617083944920533389246731711122645212046579257320156050492384453940381592946175870673822172203485723116825901450328209271879408467066381717071186999021171511930819043260680448402049359401864765176608438213805873200842338054312132393631801110011518478347094637756029580408555833186261652571244819300010907750353801961252546586060591142405312311195413676794111120831002842165897061344049244799031528959700544506729137524475337230058028649790241278114753682769447798601936579123458984083319830689768425528663218206588145435972890155258767111503341539410160690699687096501261846151507969553013291843795571160636195182404818297527982536123900629168712786630823182326492302092607523478681903298609877632771065174765278007606371166578873856025772069985448665370895032692975654857407586174098117277369829393760095120300718608548840665245808392782574487872068118692752837713455429316266371209033552143538930919001754917301229414550696491931104351369518557434016684445503356321636303129936390381361129423364651808304030344053789671104802209679980473224240536979765644751102361816834485964705999638353197320165465659652599803009133564184004640330321677474794979290525987806120616544115031663788095888095843096793457067230553100193822629272861657673063469314279353669368364996872475935865279958036157891041409662315029838541517142529059823933744446979445567598310313363287589008642776550802786442657307247546536740872840487726572452327498117143212069378130251800261106257835116134818420262445901223657375466116640484824162228590121194346271501229362295014079063114051114729977002881879042495937623194738278539423446457724487899086066272472312698694056590392547640883178814206571454881669858863498096922202743175134645674790746627391453324249575080270045980711495663699998152036175204543478049519783581199298233825998528925808282686107475731855107581818370409636420214652589447419159670675090629284245477270042198286928685389545229990748395139555481597965145920265144596810337994227706608732665234353332726069925262716001074173502084245048572967721313865963911674720372967214236479281814967992579861897157152550227930529248564120255260379851495568335120338990941412904314812186239072627462415239921565563690139031726197860396030096895041334862600346509470544356752654234677395734575080862827337472515524570212363953223437361366557695668937738647904262760320667907506858315035173939950763202272117172107834608140636606929197456969980476401261183636248551832263795477568716499063777957343275492500591376541071930594041026543214357362317359232031545420969468602127259277958286879606911873430411502667800235182270959518769238015185938728358987866963475282813114812688530269437254252243733749827106700587299871524393757321348792553121839111421571761686964862677719948353200390797751049173630259243681956011934457401446760814424256891096341686336137762072293436924430771960126247261796583754734089178908163680690387663084021114716962138347052045933427961327890533647273092234444109382245788322932990074850074568935234569955870791136826628090630382298755669846293748915934874611715437772556786944079598350234891278110469554638631946102710574507996482220246688719107418774842841395097615139505328950676170353988250477363589048024494003780916234372481812089172021248897126163293839603934998060920537669495488246450872656387903121775987693851532435551228105858437492956121941542931090662089859580317819382244743212504266494991579622670116242374016266163377341495280724867383904404390098631043316518317943402336049649822091731390725947995577808822407880316555568824621084584294889490136985654007294354490629570723932543648198498291276288679952996989951436396393625440435836156937466428042948287292602027325196243411513212709352079203078887587614048670538289002543727376473464415314337839760521496998737038503167215452405436273361661131893824468300148541451640404622876020100715270676783915932013766877548118269787556745589919692346142145017429528442232846962324812141562161364719982802680263479176617148780920939190287451691257468146925980349426538546503514237663296323522235590396524947979003931790094323342853372130922609919995590134215365847167474591929239163435722755741151942511072622904386845768963652901195858569267079118797875461461810047936286416096900063441116071154173670298009121627378484734975801460061555065875629611583463731693329187931590128563281701114025366442988637857767656874916922664363599246401021362414554911970469074936211975615640003822800231422467616250652255219000600834291355451018287637455605820093398541167709197135754420058490721123431052198561946143789907627027464835670126696587716774337961656867360608263067303697459293561778359669284458378599942800700485623451952118679006498115810135284153773461452227041642365103879101274495825310480995213938389269971196900852870328329963955443620741175157848013065413038966270095801726377549026395279155578762245509070931134050339849966684382147685773490728082859096248137160481513437984616880779517200689096220751344822955058331203002912400489772137983247354447022513678262355669254243728062104091881389339860334301523393754361936464090597142895731906019891508446115739919070211722351787593237335944160210529620864349532603920209647074820699011234301362830015437936710612022097222166289798828350891066338560720890205632247984772786969113906788332254465712700649804311392567125599800359460691176997405496196090874521042253440846379120698026663695584029240608769324841563159870922416619966629790931836412699762391632147843054791267357615516460487630298789375749961335164589879335381409399332561328479258029248209184201235794900941427305757094925799122937254615453921053500457605765586590074648811413021179532639000746372184775133809058816284547915748593112900836833667269796770657497430897971923248656438305593513678963554236854132996736714515546846576298704916925777674326789284352234588113919710393580341958019141260617978269595784236499500011390786392556677297079702004942038916190460360887225772034476031761536833432676332196838569748344828593858463753684189833294208112025674361443134281931945355739681594345024349693374371785303041372848609169930797810950634316532668001840401422202308394494711694852676066521971000234620822204898934668175528707827690251423577467093266853554885581219269900878143289688033732281470595811736036436564415998918695642535993044620359353614810598955319670051171242868499000176437197442909478409440361614960118591439757082595688409088911997217653769771233328055653315452825441869464804906684198370716190895602498080147093981015336528707438076725239887268342215553309022052164497292860954444404207591121215341003797274798964883580324263359831309184707321107116980569233714086243188952265152126478162860262632450294590987711012723636352141273014008364249297332057173336538880702069317635115792966009604281010334252908469184427347399548096322831150614420321467552789443697394698203364227920222577048525401638953300105956462621351434319387988657550906802908468006420911346749096893092447355682658608994598462696291422182573215631646386830193598921419997790042014037086994433327675463757067799969529085085935180434425060943595456246766041163198283498052688621227286817316476500634258535301009934404918310617425488085316923153425731789791388829932379849722502425643053909028087773485090448474025174472973696724058623565937459104738505001962642991781803462402447802610793066455423099572094224302655873352390113148039060381862595328178409593262585284822915302642976999391682555702359915383822193474445987633814272794870551031924464444937055875148215615554085355546645784338522347086545615665961146627309963727600942952895973229060819549391603545418791989307915015963864067912246298397648035432066542336620551239152696899715191078103112679312885556955558906422984242409523103005988455632047794938248471794985153020539548468109106906636890598496446216716144181374352798272473412051081695144965375300342301856016277941339056823055975558129741757434672636154832155654781564105156693361874236919101792211701920072405644961319321080970369453809947854498287682257706664982860274098908582031070171865247478283653606051410821792580886084470191285957563596737081905406711385522625493617662085857547566097846279388714856302115324151670527845874125089915352138819112368891662095908033326227226555216830112740035503869541114508838295676544295740662053248319860801044063009101768756291070215863354371402544542353363900327214745308883126987656930235074463299045942663024420429721473309728867082878575443760123397143092226133026420516967743682400316695852021520879208875517334934684537847714070830954999356539662349095771555382616816587428633388508013308709761966138274866505843047532419278245904377286379644867701606547686579610284845042806167655187877816546486110594489613519887393478266480508214287200258797956377177960867157125400127478959144508238634240009733599277213322766522794410196680348361056081703774967320482510062062920304249833235562905809591405235324653659881557343862311679996886761329137909811672723477064412876211076610090316002201968539880086444119828570585246523370813348486175025892869160371940453041660218998785742104361104846950903591258161918371872987649902770631456131978103559115551459629633364421401770480141324209827841502987442875762164355328218319606999597139635179262453569738462156028050146184767990513126309828454657946917178478114119538866926643694345896381699942555312017023043724082345985669873854043007692625693668518196913550570281790606619272968596184782172284578270717467587909960469669140444120757849160718739813063079999289147264805132552045603304393420386220996069500645065651324615072884833480648800560827822447383982383957565408671486590971955380195377883529424345671557468802338173733837178883268051477079474716647734179475896239016742010181181823612665382383473008730275300721012531429150543048303601983339616998314070825390819172261174421304532868826618008332068861775771594673707266057014196083743833021720996811437210430588153176378335130083939197131565019352820314849363662698320002231977063481163848930161794903145847417949596085314390006685109685995029441801362052066442368079010814625840865979915249536780920645198519679716979120211764548314473162404335584132765117408884089769162122840749753072039952504194752900297882351752546742136141358207079530261226645247339359226173980972697664873178036941693365796865270589116309755501021337211174060319998902580123021201449776250413143549687032919233747372415013579967791747384255548837742743817487949655292370805506547654954884478604933899816949077822902737621537009259271211795895344996507386982958419831779856662102179377218232581725865285830693160469656717442156933620365059197409086503724795959988900802338047726840100000378917046697294594474667838196265901816320405823853818779838716438581800601382652617005337113698388640608931015578950678324922615602653118987986745946049035495150576601645679883402793199430362486539191468369283809429590527555484896713308155178160467821775433741292350815330659851078123442092141746848519385509920387976512462358038094878168539268767029715731295599267212142191894595080505775948064393874270391671209440829627050988423183877453912499031135050425694639326459386351775688972138978682679754290405984275336906062402113946974191643872840408970859686462149831342905195428222178820831294227896268910034971696106166497414523865882854298484230987160007686236728470795733855302022126484840271610232992657531942779539312218776749363457003429725496603867968312693414020365748038744673914748766712897750513724841338013452765642942497975971715172028756090194230232094431228299728950803512445795641438330850472546981024593987548186559875765689673777594938041393565418889076754464393490531611448737059388832560178522563447452171780936371064766818140526543977042524836384061638699793124618286662861068030726606448871864528874148335487234653278497931476645438634447377581051825415609631442556621516721761602867485379345790892238766623788634786931567077558199417113065339760359493489505863042443126163320626400736694509412864217062653451084150072554953354192319566933535630247622718510236470917883448149466449139134115790093356734793807828523157461313179236111484561654182959110145882306533366799728104178579360334793132508148943858356977966879162254524449082984607526208969240001679972084096148183204649827536967590528899894692419190041855459842665921732036774076367473923221178772740203307885325080091433223065931786717938516962266091351713345881408988617457225310392949001611548076905887003800987804512560754488303798354949306224064067054325296942838102566331177562464130763587435736239151925350097013130852390488298140671534886317788444854208651253462770037273863660357054020559973323749553625538265182954174387758431012983731993108894544229450540797169138126230546093362781166307598869817202189974308477379347219811086388336417413462124367829199635439640531335953651759999738871345767716226129531758608935405032707160154553148789638383158426029499052730383555490882908986916265761067609288680327275310087536533786042360677671642022131739803677179977385733091005333733322464680399811229156414623914333487519837308565368918015475055296992168680844089002073405969039711752684380498155297194203649048480721639128293716096996343152465252975191814272585235335384201685940647389356562863438996887627887131803024909922460970553475509756715627887446845266583952009416789449867455210105593441038209218750622882962528337170260711322219759787542960937884983084752407140773006949687403339511853441852786958275452400475216249712534258442600657925400911709345167201624399636038749950958484547220743601235686662595574468908670302108439139578854201791054373641077014079579879871248627492905080062323405865460788424932516944953147366079762458757132607000705242759806623238108090337113663256680269533202125693743528519220008060082994277857859096988816417129972838864976846863239605099558267175673847335898711525161013354340994584587248662373726118323730610818573275635707972708170369800651417031761597873758791037517159795111918350169771029260048471795870622867187789350028925379932473363533844977238074836829969674254436318618414568475379024592490186635322156264283892869254722300752035624587719792628748322164537022540908965284808507433708500842344460095818618604142685248806518028858685673022423433780589470912444375272310636959091191510591520641756765697253661696769971010293302379772062409679978706838567816421825693667895653775835730335060421863086227952207942972434867881066764658986275756520937907129315269493517327908656547839114127341058491332483563967706484341193516489658739531523691192341051984868247111078187742119551534951271991394981494237873170440184941983360264391134121399605891284858535960184301641607313024029768580487727947719331931058143414590415486075400320919713410968598892526287364500616094287808811130829410651437161719968087961877589047028238517127984325432420596626279347269107014788895967607985479688080548156219053459830004359482085142297559429890682044842407751714591408571108482374721832526599926613496953421998511821923128568479589118634622889922791835643069238810440517434392613205392333378068314022663045198763604165259860359494418707939632551217131109818894549983951543790454794159306412801759649463965822750279378377732874407634075665198568931016577471302800902807306028471071907906230555809304821714910135257631295729004764716625041018704266994497918204569068650361844608088607884321254235150154643385091729540508727212789440733405650864540100960705018481833362381993018181483221747353245679347752641049756951255048562642521748938558341681904791176412065463282520631358840646277336249857723017343103931406395382189460199046020091458245299689222202605597737546954102519193252603943372181992833615080792440803634392402163966132708716380042651589431089542775662200737170388387509958603061239078974043891107613628067309874303382377777906474916764434271596798522648836379271837308953147308816550234414261969527810166264665093874019157887361880705959429122725488522965750664917695915455687613793307273626517837824518196083090206588303308662163443920004172694609848693622285113903522061951999184113507826636554892664878364193735756220895380498556051578631493915968091959921302720516654529667956791644270036137491809192620701072304985678025598133861745286290471937331439129186578555895437437211520274606084517283048398189562713571490055536948706042736247196262226440277960212310387268396288934272137697729339779024824333812949756688479840294641723204693336554292750730288978373126944425866801546937375676514031006667661538410086765252534764073395818048417574460416977975944701996222625600581512340247613744314370586391376139451883726065656188481815637322396832476193192807723538449415664831978497922978879527153390855950715439616563665823155449186579873165862466605500340502903750621207988103200891879340485328540789597153991683463624853964402523433323929138541386509682181389122470659125388200941693942494398746630858286903946813512831336970011310832302831097902678533707973827944038670937139281420406860513439292185456623426335273908673936681250848547513007762962631247224465939578050593634764988947525544571652660181449319662712785012415515848462957279190911152020317986722386865967157702361560715859957619262918150086731072815232948810882776560345359094072115758836140283797226504288498559006722116544251928493999318154612893065006252649085067495106852944857819634229524709268992022730894967501836653668142351393974568897448031534450520643102845446820485817147028836712325475151062389149704292031218033661522987530673310750988141349765162266552372828046734963426521098500750425004057320388334812021359270382677184413518614777477507867437862008298040957281630998073452076943774722370410920403145516047887782573030693275622398215317133426694320261784020836156724786865089075772729754485780928095925820387074511719372164483428489468047858201908775140673598283959271660589777255848756673409784673183393337121668650091409362658631864419467134624794970102436233241747328099633143158507381712620854748725862860457177289093831746712837531401028479802829156953239686427605610432793542933152901203152988834623935200335999781402101893222739582997079711035840380730229312617622715656027404050870199828467686946242282140655204647683505520585607738348298226766886509990765364485366912989405785670499137658822521862520367412079624290303315993480023042332281378632524185725500731757596687051603563954015115051844339292912184635301855621737721991164087858154995744489085832432058915478358274807581602740334306941441556591588198751917066886333655421814708706382785242644414004980860660574379347317871636737794294982228578320147935303756435774058815763661702933979958210026547084289423559239924899398383572647200032546284133314642058496047301596929070343595151261783261135184881638692043024126106370498062630319592121093843762260032410523976585050937987016379111747120184398273644850633365600442302231039778573286513292433268823997458110664280473311481103161422564460193753819061358774740039359376127601406929358300539979725812930877626899382589829272316494800629960886679540945907065487706192046862261465231809035209131896768399068064703745216449392111819651668687730354705664622801799419909394434675958236428250140947825633449243534806451353658346437835341210281990705986471301426723043287602645653881971953315319299067156657331708477601526916504244492172424523672750884368165377790398697242699143530696774959647968974825688851117422689254018939781224686661695923815237260082095538741261206789375942392037407104208433817452696890790546449495511381952785915765314598147868446258022521002268062372773284680175224818366935286293882849884755257684840775161126559234718692016627876306181626815726575340402158160513673111363493075069275913069407848086015678535184389427167222292910961836324728486526727648479065652956582898299413127967224629117453934111125852151671613588436858834060253962457466640941162275170744786161532261993249064251117511723528772662397569607010659668192070755326334415451020231473073105231367415970518951152825220441463871275194741803564753688508275841497609337626559997563592322930538436488170687715504950074894997884232229186386278853057818983135617991272754160075554996291821992689187218678507760067149756803170001276588269752714061375446172897144592010037840588601993179665868170160112695542802164680299613338109808947115955733565695480319083556531040011053336410409867764684763189568391631030645897019365181008436724666807261334970373797455623714640469816598227712762879433310965008708361253636352761858128921449527511603571118696927962078010768651909564754334393934465303310291582231669268159264658708979931036786549800266790409750049549879784345906876635775303338229771106178605989947150134263139433539486947267183968040270958408705481844310274074149243922754379499137213986914490252320728588561146899184312845574844619476316201098366949386172697380332240378055738414073404261237962282450598946979910279605641061609032298276323653444424782535297406226269801727255278741085320683062985349243895196799970616851443039934160229362408059841011880096093766667749675055982606068668410028392038698282862245575111281995193489021167055461399030656139880753503740282132939140117163945313702196163047383160155650730926309132164106072765614303572830703839119720575865515567654100597449054782998783128668993261771950066567872010413116212759771234589579853210733044864051141397670996334284297198274317182674242102360476195229203007141082335713408190530656497896635236090645663942219742582265394936810494206493457654448795493555367282186417510459241335894261245325768508191171389563816628352814003045864794751463819564960740652699751161071339272562485813038952598259287587419578278598249971007784096146231765667238532513275821382044464237677940008136005888303408390358310310295695322812818396413617760752263456216809709643344063420573743972862242396373875990741590278049702575014649081984232897786973999136809855308418645146841031622290980079732984192016868597171596397414399874183840804859046644213244932606845899493105065886826274645868242340682278631172293844650670309343655486434878358096901490146416007813129292739731882301696347482126219576336942026686961804557391054898127754331145924376233903139607813391329567019369500133446901136218719644968397756689777069191065811304321501930330886272556097860764108062750648351846863165200751702864567364780634724174401136757257908266662365711183714902861370043928605701436732043025521033642283767478855937098036378522580121324974723419942824332612474857098813157325649889626859080251875542694769184006480245719165071179482545845184246287962825732930840528846129739310839956506852131683956579768793326619245573198419675581819736197313888272697018582790616496499506201090796672776511812461832630399315147444098400160603804154976482364370514762440442410975996008739998062683423923177446116202995870294343951808169797085479611082018854278985194255437507069616431364625764016042512117036414344678183258298268550547032982417571647207528484124295414463174819188974037414859548021964626852313783853928993323225037072869255925311985100418373265180580555538372320760669804545257133504637053913873537076152366484803800862444840558499103259985098815432192147844244327370307677758364239329544614966781077419988581183052255544865946137512649545389392938190136360815658382255247900246343615858734998836346727527525237219001270321817718884073170010851166688814301365196271264794033377993591092485860433387507077922481238292201152862159461432344868781282437398764360287097087818966178939067252904929174543420232827057006439844381905050459551690644190627450516089445268250583549139735288671299798438516490218332052679700197193311853329574010217443307187167608920250300007873051762060202514351874353658899087492289731450846293137450468046835869389593926367771794558905402639692484828496506509764562367228240999034304094034455153240211387391520765400689713984760633958286479656715691343471444990640045119471830479397963811472160664372849356228971054777498118895624993228417358761307395518171110271792419190204672165269976226903451670161233502389446236219488990657897768598674401136077125798534994527384736298722188240103159807098832825637725705911555648303402233042507530110812560552547357723690098090755280083862877641235888654406517842896053975991749560116166735789794354661482137986355241195608560019740223558955191144400274201779979860750109003814932327415581150271705583644421641589376714085201373151181132965990444889004408337379609622215675444569651808064073377631059884641471160150658522804253741357727159769987586947330966570044544015389747529100094205099056737337947793442399658194138517380103737485964779112049646785522277088965438751215843577575871437829138949461120374349055630618610491730382732154036038533063762007005842671737019340934174092863707674008215722112151676880030287336363701307835107081005406999148021983543521505502101033685020959945619488999622469282334156163263302799074979574732272963975093479837388079856869612307249614030046455362233342120152269858680878311984828114947653621771483949758633070635331766853207402017605198992999119076950500123505382997182083990537267576180951688447032989227845703681168818303202285591273329370014076577562856140670175996900719600540490889020337591335892349853457960465830964264598142205644021496565371584693576623619241409240167459570121744491234844474228957130644840138910052336199600011158724534909099798279558289981681567140690811239266811716009630949511469296035075368724177737944682909451122131990365016832499789124906257137230846119172531211726260048237999761974881186412857171074050768942099253193388945526799512416115183142203260039275328895420238685070895641739333824677589938472416444799396874476532782791958792351057692708971722443387003465248183543092763540289107560532506812037716371743489875723504824701047001826778345180253292400912596951948377601392513100290801991517742740225783477289670851899478848210623176270254664796219661667564035480511053155162320151991437840368398990393024477515705247942236440374214482999820536449655555345221887688601251138248887120960042610185399505588482098240363375637988333766507182022567301126216732661632826770616194783753342414525122895836830667744718117359920968736556004862424468980400511348102115420838975522235798630777268313611251852790574787434343905678894361828774244054426841492065397582035167552843449709639090380342366558509510787680501197014249727154170925369088538267877027749896687316628294746278772554596619880376349315851417234988751509633247930616698095121305420958584740058460156851407469676532264886107908493373305080948232114834217238449149916826373446123072353498256271039296800810738308591467597829300968212669844401794016887430051828631866127885151891228309210500121707925216389103697410900153634536408999796840657984501132891460261376184289219412788653710665791897215213564133253388203420106356081316288493251451079175325403855774734501517673573847460082249653900781816182877132858845757956929889481788106584171920417525400423176174114711231294231998766182444678231711667238507764754863043403302240716372830183434727104627306378239037419585793502265842116931312373755432016775446339178301308126671393542419842597304642570340837104262312963967405217942133444819171062013763820495827892288549488538710270667184047085160135752660117370401486827502060866888231009488735823735794226529095842820685161031197531711984183805037484682343609851673399586747436149126767622119242248693446860250803021897112978602654225865412612497534264380437528581062729830149394258422143559883048096565144110041469158012078231437852978270610863463697237731011071041087687693171439760743146879880208387508011593785098189576658009252428021072318394026235103142568140433579902712579606453038626431191893787913225823736642322293874529073863958467836655002858392277893690238018629181339636757602299909021277041757785936677674926945703632648103813909062279137806135799216514344378122961782245986938125833569865382993870723611399492860611250811336131864353502089389265999704579497534471859344601946887598754262876545171504958894164276597243615562892348568718169339998077963566987229453476462353631358073205334284900405216170490352021162856780751734133769091876763271372816841203220713290641500054565845918361203344018046290395240029175473028702328759853095390450256498689472655466849072704745264729687693710221587652841082965477642641715702013231862458541270937737094682375279615985640465833628440339572500828964894772004662073922759810301334869942414844491507801645471419339826909498065206217839268209969840658217586284097704173062494925888050093024288673805862179625469628837460330638249152154001296383984717659492133006689757379573528102540031018970305321387125040734091873723604270477702233212311103085302697823833821050210036491907199378235896667061361450830688849507495961190488805072276772518206653883637632652770834041727342397656934397250087754144192406798264338296960930379689350497032083772248978444568043677228718320887994754423522786310348626091442713346241887961615062672639664648707899457180591449980515170953044194302621315964633375274475074540504568390297396921042316627476452981001595777703972689853821021902448934898998620786747094187011429377359224407826796830053079945561268110073897817512732611750878289533412258321239546425568368031702193352554083624644995291724972654625658857776203081687166136766042344469613171077303162482075325929312138593267580218405985034536613983834279018596522372436892496808059626459650550088820397230744816818790606068425184914916202110815765540921542057210622189659532449871330744394297367520916475805056233174316453092156587222729733788054475322647266205789964603115666178979523855017522502726366945544611681803141501215356809112596053972194625530561256623779635798796298345727642461228841254261676243690453756578008613010129011919570286853359302933829800502154168712728096027370553271812349511542698710368980925118090925367169799055830582248696089171861737251667828159762685989011048416001454921595306760930384777859316498532081605654712900773070050985480334785856787789754918964995128745899714575442018263592025331627367254505538457303450085284512468247270669137844834644705991148524452743282687948129401703252598429703419146124347001930243286200308499741043098722220347601005473477718258338027592987104957490788711285900963594850471140045829126906136676853316449421550329944399469361810546548814731089333409687826351294864071597672989889197680324389902052154886169807455193075615893999389761677307160148964473613112226598550018673331294697845738550352901547699494742553148343241172039064102793564605506589379573722567384303782330999270844847007890570123726333404047420255107408722467990608318728696444600209589857344948477727217432901696462267909748333826832176328427634368438491163513174961369005862849504569868995700944413761365901164972226473459810673283458673665435072785448590921295422692298303574361448712778661978582608147055391092665175645118747786289605460292701673622461976187663515959945287804048349599409998016199762479140541254324611395529725610528952225287820988298376499617210707978594641275042933198943925964040193510970120211292517265179185209744600697243657056843850070443866676579915991525489866115968203133368069968003089671270471029790215606011623038656250009734273493432452867135901988030433731946224749001744222480848701128619014668102896723236087411940900476362636824493995465460779889248003522145108686274905854015805605772072104364486815723049925429286764700081622022949047786969083218296187043046577396977906915826374022203568698374655756539562037007320870748800495921412557519055638665632544001295713974525386121536337212181850557943706948923485405656386225138503860915805561251936462315682876194136707789845929071414980390557500003437292335809211640715224761556545677844136533476546749851203858010385641033587826113552877500705515596684664872231467421423448973518559069010739244839455315501257689643045838829855813977829725083430434474078465194421918299007025388501882303600574127982435293530419621803846138039671517739902161828974736262850947410300256921588867932958266054985213996196390677615608491880579920790420407378064561889535220927489719001298764105215484031363365077334012189956079788152732575329235042209820302475722746221025865020089080454849915006567220905719050687434717740540072595701901175153580628354075009333611461878914576402459349862827545389428922917765734160442797595397433433768512260939627787143421440081235183181281229971641120068421241745950278116113979688481454029478785747937611188822777162108944979521691003008391858492124089906581762507067408641686112742947298470053009350627223810483222604037703132745840435395460563673557029751834323243053622226809594174628633919329287343254085477434467001280639960162285280067391303729691005772711992513573718850954148521840925550272769987696115180325662154821978701715671655226880473454246274687772646254533688443276335574582128206487719802603120509519475754674715673811652384661341541403813244431825240512682392495546441065792219895381871579052967367830235746315228076125853854951774289781222204040042580345621702581478985116297771929030271239441411480820943765351899247759775643311326984559965951241338366335667118777120748739482969542652761072814226792433015818928239669477706130506248031234518723277924433602686027807683800106951834058394617687046277866701527264478714549154752955485056870941495462667951285169604134612521716774361322957203010336783916099778968144785468845376392321764938887445400467290509644961754996507390872937031107608901408124611141180364707734706509529523730518273074616527236330203667463995197628455854208018971416845727392862387024691870494014364114660538284720948706270042624815345785463721069939383570285587926617089514972525574227628762329037666297072715200279925461669688382252660285752917670405481524267777630353404607355765025065419178677877373655088675888542698131470871412811010863642735970906762861963501576998282911341765252846123648716104727957881199953707996373648246273281541607756690347031561236111478113540500769632608489644365702782916115534816153720584703044205268636228276275383910788575378644966815342143204536045430938427450117959390141607348027496563218863492215465130256654816250501387162452882130855403347782657340707902683157055603937050571695076259831025041658699276667610996085900938173655254016273448756553513815609591396637041429706400138390703769453441271376251039146138518075053837733460195789268471059112303828838160357257318616983958911417020730533039772257942444750102901400384529631585950731275157155703437401011538871736055101841320613551029281903344348858377709211500719981436155752675686860775343321207153888429351884971426542627516411710499694732117402263798904731212973053151294474790782658933790318560549896414733314050364392228325367049112926132431910880058318465669830725666216014110348975048679445897242997444982341821842595702323126530941057426280579179796153211376555096651940767057106473739663100248692679171688439726136887725490393509571667946520879586976750599968481912862782474354544370578525317701220066132652823565017824968874842528733178821108247202212992237182390874558056564634452782379250762444719910603926028331984361089211588621817954275816592260339571288550872672208746399549691606149315538988815570831881484167815913310177098798381127136132200005176317257971314999908226642040803916178050527871822744377906063383642599809648059516464802412205669113874860582799969362857699591526479257430666344130334713112059468890368361602434170902290927925344036661803308756896249587235189927829354574526731707946709076520745039036314498914492187744942980352715163842163743121486995588620495498871058168894712294637876205226189640175695428819608700790423153593520487929122019268539023824118525761645116056739544056132862475174562640256074741719860121502121898014950136021696751769265672892848264245564685706861273364275865666214728058341158079520310876838235473426582937414675574970228375577370749979051656157400910785509031734271188190626785449709112015801995073590221119756554057049497887490155522322915649258550185365809084786895504325187390939710540473913477766895987858318239118058534904250725978471556427912849801613984846344846921016965445622637075585794489335715938872932073315753463644848751932114308237111091193082809031525537191026538599411989456642884162724033426795054288314786090995437158513132878033780045393697156961096596362602574802676124074818122333348463980331922939935415052633603469064858880508619272460254865499475887913974294742611320015086264319502484656815811852146046286038498668668268385389612140609295298045159273827565414349608112991796788580743504152381613900465390754257816683255138851493767190589697587443992905600275117982148417666893308681800831604002875651729515621984742039573783749128472430604840714107282884594742652178147505208241264083371271413425868046810736087218062679255703250408354120794105730360794975378764532833636173214994654547622751908802224290482314856129072821799976829464388631895395836148173320354111175521929184278751440659658381398006478988928684732030520246376101144093708490454334632362667896559298448985858957930083804557747968547110285129428136123737680633980483662895764820540366243632641906055762480345032744480386460621805173902414977805726942908074205196696870887600461462794389601424595103272101809367220274188182428729161033191237227208178374946333160862756408589277352262766657311069941886823597853428699368156079098354650685475309923657310381214217437103029894932177216752213957500572229114084504467670780229796364920918721991752827392973821394496712788607561924506514089081037352135889999052621826858262794625773065187156936674172176475287115712544531029328728745255119862822066932439316589774742880466646651072052145902200234089919409304505236412451026482941980294305362290374121456212883681541046765993114658706088712429784416404655994285521515946870084072485576574487340903898645812841558146190146890351244127468886625761693869843326865026811007324985407323366500098669955352562555322933883371218501912970915237076551140814842577899114384204698659651003529449847356422448205447520727485559618894973555496518800292209994450723147461838875189365790181799353764031749001238922987431167741336537369608319803747689625210260946608889035836874757071404217378777439896339198641945815095543412117058821839317509185796144282119682541474768280745759029064431994333616273907039552200288321379595899489045593257435079435180399581744433019590049598071854518419214937893952858198182156855749317364760313445897691307310245250537962963548994325633335771655391623996429129090232867050670284033493704912259447571882986031840999873173806887234383877522542408627371882807032836167214934909876419823316716818902301896729478577029666450519739023304420718505136382939734632959065710892728645520156822126152367085944022667452909105297701942640129743382599358397860823310984594060884849450524732190539581912001998838358419729669276281096949966667842461640622446628223165377458190659828425255656141628743397870859571528920258613077456409557390878731568124371039881068136055562655612296547391524991139734422486966806330073543184681903051338008712740472966041220266470697806429492985772783919817679829665543950069917983158344027633110820574524374538985780496700381465718818299028302544853526541832084073512439454875252823560447034553242308357202005696724630556623378127803085012794519901454197535057756016301603654418814573154189570579857459456349522942759891163027034693517346770913086285557410839348831190723453455652829110224205364609758112158243079806578860660559138566710962266072229812321042513279586184812175300053511016183352247601390893134747725015655530276992704513280637057232241789376461444431446111879106125937010611435974118851522424435595199713772750504695180433535853411560334360648397909503392218444632296164043386239481510402980813602788880210283580353712864654272914546564553537987923006778326027594556942894687237433820944594473652086373983628170528173219809636166021335959996722887355310619315274463723106317350267605586681731840678395746245766225591939384115984932394940648074597372849525008540603442640368059976923568340401293186694964925483470440025631944421002457294357760583401608222480067559218894011678581162068658085521517579548726927439429530681572336259992566720047484985647383260230469808045123336952247911446120364832107246331791613960503940068105899910205115020254093776773491257689534312192204457659921828400556388323465248455429013074206032129166920021054509396302106744897182823542813768512724987080346041764159368814475035806024116763128922103308240713014079353843907266400076034229097546282312033539055374930634060028947845400416331903687822814140299934744417491889037979547784764483414102628540587901136335655789669218292578390692458231867633102874934797105609071622121189688727084858193761421536449838727479901038643616976526587903601408920882732582319855833452565130690916229273572382911178111950358507429515360514151043857255852988010189243931290216369142906139263462779514822063406856726719567807535933390813885642733140227803563012005947766638104216520027032883732462209619873004476934175929232204330365097419181291508063871150325448642254994359070941978065874093372655635965005277469673836459484857570524154257540226284874720130239404146832181555856159211514672613215602819474614912106399864926489036916844305734073574346625706890991952907000178715648958418368495134331134270993288517122980665183159115271491369543986900328520239178899354148364273969683570552249240080029515631934088373427382713311908709215231871400822638080279889606132293340828723744414823404930741014984876066129406673965327123059823784183911222705191181741953617034459739330980210978744382313400320715681006300865013120868479192385985086011941139571796252676877301734563781582569907683643738685994063774091214139956237311735801055419055122588064631137407370351488039674770160213214074533484743408246274701554691224004022426708429302525592612974628309509401493471795061047752174439966141499123714497884453365549229162218985647413968598115757070024289380995223932876561709243067864635844043189203096842886298335907066218315589337853506319168309288871161181420645285689227053235342188112335664802043049475509444036583634670003443879401433172718691053949100098965447807360720778616105839903096566116750782003414298074902852122099611422236701267900390357801479918538073298400423466193101223147532963176109889304644205081948185956790007035086133285082321633092642061682093897320197639383855401161616465352169566652117680581779311802580340328046507716308733003696679264000152672329158104245794041920155137847471088698406784259898312219855049041327092032737529691902095546566349437333603562280708526504391636052107980910910572526181099050898162310396637955463602071273880434215868875472829753422696984844227377096121591347994874413453579250761483789241292768546789245187851963039576288336015709462808256539413597635098094142481871135849121563229401601409027843927941044438197867511411430766539951351193013308928905379478303553729171800285271824812330469868672679321147054587101214278767132447911313898226426428504377062227156107488888400750152564554034851855085652540169927297247508724321968387272747242818227261209995235072813278781681291328060363411937646150339622020047236197711389508235109892069429772987446810020490199149622189957748339820694672292234891042098753748783013402142749028580107980747958808513722052139039949988830292406680374707082762699227532132405523636870786969907019250703846063765604171320681083665041457535072120567693432379740502818530227580127338367594615801196687348069617708189830484896110719028792120934258218508446222672068949795457267033588963249830694046348963103067874620148848854487383048774578512927962012542748271185188663209769898617165039828156168335991054658157406935388871711655275676573198919312791960988700607888970045608235345801209020893479009353313918084705088801809686578070405291925817206966532538770140167055722664285239507152140319528654844051189643384373621921244059952201570870635828307611416879973724092591398869505757675878858100136853579828785238671516491825467097317652171098685076884929461482070910563590884884916617792970404499964622703964991754718421957290799816301632420106275422278001999819201298170259630807900005853214674938712321385487194071610698760411702449629821049057787678642893667722508768391748674671837174315831132116604672072982540280456342704711143027073341279190480027845704819178424895116951060081466279791387923508976666330635073145613491997085432394030715611354954851774655600822575400104278161776224030601851571470214803704254097108786444045138103579282944807539553173474373267877258674800718954472314351745189202380700750991781953049990693317607730761737822314162809586121423543110522362070735854388494817803866425936680805070947350242110258817523507941996288953468005116748432134002782934288518047877890135225515716132341053319251954948165886039017868256857230651130189731410840438102243615476237706179840373097220980514570586686908911098567047713162162936691535263188573817463151509697677882071319714278651721094811795702116526257916425781256252377296635492002457134899283845980112275628469134451455446108084429582019000783681858753759326342621274306200482550928666249356789506186985824617899958658972290307963355877673606119808952613643219577540045110308470672830376342187046561223157151225308563764717380807356769435567888961390641189209808681103788465654502294039305398048292877094754409731442886034218851283957055892377500268836202928170436279059384069586612256038329419728741058867885571017101897244266609523866061572332834857601302215227578770852395664929418968034387844813332397223265824961993691569187817519552900598572816420815589174022563903763315791552994924845885334862073732244740023829165785502141060342437845131188824712247020732766321984086263889826106376751361015836444238711923357739462980669773538861282685134527239906982943021125674724290489418734992991926184143759584280279923826540136182784179434820678982387562597256760206323971120071689831658409037826045179531737918028310476176016925479376836811434632261198622203256366428047082750812978079507151600609079556301396124664206942295124341436746019352719538620344419094535300240159855280467272899488847715431626542618843234545961517499348168337277214178676807813509141331042453549788752432270527854799402273685069247847713931810531044711548377525168393063719927537212162309054540800616013536879871571466444553172157907604290821101043905532155469881330179261936728549895902825713144950591518513356867556321406913124768419430473612173513054251120696487183760390093456106145044978656963163254911873065811414426434270279176192938860598155518527541042481760794122449632230460842984435336011807967287903704191224447795862589582767272177105872053726077354082465502701080513757740901679371154783163199530936905630048952604623796507591052641014799292428718880626975086200549310475527297122680109861793242412449397860829206890855553849513986769140907290336666672985510293619036762302010418553238685417479141100504791174280864216304434197621489836539165716096802789091251621782360564271356333807662830437035241340250239307235460603846990914122847960783912377461504449274041971572717345064464395973353429766283013613222649696961256432847097190854924643556618528566605239595438080216789756796938365454443699754113415302363223643939932431257295644693899185129506562725774359781978578401139710891986029119381676625223083844799880503445562986357371433666255909929746842699034292783938145331679459169805737573023039235542503178061353087186442151234689129889833746368204695650475729714699530313553372728012953988611768973468522039673798235811124904239490759930042583199382238651588681190577738263145986282652811222515314282655471606248008897702453827919376197626359208750735345626247663171101446801646220464808148017605986714075612715438843152489023077533008477143441200669689199080104103469739066756724616525114589846066046527408319435402951332665053976429744192543197289326919090490580036071299724425732767557273061594923775370844884586433719391129704013211632319937954264853342937837366274716096705172253791565954396662186061825310484050111741460448922750847670791266285746942559032503424060159951530177942563478610602191146953467723497184875832047837250352186943341487807859294755194217511778358780781939147268063227194885429667440205444008602652098381168667478621928148304781863507100954960455161405081447790469821278714727087091345422409862411175372450968804070604750482291348061768850563064957729843375087862470321683727698201751192473877612954206426250977859996076537506180216589231680178286017135231260571425027425545234284294361537833858204368088456311817538802910076286521282076215653831614119340373611933732136622751125162469458468931983946814648660948582413092784305867829870857212008274131965585788406662495420569083016786169228728968294147034210347510988481751499767367170475393228491195009061920826927583836212145969838900314167414092004441132639121163405182219443136356781335598007832130833294552852754839035039861813082972874489326340012863202986800086633139956643698778557369664815794916426614997565093213167715085101988300788646276827491231907369163360482023857411711137102870209535546161416541598354838280934120842551695056777613267831858113586637960659648777403309579340277571314305886207165805428870013452000860010897675542678791586247594793872695764125624092701161317530012173223178366317999812493993428578182603275179125763489198933709217877155810515740275009834952298670240177486864100456691023510821485102502381802120449446210310910834271303657597852783454494867813115498187047663451752518803844350389806793930856649429523245010457748977699879204741345128015680011859259622481136300430765467127737159028946453909097868539633473234243225747223348374333078695498119726103570302865235283853107024667650607552447662109697879911281071493731235513121075603467638830779924724697637307584560839146271731515898774134724469578849667555060136418547023118631894401533950989966695074921281676376733903048194325127719694053283352986732817487001212898619275166640856595656361206194876815086081390910997601009743715690391111676118170314376787911948505873395053383974120791320539203114551650166723995586165959838206167422669979960866075415221706148314024746648470279394969787004847129068796207321126177772884021722602401785277373590964457491286450150985266881069645513949998213499431358635556324292669173940057035459391131849717246690645514888044536895281639067484342471163254116202259172143670029900406782077924938737124582162296299654223625886155567186498391885289753075530794617319307219538039921506384589068071642558686076434604936467943868918149126328940960488285199137650742768644426370385381931633702421719585978671693183569655988825443683723716526113993404558114116603301395343186050309372682773532802830338604334656658338922395830301217872149573860774806641750455642778604643082114345036525384428074325722578041003646115089750283918352553072563576162491533920322829140628893522527497902531390133322899489296028520520442240391136388541455188454467153101131295414653628183672261571802730995261962232433173903276758759596000672555064124427995020874474757044164569004218516020739511378690401569059590320228613772214305251444238010092144634593300420254221858312915997334433847793873106416343021427895631480013856882556327729210819920412790080233337120814794271795627323036302292935596019292334414230404186145075722617026127441468953837542517816837457468587684959061904139780088524503103671832505456901328235225769011445281956720120101397322327281047106177297285626791282753126594812833961145816424910088541814246481561322229102660898470456936451299679823999745858847052110667051323180468153922411327386721968039876488157370599786713662254055031512571867536606396382791605807579659824652175274663351496487698869791377841980315782395004827131093684195011286675239807290297085139021831984868907775172716217463014889785201890701962187489671965938728561290982548839073590224956590554882187123109058858552891314326597321609134326662853091146150799880047658634604795768223581732706387938419043090147882747075129694307403154154307190988934340911100212279428208828432433764624997628942347061522541028857256120145847079541662804313558453939855014768051307359199660872760321528069388884637931293089350836897231811291448777371764797206187466956383164210962411805320549662932409327556374740320946046703377048228062469880116295500436395817169215928426809076563968592901685623303304739577162696642781551493454255478611130628922813008090360860546567956543607921443146771239836081007721411241270896623241195738164299899999032628464115881693750376193947911446670864310230180862972662617664061637047347835180255545438681988827516367770166484592409301919054831929157123326693631109425995611103300680917812020393830968277443670862658489725199654524946600908140338018606973747924003845396398767427442623113561450906905956925730489207717196203697381460309727454592643840446482234616177343103647405357772005667201554261963471869666613147010962885697902949297039507641325850192961304267635345021248225836346656432969441458170700946150191723778572409210350077394420455961053017451178511059957801791343500870646439323145384707374225692460054138356585634731854789743535929536040432055660699531397320651365709697414909134138201297112070010438407928965434124275798299843190342339352060426618461950120369188273867190248512701075831570637887313358844848208383385334493143546668528168285201454411497077153971112882150298155086272824652032465108248118073309824092446095791509601271742736236688455268574838713209903667952689660387748856495203528364198757997324880355154078740808868630976756429196056942090818429342780699183470995704898940711064325502549640709705288035880955615102241387264861304029481000641063933777185166450216724565744837057239190223880187009851375349800017940087736180638216510998493280497188879203928853452525098350511104446542218974317674530082992798594555419619608013808655020108683875862441908175570607213782528523235205468209438261280379786875084089300880783340566585095226541984819150093221481960958014097971762523673933916965396006241290449186196988126335761305166812895027170962718004844159221112082233959890581968779002117540429704271677339886477263753488754188345682209624140436517433934455349655953645359860338926312827173107546488452966741909611550277021288645580782241458398615749530297583690452132988651029973578161343264299184458811160680717371839230089400106768553333462607462161496535205417523578788773097260037711891212930001512657535686956554704773992845042792283064954813836033714525728178064831046231338340476836351585518569271647156756914150903970494074009973803680686639304430048543437423416985364666976357009614134174404603097330782175438408311631915044067511225263014860566648083191868116472893756408049535139105577766281601446569617743626482092884222354507017542613138267322285079194496127330711977995915231873727688900698011204003084895062434146700000245128651976095851381658915167520435402077210726721241787077517412728971847664065739035394444060154145474409594148765420389081764781140926111265276649266432358899156106038005302366703095219558104524007351708766640088231228715282082628041206540506038628250911959773475045637459037633006574412067742470662193650979509713888423617954887849203517672131213502638095410005134165244853325268573872216739595275705699024181890517216959568507251524772138137905481735311671695544012132199597053458051526541765324623914663830285659498917590235524167173643775284632822718233052921630449087323754480912854134899175943306278664992425406574793100614851178064615918686278373465731492998961277923930901611469334533639871903758749146321565328206064628351393184882156574529580976290076286268517475940589367569948016905563729111700644508254477480230976553440934448394940087820262557953618766248018239508865908540035348672305110354264110558551572368307561125719226431338705970817067350537619131332721817552389041972725762372489717577123917259482419996009403798042335159266789999085555048484016198317379007877741179620108913708460920543909034671014881247973672784572374489702440421871094617553614003232020660485104263001731784157676060351072345524196572343922388922781009043671000844399402310288164303048136200016423880690916946152245637896555407220391988602610542898527026407860703756014884088424884701035291262055748168026360023996789195870865889986628634972860715828609565276263743228188615161938562688678696531111715013033252424859437959187389361844349115205431355968097625515502521179377756103854438503870132699303844230861560691910791222917896517932344333298388078661929356703365876302866379744624036274545993587755079631778364188917723312450872298275460609335067326616338848415414351247143812898522224134593716944557075060091520085635102810040763634718380236051258687491232266308389976728785491835032462309712621282500742750332413134070452424846348792094808583241199784053010394163664022699745684996696774218662689792412087786527615696897619452296975383747505291662610117565320913999531818561992634389401538215578332911649349000096270238291933259560848323841780223047389464435428195209968753104485754840588734521866057359768216213228323539301865378597446989276774256893738123534233109191053466543933827466365984247635958119757798360851609660193042158999160715742391436034353939249476707074404118061822116471464523032136872789602548262622859928126774062801369656734770337353017648314415173890574724936691608585973000438198719488280146510808209257268813024562972572551183459380794949787172257881609585081137183655590885797963502326600703634694399882700000279354208964158701188558077088121545944624343005954440979473916224392924638930222502799452517830491487295435916799784372208417943960769949280184931789009317314971874462664480886400139268344459115007599586284142767369048840141562041673894231289591881934495737696482886960690595499110545163465736559498508662326472845042044228104139065132989538196793300345730966515867611076393250069461957968019749574676306241981576193266537585729513157282272011394048194084063204397980124928878991740224151354099356204106111587669634455948072932970343948824127396211904030256262159633504433604992596083249580998195423913843034293409384482142070631503212624945234708736457313216686140132836154854740476248975408752132673898165354010661278339783101238311978458881255817438142493461896305495564077263956438601231585986622753974890153798286579686492122189383626938912544366042617715075802456863187349845698850915311721964243417725591089668010482858720788428118383168500120261223522038848301970060373526644467552570151441391624754501367651584183994120884136802488957569978865102118363488977239603255685687786832501182622103747948961690787718893775081793417584385168975331479695278623300883828265776427304884094882266621981354843955498004446320033010502288557154100062297624628637824475342377107295606735492416698532722438293248676611727799606159531741931116104604642279613021346807142391965635038063570303369170318573899747139845473369834240627079593731149894458423786975893843626805155826784943881666801112517169364139888284138379746898884928394455538429639741536787538487319266163486112751657566506298019344306784298205201231205093368001094176535011908117084816186144756811310903551623810410288491085819179731867713518127928508666236231502150888710555394095908739355064394133869249186199777552257481848176635832868122586943973033675643547415268281342956148931647948775683222384110434009359273549330386258842568561351149668360485556903768060486990575426289101217256296498161664673121837596104248511799560220790332222782896362326218742613865579594618792067632815495390219609084555886064791987465583516202035838378088213205487332084933338222069259262508997003721719226836643336745188151402410987227305238921336327610727216151777364257391559746722517673277950519829724682609657545242015278283191457844486642892366813650253155559427177793394098514498925780788607388409238529937456358555342202046491197811592736907729945088647655386190379219149099563762721125470207033314000655630164609753777488249837104014156548891966230764929393411524083440956278106650687523096016303050074981601138489453048819909970487105263110164691385310514267988508778717512008045526002819008260454860965586882737717459227391616998987573264555407492968100403326968707682634229558369097431502042413678232933742826875426101772112989774639363067048815982850540208903186913250448597908577794546279910506103645920628275663534285181504682366814378325435151247115967769740374753746257834740115121511106402575079824128610526558603295112493802796122113409857175435497960470964632406577890319231147176397795154109272323110731331391067259231353355662597690665631599528965156296243022563695144523762455450344147427117203269421042366564407243537414531709456800271419806553927341293493493215868637951134910602749404229998161203501488348730762465981102544603050737119366574525240614743258491391832580850034963542403093895930238660667208146013958041595250490727163506085334923636381743714985726286739956712209094226075476366744805977346698684149391690876666992105592878426991503668076472410482856018640198884807853330827183182393059919005622698636953952536491509139838730846312855731063641974756203230410218637374592867916939353132176653560511865738981563272791415416467103922652635863171462703632365059050078026793685185296053995169470762536529193491563066550265081115642928059522618075914218800463887120613151597190712274192675615743228935654082517268160584039949829421418624346856045276586045669753947201470094438426831090308087051119659576149233429688781286507795088035220303083115786059585489387767611395579850972970574430022616221332699179302361331306149693574123399824250114454993766952313747508841561534710322085890329636445170201254673096173585784703697493187564321057954346595671926460651421019632829003048137441726475343250770428693685964316333125270223050344604885131321325166611116152072917019822645435794323356202322264087185912055681372565048464344197649119207521184677609193642296208949162664267680264787132956346887803271422435200874877207962119589789838819054740000075534542669719693462917186056687930769310674989883364555486722776411307283312146823197157059366442399534615458100302418096593379045686940620457980807883209707787094550113031792845018131125131110635047120092700286363333302453309835267818036565943017458785373803818343522372361024931665708100935980652564027726033961952795259654535403235783905797616283508419148549035868141685807426577446592863483490207280237779243290162991991016803548472455484675486771694965416241476690882178116632831235344684795287601040884025661920846868737214511894715246030980807997583214982882779539863952814360113966671831413248947571609613692225246845908038080007451262814078829810161153012643844344392608401737151157098800892886628385272171625552920074490851379495943385211675477996118219613834881224756787195698693863364273165630254099224537963010330306351386801873512949772064572497101681908199264377754663163362526314241412526183865108776233093669604577270465820847255175881053973643751998443604185910697349188110656190191581582809846079913509080095711901645302407915270363797350077651941901990248441589978642025051043885887094861346694120850460463898731224865248223531915498748903034853990408674303636505151451138826523255598076323057755805566526417883864163058428574301288848695889001757757894440531883624143265974939759305772402203235328594991042420371515121908833008423260390357563631591577012918003185683333422006845685081834761895952903745838176918845230204197569648642591986169971169558434713300687195702583777065033997340744513489113948858652550804160758118642042151849821988607977448820398455860159697731093249469650185853440781134552509489671893402783978043105682615126554234160534125495692988067275496696119048468306591984753713750116615849535614638600515232994913265166219519938886386678294209670133819599831223226391617448285633601289992405265962504462756784691025237187945703116470689444307777460062823577404878273258512994552152059316411168381296779774550709294371403726200913554520368788771387250087050255115777707841118856397169645657875376539481644686970782308014548908208043732275477503194427610499436892849833024417687612931118612814379637095507632925621578131744996553805934758491850466177942366935584839357507662217371933730984447796522075651847755535869243328642377422210596137175093205764084274857964155017813399812599869679233998586915326844056613555260925996996509730368073191271355813424820413205421058851890024312782037986553223210297505508659503378485769315723826129672500935703912089695720361334999599116868309337343609276847338222458695726632989131192152995130348004326918972555847912841825490148270268933339991284168860600897229981937843911638049785239661018234292804731691263077152180707372649633586791259764136836927651987315913318105742586328145344230667765319253948354548572413404593036069616204657390905698738714025088204015387630350290806806178253030437666166105334861276769355009518135968715375640172997849122131750879272662334470811263547921893026925156220384613941940182078784494407408390144248602691397161881355910402852433076717221321765394001434644273174384218061613034243018858473555729261865925805330079993775915315319345204641540494523069938435499891661492807105700661837460483596623939723358230569838186790781950631641655880605261630675176716725089012728161025061244091650117729270326759483317249296942998682857451755598688389836898099090490671712003549047718547058178643869779002380258071139415007023846461841150670751384078933916743359645692627593567147923765891712470139527732174616228128785420046066710718520688105547955097578423067063183206318668808851616992853920734803743044698206597726600782755659056226761561756555072450015281204198993913106899274525406103222277635747927078830971105875583195096492289077887228123088234747287978633197780487468403704387582953574400250441756320187188956226858193559818606436233845486432702475537860622299028684026942986966758167876090312544466333177963967268367743588476231902471393364431875429979154793266710871796943353339370736236452485513575939359003625352474451161300244388065350657494539155478382516846528944938869170739495762630757912279336306668462685548930750220779845097767905733337367881631891269080274251179677300248509731934454327203131936328026499960516063923275733068536460139953534395333826054790322365805861634584585270778974993734687497699297292610805719781610473714856905646374275999571509372099063286775796746771335290888584525117339821248999888068133466761630532737749228736441707986506025984261483709190303897921521819690631492356876704436276213364725740615685651440150372830053673388337303076319306310345197131218536106651069190441415721047885791178064005178814022899565974403639558788288895089174744153740347937639740807711050530381153525497486624078028902294791634958949389194973432225610989867439860901328390162806128194774688372862346477097995352988529098085016342458495635727284286200108891962440576083188999029070196608858363637657768012767375407542960594900675774973535590781884438447122615744954809126477057027126114698505206933606647878082416530203399441537030718627814385496511378141268889285774088714016530394416902218526107226112632763325802239917239607799200122604781660795297589594371209892786376262073170634348209236573802678975228493471562118071741232078136447992232779594191811784221559902234866383448923921599333819383174250044939731283715886562373701200674518305573255703933413196302189866793857195552555329581291795709175204331181460972777482831461258711135582253131550897670078886312096670155562959300235573643158309905903319939545111964777674996639283800305321680422506208519585336011615672879533396877724075157988017470685706697286674707547977297721911141151935915646641820749552682965252732020049656632525536687713037973334375432590860134139204916655541047252237867940724072277389385419640417980277062631435690776495647912101505185333818738147243139505874881444040221408920431265380828991304428544478519109119357490940308337182260815373799614560491843043414590825988446282451226997580034173255460531276353943813460849499429238636769870942193513743484685041577012792207248815249053355027849860143095496551112252973296327001978383115958218413769366100156131284121910423095577100647275503042499090963859300044466918645562357444084644478822889827244857949391804301145268019439941265756675028339649223593374196802765502363920559792059764302100873792226163562682637484905206276612609119913421280176130839216005160146044874478364537823611101362029074519036588349905147489727456043115882577067999869269094469759356178209323046216334823902215311356486545103863954518968436311872274179003407633083741416022286352583095978069962818806018328727128578699615401983304986417039309092237462827106819773260429398696372133367129861612614620950550147160865792603052612828370640666824715375478862976096614234069084510305907522913961528606218010198423551104166850843931412688134357596567094569270868555854794058907877793499443876339335018023471288130105459304643451024151546545023238647493384433368454452968236755479668005020620790255196672455764341355764949275712295743004182926120230823664418283232063581459219957496762701679110080381956695010181913787669903311542521817560556604066251218020055561523552290757229350355895078218286441963939450522908838488784731676912669852078949480217322528589210667012722532486104385300436433011605275126091801385534525965277658497563696438082542591306762276842701368312328915124034901201711919312711575685701683270289009598767214421263366552279732456246040413646734461618349161507374546302856265054706723856874325645666130525232602327406205114289163494757585499915219420712951290373599841097118242515122333956376959762205642623257207602455299059870445519178568518977935789545608695399910276423126342633955183098538899435958277886745046969981154624267477374539604940010790968382421313628178779281993912299179146506789170535125522674221662306652130936413907200719988244468713394304486140366776266152081006822965278402893422439899966490507330841328967379888901587536892284337810976977567052859174894105531304122139160179056291456467980591257856916308254707941559579561775097600035066243294195041014757131426250008740659696816004890850505159725811142180325439919732586604701721913455570694638501949246457078030948504753314072840067026226679864020365556055119523562005705056445898811372969758601772397341709582075315597659081226960009550462674554749957222910248131278875260248108944898667123830768827360949499092573873611517678535485621355418917018154815047090094484641849241997948526204707160167189995346111337654740754822611833667237755920447311481641109872132617907229400715518474534038119325362324661905206412569570616860402835746975475960184854263972344852478423796277307202070927178702077836619847547327532377460948748409134458407495733923479837652277525299220570128699924035339830619482181131650474123136015723662717241250454769589354242062753758216878452857238181877576029409459653427412327536770516188914719362970043563275131339961007015595763302183223449305073085509770107464607490825312769065650998503982021702857237967756418769426426220283426396219793820178921195505662363059612757661733211702456890124801775700180455482821867300214563049243791457753250241528472621200500873723643209883448332125005509845339216967906954032977844417861016451714255243113956641692672147042159315589009505435119545107393605278570261856161628020222760710520974212981186777981648051891568979374231313156396360160951904018185971189002950648583409185987171890158980931980224933841974478587734955964996464354045336269513753298310851382435946705217764861456981658519520856268412115605343687524697421352761494014642781026866875919271851581479423018612549733712092671071332671103917380805098339416862526565515401386745461494857401524085246751445625842090746131587159145028540273558803454587090915007181878826995625618311615845751106722449171373276863313384460480646302927055199147019984083396513266731039111779239083320651297576557619248279826751515955816139434985307957636405213198762581404394742148165475640004972564469566874344248160516761048479691379681720649999206940022360711143202546439562568612439959684279702919188931553858974431137456977071928683730995521155621104461826619700630092825464272774810878696030793924571917795270044091804881999129135170593373053643950218535446511515078043034903670740812694747388667942737406903708003096926841195344914688314877674695501440575831366348037890434630538752127714923715340366997562459946214532846628489201766773760312655240121017788588802553579290937893056198898465448505244864818256248057050077438253237205258038152787066784329922745750872842077581284548163577278603597789185674499293271632077914730729594791199549608824984696786106311053044996845334628344139214116271516963898169917509234634808744357485271911251849825030670354970415618061175130394259847782943317505065853537557035293033870772095302211278033131321653518328305191336979237812207179160072652656386217251836644077123272518085624566137031651573143928826268497811238789759668929694029500579871018138014312910512290553077326939512569406298574766900336165833592438954662237837979980588115248095150484461316957891130484991106387221620423532624442755505032632123297153267651538532385941050850326853848975911209609575222515112818567407956064561275400226908642341618689954049350220260506627954061926827411074193786982240896714952897390905712255066699333946525626289600351498109351676127191937353916702399250640743050403176369073133806038397815798732253665832043034831541103671079722416271983495101846834955235253890738275166952305893903589227656498469741097105854671742985337262952898101616620598747815861967525689193419456004521111992168795971926082251182586251549842373628040788507430398166330837084758030922187517923078037916344644366893143865062902427349650942630457801995035544693538230796118542877098038688250230638182067983143069134175658224205773633250319649658180668625120798809205763368688395067006401052187656335266443213194316834618397210037322991942177587922924070242187539994987288764272282110738825311894863717135822210378295790125371430917482104836956002067793223867719258972798541190926287559736837347904082131284520209133047176344293220866040624866329843607131365950125440306922791216101645878363710524766871747425241640457101381239710434957077715888337092913913718412942883036486959555882551048962066512937549484798029122036710268670419805563150374465066451808726874172476884503936262616397304732260123256572059041825141202415423755856137347317796567921139551014410578922040991917298916689320820408075085891683674528218983785224793767986018471360618449248784320031258108165945637354178369596729954912908852966207817057480533610360274396290908205618885837740794989949584584845998998271003807009852564987990588008419182015906759210009996849020108495049958109580421408341116069035776078138477475569643087089335437075523216030589821757423408361979736168130016728001020423879500021463809288479891283354502051119516487549063704017427595199932753921972408390928142240136848556182016868143003509476487155233031394092236038766271843304198053153403380419623526257617603164067581833397590325284350426695025588614060145494115071256897742503704717596145533386700895605026491819315908674091877130781084050622451811937436289194776101406639806575772350940061650830492754813463502984132873024158506793187477821456143555175249019739565588531502711736736555375226596619103172203669219591809023706116252768270978697198619470046462084642958669404014016373235868215206061949392341164493798497396933284420313554311560565709767575538198927847757403320677779117135395293546103401474529652562440987262377806443472986207260787609244301600088140549444099314279646413296118515130804146495681630188121447108526265853679989645444147767653853292551309552407624148486965751304406358268248603137744800576289683837992476325153485969811634566620613113593258900463509307784099616172540632402069611245396571499571413292260105863919302900094312422683934460057999547787345059214810366813389779645542881558420719320902088405018354937851286488985632851954370643204443339209930519235327045040925633491415608544185308569964948843440079124496957250388435934997597972342049040628408922622998938366095694279271760280009797610139081621635361830333021596841128674178475817738555234318642023217492729435233083855437831336359035941496249395038663272449451788381711996004980091311399017523723988403396767074058045257031801764755100360426922215445236697333691332625176718089245790562377559515052676226198380295951505350285132812088529459790695886458768031429508805433138306683726455794618245181085987789047379222252493381620778556714671172511578506098608064818234874504891717257543608585814941953025552521392966133245108578284127603945661572396380203049441410962341282887105346732550024025078301635170655767928267925311759529735934027943927332425108126669475090379770882654432870118544963242157603944838732994039732943873158815614153736582424839473974798509888846780894344592352582679859387783589354460841893526482401761737519536493326906057301027322294416951280229094555572692294523027753407133071480764700146129786471417028157652230946525258725611296745824872755218436463512132460664180048387047380050864498052024098563585464498520532099244041380209878245217990800731697407289086436857859215740679518156523972437803568546896901896397707561024943109485280686880958381127507660543685639271397522409545955586843690587974924343945561071933804169020486498007238804943239753124249169023253047164701646224003356385632254076517707208846338512162695025314476111737080576466833235996936401563367517868260629267143390081117097487349807383871021633803583311904004812643418237493286764617663034423871852055842388185088152289557458908671584083939059096369338378515612104776418255265432519954616077058268637445525865037787282170622700484166335163189136846188158720803130606794858189443974408675609857051318880975273316193132067664162216163667557488623785098563863388947449210478078580632066480963172269993606731211323231176831949509993068365676505837424287404947299966664110682570472263175980874686134067413822226158646420275671663163468913278271481302297500922664490730431862588121309503738274866095632063860879486510099837180339285487441694634834541042723046342771080535112660371603460665057405545984873536185930353764777830929341600419797460079891875301214304534654151221100702592415129097250192744291567659097262153780779763932493890052991216967431613164581349867887078720962993518357222225506925934837405668244876387954211926762419146974316584933263909450002614642282636439369443634107483505062944300397123261399521204096222465019750157977394222491148533243276432419010197039026295598597391429334453799509792857189298859439959221424379455535018554176788092571699056117815945968165237618537062979828281954361733741961215119485524942036852127523840130851091303231477812647692811392272809624231949325518458994399941665591306906773361081110889392567253065073388620593934240425673022614193191255261769994558756356641626668323823038542454246462683748461839947191394377192018822505823122673489372011143229844033839559799056574577709229728358835892588781847209561914364966443134958166838847318769759134923844763806827195596560546302134554676779865010902670210237072670166089934557655905473082010794321268455633701317178590361370642488121608094486931908033024805587993323240115210911187304197703206301551319141750143418039364270712591011978995351540495163757980843432588248814935277720500621467197050571629375234837045664070320808737880706623855876705177843676445868017486790213034530981122341877890016135523815841271271798234163601904511478815389090446752044523158608116728851902198190849961525159726448359162131005907435054698198659543099380580018177840167939161085421641656767816776128894050390342968180243560838220546088154126864690155334772364721574152290852456283666805420723591004181790096422117254728880569626878264086379149817040725570294201175785773227624020765786598122214432387960104800986151851907759411892020961177256180034616648411235209959456276768677120698144994078875255216685219421284244923445099192548121006041030757398854178296532028365641266875536097729535050343055972415462172085645644179639985783150090862366472326790482521561398578359525343291255400188910638606177624336456312675588561973981295894248461642244755662144140038634086602901724712535798155523773276418515903336656964556775910450897770000735915436107327206999088240560711577311921446784651233577907950166076165322919997329415730868824235022148909911952949542202427540497994928620719280495242480903590525801521387774596841912882636470983341747845255885470858897541306531722362493531633772696606828575080262912929550484609418271245220582745921285433511351331037963959208481440157674589653537534458866414749076279323111995754803565896876797082409587944057900114568139096345007185844854064279218170148973924343533897427736676261550146929287747287684571529923501765947151912639866961871238377671847076526419231806292709928633286344017754188289262211794917118815328876461499775889198897208791889157385460969822968584726050888396113808374816654029896535983962608674196728805952041922021084555313668216880071325957582366987053893629936039663134008773060275828713537271633625690803994337862499288149310549990452966242302586209422822740071551856907109680137035648286223296319776397487925610874803660143314632588794971444135959873558758581100227906386256900977287642326842878936201131101578652079264695145702471083450378874843964279998776305107034461711942102768176193583308267946753826945273791275537854406287033328899440783760469853791331584964248688081984922134270172085313765687804462602718929174414177396877934631900332851998656300761569229236383248279455466024557343403744468590463801312263612817400341692155928752852084589885434524663817878350874774945966918243194379134534918726102587839776891461576176356243622412007259303569149891555682935839729930096158928769401736229759535970719839585207009455177215883172187209901480946857630095578130052782802811283659512773965127225781321121418085991615271356629954029100333597514949997735292013411521282147598734943632332797272421383834701579311575221689995441544709113218790936768549248318927679668858888069325698825919987762737504348017954258869265938977615576729388508878109320684088077650942013862689637097824977156907242711838545937741737633450613254330190000076686849542753029262105940409305723275579739439755932160759132382866150587322482195803621844469884182026905350412959658967138662782347768086819487733377274211244602450858615127860413573348990169840014136573138636155840161835578143802779868576299891572520602481193809682750494073779186783163601110765373473771353130969587872562770395508511341009331700321518276361205591743000907396103059618045727944872804343495928668888456367543632550165934606453991498954061688160802674590785752369763161710959043135333836566013023339056462536089906368957328394490029438912939456008629283407143057567353789150153043377584502299374264868808022689442452909276974128735700134597126971682323606946055416391235181405272565127013992776322695065156886312356444123057482425734739247390360747713518610161089048596374363671633871582310877523701730789390269473081354852220054549002042591840750813288958867648100449535254652640108631205707276162740250410429972585960564122210082075077570388855435462361537770371133886439410280926786166576459912099025717638584680416858769887556277698061252367155190991584259903076229067984614773544591220721176287940183071890104935945259271851956859539069817012066816221949657403287472210748227833489873433529219658657799159138397227787321411902081781782165657718162832402404413438862831136961785215272388726797584586532670290189357658124174218209829814370314766596709611490165921872066501348813495159417926679520083020890815873122919358251290638549990810504097744643384844223540062075131222293953053028873106014334379652394400367113676029661972548667873413280622775574637346802406017178129675196601714969476376412026321646932166246377170752490511652948514177224228882086144413542305189341242318696897119530484199168779228997025081495743895653627142447595345847644407182281462835454640768753906068330672010221439340944776323150130305612951903417453415218410266358419692072706651307255650618116037236650811163279649139361773407852749431448899420709817865951917917148717999093679797517554372707459810431470950037635058395514397950212168148487753974354266946108348088126321914360552652759868178244863790152004364071564054207506502044920281776028663452755096562190021039401525503776922530817572717654795427896301431545577879191263213689733551466759009220390020915918046066813896896051458862383547124019239452052848965651364614425174514095996845234907695439844200313025794819042219099310868326560060927977769126736263601117625547908157280100311735718505713033343857601808547930901078817294920752930951868931136514227321790880539340835260775125217014048347973774482222026416306713655560811057347798313108672255750867071957767368951658647434522240673801156333638062786315034664313927913858803618043879881090950012063588841385417846006788096601180083484142768407259774257155897181206385766408484804686281531521231630661559626146470056971661172832523005624175269515922964425765063509203522245309165322912589347403503363753384794766013069628977145930776878183729312872363298105348884574734723269455430190031759836348941238747547404504635936588207232544314193188770139345685940647022633408325181600926025336237961331961147477922264050224075170456957840508487484014108916017257030349306335455574236971129270187716408888607226762427841752912194224793393674889441533324700663805910727893805300941773680629038688749246402846927386595369299805223129967166259689841308673935693311775581321594919357187015857021723778788990275876784797040931963137429105145451586201702427046019539382156218870470417288608938480085006464999860768937039799524930869954113907179594804975864176191670825653505205634564790545762560686723482042148845032736369716919231805004846566276071103370981378424497785494732533555105011780979793073467054625655113567372344884960901315067509056247846454082936108215272193908652223688332356988150919824512994040932309307930099848433212334942213827667895162695669341146591296420385758484141762832495329478040226620790883888295210828299811559517651209794547440431987388761569436199095766030228961002842169650965587989880089400373252399083035064609783097483568420214450271910315870555809559177016235454306331073634495477847558511558169755133849232947018140333092682159305782131720427403972629126594907552304809251667643439062768165262111879793346739421901394896315418283269315918993122858505119147918247302068839846182255211301349593303552903893541387219137089026313155321366238602214763112161828369854125438745610761524161251656616517553619678056111429201294422791881380482047221949753439144690155975088597142927691643099473793747909313287078689623665588447729012031498510507169298244202406601396450701451846230346355043576742449392474630992334800692540311349471784914113264058589030096488863081127710830922193457950379948316013725826003994853425439128685772918965046353637087507784590902227576308168353227233589384928293133301038947724241231253926783091113414003502239741649600224789278879294143103320660259908569598357629844279129094443610106337045638419988291394125386918165599822204155597641107953535543566972674396759096366366291953459032008908567806051183006503918400844208381084127158548544125859556336073349237052089289148798532563951858871678592041154979410565885757302232830287666277966327525159847145167905756310336993456122066088702893337572657478367217922510493774659413306306055338927159052897364253769554568136670046219919957521073715394751793321293942606798948028644790698966087562626617910337178734850997826394368390965119149077743948137917363183219445355189822103130634913789342985269715141191120597967462012314286681801126678188361343498605165696902735169672496699956958389069337679628254013262311579290696238657860322433018552836636627039397575747686088486324975470558938107414294122150237222236145703427453571366181345325977777850941022884321281129592805810211215894604845653402531081943697738199641941823626058441238718531125786080713585362223849943587658908442602229673255503899980741483476464673669978689816896869387859620470936138214700162664516822250589561540193127841574246321000043308256486958423093165122409781480752340122848619684381842677148669305295369634878252943753930918974284224796356517990284404984452651504110767964380433446758469220828616498341018685196170641211959771288066765774856279034299949573404639875856336763372688027716827529686581267575238214987492830999273370367189168122164325051920796271736297946944995922594867633624447634639175559275817458653653950429818127347162649481108124296248073378743435855259253260370031649164782106705154865923018437072805957565188351889783885725131835952621332161745813834890099461258759176155151952188966825590153166983056640165695216425530397230438638845364219832361621928183588616008477461343466670355611357247860897550403972580390557374552639828190147342292609628092255876484979464569739959103545455283373223853768221316163896789623743946767665476810164821294834546932406007483722096920460603276781627741048142905296812958036656778858250524239437785056241102099500842857095309275970702664388944438013782691574805959429730782080258309650488618362396545850712895769259611094659032260546111251300682826978434728169643225651159681518942347730039071685359563071467733770942064665146236368675951791724935040439957632965535279832412168707073122064426259944925912437565389496244335759154156860294471778013776970833375296388491000686120484889829822552922276018474555172484663593922361390662571810527458596259838650169114328834108504017421943806125678894523965211871473423846717726850324127738834091449186433331570265698919260084867784984791548476416136870315610809253482885889721596471605264776031943847441394679364982100517500343806039836878212977929462665677006621760915896898655445701008216539988238505296807495953357070579477816660623384413998544620926146324589120083615475978124033777206492435242232042082209242092136076508611781411466311089247640606352974009261739473076754929538380732254685841051900535908878969280705484066756108628354067367963340969485348075975113950478943768811788208303387706988956077747650102015656871398842135770971207213722679957443266559450131686522413811051226412535838006395521347201499878682804009667272827123230266416561316314422933408608649940547831865804394014391263278475205372251912417881945992723293956351230014527958255907494445974746735144823032782198258646757178730654934698563925936724998137885534077049551186561595348855295283629890038650000999334271211354274792610012440053203270603392736349479209177815611048838174207098438501630942508804028538946401353531851995940049498021833397314730733213897923384105113132027742497898407622236410744886275569271817833096451421209073298397878758188110452303131140285691611378292942765148679852485269405354392423591769526208292991171109473714227842948034105972216016240354573925788228256914908444491989083958427983315063088654459684830779859082489819576616020659950409734042083182286423675677753059426340669557885337815629480586885737348144666978108540192202808396138701478517728533060111512664449198903816069770899409419833014897067277031809072873005867415427473738003432438097566686837317601967347479484013990047565124859263498253418066220116312949437748208166162173894880277683702000970713723537286507612620756613002630984599960022902185477674166708400668318788027260139789052143194899514234245653817417175705236928381907354263655849749624494752719113150449969173801994648371711518034931959093627430208126554510426218233760393500237290941811685794024143513446625048691358711706659545273271736987903846136859724265606797695737118897384777053637553013296698345868316287147315751442914314066303924475337906802839728567634335229953391082386293280023094195986877156809915980748508283562348885582974288457639132624620313036050534667095028879824318715389574426329827877114768917845239108139570290304675167154203952000165173793491089429258180310746452595700198403261800012685129294851557325778954087457730803338435446343022944969750183029308566411700220944343090947402675233774101816609872104006665108114595852888121964354594307997337839347523927696762146831139756390482255512713031064200178371272034798632602211887424032414815473382783840472104349967301065002600980695284439392333991142270216795808368677291019067381005167770482549886272190791077631644355442837469392189119550838082180751423603291449420271363943185580291366714529359656115467833481115923313445652423214786727793378233863370448588005991574904826439257985192652337135446822846954341646883092645053861703058053785101526997867520044547702605332001671675979451769544508147777819183974097161391604842186083008012543615641107087180125460339857511935308756110965340199377092265822569781742408175311457001743918684385778880964810489047204094887760866703279768064595367015714622126726581622708648383664600186879519192619474852692820393198466538850725259950068263703779421501986166433835431174568635074056123955845749818413777521280918753846289311511612685216718060881130687721494281162164502143545837786045034497487395115172826426703550684609395601873535540440304340809129938301318361922792718555554674485600392208356763941643292979851087439806827573098578142305605763946260247206690719214217108020737843586164968522531872461965723014709660897386931588966815035484849060090100344952561263134845905872577338324368642281041437013566790875908615876168939728771511200521218992381569001777535824192864856396226941718874779326116872696750342196023326851743313457425752152255397434655427252956329828835569827006401030194641170376418536047996613465422127779799490385107387000542553994195682502928591477733830780493904428100607441303103586986530959137800824111062743514421930904772879530946057124473435106668755904659343275976537807879643992343597193541088344543641182471614210830041817917571322891574792001024551219282373789280379639688276836625092835320330028978611044729993640453663617774334363454326292078350612134273560766137910501714492351242041415875319274132475003270744699308720169356197735497342921581997605034460912482908021315173002359221147384302479402450366947117313904559319169713033081817370218388725834501306165347966516225201412974509142127153468214026957007088616909784940121767439744168486583827723681708823807389849876383533156600995769933817809415690928412779542422832375714051469081596414498749408297812472128450289462935597239116649660443148438267177790200683950948915891915262391591285497849513737510069463989512061219124039754287881174777715883075103868950071642948366885344795038092269237190994208402740673949967382617376644956632764691472492775770106446411188488475060989266635987496626262249745356347205888672239509093028046776944141497063962399986987088451601099507953089101838444238515668367615282017070848166948387285480675450964991373320054035959601358837425638449348105935423319864282268143198139664147736985432423889622366626818304267523162021769820820113686136364258881254356618770227204297226447567452476135880223536708624662258224490711387687768962301999295239413803133751631198479595523607508420399138937286767898696308056098328277083098392739376865222921192041007893516147177187372369550050797237126177167012283779317328989057593098034181661208374061545396990037427203427022072878401611073803723284720592031622242397661174355846836227274706854301223463556897752452673278540706957241413384622657648668980484784788589757005680934706181574155631118887087945533797031898873726843519583741610983155263036961304321875904953809930234790338265555883259724938739114822178304100363739206090092957428574272320925582650866158707924720355142318183661678681033832774476958973297804794698180618252696897047882714318754150213280171982021532736928382113716488236472424716205832591140547469607501355937815132674081651626051420818264984137904320561428227019712019251843378963997165665082554679589645148419576109566658385330627495534219305929338103727860037168301751421116310630618974092749663539793756417659845847888040569059822993572146820108445563280262615659254418638091158105040639810819254818455759102640624709676927174822020986544088692313416578704647347427407541731906695163556671151461094432439007087334535238501556562577463578572212701736137553338159207002825839499993634217568877277910854071948676398881558144060322967541397172505834613011615973143856019743420327434812788939773899531767005713649232115054902395496714008434477958081344554317248980222605162796724432085239025727394775130840813597074179114056504305049503921334831288185654038989546068474794800456584956747336758938819468625915827697906813058713559308757529441164849885807392213582734063359772577289997280920188746703271575812521675021466441550700651756972726705259281208383258808451836816123337278264247235477099528308928381729216492157433775600935504830912731763495511126866865648860552258605978261944198033707613790419896052474282178294010603693148813820836593109334120140978474864513686914209594173192662891410253499076716806258127020620608074351460381380269966464585502181676423965062526028269998493377025769322292055856949721593343101857523480967672282951559039562907160399896810802379756734065618335430849598822999771177816022581031924935616025358146076690661154526224717681637907848683834256468345938012754225046385992875889346126676269178444834665081098307022614910790140411123579091876004697404149616441198082623637555491446148447781187033110897240917690605463151543224142009190978474098367156098959033680840008227927554234926131938142280896334919387515262959085948918094566686777034314798935596270174932041125918970043418469078808238706034581069164882988044674701968967370723816379214312806882210495351135907325856455640649930745220029141076403709372564852514026642216085037415088475576932659623475482312082379059417827495033239526344802852422513025850472504080118637721916938183760869999585030610286237746051975880133812547164898883096660160892064570005913159349520278406487472604788426955881694860804797504923486221263289459765920304941921964914344464017101098525064611354365640453782736794275544383413267804629798521488575154995575735280847522716126300681909287475080881147408319952302931192764448547490180367084855546509406264047764285187802820461790490565449408478162340206528904151676434656980588035753330079691576193235100598388843797642371767506164217566077442091831948224594476251154877983161754870289431725421632343518724549535030244862099262251114544008323183123367755801542123053097755918667998307583206194341505884174582849982563613396225459818148197812565247245641360480797867212378121621321463468468186580222907071753754412984599649495740610029585044886984741236943317256401041678307025084000456826115017104423953854638721989067104410456675316415969743267097210850580075300882112510868532669799735992306694135206226006276700142741244981364797942605187959381533500172966099144731003928186660828153755185885398449223950133008237205616944594010201703301411777900271160309245551006488706063951878182631550827245191720400500988291076419302925581166587937047741722182899348157026535342557191609912665581181200076996804920118392554150149260011607770256246985588406374398270332279993324966605112919119659763359676709156817244250479533894896789326165681219109317558409072869105301773081390783894887952774651233020752866194859222755007284190653557317262153313397626584361131325549140333772304976696328937648561848425861424645935901058082272122697593401719936022291540324544362824718174749484023006932558081720514795217253951204531176006236282655931382052064599814799074003312103428997570134327197588010749041173935694067391801912880709988958053727703043492598777312268656271629269926169082383312607234886763746299211154136192312435497295982611302431313775701176445856860022369612098283246974625136804525363780508178536650576965119070634708060423008535629571246078951299505750453454995244951306963408364506708754983101865928825567731381189073027520705906496187095964010306426820241400824183337615954080741378899832065855061904008379572337263939345144926461217249469172446113345922072252167783186074878636051768227679015260483510814516720487588386821190318965864399722922398993194771499332705730350201414942214663938902266788313828217386849647648377054562694372463395337772639787543788543647534282732978435292475791759758039260972706543071187098306361059129727350117049081560145236022955964894990226436378662283353760323735949408842058139929885185746147339594026973711827974564363552063533731351812124145679263250135275253366955010485663920681109325784734770003570217361634736462225890803676959334676366597350457166541095034481719231497564065147921809780019501141351557996552536392048369505987159607418121239066305750650761923738531565171325871503799044180522704503181956719056336718247488099330308087137120635685362141284033662205394358551487952422542761368070794783417132244437537363565816856321727790986566701834373138782456382882854657705198089892265992589378251332664829046440884399994914347990490694846549867346913355111263119541765990263964432508729917147726443891121905569554150521711682199572465022622312309300008977281530224971610268342864286718762507355653517754173184488616308519472927137859034250048508774489103867771365536021461191042649635820986501501311750252711279958249528601932732100423554451222813124858020108394604794237351678161971280258085631049306078156506853330535684439068898231945579668440852257273656849525258391297710088555365915068837134142125987888250870557615125914408878924697759567791474565352539498422550945694828115388084405581470458221378926786878211994170213166746942104411493272984394454523148782849529036498651730878088976891340696048106702036224448485438868853518903538438812982869365034441589478947956636113125110404179521824522624408629690310095188529984409387262208989351905382070569013294323005049340639492299688105172512932940013348722041733379801671626243479436941855976785831006204995264214043356250237429076454908037030210661258952774781370379738796481531285128590078202065386869286698445452124856420672276184854736226468699833895636144304698453958747939645940038489197207532382679175455474676015172649512837018707131011664462613508952859028838234401631306612795915433448264646127832031798487238548743614069401988341100303008831501345189481325431164727576266391686678935250337002398874784001023224297468909708215547083070272018151133496090654033331517520440510935598291081378886576313176423886650947819282344772290571197553718116735703678831688985947383181494563477136997917382964084445970995659270449895214835732363881805332895068918906757509487897889056736631724561518466445110489925091949929073432543129835231393644416854080680218494492816297551153257672645729620750559032715268402788646289244639086306174323849060712516847992606219949035861688638012092717365144953344555842872071696841348057890788531962351707418019457464742934472897010615626416823575104437461309141052876362884959596184561498291064049599046877701943329558346914092614290462111722411142116548821922778035086794692089343038834100504048054111631581869094216757686307464790519635278014924977932728745590159773937244929228545557793485210169452043319734634630707805662165362353548283021603234519992327843142988477506058850061926459294481959385946358669837576278073696585721628641933797444240977547303601689238218158089874763042063514745513898140857605051263830348214012515495037147249167373854472693113114346881347743429025976930771759609716939988032740774659932405580071788199662082560229707098300733943830667809180831348529229589187271200234428440397632469368804223327260362854234930049158513299490587640353376956247574181225904966960560334239698018193150363229224253350034261339768868350230048733267425259696081459024555365042659152970147456365842763507618794278921745706392834073187687472620199694345173688413442328178168733182119326877628092557319622235430515055305480639732914266143614849376168458552905884317843951379300351109652062005444207010513772739890453185254756293714968547524059680963653291141332398391767814771071189849754500132868702680557792743027233313951272317707997941682834697370068477297122616155333533070013073744207240109869773001107026014744120113500089591240826880948288830604719007318272302173859628092058727139575127670408257334428987050406898626800470168056866677063115535939095405487284513765543448540535357847911557184273705282327324792039359292423758163608197032758113798440090091275975486253568346886375048305151004375869838944076131793792921874223575124342603460212435544152486185988667574387806140155144793768593956535422318911056001084640064918188708323180727720276595419224711107256298392120520119802625692968110192790087644790577769912397488765544017086426709585354516445760300845143366956254137149917296700538340023594489006415883297187559988015066480028033985075779666685361262930311419856991690722966678616574563758708576747610281711813010455872071288164817612343885105459953797862542794495738297005282373960859883347223733351545744493287877245627594868073680986643281277852533108224641354913607216162854708037504864670676221549304035840024829764100672044530431334585849693271921668936730623924373383207561235714986620264993664301672577009811024876844345842673901318816736764412968032731368932693321624561611549002140311354873310387899555526358233224879946700456796402288949893473454369796374657948499322665395671016258436489585494713673166146911526192237851462669205563875271872863565320759447308850376872415286162822951696898774677060174087089258513704431595586607710671078498598734277480222019623884415574923404198427231427203112413961112573906481531811570548947001520293879827276278086683912984632394220799979611713625865634016856729712315413066926810433903834540626150988007443175491933292140258313280466128472416621063905379544038103552264454803877492689492542791309148633821589568133484714563575198440842780938563658058889671482904554870989530977154310496942382912198441537028933609412393924906944252596046805018559945094676562479590639553716554770177448026756342387419997422781393494048301155091047017174638768326968002027850941595208453349519907482539586451466951102655726891012859940477727892349745663732973129235125563981295924824727959220900279812122514471210437483369536117221467759206494584994389282391153829111300580565316773779257584086847833942831632331281891982603821094843955494713457913550903851244065406378814235196875947895897624693440619813966039073497334751325021142865743639639280198658802116247370207304196318097292605023003930027544731723668335221652224396846443441470304580986033325638374148309261175847469351572317079459244988195176038249309214879418749194732444177784356543078520269495331775375121826149170727310570482674760364510738555208211526529334684538430912482402129012099466518483542267296415717422015268749069328433244049420498880879117048705331345805234540392222086478165681719351544664981343611026891820304238310240929329362086560246974169743242767103731819482840824995666706214484316619682733860194313379717550837195341462161812110898882530351493223868242017867837666945796428175058954570050655628733401756068055518205215129225542898336987839155292208541879906669034332019674612109078657083227734617841837928337577624577930270770806463495693291834168733390447097210284162302345712724635589313626874982292419776415499459701743396307579378536420809959764259755685523408858929510817711021923560553323792517883046396707476689557592191069379301833506410763935135009966531747065762998845089224176600073503803718800573756997154747995365237100631570210543466477290872949074347848426983946004723217560742074479104612760285410384170307626438490014483703932211317033068720382333246049844387797078484210892368106463724456001131585059886842107256872604164713005011673250720378006216222078210796817055705278476728768791942800931786003437041810414280457864422552584231713689854510176378168510394904982532753820447470237576097724644715006123807657950358693499761342448927503842184200405251531381995557946779993513266978116866376549302271265820432950495111793221011951731579936379696354134934042939569523417701622696681976830221094220609594615867367695380028298818387971470853728354605358228679908656931197621733106809003544537568269898128982890225546105987860331124396619577420710287970987847266011251381696104075224970353443528873175260160171265025274135664837102296108580325036455093902364217094003097846629167543703834306035905548909873234311105961711520790012668141977818786013984529705753964591872477088754844120519084971842219163734719695186062231781145460823157396916780192211015609352948807929395895140439487857490306647869929076289385014041853738580214346566754387001998055443198996516645894900584649664861008631075891350519951416418075033931624400139782756300922026113413254991700482012128908678174592488756705860957540378428695180172735323785912960309631411121983646721364175662662165819376548235324235882890246761814288601061627737544738475523184227314425661979995490860462511567458748494807243902673662612451294319390850730464732038474808409188136264552165531694192078740223000250933442032405534197401280601443100217616080407020184332786185329145646618926754950337094707968266571504607888691685741064107502138997891016681477575083422350480212046872385015507929968911570982778179493385119456280004620715984954512667326867052734657786852677332415410258817838041208811071584103883552013118457149365355160089339810448949018548021833992285169906971793421221110548304395046412784582985605557408127281479534165911710424319668857008812954119389013143546413393691356619456540665510371924671105300574688613674930520410684164973047906638236750653432361601933087251869591376671793275112259746551809372436498374806022000597978693593800577108394201415014556380810859796069007684231803433440803979513033825408585908127726552630845176889201242799890451719971940385080079244611985561702072981558320193319004455262839771280909882907158311392131056930547334910249358751844597440863268676742122865815930685841545653240561423521448234800994352437645903988136738451292702847756900730862807247389927322891808231556582105561252840758936332285738835068977488443258821297317736757216935657206681127651778422718967265698190312244632494077899161308787967739658527331939249228599558041458603694844951617608898717951882632786180033813816530681046072576988838476558907575800027711340799756592895990301720828910219098748956006755592690930345815701437292156989809654331645897145087789523239930063631334961644980604274602894108957980573757752334353528119952228683528331766799270215539036343072995969913674952846593123492432692162457043868722120301336576152825690481604708691254904143942278349373694360231336970350861943515154039603609559084009885389474854651300207010327554173176650701063607029857760932829564880538879276576238715300934626037641963770445935385776771437170368530276234046640205343844833729437419407655218104422031459632119118168990593211206603821181786542980273820000144034464408754672762660015279007902788262698958866816978488107412411002830431931549352535144951420573413125309458538245897378484207993421393592114877158440926118262427914464511207634215878085002161327510832740635619952144886970739952789936989921812612008428248821602076847636359294177466553301121868556280472028041375213759833981040654980205234354987708709076315442687147249692957243293077977117703654939905320031707775458563378893974075309550946004781441340576986985014235225470716373818932678857810629085162411318952226301266192680314772331951564348023570590060110925622316923062245439700027755099492867932301703098919565248206604675904696520730378619637474355017855802115893516227975813328387584244241491971838219069253704276951025040970999480288545093884364058524878491448481475121124373982184949424407581281409129534420838610464203781494808768633321641945747387111172326563616605707920550547870462601031501581575082503950452367669551023826647610061832115997655851625708197982810390342816723607297542002136107847591416855368431316934441372994285878899533168932119775562950996191619924502022327299829749373757929394467816135357162483408854272468578012992784063719645057713179951143735551027080999015633280701637981768345979370465407411195606021670137858110113982269156446779432295557265111118361028685045789836213732511151135660443427070784879271508647262371071026499170790530721554172497496516818948937036950358298874681309221172554076005637489218011118598333329214984502072124202940686085058011953581309298962096231815927511125113529030491344191671330534315818955327344496736374400739400611902704305819574001135781603085627725915250242276078394392061760694394408552887139061784385545031320027055781967544793253928985420232533350814688337830975699321794608012682139418594282417375347716167117657802170343844591981694499933684246728738263938382313168814846692767113821365653278472497505279769884739528693179565370481679286207294512154629494752801740119798094981950257565848297950624549328095814347931192711414452077184828168289005419031949321553223115741146867600056817620515946110764958617493582843671007358747825671576748782129157670315692451716723446067228431899170297164369399111205814520064941154685970929762656735170295860695415655976991143511259962478838591852426791643257625008751477320255096661078286066714757385735187996569567468080885158650824207787552138936498667269860048920348047777459246357633219790340560556704660998793419019351679112892598438905705006653185847277668745442730640839970938259378615526177648611588030235877020980657111401280441769198143672696145782241311992174442305397572752069961715000201074515150274471076956838193902056568391259050914430866266410756096213727229281943950249892018768351699511317572276108796309739772057373492204577270268825796166802724193854803647742988972860563198889761560672489515195463259971733004279008502669186940705337749469084971457344941601746947211862489107922251448757238541382198871957395934447632418285784891303116228127936492690406707182628585400450981171480205101683194341264757360191895528027289217772689497496363007420477317342036585091623420938281902934423420427624734783308424415172754764609583795428469911663484307017556045879815964395848958282190482080567164933203274095828664781911353275858532866979869998998695064943611716157233454218877976636231622836953272655680862936416844888011011611211960303596584402374530537001447538766532740012398219332756421833029366224427866519797990074148581320260674131180737341438314373999052287022275378972500265353470571874078729077358689367160677651513244968216914754206153318707613031431851022170667426917753786948106167450188177164969027519085740637373550397138046933381188201180980810354580453928048059004105863961150048483108971631590213108350388504851079621400001753540821183472216693547708975126070614386877743990274999691202446340599538720480958171103645282135769411265322959069618583280123529652041224193921080344169079244255938936219424562285247149702424475806913228309618570379745349873768821479879119389268019590713548575757707314505798934978444012013962751065641444987510664789283741418425117296661304254594344873990771089150128973891531907801592509055521091548489062228188769751856577920944388182935297522623049566187042788045520064418125321838867703443528843348426809689066170651266838159351859486292683064472934682111151887613919637071271232117357233181987131715631255498453088742830633739701869154382359035396473041633202963469542474639795469490514199242759816114026251934976434428934302799798512738806399750969345627727854231640102617383279887858025067814910387330458448878018550664928626617740002542348219071996830366708428813678852161053253501999094476589061654332175086655277763047717085408189768452136582206027832702720815471135599732591471588065986023155729397759704429920693227868285105952553801548915041815413975532914904496682679959383752814769795184669230405467056693755456844423658427874170916699176896798540989550777029797552991820619743400934961511319951565893385206685803299272003179033378598780326593009473406605723637090255186113300955214874640595204573106907811518289003820381964814834929147302468171556442734733390678622426801401448733164203591391887832643611181743807940131923791743447833921827643423783979092863130694492176992156901596295462635221434435898252656920220299144383322469688709867202982965523743942205149507776772506085920836744661866218652537474996350110149586699377954909562162221833032621293000648151187737267192760717190133900050280344358276545209509828293648760919636949354077412120896581955563022828197548456635184415527826789092687720027363601685174429149598310012984457619956380483634851203100565272364446006254265071748109511946895735496862558585882190555368422296685243763346911055463112288923730071451770868472076940742923293238624932946145538229202576872265963281075429964813757503413625802438736949985596491529178692647393688465479624776814898971487005339501777690375966361631948188915079710163516621411550379817255208890672199684229151641784051229197367913921886321154445387015508967049580208141331730765584762417035589106023485066853698356982646525723193366618938477572628958780834410896967253373738405051045194735886291176380856774879012049523394600714346652531221502188508271597804856828545451611670965254504092237318611949135809041777616511311168632368021227178688950132210790151659440845843897613028827605265528069751516618119874240353300023404540086906091417541397995130205705435462478675525119282126371200894543628129072989132139312435502000533993751921122175175601631868050436508040370021144092224451885978366369402138608518538256209107072992816427526174397820464285729318309963875609897253436165635377647448525612894852766246297621624010321634287052575812666403282788473350040525049440204887251681620828892386740524285401042883817798919772654130950699041876724581821982279866523840089821767957753265622237466794197112744295315508956333605395980314971011282157286804870869281557379496455377765736867218819716032923383687610358415200092554707974573460914886953171097432942464548973494299450647706828181371266958139716049089634778948147519586982098956470109506529694399406170872310278324693864232905967270125367939643875995995152496115310196920169479927806799120043582341086212997504416951539491836014267083308675159325548613007031227707083284791232851981625957092225376042976712244345953613846511105476821741413093195550915722692971061014145483552002780659146111006332970468395300440943985135332690848364961506692303869763453807501223693417117072972849407120807586332180101020072166625241215185012966357444162805327268328261450318571607828736806797650450698474755281569230437431367250054708451219616128288153129278283903443976966856283908607415982263217910999374605919494768712976701937346624324122521631544495683703269178058599342261601350062216432555202112211826437217877124036687641079443259885578815074567117199312860945924224277135006798518382815232490304164503272279266705399664343019220675831766374217284908279778552287465394318007318264940937238838877583582754711195574321944605166216200282142722086587450248080417322179331754272891165716985749391777896309647297889069465310864171207135355467358959669287285465154857360867914405031934777672051867234373826261478084748302276390475046025973194989099176554215328584885837296210687100563284258091283178254626019669961967588906019036878419088715015924107680491839115778958257355204251811458320201958796609793789403088858688072082429616546880548553438072998755478196781858248266439226344733446949596950214229761881444450514032586825824925830222341536183685577362913329240227744158138659074681153875175261521773646290446137234745589230668332930232614780112011237169958842930935066124920657415680297501257477891593474092670267673628883739677019844664723451452169911121386051315465734678712413983308566111752832118007715447563083577361156221443292025251366937022925926284135601840671099300096841259792728287542579078445625401831160062483985543231075232504445898887443841166456752133747414024726910503662615164880412548948517171582105859337299175459058841607057671424860390238434089333655730225581442800530073811629190878013724095623333125278111898179479913980350979791451675953160005653465271351481445676280702947188685673347557285552198694656670716716601846321628846244379817890522872932559161533569779067742052943112102381244482648814776714126705580809906563920033535525502912185518530762738270559850173541259035876589916519945484587695436002271699955530829538121649511787262530239417158272265811719185077072570294609062064887684768434361022366535855254934888106140839025513301953034913013306940742468057727312613997195917831293399914589502518829645585191583728387860376840034707412891641556050313857482663391251004163907708317373895745130057531109473016305519575851680571396553519958703056283894355418121307427305171384464617942003028035720923343653173509531520504033250907739312130555051030074565626827174116533168677471900826320646988367530860585948299708257113846855049073674881953982546943399938349127888665487021145325054024420453328107207701662860359239105363810639207451667328700143104286161650956051750073209633538031031891572067495441213389464710381126228993833528283560776754406382125565112675309682020962537106589069497927443993222254483880125704900650411659852799118254181361936786157362022181461651573677411058020610485423838013340175881790086946285774533670920822014379956069514068863868649795919364727460275944979710914941284645229189462796813183054337995111971102700798461831708497013664674220750836897535382900112450153860643754984870419285671659242336266959480794473719743195807269377318065005335124221932782772642288022721214379742042601863400688662491761772118294539895285484698015391126588920330023360629557987439050791463885256762943029470738125585658785152974953334823786964174146500838416363705942260593514398752449645207271718734851537640753027717404684681551680120441522930639982424099785789400017125276539746084753835471063047519823240479841820464390979121716456204480809043571717023880708240176929388667309983077224745028692591263425397253019862175606569379406374434601428755933173550030584030359260536907518031131383823687288100932569950583753620686386081283262261011899460389315241941014296739846698799833237635295572559265227453768843270970522454055569763517867363225757210388760375975042574664733104328824818082856717292173875471511716270635905223766025906168506854512209374830109248459818043718169826583306562527843824517631064094739455935440282449612726258465175407312449088570852558451366389070700895246496015586690659446115738182617357289307459650182867133197292531906079830923548525258705889720433476732570943766782789906332039100394659946191950493879454726372837635874042963752836187492113578969310142054937950665904648659471432675960820251003315648519853723945710880939564483088824141277583326050797297196835130587632939627365806848096185736931412024088296779504628766067090100030655603713365988386843491274232134302206241178903935073261200546936562458639960170065080909430617155141871913721743313513296011317518083811958995155382213219552571936488049122328144737619833741730095074810716412811108637807283030919776940316331457394192443962897091017444047419980943923220454695338817453226567166544112806889698837106228085147962338054094933707955365127358451920459904865370358664142276216932290395194683304089777671685055685221100098378531943807444877048799977785013009282349783403668209087701714059688033607994893487974060057903931315738082602367746717016749682325882347668531935439127972035419232031016026652572991223073419650087435555486556170375620492338460546768158795811920507628327377218511256675080506261950146839554969717460891521920385458159184120952354454725555452189999294694259963311913356479506686634928537835112131572436608087798019240036223057879714106801177350586910307360457506566887125969000336553714210755133731436683628984613393158371513404179432170605601522628030578403407194496194564871410458001559880516046677452068662078590179109192907983940455678737068102324004922016468169239651706179734074949622352598981220873787252314868551038869231738371224719954867793482578378352670260886786301687704414944803601308419331673228383631688224526256090329197922897543503716154120635329848637568878776953906981514353772870315486965355971895616191092985706631972697037161326248967417045572247527807454858512986330105253422680835536450993538249303769798489958620127087167128756163553336658467807361385849485749533266845234930264061084426780717151807343425557381705400856760453428855516927363742200320406961101149061715002618867028342886429249827673586971218133344002233890475494044672677850857766766608257637417685870628383066866687833542310134207956257084434005860299324821148905722493621851990168667988026914835359237682559965901161332558970783967852027971030407955361662368842280947240522165529872828578122873295463878029905297098016355830176293545487010975101243888495637904459268533206270235593526725506327986195415728427173014142713533327233543668022997721313659748544609246496527003969671110795711269373339576523863264243377125625181133081086401183583036024630304213560660048914291497418780448112184443040670209196746663813349999367003667104681421203347970494158304381999827292339835227096669226768851444567883405833666951110134069724225133609205024494553982578584979626381301849061291047109286664010005066065398596907054397168171293176922775703142050358817458681127668242762565447065045341872857800607495114546258965277631346698279569495531030911083008189635124359775928351871351477584787349711286490845618701616675919189235969035900277057263687912085260153870068490709666810531342594481982835639444769268520505279758438596429368231679874204628309748399304379623894125645960273238402390148430953437229215523225620085218407712521054862495626660605814076781893269750779535757495173386340460293791334723676348433151628052344320524522514473147300434483659227274020375617696922734292424801528034870784828308183466199699511612640546858128758944952400827257796346836206199622227494215324813419125916351218080541372185876071637422008007243550355719593991257545631835735621722994222065997246599846474455939860134223915152321341783445549080644454830785493290172260458788449326897048213260028383449715794987058133194869928045417160491220473881422305165696678335823230631639180774780387639172009951866868981183118010505112263772097467640982293756376952855404333791106214526690456289989424641817779265387874669068542468982158233190899110018472333282297740036603845428977071650974216130361713419229726144862154693682543053475952916834022834326432289359767719701717895133294386987940566772040094646430094890075828022488422786924974682416978367714027886575569362578043943928087289018723071341810024479947638668023495185667138647000351765769937364619241673843188897273888037821635397992854345947327780773450552137692127908722036363867744550480581172168003847819539165950884670428260769535939014036952395701253114173656626221663171207233597539127120359711574087182964530761463857390245022443632730857574074706961246517579752279237092059595424495465446048410037333843110721565330620754316572880512323804489807823775844530350306584719833111085941884866242489749593940615962979419421004955056022798595615182599140849561680066224094215042369697476514469109809263614528161956017865140630268939599604908724905241343454664686186894168928181901647646303354612117311384184790205930205731062643085886067818274620956218067144189434116647737658165799457638307608334077977774202185384453023237471284464963316792993864401957615903062826027773211199931075775761792302756726458720457084306798866362788925946194018315931894726653779631180617656767351424954392442647631404033798675383903398856014286058667233999336540547376483531697330523634072834058711547862244130126586087487216557323460609630309518352622237334255637108841664850522531614542056027065181829154363621773635636306693183389536397826406376710945635401513588303710647670399104448241944215425470594430128573064865123589121501062513374615146028601279112971084836929218430099881968838774931486281240999600549475539109894540305693678997967951378965708196658547781576362589094449907010719825121592242419660360371825977685015854466364896180310869089221813261664982350099324013650909437044389166728327655592180543711202538517623989789302972720809319632620501344860498224623566240491965594214807049760014582634770019212862313082376810115848452256515861701488732392872066005465249754222040008890954209694430154683864012797754220436234321463924258474550422638833686830847858495836447353082652886036857866839396731081460541373945853256641165733306330495900115108485227412336246803881014176274709291991402714005707607121170891114021738373071026700955677176545055574446967469942840503883199485505370230645503999454912588456997114684550334634643265357995110852786985606967825659393760223268553896578826127876108688428516970709773970879353744005696486112666084438978286875648429448908388541264718995798447276254013847773938119498550800589406412764988896604915681574689046593969520072516084502374292257231370700978513712853650672291746329856396285187657660537420504056329077697021287035332358399505734003209903901478011655742339874997063900938230233583120289330519717028093471004119788709271419732058670510450936212190722962901043193062549821003335351327853492004719723506591313787848900193608609336029180574459749511478857077474405326490505092724802898806415162920778376997226192555505322353689428416099904530293678937828731216965305275118905500193786420514603396081468083776555340527453470106955646512897541704708042449970446521779934253543437477576490981566096858998471637332758167528488905159765228162718825944562225319510114431576253113982362847578802008442843928285158860592488558244378047026932013115552879582644385276513709905783892309446820522073842074457875227316750604811733457546809141876675820842994272778153138223840645392007402513399157408783636933817868836975804309465144628298046682259706291485957826959402859399222110499996999662349291521030243167629087630920288788002327489436107083440439603335559726767001222984418748048832704519711891684758829972967320710599315460952809687090985773760135861935975928180344040762502181288234064378203948409118499047473546021954119905154909639556360529412888366619179231154285179104847103825938904190523568851270905974966826301361734723520649342259769969363980564701411922590732556936171077462279076222564027649863103759431250084141234548836241008675417963181653705053773280494680722865114932596433491348003675292760089322238367074537728507642430552942430340053006156857036779734569757541393866417897401823049255744641737140995232918988304964522305656098687450518628094784368090301263264385509093984620004886940156627675260804693636004100045813085842686391957876015813132765646227489589594668170803023560425372588717446795893588278281984981143314806507005346654936121877217496703866435341397612350292664974899492596117016722098332119415674793337771805435783176982685912169858395512259830964982313949597327151327522771451962855941784275223194195757575259480340384573882538876687238968827893526856550100781805840625662177762598872216548946662423615244430027565099622534221987782179252237510404302681628300740092173062818721175469122154160988260358438023943701138395765426049502152575674190642393093614287283502254156577832225543820190285410018336728193139418883671576543793701105282864251967835572039689859998665663489116358047337310444392600816971379887822884427982475602421008926701465187489974083293961226828213389242146641640822246520769558625777662345827675279031118516689940357836394437070210896523057453789398105030528036445571577105760548831783836565981057349076288316977659393389844243233390390566389948548748871485380105706906082750936014414509306772203033001572419002764475343415547305814285467455266821680256577887731181910892013515284885694973946525422265942371327150674447258355698275256521839421725403000646839383181150658704124591608480369764106976720375002691881268416329039825698086823008304630293340296701522897542098197731120747301298829411208464293915282492573566782487620128036052831787649390816232814516890022790676854365383726053510670507431977694035820659157643896955934097366523050434911569912072288339645002383358378339345829852895087728068221426523741029109008794253163420633813840118845114110138242097979286507673231305460318720097016298526360092393518643611606577501197964009785171251788930627764960970424093444337897253237796550491752662256465699226896212306644633242271119308314939045114427997548757294782416537734259288247644152139040017097688419786254272551567368517370137448062877853876404384747949539152611528439693527896261660363246154848757825710055846615028242073004077767829733628190279084145143455885835299512884177333820531526063497970927367191744143262405216468425330676927336015267947427356225349321589687209357294179419850504493883967464558034122046541154337435156566045514886552622929454646619688048275804037002991238388196486474605558695185686705230323656079253853842240725235764651380804902532501717344017315749455774686565748837200855354102123221766934666647297835070909677474554657692322175544092190795758020257272033637241195974092741149184867969179598530167004221419243699611182871008256839960910519498014475095106688753775807140314765209558428309566056165126732796875314041729026935530615227764481791349238478156019850892560869326197002415085097335824315221788101820472816058298138800064537826284875174578959961680596035309488314716817554365412544333395123521247299723048232954988741355501223911999294451961130921486142737307925097043091095207292264480958080532973957320327028206346272307809856573313713766634674161840730338727821133284677184692518794818105972660646009932057577480543395051620227274134684444419568511277845329730813710300322701478158015649595907557190600023410391549077537414379617839054499359589499091741257040012804690800073068241922653328810689240753027257361400288781200418937548695219613280287399760865453865188937356096191572694415332748223526136494459266148675388920977916762847029796550220110348785505512520406941448661645717357326429550440464109696506356425990221689927297709175479056913839287491058474235400494192305618516554191767255971136127388478940391516091327595647729858125240709218913615558934057670739726976428357223108484155961454314649976829173014042468611615729902209142668207826649815355880828263959961646639318890101306770386346739333341748286136551436395485497960275279893927345262266357591660336410701500800891837123830616601841399117265566339760843290129387316041742161596083693436435776962029130645133884173511895827022902876490048379203881511597678444217102822132115277104444819593092109445985046467514638498443908656388870468336908412934307666706379003127878881025856008100217244844449461559398522014921205541908930092158890226206852219838421415830966296044195792719524055365295021283750182947302454489669668371446235318896327793707977903888170199903135586464508489032538058117720682438898109550826662344979377506581263362752554461762673043788041319355805516593546705928234616447550421141656695421513676401951343830739674487147758322783044661182357460566107649873111501231542672870997525131124909219979286773203177878600200176817645077684621567993646762130757565600421188978824243900846914782381998793293926841091894967381293358995079905094468354879256948693268530717862854377099566211684093040407308304323216513916144917295756117427444102611385439589501363589537803952823978380796510522591106535661678654291461081057453688809036740852007985379355461879382141283877716338335024773800401997048359786577248289237169365928750687352825203071638531002475456723995469300883564576219198357362502434921136942872902162779561364378523731949047105171115737033771955372407031899932416754882504968120946343479012675204897247017216996187996012304281606463521585413096767428569938288578115624783248287988513445952292149456336295832084738038989407589010139076482800746965724238453649740423459889618790127058104272881115247373687180517068363844577871390011371484134424084714235708590491719215137925152558827202553740929710913536266880247461064062413724031467351401360568892534402112297730544705505501119614936865077799749595262356452987217338875565126403601233392773032462423301529031461376687478529197015092815227933938503754930733097466715948967268483852459009671430434921010860836249824304714136323163070788852722731641585131989058624614689045495789806358741085200756850521169250134330974625724668933117480920405576741201095571679471926510109189571615353470008686389429203752724226852487430939673881632296612376085242716175913306492535652366049548257663086262692492239654145483376468168239782392452490876988601875603948005231254321379830336728791755988817048515645505389189337857850547389950889626417167887870280236446616295154586150334661516841182330564871147816377735721077854958151883164260223918291228242894508080361461511296800524471173939855777089042060422967409349155626999268520172841808562800865950693381358052330889985176234289617632662792306045435993043544688390328221143482411699716683285006089985841295978124891834338416031328166317925551148636679103474178105389362121636599336180500215736848579247022050528875785703712494000709775075992167823924357262164592747635832586743287235886602687897458743807781586769096264666645070790205268372879886673805172052409628241001121392536864708753654018648332080281494856810992519537668791454177332354030588763057907832509453945367469285279181334583962507150616286293625139650685957586483934110938531190799983682640277141099016410926692184394171274853170714338358844960836153659569630464146133664829590982827999627526286799684736800495653631513562481474947278141710170475252662785935051402848709774179171776531139641724114856683949318415440305040343004539266142935486817334468268180660045896686406583531441237290307431566949191545671232255157265565872357535266982719934635606540425375129679751264193914102547552554325241392415111477239783885559832627961476231265923860346284271371214547807222654767019963205338198892793932501156288728295423452896569484694568420010733430188534629247846623072618683856370040165184837289868040183565689110143215888379068060031521956257118633754480628459759526986382323618382022873912788161894363016434757750912838802055006691303766338547997556877406850321227775323651981340967609612613186487983912005655965086035078018173493683840830244719714463941438489230585485954260600608980389023441724057199274117803736507769787502381501148970133420619999659933318565377532109431573178272035414258450700541937637817509510746270012475187529739684149368772238495862973866325710790861863289126458223195009228801757055453432005920394633255511012813897465784219622322552109431851846001809734137650029208647713284992060402702107051795734626250269846135135268091383954142515031389420298949936691027368310290841441451051560393698308939937978448206972869696316193634507867079223336441906183531352260861915456854169746775244250672086188099772533240201763323000416834086326256841235931646859689027786632076112165927919951477310627937006697836778125335501669121422768328813041963372467454363863987029341995602493348559250917785323953941748722323869525280108285141352622115735335518616907616884474378335679614208312577923402292614317436198645892840096868125451269293625128278450751394388718312277517181932631156559830342706990693366449653384021142273071314561592109059299675710206451789026116226402126977102626497834234464328537848074782222390671841150622022870689394407316304054157886832749965782309442272829569870964125016118939265324656704852052255887821916289567262524776545641408691495101059405823415141584347871799918887453365224396404992158805135707756315362475541871982688021276568364726852353513892107291439248033149941231544561664551864268924889439668321248846709767938795931179975826346221327597740447058557081881902011961164529282937613264061122872264854210546809032397733009245558736611030628822465392365882841154284425413807880905252970590009505208996114552044106667671677346092169253982430272412537740761135416964801150584599124969712535037745328590499188549223016781253748167095962138773121261526632079245809479333939968084381168961222171183746994299137262987637233103503755390897338889599477488948278666681393328485226080702311389603453644923750817755187092715105877484861814508808463576124920521612156288913781909720471702175300021480345475576363018469129508430296725088134619572278916024442212002080206163249379024283866273609425584374664009554694186180620821177405660569077105963262125286801305322242012688706929075887992886793795486648804393937245645730604554416742827534831047293588041350467449865912785249407785145069041593993008601261975055100263728393368260021432736084326138453411902545073240541928950239641763987522752413109038803001988564475936050667226874195156524468046914116421785482458039501900960003346265913477359686928242136178986746865907926787524494165545493608512068609524385591313061442358248494632767489327907915488028944406193221488243711348151878808546597629458219729464878978586251431713105442413523188493177190092382758902357091528169243973562435524393593376149640721803949285842710338058411217324809396828161132690870385382779978302983420315749545117234220570739721266765661352297928416350933723186274047958903150577096456427473421390032878223038854683701351856222447861237777634568007939360068441782361911378583105537826757470713766235205697773694630925416666708097413290780923071010120262622176841454756094089266183532040642647926312642731295290874697460776589171622488158511307956964097846179507058915193349520337695514949805831204147967869971586120622643566361203829404735336380058739015195191487018999605498373097781099178511995575756213188221314862258707316414648290479538635022104870700908824715625183455074675219624709595824476546031678315871815158217143861112599923329457099834490201825325900689941984594868749784601058639929388838181094555053130379419910883246148764501117824060770907403709337113870269717230225863342301313513087834128988750369390434607791364876273355562925080369327871182181285089895811552524912374869206598643269231486550514914081533127368678142034703445772050439273500318753056925101882429931012402944489314539857788043663659097122551331219652168964529193252506884063327179433063228185248965048406613157422487710664686307292614092305616841743658117279118341445038710874820750231214928063827399232727762315200985827369841745645406807810256673940692325157793240926710427445045436507958324837669111900087245156827677554417180957865831788312286992453774336235353466639794434001858425526508492990777223584659643040766471435678677452681355747819347629843007072956062185247892126893888849475608272664017137308354587648571852907388894331712840433701503198094168704376696961424870220871942042522007705901756091915252741549619939641488643499296036929004848731339632249119012654586998721690339861519821439058607477136238189648243210738610959537251948334913676242008120119513473243806393191986001064435085981736801965110273923521143154538225253427486766773373055833459291534618710515654527469355738722996594009498695873095299190018047602774743607916954249094831236036886417367300825251911531938179662768520637641194308311683394904798335793778303996834747251598309531654829837397256194910914190661545131529154476501357419065299517856884066798065946924975093893623267627556514353713066883342750934657472041514092128052096085196721941949597336848487024322626413832802886528573126790073299206077478901162049614732936510930915051522441636822830072213078276639972256542616187756951660850882747816141374289797941847838417288488797831154667910394500083832617366114749446200192933751033055201951820777736246878799562203364910164763246891075644794396668709678425322504172708551556577877028885147950267153129055347386526591659321054277534788831986185299970032943164033337176808920006200764784295669978438018165800151456194996177563042481979702209112105686434103738746955752105229047002550559351499133257657453609528205992447977365023451480803021311588460924299963673297555846550591535934987425569262935435297296631674732818846585722683267409023717257746149758906235266162361735634435383233268805963032508382652855821912737899502412276714341155608709418832347533271113651355998119919086373209733235387808804790666057917970272293442053595480546701984701377057919866569135635773566287578268776529916552756287988536347992623111412930064267802356914125985636365469427914207218349356759047049931345694141893460735586287400921133172097037118162319328565128787980242164766914601319176974490630927755787018504731341894403106838796171773387366171206334894605256942451727213011834542517936879083755759944881836632497097664935257307183810658531599117484973823057508535956484873340359201528025134933850527754358769607033833533121933849544870077269695769367532336533759929445751012434180642226384892648634448359054216553668261586360714453347722617000727493012922813736495592609120495273759551845823621423113575815756024998590182008422207969974779562017107159360246779531095591390470529071762004266163058985430163615618466391098266997244964018764295220633008561455983566984252248173074682483537236888448103356441774919143137569075931823242271954841607844390724343859759303634192544849708472338142917397650144715766747615069235509166262863754639725530165776240546523932830781292484996037807450002287832566053135579268302198803933278214321958615260803074862783484726296657965960148104714126968572872365681473289079918693936992278610507856692585909490444374648900303479601526978831944049559976834321597239995883115004468508950591968867445206634963524082149523551600851091395026082575516468525030450049399455075410468058763864314288053757726833253777005031134641081539459737021624328867483349264554929036545767600596266365323849312157483426238162964023948276538422192341901050854974224449637033587475040902433963821854648733588044949205477406936186310394000696935494849333733336290239760566418215435702839793834822874988855028302092141934297840715154875064309228806905680950699043404401777965192982301364473991518670401629754344822513772666409895441497533106836298950691243823105077488181867007288868528390400456571769174357715514981399879751261873455657264787957263817154847204631813881121605634606600113441945021558260785416290074038647460294632111427487000580093251054181113959292706390101715404381660450988657147167170789962638152466382562240612388335113288453303583068021264888116193599412807189581890794040506003820863857820233647033286653812603867586771698755369035253783025557307937267495036831488276822834371425014783113976478679868336896348936520315068450295553216389144572914487821992456739136250669887385136299756295706629606409722743340619752959559544379271887847050023396930975088383116763150294634841847351796588392428245450428687220101253483649681380283416258819730364915182883804116230029811614235869268118712558958190718125036517372944186293903979529644336250118381834747998585887861770997865364512039762918430342853581996566869002667186955213935971570006213889410325173954359746728771789292311627462645529488180815513487801989765256340757302597670592577069483947969072155331153305528215071449080458501025353123022285210815112953164578354501802282867265619361773789105592785454829865166263764613036906532394711819613584684862546336923810236885187987979228041642177146810612132653975997434736118771390390022849405612577076498495605470167947462293487964053488538328818030267503929845358299753030868958038934920054484551933233034583060350342978497809933433871770754731283370113255254422025256622870174528103367722305337951090403406693652787368928438128854264379918870872714450564979014452604889535147155516691223003558607683332602722237174230634680967716572930531692343795062572117076473052946457519801856170047240306565615604493558332080461318895184831978693156275166431353026328301845062695911957776628789129392081535571229459998910479410135504491913424439865157405135431229003928894809104177806828228513816007428488253179937121871422985072118144263212643467520447877891303261442426306042822065009282444103011679303633543722201495178668567151598540738497729577506362478609320608749880641983356978451285210094580358657901878797559445282610357959149195910692248918229502311817686825487540098533430210832718074930952401833859766827495289642207500812630626718024230820173043185522050214339524670330906301995377599792532081928609690671427297523008613797717109091406367901441802897681243447474055336932823134755120694427944439759531687714122120937869158963276709011405754643147723508617914702236818803646791276920499051074104054797980902786084054007204416045608906498255069816109592341560334086616749720216551180098359259355731037469580689674379211932508359229548203417470747387137737201213303735024555792690521195010918277713443795538580382963808079456734800369766157977053394795014889366642864470330516438578110793113546371217037064918343194426163163214583196870675428145748640710686305238347881615013952995204813223195065929459054994512418723569711838022934297970633398966066751683253807825981036711523378965456723130400361314659507355484242915782274776547899303193584200175940423898041458732899811325397404398178296308053433255892546711243650219020092059364822699488226575595920832393528435662762283368924638582308711066950750708878361026570311571319525737268118768508641580893633197354958645721749390822327451296253954055103927775855832581039438152007597246312262439043191625996026299412077415187413785790578269287571388647907175880828375224432647054497022142343982207349403824880953355367934474993093746372479956852757412606871946246941044365156714316971686033858202350363174324102807978006382903381824830317045084091667974586515493908259560822193032123229949382271850245678800955208261777825026845860711444895826067976225846314715412113336637893642519181822025411535661601036878971609683429175487122047136491672601237401725199062833175193028921020142594609053734369390170598305952290980329218667373733450201389189381672806979534251927013354875542854806021939131245726100565980629698094965591554958258070605912427656542770598016474457927099836681119272900770488049260970230320117470691697605535915730758806588104524936864152907769981798205340997851105614814804298845599512198503711594742920350963548379941055386095742893834413673483823194780843858434810615771613221226646236583907573993397786649424429165007899934864793600569213652021817540763643904157809180055300523347905885733971540695652730855257290049218450595109488999977755748571568204324871616551893961726374963228675656308198537497068306318122358176117019257898971138505260330360909199496941350760361477221605032377831607269693646051632956157557848393003748479755788618125074344113524421641232472752691898558194068953684054025996231363042858036661580182999662074725756172006407010809013304514893964196422992402251077473145139618644263239317391532775516547203290327331494588804962634853629809090553140010076601576990407871344357111142290200628749250024518675736382121711161715021019039160431629601221598887920437650873877250502458716740283449136967761529137584823251398202171827605947267165354025734038078410777341642034828181836801174264132189358623711485313949577657497382672129990154453702765282350028886597514347777660557506590252829609523849155560294959791647343922725644601997115643841721284222289954669188154829927236857389371237536519779291752498439110755504479725676047386971957021914556821771467802559206426615815676411542557681331341839860611160662366358256874794077609675634466044814809399001765003797889630993362481498500087969985842302601303257121579231860671032095038019024797081811463759970684217087783103152581511346534716828758940687438770077370136287037093697505258156045507035727722321173214998613177317643875072103060804291975384473501516926468094808339567233241324180429921240648372678340998371402910220989310777509253086901530536353007127207959710725289547914766903568910270902646297533084752780537046821921160641381182863360056799224710831145255174642428392549595786527086774641515438311171659270089336889307149771639185451655715176512770494407870965436077997314164286149488058459967153478213657673968438234577085351270002596693952355059426068875172742075797797219433853631989328890939916128479414481141473711510959684818911458896114151262120170565262826275901575980162214418945430482096952651419173739214332383692011814534853931011375087411195255336648558832643116770158219061647762212100637817429815173963486964113359818089688915656094710652033493012419889901216794071537222179338885945502315305387225193768010195659862189738658682500903630062888885150992680456445511582486181162074627278703229055452547154049025175364074634320444134647214414142343994896152747326610931461836554510335190129133408072892066929970718579374624052438164643253034851913171857916359222518451080065546189325155722061892010695371295273401631847490642716798618059849345276659374334639479493398486171538957850872100115145237977748486576088944359101288456257935373633405210705321407546052317280234299467226355501668011431673409563504367723996256958473880283030273783890756938968126656680507827960485409800078921044920790767283158684338192270848985563224932459685944905228747407778589405115541360655008104931192980695980218689827644620371510140974276990316414579312459053763315991457922840838539279257476756606511977874409640190831727039768371856271320012675373888534774834882236427315395757820048615500599101826374615423943053652876980114910071797860963164146257888114355723410836637212899779772453080885671645546516337898531131680788870252364486705168091847155904034760626743240325809087960497710057518991146336371275731811564418428041262783276905273783230788389242937688207176316834685709247927466781167402629006228646396774451318741609270894658160901243144923411414879847449271416682901051461842178003592091102495990953308361034983462011411258115781058106883031135637091504924432661665122750848228609340894931922950350241538405211808520729799203920327826579925939933702133568224221446553249028526601306973982380466507100066094725737860497596522825337472751372823382147767602747236366569604485600209818070560571805822588740768052802227277120457050612424091701050520636199683035452421843843123722636091769962178592461217740143142822932363853921399540703899789256433603825831231431209419290135955529370915146393874286556627996640587768401643663846210777060054607780182426307289646443491460649759333274879730690600398998414075046296544282783083643321245459775473834363174236555241952192584999081941423840834796093522351727138508954148381419370873719975709579527189420355648978574872130381362638017795721676136569986460515704318528751177763233848034188013665578133949071636887708503884668533742691274736787390120974374275453974584861846773742251607609170534141704044434695337615617891389248607653180186119802431497279355047381451698564559869391858836169967131430780985005068551439854687495088703811491180003559675781592075446600761243503427432866967886592648266474312336914507813883151902737033692460016253377835640760380722035928734059989402044564874428102604942852986178292847024821522380750956598507295747195843296731233284682027053921384706285936785634055009256605408694150439473494181496388720898865768730652895027597284952807084392680745266057609090247492604517843630087204809395017349835022280939399010656690876494396059622084911352685268399132397738451304031195708512475633304059488849839073079029269529760480545352414535425740311687467456767515578942209545741988545300675504769020993111779726290110350146607648441343147130065959323075382607137771482925644615511366686418039774608446046353067958984199682850498795368615861849387501140525966606262891193123646709692464400999541434112314944686152994158910103538527329427548859539313840051614524345427302343343249643810375754781089168055904824288043925512002132852610822601026775588200337825327306999566077403911328888732685184136791378069900373212586960668111740527605794009109292963450575329239367448316878874823235529238316427818162266272438136901934665790473447705829281652960936589728977073693661492160913168483011485840421086292070410140633738674564896910381303248790992825507904711493962054489642634432479712916946087553586580091179041818574335466577106148152627096346778092605432235668330280217266509379403845050037695568303768777654973128324253202825466539069113322655893131521060378590660472534937340750235176040931660382896370088583434567248451185912552793164779266287550705029297016599194539202605475401574578037241909066707796226516037208713724739909008725530493315657785163256360433860036357270407491743981259969117382993526578966340270639529953882520366278808846505331609096900417424443934563346124227806204198520533415669484202765734534757209519797939799162540496830585373958364563887669278372373842413878546669352132739751803959381384620667267260818007634980815098282303306967019685829124331610457727484723353414895529394182218634733363838472407781590665776304472305415370567688159617599810546635757649870174345302216854308888195330748204564492108939809716130520334140853940849759178794633244718860227980169294100184931201225909583541610567265522645016876239682461126204316856802656331860180826101585876200188909192907623582264206233345115150467471789845713184140494899493619480785823355715467570820413400632067134123733662430343394012503515730516247243111431549384537500129545444904679244432394392620049831369815614626447393634521089534540446803301928534850950079656344581163514759624917851121246709278583540082644540990376564767258988589206176034983724270926397241143904344482806295229794458404166517811663472703775218264744522557453101539928670386491445876008210729219688399956222598028805412232547138524656581636884182307197547301658394235606942276103449323337185488668897867828990450567958999041311451085422282385366285901982275000129809644345506950506942499770061622156571820721485096762664733620741860747433858295718418624850865826487910892253874682645973142799629693660477015800671875365402250658451231029126739060799819796473375439168517197905495974848827516879982519221264986789666426287309187812499463412248777196939221955128044654908615034379963620641413820912082369462908006621330438820837005839769896520919412607226108212526371765577267037788777441536939529698204896395955157685686874193586881492674367563907480219553571297982201761679053683533081847917081919912217571076322302955083571435412597873798692798133670739960251914766647430627041253699449429656563488005476312937898879112627680783470443924202472587818800628514685137088055954348570432556961204549581395765081361278007059295787573603344345751995361428280910422205311203783819823150475233285670899825065118896926177672467118753776877732238647986275746309476088124768090263009669289739297606962992808291109071118606821219449757270347427589713111255503070954663019169405596417720007395100898622174698528140910635737283765609761914835528659595682509906921159591871391409010894132554379241834571901318245723355402036303545400144737153554866928509816907684011014550466919054452528465082607401593921624040166516512334110489583050317664105805558873577748395246502735847764318348193060344650051787426484809116228302158976630846127949932478919206988087310442115213505295397609054395100631022079146600198994150429062298426592684682387618480999413578795431148341017324858637594283067544060273654588896735728781002420652417920091469536723383599474426754861991281473907300861362824293187779958383914377156365193824251231165660121678258024278100165885880228933999811938852232245714771215463812621294646392635446828912661498465890125045158387173538112752588741676269225016590107259612743118296451486852326563657032393510993181186019803645824327969025362780528798139434150368835503808859238408642106170607485477434343397220053714427534024062377284639302845472265686775884359681308920833375078545517686088609882316622758930023234085116883116208363885156150096659654614876314301308717260909362078363974943570111717553546434682773640721787089867181940693875188661940801441195320942284503946286235045384129915765432685925149627943121765485174938811968335801529010366731382760569572245268360630028114412477159460565621566343746498563445603388340372014557349170713629177272547466626502433295016307475981674002821181782775738438412618610953060163980692739593387939990923758163271028673856311240778358663519502113221746315022730139618078127230025847488498193820965116031845290234144997603843271876446835645517095435226355306882547908261917995769020662494051166034005221003328551142561718206212905806105378881211304090584632223397754713740242949346605814086708133490472420204362867156635469098785123388724405374104574281936556623704106352815243743504704197043688499095637568411978605724020798391215636135919797837073842423944015563250499063483326587867152270283126939716638891824146832382985045694344690027055946659519877535925836531481270855195379299369302960740544847428413615816763069626802479859249513849769107124935627691053545494869742374213141224396685209071682502202402987015749106520626318186483579777579913942905691481856545346110109541169649391076731016256255243049484118461449673593072989465396869648634246472618967763595248427392264155573055227855636113262299853805076222591296015835845020733263638290095290194476044679870536905598804926299221462823254417593337689511285013047902143637903669813058412166745179561862156821302928681261329527615393277900226734694138318056895631163118682018398043880747172524601024102817729329310716766911761272348957324167791414344053306418721876693225644695206987889591250778983870249370127444991520231865343100711014713440400037854947810419752398440498218188159263771497839006881741467892280741094031218737512394453981577347158123719872292887144294416814169392969891359845838547631776457468046858720262551065986788975875955587049532559434075847535440955692322745145934585785339739677215432625486085257921701601904316166124311094588293196348827872674299515267664701309774225265992860189627407309852297474355598336060059142242075993980337416053158578296784185866999488654917745340363889669436204733636877604791164092088377777796607963143183758424229037018870272059557458699727608275739185846874315459419687990488531074431773448735547294230614719623911896536372431985119072943266598421924399609556021480492695154958260135432224394294778996977841134534055734234577357047850663065199904165720985356982182772374391984135402281012956107528466868184319624643550082690729183419672474092790670191226256305398740121097158273605789197752448042163406694339232670353819744461105509544842771616113354120365874611480692097298561561274357085350766325830762831297327699920347835809609571593255314876582697121136818780818743043079531007301339381267306395653389619475724968428306028321440749909949452875649511489163996611467478297890055280358448126526395364614738390823311847872702080847729083490116761565453929141883341686759922800934086139346467074754707931484975711485361517085940706921214620761056030567215453607519492018630456211963872580576709348484556326463321635361523235804332857560430524195111248016039707554690192225104593034589383421401351096386784363881601276398835361628238145465187844438612493135212551789721442531318069881589014667316942316822964615501118141517803568961020278932815179207384736152338502479468633423728138536341122362895330502147877022853528238264075426256768433936047497457164179601397531604923136686498812073330515893539616910404861694587773803190427648817126632366086750311926377797526113447110826949242338375367043651123334732272294842657419221829054160890213421746461132553249427926718069569792022327054071020375258392688224568467554648183650148198958831125944576266521228486215121246054264859921137739471350254239509876788677388396939231196010436736932230345688285929803367449320601290228589129271623250698582999562311300076198575025723874951519669338824480125452051319507301347475699479926291248117053728044776147316792821683777305561182005234785964671746308504742384502952928317787751899760188387564240644426700621035670683054836084262525310113666360276257128199589940354457855630595225505117595086046090427616501729662933796203001369686062382816376534332588794524089660150635468469015312412295493046702426268000767329103033522140827674709892229464286500752419652549093670123099228516624723437174371290471767545909864285361613773986714663525612880547581715152046397568244145205554962400346555527576155036082876401142323950926047814846437517476798719312507761830207613585306142103865940325936393347084027277638097401600357959589507378083110386407627028042394507168462545773684350657072853491775504612505947775444638277179122633772948304602295557417697279394793307087209725595930120720778556292512746926236773964052901872887961028870997052736957889329631656444511004689654567700823365751576005287624206440201116837709911498455112831926210178510586998078243769832140141924679669222345676673806234241555795534505660994320828833234738827588814601434737632623897102301765161456091988991363154820369899433167250743618155071764904705746019242649282702838731377055618804510268530039435881849760193699147855508956570119672163758698460993157756008303195396127781621913504026571744506669621364040960945475539526457021201255599179410719496836998609741179375952184089105896423953684078734703289133980815373664409096091725389225817412062635122819356350377279852010220038423848961364121486802419611690709330550843413071942395119947110168038306162507200520830479068538288709515916651204830994945926966882804621005152202816565468334495654222848128346180336196771169678586979250247101782856961217054511244324933824564063370410397143856872999781062640459475434471027517975065026117385024979246390028536696328846774372238632803535324716195893926629182089195328497787196319734380450732532595885667899834700256795538648674438677362378216354470080053307274242956265943450857777310915987401259269227855777738835985811635538287885183438117659502767949308796284757447373344630532667501771709982928847257488550496510589152403817099062157384425649452532392427939773050751536856445510212022415878385506886068702357124964119119147482725337755029123128117068180220660725091497802236068672240955265351115926461043949847568240566836915971702689370779304644122812137894371169099607993616703166351780852987929024329443301865011864449661867862568731280659192709096806641034771631699744776149067750041133919691904960546607703523863326070480097062939015703647976555208672435606018770257788122645115247765338166512386071375262887953429700261678693464751032164833480956917087982672173768591200065988634912790663344248226503903079217617180958579613476261192124686114233674273408421287641507302947255808199656915650266711006867761559296516511165555489886298240160582745123277820261745113783650163179548273103612496635670439634409127438071830816239893124005908534009748473248952867463929829737296277855860963986184783353594037968138550147702269618438093783741444349919897643962489159851046184669142119592769369775544495049953852472016052865894019773794826312212007347681171715443618682466666265763134243105595544050776661565440603981845579665261605915821857459688687568997742476968621861415723091918711618469400671087315458776857995433367762218417982501574221207772077616798744921899794658107883475454320778393510407372619126976334130408017046907069232232135046133877183566042220977490257802149692404378672206206331237706831584115865599772260812211126712447199923876300641548384971802908402129167294333835044860283971387238454491831998812056507910542113078955299203213239886910767518676431793020654539268303585209046862862734020993485421642853699601496103526952537097620870181345251934610797637009162028564423846769983776712177675514399440330318009253226567443894141613325786234297315959480562366258469158174212085962057380039505678245678870835006785307249680454923795240389290688239901406882484748725633074108022277640317466160886754956838216140137121920981041279162137949674721177298835636876731687375858504087044413710045162574353977773347561793097347442413518875491986556222816492962700903089618078023810720299584900080007428581398986801159717860629979170787585199585990045769084941795305360930579731477548935657150203544824318001709857351574749129247664740896660009123008628458307486592101432554039306658540057171586973400512177621726083280390393019532180360076203440709133544749255835858500936485544610352047352301525369576261377372378688168465968330988355298105332147914297473482268782387575052306584444960389796017024350131982762993025216644140917066116897002905720600510560895115848789012738318185154303530806066904400081754441778017619514185161508040810064623962392750234716443751903964966005550668148374925197553882660402847155342563208942856052385648919876576487686093481447653177274087086853398068189697145457341281595023693697822098613447404601997857912885277844563920503752945183264708596035825215880318888406839417158866205511781892828844942810411700583647384482833452003749662456778201991872106274365331221185937986723807950192744172522925939863974202987879823119608341792255150156421782047356434442921576194677515374428048410633480445931971844866604988544680170413105215108933068763565793097612777189841339563486685834471285503117676461846872485420386238292271519972154497532731929639353858175663238315119586016637901160744845590016194520287508851147201933936252178778813378958257999873239891475769877589846782794873553443555864186852935715445453411501510572294172435756682961076243105328270023422475168164024834977334540179517133203549122059855466590910638781284092101120380796835045097637934473403941710097535197602460918290564310130879075365576807155097687880223991669422157796484101987093440397471468049073376573916916288872580674509612448856445429633340477935734228166105755256553337096181601503610385305554929604055609501535665067973274631108495252943071184961699762850154942575420213532266226050486288763853473100620993101546368693490786425799580749947119206637294844687512836629906736373836050704565019659775479421779693437289952006209324006657285100459674553518898468101138027052487078314988532867066079011717094245545528106658657357179427808601464146750392091444007793518502765029037909017573977900063259518565647652777987515803630813897197765042198959463292235243930866141320993589991034580043036989568531882540445471525438856961756714244159406092834745333812379274643418812240308931094402661280278163629819258747458808861425952905661982892285265243734002673540213857016303665189995424295873195529316186940027474594837127223489724055355491537498960798320706116386653251885140679001150414510668725064701247565730756893728423849598345082451519701673926693517023019322504721789507928564111589336886931744293879931529853517257247728610048383792244185704007845273701147939180506030699238547491832966473547896605774790478745558439167396314211677163234455808771666660419760055967834350514861077420879579614980041183290600625808510884054518914816150707573800983479409097510305163731651208605208288379192732224529933267853438098147322046651720399987845776080230786425709954730027552142091046407561989233155930806189414984693018033962483308582014661578100679631780464111691922662882051904613004391633504889525195977987120565375140233177270614947411304238759536671475871059779455194471261993836084070796184231089020840767795746042952609728995416951089927388525318047501403284706622023186049676648129388538210527783927185532644337821731975139858332705749405879088240242200574990729041019484406571862079932836840431773118061640944849539420343957136666877294840771929347850038223769377293763535053447470275695417665307772120232055902605895276025882906401997346684258190185075517839398734296454932172041959017769499750015649765898514580364640476297278479079927404349372451550264070157086799764949302600793723266428710626945214734052445923506460309366823670200476201948834459120948513643776984646324434749352750027683322410793876988431369975239699166185067880646869211398269404485784142261351780305046523997960549668847522938264520421729682873382894394107464087853088394833730206134949529232364285286263913862811045504967885763696440958470326964039786999909000939151884051115192752285322552496157907307654124388469699415680399425723715648284504363159790541768254128400237917300810157618812454358569404392355575123030650365466773920012245949013330683035952471534843898214382164791242368656091664232299299901989560682999623457314366937745990623428328318192178200438910703887322321953871548510208104778913730433116317047617031250558299613508837732813326505345204218800339889577210247237222412038104414853764815730887389395722161891257312854720667594023844629012604931052913006706729597654300759762173341169409823707866939632067072770502315250563952500122400359470715799229851539258123451303687648038635492598521683086375926484605155932693357945618793701453532875638806957624495726305340278380069964960600894437521146384536190818722441712200414118133866544260376041590395931930963095912839028902897743097750350277445466301383272855945958057107446332736446879605512808839468436970091851792886841735195111943844956861527606826919124421403166444813823543353132809591619010001618649090118300851768462492400039960585457304925105996087507502054817159949676967131549777081161375028841737973883294739696204128304024297183899893056044363615268462956461303612090839343203636129680882173180535836406912938850125741972678365795594421462110379626370227707558884079232680821966423997671773240518480224242313387623309185288707078826192093065708230991642682635696402105559089200597652414723510873669336649882440361184243642959168805058615225051989002360827859050351380599239100837267748133807756251257297758596210320054288662607026645659810850798066448507720586211792970213804410438448200697823335561613041410203200949996081612735023423145768804783231988232773444608518545581772068789329599541478600713551081873603338038380514032743987588713068688677970208015718760438992006810388019162109382567492333353406648990701874098485751371202010790085021880649789333786131287399517727636776082577992393392412604018127825077600421372585955641269692620492341599775534969038938389780747577620769493831265438973554936337620467197462966230385073402222257815598323162989860557949008954393454319396725755754400543007597434106312908395825454511371842056596973074741208786778277105137676339012315135944062473813739812418252917165513791280706395919847109747924065361505879659410118402935776592825183853599258210328906111902184366223514811173059979186059189723061170635034684005247038319480274830314670929025063717211119072087212296981736982405636124842795948905955971623681107404027786745671172197790253663860227671457096966982164168949976694011440338990045510988447437430849171400022401585115971943488682837560663425278893803828376069161851587212837891581073425629912692290935661659126641246532249099385438154468216087817873007567017172857168441514200116716034301448217230736554534929089184377829736289759151297971770783250215916218063661035542034481695475887471021089557793096870973893402805240540728831795553155867365705747237862843952943564941094651675791807917468784916803810020629253321317993151862091683442388526165113000728023230533043222607693255050338573036755010833347948059535822867286681080430879323194089300155112547352795349571563204035377272536312115043343337732289204229513506512253742175768446541081477562513304298095105658660350864721968552060185256416863039283622594111401793819544552563244690769767825237658692131923059224036422260042565791070846623673163625327207867972482777459272535854636887333254424269141709987111777109632471366261324201253717633265549421467962557142039047503101433326368967241258280323602415993829170256524897035384645585719285175574913658939353532382945922718399554738165426650537450867853592095607992691057290153528656990757157164004685624104268869863351139381233153105087251187259810516669487538907996500109496244318657297545575774133650104017017883568471087356460816774966576493732805304407615079667381501007583153060257496866926758339959673678813076703962222107299128422079278343288020384532802029975059125404778891676595684919534745819995173983270062824528975096428232129814206334398221219775985032127915597242725498632746652532078094930177535298101451474536955177501578465171537085195462379090480547008028114647126898990948159471746408962961908730598978739001889622267221107892209536422292477561868167636846028156259276283457926404232848110437541832389211303662924655162728145667362761333297632145935413530152093707977561889592916148540728778305072789090376877272230254549140306005597389859109259236609948828615284382953963022356478235024859841684661721598020450818449347148996281362297913773478785213448655175577528307208520149718646623604518717968361941941188657483621409529193470482686363603095599254443827441083765541159438285514247835548340271628423569484552022929336728066147836800101002904893188017301170071307704205003636473228078536302726114602841037610444881708684254631358732299203818445906459266468469867970000706188922627539257929436724380229747336160746431654469954980536483409069935100544032898708010978923062526639673990792083603513810224095790898421451492570327770344746865204244205638498563219430589757104657345853604542268519302638699837181185243342707192233316412710298070734847429033819157352117247365354637915270122159276771472257110018708863491009229272162729537524427046877138864147033994233636794323238731331934164008435765347391520869336285251196743903349593615624201189596744770939134632366801762730792636297844644558275309468391430091503557543757940466346105575474269734932409927779201169461691973678795507343333922271476488596209735747142720364841285176039066673138193762478977718098655862243753353217508184216008021657380318136468093671593979517059601809128319669790507263356147584988871691514500601248978223534881485994381779603386602354914599310784583310298646295670197979998259653946628247538330723123951454662684689529306552418072548793316384690501142339694160646560159952727632139008868543909834685972129973016538981608092082940651542546775570108999222717168523184652854091127120652208121711711727122745829714663281508175315968788401071187664657521980414037412815697779278292939566600478606451857545722773187923886291991961101026898155067879211518009604976612743947759485990635280648554710803517081921825026615014700908394834243223391385380698140134541692579673613001551828492584510163097960629721395111673665394083113130002516825435794791119092373474466242918128264365846979014858630743675195697128832437911632732986543728401654345436858378435944091352438492668655324283360044341834638196641262085562645365239685660528823304367542932636523833624496312026186726115033502090059056512349876063122416344912919054246733577876296272680683690858917630530370397387866032589489780166242311641327331708682057591146293453932456527254278345752657975122780419389999148075424729143604605206120125190626931690521948505717419185681284942055516175636452500886010190487466199528660312471124068806350639091979221666502247822081965095637486406176185275519277203714619260361302466105538815731885745650607696867699646776086929739634221504302894197091719132891619549106145387439665071379080561086844169963305722482391003640460908081544090908168432676047188117884239847325274784792310779249320309407587211667159258025102212367009611096809232408916680586142624099815440637314393066938964326558869860974025307468671856380314202374875682831089444496367198147235750013475922208938839794408646819157549530915467845266976309530586851194254295977322711197031327568431200134313530518853865357290102799603272173904716906774968913364547753332003408917373663543776929759792567052819333741660921899950129542699846607352852883385681596486165003529859517948454278947922417798626745569142759167820955000190535673208704029923703716610427605997340955247912082202693205685362966882571487499555931199257661625737183690149956010708863456601928621567029635605291356111281734152699471031228430350374259603045286083909431520811320374835480815655452870954856942944469181722299477153417493986325860467947623341839588384452151057235668678840693283939874021693727644042194458341406752315775857239812305383498827999758733651224820083918373165820224695297622727206736368196912472418708743830507817777630591644601411801011869710658302459654898996934565887159533897399493055308743267464792693173500104767800272062761892441794756297101015928426280760247423057492920917643808838268231739907595047434579588717352495751100879518918920515023365721942643702738080766803193035477985842793910330747297449961040931263778603068480452425702377886630963045506418862540908603325661537865095369765067858459832804001380050288394009328168633998720184740190824917164666197649581026893670349238409949821359919329707881205385416221609222374861775031595342262929496609946419450260091638864844808638247666776853011254041003202633669054928654549805575113788249746163159642752500488752798461606557064982237754984921391451404723150355098680456607185674960996996144022016010473728567350349658503275813066916551926380771710977171971470321648320511286069030269940483353938416209263975986964221955754196367468516168986071225355622229281875125268831951001554983860871577793670222520292965438476011041138766955234390569757654100927349305009744321665666015586512080037600404887639430013544812650706477596175569635649215577682634544826949765238940485182089012522508125609846013590994646058757425967662776952356424107161236224923730710007049337953941155138752394420979370539862640822783886433600140803213732447206460616238894485031964927053809808348978438989332665721513507950291426375900109293084756307963736920834795312169611069451000960832844991713271085994452448692436466701190354030295570672648327369589431111048918114480132745086419173778364391444399859901083892125486999482816631341588700688488205796998951425070913395059420763264757783465543008698904835316282722831580415466790105513579436008105155054868106687316592476780311681318228087064577298948411919298887410469395566764815582032554283394884184920823986858533363706860627758407164449342625292421538780106260225423930248230467582695391955626977253172845890667934383329976552204679963826767311585405840492217160451943433370882083496258626841084830387598812183593843628607223723259775999593139587018805659284281827364940699632364365168371946864969164335228966393847524830488554888197659999077657547557010859197798118856926843843642239935083605216080721163628848921998304322328000352966320681861264182565592565021549013031084287303922174813979045371400809853826417222204778829775534413920802420308798782312514930229747773070425424769407098351722750803420998601475533282556250202691160095299831020223292414280754476091782642176042799520682433834687509177742192369460721189334813530330350559371584971184357725995390367837735185240444752092301949317786406858815137417709610600764786494208754909475521425247515929657939409031206402621034152018464813727612654990163356229868405768130202449137885961478620792698413180707179175892532302395244694605292755261760480526754784931800889526658331757120548958229110677756290149820558863165949030077738004621489286866494078900900259379591300112068637603491440939544594419616569194964730448427068478311007884545852736900130126189250105595665539740963042511888457148964968988731864497687577374825267158236045464623057065792281476914630805619839209613107921196467066151708457965217982618464123746305227531770478751431101695946361733605513509239374288786717073336738287135260800168896400478163163557406147001094440210224748372995299812877636649425211192889392814807540820785545325464166761983704908516945868903500069447928712154120715243296550423609337446206885194628903112834441581042286297662642736774012249476061001813905165449286584748649712135013151807490930528294210575976995209698011385885815104304242156299199423393957560176807046447614585070823656319959526626930814728494462317949606653909808372482147120583848737478343835615843445750143429622777950817031799014406578370333661195139589032007630921771472445661285521110954511782180623093472798579610430840473338803893159516753536122977048177346626453639947906351084728315137978045716891577096215909514650485702300094277972261194607010345012987202700645997586330500134356223306882823990350757674515244554114170347148373351644995339371884751359448123430734350473913821819220570146734998396898470924497901587586770182419553649579281253554409095098213502373406986437441445327319863760038099106703798412114301607623889907728086198099701390551621746750317046042390602015030815816499737368250629279674257989885296424834654992168105990112238115330599355198167763982569322504623399571391432405773798921148232044578907679012781289904199403230589152838916400675501253422187298492389391196076654283468155444028017492007227212392120258994783515862073671976223110984033838672873337092494149186780536740086681145150677585199450193417961987581151410407974300652283987277270132036209293739206506401057930046797827534733668865945093588612190365147948026244198767532036587851055785979433923937129615647188985877338071315999420342843706431660218323200725740733094498446475023988581585111701456948634217916058867270360403489446333604392518794284407906002750472814773291703122794546024989516696588877880419423094720318310735836252031810354806247694398461500174459717252075822801128125783894917736141625316375790934298367150856450458402014200492970674552121990969948489119752633890491842935716670725518853810685568328656582341248836742977617136801795018617468486562818739220954432773672149426036837852825831574774837486661270007811058509769317729719083108454123980962364335549877924820426645653637182537288087239901740541591186758524356782785835064765248483022870791970244478817150874556545411570769744946326210902153739325713370662030087129152310385267159215197139198590439431832704173202073620689874849764385313933453453145146443779625518898061192166260806692289961904131327564651133609305994367971280403821818305628893809839674168191418680940340144590354045526889129191334942305598619408161215352433109612928103588680130720778673482549098996369224255287338577979572057646452467527007883796103460474862069584775390967460052584908023256221977091939894126787729818279910317866309112284954327623263459694918277393801073991466544008993362177316990288406750229948779418323599755657564655365715563062004906992560942888247458735701186389519661166193255693438241437459803775503593876833967698957402223398264258534650968772523711003453370671791238901643541534699121423039378762024420396509252032572245932801163465592442817425641283241172840976097943200185286805118907964885848783435135797720588191690493845725929304019314816202572114390706363029932812704794189369200147915976334148911710695567347719416086994426929219506581843411356071497140611924739037940332210030376501726638728289535789266556005225548838290539895534759239050958742692445798868288840569807560207872013496609191650893939239356937259524147058529157415878825622215005705254098503417782983122833368743088763934610296803963147671523152325395945819232175706732044805818059700758261045238378696093812720160519020647066938378845638518352988669914405933587181055230264429963393287217630921650392192710774283766159691668360980188637847237428640618080659216887166957438243685925479709876718126359556393189400864650325562998170522218921068085967106315082783151116686516381259360691199033638484839007362627726865029359067698402459341980873249857183285197109469811168440438391655049941399843431090767089185215777279498706181941645141183761884575805034376333034061095845154097995583791226110839637697182996908901100659370237508512600878471103592926230929771517735866248473084894889577268336482169865602652337196652282321769416299733768802481806695349810265758539338668961958947474859210963885853931035573056140150030949935539807388060167830463423005657578876185000299856220738116498422977466713653035990742264353420916251843101507947459272597938433082831378661940507586078634925738232623086455408875383106344287369998610378304565804743447523448997908487443923862546960235645188811904073967111836177687839912534246990203072206275814167204525307662899790727112224290268885220963729564600625430704420222219308233878301171138604229165180878134691064407475495713870192198396177657564024068294035404345984615601125107662011997753203966875809169796722110630000465659001259728468564318511243426946992629572857738262210888546676175756887537034320602609562406081673136984709018252961806514122803499100578839869610340504177554101549846758561638329193353211648264875309383656626893924058379665744889749586231248758128585493426767761275265813505098093950055633354913579507990643524623374120399823600191857367759192423940083206217124515067627132057463702230062789869283655083234705698734820931997057375165991780633416391953279666349392065128144154749053080866132489142696761850442123937223770714771216781717469694791827743620513963703380914400695788805594696540851787397006922012941571030656090568579865287292360698166715636689596334715425312918028801405824830258111147581267641011215626412834934103465003489979090454391992049371992735113115345304611476556251036482922822165216713926904158662937172345752078322430458407839642782430000288655751662714385561220704341354748491331367264682378798955664863625128404578982172781338944483409446853005117565317427673484900129134905551184421681984149118187811875025313422870171130809075593297523282038688133312133615568527611262381515618409184943941052184900629430775505690638578291321533168043184071438079739677378026528425497130376938195201531378131110230892719234429648081331574730459480753368088624997885041071078273075442787483166889438475607761844891457439656924572825445969382403770672563032559373542066718327583186255232543490275964221613457507593461444173131529197995019945361034400391481091970216682053114243185437254816753775130394610747002187807520506373698421634541861621811175737299346603501791803350041589372355730321777229574406588016121477464164805380450084485755086396570989751910911900623854117685742282038317011068128241280177173565761553373654009385182014308031933206810198185892719086183079382666977712002120717055492705649094094632980978146421923949050332985250605383588635141435566796863977966263215044716479177791810577295667679868709652516396260657081246963438673696984915511430385562819190995690657774145922743490686063767941951573162403720687560333597028136819101671940357432346808298869566473810869626062399311323276460519184869410589694400729394733376612342428265115116420911417647782757396439402255108283700810608018156556467819948350080935763557568263710579081872659616749321538927431471842419380760583708811778111277273433273441836024895168418212230283166134526539449557300071963929771031250388675635572514735362314160231487819629757268835963685857868023394805625662088264067779966743015083220416766261209845842944632865888170197260040262623247292605984284239210364304564681084914278439346771750399031431076954012302933413487668690254495301754564787649744226099955776252331240579889715858915901349553098024961321302454858337111184941735853225111679897625365829441726432629571377104708847766586440908955872374937556746808854436775890189676810129642843273292571094397737640329751462968453727164510959061353546649523304893335556189641994830432756287192142649374135539956835597647639822268759842589335070838775880788202844870947802839093291497997805919999068465879021433261396052019674336315907867410317617784872129765555624666485509012204649138941455568791921961212453750050970233317171623467714787674864510331892752192831924226678062170964116525856299883507537169920973708666692127015732859367881606016199946912672481940083023726686204348612476443708027418955854642062460481052933531973079319753996456453141037623818165358325737722550821065380194099001972980564390784109420170975098223017242005078860934952193098164186305604559628470283043501400448888198775937103038113859515785253089900213973066663740950387597402784900300123974534821476976726686980496926557067428452284450290372546138509670638862817385108707923731826874251273541937943823430448958376571211373610229869049610330023108210672257011723733589515254286697701827154204307612158696066796138065002877278602231888544024531837993853627821558260355231728880937178776430801491991911856841675591942058688353111443308246223510817282744774724933971982981972531433362237550990904639836456101468259702542333080745805000622962907250945691107042498521823364621788993267630999316247704638967126867331821115889445836555076666485361176749918985967211311176181331071687860575376499676283572936389133079363011386877023334682842928030176580115113819854490521482261079403799110439130261863094458655790874353159049078682736183909538530066370426582818654051282561142662297144589735232716636567202764666514921229598181583258585065700619606947387450141586648040882792063416916983995357585159166963948814873135103446495504463697757806856977549390879547665821469261442004228056462611314592811566956345541212362666349777486416988880572659701876438063551598215758881158612470406741821183486476476058843993626243775730729035860610513408221835006242616070781005528339810130129309556746472434801935853305565246158966080244767667994795732726366091360382197942052220950186839267505579261728788170578499749225341914868777295187145921901650630455562220730401716979694517708341909347449493618654919437940245191022956116176169013458134504975598448820785153741381832753579616725995861952392425586659960677017123440167350422335716051817217072749965822202138871392084161617470776065377079423759466669301726721006945812719624269309713908360128304756506569344942189259543780130335117238473333990230418616259763287975197897263243609126039990292878121639877591819660956506765616325974913389578695801292530774193661820848888340824023373792460819366946613124858535774991972414232885030943927319163401059953640187372284231422576469484034042148132202859691902011102713177658822080242759013646391889880086553689813985785361689014130320218034648221450125279580911406008624898138301546824368410709584705624742238172094070826563629782733101755020671006471581263361312736944065815512248597485059045372502857151215266095017913081246951040898581983439624521769502637147575989693700139826217422217200606190262020839720038510240681034718248743982802106459253112220718209442765994925791967962357553060779765040504430291521330647774320953315930358470593607539703147035111357486346478931855773882337597153947253443294658072241797189637458313588974953870868825772624312284072680008275780981440431548050480349243989911577748904792827476056019014617059505381779606904535970830448105109858373175613694386477662960320683767455388647854240658086390327063485774780090335443724165139168270206107445000952439288938862255774244878708807733993220468949376772714074727590648563699089714827387186769388350539085628280642121535285442427529624318602927896180678385820208479769182136640357335434229038891365217150359693309966948255765616026041274341758492599669664617933973192285311195394614560114920377093711031913983547784261340758179831042056943604425130946385546808406494173605781701239320912336122976935432835815846965181963943474847671238484082150742525489091932977107845843255812037437483677026495569660934817734843038415196372464593557149747406822768558743797801742721988395678709340096079555079086473713413965341025470312635275635988455643329442124657175782373074187516665302216085303758291198834891019047872148932984724336678233556632809803114272535672049018119033333580658271507309005350942646387779258443462273950559533711407920946967955071870467284154988132332001306845748281781798423268176748861902682174912794911288166347261893967930942277193014670699324784500389048044735815269249636895707993065267917422121445156450577535932597035753799159399865314215580136367819817985373290078092066654727516353249518120558585014501857268723921115589402066210816937886196599596885744035124940424076891124274800002833883745749950277438092462727221497270584867177677215392728175622282005080547658101600518784422642521559982059518942694627643681839837967186173413648387928579069831705850199694010835393459746695901420145966442106299943250172093683098784609813726977118579837470371455512176084781393864093563429140995004807620185607811651363755368300084406240445312819880280799839183597332361892818975395758590457034539159997453438293880676031745840648784169917505014900537703029179307055977869066542604427891587182385391805579207325929359684534204319416285322600458270143829157517450593745417391988072528537432032350699220301145392238629006364600060104085198699278162944719051429702509797729770122208079031013703843671587304505880129113476422792386130201107140311497818350834939676664585107539195310952567227234135398865144552274367078193380545318670521840962958404052378286687323387591947597069722896926173512194795407541716343318848844291872791774097187180836932552140402535542154613302274646802746686715277305252432298892361913318613412249128565597203489604993903672836554183234146674780570647833298068222790579958883979986339565031746714923890927962416982878462684251408257850519195040836984838903826056288332543668309487698768247125220311155160784836528109058532404639389199785919325893094102032832407525695383539953059669638128539177553493228045570447793601750912533506306673024222581512901870281248075689787868786179440842428164884291615525483834449610264110157907020774708409417325548401880775809460727550427814440487300950232444214089110899178521111078517431337966840888549805368925496273220239274392811347487201574207284080061587563269789029872861749682795013791510188176219255402773368385727406749582020551364803314220410745973309441469002381024960498531548018987869021363432828417101660121007701412928532736696967414689405370417685825208359512722484036767993041501749664164493589656338746572243234303020558817184505844800832242844820058376355757828987140506440334928698117961536283295667846773588937390032911216861259575688468613538482578167986450600179802517735984930494989615284019901058292305371615555264041709777892294939003166312780540980408127658624283648166107365201468051235567627212366179079342965632849075544611280248042158465216337686146106616968007686023406020430517139360336847393652712638266105449797700539124324770626106884960431807862483506669631819194956143003134163580816230562953847515173001808271796975032501457579509480681036450937462061767403595377006655204420467115256987569699849372120622888697529176608223547869127411120300944015740526676503146678008029474892491349935927283194558389121975085681747689844960496279674209945911692281053604874787637059278640570313610847935185736919626182626577661814702538826257963065457696531301144789011011011786606138902299639958369095760936130135161224228228387429341947606994850237912181574932377382541649868428192763703763447264619188289198498177401978031783835730320622569180681243592177865143008878894906604530170632335238321611171846405784997401637183829275890814566862846240119082206991368906551090095279447015587893383030588491966598830178691178223086273180248530785940684738778199651912108320587809390044682651225545586145058616137097489775708772687453831745091997576240468087102500993340437899640783381107114317542476765502618328969534289191156093349755283414358717426282582135606422774398064080763185619992499466609994295334481445034496370962384702179476579834728187302215954553324884340940728741274224165011572959834315090208627890495645275669878551716060888138452852658375110465598284437990828236458644459277007570069068429325665612783887566105840376070726427145352118647494873310897636028651571220483391195902055927623471222753649307101207883681403001533266677127221239200184966156843837377384616824735998634604071188030678717760694819453781806517119898055921464792657845963069768173413628932543297182900041583955219982697583628085495209004835392346263895981786559941181888263873507151275283841888860062136057180772622192082725517253078866357711628455426949835681039713746410396591531058714643660678750265087996509088142863052296196251349693522154492646857261846595917282196085778391334869534980087223877702909958702091453446435769562061487429798249230959333668951257519440616340454645791715931602670990438175679287225841996888514833686935635007053702785328683540595652094614481443234055878483064676100197852206428813416509164734266974302160655569545055999579036078704255400165782311701718734231798680756865772291086906704911969370786468157615371507346647766312182286886605270921633844508299634815399292352041479754718341968972612763589561028190773640745233949954893740389268752272502176476569853564579880916750297004604878208342916021583341495677118070255007263909546783751978147579660466594524647946780914396797199795298766212519345251899475512652309123486657539850753348402724762743235212351228145604307663176337363596110970265060412591546994005398384590513997636527014407131403304348417462815455168987679293167216267859660429507589989650905320640096589255262275073807473464287388091357463954253272411120043726287620963640150083464900184210287279868533940714830346921117905416025136816210338127520444457072333635361848073398999474275327215681427350012439696217940595962020600433140544061863998577528804157590997488767946150632000338307392138311373125057690530162339511834438232080081308643177750946315383808940441890070184788832342864101142075937089061033322996979239470447151564169191067639143137746563060140153222948069549950663329572424111834541979111740107294686511201044277762603287780536318181750546711341650905579023603583825508893668212245510936365135344023951815507970994405826739156688206504516601117607898681857304749389833319679452585794016427286438793865062755733248749406979135064210346011478349415904874260996094918677543480697564419644625230139593550584737808587451942302282410130618214792832987739409050776838867653100508668875911092000165224115096355290150293497829687164628445899256774779788398341158818048554180076244997027193231473364922071977045063168625556214215827177362895326150006456398708500981196628858623921879222427172679592274530851326625737343051962029071869230243621271282095584598389064212660031179460431196945221443199550841806596428780684029397660100108703296317963494584807302960340399005554942836957197861295005861577035290584839870837025477265406244737848645792065203647177444708968455302025169374045096301441266393932712496647968980598316113368062957593160803365881214025047256001650866803162701031793261621306628119100648591730063835066544696763795336629747921870064593873563338572706062599485283176040458571633268702567575333161163828683001679841076900021894978020781321896001411988294775887706841775266046114938885434366276227231374566692566243764364189206396447893636643544282603557852798525381137767607928905210574394540281971102252867861311456751461718311625212659366990451317741372725894218908182541239557913029149791289319940465881700199022169823109385826502327809687482048290288140479805633880888974034884754054550793854203762345144039800105432005336038864664362740502040499744423474142546861346205388788256501273164768080137680747147572180402109206312399704823206442769440967639348240816878849905715748954233728562857885485879091386427115514460178113133512906394103430028881331554755768190880786624112076580745524358337136615243261620953612221306964890544791387164715483430525569272380580783949123176570028850869097660669476645679612264825868240658159055098526331382663515226171509937040951169723411882327415921061032105156308062082628599546915790156681777212911668428518782398082378686846660975238382829087166258970696555998581910467988178360723401229554913998908633351052596831782718056198633240960905607343089405491805811952720629938460114184027013036549694007164316675884285308198907484470184780374974547660699032003991087472383404768110756209503707620082823967391400012425045490381621143737575466219765880111392027463269463929976267456894594136938411231652804573812682953778405915579851066542660574103622345160785838482175329252445088919172701294717575556936175278986800079606372346382643753479019730374494107130069157220540148528177305029167671476600153657513153746612210428629476726390675631172322849707256185850310460674171813080197831588262249959671775504126943385073018480904583471893981651681814711504586029215944113118359403836149663531872837053451821744431512104582296693364315946073906575356706814481019087774178851075549951966539488546994189018235212394652208274180433870256376844254787337069812299028109375244361617581270721577095852607527175486724560742160119933481712587591907677075341778262002597566037551132642731836553313294558003423165820755789595765381413948407140631730782815260904647877064157524802317552748549312521518482268733977786758792809431700604561918673518184995523076034984708346096021616478567154936711562783647461788821427287309013154782461964642762305948887878069744524422645077203258253623378755922574824559944555913397381875563779275224717130450612288783684465774965110351665230913150816082382181429949709359534858885382126473495402192410829994448493751885932141630595723072833404720543271170600532787286182606962591993769411551280501400332401367481336970839406924721013256274433989734660386421001030902495637423396135622399437805983556873397172187192185472608003586263031758704694638376379809111831564609304813280279764500775802011360922506868401642729452690273007384301366922978528930616929367438709114220912287047813820325493597629190189475724089103062176263468014047529616044780480847835956247602875897779474489609386902639577562679559186462405474525119021501757958500064154319159149461644158679978998659932519563306060552098080156253450598859876607084211889709846566209756108713845083990313841413817906120341965977542072692892308775094811760927605955841799286945433055648601715161021248803618392354302572778545614980342889953435353692880453034544097885123771342475326027139486240537043959660628401814120792710288463851685405444775926039229577940140240079616343763844402461177303660424316560101186453441474615517571628792513723839273329568170608166109930833957333871066673480599205296645582223273247667228863376036280062855615100844764256860949194010500475931790592345908328182204415940950525282378803527918674834931371289149681225341681252488824019695148445438803145290598904732427077226020577449072562047645960831042657934763386028015286422372610741736702163425415733681425679558757582944026118875778385687214834660824915698772321450568934111438827015292704685450961394329289936958737458346533254610651913174407370930696770321405980561555654841610334949201991607483828361913331443385643986943577011371072931352286602227728190786033168898661723053484857747911060185341537745111552059372906291495853971064637768700157150644873547465527211601504801529666133356940714309078083901472460291742034652143661374359432634309089165148419456298323648781898141229379416032715686693909492853772048057678037004606427939560404540661606181059291727927530619210564525023931519189239245339798533913098434815073541842522292801910664571721237482275880813085344842541696900443279757390967083496469822141291890009671650941036882007810553905298510467140460705848704672469618754765396706214717823214596907629837988240809896916910297303294125763602065807107116348772810429100209851154855100824884304700014150006488220362589538905242144106419989125874832082520217476429142626239508859980610497457299925242505047502264006196462173550771782358921641308199135205560850479520984595089178338577137056053428434453181860575664320289887380594189814595161119591852877068840231796722936957645582079514002857583132983310384196303716349012507703817845878054517014947244054189768953689778590563403580529422690131557792929712358312882656416417343999190703094221042307911530580232057984456311079411782846664288564330641530555417110215163011097033023315610729844877288858994692129834492364448645424002675911077142609646260077688307108381671084552007774056060638707864659415756572928142022775733473372000114609419554038830899916550804784821395355737380812122964279887159763537198070491664912292205400279684750006612618836734509575153888542820806796339218905049721966192654418555723247800735283861969786837645844340566970540470561058277277037340216234992794029582351703646020004306059630972609825802965718081389085979933279896982746254265870820236688895472441710959905881614236972389864509415583252297903244569233330956214558957644981020412969476150630536429778889350403018994814328234870935581310402336300094026525469512681887295310931880882006801117545760251972885082568311620736049236177210591856004648435802984132032426545825191573941690603654513432750731080498473188511229559376121018111493043104535877365203713970189896529516074762487908645485834771401407988759525942799348197674580464802628349807193900179596452701288140957667635417999185219270981292483827388952411569106769826744794142853916352254004403108042289396059717705786446113308582869229964303191744130200235818364206253612573972648493710680164518191940052947132648270113500473043731232141256043361970044664493797675163098073757773114345141815703599775031920762619719766069964519483608737726758799698782563176977044301827731142136650101056232734900452304320412514489170184318178802297879122681746535019254566734046804091449518907756331887696876857051124317194816283704926065329959254413242142520061677682023625925145792152640245243341307632112607214132962450467349187347170300297222043391434050979305311518889934095033256529230033134200600889412131988281451354463298115255786032458913513152908261963438237087942356445008743662272639448171669503188237540571959255625499580613484948698305869804750177301553727850292911363039340741520490441168222651544559819576516011280203608108826576411708410877855986827293190097924428095313504810822711881590456107601531665000363594100565960616889420624464174647168769783148992719789015494554496388196869993371650428023044328009091936733995057002265673873217895031936786984064286618918510877378913922809374636376679300215347465685077718800866506104779862005265415608884539182876646884285289856908613139951729421488485226872985214432925045366855255637891879595017938543105169517637351069354479536589616229733548992763192961930229013028703576752216553559167298999544404179936347140144544382513786929925066092573943175125474348949169894498378674477211487149906682000879367139453663138451693294853131926315938701455769381416291072983092161279257899252074934063401633215120356173267482858374322336888857598945217840090898596670287248360749489884036070663174686419442680580849210301657188211504707267858726758207778613467779303514327684646409854169483894290368559463150873859698912211786840243458853139611287741723565220001319913457007748222487084338324777181808528226826773511920572785040591250150608631816718909362920569714029632841524742086938155715799151428698254961731106095084874771754600858958085845077467209053694569061274895482125877424915955252973064786362852783610854647783413580529784693932510134413032137492985171766268285334167614840666511774925771023491808200534223542809351258742501193579229063196187568112110694132584184874123379319353454028444673280688795901614499150723138279819810775051659200931100425233357679782473179685654115171932824974372733919243544583557125637604765219603622094429818504933251005366634723941246099285364557560626246400892234135478179444425319639886406698597946009430368345752663549432606761860274666655334497980533322129096772667767875353964250079891012292087222750654524770218532000268810740214154561183913111804480998112019360516534452918539292732679548547104762593836384452754741740994970269920706223472766719004053453025510789084689834886173217289331335996411652075536883338094669851436368345477628562471991502520736503738098601782918452972645442662256849637544943551522452531728329547704966843656802874705170020182374855970803593739685038415625102109875039257701068631630539357103569584500164934932410771325769084850264851420413183442305810624878580617519608130345618307235696477842681985447385299914220346388587519516513847416203406612242561994501776391658114883399677410297950471561500334489289950958851213582729701806756424444719536533760758625584127933980701146647607352080304473010772260583734046074173398131618259491372978637822548688905523513782138450329922644220360679244610834969786765001001098962263414753905322319288433227794739754292662587127326505358454771759123992365521455406541368102688100389765831983581241262428893481051836596031061765310239185232349121556578209169791230436069125768909525590034960121121842597427489487478057014973825026489434921380798215223587276968571114681563527385808173970830810472420070456270651509579798005088822347098014976701871540446925882351249247934348747683999234847822133727776916207614935754159384130802831414066419708124304770651692632963606809541468760296655987515623780888084377673054495344753678325194568782066280077544917521250824412000171613340723457864627905089645557609285713729537183161153266701853487740853916679558658947451276713878571710447436055458870309136956123238327043321325775652831871676054488044775443854671611621805672394048874503545323573672696200843951805617943582092834136667030906696433788587115688150344307568790410981003323148325649496553063437950560104339548935471307913519804431603002068746964988511165168335420106207082126122149376595203075432318360234741579720596306905390861165269621918640704971402439778490253345670118930514643233998822454729347377530444677723414904464319524301483708229795518143563375265229221614197900766079716439033280869475958094794511420099192572999502641831582620384116550182240282805792901330560773086871767368810242101883646054826710086384064112125131219689588021065386146923371268580701589277443215546818639504434782489641180705078487649669936506933193223912749327478760570485914396484857491236118539429202814339968484721870985727930952095848129665443541779897426061681053034267772717042726828519464318261447595678316300913367136353700229639682421464791630274459278676747144803885140272621538605662883845318119301494183083026324735749184320066096339030022269195484775554325857894770693659914800466466194225585236160584216040771422759281674449380352318183345197647428081831924662823848424925241590946448881864107477220614325985734246558085853641452912999863347619938349993499683760326414750984169663981039710502072990805060159708360174071295258590875875446569087199378890545267690338981371618758732384746553647555930586502657386126429467730558707098256179626746875266396131663370595438063156433007884997567655756794774301394876407085074007137949615865566923403612542643732610708121318895766319461105276375848817440900761869609941010481863823658927240876448521949936830935189866403051317916259643590389295246334534183893943544564293098446334390045995181437208135875682964100007069449434774470116151740491049216507510748822672245207470112407666497391594447203665004473246943380171581506443657941923480523351224749922033949475632357039143647132403690611365075324426208744438152155842500022905554978094250895239397846379057579873382008207888371816424787055697999789444211392514594403912535280386552845469896411361715021668884180842647611718516735896711253935264744933077211685881915457607507844724585000778981173687708883403689896195849974317792972096579806269493329279084303173186666684063643169588120950370185118234412824956455675964801883571070643746422212187996115109141289572440300737739311052368997129102991049161858063806811222558900974851227567387464125309950765885966329612560893489509134232930569276507633928011388840577602386618307190861530612689741395236589220360276511792690742608450264544397619233800786533147920467513744628167840655038106024261572074708929859809634487235740823804800402285757069128609328236719501842533365275174738992448614891723702705768522070575421274099473939442179779540946501037106395428228684778405775256988301480240917837509706544092301073487595324282371112630027398331961858986502137754734513782920587727295141635044591790672824819795716506145244096080150601781910635127273673742134252990537293631723056408125340490456149465937081538894853609596544651187712944486601223319613932331341037877099884307835575250140798199458126062598419310764980500660053904510260479569503624688031750685073498064071616847464526446479534846674045120672761754818428218851725907910533549485739619277742326621656147357686414235678504619077182053973700373403247832755019331802435754256305399307846168139078155327846332110742545733077154150606817473235327753258054374953942213867968994937420571833089015612941724721576984085298978531531079747690721152286885933401388328511358257594164959550033730873288503963562975376834778547097497057453186355511562206542566571475205473681211626660402920843224086443699045119038633648799750769851293889816081036668299312495380184092941641579135804171268541805426506150663127795318774602615377442444161640335646132536472719478571597513623286144676388530279153228181732962738257207793609293971341036189823935274437225452513882790131826029365772631744842221025921005917200591220149118739938208688131785781846824179111874782667297728913953430589124255732510011368984598797232908443674516628553046388105420920439828048768693894856499313287547971714301434220364227093985031929103602341331638886145216699935745548939172270353806494738353908506334146681489999423859053321835889287476283583485219344505835092165150726742956135017116373779806914804061813499885879183039783012137025795584177716652782380389908583069649963301238352880206158038910199925030714197012218407128085890593412092255616056256708140300409760841260842336687915775883118328738528280385551218872505131004729057944928196301729364546789460099426060479391451699333047980385242717000410995480097377281587271940137530553845314606771575888749749470554669290044108981225499058708608582877377249200043721588976872677981765815098920080064249198538953647537911387626410200807102062575227585607304073356211635767237482250602438074069177706973912968318619578687706653780308909163561157161228308337625161001365672802377246116824501976096039529642685285901480469688847896910341233232203333407478157137421085985898487964186610841795145397495582921605043265303070611925670550859738892517428189631419695094139153608056822633161442022449119896485647440209176323079395856859193631114590838508437781536562089153079988610186086814560542345831344740441798740496970816845950055042879281829823154073657356752115698708687416851646661152232059496870684441109570204516376601544332761118954321941621714260651666903638354313294447105555699987332950766375291724856995858058971843159782852650225651945607617163647811823976460201419159755812660580224253773680393783373932171600659896868201983420567083199089339149606838254569143245572628054904563622526853184452792517651114619159680585289641722889720182939158749818192628875267299976824228426308368899050461816372597056151370268926246933513814928979056117951026080181425900923787937840533414896202217167251734015288750940860144397345935671034638689127925582806239610953129333237398679730202251953816482503432002692398530759569642911409948832644347062422093748521168416310982639337976731054066761313308717669316868049806556143926007055739231041476332842893021406827928885465618439468535941487390461184710350595308624253130771612934418457775981644445405562906492245604975167269563467277150076777464207919190298182414397891096039309310551030334546651754671967802860323316780714357114324546415552660083764611102614705079177457667762536504014128241026305949460290832930257618499916968900891041653850722084865243723720182714215028909014717482204344140024568419310603349331327959878941743260995960145317998352532990698046743547606366365100545352975853028984985718956865699953034961496623729185204441420650495817740309332536341135177777022331677415059174562496981850039047168418925873526141265655792693196167992916800358154049807636294178028668465526814489080781086780899384084680903206392289696912649078971804965354829521477854271801627409836974719282388438162816749382752629178372097271569009135251484919134296233876487268162647032547820981329409968119430259144129122542998346325469642657969632042833005990631947365806232117265583018713674090212632806483295922788021532276824033846869306810417955467504094551979422969418538030370913900640507443471252921262008378748531756862586369023127972264664724055945108876533597899599222847419862426276192420259287952991505664241549029679721655382159788523681450489499774924306950981388581371995467863693928351639916110342191379028985100107589670896922824618951246312497574909651363920587642748916832204071385919202773619877817806583290229262272781648875792916342740726952674659951973956534708594077195246515785575716296826303961647577363837395967827943898162598281412660572794839303670740244885786707662732401229515415550215841406338985192854830745952417353947847090125782603075205324525010717323826592710687208122582171441342912422618367381551798296508494794493342225173477060507766013221245487117571338088880986295810435171173392198508872616216886201910911592033283489030313747047781695570137513846333532055620163398870089938266018935413337246518456205529106289714777016790980548975116736391952628215180588497861392525456153388579795913592604738329709983493216832567574481778990444950126367517181752058588741834330817027524886828317858147169517126174331218587996773279173592850186779007668962692209190105498891916235443963422939455592683026210816732393960011934613554969145698512010111470352368790423218516081084597983113533749311241777473876998024376560527763066598482811296073861748009138395023177922327860020581065448238363028803192789084901617357377366177003509612944986805380248827976679088442226951733264359803596789258277588673810908742357848446293903430126688431266843081902499151507759589144943116665762322227641198427705888399353236134136227671298436019108156429308712463665603346983293872645024809431141817463171253421665446529048390962366002836055131264214392913582905635063212645917277109858736766151962961653401213790764872122865047987546871137349837244521504034331139461567819825543053830343507419731528694126866665540691637816115897044324204534078805858801732755957622937943855020975108374634915104289469004759389586811502093359802439554865144783436471664517436558168808335682238451089262050970214520919068383093920180713766300165861786308859090770586609913421110394575419568795941252707214586167061593776240807257567795713222838459021515322884273503213052448751014305074204926002702978771280891643010861577166403390451491144792922821862978070346449945991709185770613116846119305402414495991629473733662370408005791265907501382427025024793916485926830666333271809018837450331985504466994992938558203116630324458480962049042153601421839314555448159204251998693900319771764954257717243425835366441397781442068963157069469677951007836386478239533754129640367685086247043299400557527158777700303932211458137625148720431002598238795126614495207758435050277626193020907855746470189197381245186763661986251033404017288933247230595810312068996185017302662284074352683386056191790353873061121384097884998942195502026283809763117522450928837933494785359815361983265521608177598750328653488389756853864186598206554839333741852734558627194201222497046770281026431214415042424813584032056703044501596724932818490945618098612986873811143163806830902009906248061373407372292970003891943545917154237641163127372258188589698303355873873403597782423484122827010605554485276083609402482060819837177017019264676725038730789505923117851046361447977451497282177775754405846768989749309195582786920125682182049679354318368748888600745567639770126844008439446388157387391098487292949245845685920412958621051590825839784406484390018016874784549820244349623208598486560471201592658875228200002601164256920544554059805596669116844545798386702589613335422088890723928126399436827050568187730418873203853781717565928628925159904866189572534060945193825912582526851756511170111528732240107890607853191451314992666643028835980620982591085040530886087737098776261688053477083889374525626331717674279447764080295162371421839837346827434824547915253810554333955398937779535999194116754726973555462157934841498699799120037571114330054454903419095823500234734023259444397816432133052908860958720036520055912384564210184524879044048428191938269549560062624465693630627215171490307730797788023535706149910473347913434452774235264153025213663865231151259542010349991912915417561872964151591554372608488195806523814150127802796680584487809657682049490056736582383845606363959000923439794036752611773123359111425432862209490442377643838945150013979788550406113071507147355673012379707500046828554511296111302170170156270599177250703382074004508684562828155482018080757138895200755929910043299760546973264132418529553451116975689595208945175031347028988197757829538178231049320083867460596694014702578842607178771812410951677411062045642477099819962738302958031606591069062376376294859043481052650742663201172521749671159191578733520908101638226618458760314368853256456094195496506567954768293006396245711015870450051853179211199210316183636220846554481248666027745428738484074209427200781324069157752700255392414791237228681691226204585593115641441268989585551666339491651906880262725569892826468969357449161844512305846900421944193951236869875679788280651643363598568008321170816473571547890988325654008038771171070560993244319520800864146157622855073652101925180004400728851232015615085809056720173517077691124538907103259856571630293041362568373131321925903407753381783874385053629446314089546132119260258087545783759576493803796409757867563796702465677936476671178265179569015720239239140083051628247532253688964359659865782915088912679876410129650237115042793497331287968656175812644715140456890658943066569905961239418537409864877647260775558311375254779830029916065532172025007757798515736434407430506441520812008439954463321108982793076351432915917509960434066497477213474779110759053910343876633559114388188433844655184408903387793005321374068560193009186571006154999954856297232333715046666892194943619364198180331900650717869957541059537684143263558673699125003810257222144218614056673208668050716270070377272349156810088747978914466089645587740818987177378748887162044727125081786684950318513435834895037485436599182747935268769023018573545761493205864187718603413266469487981911176025599653617650015691987904731003225120780216971291066564853507196555328700889190931656267629814775381378460312575760241498847596499151063034189766321917634528866313199284757476251481955615851946532153577228515984431186922895094389551036835578989676705767662370789494521788176646472920236353202220325670009744192829568440999765204387462148941444045588005367015037737473366806103227537912514637997332566580501658235475436423449643529745662408197310525535301809966359050600395579714673762393902029054562962305319637996455375695373488919883158957566121426429022218401322077915272722539617044942331284442977448856356101023183537432226262701473279507472997777540162413680354484640927075556822359465065428045017022507809825221729687686290314064234353920396590532410905600873066088068849275314543069990787446472791512337451759031697306078083447390332214526115314593921383993688505278343536894942376840225278557000664958693305408553798558301511617727746585806822461249821681558882772961485025984408115742746477524003125767947421549696381556951187479844690595294722935106596623455984300694088163857149425325837300393224658456226318417708786196368305692369785011963177052076693423633793272696155758230075626499105924580971357990034802810412146339824857121473467185225908760988098560406080439028606775727688129013346231379964155748373495586835195330803884585449237573245310750630673973909446487772976860798709254919139221027159014753232462112532765003147078572244889989373325697806369339154773913278418156741605039271999219868372814724688743801474452539267011934918690939621933223841172033900144887624050390311757020657585449882298423500419858625640531499744030581301498291445424026321821939854705861026746065593956380166539880166175358276556530103027837724592252996189239565789255429371403886083656926986343695617421405434733347323506662444277927998440960974154472175430019370422523805414007357423413568955674751317822785386034195309754384806893295491523945731059717749352408115310717181252213600984842054094010751141996447449943984096874441789173498327298275903330863509911291971603513994024078832611427849077784822032702460920447208650034325759015327022771745847123208836846686182667227091088014538819480694323166636090416799348519793584342337928744051762107573812125543459465233050790456465839377304743824990479125752499298443404519725961094911988177565051313195756748954035799230241995345340593253305215805813977127170866886721249338663702435303047122061682877340199086070546765408403260585235593421213095875811061424436118328645392586990784853385831116768716854682355671263117147286440036926655202198651348876256350695683831312951417149232137658476100273262150365315677429342747405716284356454440514437854738720495757378897240789462819822407906549296994981760201685814043655182257467368581753659191811385804513856775398206749248139082277245673385797486120264192724877030142890258534585284747473725589767883623475999750539749930258538191856768394914038775487627495528515462471802964199500113529044895967778630406176312288754228000154515814598706552991021398315911212609772432968977807629817972762375558438705680622845520351770245918507631551552510593791469732538715846269495360684190146598384536800894975077439076007291258133262936895360633026242173318584244930701970346411163503617515288744744099512646434215920898262417333384543750063961015699429477183213925368073148763575989613059639663892278355519579388135392817369375641373829038283654074274107639649176392677019488302137282990438807939889118915427181839560067856258694306384562655470988695464579536880253753006186212402706260023372756637354024009527749074833661079461466310523257392265982677103866712676296982136028079411746156608976061350405269949518971324137222430749210047563540822397652588730019039447715696118618193238033823805769571217457939405894843954885142618543522573408023122249205988569449961634501592219059924324947034623009719072759246156074154868837885239602253172626919014228254035021479816947187311650165327406995837048542980515852555593430182004085419575485153097456212019617668387996694872946923823873607467444459295637307750660526334521850784622646794480478296535175735731198810329059778139983181648332085302942478169195584292536080619350314663352477531918583863999631777800125649236723585618117811024221006376743768033287772434869164114938555670035749331778035265627729260467393184449714260436936647047451503877848807644670048958888517549961163889063879717783688823125525136820939511850153827332997679549570648298570249703696799220050883326634098994989889126451090098482599709454320850701940863788882611266369215465554617766005162129997440142250066892713508713280744386598864040714875460032957742231228194941916692730129235483049613231889128784868843714633520657885287555282813215306626237494898673354489424876356227202012286538996101585277212215180690331113806632373020101468832934671591122401343311559995499287033389990868287755939670330454472821479738869699632415537693011543842940941995409558721560975653259321746414483655578917062751057095286078889884163569410991721920365982103660265968921116643502406186826676800135173938946565498020010554672819443798778019404473023032403236320097505096292807569027366695903497011281328322092828352148692251858626291240686378089213791461955929132812962933120206760527281660833889481956832248370027463246736842491422850590743113261421709901350509195531643182797059097830485879384923754643778472652854257966608818108147066771660521166763234289216112174431387788134310330126735827444035995683659831554761003558144014937974673420104012090941301840458028073813241993288075036556016566794655602272540280152226264301631573002912054516241708984783480683467521100531278615230432223606853709636106037054649371930508001108822295401166724882720539461153406415413852867484134168076779400409598239014457860896840647983882580596279685277669149700892871426078554931509083465258126635556580317978600425205981530948813700792953313190262382541915344604053909088908935968295313953589819698120718073780790321912867299852474679135538898525759816704581699481320859787478264530516655341512189679314513809732982592092958829873260547407082920296180157125536311050383579810553267849645344418782475447474431006220885203828491908189755746650080319782215886308947136801821508468946072941102315142583204975875517965506968405687791156735865116222025545810711961058969197814147160925583395655159669975078475416597452771917705748987578070744424009106559281318935614347338817736699740793861955592180484532628648619126771589220079232645329855118421779363192795323034925195115957465024264874575045071491203341283654089494512090305297235456395816284780884670369244354545663348627642084970496541657781048360281593769085252234268247480720209522390685407885013133352225874227154980007611604777197540060199885809079800889173136146553441547423937079532934596616931156043798719985880806109662373091865138347781868654160323713059021111950032403535930947140175414308301049753737148597988360336090119553831259521823635584495002770294323090076119970573534534584557093236921930885299584570456387575586595865996380191594271378897640342210494028126560446789338001616957415995403464751751220672369301270843349790389826719130262158219326812457058730782085114405293151883833395862867347166171396418352914668075162151930780448333281382967471802441448778721216219713199935429002404598714666875784461120867659143672766713454290774528644345402013822666184026720051898483878352415478996405540431696845600617656714271431787532141178689494813119026214616290711197466743155939194264565456129381111381428581464988261417599731414508746358096361933684282902351145170931356537957076027971762164261980379902942546113485519778515849371774666182852580734111931048433538592348352543917149995859742907247002732788010329766962433309211142728025525892039311000920383935613928564704449386912866033880068449939934186805299967061009852456641247534550861082268948273982655287251744846174059415968444637662395852931057096174182608728228446207736241309621274252115979486602531130184471651505906005422865530686192040576965589618435142311777309709083543030300030776930050040026516631800903098253160930743970254739125843434092062103036038003568782014068473644755665541655409244887246983772393111504988302170212559305096973636116054798620645674523053511965140028376467605455629265794558498873019046834934237058730161880355664311999067805052698082004212024220939727188689271629563733620154880425787329755506172628162011856566162201392666181725591986423230546647964055178988226511375660819203496019505793335550284398878968129373846658551145405883841593082047639432058732692110441257278234024015585831188130665074415935833416510254820111719430456530424332628905588973467545042493540073342350601146722547919878768646221102544732774176622845206578081526359160377788467909956488288439798771274822456840612240624517995944813580704874440524089541815398461602406070407619917631856257371812444739191617631194046372180743643784394881453181768613571550956749064584995268228639899470775066373395514933146017008021425092588148679106098449879835185577316137217004978399835112556371414145519654323813855706826537543760140074569927683011053091886926925674710631498879696044766536091674246772796313358955487232003289187177723272251017410186727615464047797712993753314548102824961022778642520013570613887407121643150682594305717628349727159322400859286564339350813631613926992024812224709632019186994251044321152894315429879031422206025100355461537977387364523857144102655717017882502455822116827757541873530711934132196200034132496327244265698803837157857256805025308514711331902163777106328761137848421198781449446000521081998751777063279935141207606611370938746747010189662929593383022065587717359597863182300932506403385244140884914360473501982952383491609782184507127209608697062788116318711082622072854754685228746656723072417095211443070661797923000476173536799599702653683763750829552072390977805673828436051920408455501268179650743751303355576461313880069089023232456129601965155675011080542817513560781046694557221139385842978500648505753871884579786792696248518722909130138939154794665163536866274046847190690031467342198007273675792906025775523333856188368744442851864178202194688353620791159624418747607482721653238781614360520041987292849068262948413683356239645908866978430751708415798644290654887417532963489113548034069622291665094074266542283378003510532560634978245892564446558037934294744336799516518612104330606469111833132944908211946748180414321497814469609516220336382288919316321366222322728201288672705685734343633858944077120962343091534348529307235441155912430017926789051843432180038854365916477263381711428591479192394150424398479400329793991855399774847777786478878106189078239046346805843835135720630964668862948570252139067690299579532052992758605473830575304916577862456565578617572463121686444737998453233927123915944077528811870906984819085691802130875368676936640467847097204284760849991377579365651273004547422494049632983665723943607174697021138817605322915589421858765784870897844131390144943980157246937033286467656448811249416236226931724600197124537623441996561730941874282162740730240185387656272012226942037256525441502558655399836105817428373135123494972906318364659728105288680080116462660113370565570288543184817077346271929003084897479067317869624880103997949261178389297235508955782066947546268911254899720757991690872856705106813893570622238876167221406072675992667055454421265348787873917178524519533049494256084761930360576924938269167424830418859767022483312292693675693086023628553854880150283858452142031106904172963614186944856051348899582705497946677051297719205427558474373003076694696595583905577572849909737696333265049030512482392114145167749942445393263203050661834215340559626344745365189677358377168012282492271920554729700314149832416957710152711548802822247995124561293504463008248585083110056071819617240871759464954538017779708295642702063423224243766110330770994744216558725567956939102866838119661722283773014134325126071124588991134106695883447404310481305211010272746316237563048806532389779878730802921370345275298412144653521244618346256480135592723500192594983485850678452414865823204340985884450055146103251340566489543142691307265270214540053381991299787120057870518720837308345409516964677147514680484757143895937461251937046962071319312316476464889595735473463763208493305587946370686290314953180612977714207482166897194297085523705060235870027038727525214595777783638016415598286204088859913005343592555548685888120871160515035615891705963939816798913673446867716460192644321761869910773542076599459625915537105196670809129623960112873025560126208701295916909120122412496187781510839893529010860756422176477379921643457104428004148260536501444278307882062605611026884550381884077852837622053621414160528519438697088567448804914660421576353697275190742289384468982377072139736800114729736181919907863179004105642886548477695017383732699172584458109875985181994784769976653149837054882832287164512218888350330565204223784716962521970389383682804102772946060632955574760739865932187774561301613910461363152998546278015767751955400949988938253882595262241118002311341237621828810514214447702584147787548133063889423458827822585950189814147179317323238935463382776496799880224197234396695491723692704470337118469494227662545655827513209165155985796488157123114022222777446097799204207071114354137621713832570208746978996028673809471291409076467155026230329644992495378310286022903828098812371792268065604335880032273928150575810216031324536235215736477277009277996632573416950869536279467551623010019767163281040206732002484991974705269302556222665320617463388766438911201304469945392757715057125516006517801394326199409232354562913890673565678069201530330354474092784870896969836900275449156805871077723818263161645510260732167049262140107374198025995724976071206835733909249214480851452483894135055241705485590017659651465343306570711774507564329322742278952200517616516373608171621416938104829734984740425519820627509868035758330782543249235861577570278141749806945561199086246260791155068434537322135417554634903260065993025254887331425802852179156712207688128350668027565491858010558577539414170156717824762615295429829864830187208950997534895900747248131155169321021598811643735695804445692566690481764067902202232193945777972752325263397333818287403917453580295795424908187837097374327183159311388380826212024668974602088358939090023154667737928065803823404906018542067698065233302157250803773291612271637145399955406783088489459412986144900863553494399048765264366630994431156660094166516844688249052758158947574626543826639662290262130147528130561485636932754496071488080454631122175730525212320203648620408358373726270240497548225594127910117117987897621838913136565110554734469561627917698983723750348261305962928719840281327933651625860880059029998896911541497448847107907005066103813321291295177978364445714580872065554997677100279071759105827521621328465280766295146824987875993031451721748145362037582242175626317156224261119158889007550941620236543353588781355854805871459161990420123196103271100810911938804822272035408126943747014803772584161611289293373542146681316452134697047946745043414543492924783459325281518373834329188297651023688855245031731353950454507481120575928768242710026095289014141533396193142068176193060619863063312925738095616994938789385856450653738817149463266591720541586508830313458451993609842022950695455898146407805159019291710408499755141857543462001336852696754772691239020556889142989813915184594546959489218067345073847571348224707817007442004487388353046003459903782793820200310230460535180622112799581479017856777749449330253010426804633436903765666313765735793069307431676471358269866852189999646459215415001396319851605520853290186474348800599469805985628018699040452138814187222747766204565128611609772295331941067199116960475227686782133587621343785422725086852991332101868662968201786953099337560147880391804064625116488812632647864963269329526729909528306387389930063052082812405851548752780524949451040583285605878124552939164753932425138892023887473958487162493561113747272401819336450899739592136527271094794526887210942204077242186322571530352974598648874258082349508323749259019850302597524593092062763954080321212285493226619980356288695419373842840828990329440163251540175675812330382514679565357436237214310719437453189250567775375002830181836523882747022530484192245229030456233728307162140851985473007349952826654842640160998134132082948997150611147929628224356424308177191793713480023186972617781045851526005818979457098664001063428547228489750593950923338440355548259010200073130231822586156004993735486190583669323883087456305434911737600239154152540824788098274722267027291814766118319856125057967853390190407079196548320008247492246731066389371555793042352800770107199106313194178389441419694326887224487833983597044555543270910821425056782097232051726330388954993012013075454812167556675537910030801396297243095806748410935751002585227468367702599797499045416624498153257094140392019827649803141049806102960848775774253921146489509626763613862022815841033249246345323777537191883054730617182483289671175864856234863298053055320311239927150723432584292959845080829233139587447288914491311262029991208871784787306524497610504258648816609225844332956695515361537688076283615070882198282159023611052119755058165944272167221360770776092158503061607478013209079329332927492770515738474175982696781934424859535392514850672594008379475225161616146763708758078072187525695168127608686343206511406993365612814925758489212601900473725405975281813926996297001309467762967158192749826989730752723139329653312301697819522048579779579102267792876265724268514363290669710066599499875928263902903927678687737717509805792638445048741213806545650718735099162218660501244788264134336298605432347794633427862271413568068951983457955719190994950632526028512825983025666225879187512226680821890976431927177159241410810291042239507980091379959910227992585526897651860552552270578908326198218065908763313193525275584119454322481859749653367367573939388734339302732590075852757620098018688256045587824458350981764048387600407287373663995120935939556548669439564028852609929034216916532314317296515034982947540315037931329725886099038821338961104445656760825650259089562531314813759879947861773776744741758247263791982024134537168326029396110449172502823030170141935995651049734201695296906590425949139794389100705711046552744768074875247412696660021584718291275668969837704613398190318158672138138720038163445460156410476168126351626782502639896181091042007086991368117276054745295993643695354341416317243453377888473203770790855128583827272930763907278689334941350205637656945090064244163847024496994209750255635200692450534322607360559786106148277739037262005978137613860433827308443694319622239912606593008338876127123633392826581769177500112884329742840806915861131693871342222563805344702896729369079179774220123845771149291266161817226203599302868674793312480894050428944148643930785018631929501746810898931864686341838434815260657988278459073382955702460880283698490634928433476568022329641187701428567433814174609371876489616126130158432279943936765290437869356482025907396830744166228030371543730521037028634792050669318549202903582552286122199922089758962298200979696768948277210754737497223180546743386088242767497039168135927467708599188400152120165915735001501720969922054193678239009466979082132027293273335227366815157825412600382448514392785490114639795007794749361327040346893469913167786716164276089637629481527556823173900122950195092833376948055261056982650612397947696164222358237443891999366439779518569405872225804195425295114721893104026644958096674248223294703932868982385957167077403123205325374353701232967772995394937199665038855240018298472095434183153103722763383981793523473959946833694622143104618683741704135120827254117465589318373069683584073799586525493452168652443612254819477749476480513184509544696496799663519557280921198457589171220871471262334358545454612664492607426941262538292878068023165643684643612727748321715407062892821018620458857569472098456232289136792117083485180577403749519538807437004724804474633305189278784727606326555962779927458362297254039768126333280065960080791651267590100635140991851621667396286512722933464641947304327687836436085923313494104970625473677461436935406361688222435004600066004116699570711016799656846589483707663021625504498576793406244062113756843716936844605635068446479510767339231195473484713406344694146373869291579046816261804771778360445352689945110134335640741884081534043929018101510434258350111462385168431048264734264802575222582220095546316757393222518095418395541801881853475047457133222503925831866310961544157263993610946029559350820539396246692039192266083138409020338234629273372728232527813591443115388734823414269182305673255186434810009545608176581289645478015093086616807299696549691080108398319672226497717540764331691790865057915522885817505582393552979959637200869911826841557885342878444088972972839633747839811429857415518283076648679983454612323769585835517399328130622314778794784847611150481194171118654478603836503933589710336191743224757662482741196435963102569902868448586040010224496432017122354361975738032068932432342453067186610629908167687882526307883091407774850334281045567197997484561650117541627858424120970234180591881408996908193160293029568916638016130282065206917397101295029339628386330851848135424330044806297781765640426234780591828443603194477619793752249921452777932711839760951885301845039959175760178157284466917407160702085112682806990097980649013061207813686994824355751929053884930927399227609320975902363886617047438323144739871848365587498123992854974675528424806163348294529827386539532470833959685475827966520724888024560152327847993314657220814689556515439404226826310143115813603068384971958764188004207617582252970619405961989862701982067966785298330712105218581782186603968329478709359619601002207624966258437253760398734732531044449503003596093069013798847437890500770512034931124867208001893845491213533549567676665081311951663772678747792702027250877804670028779928044514974607983942450384727304601825913109082655087232237740997748922140601830617530526677083204198065244302048022920038269113150554002861188845594406537905102575415098647350869257859555579072541548201272602501715101015918922931338489682319361597698623483283666223742248337620863070836229919315478947809120621717205918756332053956347039809474495197147010043978384111048076234077980966520881129110011175162792270923865054448880454862365902876416740039749791494187467694100332460558289528821486012227561706174351134244405243157792218328507615751334844043517593692454791853954680691059299861927713947657765894227876299681323533609176146721872942360745180846911148621658130603623678011400447953075150655244695959729141411624202412797962972104766800008886756220181279106562960488087434985935496646869636931655718153152535860918846300327502240187035280850850697476751789502715600792420599804808658632293949829289137976520614569989229815072147579697438445529064158699543734933004503131210478396089261639504389746501757830212048086496434982264156751066073553658414165559618106044553072485402312547045708718989096953043900721195471704787830066770406528233436918863818347613226550297547317765589357148094465030845712510024469283382919446003421868664486925042974774790863536810605422764102645871399824672300443502014509816733847007555128006814974381650250104338376686442093082366332859138930591825489203471337094830087892812692354604670321451083340926413917520793591876887772048235261667585741624020340734273462358587155752801178637892600860705901789619288601722983220086495073022936918436980601387632276052181186582729284829724868308359830015776078245531815518435953364002322127849255223110667275563902365036232347715701455703584418559937136306396273245997297913551987283171030332500816791118530566080695215832858845603702989093626659897375644046146452154941105711414208210768268957562891620161365255145447904892261132401359284682647151759037207800531495292366082143568883168100676097933282938698102306589550484604410785361044987610629155932722918555779434748602220580811707072282324513123474914001918180196651848202461297739849129214762180780527424170341094993353118738208115688770272364574574840347759994715363980305499827058513410289875455461243056967521174456037373919309023059738356117169245869393510316085034496980213899930399317522614090832428258043184288745131270857015770761819893276268354052984402649239353905951052857159182406758978764871453345963584386266091827740792110362428871553512367710072707497637192977172824649830397612104980427579329586201954896739834288426961526290903565471069458579526118715517256646649858216911737435308137633358173293463045627159707744685415942906467878135052011011320081739345694124201788972012895317928644243501307244898320680968980078298693401232761205308140130317159763346254787325730522817284517387442168344481252815186814961571405893714860378150613849413402304779220488414660701990159880626940189069197867228008671511069103240028406768621844479387181882277064238324095415786504135899182668691015704422198324272382469883147419348706884300296322916087837197473298396016556961711104562202174635560511507496590242437065482484550294127152752728777410634053643106566705390867313782484540662184877440544952584641716626166802652868084537251343891909430456040516538614710116973406446868773603268156647871718900462450515767397798240781841780691841112822769146984106074957803027076816325017767313143804944676918315417658940275975497408505024890915389080543491096138339474259660955343548282685602329873524814825051715655496450283040114393527331942237723922093644319266900221859777234658031418621848427353165590416026430285499876733532731099366197903894007896528127268670039785774057730311319166774016374739350189079001990381430542011519304451918875091824938292056353030679955824487506681911277589962732100097062111292149538098810490576027095376103647684427235823419605511520527979799343974784168922542447282966828665069522662916576110438905211311084801064387142260886766937930146056821270518321248475460122081638538280556849210470333127443574682162048362959450316472872948851003083655860944345319053700336216408099142636558645359138423111703677169596808462908410925169018647439648001271574524571009094265414659698704185655296356818251864810174297358256082379988832624653263839899024231076224846580575229840072496084923114263138342882705780537349602588106284068398650754696039229858683704265762293843744528578150748396386575044920154466239263633675973375013621586940981917404486550800651104811711438193218098191722012191806643816071593977502830763039143779778264052808734967979747980446903224590158453736499523109132724042869136026036234610591818679602843438971180390847642205198895598483270924704740767635594530644379299466603560068986784501498077603933090422114957424640166365028499495202716958136770567950226559692395540130041350041523990678562076211784975825036114275896244460561492338175493893329932528737962333671256189811073382211724496491958170676397970326028835254184556413435706650366157134744245409482437873664961564324154566012571525522228349331419019144078950942201830696594812612813191952123503677194264387126988147977346845149681633478345681064245630336278473859097094089006161729973431428847748905643617303734172483578523138640756281751658406758631548752401462382336552225325271073964922338909600361135671819852180081732037127413400044197992994975021552231650487287839102611906916241479160890899854227565817723363703469745273165651602756190396959684495276243495946856219899996511547985680506613432677579878554080701269243793472522614364891897799541756957768183362202526124411292765020113816295178037624476272849330025962448124830046741126804987834246528918302118060453695796643052747013377691043343411399672791127984330572572901266491467041684101641260954858493560159585617883196146446411328057094389271297665381899064773601890497040664125204151299250900832541438043308978366866483091870184778574421745790282635291055003766636083882379483272337208976852837915965354524824961188301028825879517382501110154592288751169142887104060078772375898207369951681487818417705124296417130650000387087262792956495216185342975644077523522703180691892872161732245631613027461036914242404878747369903209878639640174186772796908918128728161774598905189333464470403331483216018686650767227641067827800413031232176222596048527525546778467462776334996656033965404642461577991292288803351997154782955756729498228411424258462154360961026400499315900518735054324826832973202173578665725291515116120815638076022670753321911827341912638649992790603238258459291567055125851401564778031804567995489453933453585100542627329749358119363024344167360569644909247090306511742404036294700066180897683547450900922988753912927494295291453714352034207537606566606267343533694052116441651712688409450961768087052562900186139255749700169446884140685281874920242543551030283284631584066360604509462694123186812044421071802832409297978993975820639777230339962155020529515290592195662014892760144833116144248784567308517994139104157283501429641696869989997020739870398337712928738033613753932097011927551246717695846948050754352980586128371366449317929663516735260045041115675486830678804652813288252650400536244299936813710464504541036686080019973983910694284834087162634585964119332093280568275360289893825978464382851588855483262849153161522845053077576775729076551310861390258319053248909913940079364477255361803611004187144477387999225189665668696069254268895858114858661262506447627533076979018004714684657197060171199519362781116532889573665118351503747596560958067412605587594267005764011573570509989951956826979510637022945648753687370548800116040072953317330400506675692267440272088883938840542644647038759447409021614911246044639513745854711763150262360945898935331232218929080666272286581921260786810835218180822583740942076282937010720008443201053409446772493987461204884776838861111059344727654816114279006463784193706117003975799239608748344600033052810131766767762427547395233198679539274740324400315626282428957943824739756145978292004465165437795616622371231871717469166923105733868014893654494921953094481947238613838421008992231103531450504286871366426674829577190385641067560958784078419697028879284647960954484003918849322041800120821644863155938771839841712940885056998589590995513929487798336898899563525595059202738814411858739209946190556923216798279092331914279634664818685597057565775186429802949778845283887135647625091812083581276764920085072981372558145059923664125268820468859765567615548870752314699894672210998641283044718306351726520517896240915700115747344049381713589926915062631323371409517221576040535738625596632226554844128711106211640755245576526502255074121679302869667734803367358874074671427468480013936900980876710422019303148074401460214713916039762584317493399999516940146217837260836635755380138189729797083605957011085754625758737753748220204373026262066157555465292710986864677561210017770589075126080011482149828938201402362106104415197624584645856064011599480576215743893236520330914561190075883968989022730561633040884210822760513673450761272990748436354159099141722864372854990353144549428134450617489607256211450875946440723216008889816416930836964665330087471931974482596626082740996547639565937093836791909009102516516208467036993283172861093788836032968910527987463137818414233566558897565337363374641394686314266601855587943697248010754438819192927342020366345530573324952912856442084363139023021028009410187349499512680096083378363455024220983840545800354157643520649131747214406203078371908245872265734220300451953686143569772465565752869388626509090117111030250952412791704310333407780786277952706681290391506319183977140963260354358972683242853679908425100464795572186326837902572994158581121667600180635041589155038605311429476160057410844147376029884068597322162730995018857769530080812006268933910140954671268143833767080308420744820049767285121569073328345862470805874088190332461553788931795773657227034126149863049754721346726121066999377340155662432331172911652541624079263995172807253354383036401765771600715160424754331919718092552975112657969618808415756636967750274528683367117075375108709540648688026854913607108822094211641705631850800801559532060637994424770321011210308175828773366728412839453129225197320979093345968093044508816149225586789107203192485344228760788156704295732173507094792734905601747579488228551083088631284165701415681043728939350922557859103441098206645060885322083573830857463507333362625178157844804593552305967946476250199048839582816861593386034916171404952569040962803693505361800612299723224013964961851566742172760046898486920576489330665329112572154394301166394361240554868211086514842586852453959489140424477842264339364071342493588949278178599873758424713164637461944778414368265898183611216437195218535509503787858853406986267375861015513881785863015915861219421597834274309555415363738090369525483676852501896477277934692174906613852813276372634451475372998484469867144945643598113017755841630009555815628516641241539933429354290571908083251840135714017145661431578268429066445629675124496063610631580571853638493876485675188642908346913194208890439739348917266744977446611589429023524250450444409923504741235512656206877522360648351511083360134900478714103230967745939483373786002798526618511194102546163446157785792379787381413692064434400242466116890020093510710102550765735533899644241340902517846524608473325738167778387974532135001184976855284625061118444882456574205776852752347962774544502945701974526428453938720863235278941241844206073046385406815186726038169120157767386379905087939265680167579875276763449076408554902940398910608836096905308698835882272550514834939428081627564292712395695131022187458118580707042879505287384237995457777507909488949839423495018735884279371639083639076516559398964501071232794315669984046056398554505899251502867896307685169246558779680339222211307177419743645097486117765725446242153571998940477424693692412789342196904175142944308595896919303318616287491897624524701638155920182556412527110081614175467196056374908057442193977367446505567286270568409305240885163357075940123330936561919571454471262382695513108230323387539956542953908397828613045887972515429361003023528055604692067450609036209778563103599666421597208130735885577881001619709773841642285168514824385093991831918703144416593232017733294400613685175046740364597836451258592682860067419001281375901709787935562036046009672167450015801206639080708709443254214292454005597450681268933432324599934738324915908488581499203341925592445049922458520318147695183692284075471012897148413882060049224450798153935836753497096050247619042587348797868916345290489227868758567748150713793378241891606580609530942643774683657728522862013827578078377115732018322358709645436512864190579723893923036095452634629437749234803304859366533233124369015436157835295654772934223963436975448376844959278242191577916749400945492432107521453488532777642655542841364465882087814246922431160413952697983721336470747463999729701934099314849314557978398917569904644929816880110014804039797171578821924846269642384716141841073010924196718169462641314521439483879065011123980044562183506203851575658662101352360679338897588119502496736126964532460422389702355314123176805276031551921636296723779161588134428372011183451961566896647575880523644816301799335111781157164202794786046438434610117817639795126239729746162622159435583925773530171200667787769433040599010332305409040467316737324721937348237069556927737172417749851443396671106389057165825966876521834557791847278479532979264704481067808448816061520200174283497008344742323479649847491052707936843400795490999101321760397011979704159674787737700070866349381444436461747740119480503549191795989251238769560440060203699051937100083859165787015181521893150417360394299390269100692586636566250760263476895494367394289049691247669896722824814898979350726615850895163349949641363633773171529234213660322168347817261789796809560028530461556512509281961446861306711149863913709167663610907380404510623242657552228231381056882387830355736586743555985348704243952973858192711659729444238844418109335975480099484671616890487559325666180894870820428618844539349283803281678315367946706898148134576501652826805816435033167374509915813843247144045972685211817706474720749243000607837971677248812795213846542198221640359589914218465397590273257762974348393024994086481507985692744483279424551190080890506162442888197361230602643882579316643603299427505314664814101927853035562666133674044375173231299515006876393671507710302847816410921586525142914297874055933635559993320151571963446490299069543093830611281732133255906877066333427644176067501954153858285696369416505488363014447592102014538195262986645421442353554509993105310924959393239530792056203331625657419685380850934463983922736732919931863660201407250848698515693604852022744195120754335283410840953413057718943114148402150961799116155357217939500445178735545515465023570300702281338610771813061439754915199870721979485546749387371603522617048393826041358522285359455733051980169627783729254569493116830635414307275317320198856102045719739467173002170116487159429401377175595937327132765425093150865362051757393116835340295482380755856130450220007321735038332312966202752064576304709144865256833119721464938882528714092854745711978799511956535224217328602194122235074215750491442428186933769381156212628429267367635375905531206746541688610481071733319318805398380304451309023763106216004474263176003583276101685021553713822308024154709660396581686144012362672694437334777188474148135461856083943355941332913613050666030053837369789521282916685607589570483572516898334185079163708372651455699496463137712799253260165481439884150010230638164296325731807824812103561855385752917329918943287859561301429146972263770730308460948180876925660126119276895028964283106895167310396994291034797466693416588198425210514803822242554194059604767916406748458377292563458848471061307537168784752081032988485780830437516621891805122584979345130775161456490313385807601436570495367146334844844741689236975619185644916665207906474406133262958060792808031753374359990900878180467185835394750869148257937980548778142923737239656044782239156350320348893761592444225413000004521734427311029083120876671032797713272048034979450446133606103435935525214788661638457679668577843519479101901480735170554923882436768846679556991261859863819421244973377592693013308551840001457916420705761838716994655349867444571791643809799782631197726618294329272223228006864231811008036284021861557293755417469466448044609413427302187348606033752483651425639439058531032249308336274048765460218029550064503287552803311493286467273840424855037849333927176384016052015387394479239074712183710775782403593906275073472320521355266055075082662637336920343096565165627844053234403559243971337221581060706599856569064660258439061544758036568251239528108586509904906856188109730504882418087636897744367470853130231818789624574615801125303781631973260049718663176933429978961930186534205473016627916221931954976003604260980801003186249752134863359443437299588473568409832945103605693818761885589650975356729162325361887936500662422989251957524912313202782984192266247297837040699069425878192089516171857224541041407744013450191828008933313944639759145117388705532640759778358053553009305106159171238348559424253316411666116660665068141806758469740130848084068856669509872026207451956788628683510933972214154539111155158952597317013127046755183477863003709010252233258732251667730650739499277947658937289644684748221272355198614230164231621185600482185918364652785332431203378822270105921502199993465861295293165039132227555323043630980276994987558545091369273389312890635967681681172801144229837953053041722438335125129733999637028318808903097316299827783030052499816982144308100129434536724904513602603089752460057207732672086380862869487136880238378112915034212648690147501175927652414532610467378484916437492919037924108908506934744985641376727049116760153935117263778126803337419322578664315358161431955855612033323138989800087600378395180605550719811276956189049134488317269981019469988378758349036436225741803307269308843940176466113550269994413096591021409002174042994467942961734406583382437170184252413876851199829169680695659193371535623899706750620335271196276617637660359329188704237134506426481509458126465656003301835624804835159604047879235618723039194364472350683738912442778859567820203400494081589869565671714311094769608299230659946056771615857016896229384055096588263448593930319718360684496145594355497690409746350872084080044660253450913569188344586546002760215160836471380125326006303785135953366751276552101979158435646364678664774624602479518617436230978667104843020767140951178005488053405642433825930806947956328161610305108525609514987887670634705889202625072013176655089837788166541382271762759288498063937616474342086693840367546592027525691417173233651166234809037955027174844425238358334319101275923052688519240492819933405408549590226228491878293819855672235246401648458145900764913448498335034452854022619421109680420443911487224296706510350576002787656865888502919561589416004727858599019566060821149085297089498978995314109474429048728793563074689869788705285748676904353205153573282919027579895514797973656457781707778702276888740746500981333528916443406786054933654698350694109034916280003106630570326829549209883942110969286474512753542397686413914240842320957852454617611715948132979300436988645491698139498891130175889988867867294587984984805189794371744720481430989768894759096356369270911652758718279244148208583330134845564587249156180131331900277106253823319950230765897836823897588969190445818986600546211824582865466559173401426150433020251435185107494123375025904815294115971402058413970338043581856303737637941651960303090474102645824112990527819018260419610695138718829235504769275330376356237856513785864203762490656029467050730793006076182808005668852986331608019566352333604401013223433222816212898005770596202100171630225236977883534122951890224939033041354330313512413978214083618620802724973680290173867561376277480194515171365523511940805629037381086871098468134391046492191486927991059220942955512644811862727031097637784813496407385639956424200486093310324380499832205151841986139230618055310035094854631616975254967033210974443457847262278840316381871949910230181894730149268570849637044020837421203238382791274501273552508706694093415565810031073113459950816747455907897851868247768480648164703226100135006909466873435325404483637743321565864558208884237724304803126985965513500501446834878626634312093801760945347941282967197318442234301541416386579891075142700549465053359166157598208221625974267609075110522576573796494132635700009290750456532689671770943255422439367803468546850623524525279602057396868321069495706688476092340962450735050045159625782043554234164435079165621839835327689989614661634161129203869547360039626145523278828873564282545633288186086237526827056556386747323652175530033897297738156944514523488037123958414286961002740572215548302362551667030981553801268322156886999535069879483096923303570013699782384683265546844511966068297841571155233673508498114492868431333304190107262264440778736918444191945907373782382025257237040585609845712853738118404612478775895091666923909768663962768643866443747287936309075597170275104717471104786078787006638652135919270314471930188317297302841410855258639469402006256093018740723905825447697873144719155927540303915780883820283602138754321061795880861494683693182404578940798785539901593555855438908794914924760975926886532053077121895208743495869702470304776180817448054702089331436050180448898321717238856658022964142919815109019451568132232612093550293614185782513099473355350426450915778671658192421049175716513820361436556199098323632584275544590669465464784954685750286626580393266799547131241576697191559923336445157795712758599582367354209572779004531137117723559433005920807765805096784416747556069808875172597231660952142649786832985816247857811594100110932351513235179178751339872535736626568313649960219473480751324323120537008422767877180951093629050149544052226976423210270240432616810772410965921392103018586408701569112186956445101379720456076426493634431175843750622888829735114517666074269913896129331459468083420745594764499787019541725235834141657484673376705293831262858852575272572592888157772117425246978610867309517334806904377281989467951860499091951607334165620069239461470796115780307305293472351862110872835915626316085260246652236669393304865038375523305933174196291725190899441602523564185496292331123943916599686844179964016294439628329527600379075952658333497208975947254904610496038163792890412913384304285412261645953884876241025518083821352935250254855709437452266904983385568501428903789390079524688033165330624498939143939622693124306514130702828301360949287547194430911607600634666463691683943686796077384134144578753156557563152010655270642005108250445266128921609684049418962806633114072738048157682361893899669580943166804924670080155616749881376439219293390085071324084927173239629722483819714716077193732110039283592947772917875977750877958422853012067586914734280840813276357305336699381575349421437266063032368854852945723029797301845122646378213188612437539851166695401206917161628619897163097124294588367651691672160679532102004775443380311216587677707369352907564984868452206895870520033009316776812076913807290455788614793638805308836255326964206857605690657356957726243527387992989825921670134933379630289766432768336456097170560614130241684267997017578917240842514020110385250709846597026684890527392360653872871285326221788286846203489815079593754557213198067407625852125886733037846823635939916127905993945975221654305171148347462623389919327717530438640449140648616156699325090530897913499262190099439382829247316196220312601239625740880485793768079200731868565947850731279916458274560354754990987720374223516462409444226016721109417663474157637007466822325206662050689013266406188824925850216597167400182704601295171623186599966649150609359699588353543208269432336529334744302492661047670790145098101352668393710677211909683516264667627802043269686284187508780063097271546086621200006076960724235441402770234341285006375771544577027815968025319302264302421095663670729745050322033870134568933024957111847720233996702975488597515623053207500811577741351766882141427036406532794416945872978874373150359807328333908817889958499253962597624471857101682851661326253177341522012260417722017358050969564038283884515857834854162445082415808950156889757735425983766288031645218389753658259862540042633521259173219971997494802060788024268794382056579929735433416532867494371306572308606656521701666041347974335636003562313990533178485182634913683404948906641979754728155238175849567031802425827869970673019415533897138840945193624107698803036698845349920202924904369527599654222200156430952263739925428571510729915143940512696935858338206938603729974370551348945866992096663388344143413428454966837031902279309314349452728497293312167857822004536686526349845050954944603664866073787764022930000204390041338738106175633694293960272659294093761365618289587231176014092809110383981505885310884619678934353587042271711089613409323259351543976823015899929523018081017784351512471735051989654781867154479416747669582667395419538913434580638276311691199596304573452630619992771946654341129249653137069676238891639444620730774086934636506622908063382387688945955603882953422752501479818440114837880211100972928065741710883925726004438601183848675572918127892800996445654541255165579417837035728584020154896442149742455662623927696559988079699861600070309568728072267727776595384100252887521529407934894497300845755552931169250979346705846203641861632507753321614734449436581423540012738688717513670981557799316968584986823955893897059779070309353763462888598117144965624132252408216743036231237747213670123842752024457876415854435480976335745445423501793441629050837834293178833531527115394926654984711210013690695496809340187156232684251637210216479550657259375728425295179613846152380091707312323018233311906115661618437772030002250927385817513974731242399320382990334852766952371763561377600428022754321787391475523958074334945794313697022349662138243768776554681605850653985513034208416766198644760848039246004220869857279117020966450614976238771112112261885327188476216943880838208409313261299449912487115046376928264852308718381476269805048226065358303090219657737932128829229686290621012089453514126271505750458170967087299040770810758493059797905771727046182390321875788608563754628281136280748758145908151880787990094998565291937270891554598222840409173363447099954219516183270130905135353703269688764038608863922477272890334133224735201608637798381522452371686504797785712673178243238517365923274875049864438628485172593332164719210657205942331957577474434886823055007309464467217011986264323908854436299256152585901678104112509032722406038456363634495968252433923579439260002637281546829671685843397760360020111473714831831044552179055271393531437052384741765159989230796726160008346047600641179937993745297606331050772764125511988916366240354229986767180576746224819178319057143336362094865540517646483544188197203911463877691683891491398497435827219477397804754205890495606892107779514531299228899442174324263215578356529788412265122887535205160910574692159984620137849222918629978902821249831050179519814294410165179102159790184859292111361640091411514386824981177482282779345403983483531717034055788672398478716692260374375127312080445650568984618245951687188927154549546337336206634083327196584414259118411773469757616927779008127880319883764446823552713774410203872982933304748320067525981110621853931227265209692812227106577836679284121794501937675170509123660526808983649285303711844430028800383507564458489376196695098944440175998240541691744507264929298236502260287429780431679639670910445582207338118790894994641338655927003795418054636387368615917760802151857440786352393500004656358445277040329429238985169126725253451128372605129858903610147063603786840388599811232804249729658359535883824960391900451051725326510345575143438614568588314842237585379100988525528845366742191290845395082512375077300156365037276834486680104563949982428259374856829750101304283731145090302278350036597364887597986092874800365756092416891153624057859453321975629018298585310022715774646739093050493800710462720792384851525877089942256797846881938974127856838924033166125953416010365867145818129412682539588142362844943347436481057783148678000041602793617981231922794694732342227423477957940610444405309876061996189366553693911805115782466565319986791883150151577613300819287019917800605726393786743132498118703187154794772952170150801995330181806994150340187429845355502002062625760189652703624735614383178024955201151026127581114519529412036595375586222595465855790591994717497167988383470590398676966227746156708923202453209876290808636948258735733477897358923667858732502867494975391424420099197316454755063592794476089757141177511846637220395350962764645572041905289652099873985313265249698942150551766388870383794913313074962836929119366748047053681249788485060081900373172329768226714828963789987722482490681138579592474828199893968719910124823091501624152929465712132259275476966454948480165023816276822566988420857528783826115376329941671349176574563550537871992796961799601899619620531672023906573580781729479295350749512189494801194884588854850112078213151116331302529797776798162860330084593167039240892865680731438048210643830672065665080100630627263221515960526906540893010571558839963414885923422516695171362832900630836566052169545004312228043986724213323870329194096179498141883140028318518985276366626557739056175900994474468014176140707368239642897552425357835221987687628404928451678444385231180453470621315739849850184122992662386074688349731420655638252341195057954486144367863747987665055659674560883844609114646327812327016148284560545447144925604619069042431081210364950130890146627697043035925480613853915839937123503150653151581558195208871560095491544448579691902510527278480235998646169075981214795392358077836388953565666533780896603480830639218075970782518767533040387476466197559318427556807123626633525716166437119728608601651022508614082463968609329788547151605320940082704620931222728549228398024152037509518295750099757838307502283313808782270852751154552932194050432717124714636863599666053359421078589089298399029514730790920901428543732908933452501739036783520433322848103552130898003663699113208787023568711446269640352834632608076096049925591371331852486270231296695552821404357650854921694318723503409568574461925217281857880545658816922638213233186254834925617768690770590996929466537822210127166337883075064583914507923123076075465871527502634628921864593526179323925029293000871503299588654195017645061471528153944554963022594656534450548908419285999290703413728594221524131106790220828888175661474806478264785484721856755285603857946527251600585918807606170446265252694371083602297326754208429263766474942904515856270562898581448176840978670452397175020588228677789280145149862614245550860194972282277993701313373644501351011524443110399999519083950984726219454815510960381728173410943143330287263455941382914086330679080652502855639176540278006476103310668314038080115834866393713893964076230623503244503562254886261775800478485408896222631767675539436305862972882200747303853940046862504365014982251506980573461408335487006341787218404175914578986279435129654237914622693419783725760689042141331993979430473797435919074891130386544627312759581750935442182915095214445211774910214775303908839292477720295595301057513300920705802202326367681541296660926550318860805530903605188271022037396804513967044453943969357140032379732607944352260838459115266441896952268464113001485421516611871774373757204916111892231303022814921401908556482044402353259062161509202797460339588925976481955964205026504531099938001492408280354432948623925757275413192551246395617485409894578350152699226931710523201181984850067762447696077719250269733876534299680528612329987144835939939150095438733378201557782869964005065041680138960615400703851295966074346625465927295121207123383543257198181456576261372398438278012009845001864502871137170122128904192802518934029707178240899812707637950672654216411660239261158992211408048296069114035915023312291959032845027572651327710349054645175311846401913749215287912251162240394941874005377052308232590349976784354167859441360879656062142771705999030112511231102309820728708072055024583848889265181198151250355607702507208676077661542158564385225599941484805481195422914225982019043734510953039956797301982330404259768518203665489602447872464784544413138301833259966998705024328108193316488244563816789377147319592275997257228916842446719857561069993263891035294934455379891291964254458979836996715253296672708069540666764565067389311608973885650930850983559814558574447630713584560772592989377668801489394920537937661136284552446140323364401707860783006253083362627363181295383972541413286639219400425086099239221416976894532275505884992256786531158892995801152817881266754571574795751153065532778018688587318541808206325188728956663196829586085322908025006619303442906752508063149460602356491737144391684839042001484106647955589346546859999703580754344713745743549988003632205390842009867483653461013898906226125685680503909633737825303274344993067466969335075984134388141060848359510584339858332571000595148818339682918317483420099394772994338500683305385748209372385798083357096618043764260666481113469831543282615734450819774851536482740803815850688225575550880986316675083501074678214143240611226559087709745138275961285153466931377957276245202065614148788338484672929232750674643838014489125175282285808301304468295795383046370054893454525306567389464334947883963066591231750382040354473288564940717762189920026673521482165581134385862207477240019276226779934420119767454306909274195253655047905907521130982051220189635652772868424711031455819091551449327833883803297217449939340675786067076373892356730937717141466339731117931958287285927985498620594081769249089610825365054980847378736637624168533738576331988392518445441259160673836812547037541817491071100071102592421236932074325640382563266393824966925142750771491038233770674703180645445005318443490722625568087189415061497856452244530648889781460833862674925584261301382334188762501724309544478096120560773098028191921139097586226469238339305614669809660325147244344360597767404049733498598888155366077550904329659008978620871251516924336662468991781611690626329412197269744252752052823696871870027311692056078730972090456667691666386073328324241461940858408633102923019143258182573441862617624603413459228388730004718122125560134951960929763011587313955387262723794564325697414562026016758601010922808281103831470483975876692809058873380451986233271804702021491510168480768490505668484862880267546877814359666188509710977253686005639266864356449515758605124897243274242307118412858777973610668901446748422610545561509373157217387084302965618863796731832087417910621117276749864634312076222932320383019133060109774700093027588624641700849596628828899951463501018354343758396998233774151883721339338938760129748183422936560259755659943385379437814229952243007024635404363929991416807184182637754826276222641923599487878917378346757806957483557655261875660890045826922066616906083159580312930917985784639115367506411732315283123080645208311720242371827732611552706372734177408607144495044518007548427578748999909963241129842889763258400228629943837982743920024349612931808269914271353788360559057913751656798183583796755106917276089634418153829460468312390788406570762096153686208230254964946943927475527505500582484665384400666931598564289562725117216818785709517380338097718255726714166814340463562552087807109816712899177569021508849387370366566116743912705997434485374259454417694061023091342231947312601104170985378751506713752485279718189230482860707184419880284106931393226848427277736187738730590026000881414689622102301377812590470798240805217826755117354825215468448052277325773635496376368958607626478461315437826443622433480254205311606742724777992287081972351244615293290342825781027480443384563879847719760035895641140136961593486601527153041962428733044353779152264315909840218414072923013527531524904478088891758625634690894266072810264288535297228182495711689236160670294884095442061807764373697836006034107583726300527540345462321639696291576374392026419149174576296879265835890557451270667420097756074109581189662360183208520880065127728908734643159315070015453667053851908581599962136792910612076067909738624307766420955279065005016442614879341254302175592552036436053408765753097004793977054662233512077918069382077870937541951804698674100564384985362887814159427717161080103067847745777047268445022890116268826913588469740948621070077210607875168489782965684345121179648339808160213279712201324038711350164677324102256851826964656811268583441164848226911526660021056085460328315772568179424188356553181727843186183806117055315759414028232173707698426266154706308334289597525584056525390577387154074002459312806781592549500150681817373802783757582394099269742211425149319158874921327552296990475269463291401254849051388779649852994585385668666397009124049844562398973812470416462479467102355053271682439566290352321448066544648589364390972411570289738037785057954514034291286031014164827260894617182390583084740121991552339432515842608983555485714007793213418154212816778095040084324062135784689019431772919331274988476206407491072626429644315613961816848752363953993839871757242215203348135268281648326513484810830431214741012601535027597894200042793726008202950277830819042198557790904937928760047874947388891479707773040249470462668609874532755535189615333817483533486277851132908747543351228890419605680899358125601381914399175504457617064789586768568071670067389673235542503976217011200671390186363500856010973372748533091675230727046467310027596762294170951205912350074748473445345114465902335610510731463914367225096877748057400398919813135570485664623023624618415906609898161575951815947152519268271361024875884846899814523532418123102394661191573307686262771755066555729551684351613621126136452253073824334360144123501563220656476462371740283158686074211542680814848576530274864974699481420070461617736629136187439498097529374085322039114210054667235406520172337066491249080892365179860752230343140388096683931330141578991072734911179717965276155890000076127555810437562395660174579172813794031642977915075580586878807801353072616277377727558331879598910360753481763993503468082974384574044890742620706124043601044004887517859250720055263493994144112211861974442490178045721594789046415400213396615611536388561052610015031774785358501748155954236325327513566525108735865755713638188876744185046217084420705055165642188158438516260856821572339176910056862663457338656360669154504748753483041448892600421843483447436767436805692772494701692210150805504515736012376919302013425186163090390036841416497288930484115388628050863039465680054570514989687436894905727880240421828110336833444037563662693927456550266809462570949225974718589758578252715906233100088846476592846835227714419620958585165894529450138646049008074234645854784607854251204541531396775201790745837203472197885563059042822417961098698862545104602337129231973684498198027399853836715204431411203481342047706263726820853038518925994995048108494665440507773309083524299588269541495123930761024714789099576662510976800913122348106313760269769349388387440267442132102952443372075569815056747474888521696155626864276693511895529950453366668832496122553864429093297093054171538132921217965284668578707134666585334967899745360168629899526230547099225097430270342171495598471834141707647588008004249020357595349961868169849137389632212308116182012816358675802819004802167064631982957900816987755405551623109337713612486951891137989966534348091609319034708248125271833358164129674021694969001493347205518717148554409564277005625361691939401906993887891307762947503791891792750823519663806737362091592174687778988882453544893196867387426004866827140850133951236327342190554782071699677789086996326299106927323817389325547585589917196554146300497132114428766488427649545350221366331186916575542861399837008230178254629011483520139765038181875849897206090527183557856493285363519055124431878180796702952442323677202935610482687771703861891261666618686781865436360435531210928706578230531241230699324904529063796387832094949915560450472453037320114816402869966891440950738415649806109158942572611135635113060760644347174583161127421403002923318085740305845944776359906792633181967272092778331636264599046051794830060833290990096511048962070524142787192045784251253757894140812495732184201788686600924171688918864437286412155675646800796535452404545994615390093424563620325667662783969617462447787864641207165508149740593629478033693789452199752954359924493489450869202476664312839772392794987037086271866858463662057988121366892368985562417507169495553230052092061573435107527658110099522669357569008061504919276868313946655297013190428295995196709584243325780086571026772434581487138888879730289249384898611727023075089910573069792754794517564858620704698894034601648615985886220367607683867585607777375110510004242752606760734909947132930157079059201297223203962513330374178075404244864079782654356335176069947463304317133770883470677426315514227574480619472838800649911932509025780480027089570304150308464073933782544796213856832781980917023458692003911891268465148262509586612543635068664064928868097370230653527801155490770257761910548359215410249196613399180075011600314512334736289031801836610057546526501532110912808394603464938354813330525593140215705345603113562330906630260703035663919921211544533536723673495876639552861600142168399397589283538404948312131374524111897582383990489361249202628494572329848327150046261685161980990126205515170739744908490630380952865433908386091890116294905437999713375182298143699412540674124040785439927725872945243444332838960150737430514817962305504735186408441270557936924793141899914288511565769300779766652997753811918509084335545141390597206331947022712703569216452204832032400886452968948955227817248377542981634992035543168670807311119603388584711108408647700435568266200700541366428500721795907014641418736331240982585637420164852013718692621605368148574394089060679671620901837160972399778984140358525137539521725421930055743373561263922738203390084618063138848443216148223644851788095922732952080476675152790383205781554977637740488382244606648113034436734070924962246394039694190379891586666890458116008007422938959121638350104783368382307177943244155291516247577241532928338522169215425282242581296146303055327155461076658036523837105285579628535942352211756207819597097712704402344268883905314687904527393326111373138586703986521328418427240763659020416641258803583393488416526317109627860018252074757692162932697323047632977982928031870229484049857682436155611124243436793435104249779128631870786191556969963232210473373350150625103447009950528480872706554752381927619371186265821810379372658072695649179617813427990007326223171777638558953112496925876366180568194261521991079845644126803207609770229337863005594592084746214263516822157856262242658103487710625124041722666958367721473469798970684642228192649481254636719987283387234046919129429931502937373484361113687319287566465892105999698986857632076381330270200795377973634137918493098501083392930055806464579736692738358973020079989072780848042074396076884034327605327269614832252860925687810528259185204571644058158923786884625592032434245799650710817450667142845096368596380042886877892328358661973328779603235535997974835967469461596312230339970809372858168388986366404798480342053460246339938231157717601798865125463380573961623437704309887955351958567355720007524191098205446295347921168129768359052705322996824494808968482059776107961046880691841416716039610913213224778821283676630583353251468494183364779884657291349224485466520992327854868864979846325101067358354983763808005696721911404277790600570364827702933263834080524330889840391782737342964675516788846417051159873604633190628978014751595886632843812566705923370846099858879584355982946363635593913096126271049906998347247457538137480903094966534092332587025323364671121681383941909001448370812174563180817266674355418327715045274902103847411786909057377739895598658983521730460375189953864761214124835011425958488910235448263829860526838958912815427998410297751807060805376532102450237873103873231628024814445374353395485386931247576524925873714454602897899502035523397212031131088411308968876102966728203803875535047238166732075246950322009914830446328291176508120452982269174704020155004173497279533047958518280689173811646393111277185411557558786954979060780223385984296218482924932183292791189673828208970603710515537904903806198899641016730071715739839442703043724890127085680388515463559105860285087483493993383968523392300681255546213898500913776458447067435531829597570837676820034813929569760578718920815040991270434558718955424304226558096073664413388371241143808634909616537663256147408972793118841579846999155559867594738730991344582896045736339809347911852981110502342188644507099834820759572742393164901984248867002090901370685907784969114119148341833894637717644081063435852558353391718634614274665999139917054695663917277472320444086813382425522320323460218360087302674897260253890499135715011114985464577159152717784784108005734660912663765239767588376965872057582724454655303083562364696232740189077945627343173629873132982498086680807495859867826015367903794869658806655598725900147203612236396312360325059110426464722585463533172179335327742324942611612590053227716871953599809260152710964572981288094531413625650723254599689566077153846313807135749881402099303683308663870143089302860098102243887111702858437176777029571276032010624301037211016227008386595344514315471368613107384034591105316624473330674028773497323210092546550157730817668386399125832728364884246410588071154343193941526343200680189115113332275408620468541486715134889903002973990305462858435869412857011842789890753003770405667929746722032659683834967513443309376536870871782846618098678124122300511267559367120099996432366687264441077541177860662547945799382195717201316118260095209490440827982696442432643733432128801131984861817711092902237775983813500888384775388719377553171163100095381539524089644892483256018950447976836944302388313902411257210606097059025042551232099522897371914175297034657491781770015079880909841384246907939253873087594583788465901150943253520893814803180140351277301650276520984135397507167621613551740759659387647352363422074474069639711855656963584593900717668109399658562309549755633273952645130380717555815609834802788837097241995644863504776429503426961075375095430388197893734100917774145046614957522807439683717461918226516002876991025797606773489826817429913753525154684649598193542135196753322858903070940360516394262045983059837339515438814419513809057182641743527787769152355646795548781013194213288859765865116185132990508735372278755253349011130163430268819084313951573332484394152300203569941926304323191192732155552497690590670422399506977658215736772408783604410172027480034811353096717292866494963850519053901953878971830214856381797840403460432416111950722709942441396244169382246545830347682426114683360201691630320355607992728135165736255142703287309943450706620553066255923518525583807630794169371523897931429220446924792754388906650684683042071978207050069566368873649141040782805019184964937248351892471112039616001354617221051375212935009073245378497515404670298262808138057892806060461060520314277649741874086851981811440407672902673588329803415280611171942420868883347057998397083806271806365169295674637032252742497381897177205772495753267248062025121844086453116312337761131880048071227161322178427398087020679270592929918136098377108153541889576681550455201005828686635435538015343143280160349155881208193205198974037292744698123861659835487852088438389093742689719088927086699920281567173790085891858730938891365827677870766877111499522673433312472771172387022494360081093835767942522396544614798511713809504110618144287186299548734265663882057713400459826341867542067496913131079091682698120965324457168665978545139380938416057133364630787429696040175064556149299058635701479765607181058631508854814667140462673945978452839503783790620846231150771746048334240273188907820456083704322843142129474536210473443471743310863385624221069287721179585093668410735407331371092658741500866230696255254628632805097025706392153345339736611407434666295322153944313354886388638706315078933847431788002922059610902454117338018020181628089065752589323901160824050050023845618496814868774117773421946669681004014894700388439505460686368556166550740573768489915847966074948244370332840454856213359173503821407686259329143253891564342583240644770958723534343942148074564011629065037995603073186954660948067754696787487510941909058107262474993017725375447858084518901195086045748794246312071189983491986101530685576119502704458318500856874570428472262173226483999661728281008846549671737532294814113382228267775863928229879672658759439326604269030933494652428510546121285865045563276864603606299048304601215325414572727490657705831411536150397607240961474397506576039189249887325128883708432113732688932288630201388400759320118075770548080165110982057417549249620995966041414556181879051263732915188254266687547713870802554580056546921439284730163274439841966845414880058535054637212721374836851065813967593752356541115345516811451081940286719527644317835355884064098998720333198443519522270909902158420562954766063769351346486487669931680915478787443368208508151818955766859565961104253769028600302986184419505632257741485360953824840813129966728361006586288585706720330316618256551818331593690169264161500885682706688406314045080153795500652749036281986770666474230116467497160156804296295869180208127283149911008793652513168899589832395590675309456647982209015363466228063009408093366260493926166238780486717992832340514382457174666017530885746630936292448632337626176212067340875154240625577951134286869432942887157453741085961056940298913722421496780398921837954662559614530380590518485241088506691473053980490116063098610763744722295345665109348294078313016543988325492454291471430259247135192723535493987604651085174542497594878251963495406283213885670645269086090549293229753541891206468227652797622985344698699992360254969625694094782949351040855549653503663611244472183166256645346745292062537187534511211002982924538524334145637592314566296097223360911795793034374209369333859963380468462850768544495889104442815083618847893677860863088850960021937250410450850790688418926154628500384695668774789668208796088493862333857790719425573390142604281729560484134985014247076946912144095203399178449035290674370999645827820041696978643826023582175877590127028442205372336697422521539567508491801200971443625913210331258257499890429487193643625282877524961287971263122561841983667249696532231616772306528673678100652300320331588060248086828507989575561648991718139979704721673706698345087243475257380497260220959873325914733652435034166675477054194842920678752569664423144279738578663723702171281357814764658552666954518226794605697475391897729052001540596507710444266331233671097767096338862344699902742480531259941144692826832381686208712805194264421768184932748871984277314830522457226189580109217467686018550905510032358425798130840475054723748359775337540501112490584894860118720144302484437654255637997646754465189440541838896756685753616016545640818781847153183926849738645914229149381198851213097235636303193979604022571984759032588772891108468744222870847291546691679284980229284309817671030369890014596836146589092274760629476846334951000258199167394457279981634771620283733476995343456487960990506350754112382509710605358955135473989932534174133476373115450065153165436525702262194022968302035950070850795858913859164910786360972518795138931571933441365955263246737260663922654903620853206539811114783215672171423899866493587763999006323631790432591030084442225885025431099287520901692581338951336438481045030102083731530637101065454735934144772755968556837417803746723560855531022092623517534368609311177957279469888131206777222492128559191784675927278190453456983248972134502939901383724510613982119879186911062331242320725985294247263057405647107521708113129571809320210284418495628257344930229416464099805135931678743393351275458066583207793722294263619827571033226903870600516276518630312028166375474276535212656632509088456568782980075833893865320648154939822472245932127353725367371302326482263922988656080353530134944489891621633069285254812265779191481442525053816672402901653828453227781229359905853579196605650215018144769834362416306561035117417021406870264560644108430173415518648516852332057723119823041666189750383262545252820904825253463918969338745029823951172574665756337128676715809404038846652500430513464039567302153697343723580434055278592999502146883330441564135358592865340389004797974454599046169701715048409675856187846040199177228924914491619518502733492884114800390426468757256310762575664907169801652187343220708987178733879099293630742516899284942192094158078765443600218332164052939009892959130688289822364801735713423760048889050621070224950984367144178633108499098895223427762298184903787760700720108771766051630566403376436892785089062869952497568576916108275212376698423859043426586291140910100478678551051260384538326101330025453102856896220739367048240302529826432054540480719870390339234992706895382733524663755348138327052408499070142149862392719560339782585958580644466586067424209990565557616352345247751019930485458553090057480703271047936585341358576919363423394778041743128817854705811123898853499619176319260522042135231958025415126524588374754784066340718035995231865108441416443335549908853389645391040737361060879110623118490751097107557888076991296257161092431536423078078132155499236058026038366300175108678824723599578824605433404724132843149821437884582542083309520885668430193685515549401895120931360232961077198864494910689121635916393895127753996171975486638062197803031607372244739870972259370321077841115718643925043105694012054006756796917151717509621927121931630280992543895121188881842288244620697542662262251787939245410578009694142446645719469639761670925821456582644915158950724606906622577344326780562286782510741226891918184627994164452961496648084587252954032550836092091180820881426354823248915129303974230968651028574427165851149655882123717135134637734329876109151392449332946272626568093448944413604428263441142654291319017111476874665768300373918062927523024322014558506182898624854500033215630685509330384820662175536291697145766824986633162738756260822422934477849655569622765480005551130311065619210997331980455837604783231798377436709009698733265838699722388350824461959499570802653278119494618250410732746730174762211754165458522161059574862803991007246215613383364706867526149867986181620701421944993555763701271392271999735348426552663619295415320327954712393957619626563119513470154605214818828289102037202930698792105811080243160555430232596639747753396802315452853842455439607522233794270646079512211410616833213776159686715501118145894945390544975053455223744825405648292987296242137486586441066594229689808799051845331504769141077848419272080390823985226415207376791832715201457585545686873527636826821971083974107546155765989925713546236290180771335904006490450184719822778707082118382438320268815644692637919209357614950660101166981941522715352599928893151985242022418224794661490829225706718244175053029832080910273930621932165033716489473754220343675691080460647265144806155922489270714987733549027473056531753113130233690158295367061716218481961210519842103862597998571739859018338743870073207087389446858926901781591353367097986198967520063819100847860303989808891230958589874637043713253956016723318665002095065534477229620433654293883684234991394066724471679542167320630375682501583601933533832816816570654435553606505009465742400243514402466913077537165720455282430904066356833901187235870063409092945247191949451947827037582342294991419772852863021739250840335024755680068450879280481842172767309890164717161200550037468148598662919084662436442537188070245140798851335254351656746927289637886980636048294418474169167550907347526543076158582769905714633193696366150893863592176128069513668877955930656363146837300740065739817528491967030328153315562458193163606407612333781613601818578735636271691675182099172877186200230155363720912832621887824316855019584889763838883472596164037893165060500604079278345501591475459164686522507783535344566804598661129919060646175084788726657870763171976221953739585891485037681825454524866534747099166056689813917510557084246602453149077771153109371165070003876197935448874701480868795539989196223672075940180557515866536709674055525684169521437523151416177742594884161344219083527090271750703832672228331949685703947851536803901269345735539082488627610503338520573301945607153180378800099559712051946648197020710839983172010668307612801910114595405442577359150647036557943256759299707948663774615002221281197046617234930912704161138713320795733664799686561463485328351194422258176414679915530933878127428869270487870755831448892818078865175708111112376055733603895690873027681477620685403722616390288995704423230535940674392970601225158497436204104562225584340973368955239021202507510208866596958524215440533550725060159920829892384995173697939980210270774276304604377678377281565180504108272960253926590425506126280368640943263757180805395031634141793485242898518977380180759997052231014263222459449810999851692578425637016900207173512875855361646254181709348513075771906271947132229154876454201480903014544411812286973891341656340465950577620367937881121593638851879203427237723461543777799147648673576766590777633729215593526836047225161880551966420723263959816589265857175552626659191542048427827168103612209902655709599993771178439066043222963797330479632854018869873980975204022051436582549224561547641654594837767312897984511949166090342781904159291207960758407302208438891936669048995452838038493727230559252240273773173184775055105105116602747532383978456597329146156762274598629171125414103955774319073375700121378613738491725192656067098440597801196427067136093845590078890771504788712340259091094377698691328442221488124366463217204353490050079872980864177401866347959975079350299570399933852543961994981158708405119719624230218746735238909526679367952662289602309613308721655054673456980496069806655734347440436479381275300703426114504194828658957754452961498178236108061770060298203758034919795196321515028333650838074107783254479360086897945213948197610443200850604759148852921271893776895034687858417336814683315475627739850685891478515822510914664487023167199106230650276925581052452289235455163333620060154498590644512320072379599208321180599830914941429056332912432825462949281158730178357184457907367910494561642382293649264039640776209155186694256426366380588362560252433195940159907435062598567778755820046404831624488781746496140510355735068465711966525770648710451892531031389093287698225588234006863221201041317038512721502565270069171506712090307392852937470262797846488331963548981063243807826662606459065141610368845744178144807995470424791543351289746547926701504207245773125636150864605745349688771262589779354154635950699596548656049123737168590045760554765155555367362734531978124892030763337805093110578352274530019163691768544928823358224863780619302034583432139271231398150101775487428785864180915933707515093248024341171050461578419847903595890149794008047239256159112797172087649913512832599878574356156873340340402783307127382671478289483835171542855015340422210733505080766383730745039726472131954974362771793135625796579282914721115476883477877727013170254972231284953143966392137058282272239425222030833386502851309092787233982127983163386869886411655899578788929670481427720975795383344050906778780721487148253468910298461446564768084005413255464740501116870195785118735856010811370912760329961111942629828371688205327652361616381314730058671982950316241359137626784708730602818695583344314530919164533896207453548696324066377776286233955612650904064798692969669405080528990765132296316271633900346284884278901386894203444777832633623881610296360038910283010762731368989890341090304833791846148078494136599760398776712618763161377375718220525632273794687386345818723682728832114171956400403551359794365872353551154088921102079012276355965970702005095869933720712424491880687711928717847250760671614365111745652932086256513930100262895601584912157891831161956952383953596604310291982713031074301406242360708367019634331835755427208678054191542032197979236251076466893930705728444899509780663992445183219930247987717862766561363928724119268054998488240728417742675030416537235197678024866489413217306730490461507475096614207403581244827311930120643493668246217553358535480940321444408716476451803600071827998707082125914625389786306107954105880692279260710510725329323361554006874623242714853702245395487774546736489898291598940630818602846269988187785767453849973285305268505996149766890734341676629260300961419588575069267505958672124123838484847806698250755351332147656991360049966347087154151057346757516791061749253980658871857643146656157708251693346368407725320601699599135349823220522565726049210662625720575205710207051686353120939214791656182258215861873296497018475392468971405042864742324120914865477396925202798841005574198660505835855116058608134963982182762084802600578724244602550616759901765749167678243597243263109709143262118721368941973005520470371652367263278913651218034012756791827949386056403814141253502731995607981070888339079118599361715267615983433942193196945669440615300926352421451537487560917842299521148153951457101920880524553890229900814312877311163792222282250900816979692200071987003471228128189658359115485554605803392360578004638104847472933969352156943933789948263873809622569325735914644556084657886018045672510422569351835123596635496524630183289365068054880894263486440438848502700656440717832239243859487060100323048710081875196453633617596198896248533953611301600300943664946354046962422474562502767712067601988277868830894809330863534724933059833164463705824919062648082118966649094216366522652264374831133331783743713072533304641562864476006990434618342468894096387220504957714378601348480136014051835351867749871847231113979548238524820051287801237710068241885173880805292132422619052043100885978827386091267954250686815724930700012528649651150276936307819624160770419484260570545411847743733571840685857730754807284135213010320514643428945964041074494232415703919442842780545730525677840535369905688362512531286462262698799380799931009543287252638275611008104039446604674359759458138530831767103407843703598860494354322975543885328650896050375627966980857755123981526427384873844009482083460323904849734345991345123764546445768991947137053704119805713918274128399863614185500000542622281394467763595346809850405494729059000177058941519155850249872878793074649036084083595513054337671679195427146758560612730236806279091743737975850889730795714839680510113017513273896456335882247532762770356341770862548472260792451517169744908213872380621468992577491199669190552518372927680792857726548792875906857277503950747364229231889354022570459068817398436617455956619099436722720532054596522757659929973478535050919843120996997812158296428743609066667669758543859474941218096282119154707590626752264548335194764634138268991308128139727718089234545497626963460148846942789633272236213842884397880493141728018897026414587262769934654127011921854297223517094462109149330491944017048890202174764673506337771764688876395689004169905730559432378931656437221692722636238202421665562096449042338354951928511860698568580054110659721598099742785363123853783029550030437797336596979970592975274755233572273280217531712608274695396538160500364127467400487205231428379627329952527258016559488602520751232479869752729813625311157883462228391964820710032657394356880876853534534741831201138079601024040792617489793880827720328613169642032865842788644436587277425293753896009729595111076861386597985788463873658946632927528599445692881848187549008720794506123603027137034679095810396323596210631928777826892459381474863409830502857321192603785217481953359447305953326174178129568010690380477146347019144480232021855696610373242010810148500017453713369981044593389243211609945073965385809559053334317903189889577758022998361634968367651542366505433659170793780675766643135609211002346974965447036261077378604105866213619371573343258976975926899529862887472282160015951016846842569848520607431759213084273234352148035929420786942724196573655730639430261812056299011120840135221799084146120348461332149286022363374186719716601020514007959372103395048068445369852677732868947261566866382286959436171478938295543273090368925751426574798552239823944177073694374757628769681484999822172806118345468700288979939694636553915685520620201991016846237336963604983195534763938049865991950161850930974968683960090195825799234152852364412040008059394036655975853791478693493962482929392399058072368709870249999610394049938616632054253699663853601174169220429632537688142365220643853368531369974380516212938814303044364069900263334174749546491370820691521845999818104174957502888508551584627620451925730988271722620995421363252139876584714906126424843496462560750834548658986565759649865692854270790106960950873560682805127779716812775313738189642234944782746450118086227681565080316739785070321776468030560408489386871979065593728315024597666838410787810000397103883576583030582152083139454905583178487215643366903906232600963903698670309334103821816152910854700495381289997880371763152740173137904601755352727748956326559207083721936326363268508632717498884942457102929111002514707907277264636442826113405695731812775272595159085480905679722885099142294219630439412233613960251938725207826667826703198154690964297595237663383580742585402064248334555899921992544268281411606931397934641827390436189798501140855898397731649369982319889047758774497303683001116523299696218971021198970980113969798657056304134204051066689764027316832481879806401716008381758766822136226024674324287304769822234345068473477232122720430372742053981444222736861263677096711034477717011767621529312651056290329869035941300212572112769988780808281182619237986176824232716323411151165030020049499820676102845617732495925646208395183539320844283066887406331954882361779620914883806780558138969127549645623904875971760914479918274948424118376161814999446295039728203916612635275400707942396556903418257219327108070422852794104043524488218819027863811936459803669028068647985456694859883916280296978822461624615162595912219442499319829746772077027868350072503968617467943916585633801762119315199324356113771106822746910745562207063916615352867318541400351085551912033447789611752452220428414316853594841283956946952361208323881030596030236066033446610771456402896518778568935081668814854461812508204458283159014323227123747689686926898500476512656950942761792094598436687523935291194498112300998356137231615052430918745299643697768954289565028710406337713833218855573722810940694299202090200192387536642262209028118447047033799797291671776993297028719055288742385565246624800394765535148440047754339640271879997658448722456126822759651047697045431548483751270129692021849330500286546016523605642295498477079804943843457358120877252398441432255487524031445188978089105884766867887503229318513123715178463297543781080700468517903401751077045954212666433190044982785536012860844242625339552386962109514541309028028528817129563262292566183712826307335845819287935390428424425623674821766500888219955957886403847324323113215837261902700560822503315992318318630122186496955179592416711570765706577767297021023550864898979679504125185183124805058153343191728201318049196930709985452242951268887327214103383129533573378682431717044184244570024403350040390584850115166836803564382569982875896355014047681210741746354834873559170488324505660454282131460448070993372385641485248324046279358312096966220490598937139237655144038558625558238949955980860903729278238721051599984606278405473691836759920952780248879690812479046167437970387891699378081919660391713003686109137389705132961341840604590386105955656519725773156271846779606607360251997818621588783777406830618220722656733208169118591212982300192677585892409500251654700137540773500775079032497763329271272838984027928023555161475222977362864104904614605751899608788933155755688343648704553536686116969468902360654975869224742256306158825872338102676188612631166543122982093390446828623721623466665774806961676337766476093282433610571128722765610340208562823555681980959891767708306746485227829182309575288971891393212194967265802000349591356242205633942867362842784522326700109508743575263350801387951855188525553096850147912235237101876774812893220910984673919719623052211926097627355623300788066383305280990942407466923120739695246861754291558594557603299536096212113277441643997919936892256858629570611337691499030650090947067583129046075675195575690359250331001151027137917739299339966974656664575062550611661994681772692448806825758602404341113658203647063746678483456435535852161995593921864626523814224869481629710363341335444552774345733873914612190388965069674319577963521035983312200147549604010286342829712030099990130632412088319952263395941013193523771875834154886863299414113593360789869468236092298272086933873034280086159091036500386331381874196371058501111360317084599051104713737030529994242363515132318552668543864689277824439900206234728093958629838828292046265959076886066644320406623239933140701169096929434200229899451015953793397529229479848164035499724502391203127011640491081335985109134265005249822829384626171049627830473985052218256442620947500098017381837848674313051278989562093269849552492346389212001111678734161674246399967272502452602806193799017600584746812736470483943072878199500356703212109319748914736051615614043108097229144353485028887640514534219047777417064978800916125547256260381119717827782741943085511369037542944201440273935062869891753144340276756721202647103243561734081508367951048327657726035625520735610995354825641252157551193095109784615976094906301029583364491740209277091719318975926287690178382319571162156113185730303768151902461034591627052274422362997342131636002491316588085239073899778534910851847994155882979230805820956068357554325490040003770816748881069225979868330976149634570306920359608941658962421451053205079111613993533603041949226012659561665497612219534146837920783330732262046112829645836981518923052806611073112081545965203166462119704414390355707491943469874004580519955788822585733828356311862982856126763327294380766213172639211882200851481140993935195174264060141525436840803146728310764730973854663282463242778387912916845117634299123236242713598045841517232397379816508147799311804780115448796522304662818422449858461722947765142632120512815456594771739052512960736296875002015635926259051808119018778838420132644094077523575995542132112057261996397566672713691686161438973617225061201588222182177092887517316010040753223573927600264344881755752415208852229205746260984229708009452815319625050526556876130752640796837980516771659359482168674143815777643511735989564817754144234984220209391733615351730660913476294042284174353293721023580962096436731475707397586214529823691392707976884180257411297620446452085051489913217017985099691525294078180559005224426362793102508963347579799156927234483488013375866642125652406232084751204454135539850368312173954874171608571380292024945777748247022872723202370478675267311790014461340091081680804596614936540326402991104133839559573527938000384326308569991812299161248107534944271926149863293246370832196223389693964328832778621611945884584898702685054853715731192759506005558760967869752554581605541756542226706129757810379064339309037858629082157136303261878578213328669984688004057463512176168903054925466068988313307962341329899629626031569139277448786563052701252399481857768936223538756858455258277116284739128081077114061906185862897404732881727690429802884021180545508309153886486525168790537741582240883840566635403120273232796440116955425227794197274203907446570242648069199806330064372901953162106240945762308091522871699118086763152796082797156230849875555749832962909851221635820578174618625730340789422939953644840242260448844188170121946055017339809494266876553991151334755567901647006711137206263816596758503791635165195779553205902618611463143520867682749007282541742367852834911733742988037672995614929258883224376700613728762595248922811158644164387150256042527110003096842109288023084793282488079360216936715588116829787785078897535800027555282247857924230621719006395204018250948678409512472725514433795546731059557802596543975077899837613627153476253221420703910931229555950505945032760821942069025557072075509043503370998489439470301417257081903082605378616642213963464810066698563229642836190624840133639299085001779921340438776529184287210676620474091204166948524883339104453135046414783820467865486715583360510014643690714321440051047047683472306849007500007037890761155031152987378181327895667785266563779595459669223672852510814267369649822699212537520919237057322274623222576421497014686217239940626619921389907720283985031342840269715995096941318687084660541605840989412982094546409044238720476435204638272720988339763053783976616702449932838447594712883177788790788100354635340049058058057407348858155533919431346730358380384348581624232040041919646453356777346597416374224557861851835295497413016896794518046895414306879026692779288216936471435843562559931512085719208100529351618738107691872636825911421291025436616470815248347682833869524777046086746548944213071311185219924666783954424906386495504470846439044517108726324407129047037358312925416298717293099624357410624950877902472461503798063983370758531739288268334527631978247412060204781052592628704993590064275958718134403230099013294313625583418449659147466707492891577833325858441312002565942380538265017392412602170308051950724492474921500818342378556130229504898873098456082676809614165654218348517403235329810266018276244535955029324889637493250048538451837613625890544700086650772843265349225548009878091276451920002036037129467484528249740801106905496659413663086185601480950289273050230774482862942745131326469942064393576925331871276900989966020238070944541104790218776297068350542885405115817997312626029617797780036886853847038632315672085076056788049946695996415606711511115284298079444073573285651610698660596341633793000063817918160424016169631289561216082497005113954156029792171717282322944705783530632308282318162509400508134215081853071112987232578086737080190171024560867241769501065208192845217251094774842981524397604160300131055259591185841583954191769226003374226781483712044073425364816325990293399850414232183428551764217225579198737682727606434337208292184020393001585719258737232934092418243200877629616321114290066863084346085528849961340452280174625408161110051601159361706662189331492906257492207258964866544158003333922392554342183116703395745713219204556741377370504626583612891005135222748382143649972491240072052581344836715091262034522638596545973490364393308929027308340159346546485572844242939099076507203787314918258683959230508197301276197906160788849122257500061298006441382945528438586792602530138921393983652474414562749192078130307878251937584151940541417229835371829463071039072876304162061687108800366695672704777656035049468015880932692478991955314212489320549108007395766291735434644846234175716775200140047284784039485689528501323204091287812580316604845506696133215366365016713184063020354503929713214539512699814141743474772333301836730817300595631008818734955811758411046772470438511468631911475657212909076061827704489571776370816115280535363409771306381682562086683827316190540133731099123747011152260382335671329672613756409182343418691053756151553163201184433519245321000904972114635493467517027756739172273882625567009485159561007487082007749771314183370699283766014253036010151866987033518805252788392327882006688125755441737321372781844516191616062752191803411396544185585508437050995229467666292956601076812619791027030031745283566826424805445991485377273726123398901784349470253026142472666861197279651619514981425269638426557877362418919004983716978241750584072873508528889012595661035299347011534967178589697814648633428961558872941895781424863731790915104283811995361563530310678460457802229552641517215864508342574615390835550179101876972479434214837973818134590482553352320521463757432170165021690766551883657087701045557541279523868254191544512298731807115881127490587247216768383472756592985458198879442367126894034822363357371035238627491179057053054771174121299240810736292825054845844354126773148442097251276946853318348069747922971361257658854912379737897893510002398897291340340849699357475794951267482492003978678148390919938324963646874797659431637149073119694514129919170081609614603335933587247453737432367310384232174848358454445635169674138966064827208249672918966128270152956258325768445971774338060375154997306947399755606612403112552615658177903686125886449085701488012352229362255535609295994444723073960037194954112168674449968878975105739783513349075619807651661786774771981891396154839266858259870005119742970907031428543013122971170298528115973762112205589757423872747630423687005539797519806370097999916440036100962572861698540216245280386972311683650884078929324697883489905984561066686561031866134253754017324236323825251454649150178203180841235730631899737546713260829570593279411253142138597111856939911895378551203648596642652304516351186961324960776072226844273741968560819058187975217584084071958611327411815343914993556256712203600978922604516764804129661731856904071051597051834606700992451520567504884301177881705495564636229422097907273472049484672542844957163187079889393563829964655993557760456330749563016288928678092240583401336232130225561126264711797048466651867061388954412514784385338240376210296806356868896631292861482032330659259056000828506836711663311503735122079847289251236450722608759030369734030826153093524035949671759066574195607509309006681080705600006844825530554136978821786830497226863820809177075066831719571333314286065871283155267634608775034797277571586215960347105813521730150384369586143105177796990543128423563009845371488383049251830512910352356368389587646801671839815743842158896233584079121724130096725609379944393774969950602964167560739543697577013739016423141951952142594642552613897307635687358651199340763446335671735666985925632385024613692746659417400457366757511696285912450918067391634962160319136429240063272470662329354147724908389031217258536410381183596040658295302869941318231980384212264910255296892223736995506185953872644525145528097055172970210161662910423749644124068247784370834578127875598470115505981860868264249857470934769001800475085371873608582801973131202576424899299867697496326504585548330749648083203653285813665319066569490411374902039381569862390761193105608958850455619971717059904734938357754723091599145706567543895536898985594050637499290329618044137051274139115493536367235460492485504606872387077024684774110299405209846836702040590529314945328484982515022231924406986458891301522485338385124219373144491613449076815920252584663338046082242402895443535465336253116580104296317690001784530385737350991662374790857272103355203509882789044373490371282587078420751636256784440617415222506881109187409722457846874947129622661025093515933188904681083658875958296299945325449443262949260348598432713065300357571591364190499110051312869269458852014985783418710526777007540922805219957129066401199204769913667550270458168335860926532498508650377556775279257677287451706328579778248384699177903521903068873677686757217582338150743639216503134538344474332111366784738045034012056967253906265291500616446388456028280023256102436216240708027628185376089744382269942411575779059899533549132838996194029491493166508319941158586216974283583276737127597802062943409080517612948495790510419136926096054980560484610579969663853993828314478662920013488993457305534422386001332900244693162161206526853441741610091089137016915333316706721775010401489604637112417397506885407033817723992788987948786822211433105946314911222823763070674032090688408324553233347965078484547912521944612870852694508396685577101039652034491170875657335976881949055952440015541946720438765071869858596620875761327709693381514964989205687860318314272059069379325210915501197652098128222379379298576516830879054813383731601280697426204512862244344008162755206021179080585313309598874363883204470050164438316024233986142664820639243246271345838173420472219484719496236891844363998891731840086414836048671504875016934155506700121580696199997888277483312091139516230532504972835026564006720283355599556201475172960350774644081330559131997734172172034150683874583691430675048675593825900629742703505277737378807163737953797627610221232946584797587166020698589679641880322084370271451913438611948408203894468721821069992666507596571045928822634917808327837837612221575768497306529353319912608980394105580387792627166357055908190406237351857553337903595417606897150257700445040344495949567965643326730453080881330307826907524805629472841010782181530867516105462549714886415290586475406921830815659504188118845727858608893409895183970723230910521808318511608242493549823600632241678523810486968818106994911874534845865881442340717022388484263148869441118847003936026170143039220277635278435952044301473722547549679815535494221301024781951491255764638458852863425103566247243546748044640308777676042443752014111073567525512336400999533117606375919236872801655703325688060985262635748561835495100872565002776420045527626387513948381989788301747588885721882253269597792651519688835289695202777825783695698004030133393741747176285179422178951982036283425207300959704636177349520934600016040397010702507923781116642612492252313031578325053078125378342621195276061379702198778055053379312475406422155798959534750338979535381805833925055295663033678473371479558359732652600894999700463668901808681063980241819821749245594246130534009449577885717117704744429987066102730154004449124183466923412653479348511824949253570591382363065045410876489646763340454465122827631080451325721477125995004458450128580329354611349898428818126489444366528398528164476633132779407203946568631367262710500872360207610045855239713708803166851145647787384153461424415445642101151587387067497211105523827665880938912661551958254822190179490416287686369092683371416019178752597266493457164121623356196374092735982411708804404584239641637136060642164416279069772099555754243237364282844859407837681816662213357170538270572805573867153625179778747686420595395793013921207084578944490069001396029852098926110685791370422776852060270241785615507590796366280105694991412855182875090480444697660245538039184338658298343017957444508022269419895880960468031102117684921382989005983943028892540896000126908724388349580393922923211398608002894130793643450139183476863710937681285517732831181380351479488573006538099989290334283698513484198066559126986766574856481178398400404207721049326778995590920934079459716093461229323165852493743371857292955367120798594942029023615168136303003045694108178037731527946634312811607333010369929612343021189354540474490301203518130488250433753550196107458036538164109418983240316840632532713231355815375049067990187412060464804825222894731400501396838339204154554052221707007121470971027842968549527896648234973142543754870242873585168633771351023423086829426410449887374773122577342815987689776038930124113570629876378010409860623526049704857249262981492231401296960789046184098023057241594711768661206301754725289125301498366698593553886482341187287982610646704115079557048550954736786942687857352865950856750919465658262344996431936108660657145552862711223900677475151126652197104371242991998706378485790804284727928817610631428656818395938286378834064040175289917593710717085073355866321540515233772469296463765465321893213768128025809997587871957934590737662818043247535173372008910694582735031182901270490922731120811881241202506632307150567699868380967062731710329658555599452544617214796489823269329040980199656883378806873382873967340881279942385626902401678881068823119204469703390087825069450381519393952838781445143377372451656462054303210521079941891240108090605858689603361016998679326882268296125431675683872908090308170639569167890603450488429381934284857632308212325192156939142985993218046395980073003574288077400481750032259480777969930448705911685602632803951982817486764856954993058776555911754017644566577836066946962383603407066317584777642687019214894479350509231233687236052678881807708885175984727059925809927796928884578658072231926228185015254110483447587501122014246862385402199754754359782975670687558410959261305303394928535395919973215475589713303165775948157259558975163364291824264536077523303880998272041474898614065645714076365656536791295471827544272301883024036442198979110336390246974359446525472214801063623278755883119533075409877078887822785195689377352174722445369149146946627150312283863553462656407262413951482274399581701484216800276528354435561654162036785681881011825450597506129468684335390241640878638461321061126687639313639205470720742916500753994326365011047791682903242328375666952105300409869389318693359123752603171168994334612227908721243195216176464699637934044343819255254708890241150476709049354864529302775185345882528303078632409514019770257872439835850343026851703499361388473710496349494289274269379204281288605610287618558875928428334623079756266180122742536287142733907847963640328359089144546715043950395330538250711457359965287890982492150715121578649163612344391706921422457623734871795251574309526646817895817732115165254206549425107322282185723779043041974968945635909593913408278569105390686693464538546686732330574365476439708767571880984793459494188714700406159840066588513472811648102954257022080297607354340594844738203105285059903411812788482150408759256127741210765651292057305813874757604903955683327877471250280147301367719489251354344759629731238731173925728772268343175595261248850830466522313140823602879391429408482338789352614876806393459999668531929349708563802386908856783839408053854184929681773558234979421447816144042415529677981379859900789861865671533741156591119882319277853075036235597355122492435727302698024603384500040583973486466067784633649026525278904396843632384595993099192077997573373085179452031509918711758660830417347804265718223789140155485411353915286746553822895238733733738925823794177787604125422489385348239157980618181214786192137544623077147604454518553669267490658798292855563043045390068767348198038087453515985548088779020755088940364142438756659368619159689275526210346130416204692925677369654400649595205123561296304453003570076748090276569214499176804453957136837463526113410146854390831745375208447869834977486260554874303840483752390132325601443506610561464870432984124573596707240448217803323691393765971051340915282674196542850981449895134145081110501455273128365469519297608831513182200705227850184772627478794434579035603679770220300414224845767593391747046941286587612234562076528517475500057728354752021009219950116689990699928092626511112971458945421992512355053790540820091456974252517975066687790160507175177997051550449708914328295046630882475928719698256373317704618471047050659732290141941199471185114374475003745884059544460979873030921075551819455196609624654247500865425489813892708274617897259852042429164460901369067508939841058524895889752456812545362798317636852953198790352534877031657488463731184942150958342290708727447134184083524504998143809131925134540806275666645385579933116763446163807127001601857235267039070571827517868913440258873541297749494494988337752396572536501634408535677443512347517115678761433046756860466347118271658716116635921866085368402848913949635347282886318244102453308178361541608866321912298371961778573448263087854095244406028294078079535746434686823730266394911999937432827827368627553379173303025125963264377860233098919430608357520212817538014064718081714451520284607327175827970788396228578045857142678319489465463121787103596853327262895506341507794829525839083901632189542824958827277264903638031866500785685929583980658708400095479524546197651367829937416897731728638521772814284617536735743489831605849309739207304930984160997778142777281341861065287190710175699002951952029930889338041511376610438313149625927489066467992952921050030435006689872997958411488509987525353062459074127517537677676074067905872903298775261544240520585444129381425528030221547296246359798800247103753551530859287169449440148790060537350310001692249717815379101712613157194586428034704165913177207990315886709283658453689254942882432795783463488864461567530010307880554658174995766875710560518792352348082771624639413541373149528800830499306367094382749075364560139787587830415237572718106660673763025184184366751309363643503361979499315076373801025780362048577843995798646480148787893616482055186468614261932121753377507794391612042812876241845540385477257271186598360956651576526727982250404165986777655567845351501936338750337553213996328929052938599291950911060317414812654164649190798972192483522498027825933504784760154644235324226783125171153664174760551143079489275213972261045168894162137213527858565427392932222387427364193779237839576369498613494568537391964728544443031223906471991318129273328643539700334607791977153379737536717936565993361736427617339824751859923094852684652013511339469341132231652073610450372653215361816012820423007653268173481899323628379652295038427753150221390528797045218682836433958410020811408627843809493844356901747042623983058299298907696996218103055533949653409517269689711070812374529614534598439605128013971828759394459052713006096367842023030610663133905126454564251539441536982571413013356709186359454443171771466707284115306571955726212129998348378072831538233781477718607547431036902308168818456337086844276954727377589838559992467169147356012629245367329462630656778363565153939440910274811642868830013623940070740868468628441044529005985868753928691904397035212090418151958785747719237773500152734432509098047078695674238456004006962947667648261008008119348276398352740730372501135933871521603298111021800378020080494004010131083988344269167262139413824797576910941600820236926081675220796869021520388673030222587247085148443660417853089115104874231591683110961689466950931152570730692185132700497566706821327186395642844561857887432726239495606315996030363830083362826665797596214685780780234486685889762762112332724271713035272007606833522406081327331051238074344127132876016075038568470163061806130609359847570997677429311501595247625619681793546888725510198569546843303150406975580598450352038379394659668817035132901711493922983964687082525420706973972104503384110038383328798158433536238778617721572727594016377996390475162335061819416979947413421907384236835556744014916087695357131701214815477856979639074500271203624826288028309454437931125401406770420181130503266611711104595082518398422625770350642838649575864648372475753253805556353497528105623101955227946489925049856013734285662460197235059123606080308415591268948003071339431933322376797052308670376563219355517607402265369635473713835969159589961938423388812794057112576027061878579342619235390745519334105493734622237952524917486355063743684656180655878754684221071978521372389507967958646871496686261219702464251629261407698011556634306448053907447228690633726499727575353042348416141132241662296033193814264893644662771828284295744837542793111399856537501950817473751258134483544304835124798966908432452285483083540104348240284245576565930405202120428234089623410946949843690338758912149650082122071920646922869954787800655409394711791680081479157753420252448096161422118639794333293605396122186423607909484454259549068940278990889301257807574855129294710191275427683526816202133298557294920381568418628774383290383567996587451369200064911526417435702265519731727751203590459927516837911735834038515937270816437813808882514618225800951352463239820971375467699033062572131766688509983633547857966193902760074392111457289432037244518502123621122951318128355573425910626393708339913679759989742789733130224856634046882640553385607249434925171401242577303026025691707852138708471171841950746871323354312737140711702969838862846934421124676051380601907352877882467662977162407634496674361494078096925615877109391918131855334973643686798538711663687764442743992828173128308016521442609273467416100224055717407491159080579942543823091053048977267245876362555816192305945575110865274892190695551520860053967004304124085211122565008047393410862833409696902524132407775401071664786230529451127249515874567589540014485688145181780751054924109582780283585421192794010740081220420360424685901546747241439318343231857514551262971173421528654063485171351451126487288894897500512090948213127594022546751072974170134725681525745099202537844931839500963712191876643817777710573447657386608829152260931440834250155290450698332969144947517658166729516969906020480380172406382024199663306316021496111385224506201818167006098825888568658236281178024934368364732604055632045054668684066243728152637862345716760077320022041679414164271920166858441978132051774922019984849199271215221011519414519891919235067086877494752166333608729786097847613558460381509405202690540359020762731694389008796197806234945293275879525336045026304316782615899008724733386937353027812251519589532070963904157726819766142191965820460363706582284951934120882799137597835852398743657407619373217322843984293372781653248787110737679758861122651365427295858872785849782507420541994358939170089092706489368776203109655220127565854303996804558452876451952137022176907049749154448708375990095237191151498292758775397880547876933641063048891629871988283812649698098848988919290923323513693844788950229243274113726928845664430611963162034345932429830181747133971138174255591943400906121720696698676401760305981767842880986371088709711595672979282814151272901348252876845645512671992669458557047083424279795174311112154428706645540870261433119822813931829851556245817634583687221241535265902541997467708517029879868984172476298649898589343545862464581161469962647822547086999893843963060958601966375200589376894010375289331801325137462433575243204725784564761947582511623658110695983055162781000735120062503120161692275405280702569627637188350657810013261353858276378534767100323406042392373148358747911356709968974360897580614651259471185889768740675490465218203384938153272308753297356529025705032267203429462108372112953255480822539065230566020292082752845560077400736476080377256822010455209835159736689542938185000799875785005285009555330035142612128541238172642560593436859598565371651775825357294275103650912857372909576518936860537982985783010209361840863482647645209588424897412102364578704937697348804934061115260422513607379285044993512740069187503262019406083543939071946745288260429952346667376128269674245565248898901104602905475052420628840484344096836647339205924741104317431888427482408726979880056814711625489228985731888696804536027779729825107755932685178073250418816406641162245520684850501483728898975008843555742674560568821891307174501754962062708250898538531134700251331045411749530915715329944852497179530523619794980909720549912009157571295134304880842638289576850661418667269736201669142618027349872449402288160661361470843501573581252656114821411024326604486682298565409609148395798429949355636358552805529676125012180202264227999403953414221355787841983883059157499645353108567571902205529455090004337326601896875072890369637014817231679582731606187177200175972306903388384393971271600841045470260642494564294430970883574417597918891687162661342105316626019665968659695597019516378000218079282508873278264354040735813232909816750788200126065003609183454850370686440127415416180327990405262113966542948069529139510733790381873363027580164223414121971096617877457611272097748295299856517538971755031770161881528802385777334466569963606147957862106461823169370769524523762385225532371014530546091780380837638605685978137475109818605459957968308399883788541070248923423716274427865650822941832414500500348272430666402285822724755149715126462855363783673900434256151674794852767213258508270770717808715287177327737171411591101209166577421081990178079451686954474973622870597202475197124878207782974607760055280846970648872912750422512793241904232672291819834718627379811162654882179392931950901007677236204615499709763642802743344341296142180180742468896853536136038227205879288918841414930994015614486497350846233889448940365670729131143529489690774157615007933032852711184576054973412711160012809278322831907790281988695971522144057693128733568602648937283319532701884945135663795829455255197901333301773660707233172540158387385375995739133529129487021991011653925010494478352468877463637803348068976770400706054722722014084878032161547031917746232055433368992127346962999842811320069818630299984497210499232393447724237323565441702828657946259799365599216199371315052897301628024100303843945071790079430764741754828440461337463197368929426528991779795070028533832189290216116545642455894822281727397384247145219034902338486311735328631929151495481258687778146426331828242896799334227957100785526025758521055593833188377991896151783521471871471332452914974508938315131221344948377754790752311619668193215607089110719308343286413975339493001254949718460542172053870311257017649024972858753983157529284982537481588864071100314766467065251088339213559473779772040946223067154463110384681902155048632724380551991559157212368751958289123927829506200856392201203519503134332846668182132181023728341215470483615286437286344524694997001228542978572568942452395450471901042973228545402211986289706828756901894564732026227107947944824391889368551451757143701151167000743898581819428926233911609832326453317981896149451838854725918936709593349350689489857874017517371717614054887204932432894599316820815185930328054000517352065535203592381660916148395314760261005639006655134661672631375438902029582909636390657710761985030562544289438573799614281340122111317875456632466434509792173735734698687793776137258021944755358056510950342421502587337485741903504397371469059376235848335269933249400425138890597665260127847369782076398523732611000217401556148564319275138910275410173559537084096461164224176559352423570817697405346608283817784533120351821923235490165884157928512214303206243724317630015454306499550049760888942155279679322378465135216601205928430397292950546842710873496579899248724821271509793816926936133484073768783509400751570704146201758493665344942407621923040460719560187501593208427721011962471031445750321679020784627183014217932056297066662886615419902039407086464051920728516478522232063046417910373654521315289805627574194078305388410199466028213245962175145731109741967999539439998142847407103871783310714309201459177695719386506177336048613291556199772579170852206574057972587279649162166184401006009947192920828750984565430093260065795216457369693305642720546389608470821147624960503477622264689506193872162932545110789975867159143727867011992768550519165390690053253512025458916836441477477319282598345164221330614296909477643815971497386858812539648029081021488879613162702096481818130582203559981079560152334736790190576961255485839823246825028203546204865853154012229138103475682482152676444427837985943484197534656939955091410905640833758291366447675681377529701007842807411724455606242460109729237160503383878078220456077963554718916512983707219743231251715184760158677376519736229677151236774919279681924921141355313785649915137380209657893720137280894357335761910222757048540885937097316479139965703527473125177405171368329998103424571206624259076586267932544540932942188071533464822063412378431116696631692779807545617805677579620165106364736524557133021186164082178028219478697515238452205253270329105597197579698492948468630937543809315601686366703166511094743887162661779359190445554423112162712491417028000685395040520517846091882013424951898620203776524654947747433217500719633742808941308945673176522037623080335597085683657609740921077931384894811577543988215503972462075613042179546314466119889752019162676576600844156230704009180764731473843237883424020159792219885767339732098693594000788992828191434342771912554633563428760317532404636729189529037480573398100873326998214396959317420654305868950321958610285361570267173314835490612325229551626802804885007183258319311158799819120196060499772900168994379412836774139824995342841590880747736249320443456270950934182290616487116112372512094418421952178535553230172219462050563564060248508820265344023144626100026384877009332477902675141200862719845569471882355583074299757767945319062562296032152311786923042953608561955779816402405828170879113421305826529538261840193383469052976458098293949813576419402945188805690377730599293469604118097316203044553719467507602430927877474342030036166009916188792262112067357024125417436024771220660412870496935219776273430814859741722130929511824590028773729413037736068872045754571976108187785287354970302719485091178675970305387863569638530422694432992489119331320729004481223060520914829228557049116765212443126336705721467633374933515079371608034958416628204621201474463924124457626903642503635326449646580772705012524435828445714830727712652259459235309534595463766669020669188825936319000908378592129500389893215711842615373405110963397181679041404981626389180437909862413763103780029438860575859471477913692879262515744209585410059721972207898906396531549386245334162795142123479454438517212723093892848993611507707980864126414334548404653642808891276612715818109647605626711066966803472824750700648001477138362768671610893922383641721934162116759339419533336032739223833027646098509494457610698891805629325297944755063436883547761467914172263258257327265061987106176112317323954962861935529497260296069038407330367151565902712408561768433750033451671349740853754946286743939401499645756575566334439884881521835375663843340144836530875476644144499592646279935373552814959367487901540839857479069622313158804635795209477244526929002298172628314000305509812224860850441671635415209166980471800333308148194998645711178612250422700280976659165720653139735253155560583927631170449646777158703408329504013121431894029201585664567511357059865322435105156030550999938508717665218586982995544634851438571698012015923757804084861401465252448279542461735830237062544631890386863085086323743348538726400551516292390929167624246776874004959092095629629499384973742273930977524572002287398483070834793136509634754949300989955569996900761771118126597191680205022970769637875154470860211402212654888188207908897064773093937870600208692592363480578705433738185662127516331893377674158674689834603285224881265086309109927636673143638183643563861002511817920739660017999742721212078762449344978012588371351875424299940228730781852503909984455118112275922963270970703466353259828037746622140433343430862916207398100207738747755398004514109858610975256929062792971758822828543161977832881532673877815534015503433052337325783231153607481104761349881012540625711276468741526213217869350621796859890690708333552092734625050202215308935134691837764950471742243132348693031198253566183658177226071004851425491842607997537180882059370549631544748950093557053785011617392288869078675306941745112298661176875029399744708726117866177128260521873106828065134606293811423442403297084075066419757358393971605478271740124436187071295619353000148879386008955379189560620077991003997974961388767945928510730632908124220949584522702095653595954154836026708529798525811585089102631010212009152215681227210960265802016969827024860250839473058124008288347289346632704196088527049215776393750882147267630977040544382544787455831970584534563673348674184213279494695366882043947382017736606024072718363009511627967590439507778966482788298725585564925306469664879542166618055745569786889069748998961908372798693992335733680368615930147873847018207280249173218943036871083931963728688412530747808867026465848574333247263359008074352971230206545687940460497516507745272143100928727182703580932031570342169385284535729406375191440658076546348746736770575861194942187238556688236372694934416047699822949823049171362897549178314802101285764479849917105780060825914507892825680050502949216262334680916098226918893714749630557582565867037364626375441507263187424720091583367168938260679121072439823849095583828047296649116123450043619276939445077675516599594913596118261296977676288897830334922026784434218582546447466684940499667763911854823480404462531511708894002589062310229818781916565756018210594169405892121893799221046248342425579684392495177953536371859946018845529847002681774559107425880954614573167718323799599812805529376151046652712331975564642544654551002061746208832576243017212998370507986597322515261453638885481573241585252519520100518897148714694292780926469835672764617120958293900275728494144764977438835834553477819890273280484260258525440687841673650023833487154640178247428220884793948200922625693654726438369268994373560540194627962534120807649795046440091447508648893654374694904373802546133464429139773902215816424598631826148527920788467637416125751274289349721313357921357554283318460654432862558646522576416259066617945526431868679985287452085224085116528310651836572082061636306049330496355258344912361774420372700731534710879373215268674266501394636443359197198481986038644980996623718618051290241331924748964394034809171869544166422364612120347308159411965481480500769110618990830437702199203176844399370766690071351770531837019394514245621300807763219749512168007694309713471997652627131387571843875057451535826959362168172301564518856699234734935000498568321966358607305089694268243261315176846577246490320728331247537828222636733031094937066493752374929800202158329533917849707638322799090219062209715217974317457780316921607132436942671408945160732311093210368970457822774567198227879910273437565848212548209220977994032056145909769055688306868243175221815736820826014021042667116800189500858951405579492305299545100824754746203207513323627169081703232576403154425527009809679276245192362678405807577369554038043079745161702491468807635451571406094782720854632971932865248265436491189512132331560979283041367435837349281810646245206816889593061733310074969249315295516721009657261585086279667411597066097076035961786486870647682777742629287704272800290576721833650208236913824919439284962132792371646765788242056703658294447369522423296734579008442046195582935535551557501083040627664866180952997635624408808622826229267588205924561925882753170606909281648715672228889051392495236580217821157538461881910141983753592332648539281499574471988334943649059577990926155982483278173043526200786364947722484696280391309922688562699991862956625143209138903083186087429509096971623106323948752219883278060736319884831459965068037797849264989058736814175722239163130262953094003387709496352174736027252505150548322308412179820412176208640838773307952288584342083747168184806471075522592876111661539949980069043972428638079276585331013284872269619877727894994933588862611133793369372856294762815845289777223086886499347530861473656778756169695124737670587924613874486092642409799785619995055540964660508107717921349003310400865318781777962497831429194187155666890198908638329397653099899679034639749969367566965924667044097428143030277847608097718582638296360871449575788509368725072283312631193500645393256224866681979097175377067203060789044683343315812462560020956758558678972068352461376043805457033106293480748054944098293853639718975774241114336405690078145165167136925655732007339542718959901069585083679825700900274153056841551846191737459654547687057030381286590798426596739772563318382199960894845331235722103182857879961071748474664396885572414159693094366758936872493474164212587506639920444285587659528871927199584952304153735618158838858147308722886505599622645216688531407547872621437969896294419245709675119309756728886580749556001456136750350802056447456390257795161830919913610175351874523248284033202864628521485344245382302953859536592527096362583195469518282939076496832651617856818624162618832032816721536528517273300643457917256899181281143334893645155108762586839793843334814589502837016348139946176784134359125711586874655856815438909129625545421461951940784113547993454434970035789337427432214579892117592306993073433169720242242360725416143009293803010948117723633908851949517167120534736036811352164177942084493922505383141587077694522571753160996387977917484083581959246413881327327593729155714727789413464312439308120312709644398637574824308671301623023262280681703520624153326595338095208640398232818843681154855950151768079481119646152803033399554028995210709895684038611858144823037458951525472516852256735939726929735695763997691188183618557394601125052413428734608769835721018058191837867552856587006862601668922207930567267485565331192655551587139603846485301446180064207057355643791290078389493042714694637459481335494984819575001787306428414782823707247540240653586043098767335306913657551075884790845177259598368940612431175349159246187224113354695796327786048221999344306467809912273526796741848167742512195608595959570977346144214486449836135967443457416658785904556106193010162325756402857698700402893765705927992024072378213502900846810565154696703309112789590531444577630932318835362198973823343312849592796670668327372390132525133269968024113487672968469493105924384885826742433042417808971094355348627572512705348562414271034103188524473123279694696472128055876131525353936774278946396127177863846303856421926201440395683237346618318717411483547950729814627760171693205696204721217808038198407166397537950137966732925094219850878778861365512762253856700909184049592877966288998394055962159595458718151137383089907227103090795059504114182832439385241027573546287147240528979491355811795273115517034597531172637511089391395404285411837016459378757225170468989548953626760324497030433911469442935681278310449160381100099326433596722961663878452328947832431601292090407516757066427080193902519442207184379292871651729078643891792055829589947732480167334355088361710111213849309140633679500246256145500308650024930787180954026522801813958169849286757580351372264819290449294846691272058519804854184644062478917386934212038566824960760488453024433314274022365470390967905581936684216064768235468682663286390666979792677639708082269150123812476267882017426583938830317830659418911101865351502326854041129582886321280174597284565710697897802709477667727354487138291230084853673614002088213617155357404479248533821344662843032280162310367976223091896830813618195727089993374902693278217057624785539432150978596222635158346638451485547183144113292638058462398997039014999511530214439234630409775985476827343874210140057441403282547625864519976525583513296895563182580817255491236977993892201609901484680886666492534881068314248901456397728067238419565574646873690001797498547940641891083672519773978349298504679311943345582435800364268560313640520480892733851224108930450895504622443345516742439317937015904486038265274186390734627860866950408943926571442785541142327215298787269771542902592827410490117564647916947891637972040729451887843725024779869858596516537537908980147971550556432127185621349921224624627507386860262599989147751440281014713529733200734271888215130045753776801565218647082216027835755662095893609290493787728420864800642839475211568205415088518162851640695386956582353236850887360831528255684166754278431734790428869156027921042314970929402327706504062661846563651253997913698044256129017936059266373048074702636235051570312198421705244059988841255119474667898428996061696303081026947602330904719969381136555932528053531253485732184989250982691297789199464377928552444502093464022202467305624751794235985870508579097159974187557070107953008489435307751198932095860074769837001875235208881186826834974031574031241276161362690173698737553236647217903477645389143625680113743077192415256929352917365773896764575313235330217322584574886113128760853497676357204353388263201120952531966748883634447632955531162329434258957992391446107046339902238203067795402127843943217359699175301209255245984604379248482904094830758791758976499638584344619463200934386997083402171248883944258817583627553881372928645123842619099825192595784497379271890448253643979416943482465796384273637892016225402971572805911519477674324733067197478186217771414709541900654646604223478571676347831254063816037278649023560735105512473100807978965774700364687119997961793853819013080564040560207608247633959709278657111191947683488717090344393696590829194298117404113304651842118737743582522010463080003758143912709758494020221949317146952850130232020364992731042318419895904581980492926928814320571480282722112381840635328058300976779070132921019309014871467525789808351200889379754284428746126853354525178123778150970371973528201749027988882407568673650555156403603495138571147557813372631242569034695922773736556691716168963377221054786715938371354682440868023407745833672893685556505437999073081604192109451427460287988440461636716404396254209641290729889538708076523711329570185711034393383880126462849890274090284002805311779741260560928946368147264477558345510690198861308758930183978810262838498640673956366939303293538810752522536602573516673774941957453315864285241205822143568178583168757910624969494191545152595036134985610536754656586856208510517381222248802232462605575969402400966807385851247770646574636449684427859922961044851777277862676645241543236659022926829296389304821282515128727491990684432294366902799499431139749425951561283939071934340755450651048361924557202879724215051400194650930371728660403803559092295950797204823850217500846839252818457067279583440178307191070921419429508043141970693279590012668554672981758407873608226347988361125543951384719408291191889782431417991420932128466267282974984318705231144053876714698014522938063511935456290232425474288683669613165987025915809512416291072304366968398404699332231136393143698005952203022558818776045629915463842263621858172660977162323416668522411956124665744379461098518666135178737544703464164272974006553089809766656687293543449467072826567608949315154219942422226157935865072834940083683030046296865053436194372561906842344091728591282978404917130476795588744037242586553541192544679073536010687816149593362462139930583637223668268490755428597629033055541946852381987495830016877496875165428712707547118196947154195825641504201356496068139649599502658212571517951587044177310943241814536976556786820251546389961669578017612215160341806121346319496736451790342214284830739373148397523374715345884931955741400910411801735825983233967464341849059783926621496425127164687426420792376921713749006080772700684623339209917044147189906703564055427860016863770466952371885483872005087322858760824654659174577303366705755185026086324862328838534977810268260390310592930870910394212052748402292572653548960887790878968837507315708204190471517072786203009968324291753415749118767655025984541111150220902261173874231067564528809101433173517830001091278084041119347248697273273791814282771774101516523541476133259902885233617880115358483548255739092650729041669161082167160398836546280738247595307565600901492953790197582325722671231946192780336615264841369196664827279058425945606076085719515222440460193414855557078923843780052675310709463955364187225279046751963877438794732333705796850971594761728319392198929313122416927483474031098604999838258740538003364072277099349881697917061471137050937448853451106234468396377490293088153898608924031325655123249815424425863628399429206348744050365547859734707125943064493440474344382939149087955916977337300322790820795237492578554072390989165296059730836913767746487251361129424229408655444987799664328347365233755235321269993246002387790927958631226840298698309981129731392409047176472987374648870011753829917323944689428164992291434570096854367685834098536597017570308825574673884777269330165313309202781513247217291782275037916432426450889983958891822095734683870792827813890785207840468531863768085150402584668432442993816068711387879574036860317204259748207434465963309945213524326793902210621414009743074204216868750755617914918716787369584269021452980548766715064005540281603526760962093851245339996685800434463633075989088323969610647599907713840627977114731608913452932508793032122075826087675724504234246148874825714395126500145828942378990356389388547677038029978509647802304551923226827406484074203012686752442488787108485531301497673977577146204628165857880115864082525298800307275770548702102555760263058059835964640069476261275530080438427520813671988593546718466295395026509294376386919465786759884295737210232963767666982631583553802041193965281823644725564365301279981642580051423403730009732845992305339571805173971131800696679146392627321574384455470506597598561611192651427500976643531743779840495982273723999315226870784794850148872036086203903538777702617853442222656380141251195799698540018421735844538897949885952566900936043104428274623712119353713171577933508737128567758431775780268103571463949726085775347702295118241465099954885573740574215105192715328399375571692581344160709636062585617167219332044581379744715002322593125998756358458392661830988187325912797305055736128247932693399152252400911666383503671741620217352329627297082768224532786301886781273351048839748362700026295555629800854338415218310652752142509972929627676736883944932925265092781883413722207022317790869454163116301944787427612274187146744332346983612710275512324246352334885049816688249028092916989574851944612306405631156108917348443259380933109621188839514766555913110129111429767170126068252275867051698486730368547598728776232429770454612760614259135124823785415243635675180559442574957042349474685835371754514368562896736862153368066344453814749992637565703038881002130151808520135722896797884012308894693239013107852819645089878589615708165122879754733032698678209972339524471304878330714472992484348971285749946116979151163277553741716708337927379318225222333235172078529291249622306272530855030757038752786315661471859997854405334626907123791678191775713715731773987798574037261738524403903537243045869416826620321541451608919344422753823978756889420726650754551151738611031624080128510614232613854104270354133209499011314433487518796566621224097174862298333125366502669922318848210317838521522330681115747993518840930317649775158257441999786903967170675285850732722867724547230864238402617883770772247543679781738140406954075293167363037105955200723726253213318777602490687636510794669120890444528443446176642306073484789805101739629117456616897413943649166027354729951693113437380353646813518090583120961192102851674531353537764560685012629528079987538460052638133094550237052667317332562104578403162576184040649658666901194871829752512399607575436964056172670778929932495605185957522955944384916073051226146996477208945745660264515046470300148701503574909870429840590401373103080190092888872324525813108364723622328170337795046080087774671678472129515168093052526755125033760634120619631233373640927669047111899487101451754057550432659559375399120000232504660567197089252848918623929039752736490149415804126530182940092656001479123074235237879121322248112056931782503971686426600946336865800276707756050105262776412118245972193179280526209069384269349355544994476623342554376615017972975723986712622636114968701684145101217309688494230830506140612997362686591958731370269311434231332863420751675909527101952683598095277859714133590310775639599925924538332250159518024191510586407873501207070517090702909104567027458677402014485866516763038236125194365411854299576978470284762209721793301101861363995192159996976934827815876723411457636996488873834408485264222394639754998121513188711213212916372969959830432838007219376327507634650402322110755085300610367574700125205676592483132990174728549575955523538491814566718950192553332644264246710638754942936149894352893977948480528125567146151412292692985177138183814202468574561566255940283652535909033588656778821096871499460400005008915728650877158892193355974104012037914840991811040919060650948953540203659951369600608368397247463166003567880141352610312020735185718802230413851032557926642259805922232952136443927462108955221773563711598770333174418204609272369951728900433939558036653729758817634808467919107644142812225309554368488919717335665884708581111945538543933365134226183993225634051926350722085775759989224960577815991813419866094568121606394115243321776790692240655234321222756827887045082920182297146482389755584253451256257792134963903326116954885892704634689994239630083403269982823597608505154037543484328264884689992083697797837540036921050111627370482745593460847070753378062796078245471508075130467425187229963848875121529395758466549995204926036212387701152384246413631799987119004318847278951933067887833296286076159746797925934043045118590563705009089682182117333624526853173706906318155912657126934033678945273353933376783505416222442225857111236497332510502922705948902887655522528591407422667373108026078344290013777714844972609918332905419437816025001875574698816915414763492270661029536091010144295730148248656590355028582204249934869121383525993626433270066935073686846818567974960991573408820339588038610311257039942273668784751943537470749505628728477940298421228108761690748513334026432648980062846002013408999680770981734073862638662678178332549104959326255466016724275589126138993454255935207973182690565116690045838703712383027909687430223859035893413510938513904580309308676924891042493353715165519857941741804071818111663249434115253068057530581408244628008506223430483632038828306235704921719382449467165390291466585139027392545299702284235295681137057856721615561053046424755262912124341647582792532468803246782260521444605693109531355092494194579765611825265920583552092144889176684577924963594101878970413404247510613653611263072464948610091400647477753029528317707565192546885996875853635525145269085681383420393423467864324853083405489063383328985831035410599407219412664324898635922281717280402895762435332930019138219648048352048599901141557055552800352528168102784843044656065700840414608954664080974040117101569050945801193588614290774633353834121725663403464696218262944011577198843878876980557511966485456533603615145811091960360579570357664216995405386317393240733949587106847205675027730373360970339674698297469701298666331485570566102054082526294424254063500184278177482779875984135953946653986604591595371519533783272062116463189781319541972171019615043319603977066730091073424557555058799872863008226741610485174013052241153258500834965601289547562392321341408411169848383155779774062117734350001520843084183315723751815391074541479104302448407319928432040363761330816352325271319796306337835997117040175578675518552587526793644896092946960782181906891110309991885363683482708040613427817205608301383267410098020635476835436400058025905837741597415189024720791042213973687399276829066243793801687684436218028883817649898344878987595430654962702247738761326126464747644414391060755765367114455347098681365839446392755390128140414187039545602029387099631014722317944651865167528968571281255104337565141918225461970501524800874342074701571800018522529262742481764096959468108598608876818190219485075147044768641023592950896647616603833617965074909171803457303939557278586351701907558634381702726672008502305850815153106362360584642147441864870184631020307767850605202929020854183730678718069565541386501374325621658544275891851672294957176376651837805459071303861909012367427204948985886060772412568879289751579921255245698390364195028545528389006886533176110934465838731138059249175694365364301075571889963967130006904706228714794000669624637433871374579713815422717941282992458637759349912926270230341193398831589075664629215174076017911241099539270366637771075305301169130490328494287365322354062152295662288075117211501258219125566231571804810440642590384815039912126587311111413459906566687230531800882413291125027496508058625627523386570295890237798130821788089504127344388171271173953874705644638588899770518641012887980439575033120982532155394364085805066553307087454241949298604074175014615111334570861096542857078274892123539472312312244218649190544882851776087670705076643343879864051318238547485583758613947181399569766333848781012359195733698788635472754095206563689052533978765321009220699728982313638751159781016856805581202260902101616869700461889104070694345838627511072513875584611915893330568991530742497509618610713757462574052590201656276918842540801554987371358447759025432414348556944146322557081836579478885196966830342816244162333681086583577410951595303075423762872980579164756941164381082079893619889051540639712671637688659508078075705366517941348406380849289251077885742425620893232740780247077935083349003067288167485298304311182062704771648770407059863498724005959059270861279302564339378269109693664205919317103492738689849853346449892843382236252753846265926356280027671180218545209238717559670256524390177316759872892170021894461670867800575894064546862560569572612674619957157328587939511384946482159985417890762766069839136704914732897791360321688286710607751948168017635322232944815066731321399399662075850977277589814389416614680143113903185416749815401612290051632062903921814410477725030113636788018840359097930578703844659034789892922253289150502923599219947176383655143741408530928775539222808463464939780746866201548004076092304645974655869802317618489085328762433605907420796661354447196117260601199383814228802946077252826466301873961830720628214932734590545264661878615054743861848126148563198858622149442727748753579401748684903460021292309209824363591876109006246737238284706573430660258725007787653989823202771680336655911704940638785021221713940976921512862838172335041234140956396372463077966766105306301821052629680818381762160239167258883224230897578390833373927977390987072996164643970636519676842693822441994182134451529482048455236719955301801196163710594343973242929005938655915858924598254652905831181065813023472797677991023620932590594550685578768036629878949384839339549780891601656002738279481654991501578964690447547923723712923370256915658305568700182280194809615337643957967778606590031088807717763638547722866447214116770670583207429641183823287341955559111107404767438030573756542835214780359569906341828310981814169345688218709590279565570717379799955859059110544428490449085270891663392967345926648401318844378223144193705040254949841916204835125373224632757389293985097953265786523503204328054579684414928728509078287009248791377986014076165160099541395181406672299745214191004335300442173712459085566112552953558345819259127824047054633478556025808284260826691926600062063857628575942913736202601769585230760266441132421288093421268025397132219417203469024696208267483689935268157419470298597815749552795633299882728664410561714296120023036843790535505575282638476360743316215245252324305817891598025539056303058994779151952009708964372667312431038154636827644327949740476494188921475227673921364659089669101967669257871336790597415725332358709117304949963956937610793993452058529213721454112567131135364215620318942630223113805942240299294517290214646354422667610975950854933009448122314266474924508454970499925025812516825009046683527551822188041418106990217315860134210471765254645072550135385790912238428392918688115822548790319810139371333619442029448278310693030253395373648959891965897524943676022251625845990437562679514346696846114942850097969920859835428847767690613225187534543586986885803135194403156683099333363898814789464969211327188534166253603526819084497740094227920497682626435693585090649835163261443187313017591593093995719666956506277809485254667030586209005053628024689484094670909967378290668949094573171747287900693226076418049043241752818394328520560451429002134154245041167182532392653809882425149608686981602793846520720487346420610707361825824366407806086899120689543743137324586526433458531638470630793174116056659619959187629293611122222217766210801902977753664357575977838730307953012579109932845642304132965519215917992281469309361731339981228869568830839512556032200129762887458945478975855615280211450519891539564990963888528360733284237195597173521928761669762365546434793205529969387623275159650562213523800857233769167287304676511961674985985004112565399910508772427463589751517166415555112289349210274253846996827552733474547054667560572052980601834560624566402144628512623756492403933754072464137743468125887270331576420930556777917109318735758554254161042866499313190558025335480094460868105284174387927500237559835879679737096137152370949420353515397004321610376634013044830763628106966895455566326177444226208892241978274643209589719305203869347199015373188192895655592814107587417210070621439110356367884488865152880265284906436967388951271446355744222289481093426216966044942092642854216467716869150614408085422567218321129096943240496060632504690317712838820160456713765779845798886458247197846382239088460684873316418434797166100007961446925477010407251122827704079342214455063031653210976017397906996910697525356477342470920173999789475733446105013174206868779695837065340605817495168258932658817531168890764262954972924743614962162326350719468881908925892665813867333504482895118999096060918499968287151352532815992478235668047824567731279824589426327147505842945494958458913056079068871467331991228704430040185171973206213776732189235060953894565095815902615929848407619573106307445029555713382715847320530981926283432675876177804194958180650366581340086361995542384383353402007277499430853789904625287517182890750547734348677778771915298761586275640278231103731481619794977644707676195942524609463054960795533961815941911599698961858393671160957314821246211496919855687300634338414071128217282171294256614229414679267637372461667203423308463816069133724586276420103548689299266607757433626693839913482334021670658941335043002112988372391330815904812303082503283141019251360036242800267617763249078105793297215916575066236960099316574537620939466812930000937165075565137546329843104773844791000076994177276849472917150516962103375057969963305582255622405058873815778921231189083888317412052219453199893174468585241957196532633672034190971055475714394747148415795276501447823874827060544852721300143974671624808670261616841942941827911534451191742714664255252388786659994358993438649694659100031687074821497955791118191362095940515319356751832899316624699109908750538467360302356568185704247732146612689889894533221678719372918981268984720423013319040287251992217831874661234329021485605330418875444722346541852666187483925590787199169675861032421861871170305773337819785819097193373396407863314792055389372546776731877345343671615058173847090875974782375459609062224112948219018042414562476465766408416384204779058288670492953770107905008131361897989189394170622869348032278111417695370960067618713308715813159715032505181244699388464164783460009868562547609344747411895816269532664751607795575138278396251348195742574258613590328852660863119599403269686239527296017825032723503933033546699777853474557278034214995080410167266561129717728748662781646573746192533214911267622209423495361426625945589854717417436577497652358179611079179508049003234249378273801416354457951548267345033756370070959167375924429828693170605099997152604031222921094617763723131536924254671925194466098964698107138780574477521120244922004892400184084500637906329200735549864707216064071522460260206100186080165339360644475787020131114662918065988374072064380630454427907724314898638805203386272058787047635206046589690428057904278577007910322414880679633716240207598476738642707169432510705217492195920127587350947045418676616799126130189495319771960613546083118106990912333636485150023591169576836180695126211646078400571666435102083728680721075192738168150820008592960289661579342335101739163058851351139938671732811561843609443749010585318075324638060700555166095430470927967323508244723124061624603239458293520268174982050299171317502120901476298921142744418634453716822392765866006596112970898112784727805625719520849382496925011593111299524407391771821653349361644605515239456006459604603255016555330807489334725899975652608747842398761715564180354367353722647130759276643602805179048649627456401202752876470486372416197006380584174043063592876369595584238469457047080160336529397588673486469234558150432780079117046518356429330593581316256880085305600270872329519895848414575194401018664094960897812084570121420675455777511740267618653757552788271296849341386524750748047488147267111607623838167963832029477885776661168762964159232176466145086805827217168711769717708963152509352830461297841636923857848804004841881786090063324255885822745353720486667529578079317048918151343967582011987108970500381746329313554429529619640756133247989348020144654616335147967977238019758943943216296120804690696511307213696568412221359570058269013928289459702702907257548298600999555756418882421020581828214040395408133255629332728215635523295075129030669913238394034111829523820368439310580940630998553743672793318900826153201936943660508627090950833654270284216434350733859889622446908835350074899052430883095626253100803480016793030078485236029679066651477023158127860211989702676433885801824475752001022322176986908457789264814658325185825497946785954855356898838276943145125558173782225181852654831200894814670781658073078541312626077247842342603796149500658357802578356179258663410288713007852855318041995593154434956628165794716478280895520614238799515797994990722877992083890131082979394457496288810004619221540190007892101297788491143982495339527807853316394856432959404054681206188202129162057105200916928381071123515118655968789870044685578127060330489929038982788547049460421351253451694747914926227313382395998388543812907963705957561957085921446353349726873988704637623582227628966610870066805182550921514871432143601648716391005366827354219259427867477151684401758049180797022820001776609883145418324461244272446391121700335362049221369344763054116715517326413774162456408665153801440628733677074929932177405864762896192910841286073616275975315611997851347346095478017133920945085619894598814783522331782067026836890257772883951837971781367012733141885347719635669044817989426231772586428519758095659713711857472395182948293452734980486825834094472260212248568057633270600390427272210371319836833576562213621502154046238118252310292187530537213898264652632811625976723721766670849390549141040892939660371637042203463438547220540842219389351686203799162817084670121268508345477171473243277795303358899888184560738310354637067173747771385352223342410202877719896467377032536927587873876541272824781115635843450947339453841648806808156879085852177969282160364511871847434861189353180316662629679646851465649834513724783333018717356959084280098956798472123462180394039053684656067404993453350237587363354356161523731808045243189009022144626774513642174250760087664407242854142930109246958441724978499599716646976551170988196022819993505877450725590707566188283784803172450170497534257390049451855156094416951916900080847437756468462936757486336611693358725232623137128513548388854485682974455406004515219152433643469041767409413060639195587344202074897019308505739682357147655738663138479612248285290517861884337830749862340750721937942977489006308470408982779462275362653051972336724169868318779251890454674058284508045248017316681548373046760211627001681833343282021965263497681603929489929003115229201972526589502853473239395097765670889689772371170101477980942807203546086656481867917867209844755966658144989809249287454798056843750322182003758490668107797971246511809517432694064905931120282401969992330792833948447681423468370971299715051962001749160816199096681166431468879983922982624216679776585663998543931750637272452374472405034770523811369903495701753576210820936082105370938599158801523605032167129004287457701268641652676508674350203021192718013004865613873385227892024781284028673117908860569163118819999383898690148719505052727442630486888102158707833889213854833582089323022997857763621517053358558009331913458285126846364522408826810452374901828791947422677756158485810319186105032527704213788894950585396204801720137624215137485362117789644183687795752493348757116569476489140129086686264855361390916164589029761473044408300104053891636978456513464544166708065215233684503481718828452596648344884856285930207506203669255968740140667042246896011131622133324812909520912011483506967234488596970734961159348032593395099009689414697308581811822565199228811941055443476625529379522142166928627955123571900996703445225388146727627931919167687990205337926383992257984495031507494449817786091022328112073905563915567436862157280557163428206790116193898333989626922639938488127034365125016159910697913454165190861018941457071056712962194372405960714840987981448659696499274126260915100734514838156014296841621219453160632100754807842899588165325149289460163437964435442184920488955364551357099643719191310598385753484068285149710615614464402374431828791259962142296001866263847469163245958900187849180182709197418355202255205172872024078580574754989085393655523264140815242300024851145296359111716591358339496038277777303863244494818918457216196800524504529310258698279938195427696163814984864727643454252095963990794221630273868298608408919443749350785499532864920958327889697733483619121946894437612738127588445329264839898900704104173902257241918403664458017159014663852781787451121285864539241647141902255814307721912560721178942179689319278443612167165999367023404521607070760582057133204813762518159026594932475822764017094409747833674726783817613574336424360187735378934123516655077482794834277058645020794685551270718067226983048006162799154583021252378206000135431569019945685966123904460552766568851001083346448713900607019560640471375890157252009398363547545780373792500052246404935301206881526582318139276846377824634238160029339924899193354889124209135094154369684743101753484617712374887491240690055605135659066404091796792553711361158385820533391911747552358178689962212273485056746251337205032100545961149293156412413153353293624976441211632760810211487321658465921939055030720287872358898680517237480065189459111648939414679272038253812078009282548951999405018423156858229313104960364847557659562166878387770289237898455223626114534721992078841651209576860861472906191082659602901866478057965346379774248976406086918082116210926574945119549421263955479813577617305698091606565615218523352933105240534559405768517666980759977746777505370416939668747358677321562149906841474189618414524345174792478767433618830533652702565231684512502187121987383915181700866995516329880758410232119106066579129565281427136019054204285075772973880963926620244119965794360491207748387530822641528555172508171011816107360231474106512970666895023979362492092051264264552412142968235899113329460465331203387374376378169309806173815218240272094837517384055014793981419175251936709004822394592978912318221849189485864295148479400271576505001556646808304663014430914779588672337525618560072492584246494315600056424264408308413386310132035378957709784144843083640188870663434605228887012996409985628446248709845376054664737929849642195273442430524771688139359756118833806989441592093783283959249036371858645337389812593109795373650114005615002838793731828428827218602493624678627585424511870601724093309314793956922459829155246872531335767517627262765565928560719886066669934635497215214773336444800159868500647237936796846180301445330869843996341870161884518884978737653766970544172092451416915922810588417511641484802379872388648128940036229450725805756935297377819408414010011224771114822331001855152551898924466122904961478100034479483546763767461425467733830007255333662747445919861962720011248966314618264106454220529666076592934191971118190645855935559322464345724078401737709629686235278144414440906756938744985449754905351528159363832427799282496016268195423395151536682833287486294197296690440985184750162828431871916867147004247725275779751320941882674679255512397686477183259071695986286236937825217200801458432851213969773178024854776664105270690316576992006108084605322777977637025550947872576084868597395168435427258172243991653252826334120485457836892135165669757246965418053256131221135668113964419594999642166818048731168300846942140901402834377452701981502342674994418272510342757360242240622541593049902468700226372545575372142413685394249691113800692499421152820586581314581765255708263805762525691901813412118687035665798500248138800559238129101254077898482766214702066436901444006582259157234983373069443640874403510510204827642471203699807529327532031700141793029018852823698615613212819124687924446926542530913241480738851749638415772639595454946803229142626933979387310840189669489173046556295804153893341888947778758069752146816646243412231332686033977692400566634864050564557328785147068516297824148644757084716581434298793754436008323255268070559491279617173021665206762363638220040453264668940487979900084336292796020031559564155512096874340163114405069006832786969813792303071594586056274040455613260568844747818095400713673643195046041909218866331439007568606149479897363831481096831748853505124983441537399731001260573293869540878532466113772673127135495712888403325427193463420063574156617359339153678975659675335072066275644117087022722297184381040520232749608819700326198065340681631675362836865742824119040913110509775734075884819256349399073544806521159460841819358427599798864812967657497462213545420025202185760486472468467678659157665733559889202117047823728352054076641935068458036857242907697697345991216992776310742099400341140981075923778966974277490286794775232091038061895894520683354286310294517274386616715537508275214424711494583845769435035930602003241213811031274628905472767917848164674142240183008372916539242917414112572593397647325491216997754729601981663917617021863728072401180073730953171917790613184831550853877622959020307766826408115704453867262884302305181754412797331383783131860348942187489939531481270886550139722006106766699873213611885259050505520079179638933760163141547219730862874974035237938886963425771025860639255674335056512016702835347681678902104044153150424491113298128701203796684386504350080859574719970690428226332016009618707072076218518238842246902440318715644263315921600978715105325926897645678169049864580129543192307610622675395545842394267526592164491220008648278902665732848158505447798411663632839920739609521569033918638407873279947483814755455546342419404582967991169606905118683740255724125635846078821573360557564827032510330156330825301786957691251910286244312724161284631245427257496773015090999948080771732626862067499009260712725173538491863490468386030731268950165679595164903555400639913900693325823485690540180266657024694792779806549836607116964012859256852696288607009160989381777772824664436898477548598958583253397322658943571355799355018520103124492242416413259043451874354520464745393785550661760045041725277741980027465935922866833090639982572441884231235267553578562602679955875107110223633145517850737195595150949602512802014059036418492632420299305184627961137907422908175265155456151942463010913171798694484356167428860397680030375098180948189602807397277567400520029034782976683851787211374964091143021400736575752410018729315790061110426447633727674826178783623527140086638915410057017574636857099977484040341445547308369635080713102975989232793690388051525006682929729891859989530760347882939903823280531282171261696683584859892775259953688882715680038020492426819366281835896152719930180394372592768279275027479105223848127123754558226827327515982852350839775096877701263177409254124493569146586550980946626127437731768836896395586542513936639052757934565968228320319019254257770794263610636382939538818387906528146711195361700691796066796496492690546828922816949869763731466520167793693328822305427339017235713805195659695606479304107399604615146595115296617981487948445537242585615117164867058782780682478865631487139917435945870353692475842519573623025891472307908626517977348027272063121282447517526022185395175856685352849966472190567061588402720939332378170613753048016065565721269228405215324977322514872551880037197105616830906008554060748549868518792498067675874948865864486111777980851673094926380049237917297613624361860513841170966486038977354382239056040496141059167147339543924200309912708266974443420589460485506485222871143669193632295980824341959194604920674756195888716291491542402764522379980400981148660830083608130485614304819537606074560464020756076187015589599355229997833568251320251677563690176970178170776579318746009623256103010282514986319308069923028783275241576743236793359271843188052398802554519465881634234052285284827164665196152755590704479949086766353114403422374974926377001514965889091046257958583132844519827640642716356738988608924743174991317798990795007863670487470222715399570434464271466103415237867514095114974441309379493945904090342288346001337458391499016069421667927802981095368906498704561317721509347594064460510604288258737475678682856940533720514804133039398997558359741425982813294444861643047518031553275851574141159363846870166875490724163479359849976452524050417790903987648679965624494923426551988833905253957015526976956042122493283072626735007551537404967054152950944824025032443895423484243131026519026683842446357838617822841012593001880708204821409616118941517659749618090173938039739270343111747355971214960005350875292154304161271612367016814381334724467643767983649162382548562454265015456381984462246034215030300536677456793367804136600857527677489130252502041458981156370110555495067098337468856473430854972864988569943179667982336851972907805830765732812954023059937580979789766388070436652072601197575378508266729040443413795180481483385009456004924190224624162491517139446034966661710995656817763315674974746534287721999715517584198235733612845019556005514192364473373435332267421811256620112234277068866011647964298005962759215219832391236897998454357491129167176952386843348811081204393255635807298847056386837674224919046836698948267187269521475289175666427596568534385963387846582034419675193373992466056248209574305303091359340872417681891456449640158647414396575030097508337379410099035211486021677794302991741695530228886002577432889385107098119711429359828747439626404359406421446707246031257944047941522160843014456206607163974765120837683686319022219672969442695265739453071729062037860639187551085924588716528700409327133751801377267521527123019622842543785449321913825412117341892394776192497484317383313481738703204931995455298840314453410874613534733572136208151593800094708671766639042616130491770411744313623825625739928529092595058528322813910738784538920606788703108958604356752123687637422020718029776737200699561407085888067439544367014758582035213955715769118446357550717178650962521245991483856984234711213106112053685989416614146069494081396700088826855019476699663906224435354195173672004084347000315652312852616214914583305917999034430605737530042495360426363957267281398432434098497094453257114878251863297884604928505491681214812538078898567021481636801760866110199912990953876293932184267861015025702816848569214903127997326769948547524544493581475202317210590068264630688805734493705120703288372808876121652869441922774361210625902227658476180294858598994526967295568966457787551028628362427159952689869128738805291357272488302553081007899334470588743790885034865005560036928766017920793910099348703150938974146643664777156075567101843224205278909064978867103140220561840229205502711646245777275004515965199128571169442440155501377992653013313240397271944717422677495550703262908772595779773283810848201254777358060427559538715968089354257932963023021752358918029646585212684266939457498067441808181874473017510902097153458522652144792401491338375358441892935618239304124941865485498521394144682405606367032150628854732791262038622949205653922971927891034625783858859838967160207941179065530481997661514207713654540719326726978082453219973361790393664000540839889715888882869327299952353850892185334420580993004984731698600951279811394529462571989395212346994480798876219425328649206586335774952754242221788336267482151459931922835339074462488782843100709809549687513853245410568002836061547489350918683973965610089652805131345180746667866364901209315443136595695555627301421097355546055130434649509062018693655626215864771966964693871172914583888407884538738570165706800926539734416289490672897102400078152157232898029323056398163575369596617973203896884916562401436362673193355637704403740510903380395284197679556290364261774220151996058875719825429993450952727800793899143133777886015073763037013200001673313949203218283177704208265451118460959957018427274999191609511545033834146345906475124648108336920902749727198157357491868139640498501910825299091085369775834058967040230363385769192224675948176672467132905977219351598868666501700535229028054207768873318503058444200059447590295431493720801881672043060556654131809356111677220851953315556770230869858228019630271304874253335497422756820244576152980488914646833344227757301463675422811938938157891902072406111305098531741788714355107433827284005446949191695620966176567579460151054780917863049494418419469776272772491380603740218871919543640018484816144338809275839035642311429395673133471519501835750341400207984372430479248273675140504374613280151042205820603019941012957398712609749499611019563056404782018408134772089313328907242031447594799369039781970197782120239788209354429596363101344765326965769480548997706520669145180858422546980704926004187768476832284814382802693479700433891615554391515666564531024576320373609704166240062869973067456564916232012831846658665158450125428180759148912249328106255680768081471817942934048701566953126176518133661180753083631339654738287011119068359886770565934381443448877469734286856492941166504615519139654560784038531275683838085375651148731049759905495691488160968697202948768549962831812982622096330500681898481935715569391042792056653452297449612343291952526083309202280979625268418721393162643636836758856293259791190557984579539158996647947313229256931879859173909416526613681353449018328595243433894493541250209987603779010344802599335350755060356661257907192347676872323059488735692673045621384747459205770739010908575398189975134234783836199699971146963492890400848639267625897598130333677962975523824274889874822951128151856824702490891728526553768516234879087724995393712322843927768364023369063502097669895450635937190157278699799997526254548148847822335866172599694954903223270093484861047435351615074568332424751052026476271764659160690381546500453225828587255525976814933963741100673612036599899118157439139069386821639871014779474293142994685197483860663018732011482893901571190543253644671183366203807047998991163019557647645962285465013128020650097129345560021488678694270282291633900264008862360061776062772803873864133550353278581654749687858972762486855203829400097248437802451799758259865207791269797117482556180927142513265992789316388072112011847384621808533360678633883505930294166397769989270053359493717550522374556644057429037369176319153674907702391972650324000243731561448895543610090479106165426219267166589944461393847992196082766498312412407339613021251045753549464944509577046111756095663104200787163996039481310866021052819002587231271603868523629640088418996535512483164159617349232446297561904847368872845846704931087667759466490501085904530043976532887710747158692390026746659876929708567897328149656985236683080735933121468639446079783702976704752677757478423985914918064619983377747532280994441031358864327130578858362046773664901618364958965013386439851023503876197477343663409908459127401081579787580058241527604817889164117525006100407977960489955077596131291589798417631010527077460939095794491933024165281707066439026700312985856678808279806046641998455705844867917162959554656267085964596847149678712866259771668797230607396604050109548372515175534716294036137610069722536561592862616920544821580420611612949864552966428339583870247697505654370373420463111780689903054737721414808080554204368785562018071413936479707928560895901274320505434821306917893751086326949847754881935684439496614327025409492727115101933570446637752886763627290618800920050346027439568209449119165192767284431230168986772363495566474065180402089636926196307580474312524903402468935511780510549164202405770807092044617137464538086655452086243869245869328744398508763548582911504013226119666513768356227355314845742321290497502491751951699920664059093584777870238885872070936462366233093278305282835408913214919166759878065125453888703642293897045093619746679555630947717906589541480611469205519215525845486535647420432899680990367748990798005591199287946764874077763589685248693970692725420919732850425784327495764144706184270542630991888356911959419442662604252419571459218424377145072711835104368719735400107178144671450595960601833492554991335107725424179828107431961913895885140258374344906628523679722026197103521622327821068701481502225238943247335376607285410686507401380954886617505787869660298533236592379139151634932636918536616564142895297508709463685208460331002924466725793341837381598897161257575797092686727909926889055191084184032172962474941022938118620738864263173568627153027713730782266680771316634789736306990231143176704047723725256823333131936487987622148654562148574947467452387034713493032490692123770990900466228350450051750255668701705784717824156844646948010739256086939307279402074641789907041460434194118195586544255876681576901222099452940939556116761229821752919015980096822396213440754774339029673445156743165542721933076197975715939919308532427679798778312797848233841764860363107802171936203064630599474300903769291464588267871230694251456737410527775665718925044071402508394858455933028045952854065923084868540173692105384799382847016220610385381863273808569572864580336342301874079404283150890981306821523265773311516277317039593652294407123777423945054696095924921873443289020172988008529496518071475790934719337379383984758415012348190115956915556775809484224684790081039672396425679888842102714087340141369556931518616812988254918806004484357500016635686882064816970394729947500622421804239526512641738897059087662424595981007056936715578206160423327156445534703392459723726306263701794665220615902914178708508452821903682209736401163899650839524535753555336177010203351810376532029851920525615432071349486203948153630460913754252534680977632917510807028146835178788933964565463728651254226357705437579147054609621719706958872560237659552714389826166226834360391169176677270002027785530530084294142487616110146346829090130295447815762314483883297633705288990347877959273507125334396302978687030677382733438689414670974198223102068869203080484610274816404460818727470559552353775386006648566927327009434949235148410928970054895613007489368641418931121064202041117621954038571272011334909295509127563305986095257482672600577894363648301772618800826350359849810071721034099147271482573111459318742903140927329716200955959053398803054284706770096062132150683292512408552511021465032258591640403774320594064451899404532521509028940261982291886345965728675033422820470123655799314144046013230485568423830068390215324808150783642328320334004153827225934777684764693781209025211008866678820767099533393372304050331431127282990134776260365063568090334700539183122358207618638092716730736799039848319307482593063538144008328410193669133192472534856619556805747666486553833547405516491959937510979676829896781607743103918453340029739966842756360727251117089132770191635124010026420862094449437552045057063067597576823150959991175524061582642904222626284776042573028823368421615801604244834686779086182831795390188107262420127825577501243922008742426990244869680328841995064576043631696919236086376050472411237020473932553201778813862140877964264322502401039866881017737226106764130816140887919998714331011850706079192408652076437186749340463978331695332217956151052869952244674943998506229760867523399141988519990093751614575486267909072455277548188033736078020516880274544974269490290220428894110473993733553868694803959778191763223530432657436539236036848815350943857558102614232135142389298837502859287294892465466164374273295852635086943615971624175806401320438292627688036483082968632587829414855871607305287301806622061777148545909400358418372724634755861591496514521813735579037036577878975236608264681689010375230487427574928513697428243784310785319548222410985448871621072158252679291317262402653161984391917348625871247427254055035378124070822368831051022865410875728061643594867668685667818737829773071301809587787001179940906278343551586846293955135675799289091661697796297144293646600379067593977788821841486872294048054867049055221359223805423454991806984600266133400766277686820762547165623700515234808063931580576587600116331018067875521810421625204309803204898057722888568969344772721130154241720919932073809251242378980138413482660938941569505844903041790697087077009942244445547523325232723311440299183131959790989639271544561882823968531317592962428166667491320951144437508574991983101298895930945536606810948900306065265318468376274114109623774980689032814860213805939894402227410217109225897164914276618353570304091106539134329301129585444341041127578902120094354378243346907513395858367726845883090118617995760771758870247953083292787504751339752012225861568106640639284209872338095695522050913488905602773710027129905967263525957382771746792234772705551924695396190010244345211210150290226427046878955830553812506617416008674634655099320491730919358492188015104726644589783727189535070274048161368166362228433069522604978274243922338683303487258884711204270195590148711130242660150110336178451713423036533574260729511810751774720256145589833161440561984816332004842746034585318156740859427896647727961477995471247957594148992965849624301804417337194887453298387217189838677841780960782149423825948255119806146485545623357894336144708287912774651763143249723290190830683528694963907639477703927641039851899128398707980988064610470775534739565248195985282157941476923880539416743499609177144845741306099900921705534623018862147091928475621695067182349344764729604595231016716461173383999205473183960676929262039721381556234806257869638340015366868545823884846972983478792261715895980203351850500357870277971240384817231143279044413582503887894081566431989187122763036859876867371434459223814186667830910852347790590956491213783196336020382381365036028929884984183910442872148146627152368050852689259127029804044081118963158227147843603472014723922087948451123203333171799956103615741996432869081966016082876882365400543577960263704929644471284315605802740500764118632914381611475628044495441623899261209390855224381807903921500335672656701305223322658545228241967759253564330583603308366312976235324541770372820828120576340237614315577878896355781267378638159836652475561875254668637017372024535700843612856521989974537042640421129748521014785349368156650281445167019041456040677064582370850722204335724313489839069954055335337769661968020270428598465526378047632354891318628347800897723956442702316420182824961701341180768407500976827208397140037821521671228785355644167770552560696083366327851987952641868321504982611663390238586965918105574177571809473795702157906840004438861011956440927880817197961650834678159154478303745669332111184566550657209467308795391517324433400599185541283078938353660877264885166062645984905732594470328641772774121618512607328046545361077352031960234631842229701175853399308549170362758521188159339496433019178102274461660027960972224798986620259724561350302713369798575044280809895430869340932841557669237437332830870635787420863528678172892644497144010979475365310625283158880350659918733813818479618736156183885302012370822290676464431687106376924978168832432021637131622641800647048696443139451842209486971046073536822881201425486752462441097753554563390881390606459358089136542193089052840920721498885025111235393015755297860435950745677539315533011489244052862966836351814526497253137077392155754645805378698196910828369416147874805374948750668838479536419588459665773935032313784422669649355632267323746698724475330032443020436889995874936276355260204838829464117292210293124767514785817543369898370911735446522461375538048547324154718261807216046789469443431863493762804343351268023723829427335718859059354857816870012852299887283906516390842032417241168020320852511550834875423706361725804634836776103718299778483836457466516981858585941354522149245410459359982878568379963960682153902214797383077190998801547460212285785372243939162177803090365946762419864990607364860706323747056536271611970364122557586052708020270114746524045688898016727492009508677200547187151051046237168051379787089476231537061639915044744429038363928547314595581756300567749470724910064664275108464389540498375101029077517317462690037349144546502565417336886540592022144839976429665153102548744671378282698962928200203903168946207233624014867330589567481751056461926068448789343990846948005153368625195713795190947932100714136773244415894300789707122960619490910153513139240748961608101699657615893984634337760518699192735291153137438643087002223538204145058479860324760770304154159057386360889975300989635199732195648167479128843293297328307301305018475740075200841521266490334191616847367613141651300005803527070082340224084508004251660772813792222371787904627085656863617474023390625847921933111204046196556745426831727471809560810262917169115863263503413054035854923520559194995508197772846844624319154608495702477578266708432808153751914777810570505638380533700916529548567713358464420027605933725496228160840584284953522423198744754561754435712780706622517403037547627253968178400119664343929886319937699178134398521236221069477126224150701487691842769771757427476218665475165646969105835997492840373452382492894792150974207525733269114735720884019796862704390523958695934786262592475283240173638271840496028631621594306060723967296968067993622607614858438833427115789357548135149107306103702274634948047512930683538685864505632900942165800953008887901461281069934641669004169315840464850154971985781753280805691107658045246780435401155514991529361897709063349712604516815853464738306982615394428432121846707363554874285338490226285286935623991455177499283087360753761751623231109357005417844139332301175497452027379372963781786260629385404851410100119930203232964913525351995285909643396441835188314708979031457912843297692804242553415019028787991454350214668231747118606759806817451669304295424816043365660654069282704778219761817361566958491941753192708074495015335403422792913499494464195943583778795326685006573061987278994603507508371854357178492026234803012012376837802560899373724127197181925764583472418432987300877772580099397149938594871007502591058836100537767744773760807269224232762720765871374510313730340244319820766215534027768149651661741513738542420839938233162277845112236666684137753205439665096269178589920578874582686944950356674966592119922381875955228029898620401042263000340658697994861039955449822605312818696702483387927394826407643563395654769753775149793376541254633191625578334283716743618563954355271916013176143163284246210312640848561857265266755742515529094758177226335475184290644390740543054762715532408612431092981898087567055630918752048019850405096635652557997723993241802666893032216011223968558413164197252436496515763046273615420614261929573831545715040019323901616839406108902935368571612065917574025932918732891601436687857331507825792925055446961744713358441769252923881687659088202446894596777032692735582243682425386404561944837956920747139855518010215605332222120625889205383885723471649585919564916366339081817902579430933672845694712693959452792580336728772700460837844463049841098914811141398685054162320413559995593013612106779461194867801986748159989994154619375845888483802632120497484613432845330288280507249966826173244542198623359917356795408775761472218801576444271448907135446665904068458171776439882940938395188237931449967319275187790918680989563136389712060311244255248699242359390530293645360581723172380879509311594992558266022935015665073281227409293173463904572081108149817520787869337083764689845026611563558258353189922218285344839443348707021329525715390374958573447243955085068897956892144417899603458896683869983545432605868134782602455587838378986528747026526068533116846026117287799086073498639256348707466871698530023206548129160202621417110352757795103732925950344741221504371996927166473650674484739968290072170125118901924822638953793881639160743317400418562622446575085681635524736205663126807985919894983639007947179290197962416275570626202630336292428314275836213870066125538148180204827874715244298544950948559722709923402530776317890608520946495235964807675809409543874751184042215640907849967916006285895997359972983471890000800877416972806805505424420438943574234755557223208763437834472724110356525744075788874105431062009506465242872691295919132859436562576554481786929924335190923778494303545098526740711884136002167345987180766486975417201026157028028548502363977257968512455093798239628460186161704615926756258125583008268824856958350523105393546663084799543118718735817749118859117980743056145188074844573235284143175320176931424515354048560677980567899686021494228652360347029647778665451457711543774879069045299420383458099427861302448742421336767453092993369579859163351102463388099881192640990118530439866137871237798999466389302373492886492589371824104515729240730196293236618247885780303180645624961970355422094110858430764253540927982927843846520276791437094226598228575654239676844361033274432629708773301083637386048844653513555562690464944069317878118283586469507131180793300917900413303805324068502574456796310324757402127667824883671068594021550346666574947142750722914175413616265787377970658775338970944988970151715507925121195197495747158944679260016429571995223693078421120203327724746555141556920825757348246891015781137435511128347816955747996754347105296777342339951855097330244131324747812746119223518772548259417252453181178192217331514902589350464516175109223713735651482357308553860689947460612967905620949571575042446320083144159584763718293084031011953629145481794924651731786705758549879097092741701724817611798557671974225281008072536432754502936942883058199534042058949833994698768517176775494045532516518346191391345766236103553774203873918945521594758130531758697889125772816838226261892781430898941632612926477410349524263130861882305315058036360346204140324190667849910549062969139758501177740264200295640860724570817991224365457358832206384163125452328115507569781990605072958776581632151820568462325214349961808040565801080075188401221387479674035047613654032854912305082224486761229245406426328427603012187019117388410750017646650177493651467175830962864167137828752373361748458316061998780047735459176875099659332554067757056487505714252691142071488148427168417271302500076352000157315060817030997328679572078545877727613344292614025609575808601425780741348955461775986759361773739563102078083847611643345535527361175282059078723265369150054074610271757802022345905959033773355863614616389267161696113547619511500189697144498281256582873975173667911420392732162503629489271697784231399281771782889548849754135167544043390174901480880928378816330567004948026997718172118689505626282766599130218054364885166293835323180371598006001997890650449074059730591043581519208605901837068281724875414678116027444394681026652062981248439238505842491430505820516776976329846660542054140306963661856820970094562914632664180097951287643915852939889781896645760810315808905908698059427779176714894852675590618160425583190988243726309594171722160038776545529816787154253291241085220698485756991576761527599713955948105464580951700629840861602608005534486873636317598810191749539520411555888287977127432129633134988723279868821651900778573639468837879120897623341338501926414286642223813654727016806428452762046394901579826359940940799331992406921629732550582337494918474284908779049363010395161782739104487206257794590887585756316506782173636065196297665388607168028400631071345301236454485941011083927820616985632622370940883955165390915025518261822867981549926428438614699641010606284761275819078327521290471082486476055038277511267802545573818274362440399540678047919812684718253225478975709783745211289031757286979465082127458981013166759227579335641051936650437905649024310663751102412702502200483636178377326158394223281719551680469375540089735614875246292488680397890769695632951635755899317616053674767275650181204967784419852569391739025213874560661202530354405912532814907094411493541585766933411704210155204185413964216004260632566927774108433918739795180305094563573424589757813067473169863783087915018143000620966373295623699956590669345133070573457739380539470430985668696916228466528210297614771503559578319870773100396886808814445362767059094164388363252544711069233418015362118931422485065745281208489302780739229124641517176335527708688955835610190379276833185734950717504894322369877650151266115869645723959044323475624794537871104436841770156871024596873638032419203022119649375115103190147978424205660877008778540203655441134664989880497788744593983604719458482429230846702637029027497858897396022361828176692745102914163280310100005542826428499980023918979110857829401484440164198010599580806624786052261550914666030068413677568503996919599309304986607352529331616455641118809650262056948680761039806853706724106639668430509505470288487352954769356754588760350187717752791742537664414410682079134595985990524734838551338832919091436250454447603185229147193483861204451947772415387397082289137177006271290105235830228335763330047668730129871442702319045048486894624245993714751887080220386785972795225549714909987160160589979403515913987428821082574827999258956635223158539533429046809798004830128199786469854460876417082132835350704761374384901991389004002268076407156920954380032532461696471174881387442424729568193208129698138152558051157660345812106183174213099056943375750891831117557564024231966233663863015114321166748098493482569903659982590155462795424486198649099709488315782702709413328892606084035506254193175502671009468135610416771984311959237164213488243622762222204601528868665324076848047423902899176474885543791639208243407101955259346548284639060027416248103466586912810200773717685563762112507158631542696590117996943723712488858229744070341491780014435408241914918336454957277911277372071366684482572982257764473071900483127955562885957184645936338316499497231798177799125674255245597845260124105679799369124392001035823774582146508560024456590213614388720841675758689225148568825225349772178928968642705087338581600460790398666228134356342572297323155077267512386132412359710733969565928548384410530763882595813003536099344055866599443894863499104677998705460578746697481938205540375791009019240527068620132639098861551271721068721514008205501129086979020922604019714634702270822426335963275126385700591719064509786507311311677304816260366061043843979934846043810406006914643790693109279749415354986782308944921358079913409608100443772373875537907041615195622365184338133506736129845749299988119186067017731357986517256181876933858349616461649089658537012658938657834057465882678083415839730110357086940374720381130240007615495961994451554608100989176263461415741567348968566499951158530376926069680478179908729622935908428687690898761074340886603162825900389104470832182725778428218784749385600618624871593006575388530524645285374098399514198179172797155871433198783996304319138987528987277888037565722354591225128540372027093419290232225805958110675737687959063005015413993326984567076712935357041639302803761408061163598975452957261271818371012881850338765829712434585470234725622156071400104960555230112684509364825019621954383520008796436063877297815147669269259767816905822225036377585924645093693946972799458682797374793520729959751264527108949645625701491341416498673833766596163467169426055453258407053654541018441387403601178122941032570717625781515447389319914369543110897627149177651677866653738692763688690873573621660255373080798938329952642207944007257124586152826533990989379398302208045854639972809965313940814084621432475598172877322442009209090748648689348979327995286731144146198458823022161401446425545383695520475778810737707339262268909948716554150248406528575078575922103553099492632438015583094861941878626302464294772960876860372211937987503119100324005857224248940065482133758915851018958305507385016224986604607327625215501769128663771684859813862700886146980938124020386236387063520810344221952775369874239986436252395561974016073438282909739099840536023424559758382505030793024129738958455158314575460191096108996365336699120485081273833025237190114621381823572829835623611784140694626977215786285956201198087942568418123534218770539712365413323532711431792241653783036032371006693628066748039287066543824349421361024412442916526312359202496061097634741839539116580216058006188585047882942064079965663496634960171701050624054615653276421724774788544203776825696978028383851171416020705239885380401190549348265354893507434134518605953095884189032228251159129942767648094706716174567886961495910431211020738945019468571152458090056070376674099593665408474297416574401089526305075048540407955359589376838016569956840836786592182954012325306871859783222288305555266096596454532538718335394421980426572407886080932589893415130180218588441621429412266826916257077101100374897641593930258847356340677582337459507115862357339298384144891247393842524020087148958844236561362606549536368562614628173876676239423425119773825057184988255546178888140829043917659127158458002660047961796067978053002946790362084617423332333733341926931545093569982221373876993826623600672836307049788456388830200983762856259795922748994693411734843730248340757548631752338636365088633224046902902227120916410181016267206879529795824522894205437999659875888802739436803974897613519758847436118371530254564688909585177077241776227057366247090235959052593080225929380733679469748935314500435221827674301720520276268950565377007920040805373855174147304718675331110194442932335007410142792283656287037323150040756431074647924735595215286392009969038926538273552786547528261377414823868966102243296345809142230190597133707295485294026835999866476497918487627407273587556141458936659678767181081387676464702633180514758344031893770918654851191832934208211546780358362492175289863126741252362598570631505506938208639020744632134909070299293985597005820625044123894716323108717713876265258864125159987242351806397477329417017642083143498942703932336260198018886820088011166090000843118550496492109497646730954033055767532360414438558604403772753779564841005152427239597130838716997949629677945342023635188305274950312816103485356739880302275322760524364347763216790013622503851596042026392270619317463710276185688682386085941212196709089914248929141291460019889391214325030754060642306442741226381581920957572108723394580482167792973714927449280413389686182250943257452803275461326870182860290895378275185319064925650642930060400741939996693895107663665978446261210629360616354789493438337294401681705748780075675478848175234985752591652361908660231832446345263784827233077867709054397124521434533278380524971141613116716262286082795081404031720556646928674476103670258086920610810339705788059640506716854296224707404380170831735312583757262384411783035100745923317071623214112317893895807885829776762908519174374705856888061115360466940422552821601646515991102270202157500835132553772387772175596280945894781439579445562645962803997912098971186421076508704117926123242835436381734140859249356801721640252014062957697813260643145150592160552233174285052200294217345919009118897559784280822288444977133348181835199972394687065468379820280101503249987241786832610941139235969525196029557459386531345453384551045911090864644078801328921534521065222483821166761833241003795146000520396965748136710140129998689590355843665082668559096274864536882076776486754670053263062004324059164531897921664607488354811248404612949691749999383175679901929335395422178307145943913266642601609859415860584255436357161910316664985071856359026730379977627361608026905344885876327147694651331875065443184034929952616185191938131565303936951493556141500027575826465431112059797286060010999623330170593730103088452372630239582487323505112473255767009197070588894535693956618069434131308873346934503582970413067050510727774344942278781699128068656039595351513771883723954431622865519110213560943225401733496023398339529662039820949795800915663034899166110927921253945562264706917443604545721304224997232215432477575100923396387743716461764256519794179578058452730877860163930119099516076688531221589339414872990828313861442918770551141804906333153739974419410563187320594754757918156777988923935592095521094475395556833801641809468013198512157336951933995201663845049245867472438761997484362830920292336832395415281200602459543858296730820090930134289944809660136974883456410971192863757521064987561058124109959603414837160264764356808217044114904655356759721426389870048837724312657862658890106147382147812776422762596199837782847899150431710597551855524079307625488573782302742625899535064170656711561715679618555189756618880355729887960747689278107887520478601899452682790795889537249675329776533443247457745859235215814834985627783309639320307917537866100290958208077375003062752205248938529725602053192467622440010957842494655576045182158141588742366604362937685873789281781358283707226865161168419027757565243244771417070052890298998826719696645544738495606161539324132560542441409793080601213700039630972221262877507584497043964976364256494629612890535934601702204633936316667303595092145424357716483605395480408274064583941603708669383756584494294856455784117011790426221243494532408848081086475104096394573010514081825117415147633772105594892734499792645803094878428048914806251369586697050448568281843928411083067695846824207849279440441038689294539333747491208995724431172432343105415642473696948446690571158027124245318009004730800425405370670235283966429942955523221237071250593201628347360334028191028141510086405859609419750257836703430956944373479044309758533047926385750890349226881559671747522823517557128585132306270127445411794832956991048505191197066626201724801754538967788447970961547278263493306386332171544552838462464912988644248533198734154522762357765950467498398372048988080943810582203851643763364887144147173811374343142085945718836807956367138236914023768854957507622040133634632085612782471016094679775443389222091276023268225159105087304578242494053413143901836526907222330411049706524558863883921309859162282333004470540007869891335977332132235753238613111934122583796718631475850512961219589862822575290630462980806039238607180785809732661451926074130150255888421669941760510792560112429605833664693324503957610940234956523497435230618443310694419281559878615528402342737069133563788596529206138175701189042384074689913224054532797447775071379066180808878919081800198251164926035634886838193276475971098908291159428793603002496004111265763612543215898032844623837088380940110462781425023636862184849357510788743247584386584411877800019635615825672249801607920009399138714534013423232099761513105934396174038707128899843892260799246460011552864139193591115887013544942272771647130340472729875566320850801305434208452921436351984257290264452857531855012533480466249836381662177859007868896301870029965459169414083685014935526330971964042288178696293594653579101450913906859799256346077801240285866841764100086797611573637021553896258430195599797393900952399046639057225670459270599803869099438505774989797910028098763488072953229621220236604114823324058219114048945881341117364760916724460109811177780782127370345053366806426149059319496598927820642218417447699206109706342494429043779353420704492424526805949851718971249698225474751460172690387037720200176602564029601992829487716916210658964312580176645921843228829066272364808049265976483643534363293896391462099424502167273246437333939206933179801250669826288714076076358629089274044883322511946146226179067850153311021469776654368104230188603824928378123435134679458998326851736770566882393449269667232643539625262492591295293744652104990635571510327922670922630113908714300712058192949613961634545684627198877576517726534574048763978203521386635264522023453637737180046774360512435362053279513200287717407325613310039234070772761137459923411203524877356366507099493008899306017668702627442492401787674967488193869708685185169208951367549478602885653320744180651621277428061773113446525031396243232207710729308091225540594670245752007893929963757711420975279460077420075744904198229529925929464303712938087577460495120173602482883170862428214087245221636383800329639771402126119342244173713799071335234821350250630199686968644313911720941639130950585546057958027261550364454363743516540553694980956935890661618184653071311760580548424226590161042924551957012260331206623127220870353276285055253560904760927153122272401227409204339925589180975509956248287166886193859142249348583007474069486668077456861939774659519892463333011385535165735339662132966520865663180245779746515363900840395672689508417612975974693187691743800832393100334921820882912390188708500036433663107494537267900507605438563042489262464143847428196271234228211559082340024298247186409837164122859016120590273490827955186772696106042041245029331137647161553982795892110469853296986439401390640112021284387182986717302396609780343960476347789522902282701846051908227189167525715531263590026905243278806493930691338825952145734831040221628199367278418604404932003405500680435684226295056859969343467394708531938204735706181409689960966423894640984429698290564490844506923524277586666796986290677740107078128692520778247228386223101453389014741144001254141855523603137992461492314176833621719927217512914117637779510593056261742691272262120184218494549876206461155657885991012056575587245844953415216864827053280415760227021699120875674199420109445368574454320103548828139490863050370770741911720130089774394448155846571500474743868637913478923900896823347445875633393477034745051178029041511594852065669547205596783688340245755924622742706117054937099079147896270335071765081990439698719797888528172255669983583092238730519852805156871458930773042210077585259728653796476875772149786429791616719261011398966655698079371309068781933823604915327779188515576825613471671577445469010893524474178383879576041473077687011960249680389541437178175348637108303782045987641077352654560221280475439761907725933171630466415659583283725157502042872492076917026468993466986906378422994640124807749179990643343553819938648154309585602788076294625078776738097686205231603475301160753054144363736515692383835718337756749116081581915132190116949411346219756822627797375418265708057266513942567521257315905221529598365656919917892662561549509056586924052725653738870840332417767756396868088244025123284071180469643044789352259727295011416318214207406865045663702067212532110641137634670425602753459762992782537442814065696619430129296187644742403975928868749777986990094446872185590645119444358945401137200898238275797408241767744987234990804449178769634538948460955552380494504806714155711511061847405365718381097216610843349433039343991751178153810231666122891293088248445975961690292919488763861263284840564957988687214172574712207587203365741544310678703206381466667257473057092443717685807878157739398603807197952051617758357331086323405510267708954841080879519532858467222621672746724734454500664721842975718046396679830115564416228132462366657212355403182609777117530307685670536872112954717471532097916717489758355258994571563016756541572696359718699628375281095340782719490091390017796005264101056497098623902624324708158942791789576111839117255459257092683880969590017209136211578583714857897796647006528075269072558475960423757562134116279917822771597653989922309284189035370724041395590663631244807837566897290413216923282282211065136753273358895670080534500939742205413251940746594799386969076385686744660363728398837540290658435864876797127039534177682163041501814419060132482136801987053255991585234588653218350724243420000149563663587464292332094365075329106568823516508143027934293072655542758926833974255463374495600981890183757234501148815787185391404877486560292458363744931015851007283222330659611924520217778767727582081951534543149690637692987858044454473865843757691946200805245571673276780524456605446695474149876189249605197048666770746849412928784611031861568665586274295626155470250928034684040224775089321739285894729136375942224832311572713127235013757319763457717035045676649381921924965691870417093156569816004049919701194028718936314403173449880373432442240913378078699167909755320781578758721113240698021748817613283156782966140604428906956023894765646249394638867745179262941187685424541499746409703108184665534072815901924038360200403043108627656260444193865407710080874027237944475040487489225725812315725467432166526904102278656261730802794509761787133151095803910667731763712853908555253812616050252351729683328192457988301840134053214996016968493685798098082105985664016785469235259295178203763065350198936258316705468707644784726591663712087712808045895546228853457982932167541556231396170170563970560645413344522300996130173525802367519519838390055015940292088380944919840391530794199024812345794302313520165234521981941129696805243074297028916455746985946537387377883992680591895503165383088310138782865107613509358119811253966823202246658301680149784595190672325577335357749071797083165318706301467286990375874763970339034205480702688926281363615772898811306676276515953826222430818269538368384550238809918224056154755841383965999175753730989322502476569108064828274817606702546425514027826163547227289295931620109768020599037461194949688957395824687682351579314344111968167552001859031007550252595628952747470618722477195411482763535711201830783729057374740695374462287490860751380325310921745166862127865886323435540266065737039576919394727067639245434942175913234197619458296632012058044697219848505350700647303758119013830144243039525941226738115092908018449667286286692743814487933341837156238997618253769412389601519505712434923555558794544257102814402748161100850822742989749680495411332635531337767559800315342300281733723675719506598731101610884660144081962140188554277261758807366769621910232387126151459264519848060656534742217529264356514171668307357645393478084397733129316083283475777710630679369969243301345921566210595503131705036589731097508046611194513075569016711759318467137011450933467396243712854293300610026727529883132008771748218134337384692504860605590043058304801109508578899659642377781204088054055123099270020567105257113519356527847891890428087935539747116778017979508092658817067312797563165068834636161377376320894612931155228334571019017119883451875895924047177423572192497519620299782920716706823349329201162893863308560322754482870044742046944112832437599192365978862651517126260483319714473416623634436588454572114870233970865485717955014039680561508069216713008704687408937715594576860523902849334160600425042003998771600769702565891718582145813161688473535206345868163266736854212239191619404244786040404904481618770385397487349914436782307898111658664147555696164995633457354272513365091708065289011018293075071991913165333826411479553496783300398105923732844404570437762313154300169127053825722588446688858143930636737959282318819984083833339052250056085740861125078214508604816204511481879291074631742794840133088247979046466663120924115217265447229045672132698034120004869987791672878400565765363747090474634050604504717134636827356606786309338454546477261037381317554986761545034579754535224297495922653885486106061161363881800732472756925185123102769231781310003334352770593838852392477161655580701972435454590253562004428799829443012486108603471448986422106217451846353979149266300987847333713438015942464194150420874999304502170103233224623805855443652890080711799945757592523703009826614313892592460298677924553463274517125913330843284403578921793345725745328728518885390959437342248463593270180432442224995971540498874995218888078112214308881125400017143210340259899705954357508146104711810353280703753458717127042919117599713907841652072621135320621035668573335444161968714313740229206740233360079146526184264615193091713732440959086700020166129248427402548140079317736171072764402530525603393009424527760371397644216427628329341714975997465607644296726356594535774193406268440106165246525922803476742797142672719804060616352940234739618376338918643059395695771495990238947131519096616131566847324793405578518676216439524834213396653519268453580476245285354888130448920303519739936332361177275829438494413187405514588737388948881704677088958102317760326305653051740783960978100182510858850967555042056843141796637505608465862187076381542439550335581614592963071408641492979095315050986807644438607807480173874319665554563663606333618934468799723112395973394770895587647813428609796994589368267602743259643255364646143189914379469659476516038766474890413984863193589153332447053208507454597194074383614533178961074682943836242541315408573563917664017166280214390012783337830049787840864490965097309392794701738813547589297651463360228952587685318982465806378470225853522652994216942414249923745030314783452601848087347572054732014959937575859232722964899623251709561158569701204495303619721629762721107822313201502480786157768481414335942220423948910858846608507398428214361936580454298175473290656073604697690995913259055885291385373888644568134974409947888362711998917169263827481063027349962145473916170768798509364493716268023832854283164312412486864782097671723967826578590343649683452846539177394721210651962973026704618348418044475877147281366986915802884876513911914401459992906468850125726799296541355372915726830040146553282010344281371702519338739948728187446162227092195372560781980272581343543159276102114727097957762032729116856599997567817631006869228342248478516777406122569629301455124961615124594634536076348817035535196092433577673467763374069165677389297323945303465453447475130499908231546658019392523023643601482690427844929672583564600281754552742935808642197994686407629835126112034321417018235117005187108390049707011263176221102537692891204780180542980703448427225403657579070915143358437774877048951003134054071341447407899598859209476477052838512536668682461476510483350462003789242891963658696104024420526069043044614271797292145904491914054178004208597671001626191633491788052004970980600143098735301452906394823847397550231996618886310186738252434469643993252345114831492933549277250687615555170323999727765526631997796663665205262880179478942769236794695906882184579118278908358587765820674932468747757359173814581849122511672790803159029303520353600045178853226657942101586118022163911273237058382675123251107678148546138861197026905924454832364315507274475582570463756856673389151585584876689895120044472167699686048066865218891978749841337847955212512240297489244444359542677866596611155288997644669934130262777689839708496605121316054786859643081929371142758904021332761722660838340467716252350494248449246053397482121859124297559233591295067247170100095086395764318007061734257324338115734305029678713789090862343957360056715634014294357840936727014735858663219248342217097431696512229182656811954904183938963534092673022805791055083105522461581216293490722487190564817363110992530196380096191814610586552003295918720352768772060699428664258666046680968432485333946685465596294001473017277319573997409848050359977552953130105753375009227239432346845306871693007103934258639266745664036091060104674951037836507651604763208334458310731634669823345947994873789606573881904107426563152665636301462421260755649697387772633061057708235845362156856938987204237227620368288505279386232591135757026910436530688611455504627037941920160540961322519001093261427836772348381636997961360185929001638493446203340230887883868806241668165423831375518484955184503361746895283793320087434107176110685978695972204087872364926315815250921845558085824514005298745697360391816495490441061265136886988735226642561659042183369064244349122615810566277710243215530137082443022044385068578582897687019932686648832601670022198626125262987256530918690611152454489874084325289750659043599314187350600486608640804304436881382476343829450967598540725630524871485110558928952180453301171741447016768001237775059099667010517351212384683715022828863722353898499160008787528036982122273885255267867923202576054454604741929749999349575477492613947638215968988219253550742390243799564252516384751554320162453223155292657806638221981391940972287486901025616886446535205233100937430584084244027574530094821470646269557592021071922806436426678671635991968929745256991330256977616197382269331909235215740940804609004142088363424015757974328028149596075909802115708007875453313289294920328551740529368496878305107733155924785922699913718461637718207255325229055598920103265941445147860144127897932113710639433106889020616528116915443613543419320785293300420657757232333996872687140637369952742756530180807781410905478463251284630384100313052168576755398972423672368008859440705777974323664403611591653998267520619792879187438752466069337642466889432244287905026479258455717336528426118178206430611593013976068024331096608804571337701923929746400998796547103658469473376922717713580592733302644574947985782443831874666132949766322777428057645190867712262447081927560666085206753137219093631953191526702560599270692771249269028010089372036392280802070721366316063483834709609892336999638828854681356963713450973473166361168755200068179881250043381009772885193892006936040773964152574479069406308623682071943778104587174236552765724124002517486326263542765898624897921798587175708196377518785711004760026671436737077188797449826418399108087496883920737627779744374981214777469205172715011701097422685776147486074061900611682487103712833778879159031280975983813743935612595876110680845697399244172697578980990338712354181185097637565261587648886689678140023018462156240951791703913174939387041048165449011353543546710093540769973720718924485977961957289876247419686889901418247248067145361048010781307636384101452811981432873535468087890736965606800060927909687497936940503962478086069251354494427608612700363870651061996533363948921998470455762332286444530153543671413483129068555601889175534953458575858777418297928936733354513112874247998937101956484571939073986559620553465052187950448335854386802353165096782040323473100784053080220409904593187516393468787312694247105291850827409509068480589489090830648953497028326018880814419342664137377772989518849596561012187208603953133790879834496004829834209828522363302975639236426553953071325852356022044298058599761297660116514883081756233763590640475359142604898243872060984017941283587629262753442513189684513305426471435865002879248658818188861380617357611145926987131230120309458401414717584371974596427450181152614097425786955129995192072665107778706998836777388790186094656764506624166736438132529201619096637071111719539289113254286718069026461073252777059114791858937785994800895020937310146476410157461857786203537931528385006361998753850935375736804223725444331504212324723794836016802873426420118938962988286959192424585864890175082446968188493104715408625659676503542882525699089061992624456452516536897486753726641669937720236777218277467870831646406519265749014177724048288672565809713400240443429374622897364879522239287843854468038489140354619841302453192451366420252914929359676457863608420243933473994335830070164226981417188242707668714155374512008906742313363159499256043409706427542403841685993310386383661911623993679184696351925847017232726566944653881320992971561473201809239802789677413157470239065038194008248586592289382327494333967302387856763617014777443109956987681397301999934197801452334023177615242213580533882607539252302790332388611295783254740014581873204337430151042784340303906509262478602352592881071200808118302140363329767473498078038099859019268784197340179157856472608015622696025015719125608070823750162837698667012672621054746189228792996989690071086817960569485399590118885765641736823820897140769327602067440378367988254260083363079731436144517729673202575394424018928083625785256351615002351306395036211246667342123863723832332980876835568715242842015962368796926639675906741706491258026572666911998502337797006202987578636272962900275260266221395846714512926523473986316823630938870733566079460086748877102686700549584476802848241879318932879384834873073823211225516488374856962421474919293532461698253577138737086625982867376791923196896142133119843348078120393658734793784593033720920178484265214659486936792654732035473818810189598709698678060196791529491182381701585448724248728625503957264357399173253272315234640917694098622031126014980257976337296575712203380800893350645323903738144280461780220192964491201856323676702040828371354200469846582123490772994101989980529823311924276151696908760317852675860880401343901829212216610915331850247771473699460612270853311577984080011731341455059410007448173962800447500104644774515519712133601175812756152987961288855519831549583781220281290374927844538653305525267369119771263144332051124311890743292745183084847510621577964065946566563748377588921579921588831136810231838923548369678163149586633508205161953920828748504051888674924419384007258670794676952446427410103901616507469532856981382065038133609883878956473224615917051530686326853186936999308548376777656010552304475084413675407080293586079198385700786321463015980413999899280004888784965676438826532244139377595805860143514602981503406344521020596294795159170837856219047317827882151837518976645540144998769185956219568043053491425791199356614869230604685614624014759007432568236990088494256716863496156873958389080394596834339952707170176969739695972269859755504393931279256753996545525730100800409634149787404834222087427802314492123740469896480028621943952387832666427838692369840911536734381578565681372713196197483189921435476840473976559107328150440603532699903259631138442109936693937014467893869356715353719571702669226009570849734683789708991207953269486282853781533605595483188090828872166182025997168923119122952869565125527925543705573836284186365933511770909043968630648789518708320216094208447011372335881673709021233434084646746947133678751103820820623277196373262807824865575643230810011831440720283840051160208374097411998528512229233254894898506396149846376519210669776734270308992057051162084061672165051621104317889665225358275184430970823146038379209684818115491526239738051689704014349060450309282087987085519529493471659306818912553934796966677146072191556874228738813259856862568897699167607649688968789434045526440069140028776961725015509393759238497941699301970927475408549116530442289735770757673727490557910002717171903783430223642214083133641267713252820124542990923789906122336507777560514936169025287377491935207595087450582376597536000571175089640133578754268925425147607959649159183664290812482563126242078002743333383329869317685560668459389047641148255637254571800118424988259375043783899653711910583528994032225954333623104621427327154274491194649514493106414391262719859067052339288003419346661271978949422369413627520818632665566392629306914369119273705881125831840737506616053519239139040529649240282818690455251443972424026728610637319165496504372532601914494562811455259410945295967220963138198654962144720019536124343633484089225713838456527459404659796338049080686498098009186435323580539458883407244189679261676449601853562708753463690589460101232696851543056673739765963706516609974839066951061024027156616125496455682918840307004135917062865048518902090429596429911828949015154355053503160459411410612083844294601282679260192214798047874271445633196545462153144121113812834623799823391234557434731014125804226054630846214187768031931853943037299746883879142591215894117977700677837299602273340522139653258137298131241012463552865231868226209648109494911822368470142273401158624159711791496177089698256256653210731959605359833662243181340961343077735976037010131791390414070190430537356413151567452209714631853530438366790381206219737367025450092795315120346342731789437086140643770975873930432205378198000961946710146880840913987142489590929707054173646693410574388958360134605647997303086123591435209695420745786536218990109926273482069711407513081285513904016617470871712171076458381206949373826043213681958298100875448660694735266567959801913838629742702111271457661949460217837593378409377011495716739125479215700920937293627157733084759372114625760825042367877617297745789326892417682421804622533266365527889834335802776043698791341579748236890291906532229462133904047917035069391434395000615477147180633014587310300701959391938847972028295656626112587721353980556721623329109238596231563587708449344770127945764681747429218075016233597706137719371370800632508297288399258782376358036994442839362839403525614457547277073256272731120200184915770941258581550604157100252791191615894258353787127271114824916827866766376803718347955238261972736420972498001145433290327345890379013114922555935841447952457158954478337404228647922891191265426082777595001891087445004065300363431297784269044422231618868203801154258133045651600411811998546175786334996110343488382704831834674104304112895529043300382897639610942427684264293503821311759772501627406767625165599070154807565451929278615168326082533218860845442254676852939586130729443210786617393878677991604058593948831150162362676039739249419486845760297001979347292540270528500231402139154839085253866200956088823099584214106509959915304029252153247594509719425399489108691826275425333487781318252335654355887940982311939812019543469242335037483131476237076803591248696613820223705437411306243352447717561118422166035336601494339213146063789483585521084857576561904743512398031938906014419325680164534317285384829183552297585660889175624902188386795333685571338669630205832824307240421465990570567795951101238719907816354366092628717704316911153326553525566479067086417904098529091078325893415885965947638345637870393768794310096964170722230775592311672772508610872223807062746338294300942272644790475239636457887203817790851348667261133989126490075135636923609835655638184434718180686415712987610340649221597062800736213471760592779756497449608044597422994268521309937155908209070106094760080424717708997071522790121089075164706664913127256315554951573887814271165325496478790938754534105693892061715831348260955615956222311015861632520429862803719597455666955554606569542061917456604941926682457435135504235670681755894961444565913921778024431780597784151984215806415033259154607700202607267343205158106540732005181070552446783259119634394775403447454125627880367310426844955276103279927200835522713766191525265809444429821368695114369412992925542504674676183057645286754633001293307610887549472844936491748542712124899102170097457964820144596346992838516705594009040040506362088145596608865997348586377904907177043610677638465595179314183727529001349005104606628223274087787156895985854863209317597752472600242253128797388579553463402562723774106932967747994861321445257111097342690963052401484218366863310520925323028494613490598527666164987147799172087506507746824734989108971336908423849532672884502845204497831564928567493709733154264960678496693121749441236862948118338335571599094693863197343019997773319567843344697400065000442434093175049440051577964419208740368004395390046891539746186577287962366747160542126979306115975118984280101876818368909484520028197735546638342938579444862720327172055588616856564404414697637177999407320401287710974308009580605082195174995904138005167978382690593218855051108838121889877635007269042385321195314886575417484942220551503893483784302747534323150086205540686997346625672244872677807792279860113777878792135898623870594053887657550641136888177911476531075978764601940672941147972022305807067837006478237715197189952264850534246744479517655903967368657759674488060792316536185330534932714934096848458785924343995454471796415770251881322535873312216854010548023504476529765414826237681288483939216098760030390053229170515522498872488583346526714643099750752332876633371561008040189454357027290832717157379999132863576169606749352923310743721972308181637177880157336637568022041019525982935898548138378421200946780004307429686590966147943069020963960832612116185326063682307509762642114184611737728566474211464965199214928688235393035481174165796512297543671003243958695175891950047810761037803313558500635634659175799414867188174004566228603402502370720602054243649589887698423046658546554579003527931755052631229202225335411981300190341822626284302433171087668362887757181299955280333676654470346325563081217980658002979648934393781613688693803772813902392001367656412694305867602215138510528317485453811485198048093971687443759156975897234248006429207669404191247677888780621610611789424708533704933087644673107687917803743245301853681220714677940404628783007490586730719982501422317634026486698783712400476191555039781126222597199853211429371422859912149452347963754764489057258995959860911714146803767380995784059877418574899964726532626813795081615297301186158073138781424992717117406613732197225952219393355047047298128842834495752937110721527232906203401879247786371471092133353882135561778407982380901745162452500175481732837240862134921991244869472750197068360915501939560279552186130612491934467478647937760148486069927854321989759227912458962112016818582401070104101630596595449899256151008226541146248076219317139019717052455675600848863571947916540522903700205473694629841494327930023208007987351291828044484089606672890686610534564092496786797435243509828014074157583082910851246016548714644102837035038464910096476662461769249450940622504346677388138699414663425647687340818086649216184874014095501901358268261447400775748922888993966374031925976054347465545636859964303453792631059008811653647080611749499482878546550050747820546935501127957867408745535330925475069289480003267729190743882722685026593359564755392278299473002965280813972156244361768913391780380856484211955326838039902324787826801332812747019607396593244540433814751266952729580734823530421808449813454336690807671572292493594019834753172526542139963037005744636500710897935971665636334706197979202745681076009367002268820501827370121766931797181727330740070708234623828290360430019098661831454209482447887654312621260924620821543060278692109459163133725258148596077125548028777154177287123067354795819605059713370500870826083457114918986309967508299603776935473705940665246071403059892854352200920327906222834601753329235121936759740822060661522025076704550619552221169779800239671311844949293846019024231931302244799996034104618117506792489300759384961254866777222591101746690026970233060146793617001975901768176026941300877208651918020577808614378035083674969694191004025284528796522795424261538631085821214843515072995263795025703694022854232590525329331149336700968521934734249050484350326007985670485708415122585217969209367535080070088403965072733140333581257109601572033786224921173833940781571260122905409701922954502892057701142810553018668866626215226489685295380460853425151832146034764334879139665236180733602963708724961925325044970724564538721384837873923741504938451814642585406192015679681523239128081670497753136359428225855959394570093121704842702138516983632031125929814743868813965047961794748917462404933831464096757195462996617078458706343762211329394450807738023355865413931593257889488011196353083620856857913127425273022861946622684981170959387089698254331476982440954878910759063857204066355864149654407826789524633419886342045509497524304829644601294198498692833797110288695678373689927092192351319753763064885543032008646753264779659298206879791451759312761722285337922409640682862580423010001223176370957279912238689165771562131289876953072118360654550204763910444692858585835796469582412188319355142490940260442363984381678500001956918577853504427429319181249487284901268866195825100304041540515742202527285352265943534289705388969443833084881968450221711388365423832676226554962334564978805349959516746554011955890201693376956042938508376931262714812540982147806910197573063823578848235507712317565638324955149181864002510375961459866771650418964038298761746209470808253137890598770626936897186853907906137701807248456183976381194695774683429442897070716973270415625687081616955272143152151002199474474411809263421235583712496710104658847454514919485005102591514881457605768572611208963972267970512365696506354718269259095016770087198423777769055940090253269655849626274885386637114634715295264364656493820235838045855632446865291605059879305111496470545410453060619003943638961679047232411446413026436068306048093720972481091710972531867601546459122407179393680341043111243139098223295877931738150370367778331068771145676705904338314327178647999559561040482252834134241044229271515458131326337134167358602683615720939659274360479899082881958095186877672192672202413602294962004148435321443418886888592851805550543363975462870763885254229051049825765122178701164983500859878285029965524586682154743164097655113864460033748550232939233562982376443272508536117495919067414302900083984353577030702378207788590674193121772317143661827929163879975055256287068800406971875625451496646773414258234245310129313922467405829387699152792415384575235629863590003562428308112271017102255201247497575697482902833580213951102634630067027192437855217221580744398118243474205752396716324742300338020070137874005328310257687185967283654281712428756183199395580040484962811508108248020035479443411347069500119879926601007731417831383834198485429176641635448619242430483511471630267544793028488549883490631503945805265555612243422805295277329282456555751739775702942078451234575419747098591431437111810847655820297322897422856575168639482903681043807494958194190057560009484556990044719919725932656460078058225826071553730603400440342332340482722149386658039891032537993698310129103550014230739489496506092398756348211257716828725318781701418609188957637138054183479291479149472874385460521522950842083800942040368053567201202914160602972919901963167715848724940729496430155701905175190736996693772512994855351116487629171057145460454993220145868291208380107041303841903405176341276378354957819579965074902586686923120049824697748439117984873658248070851816780544017764605194691573509517207963632096456298053755309956286667929879598206849527497371036411059461859884259714214331414353414742804579401980157227834386584459687411223027747913179085026782992673954410634083729699237823108911839214071507897515050540789431018490841120042533688750497968112213658866108537099589148624429326092847083641882798855392355942762550807603661798607777572902951205735748177522712914728697988932914683201681303838750524083286916538354009885953715710519048862141544431192594421986844717526065288673334499288576666363488438332278997260891135157915333543596581259485412931261888265839978864902722984213378771478312330428753606719089973531586466331117979836518514071433862524652532082938117756997257933580111228293891243375784918713477311263508949065649309067458632929977332365146975238152404829365951314814836681684998393742454545175609755856433662933127450061228578711439288608604184678744503849574762554321159149550484345430831649471710619048178247816766270679638410231605670729791571094759167218799493177912392739581701436999871911135698375747317521660159722203482868976886028780501708668176528926390437403370537688181932673806799283481139875654743049911197182675989650296762810672097302740228712225309602568600720898597433813100223194684749906218259779781524219092486911122516509596272128997159468742998563413010998398106650379375064507955916907169458213850245640367214419219392174530030309980485795248454824647322172744500145174131116115231261359211679907783806360684213516248550675501899587015035096999561632586770900506403824013804866509873595791874296260400165553331810754734484018055295742307660216628321519537447696810967988986733021986387908629993602325206921810229173349433157723658468433341370885270555771734072274773744620595239021908884731460509333602631991313044001704000365550301214622362375808671277382958132437753101300037915757614924082480476466697389254765675332715210979668051776548723943927895800442382226706848379088852552862703775489655247071193185224281239428721871598000665674758873205780322488475460238680122000818974422834871922629055550679400938721993237615507936049631303344583237681487288437593771987546485667465937487020178955852555318169343957514928104902089481029194034329348510579187244794140894133899559058965637070597083401610212945344225657071404701624715880233970982705917733078095851727680705155264844212089346449061991419016364307536153691624298025540675184034826313157197175396166567079093571807307366952658318483886054273136944827408004253907732702627569816378909857795053796478725427773254709586559205535302361559665926429459933719144154196321823734925802601427538532106897433008073717980937501609858939433917934458584771783847915346298543512689335222915547282829661949438495744324737573001781032318004311493985442938715982235569604763332965771712289575427342347928302382097328607120820681621343031143047943676646927501478133373911929189063334850406603569140330741842217265955712580454539344696730123758138509884156106895209011859430114715824481834278328154293962658924717143244438896036553169010326706607947323614512747652143712930278276758431272787324233978135556636426150443220297373272804905614163565318085391768551438148691557641988503627870236500994970051353641631155319276497054308570109458853149995533365539045508388200689148050156542327732950547840161361422379885347797880972455670943599139350871026038497710365826530776798487461549597550840492080226346058751795157191989383896074453422006054940477706274651905861383416246639548028739197265195555209096587458054968178683400471464443366325278379022610741407333263075141555554678931413020988707132868873426220799688228052507674043986651795817667922526547310769812049521356177710797255908923684441921284651818149095823692409500994832137646568034699058618860369989705925746669207020408682540424715982806373276443354739532854871887358505827607932714338249555236515137852997026912158273442835187379814561953893802625724295108854309282683094562296057502214207356646111328258512278808536388951605196460208504035933899914725420393583807337458508443325277703505931261506270129644409249423098115316776062597870143358439897454507043111140304480464794612691673272536974257170273377502123424642978021612304437767066036295676955849018837220097831297182551621376862704623991297860326433753559044770795103492609433653383043027974433697540508301986421219884807302047921618759543914845172940380714021771704920846258936783205682487475791897821722829413462926259672301497455923585015029640029220710939957253553871000299621865188409197049400907253906803052661623387704743091535468261522613789708185292829981528112957249317061089883615130697241815743081544185303271497259790234497832245452964037891271150389953984120490284703508988819851827533582707882951710173967322728278462252694369410447054644755205166901712742160501232226825662632268639284228605731291095524768363802727234390397815135455392534012836100037791340287651810830847541035622819524713946044419799476283284642415586567044942606282530981551107244175869725302039049094185115587545454729769647371624851493889478714146682698981177134153892970360718026698761311485678489668508884903563726685655449163620005894484331274089733420635209768213456956374194401404680359777153295670546064762073359123267392347668015636373091074732071178998735495342812345647731440295070860327772107134580262800238681480629942414110942427947253924313652380553182858970280267007686441926957570117719833349982182652377051010776434687175043331812999244648531502087465423247617107201600000178121838865789242265175660451642708107876408513599634597391136986977575762808698678100092968335292800577716182120984215112261591896287029314919102328228044869686992663887084225710896835332059030998415048110106054338183565827734703729777587625553400639210265020664479867062019657506879057893587352424612952561312006358045811891206580227319868861280728856675603616225645459739517742148202651440977630624928012835583355536663094862362666179233409147263356986743338894243890882319353545285499668245670206354874050719295185749092858991557270265823348700530494306437335652757083243368353803151553838870233313705340453870521566842660327211195413607837494533184551170930079224565164113093904482514872482299395310696403090766311763729971474768419513050312471504946054685461754993100908474216468476601877330354665788612741100220872227366260525825645859256758739747902908198468412312356473108318127315097137228853719319998252285979920200954308505309102539218178685678800779239481859872271280045162127641940279901245824401260115812867280795129569954769313649873335089345933660969760126656420297175517216648025261892768691743680920357973793753204452962297512281453304861622687188432392522161221662674810995817998656170111430600423626748307443927590352983216994720164382789765789798087408483583494513083289874176108588382999287478985758219874673315716079081480106741204008403895725916827999281831941308632713823843365826085587577848218714843935258468348755083250538618260716033493317319699997485794963799286006458660049933340117766974665518151495407513416795327526008476321408623258344444443937418605658103989340128683803977608068149448003588742006750149457255327419404943096338072057151299388063349567101298127293736502270210635788756628406223975620624576164643677154949172638877326314351583199538966218354989983467834352164028149207014433760206272681994853414005821618319908043402866160604195100056986418363058271551725968887908118376275573584016442604005465350788622921696126822125661447286974845638169829293049300181729374679436935566982710246687543459762606497831050825931480290340175504494853305861337816055372420516418599200511886019842827216380730979769433837858173263472949795109254053858239902004536625250848017474795438692367289400601180696070185276538074683761464508765660493918449374904015711502957574662201997611853148216081724532864083042984623661204847578301691521761012691119238315530663019363210978034675321802623716812439126586119755626198779995177737893413902412447139627395535609925850329042491097450116768770469726570231902766760632737687223601724573965732532885315500489133270962659429221979173041862445217103805747336815454565156676781884250574483335352529711501603629160781952042876589262870965333345804795184881600442979214964297996808312445244182119938697012785161231178141533359215360631329462899862302268753341992946898276649347221624253851229350997912852277565800808237240122442398839226106104968536999674715719869415233168059440601941679095635188797628917578013015504671103189924003087855366826611232982625914023395546247538951221513166249834503712843096692009189158379382956000635621481825006881736506756183198956571642995729435201816832283277956862347114630693420439977057532888528320873461179625872804831075402242443135582286680801062451342878364675592586236393190784864222666733803663405245506650330218816431757099063712043067007869609157758254254900104710326707580326934178088028141106691612294351059372279772220807222312537509014191557853109042136705173474339775215890602558016581598539565044459792232924212474455316929884429299157895078726532652775590148954649172084199058069269845318946953908487473979938957895177990837793550590796571069886153650906311903382272674216029422378012844218755508695960310687714149600364074863510418828791553698299627649012747712542564296874952258254191652615386579300970625794209929578747116724747147091787256960633898490945951801457436872380809854272590730324848934260221144225241533016624434095440203945600944602981106450311969885539915306027013067475182060323971685960796744604883172276452639691065769785339274085378049958685756411704511544868491910250992577320049498799012626211136806434964557696160359121854858772692695493199760018033148742077591993253218964604147639015722713888602931194683169279481322082821265328171360150678032308750276351631807865601781134422216906648213194906001048086616077700375420506454373312218151790039803487208385148834322166455379482390841946274401721828609720116906359070099929581005554527175839276762315181674151190019679178175683997835485619104415939064735540853164970899936892359874304361550242742502091493433987219848566655847092314998205915940949616898238258720488558866982766086018323739973606448195794757527827262583374157196631971851169083044702679955987188719687918518113097884739112462770544547994341449259612644160045130753178432559731522953298048122778942508577214486721681548460905743309482257545982692007002390149378157429514889628459834122280129692950307683863010154226963124923640046110374230934085361547114418510248864590029357514505805732496026897660139677467575476861098627603195473011489411994146098932967150935972146843893651807051073889156277153953426845954043462769199672257550322151032052979242844351272845401680214792437138637745967977790137079113758097734955865339256724540876123646823043970000258838910082103957305220357353572635707733533900797082118333370049253638922276613834189276363874247397293770134439257444231695031186680689593304267180586232727058241365006345974983116703764776827754264160931439923356064748733384946842540545435716256322818996918518037159745497199517963264643206917343499089019009440629012535885345415762958967807856576381600764356179860244663188605350997422545501135754872090192338113449875981480727772255164295087016198784248731125187738957880808949428515429197877171368913251303962013789526508184519007518960637584523814684421824630484084657572198521920026710372752780394682072916357611273212513774670662141040897809165396103494876225202355594683622956560443956297369353592644667843573199111186695265862411176143390823176425867465216536425856878381817605701163515660148983411059689908782746843464667017597344500137891911618750538492182293153069283625036618095024646523413054191965048208441192794484592390704750479215792709334297896573875046023535060642545531666930609419090466063422363649153464042489465190259122154222929536319320072205794930491461174923837582268075520148318455309421334616382948346948489325341318358423385996409808973329011370070092519881329257951553648795241385880658012240420626351972206075135668436105655672567281799909397872119117979869669977322743386647282310160273750414635274446554138026819790292051332741455239359908822534703253171350039464392736991356757431437087021650362606807120991774611379401849788862342980122540598982941397608240597354451964146711192583914155302543618333716540312832602954414369396970391009418875223233214699237701793752381529977219237540588059719545939964358438383284504785255484340836561813800038491367923719061476825742547787352900811365298160704995577696056056938597223634601539396032524450218003758366614792309093336583949798846341161070547511420761557514267333847923453641856783728841193661863732613757184307727802521579690530122368185938661919236196090473163397622347829073591276622590284123260150838768541883230404381562244485632135517903839198812863289099962312525738902693031195538083774407399498591608954947739885471090897047039627339038372938572720008515966055584607861298698664294657481761779053254687712182820174105752923420739581106370217600047684067081443646370075275420841369817633277281224020475403418526501786997042595479031950300664303419568336314598687144103915428034495767006873830684935168689939800252485705476212969197881848256620194977450904646189278016897648361049216000571047466470701466376252435062701868324063220687922285752112996364534377249101662001935429943000904609132904037373375104291970375002360971609548283367975334310335848291410948729465576379245115300290061669830249472968215815353125937155834605230272270555090164437785063178561493709473220859964101943636972025543662175824429698687034699908821882546869924646383412322024995522610424487802285038307836543174375828550184735620390262068749283920337465538190039914597615763888394302126169256894819219649347643015200478180648247222483027092447090856219860049957402904532425797318442413394364898478972128461534240435497086391779503831593588248797107929328243725592979555311920727727004703838914113380004794149601908986099104171778189353873794964810396050975687642559397790387209170573664182228438402494035123136622802676163400437501243628531296923813655108532403869417919392640903227952313778495696444199434081576873673824697552087454061347245901221200118528174677485463789148536847782776150787893641523862676391730759059948909910555959338297338229847764577911565816928637540123367745519047450999657040345058452382957516048990548910456388568185664451838418620511683636749772417254477111100254739125015261467286386124632136413919934170761350688283074254800452841189602092037021311085217853722816338039460520082376636361269582490817812384778978981377718960024203544452592617094183346001866074429695186142406558409510449846029063563330445561883933933796520390552902237874495467586888816757919539539128018466151195818806040748293557488258860705544750218534127636163398439683824376031458361902330411940463962307041849491403693492178487923836489603217548317004574675346644503207734232366744379383253502442148701187052163333587193455892984959598202546113583372001607691121489039195821856363644282167431133380341514584892027654178499980798131737718865524906707421052634158820649222626202029975715784878562272671590305001554669628003152652470974783951395876152481044671730334131958032645677753696283201985980372096408991004290122717399466135485730553793964831761829033632320462640091514899042133310462940040466616128451639249939137915247697457001078342827372762045219517358708366995844661632024824265715441248002392357296587444066559892687639118290216164324650710062903901623089596799775712042152546746395777495942822157954202462992481218428066507157449667197454630275962559518391504111603507311440994048565369973600309440656708109147786661244899458631729616558626346822214403993496932834863810847049633081851136930078968719774612373281428116706371875090821332106234244700855626578062640388045323826206004233128284944654236942018773996436844642756982734239456366853548060382071840219138440938295962615509499941481496604991472195511984200751848797190145642096510624747548163897190487894796989681785670579804159565221922495105157624528136633342776268845866735098846936331955891230444484677766371487519488198193220204932848600550339812143156399004369954985675992086442838207949549445288302470357320795700140903593397416940617851124478949648294423579538243628361875618078068869798182253295895667701165884540385278810333429866229312140569594232978312525481999816995472213303340065274464152771932463675598952224603767898301228339284574379529653830869106350920829223460801277731282791235932283345684420992001627314707472987947586654078943803532702647432567956009478668896967961254221279615719565268926914302802179054250640746407222559667517053261068745991963741534680576535818418707327236248766055478712927213440714481254325093864402827460252937250070759063280658366707557011768128303804819896834786304649668465590502450931715400811188911973562816082835519516510047031125377965271192713901595839848277773978651480909888654120593700697813822033964379104370065782038545822262000770983434531899745805344602329028471722029449121123872103413754308777709654786571124707418063914816824882931655388430259676107330642188437901509892323913707729280741229260027934711055257784915791107973681219822695726005747886260596399824738516596877793859118204442392621652413109792270892729883376596402701848940632919246318753819578819077873642152359734025446845621423510367065877895521585292058084383365469171943154246148117784629413458463341108672145814547121705008720570999320766132864202458683917434299862215531430479221056918933789011479252840110594006525386064910117558286140909946988609991467101465482000165663527003900465328239506658940663731329847204749627309700636664781457267096260842409961671550141000563088992706446407115368306416447256067670028397601951992784339555918029214499130781729865343548113737056797453095254045965070676864336544044572426854614858996709025878588057823922191245799165978300157753345309522528903801595036542722689126269205729546989029718374330157369540376000734942988435682836273128001899360819415609779002419627429959996702824318438808411106278408664787398461747511181949542133388606262977148424229683154702732227548405884924898128254517512567897601500531738288793607356720595569379360970708638203467413211900343353777665900911410375893797882288776663205725695625802543079422196060746716436911259077138829101547398725741782982409175676483664736864614123509649751649462196346131354854635643573142288090508733681512923870978247388124237452638632991897143262263053993987986114008311753250464922154992609122527935079172694536867111885428099228223758414898218022459657833382137247155371662814946774063458606196411237454291300605582328616201337093660398814741077087581961979085172602601810973088579226188278861011490407969859986175337502169892474205663354364344773475237341066699041549914512967138995896277908000507544085726066618909897801112550505829241413184570490466216868179076093343034294313552435527571492198306145125002560518516393194702123285575819272747579633793633914603163339162738255984064696788085774363754255056354729789229542914083808780199401449484574183516696406794209826124304291196675629345112334510138992695389923497460365842844681501888925183125858576973471436505455097655636067345196466357412202597322129766537905557588509390934668680804226788884315436941509462473669153838963655114957549448526916537927390895222301906897588019406352552897883894464629209895520788687752836905361916930407051866920806359442379871386312140161887580945437479948032348741361329747317616097834598890387874401393550524196435356712719847224985466086078532174922917255354297182256214826397636628414003995054587646137335208759209489653166964836694804955697547815939862196127773843985687796351180215931574036367647729577498952201853657155704506895448429804118497806935633058377739492016153089514203239593828398616693652940112893408606814166716097643855186586107648976198529125367320781881560220028761104988673097647632785775642362918313572646142999221165521584371764563087848392125965941067620084403060150389149211824792453394472740480563402084335782818388979366331476055996712419153518880918707314459004063148952164071876126329803559047091947308499347015497892204807367213151685416462042496539537082996047188944155637794816298306122031596371768201699999298225229944735667701102599438940227515710346380339552346841972688834757552447454145737461367212372979133369120439189948756730909061533425058565902214456312570136805362513985818064661181895858891274575999725972573530080173812075416238997259499746119899963563556845704433234463637273739808258260311001023529384842046694337204588877710300027486944318198345463521450745855746385818693671153345390681414555691341455544826735550946086331626114241976453043874915154818563449991919891095397238942845956156179761213850269311162018916792916256617338165320654214672329165903728400178801617288209211917337045158573579329649747739070061468386208317725127026557712988109928608959108896988810016750922000340862746098990610101240428022040647754204781812738792253224988294875005585961682148479119355273576296228596034463914147122031621490717192291272043762291231798862368094195349270909486315556838913329222382700244439334185449099485550333994555274802204501178638395211560766619238885961715658973673191060636403489844977862497913972455128984461143267967385390689753120380879877420326015827801961480138593841729469955069711981679029262181557485998515153840000865024612510954593730794415408186720601489607936623602751880063221495743068561147601891725322216492458704728430349927538281602070407408026360170764998416723217672077201268252904788754605306081406953734709051085088826731608362855381134249390924424527253201476729537444613517729305635749927701391232137054413788547248925613780445380933542020409141866985787553025014672708339779540458146016119095968659808561959493313279876706109581219527782157047795709833341984805470930728180123957392769821706292906328175325678232007374078333933774847518554453881470697823166554907574355153238405744329732422602119278897539215335928620405615243515584025732729124554973771535532500021642929313897693560543324138595423530733095942353587424796169686513168378734704418797905506068924442238798748814287105285494696259970294150354432661578782669018727062142932805873614487143336011819667727071737281553924864325684109140947137996293607543350580319581890967474283303660464416886212242927680921824306502432367916933314516663461517604038728851140105408421749465155096272544376343119768244540286744217166850317897711506494849892210973808804796383630571859352682010017451592766818130384547463538729920448310182815183110837348794203198242625419005643801673585668161828570704630637577062090215638654809042971746794067367110810671187826127690157477013523453930307788818326485057414394229970760998729519028212059461338600939323459869923131092070389739300750103672622486661221869838182567747291154499516875334245708710906847997276420564667999089507540176119844031753512453297824403539209205398639707339583831289055358387509838455202642549423583307527194080509396482571159912913060878848822720450228909763746273122675857138909382376803388826948814877305682140254305278717357265016674756833427675071427073999536274600817845355018820142691690367506418663514446822768100974586026123621712816300704973309410344103868813056891143837365903014187746497385207604086382711310664145473210782908114945533462549143123280856733124231964371819663972446774955708119102714477792275736918696933222919435063934411549827639347119724864152530028106770222110845881247824252905816430529803321258743053873435728007080970807623806200276130623332007098621348336909451664941192035606428191011412738511253887816490134129720789649109950072764802155917653598586011699572516411956593893694565143708817917048297525114823563015412138942004466583756203699545110554796024478703087333102054172635804836098236693486684904307837693323665933501800749394601128088840435215656502304438218056053861257158857896941021254038504485216317876094161201237377367764630347707750966870642563999841164385377848172080231239926685182640161076086174945024190955143709334947254820599618894111149609383659406755321516493511226252960646731473776743341209273749361649194520292475453130017590902529757483145475163999595415534676131671830075947209916437404633263491691008096935249953895811340907601114522799270306388317098839330440001419817591940966156670671768443635015256219987722364019368212033117883707693232957466566160378216224472054739150464609759328583415559466538777614408955110676381468978983622271856663895643392339947766921638734629360659248424982457600786317602389042459473418090108474322079164521905374309834984911441071754238392725031062182978966458149518868748335518319275894798260030800912608770404268560483562132219478908292596243715973849986017805974559623580427896395299963642488400238065987629717257888813893247139159968700253231976878598724897497180481170943188118026872380211680262184937530433458285087235401293072873611922093814919747420624047812917006232194159874316005051169503728562752426063919605070874904635304021126635985876106840185358253231526673438036104252173608754270032353052869513087553031861821886367242482641160599260485289109616628797172557528958079171439379590215802718120266146203028486067285512442246627388010398592707729716543619710228037078780876909207414926179562409792225502647637874309084475844607704537236825867612834035197053515223160205000334745946766016114408868309059908002185302580659073419211152080993535321010498726272729555510327593228019797641551989433441933206895472794940301982336180040454364917592541025686527459957989598004293623044116203373867572891186816124267203998845743464190476153478158153041982423304616365952172388267954157295101680098198555275412772222457551293819793088673388418301283467469542920864527852131112827829159599621040312287939472892532207710204961438024035248937547332428756385135142508629022218574356462892851873000697904789882650020388581930027032507041797484400263004481663777528019710801357547016174573636366295023654954220699247676852490856413532087661412545944819319570688417053332630514169833756732675953327217051385766466509391800835829188975376153489491364108959241558787039551574503751255320020744868423818943579812625476456640542762301490319557714916492578558432967238611993415079237363596486155784979323639953759292097677324929711345852601558514274889659835627202781995059598359620743362169966002925379713012185623890657377625148350759736550948887203846946539683953034490702712760258756045293476812979472969275618236730971184873215397927485759216982373723728954609252852336350312702113258777840976375567271120164384878882973188399526887899198398854659015842975867482400341105567015624655765384403635489959407070012346353873469037328473053228625416372976023571846269131523279392165822966633813114134878696288276868351501827272489469045635512460431508432541175321138446027107975556882116383436758409586455083858411711108035209022442834149044296158661030071620941298548854230339055373165548693848777520974016120868626928243547446920537590960757316231813276059030272038568545045581369176708235535594208571168299514742200410620090952991740453499535112932641540807403475976320697341577757109850766532585170138836334330844324733462583642625366683539073832756734178710283620098960622031458157855705190668872877699939362386675382507945719240105592316066559664689929071141417936847695887093930774206915086957232114565903066185403921555602337832379490736060811304377253859794149209384145667161516402493187029992405658272529678399675346865166845729381306364372727090653292628863563162897450184842793692062449427752253535700364178697988294568656693438978293376712479552809521231860864784114415316968097879450360072098480828319501975580943215063181389152772328476240838624345553802676340090976112156868814005552645958513216933554025517261983916739188727641426453345394307571544262953523615713908315780463538486924867334618283410329091255398287055849930468125099644072241051661194494632376162450406864164024516403261899047039307231961366279712328673659653687485029596536531379228814146337930314950901746004043158715101877698591993769304155244354090822752247294201989292574486161445838964887560115311677702773990920019510052584444521963382725701304178520360050494634585291747009225658432909283088508004440864821647175219956951783018865248389866599177648087623738588525245104454313327376132651018156678673677084435182272977630922426145214083814791374937844349044417782721617599384969025227199203520044643380747298226005088187611402596401679041311230945804490724778961741236045552789618293106393801407090680573591080135619332246716006805603108326628828836345774941402552153127188161684567318212548221343992155327567513091719763618656150168396067400008096489620112740245521244658914757016659211661206057751001980652008686029522543828178746204340753677743318118837924693788228323210956668484844038067125940069129949852771295168978098212918486716220686211518734328341409177006826667832311662925885628257212653875489007126852063983448569581899454351609388446338271792294648383344153064553100256834125894851843416201569099738362294272474434070986553406937669472817914809988376348177464261026649207795916493859252412020190913646256361221780437796565708988526799363431800245963346423326414767350440727654008983359205537487437059535210675151561634971067339811076666427211611639250997401362866322710097910663867323153460868550687287309545457323046797854100403608048808666502460652994205048074095207894713859163406741964194979543583992097748682886080256973326805834841599920218665041877807125584561412729501254206650788661614361650393247072986857786415423031160503143328135426431129748094819637015787630312848277193531016862565912583996789758188898313969837141654510316685041451225914920763034846782646319299621166029609298493932146048386335585708534987588965173546096538630852062143320951511340702249895777491837827642757632859690235766552513563025975244779688931169401974733763533293812991186436839478669113202858382339727501144508937344772391410502950231705192946745348511004292412363800811947275410275767246982758904765073156364103525685152202731583303733052957463056674952608693318768195378366521790688153710112558715785781634912180013010830764974676057251799444274388394980363177065396384028185216427830563720475958647019533420666150546657010447081256127292739455358896648062121375267835738872286150007545038796075717091109921102919481403843720940204598527022790762811495752306294149433050499790187141008560997985206182957309784851434650042754947501438942773849504568504647934240710998052759843919720340260951795910028403889370715350885090035817079234075862694967201502285134659378404075336351492097549241592418633480159407714836765847326644277273589471929155156486935125389932248789600630345693285533341208535833243868684118911014456372388310684993076216799590282346229713780336445360073185475026601393902400041708733159673644014886479969190644039468730202029934281881695475050598620493526581334552282041140938038870837615532467706297553959326546088247765600946666989064821336120111335724175400421808949181229240050304233333240710313344521910779844495086381578311243525021711253208277551312195063719766646735686013415083530919049007612263495832256805674377137749304653015127737932616521238516951224550360160625263441892011845211715061344939044454044654701966758475591429528195872961468944588242527340772798392273128756725563488920532690613724698699833595953816927225567406206799087063144475149968470735634837442182477346118494634578738077918845278037583746234404224562882454995184493139279612757417953320990683486959499646690247173373664650102595517524349122818469818898547481494186689543298659428858325503992754986447187573866683804175903553013261657296808035984327620396464914872552671671345340974123509959133355492585215712200516809041766624091324685955350729419921803894709572031924654579567213908815894272725339693351324690852716929327689715198324539536164353057992382247290147670224515565268698363857185595429711874648088123112938415011518822498907199386073128383227998231587513896063659168794610578167069057415160937820242431003430148903206821448417915284956674017996226674093422878033021285354474798245917187334388821768538185113464926925832703473137327984261077574709321077676347703444681906298904843551831737705675488160695810156068168740222794657624794301735485358905854181826178764518124964355552168210283012391095683231544024347246089770234667387880172433672360129827908778635562431878717825947225477476376862973209714194825069925560300676499915429455705867182063857793838595922466978083357586778261462883251308334087098982445540049626681717057827942209468176667935324330375564520211303309764854571285362785355443692241765230210224305790471969615796004849049619944722974548319371243998344509885580640195489307561411321518602588215195334050162683306977661128362472402420787622722072642619385768756669925536564548036498382386470039324162332243834744233691312452198705177812778893537115243819986207860201957503312952393172797547504108273213595992270244959584606005231472795697994268888942065725378798389766162541644015123709850435715024665646017978701405156251509265405129355243947055050367215692608284536841338027744829066141126432124247006424380538567849919415259053749381376904183987211937886952477920535805496829424338168923596471812644891762038398779532619894742822382331613189453840062114140248759407692763420138731449433455634913139787203839153333064109573983900629101321943699996502698044877748556197493188213029856374713182897976581452792033438141643080765016504877585626189470104828177990261908042370666515679319158289566688175818891772909162411802896491343207724678620881382263078011401429222871566446730857932074136741199093954615074048785533216202098619244125515528328628423108130181936033286168141501634273148228300221914417921419196071983490808575835920980130428003678847741292938543729636779222129166833430576649643447542604936482358425234345173414426261232175145301184890163244665232076916958985759397874943307077290308227061738959176164272961909049096292804261693823190504560388131708304471641967670897707168581697107736327643767005615440627766237119914028308543254688690339315702953524324591822085938524264474862244956685113349191029352670689900222511394979383390596673191898457616213857635955389259894640010269281925082610064846218440078219807025834045434940111062513717022141382790423864497059516217029007550863288342472534479709106456249253657805159726096737104339812304246407615975388625882496482906891725991671191994953053901763072356725762141461528138038978113785529060272968285103077239286994227163674636946093350500958884039020508579926460509463453682926883318280434098758791521897676087683194226999328515830769812135583822060926886403513547981246976158622761254766028835893210348411661876541079199475546454491960759267027400615553657728691096379168933245831362103223180042590843512267324066667809951488524721210088311080131826416460874546329143646721554303653570758697399209924915125353297475229452814524963283972660384861858626908164068426659203565698329998534046759027420914681318041267442159742960093825189495922373215850892134753663903503759200190510558781211889804560081204949960907158270440040655122159786759023140463202029412088548455394726067620693547727570393912986397452506476614239552540449534434841040711650431890085149337279352276880329213989225793249025196870125017837409406264272966299862816869349103030463779477787227151089515236253007355531986773004504300486545215976420837915772706999562389777705969416411308560605745097891077510973658583755941348178776010049030061061153431557836745692272613442506540881109921351672381459772432618167782699483891039094876425768366477945250989337544039999162523032517318997529611543701689102723959000343749204675353891667704495843007741878685182399583575002472223954612839216940803311208447582612856978318172571114934222037113259924494123467835647574729285592418232610217450795215054843884536302139689816342291689695034021323023903710763257005719262908142401062329461938923923331553001143402882926507827471753794957658851806724183447759810021194864719595979164410801155618775660729741416278074991563387061384994358290645375309669210634296472487845351627648263880203617505308985833968139811234798552525985025193465546685529480750019258379412655438756946290348871701617801127627127439026561921551929623533632456719485616485535150199822796325105775017316851416471521416871994356070509780194949999503316814707446485379883261944585419565326070628986925451146040758531825823661730172197292311571081055545321001904747031148422933749141544158722854959128623500451050183215172902712165994465989082731008511533642965766880074132042912483577321343684815210951699132094314711191605373270773943870606802957285282976947555500643080534148309070523597513430143313508963614075423545022592611963326160431191755986550363129127005293898842040419602654174801691635787249892928641848783702244987358598649956258123811975458664576618059383591417957545787653774532085339337519996352885042529989957268893175511249499555574281933691424514679588237913170494709279625794973379917486386553682553932914992225217597095121054160246898811988360853200184003964748105419069317020915472293578359077547395216402085298540104468846634950441203397927057959842764138176000478029255955775667751565613395854022984959258457421804107161257848691620401550259249964178710881130084464686319347590404767703398030738503856864031568418723142078287091044481641293488509764417222298097038822273933364674721952343620900936942271693889885704988766845629187703053358672392210873383135336039339586205413874097704043539244607257827526106148380703941902495977547454601766812182915621869772858259550553128159282217253919000341338771278431017197890271559368901663736181141167751350421703927385235123522940794413318923531025037582172305011241385433519893813070413362054474616944755160506981470464308292458660759405880696565375120356992285443789114641433862846146056851376617587449389441900888492082190008258674287038958709978896462491116967581050003154506997007345190193687671103996104313701578342198863444501715218605404691141411624963455923425904688823081840476027455086555598249072279407285203258840285500908720319801724197734799089861435589667353941518878805497420716113301451221253816246409888589797106768617394388773793793104631927934247071217428977643636945230713801831926556911202411574215724982336415490272946526409174276300754601314249258625411629446232353947728655082141664265037686712011728077464409989555985945871927911422605993470598615416871736946493308428903992431020082820671648378105125383332599609283926638062886935449911921263979097525362404179092553469792274790692636745162279994339570041687626264601102837846659702876428300318995128510182554833511627710992741293608314292129798751965442521829616112476949757240160023070596248050388061101185518064766297172261450331255193274013159597186809253831864020716372170627185493076601981382897613964439702562530298460760350631531226439091521271990626900332598513514189393325629437974837737941214659651545526636152296795781192227167941860588610254882970255548297738364944619585288367205221306302407651716759712593071915748116139671992915696921609248348620764384594855877083992889868074399815671164255518121695126320066070262491742401747747583329889156551367110736854957455320204726831491956674845914137291045770695429925734921815390889817184518199933821451629402860395492786468672044728945962596959054794197508829682351611646400750592598580691901684592918504978889325081151286984972790566467405320025683542855881067180358228783450631457956526786271212905673102306787835057674893204559315070727102180931781676874948496675514796531382319926541030321361785174520825117028014882649265884840139574556961705354127786431431869914327104838614678856268006363031487285787897047801722338720957255191093013038887040465845542513587803615707958763937534833390381453006118782664430533196906323904072664245962599009131327701187305034958359899430466685543254153732420508155052858109070407174032903381141199348292659819998434362427094291860877507450194765143527273875497560097999604659640874238096403318895310492598635714253621051079945498174232022108096516535128982026034283515294816567055932386415705796669859413773534978503690104901565310631879193940766565414810969951253946024188951347401102683435015840692205269879888829450321044815280142336382907338752695560458195489251501697642221242900947835477942329385106864738262681782741879957164966842609728305864066823258337677033851591664953323645926216671075067159011936314182181868939567946959532299211437634340571283471840346544002223415580240205094855687180895445225045545418325282327384701180978823061692991641319435765703634812302197345633427324591401328279729238288467706216382000398476756524166095623251407772269033373430614492511720332015216278388307863866577617622005458490258468208210748184351950804422587482293413890377060851381153406925844897776273015525580433754906752280354821762926639852499319806534237443584912988567185704330120783815701228063813200598604696602614247773020354400740679967025876833272027755215065942360511749779216577981387274745501191220893242139671704819634569561722652438964828260267898564601034698130248397618688668812095106270845690097066378395978481888331945386196028905249914635987657517291016196916020720985430805242824121537576196563535490843855292688950089525907225289180511186713270794370312464996057878440428598620145900549755828306256212931294164747336213807922946293376254646548785735911646487132298892566552217290123054316645322972624182448249361471061024768419428473075916065911670317721390001619606566787392918290169823394858181491510826636969836528867954718904444292460972034576149813082361259368420995232707887987161955934386335483368302853459282697456613985318382213916673057423803536683131889298237088457739533153157034517855413131252360001614447298632080678398796890519541076505852833416521804946739397824316541484035371118996097796767239582807700186577765374701409331099905861457309562459573419360305631907148141330810203086447726622208196249354381087242173277007522118977533911380042827543113708391248827518644430010458839707576437125619611166827014688110993246812152918418027563149989760278451174560319580796594323587224826423519689734964755383427047386161638478047413183645210537531479917654908506267239161017235952098411717309030267373042451104257763364613516037679171591815769884051928587189418594966517582382065199925748767422265296449943029391789216492470591810259114327729582623951508595393836246184327542914838140568970791575204430826712574943571176715227327523868570061112614892790097787639190139095332887436203486741937711639946751176844979726049116254970432493096515653156978988937923283790857867358291687463322907182680962679305889916617447866834410959549502403932603678114500140016131128239982398599359764522226452876213109919128368328373153982524778217437543472164977580660768666175260706730000755387192338127313381921140079449584149340441228616288277025300874791693519340650349708834998882695863303434180263729918764808259030393196700572667509237611259621122592425895562693314818001620699319560814845406288672399553285840759829800723402786683848658218536375247585884791875837154691351710345064679748270708451334102788690781156933865521944194725697364178559717851408360888440377185806709918386952675327725987132175498423421411011101372395883517670046017595446861707191811573274194541284653107968735368722861228576708931812486222071261091616640123714577739093515362550586590748370767105673776712063117922097329922261398325611332064723897582351255305148202525146040653170551758978415959119394799998130968270870212016682836448296470150995473585305288981638194576568445489264416596441699000077214861830551851792351188509093547703919362784793390148351448504938164112230344252111973648837150779146331265434407434353287181663107903026856006756426153096481288402026647908915618241581079019555525550043260987770835763921387083319668450697947751933767052092149633201591404065098608720720212932510971898378476930664745718957833181462092151593535163087805961797033400737783678792723107922957625180587839782777907821096554983745921770836944458014821907293756545424572068701716666093654549202016641132769096541593717107060209932401581367684432907583029915910999497738429459529789951827984665741608426086189145064876017090028029892041056643483774822059937391220833932730349124174131248405568877121717722353579542033074668691118362534165385207124411659281952424655384349751675461850711149121599432147320249866968049834155015602913758846336629242496392924674977242366856187478889587124535781101114181726431866763174899201781627471411689642143933398875433614553245947317525497714601387792373550261285456109591977621434123890976960597895644429601134457859784445206484720873597121126085837955433462789596974354492015315265425392281075550378352912888093782923162347005775176102111842441186045653512349384722730674279568653830894021499710005795312205121761394769197800887365566134974347921880191425390143566220709194153102956850517339165561301017800770950449919452322510682940753971458276817157719778988906647762751540182719556406311404563171045715358341411829652137111738866959712327327068796446926385324003844740724228878799746035363652899954180205796040217323939729751068078119026827068009950906343746907294493812217330070004891629144881071021433976706968294174888551404886026642147280372000145590773309351936005790955198766366569689940902506908218947941244492405093126785994771460754200936353023276705269982395855868834398272062797363944357440793412997802620086509881130457097437802520715640893057169788222280289194635014841277752693083564506717250271605441772166161827062866858095387542186152867697324401554858337517122426029764564775843353131001329531983324199673963233173190385137075956452221581518918956859197661500006229430364509150470410990926239519759572071859487296679817679436530126392375771133920891302288617029700679508342281051486991275063775360685339158030838192806461662918550554276371560355879089990942451754243352063670733932983780376227973025312799565637191746985516944574638372987791146246332376664344222401015191341759231449601858864093749089672577211735916138454149519278735136092209227195226854612837769010129818972521712538869541232592804652886875078415602569082714611005844260894815499843414893216442487237981606009109985408942254647243946398711282037312560571804165303541719624705939619014571205056727935241318112657556226313212680818457857251165325078868165683811390765225711103644088794104902684348865087707369338868806401767712860488527964871479201547628877887259717642435633633944834570713492897008097785246959725767194200142487538168754557617881589434390730342057627281735090253197319372664332367539264860012149149732921496536737790572429031910389398321826306927999248114350134049683972098989696495354119214849800023001166431581542947144874685147098014830543125976338014507159131426732211292185660486384001956831878342425461029647970335200312576975330471247296645158544663592894786924044925819155725747674317688754570917742926405327683711251155528875192944371764938527824666546539432647893325668083871179117982808292007204455428947547299339588607877202403998437636185297164263830447037589756682114977609794466025544044789396418757414435736652652078469969858463980683132513308968473456007489444840741811179869023516807803342560252858341728873990693932757447376800497432651125299544505950670342791343868070992205696748841480589100468386746993553622519911673836843599492460102915108890737181492185439814646595851961668085198179660909266481595802070017011371748729685684207091772273946889093646492433981682362146642110509405454164443819555974266720278277495637519578097480069864508138101086944258667224572054431439001006301533254167214241155885532065741978246291012035354143241366921170134700174883389085499350954025419871707638587439414768528259288193233452436242404992870080522315756099319231024622834236442807288281637297011072424749986860462087954993345189828167045852532371746666222912252078321645322184611947868475135032497672854888205729619931043408440398333319858507195451673575729681750589269107162415919557130341673650688535532947852606706340428955182360144049397585365287017112313756759156323453395666987459055826459579653616747314596293529170555451248860403530233314627062956219195754112122042185790027980804072219738269527210009601781960157495397209492652842734298626906072380093129293389582727211810253732115083821056325527160082900874353302243059698836826200810040440758594651182759700427599278830921700380154842743106263640386332404060537803195095881693914593683749385342965487090681413992213970882728553090860985084595564851361736692200854897521709747600599522005824876246412726193691617429512004684660234287999291263672458168583928469103400164616921812059726204385717088253529887110905528040247453166891883559898877882431613593355297844182352461906605069432008339551426323971069527912177443011340086009549433123240395501321600995856396564227496989066598758889084799151255079809778087815220942130680780431851052256675070235098266969020989981835361509792486318887426752054979938645106648557318964809953266748429588793499634591641123528222840936096812118424074661867249095421042599800551899431532965556212467366526420680563231026899188860323263143834730014889024289806009978154700146323497448292235820025165869698048509358346974931301635452976031126326677883326368539940491535957048535614078057839049927363182799880640581796517046887453979974460819527898580955286936743972700145510861343978319747131121627017864825252459858318522988010136157763141809687006385776810814898837601864567277033895973384392896752050950136220993337703148012952595094888473618700716809131272494969233463892681927900271422809368726864307230895419022334356886425777820569389672836757475520238484971562490141381249132172854125214134932259876693388901099144607396986303525745960028897719036474406772633450735673208492294777156813201238736754411712137258651967579900845313830837059043761730111102150977341462093615349326747040408639258993092966517651248756444558111502862770595284604016658660914607389834874234453500516288383401565989401477588376778985229168699591784363187495485022143504173221568284280453814002291251067049594974932902015386382222959341235751177368731274729993129002202278189982486686026013119731678193904967533760732200963539385137401914561459731198622434815388110448810946750119622201489934857490655022441974041502817292088292616881935804167150628205348428815582816642643588520757000069238106962925130933602917648075639628500611925088394435561017900576360782374497429912539629482914983165076371516057303775350294183481654926738204262577371947570972616914576946126850018743175698551000744791391948869645599430675638899431592768822669850687847822626213100598354532456918727967823867679128768643901339869362951792704482548966504991548613927093097699139618558661201204562921365171096837237846762524000329143848586370400236463973694831512258205587101513572780457073304230392274684380792133942151337244868337796607229688725692996211644746564737511701548189830707162690933244623499057974760913166237291176490706671068546292134203001383684900484992840656078911372707288683584109244343624678202309112417633819982404022931989570211406383183270350448313488975479313735624358010444964840661491287626455833582816631287398210211193904930753798534102369764099181607276626524981517477500715576068704082879428493512234689549295676091313076714984354969758594950263836889749209928981864920816497321811246895404658129178817995206507961032508741566074919632944670977842265522539198255836636001474769803497608865514103145047096292703231646227083384402236892846064108488389539574393866036010349904965287609514719628349477806926220311280972917277884636360109331350587799771707538469078780328548335738321691105687338635437640346011716606794846483974891431668847518940872941482717732979393589847138648527119477833305733687907372040837790612797842876968925613799478207293344497056499361916354634204984957978906267897085609877074749840871345688865281133609815425993619335653515264863073272567672393207824618270758876352382634878622354312157480378507017758678341599294085906426875722119208538005759806163855593136223501218244013764260885942044657611619485594311356395945716966070678156129577537021484033712281731228295377566377739531049501101040359992276605725460296318766609481302858412761987369944932321556931055886126013930146451292730613503244231142721945583504173808362916093607123436105859741084602225609098966548010725435145831152382620363761400711703267420482850933851356016311278998505061981020642526487407200241385707298026736557371383578856775584641255730609492997484720997572957367856398900597638852379915780414466674055261815749620492065224261462135024171922948064291666602818793871334746730386819605206066953305005147130831988976473840743753945868321149390744271574540764388201451236308487287011495755025662513032037601736874648497486133988247553753000566876923708792992126559634837067744499113391887319995700178921019637840171610486634277373761483709671740706802056622918172978549842209882042485993157238710932704452539093001756783546092782812179263835431681605327912282296321177206307681301928561938204527743158145058890659890890045686927797028718686545769592794542114091499588355215726895044698343217942543451717971404499918907455592154207694576803405884982470554352163375054902169733261996746094122033025590787170794458006654644067218592244737081967729494800811378329990820890853696561048660051825152859207389171934921546266249160713497523897073639499622880687279160382257377640587850398517008575376203092601182362097445434442426391592421285201644507864705452726662598415177012382371205690054425106852578642903102375711268486136640005554567686649289944555457670998114925879993898932919636902229852609691793328911758239723506931341159092809509830994907705182287743613561844209126041469510544081446780767521352545482148106258824308371389987464265054956964042499159647298036921099829055016987811055440960334839359037541941771953975996549181156646509338360086182295202036621799783809168995691753195468959787755188246905551455445874606025211096631818377102573632730697483858363221885665541915856347533601796482427174086818139456644587973090874693720330097000348822878218137443526369764779605990111219173817241028668843938181813392212760153470538556880689723344136947936685648634541183109683147213239786616069258996729449337434322035220414299684920697492252997581423660395456615133274296063638818847156199814582736074874554548926567047473362923697275178952434131463390762897919222616779847402498450090779830421321461310592999284583633644172929465580013622347812850472585798317984817735846185337065736853419750567700615952530419193288834714611987235626797055915773158632014863256044040184829767554407780753672935438234753895541892228282318721253476023354187197966511286430359581574248448174927857644400747312987935467799088060823030406206802798084820574869768463260997277320081647282842754180357749582349160558575057313915112527394902200845702834273018224899133149428990842611737971645810168070232150750189443250351606205969673405217801619421410539571539613738390232040667009664489458664927701348563879604582811524764478057772149599381066489182035836364022681564377221243277928001232613987550545689151260535662816482295809562880887113474527968339452388527029172473872142092145366945661008687706986554196699544046828768040285862948926846786347456116355408886645816904420473600196743987154160860007679614456241695885027789664897836325074946575958366395590052724093628523273066453141709690033204401132754093838691155864934367794874968406108421159831910737869164697054219305433642724806661484917727797631068884058731405058378067503473429915591584026742867790988218704154195470032658805100786668212473119890087748084712711369466326455953749809847154323800785497951079118897298262078856079222691938682685400019279591379646751087722875478939539583137306223033703637443369030729711312633253741929982147534470549264930072770202141343313704288395850900225537341782182244403121158796998094585706693906762515243247278974291971097003933406816973318521920495939888166902968660436421791169218180513430164295370573273185140036927402064400642701005012298753565752754216717285886918145564628599998656262387603308652787666078511027213443368377436351843347808860786615727680070845352613844952001143340760680800107619950799677640201731542544458361489077001340868155597455109118253400158323756512567523815265167457811459108244045681940765573148314436748687570573004916011811040726308200427607207202745460370113032214813394920259826726251520613201520987197284000942888284571426126615578703524363629610062167650460162612809810665026500633361188487382239509346413281526712249230953694241875560228040391932694779273441710215293724276520988400786173464099211808836305173743661537949020833386267149095139051770105864731822955491528110969202583771764967327240166082015514699790167143807477371074510944234111696700556460000695044913780901881789896040689713956596872370304088687419370912227422650408509076779487993799661406809342453853267053829862569879618880988942073257379087623060781111809778896042793959677388082487919572670208410260675038376660738112348019297208542200234764233865108410921308700003215833630319392182184777445084541682976399663822900287331809041972838962385217692779962260293359080514820292603473107943217204756497027062886164648448497157311086718490577774501170385819991595632972337265572179173598137553786241936053984162748172394299567362406443848967828740392354777356971196969552136195261505440675562705877397051506693519247002544838094495246167341582876177384137161147702560523772873970355278451798283487845086102491056544179514064372766402699959625082904736689715521674403932847871373098139116467777537132888610459075264218656906447087948672870158048164570217265837342645627846944344587335414615734022978161609381605979092202400563803435377718564626127963270215590300709585142013054533292664975117453297428467974411923336458213880479284251617328338194506418995077599392860060102012900234598420180301792048088089272758816620757168361669597460545283869426851405109645744250257085622639976469088477046264808307050131260370956584812897313685011211003594568771280168158548441026507700097830518099514113115911038011135101248672055911788851190009759431341730174589668706644370699265057420890491037376994919969454286920552787595109105242661070751935104930329347837534706138193382500537684495056986448276252582014504554408850386277783731271625706497422810331492992130139802258907542823785461681695242643412310313963662735123698723554733812694141330459355119004255417895243397680026558392296329669879712783371622775469965577093744669727758473115458939591788767543725409251666232869563310988802281517277178328308101528727006520964253908148037625253562485209534982027061546457832872314136268554405455446828339555768311092189606656471046586415117378445285758618107747292657656661039108569127387891789204386706244234464286208351217648666022868415554532217303127055405556559001494216861688979201209181046203958552434944053307692186209940332966499799509663639889484443549188160347043902662110533497209969781067067712133709899096683353377319867256543667104005978192634131168494180247138783229829196119609334107054014852949533136067000324966645515252048718355022886917894300967718104092888899761934252708811478786690309215772024142238908625935029124233813828231796108279156929756563446853997406690901545942058926594456874099302852955715192623915803953427616491281374479791067828469914461410888700348708250900165888260153239850824937178850768030597457206407385061071145090240632681117687923910654368127461238211929801043904415401097061692718695070413321357833250302754540765172679232959489255277901697305783795285080458682187497674019594225179117286998650421039570899971298487367823434811038337682226607253553914047627571135390212857083498933152479072530608933731105728326889438426394858971085239921846738777846547157606255697275575167205658646313373697633138442015932348619187228983898513535328456710051250769068723727025931447091570699257615177779406369435799170452773482785455981780310861010152834513213735969230771741937672059900247420847111555441978510815141276275922669602187430583205896370070054241795982980218824924083518231969920650204747594030245035464128238887415514675856396881464757248788102874665664758855135150762753269023802605706849616096827117267580887133217124955732551460434595095377732159924743040366800987191589250940632934963659152546994678374689218175416265626550101736820703044202254704197108487088371059351267205251111965336862348826519617213578598677335448884545882333222387596231783790033238824428063135024703022042686652701594599326960868600287877788493137375218245961056967807904575777823783015002683455821074097015610299834551651577387027432695375688951928923120041097605288022977097953864139093722929428515340283864295874627017076196195506113731783180839151308162609439590053995598073200644284618244891721073575959132667910339144193999470327716151670364384092815098283692445964790258486107153494154868219965723547413657861850708252080933247808375342994907435183190953109865725544151764048138282654883342671706455596443009557905565277820084723919868159369303805170483791733686451841008979973482759718165061509544212593630817948683327788023283668130360145633096085831707300960987545753798892046506514586933519362296618061622302915277678322579851758360915276255326872389621536825954059562062490490617787242859526546814947027956536274918704721467833371408728596002284504668944021205441312904675847848900900799633620472565057053816824173826020012340235430403034259446197310797300965088843529081679317798800596466711773154662413053760604098770688984163017483617514580905311668190270804572576202654563685364395576332434805036711530298003507676052873399790868099600360373491803960376862342998158710752356954381854655660590107753171699508575122346152509339301607323169442089778733302861208050209174561768076131942946399039369434859410466012263783663012580950347188219450256819960397335819387766595521798594603864879486439202284398822330809250179648953299141121924757507732429895305666633841515038317540829826586187026085735988168983612020134205975095280159222242272173169128037801641875317642456758207843675752043572046408171579128093217892159556859021481235772852826118713317145270602666725369026315663452616916953294944118790975133502063867057494798435762870668188486762263959784748614987039592620111883386550392609308880398389911955944495105912533562762959855575475057589093821120905085860381195878918143142250286793647580995588203418099302706728335544543027398067197141170983293322707840664510622588212083483767273621890523280006346471896577853151375757352442172766330009826258818603925322965392151728639436734702931096592931346534435206170314243781115988098312571499982290501980214479283638706558242247858111869339852591375704271801733794803073175652307427921670518419500346579013491183069819409656094872672686874493351905279025930195525331551909987369940658454772723832268807640650953657700817555940549257606980126640586182370472744188597875029430887491133523097443024137527490181487226368734567545348696079333972053687242093523788034908557333956808610322369153065607421244477284103480049032096598884070157861995759824742775751819293551036324975790189342398673835251455572034058651879399656459261853067983136432022816412206717302883632471668619384404044793617158110023011261237045797048893512087912310200202764683705720322046927544726262270831849896536282679102687035844861055573673215110723197554977547739443709115481605885694508627887392573403388934714936142150344470901041505764220484191122711865201472210836851545489564525331765619636751505589467263885903674758198583299621026682149472400207398770897399933390248072508551945560968011741846914309793039565258035039223915555335882967127721091419814286348618681638602961063788726896663173886188072051071988329479027635483851549600029442618945913660028709566668908494592975681936422173913596675472785066939765388800670214729964249325376627777277045765210222105641299529742059413287172124578349874880540526378620508208082424210650399672194354196802133775810120285907670911746173885147770288386199269273086504838233326970738564013743696039528402222890440142674198858260721708120303920505106072959915549903873065043891116138069400476972588384081264553937492827317908676852926349994169333528315726032248645750518486561694383729541948276558094533769769508316686800575711470583627675298928288626778004063551522825284230961017353242023107074444639125315561394431756817540888072805756765665192973265387685738445180668628079291436174528043748460140329803227756259511269853392324022865646634786000094993377453369916409955366402260615205717287790240680333744017424527127824792805442377437488631328131426085100339337954111480304096351338749887633621767186736988189224441320641860949449874076298380718749448006043520117168187054688219591760070880846116774399248036641206007198827258440418338330321077478778701644717489921511464334109211685477459383277391467535738773055700003329128549738753717935174495311211520098780421807708583440285915787669878952907209536445246600240590442316939538539989082670577143948091284104488258500449180307686190537863958300221012675323238850476968818969200183089429977084795846007322796655131765883494871324907655308904168139986831161785613914266535975115316891919683734864374871788454038763489563204143187236899340599093484864558316860615762834308019798668112040270115700208152009134200784400248926742021930270149952685620128329026925616283525427592693279773963474959996687476279681333182382590094257685269935769478801006820738866210900990354997915258652223982078306532187046081956657494242410988274093812832988001017211704506857400599457138436904444907971797913441318455517110993415806136847108269798857313018194030471294984728222005837817188646802468518284706767383817857021995010936993715515935256689457707003123959146498112091116273537852779821555689178179554208151941341206423667287758162683104061361009995495151929566294056482593264013557832409325272838225221620530646076736522361295193409619819737999046726670949007231216757302781998952304311885568765196386757035727515098747276853053242709210115365087726321930095533222395520874412551386766574947658329196299874108966123340122412179269280387887919144647804459231220829322706940556167015471924141804319643386419396673940519363800136247770036919705472523490232772833320974606273965628696506506372822708467430503917116249434751449883986779096671174350358559845332468740847701248230391533210993486780893876527790766608708519454846276616756295473235440250962196872036975094253243176016947484082793830755007550937843381592833199944548684317979979122769070269415017684763328841531674364909109410247577710419135440087178821359872199842985962182549306090104516433072296028252247502116405160768627687568417746128860990631186693873640404439026606507158792856279952795795790601712364111040358826906830267041893861567322465562494630730464860685705464213119293597313779109286437482915129423620898945440741174686160159412518635121546054878488510943968442104980989545527330339838611995542815998552118366417573960380939903006527883066429552757945439320461914980705481279754919827138393038523263460184371381478013407182899238903477911240340011760873122817407115359839742451995990276137965686682156613073776899146843847082283428564600847209441195611615174313435405078719033114462355318399334371553084815250438744795915647922266306473191357992129968672846593870928656910345491619517558312981252600214440099827191250104948206406168183631770445171187622904119308114875693920324479464730870476353764986294140728792774693375611152316280581799055641919421402617094425662048110725617507798833774937915949606776100465239865371217637345459136032584094079637928662560027176640754235419576255545017241400105066171997793267614530021105565615713731586355016663172568247164638255520558214722416286586160939458970422204345966269070583346583042792395775603004270146786515309131321465116740915535777292733142812104670472107937075392977539305141565355804150837971849372439947015889232181830081167914503291438643721489190811024814325389185733398888691718737276441587583073310208698896420078285761744908783439743205975182436791728057831174448759467371330795201963132118163391008746659351475763215238789433239358560102857062801035777632704353727771811097055838512067062194140598495251016429667505638486028430428598035900207459687909196498759111131871058679413868318354755744086035810553101541193191486295571679278072253335601380272906073562014113243385503206641148013557448791884254996348732685000678886627198033202620736192581947636989071610143191437365642849733857371454374433292775530093258509948035240898251761437979123751011056321000640665634397018439940330688975795927134228636503058099523214124911150864869525847810066697543867975887823811299990517921300581818230744084928663054287958013011846238288427393143626802563335142689688383359288805582594807976780920090457269931548925887161126837699698209217194785545371006997058609990007074711012944636778386439283010682193740586443736749017686683049870306743066533395111190903546372806842147835158079666780456886580067077721967569684768528666094272855892924738177437016712388334901331270467464154944412399492394544766381858425239199849533789843620044497427980466327230572903883058760000349454683348328065889930112656217646659665919778157584651906736904466134251070068587483089079618217363070716118890417935886156368343495038087074924882384657230901327700539031768942731339629633221967735095720834293088004837306892388639021522772849138160776539478048857512979568363129446845984521760695654303621369186145353403592933581215440636848025892637132861625654221420115967838506455798862590368096357932620809307330204099015892944250336648118884177654083902784838828932099413465243765426271073661618926618757824763068364378891855384097219660344989625644528524495512167825580025338620897942964402094934274711774663815401126977034671449759346498933668377601287705700412582188773151490087884395353164748566839597497508235080629657333772870317348919904309621119679143786897397614817483258180376549065669555633003620567474970423099042645238456760453253653885801263722874412189778815935625661728666799484591049209618875587362374496386637797690858439150871466022473890226382191963311926611003007419634485054837117684984546034047935278647260201331444875192939770009692780561515387903940543186866017930168667230531081669155986480882049853320813346508769714334350196404651443704615194023702175105583153381587231366739030737889123102423032223256704000695741023390213721710505670285294941770561117583896476765272050803374981346722359765084332610240230257437017444238156048284747410546209249958618564441493986389483553136679587145083995196006363109287324737595434669826877500772034586471834436895016904219169209558212066035695554832808040755278708345340266177557185556361181261558102707833210248014108660330966792043355827307635394593674813248454253013608228515424520192858586176099806552211545182175312313393971640815604997813716354910944326005281473156129843156731748302706091981402675283972509906417758376094354179117566952353436846641858244425393751774908306526582423629069488580707329697152522308031664077713182226152437141221592285374980475571749831295363029115976220504520836914484967402888244181475844615162873982203796245749142468427785460064502348925877521284879028602690423023757842482403094139690009223060782395162618319705422249236863244776324017343462117356101478349811366954066960011186711977354134032816042175513028562100849235471614774989085612288958726587814710783580724218735317209466098793865671000549320292001295951601133410986926204309837525947531521101412655522165568510367586223311852892372972319071812365647186571101108110780534188501585651871241331756959115605346208133487701410681949111959083605556375122476455510153294237916450208784282857081241171519475005737718320744218592664199765361045454748205860308614477154213185714503784816969614400574990381610740136929294927015083968557018042275301101899082140992558135333182253909465511123576564480718357251519052019075502628259305201124982320889902644164791773261628648326142051269274446189674426691900774940031402515260195944492421592034976895651116208015093335096935401062825616826116667337478772846809270097270106501579487344910493206508338682806110781849049310521637871854628184031529348549407602399115676746469775491083520325758176004316735245595615340336066354829621628541954143935839003611596509677802821578683087598544186555047950500934319877767791573537970675373552629218929866572885598972035448948702844044561903190986103842124669687275214635017731327714040106666242934842950915769894020969138179728777654406830651031813128072996378399709751760131491807758059764241962582080991922933112321669381011873801243443795925260127499596918113731644948362540056759508024931662757790212604633902912684255988466942462030870300611034833808320842451753709290843288941319725597310475087403071068534266437817464716685563412044377318651289121349943140521891913748074653059741317829634189686455049979638060523883062037020313792985886382697105572807431494533036078651541215707179586916337733740851985835972067307633759384560854344693996882863876637241103010033316354033881889903129814137750912084334305135744089586419966435633893311036040286508852586283736690025374906236516358692333141046132496252431082590691781239927653201766003910224015279471651462311350808948657670941158070839280141755180702494063923744362324664380063685750440579515952969572115625752297188952254041502549070402261215479948485053948232972562187474799665172743418429379851218906153014600258065558094062579526577178123469226270933534519676533685099178636891178718276849743187596885946477027813210978555261988699824773455456173173499751094773971947478204471797944866761304035198737051567008959045014908341633053697528182469382386010576199222974485384987427804105102438234364051709020853190613943395885880803168928949113650422860009269587171668438240752653930635031955694023990911434560182061145244450661608298494494220788205749669480353492760530790543903148198124507700229869447670505958269799436040828685175392450203037484916778481164693472246732000671406954988954533417807800205455527273735520481308299533060177041330945198129078953816088510187588969881441124360162106232761842960143993578235833946099910076123353952325807229622819564935154738205742352653152881328280591580441752839845633937678173811483373179584996048001878598537726212276881768997295566733188599706222686676824277106583309976584171922294049609502056413470917584212111212717463059479981478300197399914998207873757746315131457336211995310539544901553666308202657051435726129898195024852297738309287873991196456625395713151695797179896557844063681694431617427151986573218639083877013469575440634341847834453867374002044256411772059176966400310460954825299100049013016506479177403451208169270867416407863992800845349563584459714102567040811657686976071751166873936713488842005005466777209715787246844161788210462766331079009849766351081791540851705360097812055747802588071465362403626045900756258297805149944096817765650441648202756466444513164199743097141822438711712242404731548423698966667170668253853566743675295382438477290194182974017849167905331470400387669426720157564679470551217506693996287043862656203976318170951947282928576484404095515586508716466792796971766949266156106671087837392326311298348458454108708371157190425451888173607367941099329496749027936167147259992720602039481952641256060400412141212670772408103369124600746181020364210931054717664090013312853964689250080755625493921384610416413368314186837935107831438597543673874096424178285471755107561413564758170231235765791263520727476606657313284803762029065697050362025769357282357113885997366997804110443430364929560619657488795982889080583500898596125609373413070675795438103701969859836935548562515734610652836484710016620918675088291719026561252891475297162782120449599678746399870636555923072411887650901156864942514931583306870648976691147590703032673177260228634932442873339065081576035178727235944522858848737512873361205038985436721456338874301744102815485332809031249040641304760499987432858961539399280399180996181454333130030134649035262278038771420472476637943445186671821586384256264768984418103447890673913768604627556655653930951972642798123280783428904068416860173392399017509827445478386315027379305447433368373611738696294559519016687292690275044930500074165165671673739431872536648505178539326510865579332566870590513741873063187258565797679000342390726814333492163202644242671498797544029619682708472779053067256116175764108789177339695043161502937902793480328499359777654123543544499543364845462880182364082200578360933788239253298209410836230473180265228701325476120792306683348611846185291645493036202306758920426122648705868564709498471112488808650497933066800222759352320385125832703693441621403658133276525209927588021286278818310298973377714665620544136990122691866661845010704376260707399253589936180100084914097968143517720187759819562353164689721652367368359683651975613020033357248386311774229711796803107928078899005249472600571678526666255792879846712988231930383993468429944319170656919102024162305974563081000499518741806438011914575200489177697069361854351796290426265743668956748391654956293272317489811807983239553241543125680586262242794034327193128080952985760755248767841583022962627599349663057280202603642573161443419371989141605872258615504713573393189739582578263602633640485729127027903151636627564882021012827994407786817426836976658650985931929089907107617508311387020283129901478415553365825143316769186724522412681278361593404274587967543310472900552665940890389252698255574884784252068271086018301767587545115668035942567893763522091220322068691294815769081929998717409142134210567789796384224275330092470083459871719075660690207000652022191251676598687721245888551124077998986726780209054221221333719848752261675593575061294572983421266325983088696459905548980926437946319038457426526028813362560554290245541119162213304381483091393844117856469766532671259443323393164976839335400777152008966563222664148252306497587730668107285633580671408281596038176395437098340697131826984078254232915906644147037504519035214115365777251769919976801165076366543969444947574248658389328764964676408340141336226925703736992796668223482378457556256413992319832483760048098031758437546396822411685560526485330356352419869619897672994143275705943518985474642732349980544324641038698546243445902562879258109343265549722866253291447359691186740089885720025156623280421987991358351597811366534553896338639457141076760119576522774361920872646762688745658143977734910733735046620740390203834915166972944972292603056173465568419471109927997349062559304526952821675297264139227345349632196094492010481172957627484485626465352348031500753446855145903862189445960992699623268987167138185701116816609422634697135959767021108801223955392346851590944824133395015095441566370806309340025032057777340843480279845032187554859874509832814011374420526255444080216782305502656593159667803322295576489503835963426362899002090010038525944690198661911148271164008285121813151094141755305507411988735198033655298477274796698434519954064605918778927487063676320139772170114800485577089270654297406557235480435589030569934094626328955202058735537181762332429945394339337614610035317765742500205325356088031832253633239541306660392231177999840327262208771747374849779267108120879845304188740752531051211631359688665600694630468039241822420120058433084858725571090342506043131779503097133699274283356968508170493498418208545606897868657198281066217237488318509855165601032059571329548908303192550852106417222734133787793489971577690295045892674581171409383491720556199959424976068091728581946782044415880162444926506613408616919576156915760775776628533556974256907960586818286124367096407542531209679190512061832712914180792818158115679152712542411983469162177286975652591706483766483853462904889975224073502786651701431750981851521050872651591601547485445449201500546434471624939142038217112086193873494140599436710350700102521905453747810821280096394892599637732437509904634192668252264970594304502935749668591220732406295104031969609245536968798348813119520244144182276062345052369607035556176890076544835055846243832209838890409707887664306311082370950794675749191400065563958389524401745654194094020312027350326904365291747511141617396998180268460300996488304259721115672564581333864785260447369636701424553246219924441741759617863608217596372540101905048444683435392739145442642692101534661864886981709315301956721793034329741927339208027691772878940692509693631200131868252444238745154075273470942560075124699038037562321195567103980335740324209030658717758132945004990960899602157486003821339625461547822806398015167847628468403595191200562325985993073229363302337503080246513530738814863801638245754638183773030845666654421352880837162860359726464340797789832858100593866500254123342982375168846226513995112600563953066327629590481455093093885292031707396090877020440666027994643369827547892523826004943384174998059725599797933121867391684955820349313758674572889868105616204866617441753030546663265689541718980882768405604378324907859994302293330296057672282782483326342276849310218847363648921570848208058736088814958994587415697502168079915954832261733142052285053388839154657904938896329210135113271644385153465684079135567255967922142891685350850291926900902829490832581997105201349386478502078115990163169480571067383304128547000427424983666086467442478125319402209089692954789293285406520840185879751789072011902577897352751101601343281680132963977841342062082691423497667690953053880279988168494624374612434821164450489607288932665929884006653019835398367366588313162684831090150033972103428915015454149705102452071908972887935856953642076663882033901308556469879972929232719546918613052539648502582352352573628616682651392157389148467802975999614538078894155962208499880902549439124421902047608991579181908148653833698932018493161463371780229490117794584692312452754862909862276166400204521014871829564496123068280549261195414715894162852423059432452844330309882235182611720693479327651657059994388699399276910966572201167971716938134080267402894572982546628796036398086927401168846698804237012314701594559470192200145067397572660622190169084281597407628261546326688920617790231168274874285242269278552765302349885216539710127434608760049755212579344596322190452387299257014085129531783016230319602381219189891039470342908840508526587157113058553693057006999975993339439067946615246071270602557538638341056413341631838891891568738129676565549817064996231324539004590850234210923015785947949878306110359313315100481109397729671008370080517679995975976044760832792446003274245215761840200723417184436912151470412957750824007739552842222670888778891485856905112512494449210928520578958970880253592320346809102759234092022796633435903837343662169754750462990858453626862554879957044400128753086792747297925190408863037865522608861899312631094068124279873060406556307237428162909993212866231330846953683621627865618749675253952000958118764625665525494998195659289618625134398904009435713198650823328535563661939623856466509281516835734787368637737829271847140698199816885376815304906419957370735267873925261772690678491084102644801332756150353263574579548045288780580487529284277090036191693613123171062679178539403025598325371136103933287788388188713750171610381851254664592458754822695539975666517019366886093356162760958126265056898280137234449054326456875383940705181224550254662828618165881578234092673555965670716701795450274082949227243594068080451198634712486164195008639800715330701314367169793164373430031353092556692364311429662617072551477424655137786718336370588032495272351198366587456679878934792143360146176748365572303087463838725555755343761208508048599352733742551278602715745039611655581820028573066421444822422621564487739921559852380120961101748599709975232771679224745473081031250517442062343278094767093141222645418564336646565332438396891361098942181182443948411881198700447951677301855937364520585158417579338848037269679786294484153749082843675864488234159420673922078152898506433281830941618323856345010657640307261098871124046937588111356270251826887868780450558005997869718594185033127083250164977324689730682953303121880916415041400081770861554584070842792179377060785377095012339837402138317789183589129768356336493325540101158059526269823510219205870654038460009031121689960409752535463983174407718266802025717204287404340802842910299729447643424190868633244803449773429094798308919249699437271936568921692215506433575891205295083223011259860188368485187704135812220013570007058824631501886016715939532034476555258415704679965476480456531865853591784700751052981639477398225359251856081806180500012252870943392239027549045996591275371189167576818189512780908769402770796202098357597725685649697432859686399825318599883763436527814403614141951719932513059800973719518830827976821943640174175918112802678751543027067555829562335503787997504460039250270124089100317253621706479548066957823978770565387543118753148974495770210047511276910729263678604037887512305931398048553386981917516776104123965907449565565088753992588856743810301537391944749784170351342329724052387942006762204414885569171704516406400655140302823349531250135141308636181273231953867785436422837015828163755646887467946910659492365477299010995504559416169475401382802470193384078431217888313212615294913448779038426556197811076496078912816863542185508161578710830286869253526034652952277143883297374685549246009267069149031076248279562962958063493830320046168507064339752867629061492574882353238787256744350447666418217598420329447653619952506592502561537698576477448894708398372717300502059238002028193351587121794765053878292061643294442730424781554777045910976204064537455017944271786424399897188048048204064700334561796995238580618175334125491141072511818655653935996433689067358828173947403372021591746244024468966787821774278548650492996874457851242954981670270598162602755507960467399418492475511146385770950171821744441729874913292244616309163851025639668011612535221683819174132017754214734718424294633118473527787851958225180147152914047428397415725271117777900026963384192960859216465978420192748144773712900090022570442126322349705653298511406630153152010589797230800997293751519818538215017850747139624404438231249940516712910227965373733249018117136836498529021963382488551312055822994392835562407293236132776216257079351852614110730909305560727682161946998493802644740506890672688885811553552415738955714332958972400954208332727154608311589979831585145236101680406396152734197029298328211903415270530528865411712892049580154242875133547623306418833766748323034084711108480038261631112061895046086186276840790786931328114699005937940069529503047920187691325296026151659860262727009198672616993088109879234983963346919763366923379479642662079224068070888166645982514296032816947514515543269155982291025831876988064833880399756403997218075147287541265471539155623413028902754283971555821319560779748338705181192422616637449811136508886678332169141749250131798458260819800203208801027675072908447204820296355424053463114048804623434803796804597915175968306893878744201483796357595391304315264863919225056681030653468744347230586072892850484096214564571584423569914108367206801959584005486811776831096357150783183255016906613062306141909191017739555964069688767362091504746553394112688715084717663763349515162755473016680997635914556773260104096060852011724882394010605003351726725499945773907217853011568789762640821851174153184985004646068343215300444999716028730856463081183981151725711502414125405761836373632235962062628834043272382337396765618800424882513046593200929233512649203946993809631950510011523036768797348754386517516734376309879921556450230580503287899262034271248247979861681669547741875999867803911805315039787013605049535787434793022358719014391904487762473607921871588143079191585629628997392067419737413673441150007896519176417093039964037093586028343632140202999915822543822345042887280804863046589794375269989313729638491721701610042478194782161388321177347187045632719124210835088743799930381880360831202931189124899439979550826386696357963804475823660078400617370763362212727075756642491856952568693424664799573438026721806468531269886210643426116847313881202521448381990299997357304186234397455489986624357372129352452564981371871096413072452369696198568225245602853244621925647641694284375370634885907630304519026576322197118174330498413859490566688214667668372074746589911696572011905056423364566382941383779007768703354997290253240053173940495877791261007215676758871765732975387174791071537709712176494450257442689864558135699690060383677286818074175051010063030389497989597011476320292177684353475997448577333311228238985779842412649230280916155499239672229750287040765282822511553756322306069025989986740121345993842865798148144556690765404599569025187349776360247248509856408417191129984403374243531576893338367487160050785488425308230057078232177865256992394082758494660178751497179772317522915458499708289294130397183816336999249442655368905391326061720812881816443935938977622707580530610769795526712545329470162659720686398310508209456226040257302462682357214897158438496102653980392217679086198528670029915486651267587720094898355255458300862905715304926010955574211265469538434386488819630781228791393723771238212109160792664606514122900270482389606774574000787856119610484542975330752236650886816762111163172037666263294256804231554849513025591763725186607117795906912272979484226838353462826332301405821101775318939639012918952885321272355238701575266904782122045433913748986617261038375536547093679623996633980926721116655846163866376907337742483103516794598032153749103849496522806096438075022835564093592993091877705910971500535109534178579475130899875995588117587881649595999739626449431286546122942451569103882009982170874272573716045564191213076497335507438953605562670168987654152606898781218193452239685918552236059068123199652139085853269495356848505231409571100419982092473156670318480177355912728974962342086335054891806294212260332636018075887745192922833255447968335612005931411000760299088801831920015024476180559248660916700789151998047234083840007565443759481230052516413292726962903661071973462012595036821686258613399403353976382396785006981579092379811118324142888615446622253142001752269865914427491820228495480533432171248663693035053613975134185639752981356718583816432326371980418455610213691157229053052154365036536101143354172837033646305298170587602154099733681992243234146328420524887399050008537936121051947261048481164429214147899449606006530364656553079471415440311839381891962667987710117867706021824745361451979094523778647287575956173766638624060956194582203594626694192066532239383170609770203151138636158985225521680394572822389348259841042618274954558340574119299171546055156737440293764152950408818729654568564674285447553631308596974104650368949815612763174986765165642344654367462089806219417905942115291542286773089973016430612436376425514499055581685059269333384215831120241246380433942135679255701873784143141586906180724539996682092174418046664163497786453792692844870602450052926609787944841550037065030099428758615401772656159971008078033412166694186259335867316443456696854960215160238578185122872734723742912039686619168748178766454975503772649232920082089697400807532204062240658731891442427070073400345584698876720282519882174620580547697963768381001386956846350107688186640161989377191495396238558473654398185862288609628002084341636644294407021056257463526742301982020114862795939949411713865493830209467294672870824929103370105839262703866039326169526470597104652738466841339903840087075241878131116182782875909578870252500896111644998585523504153391408981820064383616882746304893289739431490612736403131075657502570699426472531682178331061241859551001544374267907435630681815834987503391117968686657451105367970698106226574705372316570127876557002279774472380607350306620119577362071339934651173645838253995064078240781339149358744140170504653830686183826719936759886616645519047991996518012411267141996461260163064576116143144270357876006911765337841946100471908818910803745123207979939804178184723269004632220483165929162978453649806448696544770928258186292664259124966960060217091620211226661805685130150071903009242048050273736719671694384748344745998486044267522567824193536758991823822660488178397905559103870959436969400995278579355753513765339585928211148839226431178094171323964191016701726854860489062271962727702196281489963164596633672922822624629704104613741558630279887097570904626236647149731347580869471717732205546834819978919140364940140002104064472046509879986452333890089493316646250308679058577531320386253891285898628259714997036070166167124193937147808208491100708966617752034449793262554075585940614665274705984514747581210926345493650721458692174504722198027063052558457900829969463181371608952905360038591078668036553795157732931151228444648312265099003820823605815722299513482666618987875551283347745859273243251868400458939906415563509309391335705931744608152987161399707635618226470898594817965076124095357143101849566611334127738392745821686655502839635440570535174688325310974107671988655246786835593966817611906628969464068131572675801878131353565494669183810732722071865629998819536138077933445161489853322891823229715059412740082288129195918218430174586711829057165926669361976957042321692002458034837010633303262702769608784722007129637292906755228385471607502221740874860538561157666573364106339902740748737955198624460376754110759262985658084441606232843553313289383437793198061197316930080017573171414339730444687604662520936665112959024574617991350065405444068218151638874869927198566950618700363745253855524810485367513900084347172347771480063804800175921643512014893503546085830346265190199241756365141468642405552513064635069314706691302200341778747354892389385529099717483657442132778690548482176581749474158912856551023084239009530615727804389397099956008804763374836526327645103873659565594506819090204692285117390052101543898534972879588386710058093288663792330884250681975940693738731456048885303198532529811695001896081310267985316202587772561490481114153261957641889786511453133135383941010466626360399729981562145723333208127654301147387573807691980383592263805428353280507442274118546295030489256202275253008792334235520983341331913036302970588656839476038414821546701203772077748177046114277749878365552476454540975220207005256435011729203187876018407413921791531359984054371994617957228143983282298378844109137411772974663990892520497422675882328447013535059821145201134572604775340251520089008910941341072559177039661220933390563698790873538146997396801636712188393087293764510576049247226493954117729377193941134159419681896356721364439659255769114253577062566883119570101381680314019762870792968415925558553964558473810171124119097223212709793538458581510750996112403102057519749795165900438132857524349635097274173350087347938670542744064458219879974141278015691883908183472067153550054719345225381701699362526683621144585519978398233456580733133156643634111982081068760582348558833909406756369546553702297824365696712290728740577250001313270551116739568009158816639406270201501168230507408471945137540648109563040748257068996387912466577462768348380465382730824405660958294165408054126237974332712839239441885941631082596141055391614019066772176818771625681277210155974305812284447373988472147374330795515481558523170090151908362405524306363262491801017995822195095750116224751994488570638493631900835079492148624513900511949774046009408546173262001856305478532568792566484971598510252113558882474705086251669870594466479295932729830263682302001232877960075826324710646616406107551919720924459647800191562075511327025787668593918585323429740659642546350397786748832291934457495546741570039526281432899475428910812513705338134365883962439222781338192211517020610980840296980562571453313663467617501695053545287374320887367273534981955145373263046199556177452183085320104383963247446762010255694490580525752793475941972798867927858715235705640052373073038044632394023543210865404069575825924102548863162659843007445687410240905928877638110213147904310829527371379737852809915559552893538825688726004140738677401211984103461088583382611327998868883669409867313819249257386410912068894066883153850827326422622480302717947140857243533990840383706158020713718692061830177185440896750521538975018235708564318500638799512807630191268745565036116830066043323625169680382802437746435569841066214037748824090230269728580046396537422959412882755928572525835920706418871436848061336910834591969491854185241306656576944728995861818791061666669039554095695603507960880137752355469391143478758347744340957350129401951412324301508973668626745987197177847386130585680775194991462321403036088864229408279122509773009303060071015135739493024102278396644225876500235500822183246001899648548195290248422618003355535067215768767272784619006871454909386303151116473763727426020918458511017283861726216318597289262006334625159441395593254401858917687670729222875121587031049425708988668938414976346171297630211098925334636620027073133195349163397438940700147322767006221378292053361958004623234917389870793346228331868086236214454544619303545616729050500554958453796105671968721567465417448061799439002485854100359587174331807576012018171494482316371770455735777260937263865687600595268432806908646184117430987465877478977060665936498956822295838217084263278474521539878756521809504033143560398033332953071337918529024656914180355117295055570283996194652740702310394337610562506051893127220827357066987675045577260189810692767041872692784683258259134374919096434718009011130447729190758634032370734854717644570533672203704009219436538595679199574534990368523218289003458845163616491202357718412484196594489558840464469222945890733692490048177882472325088496198753922580758140064718428224715676623834452645181787940724705777221169508165214060563191631229576545722550727799620380009493567319492010935723929727664163698844119598102492399956400667513619756278943767568984779829400851109372211082827155830750970940855185379765631244825770565144792317756188607132609373274196917725106711063166373732069179301895733274092913353294201319061113279429164930095263207542620624248547271696682640887117902060278133684460863147585384655094591778796864906900096708039725792867729801848425019684491850599612245777759766224980952852264807355390392966004622317935393886422985001121442916461105631155402361289205751943461237619077030436627918518134057155949846094312808828937440764192618127807776066312692825975430702380068521169960465832352871195441340682999141164836556093958150495027916114065957068167799049572878736527222150815929217511147838743074607469241975433342499504654549607556482860325160672081853133180690087490115978714113626121132562993238130243833934643405288740763717127556641340540346159277915342487861671991963425394919511096808128065674480048764937698320252915434862236526718841020654323048277550050547758986203904107656827832110318105728606044388283712683297656415173922035255908930291611021506931922295435391802382180384742354600010857719575167498075058877392537833570972707044226960748062208404372119103163931978513982101119513646247907853885630539969381589580596267109523978957939704282433154520629724165555522633138258934247107399115400332435089370737361942759299827582292911361615601856311388784599118169126272582054802583412451218436841273826545552009766458298531765771850633459135644359810207493925426476647188018406913706880450446493921075858877378636970973208948363384991260101869254065973476794397830494334240456190922950275471059163718708289075512029248630777539497066452236871851598805825409740322834749986402617895384118049113081384887894220188703478917518160192491573827692034463306263298027887778541478066025807663384750787094891862143706503066466933436783506624425940529840265244838969401136862960838635892802695401076357585933122847388191250207193291636203477895857114676160788849516654983403019708476030050212842037263104642836169626980176790916365332032729212400017388695253957617726217391244038362095161697477134829112033960769375027601197227778392875881800109007936437686849072381790148210613675976545902235141728508452501023076528029420551568906974606994967695626541747400599883794179617352107022449175752701087162329734298412739448172444472720836082142579733783154964934676324626113608504927748633823325329106371157658377766280374137226076411279696092928501932320064258468296801726838971380191039636002124004638446152060015679828989285099733159297178180605780827656968101495585598251362789967216411092576938714836458235260982632636616962086555614742391602275929035777465958116533719869509345697183180520449373844245262093614255451684862029055764559480521163441416633497714504815474737520975218317413832429548827368158418170591447395517138843889379461512350932816880522855299257049219119784164136931404129424284690098902535631203548860773585041250781582733057072031221003643862584366391605747426730804558363059743180071643304380780875958514039203107035919059090225662924208692185791224835631086088726313533064822905817240476834540463852096005441472626586611552557116118528445710298211859442773633458187050759705325945941641178106025131771378284665488272740863292137243272374928283068673733616285691476137292572634328598671494418776845028282486113101672319190307937793839835969926884652480535242434861021856541834475583650363894845347346777175615427693211283361513458538909825870267858939644726946247894551190000497817605156856983952279171738010870107589729508813958899124773908017395259389916630442528905359556193035931805159545609376842029244672483140465892575604382511434144261727582510710878336552021763573404471772941695018869772023251963896254140751810230705276735185553335482752069005004186425776933810476532933178057232304754044592407221869962620806153175232584878392946697897987492734047960168633946808183821694339318955430458333173675057340761450138024504404195676341007210962491849079544315807558028311285933781687267423217281755379711246528513118316174889155920541166037316583972993572974056766451634815792085713188200864215941287843368011310495283489214814566463880594666218726621456483852678190085491887938756559354878705709343577420008677208960302303726063869033020103745571393857605703809798053333730327495809807736781571967733672743758589632377079705663796134117832850682720912168354426998604147802420173366198992468077128643993017394493386246894684464463470038902344677254136324458508424162184795518617020950716566195041814263490096200646166893332982895379853543284541926923814437806892800224825745579817639855586363106074309680794290019345516040833688055650219490082146416932121257206147185047080493225663439826619828233814114403028208596522649393874509535966427041296802446085500822904358447974542486250212743660911904503952036525105929483861676922759815554890275988546079762928964122226696452182395710815891543251597489916994313490471494339682143472049551462256748660982681999526860032900001125897717828452370239215428594449716387490118957179361666783327650485339827811956460199662153766972199820903983867575330253479376294931681575717325966535339151219200077139844748534649925153587586907892314937944546759422433583842921899405271260944224359037547168413779585137311839389310459420507909459021455936566904081185211002094431633723439324866293974554780740990709829358313455600628887883265615130065892419393658951076651251590112598338297333148085481039731997067631237720133406305491812175571159937621948899213934631136567375776794024624110145402587359374184540532943157967921296282382830049495282526952072982302907063286536659867323809756541422026227490813930747437880455812859090064392539299303680132789741272757135364591143707011967487209030364979035788916636965226445424793509947579214731091026709049515788825577094180021358142095328759454830698746067374775924249435000361758347015049730159109228308412196356602891506948810625627947758464575110812836835379067748688263625024080598968881197497880603045448487953093584616154279333202248271998167983474460817172448425211086341268771930746617216536940940817531786708400697514175112437512567862187482986337502545152977997679837681039083654347949781243076186856036653773763979643360015936418297696421732668472200975303400971261611534347176401131847381372966807201276106367192913786201517821705981838428378657182218060720384910056249507414905856812764310437878658563448519954220164582122268987503860853626109286142614155347169979310528664602101388802608503755822320495834217956957615591267649152554857237970831540546461583160880031957932337317650978517743283998919930178448478217504282976081428006160077520453800940685845968434195264328794037881439901583036849060174552162903402852796487852631493352013569241041309898698711931181037706977016622805474212402656781103586818070711888294562840676124524970572258036816629924381946160331923975546718700265205676201620501615356317181136924869048873119126899490127282923609115380146979710761467504266453165957314671504283153978123255283544485062353079562224946372481691746162570087677603450278650973114838420473030736966769736288510976497358119808815642482649842315778930228261300104005592682455621004285839274012597895700393501369818369246706028484693190591020928703616717185344915997555946312075163741617065406981235981562719078463597922305277794945383633628149568091499506447295714886895337212076781864522267063141721326192174880406399552594958724435429892419072321979331093353026691832336516233812166126498997253800308638581621001008723925741028129240174971364424468990362538796217129497574159196231366243261215404919103871568736322457048349130183318327436280523324007018994210173925650140096381141004134448857053993748852740375380032289646929508324008860525267561576495888805567840771622792927828872304926072018647168747796301471377948371457695454268879851252149649407136023698668063880749416350449450063921902276317215320916850214812199757877015217856787344152561668046232853165768264669892783565412670158464117560772967750364220178434197055214624993078531251356781204145436625194987339834438323424974947833134015602634685188867433706435516212587644613524993803906822282951893408892941252856765087528584022436145139206895940605306625800802940678501059510706840428511745329394727453668129633059334786664428492597221592727634871714611395790749573772620994858802231713415958182146056413454220583104116494655258535347274949364341003759870486771222380358270362998946095486227093340565538589159610337307576839431609762517153301425917713253186806612362738453534734100992640927880817294460484526193436469486656186518486565387678139151722860031371512967739985145371099930612171624771151358808113397411018695785674606371162830416200616183665809016355052280955509432649498810730069344611250697651181687734201053193807742917676340466517922425555061198459048908280375890985633814285409005755187441898514871454144226664512345591280993934064981362168519096876910824825513957258849394281851333515463409117861409713923915200852673707813661517343686689802899491913305760566983818012776162690252394014188019545883431831455849682677286102130787776231115982591345779735425602853200846001592837153956619480592786887314311048555559878169727184410591848063798980463055696663570561764582108593578106189833918245641503275214775150365330373575315473951990559944070875058842234953795435251829800486950020917582425167593374284534131119744646025764093531248959775500838795743779285487417938657275151746495572760338765850332138803831478386429205606208483024890904830446652348348085602310246878749850012536601213651847818610080006991950715020452366559355926121317035733015351109080733222669289631191393060988450407122796976815124928344246269095480564689038438324611043408017367776286889870074298749351989803587697520677020982333884071515447317469886662832570222315032454388702425297306850090784100404151918342149942517583076601031614479077040984077230921866775864787704386031058342204480120388588681572342605238290794913160812128409441270019909593003867646057147062914948944736155756743221655551090995633200488296508443753206254842779636949313341601873568348474887875645483688741353003477199135128025010663083384751042452928335434502764619151734374963834091234233098117912410923738647261363757966321267571752341538088888738612419326697944563233737450005539245483819701207506161374944241954267243675972201707864469341665915375566114402236572792169143666088660309315908950924759658464279937713676383670869103208471630000407134418578019598633016275015405687981444344517489957144385921677537534805927739628028664558624770788469104140256332238255834187593377833825765907141586782032890743764726827811524221879073914081297057525575183581757577621193019412257286071029737643736976129361019046418452141646432002435067476958088334337879006108129214478947369055016386734611010236362600361289906100570630869798608651291598915451416081688953793247221163780207643544232316572199527068713579299825854547894428826663713010578606203279890429248807580158975863490851750762532789397641472151363615460960125567108725124099765551850303696118048340671828267297096712232279027594265566462248505115836323983678811088758534075718422095828367635396118404899949538375902172853762542135708380295096120264586274591129308400770580577654588307822825299024472258111940113251097737000778805368563051152530010248772782910357912414254026253820185525200941323197295510761190545398597081824571397587945181780374653459931453919857951665528958874643668609399895858453543043141056208431934185456251200377012098065669658883132449617203986098780744956728114920504193913529874343548765894394531255291250396694990461982415496339315278723551276020769911472345803109618644019392032654034759203851947109406725804832822706789770710198444952628630272828394826872632328044192884348755447319197926761744278329520710431682627355852762846223928242906493559281536352038699330089698712966368189077293709931726270072699243945329002701272093207002001741736091999209190055486870370205425493945170565938134862854075370108858977614475950278490728494901398496578252589208596911742018476057920695442943626105052373022877606190478149985588303317454264152110182106302212977355681735908558902671292984375764574617500808716926713848551453640849082313946444278336207853840504980210027380313774269799497209037888033145632827656246184731567265533463458172740282290824019286315928699587051086499797631613526528716521744627191633518215120824053215138076396897719476614516802409428355533511922816504189690702374725300561531064653585799013933732304936959723769031046804298128259996906264836878135222247392787013654148171325681523828777905709675065361810087133499035800244079983720932310262186894122496666361259392309861404333302807962843624219162814990354697821666623681965850841578525196163983283276494399143144302665077168459883864456912117476148799001744215540672506083665048369785999905572290583305636355512236913877874831288574483529782209908300589338764864443166045050187471075171464305371416082010127621264496569076085465021303589488092409198547015093174510605556565805335402872931080524473688629824680284965873253594604102198700959301111197368049095207250565504065295143744474918130579929043539490994359294252478908890966976303271163603869084918110441250799570213199643997580727796281292081187389906673304695597541594528546358483531334885423254825510503765318479108517959102551898756030574554629138979893492717469707145655590983658201620540791351970196498806695171916061165989211687650710863755106334595673498410716005160977613293089777870958062232257537253629964721625857275816076812660806613437033244819050810369451069815737882176432467469328090625581565785781553581878775900200095316118042425817131074434128061744837204318565268637671806078636122241518462763194816605348428536337071102720292911864748429604075774854397862793463522140740535138917341869073315257942342391906248214905903606822788337534059838961412102750293661750529119586140808066728910620764535970607605752244695684465711534491235774321987803715801622549050969137013813148172146342856694224579200600410670358549834345205603807272126116516865325377884237865746602504972411929791483951792422153002744209911706137620732695524900606020914177517758395055834040837612994596993211207183626167335334300604528166187727689704438764306252103062507799802635904544534406405827983937504996526455224097675031072510532444649269478647846062989260408889330188990480445521276231599678654909588266500159571159877370982582161567266108655570192427692650191611775337082595317313473466445951948537959694216611234683026533812657472199398158699120972172378260460399935025760088632074220752555992023348995991869689080962223655055027677686769254164274506799825920701117243404339016991447063972842473702992773497759790322462426562581814521196608665427560147500399377631946940249921603012277751142750163565178795108285315697498035210405206256617775667095780966678113379735753499350972386604329085361480143000534207811556120387758357693927556646815443392675312834932946680832663873992470567043422176254859746731817235964206181254871397525949186972094241055437516047929709432336773622947436778921244747100467069414129848863859241367344811473008583536980944915862032338129092899858802431804307027790156373438084792519621982796491650395140966782971131695252606840027734224164367077927494058775914594740983742433876332289441768613597415845245268771958083213389432784214887574615489816952939176782908503817924452794967790807399122882971171038605083065881333569314587246333427883659489316084986861922362392920125518138711702542916358863301955823804416992491975701846621553839630951294133153649769932241873221020523308672203970374426676172110484947252627076554539586608346535400984994637021323983854602980956321411120683187807957683677520793626599837597500820316542860650433504192513742844128958598937446569817634286847642230233493250276722631222989401543130678389323918007526805328498945760996135193000266724239316146944609712417153706910266563280210149803891881167631393368560682162512446314730373036996559634227571781856370391569349169936087799936281478122333987351577805279258729749740696757034910068801829313487320250534743014056623403696739093259438741096280393482017910734755024055809792854796466594478064401668244300540410707178370530711806416746828918678818940933482971295269250002215572325088910177889666577518390985111917350449335876721845777125918020423242377028181174618374664772921417555608938924833724340099638632719745194929243701040052266510787801970519141883947350978466045067770823419303530908597566072244587519506217282089357043236704419947978322028772388588688674556848599082573026018431198264802127520222985703955368036072160056958128856223060848761639503231690747629010438727305227831366779085950567449002646726874498358307438825220800303846291046562948203261308688522355579491362492245184910837883862043314417630476320665093242299945019681440923935137034728445782386505969689798286829716218186637857741801617520829210442851852975169762824136296557900144405088295340471061514667147185719460257934664624427021486882592003956058925137882321403052121125187414695369961844097718553127319123451243443149365191569375934150277304813544661028483292798926138221560988466658740750315531266929410861223153486974334565494940841501818759465574655857908846570089811311347968648521453833030442141909785745754282885271927152915410510066044879664703696020282848913278030427781196798806458890558007899986674871430600705598466842555582196190707027873836651009096014837322186592232963752795420494958248704772188517769367476948188797551068927428541673507205578959739703144378838136104116881663060850546441896655378838652183624688769582910866775625509085366701794214205185908806261383018768350750365214410017163328102816627257012564839697991484010086362260436207432670821377723435659227893412769609172821476472430044236283846882663020438325949015433715025835306324931949663251599779202750093623238335800137009570260906567869649783717945345298002722654797698427385086416355032633429630006054444785672649251090175344400932629567617638764144026125406221592955838193485972721239840576082877916465780190804696813324271630159678236261344240614753209644366462815265164863505721641799611174406306186500695542780671177689023800709865000867684963783470899452561775893118597641222198805228580499385669852613485228330301028729315988975311947571000728313369948595473145489324075386446524213941050375320611411980346201107504016820319488720724135070228676834393309069295773669126127874787175132277145727926360521228074007626641346645104751381375790885745334100052362895149905076530888946024140407085826743510703417911876720128731511232139076152119806841842080681936341065755709458216753250514744402865753983529206032473974038240429501886755212422363840111181609655273687654340446085222117364632505550023066910692346732741581180185401088218987397834438870935654080448134747237029322701520642684497526022758920815274279781231922885442872476372131810764092763314365348364111425638329801220918919659924043255111836103345350864102406212601829598180954916722650546570293061429696958362141658769564102478943530231030264413523067392794048984035899514990886216110414658936779980837680783072470297754876236957496501895400809348590053327200697972107587041208727311676718372015998774778409195810813177641889718887771080508067774999468479138592697253942190564437795515504569331021307528457036897865207135282047944604724670948164495555899932634228997016444838484348104573574951190432350573172340937411537410545766748537673991856467278660085346187654652970583195831514694586249683041932729896066667810529965379248309168447665423001485052883245273792075242646124767807581999366491729713711961553189346663347285490738262703284251767378821960143435477883962484157445810020986468234399752513184554572078641774460698764569130580159557948286284725182383791968425067279119525992851317017102260648042088097694807685438049999232006600016367928385811345026503416132825098691877431770846137308147682014759465643679205179965185616795572489313986840537835515377293516510152850625755462437496074909288607284062427348029680543513285204448896228485809853208708332442904610941859580533237653348175010163231145328591866308115607110328938974676075248990546259751522632534411732539265324952555837440510004462430027105279218153436210888687714959769369871985669619948840167084848563737388584412899619263673063060520871123995812782141457333047033090388710128034186541453680616595999322588483760412829124202795687104742142833391701887559452275852863695057129320100217323628288933357242640185593062754199273514844190780357809226465833917067777381277861179828793464563468723983722834152118888775889595489395736230520024285804929600813126701727134876682052256207476973026561829606367676493559062901795553765460248653268799619109326585331364322309531731297217170900048842024152851969851148116914974395885646470551928095343434626402985089587754815043061247232130104771483891379323368237999618311619445082041047700614483029824497170181177708338848258418671232404914639745702872015411625128396799557013818986012566954913004539815733022739068131295541054529993919290619285630827289603621897101009758472448814149140692341332136943788953008428820889693274358174253549918645848662933726595104998787080886640709037283011507290400467232284194714962219749793045063543948195558036066430480836456653966005453414579527232423425692948785704629281088662329410541785079732168819179778051296520952065751381719310028985199646521985508049497273484675447195285669619890589736068605637599753097331896311487034723751944706310542898153381320993978318534059925257272187993131526440807063298615689773769239813094879920625153321505825737846735147109686297077039743990790702157519660742586071392764406212407520183135938656227497743586705790085992839312087708854565864424730081505234343193088470359853785246851288622269657588249759370229856114047599145992451277510631083865637383393699101421068032723757523896584118161263660075802107128402824047621008646241736971676899231697241007515339019472268051989622402625048558261963227297369908001886478354312244546822719550002075618631440461447205369584380910377429112216087339759625490733557803950322667860173186389469072434106986879081314032305721794809985630203426507433736810845522584415084586899889080646389310992623969239685375753861680166193361531301002479055699967977161053618391087931860216862296682823298100042425042278875065426984360388247336271760229177754213502697091017148225270467028851471234310285244849511081033974144921665944477333317936330577948611350190701992089348925964999917935355965132353455137314024619029533442770799148798378810755344213720481195186920234661726345695790053943552056437060021767271699724416100994102283157690576646591453393869491539810858408197638278305257154522401887224171972165252699097450577587034016755989454082771877083011022564617617797007003307981774001965431658674545392824373641523039320670689517951471999821490061504011867192143571982800000418070634928254179653632854945775594459140001038697982809951281374705072508781532691505308425329119136900282962802400676832114998221778870627273019198713597170339020496749034697656186714127769575712588550241862009803185322291778412780616166959313245031035724698368047768646348756509745836365713956890441151823646317249491802280681795935850152262266781432988378787870691688521705155025666806649443042548780510227737603598451543826201286105261299912783389063433600320083938638768546380556532306829298086837520921904372869279367787042534012992318054068756528392940126337326054384330443105348824590981328370111101542564425132097154785871134984275866548759984091662875551420210663050479574423173526134491284787087989800572865260308683498782430352915526649186995022456220915227502568692780225324940908217356007972773982264809031898814062774377666915071551098915535369204684908509422276922005462952408322738262759665749015217823864785550484287522736272751834863713087297245550810725794927084153787213751717797679812557173236098343802013472891123489708780175909539494319003671664858431521837121897460732857347690590949689117536106271816235833340321465945695361492495296356299194599877498542070057802603853775634823356585387707695650021764056642787634581910230611998186984901936647959538158699480321118314418050586495131822595981425148524911394852008544261019878260896964057885992167531771476863110647504603502351252362507950277132126110002151037517113808121030237004843566978786725398336667422400229943113561487015127534573176497402879219466047627286972069728452368562472514049019209401081914331379829135701961745068336575589363143259191507750124846403239916085068842328925329169996806807692859633287904217458028917747851173309913065838360598677161295710114492690264901636731863771816351084885845349132114604324148519262155390336055112917237738970938410070608769032362912956341037021685925180852891064826711681984999980271389625568031226581645241364721912503190701121119100196936572391779174909141571602355876437099164643067018398051477886080379266571821132633385013589611298139643596436382269755474374502884000798521426088912571233188821357983203206203508714522937753552538470824721458685330213825154133127717659512062786292780863015000247738022923143203466998285634458278727602904216898897772475792826815487147944462648765604499398145645053974695210201350601513369672698234431631475245473763665002829997537538206371893573915421936101460803733198868411172351516037923676379994342808348083150832694376158890432677864698822336793159405479301759824589933897599399431911074199392737004727400575418485939902198324403327927337338676621281805517292021145372107972465385755380176058670590965535940557589485769079969810288199149513775706010226750117611740547677240478949735603781798672123679050178329675304030522947725396496073941374522853454709338682401757215098073369588248830979241801170339177645504037921711586027707391319102877588304499123000379326493060332691576845374187255670710564697587763096746742129496200386102090404212301226586369396956757836546687541725937383251154636600512698299658362398060468897092361817349825963290368623190053551033785667580857080624666272687925242718557218087539850892348169608357718876297561794365153386840456017563878729041664972490526025326006290061516613512755646650748120416134258007882207691523167135216212035806416361217609152709644122501744454012569075200676419852244901460906665357800943040387092844366610696045740399123864719165358032777774914235157942218857585373403667293312108733548108910529380692888916861159141718203995027176706794356691093718955626510424943224420745815305668651281019579523482893292828840980305179939986329365107270865625918184632964268183046158188830597385417754672397546601178134751797826261418985521639348661523898008881635483979515323496988453660961256511349244858317200668117204910757495567427880102895516921896353936520072700259575803505448284225241093005921370206685677890879959256190114238462396280473373514187471822003150979537390441039770165709210738486858628568275111232305068725812639623508755153664708235751533573145949094938776138003999326901764561935725134657813837031486429064049722343681966722802387262965554096278332215279359786177107686033646833658124410543517321479491755452160013639422685169338127419803586291092723786993183762661987182455790719789171995986806604701546166409059811598318316976554997425650435939763222878442337546380710535515607248717707014670372394579685949584120316856588516938896234939513354476132348367814899101932567795096352136479791255303775619533470230742503323788210918352824047021933633728952217220923698861641595021555706433366664167246452771010290943925501762858607523349933556324958039421316598091429896282408752476796223602236532717629749274420731191398002871063710918308597079026794897729196686684068130954115565498668722981541258868974129664221365278914149443102922617921698725841076930732278063479992766907092902637603115127515637675252806705866830990402000625589065793943943554020438081477125405768521686602688324600981436116217276122771801780820275092350411645610235404428964837905512702533733960842672545464682473447206344140553772206661793401888969132500199061395047142005449651517204230210472601393337472771524973114639630277157230070766054798088929480468926203796073684120614464657498751215006657313534077874884492611870892806190607235398051241205789619645382529925417881918383205668364272222599331880491352971976981299438910686882784474538471992535563787828163347666799586162153634336935394619065594879886424336770450890586682950448692204637897010962738877560917448587915082942011584130567064409312566966422991924941824865981015006860180042285716330644894364836548038244809058659073061953376425205564027989759475407814215990717607072838353294257212127155818727242209475840217859890382863536819626895343182203849547419384802084206329142820380164174281068619423079424821016652773088363677283820372037590089762646289192027091811312101273890663275565025307232256264137338686440003521683080394457049941294167857419271363802042676911090534171562334082210290665952226761174250678999018514562585214350459488420359633920677368078233682232065911440917110825461865725948278866452708379464211948474076395186466699435009144438511591122888860529814481861474404345618931261378056610029989483724034395390754964000986490281461973969854029952620008452207270982119488367803995546587439454600508865335923344258302222760197073031670489857968602908047604574799070436980155740343476547220128093822577044481942821180627298948749592544133144970889458295532883870502899172493382422151213480914151746086070455115920394171099632273386725726893778634949972463991732897469503429598673517823318522808132959978471672379176540335086202765982256631323272521616610362229222806033171903156716951403533388915038517499739822307042825234868328772492846569578562157548212862305630590702280295941053210039880282279585259259991728929935005834251838403792524320955428297218515518374215422991122920461145329386494955467895519526287328905478220002770604587436929100467326322949117017416110527460296426892323192330281217589676488153298463936931070923487398273774316307549338377245977783985494874396976852235146698124224717243463453226025849974250902545546940532874336588005239049845386882332957704684148665632705532342994405297614399104014809383522780774676349696710208412754869777297971159321812347932018343195188774027862656598851178147148749374855311925046992741574841210072280832051091024314300357688657427562268660297274555725407810378081604330223087996761604896173594041495522225347405315397837898527012473333036367629509415096061745234331901432099897076828365714432556160111238020781795650212477714814232854546814381150863590653234787086110572044241888146993430920205764248443931425440599146874640170024885242862059276795139569150192123053085580165493750647697926325556746758488882603238658402101035944069990823207058043071246232732761563638040657781756046007782842591316829706989693355159693137284870044460487590577303100200050035250876256509373543206339851789201256873116900478951567964998522971127473009512714065840469180575788902305614359525904591551411321965010197398827128712851708078017313439178232834771849071098287584718808140863264037434335417386045800967739370611653019185812840280398600758674847224649632913593845508721511774852919282763059276167222260834276837018703483996765471743158896165205349663853447968561342606998267045189183591418704276679057401829028537663699592523794754970477156130313788379420878502965327539177364501807707664457456175447640238075775460321871793240679894925956083258879047428121610976034496628066011050774010966343979030536239306659774988240980301342473469854623091274025122945647132569493233126370076793164462664964687485727785044606582080259053793150792708268206043785549191315438765387806112680377583598081937081892537103164814829411171917250216147251188655463795356257415156921254617811410858511141941163175974565745008894199300088931462191291612551569254911893143946406165751882128835623978259235547893228086535116603562044322154781682381009870055874758827670023677623630735321037037912689230849699312491395993948246111799174775648778043589349831545369563613157805634733515226094396721870452721987833216514382821081180565604986511474211931777360076090584952959022554537688287263675186103221780759418596462496563947654567258607066986905893552714220941144977630440377732446508787452018800825854670912323245066910901437596225312223391112533318251001095064631144380481317104590695788274454792398299430470731275309460188497284758580234204128828790267872293303360816466068693446058072718286607114157818078503166835648755186848584546086532115800126983319935104380408407577409055456741475411980323036148861092308353364242264141781107263866816914027950340793360582788638086178983805279063533459618756134018432314361403622314225794256935276691659708000261443888211507038237039669419950519610785175902004030926192046761370852657731569872664046515592030911055589147844489056151878539513554819941937719596806270675181138423723291849974595755880273639474820957668499453298348706730813054487990397844153824639002714627148358533218494668448604636438438416198769727395216124087357912143867595518588266644786770393590795268126841727179752726665810323897556648240791379869827293514067096816047704426484342236396412456257691656968554741408521134797358314813989820129721215504769748978862004363540489784437011344424908191274191977325916871951489015710065533644166204308144325508483090275717174959060449095475314641225597828109562954905977232730393353429610286487372738238282002404566471740528844006949517065134730026919669524833486420002182216393128646000879397186907164996018971627267121128296943490072316836301109704946313446787060421210183516278687689262908894603726463241659955094632002759414107306243601103174266159629055694221043038877703747438945130140396577645933570246443708681133301906407477940034160727402142020474535860471215117485882707726887738381944802056887513989305492336265867159238587244359041452449280919669389806662496223592180769807109672801106096071279075838628256676492222938281144826481209135644872861454692166378723792688983825808916240797631866842032338526902185501837361393691558191930556429430632431576127261168125673857574503801487713509178322188350735529908388410722696096437869342788928752513226920433170299543252640811033802276352041677599093963946807966725678312435839877594723819215886653568264176785948740514294665980643300947273669179557818026985908633927669960233354318618308147556595158611214944334311197924456889330764301734902192566972794192250945541621786915511082411422432351074847223850218928375661140823459025516545168732508882648766280054192565628337708834921115725853687807442426157403585001930321153538562681813784559180112615439176229965785848547735501730634848525903564282088213336026118271560479494865886032035076158645174496226519004986342668738596120762210985380585477515268363889435659302604401125146436397149393577394791932117781216939914109191907118686168177981721079005133910597741343308811672126656933711405458866368005222669424202891214414342747169845343375628549116290625190289128185789832387852707462055149704271423780388542842011581617094285527523346564676716413693955826800961493800189089753315281373339569994786137238876874306833452989096114362083491091815164346033867809031091273891489798681241655207793437156413431162793561406007113348808790549127537158479156384386360442288010071157100109574675032200309639383864086033333988349339933930228482939273763570374409993648545511258682457997528531734051696854866617702657491715662434576838962020812594664973921161427300581724948742138204147719758523921307486645714147789632814792824590554661905719336344703045065692582509143146146883906812272861810674682203412125122322920563671135020596779658623925692037658323099750183086653284817207431729728452613050601753725693885045731346737547578697418779786614263492847062942652616031007673762539200747294250570608713432302281573144486563669172547836601306127788371069351819434600004029514710292219788845827284151451251694652137899340400486465486917535036275112904293403578129691694571413661077047750482658681464994321416578282419521297561665018581549367571324122765388405595989430284076029630928866280577766597217302156186879060638014875277395962690629493726610867654800138080799739220161333734112509583340132205738401232319109968523743036310765182047694752822144592186163702900452518997340076780202847482580766240226641155040812065348924075713584730330312659901453407172887605872795315544636170944552614370273966069157866766654755162997804019151350069283161573700761595288779038081656537250461461141608070793034333440853609023127220464063904809000731851661186947461138318566963051866399537860344986114215928445138935523008738264384597066429445788114349610364813820356393405821075049189210408743789549704456338703668614720287531741135563273979195260131815725879973339593839263885311893122032998201191693930336103262452450778770157877479877433649143468083231090308379786766744025076390580468603921547973534159061294576715390565917207945218384081368707518605255232100486611008172460526461941966739134296214239981856595512012583935534528220983465122842240632936927416040640110093174465496951476298641416941432122298924765471659602498599479093793078864839601010669834773937715077327346937848502524001081722938494754799623186917662429397566302194465709938057353634959981770067305331025260146686665587553984535066225384270269734090489962205398503957833585942028963037634374194022464277608367319698840632012186916826768505937170921973552846633023739423961113316788646441224323932685889632449973681151613319034550335570812540354055323429378920285331190901637776039175590819030192907489826604993009869225869217530043397200328447093590190567958325445088030245898312057479809985575700350269761694923463733068030813911356657190473634694795057308156524363248708866319505553928829828352566384685469957082935641008308886068547553927602208945712878864768835196407300091757035217706115919097940495731582353605190956004198001991827105198876010341609568423367024995612727986755067108060905883595537608780514715738742411881058718785105443370252779820360015991335069236343640244198823888002749451675073022295333516417983514645094544047875421912866790790505433406392730091749670567014723712630593293308871799523504952007136582642130040403765984248773211864154366465528052108894094657261119441713936803784736788166210170607829928443798185214182146498989547680166860415504704070801235461480313888024035135504531870437844558702725155499906243579742607239818195082213399326035282990200672275579706667744110925408507374765512195250435747434769130146376755692146832562816673963429610288576042925684953391817049913492946373523856285514263217807096865038657785218898888765045415636130175781205724722448462297155754131491059686792257170131482035330872531594671429753333187957921975879896270842274805584703493881493395699956091284945337017146095360005455382505653228596249139389148679176821106747627176429385103932221102958475929157490880301108860114433061547832456197983784128565899461340330725951256919574424654659967979841123917279295810314095144663529199936655911930842617452620632387104689385320148867040499635035995523394553867303816297925021564977613682719013030181519952986051283187847821046677783690091514117997226041087854804150263180084932756006500911373932683851462998313034261284002221950201459686430789201114642309141177479918084060721682326540968835130396374974987488958276861337530688170352641799557658887918328225873234086862058258203150165781221649167031941311876990090649196488884681732029667900351014759144473347041601055855316556529632118241807713926386281772430520679047151824323295048455544589732169954541905373248207945279305645982885481195901036901335332923388950858200274211892574661492530319483469023897790183668956977831501179995625521783973688335394641324095640411232490705331899373136932962089958359136250135837186562052912616813683392677541136732330337417500534447289323444254580993736125420028076306555148900450234654815864555784040015792768895481913636258822744901674300358453706905876923870959054430969084309306182501184730521803065050568715102437855954556634850954101162845974216760857057974165159694540374931818827828770059069679320097610074617501511142773408164711222190410867499970283828667694789568425253578508679187730127687968645421273699212905248478095704086498525716453532726783814309251766604125507534187575875457000662050491679023622266618465551792507235802084681628280524065852809202570476934413961599321711223209550573746381193416661777177684955493263963348702464618293401108339455750734705904417359743004283964904978541886596441973144373414523522981046873516629159274656681547466045028943550167934021076561840955690977521722464806955430005188609523839376214039099967553230229954760795527579002455056238589366661607976887738742643024376301220300198390587718627683441066848207114218586173508917498576065525060085516998926442782443271251015658611231999937912300496485048141838460256534706624252664185257355026172746303469723348290693519049174214901977735710625844547133867164018757293750947647043241452507877366046721657531175902380183133871867398610485954495252946327211685335775133101415427438266501727603784621076318126249237983343970543845085777265115357849960028853664271546279159672747880356060665959965623772661686691864477436733120106812984638786939428834541329421094147971336235014317841526322916305594159580337417632605651405199001543050509354350203235264538415835482171046348252962852191209846813319406582498096363621510694266991952621852365675339111018335756616061814952432263568559014617492266720989711112939281024471103921648046743005978120755928612426160275042334084288136818407342726532622820246880801039876459086656586058854096995990294351949081585715843079481287968916027825613588768538667425941288101403753306799825515651128839207709416265380741274691936785606400734282370906628632031638836573434187410849961723395497790746731451885524936589835231339169783291941832514941464455469624493141140290366547442569812915270237577360588431971229759783385895810395872566925473966978712063081239289536054459942950616937092029247074052276642884657574187082374519132073451239377014619171460392621573558917560966465218492442419525412686383556920146727425024973313868207212600744141988939830085829341364869882299721527879333744234524511456320497353307502900148355591320114839808985333351293576776139837489918045128087309840274640708164024793615834280660568393692312895944059186556107780286706238326438827542790505650807158531394633092489127023140314614479046084736172524212053970948888175405490487245496583796841972771610508288958038891549785939610561538572106163627536775809005255241152771761225259802606420861926993420724703860347484094406002891028550852830520401290067363595261958234138825934049424196760722491821432764573377875064225476772075974436145226130151674743248800122091943544248413738712440159275193256288924523183885607386533896012544578063803848456355786031050599081312222549152382892634576338385338194196997024119410113388332106488032369626825818271397940981423127635122895163982754890903488020089467309063253714276117397214469323766876666005596751036452037871378995233007527513199413201402462105219034345117216613809750003367794849902875061137957305314363912842869379307338483284340592248331402469009245135042538181741903087353794081410590831086447590554130842170694447785472829008144513198870698993790060837374821115265365608917264973220600499663945426290539547995756180932431319536477889782078249118489534849472438700710971243467550475146273305945752017075391024335636171972980191627102922333842103775000137768252166564938348837423846997106947069096617228678104825482279721861711702735431672045600833885928457740538626195190264273223209947878242256955047853297161283362390731650232885290810998367403951591873452498013614701436065722217342299732291336093068103238473188079682150276685599797156432940677698470544919464314913229539511025788548502249927596573759063613296110179519407941865168630970582687118320670924424910246823755639552533332373654220111779479723194672331880392314851834956496488577802869688257420332225651603421135235994872041410082665680645328282598061589415824198865058951595168746382564977294669537467103976444273437864102514903720534120418603840884281136134326084389022638240374686405687771522401216153159420042389172308505887190229971074851438141243536304958981765906843380015707974838672188907648775378077565344248238564665981210732285459977599051424840431126509122900039647123168205490590464876733793336815447695147487835773322822217182357184340046777409169230409352258393814971305286594354435833162967911135227931917337033380166627843476635002038551490617057922513668921463135595079250603111006592452580448137852469194832620767439166085102301429163140240616940172691775729700308884195516457516412215564901754163990525519685396901737896175264269123111308417395666232871969997613910679813055856386695983052553453571611663319903018113718415168316912718008339697638805037391497635927934565297400497873018432450112138765820695873660238338935182193742089983098266720532725837172052386194801438571169417568787524900546290559557033400363609220913265898567929915179998741984370680183261682439021624920821165491206824011163496890134317529285263519466082076502522013449623782337739437425004326679879345697842992126510993739422813540848265290434131762575035812466476980324528368356805128795267188972048739769890447475142668164504174954800853396919946219972029476868294609507194451440460199404795661454120098415558116860659751744469917568474004904183655542703175217158887598755091851974186594112454978568528338484429670324120916304118163161559704071833785057186757528240373094522694807751513465755889638969685715948875725578198714097444218118420160183926406584165364457533768207962310763671706720932898082409391565879354061486440835664553907608211817593640845979636991429053266109502850019147041228925394899312612468465414187632052801935286503799522362149368897876370423638534861658063167042241199861741294112340098637242162990728998979411517718372153428760237960787674463232637058920602369106625908269503729112502625075429254604687099692370222176356902344861162217201508683886657296796198226275651329250496293588699379214040334489690879890046728570357697889507233488310654165527806330624917618270139456451759955095536920334294986838186767783488557900290865051371978920122095928856822238334029869385890203724241650592135843324840561373753831551611789854506618290749208037500845903611675404380133777885176501307838636229449547064628375349744064958324384938420967109902839078646539813182392503872314623207281766762649047067938768417783055078543852366320859178162179066656391286393010645080023088847707832031042745064620083690539149150838807062014597085875554227602059136837479020854975550847625026703823934523098039494611553397407658831670846190429930286083540355646666056551249977274896138302446028829995826329942851686713191013993197715075161089805301420518144323937611064830752704444395428855085518246673020777742190801431114240732310905093206391490809427379753806002041521687207250119095915305129842637842178331426706713734117908065007171204518249332131528490392971246638505282022391821982967259839800009164637419141163353679991578976750356626965154442262494213982020228561880443745696733768733626574010497197294359786604292999376579801189922877283412458112045655425177149071735552986753810234731700755774147308276147834505837704282907177917055443043659630407973477649866253205492155513100011235150070995469545277562293479537464790298621861078702280464308536973023375319961192153661036946224234636315837668461963187554719066319954538880609510476640706542870682412131359471517610925121202369776705185203117989393841660302238787414762994607497229230773825904833220606795286601759611062273210443212036770259694646861315091869671880109350362480846362874646269735300974840341336317606969377591663078990005116158078479045470693512475843912935167223044519454333050602297387297163812302302747814978334110852424167386206675418240692900422119220505284833229281262773351145296735230441719493018876448683712075704412243128905446705402021728665241517417237137544377801661597585070189011045002832492823282612903232653272953044760101141407778552679483896894935801718867663712972482020064948301583154198883826566968624340027333654035329906831710822826413317612655294003215985117911528626765069698307041908078470728436015824385086079194822262379871040515839120236806292836470011874444757413934626089657475193289324036250440278074937154222551090946274068386201602811546762385676149664488104786940868088770518944391270625788534450867568682322473007412049625867960764818764946948107138731816221177354603296995383813647077560344322181368196087343907378238551988671031622145023114965012214711994950398319811502008464707010821896831619028214150280944920566241416390541541491408437796606984165312527336447089566700386587400198579063154170897465043881688867463658662979583204276020215104976246210444696748129777228128380561553615234752508190637418169989028490336379855357029272316280030804590116523591387562708007246930706263521226874665727671484026190600970935712516418461877783434624418117042295543299936373414450786216182360920597144326713410665769394768305590390021941137946791212117118226658396521463899069766773901341174104713837481391033473821599315697137986058917501082781463558596341308789299549788069617762528837016738584730142331467304008292057063988953766296282866433966944899668677983358238951860032390789954952699090221172988504543996027059258256430620104685244246547488758298054609103448388533707854680663350671510270448854577360984725164160574201276293809488958417978451342458532579440104904487828976229778571529752025052825640096789322059232836080473360177073010228084012413294076650186284133342313931312668923495752589978967729054207655653180388338752953109271969079910341721723344829259608737120578588628457828565643116161375638155339798853371262460307574923116144751157036234101725078724443702109260038454967937871896966104116456601821287974725228814924967552402250838868071014851454589344013363992750012623082953720387355479450190444164699141532532294366489998678622248352235950606373452575089259369441410274159497903585068086902306784257866742692588181165758894035344418474983056781278645466654121975299639414371988639408513973446944363618429645901515776324728064276997364424385781771581704804224102308975454056556878984075001900953476118136571925744923980551486285239753215800761580329052613483304019069936317588347057530252303607597641546375823493640698406569509463749788746424262136787860450642918028008334044732069154560727245486480842401827862297590739596107810473380206267903688172801387064624396359148455433999966799928289066063074706201400163904177623019222026731346798881241694760897141198459865812013643189971687836375924655558340851203203953601244503169744319505053611928789648926395210314692107593952187744948418466522905413568559559031652851205109380603692310287348470925048954384930336421634641514733974053324624293327863006942098512528760019525692636100669883327245839096334474682201424755073016350513510195521127645919811242497684327817624638892396890826243547336112418144884360216836385832426224343936313623519689152972490315065071685603653611515764420601090874805703544540611509125226174587424733599902032357048812534893653753981934915095086534332789102797920869671960814312301837253942264699385017050749746563396000149047285223970138733966412884317591978855081487725801912740770658762478517647287114419104353804254194419418533576993604112335376192979275102248807440858061417012784450065473451043331903905954555346472295683642779853036896926515412669366285099664777152102402276788853652484652550367053186627127102682229595295657324717041415685486567806217751434560616491398655620510203954233425932733239398590185298605800477654607955218648249116467110826500122069236858035144764266997039136722175593091645205757292696928725468539551380819282782908153292655119458510084834547870851768107914887160687548054139089931395228482234194748261757751345829625043249668913457845027741133742921452641395031405614544459218100862327858451263617953474777640259202439327926669700817645462011796504242195370740706016711536661660390193940568672292929909791816976630751002916016271963576576043052527715232668374195146963087025866419882049998867851201790582066627863611101364148293718801828338898747302034545600123877057118700918760767665853343511012556218958606639142141210744540474976061542910317913581602621363153230970027770729026891564117966382352317761132722918730454668329872657215735859561061396518299122202096878671429584139315689376530526517163195537880101614579851729592388216508364778165270044621849410101118815514402306074513335447914785571487869146643566273026337233192148476431211722533577324179501944677559780590257804168021399310399580139762208116702735245194004570487448964568674945828538408231517326301241891768420824388487225242683766511565048946113728801711029297831362051835746183574741371292909871045159648862430438774344422320242016648933971256049102114298506524110719502497787399233012978998217092342275417377342638384521816164866541478728072385119114286758145074384863936005053729811770795152344627707225947447875251789217970553157976085697435103494090682446483400234889836581750595416476333273630128133991560051251042721003476562459253396825904575019283279500233219260422744413058787245233879345850036702213438736872154884067254276492012664082387104432268995625070242460410903617950692106220329140922540483547032862566024262139147530184995041953206739747269385826304852028088969896049595929522093143888629060833619734940237686482755084712852119524318998881657717016568359537061305451654447172564582781987829293048295143511858129097254490551387091400384845061728687596789320318382927298023146945172759627698284551682830431471313449652415967658842976297230129914740001588350266282238177290907589148512185062689623113580875151762771525450425760071003655293574527769098948419356322950969130125917462731701258315714442614115590993522117595828220145741192001197884058092437813093125748929597560818308039613061931127315781436389648923563780277041930611404275366265654899858517749301926910609338289996528245959225552672404806758003209307743286397167223861238129548224699788111125118983696907133685365780673665321969544751387337199017666603098597444415553863533658241428115024090657801802548811972169424558586800852361135068123879476750364009472208184660626064164062879200991743002108655009017152504331949509982412538317769914247811395052472871492110891337232507365058603874310770331021809086956962187369912288759783587082344103026859269734465458109474191580922335709667386745155426733946013529176695991116711587957832271230091396186916943153590102100671298003684015976506609072463327168791477677285852092941283399122233721502058043166936127099804280523384038517314007381517441134012812468371807890346668469569752144556790593288320945599937374199755040648664680371578171579993137743322046114405714747935589848005507279158836391858222054255468227932729253708907738744631725043949882467185922266448010172792949821426478085728193793401924831236226500967304381074218439223211845059656593095558462561049275352884871176082953649802851455116425001299504929750209061742163355772168626187144981722513535518239913397087649133352294482533080814318696735387735033947720696312498986605344714777863978629212436297354637769317964998878348490621187400093412678168199935106885448950848664053841394912580542293326740007750159783011869055279499516704297189878456390116383487298039348174948104631433073031677702941743025599567043207913523783742036853117223041392274619176403001997966632662575714415751637315903663624921298794738626596815759948538796084031621062592974447473158872221959777571283314818324622256979569809868160196951157006616623179871166809289614274207485033908633834464602700601461130745949442757489724784960881194942391326829586299715694305445210959802683024636224249178881194102794451231210607702019354917719094593328195967121023888732256609562662744377511879123876193509875436268799248836337337032816527653254465869422634571337691599548112993027361840860237034183967525527543242605759312223132998438502706663089472153892965409319839392437352563643986491043113925574482153516613879463570300221844336437787525312076781069945086409500637664571344467114183054744242773643404196958649964693356388592285168036168332605182058356003772256630676508998240189444566304489543822432144821087933423769003041809120107452551862049779006135063741904768501008186969726742323968706071760542983513465253032444590548702707197333527976864701621431833021583263794619859704576496578957897919091821334320251626066828764806636804493501910479647225685588507225262161155134697265746551326967029002482319073481553256451107008570058033271009282075769188044101074679742179733556515720373401014538260654183637544522508007496584603532321742686180464901737859292651253639086972690700195548095452948010232496159128293802332728209211675518901558034605066095782647197005865470654199420736070642340197462045027337377116672572265195748782320429167323317574199951570180469917909247919705983811201486167126257710520714952356423160144248235594626760345055219861898873699262904719393039999414489290282750841570673883550491887428888913068679461304868847220769209085481373075684126686790658929115139257832279390048804022204418824756452109945491051150069386807858358052333978179935497857119830975890772601932907887964230234465558096855570609441807002811647197417455761603776087916523184546765099356136304477730495989959278262923524067301891376894218932819505568769328059223528345123796636485055760088297332492703331545213490132390170320722759364344801498561507660529631106521863610043866754967139615197661343649280575460636890801818556264930703662036755194217833745760771212691172478905696819170753204362734796690461499995283361635030846124185912549256054698427063527326513955236655535996561100417239165076292085279093206813251436932047217182237603359255947865952016250046316849063125768862541428221458762546818463117217948112317882194771067310318273702116017665584619950569585354850209356630576353328736129119481613636661263028865470516450297365569515420804067445742656365843205246789582252847266998205326550128759353108564672237774901100732577470653325622496040459447430741314461435086359615342895386685365329233095718901426439098147159864047850601267239104597686793304567908444250367101806121144397311901475108176495262744159025393097036491309982946845443119202280470873124761820298070121093978724043926525857276657861788797775108138101374648290755408691082497783353869218550265091030584420592608909357100245636345307410648757948730678410977475885952425465388473046188639226975116873388191800044545753181059396108065029198894266827588463726974735082365159557610799604237164315241434464882333305934038450338947737868865717775348495491954706793934739376385832350573742301590396888726865471693386093982997273447799759852556000792541057600856979397507902259552514126626457470490518850197108260626058799601952763162386254519923101249512329775425607399719590455294548933359809524763210806771740925197419357453243389391474516139497459291931408258305533386494602107982080551025760145519068191103321239382690644314173588706502759300841637615856648828765280532080508786320543721096617085205319398280902654339913099276117809543483398736421412256099693029625601533809797121792773177112896820418346757483302551912475120352366402983309212091998118290592845039132459936332509716357328123597378387621079449082042067248618373481055604673602748125148210658332382700600421639243587776992320950289862667079851935420398910683485365636973608893176247427949489263497873940270177974255071585333273983578069960601422672879647854920537356636787747012969329270267894820515515815334127396203978088791278116495745303380488943546520459367038887188295582978348769827747658435610625704185116486835069870411482906575391436819214368684283678590308370698974839465103297624681258610836804980281774674039690137094797720327848424604996175399899508066596959608061943982970734467261214989162855467657849352326405259604357560546976172929403088625659570382690498449022103355704554583287260086607134296006443851197990114419707024972389681220138244385653903507789031249131011188188046100098336326455930383604206996962187042564454422556325043114839201630451163090354134651860504754683639600277420400751896781297055169062642147766221314742708565758682095147417495444748897035748153943104241062587383872982127231466921257986410690940780942572309434158223596694639737907011853803675099876213328016440837995901496018433551652120303442849243295691174120984862443007697345251140782668293946476595711988510835788637362532162870502775541141649941227196017062814287844927989514622385493385619455821057685516831466909793801702899469856003124984565887519422927532737359479537969132818301341320548279215297300121222157810308278689867336964942085448157607817439228710825252121681698366554502426812413893149245313324328656330749479539411657552305145039558535207448775729510069415281675806397445665095193372974063187409853746104745134447968185998080455793561662470933780551707964942055574819448739833915196431805520970811299249593535621363837565285436896789295358532350876260107406855299869219360872198270945734683555551555080166535319241101337014512023017133481671967748239213771010361214952232309751060696892737525986643337181638414708726895425014101257637922112728737785794866676959234491553398239315825577483766873329569667758787743633058151647778995168825565255317932488718127029920248287803618348579956083754417928316690990616398452960284083800694826230376393164885170300086393633098120890179949217631587200161090789331506162570577310460378879262476774962043811476252072895658178353801587369473357098993048487400957162315658426016019197940832162511280925614175592937619120329957717950429744952146283039599709236950938762268992712284189225798849142512584196570217711613361793240252730076518517005106375566062427858215832912751645930621037748462657737777463031663445594565535011470768889797980028499684838537976298744378026879157768770996572971447302140088944246374785875868164024661115311793346964486932308138757914974673439939748951255799122170178360165714834993855095217911709979091301084154179527235389588433442028602328372178410889570527642886296825000805484696050726498901228237031148600138873220207847974772161253978636835710878763551180722366421996455178238001357284283062636076537280229497671567135342360803702165794363662981339594989982314844388985314183990229760918231832832291470790818318980505365834512139174968433252129834044356935922005293691013426059081649692224546724474807789909179055947352776843591563911724939987778378664447448365689553341458999571733922138443908502172516810134598098590110906788227556950168865583120684923649027719103901990493269898959447021955679581242829352025902936498949305129235347208400717195101169936588886609349545574858335372704171152364993664559240821170002768654316796781775473988785817583054652816915960830028851842039416812353374318367662452526459539406617659419373387598489143670713039150694627183665862076530330637194522726505846524046984623202588065954635303598292603230755972166465885696533345483839311067952719508535768831641462104009339246422305563209995852154137603052490704296323459442917452389430385317277934038004366245049973749077875284989068406126393092064155277943037870013342493236175468383520519294352725759775741330037100899067081390678342806806646982519275811146078242857307579581974791163453062098256028778772777419530950881282830221620908235691979074344899822629098575545894774674117577009847667532804359675260558920046677745982570738181659330612657748235582124552382292858397990222736520598751023037698864953483642159619780489179253778849201671499533385244246254160666345758032197589591504390686200539696845095475992274831599912865218316499493159908650506833597431375399281231225979291547067382705068025817628969383028769318066866105259517103323273190013373029719315699078082427356512580759870939988404854798556577336533801397525755009516971945824830745480748015038605410284322725784825507526433122143279677060110954583977330178272375766991995889493564475269679050803525209416677216080849061670607564569245238954069216838596647459771114957667193990876721013907805256709224674034057212647154339282719718488810289777235228568060040064797032712504456250820802826407030976070963751007226999704548127185597545469943586070449868136863572300996984098767364512886403817502029640756379386380032226637766006135836746577077560479569879600178112724029484651916651138737013697791869952063359963611695935319607519329958218472915283694545674936071497448620859510107694065526597687646702175280323878585259464137443585736629678632370221037784978207139397988942783157193812103049922066991712140694508395069744840521331526212771208574156843187560982285059085463147272103376647563629875167914413838040841722546236244589289224931308323357077950010635556076651912951069072695678071064576531874843546412913962053369082030803138196621856962110030262467474652244642809010001679061597113445056741803490984586457516221891460103052192207125023526488855514878458375027420121370221681625063905695207977449324112202487301577589388692589954759749144164182829329244369159150415902639440732480828128890469914248698511417532351149323608679651782735536202711048729885120185797301904561616430942255166057075496261839135245634144650635706595680985577509279829734098867426264670308283707210654678533121532800511408149337054419520813942338614844564846978328819495473362773319131135667563722923453758460830918707247773519395678451301732447931374141252808097879397324999535401539542585097647318937146148995175000538413560212588156977689378490864766806837604526277466833499817672070783341644027313725186835311230208148966670449780060457834384507646929314451014290372232148439339903016416999270601255641152962837968770251002939487831172019579079841651729445236975395065239990344074444860772732494144818220422694877030447471643527170635458756931730657514880918876717538349509440748411072809483229053556295480598111099879164660082626765693089165503864641937871829746373415697144275798899522681938682997199373252379258227743978733236008907148770074014081828351751465913897700006197548678299845218449836820522114776596874862761060634469847103397161030670278967531236171667111248313780028892362892650648998346439087850876511275693273179287404497520052012927868621319157910623193780171475971312653205261474520906107245696849870695990134772224000035307879536607260726056676745334485316411963247603005130297813582559491592665522356757779157660084011111013849579190559293616362831198264390979892765476065345316342076692166396499058857759895628486030063059606503384737882138685673331379795501897274994707927634708473446519802142744198286679741519440428179890127739595673850054328392075935414081461268180484132596948901963406887330384319089938860360849687729422896210356237111360119968014212156618795871962095663044608924805060868502422727767871933006701062655908237482279754783949568333141347223339734432365883876525304318860332704438148960590256234551554485908460349370849762605356613508455817267964442297013986617413301246958945513567889082927446494981663538553155260967202631849579917308810014047634533887922250923354331615395997182956082084114791537852327829549520953509254084716538117543396512654992943973859978257785818227956154324696311931102907466551468671740174239512776439478588105033649190202398362340460913703371372645110552788160099742944557896309653079012914311846156285426694165964186213184621813374217951151391109256483551008436925546804425508715710895902247537157268566308175877167151043170436458870772389480437973508755601051693690017438975268464153362656944557141897419310187096634191615932757419908679783485500937200999682135260072108804233228607722500762095487180371765611659239425793689928168891559787101402619667285769299430072316629696269480130376701214024410677486256992943129999588321918252044802127369417523491857583536948216707469767375899293436698972994552973441682825672681368778736250185984177852867884291043291790471417842819143194559542062417487495007605301723597912445186116970354639220227429660962714491594107542092501058337914298360077594475093098663865049303638041747858383001226950840131724470553665087887677851296940640425035228739902304440498695441818957323364320774276347744979436395739976438863665635719000701832995221858998423398969322621668476788113432871402619077647605979251594407613141590542619150019381895836852704480166893625648310461128443115363677429151393191453123737596487769756391006056481365836719449473002132461233213401394452840032730935171433119120922419676104926290631642443614749675980530950297187663822142445126494226080342139028023706877687240688663585448985174155912787163849460079106921556294196401490938714503676036541670679781629780098790046938903679750179154747636259038282915565460785462344229808040028515485538410533380492916892518766018641537814644174140658291882976622576950341890966144159731947983039962215862303077794092104535372871232447853844268293196828109840386506299407134514719419494715881746034019333613801875213185825847072423209755904612335418649236293246656643920197214765242845510130574822995153247834735513257128334143711421663670794695628732261915436004913187743372870737233291349028718636977844692240124708211831942200840027234899929232862935973961024799674202589650030021551979633244346608568448888616060555823923715495864823333281142878178053085224457573175442489035440718173865847627440819390305165519228579777725100711039627484806489393388593873336076785335809171547891939577252401844518761525022521611970698386149006928574575830312953583903854513348462205448150970420530379633601933929316127157424605903216977989571983463631236567273892833129358677013649324049817279131774564300462561267857788452011676015741599708172174551533928557851772262444554137916164851106352050785842654108556312972652199958097383912621619638060514239022348444034960372169423922974234085800583517960267879207988723625781406546876498104972074529429541649175279498074394200018922703035564971372568034120169716160051766502456842863294725115477598525278619833389848452671177107897008939952765772052515246040624745969038608615268115091857886811079085610807673362527790758842493978615906383612528508067347879374109907414971154136465180473568223184527300416355320584369432398336978823262804794388578766643835755357282899514899736035139609242055645541220006300310402431423541503673345921592616767132192297561459427282098987257023868616355634651671258907294693037967219922455635250355047546546098225564419667138165687579514383886353803400129008996402747553231875332326037156607493847044473306050820461722954841271135120594265110553188306716956037450611607101257712917825556032856600988455286881725649602512879833824425670771167446742467002749640863242488476708951578034302753332098048408971377252322221138686938952655997292464653698860848358850562950113908216379181988441072857128547057875524979713247615201387025861232823447848928579501595542382875689838971649980581924719246377611503866704363786216968956805872984801392393070323707036036359930084031542393535078386274453996145139632703842741837486933274290311769077113703956036681872558481087093528999887810784370267277736043367711974073932992742297437596330744806818409870439308826773860688665262332660746854249149789428402195010617255578684165510784776635666341421665622749466738515986446001340897149736986509077348895295894798785796849723888149666723384902271439784108944486565320758180206345618606021076516563504467391657422113677866166183919425573767906737431453336418368447432252803944491191155578207490056914387877105177708937291836611205021398880984317557140283032269927653015333817324023354166393128069472505611092148206400498647519134075756934528659399510578883410586336845711609773025610664329243590677717007432480647857950778043557704324959689747768944103499316639060528991489897738734675899086199791314402309868563809742709863774407978743179678499895604773564720717501907844629690287301888822710163769193546393873165998958367765515238025866719505493066178234408642377097635951594722128535447905192887577435686407579052606975904380157785705832802231647819885405663825657744230524299283032070336084377579544574204377407864295822243838871377081285548666765810639339882167499653422114832045738151050001976203560832754362689672021197984230090410075760474381053222334082303806909178237848419819009790016269878434445230118948745919158469957818802249694660183814639778816673053964439780088185836020397952574234474019073967235928306076298032210977960180999773946415821602741649986781463079313727297387575103546033046135568960675865886205188483494016807389467350853064016481398408987931476990279257156082553304253255864141938771413087360370953870601615593571068688801406200462389650420985129699573822242177916074732522089994278385213695669095068096896437212000267133542390973956424053330587838686340699726093788112238847141840898591212355293039436085721881751015049014695369222902998521346440025822284693701468105596226102073296476468514923324842559155453026433688481142617146052295503069705168249479999905788355204027006714925603382850013646655481240608806989855216342949847584369627419410572859106706517323376911196601716946506283808368819758972605899161899187233386111867113117033218076693710458740854088336667442331905128599231167019256532125430721115981417880557942756196893573196714854959509080949026608267819370246118205346982781554165677394471893530797723331226589047745094003949285180915480214118148780713209034576012432675721034832344425642377541144026950066893319155963567778321938011605392943089641618420435382386234486966304836226198799680120886293359635738751559008902508606323140677060756047461917560095397411190699038619902773849269664375623988697219254976990417872395794695467819911853967558677956953375166422685043767278292443064754152268555251779566205002449304923475496386582244905925714545945551331524708385752410287558584947847345110640234106239010352612835253430590019541024340087437584612196691177134841808338861121845568113187256639405918036665863690510368807553064730117584830527092137388534825526348385478568013930281791458477320942088701051088725523240168555119527298775619802773882362413474164764905313476374576029734077672855191362592978438958598042530421910695058850466331474868828870738626951641570548671971802353558425436375594577135379690433913619884663866998326268548673399098351975406387082424995149906310161603450727095075463663229296472542251320780424967661926667821609582808114611710222322895328189752817881202171080063325124815200419001919775794689273165544594726659077068807666787153741986325024201903237729551305530771253061217991668168005095288730380375532839153544105501032240630655327575649973723320126802672383178640363930412038954629956668228477999232797906426200031170855904829240602337384629732315812931476454230374373560889062102766064599229111011359081702960385152687752419906288051830664892028272790857551792699524215545298362956414626247651717817625667063799826765959969378857356492361166630517503241957601139430290655147766375509429953394560950030139614376425809121176468123731449565570541966056026674331316484308002860111012007833122710439373072412120570780064658427703476548221628053678428447122479351277323007869677034429893541305209477396064404633328645958964184493425168038455529287598004399811271318034706096994716194376282244999255237015618433411111183175431009629641651916768046828270885295064570480628732817679258630353363669756330941090284633617583051032649237586053546710439017061974011769168380266213718528778569091415542215532356374813321121376483145025336049586977020747738510888464278420043808534766672716276259057927264781952096860886274914532871817878133719905139477497544025692281238853723100954310910886993351470944058120604658340133574010998952348889489838795451154196948038859848305638030501071592105097505878268477028903081746197972961953788036444778156933713580774478459606289409620062632212879400737536388901754248593191588319480637161627878952635989498926195279915144244395389295866905212840711743256240057117178655753528663770360814454611498976313630835163365459477730906021196796628579395369581570242597951311640909410848276381270308365332547771631852782020074065142013148782461598928752397095605462323080614094905870850097205179294667010212801068615097765204939215330252048825211640712999602823381710797615725344818486491160345063915157340262707218431812215038374725809126352870455572849029982322015769795559495349722444666720191776979143264556055515050700988688806813689415509264189738321779501466368943839119722914886365360858586173444566352544281020963803993791058253385768297692943723950977052228788690554457673582293368331541378187562383808712867277882379092498834026365204334555687617052246475016110870296092416350396468668489608301158669217305681109231135234269221632298895201379306516120109954049076991000438877285955682812714270191509954443083278662787282580979700995346099044414780669132843269706736379669777960810941287764391975480468046391827561487088048798106506513781157212755392775249039264453127452671780445587997348311110351246450464710296281372820589517241445902294860362569389760184643053221100088213316779729872714216225573342849939940785158236991773396851976093773130354824719400613463570787292854963108731242605254281451780921143086601997744462947758817038060253207089105325405104803522519570425924220657059923876805550382633090492952972583861270598419214080147325889392175774295595581692633389229898993318381422679088294121898444235639702688826496321830751285947975320523514497383586034941900118704794478543471746757498075570436956068801298869620824742090460277388998539353790388553945944124084867408919338818497488332604393347565315905924092140906811548054805252291954879579416841042459528189555076802287013918903325382370689481543786490514641691817306460873423486425651628031991965629477618366120665022257870685487579982531509633903822697887850449287409617278287203135476420552152478152148774068572695937999068027189459069528204339554985283512882555520147191286497736319582320841162222769700180335669641771915055427938508181657925316523719667942536183581256415065656279252686108954909073127848769994335113377965010082981638829498702193963110292964959715425682724582334111889801309955865011228838179584250466933608076252719026218560748158262055952264775541376509327499635592353501401186415064428196910900924254833061420934936124595014516805985476087777211435975794885622692236562786140240110943839647784954418643589712988695358217311973050089610162233097011601819562781892994002621700784892313116599552388251971238395003785246269842280119875514397480150552105728607843062429712613360740190116724543083139140662118833434921074606119722414488817660031969670788199376085405568559999120227064694231128583875793051493697693748408943300477572948476913819207002658778731471583817258945058178576992962975645554819452031670673032199835885319837894955668279055128278925324290568158530902545871914027906801412602351804902915102135411929206998216859761924031391354882727026919018279888974751728802654199974547466678322018923338917581672354273752151629854560448572158529820830139230713243893021938211501577217273053957398948934488238234755173912580651581803693820632403640550606244745542154571565912700176829066824058854238886247499509289742704832750576963155539280522457623642653235964225733112701805977246552184085541107985499768825479795628500464337804854239033941699175513289084819814986457470383890801683965536923523103752564559670596835028018318126087569797751016190180929944576048519883936429284711808559323781017521943777607586342381875154967256537516421420706532396967615600462212446633952668252704289328353524965384489874905753423452460344745080648963864503709373409556351400523904117009708792657554840808510229145021522090874753612110452727435167064104094649785883710016210546325621227564471608889233499417961686985924713085201432230660459300460150954525671384594495087335484914513946741475526908004942974097138893035112678555106592502455480222584819141762526853097146713571899333698321927379721143826111279726960171640028530024749557090556292163398171707985568121183364385303361466686777284554327005009995988272432429717134415731171315122274785523660579788993990048774731831425094644236123270350888383855888387015523285556160489185470612467702070765743583959914093848351880508991192673099923789066048234569662266218768791720191312551007455778173247368576194061412247380314715469006218031321465731717937087322524323965763195408725312560382756451107128667347440115618219664769830589810628946882596887544185491609557222735200234349472854755817627824927877503914443247347856209207505696608915371509890241944015302020292368884352821254781790253440868524536766793910678559810636227979722930917758027527266877681292475829308734060869406486511418282440511034962714987493384861627105461869033757927214787848635020489431193848138212104332058122398879203162305234971229525352780067887729390186903169602738956663123349917626301320541204097564321820390872086742604871715262169947746921747959416916416019430009217660076918269646457804192732165324979132608279352916934831180925432715235900106194756562799434034373453681377558978574048060608244085155527999374235295604467971935153685175969461630321932775781801605171373988790779296287627111423480379164200330659789033224559946198477362263336029933956453446688668858596090711881621981919737175382215586022675592022284969539634976273970626826956236114521150131441891660671059918081207843689972928245013468836992113026969613726144430337328854443362039678264950284536996964408074372280706260179263604813399980083845903627398495405404511138257717076126565139903815047804096219999617223531874402867502959822304068272158933658150671968831395285877133271374811866936351057104615035176739442806907993876585324283344192517349210039335002682984184383304310116685591269005360583404607487829174847151367077898338034346308917526683063736395803831286654744256972888052727796310845174515253788313470074699265564857462159870248205148804306944389156801850104258175871901646102302027968694764056168170047483016829095779435125427479266486165296287612966317684903264942673387284934409181891249041031063926672966031884086383726522746026154054571139155685784202060876130185937122704265961264308340620906434037871979158990738997967578619465698256888946987091647998837552416301723772797713532730965223829456469314552194682675072731307402767159439099930355533196155322542458207422543392157233153045472119396686853707768299379955109794054726948545514478939812068503339305669157327943479754113133764632162457904206645706257407796480507127703343056175399358032787566437486018316837094177804797878545648901265561754045594266424360218890184801340162520678162833153746549475899687111890066817814622798647142453269642713443279082490037032901647722544667813245538612433956649434282076608642689456063697830252540606519179600664163091421887503534671035671744429619331774101680183029671270029446396157300534896614496883883037082837319624586678489558713129070538603083760029356967463588210593445734613378409246598263698196136731030169958136285932080784332371269746474161706172594424501176045890201596214561081767762794032586240260022749770066256063261720423951228169450551503643942712179038732122742649722067391618830068679801718689747859064983999156892180898009625836738619392536639691014753901341328681835367259838563011385286730320474074902092888931238001377853719496909783834831285920070771035012804264110342143963476757990853398111611635270589867053485456585701173194339913104550654419821285426248560334544340253075555045765344319048097501795325433374281191775312507699519042219175191129470068012521352211885469655634414888095907729709773990506383914639433615439540028086130472848626140756991209729327497294440745540738210513699160790600238218290945604852441252927264069016243291426447922681475621242173286342881305975848486168140167205181576156680596348851164473493695110015900240065237802596171040440364650281327996668368492481953685898593035670440583840942338949397132424695637499007774595339544853977125194543679824973528697501225449228082028738376802601529866183627665818130405337225112129062248031503808846962801038936267757510942172619433171129754458400921712235568211255670104684972726081939147955208806819213034532149356815789554011907749189237541912621763887004359033097961468372888373290484330121447943711995415644033755113814113797814219460995370851060538815676545449761457689985279477908820634989841590123315068808770848216752838017306411795368064812242459185150347174864366143855812113087573179238985422017327505885306588766550836601659230946320613639318323621978258214730877745041463591583693575322569645238439121167139039590537264051671782726990796298560664027820103575951277919075867020627886775611746076596594086937561590815538100098129507913946068371494368965240171651992056526043973731593422741399287838832475623234062271516946921913367685037025029669510794660442470010301737729675111224914084688420457865587356346149107799525476074349001878000690313309364998754243498099362893661116888714115379976679600285619263702117783103767339379084367437036554458024999533453358716165793829573708090837396212073326583157269605521063650212962214516973362056934766083002692934907683748472904232681290896495350228412707183744435477321660557568952880657490881593761106054640419418159263527737053918474215542883214178395163851958997030352271677075321854164258301946120904323553500629412337186343526642858781939683134487730422235704355487811167559204354671750114678725196621733814528220043866675133667343270258927531831601436968285922218291714784332662703935348449398340094025368092029161108623085007521803278977151384669804035078617751493857186614827266044651375826369787707512224770288391544317456008257115304532193990042068797614413119394206194664513729096256567456640020294367230505888415191984726614080261439203592986925783549316602952827088164405932739357722678354284603746126066372751406604926770777800076457775549120023689070354446927131634632226112681337156709627308930204060560105986722143691498586603358955053241198869743142776702499649132680157946847349265370530386350564366965433830126578400051830525473857546221892436136314673469128463908229689050038735232521630683928307375479370697190565180311915044711249731102273837224902634348722529602645801985955259802702395971088528080301575096722720852502065257260992934942724716494387435656114477376207071757489902591924616023623355195812876377901253631739941787728134016066044743532936680269430459902146667651677184719186597987777343494040057305730769296486948644314575143792375214264429941687716782190329530185957287326335542461276431764660432347828069622867253557716220260347528235055119515343584544397259011125591851280962900444519294564794189054458905621963624231331358664967742667031003851933653616407353343407410869650814593616571253542182989869008061592419539691648838029712603223878914951922424939466903208327916030461544338502190403699947331137245280270332263131434537349317340169300921797177227583557230133641880855659127877392650605721455048873307719679414441862163491537652825898707566642517403446425879891802910831677869090005939554515230258678990217436991511889050725323792174982793950491215303216339211776625482672456104480228066409450784517157957304225831720473785394462894224770455725147222952920897634306456125237255898901203911718302556155382924384956330815350193200455043370978189057063534737499060387188313025798975365750444757215501738370463400527056994467282002919626429898286458083694625549998701373475027220898752554405411735141457750198246284568980715533854397480729672239499648788813638742762926295725333424588743171482788166325393520201065716218605433425193285114211884779124291282673602839623012169494259645924798029701444243244653974358250471633788206836298639543007704374966832330959442482636291543564721699890695647649505459702641671870041295757856130051741260454304832825509792360966417931752185558530255542060804564167537031946236784884555783117413824677568129532747640008540814671516520631973355079569525831236178584755696495100443489380980504918351355585287395940956416330237988219449360827302617591878587478503070485146681942002682971686528701148092644392028159001368969920499225273840512313513677469596341262388427726528282097649016178509349970779108597060661573944813615874279901110821218862177766424320393214747236429694682715574622709582370332979123980817241752611075944394705152206643335127096197246076165893660482473183937452911619664084334526091934333414584934026991613054525824943826204954516305277059225830117452552052457113357019908732512720127467365870262534463404626405103803691690291099390280993179603103224117872477838410678223946853768582702655495681971426341629532717326063633424058252835084914849783619666059641121515475203585907463012099423896497875218950061083299960595840886454728394999792123396137934408262559815755412350672379756212509194289397203424863881884231028471245848964193836418570148151749108653765078499141062729050072591879189267566223434917615005788796674303643396697530924776785234263762894364515722173384833872200455600069839740607443952664577241609210733349665998291466030484143571690421213127529325129962129023255992784952461308772813502453012375185997384234621534370209173759888254386356754662400073493073755562266585992282176422719124996077261185265007284896794125513971761520796218737075342926528285072472978595004076366063032230983304217209756588441159155394399155376784075361734399468975915030311452578534715080406756263948450694905862978691662458919456790850833884210772712431133709623180096725960464643842075549415312238469544075604480349243911647303971369681296878596238737593355143462571168074727440538528344981789780679535193934939530720321020977936247059106650347979112648286743414619021272055586266029664375336913830125216668099508822004600380611584623132077100894812904173950784460580067949854711893469896862428543071197988343531789511314552742363968895324974927615693034224563625755323326964835438497820184502030315722708648711528597206893079848217477755712085070107877497920452383520811059941457818639690026352235381393296945727862098581813906955015400732522690648186060800189996475946625315562690153222855950941099303254573192858289969781634284276635000699045879642005744096398397938509259911304124647709456326665518999996409016624978853990575270486344530882214657716711814780273401816172211978929830538498089965691823748607281657186613190097494683075899195512042343208664370204737700795435481677505893311496539530624095250205246117085762678842842580491634316746214758272269874082284938505981771758977236894507908977812625777013026735251855916272305889551551141239518251575157552957217407607679420800836880766742182009105494748579727580253954427878502122195223335435485590294435800031336650979275381973753799790391425181568576375655035959860914683093865464239978912038120933436068357797077237674310600677562132199957158163518055945816978653943872740938738288400036773882591868672022020994651195021089529019890424129596701645514197860212737207867323523546781140331991621099517044638320211248986479283186869776328388248996356161077489380074604836160253350540916270804417694751336003771950802014497463191127415690950081267496652856207151293713476714250188151012084709588810761387508554836999338152090892192663453526648213694466960052045141652076547944767219668419770885431113177972970580970730594432399126850628962795034574950963420149279655033634454742622006248179741471109503787318064676969610512695248162844641548426298628771843648283074352522529610680928699888497696623639717462090103859008362451298160079538126748095854780970967985236918868893644447694940644674794724743760853151547596824664855911638006478028237526432274397738977056430336467081126524916483400518377599779608785234129558869619383331905674831341333725488831845554674254920825043733675028093632474645627460219043129430110994187650636461304375803714835390598434168270907244397017817516713673094331327264759528943791719667118317244620924594063670866120850417141992867141850583850919730290427253883446104151014956180469979079347401785439045167596335433549068424845623400805173289722098245564920398779298751106880615813173775751817670291619804941285954597764278222426442705871857272754701320572860836760721798922368165854881279119592756500767591273850602555273153302760108454172230551015455451756397784215571817996810810278198736144550023139573148315327732881246041454511997317022870359940475584402530892381257696615023282892045646178725371356712164593547491212594441303753188977330495120815448242723717636754669070640969108275796555439219635552298133656924944348378546290103911451298287848784361127245825768576084148444259508811242672678195972997176877106583938568216955810149191479405324767217254511765035158909822600769861220777126583895126856846291005600983162398812552405768354450889686545687322859142024205064492805603126295477575504914295066481244636968633592837967315441123127241544514962464765317074326369595633060648749151654788159229754033055884463657404114430837487334739000523062534640755813155385283326966194133332393142636063984513172113657786829526313154136991656357351287518253392626784356357112838050187412642599306865105087962486814171720155027762684617532987176487913494329486342820302701316406720457871684356144680424116845300901955505802113984985113518952279236878416548018863092304871420084022162906161437795265197243608435087972529003851523854001303893941979622609341093167710863589018477578634174418310453668493432495069525221739308965841307064448321569539688269862600534623206627138378748752439368791663259859993115598595486520704091019285798771698295089370814268536297146808452506721473735375208768799504405363588333813878513259722006710860362996638191447830015545631258116728261768111537400666756899674414863511301916321616935745590438176249254449945379200906644174791697904929864317058880341035387513134899142744394878209369424581569164223868692614171134507299860474808862497002719083243063550958441235983183303317621562585281727744667674224173764832490468527183548676280846265154163155701577624809329506816678876527244857955167858407495126591328351510074987608696309439126654237600507664193062138632974814990626674951865109643453389590501747908108376431038026601894692808139839445626967015766417414261002191013226694941629947119491355118251766039543709756412015314507780519050978232068886530662397260331297065355210082424822179188406560230499076943988385328484517700492057392491393358074554761067489421262312556352038470971079330339470912694057389354086269767271870998403984012579992381817554854205961724630491236202405664884796995392599526503937703197031928593281947480806917242229248555140762066870318720949461990638555127137846489823710453671505140088628689781138366869654996560928290767754933792752445293613024813281074223844018393102508321335371284317501509451886246078826222580891903445009866985136848061050223441797092566324212705915852830854353599373914430158366052675222919859933144858429517309633546047894904831158491620314169972940668334800011588664476861715777286782825077904241013466946931915443752238263758163800140955321832439750954160978796448448132879393485303341155752362201053981038309844110649778407966128980936243398263322217864019110217681213951619555373178680881848791902919205186184983337062334503363917470620881691331078403878466016704005321814187752578638462477949346549642256615226268111299221956470488756840639954216036974725623455792569643914767312743035736755121301812896793206453126530316459718861209889540849966268479044634801268722288439685842924683470388845239362835970496029576613281870563500221119112552444761946645520354284617309065111209851047438960781051195990136090404977407727280919197958474179385671612031667277154393618334331802554381777355263027881359775807012576886689779038229942626893757065046881708900731133872236302977930676752898920662654569383828860467486208558617211031183843218964105574775043074050548554784161999033573380234170205492048649961121726175386060490060974111578334425479250387800660410153026453620958127098486511834652241161556912825701481570553292039734863680318206638495145615376179158611040065463233027569112484511557345036631576723909705340981076170579230732303119590502187518265077862661542109476111616895783570509886516032650257386400429739838097221173037008345524221321767104837655524202804636994180463002558975615604443984304869852600152999963999509363758851948091495101716657285658080564543989427378732547342827298663603322449190164805507480431769236156147729020264442445989804275748276490675361022635047284455176386371984854130992327139375327405929314976091408491229970072349766304852443363797872423447336964916400541453677556181534290749915577857981549389656840820442717459696846741093106131072269616888224487946689029098301050077422635351915813752397430540603829306773896609706026870848806435940769095589814750174909107771413545527661979807499575800156629505173084620967722248902746700487752548507685883636510892189264099355705204384233571550026872120118627513752507392176141560943132067313835244226512572020516556944882406950631466955752557813891931279608371966257337257534583821644936900884018031628020523256493262260905853475837735238568931300618646102197889930800403931325719914797547721188941970869988302862374702865524179240785127473792414580580366932771068683267384176103134101287343781587011795583816325079727226752259851150619880737953344691655333155697550162456887225179107165751203401902355023533550160737793422330237650489386119472170158556192071692689803258593513836973332359154705734942392568830664625030373555309492132856861708849588964690019134014592309099451811230062109000261397479379939082696849370574369400581552193259765760487813287631933903751720162531016538763524603847380615682242622507571013653014230567362972984191282333858386998533228609572262233606866925485186549883530542890155185507791344082348032622050402215637034025969220974544638708076321281217272228768728484348228643224119511711541793204110209237438181293560743454364264992644932017381932721815559282973823293081153018284496173336475986162954623431365267704894308939231600484776238730459835377317826238252635225471699625910673923595637096482340809156889138306242944643738913695655568970634758242757788752770477899308097739438032193748442225524233192344853892798185927029729302486886719011753629470864210768810425793748943506543452918662268658955508398378231131357910070960920483706114547480120553557738025162715585065259907779143903423230124594128838176540837549677173973531054131109631977848136881146791043834703499439660630972738626113495820964277511463732052582296388295337864033219769932218045033219848548635850270324665444094599583532229307495235783370894275224493059116625573016445461833403775524550990362536537030035873231064714605448440822817408296975328602392135794425052803832577978191702771668877466343868088779989347676497338937581465350266116436959359107107267912773066423710904235515253668070078363824747309720377283258347769385852950156413555144378549808998125284659111262825992215740517630376687138336751977974905538851879190431920078800370112552332531892839588024902065799599861737318095960880401237742495190142071316549824454632169982671119080090126145039855850808844558679230996967846626381616969549875601519308227330085914333769892418348814954393955730788074218017105769797804093152126643496209245512278465069542406821693823335980706968555850238431512846914196244850041298938516655264774524368869008561797873815556557158493239738662697307035947367807598799978869008846437820475793340922649524439331877396192838158883014948062546766732598862934385323584833549978384328065835647288499139655628096985354408075403375066169944219567308074305255203017818866890122529391583570287350831732748700397868540323999697598402014825777637799524165836631862858794843084802087981454015239132075452324926326013338181992096792995356709368905955912706263339121828540426534720976556892293782645138161395627313983823884951546222360150379766168575764476080394141474432851240160821972236823135176755259299341701235086941190687912184964741780913867667026315380452063468015616014690162098148865119910876909838028449269727666593995427246955515937053566664083227647855090810051342954482511597506670177124618115821291416396885768949196869377172019608880001065558482664992966176399677731078660409865515563939956109092282135358274367087752630602530913358805868786834411655615803048539604091250807404131598860551505533349426383883513239202373179277773567636785288372847002482857621589148950737471279837555941090481331843077046681001521016159650061692646934551577507533819339874530102755279990360336501949092674985271614566070810176875709596726383209110261664855845396071004391691065870596550438449755429560024306159207072854185642674150436308135660777821062731445407459047301016078467121233574790514763168784447155007183370117391219506307587360700317903908871342819246155565857645451444378360317411563043099110370681848346556098458830907382530544463154849414408440174957799801131009807962120838687105535989142920734623203671692387817493345535189440356673430975043102297834718139634472792126612288363667535568883629465869140119324910410738102013923132021450820241478590592568668221432017832637058405410208459817537263520813910810249006563219970209217575380348690329101988051007829846171782724869582102171588254112028696083815613110258344748990190095361929634959615343069112269149746670626600250382176624937028680179930468454780102928447414862205578553142880836179912364812857907332798855457472251492244772530239691096214441954418229296603116817134902510235404604998084754879408687454327316375345894252250439853718691792977723128516499063145726756979838384907840270825419807480085241085751145493427166869631135601445970052870415926610025592175582352362621998674958210023998140598163571947911210485393233147345872218989757605847421646404394721670497089646523241750315411439818050746589983005788245185719464113350589243498500143012609727226518077044600558689513040049593861134910000840765118719011125507564559545413203351936795018088493522880462894060298722385586310924965573366264321742546623788017076119998536851019330546023214097411181668513676506028517425499833395230545351275768249445394029806371959237766838666510291201589459122295501973517510554601906310329757057024212688234881979752755340730435263262120269470209190171151610690773796380059902801832271801716339877004322188040067932671938901531980189144012922812348591147011481229308214094590513211458181091938228272592961720403770591236016295344386418720405245734280267176031982592718887390329336658318754123209861881684861576891087344635771448607617947453436412705094769169870601930418871110289813499450022413025539330328969742589336012502314527534098080852949710237095377912484513267030679366451508439188024347558771051125222018247976850146074652260443755911081625925988446595118152352971243515454654259227134373595514480592930406535322339038067835185578542240060977885124246252132229962141182904199232596722507826172985944410297670859095689791495488618732040434089005730872466472400275604469284237751932130145007841895819184988461882490078029685780368922130128068607159699012941348999524704580557964975026614199600808391912599108504800653749324095428028246524404451529780501004332412240195827843196561271138620638471156940228190918495240854843253885691236083772215962706959139772329632698824034727629526277280720771128096373004688799031235536238689058419546064214047120198065126061954103992727696689211568940651947209666030063062414003844240255125510577074885930654519633482299450099598357724348015309396083992854542788287712253736787247992595372747209388936156957249406468742503652439468433191336455455665320985600587445673846114688639515594112547002464259110696634982079090619591360284604848119098640552520755947490877579537282094234446168121233514982823136412743673862768084641092918385033469671658034898265033605461814659394909358340102421780646738264361285306346607273443569319464593665384061546795171974448477478765577559518057423667158361559828622803711881164421358883930292254998397049814207534469206221891483829345885485704192254457375533099248881912303414954088106407648972445849643301940705210238461142642646463555862612410290483084049614817750277651156180110419211185860461647146995978913363231325725160237125500754293504014601262895472568133208910200264357819030106282225528453690770129469515847837901346394747575588293582651638287847045439682918846990708048149922697668740715346414506628125206314987030627333624014962221931966972965796858750256151845019504420973954875664912381874508427667198796068888536225914878929663148630426645678842757230106237570833836738579266511961601510479140883324579119790209353965289062517978459465119663163301967726460351084407941824797585763685563134827385156152903415532357613279533905078356333934473577142236645525641112643303247335385828554352015857888487806198484736821732956574609429398232584922684758760673569363288483802048590218666962319077639037671325353476977250907064803254858415243974631832136015132818083634447289895573561280406304209227994711559613295260571235919708899145325218330349596557358726880593671981570135563196982967942002186659498248799343541722301328800039734437328792547465625681990532062383115972044741193682630140549087816537309363524120029350396420730986265313777869168971530557449817026287072390107161842298080154211820559304173895798693411323878963771766748051904147665197459256955908840696498120608676941674403487754247470893178194269247404798886384674471866615424502935118136166444486346990645096160234180926782059256561661211880866495727477223407991016106868722845614002745361315279346132204986583611959224872410878873270929620484319670663578408552899495654135456610652461079059004390392776880707577793239025737823064231934820844469458906318214281181144244279161636692870631028183848182769724769829895572647232115008399127923609185586694041756227243963279251080912268521682521140747450848317867979867851580973999077178143580393233560905350742463661673975993319244930834732569030464583777957173963218358245323128323888980847498086940414395025169947204951092632016731154194804827058203362297401232954828081432833821087865260458642232552103436915532649724557802401570491863286912308595425024837483895377177263830820805363746076567438517891334570696391920698300385505513705945992036066491257763061306585757149293380713498661874473315484703133029808628747701254300746278210182776233903488841518486713038370051928433922355867401421427898120481436847007967852060094207247421834438205894903697235861698458871731363630032600124854660508862943933254690273981634475800760708964093392216844843237167007282559967763801834394640680585878237890129032718997586565545693310838286818470990467943145055852929987340900744050161378484976642692743761645108392635462633354700455877097694690904294610259730749888763402000929553554953770504701765789754522742300030220659268989467593074406316412884348011877620840429766638489857778972713381596324454747210188543337581131473503120607486545211687152725090707480054002353612205081988139772760220031422404710801537007222625021187131460300020020487212855647106540034168478753780082782791895316991719417427518182296747616263297567353118257744302253139586759698520300544569355126407263496523060808050844061936883143208542287686870696445462738890949815366074494532080234996602444442255718106096782582305843222150200381357840982691954009958880038181931630125038414564699703069259602174800558910900309370092659597195617495836320850532407641689445745391805242936445527505349150976608241904342051432183323953296341573615094249535381118996245443998297792093381526352455731674502992087111510871913075218267264102833236760995866195839328374514159860460686906811085919888056567245344102778649609902751878646355274342699832786912635592597744405497946650898503557755781357491677230366873233209030893956596038709162358103142803954441838510122684105584727224601973739428574771019652355011866269673054513536324111337260157391341153271315185123889115360500542410134409794184448008941980404954557211210595490971453005748087649050415107244971233814295543834946232293539805278934038676016937200341165019949089932468658394881193372276434124206970044736546716271810787015141772888391324841493922246847294405126661480329445452056419011889442397400513579162044717433849702804127427262232689935427702435675789849973257310359518849952865075400154371152405422513979482973933641127795040904817386816408485470480947686161411655870769702711398306690616564223134855130293527679181334551389250280155220226039735942755330730421173002580751936269798923921049458207532074347174038029597711750322497014477484390155633875698499079691533407598419865049597491794682411891336743175785039857565339773514894881412925924765991037076421349817916617428573039774724635740120314055024140509990016759816035001015172474020823489702299495862771926944988103831099745762900903144697862684047985564593708647022881614999876053203781040490986209385039875312774920337262806107476386087705760652451930687578423024266231999685902868382647722357678961670642700034099181818078890487556274241340078832303816211560258635675296559987738863410514926326030048653051794627652628458438190570056423320288628023039877144193764241778745507779289822312905781394272316580988790148232330560954784958918689025965634747950393442050046567430265867024155643707180122915547618510518559763645645526487642363644161673376945293054021935827094972555068986490304910559461317439506797995327658109736982646473312779263673590842989865538784398749010491888412956845964005059528222463383161569978424829577781035228811456121123398916922500133398136072290081396323799201259291764736555877634325177542003364936578034213531249814774360386197031994410022645360880984338371215815159813581660178440866005264486373939900280750089418404627142952697380377479391908013806850808719418621537554247254121290317071826009333887139749507635994742281196857293902730307556913263029147520669437825075783417865880357583719994392561554983010194868411794533462339464568044623399403479659540588912128584602453806941039755326666952875700042227834386665400831892162122214922656063033074835166824205392318722565578504565790464052142889380648984533555387432543647104575719487656078957426125471614540946118712566985334317906440474808723740557360645088067217239341674802817759984398879376832297777911783753806996866329430496769461270518136644058858505462062927228116107167138907889518235054804670295250888242582312113711070808648653040542931749062750899254264009893435847196486032374748826380744407835357338045932912232320607867387207955684939174595216056648021928356474593693999923407983244455328705836379606320002815001535960943177702726831928913365942737825634800502837669365197040141498866259591335128696770165554336478292735178656853564358158155148536524800045108497096129477173880688842828016710294360696681640387419146757547042082684881297175321553069122505488546859097181784630735792564086725519590346883094092818211617215086802759146256249991847423001944833075663647378553742057645851889415875747086692382291484937182366447965369034088283055567191939744466643741402636341385517715287149045081137117411464066118192836114213079966370334026537420055520772816339689099351193072792782210609465082713296708729258409768509630415066876740337803441919683973136922058082978172043467499591885740874349214525130749953347230694181016113314932818486684709228614377747199272694454949438085162019190996242682130004487845350115817480587623007457169830905154991559108004994960867249922309288342134409327125510632267833860707384180098322544784786431051375600999341871557262252462992619086141801472213855022060885330762181592426848365609181756471078522745771780338980192393611132651161678373670892541977757538240765045184342005056532665262949942671997731389507605065048471770197859271974727833820029593518967294704360704197042588791040027274536685686463951492094332712117316385138360435846546294684785564741193576164571319933040817696111178223001938259017699488703157634476766910140346655349852868139426243882211288858369221642686448429192875123720351764160694476914017777092648768484802875046179079064335244278071850368554201461922235863863230479664580815959508314046725372246014891849996409613711105382731470213201933917369319584019153210583059823671611543946832207431502018778477318138903038332502576304059423326583183813972782210300367805344126777024324527773122373658565350287114563862824424930033787347709566683453524132080206483457981593804316318020668624816281195420590805636026907165843609559938093636353468879752980766035933248698016711308669295313477492425478118992860958056042120449997269587730990567038343082293391921174198561974605011251074738720163142839768579235427978262609929466274027580024806583216596396035661631228968079650924055879132265939208569020947656012810906070684302233186231151060082835886683547350010879167669475590218128710881972421062776627808934761242608732537233612265405699898201555823024339533924220316809866792541191247183651656288795713874388159668429283235527748183702190612614923700707662032424901783246776074284771461006963511966000825725814483284434862977397044912142430630337442020397113454964382794542233928728956938275860968549925530130134399825782806475656751235929810103187469697585640120903804390731620668547462181941259836747082847521984715740422646461323640283768662961878898482859416108026199741343714270169050330416302471783263869147190731671187211903458282741771147958168951374517031306201505302904018369020299609950443037308593816162345671049866545692455694656389118818369742797757474710336256564105785322332560940949920926158719398993199025884139615285476962429879540006320987039458664129121454995525826659400614124362467744089375405804833636955253670158527169904282918498879340182959447653832383266446627773581816074419890473272542586228595012735885182344439352796122162725114017720011851333959268217945504846020867585795329970496358457722432047362556839973372913811394883142012571765005440486788683061247151017074564018439014779665420957130266680120121846712915619334015319172797403497218820548783118101342200894769862787267816212245728466622906458240842653795137032660694400055014839375961944435370747903878019509873679438092580692642369996468439924653331052749417199010845469584984207418123456190557144508615666571305290674245735225097063069367994132466584702968302247287539070012598310978019491401660551841174908609508614394921031939194370561479109417151642999776891974947620685658461102224018467187960022730420324495729020659138814916954761729532315559786936242936870787179397807876868867721859378491293077524278329937247923158163173340873545624712461027492271580792124136421889894657423834012726908707485793708854047647944463166660788050423494948938797847161920165231672145778717100816968848490780912755491937709661854630045906618512020411571664940945278517447381475836810508331814177466529126228431036376392677452174837693660674824923750528087967722996174578061347820201367691749271763100706923116822024788976233367945313656751699730779226968082728691271034184956117123134554055266174177040755127245496015313137323160351895454115490674139694612744482234542743287553517842122729511661827277642762287137952320563771061674125125816870852664247530177843835304128771009314475740103955800563177586413984642141202366691925288719384047334295462539698593290806666342953342732681378753055068064136335278852790869287920938274963360207867569551969286148109214669033878522025707190907459086258688681001006506797230228468710868821735785917391472526152931096060699760188432619267431643260389180321556356654776307181396316477165039298380999268639416749451038432040347353563214922986380045661454212456795222365192642799067338601933903399940386149426541339779392007947937617692834193441204163783627375910656494781327456749568187143223613523973882131378082519660422424964393818750929766855698281125968225548393086578305538779881325491755280003386872739152200542748547960738795749276142650760778230348961168249651668082013246624704778939708934343020852168829918552327451553191868361076657488561903556297935785009529299026965385769288723380306991114656575856273548769505287695273093287331478653107843330886870598298984098016343817338091864079871150690650134862780821515320010819970621859849074702699171086265304387642874958018675117765878649317116549559277637041272799725999617036248878805861442824100922908554398758043859523670833337468104608787209121756530350858454048328782649456713882238852040520834120897457271779154825598307385887138381594675470664973554184782880637650478380068395348155884811496362895833502382775804709005925830122877737714903756371094254582584477984605629954942938617253362641158652742574678748353237259155119217013168746338064682563542858018900850163169002348403207446490018010399363270624936528351267243133955770192373604221544817554695007846720103467877284019707291381539061022195078553343650207528340674934329784518406980916951571572796117547257766379702487672006944995999581928495413861204562488000048749499142494744452780231963043032847603661667835097516225059854664897571572168318939369786856311686317334056873290163065797966445076664411071009254779540550426458311470241802587123823596114294987560704184584229409139735979257446610365662563022172803094687447272145153955373497884451708126601870088666007100568372581040292936462257381287136762972887731251358204177555850375086748930596008081692054009126389650104095819650007253296741692732167975792476342236751776136917359822689207343658057827185544831019927281628835481013432999022498205278139831649043679842310163772215628012497109007971020334629944686766171884911677171539418284727802139764859094319038772258976060782699845690848718069560404009051939065651354724230851342363613234139643083986741567806895475342055245894604487842192868954211279041784040072865158690448274246228514631015290887990989951855743912367490002562683522448217977544756857618058031893209730487911609604490052123172907114734505537179666334328864095530105223353934683828673189485035449729782410249950915878894131924666400984478772835722730387593701409356696880962029315072478524361895389497840518418565666984033315334512804619261433516462799276146424751097801941139536103006065080616962403073800364170889299254669815058760284623728665661166514240592917671367366040081080293496358859795791861867586937878986899953243365408751639415392289863595618660901784013708230989527926909325863306587922096881564776921711533318349864577476882990641314514058322411101912051475964993462747035237048679598939217445925603657434404183692535435769580338826762095192560243660970570554416590662237835981799711091305112912569307201241528664055133758097206441362542638170672721793086114111454620840102942856390032840848281030988096942303277323984113800357304985535732728753656885637822737490073959098796363487627025428570052255281317882370809094894161742142434559917597996638884439242045945416811285389023840742132825909538146688056008838915137338416469011396248653858827181053522709151326563064306416160587072088318457144021900403305736087137535267076848193947531261211819704344850667228530255664377182903263370682444606080773396476313991555973459572895189826851083447947010791473237532063471984114852875364612326399260640321214653385742052478276002928599665860051369577598705929943911925102925158486226652578761002551130174437144444947335494821452064162247513256103677376692505479558502799789381789578034484320506650066634663416647635120613260106249935436514794219261964261265447075371163268500559174526702523702333478346784066614989301277952456291545438702319266336034505723545556945802627147024947329657465020267575628313857991689920673051429419976995854799884905103214563989954152644387334874418568106131552155266405992330975977060639626529380876708554158984188708908850152175079573957961054739270989722154485712328805061801853103841856316654218606921946911243059287686985520076886780025568599022782043784663721570792667781080118265662654875612132225278510808044446399487918799160089155674902060629027062224349284135956815669387961233330464679895753281720076332269650079208433140209644010584981594396920653595803469683184058343388762227128746629228624685996507543365168110339721290650040558849821079199287580384788144499014264188839046187612379510931934737077406102854189850358522434345714593539902684231062323972012587582528421962366362073935719607465825110698450289707322322850427483408852397245719060806360171322955008768834642135121798206439961692891007900790627516117411387451403695677925273948789246189133229862184315893840310375587759654688818135564892595035242968514118189098333627076707037761834946105020628600243614473766635326660173262596077287073238222980850529426926696942782828894150146918047854627574980676719580654092859644596481468490613015121685831225159816350148318072537495321779554323832816329010575139566934815701405477237748399817019990735663139250050902366871723338794680162942929350211444292603798505875208609650263562306330380979256626717671563359924779846549148840300576737813863187110456021493066090422031949408238787338115212061063144358822486597540029617960322560675196935076841410110323521483383121938558299906936426016533164716436055085122545458112183573028218825896610021708011984039685135046721882175870670925579380807614482334553878124703928458707652202748231518453869961265537082523008886666206234193285926334613155239675963816455904148667757403651070206045279361068608082694932945003776631596950772996990852420220484546156734109046284224302812186364649089378132746673608008157667890872209110733463952990190601246992722538356352205504761361234833830390366921317761581265607196584553835052755658154621741181631846550411796841355531377500203131577528678779837371018615197711497221269419703663317116078449395262363846534749830671041623090735709392307389673272844264080541395220703617554851683383670573541097060512391133463746747880560582761639364962349641524594272121753806672059604659819360328542342844319073775285708038812457013515572290233070516222605326488344356799118823328475256468904989585321617120872723715003901152953392382895410501646266798503032495666336233929799676251289383089780772354987021965159921293098543069252275565380215555310082918968026107871280772057162004344362574757157567224167852408333393928711223220261581901352999450291611424093875068044026505565981820315187327519437241812038800466338789640346219852550902587778071763681157894535945631524038722041825678042235016813656495290166118932241371486795908186528031344022745947034447165027032368586365017840772353841720288831979004973726006637055172317890645932258192020044026815616775703964303703083202067435758000258491022161290504660704264375803353146217464152650063081115414421457145250352303876879362007497958809263506696060006739999623835068374788182680999721693863465677230426430213096028482681918404580509872147939451629036311505585527913108525427632408526168804184716948498863224385040817979490974863861412462805692864622987921775345603348175940856232969542640800497251660017105291477512094589385317090182454212956523669477278729862240482429435937021397415937919198195274748096877501937410789210534825225468868067451340693952701820677750155669936057378600808279104917109671333114305179821221728082053714543816736481400965107568674057101015207680996708943704175489391350703080656860192998062261174157074244080165975339394703345490868959408205187607320044748217960978049354015941051842529255498754367007140239486083822886786921898581046520769432946827717566735727851224614052707328796335953840588942685751724854523491195586697225535035300072345558779997332232548393495573577623689588712798654597526031487471949224707734209794042111481577902185382591487242173856905820002751372436171276125510562856201221474156146687214803406960489261776155511945519787197603115249933678935230138715368181957593540205649401711551304343497437247761530046367061255663455732460439213683077462517301655216448146535540367147833025780615734973275443839313844046200596402962908896931766187662859974370147024599178417423311913385192411508826246761392817587893805345405537846956733840108928701302235418769888333505586382034768060358506143822539475140073712387487447875921697860284459549056338854859343017900442691723043466151163669250331102520436853680471805251916319856837325469270145477806863720760001996427175304812028819152010618705795588305704738770588710926622865687521896476862280609374472255458127623569222480579746917398849400516096184920811338277306160181877487230349872633633222213495239234240218509992707853353924442769189707374085091979247939734232634293505760026607243287035079943406433988234375069948522773106022521563990533800969003717628884835154913394321600499496863631325370621462017069196689182279508214645248131498790364151836859708037307097253216625205838384573070155289527583011640626938810889726352204675429413510772033650379586987252768662304923052672342675580600160789062406351883801844015028256909930399377446170500878140924145654817238874258696819167377833083204959915584527851439098826177897090362520203089188655662864989689735231272191744172865770862435190880937500403636064774488577122649463667773711622618818628110299054875296845128430050648614064952987757734901345846127771558774377090090978311434290753534601811282990014570335219462580282847398639512950221115646068707648808825755322132187297765152636608583995508381983237623200893537511470578826266268625868187654984707979784431792660831816997775761254253949425035345217507040137543286919079217145301233188498487891256343364570495748925299816515261980481444037501459028730670679865041377000487724964017593520176306574447878033608991060782820625490735645953888118640353908596628969504403624461528536422535706849989897216893475343490878057946585954563223545931328083827880935121288549820275063809869055156065226601392733244110960547939094511021961866269054829809565207020734562662063736516704436330225880728295699478415943387700698658322251387917193177343547015401227692572897265002458860477564642803319972644539367663942625576301062576790935974335510569590066270542184595783529365590597793327371231137233388690397584444920972787757471832801228397652277093991823262668275486590041211916855572357072563001278275015781460436586706838999816292102848223076446074060113629950100112149732446584015825954105517810635955173542489737926125745959915274140440191438091502633942702928182185250448612122478520082759731132133069889656844967782643382784170075291760330656505902649098913884262797392324031852193125342688927603982166014946588176725281685909600715965868745046293002000503890194127516602282918309387117327805904805507658109450907542304731630012177324924259881747000510757413167770179128001762889438294112505448736527865111179550992492164440923674295104795521331061679312256927730471823547251124036103958341055977962559801719999362578276399177168115886113523357694654159902548543687012904905021587284094823000136032722452185271948014995591813386955522179654590100914107943135433114611864981090182974818039756509588752877273261806673423282833383660353088485156735326259625893025236351056481622037404774419629880796667553837547197964493965350470914968898895412123574350436503019788513128142425788189045003776025977622472858817857138073342316387851028996770725582636461671509474483494093877164827696790020282857791030856640191271142128551030636878448236589521866497520398153025645460373386935141583158106170897022680463505882962686562809961621505249411242016045595638417796787957184746767878129727131731707892328309223749690765173545679582503424951383625088574150330892119357947795847220836504126722326281279118065050957166635510256564052576422245441593582615328361846698258597446136830060936233377924859106184635202433325636077553008873370290866820859841002828533064861799044545969935003599689511266707727583135565781680670000094326681874843787768392226860350833372581815983044814684504703756231841574485205923765655789340774434129227084952373862101483548450840383841553597265527121580767011494673295348220384657661147954110420611190620958483334146950960038906709034474081074272476311463245050423094612980268998928875265113949837947002268633643585723167249936097558980427304774168562275277719488030109862626643823987377518368131975661055229572193247309038819932321381661575530058604354574205711646311045279304184589579442139551659778297285904758794281545887008390223059825814740014349491822657491182434868098789773130566638659210432164000344379625091527790506069006721488456241074514602498345313904012752261203169127705193373749997090258445216252033342519841456892819889210055530074908605992305214830485815148391547650834706070600371011369964844657708790821030543453427727693297585523779366933799293043787453498019469018134946010172780428378866161670202038684681932430789462107910682605236936606127438697067452980202517006128077763523495868125904134278064099959475984291209943499838063566141022714381941980086503961667106546855945548698339163734299867705898878131295264189408006789927533581313214289722110032813166307088090884202099924415820005735486494018071739794675034037599646275067119838499726430302267824037490663576602752083497441990999900412612439498678592435251884367058883784315103038252836877429737152046173666848734475738830048672445510374377546287484684294901373171573698382737828978161179296629502199936518519368770129314946146255016479873908182561327141378144933707191346342030206377276335178240579871153109333607633888917551977383043821650774125857560951897214681713097223938924260055931783547594016952765951151653860005425178412498750200080532872132543582013558600790340206103557647255116221331940872896807653622035983970306676227929409804689830101403923098134960594203466579089383309987984775659877617787042592992138349858173147970235157274250391554036503044662342915795036338068303656045184281525006204111874989232857864465276213792857267214758533907438199869863555506797096002194557939033489910918591825228974099166811753291251735470402769546570810546171162875024057461044506725943311879909512299120489563204388404061886693559373353461516520020563066024169405687469576699246378438420980406292073796829167496610866562839038811920421090397528728707195739084985302747930033222246587700873375585071985735381405349022106583268943147188673493399021042911885918320423431913977057585101400172756240326690370818110467354365234377757134399660488752755237825891603603894706635792333612713409173444168072761287316677125917575327445515574403959359509752114119209718101927696239325588521668965150102319112952599192068782511045247071688649701057465991315272154017454845655788950409071282836284185751413299867075848614461188674421775379119746373148214215053085690375479268514128563406941065907203279359007539732825497098626526891102294314185533418597346478303844307375838157997871516478560226414776390045764869750419045224931697255545718330094586988455531751296921595599063143661004951537709818992203376943562665494824961273030277894460905534471942517679152843205825911593538989888716249363205853483841764033494151297927222045378797137084608957934622004785726634062230784294151460331081963682441324238060237456976090134941894056813837730524908712492632884989445838915960336495051935599325004439185884331975452742703362979115184109952568677669504316190944204797690852788599621012565280230624615633283365845174033756787523962367089259608695499260938585631583068239032748931568110243182975125452241972295608582959894853852044971636919692510750864939965913975609575608937059235334157714515999988222235819692118313070042635179945624052764328249432008044760353020593582432843619373942858419034833952394322037104092277424683466450150620944425317600097741621259833727031954648881631971912824451665767882695423926413240204604157091366370266788120116188030736013532180129168843760520611620704759480220124692538105620418289347851453453688742873243407737975329491157990799219607457128869299002756821779280439748066512064048147557067788424591466780835307145350375122830335023091886304976074255301150065120834152451692512647982625684243369296494642572509282942029046504424082223006503317498182755189339242482997185441218686367813784258903623819055496374671174205927784117503086317077809287479989489977234707835471620387215810302453460114953493160402730783543396464352750877784303134265599471235792348988184448250666501789265564251362767072677172897082826314922972483142771560085544302101820837865922461396074994370472631246059894644648397392447051318440176355429741560681457645028885601506799375872769643481426131252741608151308640090742009643609383283569131989900010562506668725383466907514538784249945453471433995012152138839307494917570867825789079825649005752292949420136091320715774000311204562535081120874018254144857252655015299120581212388120036214660663649441728754509228424407344300191640419299744517294167511139297929913800516272609357194033590177058401834303541318732191747225739583685786432343959422455025852015134746915030055094048846651011060757311790187226277441738493946915949798839521896865251845108610652543126374096699946406936087167269729953733375404584794091676868201917950545662154855105187443961407919773659194157116146427937713234294183695843637017899184946821095236025608398365888486920663359868932558856838934990701939412180377945863759001611180519587387355234919537767634523725551918684166916768112609806344382369562047134069801656879645319194367106502656284368720319882361286923342148596797437174064871288493020278655673964395002558159015206265827986025050200405461648083059832256752086547223602347824726241916868309126787816546082810741338051105973243144642676175053365278219875126087010411393950278375591218177841994794648796690953161250285963946366676911382455780168737663782177100214112161922842828956315005914010887157787752809529585693601365171547586961738613543503092318915380898295564833568308456298421394464857148483427018564198721613931902971739473366020454215677918519439835823623917208443403713432436859239431258606734615289021977017350051520209836411147118320690662859333417177819583634355449783084409394966655547892170288894631919222915364476005175674925665734176144357013697363513811966036728189005540073984273448003498502616075808513466276641291587177482183353121891458448791865982101043767703422781209660459274633774989517827884709940995514817835662344750804825018295518794543443566584785224480271125952324562109517162135074794586039598915355464540771665539048008923949761936427841445094473154906866894895590957568089656655871487247380556733042122932684989137815302291349429216183076773845971777719559915097726904626754351775297371565428106354058805047408374745747573059498425478246114886747985202219276138651143306660836465622408738453339663045828179320045005403329152668472587670220435162357343732228066568727742374606113530728556277563508084515424197666996246564538174080393293301098474959494590115232324934697084405162116899314640548221535778579393002963155732988310379158491144772931595279252818588020438905727502068764258407859863597260740875834643320088065523363736856061882940608072989468478820946352937942323145233180395768889721148455745308187983708055093885689707497443048064131369710826054673629308495699339412316559380224593128872147800353141490246013584716576499899739161336280761394114084762904579680228831488496663410649606152645945200521702743723663686587966262090984616190511178176537242109986937806728562110772912193222066464450137304985503840060670407507067081871329787574621942223576771512427496009506646561949859863527029920372575338590235195592062878933336787335681597409303553837218912111506322832421300140954746893228131191297579963314516615029899437207961136484943904214176411542403181010703084204545424108110800980014337107182588827453448353639471950005184642739046105106110174926250242946102640839844873313055943970874442355538777498664690823199457722609168367856111778352005726664583706945798253184898352378239322480071353089635464922450961026107368840139681047839297435099691676638020985082174077121542318617737819221121077904318155876161027332374848032408082474552167658301656232429330700685856472241737963528528083278300028412268910010905173962459677231522336082865024165855081013130649055449930677597890489783681994487819365252652988906442299640934488365065763381199016993053146611790750702681549319456033431486304179229920602287212695526645189861797906363219010845774303732055582307577804871081026850903322938515375774595775896002900417132187978661810749841079691796421430280496479817574685634590744621827782890255953488872612581871848967840454528963307649778981100515053078911426377494229835018458272894704264043279015905142100093294275198309295545226457377459336938384252569114145575136123969216187968018535402573698986076752417087568583690228282386292114704282565270224939102005555411953255272507856670054781939000784522832580587617944347689389773719723663685401110257199220889801498933301818538878089825169077144880857212645860260351224418307416101165301044341065319483144221545984975351836850981907359623461686081275914278448722554427967868621873471021972627299968798844159903887159698449334366373039364546427876264164954425541588461443760038177733716620089343356442370220096589455061954822999492789918594083452930950744166496184340957784820137346983407841401049329721472365400903608427817944526397930471300124029491537933943930676703372372550452406247807410289541265777788121913046811607962802220541488066156621598383812794114396228475958904123866892898653600251153185071427774870365048689434791180718470309902918953331838189679661876695400808543995014851407033835329185691576506403353130392929260206558976446269736401671365359194231581818127972207235385217067797676874864833502061592742438141654302541794663977075787207296656365866334026145092009525579932892588708915575318741396650903368878449230920088577140696654314493626058037194891493143890721627424732895363367124249914472359945016598759360094410686299066366959907702629772012923656524525078505459003584159608469270100853585765923827753156511256634222334430640904411877711739901836816580774503438451336740233214081487100915404394383497239436728641506333937822435567131104385228603119543197138793552393813311897192134162421436256372942076887571311252664531993679917037468059812913221068119969257936821419605041083316252668267156353297884783212675065718392356889375741089548447916836851126190001290514085625484564567138306106356571501571867261033578965615850055189543802688262842567912621529132862686487713202499344912300813724852264143554854339420026516241155187595238951271049438968697358467910320090842954550674506585164414976941417742342787162757881454969314582813686694214989905072587698803369954919294130989300502590708884393617243629688144748655808406433651528187202909075924782621078425190156878641948796996363801220945656806530735004042413994451387953758753207117535089764472131906463020266285886347890340508085680517391063157559376598523671093478943608592339057456708476644137433457499119899433541329678504276167486497898619363762650594357966659651411019868362609951339907952696398079026216795505762948475938410243003018375956174601634496936866934463988538097654987371925264738314645319850914701448596691323954624098229348079408910643362970717425663316399758295145799041349168235811910429990807995035721133473699188019901454536995608653793108378799476475711034204682174191756990116891412841570331166018185929278613172653778632445102504316283970027086624714521853980793438587608729785176292908034855299797372038385281545021603714691248920078824031639854685041839833680978713989905224985437649769540923239505934005835198674328187144703359117847982811311740849102753533691065217926241453607795310468585362816300210554207331830482773474976476469591615917806292742946747317776384070831543742419250818392884295242980803465005521968898819456134929258816182176993136000348778391492008634311546236652272602370905844634802160888113095069674843674631407752308314534039994656795777931621980370893097231442766051491654028205453452605541749504920863504654999169927590535631303911352641500067169232561352193945871766833306687655750476733518044122371091692070860568843968117876661124434644466098517790465194877114907308345066334793319341707598420211937688002890399757011508608469262661504612116393239601514265235965582356342907810880690489859940335595164763469948972479079843434035938712868023973800859832649130990000987689537191861267825331692593620368202290960460845424110051824407229647357221213643653311111005424752668008309899078035164435999715779476540905988241109355800393063589165272958993277281642406254601743564089625827218526828132926188562255095904433978178971924030527063666982514736846349586182617121779281698811908815521743433531441553227472581326734232136383539446705793921207607522579729163570002400028217050697806932948567194774855269948068117547894421933354353976487421379214955300201313101737207051146521963242616721289542053114010395312185483043730618801292094442611829419667221069278701052688052207912876315478142428496670042137237348483304846575797033404668532235445423169007488993376919814059406611309526530041668604927404155665824906882472509090294752985020753601001211524471157196577053743699078092469869493001585573677452651732576925348532926512384912158091223549188895370619898903632723232470934074155323666346701523837598443485692183168732917622482780297722117677782507581847024044317634682860277966580232626029308464657124113470048401615127620354595463312019832323506626854511411279448607675403334308952107001011998903013616625355076295096237044873921948338015484473769128681382591362764337569012049393599004256488298318435813689673334410419746161046938730358002769815920856300966671561603986696905015616165217320523160200791192945517969581770228171551657663183374948975504629499093655037508025666256503460757751725131154712651793629992039704555945822163310093597327529515104643778831941097343324294733778063507723082083281525408540290701533416943192115424880377742637962460394207372109930828171158954800476945793972807806965734245528454326830626877477338261980750442493986528906779532708266375058733234281642739732285338858332728562607271239895242000912189333860870402218424440071849124428371777128810393246040101393138149983652131436695162753139790832150400278981333611917225325628840816010867614665551200879224356543513958884217759267192507783193472161324714135471303372013459212700336162455897912092693481431307300775794419053983381832899006545905978451106843031914606366684887947929728539032177556642825168338023212309848667575283533992359645574912935560382899384403896876685714837902956055907111314810927067284833427888901804610770870213379969401205062149943622973560974363201517407661691902444083238713228224678385159169217880628849155781199881308408936511373839415362564501940304734647321043887889556138622617079330883229850073161025919779751117129798465662078612922867662509873135047903562053955064785093437668723150133143100675217724813256312675852233943569189407205162952424448712263578011653908718399708489656533827996087259826641008857757536803812632940323415615825343671678491062432040873646054445692729821608699523245913424405013475609029795705423771262178059648335118094092931925050138095344360247913426625318863538290409301395955015818273268720808160288235540659970192723528262211084897699109464298876550112609096973192173173616169032864745997279233271828957346587612840454362857860459917532716406601691118079520901116683356315997559752747820988752659302175398033878823162284865154760782869228898139274320424025514258186686412411445829203134090997503580915406976243166416471321592981680704722594008748306609953812139801286218201188359511142439188257818948094859199014950369116657087482040629588488901185952686005915687747563054432476752121028967368060189446639662739463685103960437179970302381403318916450286848695234599742505861013529260451037715572140736030586571418513072426069064392577292691185211770954400247105692119451101088689942470999991425100000932314059207795623097923327353668193038611593130339057671202147547542539505956403187368855178473912492357200327451854146405619045916905751349450466600842831835312530660401702392977087237804249117419471434893346068606883907828926344207930894489007337609101539965783318129991026987290074558340121803052053721063855527459037615183127811663325905454932932883475384921961348927655883190516145074647138276183495398305364079128657815021893444836348463113457289685455453550408898605356225211995457369424155891663523348368708186422915766253415000352728437834694150059672454461089164427787427433574971911387730448498304488108761929438480757999618810256346895963585807243477812935947826955911243688051255589954881744858068385701500750717302764710703139629126044387566507082167132528624449782990228342385797485128892753330789998493198460796930061617538129514384644815286013640423438436238705147803456165349127246878534807572270013380244276141567480671351986737890529870032336640885431609642017777809420208047556152968987669231340449970991554686021137002262329612479435466615583862395011750418967596248958996752702579933669044573470059401542565730642872673357305260119798272212013758961309545881059054455828900157958815560846270925120082240172521973804007330630529570994274452159792516407390199851909567583517927076985523906078427837940058206900837577957649130603558236058044205309964381214434374818306782053281070191011188727499189966696696628493287021293707854211517948710167963963415705914207919630920575211523645644040329222418716655146064647334053818640950254952245453479222421577927924295825046392251070211178180883416537934460750115121414077807842886114106072385046308784562549735903236171462912524900492641567879107302742796394847146188511692117645282745012940058002723683512916460490809403530593670986425152280910196824946522027245652303974828289551117506737982787642984940967240996211276636280245216936287472077556397545378218503966647298237132191023427976140069766285996320724481738150792934034685652698198298974542007859554532144278295208013730114270357654600835319733536733218601856779573006215373075005527071354431851194921150894591244111182245484056886040228985156600099477737496912849075614122097318499604598559729761891657729479626079775574907847713430144161729042958496808927954939488787558097388609283933426782494276249172243547109841271793290738036500021839031094265279835717246508915689402539888239755373938476252233650321845945796090671800138154355397237222912876069580267703727076638632124535764918460121732547316140345041535456822312592761113510383781822464601481979798574225010927112772872955860741171844936452880879713867874916098616240627213123669692290271244754958459180297443524735172258761991187370468905816561739224304563996086601173194955619194384247572330981241197791515131925216000365601566416205607142740651837078264803677715698729856147899821183910867580973368311916551177917509649436566998889040391504690147248825290876582924679162320499113864578739371307754805197257539655850343170455625574719326998302330912828429617724064032099814865369070695932219584018228578180061894359481148796173185460191127542111105785516431000229534776021092634705287587537816233689878338539313656749727212121273408419563129792438596076764747532934806573714412010102824054787710739798763580232108661302799451805903625444432343984746413932496924070682783232284367382670511970104046453275601506894587148256678084959287778816946069073937269607677087038450806691236984783288448616108688013605966772153095550887919484746463380456025153299318410886222193989440419782798013571493712064497508864657796048507785356729975423395615160306153379438316437680633009348504783445038202498649071459814014449121684630493440700310172196163068976753826687096975898234740875861827608494908731899782186269443730090642885803597657740317754586532209923487010189873478813103022677532221935821717802878609923754169600432054179615438569986210483270220416300789228864747977452428862984885847563930024771755487435871759572587599423398604340511507377464744965823263256812931211171381864696905239573357905353096156623532561837868032204806416587311957089580333166771635988689210015804448975960305475898259249688625011042614551680860395731513719322518512532863258123386296409646096073537210418044876045296987285195283845277132202709919227218714738189529266467149210920318606174341832815382409835583094881359071267643357844120375208186231195007377647796337546264919060998143377824000643654965767100478475768386097637048332346316292236708830581934156701123354824742388668623317163074917978028624765047853542829802088759664592175962913021318715781771508421469843769627391249534135311478507570655839159368800107727908182272699960523438883328565107287505178766838224360272894090278359944735909619017133366662781974534457753188455598514905724909871430766125885649231509766355755346155715031860159670406806871882260356537280039497297098841033263547374719594144104878242901938738740268822217262923479850579652656129329225832959171391275029456657571062182399586289722967512456835728761025812830294535569027936228065722298412602432798213950731769026519196208286495110922624806663156004739725085873853766778692728515416135413637211419578849589615145659095065557416449263113972202392418996046807240158860186369761176718018849040046594345124288595815062774776800720093931673844792939661320290802209800206963135286591476716550028326674498014894494313961217264533300832778206336749954022058506827844986788195247314374603426581125348951325469011473968214810715139440386543657214909976114937202522274599218727212199545155712920840187271046487573417710171762516713687194102568136759236055200286240147734509779418865957153035462554670156697423097967150908187537135881896610086686497039841476726802023908676106903358120900670138808918665379249718932368480225414071639698046529487101157248289417637757489245700253711501512674613276111444823721850469962810451258827119936354193118685478599562770048816722975271711022555841748254576769407338888090653808440822459506564089081489025578571068365648624914793301853404180812662444845644392531529533547149182688699001728158877380858671517335973526894211663515231865717524371243922326216094986517257990940701361480538008021769016535348376743821018366334916561828240490866986339563044935032414536544314808349920377512934959491832574930797271079734260727030710251567594403978152339958077750863491413145689939374807349314198779505702603819559571143811757094838583266053584548376427124407615501357947931481045134003653283672412681207718388608440446985668107627384646829115110711021324029674867443211098590383741147635909186101537378469847296640299679519992782440719615436191341031701495783157421783624607990221560129099022615114083812411384432717728805826707697812022819769423339088390492907039236146289641293092173171678532043245091277794064198705230957476292303744336210552798510568562272861418520149039335781685699080011812587302284532413125921136325122170877243461912579418064671058423013385304627670366828555896992459496534679219191194076721264201541822946516999551474023600620462551097529511287311590570548109905367586066675957473742046342566193573847926842274946414043082209590593191952946355296495173560509498539742789947724843070426051687739696211814888146460635162077884268307745559376210161728370298185134340550150672054345195842213905569150410292345707268947263995166387521710133554658877768770137833582115364099266555145683600387137476732253411268511651005682352492725921368485358084265548764051350869542313643506588812016301643046017480503136389241497590011270780057544177259404055740503088259621447461755072843146516645427705648925908007666876529402111193083585821962814242362463204638758404758002850788558648035663274397568148405186829240428191093638793717827034895840378584885722546619915084126020950374967705774283273109189971714658872775063555872187419009133462631962949774855954400510231856687800788885877731060393303290762712888008314225674708657182796518948437005426575898385748302864140286572473337191601008463391097929118346955060872608274814512462848568616854880807311175471511495115946455160988380310627502366753830271578490511697400206058737629676757986986780369277162511187374409110265130647795451827915268959436292435865496924100218233987175558331323685002134737102001313682626041369731360844021020136145864968049414751461562376566724958260440972379561484326165491174935561334373500590416161085345120388901394507108881244728518150122241259967192689615469682185528674524480645898836093974297567133205844744107039976914965047635867075380622514321190180061751118710628842259767192777031245371946195197953221913519676845158271642449026843653027688489009377483921430428598541141373131866042753966892676411624696446931982244518881658338072324676443862966856796494678191107047557019096755410560990572088728094523745573811295022823499630537145947030640985141039297562622686350363419715187588772551062783852132407210424959336779419099607207269501098619546782931408527278223613164341168880074252312506875446659542068142058434235430160427690552042659590957693789319898268858704330735961826499157671032718897461377658861501849365237283370098012477250328229937384987654833633568784291500133294713326839691398361657535072724531069783515122433804862502465169602212073401726250160425635666428894233723658674730589447063063059497148316988087932065991321696847485588196399752169738451622385460391353641644968680540453467314011767502196369058386092575910564472865638659030627589871389969041353602821187040927594145628827922577234568440116141604843358075227914123271845789574503590205705138435631168115916097020851809571173732493554621731853988385421378771428022585513260692248350810564132362277430378054565246667881772591119784979488179345675011953999816120113264032303371368923745885252111050644256557253691000967114788851723853173041421624238831323215100651047514641540976328486935271628313144460314882743818345202134706427833244864673509437930613724860740791536346399603359843008869403297862189135236387482083815995818091813436274625009609790738769925631612068055817420465696376821945106487616137895300895088116079324150161379843760598829997732899878222692650312190788811970687499468221954239803262895307737611585939540893802309722448444200028285525032543127995645155127117142019310208798720796403659257160541438232072180208832063667691065494804841994505144022835132758339775542135574722020134741655886940227730046435361582678555552753191738224750461245237581420461539098069595854207959666890408836062235380235320457020873832226783312955726660164147489841085741766283621014644830226474152507637117702573431814078155756596649864782154223240376357580082507440501982662860675144189549058860647680918969475970844550735524299809964528799866986341095027312028051640419147820635658579177800340610628408539125399087837907656209198785206483446491068629959051338087868461088328147169375077294745277965983069046458952801735309398834727767207272361716465577930906274722956106850377565410089536216144800582323215069722486554905974736276886241935539268036876013267086314296644804039473262123060382038895211856037492816482083731189313038132750526833776940107789788847339655640850787255830486072768214020959409347037141244731641357630217769771138234681282979908976474356202803609594382044199290284355784277624769978930380612047673426464276828638882907988211950450341224757306589471918588295196187687051839046579500783724658691427805172751073746686094424526763679277199785606428913732850967551297217232135022904608711977322923596728820900116589265294794920993967188883760026402710198526184568287307862581363632728290837878496188389501183745385053461707175806167317788505307893458644085288799760282065926485341635369365290294218699369750453339776463051463896519450809021722736637853987571317156268391119317592328461429753910620158345207828836234918126841554306140352019767301945545533975804645857136837937205109900949182867691614784372728667567662999529200079198847246756784607198792022066881109986132711529134348784496786726593778946420417247334838179920268861125103619786111487507898134857520493340981708426928243756578686614441393914554689634337995568375260832274012349615575984912564902902090834603007686588647714937907774493437167237244988199566779630952111767116369518844607294467224319492529594893769795829811340783913740357421618480404157296191958691175524942409144593992067629749438548691650762442443838104533599570705506151148860853795941297782379232886352174050431052102063356315218217905354183551804087101629621297686665711438053508993453059090046310284681631699856495234616735286420952859481921860333836299464513222280634483712543885401711839720218125302965635360381817538208693934684136519466710850274241524981288574282133629154842513809453449644233590953521975233063233808835887887937433489708528045432400076822711556455346778192186704739997409390357555257646904232304967691189120818136650098430550021417275132434373030519076192834792151395939960450033369873916760846008127069040595261838651674837077620680460622807099224300240490260409513715654358437283022549210393632693844201491336007131707686343687099104554938413045997111145807585740223449139273649187951501899064309932959511858350439307224177649838966165690927800291300314140819778807212116997219544576203828678355673970145359252854277204461457103909410133040402087186714777685960984397473761470895159520771848047538144495921820825212183383720197100196344123885528893813413619143090793065525399917997771502582636753104834491828801696949516676683354841968407452668395380267505952604051058212385043614637406760603531646441607438422964037122998865097393887300196220963056536483453890918335209950959301442771557839633246302815623801854346825487723203319401878151097420754349581174104975221068326646475036851657721060695865139860817897689140347012505336781483174353155900058718648671721835096916625015258578606009519152448685621256435991082083143678413603089853772629025577515710927561952797486907709428833152658628240684560707803769265374189402020517160528162717970346296956380748844041877468130850934061589148970480986238565722972193734111351174407851962370452414077353191368597078680122346621495969545967740887743499958381054824257657416277162051395528376237142189525751433499674009661903017133024123556911966363585191632075610938053083223964019493109902245810921531884027841148358721620797044497600299878889817888681862940797256505816481437323420487760745884473067453038532272119828686761599433381462055793771391284037780701985435244506250095516263954190781176578907314108897368079750774594014306281297914619105470106236566958563864424319345351704532291666071725480139627616476194989653003947614402100592725937369748439703941976955670735319718796539626110675924688288986411755619112833143407320585762581661255350035992692110703941449493516004689521327565209686928107787106047090084049971125559967069008221756667692097199504179977278541321961201149482501803212240845351748044294754297827080002729833360297992094899605463191898402338275410751489119398496996414786956656529436941171724744965665210929525672762404553571543185107772644206050168559167902331756483309063670137440832564839705524450842870956865968527532230919341889811123998694278301490145443820187681300298911242271103973177599770735827502596333814679995551133569676856294831527986322837482717789363627650463691819074488315449216343137614786305852536491157120281171704058000555530091044176946237081638447573696076347299847890265937866844905180507386798674815662579901713744603696593068918082161700784447679800045823777462370514352907480703768727268707904554975325118143938211161023127893232738627958463328001296678953008177458939403131455155449524303989384308553943827029905489781692796027222819940405331913444549902372097279436901384045182553111630620410943978944802022981140961929746201811367051583455708539328809168284348731039625286040716673986588861356786367045813356177624310618237214443771864196522896368841829742649334230368571285344983831100380300344336098249541598500950932379949271677214615938444818194551737971569900593176313798085305452811798558320772476899444547404580451543524117329161940959519006258487899497544114888637077533289303880993210430701322694191497345852036349366543918862112709491694082012724937253675561898887346310813013610862610062052975095304471466776375573013822448448141204520933877890312391847249992297123206646456397842960709901663221853973871709447527797989266513454800171451167430437757898518945781059745515312407112907572527840128120584413581300358892291267769372052262003412383172525540987619084811567829251182749817273390886412233953103917170601694922836484115254563218570230646599892977248534295471224922324544847534971572451934386370768496809708175465266178863080645224376788782019068251599236471015506326386994603354554485393855972527653827503341178654018879439836120194112323644213068263961348875003742015445011810341249226181582722954231202346381898617790895807397449844515927348491132709660883891103399454828333523254956539629707009673406766149251075064955817373508315299770306202977053568787739916381213554316387700387211748063476842714729171703243463259220267714517263571990306138561749773488386708216984921257590706692551266711173454908696399243159939902929667836988652295711431816373564938961178086145139241735392495182985034046084927047579062990971123531432469396794224218939185176178590931030201274286009347603783962099237925715947357245575345972826416197349334508144853358101420865076991786519616897654829733506410980506930555694243569470212622950383729390883533008036266224159225147901817331796187267570866166608009867731463591717741475271691789276633481547156816579324480763333035373277977935497205778773196709546779314564691753226175617253525007820117272012957693275008177565729794994395454111363860544332030899343518839510972767521483467798950791813019814206951244662870762249881636467606360617404488510319793230096845139932505726966420549357119514555219465046345891351844612654434957011092246161871807305127208046312559974193496095632308018106104964390710706147244364238631685642508775497460527212428442887208784207154171543544682777401945411436330802232183979688615345638861477447384216965434274165533721799688471213550637558791327947019795927826714919057957446571064684193006342230213694140896510366908097604694688676739353046227592494536727205843599730413073724710175085513592393322179448038531847583208536075581079816830704147277517170549792274278858199779200604707403204962586844107565420389715536379097284995545300218411372149604025726761284236982035915458059293738840093897601928904654158182836736923471463243424958198162540131839132300204970291599254670700172478592243951025561121033675142085485444280517353777819625318817641574275993364049699159150379930440385877272348090558899223270347128009177396165165360360962880479062787783432308712872449318856163172585420999973294499083416699670646209211243551460344441313667282171534950698517478856362144684315665217267591818552315560566633993526084416335583628523252334184439955532769788532862587986170891777387613253978424161460679408034301218957058771508394711254878185556063927756895456012616944624211656363679248261498425827575463447267508827219740297876357548082220956888122849740261350817027706125061781051355916099969009617252805191575877543483961257772349841775679408330298440914562937030801466249493236404579666687029004517779031151149962123246336306598621189946764393078126275164847193536608022374140709060985372166509085795237589467977389992835025495585084327354193747435118978619083918718488338558441508976446808259733201556916220670077109571760003591070934980842298139852462784637336966299466673753374888374743573378784171344110336239420812508080325820713888948253122538619307059377421816925592305530352638215709505302420208544436277054368349420843406385350975195492371468820174723656887998766610081510113860378755700793303465331371821690193774859295353960393656807167848313098086893152604620145940045103101920785559972339368899864473390883030585961274059739687972593253488529264407235337479512462390682515649261329567951073337289099132349368993547781034917420746284075801094678264403249422065599765508848421692823028023654598968684919526407014665149988449259632371386860255355217660239961020855894777427748195022309273678986534394403059916364056835853453805871018231450099996551817988285002372374375276792070983942045217944361309830032403756498395193369927799577573088460581479513366238115746774156762418546583513526328837502300827887951082685636889843709789108269408016598789170121529513978906436870984168822775919199047434194271140490950094618236867273805065998756793552630369540254981784817746505636654784660151713739568184656844724803204590709307132132799812203731428695898434853037143962669973671079663682614876332276678747041845714184544164120069233565894382809654426031134400721072621050614303956733362945579429131298737813506525673745080104672877880039982421071666379290949992415165758840845377902490629803574680024152293453338748202051324835575230225948709776007532917632086410584094958369298866152565237899473458596301313316668702657556785031297685871161681198240252838234318792537237604752304020554227176340397838955066206218814766606422497256844475138593883646244667339253369426628511591020844439956284563077188728304027277156899307360221066165530903598642255357096919802350252449117812837898510798631225393693389952013890931774265034364727048057726292854547792386261740801347219862745548499488977177987947266363014958164111445855139858407711558852195097550679147856183899616251491225346917664981117082798669780410453893551133194597391354607125115034036389978514361680440241875689225334653950638325776144213719303087023771915270260841240240029965920082514123453069381766427950102998075658622197238404143505522539856508362620052279569152851511062199401655953726247769684831918914788321044399204990143778749445759358665339078245005175066574316472072707399337494137542306029206079203179135290855721970044050655202109545946850052552642305978886807659821523650003837716792250170127816502344594086597845602460982729700212106938564755083420472678536837957694299225535450803520646344624408427370640932563525032774841312874099758951555630073610133856609370071424394406353173958126873882999567710669966861295405088287731740456182241509648165779216402049435269075957890353231381425207147759882364180203739379177352443324620826906445495486884994523505115427141531766584864675844265755073406846151155734689507743799360039470019201568401882177040936812824385836193989227793699754740634867827560516842437563854614077614499475011845047860465739250848402372647186126972178139467986302638905771737117981984109901403970079539504318430819158056429070292473423254516955934370308271372526595231706708945677105767133919308666002706801785693011278018546106536052723971137120895052597335800493754331201204370239174940898869684256959364027022553723091992011868012331503487128051412857689370560484448026647763262014482067947869015243560088881103592635354693435259729396391238691233835395506445295537735513325519594350148586200770064419277070667763789108350256813290326152926273586744030432191474531636847574760724739313783600712339031634895745352002750484912625224731277079224646425301369749803935288119143770495614334265792831630955982839185396078959782658784128833250092602501536090005555222532118243826538022669858198981844248415453500426160965463353187697351566990183775490078548044989679312711630777348397427044552130371192512648958616296253684896218248112240836147888408107579537402328030836236150237419490598614336034181614498353881033798325711254034655742234943400259150749712551537566658935217100126801922335193107227812306458056843054516882964999827456874735089570537145604008640414569638901493482222196954700737880590279451748785753465628467694744695138442492937735972134327245680896305942448826834516191336130069291630129890691245856279885474130914357038286180266635723971103915273205615376385243891076664546162313170755102450964671143251698998641473185130034425719455672631619720108192375864886146098014096133981683839996710212380589688584762380001471714757259819054851346640819011539296860142234699858579249382257401552336286068732509093437051399595011871503041702368829783866329752072288807311303037346701093034828395149356186743581949944710282013555727127894666047284664992296834426522851771975431729828457978271146162423367977432475206665798950578241234944245348339665868398841052053099159624797366686962795918422643162315204805933370069108927984054860182746288562482196843240831259263832032608908447841182281084631373893232891443485269433355392447290298419589032861534043568239518218115282587841512513668194370709819418459104398389849685510458019003500035128465648496767820203387818315782975898299392868008562694075338638909402093057589523488934863735128780830050844977528352605444166607042535733519135571200587101215649257545799650666830483998561456735063898282277011248718378337809955972323760137036136730458116517140182616158538894134320121448710882793462547196305159841280216765548354111871418104112596269272020877769054244447674066143180598423146824422948529656645372789739901988756920091578275542056333740664877887302994073880401959314785108121611807241992420925280084411625042227053398575284592423324593102852332410439379766271203469044327082547141739615164243056089371015183129749226299117745930832712161441059134405002461557294757884564659668625206387113379847730023483308243289644581894850266287622038911122449405231812136614656626576262081398950943288299295443803237113094362012123828795611620927437576504722312388666894363816054791338834995061446819647654333727260814821460539242376871878406011916244189060530746840377923165888882437759761052550877039029201011379779777566209980856013910832680535016329984433633025958424848479680436142212609205174251653324164388839907272414097106171533024239483201547435933471415471264277837411774607948607483699589326212126687549133680410369155922114991681084634113192143685849380411211973433474358686851291314498804802975553104579843671698996176612265964011428527167931543644666941099753799778612009391572738797604459635044764998414908449628387978131340299448001449339446841925479350047286758647776289779314507803806218838380513270468050257928378164660243622117500675057926853465923645784639121615060932319782287030073133623809907607118116400301287037675929362707625540412805244717809176318484556706159923144879651777576040251686534882910395241105261413946091270938712414735983024161663266475135341287604341473933502694062485480435528202708130377170978144367618883248753636904351473269785240447307575813020323705759422391109955046362688395504355997880223246877727741792120074979059945631496155357859199797439599722322469432013038636630573466995370184341355984484773951220202390580559292087246945702351207547007600940856814537810080750501646728514378828514033541277885585151392443248170967191356275294346011833521069217886251198611323883916925892552630959844628447841458916143202495068450198470946786931168999734450350718086562190236933532983767542587096284590948520029701538362981902565265922717346350018331136033687854718276514930918457084521831193531377115987708824279079791225806050715508016935442681859914730535717996963673293899499551956476937538460277122485227332691794932577530976349323807044120536798610970529397167675864577577209168578356925307420497327991264508645285203597861038440318569301194973677690955621509902199130909071239850236172257868206933562387555086353381071500229548197021524880350657769626993598174458089999994825413759677964870133864758363549569067034422581240798787741854341425241222771828659037658654987117260742695003258157675174604197329504078856948803140604362434296678241162321259430986669092898701490430253108518122044291774534153540539997267786558360557903491152510378194540279683290773710376593715250821654615021438402782980868881965176720247639466823719251247946416186021728756673606398936125044965631224538059386441302881895505635386254042260423387054136318162220656843645524095921131744506416689964607530186986502356784426060851388680110401105768664585475127267024552030170971587308219644268640117159091760036274278975320560050818318220242060894412799104773742505149142366017657163613911484056588988043648916280963825863074834076662765374640312131262512536310531366959152243257226700758476090011614113721971263509405225391460658662852472426063022032136829047742859900542485064160011636645671864679059433366312453659726723142896823613327805037905753467523713631262148206892157513708106512029851050223735551912161267299013406306380016479467527090720041838219954026463107572001629236111664505789391864206296565150156563915795451173934363403027209081967164359240070427302221135329681142604147723906681751163473172608178967847007596291400365125293191166698631111386186208103489489151791010287658122252657898616745718771891854346036919495235744487234684627609974947456668315652843294632404876706958349900227511905569259991029452903200692641113893483564404105120332554621299564807807210847136119389511574234126046088418888019944910222209294911117109215588992582921633286879172139796743719964407967543711855271232320457672807600338194896399715456208913023647145391233080216175720938438295685119988947442317807523861406133944785120864193343213818249848565767873973293978502375192816261771289251407534804104393124220853289914438807138534508940526440210386269469480670317422119432777576538565284031347885480947392531765212672899612692705181527347970124678182121596924192725263865718862205044263654507953990870776537239161269466820046086601331787735044916092749180755868024394939916174421556049128236996528077075754298085859359984595401201130324239169748110953800362990448233061706876992977291835572819649506121225421634994162764391006503717063033320855822813881886511022388512040035875461798706440740179203492087851565772296296358878691844535972095735574292819798421609628007795596492495067059911858562804667895571414338707267073452783348898747613869933208066957253381913405373346561981245634567004670657316230670150245976437372386936212640712303291773988534616245083471280463577664869965799439265232027394396340306362369447887245810069256261035513807238751454289667641006886996101867803269824477932810195644594919618512225456520955965331434253354941392560868847792959103627498803485272950872012761175855756345858297262092967639284971462819911503166733384384235323911852170950881830410333636304885743644969441322508050586688944509344617950437168655144958532072369941972311570627402854841078870934236347744974233929304368797334750373130748148430502086254572567478456568501297327372378533866764811143034552784029796876160013435882781619246779649879136411649008680658466473110454284557777671798615586654828353941675676441211651059849392230719926503822322639288147748071670996962796790234680981831127417537334271788755989011737419828363321040896315270792819135482181425121438718308185043270929712269719558339054018439391830070071635644350075540033721877015944019570668505027917800847300195813201505972734168965773734418261270472258214334997378596513934391138111553825430861906295263414413208355971747649647556280517181064535426604744997338236308853175735534464005024026294618334402059095182530008153687532846040641050833176936237447346289326569701663380689613106132908085838314878386144441718151672149758232538272756219589792071606265268012890323909891103888979784613088945879480562960714446378680144253021309428265010685367335982911080567201519380859646788540720218994441632750353448997980447694625597400388008012241961115856771864389999133747225097829652380359733268206133087429979690638863935337328919220650274140083128291337003635551679367607473121316925705917706424728028821691467343810931684290500054695213176103147987230294429065692950815235031271721181483387339549374169607253321830380443222911372615999770702334211937552915055520895592112910737604106647851722427714817334482365910380304825741708162101894158058441426506452307607616331209662677578668390887815836975673116237036793445068685325628058856134889169687844488501122442222511615864034254325767466490444958436120357406513284377792930693278703584560187509650383613022638117381904965828404598970844372240967638886848845420725888962611696467721443662223900288444870249571615326046377499904466158185050801722329135332467364701477373047226241522215773276049855375862527161696476010582535140449414846695141791186200274359771516149595159757008270252758838932362574524821681848186831706073252563668593028662451321456148554522660609866428227174049548828654395913151676772654185245113994634420029476345042367736102911147895210792269502825584685282763485384375230502378796225109102086182037185991053977782615386181370523710855611406052602722702544596045745514948056508639942272255351693121584887319297622026984107576865146479076480043813084766208791998328554161408417889885600685580100169264272061131721255615592496522761321750983174090000408895862745930586023975990027844248466960073185498714744821444913249180894307644318366861895905187914406749005923013406373840479450897768473583427965968507439882486360581819503520820007729240546486133453003133341805910593456324865887966286157333071724946750437595391449729195017014294516668917074201934387316533257090030284885909443819250613153738803295730392693955850172406106646324696913148208405292597787027481915479746480019821102585408074992748933582238356315905808368767388447234374925227484631166552849025581678664231445168490876489302639316845322692832184666528181375329706213016067076415576976983413217900013386394074942397246846908907525737116213371689219785498198652007066389838450714122836230859944838333506172841453860435893361251626341938058799128100367589563654092755317020581066423027290715809988786539377836679175022458614214778995800205786560761328821509467606972791819537389979290812948497651024574460951953909597991347489778854584947625156510951714483111505413726251560078641655016179483192487786774038188282729591837388777457056711910729481652814337394069080367295446301138398915160390975275898049511015991893072132690537047660399888461346442672760806897459390486290754636520438751394224336389164649855941185698654269020607485835113080223847329560270204083269127940007410817359087818507415426273617784469398842002679801395730939318676358455779344548808386335341419061937033023012228860791939580126740116880979950672045961277553921884751778697817614668037422735676137259192867223240045532919399982559535062120451655323856038925089423912159597188597059707785156400380299646054699231333430894831149920445851602278620603146111781425640600558637486027169837949974486157784075874771182691958374903238481415286741326694808742691186335492721916100005054634061985048696508058483233473004002066459786458242103512000516221567375780556214413549479251408317270414024423461956463097914617598930477955257771767358730543596420940012408216270499349969810501314809673868365266019376279524969269883527185911520830101850141730720216139802178361393153171414188266209568520072035602456517177782839956349816192512197213995363570222206486457076341183262626070906511962261890458679184099589823507102562232023768284602903275653470377998967043236754455075978190059380771632082254582099977485074265184451022152482092571345270441374363732090606133312365228222276727887764860626115236001828390606850876333388087758877924079808054592349057995096119750919051520022403296932586996582736939585810079351486238018783994442635074639268558253850978033642775994874118125064472140503447689764765342774350663100399844722835051412160355215271363300784947293761511420244109929180500288213334930396178209670085054194540757558528394128032645054613060506889847109758173797137203230861285325368726770868618848809163980868328257773292996492039564895772426301263078927737201883897957905626472484580065393673508017336846160854074799556596731229137172317707638604916409673004992530183061514838728866091414638904044543047286016827015928836285304767660614305520437976656117770326180319108237278994639920684279469119049659147145678558778886925444425184955371669261470091802670454914052140945958879740829014824589556159823843098379074878176444176152687520622728993761654027822135570011698722597624599736163470023412283300026374766897125236902952793506031994687497073580736205673834440443566511917398319549702854729916508143404260050720790250587639496440925445349086838757294605158499026027372869648717583081765284966452952647676000397160472951820414607454403243702668315985070550875382682392863419208385999500388721553673066060141936947524426530627172332697523396625194268978587635475924690104648270073280103630742942291773386841738694427681139087644301181405920836960853949185793959114585334100644851892886949732900847857203059273795961965913392013476328173234378619300176243113791513120416085893773162239777656880724673640055753060900827001155681956464733402260952515442439891218317204713625659579021841837338496805442946684818657719000076785611287347349119527393410086457495628716716031552303559180534177114769210307353973472718288847745907461070211918932827194825912966989253600867788962195624877892533953229875133036832756764851505335598204335346476468691542763013550876059994639652830675741975745406737279073583724259305513905108386309977504216693403624969835838847118567925666498404900349028722132052930931480121981083604101233072354687470173336325998024598408113114427161127017949585991986130927201610897480797769499150765276863064847614381185292616878828383205272557943075345971641041280850581538475273707568996444106085227507215238795795827441238679453205006086851503648273638833069447364455178708634600275276529558871786077473845377040852316700551661415362408704265312812926999887261995842866320880867925546534769460885321744320678387688475451167706289471660832075222881723926830113725676553125626220756889023756879241507769240627181445991908861164090041566263931675233642696063030306055945192972930943555931288012383559333977255688269584743659360934026587611417788444476185305827395873340907968592310587003746465410419714224096137260434773800965651425160116049218761002007284471392463364917614254487755776760109792231475022407938765094246996277849795743333593608570688194201415534445460769064607762141706545489938351548541888999802113289301479938281453464152498955718777379953533042372475065851702247769415066137057044048451059616018688716251540951766009848081441603827462403042081149990390126602166249280977142593211560911316658477351601024897786988621544397867090580784064063600880406515581368655980026773741907348097881419413459403504856949571102686962506725780094296668546544354222797304460561162183506718136410754112207346689261499424486336085342000949301345614031811562397112114631584099664785609926312690831383051130412813627035115066454306561264467954606440502333193367540570946448557181950370853115035009055666235197935687834233293371813958067222526704265328233541614297593147817638581993320382303379160951484338288564610477494888289417405213322715738877796500715548569710238212962193579781666318289722516352331640227195495404002808237292590650658723616947052319467668743493888692400593510450711678457793873525497584977234217508080965629896119161689714114154213980381978079019054404304133911812384520386622342928638446770425143358561535283732702165710395166342963000635240078962011449415975074682468040203662080231217394030699512132326527419301039855533810134151016422733814354537268947709327725031235480678300053104213966558299323059195028248071151158385941063017204331733601995590630614705996207401514334116454656705230873003159341703435267749003108949002131939891838066984151976452724356663835979028037650477579552941816591766967115904293710298592202950831465773791402891167124792093712393994751162810830038530640662244318871316411173361481243485170977230002608982965926784590537116956140505338844582732872119930631764436471005443196403701220790802082490852830480177490570349069793271402610174402714752398306033052331525670827904276943213956813948555783529676002052952125270851158130279745808746089341651977283416760049498543052652605741144281802494463087826532464359871170025996614382042722157656477974025754173386394734032433118190814877133527293933431197664710850653083724694861868844746526258368317538831139642572566868185049323738691239913702579597202491073129323921086873009822020550652476810629843630248442994829993657129420123261157103946797965648259985870164789354155813124289289516960924120143017186323768287305703324572672561707560878238332402997921183369518607477402109200818125744362352437997028106749194279160187635558622216477488514382628286183839141742500960236563040153444081235041064954998455592889418141691803287624849000091671917140580175090415389533194606776281547516034591392216385945667949344303275760425173691296055980116460127759808588952198726053159466593365575450794179505010719860597491409391689021283479894938148967962453023289798874024372262009443384937285735491572793778824371649959776976414303189709409947198198904030934757085198969829207017721039054028298025998914878502050570383268662765815024272309080667258962259988907791075362733754075423385160530958735805835399285124828710662589349754957341537474300865132223643973158667502036497389710647796048860043519557352916052031485030867409388657024496640515485170111459607895305300257980095934574830649513617873302154640730439407089400859953042793239000224357303343930887397385387305204613611720056348023725402180976809117845304351968712693993083686834252423527698086508666633763257649983021298391652941759013558987848461011792721284917368059134422999464316231768597037014496644542447088681552642553615167818880467853537873202680100947960032082206108962759479544272010541070521730890540048115376146713374905217913457924214139074257351023225711619371722680277526862935477242934867420884798479417755324669798551712178872444864274494864730211954149250696331311229188998848101341563135635353727553182732466606217552437227798080533974287526884046838084966579500587350692338797708941798127444498403805688740633799479874430814363118992418762254372775051384037133733718253614549610483636435597901064626598512150085153036543733218246574302176154521051098500134721900099482432485885603852836767148696702293346675160231578553576815879096089428737749857425798628268809699105641722304195001178780256618460564412076071819519308242513092680225250769340920226587492540056767643059845626475598628850470145474569613552833476436228031854812594983641736691888289215501982572084242711023940807999645482836249976898016871205772941796088525107939154159307671898678654771934689748540172961919981598554704161588698175244062786674257686787206857030514423087368041562246978819102082057165982363066924668201080786734659926397511913743846348254306680282878958860069089528579485123510765499459023919319718195929171281346092816787763550490599899296573645176332695773258976009599458753237798699209974341757116600501430668519451854251590698200116585949533340172988316764796605884256996193132188700933173217345560204162330191330270643250048485001992395096695652455865035024420374320668803537922528985049606020255580445804017045106919709989945980862686943774726628700035842108330670930394115734392238995013636909656755780222698908840157168096975310994631069359202241391159594374068279966947045302848919164044672403001778216814731364734825571126550895781334146276540176327532102621472433734946739576774090471042059381271417364511104502909803776872972959445176269748013912634780559248201802478963614481799425337964180366196419529975457663165842416899883304088083275957221733642504718958720377998894090295258946040530923775824905433660225561633469813851628575812561885966650019978916434074207572375054406607406599730342504281884021818084172893788054024738491265496712573473549261054383272053309772439267248774573133794214294186107811404965398916012250021529485886879984090738652166225784738158449340796558965987851545627568544186883733165607939533796454683859946837185031475061982131558323673675114163452312881432784281180731953895603291389390062154649648140320881513342645862455610187897918241980983662076810576536809121776928458389388370284616163880485421737392308989158249001358941332117483130166605388206843789087811024983888116699301638988728435345364723218102765642809907014233365487090400620663338844439513544033929849988582823751610075763755879924543997287416999222338052063431302977841999517979926884272070580250243452271998606622400755590365880843061315683877145748753119075151552124118610116188773669036338883950120991788714686631183407597184898426313326579498648600591016689986723383921245482654318095347857451296339464953633457144124243791763730015817917741605320812439248250710739098282354729105031352361756522547970497807295957993204776942528597174349083303071375353418808737290929673223708609746167172471601639365166724336043291170441355438524947660354850620784801881037835884386976639561419913201609905259575131435909393257567895500371728412072101933124174420876734774306391926263769191474312702431546647792994877383741954941215493280073500865501486595451845392417510243147639444396860691148098310506367418289802570309243893269261127307535912595275580104430137403661193597020403285752199846463459008086918143401068827206969217257430708878064688659862966852677803103852685124061532187448466058344623285876249756641029358780717251497357177296599289755386763434116016277744282848399827456344418291436106356184941656350028838173545244691719002169554269112066802728874751695075310348365878441436083158635341217878764896996667263621312711838313251642688223892728687954107500458060445645026745951282088410142672596984793095571844107707184512703960582982399865419000804483135430341091036738024952845401441346124717150519871799448180137598993814631498467225671480233553414995171128898028314792705467044186485478425287407707914789342059761984237147031872082846865339439987319326597983687443235317493189979329317779405045381163583065549807578470364781901663937825179795808558004942621748323681666104200157344733001929814307035913453038435792102710499133206392759944223834719841761329052879922844691894416619137453976474266914668252148459113715135400070248669007481861404310766698454905301276131198077261036583364260036692863721308324366614084060774669645943980042782792814652690874579174852118930167584409715292405860795146327710378850085541090627124071363653242511742975139109984715506428551492714261500569543473989224573331873081649786510863718391881542244940064853927650100949161446538282864469747357303180887696384861300579453441949049115219715438025456332209178867807387759182344914369644529102195179162589551596207570075564098139117636475956564961773243428154319054344602193616449372495643805825403750199715867010438169672546612048163494174415131254012630378388918027709785625036174315132822397879735414193684758056502634181741920703100034072660731224859974528906922767522063278891991145837936760726921013721436422913765292466857530928465472809089647544275807958153445291797637135161350176992678319855266892849159896370891518424282735267537045307506403432996116843368476660265187480858512612733380048826888879933415840836379291109414128812081320435550000463253621559147894594997167047383556581908401008997615378859083953412732842500546087371473001941159896432323161806478679217151018757669151604652529870682368960633431815888786373037235123574339978421292369295921669728350654745010075595457721466203877189356243322723310110674850225405001664267113542937545308663939644957352840879795654076003074004620702125441288497876972642363466021188139368245643346380221288414015914292219658605564917056890299979380621367825189051102315798453304048398393906633788685023129534240737328719602777729284773533824919633668886694033248360732034916329831939755711829024880725093991469845875528706431513588574329564735739704633494911840491609914606587012926830050602901545902093820956507216282955023210227996297314712474636843431558018916759697229349029033355864009540330939166357215104166309163726149229482851339363470385272006478433465644097945728745824369998200167636372874512565980255609312222660640702823470169948029278940971638423629723444291708983648574683392405785741113845338776085523894604083235127702431996514886627485487353252697020362886393085339699506429471960859380333389081327188162649716809726574843441701504074314146182724358352695755886011191824271390368424273031810553784591358781730543654612710618579390258143368010268382437554540379823922218817483528300793966183202764383360847185909763542286103105106413363613445742339423588609360182108449301234858392717202415042014646064854696886632971447716645144629817393252741594644166957336936593430011305123057050685229334868641464215459518904231859201653405557946100795475633018388443137876789145944975385606749215155906103153290344786831125277668468530981299595869721892909447178813882180938995479927827608470726575848897031275435439465342379850264982062726044491744713911629614773201948348975000653103111386048037998113781164991972509534163824790080020367030261966196315064707139494264395505559719694769424873710874839449001653950533494548578016871776039677857857731845214834609818507872900158446721012180928197849453063148167478260580480250907081848777327112677398378460968562219358258526574066649875666310504979084889444838742916808506925854639004549959097507253181956517487062483294332889797265408849571044200519552046914033303018666275266903433218074495326132949607062288132351971277432249024817748239143490820196915655185958552293862589027565871187368000278924765137416668868786056801121218690922941609247803495981744006622403995355066358146743277251452016122289882346916738439088166501629586360646310165688117142612521575804468362359814523506033852042820163090609539781001381509872069674544539948922454208306940065494502749708866953122688316375654723321545134281308483481266727957180952937907427701229657354530241449231364507463994657679492153382229734722549976131964877415276315830448695674499310180398855810584849218321506190308374455769774873978523457562368458071944119976267606456619980591633132600235956934254329514469226358094572300999002393241933736093529067131300646972403503497023094139650491160841973131001219861871193738099488027481817561247683339902895236303070383577718794304964965099784392848165330442814266553230605193179568158339728264431852989363863369495227577259824067108886925917408310811674549608062522688608384640542614782808502114681051632814219231546144767247087014246625029301248737055901118097138470553314151186830708034103852988052714579201582654889842659787455541118685698074903487665353158888763234402259006454055732729070656215061454071315157485710884012848739303557379243030007680362010428245478488327423510930659592920588639638512865041603558002817473108686345118704794614080448173720481314910429067782101196749754660402321663761840581525994748491455165858307732552767723218296604302901996508802121978722875155266598919328435067254538874067651643428508441547755191012888224350165372357791004764615564341957562837374925798563564450610314044573517170784952132920384880995042128902649465460493868487180414272765366548745548499825067468824377856381346651560179818497545900027705438193230251452484286333255156348414298839044690219880400481498792569888155864050786995644769606218089292966515013712727906162098556842244405504711111272751804626359293348993530477510109601736452737058389109124376286776681348030880691762728674283001647763704839854649387889386217478344002652093355365663027623199827953469148013789126367519781552366814993959469627407135988133295922284339770859779638643666959884004571289451444853011700653787468312881140538049119401511149625785874787208955495306077887019199727597386597299919020482105215348432832189629029439932791756396718059175646175660678861705616252952270452095334799445035514555385762321920281844296648570866405123371754789279481804866065893280618481622527775709136016792569138639682241564539485876249920149939621082382465679620945012038418984349314826253914432014825780810630131821238321131494862396389747898753357649438364605087212149185522920774068682380074551689282977923517359657088942003663796875811703643716996076014610534763187756757206195128892479165666327953588970882774867930361954940538017756695081781732314507062203877880743170357196499967495231071257418714824122889527488660505478926047465412249018807729101676413964723018494226737779361517562781241045329199941741264191075730244762822447504553055591962772851817458093078927969540946155287733301724978854446942139224868282946966669811214273301091470303721146957293720089925736939021274347116081170455193552112708048222073781390901317902249447712801616205196297570277770871790496871339574166920642139779590494224680212927232391616378224580405119574988382883424288855131980473884432054445724997846986564017211494522949473253867712163185783986845654969321088499723062109966026513945160085701200992695627823276021521437278786365931197529756629433002210198618402014899155254582141977940737126999991044351444703982603448597415509515780546797567169961255046539828424007247581366943974207059696019414850286066848899556251708554797799703628188262400172639964757941084431259980964607515694291192491645538830924213564099684164885765143352217528984229160720363437127294183449516880383123219157440578991263737834607339623878741699114008031809069903398341771949839371196924680619974732375713023566725352783325643663916709344846898631514981731724180330909459082069174251266502421939413699611854800698806329959209611864597267280691171197258394305992182790767631851333130711977551652739867573464829701970341619444544730847651540307094607859455883528819044192132153962378344223749028424087665708214124375804586820836543991518238120903173966999904337742655180723027217621948061321799733806035715009885697767187080511455791107756145804971309763376571577190890436672210557003976521925480042480840292136354215359325108040727402656171773201442443718050624812726557540285287352216240673665765382535990997960394578153921111097822010181929783401310705230807227542671123494400925247756638712211314977678467051629208030968897647476923202933993193215943097090918427260941143933962051623142873987911134490606176870363259673335791263464744414140267817749775781290284932993962311993507518877753361152567833093090881194182866792694173646351327478576521088257624566685203941205247953577318929201998109607787952931413235486357877435864269671473786086341127017302237868489744806772294254289769393874417129052792340629631086386457882329852631882014681422124016077264370889780210686782540830513690617973359833390604426044102336924933947208368195809719355285201150099304260602275554112025204340418451713366631944006139367919750620873157459709714487712231392725822414928529656106580014617706636606994348028087958034262855594375171638070513466800237344205111851680448529639833925182134837299082678986516133755473710607457474076249909422344567539118520968174529763057134744630406114996212128044517908749733230083194892307739544442302568767885532927838930493352883426606915666042184949374063605613914492922708380794200937999707547357279852495265462120644003605036371179071885670273106791030778321598091158930119637544033896768763456875055489043071614058146314375348722352998634097884799685460374673419140261091793857853261980128123047641666764452232533048658857869975021462881148342932872906109164393651877634596587940066119973992034090390143415729531319025035331876733323692186253957671080107665125054461881479188169340113069746517474801238036101363912287950281872694599756075549247516403030453314565156849543690901607380642648645961830280083059097689212575511731481773558166443797793344730046794661185031579564234367576676248106842251552058473102515597090216803308867017305770291160928957546239034606999491044389783185377701035479556134624702450125404120579555259967490992983408930162342634726843439893723938399060857270881898044686201781878693046251875456889689421108137206355310728308900140049938561947137002634958771699419776039194768121281393081958453663080809262281524615553845981615527636487490804834896099827467753523382964012407698048713673197659619105725357171733395803419953795699821353125123962105944708322537286770110714189299442898063950125022600212275367439818067520685838071616045301053506297833879906940971031021689238937455384336510181717344610945580789876213369478048921909917206055897996078002171138398835689044597130728060207743301491978181651120427425782652124086021715128851273901875730290400151090012168025275649060505326215189298173495079837048367835394947934328112286161350103652133315115272430129898384497275254564436024637667456292533389326584020607914960801623704770627730041936754386432313902959515851305090548051346850016496027027381900775778905794805177955100089283561996775883921902148214070066335765573400815472665431793092149743006559272628564632132561623219077790449635387806149832750271509700681018990524762546865035336487733306063735915436220298506279114213149882209953176924364890296517447920035373635369365407972480276343649518086231690304468473347701307289097180177986115325830634644628356820249188634177477114406603580524041117807467944578197572378655847634078590002726335065167440302518670821435837632140000620230622693732042530821971829426005804539003960283572751803238228890749380793600135055455740868651307235566717832122240887114486947906203171263233132144422745331490016730949778358600980825287818323935374061157724855353902360114648111492847308125028911933770929001230339133495027485931651626830476127829537857460252813287421649612425253687147743825583918476974529091634911883749029700605468739396819789642705671155608868760754493269379917534686979579688261590504160327997972442591034085201987779156886560910266600783600367820937196713804931417942998889383919091048072764076439201385948619968707363647035942979716899079790719378483773146155880491469048616249363853355097823030618108612639442017866186767025973321741615699509424763424943140693365225673998031057718759480115700232272500845017602543093611264313906825366529399452520180871884948091475193211640815109682953710870723694298777559462406713936270014153816274056172643735113282288371551658316997689572336633783567140724957692861946440817368749941019220124196318775469199639455552922323297222519633338317152434781829439159091914350014241183099642483742935688444704352476555937617170343825547884408073096027651416641003991004117484791952279717403406073708506419780565431558309917404617997717133097499062580411524622349670739761014738911925314878050304027336669621293448938245485131004668159459915537810252814784832676333343691443594917897903331029457851680084087690688960760188131935045489900042681094275522955151049287783443782521104639676886930471384854778393248311645692143767094365271715569358881644580278019665571909752055671266523398176082380879585844295485774729233741403536472813339946507851573168199029885975822404357709703637661471928778406428376880374918611380777158608710701602684737958013887372961311098285427482104768708256824647128502873665452084493028480912698507010040473185770617253823523325308199870342836330628218996682413986190095363615433024137137980228010298495695327017151911108578444531714829051407244439676146724989523934969467265927950373040302523444539158668517944132653448548464340336388210669630837231140183167226179560450119628992172007194954258616933638132174732044766445067078261194480678471418976254603168318294967564010715586710025449344495833634922289644443482954220402687114592738923952544557250667085593666608522865620767828918853685265107535835913106568070776694656806113961741234096527257334201596387948154020052933177936830498660308625624758860783137420886655445578948989382100681765269734083241969542668469370446162943752757513759561187037824797442337645946547160738252055831779215379715390748665504112937820252861839145497098499156622029843562243715043947883731896302454334801061457311364248647713360172383813730494011921302225704265927775692378530898664639692667886817189354127475827861052555465588028018977192961312828559735010452035781908936981601070877171816390017569297882114990896163311093528541361319096022785631753366413082721248510746826588784820786160111660448357053130838841257790518676089705503239282017662380766492894653372499551470669269901406210297045318216080600656670860401682817833576934619749539070838127131207056346787959997055785501728455105671442000188529433536895525306169723626371939638945351088361807327744593215738937287129035956876244432633664442404405344096589686998164756431705325415060018505245179410879378294672953317068192813767764084952857433388923164017700801585605379532004340900561414603785939435330469612041890544393101867005384406201059806874229173887088582562150387138147512940901084106934906991476052759400089269784548173778322284742496640797676841911039015107831302196183142223719467545312600170041906762045658104630763438203610855709092101711545041070077968427632657937536057780806366805982628673913616459182822718123450358592183776563387588640322296445165038952914188346451442781622838969357198599509260927589295336040271906995635799406945668080170419411661402209473046705546044294054342580186758105114989431684753829516097584221217395447555245894333352313850157558583278669951254877455482315177879914412856155793304926600359789985831938834387073557879531895711438264323549641883866370532508190499099915552474425310914880127282890198825434215296222333002939716207531785156528017939188882338899658908213303231555433998690228415279999040670131092986903206460013774493012513195556360411961501609510710116760808045215070415454809939903093757744483194781636398421826747058268969836581001808696409245671359029781923721595642788654160409883259490905830893770150523796817820180547728215345413599856424025512946064257751528375454517518062469355997078694658707862804360253919071952861518101210711133423178900215146084833402872416963698228964545253089701331805543829796899981051374738875509864507049215191303171011876904174455276790004399230984619498089242685058648579446880444132141051961649700917072668219048333105621322649411087149132682795537344065720031235090173579476833825834760310047776210733949471144113494500644611290888006374144432406205126654121930807182809120964572002290213506006935850172816600068929056154179112057520481379551988743396177139436769779665193750326809824541081748934501997038694898646720782540118840358953076279171969966481405920079497477138803018808583381281806382960432749328021022264831332867253944453874362316588129116995956790661679016374559211052404935610681689582903045560168536882578284789827889483190079822767316821933121177948827728090694491048142071793890527108410455142002256038954210609571086226662476527358204871700625098860408883645457803897107438373826833890760702583223491633475074086882494844208722864353334914730537504498682765555849313016698955366321861095965290914871724708052543605304639104524208769131078128781879585825654950486412438441579977244159654535304977072594642198697828217330762352509440449702466391333434667243821243550744271507179277062688396857291518211039743155383466319109708321346476795456360682175981880564096677202807772571686450183853817999821232521981479124735757968532540507509724384103861715072394800760143679435037983455366254355845874226997777521664219419155736588307075047705926111845922109293460118633467083033082846043683504671989826520713531400727955411954783023854658777018508623166170762978394984061477943869170416709935366646080082303330550055788942274411828264129430757560640324145663423680279325905585750998746929362613150356360172901758335939983509986611272814109896511997151050154537620088632373432919731703147038817964292201725428325047527842260793923271494370721826569685181077498872713657778957617389283449217659231293030150887383831556613614601535739599657009629143962755031029505213634231065012093993219250088939511678508312569762625893248347860054448204286022655796774174516100537088890614012560593638520420850892849744344181216425872086001950504838688777798047388761789173697047047518101018477940989290592390637675743394559094060850119293810056640792671492967235841832965521899106718082780916134203262860786236196377048023260407900823147171906036229685357819648315066974123420719037821872204448179225722724367026121929498241816258178973987412510737619980270732304022810203755727988821434496121511128798116803702992229731631933879984438587728693873383565339905143203563163047490711033448995350646285225666073741066458646155261996361677115430126728412916910298418319341912489382354124004366468868628841018885995277767269490661023981719863164361206039310845639745324937584877437820299383255747490329247553354876832563274578873418942616292803414706982572233452811021362990685632354660772319062245269375555758880962064939359053879359889569516023680222164558912983124922857717001907102043155265464304845728539754530390935768204158185444010630332198288801373991610406722849143047427892412396224646334203309820750606229895907349674771240879996440788676390371641807011061596365710559703105074263319222940038409513036881280312885326532497646686482497580748869862958880759087926735630416799865281327761511151756734414485892186216445592520637241951898375077493171382694903623062318997711259510162009340290511963976996645298952228633388765968175321363682383723308147656872499251937839161444185536588202305142444301950834416903882927072487735853582527560566000611399725793629759828341188906057891440920332387618211298572913546750448245873408380103676973250766381181152066924444251453169795826770522607798821437876864773042970809197211870613871635150408752734129816060983732422623984748120371992418191972257152199214591999914325095968868680487208602129650830438947216468388518809992928495357919828216282166290701470225844260131634060730010229197856308452805711547960368854349401214948291958403679496843317929193954555396724813864072206791002337836948888687477758147119303796799250271819435845236594522011068729148157947173786493815080462124961305661918598151589802989594312911655417417357067080513890507335398858327660661557053144845471925039785763370630569429608195913710729306408926979993385687268990277407803030245895332550824374527936048464313380338962507181546320218742196430746594859397154427732864981157448104872628830818888869988657100738200232361950053279957311468975300237946978786894098499225633139772859486440755397938137395758210289041276299754225052271736040925451432019386400531132568157313993767826998641932985986233266370455833861950196197722604682988727277474154974005424350968801861372346834307711286662391959570149541405364771835641756632380433078158768967011556713941068947088129566508702081384414231039710228547986726559916607321221925789955087869609990750028617083110592718735670868139547354361646281718843165459232533164632482955332575664830923883476354599332052935946976255707041792128629213088705119932428114285509512051528827932456214398783951048528466012502289689899917807373090387924272118470951867272697994552176186816711173298880432057976860411913129293722342483185123306351257362826463539347348088457558882103198134311599353263255602528208750349919009361689383300829133927003952838567289707720645540839975935457334543964628146418033287407576060412985257082237950533229704474020165026615574453756897603437817790849499946609519624863432808118171095944505200301096133474944946868395889123675914964420495690678212649154171535865845951831795727935197257022301124769459840639283142003744717945322710229988042581775962496273130832435586028569873374553950225456619812246317388689233786573863342596449035930703447755616199236125752233749110197590229034393725834291660351435206613241916819113184110977812689439770040781614268415338803302698638399812212472833459381177194781033162917207266118278009988429091272347897155153723305240825740069021524018341227028892448522085631250725891125875974891989103736854332721583823363996775028819783758818150298137044506366392863059410242717255556706045998964818963448323738709693204712385784930496318909050262995524678287806571147460839570504595165863495225798424636655169398186733866148988124307939034127019695724219592642823885038601535392173094164454417467382098395629158454351331584372187453102269784065088145100694068994676725667353655048088840938005241089375293334071175781633238316186913675669058723848776408125463258800625611433176210796025053074815156110397943527580184278442536780705092002742842142104751386841834491333302120617493404399782432681367766045650944857918030837244352823612137813315077384050374565829572240156022601340022434367072534822051475186574937522008769652801904861683838958217476418469185580577748075167712664769237960869063435430218938099676524038633704338387193462959989030191657776303690667438077169151316905011899443072039970623193311331195931549041637702004997905921688601645181653393855775134854951829294078782275650571280704258140551912587768222201845333676015526343203272459486704392622519841660532194396801719406537911943771578857354817020934108492993654876441887521909385320801482542033998644364885442728387150772540275693780356942497436776303958027153084252389423123755444251936146801619245211674966360575911259924027337795066274626611643084046104033012397185095895753926710931006036002453726109428112485137787084313440070976973802656064896983668696395637520208989977661046371587023155254409696858773485155803612318277230020380548058159586592178821783100765501701312494607059355856391879660955882908324798711857115897419200727854561539196959452038762645551281162409280646528128930179424913877656296043695001651587016587152480650266171364050479387241587998733850425923173679412101181382197805343009610252489456661986054545498633079538730686035718718994616808178950645833669454711880171240869173892094708768225259646490402308997692807801679961398075289409344114065744430444773856606967062662951261780605697862673582749590049069126352580095220809094045103329125042417139727701632612389734590806757720594335475308074829985873882043606519592012052728587905134554578390595945020952103301394618319487500733708529530340194523601853329999557919377645468044516410249047091565916948381772487279656101938700582262254750598216144521103792624849784508790286497939672730733499392603710957609505908556697005177841804316126457090190876986471099050576967639203629628809312040719057360688245301938958565853002457626799520560934996246382945757312338295583759786140298737294656615421943438480685334990979866386767332150220241024821651781354795411095195824365007584407777867238448798482023149138428608955324302877817249038072920480978723196364971281944111143762542773152477937290328559329739008598283705733400488718477320599888591504085982267988092533756163441771881516450651019882345061920645638120435126302132949419587194847852793883926676443065954337443315283366461696026002582736953352678941588039930658878165177705208284705259078395032530213924905519731682227292370350984965044296510098228109547829120689881926128530201950845051428922416601212739654925726724228156176234694801973658384010616364696556916966065537337135786370527761194986985448398732089787322711364520394867430632778075993731763573465254719858068870793793912312407950039763456017429115264680653170821787038774856257587944027135191927907907822569576909061253259739529945270033962189746622784813366400068868126826598511112655058941967240889905765974211140270833298191467289672747347010011639918845556795843971424495131633814097759926357364899815208295392427986046031496095726420868097870091940837406589950177438631616820778425770927559315834369350602274387156818760364806977442790596893117862682002422081160466094943789372560018747996543810953955317489752769822902342705551392405951380012965148040609701299435332775436418292198559339729425569323850331723633571934875358230506806097107683473004580218885359155018799957419029165557389209248758818883804877112830388724261665972846951341788466150749146897740836685102656028115149203157909805401004939458403154587386613299878911487946891950027856470925618431534388642138924205977772243665129274246568723844996108080016745634220152080910881178566681962814367925938925985132467612442402551851143438091743576822684887907791905585248379747552926018911475104375730346575326924011802807799911180171621514056317966462471114383796970676933852668467436017343633121313654749106697288161772541964731828305595142925001435900964373841340912368102257392538099500622992418359599561996493921396800253142697505532358870756369178926035585262779845355007714300915298612649075126616779556109869447596017871530277472779561231139858752797651100130337580306142565675870418419399364367701611809948626420373301412681926407061444108147405836806230889374032673473684546805518457983051270110127771970919531535735114626525063717508587106466479820282564205039341943751948113315256053116978591368539970267642455088161065849746400222097865437363161654645072672046018327499327829891550098029608552788081333873191354210319903718913366710306437842385684316007867953500453087695719579927470552268447729200680456640162962686366384533736575862327979685048688055046174452370156430838560015900374286954880692741250658171435690322503973031987503379406611953988999346607171280392701453026833798616823780971526485394638458533790420765354926056631188338304128428975760093454729127243926164975752497655832903971417071661704374916302659558184034189234560530570590113571622251785876894064188832275772231875242342224725201108468745713674683594413935816533437584398616436432535026093397320093536750072016284329838188185648717229570839514024059827171650390795442495409335779680966923160806036176167945546679329896044149257444655820707042046568200044671538272734926092605212842770934833357721345518947926127728497628602078550543186646490669619450541018670070152706311835895944051908546187342197699094239343024897412965774926403768572794338996359520237040898863281876840298639850882428538198350033450720979246240525792790976694254798209627875190031758555837561136962181526661580955673054854880452081427261270128878063421384960373561628810448140249747451339073056133632692307055094977356493916864897206795887941134895245290667205969104394919272101289615324422160458311645744666400810874334067251292016932916430414946366861345051795627095336657453455348837759276560225289728231886598487138755517948092856745755421733516369750158652379408188376694666319840954886554183655944656842362423386058563617020239491201085622377073989456224237065296614137526862100396248400326038324326913035074817066727685093384715143318495048503581769320983406169998426769708966520882368805095936035504731705817392124989561659177475542911193955380374277088533316667120708645824246637329492608614038092510188915865086083024029586802723595596012105625515822778596788763902222893911507325091464289481543909784740602144313527919776271830650087642232986554628149121524055935001595631709801590284340658068287691625380184714272296086419733753079524981726858521672949495183834637546654588598100024121538321808680904260909484819060639873135718163777937078548359088644615341276629891809587688010512244480227903478097953270757815281983517751552896788903927540524434088419351893457512105207108503973193836230546075159024487793000303899991359035837871152965856066553547507781486213563650985206853952253985183253689896896002947638531144886566111801699362563626053964995579848323133568727357135980294760074856296687545347225409051573723046115041550330077816067279171140546408860809120483530388658394303196466461818089364950871246352447659603855749976934874340092287648789775186713465494163898469469638570813750804335848134490478003155415824288394220659839068936590944938778491048667980381798345879220252990368745169311762574051701890749577232542835112734031282467179620685788804831847420957008590463276810048066909889259995782980258421368097170769554641399156854142519713099832909633950169454961607115485032569330376669043382078148071089727623298970076810300728506633834512313906601114847166739385353064906547492841181025448310161042905266730791902670813055796605643665645865485143161350159266098005391296651847354752558980261074849757877396761621694905706218834732773110350392154081518946840014089398177723618474318624662137987790203341770276697210059333809899018628306415247485116718707229243665310009371824441677633033687215428352272685975715829751052589713303073308207057523754635545734418176806175023917925962275360173654961248274660425382445344280437704348497672063589820776998207464427339495656224450704450794879110865634471901529285092967220684086741138746821532442673733191494287942089607290301778362039033725516153344353938469802946863627252710424140404030217110029455915587852939716401189168984504254856444144984131798239888617831001973595375273529474597377831352739109674868183856657181778399424758912220964701723373899263124841601219377929894067940673609378915045144475550448388729688551531618603024705794682911945361928073940290493548487812048322748285842221010770920894379745601921272254430370635166463462341451298037390704041992222618317171116821268484910851742676860894627545666030638016285614923446040841266607714857994303857874524892008184505059934971303244342162265694288959750908381177770754348686338533981582756726973640141790578512959360998388783081659874276505254444028241107181474612530163121646721123932550679465526082707384692635018010520202994837261933817847086493913315381774774121481650670965885418611724295512674473215826175330135677213107901898637581870934821088971563863608765732704400842583760683779807218018216660041700738429328525447963378117439957438817098279307940590557179948375156708862235818068695072291375242400202264908386954623837650066886829248909174116654348883492761052516412414309034960481713801685111494341705844634339262028643383176974472423611506459453544646135837166992387291600012322622768920883597108567097464078118997634491047155053370356827545339531511389071796570926570914942892537709844637228809106982523883364856849899283045501799362688956229439750908843037276945514232712158287945385793966253242985554534211617808923650399474837050361457294665204585400599819259340874970960738708251733302778301012397612028040115485276958448125020373769921730130311759558661739327850768278667630412015101928611778176782982880213752575888935175596854097863723840920821143763036109043220397491112776834760678306652002668289407277804959766550302871541793022062465734557624089479287880828116145787777447100936949854710643888429332488148508727007025077095661981363391073746721907002519373384014046290256869871081039273758826379390579628248385028413437761103227222916095668583969253124144179026377860253516118597960116190593089364148726531956398510779118650231621448873807896239841105907915863082449738372992210914733755832353005628659664259418017275500520959482268769941127757156727084872299700494179528765615978107149605993045391145704588862629317019193392191026822170040714322615229180164625072978281762982941126448170953751613750161640970087202396578821622356896300136732500009110994021804229668551377107047963847615828787766542616026386719696244235993501079332990765658908034908369191694627183833538135145497141912874115493054564880483035499201989491049059048786890057568189650570564562947295697566220234478417619394846455848035021379826378804018103336301300002792431605118078841200079983637918732004657713722258408473746436028087853063357020207600236648701032946528175189950892506757578374084025993750799517302478359504765127728402202821840510196814682382823931620832024636709318346921489627701014599301848389835652235794315673287578113514080093126182695568063170625762556833499753302324701236644057484871939212553144276838005453387535268990329514386166400719464366845961332706381722297265387804166459912195611051464581826618273423057289031692684121385758298289623610009228928560284806945686861644055663277621861576302587869210654143493307189865692745265848454726984183205188469810881541574601338780859436880534397725800233409793464033394932331521031437340046455602886010741028956794921271422550554595085784043156994992660893613218267545762142895214796350757925278090628252562438855553563659266389166611093453761685841963208586984635735033517403079875021874168977356460452140688964444566062016189824033752986298787555389715934010155242664643484052931860906615506097610669686889268496237233435476181855325329363162844253320689672101980589919325334483311277880548795161956780664043887345151731119119694022894518167799787204000966958256095218836615955651562595736418417781870250305615812440049629890146509998630132619430668537152962293339641102707438875466807904724749606998122937736859580037772655065634585988574527347678956841685748683880362867731140600375224670698196526720939546047665269969576192523860617754990430212169427586365643004561699805747630988316753957551109840448183729122543432326912950901073659170778478765318304460546744752550270583078411424648115992313912154585457758983578003116034738557468848293447518865139283195745235924847612723293778000319182122633788727907179586333755719896454655498128651809570948945858003034650592355410998429024081284325034540750570144711405753648315730356731441573262751529615362667503884185410149707124147746582807106093980083787647820290347534761997008464804619837628107228000975417572703049368636565701188780397906801585346601903140586850923726279035281475587362887576976810643407688828846916641184096248374949147118491898144626924678709617872887796594953771903494467681407612123388361097740990398283409908835753553888465070065929616993283856261969801900915575895880318576574008229007889953617196368735977368974620317653778274526934189440989112744578948309365913559817970363808510816902683239348035631136119712822873445995840384636712590506333556833016594532659258957787576606946796575595463283775824873107326899530935628237159135007641438223688493811331119605001773878874100405767651165209527927851888899126830732779815432750198274876824995953797627704331618278205503518801501454943023698355424954385981149361230505492532030455443230324825730253124189159405697874334646371891075861216685920547006219343054081584885933272682130238840335824377157912831683867528384119448136534157133270707805000110408009396502441807937137887041982041422095791695678141696718459072881013768139680958274534904197051847565078672908701823108436712101556006566441177488835331634039548026807827061206373718873502525422315209428174473670874260474052521014246239879051993208219990518610389320183710182371139004991738602071189703600469952733212757304030231409314434302839456331069412600560803606516535081434804050597483328454291092727235329959603174064785769995479508689369377034690636607797133366452605401109461831754403545121291334599584423570731688618537947415102554747351863609821942682455265214654205668539446468400263491328759868140173885754292711823131525343226786724091219485555479073930495435723912797318309253042167813269146416403470622913908244916846163819525756835726668595723670671009286982943861610585553138099675983225012478587284610796728797942530889444624157656038153782895725313111529243088540401953326471092790364403615856971289095224614754072065008637339064161539051888303647730462428502258759838927612715921218917896533772333101463867592685082083580493879259800815893158378030751545834661116942045966108734341856603256426185655144374148482268954469273785545832487302296221789858505160499156315545866457719236432100945251998797736768342043169341176717652456723286690373366110007854944338691306617451423534654703776196093326449377204372630697792006155400641338069061052045394877431513349266317194688532421437792188359497409695144863519992921736318836243425308413090259720706937506226390335035459431525552832093892583830013977691527509123014082174495926436493889708370928706946591627957064966945502460776347905684789079566585249150869483436496218341342852720526510802289297602139232796129299689067117320098777016735989347800835586408195240860317253377429845102160207434945872066662008857193185367610325926848392463704084396843425201946747521733976815469058319801918178546988883329618965647377582812826803526297035367997562583202748254941525370167326310263519977935650095946482948919368823344741163897753760327686689048524699982105738524678237542945242656034795238943852954569051673578942546347179765034674257915009344076603763958348095256330483829420253991535381688861201602107262179771127595742362869768638982600839750854721887135700192866532669628908539473709066250663571163557421600876422501449511367388790314193458011975469162933252208862835200274317910509110471520206015473395906531309148796236740423548291150652230853653920776084091120656106464432651441542135957142082579154385474362651390491859723709966111325285587474670183994970401828039037103021675429483086310261600598736987195618364217526161096521683512201597042658882621714995462802091985079190243746493111675689247638302006579372658094686702973579589650130502915886871097100835432007322625148913978914082288371395769040205322892087112934999016157895154949934617138760688316578463817843834200622322418679177524608238218786667582793117742822049975540430664078340319081501175725284448570488992607470105743710479925168717597003336295639007843998280719885168332720675097994923095574522590318885001257950598993068476477258296094940112256778371975089987845004685356009603149417547444829281728936412810598222955245965831784459137639732024907610900311657628160675849089784155401408008258051770490179854876940475729498834063762309082393480205564662272296085407724108991948169735890975637897918141004842950293190524007241821238897288035524799267026353911628656812761744254967833642778761366863915582864360677175361405468365457250858718183179126877092470071719997224907875656869050066747308823959452040292842212364445304727831506948298061309829922322653852204359045150104764788701743097083077205340324914390206775775017147360701533307748126285507808193917916833560630718771581696403963387976765312362339136445442537622223570289544376214785479871520513409940694923521748213275047601008666684699677002985546484152631899421025319549443591953975532955858561545410462362695506920107422165460020667887424246731834903877621636649603485834248747987341132963650986444114488807049960416403175135399842968971141785138748682490546545876910146304427725628107517498182676492270365819640810559526508405530336670429534032260148958784996986237355618727666476795678710763823560814148888831833919753595335937381221322164421018757995230869492370958210560296304724627157770789828935860135947721264862714196801025393493720384809461055897356397155362904523219286948708829878876034053976327137755584081176564811453514623686604668338804268663684050170387918255870399438766445450725708292669875272708658263217377184158444557978593564766259732849693392936393998995596380226198755384515475897336259024753146745136908073880480620848957773211472907950538712245712877730272469057023824013304889694926063527326247124747079370909345967849377249445743919054123863244170179345320144206512652429688185556632299888010430294218277029775336253450882717225560162519767534573873255347050178264095636829785860735996662723590145353342496876277856186755952351888185769808736232982802787319713252444360486934276450635676780720879596270039229034996240055835952303518582722590967694470856686636714538324158229422851372399467926892982624791508085321008488104448701018180838682044186288393316987518505232153994687719442169649980857824018543226610823941948473664118827246160706999332835919504877970880224171033602974951577311517263842387678466041432772457044550215078910532211122370789351897771932807292914495732792810084512423588834094898963790495998452292834946071271432748456974127930648598156019788367762799270268268683170596643949994790342240303797500556630563142689683159687592756143507401120092262574394244605687344773443240836381825949916231959932841619629036959582146593175220131269280257835330839506939176553979414822338965460384431556379976377061727769998690876377706500377230966650783521913451041883647966494164275067247264890554129934150505781594607933650522094460279969929689644474543820121985095327657508341112568042979443147884428014996587517854481424440185355855192865454340157827469197340862808188732877145803041998503140010963103644325152436483321356710619456559682092944995187811358409502799674037579819917160440741100415863814852882699369191529033814723044114580253531857466189751461700400923725308749279063747528955702940963504650093493649178016907599987193561060162903363194254735049460706644453746978972585603064768202824313790519788708259888807128427641738501154002720782823880417939737570422784658267077608467777328988281437135395928471699838505456931256626289376997651767429133879912677591387863052941900310924902640837954234852679789056344712785538686026375945021668799089560462701992714539697659626369969425797646096223132006774412774559548064844847935198638954157616967428343018932538655930689412532155822110171305870641067121006540435585591266005086562802833528217987249107108702333286387336889649468849288897039615658800250750798470559407124025613049679074771915229797210245260567469773226972787749629250857063915743746693436955515156861749790247010424513382840843116922836684461823449229968078743202677770432190880287736777257007579979115270410221344896629064559936517602600431219353789266303675382299229596083624904202774536700589917152371645642259711128149342856814244782335683832278261838612119321797108274397483283959260567686100634333180317901746797436127231608994296131432414729897261401151343385965418921651455886951956862347500488743743975203195176367218338620440552632964583454613621232629914333243001180378096491260380328164505641140476292114275573638230285555024391685373084153576948415127347469002469334125796699495494250715603296885925484976925725316574710928360583027201925332802734824648874479226692692973869355056736532703546430171678638905635406469820382692813017213413756040419371784964886616805636819361532971550128257045944327240166073404076576467860718542412607463591000339455663660611451327715289211247621187801592424188749901803424194968084726205958437773530138990911478198430949051800762037081448360656290487437924112313555381503694042737268575285783795278922634921394484734539171378064669456498739790437260507727445176173598985989760804658336480147870830232183559410299828010913417590970933044687637063292646315064002517567640585805244517403432067799870651776751060370424247722813893775222764213978225277578052332040040795179471298449448688520102163596601851349495433969980469559275663312213792604134002229987390845601719018384220418722691526387526854819203846090419009009862835731469825114569298153237105521785790937144439127548605638811003742319536837823443576126660243109519801749386432939427976852786847658712981152028009556148975801001925193847353196087989486885464509247159638120661926494525529686201877606833349929064998231890741743540837328276999418975618898801367296638755709379644145301037845653468198654559962501242945442567258225323736154046732213138424172463619849310317769290228502530099604895809125465573417306208365915525601083939696619344899924501361388134291432165483380202567397892420908433598525161844693177044332288082252264870629687538802357174056161204621326261221310106142274197902086790603128120772886114217285729822333492370747580641282374914027164326868611945083559770867119846497992239367192710289563217111673078491817071292592504132393588870279054642333729598418720764195537548336583839146028641695765628264656146893968571958501595721265307185773227104686421239475666377274754266023468444914921055012433041870222147111840739551189837052696522242266527658970468923685164266198018623835670733788509762012122438817296392456385038134012475495099294226926054538576222084811841295471111223365805620415845359475737525338812112270448540391140951333332711262374361062358627645896400412719547138661172204970936921672306597605393383717391021568077187781288786585562549776073408378219444712558803704219470350385593477142571905708541657373085185723342655444673106363724342796741449167084354867464812653437294109336566082792682512630003425305324355294786826826860650089851158219496477894356408215036884080035762565648199178430272382489731183582899997193512019810587522664961215761886523720202351341035331137595320203702726557066926882719761601236553273564585096455747754192088551483494264443137461902670095500929326038838798576727237398053880048791906728982745551491551900663446922230487260663780741890300974922219975474065399488381553953711999322512421288519737935997128599425269242403811596642561328501101850611996923215861019278436927853952660637251751753024292098281219235627438466524996033524423293979338970802333308927343935743163170549810424060904072335289464077576134057556114115958693637790861447385316980750551084120181908667048585091489429761045801628586264183946319408759174874734425567113559652151008157972641568637376885725144344591587375111237275332614808678274472477795124639824357533787446416300845216867260604757906317656958514498569163048964265174266140627503194057332695251160959493096745742464294052091314538062170226403166466334349801975757945432941938811109311709969317823418645289156834246960227350159439785297951873468361374248850130853113785757374459239179376462220624112227267180193544055775128034465046611675544570465239602844161938934759453577549367150285647949274078179630712571258161647724587952035358695506764059855261714645310049400434755423849781053754342640419652149544660896298206096517568626461759992522250468207253870692290098754691267313976363519883096602498004991809462187323695402006465797230341846744943921348048632970809951396647696382334601827733485775750982305782325887359777105031142325082343255675571193837342738012741256953723563827298903983239942303634477140403330949797915395814958310184823413513731669778093312660329048630956612799918101929480366006869955752818929930351501230635151524221227798713176333960816855664789487002372489171223242495134836791406709446970860754765710784676303086130539175556925367847919175176064426449650846088382833261890908221838354117999468908511555565233763874822842566207185728435570572422422430104010773413492937096705397888604820157532640740041936031174431457560995479436668127261567464930028029279622243267244952541951710284090422761966413127196382664046321576527154367227151734123072122517121488916737507348903009058310727086477861840627059498121974082901402308492043321186399510285545095897213388075764204612160997804919768026180957712248577114617247376343550037188277646306168123258415186259766105733880296150955212213839437025161371266748981510475011693480940520278045802387651706582821666846788880110580212154707676320596868477377892398444686782061182895042053752487024827126468033576137907850223672704903154374773558108671813187793255574154246586382003155358314623764347685656640214640035617819573442197511768271102458965608204077400323680620423055628561390939936081291674865270908093249133413671283063705873321762667424448929990724179934088073239795913072558410533408140429998022931032695660509443827529969721251680779795997303087545813322395337657425411731307216148475061535987890425386989676950441713531992892189764236049558825696693562308267055935982522174815522402096509274508060084658638015616342894612549316604222664268798838351779464554123854389528719388394136452091977535973425672307093373094135700024611719515274286615620822475794205932461779494540622714617820050877411987320231696482777635517836620844539589562476107279998441962217325547999400510155815403178671837085293951364457004293351485343110881529220547731098877021798296130874483483648191433627555383669364900370592498633369449711264757558385026348945878988624565524352854728637110878879829910275643789115727653489243388344669588380592286613190914765107891687040171173924535201970913468416462355237638728517059082705555154883007624390520501854573346788602758224920455543960584142364381923480885487055789894407191742239467219394590805115144571459423618709194604542250197806786722811086812867923915023032088917883348496334701888650261967830510617231348936996697649970734750197367803061828134504865589872243553283489975413285807031140920406557738998357782571886335118830767310078764085401877329508438681614951593454222320649866602550052767870351426962888559240882208413653299790733202467190323117403179203388589668412056598055435333691975783366326571708010278327887012095883902098577875192578417539410927233146503194984240534180328027388610326597075184724560729323680255625132644002904314020525448859946314007725732725582023894287742881166594208994659808823055383552684364113341719194688955887678266340279118875816528552678309857056653816935397558376160110509668888724124571861609714723528865707242698367646880336591157535170664045724127092145470449983482352586063755915446322548145133717116497044506897222594194910469876347124406459282846007427128841883835417833424855983611251115684966897585910187581062090176896923794795486344580438950075270548319182249545995212196590794784699206597565238099018034438561163171531729839574163096581376696508797325883318269200754481133941511409268925174488435134263546643928783070743991860581359891190646412782493504541864934548440095777661607422999507131090350198747740240015132228954820734936352538733307366132067685976685887212707868344076714593602975017500830942945890950998122140869738157854088513061171810982038148339248761923977396052255858919300470098082768757065602917107724333186961840319372002914476413270928370457960952251099692849766455264447976715909262577218210005795837598480880853537249782733234254839057255659294245333297608929170160449571921825144282658534728288847780413359006089320266063717502510626500019542418150451069032837509299448608914587209038399743327036368172256951649784389875773040195673066364176932846150565982742257426015106015601870393867736677952884438891386428903700525421475884990605688119336725846042545424155348623542148176241036780766985948784611044724955949639347569192097579894224120247647027588882905838885631083537537508467874226788777612758430635632015102069506539456545449708353113658284266053513768357213689637507666623865373902326650522692466604414189944373797722595540853487125986188636796666618210728048434439998553308101124482874830382675851284724718670844664283169025841054450563467658683167455378606024422275096358543948776533064857349046686068751624716246546596750067142528655427748931698969171303802178956370146758358070518361581957100746170542350751520499991686074368210916694984137415000704648524356563231152833949667689156442260223033261153965054236728073305240631026393748213670150855581202187147583917063161810162356088896070681424056235137241662616538557436057076239548134245467995713037387868122499697454681179032767357311843184722614203217202073387691934977626319644448327944716804809799482902477064294849149484420016526129431727898263081862749036677304773703465920643314376583064195751280158941131591910043987763016226167400201678204361745280118069522318481951715809303974648846705840208009425543588190367312366011497073677871753529018410516498559487112552622772795027646264290270427667862642879674503019793389409997368420306981685188169093138621314413893126836797102137678241991967599605467986972823912587346332328294466346042719385822495479767623047487413354492628213009814960014647162643991300014614661524469982062001741309493626003456975592086967699007278279525551022592628204309627093514636640369037198313785617520896329239014189987756229646736156369024142671144219146030710651378882545441300072861122197054614870910073754059792714422625407851033944907631485516480995559259954828540214875128643723169744294511681372473344033804484515496471888328789300730930613814271791740681911452947985866148741220529865898382391911380461685148705102766901612927803064987233442024154154993920994549185950763873909550695142809844393619621037415808241372126417535790961625652201319658354791546132063690620230179719357139563547179206280498951725915770424930969218663591417137390880443117055248018111376639586104980898091867609905776794979261876643764166391414913503928401401160169460645093340136191649340698567325934360264050679800017287444052441156832907881834051485422491380641497157948479526996583811969585188952628300427658980328849446152879692817472388983061909109826579975570954606270114999459448913233632428956340082956500850686858118987262893416764699243707392009776907527259820837158280799546719428484046895574186733118250963414265753284150567695578702857623577658799838554529510212729195200057869264971198607557252964050950004491702646091351981805865000313686122625018170478851133220464173825443933000510817360361112611178832324654198040661458475765891338175166592896682319763009021905900122048150977872658283961269537938153325361211509219955289153709533718993689928462918272401570717708485218663192955251933453267191546691836467153036571911210304544243843112333541428700917789794194928527722239089568360163837810106994544432108575310930247404751736811921796503360692626765113655186542316771999117563045196394472593946896485050779483520993949125871995966624230277104916207347228419081688108250855631988561403706925326318703921606477247948503974425900471109317021850703541216241005918906325101032072695792253634491448108522443233475822959297711671688707699705186380640761567611788608670116722015446403512009811962235130241017214297979913074326032454641451650611458009618804452528064892828921064372643452434546255561541143162424848482186876085741272405515813555870953123852705263950774462552850382092525615234964959234400621831680037652230369748017356957216120628968333905352646863088442493844955658396118334101130288199181264433763124593225593107166734632001168267549139462643490031372822579019778829669858412124060885732006388475545263721266771864217468076556074972505650150583773435224186575614784052673617333069184391135279299166476806125745169098612515318160153887313645640228214171532220538729778810021266912663155203017373768978860067529180243627336592910375403993532449329136535838924472001077888900674426854464173362612798544465240795747799578083603349004732027903850020777968342935114911027446438278894167201422118269303005251011209102516226321285184716208398172679280589968749428789548740184439474404866020443917797636598787904481962390358234149644857529156429402103235331693739146371838992426140321583098384615743833339169470396447184496944308279408005476597440952401944859423830085698854027484266656699318183450425497603386510548728917046149477568959856635666456795095362544311998861629276252708041513833980190852028800377012321786788086368693087687157951746713088194221372300331764246834402522468311577890892684360445294150056248253868672279890055763425523961484226833216430250475758357745516851695792302592838205047658964019690394107274524133296410533905771584196627749201778523363854332360379239179190380995992629333715812055799427951711364320379611168475986945046239036663682295254409490876834756655871948642623769374258044908419778344783477766469460024644231691314974921670974099681685351532304228845823383864432171172195029708341682960275598122864324697702502827990389757144241563610315505676686457158189084979865562320853541350733603355797351744270499786693900632540879677340073448948663507569334175160141690531998786641224234573898096728236764866631487224594893349568741726315339512117320226696551866995962391653601786688487863871683710908677961609492792748773954865801931937781916415639373822013434891910298998548618565275245683683183545128221932998138846615933297123872293059302212370103357800878161434490224426460533538990767354247706152885220591516646013846077800924507094211262972071441113729384303573034034473765064577132078429181979781941825981143372868854076083071877748086551481541116640397366237897247672097489011025321904572483184291286490604983478170282767943737077215992365705426187618771291344792552887926026945559681145236635364666199624446938218122842184527517599209711545377222690154889269037662633113986771456627128301048635269287151355341286675430765057557904598803613145347784993922847125038969669238667281902177384840623667361209232084844093925020726502180940064152289269071262928611221255982134839280762245255062487319493845057593448758231260848275278426487248853791980980623881523466309775844857862615029282798898430815619182683545424953744226300567939179351204965746087989515273204303170317122174901748801778817746322421801169410753650828964958016073184848269293469909096793714935598342302172420877778987029533706014791747218920318500468936769042750044377203509403889235275555625092271907487343197970521252623312852444270319798515597814614943630345798622705227305739656698629229362289407493859000055704137472968837795210375348191306884136245446868796142789664137860132154749665720074865898812177767102487396304402402327521748128268824397605087721930890928237145992656694284597230721491363845016560154607995084729073520095564477476257071717690639750888273878426801553967178224488411628126942784918779113113056636352034497560124726451944981702920717674966831683608939177124032599513443390033040078703734778302517167116402159386460155437728705991935319800432547835876954002680069406382252649353366438594106729949260867799909056650063008812912310471259758745654823947743435280837891099955915840502930784890778862840337385822252371029675313498041436986557167783997960088431707910985725412660824210408887855167548891467083606456483107383875066363868836591981671600127217939769620429426934889565976347272803568081467870469989934505930822799076146188668276557529370850744859717657583510755016618561866440650492597114641849947838534920810729678015695885909288898348438932209502909429218236235910953770256526235961489844929555568360533769690506941672649950510515068494875739262884930813769338310345541665460420270758371897619152790471547783215200162625921794179325133240315304916519945448664312620725316352921617373272223241934561325719364739042344472621568497968104688724882704404301672486720734161351818231212375324415276993364790814693293591668704764680149416720920537067640281503792637420348592755730909272825681971755670539685592691103397636388242774624893741570194288415249019263763187680263350756526676059517822093055211450694677981496661664138879687079379862850562505026910341544339585336019399577227861804201480451614829366713920991772868951975683099398906618870393824424705026889404248585049431745743296099717144470298089197831964004859708204388479630516643033724032031631144752649873075278243473917052654244572021371663168390245923707102933620039743209483861770480998054923869878770144480311948381048310124891873276215015117409568949417165711910473185048818778661571293663154063746666402632266857444190985460167443146165831943607235873867722441437798809275195173759726636397064199637298732035944568159867797804012146587545799020837071256076300463434801952288430216490242962976784569980647932036428533074810007906594289446975280372984750064569334029999681786340475557416988870361783353219259983018111384964811483173481728844200164537033333786598069363860610051583818288477101382192826348329063204636925352451472600938771038553744429867730950247284297421577780870667788968305085685915032136694601321742124244828331497060879438931899923222701380846393757665290942033732696889308128186905838938440820992814565380200110034573887134021163641126201338589858788536386236066034027556501733302434451052167631189330116092651577548972362023790399309808068575830624974868212746783537219939167522292386597618304149831845912164426745094357527814724467569253042989752910108688426641253046889470477097302980325942089701732737949329458146988199180671485144983081742299834325425538705705922990622394171899017415245038775716170831941235564188958053236300371380904123488665786171768703769190310624507831192931592765466867964319555226062925754026531830827469906102312695239595556891522566274297825757376043010594016274031614754041694135914991033106510979006831751235436756193445744228836102543774027646553618979720423701321156554851311240609003373071029796253612647058420966889252516565640179839862865747928107127232567903421121247167741887364667655136559869933775103747237569961334721695349207675401774529726225633996746155675874831840161816492883238180351522274059254072070748993527269453672175752310151172739051933512436968856525506166654502718078637039442599264423451940852211443246475186623603805268508024433664644902458992213733554747832841996196290019619403368950089826229280174558512704468058182476753011202634881125872338363085982072048675455038726574586099678236948605382439242876432678539427945678475981366827185326708134821755156486707605103651224779017148199535157431205307188041581635534645654594352318533948260294937218574581587910059939344210308664357585070629391364510605068258916481503252059448719862997828126766027204292047847237009132690114042385202100611763305921197929290855553494438768047950436927309588454488363872986893658148768754081061510866628642946576773993663474242649099500297971310180647070056071922268362624957571429517927595950049366186259079060209281555951834776608276505560103542910469345152518900683997518404094004195498922073668947373297781323354027206523447479990572781631877975372473880150659453711901932320288498406952971325918203853884400985870247242628423274745223420123805782465537818897856965454948175832224791662087845259716773288317687738878748797970732043745928904181526083184121564455551105059591442431874109157455770684352277013873105796829593237439148733453570560292099451585492911741305811192927530998821627053420697983447345877217648519738201149271784634915262320310628105111661019487737404236395601185802288091256093971664782224868825939166609897285386980905520204149581321967298109209166911205764924685793969846962838607345581760466695649448305107055735476692690886954029898723932047496617877178780670717841709091601200230179317471753442452254009631312936634078022705738208075571139104616803193018014287305987622136744285529211229230856246057058999659640364057704611178022644474490910282154903632311260089575924363129099508400816667381096451406031967082989993161759198112517704885734341227140324253622157271014018264661223806146822129913899384635095486462014657133109080483607295176931876505979581621078474657423242513163405844992608776686180685852698326051180030499076299922188090078528907161877947112853205687260307418179295843661798967821132643974489181938693698463892283355268666912891040744006340483784370247843713169828064711252447565910125877655937077827620544187223141301957862539754681597453325472629979361960231326780732338665577874986167108306084974953787825128106676000522196413526448095030548461764628892999144233919621737376302053139699051763572993657136680425195989268428594687051229551737398414929245729743887583947290730249619185607616650601785919207508577323119822120383519834780150990418066883335386127003747118160498526840394127153493314240154546849933939428866787436292021172279752573281005826448276088049061175545273069701131861003002012141170460959267424958144733389821803397908369194852398395312531125362859903686319528054178804754702421162308722993712017799332432465268322075159251067719786120666732637997680116130540209780478448801399356889650546164018611761349065147045758038169004498115102264494586049080437664640781833475207897156823778290067817199154436286457591757983311411896683295583681939218598452054613651540057962957827444319179544952803606286142186151221526298218427190233764712694000355039360054585332332838881036111438848191728664981077311734525756845987176000518925411578011895351395383026761846800006545971170501867548028344954286991299943620521924830905567584808805089873643104347987648148660387168910608712993160788975029681473909282499837904791176473175830367336484888068827380909354398427033448558942584199464042739493501791551997229176551661206390372066200959899743132045291888310779879574331972350869747564599167387428638918904267598912148978653007448412539886372474087998657739891777165744802719888317238982607653616369191120878171232514562330196385995416058950716625501990647705556282922280779168139954657802116139705200618856936128468394666513670281925966632029068733015763670221149903494525275932150625733948844970675302327540893646200965200213342810242900652466925943690589443592643326630633562250755505835841469523837774448271693326445966493063773202397086779806679292661064006941697023672378788244089956657016703338830234290636228376591143067333613089927644575172905746514950534385144335515324973036126976967735796284466868484740378101693224002606910876986629348332299561952017814244654801294645807465130082112448220619803036151455029923465068582979575720575909971994405640831326349655582396998801285329751645989790430289208113604170580461233535817642891610702159640839893582549163836475464923327167451273274244827610801240797667898294673682786109644887067146862459107047132090630228484079540997042584123570817299771168069793782143270124165391826379069626951642245116628993039663327351790436783899996831687049837525996579597725727721350591960999995314580299943870559983494429860123379058070585371855496399628564387591152344556759741873766709549002904518728984903148694475758712058282700229326221488962003248516786238324611771476583428945562798292203723628733770657339378092639914380852127330295726053373656668676484394599077374488523617615379703498706217444706595372934737227154697247822322962309573463821785684573599500256663936722147945640440209353555128076904967675410432957777010751028221108683559645362880521980143129751785168697225321168710914534809835327843123220442401328041169313128299909853344327825012845525087724469502470770246085981968918056170165967846878384490196808169823988308073662157524686402046810504075877952973294929723570468772826714476032593687059019804608262053203146508777563582116812467839907558578881870852196250592650822075657189912839844679690321090042727318313490772151223038384260018405394627782267884746458499080947869084736234983913973563813101216626001954770887210484540429690289443737777250102377716878141671748085475073740350845415175864887969938250301054273407812089078663988376846536983591293201618107516272867922090030933272754689670784304344811270197099190017738613257845113184853748949529530455675625957581702653520022053405353840599174229756263832889779471962531571418630170621958474786035474151838720240422125285176120358079608565031961091012924313328776341177793586720753678301495702939188407686247386732277739198093256163737832818950546064217895006538739984777245663915957007996181400766075407366013876707941372152112414724280441133047393588102155131997148202598388903154978189854794151573672079604898789856294804400142235638850230787365280181004535586788436240206381640372075551103811381085512180120401922956079186397489291893137391922105920223203487993854711416578354480322368710059695421122052740838287225309679649820379216982595617209387848818051139713346307593281338739467188244798740760571425530966281223114202790219544156089902661895827490065105726927243941847305756778602433840582754402770169846578708920036802265593742035712256393151454623064436141612064022355505504122359357992798386631190700380572033429819266797535292408888510852228900860572333225187188993955676326944595232431156001773439516444599539664198250046595872573653225603342632923124216713253337234151817650956404933759793492296426550337759824503071862660876691896481126934845279234455022602052750679456984800352234657381203374086614142954651335310020899094441844206378913096416442716536974910102553737293048658733630087316650569579514050070113953421499727982664440843021142506731296621208058129306897715096479832073474453388528960250501404105257877171028263964698242366265414717462404843356742476874158602531756425937084995325310752867331536312417220015632886955900454739262735061382928364135844761298479135801218850264793380048969248233001511442614326161113450341427534598014797951971337797498306596636588568827453059500970324052004880045966946721121721707015010160768552611888150132610981515675544860949049575209154907864401080434737766206392509430142753401916159668176656818148968236427985605890211496628974299827417177813821447881092919536109116933498277548149075309965056234152905342614614557668620866171882929706928673151157194254912946296659555865130240127574518842527951564250559840272393607576288758619122340629148425904926420823914575481146112975362915437539986054932732810233530637335263038373891234489032072185829756725919204948386234097817317781039622641697453313995116528559627970140671247354594053678032639104386802835062013729340779681733131613148371969468349307593533031329942905734470331483215325084491169413285590794751640049731278034029759337382603611833835843012008258363530339291991212017022103834493102923266445020267108062637626888460994897547808031615180396653696278225420278251966524706950597142279418963475374286864215689817451945617789348249529602336025880550821681550100799841385163002399806538563756633300722748114704463835283139967855322797279521191991457611283914219957120801511269858387208658011484904505253540512927225261187771500011214022621979342253868079720500359899859615211304255719084272189231417285102259346897191846165771241158931312295652767658620778655283822369533640035211118186452716705735507830247622616521421142544042179892670260893555722886430495684732129945765428347862476469899349935842324860134246018130650153347728237039037496491291731446123830036339616782315147784991889007640526801093385072937555722130294901325053670227788153840115087076764587100716942167659319916055182573689727103610801696725449242053353083564011361287980634495074274645852491312273301072519805710420532410226772241937420042570577463225246113466073703687203338091004507881976649882275195374760547671308192548093903228887521022247153622681107308718649451212099173769294671397197482043978935049767971135146560536777535173055325922685776046384771790110169709053972504382712112097776201694603992102235491159133156537338833781134724111480613414432122959311411992980159490940665652890513545124188110531429262002091581508067157049152418152454874262093689490416327933920140357970029952114902364626419777963714195858282582982198492859787920053583435825893578030805134296595195084357628341374223809420487065824628873089965952157489122518088014497900886641017940144202597710404407919831393456304017119886721451387362053583663331322241309551210378032915561237096126180829866379889502944138594521184718321215736649402889606316758629493631181679562066722174780472690754036185523357024090558808936162103493791088185264420821373800453360899487822720921396354048813622584342119118132630608887082016930757534938238177966497057978167758639520645926426158633579610772995338171459071374114984775955952206644984132131638134833126191546455482765287393195384882543808492768748691444835906383342221807936254515090238297621400692003358355300792484603203525300754692930413934165202734267986635406374905537660016127023124659549840980794624907317953489608333076301833683341152761143783214018188078684686291077655056880818695689408737946454725413375898666927256093166732494578010807574816849546706010163986964439331252389920058684664239582621016490565208796829975325321775011476738902234225959430857819362607836327815744674051690473704215956319500229880236505908300286342447238039085164646995764411958537101928461594647489414225011303993287123670400622175376890879434865737462467898895139299690562032993297614957137300625548277385239642512053647265794549512559896463808503816346273990233274715514998226435094442094546335613030229193976043577530770623410506450843319116378098502193501349647585881242239265608313456958788061806307270247416007432284111143970768101554855759422109589522376354673242148399138538126333308114485739866382017218874745037806062972629186069821867811842447012187953229118415718971362469316958738081915042508025584156039997018189963885676845978180280281117218282746043675582713725837554865798560399898348102758045580345965288392303655803542643681197504551659991753603355731540896952708378693020482831536347767107038109760417019267117851380043734537530117113892290839107999638321610384547220824795859787120941302854447169300594931346954759300577946949151596573548856498594242593307278567718056887973959574826836138948680598653447566391676651477803582720152454100725100235326294037006387277659528230528472739742661008225855924188495563741749425137899713072498054977670567894766804196856529596623490147382514326032441146703194671330859740123120892777757288016382981967183999782536262992573926989603300011173517246035309625482852444119133009906156572771479556597486282718852261583393321771847537628752269719066832896036566959651459693382960605617734019051304584559705534813636653704870220907759795563371402761245879200620621338590465778465784397482851232984544068059908508912947758800936804964237619293431736119363649554534007424462724361841924073059500172473879895875384285949528495839986751004351757399034835270217952574908493825584736954284988801644101193524923459811290023951424170052158052092676872641346473851235988282880882830815695684380105090820011561268160724161092449714283018342428557653913371149903605825879829312729874261399409428009382401874686981307617099355126028565262707539231835190263199065776759319184620862794141464725065645609882318920851968636785023613268747868261196870684000018352578262014432709416453485570523456509580239711316118016031506215926723390712209680430170900211083428561371240930980294146537259184409024915340433961101844546352679820257640274394750745838787385531457689865419369036776769684320793111574071416281005973440791571804779242900110893982690027958249520123886071219258138083820920018157186744761290981713504851790070446754304568333129163100682837888627915774770990415751282378407225161050762780945408164059362402993969090488070287360639214145591033676767715721789311877417073272416191857064333913619660881194300202514030192376895904489140264328072567299939333380555867866885657209534825902910659543404169860427597561842608592060117712786944079467920689927545883928997846743254716455041845511970934166347017556756300116416311772643579638968174445598757456193603849814325237853651108025593936450151965976794442961556364876352699653955338983149421070717042449288854026393694368474041162141177175972663931019840491798698693643275431794865455308948471516117062068596150524687538825051013952193451127981982974851884415959710617435972742744616169257823826570357500783066964491616749610485290117543596232012828732379433089728350626103874280279310166385064366539562081062773669646072991958615848141821299428112460449814162554916246036637172323386009644389790566577803870455253396819629744162980102550018392852302734396386547925502840261416891585064728875324766053982470211160011012724846392559287714948695045971484334188500815305945857268808229400582364939264580224594130584842317218465892186659264058677861673108287660641886560076258210286614313663042430277057274196154261159148852683016993267286423950572920816516730302647681625897315402523723844806520337184451228189358565734646248014838152282531079492646081183518836832853951008765875172899430212310509880552238320756408770477198460313082372240630477052763594941076290805723780432582704095303087574188315486306226855964829592101099164532264283310984832028233455823012877413007784406918258391438385625970476098046628344106784944718067830238500316556737702286665282924100794906846778210870296299165904277615813309500762804815939202766963990943150672794066114073441603724282847157824714185038519821870525441668083852140616196700765548591412743273084374929015222418548528103960691605330290554025047250010390847951789418599402919571840213659404610731781391662621303955224049046399839690595088402832053876683430240114624344389324253571205966073710211596369311994747376167964403313459441452398771876058088404091577137695217811485160364704464858103768498215588164318251684305833950011863492774689273440354880412372677290992644784724996665541372619668568734909838803995662786636839520633646158818309685915204320073439125125512493974526052682903378913592414068324408218419962432736243159044513138844808402109283651821844302354961543270779738503007857089181343430148201604419932876128881511665200409625539250220240426387332861357254907756501357125386532858277446750989948229903580525610155339756648807367114388992349245373742306304424308713296914713383718343696980858184496435793672031534087985477002730772155262722525073172246247937926378005548130816337085613863380919509204880654249503744725703504259290826188095174616949376214857074830092648846076671397006420384337785655373227901586021368831947125061573973003301924704550885058187955484585149148545080397708821188660889225895839431450473824962609131238848055188377673346128117064383024079990345450802828559350777695050376459301864193405239127800600721498665639389787459237317810261590470394179999558072343848395687945865199473461438499285058002111241383399849979332591911140460547249542649342707214125852078512028563517731229144115039748850303015965027522111097396509649347606042793508081173148293372396436088743587545953900003612567973308976313357883744568525704324458877413215277008471570726827682676082822495985689797303565799272135256621225779838724968078427620721463406319851376914230389506522028016654359331294219907933748381962956238975878132235545005793461524806060821119058833740647869510096327509022549985826509671920954938140156016074830614436379286321132217468251619683255711856749938885006770417261228157780358338775875270214828054261181260815746334036059949127584025706081283826126030297550516263132451549228835282778588644802052694386291732679582133113012803727025022527174513833033809132609293060029796613323896466109383100252728327303064735608651321168086974210079455715755118191600230454970677020392665069076910408910220255593643350184337677116867176831122333686195104391786083103243368337616248029361504462532037043633764250785042972493079397067711795293533190740952109679670469522293618824379117332667904130906072147408367582475192186931450724315444213325490173628779204658251902494596905273925382791600583728543894867991202757574713832765472259735005064092292080630713667457044633905897724674804709936355890440006513878066866791298989915899824691091394175237419666856455883515600222060970574052154269312186211966717292398661264354348980376442440100620932823974536221078503858316987593881352796756379494289058041705918218515650783529208059333278272430462543874448301617681966877719482632063819704794352591629677103031529037069957269290239281425009834679501385719189361775979387651209181264616478391306377944894329984481855268274925436621628192801541564955349953619953526677367340825591663494536590379987347796026311164344350968975617462908593136950440841102682512632563319143580669869659295330619418070916488001526437140643817434174010378173512837799205459090501371031392631796786132023019984946158831508332758677690468269326438933079295200391451987765729626322024009559368871947904640979901498254687202436698001274814442076674995062002195962310885642046532624685686778055855749053553975086872274878217752887387916002642327804805420347839493838362323924848459256560265180873638127384234739722535568963603181523129146372304362679336304215716787821757383002136644184916605573487526197528440599339107409657022222338393869562820566973201357932485088286465782790695435036497191876333341182025264262422942599784490539092822606080931629674437923823232424372924139042373661706208427043750312342268401469734882182152088263012286501556039984247581223201134934884970316720610541850205476697182092259620485646374137215286732412440130103278300146687943664193720982656429024259557169504554295557823144168683996271225687243025371213807479177089803315379442153473453220703566844898699847708590728567334243070618626908129599216591932918871037124612379138457752912579537276659973219969786000270348476337614369829587062626864378634941081574083640888143963373189424559947815407763191630872411428437241396206903749789170998045161204717421429008384489650470017808799177572537437485342491198898365263640052166849936204475340626193256819269295223083910530833089209587212308692966478766413296318444979709584172498953301760725447514953980459845266855104003742753258015854917982942884667947426797172044304856182031508316310114325251050015560440259344530931513639524422832499405696538509360284301828836554348202642063123082735176333607401070716196889606988769186271572853658841936706724584579182276351249576540084992858875197358435032304081387895302520350434755134574289056418528846760594694014491447100857561272878069499584520828750363644923488288435093223219727422955928361226465770393449531608972674527506866252708852324832799199795376784592518426999365822787441529566317316594209817539156859579449520147778787029947539676561227922489858653452690356366551934010262682655918239257896783848806432065364090792648845115282100818879299296788996963641240309684712138227111033637365183844788569006965602965065743317006137785573994288699278773038221753587626513438102919475475590922279783297159934531615591931680183847355471662824603495203237909596737251848304180372044453868569019541826220642488630077255136845024748973298667168807964942444382108637968536585509252470071730637967123877448823079659085348108013934634218593844248915720188961461055401076886842190185493155735746934443989089535574709751053908740819825443199259031246582216226660696420944956291708102655135158034231061160687745094478788655079916321818719678306459405264840037217857419924364344529906317222463948375106085737916709458343582169216677877800214487406023592286176934294930207023957429700718232690312723827133381274358625429899130892909549826361072140679007862351949988145277565168167447756163411359217087643875873570027733267889923454721035686630236331853802004092589840676527132568034311886449504025667033914959764465195501924744321470043484037132198152428462905215120328396437099058216289887999148988154285077983959721647157536581850067043303919432173749296243999978630829944913256730140675708172181354884356126187320165593746961228061318592762896464503012109591050281199729244819410008476096863271410241980076173904049258147407146888731465573257523951606719667219205993123556415864132361688759779061294613907065449036069837296535749545981316818150775724650642885466438845449018584943145509988318723350191041812039876607443467942337689028845658338165365282726517532984899166105308369549268525931184860026558441229455070196212715229941093605987240786302226370294502559073028382500047412856351256275696859771700476187298050654929110093952698370534886409706403977220814683400975553250329080136080521366181141182817647127298941307766520975161771582946957909945035774106307935796644643155480344913023150235415677540957169081872938258437783317872991429298147163078754327199080554571226754517257769933007825541074420279969150698221346781536262971108207817704813559879393817470963995203896476658743556942284956035190915856023225402875268405947922158043792842044543898484160058568723314994394944590928469072664120913566751666748345373185030093330894595144655671837702951241627172650853211748505339239247066660965850019204357343508589622004488676359663134914794414422794559266649599881086961566278637431931729928864623568215352589535765005231013824446091490381815321286921185210794546101887564897818171778202342848073898685418776042059443809124049258715009070077411848439793298586851902353613757624227695355231598340499650201968387909368635174862514109319194058035748758873612481050342504354729518801501518650172219183478523173264201061914015125262387265242175494785835279064782311089477588336905389003405861254275308695703103914570330631911154130327288033178342729638152540613144324306981915833719345052989448058186305387108910159797846594006305213327613067223471828752740101914028441585452943653290567700875368271552547893705417886789603288931167948758143935663644543586676585688191036523890992980135445673359952618290841633221852879007516513651990200246422388971307990114603816214111937602519250332618235152885830575884520182385836465650881372581255625335584144331853879145283660501521512669310855157893407082604009737383673211193192379954191355434688631527777312001877414385985300829098172193191670294846191305885638100871435173676124942929199987873140501741134388236021266290899605445971421867796010784964378258786801038925379479806718087461854450706607320403271277918183886173778092884711023378990875820463104577509894271913118836068778367675877927582026801702879962101587915083829534531911808318449159273757100143298247086356142516403788532413141830739222788431692947607929663662368628924695845481134638608621942960481200217327921145086891427160485465752962490217792066983483832839578955648900417910360540186017346817749482595036153035065345087358181819993863907759517343682681452857988287749804728980937811193050398759627002815992245818897707021155379331528644766616367345133049916173189897219151758142972166624079229003133455151902974293375687397409045609145457264629057597669760928737589142390966890222690174457389555132535607237437028236021140823104882011488048717231457511436061120612111612063003363545786062821763611791117231289273008875000280417335221939420882330386837180562258142657802016781090839459954550467453817503531395469013993338600115743182173676286374895873015385882192900231703954863673744397118342736563625675664720144266586017180036809231680116698044347727298686816890625344028968848038494703426860655074624879383710166309675340484847888083603476304982012223013749614698999407143563597302869362871865657635273471096918552066448447977844545009620633733568647476781170582400553775192953056269291108757498758143890692734321945377517996088840372099177495965128664564166586501013217432244693170693291646958122911307310700291146772608220972124179083656995515160577394033146178224356742897027545980352835592781690995644781875152540694609591073216902617021302228333942717980751469347200149335890474657691255573381563463221523801017685599876077590314919171862030332642892560338519272525921476496035960603887963642105702778809496822674574553521227906588331459323729278331646209254901641834196418853784398035509978040575554913548238169947658550091750102566700145205249348408692750147147358369401156285641275399826386410493708609432537986354885566948847299025577295552529332716025035561902665688732300268767131738378997190164129450503151988482672531443221781876126670225682499739279313133194979352065228614878384067294205488889483828909935104998967998097567804430850259024138390842475846669900979176114756944332753065394835393048219303668031583922694597657671585504975230726064000562390873079601212526609349454538903702912048839035357483866181107508811417666034314963904669253124113936551980681428867933598718821174046929696658923973994931444394857751549578792179435092311218353975140507334176278770039488681165120350595578776020277764913399616318020566813111847961956137300517564282510681865341251975280454465434652775239451674967220036345523476460228036577737488397819821732176496448479570722394161013810041023667525733010276331791765286259705184973455698948597253777937497313595172780874250505957285882370133776125453214339123495587942895747951215608154564226301721922637651352004320134940678619381308757122061273786045663928967483867450168469633626126744609281531217830680854753606956288697351879949541824799575781729272643173393340025710222773819194671436625360169783357892208149143428023883656440340647042318985839107130838865911958132822653187292451159559251128803601273031589584322048131566010023831048508934438739460424287855330720777859613381524576417001191265652861342248049089470446104049446126796329610694328319699543808343342635535973655593656393899551681606459131461169257426852760248444117065820659233793704831359435331606302417986071850982653612591716290975619537859789946903189886780395670684069407265458197359987156814664011392905481574357633837704765641739228364885007234785762219682164336608146861732981240348328438198429544669987446665379659704023687060918832071160381180408565248969743707839975185962281215950817182929226856690582766459007952899414608415599689085523813533047593487122407836172055063010951744851075216861080334764595478875235393485949792706897963054555100069581020983549196424620744035050070362153151315249863102705256457297305983168554988504388540639691329535721341128279440850182132540503787131802985927249817154584618081990692764837066009141126862880904883609276707851343519570680776711150855606226063761383284863509948423051918975160481184623223499938180877183914689264785757254432915244965529936767314368656820847470027472770961367528128694043989798542924545230358904643086498561429168210442890871964060824208297432353737851213400998346887393376530461088376954380901151195843295267488034819256629352342954562030986236493460681228383484481494122181010569294207037602519689833936084450373514269058448189490580137136521312633545534312345910623255603665223436657509821428481346736033585086527339306146423886179626858300869196824250037765972633302216086840179726338009504079214124029835820334901213167791875314733673290513637056596567034795077989818506280737395196305644328206306158630544059221903209559582458236355503418797439182444760344140103659650843001048050555740638743697186727166929994922709353714394976934494359670520668042104343974271660436936234150584894192920039946042301931663218193384912464503466175433343486092838235416549048854816672680173071080348420999584483779516706190041083226544956891554909635628230890514348640841302208721599435211715696035824579638764099045799734523782824327298505562453787388800543297633843157894588797539770215287618958753283833775131070486549151079078977833526838193509605878452145599158520382525966037802593854932222848678078278800136139816954635899963371131568605007287389030657658503194918372438971283816269756814412638652652941390972662328304694545897700238736397169195909561696179245099510300322398321946918775932414750721517871982065240717971564150577077444405374100939310272213014312770892183168045157930525001327186741399683565569560643903669888782123681016499506763560468344020798860722932109839356118127230873963971940882455708987982778195318975624547167039418006686520006581731518198103100121191105388304698127367184764122057424256541933617093454772754247536339883434213486815201881416083500982418169370934966706767349108658546074229062454272081706406228649847043006282308882126889186896349922912928256145168652324129751709181713995346122754175332258299622509475903612753231566895941246783790891613280396084985304980692439007061999753418729511707882585126411910355956930294666101780385735678796554115979210681505182009262454621547694969858593018897436637652313795220756903284082443407320255025112931099092804292315060183904556853386593460343525979491077422714015335010803342551625299923722393693558921132232027602933949025973106894440307966524454786225194694804621183405594702533675925683296362051406507388586357884358474723977995538042664836219374704657263671226782140665597938498904788077393493239548366823813147136376272912447587464015193111231726407179133587234690834939330460666887580104222228746846140585125915396489180464749035754217121821427385103452454798736451132696287426563649747073480439116181686727871243197468033879215466009964507691899276592608696151936700569694414167959947273378669385630736754591881868138480039841981302799605223831992592561392634229470313407637640726683673342344683523932938015278965612975514373612899760909878671007648578622782882521448953557662645033154862114499678113217120473601709723420580756954582604572299128516139589585307833916538655499982370293633378020744828813301622923324441548084578493412392615528747918274478756482581163899171833595093162849959701905223895637475906536356676786786507127310753968767300653920663292846818491000227846208905237807909254512390275435674062350949810920653404591303498258685419910353439352529921639100490949493740166158710780342500736208982438464720527070644027941458292166297229879178061943611427172463196461146087572826720946337132396096518124007268274403139599413096295463279995120083967487045973245968993277467712079955108301270271836719731191575311308851180897844897009859393877610000529164200928347232159162030284475232418098090342600052259778283805537381279877500025277791955049790960230142328996489407075803569347554491545173461277769770483815667306765343995544130013412483228215951509942897879904972137744805718361778480901891851295118194651912312423345132057934721376497315838251777665861881156442633117621312618148350893333916498632080693095093656083562662222796588712005132184876735004041538161428617901094852842010461938428788726614855967028150264861866343578265762368549841787260116804352212702163661208385368671925084444048760236144272223471084688891641149395826562301756298642478574634837678615305308343100404010258535017043320735735961998348620998014292074593535874703817108198542650756582988931839328891281592375106876578787647518798960623187776650709397825722889975662076329078418381069546049403276397117099941975107018490445802962838958510181394979871519008217718096261681487229763201145527404475894971083048516537941250190187955864272203508175655137547696069435949082532304148287361435975268442949053964863579454431752452689073966444154789459121573042906692481985719282107291945733879655660754388760932749032845786415061931228812103242632272783865560579867849610413848650681702042268334368084158505301317940928581707375775333939316688341644562376705970297627496733361115524462573654059861042133803735959504435940724403363055612744947417035049756339401487165188910850112100443929732992495708051843020736067152375005141660588399938148546758410322454786547362662490038084493084653114372484796301028749500834954356066223998292633614976871000623784889635919865192299134168790689756831168938508317444307586623153853707528472327880958873129481305440584019745829298781433323365468036229595842745191811533813998832205807867166433913155237078645005226389051251379429441393940727523778395605871690957905036168153816615732004987360814330333522474247694865480014068764379234288772200083981476765605679218118747201619713637006291201122182265015106171283745706192536474326932548507962649837265735957760392781675594810747107142443083550952231995622000296240357181794533546718659895558761375782836577313850201980708925249819150460486838555699188494900562016002624796456607709765834732607480344572334560487109981691544238427862774070619864444363375291339602879007397828991310884992415750408769377881925610987037200254337782562888508672100028968482087360184524457467685361716571340371699931251915705103545457042158712414735643621970863707574188789680704737868548918126479341651668302772474728344193967831289770537836125736986229840749826720091166214107291786183306882925558196707881485602504785096734753014732883723627137056387492905641069757620449431088940502131087824427958766674853183476096005784523839975358329767856840414332039416961964598037736665688233760032704404737736502898372199450799349260461341566218488451422371989946183146406907378865482287506184015980927123626172178426610772613323997069073237078369521626106598984325121967579686411310504317914465568416629856016885763399686456042869310216467589950125288270919819467023261931716500721769648783557124099608698392634332895618034620892219530305864056173391187864735308606247137532255024164855844568159378921094192377071069457494799836164209995778565086383977255805658991250346814890817626502977175414518609277985031640601999818990718317175380452118498132942167410931570132623412023341427604624465871156708007154361117801821506417703960763408658962633922723146675422017954986621175702855284588384265307248880573379134225461647531579619015102056250666619186546320848592743109486302379758372473708278573338432119066161684290095268693693718070074924362096707759594415753722921247425179074155507210209661323585373835009018091142182330032895054613538807015619006650304722183650400940893210054546366920304084736733212326702215575750998501325109191001753177297451300043062374726692720232755078261936016599213613928880094191748025349635563161535414162194176026085071580284707530859327662252819850719753620496406081716835996374400814975293239889601645001818102746199890740232425791638679811338102216731918561322784421923941800793682863394317669615511370706653766117849197841137690578804527054979236611899111895191171602789196620092546825370851039102252213542203695985459131784621535739907314440809946199288277105221061719162506711763590142465598353417218170848500716437900532037491533569577736420565962620813140829907490011943079641455161524438399568491782500266535093176436423228610339845534502663704896440564018671729098522155164402330143289378807021109833247847659033580076741457484606791025974520126996654227965784564393300533574915332341843807093828452057814762358873307362010383953507644012892416693624899676732907995148654070120979621495309411227296549089644270967598271258850563928048756708820266181341990307240649344634718427040934023043055235666540213232516293847295203338267584663538196762593811423889879312762573209395390185222387047799482741487334334510673622640738063732973959163204297404175203223094967229107597674875916376502899311425329650522399240515480348228955771086050452195280451847033145933302009991111164771258705858093314378024894128687902591841713960049289797278378254712878234865578108153403961636484822813677557161035793208992587777712035038423112421635611744538990622883543798999749551911125430381512905341427620644893806716340600505573410090934469181465521953005790702407253749643793994855811495699917462880982145223881779096574439212896273589912103256943779423032214675790387956673244799493946082138211976580652828145992406907127804113752223151071565673230763292627665053603093146929336835589001758393132134463302475464704290988183204901398531141903669564113810160197232346968172701870763648319203585923826924532427230357676647739615042200004690841794273448744204745950563520834057060969497922276487898386217099054494080547402254009242277948282888635386046825723206264779488213441690266841525637897672867293077534997530466377506581631284672931738000895242641149225501428911470197974574453072876908389787366760435300927754738909775845954157370734171594580860912185702049839318922111171347825966653525128544708116976839094033574595243701893265311991820845288331634534653354933649193554009860298193112015101661628955309597542220757580037182543522045410048606470388110278592551036174088724664940237703537451764543049698169518234120993845757647004782851930570995537810548805604390267491729947479797459814157475714691868234137292467163145912456508853061264044583869562204260647018554202647559333605569013995529711928555006672458049887269499100379759539534958274106045976132377851086807179742331871919058798033565406349126828225232768409164658335320532213239045447657907581775248016401679008883108626409457948773262473835159009350810040980730626238157314682762351305379371111330820851360018031406820026039173205021958356087927723217100804115018891522837040958911525012935437463747918878899554347819477431675066334097742140777388123452203809360453913137887679812296752367296810386299288938184158166718123959109035213231410576834986263611376784988069080085347603136961200735649486183462322342130223400860888821200022590274708675418032533545036362514099699560317807298169686353572005320502469983200537875712254422370741402523515746931284099138078158833046884929621937737938249132007508516724315621675128696329327167324156300200588602241887822248815959328507489089419005772335825910428716278108150268831175214993742705570145472417603567224611993775015240456104588811125723479318592206259677219985824236975895564952699168226430522139558801519136420110607962199563036407820160830762051837160849955951171512632002647144167341567058718874113426876339713507339696851264252508289913977297847550113008667700695051385933327532986835690066626372083381998300092459773220835779086595691983805867254548563507115625710050902120721033455857049779367680695540908338923202289926865922232095839541727065731112089627798968586749672616458343866691207572646861214139359875137370958313645008256989324256082492584022171410151402421324190710924882197057116987325605554637583957855810953961454048664255867496101093254574243264424785173882619250966414448069767682088491770718195805134650773326073507929520849965195444226155827739802282782926791840681291119271083346074670428936487741692859781265195483632243028207068030620427901626508853603200663682203781818823706825889498336957689015856317521824128794655285599498199686885624684217129719058530067885226544129986218009204269758852477389691649480208685539953200293763203345348326045353870414912914316912938206203208160968387354704016856391501776554161537630953230610897346269267001998731232578620934628294001900895154988933355391584803234147059209040912325916473776259091957422923291564623054736810230873599960417776611517095463423889287388849155556450992332216665283794638333761938040750724999693374082358131288069707535808353849254285075707310886496546210034607423164590193690175896526887852640621317193703995301357889890584576917523820360521877011756143165829365609204062707624139162467369428218384605649637510058871636458766743981273594892871627989051560553066644462824918709092242662417385686849326189159914570395174986127671124324448000081960021233160648473410797991454823766433537635651079888368338060036879224541212979128125319181063221851182423524861139531896383669249220952981331057375270392897061636245897389998311594470768484222038839334562873159785068627790458275307448231811450187245448609914221764476524515821574000347549076245945452606079387050526410536896507841419629979904577555163736219870324509253568056417186013156245190242734681355788200546605821493189283557855778285324941564944238410906541734944636667523310668473991619290892044495931457646831329589774587062782192084930988097185108143988875873275827569273829782387669188051234897353941845166360775529015322584100039646646453232813148432311785029600884309579266120450616857444706396886002483889236823390400892591368221678727971768305259864982388378845122313488314716333908921386810250532410436713722238163987136603892351268326608840883970042336272135715153284819859500805245834213084987776409132608827323537428462203662345554596511037665692636012645506955259669209336772158715498823896899196773702192072159318278330286144097359303635649034997367272610285743945160095259155752012331308004390457377109956673597432941245661704383660488156035443813343915424544825276778992030340182966174005885868120439293611861163942334179857816728322069238612266919052832577827179663242322416741720885895753453347313436706781090471103004228826880069562379625652383945037237307764991563022024279917719168514085098074602099671045225352201137496376626289098335373321155946970508838498812127542763405566299810552152033718361908407198907985336860850250984800332514359032257732577730671306629772310869359432209501005864799575434285020550872777598780131466091881809191025530479923566548636162581895079010955216439096185495595496063895472787754461408350833199599719415065629650371711208563648312609809380135313280601773914355492557602987880618907048624922628039820058056837727495785980783546986749497333879989339403866482541191693645150915294924195957942480524109162770176987519279560830724780402572304176026147838331981281921886836092765798524931337506855049604014933974131950053303911737662339708325452302654868620593921167019948383339242061893129103527386851444350893494087312414402856521377287651913885965691913358344244929845257718168556650907343803975064665763989999615096515070902105065592054958320797053863002431342764476440470314042308481976726989513701944339481510768412428896212595486746101115935095179036644254634171925273097333868407480607580625826276223872385110396007072871037395521696785841952005628929431629135708666483670477403087509472049174083276189880046925946982885022487866300755933468314929392347423540012104115342235094072201710824086795022126862691661549141884831896520230371506265850815565020781753938026280845907437497852263399757819259441371173045156978072178416678179370552669494679799153644845159582555519789112686515463095058350328747755503725738177784928084077782454118958988644386267268866249876219226065039534428335703681624194712822272616737883661885412405538022712881267779692856161533698038693203453825355298526777818904453679117916696530876863908473190589392271404812717544897751082683414405498971452896063357169794570338584114435355630599590533466154056949365524991347602241964883965416165047721892028047281522330944969203617764233743360306505516089051001774022056000634039195232884204952730521927886657731916930137523629538781211055554526045478459560135673031134483410851764964756181197495443856278372162867646768137474860554277202163491340020711888064803950474652884294805104686625824000871623341865677222013735191917935111948573112219475581497354783326194954936895515224933923255777049947592654965598956157422254558885341925836627640669939812736570725681612129941873376660311299877369071385814396265481445108136311242036285773205548170354260789995356574976583357699407685390234464419293227130816586009061423734284037898052665442935545764640130715169790977349693306237750169243789981722114857548877190298794555370969901211613689978103396268076879125620325326678612729470058338680622099454265456840637522899445897020200420664514032052323782918004288136197787772061370661914399072653456250168480220219778539605662784347638989228616057773892689070364974486660719940021598589777246974412425575252162578914835544867043565270654411194458418098861041796267250749688557233903135002312470786897960764510016378159170282832426369930026382158649371516147618943569724018935039060386895952962024176270661704659166333015998734751676346644273102217090790893226802326162952722166738032264245416154531557132286754285095339468354836647176856073636737591243560405609252961882435717257902645621865955295193823328318358135275126878189816413763831699191121894225331762733407527113188308176976529148241754515458515363871311346674311529071301852745647106242994910307324858140209627756985511462186785352601018352814662702642838695863074974899506997595470149243130630820304964007924073566055279015814676929966255235592897443365476931091276762476902383998187894590862908210243190804818859682896633598643993392386889469538537199766059593734679785596028518972189873299948106289228378785650943080465307177857808541302930696721226697460657721906006070708169197430829246803311436897015365179314977258271731684091656600709199752075125624276608505385577747849280947050996933654111040907975869863527850305232775768648240106897027887712554427609524173706487905432569694491303910285293614704678790005945252092256605135094811916644726442128969225241625559755663485694325779578058998785061122766136629838270284830847234592845842995071058201278204007256053340546964142825089329417814554312267868126140235645076088740062704265683437919090332537746858909472627118985246768561376015020367749336903938993691381752193751768073602576380604860396591681151439480026996766061778170907229993094739305258538391142838070472448599506867823010320956955037684111826725316102262413489417707872822580662055401964177236142988095245200704160273564217962399504386868229691896164577535737656017613832536780306561436567839421600493278324504794258436705651818290948229240717487853050847006918849111461104804164184677389923728364146899088658967020168071096645858040088215832664966403159250078596219691119741266619517316762268359714516754561114551462883495703317128046871138300426495116146735311913939604576519682543964558491687767058027600382592494106260711314037871832732115758590064069509087262798089225211166950054655814110327173025597840197770204804025917948889373537536579835965333871683628884633507170240825255490482375889401060999456324989973583050613438322823263108386856892887789839388958561577238075797403911462834177240416023209917959608689149373206434816735350289825509138902712163947737588683175331509957301885343289125433924176094737662409914280454571622124492334799484111968626053170718598540583336356551033449869795493954398160554935448010396255835417760980335161295271181346725889648427372383872171750789384740587070063488032121488432314683750866613135517212219722216866704372031110252781245163706291755857855483936145703081312573511992367433896072125887800863585601763218900877135911963026275797829708022202667445671998232528562801443120339055975897752561579451196119751344918238211584326214786898051338266184703984925445636474265086169137100654812252692290586547690108566337045197132825258469923811802991105172570634367928872771795697944820508177481548720272734034042736378464037761951827669759027322138008672392973176600831770641691827163171983176899041749946866967432658022057752863584919991474469907386556508263080054850843826064567633976680154372488702382607383229122049423075954668898316763104466181935079289147407343515868766857365549985130206845092940158901156379201358829945760353265326136611786333576562777820500992300317974726519222621046161076710728500784312422401728625914069852716963824635607191196070048082327669498364486249717890340770908279872157236659834725992639094433461254747028377138972297493037294099913225336630054784978384672926119891621305615237716504167288605372162057346933064737249454644503077989399856835680994974396235988327277337502527005752457534867731993429745649645912198751870133395255343864143554090608339215310865278730223816758281639507938841122180637987996851574163873298033955405586540250433501266690937698634637718372485864556390576251104411087928106662473299743697243461812340838870634380266172468758987110526233298085688957735985299226334368073023911458838199806003707261129565123811577804622400336068804986258799812431144899469131720100935533831028217772412400353087529964399320635870563270818219143816015499094750832698117019814033135991282824149575850336732357674274473544924928668517683900928052285492388897778493992878108475722027808841146133376070731911061427718253728114650567003902326504030539353327518585594677863529460361543715825040505595714164986582471026518482456881935644179801758548055789643626359308763919132993084505799242996699073668337979447135726257790404151733129984370325760152275782548437123755343094018137709888585372981607810510751702310717336316512544599537898188235458204712111415045788764435993985645740698210303545622276899471467936285911828169722082154140630141102176427851072321288348418672096426122532564316596557384033295794027934467278765449404538036582469926664298613495575730670681889052048232481543938736152644380140456653415555374294782638484908760871579940649107801119056047026992766606651810825414513514550465626023385721273916265600354732056932710305700623827038413307235401917082798005140266542060920325707058127981285873851021708071603388534620527382968144890479228807393386884514824898510271166925242454545022560869444808109274150467882679711918973824961156031419275319535555248143480080130202189727243141499196798182144740955520335032265225036712930118171859734339113736634595117138518814564330172573284007860533198903255800801735426512861466053271604430935941255116560128928151350546240469282035515701483249744777402109612967209639617224413474414885815975924845457624025053957672083181494672378495554733733111217965464723705171675766538205482620680627759135681726330736495950102180189685833478571497827668608711754605542126110912670638958084013055219110810217746368144549072965881612769840712257541051425289162352560345625060053923915718181206021583619554149396629205314345234018610642646171732133966563101539506796833653235073121468989851634863247254702357388351948885850473438415821402136896182139669674206692628413846511612782801435128724001792166725347674584460837156080382871253030125640102103948349776449341664418112060670379836040373275830801770436480305155145835595443456384042531453257495951211038375964443448263872883290785110348111488346924854727901452777052458816712399419347251916401208226125454222302541055587458661459403273574793620118224336819990393312693232883217840712437507267497753110983347668973236138707182787392744618457639263041776398172720669080321241067441287204983881925976820322022803158060912269268351024918307696560593984484999575888076716266235064238658127271864751850284181406501016492034964474010220529411486307210809007987069049093487496895968647332172095356759082486219862447922506216658380320040823261819124955562868116773667532919902489728525292723377445271371672362911710252984831207413637450000484701523247471842169624100389059768319764420609314573298645758707831095390458277774192936834156847218731797107377061487970327542079922905837148835794418312423746657490987229977790283419924433133498382932435313979256120603684202402233409256979978949353350655517755336908748053382305883158544086202228250565736404606867653037877545897449296506705298281220403611734263781049871331455250367552239927473357178417388213427088572482027434767906987636570649791959967202032327535112871398383800244254981347806579842382849106506345243509422720477775331301906364064208323625586850054611213911544721120628571677549829576365344516338595269802541407671909872057545350093691953198139444105968305907822198407043455311148383996823491373133319294301269005311305107549012597021819745451445973121723671906382318399789075361425703893634430339368673131915262738038574716476022963758432998732685380416243605094430245436484860272473730183570168890285379664720306375291790109559293808456012278568101775421457085211475232208722432914677404403184241959413621670679852952878633054487388555081638850009993011508751810795135838209993837717003882007024924514908169379491030214363464223718638454553506051966745068073297477708478316210329725587030564285612197630015783414051595998962859199341517894216536708046024607481602699803126279532463060728492595454012249264162842934632714139012366866556933344994578844172123700993879066656921166780785999547067735818696766381328403020265762835118615608408098539248524134895107814758574317322967787111810208515336893628170417249541446840091336760106655017900419750119784412488591543014366473060104159360050963040565693121334806980667810741579153360166776204641509756640608799495540049847329544657365826870303814317780303064477665099760914723028946946533832047254240792573808139371185623506471460040554221000922622036871987739705125271838694103931750881133335051601706269691213548238023868288799784724477593521774528188702714924287242805536644209757298024155526872625664552849300555201666639443823439536751976185108048912673320450868810223355477919021673751471842232053656448829693798960110297053010046142861902112780021460447411190553255546555769962927905076663752023714722006616967338955449004614695755063149094982905811525391985870786145701027502263789025215798845308778693812149117132699906018425973743006512395481042716322072830727283719759437546978426668516656959720780064499725293222982301578930496796701523732131713905238953217391024211703134864189756169901685502932224841205641014075542134782292085631531067764380888381127377600641282972003957842982818973299562641991322108892476106287879158430926120010335307833120640064637573016592118554310608430839158541761826508023300868757603832104368100798334549483107344170035300377770361737283828669285718625658527518332760117492934117547139999571154950009540994429602321636082704677550714450249167055718542401559206378131564264368678658270765406326162389403336033963439270115847672406911062360979113806823919804816021578660356147146930195023771591368958697648561115027459165076071552486853443882796822394806644232365068939052323728237063658054639012207596579294435879184657128969349911691148987502000440891019733408317881059498602798543155654122222207742307028669510233974643944243790115057269108458945338395289656304842612653672383217884814575760199182224801984849790301847137702816037769175399468718432039442257121030656895860696394870760348248586045348682265423176820448744177674376740248053250477512712953986420455988735465993116232506364651618824414324551961195133838596043618142630393755980993380134487525571128964203709256117451214904216750766966804714540743479594481811929150899006980072760752794778549145274577436123357442440894306031654770254603769468402883848857472451065077340638113808306804236641530255879802630784366876513774852065379150093490412099254132512325142989615400903717635823829790692374830560796192563787673528428704651579272580088761440649990398277556935363717179567603354277980324528384650549667232926186499189921371328484070442493135392656772355149809036905720025230610172447510638615902543103118818151010912007537472824530321820119741392477357336144502951974650136841072734021539979339899354522987451780144320484280889976749632343795757595435797015155357534915171629862178756223439664454833309552059186270263233068361460048283661520626263016595121523028991782024790227477888556325886262085651984095066750874754500812240115471765037341321094293363432695340985843826032954208307057773781523202712281154924534102969437601319718259799269286303477735687172134520831034660198968176413686427739752982256024660946515286922783278838847295434262253157025708449166672873325246393769416023062072191530838812853923157855174723731945402633339012962543506543573779777725891770267313495330078821247160574788223937758946934072684889740201970132664558488026671507491944500380667503382753015290370329601268628204674648550822687676923525624157184095430626027611508944520493969673823472195306906830706698502742687113083415723847976202255429774433811343795219548828220463298066244967283870659209805921692862016056286586092800320598218840684634247273531400563183727428406553610209033509340242740648179283252818159046434589389942366007931867415222762397499577019666991849814921057375790723193763639952616537001009215599212800465584977552462110284085920328713923463264332708455327568051758490794737856567619146698490107825525074993833703852218256489316548575343607408672275877600216208247951559554177403548745237052332695677744413484033667766751086370527912626094163031111444335425224136981900865260357946518538097799373170420378827323612291907122872320762504628410433218279510023347180802461401631801238273453535945217665112117374378844157065843181748313047678154727942192027413937019615029887503500893470293278076709018580546589765984682786888133669057207040882387182540586384255994935041777617812336259870958991244126173662384808323804015482145164254534324489256220502079888661317873590728906327321857450337904189842148608513195068876064426958602686901780877249002866758897610652538587377554648571761339259908115645760056238559745961734306113937815086221734128131468296128668390102401510810656239295118325065567713403772832968323190114285332074124536242718877862466010899025577558569117912207526639215419777057677387313615119141264460450393834070851721321817399186304289331635300182022474848253520563862466552799096816538117338789963592204109022208868063075498204854162124628914161444704651118029540038977722244896796578543204683575873194383789015344042856464545029583530360733615049291574647300922763048212544521359566267696741452761961653171173651081696973825319342489487509124783275243924697199344597464448450474245494356380741973444220436701979215827222382644838609809018772469313726019224525355627407031331411603002722570941840365830734410238270363259301109093937262526697973986357843299221273211751591586230660412559276143196633403743707544725424264539741447002537663032396732429200271830080983900518770871036734242369269579977024030233832539305977448663763888091555415968885464655709095540404380910880629266094513846828570187482575931162386964716987277579654520085948241522334091598615042512389613067623382735201463420046796876345355615611923703447107821841271600126627809320845886779316190914736708953340609390745643952810560636820214808226971174327901954153746540883709447123183782271028551948371890237018963272890334032625095476450291266395834503893553666964268545859030806552304735631063785381380857989196925400532700443909823250625649831151394901735146196594603694563741788923042896346198590220858932480791134700161619044322174806184004342159904436985196219793959307750691930525565909163800763513775984391967073408129651727008961750220426123071641151036704503004387759704550536424376519398745599763056525395261869495759547293074694640937480672335183808105175513448838675816263099017007755578632854488378749107814205039110341797935319776031447748275393086783837516453518278949588389321023517672351906477821194331543773391801675212482412162443649736360566530171534116583080510426630856340533528382757233904200793339082345650086747957924570672053561687156057822929826610115296183358191115440592806614043651102504508794183756197105746782214074532447097505906588949444698967526881847431677062184142833941118656971517577631417502770512184339294520433577937287937109586495408144216945718499508966981876405935575981517940004910666375751026624680656245665401490292077500269535284079372784172197389628765854167995061493062257156649424715751602562042008717089995237150611408228239201060037187065877298952519087647534732116959235966813199560278978021076042702768580279005271923929463981216772589790499731070212304366050817862480964816736358381069951391724111582677567321015479901210848855595072220015376632479277031615754399855147994364049644341449961509762463511582336178585370932305468180672060197140688991659177627805558661476066936489630441682999319707132472709318498504743244384945489477723951216849083024882041069865381825539909574066904476504249523528573131177503899715136812745653669675123946384841386414860930226914848863908955769720037150795649936116895616032689348008098890061479618560132582904671114467846300355723654442470601408815072602237155402372638561629165309165565847146167904883178863316399605764228204960126847265419180227875891212806919138819369036818884710623025789140380752896255923348157096075712455207087291009515807121251446376572007976155902706474680461574697559179366425288843719200215402250911214148686200154098823500491142504338763834716472932404121913327506979564497251567807644090078604629621684061065515103518214845107391994992737201124327477492693995950277358173300193225616183663121013886053055362653316441956180348879067383664984740421976290295241304102098521129437408104479858273843066597497604287942828311544038538519715022995479861762675544696542052699215986420903772655995767580615645093529036510921661722874635345766063075491808536359548019725842560726766577894981065838658205820817431531340373148382440134900173210909034769633157040221479848315324198316062490965349504443157590460992841867844401381823216856184805568576010046040828947423751489332159339721879109077926329470817457033481977966156435350531927132503352789849205608784441229001715031299940811964285326881108120063633220963407539127267693632114709538932443308253071390109901546167464673703984189511720429191203535186456608588955508707042770982717935093110704504803501069670889756621810977360103786449507198107143421061358941196442512149588336178392545870938148154895084686290271299258416414748202619768538615202167365210721469487612063684322175568147811475304287366402843714319116484629562601888121934132825051716940427171799222474217181879915648238931875536262708727520454493139536416512882707821956680099537842764496277988590902488811683958390316379874951119189982598958003146535814572261268448935037357861800016447470195888445641626543717434062383072432486196165747880210394191655837311176537065197795053928027768832014447677316868374274522450608605858588253502844657458272500181955282351111723911372172411427285225282126474122280267747784887318504805770424664834278448545587840198207982598456288426355063715006991163731390228682457622452886309640200356819790702004886604111215406272711301522462362554668786593715939174791759608188600417592752614386792024620285148769489157543901778349307007847291791540230197412467379387952025625052101583827547614100320230910758376128067975413695936695523189619686134725531697259085475028085109956211527532678189881394745985259228217981047180010768354581238561296481070606199736201931695574814220652570662450625211707424983061652435001656059120806714025150379808748731629050393786745702670781062226250450243131616378058960956965682806933742457148100946323774552966864294261721671579681384658075181522675436846619965419940924950775251691240604432933625374943496591983628274815153444517906832744367592621204769773010787505285593681088920406148313608906032687131631587041874319250275786580456987382436531969426340879859840755301497138667075076035808257525353184740579347214770645779523701173250167907213163227493318718088783862919285283438899985401186825898723028109626507405449420394023437085520399621306301860315123770800445802376857987257853106876895928946215523034700902460775702088112883410176468937965811694781335865302211546529115304974355640206578265604043350274856095416215798891126925830245587152270245056105739106868563058734587996323546840179065443713820825976967878392682607401303222349461438892273663088003215659559322157401297665985625001192660679515771522212005941956268985519575042498887494477825916173374347311170291028919829606233291935835007098179945231515892722778526420217201848755886438956370985737682468032109727677814074592084368708003898401921999230884420488787197707385079560033844312340412648654595801456210464032755259370281249986296940413775946400438919625679559976538360038641248303930402577989888975280306080401262149149392644772596354762643575361831715337729130256504475082208814177317127135549501004001518493238386979578101649653816321172583055295893655618566531000821013387466615500935338395635349746560820034680823155592705575497583625176064983492914227352237383791698130506508433581579530918274426727370764012648221069355940175800017904027820970510651418471775047062231728548704599686851862044746434531375741652168382566089717816038726438104402107676424966355298669089951814650847776526123955942084297525453620537471684034716434921052609653293685577623423571055773989834785255384527534478393827651379153969315923510346904454106589839325150272631389983596566131908972328616581081045602862746853387888952496941947997875796052454638890276556533436468453736682405052080223225380165060243909497975518113723884770158937184496514730373830174495041127120908536825731532829467774125280907082389172247065176436934813712482716865438240236466400937551014172987406870273470091131547678216757618129297332494989969812497274786706511661870536178510032649327404952494411802723501111620135520482350694949075103486800240213941574751184840503931825486492304317438342582915983359638402168905252882367496778969988242913357762516627881814982990607485273019282820031649080433695056126980474150416261464888095395361116656763413386870347677528818733524722929994083786419611623609762928312967117483724520717590636935562157314441773590461177577387922402775427590262862425747442552641927532170987565843854697482749843992975859421906236836061446513582409412678624955832834449782641720172423199385668855124971417785825228070828492158392003607608361787101162044651947941055910895106382262745659708861308852321428122907686575443915305295357161336780317047846715604301521135074802974654493408472216250688389332584606393916389199619692574622783915789681714054977596050521418332191588309241528093084038837455757580129237602470993929113735432388006447700686368986024628070138992157368426357070273402690638832505231498776875736289667619031282783936551050874783593264554264977633873175471840330853592878109185670952248588551635799751031859736549036487563352671079623353298224551879662755135463979238950156597858735322183660527204465523226824780449179955557760793154110579164882972254513582388735273536375371941623967799037699132986718933982405583611658969318850614698778648801589287542469492477795068111724700546465692691317446481803835144227859092301450528700442978111665282663507282741955609936971591811197748002728924358678275161570966065791928212502675049809301602303024742750655685365857544420133322467040987340407540956471742049789501290487037660405097012683823235183934056562087220912838586488145927948706495286892810963371116748391108316721079675435958345162409222619226422123110091601358466126814034533670917554685670916876232690814102808878045062490465676845181925020255410927686980657347386092201143495387191888940573398342671254889743356929963307054320688893666090953514339015107776187876764296104296161371423450325141651542249428789321722749676497864735609557573655700481658663452350269878368505084825445387443804778046043312378575132677010682432954329319490845869613637100665472435515689730974863965228130801743061441910699950463500150231094577812257925234989912736333508663852415185134881848380038687560775023689299717250300163883594608813979424021477961299866729527449960802099691620901573869737589148065621977878088801905626766524159520214399031390345553896659370594938300702232250445567003990951876372358110487560745662861656605641960844214702567391954084381014712489794447876677349922792582440456158987377126903270719338428282570190393932292441353082957230378796080575390591794688937305852524294142044883028561462723535892727797060863759729107268086255037143337866660346040223349891341110688091439423007656705054247076017587146132606675178472646115468482300951417708275860093171250054859654734366217597666901761302352079566889065565706318438787296164096060127044239519533167656915504226351797480923549718237739860222091101097481811685525675062918995951305455265103698345871260987261225468989232320826937839114437239131183872888366407315491369872365028692239644613963580140668514973595814251346175683520135633271327123418686435182679193960485824115323381531317998936990476727583117202164611867285506294746758871910652433458987937933453172853574126151365951830405323288587358292072712119862654407081427711352407023760268598010658011297089374545308646835745191656392297785477768966076396436304848976330051021809718241851341840849171734435972476921758876851286818545982580356640878811656092120445568210954289599783238560184082116143172064036714940831049328185977228619113277603909048030951020125925355522358185037388020350937807482657977770471220215878222904363603893024829220266605701322022593180594080902714978335971789574767896311882697010965916312388829599666390124382889043796166063567490808165941858936619634656494719398604080004542394998246912833358435616409696943973462644353583509508458726727674918452902912896383103592555426495282257758223759488949120507773775848732178953295836719242366421785973000832057055624254470911583999382238460168839177871062702721339128995313579915094317623143471760589269064092980250997596788685331419581349686783067678692530153684624857295367465839407161678148032534684275717145638759398243898158288376927385386409004588897358141763155767931702947829341830093030199712323945379669326264039593972444889109879827397373670848414728184272536527360177801256550807233432713900224448998683918398717367122694960045197658630787846240132530283611847966317914794750858244277819207032190871725976872614052276288663978018071134386068578922301073469864653355725297810525566328732143886427025244647389584085914397386426026401223537337059512746410168810635191173078154191232297628826492508618002232569305761627487840307381857046087079763827148945518544844608721085986666897630229554343768517084970732527495403138889346626236408194930563902889670031408718125756255627339218623553937499696405823690281167322332862721903460564617924084078834228555565310775266965761196239175335494526372644664975040566331020665388819196839212239793071491465731305127647627440397333089402801801126655580063750740103388328865240184473127829163023666954959840859503088072344641203246130264351222612392622969174010269001969042115429081836458122126510507605447062294272197034749621779108598994723484140343409851209633015744490616614029010956492575999509680359602269194070847190854603242690817003803353233864092243374319506049047666956130941533741003904279104349685135087413781524363830818670610381130636490401807638883457182940817222239167315908348562732430784215660484887414083940265154208154537877068723863966980239767279995960701453572868649387667000177654145543531604341792467129018951188893314418975871683582347231245414915948633721848424341567192120110247852606364555889840307483766648634717395845189202061699811263451744385825888469697505469783621990614948162038809286970766320836628469554701643003208963106940091563361852298731623965683286037318400849979884686807960508585204005851497831845686086755730511770361610363792303060528316585536673564101185307171070096045997612949126739453385285243523621164038960924943610721750217958136683113515130117302162035975142521829872018477179408285251197119111356725216674837822278094390208387293575192978642114594010967842294370516946701261500202594046175927839958260296129473914574519844269240973976387445087940995164477074499219426046892028980938849071914949020670622851555417990463373467778099396639820451629426435478931770917381807407271503340280208839787068833816631294710611275054512078634593420966499989941298477650461492491592497914695184890018653712383515197519618394721900952114299042694577481603853932549221106869786515622022929280696695123181014822110449625690081632801866597547415836728647637821460613614581577259417305308959761827096175340158464016769678998640341135284398041026480909515126440337466601349026705868656055052943531052738739355483576318633214056111404576126590886190273019399309136420167704834089201332883083168280861915464154963211634709261019228035332529696428426573041141774984234022223755397078806038463445051209440355345081818692730225722009758206242364687760168281908422368264179422149106784453792494459922717542065311310428967962049703487117429919852388447353519954468588603996738261874518755665666310290764667747072326345152236686893255344430846297840680254277009326848645804768517567295065559165304913501817777717425461710653404692984224598268547388652499224863881818166844715995430546265349638865247590251724980908883936484690744308344373917815178728382756176493374423324369476808458527286880987699921453624260257756058956789625875676446568886983371657605470502831927139266655009720028655091718407054905434615799152022470690479711658713132624899447527319834833048636315963322912223891363007800840843514112387372951973935539488234618904440419819118871082053303381906502769829088557593301676232890099354461625437852865741027777736591682512996374284019649195875777999608806999988484552314831349976204093909118347298733575226777572728986254093904004367239091847149734278585115127442121829081210237577525985246323095484111956036449297504761948212797599804272276587800962982249118857213868264169505057509804661217221334804770396682238618275563639877040763421195876833049902690850867982539691096090296901746916940208324245975492185975532007958092446530438484932186477121303345112538510285674804663907535222661259143460585169754659898780355098805010336202338345530870294430377810685099899723435136198723914074904033137694181417206423364531683688409445765534821746226116142840906481470255729453141235567997724815398221495273142015404955162431818782895680018695736125142475109810741302127427955082775790848758947655500216596273060081104333311844159246378506084846283366471113470002788734913389333983648062101611782521664851177197820865281441086342433319624427791117186695342778301089562386647869472349629785580539785242908482894474257801466091176487156304412089262644335778950905433546314252219186796788906978000405956348075982542889426205341073862042331348307854686131646505884384485613138562600604578974399041665981920902897905533967817411815352585359330683139480164675108460700036377474926231261924176110139626113279369773072159513659605284026171016946532090121398453506335611972077078145043033196523686201580897360105676878718029180152311842218484286183142165759192316350062560037943845434617067721401236821031185967983742690234104546090736069066359942983485866861107916286222091776184269297031702181615226771395172239703270638497766425829651813065072368800439336209700674516233118564840797110366631588150579010570919141795319820912781444996837946215319147482947808502684276889279146947018721248290435573310185865087852708196910736308978965369132121901654750929677253108213407765643572867813817740517503667006530701993514608139172023675868945928441632268716715435843898887323660391544214008069958629308924348037560316941917763901199093924784310788974306104581099515153550714977875264040610735075816067714607025904240872099537110365886482448189587035082891580871459412144612499733099911785452042498182436700981972223572015787076399359106871737221220297335456434568794546659323379933657162888762478474361979759583986223907220561872849247987306171030499014464922836845323901181088911224506280170024359107860993503640127133283391096875688617150240949326730389643963572605628716357327215296456229333204849598873423735349905495722788478698745075733010154202687437419591780907459549158096522867319212527775132646656497800715203850387658747769405010774761111983503742841139932939243570657025972906241378245870710657044717017414676850454681540014549895114894559484216321803994760830661649314339760369564267930063767052567436966954063272082893111485711256931425233213998833510668922266215919943894260518023909547190973915645671636213567420025552871255547247123892753500643922605743060833149125642675984066875668987542670981538688986070669248621539737428754316897083547341217276170463102403892065409321671386555769296525831035205472667282537367403191333473412530309609944037296306811574414717580002627933447952211522395632434925206329985454232631496691196799027596941421745125187005292147809785216652876769344832374420539830806240269579607389649997032740481357036359645780019251117967141726110789755100479848814275920411442099839370770941813828582344503491051989955139994169558013136252590113239059032378289510177747301136189189925937604196686344847587455764371098902562876739000845798452715975998264493397915905936356186374806610073320249429394928111729990785257501722887957031345221256093228210618946345540569694075706803063504832040245632019153347604940388446721725455331137425421979991299198463234224871489169401845673549378131139351688088187718890430174069511280252903887620804788716195724476087274731978896488920056790668638806725460515380896951310720146177112156114475673968724871497402874235674880910968013199642258151523751273348183894228656821413295428759668921516008960703234811644845842223642437263098146438142589671554821113967409684566467506695870054825241556341287108179270961829060715647170347545642652084059497992217492765058405052387552405912443125575752545133472915798090656670765001962625832221047568991467295612177987035520914827821919249646612175952587916893790945642367974660328366971063961021799876615310789394526168053882450154088783986435817218458911463136408642170435144147400175651724913972895505821060740037404020540930688000245866653168771956071806458493407324558976146959776442352698774494319712639467895662606808241286571924159018223692005255574674712553643019478308643869969141616321452478548647039341924493641737085948062649136842448644481841405401781726355494480180323964684510085231507216867934620005448493025556439974208410973783315283757631198548198907626035864350101906535941182815125755998804707617184011908168398962442192778212753257793683156998302697646329397583100851492069767258817085302813875913958482717754081042853828407518010320957662344194663546448507126372384862509930194168150946236902857900420364553511524958046600443984414837629765477282151638887325551955851997562567866323329668233876700666399102273637806591550536796366606509413117605077600499847878664073390498613656438148461251726318466545534789342311305983856646844130145523054650724462877690509321390317615278321485509655512480402979525720742552321760947965215304734783458151598434172315167677328198073825546347564396627316496256084398246749602165830464469854028675360941132887115834400479720568779308796349288583399522351342249588873233675428711019579585878273801790478323880220389073241225228522223185293042926369126113386837251046639992258031762874999246757709472774378342433490214134163576388361849367371935760679141598091221819367098437311376608187540688689513970107338489982892454125853470146627661600636670259245207291739111565247159206062132685021047847435907719146670209416198799619212303996100215775715032156932264326308219129401634008826134041321850781501451740933693716904051862697656108036491803202412929361559889005907150799422878076308263391646095420478311447914109425693895489561792226781518785335934338000260624100552961652225671053311177660061317852788996855217761584247094750822395356738374500293843525470898523908723928017026891824945257597245755345802624922729882137407386000332645041824764809521111531432556175396037332234066599811102632882545963653831210146988554516184610046110500543754576124184783844403122524719871630014199571577881655503726505263605280158176569180603551607234210762339521742491880321579263924103283316327335459001124185142101734921416207965370894857598228072005917799575454199301860268170670634121467217781914115105863693589790892142551144870474191519563158924887974597381245154997348008238804525505795992322816845251794316301789057838104695220756403753607016134362709902071923120603062169121686522698721640253537045968276065229425438610076086491662830204114342871192040835663109637499769691127014491753582193614133141284427984942916308375778383388968916405515053047305668336541230889933120442010128733944214905080984591970559573653544565913307854063499679366852160842224498566826036933260951524911278144445341862600157951574994023923307681362451386855608840459257897582006037582585975637559726211989054693564746732657718612881166839430980190009919990430501768374716512002584334092505315926901363819256012305011640476881675532951010908671956050690520505784501101669259674887348718028717660619096308120976294202901880085817355711420028634702230722050571796017234767862440728827229872527260762569396406276568794354805223050868203897898964176357818426767526923424910635753402188417643554419508702167892466747626827024102701464704479822694048946543960849614010472474244749400754698430893702493800753361421628399908454866387706427124192968569989267120706594056200492659501177433519135334847585862912669087569896692385741687950100644555350809163289075035881448382994940110518807626945561505233618152202571315779761312495275676747432711576038994717546453307735703121970951712854581198833930922246783708802074671923354142271425515447010208810747249018413822137622431899808563587574800115541398196672864771375902425135178126202432569912799364577882240290655550611251170809500799344348416871785328616124181433253006523889896156564354729092132284936881791078839475031584261892550638300504309870405565477706155192013648766886710787397654828148461187974882460414923090174417963920731781446347619321439232877466943513123586506605840880903413479185267358887026518729418113762868973489253835798380375901867762192667283714035381654339601370348851446857114189283287842702043989424281111730901052674225611761594689043473668458746340818671480212025277878892931159388441639146532361990393654986602403593187493880972862149545717182327896159827316905748686622103657901945606200375272542082844322520699874723650601253746259108349165994394734430843262567494015540061823328170383540916361172528279417625451758834339449446938347743344267489698462603852009634887757814036070990542439340517634373754247651257517745240963571822598467965757133344055782917935450482356779698123190377806859032323763922527549462612019492331358275444513996573872484311823230378350846614390142948845952035205888980035322266606907235893812039284276849520550145623518071555608604640909345484801339695860205142239760981233409383728871683281601837929355450581505556487844085284066241306938926033834737283474743385356048322817999219099330774503841105614462775604864532568952737064846877268817783835899240747697861775965335685684981040221202145064770857626615465941083266305347123155433587292828051670140124583167066910696126624955429205729191068520279208376193812048759795539543108785510546716415787043861797099622016246175555946211474701635410979094036293702801329810210136045431903777213524630806386659567869140782886907611919993213052212386477550583875048759463943504961221071524837619457049936708583234699748645248937708589820535250657646183556319111785911112990680909787929821956994996794393417220913401403063266113848423577541056048723900603351037750547292625500792493782857573076445550243193450380234195994120227626163652031058793283971207600619544912185382614809645417614652992160012521941992598455082580987455380061108668188757564166221970168288091709469244065007494347118879337341840412096865935628115061118340812148109881135351392253930162951951082191187872112516999825281093649680882705876888755345309389626593368683599947781694767257611464926126257290443965938421168120339778878979954944596083107644373772184358807034361047412147977984932309623342950566899631276819466499205828952090764615550900298104628364069473180119891155075588441037142889977437577154902462506337252189052651896541023816471670784907645537563828517892982892578553805440495805953648120282707758567427247950977914395810281725483675828018453009399018397653885959195206715344199357733068875363513495997662345541342238620182261369096650939961828295930729657064167212073497335343741624589677359441800087149280611392458396294133788243549988064905564598229574352507069280056034735996102456499278523055090019553693838112024894236475825108479924446912493230060567584329256401229492742300609503958931836675177888608738871738834486877964571792429611660455324524379465953665974321802235438251482252679759582996120055794958563701334283703792716707488380204682673910876456452046651798038523484033941339725720765869600268425128279473497425504218227248927953868847978937280121352980581403774800470757452561100474435662104608329755821832591363477618634240153463332300153640072048435942057766129787905942102307622633140865947099272728601283713517965424977752227910304303115715183436687478679164006824801914499965414963269253103396892479149108675601525878203672252296241107759060485616374137959947621783406555482594522773783073806331347243795833239871998469175520072044932836793047757860000817326709894669827063264882815877465421030970240441166541492173200315465139589928720620258629206447385385129613083276659552165031716201913572215089441633966178430730821360714281283628541355910943218159120053223576896030348268900079839779171166834924148919512805923459743378323530309156622046991215164977081756405039725245705967780560388693865758441708891825080583467012671771267026327470892312600839382168830266624013540462097249507511855373403492179163121588062918876607529932910756665515057971993188873463309993247478345128749143415155499705148444701235591989539633560398845873612112825706151682571174738089136816080307305008550226293596600244514435371403092750940551871541542224867592633224540331017047023736422152917213923819939754359426101191255929884244771507391462990800520297968702208049956233257630983834466046374389090395302402911963419600694075167207337473614325331194124308014716043797473808181284188669207448831419004147156332651094923663929082387102032342957169082901487649383452575968163558334599309776590938249316972625428610758305059045086969703900081038023583633204872472676940287279029844729132614723867425902134600086900700521626514203384773402306459672253154974892202577098340303204682057988055979250561934132943141590941926211031814455681608801546794234804193380694374727478738497919510939306736875191076229678089609003964115006193864060522802382778439145376137732276585359291830695206170800410513661473977064630392289843332561211503399684435482542339418642414282140506710729776629394535881431552461852864923198151892070311790409758123837479617334811716413060254426938531202277238384891808173193567346287279784774351421196061774957393576114676956090936385074294083120326508138629837902448656523073650898637018768053473054022425278010158068363397122236404717855518577355519463348969123454273797589048154371837372977950278342669030037380530494548352431856404922160368314960391394396263131560410267395404135935350869076265454855708805281127802018197350551974189824535386987588436243381442481955700757641631825660859814258624135944591504906409785861892467816560902870147212385897221321530972643804833570487500419344551262996315627972200955934898370017403468521208470035873163761959109873700932113850413610121349406294663801679913038140967265606634686191301781993425205225462780708786647956930445848219319842679365188198144184352213948906443905397606497388764190511817181451008510977574774989310683831487242563559345355658049567764086967515266946691307814354104155310749880216028650228618036847256789718626807520382333538880142600627730062885283622081023615833264718467019831338581212988309419807917816272157043705094053912815245292657423749245030810892564884772635140773115462976496812472209453817447427132363194977095309243711705516938051001609692321899828649133562882573764808854138473219460522150991387236304788108334923967580513129130604075013516398997379189909447656258567746555468335669419052468445724006936420282232317673128084561136514369818589506168124676251448982560999446827512819870864020279053531723718555190660890537982667026991998113066620625059996741770079216746187358311542924831969117581567756778840907495052746587923103355808881417782935653508906283134318400512508001694762637847944547536213495953097675758836988740583265690881758142800917900227289272248416574707155506821572025822404296363658288233749177087190190345768206848698015803401731540748359645297391527359534079675544082280012242600768826567469142778550731062386174923196277346452559728470515359352052240435792272874844975933923319184014198503308720811700655625232137509512904647367619744262132645669923828567020606527317834792501937241300152820467057309810604576301075847869308742474422114329267188106260610199768816313127959501084280375537204610101334485798225132302326432009774405491916170158653882634593931333043355036494046619339197502368938152258745542609776033381110685612807556810636956386417473801575645913560697055589392285819386301600166908148252817103748465832869510674527902077579368916133810009504659361451322591118743599799457224264252080673735846917122169038905325250645809299556608950667538552095582014527085379967057385453970799401826677322685243116525083996043312260130105993485437733685319252810253685298706459945826802964362679018478786346083264739229499805881289913789670750000883684104997604245655612217852176330611042826075009992966319443329359741700527246169650784571473561968995163533691626866522217380956584797202229847454810729568604177094399435604078276927864454694585072590534860842288303641191317789643757152724731688159653493812543177903414340350955473481455097585930784149337820263945773155961160882710500503853478039393748669834024432266962136876156560424439007217578751225077008170830817774070121336314647528437550256644526178952324468763763812903497126015507844731937117032057601559026678101263501765396101623217093351281417042591398142192807571533922301316876536164719176132777016703159187945938003236404170537287215688825266644026709435116176244019029436779044364839934606431784228947628326927368902803304435009593260987296668563339627346744418044148177589610704971606000988877188872789122168897651320959154625552626652839387362873207653063950260050885840877751038448092783023924784076069058386723997609781049512405071507163435941282186196705967340576571026515973807599765489402478069443303342355227427557629420568409000822444698081387236461996270429295608472284051723453895697779908766186129613877971395552937571450610410369415572788157806022660388671593278346371897464348152793492248373276669817488980142060329862905764950639877681074244397753495606705938586422710199067816974638765993757375116690059102764541094520408696141206702642424866262977792496278707609172001873402381943553410501343591194030013154088867789770232750099689327935776913937905127517915199170098901002769173488010172193287644242152169453839904884734815864738723714947826339575751922758106002437237927453273941210757133400870210253502607612419728277462736958582598797101406882592047143775929298332428039475251037459324088225953192205319079044454985236080860185584414897579289019169856271458696565290528845329500415021358712049614756123415865305058834068100317633384743872363294035340988259478823379124965908359554275703283994009622171222445959136607898170071045978726784069265680613673528838846189245195133922676869679512071593907240231401563912298102163510773414910694002086305638655880823461202854436107507969518954560318083603077318019658371961315215344460644543125983434995875618352616372758914671063812430397279873542499654713981012740186360404104373278510027614989967551912687987354323324055877656334514674048100524363160439481767815550810303834565198011411896027017429720957268931246293786236084343588175431502257522327548309425659430518036823238441962283506639335726407516240346918489179759322726661785235883328933111408211589046284034153827873073313213913317405345284677024978296141158871832826554584274741164477286597373842506122371778263907400445713998234737168327216108033632465175827601006074601938621739794193438207839425829793428076554857176980462895385707291669679903531776541449963024753566137228372254383463591498876818157801162000193451802845986132591385859689092516935147189033547710806427872316271211927622900863387486311529097857532224330112167773292709439697774020008612657003556668736521493762657196254789098903672822719023885333097628110682653362921757177787807467361902800217613836002179444351583335948697983489962398393067329886093809580220326647634851476762508709092844491422618399657878431169068385557424480595373605080314990157179644195709909288105487987802533503627491072181348982537589666742588319235597710378140432475008574752926462177937690327708535903932025842849710828589131552001674232528805512104886148596840638291281934453447732458659060943730620002346456585695574179684248567174383421311296655442981766403795446599163514713622841065362194419842561160039294247415387649346338992483500730736289114766741050663036431584027322591768005149330554898412810934261876157408282445505240704627535375263921215532073453244321959192127294942640937737574948574113523500186021313001971764150565327507781529266066450630788839423815923592935782142251715909605724752438790156413210006383314889588721898161167181929155572148493106995233353307051244441101850473085102622190760263459007564130899292558103078885797979198749058435007336930615318353803766657105582284375769809043252059157161562949051210740095489394231970022360868887096694204628095516575177893824956907462727937635513921167604427184971877125026628235230456337517190555160415086290635554917560679462818246006787050707317148260797897799596337026505651036036959353102097037778298880025467406775603077049250110954124778431527808022646641723709736241012110258162826422221002577333580698610390329020616399125973191790503669913901418964262114172586833697116753288833563752773736315506308583221537037266387060446304520678810266137389287802259401484655947360169642038093925926834931094842921195049538170675793141239256981086362159669109588205665723734795621852945000302239732588335036648132343529984652846909435076090546332374545180843077278196267622136499100543325541049667420792818389502760573229718507163385621847798233830976492632585498254290702357229149333353341220146324675378841423588409747459002523879726097799519565595312485373268007396651329860302087632810353531664651367714876624717472619592401782567317101997005481688075355415501364071975770513382821466918049281515757330172466071815089625880359186507750248899952961629759503128949103088548272111423059272498349569346790337738852222329757079919506733638713092078604844721219240453076532212818627506318979205428356687559776389296491905596601492684835520246639046692870618401781974048803445755028660154821625947082159577978476387747335190781449630423439152893510951372183137634945293900188388150551320050867419485994969578209212794450810253238152313697159664412597220754184639043917497791816600457534654024282907592087793439410534882173915806652517072574319220956891988910700257148785284555802280673755443418952871364907019828249642575200797266237252056943848714254782181825333752855205494212866644783663246992889324168681484847143498084920225462107566654188757607840797872734199308979495150796856343132797040639360587525694188965882856344661454480086492117668866318661200039672868903444705098299011857502068553698648149687563423363916201926449993537438111465512055168587442185273573410152196532889781032837582026877816008274619646034402407293001103608720581604600311652330182175407361571000244288875239881067650476852153351980365257282622821078005929617457361063203368588915660642497902242415077988060107463262874269965088822437343429166344979087950440078673180828850373545069051749311956254087915671967028953998308481563560257874031684743531654725199184367024928620903303321627097776797613956061442997223638464208275045374826632441694989324096928070473082932727221182211469718926244344229095002913386226933761311930861139026913816960083707413674329933221200166306432502620667278927766452230261195565871858587336158380998295679635950891983254840254410030867109934229092729210477868248951778010113152989186746361619108045374042106490407871718431069120319054498037827062802264776353448821199642932551575300775144446417721055568253711598221345786484358378089490233487861321823130877553336182317370670374413596161385715090276305298678266041514561798925439273354427936094883271238067983512758381911402478895397616735392333325080852156930857776096105946771627000164278221719460683761022229535317862078966338710713511751459643749436841187178818755228938354967608346586169467261649357448908289077623651181597369815010255266604127376037210566490005969600412292873643419168227835196829489115264152346435398575060535352028225834507694719014193363779615998481956127149918406769105705975469306178819580387313594754253602162355595826576781523563862182902980866287699672682143023906683104681988496760652930368354926585754108302932308033406049459609967734293814154077453297800519989371958095758442839185129675983272244243039626560517127369680916937878256735726028667294059825093350970824864540483852500753434388267681031795323082870611183424223002739757819046776260302457092046898539708745285530729506662860841001823913768533383464711991824332946249573809431537802004753767975005893410177154638532951047694204072939242057911223825877117882657751816287264778485522299904009412427653076092757112982314752189395566680497704206180624992346664607057995433656255223737346829118150891864675334541728183993634879324545255054200318488932802240754701585110946037372378977012514031978160665750535923049686764911313846790226075020765121854102016164035232559761631707110824295113712705992835756399426290392057540644146643323596488543160217901428623814025178806311606709825140234434106530823254315876513708077389255561039006419096638045252713132847249384482173700523580493419010647488457548423515976459622935556654646791925000733006542279340332620131412818245834765400434530734447357092761951015092731964376162250341296096456838368613318550204602322448133482349579059081066032675119740131301085554523122591855765253409812190131520459261442218779443509894787544672638709293407817096638848903228074624309483874070888121341976633668576310966746310343050336376912378736685579014513974530125173856042558125005408613066819252631626275292409060796672899706336354904171280789743981922200227786414297670261431860084672331138318676943872000939194517659161796685773630719233144048592717818952185198928707078806882792434119992464596896709950937165622914934199777786114406605119846026536480179997057421989046022380854755354309772824725180940042932579578245013071735941542347509153894672386961952924897607509932402037342386186514832070147711611962740408225028136839764147054560155571789678910216992869141891194031167921759633135600725342949076597653101776927570695333822055490651796969770816764044700135644412467545280752203466830482296088341909014750730697463896942660002938542329908444023717837959290219122974681628412793679906832778173347349305609406399062122101683210447757537975331701458088750041811524372781834282210863811603937195185264983142210977766983651941051255685627485709506756370189808416018694317745726002029464841960472988291445943093564279739632309346488283040991599965389201488805350101479994927194449180814686320811003215688243001054125631118157220175073445482298605935745250469316395488244776930744385301661640410721543396324553547665977371626489034444279757691442991324689223612762184227528308277355278471800910692561718589188397679543020421157262652816128543025446421773728829723505375023699120560093716916157498609308753814516760442191245551667921311853077047116576780472000422245851420828034172671803429420258058217891754015903825401801872144975161290818502104629737538347864083767119510748771308889230966661142738957403059300136289912019194759858978343430635748147687369767660314494988010464187948857106938751973217950430311193120006035510530559193553723290119009638912698111662480769578121970619871676035785957551864473804216613774519883446124716079540147864808670296098682213385160449217799404950327222160692796639900689091950326292258545493456470161193688492151350153538659260189599239653746996986977962433584096665163213524940305922420380235522992292718536063624695159199210116770279376676852367547614846064678239249074007669202268966176133521609437395473866670704536885799161961753287281358068485943159226479812969921813273308613163824433253603201678383887049434423693546669409182185929518096297259747211733907020526078214615861127702680059277998246800180921307736610007982979935543936412552892489816876106489724572357718751065474237897350079157025712077029769187110234694935437900590685777253978027451011633213043839313818186784624889388970601768342310865275669696229308162842723424329743859050901732474909482775771021258367945689995532019188840045628161237302568036858116987840254923906322370888021635920770653965858030750308442361335833313456951506940238033850604710623088743987912541013876413714632667983765691781323775608748992664961887808618749028695513345829489862252251106261895807829439976866256792601272499150539138021532981094241068254206494633407847237551193261863038264549549970145288755334293166152482985799420978334836163257281467834771848685733452205980557313504614302257928960312131183373596941609968207689414245264907455277679344575035096499390027811722664191539646225805056252602609299005039819562385525719257109585903901137319606182369484344371210666855624098326641012707508156477711583264416814735239159374448701985240018697299284685796751729176488107843822490227698193698554171363007040594927484304710178413191603835396658751239556908409494294040118208650930166687627730077817615228994200207651961587270857210076314532547722860894231300237048806205285823830648949652045048055433884784567311524533936419166065602726721240072546676189694405901369120011403151185115184611632837625840460636852795375361158335430167041493437763657944244638533914976673933776186880373764486062078271266134194103716047249461465142642779725834319471232049724029190792899016201462934388699184465236341469054371689099776170154698591326089882823587212011860916446920268272458259714821103128963832914235831698800243239784422503997513671790234733642506933910432189281026550773745103049758792700337037342461627012146941902609206243721572229091129460477490005674277697143798790938276937348153710836135270025785206331036467256332541996894889095674393152081704852284701517371214579254718014029509759617024623024818380060477103832176377931378752580271120298488487648394939744152878046253168098193267919622979813762297116167780294709409007345373658721344882260151939883898429942811052281930605213600666528308110400096023223022765339877870670060995425421037260330738378309947898152087523899750453022670452627388259100788274958782079037537950073024990055105626193325184195398989919700719292451796916736375025478815260501701544866233805440717552301334647934394897324732117872044834602149520130950078478004642133690459587464234643168765725503712648022892568119164410469806443038737635147964700591752830928120425465287948816102757064209997577881089752870988470740789832541956279750170686660365977283541042807226663551837692525428514830960936611685301552310747032412507953498647455106967788586456266850555352486067279725707699427896918569158745885674644035066654283070795558993280795593630090721193252409395355770949664325759255253647561266583298431241486038980924608081708169940401547305596878311627969325629673171605289742150222174811954038203693204064506506373873901145490110555764168338198519249602168213025051709608918481978128128072361771309885580830453154288409653050336035518838968278516021832926747791833807913085723537627922450710192083509886906377739244434414348104735265001426114375670049810938085087402710354277587165406810322155872536049843531736106929635451276288055673199644825978064680187756865403092472716635575529826706501757802012880854755246620798745077937476664591976303614451155185441849215948811622836220695803687167290104630668640248337992004026722812116996615979221611765982175530108814918537178475509797469477720343317641759584579838131449997214507995735869907429318916771614396091305848365007413956671155537743604361969202927952298007867428304065287760402902812537214557089555412353386964052577453453716742177723505130377304063475116258835883848535545749549487984839736963804694606784551025341150150114877220692806883063728975565213562922203634294043075611627030225101595807887289469632575119355230731004953743688376618150258591900407668273191931639494636462918688875720992112282779788636138674492784525253688570064252711688844107589054833838464230082726681596756876387744678374591078521792018051674026758814589887988791320381350641188806574328834737464423448372453645499407549205939521804179540083878545161797800782979333115832262129739978601572117948571074971579254467602722715737923622228410651512215531894288213189511281005794341406265339952190120088067781622783629088210171312117517708954472572470756625563279575403921641907062180367844442789561471959908816142949314308262208187293186303696582593120388262442468435095548771597175209260897563664875516193648622577323336090918915251029198284273572230669224151045791942482138342517640630434196989027796022801566360628825070434750143782693146555542876766845807380939429742640951823742922068924697294901179594142433556468199919983916487836695675616598265947713814388681626516027531754316495427634801296400337615052471019100474319225366583490323706923407812031673570068888677638778064861510404385111600383425640219896413357737148710791122147530662715235032718970001039369532624836563741406984643633532382096393976595675748399502628600166740044980514473002720840170075137121552388165460019313370182481821561545591177047381395018781363600461080367283356926552554736975272687863125804828744753190725338374102639168890543801291332599915711097067361943815848099690576806702670779476816580688539143797527405949171737262171309904415665875410370517213024470799273698410722526761587556708126010692331684939087376473551471892321601353793018491796036975266244125400441169092066877873109362398359978701339999701372602443193171457458430416589549443763617697973753925758458555966784793096612644402082777866328318368507678143187631733579075508539399338972372261543285062301448864933669091032360236111503513825275986690702759103001992779431686748828150165610296189808394034543046259677633297059553632574584060140399189109511389388856425155268904542044870710462483857500022606404513931761004808056875256799010641250264460716085880933712354889723287669945262153960505466078280472024905585127736101719238132172202892116364720425955409431087284538389207688706672966602930440323549162041861563207477923926897524151915473675488460597437892212565953692076171055834188043671307507805107217702451261879981470519755978479326774189435026083385587306247768553925767610503816259136236349405102174877676667579188276061074152821855846931891771851626136281079027705558942876992107780504332533811369276114562708247509083087050227593685659430654379480950116777653275933985329023574067223575243901531164959076567389448248979279202062197655475699691815492802718848972392360423166449797451770414610263749457092844495871228254001126083949364467410936744308408373155891331242840848651740082305706053880943968665886501487007575178182585972775771057769542194548945157786036202140757223104419094108690192227094727861303584950873007776507717184865431743655621315237331296702023135444720550817918447420831362276781488409721103833044056238136640352766732422705518178607327881727700188613642277107510744765650805887742082869774183020227688317066656363842929005750738008388605346903875003071714255959877728194216756163491992034827817762070539709513668776111877243057350348112247097267996111064608303855953031667904197992024479161237287945827126956260311174652794668461903200658489347023668501690522850114749619284226515118884919591565059298684418782555770893427485251311555157757183798129927556304039132763425356918880431605170845637901081463625519458747662479775297305438225889203253139222825302179895882594481532444200949773927134728635220482685585168672136676603623488444684097053558969648750965957801036353758202757533045045650292705551747908417970673686732327264888931833867824729293481575076978125693676470545612161912094771220400325890669816952828487109438091753621620338639730321892151365917285181289629215247904573396435023074513048325466125059444362044983027081548161115064692469424022189157019948510396918577800230433144203889003233002875422768279726365000631141148999997793875108608110862697261369267146725414732512482052909488566694261661150715371683918380693730632651276372303559916058264696732092241656070369220673351905944618401760288691371541695987563872634762678878846265301829580306145550408411522828581684036404387809622863459469129076326600241164602144628541923803295031463174191864007340220955141406406557914032440864459194523616405152777384964217090302455012509272487463135491981106146748649185986618783778970675990876862895937285510704073350451500847659287002675060264228296572431049452428510326907282088005374025409387725599963042992305053296816727238079603141108782655749278426707797124880862271569338834999946090969484440630333905544446026707969245530562371720179043122114432187258096033322633102653690745776848979108040931056760039289457903466108759375509913649068329738337183778272590999262907482341545128220645744361889750809981441104126865052835654320268946996174439631044456519705870329874017911105552972423914679085093927628037951153771408970955979546568335303295929042703307842400315209048991140021960692550444513634465060251214713976965001924203079729188422141317261367412269657031403839152402447585770249484352964227563415878838085425673309373664921174897587776195708254073957358368827417440035648968167450716373229144193852609359192274849928585273296718623113915170886778297581512059734483097286756195566932506366373513729459728113708247759951513957635487081702440752774191031180041441330876618049799453409277763212083632215635538270291564991149705393729957533929947067578966109766987673394427260047380953253054788747559050948380018467936164133267480349997450015657208910655499403043295471260358893800788840618738254898072014369642969211676529675574584317279208528161154541309090083980751901493674210697115212861395092238210744341410262897788221654853968668713931141836686640970148675347511387117934444002353013326255584618121893404590692695284653284055954486547728759347007881584587318796421642214543069528337424553136146001650377702670574315898965439152907289936874763121451286245741466085331123325566479121962113239907570207100131948564091022100878067139103734000722644427109096033918749859778860991801504946135672022178515331010914243772235310292286521555371493618999588580943603431803671414709021892300414358394903690671577969615395960280690905023148179235188357381525601051519450472701012786842547608609205130975115893529376901545272222591535283441299022630167399587633903064213280694662522070979695151579417765816399178009484264322150861028614957156977162672232195477292091460655250230090215277230208782456272624539344546822388562645906401898792091795808227925244931169520026659255253000031648179557297692588596795094374431391154075986044230558887426243435866654939068124370838133929203749582611012365501298379441441493664024740726149184643317757485048001817437892275891740043784211113060512823587220005917670388330503545692019899725194453688468263487750906005532048061340976885033217092396590030716787340672305962371294831029640202457805328349897234462854294323164824392838454729191374906280011300146703750451705040154064970999153428960347421226185073704178923180908591685050404532510434315643454987604800972911773141664874594310165570326960882629383829161100145458810362602532607566186525281797400323340168677767612978373068860074943709257225434264317304936655811251861147867381634867373718951843963178455757187441731163233556455642453382528578475196023845740275966206682860218957633263081062089796571277971153960601289428270769809683286617483251700102253287531335165828896749140268629080460770655649928233765298053362760743027866528626734672624663520771644497373104493113398868061619383806624860352427943791767828258752074011453954949428230402649458439931912989130353496379374762634079897689120124639494885234174191975496936663531929174581531038984872118157362601868215472380222718456035784971397136971413226603894483237047364439290013000156968350762058706385553923278624640502562542337366175994427540504214282277743597746444397069690332777916084022010903077064239994076723400368273178119471391312374135806811078038748312486472072250114005578731023759793056640248709528194192695809636464683110477896176267830214361520162169379499502887091447304645964517087326805609679916133782272814599261963369688176231158979880601947489765682877861920834295215203439384582815758375925087031494397747438658534620902771536517173381683474781464421473527327739546820921500349861375911802599906812198518846218797934895632150282049663415057980963909245546134303586884101326595994503031922500523870574805537218669600949272597255409749922395732400463736767086056924695779415663062215735982398070493403007512798639773944007131894401911681943936696124628960616776410903072256885098802584933166887482629928589247487464728295791792316788945988218237273591194130994582177945670257302209507600564580580850235987977306553789363691454885034264373445186421070916064335900611724291037524276678251866177138769334326757596457048363375026557475941628069222620347145693575621281789720189953269049806364100082926017697140367543014366275694197075273152981835053851038210163529978291452757366370498626806186839040647326316176083530003269926644495314250781365788330054575968776798419529171386721916046734803152564766379289667074980147896858603708260741843558342929442639599068813340191224393288066772831152692998924693654497150502826490130695093572709689561527016697804049767199510339093554101864921634011793089643025144475839733210908758217175039773656257867106110549019288573865126767396254457894617285351523949168123448135550794323787508471359145415832456468525836935374902114421386857543901489805167957475397896705332355194578032880739668679755809633606874837193969356393688329882940494945905019776791907595206001691527362886838871053118493393548406569598523553580728282393551998388834810520434260439684336404294512500276422453156894839380986261755829106037431469859221294001192963738071821358930605994834608656319605999927004207377877711884069156937358604559375032170704164846803127149632540823944109986891232300233374264491930528810044374634871923145049533328975006024604072172241669339843088128712781423693006980981953164389118508590519815974156047847841426235993642309706163070854653506334850141305000695209071195360163512990741621039032821287870144757453404294744348643361922661527257915660996760059507647754432384200093347518353121228028609215070438119668414795945122718002598347554462259002346273574269802109000149273759992814682297135121388785765923873164011730361163823404115889777502646857748313073659533603942138653640151424764197211729657393724141386302512416919446534710336829343358881199074164068398630487132390912646423830021102078295873757421739996050582029637381660922778139001592097417060671025157297704753645975628510382776419217303388515831329837010681471160610869626852242718541060556731447486300103135272685581855926679258299206606700251405096032651483984979975380430838872838496963317500156281681557288711743097673668136890251214096730678226991734360961722091839034303957304309188588958621078149356703505720035055834619852099491312276244469866313229039552263073831850296498991287639141324444802139870067414734000935311185759542373295029416857866799917572138972247151822450234840035647369618926779170469027598257628739451693361505344280220252130590733090261681506695566524390324585043292607030954779996374551543164344810487162218115801949022896618777731145783553037875515084218304650719777241843237122324337901767095590000780968370255060494138871093781686595182044026137056272585427637299714671608313956762015772988740292369464335123447529628154979961022646943975701411996104052899656309655167512190766347199705507099964900783184420952558823665567816944316074913951760916378482619743314174534469685685709103719188017474442962521638173112847438989472739448489927214488582820973727763393902888399360745868026719625199891956091682756625002644681211750605222885852163563650654207766811393905858428377186908878964511373754168888305960773702001387786601207391572150846909108441274696610483511057010136738003678317931488741104664540995100533572887631702998007782587272463283594611457484370476189938590142302154646202016627406669061983738079273043388569893345317903720158819139160597944788555218036717134379935022281643929109810003081370602963476107544059794790328804727713990883051485079402875617590000055467869634651948528824631160733711476892631307300964404479965246897940417681612263464561126699658367728153332474005393170327873952326344014539828298268318776617201047365711394814212294929893983328881537868512681043003948588721593013939408880813518099886853114200153979313291192542965774576324374211725648622630678701679124348973753793905074444031062593997463749992407850529153194278215063633072949872052425631746190433686752425964354718352978261519422432694260780114914247478639885476826709095734819797905007263833127371398059273461776870615127111978555672643535671227990132355362319164348706168379694649622092886228034164150439209810496415714299821071055878173121950727618715419572019275644490145254635592086658419602472156143871566087946083801181991770475478352851941353566789921910659474442561735373318425456390435075629441731461453607684539703660231349717445938244118746496931219122824216890102638222975374445419221222929959307707877365814253928551758643229999002755702718911396757038245278825831499980476212714268170464584153409673454819086900080174078102059695129970798053039800827161413948747891026675898444806681107206972147325946186864745480862313426544506655916365622713902380927446703316424763612809559007158034737961446174929473735936565496664468173394771138149839019113538172865888608835822373465881924396701957923633716291079131213448947085212390868460367120330044591365231782507456959358780708773902122886748988337134729270879876697041988201141499530618937856568934248871821773224093429329379754687554083242388786832116673578137410923635341480471578139321828865672171763687506442643284860998596651216058454271721968966718868816022246696019503701230026487702301559051212938730029155809724336020516372518690855337788766329118219353164294605249165534361121235178968632930389340113545647583809660878862582423160396694483212584393554696511682190887709401755143151599909832729389731483993335141852193801920906243428462810648613872882543677361323908314023596735959895210495166652741108018384245365038478996030832349987880295939408261052509545516887657931725732343947265493465824448297682448975416089214327047045351514197383061743709884304129078169132832561832361167393847556783274612213656555236591628022479180457717074783631904087876285423954496198893155624169428270514429848320908001163577056311434922501073322816470906487253861909018761012783841189637995495524560704983737703833952091668460624404782301289210867936242275411502469633860091542394814588440964716188575633553327864633192847439726502375196255353380102554743946220798016851616688989996553824583877391465807288087557831819953102069109673467478055255474940223047001005310180583777571737813837618044799523776023168812988880427793812966002877641499534657508460385383182327121189418795470828810708555483837224265900299943438629015581004151506391906409447849210205587512640137600459896407432667092641105693218168104081160779955591133567822180750233287653604480359401465896379421285756261015312387007510844746677101065391305079089705708404971941311485575391370030702704386974517763863396401257012349903733828597553009376257026287196379332108281685869838186741391762758168056229753850042567121066658603824433403028137643802508081717590288733623028526028889745482384233974104059696244191086813256302999173190040430962761484445501322881735846985889087318830666293900557899402901504635324838137007916128618560771116870792268900555902426262112098627073823941849593122791637149859853864259810290133242725449932944433259155378571159332028148447039572754640392394034726299372097646242567240392026697241979292740268236449280429342090976942020758322673708780682284554008638072852495347910298679771984945072429723304142296595138056941050263428176442726915090958194721787750079657186799617615838453507778846395480312167903638308802991950168530474947637937439435290357682226127350284571442703855889643472560140292299840090896374756487250334140505672978060489153334111012337150058006747182151493477728414957867444452344012997849111656093644639726885719964383473478154696636795342878728644015988937643368868598584730082428171600434304506026040160364973348870171018928389146145913792022472787964597176589896573036436840269669002570572036533459624647727323424376410374006677025964647328732224256994794365277042916392259480029804458572882930510065360444953462936546540412717617715525477239085172172525623237962614431183771732413533157276733103944368121482083362165011822794913427963355828931251286007513948587285336722744360974884708815856409135529796936983807846887343553559701973624509940198242388080412804366823819223373248291313394427196345595811930493960418279086921923613002546918193163313175364160902524683828874685980547003329924793460516697384836224476140093022141888165899600513554448960208719965263893916765667098079288421744273136150010325026274685367960837561997575758042289970524773254706073885750262196600945549342138953396352498416585452982361177077855771048868043021579075582662504781508841665892952321219525004614592256729743298594418330749287190133294362650345334287846798435935335390839115531065292017470028014163109496810918174443778817627627631618094155777552205345748502724155698291957927515314820264798908285857392697138727174184969643186291757234408823635458423232913449615746244446071850837306424571463138227760741434184954056692022994217450337709812372829929670153385189871477658007032230512728061204058852232534502620227107395843794856705458470645120012176021592404409103455413863280568626010484059226593122829485883346766834643114982240813487193893885412493180704976880772675009201801868422669503490663513995741317089178238805004401799197786717539165110627795951172414881624412140654553012555217214231383845186090069179784474781354481366889859767117542643942861175084204866986422997449715545049417175294526168484675598667155750925869646645016475385003562841735330082561421608505414004689102407124450420198148328276865759526129153661430674189853978140269871796818019073302834260841303786484519073080811155583447769207210899907443713862301390810992047841988525233210360530663388310166943101273228926598505819593720487042900896228118513684629466487491027658348467342056257697508210306608737400968683992244359664297302349994870874924404407161054739484084092689351625560362092580476876807683888597659363464748798210201188590944109862504610128585200990929539705113014278198848865453940302941748106927000237784482715459503254162119699638073714532568451641679483846551218764172522857420546494993405504343370676902118019964576705644673057449161547227147345423018416109575857657562066254183754181362475191294520863539354183978464414443707296945712144266974667845977246943104424373310968156838685185620502966983808942888434520313965323875979317999428143464849685335124760302601542952812330369654414498367275111885383599281774837496334213912122273568681710505611971284441882614685743677748820082091135285605374678414228487215061529233265180518896302515423591572170678549645742416251298679906543516502056020085140796922660465566195776756426169900295927241710641302172180589124849357579330965994563534697816523482635812627319511704368310074480302390323995715655678056469643231825404500362753873442829649807027813964734027985177634063821001005912711126157919974921739214785478834536261245166516913510734786236058886312235277977483039410775087547284323860239153172555665604805418758370967532820962641887142355834071785437866615172864028551140577632932420765681614601725160772617934122736626641248915572602773462012249414856542722178933456585371987582403607448325327314897549910510171401718863555765571870567146786938791484612110190232260007162220904790914584491869817474067567119400054829741607647741408049859410567365308223144097518488283055232084310633151971979097965717827337222971652066378251742847743913905522156399090315465676557883477590601944663880367197411710649676257374769315491946348594854358662171937928237481619166330533641458973409680044629458871025829987687429252936564028899985872931355619911811184151031760300669368295160051729331120705174373259166141143016944928222086141538145648599199356183061947373683876810077857596474143360640939176784830638841748194123044866900601436321091449640198386097985052696860685911136588687351179260339958993361580515559257456708097541567317561365356732309798066119480485885736651814575347586355237448076405792208008274744798376103212345035741353973110436043576541646831999685059338762914003729379622844420513064495680181398097996493803090893313816622080509752881224575410985495913726955518068216861317527243146145031103611183092999903278063505573410025062039700248098829102885730237428009245743703381230769369008430804208361523120077735764363499702562751886507903272573457703326839434273665192222108103391030352092292172023622337304519761444655393034451522799174749539904048154694419446616404633464172154227621286186072304994794904894618117377116029486839381727817926532081243442240100350239773205595991987789679277469893948588424420071063548158345001689032548896428624733282686252082356978698850622806770812279036608119682781849385179451199422595618648610432941055087883207748448053589226928175755592817487014236077938842117011925372744634580353714160515279124064509093343305432605956109980698248343773582640269668701574787188656613261886924962036955041453300162063932267368197525185198414865014393266365452937608138474009478147924984177252314614591233093564527843526358441778420914110471285545939876182213878217124120419042057874258797117831794690300488843414973268151426633494153555633556719507081816374537589229087569314732128622683628305633388582274285873152449993462633014862186575227705881032537625608375106476348938222355989404921162979824658947341004215833044392463407131130877372955115348711796336405484533439806634636386594340174895250511314564950908136804385102043383603026093436038504838300205733634523751773875287746232216377352544231793035508368358999784610937682512532896723443059058508219854909530655872336607948619717308310954856495051321576257130455644065280169765607457427668376622132903039569984357951687697001526311151331615311132571735849410734623495373873656655415191015090881547224121204798512442598693162645656343448463164381840071799632846524154569734975649717629494046808159900854998033883981623898164413440406353808727960332674768932636885207761266767896186569795620787101527995141044420599960477309808496272645310239756265736115009436403842614740041738075723117126648321781054310158037784368327348978095649714831752695295335369379581997838591232110733075921131280146413066746034788409566481032965536755721256499546103649612684853913250641765919372253532930565673569421934305646210523842568652689932786424187387549919699490211472311575057046328993327231116944733468751006533281555545688166028169274360070741745825687303761923208006357244559124621668794213384516618585250973760639507754433796580634758423906659710570447237344949021698652998244205339771075052762330159411711666363478324433070795742420016949833911689209856354382705289813900377492002096538875493083174922269219772367670419733001004830287297392270296994826857643890915056879923471831898135743369214883415716898349265474343055888773435044137835801849624158288855474594816313504568948177554641458138165035553885278384840523998710076202675731763036595361853559612144587855841756995342652985743468020564973760399093553344866172340262518979160992243664542475982284583000306484000652847222399653395259593770804830325825353570434156888040848323893931938068115671798283231989190715063539602922223553179657963803751788355915569164672742665371243904324721118501855612580855332796521181632699515399551857990740636821710481917291926675850613534327035584635465886230340705027194478592695708503966222535264754762300166126317022783579496037953920725329408806841045391419006128910927342849034550153962387170705320651941246598650508669506639837017997644812905763778929096651045689373667751248440728131556059627473877985433755106032406845788509804695984581957145410749619129618917683084933238268308930468015487992181008324751936822409162386158105234528226202981672285003884502029962621587662261856513617435533376350178145917282402056018293162885611900906503633505627223092558068401125220550975864299945867072251762022770087612982838747761283250022806718629726892990756379270678554938255433055129221066075198873651872966737991330959503491591857778379708027603717966899970641749453079678339036563599696159805888549769827294615682868010704455035724606018357695761164715460380323699129016496140688995658539694224431536167875401892636300913660748556773367967928392979501894303205720945693196608714078218813501146525782221572908072194006221108774242561312412720611708684844998442422424840884688253108549144571251631318162501240958427026190725426544528010476919849380403568467316466540559579300618287611674694545877575012465737885447932976558289439052431155765289750380095535314017103290765681185032421948495060264834418428713372870756194709775262927390564055632809965686878259737150693189337054039323857591304222957570706135152913739029089451095315857188257269811997403311045867475120067352087054051782755656796848491727827693449743015512606771233054315769486948462502491876015528447778801309799876349817525082677681738179401840860902370056973640789795310796881512729489914220213890665045725857374149555053515280883703840217913667220176028051137218931632250367265459635697694727437813560530046607865618141502110941671038520892373171250739655110891814618304384515322096865208594481567966222339810806811523323727133856330550052286346734347086474677188865384496556930988338379013123113774722424046161230275260121314413932385172510536192706005348463572221828719953769741592228275890319658573817699496584254107842560014111779947629739918894884984688469509253114183694714635884329515724827016234990995845814800235426000085603006347271037129874385246586887110680975967335502921250294299928183312918037541922212912240332662005938240140693915261225252538586736408519473527007590998700762831371957812715668415450702700616014991041398829610018551939259778278415084185893424360422908569464221087333270078048530865443081275373610905104726543982121759911727379398542360421686766516737548892214402424986908732049916601407651443382631069346422131923524754428490363249512870244732344565886128911389653756830888900002324553320258549123020763735000216049604448972452451050606845367285868240375501189020996955617417525961620315477727488934678666831342734807175879505854276476879733216757240890654278730932517620990157486418942743355023926304791092276808177051290457344910845826883213913221360710312295818370825896292913807366334809137761591289286672227669315262177500240355621976456693528980240517730929082371262415393675639884691801725800898812497538132526172722391980771658027096885808809608416421534383072574539265064959841717652110692050742203247793857213603566778604711279194048910761403444044551928186936937508613556820564062596408306319481659951386026618143267713965661754435669170650025782497900217078017298079558901205167800922799087339502332235273956255667635914334479421182543183735200500336909768229982270954547737535986621177735043944277678358267342430993387984539419003342103514115509990782134046540510767380349362751363711718034459298758901630877171337240317389068300854770276399085017637184121184582533404715629254936839814297108874313064356452102453095204739957174523712041068519713413637641105894002049703110862025961280825242766335329443197929443635935840558461017352874867446790918679038043541238963675779361164595383698777057877838336245087776151715775898170840647652062306625492068675622957821203773237128205787889089786406024002529374655970834268769512678556859871436686258072147998222756017896740232874615496758180880680052649746737946210920181938727013109018720938067030293531268222745429302434279615026886358654822969523580916635537821729575484746637541493608938465810592832670317121026242258271550862312903068245194072438850016772060305778854646098989989093614582866896622730580732259529271110907195476688885959914338207614359760324336482638814195093718280956455889141345192303167005136683968539756290693710556849862639608324504039327438829152327777685121050440905323589393441578684595819909758255977614338945218938568789919013551963851586476758495743118581078698853566361660571672583333796827386720420143165791532733468741400796407437528371685742872357723156930127741455336132799147019047760185595661247051029499690892621230922017449322219199899789854451592817721161195798881248882521740374181387379953151377212975264462735924246645603659782172831002051453882402918401920573735998574748711270823035169800583231630852547419891927949732107367347008085565728382392512670394649003182537581469452366109436210264894452509960293507898424498665801805330396462609926185491845610927273793440398943482376568300414601273708578673467083560959953047064195427886671172921946226944762779189175811613430686414388442179710534715057528756557238099701851807071963399684435817479366413253393281554960680973057308971984802499150149951001570165573347715525637250948218571504370829477840269699284095060522636124193258902433417400181075223074599302286496747197155762278541590392847245475685165513043744045002994973808272706296574950851970737005759868914992478852844896811676496517120635179681760320252684055790388480088136827211749134173030781630212338295472663985846870860357384834918216520219890184836053429312746336243468728497599772566467729473380831989945746423294137417610033748006664699370544097586963070511155447042630828863586817410941431330264636724204867486438258770295133524905482232171904091859245729369412649080789866680665524106116618526542662314716692188822971100800067165383180632674009267165325124316603083012197849450123453612059293981791448347517545844679277810299839358811123567109322832288682416354244660302497483794880629839409770413234345249357078328167913602418109810042197824906460237570678798159392749002118230008996975948703237686053321238034285244847165547282278394190776494216614422069128096906925608318367928751883704771108477282907121239227796234379881537942243000758975947067534802829249153338176993656372203635262061870457301724254585900416938633119559265318054247609094206420160234833268345626047798562377480514490585096785146958216139173016732058878745031112146917350684513868426519478832455200997759139498457514853442049757347787046570581285434505024939422539227527256819552646252425662959895124883571467220724372991915526065025202856129315259685555172803861258354554598335362616515389749810495378457282855043530937834214315209190225599976703771039294860399443075852266827061632140837453481561426418962087163507264429903203570812376551808344283667290750276873542896867567555058099392039841521821843133842690966599691265501368216807522213606828195901759593884063970831025088857456509195914803002516234547076867754159647548798686701161725684950147452411331789938306884834924448701580104788857264755451607333264027600764915466404936972906673975553843784189533155590934651038237222903736595621597024694901486177767757595573450867617650457881702891667376763245484848139147055675898779021979070876790284409522494566268812029405130383762477438667224134176908321194549967405423846259785566978559847137245689181514409843608647482771101282473935808249689909772877989170409275940116315409061296956482790790378741954826375106067435192977821999505073641052267633074346927897365463696643217561116858191595631271600439308523651604427855450236674479864345897423374266697874985874683808898775866683526551750009804295827419891657067237089904559027769440931004209811541841350809869633064629056787612244245759420312968252352245541418106484267505113545402290973823255268755124728525915621964404959324656589260480089486329191975323903476400036568704439893952846365405427397157192465276370837374764916320045988356291266211662825705810780027078158416023520375735445575319951830529145308649532451357319612413898566961222054698430754504598034207830485046029792178530941224560539458222455979688671907985548417445565810061298662704375866695839032871114338051344910918835870334373872784899679485607026105507630506738454397622354114901523074707979677103769179156856387097525022202270750431388421251181742243411169797058586801660849600074171510748669809215821293130917303951215464981174470318846078083899616646693723412987202544802939960507562321519618297896195189572764133116846196771963466837479625893873795118463616971579195496999944696441436941709419032576738147565192060778232108598163583578283841557687283508373116663612373580075891930542861079147853063508933579493976224939722524771874189207105368427148210974431272414212079809393485857851812763736169007882344501974911526260708183362335480037909801189485083984794171108082736587781236263526834371588117870780092629886904387232579745276927356436194810323692774553301579501286343853654434200113674193043538648455531797917684026584684919793356411344276680598390305725941681376842108373535485010512198939146155543087644422643748104627338879252662802019668658618643788590959316554759017421363344571463715605825480754352516996576804427194703563810710357531971264393927800074647916519534100434849183455328203550376412217452184792329147351952720152179188114195881213767970132540557321318578258373814649343470473627531417227497273749009053550817119449448571663103596902006138907720338337617568518709545721889249314852961514295799373449834751933021822709738038008266462619104906122949323541312504209558039541823379129452786869631919421138666090670681828474357899857177580187676109717692344015154329303344930570902087031402595722402757705770526122754935605923899403688335072268772612238374379271675336264332984176509877619510034396529279712683925754226477075736148074214637153118389736761114111521437422468714477441431708752238308547579738125564362123706219184101626280526465491722135829794698942030646450732484251964786239374477930747021063305431973532401654571225310632516812040728972088924898492478412728716864158949856046183713121418853889755859857039670531751438375031422453992605637644841255970444968649745134641350851850176461969056348969074098098716670004895410546846350185870643060724829676754015186700147508582185827119918609450048478612483824590040741292656980709334310085250944070737143243981359106561546052088617876112627800765889255824165910327081761324768631879481541835712081209478714538805677004574312979828284575196700433237329531887417079082429762941135289861016882260244995062117321876709063866467376926054408652130527293566585359489905559577787286849688181450830026206001077049956995031026036005045450715079222882710043902390492074012350487078918968691056164141116194663919084417188933489654057894803048361932907987779634695348288975817758261844543359032690939413406299356317712533827863516843212875683009621988978341556679079896527437225436045918151856571845209882950009570394662603079439666328577920645267219809919100416391147998629772328981643683279228054690053625859007868504328915262538844519027473792755441141670262561380331906210728155883172585757785841498863954804137955861936763189729072471785090701999286410763188136672088339677065800049923095523096090496415389921714686389651918841641289978040039468045114618655453509123438106904618287009414596683874581266826455946081867032888344152579942291162408881665021227778900715792892477277899712418094632579628029143114995641410806990256761564572332998356970829152857528225971728365014438234880864720315875452136383074247796580803996267072438342875354803434770768385626683892051846028927514054170963728181563537696508680724237905325240234777676252556267917044452227430542575831438271016151929364943674569030327164751732676240688395152076162378508475425231543567433491675029324362054084532900869434719052742787811524176748047304154584178303525499982642186516143585740032906026739073362243724129102314830235916176348917029151198576974261128374997818647891118938070354808526815157220599464596474347558771700362846750119564598098085350118238659735268629832777629727563296897114919641960786242394565298681855382514411136762079902835093523789339517510542755720976990298791045370320843041912680492159191295899931141674225311335100437125474963522287552658867556916801023119477453789865601351674137142267294775199085367462625208880635578875876145123174574570683157509604959979469040880082273868538087618664910751814820233708313350187037546052105364468001886543392232671614913483813279097834477065564005313040209318843144453825651981819427936549831136229194789220233571598887412989953132242465488879760566772098303577443552009175030627628437206041413730259030926316920089257774684049315961212067137467242183812987243880812447001669989901102602911123131111832661145769857689602735701651172295386236515116428764930776015106784660196445938189088382680459064585886640552164096073134538803944788491289381578780428991799158861112991187729688027840215049831812649313576491185223298151949939964002838470097856208923420434921691000377417124499543266153153182738349833445636847684465784728582546277376359959086500676923025813093687352377843184142250871325591015027678907746531450721908961218937086245784995118519652936090748288391930087422414908503899504379650401716161469263101825132205586460361953426570104337226557441157154095003161826560942579631535137008503519652756140424817340670934382358587394435922781232656634390239480871130871289940669049383494914432431657766297483867072836212433709912869305276952696958288441352210535976557534078844815985761769180295780264769834325651669140349256501414850772152761893921433703779681251874757128147198019147760263100781983053435707271401037181075102101503126290306668229847595875385968119222502575546024015946861427411928646453804546087189370094833824462495931582262985977853385765622683651191032466020641931961391440566992866907716747200874389194440500155995278239386873937158766243917190636475912861038059892073591735534291216256030847813881257693423162324842740347536182932125506492243422797727847487135277084040671269962604169556300911033891132896055148613734797124690920625910194186896095852397142883458624769468569968762342148190754733001655909247344888006814755515866207990940350076925825694710279393001460277792062238300830650231333210218252346167306664502393501495960581768266251321792212026476989656083986898499221552089854111560444376975325881412234693010879219563077450282077921194510960388961560921623431966177912608067628824584592396060043165212535129665339171047546699712719209161723001122783635763753423992453406188178773667654492671352807858241314522698470021661772514584123613598260380066922996268576919139127618806212076114902092302229080058881889958916806039288674230998976747141425338117496810403356313413309803983704138780397501292119492949357192026101079936460060016069712354878332242132675343592653700222917099772690735644347383440904189197866143982600991699847730072707811420636512240276521191176378344446228029556427092445555202162226090141018765116460335131369749095675373427732398303341114866691917787437639201495962195766342938601356656925921518088415020637258899458656025841833144975588834078025152539774105565078749701607470263292936234538966210645839381042291420765461540534310053881986445822430790128998047607403695592414794974578619924622267238843585621816470048799976306612348347514644093655567485762088272036989607064121213188809924768149479731958169371052333083216452505116431972962077369976664656120195553805288992938233220043429311449718017530907164623405104099566372955688161431837399541570390182055576651929375014717514211589309885251452812414736657954641822091824512607259747525506461491002864693861204448623892912438020577899137810417944575354818122952422678038952500647924819594449512463139667079065681934688165821908388733101265760492230386645853956494981819478633847799080598292969584540008221423106039369613567070061312437744439787947841605184223778356419896584316368250641329612952651410471389733738141383855654763931503432110194554628404823079169116661748313123611898857535970284308010262910245870984471938000795800027669297796363224237319884621017930572128675518732688192157122646521518739436967640062537699376382932660222548966092780330646083430133531650111417101868312979263306830200864596444395255196329003601206200779238444327651551787942323069195422508863754104281781794305814835572073050441806280571890785488678232893530211190540810738614086678184622033638433418580548226307793353353437061810170081611356795133918132470577335164842118427473792208827656334333929195380818161993525332218896877107329850946219603138165576148013393627991470144220049251894529865854194222443456579869677463318944834754329467028259400610992444853033677024168236470820568750629542363508176796365617820653608950545024930582143701152552859944546030470438532626111735677989342217134846178565953966224772731743824871805420943768797383127328279524868346376738877479326188794066809058036476993347838195685307407465919139544659882238673756057462847142304213325358914828336237400405139044326300644416166352355794199850162650376009748955889112328675584871480455046485036974971552523324746763555487289013860876030179148344219954804355527488302025073197370397046057767465779918036154916052276318883908344488250930943857660967959744537386786986653199199789179174958320442128943678289294204961168468726835099072297735301379670499404883096775044528464444801959237830201331613351749223843936889992172726560027717221943462985601152530230295346280555647456072900518975546901997724807760122432406054624392338344814837320990894583982514910735990023975961135187751023475493196384254263818098020221690797021935316048114152013364640640585705135910401973521140936933299581888103316797235950348724259867904470316788344994462563978588741907151088650163664995555866704601367018218090397596491901648342035091775153853673327788091152573955627508698671453267382577649817829157753847442030496123333716308888135257208021315490394169500757369950907004533697800003376076132625311523820965632794204004028673727121173082231202539837329005696407408651780550249383116906886007457693470491941313024741627089410660442676217442737518579472229851573739777078819089751629729762685612947507511330699875308468864849924578989413253723826887742908075199881357898196865378854012764867204647618443897959215016393761783959275586658491504874487078361724317976789517115094261956182070154865557558305445636534562644678899837870283605836128486031574264494324690427855908423927914220039380902977517477540296712975690931340358809004587606438096579415031444448084592051601430594004337679355446694416686811165605282339209366766693111343922722190526731197038838552629252977882815119984343270921743715948107512316895270952826634036355768672585718080095461451164071301790700681495931410543730398835046388911034745915198665882487599860702765489082294063974720271615195803236895839826293486583472554713922525584104705966383481774901096462517736077976706104326089062641458338768679975894151597972486976413276361638928896065067741113246695819121781818834323736983740943471312202943560368141307436756282831387942321546494735409872407772852283852601837447894878452255681480834088057544878202498388336252608592415296406504965172306663067448423639626363447897035411291925554375956222605722548513083111598631444778759917193586753533128305656744021308409283547693153873975511620701913122640388842500562394520217396265445684473278062086512376102232945627995004225098858628998815512568902771839455402184872416844374664396703124074211975562387436326301213310969205077513394316273086255312658221056400352749974350024365121930989487374223693309988953636795417678054522015994534543291584563408887509444871606350263285111469284043721154616871254106555490547080299550355145813023882889441619522066882124164766926523410813370311320711936582431477151697045127507748605948800374479687215179336379842511729343438697470724178196255585311298440913989969064000994208515993166920300019734181340911570677036771287256270696113561567945026528296705102202165972325476807361612072296458977299855102509461151603134208332635732363065465658391521700745408388987904831995142465948223848315147910224353303590935723101097670556898721456180362723560845614391701497763554697095932568121001442675683200308067246854327248726370869280811947002840314230187603277025138556781951107766492484483410175554257763979846483999900372031252785789480291737200368294739575821775963902507123123565641516274702786014018961528215318908606542565771922400217623731642898066433775884954329358761575632103517729057138198780441499174448978985259336970444609961814003664846986228261201298214527345179994735159011028726794488102947156925288155419325588154108083288924171427481304530161827506752785864454502770452506842616081232758915913518442647311612592413011392536050177074962332484656251194633466998439030526189916489515490671523152815626758929230437610165406769671406509541710729494056572986214382512649412787412451149123775940252478138300059572246799011330545582296327291065703460884595909114410449109192972389632735068533528584472529319928708044987598141789400460635567450399062956009989880668528117035455158773840780620163026194564882903263840882042351213121617515242860994891488764561797259683610461640274686491725004535329533235389806451192057355124511241975443137878436930558017297590240762365536804584764832025396876233934101624763491286702751910045808010614093412218827612805610885249020656570528644323867827242612785809195935948869572948900896944295377146592273902566643972036735134656129877313638290239930595096908137045069099431955220820232638081815470515794602686692204036941021739400251315261618553398143476283236796963729959392924382067476531990076684249408873775938967646404009191546838154701719222160613019068998095604160219629621624364664152341592769888701242768608446678876030086423891029462928525026225967883408186263265005080770876116801473787266722802442914720068958207159990120804463299225661744425484464087392198842366417509318015980591960125276304124325327817591859452371804992923204023854360715346145488067092025616678078197970463667999384038461471145859263998662720854008599728867926984332341999193396923554341113371222796827635241360272125255647424721262634772141423642310446504158653675458738304640615163110400902267703126787791024598585608324233350122714102476027141892747428134660531945747863582777846543860376413776403881672057240815035075995674909586156326817625738224745071392167048343560981799671160680140440684186255744363106164673620264383443261294534151068170003666163470329179531146806312477204951650347974195651345512617233830555657982146447458505208625649383891351349122058400410326682649985037907476282928081367770612039112859897091046224028529764140694893490564408020068480271158527701447936716826451487970891353857143933342361201994290135191027582436410462408946346233530188635156286675908740004553440962421539897702618311528017161813649523940016990732687512244020628954090248796812296553559434347073166356245800281622551778745580461678195021547332411868579181983218831718773669218026377302428004920737292532521203212179925579639102747788418633712556633765904597318181269369253651148635971288460660297592892592604017815783944472711920262352132466694119539173440981905285696684882152680202390610538415763778668413595589214909863961513639731438697149151557767756415147856442459954890010543904413815043923189421188058422624361249488161531703793587632727193344760534892985477894906371748871782696512980052321482638844382554336720536717133384342669575162030253366824123485064897968013020818789768646199029713207545223532667156327240522445798475255471995137484164862476998940326120010077187501656305846241000662328329021341091597395741095021762368003038441935611455059309637712808893621075948728449731411085200171745805329002602965584183590915685411882204082766434924148932767115225053942011336023409903572292305669763546242560838195465279887563260485114214396078302580209312378235092210301323004462343945263133045991496065509544832835310400489027083301940118608418445636369549199362225702359915737211467772159538718248084114573623579234372487006875098682224962015126731973276603654583240907072668018257086107991254441684507514950400963830207190904194627226138945728356700725099549880438586244461980371120377394036313683105478395938920565528753479540961741204970388986429828103373539017716939131293346312868341797070081583787192247314553974763129611555026829446347417146753427573587110529852805493764473482474381841902859286754986587563476254641039503189353050719195594221011883711091910750226730704165923884370486727889450273134962855630463666047987933335712274338842727957418463184419271761574046986036958900981140862622703169447111049386431490495661469996855521531663821116208224399132605132826705215982945668765861857007852518817860686875796484074407869549171640384639579238328377061542135385385988889726822893187087626091111586733185899992404538476047477441308726984906446660803978224363488785468934653560366783726800961330665998734556438987599073677664962890755643875869728169962362688664459993269019733169237838663224116262522269218257800328840371534705499307288209536278887733611386368681829775545665366835556792970742400632668344947585265255821845177726953546648635785550749743824261938305406816179405604221083128287854749592485754231273834068549152119836330854925396359766034908741665552924938734407974879395879168673837607908995142104390488296050925751728421539229881138620217607695125257119307983320794243541152276867468209906644380200068460345298533153874961292546917355765243306441413713061984259937481728423709788421505736076611495048670370351577834948911457760492168049506850176585112959326247793917959749710516935590728673006622836730013021189279057465490204074400451512011630001913729681758667165803640254173638509494889968857647931139245376046266431528358186881779698670767348665237342182132770035476410214116437845722791423969170642980869807116790345563422132373828941902044219291967385259797127594742858033885449680866282588089992352911124840575275294308862580241552674510131634065968057784034986352638984724850485928114915831582277863831230384273127315780517253040811096347379645967989745450722912802237005477462828032750144415599007288464974628754350674147525474994982575398853537397108085335810480952771342196392093337057995352200905424101398964791894220287820520803322288773125504946280271297308215015496473788118690540230501780168981046061471671380395549805490029760123807809745088818474810117628795389871912316676920143225737423223938235968186124805510867651651012601508916200083008706110214681376429256578905619267076162318622341192550798128960309761326548600669817604662477587679053997197743268224661675477503195633931120337016703239076448706908057079416148867978244492824083677760861524183840630653797669445207892584051744195660148775597844358057483950650983455267083126741755671080081892489148405121520416686496565265766362177945489729916428375820929327877358073834584729072845740511348991245219652759659452692778282613122294370747945089231408528935807479873091900564083938724910186572866863286750644463465238408362583429178921667280139724896507518382673996729943753176650488098174494751661356825711005861616907977391407836632789495320831814192895675655249782598801007161020249182726895620255180507372524800154495247039060935276425912631655960647887508181536169403328841066573616605692381703925470670455245968269461673078919790190801161453171880637734946988150367793656865062556933862636348646465527065665872290349855281226879629934959429413195296604004338151608948109840325835004760593430940116730452157603006475602009822151426606639915671171350503868728252558961104987224633710692512152335704461593933126542758817896701860380134724921811182080992017911638929796670967865526664517649022486807305468706098605079599382510139198969406383275777904623774354982715950178017737726681212179628076810806978929509615922067767304871998175390296551866494099843756268773658067256048418905773876760762410121162387280266955796860587621483481393634215805207619965112670663544984791080435819094776291352714616813793591951692875982342302818913051710769862516165131915092216778736744694899033816566047465417817417350340352440918631842509609736944056749365720135112909198429751614866690306016781595582916887859554014427290997281547165748269541809783193370771155973358723524323647622359478282474626167969047936426969997807447069469763958790922404013081322384473839831501403221915102810542341813529386919129306227454345028642233272909700867229542862800466049338277599849454392737939385039125918754505066051142121226180422024318093295900364182720283746586875132826468013964626488897492140458385488586249865122081999368264621651972999161910344937677165345134481552252724729638849526545605691413447274222892908564296386746480871481355083250502853737430928271661076189374619739307447510918724334036783196982682468561992618661078146578978623424432090554940417619107173291786402905432515947740787184800063419832825486799409688838291543531372158297707037558583684878438495802920947834211781759150443713586080020350099148214618313333418846442759016799599885938151298009424805929436366788546284840088276049206029796231583705734987064090267247826926351285245271245597789519943928998291343477204273719319572404163908762200321293416916169878533454245075518519352676104961829802604025389154783475944371692805114809477376104735237102013027028606898009814976779793786194563969707591759334696931093018680348969272821482500661509994971838015895393114546046928169555439291538793392387760678264952228803353393538570591616112600258132663673724797085721665759198730367221930676312051197853734033855112733044244172251781292097771690230544186558276249278856487773875533421485622757469238769979409053346533364614041605905464671977806663263997514936970251663863931039437066260973347579948294635141600573441626047079690710806096385411393154986872995509015706702493019960490034153913759523216715650180439888618352884550711458665475183149684727472221344994032746314478271908217477385732382654275534333767093793998163633460903427557225418067922040800942059440494860985647448726991948112016465670001746944099015341547548276126923074604736775842994705948889077549089757591230610716794817638709935849977982365318088663816130370865314646467550067584881932558653364246754102714597401328811836521544237261906564979473276395224665570998091711321471050597153857079228846576512506399647138087250424945706983672339454709909505415504263290954613002371891546180737082421354910529492974288663041934115932073223868011094950350998724210558368358169909561249585972249069870107209970027628501337812245727654205666997812990370934571391815807547557952737014599700654282513477559652423882549908878243670708377902157462705810412300547281066240539959090215476263439150988296780412165998432122330976379497782273990480407977456435068321266286368960688166671692836826744740125440954654902469104889789006534862468196663245755067049552358936906275087090914728939752871773134019875638712687150268335422638217827796897287973878862945196219304698976840885472942855776433402969371817494176088233927575467378339164346944872345186345329033426966135165542832662845602112783078547143622900729676612942671571911630498641564200105864849793947353042498171791953949378911693866595604042677366696312484016302229832377520470441910181140585510119736392898008217414496951024462436498562690578320074580272924372943597291654786275587030890180400691526106909995482393192127755420637297631937763730311652096431324685256316606365020928673784142958798517336070334782887614928170177372251215964121096385541664716102591026681049101367700829280482592562039907417932621164972742538873827547060729651132232213696580606471987917513925028282350279937041962660047381568190910446107241742110915301996706447446253432321472207287776448039890188520768957784683122675424428292258275949717306897907506068820645302863230491660419224137655754611785038416577471874473119256678104251859345328160637918169242472386099993507349219249968916261515431492384056312262688088836638196176582809670700022871200353179598733068767212319011460719024714689696656900632284205225560612322480570269166593146078555367030875720712297819111730912138322898330296181823686924057104019066591140794796264490447293486732316285699865847953169214636704268262264275115206908901887789194781078158120429026854473076645068107796999586772439635609859180815818787887795556618064133664223116588865025936340105828737576767815006775481782760017786594961309129202726205477689571064455446883231842891733239396803515541238654449285666964881930906727009209379091405563127922695313919987875239822686196759350808082262970109222481873540703277245623422275816162621623255959381249139321838400787726838823764042572183921496493061996389856740310062414580453577541455309745907051407765882901062987268421541333705758299181552795081515723996572360533626441107521726139097392112698225718754248329274488730277543032040759541088501472928661690528237551201520193281402692194331159994540658582299248929422826161569197172416197781028746402057667095940179224619417931956180619909062497701707743710010758539978202798915919587805154963462546918714614745066084588734497476008887316543164106252282127437165568396685032062135692973579319142560263604640254573659594181327491477784219646415673594191466541996184350544673218167305784502449426007141977493951668008584968137443706237519922861813639448695831005542622073378636900879052213758618214814509375400073223763974756102906376313487917999658893399296599246037870846698534675691827203845548229306702883036002218667712678793114615272410160515122727019836879069462550857860281015537978839106735937929495031116159851124297307016547562039904017021670039041286118280489346088264013710881863439065985969542011958824716297700908015267661060169986245747345701629366838545352306654055495641580759959315630765680087253331208412418113282633774304160692766261301596271518804843630594834332869541537249673886691312938203479944568716921703051814605553042910244741294114470565752028694328964339307032638726288682896854223611148869545248299156950355555414944159952719037808688400209923635047443509339618957196533619158229660763402644621425795361643204626419415206794840039867887569099590331599191546295858949628055102057088975934647751087937240704060204741601019831296973853201082534342652115556302762159325524648421301586368202820194881612625549616148096726017288583592221270409794848998783376279825797889621475150870893776769328755749913339866206596005064017720937681495926907060864200857956000956967427110249230820185268379598732979245300929733934279093791888555074906585153931651256394604010530745391913566529225935079616474543059596408551111445186004406028927604838134796313987847464198038848722218393830510977579440492496465147780195654446859774967789742305589770601565058609276914203597095347071072945690167009346164608198835734665109410892228747863436683532848683014280925785539838204806341994630386273257602349110733986830603231436448085030357464557290998193408831652020432259387022709354922886350114068777350433833327406217241434440274544700074970802171849474316777987619043450806728024606368875799926021643839751917691081451680514526212245264036490835529337786534499527090989907389685569697708115178753235446728482779198029680573494467560042888333727196552255943512287011258243707943033549495332938291498780771925620214693743454096961223344294324642824198022312609698713584405880833999526078607358135327462504179764398700550751277530297016167178452370743224330836970953842113155793856102656496033233030537582492213645307635990387442484030826647560822967551403152267305583901086246246114329772522272809176930711209047444002210308637381465338067003881206203458920818231746342368023184775659981489554744812669361201334583473282386038003917060773345959413923355647118502569545187463152330657684657576514957080042509852646976818420027973508666591670175601669851358193276883367402718006739134963681491800001832053005117257606930009278938889441343389191953212988350770693259634580481745152399359950499706390336332823147405601510315642158520405278853540482322418974347022220580008697543350653939528338169575625912374607620710257282565646538065905572994977775344136373746470984273970611320256348877482144594628982050496883409270672780928277330700276424608641418239554839015909860927688392104001748008849588232246111105951130694614222789927501834153902863684087309728981122520665266434340326918487546570773351590448516523641415527396394077727269630050391921423548775441662665288247223714349509495481060833951528300438646920768496149788890545539816389709645395572444310465593850652762648880298077936632583068742925820516481425665146832371364081361321635548693106592692634908410418850885175662086197353917060943528914907049693060518900412313403164519363261202210315478592576661405181976191292522545504904575051258524523782186971833952618833605105339208095917375903348438726434896875863016121036691539955067677108145329844850285307654302833158170854602416650483847752549270887062723476129996611093410880929051341223471363995897865158562170642078042684137847489674107231211760586668442320357000319331456718569558584493625762748311036018003026304371111161550313039927346752386449724988324379044821759372165327665168523397697053758011190476614731441393055850360973507826476996421534369692966541357758258273101667646942863814593622175109028870897027468544774567346551752224137468486582207226819790314751568288405350581856637889041695633006493715212899393713404075804147780235757267138324520822486650088247486777051577872841763282440671870762460629569440682759063763023320525423468607612169927650347913637793776408286520884585235996286542883363081813039238653201944382487770492418011510594786460565571892398666973902155521433534183584122565058382846830645162037796479372351363991245103077187910895829777970326413125396987860291779202298759333720077770590465997279410235261570777339778498293488990953157586773362929089909090995398112295900333555206670000786032781877966785226462900655465051742354999423948379530524954066412603773733161615346030620722457951618957741909281275857097210552614551312773371328394208477557761230347762412516980721559848330712131224970246424730377558843323569668071801882914932685286886692454639881259806158248841596779747173747628541397964988166104019300517207275982591611706963640759007404479330032502258879613530374673136499853743665921249340910378617296844691096259435361841471944494816284237803749870244765760490571233119810678665978500575302646052303881145735754434672806786291028327773325307493721582125326597527180850324589092152312338834724209821569380296593733863732562679558960431155844912961945796010364737447850841640509398015221932525944560558942581538007967029599357055012336406501821983744152770930134278832790689960645427798466441437215008011151563875092971635102112391581894657832465484757829961191328228461898902611998674046865233206940643169070685740755492831553930128115295025344640777871172296648882737673021073495704945051338557173165232612810817560719201048986087074578066060523832563015360803959035970368967836440031508754584163029207304292891508883371840349351996599238018380402907282463011419446336628682171658033871200408627406220196247640820337017116120986970363276834078001394323071465872474593754926757961212717178057049710087014604642647988303442331064587472051320726088039020535030383061577295619016758805857041875700996160856358385298898964701791989103889942064949008330674426740115867101739607423621595064921917329253832210601015023473065458768051308004744916217659702588722149956510900742075684276907680124141319050027001457455802592482176037021272775635424606742714165673022211084253065671458004793382810819382488877850906892997069661367352788498902758498145957644848428145195686016822861061725785174322492132058968608293897088082802831032978605059020708601462853165747916467605457486299363387365735568537941305363677319150545251045950063032965816025260054199544705701103045534561661251697136346502393206916272662187569031467408703356151196351031479357750758480465275532762536192896430138203129559005857682028451628112276383168446552789505843099214042133131918054983179626139850294662789000184214085901287460216196178449030874045525509557008430156556703937629685429535781344046032190644090310523210135275972909456597362102617107075049813199486730646648199591053094318109325269393846095000357843253630699704912436818159084883909281058477545667582567582651825244668320601822654142801644280392136446858378319424117736949473596129082629775253330626606629592842223932428825152522492818660405116236134774848660425574488818865129989402588366591468055451987553115365789949783550983774181185917320485901611014320551384233850280859497364568677513589440843131723180328498911854196300078440917952353067789016429582763968639024502699835482589504432716596185579591619463203365749546671790636325679563202100182608099558094898989108962932760069678818076709784174686333468436205507336819738248955496072830021041367919739815018383687468765925518875359854301787717199679592372130672406002116528346545509102451311142328024423362180704676312044282815339984353702935532592366449150004209447501057337411522015936079776738192478528448110946049417984332839317040043713474648301495010008944843530251511408845665922491234026699374676269855729719274821113007923896086702850747052890442246627073316845016303354643224667070373234212451967207748630652685482405907629271790389316645048323532112463706644088393302683184424064739942373770724896811939186418100000705136332461381216107328979873418867233370059731230117766834342469221397189225638326086147906668757468379187769369010533624402206647790387460932809144906552913310465249434584383235881814284930682365204788868522841798592493017828499361413620564351038650817452529105412016918266206316518678075984718789933648574569880801240614971345101625618825665800645380440168771740598250136106226070716885736769212818264721831068510904257619813689292275178751361067255824578762038944720558680787502376061855968014328040686637690759320760736045355220015113204657638828573814164036902555361542933849520121018307774764654493848645271041103109838103068872797057605136334732165142785813333272000578022128126189136509601152460660389611389376373121848399355054431508674461432785341883313690188804931495318876713142671664233798792945653281277233421454924707208222595777070700604605897437382059135994201808632408048897229689555864185462631855985485721487145235911206868247238695094380087133714431849290911030628097201917923838227199322892463204240648417593983075679409755698713453433832848387144767278966502565958547504263124742272622362690934434500495265210971336543212584026515001360808385155072707402605158464814625822672276268172650349451773210903084585945524094430974510271896794544867927817165828906714958618570100998261201957208084975848671898172420584323702462168673351323306655084451535830327491657790883618087447529509047738466696669981813843967013875120488159202968991703890759380499208284249363247955836759787448919079695642111765635676917650027343971021228499921579976292449465113935798760212758007491533135336961529417530129618551330615602101222932431846782924789008762214754842985132118587337818476543085579238805160882365135335310306323577118872833191571874907360816531041480075424778175475106007835484357154398603905665442047250723726606611463713366480467364993051974604209674595075709704038620427036470880538520230316435386124591059141158521280258400581472065979607793766543493361308338646972867031081103066280643376149290346308292796067332997105774762675662203480644291438173599461973862782191055985835775301076778263882626202752099990927139742156565536318108168210940255274473367238977665388652167112253188538875191256743053795728594925783649292346809922542172645915573040560465398128446545502161007899918691711282997533353484474706338495670673334189936030812524520573708892118190289697545655301712727236938746618692316078444749709498046615617882630359687935659281674302977945870868265047427460352298747745198517853511102690740563457190343810315166216466532073943322687794747340218611199786064695740241803048469739164587389937604878610021525652537620553942409560484845113576211175214165762624432958135663952289507124243751516273191650870933837285567134811101382109814630996084578178121558782342193779607889436594656824118095389973509961551355850918710991992799860740829620778613698442976845988323237401083852824129157912229595103940760979626266508473571727913425828171535383043753018174947150346067699553265829259878882904345441699157494146348225321918535139068936529164869913247803832506430231367170061394529790310564593392209124772231758617723449515727345899225412219455356496625306357718531778300659732045504850440703497915462782453133703823441953977344535497100313329066058645105906903015220294520811848087508994616229648525026533649939152611435358509988053005208936239694513525099206551463512579582177234937857738166907360716350929791662634637845580173279667720390240590999608337705146941387871128648570195849402998999535300897222062984772080480083261207951764298642580860811813790643739822567549264199767539946326726662644705957268853278889436074985094219574688477333421534838859851237737024539793540884282513387812708742196730526737441163426851217414407402859575120291620046964864879219712347103561783306064874553251645543308872575170419103051419759641639453114056622183464770858232239458736275309638779499728421491588744307944102708726044076322177445128163994860430994686428315665262560639272856706971665808346193915282152938443469092330605937541965023255568044142247622313817572915106731858490404206867086831598132560035409230958358168034416187430949086998261652770280733126236271740082936882275047311063512880842705423221123909664494384887149325984518364889987953574915714114752725130141202228797539801491468817148147275386509580499129189922285431214405030123420895141960468861924501880682374072457352972015835844996149562270639909898455142344609839555248266678795654343380198430401111095626132793323370879304338807031607078733662615822970371895759485596806699174649098135046269291880432091179602284038735269533493923219022273926859588111987309603504539391488150544322895177387051752935010285198231415954593296169131999466347641551379427997311889475317355213330701872615197946257537109015713832332628323535373467388331796306029579993681025826953965444519148766105792669025969334162947360104973224760376359894661396082961719461012697571650170966820499459375797762787809295597748177042617923150404305392641378097135929272373443351922365613474176729940407345900813060045650645356882317321774824366055127892440605795267185514180216317930830944177171300883905416929577766751223938748642121049001877661591325722038589837460449730522508776553589566071625453005305513434118297249852784844025075397584477819248901199333330707192186459690627674996180812416995731708759787964518049512384169015160409568578680032978784241485140301595119317238177584899412149248873966010612167767618169277898965048592736348763519789990890563593885419490651088253789299156443880097978623796917696175321999011979417425310295716898693818075090736552228406227899597939639445193372688290988512714498665781972740663731557958441066522849590589355089280289199098891840548547365006089014944051561200714544914219434581842517597365347668217852390659587466649087181302583555916690875454953686817659974343057781999502487072551449601318213406717734772935141280517253787345042250451830501064791088464246440635110610779322928229393294532470994941338850068372973624668575020014374597517556415877619011245452169820542574316810452136375473101754737573822244344112593732084972809877165983401931490505188418709593613068269349212339272195652309696397267791005737506023045516175788100455166954087401967999041324139931932222788765981186897285190225573451913051823594858833330757865511010150512559444426555630785121855795725309778363509771776104812808579736848085948529741682741933365200999041574833242638042437400344683627978177514740481207812963521004624934593882006990234263362241356155825195439626613464339823257282617499214649215484188031683793279943051909888822360887632135235225178871590825730361133986931583325456896625168059458966261276526680717599925096605216004418347572665350418817709106380366262983943886193844823708943482138394301382432796026627217090132502311309038341035949168901651481757467084542031413073999395931266734383961267316002327859725909614872000701389116054522730571661820920550749472502210951610613097396971029840580497754001073200357563723711980938129805211065396635626631386529186689783396817188722377941592572566371236858312329225805555908043158177161032250670556438842654970139336287735149966816355035232903546469549265575975942262595637998560119723052532847231865251996946860715167097878615181788109413749178314848589782244880563722761663593556801125312159859252864901676917827307525193056761007037935004305151211443642639718624888350265279842238157020705660018564848289699620731677412768190239764341914558831599352582615202831195862662875360796728876440731014135245488178226720117820047180095969397825279492314217024320368457604234690713479933102753491678436108744951344088310433425014689473158698938203688962966834026509839741966626223879630894390107382386795837749333137138057596112060082679046993203702449298066929912624763937778663034776267444623421077894657842483294519637794269214136315213744232059583854561858866255266259244755246538304447094440611322191511721403043422967070653273983576983356806297019578550283957950220698528315736863268627550615095621512688472780403969750500782355889018531253032119384705705939502578037977930124964373873625494586186218070169383236501446548714771187124681581997577046669308863982219854758628154894264032099799047406763084125972503278428704798482062837941055032073358353505709673087533811635552433950357769878158946658550817822700445604871783848159990796637345697010216585883984494348567525353122663663566069980614671441794152202333275755122348020279949175680531937413412401771668043211887127389841486279200539836923050115156192317271368258931939117357380378621615998442185579699369543073543753310601958456200890059162240204328477151058719063481390309877258120935415239904436108612259917472726608764133213461253849340274136653955512235615072104767223922949621201085230216712019831090533177437536428772770781940430181976061615816401442650687880601699787887839133945777843682104425729687283608568224397915514048324167624817779290022453869722510487766416643379736883838999211853868109719301558405812820736107536432530724006884772590212378896824768486477110156446783623534032435499161477311563008350656508062809384454176159284572653341641997925332883993398912513951918306417712999149041617580621486972713660561996811512909604409644827494658191199781731962987821345073756075530307031374368820932223963847634585510202910467765731723573122201188000152337028619091782483403902138584300151045290547490260940648571341650102818028294272739646079534071549695763889504050862567380899898124066217068269372945513271740343298228799363288036887874500541766862156122218611127630209534020561314872815778123050744884729195660986643508133934354011301406827006179814020327481241779341717500337317378236877897608329095377417680477970497698225979908009883718641892919709522669720679697368590305930372273800759950919870514037071773719013720302449763517488598787372463571636823729978597336761504789072683665040698785857543444693436447957796023550096971312021910850168129061281861436130770271930296434875917381415374032868789518156796312134514796691753882584064321981410202965376084744129715463577846445559721646140163819899682460091520689855584962722826761304056016679107548408037720694783506846125246900966556129900169166737211046372182480503547705173874470297744972189929601862186691630232397109335308205838255812836228384217072333225517119834417479464162068806144360134091117012094409973324453181076298182962191826160214536099598085670170480279010995695724685035045272614052376446908977902189143308672846490700904703079151014081163718231093331798154081028910363421615761036841839194201236311697653259413834954019961687466927102819951973276572674451370683041120023793943415148272801087144504607448731009520647663954158057556551530604410503275219128684042324351261176618217553741470593152072617032432226387628157758352593800112685593338892379717089460016950579864877264087927800979178175429765625879837526030794363869342335378843157028549528982723133872179137670989383765358449948574597932562034259182154637349042396809826270359311007819045162898151009547720589972018794455887892667769337897600932406840492017892693266954716269872979491181749543042364358897002266261456484124822130858735100131828315492026054809370662734032233918784653885830313079715508081370198017322240778085084240618660956232217260408902067643398634560348581792080832726693740479069434340186357791789248712143229142637732580741124974265342097548716734254700821706130402061566261615202549585237328749708141814770696552171379453834602522538404587398123576328588641465836505741159796248109134118769005566754986131767185279952419007607907600786198335552852545237070642481300898938908878494455875663860757425265869701803587713824587035795625560989240822053185394244172908037152670220597387001145168836838577045392383856309604406525496172829893671089212597654611180936985174792844026380918339888549074656221656024948431385732185034400042047893092498842202054787269199687517585515403870986360722808142987444290734962628843354973220339654424150414276018280185235563326268089456760497063358144983515462691356505136089503046218927182676323014146807006035377114403388193668873416969500129916783135960783016478489946070537306240141533297742269240624285790091591858614363644692879789274010217541392693392781264370595341202687895414676788293736988914603476811510488481003393870507131610153035506785920850459198271294241895291698142030139552236983191006529984123929255220505912665926668323072221844250198914301340917764144091455518810045721095945275462166745935736908848920294446098987086609520432341520235060516283102965054445096841142497957078881175090830731261062075566535278733520812131257679053953732887536993406891123575164145731232485350705611126373620159812466031209618089827810448793478431637946110760265717489190278320272100707037587739618264846240105744016304577061501789951063944601030784854659169596422259461907169409232852068640782841578842721458454535597170001005752836527052549688698542927697918227331325101240138272219908613676937131057418140209140477545761750910319333263186701561397627350570531782015422237857058668732013456580476838128740541127610056959625603164154640614171081056099097802121194394432228188077803742525302865094491609805306820630596877295741904083626106797856863507163618497155170600616624815573730929304090791844926575795207854539100343472673277133953300403534219154191614369638856133173310701040695061582068189617632801074171297451946276079545865982025857603919536517835922303596977863589693085679910077512578102449981734171535916472361166852770269024932487922890720188744658173248587676747248433767285370766607161282329449184601506934839772980379479085310570592211580882796870767882779353156039301807851874200292109614383902127011082594723925030226125135348633213163101559049774001781604813527327092048834882542266365647425669156717247177626198597870377273720431471126271256597937049599106203617699183018007349617175400087627512452637418451302307776901237933251086512998684707401200708022508100272962179125035819654827929899518216707967676848752474885161263407058265243727898271284073941347827853210590534629084988990096802063518181904033413117128080537061994742056578295855069624521708317268902434033206172066530840145275383097101146231517056759913970689284058169141684260881914916912945516004755821869884904599336597390879377056820714182121219153440716633105842011006583978317114975567936385713872829819937300932877070973048055763031894513931424297380271058153138472873835386792184152990943110571152476523311135001402714768135584027082261689633726593288819191172687511116803416764670075547137569092942214665719056500014578808859920212684094902156402005599320806525424433265119245976978099257805353212369506691209168128552606819815563338161708570079281180895522360211480976247405313029698308160071787000385142378916770933418471751125577012097554664455653484387700191075673436758552769881312816910812733541635907268086691887896646567421224263951806724487380040911491924578932882395881950578122181443465210343156857458191122104914040943925672066858506647423130725347420545442086266583591788197634563136770277701212143470980370681566005142779516157247095614714331846419035335840657289172356897939815090128743968781332098942753962382929273527184813635346890044410655691550369891375946460760517690915733587215529259762884450268999191149347984397832808765173590525186897373116436096016226007379495637855497888882775707082376820958831121604395396005223978165789028720315372446793632988086547424031390937009143354514547288670496686070206187624789709359384491374101446043824725258071122302947216681311926917745314735707739835044429385852957723200922715738289830683699864773059710744217266181696242339217239429010715434131019248212880197509570676406321314633699327690923771609947531775607688782953439107649236998763642606558250022886468627053477231392990157344950132973471292191350566276364394045226190631649137819597243342342908465565163610553037247644484125847071659240165003799175293456785285155063910201122696713228409647388390702622253274071258979907408119738036230892553977465338860818203454149288367600898915615799900361415504173360651951165984984306805213512911433916325633564231681412540117826729547618223038376832338917755459808655922245773535728946675169523722930399917532023054198888616265059979646454900235206873624128677167688831693332517412046169411323847884818090089004828169352567960930563099670993611156635039583934999738023585744869245460342269187157410952789286559825688740671313459925042739356576471654059539739721737720388822811419122730680835679440529411988916879339759085461379462537967293474701348030011956196769059035829393452315529389901101967859978748092133293183975443093832734005625641354715141834725327543556316769146118775428410956195496568894823973772171034474346920673693359702905707087969200456477416024583663412562914543577617492481839904137574810031000198458817377021974358014205508913055538832752873901037302162618291688865159050448169502882836023683435243948305971004368523525413483253579965647617301693776407692112970140809354216121075935055402839449855623439003238092282178942949714328990195935305654431492035395281054528557443553403990375583241976744330932961037213830797578780457120912579405052014327724170220106152257125439405721243996006520007395541487965087945639668527540878170405812263116991483806912808647650317807987059337451614251498965716145021769676201376917471662919882001699886446066694665010603323453319077276034577324962243742470303364940510406441852383468422765017556526363946789080115945117926342330603559982552755952269578843150626218329889550163723277852305666941595573948835040984813774064309188752228729995708062907346412701591308703907940350064046560231403323455632076419149992475759919331349173139385799514694807963714039831347379564671749141291394454576767331066325671852738834899307313823760536444620229262383886939494643057797657248051697585755558872876334404614464726336934677352028796157081466084444739429539013301540324467622991795697385415607024726626262908703985124770446656223394261132811719143972422103800586615696718678126268423971146430550425991509297269574156593288069602598200874962225969109092417625644256120470067120241573034572979778226765388189977578337809523406280436072726041909162603058938907915507742887721469268211195319383958157998163920261445290573147807177545705242024134185153817193743762862641061811038658662366716538336107620315037384353743300441437059026225289874157189169066125546990607042298725799897419422129295068662284175844791117581948083064350325768113124506558421245455028503103867508238573733536455852996703873619554452904082002262357252494226325068669541093346263164059717213515821535756687221342547226072751668739062863334009065078424805165267258358921825927097540804750071209214961947555633894118105328502885869360273110279979630240513500979297235277679602394823812361141338598720787828969636009428645064316479821376150929354916579904761157809168447123526429882369564022741010992613481773953580841747432819154022105846801449820477353180015624859753194945145596419577760274984004322372216564232378791874166958158723996732970075591025619934549777770198659343940894519468534929698746038587965796420611903984031592488383851731718106731368616369799268154986624078036861031378747480498645560402379539328869695440069169502271624673285406135250199580881449539852946847496838445785377088038124741952665251206208096170297652428030555562339180368228504875471582905302643520212414803242539032200195503195303731028888187853062647652863794169109768496663294526267930469686320923343305910802660059945660259021865175566431481452805290303479342049345921085368352284664679641880230413057686246942691584086639682829896317645187036928684767454949874501491203169702917062338526475591982095938882989366266930940441162902681435206776489435277506666163324804848943515866168665178978540489280903546076475394655799122751270403048349583662563964236679211790200975935198793350297576574087694663579076261797258436150457128102520627679390266685800452269304390564737791107064974186947515335162771663760927770180800739700799310499830871431652168143726118057994120454812250022370010449821584814274145219252173348054393174061066249113498527028900916060202852368228632007643674614640861171272687323275808262344198740457791432013180629389751263981400196703742675275678666664886333462437696964011625243721627238442679924186416083669782000289559574219772463587595752326712243984883821651464759549402017142744673132591154858766931635975277067059448009780142732998058987285638067350395854223189851802495648988323174468685772205681746337462082333732919623767378603760731458358863195248784134862385422617730211980636273763063621492076672455523515870726789031864612462339004045487089552697001934951110291687640548994382655339708845208065108061447607708059157114835466966882473300096431413876527107671395820233485201038880092394640796693907680423962327618055418223428664042352781210490054395035949806691456820199368275927983031433645381891181599878615100739774751479551027277991297860664527888054681904669656811697913102132892442899102112767094322669711895779569521357886386415299668100967291488593145487389160570398898858022141322731864855893118377282145700259595665412246537806273212918405229335549390478843144131705972490108134377009486424091810518904675862278289918830902407036384303907076237720637540041046795511819956365915455735487503931646152611613384724926273646927349134107835282490587943305524559094641223999122056054578038948887548483516433005593876416018106116422246961301348935252577761875154974339175952414982890015321911283585371152432413159910649359672542610715692187965862536428130728297709024108200248758168362342217189200512912784569361796475603467544497940839894511068478770549413078823761660331191271014479323568290915394696910773292244745101231162124058942200018518413726820684391438477291271671098682859035391296299228172494557030233658866025942894814951838209148377615433524427350713234619012019843200934911879892334094452653804201288405376079088477600537252432075157149195699276050560141401477039926824030744518624345201562425274718714238103041002644072524043358134915735470168929913514753982235550084222324355614598512777263937684758364360827867614207358744928988932516455511174218099359991088283114649978054878772155702930350499917417439867230266231342846692748607960593222509971948527525762417731029072163794365392997402340804098638664573071743660073621387827578124877599284616797991858540206192507841726546784412773019126576725045249701811465451079197599975976421851650366695633275801035282829348213836908356474134769408419808087124192820763793743426021312839684895367291368871353530756682415592420635116626767388668894049151925619799761666404559654825337912877091643602448224744340073278361721222433535171268439444423011765953883833030031816315558802395132839819503442929598888632836789011089712684953309473638848119522239484542839171119352279593800213485628859406588558754780009686020339533881373499456142738911589950721365640366031936486844844594155121376520300197031448745258935680899902303814949680675643039207913704646505285327043301813624284503173291202506132513360004770086082682214668206120742229552273394644640210527998964876600989074461624880663002963454761103084742656271569241570998560012705548715665226158567261007502069884272947874452265159160743572581571259588962252395910688479366254610763986719362191814350163189530919605659452161655352951996582912673272505664793068277106955007508214223982286282580923047397648420908356063743987307208481701530857428042958970528863235353518748291774447881464389837657431329700271526498040047603980104732683597341786930490491315281326451082726242271320968007938098464032507257463577649872027347162734885298063308497568588362798949500167240503362712987325253459443110545132793349897226102103742566898007099337872908096480718534145850944458961740102833616021905203403567461171078246088573178935221693380758767446549870155696805639745553973537217610109899332210047601172848300857619176275009246580741370231388896208058040627822383984911320695442182890883286432493403930118541743318500198409349714333852013368460996837916702358501373197279718707698158091173559053194908486889667457060881007790902909668174688335246269708741945201471578947903377299563212867377848234227931215490736742721048695645965350957899376674603229437572243801743216671255601036414513271572772474675253918204185774792601493081290531048217414846869317719065275681467793116400702525066532775043201358831494803760903394767652919638542373977412843647785021804564135476176161799717852003699455465620583973843753117019384249406258386938078859227746632506232365613421249310965851252233000864906240110037486275588861693249628022660287024884926774709497208684224563848352741563766546200413098203773279091410579006379190940440551978267169785267563096000991624283753306194901741789810537145949654260979444831836843604942012982453683719810853516818756406160507755456672542440964184516646541800273417708968642812105923405251251222427102284394152645359876607938276902506886016157751382857237683291269436420193004652313887176188782341051147757879261260574687027430385196444178948361068381107402482755366118657816084607605366660322439405866419000349694209149384268812298404189673968540356374155665015178999218235501932306296269067600721616332681538859884582520617126012104235796084478057453880520427278598851504889603665969878711955454300686934552768443428986103322564624936144242596761873292450894723852544347840591800321592598954548875076858261685254415756526903941037400292949487174702638795356411362158990293229049401826386110192272987535801756963665769102160823013520017126927131041662938181015251782167319425229867697391559906121835970846880287229881943334285081424031221708410725574178071808686582912063475785923078508527048934775284042348520176804173943098466980294586150824302918263581004207688196296502692486160932438520561764350127148479815534578413525368402870541294884706252326847128908260784982356022935203063722669547148266530057425258134981772516153782203638800015282948987829253188967127090699152447790489152544925466502711048265350863943580558467314798833842108396100538613595238701062920678051477712907447370307676321277006656038526969958275621752363033047514957019252761643568502061378710930920588374467467835344186071532098841644039279787707781708308198527317272084546058173999697038071070177989434077474769531732042791908369105172798442002956743876230925170401510163141920190770458028672401101489607833380972360562285657555184280142658511424092354424649839055865263172244685827178374861243687118085509901053249838387226305142546631776840144555490439794462395523911472769611171593588468406486859839729615987258538682145731020475062574093247623368841033527921095194243479923194477751348432090784545450484920766365528274548402446695610393115750860842243786886307018244523530647795902898038933657111131667065254477713109657669432384160406638858424693743370717638611116132610017988875964835153145720000335298858883592892180879826754614572055482349828764367928796422686178287108886126403658153786201638132791783289805029641753772052550891779442793849257266919748059287274845068236332460437153959600042525965341798783451557281818692277007562211881370241787850155572494613592090808710721866278130282580469556315463610010157715465309579915941004861444810175226099721422659821458178799842053365810637114722706395061267798553389845618612254960996946498457603811009458155892504809755050968397363301812032749536175267369917637526197181783125522236866372611039316877960715803532264841781973705546429186250715095855589167960744298986213808048963331059514150547169600998978842817813063347583675342605394505125992771351139337673487395649533334570946463321277595261542506232249538406583273217045392753714622121902022227430246924290475497678049683726927646557712185157193261179322864848775473185159014345764732309235027022496307081474585599111106215029481353186560639726219363622235566585253566178227170283799115597333187257572789700030137413231642151780292522914642599615375498696747387590957003404615162725910502071056190388437647045948984893299749427367090225505387419464837814827976998209508287065996069380564113625048040855704824181943403200276710644653155532693478772381708397229644756778680915150686402051587757523756368758759448168019984238191251020123578237849794727307224400260242341162321103049143220516492920991600056293766693467938411318276617114025812236186265314426442362507146894262134187389470879960319287575156651194381029815306519190605059979817890091286152178380850938183781226752858978261644491639352649157456849864301514164945229627938058499157653935679455145622350609429620285046881770046743368432166124809021579697781794210080651720503086257566544226706814184158910574183910742820119956558168685234170820183887560638555919972488182413570826986875383284625000419904301921259742409115113264131748486330751019930238333247937346132654371271533321409687706617697804629241452962631782467165996119468942604785384558335830919757209208891314037349298487596810335402147908148050653095331937190460153042536883401746785980146689954218918076432125828072985887614730699994367043117530160350578047643579328174857065541834272226803390601235772878002583649829042478736971881822894691790242405665129315610806383815557633883835412793505370259189698702195706157860673457388652181846967524406235812022370864293901098910555880737865468088660948438561112211975558790182348730977680055983722250422601021175206753118038046964897919441182930622804937666486584234921482330083529960295852778733856347955173857371927247952953542054476095657260229960490003303815794764369001287878961443781496970537383400369857306272053165307319321768944543890615892148825246446009564516346725517069551082580191249522534261898605307119404308009096598881518094172109295531588875244081096213118847462379297692001480876003382892228932160579350401262204816450725880996238425558770060877356120526359308993700945635266927034453743478641736921968574463314028929169640267534856900869041936917925784205402605921980282638290195141440346748567162794539500962127269875385694650740852668803161326093272402667272634279030869202584682719521430255869520251245698100286745683896677318000798349740755745619292793940833712642059823814955555759908624179226385011813325459683705523116059016051112182407689250192640401189548409651728047343797927305774651890520201186376695419576893726274184922818370150662207232369385634402719251186749039374377857519354995155342752681399572661476468141978007046943289375170900576953361968186651734211145320441831985223420983887274633485731455785230273592906263378053380657212527288824830566725105986057204447903051383552782398895634907769488870809074726605896203805447283906617449581514333069659976606904960973744527410996128379459453161602155715116881892405547503746043823309597824034558585353833754071484776928495879305581260643450861571902403883070454320917062571504359119825172955549942055488123156735904988879848464585041852438199507480282531244095921406246935218104137886079800766074747686054251963603289388060322131561914991579433386815075972867978339853265508840210828242795918679783177101257179445987257815439264454468916968735887741965894523755848427101816325556688781883889137755941370716392498675344833028663000947184822469684221886846939977247137151441118426931031523220797832057216208790495428430096497920012732070075454965642993440485421209608647056869609933249909309793144882365351620387690488096825955776903551058461846420844319342367500256260594927776290052573992523057736195112237502125632009853202803227712115053984593960717412565214684533604400802744142017942254777830948749924916791581177148335490798392008203364262687864995583675159312781380786199925874717834580516370598016159797656243199509656287332701724252718903347774128127595213570110836339498002488282914686066175189446384350557612452803818897859008187950909162698167189600000391023776642882955338947287920846349286331440803378191411026802184469588561798673722910390142912074936453553172999152381230432084537510164856583361159823342765276680282962490360170866801107208359499983269486233816909452832568750569653101124324864700293242217793446416940613236291539104632339347396210378832989195241251399597112651585692839727638007655236893103791383470981449239795941013674493684480332809630790644327086457820355885559232281989769071423662765489044373484466650144854868623778521631813083014374409050463325526546165374529187525608818956491488089165745856719721413488870731331683180766549450515576947086699386379504022469826708370037236556322802103550344134092363002402915274018920462774890949583254987954638345555147930264389865675893053365501732042951329311746527875509716197689154479252352781733349397091041740528248691802152853851492586538140930994860515399320662205629752798863775037087663574949015862475246935596874499179211669322636765920498730212227192092139737710072386336775083934454036374609048333530167298081929801372553112388321798823588983946852338268598852217615804118674134568381433841815020328557743953908314245586789531034462956813801676953778673298552583418841023478791014274882024079992765298240611042938635376800622388506795563615636220602709297877845211290363032655510822553380399125192705533500781361757463245531051891566613689766338604080762167820533050989321999178101549146404145833041461692275419207868923046800042554887931856096059817959153700774011674556626949443281293115165523559986150921060029921394024574079132871627050976127610999614825625453719204382904930171449943060401205391666113021512398510858012768382679690584805340809997662416560001746874653505331368904672520411721635449897092911177604964614487637813659991212660883539234810230747620642929166915967435465239887620158285946470422047795815648592816809919506147062670180936288322575402813482097928589860489240612500984379013648434498649632971539099935260394026755982281161167290027806178797031908138540231688329058090062554883473266132617381227566672345026084293676410539429020712846344763557088029422225691704125334584045634842521047263398703566065698270463647948579359157291014850062423151798126300359663837583621692546206009188935173042898849464325335530152360477099628258303538470516367106087440012782600264996402914166194145550345055541627689327144906514419261308830509017793073471173192418440583829026205715553135668201794741051487546059058062965582268324476286837891365435178486201161323210128180857580003603976540186681461714440627340391686839406262411401431662603433560219564957571487343031046093549768810854173548972331059858176262611502999115061876801931088011206075976063559209078987699508414969894678966191255154233433102572682324429944783491508288682493908185331269813942184196169723796255308424667798786362729005649249795607294258830874422486699385026598118282228116278344373935549547699142737742347878212508982029561779985308012179771795088610059466251259369148512431257429083437749878788920280083106886819223891066372263128580384869150340541459420575961927328585606358291607745349653241610367161649826083810147586468762471764384087206037962474771993420051651999949300459225808054206198071748149803511465746211167423778933082755653799051385583226009380561208447232101966441252520164442223217873622897194382971433839261226629786058892811559744765796154068412813503043817808850992883036039921831022915718512696464733076120080977355596536142290750054971107256589068816163621052572570533942055430650000245035558302685009065974075890681929157836202940851677565155021040685746342061482386300006864029229296952748357812783015441580965201725244016423429530387504733314581140174256433787410487873459489945810937442493942164431451030403277729022106456384013667637836010926058828288216471844720250031973438377817921365210756073806066369872614250919903365008176488448473795206600457966716744826332388144917222358115130561294209956571651846894690748903871060592616314432897285142362718743814620648841872315914037954507393980726226165595845832657639785981605867669950142367395869320699739533814650404423946071103560715251081919134967826913306415978973476154493206583575662242514252904475713653097588302648043346542315048799172723179950045377867135301883063099851043395005271471634606602102007536956084014438646232451807046201372001688098767953375207755278030762340264912547210602446135411136749837995923320512845846355968521597957920636369240371586594630126901535492772307262852621302627782154612724914951115238113885855809773280020105538906207618540386685985816076541579042330168182276181044983838140617629305678664128971317544034189675973675812702993274719176553762736554934653247078868845894143893818752175814241606620767721561998017166648434809544814998567857248979744255123271569234980133931211281470636481240387081525724289543093250129509338745849857802571824713074364644971478135789938866026367440111869556380103240870882629921473829452219984794605841057539571096105893607916293106084120445891324185063469139589435027041166911506815217350551566243325846096006942570986224722990096925184441489688990483976609890336100799606418807477209195089362575354209446469205519538654685061136807157412173141731673049461864239776868338614397751802571822169500486502168391605386881459346387622005399526631462277656155257060420694762431773331684764919520642346502414508581209012339141995876808857281174793119177645808726119490216964753650776632284769507538742405711421487925445032833156988627307940198107965226213620311174960996070350153460428620058010527184636511196907577684040722981835817610723858003326173471104865172718303541470785009666497601223040334586568386879771103216969729047715128984659359191340852887094899171603554399193724338275921331497182047702652498781174432840699051590676375719105208224218874346085548500008403614894589128326530801768621395183954021423358438555217837248688782443836410918124807583832037077197593586674751034995674277141975127362432164287539536497992524234892925426259311442484150600937911736459208261235708057022196085217572046342439807984119120883777613792739447125819181358306948030308381746036539400349444315778698460049554179749264028391640433504763685280232767194712460835815300056621354596851075908840547589815454557367221177314450404160083141837755213796165709864513780285487362795821341285249148246464172644143644220881847523844531558657911736593048840019075806143749585186229440377575350678592328576291388273936738945810575910311519706618708229419990584798950979143683642053775299012821882063651279205198037613109549379096802063362028220268577129554856554971828500862783897515913709904074301952086946791449662649188399420256271916088013175945427097602225151808995468839531060835434898572688415629124807039969017836877438901798336293355803967462953297422364387308651251118827970101562023385039488751472328168906904010402430784802702970328338057736451152890668763459098708834736391639148498186768458282442582608727465548902348146794649608882098879431733764754942149623223486266390898506613812329870916758736351431979100765995949756895884322083209368335651595346945026652769658571207837800767663762264198064163252614345903942680918678763504131718098273802853081280928785759946393622226229471164507787781727966451436130500529224039881004752228256406569656604830286321753421561859350158474831196730039094530199913992796031708221725542145898415226840643123358815195483292310990890782763114261149443622197154598012293404834624952714843411775769128237658237442285422151417447519949697848715025162671504288426696089731583026086265222307336217941476953547702277024571796703797938396835775049975783333187448302541364180249415269554093615418276299702963110764207093818087862700881678023142563219949543969082651357052226440402983512435902731791992819022782625951311658663427526707563356299217184337990688439399221952587087875455401802730929234341312272815696652353765558019237734928218845192173457281525552295645459712779585136957677821530174634724314196036535553337194492693500295259462105952998731640412922245420224185372557685540056983507806570916060853785557899163080658635435755208663429631786026577915656437935609168452031325553034389485043390300399587164752373399366617134235744648385830693427265765210508672922992214611679751423824728290695771962438367404368218460659276502870366007628671605249615551410897608205981137837210959203295374225868702676146071354682530799272839792758339196881270645319061325249359216511571643409003932415841797771082996768236674044197263355992249501385210543547293001211040741401641133918272424731126606396838498223032096953927477287308727661615263482761831824055602918483303988455003622004699631890898330469818775725722913490607417532022862735067865143478765345958107748473068937030520380754446844899183496362956798750349642362549027387130282299791934433581558347332493335492554401053368266605402172333833559119892435434560599002985348071602619632177534404664156461609336451723259594207048284087071880544577809595579837347041850343287466520336564455659345955453953252934397339561678364435025432297909728229516462553507723623153740964542565424168435470280232128318092570102773753013174205060729210448282605061706616376931385909095183451466603396698938149691505955481917713083248790758229564059479798472285829261073795973362143871804150643106732824438774878576184082697242452916174051254511438993907678156967836327037776214362662028646423711447263926048747529249505497730659202511401758199783916664617073921941055941899610640702262223749279762581843759383375997860484038547144125522755068519353796961695634919681528796715523087650861615175784774912485883612724296323936927888590817439980487239361268516923451584627371416712183272590017753421949758048596602603311074695724033446707644137197675626557141143170394763867132768393530569918301180659582710021365513532960867554084089529152720558058008942146462537086184518272628134634215779613695577923651471276507199247476275784918489239677311062816978345408525257600476918419194894296322374497502435988323805871649845024365634907939618908723987055276841072774341654640894194349760558699988604247568793098663643106324709985465790718602615270765118642549520938205033824251573635074833139949668049434037371644315750679869105055018119462865823655548352671987340039457524860910258392235382778229884474646746532936926568387585374568080860114320766992805609137379731895482822737815998307973515254123322372488576822520348880606394811080457473661038077431741110916719668671398584059871079858064057437782487032128702250120772573033585447455755666913871146477493608685265498651104101865540157949431236168809518522934956994586842209887248324194739720194947185423049839195659161982234774580568678203565356342706465557092649765111671685656931462000475205762372691331075908498113946561254964685139589816186090913562030243578015179508803913858146915484461940270027647408485784558626605317062368162039239244641252724721049223128931597740206453588106036156549876553960033824532246606771651179613815245683463363505399130320292213994674881173412981700668357422661011258054099171765964251748565973926671865871748521220643588932979042908862788439783461497723445208393452020812263025949070358140335478118312260674429685346094109333294734362797783456806444322957404644271872144912329324258452392457174622601835723091393612300730615394654163951727370569573406638670773733247912232736916684367924290928154747131307342306708249466149333180028842533992712842110982181006553081436748768104786368752388573685326482268244626229797194847692489904061078046760290179979380398410361954433891803201766688621244611902471326562015869318221428554486515523308989333746728961921474153995447719162343753700895661031872372628003933901932652363793538940027259428252654807459744961604441549426697963840779015875786595365328508014300563643046122560584751974354447242090522445635898153072664336763740228903784170063745153235112754536234555962662509004946228989860001066072734240562319749120434325877870821385422179595175173579178791497721819762396086227648006845732061232125218268465392411508675031529899042316577485950682311877306820637181075064772921723473479566022134404804470186369543819395047532202911036083027034322360351085179894958156129307095504014700093535715512813430395334012809885996653198291165891093465366762812207459297973904536256431554734345125944547917706209967789926422200587873469064808092179725080212978846330988727041296323443929104142693064944018493666225039386702023924435910019753074332392347477577863232762618580981757726847286712576517395346206623982040489425001647807103149077868539876275147291640728609694209044407362634165816036345444016017400196932304271310865944210054924319578564627337873027409037403168675660716672638627957439703355447851091105355507973120957402021579334900492826807002457930737182437859914630632407327547189725602716169491465829337563248010412860321791605806939663181563961336314418045245288341900430389546575532614358735032259047508487130982636318272938534424515546345825639812321773372006586393819989684345517867132755516319222401775027444410372349124702510586311580823206684451235135972022253431713910866114946895359588571040483696447247443096962486051327036976424918890998679956444809806656992856417446031511408330025370173277839084596932267819910542157319818231741457316113644978915638811791063864694595228323013366624453072336290413602780646242945207382323118929181302579587208953436658582659842030729041601254281282136747907161681182849067429710871779132375925032994557286674472314586784641878308191516593864518422003488469929463611441935985885741400970208268581490244185224623828038356905342336916288319209632229072190885893161264109406240165860465961774238997952439048381843131802513687628026961151229812425755998200108874508708255354225218508400512318129404827084486614371916679477014238353690110757261293487773396857726515827412578688596143755010755313596705533020516458748091776950270490203161125444391830774237975306849504302454687374847003828361379220360824740593467816674282122286137606297827156066407201366524196394664053917883422846416200754765047513837037204004342879889704147277474562741676078798872814649575781228698247845702493549620465788423987610917783891515131241390369916369158359141945274925235326315215132156433298016652914237969855033122958184968483696749877344962865446412987147884279582729187116930227928891202730477576577216352289971972843080732332148284607445695944337810874129091589577322034154739676526646921573015993201342655805850928359634800922469337973601427116755700498267107371942810397196268014858769871569704795985163341233698457825723805314779791168072578205859186986004350484287851993635642221693413321054758430983863992717393249196986266060609783628164630359145038513603713602425133024244673186916008954922505429413000919670351799047657730732376126841966372810027023246393642830035508737366904633191875014199321767470270603127780448402147005520732358231722302173668637159756625006612397712622609810897673762574779587838450159329723262966427777851054376914501517366367146163546029927332633922126829449864612247163799011843022884862614545632026299962795150167189405586817832407749228236926600955200339849916740109621476407579856357945903355351065468486353875841002456464547171659628856205536899222693868173802453079605718121211523735329456366519766830914219359888840946408191797852722774033077841956551346780369562014741058318027323149602409746007586764662665677285632190427285764241284942691697262148941895223909772126567001917676245166269746169457999936736349438713487636900143998270387600750844228456124968841792889507601992943951054333849679806493064421080412311507265945548683451907674246464102460286125104947061196069486972584948479317350808539433942299182999121985950351096163996038202287788280452015774560090730600683838064692742396918818541062422947683487313091361917745771089993659804700783503643116464081753268914246447514491470851089693919588821916279077882029797354503333992097722472245160346191820238083689020841161257811891032210477918881873207172785785051947022600861342778842439124841431933275700760422413249282249301945720272518843219414522735519830535623939165571752041807451864984798725278632847277331131202880668816421586458743248134366080432423855599978328253162067675484141481110045399326667344190711034650157387383670045594057966077268329759475715075839549316071870321858325733151086294526461416839580871983059094230372037011817216805520893079836121082269931018449683299965382271096117535653172631554110863820901886437376490912785184744286727663893062125089558530301159062024518617473935924384286406845735359896951271436885633230034507373668346750984388275468195492997418333107520826401899308582481162111021422292867653561085582347252273549214506917505231187453323603496206948930635108567559181969783004559645962555676843958811498819995530471571915889686597618422281103720843693144716112046413502634834649821377441141807392026579731222478734702306309762405061457508851625641280915725919517339914622445881261296519747865694184420488007188664156845775788671270387314501985037156155760474736939213156542819944516801741697127540968052786812347431508450633918049773096310483771325975908599254500583497198546494732849313610191810828202061319750818703269791282713927078992744902032823213658072829491724534222994529961077789317799178827768115802209659801864120154667755106019384798227750691286758359608795094526312418135866904925674553130596982866248573793984338735083664915728010952213624584031899043015036250902268689266031576139605237535436029624267793888850663951453714556446791581782491176257250421163695316693009427979154008843173387219797293136016237588433433474416076019252929312049380520205952887628712122613948614122237739419335243014123425774265231778227229675235657466775328658584668441012687089935502782640836735837364965763596334063470305304008811622452606097869801184963842572197212508660911166550819227767061937870664734152755462906679407369164343213612549130090210911425115566672140125290854249112670421607301398560062660688709963983548481161612841672196539342724980962595865370398850018304132658092447029870268434796541212379218111004805564980319995390947958609577539771867378938097821881413617926009866552304074734495531607747177838821956914302357779075120055596699398085280171524259292415209544740498741936744109210921740231294432767422949800851441024909102467858096862328253159883156465728288361488378002306846839810824181343257108366507644861839434438389526021883796347078139700940646544542339391196609664566072949898081320774257150733163041137084705222276486940430218880430279117420700367423584316896262162761806142950444144749217594813882222149173471120869650692911566217524952628054558068320606701641337073427613545343460539234162570089889778379959531167816910244603147394584590589945209585982096720984611174109271982290014067505996073538081114427725998177904110688665825610505888100536479074150634203897443047486367746934719929250913139275147975435478045426699073045869915175523390720445073987586635922153258630296043136786634992507615678715277493387681245462958300094803492092625604479661274980118920564958002123569070378510219322798535113077723298916769197093016827999041393387708510856285839379762089249024478599398546551808552769495825276908786304531740957707843265129492755451008420154857360911474521721632810768907494615681296890594815638129010586488043273861018825111634705319913947941615509848102791506791148268863903889056424751788078782121961650050412384576801824779797316010156741812845802265175514509726115466766534742986559503261253428513823362530138868921962932310986754405896959619601257609542281052739746996365783258291486495464458686036513009621350993159063329667893668775632415190743867555214807294016245314520546399765687998368557058899471211110104396896346436257942393840371388362615984444099860005999477081928183845834095279976013981660715839218103696338022477594341511312063128161956978806991435807806180085146940349829153266512628200305918361485524104067715258345700401301835058853385504234512802044984429222285227935873092623437037336893333139458389134607723504699705422957680380365205444238540645750860446785135666453537811868440698694394922283182855060496528325495209860077277687723638258647122448699280779154619926774480149050931208283607639970910719058648696917365262476453949526453255907657009201700850398547213753494782517652356160743612532104725916742142848695048228599081467258226867244164520661370253905558715886436270253195629096538302494488175779956198960509980579380572407930277049230654426253020452533221815312642115708774128687760460264456570885466637277891163753148108726096814169852476213485582247629903369988380492896602447674853144971209166377948865449796548848704585639387137611240670485045053478612473768822095964942810268414064392025169982202096273767291689127154588949365675529895205441061008600950169155354578417958619835966934795413080638729715800040154424517506539780026168001207644163861914776485266267451397825391765664483104926360233908604207473970732557800019607067290492306002004620989919438944606215455468247088749638373014725863609534642832775042072075259614177876522037508446098297404432082708502112097402178275009277185858734891057743069269510910646202232765360654319644760341701287344091786691022028585678886123796636966892613114444325909677446131923454500425191113594112561698641829212196084478151337075341708903285887308677277130744803334124407209801746758609558196843795213071200723323420246896098814549811718216512354388198606534155075119842746358684505299949204968935095873807603124892615533091311204893128788477736024051653876341472468701632508897045885173644661822324875800143182908192104731404723969520302187743670516359195163378786507054512335004440426108292191897617386086978456432657811260353612442313693593740172009319040878028834021687470958953226558775542442236539399563050864306435885784537963845953409167207856403742563648404171816169854368992214166605602983340806396654661779593674018909705469712385150931614292606502336642643804878226642486389592233948155471246772913528557678673819047531502150264163510812297923487476075299144915610169643813625097295572948055303063054630606154679845604270956771429851499273059390037830858580064787420222652571838436244340794243483050221555634664918021647275455933892583154806538774606244008581875017766433787940156935246671356865435928788051301772361890730333265749846835917819002727457593260533700866568622052228984052718155740604367176725561809456383043792990938175892100879963914059175767178041070624477441502918226931514307925410314489620692656595195097706143827389558942587951299658742508546136164148451606080179887654748848070932603692712141946722132187824609807962283258893739493812298667355119830965016423249712033505300210236143469210800460441213387982242232946368226954837213762764754878626628433718253753541816672263869377667258739301183809718184075164618581249359915891261584837845783671863588639139695243770992653866863744752173600090232305210499571577576876441725688966887782173103434727501759318496788636562090224968784894278936447613610515989915109178570207879082298860413288339404448426250296856289314791467931776962989164195858512950239478655559972106032014136346613734489303204734739937601949195994944300331695499918279606459739738144084061151455295684856227792336246735453490088922303742796816301921387279816962199566476373548329751317487626855954303766116505744560973369749165568883534903519304292407050782008108694591893523732383205902694134464330220603354907135733690123845558237092914815837226142597091325402153518718242958333202847834244779922956385827730250541021809120615889061617979033993834359268989108191887845208399598547441374312499284122102062636585692368031226483630536579011742041134759115148434776288242748277637162504465741925602147831037986400393947984987295963329397342282438354322827319081692642496467357182134962297816572490945076497695815228018017422509657070620149422287822468400448367419370189028425266714804802710582642754433910902951255068544169679708809583506811171100246568029075824016024048510372989544294168015379656099160022520776452592795718000837859217407141398412823597615417775023985650848071026677653158838776490429034370772681543135396709405512261485257606480383818679234046966631922363311664966329648890406747804150748193606443709253712610060783413021059536413628194549773520678619203514539174359992775922247131532222653092813159735204559588475501954248660076517098652859060606772116596946325634369058109950585793699859864464527610892346284921163364764174749540788601672866044752353248915776167268027607557426998813723122594354947791233832577842633599168846551439281636819253522085986165783591921018881294784275450185851246563440559255743847471656368021571094631389980744422191112387648290127169314477883817779949567767165268528085372321401210419072503197344481905227915306263942562471955475947128311201767756277888830918176607700865382061394397199037754506018549339777569843479792547370680563715290248417543235001851884630312455630786936852282715551599993266938316644222713579764393781058563914415518456059059376249567929761730840858806514437487048685668764065398900473309025887631600824329939294606968515786227490113751931876819973952985079468537745783963659037972505765736951248171096446876781473086779423519051795763622641065008279146652543170800341349635402195997149420243917081984583255521336096494662343666674119475141010138944688192284017909907601263801360338957847092005632382212682130178938282007913356109803350728369939343122531218610729064221005204270867563578286048810999901575916480213400717381323366266875507219451825542608612358949700124037450082797350705337986852217270886350023980842980732594643362513620628579403818372890717484979993714019623226047357428241928456844622350350895191877516157264688892135249012669094616895583289730384758853577968913303363246155534607563854298020649949890870230719628926631718601336940234864366921224882984953956183237217426689987321254937231001327568172082427930358750368152126587460827170980123656037806637636727770031354523244436004014108429832778943096112372711535611891500342345031213688539295564512209105141953964900580706371736421632213654485773024418552294816286595103778014275113201258397133599858290569433430823919315419188562641310907283153545469406381724675634492697776756915449794358349899432277399999676851016886712473324345738156132562020292955687425235865751409054435582233392709318062821964465604723521571927333311352996003019348729904910721819231573396913525998589202317248838241002579166879196138295205585212141864831208346428145165669260183493824856023398300819346246420946074903922744395656269201700578968096212112352957978131197877553644798946200054985188845939532436280881712753282934701122450284603905249753915006925112190672520041760170608296446941760341311504217382798119007191490687610527491405643404815325148500065475529321342026742304495536148969358723855276313504415455519706194680034265928290445009242224605501307132552245508165615427097148365197589557717607651666220444704465339911019624115984706860445533105783437034506317536185652895702276060087984721745597090513459822029200651623509955724983121504289064241296686943208357190237768069269272474732820144752291361230994669676592668221645064673423831157657382546148398242491173025617086980508576479541814315744206478896214068484020314024812442597149111486020953784422482936998650957836399835428476373009302837507560422385324934341962080414371830701565991015827740256103343067962105448121685901259738120954791032881861459893820283553753530901002918554093682862484700128141136272918763055928202989498663915484762636944050955632531357938047633513352735625009165776537342800807579140805873848070752718164059261098911506505726897371708993539777368403717217517452400375079377247405736841616376727858457904261801900170252435004827616677280065950113753013455539998284353558191533373521026847205868078296380197590841652937765609106642888233280951170257056984527085571583962800490836983810915810565919675028283716301488171975107579821787560203333836959269734385793228366871838129344167402510223995418043610435419844445943028265254777891830194349496043741943981453787108311108454993699184361151501821174792278873480753700930626661405976999379733116260604889669451077494332428127739220324479431338083907188705632705550413484805961553172642421805310562168935494171911749417149972243237620915418761778566250809862410283974754653557473216534230882056493111541991310245752451726783237936815714487965705189732564155503440022056842730117281348029712408268940770191324650344096825528570307685038999521502009297107034439329743379625107796689380272505105436648535144130131286138046630838063302006326533325971695338348280618418643380636801782067758424610683542043141220450054229263965809935739083714006897701657307296110282409153494442006169910910695808650344551551538300714282037972075083412659416532672584774957439022567314300645980795148456369975981900965240963573292719336972116313822393540421420483026664967150119420371070125757971020847462898457088585270747732901117534188643462481972558552639424595720578298476122416278350803570655881990811965383078486037605141515899439555073886484439559888613826905464844699115962400436132100037465287016775209946139381926149546571999209138034869185907662032998565296511074702374438894786997184251764101448114664934726785234508309470172277833952187869194626568649685959640936636625457984916425268995581326007420689766376503935826992044128628938436419489739110860374902688349344835863802218273407678943094287688815903652213904759705239206473376993269617303579945216810584863831742383345815327394057893923694974147913878213061256219771705682385654830066147136359251181265434182212498328733637210551951558802031855126185260049192249978936558101297699127847777671568842557148643071885727288784766944642233250638893885730937163400335313359076663684558379846457363759364797728993865992017265202990016654854133072842554928684014204850751967886082083669577985874321632713902711723021537079973665676161205376959356031525594475999882585871700921473996252287485527674208425727613960403002555610369047866930645642473638640041098825497534198652190179800116314207968284376283818596011561023801471228999749314142433586427442664540612643208120192488035598595780907851020780368306822424232777434299772364194531523004854833903867832341517955586006540866585024694758093060785187903216310584002681109391454195057659038432518750741476398782502457647365696179665912144971054380777361474988750630280314468031118732837084694620909015637159430210126062701626899228988908212174314598459991943709589497202824299693337048323689468891560286484581730824933342308153445070030868216804201263863789957288871836090352443022163805713442461874767647262125885418439203648945457506559898901802393252405546774317909885962538539765596365416634173943468496679121285227006479600719132261481291158308576422276555953020252789905314072963783890184324480136904013358409355739364137857618938892818252100120519908627936064901565557226714030789228173430250190964621114949683635432551540614133045156441922941470848917208378145251330688347696541575361447948391568826055716149044433410010561588426095330508023520989269004353641824907470220933140716888906625369567267774372163639058794930693682730813096079306757311101320831013172992994341347533655347394456249924269963784614899947570280313017882299554451028003500912138964459843591835425604126407155317238805047809012410438165374783409949134835159322656268612313467776985376101766211711989815786578537708739739022503587172657634148515203590156753487340279165696856694588673533019290863947268111724292092670230342199744282635070609373321038102941449273587203732352452436987049471773374394793825090272340996462369973234685295667060756799168542467641222767867386714929543990476910878072040316539975220091123030594905804494455390225426451391693744880279276766480377856852962726084053860642539688443408308408549808592233854443634746581188796541303417950116321847176968316495776463449683252950470880793829786236513794545025062838637622753923929645156779365809831232014791984266954692493586866068999904783680540791707898811882166482245676857410291434779073498688404985502518251049048120207894677284740961744876427927766378605442559629719171523087054552005716368783436790855257268984661466773115501308099131081362769028982876626826736926562898177469077236810478001436944604986938212909276943852980972431687375787649791917651527210969559133580681666180958725665411102601192290150487959862788720687380704198320632035321803431088307270001709440489271950583953552000608500452674387118018927189526969799367373583290939807533799088142158381982659222682631682640722393030174764178868472951523935954606984857441966898104975824447424434271885146480209699949518622779076184424237077668471950956561146556028985309440418202233311407747445749042705068576021008324277885019219364103488259642572669526847813312794104671121510878987991674278188765260291655572015361322036492647722814350428859121010504909794660309193532506244775091981542895100715510615472093371698219078639253510530454610578194566287262170080914857674189606978790673980950529264582863593260480991630588127571223316368023331786121400598170853507022802862315146828716066042336092828500667365247466973412233285430905168750267268962207275321269716696725768871769777780059141931572394788208321143974545083886617995190455005885747204195264878152712171487001165957014860161729233901214304810546718621108698927365500711590252747584741870150225761514752729608116321829931046403513674652952153972963821273492154764762317703055138232185292815892280218205755107587389805739184479932872369203748901767155896284130041035136235854324527041112663405918463641785055483538664115761343505607880481220298593025516849464494087786115013078292203275864931953577360983884116728734064077835330370251044217044158768223669369803502030630016984152026487101634259523062719952070876641397076967227768197471444847025942522410291245729148871678711625188766912321603479446112804159238829214650655388443898185660300802710178262577073658517490016627717097080089803986990425742500676899236219077424500081995496583617265553777909841185364723682711117901617828394819427670677572845468281250973004851141394215393709781321975738295523800758272158359334382376989412618873078689765242007339087077040396612332945663881953685718984800860468051814198188713915284047779599919149494947885226932801003965059544632607998539152874395737129053817744044658655398710475680539269372836153560782428025871741087724870175707878693482187617472825197876317329687095535205244912578270457328233236448586865903206475808713195707876212382755287471028078210704660863954271976599997660442314605577109071908742205548282181840549671252011225214202282277368840666479401497448181844514531350856084373593075395369631493963253653847427766980617240307584292875027233580418626485016228967622255537504125045552300137604754920231119882460232167797550928773693761065712640037205089302334899999099808614697544121273909608642992496179423960927099048861635313527577877693026879532842124161250904568893241983176117295480345961375427399470808097022457242017038708880240573479205271763505810423001115138085579140909279801839761599182233237398445133279010829677131637031377775485552064698070362861907198001351829425411434060407433454707992601592059842022842165143620990415141549178942645068544999722819294749870407254357063232236026203867628236652159045395895969992486697771867432169854681001690828215078919504316106019198898362227035189313008018910474420086351863448620001732249147531429161986984540775674503336171929868452544799026428487565732638314880567447522311216360991376064780334257958805082676344088528178730826561192870919789365732465903901163754821683548671290166372288355343855540457119465908315896740444529042440592901224671878630831640495554354939638703881160174540915441677380923603754040529215197113161100940252125473445533587415768900127723050695655538744909707054695712151717452713855385108225795389021703272583535266344368917700282244583268578821002744189403448428052881811147116876724927233019070405297970803614819664662451897716534328247510308976970747617102737849112341538368223001973352574618502827271484717577616853387504076249908213175379770969450358361243303331972674760710470777331642470599034471797930947928125130451040739467845900954053153865537407544610475638442088370375148077022467806232680411125768515704699416873149973748759916467810581154674648659117594049328907311804494217138754216333045945820605076849994122546096348258726762468208827878451299672535450280276766455646924435005583376917732666182600461642003167109961703002735104313759028357855158093983442398106821476560975269048352951014667980875959370306464675377731113251909205913289441907102696557442401798658389752153125185453627694046224246428480295581169151739328514475694295918699937150889059754842219649078818128454899742737506418211888293686061159444346534127360269529168109192756629165623387226256750526433811083763360757377430231177013806395161679611916944076144836278027887863553473864377622708422805996052677009810229923684032466092131169556070705137226141945111512980163059905026816457983753566568862560477223165701688127812850623082932821186651867995014602475446088093072204587823155083952765466967845087012010513146550585920754133569050243040164123709926496132542038313928272135499387965443124991910478128460219511732194926160945750623254553282075812684681967273075567551126020943972901492558566171142825787520964945475634992835880725744552567411021855035168430398167445198804555892610437474272012154985607581517031424720810923870041215700581811939283747103483501394531865969491421616502779983589016016005656955769708249951047804736499553519941018794151627253678626719344207954510454560173356334625709737168283349410705505002826230048850949027235385285217171448399930770886538874734460135337802659675532863433552376885814105946768715031099043775959567261885565298959143996076589477376110228239020042094621868985674940967842938607469461228251358464019764984116660350150912902499608478564167889008108813378297277165839147561448118782582777792029555835417184496809196865446118632984030255717402884523582688385375447136328254299595670351478716219574001025844513314054390196033645057023551966530332069583776788187714251001014963220150421191601957303734470472946602141185898131914996764959259967780049089531186042695635152782313411898116174430360867556720323434513208696778231089352449248339876748242144181744998615306347142029107439818184643453923031905011085511145584377703957251198703051646225014948244242996075272740006244443582689741658720949677684574189361208684734050086496329515096991586976585752016028163633637005901002727436518573157361818199039604831545285533462095757781563432169563017510095718972872965298985841142862903795879440004012132601976615806146817231118801923363615095930744552966542585961238570238865497559133212553419287415219424116260851274015835321955494488337679914604518326059696720080171171742196595824689825817124818026016055808484793518098153764031308409490948806472089756104193017485547838294465639241266501559200376930885300224522384617620853963655745339925531172174325220403792184460565300856421027158049003238405372297347445735390062300196495171872858701182255336929437644860280594368108755569680243833612066336098322272863959362994246216408926578766678389851157255383485220248989644553170732945661200454401978205149078573957209802794594331681351052967667934166382860015701839856710396978935812238243226332393539449763728798444277430566096785820775928760589349473642667343733583496026975500990259951236749816113496236723136109361484574806670703823110099401767245685518731349543053168778979019285887414468390463511662699921803404067704480913994271604501696488448054663607895130835257155514221425793432227768954631289338733755911526834709949755417535823449479629668078915098439860317053023933318712293660738897859700024085534163366246277773880242174711461859591449140970036724045997579013041603989707932007173120457381388890233938714020854460809061385725241770722709159024652086095332175206077254312786312671686009064460977015444997652950866470947146196126968063329802335090722501062399372984761874635698351836986528230916571489038141071033118321582431101014199849137551354656764538375722783043122128357627196467394689005678480930290475696671839690763546192690579959961338522377128113720100662503342167611566195135345932610210607162328358624145065139834005505525321448113164149087713230642558585949824510282681728423681639038612975231283185856586939095640329730292717660929796320012995619625897472714780902726684439043075545078986257065295810297256276368893563287300538606063597329698809069869381573030254457669711897044302669231335117026513233468017260351655419456494135830215379313284526796677983319716379777869323622306401601572713841910742849662859156690299430868927208880468583460115584481561986725078942400798155216725124780298517268326510586231267893521377473897969650120227205840931438526452845739991285543218076336626972071671390709727681300256066916836157588494251041531008979378078529995782948316638656209383341146373525980178748834345447593627736502593202775424863349545553207550861131885550508559066801611347893879144480843907316151273208890569441082824044924823567084678091339667290866641852891934242119124576900561408286383861041442868248487374628004101014423087461454028190231628912017040642623376533446469749870823004748871078300431286842884346912243913423981806643076983324484406051774060223869429699954453949336810028701501238019158495723921967867271070045842423920961286692898130968377805616368954821877545094660964714986086243827363642267854537122618177243474613140955345406306519621978572360607160531028120322058050795556503694652875083613606103253487536687874591784106570743063925698549083086211501835373394136569823964041307888151844547619290658577926495659896859468662162037399477607447057908097452404229999698445731099617106143656904683432489341745178394241720985174385150570530392590647084223438915974695169207000065445854041532580754068531873921255618737011203377446262316420601644074493820574449054514872317346695151558641520783876924161240543261510595789322463188045201366954484202260139596619770813974586175728582746740835225744108087546244073047162705589277176940563283813837717136980719938822649394345457599646019691839931311838716697176318674929618464336502796167935659864326236812239430342148276967306512941724181195292868712492558620756707782681084453942153557704149383358286884725924503830636547478895065700053385065357981855441170613503652872019910273421612614692575319415832440053644759617751577032868354014187560821798929871159707139615897342015586399139632854212541557596177726811977480169146352310711396984408856496708134930845223997266076970042303413811768926237486866445023235226040997551980605327500697850651776770573663807275649211664116833019691915573143551335262202185859909419823615670475412017833368312509906093251497771336680758448463107779209130393623796819943919135708728452671598968327573898443608237467769167765273356175991545874173724787608631867171918724557061700351079288236496918515067823346969357120703909262420872218061824934003520325747938697215996016551450655475481341809632318479883209552825950468063974253010152772406845456713143518040938458987810558312029614056465208467457796355688632607533188623004394990435908785974480030098973598942388239047206935152263890533075725501509203014926007531529243539333278683569162745618501414164662223415575902253372874915992430985159754365307768415966589593750687645915165695309365698013176010761725388621670791738490540107440556971918065380850667372198320139424825987812846697550141061460467723306564868547198682346549535036441236385210657641518292602500430072525514849962905410476259744546061476962989800075670529368914034946032267962243402267321779172238044847285303740568028503489717680769510549023314364110069385397974840247294542848996857473651708290644522867018746787747005481097287358659466793992520383055635475126597303276874293609210584904940279054312458752968220626887562603818788349293516310286610279890355785039282680895071716750713384266564996260500532991253858375475276632290070941750405674360854391318534373960916246019341057533225183176554668474448217635882821964752163662963858616582810140636943772452208095064744016460165433119959090804137266436813193346090674570942283544784684717268050525597855290263767813545622054280670713542237954126735698241764826006903852569838243539941881908387273900338289257676868318652122321117440694745937403619271038321204637169694074736206723368397181417190495194165504032460641529363169396659232011860051380949222645805458135950875710723421370499336762318453243282771315951717561140912306075652469004875126458817595527419012307386844426710361036014635359646359819228167236498068852487475619910066113036249995000477093084608084117800244258659068977152143404275717401513903577498438047891522163841527524014349230911331098276144658814673518081435468994653173641157466115350857934819074003273430354449127948421823678924476764700849214333383325611370393282608913664869756120308938056583098506155048018493053327714542777052666042397334603749584991998448997910752840237390728385315688362319228188125181098235207092253246493009436822964499288866373163761373852249194023886545828064132259222412528221432765752396078666675155883027419052623489446101613658412370558857289590978613701961003846642164447424659532833011598226999003306167424102428481881111551775582734842323116951178263642593457784253012014412318238912649428883552161947556659555709788872815046772097900372667890376004036401093946891481926747316184880499311440847259135613816244050999345182631153372899795942256636776279353784854630685029091635282074249522381920680860037208401699937824298686211500164386446880621738981579079537691652196979635476895055276938122869074872568052197532345527352500888039310454186195540436130172055166772964911830714055422056217112246287637252886088929081930810495906246922496687954064089022042926078559344741135929955432903388230389684493526842863276996809964721695030397773058281742310954547286670354537447287358041538986839265234726700165789853317876853702075344782819290933285057134130346225931138461258420558511797990590433982015904903501098137537463927795165305848935271079091784681417014243183138607750909783983158565012548487225158709980736408411850485608537382712224107415432767335915415436748738260197687128016843867285913954374343070523804481762901614108618508136971825743801035867268319847732959090385287743950417860856390892208860085479050890375952323930369640754534475543279925850573138559554293719967812223610788424998602823543022483268585639911199485168152203680007467579242607406089596265079187375927045930826662897364365174199029091724214110353338582858812216139519548075960473520492282589189348961776160396773331330515805948970445672552207211794461109052798236170812378738674584776570254795675959893028373741832532109139123940084455190692220785990731673898245350286108001008228830093247529503671518284168194679696014400541578049192301032195463227960850292196269986980400659449406271467750450163358637496223537155873896204476408009697909862910912862661914191589242528446593357143176684610211257436300002472264110301963967181619549304231395484532925492878274036998095768599829226974204018224235148413913751466082288623776741129534491942962189174101808429085127155449855515908837720971159790166885171529473287421190655676798220468350454351767350030126059223455671239600486775310618953988939160880231822677994109198646796227655031740071381905879527254330110179310299921447449523852453331074674446901303250774802853899568665428487078229857482989853865239399851757933476634476803116992431191494421305663479696752869420279944873204223189452147797874497011621708841723489746067064260516063154793769481008309408159311263717967820586912603306561696201446210380736399637696333262616295973445499970725042999269835375540069928557135133166808322287052154363666449703676732253701721989456600055000576600149063181509619302593020661804531527928609520554897215622548914476252795720949990549414937388615216811388870390254941805205279900021963111966378425839813919567814105170735726432455021102768847908003110906654890692476190110305743237542705412681267759153253923249976975120186412062714525058220062612958459522736766116948547454486528358412863905935623848593545580618745557458422513491549833592224155385309576629701788284058547745458946695252275573335364576375845009262592888293157745402565558806613656106021080407361597830647758787318769507494881578650650821472329043012719463493898524862325990776245124951000223957629827135727890306967322418688590462490894568484614156722047211850835393655194854743909661331854774760627461341548842340414546045503316005505853944990684914236637434486708853724078537293449847414395328659431200568866834423768957150948635398562446711624229135005463782115803291392816926858217923313792906561026199058726879462746058338376525324381736844304444374926485289431637722155071899767276841190881956551004714191458447859672320755914042721191789505309371482413080283533990470158323048333256148797114848762725847690629778924451839942529186407693687961404412754765833979524724979817000830474585361290672324783402369269731829841830423940445536214504732595038465918603193226599459248028921577210227641728221699823851702986023822967102577749067429190503844390721261998884730387849920211817212002883916571990405791787570129773497251609694229707094881744404842013079243759259505634069573889624831381707854281589358640811419509790093191383959372544274928183956391212885673369741374131391011982771924839073345102881567132367587393861600386545187938491408821038845864561669291527437732620511568638932646906381715738491639903476045345732983368530472058703998868720022869532734353991525613899313945837268140652899240802075240807346072303424556875294299021189679019764957302458804483413356145823878119324939331508174946994852329434274473485338029356211852490498529713648756106996573237448511185470772504914430614746186819156801166594749886800295352441983604593615016134681085259386390031678599795825031032800526354265424166445111519863890175764458564869610629961040723502122708854761587505808949507292916769137556502756523465976688434962425918282587999480329635571452466788467351736132359453056927556621016099774685261146791008285104879801301240297500850730773562703062918512017432395921521294314544305232348113676754662046968019550000907909686214293793558151802117073021991447914275648538688696881095157107824419931458200166243249953384159650359693688250529953760046188201636099873696289245594204898567285407584324103490941494158019344926849015606416923717997323841353380953651594340114407837929659398357714979082487577120936757970016376417939566749932676279660707874784645686537989244853385450200536044861785654616819705969301304490369845027624880760322405674301297827782475002516732529685447039197786161975172659091539764326265124884285608781577406155624301692772051578888454241220643560845986072956142119673971772120955952820005503085938612905591732502404376043650007903383253879023361252974028842509270227242026065967641444073292694277190216310973467258832141786667507954066133037281271382322762375974394878954791253015701889577697845690084765725758740018134301573542979427713881969437711659296933402383805410510021961778110842585000023358964977952922444278751939390711215244967185702060386839948802045243835048867890663347268077071241801511350391133077545693761316457913289997177073799146139245883063217286621607172428743824786606742324619856839070526077243053629211827885112818738156899609275162450109415308258955640451011657629366773390362213642400783285787192288155343843365670395670126872836475668017100241514484253677159421640983389057802958259943581243643446888546073028660717018936439962430322296835271472749636397422151987141420377845972352731099932505530226354480465580759894263360642102017992364877886599104273770027398220978164891356527993894981821231530728636895291115264779020522143163120862772955725061907560353853540573672895256008354111132371565394434644316027425234054291610525872604130451967987154429317154344892551051738586079577962686631532854755739013759598860525541534797330175906075495252761182701829324081023150990795451900039997290288390259398929440462074829566292099157843593954408422668338117704451326004917114348378997738350525530415724140706893490594485322110058035707932777955837728788045966802546494688333052320587464550017680195593997134984819118931200758089503042466081879231496051029306416531682769515070596832156191976818007947377060976175370020955915158734624484305814435102555340429544077952840010331592463771974370388460021923066977526124476007464495542428317077768225264499782641870037031578528671031167592216107248901554575218596950999195439443950770203847020295842889427296059501599635158663057982059939178588802027772055928957224851827186816047326865691708908163847398513495885920201642724598244558362876595893683163744273585096819008028694960526636655618894819909367555424054626521658183902965973216183532138483476436359102163281458259963564284395552586288683270247577512748828930680444293291251538174112315648976966512431844619362876356234043732332328622391446663633396036240086150075975519811307373218900397217635744501203540420422843232170544707220398739621052325047232897377695718683502897291099680739952668161996888566718196867466295473899192039356855780892607004953651722331016347335509773407284077752401934060894258101925718966361660457735451751217034539653822541900787661635223631949699011460858970384400410808037623499362068078385407882149485417332436053118084698982206810634292174399968918091257228330252090899814774868260974181377934175422429315697085527791174445344985920808125405739202211916048970913318388610633903281315045227785301183968093905549483123941748709798794197194744100477006936099396486452112355010658899896928960158373295492152553120532465320381352640736185509767041158658856990958559468679437695077081662836061031391121072856276032543995990911602474902496036899050018552885252504314023431513780627329220881091014661782888842414309960646410354605740113321418476444769752429761099840618909397018658634184729571957918230715812598694899781090127903541466994216024653829339497482980389496168204618082369776070233469533405101353922014297328002123630828269964797878877366003231409065072724300843845883895906877390557151527015262027344893199893877023717373937730847034000514335747581445954872845584643918474430513093289236010418080861068428544093679310966127116572429728213919976595244754655473621284960430336915380688561804524579971881261923752234998716042675807028090469836015243143072026987207939893630543138737229714385213394364219179264183605846630227192233775628827820574612356139836915575029126423094710512148971148588506211511317631885305552866434454800801556697524094182479147065604002792450219598433950333873050759163101355204947436175263473443302660663011936748585480901439809414656006297113751440359214989332832227067798020074016907363832101995424145828726145612233010337516049224847886256170279422411288189286068139050283789160834119545992352508147435344304730593980271869246598974298238619136533738055127974789719431836751173887358697034474158635864355079850579124662771911947197842168368723258846330916926469344548749658191482989866139376344193999872773471937606649322685744509720373261161022869219565500241925753916105010592991832070064339714846995259538480141260802426927083238303390375020457279020877990758374852040545545615155188013856830772586871741134537036939132592252095703142811248924504906304143672095643861013556133023280008510986837386824165578373374393327099065180754354150990755950278211939283805922546243470667089518040056843476971674654821756182388848459736078937010308950071643337460857705398540866745882574843732674270742536091227899050877646476314234839843586907855905623998461495605876728020523130457458772354631927769570352496785400116210318108079708318890017941255279819495079797015090221174716351610979287823934831756495163314770107864431054455632450420649491005299798017039941691667380289180966850769664479901955546034181908727024842107851195103040108643375398038769513097012768569338547903436986368608032891620640514702245118998326181959664993673457265623262355066366057580185191757498042821141957577732311006090318115300935634937604664404511819576348345207471008891928626381048392459395548940537793796634527924923452949118429302474858222292794593741944109653597244848630955229133028263633930356479984049401391258937020685580667496517928362306336837479583610221920629256893458542215235077293012377572266322664572400275501275565483050166788899159659142269413995982790107705878506071517413761162466736657373170248334952579848418426334559039800978873345711854256044765646354868588472251678432832727853079629253242173186819753097296907121662379696885840895813031999433032951389872953937482030658342868427881577038084119294099560936074495304509550777792602621457317835180974219893296121825353771091936255471485606126410615535192814006039876151085226367114223303413762137683680913048993830859155817030273883760417749323300984954281510269769354485889843408120185211715948645490303503876904125093532314457519953405277000342122954615198928718894837811459111833795804408285596168036484822688057559785637968141263187139434809399214733737183681498173276092140762695617582103824418299554112422444923918025546634035059381039956338734922431278007768772261439331349281509289563406167496864574080198251708784644130301154605704295863037808412779111867372929186017136417908883622185252396559006063042178725406628631994824693417940650932915733537759127873248675279635436538022617903947414449443592966608492034573554514484365577578297796110359502616056410601832632003191823444404573322684146054569231642297744212428466417056150723730098107624285477068711610530538497729902396733342006917050580787428633356542559299216205418818132875624827524869006173876807369548712665522669133476097552707908356296073056365328526979507967972527270570829464359785065343696135218895160899834718719675484316678573236045015463265176726199508906933705620613262974966766009488340417043130832642937900021720559566750783709786334709745492671713079792126658768840300985925646531652456140677202048173732046836728302792654909422393849042288844329466112622081754683429663775727287114365818507754952049197406793954527958694732149376377344665897899410727665321087581094232204015512088837360271824051746022514849996357334575237211500189606476231484195464676921104383159862832765007728419366366586129942259587234695036835773141739495896107126780371615293383321747125718733980269204979874324274123323539619994673502100597230919874148042317618022732109121314803211659380315872754339218879880341987963341664402312886598159672749861892582127492762793910477014766622399100869871155854652866773323420823580730768947038343289964858445433526213389780222812941723286805049892080543909449752496073421722888773313762452628654115779988249003714183014726213889847170037348120035344747669148560370307176690816672567475904665708998515285519724303683888640285139850834207010011317856661099063344508600979825547687724757357999811563131421355018726886518068183281809799291670882275327081951777152797954684969795278201250653467833749538550097925640932955861673521993933810627797819221526570760061325534994499532039458482198994243827915628247174429093902822458230939487448928809273232499731506833353101631918120230018387361035998433001192039068074801271318369796565735074937323774648073541781728587784805242269815682448753146944305649641208945181472214781693321561096930394004592268573137868869660306985513578483763288122864082742585734823663287273038771823402347814187284106538476007430977344258222298298458811227266315982047887117651417327595892841226156742152803813932575356983727411824885688852085791821491958130084711625993863478811524086775519101849633468361224948157949625484333970454121169171308147249082130678716653250665786645755572203488397277036969883050969947455571981774240066768516539693296779886741546711979320927371551756941471310695815743296825531647056201941064252768311220145594075405462280509102506371220180116420999079329321827637120289691128980783638426783005014220005461488617003489982283842305254598138079254950120228980240873983757539596630858801148713097795411204988098939633097756759142574207615761287752100525181129214468271414423600764392053004415787603402246868830847253959671724717652627524045479253068617864427015421538822540230161979064007986883114143746151924973594495405434639905084674647906755239399256414629341240450997184534187567541548731111011455926308227463106614358609589714556129739934512746450828217744071798744920394658119538629148067123222812071923183574359418320537550990663615399702602006896149007047149139116894018327126529383667657841782506632228231270849250878837406044466981646722863754409786081233530476719314912232886678072675186129976346481907408974981595075939107099890538958395348106856265486247568248358783694608955784492541520512869856760941923323824141495551342378370592961563354293006873725344736664979104285540357914542845356528737623775811877795377041555889720248482068339706141648028654698917116594111973588900783191279327503214734429952747492145347587287729774185003202527582346821256196300607931219529859377282843533297836451589282174247784735169908293201999090137369595467272447093908154056836789098661382897851727584573064594522873419312806144356847110835939413684372087164402743724223684228098922588568122822358933761882085095388384104646214920032552881142477510855497396301713859230112940931083355914040366951063097377036690348918185081573670579707474250325443692055137791902072336883848641415207104129149201956459995370614371047888774199864670896816681588831192507882215523036947145929330843623972088272367668346823437863372678078600130434086800405797247517306518382648804384012517842888335384091320966410949647656365190266475900313070601561747277272931219197888329314846580323196795093421661561308351608516705185799295778303452991780637139120027581120196029381838049682363827128690886026044203129525531472540751283394583793209792642914542147488930359451362285704967446559308076850487442091198451731411747743893208672478176697748118535477379755107866591732736964261637736387927143345752648867751034333118884936529006860556274219817753221278516513614623143749433593488557714304865910067252292161669025745414587082167524236260615618023799325357050797809482428232539235895206971500877906030477400357842660743777604439480307680696134666792663123731510556282974295743799972095555906643786596015639199250576616414785575131446328720167624155384518287607251612694605809052962763893411531118873099426902385722121878459886990323244824644162630388924924227213981435063828699271899211677096909406449037237370107822758194965071041536298657360239013632897919345521967577153037231056038207960346036052353316262077068179244298144805255294648133140910184315258605649300563532902068265974273721308523746281060566545857149594547045254699644720714470755484060543659115405554759645604808264243226371701903659712038482233547167049717425589292608035845294073906230156684744261009434574463814401512226213545353878511815264352183639548528283618987492695913009699654064606286869023801807883181133323031354828501022369751364070003387836479085125669929688058030956460273768142151743373230748624097638920281323131078991407582505959126579025316711988345131356773403503601939476528397529852344025925994147505257635308530756274558208806749503988655779316407721045376142327931003688363899096966230079581000674719410493117069764792113459037425336760434284601069580217271755031790299809280965920282998524086313703514674507647084382268800659889053489258255368404872554586957101761961553450861709958543274992778726131691227819359732138920415255075504767247515062990224907718813613322215585606882519630531683882786306501036393220410644029519656769038261843824010994772256971162462763978929620076881972348669761870405806811074561058764356553223388750899271907235550444858539223603848720697657806769153478287389018234543109163802813337548066956653249304899210628061439575395639116336710230812819912437641240972508458495050971712858742691803473329783873305663279526177265572265178236144797424544686415888914324004381917902371814865725691339234628777973578885847782764085006688500525328494970623859236750668052365012613203563693778217062705530006757872305079754838183513946419757575737298424336434966725331410096977979601181041227985673478876146075265319810964561483661415062778280453422874894773052207689809533316525669791409511210548898348164819225306991039382642010896974036067940817536708350880165000087290536155249262811614513597093520991001168533109710955581062793199231469609861239250011444434280413696474458277421674913186145766759974480929680946665995015122508283994550093915466616935584910218802013880327224940920081976672393266266820153361595461916172162043687582239498441765765421761387673146977465575383502586442816127129060218674867416553296499845914878042918645461991712507227545732157261774500522949172531656052732661578953774785472345730304495480601695934773991624660334216841165732258925112991957524172270224425227194752386689952657503787087475746075303429386571865191773758302038419405761190555624215501677956614080322453660449203454842336784997459519589557086208243426866996972325342162082027693608655923976216420335226750326106907266176213324033377424199303152654234024993402528614629387877803616988253359167901157528189819628572638856799925024519961615978626624192149867521892927896350979500498509922507056041659259349984531119542533483300152420858594204243590581567259242102298782067825004319256579792287526453107833275270053169416449629994513193659253143434830037711905070673977268555960967291483113026689468862661005330611315149959480338731462681758314780041352110026999615951037384454178540359460707495232308875924634032508503167407617267394571745527336353211685791223588562411376414236499691307272675465073882718800821057094884581662497209341354691066512427853048667218944317009488811891615054318776498899175456194992865816975156460279816859873136178454306670982339831623454249430517145630885427632714211276631075084437729674420018704013163381243105852417337309473654320064582165070584378690517132023258509425048232239078398866484810117427632777952350567478884490428453015680880692339597495313442130736939930371212749919920903336581063842341556156797723361279986359575816293168396542271776706004322447122668238283288020895062245254788144738236361106845321960036462275478616655462677570128606837601966900726099115675075475214827987695036776732421791518176542833574290379855251599183201244052059569032206744457089351212361522746491432661303554072890887487449368036394393374248874674031805308676700577852283795599362083068609986227402477054473959064451488011731379004293379609170957572636604579260580415103245861349861960712154612727052045274538972784297063423205947737935069867182399553026632563044659388736472779499927410190761358261823573255615851037108873853697557389845869539456434894378497462051933759916648649364234304266770072679885229517637795620713494757306403331632769686881261241908298710475819483648946768382831496876058757120852452939925005655429315282977028355897956908981040074257282288853475809700090211110001956550815286535990148884154315511794472673121951735590672411464252799370772531097431666637797340633603695833058347630387829689985163692152323376089752877144247650457604381758657427597532487504785693608431404963116257506570539721338075835108720452185326397522333959708232075032033809942465378643330183016298283915649301719346774627385853238345303138199070099509763377956671679279200407489873293217510406027475098785992128505570547947158394515532236444151715454900618743135565842938875281978822692547977293496092572988118377564012549350581403488113887646892247786897195091727230121442145948253873195804550153717447428198434828666372684401031025906797324594163622501311912465708705323780325057229153354102118883828878785853838135650400105524096715906662652282770333279629698596191569735479766026586589283625873619570697412342735295077754953264977599317850587634757800233110622224094632778164016964691010532322368673452648930367675539744484909590311111896130546339850033355358778677340155405298827125670599508261375347311461978965769685380410707448477132380514115288792587536267225875264051602532059896138123328207515313319488580145595777077383262240931584896379056453350376237192764258557895096962545185999401403833254029326712736719196864604631932723021776707483950249431970260149151461328596780009277032581740829112186967356368803280709668980898724186323566739264255345748955496716266428483238990190818712323356154839888242409225474891785960699483163594839298944557010301211135461177810695741968570067862150323336621166261459985153599638706356158659226635948263468454062559736803182582830923428462083876446170048212130752120041417162889664834914347238338050433666555635632614993179034707037877456856723710276202621249895687372014391370696089311411088271030806923145619190544773693786344942326478031553344453790860906119533565656443068469850474649087180320582053932683514856545249550441165069602628151714667602277461411497787062947585645254469312955811080819642993744824615210010189355817483066064717378575388964481291493577167627416084066977985590280338405954410421795629162186310123714002281233437242141154918825599138467424430670997190389034196931494778608024102791534715374846671214263955887644513539300298339859021109614520516055215994540353838404981204272369325823748089708213314504361523684816490100562600662623015876127001037996083679805688484644500285457138760379336611544007071600741548004238401431707651655716421079625025577353112709352476972150304824255440889496149064192450574612977811405041787849211871189019795064251756122613391180172526174819452006679041380015603838321580059929938400307095240096356254287286835006790679076749708999114343649012178208585885552041482786214806376784170320056973383079275394492198429228780665109204702955615203694131963001420526432424465220471927395210432280904668818070038766033377073075318478387263010527148886026481464703437786177071398814245288811818429625894099593329450736342380564009990818989639953683100182717991410084497370293579375763253884391213528670690379331389616395200662719641542209332774470410040262358597931482340954804522502482441794859664962174946204358202697164267996346250618849421817422804933674549478918823154303134557916882920068930493063128885657548062735918237083686078495414894800812410079215004682225670355592582734945267740683353741009904246424856680747293721993061645255489623421312013007711313400279975952838415212598648118999198199200561437116796459646659696959250573252301659634479052741189432521414529434341871495383857566466124870557678348088147268637082463617928451945245039027920419304160448462310434319538669468384962589649113477755165409063163344360488454329199003274070665547536067762155428092890993947187160670333288538838675106085694431555925925756569444037361838545417460537896703858313056837221924995367449496893660690182486118404792507845449684794324847962644652713750944038119417197429732180319110266399268073621496755207709900964121499123078030370236693802874524864348445013756851587116175250037379760856791038493667376911488796149548329859799661053256114869310818350862218727752111827431187454260674635200425891784813664369417608291947333641375704710918672914029451960102223962827597019457105746894785980118810965568809322204509759877845899255904029122179777134147736231237049830126475917269340698412315985198050449165170246346995811530319625857649708220835889318843585585547168661268115303735865483774129919674507525644048889042231669992354482542169132219871193769627557813021772460827017123575494329489053898171222018866887651247493548365556752304602959322081775563065790646634857065953520133105241459550229484676405748227863160132174913351620607273422144962718986987690275166491947968807377495074811581057867915829319363952567364436714671707491894994796769081519160961369415702266815143370234611116216425263621369171037648393081289497900799952429733845085043464716243744774052690168620338534157604925165147719757621772318092640396073054687263726550795753468503647749277361734062650945486786860223004096471533683205410359975226775418975495018260407302534055416838886979119108742883602101539095755708581656909767360789468010698209082260602706005582729627207196760339047242334799971313866434354164939776251754030361914584704360709275272715699803980276858450126004592429605633341213676501917722841517075220854928786355610493717193724724363891449132866058692773088952800193911656749759619526565807055012406303876048271793941938071227823663776229071627349148383138594568484191324905121188159791134968896705192579637276774159537074527312949972233651379347856653106358171329896934398527202440166074866728774466620988594948457347249903841095278212781516549951886125391160592767785458259489789364168325599034568444760695556813883532770183832285022532336549903370476094934417157712872032920282380483509852558905161853025370036986126992710203143176501392159135870972714606518402535566118785271731781645134440787839561456685305036102134084613791636141217188580237125386474060679373053488397510709117079224279528840585922052343158415356886299485541242545152337647962914357436363027534993658999338373209686278684196091642560692145786704534515641234944864292407089275070291341336717786698703617672890081102601453242791601993936428418750123849160112361398128132213063748122078534361417270930231858836672280400936007650067138773655289633046834926872164812902181661384869663290063947264003615060836789213582568784487879640911979969199429832580017704604556146074087775246434660230118288475464496047259472048841225518913380959852611592130175156379298595434305025238640279730245176353979016722642008779467333441823848731471442305204202218546304371476373383908146978813331074784680925350599762223993412472347230913874873977565405800281782301238318995514814533740428144005606646826230531343109067011393439514346894757952030848827055697668586672312515091266994044831033051361619001621037026528502092412041865159650646404173934811956451691516730265676218397722379766551642583650347619051424867696254555825810086821484872887805082448951925094517748723730624996540258476591244922305648501084690605424180767580796171100109012146147803099073564002360820094329828229509970208314707212249888326254157033059599646476046805930528497486183660099368684125486893372024099030612145362606013446023007326589728216955464109755572087740933306408062843270566141261364443401722625192867640861492380455697057346551870498300434062728659564408386152963222823402659394415597269002773978513624512729880390911316420443407071226366565990847246707793801438658132813390917532306041453598062507876133034280453226946273171662595039029904591472884288978817317048781998067769475455989403425727986994320905527583382637043500982109494887887865544178554656827728785883492447324896915987862126556270868698283347840379832591175449250733613146843566428509533628164243816975391464113417485500534863605714723963749488871555124739522580811706292309715072136724389961666738470047052415571480321497968098026019560284776074055421892278541061941412053201937386722197221283820059233872154058384012463623786268486034476945884090963074938419527871974196318833738676528972692372165162256130698034395701206963704578301343067777251053684643845661121318926599117085108527178273177215181079958955143216928976022673960108798605953529189327365422506149221750619864235533870860218512257095256235268139312739283346771520577379613803768117450777273710031962658262255831566192693819522150711542025354072158162013543202027211951896598596548414916818115515125053956886834518644549557290458803430707790133759850688922997370744334812911933370743932094033350585337146377050979763118463248378366901433566748370348778498626629891899595149060502235899804891610555780707003839623867489184753064795135318537614843003275994229321796044726736831741384727830268301924350990681983042898159515092212288894877753774890945249043559027668724560725247464719106190584292171927939110685470377857644422076468368241448160377149148807879732060877173371698481383981126878406226282000889892728637830822401027271437098740697748782262938366447649795062490153514276075208910243415077598914160846653300596281362254367626239247479294054144300520878423171815609862375648132061122221177827799555171864296782523093790396651399848683591764838638349344126294438518669591782875495882771088393275802792320522601738670971830164867303405579118616198237266491756424429074604740375716114157859072982701242587463773349457540933375532386567209441673284515383347843434696166031366384422082296129395211441928183318457432201863498693646442238256594283018500482090362550339725928765284916738035127837996968630523241271626259555263516560167248750752073237435433460693211705552438822261606583480853500175260815042763850056422296218088086093871160599779595469948623879443850154172481166575900397927109608891390682454223992196828924952583875292689902885932943425483907658429322155934501497207986505408502224621871765037596058553714997946337249131916961015783193264661058344987093132690863160833254752426402687752132838966783190788515774063073619871692053815945184933872011273226584157330964915351977879595092537065426209187552134273214789245786700198716529935414762499170608925106684174064548636915660030553138861066253044427432124869907989161513680741927008205403234408809612769813070411932404293358552135688633468559151410701683865180151966674891443831253951120821325110964890563119056131364307164881888107851794706339672860198619446857478950357271602690084814940694151634817333793937995766064147517274895203215376901339508340622535698040107179451098709213044923329388836244570039725280530049344885465087989705451880120662904135323990815180855820957671499682915933580447513727349330206079071695542194504354278680933924361415748566210947611700403579396644430154408748614812926083590756625295135459609914292226295007823011578354684933184929821485261950073979992527166202990934079641996656166586339148007704073433601919013701805615292197856560464966529437892478699212855028339354336214241194983354996175384327175997124784261577585738215694610967283600136994235866581137709487417749520467400371170460133154212152061120374299568575225699482472099926481556001382070686747378671386133286390033296681610015906587894292164821055774905829643117419605621669277666808672081069507921331764107444578406462545905294116072470686954527939497493992089608311159880805287297995371881913261034042229069072513916484350475252757568306310666833600556500332738263939934335104254189915019313086580550080215885070439763015713380092455744971531052331130442865807594928462138813675511836023342259276867168672460605112871708096450538157045682383449744585327384432802375895999653897648140303886074625211688329933551073992014398353457942925390950062733082370765947303053819620730985386052556509796987395044679933770754788182246137552890147776309201041105172040423976810152518980005231337884613467684907888950573325376648890611312503119469363459032404625703377309754758965877174465935055842868306639119245494174230717582875249895970989037136100858746586592830445919310023774700429963521248518037180766862458320493995013809594506526855737980733176683967248581270685322000195249977663701709841236734493957928504384024255102443819127497456705050227498519112097906893026880798359391850221458046575665235952795980919209079151252661996902083975336379918886290256724186320699820373921115762117102464136438388203110065965655633054404311350098687428349505523594903977424001525804685256230621705237366936887217010204122171674106694409262303822652911761712672586554908472056136642499320913049057818308916589151197113666590401842090219755586115010177567325234069343971065346310299866093536412376597431353036143072400659073607137427446259140961759444179408063153556843891407392725027158565162772635434359655900485417091298962867471278440328894117526558570056981424598273561953068481154471273764288236282526974012183094689011009686813643231195767552887555484049193888004897821757514650450023013514193829905613156958664100196628138348317615180324626363044253569726126045091667628402701040985369055318344344816995367600988575765248859186742996549874335528101641298975791382312522952339700949519831724416333125572201702623083860882981027278124733811020948612211057537179913229100905378223981497215747897720129561065912852071518378674898935954794953629492006623565084298812352471545420032109289469938679310333401659454960378997307451434526302434708808156120197188844279571951537948459799464486228110873670019976702363533426326739533568043499108306964881869191749794502245427683313132818062251297720302723503479497449024750912967217109461612855027753418497394187789699365260540529244513518787227883975843902938796480224201066259236666549871436583547191266192628954023463388994239725646511446944683413267832563930964203979995109480105469374071773108482708009380592972962767615160216560919821372938973137155767787398843239376499106737282406171861173278631267802001830264038140752118141277745210700449032785271247887205702353979846806653306519771714964194125647562670327095395958292819243059303819930250721411787221463100257769800375327418763345016332222516010116659546808350779234071618963211907609772394516948842037158682246307875006674364165194599136268804704877521844567216679259613187912133568529034428265773866875426051123045432270336040084847679614755884919146712104998024616954790150125547067634516184071432660004897686475582887262638434227414144633637225206993451120978497260350192024179751614928000313525407899568744517514348148476204314168165203434592596357491947318145276797346064964775390395139012749160240418044592443631452831138457965962906431401698738306990095552998246184894229727000410244410491301775249828931416575928986456511354626966440122247875316105895594346544534753012452665765744385932260599767335706954519964791155520443977394755567816628918768677390343456213870552808425032076554590426368484076962668907128209082980500549474592359127616980744878733186490191913501180371666039414035735755737990940532866853941684557135426798412425161473907578273404001386184432268650009573953391625161420947008580772580509184279937770032115294579437585872554123892714067801925314683114827197492732706724595347158099086631912699544509283536082394944543887037122806865351665050349555633681299575178179652613703949743142963978629559376495604935854641734436164747613831577464294809573676898417733224575166530998242426676728262292554457378712309522280669087929399472739032574628901147432607919412050525858461752190321151167738076428262796040021869228592330151162264182394330366512137911009544647726831649561750975623686789278520787210265398522557513611811251958422567483495908165134367191803646101215909490085831428850745099820678509809900542543849396622138848827565079924544509715648576717459100690795771229187412955892777156815130588148068590409990442053319301634856509464387866018588066631004803304618314298803053057450445629265182559080052738540002971827735883903496085556058460317712229664933125469100991610023818006230489973629964871056850853836955865401246057914715364558295536945704069815790196516793624893842338625837943193954327568293209862831660960029746962608580197501416961026975768847445419789982578111267136308911213074572797651860725350505393379390950282560223604856720204588323497989016044960324853275566545846162064720717275948037890096077889530389615105171571367559876164999206377666680577581847436789057946087416900335206783169391008806956749478561336641982035250212555751697730586674221115619844354577218460853792089761646472980162786265034079527341427302972877916840361988786803358548290622520386452148035804461978607360986757322967344706258956707137059535231932984898315005646346149444602152375578108625742981912309865366199664838363024498449615338978530800789836154574777518413733312052208292639012677105907312645970353683374473487289348458087904682527389270267659250002532741411135440873453249851912846810636923679281684716883939896979260411805661223241384523496981525349784971867706879360486941646054278019373164200851637864997374209871832892026770984621547415954666856592768945320388746693731492963849478715156649217635987561468878644474958298803017503240361712491963111219866147756161471390035477741959492742187332236731580965651552906967049197933393320011772491813731775336622765037429018008229037909217217681489151974188136383454598117002690482196524239968500070123425479249347811815615883341564727240826661722647460494264043895120480674418042390775432290007531763464972699135082834868788597913778179686386700120460183633944974681739414541665075323168762092550664342217802325096303150005870977115405733015714599237662153274899679098779744162341265657584383258057601155241366273730839510710329019039742663382067797917954244840023338069785106148143987078380179947441837296878714958135608243604575543781223064467093188976373865712082119283508652828044745931337356570399060100876643474102855134659248045708100435835512971819425124353218907840723516563343029303757617595554470722353804031225723646868208900963111232303680116771574691721041227252010764778843522244841691788815162231391215728846499696020209628445601362919656795544406175543521763856255425655462751583955647114319180045467935816822671490101276561801719725666488320753162317313404753106606944803861329415665963263154822689862055369267925337901979489966823992187667576020818459008873214143128465644845073524938705577290372037080028294015390116584820615491132863294950699208040512963811889989893340601732239329890817569918839524607671924142243731966614140683530921402248947215356850877558423339853102607747010907063872789542875462097496968373092186305555434716869212216832246845886033542104905560820803316059693375371247884702641533077709270367197097091140709181141650928352484072194040058040637542749901524705704323161064014187842869671182172404486952932716842989384198296066353579583952547801339431245409992048583634304764099917447155406526310216183051301921448538471548629010876406691580935566952160644469998408392957796452293168939068463409271827775569745706057522678607423575947732884412178792339599035267118917918685076554832430174625184132069717655829671099591954859887174975839521681817619533642427660912148487790095024877788576673541848886374636444851953399456342843959534867453723485951399213842552058828523232207809302244792858448533166414035671065649749429779569124032104234465362673220237117485507485351146420338555608337964052544976309187635520743221409631595170387367700893249672316100046163354353797739037627847140467947575106234391741499713950777041727877516125778685356734950761419540475196060433732131304525754249532506156503712136080961406108554379616095383094766969489178461140835239259377878895069477047776358767770940598822592414099544285994200045299021876829162102560006735186108115396670238691266881299149019174303538161250377722638502400578586404286731638463164045366289567913018167955163246022901905788264597322401578509624104678461796738589630329317226664438075124661708407064217929538360090299632540957608069422752230590484905694379411679012515511347920599644852783317875705334603642222025116456039855725243400879853111147672026329342755366028917043644710124812131226136265662278459865798490029752698874213500415773956896370852041424243699738697593620062095188714927642677439859159818749453894074922941911601062159039255386997547987976629867724558263800258967440956660107869476479202760280100179303889624496110840404624898747988777779653449804665089212278977627514391394475916403706039748876895581558853707000550736401314591013480601336654151513678949546553048567222163314755830415926014631557763231429916692260714495658434318770150370646944061306040171611569913421329230359470625485924789642349086367619385288678454945171023241864540839518355684867290687134422326277970813409721765842176747334706224583881174965725811198240395783982026782010809168032806641380712559682182642767126106569816645035867795131513145187262570125621922262338058027555310012149501998657431510682099133844607689364013365756016442976205366576277069732636402534796360152698362423394144314456779559299671786526470052965944877468995360525582837595592340164829611692918131243664345096125444908882370258682420854010880728778331299922556216700596113652601790299472977998185121705461228897810861973521308891324291340194307220179914236217658795560475690074891982370323049709953626953247043291728061363743049302307478909598045056171860228944569536096857920340835998739613317761316603965583755621688185735825683929399373532487913856571346393319422755119447084685376790388663454016473614420156856825419354590544913380860305251751402975205295422348617944857973783151247131728456849900513734287875413613920023823378292446372766968068453239876030229670700456788487575024113510490607556930728731703534861805219857001816357992769965568283973165080756707593148960378265911488067456447871176520352075081554607852477390642222276558537506322093394061766548199235487358114575514092615907459469439085397121916988280750681811018207401276808033699470585561802011708254885997836513018369061462834727471427876649962413555831298734464880987323589914243055595418265424754406507035517735298501777893930486310689730035429476128333515179009028143181897032106886819601140049193983337866846819306294805342444468511365631235140306239728134747946211623207753906236643572247128512894718295824305406740890205119526831034005707714978185303913291543005090323494441984677667484652348735524086685566186680238543270502763601446107138430300284586561295062479957659053010648935010726775938886248160604826109770653204213567418329406992128730441333011423770954078937361431868772251299395270194709238902513187787977805135107660925224929629994461762808623228932736847447854549461993620590034875479063584003867810216031061380631285231401285876026014919056641030345087212116810953601596522116474385696477245701528370958307817754504624433758144400337498202827488987068807578883484571725584924089223740572577149278499194800983792628272487458886832746703299611032902274006755952119623777155351647142244198246511040542763504709883057207787511447427157256916248583064367110012312508743906565582295046914954275917183858655796857080401251026241943278839177421717527836584061913335974363970368531645753963041681822875161196229744125869219522869097801762447558839571378217712711911916609191285584812873482894317438944330372495775513819084925554652682886776373925868577380023332530614658705088357345065681399362108250836781707067275805350436710162870844273354399074930515168544332617545797263115597857413546587567250117406606043132206446250362470264657756545897272763307172777386935594777438825366654701867245201974677913452483032368212834087636283528318508828553683564927240628888421902466093880519957226949781391013914237494674135276302649039183768996005072171730397800355965354775516569230659448639506614255725481023235388420181846567970887025711800567917664759987736690593740101430407627467454992776793605752288472511392509500790638722088229515250100843782322174233985256857102307867119051719018896012325549671405043844160230792260062240908564780150492062272253334391212971381309963166184028804720183748078050854375929300172152563130867776915245884328136750788931530711737920968686895025199940326003922736852888449787699243786527339161187887688286215749502696930615843952607041320706148123057018389249343200664142647651452319639883199040386315055940139216266937165000137001268960218352531089753472867456067186734289206595154874464145031466432099975436187960684646926330234954190182351890269640192278729492439117942853428881859330823140254650674760689691006497247302185709512398670878046711750248419178151696490296637427432833332475526196623729065742292212224650004780701565095616945180784271358894382549304147842523542016149410375859480621695663837434270993266177639968158441211474639731420932636512239946546677910317038733469450364507815004219285015414353273248083800221229459972016495321477156823513757112948254469648260740400491025796508585436022370979479726474400580782538557967825890572341259968881322799168172015726816564084576239264074148992298452752284608886026613254349469586176269488559106135279484689982306215379375005249413041620949082991695644697948707071330680609434974201394845374550139342375952249653966224482069255339278280217721974671711059397489826131225625760762758588788774810020840679272453793295895576968104250273269154639274667988315192855424883892862527371506212986257716241808364546873446800000812767738649853912663772666736446666928220161230621789340534657586966632188414505102191758272339945575472601306716780834394179658953263050687249897245227560249570879258478651012923530228749241419870545529854280521752975146583753380709724545208255684901435940223599496687393448918952782484560649210219307365925678411065703947505943076905916477931792939655924282874603715165740307956272864560029800585937238318959010722646940523535561382337107384918212188460751051138473264311751929808195778967320183281636603674295123442469473800631305023161552304846635042827851024272674595595504362041852385286152242163041660402414684733266952329232596441466793798275056442774469734717737518226162615121218742125688839266933696288291446741447794855491116053627196643256115839754404960069739918061360249992476373783360118115715525151085755311524508631281819829754801989713371058435151711840794463475817908963739539356332591820885337105532782411683077136616359229078320399873789543102081735899334142637791167896018136768687056539324907313052484759256781917625889173531030772609256849426402784258429149417437554998804410243616805363215318581891089233790462693540881176948844746729160850740920988728709906207657312245072708270691539337300765703862586453998553196178870425625826108770714042559898271499829690923335206062856777882346386018317065988913770925022250487028005980923702165407507887218985781977950848295948469805801635898728378580301120655589839618053777848256404905981512014529513593018246938309555830112909847107355033474016304514478841451191108894017331464019476007362085930055240971149945715574966830829668694016762126412396908385458806475129024483117753630619659162112614728064281216877408496748463045164708160017117713413528736933239325224517861541052580266692947552886794879649287559460465106556379626710915431441812742853892357181690325177352865296524605974868048054710223420358369445837938955759151670302910527501060339328674697298381530320369038726782921350826162359948855144547995558676833865956947625928788602483917252842850532638793581808993631951095944856500406628502754860825027039618002570521616551791674537401013987075149599522278393071175630313163888274034771573447045519429379178759338383172584540582611140895161562771983287071468333307455883306821277840688084852986986609702541846464790651438047197292835135897963347106429628965145583742958437396397310012801177479262657969357446243797566549709090565040859096045412551476767382346763260137039740392440874986903085508002908631532965248092099575233918956076366547493001456635726895648951221176642114227361470986928034154844739418918736138111447323581715467391577548798825341461798645757047628382922756772741326673297519711870799054315783956343234079609743599313517603192441978480727284215489997166509993296897804411250148853547898402375963549842329124501331511028805125066364963698127590886199348681162944205774019530725328524935058108087546171981261518592761390625471057601842934304698965180469632872464362730601300468107785870853961759798240731294833725369555205020809186986923431901427386376359337315059610501384799197313634534734281047619705996698613950921755807749341884574914872287835395851397586406876509983147125688069238420156241731052140272302869231186998291161811117271461031659515106794577668710167167147048270371834467590324189616403177931665635142157584237430693717016887950026403767245278292921415907719987238447828066894227531958672632836667328254475008147172041695092116772864575538434938671485952769121068761101928586526106988783964353200273775565293435379719400829623815735485669508331114104520711448548139236853636292937252012766750591889294685307882421278942467052226857659354118391935518747431577503948963836124578086221375990251995349996620588272558561052485841230730862252814972508216751844373608918473685051464912889341614975814815171399960486357327097196662816961136365915131871099554266290625159499250443044938509073122426075813129035251503384561002918571588215421444540904386779931567138638064727973996114289762857190130264255385032935839951216298925737251588978244745526370983744263862349111032817765005426700485748021413199755450143936214967714154534272025780772541549834650235319319364452965157341973115966119340483157711211996254495008018436624631167183498316310241217994689952764908285408595117880331319521874503500211257360640312025012533010981124941923010841185063987649397727961936658636244990588085904959210129974915265430294770339061475846408709824467802741513936025647533871276378384836774062525091518126398086499604507229661508255054118109172816186384905907326330996234982783583572776282125851357810533165239722175026798161924055886271516034875377581321542693703908077500212511736998741618565243218175599043626170842244364085200936320570139105640007199866792575648145010519042249515738538658216519419821776407220774355990724595999746749472897965797016058095164088154932787881625638687133408520545543062619349768597208471606165356725382888760019516863381082086740529119987960561362692822382672337565618285698905452002597323324010293789774636343720729283443607406275046530906514389027800147261216535896256843008276169186324576239363519078179644460482923253992113698909615329378587107608064465916500975543656338026255236168912829735760399820021073548533971160565860308689959472157599726305387245286581735216557906695874606125489088044152023373876856226566609702386810892108718735646030653089904856740196058575554670650809631389839009858400561890365907496401503268439279448235651419738893123826576583770874568014152939728231571642522851082526993528561156786230470634513139529021413609634054172623916148014241820561633296005701629785595864868445633828409679983073569128547823703493503118843565698339144362999675207726835721757215577895801761258978828525699038183518910996649591590817359223408705837654173694563087652371938723224887511476573667895472765780547610184400107721661642559355814713217405781060768426020957543481835035878495662181479422935957083004595943318771443839344065089970422033197833011492600193074356732139605450406651389668713230164341017173110302543583197152201137144263309579780884487273268713257901978807396348990387871661276695440895623800425496044141397902231437715549768221563359369871838157533006544856442758686562082361784568672197629350995193524453260118560096761069621072290257046516946613947283876458575390385736336550672704732794357893554123353593637755479387315621681442500517372225786284497434760204474456704638328543748934726610731749643829800551636203047877077547266545734615211631939040785007955002799117407894493009308064180277266187326901362152161248503697483770490347835240441476576169738311776624288129847798693897538469811384334577675756179417949598563301461476262997863407854395503616612814739426601590463160040547218315273626003777014773071566328889900333365918675122182588633512618446073132286723772675582226982927658130769823834095571385354285767546567934533909912860699355648049164739018641288151334531970959548384965439538040507037283717470105683108554138839827449357030771156407355319301404598890393254495466332513996316758995488613064352389747187864983557904595270097394384729004018021493100429474741067626935946018128427375915218103692683643269819210378891911872120368249390936399560167138337680224118214411323492643265794046446648666027254570988496738049536566457992467793532348093648785837016405889654332212428671375915805189556767012805422025461828908230928018748187583152813930478838896071639307642862423738580109178976248444857465282206199938914024014625873000339692881891505510028581571848188269704630425107042230438748572697519032733307060348152794719981184303742555800201004612519274710274987200363990791169591537695677343807938239795698847324970612015736623060816138036401242483858938943779397789218194940476004313476478019192454300768346375497461515104799593541748941252860148101461898733592194732991663107790675960411435454192141719593244991512896266887061227150837429389791669450556153116091887446212481912720867695679382761132918693440829230038891016393665216564890216818674820485106824501872060453899763429092711288427833845194238294867957591672205038746851027765082932270838847064927811931077334874147543848793022618357232318076182764878594822928553703812825392409261010400675106252173530779883352145359611016922752111242188301277608897062686377018227826215559998482447121760416119703725586710680971463148621240491492081844760001440864873114689550410442247170393971501627893132010002828475659788405558937905088418690882917090651731866046842581806004210576953292248215723408071118768215891816908308397102028930935249822404139190351496219427674408125303249964389695081470252385812512313278763795061781474709351929438824016024243755398020482489415375438635863350302367837555351812661982392704395399420033801676933053036435647270894494333878366598307736478541922352836267724501638514273460670763509286251936780680665181874721677233899178460607816191287964860203263360451250912679272405278561988479475381123757317526479039413725143150422402301794188910292128174034949003865794341651278921693325617785274391092440682654034287461113370913698536095521405466041744835563392602959673112601925084393586709274977661201233830712667717435554794843552140103177050813847518612942320939019953109244376448928128515970898368629321438314727144120216028661882293142363201331280190862156525033049740600310420389097892402753302160106955115621709028149082631982050561604713822896814795601356212546443362108589401016507069260556783202859471269370646848979998973233915188967213077495087092092126316113125037425446834004364020457263007414766330474344895308480619881615732603004947120931076128620379850182667103326423327093039307658491263129810980884860758428395833394202035137424169909775740206329560994462729649322089844753409994201304249807149117081275838590940000899121145431562432821618996567340250281459799663743021502075284540854765275037127111679609706565271667032149934625799717438629669082362577889905355388935388576790502519633616706387395654135207044473337038466833360805723893135660770402409981367951839808016577472094159371663522596173593227601587194967525233547448415296627216248698485637212882070287586010116995868478888778140499697498073115269048967342595124967421157832827895819382161974234915948181455313319783786390129179748188414708084159537554234846577450740289881929951435631763723281095401092381240484520125158607906407934717901290525829923947585795879332980888641899475121851301998325941702062824900952458202735252373186855025459388681214959237755833314549047505298097696431519774526835691724167853079095899842450734920639513026975591728148994781053042539471202897184009695228446878857509856272755139738568010245027038250746396545299267762051005503074509175238203099713789638918973604893609066808517065359512273158875245790969729479599605024460174752414925001646296791072790501698475591328751971514577083407783361775970838007214068246124079187746762570439994405497036522148861512372139543717669290493777489481733787733878842253802308244998009469352566594016706020754736426360806925626602567553879758113489422816709667403072498854110299202017253472289778911859250804947291723608467205712693418722503983904123111984269095396035175849657635868496687149585688021441190318495298969176015785957908804155041481388962590609564238353616809806755651661989462977650888180196780093529076204051944333466566503264307571449432512458147401435226684331371654091933085013596887745395080984596690332744946148056384889721990102417194166715997694746435020764473538726237051466447108849782391703067585644341806908575728942938007473668414587424641848150904670977787428441077905069740611435557937778112878230822347553523576053301884461239395082374926859881709695284614358577129681597474508691584889296275173266612834873080398426529509437727064652013871232435042236863403605876732410272831987466169952282294570238421050677853869367370815147030973327292334148666910349506059133334157673276683548536631237039227082943970330254078555583057876551870830799051734967667922677938087130921524725374058391791426245404322385841381634387415634297113822008096652240674991111491792209798067026983262437908861017145846528292863227754899428793935594558162441584673691019633052142881731275709709074776183046403796693426092821842551192613098582986797611722706992826056325239396219554666320138074678861049295715479907533099906280696890360510301040415465466604506625477101050581085074748522535726991951593968841451301576789637954699395161996092836582309853444100434305414602831630487017874226991328195042296382727697681836496489141443076388835626884620965757669788022805225516881823312060128213395085831522038987517073955947268211685314081009562977870353210327287752029859870020765614201354583597074988514542874558457801712009294589285402514128044188858125423219632954402450055292672684742486883996419998095888888293732720995429878143732712178062245290052987606671236639565255759377762969717819446340858519605451950749772078238365987904766439060648937156493840051771134511292656888519975807050349952439866349646210024397682524640045788854421567368183563779765746776274335207583639533165957947654390268403839854252610216260818857147820284950909001689982717255144612458088696667256135897878146843178747332207984600922048208321375697945038640823748512250521650996704002429198830607906875965446401836745786066707741360218685959757682605254618510370063187539398520044190251764875361594472213819846694963825772099072125123995649448126048869909668745694045756222945511705772082825165457860765270515411687773572966003205557752258511339507256220988523097856788528792496014230569255235503541672380958894493945634640794955186866853116517891962458098066049020835810565583186844286415574499943125583150396393017872472884807554507771758924192889733538372662870700871913179693382793384173126988613772562235453308838567834550896630584154041423072257165795775369596812739719848947878572935966847416534809402770961058999267722241104522284598276746036129355158019170614725299218499982018863765159635065333408449702924691235857715935990534714572434348144578509070273931022067378766838787787933976777345718646899070560595747093793349951307535307674253910639505413400018575326748581487536038324178115001202074693281809220310259366450737636821822102321371268563439112205080026596316053752979202656900482880113949593659453426921851314431494257981736396777308077475381276353919084130061697306486164781184232715510592395142657368312713825274296965416355518657721180254711114161601095637904290133827581834706462188853743993853616232227223920293074489207817416541340709949847239445065082662934192612577234370108346788077593238320513600376988758907829392517187320881990368506539950525655039620576186247116151351397903873922197699830522165290650306998537727068595332582001914020798104268192254427833665180801665324138769297477782294555884190449215904492090133304293694416409443229674792886029204566526090129782563935452329534227934909577084330476264935793086513416131147041641979585196109704619953528702430760062988620466472109780872354921334205595091221513039591837464175454394381567561720121284835587443007168954757913949913911769669716714012733062029460020916103002985716908595611577953579096024277645815643899458780116902311015061763288999461270029525250514597332017136707061154132961420238352257725322164565371690972782703622138498414445805336731266374924365744706605180659758343845760562262673865614361709776523196725701391558498621695511713771068252121389167579364162732632464536849626717147750725273549832663271068942215511230781324672656173602014963497863690386540085781036261542416535537646611539767814664935664944904094689199120845031585063977229871163978293653963149598685206809383670622537497417246024045836465207929283339452669847651991847148942550983579121578018746597586348710130860576224574703885751703767203495357429574972106787656766472709734753471712910721624332672530975075939780475948072200418677118305980085763225509842305591448153274156488322727171333360356375402514467058831562568960935467580815885136045927850086923627570845458470215417932252680936941210671024252592834568052828354216756610522643515696279261601733192875489147230845023187581751313724664514722715928717180160543414494367499508543212100083858599566191619306160972335375793589987227632788939377753076136099594809282783560490356355446007131684253497992376293381004383947746906548574747064111952961538338177518151374236636439326820270085017049569635002098461092899705166035047387718602955491861848890544958982721271482517806399096716705657529033227035903656202681278863748897355850157121770166892492916176629885381339374688065387251897106254787987876321454397840632664138327296734425544998650458118990485107878480105774919774879824355476748492516836295186584234902146235038988446343038228318975801155575452899893584998913920811730091334117994541590872985689388975228855071914429074580216295531025460957290391720159747826413109161485185918980293896114117183149772682311306067506126495489626991107891622356900098594002345213391838703973939810412794141956814202714795802360529756147358175274406123709646749861048284173629354237526719315209715903734466827575895173828787663521233868914570098598284341683770451064818735518253289928381250875925105049011415750686338419525428466825182070319677704393828883199779296766943029892606121048392528774918097600196453715888827029400759126361566847715921571218421325720617031950148979851781360051301812543839829016559612565095101709453103485122349769726893606930457747548296512973518870477395061135622670854814306943177239538904719221076519929103793585090800222388901816443280958368486758383742890320768775624679363818621536599657855487094963282120169920519239306604176133161176823326501487462378463720585439339377973415461098526227615541292083803930510975675310317868468975208063413190569998570610458214266821828548721674293652075600291825348836489610206242029971914263779164508075614493314225162390494387925112706177676784547338433566215534290173118006382242606520980856632349263550254977453778915240638868226108805899194725200978478948260691749790118673864120899674202471042334245231579140480342671484228431944340064540295063182817138054309093911225510999320612998149942131771450914107503280891113732550633582491705418564160373926681030964060980089560418212940755510498682323150030065073944416715068523587217667976081072515471204807483087094594639345450551545840779400294242995782977224356217445863388760532265392646821484713419404401577451524003604905504957343910190569966805566250814812590428805442823004354601167709203697975024049372666178213322296612440168178781623069416644372492699772790975427014672486547720398758823187850019877308689199988639317866353000506920318849760309646003490622704670488695022394657129644445934163599665701868885605988661137952001905592633005963770452585216191780113737919779873448319507035231225166542807733891137741050268929948211535074982272318374742914588446671007652184917192697050433935675380135191357165664238228227485921719652975866053638976773613173512977249819171329215505408811298244805029578226498699673447646450241134340297338559056426848373706185829313598115742120626680354677417791500830500865195890468652275477789969048590127532075699386394289030729140710377433822952933564615713191167005266147973097621835147041853792808583922887098390542613420140727153161343858249875916740963284552332766403050376127536135597596318323614142857603064324357050238886676389043888901343987904110089841392987877541191645931916652703794131798965553982147769511941362350335058041970629038183632380736889417157545414059051084649154638427363602626508528181480284265878729560613673325253078777587242114152236011779136453572444633428116236579690712137494115134819434513883478457954260464494182979893013281038765241728726045310014628601456021063401292342169668486087071230293993474606998254513576704145845681439749190055634155435091599733579314615754149085689030287170837766317621880551090188367225985183481296188396062800063079991488711566175647047853585025572529449296070304177632204153470268716124986827221204798227549869995051634077123986369333781114205500901132870942997379890288694298150424549053260948228642494944976299168600665307905824088496062975473641864117579745235345116623316486114782411000109990858176714084893268003708712717422488481631068794616384860358657164641571957214806361212274192465948312527828555931122334218995241133802134682881913964445049420325306890428087807962180983785508784453563832388117100739082710903763117026871506883422116633510656110660947026831031327676894064874514206220694446559595449516797584285337410639513541424639185728158474946424796871542634946221181206005873060999391080136232553557475006237368364304214866274186295854473357444024475047492709858457567821081080190710392245064429947154122189790604228213223019264866317489564866563745193580858248840593362071317632964750064695287451798024795846560943937019047974981544126413560348257541767061864602402947446499696344456480657270266229263543222009193207027008631387041804988457286549846946517107529936519119203621706161704828445625951939403337566379736504018158809719916984761831076819987505736978504381970663617709132364555442451048977524346162947449904414115355946080350948400045620041577494807195230614762440228856038037596913806821857327272224534872613355319989283490113447200419594850551162098681596846413964067396128270293689475644834011322063441021828791214916635517298785381029428444555573824133160183302870493342775492224128735529463840658964463615385046415085082489074003602932636984922605187451038727767717809905791113054258919136884517164481778226946602628533320452721645168123421384536382004152204509464228803871650037546978110344760174712991240320338860966246738578852521212125493631649525324341669891693987861369282983573890295434552885330473990446162902746825122364551444886564716736113872422113735776873487306065041592977543681817085408564156055305044110855642625348855013032836187244574941465087382979463984015516132506373328175698365610555039655075258493866316401562717747853049575329562334748556633362104941246625323800975066914960512515230925801269984272241443631811862237382223234965679534644113411751996297429857131253932597665034966728546523636686403576264311873998412734150977408785048069088499121431385668373095779432899835044259607361838103098451847473340702558923798811032344076450392703734504938714921203475555972810275241224238896482976787528968932369466684337139151801000559222814686565801212418822385998586417715677156098878337963821179328863985805884388315436254854715673570720838956161608609588604517641548306651872083310412861074525068218720063399930843539236009394727838148802386627822422045024734361088456664082142831328539398047326257708665036751776753575805190765312037385252805468585601137581903048970876665548347590772707564697508425684888879343866076912299013835156852940613928815186607539816113388432988620684019478432027587958380403280472348176374189597836841776422763005824892919572463364528505940981921002695167341785161782962524127867127441618247827637857408028787904146238345189612729795809035951867809493677610056078341010751524759155604936655455841543022161734657151513395265979204219930733305216714799156146345443955956301945120147267801755196186004862829562151364094997717040788660965855037567745760284091876377932237491454218614510850085970765953163014096068447751492234298276474028134121642037572460685378896866229564906084884411042788114634798509263475102087754352974711230493319272335853438438329674514097002263646824124567524844278752078920208060636002363648535797797524925649585318717585662169676878008262084373725690374855916549475120759446415834601790509431112521611405420741561422246490942290021695343852982023911512421622896912806227682539142089180045879847731813451857874667448294728502151442781227807426047354449308393273225181410222649598013731054080573707977170078221069813511251439595823973587142817739275395376472851542735349375255418224982692105324774598104204632121993953409224065422565142295180567273752470926084100766965304140783911539625933515888885020506633051785527284280339151328454052519309478116199831763441480258288413578780387489396938756796970766435065922502101171374852710348186992252092091271040114586575599342039558061490307841464654149003442266527071492549624009633727591066121847166043615292484374827754524726716756175982448184136479333272489064826225247270233067401588205854476277943826634518678588322204063961684714162789034584140460892240548126368837833154991047208596293189731628995456230376038430247653653505812348377568405634208181419040184693332278589007531157997052232965305418901716593070674312456311400467303871388114310540067450728081543880489157524773347038744272449308949320240397955741904244004060457170469322898179799759920276504965456081281850518136219943598728666490391079232428266653414241028732771791909672552275592919550870997766232684297247129797908070874496149161914027482678888426741285023059560083124312987851599689330594199170151185444392175432260079756606841730283323596887597473841463282360508008209059936581796811844028605513457144292142904572847603330047965773791593525190851488636812065320160985620826620517041282932918273304343528687183519947783384578065346533241875091294119986075541783095643732131972674971524808775742616165756758555569026732238286172889997963790391622562905994687670331814902370733793188935457458788166607882391521117057549485848003723099100186087373460539759059266902723278352485191730949826579859346964287719519557644718036786529814551296145006422497330595421535851757039451019170220915657591337918275729639116319688259103610071621537825249198603006217777837190827108961829692906422306970770636459052709460918461106366333335351894654785409410426752847858204464268050254893007544738280554832780540713250699774735957640016305787746498146680534705258682624151924525948421761755215609829494901242715862573977734198381545289163722015126778183756726198890853850075480313892716820297317209713444582949302563189183983212002574165806867951584353984419419385606781533498431771681392629793447648578166804670563587760870230202487825610582986219637981035231124911675052884848520122290408079200704728493215460249323781369296266065321574764639859102553168302002912009915737755088928931351231510622015116565685209298744002571254249483944742405821296286076856320361308299327167850713793635059872291245412986836579587635443343714584611874264391660026927970733941126566359261237119225677439561019542049198324445373482183113733349103222410323774079154723580057501386478557263193972406189028737681905553067179590235795744655730944083910689423412562621122273837645617532768230785858398010062942644257670789871080347615748904260297453938380014480821908268038455388255148079600014979008206835021697621615722020635625385812665099109132494709585268664396466713798410904289739130449901922430849225021054858089539556280478541959652442548718467410644534568829000747627261587513455324797964237619032416396187279128942063351408416002408242956979418825310059704799552893879195748864428743445996220563094185705468537461037408622519380141266616131879358905197458511634144311289446865308828013987752109651436872008518163019892414314270701318900043353312534011110860972794158623467107000050371562855915862193159535525279429031802192123814890406649578002641752222437932711549267986626145743473552412104036554759802632164876213368355683229823904250800426527683829961456205263478368209946162193883889981114949158594564173999420000124080431325588350213225040938093038067862045041623892491220483070491589641198083435419402513565006463938405249308540535701036510724863399448967838182570754374245460577370512129999396043470268759638724386205448268016497522041385146147386296278105806476037953791686585925289371700825740637422078610104360854295307780753020002615674322909990862460822729840416000320949731012469444056267556162139032923311367230815817331816019665993532222310318112804623969834350896464307746440578075077043742245962350617034730895581789457078016067962047233213656330241110362009257549078722771498138512325869440859480646266020016993300990603852817635762664249902495547892910409047846528777161916169909386452382666921080855511089537468641005241373685991125927868226485259449476151106118948543072782426997453420115083622379783613477617556645524839888718822834719408848232733040581295254592204187164159809115034082120355696817152985490376124743564108699312805811614058389135563262888930454306873556469401457979969623006918941305090942367945535325800975121872896112195800251852132969900257506934060751405189019044244185664355714393097588499278021958669676467305177299769110065089067509049816131303876745309265218964883304595033750080660353602500821606194323614595762582666141369456694820870932666937962602745311020113901313641311858907031095378069760809281937054258560905505227641600142449494167062415165208586479845845450369133007818571490693067640650862233175831274871918527525532106940222423731979618715416036058029126822367641921449689276221710456677825270548042163400786267946005077739896214628078094983303198160925007642891694550840485826387122491689644194016072651103656444934366147159523201637510722035901781264240139840853246683286973011976303240111455450336643202435610858070723018092810983102255020625497325021454665858534858815184833618958118964785738870199514155754679722823661605098546923745861534125837759953646752087010422117476574878575456402989199055845455922418785742195321860616263258895621070320885412181012006879138209759078596525405722866879460058781493412928019045169229352031115802543474755473009690724692723288631175479133662664105464483937347975031019772401998419261587535720838624884272650963732411682154367360692773480030728178511260273124527318358727320614655122613296908340000879478088208536267510548784385185389346987495038912799648338486530414793714125415077375239809428841813555940001620917991276172282127121153494612720460587783776527565616346382907303741498775429636115499460211334807052159286723730226958722012812423559449439848457423080927192997610232293116587127855237551363523921447080841413275125018969973447290804242849702271155105247088322583916732261716176671012252966180186887954910440104457216767512122745006730346161509853150477476015205814338835836242702878388218104221821399028966554809781886586852164144077229083250817412262177116997330352428966131487852186357859524696511333472931807615327490526263668100304510504640127435178577102005910525361026611056603923454264625126756698762915513423508992380950122953599884226802622119681192698113409590898941569427337993839024343244311982563495911829621410054098979815030402735534779925757966073579518876308281736026424139505824739352353374667466026704161853665348020370136844865229362946689958108232091110073895653280130103103380591360586303949178788297289182779815798900484346805407833568570096269785973035289062176936023641901876169919763106538781561256988733707768689628216487423300118176012365096117910910518774351927008915597191657897210841225639958610077316938281672287054370115693529714520652814652024993985455031112629185276411717647234280558303179580454258757994055904592840331408037513173288365281534336373273275822704364416236635282258200525420851646764981873480568791973995139194934672839165589526565390172410149757984619074903345036236236083845771238193059253528259156997973893519656596623329216441410039327918924064559226887298523765856944312986072828625148922700566614181579033020360781697568947007710880921816046501712910636553507128167408066802851169313772962797506007020586504857697317218658603385779358901291220169801820181942726417645619780725695491889294247879343309567021477581885434919837022321475171061047730860675062410011222051250073411907608365643812280428886299771309326050211796133839083949852942622833527614756039993046822874425636617199779393906726672526802996412457301397171314369987752357037344108160466815826694786063258048732143662847690589211755436700084145558981577955947245632484386921009457996761194511111684377950564927961556639031716254325579576380566208870025182521788600558795574371753100168766329581347523006059289432248455368945982078023743601764362720885303093389141574929716742400481075444517286172208574155713822676240330391624663862109482140428723256440779735904086828251578553079965250262787056342221624459442327876420194778697275432650086918266535277550903251942385590621048544259699407929274905037979985112473304388590430343924999703187966417752965256799780509931874102764748910436477627246398402611480990209380933342347696381066770558888407794825403882773812377397716106153017478780281650841636569027930865998567515971081573213416906327296929160004069800769040597146027831524481312445771041195066701878125271412674069648616744955214342630786901847483635983610378516480987863291874103792328064857497085790990155552025920638466307123770434336373008186933530026034624488916642153990301377787801162101907388422854372363077688431119499732660755841454649379736253189027040567792504837793016776771690030910184778559400416278697419862577791999804998596189121670473792583319807993476867725389719942502833144926797260913294853763548676908801680144735400394354484347878193399287467274320981942198646218373993480377209704217637235083347291194050060695327558383177974778827248422698000865777832527487256906210965285934626640895049642992125677005191763736254236044159540164035178466567386442274488223490961817274617128694666143522250838569032507011721757562069126667543007081187276919684796035871955739536084791110139778797139368576489671416838448674502310447087976143577290124278650911442653104990010482525259296715321034425349726364626547654484403808147465623893321716192766544341644477610861128837665110329998008565290478225195502747886785955132679532650792406606142467712156992604662296598312750786230105613985619379983349962277157032438464808296798940182598738340517539772430640525258847926097871573752461595011790625387662250474068836182943631566725093217315136473801968345107404963521400640000043879527705778213076710977111808276782631106040278148724093799090901089261821591180598504755897605010890528713522514912903163706704252534062148428579942791818963580130089296532852008527597506906585983691610798648994229373970007887217048123588572609028224116994566258435559128958967073304889820077527519887547457462872987332765517963313597820751766870083782532769991559495130237220476281995718951173216565398192265315706565242033107060551708333318881519262397424870410560256661528479985997919230188974819809819276888355938641888631248758230143788703266683448610599424745255900029874151899416515964510400472352573559372655085614554134612431998371767872858892312056141247041851076242702646110270948256946207415535263183796729223735244913196511860688367870426868465575845468040996436937085886317016875663833141351434934417838095273120741571806013112554105586535784447340180249713012011069443960606071842133844746262771566371460213147287078541588415805545531937479120107862085338628375223839808767312044933600974152581024558295953164736281893506703705631348811847152610628603111711095786933220951812787930777674925343783989641349740804894525125006708915400054848261523121651041468221419423348493311121662742412352039829486398343664871797700156936475931013322556006247815974848629910780016856845812951110135381980213477432944783628048694365092903665326438990998754577284164193283928236052666624524273379175529876265733869003251864940258680861966815848222045075844096287878538579716544222347274203703660914589692684504683421012933040427660979031242136942444617257115991500867538716348318576390929153922851592532636199295383870333496517294907428427722720830075476011721478975412526419397712668633425087984466597345418654982091293274442740273347906266830066240642552428226588620883872561368672512286255068805258856974283253147314358574937145832188592683046859481428962930882838938098130746893550646673436877937125929666345891604248826842861305191822325352048355460919518089605814403668056253107099992194714542086855408308098177535937866866384134454649977714198146452225039336140462608050909551544052792188724521129848463320584896485477352886254733783291560156653878185231159502609339958481580447307176045349481697050087783976816920029815694366851212596166172536274219401835163305080683546851736989311492288373725830933292593024650075267986545618199494673722251326846106508452597115719482706038764649303785844736672650632725821505344518220950015023238125407979804584293970007614497331146288050259261288444796001391436758352394926206820275698427151295244334724983434041612474862145720241316217875706829943529172700875273114942007705003591447457486942663896326839350024408659019499602714282508728787753684862856291788640843448609873406659209807915726443303957958638680171748520948505045775319859277111743004798503953858014292765188681262687541617869953860054263496822874674569262029793824341659986393546605510121955840789577969005842414624276158938255846581368775197641453711174123295492497457225993590476415402021792116678005585365950051138240489401269846965891567429221063323388822180666141730324701055416380194162786227416921323066873565069016390803732237491301661571782967651711292733451899166226018490394728549187652464575246817280543299310662897882678440237893624427856162091819397327700357207746234112384019630266014155649425813279572935336934740658253811188570594732597132158533026444006307529362673652265245779968104966169263692303764689660573410845233399444370646129722828587714604551234636177589897084950102175771413930217720775420272198722246454299988783723069280132553303339898011855958280266204458883686558303850778462238187776833872364910273038847765668566034747663929360879817520029148892225558371892697498022466284966818996609065446509394852929077785783928353444474261345386548828099996643158604760161042460927865542411858418497306244555365564108740927301590877489613913929048793076782418182291069888691904633815860770674878834444870326191710551957140083251476239701307168010883453595470266368504088290250438510451375090612222194377000945697005645913650073809266537398986622113488961612673346192668514209940058850741461696972682484785781502296606801140930149945920826273254210875811581901572338732515628594022607027432503479721913910381490190869618477795447710677731375454280217470613935980987695387579995812795141826126144793520552534933192176988037730331104104682858663408755684656511475103151347581554651145909663398928879368637797643290734711585987153277491977206577107187910258927293091783661615403124967673197693167161641464983619544700412042167338745760104424902055799600719644676229771588119215710436389382045704093329941853452483160630910312084210340318043122418244952547694330226763763123000056711342338624213401030404593288992825131533440767069635848455533941897775784494768400968593471512261317998284703573769908778652763771974995339015493725850382390009594354088391544677927013299284263557739802401147311831635459340749113611100239268619814286260887968735876916589210579399273186653921033766840157873300638078307277722452783027546371710184568766973011655808164479613328914146814678559959888543547306660140406616482380985385296716136282837607582596916926004121423406588369445947392640675560994997516583947215541612510433842331926697429412616307520308380107392209789722054696188736664367782666407056406611412401832783039011750894990573453181507919845050959294209510907190974663496812118477032420269214849200110039655931852386897608138570467666592289671143136019142297082088902372149155923539278199610219473591590828617372800782626835457100578078422328518125648876425113094863204800104978620370509302680830523086131097698359300845707210853073939766913174997722055570890283229393440631787115209969094970270538525691617714325836987742737969963009135023682846387663584793194627173665787514838441012580533403149088102475367817630734233765718977884213885999197978229875925118943939875331716832725474829482607803165215248157907975008490596435424359554504533043471704274234939788588593021114715144608087998800715821375438936560509449170507003947370929481033001177778204182697398041302099356948626148353787806619811514071575415350393060220498401266395828860787911318145266224986600706888535715679606180169372177433447975642332037758598327325638041232810784534006169145674289888362512166508163504433066351089336569359497758749211905589333413497912353846350893470720110715455795909633418654867160345825515000211041588367624519622932308578441527333120023996735571325957293745761901931178388270356497888902286924514100117361719779196203349974481217156688114377640048170875171048844962367753487723333162513915828892285417835519977253116722071948638168700775144374237478704243316195345275572256061710225778438328288626683815345165532294886475213681308330883128812469278388575222166850171761965350534805848806249351635403845289392007806592889253378977228440678542250045900779492442507913469761509936052537944296335383281652387218854931230411341407473279825061681043883536132311841042482573569585871986320166666873396884246948470031449403854878450984753196185479824125979117827142746702096507945404817945773457746557178075192075369969856242777310444259708464547667230293689899423218152831832107768863723923964273103092678364542174282305479605964052648821572727394848620754471831805784028805974045212926984865932492887474435521899151370942472016225931770682785079558182510021107178300358797333859668369217530770838457001268776715199745585115382408376054987671718801974147727187703942080656293863237860498705297334898508076916286779717901226861064276357702082305013066693021705217131979748503352638054268512054441201326568724583180686807659634054386245148412450790465122394594556947766339783969457420870750326210539267059552643313479656468491075549085236497492594711689107483229989670841814431648240060931685434224697238539691232648997011941893341875917348603334699631002808852258965898926039790495854027382639095856373245001943625653967583022822608873594481146246999028329475641414988995126876924521400084992383928466143732574603331672286874793784643116200178946659724018477986039500399963968414706749742491145434193780523253399200401359681544885654712682345836408049291149610541816644856049683616960554773911099884497769545240163499439302619795634529062706550031445914184022021501001431563282293390020883980671478893253752675955963492375332253447156307036380820050370515968735899230915376203116194131851030756689364890045392031847239453298477354347796113882631539513250562995467684079677196195779101809597972273773337779653027104497940735501884920603510763253710354754057509093979750183275151189429666481956811392244363786403893866533146959140656291023468712286541866590900770530530626893505188633682062135584062560322877797996238596061719493810255224324659716094981207245572702469595331640318678193133375161869857337236505248876969924937102969171381479648255401257480271363057681759745632681962213181249137337921971207302818141024556371999845025039398178041547280376375324463431332914693850056550081491922846274236683538200197007310912714087757923707706155131252316160908324265156969089998229919203925735902600961481117402058016035427969817035799325317595902126035746496851625725559840695682697231527602104002020153839637015665468054750040013400219855534307412917893887030116039268314683843742239105925629105571275602342292552143635592424171819762201726794762646857816113916678818340955781921248258972179135249094524008494036662368779224680642918430896338150712432645375287732277091264391668781419974640285325344769643689056119094299939274581861279907171083989458505888447533889872797308168515941683201791229889569338531478451812218697181125338225454482303538837829960498877509124552202384459146461952367805934065860773612253992468476878838120096835087423463155103949143093219317282918145196638294263436378687064521490681915845789159616848913001981958859125523995211097474262528934896560550196386963060321928508406967498807054757297723515179954302858773033369553790206629871872295322065921460788658505017214959564978433988087369509077258728166965672644248340868859423877245486049443273400904100605382477780624972063049313571155478573067030503507356008694367150025906976978909447886640675637512432086297853026743631179523746313959626651555852951269313938622622366844014482587544627712544035080854810789500743126035879365247779715477726077884232038305679253210769211147396094950932888775510192605755941087716704182529070432272272624265537925959496892426101015397965781925220594033761447099554767477858455818656486500127842132444825472640662730058339993283125420587552259081730522831915889323198646144108725714906379462760365698498374150616910600159283320509118099095672850396909825119777375154625854225315842088229119517625198546992618044943802994989743437310930866304447350753651604091633571152738281283867204203332337005637031723774642662971486990927501996152199779358916366995888610426405420359614619386142518652995702209799009898586592383888433641868532687258712301925818464874613681313101061356945542598999423485735246984401308007889691658611126196589764853185374740992358949054753235331264749599454912762837616571812158226451971800183440080563040257298776367277769901070836544872867049367074070192217710530018972120420003739419649655057909588269703038360403001953018535946007290267467630358127811543195890955149986090365710250340118593405447166371325917120075109244008069715286519965182678621989360498883998627692752792003968710789433012653861478621871667682056858550579387077508013224251824916132643226354829569478582595344325149728071363764717623648958357897838538434469980456934013576973529864387853637607792425172318330617629414797178773356485100259087932457048484405559867033699734417780744166529109410376108129100981299856239537966755141935422501440064057092622975130192118288211285183370225903235256656300581929452907654657652633999335270671604763514052452627937440611958703049230052442313344797201499951172504736985887180604792439872097726215080277635305309899077258886587134713443427767561693589141769418683616841943969759063769227893928518469471318569195056292543956158616136612583305286258870963447274116015837313443384254777903402675482524694691186190769557707060723862401311431336104868901008429564751705170828569700349004212244385775146584991806407493046163190513245424336931580190417675407907264817674562633824678247479228485527370645779564857313510373486458706250480125629143632509376307676040996854910401671048240766833529984508551922790661524047101194929091456788488247222535287626847122854430538656305535725644322183618499105577712011130604477910110542592026764120443142687530688693087209711356049358870881698435937809545112213052888606102278271698945917850345712650180073989663680017339192812552756703878275002938969397697010979363740505586597738514737074984082581804737938636947866989022651604958822770021550927127716606889399441943849188651507048729327392226582442637714919236086191051428539759052235907024087302310171257916998762969536256469646295696058241974884350014689356596093873688015897190344406982853550649367230540832839720772697249249918005246511833312206683115599936936226440398912431403631723663876586007209934562783160647826735737893000043016258009232598946149662564231711090482747384711568402774114705093058104491423066012553006035612162712920455125729340256259250291266705387657097250659501334801678587200048274616702235880255050858174668459062104485083311645919807411136137390835392536776749083724224647127938673694324786474447870799804103410305187344607111226030527023454332476946338013246326592996389425058936429150898878796480995633249298125989637111745932962476277771136574560054672209296326878592562750948090210989579210644287342230640081943060781903949834277768893564666007532881110409275546038946319410514511173353567613342845632424092632503127991586124076560207330027616047650785308332316463613526105086789679368852632899067169189276942726319706617353941144027574648749851035680920394787781798472586997169622890235010242441706554620964377411005249418229763988280113024933244159953731916448741072623635533471489773837114489966784151547386896623892392648654263964320478797188486271434629164658137697279522287138316694961783538690604316504521774835528470446871318213470540287001610341392219983352626271794330190255504447192272648368566156517801205778533902264117238770957677402768563387885738455077109953915996201912541444443010439986766700030638400812941896824419419737381172905800861216431571738830104731845755248510797407691005182590719918615596557041732889110663815001108946735718762982575565773707973473073049982924487550440483870572474882013037584116471379576892142263515922680386867316316846481806404308521509933229974197940469923282052274956224851764220454155595339959572140186187266614047679354288711269977580831147236064633764439677796847641235960949052176893487062539027750903463206112801143668036045416170626984033616857719914894287177135602034416950807220747052485887297159737454934417992400334934957889113732112814890595867316683867614145850032289138746004361792717407715431410136461547649998855220254858128773430335726143281618468170446549076584391845907849982097986569496509550918593208990731944278039956070318896869445566624148490754764118950155978495064250353776852995449709315370297561259842187343204121683885119886202977480506615325849270863209780393252241872930864392787030404987691189697045569299687698102605797991254735719610352220466570552662696723992291438978529685334161344153665408755176786894287991093927522638430922397493785090533561215418369633928509090076537643219101259341316734305428832745031852590390952557765485750544037732136261347499918617058425848353041474417218313177697790525205814711753443640369407527564714760765735901357222750413195841509478289680901545151282638344021995122307525529969862363901734762237758908523443722734246383946260029951795307774237874078334773108423907102057534917217067052597079470905868174834008497531583932718763172348123987560158312895787262854779354785280913905978967474031932910837552113875423378471445449073461099384757388592036198524186569077423717332369571765721268208180941286989215203379322407561314570694167126580940261109639058737719324199632558122867432949693993404346159615870475808232917980149789550717343303707912060504816188487576059284870677124009597614757632547741540557215644339770728518589405888166628589625428052132883454790226042847082122832979859615734850664480337036616196940689215374281265674159357048735721825767025887208968400562056227082520861517301933609794988943461999487786826247681289062453547235728559739823123494254220377042855227976530056866144506403547678889577707134230740257553378376503511490353998427025084586686049331067323728697096690444068655180641330161979187853921739111318983479994238766358141749010930700272506980992035033821605117104440150141526162383117181812257233831630562308173879937805165312909943339523644979015530189526761745352605442592224216390391839170526393955924802949655407217988410729632352609826960545974645971875000486391073431291829677424631502254686723204250228667454560643078661400860938135216109911609683108483068098502258467423090633441957687224946587446095251759781552667999453328119156706200310444837944979378636373126498854238399802260239682847066480924483303850025821521850631446556312800673716461356629292182719106124040756504180415010600791133817336615187328241821031261262532169883358515134864127288634302021379707921342523204164661373772865383402148385432784128008526344810094099068612001267648923711429977909355956864696250056355539904784716829296976373583014700382761576866404301008975178075992114780427060352915010834234405976155035970603567046549362568523375757916024503093885600191570241756616207606605249169006377914913986754361235932196478315970594354178928948631848977350814160466910517778768107772196271977694665606425679734637357896180712470240287965675766325323890286692531535528115544190975744053766293512693463892650207520162773466655853835982752221134412305192524205427503328119505487202918564928895446784106652175348434433345429837450297327508740970419099631325186710858826542989544001953376195386967401686368423066076750146293656228823654342036731777379063305437476500318480276889952443963333788564807870849831424394078609675184595710216212652568912966342764410745100155806943240706936155058694737662330732402674369122215717117570114483165939267401119711683634807111068472780235446288543271253716248535754416104262675096659318581301531086293836493700520813608082313184901753613542154867673071735242054626891162833380077703855296211642081315502679082045388648522001766888703654417796882220324997550945623456360278286527793509208290960004536898280026188792049296217218005580697038593097501190536028328834007280944565139935308535680830044615871617420964000456635277047372918314531972859696136121918023299808218119327378579208083131452229850353362190458223111442218918969738098345072915132748180829289121628412746708274071218667815084087137285136014282524678552707695128240633142502032115186101743518609981648966314620369193623778909896462349939996006050245250571810127639698351525389767515270113514668569183204751545473808352974598011283637625226745774498459109496712019749420316714055513069738666992316919803205404010836902320344522740264297609108726358809499052414182931712933825567896761913095062143546549350010668708375207792951300779289471126579567477106335690287806037644751481326282948765726463426676372821602813808048754238604543158833552785658679949756571231358808304979203109855863835647277911201827307477611224310525108441765035339187782414549997452967642749657440869385306304456955213025776894201203973957647181366304464677206662913270065822968857215170533000608132957997314720210166298287451812841947714136971610792776884318141849776801164280053795367859678383603629987923758038713514481453322902521872651956169681005555421629335103351924939806654923832754118565193589747537894203935033512535397221913484054763049174796109103969595919514903089624662510361890203614278760609589464124511408292155013405817387776807781415255617601379661444792162883504703485818710862808163340137367496818150300970777485673532290338849925350458032393148678713828097974417846377979433306576205655127138035255785273655252917997109163799811715905763433367598455748952682197942504467272909297286246129238513570914594674789472119494532371107950590347184176193361864453290906554871608821280313860139700692449807131175930183268564160000468863259324966439221159348482253706354143573902730883520150320677736558425973251409491430538012970408918426667102889615595257325911197144549414972778138066362945097356807821742174631012496164498176000220444402573862862751149786521432621079282748103691820395116208069718937989515432193205531686436961789578703580870377579439790725925019297039331344374713761180181503039441134040633367141026262694179240139978339680396873062492916600383846295720987193507062789001191606288610039389518188572094890383468627791579039598314210246062072817865705419607509418189152058329987800388252803349627537499220160429082088124232387040291804878964506138428488445403757671441717087022968189448902901308309229311425890709574451522150438210415173162173428889513354029316941548936202376948876052389575371514186498586224935934706749800291844589100157731530652342089908567874425264894889813739779678048308486915185876983851228242784378990635454556489688577748425004786806130850251603439973568864742939351735433776442912885515456534340816355281929864700376629460573777617796098131894193123268130881774813271707619088743539404594140924309737538237909907439521338998558732769096478309060895436549175223454242903250597323894866106217767437278349267202027435390960136669404334737333522622670203728025435929063389521600129899868567145002986604394203376275476281589753904491947714442466950701777098004055653537008616736479780496872569555223761202947074383230644287700820766704566097361537461626256748692412241853954790741061761071982919211419000461447221938434933135998650997822062803961726119005412838800320842824463221884263640081294248753573812620643968208766926868685432217870079373343132639012628930898668330290330745006149440059147931524119372237279930176030467261726767683490597373679063674970351795611992732368031504671866690667352765766503055604216433097622662087047698794907290850390626108556469606964538680661020059873527755421118648652975887927553170134212681368080409731427664652398081650122867616020758665424492816653025924941037030949911497487059117255402083470102053620239446332870884018277717262736047028837654046755701223078510824467494516318245724147654832433419863941745467125955650785171714659548379967022952411893471112960872738812517480720739677373625745396650217348954785331179772722272905707168371459819797775238590463652031089089560512046353036803169914211349624230196687667417057923140367704384081364788052043385568112121168388544191754158391819515050468083855900478435405083813928675261146839057615194248967691465586187178368699643166017919850527613287482212683320680000720217030290410410348657705080028922217558395533074028503019230090166892565739679125256890491932461655868857296865903242849079739809137787713908943980620796423629585829038344949985202953328042909408288987370247012908552572671069470039200177206342999309425715873358483523281984251464541008043664508424933407512478702463170531948979442128437463685956263848773605615891653658212490462067115004115027976300070564495296598812572970943359700267058341624262522762627336416726976535378673308264946168610833997018820207512685635019798309723933298156898530295623299029000795862612028481207035232927624973509189803826141043124552563855237583200893496678258486572508547719982953737378619592303691839529517285315358540329452947178213374336112825479376627928580162398890444833107990227015312160501643128577553197945705554199333960120964585103284363561098622055380717418156710022200105737134382735436504020940608447298762246896411721002089529296482483332171224120798812011576157464367512360523168546840128751654679336487962475259218703514528647104579486729389894733675221108127599844293048278264600624501061010542439133704964508678188189236385939487176858540500648970669690965561227310770508317387679961610671910393032738656022591335441260361685646272062415551461376114742578502992127757261244624602336172648189224631298473129012566678355307897428823094634207784797097281969200298610538885528343204233505766556159634153614356188792903440159721045857738769033413665271635193841363465381082798160012273704079355389027321560327261838765354146536073873951892922438771028011459343323654918421011457931198387233556007489332192579102461233210543905797555408929146809976636719278154918107479000881391851062050451451383091809055601222584970643187088974843317363412338406117885579711382767991830635126343798233702961420989936580194291252423327625390860684294854959849181368772142548127387490605911789005180055061373581734111793070551420841560429072997120501235526558371692802264104328508685174732878806741663506251453896578352433515056517506956886796834650549064084094649952046457515030514186975849105663503286118381775888196066191396884586618800264667762368725691884038712323748075503040385066920042934612532488951750038183974398126051632468737013431959880052977074713177274316461288949813511213601441430633269245837789422534344367864783734787845533144349077209437309078513817306779218570288805245538923590533659081554935818043183449651076727103706245122595842328907160042438053481244096170194135337275883977504807798520355212981773646524419652912773914698280823292725964304338071754824497277936291352240127401865929106745654478752331562376979747595773423874403857185947431389229000392100774796238462934600089144450732857159118456646762174705332201729407547409409638930210677347370088825979002403876583434390559979292965564349003423159422461536294241922001868012154913958298689261727692418560460213149938184215282634604766171205906912569143489346351999833300383736523280544234507272060865697236544976665492947225052382109707453112000143047639678365431869035383485508269976314126038225392300077526208713083379599908191763978566380467856733361923986814772941766581370013994834675921874444976924001773740181483050360558686217138932964837828938109650468783857606246393807840818352622622010132013381058648332901432310256396608476437737282256009870922984377767217678944487446848115832312633192479975147572985000953301618003455654271710801209275709178572742825281962252401973898721046156531352932953455465391000181773365208721487437814559711046655748459954695308697739666016516116838252187507046471883919876267322931977415616626237485151429857004974213267373647426229281128452537556151228623359966180521269744013515148935946381443280042745659495652498645920303136769253438413787586196287776790154495432636048720049999637902625677140907614544289158822328945362243817618357233243496422689228692657843486387660793459584279708458920243896181377989165097366919631863219563183148405138162401163600768701904041900053662456776957613272274371219133346188956725645914660530829143471399573153519114500183553061797553387933070704856297065871173917601098034127961886367209714624205218750444877515957621152708134189327501512901351851518063737303086759999741743527996634734837244109253043677854929078018910421724843947049584573872913975203112379546116323939838649084365790910744577744458750790784921740391521616885642853007284716605222010702336106482013017858098076902734780065577913986373624394383974444076406827300641041112457745973501085482423658371267771264813367136028084260474946006118973636087409259764622116507757047235850581800014587701890404501751466910201250679397703883023297759745687215596675540672253620238874557317503050592075063234707016307070032971310176463302053969975944278143337446207160448437948840220037213991487010946698684001763703310398817870540175921389362846995007276421961146521441354676491346814977726708360063785973251704157135290349043244960078336920227792160806442233786480670908068093141358004230063503819468319015604629939437381466806516966927166524657893429857256658281416672125638342923290291895872323341909798142561460621335786174528794045049793732271578871415333917221176005534714913446816857826072590310029670273087922029240437434501570144358950088627800956529881138021682857748597110516485954953176651774501336615712128303651739748773422057308497415761870466901819740816611461054846718409191054262587270948963089988765799551866448513148283051033695775355973764015104327023925424557473857421048579268394445234942504811791472372556511043132796234450397006570208492749748557404797713813910456893961750355117088161480610791378686018665610279954796718132479893255575566472713405742895840546321126391216072707099471933907135404477813972751301155683573887065083034793009949020307838204974559405387851152260834073862614941104402084357980621127374257791188993055011358534650271729618223616369676872385098521049866735685348588145555801231450779429327734528640211924944408325441926792576192147989491389740499013704765631042462191327370627591390630333466593345375568629144124427557572409327122169684932597329205041444485355898393833615204461872560554201937382770274600485668174168951736062547851758560315315185253301478331717514925304514484546504098222562887550531801358846562152591883468455491687155474318296211771862145483245434822229324603592139827510339631857016001289379767816728278876043923604640393645869993940762422148634923908624681618022552156427855858292733632712449250245723590375992896671355147736118779938006873997557857314226380452080403799839987295782341922398607772839161122495322394856609974112869403620662337327111422827926846634073131818289803478984407067833617890662333257639678275702884356265631607925128024650884494244560248048653009025583343938762526966673809823484438177446897938075352787422544540539399461209797426552871613076193476401510177519565100163699198646749122907486450408370403482658090950205431831996875674935365385289882304785158324437297368263274216520950940264428950085801980952989688413702762853440127262915817793796023418345172471709431130314045794109316184196224288856226805127227124642793269796114888191230594752483512848656533546356571371325078185431174344616053402572315029223711547004066846664962279616016596272571816566812727915670456061400931197465006990472020977145161022943940770090491297044215724881581638522263843191711798566164476628793653635152406188647752625353782741874248461131208664985384252716023529276554656908776321432887468013256407487497407121796616003129682383048911928962258877624198881463700063016157053260366515795216301497116414503803963037646807418130723259784770509919155644701846128639314975291342241773669572329305932513939568303518400105091686925017054477446431167793272414669026397239625570884918578645860214424221120473938671219881855191035265944359335679450488495926713505804255254957450134505540791706950706808844670899268746503167685226182781605472446279481993838284759419339713470776096650879670168174550402017352907058167674018906409584713933734643155848905958258312561510059452565976663470226774796446682099874131146940850182279440007348071955111909461003271263257117290158028967916543276208502437756546150422739087943708748468615096501003072164714234844079134155631239716231096067475183765156120752407654416984780960125308113509543625442733252293203035882489791924306029294668948451612490497320203524564509588691067844194498336268820255226148284553309868216279372100979435082962279833817295110700775304905112341303205220686824428479889942157498695497944679292456449563859512988191516574050144956396526703534601449590935028711279031012102299670822728301812073518731938377229600156284104727201059045870335268911692934374731757252048092080768323265525477833785990727239498962732139973670109770515231258852518299867432612662443040998515943867476238374275424964362584259935589510781510292634684228476636967446419229235692788425766095631597462476315471739897754950507688805409065309410050945839950649532986430239244712064110936061835228549601163947748523402486490010374130953112329645688836147327974714853126903059452548864695637294132187841916849877251837968425771515140280082368060239645963870606548315998980980518186437632464261019040891569179856424966839955378081338733833184485312532579305115001363371845233793788413146061948584645901458429808727058333625739236579456507167823314340878038370728956894458113654594601777796679620848262802690040584327028320317934891340001837018680413024401045707685470073223935745209699015812686381320870717975856718408712379877820461597385511229499919330955284580710132028941970348133128905089686750108120359002426502645835899374788059971205696279211882874338511633472175457219954038901317336354297129452320166953216550901921379737038915521332445266198392465329644930537449424990756320756617431927576458101333249154664945136689753973678129452802361398406825070226340929577708202663860404531692725561742915503984514829447788702191419879044610158898767220326473011138738719053389692268553506581773249203554059155647825621934322914477612666366051098431900119666806062454608667520303402484777198641410298724223101854322836965590485823479748577035378297244872361633390053028424604574564119586305609954670069149824155344235876866039874527658200466286477819965430140634624098058745289203257454129794677059766783988130334252246999111358352855528700024724062209842652268187366161859714291119714384195630880654346539732827969387678025568963330850787300142962257507231621109947789324053154678342173760312264767224869403674237635832432390390095390721872813768885559294960360373552075345929950659945464550940419174018432277013682393205638216046493080310200589285445514064934633013219693248687374923769722841033546913679299151208566517668798407578186085269382102051992219833383545958147375890427955369657083916529291800300782615417069363063660424615924276648872619648485326464457404764998069196246299037069105778351952848097492885657507722698584289920695455984007965458138005823291582761943046092259028000546567439839082727094358471266137450477799760741811974205068357065031776352198266206078973351987539611240826365688068590661285103724495924977666028760703604792387349168718965402369028893748821499757025417573648251264108938568204226725068008989298359002261119177478597122118736948910414286144251651867925575855977528719804289622055817156940015018391155575429529921219224411264026292598331225490684948276600428881416569054904505799633615869478753170308685625725954171108236505704481303684932329090457265691719481104722456598529579784897622559518472579810948066179117966508547132486172011902792845270823202231691871566464864836783735053040757023067355145737953368236929482267319553827657378611721924372038154408210156696161804608869554034934779916906098670920036525211134886530874004981868101207735341743029838641640115400790591545154730068706801882647772462191382990330934811471248179367682028345916915169044447239092324154501524098466972589984292726735096474742655506964297699218782907431041483971426692784132029094433305629724559985453489139528543750582341653441037799106243765720333429965078099271355135515455270385567191538165297824721494132201904973734985090447403910231001745393078549829051646980424837932220735199725665897870661791162671511566269515234538703872223593604248006738709134663820964349364790746430001582646670085829537728635491477179830536743975196017497461316048032262010493470441007394894143613206038053868455771642943379857087427713348598053615149444838708734300310083435775446192043965141627236098329576733016875568194946964208610770657867495907108131528818904804223065404082894862901079293764341771352796689093726165947051506566106526435708443110426607514178175326606412458541151670095646778334952942078199911275802542946068016858582981650573726826665353487809647006315153679462387948014951110609635471178310363953951815039184352423534222315890577800120676569385459331567791552406130508006802315722312350686226928269243681320956847714861576207130154909043525691118616827078960707720627260766085236630402728315775518600301587300942361757420006696677377651980891362006557894214709809676102666999610809952828966614497675356114302029474433163565179020856332402098143442645252461004515874750230246094111890083066776593251083779630349106946010883982016773629056039697221792664839074395921010306708233671485810104917409031147355690122145894904907740135650540177993292269621823530225685932312031615051391220778553383151222655638383733691514904609980132774060068206096014310663392538419802720106219856381298424878654317804654283042349040062380324831096421781629832952572902009483757416750574200529222053377331224012482416394583302315474634698691376305020978862528747663064615495770679286294507461635963103472992841619900814352564100644276243134437390939831162801310879586613487429364681738638098163015741575085220079224613803452170841380985624805766371157577931681496826951297696293983235009328706154800243030909805966320465692921054137578542997941606062330032023549020239604447484397306729203474831744436232931501590479521424860905436176068666204561025097633730680784939201006317283208836020625764830408949135539423797997878693459702324326070974280981667827986690756475008022087776350434957296525433939195611144333016409830130987697499343316057902078954412178819565148400249319228606033323218348928284277831004889456211875584906362452960115170786438738042406238223016275854913039240318754744353951479164863688496167345952065314272740716050559966726761469288743254188154384146899656026586380588334298760274535919458000334983181261309238594345145775762285526183917843230442313985453567164289475863993529075500807607086584821303635603592883526257686223173246107716934844063313538077111422099478557154500178601130973800506643797485520423574197922448035401942042776630646786482472364762753771704734931074365162201193457261936993211001423770968492129031895981133396856053543260954028033095582179634569567522083648402370860630931484237224263844500389331095479710034252106716042894886189292161466853674261541346029425611209878632296975269903485235677511732733161412190540960673627630353512678727214147547941880844934200973385267211645045751609900927513023971641680374450919249266812617163260461707874030207443430774179274531362279508109940490310921777825083640665289726890236660211605372005573398659132538425509982438840574501626196970178820908600749586148291339212972927704888776910418333065900924830821235825272984289114215487706732985756451133688824125540609422977917304553293978409333696936074328611995895146392352831537413786271105919558510385335134652173264648598472658908256776879437257756565416462684263341173915365051021431938796212947575197828534806717923388218305093423858445671817138365681725565672704432906860222617972926420613978280750955322344903329406240594930135661451274619442104943703276664055729799350101875299433911458265659629024172632805467444146271699380818675608011465161886689730796221744235239248420222472378048232002574219665510813009767377956174623564302276071416630341471143704089492828832797805713893662125875805209410603641265600460442345454566807228747879145285792949177997277523937901018354581728623002925193608904225139279883498486220955508194997279302048846888758166847072750818953852340071614264601830757355562021445074339208567308394093353702912263531972471794479196467749049974964980610679170632973688894653372750164917591381214688056605469566477390341524371658557909747630310394079345132078331629226996581838069899203896064144739177064392714612295350133870219889571735207670765812568280340226288255032064739708984438138746570865757428880451409955085709246606643785756811017017401775834884323712493340627347516894183275937039795429617583292374041577811142324956076138586222911134011734464047464370175058322086217212072988294899072016297433538262924600534591876704427600952117730078764979885376138275556277876797895350336103333817188734887074299086090801478180538275016304983744851980008140693173329014335953742586385635820551994716349631019464253208681933113542845193283109811249815155747826080136627102964949966619783586365504809807999391684579976849295355941245989611766286192493611620494493359887922165557321286100624716284843375244502200158241862059486298332571330534984213096807581669448675622622255045867687340013936025609008364642273784651573380151582737976105386808563627765302498528020446672213822930591664035415254652821929188880067206963373757518881226693077358209680748956565075763500394722699584468924224041850467515748630245267529080484805446783189046048146649734500948843523191440667410413111838438816659627510593058098530522199611260143355599177598989125039738691691351959719223004941776870829428538992340303693232773118829130139626814871905953912475477183093183208222380698562938701281962243008646202299614789346569139871760304017732616640350293830952620994506481514163984595632305444107199082289996913182962351430520891364599200145039587156023477927062005568276710787933533866221409941416104580369444794276946531309959268851462500441084397457774087785987144197924277266164631727754452098858694415829659049282065684143700950129495415144155053126593213863172137529868605883274639284451381809077665530539421079854451708899143316114210070344840600774520133952098218227453287532845142839088302435420194627382839683987401793166183507987208319079288517434945914386746302398794307072231612831489972983581224347360985497350162220819303675649373748015601589310384964966748343301359505507964425892307704017661747468657122218790271205374473186430277973565395283074001399897845805263100042125168135689972485208957856055325928134658169663715363090640192575086953858390472598738651803255742095966111481777776941709940015285104575708797810764961525143712101925772783758976467521207347403685885576325676513357157632509616584353249982318009749859339074848454168411072432257412721545369351909153282608152196377763949014414922649596137289936786854174851599464934487730121741334019154071382242616510381995242722197679003619892013763422342763515766440460607374213993451823691702396151283715667186224792336383006323806218465781487119180373856133806255115226443761682362015874652407392799531354171039321398304529482522085928289396572203002335318893937977426104960309607181227193060327750158825978404963595332896121853794149801209966183868170904516000658517398207197480848899965588762419260497808944664760430171508742127574936720585373120910593493397156836749451662248960626894942880709521056507985182967420677651007225702864309718272226439636267973645392881078858662251535341335820700795227779744744341622074448372023027943677941782848266050730697846170517994559885502282641895581205794050028677364985270966367435255995143946898565799700946678545129602965603481594058227804927934874921848642305316934638937570946297772537624569361933545249391049857268527411155409877992606709958351308234896059783963813538964842267411889655405987797137768339187453795477733558036316313316101971952920346923404786772533213368391488351333038125048152791583362660263070941213981426901372481820632527889186466783489533811265631872379112140399547688422674836316687692133772649571744851522345052036189038316227767602757331981077663087725798919989770150584282760199206885951159298852601650218719473127597399321077600162614610304245506359225591105353746430450787818900644571318897068268101862326860716783998295726849382556470179184913841186419188864283666049040617938106558974366882084452570995354250809603611309955336340396763712204668888260141594222691372986471067819917875231273410744184739309201813391413209134726007093264007314280082975328362579152444538903458194614766072132919256172214448436085116092241673573991847323676352010591984264043932921541192693066258962840534945375179642922314393300048133688950569816785298804976825714125858048358998432289191555836312833320134811854844954654520556473827146265045916529056095809547068131172308947673722974579565610411398319266820572420970164864025559423429486593737515233190692454436764208919708733394695360792408440892836791008042931500988110786563374168550380378444981323460020138543856169890227338953023033118933559253654071162174959246989327509444488138432610880286255703349813599275012981752737642448328913293889941377641642257519705871359270427057669907346662231180303091916037376287769951853341137991937056915099214986840646706303983777684817980073086837088629305323552296895228568392327508545124898860334949708844509996557950719480050827883712613031618836709089230411045042384705082150506032778430990828009641879291510410580826415203643917032382353670193829973501097389221719885053236154556409376777822011477409359703690264510650544861161134050112932465673381472359867221123242416061533047120286964804592730007462224034032503695063880820017522940642870223888156340139781257810260807718114801411942285143409843550502442778626915078068499075044752626620397381864553374335762015779059353745090474605663663145403622908416752085168018971970702777044987099609037173658093902019072674612239025530740460817266252731232355786812771564477788472324330783844420357251136139999379687908719312345934414576013775167028143854715615345194835885998799470670684055222363517416988651859136518976141524884336779045532141042617292814630687844073938598059277546876781957379951262996161666390347190324210543816440960672383256269654754947436327850278773118070268656349666594589867245012827633021565296004945840817539810253927290646889189795847396301457756935922343449229190944054375794226973377016388977266687764058608812624995590137054701844071095930881001442345220836536414783324906504684432592043963235659629182826709783521780197352955941066020530376678138556546383226233459688064523257245628574380329117199429453593489281391802972116349954290530982055216444337481026781024116952128796548539346775755323356032281487470729185312780954125597538556047607608307103104958054088943759402138589686991545325667290668673801030998219208644790515641433435303046436558121880135238523392673965132476514487297338298311533097959574734721407974315876955136676962921166377873522154987026728667402752581376153537895118247157473273664831439863735124886818602586459273377760708576626682184973218180962494651929097289652460929015621650274863844790249196490693484551048034034610276773191335101298743661590543974590249135826696376864741964225773312169632617223958622640256145764373759112355263695598078618998468265422487039338022335597417809039022863489500914066134237128161443627037324766826855648354254442063620963813726815973594808562077618340037151891531541285600619593470307173407445189900482996894876707516062961733520492458379323313453707848369698098144030651539283231187874457358145604644938310889619446769289218018020436406358663836517055357887913690951350529070039170089315066632822654386005014043647728144088190063365914747185850366929868934694540224850685032321472508370979604853599571540005914557163377598844976135867264818540512944405359599720752593734235684372442945368448473204337788009100794197136309609600477017820649350096306435820532755757501004563012046586470691503433341863511995773505078390502176944811692779736972770433649404249084262589388701379392182517977273170507858812537030335057568190766084048071413753858584882876808457061268550174410654806420414640493711845483496527502986357935191174882794779188726421527583267937390787774198334624532913719407703718073559186727478859868155256679009758520693498774618322551724100464564563496893107185326365112982108348610713869107234036787515808769841262128369237486268264409038839507378439894324726399643486526005160984144693481550142572383440787567754878287502880629002050661240509488144928497855783206704161460877067179627277530880360280490462009938816550436550870745127098736270404042474938643478684186288944905611447676576558016616203085763534964029724526081739429477966221211687197610945501990031793317555010278929933157433625307390186791435202020564745156233063242630588344679725175805975348080267358794092787461022314371358621437838128696409878206565958853913172636477338166690002713172146369474480319799951500175454672022224450974327360452659054212405147206167132490403022160506571363330143388833254876066941043953647864732220030055789913935504244235218240933317982067541102150765875868865245979837456775395115904138029194858045413788373826436681634093924303379452115154217479406314106753112990029267609865378703012763191167194953895594962259431489231159279801964751057591640168418832905371116120615114532443165759700802522794024565596346759110204315464401628235869704031224428070616136515095827103189658863267084321528259564499244154662692337178816481076961424856046942356020638896993080863916762014810191420698301406976222459767607827955807938274446697358056914717840913573459842832455536268304452201535234112769588988283959154676988979181289911292662243494073880935402379044904857368318086716778928486985284366848928065471190617884593580192273640769301762028660119186948075153201876346944127864245770571222323123067621881631693480007430279922035142481724930981989341563552487626594303860280917846041539188754314395410635238844459289135795471744328700971691954675360128155172614783895266084283268747583341317769373607925762477596461792274340213997520229278892219082901113514396885486979036751807241298074601972704186449261239029649976979718823916304281549449659858112136807504848845787946728804029604681731262324774006074625039426427880250546308003654674643654357978485085998200178430857107457730151515181958663249333344786680232861051095738027375106821791978536690660118194468875190918510083146311525507821564649031146346742909312243385129834961627493019536337471089374639800302693505260441748462730855453764757249181189955441525404678100180102396852253391832937053775381276957980108303692560653524628643949472890568229057355197361573730782487636533723332345815359918040766087697301901598745094320115821691227473032623532054214436290600555659972714316286269884010742500488577208235404977785106674942596989372210816939282547294080397449048789146633023879639546541303082496796424872624568291731262864418903736644881319189990841601718574607009160920768531400500272634248812643949474487363071371695873858802154923701733268269796613667583258646033346609021253145877759070779626954685521719855248877886296118408327512176185955710369037200893101836826227263332249398594779382045693797421561020400980399087090339480604537112932851097158889255418713849831733939600893373609527610223526716896334345285285276253326010325191921410672902376176451068842114540797022154939766367689278702414302635462712154660628199309623155108113608095263445687984890208652317794314813637886326271854892117860841114703100430618845055242616722734467923834996829987440200393925217370728434330805234222740076207354059066900191374627909064559173348558026392728489386774332526508487091696551891284424370256445042851386936747103334531486787228840286259346979254932990857805739083577295803164993943011228449867852395519514334528071615707855294977354792432323498191766292989664306336224848161158355600397802771553103532168906450902557515013966049527646794383957309761863447300448013675388884033939165838822453638753250864566078981395372993404595970016056527941017851442673363079468659249601307773079267557827269021466722088640179097565990509983504067905165740493825275400700539086796851839569972251978360474225370786458495001966755286318812193888991458380253287020675242979679031859683245428905320095823644823068707959283765614044247361226917604002122884230644045212239043816770083600395618336711053830686533855090156796900528110824139432121008907949080263147402059194278780171508306633712565937496692094525643984560817470844191026673975741881688631250606835660249560695518749350657988572577894346422670101337107184561809786872974785448771239792338952404451230548259674525382593879576521146754912197532586800989438274170602980818445181975794698200379657107712511841385731446215445104380497187590206605468065128259997892275800703803722821924997271663074714381522674944257521183011316886547171343061452724683968455028369669677828653282949485986343931473260323794665144546213392495000159477601080753421195014251514780154066523521553094301502639679307475968192983375887749574701130542038530277110069976107998958140712171772639285151661517861649597829522434312860775561189784027821725456999575335466246197597571922656175120263023325330052494139356074350413856296225734234251706382655145041497663273509978759956747585787346134935325854764555013599499544474086095687741977215916088246422737292027848777788108915316618733814802519239811577727545762690029487861566329782549932939999781494589146610583107208190978304614260080021641448249340573894321854624248871535310480123148518980416723604241192294944638033401884617443387805445806941135435975701752791154470945507366492014061910387217238516171632524116976107812100601690634049311804559835123981793910622331279664250620808722248635444997858414642892345575957676182317090336038049243847007174332060206829521015528191960987551660329986216478805852433853377926079669398286837349157890899610981388730782958923470689847112953449251747786496497326915200381793155825543156227620532476319824674590946654056782553545949552701902073869494891280547849584302045511208327867889651495645351729488228933883589341083265176193428196189446007023670895625709769653836772322846794256226184645908226957503651077537511316442516579132427350246865470425441261110552878200848089022527258859424600441675960027841492522059625196981118330277668261186186638694383513830474837912507483180982739351264847813958157133456778080515117541068539216924004952710868832110746779343321665337834459017913172634163112842501877073186031377537719633102831468765667237295451713677216045779978416987366067510418329845386974544350913291831195152460432416228228207031772853795231104451177043089395016506408233788864925300101020029290748812897291354869449315883597703074786739033142400565646969151574937196701822415613097520996103413675844236319050708937331291313707521702774623508717239461320249196797406834546059341719312540375599620858023290248095277957080579857222394888465773583507590663426347228905529593237340234592366330572377132299960587962317921018910298128080612615256875886172683736142278745686845716770143097614157396836502521526633644962438662513609826032961410541681909130195701775415132396940504970120616042175776328272223572345975988485860931824448439753465722639031014101656654135852680366210665382511589825109420734288370917827076485851692217518860957801020040087024048033251513901280982279868393748560449702472374223211265877515888900359482816823118938866437132968576898844787381079183951481193836795336112532843169348284252108291927906374710603573176032023533551849948949005901583252032538264083077798535835568654680211757946943964926050003559066039718906417154100572293839298002379295192939358944369811545290599841988341923832555460109024904757354377076058448983795540775337111201086694788219182348610973280752296235714280197514416902547492803596622302666031451625759520004438517816392833430847649515264771100256330271266104829475364098644860714030121425073513140467261767764280642619343983330689189618830562523468499043440915853818933350866337253849871287644693223372867081457647968967132184839046518382060700192084320685284550591980707635217115185790290116902668456044432695941028924693982562245333096018406735472036695121692378667129178652939531322077102644985871454444891896952766708622734704002196841196510282003380846044266937350679713705075230380137026387485269767153736396010207067152463505324408170135787050931484099008992754404377351121853967275942809636795496191609788362306649141506499980243051690260112386121162830453144024850670586450587292998214912264002918416022420996055300952674882510477893130339405165467846956556563718777808105594104243647228300411796936541944576187634163065472824891837422006835849975753754566544571499356240257232592745194094638177706443259451301960989526353137888798535476681671786213182439674056047333521945459175366122798962787771308321835251264791480502622621930344622666350703183532146083088224688526775677269273150567673968070566481761349425043699682892584518936696644620211982296834325388506792015442882495015702862548017508715312657249037537978729822718627700053908835760792259510652533966429912351784656099460671569750156530974123590088046324917040596426292282673981578721307466043676208815703413881737278083179670355436567731304761705384961619361714174072669888483603515213270600032227224547006741567493275554629553350413034017156719823380730700671978855716069024073006938037899530886806712627371201477604251015249821849068856611665187896755736294962484057433797410072572503487001548923866642246534680287330695306547926859817695105392393216128593446507435311826590104522345709010123077078189003639128266754868465395619080093362125329866204691624296404538402143022015697267204333896447165481756098387541207753383782638071386359343714284543651699259889612789971876305872760321921722115674924822862683896696513343915938356792515621275201478147016186869159279356360294825898964171966819649409811508658500170980071864898635598494643522258643085204587783116784926457745331082263576134487892134972604203722358410786487581719330124128646135280763426761807883985771261069045825163602759858157645002278619229493609638040256282346412186597402355807254342699288524090563405479763652971862774203029211910876091428128016548071321363470333277880699428186080948697842937794952908875191759288710142547965592321295847297314868726771193009725959328228594217263730540214315394097376761859943752344966649055613752915767766546175532436000144199628351280496720174817922359586370128746332316925355693186587819753248895686546759601896962397638133635987054901323630372096500987005775283914106508182335509080799766821311140951029637707895467947113467867282324214965943826336184909314854664602218382555662774684236960888196540686757466279239518090130726567706007904690555989897299030295663438006725702744508813021779993584578834711984258454205175300058467584852226524435870094316585613764071145436447153468651318507166124325454480188842289495850212619838833036701862175058636358299109542897190433269807232043791980683164774331755174110213709442263337309559163133407075434151613180905697942297178754287602034889601541148215438357027637077981427183584523350805465099214019706201339448927053832575804895366479597393813412581215420422626023399983972830409275827394766481845694140996041426529818039397255807825468787383883347356863220623436035067963153270262795689971798824964037245105085485514393567250260638549490308965055305412623192406987052925668394157693507831427061974772068161078634755114785087607462088928831173956110129922163797809249625586508045581570974842368569770447748510161356349577438954896725576794290096838817970623045446957156804553416411147648333262193821404004584647673489934106482851843290609513650503356720142628956729987235314680975828634147121156348156670649438405353327996328411435929359993100927596994215653613294221207926344953643724478414446616528529413952737080913169973300481213511301167864649881258506098738853803166188603889580533268150896418388093972629241339967067568591708489207523944343562516441623763390072396922178927014058433127832664584667880380159286375642724463762476554389745585367756819952228367275840676090112469844983245769047080177766679304789194250843881636222302552258837597825834187114675105940185543419241868823694432045537620372398548253754978148609216260322953534406899916110791787697627036380695859355268075761962033700992149953316606020245167045619953515163459176763432307807671266013549856109337001386866022587630262139932981053585666158115457696160646120477844156160599153960156902946588406061637522777089897337813518186479958790453023164801757484917153440782568747849586699420995106594243755809284297707231233875265404288792726904439480648034908824109172177431190816134065722074856230398604734445496577198637467297488495075687163875253719744694289506594628395054557697780250868838713133248700300002136667137139611845992625034247480971161144473146284492776935342683658146359513725394888295259877138164447702038485987093669035164436871008270622427109035137353026496096175859632819831161257949736054050091423516462287418054262348904073250729832782493821582578740778954420445849844295874980353866358581997436075215264920920611708203482465051352921791723651012037820785611345244384560046225358955864984084609069325306458942145058528222877728223560467780310249627372150174152891520338788279053612534783332443392066195633320264517538194708087546699011871532513671625596216512034170547114774610475060129322002976474746566888115480520417494274437562667161081292875684674396957240281254930588683377050408521010123554799751671165080090961971271388768593904101372910269595896783683122788252063828337128160347920316759278528180171864657544932525797734240037795618463266440762101875536814457027824060885204315673624974003648038728155866655143367821585277208921121540745791061071908464719818475279567970610153149207914865650915885935824074865217883334942440798813300818712059130854058721834023887247100374096573647969989785371750420565993283419164068807614213324903902704119221887735772761104272514100027737223359752349162881055293234042274883751279355596903129302813375394118467791181009659889583176304954226823174155354766337467107617492447154937616188649136827294956956758040254261455925956940843294452689323791626061686664510783737850628433547510568745968182142311820218474666301963487480539450612975364087830813648669601200662452300545297588827138212885042631653431616037414855654749863767895496851195111732550371608050942378917411891560301779443524933433222428880562037780668559998344509637115295456097095178925877993816693132544560659646407991477512801039888312763512484805859277726384605230787246292722812465242658481885114067794384382007254102830916227395387647125420005430156998175149018457918949078205364015653034492820722147811249807576494201614337112745873154727562517047779262498975074582653331152825710537379624493836506308490998130661670155444384535688356175913706340494953176062247057959967981889272367894892558280949089406282199977826892803566921020950810956117780276903858385232287326927977376070345036479100138214189070899729836045335983827198241225978213196266690752781310683791356481919045782929984581882769066754243471050123171985216093521046969638723021900521394761803617872598403482304396329753829411277339118715700929791547987256211390403707572448409702391959674678187586865123603445280898019520251118413737636562930122569875046018014083120076212982656619227447299421409858511176782026671103198968369654736723246997032510070191715926704387032073820581462608343049812674367105657439436485612846969645002794470311554345439352382054529317303709649828913161514723046591851182647653260109304262900141883614271439128801269682993779920303637693605877826923744994286429681945523771731411690345499147702882059338759830946246332527344685193608645576838067499178944255613388739417929335347215347864222860690990159054683049392576178912541154493141755150641763225604830297948708311102211167494840701692942678005228063935640964826560705666726270424884177885719435374330734088933693157895695893838269253801793547026159836697236919710625657470745504464742067298565682027243602890380843317646165897830403256116605384584874309620169472531373319183752571636282394137607299275338473978155634959572160183898789511428934854409299909118385642923817993920138407743024938035683005986790855802322165644110684769670641945337331700367489309889632760377751652332196439277576737266742886308282272089370420758847527975624683120817331041012715932291602786624361432197374275858196734778502558829398561498824805017410704821040463071767121576217816522698379960551327580596978824828518311218112612736122858911236298982357851092396015377204287411983409530142612698737913743443696407313388149621188491506063375325355134678816326353924804132817471476121911483134556605267580321617299831072246508946872747167372369657365414461956105028899201656529698058946664570535140139909739678732116427390101295814837776673686095050150366759899766963399124130149561223226432779902764236519564603812348582850210856549194528093843323636143378306256501528879368539027361763482474917265196241607513382695549485401608752587073964533666847712848449072193850288452405453421345522776864275004581133905056055207492463483780685521402223404970756235898494292628648530491763661044331239209306432502773662708928982305021634859194679873392256893480669565789815672781640529886586002474821219544544869484434520121067099980952074174836715279808672066714966675408659367701010574494097434813218381516404707759115326729299487516358860691437045123902196943356212673430242516303441822079392910631835669596472424382059109189081408305559305594712867921574434149893166587518507663561844422818926106891073265417994802895157064147067105154091007553554991567078874401265002328179739983683616030241210822819477660094909164083193482866514298609151569992959478814430186744045275491843514821235754441608634311375014708486230220682869299317460372296514967374635628984466535389135158722337849325849826585106877977213609992891468597688504191098623584616902773200182947308061866180488159305287355330176416024382980831264262197138842188999691876198663164740336314564266135897691583265640493358129777774660067851128842532696090174570209408693913420003231998201626673802944425586828330479442040300199935583066208735913287145880874769493646774984529897709648718381845969433984770216058386150781169045200149919672200937515870991550668182389528360569928593692890213291751340160010259909039264998845336544881365423377109793065363676791518377345322558590905214030596673451141045835209523877559767514888304186256737485998936886643171134375327073283077131822101380768846852984788840354750277977366936321381757498706822170397856479364646689830300660232475870273470178872200516939267367879958295746289926154013535675369941679130842755504073925370077647487607767597206855068973007288851550105791822659908127045205248467598537615812277435920720313899784543857855991822543266995900640906552239864165152937052428080866286081034049255648979101646350054362749740776350124539574803010643699955176040310155917422079509198607232513811484805784298955696696704462272755609804765002398939635026073804047864900943935934207772480020544976959907981644628597348860495299788544601503166349262508945065086348711740488012081710267784470487542369212585550380942004117777376818967543486664281436460256441330681334323724884024543396517223538704871452537923119042689138664592330085571139109723688774016719936672270551576727945195251967917259269818813650027936491310611634839489349495242166463282239978258712072986269096091490120672944866621450234687581552137614214894328507417719119940439675833669362851955994701054229057773265355480803987416926444404298495656313730348356887919424059210343774556128039490115321586737776760739900535733681388257031486462231402643234604488419080469844070807835951467057094851198025071073703777460710757923839682976913167050061037911078073823144437366684605193998192632627556266491690736375509500802461719205099997384459606262446074460920185925563624564793605008712622729290602332219153207431723172815845968703714446531414641672922838447886689709059449399766603359946467870084120814759765289614250917948172565343876955226818075450213700216943343922318877710758594442269959419922187795375248835800865914144664477528555255197981789711142446153661845792710363711661619241682594169577629127952420135908472571612508437023003858105002229796762972935584937035723586731123064269863082375337618087420334670087482624527017454210092855191685029071013797564674189087945385871042045055971666856493437736456748568979448734944498769235725195096047177453418643406890920108817289652130553625073861909892774754129148405066635286033667345196519846876714646954561075658138676035268466496748667904242704463569237837031844821649828783017280836620723165128619515996668455356881324430490734940250784068702686678915991618875207980482644920980840799692579416335908069318034111018887036192454971136535195658498192506054547490555671052239072566123403350528559528035724054338738401378027955655173159570303470091411738291337039280763178860386302470608489941464995197018100530633375540407661892769167438217221091042460858085774796734804166480011344543683946603773463401145249706529578469944193902009179685591577525510628053420193466768696767209339206886476792251874443978374166146283549746836350449552937876614437525895670569339033308701731222532484556580037715384994012147612790229224045746119457881286999534801673053025838705536494423123039091073830969545115929664411856754083097185073743616556015135391416019058886411513429834091893991250534133032896512695785289873366570546035684560757958933536851507519443701435140766303125624921552145209732182213871945678496104619991286456713342883175544609988766968644766870663889919525922434054357309325617845276522765367020618874371905780149847367307748150793675694225085140800365348720535668669502100096047404198866751492234552048803363592217401428406673382351066246524459697979604392605995993830504047166963495625814970007832977408315359565427245921541317309063179047389375859450354766894369773138700465924974922226562352351257482226650043631430871649087974611433516306531074950137812992067826035563931596832518423084381952043179550021870917810298835525618353628580226789796628963051462039508923649548263749256173977770049069766751015380780730934209294734681897533924926471806340738532973821258029072626081197599015299365151469011130460189500453517986654896264844471407502272712109537411136572121139432485900902599628418495813186478001959920635362092183877293289107266515399341769286682691557673542732983924463073647455224172598176055816012964631133252915777327655368005602373821319843024514434958275401170475190599927695015500698129060134922959210684195504458501907590067421370214484383567655480266004027713221058307361448696557573100246528983389705204733634123483319825408416315384164789345303071564696179988080082198393850142246879821170557851586838098847351500972077250046730202696798008864117056533730897025676600516123897597824774363393488614949586830731799816742263340579016543680035083764022951890859841460535253163635396576734480991589073931854267060361414052376113835738345512662127393873752787218860753025596014958387328607840405651366227203503726741706604460434172955904410991535191895210239288056497077421161183396346868898428805686790680360345818985554716479985324690641185641309595343196137281273587582270395632696905436169620253581581279529810390596943627044187365845641022688376497054618186157418666424045241462740511753768411002405565335383752493640012091543919065759206867742984757885989313331805168762824522942519160569854688188031899169627314300672430545307557865174044835746716381351971100682284141317253561044064069357344794027862714012392339644497861375458899974838421364468517823004219906917157741653551669614190557960034690227423654374126807011133576360580064085187364929505698409237121503556140271843799092428195116694149324442303003800259558201716597647503085573494877528246408919884277257678864202145043686033752980210720381638338097086377995412580401828977556985521456456089847917422169125943676536618682782851657687369170450445689102552793535251197638858566642372541081593177166374543031578129124856848936790342797355874037734898919075256315825954636975018402662895441467480802420404967234251340537293837846143651636045493775211336293187248423013970501752534576368490500087367850868555671037404610401134658423582024094129339994692074591485494997494393247036131121467869540865856239456779037435216316750130072198466771885429534853697747349608838998673107732658116895985733376470382954813856168545430031839130305607486886406616352397009323721619011540196331046454344194661199873164553823785488332915411624914377833745306064959434899170716100549194114632135318776886725566856829406106968610840805706899007173296329303375873251497502816148545042517237787358759266239446632350312982955969591318910031412666337382097382767466057948411940286292269466068309303752175496664684852579679120242205552206249798367172732311479489050476728185549288303905099397640311250312367317828341802103009832035132201945546410760020709424186529616082952400974323517883715918985701266688232513736167648582765611763228376999858431766511295109738319896654778363412262890398967678614960545938361446347208122774075378130939682136192085094979191631252205176671821829779242465429913255859848517998643921302565343801401151908172156254576173722497416224262758403945953349031145282475617493285553884706041881277428002758886090778532976973902956692959916394009413934103972135353993549696023749717864326449051826818846341706870035517816729471757458065962191800043392791509910231322002030111140168613076187928085167731581937816622670158599067276073536069343700049314162788565650971871280319600911801558097410180419828750098100940143601452057094271219487504581247449945156691723886477561158238550208409437607064306397724843718726483510078099785333302987871680262210097624991682624099403624249908286797479015983366822185041220097459307884418105362708522909331430585304431643195290119433750462724068850368094215990374454101426879776165482794387578324055966359709097202277216298904044502414085466285986227364166393071459352938573032290186655400759303981164091277178971300728020448027384524374423125376495156191841430566802473113137217612252416385349855482838357218316869628935408389433901406498286682373037122241256657747066731847719323706768528361005294986995031832436837563343847290475381324067274210278222375517607056062345777700268448025561878645025886565943809585252402970524909264401674770697830077893648972181232391484576210263391920365997312293240891748938186984738287842637029694484823697064673060084773683931032794081687320909279124265989286589439934445824092463459248813542789124836587537818967612117641183803494259325056469832888213105007037543759230723501883909278599288670501978864486155559144696508161666662309435313230682889822130069235653787726474877884932034630821838447929852976900986626349220735201913536459131656479800032144323154489930547300466016953783355874954182821705273751973986148939826027173989871213475081337343567005141616202566708640494440530116152496796591726435533455891032808576681478786150727027117433316205600162652842357160396958912658388240129320418607686978399629181314178111684467076742847978276301632243504689914266794612191801371165523742320692469261900088148676359711145657798733336280168223309051304503163319319630593276784567160849306252821046389714315408668396109940803702359502472536175635296649600544338934345731766391003794459880397732860341062107618332250466773980034308430177460288599102409483050221731843925699441578525806796529093237481110960268897996601669408682823887520097677374697791739971826636032691490763866261930318084970916546226760496977262629342590701588912391945637136887412178806687137349591152130398788008878753269842547038187636229615504516887003185069569359578213090388184733871037930043219466484757935462149722390353398651549260292412829064097788845140657036159138725719470528008008381029047191559980444145773899526412597872680768267678267062713113959961193370744435846489477132045016378832188212410646359506295442070087698589639561880107868180791820582581286250281309220489081498814382239000217336791374038553765929016525868575040186383802926918718351372191167966692998953174894469608032002002951970564130473645836037450602299937510187097063858417136704733638778969888188293341488566763117361206939870344594781150247410258793024001695724949449857113569593750934650926205598759984197601158837080960396875860381412665382031138629708547198674648908408297668634687968062578330077370999568327907132145927647765915400651153279898756118880351143475441349250215146694535347538671758344308443772355395203805114945091853899218839419160794803840858994135690850813786827572760452600425326047936595018025869943017007475766107035033457052060360462156498536153661563965689233730450704919671881889788747667534268801618377482418542027739573347452411123209662494749642818895578682681927933194119018576368310603126200169009257009248501775356933154189198090440293677491208555660860090761924857807167284470726334587245049346919983040770924885314819068508886079371272500799405788882279682366167128861732688212991696139093553487127276530244659233499886077060462280959616543456413700346756925952083817273617099553662551052038220186363002097039913871395742297970120314702858896958680064115738710123037795092366395968041897805114891110034119501577652625767355683633071346789749552120368865479262902340298991656292792444036105105126689127182162713239317686215753026601254535887952840834079286201853693933361403848438454437194105119240840562678616176759390632997613339188700635071031798345690321926635666845200758723593004235510827958226252320702589175210739150216648565433718310510173183024338954928697798728865180049448118660689298706961869453707752125379681231965935121157753711746508068604726382949749542121676219694019744348553065194043181668263838315333205985520757995231725050737782122817838050046556098381919853325528254537825752012583558698017603339842009684706537373400713059368535282551193115063072678548382334730779104089170505003048904353004311362621586638542409064647626100236268803061773210120539731242913121063040292346085288450872966070426796616635713401171929285291061942515414523719727438534787025451417604293709333769481354530407234237630498627541846599752946221826452476664843572357765574657860357180130611686285786956035494657694104223796418958378911412579691537814065379223871571586283121491847712889539601427075434827891262524855663679230589572555230950841638685384393667381838169378283385439773210544166005421640756116127792164311235562847716791545575845415562764983203552673070772558745792862567373132390579425388862686863659992215731853066393655381305279020618903817676374502785010002754889400381353260366050112114095421195407975315308117275561874401266851349164962336193374245970413970236842557270895207480501438383360473734822441666114522522959932176188915476122972730840116868051419219234505035425825769047985418820081500224144982669374699625838590523320421472815768630973369708699425749899811666280911413089084023431065821195935162632657700099495350298255709874895398934047598849452677058984993705415029585609830103106621821233791010347083219735633140224868700911451690055114168749273800425328482982995164395445545658885305661187881037947949728752436136682479169853101040523490715141564328208942615437166182823263141577376896145853325569059365200315813920012475808342073610651753034991501385088866110543929120666240298928657552732312505481513342974612716911954186312150814379735964679033450820510722279083154594150504439913816749770942896680745538123940669098024692135808937154014350317333855451364506991655283616301620957005378889362894000574122441828716258849216259901730693768889197444884069450099508822124339945289049624187460408431824774945104180065781949728091440629233646006190546946756649178558165584489068101980091316345673490009194741978541899322294573682209080365161200212674851513253906490806785606948450076127461308290543743421091806314898505785691483884417455282744627891511074848791450897987204048531041402863204129864173200856315152146034522114232898780986861932920523272845559332918171208980228586267739200431881856462122289669428407460407622298996946131270658405198076075718399168462318871446010394616675218222711211906799278822078502616548592985279724938907862678729896895246458883892302961991544448631712066401461010097747593174493356238498287153147200192279713646953224534043245043663997890800259668260652772871696188139514186675784662379629484470935090463291644797928460384194247143155299561498156878514822806404149834844029346618657204517024849650752861511398154460759981070160268701508220751316175305608673337424528254498840770933732886335771978358204135983750669908719693657363672960495124618659884935629153754990660921973285282557570525769699907712506891121645537024042987128242699120134562823333347445699568573696382339714369991282833574715933460470083065747149757971864357313773445708015097913109716044623259081067803591921245931047579391541404388576431536446869681662909316998284661680321187574005413564906919121823409193495996189486664356669617889978797480743555831379511822799658402813418459097382206243282809575791169954266157493176403732133260970528057466015555917057335144283135579065069979043289978766491707348514523702334601090697316753400380402862524184584334183419880997868446262586112966379327938745375809172221122818671159594210248577534097763107755129846889137406002180079223324413577994466012189455315094492625459022674894033391644151493412578164384377948887018300971856238679708726334463239305090360591109146249294440736860777048799793169781509373536255891930341330083606953333817356731611697922574718256271493647767688477156244556598331062566750131038035838538281915753471292889927108933646166764370644076292479901568975470258005592953289354049929013431311631707721570900445700556386283760778102499351432235159897911393632684881599494782602381788099923405641206091261255997021481498191045599831332622948122112338635278649538982847618803911243618291615199119106225253147421315934879418096820916453627162267775976694690996970488823728017857491841884124118569551993613483316716107351953176364033729021581483719590770235462363103508142118034138719968457724258394412180957913483828800953020650171926358000682219740575643405136397485082113836928398180788382311876025143935611080442495056064325884113939840895479151475258878364490258389565809737382285978044358051852443903996268388884310377117359368942121731468749666819080713847538955721492350532047665587292652099691293678090086960504587841883176200664655048747171489731838603190795679120580227631170789382988029466564988646482328051731626003058870689644371829009334147311543110587985303214392009148762503632813973739058023097531252383144031716735291489242216858273529352470893428542453001512118526952252729359196297008926383553473178169845218922702675771986558413614289364723027624441829927953663504137987762430202759175178956523175307416818796883011728560581743961733134181075949009435730353778734913108510779473824566525915331914190058111891820240919667874048421738178875201854124871827689410527407872193574937849516659589737436098185691629274722690046878741623073887514689100668350282856676401854273593952383535205658538331954416676482815001749327611027086815717645252372698109262172316453529653343788369698293959614600337047718567330860484496146679815237090063606988988217176380369899013888918680443864163846830965247273479965001927191542543671691960165324419256657633818102288483491846348467856300897890887345836531666943929466760234840743451095218103241542260821380366978233447052935357775730024710872308653963760913679435657065037284443780259979641494732648049802331709355793737018186133039352140647544895399745725060367932027371891270075902122978764707749763711078554232136650393168247056507887453140391627000787640453634001502305796877633291014882628744549894802026898861874967205418735877154888416542339450054400024756442938117018464317461384262238900294427716967666162803327192435317497397317467069201166010925349242890476371033157614327502483776058427180193473918385892238829186361979773144063564920795313343581183772865961827615270416422312167214601698171518290070668031011448815043359348646722053005983650567759369978199262209777840965620086067870947719395675268877231445837552139519192811652617741419604477877558385095000907162391357946468881239370441635450351764464690947808824442704107348107482098203855661726030739876248536192278956421682607414550755063319045831533058208868224322727821060870094482070540034161858105127099117918781538020781703347166588121602291039612746410845978967717948935237174668452752368545013065258180191318262194052580012754693652452643115190684243045774103450033340304110883375248831656396991936276880681827026403429834799136795604668771277282564510260184126576237880699344880532962126960226935733632601164486715113497093884658144950576344700308273458251289077402271094670624359771393068056747252597185036267859055807833890234150212260093235958565920362662262291250271659843691727876844056594253780475002777703501750106740324504635227739704124050487184098487760703375803123725061295261896830106922962827119555699164169982581397065432395369419119105538575213986325834517767734208947047104604615983996844556835750336333147900292282172496677199193763731803337829731020186140131414714827602802469599506819493684069250057231757427544370164529402632768571060728888135705926699612525872746978591001783600900004076379173150096459785649217816456768901190683700751240564374459630438246505774375015340933412647594886592203353593795884756410691806979181929475488200547773921853677086002666707576630164380830365961465527132216766894345993116874039184525408664905596222838793734919478746697876205621142467563311596076698640312409137750519495817431515072552660670265196808893681318944053946838322431537078420243446523031809971024789034486880786289500756804622013299841672763519533360167791554155648815825610934553580407182473387590515329431967560110018829147426514352187895758923740972992127757129899323026317428732714082099867142153179371504641859278641389804598149154558988235893294237041918970531492526223830478523410677226251088285988528183850320665522484740149977544180797074825073035075138755025071111205973518145207044612062069928851454642056601953484824776578773669498349454885213073966066767255979224865274801641062915633238759285832122099675022585310940934021164076848522450438223376998647718906546362308792230324520084946796531790051601830125293965987837438176207377225995846863924016430926864881111114283626207340644303003390082934260111425166328646493426658351917366225697691376849778218537482856781419307951960904626069421757978925926055584006488148963503110594856893657463783196935537881316011294980751820410703443356547437923045291918726191533182385468256393719407971193299863727233652419016606453505752988354201073882480754225206187399677616163555091964418799068880175828429002852569294139201998559465076519710872883883108138022520096172268725399495668235644394421171211720838333166094136704331443258206303081693738710137345910974852252640951464020929348172980160820281233636716636070916937513647294430781624701362324387560973908122233050115040185863840285678910246461755087845323729625201057714320844778123247180122681287348199970127424530612456197769101959171561241537782843737431386463441226561375615426909027331078636028118453962601897193421581701913335745332145246455960035364354127359139362712637009005074328184391999204812320825893987238921407027822621873616849718509373342063480689246757179455698253754121999606090339257741066136239694122636119047047174819890556463386766755400347163521645605675682282336338920056302664626453197376852739256988173755950707413181300569071189153196623843959716644852249112004099211784344765695471963857206828718993875608416671529084046673672008428627688247590338539718219243964837764589798762104605994298423579463791787249835191094998156177552145645905304013810216965888514099538006536925389966833672135912197240922039679300559962691524987805779648904033529209188664317304292424406064837183634673289233367369787548997496355393899762385511976421244076421270626561749575149586342481558921828719152256125454648736877183153822702739916172589762260017224070076765186471825462581120252810623113346043365480147510987008852411805135990951697193516053094161450169390835483424320876679221859680392207270632390519125407065504841800128210720377139126536401878803051905686747763142375150793685936040762897068214049772268978021200032045824114326254207484840687484505086157242829805909797444626201001122659323426949382151410469780174241793491875691674624894551855754970136878243691427330993696070992986948795333102336666152821439402754358692994027222535548503543031620260332674835470635344244652953881861272009763169782584325324771930046330647938166144694829190221000209520521412883440103404577816855070492177711554435433321058968739336932326561684405286329447964488753854154536550726775847830252419253046209027534636827725183201283929469868451742405493152772262344545232771695233773508004085391559111396990429153070653270354467617198387836796181760299388319154012844540955898632948213928650371279385572779449231949458619042956289359051973227145425932008094836510640755752237033611200032379818556942819445111841573838811141239508473746803978073433050781934846689325721453567219760776019735526833628191527199767650285363449878289571237462953375542471677575320293126218231608449062279685226852379641499774986983570194656064199106766041922688601351797610695764055126031431510902696662541418796314462680381349126543869330062636941480801766332407064119605223310176469680210518064126571656952713336712213773543018103531544394107028609515036637013954777831766040720490763595244283701160779199483008557850818666638629257267663842650218415178646756867640763371414301892762317203963926028645845504993181849977067947231287425702741253459857904507688341244639354111196087394745665139000058465188330742901061507166867557625103848582621221292200986274803217325880551767056386316047173133466981738807365823894389054314061586598156682978064796063556395720773654363117210073209523138390685074243283447120598003883367860915748438500593344696058093102279350958221355104691774981999083723184243987954379431433186344579697169928619056396711223635457744466400862451194292272108127454036499179978835928572213145891442563143716012182467062189375876587173551549841522614792602805352035005595854432046982913904070805593571871964395809845144656672503113662419005519117692232305687117126976197866988566638792216278443205490339088166634573090708126541876132514811995654240744671692874257899643089448358622235082642416200106266415993660254454464133089527741996536800381031532602768739055048368825365376450721295352538972020756332184693226752362625042720824434368072736098657060014281229300710020951928866484327290156482798676996651687243541993240141013667502076091601471226763703205307157946163085569730844192263069808429800975307299630887402550322061180924540577941089278344783625920725364196913279583204872968746471637811245481888725644846988715466902848413858099811678454986847229876637099301684890971022206909128561964366330930651752516194774659110008756669021918715380518464766402747920045274413384148150983906528997520796756745432116681707620770580647770025187534546824937089252834400385787955851710223249030405827570340314005596834518314711570787741637013213878278621615130613944492745067445174152901830281223012003757163349029069786341223793938339473840583693668225457083271263250263844692556575947074670240588140301206305909976120119002461424876236936666080649637825277809226956429905160414255824968457352084040588765080444388065308945479291739344810286472707132547569517911121406634435119225813536203120941400854328989349945585078018871731570773859996730441312942146537522797188283974872063354150960313621676600548830280841786639934776676152056570912031577038314427103064466754938447887681257123024081318349326816054944967165801594577425247687833553370782868443946645848916904651322510680835788826522632387080895581159584105962180304955129957476697817412269659169298431940853598567147831189710970345791772971174042469068715675222702929562082156363275500588099464288389912806498504283690785282550268460963165832614244373332904711417516727461999442531587229242866236986197729062738295421964288937370987845249124466519414731685728970265331747933948259677980195349147612523158415240834895193606668239361501942290825119577464040491138580696705274746152628888679256659401664568227822761411035761728488061582648413148824038003070588501922546273228062840700622399125486913402593258587708447190246288336358016181961483332683866289946195259379709046949556562477540026585711304586431807697600818282571864140834220919736876144081679806249380350454897891128537924697476616224349876830598741840874004078739835252882825181549924902172132537526917066353005700620808749771753435352666349948280253164791521219444105519969447768517767157720023145327031828713485910618004376022264863025836709616254769768909839947137816161865287314435504034589118270805793416971504281112481870837293380088752409822229880437118443068622768491310304574943061396205169064232648217954131110251021025386257652919039948696360454516742193082667564840681968931217464173955851691332217219934497956638821165242896343853624007527389454292935912977910613977442623690087752982585458285612016890201222427392188905399138032086444855394655087081200574372410926507511165335646318742717991139756238922445666258216443777940532179699594567867623643940004376381520939316661271224210944021324201455729877735859590316905083627206723495811486555961496768929844940248474457716946614619397293458838411772581025464402152733146092446902807617274714067198311235602704601854752730311674302485928145488457426768523794602203154333448172886219834346177700328492328791783943237738928367931658257107426843926393701763109378016808837267883154782131700283809517021912312306393116627266123241325933547535188463217330227921805281421068923039600888419156018515872485514422237415763246157023674164183083237382772049898575288610762463824488503417725282004640429049466126900579637784105644411902446349382502925107880835225470062475660326858599341868670469719678929305236229513107724939662442314291047686089206839426461015448454022662742256882561840459647336281549265271946443194764067524201814164834655582284421126019073957763025486675967133065497148201689531915356349945342850679520956577001108802112292569385379143004103597673107507882785356700004650971460136737927619600974980737918503362374354946100068697015248148335030284288572919811563843506611327609448678162526807711470377114518126104575287459517117711349110290887148931012946598980901997866837118754699904282077373488878707263134524933100925778271395303396102481048803041862409394002888218133023377500236164426178410882470227351796352514632524358560662824479261836227036899313411650199405917739886815632161589190340514726161894344906523769506065652238326656189803921191752366264270346605378555154833084372079955038898300500941016878654357156879773541093788347583140208897555431087063937048755040483581321417623405893172441227002509972967150760422671827747823825596845915507496604134196646322115507971332093214422984767840078533942441211744905329000842918364019235821543813489362993676927358569159505113088673071142187699258296975402219828137967754620122467638435786845306026259584644145640311735618635762211299853853370649615256479489922564864684800096548497860891666622452620607086673634722153440174071843630398962149480822485054560973346204701068637825620689221273199575240487812752924363279776138623198425509372729613919914934117692924963069653141940862539159419345804031760875403579671342539298656726748294965137527516974106542301335146484817667611264135150112349965019556187091688795443969686703678489100306576355355138955847171966442460304616145799543542033999102686944784746396680525396578205501950968121568351565805772077248098608612748757345868571205434360777469029965750067376126999085055091605112698984944736796235999937692098183606767843730909331017388988081348170074381195624192523313437456153694228694986292065464111807721859730268398186916070458491733049943037829488009503888232354828068441103071613053921790453223393120842435854636808011877448939265801092493746306248195125683545226631281489231019685993374088972382957416196866970595676376964672926847090114017498717672179627897374464319904476848578042974732797510405046904546677209999633265280296603175012299845810964480465031809522848564848576223739687123928699296871008469055555169918317672193732575005136098002391010361719900601074465190921394279294205660072530991684707328018839858734113795512408359063638818322625546383032476450779280659531166592425784969260867734724074626274745063013611054970829174897412832907901906905642821414331733890396439922010913933841103355361509862266561950673993238461939561553199927361791679720469272744617892504256637421888564653569290033362168139185052315437257532929067397927181649096801734244623934396571081765828488150356694462678583320027285358740016925249656990671048866239115479675111493590369092554371091928237463615463554842753675475077551230015841980686576100086296408590150252435198337307342756401889242918113375121474088189158586345336146809914075713960754901218123706206635978976152077280921617432499704397623405410044350884769752143507069569884121471119819650056563854838439189860107500410525742486847679848826069972589885604880218317713098678692373128483260353909299380568002669242161766748770678852710329308058949259530874834593744519908479171749602077625469451031163449857783776988656745522707612385862300693206509720991509673289579824923510003943865735160475566788979698283521487173911802539387345228278132564771477091929540979325561368237512322992431869340575402967188967771305024193443328401753572158505573893184016320524939891874094478281547438148152340069446263566456689439732641576230276789640029492170013195389712239786457687248822403356586088809942971141482866352292020488998997294672976655699059441911005661578582866270634291406057746968720434649620397415244140397379955413562156592401675853036545623751321121697597554374211890675520578356944861124188916932138182915858703917867593045117552351835998154238758650428639692116990022242755787470463107333700940848470578523799522194488058996459133813345713582742395378692874552858874800697706176145179338841594113447370051564591633169666847673773718442044138368440246065658078329819100088898622183616565048635678152176501086678170105007897083897957304244847506338221277527570342899109266972448815033884143827267062547195080381807202530091265272661079580779201083545010414479720712532326868474646846649384314752931917880151624848524335176696711526233956670750489196446936852582066337367061471082930854211529102599587047805724587907394222103834912052310876055115109540257594604362812606087371330444754180070973775338871951066148742147028510011403822366180747409910547057462896526471965913501119068938306511177467029192129734307365969143594891834141460717866399043040659116226269310143733350317252780450052967273955104486523004769344774077570665331152385540312198507751805562121999229215380845517379822777482979988844467513709801587271423854082233823082456221044543848808760344169125035631768830924532351474759252894887312335110412116715455464785058557346655337496258886911404453413207124296461714366600948289316601406276061761191693299274664653684516043455577836407306276318254090471872159512897608808741355091961970959369355422852251962544086798024938550191680222902204974237236348466832031329160250918516817783375543964999416897643431780538670535678247084792673722547936028725204219829465052320218694110173494533686405115354188986321842546068279387147011029375709861875341315492676344802877530210789947444212976378605310407075123733334417110997335397254138588182076725258341722510827050701240197519805055346199486766058204232806592057261166025461615192994344362482095938408206043999258177610531796120895686674094977073149753699745724264179498010526812282945198252797124280728078489487916570714493950856716999583828914564781687625886509348934660050672226823304919249777910337642056871756065360146670569760091253174731480939299105235123131676741523516026045014294988260789655655422579905182475705213881061652161100974283901381510555225992198374374601306387471652187042687686894782013433751787911107601369222714240383317751238112312122244509413107625914912905568500047106179139099460710517749561919675458320320975898244945574334746196446469547074160026447761802211556896274058380291490835837676422771703810649792127153068715975650718989577524125773857325910233041085987551954339886304734317564773147453422812376001707914876786038384391597297986732168290816731127979421362307261916310592625711304952041319931823609778383049112693545120766173101138423145678974049092754657428105205025363291759682451154598322110693164255655490839238327639998399584285984085931713604523898845802609136127249642963725334867849620324990710193024979035999411399248086131513790080445148251553464976035531733473471067340752440092348367599034595858891659559814621165579536191061464594739193545779081829060109536091263764141824051640461249636850697404498680804308597883603622040828531883379843261018681072539557264382332431849811008974628242389783318614483579878784612301629766170446341927346959030190615350702548530067370142643528451474076835374527381711669811649854401562830226630517568851215441652374969854607397407003172108955043271922996572275072607971001451773297681749519007065925418715857351861450816254624598744627648670440754749199929495488937417069488129336575077489011120188664735878528443172857508144490418054448152365930503942233901752383499295708211345297593062751466597443903082277412752182337197032125837556993068406239757034575093236205108704761450326559809846405708517062295008051828607172565082837048812048413149988782167520160526663378916101426060863620108368092913475434586181755229452875314092914848732239903852305211936326942013779798177952677995563161418614777499736352606423706673671697835938528412848434047785739562126311618987612429160089510790621643200477161650296521652433095495064228646065800152144790420220572085415735391632869773630328573036793269303058374344112754816039666972163405036628112257925167926241583416802476897364978919767993815567962941919649428641487995658750057606599873725024347266705822666574392563390208004608276897140949537102803987110434762657649347227952730241678036022708740220784939013799395050042111296347576672579299176470888079497341630407103006370840613128637866497935769932494935353017706701998569349996321859211128170083584802361368143325013256555243543423710957063710737029751036239071801914225778617109248366095657052371754938873862442221528051094241158013064370660825810989934069046657247186073375463767229450821161894953739863178944813048292869733132032770028422880065061782141116291820443829082776314389570682546085212880959217501588703682956658756084659020232793482237753082070654421703662550785312266423640867718091082115428306426534830437036989632325534769398046618282979427994915003713312069472240833004453413896168884196792558142642163125168837277107865047221350720595734646535609461041594188299354810455036311758507800200195780097444355700234620821522746141472286987305410463299019934982891872156265760042794519348097368088327322407485314921867502814542250223595616188371862202112066538137929740921541386039450886282947082931997474742729187977916306553999130925995264852392874438149106040947438958543430635183063653290801062869155347569393720512307329938394447575948100646051197081067505366411353002704933989350300454709516769730108846680902661046305901124032523999888894003177457225873030373205630857974551737578236733361630313303616044718151018491989149640601783631394624173529170776730495093656828508691544342708148954382918474073856363170143254068886856367242121860858215910099026289255728500286608053219035374614658996902332674668283865683769951770438302821998064664108054835953027907262389515097201511588298682678256998751613753099326311869159373947396279260438699729210586491518582503061470039651449651328883436166604086016145442525497151697087238833883872580314783695712906423079244798458698560987205348254108409759364992373903050295836394743013745510353661725693742251915411895616981620454760584369299261164719569081993895757239753400120935406268383709412082381136360583898574911128946019015327707036062413933698506201035720636834337084546121813438655742881732987274454204063196195299120467601818357123922126936822509543759417074822321122365156722298245178627845542506558115302379512841800617748352386809776784747819863779389679068506439153432313253187400510372643762320916760048646355509791282904480325951083337867902731238710254618033153948492813801651107755033840939826624993762996850042387047196886388414886553007377587063022500029732462282399050457417553471001888704908162638176092078564481357270480218075632993015494960890678710074832841888316487548781818427156053609411643898827055454923132140200469240324972705170829531108068565996736227509608735499728841842730674568024405175148029559117038184548854564933885255348634014150488360249348179699508206373675435747448988355224805809589795105112261960054749933951580485919345834343518253756070810846175125709321378587337142534144118702808470829572728347799589043700569744653916766116769115192091464132132723744667460117180944134938160592673533383483020537181249455435287567258749483696034229030368288751685294726459214918736257902261827958133918554661709416232355640391223792091668611479460655968847673207137959716248637924814844840518635869877262079671808684716955850293216864361481007150107860862754534656944490171853609696705901163446318012907753480587183904177560650592545090549049445464583457721950821278089810168828924226523810647237262168159480852633036636068276953202529081012278815157341043865470385976387584573378874242515706981235151235923681524581862229020366613060610375015790078348162759687505424179343723426797781849321648864943342187454726510816711698317318937051815251807939659961034350664870997884535229307670386631704119705317329137175002910822095235376713017779307813102350239056120562673277962382286972961288533216651070021469388315636517172674889317423655911643483650542332193354845984320295916926236640828563563521997423719457494160328730264934174086583934475880510766565870369925076905062829927799080566726806305206403944216382375715046213541743277253744420182675207723087514900179490323252512064022385928032033846589494651067957609576540887940615760132393953043206288269394570655283690169273470367322883967060702648195809630158815090743421438339457789225878543273422080655781292438315321186218847675224726594460932790841626923474361207819462862857372060038122108431219779363112519185405645379937497266154337339726968199209631627012566057468701174776285470916818181665860225114480264085029349654343844322691988626031737411155542860863092987336730761607129330650336280480014834482341071514282449247550879428682875486947403411718857141399588622813699522811482282239946064772456931685517429376955174391842884220324766676622993528111286278296907684672988553455329289239704485492829052899895584362358877817425852035000752737318868759212725120363360013174724540636869929892455421802527666944509267558036188271924214956188298406267941140593641103750316844666756261040801962216200879863884404061883603646013438133520406153645095056047489144513149543367827924294404408723098654637208173872907935011926500353265193535948806190681099851281486076044990446304484684662654222015844443086742903915109478816979926508627284206155158173711826025457594277200371890529429575103899795649458783347130557796306368795385201977656406409551862934235206178068043929018321450940464486816552661466141427361741266671106901450397645037484984862713827028794568855346295057627298434145460566571517160263410735217379173505658066185562104923106000530050417115526805451349724697499395004603050990033996109594735457167847716209444503372352271677472008810176031601473062064010705730725208972973441985277571375223997243081646014898075086678951198488154660042146230530406986755834060444949538334310972636114942494518997717736191380779498715548084372321367380374021682236328828081227302564743921973796184565207195981403619131038004388324801543554064127404102894319613011957245106148555902099426928642300388180782630168021421854356457734265957338000158096008913538041979664161803323495660475316496567277584795452348665943059550019098871869639256171444073109735483788815464374635824806515726916517918630007807695586370431995897485605467058056250936048385389448016974518983655681138918242553676240852264564610098128175103922941137189368973669345394190068338390134532240434774543213084709469692430639341762926899094554185035370969573727040984343450320837783573606954811916124714109303106264430643892136817144164443762372024986051723343933554123740901466719732582722020621982454047184060657293517895807543373348610626338808879901006901129625893203514344775383653574305165661289070332730015538180574187276034972204754749318051462656424625254732188894807929320295070861280003379221246152143043270812469192321665743048794915613980904990035228073227492187188062261560962226370752543028279037188483866941799909824194606189445835227360896423149832437026332526220311874906442773684958650641999514961621218075684378787792681275019672482436184553211904433989378226111569446885685888400245150476477666583387350802221708996308731766676350148812894485787746303775556507717353074824981067303237471534841092313887873860181460884141347075455364162860986560172049939634910023655668925691583701408933999761436164502035392653046753564646527965633086466083172784993590462636490630619712444752694023412913718740079069365652911905015992714863364756426875722370545800847318207253718553591999753853125614497351019661354547503714509133324844925459279116021293026953347261236511722143937112668407847887186648963458142981905065032497031412632110863251849552551023171537271346262846284100046091172960951383828093644823092734320656796380182073193675227066072905606104371010487599981333539384404474170933568153584065505519309587210822746759171654104467851537188943538066811576220483432397630333734053943311763584870762953986014362590993107552085574586821682909187869629297828983640983389081805551736781022649189887698067758319804876103359644400621875084041758084461813121207864955701611564814203977930178846745358156475812766322091169065876812942962313537443893665517982474958061547499531909775473855449562558931289638141578889139458301908111527823303079894777952463725038194613066483111440865030431562642629036462289707435764464767856942955789866571094242610351723293836181453712522405133596174849552695082089059862132338843682255884199728038952076078651061539318865229966761508084715607109618247131469879192436243507429827965880455058753820417587126107935591813671842346807217446801115265437992945414090930335802530017783529705698340571234024146859719048762236806143899174765324849609529507651110075690796011789469147122926921948686341895389741728395867412280118522505631629238898418658401406002356816159311399171320156241778339835672180353392509790999602993038353838361695555411762748748687103138971528151016209417651147830067459343920214232871315827931441542907849774072218689874455488178225171551807734101646513693137500929049121655292345846844548606368668983030364063460370546514839478994940671174206306461779750932444047524901718390353569924527573340039001987058962622155636848019424299535889239302931819271766394879634857817743364296105043607635828465105032483909130491747396405850170710584402504097370273795309787500302197179468931334087560436609125171948601503029945564455143647794387547935474065727390593720775780687036456374484224970935722872739134090807164337489759030419587788471030172328854688921104729034335092101483376875609585694423225483939615988122730519453349558008137236362244990836213659537296017559179722206343699159591023137862111818242003224377989344920694691399942417994116439884974050777335309659627497783151894892580463809983642129261523810241260943130009157512434956838817126961929025568344350865358028729821415516608315286273929338718474668988395203016477298375481745030281908612332767058224913500342687644690830545099928829415081645319128963587276423029842864108779439040515163824837400196651770055423905070690190289051124139654522876055993075132317607216469892038752093840316184886009899553617240885620113224668636129983691775652921919800862932126897790684015582061223498621114719031572846106141070564416125081952262470841523915071486053528908371297480256533804565058586955288441752170039594693373493601059071328239764950829716171177219132051748591265703045294829440890814208950089441012358648094511042416700930979025879731695050815076757897441429161406657067685007085947111717815742769050634840790614778075935112410195011100827620090696491428552980480344715288512622443616191320801054016744819167988384021132284645010107631353023082169286654273347760247784459478586080959142216554903503362780072833711836141628390163858863227559732028455792528698549535133105374588335700841163785743918354800903917490193960050970003180006699484136197786931351112762837235945961315012968482855336641200966880303730111800909080402820897812259926973421237267188135950121541800880939540010000504985555159734815514984147533777938370165150827458246608774225503897720870121471207745260596832677157865070808606509133030261775389066640462050013946608085424132581883029012759252936529631209569526581060774455016326599092637951374290902962493703662647054336178628408112088004702374933653514734492395306640663109030482545513676135539750447090677846354913031452320650881239069431618782474107998828868763337532209576407385947388218248565548505240780175321760548012791174737822311963915166594061171060339966447817382944811248860454720329900005415260872518162463170366070797986871688909682412871383627600930515744369556869071112843961041692897388668385721210616145937353666020811765337346539935844841951802955145692693533693388557860112717547361266871814937909803158563507933002581918212905024000084629761830077303078234392335995308839540155426641628401623731657696813150836273285355200027249951398100522765386764967978634125076619263474434585472390176671462931371640069647747112941720377868880341219419582065851288057065865209430790938496224840382843641634894775175372613296309498277938435396320718950676872370509479474014899044668037716856318735434489412461657448315221423975091447498927929126963021393557631457258037079401969221233563275165061395368490324781026512160786440805756386004848397481991266172042411387055864644126966752531041398917571127528989345899351329997462974093865299004544522411234119242858461615859835123384073361099634757455570736262120743213560684852164583648069656534395034422947017017948862245692188755251185564594102332976277889103501918750487094299608570448943335180945572108683996765513655008457684685052541253432385042788599742616468827335112978990529258645935701134739271533245129614739592724941082310336992370862906809606830960331252625874359555600329687365975041165670459127180739475480274798564944149927370839033277623164406562676845781245288604589722719340761159164154730835485869504707971885714796960431078307007626011800913452700481013898465959612673654153392859342150016369930945121898266143969089736780957192438649491050252470827602685420250897883482613048155236986406665597010173419867349147444557378150383850375222027521788739827961040083265524844335005032268414941584606204006340028273351985801929479929508124558608567612593039875751081217196623287186984511498772508978764118801696966264202143357531278050657800541159744767462573553852880536247740215726294699378586764052957632546347166024291942238886763214143920469551982194420045729606104884688651279780880679946475932455478038865494375192104532535628916917708384580714658199949737918458545514000703274158849155342722446757192632535174079342900551349286171209891906140104883160102544557361618384012276097396003637349726792209758384244035377365914804515401343585953789530766398847243220964361808187071688102994102651791866994651629385510456361179173913558438680134054239343567567002949205078937613585253899361080298562627864391530374190579817524739897642307082801620085787191686605970383529087256197838163182833148159886949823769535977630364166987824209073547878005517816422762994256483759689428376697464896909373830393055990232248085364135696583350764570782481030535390493725971469770565532443182955638473865839185856979506307341525457432216148981291495616174058197837234673927375565251643439827502864801459493236002519573635957216823747439260995587927767264059199428329945164317289189493460264020681482765837386611613244094929859882911125069539448298526454940972989142124817023938339333447649628480810304437014577643054788811782288494573202229529308934905923473482185773091372284500454316698214571207063977950543090954949048462372069867262498846508825529769699580018670729646400257654659309285595295156260691734166265878322620728256411574778543805338769975180833648847500471517707471636397988544662347757579498649602655324949003168080275521428153005354551696207389559045216602299832868288615380033921566555547416396868766192095074397279375592302276811487134944194477599711344267175485649941029236330939867015873818392621312114313398996896999212621940413416793293543158258144675102244754453760064051327706137919051011156520399498982882318328789360754930751458658497188824521138621094087694857392554469509534978779128645279819263453514345811680257876482086589711492833760317967471624396994916467221418618581060755172621901600664890586521568822455192524668539131004028498862691952198885012963599732648184132753938043805044313363050764198203962059774644693422311750359956963070102655105843239057546554788541545178243135057566224472850542542674380566041933667895269943448423359663531521485533386075901896295001650146201565960449112422841179403690370332210837389880010068315190341029783747312365353968767527816657962721128002822987320755150583700877005651792248850548502079789018388675229777640185041920234574225278205019809157795377339036448610332145269568307709122272045645135769004548486569824115932364431349873879422404626597142269978580402589874870115042960723668341770982906179617792732034814103153699188130608990207243111981157811786382204186775201647447566701577793850513310791872127139486464764299240274274298053238517997337183388465200360042185964831499632721660796801731068040815464382966349003085979338476781729454445139519579260124736363566292274501826375874445005015873745613186711306351321039618258625953377706847706542228953456664612932543302600064625089451994239252373438056155514474599748803751616208132316346863027510382992205070650837560364054581735453082144764124619961622854860403303499597034296671616859720786279988167398498154345376500288395363341672339482333615427657796909850337977987431659730786070684991564840360807711870251823416506987340111135552498894710115418742152050703081964487209244890890052985289843274263506839128939264526967033581903845405780475588006743109771128118039056135551425058533750327643223910634901986206534363642880995463229774109412394852070796177154141459612775518646644094669117624280668429501334262151195647228228397990437025767265040139874749035144635740405997534029429255743820586230614237345817084591549663546942240176367725898785269774598605369200646625725000178058350922690522275177229266260262278748543147431524583765119260917793024401405167278285276091509238621520017161689106454496962334606890544207669130178064809106807893126240038463836161462744170809272246545644386997905991163492135596039205286526526746963773694198091195762717188894184639946683912500379114616724277234872712430667222495924701223415888658084740428592650694561574297684628370915878904221823800227011065140537706685306274302542267419480547921168254317382573170498227389211064407933884175901354871490679996716618463702512786730098822001160766299815584662744437769422268474629118692390676386582283580448667953685079323524267689924395691156188513525991664812915035943911359025071313271791416659669854996224779106771139455337267842249421999623047258462828841070745454511248594122006523856635151581008588988917065683537906276379895109820119955249395483152583462798221770650327210166106323262797426982980538310652231098700670871977725749120274746967994665105857245835436217290779513890089595865573307507831050884681509320229715063873247417846427831929691522288806120107631737002534367204538060160205874266216340514925669617942370390048919051178061448885305640150774027270634077509551188424542886281582614397116754656572165295487689065749056768299381158661189326103098750692221631105293165985956397677376281948600390353243939795615917581491778019877302448909566949384500947682375315698814781678029092596372421390407938540922025315466517882363403363496228704193263922457973073559235017896370578311224154730132168213062419743830283255337989970753248125620543228092149106092520441671321103838197667343275289096049099243593112317856412205579388209926512338227288502650574920080159392758834112032939002160177820210127280221149604696455803276860710161642029646086691860965356177748344212211072807642687981124731922514219628576557485764554916904111059905382199357909799866830294655434715434060597728918254701010032919091536602155723460112254988665849689276766698710808891890546446544799244427465217006870793348048186682893863478717090633168448421688460385896104611309966878672141012973935471498741371857882726209079724645758839066398914039899035991583605553644462878220914353696658168535030105821692106392035180897565665899687649312053834550066333521471498772256681541296266767110332193319389783884965220690174817547714515524813033611148379468775403340610108291522092975283579199244471022225413342279209256118087333001852050368790176583690968760786619720144236620980350338493961131994920575115801018787256817850458006744493248226597843040698084895703128695884575382669661086829472269180061325965036979548697363825711871775596610172340577588064812305714016220907062721883374185287640644102675567056674946491027334749397103925747026489761602457266421548622867758288626696127789125306691671248783792394091834099264700764181479301824742826666174085415919953735672024679109601340096508561467545530468904035789617451674877373802945132047647640002919168388632596349892290496705070087278297266084809519842422683828764674215159794773286223700748554072979176991738338249022173034052473294727741279227762171949938163281140161065296024855013638354969475053726670546202851126268561222181447483538055856109835218479564336102013460707839848587182684869111044813395735786282794277374016656370644775846562811112432894189089074174862263771361773830488907436593182202951209355316515272198772976642836086187317313948398407179009558790212934532635488999683716181638548192271565973836926699094908498823352266601030361686089591450797078569915727539627220241465643903393192434118966421526390848956863892112930896065132440483822958365986430464844448690599949720160249651973378395253155548212109733377947637483087492129326360532811767684175262405172363827647810056560546099464850213152000475872695087704003334078576441113165259014071268459941099848299382966665715118489174254703525192257490383102284177774781985983765960548045321176253525605784408658104596731030569992355533557301697148554803121019063975513530291954686523897110928017870057693085409964797536127657303154976761265021785383133073765821721897415064599964326636784499672833806429189181765729520151691503036011095503608869670517899147982830242950111088680315783836989770251052361198890647278645942060847532472650828555504670889904578020220751109695805286471656609971012820420546354369401281882339022882802378123976451567893923058800698391856187970787498504641950103561776718722958746737328657528667371802560998932773098240623664027045861085186978336302383013948353178539937933731456731455909990333458591615786376499961900894521714121232607901223321558311272912101269801968095763849185991091847108882972598819561252660482680149860407893220990330621936350311585764264865913816234314426668505078592441092848470179472198326975985310351499161172275286864140747054269269976645425316945845596663368688492613304610666065921600046121589569445656381946843022218078435648549191563061407145381026101431188353979356462630923429134104163979282984952520527694587548112577706781454256048325526920058355130129356094861213792551821980172305310658676539085168692246976330221734288754178037896602074643850590388568211923850714226023888279094865371789158095987496153482493330804843206930603795388011397726779883772145000400492611087526451757058495306833271799791185586297264291669541568888322437571727999455799469782533040974724591732070379035639947947108665794425642661948810182743603965059884319287992735741779038893028369557527401576694422998256360110045870406102690010149499356826215319749171946642168319793752951598177922885965435792985908369105528890571994779849340066185151527053263599383007533936183315128960527213452159829825350327818459725603233960134405799844446825645992193556127677073326514511618593621101643332081059507778531065774369973432271807496523464810703091255525648030251788835347036353401141693219445432616873297890430891288840888710654791414670592718957834830363108240391444042422121082985853376824102740467318198970141858554617352225010306726662396836935709620350809362718953507525297655484949294280450677533878633230048710108952214058721292063941097559700750917216725867447469856075905842656040080444559407852958333031409134583978370883622916271111682257494082372762124628325882511664886081951003460150269976787284640866956295977292131803279181793214935530856241291043663699681341141165198910218192272659572168113408999885315780769352220464657850246581895747121061873474719355153401717356417860649116375718794696231104653778181906323954595434958539089008535950872186324974682500463180268028392482626764771913953827776189188491946038668232393963919150451656518034543676107443832328793870207039782133644207328694785362521554839705667130948127891399003779537002834875144382253545542201945256647142310291573101032438764789644426302144426663810092614848457883219845874111920608345493067429636523062322559698126647803324100153179085701679342746392863357546796485267155443388219973101169137105674414152088493174156101354524856856739091962693602522489515537641822835794017472157879689304927475880707366825755457706740381706521898928688958887808316297899371571334872747718409302230166155423743893146454181840911708838433363282185778782097314903384080458960505159341430129117898125528736470479152498245663072178496642322915646270720887656656646486146776960005924971345374221285849557522487423781891676230607175871109870877844722838806562114290847045269607132472717648585949960468863872840575274867502887953229013877991866657268678655952609813650620773574891051262974009245589917516635216181849485226934522159330966936801237378345353897524538087230348105909268561191469366966688108719975051577313270571005603405107516459882686270662826665729593943849045764071265885306579689254840639731093514927709879214905327352280657761617089391616627023367683822307876601502380998117431127017096278125095718146417807132691190419962700997152935664347652175379055082575043108908266153144951322558217625321891670027348842120843154723702354291898729520632608246975341184208560059153031604051530166696783181672067619716939915119862698202804201077401027646485767572321333201441149785786451655848957993156686145581169139151998580190545347609826112759410842350976432302503713207747365258867964817906781059603674832837098201902917222336323239870064079822008719146207838648149551644402886067010871483766811875802661814910941400903090968222349820929583803785822659581127389651218925743212929205417299603542303702551086938428858656806813646335514802940336699081937828783389960803406018369182908655603064109497896241452803577356609785760414564031296430331771437117346951742412802543734125166991869943064491977251768067228296402660038935202411246188584262584072294912156067925046992793663686420622321186173101598461868406296408500284089209554566405117660012758256677482960042409284877605828165653227862557113973731595247610676622994241051798803525172641631196197331970595271004352388450546332053848964585824469673473504321756913103917536107663736354722896321664513661321001615925205651078649648169238645550165113965866147598265261573666772032536073436415295183428304546458316654838501149452122367959409415900079287236383260628569816774575370299077135962543219163262555839747770866189766259061688243628999629021867078727200754442378301747506037599223142364080409170098826168711746579524341725162927973734635711115663569296037885795101901088001825694638100943684808018087749349177896936149526024769208531861334100399295955627645698314438411923569577476357458051261063166728081637749683068511962785062383233878356215129954196339426413383131668530204743523381218808426448437221871993951367529698769008773165813612825648000256353161073731846068460398689048266920171103967814775852392017381741154067222513878978853745293534095739560305572113717414361747018288930113812094027070442445165542477583444677764660702396165787222627197264789775937363598912345818433148656240055135907047062540468917773706947024956926766272481370361690614676709393170327016321864065648998456123683229151460500520306647261725848612711456217570705828707939098456104566928936030619121754452196633314677242080681449313272866586798003958616061502981853708397394443362369630505214348272807594651279796314568384074629020662994247294566300309578073222647617904039955836299794615216067952788637139672116388336232890284109068784988978456245361886025164374149670021067641500932576647024454209992008891181704592771223678788371530712184690958432195699884835649340111869301842098258936071205348604442528337336944448595810646232006653615357718393509134649812222503611506647419462799622700559799212957773529679921862631276672982279051339329762273996732758834866656449990713406781213743608783066109726468737943275983202701792816403411760491911542765821038543432038841365900657946297883649944110322983541994773653807949095992813614899085608116355114882539296214514812300996163461694536940239655336104344551711375839710901292335245518219263307960746214852759473868554759441975050134050357056543604528781255404232017050762880096886935113400879273721731433742550595612975334109168953312825022325379701501202853603383276369776940245529213338716112454381014676480743783306840117444917603192862308089261925757496258382498474107979195995694924319536252345297383390793114362039480422459320859356166670435879609823842350119277370504756459478228611263369178584310047532055333181414571282694492267587005038149178439337539022524806146420129350941301104973563317259275433645177030241515434930131842009397136946798371201869073353483019344138880114158988349522704336699327866004792927900217804338503915736636737889677558793693621301476786330630838804946412746019606229439388435029551722250146823646115529712197922133621380264905383844413239143813323501295005593210074091052665723932470736402269006634602768124054361052926362513283924880642623999688353127624857339589114718062012842737538490852809496409285596667396659011880560806804413711758486113877960948891506264984774543823937821374832640253335979232956857081482973005744954163923074481830197589853546157137583111464649870264457499920416365818257350751407644362928244245145110813136380346818331021555167073140428525852127455183699771218404696248652955870176204479427340804415862520533029399039164312052613015471816161319438973458639796055592202426661245028221387232929612065490265575895944227383988427015755939596729922626712958932295619526469602099394070033246398913313099692352726997581242470344283755108990029492622944889057507757937798144433575423510200116474779818906649535905503973359241464133017539817847121262884091236380926357331473675468054454252259196175750538516104557204436251113495527978939978087970703741367726361839802560430369136574198056547030349030811557313372680706711133506581883243456392855150012438252724439105845152798971982288047875841015452325112365591983444566235327195533640087215643730578185286849905268030774839899895285076583122697292271227362165904431812661079115579298008602128573825737912884001954766593656753917515214108959976012494419525158370428347301668777000754950199657586445422695922361940251259755751614334304386439614057081561212532374637730626563842424561853970269390662859890088961284476056006925285662083767078983349054095983677754532347096884817539100807099821346835990905045669187507408738273639517082491475900466507600560928984278799031180806807658508806824854145662712461967065564972156081462346135109783757715635070016493349957145355725155786037647347721205085529071411021559541577800258110749131862608312462371741634650187774237830134834017582122169189738230004698666955871910078258081144576379675430709276868647824735196761963994936064758913382654859669481638939900779093813652445678841428197511106476245792026026286391462611517475689235768503106946346315403024877129166084422216728121456115192788699276733951979833035848066607444679075893658421033662270598735889172531679985509639996108339090946904767309536934236297512030861969451472640928174165109242623335286241030390753407095241250867226176128617909757786550557368376644117412201981545845561522099720666764074191273966231030176990332559326521995713506966803131167322877009174723478014057614306481014774563953673470519862956094320771307071923827947625646051916839918638896219339513510178388834043362717831649936406440645380639272913180853210619233438198337822998096124661701831670751849503801902244109183822187493894689326541486196434789345087080513360026799248216624294403523358109866364210701447460207027875992793977200242479035549964626279555484895391981511158113983256881661750794040680213039909619009546483353274855396687089730958666504009897672404915139796436204685401406507479659368171122660292161370346805041450637169194951730966994839663528217801369641722530413045432150868758639029384207524413910873325567390080906002170540682353314202817281272094294888852553512651435942852748188771515681596433065864137744100629743408287849382800346397058844730371041258972447902588098727316739506902119670804942891678507795346088041000405458696493602010118164533465077671046059830579549800189129798437004786543470772098166596716018158745888039652269003353323447356127671040164592182370553272337609456262928234199390302241334831266272191780796231077248428122387044784712340698889946870328734884052671584109179774891471009347682202678546024541765842320451028673422643178280888341548940132955582248792408638046602381484688043614805867518346257991947154401694863353923406782379061271487622372176558955149417119993601897517958748946042786436652270901305370877100577904711008973322579835948995777177501211213557836533379584464677798389604122012985014548554779117415082002156051827721735634844156339511313326521457710116291318038207145295403118019359373377762621362700089345878232591784586388101993722916625981367114508932427646380730641581067888020340257701125007941365318436396073481357172832598522386737166523771265248558449135291756122087415190506050185334819959887706451924806962549714158791765634521853592166471961140043890256414234442251271732650838520127825384264537871533949474994848574666663637281819078448949576823958173936823053243927931708289053539060897321879973147016978073798489769938310457649858161436473633782136852069771225231188002283394483651358692596427699173389439002124402083933546477598179750387802848756772260058638193848396421168720668216043382075871703485168716324802408185204004119059391315872442178814670511098509547764480312494458576748868127576979327760368828271339360323658714854005069548745860696143008690186970031532000791335873360699979309945346153202663873695357433301536384820748286692254145602527066720134058720719162231684846785192439153643044662601159888184855905560109330942242497967773087861968805425964363779248464771935277069879042110880242215748673533978780250042079053104742606124954119553411227381700957068529228914328393072705106201205828810881080705364284305891354000147125896501663610084697719083572732820019320730854882888260024299500809949897052999655157890355534194114202183020316507309996665830344177321446844835389404110914458144994506026083700669289807958484724190953589171990285985638240085749482581192967445952808552359266686860776626025853841024066537326195715607861737176319205168588166203098436223475035035026715370736244321464388130536085457772174628814051216355068952668190624014272017372502261074778761620559191336660924082618824410438624587732855138694147504837637584764963227958189487234811679581718138909400304905611056969431966411069115880537149997745377197401368850196867266340047447250294167539038724718696842179925161623004917175205772974094687677991846823104038519838002513639993523264832559732865138507514605303907661726163303894849858998042474937169971270372305208771501876906263109386274773652236030049069584019904415008144652221153041900249551832493381209102951348941134055342024696328415378711726213952496461638169527484443010736325866273242552329804120904430017715186582578613592883660769381485692879116475433717128600451369586229057181732834424381505842416818930976769102132037924893505534461084935403802833620635580952611374908258661660908617012802583849290384445315452199107230225496161802869186060758396715009769346840302374175190203635852052476641025721297746188553778390481882577412109447123763670988627371196833477157712965154091735216818011221422274476719650560352545002468184868189219374265900812641467707929349030188160207370803833231516470949869049664936843009424474568034108405472366161868352341234025934750503208529241133218239577474963586143343031017066404122720326695438191089914942450230009766781982234782987456997757657581122171089405438893647567054794424311098229763452478724300737051421955836781322821523289086620884268143036392739739137389770354297844128957659956998761385339120977235344183929466278610198419101774565996151017342339831695785706651757335743470470438668244158631046362896770564553397798302492506118048061413570722447138871707692751641627078798245939965299283726223447140338837566779695625854927739952492898720154230336656376817491753293843786665034610054141347464126951673183992400774864768974025310866658083598367561496158335496822544652596575511195314376374330785128720483550343945246978635209745865690982681359111042039635459348391106366985957711778182652088457486856003655239435034909257751367341264865220619070508962063476570162291798066273402277048988428289803146209967745792552669771034478707146054842586017271310759584970010353075702755024072389237618220490707292183641434222033943161569182318002643758970300695032241155252020210855921881530536597447868277405233249931109907637143326276164875491982687882943784109082384227987771989295386031189472005401971419032215853188897551630829017918484456456320765731590591464063545941422859244704368327565865941629045992237514090384852253040207444960149801536430675198063763272013205226067892030810269952990117665659831611539773600959979802550803334454157442301638359148947330663767664051789692512559397888094708777019083295750038930233067490575981254065166631346165455398058635929394453797909336906362009615529232066884470413786846972635265315969569291694809073586825750131591231629096972087498203649665203006453228435699423374916624631970601679197668746603132814475823312108920892196153871154476166231475491559125777691237744856485981921341846901867926652395024203594259668408952702943526740512218826952953692871619501586960439822750330438774633611053942733230619767625736480435130311679809079711714989190962481882114267134579833670099875854147187063574731043506185272919052741140911793879825026771792620125677726249886629394709430446020455958662054498221751010518767248227163092985197573383581862444071220320428520961183151003401683488405237662385383510979271411196196774846966912652505462524571805781054229280188629671469089647012713314571004527918068934124315476886050593500333601116637049798978448367860528961030578889561337860114738210164057670273057149747150171173882420867617195312299289895611914260228287992169055350788169499244057966409483347832702193623228825873060348673416043356120823059111811508550043621109143201310465917124530169871631022965845770094744278477799429968296004972337504898873613044315258646771220661586502083524809474968573702322797956362647730045276956729087569891297964858415090398841732884218143239233684710130580678794593442707720306064618755737375770221323478448578829714472309564675549003885117359076618634567221584600109471151874336668601818425012535450191444451297186256771867188965217679102970814228778003409310961952285220384263090531503390105534636938318476311935988130142417725735818154219087630880193865617778249617581282576950059741802626749083845320615877367446948333534824935005171180120715029531244434449363932227583344539620501722471285756970766816812620977061523062035207890372411059860706985258015563932343749597162780570223314070756698803849526038417779205922750759571912783901587506413785457092573709677779837828340492047952152055757328147841584084567287443979312116158685385605049267488693564203126131165976947204858769435532303284160772856888494270685231347019849765061294586344968306718633982794565900993598252726724729654591753527597615494111944236816378647375914480470662124158674014803234331873136502392030152232559014847793999020563832664601954055138059167992419759450985967639602950244272704410885139503960687705243277862721996801414169382173586263293888950560724402971825847204326086066755220401606394854564670122389477129319186808542931522133749226494080867315105314813166975558921343610441386403984726384174369029905308603129859789748984320570694783199669666496355831416231756785905411783254064940232882242826368267194894683201077374228039926604853437607457635821115525549654407700800059509285115247473733931904402493925997949014105583203830811769377402612328062989007398379232653740175616282537247726976702458176322812033597353269506809901840968573777559583816638848549528380918496145461725405291455049817567828435913203930489893101247444878668888862970592681911788274307692214349774655198514187524195404974076244567442124475099171702604142191587852098942243692256757952323055887987037544571144170568263054172533447280244654146359940151500756232810403361003421776317861812377363418089546012023473764630675674274454760766939530041815512375621204639937889772949797214355549436062001099525551372459701428252763240081714660072554699749699178181857486689280310745259779270877746107772216371639893461480426949011832890105496611573108142359390443688650687224947352555412721425269935969387089064222255623445877884699700566876749172966935711698795115873206896651043435744910419516163735213696864081035608961456854945682230325812796123958779537293077839041563863469592729716377546187258950261010715333952069011891495610479816924388510051754307407991969750024165838953179984056940640447909377314837305711691722036120566819125018667886107314851843090362724187386833622227986132447726782296342415140660144375031199357311895046005220409610554192287022151548681485862600229852316138536181866640650340752161114135869990009169020205430334883533706597284181467592759752566789805366281581460241685972154399872905763048793979671421259085888203556489273644977963573954584629880182877442493858316565930466667903934877200427738257027304182314838723813337811519309958955635878844628029423650763902527950106486652470409266882482888178878865278937868084703897670927435909110777524855017312007745532261108255613253450599105076202718901868286836257063789346558687403010093053385450237300422190492420274075735332841159002623418607056941695940846726256239903253857238143810725109704530699110725209170208567769170283431092831369965524307974312462905769377696710296377719537227283676041526684621371181171099759397305463865696246241121119161314915771753271949657480708430097681619811065646033478517536606214792147750444138621001316461882791219687189554693734122609807316200770707387767056370116706806799485419869329393843458177884008265217954299919100346793719360114855561045663629228408957917219766491548670085337241860886079234672188160027278169168911787086812609713195934874358868458079104217449324350871514480666941793288638922733530323199758076490089259861962024863174640860356860728067978891607831984102780113484045544547021770555856943483809731651826008251485954136955254667123060650828501939727965556359082401666674528768856488201730982682633056200003359665540434316950143614487978531231015221956848117112150183589384235544379366857732624655604283758578403062613613039346074743858972982878615528498206341672513000251664392290617156878283395061508171931347965177351763057963585816334601793278831030708432279074488142448871465021485243537404386878222158807763279265104469426251415220498440718785751087397649878631512386820944746863755494301727590434410250579078157263070158571421289310698087810017277805079871607239121178109767705951220566852541067478322294692339785635724354866180619201311239161286232973182024085442110212092640378898046328401495609828000097972525273754621054566401520565819652714804149362646722508607390456938589393262815667508984469584508078935739809030239315139337426621873547064648829257573277167742522229890386896007065659818646682765161645155493791482724296418586546216852741438196339611260969491111682633598628739193392243872013639144166900826333849992288192451658018692861490740726049567050268473535582462753367296286777402404495646177881342464735136353258899254247515781702273593234439276716373667612710859679180642662642697301933032741367272719748688780727049143876233955332102042453143390717649561620891167760516917044378529382993365628618510721523288776472618750267588337355364386323283161483041960708599367551399071639298955825359270891112176866274851943647531182209208767076316595463874787299172214946393516034658709033624872147272739219344912118981386573156590827729707286230138704896993044841126670768569078910714436645827507491121514480748111140128276821849985953029878617014430339494725201419620867959226201310046993690531558242044126089242469114205603138579495709711187623527628527956403200695287354276782022699909346527272928401523085352897071067170130301984440580220200204954886176850132329484827000580689583214558348112531547642022590623044849750893461658203039265837333824384061702372395481833244430387684298412048558622677768898239036628736843525156612538934298373302994624781704694104955884200362586085190163632963793537941963125499314483121464060469830991115771001466572757557569698183606719264083125632642547159265423260286541660099983259663593962368316655828922962658931950791900567981532390370921167188881049470787337230580061149596827187891010899520258399153474638206080435894720941713148874602482028242369886275760517847284309362309976513376563403006898270092985186845125904942638877808789281839385739701634758810512439988558149766263328309227747293750663234957790143806054883609344161235582761137631082019468168593787498366210516877386477044005773838363612103334461141017431972104980123687906808787254432414490599899835479192433558703176261156086461469546790781469813991094361789502224251012671400645516685482855376736106935993064304742602752871711002386849392627373567274336376635534991771179440192996930557935291309688439520886081561101927544550829669439195207807387995656250259362287008000032823202448070817931272719150785582248262532999461729539441495564680358327432994937461493826383441082855607909135254009992686809206854068782868862851622401668197628253054253499413405421832150300239982039294402056157279813272137071670292818510682163538728949619164131730299425866526411597544177480332208757567731602139307627441357827189774580402095805618724727954579253970802055525975472245276963921513767172377719081492205253728576202175206645805124454712695411954617073011374560374647803192325760838869863097974285449265391501668127899851189204562317332291150959709349876452273748231777801039854047114855134361607416790315189817971638476780000905693131792780566648340650226545637390739814641646983047763357438667665416814202387159139276654593399636189877834472612495234461704145260899239769433708287819636364401867316715073828666879861766673609596270034860725997461501965609764236153296165169064663373250706392799730393447434337342193802407222302120815948324545292073304906239485848289782437742390678203184664634503083492781251068461539917058427681335382727182298849268598061942309026322177228255634269238393531206731374622059509183100994534258283020916588386893943603246276309560507669710646621609749850329249183046316327734982383273630537060454534504658226620887335582485925495634639891826535268577727132473366646777689390296985824194177693159773941068856726958360173938567691413665354719649395382711239587867574161417596785893632242999051898640405305881336405899714539604595008721616006144085215857732712110411587323449033192132952033039841220774054609949577752963789874363478738186400540955275586571742507283081434418582254731256525986056963384948421009037376627232611120624966702909840545883565810401895052016461002562730532159757083131335968453899017096162981228405525903810162340814182349859908852229093100026219714202695836614505844718135803004971586787178159444689696149581622207051697400567965177893605450500376657764701161338310254640557001376632893250806867941766989263932047700075682531568898126462926734583869532043213962462983831663529207080095433909990116265461969657116111993168067080584078938489375057917664234622497414782042810216500653085459329927463246846129308949571035169609025992851625119805289046350464004887313135893602772693149415647684761183881072819069000524582773622918771746196775582234161956995580156730283474694274144333500178332821395431608624627406647261879162017879590468356702782717853879448887818422141812944661217963733139394120392300775004726120945740715647548013158516083756070575248261255852545284733591397904040489542105634528080414428860392982971362624682452684510474929628311639216211370950016998948991901641592071517197314418051660107480514622169692917913570988759082590144272161608020502183535791944416799724216711818868843239707649734152592688577476043832917841557231483209012706995348904875570485610852418156814561655078928966703487254291032309543810465534026521179807897144676840798821221985243456335705860149839547138713945884007144640635811923699735949580934707812214398107519393558139922360249087460043465861247524296913453894947086169155772096001156302695695183869669193809166165857075762508851027141553101431506650347134224657117498131669936487235849308924764871977485241059948119398266533951138517755360861832911126931044203471033991823879693489244508426839809613373241684530944924311341408580302353881507413182500265526925765852075989822153758675621966300220883755780457512876568728709090934973098678848465292390656348106354814677134287674590229552394271096053439530028176514470345787865011253112814550156185016675512027263984947641424067031867918022461693070822011874953998633271496913741050108151081266930373222636914610722189349869481524338292304141958319522637825645369132976415935805352400734975300380504556793273595164020162288435958217341111889757402649917898547024498982609890824271474613473057600114995563582886086322916493411396655564619792799332936831050235859698000223018236364466523138349572471998963676312845799126538211580729666738839220033378137221529813158679578856493337896538003766124114141630159786849625611505028881932694925510477829481013065930982336285516810033626076030348081837751630190679491687653265746227390002040513321835761885398561851430583678750043762059315724193499204440453500194014773902269121629477335942612929137016161566212391474597179319020507314453733733384745480153114734841174520189694885765769552026536951137366935199697521970751179880285988669524493255462403124149107792243632948426402829045062845285345540251128627861768541681836620830156981916782272816240518168804376814088525466332788825393643696073081255648637108812468191541282485618099822975253101013199575957679038826421742978752115970988179514679643295379649608230176868760975821066931179622220524014148186411224518831662028409762674943115995994368225452997040815408204922153764677191641240965321954013315612575157312066839086358265274474302807003453258676222518092044713158741500249908359165920694230265334251925771034094313835399297267994650352876374330600580878004778817156383221632173183541882871031716268321038254393168077642920013363935150246881586356739131356591089114807375476787542974134440130292242602678173849634686555743074332435578656394428120591883830564243973096444503938290416676525916142851089093598691510576495070895243484903364458072486296639349430900661957264602483402375979278274752180530481546879551990276483202965480403442523947135837101261891760296153393606243979560800802110942491059963554685156519618348094990338472558506585478789906700519709010798463123968824076901032434435864603543499682618040887279700846375777133960122025924734162099670016160883069426855772439801356557760770881669311599761631653488841636819823128646470548214707861905677712941704039028122869247781241273681034720411108405058755925786395914395909390074751162647623051128110050441647371607621581371697680902408908903480707817551486236534002371493807533832920562294526724242230798663234181615182508500702862867672929690556987244983661209621864206269653150049963836170273217676027999429466612273384251387842343702831514887542551033867743695328119896094529457691617616433405995175641416469714933251041700077436954417026497190694166951953606524219444950544361417423220156424569127288626358362629733834744165130252052973576321818021465805674085708220217090314029956468547085874820730079512519697956370473585066665771980154644337453560174353049122105764377383660966847175067447932757214171651149303461198680308390076872618537810872275148521463912199844859544295381760935334643749507109924729968708246479584582223133733555415431627708848195266800930804181741772794763777373400956552558198388539456737659356007167892984596704689500298226011691491877539528095498231650800462128210850889045204648762550985475610636326944463599310248512352711078649340542919675289204148844300527862339816784547457641940369209560832466763126093585151544238190172052145476908549161809214494520075311304404139826373863904472848064583627731770339731909881466070835526260603707376065370730457865146836057197238161608526280328201418691233407596041092303272338240770761824473729221090270853946892849771585892956027603250656098082931687613191027742003894225133069941452581067087295708547892775931164198059493480368914801805942213249501217923087905468215883612274839489109250210264504129657668473502394204198623715818614124633065149065072279710951096941851565855037985958525493021470964545236494755189945710567526928091568592032375454265404519415326237099657648693884098918822223107243616697315430543951376693330742843518497875086453607998148499732016202226115466865242331742280529567296346642212526875723532072203638397965569642038643148220003398095799267470232948221234413730960200817461834875339249742717612741612719903527378557179957695482387022095013884853679554123677491445901539526884389898316662391425070420088920549635923053970497824435629086649945707773517307964048200559132886728317668855637620506322863142097526268535119719381626236333542784708803953418023885060904112248026098027634162702406967264292818821990052460794941582333997312274542520059067140113457726554746186633582052420230015095567148847632033956287158442765355347551046002316547903845899336053013490418599251058724683071312944488991487855626447522194285159795923424580873733823977160281189497960178604030557596438038869068678290120724024158329484706875580560543843941535758383722220606306026505291112030618019284274602954624583387529186165507826246055313745290852237348810022364495391850326333042242615566852789516689073309257452957273788029584114122597347756439120008690014183371293631276333138286568964975768949774151538056251301099132647768447021514649455426489373198587266534294236444788080373239571085204815124299640377051812024864017145395605767313972159626288294600790321851388813455953930152360142622263786893655310837310474070198075405827746096273490610560344079755843947311182156287608534594071636582323879887674944396512459146114690400440795847014791652237425168362716163062991887078231081502719476271828802553694843011477915613645605593740663307885081804314927172370059107249025742310137151541658574607126181735625237866584089093766833713891230354725281592252100696396404005008477131203657252883542850525139254815630278389611390717364772438752359838824639231178261957970978228097812337512888395637312853971300573435647286999148637983321412555825043619193641174363012881364303505085890130646633360581270769204836902605402715480117674325593673278309317246742214992463841362970686408641909725566045198858254897919277656132107781801603230250895127438405234146716436464232251532590256941003016053364723421188740140681648766983236570748213115796077963241636546687447928162970708782189368292133415714419706435911384227970081491316754576339854276624134495693756204096367165535988528907281775957714505745869691642818270222004916820884303899300445462486891709505318623075252175179248463456449539958297953643186201315543861489309175051525375111179904921764927370020840110339767618659142297782982501051241800664439984207663157544102321473728686361227323236022080783987159134198216771046638619190412923433371195858188241228109447773423594061751530826705364708487410155676437695049942161730760784107119389466082079711013989718221251509140789864881313997467516159970469670263438107615349567750239874829518082995504066781362916647384781650753424273737012176339668599349233890648375809242271966079872599492166086505262885442824921436281957682019583417948419053494979291335418863141236652293170030909227089364675865139231050022286804916510147323370566728762239021734120664968605118746482603455621362919740195429956001082229051934965458650969129775412984018647378576416792150406146962832350951295572401879840719914261649009212047917575018189780202532106223639196083266236006441050538064811895719102552896802666536622396136053222128062867868111528289275274075278566018859715661575928792618751721227272637116318054114430989235257756362425832463923454801361772752796601374163487564792879064222030726798884527070531765109435026305062082759731060656483027775460990876160855556198367097178123769373048840938222947464768620172891596822411004848146727264381050744787300090163646719551363768627501085858377275129491668582806992232266096854464475974027840713515277545296570625550950714372593002958034274165658743446236171598260987314761929115657868336850483140233144341531999399095237899720707476062512248230540391088717862303120962922594164171519602676758565972415561306387258608290422384909641175129216302791212481060117459311661496164941961179396659181935759781966050068689929746225397882167488422021561652325729577967314122703332286764307354139812331521346373244453709649447428255974988214012140802937432331349006053152005710581895052933331842772369304374771665411339102965584732014998639962821104113799816399129560403137827894510591996123358122864428546317241113515058927860298397739554863744163824962061918063185249810645624288571498651151189330553538609439079334307780336979320080361078413548294210768584234025230715257046387545979045496540527191799651115592053209422789403144326692005591824003132188047863077998091861138252087803579068208778033019919973233791727086970059966865383297451695705557300099883557488586831667233069102301815971669021291594187901516098836748074420608512309492418940863665961732382240062597006190979244352049970176329780893704484510556958444936233553063383038393030803598268682885741699950494282852504530706064009350723662946669259444910147428628721520083817479525108007499880969753311737324223576523566129321175568991423968385879501055677195455114651341434795637953614732934377401557719716742111766266401534260692187784384514264444237596441179528472526438549254654597595352034216152435667195395521221962807322821334927485648513943543384580741586368025873005147394160495462797982182511113796635678951990033032230753579294830145780390705191160252191399452322586273157894019730268924252378747468749638395838123780900002030250646575983832711367035547970588219676892830767617184588684160418485346629235415235955823118458225392556178441602780268049796624703992362214251530224234375851890856496575091168976761844194591166712920393736952417988731697835541829427122389246476031558999282318802169574924784675476249473136087179853996225199412870494157168807180363202564014750000279218146110892425431018244828859853500755294688017355217421539319351585267090304735809843529968749545739967023291234292169236734107088701555847225419008643056978064299693555327292292169448228182309996355504457646611505608829685170474997909473512798078266838174919479852586737165426667844496215687145256324603618231146980552062615196728024555314409940924266093142516508985313684111357298123299576317283778612743270600799409603956152708936221234677710921784733512890040941109196032096324176614187661175157798325807057300701045405532529799730868113071367492466391252187988042649771268713281144431267365231742106567124064093270925383913921016654593970155009446433950372703090985471334812379580454251309800560339181955764061485624265569214298151356601077021472856124534325399949121365586936650503313503412776408633622027946584816717087433441749503514982778541125784865457746602560425834237497146499521223918787885541537713100392199345352825343318419173695179177043690390050153520928619858488594762254242134399965498769150781505136388056284157229024450606719893408117107605910641475812530835437159416254829833019380940472426084993482941036107472431733944046535297566741288748042924560805749045842423537567041094874303955283498274048040375481786101422728839700586464924706049459575334994612245636491374617822915570010091548088463682444701210876998584517875625863960015988586309513396924406897460524459546144513037488080131323678387041037617969955032261365092085127393460382949212414851231921469528796744868771382139550695784578647200369664988874937836052055905264611563022541866370800015604984068398454291077630147324275361585583942967564077546491561771921547536909605085119266067923394741961196351573273694581737571809482118002737399131873453532410145384800539917102868956692280686999442167940850914658043171261254111683036829901230636806436008776374428832688428010110005328968836307343544910405095572890157060277616482192986630762519273613819886471182679099977789638667210356252824888926479511901965258645748721033118665301730220316199216429535687298494864459283072536923658385430108032017059571924453096235676828743764947007974264656704917662874653754197171070587760965960831045101548336542671045120980526635225936565011649877714146642901760743911280536219212532046208610027330496824649061389766783057446297009075195413440105064655331390332839599976863707299647091752189324647482884607734705662914916313474536589007654663257547927689996580635228213835686622005200448755206353932492473721298758531518321589746438531578823675179578561245820287528831874481625019766140141064078648985788574921836063717517327722840906515985734522673679727502534219336652970592711601852949382516506849642187221002493626752275505678232550728905835195166928420106529740084474399457947902260841002464955633603816702884299548408633230430872370999590916718212390141099299677802189011318781797903404002545943109921425476553435440522523103064980434903194516850354582836299124787278178324997199258883857100214885173197210322570226208390900387257572519445348009337294921100891001640321395500992876797769490250444393870707970580149272799513087902921993749876739338442070591685259265281697375210121753689297532944550220232340019943505037234910771566578806921582877289627803205326714225038047905242395233567117816955845290702009398393509487418894848595371668737715803190671970593807763647144236300987687356775393716075295370883883897891590766956043054574482181998464878992405027877981893179262129468333295350411419135583051837171093745292149491593039694495649508953325939179891673866658408909038155898193801944879486493582028124609698053208239479714391303072794140228616797431254690854796353982919466942676422733450593050302399563956293130560316982240900599271332004691304626589770342363068824472057187988729455830023841157812231327373538035455197510150160312109151090531821696679650120641356585665205975557816625025807895404563815767971751302033191974461263218760264951835732811932606904260610977204047614997983793755556622521911975688536365221918692228706663758708655772565882399521779863889571719471292669737423476676962336753657401047324858509950983693227761925985417344568625937129609616989773298698309973284538999021950324175560560044528360736824470051154289285980479373741793769330653428937269059020201802896915324523224988128791432228002015370407400857878069514664946384643950677871616999773961228462578587184431353725943485646496921952589365647435698765806460627273928155799157696551314357765534733796975698679174605569866697256011699860812431684005991824601738556212214242057967968180512379584670348198495978770228559845814269537195807708520995602484294442960299734492694434437349525293944337930971395934636522254626107501895646734039972550877234685609091600768538015540646515276190439762846370031696733018956454384053296067483076388559074511011956469596951894226438518496051850569177774330277135867155904546290342087107090943449257951030624315195189116627120792946874207420880509309197943821261247153583642942180007622136094056355928771419979148338999873576065364080542753634869696427979568724056491865993912828793544686320190031285903113375770448882973542310810922753853363253895829367325175017005275551500825327721900699297626421835504533572661241866385654160561335239756887906714930034649069985519409891422603460140901611741043814022233767937017577109640442010058274555732689041341795550548894157274704600746520158183578922743532890025134150003146827323162233815727232607909298009862549318015834051186200655993322029512054067717068102437939564546840473790813334981120729516364985475391733885365210818001312835342382368778277044233266752670508715819254657049706052010810894743223111047450610647019476489624759779725560068544365818962059164369008928228251513067455071847982451671378619029337278194935682826303483665799858332881920160629753797573119645157936525396787018790231115435697522906458519494607120957125120526900365933214383558340416421085688351302146663418407498595750235026868942260491020181407742052886426436354221552175226476299980846501437825974162467431036872797964378244326961080528268421594244461239928296334603541746554033152154295456606894383441786984057870896298566919519537177411271899116625494918133283184929117855132852635562453840886934230314695021015804029402555929515625328996289175460026281540562979546863021253191219462953192888854831785085783290656092733344623159512405954744249419675656832530644471172886865348105695424079569769671472559203442854535146388629093772907286096711569988219649326086275724531812910631213837750607375144048504608217156474824859181014758372556410079899962625341766490384739574155478824995980935650469025422460861573210582700360025754996266706718335544764227266776032699813585094876910430947780460707134207027932629032106964567269060183977502928894465642314369344087644589897946785092427456544006704465980392813833597612784296003607411306121581567369882475886560150238613350559413219359550275986968242937944232758811088874737496948712790267007359047400268600004283348654195083270697690891899554679507099192092634905198118098295142395231563450251708338929355907780720688996576826370416894721024925092193459407971728102477019030309515286182755018126044814614682128091051989947191187123801450343387982384815967985362186082707653407299070943082069117846592019907768090898562170010469088479412745691858926854461984440423674441594138336516474996723269543099653630526081934643858014348915784543923344758909127140914896803119733622110311771895952062331354523614104091606229977526274644671376630914476336408206165997507150502675128547465863747788510382724960669185000305258729984072864331516779575248412431435245536737532046493910709604367170953936065774826251097671977023053434577553811686522146686772601885801890352969744131273012845830676407114710304688653071259215383577761916350807487261141643182817384219624027062093788498183618256762911027806401376312092487936422119771436190200337167477137975946235080595469957644551553762826958686316655548055068583529680497554522765140360232078261022348782395810177631473611061086710972764854313785293319140822054578586815608665886961381530461815916416951346699232408749029035865466325877899295181424648103073146833866428403200979139604454640703009844505627205834918569211822882486257646646938190479746871067479735295761729133466453373566703299003243398074338714162673117144535179598823754254811082607728639261517105066183082915888036236423987813429724985441803473338353872063729235010449304546113250804307589477724411064738498118021896766118219731965798211809049700734215479245499761082737286744704304833539105885772440631880271159335197734815118216403035364944347848362021977148414180125280636849803184512815313084299129197804979276242033288027460120897664750636179713368125911208897324534064713070925319544050939983410078384463121079311171173322892430643261442861954405327530555659324767279314654948834777772291894500694791458691911461845166568696878830075746961632661018499344307139080472797920405076515962501236770232199123826607508477231324060268284428574719507887923197912915344428348718406296476863726450014100124590821211893866289612555134324304049483747527272798821939260984478391049709550301994886380009340778270089601508993920274741759308578636237843362882949110681449567861533304321191651558596836985890815174165069461878818546024161106827113112826043566638070775118376726463259804401061598649924361530602103236770979720953732217914262874509517363003228974501330742924330843285059488340486622964850020028978127280829744219222940922429231085109577571849078092240424898240100034535798903842974606503484307885662476351946796473173999984789055846317392939053616611106389507233048342717800896735451020493462103660797464200979217428040234723751871353315235537253788654124373822949619781295172165836965634836821514384901863534254923227636817109860367572532038605040779612594658078942927017725436107208676613024699945538682671293230130064253285934467467894192227944276778049181547357235846399175770421991952290427591861924218119297473271865337553710633881747555212837287277718902617297999514278019350948998414039566247357594568234325985393776388077804982080984181979755337585437424399578066515877799754986658808353202919799173055061195730570761049742837495752405951268813979450109969119921767236722575071229503353237782815386275919143287537567577304394832648354788319869297162965048847161832185370129727143330969050969605096451565157996618432724676336231175353144496883757795579154772089983349769771858175623225467847039370917811193595316503047309379084959761164856992661762379142543386349476122346533213512073170101474137076812898990822008951130919944221282744915532029094449214879860662289792838382493140463689359575341136089759356249789583024775429455789432951818439914200901090083133374004507055683206917819522781690867839689766924049624024624007003634733066871450565058395663605460574199842324948567720440751420286671737197186436392938447970207538619725013723226186090282674787430718163729623860718901412033253618830848336633303506334790802468526060506638927198172157256894983688814113239510047472534208814625639927925931075649634684368835155348831587804419660370535325506142179256848226037221813261893550293436896218035751042139213238403063440309937531139072017969883966212252126119778663569059194499196019709141406435000820361227469641312399163070107927840470904068092551400559961753641279363694740190499180899000966871718512128945810929972078482942907688393513874731539036268838164415629956230636282894725696770043015472198633710240822198432304491643944896908338158727881478465113309605089257744767965620375339003210146309247536395593694986397553256940350394890077434033439490322592508083178348356149803505107318786965732727724539305283155898485983039988993751125689541380484485221200097412914057610035220531525796007744959854326974825733841460670788738718392994698406829192116950800800933951887085069146955058198120824307754733213427609167719975514425915504171288335406096842914643651146597023603483683523082668737429599235088862356445648933998618695388354776005888888154856587815324076341659705705001606436469604925837432600040110292006913860724465288687275776413919730678469966335035039686121168211175775762724539575371618721955562253882029861791517844525513795388964183828360825845360080836840245594906182702950761694305196242445088442969175333367230642916249340901790919437476822572566130400679418630484757069417609169074604607774257047485401700288773994884975725971290459895557917067639981372875460155048355541563094337887854673924523033672201681522436118509497379716456751878053834236874509030672153622387093861604965811188416534604390760818991393225071046603288742769517140817313016931187182874516456917561759384225449963970492959718241124572568097317436718982995759245772080881797314257324307947003117042525506927000366338309742063112724034917501186723699871482631490345003448245111781991851675270596992563228213397317815684842063322646138750173448437572132074953200991548845636213077035472206964150519781839691897680055211295332956743895714050234852915580350646772938319675850158501211119927937945952317141272309570395778676180054764379646030082610698519221175927817493567431818260259357627331358167730818278628585339655969940919310535195254731954098822398537446260750359637851953374844543646479937936468482746096699396115886040373773107126773303995082893500602732878886410124781402060871260299472569414569928267255982688496537486789418221701612952301439667389363887265378184477988963033133772989225052957145194712016157735591396569179355230489827524735055350700592480838599401871926714967709694404402170882173929119629103614900192626459096278278882115625774515479822586773690086957414097817115184930901778048902402799368797975584033561782362204990860520620039139710916320034251444597458862972936298136718658621330590246158626072363703983285008749186834824084575302369754502611084330318619641008511436732229405358994876384106846825999653887906174271868579911886435714015119222031581976147541380134341932046816881169551378566722735349908704944847133616301107019864815272812948107170783948187088100853501916425474464775013621751957098376591383672195877467408669366419960753260530127395427704880287692647123089649064385713934631458823554493760639770452303980584276040699046643051079506457867226522807328138382096774149368804281432866393888089481612869696998750249905692196736801582032309643659418595714488655698851141034671003317125682341330917234892358386310136356669332685876563984298672983828797778105519307998901963539570075148697330358698628214297771494676817172555176107080634320922077652557937254527129835855962949317939508558505803789436654972218657892560858797138239050298662014868698896171649756579138140996078026422930552207780997721019603481301743505542342384708935178220796882976201201073570699965058302198385904028995829486335499142785738260023091175089021706583126044034924418205645962965427964872683676862295451842692268523568568480514189983740801636092046563662044919351964552106763771803628804679886675706747190220002651533738692068041713708065898540469652663574017947088982428504043797253344800415522330515428635632581470455482681037618780505489559928640792841909639867701730003209436785435417923522976102994615628604609529625586350919511747315694205868099967899267366680582454196089684165080213058789161933514720141679025445528421960142071997604263272843387236382756056125852978612190039908598250783033651122675990615326470407978475048650267186337711768589294938581388994480551351781252158229701739030299273995997203579713629701209812966414701371536393193419465709248341327769301889186134437643547729676083870854573483586260364168574138444329648951914621053351433642491607190124897812862661262900687351699798513125347637467467954406864545774090759694074094104051466675722785275249407042529059194292595768199869045540479634601337743013177023997219961511015410807083987301944750887658797089449818556631196355636018960205287077581488638649990943276443020683255155790092154258398282012492948106807908153616813976647901499656820435435804806141585102932249573613203045989993181930653102246954627481193955563753119858905078759573888653867252004702196873674164178575606773974944882324775531217775073567579514378055548365433021449581101799928830132041341575016572227931395902242821861127101024952199198217769884432937115543276173719968606539410825948507060694465471528112505153480692674111885329429099072655289567039367172077467362635122859336958214658936868967041698894397465661834849455731680796486618999552904888561450366194526074005655963850175799211043233122819814792324972028297834354671698199151795528418718909992065883247444911845895322626454247893111820349998780092051718716629829987027743467680720971990561763613680537633650945267421805505794413299345281309103252548492313709555707637399743159163222494828428028109410491428575916766616796214160814459413345663804903352258360693647654739517182738607012734918989535325784071779997134600401234115908567339925177240772604701102027950286054014672069428224490661599684278083231451749059301461115862225097505291824955745303373802856884058605337054968936456923595610214610279560973106158813225824076875582352306859669273392522327789714511501686009597494012461228782883992525891677281629000885050232646387673164146109594019029995631452283250597641786599320491579781962389604525503431625477457381036481148940022904311562615491762756807386115530308497443439579409673336387822068424913381409691336283039566358434984366425770513866390172296155522531643713139605618999614320305903685958445390019392544169889464250530760145581473943682332399008278917903862568906216274054192610512641444936337796075120406345367124018307798032497815566236022126141533252516544712592328735427373300197602861575143194575542642755965812451510623884614667349556338014013521717682942413743371856028400924991122522270875763060432349581400674714698047013770501384548352966347273288188721183334330495709605605768469209499685955143323933728486331953800536479781070321100042759860013076147814229676925734553608346697431925434152337003694128381673002376915140480508926745188930789083664588671017156644099291310674283553181127007070268726453765236270999155034755448413210970876707571969543646166252936353836245284873997312990768947760828684657585471054070090506789753268097240017805883820748909090281392564170706236149350418210038293987006596351819247442636063958962159502653832772035417682196742777801577187634283214949284101818684277763502965235778775247856792323011841215041046418911803326993890601810717310035011859427997367622688267306401885440080913999240258387130755134872571915854718693268694475900221892839169608878298339910266920102519781753435460898018745635310007534201497565217044079118922232471715605884530658955870720140492482866205486561450477185139334787048797780511903836544073475321047722364539786050535531563092867432488875337762674082528345110402783253110702965661578092862978505426653161034918655869152028402325482729382037290373301633617244867479467588841266230211488411866202265170305268084224989579099944101214474730419322130172711522180087737036615551349487671035638489521168652475653513246643522059589754119615289729152240763227022071818199972509296750764975206055748843244951776461356638125748434106318845462227799834503467657074427735230266134543820755589636758891785580110781065634677863262299958604531812643165636453055353598857025230357510180166048289564678737231329139686483015947104209782845979585069125351584431615079066269331029735246949239989218113637746379430692412520355514828030047677639474250802847790537852841096649777532010221779084547657979546166134137485007842542207240914376905738804210315457810265904981220086800302711345840515100192515189152089439285220587537058350182021948344953301107376815915183676760927075402008989939932599657134881683147353416011676470936784704051248116317011259911703810064634023720025557294035132694736074734705695539336957295256758354293995911540918053818063717368548608082938550346767615354300610676526951631473124371708576727340589285546774151717312401926569028628882633009596015778107208949300459597241370646819629411736315273786198178249491412078027824327311646171946384959150571523085924163821932249266176467181826547332651702107750521456551486623330300111137617579311626214460592527434870886561879984809301067698238905917112355237277118944715400533132325725525063390386053582462644359027487683774175281053123783152615956916218339344449756009067446516457592764576791436787990422757686994041655153807233558757906293050115347115493036129597948895476062257672089844035405206633492969319055425877225522049429901326079652905697282839985461705661164703604798784889253365187718410217212609155596021345850154006098108906052512145991750295673970715837011863992105984419157656711978004287638934929274164607515687476954239061526299148068156756402566831228916337516502013892143858792113740468290130171534988403753617298880342099341364457928460915519157650349279651941117784279445061305919938185930055488798682470582095569844519164405404069615166273041968726614965096996564293098427710776001828912593808144849493873661748826920543603766243227450879365873216581854756135544922731518735109413505508016983326233693021780937096228184689882237912032734438378070164764407693886446241622588081274500572447131459146239388431461604289742769894312909723179723538385242663745667223457996941253806288280379758033762272057554639982019933898789349849223822731489888631249889733825251133148286667305997057547896017155831244092378564959404226115792541602804062503787343310080358626042096437034496503953156517095344645896076789830271900563031935980245997057365093873688041041938111202787364144150502125632640653161504430557979385002861747025652993339291311658194288893310574612012491696657643194361593440953441359591610954617864294755817596957397521299635563464286712410883544592700862651900449511068501320302788109583672929408624292699848280823366651404720590456456746192615499508105240649629242363651500111337958597197586833348184277918005420732751406116057467379065969467953135763926290097155703057484304974236888785466805069844357949149371663884357695059735120874153772768345376546886601041351438573384741654556150115762352412037972769800652722949923317994534683680229070482202488868420006163398126140481170009850251247107389278034013006296041756587339149458557740706495679996415118576047465059707029281066447756375320001132423370993091819085532856260903510959060565794491574664002448353817319459969061729234956771008835777766158719154093154638693568773926238641012397164038565992720677157082554517532937740810657669987084399239752191412319380526862646291839485259891200445899728359104513800635196968977047013042429595594785956085104473734253250751897169671383985408136411678957015180985481996555078803735027262468802291757407127549177154654463413127884532390488694096219714392569896199306706770223863263951513899039095799630165457264108599574261925558124917794649535122107083699726023182023607765459027538985293379909564296323606184085099412607984613606642316773107523505526683634778337673751727082576019124626598850701584257696331813872885412251384401846831862954822871911286458278511796808736574290302937603088741261977624743688396451882016358022837305568430209555233051600944287459197763151356587208034674996635105391225330435552572954088728569054842570676886428245626725069277195432498021660264049328648644038740816348953358414520342090567929984287859900987120627262810578470606437997754500970063612981633635324698784910328877539232208180553784673957983583152432072860669394320979075379884852057035377150824420587524260940686677436418995527369237045809747271520812575133120175790130610565650916087215083367877925071054723318627300879188135623070185693699945242949402211009429086861198137183223362837237032415829099710591887090045973630860643994059828099536770545380593405737087743865409808289010792814603715381067590033962395274583846605023608383443495496652075014108867055368445625725728830377746300104091646959776437417763598516548971101522726029639391159998294004289816433592123759212992526858441389207820909072627369767774063146687219607573085197286852721306999746905833636812694128634214631091281622932532462928059510929797465313961601592421197136990895264288413450141910692770980722088912782589400253655832142764208853201312425648677348469667681555186849279549664626610925665215657432949451335627830644478201613871493611710451117762221180564119754628097697774729652286926162565516024790099215784112764410479012782264220893804143001806529515487786915062571748062056413070841605034415025018152268652260010111495945030992901321969899082236445599426323846590515217760295004768567275318917540541287126649268101424713505599100183007691756344541675593627311738618563506053249113857836950804962893864037844105716280040323761832458152921899462663371101574492813880022570316116868234524427796357330500397372154590041576482489332709105662843461022403429248901861723180712941538405357790853191177740601244506917146542638639846324387056150151304051011497345441665363228797554944658566900610701946717005824509219005951776311038074528610514737051136834133221472190858554020194798055269470946437101864284222279756083570082927031212176315484555589722326078105854068741057695422487964088170475735870155435175112649105464494610889642592711888684680967985614293173656434830563767176249070929275566513464692369728263023603050641447529867131004829721674334433973203175206717785261444703208182001677946829812786371300006516082944152579901952680271140310894578916531546736867548679779132941604886866709998799492130328562329785359384507443372753617339841114645169414399999500482557772926326725771525706077485983529721051787944889655553759270112535469935563317361093047728565621379252752967251691624988199595998974855832600112862735047874375608633638252018755083991402327269532135928773041672727058995777735677702520708331057802742327592106057396013313030526360096046639981338791711976192159747071807363219369901904195088212756729002362021258489113410920329571404169058097213091795713212328931396115125213462711888309824997584657616881316077858790471878001875807944307769481525874835065962539241501415497565638430756106391216337174502540805720851839820184266782897066382647695162163830511036455393593146708409350263690644382283574504225369592859095145569906557377463829353202818394401075072461480442138063974235368092731167778535600889634481542492691817066509670672200955749980330170062286834268495027558507813559645725510193460985323600102739608007139094599048362695449385333429387129713508764386227598302556845357388968510779077855886053885205967762543556493348988236213816115651899935303116566723903027621865254682058927733018491962380776425856616810829572230605772809725903985397586560973236343728112155164557461622949930415830114649984830811157326853420847720419932639152187827379332493513416572355107966188514401456369238053698626747701343480338326069308252912899594392761939258077161218138205715808288710894704580600986141748090359057171511398094084276298068993817720695727965045058662395118570146061476955686411011763678938940460766328043616462870720004839566090234983210020849879024753013313315235478173653022871654991705444488054758884919281818000693063064197027422028585886671819093460858352025055473780719450422474850829375795854384679551669810850814752627218494409038237445597568235825740537671468834398916102593498141959557348945188031798215878979713836604281801416614559673665100409811629771087106535131345734551996632491137680329082269266236988534657047649834236802217552229225247729162187872719096709496523985569264835831377986112665335448773761510941096039816555141093651669259850376168370512529154136997899326388649511729891062906484632293426605517588688536360937444470065975158956626655005570614195572020127711849912350356106645248362114354534000477056194401409067085906738353223312394133062856932448543345322833041490037209310083523197407416248715707391702511764266021984726133221702056641952934942606684878265317414144215156357442401313188268902777321425883768697799745194228683301038714459783144190571674507349767672123965111326107273112936278262964391386022771803597686950425670454494502300176674320810477987737460668517280558445928379638002644853222216884835221353435107354098439225459427678269473834804478942997127954190753958027750260847960128378743704732784755340279668436330061224468630430961911587535466983703012602512778958021786433038987622943582112969664708330482186592282153935267274315330972900083938554613518700742976688989251994124108837209528678455586804645876954103795591872577214436642526462359793457844873996738822697756890946765119963532071232457850568953671566953405509375325575379389205771643191031756196124851977030318540074039401479631793765296860752610280487953276914525926205473328449721549073392985683901797714542747548197129211145735268370837589561350675313792097424297154529133795865628123768801129606919788858032634884365870561435857522458331828516535805483594477653589005949571956212979668128458728728349029639878145627052077505053626451348066364006575597370550001728663438970482779591492539439826260981313697614376311933934765092525061428156048445926294687417660974314437374600729932014594784264855057618536859069000017434337216521044681020659047077099071156566692647327492438352865942955258257547116213609705745627349594158079197649358947477207675863126443084890226355485875211940138150151552545552407788395340985069310037231231179137106869057877337652111653629451379438826287019394481984328517289050759139451255843450034463397194595478505652508555068384444740400761845086224482116882867264257878945653481292828413762623522760455486696130679519782519043304273083264666026632460214763082798188223178819747946286995895709851605237281569219196088077572878069418111960175855379617286223501011137516088399702944661901701853025926539821258563711043707684231747928456211178332234536717373253807410410739864158827336312862168109653860037659416286331379854889941660478434415085063649742231184002700227500459963515710081205215944395239093044568815961840724941998118309464701576291672228214721288184437816845848028898206923726490759379288353859052919029864679479513174364974271336180069953133359269091369324078407978743782312203386036953447054967004261689539533426824819791084993470577383038286797222170426177317282157107829526526155544833228089352830731953259032122952701213830875887714147085227540710475334705904670355788740522915399063092165531850356020227991189462017396631592254603471096015400762748049368734771827305145102632872227053726366593463139839635534229995493093488847892889890701958265871381856039692620978963383146622915918407390056606303670255968092015632257841394199172674498024151240458555893730235145551215236174290773401693899295431736412043806011170888515346246668831084833168170888102046877340596061866406310816306744586247044569826470275451001928658051601393095271450825983804655101566073646007184754827246035494110826973146984955399935065583578606951291188997429878290546825337623722440485914458246185828636570278825453051729471739967707192917689550967169847556224765556094191872400713865633966887068235324207510929818528027665505176030239231418239778503786113909176380273697412836566832158067713982336168231883876793075247650377942467944966967400124928007246610077314704089788674548185728786813431560227345947604566939791895987088220639094424647545500133173179790944051641596671416231214372094714237955261588621547125008721404306280986240737593838735904003975643302205742521951908200284283808252594973929767267415593527735493907903678502655866685520887139477583824283527908974772475237180180739612490911637421582819762273136500214184885091300992644484222962049917591546538765157438072782591956616073006978046922613095551014276475423864475492454198950031927840974362587032282184193921082037290176982461928374111357016387981709803085986285948752028326421719796690850215830439489186559988875142343889449487228830561375683638769358902275236101265354087442404373028566418428829866470118927739957404681482039142633601270870168831080246746460441935859802072949066950523184382484862126786817602451554684199775393653517783595740766020982770340388937945209103865593275069399591670014542066235172911748019706205569520148157818694589896695720571922865339343369583170681996210944783781186990335773798162692479800047950667713674908006231251581439040149871731999110967768557998912859540372662470291904567106693673101323779174766050656635279439528360262988819313660139243676578542653993861116261765757523287917484324002818986256102408368572715190406643824948371976704180166092354379742195901877569060193772574683823443794036158636938128970344199935218663015255467692969418480954831654190555009981338105755028358411560454297171877738275266658834576610132415203885736137378804334822640395038065342496646378711782074287902516276819094035176863951983288460341092763507251791253053123476043079341123674775903554440372090078704688168455243300058210877515805438922804713056631385569175784941144825085486474680398735240039857421955900518348553337391976182906288601835930452325242188042409237157765823909909616322572495702776179688117810748284048748365504642256116085087927194503963983422385567948953474981824346593057180429541369802748448490031860731940110297825940774872103381736942825967575384535360120130833620313767491938050115784760464228869275208005850307658291691872179765262315679802518026400630537654978314773087615117494065482554108357117160492654855325981325927183772958373560363413389395000004992675794247516417474887974056376683971574907170038303641306207198060458732683485772564501615062415545887214788145192123899041829486241072545347647357521928075642668014603019097591542881274057989325802896510271743500296039913936568867264071874708708016800523311998090393665714125743193209183525593084618779586768335909389811165499960125745878474451108049473136375303261871182100521997979850529056817340424926243102701871806214152686170579154363028892501902063273396527799575403698435839105032933399617556174223670241993505093577715016865613748253321018448590466485535441061962153041779334179578928699614955703025324410205132152915218798451236015251900102777795256334371874383260224107620896814886363927235934468637322995585131334669571926703147220717896600574153896073902095563788278295682119712851171683177988297094485294773304066024696028300095242226724944697149320464438040723938967919550679101591160702051490390142191648699905578947897307715849031602741069721263127570114039586618045567204867326143746032753997565472312606583301809677420475157735393986990779194933122000375349132824239077089746014504524946071892315031629486970624075654977497105500138810405509419595532001701801753243620150363722279821236112958811354800212678177009063114658396169803374967810482206766642508859856333080046038501819877348675580518600338810002285054291095032851660392153664655679036480988852363427690979032224379429443312768771153536226345589277237588825513539309151304771476217364859701845277649925353728243998510988659461158689936831753115174190654437585104018379071425341493626348998378614821208653010870561528544984777793273917234785130832474092183570705167064436027210647053145439093640351755679737701882837603809934283465981384562086204643111359453061391469310491951380230129154383229429879018602784716728182741267914667211506440094255656533561432053587750816310174264292419947165809903382656980591975865439195694872087067123516017597746646723604143964929373316391410538584543771175874893432269380741567065693911410771085894265448019570452641335082813939968013366026877089597995184940641938391831723206534964609816692561102069194464560359016643711785825572870927118831373369329266892684651721441400002340220547014809772209440748834262790602535483670458990700903340570014792628078836253797697563157430395611153517414063894388096025970095024858189310714030163286456992435119009432865459213381592547781625020130325019322385341648233518754091765737680028755512555655862639926869911636763839080145321424267100718818643218347225096588788265981766176511091809679686842680058701988281406029205690598107325039413435714219444457637473615913501349540676586112135074571743683453886578726983513816653761499100799502885522880225605917541806809000775490191299429946111868007342172470352060805765879544858676762023381996339339584390703321339342014451938363798584669097583863058281632109831883769603835422154953291705711433869667999744104754759246096087176392189586609097390670980410867521055283521746277484464889376405028918812425507240861972076029166147205858169174466090804388067293755019452972012966100741078889775384992092708936606111963974023559817806611961183718596875414924169736834897199029127481952347002548057167253230062667779733732050366928237668233842536181881463963806367612437897389645827249893849506077052945129508875558078612551676134377332016309635463398692101238401518072704059271320613347583930216841655360031435982392266517514537292866663620347755355253397281028261638267067375703263265851547872558976838193910267967626726060612875858396079105977109563033925333703249411895232311955854932213601999715415831395704158673176090702562494455580167286969201369342122722581224518714911019221740769527474289775773292432920190303453720963684930035811259501764861773731612276949976253887380773927374526639721535514300283576526639421475734826557496047019690051355320116489480155861638364842237177813254373457493246614917822374740308306706846825010713552837131658954994266863138623233371432869157715020831393635953870441624944983497018991193836606804548028021026901103816655386523060976988805748892977321993781711720872023882795883062635246180266251836694273146769538552694220736056063916134868322827133362139716452743249395257654784147074372705193106117167786980364878069121526341118673462818895060952936488814088361395241931005266483961100313718010436107170418588183272466364761241623404012520519194927004838727500725345811051694166861210509442270778355603804702963341977580941571133452966893624810165848329921664558529377723302226874862782202604225074951389454286814106172264645887265924894072278490221975138432272473909766058421115210413268733347244381865919344113197272458542498573371148539327515549109999568180441300221735530075217773618648067744252949230135070409392141021492798718122381705304799357179674443086164040411478785034261338343291667528412673186520771264719769854476830616171299870303540702976557021609831631318824882537851698865747371645243485780939307326920426947684933192524706665282728259592124184268700865763639275662481498954471819749633511213265424930484866581643185069751125962597818567620475845158516390988284352097289250749006437267906543323449673968591211983093276907808483292604315569138711432222169407419713031878487240421293661500726149811593922995487635289596722085069130071348030255602183468854912869379103355908420325957504872918132047749225720742081545191730374201831536576992813290408483050682318442750533530854609841305990445872268085421786005861198470966922572729440194569326153409052622151450078439544219817776078796982029417818943612076188330225125495400673542532401397456834170324610264766253832243792500623430744754246011428355758187840304106309567040530452449350884987916267520641452042708274515955480676114334131254717037081082399709475640558594879007420362188274303593471909074761055383175417913323415067638617451769350095916807840157129013014322797160226358342886706629691271088576401948568476875031719771162602347862992673986055994095034213570689424572663604835831051984284035459825488896208777719391327786671220907631760535743603915725743984406595682061984167939522457104879786151833851935397277884571039944787371868476638543146897642861051004000378610456502725110544949505668562923083093626392999475340339135687239624515929542166942186950200575476856664777115825042951979273465032141393486513797695667050549121089214679059796539353842925847810304764090669021007003811119970166712039476128192264362230830367530726930992363129910726980610054042235189521429814505332769485268104686212254329129080845020165807375327005862665968871280534753732725068972546239684967443368439573787412430353424423512915222147652982662316316960806592672971796951647067433912234219347844963539010800097748035485954505612224920730519544943202440114028472706818388731795866379145079307219429912031098971098753672216882289413477789756846826797753428125697896387284746976973093079016474030989067203673534663537705534901835585117565939101082952120339014904793840941281684452602010204857438270117631090118830323688754773092778753512481689934313450399816276816490210775980429549097318646891563520737175563590950743613685088887817429067056082919267374499404247173916625537183611240538413129046354240956946346463914337987269904549873415970365173265590975396256230129188398535848389153879899549475102018286772628472298339046475176463294557513301867384326072175137534271756601311223826264440813534587122289790196033923429871030284027146912643810048475244030289735018264784173095517776408115802979160813570792590824214749529390393522678819559722786263791532575434959236477977231415821716024350624681271262144327655157858440660453917276832899977260785367982888797863984066344836345466379780652059949868325397427238883019534393992534982060895148081414018179411746598428138545915282097652318500211098934289722023892585644704867741314371233213481177457772315070147519024915648900690457552635559116414448487129930860499778686642311688874971760107400751928172895183642692840762249565525616919561043705512240189565831514987709876464805818204094304825659029170584930858989031329931238858927011452409719618832694255299364257156874308846477279751743617110564145123013931710176972148461444017432684520660055663052935019301070337505165574297362645252468729575932177591216886432971570106021070921266007184060467538503370739635735425727918475139807289420849890035834678729861209788908850099607003360486900171927840353357094353527757567671214856430266800728228415896421161972833824033496484207274294371981004561972104907265649653175339698143903116951824661032160413759951478758309101097954132333364493020580242004045544748805614192844833684438195821032872796669666863800247681487347211584105178257137125691020139479987897704782055351903381500231031568323989793232611739939133049236792391754633543176200285912940085598068246721019485950855475234402696033031401202899783528000030260904167248833376332702950224484968167541334090184104849778921889355475303854363108925952270262527825917588906534718090563005959365048459263370230782369433728592652931169101069324425296555265644223808264876312632470863745695434732660135827914494899931855363302453895359495236004183422155493877879362476486295468599928918742285634905303901897951014126680051110995511404921586037414429005147254022855629512019565171275305135407424262254584860717332984413008639012261174020479846457013983990325039313227185164040584810074485681512200963558739296774905706713794621142397521656554272226926930689623469549978155546421075921282501928553153903461752357700231856608611752215289813716281678378520551781858070198475027685427993274298407079171067660330002993519203044202736649601706422970632952891133094410762934658826642043068864059660488528074971848629897641699874493800737987617511377145414076422604218116435826063126535174988256688322192896888053600742538408551446052258388460360058971210375850550352738126079954747469762294139933999771592969397203901334158467992197890151455117165169970766805693249116438622040239387116187822463600665546662781194834054467496240365732134017547644809968928026821540243764248160698956258185430355933871522962891303490184241814045515807151783612993082023746664632731019388130703048498486398111551121446914526614751921900535831746453668672020149739601331242578308707233096424766237866771576966926612703652858641725770954497528669319016237565059785291234476504335175972541464375317740528413878614496459751450518168560922000498795475634399598764505862887759936315184128247905555904198969624180161737356840272413764072229728299237056010210679436340649424222427007023571392085259363274064067049580181275550496441176105595113410317656868177174923338947011263287171435965860651524470449904743624650637712180525384674228201973307056324696474079860091943351570235960286516131127653879333674485315102956931517345981647794172907590754786122809883607766479399423832609296547746314875253018060585872099153979671630302118776356633380788369727109142720413115135807400645701851045980925308396260808955947716134774123397852002617783196198798384908144291159846385233851232223415237383347286946033011116053911401323619936111562863048133998430983196102563435115122045854749009105745036744980544917938219243743761715811986189211603857485106202216526264024199134411174754826986404325191162930654111960159234634825196343804951834666655669026515903147670619422233372682075810771383235266471345083513714408547005660888291567519423541694141324134473723880543111467368580055711910637032868348531481174139393103132309793363134800446333221934831105933893005747389264998801345608337902994038768875551392231400653273222717058825110745426816641263720964600695106849157883532745974402895748045938798062953109854267216564340833673553059415796611506861739139921097495657942542914779898495795901372397345702499133890990338201642017588766435104969390640642380806042945056279719214381071125864258106321353439197227114856568906908418686139762776577940326050421599743353142072524424497821462925048728795323289676565725576135220130523819703959851185550038683394107821840633586246548313276155081447538144870731980873659137367361523472979727219152764436169906856713054164436378490854114157992420897416145932489736156306651512526580870357542905948939841782114975649020870771145798903329313635765627635364601461752311573599516863926575035081301400235415089540146380643075576693787827916975976394110715809949073278008469522401152152568170577680802674170367779169741018008793342982603380246302356889710323982619625771376900723515168557359259753268266415885147202295482371003811965561206495126149986695471201764251302399489296370880019859077084677931590923630353964137959415909696428121030432027464449653725512325799849270017387055248409910067529394768591136011529238767902585578437785346846628087075917984519483321734580658213897777323866321602326624723655851001136817460694950054170318851894277099575725627894913107483503425675816360332866899510300239728587215910229048911485301441975163513392082088132817511247597357654893449871866799329858795830886144867788085315668110135156632419122103625057505166864128711461414135772101259987275313355513914446019118261285722213093294848899661786145679778207491292174466710936599131400911175223286109049381903643567237194070524228720663456114883810773077918680190057454294081391823766587268351134179689127130922377808442790102138238773067915021741157405005014557658366084989747312221954416085213772936945656223831586693623436724530499729550228624492390297687924878658057511398117913271586197863995960847873481281742900989148524624836434096828185610574667361974707398432602628594390795372994252609726214545526066504192938616415479376285847747005720582163482429216546040220753424047534794525884474329664481203926928237108869374749366592395261829955942777336187295790288664435789857844634697976204621601212360723790415335224565166440490576267356165961072873370317415836819458558151171171299484425846614834209881252312443730431589492894736818335530852979514832506534112217735161735666122126582798426376231312058049697410784938935496172553930329972696459380124292348148104648500699105843236977046873287971251454438680738942998706872037056115769392752279711907675658440066400534944400033610332043674456626975080047687470702925397195288412572229612586179149812365785974095736866866408270656432182679823930375347100845463497172583349309545896560716992603150903568992154337413464398094684965899167238049873646161204012653106473897766591978365369610809111392436147207305701117356113767264822286740585996276043029255359350475455945911560152671072869879388717136528817412773478834541851797899706285864323068190029463816317651561010079748723112765083217289621991000691289831124847660901683431474744508730928672665784457287869743357190715681911343057757048385850146396372017149076468238087147671372032587826312938434284151978989135781875905396784474425199229506980243195163163000148847538936929719448095336902591012945698727883581309086829289619329456161329641284027127581433241172523613501510814402512896365931586777610874117610029276797805829084304088009400494824733777961635721761286641711905393748492845438845703105248699551246741259683412954349589206054590012988058158950969098611781358916538432973103201777224117505339097346139894999203891933502525857135544089892503919305086684698045557192568986441479969435405382076063602241946293436260129553544117035950445790790433476401907967882289253835067520205664027796088816761317865790706363594129671325768666022023764539292894115787302848294483854869749567057833372747917769310333093413194897423292865612783160706651569432282196715756864823568160191846255949711497505872529331905660157722022087889821885344322549605231643488516937307424004163733667357872024182927668181028815533957142827178081060299961162157356025236765280841188870092912063375770772258140617777256015326533061494408070344666268126412152670254700908151935603035659378355783204819678525860463047350028726055496554766304849009801073819680962228335535749213130990433542171252517086641801501764299763394854120332228519317170710414875250760497184894101302358010360051159359010792754819988217457476639742677743719052642383373214034322972364296226594058496042763878985428993810324135926410262904145127957779623505007907766327897537842510881486353518492775964726720895288175566351889009402061251313352422950164065232405136742279444399486255432855871181368067940740715729227634745678743750548565238106502597266970644410611465800161815939446503665593784329642489658588244350138465253138832734771928743752181213133573573937955305092502987242603431473529258051288770600115640334549427342970521198022600069716920718887712815228307172971657394226813768627093920339550411784599271122845428062323214128670015226598116773425242752723360805544541782316705606194612745343094582566162732059202822077435531985695657371147406652350393152071781766724883200611212064875884634729810134916752277266021759663296101352764747167614564665384583172475293031406170199901541789127771634333566996569941385169768951458498466300191011215209335242021504886594495953524519588274081019216662799507358122729157407840064156625539112920686692285339030810028649578860755099331657058893913632707697122414645173644083698094061696325097907849298156495313021614185067392957943122190354578329451434422917254088210938952837054014806201279275934730659195318970250536053679776411084806705614039811119647555164235625357377452570155777971026420405547178588098037883516814592752991652041711623271302064311796771067276704814919824924565311793163418580330332393080538043000890221864531526074092523759852634296405041655709104024093272832678095922646559945586217032235431763895759981087662666220273744661741226326283066470960562069622547978945159212882905745659291369540666982679134920997231645884696845597539858927795586240238079274184592928483433098521856953031778577485391175601784647625598823316108288249820430141803660064804890799899285821101375083379563245847545025136076366547522752013758802088018793583846980994968501364124234919639001054082642291885706248177718040001122530929618920398939372695092322739362190846675628837460178126025806493038531812971202999855103329888341053768641348586939724255668815752645495327789763893189570194484926589206976025824801371924781438299433482781311989935783714224589515818056241080934578848665963578417725730886048157653318188996556990136711651792889175382454100798585818034224828258833366522339872600871715573628339607843792780425100504196143367685708904689159534485522782429939176817529054147880694980229917730521238402242121717869556473008893162698451261598534768764969559304136643061206677812883973542274414720731574033665291468045693034630705263281331375868136615735385449030375612950843160129868611751436239853932624957661048260554360665252287556777054513859577719369636108072877221553432605395534404431556584741310600062629405514214542600741191684951130801159162593069406184570962409315891410678679180495474459514527319811822422101321664065596188013628842081718048362489087499902398460170968633666409685168382604167249368658460526298738494529321216207514170068518400106985000230216046156252350936958895319936804756913114804041400462397697279937095132710378839724643351986039241769553630454867846140932427379060267624752224999926429874411964129976647574957936737057640264138582201489672953471388008313210145480271762366690655957607244551214136860139509065556057571164646409091298710234374974952858756585888891038668021199874551756694753760022135539065063177740952508791412250079941134716035375871889458573501795859540464549996894717217742768532596716347574417427978721563046768938835207746712104589551130890896860507727573716709672821724188459704772983433197034198378710382748626137957670453978619525882456134712480962022109917756377115340453974190620220315425683318267263596672405833173607110771115654824925729499507635610344932902056510695052869931819600094146271233732308295683799696223447094269548066596352336585182673459936058342342557031282988083910743656761618358631940602247940060028491261386900345334909642339593950137367280703973926946606991490763297197974126188792171105228250437943471205060319037869560017852629745902990500368761149543361053143671348470745538159311177832521799502755080900396766060764646104315590709120380184239256473864566831639786910152973679794377609589617419261411096174668205539363882080450057948227690590588607877370505952084075777805578437747889879375970708198188509921397842230504209749825791876908957989162766519391646717047570160517030532143585461334234022627225347631892455446273820528894617904046332974680175985923413910307698254618894338261626999593925711941036450474653651131365507796111483625876072666632173802709261183329234106911704993705607712282740665786337840203239974430442954936434269912962289577972926638829378309661810366095456831780710756302169542104272575964804312555450280066994892274603390659739565256014639675835830724597424063019491493773783863893193515552624266661464928091707091210857390948163458796618944836849599179633102377902635690577806870925920862982294514574332685613111471324931433130921611472005319895403657387353383092215430492672131518769063072519638914686946775533038288904063565646788366446617277885381117547062268006237696829207191543812888299477104574748032661697660060626393142012286460129603521937392983677741729952351531066503441190186154622649303246025521167618833040391319197352622899470060489606427202610423103748781812492949655073467926116034127965768001752246758032381569970712736234656826340335203128429953953619856765485275908175991702573304245268524457934495950740551861050211197326181399510952417721917499343013461012257508864714757473499182301464225873384846200804610057852817561598573343645765321995259457738421834832093994032005646328559397058248827074514427189635755418887736979420313271609231040347839406748974062367241782316389707672043891063737137413784589073325828586438491554464642862883078847353027058353105353539193522203253294611175703456311895711586023621252969327533696837152806247945941613537540727558263634703419327008951944486394546363416096108368285334768121375797974513962312191787647786319993952338638885736703408503216860182019453512188410311086107412415477771454595830225800863501645975002620018548381934953861684255432281750705565566127680632331506933231527492263530700425656670628265419937817146848531528830798235185259846468461701312105682102329951973614338634448249851502134753424941764224755208029187361763513720070885811405009287546058212079085971576644456923381918039108882953299714201639147586299648400719224091265006023543512541405643533274020567862473041512748754844294436747695246820206198195189677686627673909843943431810729293037830130852800942235510456523990103629810385710585365333259287693879420483655464719703955024065331998295527039026471679988132710483698478969434880067727724926232963711077494296581182150187447868533496516410781486825936945690056691428074998258186665901246509179722889046026710590360784605035412672790901487191968077455636464068255434406183105772351295975618102365028364654677149279844820386051891645422858764590855373370963540183125164038678421137445294383175623076916686892778284463470550806263249712096768460981949105567829183060234433801002306696655216562442982611279676982231814294845576983494899590330876953867377953786306764174051995461883961709488820729028376446271205123556644392122084734591984435871843084778006687503861869644552855373107378712109364452815437982184462911032532346968199753056696730531228743498752529539228154687938373579534680485884920810439088718375678394630838759051312064138359375748224493725567324923544266771905468874874434504220013703734282379067773309307187707468954230334159961382654195991507793411946218766948069333717106468238914139729278594857809080382417743577719248568996747994373932117539935710867254694962616513833333500081126669923847197064939467079223364801106816486763198541701965987488388726443503099604440018174210117027256978973494478882656809843555038690676008014286497289708288134922689038510617494868353764389926835746332659625002215165271935711560017427162125964935650354526205139528957859933517381840036931939272345014919929241771978183372811144445163704537316413775856853428978370035191419522962337970944833665091923582298191885572779308774060272555735235131601843250707526783449884804331360505232117963088195430508798085253792633246221836406691331493881567304972623713017383065160455710044272139662041067788736125069967411721851911616331332191154892290335005567126940552494169198639130194331755715397218900444994091671021112801474246888306752615602285341900621317146900320793788664141181607925334811994886638439816395246690960905978917422150369085246056242257674480744079245040923054576512523084572320525730318962984912138126600532226448222914216737113174750199017662159572046389808074641484802323530709109849193520657423976053195055222984829870837182124123888234904629298224404233694874037056501747278462506130750799736417245412359551921128822889113921706034888724075196747501013350319552229516819926629964664129853559049856489726923568950361860498584416332228866984976707549801261905654339262813749904125017998986665566623752897634758250958933314120696533205591885887661868423628023610865603032167763002194634387896463117846536558895886521955129993104407363638153638990129130895316228696793789529670440458051145220383755356150898560258542353272345778048425359664248009383350610414695610152092381220868516480127098228868947552512543587640378312706469174430166696110619243321868127288337207254633527867648061955938868773147964544266904049015416595850182410905360851688430081978473265255754446301935049978007867617459246161391139884180930882587910630820299717152986759819957991804042132644341174896179202028788122911893176090338292945122372079699607978552282535935812846670478390898271781896500674297705395809996967494648298027625512065533156407850859250125466336299602708914412366628398433264424810598502164896249992047814975264214802299206873626285170308397554519146924647702536052318922420978008570538060022292756537059969392663487483555026597928817471003124810449382058976069613993475921675601299685328597811484452273826641243507277669550093840936083220285440399640833755375527421409343713225563952164822483697617713877104277723686392726223791254212500495041700969105024092665977869848648408691688899826101782527066923660548178034939489694974763404873916359969009875854792998988480858157679354746261599077222053322502929560075728077284578799792695821250547811842645715065039662846312514974165266111688352480132426661043335848793853972341945422334650942745064402501884594014291073419596110719475868604199835692813316411706945777614613352702386258464201092236017183201392605974207936595373084660915620614769261563414147746853680566759228418490065263955549580106208980628703080338104442419929712788911325048783274832139542917170561195737711794295965729035260780435141807161308390465294015782273691924092717044364915491054001072042142953771681811283710978480516618670681947146779849686716495476627095719425434473276026502322604007092322060771090239905329211436736586686069804365470844780840745526605770412337660773154272199320074936869299894668408486962979229767288501568877024162344274117203154717353380541595199124835481027901272462789873915042422225853343701636421293037636334484231432853303238052608094133852017962025491472338830127538669083324048930560718670671079416930605196162462995493552521109627411103477629084516777338884652160081277591416582198498460352492625191115857024894308234938691185406930563029018633229096651852202321562971394778221562084982659674865736256008855853729139198401471871362621847593545728034224013675022778058998600291158208738408707102587908038791011455241111689966298231537101651300047050477920825458168710136827993907322879078361775308369825866691511067664338464962717350359559307671307253158697523764322645562210573031700137656360609967992341995438974783277600902987333994840892745721626556856956679325698802398847897390341033247743731637280925069763566456942277620918434387364169214521772200116519945562467297598502131402362111195554677647461756778664083660782197199071982210294537309960450369211077247979895772587662709857176559995037719677877318473216164614446300756878379277626854861085295986739242658706409215097654808365938762933056318702625156950811656097499515838368463420179284208317011343488991969960740169889433869010124298441578528835405518820215398274537568964578326090020538819791902506059831868212956313309555137519379342670536891754671612507693737478760285006230343698928924065783915613027993296327023044735812871121268662424477165880829960886868767017265604139702216839911640638359458232505627230791326186226320208953315048638987451135576801930841745547075186362402614950419263581988497563913874980600107716004077292275184327069926016415191449229114372761416845576557581093410377827778249111169506831446799265377415250255471741678798459803074239694113344254777593995658197121865405422359176085077848685065701461537532601427167439973746679541122489778062471382484437943798717849099976210842280157440442851741625530015031679783115029968566004920198941789623506658855166040322449840185728625837060371168700646559909110879788509597284807607254192820127629771500548398290674048653972528768458318767602378725852963798357713805954451906531061275028084749443379451524195231412821853451150374080397887335109289436347484424219344473685776726214380171371243942868019633234951742505724610481480671849432014776104053239051169693226993864191904132452644942815809213835005584635783466964504791297809724812219356226514828088322672108189245139375652889839417858440747221834101262056717177892391781781485154067506768370693790032359529300119286925987605879291458297952845889946459005632573568757288896474401529522661384908121671998080594142353535366498646754434572565479966803326151140881178263662162449131272243878732634041621862330331706179700574589955017932645490691447953789221288190659923375412329274283178116871479386008436028241134106170253016450622257429084731098565901985646163731588247897439172339356257531256856509683884471706807517606611289787449410830466168330726821633033466498276526355668014737141177070736523645911622944231779430309256042935810348069593804877120639600787706216293441908066074265948726701658243276437898628241961344983792406735632728487123011879537555814715342173078979092146115621333489675326932829780474336989680854488596616770781659047350779593027543873835429152522185103351917280872378033137417913060911028611092882394243036646760770295056580896999026532322092356780898440950696612775850803119712004461995065267402623281455784695294235680974458575219689185206820237582905109025059281181223055921206890455673684979671041243103716089151434813961849642567834128136882624135102879036873974759321773205187231147342048633040548989885998191313727673858486844016867019918589596905508857511976650440037646138916034087716151314167524487831220943116588797395229687858004284822310160303233802219824471943271353639727538932573738429942024524792646755025843030683618220146858764451343398381598735522307612384607188550380472043579398650365733746452064017300928953432625093753709299414702886256196313585968097470295031660325921333937662337329266284827681580858536631101487543969461438025919292707996988551861018226529177902171537694286118090411953834328688191033130137034600915547935631269587871010587520177764559507673324187987765718726230405684397239047469087686654721128874692664000741498256942759015913135525864710323296027775254354218389291823124750811635593568898187244592376967724194144389230501143508196419003296773769052760959647330878958020622707437296538439648356048369395470064285683165446842857293656346529728819976956609940808600399816893354927926057392452849451639539392006195469847803920420059807543933876893119288115959949967693147206672598769183435377196282906933220438273665599735518196246270317705420350623044280460045865093206626755695502025392482074304915710912429345077849571405419319191332200037116839103539169971945348168767443962373495763630183817375786843584869995605840575538861044841387158555868479346372353824668759037171053521219475425928652705174173284483913699585803454184537356704802030719512949759060678155244438612029329432967944466914631840337315252552211871504161568316921051690648725881726801441828342821570613411241200528724744991547391944269605894867894367219258895132793336767544940192303914940183784838236301486961278097843965909672434551883374161950134755232765816312238432690213946149662751202927628323134712522615561675495812209790598437121121914218224672312728802520410816123869339443540014471947319695009673028096105034868209237173582620819441307893022686404483240078703932542860542014731556891310103674159550907195929827400850108891487986019272424315939064183239022491877380054374314963395752370796661977567634406717951089335308577429000410250186666671365773997785301296086423659900253655711550639408295711187903469446730525765302702146532123134806249884452764650135787560309243076692145495638910832489691113529117802855438086074251346381293580973121573802030334365950798455130327749953413020381779000621541361117799579037100382090940395854376405350005936179023902713310383813833826089646490429742247699025945561492445098958389373392530205949824274120734976533320590190291831904195362978779974980249710461582126763540222665649340956997915453363673193967470471438819516001224791914460592746411761141040326324627293754385505077276411103153671048172455756685235951235443918020290843648818042515873092532378269907059557213506904918061140365940206481719254780419643288864132476473741846696172603770379032009493851706591584835585582106043160303458882598554372018094492120731933915790014336328461613228410396482859589601621885907982867151984629164182710781963751609263491284511088468736738474114939784081318116809633996463434557753445535437339854156279176188005978832207519155083008646118937147348397687200356530047046244872681352690424274192072511732278501234355275481778122431137219244787017464348111491971829095495439238994749680169198892849372617140555706737338784823061056074421648912478556190271323203592577033696873420522568700199449237059799114618350044249043072532891047963564404342014223979396495529389731160672506567753908129330210097840526579105643338653707659293971982587025844933104376313513766113993559307363625579753840119336200158343003474841123486556394534749526348122737810899833989070671282488752296985910707395007582279972540658066340087249288951855939575036094073585658637487953293065095984626301234746623438859490536429877629811810746795284197889420729420924598061554947980893132918609666733955646978330454571189975691458241228038767083450416944080893246378811046018377524662946898256020689158270819775331920088404333598628957866734110829827030244130262451594690677573566128324292359811676884523451427279822367229436768666873940986338764689516093121001835925111157088403313982428899980130955295897782015108884610090926254415252518985387019265409851776639703067729005877452478949083863580480617265399628225609063407536487173791054862804830313732335289356933264104720057595119091234778904082066074101749234566971761462880134302283084319429725325045725700008101947141590959042940796803215305563685397026731621054144753241790281459687584747432343475262703206169739515885615132899151570279689140862484202141636864592131730958171319499961261625481530071790066983323814451570106246584737997891823685024393982930983723416158596622227144886501421082558472054658778333449935009224850970724057878196514833335872175003605661546283417508647697243172554874467707016803869709413057276061659051688609258746033797736704785083008945223216384947421231929054031259450940337580516479265805741045963596023953159478833468122469108069673960689544827969719435267361639626930225771259028540151147325755647686502528225465320226519967949950174961920138578048808752240263119024651965404748087411267358499683585353220241346153176697474957469627907508293435125379502251479645250835431599899396114609820057357059547092134632683344354116200818394445172813450366061166332332382133355369990018189659713523209376860031606422051866848668356797959999491662784008805156177231879111156353494705784352547179232085962249456301513239059768238040029326915647069098757240604118592354326878060246608491857760701649464320438261373312188911629694776068349099068611614984719586138461120657712876183237423319332054306792243231439437151136448392279389789854043939114916210468755818275701471342558356059263420555199144834207739650392807134334941680314086014846326361001742206741122870215732745532925342169898723223739111655953132015374948929188544086129336924722926845625663198060835491698807132389584597750754807681663004057538443562915439567675601322052060199064589841465098192650458436746368676315433070951425372267031964130540597858825115397030916937029693670362445795065533841487160295656851575677209191515447368693360334986892286561594598241136456739228542016261429701329444671522903549922008567607562585674313224917383609675029094487034705412585045459775413238719590179514891825482241116441859944190811024541668472476461825806332269629601187287091700864133856559775332734381337592790384976220748021716620876188920967780886351842782894751904477667066308721310740396435714116334079136458819425578384389026316637101787931890756932392052328950272708628076353507667316743882363279633564645129421925738732044123225893777435864064347663087277048213665800353468172795466799961010882538777839546723128585601083571914723214048765764037669336046686367367336227188795214855486599708413737668231923638951354981390311062517227708513349324952188930622647079263703769034870457907413828061697316016257851783908240359194896375799446447752359310187598157992084243446824044664365052894406512912875220060885334739701742767568868440405052409063657769643667581239170401168720769412819204420714754940338449981398733736899075724783729358018496026334781325299316713271998752076862370730406603043461301376814011297689018920014303898529556123559684399209264200008254989262074390345670032278877062533775078303171933123435946474040668257216768976537468576620055796399705260302249314217289905232201292282890447003119665907311279300241380466750414079485744440295447726164869536916609370824103192198239084250470147114544188548309087064882289957748144895225401023381515264548581426072580354702787493784998484339905763840116999232851409010700115648382779582770215885043079629123124913429357577473762397208968677817724057345802609730374454483542768834435698115321824894589714238268107715952371985242588803916453404468595707161795064811273225536263794661842904715806728532947472741072613799100221398069526441431102059327181701984061814900359688179077410479570028117651992995351837762257442711820709582414160518690183207981072514628762675919108497241553881538032072583191940388353081212514366848233096564789664382864916892614724252062487827639135569488817305953424240269165351690220713424239512556690975298994817685345012715870502674475888560066233071615493357905567024127038228324517705752527726927667748111114743995661231034418976348400990234209763814576550561391074037478805181878314640250979806641469547514994520621438754843335564185921946078877693180311773250004846570766293146488489075037052033234318015631751448375388028850865204456897836195038561171519675039029429406556582180715915357485602857126315957335535199047909541344651668509443166498294302651905634626508288445983248044774936533100023949479681865379031896893009682502537654192600725288072784505587858693814981863220978969041652130805760000450181648299599176543893168191247322571271449690378017620905321662798301001195953655393573169055741170281673433523128772593806271830442037073753452605367489578141238342371165700912069388629745245232763129755476579802384439063186546768683929184062623780968660276753204067972523020482813231577143161358859383423311055487869063590572431643791018227352807775588573076714501346859895328320362564279577873821018068326359484562036575280244758854763643259479597810733210291118761460459921795470406110124893709333745532845549575175343687088131003695951153207791386699376444338753984953449537086255956274435255844400822038550681264031319898497406887448116931948790284391753943446912009626113470660783828254389230701896799180810414254239354731394761081876580841189726802437631843644536979527666669625595190253430206705361321349062848095941449215522348825800251617142316194594909551436374252699733058290854715556072951365017996071228186685195122528009175716381751359906913177192685936128231060945861472673781431003903066591898295350516103420902014615596925157196537111804001970793502238560146858175599543544196580339599707056176035075468270954348886588945198687118211094862125980044427928403949084626408492576869689393186981799839297825761198277299471854370348527529269867179607758135828188183969375844070847319004589684147547365774875782242895274110523336600895784759560625914804468433380820316540466505632874916668787150223661902231735932450381721409423136985582458846698455371862815341600585590947567353998350455862176270002871198267831154562673538639595710507287707517129884842376554971261079273327774330047324946496478973386481532270617334128987041535141103812523817065825370568489121866285827228871669291323921032397068312141571645407247661742260648371724771036976854035569591027411531483087286469808154171065151815672623942687644740189263278905399845838659649969491593610139845075913173516922269028328660746756277820224079717034705550329462302447204604536545939544182585362117377732162533234880315713366986356779902444863415317480234501483792775067050874939148942271402424829537331534496725721018049738571245821039183138826516142361409254904756972234296277498058691127080481647014868049122577284847125660124418179639497745803870909991626330811828494851000566044498979777043938951482792720742993620447416631511554307952955056666620497839019450391748360681482704617123919591171364833229790045154119821077125740299862165707940028977559107429329296287112060326595090994368310414549632369215748274581080970150834027833187201636344817386193972877226227641748820316208813653947375719436282962598461752445172063121090668592930984082080152345719292448853644508498782226646313066182504511869611897350598661365407174010890844011256003305204593097354814278030784203927308302661236299831456165384710117533115078733593106564529142850064570974525707332456755206015375660410902853957907838831877655027443763740388306476263842903186754925688651238081507663118673727379321884051948383161342949418533607318286055737793764907164607943892176478683041589698839378723620991929742127149139370968977854527808373729446238456389514041918966331071617865257587962456716327816398982774076646133772167454987355261471968778643063638837465861897379565861785583517489133419361615624415426938812687898600335390147490034078597015406032345458146907850342358725990091094155625625317692242515803291243327903065758662346833262897080207467036596581630643201373539374512204162212382494844369576337011505030696162844081568470981857822701967256620189200596837313659310992778310059669746497718290040480702946045144690947409506963221127901245523071870116279252984856828810327771797722744909107790712882319338390733871993680157817770606097364096501489529098698072099887346549073144138323743375544832799103362467832990715080169681895280616430824421550986013947792846189444230333941975633906657683349086784058892425866423588527836758944815518813980808742677513574904985937412339709635766433317561362852878820323508660769448173957376366647551985939611473048366044558036631084877228118836131442187235372501224229098534509449578071472787088943237770363259201108635578040303321900993028816283867602615556343437628655408230559368825669953730934363311843438037280219648534560329214529502519578114425204033595222110533638458227680149854491814364789182137777302372541217722406785384969823935615650123351048672819091258255702933564326000387862665328082142409980319369733284700738506643180733922137475104384511123615045147385099441165569530484268289488602139262666916571502717375223398681826804903870259182695029923995145015021036051807256547835367509080341499419222025499194289736461476459469893572482282913971978490577178189884173460413257156201361799183368062280753014146046149193750311331919464296079404877029909562297778738513709933227848244571140234032798337880976576394142894206529360488079489060918086580440443513920074048874139822193492432882967025157957649844423839170985872950296768414536707559531678777142002685192415178378187010488760745025663105116234686563337261049245723671958475558382287138889083172338750473764488408098890131014843493262789504351586799316087064353199315284717234714834473022209621485278572721575093235047857634114793107539034511795080313497126065418078155500124194661621017575561744494509451661785028308135641982159279839878524174815514217477113621387879394003989551793121846329209780095745261337140222924833715872213130865134681384232672862038349607922795781203969954113283874764728372389098827814291462149745688635795889952392077737074934193710533008889086976269242267783050589046127691770407159901332654640815298609107328549468027698108971841488804886135072127426624052819454985196780482127110472018168122900048891493795318738001476330053691097674939393213037758818101322936567950723968278705209754471261514511601701303495157143103460353089298355800122531331318535776383759012963901928598425460987690629709010926859957454845160385993460780209684404526922149671238949143283112174598162402870344340285014909709522959682120716950312421689759736348418629359869731188656622221131759459852473540874322529839229174229254537128748117919987724298027246513065233596768742289260626539419319964447051269294730247111184203807526874993054175537854641654303826501510202091150157874279335209847042957312058258520014079979742025299258460458110836413000559000805354133033507104943106475293989220952282266660738025135977644973380003687254233564062668600977387743142132865026230532277664489716197657945825518236008511549995525827878069481848754528306245907743100224756396960380173076470396757494286471692310199236481312738776887330924027712352309578029132521996276597617164052133044473201013338574573724945604068562303999082126005176735366540480892592935716030710473034738655003747775256810676593144007224898596095200244430446596441457682068863570723140711007848670683908989775653483498701793949179630667602937982427216625945599432013031000566695360835853038787963712234497237054372595222331918050204920395906090824410423415926468740734326097139106051191421313986869393632391748914425747459865617343566951658974233557149634021605417684024791501558701041623912657192721283827677047227616321943414771869912095812735247628094928146090004821453607894225328581329013964627398994609536040984863640497489322318159848722245639180801673476000248862942110487228743206027161703522234540856707398771960806030749092544040323629544930818421475517759950261696868845193777685905864276282433087848252301027930837256830767531816350455086102973183243766355795434060429890313699929567355206077856446089838695037899533650853378437094943781194625974597243825659796184755093208017766247499738634455154804403825018375818015774484867716645855796456638046229422984152120604022192182315035095248058416918895610453546532214172722963117742308740318575841739462412752597811323082187746661976573340548873649632771961966536035792899759958819442620312614520546175781435778568891747753824538832318166903784110693987432614517440857203514398071332522301302589322008438046932471709316492195473350734374884825065490294956321335822757569930380483606066893253324005251762577632086820356519480738499429212332638481319911496938727981214898091445318728287962123558963830557171243826981746096866837978101741613608656141571382939926264043953645394609385244497623833520841189328918005931943919105864707850329723620590126749555259130320824281853705231937967264304868794311621808091315438301214210799237437046433440224816387453721966859989510252696982915839058468304065654941713308889760037800608419876994874641158812838738769500397593898217907383359439792460219585648323014147239211578446855114277955207971440099911428443004952124732524978382648798291512702866838159313104104100541992567726598783909830248244092103414970912108901092303676247623298225205064790105124399989153829161265420816670539014453793466586340651049048486877232217381007765183834978495133122009352343080051581440502715624875976635942093410141484191236931737577400810409040591307095139774442905918549530044219030165564257406342302962125706869636849226496599116804124382453894990301098158569982816209101752668489375219703616136631048050001686262482207948695361708499480759903757881587180261611876879485351289523052143905754322814434496323275140498623606868482202705176407991906860687228061283415256761489317411200337849322278850347018431668315176536099541644381799111840606414824259899792004265946213782048149233382272584319164155061912118775563622636801386146116050776924343349944678793201025885530803381827670547081080563282889649155725195058436917705852749189635030673797945466949918665632234661545865554016352018571831848030142430794552165766472697844922811050489803194519420377632464901677821077289447155400606559025666300599627936280892142175358103618135556078330611866318231790487171002452809423287440314435457126371979857016783719448419097593853153172889283890055316073289455983613976992902203271205236656052985772862840888673738352712104230726412953946243124509059790474991896514883410167965748232416506015673924977712087325222072476694238726695069626939116457944597769266960652250830483717631136434176328122710880664674177412437924696818707746528822954882861506810335967320795641416369846524834872728358434596977727568909856042861224704831786438484894026494738622428570444139076810404417741493441409666538796929059707180962317291723941665208608341978711918490037615768416657927491534992675080018521197255981895575577068854283202147605748979783529225463457983256651966539679002697430252797630140138044970555695662333662856139405548779280142149127848630684512962377527805269233431460797500425935889537812898883436597345752147210996464081905062366970989113219191980520203270987696323477019426217367375505975429396815655837830122411332975598237956057954082728006409309856658346418788862522142847436218595294753907460897270726005321530349025590532083414390584297121506242602272002821274009042928109282275344146097978935842322570588049116126921789151681531489973847700454987740112088827707286106714520055221943565467117623092182441563276489887703322120637137496309778180314270459086067583378748663951131599479115202879849134349897367473234622646225654661333763213715007693614759423386533099463920772766506479360451642901465012915306538035994679015262529538243922699816053509947912451550387483617234903754525990943756168730401446392763793973782882361597187713244222061078893900907369296503614304878770801063278521629722714171417477902914882682944959112765636460579998784467470817157946377710717881351791264421874855289665999348219260385773758899458073914192215443207884630274112843994799807549660385169435284153160114341015939438168347891749391837165614054073927353758829022471942829499667983523260847103362472426928380081737376103218824515125017717909689507718500149798390223854319289924317321111036582893282498875248738751627428262784971759372319537710761631597456818080387807436554408537697152887075713480146828244095172604042139812907931683869901491368731899765065179046002727856751510943255574234561264690160359034232595128157940531930860543731996270428210476449031078441955718719322619719001288805247524750487952000514087459622686200155378722856292630442784871722728816039163871383780820059298874148679110716918405832910453891747848974587212064525665564239268614263696191118272851123959377915262336851826984974086753128494446593963092747543552229949761145509953169826717638927598724162813198073076419588221938385915531042771399671412346194810704515656816284016612204005447148453795135545142501791026920415911725287543834191976639799366461138672938636943229871759902109874212134843918594212805642711913334177949560543296081729092898735158094102013070735444891090538628139193091929423529219769755041716418086537722330604392432768482194456919914215883236089195513966306357620708418848697154146301465043696972025901432044224071582934107388884848367857801067369523524851106076357884509622896825779668774107818049396168024964928022394618418531931143849800788969750447823302359019785359526022365113036078325334184250284639082172392890235501798519797232190098605395373622737769906733460692013075894235893086871505865881862112655161044657975792600067598843580088559194719391050057771488177026564485762473840109242988613931851458835205151812420392958528418257843079821860342473796642047808046954759354587176367275761501085795885508758746827828454282432721404597496712527203736331013661617725624739114190795345884753973231659053920719615084583864481290776781902278064826997419569231704573979693643798681813962736982209161279834322731160230364118394087907078250943350321741599353445191016645006102464798413454860364095424107707520406190208627194634319733791012199553505887830972785820810441178095669375369891446551055244643742630936711192080175475656622704493292300577474742360767456481679045801583098354783370710381321240023945117343810962463620870670690445581616907210650067225719881869383551027753599586555317115723435397597182550353278866327818184312472135135504614023466883373718075915227810189178452513067992923995128047631872235973948750815033502611948307934392665693554492692740049102799241475126801170306258717748159993986649237331170426812607678980556553014452288506762895199312385634529171114175361251491011081187360380828328896909968196881987318154048262796664920620046435197612127794107054724124700974295566229642024220226090025699036096268440001707969556755641011765209836279314975106449888149747131191701399976248909145740493195667595782449813307707472939561401857023976094591657666927767716149289457660574461100885672567829773187913314724403315702358602348007277777844508192409336465936917531616459157745146512504694776957929592645825600677542894068044307898883366620608520150437195960754631298048785349529443235401215360848699131721900716773794544508705116292585131707692956240438493228521371337196070353778741867769360214321165048105461555348347361163594433630405450032278316112409883755541718057003732135426476756175204180360561867968674962960806163805171613046401451152269191544302176866946769385384081236503133890639824971648182870786830693627113044274070178428135680027507968089476311414730449238763317571110487574976157217524196169455410173843370420439629408485863647690449180932840616879828377870017543823747280127311657500079006896060267193005472689723115411892950452715211308265300661342272685580182623024014930374499312684984159115900956134607793190377770611527471513147144384408125150458364019133142976019354055430431885937797278151695232273610404876759618837672054510738887546606763427704577972220741991473877493467787500694548810300505998679593394203147449171440905682095453489676247315592023834773764003343217991433009046649314188070986293662369562515151822281437055715841132003625616642870416689910454868213293340140980019735304918675410592609320902392707024984030441768502038433945987776559448776797372228886585484302733724209222837418604692504502782578803450446049609949346325193241704077073022432831581083871312819506814079374597024453838766312053365205468040406833485594786928050839626416874635278004249822872678625835995128215617308563623263970190336071688997111445843665567992924640296952319539099898023410337472912183395947707079149882311933973032983423597407668336148156236679657609391464444849028760058034059846990022285952032691285404458521222069834882758829042378152818222799433376769376466178616550057033615088190735209679290824909828427811104794623376661878926985585812946626346267963481574501974211026350098306998054878296271484065326030001094647415646314464996905258791149773736279658023115901342777923186354760773473503508442208731392312210900014718805755979504487446051811604283065212005059997637428569942774746488688835918252070936510760984670110530078879217673943235531087326786582119892079103271663422300433386560926736404273735520820218265794395844884638957486158182012058932679581020979663558013282726493669114781982280206207385161359913950942284844061865595292717708041088428035009340899849891316534706590498522607965891414873414096446000999600491665509987684704076658852846384217778327724514858629840576927862824784606678975472957919190781313559680571181278375231578857904964632887051943984594882345263319700335356218492619089460367231925448412801665858496813557741884021030423224366493834244175980646174235437616198188172307089447716195042851329377198125401927914450934161113782646318490637553981134849008652972120515597902342652756874071884335891111641198161795383265367829475470945740145387268480950172421225599140706651143809831480696820417149553819201107293178437172462790381944749580613285431131885924385128842206912873784971233102266715133556290523481565759755044149028596916709782153069200511769371283950569250399451502926685638865409854138261738508361056803974364365141552294547997521319886459443573895782117983836878008954863889407760883154420112738043185663454829640834459821756126530985301672167314441691777360158309706727802285064920112553512561765671109485130629231433284365597995020475820108536999912913894950429280210977710482643339869476509665458254762217068615255842349781645549844201778475303110034994007119942473374397778360258164827368000822378042922960632458668323546401668897895969391236518445656030160217286575398167816891755859606235698767754152695412374010690813599758842276176937161414245354157934595552775953854098743208405941179798873799756833810252178351113657985635974726065573893090077592768443625070797918140966098608802947322491886009514132458534761965007983450600716279611153359991285399012210807179745849685561722853232988474827536732557248326619180743066037932965341657240601042575122899733491919811765056318125382917647783020112254552096360310604796656674567825057741294476671604433418468777413796974126825490851928269885737140616935919344179519184065250075221584574067499972347367993793278691298471602028972011783580673667098854135183471177985379383058079471790163075550042575619596945910180107501541804926731699982112258972990045811599096646545454669438950861354251668808171636776890359816067251715885443418160764179237792111990262971309957834372257429649741927180757366536829886420490512462817360231099710572259327082825300445380001226075084045363368903247239953358484559438784961785780785775719116894955968062224546514296751504063939029088286831247685288699773460441496717490962923865846221672928209170188032184440536331728162308043623455972449130615649229095966883012265895262446695145040753972023870496282206581006430497928958106335497068882190343964009645883825424345632532761699724343096646067642421707405594312919004841062147108924518201730745090539670679918860964117156298311068110684427008612234897948274453890039133496287677625540979499970269014949241390280814994095488799539241755216738885719384450561230029462994831879626138161073753724108655954079040127177667189383881211930039534917887175347792343573596507107392434016741254763666233196670245279995503921853031293002061310144193034980944564791895929442817562644366346402251203627959821438032383286493054881822289398299506066969148527298549044731627880481602721224662456606205050428607032337018611063094954982754921346610475115144021115298868553893285627282062566601184118839282164720838958544461674851719432262273894091979500336013139437900948453345421898741284965523422468089655468170655156198419305752218436841977284055918191423654749848827636455774902261528867668459018628048305061695488708055860658381642491008590482496974098632700814459921411981345241245712867429554263674205780007958271535214245572435709554969241202612710334979027101843997834893612507895069379564600432849069552498568616517216357255790774392451917454773026196796073755490522858128599386238193483986177376003145317588087430722322626248897048986422561279640322497133842427716281585000971882763752570581679430688966301097664518236065389886238647686346540411443589218156472162786978398377426274006014295157902995386714788025620468222706828622499633511615095856034218265437629715155797305347937597686808099454677250970294595111746197824744578220186513662925222327769446089855143897493001242618044587670273419011995511779761668000681522495456955496651738802562357642191382514983563581426138553739406590813630564075000382927450959147325681495670886714905794923071210885965100127350486637956487473348043555600736764917254867486734552687594915913446509837675643008995685404302006895592530652397332089858511460877604071001327318527293181767210637884855207253268228937563854907663345198599951231345216027060843808386130731232149701474807315044501066819124086902393136843138840575329292609824973793240454159404008070761883817930492481140504231291991696587654765512503601098728639303401425304285304260272191000572275336168353818148565382563520651891960984633724311895927604252494404937095077639379461952822739213238493434748483808994069837772488145955265063581053199831837287772116626545938412789905641098332570894134460088587785450377864322254298763526753016378191677548359871104933498801273837682761726540323321783975608745684394898638492786078190603565994959622293638664092043241788701319447356264484729864732397314615003405107997149723923950188001613376007622026924938141455819846808955048175109422746098591106180838041013098925641203873076769113277252173401767990357483895094091033333539358167964468461198282958006390995521732080447558246110784630753372041860962520908229741324652507760741960180647745074933423479152929152078600095054366896947298675019592578172750110088422663941931598459204000695093878979201096758210754494336066936504148581464539830979587207776214807116113906432140667263940894689252912736515688494778714029671888222135406789944620562033485878849181377445107198204731452882214406309005393329865929417696203038739330606026509974456386346603792310750313614750164992626099688565391131182464040987206189549313133494875996218837320155546654683970312042332230152184263437546661535750288329245081499165752739259258085762664395725659639562157361809937363815689033890176304093911050998751297954814624226935148908113554461105286686933086795225741135517435307015015790417768112165341886217178688691996976188375294006994720573192404835533301402685599614647087767755551250618592593027865760434247264314200469164020150113797415555151401078489057430161578142835641041075898686335456124063039589210713086886997007850202651591492433567477171582106019326509106680327277882268020177243183659083220132930060210480851605198904558015094756843791283389947308357691390478034867902380869842818646897345821918198685928691383184809455334309230937165551662764864200314370304543687077677754321671048753379987800419608319550271513168571858334749770763584012131564953631287221367535409333262397300414507717822435803662897698554181175666180496244458686239947214175523033717938042914821044144734546453956259757439160885623548906653730652135502468671167129577574859756375455103222434501988814509209840646331291679106386566306258146217921146352161255783376329406550391680540248395092968334440828297677558501477307969608464575735078534654762697820288411396882145812350758166782068231398349556756094102545911336394688042390381082489233814914040093535909170984661138360461174798024256984226629859844482549757441192910144720962821259097673575744230895809723075080412471909597404831587320825610449876654180265752879284519841899904103991099809581308224934116837192850235458391552572729001420337276107787186686144805207563567332319352723914007678772043617215834608648069716520477991509724216758007968189121268249003345775025462503761752000165439498407123140312544727188174541028203489224475328929032752252730767223723221509984697859454644167023556355107903625142115156600083414375198693798904344574138466820601185441794568500569916380848575646445418635691206355249156625746724608377578351825405213004575694400961012081309222993683220138122385298711243361076109319223545918101256146182765586911340282008444765613795849362896453848759345246500622639303743627990075529742390529626307525879788114998157038566129449092517841839567874622734206376233276258031509647284607335720538367541053020688974295552274694471644153863035421144523050613628951261689823829617321788091194838646062240752184836050497287214174185990871614080195078592250035024200159996493348136529505277620076290750737900666939538258295384130815011511964680757452566844811550426734360870341383390887034824602104780136834732544344261235053131375028209508041354891938684122422152557759269468630293209770449139565954700942271364986990079385437580898010746891713371903022309731148979558508223881708091980475682655301114974110894831980816460704115491694083224615364048634926651591397330460427153340684821418063228553208038435510112005934402804890983334825980084935892130517315235029715180291216427268615202364277603630912485661494170062615617097912322086926258774396340845200607162268879668939401218025700179206887318475540722931990252487300147143343641181341691987092272345675808520954996203540470658829503263509933578437243180362583870808506358491141599235216500469336176135604251684447891690072882077020717927802320117742467182360958683613711345838207925373422749925064479842953572054449726784015149877617065373917481941962800829458030654703829716358954057585587499163130994135989967365081891534961485162818374382421812655556681192946291101104513874017047446212838125276522480056303225373228605194905865103203712686949165331395699585581204202332793960802779670621821374949973908833279160072314281529937109090169234377179120161694155962082602907631088183470137219895743230959745798048360140338115874060959494680045769979941781333673620739359627270380922189772743795173711208311831600213783054997066803741760790891163016588203765766319184037186683607688172424199393640544723185186036895251720654341209429921560940630751301900690142025241080908689391994761746559910489162446980234268076812383381865168803705128458503420332259888251797368988021656341701799352443333213889764954027637096826090701835974931660040950143624747091813037428441803327269338853450235161448826843934104549071861122250359035976055909986510496909923413655011488078264165290902265425823416523332932258186771344824712277773085778248407573951719298474149833277112969082966022881425802474500511443169279746767336923114304556014975391396503247885123027001011755737684145312411817676369233801398996835259985147929113096784943141999976620802331778336743300803289947293036867423740786601707269408115587328230195706659849100749796028667288499991638624601159339694984579607359569899378528695644989866992052414351990606539428370206438038453498625953828182392967915527879786320948914319028777240927283444066773806721716733057175329833586326432469091927794992165114772196174764861186337222091118992638293512327334548653902414245915357003823607849623417471517576668298083988061546179446770624243162703863559731091003356547485015574104836070684353796303065041757662758880112692972487112137406167472015982101471233855436245936018891760223775863897868178121000094538920357373048185753174630061127007542641943090012477763287532699408686035052058555587805845587013990862548074443328542409235271127592075938545845912729994586967119914989784155257998234268918112472923277062027336562339400701378659169858314273881989412681104128104320457775417687921812213615769580808446826925827686974691536219107240846479757921545377936508060429525646972831650322039418904119477156701224177038789376100083016084431048725422882544174808823046078642678183470713814675594061905891937694374365581398595380661036613908268637579768388619000912749795426968663439499300348867356084848689550384889689776325263849083143940585685598017087706245648656847276500667709451394093708134317436743667806678362801273069820428069398239155810485004487070207436242401361416043398634147847677793501621520626757052519548748466267106170772532008863680223481571119375515205708528956803338322493444940429742531193832834984154269266651392226752354654048479336168907824752865073375032546711368644254911144407875214289493949523351888023017820825428381442865747980904041019086662551371467119381247647654809839840652013518060521622710905597559437678220704444966954388428209809910421924143723585093813720310118039356916988051739079603982743346712115951639444147696727903552657173307537794095702622413072388372384311577720936541456150408313371098162023135742036896678898485522528530752288989402089114716603707786539480756020577893783128850231347563689707270437284655274287461265713076253525532490682934210986931899380273535750357147994897568169489646842256373880295649910766794098408003163675187621981239391392221734457115520014550216180804499297046645457150299121137786227810537927546873977522604071029833941623573023698836996299763668462968464710161461833914340909223760413477342276898258248041695062134897573109681845674121760243907243680703087752665350208053436095963844473718357120856353915994877642886964761184406772893275455307699517601839824908125879320734725236500199755843303995941121354099428972939124514533987617964127809075784675645802059988895532907572938449173236082669024205800632953468234638072111022968676638154404221218148869380690295240152162599719708238795487793226504912755329176039772046590560433379296082084740886162945864212184628543838133161606335107975494086148635018441401526637550935484395507740837916192736800365213198496359391592513833861228649933987297928070281661197354172220341354640159096155946715949473150483545927736194441473461659928641664251209255536065701092292259211452638330546936976179283780146138362453800127498443146425157831263029506932106316192752738526737725355515090225590653238076849771110675866935661216261770844113570231161533212471179166131875797805056631167026110166723360491358443298019785015858611958258326926751193931281374159912574239266033836864293343192919807409156103842597942180243618013782759536231332048160102416814832769843283737955504024266936074073017788281371568628298935740889782325519816599284841127615131895390437111631899586960752443219482657245095876187672356335552368429698641805833262854290793947070866294180982420351851822172876000526928775262489470746286696119075605758587270714381102284128544000387022893744134114971197936474062458044222022881201797730759014902774636222923641054084318576083574689846933058256838368582480403819679920092085905934490594311365745794020232634952373869047399461554868470582203957877409669278245237183363130489241295000611420691450413044933289639209966602792760057943100863808969364763314704651255877154592101536096409700094664056705443796119890600898246121303103450525712883279966237336891814221006093566173909431511652640209150833687764516303725090866313974952962560098848641449847816533990016446492299248840001688039392553044205137068329705533923447837967213823961419095715623678254158049980894701370943284898841566032736861166505133280567780382250256140833039302777937018158936705286891534832838274001460004556505389855688430009054063697746614014759845769136563761995950701611935017732799305696102546169814299420476440879448440360027486963092480368903197467936162368265456104771571846099573026243817621462245815391702514311530479733656956480053613214792983304063843081350820936754113874648653183340246596292759396240397598049677994789869766533051813180811399950005527299274399776976734683795419906033219739100623493420553129243912874965690055280300912084007906714123086764579002878437111604549083293738665503266064619778643058231798669517171210194332876625439834681039115992014433883207716927263520785798013255344023037611392388060777982283415979379990741295052890815836392452781065926341741372322552648522257758362664399961751050417615658992452341041799471669379063280534672312517407238348984429942182904434627684829286430050247134652761367549605794004590048069021055367491484580516304922647666169853524094854793133165804874849495727852323631785285960627615267511504888894583178507824522143661557152822726382772808748466496833526430124676316599236385240704087471264013716544125449876118520735535781805275046068464792861305979680937599877142656733064615405065190131480682109790177303681188152231943159158416435393632072753141974742412077830860050403725068119608393563608596150382510527545273118720454543167995948136893857544832597971034344354252888636809835980288479120344303974625906440667899627901620215767896211322897345335877993304909398115364235250818456245368827938236028323282952112734953049279725629512762841839873024455152001243313148747873803754098614874035209212899453521794357732830583067697974737284532274711764898037130816928530925595033703078171958109960482417959483888488740496465193692208023923780004938390568059719600953315495883120054793339768397001967581496974782564528664858366253949733041273511944113812771278696182806621681702996310422084343961641442359706049327616739164497991100898416237522146302819193371615550736078204152717596728543341335319861476556937340707742980872925609811357043718674923254568331142218342673251969189226245462751773840030155144460658202952754367739839349732317146839815241324496975800722804776439125799263712811600814808485620060965396356192060431534063695685423651187529327474765196794708456575383341887360056108321606354416662606744160452224530477877277564484227927696550145807264189616952857662036353359207823531851526215491116834253257883709900558411768952253784765956811382465175995267414603928098208885078985685462451175161124108182475827755815058991167530586609003007342417888303493441939220265345951216910989395106393778941461150336871211699748398586886756713620852421689413992392452585327446992113581639393604949532427051057032529805058093599733041481021248896760380857517495760025142229954396999087940551272698939325415436865240079667204472504182867015687738033030869252703787904701322167993492972844751136417903646565322263547442872090855782721206064613109812781799970598674677118525488175301326512104950829267525209650122662423152059654131001028189718372314390992840402639922757578998039339148432172911056324673812990277581048321656189389685131064341225353044512347515422547720040586358003392385187301168389775976452027692511635429336105001344438155976163136666735368817664139500398967780610088089198972908705565876171975130896607040456260681103416165210094552228917816923344547395924302235258478121761558093192534369258473491272180990125335575798095788910635317131826092491361765559340655296153904703118387617958511508130543513536326509441572571083615831747360858049727748691486030652198405696929932717997656982035700870932120053602869356253610526907441373242248407826251008337061854540914369039210327667394541277185060713113094639669583739683466200286013825189449875577386616569944420658218279574492093814753769457624866541387437035175082332595162908918145320475636543616715531070489607881743565934016043145019510238683091562533526561668405672763057434896118323842105054404271386127881046108821158064323145636380634932377705758139521082444761392819520461196652330917292868504055528983768667857588628189739513401071438805555616786191893653436906895934536565205724876520393979254237245136533608511785807737745156254260790474274695557741983412735697786982589332020623736346753361289419998393480015084347389971177863194515504045265477070920494996130041415930773127519592043147031400052624013945480707793462395688147997716873028251076985101491405056171755630254308598307617985154336819523708505472616680548706950299816498502732894414391680721372331971711260043869458851075825201407707039006708864287916338521452577673398280296292460998041970569630108181554986034077092671385275497712711002622579088114092296148335818536531391417222619916958525422895058105636651623544649265845804552896263385293428869512676260764297678072006444051910961489292788054419721968619103204379830188452491058093887431856730815656350416218890849905576603577754986728622890689643736072003557616857790343391224258195340509089146487674425237111914667533866564939645109652458700395908945363061242813526604123597401168165808035096689287983672613398831179358512943626647908926482477025125460439364308866319462547625747643813821874600539499664373275878961765360758486987509931537808666758373220084160857338573336792058134505010440913097008622303360045271138862588067966957324247610469914128391270397366223627758631724648969483526265070290187613705837718568050824374924467112288163288089455950720245095641666118008142703985245473504136992866947879083544466581993839912198448590002282452146568191716699532716126705199832788198339959665710008281137446805653475006297908653110193870856933808274759013680643657426329868128184811857511825485402179242984319730390787538597123274430999897443995702252675292098338779451636147630447368780716532905038261990040998949125281958619191544891674029009274375163004676540907073147600995111972215861840088790509380636040998867634645179076098417209985722063495722842351077898977692434206827122537806050431065471405915562588827720702330083401137047427634895208870569071830421576208876950074942967591890645454256491042502487652194425387032566140201889199987804733474126120534651424102157632066844777676365526694423414431404755802056579914069834875978871910791886034817119745645864552027916386082279620713325073125273182836427327661930769955653934929602562818343712600731774836349804547714565313880200556118867257112658498811401904258258519878074399712801784617773363426880558253578794445180473210868314450928773615517112402800892030999708065995830753834595584050380919952956243735663016707794116932885556484929799170902298722378350099505359392404324817809580017138287345472005372063171988531978289991453846940436962664117815766587949982139820492416625132430702946860857266658933249258269262648544432940706120447421640786153772704445010071391956961427476334096351277047269192753390368552724922408523186353793790356301072336092399731494260753151414358810201439754990599420707541973641031132491810710197074638429870583489727912255524901624269857931045628828445432134590700729020856962082869737854498885672805041373948891690691661881291507337300459548927781710183318128388576397400324934656516353646121302670265958418819293093527468706100134200523765564661124000732890971321984890120649412436464587969160735330263434937561542202898261500313237742689674202016828328287312187473965983656203907611758884636581546358970407097159744200126154147556275928953619860048529932658912558293972156843210528834089065667181738908279664716318020561196193146586867542094776023122785911508582789514551041034840705869588075929270434693877286432831337228281177671270425875538224103931660781889227414902395555370325393501361128813184869332109235381214593520824150931788584952573547614337296300247216796073754107854718825039179070372275196920162660650461839287440509133029136209270294342204736815924842643736750105037494723946226477669299314982578551059605741525269934010048982672616345438354534102780399684290907663998929999136892972240116623137052874691264976636820844367530302373632321169047797859368257352101884504578207966821402267395935297722372205509752635795954973725057730288124538505507150048148569647452299645308551926155180556418270901789587985174200644440595175410819678058374956136142250764561788452095541177912723026660112824638249851729580831042581293738606815513114044110485286852931290199610240596369096934849563675931579068263500590399351610509456194174610193068329718969935532325024622940549357379070872190350045129321772082319383067853437529800282305497129435021455871598401648948944979007594400332277867560544413358069756103276170871477407268381568166353207180270623422244668020553032023230729055131516299728658705739020197519170198037491443074547090562592099272657502067827938144633782471138775710764563811160824469549377935682626614345140675405255469020365470626927428107625285395324058935901377778133375737261344428664977249252731835457521088054980719905340763753621891955152800995797889769466570036915986362539311756786267371611771491282544665659684504251058896079162462977516956929398937350989547716941178178934227447798782779973426091903982240798895953994104316906471825148187312374591099335839626469212456880462705780644232389341194094584617541349572605604356206999594029027382618448778330912969200258345175610768284460983182121327031028549602714479593405051317460549472818045273726929764735566541227801639272210386510685028473690121670727904291473294519915116698958181552094461299231987431092327133556903540274182871018518535097400597393701763741175528861401105839219970547774398824997229973363585216439880971110862912842994063473502223381405227523429013147536214512431395332473995518699222067017502164682995677494381645354647314037284045589452942873855452464040856139182170556231726776148395429726697475272310034099056403518634337145094692404007473743936635320111345226785797516800448143116198837518044911517107637379977090504540014397888485700387412225266487644630602187186849313648306005701278945918673574575031073415416022991760224006388010564425060155800575900795847496685173643011549017144177439304088998639939383856861201018359330410242934508783545963006668357456395222857221609971075634444423421213168257763270683141193435108617483462468165600953452721591301988627340455709957563912563577888389651745448915774345587195937890232510995496381539616524464719415494272157829854863702242076105556121315302339375902329416468892442641336105167493031988059549336384549256120396136615309877969608538249657192480447597589557113800973075501049843791469360258813650326314498616058681479045146977035341867473249327188941870432609756564145586653926667304255601696670870237280864555964571278200690765563985634846795729138213127503275803684116961792086792085687596189310554514502233192951391299547061499126517764159511871772530580420203784678061978737186898030353628896316394499350809001464796941703580708282332141374933355793926248718951051972973954119563356525430146926458604314281149747437046249270294408054429343275254295846131765943971824756091588627463669879332422409777593696276692450970170019169730973304951473392525114429379721249928734854361900309667353347161814158732561396742845340286788099066833202416168681439597497648381803533144778498081638868881100934733266949234041197069004090122166196070779904703070260319542127949838905090013927379281882069607513554517289316344823536778901983257771870808884043419600080231679532162915678373625582917991401032774837695016399455366166084724718544971917878052237503332975022454471661899131794014070449685747542025367819867122189659184370906523160909067683155261007450839858447156432843144696441408839293419652423289987289063079230495603356411571584674807274978133193682943946647060665245082099970908812146498446874988431769617926040440327798354634451493533699206573889647388392757681866793615018917823891295232194041098488469563866693593417605495246696645193835260537294141983995594681786999220161821010782784651823803372801481924567634780978577775674052419766621645385152931626043214266405216197588851325343039338389674845552009939485955347128252474353397280502690245493364767696990817503413664402466654012227054988718472653824104541458828033637554861470006831008946277898300036456339237213604484303830847493141409362039202483853465734133558224216264694435580817609111098795704544350196217587410014778406571251386802038166000854062776321532688586686467330312658755948220626674326056589159005414537258770972740126113503504748929843019868408146557620198838457927040604660863746630340603059501309333042866921809026155154813948784114302611575400988194008451169597266692829016300390582806026305243893268069065473874933585406403726172571585405265943027560363699676891922616224044286655926259507351340678619813259546661930862595451806476906054975555424109898488769768124274744867875710433873362532782980986654027490406484245477631841427899398297903024488805886619958128721238228834068739818616684035978966168574834059375962034313419773119677844276402622166131740714233400478902860643477259938982639224040883879522670464592075708549618917765267116204412684816065282213880342560315827833204413016296933418900086004887299006065143219730147100208659597958273835337786416629553694750504710555461785464281900936317383154541041326691698770814675531769234803440153909961272795752820785978307133221793245854536140947320276243137282520813575971033974274569863042306132322343906867634380146214884981937906947167996215678046090598629476521782973717187999146582435220047867509156508772327508435956026289638852818087980004053909252513309578175468120675748546782509940078863546515457802415142143065260169141198419571108226182289097801204674307733080964509481310853411593970214071106716699199582557204188988503572567429937585809066021002547293185494613299589206588017925917764679542505434194621050558943870530670026039761674185110117275568902768140271895836728093599799113718720580261739097449546748020507476902850712948171840701639341040228196615535569015679152587306614350340685189260126798255813487369806320031610951452031314295637604628263599934324654064440763102643291695607849153874459262483697761914545758872772576688429260830695689135809445220559975408239542865951829953163602841602029286653868743934410500796915221568052781860678746101184587294975326274045735017241344744179181351154115412903607521623330213149244913819281106184268073964681909046161955046414053633381505128372427703808120813856546612749791713886510327495606841796932550146253771232744878848303873413716025436711297006999670113669517926364037679684925899888948510880070752957967016775070930181887582174150190992792798764706017584548967385379639058142342369522924328141506320391618086864876786845071323461239512441591862411349551410549147458941665256368965652444446951238305337889766259015712615392161601258300460531638102538497715415480310363420066578335797498751979658820175593278936499294409505545621833991051374556654586123681723837019043064375080298630131572658605730364976044047524683251663599216762862019176590950015653143512608676347414588528280667388793901405098287860823954788277669249745175396105694807196788004437231109853130336874376819127985334647969950716976465709970477421352443060644382158149501940118225254789941525098822086097296017389050802468132831527960772830579270423707247586817465302955904706942447208895557116315066645626222123223843788526848666572166133095675040549640313740848147274795537129610483796688657252642661292309155487526101600319944111398026394527398811694343296235494478798065112183105536501274835006586702699630425986700240163697525507395698250704125699960535213298012499892984546137689421913086391725127018696339790929638631081825073387166042500666925015448572153350533469256102489517230903355918402574878159887116576194357512977657344591653376589468341612730028999302751194025118505643535074774383209887731403113506359600628571645455213884346240212618529293819924070735251762112680998241290095747589677261737689508044308259917190508938378754714963485800967888361890252601707833369136628209015997954463065299613659003926158665292599512945420546113459915118475467178356979076094337729888606746094847103276532790138430317110578448551915491529543759106618358575052045352799822188515833197219334333908641271612876235445224315928887764688925633089484315649469171034618493577152393889313578362346727036026301031323237911747990017859341943184615777231805623135640862166668473013751626014483413850656075264903421528363205840019112740915157145496655741736548169787217515935967571136554737256921887055051936233085743022819133114702795686329842602737988950319321122322693500493849405063631036234691567877726267487051384990343229212073332753293456937101890943258401540907387039693759565670451249450716314298323292684892953728848190809195031027023419877571126943886368116375371704585309631005657273750499356635941417599027783788804996176526045175389276293979203639977687338672492434526118711891098868982141232402101742293509014663662453489651372420541120182700891861884829327749527259175406683482062131049226272034190442293990848882899216408342815953211238504743182088206983509188101922917363539189304278551884002370829329524427502889630540146891117088863265598437605435501913403722584820890188717312844133227764601640881799260690116042908008134897217495474427713092101648194261726043324321195143559786916737836983975338376753323448421812992470312427872208867228371319411093588882767632821220304446882386645375709662137050361321559408372577883694735572262039977159587555942594035370499138980713797135418132995921918455862897079316439186244136101727455088889731632642411721208665049312200271763235510637703327470162475384540620993123276631830041323249983855209435741980416485470610233258618420612883336762448873536078368831947976051626959311203145112945840579269921509918379541831057400157992306471267441433999283172472097260963558851740680173361986653043213288573259114735361793655842289163740774176250127064803241588001198592323077690757223974872835003852357718665013172968109899724883159864416273428879599674631443206399977142795363471592386063928244675135672855507901163290409154076497557492125537082561659087511267674900871773858936001910864212144764032351142955426052756125493101062994641118667927858528052353407494574839725561928370472467035411905008092534490149850007246665470934997401584035356189068603942067717163030061180018712530088216761450516678409096675947695445747722098019105937182489725055632656649075662039957833280084254520889896007246719138570025353898861037028652462546638907337204047575759326096565411308954121490387978516405263393542125314902311495259695008366231398435209569671754816972078277784686265916746818259591232826411787412365923444091226975283659398981671850897849593453109547555607161440673587375733624644685658391683687235341186104641354732663383119088843550875385652010731323227709851577239679117795388570269168824208166631585826957704866640862471914900220553349459744030234943955094810410313733851860713019051522149763838292184684657132399123444908835191245705375849854429726156274699186117487619948092795041740486194731826212462745777208604537834029837754278887582511750971775623755603792399506781389022131689893769665480217812973237919554882449282215597189289126976640415686975224401211478877006048730176984682275033573483177231723600342327739982648848402675695810321995698401472855238800283979181177108737108288949855041463989727061074023897061554888715087344511641402621654719126014173250427414011391866793968834730234620934069782227168533441101260048706339229291124131016131597840073771937883388824474794631762284437149815215344110490893522308354707362819180715293974368655917380256060562538883628530484013006819084792274032997210794853821819560087060054822541172726530545955113343434339819487114545028960132937503779877174999188486707420860775827170809593880559768773710024737658328896677869936340812579397648432299091040745785343612977983331390358531917160592332600929218032428768816137685158415736762153377000120212406088007880830964416469521578837647568795186537682022427409615948456601511975440605442482621668112473372460241277304330607213847862428158977865694693426557183429853743317225084847691542469148726408772898353484439842877785250159711189019517754578824671814158415077777032850080832048991810392921768574842710260243201813000883469837766988406424330165411439862445634896691087758150048147213396888804820105583152641420428010625633255795081125196506878495764505639411207362577574838456093955464412156508701133809599602417079464597756506838881139097970891096673937421762585744493692461722014017485076290023656699387740566644817883447904852722766980026609060557838652342115012510385504435879106241516059386045062168961439407233000898843995474021486089297509861783960256289021803870469847306882390344378882796866687628848002457317719520172590261709279200686953976670415478104253718125551660603717522194135850905443596146233369254120583353098231640927313271047818247592184326176512538213598484667615830249990886167640244403189273023588935367049237409625350981060535365416522912557366974471165334759513250322743271900169514471892516994925215215615872916133666466570424907932583939862922119675884127051083792483027912128226453308566273059966973587373421672090221648033438992610106367526493604002688358107052618901033061817387923822455564617518844035249421336249323372328025224742015116333945932029399569344300102801266837412551376091119882710028272686635437289016162799577920232907146187925772169487727756590751711058068740628009017865526265242777876948036673888560467241065351823762016342285388477051712426576090000900643591637304515286895133489796464411653099334267729725810939088152778934883154821285062460550633221015688394849918987279813733600980292752737656680334402111961175860293354576317322759820753757743232017207953069145818737715301899449089709130977407863997703138529916880695452897057917239124303269343246202224551829477349646144843077366060784004975753620726063748764102904433656469743070265576127784539302471302960852938030468259462434825765721836779506169854033569212175468930493688545357470165391004274368119709471582869087715918331360292371467443761721198446810629106189483190538252220064059788664589906997064340631883624660793323611555221913893992218899137922419106884157380141246049692589066094388965478855423954365814342509151800443810438472156310695522714232843904476543932277715805424146472937987947809953480408084640777531264834898997749364086119378429764589674878925917492805583121720798377378387599087606899738651388475896099539362008495762711878890483881232112993509837679730938543394433115022464863177441058589593511063067896314714604628206175896326834713745894043468633824337237076708605263716004476534796829873930036648014080205458351378721346105207714008250888891808327410811775526622850697875254810878342975822923618287949862503357549496071364213339680652983628514755961459800778915271645211417678507889112737079150602615547999441497241698160859130688510674804063183373369787464303097404062312223155017479639426782530729875755740690952249273407979548750768280096357726869482703561607273066050195885851144857227288991833991250507332321810222316931838480070267227781252561577346414985874978418362678906141385655813714094965213028951362609268650315153690698273946528961846597841251893565788309085664190825513105901021891034585622659843184301160534395848465193160533388045461533147814210629867587693710039840494610879479698034021645538869647068356804333000448326160275390686661468619000300427176790380922626130178110471215710378924968174043785117318770227659930304577054321289183628428767747489227905219565847781912158593670969203891724355619910189598058849031260201280132567486655103182887793616469077797982084968898932361069439854823467381460000093589122009386932677970344310055671461457372201921722009871625156654418839136511829787056882602771126649037161035102989031844134300266775323935091540026090803878189955824146446185649208958101042364292229185326498413657711615580928613099191490373879066581228911735426899679178185987191173999653685234032310065353988986745132262861637056677075288603863785679437998650083119234404529221177759762942896339606313184613655905456542075244863635015937606213040025248644290086207833857519777892920790916094964225112241345413607364587171652096235534991540433010189793260474581017239097253696038274611952775528298089685497081022262658411872108593862142650494468043268075791991245795975988244750195903732336253165917624523405691439870058640070713495191697755434525759746268004013009505060176792353095916243191722950378580541738927773470695125753892720898628842647829393995912095408239968150710558008883834411786599748181433257598389357979531621431580390979374383075645661085262608223467070335684123654834565133623148213102017976016216931286712693503643424272900326524138336660068893809717373002846182312721082256427913652927259495995289390785536899769882813064705493117063607448210597649731960310544402811520144357154948935262129984863394406726708694750071542117049332920184833117243771970765849102885388400434551388604844702417245483243571111379451690303761310575946285872900499070004770620928954619230605811077748567796879672350678320514585014050470907077865908269095403264561453835782488733054974600067484253341915768043886786234785194449997249948410903135572474815300048129060533443916348081501571616269343312642591548499163696375927238396874779562019896714075298583747094132079163520928956293463269714092820578523811122699234349879369679188687784068804223846438956351816909461648992253599989041811564194616859642366364834400050710430986408499930088550992196093277127725766897319473847345027095159436625258739255183891881049329888131413429326922762492484509719710600698486593824170940773489531099370483345849838610029046215075752429046657310223606385609209969857458994165533565170152121590123807429778118449999720425612519148101423026547706784866214077411974314521671764793259423254680700937447457775736959940415408986760636235367512970697377790293084866257259015719738668014403017013878936411131463705806556969444606182812571580102185987116764819930799412102830139107001249578743879981037149548617320208213503805102248969450251751954189689832840741494666696400674618426179276043138547155717857714299422896459048456898067020052046948718473292228029957567720422276650736609689134599717585855176320798309983241529628384751068697050626288605317195423111870215560404689590004609042482144850674546545394066227830198814393094937879886839548749662950186922927457340135263815662508988470207618004942327218677926560087736596488695645008831178415999809160855081682910401810548530899417322158960468938829726769127638375903431511072558409415170036673706613976627222570036530424821640424292965211467349598882715359896353850297987546636270590577753290991641354829841897884858637117832564737378158053183701339792691376233319976176763109244887254622494489078516838202487702861220019650636429513909769710017942142428179066217670051267470090102455255373787314001820602424989344448979480628520189853226098126299719677866232996793612712099609387012490421633873800274530379414887506608067293660811841458504751714751123975748222214514377572509645516547119507808430950916920193974396784694509090460034932921239527841813797289237099731471381499914827949480640264441055895819558922487160657261649481872577812252508103301143452461602556817024383635771815959307856766916692657241233571981814936691087942340783783121645651739467196490538636768217256893074587198716873614475899180698388443150212679916283536797067117073399357553468858062667166691210290996469322577904545930761081068191238653419022621991366110795850480410825251581733176902405561204008142221827500669685411160016703731616024348402252227630150770107353170361845074882045930936638889124089969104197197674670501707072567463831704048436704882463827576467948841950180413397330283623903033579512337033208622354246441800778037239946295705846477381197262148650968760629827382548365016134955997692278006178225583209879066821381508128145752846750613274545092519131312962196487213944851408819483609810975875129459097494036447598619333583243628225701106049037570559045320086616900427418619139274707206515999112005454649738127853262414326458151637398338479023753886621771027247832346286172329984459309659230408003007943517038991270724761674212272715615907301582744411289553010260647233266306468438781247016742337165808668471842369491078631570108245204072627944487432777751746071467822364081133110038873907164646446162298962757985759122480933612434523806410715470748706074082842618087182595657757788335943144467631183731163496281389266986305947167095248656065044775282283318670795626180418136691072976132696300438665703550096877864525176311419311315387117568285614033257350753989311391125358830137194919063287003941204442551193248519373514713175455739196250692300426316294508770423708284096383305165797725915505735114758320714060995928207189744956452016413497021948205238457924094783029007524211083278893325812326244497883571507759777928005268566643260568989724598630756218777539703204114014818494168868689637530432024804457443966002944891128440535764144013720242993199378686045479283079180495956316137871962871378853437341018439820208373533724194182301906951898005356833437587151245162207425719110176756515710767797408928482996950565576504852777049684114019393080424450100286692099193949480743681720284505508462718969885455069459894401495334376004100869902989455214818983461945687281078073881411149505278197771457543318841253292280571320517411963323292962434958935680553676649322334772493594709402450064782435461593832692603395111625139713825752727773475260431340543919064983190507486316346067331223805678408340106669313136832654742623500923027225475131069613989783617304503291805129686225740958093786134872178319877099634091842117406254807195835391683759938109019393489666112704031886827245022618314755633291944654989026993835410680412440676875824320322557376137632840910931882111812667667293757734919837818957423056235209032603313342862920708924067231844740698780874433677510676686455728998208902501401738121802625721765916117742690372799810261124175394062272431944635597763524015324628126241440578333762323807583222661119367258937184026928369926940857076669200864950177981765864339966479700509004986597828056620193289606756983731126037200515484274040024421392110397452303226722521997454763625093732548396078274530748748941767858111108372352226286860635593392555168577572153939417671100200269277292868444972685889620009480502131831544521051110037761347450003790196237985948030547191135936966816963189422084990937393878143074921594243023329299485590504287488249261549150652427358331979886268408671462367323976474113578110073545589880664404977935386771093556981182815169873262589982889053301427734930459104761059685383044941025515297758572449214040669540669986316427793642191678760424593681316640735565835414029739365092414011242691096833526420960749606832528848553529857494807164448584202378702755049364800947349985455269537017319284803021700153470781618762978190127808914513972667902350626323754105558404430206000822048561878797670915552540630720205375337890014142131830120058847869577855340695251443389904526546751273180578868392101356080526110331795390038514682500889407290054075469938138799389116083494345662469725467560017546833424631127584283280707840931103350713162061170190156876548441548726296072588556214941247125624958041888446187889819374956613178383356724218629621265928881173726642145517049778871837117726002460879763694898079932641219082143971306071604538577713414629456005721075669088874012605829710285554485676544348361424924155692375157216029593829302991615402917997593069420979315369467465690595924499349595200649558357305473665546551344207638322756276295207665790150529244762417623591852781382081098244099545139570366306264971351449579942788236119641375306314779177168519591345094719312436920342283254722694659317557081803610092531280626415659855682275570257291915894109533831063699574836276182279614438181940260461137752708744782488897018694246278365066831764927151863446456530452167189565306217724188531706487481146652899121585300180196932029844751638516761100616124672979739351435275431230507200523046802027908540186082508719959114845540089849049786972610162274998534717359175733602793774595463724415025784884370281231288750957497235511605144082666364841689245198010999225853260395063723321690585781202643712710631582040467292040099541829481379885985783297447900569174836282391155600558370028810954298764249881164462079426190650145337914954087941456723353851206128382218120036201948377713874506376117900454895227546605107984894828184290503104797390855422764682894364884304761236144468386990297119346338008200936281845542683382230313138576356163346599564649527021247133748361124459589814953453172933051435422380402181924216320060099589324572158532491291454118069402017041117014491837396655720549809280072098021081276389603457300754840854299117777660318637672287670764326945967138133320335931126620060699256126143254226217418360569066868797353988494588362610699158484049809850665651449410415451541420355322634864042263067978059744367725179322304667071817805026015764537968574228592513136010884458059157423692097479072942591007030940361699715481221754744043672968267980866107172475847568319773236703834700900033853275063151520777547235461229612363396947613236054738177917219004579445930136223128581509467929490507219525505443548269860779296947531840039895444545114332138453771573878461938337972463179586774002265089219260206519678708135112862931620211989511591585213885370299686021553664164744530824455495276582689432618110045225620238575504996122854060670214720142176162680077578898721287474495070511636621834258180564407058850110699495937045820121006886119019542035303586719705433049965857642271334285737188508853429447770035431652211832221744834163857735403821605465449453490297963854393506130429341951165619878563948382826396649204720421501423412881945928914437820834167855322055868494630692426109378375562774157300543043101053931420973124813649758034104883460254795231278397201447557310260949505810767607540187831040782307961111592784837881777049786033663576816291609062428823092787910850246309582745644335657833336964736690853437527218431720553882204087624632607058699401835385507418811612390885698420555408817026811339317907235039405189664122386355903383354346386447297221540070142896000301671930691067301871329068656810789345289394843166907723745804736746924341993055123417375109529057454720988804161906769470994826044471112690465309431725062383920218204000367302813856726490682753281107453922810719760393492492405899489503235062721313117602382519697291353282298058101761740948568982474608615791229626497863425249243385214971477891080075544067829432967483184194613714369897711463547700548308836815718526307626139881758801685850890346977544321974969891020262884376771936270852090437473419414958338656719590958754404028470228292975904417281943505525363913177275553941132741436331322225468066186319431784974340110995131070796524234106110704944149903612478582321533962377791300749797631732019696534763475862033349919101494659504216222478087405143228922267253655756132294246702196528681467909752036179590917724938349939427365949203815671912485718072927148640300469380396981733482997561552154681858466616648733499714878514627397842140166212304986891611425790786027779291470550679327055296620180806589679543301862493812558052437943815915163041493970417937214309186254696474144494343929699275708996945438125132827933219773421781295810064870666146834453634397909599903396395119829851350320524252877086044528843800693796878805031663251689270256817148944592643793304438256001123206282059057473958422146522055066816763217907459299223127018244033279229475190954595668617547139905893001702799255314492112808876240433782450780102161221199405690398009881748597989272043188706485387611126383618256016390472522493410275817473561270966407619927221125777257296866759830443910142270087148860489195030944920187099232855072875740192198695543396635360355424269913877062575698799985998922028668403545853010416590329462259682052817623713790341267188044957702678697838990491753386767748062639558347002617245729451535926769040602349396304258841705427649133259847394087544623178194549358992206614171289413457933842514356869392978009339898014360742854119509618717726577273639951023832773992138022062376319551372743499720362528451322527438280263448278286545043132889253260889508657689949506800494943935115084501664345259717584899747063719338572943678882273687937558259966229815459324729533913825697902355222778405663595346438325696642166177341001908921938525989812115032589379377207437055953969585817132740828379166832834917334705989164009477621362784835340222127052841080101211177449981249566369670546825869152343449490759380693760276441167757422073810807194794302779164047176366204673686752073415358033257858256516240330861357663150396265615476395688701995000792020709921973089473963334400646217370830390416797947523559521196502827809801943796772310450670733230953509297678704380575775520416601320690124499888550452477947146218941432819288416236095882395488458105927861472064686576081572989798099120700582276874859153069373391027920724172260490827335253600733805555728076327893168597471232012602338396921916838352302826398085006382984019611089697627348250773764413427412658485246149129528363417713240350312774821647681325477085075875698629895528003623323293115627646290394770510706778311928174113816277254050612329044593232631921752187213140482822615539062607037402697252740008837482355534169947925762380291889546984217467384436022994865269442592245367012834477136347259790345286988303164654650754464153356108604425089639143764314016517930411290622446052502384956596824568506970613279407926944741960757818010908428836599691490161112674742266320376439099239660249097812924785933364082926794790427437354575692538389050395362937319607252034568773291966428576298519067725865480907274322705970714860628563356714138269626148694959994072554820869893192035335005967656762989393055609835072701953585113772937669365804901936743577656960995320120969509126919512184271891066517249519903093959047649278254422756682642741367940732329125867045439277345903473591675937632429114864669901315598691965478660657958540897185752811087705798364791415754153682053776396688178986503633157319458428545242822517931363624939184358726631975870318446775878324097916624821290209501813494545448140262827709322739565235261374071048376065201194874733198682525475934407367733880555473940509454337124254917715384461924105211547697670611277352937046014302670585802091997725630132830065747787362947826738535054915789792867430908039458538204473468900616619684609764621968653724593478526421483902577108151297651115129730964515950233511826535231437575707021491814104299797173595972405386572508410857508805384254129493016103713205628798037115379735707127427702327290580920825412476798831939622811834895192569832411992178147059909832664920167824907387719249250702024828920853280524528054885649867271494108780905602078688256794719822368687923144820359640359856685693507058828216442613821757129453513771117335444500658865717371734612623252323700151570369013910434904682659068232381092721366552545857708134491331613515898877809195675995193635274601818335324411398496492716627034859615595839868317559176359945249065668229189787110708030576200077068599535844320001828335428669242535428187237752060591651055812679976052516888203898650827937444751308780101143889242590037631457550670400971171571260355438489773186031913979894979766324043962645688900574619723577873909970818394002401511358400432647020635909404081329937345394355318414673932143465276175801295689670242886792518546423399139469898964165954959801189553137370586283224395148713177639101872516406856348374095531595442679287285978201669205037209353456916299441135758575575383054579756221785484819973890423339645811038052418484288636216008722040063998347139596770734486073078909325551432745974759231778690720254584076377525503915361197741810259050391282024477418794370413240933317388112951289335381245806615483029037849183504238538999084213247787037855530616856576940266445243070584002051989700929196010030734940025835835558694869115409771372227793983828179576010945701567167877401608765712976821503952038645598498775112680165090311485589328863620831738523601912440575562495712358590581236388078908601968424064532930770911355004440818614756422755781712112527777140868548505065183163668411250299480475015495634464774065486477651110014646544000743970100168044062981547953936353388102682685088797088374002774288289103025718628655702272012258814880000902157060848306852456537635167650172758227994339165810951309073636381837670592110485644641221791536631638339462367217561578113410076124473396523899484922525186885187433958553284923694794006874111799057519121417613509700946423576078042226533308037962741614694223025160691320720584831789171223925723713815127450908988775479797121222347595546880335646288031826480660060511067605812915084172785443263996841562094061686168688052961146511643117273404286180529100207728490119080754232608995430769530933107570085418357890570611096033740333139597781294414901673401135502406079145633273255463722783259693792738810704593205172362969115781688899291300581184980402730587759667998308609629669376717574606111268053749577902230461358156328104292013202055426201663943158949046504471809691904471184157808432651925936906612759218157530002340047744763670967310510517488603969311082547459378873554771432973313127951755089145547087804704545399251058626240936836395757326035468189820745510902958182393889020882914085491334619073961233021002874809891661540407942092793697997715407801273450569882048505443498440061492483126902478940434126784175846119675972123169503579515491595673536415911661779420553841396070918538937812469761522249128435840963121878410463214234083855767748613093363430750510829110097644206496373664957261002850068416507598622456384077589697162889681771804497975463055005800162643754836210200949330903702971958646893932237998446234494933658990017933282389496807778704465908448621879553772120599241024967314342041302974886812385454361573454828989011435288570704689733522841735435786024705416502301044943184494209838635506225640242602601183371698015741885328066483060920389793794920873928950209795752732931089892303069203261085205630648097666167407905959225314877781555988818667443117889464264775104176563486496973674827578880033818568742617679608657781915654695880213017507558783685760086902992586394120057056283157636508000526827034493789930713250534576473192078269768288556556659498550029174913718338318733984651168154833743896858936125020120527988731058960220742374881291072628691532538670544057432809001880416594523047278863859956193501119577508737868589644433890149622794973895911178226978854169358164222602459532123344327516639097348154245428539775065720918810016146581317274939600942225358096703755109139991955197742003669538713674072912798524829282346243534642423436504509333647741805221374063564760150713572569722065371622981640459928616796214720558861792311475149696245389818817484270883929578117910516576908284036479736515396848541756006254766504517175556695991794144223612929198393667472501618039722629613461616819691921653195658462907058570576990498152717266779912442812642192523403104626043057996687557160741408809064879363824738341273035404733775853152316484752482244041781588420279169320091389618100230371733510297754898472105800390464845078563188659735434214001313231748915613078847977023932746008049926568151606820675603416923015845560230364004786994436481705600954666817140315558769817525845340414031038833547912404463190567937762094512092179730893029742109446911471686884710869975878465861265533528054417251782267267194809438101972725693455203328922323290395469212196320271313852062239117360075558016993346257641005593025461045051008945653555457373157154311210394127789426827636422939924236767990517710958641819467274721432965595860202437369273484627354875523064854248129709903757199447163184141755589699214677190797326982610322053802794442764303001571232626170589789620586243956679356386870968240934136809776157206320085198315243102353664209554955186132091327029031619017834091548911937345226318309324770576916784615594691759771232990126434454912862992841791612172691923067174651502357531170948519705812951804334211096654657013993423607338894924825223908987301149330079924571455824512851338595898262518042656598879292287784747792589759432670904998342935065757911251057967454869228225490691664438300658398168596122078655268719864475877246864712908232490993045128091948159596905830909193239459145722152234766748184038976566270060598623971543700021399335778926683837390117296527308930881731170058990295806861466326443590925705500095467751016111548896964350028341986270915542918363557829886906526030311061997971627120676024177014178850758572220003465399120195638596060482917704058513921874621269097238609684915741383767922460815831615184165939079705041969351394237531874355874629977730870830551048742453954990129039946570749614387468540274297965661218731479812040175155679194970573433665835866168128431713871510105379196644489612170659474739963482145731516840968712888453286099112082349898795577724468535909565129734342393277240873519523713306415430798820881292075958981261431840957669756971712337741625956379550127761553889643655987765564311639047486830711708842763821475051765204048284465915895093851985019806075267223997752043239798995288425022802516728999392299624398432743839443402132260154260134199130788570044759110639189347574994147958146377527336041992275753852337202541885792929222607540399405043707526185853377959581947823128769271346899755709225393411642791684407875003229555433314395756226673773752010262437784978762609622537672636837771866368360983873733598746602742029135946636918980828516888689865297936096491310045892683600107937702078881753929495164253462649882919396885524161925682832483272093921064162054009679125257254587914667535021308798339300222692249698195698805736329221590318308929218569606788753171720480405360889444362370668665976826242511817040494487082820453661469446703815178305566094892137941612613638256946248760849713245996881458012056211613510911973718845961300850510962898751473679548795887570958979494150343123849712968274105267826733439636521641690048487589464116091266409483003106180297496563550449236022675347459808603185976047372441680995556092442011144791175040101937331018184149221881258914964985490854637901749392146180103371823562489615454920434161321336621752264938797082239603802456122178890752736787985113080600150080307476162480035479324603818571656054444083820340445681014844355536609406462255455401217369230744412373593101179421458839594982945212996949493965128505264762702527568674284409857782873058953660607367768761043810522375656060648130567174792830414586018658687952415794720691534381327846807949617063236798893721297424091837424060918951610160013832714921521879135680828370678992592458088672082583832695927908426511234006125564728659302277484750538859563183390466524973562215273295846285530549687457424812416272441374233551488763695206787141060470583670620650147801691365397026417990389549062657421192732717155313541992621975477916200039085612814012382434107304018242158419968858601873249226041660653808658742327307453591277809164381991095336227347314696554890616192287482762778091772381824177786106152603725734999422302618689146491043764816882516201279892616604675980299621751741438644160622107338045081994869403134206521470289482511737466193947916220677826464210817677205478099372902327195903129016215233227861930276561961441859945557238523567476193327352709929867720411450090039449919330109354810910957914179518287081029650892660668202271082754205231098105605084483773859411183702378430361133554510879260289326093762290019210311281455086182502083442365536892887270804439744332622270518366593498980339027016317271252095170849124030188414116549714128722458649661057296329547486532970472584330734363920026550960990391823258105800944689392559355850572224098318812059606246292488583691523067435764409873794095945792435764441988666323630547573704643905533375755712003657046523304005125861541377716252319846319980911262853877305666182855332505302627700464464899606014499821648907870502091931464810431973063454269738552608734579113497377781687037835082265098445822864673722208571822196430102650873174929280276069575494712336381060837768674948182826735033169048809353824043754347834042903096912387327484251303631220711213883471010487261051340958036114219532179551406671428403954842949850344081161805389206631467741972549936640906744201262137699546572734589328879168188940550583262291898381499715428266379405573168169448615785736117508573507416420250363238481346467006741130541989536279157037758740583720617076726280116748638844785310785677800732767723186520439590285792210877134201366519095111652163786009875125091995624123772968768290897712200385412929225005061572726560844470099981394687282970852259327406629513091544152472043217234371773862810580234667265980198137115949233275622367550737802693864228579253849864397336771229081776638926810392001256795480696017974536046233066879096941373636766212053914114173313199403186910691781666786323296081805026381645579242564384127176196504806324962720145997911323590007934421211904233333088444055394453846497224875058374000260037410167590411418269289737021322219859226691939233122080468912045535681589541012399364223025132587236818869532010460379550650133023795575526439385125835332750045014480391050045265422675187437727603117563896820000974469725323210622353969191841087354359630743110687763759130243420446968337003661614996066814877753766375861210471817472413041796188032219104480770622668344377173128279014146704060050093538770992009113231060915493406292990302946154736368177583845577643121473554915914664890910048758549468350103635153362580435206576089332961675207781080454511346524575755705426484262523309715257607741082199275150698002947626397642974674168854205270866040388533105803472806751096485256709484807437180347430218634905273255662008994961837506178726392675589149677799169308365079650871366745983748059298333429468187862905475692307725667380616575516781427561893801504877584032898569552136236223045796349327343911831589005292009588552969170739876442061901932391623846693300807088255401477390198780974026104105227578970580867018593265470171188923981092699847418487709221508263639275987604420537948777303598367584987511713326216918427375840075796745070273462884576415130247302259667467203589881843750944340935240352871680390497459516564463793062820728785262941590873899262430186254997965477003313188272932509944752226206000519712730370043376289332036392230859976489151985395897075744714192099510309545950435032319824753142698960217854006568608799096218993695629089126067412214175735170055538420933676170373657387673791961477594911113051926583619782342502716876902899218379100091178802150883284780747926026666624657932475355009102940335799732944854813733225236323978404265764284428081758855885518203561099668021641735890234823999499180646041067450442216969068741140260563639306081079584663672547379993059832452950254893463297010425700659023283243008737856682345338851842678801053515338373660864971541531340588548161790960085075192190629888134113874802014888921611202257463673305556212594697881355926114573807305123609998570298767747896113166518511642932432635551641671532702357271243601411702533112905809082902484253475052494807666202045321473422255973457238469768800826641437127844123970221316985462732914657918173755304149513542698230084124392532097095871010784267701857828285708103275718042116378904757833441458054977454271489281389356374810323211155562697276547916877518034600622129340809876412073618528034614566256176561521624018202433754148560800033682036673534742477937614418539870222105434776678445299934296556993927372995496977059672508209293865588285391827946360796795519830682108146084532280802139409932863591156572776045477941057873968869346330619208714340793346695734596806858123197756299586720197104157546409995546915179329128499655570329847841089639359633176239687512944583440847479854326067793125851558794869952188022769233454057744517399457766369975992810175763189274507534583360951953984256649865569830481467772088985076234336163618389707501012438283140862271650083138801673954274793227388490984687774304954105101854885087593110252092830683372049894988010165146256402092357987295317156778794361337148373354932169325446284020781293674390421085643814577006068272155757930429262532980446702990467843434920140737229705780226947429560216176581674410941297052698862186544686003245743433834714005102267990935552529829782288770020744015043075522849466017254670565154926570458700599844864462543758221771305914045113643562481915817561570628620813266682918276749953132593385034942615432787862820789228998581911088570927473987617411984313062210067099523800773501756818627432362316962210011929638993640086649660886992251532876897969546304783820091236034893766041139211432052110680873196110754751163574910967280928401198171486849845946808574039234651994893950759310255065091909297160173485826498696196153441244218613409950342877771054705149356230198850936189287349095418943035730731967783436106848098957598253418119217500076718802410156659680694405693918884356784321573421554283030988675247819877630995938867997567317162734760792655638811165790300698882549945712691529584640655437497079641650741017315917367710263001343788607984877654178687751669007540935368168616055258092222705272956706823875413362112448976642598984380643908067836183901717094627544278359273024777598866437032215482384240500981511098288376280065207021540049710974984877738199006368620886042263481218362264350231802755035091034448048798178954125493449669524818171743789546092217217876327489955987395961103402174971444807177679050073192774820932819977506801707228070975464627663412184694988051891488409472515303130381092342906169076182563651809907167562138638838362128944582348828253529834532270130061575171459528423199278265815293708268627506442927706256207618632468199256681810315171985568175292403950800611278611933685671522032528764747184513255124369828628136739905759513257001372546116857424200788853222515645906084770719790506057387279569164259666645793357368988770746369128815032438288424997532077144251422238443194390864348751868535134630837403542372421431225012549870228399177601043347495788855198680055486523471623909656807272587809888764102841958777617350307576884082079371148758762955398720608380910740835068254185300752933446269412144974573884676225258088621454291711913061581767771646633888478899424217311290531629197858417716345954404995525938429224866643602340982308226743662092518672935880686800194080539131994663815432566106531749118293067657681765790324433480602371502439766558450585263074259583427456150976721282979393630962098216369774560142284521102148735110913364824656101142242771524876288265225895324726650488785634919990580150913061784447920834578464402814375430761029591329594696155199931103374835819874440546297521670197730376692257581788825719307108033011714481392902321870611030062225380066206199000451977936128355625907459482050140952124678381894474747191009700755381657077165615018917691266161795512480997430926926029417714390184763536347860707583195208874130810415066298419109933449898579021365840901025024118112959256377759231860381948336046560024165812585371182914268510520764967662901790564578913097891704281295421895652992414657843026802501721281738447170044520273113886195098227255178492474737098832700916250011803772389463947059804207876517200388811505720962123369991909808876709071917387975100138719790834298582423662258144698323645379803518896248814811155477928676375871829955637433963183405640559196110158172906978532205486988604106202042777394540154243734280042065466297780842721809459265721258375932348821299467584659823334770079672959680717886699768497385109947720912111135112285933022503793763219249940471529049568811082387889103681145520159028905187404087849295364106513559381856614322177712205003252963343109103049678618979137364402527867096469382634687228055303121244696765329026488641122595709226627146995967387135838219861257208277081777363024963501811094407011966046023611042552303267813535491132271940641489490517701361007459604901169972476682404451164823747571086395495493486519411548947886582638478510556947556648133278518067420478495690369904091762854535035145786345826167294913706244131167338658282698680366472741658975276826146964436545481415873323251539109606485504064256027109542043452424683316250633726984365729069372852112468675239366351695063899096991028827631383860498640462295185853116580247913361888626749905385832689286151026295386088897250622717784191441704174175264648467436022570852821425980145206921211306258137973142190957343270624219453832719637273751291428856240369555761088754626712263919185068734364606240554115887075090954073259530838366768365591782236803267965867938918032208797887481398961797160484321887049906654025129458635441481501116036452195972075085381168433525420171148725017593139280883013154836110481628049596343397748948632492725463423781416801475387994278260313650010189719794300263994763233218263673789025793673837775788729316426078877337537378624745213909349879872794562706073212988945703673275062014241410033348807327915031144882899695185820492871756882284418332883669589269752664995167313324933329045324534211078821066220780971461957367497581954721476793673850130052779860900488536195984535317131219111891832428012537174846210796798382809218796304072912587482564896380493304064581284603851351057121028110478434257890693155773679843923960863588691510821855948116571446631101555391843734191402577311747999229077394302262614518190596277223028477523144274746368202929868938720253436169036560204748675186710192281173120568275615305575159352703608001088249564682970325674568574809597826358524725777876849085797666327716200598489736094816187724134707940218350786615885949021481457118853665461544524466454885585171480392674546638747131946972926653332831283965357558636870649159900473807907257967727773002454980064345682006270698470234389302931986134552140249761539371475762274532154532469324119992986441179983568723532489138023175259838249194464905791894435920710419573017312264194869908534542380997697236343901569389936679086518033335436831739788947493927459233083969184333328261876655772854074052557530802047388603887049922461989700527890182335609827083418285667848596098936477842416105714067817240881907268056891128435704569421394578989293981512662897636385915661118724029135153223490236308265095623336857001633621059789740181401033826642693604029680260867347386680541866617656158170900396313486321024953447186975544774562400246573443886072969381818812779964683862245795643919307942997658715221890088988484328183826878290730006471727425280417296855587999931617809199355331854445126633162744135738678358031399577352004224522576265619295085357898829664049734176229037833627521201073732276573521028840587249059833528289058104955051353239804662216390605952467843994369653232910216356641026949225509222558146956628998616137255190919897512678675672818490087777122208102985081407468679855032099255051049142930422205736541295024268964064912650212288078304664754627122248170343366816479680017306697534337281730974345430604076713904759492583416446206252672093342992499066768311020190895662306945918653774548012042356137586860983731106872387834974967428217865581602090753971788188499646175667641774847113266892551966463042606259650231101040380183651921402398562921396541054498337287177981807436056807234876740047277530581114644225754274405083767464179734526730282547421693379996595044955367806365646616316331658495784940837197811785994386304881240021665121567844428546160724928655034229948422752652693922900956452430855153547001898831196902250913706021872908360799180039051456773085377596772718119019696303997925573561621200951464801849250465001986981067689666534963446780809394987402251499139012406801114911022188321144951305589862013344484363148668669194764315836352913591484613403906386382580515950478600022381042800500907593416739852163521931487948400734688353636230880197257299211808795754362571854680613965744911644544900245236650810738076338948602429721786563379723584739961511012167107666714414992999571149369632833783356366398415729165200442490706002587493944312223035235390383619734214133913089009301290866129259016817753442737501481017826001384423825542586795060196071413463251004832372226826284507594067615083295450115939340758913083604784339363441380378292283954008655027028630913524915945146358773346741324354880941608225105082155601252861029902226332866679398736835719213268270808821199778527251030562216395724225397096289819592911647583440943276958846011212743787988799218316880042345185773098668339257487881758165344989467387037158747770203328682437623353268794868963214011986589431066095920611770988814551684248715905464165683917481782237740799186464254021362574092009776407441834693564646537160074418161599464790686942845338830366364135424957186596684875119505544642789347903972758841541892087279067026606110073347742424530177863063584749421525781716848079703695707199511924103741341001525328140300236900363168969084752858177133679432408363292727545069997506381755240046323183128240531837451019620388617327520515136700501347384179610017112438616213273128254155082777220915991226226289443840041673505806716913894034330191705252542940843447132852203185011830331799895649901120127193138583373290336433040840507279146782934839842050479362486804261492850040090078980491350233390378581631064697144762403697569152316773830298342138879558247849538748283371201141076003958142579824031800126227972756767411599987331795035974945723671069566023940404651596809478306704630506152598525964333529351417829573693437635670693847073834704239440828194538870858190153731284536716971869611034595149385829323165612287935500598503869768372982954919310128593498732967506745073065253789695912323414167686942068664888483699325399601054929758298965168918945084423518110268620219546011940465713001017974375697800787900361203243452960973295864324413658601534727867388436565562573326688656456377272179001897349930911774310941264029412740268619214179593443861732009111850903349621003677715278294129706261848510734996332595004578872040779688604921321282882422473840657208672455999663712295154194928720701556586857412998929847826370785149491164183213215654356156370825074137929289275210461059959825326917074988141872432170815913276538516915365877068980687074428276405146610054453076303803418739438476201202775005728579471793153431253395913976433596708561010228410185844144976260327447364926635842187702670112085177525777056798073198950069594854302418104732055691619981094679002083314122582043915028649181382996857775486102455199901665331533793562551297906316595244328224736927367495491528948450996964098268653429413047954060601543226975677947836824745187617512215529403166722366602978923671589623792773304475534730692681999864007102964092281099497525026310968487128007786340131441105107017457645522625646814711681689404386011125085742958197375353407935182395346949890344856386130005889777848488401965428321577179462466295832861521253296991822098253404659555343089462006239731182780921950459968751455102746383627092550625928069399903652296618278739486431174485418480623760678085636489731467738502417168163170232654613202588746295890444653048890258918982807172413347125443775092459579505075039147335361212900391053691023728818646977904828395785807920479565037724769493024556269984488242219847174212317666715245849071980048034498595792405166207050529808238498761875709211203947854666208981022084743212936322720397315173170762218754106726890672093050984077703120554509300870048894230999485298959940526090048638929671755234195016047125750102427435784587719487233025312381340347955790013583120812855201489830903148970190742778968352824459058135544691922518583200154679749282111186881144253530380352397043635124939079961728750540070873053039908431451342569160937989805512033305491415445049349967818695480325100769187519306068461734840543263335660199219196064249682205566021297196054893421308976612762225345115753976805247364152075964941370691135306343721376544628270307620896265093061985754002991894406658993227724913789407374308947626597022531617745130102296297780895775070125271013076624662132703175525596300228420584222033875786236461069383848171757058739976815852090135922654721778933636079758654654701438374603621230711888119319437472893892074631216811810636468270434810644327426204074693167362144272456880896808490574484006471653256884905054524955606856821311871786168210228501763887016275328867848777365462168599760627489766090446583139276070341059883730526792257767610191020086203633638113649391129099672830481650754471044294365822863251971714249694519215261180732305714710628172131964434323488979861632834090848200525200094758092296688104958903346175272567732348910167554058556918651910078691898928023776178575236974295856882122408992483195260649312527948905232124812707260963291351403028712728218903149946165325713282814355270244529346706078438555857793516590703136463438321171555252748344337297680739394018029126640689425450304404017140704143647780941037719113189871341897819400124552163773636855120995510460502653993126050487625991240035206113765466131378967091940958143971494986703978509304373662671418565836820146937327779514535720075489697500175500140524613238582747601351276209420332306156323076437684473525152870837191915889140979727861929281822433739184691581473757115461254880607217761027644633940343207873772386683065576499966781288780878401182696804210068582133781416332011603012356957008157560259856250216995292475768536917679433401698099180054769848829826027154836865570719160408378485394864645517291819253017496357317734143086024562926956308922953210402020938321592280919259014029770554255401278668353157364932218568997065556064226564726113107779586959321717952434856492438056308651338182283592858978927311729542234187958572583422032594713184755500898335230058061711844569480504106918172852264439160940928516287054200018243259625306568166769019985335227667269605706467247053804603421916290589924209926830440821226615783016032597743237657289145835855081283921432703187371071756780277530328120490922088992348442064745298377628247799152949972764848839962738288817946178264989690353020263797854043309675532987766725871946071786392101129040256963379380165820155104324977291003581370381658698202566705202653958291961513989841544074216849258853759087910362362951880956144957309053645472992135580052323031340917832675777377451844908102337212645823710584331317341579713618057307794741510627098409404808940076175200289260754185317993857520048128463723581332994855643190188425319043564286881526500377829387987953734921549177071885721506543907507965073887118049281221729800069425102736871491619311358308290189121869463198439044625680240981170946919266743914695184385434701134031969648440282947776621665169619593833448851812538411081966796192432226609518635069398947286161054576488548857193070454188211500396926311442721415608617706748780793393282209523788827185837380075776505575739306176907075290211357282163726773778889402126645577099858388082674766834501151678391811258665429236798359006457082473628427730870511404679830921446797160297891745260309383800600316893556808045733692357182017317898248977018895402091926084325004328715785105339257962172648333767193827416782757504954739861536513450356102432388721422825027878282984134466713949232877097645734131998365926726532760565654009365566181793300865200317389545655993006906409528551881662200996957824687350462453286858964779257745326139883945540025675780521764451586117704518280342228927996076405083742458548528802770890787790217876024780904721693017335736764695181315659515157413736539989861042647020122951980625388360094782704317595246218071695823123944354676605139981868755331455543391308267908432391625427017829045708621003230264743622726893454549412445360897910046948194375199872409484606026468153597263275055506143632822962601071464368920849706885060244786063607180163387416073806432275294430309161835484141718212893225888892005851584795929186631791770722096525216754504367922795428899365139809380957140079190617534522313712529087691662406313877719728657629178336145772775205090045848677112002137093623205279669355576752181520999555555483659436637152685036356157411728776866557609814512750545660142246940212289872243885835395267417606109112357108664624544767185272485406751794854839832246225232677346808513782555662757649107479152117057014236063600358759350757404258530258029451110135935298798243872293290464090025977749415440835092772353902170140240132550507013301704118895952701216300316926954497392264187096620594457210219509900316691855056372876135919306278430142788459377244649999939710455677695728003366332050751743172376406958456564230666269467061824709300433442754739163314863886585047877728349377076218693513886904973622781138346878766438772693496945506399649631901638726681261499549346197645637465106586489579678136613512287237304562332804152947708831157813921410154566928054121394123856074642998438239249738253816013314510290411859193218836014280679950074271470372805071167171796661574898871309626203306397013177270568905801997621823947912641361996810663839260430820759476113537554228745357888839017280328094137503025869246122023435555029780081744659545664465765060292047677562629992518832111926815177046677911206489602265037171035622436257354406636767784965008249135733133810737629614802496649897174943761880092203239213532826430962956592229306143530006808807752303980512166025092890230250812384943117533159998590168065756260621717895262365336267590820558310000626459470969844883399528324136344185098389942245448472710846545626548835831914043461397056229117376551235271838602184757809004814016280136005870385726149733715059515317126870540513936053100695969222166601426163079634058450949386217835619307791032234519522896454395878538410006654590130014602699875623495248412776461923211953887415218113575140390711172950027576891771698050610409892836381494616214192879565971859791422631507994482117273883392584115735677359066661266422961494138021222381796577716374559821992364163994682005568518626108363217234048705292918102675069300773049749349563825407341114831683856395684623123538935357734427088062306422030396363217603601864161155977254426530645257959084187929096058179036004649489786101313320485928488806420256022139699947087322669016328291627149385818820855136636372504514717271593578855961801118107257097709503125629180960040973789436027914165288661371914943377963407129969159266982929248064596835398601000148145727927921547412379593943497311857764769608920966087176899651655634335163809033554585742697319446254036148202996824035568947660878136375748886015957633428602866323427185023593226697690857305234913509298317627364650459318222203386889412479177085000120098042740393101918135877129267796527653944063644767563140662204046546594334953955874653927174769659633077855225605689045790979454279757025267254167107309776230953232416619515625039408869506369916549763072750964172772565649089144863455703448927810513197173104930159608000587360504726647947364016359177815915784826067705807327127034280879327485137359195902528161852677706332740430085042428552720453926997816096509061117632506412958950250508943133982248879629053107396238117075172648184693320213756251123213234547071823169183746488133426976685505401198860965865294405370967199027380573330712799039073337934642629536945957193667074596176812869131579181886393616951048495238292108189307286864682151337287827060732654346879322498825516787901849172650207900249360242442210497287304298909408777095385535103773908054673248267441417236933261210075507732429537553276201010333021057258403271036199127671768225848168589027489179367421678863469429208562070145972289054834977333399993572133857112176964465352211326215057647068111656182065207074813826729590902155191179691982030070096478823128843175777031371228479044448439446658609351329419158563893234722327059074088094020638267080784763348460319109936489100724268612826515447506007160277100703323937949769737948766234120408782980469308136338644969758639475273471069937613022771105214795353242161350627451369325910347332979399248947442079277752875630362707149908879236499991328351147025955333231518958622225308727053927145627457578588724485322457854428347340570053842978829325930745244987903377225792124468305277238890885338721423374576860615825906338179785103548668942475435201586498356798893972121408899409083030159693450929048087798893967639960589404951095219025769408974737643872299913457078146926197814089559867801187152516042593826107055997029913103883455245013711893660024259320167747519746122320349678384723038804142993460292746137916230593333407916666270816187142950236735014142176385985342290229819733994702695244725316757172565096006938160842545234587506146279321666228347156254347063983795376560364246784999682772248600267987827531926197682607730479721424443678146073285999418856771216424745557505982984910639862259154307937014031994185585308391571934446393010509251179259537677275265583510555118705035216754313963427375991389750450231668012903063356310268086783384823408762314144979651703391099961092318286968863693398410219703742635160481174976219112296808165596914043879262212991920410877434628684516515176524144826589570083358878487581358857807597470921203345521871483296886807151936814955944475733361407245947709458313548936687466366466832514544431198638128141343729034746201349585882952308396879317278876058509120513849266987897133407691409809679834942481585930903752931487274079728793761410601559049391798983053738080170366539763035019309888979592478728197977967101969617543981939107008729718947111311084216701424140378949448467403154833651543666755133799715460096735451525264762009987893471649675414607843578584804855670034555257071063616088839156725532281722889505699153204191494634177522556454901599613742169736487215556719343520967840174091013839255944932518480895805542195855327923203633243354809959600300567458487719151841401623051647047172308758133979758303188123713304586700088176973765916618770660282374897214202876193645005390310827342622856924198847610885313315612593726252639706628440502805442934117185091475518419742463420003315839644528202215050591099162093283268788312884267011531275430831672648390811982889101152701326970799411405462240295630477014968113508325231509028297040717299452941982887115430772019522244392617836466581218536363451510281494791565227943477514130264189044135033116598988010505214648502292657737696463640292411299590819467384899013046585702338833507838429732030496038331365009582383268404491223537800234795882660672730073096320688592759758643506084953361004974242600210111525693226752399684580281178358720107771186595836029754994963408158014633412333444111195888528225549878444144104925526236632127222856891190633041844901345604384341973798581070397295109744385508463217414857158526125246922052013137208389370539363556563413496727636804898800746352356839353279670500723306573363093180362301142831540278184972231918474358924235998536594469753031211076589134628596574720750062942891465703102061600651670352423626836185329504056316326675302451620389847851574377992537313511780610301095790839631961219331241362926453569934118592694207208236794160752748670565958322931768196926699153103971363991155006664521895218222826427761603040088508059156169109710754433417830228840686425296885010561617336563218983521275424761161804567671014303139162323629684516885332781948983685256221217841428125327639270745532026275516311458201020861673091898554893898575813280869672959570782518973368209737877136085133208798213310796706260747454061023540737088173849093093191083129388386959776440966999583049439496278476587490573496283757132493477910572292690171923304218882254629515613841910819084092224661370929556723667701048991810385281653371632166323432299744355232817200699141977810869252617855558536893151327974081416352101757557133182659037585251670648588960850450605977199753329161665684805409629924761103290507375773148184379701048435641886289548755356809386382800649279147773795204711259809432588310341341826674903451447577545947090087630370476879112673141573494549225220482815541101476309065555317577128514307919683235753596853285774732334336247286693244303781229414671800350636916990876996428278614720466535668848255371506092801473340691477523627222099155137641594726868822999077136719143493879384925902877456459915847516509549903633911543708273473347521737576899539742780592184449517383403340516032501031621814987651350446988084411850606388024161615108712809274728586239504285435243989663967814867972105144011778793889529901403932613640972684151978531624734099366120715896116834061245315661571241555185003291000433091782664484478683527260666586116571710094635909668476447381527091028594745544905986114392970524236877576903496860697150537013478244362784579158705225038551339926357124397821714384603095356998749328382274020215195234573858966215437821239361549868417072661060326700210307262986604586937024415260487979595786336262166264916602756787786849080055270737796177071817475127718832897399717007146307322265314812478249407775312379858142907168642450519827403577947715937649667889255562153932910608207155933682177400465867729432599324571581094642896208294758165508901847102532683974426256913691558925940977271877786756819058597472388796478234185450306222535067320664904591991237028645440948626018754494122778795470791035868772052742114163762911418857490531949071963294874416046777008984245924148105118865741554173399633918133901396007104972138972085150282869261760299655556829937939426478372190475231249819489354709219391781599642080921458159860218532283353983066755612183995818118665170652636490779629512123943381153332100219065663632648984004818121223538848894209934783724687390608796545715190613237409617797255523596541194591105935931906705108898087161235435507412208491914294704251402418393962259604390191370946255351564859602164816961816334060549308443716387283883262159418957547928371865724738446751636582392780818704798122693520785579809356686724095585907001966362927840590289668180520069619301794966662234971174614520131397690598313013299433014993444440001837665380673327659222843144873533163390169082666802985552168796730656884576526355658834489587567202958866085401648776148289309354566514596637726805002044267229205856305983282399812281504433622020832332902701916779751995228497650856578825722575553852564422741389952644307685407783791877141573164936447492746505870804354810956890938653629224922807270745913397384790466305925346347284942469444635119041655019701750918959797539468179365888115073618433076698637885702058930105016918723779478230830845944635422313401056609912313589918387510237067873964297521907432800974360468387870599915799632557838596336259114327228994557490766036390621804164789991823568453297129858355067666026231500575994747324822686748379302645761944396566327150026947121452508472254165862389156476054904012361201895874806385248229493494310435339692635581274256375856775199057918182310313899559270205824376390208024516722478912365228582596468737551082323945657277956919032043199775483100577047522674295167396593678959784231201463024011621296703973327114460071161660200996928669817037795306916341459301940201149104244533094822868978366548675192647411323700341862941248349162378043115450565982233840853839667937087337195899206330919214918769285572977198836307979234660561236058506541474610312877719260181850551645280841594946678045856050316150392673583758440419212750111413744656968477531532005381233311919640865242600198735296405938077552983998147057455437722330611594582554232584828640608939587212326109426145088148206594436316230186980109243455090086642933480524235579104054880493836583670730443147063643870282737447619115203346955921317074427877063473786157057267902595257972375112444310047992084610091041488659315060828643813112536142882483814106591765964445297001426177453094484011796220210284089587211121508097098834909817947614400904623430830586311080130241111993825879467246100523191600065311725227125804822774721306673612256412204956140776034486466930327059872815270201418315752062854419465138100819409562064883076641072364954539264277584035009592382148370249629734307073420968822919722163364977989681477372136336041690571342184725061660298961680330266305732185275321840609897001579924580753869739809864387952992797157693850742913655284408865870107008817732604017470237558212550017063099058072968049509263351773524243629968515233809022387410537332032941220226028348137655739810578089411061970399523229599103898874226656156943522680871984910062313445840119979265790961870480248098738149905310653760161577990698495994890873425292720107810750257312817566896280743653311372644678254200876252586090708624289572177960007135980700141568878532348554372664124801461065833432727013522512778924679594129838363956403254083361633600131583437310649778643336388017965076584508159000117632677529435941056797555262793813412263119339583463315045765946152990315439103343984343637166054367870101839511754389770946069129627461741115483037329589969084721780229712185527525241702045180042862859884511393865117065861012637565723639839203448902053996247144314037445329375208319179791754345739608177915710753905592034704802658422628817010709341688471181643154730720847265236696882283025203665741271018872025977117848387753875102485356275533737050954343210690595350091446204044982988245812353980500902441385980689810883193737797360672045790104626964540842217435306614421077006420451190257176008723930013265366598668763131239786220091025735409689492079852755149559003835431280054635763722000863020759621543888326642646654738789319955408608121635920917991235390640183957027033093422376028617212810566703349600820466818502255767732549957394091806458114415216706478006751873607687062975283348380320399517888626324656854215773547259269236163640362394736603925711195859092038520388349306866489315608425013516587543285461754715096437627697435290214464141142757879738638195949645080218019250683106558614289370289548520266344634401099144674073972691261238038531390251224487910370769760022027371629517192076586326378883956625930675518733872598687172490717800517305156352877531521661101289516051621973301257223520612251599867728034087091722817240348850894920121596773671071336335040988874602742856745346470540578368268930778249942997047970297545419222835514625795033550449621128962024524580250733012706719164759010078158859411337280174038584215921419379086748972432814254299131208194891003997776085382933188198981621689137643787111322207139390371571214194762346208750079657489871938251237646588783497854157747762568458737464590857687654584104672653713410057130895336346665655994264936485055879918935776127834820259805168960116174657953754234078349593956107027844020712486451639550781326102607275040606317274734168468612627780168696303725431731196179117636125341728329768932547358882045891283852895971305898446374226254686046550648113004907854623473744133717047419977080910274094704606837499398979227170781238195355107153942581842933929025667760565653846122753967085185052745818281473437150807517806342525750682831496955431909204936592155183226854516067482657664678894455132689055155183716630742729610006654753251117673468877355047314348303757628170880171082604153614751349646362868136373045554788660031279469716188258863702733905718510061317788727196321192410907802188173622878574952591830103377923506746569606573864918092268795527643311501115069480359003341496898942460798459806459963107109357149437499370324141822597530621696422359527032010656127709906239617516990588553810506810935836258079056069162628670165300552943471205837608487295368827849377126334883790272852709426325646553306861562520619648898312452583869610632704693074423044521328779831770799608116982943211474655641678369359812223058510603954755798006627605582942655475481793122996183497199605760646146746607298783196166396663503958487596081767521604517109295289677775173317747430476891747567925840526815636615413232147362931944012440961231082531325203401844065895240708951453666716890347681169936152565438960792856764564948914562716935647971294468727722026063150110315863564946223580405560676718496323564404299292625828193699129855478808280817433244936895062805415010313435070964635160832166073741115353861547388094071865943156956461223371187247658413974403099457298491176715473597948964738682576914429980599951857886145247939596623090695235951483336799175547432690331988799917216851173034916824249299250141588633717519129656427858662026553549754523841747973206203545294007360054756708321783449834438348841043051914774564045468751367009397773672333589276344231117654738680337712606542589366028912244933245778686413172145647513697391159604215062762153506939860795770267007709779192508783890791964500134645450044283621818427838209800945162501479818186335072004364043849313196226678783533512522259324428669087916376503075672076993881857300327976098307646835186717446176085700692582659942077682056926530312005414289022393281831641632103167116035303629707470775981032581343365835468942030188050275983723550232845259656957792924419295047914097797123721242969685766722723846751474475683950405929281108781395564490469336734878686997760034882233158831444880331056566851989576026032967179453218071327704851946537490358543371081669727443977139903288700577155060296794878742050989098614900551655543344225523730177360156229525930759494272633985085461689813199166127130572129367480406410923897202543323684053009136484548980423970662480610042826460866106084980234163353735843626135323946498352975432704055690591349855016187307509608469227353503673195884228028240643224135458802270526431772863875165115066783707592736730849335563166434932793660832830764212102930902054438810418535873915279852264495082857570534146570839093897748052053842962226059858920444128249197413771129637903250376457473484861108197704370616180189181785347785861869792023446969733196495610217163430196660154880018305517793815915886265203660572155117457045365053451729509543203860494589560451531404416760010564159604965110846025356857206601247988510753526116210510595726581667635126117981368017369458164176406380910495067482063612248231877239590666019217129539523947862127347781974817672364478431677221303017071771844749925848717823257325917722605480322969984906745667704244371563172561913811418000343098173477086135754244535839781978247777303656917980973036695028047439631008694126380686753371931519712121230838572548851469128493274759609756957215272675394466539748097578254782030807419875737659131385691729296441840711465601680898553160924769312772744692714649359579635839254422945477073375513748195995503529561930880795412133286751698713136600839139268568999207934207785597759867407122771474272578760485585877765056584139110299207057181070335978657623697769578238411915210828513262037667173938942455050124546403571973960612493066675797014415300087752253113244113619417291280713355848760176026313724309263213074231797552007708478307003218655442386316058353993329461950850036891363488897409148848659430588257607369680768937690271527914656069370102218302398728928041073640036087652286818195521960367433104969371979636728731461322944920402321188000476247455549825529670911660185462140476180633058229828278026334525284276062052530877839841721219148042030695002539975906020662202698487239380117558818754009305464786940489003888042294416393178698684916820898659821677883781181809824877828866075077031443553447403096104881777991170949902533720932640146013483182679593246433276495606259647438992685912859563380375708746180435764277941479173599508149353585048838382007494419482691031941158812726427685080758518735814206614774439276777646200611790682770085827538477769698854836183111112169750124383890392594617906784902173464981427650122157538376129474186526510044782651828036887056087816759204729935650589373965358975016590928399966033277891860341136829746201155229895405153209751107657438351500012813531629494132018567224933093890094290045494941330476743589907374260669002683601414699380686912289484607262225974663224192899059662948485674460027827529000844246795070676736430160859342560099778704398059279472344351064907985422838031703974859877070120094279368785785577547452304022810410455412041952332197906052669041866434298544684708463619909125019779807774685667786448845594539119178693072464534833014368639771555480183130187343682058609400289565289210717049928315853929504895452218064835472891911205380225338249479779823993749522872125537192286077876516838842979289156354944778034319640332698646924230447381856969363044866832941584482466875839468978150831144462302598296343201685804662331332151082463852702934387287164503825119375896364966999896737861971874651835883000803985643500916259049030702217122945178623617139000605056132310882417609747507127474987635579828572383246322674011119810231801187752887205639276982221371989474201951173198387677679539065261746029268750634761223198128591616118825603652213417261384356217963756483025341774671721894956333471364817928051933331787052631327536615408448523353181235257917969755037770043661673560316625127550867183337239419869265790477629238010577973303520780079016082061939341822798606304494701842164925988513328665478983662746012393591169724569828882359558151470200467515153951021192466759033098320092315284573027646673403089746928001968633059683159836406823061904038958285174729535081249411570523117105658643369740197426125344873105298876049831479015955556549236232912551409542834840804964045155024510843379004054864423048037874449197750708469181157676713925597361410181531010040623610487395275961524498787251299401433294315866938339175499121656215933232951430959748527026152122267478378388475299176282346790906663314577017095949432219955938742919847992077768206860394184924324934257390419743643009425807136268392930977025410409942789885741320236789593956040727357533383991629564150192518384131526554233163788896079688910392515389468590658999225977822252934444204744383599263320288569268130331894460015026402615749088388320861412011975988363257132518617378470725921170950923349126639643250581289075914237301776800148505129126528525767541537650362786441356076125333779146624899611515357526536131007305318589045133638238621799519499249512696268744372419025745372436510388519881120673122190714703500066200457697618294051394552302384851774857680956527970174255862684086943677944468414312569755011349720789676667188331775144744277954525426833228290118538191208876960229871994717504781922344285032205030540876475494486029837331924718097618887445178590833957583430475475589259640006413766388958766339751551957745143079126402290944907497110378773724362519930339401918450095293845097729726747590091495751737606783081466872310710601593929952311100581217045619885975655788454264110269068090251192070802623609256601508984072396058728578774911111128277247949283244456576167574190120028783573241441227437818023623450048051452589795718033999212187424323591812722095094727854641070946860632741368706318288116806894269447577532717685402015179016068350695459976455231793467917306445847582750473372558296344610339160387630739908702942357314526378069993444208337688900011953762816269147222917345733546181096345369340756623879351090594214229111032108800293086543886083356451225345894625128334342374643251916385035986244634271028417507931483077520802478006852316533574829534953443016061644730076764484792710882980996271250283395959968097546016644429573790481984844704191648256323310705949448350052665120051015513311144717731207680894805814993575829465911743817335006066539683289279373926853933247477076613415547300143360616041010712045602217426213935539765003076465751435282640623577603374144007851833554977546921577800262908964115108110541317028567816900227536989253081560507880612127997924743362328414245222232379652119739533139537571029084281874244565941207741235142651195860720278762917205981068142005713542331051328240705104127588900930172985292031589041738101406175075987087373748226351508706961838002496730404389264452045267450933868908540196697924683984033529261840905801676557624470521208241236179484563978910101277002622456953338685277551759230876951269769462175738493871749465003111785862287368129765607091982724037899314365350551477258165725093009615218767210269485026590143112441466234987494955220989008956608803412477173187256461378958456743584500178788710511472280653764975901133132312856726924349950790813419185104584969482260108694273180910823632823488319591363568219089480856639175425932201721789339400806135584229852993947521055763151804712583321063347971336654654902589892158627078198708027110781810453061773290578939668861008400568551689427837436435586133968611188892387485926646245838606426800433984563626240469376608680142758172983806818424110641105708719848629849679651492028910711559008562279342527535161927944441298615426641299422134906072722063493405333758931163334742970155430812624114848493516111905524243470200774331669859868912043904955555035087637858385360525424995124697861453402739285691093023732888950840160948277880925538820306441827346326670878683771544572099782370990644073662740695830376636833445466434604655249512281270187258896537069555199490434942144702569272821213674958882477417937965314976167129149694715457117442575365836766970592995226915872663089761756755347506056077611734931595107798952688070216383104333165449206831558495740609188308883931990055364426536705452963591412105940545731374755648255121429309826088246481208715641431942894699789765115348490740652600344409656988176590674758891457476677746836992151250953052039576279955767034229811613704105469588093051202369737951727540255624218676351147853242974567144049709051854418938637813670860954649242672849506086485377367902560391836964306263847353158153097390922836546824207724658670496625234661846863189088380240242853269782979253155449357579970773070335495672428504322312265659776242207057443844650945537586223057740807318271956526340087883048940065989791120809184860814620306186991688039491669493965945828706321770263627650402549111198684703140404477008287591821737584272160957449272786019910793775019226927526106878588491359453636558621759535370056652188348939162712200516123345775335228975221926158867664284952888661830082982640526247940535068523164470033457464704597589515588908855298854178380089568042455290022703220053268549081237328886558894153791954773441277526836799814375109862085638730815107427194695153009347814295399606923208245176720966549641603842450596710885254786578233675530012634644115021236483259368808207153659642081439706825746642352642344732607362381627627745976183759168398836464690029195592404847558888031904549791867794506815755199944440860036475200365955806819106845896851459664067165427727465307572924900935109059291124085357329526445289135533895145258639208966061065129564235337277885913675839075471791521569064034461079812376568125474401599220085462586373649180968732851444678115044827565371446226294388858433076938087559318492254306208988019443672121213666432562505962314357656599410106485181069627736979421260570790273421434138590699034271166920185846449541878046163720388900984834995103213495686734278707856076153117374790643975647733308632918674486424907683708207743473542902308688287445595764610977864692596028407496870840095949419683734027518968421266033880525544441658593140057671007338253413852341505027065154364191241615675712295821371570613133604560812187729856985282851005089255941779413956145033598923162603863194283473037318953338475694399624091910174193953800224078240344986223876402983863434861869201430328943571710427134520262213519897749208957647196043637821712227825603705706569795281666778912454409292465711486911882511149304828256252718217273956156755179586640311788766490240549237058516015003930958524940528098396534999713877971992476379996943886601894297391657859558727229073506615538549503875893724470233642354777488047376903354786795627147528930493981813806934458304026239260564953105280062722411625341624389880263348170853996001985034738341152215985273319882182687311306798239775088345533689114236593538481042211508713610439387586261215721485364389211842224341939192591797241067213661139521754047046961013180538007576845330890358679103513982864339372515976104278519704752487490356397274382848922209887656827402686380727763960264707191200978466060825848572430471634823047329381123731231125943145946762609215667538181918388035637319587062887859125961140558059812411303153123709793582379326302403509168816635779524828862736879052072770462746058740930202230953554201626624387925606716684628769450296929824519832684463790113173970591899845581899681568610099176123782432383601553151267468415513422388533916064909987988832180881750972770164759494630341809512380862190785764066699146800456272898820251435263095459770056478283179038650157802781809648979162614858480908288245205928819920279285934111200696429529053350777128437120845844131417150918191637902004847966066968543700510358176345573944825598003550022784841427373974931320504337044925408365296476955671317619516224168054472761646921011299979145381450067619938342487756233854734651101611946815610035211968117987276575572340571626718636282673939378577042122894544583038664104156671902336258141982606991660085936927952348684179485664097213769831463812270896555112256356489915797521975244358270905180715129851608857044402336487257720679319617768848639317452800115445814673674869575436764449922900718766115203989674590119742293140117516566513406193197295420991777961470854809896474906033946992364169256359446446408927030709980502826739895823451248785719525243313744713814657542955714906839433116940717648717887071387329726664313484522426948137821605806851730930271485907219891537753293065288873107237537460042594097775171722015221115712043977202700149668057283249852490722982769591736558507073309343962230414848982341822181190843450640864595168056051132386716343857272484058952596697470345534042467080983907849685528158455905462195991016845945600637402354791168126947074076469473348001898363801459938345259435943098901134334943727848725684117136289406317560066838831682126042968575342993206457457227186735639891220527631879140682008293135998783932764554681438110293591737554270537477976576893950546226346104527031100376388526705497598151830075398547362214374409946058299026240417264488950892275565393235385358854232226355364283795210734642312196324643745731010427440868531075254454563951312332886407940321348242169313914208727191832259508336806707129013953006624032678034674957286724551713162300565457990490034330333967998841995558148404272692147201459045181595063555587974713226621424545628740609076329442313755232220989109614265135558986131642342888831991486780859145229145738992750455818136914314757815571099376350443813060882180725639686012849612129833836207426173782650867432582426549634543985225820607567175717969891049573878750350478628347314782653960821912503524925136166061295182438500593492927971958724370216717917876818135077460262914484375201519353851399718161745297231818453812261347599030829448201398825002486892533494719001543846199312620106733442422257989987885998773642830481517015260951569673244469028700634783687433994424931899625186380062667819584013484846735049396944861955463760321948593265009788113756714863585325007919445569813452211122305327453182244155341107486891973101475179874664272851554352978795893215968868072026243192663005759735015464425389450406157463694132003323975520210220104158759955039482700028165186692995282543172875032017150919108908975886813878145213890834058925912809099260244974396196344237366468453165467260990328655887371083032349212683439561134229016388793369681745925029986104423072343725439858548763831039062771290339123650926898880915586914639983705926120274210792077914704347217007234416509533548025798417520611242315865198251799098136010244934696195074274648485281576593241782691582120740977843461311231296295235789977559778792372903826115465998841101783337052351041712922726339324565596238600290182386997556869846540781386625398468458416727629861787287178805076059138258355467547446803899417581854936404932558129571935345256820876370680058178238946695616224335594362652205984983346807548285662079815473194658881895686656827964225142153316465624419478596804653119311570906875233922921162439170763887167913954363818835830283677899666611141006946692564310762905711447418712112309711948526428532322663929270787802942023283228287914114925516484467450423932876756988573055340436480784560897489603140477365696746469211843176835884131771971555898943391472294213421745670207423482730634432301209466835311889731219751133972266273212257736884479086183041690060618817575306765545179105528391522807257133988149147053504461708245980195642884462053559568912316853667190470027803445596161382480991865394119719257585917814367076214239278460275721836356141063734374801708997287205816412338473307811805868511165497618592360536801024012610760450454968052431215229407299962648477109377270679188771575690025757053589872867746999957782653456739437734533067451751046790053072562659857451512590774415006028034056320234388433541023483976856540482727756320101240846690004917384108273800762507609919356234869999657796016170185506648398726100552817568764288887251442375652660926181294603844577608926348170852317505679869861009439601783459045624871475245843658021889741885686859386053601121631260036067369767648022634759852579708857975093168027466487858439183159160639268351928957028210797748109868625982320677015878699271867968655036377543149572374199423627221812917471990396102582823984266742206930795606858516705548418871496661211018073556884029983082377231057226856989951298555783246489685210166836772542438519547228403500255325392160961812317155288002041730709343264402861640529145216626757202949964435712791080825363345231916878983961360345012086005630332942868655436744133065256155731863436451023577872391041037544794226634818380131377327417653396552226160347922143457678833221189644714323712423704975385684301081368247918457632106683844799606700769384581848550083510235980521478625347916102991633041811736317148817290218494674177846699347188638048943638639450669481853102861777734937816464326857134044206694616666418160348649810264217897284342795515842796994023715253798207220334046952565062886113072029604889592639269015296419036654386588145865689149808972741689395805789904665135363466894497029063264680887470448914387697879810965467359236952174586260681626360554066594376664632920492959660376753000734472815233766251480358450421771319629195885379767655400860816745833057865695863081560540375344778175061974123605606169727547608297495846581387768893786758483159178996188397235316378162709919265005539645048664932499368163495500830255507020583743877180908521773117274066727632814735284108539139526363680663703015784450376358422772702224822365129165657783757694331700553731453158230392978201508627701156017482195992359412614793879491427100425547552740350949247890038545408544503116738821070030432516545652147280392343721148885752760297302268284214818236257788880642704157174823318819528487244107434868972230157624077887103936288939747502515939673125726686440707712791125526254380539968708495172228900135128845166791252051986847945208421088556709469050265974738889324266824704176540961530531343687725931804016803942606870086081095949478077634995652278105697093673517530153206718429373473089521090024901315843149691465985950456036860112882249369889541244774393899037393285089343391920192680635356710616374230477496275838316404063060501290040812587638626653269511761180168310030638146522535831390379053138412544827539724456651119202617042153269702563439734530871394505573556740645425364001133266311249913711499359031437390183769892102413129609461051363876201607799845372823109161682632592083355189764402215725344966253372567186104898596436055153009108513652081070263284619355124291906909042639324469587251574217203368224694890068047809687715185558742929333811175012102447695291325448307938658070568685491311948141959031002625215632616614017535389262497029290770663639894810467930597243467658720764565664813653192308717529409963469810903597117087474890247449697944776135883977795133574005395913673228605136574790336321876796419710630782468261751045398522032479589201503828366754907064642595865673429008354959624083218122347037181613491223123484619287230241625939298812617344574623999893191866317004043040703238582436287587752870521494173688403166250992664641144003829071944106489848663244386764236119261083375218310510726824279168840449757178933565694968585035618749882095009306606159489237940112664014957874630105426626431694251423632539959127025790970375644235538276733794142606763289613454609961613696132237001470431874127998745885183283952499172241969283824887178730101545154583233209697609902597164725037706395646824160588996388020889849392297474575620711569253134980381519162454748763624309095771901212379075517348393587689774421970576088216278429269400258690936218829034635730264177134332105145987661979518058040528319981322525888652222204402362150488196685002352740610060479298029637586278868586934337326643266225050324293881673195084361470966153082576523623012133108097614229843355347080199326701248147984453544014418514936729424917010091087163098508466216281340488265302916283552884573041026208181904544374864641497102250686283198755963368699075717255086095746569424869727494040335284218097140396699048881865570564041078486986564825081158869718524193265434123440905545226151502303834473365071869248838204374406791741882092089077093521350346574765831129456829032771857590344660758704360692543060782900458113092357290295670234079437698046792633381893570796550693205618766657300153931520894131075897201436368874392139217562230327234699870269390870785973802869707881052640079210154451893801789258010941100768027197211193714757105829526160011175218643533324325214950178298469470689612016196974545305169057420503661300802367823863436205301591261921889329655304601662496658306438700162951032716632577099160773843620145498606734667356758250478962514642641904929705768562929494558735166547132202771142893409319976399534927707044431505198059529508824625803549513592493235028769235117160839519835870780589057280838628706491842913472412449424784768083475300139851311713380310304645580796022233710319346370772657940812806207578248673030425162236628448309809825777666922730664771456781499032787510182907191394046325483468294866448325060695761625735410587611856252207388917318884448537171293278621314005625357785673781640401349430932689347218284009155429268738603354871224484268272849135624636410328493197295708470441976467029632574025127108861833027256133008696171561120505736124496884916417972739525702298641264630493435201960049423293945621368804937084153544466923762992263084783263219187663954317275600063685836916242296095957444192103673290969606056494774403466506744868549990786154989406664237496172813925173834715239329093177040699919115612496592533651619200310356854533905746388758718754528426486770464584981742620585411155983649101168063223426851380568654096884199459021688487395527800567575442778278670191993339661574803086046426795950251581406979652149102275276472206731477622579248258607537968361222625528251787733513789949341262933834448726672979224699265083047585389901248302377862895290741279282117961067920803799964342075422988793604435572627963539238313710053518787161812442243223469449067779375073640914842869998642145969188074754407419429971431973000757775267393017862327865081217123844144952637357379416547146858996831185707686058259009903246898072033070112283019552514084517959077414014991697820228400419722113659421157854757023753071369301769571516170772652719212268505943735004132719169781498007484057548091403820584801724864146612559764256453629859869634287564677575594748142629329627543173169104811248171774783838266058476053054642555894059684904581544800047918268600908055151685967463564002191480812435396160325368024734328452395410199552251541414076271274060089213925841046122074639160302533132462063184703781272769029874221034126233456936112547123566883501420746073916917470806633433023958426701770535162617375266312143067164115168802991590223922835527856238657406026063275774705661977280628008578101376715394539295467192946232877180285568361266726324094041172614218805691930994748763799255370745352529075459468907848928890910154264340015406884088131616922250904451891369077104633506634643885631106534907790058646582392441344905042675732025514843626856364645561558472621839787663047025426354810747622484988599706969411095010587554279482902483538496821990098804148856674839027250421941567017910689712538749763013322738470421569162761618581336959454639035745093239164172193849620471508714146950204743046699788544183044180458101042298703416715133578921636948411365513065916476561555432918989483446945018173031017710202221717159654277704441791387042768121339840068873545184830120740304249639718147018139123515699089693692885501334820565910893373547144373712270982208092940651378286416200576046089537627911658913198780057992268042672002945694504371796435089903932893502859979417005216561974198137148371911913316491459506469691532774390950693801436475607310592670171893767444368986105328277944931998336344926620093714306639123230017389724807473675735391973942234087460058769417321271108818662509523652554525963305779142137312618932819407283986376515689356393459463002477792138196685300364619141947407686728092682947074201171070875774730747410038933267823289298137165251409481997021520023113630971544855564082975515099470480622567086957457770792794503209234554441653772873623236417127124825622767698941080581475236109812246609324653977019865938119893989117110640754272397868832712430798543624714934558398755684534502743194629727664330984908217293914868900927128946873987453264305399737322587027342146616006103007312485548081262195456670432985058597752963816479331786313214417737696302617012934729241861521834597370950925133848724582258340548911495905038925601949423491298657095542231355384685097888400712910249277052357136612721242185489238149300278670774645439046700401340129199570214282356287271341826559847361669279471906756169413986813282254370596656809137388277374198031196460162644595818967587372515606836335705602468880414722997326367556487598924831261117625697721160530225579070140334446899694121639057532601357824711968850144265716340128612509467363044199673987912864572436270072207087032561417422712325595253980192969726395774237849247418125813529304078684932306884435688631182320928480862271808653469751646623843105762686189404266072364313564525354469995030322630809811826136111285003955752735010462669845067188345960987118303468752219423427202710718544980471830214089917904389775305239069396097532805357290537183551293873533129359649424655690166739795125108253214877816642722858011777087989361644213671007768386414658430796273821733690025434991706805087955049554213070343935818845545303561633277558108197397930886554362702525784995380694485082865582572978090600846068291476922780089267488090845909092474990311550712741203151630729413060080601447752417894695573080980927636267547277681276486407311992846037029924701970091924062514222611087499369622346879871403076407102815132727238620415183182908734789884078581393686568192310710834914510853464782483615830061500602307413014778993035361291049053531887022781359579386807839671851579207583463584086987218567672667271853147315021681495834173315221027508316924320923429934150956218946464302278073414816120561505317703639775536981705166419873182438300622323518654640404973288705702304266644399149966558924676728758060106037824704699652340504815185343020827584274571158676668893123126572022236570138334389500184381303384620218198936259510948133848140207966624954403390296309249043063227024614366463243536760045602552643861202943769836938443206912151250603726950128261324799753405509953466579953093456416144100988049741096553106954413043811001620103190849571571458068729810264260833334017934068640258357910049763224128372194511527769392307150038148394835188237393443292944827504742354236694041038654645895019542381942270212703972733669345668044314920608575685092603820181379734222585315833154803333134825803020308896654796491437934867405368121292681803899227266216154216512068159867555867417745588890795242018759024034931080957140474240513595875819278882383019373360057936221503013601956275687803795891460027948147137166804278692802487301963736995040995432593218585159017888620305304797783163233112658169464333352814026045169026520708620618487494590810850135155599071184918526510224250345798098725267251948333918020048284584125655143930552903896681523023293718584535562535790748102803962240333448865990066093939726956214835338108213759268737583073555803806639145526556488477160074306746155385777942320918767961319937712559297029393392242687232766740697851704029731719762105151983786394277002013921733206043666039854913883520292945882946517572153188184289200340835462409277204825127835120569672951801804158557911816254061877311179787918296051891997859787626930830191222111252348803629344012085181649503063828413831229514134064460420081933281220075463362498253967539727279282420515549452190533025799405046679773675046550781583343149266306390363125597184467887595039119212563880548922750588323556297637110306204226810776795340162692515826115321551242012460714985976861201693368066813153436671135546089526407409696512609352025455385891690066458629791958259310049146501572762655320743498611636045418594022352779577979868980685058686653971726222899090458045882250775404765571338452756962253364353723249246708649493445515237233968763627316803377943303900377252961357247237567197010336909681463362178990687717949843280070827142484715353527501167843735371191411451869863038403872598768401200962199382829794800989425241276793174931636759826313648671455246333401889257843926124480501013933951652294301163014003465805783072472279922624107752291163588119693231749378255232346308178632112915249578381523009371247667136321610822079714907601456835707298794525073475725466322251634906767106571005323641457676497300318890725324275034923402067545978151153593671579702474412193507951247710533149352428539826203184673077396162997690648202290246494339400604567101883211378107234878139853040316160030747053453477204478238030856934826215821080889031010336912497001758663647397882571448126623793756204027376979701680391094151348193071232874653755553339641112559192847252023583834013981834781941361884061145042622329064122053616043739645532123140144220468647899539381352281764536516879188079320131020753652701243291402303521932121785668619709350450697028601005537548063603789979163819240231737374422688405140553582333878615048296551829262100518119126932192777387253296771398757253050111606788836418898854553505325871285114288878749991082877344392682165889587568451862761724865184085510448992868706318181868899637488192530659439642982877492290919497983759741697348331614159722501273707778906288246337918881592643790528722796938778216593058728137472950045499124132423353823851192241278601418074551732464232424784999917348286044420502681709750059187033378617503004005053376474354266035391041829817707975838121320213041365065434378727675252525212207731406316386464016502457659210422559720245524379576681007525109572877874961334415512921565830789821881786384132330774847101681314223605058018710186158695218332033503269061354534150017540448116691309348226065337772510845404947580593290072519540388172396654698044717737011101799584160511574620080940790101698062644250874247137665246479793126564852145849918187114123689678049600613118329027369347597853829084650962551041031814991146741314786999262642082885453295816382632582457491859263403739710212064790492421102057414283578082612135814947603556711853770043778893848209420628010926803645382963776102896938493820062500455908460423233741762887805128639295737462946887602771708877036213148983091389793805221881105339015794263243552822920720496540645695646521922335531505445043113666335004905539162977507905284576271626941779861274422179809681429494316479244258708631985717351306661301761281936152033589063558430440253445873057173813271158244458388184733253941152506279650654100301397995639930154768346654507067444358329758223276705459699797035641308686002689902382152273681939135677364727676848637858824679430641731314384268585483627033214637520831281346664941267387197612224628198789155204655525531164707316185816722032487809254461896717786124452188938924209190037763018466579635303341578728484564602202216828472718218644525095375855000690649601397430406128589021668815020570029458748929396995983397429253856798640428728987435210072060898716175955078485131738457103069105277157909255914118099404815124822837697558647645166754858330237847052562118440951127689278697845739045664655455087934449879182788404100372951544092140455003096315864008460725682383895423836451726405970921832018132146424874999092166953761712099891134121090130168339347655024337074165882399418548001369405950785372991132420153000064773543365915584700172099763868435349650005586545541591768903560192103973350355541103856029260230049676166553121425764689494296399632669428389234515137660602031404656742839697508010969915636995021131162598219209008834629290677612188299296730824072332490371120761027433504040399443990197472665947537682205000290689555225944719944285181939702733370474050259710890466153889983328297542632219185144746684912175437561224207271769717722904719420268183765282446098486189567812234160888816934185564060332377542142982245692983494925046993672907037079604778862554602937285145645765841153212893969416074596335402640922700811213319219587125040128056437802267557544860934166829011528627532333314256051405904105308800255173593939230303642385594332657418483485631555775520756893973741790600007103678006120714296520273807175017200406014447826740278178265845186464479344308243981490958298159581930610437641271612179474532200446444089043433944013673697690545204560245774687338177201460115397148793856367315232964260777242518252008206358571544582737834522193038099696792964791726549494455960970463493294451286032718054978323667668477866952017465085630342789304179128273559242007756141585735073537259558455639826834498704607712156131677380777095045852994934621920406652745009537160043127999150960431196027206290529920195583628466850931101592900603813287847136602260133970695667630762638717991603318947513228816208153914270794378364953484700802967383254856573463912410172653334900119658303961230756910525173331318897944917230563231882428692628591678979307228308936000045687599554975617338566719290062831675024499329441616511140511352998999735044076788740797166610101232005777592375749657264059374765239655193707598116364851416664622488929924017497028331024996744829512892150553996651876662370648576945318405989190031547436710147655904335566492678070522406203542367192495185979063421365814385566069859240262613904430709317269488383138240387432348334269407160372436478630279747685442274303269593984694768909085195942396569934243033882193585119792234902127036469960043262592286654194931889163816027289102418582030107574681189141511952848115519639868215292913645193583993166859668356013363611363940007232251762366306663420311137929172076830633004664750639073214712406089690883471362747842898289422101543733640346800982677660162196723856229702877016900283987043725419854493886110675493102663959043808877294421556288439154077977105007823976219215689303835864470181636629954701888578460047474237678692263704428417810283465648177088597335000644074320448075926963290878018292443964534109781272874276909423405532829815028513707465442059502701929454426302327882481795849000106881140762350599630906757747737745228204019876919170237443638876611151128581341554840146945127976303275180997969060541502290079077483585038878054962748009843621941760562588623858650767407265923639952801218319221573460290542723504690359745064979105575588821839128331557360962972422635210615753566589597376223961929334439279291848039122402245456363623322819572877082123821113619097241086795043439907362163215947279703376589576072371723536049683466017278812696044435148629580316431961948967953758391173196863190435751883436710971547291949057569487452133903709474763585479515910995930461931542734326671783339192511089892145615487868781554715773528691206627997790670315966409048353261816836959371965982977734617471502220739941653341162586469020965989039208679170368971441958220886292786629535628230977466259489251177955791205805042530938549389803957310674317915731333538906673436067328237236400188755023329696123121277299148673611394907654389869530979912613511063275924508162463919284727863620048615015058811722415255692928242728990226906307084993824201196436086422882960863074678284407755470818287573849491654249352470431357181828579459708636852493494540988357421841412543010740640059366028045950839997485150956341885143320709922281670297054952293043065426497027535610032721368249808407496740966330424867930354557339287861059370740614849731097792022134399867464957834398973112944901305612541807708001556261032526567443834987293851429907056235347350064294692686101006636609430063923713664735846676058320143589129189052352229213954515546721558138802333785944040572162306857289564376824517325448796005036375260111285866425316491671089791058218509635669987615145573984858966985706503315486420985295226238150847176105351894329239423388109018239551942476675423482623657699538847873246763175911190781441444647107550881996352412333707717281665037283280404764957815946939772767006674083977176396122432105194716418601844820806572495133182277627338269999233346543000275787685672237711770546711639349153130496960398164583834571826625960408816682564539163036197652905261612722865078913344379809164189946843527611441354958694699031618569195257940382412511463260635587123307670407377573091494775254739587899264231696044082992538108932225398107622749996451497799569835795015991167178182344937392669572480598503987894756969286411328201444487188506868116117577670872686840314474697913057749671389774466795900429491291591289351543939837458617982343009429010722239749014648706576325345406436853074459702510811745266339705916191313015167786649214265914640928135920387111274376797650850767737449378107952421937261943466469900470864206955716248060726557515660047433198589711336067692301389699555935544935375648357598625460148639534673916754368924500596072220037837196253436472627977313659331261705895004964342226558186979602457420474038451116997536885274340846192818852192290622618987625808248900120971222094092924648942897751734025914702734887978566268571847080256774201517038602599260121411814885265550617668477572482147953693948944124904014297088218206577857309884520934409199698718489956884925544126718396166016553303781436885846364691951721401000043601300022495949779059136564624678865495164388328348718041865128003462912516415719551762472841934701382915683765695944875933584565380643147379423142202568273652885640672911891041807867225446496110926224914478334681998385173584432978892272831222824151377708534129082589106204851313190338476839770422271434091761425016837169722614206202596090837314725128977366465990810830699176186019976522449431903489093030419355659655947022684918899779670128449673851261203192932396964543305954882668699361613718095689551914571752426075329391368167535697318264601700691386746009665408272874056495543674498826590765847186185153722362460346390780777621626255694230792649896499999749607043854336725419064476071329849624033257334165114222001805102362936437947218152063431161467816208928841482155341963580103225365573938268693451662182754618008811234459741340124414399032096535994004738180706341968815371366422427522591004505964864646022114418458706611367038198846757865606392940622265997237559494714250079705014127763279688064416320789263311694699208801509250488668434237159427621986454117227322774235985647994606515683544841573878760899350455783762145616826402211578603197648973845366311730049078188348291871063785452531097714595714303625388217520270846965872758051110208425940951948484499946610848779369074078995013084541809751989261102971320756991887471523064418281941966484313210492208805349481365870353686943047877697713520060007833936937648409852362577090815564557287521735583625863740694478821531299897843488422884033723216619242155054093734484276558941294749891228846687758051882285977498534824470132587667681866056148376298382440808621394711512087850022904497408694913425284260652143583706774595905311598245381669091538550273029330726228993681050467384660552934150904504535734955050455033781689146366521434275467594417962821094098492837933025930005514304587115689975490589704475992875979067050126340947618215166513144743223580129131926213564341682757784062332976590878700986928771233197376846476359749651331988077819851842502438315581291181737251604097613562635777275900603172310597652377028469447483090390883108730179367765110400808041815039275877417545053192550942878643370280417781498228525288267198291833831373597782367094138067081598113488914684005026099565957894341580297434686764717156977420512176650121074871583449777513830549115838816265275026995193753357789576538862766763135534525700848374797363535112715176361044867753671760947715622809200715143861919679353173958378592056080651168012296711193409470197268159781203600275605632337912248724094890763799609873239729973992126621112885365788998117303278916773479228031470695107948532787544451123776697259761980311582795848756149490225565619395152559604201954725712460588943676316047056475309913622424238722854174982498681237421507860363126106169414820641734230479663577461463532016587868726851248444503979046760721308401938507054726467353213081942390108498162347155428244022381257955573052748743229665548354597905450123539147904735603631163096312341210545258864974817652676493281096759484570397179836602906708070739489763608451137634396634884673499261539148555072619564112786207990904059207725430039111434625818439281955731577205264587721414784921046898982683603506229809137151565003675420941070195604584579473844381664057219454435123255308820924304484704248419906768614453120270226094322070734993346435081084638506690747745665492084812555894589107887442597574033169203383948654439327487224000510174058437752202520937043158162595140646213958587709430634704335073051165901215285226466094549301030492104619398531827607944302735388028214240837223236488611737838734599714644852380994470138841647625646799267227192657017024825413074530514016857388698400897623088184323066554510796206274810773919093033659047231087969068505584620690733409513600820152662687413939138372832518401907094363763937206838947963048345066269657951181159108417670220057510545292521216276726302882086500369791350997425279649344966046663563694672303944892766175790803237204774334738347562844676747350964997900310070038542942431603774805815908354437986021189728323278741042174617241837880774923162837088848162212722290618962132534202278712760500631181571622631440425658127788967509029767900421348447042330560767357148622827238749516707191519546599275447770450461395062205345140604760385067439983537981964555229970945615934570659688163507655458587938705920469661078102015467038653076043393819773633659437587666353108021362665037876410141455818885316194605130420635013850781966890421370213819934238437316230217387123083873923628187260625014618687173710854976700214744511391763707920003590329475464503554257040906564409837795046576011795943508253511836763299619763771239725042186523908070953678821225660004389529129312957609138688311851020672191430055426137262607184005691144898725673377858520462929046976338238222405223984509486564102479978129293822673780186127461121170464443296839954529378193556780925516923043590346066758030322616631872411875192837454277073270498818233169895297810146286070146481559222863609264031675793585960997375197995539678796116061248076337618076849451660809691828996302748333051006237665849385084817333858074804087126218646690866124921521879392357263323978474248197825009603867857839286642408338763299287396541832341800110724141633497780355146314867788225062396295522873351425485312760878619422511783041851118768324473389569527228559116470189275083778392140621130927194359112728611936168744659403396375348109249626251648534941259336787373144209376410879295343390248086093899637504030076056427299225132336302891197068724656271301162986775081331251379075905006470969431334770240910137585143087858888433796690510394184578171978791152752473328318423070834055423437502751405729357250682359599605010931570834271482602677576951683484268120712310996017438146551888125112202658560115299400215925150345076734839830713612276739538177827747484642617906603747907564405329842439578305341317368718429090762077974291807910944963353682224853110004649380806588040468946528699880124234403691304867425958583558288858604560752308937879699965270181559030892782064490415812334316627157543127015981527796598240445164854024342816066097115090840314979066406142328137928602258945625478092751451083339788394574938885429689352133931626663576746576492481144214105835930321088794299511651327270740835070182333677586833076886569603090850143412903420168089728518203132506988273672725259179480773942230832685673812927921289191209281356706205423554759343659827355688945268437173545094301687756208568688127385210446938009495457744732393106295074456960664356383300309448326043366798883112397776885478552315215305375006067878128697216602793696430934968625895301218410400519895811699939571887523798478284393285341580435639606791854262360756253639290113134921431247188503299949813273930422978945102317456058990228179871849885958510260954540212575366653900179489875309099366694737251359949331302522013938812102237922635496073159127907931558187016647712966223939706723885794369130260818921043466314210088892918914409786664019564092369303992876389374452327576419543659255318571982748499386725679312716130020733280417517841609669182381713537554039126610437325953807353675413845788303024132238207249255100507186242717436920585373918646199161271228859012172489774277237277357869766372978498141944997967978645943486282678957494812048742911666442780504403265013722701725897015777813688610484965012846852207476105373401231057568100470798148391501727915828443654693360901339951293804059334032123666805741945792433516319828945937244691276205923309506512091690828941209948753151986926446907045357404641520050561458687383140190753519960907082053218504802344607054895221998978080011148054759740965348216304188445321840382988082188487601627401820912745076586623089904681525487892185854066018774881763085390550960344588950788471888560820295745902084729865140799042789082366149449254076344430860339530961289373525119609963714578341740124113923392528025706775368895189909505369785864164647261385316585939450419657583919667585057401913746899313742027827584515533229261353911048418193871230920364251610784752453431461540999071665205153933125259744497814175473365581010345181020098524065689978887206601052325568191970711555627555957630815685007721456524964424888433573094873005061840890262834595686269660262214118595223528377027710428209636522376176229828965928670576194068802255055837025335856172738744596166859605679888666100195810841549827357267071320891769283747914851447923020120883239162475045616849648127838509907499942228432460882605714898201042732603803673308881028609520407680307917891213458799673834342098899786038341658329431745367835145000628922652383938962007798748012026241386650448033895429322081118620465099019438093732878421178056098742762743740315314069268963692746398812585723413188984935232352801333306050522470608330745359338105931121704048438711574536277573345832574911719056224821279327355625408935408222254724290452260205795045188272711587850655506182287867878303286063210780334199884421918306306201749668281013471561801047314650412592382223782743082477638242081126508886049620322094517390810690200873769289456423933902456567415563203757975381890298820285669820151562890099789386193681474163552755117876495496161525266164444953640043511853083538741089673399790044646511260705146036573352724598984635362755523810836039533785880729895149539586392730113334640265024570989069738341066446423568237684786492048340053902644622501701465074269267790713068876741642225621494283246447952916700990367006650839222803210371012775655161663691619271998440489500572799206753776319236678675192615027517688668690943238970708873536826040098612896793878953360065208977723392382866112702975554836742602531072135607719589024371209070724637182511206814492502814614301455688014883311046046343308777563080237440280949124390180869180279264594575644478932065525624888642518480588218560358926354146562210147813356520933198998845374088230299110402243809439578919172254714109961719940047553830261092050089848118231428042538681968036776399683592436644876596044795443741181101877334923375778321866881863613269168420183540317762820006611136709642549640914395594553044098758140473534120005648508003549455420779689269090141141021100232630526006314671071431924198441709557690114075193615117448561112657992992466772977507911019017620015496583113217156625182027332469055811938655566297636627247976313634628349772943445691968440542282562806514114022717842709079098951121823756972526970216357715306313905646211936856007877145125459644180615043027585662352993394330227068592786849435228412513471526667122437720888995735800707851187849228670026356784746933791923669021282318041395879666641700021705660464495513280703089970739777949462857315648257891248258418169531076117405949889837995850461332408638832153377063805917693111173654524392877217084225982470051011499800015070994115241216582859163333745537599949787762513481159033102616250020109653631230707457133401421354593263794845617458134670136653668529124046691668203149328678227583739537112438562510843095658505222199449551560575016301634776404510575638148858931812552838383693101952337208104896575445811471093351711401865855819965660976407567428115484730985301751555896026774949230888694590352639713825786550401218214865474666322421962493992577426345222637630842375325301097775933184163145872722768525941570931655091685081563204834878375348349223524199985259216098555716647232475593465931191321481209810900534018308504461770948904741838421984053753962158430067745295375535198504852233187535235212180171241647100105866677620786080253820550264263393198502140687172110114458371449886586179557725696399118143433682503008906730037296153077020179133237002715769054784747470835091243899540588527593797124141550485156072606938980391752184447035597780272479231388603520935977092510810016174236004292687689480801171085509835136170515035195482594277073371892708505547191035475048125867092655723922905766455223637658073353485749398751461186013704520514839053236257136252106621271001628088438621994527585718679466230625722737580334259897277151342917344017683131295801463737653864610907918625015999682596368647530727175034839304039370428854835399680611670990947241574288066171833050381244750787014533020121025244923796205975351980473079025203885469250272901469206546058203829252741883868631886863155800700135300009875738006007837734256395508795318353203935641486939264950498224910692643158590670286799250920839208667894968323224194253383841028821565821197228248113670806923711532660864562093595092301747577391608811937865775398148094267623878427252784577072762202812507530317949810699393364255767649494522692508106603301180804151532165647879086774276324364432489153718389451274057996422514930388868549190092536526069510459258604960769356978898072553400401690957973200535389142277300291691238080156876930832014821838091674283787660847369422123611627150317477596866975546892656048158367033348433372201306860706372730585086880023569490406544086205933602169252378429389024416992364099898500291768421980241977799918072082835210329823965791435143981798214309573767021285529416950723269973988924113269734338210327028204840969680951021464272383675753259681452080564732564323421729604108326055816810308680614075980146871338384082040220757029525416348343166259146051734482568894956268521481283118990781884155341347018884140041142893776693648700822066920518522706929765292057475894243858415798620249082569661185494961847270366407330035963368982689639676152678681401323168983724961798800977585705407705356697954216517205711018282259054633122367306373163785824873747191229442485838467765663891902041498197726148797483979427988984777679536682979698593735078889862741744517461916233667486011545904763587672703097135156747534565843211554169704475126934773834938657970782858848278315035617337721299240467882857213492046980137617956275888453360491151118765833554762070436414178488524320532693444815114191260095096028308228314242516146172429034058017278197695503346385117217765647914158039196337217304184360505476674042393932428094296505805393255757957662852096305923637400934280284569878586857178759592843935890142202758179461675617270157828536841416901181815554425381736206804154682799576580631231149981820587740425985913179803600930520448791528625016734237505903892113774003254530480625312782522358558984333490756615586242408629503176176629594067522716188755362901366375289765421583321662749950760322491462194800934185637581824483352242945447904757431769124472762302233691235609858590147947190926639564993329567271899571079243712104718312449924550204610275564664260542586184978207206882162727334383502666279518337479322569082102881787126968751684629317242787753003186303491341715973604576706265962899267873448893450219204829437012674202781119624032875522539789528937560747613715594954324941866435805634096162994807937621946395335798304285329558003297049191777827092041047566537684584146251711268724533438485804419241643318025604111439320501843379919142334459212630965498786738704610028028188223092087167088736670839861962825756097631788130874994909940180893170345744044440077545311802686553126438741824213949834128504185069878193265366137327330894818489973201988606671645714531671951347559641942535071456059147402687718043257938214952861103790991102251335827356771815982139794385890097660715500931575097643534556944710225991914624984637349208083736838492311511597526219612294517270926999259611561407901216955418329431437044720195078133637458544126060788765553379668739772951893391604450575357036893253767735612330390692016271279693606467070595008612019430037171505833013550777762274964956883083971341573436177960338003898289571360615321068341336891381906095136593268200897942703518411762195539950153651230165914035162753895242032131197071905914299584302122550863882760260184571912702157216166936635532335061912960109235083910981929362260646797078637831776024941501043370286199343756416950170836317599723054221315336151102483970421994549425470483356505996063917222766909724958885056171410564384413694920722941997938429786714143778420762187599172978378634733282339285044726050236521669769349263395610078616344480625916008439051500815272867582422786602205894874388372856566281453968258036328551313145184018552610819569655473041332937844068800196258082473002061948138783045918420159933036899791967466249990956770939039410102949407002833613455820812447390765672187469393912453081567939242952925395605085333828887081045228138425808299033547572706799519837968574113678069795932093847180495133456253147626729115966413487691534324322918589752469925320966632756339973989057492643813875317559053661634513584032946604194603435841488480367826705135203400444180765829840525854407385703300642677353158776232955200628437456601753303109425709705779970155054662090063619621406342091174821175560202790326798714821223330833623262614036657827553034081116895603447323655370339801835624983056272049756973513305669381646482615550198889836235779890639325504397594022349199485306243276871929480575484715416990921670579833099629528011704423467473145647233955253797139507176538334932310170565245108052992737564890160373921018963683613932176782700443735550623048753842134592820168242651072373003626064569734321054595983194906557775151812013442504671942197500226347858960388298092832367863149214321480170670137113430834446895785872064333050917444622807798771103848580501543797334314393383079315998132620767810912615021472246613851358456929674814194821788709474387707901889855821304781318838823384009070701108477839801352514219900005992971609496206155695542963651311287427464292654508529539506665385929914658574902229433791583878517134527754870039188151421709867600444013733067429216421138103059676847458951277956213215155004643606244366856694172967432253081529928148708938624661490143433522265259039746387877855747652616236938596111506532523448784364193064046465529117659637283152310626051646966062156871721371525506758564054343695835577314299417542644402020506145582302392280786543341592370318722712366663106975285333455881793764994707973434661981713394159090684466237402152626953389787515848591473199471269153765105226458886145530262843838926012084516074580543323613435930358608244928028948447648782005426905392187359371631421407326082988361133385489095859783940541497556623699539318598102070305501307136496480059415556566438945162526615942225008768325967414267692970476878200929230343358808747520955026023594446509956690598033696275162790639884223130379626218907221291467955740426670083663552594392157951990751388049153037669808571875746215914763062647454236591241025363294567798340138117977397167258924636853143709358069284158779527892243234193117411592832225319150030374624909309967467937944750496401363519908270933108421357013935213238375684859198547286742245348167215258954168339084407404636868666783175152903908826064297517035931067938660632949962535490925268354959889974530990709600540864987953540628696242121103769134314843414460601234540222898837419893058167576427247292868769101933683708504665923700479702757547435735219244716866669028947189326372462709275871343199552195141355603373097756352657525506430202229734350608974846189773960217635593995388080998987406335491241948158466696058984829745667240045640928076080667640232302452441473856319254491575387600475813716871390976513738910511691299659141016815730715483070108094646017969702066017816346054349048099982930306133791025409370341371342233399534646942500225366917451338577384194417231540585767496391839549938097742899270928036190633178418650992956706856135004831233465522574609007444444816372756288537227232873010357612579065902672440513475985217989707898108427157096623481635238842846463134528337889011390435202497242371916243873577017956663951173382921153522300818594991681051231119862920952636296840029071922009308848424058214514915616337481656945943562858753898047819508405605495258160948629833122923755258454560833517226202913955802899694482222655185926452964906129010495963874332273882455058854640268656877316908181661169855710631550030747587330980641985343420060359863747233499934287198783032619361312628365901121030516943306467707793702597959674389342981216078668044599031414101693512778484860035792772400483737010761828022398387172438380298099162977619239528408482185379117989695278408661215242023286163073795642024319612038055467549409342979187386767785778957386050950985708783577109221342715887674936124235295732335135519965290394430175841300387272552621123593832950912811460073465381843636585023879772721589197424801503478381279225892544264534223727316183281748482623969421339675340722210359083203594134819435096597302366607177064477167989820740974744230854296782632230395273699943618640195578280142430682409810481575487892788940667151551142034251044309414594346644989090217678267254385167898793664712358739972953820630393242408125863291039115890671233017949325607538726595406410450195824322417972112482190809779611590383722111929271685196420152329585158434708394728606852807353108171506775325084993359095420638914684040985468362565200218830022861294484833982225926227094925986050593515359464153307660952797778918263693376445573966073195825515543382613143637278337769143254527819942222603490446410942743820408699411001182064052263870390209967371591255194850257920325563033342753882503604543866707610668842834510537157613284387916647413055212629506854378627272510459319891018067620548742088866391610602878337173172321657576956463779512999197451192520966112681072279612561046489143101381830873851590755752408191630694248388440065185241064540677773650785267799691133943747385540270361344631605804627450782518376034652878844079995695681518047019121486577137381103528501683422192509364624012469308977834109066434487466173186904017756587204018648792539519987089169574232985906575767002528554959176634746330791509666064075027822431377099274664819007441101989839703669255371854498257691979363331324958301442585152894445611092854045007830739705882610755552801266448024677851493906962676951658032501030705114905922433513095973321852633262696530897879511692043161521357407618785672444726919749621529539124357362611119629515325293456396934080233785245415550235009478582786607427755047450575236643949721077466131299349936680464781547858007842643922108608249159867496219205527304146000586997146563354144898939230241803057227164240943927739971103906690775233961069208834978900272680884901055726304291632003872029375707850056693736920836569493823060789772754066853991172269408608668121706465993740512718041507304927191371283738547070627921687246762167792738631190570949828729520215460501308573350235112640535655981434870827311702430970955072659826239036756623442440445404017605207904061415014641479781508260367864304285364670012123877149060210925803405046457775726032848757102348914727405374089478194520159522337477656838739141796671190632530204487202090706311939852761167105672709600095002055627299950233566960634817814307780575652256656630069383683603377087225953907462666861609007737944022983800043147691245739859329651511687875045305117234773378866632684008960157549076755396430823587379390994577443216837568603149822929907340668753335839021724901433112524290709906354081763319170876402894952969673331746252500259242827587080598144341473498642892395002948376136595606001257616445199754691606510870997650700072111632413536696207983594226567464450751482748702232493147434496756973880382116316388069495297450628043487579144676923449718969552837142211946261685346304004685479157065747707352921062396991233252485030366872794147394548660628353073274595926587987895879931657573097925431998271931713642470134548820131313235356093035067857472660677721987119254792063970893882036500695032116608708806079448942854322810602360234396716698897723481123146780049315710960810097815046042584179263491358610649234159845304934751092432884520109684503008874992912474825496001092461288202778241491168219040003642363723875469256268754779359101609723364987842566259431794583197124353287185422753290444185688091324042841641990084145276200141760065341054419933473057694330282495233783059936478620309307228201145345493725011714446592250386223035091966872447869299933833748095248073894646129567960255096593349737902907322725870612288889821308418629040953179723535426638157411181930242774079310344940033908607625583274143673021298327029210081272806512630370687037776557063752197823637301768408338013158723868188435163926757319274133525953403938953481326793745647191599146058202954172244167092688323112880005181953151132541321616704522755213937257136942722965197463774676167740155878727601337635039693123214212404401160788406548677462313192652898977660820471126839828080957445957340055300043742231522474421636269491071613196395210101920717586081186600674619517966896430987584916780971072711792486902552616192791830877231629566093227279077384767859535899778976288358757427189495053939795356856246389571043130597036278496724455051821814104116484135764719973502866824304215007423215431271730240546873004064296812993682372348555836279424151041240963254581694649167765895227274500831382234400963266405370541571873274343098313990897500604622143649677295471755715585960669529486544593226362267926998592458532600045305038629569179526096919352542841185478335082063891020775413294386187828437540833789680257890036738711224260321838820387566716652930338725027277129692367255009534851899034205167739429397998476301327791546604384432498443964534364702622505962567493523526339932754418207320234854440983120049684706850810217385885263228696143813424035309910772590919680772751001699246489333705337599224063481224102446782801876079308513900525676326672452171551401416487351739426221297835545779954179896399620374111508676779573745593508977795514862959056519476897857681185510114684617312313700222384082222800179980202047726729398216628925502935631122012930798441137626149942170335645576321794554725265322913339970592064945137326170191517696299544666360277010715721334541216198540659474331122835522990445844529496936007450419195569238497456813780526758150877787304199851010883972563240340921777964649889100471563161586403231025206430440661511223563967572057403707126279322660959891139834451230649218856336655659528418111949135363803115238175571932175194209969171801496245781457890561339733488817490921124773481099321613386163213913029553025000068842285353032515547523011010471242455414727229924056902258080916853856655919127086138256041665744919432465028121642021857544902276895523004165282547949842553562266668596282065772526620267211130891477468161513334122240774055152412003604288510990564300898196945612762585869581937864648739895148204035646735025289673258261290542813901433278086760623572272552173569984980951347710563393597569524465581922472226925918109543593543092854981832166127013931330286867014602161458990569521404943328013410748740604724344483524925309620553576587733614543977447838501916349131436538912512091159403892311505952771896291687509196946866466412640996348916582683470204905865029207614152710898967749829719016629889846983981321548681560454610521342965815269768676322537674104042341772493048551797496235701665070762503377999357258394401031634156924196089815105817148846701274351587480176448397931777876453799802226820258071937206931822459530989307318619612526453387497791165297384161271034384148012406194452117612381553432067973908146674128444258846499732674244575522036747424473850862000698368192946370664910696348852900407258865677452018609260516958667584957264001645674536329456804430380118801864832860282896525533785934181765551088809633477944088865295545206281604237441934988018991304737623366047754952557888981241946868179992468404977384548893599254615217221803311384790696232155238544974921808551417674044538426595336600120527641709297626806217896967402064631833426103828848884019072591778148899203008003506690042534142104880024941150991479904875759790041884161899898993799813609807777880034361790318363675675291499847194838044915309722088865439835416506840857959708740991029752447863850418476660441710071024538628260626116961496925109913047143590198227117272787422173977048679325223505740698490152949082142757893248403385776856455474019603469969347640728602722077819673169482013242939226439538912649842206940493476581172506623458610659108104755493318940580989779531768595304832771695704882684902919972443573839652953961727434836026787465536490235244225627152472500110647882115407453901028748428057164529076378093826331970668291332436957294266638320380824958370417672980748758506428050291306195583153604834401420764939796895842659744772682048334461382542483210187347987212538682142149941737198619130649217472507812921145394251015851934998670177490118783764181455474410243446304798389938482877086613353872290304985729419332276866169351656657817314978528317193934698581738078042726636045722961009046538630630600624093356892229272397684726580842991640025005262411648761832281874791572672788757106140077086983635862375879121544841863204211176937924543356147702274544531822793714941088234821086029074512331794651886492481509805771036738920305105695043279770123591423471975542681338322644176580068601541181720135258023688914318776399988721862697117348832626647617822272932285431013934634696718407528624003386440458617768974949367966983864297009619393319854770733801296757206102263555546336750533136767822165875304562636017600266651306814333529148685533510774426796084990957847186124656578398995849160538523283176693526885830806132073037069192546312578036428473353200224679720323208456179933194161549071928832233678929246138503509879727515987008856490748275484516341716618615932512618920130913624789587585970297112583027713742556993921151810001279845794267734758366247062942484054574347503445456889880338893584129957787290735036210320524320025356713281294619074084468937492569870430867391121758064691079662019110268253763935613391985348164447508414415674682164823788227344505737313345437078206283013916902806142112798593565769770391966760760705367557176941882206312873215834097659254731913778628456284180150761003043300121718185082013765983838585855646372505305607774055896282665961770342495756727872297775813073449304191447757802429526210334186954397160328215141838628467203762518830065930391573774782415831072633793903150252021927070283432220126566276913042945830603755458448130312655431380824150415142245849974519561691697834475608679734320270893104381670075909852299209665152519319328039728848003004290475938589010083116210608781656339047417506392125423907882194302169613381281310727019854043310351368588098462428323163033633440428221784674094429284205048630218396934142889671815089714241501377537639335284705522000187811036002005104697780477685331337957812976873360845067507301770539919797331736372277954829115597280708798608044616808976242289283440669204342254836889935014569262126316567539598300519013743485580904087104712597813595152506200244387121352448038914667398412192271702232386872236611338926549927839725045448784631083307909876636230447363088075620619253550026266571726443870656563940336895993281907714239082352088700589673314291294931552445948748365128977937222139072311773466961952592567124859928897446556362092352615174110165540761785989086667789738310587842472664078986118909824877481426844005715444975272106430917621699347441202378679968622632976812697132595318348569029469098561004745840128281813140960914042073881229006968349254047798548427191103599245870476282418664063801865135937577780217176113836445494342851537449076196859211649492053012641429971689093978278503593360357559215322927164034576716615032810570984396643615098771075623029043752385982575669554543534106982495737084624766209561023794055334322524569802157835020322661643423697508528300174291520735925577418761358958057907680813981640805894671040563770962189950265204937424287301378259811707938059359148906089586647030695794490927762206597496179653611426719092019759719575021309201408602518746595780283099011864881564922032500742002942467231697476601491486902222640092306330330359863138203413245976629715393950144435403365368127094823343090694047509539426315825149747088630918980476404557478205970984838120478676884031770587591748911199112283109778597643376611139430123378686698639704031068806899839948527139300410650781163890949358312833341778263114447542017028226862767200875214359736746085073915851422027321594718644314110312613390902530656883092742190025160001148573299330383149487809538497065247273060259767054307646586513456383784626412629007132086332178587428565097837458227314295703092102109256647698067268229788084324332472858795577100160290388680799214284901777177177723653012445053147555807023086668455855633922776119781554654844307806353724112059420553019107063277770864696728747628742931287912284446880380386802326731719781265362354813567706382390508836370725209537084143390939645935704264077905635131353860364178977022403009663672738788698261503554310410019420656078603557939900478999006343594899419036949612554247243950941355267500073625740976586227796368504476496414368277031451654276113576713688824166181109746109503509952478975870727956881544398401993802517945237223343394631974404715276016900814391192196269441862711125339005550428302546030606291556104441246966660701360282917439695201357771130731158399511629796718058376575086881883976970749656683319656181836978564277445120182705208078865950507284514411781025274961760465204138341799618601864907160003461759691575768729451571823469203113419315857812489996548372332306266230390900816677533746704917931209051782233064124243545718339068939226972019457502838134003204842312121174911628709774868792103056437180183694657810916261534813659911478366764712515441506000841582068494128918412606416785643961850783925902562668761779885734657723732059497306053736646846693245409938040592016246380484223143645217842562725506809324544325678155949719324602613683768039540799269420295284589203002908921466632582422625554721903911710187948172582749875287876424810397566394579275192373143991485502318161947260145271552403591800191601691850268915124885794737101965015284935225605481198952472336794940982511142954344893840098524728733460680813930557384033403089323869860971121694435384615838504552607559156730790757774772106788194685820744703427855509242246902260113932117563635675228407056606105492859607856164325722450928101033899447092106832378010425293954104246882725261301459041033171606198695635622923804452860399966583512614832717622932895998432322213424943579264214786248334160216199550200611508322019772345871291624745151927345384762911289956778921892689687079580916558725682139502341990434674375459110399517389213863304298548348191990823469254645561060163273318197042180607058751009076413814902876420684117701556718085368065981238039079324343554456700502667932432362567310046474803312093803516943673611723754212892715058394187350437726209131815344602106827908347281910076817897019289104453318099624333674117688857837570911952335769521371200521981427753676845407430089832458187808664276792262108096071289409294052215485845983105493937010239194154504919572664334400982294797896166718586742014144764884115316726681619457892480366862249609431255108891269342446240992440898189421143119297543620165186257969159766149358696477216000706892534375345443056717139177968782978622226385210644787595012668444562611341348387967561638988082743168639314792035104410801830420341580827951100588615986690991307341249620811085815458495650586452415115086652666376426975747930368841826039026016152264206623849921172149427734277468301635132665160491449299107771767764756355289954523785537191969565122537532052164443581441261715329653560454981768879253900526507369602043708595164881298916723733336541219519122163333142377043999663811269459605923220156316314006608736715176307129637564661959156033581902091268932734542692722621570307291769279081896130846947050313330351932301457188589637752581876433287144591814745454017355192780321140857446906782737873431055174462433248418943308343238795739775527909944335466924390711199620590589123448676304723679427438008017049291576503121258271197206830727991418728874983920157621425409409297954433634578895024452795994395880751254905114737185653752951445236632204684170613400613342416950613126324119650933845865357267710125900115341419721426635088558132552716149853548658813113101472930809334770790367345099462244111777290439609837759918491243931236703523840488992298300212247250512803133883547516651835326845926139128034627763991075160372822675599698994015615443193677542205822001559995316487133067406861426651346666527689578202053039006799156098528138162006782545637973506486969243180241059482567247338013515295143447984928240713536710190262896789237370443341292374340779193507697255981064747145015683827279349870951442029501466900706491126931023713999837218233450505116491652091914305155876919891301628358729558565732601133344041569192083489228833178425076658608128910377093628391313558847234203518736905712732363544831294496847416195765706262030674989884972437329065684877724607924116251024318745508305649496269376464393144219413713860854174253656197758790003647256080978922955027410547086332703289198191120674120140668970523667735797564296757276843602415407507520628499015665850202596352905207538516535170606329712240480482499105937600593258624718369213899462856675978742416031060678050525584689014925014500599335267869768643562029469571553471571938111279999042749634780596847265646259667653454815495878672096922073246726706224311773027178045025070042002185758194727788635014807854342863355342603066771322343059128454627302332303563628595775189638152606023393291661020077065157456487211703450477921958384506266325042134295961519160500718598382085329558219071978212533064484919943431904795727744057344940143908648146960351074253289556093771746436065827018929754092656376792111507251540722418541425785425723208519401951164763981571691579682170422888468727585749039248148838066084673009872885201157851801590886941903751788084249362331404869331071109789477441243960678876953075656906446682268268925854531141062006262843791411159685849156631832612385697708699595386995103106756240879754034382060970498144222535783602854157286730770309858326553138456930036937068901723168528025893214069654030123781302045978965469551508969716665825497106387948686241730022463812953660495657787941955686118411815968330810511444162320960809448574814984950669204828621244985764425874078901542484826464454414904945536330776835509054313965717854677041299077291086076601916888037577769543335950791009979876388188157677869614070027219864944734476397154541830010536732790788970071098491877730808987264197406342233982890921514105091350931368087111068065785631581061459813382340572778818543966686803367767637550998930031318202508037425855831115676659284720275048073928302230589506475906391362215657030970396197775543510759563314950843385468069422164937288159336765220408784417188709302600597985983066637081521191742623075890207764454981096565290553048077026272019450741237972911048994202771278161856828480612870756102710783897154577474056677146277770991261970249614389368287649866301165260415116202997473730104076811877013636053914148910743862431138181317224285688822030889564802999383052949979053920504308126739022387376342492078831077283427739748609643811729530059704496113001031515066759262552284237365630494275074797609245836136276864018621609292648659747523959928134818018341153838604994590823456347381166923954412677675375359080522656032378024931951582024861838081739567786455205994377337580922853861052009010022799356899508602195873888741559964073412399651592390935682925484797055777907606153332358361845600281277960451289549206923540624462845323321648937737835907032168421782132550210871191343446312814694867164503037106256835606923162108975982403360259232270112904782301458797242886241270555736472627926899213648739007615209935329236275482786879523757225571781742339110819769818136210174400236712380387308377412108152428667174752056431565593407504204613380979601817576215265467806216250813255263508601533124110434712766158499224799136650376638592862003228901836348624666766043540054026491094570974584037132697356413801615037790919181852086108778991143934519347074647247390176041266341796287860969048288673789706288706084623121233249636178488919294982097397966977063628387946184852925550187362139326038270160184992568030526729197979120891490061157985464744546955650491906061253582089891107224678582504297981396528714843476738746733795655001608021005671966038194164705785021809336824601443132161770354534365217185627393666281044915721555037412664361237558776526793508524498801258942813041751511736618899019013478231786086334129289883219391634031338995322551664284203028627894765048742722684253698198575077806741138342587142660749507959692481856252354262929194078594854353179217666473625897498728022983572401828349629692290056270146951489327546974223939611923643306155276451826325969867286283093610279974022415629080165002735912269111000069749970658171273013169436353386952928665464047079492818514403987605522028875650478514418145439576726373794175454189303448900027379641919012508873598028386787570528426138615614775899884055672487703506562176740802529239312478732856066211549457003012614012537516883285375136586872680473084607855255275513412288277315505059274814514398406203444751425006987628217024817540186025109487818374966062910227191716698588618062673777044480527652863977725218355261929614454144728242751024562847205507458744388172659285557657285388360249025667601119186753437603071470599571865601319335403862360496062642806812846236618936193152265146338445403093525444873362507155335505300677785400810614733419208050451606040486423725785686663568833750479002369450995943058092271070318641715461784764199040355180564859841498624320970626511904346911633550786713343121266629276402206377395361229057485378948064318646337710269561352302013811038752855778738094960719446830158717265749090857977927384909617416127790910082206371050520291690219916817834036080129926586416099389576774247372188376435450833791733324908990491897552647068473713530864143311141008246534017622054631638857516100667561374985567230632821213461183224979010670993201792233985473853520757733006600513156541381250976453611885768450810476356182571160979087929494670228775727506723839526378994962854385592333578742317942712874101239893049612632208883793126820817242848574955552674307831869986787701558788262709846452912988504071813105984547132101563626648323464357462550384335595974578253738924719601507422118045280115226474646264875252372242138868826931708200712402175691375971279478268430604541051776855942940635183506462955131425976945699822288279275785830329029348202887338821058850745092000845869170691456165631220876139815857116547571233212840350514633324043430200966076263461979266393000650241839872364917756444292142708715371515076878479253361603873284102218754748351201431133776112214981216066533952774476545252939289191552422841014040827596569658760871439442872613562794847256429774040211410283545024143144737229323258718071490950577568481328843194437891269444445019108056665265319387769011918681526370214753214559605674386171641194333568521378537424860486954053129854874065125385023481155217921868406523348232612528250222221356107187676959987189473419837300629785788879383028470069377626188706007440787165142779612123893229684219430926222773600115985852377727401571027094332801071185576985578434963399505258415051902191435978576093704756287192557798634685591424071030626625735362161692204996470224477934559524544450747856955693296148097222084205105082821597741172522477905557710682853736508814208696932775496335079392347185896505946698203545132386631783562696018018485083892239497483209606725694984802735519316140980292066434192085977761649289927076050156117686566619086267696437894950017740860655309436782239457718309133129129544897313744551358344786689043802243345978111372917964686148007883964819589735219758837440409039371116252273012260804195095353609319612378602691942778841952449056425806772078975433363285407786187116783339352239043450212811715853155598381755879979915870343585227063759339134948645557182180924953050036690699894474533798980462405392962647453522307754388502003191591160394816787100856175570327380382739814438060696113686995438399239294254168159469905470466219000583583955300931291526102365499821447066069279656804524827138363119291809039005891739039682851786484107868274923177105776940039867303052041690279859908548287422920211195805468512906963313002283017391005763673674162879227723190222601222336043823552457242788844118599868119230414401413158999076392436219470363876802431636915507385259499004322437159519962121468127631462160427457180370284311993634268990976422697384847308055214313381001119934407279637040228339191912312729410769927113691197757526690430675840906862784836685948114248020383563611257984039455800019916398199611361109329231392444782848783919848133188791436217275205388936807210306023193180235284439152302018398942454732718914699983945225657113694360762766140875031777823353984429506503737916121977937425629406609360828102931248443204272100886062247313789620734306516026390165487707523514718300826156500816975282877811454890476753999315974401891544584518956971047143487299138211445962240118166870367983330794056676280816019626801428827652919692837549473379353243761310736151961873972038292472024891066332414207284144401645063615911636455746275432557516173852950937459615818548621632601484505612760284863082695147936152029165068053481708842986901491300300054851870200774020537355874663014828569577552588753962202490390566038752882061733687257913905649370265322560704481285539431016759045784688817050702732799645663110648675938194836948169805783362785620382047398270341066418333025238616186548753329117557682911168706033239541426313191681744434513612094408079617492069732970065637166033638841247567826946421831129145243493096394462304633801657993167430378706129032523697034949356070221797746961969497492151109663048628021455780800563760096144743044216636344882643826529745004997842700413427919076929817479454307975922947863916093578332953183154032743605351791297355143313406878757023864817398003028305430487048602235630741606731143436679231824605487039835795860312385730247377617140727205375854910736202061870108069902752352989797793067763186277173667199780176270623910315775098456161475179423944026098194737197067493307266522290143423411677430137647760694901784638610151600394262305319471041344316597068882520322949603911200691528316655237820162602499642167665146510140116294728726767169617495315982859314664813567029019059120252644092645292865218054876152548847035559017286118159639986002368221290277294102824962797095104867609665902658112654314367363858148333243824157359332851839806295174439826893302074428662111354135235480104696854631674312474800360358817393412895109072608417746656108788730759698459235024406708899987743507185442677462209319655145760648646188841543866132695642114876198799631757391572553202420583881251019169623997643246474541758786390987727874113058187272493507649309760722403936210450434446438962861693094322799376172516760112935008212160958563693358346221250557788870254713186523013418766829350783955645260075377251325648479955225901375630872742529751224755690707493729483148200400333463012377406914850768755152441990089689209220724499507700160611722574586782718477110992202039960811530329584395768664809882584550372578952756966499647174191003684222522211655154378116051249087131802603210211757330110455787587359305040303190383864769289495992298582978979638156517892951319848554919849431176914890970505161742765527480787736635683845827364029127681270076365379246462945383623650679643360971568448665441636128540998035819721382128536852166522638726145252670771192676157477959197025647209228145768070908556620861999245726335147989849762797036820621864481376223866722371535312106608022058596513817167388049947570012409812030171170694620586868375825614757002876815766501258120566765045678289311970430963933232409839077572883770695963521632527984635522942412448671192549858618318721954782150691248932187133966015850321074049519178298245207342563151866691197412080570110713729488956696602766263038532600350683992844845897394550152264311956161708487831756843132024978213736377069623333893149272633126391372660173046394632761637209606114463757770794832169301737472576075893852889538685361914887870919239804836733135969323764094656321081694911330839760370176040085209752001073706499958901157553894692176242807819698480096639454387941954222110190798577372655514550377962554923466189992664494152506653653883501877618716310044787055859616888112410834827432739433998229510315402572583808811270339662898896844788454279834949413861254571086508797109213594638424862283560407344601678783684991620150108390943155310867217535807568186008958933200622390536202462026255631403006716481708541135105215826039135233685803286842190064656646855782446994973221976089400545294295744009426185921511029200804697861971036149644981807996387839758919512549053191565351908023074100468316118998357919548906871441723998363582279803365702115282349480402932244154590937228549023207316345445836502725500795358476074752453086256465176690639550343670714089238468731878143300809685224080429213127404415014737989262846991965396377992475928035495629082366609637759888321212611570501536434789541661550789316557283503499592385542285049858959539274889864280282545264720488298427659180114799629232667796137864561386665355131331891677460359977999851131902921465494673705725056153201323303497456798245076100908605973893455863975968532167980623151648165164011068916672228827316698271976478326340906007970353385096592501026606361447858860984484982904141991934703034811163902946637361444584499518689125934833240830697272153231032731862653481679261735027130624275203521817422977529369300783685074348057652907051591016510652695894302534331998836276039113830551105438908546619064575962407003269514639927736670876478235554923916053810341930696512045435148612696851206787259715407305272681387463027440114915981465737570128129165702961508886348960898986676213251341546176356856527486672827680848369944132540931820786729338901945702897178358738293288999875119728101637475639905024966701898334206118077584290762909857255931750311281763837903664932092081792510551655593828328185940811672772266927261502587771546990167339837656457623984476777946707411096481815432929203433993140450380168226283056196020150043565582863409938600582466821313474357107074794466926184065450501203094004281953418394550942820389257016238549061687874730691820459348801843009191756175616293691059529280578115009811399789615456680975168836659573710427423397797586312401673043036326958007244844707502084455832023396751899888621361979274922517850548864732002146055733522049734049847425834612935661028618222789273458408067609985545050095052397121266643863931997160582499836392694322451194511135114584422051121446684131104014506174563736490699836510265519746383913345323654841394105670656092940836910004092587022875541087614285758982886451423922594743060374251760838425995562562485101146965403667316845840852032240006272796404347897303656774300789624407662005562427291195966050333823554359580643341392809828066163687969583418859209226462043564946404609998715738632214178874158245873446495672555146203087199043303833020853868967839515173774168671351027958761756618389496898289870526175067028860260716300354019891180891252019748068982561801522915902791758628139949549505108058193960824491324734662787142908613398262599114214429800925541205725413165073359680526160615889290370336315799216161279533682884928157623695171223458385371216542405113834589416453771449736288131431377541066686097752694617505188747217396412017632444172679728024671826742070860625596244316508781474338836906649628736922252916728208395256173495842286136597297164684422749470946535812708673487744730034663492495560880355109143321353435254354347348686382650502144219628056952409927188975387180641125075387907168171596185485323804930115369786480021595752641065064337549166689771173068262933919278454154206119598863894177376981566300620255630287013812584293070516802923475583744085576172442209896657307839142387440502262514163637745226126320457336898261711735013486841408367353913638362875800595491901474387214079256504138604645951536622442341683824905656199560704604616790428153051869000795746831163311981202990996487756905006680966226440378575150365864579889481845815241170948908955601948736038550869652016621719548088454338877197265700317861127932522711033502307764248848680862270379899111618590762382432830668102463799578563596268976667238487449522167519165912762121102055931504242354642822317945499990496928914394812327331773359935145454362944309246802648237162729208418279070409420958134964871867551222141088688794484846748367869031572022663374765675883850647628979202182683378911300728388144707427597382087658458836960674539970408882244531660222617977482336381241714952093944331999733995003360369038920370415923094126509048229918316394506026155273648292644499649817107476796608680946176024437576130273356803014287008834684036550484600959511022100909665179871490857921125375733105349392258334752591423906075519473226815385465716694245507105631369319853032565982335633070628998682072673465250542454302440423604896521115791121273996074130933428476951243664254142095062242057123091074426858176368635493255781250752159475794599744575448982192272327942508006961819319038668080340653331042646159317060405331460018498700364639116467763031722698812394736675429797883009660918985860708723467764995776376929269772057453123491255330282179501341602899809374047990090866210160006571473033893893390057984845050617798248934797240926974833782296291515324678929981965681815195236849874947854054137944278098869548989438383322405044846720447617188367966360797839188010131635771797550368108467607506258347891326991526891773788073098967366448943250862843544491176933897273958298101429248242669559477325087732237152780201213587658517417982730061071883347698714209165591956254232837999066317530727285569120883626939405494487913346579753947242898153904621171300139428018617261787736604177123825326257679860073655452435762943870346142395510104444809644553863517181613257284804857203000805360090198964866440035196983392333553357478191036816295429754150542599135818580205114167707368121185453573006619966591864415847005670880279690393214264494470711777487685736114742800313371653538973056512244345049753256233546428184464478379398313294718684618048093228736652635643728993999235885493704668136658644274214820505402632813322315657813788798868083570804109598850128064149610339806522590238094766683260071580190003671468630418883444059001541743326653182144549710149686167932421585008873794445696382600896123524454911888140901472009634101441972875476970936969601997686869190386135932797607351615477668344607152924957898645253856936167709921541086527668302734084866665944705830240157441882405527837109294254303173159939472706483056358787611010975397356901212357190262128917955034996653740126758231134511179122989249166326309479405653196448658428820105922415149898062458795450638732624174978799492437207130602293029372181488719857067247428907809348115470275414330041599882805856938927575424706718727307449010441389820435001064382082575609476641796937353206334676309655273874334356280464744101296954998095062095675257044646348932557991643962382793487260621299436780637681458754318900544660590832370986285597730833745203584213953312090360018167613456097279283372035004624316562724385463308471010910609545356943926844069569693296693676008098242595265331242893697494441163704462496130662720921114678335532318424194591930710131479733391623220907354368866675265879463543813740027763599913364228987539752838041282635515899924498830704919512643253043439637189890679735913988261338425338748796265909426294936575318593798329773505592322225109566191769701048492383317595219878006856811172220766308083904815334355738743250821937117746820252756615579597904303452760247858245226611600301302092437280083444951994302421640340234674468780340009396180557982245794152233659578522619712041481361861296708414581711127643514522324239637712522219454002625329031862829779850901226303339129149619994641185233565082285454375610244154094477935003283230884640564011818627853051828506375721875197343517507530868579420132170898255565387446548342512925265834955810313144890287593935092394460345967153892877238338475409736246120240831020131528623075601878122910053755402595124624558185761531720649290170810385953722107737202028683973891506167380763857949132652388274161913221973641053139650435980182588485311194052172177736149114970561904865545947123821523842329664227134267033709243774505486014393148939623433295572719798640044527944856166240201609063761286478506217891969546184504741922986964627075534288779816109463446458603544885640386379785579111318317337951118126381376604468218763829005216496832221276021513458359885093261584059499823725075044812148550814528264691455869663289082628496060975669990766045821634636287292570130106206063206535070051538451564972339591626248677210101299655060144090895863147436156338053466309097868207536706917385043581576846179447865978405730716674639372843486801044301099999713249363267788532593268014922157722883427433282035677913001021100584518714030114739130803028247240748068362210426527457645688244635817814404685583997784335795205338968439443780798166921396103647901801253951954905608044718078138969316951287512804757363288051783495177835619590360729510308579971425651731649981215310748010678667535359038084453172570283795576316428925677434424546312656273595707669262703138579004869506853624456619248812724956690624303138682924964841977253655006481506988768416401618293830513030561528927693956809833661668285801203219061424050085567508791960265590937108496524447093655897660589966015140663599697967293506613941370726735183591166536222415650189376805503452586823788461729094464736187381834756458871115930855287656615161428767447025058908440173590051697812911519098795012924702512529779102016985532356351488627721747892524025150522767604327959054623720693257013328746169074995630821273030610700086451598313129081550068590330687351445008662888349679573337431610580062584528878442471386870128467867519365419952647886747908516828725280896547324509198016646677618746151578002697958618278017111549819324142874004801794113920844584603198346609832526207043668611969292976818213058134392556682420599867619705732948737996137412055759795361619987926448702089214197763140350937581862761657275755684721949651793212562059802438407242169455306858904100932432804776322334809987141959157228800744154362492178591479939079751990698807579052523486728220372307696253776300287742518342529984647701536316406455409803284633450958807757478462344942577352168673265281710408279498903781971086986602630380068138233023075433702698258670693839014190024668050575519552638270917618656375224247955924259907416976367616738419590355819564428090526251797634750901061389166759731872931846924785477584590728501875932477434856403058469515794745956736051429723424577994050511545969895550018848380068262592596129996148781929082690637250661710899667953521594339651316343623793522243447177953868762319190611344756570113201051698287350234520026866682683574842113928958148288423671611131536159193553512136371887215449627675469608363556041314258894601596779964214695659804182582630643595752297731446444067178466651283391182429145032127921386488677063913346794933483794668676643682342483712194770108367040997483924419662868255021892830838488103812410457007224982226583143815113892171498192542561481143234465331082003029120855130345089463892922254991076686295600047157954708043340018892522366150469998226418643287860378563522786269053792491877744867573978034528675899845916940607449540450122344148917818743343677148464920487699933229478116977632780262622574240922144952718647543353617261611151597717442272228537090283927066255283255470363969517125309688148887572402086826951687944621006355546420793621635401564704151481933332607037822261787592469846252287527001720689368137354847444037347241225161128174137282020102613027623269546344655568466050479564913202325010832540728570358740296215221023739662446380091737640515006839060032834329916437862520285515544667901754313737854071872305200882290329810032817078258777528812315309311181685148629379882215132858419892796817759160809700495069532221990055505260401620427030765894209276150076123262201447173426818464616991786658307232323561640334662155601211333809862342060086548672579118724382039530384265984947401463212654943126877251712184629797076297527662928392219602569298170039899705272737867315571332239219471743940114831386189733379511642356934053058444727171402787350537017719173230042797747748148976911449527805667147294493497768157877890082857734878697677318950198112401227430672890881468015771890283540377954467888357699855772793221913834816753460063362644805184121867205345671954300076214017206158833187600933380123207192708094176263710395307478410422122272877992209073541664215902882778937808359326596532884096428214561744167466702640958820725364895749499284391524386061127426187423392117286242620688289608675797626571985635391856061909960337855842415507175233913442407210358240590888425297900311424716385463513217447521697985686826122501885704863247544800546420282830739140792348949397655959385824534171836848508921220632593095311824082830857048236757081089729844108096265474911540584037564636573018194403152974984307483097535536646012183703986792772636469726514375901755767891167161814488718863934263303872531236319084125581107045175488288163529586349297055215390074504379743352944027434696779695592753831670239598113558571043204274309068169023150663830582458122109163474842309376070540005284092071916833378226664437456406435609378385720909567965450054620998815269339497828280872479276452998003839171239070128055295457002078439200991923766130268431792397522514358640623757531937040759930643503391672784329409318495098525354780715967666863779232296078546321582087783745107649076322514092655410995188457778460764145034944220227063857311687114206509923722872515901015548121855377735937502363109857398385747733603884561862752953329349593720491267279652200856757270824810526562091632298941377427066198612943488997842732883715658827037865438670621538143902630595393213378925776989209698247988406753958749931147941524769695395536928281472430603549428855197785487887897182578852562411304393688683521549538291910919388976708516821653147777787913908451479463480381195324762868184149960015008154485214001247048223380681524052062565688893175697701282565603382176808356963704828027988898056561977094458324897834308823770584805212168254528480683430948569457291389706397069753507675275168322351080022457432599726359631252595197832024905297516224049992965393782524043373182840534643751610429662017721136734621085977345437525753857552472615288090168813154120324106363523382927613028269919695693101020399330250192460917514013676759745049156217189619552272904153705917298446383651634227891045435193879261659547070408726939263041249714592425073526658516440393362292017771473462786563184316500954891772664803334044771557860648756123938700081596029568063996657473581366354577341226536298675213706480068340474655265245072377472806647719448586880204272811956420785582602781821211162831407798948973233881314119398823723466616381748823135571849221815203369593596360164959624328034326519618050760782171792595590632547134658475892555520179555846314287014733231235892427985078252261105245172492437673649683295543736260414536470704062761187730374652224918507837994507749063934119024543519437755671850097257769881362466322142746595583146670342812642817738644348884571564655887638208886600965145074785809011595947076106500264680801301321797451995643336775502011208448748704824975636560679266285717828845621979292319342067087686004621866373807344315584975408151330953957658170961165151192959731177944632988866616944363055847783682755296825374091940569375960077615144487407780642929705453387115752970355606007541515809816745901285919851893753432929865618554593502922765876906175092727559257460121275128871169758298907408715034097725967514713264106162037697608176443816002380780814428890433151558899023430067951136585091391250012079563424780601417581893541488311316173913291748745188974828298706738442370647677778247930433421100390851123360639645197949759832693910552821901512638245230357823266293516861270729694105669081731964136316946020054104301093017671098759622385678587472528567924006126833912678536286746805475814684832983615575366614940592337665055950956891136773082775554322835791394311735502333403768791461718593330237686321739715407626946278332115392419990766343120777116282462315233617387603253392120278875023681789462410670619784576973016075993887629408828604587501219207554773816583671635792629236601082979933124082785509249308539652308799852685475943634579874916658442720081868321753695768846026545920766705332317488097572194857960785270881941160417750741903777370635471145900595204302571522824445585168460382824508307326121057601935147046683081498532276907438467047587306635536778263552171805840106127174110174150714307939550561077025482054731485859552527951257645587299101629283179584123424643090729115671098824508395634108578718734686403547175818557997343731143060267171039870710700067229171433999034682799737653471910184148817512929172836379758373608972034299336331426107206484048543809863086241036580100351633635937064188654619438138505660794286872922260130013973309832992246550258428840305948953036493789476541925522752019862084932316675331193266836809586308056748999856685664280540628582940857039113177840738915887945385056538303722800446120180835551881572683333973987994209834068583488137680330775811113307947666418318605862661974640485298838330595358154473609808618160461059298147357844528885133515097738207209103761818318405174165637710948252457806735400346312831450394570836221774204376567880413624685616108146025768053185418050672200452232884894786789889119087504867070028663000480586185462592150758118795346730380927510684174811448987314168024678992741924554739143672205738279034115455110643526788930698165611966426062823969351376185341018833690474272253252424746004780010384704135152849580509582772538672440230128205217579669554944031803643183954629581473436713276391999778642502859077730487650963116832900359877018213370967238852406118953656352879422549287331078921454170921584643309087008074886947592184227064221696426580494442392510875612911362421916894190183603200535468972210600144492889552117137725971005059765579135869394302314709545520433473207110031423741355116711296833351505856065746539116420264832820666933617408081944360959916155601411765633389365362984569854103752643855832998142898625879949832181210152259702351880828299845912048060726452830566566437185436237443232512461751591972258880962073328190012842010609029391780422154183159274971332893623170283439974867961110780526592602332793063747936962576618967521037380145976560962944315839955902085193668619799768163219625591600154510370083033769172005277913386874567969619328890102930646228467198564277092295808017706060556506390195700914400670118842063637599601932179446232702052275278671745791637226102291492626363625635853017147298503731322948781307225709962198507411897935842433222634312806979212570369593740381861872660150440813967471357799916642826298878908553420024632959201568136537394413315654824228852774039934873791962245948402326977330217326637000948487804270540502584095934525307469319861382561812061031009268132742058149249092030613633979670117547116514754339862453622943859944460004643013830556824307989965187256188114052245348755832955638825673098278899317883333936743266685016429237090476636716894788965824789235819805079300901653103194263542538800377806876694147524373923242115965946426378110554276225214571895959069585485401352833444753988114297089652767906233240824138997800804405361608212422882326704681952806831825618801479043412933137161148129644832921978696618286948214239669421575085807362554978102466023361688977647431547268532688153939633073631039423732333819692396341643899207383470712815110493481911094225477984711191355251624492307227793719359571618651851691600477053917898569073273051232049933520707305909491906057099756417723153448338409057390388008797883894073605294127716726398854158801538652941244066577217645321928909542658336845330184864266198596057335423017904969331257749945176416762464162313235504905379820799382923923969534463399798195337309185180824614818360778826559839065724325545863924937443948084197077826731530943742381961777290236047408189719648821687319768839715221874093840105342269568125887665350011440831653352279302234687111302483031876210858698053866947213930083128210449204892255757256836314792068466199223292820614800225649696418326017574152468090171538097617984440645545150681238248929761485061814001343447650260801870424663709628097037751437273723387754826398212999218644580114872687059612702126753361904433157315252010935090343965959182939599660493140426722791126233024172569926113650683759793317200698579309554144748029342934044307531218808770601484843484753234700253532286536547870012191242585817367440045365042165000717465456231566632885423364344812299091613504804015879208358204392666421495536247981358554030357766884864929705024159880728189582288421127948383767074911612970504686160091844799339434829546534942630512222977123684879557308585924201053411714363284713446154928263864384443440173884011777816663964725914272303054119766035340587001395994523478485298044668265679039880731305707493428633715120306163088627766155221150697109872367965253914031252182952431395726861250488822856259603488668279403470340214714347863866119733172908835005343982727885857757344314495171142516610556918460193315926111091422597297656861461431358258186341264340931451299922036613998070180770228268039753841322289438546831423921284763033948490139856654108868129148085672141051418857018634887895177277047331603895779284952205671858248268386491775189869925089272477176009854256285647822330040896851238327795687854346121747883283774031689416137023173623089182984044322906628526193064213018906382138920010437814020296204961325799353258086439705132109588617458274718980886226610663136503932933821142693774477166325163864796363084001250153847089980940274139800325807274033998492932636724721473747697882495325925880534553782035315780132445156070002581190876227155993300303256146350995796352425530617954268977405567066788566164041913033187395978976998050977241395705266059160677450385375287407756259867460057535352678221956163098349095278732680836368910422840959271111315945081581470922200006302113131614425688636385679487818648415684485326253272647843148936355086329536231930393512181256154070091200772359958305789108247572685732362833393706104136037238610376821792931031450817583120644547129028797706383712647514001072070670701910980429985461233332178554208413205012705667077416941569328270680237552496060803546717187003465371741332669306096001647336801320066436386696679454768305059950543799776016059697476057414107954761047962005334498027993950982318362022334080639284560410967878503630597453697421084428267203718532622929069740797542555669516011970264526452614958101359552169005639579669384930085947737710297067477238847943504236916842404123536151838197703955275119619047573469632512796657538816995396572788018180539663310179155876056163459907066271378986734711726394552041605886686527260244249164351374145790765231383900271212631334103196837408955707356964169379736004429581300097118300316544729206972176921004634772399943913562401060764733214286596911533364724498338670446383702550129569724662506938586158624567746299994491787743847436048867081851018151988954187503857846620322613603964606967166935351826198240573519205041032396751766272913901187834098370526928014224712487232231836596844793401134986599298172559865536849882720951099241916968418107552818002686205256709572615318449399075123627634222141230981953531240897155395074113674884556190568078957259479936278599037326409593979615414719814143323031281515319741227984475858248715766542067114044214715990314630820625890085311456625655106527488986226942217956180794009098178342703309557910809835056442052016942854356720168567651448797655635268528117732703946465618692116927064476668360454247108762758287706720604446590739511244739213342330694009639665035912114505438393983844939861889604175604393391809236231528429623873022232455648618600381199799206538681350586437200981300105089308112254986254202259261853990633883200993994626434530160448139427553499384554373068537588894356797281567802253956719442476085500007448328787551979030515817763920801659321636179596473406338843688490283208095284941725235155402133098369530677546044108386889027712423950801666482769739476985525264998521182706994176556483871680320192702737130548406719924150772926385980675959378255742573652345358825050790967420131092696323424919905861814628918101263717417869202477485247697189902187736407065949967004496363747734072449007066982236381786887129278687910550871128144755225834729405849375981536745114893863337816666681757972381304111742537660336880899742850148387029708338112281371152820966446188109656279465027366092116711116482145219555491579900254067653363519677384506493306942421248164027155182650523550234196079903859340788678948496298500967956723691855203988648506640044674051453174833494102241498479563149896739307803031410902774083748020904824312136560323432994528693746495893095941933727148695519609349436515813979411802981529047056395703541859211329527259940912040304902882151113342822435302063606999849967178471381889904586348796442399401954171714378389820059246680056557474656124142216019061634840204868908818717847348680427599462328939430019064218220474190608536115366060401691477089326705634037616903228450038439356519674546975428866859588091232389660210779252194504134483175984612073778395815703799481258868531309078708114000058453408845920411237950713400461317887049984600677558984814694726084037165266295967145712452901456389306160760829922917720713932767733321792626831668080170723828558511902218812452592769399003053624995125167362052408301001995297314031669049240071382355294945032066770855132806731642824214592206874626487583197410834448817220629058465124909767306353806746922711014700731667723316227934423698597881349169090216161128449128655569871905609113638105708487383106699563394055614585417672684120862152306049369475937857074637224016530177187472808581859899665264002795274687816671550198644184946580173769429684483205283867534322264112400383195515667384693122491786979400315893969591109065968117046986636656623063471618824321377414780819876987894154566223031275132273197972399227056721224689348180952351163645074973196007313201831068664333410560910353570746164416908478007958420172194352506317311612695564601864389115185948173838724155438257038960171451505673853458446266701866844950483784956653370855030540871607691987890510779527254967244359398944606237721744258854593797799418946535114524040190696483001848797446089813282610234608623904079768000584469193314418033304029119716894022203282248171826565327749806513807935764354690862403167839980082112862837927651718087263417519431477743787971037280975048080711554135776308749080593158550625692853227033944370308213048420067250057889437120047118801400188428764956479789327588085286750446633613363103799090677068437979803370773112796942633528785430071697671705450227963355462686383740125230487665051504102029376600806389885418876119985733563352208657505777657516803894820718569843104701658885925273759613768733895830422881379702580490600430418015135739451347573778570776226142069793535450728972304742556168495136170376684764620372111684819161039585200003792748663327737371021803118371631445660435448102441769221701730494009420086033464200922893366425144867346396109713067702148081556093801041328272682657292502996927639960416306894994671442826294820307387534575406311416894779597203267034192508002646028856779940153022374329510797223394559903275051988801939320942123533776207698678904697553900237612398963957310558300054833715610620806996031565985359182479913567619681406440672182549060638126751145470750366660680164408944242603657707956472297727258634148399712247442118250680775644829783385507623649444137833367605982670675708420713321477739780383240792692781015114537705592619850683573329785118671110146416167166302213687070570210557804301866725481700828346675506777387344442101712299297688253521095172526444429958044162775124468442223908705979573426346030388864807424851684767938177304304623274755468581544234522820071805954882617899687686679596925760039649913752871370239509966503921156286361829830229073192204777412878456717665727213315396079386845685057286274846662865402559178457175746841380975632949039424562059274708275502335283826998809302977230535533132769435538968525861299498246484351529884043220270807583349237763090246753905593576060502962151175689043671061677791570931438169582172369446101620702521910863603490234205000645762455933051220566913999380428208019274118156015940554418501352360373498516987821878829744648843981155135250546418742440707442906239711429975312747148708576252912387162889686880918594646854485804061248981793024167938485242414225641140567113473762086986826453952453133141410159969404665544497468875461214064693582445741309767412111829592811283178098086785132623664868487268834921080229003014639454093449604465255774144670533584067829885990915078014810637579348793270627480320003143185907453439373406459175821799058790983065960308532293864728467419555367881256263665782885887405313624291575256700626296787830892044251653485313930891529644751420147566272409070552262680516530011325105645280495893692556133443959761271061329342290722253660343609836582852163444783675271325537192836080722345858984990455894336809383055697586606770013783858471272471201965293715056244672599429687624690812541640804928317980047923882253987954004651847637795687830473776938302138304476486273898954629201489513123551241787357927280155965728216098121742489846782232273099897916961074101906278593713296266975722183280420733580462053882421148540009404729123798126502314722894241031217740313848713819786159339924936902122376448329552353184093664095402019735757229479780145527699379381680371279476331537366336840510901228391062955760187692303087227837213609098572739472936756960480843876434968987863069519141673329553432005700615333752837446982625616920347757569573782693913908869427522403520933771564980687981746693835187798433494089458529881197668433148781505071971422065271692464567766737344614189004617599738832567735813096994179256501195598789811723750777551519585837302998340151471953622999067778690286905001746976132340967306523848495183521889494195799328342028595336990557081147772322775180588558838662960093352339332023816400901487482148511314636770662074047751948165703502514997242694778223231918142382600147720100578608827712713237109919012029542333732770862052897615261266593030411046378557628216425963833768161380699753375920126111076082253121639010638382585711683061397808515617710583281145797442767451123815812688182441272017210675108210688376750879518533790471390033612156907633690698683512460494640517427046318921477997678998846653350594656359926664547286656450782629361318930399867215090917348285847556472337624354929608049509925731328159825815529665770910741737167266207561602172214393975573464000953663186005669303990851979601507829406100646575462031387351367978307350302723967387140333711534555432330387663262198794513168599614962260625404510977306535695722513896513976862861787565609241701727603259085544488276166617061107028831406530617479979959354593821239860654698545728755282306631867518367425178872672167135184788882296073008842634355054825903030470497369332542013164454633900854913482358807566906590879608391865705255804992853347428098389154301354059569462689226109899771822097284118066004002998003039786571833157646087827459652966903171347594432669040753980706364857917720757280066356200160915172308639056443587364076686585412287746092453971752266727449809813935043166355161662111502375444989954704150320035982992005798480766178313438211129158775430868865309569301676505886211700428359491816446536405001831149244345595891677528116356980677877942328616865343901489299910759981613463836735234910727036019261004025451039392651734028947423349921858996083490097979427960299641682467149159346605265830291054365813698776479637147390792778687715316490733552531520452198454450280648042243739562009865002278308271466097403083304162314995101849103962601921576780563661547145517143270735858148315719447350216140981492875161609251264107452420415390355454853331657927815003709661255607993752729304932408743226618189247391193028179378588361875384643189778211751092149766600225349524987353191465250576958983893441539131588097963233487888302742575192571146925828688589143143677353905147335097329875088551440372722641988522808912235008953413780241762012197644669575081031792114677651055039057956280650875441973023527934227463368927955169995306165731267723100686727183339950323478086737506643922477139474138424762583834917108761174275809628240989880246884089926551174772414830424261392830075004537732313326860562263593489960864755983865045947541438998954154586392161356179680619203990471117424219062426539236189378519730939126008582189552293038161459361871760932847827976204976531470459957577940219853982337425259189858826075210527127831439014158831522217878974845029656943369281866181391192387817762578857045366744360949749198223219830454283684551020938161087191289577627405784792487764293174991322034440160621516087431964557632247920765739042719023349652666949781486895192154181124536518653280177428481182475946960570928497812751441974034500340428087933502065307735594967217194211958713874473460587950123400677309926509219759503634302050365674849675185180025718902063303066619787907374421400909454698872551536551021203896719336561692016789152145103707048894842310981665281940627570720793048696999160827558367250079797369001191605341919150447570066319541698871967699579181697979459850766685819646608932039181281605590822701231410761029384252832669545673746409563115091204896121765515557054192267134484215337569619570199621324816531081445323950015352795306557253153137881156220105642054854622220815858986323148131617377386909430256947590287424311436657177770681759949012490434431482173593738791311047358711613618665258132051939492143230021419675421268081715891870711624563148639006653139448495717002696991677391746708776337605070365540831556905280655060007803875700234027754812702819108357030776620567865947625701386419827949235500670452574572672337647465015462766074404722464457675187291701392837447096455141373743536650308883817923659965453189504383749361899446657757259507367691761122004830454692155018266820347098738648704293783239481146042911288116398055660573995906275205247673703585390969196234141271897274671624045279417842684590938164377114839077481228183106007673352601028423334451845962802403896169642442406595135063020586301755072043251422260256065454877433646339170988655466556914679726481906591227783390528892941193863668391243871475374176030322575073302153559380700641869204573102256009895840410473482006524483059994934853822929701339218113021205362200761198771494626003080022816302160550540531077129265388198326725376113547491416047044996478138121114952760319037904310922646627844676832888304964161341488261472283846721043994510275619931053372649530397293958474301076314849075673778605327913105379703866585741485100480278969489797125471937066819117270863184961722671049446720645268665980029829527336400529612239057237925354814578514321943307491931023404311766050047689239370302924199643981428047335008043451886140906058725740972377933583293415698042781857079808014042871044676657869216768972501574808272203527051120298198051807659794704085529218627846658781197376495214175338121910510611606696072819851125825646862794879207417779896502078103256211433308420086624318268106299375976767932273481660114175510098197435727208224106515927229010190769049745777849350051858033772162825071190900619030176754220069666396816178171175325735024493031206609050791939518296093553279859543003164072580673418154062195056023719032169814011258793901244816604396881481424668386946242390704608801821020692679536401972833032550259079929863820483853648344558644126249892020196727222483386425110645668372890130363023657694984783458242212881124488339701860578116147754313588342220873275717595614045188144101963084146364640439111915720049119856571139740704255192384993499789002462190872320471111056820790149610021439054673989602729502955155957376782975684625844861503278309144842724276293760550468772014282171229654129502020908878912722335935506268796284003859159176352542900481425058918460491629744586845092247174449177983172548048061621346589072136828087448842182281393619339888566057827432758024962645363997092419412293970774206048189085492434329853958476769358398865076344487416890951394183528598610151424233699566830140498790796917189277435208612277532654591890924130135347457691096749854629790492545555715313126008318389086131375010674460750385735642644594577144998644747173033718445292670586959282495664336047159041992434596870258573157092366128322689375922776526438386629440374375024498059446652114369980754518286529066848565342453204693920475349327018383671896790378741969570082835933788925764753151986881550122979398843053265773797959754884168564106119374971378677832266740865372595379324583722513544326497472895730486163789227663027775055160691051412736561171925735995316746695540358188437334914046830292344847996090090977535805448745966423684923592509711007539299815370478423911400795666286696702363533030754931943390651326896351149332920821709281270864086762129679544479643671528015450739417159269148758044732071261458756422121227077502936634689847305863131612741843076267637351811842259435370892165773321215296711684978438163083345719482399211707202279951761828146766473684512749031833886511083934472254563340789354074535002568450955701286231099591936444379292569282617803362125638248397212624614797615274974940065886764830820928123179513215519616328050854411170662841822686844547890940372183077255800828313977865476031586160138479308938662215805832717235296571084296128862553439426695787340610612135018708187961573342150137000842039711243623470999792305411743853611366791062370191774037628403812773765018508684485966072432052969487039580135965137336128221575719608103627063449773423173431028383687544450281381908277324153214761561790528012734634623974289237494710400383897180258593870704011957311009655255671371376782605554599877560536761370818640785348703855807304736560528565719272379405167099875226005511286973624217833048479397046235522900549696367765279407272070395997320175603704061517937030257116807969541031973577210289753967727723336749048126771587722655122998255692604848111747956594599825265083883796777708504237182488723920504782070320032676260158465991133484413855045522473887255606536884187554138809477384591302028835614542429556943358165210068002916481093393519275819218079891348358785339115483897084301421949168616454805055785952618507662297414277657546787511528755875176241832626449629237564374450167691061603278905272799882081620420152022898824780945264999229203921327704002869207777988138437078021306448716028640879077451026320490090496761973073337826664867027090381393126370024687231696651557180749915931481003728118641028730958357124259384270692526289973315197107888182392589735542365997276083244189579848564089293878808872568278993203320519350404498772352865507123584666205811086536816149773809967818907239469008724348177232903354283745868521506766744701758607069669254059743782082939691096796438291703395906321515498858490642608197857634243643117788298718733598591052817546765205365694972138930104474332664713882368708792324796780649308971008913283979899416277727859685230765176788725064559497509629459489019746628556714304456470030468313993095793453260571113034774090193685419734495943492669251295735045272809000032272886217821974537376795598139701063484340087053690202970326559081480164366987505966101804681605215642674996593092410309932805668881953320972696872061136565373740328657822854853370901975818302099802908850352296756914457465575797251723091404066734215350247757476045916656127774081795886475849735435655014884249086704656197170893837920631343000677344543911310608472037386838421510991422048440419007876960664530394626188423922666487168292091866843818558730577443792561125047716702201615909453869006432608900401482683184751004489952884333559921314856475630311111096122617780710174964622690906588873206439794650089071329813244076128035199364840619101947744063035070056798188593909333320592648055182749910762926796675542921470459126335188328899167489428724153843182213048211277009711336920110977351011069066638625993983219499918511230695875241774947434096091214382612380900709172763501612500064977270164643244739549496096761000109439368420163795234701859557949761538090828490421865563080845096964164848790748878339595804881326831712519337775418516140352136717221124578028189497637575812894508615778423255809830564688835965994138027943570292630007646548718545650388312396901610484762458008947951602275353225138290174879918192073714773561423046506084581632681300484760447028394296636963030017390392931461489952505373270843001034056949054780546836660466102143341507290803054535171806864008449361594768181077250161640137950670720010760599448009474727270747805877160363478779953941102263465393250831348126343597104464135505836066608070355160173019646614420933856265007409887526884223825244941655406519685034993676505194057282701909579860484011482228514083604803846042350531702673412253408938887130315091114229540132752657409294928241412881567386803604674052617660962974566813874864935897914618869475658898437848071084065273182764615693052651482875578281802030390983686376151280071983762873616318963795190809600206815962671894864937521436330322977404666636726520644954197677312250615968062943899494972429295338749839085220357338159339274589145707605836221339114562099791322510440551003836983138009738098433415935988431245421502047261863269530111029206125311040256764063710396188642073007491913732098951480462061890683194855905738699914391604977747969776126109178066472530670361029783751514025257840767023345899312560763560280650998582731742644405894520091604170418988793612994033373495109750877911497082559203714625129938791119075307236142598102556733055821138766980075684733225938184446710925029239611584082649439077424578850958926533809972577920670228815278620594893317518143202604352398543219625384031028734837979072996303819242664642247630955788632110687985454399077108284592645405768371720679852715832908250681166184582462520667367979112866313840108855660766136310274898573943104704922915404868907046250269720199691102452239207714839873195847141628012250053455250323790334197087752954800739965413819571133983022005874797883435517127854381718144875108010317651237218297253467050702924105452512917282245413522561681549476920192948191931087144434862893029802738614129221819217997102081713079590653706239087955282573730883936163616086744386894611019844420579438869451625193477970148329148016796941298836425346180671793430015886804016094347960421651625334733761480251673920440183958664990029042687983608511012447739015185030536279960473301376245276656132077709313327252754856814088594870269567171505970109371477722553816394262134957549989008359936447742764493097081104010530905258617243705946740514597404106008705797062842087469447125701533366026448798418437419216607066230192450453491937551223904781411988827123521308467538718834134082549785220396898125713948999656620743004834530284128462357208762403084336240801164212127978119644303862951700309522368745372461410444079142128983677249803993496726689952974843085624610425029646683980359226034051068313262260633809073969363319194615736707942064790021391632968965799362211696409576798680549890886333873910937955626206892244620604091981676675912507528068577917550607931021608138542136146901962881542168077684645460287853935383551969698011599512926101395176469879353411636744408062674363753759819310945266427585583484264141843453896850031213599658575409504238809438026641806095134810716004614103194120900741833155976700816479496821643925833508105101638735620789994220165715885212610379290725286721716513100945757835418725812661929782360842705332052964066602059231454196011121144732393135019768534569095289775509952923493163971844619385799213337663627677202394793439654326595184039738903574827221075983176902622828205376373579976015109069010082315831835922362178172555570244569873746615026228587309268766164912591602082745472067497627753260796651121729978131149151962108888596742356138401766268921603990830435671436286183562294548069108120947655819844332462810901647694264711275202353763304872099189480725069343253059682464436749157227882778442169437785788463731450606644292434729238652166849218555655855969729711582790025174394189243332780111675832311054091736681827103595817485464834958654917364011648785616896259167843106094932264593937082195635944457920744685998050337149037702336582768570108428659982005623448177302668562768465500835879382755542849416216927641169186848545084096762977025812190303454773568167994005153939841580674815757919613927094981817145229338506442599654462083948386869257089115570812312055796694483283231936777383104532644586274007557691724850310642551320613472759096036220833970556217703317780309391221053472289929831327002638308077075277261947168440900042910472418701174322346335112655889549883964368777944033754906507946905721552306384656279478303353324629663665849455185434648164471990671844681600498560082211828617787795245929318151488990310969323469328041263049148274128932913697418920156231822664605582839765961413588877784626318365849871986532400503021317324004742774091995950078528088814920445418692463299374675626000901810239080494901678549396112883381485970548305204843033470410658242049968459166886727663093013566870003866868148856180714734548801150248844979364687373797500155167851799966114482759262488919311562300709577159888619925062398589932195226303212864965470706252494996703322723630156448902812637266225658684816169285753991609499990402459752660527646608914793005319412820630166186730935422439991288857655846232728806797286485702693387443355054838211293083454477329625333298670117338296112359197400373745510985486150952740269104524992747024034734592872199579638597055981174564058836831942692813272970826306701295079407934854865388568109739765405508936528691151557779612543399860220235563166507751671932050872721536993405144124241349752125695288894603994282378690929115020167579906000298295094529200499871360584071416318737573302491014057869750845224713628722745835286361308033142600389971708732259092464148506444697354612748319163253285800104633823679611766744366240493124394147773066682929520459295369225517948256696193863167168643681770907043957462740311422390911053641566876735743284074523757138693930122150405643972777557359103399410719373127186530519722089913966732617537065700490758124119962659318037295007725514042737954377714866752108002526941662508812546697269966181917519474457182854255470830143688608524698621263029662697001572918230408370844784233669078398489379754160447517919216625416344900294297193651257879815579511746419466339038140808904776747913250439851003845212104099869747201189384719126862928410493894424637834319480732615595063640892825441505193389332242206465420053854714284232914290371550915189334830250803193331362004181276049106947197851289590729479601856502317084725988446909111933743042248629583586857579614581226402133771628073213962635350294226079578446361310835037405346041983919814457155923882588646039583690699531879874173194750657889208438517425306944001867711306203710102541038190967468610427966478739808398398385279627508319451419126101869166666690350012653983099395269961499849130823989086527300981259646021305241482087670359231880700023121939585255863051073211151134048710420429225137637049951601178783190093254865343129934706434305670921002253542324671520543447292101876179056296018940348495431273855725036374688163492306541312014285620210713793921195655931406880490643366296708320553125521571780650845331797223679755715623774191565895897583360718603943716383998303156522456703658975989809308829844721859135065022682058187332345865005277874574059018076686831373922151461136676541537568275107703679031134581748271322716621855806181894444258238757033205959471177498089062227872850663120127753960832101887002679455771804071528273245039394412881522129098989315679114720940386269359273635319977941360955603309554769675251905405058217917488975927131016004967428714730506717900322249239432916300399730764885935217682837617801826158452881713481643074784332272307239696427029042921269824847687221436705277986421704058648001643634605812273661636864021774763123798619482851758522819819118651605911646186529175601295323392070515930860382241087693166991046502915339121825639851572747560499767046087350676884616261076057772913829078016170931428227640204809043781508278598242096961494635885720722904405039090192934677676944511032510995169981143964172463198804555297885320750955281191102933713999230157547274903344298895577969728958670715845359514921272341617085323726775488177771576036697337926719674843689564251915401141087592177206948908337525752127671091590436789115470868388387402659734386246234785924567824276081176947904178027047348887223534672091193540159791175482572384690956734161475006983725068622979493525480440472375273523151936308532296766267751491789601534029913594607219346138569418434427662631825555381660783113772712629292156535512535314006469370419501951986183942998707857779198766326010144347440312667090917499043332820405425191795722069648621223528762428772792288924079377555403483380816806303737074247715519935790645595469543168148812966882371083752937303017168927632571062129564612194375759027627805575356041483317706399529659667162022030146047050732086664130323915258161480186678163408711377509201256042851057769807969900425395013803469605099324493968257190387063986490010512266726996811462568197918555556295462303473531254605713105293251090772675499290573367603678025490537465151321153447617789715556726341858621942274660940821346749787595989957124220525930332695568690324865272542084605913666336200716786016528051341450520622382413473172357681952641233080630051634162425696537854366178597225580041529035776801747889594033020328806559268502701558774746231295260573078207311350713449499725636058816081155796235266331670878766739538784124664840491956466934796336300482903430980304750612557866344006763864143983897485493808353959567566197185283979158141137437578420653101994559615939249572259084870483312135899447333579512595488486602612549191399670901632899368535380105178957247484799206765897527084003394914344719550181000894873441073743674469505048253842543981830946255777619317345518123466434535682635206299081808803406995830575985516466364648798085750046396019762374822949338434876106373760405378644828653023685284499289840754433458845736724400722204076488134444099108209777561123442680808228068260239337672007758193852886974516264046865979975206499048812319155715322581813681759342068136079782605000168463081139711756495427728319301214984140358960923101876393614984643253800794236358320599351039281007669974680827741160676993848494038689009882380068599607096197966905229377828125403379473686005249976772037093757254600255511260166738082944438633601793320029693979095826523871508242954821791549676735174369979768853689120536795920127289290901337733602905138973804089904893367840370045263718581115776436935070842807542604280745746754205199838205702222548897837986278004078351060612406001435527806758739043052230628824724496299554960041157332480488836085350356332660919333929019419294174084863046402958406668312168698915756999023378974125763714656243845968908049506632865648094466140360635897822023937321227711073139631787033584753261411866295454481839915845437469668523019322959792250648251395408437582763151393367325283747376845266300334502446270001528083427706857443837366682174509430414701086793976133617185842687106893510369975657516402108453326504514692896899629204915182674403638544524292253393163716556539378713360837397343727305464738218775973156259132719069420166832805707112437181050023155857113858056753510849616372112716415544403831288125844429566512084012096045054688462074950993034946353954846365568934790842713645408781556175489983271170302408049229778255334619824974125765955709958601378460919488092151015701744126599806061850393106434862673609569706805680997344587217613162144622179553231781533798247938496084755506504950279927711825738848091469384668164225432231123871091664863149640179701188917384116905858711397931565977019580866148893903828210355709330379186429474765199331921844942698332502959412918480149072203243159401240229171432399465773651910260962682163497763094459421591441722556672248104640726284448438142608834664592074400465705950519416095165564027844109538348996874109970377641263907595512538437436988860275094235477569641931138737680975349357975144572620704409430454450962937420889689236216021847323257712565202565564193714635465041562550071812329420352746867786375888000139201628612448105066485510667199677899701773372137255528964590836629563201533684453191053482086971741547288928510500821339321797917440736728030859518058249908840299910239023774224510697428942039730090480347405599699945121869767981779161984444994376333312208554060813185740489844069651179435802546146438031977330653548867040358642316032958215310875760434376985372624301246879175959090306994471202626320173459960333360519331572857859194891540379089037727195313830822616219120366948532692532476695622396962531415845881306155989510770862159389213286203805034127372029716773885557689489860688362076049015698952917317473496666516075766304985149667182542864116430067542999398029009463065794194538557242408208121193410078675074051345775979718735667713784656277418687157515342741474421916063750023995653306439765276959340646440788812921998639030815272087416198450355033976472945523334085859224989934384868298832473820740040779298362853301278366532040663241493105524789849494530715655086083325407431569440043326886685553310683785902229247787061830789173794438178055944674513270672978522753077372035161632608980611024708140189432412283322310125179397127213883759102280469994663734618655383486848465609431774661565364649782074407408852312763144396181132793884126464853308411042258561579663489270934778395006553054254239587731519356359251615828031367724869217737474633400310099438999645226065879892949485195287755252264305309072551132646218738183350392101152921559332041622577961933129793303751631446504284954388639127768773296838529170645493520023867467287732630096131472548430449853890654730370848301117897964117681456000342389540894687210182792625169497809877220960329024753574739282537091241436917075136566478446845160090438360011481220726994939030948895294853616371934772380827210880864660062509009760404826034118522499993725128145019674264965030830280082519194345400481999857982366633270687968102393059605668880032546001792331220520911398204351791489073153399354510648709985500485959688686962546035928686850451078052105347080822279063699818125750024576625527916845340131481048984497195970197981492760009469626153452164536342218688174317260419768058506857629417737211204375779965412401592903368831200794134756904385237989308051280877001658728882771596101318322318633897992627523128922007077074282288918032168381136144161520647417604935984913654895475175747611899856792750009491971764278594823533200346642879418127433586571263698101115747120040959776166791360276090385728870481635946254170871021344313322385780089980101580542732915385506228530559371835477095849932002789997241004508536102293188242657194449875723050170014882700553881192342130614656657321956238648336603328697645257346266627257647946115031966220422918751549598135033208981303574006359244826554764374403221936774855933903419141732698456514848800158229989405024615724973646973150316375713894729143752373752810851065450387321175971050133254016464174393033923066847018631618924325041316281965623737401484055278461189171638448317610552258555834795502426586098062204964946606530102369658408845414223844096691013016362874622560017635032623324837690247433949946937757979901475720243315340814400163343836732125574458939918433649899997769744619417727020846902499597975404096420683922447587600879941353188540889507544526566465327276620284048230490594657874742522666229544700580426243942870539122283576699012133786764145816779491520303616043047885149683566878367136603753528465151041137855719636364622421046122420502994149032015644169821991437898272448510886694645354036023455802925284289484511730905384144606780642674337750444596248721618889737426285134628819963075243703042831690961859859869074251196349902290778502688549936677619089971521706801218028025108039367358588799053707082670658674177146683640065274461804787286678446821781014407582530990246829451006410849314139126381187589185477705650707458264245545943305176784752845894003650844124121809441053644742313998897408641002366836651789925379066264950528833148221016851323078636436568082789793259374247503749487909042075724647041344795002677324659141015386188162121371307017295918247762964566715564901546160670759071228165929617524628649178290742904695122302994267407466950706394017357601435121807442343919814555435907060870578537583188777970629884248284242552726072938282112665773059434191922477818702987740374533820897551638474900787376010227313942249895839339690118327585959501902725103050068554376829573894503880570734768782918515720546709610235051555322031932354360523575207195587120813703163909569635469744260411857327691435543516918111880525975963229485914288924992933007415409194308142244629266655763638782543401668159265686483598389004469926471859174923958681529722544559165700134400701045489894850536175598020759698636094445332318723760141640638568849397673258212939124042006475782220121635550210565941250430763923298217031793825586251730605683363864052132292859566055599711780951609947571538897949757428074452449501681287077469612390346509510144211979672841031557397962619113534061064757092291258243536900700701494221842595155743804501098373961652636208755004161293817282222357683331165810761869266298832135884131722194905970048113554234984050009829703642306636051469288199714337540610677396940480877579708943142944916836861271833215065011442661455237367321817799799359942504508947035389299628112850567626046430527217220189805833277237170346588982994596948647396999055583352878861125699903345280898773552475680283131303963466278429469896684312322710647957635519360447518836511952104227868913175683176124705666857944489655525499432037182681590268378561220301062605529221229431323375954437089096155060910451689504064861139759072877258570221834399200896506917118108518091938344626034706609050229335891019884678308517737761415355566262748054059364772895419989350957741569630373355538955361322192093433589906169644896285653285662209873367828819531012531764105155256493657482979345235135424466785647520162500360888174181012026762111500314792742056555148616843814847670550806947184177402300159314484383983321356610342948566305285292619417747009595453268232225080694171014572181871539699125107189798943658399141609837855286681379061621984220975844039653721512093802052949876433917327844291163547873613838545087509184383644972570473257237267633681295471436041939469259147711476745683041357317595316462007641505618004769583897763953420801312048375421719837363904121721433673559476847451232794098872450639943801851629387576264179462131304991001127066952903214676682070539092634922454508476436217370886464964867506192653762979709547567067944233088635472056427954980188073255593726492968147281049369275757898077103833208365173227974553851636223396638411066085551457252460029398533927315640392673750057392394823227261644513911597789973640124474040136930106157703831504944001392454150051291731479237360754882124332062657478117615419934100366203682798101140926497211211393236704538246399380017165432800838471067525236175026206558259047237596241653106985350404321201984170716294143792542405987545670808201426257359365142022498504299840638364106410164423358260627479940613340045439953296176355495315558844460790440186626717876373876456146906012376687762123162560191925500830191683315514620624946343835125116853504540835649392896197380101364209134313633442164283318387577700006732350149959514264212782611223083049853510023815461879818056288133671178810327330604929295515030418172266710657876608570746567818664433923584745987754871857289586571257303275944643698586969915629236958990568926057810035043236900991991610094609554135250346806545676642611747349306537256098275322933555430663643382465857694247494079083370339932247877920490230916501820379082043421573922432084642322476444573180959449409782527417585501944711225003755994071800408879706357664683320682014946510398769804231488338375397425003133507563425640591637373315539600556675898934268265205751631129831048901583640121182969015620996092592650751903485945996249996574005918060578605424500303487014439505771684245489853195779417592899699259226806634164278664381863994046015258037606917422916277448912090744975590889012714982056486613138379947792434356875781646791599495563755568072732459083389574172881750118970541514369812189138450389773867663418751391947818810393388416389652576987530831495273111401151619242677249928670812631160791054375266998601155249890973204857235557498479393460803772581816140580586493567803045804160651648539406473617849056057488812141790264917408654121507802036303140247872343679511123944464945466374063934193088390485898158398480725475293038966701845478159982882510868237175235706346087297558261251292861378752964290407088018108331907487100416402312845719361110334544758449850656258395851734192347412012121659150279769649498649852417748251371361319593451340380977283408190031146199473071709352210263794614118039203527737431343992455957443123843745787687437372103070832387733251014220761704579942772028912822037042279894885042978898768389129711496954710587548782640116467521923585739888290467195223396163690820723550764090203634699980169519826107656685989950786298178312666340136876660142208439832564293662189768282328822938184885056654027057445497639562561651629878526557185297138346131892307128734457936737754864755424605192006299665888398440362691508914937095181322952042966828878715886427750086871542114229550125997648896632243692183815726246394345481922244647906565387484991337260994246906275191990305185900064678169939775052169031252072312839814078283612404646408338285327970786884770902756289897561781763191811999265589171994888003467467791871238000275032385066674589225215377918813669904220545929743073538209469985730107254385477969782357921471700989390443431347800865482809820674853419231893956459760155724340436571452947690341387986014269043898961411931274516900881826137971215197603956154325212121726753418231850794787443953035537527342648309171396435327181783983650107485193026705823182776669399391640678042917193465939067425086102604652530144293339629014421080618303000764318780941372577046823577792716066026461243175609428099189234453721114691444396940071503640506175342226638675853593315315391837779955764307064883209093039185880604336816672223192620259037160300251898177221524241830480201258558785538123297098697960688799694341111299114203818705796042478368548894288363734733117946690442209020463396125027223649299659923349291724855992947841493580330647162007962500825411145720414293273218776200036955000782725366896397340214334220826118574077325083625306329809766884746606934677142622915804447440395904039199354989308465538306917524283197756406877139046222138550500591225904452188272943976995845836420856178213997082890991992130405056260782015993082428635980621895028458065585735238854796285867158726691672035830344579110003418583052945956149883872004972895559801709203377626347769567903410273207778533847332173633131021180970208332898544666713604348837789106404924021067862111808875133961171876838065833755155008506107702795198826497680643739249561776981628917357810360084521768260717625362510391283983584431667298906534022099590883419017871707228837809355363324791681090381690258929332898675381487685250186581838406132425657292498068697478126670372671342014383209586923573284496466823720541779383009972924324566497901058081176148085150809226334279236562819204290470374649932489302865041060260024590157603474366326127526898790645626365944082698781082542744785268089285354201334461435962922422851862695604715058517491484396278556593919479586026101401351216448365901089962191474508554816956751481383327468588763744324700003168094900400218557207665459765383787534742436531976232478694927875627210562828898723286000032270518381765200775322387088184317339473814025841865741459301353689217504707716464533121218889499120877524632615336822012857287197757871152222279463846052267571174713935382119039305391998429638070887389184616810301314517530211142125178729067391922367167152530964428557773333401651111713477862722246808169742467617569635068513286804189797622745999869220692576677743586738626528853785238594592350220429484463453389261994797829050631360861526401941948842382031450892996301525575733688495166875703087181909221844878082839738913454092473289426308848789967287259326566853380321339485226300357971129998197873771763708565142305666392383743580364340706893154460928231000165065430337473280751338641914202108409296836148347384915323247551922408585480177592508006810664431536878534021245482005527763835527398898431261731395777622790489697491413656291255587134159571272516882438305068250068589974204894372257441523179972656830041679705221556297930230669150689789933076836377819177636733488839750713869065777794000713176081606065512065754069186407373352690448956489211016677797213356699408068116107825039778639928643235297298261782258218556759391548002107426340680364112615906872705958996638450018701272364899896031767205493364118583997357034649760682727541092745161597264137856144936227961262029089206744530463094013630231881812506189678998137171010551286920342840709931662936014941007653557640110412378890547583152919338876686033176164404048941795895854834574519446064256818998398253255128980610430499931174554525714037552366262612737172103672283587538678385468177377748616425132534699308125439289027041530611444535026016001841158665101607197564626721774945483469840127230393491530996892128793842998935316191742673251172683604738500151678941813674523916099840020270547610695429133564835063583895045009304771028623804453511575707265027049634943715010386263631052110593415718732304562439375717509483620157774688313227715094436627084839261535185257054680469192313316750455091181048857524141122550882526779478943811231291694019935651485808219298083062772909371976965352826730428076863579956102055884325083092591553695771116566521735585619975653074809973069712410025222166294355635570868291679866709810137400060611665089933985573137960165702998302537181104358960838138232357752837352846041245044063819160961149446570576274141904611229436016444394519425143570229469198120642279648335953269818570120267744701814214747601235499714850519392034937529622287636086671139369263317508445647327887743425035017789820227013915387796012283777880796294161944637921182570202519110480066353347826230152228262538835453019342239644105194407117530768308219929463051345301677475658460503593108601369913177171069053477635273886436414980677548712409088259513779081265466052544555689388312893401159866832286755714118345193908814332291361054236270275893866949429169583486389280177380031829241427638041774038976508550151501951451060330866449872260577078662130858818902532721216954653555206220843578190761022837277989050933060725037649236725289318002778301221203895310388350819470742566961457014802924661634201303965127872610171283996321416394250807642372427282574813627928905069310593689343007954050375718834918611275371710506001044741254126625378274716243502046973701020327256289671963510508744382323172254919373657215602682485230930626243824371577210282385873473686402893712849542164382188930798094745291108639911427543589937744828707351437955262263337446499794938353533430474475583074978524316649407304324923957083486576439169839602329504774913425721422497169911030142893581110882983717542155468409949488300918230160041595317106106249995633943772612378725406694766536112092643459294582752490690826849100643730100330054358326513940660458663267370809314116168942250472062694046832795889641764927116789905197326262858012694203378866552590125489679814737804166351899031738249642018661404876592385186491810732138477883451612875218108780873718091952904440634357200837687553738264638599005593085583061653917817922747039843101700338107247660204738073311594341763742489539578256480111957063680930796515806290142977161176282758279724556196874851113669849767374405456382972499770741351291619414412332797490946235977384276239076315900168129837314320158809479781716830821189953955616556717935626625181367539794382002404386398634972795912750367353806133199298281922826692341327509478031622683745096058660859848858495089524276826525186166634478671084569697260209155905354529206051224509741461846942966176634159769081232407054115447526087628284918998967960433638107224218998177918733933229491545072884296204935326471776160990517068323159302688676645558928801818750385782353765673492632295212364579062658012272656513034934901980638520516852829673747614193016567897567059085497584548752554318367555081444254056087732425919485638030890887893163899777600781373903585163046822224628684959353333775209098577506963617057464493644029155359093475408196761189363354445863997346071922549951932037653338064911698327761062380284040430432070609690409341885730043651436135542384772538777280939363040762483327050169444609129799672456710162037711939380806421810904995812628386863061516991461172937865286105934681773550678795534259604061388537665628154434536450400199867870901482260259245283120334294841516826350105940887525440250193431309759293339828481417895412622332745880474699060037341439705602349101483550393273129521505325543944641166669808267230833530914754355912932323079014105111215595613461500770996137703523925352457264465795571103129742881625349741648381420686480714587592827016520890867580784621692592744918479760142119985795565743768437047364682733079450921035733535699912200321811797342733558592443944161502541382995320589519740163970522656453973541559473036207288699262844805501506083564332017666445213500889207808289706435426165020005026302019452753345936979506803089889250866374830374930354177917613637093232030794898237399342976251872149803234797966803292082039568082916167252882106748524096214312208945899027340414073725451664863622002674199059183123899738957261597099471851176613695913634880421478290762901585206893452146320796645249544049973377443982165581289089778967076483235775698892520951640950515527274350226280450732900461213303624904906676472512782234334513908429581806065915988656175928352775290296114391640284450534560672229386979292517718880260520013796902726395995316924655228561364980590506156645989945976789385076126426324997678977824739508706399951824479709359090047047278188917835175729587764460941278222199445515052460067699129442474040993275270374886560842154211206538182782691879216310592756575564150532417989974013792151615346476526280818952789325913344450887723627163557219742561144102255190794708167633004256686990435342749929076381962285300682326038304310090870428248986562039274952554314490214648304694595292754929678029292253651153888208600442720491447283670989125530268034505252367980097759784706006458670905996440590365791287475991013828433051006091648304038839388869802402500754175817359335525834255945555164593719892036046987942565330447082214299651807218189162986895919111780491899101276738924027150381180370810537628788818681135879272590231723025320611666246189364050844103208686881372376378369164007705316666821289887856960610897846798413970103923309389252951775463265795114499878775871007335363173686924230513208763624250377389555517765327741292528288481060495205994339631626464950726001641453087973269951050261598049189847745938701347445015512827748209692796192404697059617091504037594366397029165127918177403009310671056583273492686915746812710039636822279896867917214702897655211583500795501368867319248873432459316096693160939750701587443252303535351486650529337266081732538729457207348058147521978190350910565216477139004563944863242868780488509200006092087180790293516196197168655774300282645822771058684897847837038420941219569356299567685913960463770687433737077012526913119603298356104796465527413217707050873061218722497213938071549466325808795308674126971516191047019383457040046132386038717919680547901339508420097199206218819604513899600415559307183225585542106710379418962825159320577614074131786455507948673392670541034499262070677676188284369199834583850742186044483643429423821308159429004352563640230460314865729994857927497618654005982293527595501542373347487819600580415393150683963632045658520900349175479133441969323206476873075976840210281607999853917086958435598703858233802796646005540693854903923778775259697482736281904212884612951293479456279430604590545273266459673645218025803226502738137573999936513838714397461980393749312872008431717623583242768517543823298543939111992155808773187950184699883484056035115779293492615195755188554512044678315758374111077319359122810652327414201486380860782898250921877733348123285448516992344582544749348929197618060464300098621383203903985850166641234728482265263970758300883484874582277455132370216608459547321402178982884175647296651688988787494793598772549693880312195313731567576472016024256330824262062566637151782038457984396343234896890417212731638381952352863151133573019630453104972865956665602173415509859920199603095668352788058043701871521741830773398851844479327335438459032815510893813524019922419143144649258805435519425721763640347857404920195980058852608700167458135583827627879214390816743220045505618203290663743252408947630953356934431190199624408391797181939420366468115233008443518229661193107063332155867561981475958414589147560245597366419430950345325206131593676535708369733015945359716231920657555312938730417036145726885360812548471621434997835675769401057579312739846435027321748661006343939623545171278009619419109367009718761642117643715175521780055270524109802678488039793839339456536691062346641285031366315077604997354570886287009424702207601596983454623649633956273362139233871834796429486962203856111755932652751133794963008423066998004548850410900358480753392740160054161845945693658441814429616725058189131225921495291573001195073801216073772759247855354949003436074489742534480736184850469973338672976412973206830434375302229428476720282548052521170702838597455207192472506595976715215124511254842359910403377201590791283834795690494937634926061735800792260818700934424792505933376512668718597789906864292996587410008848150044149511691602318167507598699829411724003997162408601535070475398538516001012321982152797875547381126356754157900364868056287149587132134141427586709334150367899069147562905385544187195392087502241792124699623446522888754173865398166272999733060295452144898818357772236786384725961213179116564856166402383924973188921639195282280067669331551388734191815994193528882747152502810719916207884880563661309509583601189906900146682536395588193788333430530413057967603833666264255442734876273754585626721336957974981992842155156336543532239054738619645957269767657470538769093795366229467152756506002704989865206596228053304734995968409351575074291067592351740586675050047660181696217639841881805051764189896343387565717162685036775575434123125576583444358946096106784352728749898831243294118399304841107428667037353686816452910725156166675112652927176687341064395112440574578568199485593054683336862745959809435570413906371241477644814974989115547214350114499985321812829350552159519471254039784650927255600508116378616352804911434818559049001940077939395971517824870532328275896597397060840069951289717922771245236883128399999000511503008294194915689914179140529788145732938131628347115536350858701485019210947741231110953338190868669181056650009559534069359131979308512661248252072314507429347516974625101231727320932570984599263855401830863087583666836015560899858266648000588291203053446362188259673802390916796543439983572919495181351799186218938265683973709966432049517373970481882503971948703102912904147170571124085446622998568270573834154964877825192350784658897781778579361294231429453026834955664433136476704969106455987351226471840868841290901663340949580362549383912933981007122876745717922518822760516320827827094990806996095920940392740296571008767719618136535812586163603920068812349747112684271789789209845162347522789484186274128393662444312373541550376967883622142641628807442955762853039256965193408106129603025647164347544122997660621982333332816315760829275824660466812431833030344740210082168895571460558795800569092726754789566417197112907479363790715152813636498071031252841999356163106787298589765929810464818374896662081882071125213817726832701690310025018434930429584739304389666764833810852838706323132552238277254784787933082529247793702890689103977983246755594411651513692307407172934401569940002347869863106506777845516955963611911996772879873606610529131382500647147259733467650347410813333785577648995211086919742638550852987314297892630260519835645134108696999495500593061228688074119091561856280304823725693478484065753747179089373415450175702466109605994099022485465695130943279349802962250652572153089764232915301147228807608196777839565034970389628203598277561092393815955091856524834447280570354878011809301142398642052018081479639767185001015290112520859086847729102695367575104172572652401242608106925355450975174630842593887942912521314869008649562767138856302090415192789320085190801624041362901658480568687225331483711028511971995229816262489520645144398024077153245353959914153548685951182368146880359965721900782486333305532634331295655981254588947817232742198042292103851079908943178916004230857716336320416781189399169880983851736949883164637137611720561114513144153642841707649309023075060731676531967588504912193015001539830137122457427942850089449871402254590226292429691002968478972721727328565320217445021628119724597917130215874991687220917285546785807787708322938953559656904754809346675756640194908769797786908431836749698484862094548175933018574997359918413030695513741251590087558595147529618567912612856960223003677626422426613923444826383587998499591206268495020858941678431472254398433952165497460559056986993168548556673352902260807068896172038501581619846065750634739328131462032460013462455763533102704915817809229289456477299193643092341045348814469927474269107262364276862571586756890368704156718899655525971407812965207470016508121075449979943437467452522178367877825507455685413148513083538621879732980353287427399012335753624830564412870141440757392549271349503890444275944693991441019018049324887447524284500224245327525078180428911506691636563345185495693241825233223357096261215236932975586295159292806724470273962699679194370194532552750775858534006566447182855521748739883978501435796400398363656128018461698283441155857180024287829305274509292354828263351368204675390416549883385113002957045079271124409659193897911990453232214727588407209376678554810859098119981996816558385676165633683570171107994949869513229906168058716112726570022172058050668978651811229184949140305097251034404062217373834689840919623986108723790732351589788130019314309405705873676246789250906222800044900030302048543416385186089845927490629508406504674472832983645325654739500601031870530275481396774138304129828271949729678939650953754861404402504503228804498687879767453273510338922711176410275018084487859972456543754383914254171032951265567508220999957828671866459051075174744621425357282020529260657342580743933030283037109225427889936475599572679392512795689505249257888944739219976968980966688690966899205745795852719975907187306256307073726036146311853497740244520436495041016291183047734214040171707948582590030681611184665950058061536270196529911302815852195038439758982758385363489266053439669329325938426710951821340279216588016828083159556398481708591963467024491959538981129471368867783542857290598005268337345850605942179313056665441462838837273160454247331031697446622271736755723925302570116582346016567286029592217824743966430878854041498183106716706086115080614510960952130789752134319023017865072463682655904207878721846033628106319647000493541706504971438990508260866360150193888835741587121959569546876715466441200424360754325348245264335530476248886322936116920582057697520764740768033423341366904608096365904289798451554073717249803616797398445151641560157566116635948362128505813715508672912353493807431025583002371281122575099848493860808928726224331821953534720186677585585318546694405479278362078095080544633780120296173706136551685976713004706211163700418542429214153651111791639843388614347005413887429945223159431145011953202081399323222497901039608370440303388037268750676265169004190702425672736739378320813690851260876907419200819452930774063774608914134407468370529913303936102560344588633336935936444869236921369833442072334863326988224564398848936126645467599439905324106308840106812709171095039542031652813664286828631553837173275642552660666502610410280500320768435427837551972098724841452772016663340439182786791748365563075691171431049301089868983502482907712421669601035373967154474929898914721030188990044713454150623870507627351635658718552874599934620309018467347173368429414223523566282770299693990249352437257091286227231363283474202896932249113635956752052356934805658573201139374412106996676482214353888122973946106970271770857096431900311089419612413365885701495630103619315077284810613851384229926964880796164416842880194631533783229759828437206565049764684056855752131102612278228690226089458525311091321488822120727262438443443544258814940218809630038806337275893215961364655478353812570770893515621491275188780957735944421393014268923647635551891231798423358839303724371917468728311520264514560706298282208937554723702553562939829731896562368215414123851426867798750301785724538339113927761551992524131353995580996899272590382605773824494545151052040553325798433972724404420330855409229135210141065038942987145545189557337538697595247704953692219855570922235239850008256574884535459686830717263979649386076665893101744528161962883046224262129600023946808036040547451795158118185603458140615031943644020116976372591765587682433615104645854114983237356546168527025565256837005944617843336984514084978433034614282893494130490516113212180377045236983713432531864723663021585850068561463294167452185550030671823881091859175693578174375859149593755542142113977874369526212880208279884206872958988189419921393768077502336778382910109445875576481811949171309506269851300984476898367619155976342105711252547162410234424570865381032530681319195700186066283272324714782051780386676649055108836920660436562591693601888626301932585990888133711956640115288148146512808138425371759330818753008325802128224801884333386599110019929534820024063579246191966006120520879653833549884866193557201998224477262702880671961881574027609481501167495614320162326757719935993259270659947741849348363418582389161215833268610817140496310897403792713138181943488178015280905522221713031769820735312009900662227786626127927925404971115186830282365428784081634999799110038222401409908814852023448343880602668205687340457674828891834926763199583598131977680624198113540424059400836086076304761599619919070811716178506860108241122644302606766018517377078536394442951096666466829499855444364961692406630540680163418911294078526845888940081290345517529752536836235526881783251113293027643480898661285753870684798145759321528482033087279014677602875819053469664752383681229378519039859595680769052373333138799232154084902869999200947344499283542362303446027106133376746367230934686690933228210948598859385351337243558080796656054847721196968341346002974167089911727141373697875982647042524967679175035564826879402802256044490876721570813866475861584490062240649056814883713052402457600321596603853170300339620712688840633956465330585682304951010811705852417977196209315616612960897540170412714295285212106782233378233217598046256252154241923804696511991240214576402412934406012973950870339945517618935081036369488208099569508526594285464246272595041075236410139136762783020102606456929293652613205831941670213987296315083560536742227039418549296820624216480670170067351961410165302759452992924793943865219670984034335980974041533194128060895424010448177140306693684915089752381489882393143331802147055121405129202815842402648502875852242710377903733622316340112368058841830489427334724249985823879366240960907004439947729484619846700612137222214739395377692757409408686915818239611389725928163033362026365921639193061894990686193172349411493176963755030490903732385179674588120441568960121152416667613703889622912642487263261097204208368047248382507314901787024591988815298141373064236185945555680065402961077092704915596900885815912894788618129726743662245454366599612732037821261359019613482321213158103176275392799651557179179634309452136255775378240865381473528286136572376888747132050026044055164115586832498058095694497186401452570790243853832792422673661594373367730126784082475746767226836573257354338924761087628423613451083738899597339542835419116909354740862123499090077281381777379012705078225184574451266495579481867316240698764126942799764784568637098166371832978710381989635921704425337835975504582984304797569617724012397385560178624069600124227922348181353737303165598979515325522919892293826353081531242099458280775851423038214558420390154862038943369461387541179778062422495614051589951377104578303986505764079913289351120209545789066929195764861481622722573575716738537296137261574057243430267190818540940277805394289956100270606531821920138160846102008170510027313576446760367513160022026554708360538036302825413561043716258559770618163845273177798679081150985949385100888968145118089767022281001477772649057246479100551143236556126176272777040744819167486585167965089878940039879262834267004182356814473483988332820183166003926092455281963653550401088801586929773621652365767996451831576136797892467160082383840418586357349550864308903787295032771407490112795914668571309228448063830099602272565481433761274378445321593112974102560436418731397389454982457656513737904394897860717306859880441418853944013744738375447251496182413535132081377608738792006009437026194250468603381662370327304330804681317814005315744430947504388541632422559139056655791656090757412385718105180417584548611403963437473796711838770010165641065002983359465119092854453457021575163892848990502713642367273046962059517068568918861329012123747050475853034420851212686011123899223696733051915927330737911281317963328461770657776026535483395642215540547983925491049070843360277223406276744094110541410669207634708276348084916314770908067691586733920360267191149530919380549477553443231782737737125193804647337018044544630002671468167751703020637924758480856050419824457777118207975904228729067384157571510916777412214518308380806005544707321835630391567116323645204735343849639490045156371969084880064400368024129977128332749339819412257456230576975788187726769471224680801803814089947689693253307433742622781082969372493115993267954695868665983930736803532253395529948815499955715810747036408649214755028721680993624427860061949871058757570080464491734567554860262922589704739206703034948509692433579035821630451981995255292867685791559600848294149497208853290554983773829582898235148785545548076060865841048194473709673014679993876984076499943155046470748391699957962033836788994470108412135460436705280679355684246069729347081198399423707527858560548221098536388339182555927125069265691532406887191289291039647913836949525962511866106614808878948342720226822819736583045564549560365312789883000133600868229332853692234815828031916727587247613164679026347598895044419974146437033559541855138995081314272391825846091247100614214229988214077483010949169257541328102008898661923054990637323238617891996734249951534683301486489924750157121664474531369181216132816777845336975318344851190623212458548644826195315922228305013640652287593218040067574444637813800446272504959332123424904867761521635986956139906417324000613409781574268513968831450811176088324963085545009469231283525526912128616676726359890453205977116694405399046130147482044368466159035558280805227394440700306709669626852730139179231449263985706615414259913669705457504068137215098510757161284465556777407353627791255204038161679115561146258381890635386803780413676273747529908878832801426589949271165334938320085969652978767042264371622215941270418532400634910481301653976719873521209547187357902729069550113082396291102948160114793119328261185483820565789266272142760936014645588174378172186532895477212129134028795531134337873566689270421224971617640217998857911926118091371687868589796515815380932036243981665918248649640999105245154396663795593740978219884194000667497667026220438791675691485567682561805877889877507282339646241582257305890048401164045275644396557183060934314902684278098698062900874709499212365765425914400151300294695794395955986696620282670873226900234986714158388786068428693330614673265668250742402378223976968138274487444180218202447068788142458309923592768030456589460371990366099806054201910017553505127782790642734281955787279632276509001901545168727244287779291565147430938034970966876864240594092521232586137183699183218886913703225991804145118265350430452148416182065989255680085954412996926706916768576287395592398596772765413334180758565177423876271731850897173452147866630631124844293306233914329677019050293957383417651749179190392545495577069799310367538279455566269351830755645743844905485285351281490664489809569089269195055315045240038668985852160669461522149189582516412443053050623804416374648966453193572762998184075753644280840653737224068936179602937816427973481376406048876514862131772377998622069848893275137962093294488633347865530718416441461527124977388873570373329576015870210231526517933347989337785883825997334091143637828851312345235373536711574776079805771865870734300531335518030277830920311253360147124000854406768322565913693722509769323950805695131916765004903668289630726681649524209918889623528555326186402206407664675080168256381456998830251517358190291810407919553061037754770418680970416194450761370793446766823071020019984571382281079455947623930573437302240195793805497549335639904185315533264138572411863138212644988219933924603100209776086644760922843992528281751832494807198842174178955876634538410891081246549139198291227210807639184549333522494694323016314798983658449323969178328736407868719688415117274112114079168802400962435972369808009602189471414776560796437635412856787139614534977520503825031913275143689279494487789818170708305568743155878918311049705086558071397441929413594522964673874577119253673751075892020764870131842691015465334327551493953241096651943778954913010779523265323412724777166694045207346242848607552726790297996543774818473154090236581738168217673345376507820469951562901158503575647172498348289215518961557766870968621726638919614293981840798067376807076819122315208448258430312512401496774156686632137928104505256161033357712298691693002686792386131678255389525385470257127869025296141353214010151833143924185018436496928973187841634027669485133518246553054503621147326538860587085298297057538597682399871759500562967020069514995412644372780122803763525343609485250930476197357737649161623880454909649960302818083314646773993245211190045862159943740997757185700672244685764828402222559110173976035496899328481761188403478797008478488490185358107448381452010229196121057960972888004545267969607420691837352551241998775473422174615774781600088024745119483541634399806154251772743301139079819897389194725686301641840495735562263453842699699109710181559078529616236974267172445941499899447901212440363323529032726748658041680044528765958065512753718610787024906050312535756211613607020823012026538804214342513803333168125841239324660593300305254852014767977138585295897481178032352013855288778416797498234328695640688092834715050084724649588126168688483922645389230410795809622992485009292596223860571910876786864087733907215943071208629070438163194827903486549723657705337754883363298769345194289614995354060108969202279955699248405227480288358045594692405853649516079850395518340385889104309909790143488523094637087445245441054102174661162349506192393345896044492980124557396684700594845334253973727246723087901430614068096578405861106164509480340627941864332736990874174905975670014947807196432260018663473208924638187067843153998363548945603711481236353067657791382150983457632538990501064253831408288974565363311765898574545938601170930430013038876369216552181907651813619870705453956177136528719992236975364446235450750373361354088919392421128977374720717773278187839004974266879822816202863536070919198605346521855385381120079039980037589449465475469194460037686098148554661919786621946974111976700943644264966154352552719867990208548399365410303401768820698692278468557501985718648271173987873337788118774707085933973612326734305326555657757620095425792773290033823691376883635488501242049887788394778035699799203613733832841874698081321596360423996342039085655156143440001677097171535876788504038081894849254314587647985475885439961440613853921058108997860943773263146193053603256566057189829618755578913271859854491133673685212267565671143172330048293994610078737837982364311329273017996319734777226862160527525173117967297472467152462821886066797622232582544867556894115642935021325807855053113423144697330577101807949536630111295797558355247470303321509173688493605929522064891349382690710704268982513904568158750667572078156784323803615204770587382326577274907948202889201241907506780566609351978753492921641612737233273042189235621571723682444225515101144035237524593581997179208346125107498893704639089918830401290843012431920522985886299002932542548529784277776608853687254019322241959349349205358738739961130699056086572580837588132141005324709325253761909018203348744181552931885644941733085529583406721110903305024680136860849444624281988276500808665792965986456451245580621798689848136322697525758043795958537417676458541688605688547692522990942289049106150744865752224201106437826550381789060293722820503799791305895491296198103228334416176708026810386426527919559278060882103790522001768440268575352690072772139345862566144822234038278047137190247190690235402205978038403031991518990462576893716853491418368351920952131865080634323994873255266416101042553116579214347085349064336192728892946928314666142498911160295782865281894431896958981985977420957103441280988673964629835453904328699565321187179477217391777100407969978748184504268139190230892777136618713498078252066962713348003270114672058429382082299619497425515113573594737373954023582070323088737841874991511501826211492253996691065226209862870412164203384803079191374287364018392736310678979395211316847635096074753073095267778039952119835790563092794315800640906108984436401729277578574489644602860016950987388128610565502335758216656976327588946568366336039063992629215003152943672052480762948407222414441431538469057023304441892720753295482953909146735788305478640720050873206365767638973100785341725805337812753791313874200886747080772843206637808539159626601003688284563853722250080953803942030462523982970178324689805681364433114055309665732114265545496201888625989500924729028835964894315534670006947688480100080036567841031092258493181414074737559374967643188831757869733688168371485829577642474117595125373344043659920596147928902381650805714014249698368116911006843944864945781583118849083788938361984911813770742558519492770557380684995562514104215923297627236918747783069794202196073669946630752177850445298868241659264178696840651137821159779088558565654712823288199555659196878946828544780821583912100024056409769183762116769751714047283944985112256930755967559755016434457669094272399743778248830306402649476148715000088642961401461652874858597213615292849289502542310823711818087800806646395925089182070997234824762225652752158866299584791145585733344220194140760647948240068551545871193741441975992237631070431937221587229224897373079383165852666042883998969244775980324328466374216971695958889370703759382174645535124426750474581902508310015974589975303926065974737600923236145565844574305370330204426626710480829184307349830621157772532196867468912452292142301207727373295659079950708863019204700058127702879126241553251640092058042270134671071084486655760006357544266155217042212738268139598042230740609928783450777451464637781601843675684565732416938140902026067702084615763373407487911412071515516431660222169359612944594166393551872061575205246804618581597572917967301742959813271526957417194809755346788515500991649442944152312324971317998142360858010058226770339509821922892749369909427760280714307212413047920814918195087224691003423543709788288454025006664291532137490214690985731979958343042371168613466020932577844149896023317156037373780356735068726632253746307444987257869134933985829569158771960470083886688768927546179762818009875318612168231907529354618324887660043723086788381351085441671873583291063230885742283072983014396031857227651358077402647510681215358481286766521263357857480710368889796007478084293278623270604716449785894289731618477141714610616189366997978678935819335419713645488109032775152006547927730739799789989234244064565249825366308903928821525139551368214482130910880519367625821127936029058271429304906868923806104555350443623385203499119348543952420479950393313004690280633734689889441673702246522338059266723486150422971623672540217108973465653772848333850441943053013835323966535013057602725570320431769513202160025029288216683524765973504183340372456582640011461841240786669545217999550250086268544688299352694815753703888412581400884138815961403248426942516275453403945085052404681813559777552324882928876423276210587716805258140724126174641130293904039808649099754464619438012816409550920332142889418364617518860312380827657409748856085067859703931767954078073215738597569351867883361427357033195376843001261756218503291585377790846066862049441175169952221700042236707650307503576905955872745911682095165286639541165918297071768343938888831605362791727603453300274933641106708554620389800729916526034019465396033616914419769252799737069190622367511897803166144567241899805515746343058497370274097889929973857856234147315459450147740817976168687530229337491846329347500410946528537665437916418077024959036202179372440125906165963038684258356243534223374354642148844221235492832904026641765462997605392474846911537537540886638647009106644459830160591160453840519997302880272653242813620893285104926032470005591682207772979753066940069235460557587598645355139117399505678726115649414006558427780036345914643248275527922180501530115309828072870030011993268274197605655160438606990194129253862093973026690023767127573390227675603172790064053520481835349711527455120124735905956920611280991269989829637578812220211134902611956502223819992071484235195774394771233385315720543613726493669364563640209339882180758406823099390655186425174297163252559781164507665156395664554151829121558759199282910985395544145045164360711844777312801579112304281934700073703899220294394814965878941966806257544238570603562391163562588312305088692177752846652555634846435241609727234145507181977179437901567697394891681520794338895530427793163348244101731336989183631393567158396871603705558643000484140044817580777629215865100258548144986076015251943613603393846340841325273723843419029310062184343699026774597434636398435499673556841050856348462278228178694597372126135352561039337955715447178465255552224931219004271906438865071212926420677477299258342377728291044470462882535866637682792488846908337808692763758537651904710385275277084162127132635113742333399869206833410156848833632702556908357734509847817658701416364429138088080402593909920098605619312667626120856079812279556571337812021413598601604506486206758887733552817397640496541909099801931505756018485218216921693599035491371993031238226523086213498162593298633990858800745140730475512208147936847653262101465494292327321973195763933672035445284264953449490268303724897136183854754824138704699024499591088991758643802767583726602685042513837717655614603877537678748328815533957782809981046500220609356144288630027818554443900218627774694758925821202590553051054348037950804362718194950580434018164268746654930104492041325249559185749562463129013513481619439134140778987012717075671427684123365842716504368381214030919192617862552916634597698997593075943236895455865280138575063209063620585568478449391290294562134215570008989421623257407603572998562515416036343057317025859457017892951009351341509134537316981129246680484606450759019179386855403856998008939201073758477316927012290414056751662196139349352485533489921939983135418673431701970916383707807505746654928636947105508228453650383309995729531247491301613754794963975257321386525151235788035818118105718314241426136573766975604065364445352451574743567909431363941415722062005825655408704145743747844383143136134314155824377689760745715146661681776754712776391929768114654061585731204053056006092284082627456650724096333856545970407038000759364658920008695624345098608069535732927398579742488027521839728764448609989279530554404306037534844156388195073024775368656287781972577411604999217723875877248640213388504664278597604109946399758909047133282800253555606041756741182588675596968833463950065344011701156217554398313022691583292812515612690181218696411097514501711905408253277720916383007718646040754327487941011379467933160481885328676139840608009592696170552477325374226484007419195607535804330667889848512874017239790926257226669063497349623993825196461037571586213168099409274875715287250204130606404144634007850038542633908242955339666115511134200810027267277281820277884087014448837924641022256602892406406621699825988288411387384166444390034189963748657999137698252637966900647747096054610181975639792768696561794895960892267819870544993425554610552662148213302165291986980268427796290113220870877643393451658377626315841108272832650750543922882606265022298762841651105971737862645724413144728285916044540916003880031965845966052717335039580778907707567257552034362190202296779603086115264954991881925850118324224412980575700495552304861373062440950090038559822239653051509046595587942670936365727018803041980477882560483291291973987310276803766076896567630264252277520705814152968237784341137493802871318271843554279010322814519741949424619087434772635893710360463702659296817568127516571557980656200899306668987742568971883622327449410309791541093810634052237069920041046538187195991188210255492063705886702500222059004185775756076863491547958518465371712097758338540282164525832036755560523221927520274916340587734649331996348777324202395690377061361633592173578045645203302538603436701181420659085537562417069301795250464774444761339802458665514425380836489392126107304062386944884834643970503029238931364282327371209716873334959440363189767891252203890843037294961611380905645316408401952057399469660872104272989339629502555967313710151513724961763111796465393899174536540735314210992424767028299433431528625612026809519992655553787366922003702999256388113446951448338530919117367367701284929171309002781610090747702129329520674040201346558357197053426178006805417149030222137992238130352105597198010762209806351155046295513211981170281200789146772469814898306537964583927535215460700448162477627081766603206967678623108427604759535326419416318870787640515729752830460818270557274626673007581003747222693609335391848968562326513493810777449338163369377731522170579270935754955919551783381559632233201689009331913479672287468455076016801220796232500386522262473027454828512821713818556886956395506045616695077872080267419307411792172353291985402124633082321607473306606724950644725442913935756632745153933612427494075686708532085202904776808507127872069355395070856977432124759633269414769887778740580841575010358666086109761262599702008512678241831127132122018797896114785557733733273834340678413521136741838302047435793777758838851576783665920346703409511746240444043407734086488351165158408425928882323881072882423997609786731149227047374623374050530423503604726154756103859270125677365214220172232723209873255405351797204673305137204046481181193054999522963411577408234750479416654897416516854008993164917181503137688091585599744991261688626235769051813984621996657394555493474581177219782446236650022887421723859726550112178589482711909672232862418559201800721340344809273660659295906358673533382646181838688150628011799007580812132405073253631026155641288050028963050493716549021240336153568933415416576907596354254252022274516401501309891179864640389786955556363466907268569583388790148024524523714270959138904692605793617353404213379534882045018936962470211955862267030092999271051623524686064975083187716431766773632650057127468693614704846893874821172847698067485461680433126856880934840657694381084708580296710258056960022558188976998351742608215827794319360118159397855607922775323015475181610817943223087469894531267176069834480073763406223804620046781697171945616003739106279477966449909542234244002809741306764203443280590999018147817496811883836188033297450123028069890236261891774102927226476926341065017832909640747231598733599520210211927354902883811768086607602822522747542254054804177874994632213452572106347224657055788540713556071682489188151376404903800059855767814886416610185912829081935271915848469212806149336840502511635254186007725293761022277825248123663943910602687291302481447949597663288020493306112292649509397400316636887260911403032256142049751762938053027076993553728171782813202601699090117099687070899795103648800733641689934992013666697689930835748548168095809611659721273857434111142264720473225949657708989087016946164183425631696678395121993459697318596816720922879456272060129786182522875201538935514678977746322023455394577768151692417329972831139484109656150790287795826042511332101236270809258982160498753796858615069930895125425234678646167007015164780907298493439762858871026609542218674792750250325225005762997423512671531572786759556929107130822796598689975224207294288815904178625429078272111634592071980423817551710530585311197652148397976884093358377916280746705885728096709194447430616590484783479904324972122527812135307629170856789593401079375710721468033314502452489029257939241777963669246046159581144573538092530262074038408164252538780630345018352548606254142205105365105686634605655087454112941796955073583200155085258265702497437719806921260915815466581425289049211806383208257169053568905347514644598390424045274117689820659649760958077815919855790873664149760297079210069259794938518714125479233017332790876523197848017776993479997757861146051788460160735556044696188433108420955054012122519944432468566863972184638672744855610838909275787998497718534331389544675734553240875806470222947666119876670080270677623954449794372474128649464409602695291258898165622237676487933389020239266951159380301239797795450488437773911634690886216020211652024072330192006882856705862750711899044865336936663671968659474046106802482347850865044103738364572689955174176372715470777425959524080841144306861285423540113375763073628934738512960332615400510477886372169572350036464938417472414339949316402838093948036404249955410217178058094432334130055846148579931270521652494269137334348950885863959201850973884470916393040068947281563514806142103876914859290555998168653870075978753513201838156949557158179496136043024294982039761192362131905124358488450049972416396447350554355186527463480012557243222205137627762616361547009052793403112558442972839579860116232957409195566637602020875634468250967476762703860548429475664320298402758499209239872707330183259825016859555278328400457438205932021364530366406664111875157166104627769109029675645600224123801788937166427428758104711876695764385109419469302755620301254420351090473145000804930070384517230059755170934752372039592598378387739466328195604258411221523963219524784780556698534147065145840591677184393263440208733381911267028723590986078639569201770725235724416691740139823599459845598572817228403160337701457274521279443183082914603985919796529405942134883239752159682970338593692968426673969388900682406752861001242682486153119840786651678080364830844799307628984403430072983648468362000043378224378628357545023516646580148965075237347489470704706553654903431038968846876348693843551158315551300237115767452711875602893839073685688342896295185286598508822404108817274492098913516698844105562938635765405868558032692937581972849090547776882955220456324539768837049765649769613742407578906455376105730749535880557101611693291903009454526139327887537679211552112453073586283678267898145627020963700274638685622693029244419627411553734314682379627828313677421697751943366789881298003639508312285992663558308658079303504114463860859296907018743651799399386667895461224350445661009990979038985495886254325148318879548096450174696983057771072285350054847191383144810185668782458896720309557691420711937812393978502413755861538829231303465449279283567695406579286564333030014035752538643587160172181010748523303218036350967947803118472379157010939339085692727808474557493260773197682830031738301550096510661843534785419551503595006432139540672427110427226452648689646368759666427359098509461425888641355467253642475055936627373628534411658736145881445096612227662261887225096137048694681617793167073722927789089942405375629249932983827467769876178341663475358012080854722168889775305400096734845657958542606687334950859830919911584415209171662444798181211606843163139396653740332094225400445699257159612531081094367376221128630205570376710272058813094660885812521599520362309105887741034283976018915307439950856785752667406199066119718317751055125470533363511212822064085522476240118983511493658417010525527168013867248116725898293494373653174947838803406633619375013474294092729695491811604909222943982885965404924233381353443173930641371234353015522605366283388881171612681277368766422597208758970905626681911621264829378553628427746566312594022526561693004441081709715235001024786172882925658763850205906409493415283453996967365021239808702723254058694239089254161632522846787008500360934224107864498849492120140383402604822064634148958049580366979667338566439217226752945604200231398104393024706568009654095986822940901067725469984771080042309947828649323012673686319612045431768709080539033072823074194725735975263611622797702692144365398691745828799475608064659242021460345633250577404426310641454934564091945521164561104298085145317045473910080008082786252609614129970494323484001143293054524516537918679887190619864150099396131849313784447510596324231774633029212650082705996509042696668678637926590439346102784641226993545111173729560805357508558355072482813479256300453326662568001574227258231050731123873409906148933582696253067461121234725642214109678977071148527254052375707294824174321450951839204775235811029366741822524828252461828914238303385728868333110446630505582053573543862461448659579606176667243722730088105957051391510319201304897095249397682899557532434488419928001732470814924967580469344676047295999883602082915285426912352342730625499091061924281902968199568374980319625462750055863536732930052708977228901801526614835478532881886668865571045688311941148749448226445447613658163382799469772206325811717118470419856876099067988003594289808148918627225800972004558730388450492502761500244176901338205429302815924553070235937794848977950128643303602306305695545338236261396604761519928760228062620838354469409569516620569576632082086788928116785614357052340247857558622555419695420878706399735378138274425020528513118379991207342113761601136087102927562697032789893160594503767944655146315526134819807063303053785316337764237878543800357724370320893891217167320432970099349727975492934841712891575007258904168519024404513786604763631874452654885440232225769347671334811568889844839189016855214341388024599789352026326938119203908544270169155613543047794243592389138771394371532375885174194701673847318744510689550752114397102714857870880088963921977509781741265359863307276488820014868695473661745064454936694741974830703408268874956379750163201950984648161485573409974272783104583666074413012056597730965594294839266319058863943094244804728667381094896520784154188324782198547619185518331580283607150326338576051526027415218432590663329351348028090618693717877933411966472228236108056382066486459810868461012699566752117253064276611327132963844465248063567477744783501159608579505923643444889809305214879583377134674139223979572074318394340054440541651182630186096844950125782345792469354935887274108990529334610695984486333949871866997149221457720303469077430277066615510198782012682044753492665193127722559950938103895830953968071278922967472859021058473371636148365480858763303427992820330930598516205118613823421705981863510683747412873374814059707948587032640890160977856395608057530290826213270690884505021098774769668554948761853318472550165872796877507299695510968311472110538885699836578389188391125327610877086558656126398419320644277382260302942039681336493162647547019608169866548956572520407695418176395218470171547668678587246042600839101666913344653792928150854321670425491988344701720918947359315907355662098613561915664507539106189912912225614077672296903722103253087963553658583644872192012968927227615917136045308147775450489458668240415495340240114102096527142350126509947654332916982554474095232271521441656147625461563447582267954718020388412431011985241586596940789606357693258450530446083042560621563485753867815865887074423667934673228639071401123201366056962494403407230235169421680311239179747201122494497308540424732468611084713734755176770304007322576828677066111401668279024298211315455531562316763366700522861373652379664328758940142205027833862822728144607499054512266612710239448482252308024138662124931941603837497200638669475540301552085387099693586856481836478623627836594337404805615900574068597459557520890976861310142764301985728401881617047634546151757836208639890654058755632978723900985448376319340651668023410819607978906468743040100613586045028029782818968898423810929868751210762297138499437766732771491767576779619356051846450142605689637627807008051156127973697542424340338475114958645098918769528828697614179813243174548785382751732641107545408184390505068363686901304676420255742598173436712081949523018116792571858678858824282816250803995490318830140696226275337360051599524318706347235858171054454070918320722508647808504748379056479445956036217226441827546048667979481811105583553180736183222249164851742763719039952908897727229551822191094916606066442908861783785893270873800783709676665604691020981205929121708067600727885227123680167793986716349970914468727018464672371487118749929582607068423691059415867230330655909742468709982287065757266798271613238074235933171538394018104098412236693787857922487621599224011469753379622567918924767964035825194250607109238140264292223191408400526662173054645453711320501456430366431125059188755284694022122086316911793269370703941436521313015586622163582288749213885354531376801270689777619778646600813587852010720707902177661511241453537180280882871751685083742056769816030945442759334527577719105456787634236418953501557285480688378674506561086535733156881509540048558124925384569467565258102808011192061142479608651783704836344606036754966044957220437046083314613243678967950423610684113047787528929701845751916620831557658534862449603010775109008660716677052409957585346226265589740098170627941947715089077364731102282319331534365126196166842197714881722686162344553401116077331331996847142504938855005003103355327433729685367445035009811298101775029489541455160064436062862247136149688170970535713865253953392307743400312476018315004003495305341118361747671502744279943922702068762515089235608472392532739508327034162472908463481248990987689484037532442555018508203766228416873186373226342065732617750112939483620701645603931801491480669229096358701333554678202462032710215958010308052450560731186786849435187034159826617036118273136414354444655383097557006820830891026703023573760660156392090622899188550127021076919639601564001149389971927948530124277704112785362624597308098950694934999728620232342622957841598466257546094827466750977039347897260561385720028898205669555643145472558689670956867853185343288166525266971186052163971491204894109331293503227647741964004577172913490619184875882468090561847411000953604306341009094993370409266950174733021090185063458797990373706938040638807360350742754173003603397361897162148607717817461300459841205657706646699833896126912934359906622621442220767915310338812478511822479812266728684221059976367593385647481776582814226126651984868572219641949652181672833927946920149052770204582735176340455896788106269345015110325175746870127152824259143660736767218701565320295794777254284942376195420491998350141470014849547729914034914915413343226578303132394546884772843118697197566855646915579341078480025851336376698312027413058331821614742110155013744281498105113109177416564437192328167140597664995181975992048463218947265038323283809563874637804955967285977485595106443141496275219660978372713553663014484191725699253271496903111246626793891888786817452191063947170945250439709671865594459226875135664510290581706173205822550956585779497021162673358056080682566869739063183221956055534790115744463772463512547821232582480196132242878792435363019524817495356180359901146533076992287342419312925247379985047933293668855874829925639688532422213385525532336866417667460562272936208558629414183147448778401250571564739874222101509553933739935565487493213309967050039286025243840127037685678036861146061588946260262835490766943635724876722574016447156747132400288389754034557465235606303851032891516663030442719895622476666738938532570523698083207888427458085920989519839388752149144512145887252128336481773800921879427258991205026709246182307065837698441926645880053389200109957104601516744662940862563930350844694335870779887038062998842776536620990441847352497651094962314012455616465311112953057739439411757598462127411314185037015968772735640909741555505778435785347586916356755949207607047835267119651597179900882867223431170814087151944576085062450597464206302695074051374514314395061098215376082037684633367331394628554077409257823400587346560574808085495657011158893711450386605991089052009994269904234853019482419502717763704787767529657643412218219834886742874092614710826584595099006506992616323870650928159461699958712725420705408791923852426372982794929114033084463420805140719905743424071116365133680480361368436360216848517759004235941481779624921037964482986284584285194191109126506586070730916909478189834959388503328814831598659405513868562527704686539685830822056040243718410286338433733862675454468736415710511432232930266615469516342692111020801454307093247990082456053916085174024848204885746963374285186506286612536985598976651708539211624793488553901228819134202560764876218657551315592920970911642210495946226698816591772462226245273585155333334366519482620326317894856662626653354233719903174973979726379982389219359548315952652598933322711559589195369040709923866019743472313768039251106941993607365579245200265318647963668476809333517755990704447436210182732694366028136482684772991628848545521700570468692645976387277280516199999971443838387010062990140315544413124651328102544940763064156812708357708812252000092644229415490820277930893963509889127342681891169101275580747702259076162163824571288477157396279982017016252282309596703326484861545077659228446719584251963295258046139508608736327435081566062894947386942284783870078236556607413456765695924815642109257208157447067002209520318334858475054318997135389336609232589973818054389111235080219811319527042561272148039843179729978650091150989073763296647069737506653091040763254160020068797928860222746200639125778774213440209272926756658966105452130658115912254667385622793530734745560069762835098311722877775752888825057144765875739083333059393152286454828955034311241553120004193287510838130765573865691348749974472454408945082935403536814614251743177379909781643129646177546726071809930519733449799151421633614515731151134852214005259247509810006228730093879409852686795660107590115311565176760896917944453238621145675044242741897349478313977682104472056191282701944435508440729638695424549490925413844152933379154652129084707610030216622366445959506583892074808607276847209632588797605424847108977682610159529889108605187150665091039932675903244441761495976929569995903062217130874525027732018002936927076606292623257069928884850739326764252826168523120409652292634943810157013699437222890694901093147089903007456090381228782400615757011787309165620135818680951950766978829585908359597130249762040248790971828253001880023787518850226819560000110066210942886618345865162450086439058485396362955270456101331570813115013532672813876174773598616883920412837664499852261084344508930778597087951512326284687748046753763209273158809919056401007690221849325453117191294555653386684593665834605111403755917466819862696679646211120197450594412477571110110773165659589056196584562869447797638912860786447230322990322122728792347020985615834695128167442024102635762249111732308008090187759200473706977700823379337954676405131764052064298385380152890412760459745227851183807029768974131889478859254154234454523407150358990268917503073279918065091177993923418023403667814179492216510572074286566810827343235484238113182587547261110385897050081402478596148844369616604114805818735681942524189503715975388913847706650335917166517446085252314423939959345676348098505141707074509745019397897306997339074666060403057569537721720258352871218837205776288570049961530319234580363604794102266476533173939468321163125926165316717705839101807302007974513412808459466762060116279101757232529656557624049149149706721885086419548580576298636809040219696877215692981046271810122889075871473840119635489983373390255742221664513960708293476104297178543601179014309740980471942399573276589596400095937472998771355991942107665947526642823616631465603947446317103378294358676673963317351698833919555505021186630080428451805963740164166692521434833654241946799334009210598778020538021326372094705541038995385157735475236133375180216147289745269809151550948983507431769706806959917859455398427311381150950684618821187156485584188698135044356959939529112193117509950858255356120564303368637078321569422051847068115422438677028115039714038094467922852331773855228657061008932087526438656181919663470233628253764111549967782153360948572838170001218997126351803791448491588168238980482047999791312748861916935508519158514784747719731166997998507801222176875877653014011340870573903620965639316494874923564527707995183967027896004005782502595020914744201205988448419635973508136875921554167159225906652055747297055722996623413944007223690534924046185095822880685470684768511699805568336741816505925400593445009247199055261143372822227806904433656324982608434253691011592590562580143343306275263968387314331397717111735427277760981256814563060532616721176066624048209836274931238470190139012684882568283707960096425232261544986763606603499316601136839687055389963685552296770138587191878739829728576571723769049371802346687172802557055452482585439618320230553550454043199433358260560431501113515966353989298232635163826924970597631627539998334666416193575543543663652623625002243373580320925517123694776654771338200484952384345100144890892243227581319654403850633306727397408649380612708550653868946497301297086447740034442351348707996990092891772089787348139001709794577875823495168639632453189092075328141856757974371548467320345955514466602517905141545571113122480779153443869924477682132835683516240257876097933257073768059705654480449621828095476498724802179933721224533352703816059670274099839519102264649014669798421585030603617617628079543062649786114384810326321678250733958423026956461787711796449079879520930152657821858709338428550402725614623224600493110359502309894065483887793065493035814039854380091946965717155040917667850007132564648224212163284138079343419875570450418329048320031189114213411324787554375967174293540745774814554938364574807952742141279876129561008850063315936829602278813341307878157355816762655374598761391774642974325998744869027720381573157076210723323081628534987800687408770519806701933453840714964297565512188795679916358711452007060122857567300890213663320798555892813624057326173283730160301765321251172638951809357102698165771050257683217188807207527642639167059883522684723090692072180063760893175601711313698432936334592685932504158239948709877430742443804669867144284318388848937841026234178447670768191523133130920864257194529399708099252739299843592200351568469327385996524041804398729522355984035073573383914194891879540001215885810260055093246651240451007042722088310348811570949369599472192186107290873620634793685555477752081369054248586749464460808898423677069764650610950263307016905259333706542261986064165138377127989098648297747550535344551402177601183009232334229366285368462404443880535935628594570638682414971404893562638564769427964388092924364298277638449647934028968973445760318468620160448611714750635673024596536624513846692578624401797875181676389929374217119228734162570659320233516913108304822461247570908071982931510266262383383646121210451379782543408819080686286800554474624148602578973694547913323074831550372777830554725280492097835864909350150961041478949256165927444268924491037417399785027184542375490418902317246779700718873850234571135083491748044828380186074970976037467909951843507972104458193364249338628590191701465724379335614495153347884147604960866125618596350149097280005274303735966950192306025049542315052169982304916202377456512329187367626628142002518184325429811337681393462712123156558539735761167712417522709574404969268790871345766875230016879072667562545989236751915561860388161282081582974134061212379778783093978948744975707083205933451839502579083216014115396920471157331136758984411799777102340335917810465478754179438818559939106807224149079183290050857365491504260444589535546241320075753402059098542840047467544543688574286454054621169544255167051759651040137707484855961314880132445761298768284126963873334013848252178563266306683725397835524708386855510981095069098403572059483017885820095313353560549408763115049322994456254065535318525587201942505612130207530173269824612429996869864845085667872422130764066372211822848308874927623388508711806323344607086175110503549324905326619783577691211016044008279971943945800863802433655627430684488861008877260742351321225997451224841544684081911224324655880502231482603148248299085290745105394245100781013989009277335217436985410167093990101196193155864100531739219562694431410143246310568577921602623691734522392786281993331143656032911902298588730165937088401903845661580092791706078046429677482985888632019397162590550284213650006406458444968352856647730973710880100565630364554615789421026783414702869001793353748346059119377500919361924744409171617251174269667884076766353880225843610946586656269825782565264814513352696059149102745902174506536778284091721663520810703375916925463486027193822284199735884725908940273720300033151410201114235424212488286442611817417432340731214453357281945271306819462012896532664296315833297935853845959143312468741372070954974601077828914857683215462944794508199650435258744169802752395611438034307600647008525043674545897555107630926734065196472587891489731897033671795075759929443872128383123176490412429712566483673970537666775974125101072578129797835752461542726808062369507505658152262355030234830090023349985901259129391506145047646949031653032906357851052025574388596442036635133886865345919458061991352772008725070129911833333562024840272637807523974691635531014856676977520684919934188574661281664391291236967438182587684123107582239211094221364896054300648964062041730572208621715769667178203948071513634064150407456364603522559464628639433508923378574119493528819001802066386128550987553336300314548730257475683508698468432395256354718456351212368396828575577732215380475519909130653496718957075903651269529655146232281282079466860928298356892188231480481894016442639449042307813798194254490870451957983520171987038070314974200675363926089008677792076822190433363409497357738365425152098784945846275694766452927702555677729359654781715244291160623161142243787402454267919198106834887500956120196873969697193313507987377551286138451240436952005099815729042113562621112657649214979420988956638966173115009506787834333107457197380132276261961445371254225232616599698476542566107702470238090833509110195425031122430643735232171911931436117198131101233175860878940267229287317104834140752972388152862116045106159777834778263488997127930393581622099659495937646602533459619768828011669029288774416024492119628308096816596072234410383523433029166158214401704788732579094567191816966176909683852395005413969689842836007012442096784515360952616853475354914255568648671985352954608897049655282047489494050609324288062481696449069996611294822179947766913862374123623033698505051865345352447912315079404375382006893068405094950837182475033453952777922468426437050401783596143067100224757214641026583673009618050908645961196056545523407833508175086649507631594124845080895167573860127129539697320052237899571954714225270177909155554209491556445325486767757822427929003885341575394391592983061803115556127406182254463386442451466481395453969205897944187566428593997587976059408389036135625971424390923276524797585755174794455530129527459862786333128557038178392020223623540583859325060331128562547827673559043961196570952932087637691877048651571054671735784249305206272711176029003339026393192638363436071389711111974249180807060729935417779669491441625689705819360188168730177402384634700810008212330312583613457881865756406417167541901299977768453797627921899511909852516256273823253575667410607459791941401434173073331600298558797135980828621496309335138732204390630693356024715456587342490613639935864163313294031462910354718042327921659407098748061705717722326654473752421817987328767321665564576608922422335912019175079153244432256108358053225929297951147728474350634248109421977622314131849510395484922344852335506533131874911565985095355709080867221065089944895467521263036792442711256675804428338011348444445543844762885343638668054286404363699722383872920653240910445824245573434905847696544527576092723117318848142939709364056341340443193708541881970483573169649806517915094512993574816237274605044989712712410251986138655098435907129199937437070783680822404489100522210067831093917267155263500944132754890203590016377396658016348993199270373280448513173980572595676370966493795950460882674011504203160311400726279256409676618037840056344929842487427841045916866984240024315499959285318315878799528825926192799166913262747524838126295664416729351268405581371834524084955896251047802651960567057568194750120129011992962863124759574354903126617860224413342342811142529760004697618117208028605536154697219193023893097806934257776999838020152420064854280597774987641410484452166920105656820814330708582750307076272666377454208966521145612905911580067453721863679335899265674452835919202538609619747879227100307452309976725115495523020891548316842325261007486296129900753465323707587505610164461211295766778599552129304156394801315892069834818979409138959000317538782672291058776578422994363523814312149244562325804785290969923763480327404403848427601247690619256380197194363771148348306273540145423997740985795403701733617926637306753872254742643284986650260015073803229049981143249161252381871285029715927926952071519312165153964968101747301001380823553327314594680953626197306061162266465529823118691680464989811634527637854421562701588852624496745507548160650259950955721809358553089999426496905236477908354273621881463006664958956144366977462345258802801078601143170781907048343636722672957160695626013902058674536273491787948919221574964025962681242857369552285661685214566558141185504758287140395158331062421974717985736601818061709627849793375935180515653257517206697184510305945634463583421511408580353041865998882932444049633580397559310985330738801083164399310853229167884812934046263818320045145133350767768167866922735454873425531502725291968497066413989387192002741507735247435339413391310961798509152438825211741086865989047596747311128869109863741902126437949330970710456175737521149652649383021398903399727270687566686109168485789354918732463864941893797150539604465260973707494480239844358241168398285368864469214607751194106758409562255838107882155463345671984096910211465921400769699840984442357209408844452582515734670880572217965486854479971800864068226919535839524818868956500089646306884908968015240875728602231118305955969344134535394773166556691362813861333629499077523439567157141465842514880204328882769204441378770542226638507322228857012028161928827721199067095724074240472918297378337465329963304631584495540003699822252137113162222580841875686424772917485125499999079255612939703349359499674374637413589383678195385920863098500722044096924729995348394742291945413048364475372887715138273729899133033376873784371691327518368808523531965484974397174882521879201662463057936547419729558381929058023801525802064134819077364199617180111871849357130106935191887442547810067536045434667362971824909492440547926852506737975768469766460359786972948699375291278919065259056524692726261359013548074147550335176615613521837331804694894329253561853533340942980963948675843096021889498388675043068316455318984468519323366655032097052354548447423475421245296734217090163940658484420297621111963624982463330462280110531005936756697032283100694410432908023145621815237051562137808383439607571601399270644776733527065792873709070271085018961863720562101420903014380837462444961948628234836091721268993552348980547137077777279767011593930436259792402480739342307842569205785052552908906241177856932705614741725442135152983762528181213329087890974025647518672399212382707575873476044052592296977802057764476576204199315699793829393481555339857790541373571433410747162731170436007273408866476044447643303369106722964929872737270630030406605518192171926958497873098117842087178727285311145785102491865779386578661994093166613673940294879663600605383292893772307614073323029063780156208478785274804600618255916215362635053902710782682299317327205763781125147955878658050349176723955369738007489972842142042877854294008689270547035719664096452674156379833879519507057900320607798005638630776147410753843411110870765654120686366835893784646377499827183423331865340802226448892804039094359843843523400698065258237970636626113670547730420643892418052171189453383578238607925676548876279222818673857763328005233766124511072439966260153425762223266550043945361041517427098790008150426785413410340979720935160458925604675238959731499113675495506102435875760447798986754091283590114217824243412589612892372907443170107374298173748370924708481915275218887571768310580399134437698980871693990905763570833151767152087173360092633944757077715485819864712874720968554549228601438102185526472186678766282839903456298077245374758714591270048092546836647744925722855836723741995906799548529643819616753456347838438925782890423869574818914963864741137298577541498473833677845114067494553600628099533150620008547085295646206521531185749036130065724066939804120625864248342714165596617127093937754234517005600998918061340197215582155197249427688364873515826008252253578885995474826476164029630569695383185536169955248336881239679684017326022184914348912948651518258093913984499152916349519100874696393864145554675505609526714725134072283899184149648999194683830051189646945136280965971975012493660453159458493575445124174865904045369300081232725334314533895378703367511988740115301389653651062464579661076850628433559415120885090965912775757430094873798285087258720738903249033731786468599676285177062928056599664477371332525138422426588827817183824362253843253130938982466607616992097839705690511114519615820455327707532144595711387792922284258514882449425529718012481964708093303901445133358915003943187929273025222338188247088327378644536645806978920777380615079542133884683989310027252188297290255833300771072290720460467608292659421988279688810599428456210113404126694707288159362714709017767622106658868040069628514735570837502828068316658344174899097103458067537536749113394809634276649921644554523580858247511067366083593401715352187920617101126551766302829277322683720914905299869405988831870808289875758893966633961844967190229372847014113038129569937053678845654778356400034263341074408953089812685206788907015379389200203650814907212217607045221427581209028380736123916666510029422071150883353387532617439569635575766465585303663991770911631302696587273657542771520858643243722574512498706515239110206150265751902189007843189508922527152968360100938619312314430424039920034466884678287970580776457001111389258623334486108252145561409587082623030656583109222007709022266892854522310580709756977500029246456856620741486278233438038155737530713314112802601738219823728042265409300923980982027780959531380348637888872514696441848435256638783392770145602275523493497309226655503496378729490349774429565034005717846479526430227946620940406989128800199932026823341307211163616224610506874115818566773254729829899132705280015814269805848931698364651487234402260601280900441993263739274494979178291515129642138666016196203033782276172025955700741073356768993035511972161924505637355112078419086987372517479539526774176720921117155694955064468757994866301935304401564289422529286104363758729004793996483573077069072937397695762994325160416708990449777569067421534080905699139485777377542425529294492912283124759265968521954410857222288746646449361531066669408595239163461848829320533552399321168576010188127573441947047152189651232137033422799235523084701138220555292335453498908922252306695229186300970755585650789529919953984111397796743925794461572339727827881349701318968336414499228628049542787431055057506266971869212016173089887158380834364465581396448506179050242046883261307294397751906860957650189563481079818381458643960992752291999717580493663218172070489901377761825648262938131035480295174068093889432764197288003133668676576225777093384343351960219548781959608994416941853778773326577259398159001616215408756922459929066351018693516314916177515368232173860431012893911046570894319906552031397999582473414831015583379754634655762325655256879613111587008522882337135944947547218930398416837494270555284987030681891798016329412581304296521734427880115888152238976900770607920458750814700939801365026164787156629013798677986031199646132052712991732695721806753480540694944003929525131044420374296797806776356831116635577796014626818173464717155015318234981154223238841318510676808559706928156401424159331278122971456427857541855103658215866918470749416425108956990586474638223544338606020673243743378422179423861735860257211348004479600373793717982854101842610433334555481896075233898148158961026525591282523936174399760467182141987135319052301449922172911639486734240437934317135821479960703676848329473422332823170549000982899825058080634189299006059540838400392284303248756121995959347868089468813849333381046706770692932628104336411862691376519912238484918710781647436317781256909701949129786001730700323388838942962513638658891897863758170665012176296693552714439014846423123012172430605313684085432124716044726834281540862707457458150482672590954378074059584789507635475428504667047556733106724404267604543079179656343858183760273905290883027378675215208016205277259105231283429216040294178775700603340240324018799190014341935779360201031962225585903940474068141442295860459074130097047369023095975012160956169503465196217638109910351891874542725318395189138237503584508058457535133382476074129424903589147035594936648542056219122815344596078146819360410757264154790152731719655734305389763756850609061760790252300575099704530508005380524897622192560482975407710564553013997941720049269828551271134949213046504361761693537200757032389865701714439711200282212239621401819765939469156016018098528817173930019191269610687887201727655503542725031492651474121477342263047700650611998038016793683210408396752147625041829689211816796755499291845871064521223734456256491418620688741930118686509991848166161405546959904652700832960490200406561536259334894069863019549474454441914042246923574712813181624779635850707146157147174993981038828307072206820573207423838128591225888535210912302428373375249573754029168661433285414937358218167789753195794716792634514694159861820162673429419482266581163691847714939798484290397982664547267488066720225080951931396304610453970073886302559729496226342777291816646855653483282956947828081020794892772294791049730933865596189921637415610258418121105769517736048492563030999181252180721618040184405071610312268997136648676835647673640611978704075359368397310352140883770468258605712297175526892081833905701584660829816388091044348743835870498382166117806941043528746222856604360429951381147697517704468327205261971027593169491799833169184056251520906372081457669065105531011641217435206616315884724005593634875645719362079802139799865218704465015532075109943108179224364083663224751943650378282248253328447826423846803758638852646827549986581541876131288470781744401294105586254281693792502710978250944496790488416534106294130008628284860599250300234261664244244238248557906113257128051251944315801192519025135095008816607677540675983494253741917606932920158327849759309287893072241324821129901362658026021904214617906846714358480457689100018606147544554463917645775134624357228292719033583252834997684334598014391368104306308125412967219531862977237246221233413922868137263263765607367852019866544784614728574534420468567234925942378605189360260729907918980987641636850489573307289955922838560010378336259072208360915010117673054118707900928299770847161428622457686286958398100977509724999997402427872565528711643992685635857846940565288184520901469079443051938920412772467696556721176576223224643377723086855026136478137821663894102394094088254879436739496906012273461312395013356147731522654291016002536009752048009227003657423355151243915980925492893317098050839480340142902251319568841312672723298678484847786255674008633560235228287828342345452318465118145088701603905412512363825220799346087546168369938256772792903972890581127103509846264127561914677884578197543659933472855275344937060555185776069230323591149510872773350654905612599307800841747899251176219681100681827904563115541607440483929956028262812222365032473269488671190792187151948130217384671034688185236467224511033630732233408229458614950835936416987969256243686768580579957698891106928703867332948088103464916945118174189838069115922122243177397484192496007510001824227034836842713088389000705927138589822749668742113369078987179879961387041927692086726009725887968991844560997537431264721453711507985535078284430562157077706712222764212638114338286908133415229563698091820010914928516731588262557123691273370405573880494850433873304317485945022452208948179792533108636804967400782477173544444436570135059518986005135431873210238719738795631470451087067419682355280837616593127152298184195966514047711746051951207627515775462104690969582884218761132807409014415646940748863884782270537203870837267711997650391880144696497932819592618071638520793898238944964963590330082183308652214823777225815419867821617512173517779603124147299473034044508004263285094129461751373512910146591079838339458479444999187783181342607015369321445496791918615642761329797822618248151982595103081664793380804027397493393526932639715114750279986812742522514210733687908379256675879897574465195158521739291910315063290819376688473224743433540101434576516145000865483697703793704292005930811857476942690382500719919173366652832165830546602740035453815626913355927068285995944001466134142999689666574605372366501782071653506874248118076340582290078805620041282502646238677232896766299365697599020260176024108873020314566679955633217122641291719649924808907792274120160110162135772299481978168242694997682633182405071762069119889894781780543203672195296607478268877931337977106399734145427238820330850329442891737340819248114878784972637701724457316077389145432180396440588047760906210271613176165822135522336639839321240015183508374271832059624942615293781473910652309240333170896665905903610040378743633124984813194145508705583476271047376887435939897635056265612338419036784644025362259383273000201810241561609322700818095978053471096197301133157407788489231482202012650440460224799562029996229227392965689365122180597884440832031336442227685497353836172781405314314323480654966408758406125949233474474959687369122943046567869754395460923221822644869815880106874410813486051891113696796821306434837760570327795027573891026956579045635997704831412481216480874720065750302577493316861346580908710383845124549041578748988457355732014322686005046113785073245539842887911113193879272077378419846952235810081774344519630405761458371080319254453800323670752672461935627349787494404859724716054802010568994121588486677200083058184463119600675669630276231843848788876496792449073163310509175967145398564265929390384039607849663850324902489726680375820803286231355184258125998918466415327432054201500754994574613500884825127724734482903397120751266674278413530799435610181266990739616558614386202197795659742113910289817325933658423868218215214044535853054600796823249236888906037183154186590923922785776876583749912451415365256023886539851032139515037668310471324723483216789777809355537636154123789185495515891269735934009686597692707817722190517476792768548512300098019472251060271271101355679464058572350499350793370747196742306829671370484759669565481616944242038697520514067847419944985600097057691936255640983860140194699550323120813772201817827486071876189439546839608238051846195159641687372216768643867130656052357055093252330760390221091372780045301936870236801207282575915972812143847353511358837456017743626640540638300452737302410776310058280388814034434052856276722884944282312780165748799361557828184851352745464121318422742456776992711646342370999523962703093422453659596313438139764006496014900719131510838632998463965991036957285079867713759285648184598143488118354901337740291831846771138950539351565603898421234442832528159718459342522111089403140221855063985631984219572410188805503659944119692800027353371618861584511769390557956292977972745229152727955520272142337611505758131176005773857719116598188835706146736031451793293774503667859356971736560786089719350154875731128047967739879253950750894764925414117889788524181968521512200533989663021022754904168363743491473457785173636208344552129842499837897390253651645166852715513585254034839367350998154838327612530223388916152961879482265632804962768287973365474498152031615486313353605027169937710956912473881715917852559162747229018234738223198072494877510818317776977372336364437613949852069175272936931552140591919021841169208427659444114964857349202831811251365793200101612727484906757625736590854126241061227621658862973694375309636766088187829425093915254380622713376094709586698287498010597428261408886101698491480593508736691404972846245183822268683404126837590872385084912583087097625537263840571736729089978187878709211014090051525788825590287907776830868430110774505227494540499485164642050590540331485017288543460602712304600846341662399097302405890926596492560733759584968323537809319783953318455503207896147964503811193400923058073363653950704106015241879562985669484686629633858209403483323616000847223977869457087024065321778897273520551916368547948958092945541921917537395740121244111370977516942895399747594200052462215752079797412001870103102215342902480207217693468341986375181457873191073372568338741049344395228568359955814509144463990216899493525016272338377817589998907445236225600833428516662055669463879224025299189643989723737645374537037975547327468238210384790301185972830331952595946306161352187158489013136500040952400819315701170317807050852863063240119855052918799072270767000818655215685541946712685895457712925604961661076833956949976201471097133600567134036896627001465993357869202279675310164612310211531633608649738927410054928189564226566694491066475792856730717005756406142911536567660665789970534919831392370900577720014581430439268418065524000072461975743323436041568743171977914760021326035804475912467433887134477343929659953219890159315159296179537029427523770349896822039387151405948535845740546069335432999530035942368558764384694775610709788200391768087397368705737451524461597119729887643176598687003847495951136244412557284423209877838205480951402804271878732545215473809417194902846698759836601623263255352884558452781689767404555789102814843941134738897377947693741523444867139477468593247494372117302225624549525733952213749055239630371973458684209402669870388999864695475036114909577953721364125749574173346328865281406204474791713241991078080033721281356962246251656807320601610911991281076439440036068814052422080675420007588936561146349990511304059251584535574743660516165225958948014973431565310797931227516588474005464911693772407910835385507575519246016534345374134815965822246227419614130775345996165145490702568214617206737505407021652931673703406377935937103457842917912730994912737922174397657268743321955159581094571552004417367895073882521135111444611825425822558219374485898338217217436094058850538366788750315653954682484026598674068926418321502405529355731845846218293447498847540048979646341913073876619275389781398950326794412507167138720741680730653906820649897550468252791510359253757652138650805596467710545640567446208230667344906435500420131902165571549202531654805767797722346325780753034568199452058355195354928848830216946246543654192812893087959894881396000969774172144234399156661668139773861337941137292649762429026937865212157514327846974886792621286925510045930313192394687526957874789867599453114912844078064845143807052135952189051293467545760342799973398074739063217254367762180030308468542873784097278292470658282950881547598602118576199429136048448327189021336056291253749753111587449242354390355057233072384415843142513879170974034920245936932598180281272934287662791312320813320934664477402644949987609852705445374701666267095778433178292794890690679083382324023965674383288695346946565664857441124805054836502453343673068978090593556964958729703209061924800971861630520416109963374114601362288850948523247311833414451308273447746705514406108595491265750894728994995972933669519313432695286990525937500101165098664867345973663074666728450985954325795274854611595208153910851263604775236863387006777302875653711658419698064690229314133196929547791402972954636302695109158896514381813497661148298195950192663797574549507443239068313400768501601079996741701838429933540367168156592169882752089972956824654809518909263870165624713269577020857259405497989589445227918963925481143449293044518178742315131948293564007184273314773469164443811426530693400916890154604787580843844131668889411544454346283243729188517845555395700322015309261023256718655502047577726303720941478133917801330138793345111132544924169664369752017576163159927539428028711442540271994084647198762218132757576793489132976770181076099432239340099943166303064125660438142254416906158573372089813735212395692701418901895489556290352518191653234997178088406038625700359751448971298066356475490518648650126896073782397183010673861989194193513856343193808314276367757881766411392753772238815698456783846433416410665057114746805128715248243363374553908466439010763476054355339658821887563592418256490935204168994658980018836611782802401267464239084412500482121131915584232230873149027920967290000796755150431417602456215164370863432322462860797213590140024231496271258385947843939915403879483295961894513217392326764859006921434058965420065361981723675230507980684431740849151473536871137010321660228110930526359649923147402584074775878030686366094557262010327581030804937936448646489616359616426747126861594020388075329951576982563308161474447666354534645900906254946557444086899691104495111249720894186541740864425392168436048007303847642303090243854667119137101233831995843054681895019195233770262273363135671807931821952497072744079786348036602008461966177005353395354488042985875894291861196196817141260584077181567747192578456291921614902550374002016631874972147122398576062879202246376515457992387138920984136091012116263545962177272525593955428948876475230132928074737502625090893149715222532680109617359810422135898078574750093433211328487637504206962175732084026767566092689897762602752342650807721103957453450984910566281624479696500711852285562149406805274045260508198614126307354136841918855452796441663083137992419460413071145947200838930124010390723620878265069543151775874216953538503844767726868338736964938505039008579038488345932253694166070627633118465204227809687318484231249278709280044177076732506876422355549462349502992608859028662149223466041564722100176766049794333973101756937751087113652851467946417035539680643810636119148012425071200107420892565621930517340484581018988029179238077569917873410364405775413574799506403361915380953070360825555709966353496847362651843918076515540600922365241415205919976963706833406080949995206908667459481940122494193453092136546955842794899083676451151881156328079930916249627102424274892355484107247868729010816930624746495983799172639121752158275789668978440006830934426820817140336044993285173179095922561675028145699237793998466767103587093722535712409589998527917927927022622097750165653477141717901857688797098515202255365541166289215201851367510607593668746787582463875286413964218652775071863331645107904268458696736278812746526552629301379097320159558353240279643597995911557315991979872635483173420155565764997178615189982857747133289119015444654983527410659920756329731108749099045442240172823801853791815615076976337012081627578514291063576388128104667030251932555425993208574672738854838744528309003470717492863966902692573011033230831970892311325152371580218383567208882611549951020858685655868627662729917113752618306310246062825945849894477230579726473242769309068251535430294847203063594598111648703228531893974015400728968663186262577414517411561567283575445225600140308858120799102220013989796019301986067414836651006273605558680955191078841069557723888952015001539141715946892037628911014748097268456624821377637681020529819437072165554968193350352666635587428414084604971796642834903971951918607111394538065464468159159846669874111858484547676093226256027531258290765037630670688569017824169887261631584917002567954309105958087779086639124053262826587469714858151294986407744264240847307062704279937149869149000390017277870603506152498857548074954276960625734336052474127043840405526502445230492954615107740132033385514055338151970244884561725954959318000371020043555828156380868212450065696579332192717695858659474240409056682835099416738349608991205280180475242018177948602603921190208515575714896059652971774924970443465105037812812045822083488727820214595205042937837469264126325366196289800956455712534973188874342994463432476342032582861039152199807222030351682454003550901665566354358580987399877258982857447184997662929282492691804955989161914410884498392399780295341318249718097046421737588574568691442306453601700679771407782385916467191971469957560512165376495728147510258182326521058783429023216312107203180425475254284819829168101317949845509319214275706450028628155193009710676706244244256737981762773513486928004140359848439255742020985690896929652189434564469214780102994873701507179633147105897701326087722348926228236059038573535832691854694104762908587313029940827703373614515924792164915656367812696596674918234596550726580519024960145440144650978194447834169001804146407922320943576317213184023170084587003761643913564903539204255373737082445475652157900604899571983566633733561172458252783483194854403273589595778050145583573962744773303984169991583487057285608365280615227276919145459631732077905920202030387705706218145999079154189408982458921720742626091096030519692532338589147200846396996329177819275136989980363209519078671223397064207867353567601317394933768265717082642293193373191850730016621950574865728643765134849270778724420859974849023687921247050907976007675118731097682449678296485094195105848760105559723783989758588857899895456132475469108672148785467065736310523744539660119292485387522385607309022292367878540536497890675434213835547764567080429529512036133495354906743651083314549899343157725546379196642886839152503398089124587583928194888557440490948588749909588203223079956066615814861318876306895549627193399720146629427525105554653573114156719174296069416954874723475425784004566703658013130344179410303675723711314278027148448970354691227191718525615902403291536937962366258497294748361898674515449597666765855888759986782452754625393257205975204663248783693417556241441220985365535554441166376976616867205100543182721598607926132999998052146668375673642449207372977838461673182085753868775801290485198474374344110271275773864261662703752711415916815884533026849696778245110076930336830581831942608295053940811588522185240666054295975816694656702421874246680418264528400595402847100220546121800415798728537539385909505865745147843627419186998867982696265756911372157323540826534992666782209636229308375253585967841233707569606405802012388040368225308215292530868880427359527791550597524720330107896225448903642066961053632512560283190669489090408609897808336245546154389239015013754531685480031529170326992887460101702610232440689746074183553577499625978617467496782538365531421272943478458573047405428807680579775140156289380705941086810306167659512144527107576697091132888682497885937685826484669774076445252145401294649653964656495556196948042420939525611634241773185631140593676284424060389869531323897927896268260616804103836187482699381241456886637098227077422399406734253600897606763236755825105978766011774106894927260010738055228802467247453151091959114154651725466628586484060006207481535649344809503619103923493028540384546737894937608350458795255715462458831645052954311556026033838139295885123424653676612825806470678343100564105653186694204203432423401576154640697763915413429190013128800450222922445114331037543390035681962956598613197331130394809209369898308894899973952736230337332052039421859071880097155811032031264712230663407811509721336911617360961858906109092267912723001150290406813734157535778165707858791742206695872306633726973715330925257770532205982052694217537303013224426093854803367019200957747782853046590006492393155110982055581955754671106148540879984875979895638255489598965694932171208656081487205155299633325598245784024538441049146003223948105542418923939643937246391869317966581325963413735544173765094860103626717802894892088721623167510394886488856320611209272241420265566524659118025352939129212124427570456538412537358494506171738873424532101544235261819425717878621325413723275221468459373592411612553560048970672624483384831498250231157584453932692844456747712624705705906844632501673806008449779135702599414000085381129088605400294073749060800401648340332409423391076733190045723063856800199833941815693590120564645674505305159954364498739241154304893590323185857640084338669979203020831089319391688541387631712839969150562936987102612152818433575578088009646644869211808979594483181197098377005828614597615615483554817323694548001370683875378242978763910915841762762044508461873770830422190923307090190806031660427621737135507663411252660485846371070127258467474240002553861072786782350699070226461123542349538273130580368184873860005410276013585786345534301895792981735869953137657941372711487933212810954572230148507123134349835128378176785972024042864822073897785988617475810730686410552666702758073101934356285445613460445345070580623971530815158777111198690040269058099899247711119329255175579323168369371248411961515790617651090301299386482716067227751030809617175175318522551573377134840170583954953318067117332772459580458244763486621171130668483974401560984276246041511632245001846392795663576176746014762836178856750423261851362980554545314132605882113556585474979990949851101181703872409722742005566263342619568511392061851791384897817072025926317946017121969137087797842144039120416472167511624045603485857223156982207944454329279614137249360401004254985506852042200089383729667846005583327433703321744889163322733839666795971556933845443129679028815278619617728396615624425807372765487006273047763837237992740411555266466685835686725845511115117378686363263083512582588313164569337646775672872598304241497655265629837643842637554019040015406599424280063267847067192140235042727449523738580031488871447217571859367463571582397600708545130832958594698468184512613090631271926791009215911041596001627459853905676486466319805888131242128479115759689414434153606079552054535171624111072104786378422005990243804669363052299921225107837725238466402894958428994333051103760547605783650932376752652916748712624513767884035747303075100715569291242034367480727637645320842706919595661783277216738082980339339799137661714215451475562105713985587869567286252948545215888522125065641723157411199019143639920768351329228304300362986822160182570125804518171549917312626771993145011433134604003727555236047793172104726223438380918622924502453923367241228370878079887332839212729971657727204143770382788846932736583601596192914505345213345947958457941473303805212807368860564120503251726545119457216012796088177959081787499005393832311241283840971249071925198590220823846959394920189995993845327476889430820967906692209917245913976992006371654215603626986651080563355362368706374006320469900271523987465045951083310154135486298239259285164563711193765658479723439525019212354853894835734321420298812418143113054926562640311572925342686656238422876441799713227244522258453881413580617711226499291243779589762471837751236782210555051467384169786201327054630446345709796142398718695639301480651713318800901464139384748377796242382881781639250339566741943456836638111409511231406669181571722693484573498613776388265828118758708575984215278758593030200719695785406611186352835138379385499006683793380348680901116180342770141075856859485346494684595314696416274780896303857463645098675691764337068143767980137690660122833336835451212113892811569139276479411345133100103783989306345372655199435142081296107740975424309795851642880431111785310052884409081374366720855245890572100655474068479207941707441595591645394980042530317589466443480384083950235823131719828049269779707220085277843660234830886437908341584753398342515492630349835619098875132268282411290643959125147855757322995666327511367575465696820648388626106711065408892149469321083626791044735562087385065367213809907390436601618439652180915679494692233866741090828434279544036886242446480322064642136788200986967820607302766830362239865248143730507661361061885584873735942989371431008803477247047571981804448914659258495731923238533927719897091812283555487935906949581524728792959460780936738774907625928369632148544741096560513060156650926284434919293762259265342342326676678306354395892186948883871682574535139355215641246080673104611572544911548666916258957687535128622478086337372418137947788274072364422815855678583722595445588034499342788646692830340264644761018161724977515843490247324240250638605940199277549589146613677781056031635324166763647324705941482573764338280623529167248974497779730641869756778046286946239513199322183035033499319918088039205392249728941664578824348241509490900012995348630473108448195906094380601536932172074301458944755904185386839894684499675707758253919033297979242364436015114138648339411412022626775960734853715427374247113102547540193963464688685953817416830341474026876281365140447842386271566944269271706142009781601084252239397489554594769322062028545073923615807165312215515975568232871359797451859956969301482233597596101791637111027222571009902982044424965946682809639462747663366994379009045480463691762477821110740801080419397708970130893440708890106894486933566702631588776233153716181955587893599924990752188512457368873709226726366566458903292681763791650832881473267003766716195690340640289724489424556469669870839830788299486517420480427358150456889163069225533459448805454046319649720772387034759339799496252423488749422212330029623694902469272923183030325018182158633708861623207577338980481443329315805993181014787062652372623367686118753811716546853505996251547655189098467679990887499553820422731684940161880319434060027028081461830959776684687703126674194794457715149706078627470433274412221646716060379430245047404162541580985929561986673473963354653392193015566558266436443957359262828646628609815348133651246239711502901590112635096601832212061382709722273069026004551304400193297680849391109177641720936971419549544028284473787870643320935501503558030016114499212843271475950320195729169576345748022509168256544009539104109124128327245612311310005897308214510878970173901432696453686854300463308757784510594695725954664252768567148315618239556269449245976859717388638157465031333611775435634580779607523809703999559458926124904131519904533464398889043387063436272943731655006886749477299462509372312989892778934165530845411470775426165675170227989843938776247175756519090770751458335866199923507912521201204229289239842266012796960284544512814791423235080322065774789314270219251664568089270692035444185545604918173136568284498081563717284803199194851969434265540535330084300461471924031234831373773522144980968075854892859549794573926273053914184414550141054063207206543030825816962728575848041181707705938011274720806741549168601129182165037995558286691544369327039876879991456578148917635503563519140990948107772111819915056489967940037958890636397315878657688787276220954079735658648213823780958323010468443156322864836397236632211169291690114514064674711912118796429974008090399493255110100228733962692987544916744886586918713616670105054296632690529803184622722927882514933118923460419043513109749440550532535289053234723142158242666040550396332501948118456870168066260291189534290068000102826354517618982603624425328998941855858716226049950251910821866376460759663536557624758331618635373067206403821758555030474989848948664948167935634627297666017259825907822233842251631152050518481075778390539802209875277045083625473363682117426560061937817981690106896012921017018316859652466394444676895207251348539988842352395224747908742990308293540401441220845944185704201717320014887200640312960170994372347724274399814278447499620108656079136894174092947063601687875579236984534644268478305336974766390275439574618495123319939863651387794901748734459587217093276352183030694819715296072012799836239044955132982915606954923048084930663934154359570026726858708551374240815642202889928437862773220840626023942651135536575077399352670614653976355300529165293220602828930266201990380394405042852319581836770399166523183380488859008133729432512308787492579213182687964211495820091156507950779332544645243860656466105293326714508651631777696081051961039816788525584080683618033990968752770378121651694849724559247852197203275723568161891945906049013455013863144702865370878816857958807632224743446330033585212026176837507144145790040535558243867357192228765445254918653762569611867644054060367781662319058031268714144115932117224591225113392174065085943512164956592879500123800881891004690051005740179672411546018626945934182962257693251881418363401732328131177989120957870953773526386668118079562442807990023698835650861962817642680139548891609282091370034544673592896217750290114807584480198189856978989349878625690421424820871496467433817295068093145023703705402460508213190845801895162617025031790613885624307075222923194942997057841425416565151289447645935347775709066310850931510231923484925346803015653857100616093778519440731597678611341904281130088664618767581164726351522759505146912662461561451642697410319021284248190049374836946625147657168436383507474502180377742587379128857984479898146172156038356499105582462475883738232705611991417067437778460528120416909395264968712814756331627411440126362259785225647196312298877046131307309057879355100889087982661550410749608994720954846869376545832947989867435568773930849922173725942523977730316394806393411742893894571746462999468281247931142686406800429326354272424215007432017242714844713850371412584250680908910551803715760464650371130726292102496445024558393014424716966323916506383566767609548371404150466500334247049924633638935004400702277465358814586030232967253615165976645772894569870482339449911676129796263905430513889011225387631084719886613114011651505498615559400306291274706123228967135876870721672860600990140496285478159635758073096460058875469493425777310213355348265184498608779012228465363874914452923506639728892970340086176745730957139152403310364863393842172327188819279655960075785681509614220440957086891835911764752739799065064746008472340553811618482546978464092577345073481335289733399820572935791406875543717645904135969999031715765089051809255185900272349530735744649043730954927914246423134404808004497403673239932124878040660297903146456355601539851570870436200323489945949523241177683621997358894503940914066674318841773280308670206410776777871279446763133906480917079875677078885215585975050532879758270304606757783723244549849005131689247222987569524466173370175105436832837749645342317278040420093716282627571614951573095765788343658122946226732001673374970826490613832517007829869272901737461272081109921222723960589524069166685179438976673654029749970665848199840174224514760751899112496364664093439425622675632323078552431278730744278106914003204035157434771884955913519163209568783125509855798252912051282553838825445417947933125309506137558970834035311525396515864368311225953667932434934196618394618343370421145263249735213295634646024979574898974431609835527418186233306600779486926702981070718539571587387684889160772710116643134825062390817320643953252718733455320918066878951896910388260746968359216167964864510676734011508208504864468445656252227700153141241491799939920839747051133712247190101002838474894373935716944411170998951199403885577607999236256012636489127257425765202164440445954380565135251666226473077610088265275909681806557958530127366266758415513401017879382050420668692177574444438074747390379069074757826186542109327980065108216185545582334083887882750848834253117754740745982997376923954458614098931896409181970105742283229709622946118072951655195857271231743353681704106706040274904470321943947097281427789623273669048915425908460265792993102177669966752349405246256363865503409060182818268938485344203500181179669113242441945213691295933549663414115770984236614109660148630672333704244668221873072648244761946243088736307929569767892094335100154659869712512389456677869874179074389682116443369368793715909495983456216077832885189332927438810150537227544031577130762887305724487688974628400333794765912951774848016828415721175002283876554584441234379209824421474089085260894410166551432896119419391768158865891990953794426775872407200802745665463825615220319922466533807254801707444753987824167995350255079425804435983376800453463722127653146839774644471643955418223810145279127753188623971956175187626708103387939388092171020766338793615858600724311902699501172981006296171024039606296950461122275349224476152495096568987301981277609153655611565932983128965373537493835260367188797619037070954592216399450953454403958932070223040883160062241787278880229398314565749881561837251082131850850535004971193856011501361585621251590165158311618888779952469873891907697474798840649333048661804799966088470731223912219299238280114741036154306426484265988012471133534118194438435937062000673509813251968285559411060108417597853951707580990515780792057247960907088091865970214374739702159432908906267905562069797331844558366849859019013651698165673276400073155078420858842803139152179313461472730716022923686824081942781480402205187248967171612758485273933294367351947276984081005091162547406294273616623916695279882824351650793501801544695674487914733462882284552769584475800107319425848813141983383892493683572877888153942605214474706983088233696300022986269515770078104319099472119457024293721692593673302461356464883199321580103088630893750898628530823847006752629082995766428559287358173715969537728428440839286394417947360169593592476107142917386161362256126805257230431680621892303408681285278083170147684900833920230289385033534293359172636374665821129867178754952835456303692023423467042481168661610031745350714817934905321959760837931437859503569425265135922421192981706188917809465831721145623172231842275212648947619342416711539544764629707925177710990688729561594852359864861814973739109417023711321462816782261753665077406454659075164556950895009083654271025318196248496674768390066063375721464145364937592247330152859874188633028822109102196012202171162395511559647023034277416115488752814481042333112461384233918306386185199750116447624575013146499290520390344200223711006218564243087632428387822174003636923682271771732186843345864776522157316990420032506185169191338202922650123390037597349880674700850107302490024471979720175766002423538822425208178280012881958521716864687187859664325747934964729742235488118363416022245227094356417528998489548913368181737605386087639999993839255550974356981098906067480534048979136850137799621040786778496597086118934383294912109330162851100273362051641802957460876253562386273676012755806041015859463408516735556470592351014817066951747472498464130032533069095581170758690149019257594440996404224104250543097016226698062909672829923428829840480506864272259422900289606986284325978003586200449567168319440400832712202662618991007220631643723750304869107961926036975473565273906309359056417703535830492423620030438607769933959751292492124024737229779498082986239352813486892147893815813429425671816869132803355419396351365779904918414667821802557320953284126762854580193038024268954713531122527809504029674215721270387448486065529513684453025594869784904192397393662645658797228080018533001866225161331065770065426910445754615331953241477445318093298725208604666006510175545653618854906276500290186267707580097628555551842580176767830293490898046934808977280643871951986367097537295014775568280068212821619775705041489036751694794018061007839793786656170418275745204196518185846747843334484875757185843703898206897764279863589887266031938279619460643783880834140883127590350853512888050073430240351808662225843140600079549512373701613340756315401248999288122960650226230651713747059549928399438167936342333744833164804296300059899349278094402783069741037002738445805465585763125776211253651929674898298159964389168885605706515593348009172112034398900771286867738522063587127380697041627640972755460350317537186769307224886359052905690378240380987317538458239411610422884814524640700258157023399178302725164899467876513221895940622597210930438543447180764388810444745261074663296023050437679222348296421142070344450528545600414468164885366799413403603094919767765443919692643604821697549881350495818477440421110053655772908651557872640404375405914949742736642726951018716549180753995565015332696884208970505817549642489456066736679350103975109843885789920467732256212165005658474042916735083466895796059876100503123569261193866421057064866334225078622695221769214687256029020403131058332245172614151304988472359148029979515431382276764133826232294414837891070057148464014821496119420854436653572663028978057471318978405955085921330255673087125756395021762961781079894720334492098885328776483328018570170564797630799209802771734344248553470041185386331528736768852735784061869546058068539377860590584149487855869209316879818223647149974011308744360992998262974839429305192327341320189591009363952394176509339259789270142518606550232139931687314997851354363977239411358278427291490506879921877524731739844830273347592935742511883376807346698065576695637433574344418556938031281346918753879751016294809500204326257970201074497851104860521345713343283879194958846102633073160064375144452081058607648526369483699346172639885230094451620433256230097188137689564748502145158532723103433986895243935931731345155489800221276769676490211586085302363113361289415275423406133294126469104331796332102814929244722680915922411208148635712792950554404131499522586092883360445437026714026083341445466441871747590731414046164040197499001014316653214251344204355495061582512635960840368112382485724577636070635721086127359060919195925705312293214934732580806052323281960256323497574986429455969675706419245666012104389435424955309146218333258676377403420315417822201126126529325893169576846105781399194525699679844076494899039796898762214302362990214244380228770005683295520228452591283819713119587247160601826955322914657001258122151176546268748155916643074581773124990271886796076334881859165549870553191733087579221450951706025874565687578449727268629592265379057903162375122492067664533438382776465971523316254189708617917571204488614625937432605062508189168394309354448263461313282763747790456017878013893511903348471783456924104488189395984227714581023262669928735697814237466542042393260504912329626862292491813524272535765472366503195217094260088334756369010272799262538197613767168449847653253131354611623550042832623123911783697344448212190468999029866025187577814892110877625521270813033814632054419608286026856991884208609421855732031299777354590528184748705514448791519582947224166383007337716160772225305730606077285791213258346075920037555878809197757998105990375319085213615794503323954130526032626116522031176688046028416229426853000404220520646730322908484693454101598417188131175226187833032453969770848062439734425936106149806613310708046628581730652915890691949524880058320884724455772881116035375152557724134878972049602736538166346456053749780256603149824976539343599763751880826004426745956353478988370824524505660082359482639567442921551550624951104806121784582611789465084225473316637947454410462975323045344537614582960474475476434936179090197134913262886536387533169619157648388255717286015542496292861529434223460210361503427151011149268364533750965336754592436221611906508406508882552777154997637823018169712195773042512524865817991767861746715142528646584743625730791672423545278203501425685334996177762683763925092182664831438002286542880387757969937841823428681202427848492322509613895520371500610830153770903616302065684962496376967872453215330977938498475927626214446862102625281644438306432627749810507074361209653763067178247603059195800996622661105129585847295834231489439154598134594526551102868546867319929599380506257068662801701545592600094139184260416548883946546045991712497969353100541619283642200214336420459374465375821755809401898054980687684701440935874723029036122430333696838117488406258780494778290791875154420990189417785580883126897768753126175431870713230509051200106203981399191228565569763267789913680300423209155483758326540940229464103258779558428258413570204114835317016421442119051772993260840886446993235975557678561891104782754515147078353438751281845573028670117550107122485399357109724054767231830138685688259132679988030224547167381033247224509181306481438373425628472333234071057747030502883320835849134374361273474684514141762356015732175859088246947960848984593763615335068086662595634278945304426431421459669410606256442135167981368364181353509406226333146935044243599935627156797547984227929593949804563555628741877843172901835226145009906781894933910494944876657843262234732352898996506143253424182875743402764730662094712287153579446971040637569603949457371559749432399371941416862808978515880058406551201866936311215514928479056438712707787671135653716537652455239180382517508375272893832469689519706151148848795022424878171713619684188775220009695554047492459324050861856685120104092415180560634537087617301272610223833787478751367602718310624136304749717876820320952433662664690241305232338616765325484467024889150418024282813434896479573326234853291225272280293068756494667177107703077471286361363982281895852943298229768128193682227842859569020949927809693149868273203589263383821579108120818289380268679649909508535197019209377974172145151115741340827390273564326007154271911260534883262135302311625470966848611514733611430981857287331997539459529295835685958310027644002740705939986574291411668646255420292307124633490087529703786849832018131925428386965544548924055198239631916205432950181153216473351808563795491127675161976619972995367575553043702992003787334288673898304403948083898436420328080390509678057103654303484987876103376149300013061352455472164958723182937636646140441728853356093227394114011746566710010153854207546273740880803463067773336362552703297027689269007469401076416815871453872398273398130901317221952240387318279812104026252940250332823998435547412223130275714437964250919292772139137828779615918264268018607256524198597226687751690644224888898863827493248399381650169257840507761419313409571207107515121160423109258670790181002237966560645523159184087192505253684794405908615566467430815282303631274169994409240857137408101272808914201308505226338228414728764497724315264862294006837896534350048901768540740172676880647192242667241667270841368826442344814056704579891488875242244121219253633720031312646063021714811836343575427835636718985394377673503150136358638582786947679822728016619467561134572613397680705945561448929809536773814482053007137634884885884309318508156002246843821536815164666941422171269594044705669320181991160748659112052729306631949253798383619245971272762376179816389433418548578963485850732089076545479026817555074984044997121981439988281803661848365342229998360461240210413396562278749417028537702038310895815711403540177335899931365230025315006667936822465242511295362662228455062915490398724627987960499868684148890960642968650664734860013945302910284056058761197847622358777789983750895808771980479106650244228136339535826200993169838537584259515092651353096287339426485378224734968837442768800261096323026746275818775884585025505741006933109834771412153562760623392392203943442280446785911955028387638920344825857139007785812291689523617632522833661084647259943227993715592694120476951437738246102439119950539894690910450991181003441665010226342391117376459566384992667537126719846327407930170377421883827883893035626082008714014859300657615958605849015344683750630549640917579528910579514446357505730854234742996752175326766568709541053896869532504728124376547013273004191211839770811191611897727872842505288305414820661853005429046382691761288064123006399932114974078806176673431278505902977030839273470685609959301574787829399669769536611298108558501090501608793060477329158068247835600412401168418023878896688516668951674354418745656493796524392335638342753113935253570440465517729947973792693852976966126807293684951197363987249566646698460586017718332698301271469605636623843720744839448985910116171259574209049855798449191807394222128558724130095406185847885514193014482826271682263595404932434186457687149285401078544711394105955115049398246550509404471706602962176367540530319680124915824833437581349101459689379007403903831898538202493027083902612627985434244889635863823646900844036211472291941465164523913439325338242769110757485986800341299412167022395537103323919707835245067379898881895676231000667740630547176316737022424232951521171481069393062147364704155772194474251203174416567972595423698483057682458648143251113071247548312449865812751556504652869075447029546462460253475938640849805048634092529073594147044217826616812888988212170866991415811038143794210847549233635592725788765297494041525036242134219140487704049047238017194945223004478717202407518006613963021764158144741842041286441682912608096193441758764365461681928554939135184912448927651239652429335662349725374419953819193982992890938305387664695716829925001972119750541869720049081218875357354257465491111021365367583646308230843559930499917640889338429619964666161357300655042049390219260058076559616093537322196746411154786275773152504979821582740506159935166554739084211696453563421756954905454882046967896591404409615301945908508598569973572668785949300737002402172060065017792983129032615164445056120625925212693376651477943678548891013816190772976016193198604779075697022207449677012156664830649943078740575712839640525670178430538134039043534344146689660925341191989977101277127433818502401996198202320592195935944113102747633752072097156176616801798682244002908177415987120370921023253037450549957546346090581570733427023447275845377337941735810091423192279035810481033840307995309339714413930792836421468360971530251833287562199644612099023697471057859458763809096529996829499253583470872356288436761727057091696254732953142251231228242882826369586251324527321708818949111858656114934584334456544644730005075865253849151933434288335162135744777249417804661237272450297829769991803066258964088334096046362381300719537466777494367260926094326548522047902903187539407344275188602366386910294448258361547216839949442727703613042728969069958954739600026056191997892248335975397409681527162345210264986819024362496693535445167058019747023030503256583802620117000887671768704943577899979230604474975314111211234051844912478898310781500184430469623021108108145153297653911806603513616070937503062849655739381671033017178666011742423896894516672466440601379545815455066803912549125161469607554088893993642716938448549580173504258901128981681507400577213608046333828427409355818630313621558019115315960464662688199613997006367556719413197230823594599747563144608598144943798800256708647515955067130231432331973492257484024019041263668798432092964011531311817108261476316511594749274226428670573235104034634529360683344642924221513011228809290351316767442688088336854058842204497299002163780134336922258890128235561001159686142837980453651596833179405193376709944384058940356572350383466251686012333389534544701629686935426522302403060956401243458022621914200523788998707971665745516701332545265019042515344034692823137878605117175563201368134815759936826129969236348731189416193856830885251082381261243138141979322226881492581348738673503788236835845919537284336249300892741755677737384237399346416959291402187027081337100142697535904786720200189157673778646902676725480179384748851616810197286143862620220415513219582467389412326510449863781789824223872849655067739239962689227959230558944659806125688670373931612019100277909275787151485848058501186570840764426924493680077917003065527282303445055676359064080775403348523559555077042894437715018411593299290546666623962075592014768518091036826343742726321669055033228841809631025267945778738303558828241596138805922093875345370108106555314867772420979895599584247889455513242194443055406307918634662173385318134987098853925794859270083975629724599609594665353004173665932879837270906846064990760425563249096995482522095847353990563038426230362803798022744620544805141384043575182871423265158944554412294099261542393692298251414453796289085447399524542191476168767424236343471731258169136758611265128431217309852255292246241968559989193891432389764259503345340688366169840230155368149020520412702375237567089140440101663978776190116731264577095657399822089085806066085655850683351914854616826534123762055108565780304936303007218186225793153590912452026915047325566604750561757226682199800004176740930160116253770809948562456942441635205749966344280202882110874943085095884513910072165787553359370022926925160794584734778777361406401404734002755324018375161747995950484648028824671841394605765720050900742763292760601473517447593111285340922531802273097004290691925368198944661500250891798159075356064739287107861607136745449114684136193904374434210961120099854262455554346525395026400131464949086512068327892354658728352922097950353727681212784049139209091258237815287687234853797439195809888416368194673868156589715623254465368424597557409605470975997145568272847994127374267612080861988162948834363824991410372868103121140147456739975920564869220560594121692810630809861189874709738474262173219985391480916610353471006581735521294958847134412944886238214263994795842426566372748312393318435727682945867883665054370887882190533900707171502552325737387749554479602502630758252845322162717989781149508700943841112692453295273234438862903157098674703213858136761439557643436297843862089171055293385349723809470012409211853803199400664965261703895626193765513352069266360199574333567987506949500866523583909706823179143221502770352533835050478376487861570862738204857015121635808887586883817122704669626548844993197184319086450519701271194451847211166410609592067765572531168330851276490947957081348576132936464329908033642690101713194147708683028964660956220628486431693103281751057536829209870589163307529763196480190746995616534258337186263597145525220031217393495148265827929485665288771578508052745306183597348479689207272748111847270242931619170344137076126508310194794064790429839119234932562948398137564906499496359585775996300290034904415388270499652538942251293883383117843751701906198193953747139073622383627932814540661742783877903149126806167631014126225730268907946613166896811026843973383363213082467970423797579885265178036300189515956210507057958158423778960286434990774463984967977811026474067059792915732331461782702784135180776399922631310127701305851665980070615250949206988374602147798465746591990663619495217073154940666843675531655802425757819913544372855116978436177232902964988345714145327715173617756802589575256739891363769643828875387231586144141974844087307715953090301636944124624497057757727108050835853347190926103332352602434497965732961703295114145349114048476550960420380445364081610885601867740958265780450833694944786049044709933316156333027425369266092110397875878003895996877140089135657333714596103952046901382818162471145574196193127007451162188587049423199336675480576182410043112195690051992735164332073219562596997826237505836537393646966789607680970737739183909010106152383962570828410717457237905122708886043835590502151502021877804722271259024664105173009199037380005271544402279392604082413548560146472889000173168591683942532219336204670749933735946717552800833063789331688518896196149990893685825222314958344380392418207373961678111475690316387536781777445839984717401902092457331512802998073771218320026665676429687441580979564814928175899608548030349514972204071246304901030906168344268743646916157483350995009974385778429739152180672058177870269677462807971357300271813695051602782834012364026980100858032773243266828415406999682315719778471907697737651311530243763933904505207313980369055644176322135387802151633503684567730545269980010935837199182202165902693948781119509086125665498253745273501609974114443723890008983348550247424454578947962454543211901998532225687210238577102923736932470427832385386419243112027968627436523231683390941586028328193946278997593736826972374348968247071810647434543676104455839065073804571604272579813991731364816625899702328972748513352373285768149927713143369324493298070520271314807047276569530422616510747461907051635029165031410093721165362741877179126681638172152817124737043540294492142561772993615527055063512814936121209770256010309627852292227374522154021485279787347354448585313836530940319757159044374157085522758029283124786154395501406532472882640405519090058578606701866811178479084453488176351721128528073054595334956203882734054084980799104127702929283007527193044404101268421988633368032743948894212799788455812476541003546203524437982369245873322691057511406981229236512363277283352235642635373412985834948866084204650061125088302080764663916575848811765803783974184939075700474700926937200392820025425782107466766986445603752763550475892621940292300790387766874027787434303171396027663124561880987137826848060115002444239177622776511089553228088401546754549020801513180693947632925304114808746129714127251907995113067474150917733472891799061432459410776162938221326140206685816582154103450462692176749562049338815801852997093976932621309617963436580660143918690139695012600522149767699144382488969161681980770946965739064691153475561824741402134019928142669544961665069910078825711889357129039336067414783636818353022303119760193663370705119905579370727662052948129667922365591306826916826487329645906414643658329635808938701391286117515064749142464923632310428753905923730884411844823623799970738961746744141270464875726782251637848978078381891902382014014497040246845370938461084313988480128048737444987790938526646456157717345398704166488190419167002067620188745094772048021245289738295733344803490473110224909384601454061923879491595308618384419153159320043455904399229248905376326453594129366469234926223878779916111127020196413492885616615049573512558652633259229244459769572349099176409755854255699129894367911404674752100379418621524596162507173223826672670569755937664445240189170006752380138099698353467513383751551042310996879024878303528850401758005494215045289066808386979410634794668281707771617946560209056439073352032042879473777648963460237195822369721605534293246725265818717498830081862662901179282220931286611599222221183412519603890018055766723968212894534608643236292581068276834229784516216944750672079396992647358430892779615391922904379788575356033870969619909786109098767562966522220014862535775254411751220708073405985504755312906796038101168830505509652603171748986903688603532336774262085096147129581109721924143773031689638520831259579572703336170094791101921623792277414821999314954103586253340154525781265125065189310986629816599062565722341017506921700896784262956692080165636030828806022407947876999888685070837124634733394429570905025652420818875449253521281482566235100990586008195850689164747308988982796503599471280357199363611773827080183288812657881109085462677843401731518875013295118826740890949137353885746790858499403366261450216021986583712417917297502258101205122858413214056732379199821153741649627737151871303408657795981105916024026799250097175117960894898801280493782026059347836850446470939023171226247390406319356613613774992084051771180987420768758324062818042173881916376310992845972490896263547041784612224648180498314927812325942045218630985807214564080178476603025696074635781529699599357014258999795827115356098205543917309660240288790033796316717281333114675772342834241190798805879740253955022968588694176049965934030981711969121017750727278410671723609232908757146783074797799489673018555108304280943714775846890497182869641333940064853527706231300591760090736974304843196852918324089158714976990984696775685340378682342851400242873282864265344581144661816498352222962861889486658717792926593337453554849924899837600136322534580024959630593466050794653227925988157980452443794897822578740694671655775746709482135926466163215646761659031881354305969951535948505919181319600124100922161154156571737571281807366960385980222945102115613845830501188607901637904184656335812447494033571750809884263813336352887268306970553147332182935933655822415006870010978252086625316074379002922665988018153769006419510461512199650288919446109395132728093545867690907383262613113256217185714240276678815869625321643841508653653030125342764078948917718385994268827984167857001348686113451110722986489395643921012253046198552550769274705433170585584938755815746795842968124085221192810068384107473393872227806595083017473061177599126208674651635222376787166801837301453299662017598566614091418100835822674865708684307588854515377719194276413838181657982511157792157824472352314372643821901354874146860615515974083869055503225116129752798870408117074528689249372086663726912212849490228327923033372969476890646691788988565798797686864300331461306093298512198003463883062348141903680148453808617737203124621768620191499770017637548929454214149144544776643877997549797853351153097297906174942557792556700787517172220576732935613613050758069269392705632549260638723292269169181233242963759989394971965481968669949530442355836281339904815194280611301498909248067575896190509557944641013142247141932013834897524378172450803431635056993486084533647216261210761012306547180300264063437997542118924907176802439595685700460811297909546549803303118338582704382841200202460659001466642667532295596170016562283502384224902587711865165580668917935832281379780360121082096524830503082315340926615403791913608219722518307435363049364258550480219516227504827408725982637720420629629110847259400542813172666767610102515105188739844630507322351126630852064841922128747929349913075609622815122563042172671119374880004999969630021968406247755920680503578127053703317386780015741793983247306710852110745189197462959380766937415288610632546427573165986494756793742774273732635669230271383379715582090235840072689998259481657623109640820097895070327582735459051266233628377992959703923518577590415558642400091389460362454328724183846720132190812307272929795098840996153122478284863207256535614665139550566216859468936776347101745005233872621865166971988968048352874742811720057298680907595887842080273656724321801031753298497054155681381711711873408409365378391939865680243348050149897763896185097923501283090622792833409781430313937176739608774113133583601427367620199808351049702298046764581621141162870755636373865376248645596643935277719683939348612671002800473753098200313073662578057541295061549790948108293604385602456173894094276667653983624996147080682181374420867619958424519150578293159938556430924993115221616730777285711604509284764442997851322087325860221016333922061570525271177318720156647203268914895769965733401807056248784254722159853127045183937515005412412236660045829102495329584839902633671977610094173222481594133579995695985385510172823744333557734243400283289257117236208613655023737699432905262168815206862088548390593996508945206511606737365734019487717305935506457984404720908563912697513863425376519204885475842180347200980435138689912087644885407825628588241868208350284737787388300696037020670329414662638940861314107496949467798630862613254176356673451345854072225040918845390132285110142180399917384417657210972818642146035727348902899278825365987731902099010881613168272054583734482674733663859781928769670038399668233377896600911886197338129964080801800825447827166624358444917100486713611443190551485046745164619405440309929885326004190074525092105662220831191309553125319758277608550130764758678445422177789601565090211319831837359165092110080220528583004573376882583820976163715276433674455144008806609270778196348877507089664939477136705249332963509740742288896589926868097898721745529074424144230892754221291858993089155719389938663867567722646852350820470226092739935997903660633799404635884800078048377820726182916422543711797903717456566374185604533214274542364002435766528849914153014689587151642341006185436838955537505080132451951457702925626039124142467172095421162156934361959802729348601543964191632189257810327531740602997542470021976293696674169405724669652787593160469466587319609607323826512400608938018539540129538261807470986397746072112603675659243149910605737837221383775376169993325216864679795808639435153844980580814287107361102735770572482246702742351667623193730787699489168793892982108744423771453006389239512938757890567557617540237888994716334995741838340495446448158790062664134289120891265665533727155078560483957388899624014041352433203432057042166721582495320779844348677437092027539664263318312048693848616219481298206667811507909890645900486051094939999542998172612091787117264451332070632768163125300439324188163987163465079760609796939606912305007620311281531750238654916354071700858686207686834958998947992845880370731317681510263298994655418634577171587100081974015931831282490633017035380206365106011906865134500009500471008537070432729335091845746958632833741369243205681411097616240650149730915102633085653453288394691661538942997814726408564566960172432077047192727037646356778714871984003249006033472618964810581127050454329296630309596891380793504075914494096306242733881103729689184698668190950221301561544661477792210999529188657707320503338468281609111777417647799263857135626976951440861687622674602091033092897450638413294953963635601094143252819217306173752620944665087058267485465769769791509213856706834646825949526736031686325711951264085526259430530025870104580876689194670388580491107605685255692845401117480935957961358265010348445254461968593046335293697161854240479233132763322438848555703714487901235592814284647815388260667742485571342967506752444897802665108883629641051948884126706552789291971380227044985294694556941313561715040011927167840406475952508246908900073544426607624132868375166350773294475411061604972138584482734269458259661642693195130598691175957967742743776203697695182582630480105546089745494907903703383338422104093574551141013701822226242266839975462665994106582983828927015173752807170120427630135630221620054501387308023266745053624013188166206210428100195981415766238744064728886371823499181971059842942135909039578525621343304511514056173139820088476869452639899970738932691534877067186109005985968871181321378362071969850255479542690911077823133311600868605471933483277426210847270002337660078260437678353810259362828863446434018661324659215141884968505095627670124020758507854110554776597632803489647372086013696464128822405404436654085404783201786855402956994770290882790433739214347333553075826021727630809455297445715059804861496611879882765764528874305201123849412764189076141319327329265400367429740746678149045870926443230073276773643670324080367058558074968885273704973918276425800844242457830001069116750100832742481726327201663492825152613713161923156490139508529114252581336996135978636643752337963632207063201815646145131847293468737819701428227279935570467053196722162858494417823827207028146152495961660706997066099232470309765840947251126778729029450630525233267517466241868926318589607217166596113747454609121743766368634292053407029271745829316955036660725451288980419535352789167763752330953262167077609959364041349348693019494603190339283325555003929334189601335437217378238019318573924985624897107287174662239566131369989687108343362969611776642931055663531066644462438500453134978521218404923819187261567777346175506787061193622259460699478609913748436040040727502030403388606846095831510915679559031074766145792324317372888754719462186379321104116390302099049039192052400899805927000494313023281515492495252095624614730652853163459453541641048766058074263648281383924593032011702269558505858969381688418984219434594069322685012231631472756702448718924962578524139009029905863792342652941902219216239681901653728646816610931207170133511166389204734035468902953845517056295088960140210405790142834464452382206640395571232971024832280370092319725728126598876240357033671885760132763630985841110332075846489909054894616789518369554312524687245226169044230185484671977231672259054374758268144250066879728000374925290204439079294811081098971799548485930373949336712455234609085731333191749539190679972668377140265813625949671574339843092440541740297667436044882433523399590399726907518918637630870256035613764551958783242361516336889753261829301374308315845556726988568717327942497354819315914909001113795991401310064049966070516973543640143755206452929490615165225137680831314135371512096881483391243021599904566223708304846668694874055981300356534700927524400397806588099241332408085916572953012372987739008999082015355928648217331159800514882576115726739280378427935196992246121877429442852407109393448947859702707544871668880159902011413532036485061108512931774812166812752811209826053445568331264288868604960481198888149424219029430065857821681968411641189974556989915606485828109673787098197153100094283749995800408481579807107234996617858554770184551922346840938674400666024351896497767280116420221881511551596281498611587638365436741826715719034554318308906656631403278207486449334362812089435136790374660871253106011132757246482265565991431922372767929841785395229449655484897261183441455511476138493847521908869632824620309253594398770857650650196588224892597594932494005028222664963460728321315924482007599371736643520920880873549397570094865740860506809000453655288961188827050112887852528086412521781972224251738130224753303646656169827028009362282859242607704866874013051191301720937682315699405578325540436443329474424646087394220181157792484843648784992700753440891023377405845529664345161214261356325842443985183634675851612423672576050049225455460693281504996859522890537678044913531833216846169338110753694169899794371629274689774200245512354715113574468415588040191667839208286888859643550656400337460011772863554003831399707597744225502741194797595504761236024779409804097059713566978100510650336541891178831425414672967436729658487772908201913573839994418751831855188206510277482460914920078078560892792906886814988781163623042001629581660538416516046678524730860682967695392762866796776625454886121915405889741501594909817314179064435469993607563400096103505686297107873506309918919680433712779461417471690559746189882847363338828098334217389395362211310569115204761466336904557218073615986688165297497270152712377985822440886433366629233952586351687178738260199737104186207950129875334798523390885084347578028225323550421230109810412295492414913654957533952989298986918256782870808979091171706463727045076120222086492891221760659591312678523745378580774444070417014083107962244631365347884823538917356748502937730227043842703276758576028022667781556838791244645828824375973187030177640126806234429382351467138567608951425094019693427883758946934063740617737620947445265707459544026957590866228200904055254637170296251645363331189342049321441199724136188402261205030242790694794487698344680533504112309754714598113972031915149756495138166729752985732981491413624615863341037255030844238042623157219177488983932494357010389354520040949243916168018801379731052742919424352179445968740056704499681490031184401904376327067470110700672828428508154542521330464671696469343086204314237913928983016858907436354631023143379646946935632079700398993504220234304031372010859232727071486013478089323111072429500850605729955842874475908936156181621901055960017635486218992094881978033131670115941671494048961814043379182172223716217787220588345718662520782642670219199710011258000962894088592536981285577509805021169598003253272112817160717373446386848421344138357941055628119446782201732526000953255193789419892967370830479864389846408481941400637703784103844346651953064359157924466819879038984437784184475564130301897449350455327415991105257143193434165849505720546803826850216636320351202719453517589251378654867695432200031443250049535020129895967908413259888614953214891536077118477424295467780347308765403762643833541546215400007902670594468723014504121879970595915405718638612882558119048787322253587344640715312886481887126598932012548346685805627612966100058125871123541468553207049577907964650243218593430101077088109452996984078955556980189656368804938489271332669482631227260185189473641689516831657803254874577357222993367900338932638357051782804129284776441023852882041951031741711601194894743574495537244008844767531395831585272836161606405453158785857040503950057493052257100574151599659020086873171488040813067530287754352802800866538325199956250813003995800769712850844445848093674091086641923851346708115566074668586433807477667449288393521328756663375477554740870424030883483146148581707463416505725745299131213591050728285993378163538766122486808237038281143088835644862649456293552455683378209531225146268725635874565974581106556628868083724744384089285940846661709030477980631771268885990193016144119949104362465114936692869748599443540132313693497804806479338210661443797370420338066270211057002119598346493966217542755125215588208191484027065777404215542470979275249603867957817402261726688156129252651251993141537277425243942082494388779405883228143885074843261884035598301873493935979519125789919622621550159023351218916177336331389465056345854162953894781090310329847842389009279330398362627730479264820540522397728753051826295502282739266439851743902960226000339661623739126731501597001683393986749365643682750787830270951783857184119746650872876692602841417380337477487432077787176815303488930252586117355821622740782536416984998094717697072988653942004953317081492540661254697075340356409152539800861185033011275375894910595167719529566650047421624913190785336011415266623622294212749840807997232794564030842181611018826347107879599647776962308401888474650034276307436571842967201615374631422277384242525566735650934296238231849380367091267435363626651584792979831970908570279054963366689999634505710434174542698592626167378607466808285910965493600021225071013532144195849501089061564137153625451498259811490163425488209291791726937549750337876252100980313553270686198246616948327222894720243571019250938138540515221896434347779032839728837496089021424337505639617112396988005037440119438760540376843565936986033041574945356530774266204854858188988768804271988055041912445296424781432632547200539053071554144649698872973071596505750909734589687563209445956302304423102897806085963040351556616447286444378809413101300988085498558030333817354758893190788223569184013866453154241163851181562608630553624688541518890008348873636724736117818583480781621427116610147648525209518022914574235972203803941833819599365065188768546252610043107958231733528235005619358448222472800738223429865420261371207000926667126383894358932735429507132454059172420556973565750718352818449971735552526342827919132874082290479482779862941493698873389424627589106131522666217453407724339396656121447302336225021573733473620152017496496491996055005424877097300087088377030404128345297967007999573828507523025598981276292301164996429066833160885221517635116677207506701536588013752873084864347828449705414783225262411572489468411315859371160644937676356091514759979474266108838817658574858764773367130791775593041272445838359736654468402049903338244836372709548525878057433519090701679921684009197569898041237235174718169633219516777485944835330535714407869681219143492290899657167676412065639824871998838620940226524014265435434834564381100468723947663146599514438889292572516761729119039719431425206377318572203593504885631119054415819267781904471723447414199681364952047369748553413327276357900927905067834234276992545288239172793408188730978026499678284824441553930614109597971368871731935656958223246275975474041971096318998747311063842164483517209525439587107092848574201956812004935185128597204383006648637994897588922613665941238865405353833473393806501309784867630211611726171518220664902877481148299296355818589954311132266738181755531294730562268549597725373712736429516875256139307019841803109743103344648376062964091809252860337096495935192979151148604564314237915605357127248778585006172710108023690904176570610240381642659179360516321566852885124885590192378446449727851775346578822808060114812180754845503891428286196766837413544465331782198842820587506694607133148534592435617902815944418501219616011854958810060476170412031261212390090435919352066085631620396149853020935284320474876904916104934796492874193175817998675553623901778740765330397508310147182971279340646483552404635082506249353046153686432592118278101759454617280367500498606962870170211555440833030049091999328918987702792663896941670174266049843043797564871608968917995259391344476973265531927637002055290661283090923153007157680163952524721165460723904457755335000415616877401431794449871846825081523972029750810856533586804786001851195333775198533824756230783440557253057953283097102726464762971608472676170796526388316133950652606072225611442740842268043722223350675575687328824938275011524477502761972102794246293862728508191277888658902954833554197576481165840526971313738137640433337954453928335885713226944244432820030809418298723465933685009685020735471429255788980763081806296542529907909960774725643490495531151661794263927414614823165180091053793843257346945060298535085303332441788275167575780661615939934693189481725217950929032792330080559000327745286539022201728381217537044238776037277298780883215745406375062814590145055322005207150845761142398568361312190521698365873937247668799275091608204201393733668747094245227643781420545220542263306983866174569546423781737016106870335941940936473449179386409082847637349628041823675303837894819817827619374814077755517723416338472266441395733589390958665614471292855231765902613967784584139438885210371610309142944389931532898036460633747442339080992142323451724260645217694494882231435784652840258192049356266262293998611165256640140842995248993696609391783422930241507539450915566414744234887468093674247965695224709362670402125199675507528444733740119168563664160419140070904716577634245454599028433062197808650365618427969356294087048179055431671020567104762510563880204675466156132263003984489351271642449513193426600768173061639482564582358678791466069096234233344060678546065176500400725654449384005652505047603605391776791894853235827072527294806119870632916209438964032106986591227495392194219040423137457330291337989768752915750248717316375068152577713345416114561172399062728905714868390209366433670591258661139990408849427229571498719805027458609452209768436884183339810207638534835432923723280404010015857929455922239373088179717906136594171167452764948717512437432702428223556368047433013806240164904543034213927605164702270660131483152237398630750768244778861955895757583654602059287994180298732438114290868910622661747083000383076257471530813574467086414781774478696047438626952137695465282917048370998805947130907041962068558580527674856013303298782731729715103396421655039754220042788027048860697547442273456487813539908281057652246030482130119831676094173650231616121825558646093240711710694658641111068330268901398950952289403957802126249126351431555993251111675018702870161994455201664171025053311262997175587994345012498311255099853791055607874640664090330626064323648584482215594620847602573262059968078700258545706702845339783974620938965542614098176493966405884172382817634965601434083770761721671380783584946732591462202777425747546691592198334876006106802723698712637609226076893540345672101329039641055773432466986496560759318856566397210482630948683282106676287040118766376479528296335327220196024259980611368762835189946540891670549269825231859900156211867509070935244612944663131828088247280912438700215692807089156787019104571947473232517564605693400739782060495685196072015580386373503334142503775376740029473046382958217115933090421478968056178155377325437283192143564976101935100171676095769089505610316897932080948770874430798804445853498206014703327544441084264230993575712262721713700658831735324282958576040266705492049327832196745761925439206772947746273964944909444345530466713452789348708445733779558621128750987221855282521752884511258334967818917778007530900252046279786808848670569888504728323510786680504440610325352964424426652839103798175570047600463875362452773402407375430367416147396181074053898139947369758655211198848078971543483221097870986036437074536612240124851880839874107885045906064263701141394510082798406234203188593999640566757332747971798964513205283296030906138164181109260195020345117771517300312885246752903497617123463582604325497688757472230261185140137703847057466984706049365478821973014114102351623336428884985319504901809469188402141388412886135465721772232283742090610128168037301291451776919254341952472372652034191754845675869893189540683529080539419348110355918407962020513996090733900415553814822725883507698402934275092307156802929773887795867982167205915526448474088320576618505574892416904484351067008132238330542451749081434708221237821596994472835448846876586166338628794457630503411846781831684502106603340627983764807768304170616477011533765134223247644283173463528979406832461944474419249058074225085322838230449343450695199887098466335658369459152167218731535094585887242670711294157556338768416613367858795328527666737947703600782974955537131154399295316559039505082818894774691686176245487798524978079635835553139052677113080283399325633764540403878988440547060312293760769327895957127891555701732934827044004892312279277898462809628510124294624727546691595554587010160837762613360430155355451268589882430794079712551973120358901035996624960377122168581740068044155933105499480255480901742258807671155359130521111714119211337303591269225331189217540992177546724639842377998486661140914156145859862567142186797704144673995507999534598655694884906943423697410857344291797035327911260030873700938504304519351747789751110256583441547968932853854613147391270846210041568211404680115372657652831459037506045201032082807980796907490939614181982457364742558881515512883952953300250628174037489541268833352866733385249051742227819565089916051949860835657734114844674637443087817385798733905120333201253340801852336364589642162110123164459266970636567264574540228806356673945676901645388392760841551493586333666846234708545222024813591703499685616338559174284514200104504614664005382320433514140393666393988381468547685149196919459265642124108871042263188552681830194912433018641785416100130234276250346970042616728898565278830072702207054738902479427822017268497890550032127780389240153858416533517415759814728330860978046985019209383637380677804587697037561766824252592852869664002925519484405012733433668868828178438372567161478188794147507666559893530760341373378032245970989090875269685488831046486635607125451772263540009584706503358218124509137708195934021267869248559175966351494458904089310817517055535488871414744036951170520264203942501240394240811716956089089766674620312284079113320071294560752290788658847908702322296682287233141081102314386990386551835461840438794545057637209279837298628833944615558956031307115735852030467127985508817688817189544672426819713215169750745261761830668131129436023398763960047726275614940370765116456295477640875213219953532701401571375724400248412894161800702862757026641992711987253211341916375004688322340644052638658078847762522424623089696914913953305054260992521193423641667371606297631378620107870011453919311125836143256757237796357496774372705920311505489053242178178520955160056397200824769484513024228955423889295902537552144730105368166712702616822615911994232214724727268152933405695817271114303249838070772630748608773759723762983811869963953800041779363591593913184509026383205271043077317635711502825831214836896084154805800990261536255641776060617678852258913058902485235997524699110549882249350461094903370470643958202063423967526237363586888479149759500238474539097725888781418610902000665650978139692652953211664516378134695923206733190806476193366089360470032284092872631243359925003650823473843602678098116018632398663245173004111298079011248165256155367905199640462670179550560130493692200294540345506735125237511556207839698522628259069587188371565135706994252840273222759869798667681999150301683636837695021164747149878766515836938271518483724244541069195950152322741602453751459866685834975757133362464485894716852769607749174949635130610099680553936658417992271972039541816181967570293679358688797148804575724767344735879995361126454593808689613539628710796246229362790876566428099002868773437931037005662241098349110481291271723248772231292809335528281588068461694871747437555506927509924668700846968376166545274075018592351224308960266605877222709787230704379574809032484024222642729652637220928859457143379614568547103835964261386953101519465801092890603871853506038675478259416788102814648963255055684113313953874321398841597103524371594625846799167273145210024290552685969765519324856172545936258750043232097004885637798595521361205135382514677354104687772585821475644359186644840597338464030299274374976961666971803324211455378100785046909656799072999233190737195612901744455068513396694937227218099821189428234155556323863476698691770835954835812569511399594188745757244801152279292826667209445361294721580292244436554120606260244837094746255516144871801649306470215862935514176356035091181214689308737918184509777435762447510214579651050070484353271242257705203614130294738245896229001874738123050324266694002302581174866232001366629935832951600857157787314315537670895272122466628650488091369568789195308596960963764311388408905994375190497008656035191785854776247120996263104627530620196967198129383146042869373625501000842453034751287682732830031697991029748808047035899404164812595774207993883455308063567685997887820732656229832733145079865329254705158027896056846299860084256340744621246089931890480169511050762336598363177041906654731880236364342708479223904409003670116778441552527475329116611552890804606143127034712217529814498781959761788737846821784483742988603547065194921382441848021521407409440405865230482402091685347018438148443723359123116921803711005721881115468969982632637604749236038010465821276190463176577341337088936639572082713075279859819610706465334906214440235614656308137794062486131829896964135756190329537150615029079049747700088700308061744894548158156053698214242248847832276168672030670703667027299533108766970425122808826247469095226534205813453546139299564797729854021660782961439535067836001902281818002745350474714526926802560396763829733741680437065966794665816677974462113072979696283364134770610783530572750858025453032678934743298568641865662571309507875416262761891903529421212068592716215751655793789223770331819600800133530226194394176405072906782872008346270914029481154382289409559377853353833372986464342896195637106319200449130259891764645181111504357760400747384967049968934103927031184216833659255336260424672701611944088692472979887497185011126166947214342538538353835806331723847188725252358706050207830573390440957463587773959385798825206399758727533886489515298278650652463153845599574133102995365913254021000662773908155911201106867235217082399556292822016451066429893654277230528390416056151481176226459788646123145031331158592121812251564976226981871802522338622164105417253991181429577048609095588291377977172789794934078404788252205612016092976971697282606103420990701733045615856747421274016255625015152903364039088517822216850397552719266932170792403736186010784923265395668705568995850284241424680948742900272585484438737865671176651075029963272091801558351940601406564745455324667262502958682440682759081345057042985223001137291420168977268884684697899754572525584436993141031269169014880595382280989476065557303796591838674362677927845063326812794370333237783677357595092753295255378267811121923917103877815967541608931841146494218788840423466830639569437701313107256004831625493675848260407540693330209596091472047772852770609723057015259686217556149444345345926581496003927412272508040739910212769056757443809443390085641482022552073710118189503842908600357138162935000561028700773459602692133873392817450494602903880830914094628748449290580983976428242680624168981693879594786929642841043252751726130463733355616558190844132999874750024862884206550047510014509062325510463036558182758374536584912395505087407008764864514365436729896945452956869282535212079026157678774232610939570760447266510759470115880132032740334835639037493461848909208171727113606530694740121397955858941294056575877441913409833099494714039323572722990507015245805640827786868308763097640725772330597248468058637515422386633923983699681087970054466327388941400016943020049001017449524512520915914323528061897632965181114686460925210286775423922969148207773100911179385520852885108338544614519433393448411715764421277464825111897308601060923117568115388159621055579802623881016259374661858564592407787883083177559415892445277049703128216962147719032565105533205556830993428889910066921475790755205028069009599413553729931744864932648477464212292576087686992374337962971316103637765421073034030000052789626498991741449910967616192214800158883206960840493258878668014959096262763216925997688349316783877688809516874451773868897437430206236671700069167611988380375261320939274389078357329361513068254485514289584890996186859337896949349255087848646929381252009018050226158847505428219273214303013023743071721031011357986986768740977039057849930696026118092601772553566310265306095690958182510497220018525898770589356236202639967043540647257592850956362074106866078620690261104591507229212186490151479424544223681294538862292887627038109734976062908869287874442349678744433219349139103149687783131238322084261359337467853269042701070525765171147476456768894084998438583220838703467725366850146892742013010571956377249793892469495871432514401594758488845547754594262404114242451584175838943361927433987635737971232173723311939308502614981397790119104141067060572341304043623493939487692692578502037460764601745032279033128846629138369401169952416483166237256436263972582139433762358518525771524395805615928111842572724464644864988177947778718109265731061461509238838301787976441257105609454505880916991813394471111680023612793598816437769571726890758193916577343002770104957714486026836596436439535535497904416174884984328551653716159929890189122551275105625074011906858508072493208450160709419659731490526876529447298386451259246720870271863607487038717126036277147305709339080576751747694698573703727324500507625813031466476656778307226451317971098027545530770836376626011780544857156939781497995855742510698937921977765683789887870356735616362510189982325167105819486424907307198426456802986102889703678743978315396031602870916648525731877311093157410612148527203903385745702185037177215091021676516382396242663941094033112581380745883117833248410697988074228832710019448834197791170313479880658274641201795025533558921436737901180015079858166909018308705648142914552580116493104722695817211526030931885136580481142116654479663301187980620673715339441456580483711311491745535322037169510292705055174631890518599065247370218219777013988379311899850921992675453619814949343171401628225984890302885798980102389150949739554740803188182859002897749487116800453418630917348712422334966255386652962806622484654864142442960760634543604916717557986989416764580112871192174500687223600070193252406717819383869830050605912361264949146753681070179579697984780456103018740445606129644261840792887207440725070694206038560908436363955013645468887544966092790507554267485319119016958986539881859300775101304194412149736389610996708487720692447370633967676928989500091400296395559657468229190525055131041208167104141615570471859486051355848912325577418315842771610956091112365976865464806179558566750371823528670864119041731281652875275538311488246104922475957003691646438729890503057237727200995540568561524512619129608363452720357051404005996934062728907221113417802364084109584595612310396482472111510974343967307735329422421023370193857974575682474800981792276715353579462033069223148322113788327083088865225185615782804165075677275448119731296695452490539435219225718134022755138537614114942107983158648751640734910881070384964670100200777673751515690605905518283520457544873963403615643622267811340796663816053065264609910553948227009163386135884673972786923830986456152636203920394878216058154528342438673190168138792777254273482588857489239935124270054921884000271416283359028456708184101728706550225664440034016271357739492924335283323621173711059501148437634147243468032964820167855131816083588825143206365688302510933479723575288186342939508622112218799042955689505420585248621950079442136767492167012905524081131754149569906148402625746504250471857007536618992890038388161422068646286626018473639573843331232746257085320746249615898757261680409753550719990689046763427788660342982550890630487647000421813575524124784821514862720392998317976934718074168924341698117603864633085735337785407291799957212326918924980882292856513430896319266192884676804080898020071664695022632344371626431920688985741290205963733003267391179642021060720150465993492438179595946669335350622300011775137466660654159988011035966029010825398475930760703916042369364801069319410917576707994237372700680870128605390984827456663631845283881983303930316699061895586186720909657200245755992570210081325706970222826085469697622299116878767980592115989030489381644042687848882932716101819996729811261616760143339603621342665440808498294920065578714332153593964298944917470064581242801552038851714080766755645892938130169665691248634265152832204352330841237019263576503685834788367563405164168324411319836522386566914907369659140978867352186582874736874024817410010881490448177231905017574589588583062233942845537969934071257052227570850279008012091659668478266456306678405214487432753609546576089068305653818154062280272741468191785395126367714642149704796038523683671698861866565956779119791387839355150041206715021741895692936440572377806156975590876433365875192446038351993333191313557559958481698987368879868423550470489524242685849713887162929357157006855274431954199489921054679508126185837629156259467885889356503508404004719609253633270401426529712860342025116768128071137195731983179932105069228911422836878021147812828471884397241699616021935582975472407439842066549092312876564359219539515103522429282252896115641754979514087216280253157166804105790352456056493973089240773158071485731490427656724824900295023783466370403286488134688581524774904361100733787583239984756659183557070113773128814177035993949781064633027522352304281632298992322073521561334077688397319300557811517263417897868425281534749999500733732866281952118244360524415343773620825019375620010973659821754738281666467022551548546549478397929997901245445732308878401125174094146165546860163385361244924250288277241437601217738178967266668526271770140469606404173812118044079107057826938030984178290146775159181057141075248238048233238904657225227339175082288628554951753120947460278255416554131747741034050789686800629396503500695988061755149701848752589571138501410958286073436079210883835724690089826015517738535150691693995955061784552442125776749430063098338604429150944750207482599409872776735258676180150302730890491732631862409150882722090284615796542868553503874631781834298693969777454537367211436848658518032496149175198760836093819723305674327398803022343444788605443072746829066598638070134015741304418490044156161066012750630293100787166242611822523882060799632868859040644459050952445480802797708522919526882254179623738761152894115040026850541576355425731285856036867371273598439144171978857019713102878368029847946906166969706090462611575520918413638812961803572540004615403252615642163988226011739682065465017195388942387652158167324609123180749790247569394689350384226120244538488500512118944507730434619344109608655117106105822134958586343318061335686325680974099076970350506146167230380926196838429534854611169259454771969219573575680912487336311139798079356860241780251436719768603700300597912436474807373195847777826730832066320154961164582832455264384061679291089276101643217913648240762617330957953660636992497748774624358075872281623463631014003643282699595429472626996314335693235493678101926264044204912492098976138014632098356059175230911526298420056405370054330199294126493267538523316738454135347002766988660968658760275177468831810354771681615919963749305901380101798786041274300112650440905151244266001096295305345033855196780065493269224247385576370292959678205081793407004765594648752095654177476516534969043522297220017049836494510753399075760559525145678441264573038233013705945377201172441071319600028398519768221362012227325759865145428966207973665262815705295459467450822186428998847536832233963806015425547758727289093936699223496130491730294197773866285650858269168494042259463383015391691477681206648667690419887348323711274807979715852213602030556913842552980085765042812991020226224405562963704334416432551941094216984883712303431776680585183808995499993909597063484260925165917695305450832529844845093355060774776261244708027404591465616087115239982055462337706023278000221360149842913710471057074136357245286216883074829134768137675496602197882540628919897014745557912272176698410767655243438751665380492672256420131800191746536440352712123322237977394601915304126324776977283548982958759182196325496941386638132125327645351855056068973735162490899803359795221165111716786118367929854354389423524787886365368754864575947265199662922890336785069806925716488517620204988599104984186014873116683747284062612056210823468189177640183851999875767771989362780642766566530215608539438462067042520145919686808412013280419377458627138911800717347627210190336059459276856918388979685983892712514669073050677176421408697292833119505468513192139694503753424029013288954907941400167258223952618763500725238996326454253199949756413437924408605062986953714538796283211720824674853572567553909080967079961001069742133261465422241082402032937855336617180173734083375938803731907115784317297620809806975331553693142717819538220919982616341669244542802891585631680167605171950778219828775352499274691423201109048249821318264828059263806000849758173017767993114932502949280645537044931418980763653320818047984561727774962419889573549841741735700608296449180652455460787185651387831050144101907161193973165870010311696215245836470441677144453203781762186812956185897905185595846305950862787415627127708394378328583670832471808346375866044393309190592294979827340819327506807815569246019443237875653004721004705929350576003768075604803452884332748606783899308729630300022988092400223882500093014504996135358766406052382259122298713943310426369620740726651028557819337712072241484662733064633714896651152678803655755836620117463042706151259228809187473559551939248852896516408286617520481493993006801673545643153881493627566711743497385098370267385067948645141359475084462551116979467569438654667730900939911102225287318433409744506942474114044240614988794237122972363451718060205034038295818754862219475331879181470845316702256423454121954013339676761760064691638054991955811179873486473768095954592731368712631746872674535513125862012533296822199940145122278253717199974524699564891309050725646696659479028965909288292798864171657680165062901219256337410114840007080066448698288514415275179785826007871821490905443880159803113600908350390917074255969574894102443262520859034898028616498334565667721707205241460730752671174460861034376763988314373849387668088428436469967559206064874645574902596379524154319794279647312712001051933681764223774935827648961727608235134207514986968163592140836644851610425876001074102264417957392946430637701335489320498774612606242384915149666658771611556962447796631668134092035293737953698061708869903613081374059504156823880908509976693581713836028712340988804080942453605874826677435866992222399863652501534960068418812615592574390026312302560009406393070929914475815710476947786335158599392474984515534809491032578493692323556398563017814787554490420658591709497868547394803708046954448724190936124424155250633947899409264515870216238026646533829951852890821326933254175994078276384925084828845891474450081498678541573715768271810061300748605548428191715095919407173310774640375041340916855894728572359192891471355374541219709434810301792217424579624080079541547461653773276240314515743142135063136144024665734739337032994603455447392818531962840216448913134252630468100079838051186596992544256274099782484604154239193120960193326968017676140226369059510230960578572539061706286165408242608316374390407820875797154720536358390643297774116180461790264214529589496852380759841509170118505083811380511488353760753495747839038673323218267553189020293161354726635852066574401092479065606488960821588920028792407217089826227223837430693487597398089407169370202207730423395304808120181733325226944450137077269682287820829526950404066432317053704212149005931909932880545235159568120282903819699055635440800604439152000937478508114514833610973742249606431035252033520950564761818592372244483285802865711533443428141975151976552023521751075813407406246716899155711194839584836105745097000462348600990462523393623976296734353263366083968947579806913935968885633181080531273803880252541346438853145505694541369894646449166956699300629342476028033483634913790801206897704046461654129535351787319541611229560879030682233635483769745213882287522755727865947837615027080442466127384514423420665314986245065726140106650853165447721250878908754918528386726547739875422638775067614762664250000560666854869383622645626678594776999406961219484667742465339012736826659891323058073898382304210550516076973424345320563650968794202839778096592283301992642282398876649576063446343931510944507238024771042963355521106130048749435653921134159319167513625610939292736283699094979820361403003075854299857360732428272708960750819089515178862126184132553740241048786262626019720149295011429000171166281425420585224487458115502927160721318142052090633672187042060258939856611259744148016465148270856824309244972879474068743415893483969563655233989365420655252886463291107020523323650842787900973595886136808185449823410634703163039931031168153753309957003623287791588927492732344792571399194261569229545618073093926244455803174747675018250393455977261527374616109988152354301209411087800996556983132607178192751964562153142741499583220910997641837225071713498672269112699456160839396347643175368079011575995490017107201030432160058082602355001160110885290197218476362737668575996367056310495726876563052036039012086303457357850518019246538114514601745211771292099019404860866596212914750309037107694090310829559702339477408143122379422192791631244750685954827276534364994548383401393212979184830710120002671949924834722861449532848776491605713426162266133168289140733356548048058083358665230284404665837830062525634263000638646523004335011577459112703397470500980597231690687769825584121912057627298907196544602671751713522313161772942444949085411439154505303505047765613824318807059030115444602867550576722943932800365439621951915089045221673069860166194860569858046398625711320380752416680294899036942405676372225149515975743506194949589423225314182739224825341862839198980836727125687889054881462927647420420472683410228235636244941000213903751726321420079265300013036669383104249722455373074734785327378423755938846378848634280966836246423138218679594912518112543352697304276615442969177686034453656713722271635151912643006890905092633112173696376172167541531016981764692970008130356981325449051720564724957274306946712638427323048212778648308160340750540383053228719656957882321949153136454097114827123799091558524827978657631638077366603920081348622755685256082137610703181522642534666364971358962827040170712654221995313645778733824651572183887413878281315177198917457288830944287624113784296648015312014363426032702962370999433534554932772707411407990481276878812697350922147881345210484170931876044131787296660077597415111113100568537584953054339995807625441420705387509165232652114593765041717127019515713820866763332194081944532486637091479876091996678937658296989901067291645002355422755456955888200643584873987689796097403795721478352726424789700970524370477651701858477517848120363901836524693357386706924832720695149292325682206625642432726067982290816576843396959500880415690277058689024378040812865894512620192089750048474113630619180665834891320802178197233192767935728028721642060086961030639502690466652606316194442526583606388934182701889961363195708594905563836336026708554715584797694722580835510422353681981359264890832559782530044457871212714277820063897440475105806637040887953655374394706269108682534423547895319510589419832556430686975039467002793333275780841619793396266497376559889296656310725712339868305626350184139652345254051939429349630472432972548590982518270647133095086877233338165224555049705508662387301110873608888455705365354578727222009912372847801520650454464761669657827173785353349137915289366362220140776662646882754296822593895478366029684933187573971528939557627109935369370246499770905860728014550607380649741411628166009147690330470229940489662994324104446509611479569733628559866964968196688542556198336144055632219624495586912005131810721284862331957502648519726049041127395927847110733147862536582886999171875220375828774563434971301973171345610910971995892571799767270835239564262896739180896164430262153833051907254475734220737595232944794506406011968955105110832480988720487857877081623520406835887158756517156388520483176860115933609456879991113915264512028666814644240311346171106276155007772798026977263336849938940972241532715757578979487231029032558761636610278088102681167122424540218121639548844128904571835323970475127693428527288456964653355431465637572358143315672561543348239593310577453020897582956242927151751326578726177587856274523206987225257081085026355638896060930557884101788019206144941132407674557110593376992973618624107882664632951609193470592177335514872641125477010460299859550913927499824978124700486590000327180394143253338330370834046072410095446310458129189437043207269247317515872107027245053025263940668463261088004971712956575627358497492859699608551043379504245866694320828851732521638703513141860409616092046517910760650475351217530333603082254148367041141823300655448748790039117019059194970505584431958524575859834615085083786709030497203116762374201699862329506095035352711283381132041547151171176897820203923277755875632944957432642885453974673773503325477764402195788484377950313893484149781738900636373592993165287037744630262558369494004349160159588406562517175878308251958344046196253339404588855564261228050274234273991463811105368596564692286590981082496495488402395467636046317675615079488502334279154285959868060026720777915763565147991705967619232920445513315101044482266405045753060008639784270875698822113707813665741704598040734051892403776690019456083075145578446265237443951983092229980110981429067642029707206509430521006837365892250596573943546747816862943947026545645125960324124356958372176320677574073564387711030135863528352244952784540755354796609022108676323131767970592425818796708690091501260121490964467465365479657372665534658871321941863550688194621765097154399748799172016777439283997946684854419561049378546437986316274447321406429782627021086522264512486082978612931450621275079820893799299321136391943083683192466016444682428683469310668673706450074693425976040489996341198934894954692943441566543830770048607357477685233462616145882204826523152220634718678319084184721451661283059498175588011611138740455862431058825166622247362106580563096253842976223389705449356953808422673842824653897297723480506052096756604421819267127389519093731485678636616409741958182998901895229230665108942854417729975503502495607624883519356049541004598105648781116616409748359595389378322250259667415770754422424254271659275034351691745539752990890746601382633449019904304276872519777343330609925131705615179784798999229780370943950391868392399551674784623636365859135558427951908378431893959106917858103039432855013263236106658855086308020173849647144901904535382030279545856154672392157001566095131573886762024420326709694601107330831060507169471076305083990904106359101281655968379863430323824904933721899991350252535795244777373150760984843719063075609799980022586207564186139648865867550981260947171181956034877321703592481376438070477298578703322653341739061799095167203262917333542007439150227926770489574905962457109007656228741967445578567701800200702640117659253631100563108196187262389838604256479681799946910306459074352856645993724758644356257116921717449330786510037818406357016475774285913562922648895216084013006861203516307731917064241121495870580417636013530408372681488357337436223245498778925048038665784784052246398563072046149551101665328403456078071583535131430869122942264755064804265018950399810182086692285275460949471695685088544089583082396954500273325563823277132431079643378666556420201299700124067092151931075483272765520304938110026802612652882372584398282071404916828365943524529314615125973213240368117952368915631693330377314364683078696622488047960930866090116556968460813861203764585992067994377666869564695494700803455036157901486761052644305815995374166827655861415732092027433044465201890051257189186662635241902434699194976851730041225312352690040826865641108804402932969712752082187690960228787912468818590227074624722940555139396358228213162948199695906861569865440339494720151473904725761873622129662656384243423830544218965568341985131201040689577895397373007646583363778235600525466518372124255562548111445319535784460587448911872781031777189901614093682649214712890187700360189340189277085880156554190022718883110275052332092643184976743527641901452433713740702553050577542077517906937394971342069762902497791747160277996765135548118336733447953043547198120616977173428655616411727857858559845791941712287723581416772688981558649456223708717192596055885519953875463236623085964094562291387972239738741371956863384796845235590585205742011902350398652457292119603543630825758581218058293196444799020550852910937197202733298244197267808474439899222307275615792255652073283971063224954151263955945238251033970350949603704663330382202860934763125668264218477380441168257377087429312862695086100005745461970359953335442753897274907598375165149879334574283702382306540155072029707936659250990745165706712607160108501982647339027097729638983633274088205062622406925704184932910216396986114054570658926107245580885980430952251688244154028544085440073644669529994021004952873106381446670612767454705466313633447922683722088783947055941464532714509752351070085724065270351556433200764384743284284173432247379282751499715783757114123491898121424687996858987863497277271567081746475090728097725969214385547199545175792271264400052172844499124448500919821898128891074249112309065352279438558522876999165668582264894025193440637409298479692547121205446488515453193819800533974917823544800889285209863255405492877855252494876004660272625192962256375176805525727912138264916365271890794649774376341187705488030172464392494036936063364598314633757237714631428630292921466710007687992630498208874935711266511676707274793025438757695675022604844911306347005528136343503445837572597115128394594858093772747590413809168255146864886059281835392052812720668857206474658923056720380377434398787386718542650923628818658893302915113416235121178584694854924458826104916795938149067545614060222685792045275047657856247431281036189313449468747007776899905497226667619700063407588965443971832756955171083425071841626730264197310769829996046844909847605786565722112030186068122861270188592737366019501785543313156546194541206761180962322246585295627139270061948000170544176255181214493601907999373141505093343767457441467630710583414349542299481742226520599028170373681865336699661066078991143656274628829618328853036072403597665853740660943219472113771003247728500231684548424715891752218295813678688385092919218392997499678838304594199175351443551857354986286284615551717424612113115719620968554672788801370969999208213030483987036557454072119631094336403910910536176416318511441915758826772728070554122879130020288633270817818698975927256215143400657041986650045992107417093550475224253219752734523560167954158561767897733979129549280419116964033473738391861714913384277174430567008889665715266231021167244738694031476945938468855942418628792777622486879882418652522279958257832167537999398035182933505008952991993318210584108621702435242550438709384301688129422825063528243074211529936147693443896097389609355709165039987257085372811320953553312490474469039792014720821723671359762120199781338417909440874112501889369859089897693278700317122119663252827431992852152748370797906657123179279814885262106244335560644425121163691845809434400737947131771643946083143549677439412633980789127603282121750014579293968885287705744549910672937348303623283887495457959201457385618506859488048124865217539347014669124324680420658957993674434753359229355338540005713831040651224845439834130429758039920339664718628285623748906833932699841667593741729752180239157430279704318216098767570719729600004620131978803688164646840225532980849133691455565108762513034259242366570811667214129252632590191030884104017563964296567284894506434579357501076929438130859311026710092249808446841791100990689870811096542249106414684314770832920581503457089072788305780014015197469048087035967702280185908782117051260472384897639601885261644841370213516429383356798357604627408738813818891252134464580789070047348416902257560377678516915304788703075089257387671904618046210933331806207813790335991160829488071208642920920952738361098194218422685144960264800054967341225792501340773859619105963723842884326159582896684413241075858944862316455537512355356952149357210830902065441095611768356553401418200644429543669698784003976506980081124650611173913492613449318138302642698099412099160753216167331346607256750089553176443029792714865122032608906675396695348435531556517657214231383995610049444068488433810277590016022123822593125614068072668016341075296874265563210241510399912433771466147990354261114628256048481423555473650504226443013869854632930792647703769459986656543519045500424673880617851418625679443302212977669367479686885047713361362287373499297716661616119000899469978062180339944552148781617272700260069132351665015323712036010737776894405786213674875532831748803348410533829428486418848454246555246887202232926708997729292295891924032220814920792900563172829066230690706412455884000372266264620977483476704825839798421495800866210776077175156366120140266109954681840115277366046571434863170670213463057603987636341449046424885746949624833004863407662542189514055817465534393428262733013238988458787843408514150709753648903038364412252594589715878905108093767349831820971347178580956865107612076107370038914578815510029034688952595461440466413041210315751970649587303855126211364904227308815377629708402213744720339645694656088303498264426701625597011277666880587676435980107345708756909213106067090894617197128748348947972840575321101655249249745114682735340693688374515204075919131472223497857518122784887110803979165543083446973666964897172895347477359789895035290146097527953875710976654106359477520056510087133760992507913093892224923637685156823953270929013852384758063887829060292440491027826647644797188529026279158928382942298317776278257272871759483943516608055269264655443035334323506476839897774001178429389232916955937255178097368432703661084879811693273925514337325710474497900412236947184735206114399022047380189563206006246158702695618094484370070846423780548113606987675437654159364581005540812660233918509038054301019373789025193399074887534803188209260181799202538612105981846310785137565854660390388440832619342363455223036010126160841766006667571112061476897980968198604452125493452126980342292087920766913082029121623974764870610284024440250992030698952095954966667768295413256403520298484012719658957832134606869374437676774075079368609335523278441990974799089984341347885319896476295366470456032661183966818972443734951290060687880803545140883895709622991881637771519509522622919425213575580873449042707377099558890371097625364625968275962770465887793120038612804288141643160034802651008507656374647448244541383695965762452639931108273021378138304920079828506847719938962351990961037789782373203192624123401706715367333445342006455472478723616224492488993572324814183749477452088195309190040999071998645044465444528209565770861149552638430194586313187231004645207706461172792482994548773948862751108131459749430248203225486340443599115374722049583032416065253568381248398823596609492656480119668977139653503559460422268067274612647495039681272789903338411529425400015178086669301138127614392051405187636201602006647668748582942528849668904964047801270376900945800505725127411784682966500357357701850474543002061379018838846223819913823786403773361409252046570352378342342988424425804906072766136022871153513922025197230512567653349839385722515012934522423088814027978923421548518715442937270475158030563728005098275893676836785997438145357281109368176928010821398233830031196257824419767161713804540698016191499994299236175224947193767881447993339555337930321501832778785483966630043297513912064727739821627049374398880640428859325451957188325854311077982039915990576829341527304151870816442968815393543295277959490183027659564489986855980533065129066652299194179932138257574095485623995303274377276124079343684534534986195900465743155157882905341534691369570296591597900149993700341912179978120858931325963057974518062756228016665434817828989324301597300125650241679263547655661495226883343885709660142548265092047586156096497686402496616131732122645646059245006974243002081484401841342824150494563747453396972663674398442074732738942456220140257436466021961680086482399744074482451250093598828489954546038901733751394154849562066122437806864391166797879664217250071111928830501831021109897146849650366242688650956479988629647500328375212296144691899775855855962361101195349191228477286239168137773024484974896857749102050072041877512955848985507389920819943201591467886470248696430152298377787565804784443193916369585559891455471243230320931018909632247490080326911031886315724581195507407495395273231253086487806612929454105664405118896193081854535261426843023157746386806502551388848520418845380441855168343633990561864317682986689686390400072943818599440567143604857814349490671975376997490794835100947562010953070167992291680545299317900750773206559138082175439043684413368035872904662948232588200837990924128842846898569924870782133720018852496320652203993808123717189388732542783685702587348522642448412643087433135570691430630611619163777199907191066339280827933697858905590581368095339996647214131625820418831453922645759379269027724880605658661065626368893254078019938676159179025921436590910675487913191786156472398658638553444018253074779332541198382990933679174698321360432836283605384800780024664504990267949507834002289358717802644278477925847693040829627814972279966626630911359936830967429753832798444434200116155898497608303735928794975200598903777536250241103223237805057196742884072607321589437942549861065875366829847125980754320785773602262082417034426265278057926662351632646181051944368096293505311977897401918793835081595873118651667473267719550576187238053237882405543111042310138663942714094457849642552096823561248612154712826690283144407988289728832919025245654407829590890473252065814088839388855605496862395117215672565594487869359767029667852156495256951324661204087869025106141288914073853449382014024096692055211184243319720368661174376724814748635021739367730485488127874499515299264059659764779875728443687634154802218833490793330145425655017050497279361263212104083711378038576466615912871626078593343987580553191891313521923993422663369406963146225187114972184328448293872516401470375679986059499817174892904297972379954828912452548862255538208568775214725420138238008346300153410695791088206772773764674153197723395075591086259117028175244110128792537554811832354941461021079718841270048758629476083938034300194121069817293216883652633154170962209334571113849240325278963803421538102737982269701269814715499214083744480938109009961126436996687127579795475745016076810159027941794186470056903909240503271436169594011920052111304436008555095650936287238699210822732792134823669139611367223499415433309876942808439581027080866915723916346828501503939670574171361277074780374444539483455197046431229812284405589292151763561227525834531076429583255405331330292645930818691527117025687065628179920539684176861526264797276451086399136551802506673048214929982970311693313650831073187227703744291200558660811334738684833916184846363897855430512574683649086085043933670240382223143674432754696082469579475200473492899555807723256824574391806121933721651348956267212619720746575971258884303468705617010773415979087019180811766838358240471720937039371731259314953649167609455992496838190593341107869426569276391391161286157996375813994695708056618858299324200740068531965507205234209544797594164349732851848781281012171469059217307701703124692173297285586281065520018046902097975886846293787239436913792927303612105967597933401292046675728395440060922796157837701822342680621236885881680486476978468417843543937390504964333591167458196155665229015892375292456484854519051378336819619635095623118401365361285797228583637476834666890347122322661382768325071957902566488144890654724469783819902008483399124715140230047014288798257548639224475057638525132062205488558473173208819156471637146808784047905984319179771150032479828607238680835808403582888355991480317722471705662596739406646045537627212844264473341489497591490543663235842183349674003034250223622625938444181928356371890426346053760078026961894877410367401354535569041210708707101450151260927308404828006546439612622439376813676327846911946843530082092849256941991922390457792798740921994888780938214173506621170589553075921342097755558167329363662546663234330612301868965819703378228072657604692652850885304151019724035567179004001129898505951858540955912686768863466463840201949540869313165188619912701344148146354066792484812327850392509371185411921418689169237280681565441856594211522748226797277172211133999272264475617994141979432494679389938637029613797627104482616940581193869864959013852300684247520440158223265152839494089737170416167050065454061192983499431637794321699547571317597599562288066818467060625174040578961145396866188763675313238329800408322854053109558107465723504456269201548340282755619976970615263905105487526941658095273693834096400506640384538764382436128599267384862277199587148554676713738475263207553667968035727220341053922001168559352419196679724536713394065668672989096712415641752224575158775827963729986258962436622537663653816622740583609770011887669526855994788359591516169106009327774924224859689460010928313013560247190893287176898486763038159507517250961015955121669725379410868696093253460702442503831134213785208541316861202489740144225620903115029452361312653903088615746727144955635177633874547949005446865823099178953023045960762517307597665821748737310520945864756488287268293354889593332234658795146704470798749742785915825007097372981203909172262033966668772860495241944263972168808588829157260179049570473939205245085114719704442984132982280615551069463253512870854944629396141472131831158711679646609356665026568649218484762214769965919073694513644845934122056072366768857983826922888371115131352704050668998965744015914418656533514095543251022216264334634846782757152625796988111908352511056267115461591154224882012979838104776324341021066628229478666080840732689433111617215157706048901116818771912709745979972137042037207287109221407983246599610780219400291146928946729128053988450783122247355241196298809998556320622275417279146249605897088986587346710406578997909809851320135669753371847045174389253057577194231060839062311787110695249892540475241832351568733439703454056794155895081479843273039281099890983480081412028747673654705232464252205959059541440609595187658056263514475702188637312990929573176626707743743684127545595833470091146700487594928230908319559324206176297043569192107547565757756468100208040609380057889397607272539454476617254657520791352410638433508267776723703482665194403772469429876853748078855671858037838741670640045163382284823622076205046195209498627133041917923223217429640153173523355864615039921189074894683147925333925283784944925132066010928244661626618747881818074507970898802960260497414307565508148622465674322507127020184417345504676299066309364489276223463485765888870893357408605221493407806236791159859098140438076211680518479422236306943760962734415903610546871764811976897219335820465018372203135680035361092301848169966943166627299800471186810769443455021575188537814394484339735212520994769722997431995222070306679384159942218919666321830141363927389583730970013735200739868903810608857771706794837036271156241173589823421306369924878809228246048430499540160908849028656233769537660036339061519209377362308633226430803985156155618001807153046192548739901223203340477838236274636750073001108756973562928380951221012957155999373584954439776980415606459387644286226690123742859269153790179640228122911309627163115868181259126101634871124636156240243497043062253230963997261902024809989213629609097167735399600213934066581778618582000734416441411698551709780118364124075369582983621383046011520225348711492529205180366765621051645451521171516692441779235265326655935866889486237989553550561246982960327331692679022654975370077895723686565188975928592015261692327747188553986521539181991048258226756484614962610742012073599453158100217621087128126245934335039907459323451110101389174755519918158166203591082993419239596735192762298321292920360507422754737990320417121692648783712674769067591655537016047631998574761798922106876088545624140407003416279655604946579287919492848709951735195989837382321793659185635209450047588405597240674828085329716678197101019862445717303117256949734526764730214766340705520760500223304370426889536451347712891984477743046393685590856862238212283542747426173474195232062507483125482901335668462225914356900878172107797761854818741130222302645794209310105320967580439505926486436484821155342852666254718436131035218779685042166616970904110573886277246961037233758744240900670840483275947361059725598279767056711146135466408909873940712485716488495387790342278963979182779328469420824692874335491155051391611018538333859666921352088075028358070820957243506099251989063302193248016356311820978013793648293290187613537930103183941177584593202707739061163229194577922383443919163340553216683934822014719988662900623101708700173274272857154844041805787067329984697829513793068950856239410172948198596647766986539375729188539993286722291665340785140730781403053312022439327972854586636155422488511852054522375351251544096766257771595486099346885863398690584857952453581223535888625951883740217961900063343176868190993651462125005957684689346291601078292521301216517843121347117569235921395003027095853227304311769582067893455654556682019709036989206989094713718868007436300664454018109386454975263683009285672164429066303626172059674882898223764547497720865699705324460323616824914502641287199159974852450256795114024933855215978399086758087121481539095217567094950839402529030982308292843387604003557660723612206235350900503858298229128364714744153357124664190732691457690377847149601516614868044153948755854009943266609325382403188005974070034775504037030506286748179351558858022434165435875466821007118464289710694609298619946405976434690811280330808234679370469280381696603573292025635348206575358411855126474897257742738450570748920414101566125596952015395954438295429496791345517014984794334083931944603767096945788755822173514790308397438958502658961599520631820241087258774390777211124536818739291914242078921711776772804418381988660859305530709546427395992956887855627898844172298965620237857705112472631447104629425568492230148114109981995979616511216259254544164533190551169948178446752839230247194787515622436678113784401947614040936834468041137526725289472035237017598807413669564518835945713628349978261341836546336026291962826584127904479962883985709311668120233345264252181909571871672123225033003082350377207153403688027560751300453912612451377071587066394984804733610649379828015880655958392842843405610112740948265288368482816959542317536580359932063675325884198122095168481922123751033025541566920998399738196905690281076467393733562767254470635623161720966322402434666848797813206425874042960718823264763051373790045898573546968909104789784403446689571778559364699145331463596315213318214417387855299885754946530186853564726426018656094007614407800450333360730916025667865143243433503969179805849760195831772911549339276744403512718954544294081867393367258594090090132881534163805948563523293763442586024658299330472393783279932925665267561846573124782684709461856807616280182557329006429633215387831341007464816684139814713653593245350896293764904951661309176472763204847930103355821646180542052113330009424472110640048534005521232536515436544515520823965208669411115422828004121935238004578068258254644795558530136903482091716175986016336396452716876087616126282870911501119945558571423948938898329797111664065728575412536426708880230795879506024811554608943031451554269735595711600411920563850354739947953214917060787827688225626289598917106111540761568135954839079299427910500496328603675396365425483410607447736986621759223308115607208327286094075552559802792630246147803573514124229144363386299240942780108140741639274385436169542071473550432254634018610128430685591961624760461209882683147964870618664922097236526753416749855795567709228924249171452899101293092755514517392867416602607390978661039818688431840689843277122209151884293483635940836838891711130400879088532123951240796929563216940493713116683157385869194937882266200484625025951893357237008228106752810262116740672817161112166168749870863523509225015355942055479177165625589628415372705449876295079937318317967838362772170752715984523960694087053568984154252613555580364649242104745565877409779589518147971733826945357181117946480415481988549951841405788565665393149461049888838550833766478451501118037007624082004815637010640345652910022830644753624401642859876814024526407336228676048398512708355472608130836707839783009966071497432268921300920659591872296674104216938877399950268344198878139963163412366188901961118399133933273947303088531662779190259995500933430471296677780519677239627357669199657892651744777934977827946880925682355468309706678822952091144465384093762036398193008194396254045957925530905559102482447569714788269875759175719424993201213484027691283402152857864993860298552467045825785310480903991715077567865639322164618677313221204831885590019103775532851626250802089660983245121803813452188629854550768026602984204517208349423782912744143005243987966855839062465692263258296640464958321009404795879475426284849582297786941923941480918479408085340918272885499552315397353382087636308724068118730402163789631672407229483585131284936401540314168999377663675190307085980191466410509178279252861011707975315570269765141603326380501121217212335743904143235591157832833852115211067639754318642976859178026757674958295953692999787807276553848518528200162361670565397272510585594638047075097512096277477358701666557685166039644115613401732983689209534585174781282313046268294994288889879601714171967630712874067538828347996157977796225339456106041108268792992614039370317312272748577787304398335073812503502456471735368350443557544474791888557035809505454375392128540103145251250792786059732023840697400084265965106499604175380870099069321750179015553992245944145800901243381011548327940943899135697987459110820303494671838576044181699656364561476475988298218516669930898870382046066157578681570464052241132772048659888639464918392064517850432025728277409058792733953493130893037006957891412664945915289670416651364183211187826383077022151698361377495254698570196484549236277245087214825007964613450662398382386983260636399801535457523151527122680022724344525255060288083335161285192156839852772352516528270185356545316455354375007362552660615084752367415219940409272414967892579622341684759168194006898962966022075318912385500334825626288492348604992343451643315463956844843868590889585398045543858418142302517920357200666952768029138332058776363289502183632494135312996661868699747165781403395866724046567266778185250172898636467889927565353612339784918988008789209553284880080507905838242906823718308698072393284655786450170898341033293937423101935138386893757374339274752669804784173460138843863918914126739793118710227427857122703053546085589263102328302423327162266453667588632258859988367866986814868256982846536633662466066838232163560580096658019826192190029400364244185832860116905045720423304604549027762265043112954003410048923973041513482095784709161269082923335120300892597691100979114354925518437067073900423887518998030151789393810957458374533766751465752638332053639091256036493256284387487349071639441297606448671748553562235952305914291028133146707198431431408435365200802078660499125557310857401220193802001430856638164255001931977118650989237829075110603443126701364488792776397786054110944551909363954360153319049013972792689901635069220996495600936554232221568630632397603256676607664571691500187622821153537488298870278970956449610220289817981016461944308117484253884504938866104391496883445896992796579903402279213663757333547644422372252987569518024197399362279000953644963912157524247434513271285773664819462431706048346992450498562189256723533267252877740768747960550039690768895585386464130070177873530199360529183161555780509595406598321491231759856843745630311298241460352688942466177467455932049241058249447479670565956122754488822895510370581209923446020265970338069299331753789833668068293206348994731795118229733291143737879247860250746178976970762532558003716885290033079649746644504670954675985927637962006029371953285200387270177767863320425687182640179952741335065026652558482504288963619736395431251445687076418137001484693643746577646633796141700227805847960267032891140611685463083677617388718660982849231575342425440955039354376832191654545541209895413963151124708672762971738474848751450216120955093945078660354934166400801754062248080842683442737798545328243819402298156426647342666239091205659061444248495404433381266348851192832203442532647351422636382197304818727650783560598459557148189953619454465143979139115957598537127237706676023014466190560700486532835960760581438156660891482226558545815463396994791426965461209701735514410907611817345068485232174327112675592335900923336148006975320423992096272226877861000757761802607228476526837798882040225472717297187325994031707308874233725766441494369441728561250499099180134366639673748192360074381665524836943200500896241480471811846089801324086548166018383234580712199014827041375147391861607544117262015881487450662340944542194767500823216067124619008178496169901009133025388378433953463780581891237588231817589638245989506220089694576851437298457311989786728627724393480476955248802968155338400209550143001496548916943416685442471303998090427798092850017933446476883000371589474889226809400769665907555945859562471496149466140282496744432627061170870827628479536023373104912596179536108435064187347207522724819947254418130967226203923948537381411941550595507288899460115992193088979436452793770925487997961010067995435444208515883699983554804109831966578801058200706284328680986094232742425481988919778982754469928702191722807973803027093862017302050242637842581308190308437106210920518107554774527391068308472811922395088095650882776571120092814241770713702991112264078812543539742377956175443630821789168105361040890206063981533820898487702702565053588366158806424526033642635666776026803950375385226678896822992954298594551104927417761147127943611079478999960594315699298126658145471937683927180877418242035140867178796522159518010821208203641083041044337574238222656428278257246051514492035735197639576594588200917411416551278221931810001475633792324762189023770773913589196959369695598317807686242252575822740683648109719262363061180010890883669809357562441418035443181755461188183447766510927381602295984559142080770258611289827660613294114421072522339699300946221598357088097919401131534789837088735061514022815851726258050862014794900860547775965528522315722235257346369587101842059541195378832208376104552870208096758264051656087902521170170682630905978531164336414373386223960399650256644998626991863479765703359206879665151636242337735222475231339455674991225807288696891270491952089763836634228412218888376628173682601108892214048908876607499824830920045654009009587201488116498989823223453189453144619769599575727551236027060778629194029430694321323590679854168414619137492309007102029154131137716543319828640672167756576737555815782162679676394160008028459068689278179052766200306481703953063250343464714917415094712398809140863086361316659183445239619520543564688222036217028277062373096880403947409952229389699763489295204106381743305021100735136982911410136185004974948700530731795990619975275727531608182735782485544775817996997240329064070780320029414731344427267792667382727273198394957134953848215343253250142460729441678336247946776524638613094068454030616741023133341300812060561954505407538472975988747101756020148648196628246418592107173533621288731239762814527719879761507702592923358931389561936403293680888098961806067311404548373799677655618863570029230032889676355693220652875028174223565366308200478425110308016177336285527829397052105519093278596995592771699764444075539642123178772697832324638143827508976706756327756064954403828612135388025829401973115371902185065955851923950485576154957510595557496268087326635370592083276244234556379405589838122168560505362204547486978248092562450262401168995585461423768570247576175263301434497091451724294958199510115100529458756769815417692342541685363119245992602126401187491328569891117520219861682361208176207282428920413210399429860552579953867720624420377862281893024905374804824990012317848645763258054366908239060057071864085652303195080284968215431518049552562001168120801971574117115607022355390705936542671578156899330118275934506458445362015053874491471758804887894278302941771357511720545414847656056040924249804355772123258440146156429544036379402535219077222199925469455798697884246622357227274805118172177715153469760621542838742008954300760895140547642484768722268029743018481060695513296811174632525499129735633673518482394004964175680341287687863272181587110680760773178639786558014981838091369599971494024711004952123380815987949855330581663407365889712233215937863566699679634969963503605561525586213503077141180580243582757643925268774096642487496413704675585221680945533217455248698335452344222301774580611052022682648233677753971335563059397644504663931403956086728737393307311956429904101140394518388820147034333912943416440008570831277913478701399435108066054625851276040654087186406782553300205822095101300033164160180613166828030316319825514306101492368582893217754578598673617537035520965539077300788951019614529612327388966195846024196626958058286418345118542742564112928209324202756695858615368621836052254203406527724358399395048483633856182725938972402526065103925762721634399967979594094731934897406195133549777259701975957189721816520068509193936638728846884775115327287786856072250342721457616180198269514301704439332644391369904462258198126083743941900178424022773483200844131086996754069339239311939285895888636809672556995173810300463024221657929377925551781853310326338003588541626116154293197119379034748642557120589083149036708417815406747043370500426653442294892624739437271260444287591124846294936695295333175498203639265482841690278346459367863428193817106911979693175161736617280643217926244193770669238268586441756991304814522652385333273544971640081660769120749698402229043775821904325253415277220464699547128894976661040478173408532430633778864674189705219770242357210559649227430515207961641034458330857665734281263244500989883892554709842839231990684396395847254744619886800788249215106651152146159059989358759268111848082959706180084452542253023915939949034050210694588445174816369568126933044567471024535187622566501349325382453083447743893635628950860056210813153963992857805728547644638656972932861777757634656951514311847694205972832749164153910185474902112248977957611361638186947877336261081599389923606683249082246075566074759550481018508959158456144735708621795525434615412157827484462134877974411692301020591456560271563869856318533803831049879071863039638386618897902585407204931079499251336235618845087458093907788431036245757300999566358411946383445344817309546844792946987387493333237334697474688118128569284020225670045052360844100527818003880258712520865790625632041750975872723782419511821941557426821387638536525757583302288181592179422350143330982800027187107669499542330465931747299161237319503931531450321531721237401342308927737526924927193687141957395874797874240721578431714538018655347851656220614874347492827159652199404820778430202922810487112413605897160560560387377149383275335260880015078703685919206469735271795171692486874318378379297942573413048443568541845812081871551870845290835989602658206480669037370503870849949474015300358468538181691552173119522616821998704333839275821120763046822956863149430304444624969459395188380518878256471378056801878907782698415567939355860433978427749448424426697839291428581231543151549175259971455684866214914887056065132369657048030116034667858981360673736346456233827908129035380829895031837597738910902270066232659959841080034572618900023027982261708278860837828838062034435029445075755105408954110553288748179635708770766712532688753912979809388199189092008126759838888596680226145745448604104115246441747549935463593062719290895277878607468705986781357616445994503810669901147250776341711569495809055306995441576556714930625168588098551607000029153785020021090669288452933033070459818332353037298625515205753584646046065280325340065410560927559202755570043288588165057331730883718848281744686979746657298671675538866100314780699848914797825282560070806105303051177192436778666556836547308981867905193806758258716684600446652771099777879849356007239505804638888296456205725958579689154853041917450691166770426920026746108647582675558701045998352748628699611243344035712921969110128771792912157192997626271827599799533952240196754077540574930878835327389002551034292638623785108267938694373947923661312947062425890688852420589146595323925990940754717049109285214080217874079198285070263955988757581643864406859438702891759906300776390591518054803408194470091948271032173403442965980969033534463809065286501100633285217387109182183375762667810932724392590942299960586998587123563041601676852148858268430569328488078365833498031299420915755066389974467496860037630084112100190751630151344695369912890209248954492074134609244250272402685849031951173562991749591228107456829918684453037392872944129384101287770005959115729215782815470506583170525609301815675461864741907079557345106922878165399073666682975925400176546734819927501063953425910258048042003811837653507933984654999570338539889436719382706277140638523417572597432417263261211215537240442128889796339106710849786375632357414087120292844375879043589971288776103600825098726931167662560579249569560147390353631225745864362995125489545100077243208523105396312636691514894591266702159200823556551551510704697095057281514706290671645802840431987306996748950414448036712444188627123035976266342877240024895704135110389227416201816544033355244036885831347701531089434064915837092417769489314028793935455213200128409936097307559017176053176903744691963218827005175423179950915033075000610319074919311584505221069069772330049330056233220218601246268471327608869939185936409973110215106438448860211481758037886751652623118581155727869125629070443128788562468619488564177638526019249514184613273225538149460604265629630509561169451212481712966863823933076360120301972769306177028484790378530078537962877835722074224514470457695693151321889372192912583722367012780032595285548414243470064356722873587222398826228693140420740202452274809994346884571727342754085900873347301836664705685244815777597977471855196693365484398618730257488918250896154562922742008771295907481965879356954373641716748355519378077435421750898943158898013393619782767152490620981601435464423717666079209191470477721390187922112489770606134770242342333391752434409837355069227474403362746736038393979488089297840418674802857961304946983682294044234675289083152118930305522939102320831113849947201010941358537166596985351402144740809405580029331137142785026711482286902273640664222839482499988077790433049333625552819161946117786426146083865409007555051797705947319010725245133412045673971175355486129984486016202339139497267348058346626122519607611321782933872363737631530222374299035049983910601733280412219623612702721205355996470008139878529094144540828529877563560821182171540443108076377909143649614658171697655075035068377864260494184157980800004521267318411865829134404061740047783370148341777757446591740114588054838953768832540417205406313358367026697789395683270264936285013491724175949433384119833162352116772493750292985517229869880531714604719633515706630194718596902757610007438816424893364441702188857759205225326911300014640722002889379340593586451920582885582473180388804910035341733255574525623089284181378071283676313584560113891888632357860580014926003015998853492370519139446022712118489825360977912028726713165327738586448371054005750632424076681431323597177201652533907277590315487056769442976909608942398812445259359532325420157637156783252647058095683970565940876864932197650380741949000471701297225846755689558037646042378323167022256441558387669103208233983082982171026407632483513584010782517760532787906563572079355557825074170357172368254608497417406825162765787037509784961003834487016025473356290906561200923724361850812697110959275840576642771249010146302753136615144692745271748537793249252990022425307903734509378368148698444871393093400014421562162663317643928843018173209339849467792013142542808726064704891873256829236020788208207015883917370454460914037744507882198416817555934846549066334702502577810121512161957190018010991778580501287473446891570585034497728526744444813084795722448986830419030424381189092167879294282287387251313198158530393911789024966902964554395403653447334845214093133083290563975837645655349440852267134498709314816996262010142499834285045347466244687109877932563515872699001946223661844547328507164320559034343143202407681566651969285074844181813319795867983228164101612050059834652566396256083209303713484759141848640184254958344715590302461182908037475568788097766528941492074905819399358927521023153020505914215573883790717026024595979656481964110092699933783503195321241409364387067129499948003053513070969230296463725705413896902651341236429063799472220532627284633208793532291882162805564268556647439599482548045990107763276870567942037677134594510508092568186901244864606251989366685681175536136747930504254621725018730401024776160269935673205984041501527016482612170974780730725878491365824769864863438183605731043048278294043482024533957694020011593386446302903180175511215150499580387678460741603536076448342936337131988187332184067597713041917455920294075487495582687123120082178108465005140927576855673846570619288277041241823288063745348965366837898552037842170346031079469370143640436803567801862404284643836897027922368038257218711273236057782482867379354823616748831629943225707553358686972886771870710509452340809861010301793503828315167798324896671488704584629237994760748010154113311057991175484539478851495476887135836691230152076419748088837963175783433232044054132486571083216921510350776253513230166333970441430920546012163326785142805777821364069700243454723366015737876367607655281085331406949902311361046033214722398658287105868396181404647402182749567201063271445693218245994307061526148478570812201013361925303321397237065519554829264579000851953581083270275141585319476229800426497129466137912268750435386965271617659537442935327578201804434160190072108629599979952939151394960144200277906003080565798591514519532394895112771275599749015889701114509509600215216976431000280431345240597363403728202324128486838308757788124600241026043188128984369297767106077951902371834732775584497145513226071600902762557335822901232349621858032558405641615358986895875025929979393560963849740823893285777038791788911242166771107353636035927194747924560197024526929143601011060344168214901164903280590434796728544458938831240813421712985812404769902433686919754635223642724673345201689514458475378445212065387933546644822787516753709644182814534262419779901683350883341887204887340182830748674623707160386814437951183984010586455782904243023437591399902676084227484065911888871413191829036548233019154979032533902820892579750400243595559847996110644578818921885960003944683504727427604080408423245115924487318669926855051405996098966779221391439297464433524786150372472551366247052115373860370726784227498485721440543847255851822060333853133955416867125223192846055761081046190069969587689191335611303102126638527621371655914183492773839503547819177366643903654196743369467433748342136804667914138824478644949587478378912287664766151030111373989088879315284404933342346515186690183811536622874841385045710685991444497833699338185636584159703380405566403593631261039186128703387491580832285049724959895392280408092194054634435999318253653750837381076071357521965307706180948167992013997769509286438879207398527760876130631379045680596209131384748466994701155036961133282771250023194638027769197192537016867842839534646986531426223933994757402485682224531453857689971237657818259541481974730309482530971097228155870081149908766107621567375721722820362925172449860408308192517252675522110767512928206891742935528781608224194429501169847486233552840119841236502518238786856090834559280435556217043182980758428152936749836754413201286030385821543203457056761013851467104831944636132218069781233069408249294674173146222591990665477072129033695515533587502710423803405382165825576655418691779144319764596793872321908339642153305137731439597922469217686400686948138181978370428694601110516599991425401010866327673408370535766778764495732268648950663440294625223304467746629995266283032745414824576823353061448254961365542483841918083987371254348844052927742923653096660875023247319846830280664055559317545635246671233087705600700290796347816982459943073152384946991965694919066327776442159190465707068776989939480651726937685814996846865181463186166657768034005290777511739731047807109790735632678863884048031092334075255974651201782270121949328930368860720233261431482779271316517214115379074959970930471905907480129961934131585077790958429658381339396208828084384378526369661610312120500657240710445777665972743418527068067055236163716547814965949455236341786166604661197180137303547959965914039584935876917807663014215317188974844689951582378153760004402619488801041834452057411716863490228298008025434239403173502178444846125859619224074086692789381362373202927005697983011006821704660265253757724496625204143778607912891041133997016628759898326191867550384312853128983987164994670213452165565782550549287558712670548340069704159719804366361389915973559891201157475575458712235257282420549652031898926995524102777710928156249909949844254455666201817754523138081524902010667089236898550986622173244406828473032536047443057463912137498223848246664972302900684276440772563772582380208230137260077956625152449272799313077981444968503538758754408893907497852893971729896920020346898702784300016992135787533742215516552053057723527399072443028120993324125584211307566613645930379058768617552039503510461291686955312895438639812872531764997267897171998311523319115068836431828165655021138389869791111099984170568174048775771835366599258309201236212893477845062717630119921341757301749459323259037559055859138441688468579470676070591276623011953618650980498072935642513947186175205153732909855379225523380695746206572764149891091177896771455293350247548694211918595585419451044217004695629074643994216382827049248975222729267952881331665215196100242769248184288358793772538788122011096082643503191668071842753704010645507014131834693102975302731350956825175392440293520793389427923396793252875411176811223226076430231301443175703996538452556644036783220696902008174067096056271661828710441027908126262901852128257340920621938303520879412550613225474985303502316819503464980227358951223643396320183624779262357923341158810174225242301241596953719149767231948018568699809284909358282096285223587040989722696219786675238526125344506403994993743362280365931512207903157633804273071521989611852235459844382189924548732046619435706914697247787481652545494657182078079247180561836728091459368241866858953841839143302300594522111184202892484778960118892634069105172018414831453097057329956707259583565324727005624396381604844004776574114364316073279726007023363849842103276232433073071636050862261780433570417381616437720626845096890692464752072141804048082322155956219437769298425725834343094012208553553314917937743407048515337918371736638921851336574497900304901498739973875645532875966335704878579078836158954272135120219195658370403662799005069311820215010100895747710112529486120964447456535634322965890726018583369912227168737343879465676217797654191021326385851466042158357745122886120070885648329565571911208683556946471000177564360433838299288435314533804366527831748681552443463338571205878804995713339890978284987760657850734920098235324675791054105890092753901407025615025244091611813471561280655313073438337988028034553838385866471074215855794022673457652301282221290276656641159589330046041330453280778259254346263831089745290488075593035795411114826747967928117463914162594510895845622484809638278590589983784385268943757500336906977471566990697305202339063382842961950745779327387163076603014521789931856853099337948865271831244734956213339266906215098222223690419319460126719707115523051054726064286325423647532879540149392053806239768405817159757285089987390035405058072963792000408783210947226709533995671135697088453087999720597923712801039914989687056701356162898774353083113486577759206226728895975142337777440686516792593103782075645392083644719037983490092367352785481041601131987509605135231860854106437094062920383950510445161371889194983800453325477102045528584446292896541619441086927273280098952565914305120158720781039914250251419785633922572472098377954837352658764800176476164629737100942927076398707364448521752425990291931454079418483793156820564869196397052578453740157421935564128250908476686093665876589011105202643027347450593829914682536194890358667812983319646517421176924702194016069828653361926961388407024210333056540561233920212188041460334110899594190749838998552893379353650118175748214502939845999808071637934882784887082193292048952659024605764521044598051964353679377397618979045099221897892163377892105119416770994222694235941241664574897516393065274330229084163326665763575441621644469730366940470412854466527705449597661415467873301611394815899919198899792382003945720892508364171286526684454167188338921036287762751323549144535210871176913277318415652933777879439197330571700882813347442201463093124771671324174761937479473214286912595122648751754413699375889769909267484539796364120812362957190241465723489797892043471989766134725793962489415742896044900769802733996326085698783719134336709106467404539259974044244682637374168257117480195123582922631595350729753225105192879640251766457455124645130329675628343013331046636435789714295825611818418146993460493628588603145311615155754965344845840159601037836405130534734851094927976360225640235442301055237814793611193604419133502118254199147894928501717591992437446910897643170100057979611278716180512382298890052983601474591001981861171586344825604011987416364757516565677015401264980417988479091913777044472604017434170617105087983069990377879668095194629278708859937940837843928766103376062622373976876145817327573079926873125821458887267471420422115564301998765000200406870560292518682625100831607740141366981300071735812190882526064007864916520860154894270522867202680916323440435915118584921192197437668712010807023448279894738085185321101728440047596779599159741868378084605338299428717548970737276991938135619311820702537815375470795587613305523424880033568115540750246381101953376990980151173151268602596643816621779850949183659240078156967755593125673527814932122086239642663427949724492803268950289516186579617339257655255766534069606761239396212646762773871898583914260408218540460425819007963543205909653228636351321171057559374602072581799366619732498072246902541541394753609728097763835891654276331837953952329776906517823975336509676430187442096208413459882948676629879869572444760244328140137755489451467397816568954899577419515345510518760295004027258339797918459152249964611737075617421377516214339513343388687502700827117251782360915106981443099082807273029308344048073922855778907250043579354185018082957317795773711368616068591456246622511396659703239386945321793218302006853909734267202310791004301885473593634055042549651727561718276864240896924168090365878306430083325619276355439866930620852219013827409065563100446674812759848717077548548085611463934668644418709389620016474533339396966247539278330396519447123605860810693184374253956358404437453112642078564270267164791834757146495573973032872407275587849878865862669989993148255530177187353820420277961947555892614741361816587084414564621871245791437333466607619300268824526703409273128603786973187661630234331703181797275873674303524184888935549296163098654466724082675823149082805413692690594905180850938382814354719142081458395266563915742849542740534284699823611181863140719258154551167419673284661130773924466595382867027572922500357369304570420484946404241048803700696440067129855232620189214432132083818400198963387602434956045190522278658098015186765873493791159048348245010987382203661018073745739549649137053253678557482085619649660085990691229733010280156282708628472651664723862834158759358284021355317778128923183676831214658098332610317716428501066482103679748831770621452817633081326579137106209582328585376733774364986137434426702191682610543608662748401458160845178994253185736672341559042443220129795444630862629132024746993467298638282425068127190118539438768330573630885596033588357968083162569592212130494736292709090944119150094552568041856999911989459074525596944795302104215502062528212173429730899756088165038915474698866773809080449351286565076058571253683964799853202785733080663985544429006561385675896685972385531457616331918939496083903936343337086771565124579897143366414753595634897428500322612290324155181790085402894939023287794354802716021701917175230263712059529453753806211258367324486021818859943740741739511165399196851440503267556701393901546647940994518996621026617941627705312449651480659607143197918948646908640678894294326114598802179488448777330084450153248561099559947947750259221970399209439760535400384727074196719835707442676874860018717793106898022969178436825716845697256719692854382642454887525107715066708020365906432039464913062031284785101370453426802567853195968539808421139023656535132757367433774404808395427044375417324982192783333168554329707842536388589146430731162273313085667689191548993100927820486941468256436910209490681175452500277123963561078751080312214223652935666711332539759956606712862214148426907292008702739371780561079098288913141873091584028778027736187526735352482060831107888214372674147650075298310844971027131887573845956762523949106125909654763448798711491387608562689770717238615507965057658885675374057508998922855442842510704056817442081189173636203426577111065901278883687878834544923849438617782738122222385096574092553873645250018841031422190102279949361984496974920087724768662021882722753064385867493003161142703661633057735045451140908291794822241243930404656460643517543902494810575649172338850505900802013566396708210553006914763603903642234901394873509282780644707497152321235483650201540464989253279856542469692824970172391375866159104180735630024695801371864937920261136556913819689268708958577246676019355115290840978808535942464964732482764323240370215214766636680739372104930522062410778818092472300711452398196663701487374099164582532888794866554063054033891265323478165732613700961258886604051319709158176877058552874549380608929258404614620163124681235631026576988526422063957366760555188434745244465795827597161263705897004856623758022584086884597575728079238371083158053924554889008648646360041135138709081535576249739199362935254324881376367657359525112213139954149340248950292397733243401880983291018954028465052946221422632398416867181077406396614578632366492977560255520233824930876837925864199372540772843379048162941183000199715042815753875693695114690196549627446796541251548328417054856286847977075036893828041861090337674696116773340117807122142603638330259486089483330267374909776121394921081937570775496282266295439289782276362153241238783960197845218988962705338884706758077770230266436948931132132562460931539955966635651559833819033880884737869998262427143381509642643949177762626675424159939835095936973374661653947864744184533222885732329317081600077565887873371238300553021909236810552840351196478360470842532693433158302848111356696547961069837004096186090016657131535994931772882595660960663818840603544356517441398564071094401598479893789175674772946471658964289148722637226565136831353526913404332483653320641129289742696148654461503609223544275223789200558909380284673032918779732418953380957287838057874141622346081592790404402112556945401684585047574926007167226995824147342507803212181999595408022816051278120480139700319753651332944126500533563817550496457702018670157880346945347699136559751111959990380611128418935036830513365735494803483553305823988201921409343910843309817934263592358345662669311695158036315870044073661836869016958046794157575455344851965239649622283720026437302459832755884639024541751057710636444355848085199045154221288292801273539883678016569779686456976622159565339400737235366522409485264302706189899881631204828843774997540738400363815619270106212971906751637520999194157509023602033231696151392498571008315125194740574930704601782867068697579381350060726033943008477916870011151678277202651603448341835694904716381305971481918387045923268327605407124529236715747441424933847405776962845415560976705381027882435585410292795569241216964415623098901279885782616017181340258726183667922102403728176061492166287091516268923645305842134264203284303874994877835024497200485740419223854799267286080342610974820136230631666630514153022936474355406657056523489304290431870308862205624168139373713521007663977896826443247685296063142966552909105695919469148163770486041186957798214555473063373768516875510195049032609951770873499849668079380172032367290891912594017732232266802770188043941984510378899805729445889551367205278505785057652405861999016833261175842690357150362279796661891803403171880845552093222996880189956430775298103026125569973458752084610116732762533460258771100083282505649680068269450089904321520434526340237579855781112181924680288560136764155690967632660006410983520022629538870202053603678039285210722320925797739853250577293378705849348309178531555592714546423121649996857431204407673370836537951474499231192627887539046300632757570022584882207283137485383924720609745769685713815460230334855429561859252116261768682870934397661234772754527489517457306278559266619212193169305712057929171004155411916481995970029310463065029049547454690966763084854428439719533163907667018231549880298989423890097749942476600899994014628921858637301995069902208312289095913989430993754097423469466781049395499988930368059170963267694475888227248573784675524766110327990290669731601249648635168426842854265651471178731765838177083942782538437332096385569442515368841930543953669577264702940333056372002426487995775632127711728248841094315134696846542104238111230408843890617021096741209622441320886497037650565690599366587775914920943420894830652364092939742670788167519983082023157267293790230576898296668997882303915750198176069088933220763269739661254472330573954678593903996441453211383031598583282317628412791143975158027637234104816130771170034732176153168083650169254932566644357205818805055109508276788051286666858312711996029373391091566233427166946838293329876447020345243010861151071243783723498025728525829962307042654109594114584044289336390193776153380486600553648618619849170670783255127856089287726110250489083978740980985101541601001701995449146039313248881028613136847493382485856977239641304562418361560014849936949862167553404738860913237190563064757176767926879238344300489085428009512745595871578886054081491900510024109131205980488190436043845280820716200178332271082125256365120468363468987504513953744690155021308272940459000488370936366834768513382128309357905035011972277917461431151349549016970413165094230864489264587921832775444478383457373583457469591540898030103207840810012797448946069402090576930173033827562554702250775516411395065247806117391943474141291400255326506445608172987185304339348282438318844096489999480061498389551750426997843093443858243389514788486617138344190828415592102406183642156259888705577811262293687364897047503745087873681619100255849725058009942798618840280763001613328127197045694463016209211741703141208005884086430828961904089116845547308925756528585681372571316510212824488645228656935501970753241122303771054351180022409040930697757346728608255875391392298950374349734657402353163363610207453292214542443529205350895607671004839162264043734223741746740924082019431300491640038820626462846436285827819503517796018298576665668660550110013689068249762230640984810218728153667163589505931538692709871530836782019636744595286220159862134293644072730585072639588264690049872162943613593953063687042940300004406050460701071095287627667397538192081457715226058453826619759542235563150211778778964035152377908303768860999820616491106210074857014033400607624861090508634901152183393299733343603396366638823399412332115994723693214713041755106593388707592944646279889777008014711220163611944920205736845893660579302103026676730006330254832695548350445838191665993169015410671788670133660013908390651302801290400903146624020884547521466118386822453189918484511034503821409592651690798529735312402420336038107354336984610139390005268747615162074170427495082460309146235932705528023912387076050630443422769376701495735196676094055498131828988752301062340117100219483163997903583581586769623249457003675785082782516705816057983503285806101127389149265490262413015943318461190413674904618832235293095579863554014334763596615243225226811810674760263325048497476499308797007823621358147071250492925785719535887743822121063435276250987194158696743715391924630478790067493907007459364513705998027972872422026793341444419492290697827453595005977882637362468785187720619124868454578669161528696624523297542595871396422444541234348504295731390913921065474562767190143023031499719767031370593187001093334750059988636650711519631842708470979234663527681491460338126285348467910765232179452445467878123437019845532912203396327285777572913091096923052623480160263692875709889283269537008669433584840294248661724818851030090636552273997166238820997797281444382611891109007609185542400999523560223366942970468925961986390619628358280973959819773986270171499684586629811009692828868534956704051928952676507250176422759928313603638756741041182108557298660092769173814502411253864115634847818549674294262497117796286471730672394710359981976821400501668175191737609487275471693992602810352676999483792262385491091368638590987903937746347469988809539587563206104325643683019648916536569625041413163113591858817842530049501057158906083918068959110391035867630125621932023346772350105182181683263539966828561302502298589875000164013902534587968698905734504580281967187615781628602236496985064930474654144551159996326652884153885253424684446360481751411782868974820089496525889784600797170225109075909640631646819518396722026182424830927656964690275160375679801129191452123939013479682537702345883412480204420643657280936166871145503125462052082601345243841694927408463078459699322100866858241212068987315874481230437954853757603326999857822142249516969172057971922406794189116052470278847239905281586579251243034233652253770010873683972956542538448882043395160591128537389254244054992997582043936358129449461121120863835247694671713907457027716184419501843850118939215728695749017620549076467031418340098722980450919788607059353249318628151964324617691542478810160968545232562082138993009096389615221822993415745906683420404356640119917268328900748583172758785413545237707178224113433917897292628429664485250219893765576706224934201023090531900301954848399182925571688466007974554502907782515602829190827063267189970293404928432594679223140102316316288539190228020323823491754780429039251860996121013203658751863561342071382900928895200120011803043275495431672806435655746267238610059060805808491429198732868117724981763545310464322562070031215834213117427697703056595996727869393866447581923128677016916051245130910157300836192834921669466474554068807483296267445673359908214058254505055711709372124169928445840490517406268526709780372200096957463928558904474782700517872241196896183614388708682050865698816796810225184788542563862131892872959883749526674692889292983204558921953213939427927433115621715710783816797473214887319093263793761693479205797094085827598030688668661486521144319859643765067111288364943233869013329227207197407337993845404890080316360613368207338302090675358735170493517673581675566552097687113972502196753312414636518705284797622733246032456139904589631364521704738062137760629614357993868996623838900916555300496197763784695257200619108354927894159910842049003886763621917080935052597147347573444019837466718320882001507514737771406751640990210419513629931914715549755844886754275707889821603931377129925800869259717966060134826414886831400708526119923069115927614828262537596801290531446353834713006905534978004485771361233731184304920202755850413373258572235657808366494050056231276997679719825375226188985757149431373714814416651156442215473426280102127223891381354906567287340112924430127870591466759770799016383185725084784693254240209430846029532763587180533414451583890998197448969782096708951007466456033681850701009360450001319662829523855030233685623953989986836232352023260447184222349987433613729666581075511256641141635507240025293921492161304394829493006758354174546452716791556464420660831278823402650351976577342620526544484169855165623835734743578594783738157094500272482116506372029910106815122509826571506070828811355167186418042860315336524244156692135431789957186466524007869056884602240025494095613849762601676060521468219968695292320763549258208551644198608245845101462119056908945337898102535607968246322662888509528466492650872684773032456514753587924226170044107496633339211694029895763118236403123869709162351303701391969264832657610317356073199616534753833073758381991137681324109568031617444355591409524020329085858807328975440177569543093505175019119330825550270175044760517509572221588710382621433149758523992537851904219290494333243705191645483095192344920462578904642527539594166692772249416597623907117259546418882269128502117440402992226750869747957363770378207478913335896370829563153236071326342647720256477800589645849312853318503775300146553883151944859129141622140728117172504015906821706209934374414817772002849548540503362376102706738576841623547710297533555080241558409552022443559956485403673117585903186206158084903046666523320118101676647512336406768021599963552212020038018238177702676865634559298431456292840235671152008442579828985082967186327474387679510449587266220949074994034158572065990516612025571270539941883430995626555658274558859244689359997201594464912379648061298423372133810968506631037189731579929893629341712284182683411196645235612882947777551366946563218138329368646143596381818319306378276804597557199367567483183785074310791051879751154731764680041168630290903093527735719498577734810539221619263792223391121535116709155624435277993035792632460442462195930120638047736842775324776979601305892138555768421685866558773920522398293212843428151244893864730374372555343416474114100804328579142781926739987759291777160374706282771821405412593965256102964313766174106982130389501297888196516142029544913396227398429294479909825173695832967169458568206523106822257834528828497142180251616851072576851479072507245505289903839573594355960192233903142274602987766621713618084828154027079549613701211899865696469896020232810818090382748524215224390232501450165625538446951966744227264174553439962913493554884986390470833929446717121576457889919506081340346484638949948054990257098706606582408768409050918934360267126913060586259438535855234598204591044414328896159527424504438666116660253820488143383460234747404268337848852635968426945033193564978085468141916384826595848248855931969086932436631039197642242083670951279333118930805230308802029309512957342490552306420153227872925599072253840429142594567797235546094941427655388751922590416115333997674970161100067470204864326969178144265581761728806695593469180390228254773423067871256328236142026287250174318418669664463557845153583669012770094817806605902003594384617874489740542872022608296969475540998647345562401217621827898514716779293189613243145939991956383396930172924351289335257727327925739306126823273057797599125397718396903221664952750232323627014522823347676635071984330182912170425303276593609746433914894606325774239034060122424936552875943649079486015157473958594859796332249436058916954666641913828550558585954130034116326260111044949071523989159917356096502068612046578693100889488086738753800353737081302369639796788394184322755865827112103031513313413902089356424242228757541107894281168460178133134737830954435251054750909009137015555535636635149873301499357040162527842370470494275166767088754503464048183263947473017521378800877956030631719477098204488290688033398993705034452956276658094023579285731253597161355752625622681466645021493727118521995768085063168659569551986928073141283396602040162282741323258659426215834043262379845025754296172731650051408278303650742294757224026962889517941634945049526399890165971104707387757729114781674394019465322480809161078270775331252633749365351707448677074990048644204181962496355853563279784604450224090764353271534705404361664219648196900179535486012134497109311082345379100395474200130405405851784158743811878324184012119681857868428823531765455090162679353041122498533400875433295869237440948673602483953899794154809591677864966837582174307181049962783128273288654632798470765554687674177805357079564789601922357475861925552992562868339006097098257258186721263686357818165510092334059270568168140128078441592320640970394787233099825938722033221443952564624289951913390013057326870730080017113344722936277489050385744997915496363879258942149131682499802931384320537098982992683592757661807365085504204132411392558226024392011808338952673737359061191232581193122799859908036751732830825519421884906951747932612845734419887496158265553152828204413570862891954968623140305855986233425351469107236055131535786137028103123377378951201182351434712191051764887913208413821313937754238191356512407441037015870322045543524615560001816150990352026393576723375723507339243646799031478672760400797187492880756482529495170438917318216299182223470606154854164371358787114252104868351857043687322488120920308949642114130117151493712407437875341764833664717932863283779767587955597172836330142728694032121372016989359423976616843401900849871314660076697546877452893669635575322952959669714803228748904945789332248366890609320530372348282778400938664866294168941428671850024321493682941164507112760663089968749500849455528292171561875522807136866652164737178680381848438381698692134419734318373374544241916680088442635232984185727075908911657464432680860315633157770210960786936556440151669093092023584598086560636381237069370602401276884537916520374382949436862756815915187293790279197937019449081666966615774537819053532552954066530752308278465601476691446931095040804453140717347307605819323410343151734702439277207980253883244968710129515534983553132885798630267169362845120069956134817632774496790788817916441239809192504736778385076425856457468570012255605138225748570387044545406627364271118991541474083927172529379327252507713289271859930068706772211363752876238877471823704917115243447574375288170276909569265847387955252112080456685467872919508905418474239745786393966147972100936550993363692231371602208540612884841462470056587500487148198512357588322286920662879131287479687011774936678736217932274822612699120227786804256963506905313948491054486768997795789996437815575270296547959225329318912823467993543589900096523085057290342357951718163788576325517839877868658078616217408198929869978259337245709939749458348705680838484188511619657019752258562996813631255420731754065853062692099296047234557837621708128314034492615329123663462594740547549151210364668263058168523005438218229648277939849848420392025957499669637350160144084970074781420907889021083796088603328525908670461599027471124887280549935366909829406571178663306134424980558724307294758461642720693916783034557665031415497665878988711041755058266390740918439070194965301692584059363921159537830983591841177497638796810739738536585031573200424215194270787765366026864385964909982085886793855902331666033070369388166215376703954058821636897097331966904853030363769628693772071805223321312520234592686470277405614539110310256938273048925271269524983018010703554667853598854371002461778866242556894923381552073965625185274870098534569786493875712746345835156705066061904912493862998731326342399170717640353473741720927286944129348608028196457864140882882252656569462349060741962477582132575234296845265037182452657766629420840837209326945002149129222846769809124180280085487261069437226082501831727635676022131866675449115118946225894280213327111263270179174383411921104437040515962203934701828546123182243418066185668661336081487938624123107046709543431636663754722149061961547460408550963653725033767148220729235581804790437820223052653362426830942045117238153873726738178801041200252007554559118833278004213321904419426445113128237964491828421939713504882939405240131678413485943205998842859871386750944945936466423882947489052584398603485411130876241314663569905146982827684179884545777532694511343246169489812047833946559254958042833482388237100148439476447011873903399495680559312969423135337098655991513362757001303696635756735780330083886813644261137312509248738475904761074963043282192551061912468437941953463684803836325542157265437188324141738696215800765716308269924894497647690796206206709275169937237506188132648608287206487647562060893747145211375603496188280291423315274487058607122233239320639685094280777029004815442001822719477832180246232194141892375005837986531648993037300503302483494320454444171026172602233957356696433027914411336313258852720158572950777017171214418984644478011335627842763251604338951775260093377570457291411437784894510329990354928590700972753010704862442704805602047974291250621528036532407796294719081957144299947204178654341515909234066864504448445209501071046222143962289348551664928251455993117452316209315753824661953480557667587267739153327478022785612860390425400308871986232452234487737564984002702101154619176505678078888838900883192013102856074199478715767957116463538396045605175935013815046999751187895784564996235642173072936063425926665013093650219038198713507817323811657149095950305768138343844288156068950657595771527568192392994889618812174557041455897544274281033967886453987795049744811257122362145549755883771208680525223053915237301158032228617985247077730696049104272540936359170993982863439505830150900631245449281376610701478413363521097059825979873592337490587420888112847843923701518118712189600979124764821241462882325595666889691240518022923029603392984489598140243187060144296278681424035285892981546501532681857487299010013034296818223284612740914108323531938785146840678781790398137508430188610946971896589426692000608293643018202379635533939543946666610414727173703653940452354319244052036155723964588726479367673533393752681406956809903596272136420298497032419734993885801714833161919976596449020946931474447203381325099458948565468379251719121289779688646590773096793300476139048350184677881525770129634358742250628664586451090561236937651354504025215971075560902456081915129372864097404331756503772159816312014303185447724119223855985252592818985647664694784324806665916032893936399225536910335130067260745536966926816673127896154983419497414533637587241632431721687466273681634295830196741196942184457933890359470838014050644202492235339480317409167244840354464988376693151898848653423418189301360358240602198291324553087497458829046815670772260832590091040052376432883277325245299402568478168116564736797124319335181833689992454089009789388174974068773964696841117834691970203631777628219759503779483680098206519760580725891692914520224723814393571210244761366104060796140452420381753100046979700352813866030262109440875577328107789500162156776015308528107510670322535443599271213323956367663344152427439311463575303956812095023677571362944097237444644804584278971190116875366608824292658549928807067883877677282843840713986824068301079992663627435054289575937498927088828606877425552469841692144224689624682640241154062085181109847507876473799271878096090239629235267177897404747344788088430117609532261783524706579782228011417436016085806237776788512674179213195512208922624830955985638063491301007903273900491825970280179163514144078307297944149090755998010112375997356947821363483703458303273948618848254416533637530029924605062824180918584828575315128244271562484032714560097009657515161174030744886567298102469580519765274768083798834672729655270616939880128809209231465708634507934393879442610763041256578243855661837152120930833578299001941291162192119056371323341269164290603935453829935898087996679304435784658844129919173071935973071296480617647712448802556208545231312817407547941702170081120636632383264961025506135545255605346760849151579759234769147189411989237814263743894060304321574581755308622110782810291135633077234598826728946174086697619131277395727551547009257957769820332294523662294126654776628379701598013507680746581821052192531224516939199897474696715320853784952073054811260158104362865591913481852266795207339178446096631067946972723501672590890259738834511442219065529688435885211641104895062453604213040437250272712874515670316145845103604872670427788603154275097353370340121552632928900354092703136977789726706597049595667673113110639150080014964003863089558120379884839071078114140013319853023332796761042459657551122110132481789720300106029995172253684202363196544936478517012817684453251465684624195906948439384703808446158410892985511419295649455523114822869764688927674934952599310902389652517677069751129865027447244066806377567347933681832781549820970958208879641289092825465890648655009157973514652793241109251428832743065730051745043385021118921802620654036134947042057524749536969086521219116229529511435782641647121163483625265036525867664960654356327108024356586740930938657024728530595837628487424025485245928634997774420614382045804668276229708464117218075238869115590474988516606605741042178760169608237433120695194462519886014972852642725761565075424149930150720871754384541312799550141578906920534220629109557751999403145657998097072132002295745983885831738256517482778409656918909730306174228392834243929482686782274357677713429432635789193623100477134416363784244413742094375339413662671764116933939827507317124883359906650650106254158114711395470549659416815000378728152487075579529250863185849060878643135247499598960735439190902212117601263372777010782041877206571097985961806121811447435132849432837210944300253337738864840169242102298833992293101538323475551255780414452865904988212210206870513610301605031995053123361672970569611114145674655224925967767690264851950002544578536551306375023349270959244971461724223683417899594714593380513943522945290586236494990864307199074203588661472193358557045327527411505653713568525526841983195983371322847540331465195655422149507637931026172082321738023411407507880389524832121513399601581166128757038384985257804089074242005919810242563539699077649371364749613753941379334483050879630548986440098449982950730883138272212703603285347032834283343845787140264102526152858669995880762866234514358198790610277820131442098460022095636887530330939661978014643184713025626489495831092757358998411249242642069103267563779835948804627219631230994275559005955114791757000428029831161428623861423338675702996230580018299732713698712865673076837149660255005376264239670986777741055101210550387283418241477032219922962592387563920414683059464234835199384776398187821347471795641365197995577387447237927371467714601250500869738343301749737507130572781205430873189022888941725726756458566966052119152967426185101894753512712469505888490609361298088857241887282746468266864427415781666232375968258475129838517201466358186921335876361034069743569913072521215091810097629776527775207941625990384714199386185742678568677332659175504582478866456765808385075200283815514175967202877702171005340190975595148192286585661313820176618784807358319762512107390660540184354843804486086189698088001706153883708323451686843901607674959557387021499983693624640459451280983691377388506927716796457070996762424071155093577800537668876527035414720584381592589773825291628708802723588731070207055690765049865340300292339690053185538205900593002067299490083235797084051604322843606106158249464954135718712089960195036285057255407954759351603754068428859219267471765801098145290274506862713845647452463198732057294707831216321330635310235038120863317055005470471420633530228162289881410267869666025904750825415693547381834432971174172886697165476000557644634419556674255755289336249179099757241886305072288277973320360382612182294769750637014789351314119932436330467387330933803484193166397198275901275154649352968508200359726405010198177391133973747547858159637228890837603794742061530107577142615089136443655358031502450334441809633774108733755148281614249387025136028755741907797922466719321502271678573321150211598188651922988035908592767898717681244961596364085511221445038898197213013651323291640071065156169928120864004184933974470243947875777640827741399868758073240752646081339870806678022982190083426128149449988835566054670727312289675421475902826145195450807505073676321409673227012742290471124687099501991604321034381057092820929205862105576336068906326318678433367727137484840555861293016212739773950807255723496950340024622496364477116676507440642833421080214010515115843725296185549152930500045824504216035654883208266630454166758901839899918639428699597560704165226085313446117896173072497725690928677724430388574042090302102734262749803768318025720289497622882399401605266801720573397814428067293549923628405783833345511331084923632397934754424377737315983775303563061328539459144739686165160077600173168391402385863774461800393384624304669020027288107051297335188250745221094339373220833064317132068837371096660645921279947235022007289335151332624858066924722738180831363421772947248040303501808115336062544031417662424148430758744400982967308350276080918143293775107986502424325262067404081030343014533796967380093495732743992935268938907050411653209369912307178483881670553238101955269505535527697618796012248678688656509111292524846497798353109906499380104932904003794264777595330327852972887392797986465656087874560786043255978140899404388697491825481372913888011653838311507018648056986202012109999512800564295394776175890052239397366030122586734189049129179261639594369019747751499418344900592682661954802877150594240582466416870478033753224333918129688378348915359152203364546696105982559450094242317622274379467260025437694775554797419119913121213201222074638162306316901923257988609167385492293640748136190396174544009802298856442383521558984885475580589211022033945937255945130931790547558674037339579320529052119342835204553033146499789673100271953050265637771681513466498025528273225859030288871990608183143649218775260223583106885606583527075853022219817463855446683613846868124461608813083717344041697862688867088433139022272546363105368692055443565276023197694065323449376860950831624895405612677860404853268032315518562250222088477164189260950278651931084104103144906689197794770847158754844834361940856353738272013995393121561171078796178968420801548882134970163822976137154247295051178777692226307085968244089510892608346706710269129618359054935430549358606679719625912447842950903699748454636431494391418181596306819643673913679353825572037980656079573185199727993414787694235115899801118197400691602578688864824249971879446525841851694610655035339215678563291785810137144842186113207738564409077418183758547044073039147085216470479114452750358264099061279502122380152582540422143836434388408368186041887121307305429700091484537754292575679295412309605659037060574028153758620857930906841724792953135813872131524221504814958721051055205444181392386899139987332412295813216689460931274767035342246669293636576854785518639782114670371106938210961856425039692406042497808564149164140537622654381948857060813752793193833455837200247152119253029365343836083206412922381569703982000798088939260047097065418458182187081126943648201274064626302362192507893429581206277941133594763450356241902573009112365516405784655236462818475234614108653890129231912371745858875299947201082934737760030411046491103851270783465242813627446097130203102684363285609783022818062366428657537979897970761966601925859057862454933941718553090700150702578352026585652686634500690765817980839138737168691076828504103539295588936987323262567166626274499700788978296186677154834117703701461831114120125243942206166153139714913761886735964991967687661142448648990203414245164482784898351854220767147410182906467976444746350690258879434806497064052682041743730741189424103022951546355374786107939373579561582545835160294492384299306715643518848174311099632520056528641854757143142486611855527127394016235060368535319619599439231011164442853727288548551703351622536451918836332679453522977527529404924765823091985034288574827553835424445668873932539253711637373111587159376031500644040379961947552226612356163439640634914327543892871030338150393851109487923549472423018327954766831486496557785920371610460890226542075666671467647231904568786364892412066817216910491763049305185556221254630657315388539921343157839452960209700073879609015584662572185370722088250007445589960402118940572227956319613477065651660639843016812793298333599134700894308383409010520192009565949770343758142519016709616090288927232132904471028164157838975265021669492091128261663068044722245337204026689277903955116819513162316541335574620274771174639250857902508008175820858261104515400108789806950651064985679348980863611134285088941280717035806304086910459242164445822300244745826856241164156456037630653005262486122904207164028550781239342420214749013649909043253560616637934538189706010523810805776126532964179147321037650142663759793211707431296504496394546562628329398978149679450071997552783337446589019853559149183108794874661467418215489630772356957609315331773008056550923152276208051767030073778006694087758925022409804809564090287911294618398105646731093673683670303358152314751542011010293527829490778022032932386164118959934315575704730136232517843589817794827305798864456059258457267395626909112659121215262986687044502546698556672294041244108961334110245921876286950894415020006866271814331335550858820564594977107637720502550127909002663911523501923848969695781169158795807065688892769775736911485239245363523608233287243130614013663620059352869594801368406686763096573782046998854627044100211353057175398959571929345121238385565438305778383541804231328913897021243080229902519954004890600239047413535583586666370897499451683718546729005862046073391664638330659232614452724299215524821003169389415546413885809852089857237103448823957041557150076338646858791777281243119483568320768289739168658295113630627090059684343897130802251093111320927895658090267052388595634892887715850188725302049690985464269452568068539123145342571603232141185905781838494209291347924570383756333540293513246229760321388032274859030260249783465280809528792372027512968408201859874371305273371582368324664063986085633850274475709598586972318232529957296541065829333072656757500994538638083972412925118021564274873050193906022073888351496994966475982064983153697870707442093184773841721037123734587783453809261847688264372516200043964231145654042503957656695309919327484090831518359958511238852613865480755248931819287968447692303052888417778595464598022366904022241685292187932800963777733834066904889860174592212942635013627982621805650584593158045682739002877610260072408127771589999479939332351729307783901858536012470062375145726672376416486543767995636895018519854141493598473490408975499264134043686258286618309684021776772152668583167757971516610663761169050180493490239426077563724550326072044392755763383608631694504787439441935852706831309167346491906342800833884382977829160721550372624175412961950947719721926489434014936238151361992358809980671730853515654567235114771853278746553644986165635766773008866898119694264776456271987448120359787150312120943372281372144292419490385444970679864266483589552819908794026873831405771897549090125302035075553286127848354848775667565694647407957256929391141595375354934158717638996041149012524520352276412239305514665082774665799585621244879930623689276834908737429176874964033103630287028107891672235713313840756664916841273583782608166454820682639506683042598943179619740579693013370636653338604654877946864533381130764586325725507965700732978051662070332526258976214359945142458146153482838413587747938958020578219687501148356425048220989487912962641832925168599157089192723118592919594835869567363721796529680883973243742589926397319236627792002272886459019896813812661156302422527750642069828866308245463127623250229725827368778215077061683637581230491417791325860750213713498775464984301381688651613638204866264707832398191287065264243790793277168351970671184800347339319448017867297840895396462447237305250171166669532364933906736623943100378926873234030190209222965852566952768641554980425733471409118409376511705562076458747374746868799100704606430947005446544097233555527985069340084711601622167797824429386479158711190254062575986920603717243573919814034425341244063777595385035189573312874686923083785542656038430000392054280330949364040506100207264948416406486463504448496991529679991224108603527604724682478022802426477300642600721023849066850130133941318021751603568313975021518450329423435702533270388295761323028941335827686723868741528824102072813841314881563819563046473802358284540445954890687429666163789791693135035090531809131107398884511916298024501520658976954710531778300679353402454380130412172050673806432741619493581555431570289318238035401189912080414425025837820638237083515622425004990387510979672684166729111939872611919571266228441081768886560973083273442532072185802637436589975282758507407257916815703893666708918634042942683244912619414042274293157600291841799007627445169770122494311707832334558907297035251228920792621984248283130814922904863372956357820951484741284888242946459717443490174986514479632676986576740683336831393660879906148077125013563268935955751764686892536519698603721287013335318879198454347097213465079986378294226035536679341636253074611186198654074224492605856224337320165801890295245275372410118940864830680909256216594405597387514686622205705290178224978728297116492703985559882539495937644931605664999007120892272226564387068801882113251821971971300703995921647624451048995089796595498620900753024042598935452354265726817126759010271216161015030634283462515090825527271632331523111075129729950714958038718795061596960062849772575796518344598429429750278647739009657069117615410510654363793830376125142404866992026757060872142224677706827562370086578090001747578261386078063729297959803627923535629697839494421719512216639575759606799627780347188100904037062829590208376100393585021336895266360759853330508306537979003708149968615070789942616958985940122226906565636205201507305029299861888793171526615663849115166743824598456263240875268040235765977403412144403175440852853562657609737751395575185827313447581062713653196569914811887849138434411981830880148104831961031548667355485240857558721146553069087953802976219109389054367731725251655063682899955239929108559378520985728461278231289823404767146335795652967679654749659510936936752359768005247836606008972209232545604825346607893695424374103213409164743449205722566861804398744077359862414750738264816336514248680885002854099049501256428226433505155149946881765573526116169951294110162177979074383282352903332350365001176742791094444878144534287721441387631398746956582834755125433909660499519331677868075851383238094156530319356608429400730502904072692374995353234443333737216563874869289380828052596748147598618734715288726242932198586460867427915535914398755912476196195071156485553323642724904704800613007949849300351202517863109625464248899305959465180171975694456568163125575831694384016507338411757240117509736376420069765901781756529855847434317875694662429486387641237868393557863782362003804115393999304563518303634308775407597221098205471135779239447396142090894364600660962073765933985865155047632423347233996669930174483596136193465305591579042464646188784664393598625222433358455712644215007057370852171151295772341635854687329702511484709437866348717958956348608530458667061224359501549722397663662771859317790649199292457224128814470282260930856695657044418334214743828472045420832391927687811116460188763953673499504289051982295497144052452500566732687554227342593798366939741402415242483907487897016361849890208873986574600141040321165047411544737071627487376215774938198385145443060475294699626962927753491553668577332389112880158447843550826117968014921055771312516514779852717489125091124764964449057141036358594084704057854690392655170920707630952484608524483799950333656893279973258712407028628963884874338771129621636254430783981093407450438086874246935064161554697207530396859250207774314199784437174087532057364784737691421722108191644291374426577480695630198226987468359954305945447914929319397503524419870308639331030943709416531015590215987476687582124474347548859190759856457027403837853829046099506691081076847314389090454946589665553967126721373545953333382642193285040494699740858766527307356943666033597215183313012092607865013516014785328528745210495084542960885955826470551972536092240365408486045516264509260782421539144533793588270749508642144520851006275015657576281888149311628250193094405969610783554035846491796787852509570081944154901273762106963356011826183347581471703762893970027498876595734963627639442888153066770271648485993893507194731111259100657501454859787359940577386254267081201441113201716908450120179553907976415425237761227607443492740942535446743809699716988006398272118729376205248686180983183350116672077522439018695146050067481692040049357716704450017642136752181228510081491937481185061687233119703986065612023825305624256304487939974508379485991492072017649571911516563118498461970714387118967858745269132873760885686573215078475412465624494144779953204390123649967195467324521815956111563191448625824325041604292685257457610625058027600065523523763350965795300864760268681656712820995900550322072815066523888016126256582859461809422480188229352929988243754614654419515934736433216454614089838679712739477985375491905095007495291541673456579643118356646556258348869677697986979044127249560288641750975455590834158112351986338162108827344802813985902601250303117309542046517904508992362221674373168352710550100018840339257006797531654517472307611588465895607295471844357148159834099470095657226738540109189463807330090345913935877846882282488088842030439000099881820056457072563655574161591577336323457446514904383482414253586173817267657101166240535622647621411454774316648201689695946770921161165878696281112949859620108227264797912335745958698286477870918152429772701601440329428296120285615150933451377236021095698944830081373664101235889818519084479400311882921793832446220831706304522018488679523090920709892816592441852218476826720217675843217874244607896197697444814375625705263535837383879777871065952596840128461632288186959151536371539129854849359389444182003270556044451648771402196260163098793514335959198706340354794982503541511409389786659209093508157357852519411328342582438598874516132368598297958447412525460562163676781484874842285484088804506523083662728708190269418488033190184825359462373507158855400275655233284409833136580254263101549214749140583659910645354180824968425452365143664451948345069508456561869544715565003849150842013326966713577747019445599121446804791859661269318681539472462737566761008495098871923532702262065701593775190367183527658467923326089324134594521602864487620106427122621901986691212490465240014196822047911037128871332847975123158746604569854772608526901861849004407310474130425770201806041992317625264081353027216650046177425942176583450602836434098314460778896552539371433517962602281888740509266182818900554289727524844398343167071502862822215268571804750910661208469490994234366029625973641481109877996505128789780505904446313519732693683728739939402032195451251296230395491842945082219438272423370182587175951750703235325235350999516659575501998559238100145092747174633284947533200874134852190503284672104636272589270232252168928630643324649723022264744923539574518945961657300847023079745870769666425138700275311885155956057205665323598250089678523870659054680740593212793560117543913868879182768881216927174541017539269065858287539915710396602944080575493486383815480651000473936036727351333819266728690280359513850514234292069113126176818597638891551809745065100262716673459591026827275482563047838828024310040650312684098270695853285895499786735323809981679754901330197293250922422492929764535599174428793508718422045313562290114627301291829024867303660162254964471893051146228436490820050627538094083047462584161848954803251341401455943325234040936358923861735733798981869256448918440840027162656961300942825473262353681338826739778732384288939937167865573216940715680421746770643843890128082133055795776720134527466648505986987621477454414615240085419441179284442390621549724633866277763741541295122276609230821014555143630855150663515848028833473054193383534593332684980883323852566609595165960547308144999678830797153014079435106166022939002376614004460849350154550536844899100405084087344230884843201399367204610720360693153960574017240181710599307880896216526748268787443780927581209992341164461364111734651446831222046866580023198313202061362212889327303213898672949318043282788714931118690981086292475435139524285883324587859577585629700154758734536290398516167251112280287377085233231639172365104261565054682297635982995442902254901310292773078838172568044621038145893449878602159559251327329847101717259735994155496209231221608258629923172890514697679211842899033594242196769251877344276106663322387273174905276598361296607979643704723714190668275030036303964677229248299489770627605756417788012023004382434942405956907029292402012667860428890428451918479154127358669653564840780055499910769374734310020137784041737422125659207551182869963425394920818518443543040331937409133205998412773079565568520588118961895174635564810898171621133448880328564373141770597042005463111229293744071689528578942674735420996122254985811441393683966737764557734374729773908930992775508711443291117965519919922962028512253638582561964427306408231070740989470130599433362006634104826124086574444999027789472590276667723530246885614348185643670471087377298317162105038365098731701507934357061080018539922592200728568900248245741737223129398588243318122440033228978298497089061346136994808345328882702480521754179026154897037324771876612511391697113451000961540752661695711734484747414870282816634080248526554726359473713173390779187543873453666960911248123231766773943990628648726767529282824136557087135517282958923180968371713696791400519761188344058420740976391006681844686808476751608436108623583808727084886106372730185064286902430351714302196894054002256157789278704217482191984131918243360068259528458147718826993020461681778793453154170251890475647887598132906418414343838120635292624696877997794560743045498377973760417605202978124885924133688388937939074284031613742305211463983634104798652759673477366368926598679392048953657468276191316550454462131240984443494016165274877777796823070209472525765155716300640450653056954075380794586224653716441369007305127480892069277139881681537205314341513246575985569286480536689802727421439624197644789234726076063328308171589404348326022311591562090256986784317392804921232441073323127513480708187420357345195433552678935248345943963232926614260783403570681673096483308939231847229497756071519441035841855787515201731405415851698122872476621031382506052064686832056582062164061479061638078536890668912302188357198887703316169398132944405788845670236779950289917655113969359061067171396319885553309532636806020722345267423591753338280821003120780265568118248888055623331822338411982442019867187526692964349080139273927067171718932160238083410848101464585394084677326774575225903060195102628205432856224937577519730597529173034430132144106373041420744511310736374926810026592600274406018132008177686966967350792207228887585805946375807594864153315510804379525179364859158101685582188599704421728425013512001671909160124142081753697038756226833951697646557892092137283147195557093212663135410497328096880898750775930296609606344277961364070483340859683777659646767591476229588156167063931695313997148481661868069433076926558831098363572117820113393880004221342791740271685855296591039569790864444975596210765524969200482466175197066034152776005043658909402826859040239363613216747037613443903614109995162928941367766733625829972854483912308529484188714537526967713322023869149216507254590335833189849504327858818384950822186728653249769244947166538055789972628190554730169969920627277939606301677869843235698374503968372553991496970148972165039073940686147840081291876907055275736555789244328276248064650766818391732222032149108417354300231951865233999790569553253853125187438119997765099247495072919961954556122314360415464555734362503839676763949480107522811226713897343681104623368035283590043858305214304211222645192152563163032083069025989078417207358726746753988556506164525392722436271609948598663187550465768006256266559143208630309648659869207804718772687676831004553756074982622356797757060164242807786970549001834562909009370971166150095479825247257366154722461856100656978799514032295685614441476326314161860129863347429810665244254276826595139373046225356095174516533666530742393579011672930868868102194972379225464440473047645030149479148262196614722286445067395049166304806057661548182676215928082305456261377179154790756030376706924332092007306890863154528370667176298342692399862652492925216390333544200023334992419300553327115762625314005924666263496345283858372014563806671218779506883668084721596930163158356752322984520390037565360609165158547130910125181009744220083075630927161958412010621614472506166561044444908871811654296471162985569079077930829742567846585430172805297508233381115469484653881540229002549670600778498733950764946944432879084021794246520697821284445301414175529601620013376577650382174800957915300896821416507305817016125643161636821426915889971309328444955865202030338808841094845358039737064905470164951607392204770111040792729067084655488155615501066988360211251798342534837627426297350626114631600860345208565715323226391960890014210190210670235796441785065158158253800073351807948899485936437753630307383023215478999146551526610876275076247090601689855306043964735467980012785954394225144685368798531256640634833610725086873488690916438631962303490072284693274731951050497836949328193895968507304252436917272821485700645457505726441705236173909256677822230687999893581444862017028430271926296514374381819854018273338309116504377881458824690123789715792102445548519094625477071143822680991371913926902832469220066047813377146622209105283736820263370416320226037550876814954363506993384781966286550665507023173924614984556909244331075584865532249970935239506847948547240066756854542180265244596436952739819432781955275507404993535714097617189331306686231096181318749802772200127820489017280769165669215888138424962269342508504057385838500874501049388101394731321758687290688875866564368209963976581443865831139684238007728069670270631438495519557593314695591842588385728087239840838496718149193956089740146697951719194631957767110872064220675670459826940665819036461176466543783322999130640164775427610635725287430806386624618850245062151518744704333115154509109227184600075890265840464167755270541420325829745270924193405975459190896821375819204962764955433534251645054717868298973620771704737995742902499551045080496220706125287224440275713732164620197209280706510716591668892292904628278503526004474207636035673539528396209034872344704901947413479711992074178930103805329764888959321710149927080478696866945861167899759393269430722135302738743186330725647052801482951892091431607256234081562326984320284129376557999964925064112259657047953642021169053040380613965170047091369224978657893045717005607966660321310075917311099518342672808691007713659604783719687341934340870732452378943561047845942925126980545332450263733474113525760717394226449218479313214345915723318103381486778183422465762139691736851294541666733541722219786887364815746682222065205850610664830656208966931566253632871298131828420373001057703162795408974002555407766441474914004189075775253289579317016258248624296140029563765076509950144340662643632913184626281229186910424369717296639856356307509918215083453634616951188391337533573681020437153836210343758022295281714129242821652493767711492576312017987703868052446402038732718636331884680450124146891821641651692158796983077482210722653513683183619307582432556596199012131613601141302480630205651348068841701504763152572952747996390782984645492279309468179368012282055149504725117064370982577232933877500599188851578203625376247914913719595867148390135051556856449063170735340736299313886232379920023265557823656703832686036492598110256464064749269992989479518055408627517406993546540043547857549975202846174462061323004020522185291846490836430535786209833850244803500370043046018607683194875939077297818240266921348658804567764364113768629154660500561816265870890653409454035923424654206100536461248799692302955714267763849032944803087212241967850669591097186702199903651142935003162014800471068322964503219971418535401500520945803225033211133788758487509785945643295857489072585741963276359636898352672249444658856866662952773401468736741445719133021447510271719002951617900746449143794847779680148546564092856153004890463208098688168824689739292424875785604165831680315447160133514358713061171960726084762486227073715697739806521201330987719676621888230180940005378754580936103690225563586204769891186930065248666561600570603857659719715241755644500590308848357412269714914573669765864948584090117583837356716722885618329169534748175437312363683074052052395299523069782742325020038664148658588833114815534902947040530667885829879127387924364081519644590574124656686731074791227815093728949362257848616232667834364238335278491959644253501806717466224370972670526167803224309590165989929195855645421863377336949066859219626795828511614722989341012607040211109459609641759695137876752893854972379010619772892021119885886641291613601017459472055699517480943837766503856288353180259317917686522436386946142326807051511345277881591314565157929882580902390660272143703544952110881650300191880103532772934817091201691051563399604945380658217629151200263127587851933529664658723668140844256912521916016067138110721835865144113561692683894701406013842299440081532613596645189898348114004941457590465035472973071836740667109157073734937822650773128008487194041151675623154122344160832045988906267052223408793845170073693113447875731465017818469796692198539192483119440117880146657854754567671552460170474386382518476262867756354024073833328303024297566209885824686447014794292397427737083959561391480242363251462843579063224810990815173595535618730693137368671516766028445952683354110475192970868585026403828159529239231144156121438101376258533824471276601846442939703277520703847275746216002323016477348066943356104695467731724358909085672506582344280472837835513810516973165484346247521544560282623174066582815670840323710803964662920954688454933544284361669060055705323833542780101930319491039537049405519732721479956781962083732376274912174532994615524220422087924758763442809409034142767079815057316284111095397717876264493001776440977166502553168277305959966680134060000104383564579807266167336393322029571270771669453800765370775883406122907504645280522356602429045532006593451215674977749167755580533171263024968565885442171702064973449324508257005655955625277165121279991243756021617005408271425328005967037461744378383274503363874458970554499342092136248727342809256292851838000977394958950022209974505960819823563998337224050629146084540015772850448760264749490432106363575640133236494077712874017420365548756603985660086657260504071528104243902256953008132235243134982512011204252851606720787934316998850629967706751283090406259489713623050464827870819506064865315313822971876401476501209738652689068637251401730115120222977336571612762504867184897962002068582398412761352126641559338834581758182783876151705483449518151981482091105703992720007609731022000974915566606882351200711538483893040751387140077071841658187170376940150729904985613994469360493542595982847598401202200050424661242029930397964366382549494566844146561560317050719478618848879646828254005086900794625576913893489883656610899399820982315980033758954035662785133868049975860317664369334245518094561240084546248687140656334681883860166619088975872950366162697001578954165683115878334817571863770603474907325355390639847040433272168453446601138357724631869465550263394443854832262238523140684677280949277895392886447149287442522745248189010058388609340387990778388418454354035512128425596776203388539774673926770840936104695055240827244558324512848693371544378082931281214271433940674629989349948631220834348867999176129295628804947552845788417417943016351927495300684962517482321964661344019830051293089602301072911210707658569471986711611024461510331727302037745550464646658480763443478093409684273785590594623984750264853462890832587931166071294899489612630051963641943040482473447035378434324389586589855732294720571114524346508259631198295255616835153774702374967981275425793531440610219218712526217184213512999587174097617267678905938529209707215952462924745299158768324803035482802105429315581537997884537620262552730227227834085629591081630402273958951666959875398103656092955057864415093220502386834626582965880580023179709445450843536235850595573754151461409878077256729108960333896244224411124301200811869790187284242948961577034558469475613084041136994754667288328780984139504642710706911740480919470354386752474115325787447674152812018192080970521115058135292593280135348346078564169777011906835079774024958099816221228324475662269002495862697685251195297613946156283035994132718156513611130765185495592922081171529067227157948105187893337833671770154430542476478533921758104076157334638217141926571123181846595987315076274701584502180541597581762075865191929612761739992901520950304440706335433504380201654392117335241251643772888709012974554103700945999666427239392282261047688793807993461527555659669903437384512110405703315460377166404366406138946325633165598851860610441123754354923996486025080022705808418908031025636711426506591293053189465763046215078206471280193351328872700157802561185330544242686807647899320874412105196745471822036948029584585925766178255987446653407965883291316548122593922984664034348690735063595784381241673567049422619069223189338185786292789739300248405517147998627945105278419219009673380749939343166126927279505699425383739368908997683099767479599782666473937778134861331114982704972789589123951434842031546319020327758776164573734870530497859885913586778214199137614430966547297244281097800692497626230479684782426608392804098183536452834191696881185835164459334071881479305409180894629505534509814931351265964686539619838316278886683452592891976215460148842011596949492742026717059110775084404465646158745123249266366488084530494378568704371809204765845328254883841145721149139440503566205218692310430098597399474456000248172092830781886098927972556117944169927131088503486621140758090265583202426596883300653886187677132748310456075838720348555516584190748916971563569839379038952686866468399641020916629836272100551968438456989267585029035041182147197401897579803730178952882526077664208778832168833401125409375067508765820852145486786327381835405516987802935000643775680169682556010941380921414443428429433055732155175737560079884535658261929722053687448134859632430254787751713592150066078458283447071620691396380429958243505070117669761688232900256600152913744236021295173548986027848418618749211502734568946285999953324532129941066115458587319587843760352619494661894093786903276102240243782878231117823083143037756804041086209613823591851221340013492194155622298500721047429693551605135803589521406185636615693023180119661240412950366496523872328516175098813282980647594921308144045283699729474772004711375968737707067673279776875130571190962726141640464981434295547260792831911597512238107442625006501912473500763990712866690306284164571966728668850713473385703836740144752519819337222325211117029014152509071582034579868446740793208711481236630195280391228807576905918673333482977697500087740093427904546427617834793723628863564222859446900214562227571815850465816628303200979583292210611740892144965218394960844932969978504675341185934155840958471290645774873413424812540543930352087461830425751088210786623952377437695241506457448448471894917665215131600866299961018174501843518136456032637860049971788112809158791279832783829484869335367187293694476506949852452195410135020016135900913557459951531616819765181024652950604648531005863358004926431052864106248798027366303908904438980398323680607560802010095013683734601702638800819648104718289061218791362516572695639914915852849879088441488212663659089291289071692370336623023651732089631160756625097290546528339816387532415643247531829011806828943953080094669543369961528923259382283764171959654616262382526388856344529409865498430421454079802662924119282589364234549932790662873203633815761797496159880709359195221439872175811329906021053620010341228230964231642618793607860017989919412616231871467967636824390956681540385303832771090139358276997314794266423941191050548815942355424832494353265437394641692752284692671459746421165235049226318178038032352811807800673199220579717353019467887701941873961371842914302556352822502657834484713386716390657597065040322340192328551537367609844037181332517421847589344525305718145105581402702744057703849280137688308804789509169824525821433449117334363520795247924273729984755151318804134513548551836860609256143864214183945809357565751199589810394585589776176828318665515917874079047492493251724247705607935872679929761670270510567980140299822224012884301871215974529740800329277899998526469250195286302113212463854719447410665972194797539662657956047681815081970575060354985842687630213101526800203104019385705580288962148731559456540471568297959765485126317449668598999096109601536534738114679896128263345476119228750537120608667436901933789261437564174083488284581857579249648049009883471538272297604893602069647579937710700379690398422693455881571358099264931880011423628277177105090995251583449905261835181550703819212610928412566098938327379736758563567781721752297981987059925476788661165002041618895816222239041471240495228259417473795740138104218799787733550598122733682255948129809401397244825496143484975970715265757033387605376929687321113855567084843726973140732340015177093319521872537683271136997290221244341991987393680382933806172382168692992287599250831765800725595617742368403882369468211695855124402074199485447747285156767895582036861236383607408983118504177459907072680423694380814420305058280071457861173829117424904116704082495006907031848242387380511190944576654461997434581562361773693343932590608724014406858374512359148820432751033175009099429030316767509822483607187186938190109322534014802228764016676371656992284975910724787359693575222616372057488595782862433849538289550001525484489825627823599932171713257337141283760336942199353467783238998788493103195287963474495243544576699208724602187758348371473752306219751321187532876376918500136851424466427473442913100937894673864688743785367285623052814452293231082462133582115488519712946505698557763343595255122960299879728251872637667861345855242035040910496679575349286975912750356813152233716312406047047380163575780642319057739343153808231382158818835317337794153498058592540484739031495927523636421268580824637032788659372432413080766235779734848893529260071056810913173981800727548521435206274364459384647172757167307868767636801728491250415509863482150703367321562043144866370779899485878762934406833633865860660406802367795634542336316695132733445362122056437846637276485979151277658727957342767275779444478579294036818432327799256924163484841030523114678631292241640562177815459062111910999566025911137433877779696270428841969997523246651004212875053529041379485888304244355525592369571333622760947369264991151036173021640755333193508061238163335497084132280886058749873480666137617092698562117268880500913531308616984998966440714544289881025673591625168190132868079467553845298153715418284827655998533621450299296762554178847077624945428126969891214009920510422501357800068766498338163161268268313273092435428729674662266771846145963324711029925060047690405771081694599441746067195974198838990643571259691977714819322122381071665555400289800747786353598003668275107647693939087008563505887423223453350472757953440468385090658032280355707125450440494154320246247780920726342397965973147058211598630257841822841009945252786114743132666675966106279397968118536050690066850031904213185398970673805942208683450147122917272678274369106167290858022004111363242662184569316647912191038871003197277685894129926107769729625021998059635514851153469647034982668818560887630030196971320901255383865261861013175911944930721420232656646715381853628693185730337248178246087317684032235250088141152305796772051007173541836525363182692039356965513408236774455916877264074108772760254006632559767907537337256982599921241701212480589196332280278454717566448261068447544026646558586663920107298763570379303660359543367459431207824015599320353508612008593588906511005090970339399590162913403309518198424627888157956426751075362285335091145189090298105072298133655822863347255984280740221609912733107563195501258515005882589718378558711205650677783536759556482518902745126856399312292218805656043605819367367648427690167399933844146116536393260349380511837341710097318482823348461665643680044540039224105427114463041961773050075227667166003805948407836062804739841950572085133479792403505616355548909984385544147831324608532606260270624790460726938288487487569774841152326616560059584642246019302373996171785939897771387603431635902051920065344815450419055831437157739058520746209135099563042164463173509323112542085435344706970162823173898049642754080878026936516021220699750608336869655122202391146549065424601469497779152925995264381064076636063698606298676300199533075979850929798890623650939117134816877405677227768835925243753916752770420444105496367438339018153373803763408211109653815684388397062034509150076767671831919004009227900493865576411157752616042607798069454661927391784118400622103502363275380926939885216839741033271236750793076179009826943737170719477735110536281751020899249264315240765819100398285055694935854754127384775543329642511918714263338784088740313867867218179118711467020554990078619580632583118538046981862861292728391172415314697430332421529364773463641282564035958374871213132528193443781781393853034108860401609745994424047633613946409771594836435596444599327733796326238302068144654022373731289242702119285607232803666168597776799915354480154277573110055515314152423766468891595335142383238649461790257375183273154220417856551861424806756837163715077906566062443498567145915493730743032061767643071511396064772162376933599333698615296482006747819382668668710997122019956395832904536473945905611413750595427053863711420915234888977616435530078912918778589056100504557496595518190624008627169663648779104328906894207207675443211310074724908594013915864585265219759117729891001097787272941585581578399471860156482605686331474087802765698694822035839657475213368190095316002657948911609699735901390737235500744195025273782306959877046130869809995571061974565633175702176215013464451610786378476501612918943801587644461050273112250393524834233644988217643713475473546870987353260100679410246919077379103752178794060260633746549883891635592563702180426158783282176273453453927366815418055648020497298089776915664392745686368046686637382974244215354326308384241233156806289291774305999408560242186465791819666821717049295063872041969632929124923126499245352200701655227341715025060171540455602071715223918490801275921032846463410020859443985766681491958997760306507463529579408288727057487441271634574457472148505942431752624377980694146912282980955566567804389498258230114246933745950773496465443118085671448917714591136703201493746678181402810946160502097333614927024002671980990818041688386779552235290534904643758535296638354270879779172183394836231205386045288267030621158870898266456679965689848506578732567697529885852899036499476988835923182500575771653368971752068206191298633016621967710573660710129351941462518462313036153012955445959406602054626796599634994661135741369321044745265548072098175294412064074048527794283576053979454770383222967776849659064543301124614756783199502799083324590248236790706836935064530769170267533450942269806295539759832306615682336767230283377865428025036664190540316572299119937506684692720817045136855715432149479580182433702438161054630080551559601598593497555545360410360079404783612013209991160743837742167941736280509952150879448249302254297721879971310804896683228527236256109203831771832631848256642347335071514877081846822263373277921064711080151252029510750323873835251102389707206864567979822214146429129475657205446602326783925163280737463836755245942879038961595716699855636436779879025621344311411966276330274528254592185910951252952265362185106458649476023019479421370986033082886752604427932207813185859641300265598557467944957288910052810349247761550358340106339342667407278145849086843739840205994333290047443567612141859036160232136440854400125182609579912847512331629030110833871271198609422705766210796707598156355668291667328806416608550897314953974934506109271945826487840966885524903973230941401615020526033200954205322835647881509724007592765534148269276850500250823770979007538135766393334332668707778373775864453250335824848617510087368134856554727594697109310710994708847251137498829895594780757663989030175131345826455025118198816632885676799670992764510004842571742979379473287612010486900290674827240512126202958318982635572213664944175046452621786185860420808782614595114178204258536582063055147096524416504449868248363013177244843555359681778793248224968885668666647638999044440318190146017079498918563115528127793123718498550313405550630482784842606086995550462178194302603234534833251933850009952089742043402172957108873252264605914232803382548940159574100411341488179480770824528852548861729269936794266256707031889597350389680138931596465325614746712430440801468646514082059786646696857727458997416516857669646019324054499747196870803770742539456467300755339420413103647404829176660635007828614897084567150711433258382971054556628518253019157116934937219683918634279217911412096089011990480225243870458398277622696891710485613627819950311441898967002144831129383412353520094150609462597313627474222430379659469092154691446509171490909294982153003501105079568800357476873879068609738589358770795077684063282533998076369120575688933654113077251795451732121541240758871836289949619458749011425227712337969493412626065441347758562486320556960684153993234421706104862322143349330546654671118217389563625973883586766806237696345636096521279281012025460311643652251180305396908516129541430494427185314893167169493183874807434326469195493519230103288122669583411636491310474169331124436642232898748789266791871395924207094892476482899603334070889877667887822253062351774300516111672646088275392751912607920174442407599074085219825970416294108929761776650884913216623043302814764764001292323649768525698226567162899573861845032315325499870044806916427462066070818035140578288080885535802803025939168171198890251431984297112027904231662752751885250115198859538936394391650406158178390056586595969201487645688011290677755578558466668995257001481952457597263270703995050467490229354089124226947915531524148601124149965414923853702277861161066044458380457922913700028477372987615999341942354640211694312985553408129813942779167430647144321356014141779125712352867499094297280512124926280282968511260397786803100119572666234641146288905795947030614410578246746666635993869714533512877734292675676885563399731054680440612634405048115641354473048293579106076310830377389158757951317800092563342772785449750803082632992274183410495314186867361624395652965046534532066272670148053674406760717055464063889606363983489167837760816062975204005898487363257883782821023705132695622817994046419316122004526039319417506915590443673912909291059550202880980974693723441148478912060921367071705734332441224450988635769947862523538318097294814149291216254593778717667523919754835663944425862583236643608120325009980670207301411462351649412780921945565561622893725361088270532302486795989506216004662030174719057950943669090539889011626442646732435647281592717661215182774274502164205726522016777542473818767702749862058974688670114033748178734036998182900393066624909756946726863888018241052951808009928859069712827157534644488177642672995567455047907288115781480244146391553537838273907756118013122359087852045391963571839006772850963161940405312233596240261617682769890604084654609743537643473413335842462687530443162415852332551116626678943978871358526223895703506210273766178161855802799342950912483671223257644325530711950104559259921627918045835993337586640980878554868356656787625020737064531838022684068745724520893639106572560736318089607957847828125572820995812657455026792041829150168965646756717934094317943588131812415034937977806048909271771024161095374620703063895089307451931964016257078140395919694105363671947123126521650945379600768933364484046901717960882303370076572151277167974836604781178880381937232527107390581247146573754240276606724227009764899617524182161607153848006675330169919392703881358349926885666979348854019567546205955091820201109726171253277747489333634705015653203765959741534590064506518360762083572770671440274409012789440941909940637077808644568381854451357444723989608767336315638717119848337053722311779892567019441878748924422021687922924339668439851597412235405993682546561094975198999976019251075450726397998542542138364693123169523707321936731048412778955539748537772623022821815902638580984720597246653989103202221247745178543976397128607941336210445807217750167873445877463849571839012284044116633654701627452442915583894946124713410859316706435999238083531200009110701715745540516937173102357886666509514531783733533063722886474183541464096691858868985342970381743598168189584528101068010242665340739779667580128466958605093274000911502640312965569829068803542146499044948107763778409918251890053789386472339958661552772478217069839144629627957703484059541460338227994341850039888018126387772171633614464472547461830245875175882637505573826335766376120339281540454858011587590837557665527441694993451720114486203647748788786886495786750996374481988312496780616722257985516719860351463615089954023993329650424905056499635875475677521191041339433653215394408592701622242155932665908158156272460285784082284353939549746051261981995839459562916042613191093084724374727589933315490733987210405307508034408725793957040749841389518516112518742819186236337141884344887816405180071294907693146282192574849380662411838471237708748463866396850692769096983137605646065412764066166166301055789865210695110378930878337615444663712871945950683637830210916627077184330833029246821887161213005880257500344483684714680961222360681828163618519934177791548446085749479156627589479675008483471803961212246224595078145631165374905042412545702155423455763518433566838797380037029997755981689663513767660574368839075962658694528678386255945105266377119392414448524542763419827154021559032623542988750935408336509032017934332226610530291785828075546100124285910578617327024800517712834922177981952557026698734874175425356778395633723727513285972908835117332932545967309482756999119981366301503339951878108007744840409902286155698839474854688470574751642106389629426226610491990803263094357970873556101911577912210451735597582352150982128833994486361351394679130007999747857805535275661187175262746370795391950284659480477526297071803062239079622054348236538013135406652882571395825653383702960277903078980841549368619813552339359329731103678490638046542913390127194836734256212049973218284957913147819182883117866926360654830911155454977346701051662762188185495805294179084903971356535884367264968894472821742451892789984607660028678202984198020405451367194958757132972720435269106896243546866077690479688776028662784897156057670157370571534542460669765484528808362204841941864223385223259870498884870927612093279111120954455925509394506531240714879989194923740725392327127217603935280475485438551082567522829815268554350950576056605248438217926163865692074481120329099248883453491020804865901202097951340127594777562591066929565831631874378504540617648249453826104546057370625092115107383623560455718691390721148282343911587416611088834416528435201182289582425921126756003438960127968883706880525775328106487491557798855836642982835787326158841239892736841682851499737726597643483143652345863437077207150110746879237622677992903426360909603827930855228032944107736720295727344466214129067281775759456274955450341885590185988076146537594125101581170068505428752260782589239958942884572070895195909503033876756501876227632798252516557049313876213453721328889368522897425297675643257354686773190064064802044935563690506850492711557065930710622208115648674169042739811601408815102406946255146162528264476626269993653706435566845036940506254082900576200637068216566134074379235303938702281052453475780156233012797139678592448986908702837250871250903645711578744777514099120426247199299578757519431302826815679434351855284256502183181879499807158454205502858355437635522140775372439774065584844007506603974830530258554614907654551363124290597796292773328451616825819373024954033406521747943829518621100199829511985943936821440656332857492840827881638681617232344487998756919568614815034235544310090943992080095129697876580583070592563309235319934252227557319409032488199159894780202510866196552369298573903001199646916069354240511788361377712019933934280211406375235548484271228902501914653816915069943772864380962045817152634287264807644297774348970331880555171584602975480502305751768068034309742516671100403261742422215690554154472079118134578643507835557489497909731287474812204181301195986610606390923905029271095281762554951251715005042031335344381030958148025900329552829735177240142284068544624912652320692914952386296485937511523233282726625362583424327831173820356543893905231286821016335505561826601449383700982954805899621683026461415401542605434332528544529961051050478597978025667533354151578241647486824140008273704939706763977684401193246155289451164508243408987363001662940922370491631245803973811653042362568893856830738430140988278542816868369452888464128598088937085078708613170656083135423209585397605300224297741990897497067206776984616436074175002512726354151855655169971291443464584428148057078467319722781108306420523305007764376375222882335953463403708317285812683474380095931632539203670664830353409954023336318108200053557405939856992318346526639197590619231121595336782908335186988604254235868683064352983206772647050412287200065409578915724831091902794292440878347995974635703934549648838727737297870983027340394994734627849457904801374001207809349089236221939046725245234621544737118803272060285462068730304443682681941743680604010964317158551258337944530703631245045187861503431464550352341395683341320413348429816271468185627552664435867657811116151622132596176895007631943749950437347990566583055467667179352105529440752980426426790078990231399438908917716402345780527939521700919329090852741536023328843348413196380476232305232161781062799119554801864841954983784418128742189449730840553996052415512059686191367655148949969283211675115964978734263010821450939762022948428488051975463934998742761074221079472214761585533076312981022076805030703000355925631989837916463114743969800291977781740981574968922584321659650940329682780087069303773180945587157173746488598452240884915595150172768347192283673107354622025509800231513899065454293460419373855054598270806713549353653800436436955077905946039918433844434608394740496845039601328533518067279187760516239426157840161413505092229426245429094253254940888434279801945695049299413996438752234019503891404111378876327587081845931452367523010981298513161953007609542066819446488388021330824004678859746289769261751278802504010201190091397020540567803563252736769555073003796981035943325705978110269251391603838340970758847143533456746262105898568287992138116182576455627398586952434273948322158076528581743780445278288537577960766323886173116534560931413117502667773621366194888827311741316968507360413203901710926418389946159255745803810091987759431205717290149212392502100425410321854092008864353975846992578089841948071416396945407768068604646143543121655220598412885475692712226542623430689363198831896905817353605540481056103947404107133939845711467394813854999369337065830446692402158735693398379098645070351559340280926021747757470393192363515911746161946361239815039594643552823261973173572479326209130200621643232046692243828208780778062387690211181286812210477622979041692522980986870302802982859624922933376160850321037947619826940375239089490805064240236192579822502378503729747384632446619121304723043031765995331633789464880084139764779387641589926201568913728341700832938054870118404595336380950820622371635964100397050184762334065425033840824553712728129915495085419971178089408570140755552218396993169907168696560242478373834104716283257825415901799398846838249931936329091249903785255777076504459058084946241393911826169707281796979338352081941465741314611146641058235524837637613527132736615014841632170319110482555571824381620496271735496752601885399236398518080834973984733902630350213970751845601787077897832574096183398266991592001412755066033724803891323458975698803976654488368204339025375823790377647820934101908734951045089434946707271599073822233937006723767179794128089596831025044154134100019679523321217028299464116657273792053274172090953147995988284743333547416249770110979085318903410885142061802755727744684096400372654521293842071988779932311916002249706412819498062560656878646906237654989559730171727109128060405642703357586351118501351192552680201871353434986773242420190059083607235127707608424213702727742701242042602793850855464139258141030775381960377845817431715206144923030494673437532616636460531015507532826023314458027002381169126618306727988716772497355014139354676511732394627741600895147410000880454136876654388972431973238371068609461969583224424555299531347941580297081364585137933150814233631759070894486250584780806178059107814107599054015412327380489060032434728927666509065402524131092505583651364900915057420680201605014918778139805423367006461613922330733025323582546334879068850017890925423934265134465770993011295709682258127750823941897514578011415701870740014173515236678288170021192121795882967415812895955751672639755649830404382151672043742362116087814997617580512203423207963245209075967940598906969124710318836243536529392831171594713537362590715128193836799016974326037388467909447294512866378836535370520173221860654565915489140381012087565870729395652049416720898069482229073824579586406466255478548875439193004731162282548963990736070299689018817046743926546830577253070908596772335754681356749832859074793290069925590682201016377630684235450871339435057275472820403111115189215168004535957874966053278872096349881937981133237533105932539210710579852136360397391058556523858040573985970822853825712171410204965625992764711034500772883811234116603980124101086559159707399448880415312646579604135892680313149506938524036583396709905623758589518784484747315194457837662228783703783265192969284293695657207858628403580690361001597768346578834983971063894682905373663600919163085509334643011996329781371408213275130545311215978832528731569096635767520047962268411721536382234081481011506409427885273048325802980414661662789070783037426096693527844262327411916576753874386276924170608793166005715381348621508270798739828849939034625617735482455642412272379385971401839418459612918011759549052007945572980709726405704952932623938764530370058276452258684581115828929193383208455544165004916687802954062217576670663373531674354815705390380494325611292344057842184772453931305264819031586928189813483490068670822099275218282067893351603081896109353257756966508328762486219633318833173129929064577681177252263352083917771606559982184057400043196557421399882100521838138080259446636425515135419699789352473938043257838026682143545167420668712431246482589140949333613308305812197465521014422008986653417892944353048931120236154449245883099957296459741845791174602230976194158679808112497323554510040559656578927609915478614843855566556331504134726010382115423837140146735642872641438192427781426856834103564234150874523314397680834388791859592942586171454548504170974400083309766205634416420598875841436013622644248914983369771296220725361234425558396828639799671346820549023760486651592544472096389157620705589479134758195436613418920359231577021736028713023684682783074913830713978668878587114804301663047707527324052256573345915108130346270989827454179064849371785623991150359549631639037278516405880990105342868555185605545820796908686044107133467911291092695834435781008626130004480604575792909698911394833952436000828047771337287614602216032619106102569028308840978496062895514806993555278035395159933527674479225418773800193715457320301409488474386767415011711772950263569443817557782231281299666993370423443373771260814807724514583801208159414306064871527538704741747570819986267016287390933424477341213669636984724963898577348776854733458760797764707740453031972290306284266577403680996195302982833493132441675664548715623015290153402775463675155073405989044888784744676889350960294253212631511191632494160442014897797650217297759561227401102784352443590744068751403384827289838047772007604344876882486599362430853438624162295367405461704621834135396094695535016520371786282324520007636585133556776109294262735307795987520636716573249828346702109221688640456196047965929045931856554420712279661440153013469894368704307289302743421778113309113018985348123220108778845839148406450220406233314645296737120261725143594077206439238506461605089173054210473297327787332402404024884400071490520234440636903191403258349316136094996708767751646914610363574639228069761958224308143829791615507198244012578028617318947661601853984380651249692414303666004932476793467290710099199580574642425556210088467950994805873915370051123342645383949465914228062376530416534949777849465672323666876016834192575890682984519295692827509808615714862214499752529703132641087221947764931362408336659830786310297620322306946007655277294374194468417798378906461255825040776020503213981925103418458930470215989260181453271274267811736806427761553303677830201071237959068914229786480384400460772412141957247384264033697485268342672759857400675557137881871028375352054100401860849720043862865658523520127189848831797197181008025386931849454069795176314618035356264521787866883841979933562287023338863766075134668289138489285239806587472490739423412993233969226780856108424411212853133371319908563876460997688136115128903083140960972046346833562669795261135866094648201440828423268065344771909421725106760768558234311989220750209150501992641200940932652625071375776676196828102617583485211410777597964845381955665557159056333948865897118652529822719495896702119313101429305363801844335226217021264853085837414788568058307076260512270189765578140164880865323300075171513688888370237501628000426250387736858573119908073681120160156435628241426067625314117944182533381914997120142826228917257967224402025108161982165413195337805704459899055242046104829381629022302366591513720092276462039032670948584567086047592358911721850931401479779088955960593648522224027329795157775238266006802437574174825338051942503494045974852892482955862953132073736932397592256714202186325094283055116221440363970570844987825650618763331513794832396697937646437824352277716305202352924824393295189745936833276899395210804265237682248941293678513357028274424319813420729189886746093633489843785737525992207773535040886000589805125325692731050221369608904864881195394244814477269682014275223706965340408613719239684739443910803831573113911393899971469674947121596855189593250460712296235404698139574468422743095450110383606046378750055601194622679629864153029494846111724090590544144110601144531495652399597083113135478017903825360080383183872121088244515611083106167474056696629997473826811165906116713713970216929389736676913898435095066965948603974543900978793398764875864869034438704991930755469560794023407843448021516473434553172476319828359097311285533358626120478882722344949619228487874659118606188009234352622535838475671950708101464958959004341665917201750490333205736444408982365917235169066933485495314414356374916764276304765151934287745132598701163605041427343480185083417393407625252672593385920899948652749022146439040323482713112756802744231138458073898593618283655275334984029602724967619382714919364265511396236936273178717226107433195676873407018800977428502203328278685252839618136942571054789904671414206544555441147320402632279465715907251077447144863146395604046108576109969018316976630116956625979216368482374313666625530807906362923232311604328150485631679606839833370614234851536551728338425425263762089450887180268776649263574424047054183103725279520596086709456477392801834068547685421578344254996524697182904439037138079631732476519842552402850538470348385045134630248000013339538777960296971193549512454125254206190133619660654877777610167585687353164422970814065155751125294555343427490595442514788888994796476188930792766816857714471742465770374843298697815456887832943723575000155175275725985509991695158582553010430907737962435667145749752272616019348539095500852705477152231461599174151393024919426427173898286545136245131186311027130246753144139251523839285113527697939041410839176657716428346941063344860071029954276432855790097768145758860658382034287805006625455319968257305950303964230403434355842336361764643360641691295762479372618045374143517728891546988124982618169354525584377150084950711982669423276651512739063490163665592368417366637038329960634485508234876491340333728405957302249602306285831992666845899444138219310078570878042868226874190603962753261694047584247124396937835738460394862064735969590919013435560222555935574462350708869887308875506746161283121119218717594612776130214371164147291994452404595901849355004415888690147326619280161143565931329465187879528028116853861070339304772990429215652317283241374316462394516801117005199642194511630758176067183279587371036136048925365256483414212067224062935745347768999779914033872617447872673030725701297442648730169558397041618129188717309239298175552533269127512414446680071826730524459545975035088969134459072315178474616064376630273873127350672524842713247940076972536704209805274283731336154188771691988245934725629518447401450212889341310830273322589242826230004917858556103123959550589510533850847773646281298340145654646708497344366756349832074682193486163627712977698724759637162918017942889520301376712584080026987371604441766315556605519048696355630882028188310610388455124953326942028986846486575384439885969383094676961850005297513930778254377262757535065373649971789409336258472646741342867302933573090514450550083230888377610895709975087081940782926254943255707846685362517666894704352673892435575248942337693430524369592293020978795280061648898513924915159326928598779853303674851192816331909399599212690550808603465561287011852366226239304255486704159646020734407762680868753846245132768197219892743824657000973831390071494592572299321004291973196246581604741624867593786325790871196289154620200147951199477005900159212038066306671456214554161776305414699671350030360858769550505990243919108072557226833219998808991301921150241792683509968021230218807265439134934391881023708909613050024271168229686646272961004126008081373321717421855846846654889929872610160897354891368254763225563750162077756643618100928904081267664628644926502164954714708120368911212587182768757899154307207803518915271025534395101002663706025388641538133726914699970382100865824120441092468203502461827152869734097821747988084116431975757777670466757025450426942465465546882280847711269856784860069975401888635893511600571622644378052378559418367705706742836065918753903457587726405856847063209505063895697652251094147128946170815919015466959161858166351276650082708448157549725936394019673165574574049198978580958870706318711020129380226601050880990415330911359047680314955317810504144279091303381710439688517188681536446011197782424114237509781082524474651923924197820294377391927105030053332314507182988518443651386754820752869911461166146025463915521591179924965795942688724846910235944386021022842180867678037298853559796302524946836062839136025166495018911001429436537069126012766384426921966482097538399078440618413621889379910772915144275473378171270998227975767632413706828009816019461682888877425526586317186368693348579564204377303351920673184920664906483056364334781669885449249260559612347431952691890409019163639983027278246158252401589668192915085967922543660971372001988240396123372583340577637777856834039979724452875080673553959743868999287957037516760920111719393617915480368874799677361872414880850598238735348891595385968509744328756701731327282399280009040412240650133307126735923232607458230061890434614004450719904169470118396913652906885683353238363798597735608234587331358223575128331816557371590223213505591813004487758380030903880394949616188812491440607796580747295416925455567548820532600182186369806285575044030866003769413561204398379204323279479558005938097525754124789488319842186174228979348508104330582077043393058566196416234154227029343985760337192649922050749205433246745516579644789089810847601907919057515288626535779759919003992554013351879910571475711817343557040394211550146606568165408022658379003409423552579663386835808680216792235130799216346443413688430727515302455352760904171438486774266002426644010127510531109190329880045476180481867837262907552218033089842684621101610756708989956041262614983320021023889211421524520510297598160940205994976001590046983468065372975279880992222689515935152086444969252968047215230721482501196801688860432570085031745607251236368170091581287967687131065907118565192894353984242196192030552300661195271975838199507723886561750434520624093238405159124135953816755811281754179075279477393852745572778967133419240545834081956359511154924849829569238014886637503172723684662589239292163416955512720717005612316084827559364155797674012111059429804776334091521436984026225763766409873205805337402586126397675399154058354499238444661408474160212526757157804708532159879413243585226369977702443908697119010027360216751281729256902289657317507786898936390254167665534347824225840192275476450479309625354015012897848210115539695177040026926303841931184408475903838770414621612939105213903075533337008115732892733757166131563127164735607064158754809201643560140064395734212088244204791061000227106360489581232122937149884976106585519975674986347055118055445833573022777389127696311821136363934306381017877531238424558509171347765453459784356526462480376253117057485112171953558220754123222825776293309095518567723091150594180654596455442710863355544808549870814379249011923932103175702095639150120644644228264926931009620868094761731033842653310316803890756977891806857367213257522096287814486525126803488477074789812965116669013053602320421448428030223422559146854622769090350936202660194900554841536679059309162391783720773380839470873260657262752032884493090120591576673496722373160843480047423165393337624667434842440719065816617085683938789052761008155731109180892413345069941207705908043255037473770267362216942310291615418151785227673516585366031868935832278661370269476317018219801861612343888527129866515993830199010809557844476605873798308951375342369248933054270263986400532105879009556719205122408704140220848887167133230427620001790022603688473029625381422391361958980986337615139240980684110218766874072369066793659005972420109247455696024792553903463575028505100882083204814797115781183031003693499156053463042884151793690545416629010734041313808921961856269327003057846983585621387971000875463194950773624999921596358141151958878167339392872640723440739194725351074109228083994789541115360282627471199113992260912407436612293548725704621445119682401810651802679710154936952963959481517636664144671856022074241314229994148496165874361697140950938501261805532075209128254072157119145635622425456253667757362597811180623449512661438283063664801027012824213545060366348895563403134459381353271419059935260917136527404341669672242074700791199856063816895475384909750286660134420297820229964630148447382020056371406155309943893801695285590405805354334168458911752636965490392038418207389535743073759925894067838022454418980842978445713513388120620819525606910027902451797155696136120280478393919193678718313690647007857260934236873363804850962821762280049411311301125196401351751963737868198656159609881541354743899708814339374474984531020708321452614825299706650367844307494281856313748913787069703509017196170991924627780844264080264215692715092844997850026585923557074992625586886430239242594249778627169473414409898335780024721236229256692796948999473215475876871537363635181695154518115158006931653551271689005436868842942109610444375441209831007496942222061997920973543347674250671284637174783389314843020453402710219079747976923287291889757659765510794466344558445669796372496281374396767503322981405611858783083199090386494596534542758520225711319254833803651897665462949843448421738048631617588706323556564529600550855925821463925473743587018453002958717394284634229876857121916093971394948559056220042144099651699120380983847095925817891781956777106620930347398332950665989811447185244149534384450566238724995594805796151741307115133802591905393751814416992640999783085018506360139975905318995445777617853286284922886350475744924167161630022194919820215086676449780833131045657030480027185027709357355123182510021286558047655134660055664527108185557856670298220780425122986312074035965447649898244619167690866883590686758503472083185535707922117790631376662510866397343747514220707319194443059986687270808258394265083514199560400467134440887025556893656268750470085312394600874239646198763972188069619079502228879176479976882908886888202150545837685156335144038790719577374411341366656791535179128826952888636058915407566028273864350861611213001446167887660795811020550469559875886325989145301155037071674384435027907188121748456158677812611505833007379519596011141909916590952184735025478474406659158991641537676993128451016386803280860538862673830641242718173043807266291751853177256072575547623255003854890389166863778934817022971154705830072587936206515926634723284304413480867752099319371608203336122101930503233173363136130111751544492432728902549798294578659827918154038140001109853288422496400935228377266291738793161686589601703859868855500688581528841104804144703715425032238964215629729103702303041365541270684074381732789724147614581555516488484061084458536710342680608074054087132828552046473348690599496794312630178119326066222122663950190150492770931917689816503993249776456663555131282758138252634005735118515677386706164583712448138353898069298119993826591147753925362605358685532161677914946121643806813900241363104122566556050287273817734449912447279431019832959360624365755322330826557624157323255190936378651991400232688934371686908168079283946925280824741609175881599433706457340027950278540432427843977928763050004584746938821424038294228424217642544580052475198459584434691192171064674540399704075630404911582563876961016257899589784345798341913992169959469035285651302674137854272626695049056387397825252792303019206609695488682540863294892515299414051562997371501845270020994198409545027274004317061090000732314193205029755358578148086530262731996611775795249959593994314454177760903931822782169662685795271531402702416312106965977029342746115498287035610176081722898112851288184243497677692531729289828190989336016289565259637410698090778558678867826152205724638715488555473326288024943899540749292553978423317050742182660192253399988090077175935025625160200639226750729726860672174105753124448024477932514279966847284442815604555571481605157819309090911161451645142996617814549409741295921431411719197979255996662099374837892047385430740485056752276935138402982058519867834025938178663498606773989675253291687091830891518189564578180313477747762795323897373140712921258838765116459047041859143897544694940462495998736136946214059961096027230817477779821230496330118042547861222718970717861727029163047683566764647368611591742402700367445259747220637465908398182395339003579878782661671294110891473878883484287012745847081811252981915841157699912706615678372218891451524441615071535419193034909725294189866607737657408835893070983439471909442508124363924916680768650779065343180811022556471934212803502365679143164055830810946686454687227396429868673019659161713640433702715896979106675708019186739382355409095670359288715976950541756812240005910847845949126626833451218652776986963333894983140208738427851440699342968566098999695110263377195176941627018434695290153617260843982309809037344420745862369601290738225084303529548907811533651514184703749030689265726763899135620288673043650838423505487078688741327668390329262036887577223143082031214930231573875149212042894823357881320324219045687719402225868642645242081403243470705517939614991785356587750073519567425740423057891010354200556905998162860695248222424644531013948387147976462120789425130132297291159040468881011578497931259604779399283308649377421661797910808174465501536739192186074253538634147296953106600897957544686222480703155825079154412758331306298099882039215919832323706408271375164234271786315422598196584105003395234180841144173152944374632401247525977312530906496431911486286128332502474392047380745189702969163731873493384111803305444768990015605187525650731726934293155297163194919846872175608636360086941610560919268864854796769257123840510822742823042747344423956057814981147611371501254938922571749594057869001239697523088264723675789115580972222489859009424438907409193706283684250391354043591787646860997182860124705984780253711543752807411663603730594392324771450006733452415637483331188204554158360483664682335420419400109542618209322457920522429520050425723853668653355509955551952192741256427608045121265964102570732950942626031991327624823800165351571300974622167325332078872206824942133072776188843820346255384907329437561987966857853206484423980523837695392591471145241594544489634921648556696935817463255050735468942602009925901814751460337034254716268619834463339719923089261210547852004920589149661530131928340024677487486327415144665709563444970462975281234993378692245972399148039412835995762978234130519539971470390279085340236713598559291074423045387755860438460338176608025932191090606095538181349627365920539918647457809989315671323383911090143056317857373288043493083126602297458605107228621484245167727489167798482671946793729058231173817236665376847452128060433255916272322660147921215624641758536955933969452730750183894330939652813016372304405781520919526067985463554216645557541810764420231308702853845727786244795469761508767013384822316577480604966612367467608321476652709441928618186599981954142589904165422043488102540272814367653816755675857352129326517283744895169084055466415428043786410522507697102775070332869684531645478511258403396957408558068554467298557187638001771483558022979599913164184198541995247110106237127569132496891106955100650516885690340766593988155508984833825028358420152292313763139079093627248910049397037719345524243029363747379665295900211574801899718617002184099297893596209587584583309699573278285274504024647737820242084309392413157702153766059772411891851839539425164529465774863031022593513895740079994338706184475250187107810475799963622107306091534645334328965458415577234330081251392469269935390354838642604593416770329909274502026445623967538552343704918938893623899489520073150100734619143567482312260950571432772984523009710783901472307434420053627111252371421230909826639912113544314188518020471897199990406299896648986694941421194841195430134167701160001327746652339241233089534463410990502426363847351324242244622054570525467219349366232591636610226765847428276468583589024241806261986998212782253699701164853356733431082108910960095759001390189627382439248141110381513449894056709529225170264049032984387994305807065287787825336628724800926208565791840032965956061538241582942403100379783421824348198692279533768183395128695552878798629343599085425117653278719926773106286174466461450023607637613799898362094043779971148149228379244932332107844235587953344137699501460368606498340944645990520351381947485962016725306289071326121466642713649378525700769643593688162962161516766328033650938820874312648370517234922363755523927685921770766436638105338453381159923362806087837085466525435625187047698506106743029436786197387909252207165244982537040912135024767397924120009179661900912566427674984634649025361568889890317106947546610472000389458948458187902458987456203143453044332947598140612389795343440796969134619929532600619727585899607582928491581120788442343964019004868754264338240831194298454689424632909872326255484525082485721647540720682773405615774506535142588185440700715600886662504498321202187539286553391535437635375907804074928793367632014377046486836888428442945433889160974180515227591023511967100971398582907139206672331263768686144332718490137580651759269489925063583835120667088872727842882713170709544789586402102501267743163121137467828187704741782328618157754380329223764300263326914802321659092366438977505039115036135762663637063418408103901035850151683286841339660423989849054636505664549062902184722579102188207307117183422774583901874639081919528944425878250303986802300822988127503244129022823907091655730679325101855465602868539394462547227262788326158497823226237820370295085547139763556139496851855170056377278596832051381307074214632210651845575114020531482956593827873051978255428665600242918567943739760362080513774637118978794366938904595246081997867788144110676907967102546871038382149773488141691131209537956127636879781831990952956228855039027319069115420426266210608749548587367682789386955868123295182901436839683394788913583004751418855847227383151435536062258739013505824987656567972307255697186484628888655101024031906347183261030002501876405335755360564351328295676899723480270896821878166825817896592549201439195375086180906390961151397274480946689382483988133753698819512884381636412374601932930393602032302445600568523137145875601757137257247671030831420832450809177661528273959709956082873207183293395588601449652775483963382921600825241658317535344933792407758022411349219568380567674180476713941881009682340894755166989666812560976360823466479386885428349415728906709128161458470650225399553352582086631266011550233037074965267936569834004969553616341558791875028722678585405128326410629042783844512820736525076537977091526430491816308477102062843890548055988592583917034567484871918305430946812886654278819617562425203267729213035448530830593575916807772208868248027592859428877939874559953050611298275568440431657425851374031431754713496294825527140633104857733572233003785929448808088172844245995177959136134135860711753947739887393987375054305159128477761042543109812626434365951247180552864670542327582915769100164940822521225776233020118872397996239068354778970262221967899822915093286872836395694811452201671391691284266460766371905728234301693249441693570304852005989026510489207271015340954743968440622648788337334675560061207158679753914442629483317846294960200711151822452137384160948220288126135644756276524740349281519868581278406568317475137669109785387041166562166371473360325156199125478839022420093916163872756957543959785871292579139712715738064990387381927215260786447443104116127655690359172732808561784602328180113067957900883354867198565020104443282165941027776698751135273559686391263646090709661267829999966762109594510282945693253512642992051058071235952690368190488740674760482733507988340920215279267643320713844932979550004031788169291574335375907861846500880458270314607089450998908505787921865399684432040885837790610492350108364642086692993396739316559859803805281008430267197332428850814602195437939594525047410082581218603847150970821063583445259622291834987632065768264591964864644163081363211356268838067153063563776442012448256759117244006474851431041902870348308877311226004051804848737742746014637072939254344367254040740034648063250153935007562259032219332134120839858491029260546954458855224953373765054496263667835747790450324767816919969164797831512604471572578105865041778234018430624058009786346374016195620649369436651540746496325709080010057155389786264055080625698565115033086427417429331530826878935461943015062955977764314946639319405810376296345831829144004208132102994219546049520288916585337274595186131658891363428325342234170197744509387776911876554506898283486516151728642755676273989891750921977804533775739503655902689860919830408791968405502428818370554230508715081873276840030962839453062336916186986824027758171349013017681692153457874250749040004895902514392597369181058716860217218815633876653699649256476177126267411335034282077621325405037489393299479599528964261954879030721643918452683615485019746067892033136794680973453721289204162051522087727552587375178573068701989336940104980688977177463176713762228145653409850261815777839681208518014444572263633934437391532190879503201184323321758375050093530757847466053900571681330815745465376703239054339934578160144466909613077997173908223655997596942107287279559168082500129219939159689673858181906064594575686945779720428600017290353668950103025866174834369942130138908833078302835947494767626024073443821681662729884839658662855390301807831036328639983556863580472857187569160330236863600664839532844666836548366063106167171911733927176690115929506764624677219292603062325326006690536642635704285583434343161292741772173176451500414666832521925192160965955729580272298275979766392807584245466959319037360097627907302507864171780355367214402557403999499094162577505462616315739174766346999312804294000366550940938103823723971385954843720418553015919900362493647827951513570118060853830118575303495817113045957204723010804852080045437588614233970079042303872463857043705100673145122594551932396215394986142856411849788652213912355768459356257307786259340930516548120113453315518694527159183848254986283623851574945159365832230843009976855674040015882729488592814763852566593849343910593692934771918856943048596424382287788001616506074043513940103945740991779726126695838180438056385286346265871867472835564934835711457162027995996904980771455884110196921854645641474124561160635774210273747280149491063870850261275497023763542167188629605144822291910017809577481770441231380818397832867227689434509556061747590980015557001845254236993789126827355552893463172418302869049337649349215589012539921426573710923092276607248118527521176448648508319540475542866162451072596183601239814975691163746419338759704285853933164326498041069075361822881941136560307772351367378692688216463086660784598185808821781347796690729627385157215730664292038941520332636317470650506872883846731453050478264537893032030154333580104695485209991399005781411216736042467736345754638112280133511351423524799125115042122584303940384776399031859183914437340802805837996286830633889228631191181154605959969319307871546220595838601360013008769554857278108814353524657892765336071756214007595594653361040427380238554174745422910553503626815847717123517087999387424602094314680309777879528341304346149157473734275403837592190094252048702299337963966933630543245622275101590267809013284054739857169646663656235694520224581729422624094445654514660104322244423499273483428764311958370316554178614418625755816152881724610474715299645455589566669669882212105811125066163058414619494406945986526409644977383694981141077474619069287969291541661100980104122109575843112602605426635428652311222770305611186196653428540741130450949467826953988638187770328497067203042119896758776105680193754629572353750044112798085317967467506285100539826540721412752761439456566262306334396533045488031799493456455634918184686348235959164474878868635029491239551422571266890542865719690350251361584739633199360136779670457470836201191564146216578514036723602778987329207863780486485876567723437895845701911362163804466927643448290938988447648975993692432575901416290974275667615011502549460065590289872934327548943887898196730071869601253888074920218508114761837348748056263725636735378948233014927223002534369714906542825235801097487686945066420184851984015728565098602841696594897763207460816040130257392180915917934251834862778920333828174517953983273503805269730131901741871931762152089731366956545320364170129491115880705071099091586673997696904066202803811140787976515388043610989872725481209899367599355619416749423967105417547221628171080022244274615771513912156827479166491373185010168029306830926687065523656842414895032926032643975870228198386432873620703613918945391350309668678639585217209982058633416898657000076209162898269271132418595839033509434371112643868076770454865652386473224375872543656324943910620771994165097086899005085047158706337274489433978829954168901668157592543978811849217585814934216997511677642209677923437409672068343287320171889068221379640888241604322820856919431058046373383154390256906918352732092288231253907219588874428236379223843913058429096147021381481638714027051925583051824576644379257324846931520929308259953353134433874771309760032706244616506251016118700039935402912554202472711181650955192779673642854169921617479151796285734569544365903960146135202908027213886890592825738062463430635552091112457125306617349266780905339415965387282931681254153365445869719029826341944808909145519033185697134498540278925029924430202051964790881853828761233265020172766036049177964645110378272330551918973572356486851949945145713680403300705778009730038765497631091042828325568209970393876912776684825789910640548880217205795478488427531679497768896917627411973359266186460522208068108757669380654838812707295640778475467893010706238812275808922268675534259552373905784617726349898144118844497057613995842380271373548210658112020987063780593640055400482035419620281556691978191317077475473276407773243487063675882296965376304100171094899839771053500614572965655027114643987935728701570666028011259487779305135044679218810139207565425901644390911391130796644540648225653585570659799381995741143544066748088698753248551112657112313095670007913980387528931941576860159598122520240351553845040395709770484866092282397961909631552294700333510478855994157285942376585707491337916812678855530359014084675993286018515611071710161508780681963828609200461128916542536302194345843454327416201184494001444915747626905728216907195435221410979024418311560931905191147890392652207456370929155642773373502993708528723563439647643210931366300723655253949998273193740664894172248940931857827053730278496664510133098471517874829741591147850304413184975013046727876459937873809503280493305508370661773068152285797477233978636173208329173469926957138277518520422901417833000125688985007251217169967928263708342337928255613228727384776546769447600234979308504106376593653432887104577275714708998770958433650583250313806264507021286958220026110570306743512805671106955976087068796501687548822478639656876205052006057266685569801910940062310341516653471948299276039331701378330464959905128266648457099928509544075929284619947674715027819939364896943047260283369555039656649921144588629129389604621857928516999001126354130206305542959311990876402889353071542078979917419254188598518130968972987263787286817887205450882594101562043431982565595557534749558745515060715575463525078285238553777740522135226340838305599446681775864792491906643373521484756539299837364915163537167349680920540023949101495895996815232420562762734225180221465264266981362280780781646162640826256510909271744519614957567006326848645090011806846819821651606883314154693062944764158227516128232160075131286843618444209883938054936766996509956609318229536241469901115939104359600106016674258366884787583390237931208314691023338282408505026563217566396365957309564905201701981116519617210800865033142155872165937248126757096319471005586904448600272550852525519046854170972660408024239197721207899889853564058594397158316035517813166280269454530755062090422409640146368141029632307470042066261081563095642633408209883056461331475485132723334161299841303587093063186929225907938792977469279697245949516081621496983006310070388532378606976020726740127273823428108250639142449033959276194034668288639091186789629497070140094222286837767130667713968211479618992771893896291103716430050717200864785960225472085496882231173220145353139821133606494693700128208363239046571513041230879216468728033692552781442773063012897222696372827249799375310616093740975635905581525219445547731236468409961694850104751676220033582936182100711791687383330445738672374700452638453113539030434951446106351354107580351820967054416688984701461776354191364656782610039307227911136516287376977063352297167077680006553763708770398870483153601390151172994310689409885401231694717058060220247502319526769963486010133536545842704352978163602382454672647982723317672258467499362243070485181589102643738972220599706906200732512917305805996960202633217155289284457614665177842403030028185111822843727138620956743352775045017637408175172248138386618595989356557006080398594588766201505902051007722986468234921534269466459763467514108553731234701997944908641490265741945894877255942042349012213626657337584008547601496138198526562716662825002288943240942784066566260396449572393572788835834738924114010960060636853552941144221145587032867452135970116693632907198344998112063985082004887564244716217437458863451392727581321821926100256409917337024850422031658142831451660906709179487485672295986657935742071027774249096547087029387405769111820916040147439995289428982821074467431313547267995300379668442376189855943961941805006069792339792160832401715134677024970392608371619738793265381866460114688493731550809320936476455425650435138779402349474730258046359797126612442190838835112584015003400533205938894441934070814722378146188968279426112384036398149378830888423924925280317523049817415523436880994122878295913660554257521299357389401482588780613085312111059485457467461841998888805579177043208493664183295919768812162304632289137487463529016300057887859826740888726203825412905099153447737109584595781543255366948758027493615380102745155378941333965118892786156238645807303878192110463927351152487981724264957234966045380720504475290099101233898855054227357272963119818115495948838990173954346542845591577275982279874102982132509658327471694370785703758358441033334235014429209158098758317679891371055754495588152371973139911444918216583416700958204298692168380043140115712667001297129225258132153304954491123828545120485480517857998974259218989295595495180044525577688309047677400736489996444399315929073230458758344989833976378791108360283928543878270021157331910909382761333323526428070775854750106591735229121034078421198968167109298397655805828266692337225581026216652017503204077215112762639987227607993061839308175915853592326834341396550550943051846757189585624825392086447280754428765781239750813375290675553373386272457614370003855894789641976553435868683538174436766850008578177519749827442480422100036033568140763160665983891639658627080447662347350723721102548385366652824111659231519899589474411848034127636743139310483609411597752070204543357944525489026988177292226970003492730804265546238100553591120587865760947144019586510226529557237675248679733420090948261533641065379903416481308420447201866944609002458151479443568831582753800077615713979772326840336469259514157018312658488332530846080672443553284635737047242095784594317234417793492733738297287562816114082130949968039336001867654052242314252422474530497333084405798965418945513095219635078980921145990117317433237420826337899943583037491963535826719524552306131956791365639104667944826255354300301217542716582724935034455656645425613609146273137032804602825577138290822531791086407993820075924286087059518003153973514076785201309855546126757721150150689378677285475647987170311610642065879814753324098924695175706156270915075183083878860915782135374381584200674962651519369109626177483503733734185395599702758829440319172897994093433487073803753877873003289403745120741256443379506794679068927547848929896624690273107978287091185042089780882436875757413724637701321451066449902564217431864206402674770120514649052877568504556118822393580807990180640579200412980938385039204578380976292143586618529557129386836351825608624739477789389445900467469423499317753516198856792887772995711204193654188629315565037397402375086602109448507962749377859818861319994004613932806522718510653316832020181297059660740458153742048325111371149940459419715977227003073842447075828314128860003641493932518462768468126325387584319342391492076095878729843448254484499561896531040213068973351853926795448213543728732678554125878368715516292200116364676868280400465968394873377482267456258430808800864125165241441959750927814047528871443633154748255966660643063636008398109319361208595788235779017293329144265619489551861751119402945925759366634048448430404969033036833090910901366735473010790284682916378924215538206048371561017771974834839538829126114284619274659077519099363615020343623404393653728090140372960700568345419398684563033728510105101513185509699842125062835561638766552805505894506013249832035223388903374423320803942056971498485403668355672914730883414206533933466931974088772719790900758135425774878533750182090206915048441748815862946333536910898681428849299082619688816946505991362195493875433376147619398286822288891886151305070577538011642942562206147722684945168386961339436799865871690650675445594590649892660134203376972017974499351769922167769359176508457447283473648776578595885959772923883379083875713726627472939520081216754661156928684066005729716273345660439125472648577119944614809952443978763624768371352302792176695928072629892478231046816677007570512011624213689822487737101031566606828216354207927509061364316687563872478725781617743400274514995849543156036669530284488684597902550027080017760085382608474273178801419988790709855608829259970468148449073313318791402640536130383603538107277826853439294531400656656018926242264181333819759932892795071485959331995567182011869093262162545923630353265045739701869832103627157146112610315218248367610385971371548541855649583201004273402220572543239684549215851154063724424586709135806259713450199431491905625383400592918662081843840226482144351374882252495257327899006744598101350262796889744205687242503084375504754429419105755997509424918080061549314126664700671881942662880625410047531354330803966704423470122013548788529178997331863645881847058547785184334269069468132333991406136999598364717518812145576096383214056852035289390598443339119848639860942707625733357078500798588901940806966764662554006316970141237695758530433469253279339410917149286321680201487203177000033366516643610476337858072111102803668518103878428962866012165174271303889485744156774334185464303074160298468044544000890195694838488948284622969316678668613939574960489304751695509246856269112310953350522402267703223643667622377867388162318103072026883289542259867436435262665215878329972284927689649090296363385750171700514191003657961911563628163914284491099190096959087436195972497357546791221497581338717634700138614960071101991205538375117960961519639191363481286422526922136415262806947398380835771378223024154003038876813783361621831995417756163994627746497373306222542736952254587708336636636769479582148652675825492471181612381727969406902118455907239646815310671474438742745023642483230268232426596860619987078696082648725165880040030561289805191167545273333365449519355004315882340174504032491331848638955664639976574697992383329340351008774269146719010514194282161448514246123524891553918968045597561489320634402796185518194892085680432551850678633914384835662382481245041843263194796278783507488293516102796634556432055734900027622040277734361992820180451428330017873471988717880669850526439999805687761702634924920331051157361931815285126236574308774200393474123143730168349613701086477885943227783724785396427500193610908341267947221169980450602348954155367195299409554710403988900354450995941268886016174208892405916656927803036536363441220585004930497294387424847883962716295249183271095567759345928438642505288295583896691150087442180205740144635368350147376980592841472545406343619987935518634633321693687416007268860433138056444418203259110625601731178217922475584490194901230143727975202030047237388638736539594556855047629908355076814020528626691059366078941275082266026538855535949229379039547250785880908222730955426404006542494461284020364469290918666808420577990894339069498832343491726990994563185240743005187307496479479838343372642502233275823250278890487951511651226356871021573854407151725752041041394710696563479177939488547936514307579832702785974472179316303786252085605664942356524885467621061814436081904533590104668009617053004675944913528697216563651436494886394797961756494116209978518781615865605507025244135692593483212965930925598162311748548671891194501238618467951844235995172170022527543262600390819076199803009426020941084970675943224236813524792037616435065407967701137130649522080503726668679758866219127419235693267433340527594287382038853206759432068367142618572240132735560311723014393369566449453471135563794010055919562461245885327227035977963185090682596420361995270639312695227696642463407083906354521374156642409203806232472977559020192434371279379787790563433624896577601235804262455549495899564946724247010918459379875011754161374920117959098618114780025113143430883384024516174458708536935300783502523289267369702656850043364439356027830906439691507706351008589982040179364602199345050838151819915005442536188948363615143543052871684022904102714961705508227449861817351129416550054328397186941708302025537620379432248633681669824306636255104484821988366383702847604653326232195655284512268301558800009448281934598854476639259662597889094384098070108219415564106410803274544458192642740353757953161447418325030068020693926530099320909054254845305269156278754882931060887815463597905294293287475833838275556167708425155969990977208606841165149468254149998163680815419551011206508324241542471790017962781261191841456474185615885405085822736836967672082745971773422507955991927982076376201377612362737192938421597822566734073620349065228780270826214689137685263899503814794958106086142726789343961580039403208274821348172802401184431868442160383131523433673986625794748029744883106153686882370258915766536451264012790363409764610929613863438585086866388287404085589411617700402510508959755655203995533334299184577225677676634858779065216007285158908335741471995425976177444466024961354551741295687120665057002736268339242096203728016223958932343723667301767330308008391765450236549450515990209893747501714710386620490194886024487023554363224122596972529243908204588904554852125904671388219327943158237505069971135906112664599902837326630035961345200881317836248891822394510024591124679019884194958930582381233514321476381297854731861446235331066527281532344276780272190293393845696725276128841156745695316684400172644327372155529133104338699781973613855702965214580831085390969840443299478614614928497838267887268676615696383915076579445650083874229229323797951443375583149429688201771314728957494431044937763478765137576394907013650701417412367696516667095603041869776124569093080441777932946725389418598147383110270891933310819882223879892108296887474152351702894248166734215981050807147588374545965893559913465329448786514264222880600027430109706420942413004240549087829258664552157688408668628099999339311133774229692691135777459151284423281397446961805401822252264595114262614762209003627210890335131211839538483917821126683904613193063606191785933253744060237679108674965312007222793892901880495984348985450664984182119764401417798054777605687052537214561322998631193777319209957784653676796078467908341531199152162462289153968621720297374074262049574985461830407879267652942883934949555487621622357298469700019381315145961461634104021087597273914841750977368510912710895418568840551024064427788410507217255992715812764820910997127527737035691837003726683601553440593196721852667549449899539312126234159505366593975205676551113917875392045406258398480980326980936379457007395795004234303443444449280090773565170728260139111880160069574786626384719295034187149116926342184918089546211436336745923143602737103262940655924983202989213522481752048978542791117745224009072470727695988241737668397123380442935670552347697830599445860972931825567004867587900659102637516211547284760277808329090543987664312403604949734091869493879223631512952743092089139333162652797376644581124563421274535583751004364266948162397527707451000702069279739168771359589743774642888688865467830252226833085804125283013253305312894567158308944164973167460789630303864709328058244834871110185618052859877445922116490138746741912085086842309903864976673804248176031569021228270236996204052165758162401046006600249887896982936052010743051372657210092631248549804867802735785726528107304104131504909426927020918365237429410651283990862564893316603501421622834979622946468873080038153002073619367039945689440561113729548230584879088566596192860556631572711939118968484861109892299196728445732497641481915435832191302794978726997551671671673531258680537559956607324294498536620182907033671674885585519273283588122050492297650826311486020392190362922729691432574336946226167655820511048577398497686341111618197724337639287344762080854792601370453938409223602667278542559635094955245041227778928957151368843875224938280841048723381280401126589470957301221719973266848674908275167830007933521296076034931142980279155462330485691468700870361633620230380142150906066554719808526629146487285728538458264690498453072823667610348230769505046424419206068430576029719722360180188608029269578072759438336675659933408793269639497013308199336606004797783133164021183918645461649900169546055184480770780082833522434865690827997953123628893068361549586559746070374341310083098158822731863898318163167817098649670450425479431358992914666488530719324059154821800367197342341359449354451282153845370279696283053471605800259456379765327059698731231472409477652680668844396803625040071932358023462762485456721423534517551073576859683609763575534911118187624877343289446500366886815515452160489243462919526375164045105360857996438349292591624970531223013747358590387402065826600603570226164381421346339167069879919066450218328134898799520287480731028534476671693565628368767278511006872501030036984477972367992648534368909042791459127578704264327289414472190007975927744690677635316797589830093609830396616729862510807683418280528060465899583996961483563463320515758063297754018829944972425941022868223163747774311107128352581964935372136628018341121989492484221445447649131087492900035774944386058644214777620712761114322201206792455751163904718519074319765633416162827012118931882770286126928270076709480138503487498786320194813217114946146426305020414192087354314416305877560380888290113306555239673044199348273075606398808188977907203882456115944137429547160871199589272148297430298077406362942095580173464332312553603677401391008119672908140717687291906891865117908748495537977790740279610712870107686595383295403967708222962612643303424878411380476857202847805994966399543684664064400086564895992022058392173315612613489066772684209123848458860702138368891882275878742040252110993455077952415809373226061617118628245917265270002596189766704476897013833938125976886896228908931521333960408590851623312487178065471891989675905073337493182116735234217094391847571953436170705152253205881655188378447818452102109371023715365149003794866675453460207876203049366326298179297933740054217091428813004221110933846409443750544282440294838346684963726926953796143653078875587416801149739303338296237132624253135779962717611964472514952521123553582477290612187690427599813670039938310747211319382255171121336517499647097621615014928673315185449480885095663730023302978095195949013840686107254636281129359838534282225286541394785394890836338122819246227307676264917264868654166685280712908416781952406479007562974885654645791166797095031167870628061723597849857603334244829665337300158845998578054735085383590673532455902577428853299625076187168436945336487057658171752900844813932522742939691417811159846783798759329621661252361474144849082555606315896477015768778827404903728613505441815151584303037652601395073974896963927805175426509172069838617566291565447452706716512888318538484810527136687586339600736565442981096928987552311975115956296702059363776182686980182802105479503583848318335217379359315075127269327739459944972049912776423718267437538163742874228464230906253851369078661424335795456738442024803588418684531694118536052138049676243553859307458852063496160427535185163799426113477550991184166985410451677734501295217619049080511057746211525210891137442130103784111982701717283481726659776438777192000687934686169912156397847694601556306658357976005755029133547057742601564750062924590522830521943383288086783352590441403536461530680715433718590646774837932966320543989798771703272267266409185148274477735538059048501858105219880869760992919796766360317225972401201972320838435506767397401096148866803630086293904246482560455439088428086772680682157223476696350980903907626916930885517127916372777998297704027020146100640618971460089833832739311873872159432756019981168721979613270344157505705925861790428474755435910303439154136310389904025317010381590878561007491214385392792094899898443888915265982469489897813322908013890994925601232292866226683780986234201443859357390327735635421549791081949511580162133721226109198929107316956802486797010988718992599807594541197807234811308683690916643286988096334451599427846957360261087168065599872302979958962450506952024107208944917362430209664288786666135444796828240275322815951315203207082719436913858495444431745868411804132403943849650076164343413397868935913651656482687118782283902836851499848149575738493669897716711400448847530932481931246646073513128735116770218923866617836758156339019975613824796225089596217288270326868309525621988230036091781068897682973416779707139226748898313125055091114329173288566957553289587435673193327654720349005613899785350925089850114881756594850438918231347744253704890570866383954601475429874619518614305512378392130154047733283973118729590435885806026243576193244853110551100418544897442375692295128407014004612002678894446899608318471195260720079792777268187014010660469350700179045683611772915914000057687758293229865258206520995705236263034103196786567204756703273016223898954552797429557051103744203346527275939534718520536682750969670011022651763162373247293489778136842780612087677578284393073654148765655052463231773613059446252775204786072420412454213222615661113629596850565227280812180129373631883277876239610453860466776075534206771590075684110123162056107592122423252174098705289630160730213893142378312510947875826419623604475522578349403215275422518235594654617456136983674422518055840013615994889881945787755885883423986063038005333929992643763297877344867455492028280526072292504412795138256972208599139365227573571146139664932277972097529360868713115322277564193481686431245076563474098744722338742611741994367524789327693457379819891930390033474551967849627128981587530109632894416700040630274888429898451598069711751119541011208882131865161831712957153804751367502903612782374391748902640441473010947586890513215777563814506905962360864905911610243909060517146484685204674402741106678879047833270773629073533590145275612872820034313386204574402243776646344807220874035243785330307784504090730183198853261415765772985557033180857385049799563222614768016439924948481016192903797956525388782379230857580626239484773817571034545164303695422147792813293630909528424649040577495573624684082524030087832893102409465791462550725919161013795054114791257514464903840307854832085274169084995828901990220353520300293050978998083943503062169868778016855081583158352226827377755889067857533782316151013901167331184607895683291449389414931820364613135795563296438548904481256230422996200537218259624899422635513871874134021242534099266519193881539422488558911795474515988263549515628045467442480679557040025483326447488030267087285976292770098930883785312625187179841503786654127322160611231065308641186933641001469797984172399498116977423572867426422403473732041108383378090721284689279680895485052445148396322906605444052700545569015849943946741030827617151949536285323707251809650811933425141607661146729789008157613256875195877222831684710683869359137570583228802185219326786169133781446973406669452532148336818138736709865188503950913921834573471832412281277615500995252645763422768868541931812033306751757397886550435218617261240758866448534501469506911966686162588041812548137047112609048677436785030391442317328179029655561560517053788221558700262119601476317007002000218049379929077476066850043838765948816177512640318183122683139375512991232544025254481524657569896723209742046308038111450137897720167298282357590235324945445045636817601069238749762712536954051923417001685317121342069536404998206075336028338407766519358253559251808710704522700644644910793927148600380907858736037501362019433750956889199375461509419235480526592136264322196084535330985574136343623985242080926931083519796943225065507365636370900354294353037989676048591615640594910067860513501469932525813947491253763915662721308459448462950278875402647802843059345207446420184183955377213680114315864644248288182953510335967445977474973966071183365472036668849927632147275406294005964120374934195246524716438821081656239328353675591464235991568402882417114284500797940700800074631988488968022905223728617174878798748712915490387204343349045408436723309382065372944932507232065783073398925817907508038320720707044859124371940496201591177866674690890848787532871404036942562190050039106578057120338715434917854445962499755179741928766738549944224759268287936782580314186211833330266525886809923108509139620391024857431701198542037821419270389394900509981730107116288830585090850886815025772775974742365453737944751981390409931219841969405952454401654226537327396778690797097076953965647569238933310289715342101870608481273866138274975567141138206545675639292227433267770490337213669881121514692341601038549735212213707111610486320803947581944825228690255857042527971118278537268656283106343222726964459364716589571349849024137634920007274940082324309372582853367469668512966472815096806726656477146229450235854963713685861495762705358038761122892595662520832116758719978720780900412693327727435267401754330129253419166490393141913898663105676137785467001414719796233122311351201531685133556954149631780866960425326190715065221686000905953257590533627952109854116850107779338895083565949953437776827052950712329433129049912168210822455703421424596714066049754123718616875083320363257459182128519969026954523529292460366020814274330387373984028060795582923955548059232581108103145094273349609837531314567655177403370170349592088533197598918170577520164656215018670753641152279676696088651600918897079404114448925858355439992192980768283330799550369789703064936036772569599482230650449139698594475823813226190746980075025462300088770570805946526741474387999433471140594095821292768744221029665205847777243466103219519597453133300423255720872866573475750284531768991793969056530188630569753236622154892730522837947061166559906293300999231505664603981324554830422387947855642231703043172465371810571141024494803894011228010663867799917258272440407115144521032505535275814166315871075926938912747205705194746351031612131293902663918952796946660334909585123235255421097851970834539737325419241601847171431912396380093954682472778780935150009075853882032295328887903617295572708011702034199160701335454387162724416425143353051534962574168481958771247982495143309656675570485809409095388074761518559463418846514031311603564164741005376927538689210743538553652488732882568262381477646255187477756800276825957979210685146298394903101545198178024461818546942514255535647987132195086495195364469317910764553357087559651198978195002471520866963426521708571302286930864631852271668359083513246495129866833456766343088202477002001169638814764914127664390580121137483137924594217591630653350846241536760815371272852646340688176870982040214653656903915096097077090563625023439808045573993214089740623033753409894516769305431244186140049049693004229900839752014629808180999329484578008798177253556006136145797713616783127626818868530733654724925688808403284871640269142748615122772441817460205888720413467697139301108141681027011813842033594696835131899646542755242544575614762837009531793913381016004126865875415768851467775870917238397583126745625060879227308651177377153287963054967891628565115909383581668838549568606476962545374714298420830474927109296790848824952066408697236208891910029151612497544615351001466731441053876950617269866387006417560885021114683918406629929351793503382181064103042504866257660590730978223963782095952067514242556539868882177697696396721409258858834538965868353942376564775192284834364685174487724032719108470989058244919640894617659146302309592768430960427899548940844865881128490694146919296050230872463959783812762552763356111269397134529335903127890069113003864211479042364025600230584349843179998555055039182438043370406802774336929258940244778412009070141873711335015539919030765074249719281449155593957433015007835846759109409275287691594703188452065236968823889411608273889647827798728739510700848667444355370379794781917200483559972807513433242176726663850397940851579420465576473435562546115599357314232258784228824420804679812971965277492304902280396873799612797844551167159575282573692345152500723702848940682044532468963650787655478183870456370332466371265360983008242591083023347517060186609925996478142055006613234738629412162050384508688695318454214138239517043903330320044718832105310674153856547563978885262886447915611993598273038808069320974641517660911385383941856531505821959275931728107784254551121271615333944742281954325189057446934644579981800128007259663963158858220060649629425808045848939425115705936553272212121118327237212145860172172579227174915191142756180027128907637418491133751417991771160409337858102029028783334349721253464700137079485822090321475936610930099750537647129507658744025240705212931570066466505314707915275103446953942430101325079978316057877473049999616989302770401722969035689600694431439336152630493164640977944742537297700544040770112206070993458718071789383851821445375820646772428304768095485399070073739346556354001762800941204318227682150310566797324157622616034085130551404934564664957351444820490165858261855641807107283673616669490658291644064971480798949716861579155728494461526050381110259024756612870235356564003028466961019350296820066870790690929591982337323969861843201776326852906715948175589856282520095729407423321628930626673133568273424045104358628804187812782603413554088044689426188154334805092312032081862568295066150960861770999604392564992005001939530002291541047649782191299767345886524672290562108604210776844215990560677420348366992890543513177804859765857360502410137818835979324176083756773637799718889939054609600382743382256013673343096197026673217618288547619663779071569287911481837332495258512590079219059994389444574840299048574096340713751409701774055127436794857460826652931253188051180036584628092757951374926941129041186672034916328975656526291792379828207493224836761206818586189997166907124240285429151577892859106920896627159073373083215919040974751674835206610148384515731271220502812379687160961963980321030724438237925322072213542662080466058171022089051945703977208759971944310471900160728670256286684330716640577708865935059043105277879656338899094359717788928385297715620664104018703337542261410018255216858838785547863062644638295639403169897102912952610211101647710457110581201304631803897004888763702639812368695097356295557683810384985303021309760426533636125527396177830722605148600550515522308539570211016591484208689181564216632150429453815590707776167388475992326458426726520789465545682139993670849863459329439832003762414175835390162789678185554035429262462473023539341466957799521046598016053470742463393814414061934357922022528113901011756022237709044203174941012202063173084486388128303791120536125425389060364286572082919108587924051873506984672942967216344401986794781070460985174979839174974722429644426082766290278223859045170655870443676227776033708797937139510275514716043180175949035217887686860889129945031945945957222043355063370176210249869220363680104952398695645822883040403942093161270692764342743775446993671721124474103390548586086313963596376248459184484557503717091006166781075215604526209980700036951931329462876192839218522559319472854472739293122420699240025182842472919580517819320939626950406417746606701098358130557234477310057035099514415186887767446675349710964003682182707013796175863968946894201295552726268360778024903074753732556471597776783562322068843345335131588814211286368449341726367951088094639647596152963880226686800710779458294828789313284536470003854056788051201619566755783363865995695634064988981643555138133663235369255460509672079242856388470552243672145201101341217566830966813597611345172004920867815328437435463549695191469058008696875616041111057232012459454107248856133700504405549268484486375850335746554571683850219039318967528785853139391498008511118527318673441567259183522380655977840038441660254559872506731045033432999487372150362936686421993807482093350272201196523144082021945899749753107391014596614517501383638656239358809840876926929338101757473380864624387180267875361001924879759866368534530559612904121961520466908195923698927780283833280811143211842812822705343006201006723032781908355841641788592280828287936525917948027737378096508341892249170276417170179255870816673617090713688346579103485131500448329410875728514311032416611966922765113879761062700102241714898364366765076003395061830389835700132270153883861565928328391339006245129052439741500973810538303662305443570674575400350448423547128548898814956556474919677779406431684901550364643596370038242823386033917040571635554577058977953586252667507122988780257101032401304784613141650480744455477905246746515935686424635900238414357492767640632765817801371516719813580344047376918453679641161604430780034148509118681770283056683239145535860963996853181825084079636535637927488342600786712862163305005235786673900888962686630060719703635094483697172029844159585922755467713064688116695744709580812854037094607178628675832432403464709072398968167915720328470636395829218375534156005280007305639397713637934190276268225767234686055238123974932040201904749297820517762061260901915301363274464366214887328854536824377268070044667369646988684322561706840531253000999794222334480602288626671024751735063351366114539502265763049837507571656836391624687645264776750460902584277240491165347723973806537865444793024998362238381406602824673919265705326228456022301278074249023006811810735822363694646093030714221508842272977828333804101251462932271120147704005639543321153166669556870362133600120964514624898338401574495123935843787263006141225648973483205398516882583395372066350453653650083632273846122777966893398085008415971805941007626882449891271929245206907464282788304472030876385280919727322157969225228849457993461757605536264222626729161320181761531894429730522801164395562896619291248278230384327090699205701185293612333655190885159425117411502387692199461294975917501821852890249697338022208204403341186720414259246006963949558700580337024262749728979627074567745344117387751645545417603266624207556322264222238808343174757108625890623407519017939468276880157005038807538899551887408781172828261531954436422139690896332563518589872923215780365275837722840829621108548747867727769765822187017461243653089786305031264723064592694976127768383769325849709625313255979393622889354313274034697283723427189237433122577716340417808145876234578930180088642011087475819774858024413322585523909142930328771120619492532117782592105623277933372353270951501201060247468246639011603834165276521581958292056740359833154682786617566853866915308071872092875518560983956355524653498762431969759920436502649891415580054849705350579647734552031086328135960701307701731740663121891527677332005258074180993814426642371063789398022156096901585678944829009286839496526380423310633748695942204575268458176757612597231155999966595526548407959221826331801740793412722702896023093093508766989875918021588761312524511138550346798593006038804278354529866427073773440586105832576678292982107239098880973249645116720634714217272924337602380963403748113600849263942362934550594314725808243090825372599677179392125817301921806757465387095929282766670109539883029495606807033671098322039557781037349482198468140363696931663159408897805485033464593810165542208913655007818420101363685337375327958832664013219957080987999644539218378581166423794508933484414180404882071604142654492049221382947471587367454913094745836610696897780238097365708401510043547422852253422182880945077978939933255936959478498004463506433653767174999589123629219567465365562650274096521184111617045139203268780409023973155960087882845834710851724612340834549776319135195099420457126132269977688479929280991890115412977406689926361924221049927256770926863618747149544129019192977294638048002589339407426793369604018016440235936253927303017330529649053400065920326783170514399060908440818657211572493996009310257211772519759101081766248595376017431221753356086313601276136877873175006905554233433345760297015814021917458917794917990851752232229876833275060332827476340993217433793690027909444416680663866706536160735605439966236823873344616933084429721145673541826303178677212235608667445849848713311530783033124570487263080724324945879059640966255408353039052953795531946139453320107596656993049972132179564477447460324269772423520974537637973672020804809126439568281056707840227848146563425967477357248735721857311600234379464402377861767530428867058699283172638865182772645441374181757903421664825037563784886827486242393529495450268334077302133180835182919901772992597547169625066886188635783542021042274559215423746037473584889308934663967017951494270810947799985980277952209159685660346844887907893341984433124056630668653699140098897140518758765489409011626856663416419540877083801229725410954813023245774574708661983939216471147973656521749804563476129548521589120205950534631955488006741471984131924250131228688328250910104401631218249395162461415946947157295912681069963265787652053586990033140597446767131706108500014779427617967819462158110881852039778429714688607827695360057431656322538236133920594895480432749553940304653722522658261008624680539928768279643206222529323861626328024292684228692704686395940613044635760786805975656007971773166202931104706523051535804737281114907855720627910699454344370895234214131213109586724528449075887260392822014095537794496819329067118527503007501979435222366515229071519466742505178767168999359541854863640210495000569736847698243748914541778914132713889872019473389464737344443049214269004062495837431536514458007365454062299773636142864253910812153437634266052492201271677915935366144602544072938945566734263332284209015556560420830589931737541670836377317151322807555309245462733620182518587275431047147601956856705031700016165421722117767177663317245489640033116051172546198146743024978425135146312016014675503843292664928754570906641768348039099926401232848014761441491267639552381795745288625772470252265516168790172470291560637094386524200970426150173770842994785420463533999815241989462570430629435052235224575365003784832155652674982928236516538151316949071298349428164426572206810650344422424408251894366345919621504867361618649286975449471416700981376658990051624036834067827044170131428989909893937289679060656588192867477460132894035743817878706861402946795156873339572938875921076845443541692738223971251811995947187867037799058042544868816065910362881530529846271888495027429510879327066343926173689113584795303124959969119999340750287739007549775544210436542850409538503820552730681600432346205433033847069034970678474929328293554034425899280687830388328923010586089399014048644508979749362644214959614828321141715192432411776117888030764564583595110371777737838215252035795681899885016740531198935350507879240338158153845896349958438680997132207626056619465130066070031577703731417712678789159700939359780054721639554967964072312159508603701857740922385812349334999479542877484082748468405101225199788946078031939338674366361862928312319459388373265921129841697193689737269834852087513986624710319418605395209859652130952271120963442003193065499253271747785627892222422092510641550773881990945181447871871825449232237828697500868507898370342839497988310020645976886314915362991472169419762556486915253766879317757524110134780675341664102148186194864892042877032570887282494253834154557559616479835773626403618595019605819490178258265428916840868044907998123954359945087122676136893005494192592484852011964947496978926550173233329156710012816514382957819498090984322895438329129313861477994407781294736715198242662892428172891955292997607504231863151922341390743344738962265118708296834159789797698974345663319918976420201117488442747872593874619772035640197735102900126768352358374669724914660100015679002117365808650798759281716553665494992389114039732062173605540843193033846837340130666824655852740744122449902468293603364645725231805286739901217938577732002604622122183781362309705779997336469983798787601346985364817891573318744759255418654605507478975906048706736644784327980827077882603670129033097791120817216660654309349430364631360806055175621767866646130093945539909435887390933325044380528385858565617998343361477584443016327212713865478664063330064993106416490235903956969646336284985083729073346841816097170958738614274280734846620802102294801568247795737913114380658616173416562917200491626870913306656314045440108327181057627894716223561722607273878331604596464188715384438596487758776025778931417152893847281937872292533657861116736382628276494645701634434603803671906500835274670745694457442491876888020209934763379407850943064839583083016530444863710437690848185784215569493375005474156674804067963303565096970034604356217020040682002892348870074367127373295524229980558737504719813502211523207534679779709289058044086260874789623442789846188279772719226298226067430865718267115679602831813429275986911419413942400569167522543182973640658557443173393035773238348660366272291040409451886970343297956850444517883799939689956256076231767117393581199141000942152764865527815730462098307546245992602640862975622486205332553278711500470723704776351719341633869845473113776596183854906236957222466359721119242269017123377973877965780754622892938015177011288827599446280000850506921258610981690774322008986089492307669612918547927461115478951513850782388542530717588716084926789214098452347321588034170140422690906665373983340345994612126742012329191353311710242431695617164213849879357009580775721907527995920300118185674960778133445137679286930539110169511517555970413523147047722945689972024715623669157290866391823306447231931410463855804303417329825948402786762917901640702294257851874507085884662093738528148736760849250126209951458987612000869610683323461258672379847972038927952307630208491092007994102008421757301801317271406495284393360860019982831763631420979294896955261232881303758461468695092366657484006688710788537832791582849236342663568903845249482312715024091131111047069233510303120892495300272835617822281215759377439535820871787649480732633758661461692335553517348865655360507336237823427638089561850519987268846691256806956054214203464014631790593127720375671760952128312691320787874130162237458574048193909590236557177042724718097751365166191283218170617517646228463588219121297425734941779261188328350682943942094863367673076562211537434846866925265033019065387159905351732909534704724836079456421294295294123129618996176432419965179009137070261955155624007733488356111271439023442284816939314633161701019862724054464272575076078635967809542446212453098192169199580085643373083673870627793808538911757839426482828894113078379430034769739469837610290767472459725092813555314106943529030370743677962821820037939651463579968971850400456417957437372109668046660766969637662034424747902297549903694318481322111259720618768706179921927246441721717872356468570615735345381712203822204116108973741576174734379712555043841474457018092932505155737621527366262839035988376090626974630980821890569449626324407696267250778798022522309774796458107667270540315849041912235482181779992708848151161905617899230277901769372673882609157453759864216786048684935606774782017956844173995085352090471158279282292254779879337039903698095704616686788947108437601649041286194330083193237617823371526077430569662989863419413879078276339854330495450672248086774162730252317438128903731626887316009699926559021282237793982096456403438446957889054249571287571783506248226572262319595643040050921821882857013997295596590044837770812796720695681829531355336994258477236496738476457659103342905586362544915769020295742917446297360153675348765164163459736400649585271662557960347516384662948625173287801907589305953510140575682191888698207023064968904811002526180835925052398556360408669915800129490657638397177960472088970276776270218373634835429837108164706386888974023108975061354910108804903641478841755912048718632124558081845460986525186637643220563220186283761304318192326112114409678888785470612875617578075517698087990163522535097391012357043014514785419877100439030789689252479286220806010530642729383781327330900168113880742771282024983036395807910441597480579035191773145495748067011370537109920064212075784404483177400848778411355432676506855020011805887097881742679410131028463272415893085925879002278448191154807137758614408898232795918757316492687016448859446577139415307965051099432782407229540342909583395698031192462266073810993965411227467301511366176426011475052935488967903855162853160443911461021683037976658445570487563897917338884490659247586591793882763640370128713455593680148393369161594142076406039786242532169622613661688864256488411740149766402523544958638444050185215478326527598874238085002897081572260241237449607062639132147170879726032786817563706397263143895740215758994140985950316906795430827542024116189492515357308174520465362721321160587832806040515795540534875018226059268003267718829398756995533659989033797629291472591534942780439205901745509672057689175328864880206641242543337785166487900663499699604269170222219328407283232162496927258974348580606276054601993115794361097818961892811884944981557642487575294650441539751047094347779312818371708662460749464655202781979912189409940458384114425244563431757454660446348629562733454128473013347575926208482736860884712964392550357375858515319523950567791225552352506731586737381471226998930230968108090153066178576693894721951157125325421397901442813787500405367702811384111219815702234861622949757542944274109077210429989282597315368953265497197956213680224252982146837858613757162640904594738794393570201061218303606830865112282032029968125050178124544056140092331538606070191858510435411513505775320860059089398491723951762299346277829709028966423223944224104298994781540746275211589176697746469495785744705412761972583349959941516828620968566658276741275597360990242815540454782743817284481649417494229780004964714025899376179941144616408410854582775053544930827335858390184296112222954262269220386056439074921651239280140387391801601080838437392006177057082489036879560355033975237258728767573002281808784997089900152452832201344141222327737172842652454237104019689034549757078165310743867530259393212469933178491693429164590309506233247045360034559628520016372155306442450449299132024128100537081052833543153891720118726872606208246034850474744131971920738151430821009307526193972325664766544386368345972055417923093285886727006361272011977276744104344718640497296808168617133613184503926755516871219837130648915535801101071226875172889863675906249711036826473099395383106152925078113199161571090758662342946621170213080252889921343141493941711392999819390114174744398399980653127926968051368788073964356971079485312775709859365185058627332334225366061122027748967421691404118382714691242204710019416942403423207890376139693720305546955289817013861109038000562789881381438936754321999594190357687251708914181593056679761145418786955524378055307973938640253969684154123131375384315624380388244729625466139628956898466037113012333286221325073171246989482823479941936247457319153706243302462335972650029208137335836512018739343316111054246192976456761899437430561685552227308804557949162725896540162408743898389014540648763053734294927680962050891232620786486483380006404014756588219377090301834005755151518041347318549403470078540519561644530449771582052967159564235453263431662457726045866175276830287767671422809459848582260577033853244030222057059906266283240951419303446805160302357565441255127193929274457421492792689162634313290931616188055276083201833982486651931079571855791034324254860117672328738126042998300688435472884336695208353908985238287413171448635507055029040228762198071252793172277071868240342117937685439547332070849066405311961560525001713375531877123211340148229973246925746859312855238556083210777721241095192245822063932617018812801924006068507121117916216238731047437071076902729711898785270458484619098106968499356042483528784538759333785737741597029516591890056826579965909037623562968529310557530579873890961854321043820622264934659488105629557704085057460844309386864839693028931147761119025855615627104547637798484444968536026558252503896443489498186542542930702160470002628138089790122386096076156358621972278313366320832253260437245476772954677778110195122168761537540186365855239273596867065993061236556927670153114477419070851180369414329803790721453436091057134203137170459831315154482960334659836972997575586070115471144496606293881143702981809628362290884290924367194645118934090570404879001107606685013729108994457900035235792191248916655609889983792796094775069049005796569214860969964877932701503597148344584189337651130961644111381741298982921853076205711464912628943180384803140751466644904979816674733697236025143698521589275680743830869646497244615227051430051031827841342622394531922513167486741175825510200356237582915916376202870039331384622529437000043978948487673480772909226606457391849502296450587338113324951051640722473418261542594914125199938133177007256344845344830984712629794660925320586310670372068712399759121784508218184252206520557743559246237558843660750396671314628711688992632357887131850387681748372453588797018004994922849212648693740722011875233147030091538699650750626505755113737352397144727832581539102822087592413679708161571326487568291965041927875357071795590431709008205425430565240407618250942337138355466173361414066150480132052694163846461962430378070583489179642791902919319498609452427436286479263829277236506757844736557434596988471361555601137484766062396755570171509366017101193609139720844695530414543778624148300640054474003360058364598941531590443412186093040395240414456417914601060253168550863315773565228408096701052590875431262499295450885238572349978914213863380433561971682668466661049109666231394671808679629833589632497871490583924994613376543886575129304998028586164569709566366507845555061649414773411871859507195947198283427306429795338910710261885736784551404347613570844926645862927431519656761344952033449186177929604411390677884320307772492825914089206049788822784054185766859184458804683164497518309466491508789393866353349597855349491002337886474130130769722289678200941597455604986936599570120297214834511129861795252052428053918173199383796309468216798486662896274287186521006731810847842590287504823194867732702001935060027283827692968888159381130850811047939827985975867740259937378005210692746376359955436209599098456063818368939334572007056024068194279528628958140696421052431357813786783467798278384878417487677294116936395062689859423416786889797330999613055926156072819733322923200956529697767702106671609874102440325207930387896704183418600519531885695474818753154733997356202231375401742352108006256255194472082854074923946086390779222977217447463870195462581694184170988196843744784652362446186575577992883128564551380497153469915987334935015238406811326359971515114895953476452478410582691007213785778199744404261763990889229525029131687439990837388689814785628892040097794697692496368984591716684964483220194209838199365390093121836034179293930343068462651129777056888935599370548325010225293322593169792440918633708006719261321993473413954105403827803028349430935630406921046496760030225197893712006170731125137985669661836327033118676758236303236913782938500785996458505275278617474987455154842936180245745407263727314707596923146927383548683075637188500785139262353103274183487549297725899647068205815658227888408174828836207012666026019305461794914669437008699245177374654702924835090814077285805426704431373035035909500141123106574822584868519562592539785610096394098658398967443518019808207162398235771828454978362361979703098373453473555869623676638654805164548078504649855788869721375112594938012342289581058119839577312878947872028010909901782466475428976257241564293179857963031681568276094173074846043298676844428545600417107039528981644201906265017218860863384488528580386938146450080531521814576441880978264943531158364501798942105623367137651342913020249467379449893222825469689142736571710777884116092793448226439362819895570859241366752465532414151417290687263463039260803869140638824690429895896061270380566560478873056054634589018983325818501710581879256728357794902437251529039239312794754482521357048148313946262753474310880326819644659789461272864222115806898072288770966027042376062045906770396251864677388077748108752239065949486880060957417106554548353099532260322248297044816469723686468045704063771763517548846713037672530790073195262713494097490642006649473417758170027500717810838253042411772941250650929406857391329357093180138487913663638062992687836755734634024103941132592971497025042563530405411751700351318925969554771457289066442305283179481796597231291675230998881410970512519551838991161617166386630875222867693923217462268717484602978421624809658488026375410270862858388186060439566189143563524895104650344792111436629552286957934436578156608586863157538441223057056124304002589962237106794055508534721767747044428538898166018089621216082324268075625962423153930614728808330901467085725831133040204370086560337077105438202062616480806218719822715296173735824300621317318030034705038599554310168348101750889650669007411615135381231651276830630986766638315479230091510253596937771996418766563814138941979647098604592959757993034271725217945791288463773585536326715199488826622976172371800089654454464081304995143221894629734167046318739672464851089572422802381183286706936280260654853107285929594972017993443755152054189436796067030848393791424710375312271336196999432118281522449999250451760853161810033024738631831138755188078654683854068116047210995120813376171448931503536587009915253987043016171158550482502204188497374376778551846555656553199155084010510559340429869431763970609600670896343155730348008412293676003713788559817659464625485816216753615673570914751955525504898833589069156660259575929974558159459909004636674798086864707080916601791184017531283472274892891063818053340561437710543992289308875713886937319070812781411826857185088712351722772731413661997077224914308782555230000562365239511857780116169178308007155460676255018006189388331889731862732814145660764911806522690855473045515242793418672346884290392371681058510936776064918119739991887928240462140854086597904587231861934898212256848527277586360147093017369629604175919677737400382422026536902945762155090899815357795694049415505453054278217045511074630375683023548253978443010723195291569893122402084472888249120199848007245902190660751998872305422225195918389446236883258865354231535116188993440504629857279950986768089993933854851539234041905081192983920363820670149118376412267658002945596302896611789762372443514768709897329377859901874080027661271233427771192947076059241198961091230149810429006126026299484171143667714269113418772472287607379428995986309889328516602731087352297250086247746521582261356356625089055365062288026729019879101858273995112978361611955973349626849492384145739729437505153422812948474586551234969181162308864067686813036377948998473295018456825667268512406723546630952119405118104396317061262892282710811654305229113192763830029806521254611986511668670394448556002964271819181802995046701065186274995484966924893984537155795577175897191788245097647626063221319964207310113172886711229210724947652443607161260959884134137697927298668691277943071093534456318467014440372720419077646044898162098930645510952040620937318910631370118080897674877349326470259725070492402181364427105499059058007738868157457588031001160216354347517226999496441200482559766095688501283314104816465453492280473690565932074404251514374193108614324884235296877119573489759210539379378048040557669588668958563167160513914826383969150705106951500767384291912555551762476808984763985370824487832790953894215882849163901254689540149523658256040651966345966468908895181058949348408839371888090379828218982518539469613102025062361083100216261764840966255202700292195268423221522300177728344409012926550416535923483998856594703886532317099867532965073006383971422836530557824344256335607354340637434477929548265729241503999681225575871832523346739351013133667132457627035291860803251661287400931130581677303670883004756465510599159469791564059465439685657289635638785148934846767770860730314260896287233004249850509882686588235022948933616926414934090890189230186635105007968646196791335547925519126357804101887228958301193382222856498136659777621431789994199335635481563969317266300101447572574182234871041137604588175822308152103968674363750400707624849762204951556771455324314121857861793960141435610749955771376304121982290671746580546116842865286720087232190823851425331385033001402898396700968131486287392985542796772074355196942499184781248302526924800218868152909816774585146223796595574961005748067327340408258121071056593112308933669544801496339096995119449596879503629247328556205491854730465734289067752144790917080990067422049694442999744280200079710208361265207820815428898748330935725184481108980484622497030807551571071607258418424132468837116097516476893652655021687505300541550736235430011791791021305153461403053708952242662984616552583811433039875634714311972502046957065265848526791349381199140950259971087003985947225221892858574451614709805329424417621517732567508732725546965376723440077053606813960113427314998873833196337908391499544410327612648041541093814736669248074525847114491130188807442227948253420578189882027160329800113942114824360950375772356897521930067335452493896612261638277836675517458515407353744349777271654413661556216453711877922660117142635564027393408753894283872371251273435163922930726629679391808654591060006215978656661560510135802854706091349568032235121752633107623620738021923918996472150132849060089449592968960367367779148727041240871906150449304456174863911433806291817141286162261281740316549982005557633144247992258344625606893232530331552939332434432751847004502263571977607409882112968520678247839806699400046297986307335919110990736538177521972041889796471776444342794368750975483812450541256168531325888268587423202562531760675950971316218763456560299871656187859622662772075733860569889505469702674132427840859202648399695735076155984503947330440569959270668482520388381196811642414519307483736094227426108284581281474161918251952978973931020590047376155915039179004549857196957641636991363309755631112894755809315587000575726741065036302848042136566119530717707161318163468115434181178171810259695875934557711497929732951892663310243824525404586055429414594137714039216161199693278083464214186588247266824988247136387649751633536577450306250324116613535100198022706391850017841403673361411647206282183765367983492864622598427702364095654593536489217493738266446834781245154604460587751378789216809984881506981547457520001122329457969647292335282125011221228482677846619650725994273894032449746292680557328970445872078784312793337933227446702749101664553700859553002948343792594828173601359524674054689448596781741544496863012212856760696593743062399321383670436086179473254698391936300151715775204944964140194562718627770596024042156804310220712239374070697524565419793583171673325144113854531967863224055237357324070221451295312378250061642137625235898010315464605489361417909538703073638530224529556292112894639742381042888323752219753014743316401932556135353357097117108690907691444213285990080032311067228016665746429218356562329299866806025091671015832560987594588810283329498605859541802129007645276284019991866201181898849363519190956148135817647795091736504806570759527501805837611652374092614488782710578819800751887402235949751839107861051110475863249185620506059180923777725102695290470917349330390210332027816284353159678954774200792373854385249032568440050123521633721880296721440991030482658718660723566680969363899491130501289643683901729847818664012180628292100648669212767350211916398435599129464942342742139109267837139252949249248749161772978038515566150091542148409291911555080300690676834587119738577498362080344494508326509286565960761487801331616840956942663850443781676249440036241927025671274858517207434780112355585379608032143260694471975447960451912375089247387653273657935049380895851191118885987312013826429173726495256326297819532958595265509013278345048166631366370830695011804716082687140487080840533821881648561530406092770796879034450578875942430052161477799642837132024752228067192211819356737813183603779968808236763061271856186021013516426217500805015252210182988128375931827318407029090930766336117423130245911043968287109252276030849919646547770070314780748198717932225893469609585811445425976343412553084569815750279739820007694866929397794990549919583966308986276436457286274981514146471520584587052554329460430322286048246890207731309718417491166175153954828061775947085777510103329630569605331871195891622929689258663397506128044942159673278283788026993562067588885357266940687820878191992886680023526841664120491700306912397211845863199178205714489082922179878567568217389834198859325884301776619219393745048569994583929385098982831896647908364258510923227862750528528271224210955916382687503611924839392955411728619339310641050699692819684337046383523810338956324832191352427395464883401483181152678893126197029464085986924567554536886753076384005074562092554805747031050518902994507390591784092795102653522819719399803211146378953519583423523014198036200773778638428461844444521178349448908478891296475764559690733711525588616564445340327805390690673414658358726370245112453128188917720697858466027706710071780306768630664319186339321661301688330998997765291735561834569450592027383141667955275890281951599087031467793224561951860507373362500322229169864802832333201249662463896996435007074251588089668264399405763421328116293290488204787310111930116031622139956364877284632329042053779174264679277623172077797354999254330505664763924497668594062619980594102976028202621919581323462230966977697633292673914569216263619277558819173900543100531145049193032916761091544553586039310126108844772618837400871544836536741642398249956508913548262002583573631061602906731726651187015921960959737175178094139386391828406323534763153655654002313544523059782027210371811546848973076416839763671728178785039891785528392560643444536189914553327082283051307307771281989193800453751837729234827073208133062735338115189985507392971331021266560186246252082273657777575128463927828436543686670738626731532941380823394816509180561073118405179196480528341016481878968662186939295702298050257600237617286116691197753395250280420332369086995251002964369458322767078087038163881148517446839037538520598171686466904882703511469705709972367923343191022764613780481659027689084712036996753421640073428190929481727139091695471951421618468092997841987223081616870258077306941206193059210201933603551162344748423726001669145956287372656605984287063493240017349559068206814081249279998776402135889428306577530788607660409888551820462682179148298644081913811582762866982661027806119686157227840216358815428220305202307936795828427648693408299117844677772437499348773610399456884575940407111651308055690361695494442744052203064453533730124412254752743659950918919640755103871513096795234917981713565391411867675191073924766365158556198342227669022822200534949857123986787476600577375229564325576090590761506133765382223246994222763676531420853835799456578545484023554721499517836296361778766616526169812229778005528529284187742340184793881869384351670571802435551540094989543235872384845898273283160868770749195470184571607862489612682838830171105913575057696640339561865570880961385892662966606248894562416934275534190150066265140656353674409529484156640110446051700742478972290243844529720700079167714618455485089701121726409876175207988108326746305334641171413213693214523803193901350595351120618471389808959077892546324761049359866048148030287714951064708409962485603569109891156888288404876617436993947373382841811999761539144624829914528379306175480975573634506502864654868764116564949778869581210813010082879652199020350880078142717659638728440450405720275446259777505167042465339887079916488701892950949350627299537768617904949275750510880582225279214808568416021314250829432548681773666575506835813036759204248491591341961603433766767163512402217790015898479343329799624375281641444579108024456736201729216499957169692964746771023304121421088087909362276781553984269256214792531458135174635160461556554595075734573905465806471539368845737408686623693012082856589987593120069153580932713959928092625304843734264212972593963873118920585941762023027404690175076132645440737825650009309695385280190916532323477669061253922592657761678024231664292519498475075589471444670366945190725272972763619817961893385669986840501648256791002049682993974854323655725889176053411762726195350782712658346502687801054387769838167012670558874130882930296734956057158147203932573121268498184630823151909894642458801870621761168563241050149975187075000087137709572032427535109289290001893170413254219900451808887147662762348262512123062968440510283325309135443342105835150673764531616431928955420999636162465889476077324937801616980408749082016169719658706812244476475116136668128784976360719630704429946199084438702615006726438555073746263884996617625891973242511630029775902988149607880883555635487647845751310949021934671418698421813071681034268928905138674795126396763552197557566592226026924312897674512216224101526582176713634845074119973443019824899830387182665919049242830742516231667105263876747361475855624624977625808701540742106822748076892619587391361955074011646021520980837434226430572677401007415836950495194973717509429568751180628285775006475415214982945629056331485507591396667403453178794790398359918182973232176449571535314246424616725150613404770544309759401798256484851868362564699178298099091878296315159366771119328593284593806973422468998496603472035133089230467216747426053874426028494053434741610347539503557304756953864793261616965307492982754889911456689552716992607207148240218581987041544479659538522197168259493690253155660115203508688878001155824180571118168719512496571203111431299668529239744901422519285364924796917353504441218970541901237458741112251356203252230425908291668503324848151301345712667438629482286639778482687693017908125330261377415842900091685837747169850784356987523802469383159698984762433922012010588319617489502233506851308557565131391451404024434423523682367968826554442314229097194438018781195522392237015553724054526898386206704234158074102921434273409153543061522968333172686245502529201849280985158718356772901998135701368804260376383067378108849918402972226498581307476288858118039538218763418223246562932447872953535113895649198844943176675343824529560844561096976649991639584783729419671356277323791891407921390335625918279971498517506567190403135135095193267505860162444345708375153816489700006938598486114178984942264156482545753910619836292715243092635759245564052074867047331109143012076921645987791533603443432504753857176287346523152370776923168206553500160954493686764390000495752007554735165456671193427366381922883202289241784455114277851396217126674670794188574006008095277325208993834191415035807038927893945536559173453404306244286429871187005873144907279149967293584413575280251055054212830585913289896920205044679603842488618676992528420199221928934026789633917596441025958751195939725185424437196652384484537500635137618534026702669885018376111181499703066349558077898669457101880182861939429907888595529512844959778655786363349190804920119854772728891389168982002655522615990480338456659219601237819623953848027980451624308854324387838585063659263229963569832829367437689969722884809028271507759317175169348059098512183210237260214534286311304362358397565808293691206456667069566034031001147847327922822069468305793110319214609250225832407797511821783036690591765944218765464952743784239192276391911710325205779844838672289665043016952997135920838794926228687448168385385005100310986785441209094267424510666547081299028902010962663650010620780031143872923592792187059697694963829199642340133434417606724283404396612148800377100319927920344280429570223633308559185172381551889957262459075747302658802146201496092527013084144501650423477063210573191832594419463367912045280595656616724619299776790992555831536622119246320993408440075846854180433856532528100465457525443153402045862112377341096612800848419862490953772238333196219421805363963012709026948484744655188221566051161464683095616697393354429922393510310986080013849523931736309326052814170056947402430738958336597299903003460796848177283531244228566008185670904546314539562723448584588064803207880052204318102737129057796352925968533801306610761271960532294590115815215047155630589749413044169339048689735646588248634059687359251479481874697214563541461844171518606679835410669748216566113906073102743356680867614495942104137356391075888861803057927612218426407574123969210863988903870623355849962249248643382656549181661515797666315798507018631505121755449964357606777079465559500680981041761672351112621656264883209519388044093586644094226553329463719231222833402876086982566064855924173485790735447915167820375524510699580590493458511991787927513763064113240319737928999110811042484344138989961046834174284458649140084461160758172954042131328611978752368191352672106576454169447511840731086006328174898393078257183522573482712354873230414841097667554317593167198541093633051494329374850011051742875538245863424671857543423130816824675225481066478089694519935742064675334118611911127533325001797715331461842268311819490291622416723604713999522026482903030444434592198887014897506584508506772140981839046506425570285813235156055456395987772673328117132304856091661378030154272078196406921774308400712964705120952036826919058953117484776387461897827973788780236388379830384193841529310907605608525768141602534481462418463071892945257274206366737808542186487824796505024364246210781669631176751046138371726457661595849790445992186538069261225307774310124096364953468756360481888598406226451868938917294131940497967841322750230172491057216567116673124036120917166250240928371839441492290404593369620273220826743163065549763301647974003342550106709780609963682557761192668963401725344448299726404491218682212385731777644073781550596720853516508924629952053553888781944462199052171572865176677307108726716824686536240299587368766444606884777691607833607014443333098412197616314246710336777251204504222934548186918609617785234325410009649593008033263976529842600936163478996177403916566725497078523818525567520927874312658659906490776955183217847078946576917375801723889453341143282997917967342080145888330159368629226001402280762608908086661839060806681228212130130559763258599634194784027562287993697808622582914886974757285101151445224361813392278179725950467350397861975103379972141262358892963150849634213912886796810581603975431563748324884011462243646002696505784135084741565082940770335991681566879212642226624372987628349262100809843183290175308735958684071343985390210988520557612042730602111267540091937423963757642013278359879259978427032301285800985054289449102748377027114469361559243235968561723296179179672948613433484965471608908072812858809386250864609619145236973379135100146047384880308948208124688341866434309674534954271453996147478667123865973358103304072413743650490139035002296944029137307415098801315261270705310598375054858679862656675813781637054072898462923682953618676777823450685163544341189337949753269874017590534457655213920395440804880637961626365708629999047298071320565006492255756217670180257827784870472248553715016590406728393075760467269017699710781834464758672458287573630276196841362617888174134146746032259263568099188007898853051004875556508190926171920675332774010444975174386624604462197745765794877740396695544723224500472365840725450647124049827956103696503686869729544545137634250815748054994296814427500912862059393750000685898996759873962901078719303928643988116662915460179603180623860170505070980930094093849524027748912928366893780978180507404365612129115906530821988905326253538155081624978025919413853970403415884022620071276029160613285716597541053151013243503545817179439961040068166856297751129087521261738488479912673192740771678036418164016807998948455727716734101557981010437600154324265584101346469146427549388724434410570704300873316573052337946403563549610656232311951028789455703950111806805286679244614110757667632983642035670732035375028135137821085860148477156014987599169248519422186727203591874407324229278913316385089038647973709720368253860998019377353710906041417369913022056126186797131837287001110783463413963945339778831353870890907797362909132942480311356327923676907840182978435112187167054792533215640877625472140272057343357672445841578088000190632151927409859535878853653792492221121179839657115398475660830778640634638659789292539195621886191946799373378730219323460482404664472153469802819912484322522853922919298831497098532253923835949491081594900603653092044806498898335066107308206317115373461934207330880548761006726680361177825097583976989915111363050852021457467624360129583588779790106970691057957396387049965978272743112756614158256393360635448663854670046139367467348537413042757246956232843823018828601030705460532489455446309813027911654629928105020354895302674058573052039725809500224623070592692561032715193489254652395299106702416536432176084952672799269330916998887233817916539551687963549834940123057249544884117133336026723699252835572869196132884945603320154251962019191551341020815924390355692683992642392348130684812203280355728001937946282568083176138564143636274474853022940335262501297912958396463720874294993376675873762673527822525634587067399740923572404340230993295818194993845535787442171289246047563685268882132123898579362821751576761127362067181003838653188016517386321270034783371263876256739344707502421511360548638916887318082922853809578548475280854951601555331441334699134630409035923991514887176273075864439583322848307831328445544496650840020088897087762485292784336550629165925875685638883409325185695545738159838826679346268347132326700191999896303259339265584399648248471259199307403689500566854498499393597387580644034170570136689039443876801510071017368876297134480731840909380170788194257823606075235408251319265685273326766554027742821563378490224480764355232696901608093307654602750051450326821053349347163472927666096790569379066494369046610759442755020884846134841234070089072641010383069787416693857278394812683561559463572744386598119205635302307164853533538046294073903288086959361422705477222267391391411436133672140974034079282072421224106724773680795736637507262179024738815150313314496944103761192419256070759558179748961270741098159798276129639834523236033077728498795253224613460957023569386481511119713684199361007364728301096565928537040101041741092792602075531682563741018674275693321892505622597531711695663203410595428992168332009695975615777023536944172091415160264953044538243581223409686202473571337745854309787189748500124096613660080797971556422799678991656158061908527949889749867606287960845121398336287135064089111837747711035267996871996538147656338018368987433114831977859561072784538395859964774040071270318662751738328020887625519841697264416378442604206080361361116446321039604444821625887356076997549740749735044468770799891356089138516165993128966885862481626180439347855502017447905968380610447074184867817001462561289482970860406062343781630346114840564582567386546004959982011502016767038689558141674531895893251849128135235511247745572190569876944027472917305708531025914385242296633227993563705467264753129569054574492478995223865657633423239205513205879041465567151966534159815956014582377528225484935358832421298383920614558693576488975919375349848794865064154927902879127163613533858246283282066971678039112111548157191183934286968198505450870919557863436614926422251234744207441460107856615264231746716616597455725305680872616555300033182501299684515217388569647396140732064017989035359033457970092655674594975486733925200410332565412739783581613189446903238808018801934757852647265154709628512168516219976105753634076312953660227961751185550221154907206686289259480053513421731168566412604393918368370442800995162180066825190671025924712061325578316173960731185389225565640300854645911744747671477151102335947277216871683017051387564370698898052710507241882276435230732202946029721036392635286145366869840807308487262142942428717399201234272449856290333833019732479543199843073018511598915906650944419837392171835127482737184147288020689043621368942201175284426713809471797792375528064281088400746233901498531423351285067058112024978482309341603494320412505137331097314348473181613912156340771572764394528493463406130356617307615116212477761054732753613086195045084492402961504601907915117464417298330287804123307414300777565498538864434234133190565140757323792486077417652503221035833641783541782072811447950126223921158477540168554310134808884035535903918800480935352605178091206000043371351890522379523980610727266232024499621339069453466144146444472505797060983522860650458900099387196801158166199241310796781457114895055470323910093755645171021944054350902960289237291841895898937646025509350883543322027636059107402013530308929235946046887130854522875202154825089576861664194781907991464073229359066905253875516280512671528545085670916933991400711254194615425801398760325051435004551806024215986869123779588338490277790819589429072091179004845537684573055508193938140374170115529583226138213773814927665405137666144287780599414978825098644051427900684554963074432846973372273571961175495905803413105325775344448105730583206421864909285415105888604485148062927465382847764780529003635993060700578154385595072316896495331223947662991622195598062509628305916814392260872476357922361307604963949612711328341884706475854602736300061933539075570818975792642390189862127780693605445195315898168906157770513335635238060489140390780341867003666037886364360018322581531758335344770086890442743689034803515876926280540285817110525628642261228560167822076793673003489310441913271022475206068651833915830830669664167177806956507965460477152003324864805245950076454857557151464075125552574294737090341612105751506514990200039853983700183517456947895529883302883807321312307153785031413428145896300838294854520624807137601637589269072340348150577308362405334568491147115651869659467888333608785255257168945383203945084199455825593893443605096387603612120905865430350253933795747520069037010919247241495294503159149705436668231770042439856602819936123390235019200230650648639185519918821683168806153220443186542021556691943176805523771020110675779540933259406090261459017174754150648587871701285616223846995288326871818239394487480628189355116795472957911320169422157700819512837588116572939831778459394457393774513208305805468667333822436573956583194621731756950007899287179054902604862752205260024427017077717303763415704259489018512778730070232816819204178442878424640288801978803143398279353203854504949097074525592587152580580137983294753775500082871159925280182077177757702891002583054022278975625362302273607520751390140863953528076410827943739469713977760891710715092564097466160526889176153282890379993284927406742516567895498507006524255094012191635125491837526776398046680857530013251720518998260970911249599176158458069053954922767440010462411117318060632498266413345977190834638696243537702508711555009775937931987625443440669929170117001016703470955198399210967333225672805382112864073624917239207330712729703446608000657434627767480101376105014186790711940762484711502471317723542388526988269152353965326517000448581493314973992237255919981354013888631702842332645783568075505656213097453526372656287800791283980428711305485789346957497485127331753441046811373405154215051626533300028364172236724348881476017029656492378958200586753176079418093426202914909996566794167485348338042498816972182899483916348609879762909171685403360386073009280478636937165405365488246951366512972021395266374870250149305364765882739343944391720591947250762481874691839420781081050075159167358840043374827898791254764330394556961595463752253886707049634711707480157664139673158896053303094375687268631796743677722308901445413472290701786062397309306152663970288436677979153395010192816390627957499364295952079803208984151826335443395598003786964918933784804577862046950416401832956630550777579564196469489682020566673813115177115804657589340768399920049722765917606715621292838088299636921342223087015281862028643753393715235890457839104984557642828188540088133482288307170276063419681330739659688306386251407606922019251533212979528800685293372086782772728204297125718788840568422057307880605329363086263040341036297379887115009881368226829720657746486361691001089028227611621262634053093486915919821590381452180012471588952148761867586576764664760823214664145854832065106397623302852618653039139321178278374244986832019779142607788938195378146844812679781097623386606845871512272016393022218205839674263471857601593145026743048309849817865205614322247161346377663808267594604456464076269156546007411171818252119462770688750871743936142480843962169918257009315058024134040396868841529050829307078755722110577261362606705559646655975393598598184382578042127967173521531125003765191365595557345994149635697257995112673562063453225149629408252230667173157167720406728574007078043505109663542693545312155718266304493278963218008708779174787076813280463068966404422553287481459489048658751178407433241586672628322962653106249196300701666752869742389178441250605435931223795882286302548379806739694911980583235147322815775349796862814453614508469962734357834684916831904469378345151520144153119061505294955342129514519505969141669257449289797460326630270927230285769736473979477886434668752197895285361675463224368238853426783457290298806652278908111629023375348777852030166014337407228967472003734967953773832349088680496117506519951649842342678187625424365843738585512112041346179297506977010568753908705429494038176354459751684977422608988150816232285038992806363880455263185462892148288464487805551090239869411253435637231268116411070563213065714115660037629430188832988822296086669841822258030640374954469213483703633045042995321840060540871460536981428495874815020812603620205842236399306384144913439501663508752545586930892857484731219043550658397097057917717417795757667363542079794035994522562380615783153075477066788454591575242864899195790731989369691003283072807004745172255806913768699649456316152196314406759304074711579812047645706608774576883244655565763292122500607626532033362154816417136667173796997740192366541720220585176952017959632602300293580675211023669018478044881120033423425533894765901392405733986222002112131987326602554053569183438394580492814608956954283101177617230099196372694777213042610339309843196858656164573894192870305550521567488020860584319142897855084024669327819402038158317456843313383068473276600181834545861701249441191965952455943497605382082101665850781080159241652486219566521643954428870642694816710440124381654969882966082167481861436095352226416277964327065091482351301711131103590097652206289977524599073726404973850760331651937777055233012869151189773642482305152872181644994428804338140701441901945116353163145617198976531869266197830888291223331058206332257649825967837971533339371615011039617178327850160777597215448646202257759719845904345944267641433597543355450565020900465320200097353502931950170493995679694314306497099879042792434810449631229406725415921854622555682836156458247271787401689268300086572165611864774382976943958343597650616449864420187684066633497902272980991735320753211899728046135329836789047455595395207981892445037949372720247513712007888945684961028174888248202914218302647416321636793531057524716085326567248749724821946744254654683249355464120997439700951542348022717757355690274316361202918749740731688569117004383789506340013694645887185841235467211950977753781934672585710208024784438198071587273840600853082856931952504609280670504532765904632143606938478596705320694771565725009607893216474277937539579259983648403656821894457887180611460420130895921514056253999341898798592476760758226018448404057706209096793816696930341497986765465134911220275442169224960791377918511476265029037045210419199934972175627995558983709419251347746719025550400694165001691201735633477306691678784185880586240770775763470061450787579081115613686004926621357995474978946495625317589062858437326706972196491971145825224552052935518195432615899145338644381657874494022543721344584111587864481214819976590679876775503994650064322505604655670669720313470911365518832655348783055851676340671523491052822298411097383597058212695280584291709039357513810403181997753818709978689697260872611132467653665500746675014191618239621605730020542317941837764037692066742106805742023591432707706716670776996092979189156868098334694959416326137331864208874125655727539585556067914397989816846740602312678105496513210801189316659107148743303248614832422078570515266743489715546879516108981179083647085932136694440421772622888967235494100920381276454982670925904458283649166752186308036260315312347191587326963232778203021639049659437830562548071314135054891582340204267667855264103933397606419394392630343835690715555969133566644141382426312715639222207520260782398628283224438311100129288461145956679557913325479762220680307643918185598514113922756075673593533532540919117864821909229351543684618208527261755977251609271072400523055398228023200993698934504891036436643148112781089324099334350188075915302711557306264388950407302706737779561478769052521714270264068231689534414541171943614378428079144701581466416848355123747929903648829874454231649272288615252332464902476787963996525156987462591962794826585301585125210859795935974956272124345579066410796894818081230691135211076642451789701828815636879117912380794007047734757557341689349424677307592359412997336802174961959893964737767871710084977464848567251022531557579186649345269993739896486616541588615580396831798886858589806206829678150183538918266626107804863549297110907857075330888955977174668873046561170045221228385951412336819027030743702780286132922617903577456814872796295782670261559770955067638264911793791041521191022741866605527117796944668036520471334349931259438165392020632338516823092073059011856845298361425640087703092653352695420678919353492363175996045996716139208139118085940388591956305380332435981170005694590171684952482851032228207462485740240619916472028773917084165746586239704816851910884141335759421349165717722679086809028805929492470800348778271533122713637935946930541649284605436945646329667938473695699883696695567468724018687345723385377318226007843178938670104738514842815012400742187576402025734562469456926245102961681897484646286475144271118190078341613579178880840646311601105214722158100505627624799922746157703519743199816423752966709091832442545083305340552591601871559106221139531431666047865857644341145482353729182698811802930752899180529183150001013362536400287122557586445473800465918445961776235439223536954164413723945619215476193371359759147723613545582394562806405473883160836792819743237853035487522796768468677218259657879754252903693839194275311016833875173459766858475586237414044984031459064481397947312199089875749249128061084119274061234371877132977044261416861110845923341800710969225861168261236959158514930704061996029898027487771173209435612704861272025747848756176137170155846016035646910752019394930380424630241686960346494370698205971257607577078398824426836889698665019667283286875499420792328455657823828690789511223369341658327544092958114889793622683817007045010717273974491130689123952006622101733267326326066957399774060832576630895321639779398125544470580955740104570578829812940829978837893911868019389469835670191991897563804532994961153238553993399569123892735696581472822186097039107651464301907782294866015980204053060096168788703428041999440444263240804985119410260068443591198071093270521203905630280471822734896216569421126684666132653056893647196943132105310697785699644843597749682288417371560482146496770236877801749861948880625194830212899276181597016250371168436903929297602562709297787345002979786854151675339182496648685858716719156224449765610520093831672803163273915135141105315481019444900491807417273237811544510019480681905852676644610638785443608512133441156797092309245422358439915966842223685699579812425313614807620364906710711827745627211101684960629234992410672470984800317162472128053850897342507865714252669022397080056296888548349631563163446938725413551351750565865400351428728213839781717902350391937343882674044750463797309437115200777677699328207695975551968247912959323398952682033476067657423580624030517871966910516083918086439361322668395715120151373315986995862280264790726076861090331294841059909202192505027693529237191139230844513937786530012527686066383628207708020569874656673965482370308583359189103848427101798180791715302291038405157508892225971104937249873452886200287309623413642495979980870671485225962674925337559171446790284681460487075109091379471796454664473456578186650488696336504248578479952694942252195900742557952514856023052199258047294259914375303928611086127249001801872910040864586269221481036923483497701445985680668961415963099849283115524055242409804653721469271251417571316560992875722538323086495714600921842068638916764865316710455848080707851250833707029941379037049384054614818126075823803165204447978167767979521065108770463875483550193603797471316172862075062550857079957972928490220632884312474719970265133549320911594515120604660815491510239331212716191175298372755511346099879492762985078661758117249527096135805983543707214974757741593070543553659255881991409642178048058821342730114591003698821559923336610096146220811185873193819419530462858424779794180560684425717216242905714259282003938728796610647730979622031667978812932406133170808971959769343886532145466640013583829840377820408293544787945164161144347266172090199501803149618629793650564497611033079792458523415689851931524522763884786377961091581531244279861072988745034338154679682405730314241222480987318633996925649518862976622424778233422903896110999368211541932036255298388720497917765319225216188654646596324450339036806712331742879248515834438993919798287901016375710896401429867923384999554153986027950682978211664077632379685187679860496985326475828237127078369222028544381322974683905929487046646575442902015720824769124538964772503557608034583043619092510028724688178154784383203078539109069767034553604106895521945608372420900510361893667260523583303263317286683679927168576173248560572088770561761026963754828464968609693792307388919431105566374329534600329560824128468977580277717591010432003202211538167070826331776220594927729358394439560139791440476999737162956598261175094370764434713675395421873433734884366539795129480243147220115748313906176883584439773521917544130939520340019232182554097993462409333449867865108086819868386336355970656901267491320401469943432438300576224146862587901991916812788392222008948007009097501101862957122408064736952089740168216877719552835289516115076263979265503389345189318579216823247222757704793067295236562183800128147186314142993971765767285008616591544132355018336042397043709770966740717332432569518298675934644450554872627067630214640767455877118530077834882848737323312598756990382470685723358441500241154221111792865847689304532910610111890168682233020921548105744061144385515437406646195178992317548663657554571493487552953686475930971716038764272166103895953145714124680460662258720748965207520407489079152814043493953563286732329525228253323523732894492577807366397673273594864547583333707737313228552400330778816997711229856946729372490102099532660401336204041125961877479496380371541198053551200741644243082385541620624810795204547733183513758320692521212086195775972870105979638628948128659481527517998586679371408522327289408756437694326224580931673320391455197081555228576244162875923758547236663884424418908884120167217831027447171018619503586098243121591853780017820276884254718333058011672459549095451430746012346053537992716696873998329225046087501472832372161632364304238642240505686834358049707754096873579963627687391170457820632942074782889080779142678692611649100457016519096164615403267712995212278435938756353407490301319598571326839800580599758641076556866671463989007246028486719916354654969746710229629958083236383138718572520026947666284856833848118080234816698960266239219204211345822972759545339815879374638350875000131202523128139776999226758824439391633652066972018512710340167637947396504147367406376675712680735184762943903334794952934717443929515370298575417428398799821634793697232909119349891294782652733739808001079606335115977839342053571459482582976928247582587570877681495958056900193378284740865493959166331579138137081940548694309172885501087806725053673232765523814909116643322399073035891280715596103207223325529414704211576187007587731016395625213928450246213839439001163328944352170288457841411826164243786340175960841174265229497990735472350994497524407547733830677130613121461147535261696633218491089613691604266684007523874785378519315898360296582629298887828348575181970875798989475957049403738115667092079826805581008415975059186761603488073870983933908783818904132780175714110584889691594404018532289508462109966014071037904921442439286980311330637183776045762184879460612253658266437466699700330986079184591832934433218817159152345256957931314125166453302355957117295542879503821026591597451830975209361801419099697077972169810522547371599082364924159811255472595203811047983176038154590237497553067757852007521535939830389756630968540790817828786454833882341698720065172633207420788082117715216759400667247059756975667492740563360827662232175637693908971032785606973240657535176350111541530564657799987353562711503249669422243894995087484865955838831916799889207551564872633685978180435689364708367035921273174880649640248924957848249972176827894869034922800671915656528316366759213043604306349118632253373294673596526687034050151306734501847802415486805121930520255876730673092882333066909655955105303012429778259067852110489761209673564893822703246586565382727815536554595421198999387741073554440547833527360120546655724397002626294859187707128931144200505648736967317566981107794155782340946194721425595292606157564966690357946509435582252301839517348717227224399425706338509334496174159038461753396867252925790103657694857350226438062050285752972336734242333401585171374003422932915074353695314576323834391614233466052922464350556664914068955388933602722074636050362990101752762527096203929069265686563728414413911396150245698086186393523092223535988551014265823510367829317274465009797998015204555775989447295711937550560398273853118352383032559208607239835297819478217522405943433763243557152990955371079714285154175256768134857281406104303059022562853356024561214180003063390503753493782460681022813302918117311045209768846284021759823755759296693063303182224804418953800341444185815813843447846423095426497530463179046095265398260595776781673025082796359992600918821907722319306554109326467273106644198772499200790679771243503368823268448322635738975344856191430348633496030197540777706276683552323384083235566580813585165886000493600051966891269763921190513600306597993712562952756610968308448876020748993615076612969053244280185311105827866157725004024191069076286021825853804048923170742187611362974923936773986284236455031085126350058749370946980339107090250234264393319369734566061160601767370249690589454875375119065659385230052798973149068800829845901650943573982079617497583843383645908472226059271382698442863672641332198779329742307265304024061710576517818307276558800414562151352287516532773557199517253172260019504343443964615381510121610896046279783591081061240462358136379304088106106043058293545249725277638849734750974248859139216102431665421019079201988434438516235260552510994573611525231044552069267698792118805685952555960324643439337801991446829602246016609305168850477392438274458124485483703828100476229561682806934239427119789962497293216028692124363114110316237296514392857583451490433081186080259935960767816708913641723725408501171037200324941269796311764748245841460020606118727065343150385261280411195241999899387272189938892390585644874402548104308947832689548024165315282878372420570636135870982536070692730970130920887900081678237395815059466770576402502370707685123786235975572439177584980246841536603609824744887220372174137650914616480571405061742639037019746370986735265998905490553344920658999009356155041030653355968406349120515724173956752553044294940774723598533252690431685701211644963675991531998852885352231615347378841424431723607856442087122582778997893702315668358721375788555586070912383733690267324167057720152543432807781107329870712834058478339761201469087667506245783395894698487835097063543174547052829302290750030666180892834293742813486566769260961845457466983931794513300768439338876567989163192219134907759115767856448094795888076938699342761399881710675120363425535980245703066268071401535445461690878351211971116735027426570887660246350837691373030543959973319181792834762016899352782809071983905235665956795606046845198777312670015280584610197531349755690531065619386752560543913597491589017799443649497797439154255946663804827324005807019883812812947023885441223692710039471211662002177884262772534274596202123719105685103586670633700804062809614177888400250694460375850075140678679669083132361478525680071696833854439685369526544376499464485791129191064965625179236177701580688007268234136993001915395604563221887878683704770204184916658993100621149799030036623938554071342634990269518953465935142991197838522227148032432306492194519543217764371699684416910371406829225262854381999823336791708024294588759408515469680414511233233285754570345947436031391633560354738685207454583399823808449414243172088388126117125163530174503995304238370520629618987092228939158198921011554789426946267664529148367644309819385322964070579138453997983197122224694057692510479658447441603669308925818788766947248131967729212578928082683460257148100220369176759280096810166414419926740104915394720980629960522347469833150260573901485498863781392549900356364545894069767641303380554312216868194937888572458333690589695577882541951763304445610976587078401833587903068212331294130218517142396602244912435555565048182523918922110764568685883622513832916716887998532290797722977972786238147433184313586327618504154260161127391702018492810231349695568623703234432337222433835383955864261072374189377527132361571305773553319488693265318858010881137371893206804891332118610964347456958319548857882048911130011115635405170784313283718217282063814927037839370880284473212328232537838646423381079624822609858797109963328805297872319925408542085029561993240512761116686986152071414025473816140348164204187814685876115523335118422461108623722599627071692355001988211738173058913509083403474369983779116561220884843284420587956187022424762672413352929128665255617518373848404536652498770386884785315906140815712356043430242864312042653974928318619631740731289313160617157281099746757250099904336270548154195458423695577023500973359052743884529693286713410449503122100440984672164868657913788563342314908776180967623746139569349799744074254757213324413394913367717970198381460613959155358609458703992679821488070461152860961884066305648496094291634901400696950625727109487972516496329471485682121762216845341311430924266341053018102191117512980063676266811971465792801627443078052516010001278230602994237491205727142494868448302085616738784793528615086757054058661671523675696305057082746996975095369668641034836181978049259653147116337037565344158625762384618667842576471331021864294790511379853472859472679667063370255624010070759224195750643362783832469144045387106427272787388956973582098400050295107306974810983056584400139084722686071954356895923679050596093083997916943483157322864073425034415271471605128688982559768196842707111255120868684877067560781842517471467773726300145280277862102582471321228483028061705303893461674735656494180323002849090341820580581756939345759472735524084554058525340741792934793453980662937926208687304982713000799381396554422565749603387013179726101572092767823379011849059584339744492625852785122616587082166885137493424373575043980266053662774941366609545869095975680307087686404739858076992960457014732308521912440707318539483289529377352257643971893132048984292263611888948311691117549558037209342159197449277963339757306633918016737741266128039871602360654564949735234302975564165121374963140427565911203401386529295681122776304283085232462516438277293322587886934413537366704518381039859108170430247483939486173994046727772813933128266237327940103784675078864026215792742565195872939518136662471999249243601133438195762834004291173619401281250633158336561782319339585530828790401311860983473077640816861464100035999278773470921600771163274966475452820649922093912791420545971039939145308379965060232048718229977817625427209734830455932135403589365592270412845458581688062588997496733456291334990976139949773172544725783823038001695106736381607938489508892944566941727784676117598422544516128146279182059589720428130881600938982729490053194615410886046159922347717532199825736246053093394425993648901723236255961926333789372800268424186296960500353322863301800700920984303222933557622182542329178377126295860219459780475646624992093656306965723791363518450859947815303925919968375388550845841963747241558758053363660673332116782733777949377388828722762517478834946896303783431685819933072261960828859915361864395955116731721805773758334981764832613315250966109051505655939953276466971359292170816550935477052221313587384242553383504606278131427390123957229324982126874242637329519862297537670877791863851822999653747498600441088495187927926435885106552835736455363260052726715144891548236993511922992674915592980841756580878332857093950545236045426055342565339108143983288390808612490159111266509442969758602298274986780357059178601825609660236150840090162391866585128118456948321683336881142938684750166604408085731531029284266301072751248403214213593678284953528928304523253226892594911824807013791500353102425663812941771273583882853053695554746659212525822374063171544868612107628700129294652491126694107705830196494390396806276702934357886513142830771339803732558253445192504862102704133464158374149564204466532576216205272127648504879959778572797344449689021796696794291145523442736851665060437526926876928849752579990418202557386318951237983890382495199019602214140310646226984720103032441743333941237674040618241184411143303744210140611504420721994135762447065271895888938926168808701533732150040292195522597470475063510056758635073467428324947109322175422731947309798208193139788168830592565365978940884879598778838737022090209283051293836081237773918790055867972868615397278043748307127687180385392216095896789701961779865136148021544844329132556602569370683629485787249656236253888365414492275833201764697367468042971872563943515839212380470529818329172550931805698376543248660101718520106626631694344896987372943462958555979589730402827007164814630053163479265781851125362166515592987115205941254791625991419213640675835837052827687290634439120700101755717725470299883580739492665286299957012066186601853687714713915486959303431415695985334254965774746975863945510149065034111246731169665167938377380838272681310678285631057578734291950532658420292864959022147012779219004660794105056853205266570672420555158607936012632796170831295914389488460451781048505443039310003903231369493560568652671235370293497281784633365765993980511840983682872103080312309533652468639324002772242637314402701760982352147070594173358310747275609332304199947510986658938983218072831874148486225612717440655156227407522195564554865842182891229806951800392429477149115669290859469330532152623331909267690339200334047070559104870345945029341509528670479984219417411985459083175156230429383963523424234621566697797731667878570017775506950072935928656252435574657962195089197585722239546378929620419867450820278742413353876488867779564598322951488697036092238285272547826586721963709751659958646475817302677501142102701455066709783889619269180903985306263420267830101485416519384201611205503640749178480750338365521765973146232798005348946386131220796202647135797757511686044551386465159308336145085003665625491549164954816692172188977415826620663676524711980197171767062921699111824111893822174384795704309944520857636014893264385944866498366617047193875937834114139368302723110524466226703526908141420165965347475145079904478927220208593158781356653281591792262334459688466323496408101732353562899828261872481700859636588600934214762359504851302355652283536656397322725482845015347912158570491604695406756260210034618568108416175480677047763371333256787103896589082623659908221189367825635874203356540025423582934451090652350133847356782511639737196036809222944239582359484754544049252681638229497920376067931141913314583125634750443830753471629428000801089585002415112540497267026351629827707802789691061417079781817422229861586955061744268243204709712584083233985844086536947910787272156856708472256161339820682177309441337015245443304572663095092392654362480390815009610648956309555766193339029655889960569285230176857624708846224602369167497726388093170890720493682293417373556047911162862167453349459318041402610159632434033875140665624817074011264414928755565263238104164893293409034983128198268204849281521213268373546561852602086495260319437705849332382336944904528728669350446624086542331320680048673408409877287240910636293945528508810493712081989573549211631339070360625032710304572119073010712445461853601464248217844251592148087837985237339548094212313877936991290145613794924734581557648561571413730698696401555001243375105782500989703421254125377750574033547617051381212829516500809054114856999000951571683348323195826309609257532527003019598519057283114332123822721252985769904773804646867829979667891883871894944216612348205026918669689699826643501782990093689355807845749158007761104911785843438987111413817489897694675034210101152135326283203833581733077928739383352507525575715546158526879844757449135623840177569413077585201836114345141332602889030008783845287543354111540825669542277049632451526297942973300459697603785754704703254790968667168082164790738752096695416179847673549661206193960091935559141058446925235014500952665909550192356089034702063430052967926012083782672488047379010814563764027542370601874132334227081113538757901108725298332028165718255050736565590342317855262919134803834325407403249388449754757829012816039084804602239106139346057536548772021342974139968953286136373503195865303869258001385425859518723877203345479011034900691233025239876412123850348823383580813658296473520295675504424637959676159930386218294072583079975141840500265172915714509765010572863049809688080631440658768988815373610052573904513032703653088478343660882379972391094504729345525569058792417392979725797657786678782528339142202945078903206133572021649480965427141019206851060515699569308051962151553732147840055487789109185512179113219580207178022019983448778023700757605230552467512413436884700420758143576547934843421241637187824707581101089494304481241806163359361078239694874013056652340837272969594180775410033996062725379508351889484357933279818287563856241932685271441685346702296166087039216534271299568576609738030917604299245944199714876306242493518961282424428255745651394290114077877492967192412646177143633646251956626814242698610249941816681872373443083292442177328506449024210764250964258385646177071454279702074360175720483238289531795132000414068439757977534943350812180962199676839989407790300428932517926729009624557288130865843253889662656011008148019531668855857548985826456998985274852957171040204397146471968293432587290646383302749271066217106510379925475949983819680178446870007237817574090534596297183083613846922450075966286742455261518491987184811180818269000107797240326581465984031850468451155935191710697235207789353247410517294542268849049615032281743531551364065781686606399535850169841852299999533250437686206273955527840502374211780606758307292999636253762661877753335901364897410188406373892645034057764121280047556329915090315586697268555364424815246186446979062291924148091998536676395341452887295214122580737899844399051539523993182744612895506184249065615612207980653067054583971171941231509865893080668890386996667901639564464949550808881209547067272519798182678417881119067906424096427950338044607063698909939785162651301522450322544733636874902411486145199323733319705125776178375725604581247681765817127070055017536876211137059087550204061458642117532375089109574176852188153810192113571156961263588849852009761279239246628068308541090796880261085527524973765927078763573399656887600026289291698004666787875751377828620013918402117714473511860586605585178281943600338365195518224027111869229230236105927161340252801194200410991015952719944891875239023857520486751319507075858345726630455911854316207379437596003060004845710239308862054403782950277241586565990079944386264149012955966527053814317923075208759085156692590666795835325044741313809247230748734660929404431506515360711111209150056778689998467334848291363886503858505229176779907219209666350626782897942750282646160314406507115489730848054832259867590268379131215199019422902412321121235657074951721053015327438481530525514275414039037160335041345216493938047976176044714812628991177481576838267949393903318600016122619320950787511784744592155474268325020269605667222420086180340975690701300752809071714977278040691681785345131245827971024181567357617711265375447638829132847973030069267718013677493178592687452073775610239771511854334010046563795359450662691178158107496672985791852082284125498070535397810705976543827067207278883987515823089391841839767189393489334450074398568887879240635876886328768533065806445222032311290921034935108858494134680318208587356340594949907416799262051576311163724538106691765217999897838417693002425104985240582531988639564892306940491312737252087396939776583705716988909768453771233285994476134249665253100107611364466083633548906843518476207845861550572637174430754843240465960893505646246548883018351394960977580063221576836252428496581093629729501392153320036895118512007478888077037443839383990797355787020266591764457597698230755045740250780649418058577844093158806546718989354617571090265149581002588320307661253889570155738057354514597376156960631000143777104108676605483331499652459541480410295524654495391770560441826515239497560105753037162892040065476536083809111705362156040630354720563762767148194501966515660134290745807695020567144195072154593485704565282147917943456586240191195797027895864391070744644552175793596698432173336889763305300958627362091615326744180482069082543489976266020340637357813972864740691873986999779931144306536562779854155341736602448550587156242617293275653609016611542816245074858762468358551833115198468244014948050982204690888904209349177525328715990996077341545745572369168195583134877202934980665589830738714959133102249416179534738492425307541252164313373850051421454377371525221176300552557552588118758199059314349287658329990376113541256705693509281459018782200208918990507177386465132491115838262191712073364583308300837972928217764557122087077813851402351011561516464871764793656033054716254156491734982868410415726669526087382538210452844067841526375662255917761670716247852295401139513932710052792267011817625139892575237092488777965605709523665118516381841438744114181962332134740408211811776270883897247566938913218451915044273097767755578086557467114493846241607484245881810759714587039487758988257091704276000498355275958622793854163118168689916634759436896698015859167541476474806463254783683254128821814737969706935603913445418386322208303150447647938135507527208208587349009655124144168927803920635024012787047100941063320627854553611859836620190455971148759246390167510202482637701393636667342134527098655130143146679382858821154708481454711805454447377614742103735115864795936846581629159910183980416003285317601134792708188898493343894850543883718604345454335001168280437454621011650643844991690651048064407460827833384857113144976928622627297272692632063130349035940926636596637576281150633706073831426259185978297168401163634778120862234542740417221979815925427871815888106847178290287048367519409999408659453268104572422834835778069666221699728920631969008276424379465923195135218020081839082821139106876130876155864113566352031285414134145078908730046362148247484753040236015694134500010722496723755356189104020136591389712027975514706355719025283861825045144017741623632944882086071638375978568689733316824944023499264537009446356148980767780725117090729785849019878287859325173110468955166273737711909493788157832236941766931266381333349796678942707063509685753634081718859644011780891954766855952428919727596573865456902250764372985227579027820761708809187429509685356739482610822841464410214663304690785699871719567034858185836250968239630804209846414474587309043818757983837776583945613548769114356622556925020082761797309346891531715395099064611318882668647476414067696870794624846310872708703368833526960819111571555633928635156397591795537239249867427646626023549500102149817977095131371385396029779842363532684181509034111208999158538670535429602287756776077968275826647899323179196609061484286774269136725734525525977856740117558115812395624015409378671199980670996326417787799754199121375004575658140476104872907393463168855845283780168729045559319627585143084060507063971817678149997462880364641742641343174249717791249836269518250089071824511443598075834742333135955952228497497276829590628512123724997119050198685100711333945240814640067590544156512149645893065903371958062457499108913613363887035471501649053723914749411134642115995714182031492283398853132574342314583588121048780258144230158070561925060425144063271448859842343052527463608627076643183446900462218725175903091206990892300949618833394562565922773283908693891928770158507042201280091134207972254630573238833818286491400006758098378530245510995937618064444051637804298127235646445801824589378983788705773529869355702559202065365740830526979922793929138137454755724377604139789096997915261174943555499770767220835073406557440590096239121106815463449317963589359535610562578870791681878541162250827235632256339283640644325601380365614193670242843582845016012732589078065867731450960007460617357283683253478164458046587600187661087348062570889525794092951567181959983943292510337835042423492293801310150188812141887086217781400465298349291626315669407120930988083133399350155160806292340272005948451798706143929776091139645886172091411028839678906677202795344008216898081426188050571459552791242762899535875662188685284240593137691740351561646982770278233531023018225447841179134532538827826744457642827327920501249899400787874680123259776776918932657766634441358908636650430522123033661507451595288711631524932580708861403167423994361449064537541462866531550497799031786945701176175986052988250030493555055799993437984154679828912879574892127230941667021265931158748217119582566466264599710266886742353677352386029991634709329522760492397256816886549852032584023784460522837461930660635824589965259307219399955068850814360109733361226477213263043124929713721343433643964645755046096517687666781067460302166288653953855019291015758125982334784403327336672408977331397112195450276786960154779814231358574746578918719129789605325740573504707585512624495756966869638215736259613961137562225094357408931729663975622673153498154398368307687818679288295179353360528246258640912072626261103141432364941565496710393155376445252377484217150890785585481817045666472732191865437403612243350750578245708460149382951511804202453249570655080152451056607424399826168121490475801808068594393069242381790375712103711464949117030694923468484946031837577241251860581873801444808452967064106746947326260112672219888763842108206497281302560615245646649392220232834536359729733988814191366235260091358875941664600533620712317378940523160521381985705456426101731203280759077906142699613947010580599057471087059454186332511827454149210343660593957535687998488895914187598278557735115359642451016593733263128965730900514302888836826505126252925828794419499150903188039514765920116813986713577855829810578657689116043758580296598590885980951385849188777246713203219396122048341244553095952788863188991358599394627822956128372554930934354016688491517950546890230472883445180755783467971969815994510728440241051806814278192363728323719010960778230949392084944372368251758122473748335633794542680924237453925119417646958778656170409563021487879716872938893696818715949670535416159908987308047750822188642871583688505570691060174250227617762486129550978352148736529256273783415878352910112143567580760618224595371204100722483336241193619331464621361462614691403938343646675357847267422751016821221299078392393643725300721239425010157096543379667625566449709693709334151075162547021842839046293560412304269656044854087394274994520549071296137733859542505049467194172838658955342014615350418373047090597309357013768040350558077161633372221244056553567909989465679057324730492505990253781649741963531499180414289452258876561686547651896124538224401579270080491613571748359905738824546409266806667115704849247874017343166426372803304617267517208515902207554328918980468388243054510832599577191781842202030078543582847467100994129684858789930228854199381368079888617084105580169026049722362392363103834077481117739055259325776083919927259652754850291954623053038252047196171464123575600936559467633801950743500208108862767579090547135088896859613029480843363446782497708174039110148005620677635162248096974256245179227721008564365912527482105953863234915696598733902576972896027076660689645941501112579841528449505527849528993980314803361694179096330184965319369624851633159177187072386691726583940645541653276826122921325498794656361727990330804043710331163782310601841032444338808599188867695035525157107125154262042174828411605799555565845138743259540609305015918521308400091274960858216733637161135022488580186881631770518454733513712379427556331737200345903178084699799918151708496950015042079994098096632369696603118998538849983309501786408881054452447827840986193337495695662723395710412502030888712033636601706192493366927597206225089209420994166903290217400628289680930987876650305794990610787148751189047083356228753392255115238425977303189017220657576891996165705193544013415506152682956279890464452906774025723778837191103085989017985892168393416534553825531195117356615047081978544328733823731439186617709088965622979923274050917009404765779426629235718631813004955828543765174008907066429467278080477907666101879511237502861270264035799639666269092102403094245711980414202247411324845049262421537999210980175152608175087924081993787087791490732337811288432544457747676417717900484525335168644315071659063667699669369693792244449911701276092889958417790755203828795016189558602800417884643185000073035376966173258195119903996341770947725783102394884390611511247144589599825281522116012216856754656707700233895902770175900599956312803202350511072556733956145021095790420736094984014791036244706174142704627276198841814935096563216125634672438149695419250715764357274787818651746420154058376994215200192374467738249541120052495596436379291420861000826944596688591566733953522484722703493728098338619383397378592472069635314375501986755818142064166419052951171012030191503055520876110355494129931647741917986547104686698110379095518202696656075353321897652206449730277196391282038634406972689998074176569188595498547567967006160741298660422027188371348619653977054780311791017045698414393189628100804877477335686376257578011850983032704486303818922787812988051129587988106347622523176674391444379560784410802313575053420957518884385855352695378284851593681276011141346572406345966131336317783551844791674976850425886182640452618279384578062759833286653367230416308229567902529449464739209951455440452061429498347153924206907971424199905474198890100248701738842968584354940953856051643335137499000672975037678188636294043491201558975216118766066521232755788118214037206803085804089298677974185887037151145214909530800872445495736001032198383607836062192138453107391466269958489883245932724641908259292550621924077145887142301969477734609608406521581070469256666092825975880371758234960194474366765857215286474525237969669530743281446086953308355282892794069920868166985304576951984354035939707817483879164893812424952323624317588418487571679728090766600044649155708780413525217932619444863065643314131756990753994297081897384156600061370122697683426991586732087013378794361351535363800442994132711152260351789489739414807880563127819213297421067080646209638995155363398572658680362308750073549389056187624172840444994559311280261336301706071795758808490449976048585322959299414328177297660112012699888836797078494953043282837992567727332263334977475299586795741766374096275811174674011947507949931136821979401383838265560141669374606010927505228533765727444240622042467424201455417827935980990083274707884213054587209544762579962883899103345134158829550076634579171353846480501853053238571169274735950571124730046668359703647804431924270013277632976942712898241231893820442858536155096159345609179311772203768186116369854448563105891989347329409059288030245857673943247844001847334188909398773900332501634375265147715612423352283932450809523740328860763069674844248982799147506958921185223936268709046194624599479007098959238880416184725822420547889541044073592300249604399875716290791664168857711608879597020262272780862846969687958917989110119660158783402669842655514817130649829784606801633222203069138274382532004826644415425225101286001835191737667962687419491051460809185792644730498551589154552107064280387569606827578873401295704099356564653734434794384595535026398390304705170041870922081302998966110202952313769185344303052094140570276028981896275138927438792918927410229624734817631335916928768622143219170006023317507357498272603917491899345311892435581517845569187590559268252939199902743294566694005699941644879827223886738253574303270857794081087112209065440655196155766166207010376121036314367853589266006243524939416313789844813810645986545222161965168864278273767435805353138231961937846316410031223509631679201669781020526076944329372970642046136021240791313784667520196297955256571951981296014149163956129059461100616134209952771567453875202543250876169277447385592232283251386976939583936133508026845775190522028810955215406530083856471086617151784048270713203566820595053666855650392336873771331105270553218591998881131599363864501947065640561432970802953865579418659205333241744613853188143606328190234053061177819581427239576560134023198855382800913342098732322803686097850421081133509369246242952678818883261682334449819751378413476081094628719890662012857096679311376448872470440837533456165428650483108842971813052085584011765278036807420155108674614335683702951900614908106907420940989945335392874517633411519339539936266820703393546512191308435960953317229346825319825536165848011566074301975208137964976024467744395290538017124787731564406062108170404031267545208632505158817566112726934561842777162565848588359398087487338349255352183274171547776371652010380201300459969841221130921204466602083173802918999126861509166637073148220480659909334568074212730010986721177358365823562255826616775019556365021150903407936326751023871336714706007753776664944642112289533735303584460696891159255578082722834119829676106161641163722278450090744352345679950871745839958381187708114840372398669577483267282037486130542134281819847370220225545697735171217297165971675096261278159683509264291046710695697464019479053460562309214092515477950072934833342668865372981698826451014681831161596388369156545069999967265997136353402818984412628011928393409977651056470255672116514487794792889503500757714748694334888358888485274059649852910928312675697035826971495058059184252866101682484363125357178612546247644070761962619635997638131006492257386241518668243335886191019756724045456576555458796336285074835967569155337474558238711724987625323988224496320630760705219907766290328398799743160167526717771564869051335483471983036459821054987808513931892166051458377582253668315590431012579118521943779228981868109889456203419715209545373931519653403724646414783286927473323563396299116124780990022079124551204783074021288215960003495946024329073195177127947202122557702636250572847451448666779043295450269878419390004447491056148042090155967102591454093083882593694040618302738686508126599219835792859605305326476125444584777760533043487546581169028101283760678341906612045878083530705706605829211805233119075074460689123144343838688878380088111333587661675878371084613709940154487534813546768020631114557231609382169774932020534648074643796723388728409235519965196948574582123049824444451683510870321367466932650566777056933176712039351549914550024792424708348599223220051593273322374832415510098051914365075977884424287285691653171499770976689494228227813189446090784696513392359348077541440541499860490461745843449033599130336381627731293798957630754929088628778284474060739857476332883637641140166370930216491675278208398047750974584749829892951113402268260157266475936475567439297944049929577170538187046221611313419474784175702148578369362158133091550656486476443998045712430516849541333415775523007421236694471644263268849966806655470022239071319553913539890479110718952032157085682492629664629708767876702999222969433791902607130052411921249098753363881423150683449121771226837459940202618105039138600141463202187057733784573599657617809995694907043418376931585146837723387277506631238369571759578965783772272778700051883995305225584761027221135451210741458147282865616636606680093431469054153562806449103890141215766348128774348134581002321904104194953963510705610279852378168628635891666796971575808141163930231304718610424937444794043861648086581952878429322036585069947522329997221019780524745942478093606126132578350978188063732572657780065854429185685725754332500043043224934969293409380499070519663878201083807556779571102040502700159442111658596418771908118669859530794988176049588672135503159367988501429022017457028891136049042474796257762817998220198028391774905625589967312042664483605992696323558619778380268842705615547941873838360750771212255413570863142250282126167071775149915401814823446086729025006230640550303658686677747550204613723198059255829142168217152206281899822514500288997258220689932808759497410494882614745241587044705352719246146504242678110114309316619341199743400491538574650318186072715113877624724606604855941108849565859621403366662453612281709707060889681119583453148389619222119018832058009754385659675798951021082529087869519978229514687922767853587692815207305140378791691578354232852688200929438512148692682697095241107224883125504396985398365230540164476607358995407236912001614163784797943329830775091257462906026199559415038185597387337489156993148528007033098369019805418865566322379726882050743892253335238913397461130827008982586584844266439392533814184295899576987613840462841955201582680936509607258035001946980318217895730301504873907619461738782223868692511051322555308698615908254141785959506349241214428825486257012094340470470992572717447558066693514326814323455894971395127744184817781911780179090253906165159851315665129668309473763195071008506331056172201962459528197827634262742375118661977844287538927899254902186591745109859256955975782748959382538236622800710989878196551453229523271633388147076495502149445005088313284088984241130485734949386856279390497853580890389616068980419094049618996259314870460071848185587486266372321421900661741702679342621521778823794083207398797996339446259713822151715399732215183678888530876298794257297683100316530486971053634501263324800270187215701515147428945144347134885069726216788284113959661265370578486372578422474580071983660905063525383902627319029386673954847073384498376917811089839895762136055533428293242490905398539237121765090140623217779407933545980832708172564917802379636789081369785646084632976485877247558724118808085870400832204824356995104074320586913517377880398775597389387811681166822760612322294511455234863667979798227665533075709536667614294409489991970030561718263488383334609792356177572014337314008659823419035173433609388609667548798866498539566436654026703193447831575471642021484202222658549179277867376649811671735825993059325436182462126144236567964904835817491201933156740465694470158603027518205590391299983145452877970284008747585656214449943207968554386945446458964471272616631662633069265320187014132717178374010155670932702478866384226475334168517377968302370010711912139050612938232920368173692806426475059670969958065607211412037912697753271821026029062611552154358971989798338454553641353057007882141368794256453825341944544878474857296727880789776973149084093818335525434394181322653198378462559637144734453310511783906393015248589555377010259446281614196952899233094398354119173013838020893468501746095898008636322718309939904124812357461765840388608171342256644574943920070875685874350318718895463307879801011360172593539536920432379067970835893524321387800411448669741996288016310232974146407571968906508434610364670872840677187521168438572057205665374730528484934345688119425960921233617345092546182320567851226999743991245398884920987183557641083372892183995501391265666881431102193461963360487389941993746002526526586135029344835590904602173109393124662957497823202607152992345988456902249207330261002105906346535070204177763037110647509213175045975865112805770737008701042525188954258659188630443957549846833869098265660888119005015143949366821302788168506367693363551385522040473140092395661719616342003906837021377865711101209200099788068077710174564675644296476838828363166826869710514958918714936530371346933814691901524823280772446469281318906425307858292969723975322597619677488733083822805628493275672435547864770084575266540125774878846261635785512174489714958672999787114524739481047637551618772043250661899787279196617510325578180655367623421735092749352874844330620520382510560643181824327027695506693186890610602840246266351065441140962797746950094226477011811829778989862016088062342079490436588037469795767343607694832794367153791497641689038376300012962150244302803965882243074091896529318610148868883060457786949710604915310471304940658880598458405459789298708522035755297201457741692370174291354805326284924006994840037334753010732450642122002425880611955236277249693402691214897696427929895925783772691856128335366786063890580357516979752497146296174978857448697538965115048129282262822111460351735514019659828673084537201604337079876615407930657754728219626837750225582561382421460870499693274096114513058290295218267154601175048947977179130158290782094804993691258522572763228092988647815535212493063814164615310370200924723220976162716317789579371899186992095107607690020801907975102214740699024850565961883286619712260015934301921116711986110852821579034401608074760394302844536646865224470797742088023327231247068826831670464998962331595853386245124765871738733593262122624000423567266284043875444103385026922038814790424743401989203630147388262787804241394257695984607836233586320832112857362101490539332024408899799596655763317028842467098310221912207805061961659196190023254241798459068838914269490718772448175788105189959161958231444734810863604526654868089368701424718203229167046243377833674784249090982314506291553631437331439704082801188798418731665084634626693048775415565787767667937953710183156220912096821378065508664998941949952335712916473513866910987698245706820379183356327200216660604216601804004775991064971899490355355204270418939571292509665753810288169466241672645358910160456814031503490184604046063346083675850598839940840643299042273703166648544599866525737752299476520666820882236921157762388230049831543822111471902923217216541168255277830076791270757778473370090128955709931277507310820886532580854161978460232105857728054442095545261142578827380282378663702180989638141820364759068630507925494986172012214713524840363627859076360631026166902757308906718181043633721253030994030029453684328543395084702141654671834607427248464313955076317414247490642893897624387079937215271527454502655574713162664012177997073266256434671404194152514883398935516884166285764219452865331350101037932834605267612027170208394058869513233186982954863737082705813323326508055062363912792904132360866987775933037684991393111985569193192236621035823734715373126568188443031070208190339450642664003678541780113828470837579926070736275818150600241580766563281393454701441660387422312626542555102072945292983268137672337178428719312012012237876588824469730329616594260675894169906341377587400832486094345913677918328546188112477051944143287418638296688972927197038766478102476358354141274568335269185148736079694739882827138086678872513957353722847256062129731355411069032925837505979483890977056525871140424497083848909415097599338143567296033285728936861266731155378997907097626594193012500287411283369607307495912073915513958713990733870883878042978526845096005320884916341011095628380204176376256904032796754581417230854632431907339746002194000355426058574429289014628429317521502648490025570552191039911352624003747105140241999095020284983815326325503479197501106529981093647893942690806960428131931793800907016516677049553272742750477655655040862300927733110894953509431351822226632165851937329912895686490602927200163792229928086979571398471578569034521096738224026580310986789246732222153265933308365634604464111883633816600882170811943938527019947776636296095926441038748546861389173994467653918746541280175812895787245640240523105250855287386944336354864462186414009225628779207215440650636111867787844551844886062842016880163250971420847860313429620008409289926067784033791800430316979587934234599294093226172453671048501091845556010507779908685239839140998592047814335013817027247379682528049684049775251825074562007580470840515875540590330813408551260594390820289337800420167376399456042554151605643117924378596557223874264025601932327908911476173094743356345369677080640916555544689143399683009623285745090345058290780719504685461675924659780968261814121408034324775461703169934003522222257481839868735616862650940817250491332664811929297120467722617280466163560431579157490754268765058816955071300798694659167922886288762712398978037131770996358906383671077246679319851691153420526476915930073927095487566194754028565629700646316530214831979686516825460164817476703992231695551635454713108483758517727784646630675428018497191316564063719764262896437370142570540274058215949499774431836374221333056951809884166882287242788687237932492466483096439098329811338647895601596452939090545758271573130248263044555573685167269786204549273021501323011681996757821668929997208193177506531233823162748658123135137551071437601134851400406999032347045938834146044208579920755117023373343243300234900863604628664286541909857098931733239067429770269426412610867865122062938009136219124911221291608123437893113411399904022481922613366850648872443385417544335676551240431410893762579938026831823493240499652033644291320353269788793057725018791312575056941028652958697153927549231677951359603872750695966653253835739791044183077456301246439557383987245733472590177536834023523420113482678023188232371677919946146226492832055987632728509763212153831789478591338414689560544956567706558831732048908127718069951943918684253784985105730112770451840265606610144151000947411890421301855980521210000974352867010559507814807659821233521881860564672856751364056189109810228213723709983284945192566129921910682991987371719152663735096705277250304296792595910065158623160184411069873329981928490710383989115703877253646886885590497408544192180010237264811567886395012185714056814895630129533138476508718738231600898038313659733637778132874451696179350521412966672860747161009620408456045852330866154080117931977364404384751427130404792551915145591498288572770872217040599663774222403049308949504521253942962004252371500342996751360301202607810336886440642795117193358446822694900689067654614652963801850671871212697648341840888580000905291375741347947429283075136310225480150019842827240011617962637835281501482147561680597844360963609968908130920997120261565577307900430987864592340195415162339406683280591830057555750663257180669449923294293478445307951592481001231427273616568845475571812326864654255454099980336630972841033384901905123631139256492740514428168961028591042394199090459375897992604172974040541155055278607057838099302611270311628141460361297991359944924599719445126754350766054079130965819398041979487825018325578922167485604419039996745298350865196044091848106636207300371335131754699766448240852630968545738592891409274763058887799011701055307060644178673863860531923307784172061901704874951334481322763005444042948291609852544357605600051109577435684592914772232457285985212952110447007044414091019805963860962036664960834178515463005491066396542152360867704635133589537637724184683121206650027002643791752068406433307628468904035085679277164884055319066252849172338828715332515916735637962994991608724818896905769939729372215206311019632144261112541669367417425414566051939033391829294724233595832577526838858107015187025284923122820101397699265936565872580308489665075518057021683287870636918114402921226187619702001389877446756516187365907563133555283434660775582669828965411717406397811727046725362012049003306542248127456280844512411171945034428079568703354291876954252317195657989951782142211661993568047775043723277801716902712323809528346538854212153818964623059014823120317134261708719012472915097827920444476556184675794684814513560063213434704296307532065551904656121949717377583927214667584837477648001205095841164163272979407626946651856495891550226981371895473075690280835592542227129794630120747840517060641196686796983545761699407266111098388036013957663050528170596196582342314681538425394357349001594399514679547428501102762115130872783322932808519140907825299648453534711430617448943817141064226924289113192587830314588639113480565820488547730218674062779306541811767947589263036754228179735559162061443493365352251836750437883203671546393487066988798959361503569144244714200702068216798461975068188896492544256968396024286505502740925998869442351104573459047242686030416453395075885277759121006456626930264999519986964810083079753926563146002791356041017433071407579375042116141073264610803364169435324937945490272233543435610563470245350983734613044005465700340513411150473749627486652849819789122364135371562158262608808092972402880472640951886655313610085030267467653431972396670180790203872668639016075697506177119189961893939730887363587451860442797489552836800107011725384388972540118114711431563079326506996546796221565264550049308296541580363227176550391206246477574928536058037805981554014945934603719270429146816112224692229440913306517690026788835667318648907409854927822526770598122698621750109963561699674490858929698022169932133641106228484843792728349401394244392036904139722672913543501635544771959553003926638232288153384869648626015601188866782759675919220798217248257366691291854410207723787145656947707505798495823711109989131215374115473645826179006603211173697417907679921840508591413655819288736762614310044278758392852633581506554114338364063991037935735880603130812570687264913668052057908450304745434403998822243303221023431774565434714611580951267587817299447538719871437394106220269563506567194719404977320974034907827371297209558644556106991712350930865881294950094251290629532503899873911434521109788262221849688717483418286017672074867980753286128107828011329405904215719470888581213735280873556559746353249755257053298549176019751007732829706183424965746282469182129637303375809834816719161573915974628356337542332915166624183790816252894273317091443437010327961114190590406055917210939746156311439121073444142942246064882212141173610793972475199295758999390466300645657592334075579907816667109412683604686448926769963518816535717240750214983751216511387841758977563048105826418130636054839356722363211997678838486694251750156739696386298212545124631345551360724873328551711730314706868579852990410444523663556721083162050462124729404597334133344617617112528327939710452378773413843071311805384218636209905485304641197819138162081642521560043787265953340143811766211859826538027690553941054246486694950661253437872989004038425023933652208764950467572013965497977000217431819507302729675794916934872085110845998811623871258457251627383072330031466213149473136981394072704777403477010664161522828346973916046373772328419321622283884896838436400781852329596655783352763325178322457633313230006956361139002811841221696492602429592721966492822712304208935955844394324999330261803736110698293280798534406621183601157138637819164342895432806100976962109302736418512020198238035272937278848935318710347259021613237843990771988470653146585475239282288069148844828232903855235423142951581939069936451813953283641317477424234935519797276324692743986689326328099085373845909879828537234417185438168187895385030420945148550902601717883010518946635606828331896821375956984411129486361659021690855302683007733399953810600129467262675330615001412099647649724279232316981941988150280662906028247062714162892425685472054529638613091954162219678310943834906493227398162312413800641409264226310501754724560803338588181264934391821187046678520075655794632671328598234461442520317148027499412916965314422048031531608405287180699023639205769457860610425319045953945110363795247813443668765464349408158607813132390372187331932990764752702396956978844452139328688725849335861711279802490808066935426820902021178209359394223060432059941604365106525104220938607436123489003872256743960508998371889390896061923803052769522475454124416811666925621846328299433581614846725830198549812535208690597356250290256592672811942711718992424781099459361679978921303942318285722629828009824599931757541774094568513319361739907727072568870405283077063822499297113054084245464689898718037730521791241298287806780323286128708077459460592511352495975445273023841947571664070215274406725805352014307973123103030821315259593783584941912414051319323638294198880459084575707818426428428639518454559903778735113487761604991358335930672448919482647491546396943774093353739412969143431701414273954201344439726320952743125272803972681145137220561510421506033858922990932608294712438955411002146811088271545994279500211023817446871261538834430748390150255440146982933441511750657966621305959501326723753059079699885627253428159419722477524258525403018059609129827225844523477171460989337470197884572455465957378399325703343538449978703125791645048249698014472039320425067247016732452392131713091109350234812228322948488130708148014700456902370217737849068639643863880425722489532885033348176007064731383667294195459444662907898752465263962980935604379790363767500593822957932119664030741580594163466347738953804992298134772639962622342435823823740433452597770350900875648891466505353717513167112219695566781468817240315041523717897270766226107617497120309586263553908493411742449244980690325512234586724596795316248800479189019232653931653458106553984102966278619758783640643921157601701297459114289824016005485363743299589530482164789792513405097586313779814733219363691719607703604940632477797933738603734566726199407620422967638297117803584337849199981238193688509540169346177683395339649509218508165852137624429664594827612382645240646819414827022432655381714270296342049599259683579453180780009213174923084816049655858201132778389690608146122352355255458043995561394737968171305156236315876095444792489783335568056522363619202923223179628521086092854333111296505471576650180654506392865132099064464305709335268488226111182513469940337325279298170288565318401700904585556189376809645955130406306441672076509096044439302204280872498260368635479030724952418317632114343659121879174665481970320095319067487255736027467552218239796987120710734606637301045177235369002848900815247733348129387659329429755500689586157617033516911633670722737004935098530412553687875717228791439472689282468455516977100111285756749680532379585897100753208759613306228293399601891887832381360529834655811413434009498807857740209645884571341585411740334439305906275376411427187747135677174180060021360234180330193655055882311426508190440806997393452645108935332048329556323461635046047855839719872566489560146224695999521832623102866431613688659953552577994789873610565342615445814861114063795595498408349760981939088018071943016278791122085072797064428504101225159942222074766189384379699012115438098686660187102632889352450033617330894553601387380138052862915478539140639671429311919528392393307598416475152017998878952599285939479535929768003292860762427893192509685675377751927153971502009311269579480671105721061722812416699739220941397596175328027113930471283796059340439303133412353318953316232955055119365966965810163939003210655792367970887652556090908314730752489074361760767606625726986817838371226753693049130617947036638291572974003672937321405789309370129564276632924321094482273673283211848125415565422101055223156499747273301468313140875484331969780390833030632976081061924137965719869446801728012186760677604366920301431870323058567362770542216356112656536765682442405345608461624438264009445044556468185483648601365806459242800202140047946776460275658828816940479855270634976447796214119399974270423098694571510597022981242645402003166626904532997297360989315105066000838924961322532753425833831241900357030954461249667206736318529922592643206605655037270673534273450597324571669779494036212648958233928234361959527711100240894293139751849392024369315042484632470253017572615620649381682973420825771805442679857193080127476751292789787817719972596724260647570473938702139934394840563110451237610021265849809921630318269678589321123983653043406083126054166758438115301296130907072524210701108516063295693243356425749750346191029981537993265523420506781665971572649491747958439968602834428721331877940262876787296933686542694004700876148955288785187270874182989016379062555556983850351164410680903391288285991125426085380459988511431315649187902028577463881091945570660790233920996775474890763668876044271915445655189418082995365091012430459988965693977005716370431772199414492698558534698513304659220230887848054203588030092196014898709998973433354373676968752699993325536657163441703689285021220926243230096720586125569783012981807457887627901900225323132063529891916796043176107216317762732675016962592401030324919952654561629401375788033635268003058554989907043154005342158770837259028226827642737261132681583666561773750361434893594152927296986498145469334027658382940282870911797951536879892274605465259805926888080364024062043611063814247773926648513199069618565550548846300214932696195140216558985129033030211242837986102803134721810326748683380574610345429109154093972553532810330907960497342785502467053101273220325485378923370390411405162078298418658029914497435715757282505608086714148533582238912288477515533596548661750271420267032287141410848530569076696355563122000601800558830693804407364777632513463699874062566938925533748911216174430954305236459715470062846936802850679868125478068596006214665738693180091172999641533729555211748065713496553821356662426256108609580592990346420731628836304166171264474034621189142384282732426586242774472615150695251894221455285139495724250211488486736186456073051261663835008051518776788999467959139178835703249371805306031254194857266801266066458030388557639242910351370148502123434299507885553890741209497372284546743009604543889572846104250241943328025410409875271491161654485766011657415275583031504739668463318427065590621484059489834573532493481909395399087901032572653801057215142224916261481924229772782490854759013650454777315705260140261364737164536982927667076628581950337024003810879404135186306844458947956678505206295363389518014579637654587841113892327760713231365575961025513996608024180913547874783283027986265562734363039668293677588297903154371978150808326087475531711896775326116107574064675590360798398212983255679867849633808213212793834187044313719981566774847499472673670497622200801970028038527446826020561628338003645423825339862496453798424110317380975223682558049010778494946360728837623651858379526834147572386040562759647503395420093513908964137549139408832773022450739961050561849143904116650390778165172262505529305845161780076272684625829850540687570073419287183446655983231454318579958047499749014388101766900687212098799749771061319041384319179054940200388628228209297026301635917193202985554531707067179122148440756830675036584791477747492054098805481946833546995062625395786465167504072135777569443018202524340911043778673067333710381281362010335462004631954772496450796582898945950043045942240634756155509654555702246481022471995729459080758921857689472189389750014464793592580853123997054443207229874229481676419277878080953483300676069661195976483028988652301768969964363460935080143492314252095361925622369921240610177993490449960710284217217334768367301589567731064680280050651451887423418786514244704461354089004562399107503744140970573809949360788725536247101335529382794583927747383424271460307761770310203970651593380236637678599310939256141510947567008526525813382401188277589693474226950720008486976515935108181994881313787918786980138125500055615867108405291405354680948533470277755004948927679721113029458069390902849948160612662141852743289875480740719716491961272721219881559453346322257596633083421310180204583816652920332515125130555460442871237791170487024635177647737711994399765945054945974426616895084909697380954646368629964256402432363728752568366735075640789516408304360696313655605835958691696235654544546373331006935568854169767663014063506484725663167003400845668584185491432175211065168272826349081042349768430302198182914334642301644304170375098704016139177855018038759426989160193218079566519776062271224109175300871436483158029477977040356247854961957112645695639768125948529713453774464118308247721589508770404781763139409650702452078360381954861686550459716470347458509984446617548846086474594437999453856478953915007774006009796613766375269615838150568551072851943866394063654175038051744750910218226379554552396706323271385611105437759287225813186918393493926795557505990027040783561283965896297731382448163598736465808280565591231767337450534208622094623413939087348088340161907933324872074300857296754237344067382272818824926948887913211704107568234794336579554438498825187498799347818666885768297571177820152033213230286959903018510863259887406934522355116827180187111422398864509358806904812543431184025596060905307942464185971330207257975607488984008228989441222782153959756559890578299459992987822119424886079844216497146351640282783133141618113973862525335653362390708926163332608792495918568603390827819093644790938829072985733342821749886969715207316180321618157204525627616048539629862675410239343170994739034970216869452612100474643971126899240487498634382486344483559496005254667425013949561841263702098281830360356295563637316225099766953998699695301330547581969443476278725751058002524607567977671228806977768171436072768883635533290273338924728201399082163835521931594923100278266144858303950074932331519230554965227400202907474757838240323725319426284057965138347264380067502559043160194859730845243839463643124846498940779797437919966980413690269719864447258295511258837681782496492705032180914141538598101907087377308656503220864651271393623695142391335420155427994900334927886869690600560654020943603919875662396851277410386690921227124670853136825941644663381586844300302349220323630686587599432621052387962174044545077874357394688934019835928249510942184756331200131876392506695828796321426212355081482393814371180350858766502050011717100487061922821746601711799119600079354521288959257232728016284924123889664188935682151322269776874305271446486192134985765782719607037254415402284272153283591713193140812969177925459776330633692720113577271183043548866974122539160782947437005884074404230947738777551981849764835231984371613245883925193312406149646339083102002433071760920830354397460661942631948262414744512066664434408022268149019394854313180284797420990547874857024681080241435138715794553795328867964712810007438060078811906683032358880896600094690543366491046438109779997582336735681884008642087881769851494519646408462472079986665527314705432450394679358398566784734594921094656960255844215919771934628455457672727409636331488064214374153533379928923099175380021133174531470257497420544761738334922659665997024367427796943851784969826587851083083327875778702408497784758764370056345280445278799550308100677008636900697814415158352908627104489315191975690468816895990530586667547705289916726824231894137739433648356025633790215697946962922000485077192126506538137899478507703622722575807205403680840122552162729640685272494717124451867624997686365942684695324675947527403016313956669329510057952211272985716037658469693432384153457277371117355299171054892975842564251285452826543067228975461189975065695882324741694456507871414964021227438199628228975204399273710993775558616963457058020170730712786762114424159813893312921377378020232931089280156606124464774092681727653066802989154227186361801803393474539743432064918046471334721625574352293647463242625163002911533995408539244195048585885332541310436730159310135037666675404365132992848874305227067505059716762012384532689909687254309818519996179967066270901390302638109551788623431216420949259830307841728911091308885740993431863879542784877132021849537229380962852708034096548405120342592149870544764042522348525698700382381071051426798822382023420712081391846137289323201052646255005750352295538793936032561391873786859668324096433895794324819573733152288714194995669886684894880611692630648793658184077189266699192233974512719825862353993052135479547850451795511233945540156623439815600966222659177743082877976560001226235177160816952132242311423022990000538943620223000680837809989450771570751185435444593465647648106615565712568038068644420031687825003490888489157961117293496044270707077670319793231566590023966443037757517589874260410910797277142073979994300070149837560949089641749648559255627924091139344723906984251797456607555162993115657799239387355297395870664170962961545941889347528231990233785813574414795266216900947668765350672442416328681556997869821866713053602113275896636984701430402878137199114600148170055888544287325585847731082905512180852449299525424688375974100280299226212104365707003771447137147041907523169794076678596722312885921521765547323229059047855129296117027874754534252334426980388836321849602558674002878383232218488754429875030158684296198443513280145523411765013117082074937119535455063600877502317248167054617380044474997589114292650500813250274669733289741695932914237156874089458838400480470565351709599542080550892983047266995008578519609587312296425847930361291512399960145517149859003627009990662851079561764338717118273843528181712593797002026069944162683468251646093871085392708950878296999207661526221918013620790961822737046573517300632182769878945536147414792690019176713234337295522392946977997261698307320235698901068307614307775560237846760288274629101569438655461309936593245300132053758179128519217996110153184272175573800619077386836628463399189184188663848034163953836582153116356037063128849342703049899801259676318977968971884459254738478832272705300214856410883962594533579770165622525169430947925327897715433039479844555091860567258186560134725153291955734118141624687200609868346841520143018903377007229744747320328666313020727690447870843607604635398278300234058573672952911659070866608050580329958328442195644752210930527685040954789760884510340075838165678530984564705505396256302054494309484870982945992320983015229287970022562715532544361186944474650704159750529202678025996615347154686943277136857607315607424845657628916652455121022123153678895826849311505934137085108214894019018384997075699077926438603685018587328898095846160147737858762039350162668892139788375449848493544682068782872208383776229054843373685326708214907487980301700928619428551933540538336698120576592056928739175229324518960860006755382607362897244834960378690741020063590145723568189930927466926142466657762999236297738912447330468330045608202017470435998746068745323890726811204637837635859213944195354019255061589769183692573511066904391696555075141686216320145534776896728916777466764600958109098375340773637347135620352461023850473488945468075076489804731214091459067455508379393008167284711576725656205315861542883734247431688731938720960469627367407993783837609602217188606642174881247330454217011444287434800437735719263707429800793535378293310262968413318855608367109634510821610098012627495142487837931378977932712801051334723565419614287371397903281811885402978517376355118203342904005337749819241302303721569414171736764627471340632041575089231190128969643558898131528412003799888099733578947072847643692112894582836130061673949057953308038396247793535412047048795832453875854858863957161981300658424480597957581214068056807945267016007456210428053608031911575705999969750372383346638861465456031958219235122650667972814491786821916040355974413301245958464597020037839624350424153800701169263579702128184056727643935714542829615384877711643199411298298748451614876837479559798277362637857907282144220891378844423201889055272078705341570116928273520017140266877106486206589337857161366695301795816339557329026553940026299925000476107930994058837626119154259219098767336458372120980111121473549083691050074115515418117198003862825603016132464162079292211804111953184928911036136384182164534093291098084469985732975859088159306518304139450829037907887116871985379030460143111759351950431769005355724307388488462667929200726849568042576623361695629434645357852337770182862520414542010964271948229474905463663177412802658855919696425568115168993383827874513317585544350756922917206400190641889425277929778881104432640578756757787191549384163553864243098553801761647682810295146777949259221704493965715506891244909355030284557546932032522117689902643516788647065286318557146624316837405519831191180828962341080330561485364121899703906747936990978725439922402735318658507173878073791147875267660468628354994156686197071833846620995276490396912098948801724870625179656251040263112587084770247507707522984391722083689106727600130006249514035966318238211092014282913110795602166031471047866932167427492182031318389821373895790173505515242920967666072883764552624497092710077342304477615407471190292110524926317759507070705980431271110493332488994956569707644320150410493233687906163290219389080542414499171163352336211480913459734306116565193184460536780986827410940470036933240679996226739171662936261809043648311426726632776403482471597144530384863911331471471171106156726085161723542330164756713635606168166414860554784391077193488300070285598722891363754685083351282745421055318465615060037934789358824548832981095000614610060532428400627220431819233482940745828828769718177989077838111709175544886709158757975647661286575755638219283022963606135802544885385555294848517737355968022446147000261056116789678198551438549425506188134128459217297564019404703406781288282106673032305051116787349721372277570347562874629762451749405196145000177062867382134384213005223011983590215692973628441647299492722762290616928694551201992730742934850237045757010512652294352485242125494077958216957158085273920931203857059135537988692427130795752239533243377613959885343640514157197591272556283502536142112509566925923306641534793485537581321962985046188445448210932184037716647926802908909574639220013028785008851991452546684145058699455701690128089860161996899606212580327072701398107010122383927155490122331913756341543090255123687651713389735067707160225459292222414103268636328378165236746632796691790946056519925489752870979654810105056839396704278100943239578803163141337076766381733892772673435964902124622044026191463399726599030023675808279627077210570189436316437642654111713663176231788814733227815396736213175871825752041554816049260281110606809650058550857574237872899943266119242533476855315014054938398908465392934440890026650738201925301785206974224768206571263156322226168452126188106898369391065685079945284334659221207982458322641639353773332819504994795837316514420724130012914194250465750767962994068131724711683723640223649083990546939391132235761967831156372757993510549263097257406580851163474519917272381396399627615782332488593193984203180654797226788652453974114318365310264347920590298253608559020504527186011738554537394997006642731860753467372911636582856759970969624880693649138812234644007747980164974998087264357816259395332527586364468460323939198231943912450668009655585020173503724161612452995513832672932081521293393731688510833814051596390611802547339231571438425940308577126450566655702403054165410190136953579752197332058979723149526157162022431519446110713246974064656674947263422918426068784048442674537463365396294221255544733794016046923156831698838837789516042195112306191028267410099771852711494869304221481035165800183381337614434197475003552641129446367138610339244233971562057286005800763908133987405912484315658327893726012180111926711071655900099384289666990149909430675300762933172783999896079706224653753173475426699962938677651379250573164248633637002193245717657040111742920699428497540364550337551057259875395648168047702204348090225840800755885158730886919931621218795557459873261538761537243801866882351702662094628243449297821487054139179766594742364042620444585672292618683072904824366728730770715923123867387894326794022157598005708438711414382380571764035951296697020642046407413165435506019930038124653662628093833005582144911240561067398094060021058323069254279428130942269696799766411726108344821413402541452308160385402356458760597176663361298304227496116606429145180206785089278018306967372364850516688004671475931311912051909935697115702643313565315994168059482356232147045180428311148951267527084938542023708851822018945753666928914683797181024274403157561342066186394606525660699926980312459208900545953888911595749395971168413534370908506893315613540151885568448933571204167386136372454747617979273184799759624523130220198939592365727570708478787529968857457176532370383473657941824074077114969215890404710449411777559358160853197147732017098964082936788575493053994000046010007971715191091499208604897002915256085669693333494982951861555578959665160884848111418406560343576702963084943659899965067488513685190404432253895505474902688781302653193401224045635594028777089740519506228299361289760767322132368330203872000050979353808679321348665681137517866513450026459978469190086998837239191836183489952284969520487333053017968342097804465314504119007288097780761897706948246654892871312927684623713884816224609561824919339885841400335615327743648067521059715899221304187461646822611362693186438295394762003433032249242043534181279488522309633512612262377210877162498826691822960912320206615427173516367030957020651158643993542417483543751961026934888682763842129342874456276644190307983995373791430402895500073269945306661675314997423267606100955490269199463898934623330840016672391865790175804485491848288609412974876580219180593164628351450657030273352806070378170978735280651450190630098159828006813036706039346812125561268471448090255450537380726164261934665708500948310941221689779295704059304392922930434416305080312447703909507234195963852399402172153727432168258837767475164197547076239982703412552640970729841407210750308720233283054593561815955057178335484506597700789416233265146123447892137869568630217998995954840392572852057975624090875675769874894196760458736955766104127016291072752199500253213971265088993393671453814985967103910022506122892365745202035740389650830922239440151960861523833794554106785789932359092483435980167090293757048849386968524849442319281633914140523010864716930786743526257423241665270610485802885680087447423061309617136773501234934792946924970974173267297364341886725929183406861435598579777072260709963831284934098343947526487242005024349032314448106170759074535880592790103761639267279215521859627545968301862536721022193622313456381708133639851312047659076726990414908850830574063063946433097085604134607761452627649009584096533752931756468050260080589635760934331213620729563791231680787196510503188977741395285182303037571768770874646135214252696957099433532187316308148044573200511309014225724731361877372046524533393862329653169407441615721398293377979620965798344594771442234935987104847405590983491166000124422151009435912128884603157017747707299336874156373499760818570472003773711787797636934652333439359599931008168974686841277288029761096467071603339661874999896523177160280578733278670694107316159460240918755672676473504215306073872920737108297422275588152573062114279683570282932556588609142257403927099617880582752644288385385414715820433619251280077836629753278705271753682917792327636193618820774822603250169017854125491811170940862888727397382072636495861380420569039258260324856385492230187914594214477564089518923001917141979408123138914492876041721578045872457256293672052657934962058749623532722691789262592780006179171314567862389745406174446325488298822690332797839891106928260563245592530749648800994532803007759386433144270220538987621503447107500740115903423587618150302627484319877506702875988020583328567842621122782508484731751632172767107154938825279308167182971361125329564267390460008102665285195490383439709139203667761760770104953365423076013264941981060572075100865568512237947182363046857365320965156828365485645442837995128975829836738154035877356993603117719500045866003949268220531820537340929832304316803685961011163430735513090945578167095065051618071672196938677847233599302161008709982214131628630716402244405704540094696600476840965765397240291463840171361865675584795164646953593174286400369637311839221418256652502793444426587614636425816682065183016012326684711652395529097010376514942573827866431745272493710534551084193953399202629979841619221535812902351539047071598329108209554895248254752947560650582130790050699862093298183938766659311816547602214051483599146086972192221015870754956234915691024822639251105180429236835032566859953068187046139773102048622843578508458234150898762283778943384543776971547175874812308768082911440752014498793253187214367956465911043287852027307592115499637379355770408771825727482047506262050919560296005586852568604167880517817913209401518429372435492507216623153825581651053862147475595777244980030943005760985423615620436631084010040557672492703246868145100106214060268500002389672126285955346619681263716288194339439311601606982712366984388669912671006441725547452053563475582047216574384415437640184378951297174252519729869725535304534768645024182852260913811848734423846345608009679420505624538191415077581616847830281612681446842520912532557038965394887975496607993949739276407441100284442081181816645923930277008149917922818265556018696043242762783565984910563656576395136097897165265203694224590048657907844568406471666554424670415580112755872642148453591060407810060776834742816004049746170645612059411385724705586856860585130866320127586793804163874302271079166956145336661566069505144793542047405819938924267945733396333612442835846919222534753460859164542667897682622965719828678541448357343322660107912027764230184848344944457147064515756359012040411535523695321749246584349290602799427998696521773473737968983277555585655746874423159110406671686672479065322733649357631057585451865566517878184749868047803425968084885787239837959362852992052337098573413898068712338544633131239820736166673697649716929227785182552272970888431696667028033357540356918903343834002917348114458776812808110774084628479508995557496868456830413505521098702979891528687249910748773941186285346283430836693186980954933897654510695195952031431225741162918998176843716964072626979924876116249922737335691030309883198890597009891952967085832266898204630841561818232183708008812518290149582687223987773793065807051039883747724153995394900341531245086005548716030661508932813968228383058868260862586015793937514469578215709374862976730175007064243599753265272781070062971118088419832902512128236553507018045286624716460376384643521624203481634061632092126165145584050689527451870985658985154888564567216049959490972266575406114247178485008994279771235470123391646973628980851399149085542315893146881029801315312146538851385018812309096626678974354416393566862558375418947147279368192284180964464010761718525325681073184013020515254665666109461045510512097682388411292107247005096555876417110840696499435247536613854040335156256745104117723996869143442981643608758624410301218081314057159826297552197587341527085751923743716245605203400340024157234002391946628519374735799009174269411004415372843468388235969107770922781810188417763184156298358447774161638867697488526903083941509870271311747442333279220764850895862080816985794293461920050754516173151980062934397365426792940950993698008053184530050167190114524395123784269907226947109806463832660225666472843303097919918716029525447734031745683312811253984840175139352885342343697948612084072563123422711717967248482848224658924691298694619773539580543290374944594177611762732484833375156587567568122052181511982088359615401898722871261731041482109725599303186580234661948988960983895606803371126328938448942224943532697617978506725456558403774002739260919351462131563234351321402855913415108727919202038882069918750922526999964327586291128860606704478221620839659090650352993427172835666448048850000491385651497571405346102912309328780911525475744344428230317848105251537573749059706478296939377209793961375164170659982342458533112552658459743696852318260027643634393080935286755135922408699537835280330965905299320754319496416736315954369616293526774231628506387156086384698881482972244146410460903184347230403357867422252763985939619935050317771732109938459741024669410889425666009271627051886779243146971649941898111671244306864851190519465259278676922687822571453846253681575990999295329185467245163604682941782849277611832984987191714706540625902700359730256862742043763228045742282012905829924874239822308555526839570442139252988043403619082597762411226481277096476614137322307254290841669001396579233843630525673756046038584138959387915445100680046053792738944644551464014588582002803694884547062256468897580977614688878591459588386861489057883236681161866896243419707845507692240497458753914215253114513895194883543847814050178704889196457528014639913524239170867974280024011617308317858919958432408798323479557582664456161107558735465147718866178520096812180982529218765298607279544433954512501157633557001381094489884799326316301520225706307576839610779676064790275262272544529758407448146821742000882011468402929301274092919126993108042526543007356290175793578937592062219946937540621678547543784374214338197887618807156572466668102729650661463034593639143027461254827124214251631870219364974798256194056693523571730107432755779124457310728884302624669951479615373824149706101101591513198546799086439486565870184936404549701336080722669439806351149063800437524694882406026790200392342949236787976239088525442287165010332396138680822099087093316498840033786229170783179515604222533763887096775704414656733269861814918162212480584963281726879884637682879703922361256529675880784758654132518468009609448613173847586750632656675383333412113830095841435469942242920016382807197629432431776271952236797502401844062279463872254007742903717413688704545853397407254903345032176330027605550738117455778206884554126545352891431324838641482361234598856125240433645577512448049894151889118810025031314742200999589882435563287560895098377518762732229389825352354543923604611450480397995306503999139534535485520232027433008628098915883096962535554169322920630717050463801113791254602695968997635534218202814205035567792788265854865121577954644400215190327844656723406020662734235592717663362803662082992701340324040198099604395585129407724494679874588859433960369762225814235420279408074109232452903161083581064640771673603112300302090044978833551573975915729727877461023961774976885946979492752753460242247188549178242697110389073356748809811139142102845145918515064712995665108858539084412527231196247976564247932424816863184724764715826372267448148411377990381958497014576976916945867687481725772920814848907206885121023204691435177204363418583744429027983906015461627528208979673759878002616459632500313877951733542017305960366877161591046836894775276241157620075020158370925144645924022275376976115686337582204943831947043779662751581574565577282145770814824271498643200534422421072453609703868707509818044946327692745908189774129019281539181667806519762984107519541348349631368562205368760229521032177385821365274607161879419111385168758896414734593984369124157679558315094019929663405648249140090792510319364868270984475345033321554752966195982871179577725249516375948745700054919257094311470590432416003622606580518259828206109836393841826450688243460182365321134155613232295403929411054868676460655675109337626689449197873865239896836509851546314147168716678099659871304410089766908431988049155175574539651162051754763732025538900614708332914668225373720782875239931629675537215744008430561342596084683180846100253307501737470702737289386631791067952742866527865780174893347688902052883649478124852106496332196868434998476499251634412928939104662742467717193812641935600411851008654411199027048599950325786043262041898211264594783469514932103093110595922618681320151524308816591113380006147492217053090468512933614322651589061620361463721648345598254220296609716922460082697548145476239239534183324316865007878834704740808874764591736248077502128546136899811920288908529698863678325675865626425072436810278528949292225593314036157478932627387092904763613629147813057586553146572050257330764191733809814213543236864940995077877260326742240937603887740712891794897870909821862928851880260140294987377204105901359514521911617080343635165127675147649473226627135372181114940577878568799688922050491360652535071746305576294185320319388393333361625465892124457374869545798836979940943527140390045929032218370006804861414512416511404139864176576705707529923111235315450469904648093094152692760900192876020290476606362188228981112105792757813897010352814918180164395778577522307746300913468123176761494912222583453355037336955077567116604156637870202658249646101415693442984814722943464547308093395899742393627048060669090077757028984850552488732070259994333912590324376536041623531202206264377769323782694029683437913774852299238874616982384578847156826706607986960538314040763528032470267966336107672208941568752234477470626585217476714238723366648011402324338180574032939062812415685655766686738960908194987448123269517833685813365598209302306251141392523186532242107158153019383087929732634881950332396066692754257646018881746349727680845805343950192449276292864161811480548375228859514595467046928095890174517304611858725179020673226142920920941503502067210018406836365180590558815325200272161912936281601217352155242741965365694037920408214478676530997699929034366087076152900179372310414237457474814639299018997560427577790903628963310456793977986517513632606460460878156675272326823788461282972855916167185248736727087072788829036654262999691964136205760194888214022379993976998357630118675841095635670664368041949334254432909169959448135306301954804221491862212204505212289117544263020729883205844463988995761810806571939013304688740102045700522664963568252291149095923836230717919701957857232551151188845695893755990921411814939992229433853228368588497353868136450328686176904683898365928407942205961926919567933745738160518730263677311823142845304526669900599843952604064375741799365418559202318100474541925873066171705427640482497502685497307717025447498536857670248124298734691574033075260916807722064341245147705333836060833989491466143011075963719176275382786647812231998214244477819579429251410177476531996123654718523983829736844959939938424677192987867086783462015498294619326020772757333517355150070262394369740647058465339041282444977750405854391706781967959600804241350895970528525730846636952613336685991564298690149118448856785350688132088178222201898677104017832844392057432283284566472953549961948930277618759873430066460530556989727734954810520862866002810820302533884464185263963322396857731423711104640803511008777112007285106091590532644791410590601499021844981960490007481885792202205956637669431472125742346181640981540308311933888798849247330467410608890867225564642790333591882411350702029347850891362117151578551396309821906821417957227087345895648135308522520038971029495251971637348604722963385351237294676649028783460553655088290051562318947452303180825788775616123553313973941232229049391773433526818185905135314671648739258324757816356082355476007679104618568986246705661782337534573579427261163793036565138712850519407708753459625006880845845060894106233491522203341075041718486283345497808496954031426113869685136180708391835745497539528675193209627969400657506479587018347351566507576723114512826186382986342664123055777329729300463817209148317984935072360278789188327159155982839339492676882098585192637008841340342670880006060483097447137516311153143703913476245298718363637355022716495667090764373765028219303211324982200467292189613417960167021403862911645945259632142910916459919225577963626575187429458506018032198553420979605267538806689020011622206744966542325336331350839137592449739083752414725150042357141590078898742305069949661706745510638636070928492911723354412448387681671840550964504452646181701765551884098633852550765787992989251889644736270898135616455927496658266727237961507630665300918122257301621262889072749534315033023738429695126789603996390038803926543561994395190432345939558803636060161143284101045983917787631120754908450522043086452047231397237179653558708320585558739040225403927603905540054857543294690736716983525242215664294212502724263002739692827685165729265446994026293314569450628599532150569770687454445916586345680201841928686979504354046845681461597751628627924992717123895574346599787588093791064651859426091793401194596136260904980927862840884525718734405337791623359346138494551473806679577277792127175113159480952606423512910669103306657502800162984092913446895224900756297791181223270385382711562735083392591422551644324873029631674652191455982260290740050487776941435821537618985243373294902517094107884866351099631671366654860026707181752511618307323167502558906602744077338703289324826820153612513672586635548922318781310536666724430172001331320435620915245654829563252141789007052692707135043348420233907685780708265324342646987476385694126743462873367669404546698493498387316003168159569725423179380606326022009767057099992768450549637185519397784775085572191646193846461020078220586484037086653104155116829032801132856122014396722016537024086040909537017818724100161470575524233036481709119633917524443634589420401897073505417015088042632190185773980872993841865453971219349706771379566979489751282621378858336304445316889831553184985076347853722098656361860863500143632725470451913772043369039958103522384460668683218475334621520494632250204428951850609818279596980475144705641902999353333940244019588657586260862621395286490327605320728762619072185156362694338520465914243669008327748551583449717836657448541533275957647772920920313607333116825441956417500503646956608396531806256909031102849435631914569069100425394346299023996930108907953151913435107417893791331227552386232733550720816098851096007118037932324792457847716139544983418137253753497527526710336505628665953526159655951376908857128275498369709609743073115751856888061072109586532289001900020345175612521486374715746077964281723994482769288697923317716074930093496309843607614874592763475868127069421075789121233825998367402299940478088970210098559713828471948888216507079365708139182291640440461486750392549667868754441613186413034452017119217169161926844221416167202974021990168820106459163979648039211840902988786495629934821061735723421561153723316132648733034886674691104189192054182207566191620475943199498645006364496038385700557174349922059409839412222918994683810871567801530412576658107913303329794511753723765306020350916679657150295961433659001089476068181592635296148038814887848897300855882413686823568205882259923431414659271568461713400235815887742861958687146047039970462490916865255929499634191233873798921604068359892564394762470334385930836735469014191245186549372110313709860690786661091847350497145396280880594872821735831407680382574371007832870384889198516960863709451751051317795555338613043834723645002959248745465771454360950618321261884877755979381632611612050927109612085375482252380132517410030553522798395509976141499291925412542350800863141930857553647129374379234788321192911569634646605775944083795689660824679913655857703223105664386508253940323220478441668758693876017196276693689832196803394472443892730972401686172034380985787813530342393225020050502554051879183984495827066424165995057528385293043946697702632696722349932820171558264009102875340258930021384536560826497350144077140274873712660794906486920369755890980467372574824512851061239713394437953483800564625071477700519916446443964410227862466483813713703305943663134097333679797379073238130324962904603709854267596690244819274716745895693330564618288948735579727656648698775636022900396171766349578077864461868363511679967056427907682443683950185712744155259382602752247761815407727621230966260143817728401986950988783656435902525053939830647160904674322281866155471172735982672011507383675652755555098014601173432848712411042658430832432140748256841495446424152467110573794711877245766499679128742465176274874130353955566967360368034749979460905478286643401321052982865563611089293496918504343833438220711996575785966659670221815733848222293321128576057102720633843447137686347734378812815310526321835830532476407885860389932149435274514897404554126231576545057924706816727407922202880514285789707856768011844632903144840744310447814695047992819976103495516028988091024337375023128866182683508189194625069614766250630101156367026090550809001014401507893855166289111736697601144080550473936936348015263847069027870330180977530454683835228337705359828338027296314139551831408849326277119363607633268208502637026907272375865947345253773574482346065829702409136170419573225009179827168918844795132840885657022717561682673555468979054080005887727309657053325699995090595061304179669771668436130051600241582587842659670568276861563514671769968368232259795069569231367820896527655971793084351428882297579564002332022795820036869508576242518408981824975357027421545767375645342232558078645646479295559163765250080945596895861157182016193136027492322970831315118475471539668743231734562401673314428123598057994575220091112277100051720604570168447464903694919361600742215311865623924630352169034015415848684322280963382056137489758268536594311665226875847784526080004662016171686063406223918171947668413172402870541475213853891351021285065009077905889306127885565531600555348139566274971251419311270080043178803349944067994448219840253746787437386810434104700429586354062070846480127078094835374715170540199715723396164866972279361634558531243790266856728674450550346625277433018425247245480832214901667629906404008220132593611231413915228755051234380785123564077141818628342451536342413757521570017235509293015460688472533271434897110608956815778258826753519516541224243520529709658952994009000173368752746032480186321106300033037453649556385536773506432231341306082967858640878577821032492545012948305695017865134430463964477966403463018535627596321719830729262669432648381817810344491412092647476945925912726468676561668208749185209087106910684292117922573753786013895313083274836300624126751786973800550853747860868149825908445025376921075878401233147022761168065107225886589541836979445662823415786222865047977429299604606997324824976853924742130982044046247190473796338940839060605776883847281544242494789067564807042484080314484442089078350782989178092327818231842794452268146891574163546855613674251762789503032326243017072054741444158080238249077725713038774018790290806643004618866449060457982917451242058558931892110672558293240148567532216223723370805083475130864500250174639947501763389776498272841081179887312908526752343008778719761451602037419058890422256785537389692785069621032318963436356760891982434000913256238956468511082268868440560671562742943332583641317711197830548945418692097244376815724911296659860811674719317259781338161994315447463593189356086213888395199123794666919563588078511020162701264694110838986927097935121455299579513636936595004260622874794710979693722753713975896033774547344061574698713863122214253541290937557532062855255970754560161137822880393632661659824832652119746033596657673071996007613811786682040833918207034804104034044984849238575907969458405004919918385571365567715260569352634421131131886924452127717595382485489516878792541720649858784858588969455989581800500378606330275484831066296817136559433105294027874209051458969206905111924396742907258683167773110837450529521717333756792768288611099042976497263952179570418151938004820002786580279917705345112151062088875896485220373793693897887783732862102355111815038984141260910027821258335607205224854321807565041850350434092182530772885724575765655520359047898090967076846597843317685202676135131443452206298385103724115880000932922968218576887189783942051241671665180330788621555247402310087386987127577360810338048403606683087588783465621588586912461542513397479916240161794917963023340653491610814730931397700844961547579059262465638750184116007525831808253225496660560572713468360326381767307629412704071117685490490067743417998516367551488157014039679164380043993957273949836585886289353923367526909835347458889779744279450253113630149122841581110320195363933551710272205630069485425164343944514941742020555186066875979709279333771189197057955575646438837798550608744576813285966993008854906819514705805795303536934788009178203907320760373221344266340957120247374891405365465517773306161614850699065247674179025520796674024122255398459959363983670871001255686792482533613432830119341800637770382136304791488623006657441209194849778944010325904857949481094185733159692413639748220386627655282561606823848084520004213797138966948789754268942346432168831531924938336955998807792488340836335529451073099836807091348780290794178165387657453227143546408846803487180505532612945495539949468529742914736028122200873266602887616224675174359784969919532348892087265702314383282992378573135483578003789774754520969972384856823411576011322857761711105617738751379809201148708696111464758866073083172150675503771585095423680895483671168655738212060967584891100207359400881632066387482357368146590292916339659726147123028116253381085847559850464054717478363901630126514632932953470690324281727750089740719871046654222979982042657759249718871365111671206975710618415728573050735636301602863121250744282679920885312688475632980481296243875416964850987374481867876584047731599422192425178566332802605507197549149081382757486182106347295754026020421383726724902971455880361918974351569258504785592928067093727116945731631804030534186507274861968828301121692834779495271347578761535890069969931787895420722976334516319649582353217574363535959860840019242140990332283717637761437494935969590264277503390978038212057985941306653394452259029660829324294985936549269344663647906040293429082772620810571647506587626542952068984740534461569806396928969424515657358689301112623719608355691504308678246351172019747658011817959015067124240475600371343112793099457147199582443999032990553149146780496177132176720821131510349396027662903857401915408123075728423636111160236549097356732186942429425670649879016763886608741452068859794826454428869044088519488282035594377022807591669061887756240701921112230305508102698823728121214188610508556421951024198684853821059240968234635729844440710928725021483582631152747877664088933530579741573952044163920272925124063116972683553409207086406627804621072966712574200313769923923425247338744120743938981412656985203411121151255078595714447485112385164775829191090808830010163154242965500830530127015372654566319164221332051420131968718877194370835347555410152984800582682897195843078134742491607359979748108282831991123430539034152404476742457242495230595776024638545048075942815456672501876485211937040044024281055419212785334073810896389145346717934019452410424749334200099169908911163748459968336365327325817619244670396727298836860200454072438813510577549789772237514684426475478739692556905437129618365956072780055380032999025581810232984213882708546219845278574274442787040245118342383297227047560270982777156389048094645435740452437399940312943238213887833498428570487482851508250779821505824873185976668212450092188888489326630408266877670165731305811395135306768720204509228825913670136170737572562916954999822305135163297637846150047483377348152722390573267179971435587871722370500954522812380649182088067252783546572505522387605757121904951588910389436257127341229422567669444671644217819967865897089139007922233514300658862027697701933587703043201629375653997208942655474663506659744874858887743046295907017869136739551246586116758983474715753984375889412164058240812865992349315889388248439189243299334056502114063236714567449824138194743005374920109358412930474907309859098021117526607410974416761678012387299311538793001231678204107989903613270743916627955987511875187817879203364167001961036001888484751648607599911002940715557004310980819508133434448032660283481076764675904974905276958187719282523478869810630525938843216333887575731920077245667761147863753896941368259568298485227830160905434221457675976777598160393819004986923922528890515784122111572592023131409191423992081222293655989787037207527622126636002137042978374866071256514609376382660491202905302540545580655311168016284483373395271257076673824050811618725120091646888059778676663285863080441534167883594444401465070725293027168094621362768311634283331822993537213764531405266215387799442665592594905065265284338995540929696930507470449660995419334291532543319665853388234121978048332789703771738049080071049454234781894575292475563587274864914026084995851336293203503408361046496572233872331237688833915997691520126884316541270706336732153564981045131974234260577162742531326870749438990284879883664514320350479374595318002492837335200892805766274533869171461134166125932586890725879747224053713783941005498402909060309369441910529673256530640031861925035415254706066869149889048763748370202038903457191577669206117225644754556799615371608191349172528714961579652384115220890335888422198016841053452607299112144701959992312283437918090887440228896461067433751136398457456770408961915546434137026694669135362539656959886093355990684402968102492781698587491594076526283404823521150685299177223433863195936688583682461291464835023184994790488489590910449211172023405626420866425283453686414002938722704614472993795142483471461293297007062716456873335614146471876157154080743104730924145791769260109894400789441249874350727592578320366000472945852595956546864290930272031597829199887154477646224494583104480033765472655430171640878159054460156509143591672877433698083153952758256560992495627434265042167632715452545401864437538470194405065690415489072276160366240153029060425542309548743008680871813181280950964356742325412932981807100207500991562312017838424150584880679028502294375772548605276830689010886906258827833952559230617398274432663511855645549875605583730710493792303491662615358624544368940283707286909245349695566215277118651445634353722359550838722957419971876334004197734551788444068244500535171601227239892136026267293604123987807527299888188103497908147880772210959261516616020135374542111566001852067248254384054299014448050955759291509337884713132716086823638723746455913611742672016703886843690454989600618277746431567372125858213725200605493526415259270952697755292603831155358471451103315559152221766836541187279402807473705510573661615800650878623774114450087075897125121779658048341051605046882512861727726077955855528255331217500798312047836064262142174118185926256142100087094253542843451671861338949759903774002392676002463662764933294176840320346084825377602382024461357602431328907304846062425642697195878859147510478662462096102403000081278101965517984110412390911700237461277327243491238436755178599956627380886654990975924902109821961083883132035585751033534385163627215640136469562165943137325815161476628109499261915240791478721993312969391095033831729796396314999097404062628566774018929848822400964969760147829889395894777328356851300037748995567739273225818477831733907180080479888556432897832864255585795562413480049091083938220647603267356474971380583457338803554132554170737625238503148567562233158590321391918240386653863931648239949140028044510457440419065384958665506192009855161773969146483050666461068465239541980422138653007107494026196274034099802124433294414097107778303469757396781291316134044054408220655910917976213932008752853381471962817460848454579587587716062195511603727457341388936104143764060203962167172788556948486801132713270148835300865939006963652249557205955658895780042418822184903757667869933812579238143379160243730025664601998437689179376561522173361582937424443821634317035822223206457011434054650167427979552908671241748818940873173811706413314215366864372961229791320980344971654881498719949427797995150373218170366345989936813879363199860631929155925103821816687002272909609698555300263410091349091136151368748933163601051866543343600543988884403610164546646946676757431606678174418223690748175511400069449560467232303162590095914923392511184180374894378657617618897984983277775173368759731798895385016747135762144909653372218978313943279517770805091684217781722974458477571499299480280487424690027364693055141212456373765405714540964180025951064231001741996781395861259332718118086632906854630737149082092566252598571809406314088333451087153677080961011885474406200224319553658880718022227074529723058046153489921049808922187494982028153964239821580350810660984426877065645803197610097211954341460974919934675990348004256108992854642081859120735025940851737617308130213702467007097493456343174517281847121776777911577235856932990550097285179461692493126260424871735804907410304606096993939566264433478545089234577958252689821614544394901941165579030380681821379639908129618027723601544761673900311593098244744175140411881042261956932620340127936334800642997875754893131974436072285851030445099162202078536572182240517756365193982451814804776213318984650830350686118106195011557105954140173533119036440436004632849609276281449548871123459398222764491964190208539751191050648424049768872470171598585399106309641578194227730144075992785110255329738646810978055756077021224600215938379702160403046984419092524307722617583054866768139441821062498653608234989178579446997403562870362636317533092485215996348247310259840381061432019782667794782693896827378454999711155503298807192506520882139392073686266285186909018304852427373045678160830523995346089173812427223313839115357732751943640568672132256399392837750233964762214051520402059549692037864780051363706086590809290410006741453493507289205523534545247031479349613267677193900789889005013707049448121201092224830402385967353252911407194207043944146651167826825774813340409597044522064599464458299071090563442474703237977109932029925092898679149048578302294005685436005984492973384729451458350288178963247162807262657242178155284201874421525072279106503180486015754153981454790504514955562783436782071898380781152938309122089347248921782326515162103499529667223116371446640593426042990466230463999662813346095283036775289897520788850582849015990468450560718040958625515461025032530107365932417428461139897942534256450266135406947415247582388268070002562483696278297660457181780242394990492660410979934639681223518950967781485054681828615800002333775050537797644264477014752435368375986281508296050034166228560769106507177187255230511044382103677410134850690008259741381032812852315052113533786563713170746349359554016593181872401660216222329983709310235120759998984624519315636040719054614130680742609772560990911437032138967897875722847545294168884518510154447144340822719532340870200642392893840001958463727133148929613609006491984175321371729115408946899693085965452863894532233920960348009980731833838114456052602371972737700086118213779268912377798209935663076491005050181713747945195538637719081576997028087535951952420301129048521584009719261690890622470898374237949201469538490085696712413203210070142255789584888504639373737010705411880433113316773333725084713983164584408385608175296604533422543215977370091078177673190117419138056213292252436980145940646771178861947575894223420509585255392259771144375178813702723714714609464138179159397397083799964867111648383278663126609108007581455020415167006141726326039673645346417050462872344305011519269913204255382033632817391948190538522698611938698818462387143804574953282844231440146556925092599057780780984358963404245987280034742545362958057886879140494901057746050177858932248896828308436683209303312483960285689709099700079895595722443420278727715517447036110172513171976681740894480829661399173370053422215392875763375463145163589927232886933235252343858137217121157276070500103433324810991129727397600848856212081952930372413296729310841259273071138753601185162376020785187120984352415363555192208188123604251853733803604457209617850099040002157820790291506641518821289480968483634186023051225804855943841480340522498425178781374555656594567415218264421920389797488462825168528796784745269953725925538567516512843225447253383926480351196084872481359162561338788774443411510659117670623588314191689381236366508697413026927663833373237427400104614609805536729871142239536846039731930527173783358638660458958279376208398876797006441952435855273743502236641451093522680811389058922110855322411320617281328164710584091455199740730996795142944727417896345936188836136122257725485683903793134686420560678473406260950519363532975639814255095383341693840220469503855852791675502770649011046532450836718872758900858018935813010504240889438672093657517338016084381218322855036479992380515897047394635288338187000032527008258451652639777470743219445037886261684754155573096424686138921817442554581724801023699768811559991392267786482270857903875805700495194864753802155627226574061735428881303544226792508823207170043030194159540983971610790776964725185176003196190977536974549319450016393143170393335982856061840531624555950361352323898676698970246611203264608835921370301455821091191333223255093018325459841065574764739943287487469885827611463242973087713105068146851691158583529364266480223622874719255899759812013151503209914371239313874035826727841127023897190568752109274213414051925691589690098709275661166131414832095825580844941833514083703813609516091350345222249771264171516102102153663988872502549836793563513056986501738380131997469694527932645473782437183925196888333649663539018229199835776350410355469839718448153665369268856659454438291141701665203939071094338425877299644718311148358293642604123275311250881562456947326635074280138909049702100823680684752394410749794001114216550872204849898851768745346633025302219267937821274129578191759226991075563770675500931449530603605772564677898587358888932581466163710628713604834817837775180337636129596907425061041504504912340092591783420003968675296611424768977029503966626953992935753660181224811031537861330019485371655651072669332765875467136540239560013687226311104625189456348326412515124663607458286232104406635024493803785623960652649834000874977635753173199111955583675452070612675008330602675875494109277514115184732793454601594938259179309224731779232923641447501341075670832878452204641867279002075089562903400691382208003366091971495687733958331681861427816513710494517019414953401233217376061222184650398776013593496519399378657328177478353876649458728962597950837096890294417869506626375063140585560923150331382084935144101997948420839788124959981081415344939497599854740211266564652001212183197389509978458623917585081497019390277907948574051359579269365682406738729107236576553521274676951897136649008411940106497828376039349754342482858197731519833452521912864577226306342232432092465847471755271145454581569318338968465605301751924106529649451331738703767494533566308837844949179676597852119916207546210582835547984651261731411129068683430067537648834527877253161879136243145779066372654012892622856620528621231914230446381920415010550714395371086367772907602896704654571832563779961491889369893125187632011740992822529774643555342537782795231743180536918120517531279506610137580628215449137931927447624076380634372776919853804594302528844167380933870255702251791903072742236571173750274824648184418923242986815121926601683328619753217737125897010732445560932260085223407190002028718442657416164316189612063123053509171993203803013629128124458841062662751587622097341092336062910473376200762585090235083960883737323723778504223339775437363410267906176768271291440599554732742662295340825279481167725404800038722751895328561061107132395350142576055389812933558194335069630113352736485753925250095431726867692724297353793895524371115471784175930047120615148773709699298792572718486203466994905111681784224227289158291067381824132918035925336097244240600140676641726808281521210836686287954526615501412855842001869068867123475535731686152144763089678819846250484623741549943162628344571130679246648625503547258818647035627951813628546096197155428965301012113499660361179165439430018341512665901474572518402510909314036383693340713626426725344115041781664474966322572165866450352002969973382991906322333886062963649106376803061305029544367138810813137071894638465639325968508190423043986449654376552966892144299447643694627072399052771826408642516966160262124429786764564441173625776221338759508088494688387904871739174584073700852634308525162423729316268558711613353186391980959352067948278946008150690577274234361057655557815470070405317049004075724364063113213919845851035660874822024646810211282197724913349840462267192892660090931181390190458925224747145404863003735543534871185305751236962930468875150130368305115742057583573308889097926886082076619295344966655468255130454961032062572659519020482861419993635546825595161409749579300905897033518050237406330370997036831194049151557918629359230248931295109446940458992617554590503108339070911793470680290367506797249447333661145338362516528930098304450544639459091627495802332897264566196562882652469624848750380244637463052022056826604713682410272295770363099162085956108617261876434989237786857117821761496752349624850583945426258915077889776903187989763340903857530886433382296409329369020100313137107856977411130155820988124219374585573592902448734211001960333811157707666325881689370643517580980824196152749546959160781119521133292279771930563157859424587522783208304049349156297032200859841445534987993966318572246699275618111933954059589879919169724073288299834450406087451276744368332375544122902055363167311686410435268079773663798867407877494060495488023510068958086813343321129057623137264896754901135780066435630483836917474374454938031089427739604328068958821052868267330735480439528550855406398163217581774910887170667881932750091892599366903012259716565322532457102047545211536773376423126571417882876305945245786280256132670888117304455501347963141525338019690941432840213461756232077533442317369761193334833460784473117027322491103709702243318435087103433996690960849566824743506412822762468530388554224940965171152441532667512651960338783334629339527782757964987522822789080993469128172354614302104712257708176577185098601315653325132201613634256635810452309053289584717660229167112951643915065630018240736898588439552744763244009155314030926854373141965385105585878582237963750372381053388949873868631135748177416271198091518453775198253350812087361690021035251465170638110385971596361732553707263464520009916920989347093763707153650588773054310083404058690182751802332384708870902886858970071354382768838865751727256704593024324223048166724754126097790769989654239824172015383440867601064747684847741414274689427835652516173663440994592633132115194506412549612345069222606695178326609311166557648057872247436826788266124262194588476124773062741608367376412229860686132616408984233191395752379325156140389178445306110232926832909040778782636717398102792556590691905259888910838644165867599858047857649351140765457699804987911394583461226672836602260402293230235074483311726535099843003006191117984518508163305520339047962174183263421812087872888145400434135098843736048822060812868264796881099003476757032846493789252633492183959342380690164194898005444387923809871117800469698724506041030625218360802740324652467425490262444422059470520687378620044326352624663106029628495049581574461023823062540272591714545046704206849781385875739126969243077588092975782337033702842920016384818094539987793657224324984621873580376446895986044921243425356198957679725452763299049366076483503772827999279250789187536021840912769657846574233521299288326145007083083891667512853730442565502713326434282530399046187108073741718798927093691941762394977873888395176285189306590672053589959729021070676622542279905139904924866393621559526607491602210279912684454953164842550715212486964420710630230724361409209819078102967974683192920506488677127102467599047724806676773341640033654609354148629155167356990792620574412802333279359492846581480422310515527704485399958468414361454443621299615221571917922147472952894994235156261606083407881163735037078003894333501515683645136130663384709354176009315523339678026645787471032657333898717000878348355723504651911522378991663687183753322543857537819690117672584848029961673112774528014951006132267333115377700600003789931362225633720751753594588423721947131950582155777355297862104658138325851285784378959088081073044052692729482363411501622058104899761588263617936372231044045132662608985418656959036787603982061142833925555011983204183026465901878491356390840944588773280452807024124770979798521729597415108028442702146396556437953449935229115636641390885969595947462047515659308172168890853744162435113365400682826780155916561370238265689352089866878966575194453915116871350671649703200909601456124833931521309669685174156902689287692864858663293814752569244366454439382752246055246137933768699491020642473474354656511203518159741202455829440252369641429163908883309523004386363237800251174251400839154125361107819240359564013592015559794332231527009477037939304867685671777879771382395809500600017622479374133737517020756712068662078022338197897831472961548699477868510330183147957141747356512151875478979676296039644064849767097422239352753090222599953909442893359817938326014364740743480224088138334452810594758104133554828639491264766620689518826809663875067935109210001124766753258176495732880706615388832285970408955163567551647665247753096687455931212316977321671163394817370245897830005871757724549530339668929232623754647605334371710835074619979550321362167896776233663753743194627543672307657759159514576268705606379351404306010247616615031093276304134158886973218935602722354225709710628511637789669329050737933836117539531458681227514696574170794976028177806255957228445763514132187203189132467126456994169685630732061026145987005844378981866333342948078457077551407585478992876427620024325366712088306832010488901925923747389515869682363447192573070600895527770850604217209387638566290360390113544618586715565708849539026718238836480415005002565802374012831035962672106203703482289838009483837898418030105288537004098768472116376735166622759694030883351291945901126063646640614146237018738294672669717195454680917307759226358877108894912354815194719127925608837695345876028089315035207501131468408814788135967618476220073117281756093954053256979233280593177621274315855216529194981975051648355510281393378275507782594317647404165267566064217642269118433318149525853909336648122977758073945001276893038676062491439545834796852584777646523733123322181777191952891460040191592193159018067102788122465675258710889909640293470006716243138447840042119394720909641702831071590758854660859582285321739108345701615746762610440651953954128432920135571894342536823601858840739446449526932369283074776573788398338511924500086390069602994647014634306422849605396793265008324109744481246146702741494272239294324976915387125137830575425471687087236989628502366886330905467903692397073156063685743022015764049584674142147530926850301871357550576808695992989715344674884792081426617286031398802934054831029873233908439406221608040361875488234864087707845052080215921258867449853739078478387647718150885618715205639068724666584126563778630817629169118080837726210189018996439877277064327651455105393330107374867991365881878355287425185685358640873220106866248935940507174468205871044865197838071294779497570016115048407917615806830482674974090428082706530292097213971650797348945415365670535700800079293168428594701584379909116625092090831121669631565492337238213454624492489903734393527418895608099053074399100728822446830316751608928456352397861930780351392604420633577602816584917501720209498068829743010134940464021333803422247864896072594912501591278649446225533754795402903652835598910106123421316726833782006141976674511756910644503835631680090071966043467473190880146031233585979232195420489686711411894614979754498743923347198191387143315133555412326207105696520809182263537126160760135963683133678952831506252180557573410393874476731753775107536653883779734989487959207726419849105490070706843928000138406071922222078327406001077072888058992401354571409804007344688670173958487755582614455168682910568142124113332211964407062456510054873032005501896961242801355696186914297185563840370671209864414984577920808936188794752010452099307478098427594193626822729052929558773733737169198166171638126258870116939442603678651802117699076082713700267576480354826910471409636176213062531136640505033504072977527137929892695849160038936473776271390404456478383570283255111554504772511699714506767093946395170155055460543270728781048502249562272974356235989001237173369726565748358602171282610307182082070112391907642728773628624006423013871524421723569117414644260407455064033100937010953802338266976469495720212804778224265016583197928697645132059242061595488928688472427623011832210708525124440833693729358114220975979261889105296159617815674996994585844924758946130607610532320419729246329195143361072877877370024913032261842414858058991489932032778103791090435584171625353111113608368057288248446051916237853855804471329213582700494424414390735242637322948092896074267030630351351265450981720102493475182748342481511891103279673113285461296375167417892719265295474546055106221346563577423222924480515393341255473926852651032626887490258130060114975802485457211671741001294947641509830525905276018130745835095689197772640073790075064548755495872445335245395287111121822155574123922453492838327055007628552639127425937168236559251829226838325071828186913244152522856765745059245694407025244341753870939802373345152164664347192984076980500531175560866768399203172881455948417875616911504579060689548942024352374482235869770252931431826848295522011526536456971904981952304513323759397301853650213100772134162065294188757935298529815938291799133647565775728657394205720350943195404773000523897182750038190080315664210325966196604211709619427618023789115644116559569558301187719069368599946838314748762295131474135073055651932659858630180022621527734637284305379460765266581152414955673722170844913689990170568527124118033216537340647957632542004190838275421730924453036901736730871798216970625959595284002742224457523467861305429319475727464494337448583390950833088170255324360201087451413887001829058297148390301953176644012063770053547631403987420510494779710440807362430230852852109348580516784751425146972372955680951090864094073177919599677547532366499276719383368863142505453926143577939001262633998215430899892085439588254642823332676008905877250057325127523770310052275929555539102706769367074333676919163053892228713589185301265698523075516798524234636725045697515237383537671475415231874572689366780238517696092927284975631082797904114811706121941119044392561220048186713457455922618925890952856200183657107942505755302328523935892482060883381744955359719431860059667917264473418798143604796293103667726540187419381365256216773805445374546507650359900460880298177097593718741816739465735848866462524154301979092128218695504469562622137259684937958837473247206948680342292355700919298552233861642173414091263249375455398592445735320587231072687284181620354658678098339850505510208038969994470482955225231756059592577816052646465129471948817176707298402217516725707452372215962650709809547164069401744953409363500746175515773521281298170962429520484720863948381622693913504809338980598331423580219959354274692789216282452609535973694838507969482729178101072094885028024242901303453772408595771612051171264036595529586694244266146749732451341855044870675544770491990589205280308127009052501668322257627424596651044121926604035059469238822990973701214291882582117625308235144314546122035639774335939639511396455986829787094964093644921017386064434271115926845427234485687887196078077333662891086266032166805804904539600080297846251052534835252718827154012098000721838916481052714483984476258661822046986387703044223943872086324310362622986474859968410149742841652090313363168992479602325871794784475503967791420506030673025255866240536007274428278502385019484265664844533810426850374660262643517525339659638506441817893591874918403290569423040233442032264400072255528393611514485650496419970847880369426227374717475034013277731438058924123036682072100653851496810314381302874435898373829177457733712303785949932868588566262063892093135181549429456240587133995739601006794049618208665770611213782106689052550443536156153090992968933614437015234700806816232143136126238011044657223636771950779267591753454193372489028497118834978378013108135337535871037692848253721925127081145467653045749166372635948139491272473871333682733647701212182591958757048944897985146765416049723269681186026244706171557174266734754463557726365606428602091623420309857024483986530189267570158236154601363421985270975122889524231903043001027783062873301083319973413609776193346332922242524517236170430366176425541530515271722291494090730849532185949023713701476798023678306194876571713309233573586535493604728961971888852310263695806607172738506974185744199817507829233509931273541000570611651115265301616384401332098918943867917446323353245843940963749311004847863310103080832028883512091267487988388066900379159477605327259298372384007360420868507491848791824961143365237963936589011044810470378704850873393650489998088207199644508138008701175370387014022206414042228959739678405868189033786492630440864834836806343968030412281776375572388676630653180046207190692543166582629779075843679880350785338137706347677191008358862427583030457064608492104998393110743563022854123887561703761646748385856181600169247420975183696895571133604719419763737457257930070955907197874855481483027808285875103176492536920933368712434388093916710356491114696184170238460687429262104897482728130959559389474337844567618604279596619939653290529006898718114816298885177945141918555417786247660929871081962871380663461893216247852935688999362712942558565608561975328753733691329981683534796589653172188200118702350444296553786251184958433729889748391001382611435209048060166275314104161382660900430462229882745295630035407522617027608060981683285496725743824440746210247327715002609569122407102502543615387299025321343485931281934289345154853664883240302754186769326969548636939049217524681718219674515780733955305030530623860759665952565806407924345522522824580422957373309858952483562835434421665807703211636773762085843978820318713809383068308080546732689116211849725766991200772385484984882138997291889028035438600312857200247200682065287660293142449274582950373793204015287576351996435860665048094810603188551070262790062087509888804217771789612577384853833588705558402449365145816822988439157379067281826902973643932981080334362159888412481624707456588685547278156406832417152798433184881881210685033193021149189047172618098633442720185606368433456674714564704594824924820469616111136971321494064404961477773266807380203946967342767715981982673714529209173353546036425387876268982134602058138612376385026717813061714916082115754378187870503809801384692875403658719870001432572058746899571113476074656595263116218770203457293614903239423517103579998230821096425989595446107171284975330541020008053509625284907237327716250215114163929721766246375183603782141776409522256708886160187657042036813259271676958660108655759827437604974215221942247406173117031402285971656041644128878921652928732654905290555300324072705387546346248716160103345663371707114951752101975483404998405981799435251976542772179157643253148914326240486013482373941550321976837933779342143627898555243124771712528089837333189589415703347141939020798446185338993096952658584594997107459188248394037629678130899857830741909268233348652508495799772268495196937924883768764813586792819586881924206356085604631682393100748025559967804627421024069567421566438582159129405945167863534038450119445772146257024183865403217072263092090966137247465748283221529914055880293503141352975753489108233606503950149844334514778169393575799883624247252144663977228071937883644284816423763537919133137054482352647554685838484038331477611206521262421527999152647995218911498119943591882537461597654809818057385873994658193738331097658433494560341993581331775069175191762404699831372070238038865403708907904891696651933279865510860851595181445062299506449234956029872846320470533214904472314957311675855743981867033103689408563867339666652735710697697417217381534466634130352539507506072563449127672134719672875424525667348558320831772232592409693774546985381796467506676935918410961823209095130421123245712002077448199879223530879475589656454878238100927823573125557180029656574321024161690569927622373115532597609394695732909616135843398695973543484374174195814316429697120915736327686391981201498529616948830484173450041320122895342134699946015696005371136035416957002881824362059881123964010914099404921581748331799633109675629830904827055356343921500578854940245904049068216444234295558167312585070317085817121206855727278467091915488880464269695455542312304965280946319355492722091682828157296172103857392349577741472675719802774747788465100023093208660546077495276650611025551210539982078065540232731046697864514008677022781967061311136124339865509796670800016570130081293968036374627277170987632331901403356920275694401349407804407543966439651682815051780833571036879410201094812487312042391200620653586678621530011614269619370356735885748009411969846658081676045843651807279646430870315223683960787206696112501341698867429120594863204966771727697498026996140742175240267132318872935690335362040933853394632504549782002226017830819534174569790461209668273720013243029293217177633288498186624856048717996524278042880987253187950967222662662049361389758692216342382175888411277847507859271181701138258945352396436848136886411949876852085697306382735098473967709199575331993973227363403839312297085457917172174467312937273792700633092275631795792640140110827973370389012659200115114496124337318594489993584026347788846021977031389651295985336216375256978513986274721042990801336461803186872673859487817517476748654956410912998623324815974495874548018142545739186124806554580429563181959959479605638947957354727184838579991315632953572886300876455198627770637277626074214115160468088198217690123814235759682128732198484665401024454846925725089294808695442221920494301096088875893217671581757183488215509492905899802741125520367228796140551758275242257222798293062526749302841929653426600563183736505435794436397974915565403318751670553120574194791651353014602227608945443917322125097639474398774646066082058763398406522614850334501752002648488032129085861333915594447422290150983108978258986269985392053806382427824060015357279426508159290995094361599321914874636552308165619608003289981829509229979700158897842448548844444212121895207976778328636537064016348074899357308488101894881720050797155820549027653229514569050173576739405388707807547237425382583950500047494279758513434094045830188110156097030433546508417927595253228290371159867134274723374896763453903674043379411468056784547930931183153131137579723763664937923443916155238950437986724630423295189607003018018021441771282142850694960211372302688492554008312508384058490068496665947440690741447678537538896861088837656747968265815641970440557945902839663656606303420701178589539979574477553712944782797116751617588412679851861424626252094586304926909534067203445263680385107629474156297508764277028878404421399765152488661972830738769330842229137523578667513700351052653285242733485020531170046167084384609080707699970547401023278284162925755729007464150423746794945512185650686178525202896845452724368110815031385794361863099355847194948241823762088736881150826120741969495156186612827566877012959962732820333408065894054559501606585282947947593336559583088006882232901809543170247938661683858563408594535242690101002387279724100384918098183721039195768714195560686296532940424474428154032511309172601813192418573646252371667611419921706470825993478836287238474496969810368697109217379496554764683976942909431313982581569055017847292390826950817426610595641125202979571124218863445959528227746225050828054830241257749498780446356610417945468288772970310772725126933722079222165355559883274642787211931907888654535020270658655498682986565694017400628185184471258069026583202666271511720749603804732823333773614723864125453008204954695710357031463561554089723914559914063485808581724619774545710963435739413932592111206165279448746261328776428124257840239593087554004251713467757790721414959966725301118969067459107374314492944907616948914754695310247145579072935459806254089586486192554481524737041966447605033027457558763895293789156180687373090297313189720484662229537330788373929579220930405563446425661120525107830073163997382573741753220478030475376866413785019119706203341968346379699208869931764205430441937271558630728091702992347879573736951665328855977328346451563233432995106135887094329418388275176540773663435144786941913173819455900934606908164192137378498092103573667369334043481598227430341119260437139753235677726052646805983249929935576905221204596599616137333133868341150904119338539947748390035329771731819129089582816688309889598721795458653778915924611458174479292654004719585679038823178804272436601113067664922269910576619241276042284038042217905291240256247343285645201416345735980238463049114220723401983928216794163004412253246651779910824974337172581051554325203876677521353845214739026563676016759911313385593941872185307284758438212344189900921497844943897271406641114348895316712650141782430910289172046926195761016713291278932257029840253984714341336231705699152259912293922336112501770877651676597739660604123297025935469895659165340684602279246205737734647813369111348330295377109032586339026535050567214877287074320759123635968902702891480242548412061701166271329481190287649884285926869130184121492813665395491145562488518177201272326265995987767576503106502027073011937803716229037304268535095900066930443406076837635741215582957223351460781120208665340818840414607434063379757982459441800986345754730774171471229304137914624162172913936505389807154269591361464723526622703271122303578236293319823434109782834717477654172981924983157803075800280314295305897722421827529539938263187002625856445788689891642207846071775359535156016220756028763647404706104888401850747776384138310441564333738604300323582857053774845381788546557114306682998473355764673850909460539369560836954334157747007359305824472641893599173773128381848514402649965300711620296325272667940398886494549115255478097539530929616619450075081360255596308051414316545257836665442128543877664691798575752590202419220693793628087380977927510578187943177517409819494250841736038175188950292839924601992107100474770724554959646601384725377777692825059308502672449722985104116949681833589183895779852823801764044448720159256084160867577515347127273132438692709285634003618403982723232994324721613618926025874945485992688024888858428824644409648886770033294456504213553385593903598571917917353772326909252050506150179667632984464974927719431318623956226758285334476434569011558272044279062227129536952779189266289086040361923542183691384807874472947421274423499053493347224867365122610954328016998767121874640728481707036184366116400717485297387620628813535499792095006485306271857409009599933746076261405324315868493460433376454723139569038139453621433042730201066137993017941279756028393170681089425389124067585962718073894692803766067911755598196351232578112432228568808000132793028287414480564966985018105341846892120304091923060751253872769535977886724272102844317162012882095646799677720823849389621295047807494018232719752063998235077750494228526074290771146746785009317644244056459571614207321551245315889273790330714543221028553551375622743832951590574624800566214691027339461498089755142175797233315115732709976145650303950760989438734196339090356702599352325812500359331791668677422037814437282031707006492699318820548714360236913640685830416763372663926031518716956519772295422650366316677498167097929052263305377582523067496984767625713175377385871851306015753330383413703160755664517007970379776934221735419521872317706088853777085183389330354792760239503061041572585575614154092234189485216240626496439279784185443989697480727275485173162546585971075071158939013142461229372962044091342324626800199932631926757145891360420668992917301680009601181464568376970041859837293248915281709636787857180698088677846109830211477517782561682322733563140122801666435032480157458324336619512712018150914561178555316109739321647769185739282370521118961431296451549449086972090803181329011254531983988154660448553375668114833507852054052226730856843816020295336362857023256597914039475226846340931633095080737436421094643184159375593480308289542240387349067015167647922406814558470347994649814973467168177049858836247672452120690341627976425276766232461224148422332360269713866074015763281704444696522062046565480217148164664069827031818665277820216699604378281739987522243779463003361651738278607798078555550635277938671352721237945277071951104524413186047203379196735028338917298768776487947708021806656736950670004031180481269611840562800311098796292862122303181166780889537263635906844797192023688521022896021902791795450626514828858091139167789591037938719364093693929941487470870819147230344564407695993767082691139358711506146774491458064341466286869849850579548418506730010513445602509173880599362007246334360169137761499951308266731740455224911908482504934421290536334479280745347838749604454211731689547324459132697241411279190659863875328471192097293126859584093627651875014847504022223085982055420171969867401911599475600206446721059166460859823821413491689244751838085415365898920304346541168393482211161694400972779075522841871698103865273932832357174861581434120962857668886826030418660072917167889153811043783272221305622412586286621097235606712067224619138099775855991132978780851153323377138103264825622799559705173829544845205704800643636290826473910874183161927855564867012611523502186312867566398048277682329300060558501201441381069825052956849948359389525434203744864996056574356555039617684017448039236217521468663908230723337378904594919296588860041459521779485532312042996489851024823235742184464083657275072280090470272357224462566763334867496034073824177578486949788577198178199130299618516940531806818053725185329310064731427551138253446900814313125293500965213754029395351928270755751898907034509849547918140282005118648867244942821480975581302211703100975415925494439346194236901704369750750829934750784667153196015765332153347980909126837853656420741452158577771734418623995005594954143159170488714421069292433913319729362565268636291667737038571295975301912953138708033645493943537891289699846510160082129509567994075646804229848539072762746856289962383895777113096349570907045004767192368145932625685437910401473688738732615647102080601396233678942266226380147118944843689907295468005891734742725076495154112028211416329929911228492633639104087295132024119981138336516880033265400936804362856823497228105871452929759630005885704050193735183103636328049444465925496857191665233922398150641573928359418327065996086436187291363293388898150028923137668343569297436240492526687458079200793418081812015546590931719448521558007157431394440282510721295443549789848223398064921197433776727869565615243225672775947951303891035762268381523637875161929138182933369817811080421937410253936836393453215828185172154664829298807233114548593014456279457635905060173314875379917333124796814725330012356561661002143085205769005265373567298988782686689689044151036884272095877189858367148273766908012421025210456617519131155702393866412862909215317031599618758736464688442694338861033264637381484445040044192512762765507427666468588891303618390270259986706367186139305921716412845498920723731120577159566157361441688882041485557925484814648272267064923723986608952527231507588176319824670012962174518352988111536312199435511025994034378207989681340806586526022433381397275120464146226132821184850312722489747645096681664533693387972823151103542561794410054282465325962189900061180115069408512803306844851778833075752286533427851396830656535457413085273925519560035721725969910759065048973281635443872105359874069988525643676342316236086240656186579715480407476495363762565917867885005905307369581937563342420093614786530179003787812178849303218660054110340977756122442106302154672654880368474282955443553274874958796932131682873620701271235522975515036352011132442398714168625839755240111795148506177155199631181975120319782094363965320847968090939339206182827251051813648751029127863070749493115563344997815755216641246158273568170878286200331109432921605000652330945263304309443239359003615170573440698528367062828478598305429533610459939335954004608610845574191775661471196249939504358845784292479074066962153484968393688097967314666371331457735168926245209993499140080478163494152887346949053910346758941868371749699232611580671394521804420987463360980690059207234814108201786663530000330901402296266318663335623213612012934535716083387470738330419289708650072728463273547443520579076603621418729216465819595308032935093305154971607371628505181120201079146277642406496634719610225842372381551207687711097792837884449601513618549739535520697021844868863974545660926815134647153224083019230518139593452421858980991292038602279920006230292461838150668865794573037761631971662358659087915240355575098341133980852996954394483392917607116710745390731484062217132261719028020714308733596380546868077395982518991189728122211164109179197641522560193688838506250377932554581974473096019994276739991785140905344556990993823073514611239607440217266163933556112336107427312581822140616171369206182896031739570762556907829794772817268958500079587567187211449861116581496752575004366211696157844702581583363723554146096093946652848892379578979363178719684471511618299575954956274047939632514659392896497445500485823279342477262234078424242162881271463716985065973703789226552850374712441383540191092397773116846309241071270427038459047056523741922789088329762817333478683297428588285266500343587832866664912522579297640452660918892612129558915276787309041546865732904350637325716134329110714253053365890770579269387962440713192751924440364254981488191718119921131464961869684694874364022421570754835884746987796634050431252372504898566581827245162573019877427173886444706158473441374274577110521305281709552252892770674896061764062044859996917138525803622122819186853106751360929767225264056685064437355454364375931226286673653872219223789186363083243071475926037168636154411391506633037873136867446835784540520127355729682506345422733796481943871210402127899249071229737008152036727757536112079041117104968661245968985791527422803886454821547587673970358800646613037382466675409093882612777585720360577661860057637539643823412159343861586539458711776167342051614104886630470586840913840078521593318371616577399811609385501818678671206133830783523127520995743546882247457145411996109473661728192078954277075482809139758174132326587284638592120368044192312916862602018383997948948255079769106162884987313694662014555935427802043093275007274686446800941053813561188488907417566661903050275720968070268674486706949314411108140321011148524536925637883876532749115269653273344178127205599413660343898401558569610041238553290240407223329841314164560549943661246177903023308785377911870960153062717259855263939240454106629682344345764747226277691600563705255907289365001513716919605231686893290588330708895506853460712968980665932852320966725314829122060497814299792479980978416723986281042773949671872068003589572412301360760697305732483614727562533992156139285750653495446119332090650108565655138758628335447708134381772463555332874488805840640732310443057233305418165826802780881091546880435033477652428383754680816689786168856458325546600794156474506984210236420838758556248710132688313750333898827854259088587298189665332315610799499506467813517282469595605283007280321090161809204404531037990018611037329914114239075215056834343963720088281495614124269670423252279112134072296101022901839092168724250324604533576650577185899089234801955115226087717281919891400688684824596302881027882309109002792794338355111100321948623577769912927049032062943005414117608289238761560130671749921169599871875782998474012768998515877894490774193779655788541462480736705501810441486258430519463242490864721044104469898714522800822107937499383033917809011694573021675625385197626229923440035123515978220328626403807146697752899112731211202939811609239446481987077895180217018019310120295314911307027270362013253559861469553683350259148524817529010257534652555821905297470933355249391086342182861821348189401242478816207379697306975005000475179937792760161818437453792762097042147130263163704786405617769979500614398165117335959646722653121185215185577320344284922313827065965038368636240050784865859153708425416070746736803803188608087515537515819196198333863807165288243915138373250257708301651474742795591772124253301651246589419777792735868045622888265847900741170645169684806684945647293292509826976774153607884452640065734003784351953208932887078373155510560858401193871445399994069870374864907461060158246314491370600634130507287731927891003251164344912147196769603158269461487445276879043293724562361363525968070320110537425517652553155927098345200202577240543951414617242672875367901979714531433004082162924363336333777589321536792910760006588532911158214995593443309892806078307095141754796188195997399606364829390488075391410641494501391796549112346932536491122564681919310755832748867301025859395486724749929039415776416436014458784682677809570091732112066650503684290775553171458009487491939809189270918863713635609395873392240208127908393169984958510488502133660632184805306235628408659433953645979202690759146533511242456146900999714298314173058565162007782006246235445651753464740837864151708344068375801543545205538177949824025958583399788908145413172921232843024568933793505188022507380056685312856201984159737126963842244131614585449510998262647347024291899662745153535855800608002295264280024638767250222403990439254136059350352057219319060750705202728528006376417935006802078180905004538369777271765984737597881548937849156237666238604415138465279614947597250846516851899973183773518889306331872866448772228146948853897187389708647638824379275217529504343444534953122397964980694557185419029914005238379476690691882771677181982514385605158718882071961829635739371924923033965904092278959536349960319145679590991337631136522531836104701033052607523093224527967470933536226585321963241500529484302943428956751279131180614240812665626767387388104000844612193185096088770409432154581271886815296302175740800105933796834182522059200139864113576683439365917113040751720285724197851216749018348744679645172214600917132352048767570599567409125799245577794509084725944830567826098085032552254265331087045245540839316027448892306473494402680952149593302632800874608922319756057813862154210462677147789226682847318782431804558804309549810480648903084741546308548219131773312366929495848791959661724892022808757820816428362497613116808226675103750734079843708482572532129436538610829078680928583649522668135115233214892922424861695460575960161344790293955403524148296549470588832745650369536956482583889443950869506115327152046682560612197204447351195341149021417638019293223010342151176871138148519191710769470741041687155705450244312834714413418291206956847994092381447776043035990749473822093898013610770615355119387492916951136295971320004638235919833468829407960654588909095475344672939191096746863543102541250213683365786218146395846094719071404814811164570702837082669128770401354424313680016478589019527145326109260436973787633191212493138926834882232073414292852741900112824501465610291649193430275466462325041500745718764776951540876567641310201883649657934625448839156323156320916372648577089464046414590760438877295996959743478468680144866956690739482517465807297274662285296046931740808813587958327662308482170879536619619530238862898252154009222324484872427761734923962162886556454964037157566259947544542994276591190349889548645172995373457460719647110861269263058007340160825215839350355809689293307493937043411424995447131728642425023838028416127198920743948326488845510960013662505747229443652096836724636685609974942580770421666557967506715390425312608886377466221502978157609678743209770538896910124989758149040530334969424431489290549491947098813204140235504493616418862783762418708643278423347021940271394645718135055072334553344356091233959806804184233743093732681946118891401766899854135697164818252735161507019125394746412525488052447828302854032387942779714843387994020329621503320587110458131795162492287741248439516054019342790134449996457301733940395461682479016239933556194495661554655925619233800627136306405131607912426076756766086615913048992210227884037009512966315752626140272142106958763313597550213133286680821833780734149578462955526007267048323842968237385273594159022349923884367249640472228307483942375684376848593507856234896113401711805906057804257495832213947809984825557216738608372625035483323257344989994377779436203834128416149718153582876349047475075297011807843246407346453005349266567458272653027757536961881774015077318740238232671539369326946938841839199782095875631928635600601546915985403002290880313206251248641360022070708948036362433514239011369225331450776882351793756158317807778526565899930464748685852182131552283217166062280650943543105510472919435540028847687086096412744396569275739728768683964128413477159545053486797936933560371695924028387925387246773741884082712090503016273642038718939426964407134384150638300243779487698295182096414287679492166092095144694195736295038032304444960202629255672173940583252982799513724573354934047138476400963485742294159600769420474317198428323897005654830983767418811520116187043390574713870560691676620530261992715570276459480143359608724198248455657234182784600619514297573527825167944238164691163760494673602639634001298098299452472326093774917321075561887682884544859440118310345384079637243209044567424599636763580355543753144913510044106005833157490209244718019315202772377190633744215447755886757103879872343359186398933477854691223880139613816639616455006456421816566576824124914227155556038527208626073287390455788909734875495396125463019904400555119002528176137875411099410259055607016657160933668284918238502067833167777159994577391985388192935029726659384142260512617462398551242956411877812791167604583498555284368040305287098666601372243008428715465188730593390458466896231028490398047068495849544382915762973188160717544396570498274204799586495353222452693672425506907427003374705020098087481078426217791594124709470260937810575228783952625966993352258981138412751143581343127694046006730191930152673790776273635557803536109640279088248729926979568098594860976914631979266326643125504181018146275524701421819902163377932243053462977207179968369981302092436606444320086464925903956286992590784788251455421156127770009780545047354639345187259434217021620047561894552837288873643826081752855618609550933980421350764358538240448204279087125425857613924640831246073302111354350107505990001250412381379842393397359314758087794052039813398495334529467450062375203413651174986480660060848570561936022311716836657214877318053282148883768191076903802568175456512540643416440960678527826605957410656984190676307767367269280064931697455170610993119246279690979737278720534460973989753352450232088995271568579203406670119111889352319859137619233750670481462532974381858034702068062894708687890682459779934719834050038867144521544983105387168096771748759865275112724114412604077191668341752640463030495102372215553702396655425445017587059037080329937123525138931087450338739484053688906602165038011508397917385833011341983723742170906205357825866019273208964002913843179928458234110790383481167624708495985052825054182619792014564580070663104487268558668739905718228506571539489425355181153414236816944316224400332596856796338741813137978762186013395915846737799819673177010064329989887492333479636636910392780654563986549181852470275596116120757089194474522208847521276411161530706591132090928932047467644532153452685235487136134485609379271160225838156816548281256910674331017687175721654421704521865877765567826450034431111789222874545023401799349539542724146820214873396664073343734829982230388458924712424302253903951722880734663598864623142686121450101622153273516489011479502681707310434837001521262093276484248883909868230757898800841195990873655552997590119209575250219691891185312861620710558938172534246835669168392729043634424515085717436330968823089895374737441265178297444595136513417854046403576731397164991915954215489167325984667601540488921184709026868266449377600668947951957007411053658227443738657354271286667108310510142317948750821661660108355652747656836358702276010703607664834641706031749495216334354435674142636548027530917141521409208231912668490109069717174151747158893288552605279769860248720168585704917411254969168862755357247935272375674513494471490792976611990263130216357903188644044208093861275927343409680730494072994627668986200755029964478602527066867332283126933995148311253082244904149675443219985078001844195474787094240842721967339386659106883814494218527030388839268285405851719936979998960041449674253551981566084160319649573590627986573742495559396858998683958146838858341956209883657704483376284042828226710765531169086633635656556296011672756908538151377037407039567518003697717767996328283209572451095887296313061462903467152429714081096549969675535060448049037279232775697827129702332578376145854451014592543577195395263760484784648930640522530058235491952636092343336709251618886482923421938854216147169149620707530199316503176147672550610356794175728103192244846272245733102294710194406401929598991338942838293422095004651646385312948822043219129141421890411593271535996651070205044514486015702186279300655036406632229750842721393409898218753346838716147846783064528702710292086738251334530661799196856902159502468018435835731640970198833786071659738579878757367056774484609491562016824557329619000659314026253982501127476951283571504598478912248574686998523964027135813227304433476489558342841450785875660389832547172090189780989843224572113567498833456647921348292490133813668278514438325350458722078232705276095595389732044851049613546932956956203274400344417120541381400540497860159923573331265214963393917858184044041429655999215072803897567553260465133593269938660466564319106827979862570402512630625136315950992747730394781489925671111416161693537045281577184457994752874332280482725270526192383841731007848982336495069113595235511381868758441203125172075241619892437151170714919956243139042773165799563974202879891331606175139852090042519718533213246276789655638619730369903474298005344311493939028181808935348248847019231085312129895419522204051375455620423387581383936700739233412992202793378515993202791515824481102499021271236826273188540220603970981609063320148582656250910333361708040641372742817084050259542418209218450718773873433076616471453965276241255799304990692396805737629442031009983379679602356992575099362836638664449096616046692896472446259678480964792061671297298787382205907121406543155653795390076696149567101529067266097179494800883793115297137448378283345914991269841379521317022811058283566078818788455106777046523519444921089721779509101648686020037197064214887335788658982629478775102542908356311535379500132669162519627121152336677773782169806996348889496181747601051588190344156621456471014180628415294711343985217860873066548994244715010767336389922073206546880687911754139937875986637565411915597094653030106593938165022490085591587287424391021993676235674593671330162974531764743640076309190689015816972813277483969392916472474018498922037867338495370308252786756410293897803127833539255929364125702207708586776558184232056830967003447035655218187114742584786808072347925563004029925804528381002383971540242988164374479908677495032856021391292474771178474238282588466510701087395120407663706364566699760676887230599524105917807381169039593106742732630745920405678799518218537600529437463483343530313058633337497606408972709343316834634504370671457360103856027143141225081218558587138461331228660147497672193782339770214441145670976473247038319455476217049467581116406980416663755823010897238325583214383806429504160978074127089855138295941158500992406339890125329459020871978308564604874218537030439024016127857163495073329007308966141224308395244333379055960431948187307176423181242242291312937370752209966087026733510629670830354325729368590149156409675826604970890654504864912824907900980561286724807621093864791596863111247621605258632639025562966253483155501419694660016197010433793452949690070616456795807170767460871126835450920543065591676092331448834175140609393079342515128327854635360730175642301017606287829052214950302016934501743258156531848727572718073853212818737831496955882483559031758498461083700713926542820334492065694410201620211963858707207636895666882758983245180205004229447073775954481490599761018512120680793822398338822333066634313885727385765079697638465156710180875339085778910117190079452586097309807515814159726895989599066697189555412534286029757047834766370755187609272137901550277079176744597069924625052733299629542585698014163085737611054205313967917209872542484487805402039855683861359576647649890091246733627446829726872709455890494474285257116229652626487002728002554210316951539246932731973075642798201227044367901101508792169522891635067469436597380383059902624998252985489019925274115644924503637838932886599818805392058708089665880358987203222911723034435327054698991636930066641392501847918280384275872255653051922455845264532258733387315703519006564203647809782569880557457122071068909462758027551162656927166751458881865117587111761509155544417415162599319647593879280938678129775121822642708357726497605995490851531072895698971880954578778445395369994664274973407049616079221971515360872396631838380716825666611856014750147639806009744022404272978955495663481925025228525785458237542061542281937485436540785993669316315457895303377082064676206062148241561057095169629135279409263574902968752539983591328790770334689747346098163377131793542518490440781653456930847015965081705968449870831758811975320726728855296471631921884572433365152602860408218968443325732710050350003125667557226881222441909837022252813974803774202023532694503460700694645651329753575127390705249966063824607415340323570578228308996994226060347281641260827774272173030889565640931477936120840323962226087106899303023982650252491981915927038029384054802651808869783647405824935260614650649116412941145564057582395288764200061134421104169268094868080457314646237609019298791789094360176503828750983821270954823845588580802816294735884358226887380373100855757686806860492069406079208815279731120078701586467899433869952322612381055345795361313965638797652024377631848837191990730638851202120941998984127065470449166145780306595273029234818698578929150114511640155570705252146453166374688368341014420892506844439858103361764866918438348696179163468759563456667503052169595208152462553534425382505019128028444086167013954615076006694260816452934531215009036521502385463477896477374367397954262640219702297015699385283196528025274589624248401366874565367331823726289350959716739706748562936724816845986023989357204795082101999556741133639203574461436112095525202449470677434273903245465636334091892852007581898884117923614912559890011163004322257199416905762231224831997697872325530901498265928461078769981272249852447044273197278789589364091498626471577985549819162579379863893239014632627132308673723771254611940424189935232027023266183976466902375429265823269416553652603014300554452468956456307110292987899066644328452193135482139055495374429207471398449043670279310358934954478360797050477028915143429339538640595752946549440565648924876544176631339156631701655647279301480128650483053807522389849951751376251708438198574915198442872288689101095054689801685456008102610445226907135277914894827362100280884619386054817772229146602613067619588290098342043450325206209835127531388318771848117604678620164547610079175965838516462177938554188415460963561717527437016645497720350140512668201303929876363408231514292534273229623116973801402285077868316876541960803392247710597229870465651837072030428165999601306394373300914963840694280114713395450701572489422909362743956125224680764505029937373643720623399097803716084990983512072473597820840471465291975621662588816908901349965418106030976544520262688162494236636381666826566508870084209982901730014733987170625739311042039536067796289110984000861280192874645006673805955648242411075353239166860824956429323035414290308883742037935327621326649711534111335857701496286561978639058891596298490261694139934424554759937509741283235554499571745077025107456226083091600207487936318819093137899054435329119203299940707952379221148377899399631886681166197865215125964960307964586360635223569193228279229457061525711498450776201261011708821854657163168467147449038427731201825146029976720732264393293303856045650698822566589777845589098673527662486374312729064485874463861571176825987217126070978934140148542500508470111582290299180466153246824641600565875791970696810026586125120516093349526598423194820626053946145337064393981537028982758852245559416106672182152358584900378778548024518849752559616374392334004951636236372696350110575870325686933913326378788168923361098905047588398867315877729743383422913387639120967674074470130270594732324214643532800402260737488157417455471730411813340990192541106162054710001907128091839444160654903950235487971753924645341735484466556659717331182017255805187161871107453648730241661823152127924104574247527273002911467376583066448243457827675810147140257341117788032925667774393007434996760647448288299285214149927707392685616543204850111554518477617848654026715212988553669508948865275392002927506175238707239577506627263690975917528274616340455054226322853137824044306493537543712786880365804125081512652837286675537147623599712456022278488617196616692105124190869863695930968376925409922162539303717718490710246016364041021479443815961818017411102398002793518076696758221395240515696543894130494687507368695765903418511957120213879983784823916291111547373225596182335449542578231707594003884240841995532522066070787399539315151612074418096605756505021854284058087084541599450986418220617147940872840388850673966273343496728345842447328410028240739427626141016843342042223373063911783155253216383215325672033479373039263714033658489275073278718259002448184116868040880231492418062889301652298954014475743857618920525532624991333166726574712343739050719555494794389987326956232813236649152726454249118588427179177243790512633926723077708219098644012833365200326452602001237628841488087097051281955448560917505152446283978300677195499008062851609012883530862744350396024909663679555948335320471101276558117880143888707238877355903383358284516129628534488913921670480563083699318950620636886105065283464896249996977809697360056544135860168840899977071474313660982646659516242996103028465589978857632918455996741183740366854992679667152436129709490030806362347303294623695325126035451046162153405291052545731545723986211984690571585324811575033893687446455465997726798708587404824211985348281171930325716395441829855680490595983487543604104162615349566198325582181745457122625857863855844463214226034284691817653383428241591875448561126395385167566508647374768977811512348125982689015531817588372744073650666926916873846070540880088155579150309483569463325065527304109551028879846198992801599887717639965318028073419066446683473769301549679163397830321316438783380487082143239584842738565043384721133985185762209180091496913278710100730510993930268102372477749153126585934786415099201475150959784970396849441740595745028108001726143779231390088066012727576150226984929289793403929259373878698517550706388720896988338867411266625687292720346869323978555486644818130718902974281514445441616834499862984490305571732390104622560083955849571684297008803195106880528489754109113074589893747887540775988942439673946206821100074444825753654793651645381292572474090188911985072889221072087064359873329263698137486639967574152639903085571518795897874350893070558748882543216874108752479820774662086777160832474859784754833957436987638281701914336716494017155012179589779670570073474019721422258026993671933335955443256097292315312024163793231804827619514441675226834420224490175013392529214801688700942536240286583543854569273413124852405457728469937533454337089207372160360075149187207803991925907805292156738451849923845260315197685030957283812512412707093774287493185011320780867848455210614497681849508619423092621079239721029908524419516917539777737066152125327089152071188525099846690801301268684403844983554084086569376115961043537871823939642060277098970435000118637466072364949436729886253718582960320481559230617215853694437920138290000252798832646977745280940567244037761795502981457850501168653554956627440659070221914589447584864142785131520503383166454753744642625033903293625184972672842354156123287478895615644296628394226161954947817309454174513152606130455363973058609479303633355705474202495321690021746828360959402394133973915225302780009258387625081550641289415779044169056438680200748909492008470752627430903399551082413908571849270469682611403668686495269874538285159035441949124365391001739103926838295698265166167089394552081142124284491263026689961989450185791736482038828787398299995711677879786783250653981786139847426825034397089743173065251118294329178810218421059273510135275266831975212925697155574836627334019510343904361739780538281596362984797602869043137039467172222987207634545226664655244345263989243472869760506505774128440827704208075721556829534445310428375664384970867138869573326169438076979735283443129290190428978705555266970393415972325204752575463075070130544077683958623891413470246569971022950384185652593040011731515132037655920692975149763474178228923346484015180042606053664164467940850157396984992666784785204091016864380401165037395038890393285234597295011721181638963525467351626987545363075366523284615336183842641872553635848950162796015084645711036542145430115873494401729847340522667025657793472888468237214014564175202592626609639534310390930048736025322981331095722423435046198991583761024350238296977892386442470337301603888974244881009891779146775811874279064059562684011257912907246262104591372481966043169250594953631573443699043028825078486296866045344846683034450576608070967826966322033304333331863313707765703460330923613724601854720810260115408646759031600928141216781196030591959488050546636591623318586281042160232842900093385026800030927473922883049939472333751471295198632920548304584903068016033784826535917581423753915637423244248779042405458657980671288389764049542987844659439572027953377160683698787779837917307689773944340319170303301700685741577652952991386868161828935490593863875983204789840835077472661774989825063351083730449241051914768230039485638621340666185821312142623878273267685210163594429585976463675575398016798110515538221552015659857737933560273229406167656420170881384518417925343373956445969532414501082366274620835631732940606672616869841071257691648764572137722626102278273611841202837822457365652758786413951634752899177911552001153223237966912344814301786629904233616285771242387841561077658035264311116601674279471227321227037599116496671601063336611757495635461362335928011617729976162593799474620835342789065805147859135364907706420904330715437418116132086929176753381775614348046762068842446120614918850535924512996789973099228363863749718550519586998346387591878150308917033834110569773028293619850753917696507827417851177133294575451893834973521598693606387884111953771448909222510414934497804326437074910110821768105093877376262740686972258455119108230083949414349141369442609160238035395931561850303666350432038367968621670071033152056636901296424285395349051282731272034059527148561575861699090548440222742653531329341788803002318604233718503046498506226165452819853837594731383790130941813804189980093423320511796570047519124751608600594899994804010028866935019586795293815271598904382403730449399526920813642037976531311405386947888672192646919586831876503007354023723123077174989736344635919050617692865596955781307299695969226109945919140088897342074689225250789397855643022865779476703717309016259556959630164035554501668006260955820841415199777833642183968037482257310828680271355427175268970039536712603908924907785839539582345053251355699497966139120404518952071300336991985548576222932361056508023169072325730759854499469510027553040353080432807950989782718589157010941122630546957033229634911229843012461747068679630299585584201307724925253324529900777759499937785175503755152265918841123345241171404008352935881398062320710627588412600063595957886847987216036484959119347316925022751912323215761269333398278198719198829243169725526310309937091609262404820333758310487640587573869244836114658835030415590927426490259262070318418845489321375367999144128891479493785550802937693672291303327832307814441050554360055682183505616410273245523637945850407682204155892179441083155279279975565194744507315500796002255440688397181100442915641476426645486197214177451982382635444195164072677843704353047124460922271110058217682971662428222795259578847440268518857064629421945803739050426859335178965724072478187278313396671868478389920424594649903122690785798757737314253591877138871984113945790511649707588539805733309942448529497013050333092892188742615521578633635895346717528897596036303223219853520670407335096083281323813292362093849058165309117364001256886608666398266699375028707835802805067448639481920493527599277270057342189867337379113970026754309268739415687837407692855109579014332691378579554000105000261307176468126987781168777607021454258230196365036521024184603863650613152319542836085472532730308892594377782724349871873310367011213034510882830703475471297290864475088700214781145622248399340219470370578998173807597407954534775314597034830995328895328559632891561818540554551365649852155097280980602027383986853461478285412175849254250770352545349642064791431986238716569659494509446685745144211974795736476869262142427828788200749090626998608883449053162481177575345553839130716504651926104863790439830656851708826838643122000455140412736671025029241928601498772776298412614510757363354887239253169080707135759475843708014792352104318584887264184686412745331162722870565756966663519007720133459104481094191232646606235225088241263777985643920705313709572549155218562958057306657169184930254121452779125377920963028062031304658898413478618724655016917556958606813113312263203976367287349686627640318115212886357726012463198769033482892907098836621282557962430606685481342674013281555832267493525601513445661103683546599626693113169925111302280043261976679344599308752733983331864833765217123843336308170518706066781211410773235241769326992999970664587387682453876226713019207298386241237809755751930163731599756690908669843903931568464276017401847745500250182915919674669838504247049667186011162713038527617804665685610778931771759096757618434577215028324108058112958936958180648351492116279955230975453826821439705737357124106565617081812306352741123865529819195811010704260633386030714156438436707759864205889291144491761300570614570365124785195941627795429021448080925025187822007672398499980081071971447434421605939549745702434975397280130096677140605209871936036769206014976545058093584470591488180541038452823447915368398648259667569955163399270148835685767087791724005698458427872748727010425061402992486903972140892063508294049536771738187649226973906350178756744150264151903735102356965609095102428386957339462375682432575357669985929680411933327010368444701873111820915530368954443949009325531110666877931644069573564727010349025793454374362649308906527816341392707844251632368861762226958144254242946490311203702497684468402802407840735014561272442783344480216399075401145704190119366782145428344373023338727578248223293799024894940588484216454534360183235448548922628423365596626673617400923984286544537232694707327257953244785347080430078709683884285736388278065099125002325957456908797454336245642788243205332851319685464244526824616084100299305570392928105438519101101023187296335312479763572175017937467827461254024889652781499695135407238736195999267841926619188427021544079909766585866209237107871782630486059009522955190293005134409891537797180095319941617705627610021309440290679035573943309814459565882926251426899756241942315562663191478399558622305887691157292719654051466404189639162638878941032343355158611697480869864387844593379546688416559995645376280562418083595946459223718796262552872680092492235859946441933362347784794927471578111754045067050907713686366495618630063261579156050205121679296861889426749287400494619232948477861220519111844899180785793500526490278894277850126843017280744336695663039216883070952014996719650944930760595902336034932357190065817054881052438498810620080382772382922724020338308000133286694569158294241826505746232877866600338357871654136559097146239146144915348828463938644719950097002223822374026887922706589915277586792556501245454703649347137124510696766623754551659523959187102149412136905228867619040375830745065152545045355882160526709487985006418388641008280282211507034535676330613507350392360125267044258081966324419241064380550432046671687983003791706259226721464314234769764882447289423490531607980484432402626251297708665447028429892189617333481973180719098706409903995031783215237283158056038040155514739059545486682975515030493312082075166725546171828022744539071316687273963896854838135916002683296882921101621004929182651610002976910491887699329971906262563384187474404987132895491602612378554895900302857206178379457347803921415454708438233781380098901696243847147607277552372835651990006502676066792730386267163025378979595009530131457622370730473687106623105337187623675034986110817986487364450645437295321164031597284062413556484267464576951574771581442624462116071847359876687442676759116470414589795288836399607650711456964285381543465419191389913632111229645436554827198017666184801945845819562131628992600791730283233171099035865597772870195680509496746430291179642929741101652873096344487071483498121540064349592445861317904526920101371454717292562669181106340100572716662700398518382248469266554123978932436272965765857951123221303954569068865131349250870453576566368786511082201644111677696711546079410227843991029779391645324961234303243985462130214060070357660349650476941439391131855426856202565352337108316998627251340443945161962278756802239393085738092303997562931767546267842740523980386919840800518406539202535982987024625586078077566216114155336531976226717763995479401226827578948012228435816215532098452230903188183292530144109304563570336946687842862550432088225535961523990931385024087888905920973479852461607070975775761916680814847535201988798002534395539435343634603587082777707743607963848855497361418037487072105722616431375333543994535630497990182737936919667023049884519260081009430835785647616011031112063300729088498513458523074621594445267752577356689194772751813699969894356738635830243039827744196343924918719311666081783240342843625296505052406409095965810827845336573168078617689881370712368647210085809968041632618319329417903179510820254827992749002475662632444502017141763570561729705144410639108948050577168684595542498004270851251461967361547468112540575118990939733076933643169180636313086757723615159644068934877660906894437051697253413967862301327400142718963341839718735545012837823768088085439909628583577895971005770963333897826240773888959390959480543626471090063587022865933093119281613563546334059063222986065109871662400292374547450788638321970442638073399240984070715683024089995842398851040746221285217146314270793262206423670826820904571537973283740890381487059176007157496846348640803507183546718748408364544493057670271572746566249486953279788731212222836298810076382611417337193478769082423014391495255307846700476225686891128880491484529648289440550491815898418117150589482436662576322127609689199367419998610938461441362042158150862765397241010884906511117058641813904407552327668550286161180290384161506512369726651799403857182814278775152419511244431135225965836010086614324332874830945817191174995597990640692382077854343014687860830185184756698699244523279154703002092000871669170237874586894843192020788611183778881265434553153332723523946310089663939713584971511165451865797739597331127127500067462948375926492604035278016190830671517212506090378370727335844429412942361531448232186435196770162157268507700252992317357802160048632822372048405648305976161840309072011459199826576777728600073010800243471092095457081166912911113524991245450691313565922589487810219193346831207834702971987246795942430925182630908648128781605968402428082125362406723173111574287410377804910070365735044769415830482885051936503052116545421215323997396403808088729796347137061596322771690189170363265551213890693373191478228080263617463364664491041449571651948797919059242766541159394651452223515761527766025080666864215210034077837426843972315483125914765032488256168355992538248187543381529843817478639372811851476102793495567409377241373608335461181766989778752968467129613419570737036900495859624620340720054293732668231932064510801884252317714689123117295165645209762031940264283907127088012939080601491011592323280056924098132237130952872137354662423212939544607908186679099538885411182434755723699174611944492270627672241752639220022478699179237208367238454443614666028232751090267668692698957092904310409922598893555622523445133688076097867717334873668486277151120426025152926677505131769211430482285971655010690069644142575060912181070842676574552568238138941095687669958716512444918636083682630330137026954365551467208710870926642345117773721161209371382680126039046242113984178196498959996039581154574201491545792122107891359422372336151062034487437824768397448340370637164954098782117785577440768147871141962824693841231482327404349880997989936619973401745900526437141003830453045881726770055690220727695258812895271494156604723189947230672945931351428446293322236680438894386329916002510346900733411931617435172024941493292675301833643198904203337626497499281764077831313267796020444915499401320163721354594810957951379243836723243849379908165479353623844417709939274122442692073241959080630613890780299789654394144674206181232325589983271762028000053108738013726009542310325042096771950825150514420904370671521047308581628088476656742094866164702659324835935322852252745814535498264563570591397709633436871703952326768164548419075972683188745280074078764811118577542668273978031265343490520577416329424172757441083826008565411627956595445913646615633467763668661796426569249520684575886234942361347806496355974203007154209142619295043349985961886986073377728205497773534764980489585367205694163564330147401789808230483013397975871003227633822829275064154248280390527362628600357525033839801903655019335406332244257101419779792419409561549899783410274762889281465374521078087355769213393407291921965637733334667374202292547768418503101765389144121935759978552605398767004032808118338245059290048399376317799355614857345293312882594266107718897917145451083623482796025018797579218203561859883642501939145186309447176856295016201978850596506150483582369602613832599502487871288573951884897017068797253377843781032160565577907386220047990841490365421052422893344876377992752084826872995371013815712098514431344493731178579104920586627500775983192443949369880733500806182088145656422078793001109451487932561229076740858506915817069337125966133409107184029832592911411235520599144396888225241849261984557692359771864990488755815833523808626561734449022218804016155604804535271974295081644292644206260628637687073273440691797091028555452856026855269842163318865416577195635936023082354553194233017782118956529996846709618042593348324162665286197289533034359988648241837246823841412104574358343819641714936708518382725364379830215172179245482164363418692953660761425393597321887691835883017212827905131527713427899727478018849575236943798991133452362895536490238974396666963144046760240623967898048043424939111320320300127926650909386013758464513493300388794147376937687831512322691478348623810537924345786963812435892665527525505059232807533217766485980417817654669262662022901779031774942596173939476309235630257115486229992685875965335967781097622337560124036194433742913069658401108032115768271833968810073163304350728579585123612173215167127298074630808743329751114981361664522750616557748064687914581483492405472221516867805501296548113511345555611888172324045083940749858598657636448633773963603012202662727158739497536301566435814980064701413420205773303360237594789737294931599243778199766072490860754366803461674095148476174158519397826894357608217491426482930066077532203189856512184051947529156102142599265458767991939421977942911875564204200165868065176349248756211172861012493441940429218394839334359613719715999792290610858055643731197751605991185355662672133347363927916253228756501469094598069865036187286183237421671396778255891065434374091881621697781724300294818636688971302766626126658891491376501677155293505739960055505320069885813314078552810171962637118079540927492617120766880671893202596306049065395461994994520509906178122495328377797277992226386583144472302486752484315804908464274632732428279813097186807948232496020520546028282951138886452514461576903531217754616709117720266302872798554713897669982678304588231007809815235430954074296351596538725347343100989132118418730796705413974642700453004652315326461271944111505694205632532533177626789388633443822383797729698847929965245900830302097766529760865320570470379466712770882045535852644116617169854415590422789595970916702256873565350194629020750757000802046186236421609687824231637558450962975143435238873470735568417788435246939687829793788149374208132757229758170751437626296727863206517097080607465811854058111056135919292836960657841513374369596708106173259128412432043641710596908745357284304662754121211632155808897506656081713107857452648846238297571340849617084218575161284633407934376022426410848230383139575884129191623833927862222854982733934605347399690124923460844404307004708066838901941215031175443267576617008730658303220032953504123433017951542713960070372452613694261940190384485665853629284492952855965806181396254574587676333661804564510442337475741069093062166563417140114509824248546860011727297600777765042018741869839744982753220738158767389881418487341531012799987369885605265342792385772298254806141998567505670197730366209687457193102683920500183552116832718772978677614868952788433951580673230086336055257434079925288810519470538610448106162962920850741501249997878557711783526246818322150970813921349090280736529136068434771208713648173786692856083321538901844401277463331276890297418807527926907878706988368499298817695258595057113130706287241948380102242326151582855617853737578277815197461275086889797159559866978044522365369978480962826161670251712972397779645745069565045686897603450159751253566944126107492838387629980507498406248892462398159855275428392945474607079918849525669938480748443978424991895740640468592159625936843716425122576374424616951267678763056905404819445471848470189549015840988157261782777522086152817765664607554211450553861103616647078437198940505549993753819913128802464270645646223224583943407535103055222223367099010250322770052393617709728055945897517691816273883380836719769766321500520791753407192002116445862542804660379272802544976284110835798038568267076234662974223820408751490861032196381944800040727431761190827412589270368547277506576309314325326737343346132227150972497784845293601492149200045005425178724528321013214314701849013313956954945013204607147145211311080450205801057214432147775109676763222740320912444635600289215528199886487914982613838556284974143331296616457993492819219294090192942590424727788646263707137465802745674892707354519390906504911575032918309162028858216517432158662496753743785294026796837049377588239684960353494277744949597581370772240911931513708120494951691702646348022663929557391473089708306853957628925387251541119977214398471541308983823697469646497976256736127216838211948574186118601001388770077519325405821171704771467979523327460465875312285049115440279124457756833402137121968778208991466282926344539711181706129109677483973496252099710643114818747842770906617488988507531139395344200667366125823388260765175404040034327592916584370485472834583864489235891330898090734235638384687721459677389971175487388691207673372770799215457539545792495504654692865416997180673602873982553723179982205968646721705077458336161600005516154983149119870646617702682898752621671777135392463769323057194120249712505731199892774569727190080281301435948357868637694109425638812167945844543017627372527592856044437872615322431052236660709646857011876656158152231878070877560866365642937008659233048794501179563494011546066057618146563176900426727102990968121066584896427824441962666842744307811934838069798121923269895042875954272562261476421809123933424772887386968482566087745445562354328685221995882745780208123303515907573837759735695098452077678216308121528369327402585732939032989538554233545474744019478316901343119591378745399586631711801499755025776443903488014035118191853271470020576973783505657199066852345909479027122080019413915943909519957177321973429499566893964846005138808541939756637843226582954215680908862470287748296128470140880067640756789510277351455455467997201282798837385395049502657064094083774712529485320211989518768861635738609436712395847484893030156571417706827196485586653587259974473539498035187846186124092755562195604642149236433208332423176342975876517295822739638322587191296652446684102832143702216939074642165276766304152525269683851114410775396745473091977289267482410307274089352550168042123458113851440336684229535028001104233776209762700789668418545767476543200973948425322564395871550907465467969726218056527350941984275246637136639377523315193044386978431387144794168225080116856684911030032891630437197531800840386479887084122504093721746338434359238589589020084994357458139505058791374285167665276844241234533011810235599074562939785842135093445125191934164113458920591607833478540710120986311674010848171169181208074684676270928710175171709950699401251105346851470614990770260639499347208609724403514103751551742067618842558454441459281591172192946957841670507245656413485272429614175751335946058565122493116069551005519727492200106164059545101984656701812100501628657372041487088289516721313649174445717753602107020910338194905569233895960423327323762544614656124987896875867335593876882479699990785494018543191876687004934437662869105988316040420493162200701819482749342472900261428196563025560231968172067469012080397042901315829533031639768573775593265683342633553356749925376830124538849545935008528053861460546464844372830335116491795728495899650807945282504119855732792318583943891757724954742925376942717248690089136191733136353028531001743690520772428860573669972898903557047374495612002745381298171858054651809021873041766821700493658866866823416711097135296685110259581990701444099416638159450010824439451676604142813248417508401906696542020419139461942047445371372181855789900431813051600233852941985501485030989206647033672388005043401532605620253507425514782401175702419174750217680558987541899718608301382576029955175901941182233214372964458058110931918308211523772023264316601262317680748327968227591121597452037883539241312327315845481661815249270139051427067346833566165509379453951293792330212494031890407104774920440367946370902836005058723967687660052304352597640678442649348956493182193706349291572876162636830239610226028891212586753273632563068455986464500910058383585275256348880396968349419393005147084622835119074377498524076876024036093115864626667305978455177534705485154081209489860880973723362237781527023678119497311931958648047264049128171318963148076461276598674791039175093824196136836506593996235643113460573363119012427527738306986963370887015432415230362051582872530093007377219640262239650189601697869759960044367282569799825533143548169904536897583780797150360818960174685593907443452051186055033390765687654311042698418756089132319227824422427498083547511822497803334014329886397218600484605413162555989731003125135460200038395793271503624566507128225174807023278870947447104619832691180891015424066149128788139174739608326680398805176776169558746622167734958547604606622346801535458816288939658230355542580694759373265458112474082622469237471902939137033731020420962820187725503949539421913282055054654259476487340766189011134898606795688771995314453834075131840444772830962788733119950713629072895121930347123867185250994464482615721299240352187425939394179531082927779521937917347683765828547451749135286610150987181738817739265396138175522728430125189812458606846255534462018231010048923904648011056376784160714773626359392433389970006561382400609023204671292069600520499133095516547897928163611764770289165614901164412612713283692900757948495979456040122097522557201894379877364313114330033312410568926414930155632380120751897938512756007190484402837968174477930617364207056286948223286378353323557605783064934581202906624954362599020545802538555255714709117665889328909809167509437422615145009882844944429671085081787832644545797536549166989180894595033186876208562299310139949107109178941189534978904252361078502704606178826106802214512393023858327607924048582314954596084413289911740413242404493253239503166281072163261801501443287779946370093588463296214810652628100503035364430063744147523331433146293499873044693992186900475546816514944129627867039652172287275365319153003774647385589773553885518465079886438571625394654395924257128447124558164198709699880924798878134290013941585105082752815273233065192410463157735612367501533057488411522895314970152402842285556348258575588089904776022706642042524095665529187647717057258046209402196071080799184179747681776743551076615266962826193040089302192207323462383077534349342468861223417410718690034909576787968901193533078389212874748908855806748340540722891897872155504113658577064737118211425357572779259088000902404758907224718172749009136205985698538719080395289820581725928329049783430739838042899941154247613582608553006309809591116060711006713390401936805181789090927429987686961080580271244373551237926752185890974959235998309645966603703038837681410241083824587586447708068830589103452243384958687569357860090448661120610779251160543578418896207761289919905628671773556821556543929309875161314365222511790109423133216920649623905587738911940485890881455385117232906942516118606482291258980134198707541657935605595615580837761944989805382186778273983836363497095317054061965732991763964908487949537217721482158935564045824352142009240571711425747998321991312457592412096957874960039234802804113597216857745321126242694306188911344872690924382823193789351148267150337594526008033473838938426598965636169406579104254676726576275044887695152900989504096097148259688652363015177283689603863356034416886538110084634843907624182074426809142094330063526041625820993170982639724345708236101897584244491751273341244977057253574173752488580507560394915355549886543421171791303936485694404599843020040824571899029754405733907978699690806516540393565579602360292627472304034939276622759880036442737727333258820312403472256184709187032739335522095322850471904301386865952354230171447636035271659928245662260821184061063445599123607533996200638379310705292017738491490032020400910933424479228837587788625398388889206951284057664830075555585827474704439138834670114270701649230295904460229636371531092293320807461269100055606398895558511227747591411199079433455854984330542218242328535795312033312050375689613818089248778492357375854859183594783592176917355751317237585770416748700015123814327205155341782385080184478326171791531848353101235259257404166234436589124508944694966682288571700372503151490950569441978589792773858417119816011585771900223210984124103369915980867776913987169479233027657764937848011578045015582391336335710151116585074001019394940565736897400797420891185795786125686894188698710934506559269142050495474596744965587280353934327995360388103493264010096024391497249984872594443562718541775928841936733491508742652589376414743428437278121006181947953910326292370195532105649013526480511687744739190357222173414410357469493987751482898446367908970173916010486850216329097589439928062084077847810890065923020744849698609151918610922021631071420417329780235925747376396547110765228708496652706814829614483567717875699182846298042293430590129808427792944405548698076931074465550994045427049361351886342335148393746724654549670542334678265331849500858361788234057855692164497765346087711837359314494360856030357519848125838411579086965296648649206938908518564544229092865730272623646410816110388752933278877316049005949594874148316982791055746536625194544543246395644995136696972328165509352637206393224922981655651839513617315683769704276973567963111525223149932056258762500558096333850185605844482238139407414935563143511753802536559198109012731082613640095987219486479837754008418059635746170973215750589245124364412964747647657254856546751765497022561461941414165448212425182337381395443153097191418071387646912435213293024774284948999793375662101451968148520230551592377145563833605404215090494168039967195506173137478823155017013114808443960502541859026612387699427092653229776728984845903632091909390121329476516314074125451897090820276212237508725219177006409154362047171487883553354832517831422585298630679976268948748249809722937333414752016217173045960984409004140720777338276697426475835057415607475761305579821507286112253457741114742339364907051202055312168181459426667891664765786142097664876287173114496505136327549262845881378151869672868662457446535798838798518021706697088408538214944595118835523606556420674253108204490206304488380851883747599126091783380566803021464189215221587802448273187484857735312297045274608716819389276610636567952916224418008789169744070728063907490578504641837270820939470547125693358047287394657437357617280341301581811755186171130567506301140670691698964327425100453396287503651201944672490419113421559460059943293916708932132605437368182251841954384952428342978221529325288933635945109183840399098901233908347158360917267694078530021801859029598454814897615011167178666361123310045078696785146422816968925165562734022565640943824469096273520209979627979649814047583854888865931210329748958231896549945062472266204844741467586534959278930326671865061026648700446719173146372861693490826487720966471189250737904866422168333890229628139710922455177180017076757766604199525607690406313419704843273105151118795318844043030618185364603279478676600733460497932489300701068947663039894185747428293630651466027937645299828669144317348834253192607529483678505992936552024245331001950447280349771929743355797283536580186470444247588060114487462669709278769345729401258257292161139561964950613857314068624230140367596106418686533631382115258965887799795116253682189906366184905273528122863595568771635877654271440083485888890927807190748746187764521078662305829168369776859505874337479805201373618559445943403031526553173203455416432659023891599586570205774716247785426509401401814971257736149753129386690421553764496206622367206732684776914600168437454286423485850611662294184230625686095911742946621341780906000978650720868873815736640160868009166825236943521310211602770847008698487991680936136271699807517306995754588847064738388231545913678141775082988045411226098686353551604679339907067711728200604043827386522284363438331753450234422558034795628961426815272079506769607694464400060991917333152370100724896942888703977150971594638328614480246191413716015309386433369885589004888412710103141807009137018447537368078004408975511470252823098354926614111266122465108087997795366177224301286577676333098370005128742222139193631279229106814701812604793094528385682369965623942945038913394120033531842009845399446380308186201894555096005270974638173698909623723087560206942527463929659674666014034972059638428361423687826677916315739660476896768278764052018029132928557811513179150264087159187191449369599068647188203652365850337536496410093757069871818344137599735227197049722851216535076336866548621057351418074771712901008285415513487562215899420485739029549015665730759575051110922013419064362994240093894633654203630423098343703170125219446231955302483555216814867652402506339580450750628153422984162054156500126683232038550239276100205639559552823942499329666861269175114217151164357106495634225241050254796056854472171242015138117944078798745900862939298242298229738629789825076203604223340945432263982275436219155665171392162868326880395705145450105840217404720027201397605455487455109040771283429214179934018566785704342811488361304854309064293191604877434964557952724425279170222506577303309361145028997168054288291587166526238232651069915954087204025826512109083067616402760881313439418953487681730994801814179979621569926918542230989560956625230263195562417075142252248676102305424344442879851917955093719588907730333167475536219802163010654437505405328172189012295183372686359384160980334479224127031070733563019477408203725798867240241863360886678388860759104679873537056753529064331798657297719798587220556379546013726399147120914694535620818705080372688826941226686426380423452690084407541039349257235377052012856992579405464866943293079110231504814552038770168753678195375428604809193915641691674035656180368986379574319407228119545261664829615188607153855371507227136155619075465864792022932172756213718033902684561648448875574927645386249224223681551059165812246822475549909210286962777526565663515029912387214296377514741232285139179395701963790778137899150727057254434608909447172874036582046158140112516206781118021789526840769573639297725107648719197499358874291538121877479176699705273662030224898563742313453889464585491201434237629817734956102663367372501311764703820175327512243568761630850126942616875771370705251021668659919656259527760544178997287442283696388166686031438557470693883107940597166267855058732239593690633459512452637358534570198398685707095857445333546575147340816107746477840722952273816083698314022883115734899670882874385305888279005516640606237257130804503398830248876977843174636239220690553262380115450441668790852648089874620893874589729745306345800140237195163185879328418785315179033610468987915138914190581277282583460500987675878271419500141799943081535613471711609920713817058893451448340368739707390177125180325829871745950957375382104317285213859346328224282988011232223753115621843105328353425611420661171604154806856257060222010047355550412211628903168858545517401532126224807100741399098227449373168571405023406400847686195523350855070205904910588152185344405114545174395156755428402762599540876777541861617783327228066716690848448851565571380953768574488429940967140090553823878282622051067217776295652053233168608004590312146884812641197988617493459404467956392045108033492470601307669505696991476066664633959778826508383340604736379542951172389893801648815718712659664900162560664687777755271043351643255321026794736320271252321374271468893867250168940439660377397856839973059805048604828483916609344783214297151601084372925523263534484955910133674672113170459938705876064271894173180663354187038344516835527905747013371948984572291194435359654140877910858767573739290966614752396125132618338290429315065748268832785794562934240887199170656998759565271992433553244732871280740555380975659583243235689192035215426084811986603166582746851787351722586536719695287186180045463682809763553256234621405481264511414420395705185514285856849483252644428060861283722205251883304003618391699109899131703864354435347274076352053653049370783325672531445185941166679618298216325129360838499367956639760314369284396113836577625690215198172517733383833750979481811527096470955241417496001377278242793761812261210030837949747931633874841830431191799254604632862437685657703627603876185663974548530117202985048667896614654109983234438612104177459440550303045233013612046829665079448198991022610205777705277114125305682695508554556119415476986724876564842325269492735453776804083770075613172912055854068326374738374768346296031644313424154515932896720968377134508984452042919177978311720309821267967897531228234011244845936994464324504446039928482400601337940492185239531537224502516128977350468448968421370118352287868903742448569648142179401635520088248707357189766499387588556015662186748850000182359277679047985186380810732661830656394519181056585077320532602914965161698786349245435469316802953309742169406771799526206459711802381240067127084880036127683236932777992872709026458368700848097998241430867762458938603278941510943451912108071693656432930147591293269812416513779263027198828345871616481577117225719958131571443207886096483081366469796178877314141615642875648053781003922875821871029916683686658507794439666535742691033369786506814014693825545677109079807236646168429939669132767435919824282028285826576538340420809611663071279919960298439120791500060584370811113686316100292323136708611346847140975858231798505375657355579362601892617779091902249731495028206356898424382140242452526922982766450445108724752335556980637633361737143276212977055746416018619222673093541875590758779274961404013931005315308249503192527377991960784901181193019338892494848259788918702613624098190977835456000028906007827017139423783718794752786820822971159650000118310253569489497463646985569034035531918990249222653687238680381766127186030599098830510773965292276650126797223783919342133570143585651985004427325456653728779142620319990775458006785000015379511093613933888478968820327329778912370925737992602900396281480910179219051220885279967107558838045573159922576741504197565298368235199368691118837252979000556278449236495588813412274206094796020334849251502311563068881383683783410074008048749933135193934044039380692485345804933969713150559876567731614233663766332599773303044402019509922003335185837805491891715390630353164268694191796536957009387831276546056146993798966165132788177168120934164651542494556057566305569716252340233144028747239567773622110055640846251595525450481577095524086026748105481309463996094449839764406503282890641117531244535446654350082649407903657890824914777956546582389810674812355207283887746308481350542966904278946032460372500099800789108545603613152298125361101196781012871186584355964680796540340859075212531364950352762725162402718247513003210676976187515299134366779253404720174792286045901211136997248420126519390070903368401865544680524415965370422148443909374026491153231946743150279223400592542365880810601743433540846960157884846005507752408893498663616095033604596182485450188239975810721279123332160025849194066152953455671664298696208864577403834480201683986333043646213728063087850474541765652144979519478656490016343215422757910775912960088244622609460865393492142241087962900298336196064337623071537935540781801481216857365190671406263242020563807685247067343460800260801458877002523990324293930991129119826843307579049285247598252078466746007837103606844752912288905224409708516808127447177766940294342425728584333895978196930123238736561946926633492554688821340740530456204171733670023589901951635220979830875257734161054248133986126089583215600968505543871153817015167370688131277208705857046012673285259454420016069048491930284669938176072702796786266159458024049256062099837400932774871088605542033131061112260541763005712318991923225637200771719757329850471736722069799546664022517809592761231373042307164852433056308345385473030889688698825101512405947694531324300693449590414247198592568894955522419330530667826087745787390783849151388236551767375656663425351398514428231388951670839063555963954763501348237797187572070551576932487723743956666515038789088345510341592120185258751938489179662941803954466189175312738386801953745663010753118456028617815717192716194780215615096809298524311674285352748901523988550545809007982462633822650911023255871637731985126411638560039263020913563865115443258530789477795258554651081504766194190967190096239282479235223734869200462291815006212010498494321736598713181489901816951240735660060247280851867644583919507357958191750824110431697159436032281693572737073568724868061097778861688600504368108264165537868563145993267097459236452572046696745318084439773710689058690908752083562063976068008047142903423076099333121478297631420904628878255607063491586916770509478892241217831258153907991558311803041717898355379935571767241975861099981402770136519120436558212557848556465382881699675511605843520265514889846258334003386246804057802333761266595889475377729885003402527768115129692726956910146582328101025524017732774903025227470463623693973110979883444180775415608399434229982618236632466597133362999182892895337591077002455435927326114527394403027683291256837818718895035452442645486666801523154767489048714406701330034623674734923645277569996034729162685623410666710990762766569195516148941685422145749550120517083547710149672902494866832027034634139459810751672021807257036885547629139322238497267050504942348391674042643616133803794767428767687531626137663685475031758121599808130429100027601363809327973635395278556268299287471528535198392495605894768654860088188542925093822203902360765285011041295939782613251172801527687117329105802841448702907058441483649705301891095950154784656857966199668198618159816946117344063957397266561858731059557412121631575759824680504871889867091821004654017455300689680736925029309043875797106871219157294867112593488079191476216102793587248647768389012375340422134706141582599643822937077976092061468921629351447955100818670549835332687534702164274781482608119854347208893426102126562904565898639625137414872738562183067921780683420224800921981924697987794133064493367239107996354608967536020199312471602729491381565370966497538225713437157155154157818475099872478621625962629613726620044498564390727292930904451600071472901657814564480603891909424495570342915893770643335042935247965893856281640285593538658772672982659328022558684109720170170754470055084616788872334859180721410791336467260163093835844431810648141665083817344434211964411706012145562118701520005893797758368474488452224461221208212695010512262349954275726872105383946725177397799997799675610346521615774200865970479699087125603746408883585007377174793965603914324317631594728267257792436264527939010971448929396840193767110014879467490137595967149915375129754833822619968490365559510345682015533893967182344285789261024123389269334465864235024340897850497523494772965168947071171513640004343220762456505556558375118489590983929072656806546472797891687888039679434677838398562061524454641082196716205229661196958222086824237609883164316136640195009113869056456174661381910512449161504751945206549427585927605583953102970108781166306197740732905787183739921357323980617326916659702642050461437644848473165431113521674318499296316789171981001607062690909354807721701914017327673653653350489914512164766656993931324431586978169697584431739989823577173395074416216781819065302520008795779372193987935814571299687168252261184968859825272180394297729188545619462207415631193159111634205942156912644212253895835328512460047010580832669095705966344620796726164491023745039463518716347332362465418134733274995274663462608678940573819757728092835221453304347392231678441745133290979116415623694832678560652331826208342351057308952272241291586728486747359772822870865625360129858412763644228860909937720557746197101612682535077237199364253704057910941642350539313152335889767340135430622201214048650871976667213151067953649487216481215667501198516526710597212455435165582028403601471698383074854978670049783500336352628359600454332382577623882327215296184152430120464842711848390024257333812108619651266031327863210778451100126212198479196407798520043997496979676344207068438604152116668873302187033654863163783437771528125371936333381936149790297254906292823879495224817973084886229599976946963080405757600456725486305052366552966544230315935568438280403521705719340085120876653658562281144654466798000406501700442439643745075784594785024678851007488093873206172223839580504068641034328200713936263965165063392363892260896424978003992233297863703209538842176750564457696440243035558337659495220855670679480948484001183724827567557145900401962981588331448781138162851590562190204707868720435493387568790322081163885566371285799271209652489250619154971568656043134731724912272869746214850973475604433618607046635393186086916613327416873964143749848987806479880983317668346170042524302534235488459836144394949706611754932023290629100690759006107054197443637236490337620096177958762257816956991139791998138336165756584791416363138302586291696349313034350014348536893483478372489596539149069938413730818509436912793543577410760159577177696712328753168441873205422883250562269651529512117625783123316142006830428335455192836918228972703497058183381476952509574831221981214570934328777363596961190071700491527545131572398167856870175250501402696712979148571079573715650858831688044506518320643492661377996836660643649266927658473313562976012141972363810292757879280970017736753850907178756161220345219315533041157252494319750798503387246154396901630833000837382174092859015717100340721921052118613204300360654117165719792352363086944990029661020179871581518225410116717716210212528082101148178442891342775143281559428757329857799302260146769349076207352749063429269592552484182635107942319157470716348698786644630538574435418571748631621402273505425381002917626707771935337988195458576577019372453054401569442021903998539727338829605816976498694657548548500908234540731058323292869830969015561804258583836259499660202187156151925176516574132621842720249149192093748668959331972340697021129117707381371214170742958281612879124067204111037622695825623489452703107746304056520011849473668018712383397276327936217981416635606560920077823046297144233071263599096930233875567353136805574914499256259142161034194439335716754220866493046120758560423823921489458973740171405693714032424574088189606187535015303907323337795402664109532601135562616263907538823329329594411641718116357099592852525688499640679222630978568288465687890392422406159444833078414995824461072896676877771093633219233177851516503197266388587130469464377561592847564699096702794196790493522642972891714365587759650195577363165454432701691900050159074878577535015266150879414290908067948661501164166120005457408590038439375697267982211921052856832566157492254476626313099345323903540410267806679062589918033152796979160336662389220667844201295304432289116059868703095573864164526052721299962623521907956073005559622996395150366034587660152377680287070687915390222855329995708920438284234483184769697869566837985618680444992741710259262592729566518886253236016171131390763889500609894028948085223469353667159471944045986171648409170382982028771608740671478019355530574135589387759739962013535755293166072618452649038758455879346152613358455338472234720246112213661057581537385374403034543354449865040241465556906238197015056016863926397835562972412780330709411101091934005565070542618634643025753689502095532521445852022842840344385693606385594547830681437979987106912092776209511685730289531771850343932903214880475339971763912535874657494148135135515376246312650067741531558227350131702629152222461006511431176622571735804123077156676342410579705082056689905005050562351775802336459716207579462531478554178566723328394402290454510845625793095774047028531432579379676263787885047289365811939586802686996574223918399328200146992377658526734441684800644411111172520743722051138461977399244308420744109261809878056698936011288959375633165702063914123357577024352009353444754239592048735948099127435481932579627550820793127220792429451389124697767934156106416672626682786867929009411498537274773545353219559464250320712508665189627002415770424863651839402579794607054370751164156432468225488174130941943239811892137511900341964064529356576892694488538048650068157845237457240848823929518954075887046908609950091824684876564201796783627090549394326149437347356022353605210503193781687592135900217918240390945006328318044557091797265765188194546997847642046978143456463782355094326622466335866525907744850366473924773229431685976802939779655196030688251153415612516181612829144174925627431468484951035410836293194911260117952562042674112831774298284833587557516003289286722542357137382147034680677230677877340282017938136917747672145704150268539714966480580195458995286466614007326132585805952270576265338030598092202884223043381007788751383665738646074367120210024926567836943839014763660782200739231251041528622680184482521695674907488152398544570493776600397333828233641672259209614682440339463408877044060156033817689421104765226676877431385141980642041354600409977409599834297622501885614371180571743669470508112200768061945639458152900415886070447007374534777631017508221793778774414062046639998666937286852296870901789334754466147103970394323139059790086596199281624603600628457368724634446316111683069666104169621436749392385934793725663642932463409183751416391928192584727054434506736868493280409970198776991448970783653072391073123654992590557269378330016568263573224163271399255055192248817878168668008803500006020073144356388828280134844074705350699745553959503704786163506735178501715869343780998402606380332428562543992145606166266886659422836956581017959889994549372826126820208324629794200632374458916276122021863545749877798627224867573528680158142644754986195293261699631057871178757575804536615206338387643151086838949165001479923067691077497140848558348813078348799175774717233740262064646601052029136071125772909374408154732737934439957331950389133469928371988604015643872538638277509483454056146131748177882907430467122771536855332242973172455009300394506143469044912155145861963203860053713424249234260995036300386385636989870839066879964205889983808576623884293024490490740647603313188782835383131438889151392554749146824274599532924070292381352701068254767929238992593011501905517157308233630218855186342460892116295256595793417648291153216616705662527609613635343604608945495856182118571369747797117585565420739882577088694217763710598562894052286494441421739506357966535512713584135018438120216156831294980373141578403681424752318802801038242819641932992446464179948790459407650405799903469586020991499803433987718278091776162911136752272619177981958283635690778254040525067497354697469479680993630398941091099033337807988354542437112576281299007450784611267790925097758966314831007273519042232172831682341099627340133752627185914060194037641785408843663289534798721978390589323915673056241006885574551011251957562347050568701026324860151474265546164183667372511216215496346962276614780705145357624219260294040221765320011182209512383070323459778732734986604961028363597583717206687143282918424048763968620761164628386766962194417722114236410674451010942497694857651955044879010601926461471894080353297804178983137253511618200308101486761639306487454726393038898240337927046363289415238006390740131225888902240982477143970116170157600708127666460365966937784606758387359521283849459221237898295894698027841257900805582447421545401847215617146418839403703093907439848198025122508736810134060393011081656280607114149913537466914249976471883337715423631919676237871261816397860108190790646144547643915520635465933246200894048958642884732452821089245240446376246118848149646271995075822543852098019215254480623836013248957582681793507116204143781408289418537786027779885153399354651202645186614192397588171281678827524239936652015575890233216646813997591178913521688535195491760981659412668599594980159674786069449643991204800499534613076967045119765809293635926482166543917992502763733127363031553887639215306503586092942843246804493628734463169656072753646949057405392298556416460044278690293345075676665419037874825678890333577623447760587645676028032610997823120596067966219120835713251190695704396426652389831743974123395490766580974869665666797681208556134772225308061533327013223592564818064868425441960859575291012705991192551513977016009408777220642598943240582915443383580522006010255397808499760492269161480542304236812548417016673922903350935026358624436670896731315230559228372648750337210113085876038826286696551969529870494259293985560923585169292254809522331111456064774414812215130624247407940902704091218467398422821713862175770760648104367502910014962196364392934975334609047172692526330750761289512434951782028123355307729164191142852294528195710585683216591059487964623485537955548056956095998215931316842129128308834518260801545866542293425543369065529180364878597070497129694249497189594010027883154149411751525912171205331621934504540062261508724816077665670759002522428348224518304164958153244008846527207261265471605270488683596886944076124919762205403059953897952812057404375451311243366066854311880951639372797179373829219934261678830693542500058165377511716724073355739780485250584018482887828401131917705293311763655928076935416842806428056310193405351127168436221608919977930822158124445908888809646237482722162562542286686678762964813726920179040071925697805938315253163575059094923688469195939785837242871055518673543417335368090531023190109872665873725646861074205888739795084104607726591844197044325794736114606919119822167142079712510816338910140426574505747379337788645154514621588796540360884761953556891041502863332804104145545845632556328862705834653711036106710840738813717225385354204670045920318697129626028577137284293566798843146651153073789298896078884739286778591790307602488550337310051784357224959485872762690837749857295198702153330500855631399275697336095255165163437978205139474758580843698397880351086891164829704254896621233711541107852561243352262139609969709340132616009038309935828494497107830498675065682639833215277928049509497099316738083926192876196273080225240273776512668031569600892780599347802768109323407455880564349980980316068804352167416544575041989244295289891014127776517756451865298728133170816404384190557395163596115943028810692432839389363458205183818656582752415975591356960635305406189362001388661389934887533545822408537607550931294736226455548124806386318534716740969347148882170150298367816128986435110931368079383376013165591840083955589306402710027240895353899681726976316991458271658084589243579747474126583901543829837026599736226555478857691618595283598525683366325202014854361874197133795403006951396536261699487839483109297661043961313312537494265729286594877315326536552857072978327485020849113576843760824150710734057739037762048378925525710064763317193383056786010562340139549674910963207302508857185845220764299095615949539975649022398035169809984944976883463374636187352997924441629520485345518629070543869213642704683794018603819094780449766217194857075534154826265685413987554717070163348681562342391978580655767661027298303165306373254165938267921367619149134135724247660810136246616288629136453255141686056286228979829797420181411938568767992414200590077283249900047328042284913572324206695464664874992154811994463853367507497325600925555853751703673070167249106628291401956382424484416583042306058535878518208535577818676901953446230240057741332804693105242994053043857799583960544310296034862674201432297649253494610517118360853662741102344944412043231947433341498923286129788004420102598758425049729931775497093098614654486854503689270317915917194360466234845298790849049976965998558231768396374449333714384777762390967481407210307479837318296392832857475426373167373457866255510827208777230396266755754464688128822210069140103450238064448493782750627638258764033539303814776338045800888892165882544824765318504551793797934590718641155649405596297515937000344762618586440659939378867195410073737033532738665828331507681222420990469052690353863565532924923449738980022543344388683793157353925083833590089714687045268033558996370830661693776669029589085961897297519973265719370071171961191581616868498509486063786193585875422614999623963052431428669940425907044072726627946425643866822037840543021308602551782617622767720730771258937451689668134027633418284384724980912928586899350674710606735318602496098475798939020819853077413535580789912115477833448137796550178815579892269654334536396613621354294189355401966765446478989399703009295114649306861767639877365956312730228837107327321780254383314105725949923653113234811509242955839256549853171724892213398457131947487128574309634057444614317057304511452071514665336363829005711617066224510792674198933318220434073460074077241488033588004414980472534678507210701677957032875104747725506023552284069565900664011076202893882965426166543147480187453764654497418819112400182361122015454358644815180983978504935100272330811990833093659996913190285283915466972196544915879459771491254608875060302782181827555854797610504551236031510334812024486804939047693119972249018239481107145741512303515281511225455471229873765311557318387040832149489554610469860816306140219166847252632271107986220846769709733219932318008860985129892425162126279796415854670175918256069394103561535909290465763364292785358322945556403481241829122270591846167796818782765328948181192904669866454224536855139133934258703661582262166254317194917701938376413486032416501666952454631353543861450726919999484067649700698544741063911256720184671105419624091592841452649908047217028367704381395631804933080956076685438304826355756328582657625351592073349047850574720633747816610285605312951089158099695439390214755557124024128207019162406467544801789664125639226487370903423141583270314220945828572908819803897116945102314534680254107026933705670408351647263875925375092647967694300715974048821173686139322367058835077050949131487191988819170715580404094251145679758480749207962565151336774865983909236554663315084143825084774237622500222191341031223362734183654961191051763708731555776295390935946855675641226715043080935069106573404833384929414204744113317613290274027730233571390417461252883455714305020825687337238573492898226949976218351690207697844000160710966753003481955186308137148108847193412263666983150387189182162373659463289734393425848382296876173565803358042747432301540850884017225674832817584880007126384912568683671845578355367818648101904494878235676314875630308687028834089164429144279052726233903904374684027698136955512689221553487411471127537684017171714305191076868159352689009934057288579438876247122626257750518182842933639795398950788891994275465609307234194373830383102496710763647797116032774728219585363569324583058529097528825137241455135598374125243831494753276093704490385601056277770099108176869132665097254654038133882071525779301300481885891642702250132938769977169069466087045931181796015205283883654418965198540683060999288427070525348030143432313841802116781132306607764569347955719531884324301836428544172806894864642055367486216509287345018425288662648357976055068591185926795023458514582956524033603290898480394767407296928177356126863322671092171207760618822644924343895694926372716627525951776068059640603260360383120917736297294806678492077174046069246050247199508347108255896862866119241412497985057155043675843606328088576129273695385365964177490806981971971893999262188885347157601974684420041650023288335832915402691262635409006366620620079279326831601575721599889323073350053169950505986346001474224538027168755856770853063169133835220446234027382979711438570296075135785116327066706599242531938671983180220914496170507247768677123485283726277539723771733946929667207309250779518487235703244923931615528124683296830115533230391513781499018485115001241675700102573290000391803360128389680859467380401082573422700624741346834010841149105006872568596550424180639013223458936134846618575556838579453559887393229548594636310493860481065154952690430457579742215764659478443396550080935218908287190680391569989692645093854492224094983423475206282099539740502940944861373184939635957648566713728341093714435660951774566793875137208374139905628557476240354952572611258556931976891016399416844552268592365611221995275715775781171932016563934865173914252453829082220599977060428725197283239919220003826250069127517220261582200579213821847996859911896762115437208446508087990137157225984123854989793833053059765425259390400371940006155124791251557809272052292444716888614968171167075336865452387164981362990568542044748214373890283757012081828012292339175900314698219542911234083684540729330253295767847787811208515414540192254810608902232728754806151606690104385316213236989245974506814382709880852333672332654818169317749515404439398480058438251206496783103464566832604668418740673254164595185184510332605239763811322635566879405448269440223170131470564093437468190057089132103904097502267278684695020298313319711962830579815227779710318399836627006229233161189082332071910814683535851204581432590836842349676313984628668932098818121046995167770961036762093774002118041670224880727994225058639408910985072257322818126762195213987236548910590928552166669365322865663659553594992449943014167390285625075441344326037424327725689354310758997522820195073498363789048045057738587722764397639863079682154226098347042411364169423026703561719406956326209447183728839701920120104304516012866837233671022803737447209178365515700539856077816462024161568799281725291467178800723761230830273240981572754021287224840028094091962162255026182260530735134874942859477549871455217845463259794322209341582591362355631587460433499001713948770040415003520126614024322868620778322037427030906668663269728667620676851001189254065427104236937925261419684478769524119793279063675432318494553396334438346804656718932563894957604502458602970404725492832661023291331191502057878970755259953052066678578546488764145888216580467345570792616841825166508398350400522284731674577864174411780320311413748005990045158532244367082284904404217468618053612493486649672020767514305571694713436638376832266610383105232964157069199622664284104082885511452513311582624413865367673774057057171460814759800946860826617968296336147898997051687306103332452937826040286728725861549844503617918059907546967693040067991424156069698731951996091833012013239379902862609396885433739208768819526230155448963700905859299239107769607454657737534962328390576632947864001288120385899097314004152179890832728467031276417380543465973098031320427511575516120739578098420414315021717402118803470357500368735543358131155659786690161554280291015216457930578338250364771063521702133428335427738157818326227196752591444253596209672969617159457578906085898398105640779564526190547937883533425524186671746834304370474000496351193357917151663996698105188195142570915046312101369684052981393147820836234197988227236226651222230363475431334552363800315234205575278633948980181052422534214993344175851036686540275750692198488836883677122455763254177240229772589338962840090992117964532576335415840066259573568254215052755135740712900210730198384449634426013218275571462988317010702644388511691885606084809543299436415588776364025933294701883114763000761241690264420771749855578454587802553510386497995196347467584986080464670960976709520457986964784295688214196874371431995793971025122966570714459262337251789057602299325880926777673745075991392279262135727598895339670107421882048611609649996467434634788033112553520252390480191204831732937567719352769155683931380216992845987509453388109836915944531144667454657791743465850728843628556112821505419854008926336251063142044920594310028314026587392684991102693986186959030688576889355329948034037629463411423853628278154250009431375488824031138748839722455510599037154346980249610436650867864152706915932401537746339162889263488037815538937843738053553687743678963035507584005189806222002598330776468749291970896588888094102870445349850192485736656724050922579598215640273869107404304162181316813561165586379666639873491037504834101636087832983597470694497031320976647856850982410711607816834342053315524582410753820727060109933855701536862364637964184115022016642875542488014855229125349333784390547185247537679030860956433659149933192491318019357181216850150926472623982025514874410858164127643767293450473390003729346134133992509693972883783527474392907133168271600990608318187057546508631527072482038437975000195304486344569087606375223035405814316296831234548671454474877234255206768085970096873280337172658583129464555939907499807840401186788867565010118293999569482924345346539983122475904463318250934837423579649942818031186560417805913262280144540500555425299707982795477319300165847358489230375817703386303966375096041284582844988830813471238553006418716212527663165011288572118134192639733171653342227435304557177983837461451939733299427253793013702555094601578821877325162062898618555538785831336651811555389140237856512989041011730041316940836441960781542647036036690068744969956299048915300712998024822021062927371688025967448188799996823149076760289762360364858775877880485529672839487558548036242523973113729363049268363760701231946009647787143753894366332031454093377284625255416010141089512179972220070499935296204768058225026118752364744368124883524398556720285838822165924646385277549367277585332743528799930277627529793744419250780417237285138836189468969018815692139854705970071812586709049299939009896184505796023459155394213343438415175975346385414798303221532522617137094760490993750933502916319279299676488249376419750387651469545715765575861073324597785085313839995241744712595235773179769464488576007525718351024706046714593704827433353092417535993884371633147843246957665652353038079047577429409050597953947408547165577247282917193309323842974923566014083661462364538816294499597162183929352203533359806501805698932495803435680282921292824916174806604200129298208111177810778554918696472174586315511104709751964971323508063667622536943414575522469338279800443096444173619252011360686610278217046810854640242802458376231861477638455097195710423598379561325866810655502197553639444454426185358187570758752027158810961478969141380594301215805267015859451493991579622432237719552833815059643778653847467478656602557168149445808132185867791288794571432983897350401302493551451504840798344083425853791700462201297784517277200367033456054568378904927371439142990554260586973981783411608804263398996890096748639345424205397997693297995983744454944477274117933088302312370156406499982163619729586368506332923603538841220569693589472618825682065525082684775794517700495028221038330721052340071104569564183456867975084683198820055819630703928372369859512881166188185280959965987507687216925646747929497875513799012053080706874992110866547919582433478039082795052094743819423562030904307801764772916852537057045927400473865590274303906742372121498486643113931200787662108756093581800790427571961764073267574835499045449919335409958036268708387640239617341380464210817611905707418583786390424442056164387917126874005467819651249127347159462059280408171211403602608715523108969209804578106645698305825892496635279393877527085301824245296621183862528580703253672907260344126713147603171168658015224375442570644782071155778831008398503545340025203778188455758347740312661861032108149419772222575949970166694879011472111414213088154593523909985315960527788106630088077293176777885206930692968153218312665491934412097495165781855390900374084017259078090256322637602968433336600238463529686616950990268029457512463584854823666714547809919711108138040926840775020307133169177459325822806679275163468591050925562950170808274389344079074006858563383578077389812342910204760707378021798198554343169189678250599389717431562943254911785695098482137965778524017277035370019776172213333330359426840260023746319906903962605678437302364349325606274069753398916428241661279194145897546889494720557165530509018344295306667834014292919090003121676828318323135374693817831953705204832258970553133554089976135850523755891130605961950731382859014021729108576000363852382736641570355047360175164646487374844038415671811127652559771117059628287566344224697973353538379723815014778340942014308510561822439711837846817935910954165914456919060924071971422622542001372756110362206868903588131299183455951889275039131639094661662408256166335980677109170787073582432607152850649062200515002423284720390612121053952630744957095542398487931593395987353849455009767032315987516485803312673103650700697998134627163449741385418784510217764332497710611200224345268994991834338532523716815973565660857208655729078685128312194568708775571879095826433745030437738488925000883386991954847716686761751379938766703442162768193468675793605472113424928660239035052254359695559689582838154731383579093315952458947835419943841148174643973197990394858962249809973441155908587663809261593948530717285070884657022995265768174209758671908791799871397548732309198946021332976179604965049541148738808445378139294086704069386999443948868859207037998029212827790542735928374022621310617643486591096560657871591113184281685617635757087201566272193992022611613806510857273678048526599616505409412058129116441396040698889068161248563108650155281739740985950575186971753247426962860776232122477069295917589509486919710516574522364646487277164453393324827445214364018037702471330183746212004911727217738412185251032859953864314652079899980863152475024643911212813573964386811659289222932581981269934910983707066505954136781919250717086669013163238762229357648202024922418970999879623606570784866618346210026901369815399646439485599268905359188106960181388953372687277185528440594591298625681714223493695794938362812743122828697418194494986074019300497616332659078926644798750827295929958395757041091904604565164292111534385582364181951560290477544691829263357575906600811829273284254469087018558020988023264484856895402374247341965576877553492478703462575134155273188410200022123939563196011897803041755011803364500658446304028198449391966961514995091842112009638523118514795163977168831167785838483929223623493436249335828322167559541283730730230400312249903463857157500906800571918827287029047224390838454845825789496039980251217108638186067015692794154305003721843365143877407212638487013696302195524670126641905156248369721906459423976350342757938137920269286870487137692726070342186245344505662483077872859214180583152346534545569076118541377589394926272978135806118999181424189306927460332932651167657636634060311065991709869504315104852420679760563226705873447008926688989194890788537292516815627000747997005963029455331830064119713032879249508064468999374597621742081406035570395680336544571316556645430141080234368400032848466958211458786588041571052792017492832019297240382676389774984480478122145521969262923147920169178883050877531150147850391076888950310846798069395283534382370551247508653472140618056438177322249361477483240361847990978476110935255632688942525687515549047719524856892640721317665951730614091209763712019869900601408799699256447785830418209858878936158760644516976120337822790424976908930576639243258873476902353649433055384555025411835494287905180687472997050431450138850131275820387442859385963273825015531504893642831112614878471150203243424440746503779774404196610621921378119033286017939313111063405119488877498187660866965120858962772759353772195814615272247531097468305042838316911856751222141701894490183812800054490230469748539075995835252549264381758376347881003184473320503793055674232025022132490136541103118218425965457733688738115217889887896546430341880258355490413486987106762499154869624465453415876990462236448485284413636874525281796490137297245452712793355005137516070705215435043083879528092157654618498386940884828702122494893623081402940200968032994976782603796324544256898489109328171860670999489161262114523377590662231984632913103663186316693414387705493965741983016741813326130611311864392465361842750222058563863384305000529528588121981315647726765611014765212371077891472725901301473753190597632133680266812747745236810592191728781310441715058082713469130735356227658468482056728581506781426991179990612949107971317677716323556202713851779108804467841641300112262616576593730682123095455613623940760327100210552728209283961847678484168898601962305305097571387977800323695959611603067798555798394943025313864596474779766701654654806323645254796646196543626339971546821672894700318275107373375478541615993376810706698622747523542972052605536447780226967843783552369088467355231481740602063870900880761654522328227122773253465983649691047807455985828005809535816105177782172491953505118845863621202555952505355466479336293852437321007490346732657002596852568300097860366201275776667510850546931951185345924523584530372335730274378339259043259678322596910628464174942391637962258103849087228493453755893579313854837707149277794222201035856904074113482660335245054580968763061922901828739815633456631694247933992095913426877514525776545528527912558966137899420128495782483097549817615274943412357088858892474163320298787340138485266399751914147032644451544908075109931824028436703055540008665705615514664960073465463480012904267017712732938522032322483521744990575438272740037024178444519229457560779373093096432536830944214831199479205374999528423658869519166647546335455225236797787709296541730777818277117302343154419433036761416601775008891831016682646983287305303913178151326555089250688977233712457724016772426765240022330431765979239901755481545111414846948230006098716841823199160430734339793734222863392102870630304921790190094041009074659571079003049572362662459738337581364037948352518495173947210608310909428047253683542447340563913280115785642071587855616473950059790571511402039686898888032792088367777307067226466102421731110823020169993914724131933062981082098724157526380337230343096907632353832601374667269192502767674984228563263698949418352993889902276721445789303243559773943275346976500142921366876731104025658148301417122157689783210649831552040924378499239791876269877427068844321636090896679613194340866939349463653721615678211915167408853502616098393384776401926248310971317350631058749358464791145882628645322163913028149386004666430056677940050502687199890629125954118777912260421162626778031263385612450715339664548514838497019428290844442459603669195042006819973235931605590991568443750920100435223541964305194540450440397939734454014009019060461099413641213647709430963810430240359767479978153547392557068006437670954341863700968332297900804293936536434945297274780862474569165135316886042422265530196036502118276408709196035901532973851779372926970879146968959597409295536406012812431587548379026459883262196519066688663390317121088469480277892764891773374709394531795819681630335900914308030315224178553279286385158198887100284577939159498228031384318757650526079379583421511817800162794165049542767750666834801249373452376170901165694358154973975346900677950012383254979940915895091175581322320288536937457476984453747898433069216956633765454398004833080491638236375365130121107743556287391491860608273427419249381505036429331864236757406040846999945933260758528712734086609333092342840486373381149302432834400621122145888719609308512375444359213373150000017617134194296619861675641748150309086847342618214422643016709284313248381040107279767166690085436895018307423704328868495237069276601411107516003926962262462741516175893588466088986344576118415118895779277296269805069007977276535486892068774071714557360583018403559229938506483177322114511516307038061932698951746488909959666289739047181567214379696426816164939599735387046294183686674183015904679102898286978246556700672055561428921514367999361934302319483142519961439141646573070033167322391152300306326030707297499872750936537559985901068376450418581050502580701039512349523227334194539268663634881430306451753056088306747296132506315276799289582053328467248754712286418294548462493408017931505016325267219125944121348589496433570276033402867841350526017108471256228015088653814304085151581982370482254219589618440631201296254805780254916482071054945330411335251375919332263452376105926911373828806678475080216753331051883827291973118102596734728197543847756894029761461572216220733043717796029103432301638266106500709819619997411302226444933115038214858455875328675610890150749023116514400292469026179954491701182442049768986800059989210956536919086160345370076406297365551458505584842845548077307280598782861158768708468215996830044747539501187265416143333276850201657416398631291161626440073952881346123943729432928854831847228058849005538638081999388379941108222780957954155084434698586768231090557825183355838481532419048446349950872009767279540468218290597986216772716880095009589292856062776341553723143309068007855167251633513496390715339951131448822994926505219471769370413633278514525280266464342997707225626011946485801270813593309979609632136408605825231196388335093581055408728173168096267049460750600134270809189406962546653827603225549420806250875899127845917790148704287744782210667469605988258182959380393077333548986832200409417888555238241275976751790039313150060477465677924048817177546857219352029007089138367788983784557353573792445008650178198991392218576687929632649937819697814685913008209460983909900064566021564022349800572188663452603198796353993132345584450892196608096563440025904811784730189677538662529403606449641849926458514521780955832352606975695331359612356705277675151377743015975045414536796774525107315390188476351880130589721512805478933917167585105431670544929987881121844494507957928004957996582537706981719465570438966612873787949040834763317359136363488474646019148985572659006186748968050721937285846834137955900109439080210786580163368155194620129387497520095934133621592486612474056552652552062177448649506276502666094291112712806622445097546737972042580535621761095877411991489314245360722085450475294232092965495948910309618401708481530217348071145855792322313998154802802191816001494036302069014105672103816021125811486557010499342981068246596880525570505981327638094813521916943801071932252490946094756007344093303639651743077943169131449508763671648018819209697972600493372415987610416915638848523928447702175744788895444366089487520890157035886458306688181746765936571503065573067438339533296347693181462107287263096959731011057337937934609513756783645016618791409260516752745176517604548570861088031039047039041426052575733150555154212587066756308316171218513894883003893758158086975139433781578369800144258355514287572039499097662666258744440835012214058598492248926962010066110082742867623298058454472811850715761326507512973871582769018638679806145268470068263364658996761010860085482492236357618590817503065652387637672762338306268447251979127505083462472223010840129586044470069000277304982229291996437631279388582683528963561292147676732501573327223905146553725435057297517989851622796218739005994744532148362111333929972780012403138743388012321730538464346208131360246238399711111223323067035657055773562579365379732658477796298444895596683463976268041112365603363786913260466668726844073212288996836375937594109494142313725048403930142140798624517198998325792518390567933056926524661084539733799431134275212704990162855738053495541114423208227140561703342568354952448167196798539383343387761483472475953158623107653429814118191214888972479100975716454050961974932612887233027454826734059476379667929110275595556303090697371584588543533388762295365085033386135523222302567567064514072630790340958901982647152670838730191981631992699819677863337673062636023838108921868927499418240385342111548096645732403139737214932760066893043867174999815586015192846761043265275338738236001751925734068503138183469228187753806095434849576059683314895953776044214429177221262212946433146024127123644416882333483981026249108831664774960659857747099321935761626436486688259744328985000686923421384901350140239212441361457396093015057194400504079771933888680083914507397193948639253307160125882985485288700739659918738404067639667910069068172064424847496611457263693462282375685774877305927029510959257299242928130912468891989057773946301781877077891978162351397201267538555655447510174770708715019250374669043025974736838807395386045393653952181118303945409845398196199492331721797109125308175842416340507364544639135458616118307024706051774155465054846468413935257901765240307390645074627351143059205552905854815469686638639427196516288866642747486651021379160946671358068376688992871954827947882890393507508355018297660359849386342259261823279072529328780198504954056745265521182019962145226000681367024759113776971402081784226909350678200252885575181626956562800315816414967491602959575043450029748174707533359503321916393462162934792850164047687080887536530622411187198599285967954653220255110187471636794887052379752002586947868371182634951323941592208777650270340997164565115762659438341947072858234565583856994626963492729145391773213989857842275868910512107508898213446712177388931745041378310350587535920266875051774536569186223566929212300401474199007233539881583084106890361638796108005310167361676862152288186754247293695129217654514180207747090104436113448844047765404811112644378083523003415482293703232050455172748378865974421637996986006679573217590096171749588129824688919094001756337219687114471876360182508492334968825907967386754279227712574544126464392399755730797325536166345462756283758807640227620240618476331596217578303095081240803711367599096578031568060930852661920842386674042511931956974155133606329973639845337281601189217618491539020876731238564680828312345064927710551151391884810526591874494384461900203376211167922929202907275717711872081785120070323034646536738593692606404154906999017117688999285046768158775708809116324945650568986660196045451356118329539186697640668289738351530531638353671702746141769043019304126804967767021331377601831231745794406115857480188582678723711712218073280758155924449419900371414290826523821643663888490876029139692592895968947319325332970485114056483124016082766120111358196950296191516149413252528355168065602447742722532642644775654792291080286444583219674176341387829617686584610474438006947249594788381355662913738786147302837727176554620667586674172229006980226146233865782019613276200409717804609514650109104416280809760929505490589767942831303694041310954599932353112761310030022644510336330245542675308604708597748824696109669046317187512173330920793692257694955078425482083517845706812496925564892737384518852369241209778276659438085885694892540806987538359388642044604376078354722666880053086087391387971257634175830336721097868694612545641862327123659910017428058531615411759853998915513796129576696234712790343445481483060669528626413553468623106549849794092578314765911766119553041632801498508002457784416747439706633530326707148505652667258002490765676916131463960722400401511782201258457630504257742099359421479204300864142434057547981095630076675077595916736377808144064290272881123720385221612539266539147857690315537854935578704582923709348399167311572470222421009055208800883943527731641275312596699935592255977049474924963621753036710861254860158679203845795433427861460733802147356555314429233282465232172835248994944776158157885269926564812714936059425445853763016099636605944908066650728260347382726631435154938826757221713008985216870707603153745147348324621038130996645735392272418121890304337418505861138383283406598617803332954515368425972058473105205740751099325933253012795932283885345684946416854790728599875375980779881964642657941833654107379518418250213648089714811580490284997321477708052293453244313469364442412615311411935136833533143113924091193203203977749898831386548236434347341123015035247997350232622840828068548183840480122168680947181439882442316145309317240727660030315540371144381347115664351659004413879531363844506387499880426570475699876163667735804762243380715677264554183414993657310202232160870809231366257332364199132358833942683898499237710837936571179167759304315870009099077237849250256465624311202101929615906342701181245209809824481505458491225131096811243893006900944427537695193385545320377955440695428639759594464793830529464312806213128534874886439215338173758983703173021455235204775690341359699874359992669033642911776909924000340842385057795698775022167953734136627264668104276061076583976976866212437095412870132243245646142978177594545537558860311808111167292876562299137030319628835615181875280033688078318596200699366954954155972661845363866410043710090149824243412311790250299541525337762638444658806241613170957126320713382905914736549411616865931943539917362712354691942238704395209190900224597129822572290726276284711407154438009784874530877822199816844363649942917662254794552854809804700080594001944507308236037151111528405295976438263211454074512776861206571997216288360623326489844891240007612496294194833638880269141824223430641881668414543118337887450218518970598735216202703484070957263219049507740639919612706688800699159743114854415069773763296291279517944470988497637215001817843953314094144676230498650635900422224956162358280147595252399099252701252566939851112021422681228799370823645466156096515960549403664280218853320841357368046708494360478198734373819524840871319463849957178527606321145259236537302137500443399942456472515501369296081481015688447228886755695437574565360549587962394690770963737040863688920392479832821343939286287482932357242335957061532990734101568789867692872558203924086627109425016776083748577221532424925963222586784267932808643977052657610947116789457135009352287711403358562875334251439935109456200969167106555512472589092660446301112641264060401334329535834413031912940199231726827482580279589247648130313554630820203201075389391721931657098651182689042287535510925871128139817328118776420135332241089266161577899600955949622066837355769495305364232219670975168059855770944192130906771399331308557288154938573834387971668826026601225615743053477619892506669720161547540677649575637122114285750675430269182294727981770489686555460843248034859871058907092619349629552904025028927009874439301453452272783697293089622047090462025244436247252892729450868205895962856437949948513561537337974290507655885839356805870967817367058198993110433659075858327065452872269716383106434807225733004201075937203996080292477911240226325016255081409392241872159389549480641735942719304788609949798298503720533076795282924269756991783829300815997361654673824158304887522855590225540514964922434002678848566458684755979994489213906697127621172068035022169666963253037514191657551848208033749983706824625992610181583417573681885013237533769681836246513336082356565131920648458596552089884234362382548014028156544561028048765988422422356554224161200028024161671344992841754151094179497151392367734723806964339166498687929104286311576378003449814938484405637792417377607689642913541334284452769447788162569336696643091264990115019898015033176782883954801666232119865193534833230173011513557098645649257246273829539335121008890750327691562581912358369305404563914304480975297420015598939673685998800775363480576848731882980681413712625785168924930153470486815356628000326086292890926478495898634228115022150610720484935791541302484611874122901689932485640764233131893659805066367234011795149650086391998730018860862407002649081250999481880470790572955040346793080410774529467701315528747129560058218682093063400780157334957841338165353384705836727100096355055374718856114256481445131101897583849857324659798704264136408224493726963469490084571165288379552761209537212346091176058130624606655397064761759368216757958906825267965098837884240700471590837111723582071086043030440107884092522465264109059073873000297080849832356567313917340805640196190609501286289702756440794638879415674029777388928489238814278449249566968101009610245689402958944414974801426029364491854845471643456024352495696185984303785275563934655767807715075773926682630797987053297482191619832926345046878264187152636961383990808031885411560271067829876869468002127488651340435910542123185115325307303954583828949862121173741862308609761847107614508126087037911702934545472152076879550714873800334199642221798775193594606876103500889113608269211699927692558002575213056612059375616560598261367506704115178786255306174609679247571255846454659936620248253277320527115897659402451465008816163575147434662480527525987998001004192259281706100444616669164279600036205101138245010914366266585827718266396464640416111758575167453554761295253467877368408218396624040180180813847159272136969787614295839081076746017528802376637105636373752918306426736546013210457768866336833959007366217909940958538709044777252278664931317001775357757873968434124754820743089953418280055929588181998744488726319182143789559465741539215001668553821314598992639099555492157320550083674138705857680521264516740993874241103503031601145046538917990673789615973399996262730191974758973989412868035886713446289184825655868810249800536167510793043029233119244582581532932573663565807263632638639182858018852778039997322546439973213571960549920980939177477435090433516403866481805491387164655358746240951290347832481413248690039729501852342872277815245758210840316002285802749307575796129726624979590696774702026343278210651513397279991863934182758933450157180437963065896061627872124694726048543517735059730450801147022059995314644305036770986203136049507193510063088560304219904643157564079816274935435159140560282502359762785415889870979503518275047513007676856325483184210197084345182974804832383061378314876001373477231573264553896212156092681677156139017352682469753955479293882340625922035508429560360980057225343974954100324668789269999259500240905716700863476136077227610507963682655988874370586267401973000903199504664383417264046136892034509105477023226253910467297558687848702281051759813077869360734634769301290393034808515396928043772865101871155774222867083094630567315323365914795684218523237778902256327625894684517250279635905928260795023764567929009821507748104588259192158678047007291478212395419753180013835504481453832884108746984887914323928376486674171026914422191455322964250807250164534371661443851486474102830079781518303825719213742687567663947359971824177761656580678599835705494968328749115962225400379988238253112510983349606770800245710579578481169468890111063831111484676915988314364835632641852239230631700124243990249337511080923016347441558471299340060550680542205592732171987171152685120307117794205758645207163537367888533760915472258749806994356586495783734451265423383944857263627111365451940372175923460262553759676391162833185329744094357196857138181717746585619198399637678300902471541108874349433433829879090618293029238698473522528995860868976651221923588911261928197170130569813684834707533759862872227702583330061530176210034286412689506797225144529021750437461137472990740431029172985085589476458663133421528153015206617856037351625703025996053878597072931030426482831510343919530484413226809836052294478746524992939816940565813074358856642503656692369830915310255141595449835773446033010552084209970398646263756554564745419159419304972304496176862315982712740144201529989846514285800836509280328654627144001862089152280876528147212201852964934486389662309934409132311758938145371389559614076682364130527490450376127766024803738452462555652249576158796229672063256013544250574881674995734681267516834940001880095466122661501150873977810490696580403347063458640770180346488367504413425016610684843316521566917309610295761482961790997070647544249670534672378019728157175144115259168840484411625999721221475409874414327897379894956230527373611775183088555162712580448038176588573558013562152665601432922467617991519429811538424464207167654607424030482482923078061858536045463589164114835121497941537210871819528985484687268493219671965991973466878270343871646653520829740081323575940219197192274444593548545991900156658673497585259505266299739908356893078763925448937815972937854690827305246034777024832019830885377596993017635338539352522083798316438419638376640579976523092622384979222729358826267116728607754866000968137888206938601400603570671274552770210601110845988512837792847841148516858489911139705850853783360552081968785845933554807092023721849358871055055801715868470676253702108894287764876359503150703473690628777341877972334992396882619050956629804874581687630436876120212451577031265133629290815826821958462475688331610463966004254141422078442347491247504776461847824191857883320765732553059348130782236007851688150608307547500758129386316117130235104054381196849014374368269744587864960927508610588256566661349225207413443636366190605949541224151882269591253445647469367865807362835345480955062379806389407346580631965762026294123123872231997473473419932309803414158366827793821119576708922182065545462742107821458594089592836097816376474660715534287432272120566864425403976646460603581849446131618184321563633421302068669794902652789115973732579614823364334289342500628263632667212174082704331034615087148859838288300861813122816539496811300611855971343457333956413679469042424536056793421583712813297766151923921437790449430372578661272446558027091948696838750698030081999356969924178651831693929428996927451124181292034642748420737558752214135547756300438027154835368873441987805380323099623631663726984952931775301078345356884699982213695033822877810083362732978371263679768248572867482192261114387785267129506616938038247488017163502543295785274313869326741875394757901569049779842401863772786257659789281392821680646436903097874912983808412660253154888426068647302071034038712463989157202932355472779155630275466505910809328623307022419788859963590882099064224534187818539009132972818126246305179684655949082238698138439313065455889711932183552524021788573215314781876063543797798016719485113643488879935588446794470574352045431915122675275750879843134747991163697034783536251297879742005426605375451121670733694628350712783188504130182925388790397900803141182062075767230928963463696814374948781263980920324676954461728424667918846648260140131130464183766759171301671655742994206732323143800223759257133280978580884251851754102984610359960489040999099399562414201822058388372240786289157734802410460438546874323343825028346510093770546447216974930483870972332913868450250205224283675771724447972779342103654524656334079101143796605817818717105493087995825761932791998336690596224375885990480717631759577930055415107663589973364737716015107112697525417432931695668713060181275517978404375781334673463485447718911949552626777758099509927172926378283209952842147477364011191955771351502100007741236160324558692936092172161696085390055184024732534935607115281631454827238093997021488614425911146029821960289239297210008460894829851415249494178996119205662612389837564112503047363997615963753363278143796346661815156881147432831421426930163475369735972285747483409049324944938403688808731480517473821591138235794630477560859615227267583552428878160395178213807980760178215716350676609633578788451750970891455042149713429738011506440842449526006372919205348538420914596529727376369322873694833054441238931045815811186184686641609713977879249923538356231272684964987334414035444840351161473160439234982690100340507710620400039959931703250865585255486905989665720554524615765174932305747709787244519578757973797743572545377302916169918874355274495311612709933434664435756204089262411454781026292175579951304848742610607912541206981273493291607065675085644251745250060956397298849775611761337024641301827795346916383117738035944172345776841042095445141210152321454966151509828281051092908167874076967046015787773714638451255381730884355826000335298167353676966586619146194033527158002913557705125303682918953609615827521401866402451305326891115815808349767910034538469538653635664245798901473155553038531315691921171283530956597325556056332459562411612411899312844330206259539894334656181665684051429703194994468268453420570057704604579457613185536916716109412965030845134611502769844388137812478665549879255485842825477312136402658926572701869092487696616547455001429816052965813589066077323857174868924564842735813999992490698104790903795366675350134312506190193143667814927978664535377907540695236586525149282059830690670999801595415159433292817355204654891047602072439142231873635408053540766769099149727648917898293316138791942599988865119594538898281499621753786018448509762220516467347493061789764813823398213007334971243376111353246075956438822641239533720005602055806855940105150964107558832000315615707806221172980254318086020222042147710524129690816674757528235239124030393030055458929308857855055501164826753653699687105939763068215817728901704412137587232192916280206959303279280741218113223475336684514229829815587266520673478496127069584293989756046395542562332874304849819214771124347523041047026241076846178403071429585504568569158048522519396766758675476646921922287688934680710638395354510404536189684889112570188855811094952292313098849722628042715954897150377191763644402105576987052813721512980541286028963695727288197092721858959136585811536120692224226819242062876670027727962705452866959962699801191068219267323843339291262158688438580304238883745039652914747136794519105997670438529537402186886020830138397036500493288949307451888128116279633839546239853231981101817770934617795470377878074611930734514750123032387176115662971931379044740021137911132880235552598128995285876735207940895115255122654318358056263130079523170098837494713343334173252106821748720235167995952776487381072818688815838750447269307009564124138400847202072675305869970403378018288006061814079813706563360706626443108869809980005432166102364691067782827680695062685854719592684290705283325487034799651337827839632620319475615724645510883959727117749713771983278521276600731341313610903888967396005257669484961472718742681557378222248710803480790881105407762806121793374970366232735209700129719161216035461138278558620967569896482066871191276741617368100850943560478009276199574482832285702260564965271174593777987629964542131860149706102899256873166528004352935169564569432528529895042923283089564089413768345091703734861684055844631142930045157821806175018089106609795230781992614546517600290769515026033064730336491533838086143123516029906210923965460462171053934501333469442237257771829321123519026893227866144396735653851111286413028685177496077036612993780015509178076192640033709697550765089631220511721042885405707030344632268667618177932062278926027745445378173875721469004573370231884204744329672329789364391785511070655025134974014977012628488541517672260190853380792860972925812005538246621474143812892576289598381454799048186948269634732050974025453654959201593568188388956513002627737732444617122650198390123960502952989291056159594234127351101903222002090254450844822849706713486386203305207951130109519112548291036945421043738736121619238333475471169193068255024719327543323410067487389617969473575738400629230200428146162701149287387452253930923211276839597243602242304401693234513024088365681344643413685621721445414808767533992439073239794769650686655194833138367677523596813418228585510173780824562254271848918168736728786219814388575309860007360341411262486412507878292413220597820205220416857120895596575559216221226117253722398826928412347824689265761386366549394257914797698701994823914748812135361059591605982914564329365910560063208353235661517334259766756331027509361779947762412105397223910585596861372079581176628762255025488158517525085413688693853398022725109652555557970658496927916258317449368426223769059586888812023886390974797819998341261493722155139273866798318900299153465621296987684808224025440955528182008960638700448330811629691743069487009478830157359462237055378191349700424487632549205914916336567430676449191355738108648375675803778414612784918274825929090425784741779155531070100873567537452949396638081533571794885199087550403723956194553479670555399103920785604351207461967194733452378186095421423881304953374811872842675819566327746538194274000605530364540345293318254085088305289140297159717738962414520133119743616130424250680805471323360297088449038630765107098886731522166009450825094831680236640609494104122798021357664789876794477470685607003848547151875204981972328830397618999842184443429034183675644724939321905278709887427389196996417478899990340653073293330181235261800982108328356547940813537348221806993502036561212252951344188366023674033846848726013496005505291548657896963443471563016531950950819042812651779669199717275537999530017081812920976747012631746571071137916112425073553770314518772215278234899301643569507212846909268372883026154922453557908576578352207890900784837020983820737803781632514375623060203223118984455723377570065071641284580691885170515546375677293630901731803450940979926584719226972092189936629052977851682371065824367464344443693385215989088182097639886406043822096788249456283461407323228955222856317571063147770442227126179529324829878261144681342592363916514071435416555488922898449932494529834682774264608183139465548437243390355377217350926115638194000864908515033097214872258626642358495255589475481049495113190415502818868982284393322454021051745893759528343644363703869419940638240941722020206375056273946518361896940674904506143748755272074009042750478290899874608700376799728995001390739438342011224644081681994111022845904680710017944362739862028918992417761308967684008245924859697991761873980953826671857677189452116714682272709905614435373586239501134013167577226639287311160265525114006409458600724734909057371131980277938074319759409602433772422387729053552065799317991529336652486365483308373586797534296171666462769822759371507975109671019178611489777668340600307834269666484667382918490778720370379046004411609721115698570120484171691680322085235422463328089066212844097079127554699220854987451070762082122973000778037699862076209833011320508164076559162653829222066583285391563267957826157019725178105191063340622850149260539284121463346442106246770314164023665023484443375529357315685405213397781722414630916616973564806788834981377478472213170228657008130814301120147685031203165852010398783478368228139712465411203594834449312583921507863235636699993645849584191355292709075263527719587334568842049670785892676235770809683700120599230705116720477250458007449074291190364671499233746546275072519216172616308000563712111390194864458972343021232861251612444420070940542306310923823567319590713397722389373776121615590594778125387243145353709956898847261283866624228151526699117118172409831820704667377999255866466296766511461011862054827856900022627650240844434835052137301319602178125788332259208275127617339113388279445849136083556227539212275991400172630269178711745206346506620944429194997956746933077163163859620139923913722102586148204290341315302151687422339808007278602008331489936625370723878987694875302392406813018542320229577655519072909337815796066467136826583279154748411570659083062318126582076212603674725372483447799441932432610271086657272360157665655495841274658109442582838821826260187089082397555238669970851273825561535629320206784600983100541266244918674032751357147865784479905592790633114473799815945344210322081092782596005153655552230918709910073329652608821865150727395113861491947872295485506705864294948759221665895509727866857067679033504057695832549943616305974332859923274003660767360567987489500244181109086609083636710295071344126233388814890381998547584689103801699326526763125557863507860064531953995531577437542099259856538080491966749105576151672930979457156950330316423668103836278300003601122858149494535068721741903137201732327215050758907780815845136774272692893457833984519439685463547756376788627462494587190566645341285415452060139912245062070347463476950779552853168955452990342060185800017776938672713681969173186386088199081874237734984715542900621310498776930493187423931316358873080831009112862800409861173522038973422091535714675926165353126752518666741865984830847580504800294606963300845506239563439114713104461112693725910461500561805749697602206229052552052423890831459662512547981894018716205437915308452356281045786675656881397673714390074735544408679915929954053186310707171700482719899953148019550455525940660508434810852397159311118628137365518452639287888925348001714268052171462377793746948339471502917964659232269393255506898364701651095999397137877443570945570596847733630000327350747863797891024541701951343663602563832325837619978863906186673198554003168598739356179430854013910207662543370862183089591557974633024221140160989366606548601658413541114301155937532651649496232098778737183462603933854474343637572923867838990180950202528825628442416106755243611406757676387089984003756390568948643381945740610142966037809731699512086006305727279527006347763378137059278587323512888573404158823584182650160513153613141000398186075318719649956472155342873403687351801882513756579686917194745936065094331112404562534374793207718797678327700479348481914590892822239759879261699998054006534523998534709125685797206576824595596603829815298821714639400113881975358779500006055329382310022034158076631772842551421658317625236474760298439160408660615682234938196055752474539596331505229948553505694120858870784356172608722979251642969349285759604770581272499405543474503750548452185073695121271922039729132170473356284720739894968181540204675418313849656748522583927136807260081407984071337977240465736462058212448103993051791677921059342581800647959773955252846305005761616919126366636385876847779986375360755503151742984636584347388296441668169750380305964213816605022596125364509143911565232854485361750126951616016749469026475462883205690434793600934664382285949679328616408744807331681813283141995249587902217575726206348732119184867670094334377338249433808985682349975019217235097575704848431059128039611624929263791327730222756848504759682991444827338656646787560067223644629568780902215558415817792332850164202997195609213899731025632984063161933990856744072217791125112771710691565517593711473852291379972091894064461545456435471964214268429411842457885695809097053190845303709044314517291167428119985053584757625201949092253167785056990417445316739390646361974079879090323570200889142520651241915679820016876666291096290379323332122954832058563593536725338575897558775107490357015194353830831010517390110879301897052151783728708246634889615990480099034306579205333855113790741991658771991149265764364601140777009858682406727128833306264155809531634809525666860415981416293635825962689246682361575531201794277228365674197372560331934781127451818832947247222572577898738545532701097405369108017346043260562981775709468278337146209064201218932543681687462895383126951369002927247281472122135043282854612104925213923996213362612753302934366418864528157621648759868252961163309900336139528769717473346428228058967428525325616533460005299310345498649559667629199781630664069979678967516033060420115687544334446214405535652661106868799348608927688643169092530309028518804356553848140729267260944648571516419763886524425611000696095933207396094868104664320663557170057384402007267025851172299631138192929982146380040455623788735993722149374241096707020544119113356838859041761998029084772302589346471986961571990526788783933208114382682996082219164384474588118907044086572199375205663074719378694333294310780189898371949662066137031300558925438659789863703479342553336870215789086672626625726992238384498657195832283887202945096624896474200446226984164546431933682424844827605029297212935337477452197586904217071914835479413088766487555043986092604380124364827226116955104183801379422543870597968067737315534549057871862371549070844088076138041998693292029975688881674504140395324546474259851658557541107305572563261312087052241931735545096794762941804053993365419657942776598810725842500221954979213861517417284971472925938863839011382555546105003762780961593522466173032151273001186988362213018256844862999414364414261322854163789945576808581794388330408967225502294738379682482612137626802244765025502924897260951196072988133808526274760180158202707888308910698401686087991393535460926039532067082483432475344168977125660073790208012660701245038978354404825878496193040913104725965183564646580158341954185803960439815714007411294686885830328236175305734903125198799019884501121574858873798829119655110777754092267129355891713636796442044305832115463432126042050183406823304811738684435763358417044801378953945729808485167921306255254855058817991519724224127543106537422808274070939553386241256834832988828187644847668989032654598870529325047188477294808888214731847309915076688510630988166665355739450481072140915251821245870596636346734511747882998391204170492148882821813693870713751691673708562672221065591135719652787332503218048375978718865984356398001145728776619306418645685525260207572878395938188467005222842249709891975965907355188766470956021226187754927108283220615329386093617582951668121002405297187412855910679349692918878323621980488509840775020485243126608069578143764419104180179315313347774002505579527249254847097239504082073227683115538887504829817366662006821430901498391271975888393024267636645561733980235131168604376982835046622790954633015868303612497716029911208029023229075707148818271345892254618707967470196981387004405141050453057423842987393914947951936169441698875278691609912103430580296659508618266489016050983533954117341917813781442796390217176678826966477667319088569664629025525542212417711215785366843345452887762800094522806570654304266813037924040688672839660800742356162908343573797082509109353672573309923404146553940213914521362630508934546748187312241253880177784265563900513548409316255831868300900091158355736269016272692048505499349487973997810115737536786744906666118465187406443969200776741131584703893648170705382343333106635485266509484840683595117246214070766728135014235052072370069298802216809157490479331293559707533219037709027242423198956668836275893556587553967158250325121291758750430449734308422355922243280098796857035054467747050148460805724426735770733987560696048867301814128179711836345063659225779390935586874266389617979299347888614152707790543500779211368908492921316334888856861686649798843901294243398773080318059119538994605345541867661872550518565892222413181768751477684643563351744780274223507440659806374167467498938053829455263526109408909348591828534333170732928568761345947387724931301517624652260984532750459981276064548679485479751626289942242562594163710973454970872676005088236353422786650728599713494993532133406828383172634343868579499218064734475717382737845517605455638724472165190703569629185985153836102504612448930847767067967112129676232551153831478480272994241339953073576543930489355605832294023585800367753117562055979850120971462200822232390841434730129242274682557992531516689439964727391048658116225702061782825590604538572362668841803241008918626653608948918606849113396903668119550799696188107659047947308400056887403535234250638023265351925398033810309044395146638613815732426665737932336945104988586761655992326282919691547834700627687031716988403081982213912961025782159920714903256180097211736051582811918267204806148392908628199394645214108398393194491115898205847258516391086502463039822589557407276267814776507177585897759849133295558432948344305292727751289937822363703034363193472973381552409916388446233676336423199367582495452635783748463885478296881190554372053108004355857991040939923286050977861083370953231073130696458127133688571089579515438693010422214521237985557226523758950301455884043942482757176888361287624736627263103018957430929881903070301196881989310610125679813756715187265191116678393813295866525685698037052845896802770921920678292573057550657992493979376291804395376866162426539277347620850761896531245889882622945068055114891788070854345287901978849462865574783304436712683697969992606162292608559511999117536656981506212421315152560127723404658842445114193601138955385510231596413285997668058775437529525794098865902184495848439864927897078282942331861459286525957280955117539213713502310841296512820586003714198009916897953945554213993366468240405591002653819137357481519933721337841476011297980596404549616897454447216389570071860175557930154001788740134249926638235881818329549665857154730898644235992222920610569688552331324451594991584675463998175696178154863352195767493041007328165695078870364629850780205086759563963856774246142681500143101269369190878218875559310130533587164256998666995874364818761680404329947772304328418395913190296158294960211645096897766595832263751079911599296290839535020592727605210439211178067977317440991896187117642262114384279052711198764133202916851782911207891488213126625884386103247579481174951100301949687884919819544325496691115743276838514330110014508229407774853155876707562142999832277146469767552134016854051107184029102761004044427959954842941244634724700157895067337888544921724633461709489561619562786207700219363232616403594216940166679266580311696301911843069964209187920769722932477043077047304955476459132995403118474632319943070117113646591553597826610803869661640227632390171671170104847283540899163596387713964903855572509848879443397671718695416267534434653712116092363812311080750631871249162380290009308379141374566199731428515955551582121292188227679145678523238057715030486224053301089053279681340159926301769882468539997396531751585418200419920135209957046308961236352716526688510358110935824373116019331373315742085598370913468608179498401108044174715715097801866717495322219953195191785768257690666833011797559414329429775868461205310162994075019689074374892397126350599782268972249655352899742305728505817264945825666697289868874260374961261047054742545712219037746687624875315599775001190782048045093928574823423136160277824241704695886593566942920966357017556674260618639433498471395681096200964391479555539516853101809684782841775535359622768230921900744516284310200053703856298732664721269725238438141262951581815590110682604784476325762354336940966426021089021155067831625389799389720149393379146413085792974059639611651193797392419951734431660473322099812285678376224568997084943943872733946621963472041510697804040758187926709171382436874994927376758844002738951434532865665440347110876044479981509055298509991016880862706789642015782381162427423377415967217475750146636390123573537955044314218219822033490553549328933593477108822476869046894355457571913259874552950242628363957430737249318728081804917002169375272288379080605491928129020232224189590602899770122780532173315250750001531023846874321045709498432522389471952362773644827226922228381495640558981799259256098307633693750534055411113378454833366310814162827609787460126280906196062265164689876316910141607987956357152810323762841636014620540329551664280071482695551809210891531814895462140534436189581016484102132689405920107035914921369401715177851211505294148594743337691856728158672375718874924216557495420778018056110982056963136055420910485917539871045125040467098555409015223519595437620799115782507318288255083488198912987879312637161257865673365851252084767262104131003752735505540868610220698899071548316203578826115236819477877650863522665379197841673862524950780430255034164264069734003131321429979657135106063107628331484118203557011619296901247484282221871755253218770597601141837476941357719036201562111303980781082366080681840425007642380040092046005166716393020232326058441510819594539164269773461825137928990291538965884906604560084703410228966063597092263471719665131245212528744375004447697396366831709250407617143803167782547570719280830731964324873173726629634544556514325813574652063043388323246254149979352090197064055756422305071289709768615719077123676596482378183164313723627947013391711082526618600531073137106087967400979332128647366522626109995098428761978754623618370174612149632168704679388032102022041936880892015623441386001874956008432676965337971546781987457889941893025085138894861396217644891206556692657824887339930958011978874908166760479674110146464572995832104985884504838086493379696294011327676169956140849543035949224828841135576686481298470807224520818313225501338548401895756090870930092202405640097798917271907759013953443560378241448984489059940506747393667174408948455275697350597080995846285726255228499878212949131147060551222276164929858358732289527919603589035921551187923075363889914967524415470218236609211391511977747583377224619836775837400256041515325487905161618099630170078529909523857254046439880831882848298849007389956440145579956639789520803392210635598327942848367388978232181805543521163990091480114227944483594731675157559598818637971741846694934467323297366109644360828851763333590497628064895573526585968514038968567419083027274321979778308351856107762635222284245633741429017160267375551231437393754154612810909270102444519804422307835600695578510906159609524964601851357520986036386352078396809339917274251633436500683263436218596368454302121712069254343533447091614974468235177262510259892204981205025642594195320735385051927792680169913500037116233321531753900144090271992599107458614354439506079602699897913343853552777696935041022661237260972454195795754981752800693166826620101805508501717816455229511826319788494507019590265799014003521877710475165660365495460310962001365981818607284206790786877920888340638329385779880160283160618794432149976053317415772398079044652819900239188093435952906447999311594124987510179552720342731804638586715552026806916028970528927029469375039326566765167447697512032685942520563606749108974956895042273866914230170473482161212125863208220510360077695793640633077781414181062425967916443606965173996459908436777942591599196221073612687022635829485616300713306960465625422939174479243296407584055671301967656720824477368222759351320059421433019635799825126245907702496441276506263783103886656502980024898550844472117685950331561552542147442301381039478180208258652215127640087548606190981414883290949740925385517205395922443011088575987717771534758932780004253600946696269969762461757188047840406611445798223970454533116129817022866736270958832088381274818885639489248047865456851560939532289036623502983358242417169783335164110247908152178935740958962413153416836294576904533162321468937895277036742720387069126101623607014972993529069694151054559563863483720642533204357997618644039311311750413930977033628213082242097571209443658002166307689813565936089982397051116559363621651194862391057157655870554923121510220625001580508016474904565411622037574358129875061260947600566357025257256735519509341911986072834170011800675542130386130792819469586304962204714230238818985415443286112160770899137701311306878632910206660513902640777119765335030043376580550185529273456226076837254270710133671216956394314151962449354008243120910232599483860158569084652624832875965481604341177921820229478394142310456464649386743206916017074514214532745740221583183271877734272383552429768826760141172549406677454541624358708298871332936744727658774961503797088999005180146406069819409290100417661695693187606126358719890813699867930267352804623189486095998829985633292586732238981102244163296592226122291507764501662183154873154987955588247136352493446721916891786425824920163874416008888708786334636128209904702701518663310728335562790965382665817288752354825535413363861708009455275489058215278109786768956190001929778875882792910730091631419246995262109021458809623457037574475626952345035160957008746897354529548891674289805583110780430267675101273198069063309587783360446038941800565416636869204430189299694105489140865326469618235579889321458364290835317064944027583047824713134959127362267294329900860789519363887468158846708308521705394353050686520751547774180463282375326412199901669234063192627578884596908702145673452934328528024652524033909862927458458964090915881182220359431379782138441667577116254359932504426790666763558626296359010947229006382222653646620482005645390586432223444490996963399300727983329111286311572164502436936923069833717685100729361787365840859407517735389694827803737705179702216550940966072740931756083076774144799340650297963899612685142502884807770847036129324220283914713059991469388562954510833807121707151121406696367972181107514487443121930642692727870964824561233046809591178131546024699130666560913855303714182340585907846192677190058975182647424457214351287841177146647136939813874003420092133630685956196026379216342211475711368570656922387728241674476697165359103312104436471443566323020593476891429779585806947068190324730164477914665259927144762056588598062707062167362807871049338059160479185009936511789782417356264175970115954890642216049816777819558852000426273154735208513529494249408066770735966141778432056684876682307678114734535077533849950434016173561317316033144734669783965642249947669280122653907412388353494726176913553602883398309045146937600253898750809285461792815437255004610244424326621517376498093563440577892144564647093595216060738795547326912937215166915298081344253804433157301742265818554387831681700097136048927024716739256568614077506606049767904429746014588224483970817129624296027970380121796281594469801342104380314380002747303558745264304419806543268170145492192133360277770515462044078412265287399623561028651187195652581826991674762571631969936561850998217806070962187126343390188226651442979295594857247069751381880029188393819372834160670852153241819829081888877001349788647312743534517509644809413989222697130964813768167787242062285733287799568890918030104247091338627679966359368979454122296476507642073626971379047962413930034139600396791055998844039192498966551494295337569335165560664071745704939180718819061164974131856851628022880990866181576096477178609245169475861277575238728201566658732743019361314931405881111596673339804705202797835005855437063730406143086443923836173744056759528637177355120705952396504230858287519007614483752362740902251732655090510082168805351932036284739692421303370053035561493251654550836680207267212632858621011420248753079771342704967613171571097346201460128577106471605657861272847529723489793781816501889295942203266644717798578697803685156779452150281319197371078665652813737229898731018723265543950933512180406442135447379353786232613667320594578449725566313113714539557700815613648772988841595476565096653554135911793272814412098685627469681429336612359635643703057146132113578178469620155622271144166944262513787367313863542141861498848637743007053024287125447073018090829071287739227642243482732640207961047906212683443977577655301303113015421053965083678888183836409195081432278990199359494824472300940148315789330535264772469543208055101250739625025094109525202022538412375369081212649813506426812942420852940580454657254114966462685016147156057219265606653616437580963166541804966895852205157060698029139213479579360826203267047021388627196462451118331766745507403502499938711603538271852766011574897312012132991502580292034419603945632220768381772910466687492020445107620944746182972442116577211172333814771801666939028451191031355426216209824824161743120657049508382781416802846921518055220715877179737764869303982117203545600065103111501064000042014305054947783434037053079781331898215525670014679332081085831356118833620518234599184529574952635845323200492064969068029849903279862149301973619466963882215012414608278268970251997440649519797567355941539033122177095241469186173439054279014259336502591315010294993959532293064223216544627930287189108626112705669958179352349278449948429529477478764290006743632402292825610578483568444257201834139380996098906262220189434785977546211505111441368696847116198844221334481610620626100703820196088401034985732934778238285008853583817543234396103445228644109934748326793340677575373084804375238662663988165682687208422181747390911898107119455206281203926121897432979672200140535637295102214863069137495310929024022199393498240652978033583797464905157973036732779250915160409538890558987844085962575256658905834831039305388880577784861189772151135781526617779692834347694041702614712015927142719397025446503224962508825269737700028000368074796359574134128495934800571202206251363201266114479956970523957483261409774946507915426571099430002456188662623166423793155745858125080550464023617396022568637940655042022396451385104378316318320985300811747252798085414323330476574205247422219466137252298675657292985393099040979876239594622397746708322318909934074454915666921399177602092811539706425252433061175602684057787575332845604698062005004732808352447896112582655723317348213898910513787233305098228420363427514864134937385928195290591161686967546297519005185165413983221630270871970075642589642177836073648902780154641691916400488157215145965724720788728940123840628130604175725526169085562261248035521119569966466314486855735956499889289458058164823059558845602153868355728001377335755463699183765291358220283577058835040165667050691854898558172964234370211738701082412498910057333711876483801629395867664780131082870046965802864404196769250020175563689034336626966570692094943910919352145455594329982182267688004968723290189698115813605880227553094327735014393725458677020185741415563736753462104118507956120100474294640230480767589933560294282816927106045752750061825308669597979070089717027965575395328395608494481926485889274417837171507234553846109147067108584446640031148660470909279812928506383371542032175215567783347252497527793957192906104177977339915329189879317199611191097934626749577827826358796682870918703310836397741419229792558968497733553521778779498561764871794510933054670888602068476786915498759632957428869109193254686549356618822386751651066938888766209327230635941082624907871864699519777523353487668708947316497586628528420703359791100127300178295014159975769981680301555406604189937850466307224469677726694037440039001713176740874796055866757299801212315690551561428232870848301513545933614199436254172910323273424775725996714615419829592445025896513352240463318929116428805021325752192870933424750098537387316050784380025672733345913426799519444088292568284799847636404734111248912260581577125264672181874409356174520967145196479666856698338633862449405863390213208699944722750112976739674800423457015061551696979931440759633282658161461852213981075013048772564208178163036784946168808869446632320503555922090855696239869284148761621229547999248379497318634378797246397393407771520580947209803486500510328528315825257942021268366721425166935884330644763562259367983788821573093057798566856757095852669301862928596963826797283001580606213289389789493650994648451844755265895589064169556966928001344907502906822616748899214426885280029714405482641110985141379552314297635260509093042921869293326299258476979750513733015003367399509396067848135400385803499195765774300922501946621305284681670116089242076854449544251351576457729805387041318442160094288149637026018706210566322041751814843209732061610619104731195545112547504103669414940002305483571777084432200773788535967740316624628771929123467739736804853857053191269254829709981772496674212604890810171716026001428612804541543900224305226378991476484321415548814823474692240412422641880014902832505496770398180551732475784914171795841023208032898395422583727093553736900353989055413571064256813582862611568801839134878094345426044581816728904497657379561823658367682250756472022993090450304847682525094155012826625817374832190943769474595042696050192049769018374613893316602676380009961506866818667677580092694162404491416577688488276255658117329348693593834798052683324933637663908116365502163866712019071897345018146504802293196931641190534694343407510191321349169696638403536437350964490568272490966488070411200356906302621252820100094783655108271638860649457051546362739475178221939327946854588527112593859173383791501105833726396641520994632921144008357530078640327164158338537252316855863599233081610060548809856938530793142859879218260656273160550223527406754691695820793482925382851723464673577582428952977061199647788753074635014746491410183246977714613310232474673180981213463449274684620109354254169585667021211380250491142697365555672053351877303321495380097082645990967822256665355786066398506264938391402687611786323556138098302016681587980719175554929744965858117176739147595215164654446418693646622994047107242939186920320251524456794499008283268827225890791966993742448398645782378386052643199224821318104471962087768057021537852589228214214192030076822332306443682917199405383471739667759553088529486882227351392586695205203509311717846647465021004430426874110320575054617857632901203491527399286143496206115959719268476204562024107301539084896620589546807523238435231909383335857100830117387141206105655900546329891093349161943837347594630077948550744104396035811206539518515240671485869650894188179746976235652795277800726879524543651516848253399865042694265314307012048253864020053150284401826253809360583534370213140905956399542670555353281242293509847514269189623790270011388131165160888224052698165142740450936443006648648154089910717565904185724507021127137604010851095700764129128716149574405878244005975303089898852497724046788626619291214094444592971592932083095513028420120733915279192540460012911929922315650675831954247464687807836048486470589642749556622790314780303905714034138675032330404162926442260018629250302237031576003514431051269737682571102118705380672445355446619976748771419185386480325412873306483080446653215149401558719941336769246518108149020946142432899837067339677115558915122619172217323535107484144150311672266382266372120252715390695803328545518609172022437162794677324368050841070328293744406541820723853042730736386674584901649802772353779571343624696512482436122683024246969872428489438020659550544438332325488175151228225922508651682155259678912088938394812025522812456145570014345554475318827372310822334181154156250672762302713007839604484549353532740843955241860172676311023390644205036076110564346163700086364958290868748996779237156737576399005735219390818022927730267629736740331943096269393887687937989131614270974222349441611196542050414861595000855806018003255903735037863361328949113940676728336532402866474577302948718068421614574129635354480090648881883392053412172794019729378041676220643625974616386880456025345888679791890755080224417109197279703407668056913204947081894077836188304806498122745890275971712303834322499422839110437153584864518886986129709865504177591392739654866158566304237762884519872952378469638384330330906640153853434898164205980735784774526860695986438693918629133087950230044477313610545964228126244801987987874950130990446136989681792199200096926631581737556785222158523690322596732874151690928735101165246746356223500119366291541839859626040390861626043304453791060965783199278439613231681724171435421530581466530998324594385607277801009122241831959780765646576653702483268595750904326597313206907004075912087261587427438671891667217304179168767423948335954599301097154563331622016484986794189958094844649471756474686928276788895636178844866108243934908382749026602091091322519975764116297010032306827358003588422566673506756641143947904246256964902727007391239459704201669452808160679574724584278894823662385495716295967569173891981472682259966710027212604530250936694894158115236628786306284900479926322429111702428622497157363044454169316642397406984702069630181533795289986384527083097978024445808273222052900416223914779658737849181104360469801372138343754464804221327334284845044909133778487532071355552426906462884623076804021979222173530284326947707004811583152193566865420487495447353399091260078491913339372913306671500427463567057780727453336300993766388992932434054443897398904495290906021374852365520892986346268898169498186037241498233168246990202291585355180304737919360044795357946299425932919435704845738564110433699355276633867365575993060768310273440456617433703196059778932743030867261557095166394098751151267964220006330916049006539721516727982182628739530571657523534139881273404308630140471119331536187368847878634040597533403796750899391399858414362746060160596398522284913464394569516139723320556605695391907899321924839228771696908316247781218999187227866498709256299836028094491765332433996898228845676744241634658053559107899126556666700700055090816941058755000785035317359004175355611680157352458713488547317554602041988653527425337789371709529337506458005589743293427518959803785884838096348169261898699074681776060723588003204642689625179388970706753650510705456825658809818452215969309664011243060407941709191223815317966200640215813560347832084746682725399028950828406129642015085005230072734850279277902293289433667919631705769437564985359603652478075652558816647079679887087685700179243136293354727231693380844455569443196756808916610427049661768126389708636482243640889402423717429672292373034545593266975119293590783178112741786058166208064289894716849904708016332704483787807633990013513711994149945686819516025558094684351728107816931415200260404795946681788490814320462874900100795678972352886781208489754865986456831552087902228619095997255321263077042235431782380122168472173289678002045424888505704238995350260956738116861575956028719311943363045769376646434564695027547383889699617306492566654071393748305368385156025484061467512606677406432934982365981073086277195024916594000022391628999947332639844045548935401978029269355836587409302999661278147396769292132575000418820828264690942602461182701261685256992092487574845105138721581755603938387072421532791057489250958815279083866618657729169503134720547700500577417192698264484888815488311117366237723739886893579203037654428563882391554616771455758321484242126807283988292890233666216116757523130067449222092081153437377908077592983570358081974731390008418608667360878836551503314320546909486250383014162957952670559154006561704732201174560816291250771202081512054102587164326362252590373850300740354571491599161181791627053971717756321781536970184162988113836651538291200414966956919654225614427034824494638926810754893538653829445689728147934358207284068471728455398303378366729127105080459950169459321972156644560336672922642315790855430406102221914188576818006278478901152513739466707093652497051289286811742262027843381270904542726800893685465018302616672645548891676878550463378931805722671940892565370552225313360099900439208290012403069238432642243019281789314182749353562143297691688874779861584006528596241627536912871694283590465626244436973163327825519865548002915643327304746280496805442145746752961169658645500241791387257060580546085714971134603775222595659359341326132341196838716084375529447738436575848226833950076788744998003495776942238684940058457342199422403455789705936325208474190343247359869880453833579510742665048191520418359700678469801732399514083383771445930796772933262642250855511127923299775502220200625825846331013651106428369108163009435642357978159490844282491410605697475030472574652850700915293916415339168108819903373890498532648138768463524629715898243444279932225538049420968393070472621310688439742341679856059435628740445115736806297498336841909784272233938576124214927137987575362101505055751298208063756882154536775571512518234434714619678126166911652629016699578259183193505299019343906457770593738715065244485721245250630334459218225522529134685590688135098692959479549144641419356092121697718233647070367243348327155386281624309601433475772571208031587709513535995760751283221372959613956597064773016435900975658810824491028081914985866768621493385292069615621909819013480786167381890594785183824981244376382373243217339220018199482792136304105949289861935957823398502302186308096457276265807243275517822362600560453410003174501371466591128862139423283471513289890563703914513451742822962765220828790324262151447203311556076038645740031715787668412097755957604424978399457491239747174423372645570788493341429566954264742515992797242581488276799166354946521319879248292376322861999938983580433287525962394002568330992340313904555690419643897622127345726096849463693179147195117495813084942174531491023141713158164998390343579606660504713313611089237942084821645893054324834137026579642469408842531388323489462573516925644098536883031533177938588762623133723838551781194641483519096436070587136489328807640027951714686129074493508626555496993910839910229040904701896989855397496775554563617482360554554246603337878483036757755053191856610852298045271494439132196681556164672000228124083452784577837152966766230227255999685247766083454323574550648256691919318109462513449625839704955662207947758068623483849062218682824342981905679873165854609624100381626770834618589087062074995044425420623731939315602628546257926408907146415574166267171978315466488507597797229868608078246919980752319818790191824001758233754370410234935227698386058333329295090469655126553771785237545933488931153617802540031420505798919349763489854971355371338109563908358129224934648424843430112681522144082131179328177980805412932697697724039699630483481354075021797335116268010680281199559802761736091325061737622980865768106101738193462952846435737640532091734451902916517537108148875399427388910467951778284692634912821147701948873699895232404694357611041844563573783209561493259533131353000301546594105137787302371316935197190125582065473658726476331337647726416941427075537267846842307182229875973476184631240201248985250546940039849183129154356961657948710044284952307308482086460921941080732873086185921857256408619137333621447521774510308500168199264769403729443727240356968561656346142056630302422754922478120095753974600247589508147966010292121533007983440258711649175488292540634083958652117828174751526861054243108488704453623312352041657528746342329123293928171594374834735120114688431053186413231819886967667330237950860281852354041361644874292365044067813935244050980916021539772889056148872285425466260755108474925519546294049707296111783576415564536932615922235328739419722419112385209816802864702657908604989371577530606742980291083404664996800683250743133491012648257169387806110875553706350738155180936105296174668599916478287669806994129963123250733794857807445713881411412937469782468917951647769212302021878901163689960641393070474248477071973301083391914325422074956842564107442374142601892049412537601129097157413686672503438282628361099000615458872031853661912476247901565604840678321315431237835371394022825948838212292531336604318805548684604050904712075865813778571147026697419501892689556959278159593436071764244981840763358675530661190763694509923998982717094311805323122570370143816463980227251837699751770981508277488278224542585842363239837416879250011764161204616602882250461773124058623022854378930003699712264873336424060852589411685737672401034970924230247257216674036563876680216324762438026523026478264580923065513561131661165623803201946566311588312779454156718279136406549539424391100210570025588480740544566704274027968305067003664981068836123334530797644114742095055715657194041081481798926087063729993203261220480193981937519542377604350815577861230193446892592552484816222046927286132858475612487241619808102184127592830986080367232850669648514327818286565501781652168034102023368986800404616112934051146228229601803469022351320096885052022281923308927114145662818161772712688241451648710993068706719919352811240847930689314557930422100312097960989713967577633064707896777171280732716170756086583691215513248666339606156197797765591859039273154271201225238410664247437086415504869424501996925696179307900990006824543813209012901394441109806826177435630894631621607846923349349628594776651684604078598177927192415142224553602043097216492438391177593917659221480763136627834154124775954051413444453009941381196082762514956844538389755922754494958399338215904146920032944519926260517615325771454296694522680330296227123065005502803647867827295859811252954135541041487081853086340426776056156408541141189606028589775734801516920147117295695501189218142398541496569759118134217417398888351302880206837158987527622463256682028489943138720078514566937872625469485670973708375879119971715977503814585026599479396191364010129684695328808636742915890851465384122362319387077216715382459477032713122987655950297560839049786153967899284928275274557905304561020062324163567694032388821219031634183206439543007447001081379874569107965652619782629672721553636702257733564725587827233095483001663765679253532105651880523361104720326322877121935722195209945170948823349680248320859814812932797684029934097325498783531816543436412040362168860980023617543724848086390163402804252713630903094749814629490283496415859799258068479568954375826141549641655194007123045044349959052751622121463559478916435675840656519584254632578068167530919875971941322891813989169151584101807868011090599760069509598272233516695152301315475688836733890637737803168177613202374165457724898155337336267628093839459977237892322149039678578927370256677662107912587386698542857440140160995101881164213026790768889270759134694688337073981245245179993434815688490041405049153715668890348226352052416390006972658536280461865369759667044341751001686225629429606442245598898170620177513803839734504655879088320135342704991336823066294985916401368830605423569195009300772917125410519601533014587784028518100098999095188675049484690871609035287232534180342189011648339877900223669525442683644349783908716429358790237218193976056055675232337040208763362606439050981011754110714738331881413887379468051277311123341672770283331791494826968891048454929907750833219401494866637638778607674821324209654519865375764142099423394365667543398735652926311095694820563143304899469249688806293255417895422718531480847284458430245895850231582001068040090764309402107886561420792705983120795429853886355140163181810272311873393371825463903288652338344216099010612390545698120502466106409556775494421392873791725577431485367995156418749584452290935046188272569541134443453065467074067503822785159771777362883858122611174348574132859255776993791990860253011782768248686396550283079644428600019985529297140533129285170322663334633488040306674441863989733574419985864644412384568538476257341448831511613031354324521813627563147858918434275864700109755460418036129849364558034281667892372098789400952379982407879050289534922930803350492280728126459044602424521064910780346814711025261834171231542784211550591068864972440941899972498410216457321219408820676230703179875730406111153397353023704365038393603129117726949522542753853775685750127272720517284137761161222870867217499525600165809240844073131743049553953137354937760165355245188739982012934784989648339261728556070176278054037932654781029042775940951103508859344051884916167587236592004795753203201866213197081961016875790739234055414793232970087767561881833347822333427631393620345080189694337834364337941540390373824284400556445502693299282477145712937682065146092671815428462225655993324475635866734386563185112810634860310449715199248946556635942712188691011919161394047318442472558433907539503395740209197928776861731250947160595751840033967010633344259223232198317761247750036484342440362012661890412475066310952686449354571428271368507765715854860957288051509710126328614892421286385451760681317749812318800927501772722399003021347671466959830854486850295816504243551152376012093719785764440492761108730368191966892292530952223851623960584628405728388361365434103154943524765862009971809139343545583158346053131077884991234273905756468010984711704326819849871442169417427527109881882569968135876732235644127226629086864627614522145885424704201779107723448512897303361344962897276879592563124192621608238305152899489330161396927358569200587150646640914523718060259710796988784367694655599203212712164776525996401979095604973240242294167269771925212199259572223423677379381006827657399800413851039739399071774387817915994717419528009561122359127389486990105281927436741911931721984515754144062016197288003775494844845200952568284390917175896950008085394465322689837185502633349797554147474230028946302553362203650590909811634116311603346947617352188337150061840746220479718646402154982270437663914545110274182367687397824166302377085287756993920358616049305588649008543244757978683050971706038611986329431873048661566653585385849772618236824254977479963900777847898577602866956374318813788199122694901946648956683035825450158463563308148258571703905940578314684316508462893169137247133280355928982335751749110121673779246825772362830865220713532804751713416922689399020980219413280510711419609050313184192201905466014209218519127457181529665961296520760416252784232748063799646028240506993256051052326778909500681910306099982223720814551128392309524025735841288917913250318526332182288096233980533584503669629348839519163715688069996280574196025570205211481114205826303714279035497335477989205348826936013787070800802833253322726477766191873223651199466993091445641092491712842190791469205785721920303349533677426670270316636858844645941582176753136151612219892487840694526617643264647652788027889620292895627184299196508488521729400242278352034672422563144102049177026043995839592571151025076102972670174523069865932018099367563906559609781567386062577656522424038117663112516478900527932830443006719739799826844021245781499923432635666450763719166683775473927407913543259897479091798455580992673259754586546248920411341994327208919217920566575687204678783792666975894842476679121569979836347455258529728898576335319279581425024872337909061602766856557572985343964819019071921218963886902283768808634293403376334954263639621953145757318707191225205092650594292795109152804855483136394672910803006635279909266705220791258878201055847288978989676620373473759222703119234692567007030954572978349703262383505351039401261045401994616285462083143970485499736894840726824897048721662537362228670380558107871099741988166567600821462922050941956672881558985324491179638420131465023192249316283117470451767658463766726003753104388676564851211861816957399519961994497534405404034900126623949744382378686127560486327857510018937227622669373349189576048093165062300145659956649386545642977401812967395332634651483283992165526069979797894415596887530586610384768010715966456633491539701905477651044405379150367026395288965083568717812120858053757956874326010469130729522103353769183929233176655753022938867073946044980107692766056335398352178810384103992792687732709420519942987059035486352262113072936707903113630194246969646726167182627379962493370780783978388868117719155708381978820393239251368121186154292562477017400965001583781596187706574412143915626459648912143593711057280445430721386600774116192375971757247843432921487315002580892200242996521209983913938232094605419652338424999758693666545381286032493143841237075272276881938226798626959321723466568641051785717071561303779100303562928183493721572000956870645080643487256675929988593706148479528629184933167699526349231813758682361509301759719988291809250198074783113584903237511901503558920115435730656080254386552636235384927291139485850214265750352973469558125808845488665231086263952970915578438517423842651065380470736949520499140206281049241298673708906816465850895378585265353267591226219360432844874201376959861281521911317369151150747703945092216112793613956442293378858944236293035452588325731055861596496374397075251037886135990713053270692766414249724233152145749161794402364454121704867486244612247133686952370961699962509548850325137438529052507456436139470058807819179909863315828016843261206479635805506680910464914388316892518777468410471912168226943917832112469745470903415784711373191152220437880915572107716958591681892949593316767329212255142207121105657137633401831768050328910977448243551911041349718368146753709458234810760817058369557879320404711285463582939140404957514894521256737931932083732566805596956870388953316553435732432315169601022739021392907440015439253849025724700019706153782238833196636913808671246153511419127953444652214542634550942266794929625071722132545540723806695131590261124800014482559740421248216090809535256705778870636085111516033614415901644728528191304892595751890968484702565248854875606792376689066546474578923313166541638537550270204260098783812967737001851119721266790486563585926277602289720834309629888906802649994221042333793395861644098934937220411213759174247525622710458803614406406009550232184786183562127292337825488040126177502363433243494734834536117297874997144622667401195710489078616415498153955955906725826297547161240337584621049935815080252422752503641850150033660530292647936117689621193804699476223645832325384762814028072934922409878407678693375275264219442799934864579667642047537080093817703716389098711390626105263440683891062349800805593328221199585559194764227524028832976238677056124795031490655671591127418630007067909103446691619961679744237910515969199634653405582733107872448342034789145292019995362849451740745646221219709859917234383581277434339085592460220151306804043486917577188612752217784165105113555565444553386554074823795576766379321304199189031958189507972406295509343072708784520879073069525549188012914251598344293230430762035157070422586819687627612107847776159034056755280468700199359621547712541068872487732030060989454059874611290270953398546975999717885722180116365460229471635751306899617465938999109583353160087055904546104346201428643805404139757410133511038550328780631682640695679650478790221440485508075524325250529696444006329772559203215608450625781533166236988001554685818647449210678273304631867662277984943896733069802405100517672773327248299210129988858147276444175632585421782573045710575077402574690260372742413579504782010959664224326080963327373331089572441807276502205776027092338182387250636549676702947798520776426785462950280180907912234867583393692090052174846244472408835331353986746584063893652409632807089383393459588960327708208022074448205427406982578009716883377676972302688610901027520780239679903732557597536540196341024248614001146137420545831624609031094112010579317544482960554176047524077275371375438127456671431475742383144548393609018542213322521695506411598069888810986169192328656337659892959429725644591108841025324037448023444403511138659618846119311468768911369006303452648771137614533751046110466270426037120199965341664406103838033001550385230582651724682523200407837671441687151869853135167635437083342580642799115113843079370426834627286021974835888650848707591720038293649417781485015879300357762834775893505512947814585825736401067260640537495635197437559487241666176107756717841731024221972220326732433319536855716891679942391078777771254872444480725815758128841180635104924810470187970445678271489032565069526510804419287682347079021086191513349746647292821691834330569027053112948538529112077306271046251945219353507344987717781871930269761606117997314045223447997484516221422631204780736488059902535650255084208466285563937704601432004123651285803911115249655173402549671532073177597395825906358552921429583827932487796506899480546782705602243569725155305205812537858668086063287243288473173103927097866076625807476809492355902125956704386386670573521776886582488531402949777184578648339863576682714906428875263029185996379794714506667641220260196514467887728793869598719299969502452423742758451305253051855945751781236363174675629820797402396040931608821630424498993375165964770431216282787299259098880192759211750417524829969210906304203539010695227107815472256975868125033039066711434409833124625501977534314734043861286676983453988161769128436519207121604066829274187177668763061319868794100711873886067086643725697839524900835475397362957361849694145670585773840002801725958977196638651251704034157454566005053950943701232248094378146957964164573503721609556126567127521203712510754170283664942341620414371265025069132011405392845967478061020690331170712519156630138598844747372528463629067619614837999309807556137153207958420581739690459292007269612895913093837710617293256670970132881033183218977189808177424465322379901118425579921927589666956136185558410841271874615925404204885904341959852467929278467094813181672374768070656685360171054052526778527525790612819485339365654688363760061992029816328667786160073485993456224025392181964434929741535250084595240351595333601880354631893969942435917971707268159456222162888260167857240957254409392683915557621801863823200298935620930499225547228330060574357970315574259708223550070527405397443015306573370803010409250799160168385236078294085354355851852961661005159157431557072890066947809594389986269491612469549791887322472130429999380391290455136954839631876979923658926948932382997064643477389693537657549356066265645513281794817478652753961103436320933575243721393827514149971495173516507776477915481287695858726339604178628762374398922537450592466901881055384363551164356718414198014850697077617198818121832649155688483764546989826653485631502912526747246212639842286107897133286052873091150539968345907574311295699988323525126199345942709634016643497824313369268658875411956349583367666471363170719624615167408383460680070893961760373570787560470944312369578986997488014399274077776951140828752359594598789493185453919411004865917829925591393391823494272192837227258485969561383910981350792867062684358212936361898551576576075661613746320104106616862279974260228928048090176596861058797894614380765177965129955386964208486910196816559987572997489264459466452309413396362110298745602979641319398166657152831919793291654433107830288736900711127521143633377257290250672518375559864295499178161781061206180106853108768342854938197068416185494331924487250335098710505918949043966756962513059628112674673290327992079145195336936572866572765083208681500975479809905607795082384078853331921328424217171869804673178446236093911431350684690837364541323787431215196455132703402957541939917579924299773528824965275686729648164158498013862635081618001034649412965363686039248908859471461571153087606562327063236123570853637995246093948401005374477274630996250674759464043154076187341697710028991286285037729419963009585647634262849830809425919224977975479690964700898737231880114730632554244597823707490158426236848979084240163046841912281849892629696758927067222224663475874032900619971300325543042998548427246462085970995826895207995242178360797728502773227894470378346013843681302459731389232694168380399330226069912701601639776839047874134283213537090724364123534391813174629102223912369893753769784043494684257536911980941164424904842807502978250374757483752858590786382639481434677024669005006417151116351480673072664265581174899486126330212902450144255471908338470299651402398759820831488890298136565946245026041989715040718687492587284057629521482766016382551062660979423150208205732534332421189955326227557568345823521576943267675833166503625364626184940632398213980640242504659946473964153967658787667958699315209006436119623192880027679148115008078945262901723904385889718959008858966324754438051894241149302244984125773812258834517564039528653820539888792442489117303816750348473180214473327123097959396953719346357938833646200484154510531624988797860042418998568739149454685668274684357957397152227366603636721435065776482944062473877825842047603476860779784020985992871509203372159100781506072469289546343152086838542763554260408586214038994497501370847086900301678372190913645944088251527963490047462942415381406941886135798453454214638034418753966868440883454922714762818530914443238106372898769800030703542236148789112306769385264788253507203873948050541184094718941617766926486852011362916434509386150445506416811276549429743748854717079594977006868141611826174598091782070587703750479119126894740212567535372400928991778561079010189482872119436162170877612619060460085227917642754724215766538831991227536670487451220640520906802909952766615109544529886532882708025510796923608704796211448452721844616295775281584440721670383172421528138149747354575102123426650242848348951856390177005822297222645876839708926010209059504200884200097841580742977575112758114921728515421627752626214879436889938911644111582781650538011229123257879146507022848515601703943438834244347917261893633842358706905857775975540555128470682313045639554279125847740199631108686001008100947235891331029703413361660098777383654345067947581011631841210415071945841539509497252785789978583565639158530627910227684204604645680969956525341303573830731079208033626808652002184275086395055579722772835013671949131722420162268763151670220616362169269989349537065872102734731582844540437747973322164600315763480044210302624500324032208024306172024486038550600426548278231708670434758225128897538924228013080759024175467441866241236727320428667443327462427270864642201628592610974640730140144858853964546114736875670028922434566020527260269270095065109806246673385944226661301639594531635126039197889865770147502757170582236155288855382211517185375623845485149205955061345970163486819971039753611780686536303340063299213466894794014512709259743478000512650094959799610183961919865576570148618955294334970475715099951128506864112203424063292137196054827654479084068130724258411302647092068295639919719584992518793209120279612160396669338872567534036879126242809272235083591648918280538780766232625514883943803875367797482794496829871342812543970053418984430051706432672538178647058345975006508900943714844055435729807671690797534921691154747406724589545999550809019755169007822794515148565572226043575844949007768085668548619114075159213025320462643898377154415958039251487791757642423735028844367259680051759369529339713525459718091979876893789894818925634687092148181921736997017689158338764197059237485615112376897792445313241386259805163512759457448110907485984999517043956510192634012925626666734252624175490654300299083423115876047792309027409522905409314627504994351685532941827934123602644700221659314342695728247534538326864547736409265771561371635409263715455733907322559531560431316459401626368600679309066337953879333521317270787465371089515125794097285027722667779335098894608387265632839197083636944731551845692736704499693164145194099954737587831144954884872967904921276378179824113213315348425179678056795121217195557430954149718994166705166231482031252829460594627632808616659626457178595733601075168808016569428915627752246786945462584913467035341132929771174035892662734645356008156001128152340393551102937988063884962883555840538373845250853634493564880464789878919151979494799178504890625393323483678633441488238280232424001897371794480361183711112501164618790519773600476016041787368559286985385818679014158234983148442801257561740343527016832765812645956794545973156946786179564021524347894680971832212946519301550256646050682655312677038819968955110080943888104821457307826353686275560977247637785552977267448548984777638270518583618497230969488243149798878233326909892272010823473764315284988191043381056902144913773100241974497916390252242399725296858777894940630640797679638603380083578622696792443102215707482973556848531556298042221440162433667295537574801376222291106942058043725078999105642202434755850163149508104901615794210850434680549408600207915573803331612785421334535559640331589869680168423621560154932943313073397950726783942446087982052189301969257932992258339419353965431615055229645772374548641617314805602341226388933760587045560867890488164155386600632424091503226962866962761888032584614795052496569880839166592261579668097194514297474309075044699185104545601018952078120058746208177070941610500359835343349555111293660027276057739950471933563477482344738671659293178287364626486949600880330401699534837071191459805311388319663437263630392318634451847823154152440802056514712879346082548060896368750796556268370758194456946779613858800873010249531280832385059304134633859488469369947867157158963714663183760327919367372734716818848769576219700113279062631190429802251500206830299727460657333043472957731906955956413419784330756601094834300072678267574348222199985789234194726699843815602646417000441734438197039961651283513922735900986140429549029200113212675415547661195553589073030902684767481098761694005138118302455646386534041199302037893138348439806111020737948216317368379926424351359297971553816687178707851858202424188711168084775985574541101678850593280205176286959945698729090570576437277228124253595898401654643170749716626680245365350831342294490538786917584868605189308917899598031681457882606497534153593439589598665681048205545197376994177471481489867031918746586706560160922347363864791146875736819627060059895839268539725138218723683642997960759749702930798704676972793680432896700231584713753501979166746037520088663567654616847601474409851723463266749121965829477416984858695816701217549184656241830326182492817095480820267067431717585615824197314692268895641908075830623814393524449640040633903959307214457338939157705101012339970638140442041387592831470966940961915512389771225496013881289656136769197683233790830794805095109350602931897188650505965498188060888462864253073782596816710276891670218608111361146428610316050134270247249760121776698364327372256654549875815994471321236189726292810832284891881313603165534974307887352934490797779835784871844268188910407017589368484364444967886928172741778451546442891709337405575825681714123874567375459408847344137931082988472766666410573617121269002161691889348828790027294022205699831913573032072437851421342626204840329030935284087410860567492080451988718369320390494563666722259763847450592963420478667315934515727990179166445911150176681175359034651304273437303802589557835415802244100747002477771929596625362012898762961052664740567505237949689493966583587793979607949497376733192490611598983874012137987052400777438455114605810292945630827338272865594759413799940556199760747512143189365310963918779773173573250596189499684043636369070743541270039529263289698748133976943034087550239227714595937331009237806919342739621480189892040998952609667701456165410198023647223566379122943192362279666401558020673585806285061176972416361884450865524910378639080928998506522705854429751982411820014627017887555679019459073377048697300523596228802071440305877589862790989042811572263700915218206971133816236984486894093652407938579752397742843633769347788680064630998904537203326189164828600888635507485176019462781530085754775137211376850288941946970047186269863861010976221030577681256711011050649179477611704461557943101117211066797831230693691488309778323176465674876999199923992943412993207518805684952808358321373635159460648025271350417615243397444154327903825387976341642547706615804281565426391274569314122478176504467790093725199001393179132613436804807764445820101805122715943784917485768957897123730333127013168382279873750596657608945356996328929612985073220622715423936267659296223009047424154697641028838751420512443466922157894194879618745508731914400729852567785781218162039575694042655327642653079558640426713279173553512186568313317167907889865609535304327985370407067462146037525583611346805251033268304263260013186366852382292077637182047045443407301062703580800562033080001994689958242177997786527788514778982881106373188019624845317791294331647543507541229168898995847019316910053447790797134475508521575878147249319434888523182378980891494719393296668308508714351302400703623633391353546612285107674400934458845923580079670454894269911370603700152885119639852950899975104982987765817455928973550430832778621351011341530852453634709557245083670776420593603876302277031483592608379339686283169118185922025041419030221158277241641327365521671413512791993757140261315395284801738938572305884139112626255495062693269910697463219487681700458647639749962079980867486436450654370682258531508211628371717188471543407171526364821822441000837222427275430978830560672728247120747979593408123412843730942524021030060148498557795728020937914419605611213824025758438525331977593744870856483910619381228122206871093868728395998786403875740517426790263412374364955448890479146620292641235622022321909403816291395994135385599549404417803066246590840821562429959267546235371575007638438531292458357060867961706776026284097729702312151143558344332888715713533803644639742896892097664999303010863360212558097425916539155857179904145646694140929866495532857114415844517958386822000689844285048746951093201654561466760746165907655037176754506100197733382599247818035834744690876581328669274930344529501688713401367340210867098552360493811169958963910240610517827580457454608634822596962389617608537945176643845785671964212563474107350323205521238257021793886083949307344189150959762266288274791501557790517761319532667360168814527509703747961731519665942786534980324068302035042496279897437348574547379814213791193406892651918496191907407795630157252240537272288188555056099105035517188214602993228297959229382033078972397598415816444065776474835122057986223901278077351762092871677605877319261124321924597775841945038774909476684051856118970656947585979157365735215935699488209638196568087592701753454761417927510676620721677765878793748458081059367018430167487940569515921051894468548147016236513810719846890836888906445472973574495264102706750503014398224031955184784130103305061967259824680126745041401709033473622818492653573394995860335863386030335890364402335352944661226792007118627451869426019175631963910045140146521732126809292968462281757875690158628647153030856699407459628325874143755746981106669710456950092740668074655617940993143020588899248077277249183381349447613098603277620951490505428811519056155341126824628406045984355281702518567995307198507364913397804606244780667961925104942935564449061101967964833526645404706892888241301511878279997177828913655114265830892282060255275574907984105612871773661283601078959816915075080551666984349638942159407483842741190306596689629869106083533540125453193247967118417578303480254267203284775894839282453044828168325141219871743397496202999738272874019448230057516337367391756025486556813031772288078236553689152054770483111129875566475331277687219466133667225124171930810177162882831966141741915562676235502507145792105640272020873729494042335717120899462331760202959412253509127635093835235138466441070718870636000685607837073585447578588853415264887417274560569227820650972079124330571596772488163681031640148931513938876013320713877869751174769404088960173158784691300091967186148572940543240004237015698739930036267557310524624973783557498845424797122125953760537582157616551435942311577450999343686969406241915405504553267188997876234660432274905205714308039420029092517352227490780004889303059009915651691009172589950152562076400096615663997502009162631365755241964703818180847963197700333282766348784419529114794910811297237501379846705058669181688730859520629162354393769697256960147512146492286441706750283065877218894959114277252019254563864771662701700081576901847356771682436017645984592248720945223431014830862916325230383334366360222759067458147963961820885935174111075470460238280023407601696084149929936153051643715917340751618132424070869238556738819145913464650835935593763518333808332098032268009373223154295959374325310354562359128237920953988090514753147777388320842746583031852192805165003259962208941516532086896820966964224298426439921372541794777041904279254124887013459225700792820833416454194898950560556847322104968931599249743533219493188239296524279124331343904278464605624741268633347807525759014024821805511753204411310215561305407874987314116560957285512242404226148524738327823974687765714722891955645210607345897279306626711748168064232175781629455768598635256223495029845559631308486703009023600655302184035307480584620192438376628264484299191073838769470343810890205000879940346653573156953610436549745231248082187331587898683483896253443917041254231149642012790041505260016260194054312657056919097654171624709727669307173407144867160149683604174017808736334756863282157890373996299061621229107352451874793775936149849210773674911210713809111799054957585787004633791279575427553689329056696499674266989957067335007417708273979117439326471653436144648869904661460256618749173419021831817476283006556589196356546766029554603140742824423001805606952693752002037298815546645388496586184860168996087989411696956057057423369995180384171011048622915804660094807551296629204900661894823629266911434854811321036602222587617082604018381848919399075849236363540700432831520959826712166717264342217913445908067687683655386753257154795646779109673810371087501905087802073281903798138510410282277995382976695994422346846086150875281403816319186590386111693655695156193060812032294680799396744609665384433647501069082308974595857303512695112721782626973338140731661098255554211262770962076565470064331000916498651003702535214198191117463874220536737511713080345003336303141634567204255934019298298160593300287805042164861260177918163805941497153620061251672136236595796640402988732577115061854502173213074415094644736707043186039599711981644837210005434220795414670642856209957986945595643519027333569944397535816768570998444890851518797331709298248295874734690221415229739989142883199941806519936854536976440414098928726737671254003436916695361184730378496492885691107710111172253774535301597602765971603533101396221824558095565806835029121865125866332200742293908025736216134537444443447796943514712907577291580825817021055584456907651688760189766760256643264507555692926396452080682903990029392223870335578839475490284992950137981653964213560690964461644397813368474952400691412968466344313395928869351686325150305101208031451268978599920525852567378569554374449739408305787038789485711467652842897088326482957460452473028532938136709186226099632938775549687348055446894577827280894421354649352014893508052660538183255324011040200749230225490784006552683805088368285842877921352090450405085109462798209828342937459622050223160403874182739225160925858619779357029389495326026867231570540373991168098290773380574076861496468857491650641105572320868459451217213611338232540264560589615633597341756299258662877277205227740884022440653888632152589477921268935330255230405905516499478980075209343894172306512524455739496185295306189583089152567475606771637421192825752487501659385819083981145875008161379119696070329327677035550044745475665442193650904120257733874674885009144027219154918381316610689936225479677623545294193693542636173737047784782892866574723665272139116056174410496770216331750543366896954220010393427096280554745313192752499488992103099855907098421688450995768908887681567553375707154576649383106565257698816300102500648113260841972607341691187931323130123788921504233792608900446867669490945977932819868806604739429379417388736031271656144529220612734872195882729471593452391935476963679828832990456582684473829901394189861731300526232414101173154652603457251500644165312664815261972347080248713957247731507425701472308657568099962131677807604712499073280833031788560731909734421555183171708640561138498038850072985768717975060800164748259664744672746394241010567980141944545112689484736734086720001710844186727469567993122157647495630710688270509234124735070032993439688942375519145411059567405432210617754152141722076737273837518228043290711332966317067457172516008542876348894587057150536551626983082571492656701068062288761510885677510730465662951484726164321759889170649901780527778585288890382718947166508821602533977918008163208293302749246453388658429124561286356831809305360065026374690011278843330517895975977230572440917644908428729388280045950899567759651681899472633051153010011445102187564647115767525498171779944713322325617544456868396969893740478102693075478125336601261878929011931191616676287064224200310395640242513427684684365541492753882465480351565698612754518222419576684952399977256632086307960545649571030654210756477766581467870685325316485708073098958589550488038822628994626361154651911167725074476554817267961547909405450965789779786897031586547936037311804057036073326900231938817635529900744511513406504875188604239377585823065779172932346245930886476343320730139860176881561581315646006749478350499269063035284109209788832018185295757016956674717264868928542703453441406355771322232869490074629688754664948140682733098321769786318095460843572511838511195415784060847648761813218979676462556358446652879102375564947707295809043694069848982929777974618787347881907201193956354298325208605262249719110079984851903843517841238750232474929733124274596258544813932941173334267607642317318664380076671560601803251424466083051317499130571887577330393087673474301269920962725468443312078421303484516308224065710110378613778404053514541968829789565680757569582846617185252776157572048767841793951978391302996870360500411922826863261836938099717721265261228896559208934785770842691386253234526930621731184220931987708051000690900716217094306686155445498514110990782011139516283635380545177565096004030152775657220003023192311507185792376576738770223834697245080979125473927350926697783837653240874626985671350305229852339103764248183931713956994230341412725976394913490476954438852602465321031299048008028864057755711153166688549579132264037747294516019313315076954051725601381497257769654411062928461539173780664403661453636303528849557868668693847541139509464222920712367830194475550920019557432576627830376197079223839584835378260828316162442902632120459422820268540004675834956884058581773373463294493871936723100266069466724459654695779383556761207191363822392904384776072791541914621928135112772975354001910900185019608136872908086698400487998293170588845105645617450446020851792088922283191721272065466285159574780922770476237416914169107296411849470558659387981959015053426984485381548550163644752743633290158674628590448004801436849052167926360048423586474060792430961295669418486425084183876470987974015079691962978018698220070557755605561347426305246448394351795358870638484739453691683452111095582187624424847240240564842803524713436804097974353738440014728179551855843016856481746437703003304328933945342716184754615280120748690271352641994137369068977592499624393267968656569347369423596993285194350831963266015140021352970303977630220916581819396510935710484965627660850272532951075825585820084668053690625886946438134970358514883439703550514547218522129446796306067425951397526105213436092459380897945655527033380111715854318700530095383511472895264159199278081439441668306890440460915144359874112756181610460887712494220118745721001013053707666167631252176107808292103337859805950032984613234292078228152824258676644074816223481050966265241174006077597180802004753135660582757420544584184313003598399642215770805945868566643264923799531023651594242444406160323594184234711021904022031031766651766406917188818266444411678635787418854820629160677098836139986190779219970264993084001639121765252823694320323033346754173514054988793860074938353950373571329488799383769820242362041931712337158956093836203356016681525849124975828222268763609776903535004599469834728098277054291728643286277525431583135078945737039575171646197460830380196146278897657403289114066554096777993299941533179207063390752894158231450712704356657962897660334924830200600892437019149616508506767606210748001798276387056206617832494023835124212820096837103748860240149913474530012432532285290175099820948470075777640765912471327596868658215158772196031924528624014675007893785793138269494121405070465330432662723152291805130727669981330852318254118490263444199926443675375923041195923485538579621453970775343588277824514513659500462430239994889245819502317426467876447643525721656330798757175572300797243783927216089765046338611043504563746111413376088817143292139487830594593150739580984060717969254840992927871683980421126683522858246751041881953441243617831470965461288803525144164445626361384504399819046694121013811249267923250242163130101777805267023820877243209336238307968055201736278191893884009498332970451812008875795133713711459622814248631052684085041383719537080906952531196326481421335443307728615499265104712080973071965716989195627012960448178892401187073155837399244597378555361906439053757554603207500059651983853279048185897747322291685172961654749291787349032855245817507501150617036920281203592793614552770212492013899666733818423346509112682432577202956306694461950428247604961810206541962696476950330736951102242025383792826475770830722535496511369745665344688270059858495930759527127220142841799224742341554986070584326787521427737114937487462354832666027618758913172773736767789705459992821998406025760949809236983861825725057277323535917386807883594324349499651280844236995536372239707177355995155777227648431756273296152584033523272286034639414570089933950752303957893608554502531093412050540615267031571310069002800710659285757871582861599041341524764220807777547994848504136441822708814811026251084162356779413704066319926713756421611289362411900545311903872844632241482491385164843849433285887094973498278666862091134690963167616211194272556761591354600666160612874063889911486014813530744833472962298661222854396648967005712534131813063387564637468634781816177979799494902577626243551928516014490423860998816625408077635458892346229299327000063713363432009606964730621597542568556403265744958547217373584385702739332765817501911159344064905006443817676563642920540827748953210597258854529113594801375575069028791346165705499746949985612554461456056469222708774565170276766776968868440818139790335626043958484854231975134239384351253937306046341103198697719551198530468688808025526129246857404529319819772680731209217872840036965812581726519674234464375163450799729068363828094127211893230802320120195475895429912465160876710579581177556095721184466012432492043641180441206371810398078001420601993779564655984079418210198004348104519891260855985128179266775329297831179296029835286211329661424193683124360392388226799181959361187459923124953454292082782059193120676686863538826008087972661172333949139576872961920852909467345890088927221669101591778324521093666169462835904829628284848718914652161989247757837170407618695772514067575034855297852583550585142512123516109340785197151066203097608255223189153966224460252205971285018210381477567082972414444815088681133822020871696922132796586352238159871075844800172312482399561934352768102351107958512864315639843845665163348372513986140657764896994694305071680284149312659004378452917514198035452410871623484638706841524330676204681004092532056582894801018390792603141034551393513716635287350880796706118134260030525029407375873176625004025126149662132718707506808643798032316768183885512616450180661363970533601102543690273026420093153228315965690247089962955566424075134251560022677586715944591184201487845861270478368133240667195662054628441178191381517880532607004219081085114273631013861213620021244911150815820410946134794031833543888167261963679785723570825450122316587361962234934766146675042152778530072305500177091328492645223016515929850165829876149967596368082225890783115517284376367311881863874622295655740865840317474048852850538463961011049412214509013372112826730349013856892882659943233507284109551592097438953836074465140417609315237793244223336126513645523347283959818581839403405283237184569658346459506268659976538801295015284396457728575728018249231441615431481875707227466241203945437363765428088873709950319930530959482930740984216976857422581343108491922199705772723358311548273854121832845433865769480813357292742486217972971104392910896557989144492012552229184604245308889201563783038820204587870527013446150383722075424070348498724475065100322314715451279771313482995176742401164829224120800066546828121316156142175446620528181785724451391876003647603349611025590220205636464077773118656065104014399865912563605629259932627795998338467660138270446813449864396742944404564207264575420976010411880344454277782649844551953263990090916152503093185823146678102399448331160227991397034102875387191116277752515487772034321917115532259564450022009520233813288508722069784334583781699973368018792437610626560106527064865796169492972284975906257631098627262228139081866595500937297365426962826982357036410401571293180803869157661480753399924871190788102703320003021125944289648884741410506185648596634787035441681054868129003115779646075899266452301800312417937370722246111249074926492855364795115857661170808893564274157961813239150995573257550518128969680327844585333328376329921878274368457555039928534651851625881688914505637640904401829692568867012186532122467144477803981385549244646807347900519592782343013033201091143655163273519357369842547401930354963141018501246095208162646119345791001190336568308856075915657284488855543533579980447447671124489971997909232964312249050348465856860161185059430760901540607102622066894040218742624802035627122564346626827549303809186709063029833509562594149087853068192183659937203190697318765305513573036543790045648973778300220343450084380741871038164328543024596267108258232384970293554727421639354259690214923160319545070902339782257856657852364147490890205305702385289671879508704031715167639747791025365708611339644043763070152839745303153773297396858710717326699534002898794951842570382629234619218437642196217579121010656908146648100104150482777097728059290657102573305896306001637919661126154016592027119352156704074280107306875312455160695430270919380633880528009725163834332644408309912134680639187256406698260478297436715109487169647421402746258514272733419629214733855401450997429438327834515073616703880518698194934769947811178691530640870003463949921707760124496139697150641186935600773737710931404444681421790510481150673980405118071873037322624238282971269936762471654151499701111807852718595284461107200252932819215804403293569031078523456255732288911215012763732199614912217067206555992417357116596512258687573211247408911587900806316699591835882627879529085743866912008760852682045777618046122016239214091665189899063113326161801321110343418344945774362484751827925536336680421999835930872758980676861097954979467564409884381646117933382433393724867544618473603988795674253588040987706987420242973204329218604751435253727576694005255305080662984550818038650833681191990122271328660779287275044427403347957102113982928603029926512502836550208699481419816808147156382352163222083901967337360340363498014724572553217754042376988891899768372421462097044732699647100844814017791195886262136439315154208364523160339732449947532429185626036858691126377014777114964324294300588857003430357916715029622112288910683783562021294830546486170480645853378838763827310443422646888493467060860135520970868146828922405269075920718390754618349524137449296918587834731769768530160417852533306878985042644839516085178317732127052626584122082948235473010328460091072257283855148701882672160458771090701870535347913380624985819882808952798482110436536846322668358616856585050209289740569595781613366483097959774385095386252453109429780887745066559253743279249012115405933723818477288792041762989519571429623471131459297132631172809263700471059711418064261080521598371082596593394921121206498201462369752843916063305299181905287434663405585480666258425450207028121391403478281687344656110106889601325842622031666123081471610821016295471866769812123973236552862732552079981675554113069822885203182219510443725194759056758200258219467301142496317042040082983346590738802344876296811473288587849053795187672107136395317323522804838074093826883050018858801821797770578389218121926054615039882701316806994498545283844570716074297751517945716009094013147155160193159648717977511168151291350443348106357797781484243650432840682800646790361034178380162552776309395178362293325035849785837004035160090490289322728048007576405958529678829603833263487202630321905571867324183225363814883265390218298073394494119770399335430962439436642090751108506376365019803839383214443132033690649267852741936954728390582124032290771552778586343620142690970875382944279181387689650679520003229852452009103220615843879032526054979305991626190618519420673254622995792439386485405092035880612462696022130301961833421420023297478834121497500307427437289802756719096925968414449465964668249531368172774839779311860749532161329302302120240424852451663396683028712309461838176101709409821703760846972864884650536118689462232692540885578101035666863487380959566323570521157026450607504650164862624136323956587967033477762594550694445411585472791098794509234316306484078545894517120168804835555968228728566606047586554043963764910156460255940930128231278958515207155989626933966485076091950127229568280067670898573040149162231035906054245680378739797924170224650394672963657589514636947999941599006783752385689518118432384743759086003380288432597649776144977257198061170311815715371668008402859053732741899071167920719108540086755332119685933121050773642053036570091184444644431380131009279955254792947531398405538322915132905659499928987173536902092010388704889841704262484812771943650779677323523788015678777333414793041183273568087208829576545794904118624668939429228508700214743542019325471984081878905453058277519573884258315227617817265893226346631823724062446139632186584593035520057259566593092290224878994600637276746428552933623693824844313421464937993385452390826311530132069749291540051388965932372258810207657055108746833003878406658256926220344002381174844263337205186909436312629430677562417874535042646024757233456747608546147039812983144688452751695558644333759546766544052914697567056052760303473453728702520277635684000179966726706024037731424808718176152745228707241343311897042494180658318261251476463780682836981199790904491043014212895319779849285627442455129822361665357773008372691163417381619430070496252939242455714939086049821956066777067755210563435040433605872293127032057709187656888732750250275767117668703496435902588021893607189335795666039190354799884840139242495399907836003260063931075617889926655944584117218038311808949782187605120973656957737906984981373562604097714519224179129177286233371739259278549929683442330190086347969186189659088330199602238612974933793821465464246152964449181459514245798727905779749104899031152515647300857771434823430055023170171157908072707659074435015892936528190145299806049423974516230123190528726904374568740318711220099168078972774957237413021226811203139039214725108841214937794436491025271598788394372029643295505957941937542032960411952165393157683307810834525005011887282274365077131650619051600867072616106360434535600361240704232369712851158597724984940909932589270496729636694171251813671669645388114447296749481602972112035684320463076088807566308387132401167152833431684850392637151434886636193695740671317853041243505806183971523781287637026371126935855980217823851373670824229929226090910841857191915516683009697405048905861994188766688715569841533908670523886086190602030929799602640484456938353933356912154102620223769490381518771124957014156327197559926444912254492158238353837184697364957317317188135191123261320025412978502790988522042707031377228299865789075569326165940914574221120008009203236114423328296734460310495205542622514037457673130965997632876352650434467716295173324408341309144032542446630077348427263649219338761292947343586574845002031090396481982029611084163407397010319213615000376683866791540539669307072711979482371537172662413168908331619535294922482052865704062740891816586531574292547806811644516765920488818002500670002662882231976540466135929355648845594631843732931519780027578887508011203371453491816140573560578855350009276178157329462256796463465920806591304442743846088463299385589767855013037702155162119956165123820040939542362389360438754873834544673048680600240761989465744049267081305788127427133554218289520188328548334566904486818101908449934389979227810748233947212962138495418811532538757397728840426114853236980314779945139571189529596323423288066143811185313172903051674098177987678656069199082047537784743973041007638437613249323888743741661184255415449227993828077700513068547771951055342317571953300017024974085579042526598358185709132178651876357565716339589324330847708072406284409560886527798671979904250621266740063983497270811763791309864452569043966410995589826348588959779858371520972527361783402140474496410175390723232824792055834723524338094639467277266454916060128355593895644535305865179539039198904431490808230939733531188464350471511843966813879629937156555746559282571755506619147645730746519817787955201434986956889047620349077150126824489249596467480046999794788862846717637748201735056013651535940357698261642696573547498470953977670791243354488470581524909904625606061287393781970202796332767116223144414802487153643255948478575049830008907066318690497080924177249962678049153504040019065633967255085341110991402451286360987291314283120061434763835696853456121093414043552043092740379847922514352629055097895703231290898965355958560262318037195868727633375066607768100526738718734347908272076904809487870241622704106134413416137561713318585410294316762165835085791794408500718833178637970772682935611337951483810492874673416084367658289510164599297435154068778630900882965982817736729320650037256592536271068153266957032083623311444542149657947672686647571309739118908766162306659103353207262322821718120277127862699977368650800080200098066671136510115434280234986923877061811969042394838650685040569869390967011335611396694467061356742217479114949906460069782699878838397815189645371913722997475653561575559978358019904679088442604034390027511513253035018252304549884000577720808476629443463364280447413668138531796470933686620963743891729164011751466372785399428160627233664572103899565161357481291185066916681510205804747841037841172698105496255504924201880036001967278969681467320725010756473639623335309241927553473584958198319882298268552012851901339721937223904432802601730217016715533832562595113619005645445214608424892837088734788012315519612627048168849733737757966825977541928838347598782322444195462511015471462598219486928240206830815354757399736992599336803749458192646950764412593306260766276562666525536218905341651244755215814751940083763722543209274773422049394832382182717470867671013000283784416484781545577369987278942169472218423853419065120233726182347940899259565047316165375618722617017708463247039066719311094042224991941711673138664332544741608223009896258383754103267395698512050099176014319803037315074741808439696523918558366980878342145694204235759624022934133857786573958068949624486621356400994438459225192326389632036385606028260454014817440475526556775789402084547673129747131346168907591767492183436972318115519935140821101768196205358779788295053267783280973002581071985453463674142974906264643980497758631168238130402906946741766106450143317657438005412907430747751716582043878646351610652689287649206533529388573859416768397135932202174166492519436881932891881791491022033268379473793422360890204208149163786316600211239691396948296790225699686414860455852178515857302045607599996667988951060529655870039107597183950874640683875760032392814762821957028255543278823366124745473867961998756221387905808759587680740811721173481232508210805728516009081672260031435438597959102349999231702332338245911539378400425736140124773692677117995763302386418468576052284441591406849690414172056568840448972793267845659744926404773152401796071122909277525686604134329666469914393123456032780683098424106095571312909601539489188994322362328052124541716076289942585606224625724629174162456265671667819693711697438908947108750429621222880557314072396958215603849097611509980077773329841826033462039535174991835245369451966779939069741027314321831418010325323433878740291373560829689383428085350375824786698843148264425897429658671081167227895289440650520402133805367162697022737720369943264351189982456594056778000281100291007065813361347911835205501057803090327598809643884549136572315625244638665367546304034543006168584073773012081584093599626672717738337925454199058870012789892686283660257777106016295162107273493698462638215328077216744646238318012469313946991015157819020071402139226572598943606159404122622873189006488717888603597019611571145933282015054188615731940485965545378136622621263167072590913151970232662897467313774687828193043215453997748417059689159714082872278348623340625732294170741087016033840766487946674379150561555131411428628603408228433104275448297937264057696026760833838411695591414019301221005898355483795684222199058697398340885535591197573679436631054783206697459229183445443256152128271113181218877071819377545137624195255595947350091280055942592059643904695106774897534046913009213999647017414243505630891878481587342999184598563668406211545638908377520324524287906886155788835711542452435743642287281165010190766383250764875619571025400173979010081131312068805335270702229597256449155105098952953286723135989352585431706096121445868017673309559257081744490935353081313140090217946523916279874112743115505954603193190628513867715833648247170067610227024530484738113306843600944691350732836934692846057926601948442249308477755586227511658721486316821147846090966259438343068776496812955819284090973930644041658691006863225149935669111584165842412000948489744559100186815774754094053254889134657829229878664491325421328016554311334350509626380833676215872850844225701291214813352359590921674407678906394176678451821236458075399027846084359018735970101186956780268963606417528625801089407362211063203638423937863410463869456177442578351084952429814555724462946995774097649308138538677490905365110615407496434386648310781607855888557511853455765727996499277497478641418160225750924523444007803295401199812054944618500328090682008969880786084407004971810847825374297490524134048987601580553915366438152062637163893662520986033885836351855486678618765965574676226576787327305221895183946909618205652426738416543479537758223968254119335348290536508434628747132650425576286106351291658384351703997926347100618074589004877657493221508514963681632177857383143064511229020925310964856625909868718978333712601138929846887058104133965049247249570398071721491003538257082901000360332023986170658338500656417176344359489428682629054078957950026447396039814540084451551887755226364135650325947629700067718618889935327954786633258935698235373500470187005300701820696769094256435160341685665289253328611065515908936116259692202313043904364885959285852212630344755848519220415151008500279775146607043941678411171677562558507701900933817121069008395063933167244507260683057517736491955515603077563063466290445296672160866442409840054173787016862160535964023193268500243012011624783988962684741063364168009475890431963766528480669715204571337726267522509337066676381473162045007164675861194362676303013025782402514303091766125648515068772454089427282402593833090557240788544160332727909947480149967964948068444969144226536458250863460718071668254261241258254973262362144770775295374760264703206733336333951881273848864632918460519479838996941860057081787700708079549138340287586422048506381262932410951323494146538151580179613356693292217479983775775408798718588724263571785712972921160084249431760999483619897375659053766220221509358438244708093413191562636034169349493333841642005665626993998602205064740233779131362900518126133647007447235832069771258440470701285819571911953679900435477989369811510370291914884763719147016296639502173846775188883026335285750608304276346848184242091513274715881431267692087790650635694649144551082248617823243897676153790823652222159131647861087128876983803168023186182194364190508989414996331316735706739826605103429641391825141551899164373080994073660262900675614265582302458443879300740658098837538462986240279068547171179149884429265537362472365019545689126547842263579861275731238461132465636962131943094850873444599130593424588978585854513150426900299764754976550269529785930494235016431766295627975295948640826003790264887691338524107988645217712040311709908127150483802660630486917909392784950500114943700129245844889485158531278253527857463286578081657691838776904980252123085301166283307624148441247223543362121021914095624727540088152854436703665372763128604846776109958475362197702370174266140795506518089748952224228946887815718137383924713364230888902286871033009687152051245879114376630165441388742107710095454299331308957822181465586488588587572871800128987153621193991643951065455499058783737545196158705115032741014988888474792558814851661849239216745771457019470013346236056278862117121663991215302386822797082368633420851983643840624472105668180727608728890948815236412384723319547925354556482593183917132370437280612338528446006168611976595213888464766383243277166657036715700198176268468454603177181678837496437077772121474261273379025065200776669563760544367586721186918509245017473783476677110516147227604234766584372832015262511745015785873989570422813947364026353657471431154439231305852964563516144851726673516047636414890466101454300082888110508217149261277307703468599080347658038156010567475187467604938373358803982882890286109102354040987195032635881391267673478914442430171895727567025870497899103338494738211046064305467420346220789621431034611180209324319050794820266011859136190841775613288902212343560954195014959735783845168706486025143482908478619972997017301388780710289196228709265873593756905205717301340998471170833011254965054098416637912587278567676093275656961022959307442656008590036442682697064504676951394242822849231420627058104312686507881495607307333567185412276159765037452364525311659845446612770762175762449073068341821463747890484791634519718410983337656831731429408820730396554104840016507007039729892822458640984973646748163059027258321126718495071063408267704419098773286075756034352282179838991500841090529083383385225260668262394410857193110022473252599264302325810267094443795866356488405470709998347898544591978994436697905337344817522373346823010663346380028872699304370976241391613553697163566096183537982161343845035903026176219206868915535443693106976380177468854792285389011573238694407355046322031702025129552790474274308161175081868444509570905937217174500195209200499809640642313554851168878520354641921976373903560110117899550404799542905445697901475674221028313669258874911215600513908223685973662424244116858738554614724847684894728653601803116268456953167983520439944419333031052605854100664062209951065978969851996754644866509118646570015914008724422524430182501145780619570763314237541648559779697067744356721356799624751782633625448592558485022450491668243236331006289105231482162439403988133192226448161746570401330467012998397872683310400483952193362316277500191084966001362917981343653505884826429543229868936859591039294316274103361864366811517329116425802530990660577834834283060780926453319498982458713348003830502231812763052438760916067324559532155743725150389039780224851080949990187471814142504891878793509897636148793923355142543844704561783463764013811692050279442959784366866744812329202613294990345251075709016739788468150723228352633151678607853169211655286270049768884573948886609713474199148836279681539893932237470078880295874759251977963905351351768999744858674744079350777189498393210484054633963048967870052377514559319365350889250000069239504978740208145052840559948526840341999211102515613143145758140093971465736279463816708617589734364944035820520873651722827464999267765047470841871963462976153275986774653835633714937377661485592229686954679953987702726567000066313915241765774721347934290596615001148675272033504368336467705853810452448076758001506329179065995139291199985402137540056115450610469044223094120687388976652682154705911785973596778020111215034506741974593077329028017614109083464387809326220406713435841129231243477497985272103437282283593304163813395883525809599368918636325751535086513295729446797248430350604183191383313760615539651064457862464677372648368474556992714224614946162055886859124663340362513205516362343604843049678587899941515146719669955111727831492508823494052386050039028639376853127852406071577550938438081424060496419082532640575895279900127535575770635559693045021669947996378284484091262826385121409458573358159286684774120754143647473930907957217662914445686918756394908500923316579839909244639281520295273942577060854288547305728336885879805920187759421760764199972686923643857191667909918386970781006646102191825107517801228378889478715160130574047734582717890785696014568494469267036785654464872761626259712963270948108709534111369724818153264341317753843190551667465851815537094945332933312521102603102156215272713114998187679116414573541591868822028819505261120494845685385837515480508815227293340142414481911748372021384713985016402423469181570510644067032949892771105496143060609404094748990017026327662734855697998361200858635136706291420648737854307709719365887519989268848215068110665513391201332036390906456607384271818883486869838580905324475579361133386720816961686401225248513424681225088026195258523716859270223195783558921826683081141208856714024920541039014243766979621955624327989963282219503047408689110629791445660859337728652062607952385868132946483017013849699269437039802722519933812787672119923331806073941824125305285095574055970249524767488310676427921597097929575006035178444465685489032950361879984184000910062810539921150930146137873437549772205508483759369283039277838967717757130947506105566206470813274103376128994720271100599791778870588610982624610805833702665540173990835567555718737546858372930839548873211818581919864935654226697515305447189548927257363158660483969400560248842478840419978631511038278228337141911033077624522150293620443056739805526255630806951902663665205572885956676427447879076033519451112924274836073182417148513893836155808448342109424101702533729763024413895390246429123245788050661029475557589798317589411316150975133296985690139436624354867798031198305961873055455149778173717187217655356130933398588465319968540498229912306463164516378840966122484404586673182003793864223566449192423067244077650275249635734455108199708000162399664413461434975844408506340560405031597116450049062241094351609107012773465459644198511965251903191782709715862977594204913711180562535449002702715427912642998129403411605439654482609504275252772942519836419346416883632280616180691531215291794258294697601301485387194010943731203453396765281197818729814932333903220728503422255853935624842657697778775295339277315765907738314346725928224231554470727515329492611113464692208461976508642771992641367866323870953550757225257800472563171425482978596536113196582419955860461332169604832949350919361812717562534287020941909297540953362833222532085356099547714840796584369784308936392022791701866963845595489977528615773689810083038041715487408334515563041869287818828184418676022063568766534227974939414386051969612952451117414283307074480763675812322584777550066999285383769141966374403316883466113892332317419842789605554994201172623388853216032839640743140653242327552270977032284144878572265978886021774753126879425165884753373050180728292988760612973789393828800182856010138646131158830684879178459375917933602784963388780224956087354264969690801964236751487994086854998134479005437862274645505598971867836311677029041883317998683484656293506632151011080691299392251314678467162093192787872025717818696933282179897157417677543477781198387527320452422307762613994025688850869277721029642551962607304661807898841716135729406224620343836414332088864985233765369843351799320422982830309118491766298438431001229678899135768931094834936587923547594389878838066968894224593197726204934163591890860604353948202078083350206980930034634299228723109269083860138639658418811566125346839756229955788598986728608153899787925981368829484529842197753020969922860839582948137881702555523208683097050080012678403384127510093215620528850747373393760152973188474156573546158391181067410646779017966635601606132071295610018802211264799126900204409208334694276748940928993661087048472206168826843736457813296610616020695378976880253642754478491209036301070760852422701706426602867337269241277030953629370779781349520317211665612338190148397698221572591945017753082153891517139874943361484589596979579738120458700807777073192726495593198518279374224144698330668759949334426688877013690078682567584860844658475035982513737398859622769579816242205085789118279660076341009625695791999900117415951858921344998076802642332294444741213482749694474211980532941038248782237046975575277583558135906170668246185909166464166500240759830177711032316528276119380205868828798468013921225500040474523567309329801578558390071199275296749790671439609041901354751775878144928234999487610013282329543690694134917645385730896429873041204408478708549777149356433323938825291093114711982433159169550556054563112523313538854139928581152816792676378377364361974528896169815967936371386625775201087280289530779146250017652570207451070558560039500305363415253107934321976782052128904944609091263966903312949337596929043384791142450616160689931743641042183435527904310174831028792761949621448638720021975274340227950013215326563034564206614229569714645636426611574911180512521199612650696904151012090956860415452595604360721686215593990494874980946759703681767222191772979122652032253431028266189664719853358968614233017354631929795692243503834641592650153032499740824891989758620537348382488723927689643049556544641112338774550092524444917276575495375835011030818942077985102516443081101905624977437223214655459504992437467494178569316120552782712532764995849920468615048262093672817064879638892237181535360523232660862494415925444966778689421761275480767820322842757292882568627817166589816889730078691051065652129436481055403897185097049186375805827066363528046468103552084543857161022596260086386436533346541217702893969498659763530894656131112455423375938238694108979719386522751038937543983171249322642482631749479296783762461113211769603035420235250912809269707539354275848675241282318267369117961615197510539128083879193909488940613224183570776769613566368826632817926705498577694493731439910154081757733059355536007716492347558393035252607458052526723193055453054086488021284212148339977379965501453732557729999085738838607125806019509221663092693051997304110534653715701820674664695248701980031221702303648241409242277092208513585095646952957179718537482615721538707132013952816578946158524050941248475462872332969744502790570748386240496744934471186543453533251359178175271847416031091371646823153369869302498146061197531477110903424959497130873261425624078447665933855993105542977893735877799263555766140431654626698179372479541199587930296670656428361041348232681706449106523350700931520401698654079180470311958517202060460324677704542181180766013511088076088526237581035944843833022384611256545643485724194920919703638394756382601037208054204277300174329241547698910426334371585547191333040856323785326515313660925156658810931749164626087744874436696383493244742276969190151955031810905242486169496217582304308904875442769045355422145222203678293517666263684986467735686029346558575041341558886097324986023769990479799080155384297674551038438364767037389888284481221933240916812442341593535510790298682072343710106652331800647857504681291081870368707078133649488432633089615312512331278876239308918360556321703744812354938754533639014960367793229404482593331190982152548807172074643522700844886431396864239628163174864703416375469356526266011383220870230098430120088607299492869266688699822502760825801905850828390376357941063908281562472679007825603118123323291799300191341802457280218096617138463761077312909077419085740581013962252517063105139008264308578884505290735021508709112499050603359480135077800024704155825759471504376318217189477316343681301064068923777649714539805513138107603582998802340807535017329595004198244131690968732545187385339457931181253018843478708132681700141268739858019419005708926380285557759486426878933657175987991726486457152304584980494522359277742514330236380250525872444119010119702725804161557924218161051318649511727313516662931327934012140714022388900937168571515065047929256885332252866900448147646959074236508833676818692734469444458706205412684983285174243167884372190405910783196753769320728597933259544032297980073172420560657740883567979163407485858656067561918012708159058464929804030601258656122152699925643673237840248688166852072011522098668067733480915021028414812635858946881894174771965872468146668257301418139431247697659555760166319689794793006969041522310907019884669193904154283043300022594188951323040694993268667025674167711372557710141606117091300481051057645668035754838933047290414221903511973235042800672672191967642782023916227946260795752845302264417708612075309041711444505043134262710779778737281528475397360212161844395912706625912857303065344045477967924346599042020010018754178260476499343712420520332557399358214351014794105914673773700469573198262145565164830925600447023238603667276874823891769865804603457302833617116717115905037313415678927381375320932507543542680153241351190149159181068370811721221217840229848470577289260593615188135230255315027452272574286140228110710593830311479888195764505461405759587613685933885468306871324576397168681556763681469280977808847460353220713217404495462912903197226210747188673294428625426078938562682378684106248521402052221367016034624352056396302134721120596766902416246376490946952198004730889037170158594897363501694981699220762284603472459293781583082441236975649395446237708760104559294051406344422024001260860558408366300148950671336057209617441778980480578841067262197353345877534845542788493854113887732323805240057004275296133048761659333691827156683356196338528744221359692247857856106750624813583321131275519961993725470420110651599053807487569789175039547814790175103735519053745324472326489240636121859154684344335216941915562507972026622170707770054345461606046426349989630206207742820831485644523679238027483680293978799572206871551514010310496487173373595384195862238928718581072830804968647609739109087917555410845111808757542776027437085123013123300465076872998140988315616334859459969155395482632012479839113876908729846743618282300283708843575141403846085768172233614756540037760699225857343568869561974841635275412861982642638916611208638547227081298616697866856150388784243292107911428897094280859059445668172114958374942960295298155569671763939199361209554825003852090832623842203259635182633925988034855871892614884361684192587952079754829298893773150850933326035008892179398214838847099096244647425702335761897005386394146398952918919441417348480494068032627813541356710192613988292752928105301418494878295396228439187987406390211556271929468409520152845652000145490314010036152634975780240231946478613965125364603441450906788005757567526449650201696955968343581288668291294001438733656760125992714762905628544923850420758503352848883944300937624208738061737683906676165969585937460438888711950083678934865134981876772707708815451603334760819587137671091459734291318863826786469058780141208573882567289493278256507274945080835117127532993238388451073850050814532230060572882564979644836399695563500830769128066977231962151110387945956235552844516965819572222233666274559001651980605453548251101144749303688046242019891312087606086993304747252031797433800252703516967787909134754185349648344685027921324151977350426625157010762806234607104470006167548826584367504501719301378327395620721514767943103739488612071571772965190120175788371971419979701997253290905510153001377252212975911365554483907205699087840309925530060902994898663649666702167619584151026651744691293107174975422943158567480846730027207725682941618998615311801196273789663921170071735928532992363461830639799480347521511318479930274482266521328831355627439621898942880563028982111044971906008090226096214882685725972225550074161286284121666028574352154223994229792884437084135061143981245934012494497406284576879919876705776025916012765566457257162865232153970668437903518420661581331009509717806570383756636883450600037474738342859811027424428003561753767580965852543887415748783137065081956443909667598476219802816037856508408482013030097917720506893750573961654899187909612521517090541882989604429649475934084370587541698766609970061415236327824816806719101654543081977747134224554769456280306388837763106804017892468321829357541610527880204905940588866706371372123467554337458044959885066785036678281759757737578983818647973185451324483910509072935111016042866251253022040818281560817869779158685322180869269830958455142304696740408599528552706081270761489535712414346154147731430135001128169571348444755001262333296658655172636206211723809875247163903430840993532578682715659180082325563817999241413648168379828227523471496988972025249552821170199776039522181502143162553333870964044475781521471488740475569344716857364290169008672690913887268445463614297312084944383333377123528026061720935044201375541084416707174223377101401809148778850033144524541063131037919409067635094375068125976152317664901733528906675443377165720372424277026213544784763146081116051964690999142237791887455817284944307896826627385770468523443956333588552735935252690709688426847277386223426390899102165569517409706145770762113573100043040843833766646177036659549372387086064230974441194473158522310376783281572630940531023607504657090421501420578390184779124129145020817591373996239692216228067222848707075341403067554924115481249438766069130074066571143784613133708168831681524992410634999632673477678332344482218990857283285598663590324786336901620912182903732114063440159790907361335611494282175215977725990266774736413883639547726820193492632647572326370533165944497805039656272659912037954447721791998649226712709990275255953553878353987552131858929150777017488030505535842894312717450259350168676955198216095634164695542404888194540116465695553727185501431976129692153043697867915102027297228427214962278051229810124134014016813957381594108940786804456277934608112459103861933654579481403704467541416115095657512992926075461191412212032116621267094110807921201533039207029979315454753724754549416071528438012575283327615110764202913294848624754296277078723743748338642815670417293099697957087155124670462658156410838232737448768040028640226173326513726597033317132405387825455155767089940516450984526731438942436681091611838584540558779940705297546474371946515226725488483774861797838579746192633170541093903355701714475361738463949053249751376529599193874513991155372905543624656682448057279782381292744715480863833121223892530690551903746751145764405273976367592714123850695170241593390495664643133130896781884982455399637599300208774608503137119507286993689563585061840426542145315138686726522895585037023707375659993448858916910103479344433427232723623118845672539350912314038815762090055612523187510508545921050514270590285349513600828387931679056111418574442885800071982003262432314854729952109735279138735049034948795747948301150186861204253526384361998188071061078805949671183576804559594371992142052287042245234819155261716997983866846414154962460015364964976199062653677840731312699200417752709812734773100006913779589845578137019268461658216251847384525409846416536001728952340714312300480076533197289635091279910200665776285565609207227808806151071263111413727412467313198465959381021404823907699292433586318496728183703251566425722331119789436144417319817943489606458869914759574319518562949608799679294798199898205898151804665037867159574334901220810650862269638657969409960598138886910441687757551602453153051187938816437297619770789620834797577039605521249945817002287331429507599890592170145679942981318428715132608493742905404389029723846338557978528895541032118180570824533355802407054907175570708201611461020299368650347049339481190064234600465156209730018673488299013465305756366407298456384822200149217884870650204380949884936676886056280514563401752855625710351988579651977973332084937142664764049962773247911192713881743128733890045562395925312910768496360230950841227946100465940484569086960089980503467817140007393719025765440931762423682118329276927305831974575901913557563863067983207674174320884388148586348191527254590195876466874551583852439096548655909821234675978512327659122463638310438741203350663229041818125393482890051832284488097264946131063626276741355427963872092333328825962733251934621914426120151360343320368845791736074988312719767187316798956567827470214455771419082833944050277234845704582402178820306720939134678497137410589545134057975469316930063073005677355574718237933686660055340983318287223285012107266622189954844237708656997008718877675344628043528507704227671865367046811404807476193000143078485492212587223002611246563346886873936800643853669191312397988220241173148470513705290457545785553246976045567466786120545655829435476870986535590692067802379664407912659277337211209765411519146292824183641923979172095870057594164996664117411530511098924066043046734869521735556952755824671868809189139043587877548978095328898096103794846438299045082048828865494345772894153402383202752469221218475270242801031287283447156333649254929620583583794458931567696405379654003220199571816761722223453812826746655182447697036649456472512468279230561615710736351541053811159742042219379604589859286544428441682572860830425127927690578552960180472227737926500628144469157033929101256510403650263612996041486355363283844526382654925139826383144481594622352708520733509729421089749735539316115138816887997099383248720045644240429190148014466618358847072806266094114288990063623692155290523155329427528448699240007866462578478733588249595908961671534081899517452283867510792112863942741267319124121550638815179088978274114103879706032105828515903135230440479830174312741918268007453430868416220617942405000365512232480430956788222355954081633541201190592679078409098432378332595245241486764838662462088869134648372349726823151859155056423418607456239605138526040363752038806905530534794354610008468997057419410547267338213866688041145296919375511267615104454184057094614799814237097605826640700898522266765122827838388527004168034621624717476767404014940255052192068739351257173383722999709422983621779264421876932509546980295155506469584263879699462767792413136528492858942205895814805911627075724905406572912401526665769412405061357136445951334297632585309494739327617687704334400732943688735664004384311064222405666588758918199938736642709882273398293268947086904587845126627184284510975405774980416963601578707255889404470517061906359736525848120504599885271000737792383073430123634301877101649299429744627274040550006712933756459230262793644601821012963314816559657322003814498974995677909519041930378549141541822765651578425666276904082168856442070430112352804625917108549613516876746701725496511007170736386842968642360061840771661831888099812990399274679397277994209782847604211047844789579100549993175373542919998608626085437202113237406102759874244821694393087740450271972313930335224595815248487725026155428763968546409641814293429516830515696744053978274450263229079419618368177006692975641051940606596871462072125435935699457420469687273632007689471849167731904177512204604282984748102626894577068080771120635863513921280239099533643150355075556846886467811526964076080687724642001237523188997939654792737428125122212821684063784984793234125085072393837314096314728181058878292190249026456529875648369676984728739986588488826343306831112306076173025450104557684486690621107684602099290934334889836320384277542161929606970483799292495065594253336736649542541812804992579953255965923890223882137874871826800078523440185204899746056225299609726890632915825115516153229396034099023910998811617411228498717518837289479129014293601602195453015182503918127078809922379834930093752270901117930248054563238553688596489420629599989593631599385345019364004856025257792215053272708398524023733364815683511545508753520240028657448366159354019633521128023180157285365628993897353736998992263024730646267009086677523049206068381853876842835279183037049777109834771163308384536243164969506604983842881865167610503457983176499124766570780281299307279719577116240566405576045265224162920861366125358770609031189296206858377388244510713614292907244953891996344739460355937125279700277376923004139894015131510298734045384902035276898845810095979146019912059016356523528552716320048426308269510362747707570830844845307829731497211609111758884662843584139588328570590944063351429950580640725662737120728115899194073730970970318138362053609043334737963185834133456721033989478069544864547910221076814684119074530390670493038878692451079142256597800219317083712091059131660170822329495261913132937484420232000905921301321433186237841327945557909293797651660920037599492306942026738924613050912377312274204426068371540884800637462109693404336128071070396202886262826086603829536963524871010834643981482409176860645159794388887037977628531893078458099290350206901646739268962016459313768399719136099270309806231485973325393135707152857857556816008699139802712749020665388952442129566464605859417235275890511192795349351257545068894569581639776224405447900584173977745629309197610342342985909993297319428311799612205344157218037080563680889823066268908013343952061768822600105021056814267352481614174161932792665028371044542474840238173296686936064202184692542207180259346441134171341995872278544713613260741883115190977312384526740663786170704818216736030091340863615506481753817372384537833497735765044632594109628448461259967607524676158919079543127069961207151857593920508466755409540660709350514774733711715669999994705434848314753322870032743287442758310033640399464117383517644465788913675026014687977193850484989739185075162217516191317885693077195400972819390091914545216914039210890191282476043997275597857558755001105903557968706661814925028741019911931616830136288377396636475569928736574219565591288202560688291163561053667759864761665997371946648703515835737221594107838157114618067328017281773202628233916640788757145354017420918823100032299515335636953366444474439108771806877157516382845688939245449244552362782453244604571381170166822486627037343296599487669735226075818138804473596207090758475647628730126767928473833359008246153492531128467280397593599898963052332609892873707284943026143928825926202638753278517167836632658455994239155036957761057734838489416070835253170181712105242850322463226734240580245906956545579844962775615881419202953805854035456600074475426993051277787639657535949698561216784186477590196256353116935949447871958731844201582939404046365755359508233563710717433263330168582352318432720527530006748875050654561771521680523197421166214592202353941717145871174388010499184799478814004549480220117552241946883266235443954556422934516987098117373713323398423245981538888499072126587284861328184374926158197418009395279382158075685723027285635901109903585461127313465566795890705584008312596069892865370398665512066657628897012447538278016913121874076202419902900328037911542588237914826927113187839636436469313197317369498705574935763692244390636220522133537982834774620368042316278321900456392224053295606668435884076946486290427908180349079872859982145160575876970422565132464415843350438169911855155800271157136313189356440674562939710715239287910542820842671727253173152626280963811202071864022659088370751739290005756807021689016343799758477692245796479460663161893075194118033501324449005040615499439233202631738773655373135176317930029532128520283320664965053645270860985153093192656749669253646334028576615564311848766571953469544160863489232918410654225225588042365383244678367649612497825106934981316057076887479174889894798428901746909546714763669624789111264661519372703531781970834300978929404453240445504795560010901471883435288892710838665372081491314252228772148769738781113956194764125391218348543506575649428213416350290567378665159671218674534787365164880873570405030626192539616161696015312157063506649847441947410267842900506737228984760310327565128191445938456352361676030528111871866500401337698650170651616090100642369353329794274711765383608066870979106967786730405422236459406714556485593397543087372371889159303416558146596441806032910533327283526353251123402250907016925934391107540371131510148448073833829594752889901457659481369328494624867065478467857560672994024394363085261718479470056963341416033138928802181821197446035367480496671779129501787409614639527868759377411803812561111664640823715658391920779185646654944238859925486201054562137449432433186268602690209379700740344243932548344235122194151985916551576820725127021443092376353897992095255795239393948715811810164858260035659867262948017164236144152584562775559811506356984491621453100147077799599890436441353104008200584452942018114462056542912742756230009133456441600385352497737111725859838260949896356583805682558621033256187468749427571752629864738269650662585846131345305210326332694933521242808340672499582523381069571763647197936437259023481907873466610875616809790538012525270514658121087639877014755050426942262568938939686874188324340411111040747599142901309352983064221654913981525930721171266976925964454381637192625704251666969387374431777301025811186089336000258093331862594517078765490357224994059221095182894572599509967859466155346607590794666789627775305035252903541999202594975168945885951464470129788892695238236387308525480591028142050209667701228165318978928352319638538624260938709061108318049065153442408928596889882698141279991589269466159990631906544077438552038405287422644757681883224194284553323242780390794477742622682511586038856401679668497126663276586874915826913824374569526827546983883266418507318056204237651444066680889812815182237940877791587563791591136669270294626809770297892376452161159937209817360748739903928869818996446867746181380622852032553617511390784459855356629000109536818678061843130217316603794688069226366469440321335615484899942607640096545114315076217872207798193951193349835974968290190971883794965897955412237880897180697177504991952551199515417491815419433400394171050923027060282617181773856306250582032191624639281331185148531061285959909479987921857604760685546210252801492321312554563845461132392660245507539060615022790967484118275817398310045767009529766883989548255561545698371657222726611455219188910653488374249395097771326266754298362954460449350155264252023121231432533369474146887751754777486342298387540350759028368500395048791198672504844708977827471261345504004771004051062554648537700592763865908922646069251325273202662532222044119080615987123058634783682250988939592685219275899630173801031320720304866282332975010554708257698209501092466618161259112636152072588815652085820508360461575324118244962499075622358848701196150933362353047201385550093472143358390452044720941543422321081048962023303068098688689977440572859635733557836177109863403022165807874458326579984479659407744609832928895906847547783303047425081075889048929218521007724374080093088571538574078729815198737096795991983657377640382114124405198247748564382609751178324709296117512935008396813251574797793889095717191695005277722420615745135647984907371933345438736935253101708734454832005902526377897863274444575984951629676149108787302050646138808272008433528804795704852449440644948246165450687608788791000550978939019764271388460179068988306638481187425786574622766351512033586622008528837086545582575591501878829254593093736249660004488072574932512553868772718774254118714667432454052237095417988712505879330608519142555691075528866050007579169394173492932677798427665595051522648769793240134440919799580208611159737547527835477031723124605203307755383603181389052424501583557453297459324481471948007598538229263181228981819750031657394305543626835128594921174006332679068963721658520111954750923602355542791953892414508257307365565840897089065328343332687022009264533483352289997440011262385707807328166361926906978430559875623799198098043568618014008690218626195613858186242716085525153895024350851462654495267733926357617481307354464204568436989855825308028631870387795088620742753540343426442678215328234447961442475800751600509927380984490837561436385775473618377997852448598036304607987703810611248121255483994172618260188492992302066344319968986751423432113755208028984027233340508324636442175745585902193998687243698142559397664684740812630858200002783437322921973118400169310847034656135899167353810331327900614547058734667635540448149042714038221976322454978418069800413108057051004505807223074382486509554241230176554412871318190838450829189021906092684092967469659662973392479360813254425593774285104664961896902102672497259914563294023974492253922252549643007784497185785364184103185781513603077297914182900622804048087171975258969738764464567783417304170554659616901171641547444017373707097426862867818136494538969053555225120100089394206599500270225019188848033186853048604076436313200825105028043194906410348391013700925032002492823159141196988117376446242333085162451379652974596424796097634119996192798349597491231487822713316085666272413542668264165253673451202940044474564556333258679803773186609934816271701853348137001412064362812372247734031195256405012290872921572397217263285517297822332276775844043381742063999010187182994954063988333315078551318309491308655647798086163235019480606767296270339026326087544854702987299390017498930099882838739546132851554303692655826295183077668371595418133240097511857278940824619774313242270289788381437716062564579853119335445949377494065876215735635083975807006801056508006818218156449470826319096918849677980265142710626020660994070222778157391997430479266233707172108985068324414432097926653531173364857511988096810690624583096444689211292927692917816851559246244934579834471226599343710141585040286959440512018125736938655569252733774027983171905935904627698225575017076876346016591338446037429200750008308946374736626116540776986573338498590341843025750142007142141136941714828371338605323667840623000485703183355827572162629280438536778349781771291891770999250832268169695327655663927397788442072289942956913254520266899741571493750581840870438540506631342377752427491831258312927787317361556730702513475121728438986062611793893438869417447721226254280731472668335083317180619520433859355071608997647649590441585627991961404220137451005723716924261593058690027632272570705542385604687146711199418516212811743379519837690176146879552801859963806673884237189031503848627604147635300513576765967340174183471647019119738690150140936412771806851380024527652421489641575752554745602160047724749687013017135742135579881648660456945302806865943550850477904068876356579353856178025869718893753244469984823860388759938891760214155982483750529580488819227236797901049602727719156085538918655866768696609505409213733538761899321819332358031888499955345305187242005360531787525731388091670569826853062380609620624489833712621946485132530350822964307482571612760072545298488606906900769999103187115772926200468016808115808678012271408712177066070114522254280643513808025695944892868472777669509913645494610737464862034964144517013799684277262818572699573343788449755828662553481753802193072295046284759823602010558757606733619753751198421539943254470702412222628341712961674108719957990692994474657340749547195011626902833940381705941184614597636304401371217899478101808543209330895720278582829625603824858575472301726608473699138547838685457531754131006438649824101717796559399480583547156012787713088570702806330340989817862860320365468954988399211550655725851463067129684150832682034149510913092200910902806791295507261529892466207985611046625439079670809190858926620365226800755225158680963701560724871527048490574477459361202581771062110297489304745590813958325368638565468314729927794212793244774390908732565930182665023122061194066838376835552941188090549997398441664704237953148711501778362606987377411595702480299528104706313493685181400488062151828593123679269058479999926286254736211521730540295554024468581282592954205941456451370735765522246265025590262162232702042980248666727539354777246819020972738763194235623338260233409627558286117633209885423682935540307502057605339038731434780193115982857399187358450360828575410793457489122209060555709529929223284329916285317461073337296180974725595244582550251887441821511142263295975079150333152142282841263630346951022410741110997455029544891700709367810906132450281054318068094321499159984305413385680890420330605722444390427847118033038409752444727800643580533711535746109779609806061571966456571861829507622085626137619648609832748600639128443198839605848950173883808725250516275244329186512045034762078356068360644813061099965458097424172191219535478124311799533102819088179822943967312192763366976983217251421194820074724120277500121265387419302654101330141139046972614350738593568595710167496290723526971141346941278633816034485914017929601986708433066604890206344106834182085799806708509336722911888968366566837089227216010666399583623193111424109633342983722848150479901036810484100825061035648768104544090477118577056804661684522575182492568840194332317622587159888084350125749862843998968645815002866622881844874266381036197340519579792261314561689777168844786800433226729457527218384421351103046790971519248989975875094477307056703370080696507738449584899997501523914223481266575447041968264671973991818334850301696047070907021049199883743177689282725780604056428857879578957792870844289223489345463458819072816306746419780437979010878312214353670237133408063394425891212158984736850359360500482605883799991364078572616549458878169789664176013723327209955978606909341921206674150818413384026434011628592022838646350617422665025742265884448554694007057503087264950951050254842905874491439583926213211022629220547375655717710761928546051393915295954418134041870137394204551017019432548771693037009455019480972281838717870850935017092812160987192430469865169443269725920135395129859778947430332718734660675658258907868185796358547541410856160810887209079525564626620518815311852303403089217410357936633268493881463586023075157928146521550185157895377120752337860204250472338857837829027079114079269987590999877178034996240115734608766498466883859646558282417708027483050078489572115759305379201246699335633217793023891867850979111744065735543615037749000297998040269144361306500160531737297273515599843133913203587313537768893746861248165783169534128193349862126757578358734820393650332017058996566033983957916326657622869429478244731514319130385417051782732617306516219760292193439297454636238819841695610716307990816784383681900906504652915882917147996156790205702583070720739016855888934118247172213204481688006503026169275989814636228619877051331273657173665093198038459395098257339674737812726880621972123655757608838495727383243872711802835053876737735353869874406321714007962725546005475068103413178634859245358358905718995591304994623254164572437749001816150049818946523606477791433672043619002305772472240716750725248558950490363820755887058118505193220412866184543452994846708715171399324822143556481418938234989711326863806932302976549484815178716215111038148143090034961076151494474920291781435980460400808413217396461819949016223963156277443156323038974243793798650794277757970591423581425861599058072104551773347539627594455153376822600575196006409764911529098963735120330054502754493747665999926209606862218802054333644236860579579476878219753890046078349523073591162145665329034174912422501370906586640674913032538379292330668842289127931497360602377394840513244131935591023799698418475799830624724461153586232842709076241433627803531072030162656474604409189086987014768050702472615375940020489369048589615553173957115027293770342419131990171017402450530860129832925302190999330022832602260865911318560279238500344857372042333682104633480913928406209947689121174148046430348840414690412363886473300049937152410249985527400745615022315486643258068000084043602880534760519355677070438668768538244173561603333917731550563081519187983529239002544923568271877590683499289076287668613069504887959213766772570715666123506474830410703082532417717619063117740517348392154044144674844186612746067670986225967787459049757129373738229506924070066436842266099927567635034418821764490422365732887150343365369264344564271529281944003242211962807722450607989627463891056489782386456165651860856668074631513477817511388068053745999784200932266018870091330072947461910538292265021080721194363790982047696138130953806287318801403796217592402295582440591764293817537705016880970020334179612182699082927950774031239023463613042677216227451109451714320008660140912869556049792844644603099378784616862793950487542514272118357190672825805688825758286648212814270445022922180325308371554014487132785881498642210739215734922387041698197310784474365269176938994842634211504304073604092465700256333983168807186162252980574958770381108316906951110207865928243252025891591153289919298303830448074598294407391564511617632083082617197625208610014248987475952620622650633963909019392429331836999052904245196869002018459831092307782505689013668954779223694895233341885593036371210790605516961727430542738123087393727333284324478898953158923538351805273315129698730771728616289772399081160280801561092521817822564033155836939661355454539719870579449672053134701188629028416741354860889066069022445776486106953136768085463089851631421434805615428246629187488321928829967746926759539362065656031412511648557142902957129165023550856176751244916813403596453105050612886354909437118775426676925780632055899346038477088913157896472661103226037421211665508680148088990288321998935711373517519300652562515644399980985718616895067773955923369728370552166639350064378552696217059312308109276500342285760955198523080083848956721453300377692202000520437691546709107355994488169577808886106630701953939713548283907034115396965169790850041549919219463066481581699277086759388481205146614413473756501871203180165205913594701159495552133341645671203904128225950654210339810123789526941014630788496455276599517618970225801528121585315886304278537161789435587199269512043092797847901709807604548106513681658454857523799988036328409178088702150093518364374602126414107549977295373302300043535316871994930439581393036445067125901763478071453849109941297149931707478255913803100505178201723764111736099646866869477696132327203798986648622802256917976757514474035910281408224018427562706584155773989437888356448654410399057437116890776549444895046152490818413994728503648290330289330147790868772101905715690810016284167307023717032489477867270051541482893983243340558482339061651737023210308025585788564553978199770942444794847846310365497244354434821238048272775200181809467185575575070497829741100504708870708549445451918424166900799623426774655726475782794683320789710134114772183221301338592557273724226360447877352329056187053366344199325681836414529540982179447399366282814877309225214666283061630916974156766664146807832270510664653474814500471660555000107097388711145028221839256687528921336589331419417396321189051459163887233082383580502199748040988941852960473666966474738144314996944174176125639909610194605793895859579362369759443284890094847222863210977262499369027589009213211445647341689964275961159555600863268436350433728259930147943405525019676821984117051623286827063313906871358159036884734266812024620081649801334909373858701811661031763467959142110826792923238748830328708162122196916981217535161440563431101232159768136862650479728283797132028325541943085958658604708176476551613066496787110746949744194535987225497964710157423862597985707284641161633605251276019686133259479672158243614338742143174510012458163880513423404099015793197562162980204194447029032015103196039284063950105912066770405916349611800949649156029189781688790162876960704652245049525086993731568836610937361439614168427865876782089779972525622005404895358526181638035568508018688242564367945205809525261760101997711612546596871786290295939718472593084574329659652979201280853685517690314600719672239466994873944911163476473571783937022652910024639890865709985809255644144299703565452343021765723463925297377361867153273027099006876530376411202060294357539086616014869156180545439416512205381287548730507778237240676320703670052426631059710127802437785008702553139736552372031884920054690072867507970462422793072418017743753558443557130835471661439772605189049732904694953284872457908434335353189860082832913707601172163595002167412411745764359662872034257682897461048915535447126331436504309149646233498612230467197482434715642458905966652834597481411968079345518094008326190691336417572584161976264676475266073954607838996465818217647964763363936674734991711416120964043321066253820457390089091150995053847222359818550713706611852476285435911033503587317762117885562793718665414054899430588401351045798269814994276777093822327525650420585401114689110249815488966999271654564182869004938952648375521313179899214217405677675650001616767780936522649538162190766748722988400637236851077108406333765624364241958731040665723972860873305075865410176517116547562735760356046082617069883600822574917229804653395806471427160483386843864888944375699609787551436894042087609664418296163844398201990836034452511084445579054957880469768244547331331814024849431250508088544777042566483418817987822478927042644501898099351172574653494245022608307809121775994665062889736126082051642120612625567305572436295711868508868362430036792794803351795759810460682860347103446782960585379124028423205934405076732746009076811879578794823856723757638805691765017885725347195895040585138524627991517733636856548686519760691027747381579250670556116086928228653264634826228946009624503816656557553135899626139882755562282023559340374386471460012257486728108649915944282316775581450017603927589327551119714414810357532870043794788893610889487701516516050025651821420901334838608011985636132360392568490774807422829944851166304627664846928456818712408566231972006188918610715260463077617648958190763477396470627355882004343842157037317098922681279547356003335804657626446409496574501714034891676308345466538111033214796133754991416382545232843298307595430181965489973148433774473774061616695795080611604777765185818471554919676940780614595518409396233132769200810034815247754874412668197926908534675267832094181280032723527862009376900777688195997080757201638690824277898770249879733653822576732310314453423137209327983369047802996898113461305867286242759227345898925350678826910255714775752863586463614890334254832124343229148799633252349470887124713344728282516056369794607029623353165437658014448636800677479352431402697548653867549447292339837915680696345272716623420080780009535584432047294263262455508556625519220680425481634893787395737015544403299851650195830826128336309039633689799494940764008875616922822736839777533557208813350311389922789978453713635414035229003500924881866843826335518248244359934292852261858800264870587795592169322497503719239355718596603063442749114606302910077678740484242183095883062901447363750929702219784644271845284586225764730139176336363907216838152083958955727375844985689605390141035332463611146649728855410342570983247637247197320517443678628675225301931847080294628822632619750173807460680347208542165490476976405867188320532943118568447764007049215371666273816716978727420713269359283732569650593876027684251874361253890061782358869336656619825218115110634043563356663502773694010251563374560542034098818527109307754291804725330111414492182928644849183044380028493989195363220136184851516225255326683278356193510799993570359482704397670608873262578795994629560355962155364475978205534661325638658947433718367385959343276728695963792707292750565126095819955221012646149342133066856894773369683230692519926478527344589390584683321269207686129153549221069449310403641736864859008668880185216622395352669823903644517580517333902013216110069663847736922116994150125064996570279719826052731037163240536365056511976155012822640494174651165350036532855661940050932852950326989921979395037481901667350590234319621641131393821785502725612629243601057313388228252227350025405453835510592496348073140142082320949693231744799845330833669368169506534897680199575720124833238721922290673482796821860497004181787696525264652291090621270394457955219385037179665497939240376143760782865489565624722069674349993694757286937250472694172864813682259910336296328874145048731640157863935237556663823008158873059348282283865847520543826828753232437857488160409261866590006518981279893237394560361392589645588976687615886787220724560413485488203215279652535011006475784857969817309829749589288473050015823712313529270445769633396733879738783687345634140701730501784061260449473155945941118173127464923744442737159436711458997773043051007357382659087972320260720630141113919278260559317789013977487091319350744964085029338444317495904476954897615300400602503396247362552731909625510298694527058753439320447251157863695419922200096671616572942387069576342189605680462101581302351338354664522573451299659461953317272568722005114480775867319549255669020061647682614187402439783051911225365483590374530127007799590215164291762106095439891492819375536668043619718474135002524852948055954262495098415915479332268779887429529403452605906929249861419138206000262911813672884478336137529288752205135538494240012440878961613581856035191034121547127288134885781453916703102451292681448678185989007177106374277151893977696346323583548004922388337986914758126491607469770483931266974121828718635037940871056138180395925214879273832592547403666458319829078109318186874823498284501121634849097765336410205196128116501711207605978879603461931892847726689285724961988153006204908678143993397842506655045657013971997062023443876566225252930072013445345874077359390391231514222785948316238494453325984898562896400874267264611029679222317450074125341783282881300241790023381791246907775365922891473757720339475404844240183758977515552082528609096172098108908140904467778693986495856661265492415069799503973101248363008487306174511468462663960314953250932226788401636945053248145354611872910686579906971674089444452978288287131403360009788755354850193115881474338631455668937838022828374061514119881340417613397566373133658728027857705955409998876514108578977859300329881917381558855217961448419182549274127124629987986823752166195187999192218957248336610444131856367134700393680307692702782408460991470991496267945160274940275645846796541152884081595438495751456283443757919519936187229692616300000265429595785228767481008531913723477240175780410819258308967711659781483358414232961267633679646410942331236397913183310430222721332802235763658705816331057314948558700187398986426995245095361604052726123445905697431951746888829032779232247540756159041947869834857235618402540753669751819440310007083285469252694104612644814369944040998073053807073590080710884332855324941624108111859473671306667747193308675029596573740119594539835933466835207690470159996830280499486635747557086111695219513803444669631181039945768909445397535801497638972735418955496696857658272677926761158388504609981299534775107005195334732627838112579111606123493002490131358958632933060113035973966483767125331264618288393946859589711738042047614441840561186103748286287262531420351928334356461756845908228140414934389939309063279760685506166364069537135009362988399365716122170661824827642019525522578911878664460679824681622443729190528916643445657856066579112816377221758103523019955672620761545018426857128698878199608121509521349652224807779572712376143783184952555159071979493892436023710319113583842181855029679228131642086283604290018612382582118706053679123399898858843052463881034918478427739109289417648023226375702933829429905297141653441083535345209114362650117221637188644868584496862050830283448320557304347793506354323861405278406292540924199957984601802260887491896099303482434693930528701429209403061973135465535642047174829507328514361033967520555523956269041193781979860015953446050752752480632575245233530469331290431780179272292338307637893849040423485297715138143524663759947971103415674503535298849866951288468450970824390027833286023220585227957260216873277501592852174167609363849811071976999051721706607994896533405212128857372428021537485376054658978265141520111064165192764682496618100534291584609148579339735492784764902553549434204889225513666963002040421676896274662061992874770786615545017687658981013464760421437385462997465022965104442323907974460733169830735330781098574858120524482022496130815122610886852129013625680075777485475564782994943606724366836080472299834647004987955566397214750943652252083769968554799988352210667006787791000259372322375992283071854844487153855374415457959375295847096511674498880063309300149914471763551266914814940464803021299123627239499660201580468896911097420488647028322248600646264480261294307223945310025914662371761925417650462981531624984924357334665180733525233213840410870344427385020023828555910185560394595552838195652241037029689847769357755782791657603762690819286831038419831332859834806822319261352754202908560934928439317957047928213541308330370865031548217049594632432395963087007050211436310808951675031844540672311396172336872917488746661726442104441120004794929616776304932499026094699987742930867266512565796035106824747457341129640190131386273598058472900642170169342669461452088982007066508484324714206491323907157231597563800983808049105807707692733466638697186516232690514478538673921596157294844209598632621957558014806171583917676915097124742605049533779174955408609968312308421365342137121399634860401025808064482129042514456716673796023146048944445393064007019287042082424053722305066739860137841116220137898255573441636480518493064552641485265054405533670619013430819798576901989979913762262083041476527246835857657845410265583732537623521215920287549658667836410707291116417783167734551117659810808242940375534329174616329696312375110548480271455608534193124650359405794811827306854697206287579330319856559034887768533404407596294532712983402485717523292020968910076045950774373126845317638358193627985255841346760302059479268026289125072651529750673392021375556789374460775106530344264803729212747504748027292076028509742608164526851661808969043503814274795817324267049613484103269301027452484480081898600905161484658958968368233539458187449929766495814160246214592813226068878601382659499557696118630642484057369271533430979174556989573443926693773784199656571618017196388905340998129941853649084321187900897496478683475776797598447898092320368931614206477745906150336346269411405927077189135388724413538290928862999093112638090364972321151691477102731199114200489843493688311837602995660716214966430358121317456641382136611449515025572657467722538103012718426918493768650198856079541311699821627375789625907115214789867671727658651596942801612444904660722221106553272984797618498035154893133563235010713469523817499677690690655785117225524037254207319463205001088921564941777233670023296446557598926688302710792986123920206219782865025182666397636004110944221335091021415193714012437980089050691862239072710418038365868417163880616325033868452257116147310095312961587782930655888314578638513916568403875493210663925328965499214500712585561656062425207470902068089703328942728799592682349096373147634584012720468177670797351096648025065106865967086090876079748787794440840272779131947394432627822823167512100116897944690891904415937288802859197116680631444575128230639016470665612851241977170445724098024396397893987079052423752030471483683115378432802954535183867824686838268150984112482343551841657387295870705268483707082958362013804354794530331205308037201528471974762445161824386395268809854337984273447855926784517152962354389570049047898002341523086268310407202011808420062234609320457940003151698264007025364912296670984967560632269692179055121284868273540508376839229516230659417291798734566647985991064318843224966866799077181918740691124589495296930950649160072233675170581771809107370546612102332959690985043236409397425046039092526550662757837802758788244341555195999860950966680991159191680241250202200425288214880865269267808245222260566888846020600334404865387186984280550504422571708178552804479304860968432211427880792551755258884759840061638386651161344943019336712012310387539750835676711634224123912300287622279462123451205721401258513804661812812037803099695971546203463144471340640429684329237033088446730099573119514683644060652883627941725767547612188839784479840576703749881374860330912123753975255931600242461977317591921709217477627854604767166194086205492737645032329985724565517455865654689430171484693707349709203429369233677231446827157421672867965763000209503930370803769778203171291590654928622237326487663634910199133223061128582812430122718598529041032566398333484200488414863133155624996569783372364808693435249132084606877158929459479211424531188939271825804771719232732494437536929327194753371632548375865475067279275930029894434776010408936680849827844166135838159211966258261317320632993599281004195202322212231573791782421460366151527397792065754724018840652088757758105760528585742402738940734218622146329247094317607360382816798365273981209209607068447770698463426211959557042604984995656370946431166108766922681803013949933103840114094522354985048025794628384543468868016486648611974639914060067312286027719389153851653388109798777298156529594879321583376019041260841700720050789712766826642584325327781985287863527406541802593987569396916946116500436336305698331167210664521164816716256971302764907510162897426305463016592830697171021365657127399052603277307828030607685775380700324872918010314437403109875402460762489310629288287733562075278411935142312329939530363055479297763043269825309240659645322603268545838872861773337322533196687708929713895469102787678614664566662123810083026736507003822380033860388909514960482945243857275238482618695014408738817902500229210405842458075362157836772125869306873418898347872551818713863448170594403834689308927784424358634180540976523296086801566477557901861407586313568927503000117491467235983663609115887036152646272350040446036742034241723968190609561935953114372709441927224002465150880662568906397648336491849634587953155563667262385310507490536315051314792603087047148191047719922727027252203812282855678832224497077285129774282692908428918838340396094296810698673668694856586637446315483682828187319079111448301308264498633210504819081724834577158732595734375498490424639781570725892546724579152068684591917362647883329007966581750094072846269002588645777438678680212488244525492630221313530081625399401190560699615947565040955116205285443098399456739781800016360657370475494848707184014396643992456733148788244416020404481458372841023787248336743316355314660734069052634280611850492917374309951163016906159850101822187902397301805579251818265617780829978263094075158768401078319315856489547174655892599179334604393869317164673352262230471117875879799811499377884112836075186811516762891271457853674667232805548243743402646903448309842087970931305120042481933409000876787963463699511004169666838008302183668960903697731868249116524337690419013915369806292685912208124840073950424772901589035736943781048912288542801188376576667269507170401263225572912830154067224963922356801931591435314120665274137834362261371454741972754384454733564585651330623309932554458127888843617454419131015450117641519596208071920155773994877606540227097725224947311921950367418041316389075095528595768706679517197925104511361787276206846542738421145916333631931934994688713461662298547925629196281776699209817700174207234641880141964083758481288842178332282158857800919016640313577693135973855489229811319357240568422719631351819812515522260078327864536563805062132882237553221187257030899389429660967664931923226712787282666466462699624841618753594407367799685798706535480697220053977438778931610643955166041778288261220775353275243813989361901145189875286189830499886372603318673557752268435649057521771257913030575623415829442586781554265008730612429015746741428846756604165011266243035124482416615083727035087726612666369379318155419458678759884567097731306579714935039944683920055540657593471908739291174134849135247266141688524001170088454072779331687290014366346914046607008448431592199363501786308235577822289811133992350477729472185260435292527802430136519762565226862686860273983046145241005538232189614349295661739732887884891285091054221282870252448861117646644598110366040311639344060433684758775337236755742705848596799979367244787940893235258017733167035456807746393638980741835477118860692205525029540590444830836116293890640852072158656508635596148458587141729067020808192794121472120188597363662665540930006641029985357817525314270445481083570250951425192645774467441196911182911030810329061542298341129262951304539512902612517996523482973007780662689523731193238444161817543229247696824432846573043927862955063084214020447114233167979736435381473720472227838972643359234498114575904082751510266237191478115995423361665191756659582773803040825573108363032306696699484570797288322739784303246233770606794108132521113084354554657545187720637223861836688026276781758104710710675086351298174644632607931318236619680608673158681390165596785914493335116404920504121050306925739091262912972719495950716086518863378448122795494845690787940732870190930055568943673642619209946171749153948781067703917600253857926357468305158265212353223001180676904399025556070555212944202521950887342380110768500302146501197116872570705111419807050339603220823434292321099335547952615655908204567768359006400330596289284617204914592017197052757566242452586493544303232462547576060431895019412932491283524864642096755540919907894961806408537960265543590435763073580181651759357915551348282759078465661417189472719938175078381827980278411694526461235484465082816009042586109561226609261246726291924236847483055691466997445333429566432352227551485490847328523118758496969294370391027651291951495555308921161757874341811672534947967849835924643124549907633591949234851460649218898954390841700133266768119442600238948982135566894021511411971516236911316324937072398565410347455056764028145729508519244645566070336912780792225655094179537782442699562263482013684209964543282950486607699976711776276653208486893188375019060875046374710425846830098133397173467690316224740291984193071867070279491791583451514270560994178058913423056099531089324150014331527834165450265881566162374699379902897591477260853921032584188392375291246686301702939407873698091509485715596708324490237009850323141490797090573587862690900508872170636746403368011841113388128843362018372570260257514809312718172050517665820454715096101688889436483085906074321441689523968885794050627324415534905456796544988907556207892758785280006161322136298956548628334181422568669310872670316066363215686555044314641117524721816002507136370461770845578155358047936462373504247160667940817802810477390049198030184770280561429061222322512121722834204430635384369166205924335826571973875544401545236351855566628050394816129155057835017615174647934613000027534654723591147570132801998777237066203518202457473246499250200655268930321275154970412462828005876225479080566562278466401989685829262473843685722723742802546373982569840585129259232227642588593885638762131557615811621510974567743297895700213651732161471795166616025015764406380254773370107620792097821881009461754386884956925604385950459189151230069599642772727413304382090447150717670477904689828220961283137327302939416221890608565983825256361622728552222776036075158208511676361994146994995736731257404503805088052066749982637323435026232734915242501825671510174625642887105528017142652636785252769381056563207033698754202516988373750883905579468776798982552537088937642120052932658906709284832185307502643374237648264561135361127684970272213959883898645845189560472049614776032001085122138911125628624564848155709142297946357902286422943445830620914747171764985955226914594209196077182799376565379045810053506057217748991596417325692150840061974472141443805544134681352037591018736783657979010760467333352971193797805116301599481066374161661387262554182968297886113467888538103113342646341462010386742691139460571907542383011249247949866278820822029753149495498914987729202326867500458949600656943737931253484608165496756431826328608274897665469005829282338490119425704255497629209222616348057810694951941014527661390877947493549669246644597009217426932623062030396515928001658462323874483709019472472393097071839911474808435117094539044301250501142905964382593208481361726299986539975951133046753835970733677645407656450425883133946072829483432531498360629940543490913111853661961346961359670922321101787566473545038983250924651131462762512689994459116982639747399692808494212037264557122903957704972098036836732436559592205709792437246565301438419497431986349131928090466807910271988086667125862541392851688238904570850665567384288879386964546920674872902731567136948321241047123322032066176048209608108693915895102095687525127951058752942623833009856845437942081359256571717560967801457814649257934178772270815747765587594322729626252409916322769136162549320758619701431212327746036624310868678155445103285700794502309469103161489367188932155168857113552501748575867882174904267040681389218942372106392016932332027725830217823940889441747044072764953145976866332739564286417472907585810455726171329894441874426377382230780779092647276097789640163394678124570415590272566838091614404081270142290400648440117749695061108830058319633655280674658890897363452553481270295516779542847535803243599018645859822194772476909287078055794113135413074339623305280088535557655677179401888495422822567216302270553121546796590591560895155432838120403125639913541283754808393603614737151188420951890720371169193620491388640054026994456413606457954118004902579992544324473462222129766046218877020084567633583722043867686593802761882270608002480719652211271339307173553352569482204993587836809683019906366447647593997385806783504472230101433018553227456435296505890985028794551031685647557045762025002212746213594452679497389801724055480908418748501164970499794298697216628495840541929552682877553500377149879102287607902092674887756309137248659190453679980954829772283106775487540103963497689086346376842993374123779061740560016728998623939219384184791164073040989618809058863560763981858498392137443803771267741977857744884625902479211533848616667731445655961201655147420928003214519355494533149797902967668018662843746297716830535762433800137623052940206684787009060820009710046065219115147586315241628642961706900021273070702311728075893018932368790444018541006678925326521619897403228971562012385115630776451287884977820706298536871361480130429657603091459858297902203475546135495816660098751824272194433087120143279611379928825051587675910380827668514686517124864877564283638027907107289148306151046747832124572579705184186817300042673798494196423136406661505237234565243101885242060290239767420019546748796587274458142313663185891162264272728979971437222409404234974781283353846506651008739941963787220821191039857781988288733476004297261929909441989841396908963711699785444507005692329033018950413031400417088190111489756680999424454888287113952872011655003137002893549753400903149334423985801215337173325907169734585586040036908973235271783269849604021964323698214909541455355044772408806752810595577890836424771904850787823817702124804233235656297596163858158957389266569703642671017759437113605862668767211887339036217824334336640219376674906411163188273537635134466700013451582450460612809365967703496255781972941650629046112950815107124496160366096805026521802149939144210745660542801568594122055962520210909964842510164579641023210445059720681899858272406103483144149269647621110617071011487582524996647349021510306801468844866003964324691818617926593469841554708438538438775826428411786351951774494322574934063646838595002084482148321544941236006227299718848063717619451490619151412559694654832089823159352912486899554908917359619418503312486616298107498922911779365045337945459559655357486005197732338998257027199740944178952067979293195811781778432723054703156395975661388204468330779372181896917222461652352940010587872789033619894239365200284602906953823112006018630997578815857378502093230498572639226456520411970220364181195806704860484687363077163626440609770909497383398248584654766956346388212821040906679673814242055102804781058163029845911954700401276196429344143161349463292591524056436716065945490363428397639506554479197937319560258953493437320339340238428725099327589219597814029784427406678335852789390881960269090040656045623081825164154722274068970706704309913986635142760969463001435584591132273935891410930055694645196747194756528945754157906950493135512482975549113463458891632273193922318080442984857875778734325947702926145323057949662001107012720840761256699029435282371700870057312212618013760077466354739365687216858843398099256245520755597935427683446950998391088810932544640882098283992332931282914056463849983403987364219974754030484276883489338685990739245669149195982822800230128748468874620637206528262092145825366048194537114767178386923536433481841685008720547738604347655806527484217919252673600300352791549959044004540172596592861952841477065540143058968614449884619040892588618810032699277083612762632274898062250201963018155882144960516218393944261448634385006694857507448134019837886551818139949360466392142960402701893610760802258594982175228099206233685930579524092396330757185722294309083414595244921461484215035454650659938750581028296741374291750210411200460591537003945961136137127920204680428034482345885334349234579338359425034838380134381236089119393152694034850501797882979739700079363088269215680889794797346771000015817567828668035843982546281717078477578201895588559666490990684156710731961111794118052107360298026434732475230995533891101545599419007396706127069341885024883722901225918292168304009262533219614387649992975954017486464547437355291142884167258673231174242721405387885628184021140428526399743491101867701314249440340323005460187710263466124760863449114517403658726103330156156094659702141068540429535349821668827729981216494143401499952073069733670500529656770447458808171694257520060878507434051011247730392732581009536235574367038503165006027600048456906250829262639837556785901088200116191184874285245825215944601063954089955951552510231177662594539283813702945169577272907324862334878680448657453127053474030622958178955410986017696532285461036233355194274157054442867391190605225064862877068026016894577685743161027107933960644093666574060168822736042420328885475735660667296324524207354845862513471318110250258848341941648741754134443268452914902215809683338401651285185450965616061814872217030955209470072735469704341027745195850181873862594954194612996752050682821070085795616398261754438912405892588297954472135134070467497869086386720412405418113612426106291160324534535329142664485935630006546889277156376886315489759715671453879230715687905982487380013107232897004141120639763772518636646506176898753104376618067283798542382889378219550735196945385824058448064788287093111758787419449531123363769720704333380250266913223162980195449151481259702883846217548407851922359363363467351498966102104851123612678023237354720317520283559075511938539524095773696619703825300460636801449780611376508456302782853446078592395139459231849457511735200940419327311751565539023116233096602664764947534806881089004606185896037761133423507293225332517891281565818308571979968398403020628251874667313704626511569743166049237050421996353428177319711452899174392557539739853274336439043223063146524962191474784491369772101185516190991145683003798669097532834947691872955105363756591197631754851358626169687067369577056440261834511442534910847595556246922974707365475446035308949373405877934464261711359475042880668131103994861851658132643482546638463788376311041617544601821452369981533131849769050408973325838586291978724752325205535323543759206005488352833459335830519930151974114938533580534701165308179303063989122212896880001949256425142413996649767201424193186140973823525615555252777736364701086717952652324454823330559845559663195416929866881431106940983015597776898844743870184858159661903364826333863016209955414418597107013222239220500822931231232470724179178037799587209655004261528822108166858477140933867914524610506624110744559186027876596676033134366125322294961079950647694034526967225697654997885082024995836941755837725945512067633500402704366046158412834666792872799170753057041131223440638231450476731358197213256110280541177656277043182561012548615471864678720935473749983709972402385718119291305070588186360675682564044961583105492258131148755585770088334854974979460956845410857747504567442528799348121748241116664212459464596968301164098801065146534333621048373278491518558481810525722904525446726154322268538976027859625344550648336907102629137415654643921689396361961445333730947423513428607218454984708210545118200547641738150911332759155702742944117555216872764130356964682870523405383107116917989849685257806348293804723985678049744920846666519522854461461001255789557633150666809374600969085656045833464026246906217013732136523488157157345183601047533736977173905561871807555786461220788038734689053412925427901719580772452465581204214170983683707358436427600484636643947249425630804271563764409063931013905271240598242081808731025758282146345322430405208109338591843538199902018069494264303334612968160176620574675700740909054110833729832466813823164925766349076994221934867056965170815698942422358192541142137854724780813052281923659230134003391731010588292280420889951194072119826113773266023913956216976862099401291538182451403928952058452282115142662064817720679448627066757721836340437216683237203014589721660348614798314907281427830542367714763929954628227706908051826626074437842940433946974059031701654029414774992641559029393710744085397344177478577879100907198856461982369120234447777673210757752846307555616871371154942476641441940018275476386118906969488166633044804955427303149930088265415719040021944497021676789906124191348265485524800748200638810663923365926315129638879660353661656799112763655113204570953166191896957221574791326983918343444015568641624764991514722161352084188165101085574034585373026468758850482035916310411076894017316397161410285915841367223957122937722498152634556851473068753880107205378447956675465030748131477487742330454505270589119819122598008070995242159956436164242677259498067675619300334999998454162147346575313315404266443857095874959854628959534375748089241128783518618449278352696447473225630478136043795791805160898295300248442101701377305244783700137247944074415647393131891208719513202450373138665769108728678935428338959330801332518782882123038649846590264890000559240258748957162410286373822216881508202280431908338992360110119398118188746803100195101837751396472450823684056831292820657475605915079682373319528951018562186045507275721057240774366496072338708130438851319071753772745979264571987354043321557860903477654306314952934614316844699398686633619180872153561126824419324344253688323017385251964622908352431093447163335263172778526649121332048918947635317274785693122272659000053289737967684060748812346510024671505652286662143303990045558827220694285661917405364905055829674386059811966101562831839315718410998391800743667822261703263173868710832137936371855527771112377951748212473832136073971530795273249352786105697633955508835171332538617971867915408660422698983893671058772606696398646296419336812522261246150803419612995214236005587788630387721566833762573857475039083079653517275701657442250689785991391628726696223288618878795654406918602563232123354023479262151120196600962624768274729378366749582427516874516503825592452517751243928656278252811784639820697341787940207562549728582716029542109714249237421622426960634472816585079521652471912937300130967967597699789113758550888686855998765822815626606447327213983141776068249943210720342479965836243412035263541775063675849331826497475642008205714697036073092895129321722883700634794569064880356362300608097300331834364036197897652027706029367273212976192063812822116327442050471176134567391875720542254724832625181641461671829464503705502810708085355434161521985161753759132789673784443018814395590020578848131252349211629247966205912705763796056017179042601034562259618790521930322238861761308657957673113979428427642443603609079743329204499504873681610950882982527749161321363250699976544099666100539501394951124735219825414103856619287126949786923495423000288492561142114229414054866415917593532621959222939622672675737232829723917167064663823305612462333948148161542086826171752021187748492967827783811278234035663656989817781784993217842957343032429923281332418288952047035402552640328444753152079249650077970788888287621718067107745035001027423286762880815212102587727104529820225527847313610884155098151747705320333089957362789600513085658977085879728808447897682282506805537693100341537924388163609407139042809647782456150929865180994686421286817502100324152925581305780175976250981923103464850927437247060784432507300179761697412674162265171654532286387406973030371773897230684995521643107762941726928852500604483161814029243722847446306124462895284330062433603643507156189442323379342760267876681108598507538455018208691840733955601584596075123200379444216000488049148754417979012504323224198430515102173848968957617833135831771858782816799182664125081438164186322108443373326728987336139869516802362607392179603372263800560126818006596282336884123399083411710286854973054320912536987958115733553841780179168846845867246997058333834223917421006680492748153921286014337955876459337081208322715210561821992103005499586545112763033457259618100381618203770139699934911785379579755171481558463508118137837311737504383351542001795062550943307382818278257406781445792186476107229902936069762403879225514466899652258872643967393833462580738956986397043549626216386744190374245761679339507072249106152604153355979925253120277059679406212990520372782187572918540950574391575322921334451157299642088651325886133428110513564891734786711377074357933741165222591606886258913597872726166443087520326071200400284337342485437183532912427305959841212423376845862413136710371482285232007501585336945428338866852548316319611805011187737863042296121993754159468121451542522677503845426544960228531759466679577362295172821566150959374908377385821738093711877402737848483406450349922905189181163754116725646718825384513073246045777696984557975493504480397752336496849406065520112517989541867224310130839736094502625312937999738825537365136757541195657261326374315431137888821926240635728947747502085595436863468858498734037663787444802164550250456085545926360427915186741464229606416473730195174230630995983169980404481351052773784440579757302610355501871253889994370091510640782479767925196531041246725911883220863071555599900300354436389803530141359340916575065454230045976398898442343303653638187400548607338638581415493903332615032054658531287326894294762533836690087240098276311804207385775041023494399210924684789140293099768631577439110672376947946386164767028156907373720970086479341596100272859754381292351822011126803227875777026116807938754327911070886541644144357824453143423733150391983857306346069534781941084689453059695290454634230068519684381771456537642390203024467388140371432919708479365822755770137866484115371637835138317099996167833233462068614260641613635242449753297513885071967953759838651615516638509273077261773977812602415900220051112110717487859467980836411782325267118390261962606355591036667570570788047067585170113476166011606686535833694894376293164503305032854340382057598484873325510300154222083816185527308478011687427256329811666893831437596343502267793567610268660669159607752258635400751180473195200256770574808379417186874308674246535164307082719425369876444023078661915516998767850087385438688003220671748520265172337252762491087291181330518545486186680661772850714205761178106864855207573552148164699180895970908318857459884048144353600542180655573468813744607966922435659211042446487829447479029226342546977794554554007000317934648675414736297905614351278414185735711284333935782829365916996867887033009399336391100339932743682328363832473619964632405155921920037012731004080598571888674179040221446065294964880417921203968486260076298995726007064909424298718633587282623421275426091359976446767895767147645064175741306371232357655478608625084261495875580129020647264686757491807596306640392502758635042481991552813476739225269547035018765706324610530172844733932429158895707034351627046025852058379196261644641272244241184737365844551822984876116565588198105383310028574938555885958769341211756119378935383406980909575775782682022112763065513662760101507241171829602064774367555394399182451106391436595844978885180719991416712560926781866632006714875089713510101966748452012775141602661566479793385819980229326600923039425520086248120375823674076746046139296371337913110601226268290472848219136355699597718028294873284128468349282397283150540326937824145184014293537061924715423443959002266209618134494365634645456764951484550802140000257754570830190541680845348964232006184930468006997656367451294042766293109100768074614920432235005766844073052378425093321605349224615908083282882144802453631897093553381159219872666762295437807572784319385791031129850701163203730090709618211143996443305328744437521288111267353486631312003773785746895531836039500477713099178228781511916512258833075995215496441939114912090173265790213091784774812821311943503048515724597391805536887224745734636955082822696866512507722211391686684393557401681595041550498902824541645350180695266629686566782194036842159726726891385053927196865002419587583984391382209906903033001370153033660794119236081445465834074093010482920569831377784027484618263654149494462753388800994632880729636790201303998095904214760272616001475857353940740322326505937829671746651165405264377393115920612195299757999593191126706182140541544660715688259558356157718688903764600887078035520413861363119932349146410688714324962481921320098475971847278918139050654254569030387338014597030411381638178504162443413787605275531476349401381217491569124116303049127824913555729735998293972182293417750467036271163813136006639369499198392325778317870954930186759909918224419755524188757860443795117532967383934844854974903911107281825416277442212136204847395347299863458313632202034660405918749359522082120798317704481884076792217070872739021241501253465071577923250793593783414148466430172083303737029706467154092319959273727982610880501222321243971288143161173685364192249443405421245252759486768073203803331584999292634764007819076994714650864417254185746583426055791118283212108828889018366073699759863251343202341213367805463263572397199610597222961949747015206741941827315783851290882670919683648103566574896806662487228721515286445449743622496342456895679277481512600414292235580051634497580030452511669184793747275066527680925763080058999857299502523568630107506027074295648817857721861818466619258375711923525826658171270046236569097698833498517543998201621371768551609882820564555340352569683656482571466723552986485138793673211843310447489081234021242077171948732604948227767080697425635728392372384276462797801808445558860492228679854951511151279713566248113647767709406707620415243738913686440406929420209879016385331936307550552027845546221170724445657120946423232192752346162419247162977399011347861134753884986230431023820864837679394780674853583372588041197690520473788682233191463960507310100749607892610946931242971954158195144612094142356391282883406495270293197070706866874342813668410902129399926234263407777709942433110055608568554745681611967900708540471446984719692027771082474536157444904115512913919363550708186179462590322757250387290582338746328222814124268201411168675453052353591657299938594635276363912403670982432904400406171444633749968547144035263285064264714683992666929220901228068730521475865627184174330716880503792777889290154070900302138575805791045187201939492219715303986243076849989107589415568557342510229132179606840090297986764033853440078247689349965867703430104734244712994588688547730761154694683431682123435057972131120878008025737547743887869455283458837698404099707380797877938133637898326593522232421890444420927261026515231893559104882833211149462558647718886798526719088627890253107033605719303284057851453932882096128337641410680161275093143612259311555106232461280006050932518326583731810735919565025718845964831520342091917621119007725969412602274719544325927270344135020310752467358215600331233962911210232540766882222427808103235028969144439973741719329427849469101867192615127767115056481143063476962375721181476233524487043764202872279928701098976386789658412040981934671112847203975357038309781077310121954693430855479889840069907578314062274552700019632154478078298967862782334532263180534220584553873676756543589626012346197604399349818553542125592395956853220202856555528794600964169058459820808887605220478232058101858154058440365480126444095960973323878850578576852593611551741459650161600355764411843422895923570902870542605814527550853083915988141950172052815914547878139407024552965840929118373351928809179042516829471688247506392098111180410635177708798677298333547783811133311449137089900825569925366683540891353517987588283633217556146955231534573487402481452153667405264330763324860250997302240479463175623880702147204576410495941096989286761755071356523484247584556523203272932951402879614922187939314133515558035364505193561486507155259660491270780536052123160670799778708733396612318156026255091528366361381383918838278041817828597777312499711503881881616806519176717485438174874961574332970072425977865134608216837330043953594348243416720156380878027899443900945105504405945228167922470298863684774384640419341486022652806375434182618705746755719558766488223513054632142608906413401488500499856219717336167418614786847043810282475587955587167818166893803742707936628321639233808771190318271521076193970795793267866376224709264481105580160470745649156663499919276208514526396880514015480332858050542708137323968132327739050918523073423798276726418561074534507058133704667147406058107362029230086070509931884173694465212442475465240942952621395440530456864839047463483981845835362520111369674466802388995694542310437040838929132278596083301410087718533513950630556379638421137230951498912227918211537673965239825768835428988098198244781275456536763679268860957720297333753182267404678683110021541003634192718791355764549523495660891413362173356845532981660482771367312644338702971155637594229949050083314582481203092926944338092024136414899039707576927912129064641822721422698064223714192979251317118476814213005134980801342073231586378504241276896561502775816040632411383944451846906680803005729005107333433975530570190314683142293483976357563412086859557954161716522261245078650305635627015490536573171028873809648411513915763443696752754888848019810911064128224441796375815169637370850820311051922684073592424278976521470906905170290084051003529496530543099449840308189860828706867150037363198167211987597772543585394841025824371790010305716829533259483730348791153012603536308813773358265135021036549157680205761708211362414444686593948090359288360684027510526152097891169702813895242324364410664060872958511001038448134973607505661143507674687410859263235585685426367544240594804231712867118331029783084225901268724463254787038020208680767034241422593785842600700965276888076794473335323281254413162442301547542067418093971926212296505940776387476227781363839173302014869916788212899485509581894857960961641776124983370332591247961908052774483067936411340942352802140850829915964771528880351309755887044367098321447172365854784637858022527041985933415002540312861696355039457006274515812024426751552435772339401523215219442474959833290429336440292026776024077250577062175635864650383197926298537975517364702648884659390805422214599659906723648321594892261566490344355944441287834509209329894749199873363906391664079731468355401297585427093941265630604060565277850893305381594924243448479086723818632488494211531009861887824476273107467868372230886780009760179038949386410278380348509568494004204611496383500138392219890213199091440776093801161935899197933805424596241921477467855559065793888847847655623347174380426451049649341412006924867682251706806527794263390273966337822919350898850446372236843877994027537667829897942122001106590848010483207651450353439516624596978265104154326284639300953496917193967720351552841320358488637552229310076036269154109193404848892991786835852063630333459345753203782986287225147542936386802864178882329778911413248185760465755028026866585300911266894049984454337088920557535852759001698252547714657091814726516970927723145330847707654652100745832309853403844849631152658693330460997679450395708827677958704228438115321426867419619004978408919931318760464071368369246515304919899659021301519247349276474015501473834876806456235623933152557620406419084358644846463324542722617240190122534718832741593214608427166168967137513731954112122420521514265368056972931556887617857642278879190716113226429481308061382868410168657847028728832406257730989717163986117469546631663914077192767761959112747006080076332443356338390717444428704416016644978964281493225867816023008164919038243413719575377028352962716629697467671565482787855846577015464223821610492334779513209391750492232868307993262189734093869626874638366543480469472643230758764920185204684294903874758449942298092482211181640074345489561734805175339331753362678393407451050631801906789331659579841328910713819172819112605232011016961254654273408577593462395984595499037081044821335828454585615574748163180096689119737237597945932946444779926849818526152429815692253320713203488442865234364586101103796805165910682494128495127584016992613854064126916803092564270658259701715466899865644824393621772764462098001074584139619768325666482248993771410022163761293248373558278763471868842568610250232944307998906803457740090581461240974047819525205455334368295897643629244743577165556494590798068253812291652791816460830415836796161872761212875226554609607039446650088543634208625403443604767668346306719945470292402472277696213376466248652799436520890231447823681686835190153079624622051934791030983664467079772753452003210685736271450921402553668210973020672185332853432439244296820250812253810562617404926175036307863303980342429086038369819685650490892684165343823018141393414811362605586443449891943107421080002482010780639651890780693339585319376680727314126727467424646885832793093325498831739118045942758749020669575938840164714773792839653921062090958771932294479476097212205834698720749505146407105451422903880940599714424279605057491550949415181961234229518542536806096628467515292775908170101119188125760343252552848565391052478421099732184175187791048807683781749188017139189298252780275584083655309760125976394976571020035045613860002189774248169221511129827052928642840540231893600280162419647712400456868944863910661288073513357317949349077608489160861163745306735173199326066004230421839009734244273940973302632304236389611005038732946035830293162568260080772529557439475174216075531345474680695196644490201255635016088968285816993030466090661562468299792482132463237422145643122638079251216767078037967335824426980149177322200825083918176787382157940719317591055848185249605229753621847811600313928095704568031948338488406701336408086199083179311473268502146836194005378901692146552694272848589608912474413216757365507462169215669776231552516873681312754448550833150702175396030697908472536478066249220374725563458191489135945870106617511624709300321027503561331865835504115595976240908092967881637059952191498461238017856183856175595561096730648896471853618079995868632145489279882730040341763551726336923846027517882686979340350052582929770980595307382489218012961034749529227141647887702117713845107599743914656211589939744350285755806526373892659298679143461883857326277613280299354402082895369222218488389446937093558774788067036274932816876555454316506045164684981806013376201929796284826678704267337219377741221522488691949445939071609036479445625863560164864082851684424104416569996588250216880174731384082728823937335424894812832335892567675791807237538589153959156690798784109014722444223628882513765570488583924061035573810009791080407030420265281044688058042652130962879913447514179222870798777699392895025146692559161837591627387050291143849729084513028035969284733051035775944378825623745329014350654101149600421193960843529065740473960482625962910103060153044398587837131610931623414263650465806371338139606381718956175325324739026789065306573335854635817798949809894503630891549125526410758140040826733741022988993577687420053527456634364586496091460427730149977551852170010007946975511195406488785997359305796942328065553710142243395533704898918132466296681079209548218595965318513694550242663847975473039152775037407737720434822712906130564705743624047330829101510406642914018459878152779536555374609791092311008987210154336954063800499769113685787468696517324732560045045264976893292496248947387168748581989692154772374765443189825022083942543022862842936526944242145774764773590597398004512267737670931991167644318364336394117332599317392436507663683641153751800489562745318297550767862383122309927622942798710117678151424447577094799793579126541512308412826983047271832367799562646533781768568106672258453755534960781713308860214374955841024206102118930559781252748749280124398639761135202299422277944146580121684942508725206513838912894935616162529716968117367954623666330030956924960112762922050754867271626666805658580596089939997124811888970424251566633138325748183028226543811927951926625565467326404203996089202352037147293031171873304733889301111270641118854083244015595486652806049978842180053596770048399697486276288965714079823176754012918560896897031646384799643865284998199432936266207876530086516475166092893671957157482031041133185733388277287155815384968524232635349203516472100533204230147975731191282384619898502757815595341751493263484371296342107503368156462595682524798334172158286832194424585095929208980105189388917431846006808173530930352571143596249236153068643309369751839242015879458296295309014781889296216060441786862169849870595759712430660823489666263070539934246100361758484291971264731427154124870637365614311069635030137419797339207584090915656384267947903968725309085690438836690821511825520016877199041273046418699070607019796816502095008594573637810158408366580527641854901536276118919441634448069625198392557382054789683234028700590972519999569629717544384781721480254657271422637073099459402960833800442469484833609339743540623282798435881039313524636177871723573739352494399557796152316141960750060868926787266090115941543045838815123350638392923637961340843754671523833581985173524111586786215873933145130587085084537088036107073422726131687068099966980968549217585195984454301363761766646006620815722643635394294600580293159102526402332272931930161621323457393244140043206519336839321306637902327945376142407467705042880665420664214032123054554641162066958081267470126120956712449205307375154893449534708451749500036571193772225524945944439163964629806867827056534614890984760165633340862222647036810677816509897894688306027012644469144512474681356121329854945341751552953080591186247558493214713852485767928323136458559189809210732448737869360779592534215565942378422114025811005830926925893647687640460010590355147501530063715686517788226915196118371796303740350467540458069406691131506927438545810384890353562712937778699260940006697723053455174819709920190397544236431425271386275573713629589990716349867195954679731212568727233961376877849609911686101964333386980473521680158187875882570750757732694969834550097893629673653433629911548407609225485437105676019838756129220778184371790706492438617831356768838923380411130429497416014851587463207772705411994038264230173956821305693144617952865287076120579493578384821823146077694856958107555182094825638931355776229477744562692254745574495077897624057639252004394987141412362648039432998938654387545151444258604579213520472176032112278586230604175118478845062814862244114979633881951314949611689092693724908507189733436954207517556484146859878595875043008272414505679671822474559160094254121890358188270156912213547159125040625211026996689738127401976165779326609357225089659784170592927865580965039885376962164941447324834787357244489148362149560845425108350933361438473406931723457626145799235419798466506772252882041904631477593190939309339342779119288839792081586666832776450830874641507159752049289735242494702096192571276187938361010646192966744750237394523586131493718038743644766795302594242480735784348259341498725658076129044429209831098413356676893597316663217523739975891722967464652023063758072905747164735877710070685324656592644270167938656630404213430640289928918848054333166215436560990138831843183019251606252323609645611867380465005328165860178182455343404876393998347280558891483241931117674244402196979068430055145198544839623957264725106101049097437634058107949769805968608440894180949045201247926859279321907734574072566816865918014212409424143553945564807424226763195745786262651150374917564726350250290116512708538547926385364271363931181711979649487695855328540497976647314291829456801503420786469633811829661432226013490651542871712606832127399101662612809936522193791300921659920902551099398203184356047273785832412934235225707148064658170467744874404511533067870423959292385707283740058696058236751788624189758815107785856837332940208078335727176891203469644508717565965248605841931403166199198847384125470814789237407121704589899228347466772274484481257962535957761069908439656670338707899046505553708758522057961203545206066000901732764442178350842059234663233979209915540422277051579018884887928377397211095703495987943813630123691178735342741021251821888774087656222894937126632153227113408275853729400056047698663933718648247315849185484245288692733085880754769022190041376957846829031032070189642551142375600138080419322493832361637666091247345938228050036239015062705648386907057902379606255133606090820592499469193266984740365315441247151651411569450522769346622845936817539336425698904017578922270377312124837439581702232773213871177283731306945655375009077765670777605583480010344822685619196402084317832821011016093563267981092180958624148390565276891449348753148507364751507240270260844166312958426753918888000688018309645214604831266386842992284017299092483413188533350993957880413863631997807318689625532216305819126558082496739496246428806474769836215144578108171549338927806681214966187072174210195151359380358285665365095768747026826095485152086837537287582693814931838876981555062266945528665844793085844577381157232337940092505183337034076619868577425023964752967692055145492980253647162133323814097405661144408947595342996898776725107036755985084934643565285444159629671648636773256372187686128519553135424593880464238134380784908061734833195890079686612103656009951847899914924596322616824530218665384016243354372438574709540134619750871957022818380887940522009843290556215218739900743049090584027561346708624135979825998031055457555235203751632323991463301417093480742155825244394639271155504352939371621221339003222854011626821123938137752334224586864564735623607301872285390714275547704059442449860865305554350022918167944035120686307190208305482585798059527824249770000927230712830900589010720682067536600086522596393562757059821576855678727057161161802283253094233911048283807428886488387118648682619028949989476994796239253029489755776498364346786419535358272964574098035845974346186378623557735706027895574182856801492010255579646747910747376371949524660090165396267164566595751183536154251540440365387875262884207477849364748810376307382067818663916705255765132188317916981875653819592748192213094788952867884998049014436317101458609119491979452051576344369188785183216712618778653701488469446831218566254930531703141686666461577292620679907209436180549660229875121691952835180192514817329663548319741542669030975668443927033388175526709038914479250633981274416060942777561203946301164887698725163095672246200223606575831494581409784918663448304708549850863271803655393285706532577726991635951482518817465544963697663182274490114794472357528673629755455164310214989947472410421536661567509761529853418634303679582028444155122983065942428591354233295999334999180668501794371332181944049986312960987700837345954265271490625903175700100642332066879236415026668718026341650053354589912465902454742073898840972496276763775463689149362668451487483797656599363998485671448678463017509028457017426230465606513623046093175436975877466779964867127724068505158780934956165219369016535643339274931726834455434100661749939274698450466851635737918802614915582897823356902372353836247644331415447438548693832324541794572631329399385283927963565068277917130596648473576760370415745025898031044303242141423885292541397158536856346477964758763325895964687685768635444869825437081905777883515935186890485836186604928819271516044496846336380284758410144522473286971879328914805980302490592841981918250493278181944985863976703507076211066669583795523954655174017782780643498315320151189782309064794606546646490060433783763110711263953718636927421014620371361681896909719684042533798078714661337691928270748539999407685556023976676989084404334084275193279678653934039625857563876311441932966217136716195817387209094924646051646244359422847980440373085675025449492559948954229750266236276120884061425887942252804039991835621094738452162477979738748621548839744579968964813566545417310709376894717248341952495825834348838120918272073541303860278305518955950680390699974514347977682952910415810537793936934686360021686396500805518007308098870229870676166344236108093843557723546624587315632617438889637744120328728913680410175335614622835065255465955194019145556529844884109937775356831940158344121196178917265687924927607290448326518167577984655476519802698853436112875157555760056779965870194382898073668532443346259286568679830864946465266046226991918685043653475302766362514174815285460251909537611380170106344527908388507681610918889176044098563552832285940782054658950307182829563789393411429457107515763818003304043403268079083962063871708373415009629082173007721030059500485574161803124324307686587073884245055063707924179592943051445444976804413764011985754544099019249806458752898976031673603702771703772673275004844784814920827879262419985883560994894076489758956097300497644361477757940541467347488244131890966203889582746279626147265278675289013069117331229979759186790389451689233310650940425788111362059838790157052044319767710768163787972879562517647115620137512713003692550746544582179044192340503156012846603421873906758485250152292854456479788089253315290829970612915924758414045574495561096352430211505871564536849853572028813170994102451879774986647276969312195665599186076850273266790604154628261858450430312049910595060554217871918377158199299147662313524531425448560876746696144075513432977309254398520239065613262080938664712801759518423185880543231060620520368728397787041007164961141614252674480548689055679530890850611304372873531283681673395102243927927833582305526627695003709452469031381153394350755526419669258903497771880348810658324520430637584574341388655197560224302559523654021149299625759717921537648152137205367307449693452700989581928259925733904475203760604397156714945898846783815170770786085334730253417280628916093883328941375310582096445213047761999995571293947423587262193176275935895193020941597676993672859992264558982031251958777816705370447587425951808367839221380406594939980481288709257791604302904643726193493302589741448228098267751877107616687560507202683683282675412978177294258945837781742554046494953985513509211611615582035099836169989816348432015663280893933654868184688874206527103558577304548760141788270190407618639648041466263492751249913331416326791756127527860915987633122839906511725514476277108772791987372824391341669633257445742945573516379407423421641583201999317293908349543470670214192373247103080848779846772378948313209632714076835672723633811839090241564486056040946736018612267049730572369375524572468967931420745560010830523827640577526735483566420462135850253015697615683829611391754639809070689294539240994941777222643322023559984798355511566927140965524616596754901482001487963342028757210654983307884034330439068290386264007072891799695667957647833817817832158197227045753709375681983167306717459485547870008411712659970851396535994882227179027450958971555637713194526687615268715776756197484653126702600333012661115647502722271964924424613325973636238800462463640676534491450457383765892865786354656674326209513845041064770932236566133770390932183598289807199241263076351918134019332322543344844905949650628766676551080910464192856534584305341354353552597481110029271348177893764315774836434367915943309051541260540899198788474247454705287004125688939704746765147197462357205231665120070896732839885997793247740347874897046847190790510427343547811201942395758569472562446295118390594668225710517470206392313910626664782809767798050387815001814522773699945821382069243062933945490704297021624542221743648391813186020752521864971513547195688335535744240337556041581184377100676255620440182616012434745265295996144014788587038262905098990429790385581858056562804664129092153786062146721570260481077001839814413041006595841397571310754067762613103667667038663804187505408603051510259656442897817604023180353038545051362714811839459655915252624264344901562897603464505754028454274123887340921737086188286687829126451699494299373601596488717134169992107073580566244007236537803768560231776320777367159098653588679835109654214445219692865750432097539452622740184525379364939149912525907092754750067705745331951417624315006591798974930096267818262775033590173491809952904298146967039416015898767428388564749204568991196634576196077677016105640899698500234966136574431940844926476824899417424757430428225082572849953390202280935040858101722818788022032777959020138269464903114499677280411086224593860236274608360395296726727450323160775787044076499058165169335048008561310331257850303063751281196350060204329763378232844046297879084151437753382804251164793936593070664071805152962876959529277471653750941670097508419996624066509843282279315759653226678799506542249073584132953950643379339370326399418332352201170159030718090630979384123994061616202985457091238595322830080905378693797257461083725293249696425538525536998028385230867332297774368114346501810752558602782864263500523406705988102141171269987954112968822144982737952965666645836402955385203335487128999705720316865401245292733653446746891479078831175665989584489475870677166313725129772021212517747644029375501041238759247132814439528818091356873088813576969780889564641533552556195686228005670394174902410177591710349328319094251601357383399674353474182671568272962845429336804855372619163796354732674150580916377210624553252616695389507226645124928001000929536309268757821386189625679675784279405650881029819612676632856029243306708934278828722356868276618752833538224840541949423304801757628323150505896162259678142981599209081870164879563798720011915814917809378799822724654292475069342554988904211392680933717434551197744063146705699101169991505931395026984081571488410316640654223140626925302587905329193779750287925972492710923805966920181994649509378015407023858906811293359467824078928295542079098419319185593126024976240624995261217917151497476509958936092453826012279674338229755146314175163283400839618764654356996335714114082790507514919431442358904691620416851992509616262750162749130098001697665416249970931138084010371308270985237884904177179454059975048523806212550381628442905995045082263176532551552107162504271653554202043667098740147070555546149160916486480584967933774461759768736492033414036468731362979890351775592662982368885075392531852917766510670516426354494672613047956606870405472163503308657660355629068841201180929952183212306911123665185381678506161518147549251385218619304697550561529388781558818953915816696133159155764511584926068046077757958194190598665096827262115710023674701317362627520193818244918190339214015767065338598918504104642668790465022540403247726692207303930410011764862701921555082543640417109054463426229844634097184612401980305090422612933524278894307014530032463096574692056080387246711045487703149653520237816506655756589380845789446985199086828659839328228663893060695733468117381968071471911721452427172534741770085178364254231144540339892831275792630814696633435226599315315335383612866204662534457409069182199400696294871667690843368303830313230362199178184170969785142596105457869795335289407543399277586164399601248798134667519857507910720501414452516999368008768220744925775820352819590370681261465324654813894608941463601865098139478698302199367798523058809064146342403057757902081260335237260965218046443572401583203679337291630525584424176778310177426878808223136203966566462246297075372168352579080456540562453311229907270510267361221238589617788603705215735412752725521416108192982936939124871410915517324971628265136788556246410452838845756152629727570471158402240017351147784508174087831658520826266013548070541159831047728740710740445791693127853460742064736687497230134359736312192349490680918300570718224949483982055290993612319537890372765409443426198041294605128513911630458525373639221388468804576768083825516746507294281251221648696019456904639420546426101110032308392789565730797643464369120663271412100360410215427169800303942986421600513247394157017214064627435146076625660843792689550652948493246076244574740883330619659707248238155850803438560788956398989486071345501834969232230365445496009135574999687520876668958927034963792208159331234991385513926518335796714382740615138660709911136296535156145337054106821580597557284206168223000342825474252294193525255121389098962920500035790790874059240125038987163552759381726246441532219521929785300627907555380004836023172944112091458410933021905527307481357864253236515021201232726868188463878442151352175791561051454751974681685256652185130446042939503932528055659723073733148774883351288714327177558911653932808957114014020346466132108082666262176378569501116318969348391822016640272001864424188181734628677821417109863577110015133474082728529597638485067023316054973575814851984243369441566790884808191309294790661235235324837783296879947119827885314570829610967397051838035305753574620781210450363545000631418371946601245944758445846491990590241842190300505526949816061818756101977571005518926064828778654347997430481911027650112012329983648654954461150156626656554905603156383778611521758954026855376940146447210122080983347617293203160630069162935782972511498111856436575215173129861455131734675410006321639970343156276205997701013917969640276198965531767595410644336706896278217759573612860556991379835754412202178878355159662466292518561426382726602233342819516766773257427876974866557769368149339904855621948659188826555623493748971009325614686550072095337509457320597120732746397378058945403797800542150028066723431817598447576688154671930065635774326718949008016450585043778574401515059101463246273959444929245936859655103892585715845321181396941389481533983674606254726036939166652231132019783301342484872443650694124128534203754832370400372479304926836815339420651454609056656911441848420884470229466278279914340687875457305786961435587946846747866999685707986013854723410078536707590649974477120821654812513565639772812504211116348966987857050816852767205895863865520210363601401219916406644692071571527780955607260148301420270989511152237013687466472049665504313791381460756464380409418846886601021295002092858801767078659587523684561112985974896815974744725351825654936888459188059385458566231871536933943075107471621365230554229952579277542993062629769808222794916283019764861505900672151612838189478870213096105506030063062468958579468801531378169605528558410716190428192336049528161359302004001005656087023022168181955556177029903746633490169085210858367286774948519443151595226685210112066542611188203091530852498583141074601033921403261101977048207454613764785886793225299764853548088077642077902590711419535239939859142548978327870407281272599331302574467584394498297415356034166099581403135981632979769782702495217273236161460915970804283699738542446696634860825163858549404803847693153482236775230782208869370802042242775779482467305115975631923392577409694371784486586977625368231215112880372895210547566661870908540307421501111671368082630835855283022546012225360459332279114785626019416227630453314602802835785268817300571800117845320717041789451621832950883436521107277445613119406733296882310246959205413171143579138750980328294276114538643388234935033673594373417711400937467803919932141026280251532610789802852937008507042199575366990417681077128553210777400339004771984300569562392081256459014161407792440578834184464113819457476568358089770480230049826638710130546193569240279905553708717818871873433584369203257281753381161674685960245282666895751696829293928158980117832569369120397160121861070162746223423341516832527728922297648938253900806705944494096419746236007190599635413125656685829220793799121386686366696510308729267934447859315494069705822791067883752214768723131655757292187084278770276648165816962556100716809008645303048112169929038933987070220460513919142844222669934727192156189769238442211756849866265735807156353654567797846744327941075588366226554982030705317730165751899204212609052257779813352162297756887677982626890194364679015066560584378176969602420832339168956805803418364717535129224827311989855483571634130714608072189779028367117191047473828781318020636475335295650003875714845510916994746984402018860344832182132828926076972124843789609300402168409322359584610809271935219019070787569236107430117824904022236923781383734427492835659656048330277835344429325986297114743380558853530091309349094173478688951086315608883366262868078408420630784198078279260379049953093614878583136749064053492247770549792313348339261860591506540488168700790613823667795445903755598753032492781232619100898899757098601909997743123530962196819511556795030281532567533659530149363483637676354318772958368659497878494735788926093495949437433333103954549888073812565748296357424206700835316057236497130336288370223244255519828899134451976491085064521995882085147949846611432208413401076585093706996930558634756411110108658459466812962046962787557068089880632486878136446203700776501866578843342248633479196229210570746564591737625543176535074608448175030156701826817352431980574292446177310632461366535223243045233821200335958724029369142183637095129768911412463502901785323185000215160803422885257475295300792993886746637998594015868423099938928353230885765179423563605490424710585018195647764681320160032662929364596422800344404924778489939867533893900572591188033018448163656696872306806032357933451922001804078572115622832012548333850526227146797573707116145123293669426717279886658916651530488725416921348973289407591788517462119694274304328231328590240672943308246898642776327592850394033253053949999708123787973834299820201527024234419645968974502553779069428821567788806058965159759180172622972692230193030565869439492163798181990982408794499226845022836355937710827973783504543024837804188641047167180923727712646664862023508340469124682199568099465934905039145147527767907889165852049067091748530969614585551816258024519550449573930909566512051488425985673235152694389524420858454688133359511489419600938438584152453316184945942567621334438500029221342576710636052339168547993870661292170072097252637749602439860236064407841971877238372262655034298745724633858999929557587102336277377857294116608883112283230986290229413722597932405901227164145795285334508640002149008507831706148208654469260826015189738063120762309684128824871273252126712901562782551259634978073776716749706761729254283524661391788435068100711009792407031249773862549355203266248290060686626792805789550155465052449212069893783957867445781772308425458431081773137673982085371968443752560729803836984731059031973110778283234140155500045802432998240659045122192028522331525070529180400271500128331803720633409649921290486442893687756018617683802288244263797246085051429455855683279470255300954484475034497382051950752245766684568223791864574497378135822190798535299976312393838812028720159193484232762852502406855493427323713997895541056633717855514072376776062488307222802709216546186313367561407069165327720723484905053518777906977756873292404857628805120178975540705067832407636171277151174522083697776981555334581972670713229772392574616551418529505193214698091942790188802596296994290859091114120044371758345042878549339564589397612973843182511355586509009907464592232280274403235493502270724968417729509987568931930798065078904376624026725973988371333567781493371080550505767443556792263336776624618556895412128086970500654158345160996708513407110441729017013796121648579601726228079557223936622502986564898013751336975899300699957229549952621653563570516952593398757642719225807418552761500740334769559292513851283199946835963577637873694136593853116903867739167584597558304649816102796616416321388850402891334373991983991118568838676018646553518720223454434792143848314072971898931227874158220222271949675139853775805320871803477571229570421474235371393910268676255981188994278150475365597647200032517037033126777947603573564235239455981522117905192553776295607734829198548484333107935962494210828971174470704828847510755145489568583154006904148987186769907731983999023118006981574575044911890756934568792153598500042163629868604784326797971844818351886834306853516250929311556176255947185272000747791104179756091613583336405260904451516985676317128985256616518981009240438628203749080004879665451410333807366989975092459805160730093078456311360144586899652543430219974813188638490283614939827733349306710738178368569231294432734210665284997722538818123417269295789570864396966982316982015942769755065907406078733599899030004570506057730608916170233317836196043151348161858934573767933251112671429523319350164312929442587249841356756013001973726544743996882888785835985078108627705757735392807593249344346930595061438614789209083454288685468036240431940016077406977688337033184255325685683509454800055835184076661646580523026950933343755411904611619444244985804307287285338983372446090985727544859970851667190298193266183099259943945247496013685795518670198963429433440657100149142745077103693769782954393706207531150953753236430667524440912962433462105100085008389417579501657683451243737469120665948322099266597343569534331156944307690988046022411771300920839754047773954620881431035201699392305834982518404237470370887564713199077450847343659423761623843687329758114815000016081461805468006090618464014538709821739675857392836110430912996179349704731454073349930301489239701353093614356518956455989145520796115363426420796222270772745164633218315220775414336870722328174135737584331883454708776956086947466681879453753592848096346160064723835443773642597641685884270473566972107259865230366200215561238999280389042513396314844937761467931073493565156359026658675725746032185869437557554592132685992785336558845131307436216510942594434878575948624760430580844885079035628886667654524328692853029294606211546052715268029736528261922300042208698998503872629534173859508452058977990054807186482933653053304608241518464516678202161813780470026621748452043088963856170586407317110188168508283442873765011898542395096579441509537784406850318447445967240376112346365760425776210079422226820334310161399015380639393509479068076275566605741025696804910934065701840515924861796814802613915752373496996399235204381406572592133280552738266964328407369791924126851111945745486725271367652878403762289876516404051007121338679803470200905090582415388265972009814026796329147149299426283433130890950618462576737768243939078326322965133990074349307778091139129583127223376771456033750028685002946835263326899364804296769015617437020815208528542307130539118031081524234289187180839566446464599552582766987241171852441497625957362405917983802189561533689302955481517766500667586732840116887049385298594073741408174248358267798788276036028978224697043340766554106898989892577167913493881573005470138752444852072642176131973172745721966642450950940377036540599110229691760407049519266023061664649298304262452528071069867160086775302179374906704287625256850459037481192343127542300038897735513831603887441000242184815621452114764853424213666844263107228299691315930555920282273926995540217252909115024470728995109578067785284080407212179804841992983574583021811443931168710302062533921874875356682850806651914620363157302740083424852058573538763924444005633999760132696724706522036348698941635321198163810244317989260978259940707751924058599775435792640998642823904119209079352168798312890300265562669902066751780824396951637762614270146096900410992855722840346802982498570551454505037195168219931247020703399130572408258794867006332599497356201386843237378905656772699333661368029970157422216734041976878365931121657227395478349737556652297357884616680338244139066868823638430414087958585526964889098344307861203461058844482960904538420224560521965843300217134877602652419971070435622516639269797627259322043668498699535142540037209713737390559741417040394163431401339652646525552476558284069385015735301007235232006809568670514704444443756998293525827559360727491113571457460523322832018802186617315962740281960835140283967540898051048858184389410061875079792197196968786645473449708220167869126896784010664095978201708712511576998790130010448348224411755181523617480277992598077907023343743773309171752316653946086897608570865198538187192613184989465566164115355652555093902450740493853451744756690771682662922389951367669052414347617363080338968090796370768274208139413687564438109456435328537857237855088316810039026604123892664483191617174403736129028541522872888086797186992282540523340989272578594678116840906040149814803090806168580323245787663848458624513425951642745553291851982169244459630511721281737391467734195367539835704684462210452728903441055211567692179282719772692985652017915538497635718021866065954741054959516331001682973267635058569277384693642060477936180002015058324883007468307952247551194796232426290981055799113156173196768444763524414581803007533485692755654915609605970234086500099236311642175800421683311062798437096066434649357258076256100863921361845188915914141446339247743958486950810992247735038047375817259201252235524496805759936945543056510595863009471021803841503090731593099718695382258949995076357225542895498782318330732613582305382664761783125325665030582997667396804640012527587516500807894883272015205954104985907614750556268585923146483655018721191453712607787315397546841895353195885153498295364078392700703385326643725196292547042177081462343088372504946730575564532127196648381699617162663481057442349107082100628584677453309954835283308545924623273528111555121669953131895227296827455353464636667920228962798664338908529693557145710977032334516086044071930066559489540691399618201163712195502133280955115296850338258981215926831059703577452081013591128048343705904230414055136139395251528175954026051691711885087821852036971459873794476704089061655487320939292741499407718385331247953378249509837743296595305829998785428606726524030307979011688635018456328234644169072123659178441141205422373512668756594529473903750334759849125965489480023483174759357309733573396036735928777911793464373122917591935216284222775025042883116724977326432121702586697781844978573001314298547979458366723178446392360865537758487517419347869104685509955610459077285794706166122709956934610196947877157781897692425309511426471407819045234380029273244075004881016349850170073293681595466232368699016252325920300089359315525446557426702691426963202962651487792236561517817852168559466101568374205719106716181869867560025169323440798870102546953596205750933879940885018158140357393726076896828101415759293215753220147228716259428980210505594600728637806859817839121961009761257395806840857266350285789134565228637685819074782102104512492985866648748753372953269431777386089896638501700827841432134829042475942820683126634030174296592683958431369327538016780509696249749943643613236012549535650804660587241238624442551616728695239864925885541898295486269406969509367685400429306966331078478122772888042269430521823399745831367063678195892811831367584508138842735218741585348486039078832057395738004752082619013470937943872516052063246447206256903224158476978530936699820170437216550072641294099118426750035226355419846420910214240256048115919657711233894753696389534188563915506805026148447799681942861107657146707715388269126911621116252751514234038712002907071903262103125450064446148803066311234042937921947179180572660020949502667502005616961052229300197447727784807228956552792336197896953804179680310462636474162468074086490904428191829229303913477976042838339346729092176256057723829165948675027148066017391059488971780585795976407604462336023641220152356466994490213812966385828619931030385576353320314412087964717484555977983267196061088096513193665471447176034369302644191345821996989665607602583815023171120429500950851076054474343200493466962122369830630260469702111964050405218813161058174463315867653760694642835478487327342692349393028626469077450581107658206630808812712950095327686458062739466927419533693700145573993405428652537618894144533564223260437307851769125613151462739615137422157438318525247167892997488906036281604096343714769880690502482182985122101711049496905775605496014814364471102145088357060829896381784662929141720403240839805856621462667930511968319441242600172561116185280670298317661684239149429203401633959603030452376572774357300161739268388560538235154068520309257854263104567668284402716627980077268199461004374164957141099577335735460122184346861364306919099547789674021758440637652214731944203813518540499491090748295139622412751955866334507446588156127396980547066385574768934986001208484685029076587524787817404314942678245512254438075701881102778891536676188008063486224807850561670970352962605446379058710497754104288522141883135551333889454052570065163841185086721546965352953628650103644754519741684364803683474600647268026065809869592405253873991173356097230451446334469439741490388375982650357189123865967446764995250869281721484949819349016728607744740989607146995641002148960714772318518852870262745860096405411230991655668553194431122165977579600491090629173894025464507994368249356628561563519008155179904763115759700551904156395699535047649238463422995064598639120837353106949713883663343634489438466719430145268974654377333684781096545288875418285135278699846423075822809808080407724656612359820710781665438187212055486487677584773988657441622325717931389839041631588302282104789876353228256807224688876882096711176161983084532759734272535835556557918344967377599442265664075910596201742408849845703457490765773286443825355705502948768078959755924283676581508290551221821080194879366446862750845679666568950392156761345519736296909278315906103435766403747259270744734831025989258526694559901807491548113285994084516283629822777961351989833588648030713768501196131820396805492108580442889900998421893452948877360961160362491433797681147500540595688526629712135374270078051802494059097052346687503943328422883708803253698775593867931346395083932198672140699674016505902619099304837895868624069172881842015110710954662115212053408976977236660142306997989497594035365672043437371994102997538059200037635013501218471163781858236586453365190144772884300921414801284243328474613173863302497924066987295607599166352287007675869235643274147555481511789123438346889052220669082111477673396551095794938963357744824058293091568147945806525379414313680546198756957545810508979231760441178978293964630469484414667125910708300936068250162106505662797521275198490643564496134714894872380886217550329587849050827168552697846517322077987200112068170625150239928444595305980122824693781908996889936922335342018104973997438470413719020394654273599881730277199220794455992069475174368730935686321809587652647311604889886134087042745366726649777578147122728732848274230752170266711192664936806178702388593277337969848951247650356965279728582423370272050414093273859072583295441128361666324815823606317425143091358787980467944717813508960638413442291151680984146888326010242729971540387456359632449127040533614655446763153998110477172811113254952249737008955264655484224761932414416003322151787254056165238746052535229718907511329906876733190379896910477757100216395620679633590713104536493709105995554683295355294677016355188704651099779508136267161767463020285500182027646160042549734763355729498915647278495111924386756418318626274255938254926006911282950456396728992462095391136048451025893706279780211798328118099326425502891047596261359810610024033077299452559602063962685604942129914406698213916798797134692976699685899278468544967164839359243806355486104383933661488490022753660532293915900672853325503645058643031521752305649971515528737766703094620783542842535842575302212626415797473958991332463419139656884076755728699373097736917158188862716940241493968536089767177755811903900537021026622498465219348695819513805396798358831300014477701207771175423387937203974317623692073983090608500448747722859724112194607936849936993270979720587511140242380493113065951711764596506591426626045556868419638101928052319536280655202782303864859542952781682407001494376058078089874877201430364480578605560368699452936668839879987907904930494310758975400644113552494177500555937930878546385375963162492349195068968847806827878108821961167445080536130429681779483463052981097023090695637449521863154627958522421340971272322537032604008343326110268147088901011468917284917411499262662614499695462136675546058547128724801528240795999731389798253749131814572667953535867400571531806197200050526152732234972790290986972928591626002938774464220672109459916787859733224724156010519582543706587013822807610575855103982936781327710653116183234572697107133871176671058767887806536432377205429222867256989995775834281963254267891839287457296091714811371651745133041667865521555831848528861214417372588464545550141487023225370697329458424672863893064288561107543204385221583813433613367658650698184263916235461701924745767135463804272763305924652597276353823022549486630368066730528985222383418903674730195777854183109648143314055700138943595749470991692459640654769152947717733271069141485141167234359396649773817927742720371280823747131731271204320531436769290537731407636160519624583568288892334198341398816918269388616532781458029029078029117970915566216799815680548665874226807240448938296118605202467885168134391283662868653925596414047441726287576537951754826469526144617924004150931902798398673598279676513740754732464093036860666435885386864000374063804422749827282167878124687782891816521817741130193442177768693515495199283552035088585807147148709106773690083043521751613399945132322084455212552700269569552445036454815444111552272891449755119725793069141482965189981650572062235948287629852188741006138502176204408010595067119595455891462745190167917200178565725641703440455464724037753376817804895316633029313090071002533534469946425667068736830605224282113916255136537170477567037564012912482864342556181736327545357627759121558101990997062206955755326797541609841404499444555555205714264949570996105973738847012650525456298659724460114078182179617040010785445922071600080827791829508461350140433808998887989358073746919840428007407735179316237024861012141639110712347074364107205694380503354048192265120044896970403679324407572606973860461629291831445078896347454135766943868621097412223024972747420762705146440300229776156650443468993312807633965377219344741275333265336199278576112716559956552331661345201993717108620768815752529015557472617578530882116829015821424510234807838340771071025761995111817049271299204972067235893163764718985990007551726924769426733108116345152269936044100455690740720999108576278274998482077468136317005400239518046553249089387418924312020886993737200298267929642931447774164559221787181661696686045046395519426364640712653407260439385846121325467184529451799983308694369204445970620155425020441729956024515212796365886214359581233570570957309915874055553340353462189337709345986805922444721986989435173404358861647575158172180515508565188865453331613387730226533300433564432449526493645073985892899131350328285046186023977246922732836166707017849340420043150432756938442243137144205098428862738565221737976454592790014350360357123185969096435743309963540103597101470462366080994657621479714330985813970594281073535621832214395448014711133605772807028519787553376070510408486021257971829566428541681456702230267622394220438642768216844098499734461675211822624085631235966498167243706380992285088141665295384556063850564034118950888215628632558216402345293693484584620941360478698555730599311359601888615127846117202484707087344510807426973826155073202231815323036628157991561877051928569796048388010030490069237917821516365739997765177937055997397734469825668003680797330217124891267026436800622518950306695395638431458965621536664146739355390666988578981907217257827305934353561123464789389783112299742988263872630249767687399912481018480072565332322116280298544955217573019348523461130860925509389596623815655923427452543207579487835071093949112709836518061442308449348832291798780786874623129611236422735419194201473605278494538778599500459825488645008896063142193201980267914659358339856489090815789317406376680072856507323138315598860232151602996957535273534604248398945990433648338602638306998065139930918503327432298727937648204001782923311409693197129340561945700536963615107889680064984785648866778770769471377384597388554085030703020494953695727545892171340491787499334630535043500516064865554423589452038685024154289021611415526419473843123069496342892525642323240644955497221095113746404608701358388481092851140862226990059672907965550122540675523072379017125746740223848773868690593454088892576397548736897201543855366631449008190968772422779942526593634039772432806767117934643924139247226838828464592766588443891994533085936759542019755772589830557118813491673413387628656799465526308619007881127954493739780424363170415857479280921815876985209537951478606865949671727830678451530419467503439697463842797703649137141007648819722541137432228261484705812544485510619609156431409257074294169598286548251290985391154751122998733158857531002332957817671328272655403075043804575565257760101527583384630325555923287643932177511514258259514728171111549276488399033601218643433953848165992737123728240044692874051556221276946187739525783361467021817763901724979869260259295688246570028946928583110272090461609044808775778294753683679789934114758036181142664834648367062007379429303090066237385738084125294294716399391848924045516075612337205613696681117300524234558011960337518126972389764437023147450806306133572431144086999027924666380990255396436047504853771703303643831777651519981949203743295626942266936674337370532334470538461530638865854254851010370418439540092503623835936062181476953948804717778775074166827734552313676956216869642553865266895763889123471553398974233536411735924190182023807870694990819394184862289907345364006453786744174824074703460803628082407329030579736931056223695408778728810909119394156124051853758021338717143871780672544122990397393621226419774633748676616793722872992696764591004612246568302369096495819882067555975572892315749123400546404785800952385121618445623647731729305959191980170274746791696030557202641232341288484309431904313564282816423879709831383673120071950375376133823032184171993866364610606966097375918712657844056332194543033701330729375781379851157647384215557585529544881207118871027940126223540144957876968416282571353743581957253161563745825400219888948393962132389859676348831966319730614136411842548958414523855193559471037443575614741281740377906076278419826009566966695389554666205200345798901830437730146559510188303250118503020179740061702980112636220544244003424008553371444660445585671959442855496137316377072127005714459619269798359050466922808620890035907420668378357194199624276849014101869849931834129466498678168854947899553097757228224251970014178153012294797709488602071874556354897949160588596254473109058956959135100148828648521976185834099913826819702456734900908683039476214782582873074889510143537566755265393281017014949018426953572651584238747997803697088193579126578826424283177495784747987512440077466274729891216860087181240627790771631870526178221851125824092262122493899502827453669181436107212743323382045086360549003629968035825009665284416014467216531286286931095284975919456783515144271740786513752938881849758485702793177724013453557750989075869638562946075524610220327051013468083148515615352632284824112621119486083827818205624106420154499905421509502453125988254590502183933990941177829979460014290752536427528083790521412488444551313874223763638975495274455926563497339413678462901234447186546564876458207673104032287806529522461372813042518106562491598112321665329504257320447548026407804300325469432169790993645944479523018581964115053894918000661980896207223106188116580822368162172678035195483997444792438817372964541401879128495842966756662982946233987691780783233783710896712574458224341307026316920695700358637322260754293543483396324490497841984029726594209149117895134831498421157696139028377340938958596620951503612544974025206334285187812260389821330002180103391598764943430648786463935373520087929286911640781234610141419419929177302347871397980326859466498034008210461684283177696703638624865187515714808991661126875155466814033032562274155707991519674730827073060017812058759828281524511582171768226810423522236666840664817043096941047728001976383694086224773079760182699801131881178416005544544330775502842767896939528730334496739233514621245646068713538378310393458306314010282114332506718088680167024474658904926066544031017552354262221837575520148816756311097376244331270137022745384582693005279361329314632785364618356889706880515306777469630801657594339013247172290783543750230378142875551832508989861517859676947273650251543287263310294688280239855899093238354778957274153126710647828053347780899504902263698675646316471744350220869773302126104739259757969720355977321973276940169817875814974852276826339012499880316301010137754391435794718240658213590627369940678599685072650233428088756917911089632253647350942022769116190693159848537772609425339631023610307375616502293240316675447457411817385594331436280034982604146472535768443898418823941650333086695504800201636480479632222233580683949900871378382160546696891345547107493405701070469328616770880358329765820855776636898981013503037593293034456508141878025109483203859532386110572968604454206504799810062521514143234357271950774072638869462434383510050287125271857138080220808482623290630764105546371386253855598479393282812731799933473109696564323283769424518240538682490047928765265347850110642701719921074864086227856112021694892302437391924466113321689919907631434879308318005370166875319681644717344422395053222833250803130751754290948848361240288646957906295873950591000704394259609228742707013310041785872908933816233155280299452595664985861844035071652691410287305619523800367246007435401516885144808816260325691677586899832385882672310277850945213589694421325735685128374272213522052671259335495026483133863373677119713563305698694316621017892899830154742240016998092141213810942707876483403010154286607339518938805069866585550445000621443924163961866690351452524271261594425062008083436559333588349913735758469273591295860650190897334871603551148980413454692579782593278779833718574076767316837478289106991825341823577914038967611018598030457093806921025859232366432224896178669419534429486352973487277909499345530195126938148178232958184276716364844268967156902628762688372390440231558982107496591425034622108699310690385237249588698905667345150924354696257898891596626066138504941133380889904742293097050183996740143410513884248354351753529936922615945956323223379847421964265090610884157826055472053921180498419246952131304148001519290531916761500093807776149902943009621182786916805597671389921870701855130329767112577945761414535794295453889170000176877961054640732746235363506460188989322258192975093202341286310231069551189617454498692053673530286588885284940480560115869871499079810956612595667877447231795801777672309399134889326100907758180396355408992308205525301138678220414522312511822097021891736439893464600995621528858534496854530841604903065432318729379295834590931032650986331172715076314979611408556433401760795498502603838660317428857107720831000155537177621128483932065594456434550168132794880195191708751579003459119642572139257824039905347944535847046791269156838912704602653224861070587063956023611748786133929021992980969974368089283825358753051762147837209988874142115781260127171096959969353574967424399216732558543604439672201208544009309003064488237340383754566033649710749231908787125401952993521626270244242746014563728611146290988119563776553501979098777117343421342931865258506385266129306831883996822671628519845594795186979483936624120358487784873081668451463841502741826889269158211285434071082032192782481478705023092929030340677300201576517135871126036808250532876077094308272069048137411984119587637209838636639317985133917070644397833509082618704662879078370358555844119871823298976488878815957137165595976396988801961195970742215034846084283800115625184773734007031467922498060810722400727328264083351789579474954637220258641798229741596933707628668843571107364728066638370753947636557986476337217472987334070686910611824858649050870955128396114289636416291972185268011479362405739172576825093777373360420747852473966140654636139387714714020386340798312808476469479558343984297934698244809727883197252171448380249319090239580760873814636549284127604465527554524734443872785269163867813562942675235408453181123801029846520511343485891468215064869201570097666377296892456427510758837330006846100499591699985937208366855593377265702444049408721713960433790133409894652351883750459332594479179885199240093685572730191515780660370401011131280090221906226598972560603192344008640858027305871339954871037225964217470932786848917965851992912627749418741898728390393608087339379897627416168385032871128835729151427007090669984501385413341158009974666038305873427426438640128275849800995742054311946473129492545121487387459466806387530126490613496533638273136560829650340975537070831251745686645071013486412553641978448278654667703189131012934883558660993318369664675065437941048348655002568012384439662136480448070632245237327880151337722983697422868797044551929492871018006418415970026716958565489576227504952048425927835419358057651436463544888219300097955665727548798198853699479127033917748722726969104738491526964997151027312554069449328841535444607107459757545974261785405777073718276065467949382089218415082339557413942434432637985195094256630757581229944875259398773805684370402888682375311505032215720788305578111489351334404824160911681098061046884707351516300708834961964908851117946503192420817622661491752066198286906926565358275114228918172446899729475595789795692163695237579486906349283553246821320064726959447750260662572887949827334395562765294614127635203967570888532399437392428716650679898728061294773174764896465019203562580256910797248488778293464746928731223493993660944379748163012020678070280679551623693457444809357128969004944984889346284162946431878433855600486921102986063565232504340321195459418457544853830845118612881161515230938880902415372700107896895461180417970433518333044406446420228617160715700643856064055793570980307602319097184988972286810645726904962722393495283711795352017168539048583159101026482219010416903103024175424107091046609126253074671133537798321170266768048991662577097872077383831864696858618077106396110923067454240616694406780819065257172666589532712357620182131505335756232362612635993135019422416310415576099361565604470495098468884845187744151161707410524094751453595764699981164275543147210614250199172823820665413416002983012832319328718143443673188592035975387649879788523685341741670780201580588156019774708773562813796640011193120317944396586855582864459545126392805449715216104436737605244771312695260116341017481546501507776074795525934289081214301249156049319481323986571971622075642284227630933811703217946326062403637838816071576288009103258459950451779146063904957511134983829408122088883272615600717964477128454745263300009376891194306945995748163807263410232414639975780355905288150066936885055320814248836891424025027202169799859623003231874729252586508358754333407138411464401899861546724183017757867516445380080329139094866955563781469295424840908767823849189762747563038908761713280980159422127747716183325003463657957092434545633271369292862657341922929344468784553605589000937504379002901587373577792459721456700681229980231667406524881910741272440140240473232337980222713503619543102937953880667408718335799412005550855652838306641027334463196408688905583651684177794342639514231970226653351894931389651243602396097758955772243190158834824080411678182552756337822859909347086071505269970031629150338131769789713737943616167027287970242843737461883191749653394351097955510838849055298803558640818288058730982780325861702295786517420768068424390271630173328164629689862176525767015498431825799548143130028518753808719894282703746520183357079676913178120979491489082627712466436946175615637118413286893116174791593647082065064058174236879976985500916404975957767337469118972545185314357341893140140823161374202758321878723621498306727706014225679315866450488772566197282279289891149380295043158574686262122240119792675228315886981415415841066917874423364279319377822763534947727553932262844448964224337845742158422733405651823963857537593470771017883726750797598951066192051654674357549189571981936986001182562165917313176104198445469226009701326701363527976542369524593132886606712828469897893699012014716546781763421405180464349077631765783064784199068228973882824377978968092378416686178908979147330349029825315827179090882026562494205318088558765144059704194084566997310424925539120271474074647402200191394589419518266378133999632995049459464131684341863510524230963761218280120073974580975219186908209974764338512617208412640492656340561102779608984567572156874548086630842849795190781931098707299906347586014526949516532980197871810950010877328236537752154397780763646259899351873131277513239988149044880299219738189088610813783490199729369686490487239437519037578380819916482352903586176236292248569279710742483121230692697193727272429965484544980141874167256411670561348072275804326851295118512613589898844566593641650654078706588910189016908715491759233312101163654676670130567899498042600072638455537783180239502763615894265927685556063146202184262148922436386058910784210123078248832486386072083676564682660263113497259791794883906243954970666296923943882629758830067611697803143944726651191373911392451133055654006932688920866902689213240178633102474291204757395623541313780758828191934739621758796844934643978796221563942745306424307272329231853117008335751769286575749186862602666612614464235107628391212422005497625490445589166148225562159167183610769340146914843549937576182099120822227924502235625550464117744916907050970250812504603211558610930304721712625752108516616696561744326203819603873494490479922624882019185586699269876395302245642850035394739069719537309020089796817249920521172414854303208439720275611731570437882174934498963878573316675985650875723536052251578993566463451435235326890935320137217804423006581938112168309604626221426826304740008283262940879125165602777572089828192739321492109426142706685673258612343547599842395559928972169040343097032398716684193743510693423609992338379450005599191431079922956285461823703007738848733172846912752453682224978195338979283350159864162173272635694028457487211882197497433631754679101289034224533065637137497687413790010450408977056346530252116792642124163421445068476863350444754125808444487731987224339043541191488845904707733244749872626542681451323692569379031599297283510035037172423519620454302289225780116791534499836819805209720040421257723493675726510116396066296301859881262994869937071219240888958555508139895404365617908316644492226169242356509029708134241173049455347551840094855478937024305372087290892583098461876786291821108940770435967805642370282770620957698644553488442632639541924714998017893220697093402241782960923182660192516580161284162742786940278637685363296546812022702153538731498111355772407233288862178662171330303860241256240149920434846776725704540227771899066317178676461677384048146915512199943348981558009632885900069075827186715805785178649275066220287596148887416954159814087073777278199288675773303017866844628306625251093821603634723663689264185692897224903876368721204139705451119666678492460041047128028600412677456001661111071391779575312761324167206426468547688358045297023462026280245148975773411050700183061919665216198923258373747395985029665857001254544248159147903443928630868180265547140497156038683918484617323586091741071209085735460355359065060702608290714375129371529897983121689464124560509406297091598983865863211927016744971717531185025802801050047105125402920223974205169725929697396193060706518808996724490641098149184082334536272958340594165304422704856480099097713476389235072360817209775429625802758366936533127711226946630586873613465164374466337873529675003454370234430200650439161044388310274557113225691524395116465998342340881292019507182663183250073351991115587993577647409299301153096453084887548405313621208807549672899045864130186544863702958650073032113505302067036730044188721059504906663697347836736840573238400248078077328942171125675758288503920314824418422008689293240813243850253001368616436461355764413810801280051958208074067985829850723229793868070225695646107230717710102997577759615895610989367080270199396201551985158363811650002990913707921060619046172474875148635080105334386348948337816728401104479700318991212135964785976399793378716221955406635915492339934918770278324026844349281027047471785969374414400401331927081796587642926768284173208792480368935914965163783974633089379314992884142387699236495094765584251731500602085477537060412313422107999444993586622286584602094559304902669261144002101186702844713618029201267116266250138543548758456096857781498750132787257030993459591080791640852567879323263521375563520502991011562864660682003476520252929878603428308126861012516797264856292233825550390999377417001873629499665163129118885251968791306188270215054684812225184262702522172193904180253643063087924488968164273152926823943615230795304924902250380984805230607212392640904525184698552221422475546568599575892484571227597277386764393388209341204911858757078231006530233102345029271681805272559047013720241911737309847881278296553475817661418685578276073074458504371424722841181462337471776623152312732394116622432805254075964516893832937902643955954705978923151757350356835987182144660877691801809119037000017387975831210110904045862029269531224468953383036641631117656296626719769298719015443761656574295963064970963754577299184396371804923389901636654620045245540983330173194451219328813001702940970384416896964412030858203887708494177068094788421203368472267490494747274809724927394998676151120237668228987189913209583851559736781364834929400224413762548558031188066271986572311368469550623612411542550907241635744377579218284958824014750326059788808034238633051790720097886831413997608530401556330010209492423009054297968449700554641388605107619797666058918810206976199083117271974389756991246621937336369511898580984432804841679725610590064783356592342741081030469901367277320598861935162569174402566375360644476066960890691656899966490784638551498696569681895233126527154805932093923763565878960055923846498464134729074825545709646659018966995253833133967188294735411015483570787811786120611691794095833956858000012088189323898842489299508338895896989891087204599987267755965946113549174066141626651814076849173585670374067019834156030646811707001792781996221566304767674544132076140786084141987120775936744007170425229731860062290474701962912827204563759835233204691357787998897518686595210045277128321608194548759731916427995365051993634874889650434458221615640074510929808287553355050032923971451076500421084942830959899317943516478751050273611869435331825903076853571329556592852256572792547525508140750293051342866218611463553413519298537471505436050807397563182826603529175916029668441797588438138032568537435853463213118898901550525143788377028623787522946354308461881208423783872641199374078988745532238697369623274170506556685216244292509089016579847352424180276842786841201689687121185650538446331503840535937791910946938149693646483541959904124328785810873815287046194773748541073785264123849249036106812746126770888104644832212340051658120891626657688857017661073186754093279016471452047883724234881081596031073710107007362409805355837760259008542924076930802721381852939136234191163508321744611090222192711284368540762434753782462898077831886427937917032706572361595356280275614716120986944920173040991519925897581990949354423855248566999445634085135960194123796259291847201054263572788441940622089826761678219900653059895829185908134400722046001978011723592711078104018942656596737575997770513313425262679097382834477888787975126968312934561657075684963805070774933170538036445618483636576111722086601749935010408316021909183879414869278310095649869003474575542269925016748406016100805812799611580787125307097876763060242089495045901216853576624770287782221247568022079676110129017181537101074608846050933764861676223830365378806877002243445640614299002169761481252130139315559640262335452323440538431602296408893720138142030819986204191582206183866874932238110316329117756749124090617932143381057892936986866320543805131937334094260909467194634305714585240850403184126324072659499709379097635177992724081138794870170892506236280266950233804023607836342484039190256230114766339724199208132559338200638687207955621408909268876627780429602820506499737966901528633114084754140779586537663493351337354206008167302703723574326905595680653976102082995996231295805704359882140593278187021732121401390767134079360272381667653843552227909762717062698289499707264577773642371670663276185843577648396299388216549086595808070373173316280465517512276362694436033264278681322925032915904237264286108726717389311867651522512371299683311517051220513098920499259287630373621500848795272180708214761235285175545793063897393189301213811960206755604713793952760018661311659645354074690984339186956360073071491577576892116124156911206839142682294924660322267000658994461702189025951786109794000236560676919017590851712642981850923440644615089966266391052443675603867269963437097469079419844122790319120197728589493390574700699460720407153121517573137508156638047016747507737385704000858069777453188640985583077474093588824119830350032758268853222298972222931643821154856967050393599885624608391042743381167184495053641834736276142264954908627992494195759456104874605023173142889430451333290005029522288670470172759278310605041865831288062230858908565358204213482626511104652538946778341203558280925289579152237469054408791218931250687772938720531954471466100647913084911247985708120661914872271064046791236238160594507815897888539675461376930620073752849544587333037998915330882783098455958405967205025162221836757103834299329996139092518583494451527692159946230100072222291075096837822545160757246965743140104587991706097801231818648184300916689299160807310319628744623216907239256860246654037344913910110001591687914038443152722698647663928631943990908592852423945786719948320753884814541995420597381945734706878249024614927901721281747377004374750802577380939472803511151714374758876797669945145715604231176843034307720519721715064390514390268469985318758385977532163145943963576219304484817472868631871050646754654397297570983659453231459311018059587520226794879354632790882165905798034036003944782763281098296255018547656908556574342411761810669165011422451958068651958738213740127839413843161712493286236818050927772357687341978335542750637762773551833330589757508835477310904123629332518564212868597753783452580691408114359528038322678569174420304549307182707819345151377263147634690636915818332277461145543185049726831303485407918677416928103967502854496557369469462245026271495805255530408016199331097085959200190489135127053470637771070154195503072266337257390841565505710295351960178612923056558477183202107204005789316582574251277598358926072830233009035362960061388189003140480650996995553881428928990760653156375185586495061223505384832584753958334706814933873569347968304138831624364726720808012986633248976278590369148268561299674459610456692824934361279956173394808661436341474360573473781364134735598548401072978097279063701955452256134826492130323193207135260366336729228100473479406472736835022673478526303888040356375509735830984492505323244925538220986881594519818577103353325221900875392814952223655462128357456272902294536496429102158213828333914019171882641420710289691007478119180234490581934882699375145200405911572588667054760151464702333225937773876582208080619214794929989030395744616729459624916634148611342915273878815655560311901614266500679776027717363418364336346569124475269144709456992234272876584513740459341832076810956870875422003586173242888265403694154015226933267138613651895849053563498795282085742759548213284419383915662903628848740051008523359462289614584995293346134683223785001550505848320656226530979420848875886003407360568893612454945107614732846509809160676597709107556036073869329196803021619928674344236856671353983952714230265597761792323498429307473132895636662619101781554109807567469268767110087955605132380296156797514956891572689921835957624457347046539326656668110260608952051186159885243540725712520283282885653081744572991789929122710765435059215032677122189592837817581966612103640888875209144473395803796086766047317910687554891166361237838007092921633154713065056815102737628086442148554745834421786442222780678581717393043886180284284496189415405933925841027140015736920396573111456941907822196223497147842803977980012287893779373146539245598505380807306202339431491633729309055767812936037473434894025714276990654714424109746944055159713210277042220514407409278456863078843204568250171934538845166846410266791312105141524997956356352259473814578962593082499902922873828307035472556423881142647979290316103618534244082577784319943911840398959359363563892084855582184300132385212654037609757621292901791617351084341897885990718819656596216798788428836785246027526242013744219724260373785336309140358846133888299848602642947237254390227655410858207628978386612686383183285713257776928976875084999636378902562710187149053947256499565404762660971902407714341562785158415880541541446231912921374837034542013724978362416274332321476945308804316954652498518291765538181193579999914484757878188300205871529739428348828058636399617398543229564950521084646583861082911515179653588161661448679053131779536028077699911743532615464672852863087342328001343514177018999836664362083880929049248114321015472677940588426407898880738806696947283439185706928049628546538528127066260060765245089406182882980752513475068304311538076118889494974045882605266284618829462563620520477895803921724395546335280579933280654409704534072755870951035607477318778208448728465955746380725263336375240559524467076099556158083786974220143318966087376580774531924122962755830372222770632040074761702415587502186071126706794387124814217630387873555963986962983013825788568024023026857118588674007630523793028196024046874057447120184705799589105487321419217366665585040365727014890998788827204282538560882529892392832746372221666716750115806072716333997870733071293053025377831163401036148869770424350556985805479486771916411125749170384494456053386140849543298152492179138345633694996171914105426832481971607966402651686113373250781489520978240660846780680971920191497131792979540273242317268869939434003088241584640279159014318452831470503301050415918566192184563649498546249548900659556723665553741364755529730547062833059585153255981542210443419899165527287730010621461837123607936181849582587646467712132598750493382949385997105909840602013222255721688554552299000630252040900274716572267006584963998137279689076604086157374652423895565610087918185593835949164368718074831090397100596250860847197941385710428485249655050732366021184504608583473516470174083347905732394973178891449755201115242823939302629942416550385151665428912874439231315531491789343827905987237780593977431657897098664063545810433338182639065986228503072168078429770441090768789973971981827207486607508672510739223347911178920517052173059766350364663792890115606369852242016309736647984696843922437081758960788300952254936118784575939456601079868620640102200054126538306090596488846676583475721085017368006444221506414050937361363743754210736904976063277386921614464673476972846476513815237071080725552285317176977914349353305101727195686436707428299903498502856214945432656013602015501179274972671189133077839334677787041178453125731253014021396850532715322968292947261778916487621430414654760331506993407198865982026830266471033413266818213365647186378892726011710613261535777427022896170419489484279311430382323471107744733419733105278282142737272827370356497950947726720231957355160053904029578436482379972344574102329875557596778814217312285014112113267855347994522658036847959399945639794447043577563937220253519513435311438315666302430735096331138260219796188039126543354849008254388054568325898492328090116126573014836118539754913241182369375954687548859758592026979536798210370672769920110707470679255026242609522224352118460466238681254412132933597162515138123084166490108152292404292717831755234449406707237222400787533150559714980135852578035191970287010154253819484894413701420561823052683589996539511565524469881792125226432422300889718805782362742312207906402192908031693609556903335235324099423794276640422167323415319505927098715460656308484673286203771177172430050431368629931154383591277382658464993234715405625001583606632194123735757961188842315857172587057844816937889045703922360797988824547810191911292646367894994211519268936385224625073593359031546172275926977860419560713733623383397067874078091072740345204146735918776561527863657423644409392948252935748393731721408482142518360104964513868632187816838567413764658349750655525031360244997006884211026915474222102640589681650639034335131529471027697341047579301207612610315818800188495987437184224801327201930765064712666975562468003309081671608383124005578874843549711390928509374676791690705169967682015242068407452962202711634778348147079097231284220984559954529286767834261914926007532770691639803203716650765342357434809411678164516573730670063908956369973320599302147850883960879864062904554227518440503927812799886879525088025725857535483596152302149912404785841461846041546547456111760701764643727466725142806451106573836866271605781756879018571630017764456997808403075047780290339258038393232317493411603574314536429320218411718395901607746035836615169333427463850235652597026868270296050255873102156589755870636645189597399683982850542969479584351090885706635065075502893666694005341126134476581191157408144283698578663295236839822547181928405193010669108470830203607391642662397521869018851321607167661681668321291710165940034463900931474812942775881503578418998120202779860813453234537044558328884925378076957749674228450156918412580242151828130886087806239156249062714580125244842256713321034223143487684088130903402298993099375189612247443843233497707804885428815246785641793298008805337805628025553131006537600642544906689899239980445304314145183969716878100933024678645026680224173141940069356180919803747890394360351727521482959645805577556593001146481587760591976924138782889023650739096225390288613486434354217590402516442275760292084779911284342107130064605875380553988974965952695510829018401776189219810513807969577896617990475104988050088357254035540268357919280164245608166614153348447794580008764249800252926825564273962867615098421984429224130688822396407532206589818764461737807436187967638646381561316845705203130498502291708164213860962895123564255103833290927594349028168958116899605918604723244386689341218614514081248950408598968367586413070431616620514605002374290097097961948017012123120413871919669367891481826535669810792035911425318444768877995729727183562469749601788121390301610265103843959178822159492613257515255694270147027093303333174063246999892606877551472053771327629444359468212251209730855018076665976378519288703598602050281676806478774604545452084276209669232578424697942876593152598820458750609010159743362344746893729815333080764996993830357330514538364280266219119261888752977794076873427869971195878873915359457556319577943909966138483346781033895853296890681360254512144421194606542212144662849747182926509159446840053114855585156311044890587024317978646005349642573621906437880345036630017492428213252543261242130103247756931634539817612993781526033278854147490019482600240216930740491689477036721275965932348598400319424073244286854171144748717775746896107659992329414993288936379142983272578047476527661237173603406969535427229321056608224449469371853161387015423984522337998196786606939147286878094416026573243250386920219177566285887879475745247521122597723862734086504941964587050255416463952787180380708683660649639918138740341280864153703241053498828877620063008331005198688908041387421157326853943151588408955094650994581619084260138478087088695890757312420990487298946094233945547772908314083124953903458904536603720556641962673738636841137858065709667432886930279479513402334350303145360306613411008034216664855901126110953866518718190190793565398035339545471344120786851288832870450021209732395959469567507494791031221437143024457171424384252859251205019683920383992011817405278884383140020422124188090535735775987825170982679054338559232328909477089008207913741244677999681607314619436439676540189319548214617445462124619777633395324851955494612338324995200950271084894307149539072544300887592520880722327564027173738377077977795067267422068041904256531818820252754114824205668086362471897947912187447221574744313794755442007778026930240045669110893263116555007066408313398791591717019895508889185910517886101092026258555367147813670236354591046922500179106959554566763249726788331366705265488302073963685019729953432482628067081539017412220405055040010694878607647468930570031751713956801527783959906537223561606936804891817257592226463728026555142934119227004301498156014844615957741651350093548175842611012102808147262036675267254990415181584769633521884306837378161268089961888087026590354892392639961832276367279382712547884527216732250629971721585023971820647092885625837320124275494679092311564049938520494832984443192999142765173757024399094212573487178670309746603583224540083765116387743865742957539216187530539537559390199951450597789101292975393613067663443764758929136803166262655744806918811579733482209115647182443595338029171043306897071212343841414441592024032878405931948267612184624411923235084639942858853777782945211045862193188737687166554906362270679794347140083622887621476184299611999083586964596924698073148714479000344700303434511451931370668924984112780301546916007803618030861383078324314964225919330103923091775104414444097853164364203053820693492691901607654967776231262882583955437079398901869577058542399217708507108843426063208470854182599431284686017241155239891599227929634490512834259989611878152253793702548162349074408902879646209513690333403300583234228444223676542854591486934530827089929285399456519426503720127794268250647636673390358020817076405546283417921813944346888889724299808484435877378969784719858866769114042501230183513967511433386683223417542370414257728578085353119434271021717767343134710352911084790501215553204599768010152750300172450608679886826321005558900318900195233517842314736146631052345124575806772308313923913101465369949498764569865505754129958935046204964490642685063102872336956284369334327945211943931034772558680869201954646112444217387573242301737121650711931288463159657015101852237661466384964501573595074558040979000652192329806291134549057221162116487164138785910246183859445106158937930501300137124427947470071329259733086793018762953529062343087598481394993031111112907113940720219273777047477279893701794999522840889609811660066599302218765725672231790799019541815212277978323577617468619682443201095447161358238841149886680127585119884206045779387993909564541030702054279248696764341586025381153235585370942952966924050038537433287959889035101369424806071592086920067505907292985934463426606004124328037481997343745965200535603421276710867108080086741425349929996768114440618651908019168464786857296269340338198597454549828979785401490672971261028027101571641342599861024524563250049894499585085026192936791869941872716660088279743762664920129281635986672538456130955646608064719428642052425845054909921237820717808198725853242125819932216530462528435982751766958054132365788737828432042903764366105327835128046247032316754215757760566852291024312249454573940530768964450132122121373439219684752081485206861776270284124483717899891126873464182358645763337100612214837897708116054704160560809515918970112320729411763078014094520531469095553055472017450977948066116554731815420943098188338784083528911531237011650465699610247530700188294702929288916362753828884057196788507415708091828491326089375081722376097869114315673401795304607140493386587076334587696348078131729053006563490779811821594443539552834741404996611096128363617667787455296169676965167800956346561562596057612420057206158286203423419390368634042197934225601914057221364328740202763556063241515652629052569583077230245780643004840458463779066338120098910284147454721928810624299669232544118975369546776688902064114748619087008959887676541124847532344173761366424854669362372739373857951965293825200108138544250979781790021428574675918521574266870470817668418850003915974499589191856572141643071244798377319859344590599958114539513023362137373879293841547988572842970851461054959640544155938674514830466855166063872967646375879122179657360877356826505251548898709095200675373580694546671586332307994613152348102150677863090323564796086464820500834586625523975617958901528173791923607923843652536055376947348485026806474108329933946129959856937576577769743682586327563928272177993918187093737145252676415784176449646086272301525918878572614028809530113362755600892874384280721694126487031439220659493965159067866783060752360502856366079122514901413558302794735290503677276843480618119189040071144127709405294920271414762990665781965558483148232463629092843235159636962857381873061573862116938949072644167234806205584985079373690674105065540539424389702241409980080556343244515353280172221532985453991662677861349947403554777446461345874408942966451007801017123981715709504078503734556781205399717633164611473716828387361488438173173057148072946770629529292349928414053392262685617872302896962840511803617914428598175933959151739566053151038785489237608296742353769339555081896284730320728545843042280442798549718393994148720996838498780518565272449127158338219420951531431219644264557773287458224291281314009880847014226080584463189884170455702441524403712058648576001532110207966718331650275058101419630762222774539801644662151620217492752917425897072039051501465849026290279445518709135961052946389976129021947953625188878522399280518720670859543441785489086548869602650780954603083955486594124918489936767480160346331573654374215151704363323602968258929429666707315451488858929570205130551836589110058211048881369495678202362304229240158355364517896130093471591371499385035459823335632033895865942591871447901542827730088730977071326319136645619504654633990962961534474534758773953972108906215612719433940922891361433774291610399442955731801006437944463666320741067634191940938352222791072169462246793836104988279735908773322368031070149375526860216437173382238597215564342992519135087329252700862440457021068700561822930432419382993363499986666062522070766794280232423312811659530197465998423055292434573373597223853722981498387884324468092927330104302324771615600637563923037551940909255892545720325943187886106165082564586726791500848718784019788705123145201223136179444029034786038082933649332048751668018156806341251510977858931872772047704682922065536983799464312276177179229799662795210440500761689291057342967804223840717440505321053321407163171510466418046981830769450683800690226755249407875725621114305938259630589592067187486135132714624076109867504186533621057169925595727547055967396475971427287776394991668900535684675037299722764200867129473993038710849201132103947422832854322870591367288797643426012723433490160421676020593194753775427514636641286576583844276431920423527716059597937209366844960896528216531359939739662262658289822972504812903231654021423113127107337402549807052169259770077618554195266617150184139712864445226428520247961346793699293477117385325560054517089020177430803896917496562733965371827018267439143950627962807867476041756969883708838412268496871058001663865646860077115813929729050010252728378669105033827516936266775515826882823774726340590817136375445779947588441870715455794533751446759838509677004213858840327098312254814613492679646834600734348936113890440136927868272424294385212996136958356232451457528804413495376805485547739510040938057341550011675186009930459805058050040675386291141864412928930808316701238232131380762406152707551232919431345547356726290279835849681112971013768901547498079745586594066012633748763516670882207603693847721894625358631816297696677842781822374760772927827043096914293861670418745667215505775309647097874654837423201194330874540191627641024889746638101371898710108770108463612920047362775483186656425775333920662111083560733787350843321849329495943139302445248211149282870282343332852197208007606943875336760491613813202793957328253118078858957403220811148609891507466097165594126696871258565057478366176393047665821682395539512670461638009476452429766835624234031989035544037731028160974975641060740883109810356619909227496380787645454226277940948818455993749612568652197694108325499119468192659959701636760758892969893853180628333751276311657377345188051236307577297282496331786769457608313889079428950245835052672184895651566315171848113919675202072599698698608524914497420177613964933982786066092847424390978389394682994717084533891459359579292772272573140308221109765139094382642405439752226941877926122004510945526925305380490895536551403463492077827145610283359973880819670376291766017225798521729401818398467910311288548901510784852836092400079604274946111370127919535597653009070046459825462658743400975465816774771033068499953775804405874414789775292592130093606539603951547787263343237016660991055817548440721033821682784163982410174263685896002393997737723754519753775403744710352986265015723615675233093781542348312592124694695189643684127543923772126536596868292529384662783881977879797998236919490172368089291092606844044259082098319247771986147198965015398937679337187335089153498089250504773722969583225318277148932653833276531620276463594684966367914155542848081612256948107327542280457727621085515910017094944437157957056226589280378637410819606880412516967678456156029488836330247936397585857647581398559841691071329843808672953536751382004910543112591443768240729725516565686029339607143638076058696218909489354568554448673048714882568378507987192772441537740036153752621196074184279711022281781294430410903632494855132593037142472147738264231062457157627997648872321675465260752529338708915440703717957581374962579380981963020130667873114597143507824858489131736976398563043008147293181698655032458798405534347681083624511617412409253658577759417674333976546552365951382332204059105243946288234650876279499696924594927030595202609917390191075319815219593431463573567521211759603673264831393373126797773271635378145545305590695299233093844203604014596998847067487324884995177485518765496552000188152838801506478903016596913024481984445273967863779871119729432050867440144733478450116829321498346652663057406546599859934082040092176606153561805908752479301924343105571936388390057565178854692203394752506944648284359308149948907172126859592589721396450803810662771762187929810974535221255878935579111811581008133717623205993762767371274224347579154426790256576051152097388278775925260861335565672284714409969509523424086789833702389125215181004617347818119567914464190753190064893778564022372436639593143002417478186755708699201977790671938597804078140013062414788915447166453311487470603107905619597053839434994630576274175328966671732030258540885358787968894055553042465752164926954645819028575854686029981839589103323413424131374939918258298955056751563475927920004029152184786031386464880865908434649005544896469051687765808491925568819306636954068985441102282627785064924372087267391172000659434948023886111571256847543761040702863126464954329941840720000486522791602207528449808643812285703467610516658615094344126325159017335702436721305751502124310713266033523450255923067072060064458810259437700769590888277521482022070313645861914210004442826163002256892100827817881547820860104120939464765829653436502831358405790348085607399357234897555899162810408273475128857982727821672869142901097286767890336195114610219092802346810455571408408655803291900245903838903111481225174290787355865220862896596810346257314059473736453174015620057719357483813872934961254967268771767651541750892631030893615588420003439633520765253740749407856388716674803576586660735873575329779042185162904348845844965282357250349884619658697146068956923189841899734590052840932531114803076420957778335099095649053687379649831065481344622758324580482845319557821069107259757769905162620596623437268780114145369817251133676572028344965914792376788579930167389315399816106671498646873146412438510816868402415395742577926830631865279847092863737754496566089666686871578555084665780527463917940607845492844021733963375269022821876274876817640363033073136856165345321090424858698650942553152248401410859954636917496614833964567401647544129713411647466421053231971974207683883263904717971657257985115578219368662189464298176039766869520543732473024234378921007274842123881085439661754862696990428344660137834557535365271449825976531812393514316465282019072366570428621904161893573252631277529213509651987441384664947014895247693082209489112898437330158383252391681228440459541565016332449469757901080473541995883358449511950807647072309752107115780721205115771333426785350253478621562187376143486117498112207973280080641289977863331774528536644840139102778014501173923889177746850227800165182189017329139383058410190089037731606588500687216305940609179516649431454474953865027326020489323994691171724922248333040335364393285723966580163452682735477714114004436994256719226346040618244850010424795787988254524563732050857802055633110964182404196015628784459170610761745953277487758987713665104812352822178993331503660357837479890947043832133500286474544338907391345879136227584659485437641943887241676363000783361226150294206401006419451843169323290740059899158300232235651792584726072413621157192469480846584149574144062122958413260705837344230248750559760601690007208512775307591012750959898926520557979572461628733100105459528436644599319366643425071121622472647419371084372153414882417426515629513384995898701579073766643686568686027913419510935186462492155190566426249846437755523691320877757204594845367759490115045987604623928869838038729534380468481267367583959852386397026099409804037774574802894684618635959723797386906253477690136208107678824695226318226750263035138743447390417914836393634292509080803142931975965451698546485483231330304128190985965984475916112670131317132533520310360893303787763908573186608002082888435401010426383387947328660109358832200680990362958254461298280889251203744786649582556310206650916583845240981363387760152163598043229432377566047482394983984973281952169613918587927249632292562584405687570112164215320413690622271090053815994810136920766989743409099056098048369128001607432347851652256640310928144026056313912133730371367131998916559163056237645569431907593998429076947027194384243595668132542295880799330148538031814795698791201897613187718415623082936285242535375024273154213460763906769459154904402210451962259082454131306820016042999172197667215825252259780550876918272575851683772963320156417242681780405317420175899335712627919875910314753029465584959968757669195703170472541446842951946909126576357571119760969821342066696963700343704464484882247255663308777163866591927419451184066453451475060481369776051488337854568467555320610003219014993803151112948597133314228151516011690428498222551458847799291737063972635409622885703527163629742885859512357056530078257617513966211351460317439185718368923978742895381106018169905274968719338044717539780586449817580450063834830421989335394628905185376379796913457209174894144619260941942880582474669773993722847645141349754663224404782009429472245295642239507152538851889737349667999585852891170471586141936260752694524086419117836287065357347690065808414800711046743009972356141931871707826144257529000819101566592408176891522172602476561713327915305020188041961463733722048199929249235107911630282514588191259899297759129176679754093841353651604918913791336361022967312867192731163134916692203280886056180910234135624613120608778459542562786307058536536413537271192062192842864257071251432770174729706033857855153612879472196300934936511247893692041784038937365282125204388674442907727825418485169448659384225618007431012975219433956741630684214425119736052957002502049905458362569900781415079728668413994327776676544215487220595330289344498785259986946076719120981553254127125318190098628572284381737495916916086927283945203067606314372488008842908599364832278668236414695252536325893987739603187169556188594988939694123298971879337976689568106644044053310674596765071870045815081388110750075823776058139395692380459926565983434358235356692117753159545128109126624463019689763984067411715729374569575626439385935834359586311014984166022836098324634059414079208232617430684967327270874454681682672769236618319405917328625141681047616056540154727736759913582883774643286575667285049256017916626517512628674854637508798296972343018034183203003475780394280544036281844673599661394959990648072640522247613826459523280159576187177436875555575972398467826258321823779771105107467331995442114787430422803197124128675447134338709716711403560935385246944106448025641712294831717324709799752110376402864305659337612248394726165548766175715172429778670352800685504358903173899465561302504769416124999588163002994608581956852855229343920036961145353275824011903902014477419536230083550452765501052656964753773310287802567352001372406503537877117792796114360762368838195503846016111968960705921050486078440858711487748875473166733246178415703782320440348575465813366312573388813105839371497614770288297751381065118000984923633583969508921858239784728315856873363046038152792339086622475705300005134612987033559113635436690580158067609533836255263235984032821468031762976356124840610872621955225527763246371826821427010857452680607065646026381238952881012150502430463360248125646945198632436933898231673550278306457116614146958605362241243377405494536777326220961615131572443409764581899626556038793585977141817188918072310966165833326823070542593876309490933591869323552926366645312795519486287994470083192234513452071076875518601514501901343847663223483494133091427785813861579945110306663076032389747261362410510215045849705320576242144167179651943900972411308248484597168176167498364525211745006442961981690091586132152092482604986497901990066667535385431887688468560492231166153564505151666968862950926930717571542303137845504718318901858077069895345334021174592658078124094511860901645279170471621319509841079665977076840856288806643887912057457446804675516366705638894267646404113061287622222163061291278011548353834897467018031414958476568503302653760072960380593404465560839716930591845141889825081838483079629744526566094416626578045067958487913196557731652761227896696020083696526533394823947016596738368991704690278701641708752628018748864145278727320947338294525117277309665910726386603440211998275116714191492059055899234755022729658651673293206927014360132299629614005566509097931746402834638314284238010137843073272668758086434464284766090984221221660665709100785256855206257299705003609923944819554846952239233924730372766362652203814906732212995818055665811939164112192023242681391992724162317312982966463827031757852213124754281699285769106164064128384310978250033301302820111295247811310913048288351603545591195862101758747985135839155804997422297869028659837312495264687480283772237659525015525127599850008069623134533767656025937606410989677212085432440941738730314532118107843765367505014362550296773534994757486394291352814313104973388913407194550254113015572063723544548406732705106578434480997424435369018394455988789345296957428868885684307537044870421546725735545908491432435411536236499132769756797987662212187648216393018028093025633277563601231134971122691453210266392267317952508650833931505620504740254769120929689847812349395077842212035337785395264793613122539451704069651166820280372400362023195426560813433343668670497610387449431405808338056234842001719544948264203509657966257628327676622938061560801054785189771149236876247429385005777521201793595062773357242489800045002937953572578627816312834484365639164060657778417649187298884453555009767188777270115313887746095703947422148848263132018373433228634220543033467147857076124427635803523167606067606272372706603366123174090967389752952423529414598056222547287917474426165318875589062139277556884440663560928490752520711417122258089413686532398212300432520890032562191115062437306458815273937102201354448162441007201593265895673043107277040848403402204256222032956480242784386870227091326083725299440668752386245312771762439421211599373567863965792705628209127091149897820325436162050808038939510732712025123650910632553003955919004355069633122630411702993651373045604458887248978725593651737616737981253133959400319007695278248685616721319495568255243811763633020693785492200422340785395390343176078805548699769574859385595861985282004682666577550719053087240180763270932351462513499718107898352115944636338163946314003236698767562320376115058629799189376147734776407953258067727765563085755077202436303592359490609312445009875418900025069136906456487186720409513575938758830895965327890324262811406688551704153127161441732564216370293259738283488280907121791972334509226522180767922543064630905663723767330275099818031467151030969815544073350430416023681874132590861675611215521268702678698230416445874430845023546490648396232320171208843237050846225688440588155310213328412492281029742757979773035438721339891671618585872558826756578721508849983465736915627503945972864944276840009378920202366667352088778636381322698981442644127304523958113840907989308435472321071330551696025799736809252681257061510497603284834960320670503057018355607525564541474256411004028768344284916839458439205789007569177455272716621091714266127396232153301897104718774091809691940422140439090298317965593418201426384075609351065522399210140700925491560852693971444340527392605503767049708099386179632193208972521910497153745008193944226860930039504726917651831702120699690900664762625572922219894309694576359072622658045067809534968931277596537020743597196673428994253806343395491655179794156309941880015612684121943728327368065602170651847962739074414901528558302007906479212188641198337418568862685320862550016192110830707490286648940621383801827275837248866646053035585182164289761953831383435054302565813419015152595710650573576147171563833248713877426273565364972361528728289078240733201621064626244218315022565643577948229017220843254313798892608017110355727459005662861696262025454744008245706812140042308420296848114355376410903999886792991775160871813990902755843626709755565925859595037242775015575932297363548149057197307195161686784556864799232538916176354575223445532637886096688457338995333762002817186810435183898151797563324603161133707091995429971919470539570004162667809569995216844116283198165327531004550970488050623472311298453786359118290594861057932630611556894613655564439880682152462515960146697440542322958257274133048257247105911975393007131397975028953671256824790118644799984338697910324748950159298473722593797616484928663272833763750516987713117384828950635398454984921109030663874381529763650905188338658608250551824662438229457893394743998386683021340352125035303602859508449880995419280993808695805959653494297722859058601936628590354733701859998707512516002673964889941708138288345037348455613429168157969805730126809520258672349296316483531172301628255412801853827945609948888931414032924291217838235881794296833630335084662904586331759765209554743453718399031276642438668049141015772050792354435302756117538984061091633651872598602441828701183625688724510821035241793241279710740057071629494546203992682153140751789252972219174896256017096960993271687251489122659319946776144459969250026630880428765281758252969605569524961289988137139208575610364839198729336795638765498312907513305402526842066724685574300972813672067308770699807594557117721000911055813064029064070413800909052323318164054719578027475929279177843705583052452152375718097323753408452716988683720616080922583799148498079892568678025922834430492475688381952153884353869693791585190459716418608935990421180347447234765436214738451327268017845245628025321827901757949301501417077468002854085570543709686365020506284792056793290150145572005252502051925987494126010796434515012498744152749811578504108236270636656288008084926092167129569817587191213245807360713471436492076342218378582069282467462947461275927821874611347727394980012180221671601530496383539714706397988492802262092481992736641080251361476312361055535427565479751127036643992472299340138184720013324721666842239619677375355997204597847472045351950878140320951307138715326863338342408743133883865795200661450205185246939950355476215211619480958693794512525731673727351457447613288420188716808225304533148375072314077178859446671893114856274829834299014912774331564750738073219356472744140349685375226042592263364857152868135110279768025268591551010127401775749101130594206395243398161278708060244582154096069110507234898811474427169488681333716581062750634935619291270255067494922216355775115327246821923512927663656821031340085445345148591728857539403334235369338324205818686253557218894772213709448484443516917445352688215675231705309779677089659910625119859794594318906360190522633601099155338640176081826296449361804289606700240543730545152637023599452709984000513513186811935796923584723458665954917038836370544098475798988374966681651091917613823807167729989065478546630250985390506707008417167238795246577121315783033632118225587960786166347622554802496484426361243288969654747795140420171447056667228642472813613613438784926959652319060508761975047482393543109571358173288494526259757664241392900634033144964349967217036629939937633018082711462209032079993575616267364295937326873623863750837351492029483045394526001956065696882611376751171164757884050643926170828535953751909445561143067247526459584122888926661430428308771093348767434248038797676844630471829637727072308748195750672203901267588984896492985369678357548737610337440696972587501121426797853188444883585250797179171904229530312889345954596046601652475371947772023000438457676582667843985987776295710850754746403938447947363412408565719753060366880186184776880757926281590913136893897340111089817715204859336393168438137212755003311361010594647782748042857927231635186419822326666658868749323168741274010714373415967302141886455108811902342277201525625936592478202480675731989505029202746256338970023977333619161164954926432439911329704938387217040912039648424611775320373166596893189022687714229605696580986233239421593685930364019890910805057716769136011113599826553331546377664680206403197750464726111824351443796959838092298513020228076309828650096527801897342194567534524476909578455141859081906062382118451545325651060950880882252269732158843630816443020230417298317111160033722473144489746969487357354705996312678251941731142461707808920303859100837381272944736410002457564838470452899174128585114129177825437419974344712665862291325633550449953540326073428486879763527040401682786047827319168516840649781518836056988433763903609516499994086322763628176444696408923938211937155536936886159298538120053077886593238447789766713139972959258396603627724437616770828782263788881596666022855544231205541879943679308179989836570020808654802770372280790474954411281098506015037708736362587705856091451202645827727980163666809928327292070560315322353060406333660190337544850783972241115827247579846422885452142035613417670149286665276642980750265699935081877430619158784727057305011638593792566204933074846965424782017079984685580302296862537217287325003853566100254670331963023298460043605761772159174136148536184327729997798780392804397873447849733338078266802355106658692194668266634741799606414223975607298207915066756391602314284120897147200888410938387591285332946176053095112018647773247552600098463447480463907983694219875080245219152062203471750770466744370093954159032282527213784140196371648238700736722435824503806500515633840954624011201471948286080159844360281755961810635211783692446831449260536353181929240497616470138510828954749108668946488673789097708879241525061561363359588412897709590626350520875166426178769192247715755670904983498306261820096324697219588975819991662887372219621311914555100138623453814130327624735477267191256173844915227551593626862857810031776438667215544314644209949467822752812685760712093833443832221777086700954945752771654898669577331418200185510456858876077969174667832910230479739115241124517590374926340501870174664877634733054863201023432002078978149579921647688609933878342474631894342452705556547664842472225909113224391602344462151902143562644868010727131579487483904299464495490356948383932103678166589683078062508281342831655176918947309828502664600428101819308077392286208784787376623121899484364674418795109173058794712613231499434380412904802386379059257267917338932245236692193952500930954093590960894238078233898609234801349491467654681004136853042010876182651931696136483563014579282286767862901455908087364638504517863099261939587614836194882060335455259263773857272845229546064071912839956828396791059000016003056686166276464569724994577662490513942771819689041014896946890774771120530833117530097675418336964052840916954792082604093584940848103061360476925676474499387455662938090903591224635269721405254062089251568809086955261512509482600298469571021868173411612087000171300742156942534215732198766785907373207970798687930843170005317324596865003717030464147361781889896785184427099247152638795753384200340801260774093459660267110352291930112582945751090398997236835296072166501209220801865206869380377313464409140831072990101046155262471405842505968432893814818968968393694195767762058634401489003294481786086447878226452044545563637597519159572633369081361951485419510819677740107910304213138463684007709521782040559255321649146514329171052915398525985017316671408927469502004310817068471422816438139455840416211614021768376737297522458593359166852765903609279156382058410130053599228561210654793926121662383716029935799710333743223241702049062522932000908067202910975391568458003952017063031639233296948046993755583182363954384507171289300327531200826459778362650715937981101217693500584311428789353808102120922592689272950028027236348475885445073710286955381947730768650237968741345341090644223966034623777811297938414598895750999742319671285176672182617217268475178830713582811094418836471554115190061662709795085900643917605195524477371069475419523575276300967402985777507075808115458049454341583663786892002484009065343210646968153622531224676219898386892536291422240624099924288187813527260681678360770658813052024583811881126598463233940021999118975758338776370866040770172749554505141764573632548047588176750494614349281720244583216357573093040978288209039966285156567802356545665413020572670064780110915971929172142214923516404565285434086088806487081188839707491149438965628116851907595878734553816328876892223646689233870993287314838707665295832667186634723892882758221922859109521648827227930853184923904242003995925229056515645516587499368954513955682031420976540401962884222273079132499811045881445179194949290513129194190445377605635580291355780311925467505832624304822105611464350803793755540122791381779076519343978399441414534953852394528330636544057220726582764947088236747260135158099314675139996530227789563174697727663012029654882829900889041252628553406015730500733085955187813176395251769706759552500853780970564240875940307910364284631121096549556502548986273588648080438072722342866377528460172268586618864726499700515047582881374112677981415265323420733328823184652467100450492585035954575019505939789334886590431923322722906213068036769967148077242479865240453781460742762151039586060695015956373535035847645849882172507400936067358911302617332867982213574436268083932818441848984744695578852119069595050545883846650210802462861737511724527785534572623142122824338911856568436797444656294370356705931602417976114528455226951706231211731597057090240997879001785271730094045066532519657834632740349542718323636509518275908349367950935368362818075938404596314289233926112252485926105491010816291309790753275192138629092593633053710328921191349736489006752250491465880112919040135987997693504001180463200569263848548224854534755566839253253594714758602499384043544592119155282754025471219779925304296126446019502649261176721217869595048857387026840041714864035506977739209762128295629212913389645315909763820559717796149397401045137164670031926488805624943539731488228256613382587891174200835696023855316495164391999818426150028989603835803912024137045774772953136897186334153488512459739049975759914285810709641053339377681354660944895438967264719213643306519021528451174654605677860141793623299465009195830778474870545991404609589792457455569684440935269080282923558119142217157034825412305927513813406856957153944176919212499110578516849427826469580250772132917907647492872488748127076970243663295459997941021374080618117706676327181737828405943031731406192047158604575102706338980852168305986164184077566153271190853784765907144274747735944816486518376435763704036702783984470558911393397306839864236893355279243846384590460649139091975801578354581873544585499832218129626492727353764784671483830062342174666355215724218154331058960927685960534694287123668905998564865454213119619183226220162550416959640793511674445055551921524327886140551214892776452678364942611185610882865100051800686042865249828302314685192950569972781950912644984360629632742763284290868398889951566407203763995775626770569425647369248269662633104165758351562054064375253662874022082271131797517868908521880388226169978248389218656972526507843773981130987982373703078444860767485830205805437102233661222332646085008726422686860107931555749788425592380034333107333350931015160205111432981721266017759911280624233875314010919741230399821548630930227127235193445709461117134802441740798772052995041592334189808060923695978785343409096148144275766824813030636577490235681358258979976325901087325579610068899149153722904939744294684396417051264391325971496889490173435037942281181242031217939335713069995822403025928547714647902532917369856129113555493076162794346406615064251756084098014359242476144631769481175144146505130129998832809501521453922813232931707971424099080585385479979069247801149366706020735195739310645632738846608019576031317598761171135158323364295661526908128784156256136044342923752289661320532045697977972226390196148908541953592880712686332606669636483502249889181090476080284671645862257619264921315300421374996297712056728522250671552722250547021621342776143628637851819273508601636248596005209874029760195507824657640089344703568860610387984839528099321277137327787387231777178270120363434982135367918053033611551099966567934869420942829781475931190157014862779060213829274667604955644895049767341978705625662166530014164200199125012771443873970829153799951092428074719972844686476104195936753995591277838916381954086039156458132881672497822388867099013572424205946543400715929537079637462757782520492765069106228240715150417265607056670577731464255762578498578175412801964691174845516214439376664564859118205271469769305973378865054765657868388465225686085740209792359948972411177321559317385063522797536846581788534307747604035102263434461387655276112127841921629417574937184396008234102683931743117828353183472812826755439276208192815293728983741310734011632458241359773195335990886868319543204944262968140480181230326806073741406993607793590002453972224430470968129073246985882392001997261352776293441341545771225652873859209173933727165168938433567934390041371040767695974817508018505598780018073895045016048165461144793265380629119221162292903726415166373222764437448578409747084122740540588032682657067705496576670503005008749901406811124193705637386008795141058673534639550582558467103492875727692466280122305821710426604346776107626931089124168852116589379354455644153725056140304071119395473506321700828287125056275851107980683319691511660470457977064589090506573464238447810573401760910604601478886884708920276992558388653333028539372366127587858708083770528869144956012209818064176304607733761762739722013393776481878411254469244560068758563336250149170962078928405232421685506279806657896787331647652019333878592634455718630545109667743677807322242157929613499396742943634354565319521910125029473900069303739885595181980674888209543608916440923011888090855380358678067292273260387525953094581247173986303798231232418489642315355494315868860330843478889082814641782303708598107359013699937393003214218680318018441719728867885987951166441609113927631005216263891355855686670982424398108223616581335264393446591962618716795302356199392419874505899336987839205080219894323466269165201110967328671168744800566099999703594780303880891108043586293630594432082903077119385883280382406802948484038522037747495371929663098962329422787314474753581576852257751016092051423076835461041038111319237075927048558994024569873358606704640416716102130831586038148457358470379210672753064872073088043018152165078742377332092187481060578275215110219859623571109248552640118800013960359491201695244158466893678800964669980126072875472766160125998311284787448662324121707281778837451705016570824300013054732864125931671120702586579039881433887341490101600326089730325008485368300708493085058090384925994038163186288418249233715806587897109341916320372430476075055174651443137969297772520664857886494641058622191514425835230241094024704942673229644859417760015969492998364817413842362561928642534258480153677734613199446373283607888053745775073147722607758747224497883033583347676671029807340639798767668396873120488814045395592501431747524992152638792844736111673719441578678520968555729683705075975730812759676998513565705900777026783891737676133604211218050833785301704660588989113443926175096212225117202799726399239250368212521181412293282679171657446359034102642680688422888074266333841121183765760063803274346470528686015179009566951756222952202986107033351397118912024826729818583599204899205050721668970798893323317970457521126360662974895474368217253858057677884168791281276123041468376552219464840912835467094151795651024115889508297414132362113393189924983537064395980293377552243578175915312137448046547764817092171655791256780291166032109248471978992482682777979387611266336546702824472925067938128983731955168970699573245354166343684336146867133497489621733303590478061588447637398249054882679579334800266361276911151540536005393591710063721033997095250303863629433874351827371473090995844280873912441819193463926305782427509937936133746650162261509475997804755921284281979492280121141495757873545860698661852768849317575368235898366987238987557278369270297898483149068491499757903037244775393610745421140772236105057637264183864229104217726072045549472421253880895024106578229397863110208907514517627451542558870805177810030774040124158333547056368034183876015717369303885999344308476082164904717357515364545034215659653784268448070342316179907027372970148175942497712800761781131236564444153333696693756949647736415921561999325928448203832476338654195985112945361245840470020006861410660690719904855561798423803468236908141326747032537962668027729503851547116024760693775873490948182129380403386698450399147246167774851379836052303682868807047453086705324644458652039054539639640084230230357731962238132548404181173940382222027104331372201858616085621320639617544892587596973647144390755040407124819271836978349653047678994528323857806212976284810155531421754429834212675872658134220475798878350604392086682641146827894233580527081103939407419716789436755532298501430823585864153288287702976514047500808567045007931568089429572168817066342206325229588378255671592747861723063153374887155138377747376759920043155850279602807310234711750233036044561320382113704497372196123320790721523148658992590541639871517401310814999910769658349194348608394281138908263478914784864270769444990783126978555412121795377592641235485591212606444309682520934851739553771666332811161576445554702306651577541968575900938089856055215386626362890878825733515912163981532176006661654456277758179402256785101352161283426679910567410155036263637453007489669267108428723854443902832193079102397730689989223129437246208192176918292600801457424411154806016911850860003813545906045964036371852417796606675307753178989950328274448936413806697288645880654457242101668600399659612806719534266261436892922725896302827795946557155956794834877028990517394572810544328288678281110494517419894980844176800531880686816660662768560820715965314219055033595808847687561907938358374082976634204840114961772955988169047391809472981394363964029990860977049413583502823336064916428590745851269990399863635845642303508633940843335692472878995937965627339580611632973113251277304331290990174660869180680575431592626691049376702124799905473043918365393698398759796495667688836876844060519960930892801147680479840034165308592749198576426195186664737867245269926372617923711802913121093356111224113222999833783969075502339424760645423754154270109598019716164494165718419132816404636895811698180858673280237266695095002121304104985494894872964763591056079577851517507830896138255793455108097245039891136465839126355889152564106766904821482386980183153281474063503920093117662169772428541141327569745507894432878150838539579787512562379387126509070702650158124204578700351244163549750490171176245351138027424142264432264064569563932259602671715982401637222062072011923099618374879562955946600257177224681234683202386531255690461402426697515227685359530728557840636434702295157279144128342075692428597236491128626932549433223909046239233113814322154941547331268227922120056440487218165391395219208893217991256808786516012231853225613456793460336855329324347356379543739944344616087529462411704708892384040855256632828997532541588723557950523425489786731628547743712198303212538898383053501033946087562428136658708685808021128838331804499983917104052234863105972411941680091678204760711973632567456705617895665199033561203854809377259466015622367740843300862429379558043369805381395465792290035435106585198554792520087464226459041749339523337014850482111783729717383109276786716091175009103781880675637685769367330290252800469642255299472557657212203225626951669939862754271646844631724346687010143329156731977698790742011385541668834425689161734855690722597103706969335266841290090449091541171563996942041098770343492878339386651539559645884959205575652726317487853365989018070431029252473610616974202056714343626329782881650433707933612230196874128863948272352859501736307636006405040891041776145469613454326843218562367171806816920146490815272400182781109026027458859205243474714640567027368152259285618043003368836063325722552400888925499986283628331136672058601590462122980090330086539283605685497522061318390524740786555943591223181033863175212273179554134332837847703998748241547043739936518144588739680738282955817083239321551014171546175671178727186431300723704742348679440573002324641105661114446123585106919033804279106333516455861297258810478344532398602891537067750329655007451386613488352888846056112230376510933439750538557903562497469440940002950149353531136593940725399964498142315020304203457106502934002219132352702343947984852135681858125766085304080854493176693957731962165103740728620135284179912215866676933775258775261318769200830557150907117938017698943540329796939095383492920938230541138123974666536237790207578183950637084409518954357260356725451945029509205853881577262794606138363446343631480686428011092831124765188181597920678883522011864721230562176110945390464812416350977286149933194465076563580930217223096601285123459320182877983659084722198306137483366717667840496898316816829570648261014081349774126720547974796239043789796211559828356206926307274048924633177044679914034094043359074477577453352869096747370446921087579840953340812184757017157385861737097411531253446676945243962492799847542688473345526917621547851369374897489582649874150422200401046894264398956136761744109220911605577098719104377383914015878691817392169992641350440221368146252578635154327577893340262360262993092388162475550596562410064054288037864930247854553876054512500635461026673814441160251315382893877858564016110949552993286139540374859560770625043590052884154090365559182741399391600923654312922589663960142101452224316210391222132914706804046504388607083920956370416087139685981231577041761460876089745896834868120520834110297170802780906961393429400713462621993845988817009887146242204742654377354163053264211308489158413136770553335521064715097771676203983936789275382959186477769574593397085456983162036134974103665137999788301515005443568625321293393469735228888480407369246333045246576938383747500619387060945789661333870174885000672057923201818189941236088021850403313438522194924610952204764158791530597611728780606500636958861314466081636328375122876996632218860295084728966592004750659255830657430085404563277704491130346316112955743690504845402612445780720356266184302658007605703988482874519689075271094074325485786175193852543471608560334497126636279642045399022370913449231390226040792475430113605714724980246698413145401540723339124557056622663080718524730765350835519318410350737739035551834457822260606887109600118168763010558995011012591630139178708259823762712972914182043987690912225772903675563950327189165753760364363753687387267619726760342343858220205191211600631751174972344984474318086963887197027813135449690513104914375039733660162002072317658921194480363406968656553163889089323285586106171816432564276284372896531297843854672556887079767566218168233748921508149391507956514749765105367197295146487622110532680543918907100800292084763986195871558286733963360871138642690399227412301390551061320115982825280688117106610600204740943698835399532455633007563381067888769704727639704096435619611175099177552551806734716420319981338897611845486143639228304357986417892238432317495222423872986507810726845066899218727265870710134770623500383340001635712721110685235701865833524188232064006815747752062983144785560436363701155014974452450419229281216696737098227788738520558448187669207350580659711494208145999678453106060355457401069305945123613251360773524853776459460599097014536199119317512773816870278854445028737785347268452352176029345219554027194611056281509393221476979262773777841329282283262862504721399179552568131735792332484657459401072124921280723489157899501503834245587346190428394904639062905547632248690634537253564575828758764234311616081681640587687494553789624127838678478587594666989486164450859887804413597662764283335197732102679446882456107119646728127574703478240286734466819740428787772289350195149713326239587077836809220458088059226610568542146630871635909174257544049137821110391455538829865035929807409569309050675361749101825469114769263524058163205344692583338020767539260200834902425606180773379672646378885187840902406736273217089413509663437490397685346760821615777959831969547115824581522195514493179577862827925935134794957557725621426655962590853922371772380457846785631428367045707279248891807483901775817047239926714918770374924555858336714354437575559697468668018400820464728405532546371869586976728029334275030596917626162313486152592766877036658731078369244749534542859703270146280963746324021083348941728704038079117018387302678211307464154642727391300727952730073901737369059657637187616119230042420508202514796970480425466313902597504584872216470043693147342318660855157865861292638149860722875389813882525353011374227636265655854943709822019672233938273237111248012891925899643325348012495839849745394583661245147137876340350643888658440158537216390871633590553563499413568286456915414412392781248262487064687541732285845644877061599874702389816695098563235519515934432832162094739381181328172192887582488312212847797324207729479486556269068430361822629533182512097365542240073810395248100988787803602940632898481937464007883676553320316490840628944485458346448404873126616544849576815952870258285745047894153946951166589043112930376022551135874107065819738091163730361683331231619887837293296681208374558090794650722912493132070576983916325065878225378284531096889464647352114427766920617456132460359117236667199979448697253714705906244433569832946957754935543219504876158238325109666385067041797070355786996008786179759446156587386636706534594626106508354835034911913123342264547920016573577487854932155582095580900075119368355494656538148151507947883591447640407725305442277397319473084258375256042210847209704810045284503245070871848475003423245228702254080926395208370366348514549774439880276055605333851502369178295274490901451841463161138627736953177603752196577965602123007378130157338837296284849445478146122249305240784524051013318063131992242457034303600991104792889822754061389294775642553180464068958240192750524491547492375926557321695533993042408103697994158586327435929009308605105428090820024595475187913530842519224801473629043471157116201931418177727840994813207136433038537875238369314200258857484383584204738529456250125148982225452815848389570068225956976934205907656066125528665496618551630864981332462947971766524999157074097830537145082275925910427893893056698750754883438190771699135147363271508872184753445894298446616185281994077014711981068031705123660946638734798736607972693909967172175673806890871971929496425012867886368134062042366663752796615257477256775712003163527424281035323006981538786749510248775147473686442390521749032690904395879332656769973011053074220401890947665183763085521422634207605682572267312291610739972612067292721538174434904544429256917602081394880504827140032223198318141513353148103046855092610910116124282738349648844492516274329365975744734452526388316488025744471951022333473468268178040482086117377647091743867009394373949545573991592656023210490553386633496844888268136966175565868887546729284496170104034509267690460536111534129863446869742479730732297674760558510262726930440451276356624546902998262416485153091764578138612699532541739398778858559818039298254220862380430924689133884343306595696293039855633623809400743103142232304264946117890007474557658367346313245162041306643848216694649648182254290715628528898519740683060676276886628664616300580609186868867892218133910780654509445218822534425281916188420316567966476549131701563625391588129016388870460569408647599681240137625621305615155607471012888431107318232378583903097941324739273969436104320430883817212363093303193222936076660000628372112250773402110860093786755332264977590430925159656533549063414302859198318383171811422517580855962213497321134278497073072648283334304985871404736918680509812724476064461740217306930981047258109341707220139705550951391185897625833482122642976041510456617701458533223830348049461006889925391960328149245868884986905672010169591991227537697847497174760222602311120497683334689140207072673274613131939383710097286933175002720058081696757835447728920356420268716708713944220655549395800080566781724059408688823131993887520626696370806827995245541957322975189799491870772509256330618560610593990382189587467171726117489525182508269584099035214439455756774666122183370450472469374055973478516144358332053350653926998195401306030167784400020373725850058966218467997571186357956749643178847534383122399093661383324530993020561464500380815999767624137761135464154641357603732069411874673890600594532137545216903321132584596959320899362966079938080909714417293752113127954883458906739583087628450486939186620739171927185670887086471719152689736869635140516700078589592296339796483665868736541572724039556606466984524116503240087442129186209681046737080173606516583422993873957383185455343186404980030899293708324393902424717066114919035138250585352974794650585211009757424934499526255153494046368922786596868244511828153930219221531548817693332865072104426451068939489560031608519043179618313241416287743597560476171191256695811550850058522692443908291415713341918418411436323128952566420646846347938926849424890766962508534698346508073424290939660415122648910109643369788358263735830855541032782650144779450518724384583892249895724000050836867722355406184223835104105112484968510094661612788158866680430959079938601128812240838224774013790156709484522037708040137159204730099435856510316491163675123180785557309433295809045716389631986864770929430774253841160751750762013740220571706917430741301894402585647163594149540750211777805123913341930421652182714289901346788540765322780571759650531781320882804507715698655033242064552013634541438015729969081129236271111325305488391293254171260404140233122640061076472709706709098782401434538790224193249330134133623872971488935936970570044487949611387233418459309776914783054794048092208717614834384319801995092195486737785109440623502257765130523420840496914261274421622395605579719204359284407054527850280999768539213993586820032510875308285659562148929548477278259864500724324668614848191329066618036380124881677519741963954528155876022198651461878965414211659739320344021635645080044184018014126047657072157900427725889567694288599826752652991500194124505451284087170681489737611334374276306062910103747210409702220502265551424158751123523826277116101887332419178727670104441506794657535385458885231319409443868416974648390749577585431052282755840090368745875957997748998838769128543244990011055666804909422757211249375486844455870383648846748963545599749005815748655542940882533833676028078325528368719255928283237922985479218503881977554280134161334498082236248775777457564477709066175218477254166273678022584786792860260016749888724997136829863198282714863454155163885409781447763296954393959288826428606967160802456805741976375888789859959381685557421622748682144184411725477204468139134409576255416027864950812437651394995307954041313627191315676549122169674976363588668821806161488584553813829896545139244853148524377822144606232132554395803642938648202817639275116601736332282762507800610913733987283059164319412563356903091303121234805866836031352497277257694384138275684193499885366477554211426962209705903571255273607387261210583015272329557082835666259137925824882906983070034491398657226737257043828011634003936359145279705837993084037859088929686026829547327163603690025128753328810328093867284967973604809584700677107168004680632308532118907356925595682634355723929440835172312431356931911494066322092969837155013361528825620875306948206418140281411441073225208973131644223351909589883187527519186096772603114122359947590735611096974401180176795448626555337276944956159834577781152237586097195668442472941501096027532098273419972310852866494967200723896111244099169591265862293157472525518317609711527498377210066248389373055495604674298551779545259296454342527397267647963083653639392547781834959387521210925299950769061953920454641906903436200152758983281238177492547210616060837397625670826550746907496208868122699589295086932387448063902057971397342035522799901848373896019341024628796722803352439685218831564800106285667067899198216652845168919586149715984271828157737402725400667450423846877563932455864913165145286093475405807103878024661373666644916574479586559824252413642252026910523047090456687912260101354287395014397367458945963858326953733977053226935942279788339860785106581164153563472175665032420593182947123437591049751331635221103265814339523937486088873899709740870426772834752100027380317279637894594375107554439620424910211076136757429950604655481260842244445538491737157878120513934776925091141052592790581183549429115207557466825417058376522518317045324106665114126652372130488373343682225931872823874220105760320144959068799512512041260704811203351447265273118513992850043295277940730933279814902372276075269721638636433013689394231802363112454325902983083672986755423705243010471781150467404440515411911403149200444443135566194195349075677335151952916480355942235586932620552118301071919809886535810507438215932638505786920089741811174913009021776444338913449921487482771139391901938583045394392507575928373230896935692831310876175100907080380466105304836061202238122128210791538129688216381891542482701974636029470478912894490465318712684080233837017870018642061953281545706388151334053355844244753063586948566411896131758972110781605450947536362219363272783792964075297448778204401838806947277595430995813196752647156887191285468912397224105074592132490225080653860654613913456901245183444357203979309734677824568350343290699570844740284047059360859534192429835638824551750412608785796927976887128564546694073253459527231250208159806990654222454501199323850243376253936615103266791549481613720033771631635896022175021096803601886723164724309200644182599004102741340571337962375824624955126829299917965923328569190570274709494970746223267464633790921005667889156510786507161034624702254758777255351945725180128792140531180042211722624513192224404851628503852944889146331288671685802146247286266294929921213219755314875417986424448186959472659830174916658517723452253589115363985241699430084063454063622194727360793587916428899336866024986609272739613579007520808099755345374308680943947776137910944304807262493385484409919150677116046409732120958568841456744781612125973433325076466503087285790335678097235662387828706378003257618877651398579448882595331698691574933767360260340971521404178269295450966060992071873471128364714070116920559589000207802930443322623138794397135127035206355210816038595902399550903533634771173925314170595009096025652899512033847984936384723012929487697441588782486147902156785914903612190854525738126540183397886784740864720494336236774310883886009339430820165698881567242140780139865991486850896573614031372281787421921439159242701800723742758711618383564039095431427522360086307471397675957457984949529673166129410995627002848371133871688642024946454298941828493256165345862307134392527538095704927618361172559842148268565457740352317714323664775724420931787440720841780777029779864516395256838711041285782530734370254878557391156977269488811270599052100424265003581917750169432809722017682738394111443029718743039107290203722559640427007078656896078285861554551026544347252619151930924046948935191346216147132937954737145029924885608772708549536997452052679617959302710118324311798729260895536543707528608183081412933539827610899973211042479466013609774311159548911396246152633485906618021027633983362003488581733389045272585937879711536108363321807113525316896628793950992344722078249557286512096546230679109029344525514091844474185034242962940285354525127395951420507774428117788628279315095792811503997482150247413725268798373504735370105666773089999751128856906129041378609493899431131727461725564869011140807065350941241204558778250372204691347403709102091589124174817303319211286642960577236179070680928828773856858669470171056176092023057463496884820602214432103246056002601990529695596260908645637220403102646077809521172155910339938175466433230815694605818813183738562452905640093058018459819092106940060081920647142743912566166506431763568787125438210050853055291711946282783592687642686182996406801647242998148677238564387062212784674873592826092880221411216710705094488910145389247028846302017316856247692029518863777182403768073349484065095011274900775478885868899144495817897971953338611721733785067218099674510383577841486107293092642044136554948420124698176407518968884026410635192691378883459988145339354625435710142907760723304685045562296317709838503538309324074397793694504405972602471794165181267340041824181656753843960990396552968279437608465790209072331497136836360808831064758846179919733392790286959863512327440585382882102906173407592483279801673436482483027707522487510860444552728817786611679134507019384033323709291028901517366004174342553127813180484023541630116958495228959582275432796671807137905165558426842359769577645128255259647961599760400566417684717763321620951391597124170313681914755514302193315102924946051989817884342246471336387456037472325440477816703523006032199563786710098420458808050213273245889128128007035486070631270910334751387284601335470868706974551205644941222538961640414873506838597480275005497784533777489974202776790854519156066496824250297577682078865274276034477176357102652813425570058343525004626412942160157236421729398314619509320769488176938151596662321472430827038748564713155832015441347926576579445936707790740877267515027159378558595824999326830437310099644772189835127184432359601178553948550332187938614418567670190068007564889674733538460566256285135850275731768357845211769083190793580836451881341523686032214810259320164443118206808065354008527998663983159054129369696064941239893739679300997636555977684304376678744481493601455160371607213109265453480906266859493577590057370566748210503914903740836705545211155358223978181205556225127975555665649343669437097557927082650093728555556470174811459756496431031649145355096058494884765606132609873509841863356966788450607495481558767908930911206971276754767195246747954254748371319772845442231150313043157575467840935604998454387069870166043037644640439880953194018546513293095716108676572766714926614622737170673269137458851788819325421295396156117083242628260396680061454006948948495848544284592679776745649073466741052994907215811548105303381844336135171165937046281763751010435922763594551479301565395982727464082365072268416868107651383751945603806544886597903418562614954331464330418602261543886924041892315442355002237901337555109710036442360567279514964958276306904181218173627313149216264794478528359871177423137272864550509986253329019781849523110919744397023146284037896710752311402858182804750639137469905530745453755417440427971031923851642001912290451331149112770639769699248303700704875094823476681661800359099054783881902701991788888657236048536851969289525253999893273621425264545138053152171387696995025964957037913937913415055339572117153845404857189976196793673130058379212652952754043927824301002470600439416390108895916142441932026719168826240884153535270251442288802878875691291803410504545866933647229967623948313906650987581674844719689954151716624054045117052766926875256118494450051560250248031234281171415189874040786823385987567564267661437935952231877329960216977873732676904457877545033220902041146529202717404682154630270386707215222655504896598055866966167915838083614152784653861605299881479273827904616995841308999208372354773180274955216870659842191870106633783724002740729539706435785102995366934672528730955691550327029991189996073732094498080279631851171149181877258531352473447681831488305533741525815003334073389580465610807570972551635480982993746018954602313663944842665891737800226606102000027321888781004877988853501289910993180450113036689000947818797713916988345365322130404796788740748350070317270246097077726961628132801367001844626002396699052003501558284404879421672883035333857773534197543193662726547473908337655207595450154192563993487477194397446313563444615418524558016999034407238226425779225505019831792872513516705079296449583484858278465938685460927629150739167426464210213099208814043332040654652697936153570721990203130428019296290168067386286118785821384416207616696939433802754482017584966271256601916341416394354340819926278772854759921808982942323315827214608045774033944508377453483839594220346822827470341148400190818746281961457651814868768028418695045650924988824339735527752711293421581134224047880149650235310544504174753689135750380325713601024306389448198039710307141826965809513252357687357508651071892145743693304633807511481428478540488717162669902278473497096964932524900539716909180484355981600918087669697754003013466661081425932598866269462395855935649989269075318414341348154353435408165203098829543017075988462040537711076127580044796147146224736677606556863514721145622715211072534712947052544594734294061178591950594075340223205974782579201113643891163173281842428029657329291131880014581738949815187600381133146782042624961495542003599760062012411538364266925613781981858663374511921176895363141000077689872823074554423657413862627846242677695353854954561959263684768710589185313357817804541148790178362416914012899886218983932500113280972309503844880250351030549765620364901203830435253953465303763042585279993943305601822905517988091318028942773309299277371713947742589601062734290458227338576978045260053422443348850992983991000979149539561401178091113777083498976071118906767073766382711661641106098316589984367890200274118953960844697342173448024888183795464907060818897771667676835955836788204134143966726538279579321093158144377440322702306911001901273827032850860869527308679656856206317402329794440922775607539182704470299848561946522261467080129804510249900898603184243787775708301089946543113155037548138610103293575547140607314163330004493258744760348190624574619404431353759230989402123508354873585108703288903861767247452006140094286173426321540805818688513560216720440162554240380190468283784759140013886096755808717695484298961245742270296483391373329102381592810198578532739774626386018241587280687810566952281847857252028791940827948295701640054091048305916076553100918448975263309282095036724317074106366510294450805394574974037126260280789025781347283498397989017329474307723516149686729086262953188740067600255664831704878883697927010599443836902606024501508061630705638916712231354301187418015131999850627450887255713224610853852961908083908426604509756443687774605147420733846414082418902524510510626548523964970199603633375054995066801541526890007976884029983267122015526988546745045810214278925736101877105056594929577423674015974687423314123179675202391871716274030104728447798528412392949331164029496123774210016293224478152771821233997922041286258586991305141300051935443785937381090804571474877884496092124893175875840260066928212872748120997652769137676100581822562987407623823548540426191862388881504627548136129573603337730644816379365151363595740442941135884824742136105766353238170660712854414764514119755080999350700934218752509987413389644915176867135174886480422038079969633558295521364496894815664670907185860491307964344213438987532449745227847927792555983223294591120421646607026107605788229056684637832201682467641930509764269495503185473766414542547751251754201060198856566177691162892009378760054786557688715913547457945767519458905644264829056046152652976342071778500101933618884279742929409543465094684359561890083193621898702384946474033522011951900986801254334599820129474150184200200299005173645344377749863775268168937413335626061028990283788591001388911780277482680574391547439012872621594499547753659158472161593083209311919176863333127629989811198728130830345975266457812060927989140609819816414608462863764069753506663258203405026862109406263141392135331336875221919196518300961911698692171426206724283273162167797882576360786493557826315718564767892238075351052661246179578816868278089699868975196545307006828728492595073869169844214671683733020921656130345426420428256861191232797789273698947432151813897023274325971070732644137457448370222190485638894474952498425291374777710753630205253398153277391025551280514413326768209408762133353443686278435144709317944136876959805251346219039340229348562137734115040775923172200910655227374107518888345467986563427446473410723033117122795082882720773671511711090985758237219184945010578057197897362776386223836471341879630836245391949162089297156064183783064665934723903433122612044129229321147890248041939257010118919716048977834072980192362629377384453759631713575362203666501842724956448978421483126611288385167675480903933037531662749293881970442016918484807420272520799660268529768031644777394821753602770124066258998918078159436701789545121768472706531936601599670903888650323804286883057807448988674678448799909349233872433710135873836088597874570295031269962011070600860938924077752618465666266162125868701750072579646689632146163797255678538504315495342747541079794564980204479693809771194842859159720869129100849333735424048054267235777683524745796649073809157347034153664316945175424980862179263811132542752144662152247567302897880754913693441109102123729460054670325588768879721257027430917983064098878663725821559041860866767684522559507399228721950223938264149279412763315963686512746267357803547358537108432930512352953249959153790834126979118439039414894711256530217957634084440592511845446020521797981694991728723455600013750406757494218821959443278411399776399236697571597033080228417081436360000362176052862777985738892551594399647859419712885714303591097270097750599158298711558918549208851809070704798351140685716465164111907845018966345070886756878681490960994203105421126399267067219774139749160264129399217315134619498331262972466490160903202387868111195466586451982251164922091580948895410358018857399114979992123482226750834005027798767541867317345784463973020550012968086503724946795245217335441085417391334782506574546764608851715801206869954382001988071135997699394401584679271315421649745947473757067821462667556632303511921831704054900860119842665716433806101908327662232022175254652209637187186686198714194460584440077917106073525430572486108218619262974752398387626890320770193870875409422748027901712369453474187698593544926109391768070984080872903394619347574832448408838115164254128346928472244829423217651508377318883904037219443610045902502220185170547287415758862188876490571664570392799215617893621002754470008969339512629313826042516893802042649594111960798054630833245468893030600251720896936511582768972656154544008922026117130616174727854693948778000928751373205672985525121408137405136639066069294204952052760874673757123792819277853047077838818488984032715055412796432789232784059801675387638196780655043267609676566108879117967648176126933592297824407198702208147780087454947698963974721844450741171197261644241807944510064304540960475935813870882468807869450790894036538519958640760342581916118348677667522371836670721351688205844136117823560540805140465017401938718817600176717063520898554958942074841426341457289181357676392425079495867443982503502178099314475458341665866073848442453613350821140887838153761365254593771097554767346938333938674452434262864823696800874331213062130865347859860447245334356479278243355879674403133681336330058017221513025781787677525446077337983907386552558537950015881479412108509738777755489761795816979256668808031792437683436612107326782817327209238408092368667870617842807831438371658186125468935949766241479546516573479980018286554281168168299524420657881683201081949819173669154773391896970705906606910252158613029427967129673045195402048287809480692011457700041056868264141191240942271931730673742479293919657922487979400768760727023684639300702963610980910253314410761693554160805914849882350676149878820769786510698974145769132349544724782935858362421439004187533881183050621367674524366942269687884052216765719341224308920547159369804350628943044185710199298285483374313760998687048897238823151724790590546232255761244174102076980681980860472141440823783874511189333644862486153306376915045459660102587485652498091838665352938033322962126216801115903922717099713761443639837545557016376633357379838143628664391587725921117685565874710819893083731510881790983851264480614926354597564738592286334207647335735725730139768225929051214830737934659528323972015850792369043653010035013592710060354690385776015366875058766803801767585003058903157803434241200930855847677299950568903409630861089114440873948538049548848667135440742749555286718830296192685219943695354870606584983130071435752505031872014944741924995905679500942793512513487612726533622587963801614433185352372388295785948078419944997084769263403732073494867646340887588125460371340730694020248591005211076105584226476266648852669548568411194552029212936568829311565774843564709976424783879134061821117107454283990235007904340975592167453057806958704634984134982003737672718805671350296095875942794051338852855359380651673530646910674182275805420035655433062140153577431363201526228971969192489835582533591434927256413882811215353301591612375829412026329750917440392150177275125481213244518953379390468571970320395662982557618412413684752455106626466515042068762527839922717114859026236835982576951747830946950411931932795489202549045453504476900923548277316893047078198587219795681718367662705166763674599339540406415526413165073507269762098998560258547344240987712358620847415605666492430714627150062615087499116018119955796777048637072296266781687096491031571452768452382252476295967391899224898368082553452539096758760306729565909404716759610564652749589535791004851914449351104228042969399938269650290403403549430819952664627682301718223620464854038707190681232091548648978990118673083640502943217205740757644651849264104318854244300119499512977668905758323012642560776213923509136413183163649704561106122028573405145007516715979032744216282896255066356950215574260610981774124661180630537283510693616271685612112117115598447317295905768808649330491744663734616425050430019237247814928093424518704858275253510302250837927277119421307138017578426401937108833069797333808791398509039216040543716426498354593648728747377843480664276657370975093809030040378727424894144290678123440001503735968331293194830318823317741406147360782166407417570374092043468615693653234890965028645013696603052415395776465966690777165829291277883319928823634513439072839256514984970709557330375761686251654853168952507333792352895626454884288969786193631223781919547905308880185201977340924570710717829896920010076017123936295002593465410789270692602701882834977795900560564891768544474317232093468045466803202175614315482722902148774448741563513015929484738045270876981148475402019889331150675357160216618375279735764535176995080689886082610567926276167343243326642748810706712469990212077816918398237648665236369667102503313703981978499751482348841174079718774202065103640959293315409446893427144784312746525631338086856991581457328481981213544507317507157695681757616821738275717306957249275656567444134277064302383358261400221715491794431856647142003717279691131188651295495819848284241754575648354884783586133519135256400729392231400454043720101811502025843558212154744304439887282338777644967636738704872378993040752651884033162320420690866804023242094736717570564467665781449047951650205451323451406574581285648378413566822423595191975030203266481104682817476691867089526131031348463869397165005154771131710978636949389657200567383181351151811160767511847886527171138485216151282226075354005549402507414016242677087642369301853352208028252525440101420301865264662364041834470961538932252340215249854556765672037096424815159321050940006358233043000517180704976173626820553035511040908409076397486167506643056114800683936739705354845874810273565778900057323989398508680869276578144011662593801229280509304502487654382948890911944055782821472651105907479971876115437214023627672672912484297457400437469418528551527153621785363197508645335511031718723870780414126321813474210467047576182312207239271993113742896788805453626279707280988052825419441864029896613412918169169414641259324383759712692208943364332173784932045462193464653075664382872789529742965546432491307505079167591999501708773750241868707373893039520473943970931450478682846931515612713343628818433481016555944036835728541167470669747414955226397547435659017392540005456799792556021623602311812332079273947224034095832265391373435632494665587794789215715175482496947541029129968363951655833532231133586207676631075921621637674643182968680984747208214864004905290445115932369830642728309639452834131669791561433812993112330562102757152257419917816259094265406934391084640997179466297976589861861881990731694116207533230262621876473103409402272883075689763755395333431502043464116699753804667726078157219442376876913047235778405140620789484139875296847643655890864180188491623807344310525559651783819539294966963689699062113148110378073958959991504090117585882041538854621759954683530377361950602630363583691355228634797557169937116703931250671215890216781351241444490534026996400165620912353601452073492352820550806409412377884765049732283614603146725967860094246997446594181032352384520899538400527348136570712251804544525130643348198199877202016133903758775711712694449697361999011823942011014785268088523248125364226153330096671431238511257864412498099622601157254018417407024824878817664149675273088402751158030832935068941655639337832556707001209163327594203421525025661932636744075783268824863286441796840422027253545974292544296045195696797299849279504609519730336284409819446943113661055625544184998650875028144606247500643487357440266268508157365401227548044598658210998100233830122929471124910855596974718167731239620333561367600329132716925024992392012508563458584299871939320482002897722348618702528612760692993873783343045073737457348020676060464653912150320398451212839278197960317473004798433760812126841631022933275451713791797449525020191174828704466378979484313967596499169171313946746459072889273167357096565132134964575796203122457833560199413270787181563130488733852634547282795515536985793162873293257607850332144399234739351777323457732401376626693254116313725722147610606175539615591410473698493906663578484979044445415497039573744297069451121675020467619199655840476732340822771087393946781520513355069000441543629858389469269088918816595569753415518772008421278193550260660233930152159760658592036267232532657078991504446134355288402606603890598842348498705424612009926616803400673210924397914987166451702450897450505738241652072265673858207496125882550732479264054334802834973631625848281291293669211129879295520854812379903485167519782963003173605478574102824730289018280224957442633106463585794180437447397584570374887500122282250800551812294311523674239157408573616812841372453986517315290965115353415215295877067070798155795758761117409538132828734970295218988075030607514219943877003139174441780608761383567945104553487661149792372596472863003789037484737187585741343758464243818164799172343566795086293322808497413678683616430025666431345888625887296358664098097248527120877652789315633104626725726911551866731376092591457001048926678122755676550623409271803765512349277393496108210940665337039451850718266656190333093894112914212722089754531438960986904114602955667029684193607251936940257849138969804188406531583550150403506683617410818854974723823883323076726356269036533592201338240272802398453042611655128668488539283290471632772188578988725617223711210383898776511265193792325730190442690525369426675948890865355212053641781414455671067037582101051988202781872419274793423613453146512854993312144804757428071225898974875522198672075954952949373501876607471120690866250972491088303698903222862046287601454560461927273401349499888432848357916859977408244204107332503542780405999727592723120637110571658697998877001164470130212335981510208638761192700545722585164264477729153240203651609109304609932325718927956848667387641559325190446172692589890863692319649082114205878148006249897210466920253642373469935050230832215135984989112166390154915534343088892800435986206043878284518330400508120058195577144274961498958696819665066296998958516230436241999060194380073447878768518464671691249671108945179796548633851466446725358420582491334185431242114533119740277009113094945324506374914344602363572640042874284269838515214570917812169833587751813614669478902689593961381531182217173417414089278674489710318004660832135318564384117935318487561591718060888330668275634800869328787877339237267087208118832927110926096714146875924378188915894297361947604366678941353475415499302718854734123143800505643712922366133062471618549786727268692686471755368543347134582447707391810059223792734249439897886268631812947073116355842334001908295705488506692935008468564247655390769720349398281650082328591850312464463415914185833721091335770241279164254481197866882682023451532729355890300973596547121702041336717542020189082909360408342212896974629387093693566202059886577916495405963449851322288566990619524481923919027180894088421343181156112543978449008933017268802271134622082369508679409694449638316327794963714071125738877864834707831924490038562312230664087018038385315830696900356226084677702921680179041523482269142910273575481297409319890723503562844104170787202614925696167015100929704263567034977338638556140739711657080355126241182818093677508964291590410951829486413476316334598844534696770260628068517949627181015557712563746823915326969186764635014650876708137239439981717880663187353933352562636427710687458180917531815728311546718498900773092539056830555037411567568679953810414254499488337188292768939377012528948857265734279250352857627521643175098299977728946369239782913721684561439429456687290283862588709043303481368847919579526356414364745037108815630761774789667050945723908986603337368600275792435609638723125384998211786716678788904032403710331494413700040168377887609156721184020623890879208440405915980223688120677270756523415358809194635444672532264477825249332016593661017129369331606506471653767078723652901333668328985540634200721044545204178885166803230035110810947283084427956543610765029892796058288259059314617896103756617807969522498961576859803660994630320672834877687778902408695682388834716492373610495519409367602095208186603353309629487484920040528769284457114119256411452629076960790710352169737473978692521153746549658673224972274212773187562866744613729101374368490954803607036156364253885027850699731791948176863039535647229483161915499731778395813045700173072837359858698098183598029252527380976313145464902174878205645514679270099365240415264435089111069705906356219928002580691447030324490848999964508588675839614224386762309017645161053192708313629145711110488343511595035669967588953415262906053389127055959365514183361630472404121058146998955313544410992204173134213241137002111257548584123709474888295537490661547949755984289397956856585930844708455189712212100457486413739739814013509053317501593440217675348285165317199829131380937639134014101927161634051655617729249761666362243574565018636591695406290283391702853301077772469094092964186384835138214079631556276913463181204924726141343320652955781648238092598917891352587622976938723935712105761777086567127394837952751408218545322149073631176549342981289175810336786390867579376872457692514396397679762771002444210851403631625306304386546963611515749484476910739078810099981001568647964168763423483365979879075349315944698024656747894764779725615760744406901300078732242387052982079647062884331474348921103067930345106668705256627582599934907316518155631767592076839413794193146480989991230782136079922872071214955999045159009627796276147320804870581999887179479256554608286112647759098018141266503315021425690528151614078215776028698468349435678345134888291164673257544157074843144437066721231216106034797445234842252951548311390352726111842117608221565440625870587920934557502840033966186319179895637607778802313248217292829138999590798367019772579442698744225098409975453104711872415323426896355670862197282130188429458017014599586420805561880421500474895562446763840755441266245306149867155038879889607487469584209021196423809306450271757753920341148855293406031561099282947728039566885555267891541367540265145305613056499113556627221929056254975631975255904870412775479222345234384354003335363864930664605717633060732677275379886885333186995179099746465308102624653385253855080207576535536366936973013012935405597942814961200932062501355013993613195282230305539957212142086179148201334319087425837648871058675132739438516079058857721503627592579159777194450368185974383703496558552001261286146229552312198319534428825988919449898314092864033238705669491463747580718500020692381318036690615860110468218646031180248550042397396216059696286525269108672384480329092192419920855931832189210586248305157706341656417350883181061896128123045934316576681947049538324144796035070797479454640725481138404865854309690690581695079467258073189670242134950040849036336765437468688974293985828962376557467492887724854822235840085032211564112595997099407775494700697743543004407034675699438080546343270142857460902354024994250596629657547304342756277909526389879843179270491250737744127594761018922331909044480166389001511150460381411059859506680351834114701092050263176105236456083598758981803876422293695513925029148245649837502523046910865663885203766211563908520619505061353132361439546557622820893942560601127229186794422544805197901679336099934096824016363586825730470591972575564689315881699674666905315500038059429334892958438264371067005206232979227725542574792805307296166578986637077519220284573207411871148639458944408725583838835559503419641988347093215204743118623417563612780497497145226261898944866136713387398483300680223416557443923752637194244564670608287465660916170104551142070619986293486365527552059320136055562177561968432619299955129696515268427265393330465946862882150429414412857944039871022445430980418826559163226832024260672554558550423948870894698498133434709339961963799430532078603773300338696554795060919153423905335555432700274554935747514299420031362378222930425374660970088966476679912733606836493177327651506735290378703691262845749610575002931567349979428152897523275680616268262342008352155301629152102239848507954574528621635299632456909405171932556487108027501049072508948938812041153762914255142413160239495151091183149935308091469798077793065350770979512767345459608466129207700077518474208949171238217931018033535466094218633814353984145888449288560718257933665785282319194721626237203401341544544107331207239997141990880978094062105497700437692576395936998748327398153315976066465665267417659173165558109060075230983035650923320481949271788644220398992058094179156597764753254252192493176268512648878756090833066849713760268508600547141104396910770850350723678121513053195032482328358377439910954693243272773315565720981626597360220364984653208299524182619065489545089472586619818806510592063787717544333032011527333826358537287414668140373869590303265174326071561138670868921913270503043647812378603957053347690368583248840413606563089408506460087052240651032071588638086055239514027305642252312404716978079088063372953787173738996882790106165284820036594984410221357299398893362637014198086177851987824118188974471762035168379381173878476287086542353506619090875635318941792074217262525130558500934901749887985210613563978679579907690133215972484407299915621342798584204210186771450827127353740960765396697921678878883532013252671979732520607137044845222284616854561048049744156525737764714418602371447571576130117170591402446045082072801125433795279647824047152161169530642945035362492590089892534775961601271353266393264554411903446370396761163784965506969491234047847633595459661313619707872841746665042820730282644365135122548422235845652034384957663875016865604210916159927611253796015637202186502316735947991145583725708785766922708186397516246776860671338172807289097427381000492444344767807329021112561580687428153566134692746957377958834425159699252471323733755487875620532655286652959645000428794645972456903320790910657034936981912723615117000171983573423434802977674813811385941177748609857253200011741325980387804535120076337832754429047323300005156385863439326422892900241683218498493350341206645258389194067176362094017574486939652042403170755365488226641300266782073698321890567957108402118826745096950661590888625381001775671795527125018797206117404064114742284210936550838880723252265295572882366779397632488266366846711075689748906662370426356774403804915970393870987232243093447264671943548872215401027580303645546542514958301516453906787392740027902679124668486991918713644500954709241687098959872231021294300490672497424716774881963234239353021907077812532700292801994541762542059956196476167831292696249063117813305592353462558585926226895350003288742094948835843409180588720564326566661727922258061499848925231021433087976606155513416828358508301427897152703346711683289590610676710987825237672343407891971765636720826861903123511789956666046814484578237662333589359306731695279532269612168029739396311500795148246386274644775564088329159229423621094752651473000157132969570524818080897809584754342768338546986137588404002489854235546871704576663543099250328036762191416440903390533405594906353424916633070469420750986019835103426160055901331220607745192592716966763899633103016297834591131202758202540107753896221792322186352026211274182065063189273523218499946726800586474024167066905460631385895996796593560440735828623678327284798426032831268553152508096021831045228903210118243054055512663505305314285988838089324280700136043613656761808983236515326098922774401625987738495172391779664034543934545697195953743522044401074527559421277262251227923422259871869626243047204185104965943972366611922008521446761009985802195516162321608817752239372229732902351810564269617402096974411786447001378576040368988944991562263203071101570890429148959612382809688141181653754771726827388243826118663158354997169891574352334559509974957509536549024519122074830222620125673155080494169760686584090150601361082388291422656623570727843921937624508297241850859117516951241202650839091597552312915335941258398923230269677166117580677190781161725796942384839849815168545754282056329626391151400133422718989710428040867384389814488600493733141649600089713230305447634061711251971501706953008832491314098470361225465240463808603376793718451345201775593411630816683390117020729582739440620906865000860065818023675697262843867601703551965036964962204847742355026582778057455178987700329497037827567071988460906080681220730465759567817104519015764844201807521819546761409594896419398068375110817484091880492751960626201080942211578285136810890485057511321512168121826240482030251638454147774446355000834521359378686020513842874356402749920462800276226025995338474446912773976333228633962155607799071459185650342595250244747928518870908898489164386577725783938358573872867046465444435290539463672648327138563703729619649847475640271845845845566352827915896098609684596887224802850929012623558507167164991446886898298455984901599281884421178467039174548079966543999331361816279548857685293272506664195006270599873422760187230693940346058719947831853658800813525485743244852620813000925220102117143844734119025940244453796195223723489387990565105083688456588112481628626648686445444657104920626755559378261325321236501945502066119023393738969541565863684396209518021258854920811030573982451371750280794232738068545816837879442944979917424203363830626909808469925597393652339337832189942402465170667338440933456267178406316716945600697324669565051590010781384461847606191833287845746801089710855626129055837435956455012348168580942603228754133702019841527584716241634613933786076210078904743933751641949699705063215461854635741713180678267939667608383591606679050307677306517949635685976479594695665595345361885376459460572140389883077934207722717903847537953596272359026188977570815466366520151996521607122416062313974435100320368177240139574158374744110818327648861453989099034469575247477838447450025349272428774614785652673955838403250657578691003517108367343953630031390330388086722569440880382410705924803527294555474034090303393303031706154768108086710691323009808164070534869335446031773985835673098090542565918444807480455263634325481056895618294708809894069519634611863455188692165679610080703958702535530040865069039619254561025257443889510051831777281219075796142168249618303027739805127582640544181582112983746271235460285009246542309825764181169805412819328713499023637373633265850851900255378241258429188552260707821136327172509217303751348886515559832544143953283286560918899063213204220821624806464851853981546958553488808191444852861815881001498505178814303625476404422084332282062274443599766425096779379533354130825192338579477480948482833101392045777952488966970570674509172082668453065288647667501695059563234297076648481516253889152812074288867291756085897763148179899495893039789425087229657465730978548984532400207944420759824508615198541644723938818813185469663476541992419232165039796686522915305734424515974950408789468770363287908232071743994283196405586308876868800686389643798801962859837920615795135455008320702825746475694122458304113400697672722791824219922133600628670495905276480799912983181442556189899987462874250726417641007000538873963478129583568124684963694874794228448262031052503010165793413136293193659118402770317916734548407672894314505009298384504309696286729838967559698526032848827902748582020708921706493574755412403392105709050074752006604404295330562688052298235563490650569564116324733079449332176289326777077245525148601181014623876974875209328675922960395389407574575647267283236554048045059622011676634199353674681453702368962892768562036874770351450655658240698921612100573685640414629395156534602311643978753563161182636831715727513408144600427325648079142640014910351086003744671340998208583311140923976033787769513267355315086277946132095663813880592171682756059802349481203290214221986222628836415971319891174936362009366948889978288580285459827655661083699527046866449348777930249378316905283423195036754603861634654852988525922908430228396318756397844599896758515466436178066186926954635075162018517758718170607525191780964582872086873750520389722186860633892441691834994731970078263494190929584551578873465938340752868922997615985200883868397270573018025819953727398609262646972934742687664288221361956508257645391085268447126739960015949083668734862538425728860192759567539873343020504189287000528532155659217471525094312944957371272819735561433711568397650702226619235226565858035132268390256285729529428178255346579261518792989145115252326456220011055545701567442220500025054608771920651066741605238559782146847750481825517705351713969821031463518081349471631893810607086456903131134331525628113888131886793843470515772486342556725757705157975239807919101441487092818695440754853250272074211698793418563326622951939589997736390781310657122279228606914120441530145649690192911537322346845517564233165242030541305039149409553347555464432675676781887483681134380793719678096379242059463148654167219960673009404381692656254765909699550316097679427283825302794182429484610705416417240386482789725267988170957623061181307170626060444231399525979244863570971762157786339131868615286079198018753489434403684146109651435914057873528618748003671872861273185167950693619899468989985897349377426274863965538561532936463754943111692895261279108189160932563314457119524502244993932681304897536138847521063569470097898078490414190000758949832319837886162664238206036799939272763524670895033352211115140993917148277139240508023471864705458237981366944542735737485940146584146554811023943571913293527335434814793245580480619123081595811660435861300999103899387707044927129185354709296246936402647216235170876382891847355445317572001066203394775790473417248156063012709175652320157040569740405830323613025292491384519266285834255080127004326889347801313133596885490078146565599968938691639075168049094998519144483046407696580167209096977320068418192415701645682556246695847106359680260908335694200073440133764416785070586714380613181292451448679605999368243163329853790527041561473338632977963910977077575925820746946227719657036863672848730611457427688176165402097731001366990757859792027467264475207993859498505554836038197830808328003573764146221968631719587743630679002076683781529157364911290685495870400377954741429764331153020998405524439303720555143577878493405260247096856760215343910694831752498641117819932232663756753532852918281486692176589400720004732735042677529027162698598647964860025317179740170100133816445980783958478622077743269773926077357812589610002696496111328975951015527862930717457075411716405540238036436387303344721902615201077385312741248451204125614087162907497740490311095159623265796239867972805556299678293709827774083715085178289533798180509535893369239171486465965533977478027735723304145411993454873769103882493483947394028264899458937085404344901479228458568600699135904352151210150151075583130860453443102496618632580430869822034694835022156678195533956125771644243896605821284987165111879231591777117913324305212727503781738151862548525564084591897418483910034803219166001535322751575276697151031072378342740263107145321112018567829093272219902808872981877904412909359927055832534913287276918095806646735319148949878903669042692837343841370989853081628123912788852888560339678006361195416940356959755167941851525510587558932069300804760544341086688189164138183920651987567272569040186740401434784288040346861638647932569212073285677829954254659177100537427850199924508864039390102131731420490826918501963742823361345174547915002704184733098564579630127407029677599137055554796474098654126563241486171086798547633098419247295481350063998489188171969696033407859730925733519080119791899315619882112242961580754188058569264946765244165964790008344296649236030898002169673734022557692319868498698070749538885343729402021108864772434063793746623562664235965057235489412700890943524887939846960625005752812649829947742477038684338287073742270247589558246173109074594457691060444803194630283273290327667741042085639290556225423293047937909125412396761278174322919172759248171938858409843979039953138069016630129532414090960288616756390178722163218792220086052725972950216339407672409387179506351801176911506221004483508521160932902695507430184220282554270180872737508221576934638156018445401750530655190487261548558470837998411322412708875284571792952595869643928288477434522268412261763910966784713303791225516959329335807314451059234489150707457682521158988520220046068772083461494145057458875753355787566154962083351264114428564186528758168621429026774477982666157550330447214401815610636176362165035401271284562451300294933192439138119774237561560854990183260218182407634690652475132924644936437075555513501373843931115863237140814752387479126843295593162387915463672237891462052242563684852508572654321812719362056871766682069771256952992572598908331815896698828256563981831200949917502889422517270342791248842554467769503868126074591681362225195241915657493824546505057244482720041967362763983812222786305335571430882094306843148107440360206629118499101420503347680163293718237558874666184269663461351869499062554017987380036324048288341648626906212299238672852739010232018335372519441505045815443209487377252139303260444079585313166524858165175789546002202482746999181516825726690033965628004997842955902797418053369934111507558244540904222096233374614669180566380732009909544467407877739690542527849363628358843229169239225593344228895584259655554109090472767154823288130961884578979333746284811149048029671576962852686941526247085277499567265953733844692918185366486563401221607157966952043168264081628507026879425757822480961704250214419172757834928927337729022902663219518871139944901028708272544176530353158043803885718389894896843112966235406585321533660142738823297740734142159128961396955645365217341073586651320737987737307820764244132677143232679527143932028215639948377069931160902447837566299673428459185985781193443317517281797592609284082216932950399380605963757582003550411542741061622442367714573369962383752605368666189239185999917360674921949648135665441655776979350484916134954378840091683374080481378442407420450005811722896290733055449874832021905617876770785355179144434992039271051362150404910523071292934155299820541766517450812680655327155755977374710564802326948204874531977853734228985141360462390599750806157044872460067311733560559994162692478768002005807151228052435286922447222214512379142141094987698252635799967373780301471351857983914407219885209571915934663032443642295220026191794127898325744499554536122973938703588279847901923691605500422731941057140920023435598900279309762774738110809545243695265240353701814476424526717538972394996890231977020372197034252409190517740427920652212613205581164605411863814782317602050987087855751174427294203792923892771048808702684750731478519746657165924689280168102806633814016183934262917269456568617254421556062081838644169262908159450659519560329427702510029886965511002672554487424689228021755096028815439967840758646927183419341965420419006873245866377117128819653181889161533472190926793275771868970948675059195472883429453089300992940209990913858697297062042154665312939871032158798431603466172650736254520728607192047421466227697830217330229600737008725164914575708586843301871565626745932267575660205053656800152103541135496871008636261336313015907769777797737016231218151401764291432702630402959319170136669791838364753424596348406406508205267127231791504365378434632399589716424223622643138934803864594421777682265669155600755400893345550428049672068650715900815375369548495385545732090041486068740626335005021692249539787417618241362148613447800226844626004309001746452642863247812547150279685952457240871248674723889334717091206459082658665980238116594651325508755594624691848761249565120281775013908841465374807339095559457011356170284092505630613208311672301398086693629603871255755157211627327414234758566408181384690576142323647056475497548629983130467256842535375091178794570603985675779056142795799754381438212292659697918463461475951638818980709106131286972229963941152397241352714686300784758032818375631960515739211738511184089945400033945380171850568079960677340831195668428814886911565079552430272245460111035765256983648032207411465555105412949982935378827417483076625662050599556906178214497566705226735488111151470800016156278081967706568512569862393656764053223859998578900861035293088332293853522258649730898375897242275409534524396232789489641140215891178062102052692140150830924935520381502021909730447283999886371035747570497744122318011727812887401002836910121409101843162130350243988518104310858256479068769434544242329130135590060243753829980551362054696174276071588938929542457084972641025827910199035101991679445443073024129711740744770359041283440883014168897018038605870000087911873141512682938815882130858170427046090258593980292080705575721639935839026329153222411141038599687365012102372874416577198576847556282076230632392288150865173806201585421416616259797870094160333031129793964805033328084382353537125935478571628387412476906959129686177046148692254622920493126631048786493304991177154202771650424497788428061894120627323298427293461853132719804615524608439645725089424632301900291796351296716731278720519240395700735167330872160534847719493701632866790036685727791865805934389929495721241085805820161827649810836536455906800803797426842762945855463997787515021744898201486849997327646487611379145402281829485606700296834247374889511554934869353106000578282201352348764157349090163474300702408732303870144730966769841830157672948834226435593507775194413129317633911618539121070623148221760162962564682078378720437390634968595023896769475618944821674736333746366932626725532323932920140271314957847047359715776226398355355674933642813610839606645054566319321413506107822566229629376279981094495619428741808922742062481786626356005877648020669385161228987692094621322927173561959249466668258034598770175717258889244207460801264999463671880323981331525372441752538949340238886721880729402232397106315111812903631021353716079151376282918818958384590380837280661198786884496036117469655076054414634609475946774984560128751772100620619083481796122047560836809287173460009315092720240458278753530927834270520730190164084012591854818853767071993725708255723533923481253491209914903108987352043423177513223359579689534431094301038666075648044245048310024776519521377465287000480925550366665952019880522086165438235999429372443248019720425995579596029978868058394714516251475933441304353381494119518442527911708126640824559442186232387421402650438402651174530195669476052488179540157687856555436477905230915580569745390998845545455099509375169732695304412674660822147612999873133892747575288958668774486912761914293627920875253163473003818288999897043383716306196735571886386758253208838621659090848903458136301902819971055402797795942552101667989398473738848741123422123587864608840367726601199649444194955047823924787558086022455041671437155484891607730340518779771187432706936143475199558384703333925174147080951974373902465487604911893473910189100488355293689767253485828081717174860823620057313850070767553039868499518776417847732826338464094407036478922221323485589678702684386737595653362678895070036372518269406836216860081822548115153579861001215102344448608299292437340598999961088593822970157269458795085268276759999790153212331016281893340118244019806219177646056146367162648000390099087446035395865284574097328272357116613572682866482851082658533851730991134908233822322359261817560765142549611871685149121600295674535885841624108174360567952082741136633282953585829168618657022715937222660298403275312560129999074864945025610620807011122737681878234975936081665838064858112721558026371330962403984503663060852835843036524692647074771770582223402838824079127033398019087429892708094915372743652206040027340529710779104550825771330068402831430214261863610197715473684544797171537941167354038307180447228100132958092400553736747888596683385381120183455088507310807079298646692517085336549420318437982171913535220645052419799647275970379374132734255375338288362874739072643076957927907921558252655438069630422391149631938705707808642122257760578642801866776309318769338896032685714204807516344219144826123241019123318858710970591129450661043990645753638135686663493517349875971460173216698030189382305639079917418818796798364099354420003387137797112236885652531282806439320053835847211838702019545814228721246570297895434024960393094820953686633848863819573955547029433197850236166793565227782256336361196940356881350652693911564399952174014456285666070199265218775504534494711852807083675941659037076701035148254461295853740566002042680025206505460295327482617954201875534869227183619808763766819112525775201487547944732393326838505122877152134446260688979487366677399355275221674111290370580037253248700068729734287799937333362792651085986420122264467079541758935744737325015092851443435816588398859411963113487857042526489674149328710652064720093980450272393056955203540868422549562535735213992382167904325584869227157329719273349708033558039569536351623546218523455044847343160367663127829739225470274419100068771219076368015922458456017671641083373561213969213777716818524359743723321496680098570282224459932276635018921553146135303515520823542270610797330627963142982566807472746118570389605522642654524866586585714190916723208768018381861203221094299461571026266885950378909947552555287203758296874796766326742111266673447213102609126293630645910524438286250857440414050368065077180013542558912514822989553788295614270154805963250793278300124621219253063860812215301452605947627712481553869152543877977608144840851462940311771406077247153451919258322297189821467197269001044152358369065656431265373482211566017916152954633347052623694929681853252761493665869169727876792474961939249493553233566036026017106305005737391156611544301098253678500184174381533779717617190620575212178168624792083327538094916202046343577485717323090173466323974253605873552022563048288071898150591624788658084164909450028869466957417783326725031006777925072344403348343654308133739438149983554369506045218931575087674658980163832051081205101254706549872314250589408745948637249271449695666147932247776303941521597321386009741478497437971015541531124843306597232815260770186960400931196578067251201978434815041692931743220281101546791637401837212102179282716339625773135942529678760096327703454948197247392577833032632923791473294857728873280504585385343939889428433368281519579151807041324048323333890829858140999650503895325352905956668687440011883828151248803977041854616674765725033664300591044033066688339906918671125140611622542911263206735195095323776935407625035180240427754842773899854710572753351645562402365027965699677315495407039501154202303661321244141551079477787855111252383632670330372620514345871520337193280957470482298694238796049282470194446793778648616262477189989797596403986620081918584382542694936881330492709826131359587832957368842213695397428211563444735533196495046191713171135679654309529413820517577751334293154292720768695289463452492213372708717741812012733899179716100930103745454418267650168202330215367141912825618635802670030898744648647031047429488813198766754938616849893208894278285997589011612890615869732549458582699376017841158496862701832350873811932556739976417491885786623233392637319144927416368547754117447567920541603747653979128113802025281489029289210027477095980175539782351250326923701483094533733748827716125710598204174827251824385503473540714649559869045971911846153401460716846435966837179851187906353008775164505654896392384098586279339433348691029689922453969910678384882463496674316416842417374830384654879335170372040616629181491726168487441567713098272038927857432380877798970094468940285404682429741900869153083997411397517942103400367228853783274119096196399090919348123011639608079399704080347448160916670149865825880787206960113489852213635266202945349882690630816852948968615365280043808428420480604695349423740610641166495608175793818727565788689051635109810027995130714673664710484949505739138553607133996513633543443157344554166748351926781096298720436356154331732926938046242362604834669544098655841206345850497084085878082570721316115439576968177754981621305823248186613982459156616439120019844463442022918766128961136352282437542075746787757303114146793453797918644603845465607793722202930189912914292445665942912501181198478941955086847477216979520580655539957196063238528204680486900893442010199878226994781514842561479690671583150426345754484583054981921945618830672715810396479560294869423162316438186659003306246424931537385817267341007845865285591336237598489368888041978542812180633914659301652000885462046081479472969949076611481410404895060181194226455258819970495411393264628767145634141827770436351644455202163062762334159317313117900867647559771615787823442531783715040574336546607343441598795359821619574933002768114770473274355428285511561075409431193629191047600372463434554021325298870834584157309671060095143684226577625179318420986048928300639070221715475572706268209897840966098371427526948202294183195014899903214799013040710641809336237212981421733301215815451832865400796967620394559997125929296664074573958652741033659941323589243986673231608726574589688829013744389050597259804138105590281534347241261270357033132770872811293511589128305681415890503443659231129866583010789452814676553685601537252874485420352651727255701811121758071650654289915771887766337093061379976970633130541519862580524185993267393033943239514515910260818650881572712572035565608508786873813761477421163086505286769745127647156919574498081805899262368252674318501071406986976166378138318442608549151688331558114418815527493198842436532350118955331369246790544489723056400976844752932056904870113388973610600977736497617102853669318878151418035119877644452872962974924038773520943185081436146881796506987833165914809739870999350717343656059544800268006313592102436922120598459958857478163178060010973898439443855208937307511570271653664674356937065199001981437646749297312667709409475838363903334918932657570283762764318522945220017556433862570809490580178428749830652345218689810245170133481840324420921100217888443689664323773072028723231530181850164790208675600897235337227808072201513577633761131919666273894778146329890181881649652376532022079770074528320360904646020404129741775119354628152247874996004668248629186470322481256871313688201278071227747549836452743328698400713811602346015339181614374844752464083399574297599269692957357945707256469609577946609519511932827109018427489442568261525141338348238292484060343242454142192133779132571638069610666872016672757515662258110921537421979856172952596253541917176746623205209669091887317515635889612245975194865864778748715700619710621259621087423271669280666695818261486923304456465212750942031511538811844514928052603706766068903557650752398043454689118070835102887858762738647036794467161220199139104708149694797824718723961295401765669783898789367887802212715016604230836146386498966430286584286535573422356208988502072362977873901406860586523626458550453271787396577831894824086924858023110580458136435082600486245743019802047901714809795782237878101528950961999090631588322620521928031290051601901788191437194174178744370446636538845564350988278949932673217962358971175648523928575804052045300180816734253023276278702419281343342068866420610249013489094883551202444840371488540068220180894858208354872410164812372979645613582632944961575316710094595910181394451764560262184176908767156064028928660752001639623718400023532368402029487351914257106418427884425216772998540469134711943103878658447794221602839550529249494423752104577560996135164653742891743895306114876742602080067784159492482860040395858467372763730463365375533436010224520394863799847050707811559170137436080618814092104639443446172950721125487978736332245320652698807679426091493668734926946414863693968267049027462878522117157752890688316790330960767904867690189977132934279120895599843241763453482835964091276611713577539261904280723380171902221648981590721679058453611773464331181976074622880061461384148089415197820155038784916647336100142350800474348832741345120208719353889030734034366630813354155984290633915257425067015528902263786206102632946638735945782957014318684393763187188032504879243308060711035476419837083703975110729390039480904699427604545357338208840541955768470075487695223073423393707809977398832361076681398477856606282515184058868615826555041634838517726811296084446499625540450076864761795451201363930509895099466263487545794973382272704948803372029571973028814249486642929995040551866755326875086609313580215863857637904402589211211966099434302883104364306330938655208565733107783376598231559144557717507037236593221986931410276838921724897021449111729393597118671494413664300247396811938832226327450599154895067829873789376587855923618100392783666255361489133454535280132293004756255938814676534600296978445505383934361204800414452148252687016160589323668567348813470037024126274368324424856856259771498317893502342911511698834671515416242357243111602591951198825473719749171614651607029801140828523832654884089770311846933274166789417541035917395075026214139928505387207703754270567808549156471428962383818295456810745770271439825245812476125720385177363757539259714242885814909155732894201447308197718510593280964455986497087984766205529406700427806207845308946819861219506773048612222221201778393216302339980440393822748154756281873675135112323384417137994582193239958866251351432927849880800873751769502790580885625206846652290728665397566180770971044024851368035461068590232195239595698338685838037643487258609178917879158030554864060646544573019490114788142133667517910281653426875828284644610195966487501828899881780583472175429946168152043787017805177664718487334128966947725331866542772926866442099111012065390555562255163628301394706777984105473309263312884530303290860836041631804071861072527610526693165354939473612139087696758082962610870441166676679885486786844037006735286324345169007994318533747361779282894786625244949991055837269226466467647627142174762158526396765551482799586216274430021890349602184968844223443387912045660508494365428696250073375775910221981730069635785464888453248608138277119093573885191885531481776300860676047929442226311445092008745233222280223935021680863239866146157993817099762128363677894811056411352208218537661088254413572964858282427846740290606321178987159930464469195955378560860138568694032890303288314577064242516059358356199599663302726586289278290883743106338019987635557645890839822489143727524374187000456208100630615171198752428633774270841268481519159096454288117959294453876556247817391247114189971799570897286356836659742957519106840996682302044369660857233004213989644139111321157962901541206839357413744175815600978952362614707886768942231597712561545217564680005235616109789403884832683003743961806429586525175289669618432008312425892120602060449679192586836041375023449471959075462037172423573290159558774173867681433984367559723118162009994403812692481146226700053223549311154191842247143547614649597309480905536434754629945321390772848219174140357906373370392080550310330753485305438156865847851821732207062851083988354647242017150778365626207548554781656485401490911490454893527719647428466904496602272240119122465500571111163310512300329903286670112949334389976278230142615751417670763296000888285772269888023098751313889098281844687742488815700547793508692863193608396155349433563927363819659384031964867283554834191285282242635168752766145800958182135432440909087986001160202082512320384101682420070739072996245711017677206179282562189965146359367374149863051663247690397848471813826633058038245414979808572135942765826871573714515805605268403344111583919395077347438375595629459062773303251570362045396233310556471397660263355378902388132127130847226201556475972787414482835474865343798703975478059740292220865808349739027454855649924527284629831447240612443081327329375260460466316574667754949756132821390542902816560401537889956744593759799118900355949227671579062352584656653651739323349745617258046683422095286425083873999183728356891714329889268840784590822747075248902323578315436140599424393800347984656016950063209609955312729104376573963937171335207349233676524821577932910028697307005117898638228573219297241557476631218067108099059905672657220411108893223468992902026830295537042178592681584149666295471380127908571610023807989394616550811842939498527843118029150359916460584240788018742856568522616250194236892048898908264629893937944672014873199006816506822142312701413970986965358221186838627818485405327456025819412243625123301001530140024931181819276743697566972201723963520483027619709150684372472125555059555394380659833552127267640113154774558315297418298139676300170799169925495219790542862075638929361372979491357328380006420391681430226010388909854233632198911007417017081997041108125984862001901930540235052220750762562095304515207986709787365863803460971576822625043329796151628015600640923149490115943985386083449888472405840229631690663443129735701420310286808791700761896796979649971090036522279761970691373159330325157769571776418285337072042392953040461312366218441044183612674222349539523134042186330591135590972526366298672314443758742177346786013272587237825397348731214322064891955120235721379421093323472550192447382431296459392582110513451169587579195796751802839466672565016821092177561220628051986005937106502295534801584378516831395599295091210262001798229658516243608748565017307457406552470489081863672167465225924844252442073976847408786985425239696609616706786267168550569632864089377275946015430627641415426714806275438263291545312821847877670968760731919609299939339135070059183444476273170876036630454077585800862925564316575551599219173255652198639980604621496114100070587661821132728252078193463167846570206191378807294590442248978236750647108743809351311992650211427092410612528377921370679536046929891631900343211629192968973608528753342942140853211318445511057226044943505843109837408170551751705136603966525582336244154124775860927389704953710525918325980129651753728603471727463841838850775829146054673118580632148190856847689049590637548406882571229446537618237591003725333363827615762504220415919043044187782545181426795054849019789524560022257501540355046341581791562910187405368537442654672861492905304957152811317540244138426735537235682834866493570690908149473616672409135345590665877310171861740975549451140783723873136166094573618025084482624266305915372996088428644201797871777465388739508500747766673886752378586429348338436467808424208897088241305888728023372886741531752887341599818001494258475033585198794281772895022124203044551993378777322594576675204918819032839878862958350126587459591349738745997004457878962530948832675760149123298742007304921090314278305874268389384114323318233174781562208521825485592007190650763372682648529627525783762964167116083323874443121445142771164112121359447205671834040336714362330827080597199768223639786779685983327822213482951745940768673649590810413787475710161377795954521971020113593225629241092726149272106393570023344571944812246659386864690578346564183877717184871691864947732922086595761864567494700092757916109492393649100656992929312201094609163850231376730622727767032522405739596064573897144651182603714033980579631752048022344629611866681718780474321945888954535376675379012543655164582797374207171231383439165665354278065202879566733299880857265544308687820021366019797694964251503681567615332776462935599063632046627040007439577322653030845043434026761647576906398033183605916508965502962013709219950407582877210240801540145930907468622440571273751331831911272548157471728315389306788856312301763031794789629715267558376861357112583392349011969658805970704228090512575825470993886704431957261423942298674593074930474368247294342228738356184595036272267530912877271887967590772065542398364280988544329728969236997294850175448793717977715071811783800736742822357162248373126182911981261089280551105244525153325633695255737435446404093154209452966298059842573063144387614870010208367338173476050648360012015777939646715856518862089178507713704883844233184092557421009146547198399562594517625487489356752233217742329611059411383327456517314024147155311652575248477235996724221851974243406139300984244273799411587849556701513180182898684953279880411017456523737318896046067806140973147321546821612797059883421579681993476632776523166923355796917307260199694415631325073752637798992332520981128711001476604077180711206484502136674390226668549452675641264245785136591022795629922689785227835347478603934070551597098566290753037429232523474293322766316303948492218842031593430983205524328983682343634887449469165155412702698214533297235219211660085392150155032821823263898876277665596726834968166261014176747234269971912214835419375661528160800898188028341778057448206836549024532890570388441895110801176965181954628229652971129237496781370143870508720742423323798002652897194846466549800835646739709693887168462044057163756199573561070498171599622366210214777047313800547943988470509099290464625723451709648429276901988418833920200364478955088818378014592398688546655715150568223505769067833420378019734065766689962054532061997381695937840208476402510044847947641567176338972628609897249250037091563328201852042597963849139637022223415273661765053602324223601880442735471227324983357866318542489955098698420737895825381731642910459052881777807071134477870739575808438174618038165758114761675162600397720916479423455646797514399245802494014329127073048635996350138058694299347584298083390021101165888154966447844704009363722559652634981702590866716266490558925838024515545445837012441493468452386145577245952481964638356249199374404935627860746041707250202447447280961834101102134347506781196703881377103543858243444952090070399852358326828259776690840422969548757820462801509565368311090838507006741372431803338358732190594516014459643005804415497142166945936720892331500988690804106186328634038716165039806613004770702054946238370121185502424864765519735731700390034092587739493879918316177526558803431510964536684133973157259775338179157299410164951292035808302077968491706043311995252233750952912627421271657966093185200450741247335057536920881305441926606287075837156748786799454733019493216557825323386332976291557868504448005341701543190090705254338869131789843442533755288511727601192967044442793917355161934304848557457071947466319953524345264283897357614034383040245597375395856248197058547270648628968048085065503612349583387681952482589204462739897296461943880499549238254694951059179824279682564225142533840922459264535610254330997723173434435605648027661225630793662038192887912294295704309085861869874481079588503310000960719123459051625926500428411288834309433788894700158535490559651545701819429487551210700620974400611165784592926543811176914389948110806166873143109686547623332038279684253794740773607933343208948261824856035096559084041167204405812967459705253647516762901314088242104242239990729818356018827963053559120302960556253128313316598307487388903494564537549994602110923368990344448302761971218708693377202461057530833681344625156067737576140171195685675495238261036495258610529851403799655385051457699183103338658185305500899104965907227204938676203854715169450840448183800995068452434296854873462820909908344628376041486970793234880424635741268375221121685121053693542788980516130095501750807484470624114666916658554667115597163687851405994908613024815854211061688494234276958448770978082677023387504618344616934403331820963008470742552114871595042078389444962532675233717483969076735670365836942436751315800219307522029965161623827425926571014432186858885725042746673843995806336616385706107871908814203171604306899125157860049533014363509982417777353092957923174973913419430032556594403859415946169194326319949348025069390344590265613072000566152577230305830923010252130580556162038188363784549035363504322353992816351370311678256319735157676977452842752691881452551494463132069188603806566250144058535679534396374111716562640215199583690660782342918849984376140752436703373261753328806132380710628163768889641433005149645813086118130789459531693048050960870162192303390710923134530712615788583097413581334066981409725716222415666064264328472915801334566112049411205553552133726409963587789032792460977491017540439101611015871002357956734963831935916025480791726646211837911121403821299038508572059086361500087347173713065244081567900158619650309451155709700598889789978415169444604062976323661889358381687750867374877672914678874692985569840754923322057437624316973522629226830080721359441474331329280974891087297486984794711046271465120906683785072831291251649969261764379233386101379899895497455058178769276754204111321424980235806856238680642380448860448368652166027493311885212302807766803688430586991141557046136584078700951720636727257272234182054810677159102163253722615952069935364806465138214694269650233129890756808061067375915166810655408650203791061287090790654192147365178915953935124931810699615921220723953938922176589504083640797260939593800696151398306822637525551932759771930179462038630782035662670625813008264526758045642688747860060652627927249769453201002631195889911296460319111240637487458352532481659348213147940363038766410996597093491822769425493758152867607950804775708735819965434736827629495994008172729714271550807874178527621510888092506694610254029883547811203648572101364041736061169409149009572741417723621632868275901319885584094460340649701660292429522168007752819612895512939319345078346927443600995867079476961484911957698119794021456619068813734249394258231855679664745238868151032283177570061022805579298618595174585995641843852330632174199873828891331218710908217766115696987905634258193081695524165691319893887861418861237991669070202343281152574015810100197047450463060788254075529396726632210202756128813858859856661140179606976829683142585477982746537953244645026695844257503265253254751180204340078103073348185203772687710400602300987316231749887895701341057254050752022395835813707870519205561927741009007017874829961353107743890517623643515984513606211485940290148069283875381929412593228181501190122129332708788613255582654860420429385847545176502766640553798171671848911664010818883415405197954834158448761991648629061183853418444429173356601695566662145831739163687350449922240330803465799971183777509147510221853913737277423376152476930088672923596071832564972820813493628064465046558241642553002260045943990826426316165743348691698097559872686509904215795530208543803136962401156801547663588910893473712896632397667684540404927395296960469301943517168230209947052068769639700416458210758719732293776283297535932747010538363768018469653395509939819246725752942826164614823741750752211823322622754606951715225904692617962545720140185749135287986992911497387300746178725978046783301609372093761364039624680422443115832805372162495501364400329453203598548044662950280705943328179343261554714129560110255720945421869581129924921693788839287578649436520035281545252782838011042894427527571221981966820808811631619889900221151335010078586991075273755151897302329702471817273749467223028505130899337874972532569470219720851728045705860392664523996685406715750564447231377032132182224227568726565747885072545192692920260340741887946294785798496836783548649389200893987926575068823173895499115766825232153356542385458654222631549930456096464522691136806856682507589947397241456930506906190228691967413453326825688952882131816354213693751472028908731992420927071743229828830623657441869503466776685608831375633934755076322208521803312950754301173923696464185988596154613844356441599396609626526862120282297235960733935555095770232481915855700076295357373750548945655539624608148919362044050460061612300602816038481488074359902537070209113839917564540587839389056845098002941256863657433740104333749859612942327844635608254729105608423506846269450760266697329971991912996717551955683184169439800754257066412686555919235841427656017181408470808024446493865626177126444061708852883965993647997934341960025545436696089420957503127892772014937914096954942107884029124225668555965546436316195463245528709895338852294267751807638408592401172328706979882612768031478492861918185559807018331869145557688596133344434162810316631219486195768612500848670676052666924116442055942873682234609248054957327939765654968991309795785051593498122022822466233476758464762984703052533815517054518325845035705023117051405940199317379074388590092051323794300882428070581831204998630536568293665624901278389267343537073300645290659128676252138898602270472951400735637247085781908529660542969732505085808774910212645619877527098934161230413200227792211333750257099842634094557179426390201123079962817385840826363959919249817431935279113369398059021064525125544753574777719006212133567051973758719962079596304922006659397695005222064474062350334697502938820393752041440720694168141694007356664683680935086106660269009341118846303860553289510589402810917854393507850647927042415964692409035999434920077098136894980080061499957746254872562261152453961992207043374383318584978824630751228633771642079684429617839803804887950927199857926567046806780838836841406710488848902911495091488297856367848792389364542066857078720735594806206569977651175136662199448794596748210044573569348988906107527335805434732058905169625095496450416183231572191128955649683449811185461229448004853140103298540250331246605142269051311547332576348425023425382940563058593703234656650052519766717229930954396403364804554639594531863979766302370126748449152965942326725734961529098911290640882612203827545827358392950258179793807663776598705767317166653268488131164875733241788035616332016964492391331204508808080509452168698816533007916585216202512454341915727962735598461768118988656749877783215087604753133996287289747061978744441769234805110022434213452598052350926117888327936711258136498525737179826676630339935249546381473150311746460854278257333105339070213662774923743578921714364105644863659094038172774869699262093605336701908316898731794354826457764238812186224107356214745291597628994219884645787101299849950321443461182768083618218229499546616530086211928122668777056444554543304266414215712439368500974726239454985133110673795190797515576215577984359691542179537630789966976152648755322073502467982271406905651803149373432837811192071565572683573747095490818355696639380686938612565168901929651948049390049811262746364284702285454291545539207486297572578565968697951896262573507206616499563828733372463559001100151418472685391875870280288026112061540125324402215827529746574325456594356634354934663001931079804735371086648292687422061950596670509900854230723551937221038169680391054771953336702715374810733343087541895609875054682036013361765399235862852564272820899488891558796270920897538151000897617126704546660993957847128005699739344106623783975313717030582278990472475160078170854460393676866818062546838216402426226267610323550108633598272778913423633788053792368328921953355212520323159571961247036736512299510602385470123000255514889499394242926473579888350840246043065970408637173399308655920490615417121360731553799557213686737767918922867145311548019333747196737168882974459603117499410659651862629277102045450851813227110501398323529900257111856051908346940032739017169635639815038034166537328680709680822945299579922840501044601221518612925110340382477678654910835226570512289831248731677074508054524489848198468718664992425934460517975303644508138718735224088655651352471019951756849602216217972822577046680995761887493504049932093172041261601668451690315965558060954910223119104903292436210479615360748460857093895916285864745670325367020608030537569851087749760351561450559518837000996664083071854166377163553222572172252738172458264405997912778946485180951174034801751767084194741432249692130101230820191389091528871427467986150662844476264131568588912639800125524847963654524726315032557647002705629183237966431544602955774240406568496212530997594685483160227953249291315864338973059865355691872086858499684194696510551118662690603255739926654456898511604196549598638323363922108300224715818353637850792249867776352819258054735547070613200893079934496480428215756295799603062997825961815485566300034605688427537744555983793250990102200714226263293487978425727588286774367675903167867947790917712853875224152081430430151674671445776601263214076051791034395529060990409541397231546536535240152313852861468525449553006509864995851609923962038754061471467171623015351153802807064052775749889555220358473869032624430868009593473377179209167358421482385258964126163877488042544913892342557201986081263314888676828373992448209707720243800998204768647568605273951698717139284977643732198370499933481405987396963357207172428580048729465479513703921817640240069168653004433738367254973102405183234713320308371143737104824885545110293931105763202699713628424284134349934894416130040646210619708852857599742209076844207938710739512444149024512316175054800212124564976786490429447479985504355249006254122536849878098598227121939663898092569104407740870625675592780837908763354985500302942102422404016199344247214342484998565374004431207673978732120965984979741164363064484536180448541662799724362809151519010850950519418862712224171160758926685655618446395075793388867858462810527251795703237456965998609993978685987394456160798794885643239179690343752383107339407580722834940063194514054775449779842575387967711244576627239277425855696513889425632193332669447565068877297424661048254302746136223658951372507974560215794056647683766646872959103670873341115696362337144091735634240545099093962400619758442995488135037791732580333607840047709318768317440513380789105746569998962979631461583113283543055338546261433206550351311670088466306393789355086463764520542861374600307937348824479134972140112942581062682281516496657074252498443146652089705924141840029138048659365502182196815119254294003929391991870852758348366511326909946290799926485866493230055976263286915040201899640387510512619174466041356272615669030606863017118845792546827084387727522933914910882231379771578075923259128742565010440969484712116530762846819589031995308882504993945963569396845125253374536621087880088229820843808530031116302318445135706209647418855947817162261620676076098953427072808596739441536087195835531836275392888350538552983527002828416307753261116495973263631849546272479141612296755271112000598173575863658291495519845486352715559742404104900545529229262413536072741298500428741104896207511400880639243142026257792658235324916444763110167477972304641729036956558669170874556723475365284251441496766657839174629261875793668568464091722168426428518968103822152858230068138106702047488531317339666147402963301726429575948418619277050786675223814401263476024249008325722078715445518220946025931632389310248168450843214844650509910514359025240844168368318108642524481145419047799489240472901926391447084111422671273795141596699916252403216351720771066860546065887988495014394513964315974388854042213169993335185796075014740383677014110784578116182152569400651138974727775059627068911781606606400510080288928923297142323132943980392336737836883886595012478984387481323715610609270646608014139380087135461768928246150715018999937236300586970607829161052695329223279920414008226790749953033151850913288170398329574325008615309248959985946423195615965177239750356920635270346231084509417306453187709146190496909798417189784088907746493135451280409077406921306597184939786663680513716096564845011373838460057006266180811248394808253377778233387241966111357774725560616835418360499278279663168697920195008445326076850351703978553194541386037532982900516748440998116104421831194632000988540711180080784700351007618008237599069501787552104606934325352598618810950848250455147944339484225717529077832625414028698387602919340530714357159706344382636825126046154044837649238797326173013987747581357204321276944640368533303873793591870164433961853921118453568288442358225360215085828628476775915014416566554696262278053719751988042225882397079122141867262601696128790198065604249469947115904212013922545801971183899001859011680631612401481937849257475492789296762282361514359515241260680241026975370220848696006812151629273994541367065573140940114460937736559464013266199860285483156058552244837167355328993039260119738369982105544007928748664034060416263348158152470726378067290388779478536319231151054017370147771759731481150158064668867315222228864146070129026580509371704990887134305523843035407996783741322438598369036399724847351787767287545606872702475237754966996496519337541029199069612914200265596563003464288634709776047006674228359409503210354319499812532229246994181419223686784298205078150441994635328768386222317166463423973471249436895527586175418091517324739919838957809438083234023965993592309444742756924723113222600380774807672149088360235558682149883944364320363602312173808515132263167563995473013478163583083248257398652996676150400468120863003204584605236733661047887894732842512978393497849728729499071605110880610324768458268661045948842396157867166366990582419363984094740624947137541254655300041084460432357862534361994033185959303973980698172707357932682446546296581920601306443784418126482198152005449813679679801944640881723211172163488141453003259586742115337053325262876240802454154009389614823718338092834927149295335464699558080580089102560526327857000979973882664624188509833780690795200998136066528784326231003434753544864143507682371292822649896902030752583438827874079595863543759532207315990776618100321816917083450919060944009347018012436741522551048213936905074601984275580210070422074872728581668424740468025172343560421041611437115284372744303143571149979817300213025466990775205184529188279124382679657314069837358732246439441010469837915915121481932664318305448099568934349870867590533456634637536939167295441086765677863319067312000095516663057792549945135142330923447027909470625105594560010933157842954670461972749687435361090847171632858619659808118956419767743645451893933467497635420543910469322068855911169927826237494532797632661238933475391890879913119500971505705004699423564012624014646646122789122496300977889189557787931867353811531276144731856791855166441062153738764506565544620595185505924028793089798881014114715976620761976163723490886300599679396655734345669302264168485859454939008533567802923855085325119953634809684259119658382939297117736501638828906064559688358541291089713725613639586197629280202199993081507009575172307851365267546409568312848777082174555028081243232362727276198527203895041747539190007934837900330452908540623563268213416114859665274990264990440921921661830725503391760877504114379275204942110589416848677931787242616232865819932749486060854885916860088429791248637560756212286419631544934168744897830176573328091608240855928305163041600836758282848903944906394359061645468172693268533068851928282467836885890281857477709626174317125638868769757513035483211101541872116509329206852384836726542456087225345800917703671971417708520889283370335714160598842201595206842111907572722812054511130516814578348780943281299142754055706223511491968449214064980482493210522840424852721602744899842392603128049562995893457917023170401375512619374856105060898264156016388711296304451903782021349874156151798253723781142540982922840297462466470907973971201486467362555334845551527960253737150755680845297105261811699960486833402929915847460724597556819275678378038838682858575230354209072954009727712493873358265643572012544576197298193742990590737624943558924902112287148082755926193068990399407118866451625761603921453997129467842225028980614893714778415459193327232629800521727894023539690988322159268510622362097855191042963560707223159400902445690460364745275044948627344097670566749440031920440573372976466986065783199367299822897300385470079620150951220632386169001431354088098867577694255673907379452011960426702062055783042851791781331047921485992015690884213465147183730533674874280626546660671022705963535602222566801755134972375964125166897339674799752272796387064072392782041667465821807757800826330791652395788963808780590092061589331894396381196741802549838295657471789381974286818788407379284463418101275504864252510326308158114370754328328487812861710599669714177515222909611473990920615268014250976925026812553729337302388478993298721146037734121980706980715874140132974101392106049062128998986794900739892891885014524924948464623725884599695584516885077366038949612605136546995735460786889082344902426195471233264520713394058185028143350965507108474018930812124842482825658148285980482183772716067955687829658411915947737793651973800702609609310010639257071929437339946159999033783389771396768989831068288125275105198684136144929686341688788019412126992634725235766703285267433839572683177079573089415928590637749292319255855589214340205290804841859627057794830253288372980790220139347107280493470192357023993077131353954163914279546229087839698953674109725073218751755877118303812679767020325812966522003789610902300555876326971214222514566413067994225591566521943790975267227195321868396492170711732398995380895161780650543393374007797766609729674102311407266760901880993242181997472045563248350553495611196034457468138627363921641424869999062963011562103091117189606503709368010522093482076758790010038979844940768277129537946920889439515933891372214068430511428750893182426968994484246940410470934619654880971937642783530138543231899736869122973962332310910548298350245289438171268477282859363823852719465057998042536666747116874138646081480313167927076443471261958741979518384339884768438617672829384247641809061379002653312848032744713492176898654935204647284245322293056412875605789854361749509504437574214655698474101197616550630102369150780163957075261817420699974110651167246777991330012104562391275272953926395135163880960842174066402949924636850014377445176473894619034152786223801533673706776096868005166359300760403882098611343732866242791353535866600537487529363244042181510254588818839277695981376487339492202458625418154980990090505187113372583922897757831779500046072692073065428720737650846683354611642410065008678372095905606513866048314289703184291070143110871208445339311805878807968354152205100778052218678343161272462240476229053136922296323512786806793057917378431515394483105512757883407481289671255000726725062549388519104916722751941022648461727618944027163183172209438765317689937649867724179301215560343405066384005455555517887561758508401495292326999931689003273899587606345674512939338809748316576833338726576302629400296930304309289140462856472380273372526596540037440872114401923689930705975227763939035556659787747382541788651659457372155858027016333572909022731102397922669216520393759869576355955899841574602313413244648398261890894760219206837319022811970959186573989232784883401675122224522333733711165992607545487331917980386284336825962680191418637567392968846223243500694794404011699883151282017202542790328086622410986213781930068111829743432752710504173512819907026853399498887499896976883200370200689854613017128896474614434889523770729116960279415720370079136547624978355163151044575048748917069606174321194926911208425765395589753721165023188537400394612865952752348775641730504378698839148246778951493134287301084033805225140223610059251520310631459651476815351144066494645235330834578250226675165586291436486449995505794452420137249160697848104074567348564618643675235201649505326308076785329409692367317030206000689514464962199468383242132207008263064555256702476177569214552121055460745038820869449267175903748881199091836219333625108001330618954782023424238694767746681337517075217762241171212866266433688524526135650410285754973337323461790067993736879217083419853041913913552100328021405156571674499203597714081718226946010525448802605656038347693377855603433532056294019812258874779986950233066314328341430271262052001862368482123827906667546280231934854769480648676020094526623108476614068487886328307131303921272757032291716697016955963741528571683496195089181169338240826169693894040181291428377932824245367278145361005244779346526198133758037652985924272103213457429337172066739945854560051348752436714144435712474826780196306464399473592472176074688207210118418598418455214450643715156330098464338158899246587888475486002602796828576059447747867613020215639252484605342959658224772822806423186328482141991921651315983746983951225612446376533461998769958171996533828706295478111942802718385265516006220762777514622095766946526263316855005941406568623724449156306527216751139480282021985874071810802866569919636368940479026499603051519021583052955497135066325776625571647094729535241728461932627592910412691803815794680536608562686764181213524316306912902367862438156742403179971079927940051572306112238359297483059028205058186627583884832011707867387665332159682277639283453992339552624894544526277476690945453236140340640482222072376416672912876332250965234973182989781851886881382348734560699471997378906038781014851269822187408901654581571126915200580484439366110616298400284508882420570619861686894012559455805367756619527586668761149625564484184406123087251015896355403172904754769519221455138641090581252081050651279175499110278115998290076116518307909854331164848501899792043603625901925331926527462127189156915865175252715701050910144433210780165386064564001573946924721885596170221320535897502253691207269045435458539923340410341972446061511083163685114462236371193303454729736437638478912207919922228193789195368476587403386203575307187018690055659803245213428157078605841260707235894420913027050079374158487747312277171231742015113956501250935362808800564062260766934657319593441962567070844645468704044513157815816344217125589297698996585680171003114394827125893157645951353901288284580033652265377895153619076850639358108670412079486974318638301059045982039471267564883789098004294731684386702388221876212416208532874544221887990362452723687828182747273832677863844497878077592028886652456764767896221756514928146926742834072232260576621374634219420217710769959563605496352474588270548299799943013778428050420860956206111870708248575996580335752337972154034136748971891649110199722364891642555080036827334028744984618083066977613079348105688803406939633003757793838114146207114308862187782532050657460174647262596939183700425729664499273391805386078931317546657259395813447424314433424645757969577781029966307906651712183753349937386467344996288890600013311511931733825098769641315117631041818426204358703452919152815941853521743808654690592424589979472692532130150893170223580499455978193718461598590723853101322645274319715798211286558046642624917139731501466290989478801966540099378210393388565542659334798287563582306582061525438951478156427234386894418505808113864342760240246860326807166468395729134770782889033057909915919489978639870001133951443151553529117156458413595303254250888867416771869737985528697811270471100567323397011204573820938807521421161912798800321323204198339805423636810349291157202428724085060480632675280906713423867312113859343823679822766178082669970412487220597858678687615285198306406744906145211044430285994070858645355972225960377792664228036444663236672951846416590491818721029708312377996231071734660084005788108578053170468541442429678453470285160802210304571798220592115285020595140296546191293788238799167929495273146160358260498910430073418638377108938306308418814882958570155110453141538555265650131507124966374027250291400511999240581979099530061954935500164658757534745480429713445872402798761761738602847755318535574878067557328888051818789518686773381396866316393830018817499899326320880497042825680202333151602932713532238584486839306553303295329001831302990530655501468357118664924385328843159687931277134184015582000008664612344761606715373870653508434436883832941543566763766413420286080976356230744348076797197758461006535637179226019620864683094491939474586145307464570158741755366444716918029117943721527439137313169988484612643759995045030448589529022326039349806890797784991953676242018875692176945454801478507159573288886099861918857556778145893520726692925623472679520787545282987537427500253309229868607156719061938542516032436749004105157790997534637810087370837023746177156094232190829220830753858204333836829200211022697606850823018587477698000445057174888293166623485019379877589437961417896975006258581204009484795644739292805802466738707908749517846522235436784836027914729895314501105914460758601516369463848481970499484037038143264116986987258064937647516904012977281457668117719451813048307871442534279151848848776809149346025806403498679137867134091740915963806350704287108782069068858771477682729214485144142772498891884807070610870002606785397093626585299818842481365929778894009808210170977893596960820932304300887034613028301886015236221848158753733282411737654856102840673589760328668593328799425536042498082873394934399430986943971514531296769877854039655025400828570071470924728919811955844259560580799795536600471862349555861084200784918204077834140096912125342036275862792639791385917437296579803053986757621091720864221357554489078875800018963484088132573624632232684958097048855661213240896788961781008889694374875246568461462670850359271900819501648947466510395030164850665893943393637596141493501619138375168575120444044448283475311517439310842611184758552986709600428770423291277435234898215192571309155988074093191261330138853759014249980602357541407472767990248331566755527393909830480122363208456531959870620244712174251161530873364371680394689510264017810825263694153142566999216934496214384610522855042820556214822498668091272020190719310132065589019452039219013942567428146683404536651315802872587872261102848771121555703044396729877390500821474405785615251025601461764940842883650405355019901376840033724576706750993411464568133766048463491153712028251486652918358141622647519139563817445594094307482933825382856613494680115341757523088359569982274594537218690275256601818971466153369874057365009480178507769715554551456238047811218848784824070192643843216229740341987080509599258734430634330272539834763704638068066693007523096303722522947735810285718028603973824036658014094698170821776486317291859469944736132220057980231336754150469717854476997996886773034368608531514401431097953257756933700940949009775675548328705785819219639134594260806326731338259704886385743206030763667618173524341058261273753801224105664994486359900213218220907720272021940849907825823304107577619755645752435328864126053247843202674222420826203725365017618742887169878866834183523078319470206085512411646196520540555791240193776231915206729477642743791049247272363281844891868874294312644604015927654742595664454831498663305630307922467389935262277950867997260592788793990185405551160679399673367972523376890291754989237066009515653947818988233124277205414835208591482478481716135079026090394553205732304336460762633771437323152937292388851146567931987997657931588337505717183937395697476838281423811930361558075288906645744997954967828051753770324089467226082116741158997391913560900889578397769411119157724271810005934435082527662396259690038754525107459333818303762971692029177356068058032654503981879923000035119807144185492340358109813654290320467895629041449668961782766811598148826324836643437031145759009824274589577519196925867505094738386387100674762816829573400409688997129582180009982863636674488502220119537269604113844445045965183787165121635164162852709011126738801370238386454440473745560510022693499506812865462493386523776670588940183959456317361468714321607270384221678979278190098103357307542895941135999156983972349998588931975215542344202830243485233110101988312313679397981497068935925958333076362734419861422224531522063629808239687549619843453224521833425912665390996879188161608243309447117430179169287217884946239913809118120357108448558568742424536499980896440752631933257733523527700966139285712794747151449719732693380391502089851302361844041849041187040738835513931008833318280948928400796831483671716131541488526293136340247486445647154863453351340055213067449895175917771931638523440077858887839500593004677442152777708135677779656184480338528819106546932181955967159709926003770240198978975272730977763002465901621026943720482378329673816595860912527002340677238617954523233045411296113998360646216172905079819536371356527009722533268958840996154325253336323101300343758734080880321896016441001401502664612670184051518930981382356227207216704711806822814572129914061329704854957429388108989695405794031730157001864818124316606131812091981579932771531863437634088621568275468508883528825354725398355210167928656855387581956781090110516804488339335812015698021468975998478586377885481931457184588335534743513117264174838445256465029091423181173504722738874850089554231966852278440026647362245680832022799301038125470543624220356981833435407477401176613637956324078374626449097973453275023131405632490510430105943189047535659730395221975142210210240486088604305652220462330823727690492791280105102308081761529855405486752729683505499894476113423298356104449761864822616355691376562955917425029219279252152251441811772144614840413374039141164652551619046788772641722416985098293304696059890547549951117207519808848771550878922919899216285550292699352442971611866990747097512004510956484799011443315266547157463670898047257396205672119460926038949047428183560814979152433726126694219816836946656678425497038119917255464349100265175852366846612646587683148387516845743323182377647427667043545546356805838837860403273150747820605964658965583382598794444229011261373500596686071390546150300355190023287473156347444915108669460308051653962276916081692670626244690915565637579406126632604245897620926842829490541783192187094096342668807371471156169357506792583696249744370614717152694983459051432719736000502316625796495555450479277866162511042854803666699890285462898135122966665381494560823807817803665361331332581027738347585729463563772708860982971247842255296224285044865696970406178321490348600199110183310955782059472378675469118427834770937062396164821989371196197453649596593113167307561747486424639435038519418927334943350403712489192517548472716265296443157476913098780002051940750278621740102270439004485514682892137650016823020507649462854744397877031271182561495997178210662116148187414256186195324233146566826097466135240899243785800250753297580366523344155818532424406422963824528154116796454086628446568165304454195483065037918587624898886868572573939430578573741399017364456819534047264988415719290342530829745129075616147400848384707909745644355440328404587562383144937791004614506063978207676588189411024198057453208648230090763654532457048954535518179326015316017163784110716484658074160742467402363358682335097198754927531247047046283627217441402370114139133516006248498751630074414770591073372455994413257355603912456244955905514326767113987757858781106644543205265342075123770930232183356528483661497407778273322573207912538103487389373121075757275014244431609329108161132528774653130665540041332353814005051919193058100428935243582491390811704149261114931978133488131627646866682666954653634536485903628072535098783767875797619645048828158792813848149804286563751428562434380003814665445380914999688284686931670942232562472264584598479917236696119943493310665348524026539565475721590603143712009272064012920884758959701195071398693135338675886888124133423940789840273092659231435906439023589610568953043053395754121907127423768380920139428240764546359090720650529368297866062678599513443491594096806746774538859791297334117615867692153385673283093478168223609611636312639373555655568357457684122459795939037462320750967508763550394289574452853622367161528898146701546019976773117070577735025664666029470868437374753539716908270625414453889756932191368485065481444514131412408887164762198242019928483029022726409137143341337504609420538023571542595465481272911552086238170929895239407179771822645964282884784623586305351042113065367347365190999673852282906617353826384800154382931731891253949228940914553232624584246706815206023500150053230906029487100137854014247991960178564512973058041741949447989399282712000843833011379020637191229006762183767939786648720026984821420037733752194747113186338431051119683216877174706921566235702191637578299646496291368878903746465737463408362727952662536687574855858194401839888858451516115951436628368222791513735202706679378979757900122547713291753837768011440781078747214486308914701642464026457580066901670529367020181134979398270519180683868690421505404543963772327942809807174578446722856581361481524004781582286065785339804874332800604510641154650672780575861812403928736910346085255017437702147641414593786309984851736034291168281521526875633592253747682682094811779233779216212570504479953017715632932614127161246572030690500039481151939986353342783201440286212651893287285765674603391527307086507417371148808080479498953360268794423514021618536879068830397640136134359588563323999233006374472472459350251132694186884479162656857016441362671933229617283002078236885275484632218630768212529641719462138706334526117919449462167843160188143605550212657995379825880259407278156013472655736533073588151640110439718053726244974825080330531563036004388394589137218365479331771436275562136896080804276757347079508461294835794211995425837354615521959547034975287879862061229242428583799817255811485736555923217800213736718702971416855131815628221604607434076615601422040557580832476637486936756104023204567243558347284169071046637103355875437218720009138102430349118740663730471496367180056900123150614784206904045874258462972343834419493605474950457192681021629921508092106466273910829736455081295939569833868759989045582722093994854983940223547512070153696702187181225128868858887782976144374925426815670538657861644084259527334575478643914607558362180195780226366140896351549813382655752018630565833862245420019576055233627640813270091683802743077121645801562800795040999570536315307918692705765669027314402749087947496550112065749838487394649420603379931178999948488691895737822481245360528626640253247417498154891912507080124638480262028159123104848535252505202752289661887367442703304024352326691481446390472710640874540194507274219006926693303330963623654235704003287928399393428515838129804499427763869507010552498408329812077083917047513192752020361481617470535309152553802477547644790912158402062062428496108418848309350074098637613213548044922628921301954261889282201581597426993616773642923530342772075298990797934291890057501961128806611749252204038011570366011299241403668067644132205279673368555825581439478767473826374078976125985915879010352025703233755473882101706030267250398066666144261672147096093539597038205319285598680312437429260575297161954182456692465306886023325122872344523148919048943136123570997000072085903869187762573703368428950752408818664759688787315468233079919744247241578107899735631931033498325624620667418176754563831964909638457792278329487121104258331041609806749824769643071790930485940666927047634853811899807696405032768500044383400620655737435187299174165366394608050969262646886639514111887928495610180663857848423550871272273287199824838426312865341606102692102426552065274152396465934961166417989683212633239740932352170154925289206090586660558088671454835979356031724164575036836413352695376079714045610762755753979002575467940491356448886485699430444868855598329084369313313830261115942783405763162498661714678983698445197005319406172045461845374409283982727284173010814552324123144426721220063477176650531074129825150882212116497275940187603760622363364651357913658872990618181310922494447296369810976270830137287424257556515586434633456079317650256402333628048438492638613224220868168154335552006824669226340052971532201298676434192102959304773938933516651566108751768706437400085678755881278223562776894843909618024086817365155671386717519972761296062252569778393152200630954086682414729188214338504179050629991513194191219568160563785927285441841846598649141492340881727501353518834411352735581846742274561843993383766445318943653815083616418420272531179043564291063713038755272803995210082458871718131492227283100406986560050190599552843248624785339108468520536001437266344212073320198650502909694476640819486570574529931030214391602355757998605187692510377186391084503705248731433766666451423781825850287113104769331819572684761758100586111983074120504017154956604440169932628336867756431310860878754432815705596667725579740615996036025906859317232286288880110278086303330147180498759398020625387320888674302387780226866142791750991811739000308309154227509207685583235028300347067878787225094471774120535487515713292348816773751732793961444962037325753547666745093988807773710264578707839125539062598485279496014708311251399569980798013893572528880543801907015851266872474606636895754760982150623959664042156264978196511889778753278902121558964670430547012890284739771893912744328473009718785059470200299464975942982544313946312037388021795016880645866390796832048452567103010955023916303015568771013601818036077009102357708070040461673012666420079407462199555008911338528982988196010369602213008986539171986390739286089087649737599287986466037506452142335051705548014555919429488901722275145549680972345155787663897350173525706949350709994395318951023757304960351405047500309747605648310162814043105226732422613708494717030397122866390211941603893433145559816404351706195713444826667235413439709204496111067703196690967546076503609465012992006184985418875603206477448475662571214168318324260757193447043824161520486716983466177655898106651365223780910389364207676866349716244690708351462813400934859015273284312747107518451986678913198362123967411632366595520140167576346179754285084026412861050700496198466031794076246412197150113202366443026236110650613879163612809662960767666787070558394249701940649211564823288500271768462692093806644279297901837805643566785696146351049944471076480404136670167710791855338883563883300147703031122140228427251233902912767925487942278667675587067192024108441099055280110811469606373839835047793586734165057154591614070411344182159135108256088940357934170132640209587526432192913891248580091579090680005979630516260287575375873086880434575646622460722458474066824034052946624238192249507413362646607532989872888965167989460886514448154334603923825451586947201516470073293651738661794941574796589412947857269014139122034602813672389258580016567924670285612485826273319964050978075404150268484774457539586487890949241271175796142674358499456607635211642500801368834710734424179751036097605944031147133943895258630414443278570882575361687918402776102331666332797474191252208879530006729623762401653907554297412636361485750770557481363990820070558449968095980713366250768493513369116708923049774888734985877466435359469538970834569270634132200416492134143664030039928403342073924771604115554008023605157854136449735881754640220174264695123867256554866811904388012444053563045375441858746844483319288805680936927419738933582242219134184403916895865150336237811623365123196471875284898137035822988786577898554142151186659392906429480646443899151312383767789080422544313543539845295252090627072181907005599036934891760608925350883202348090409031966765280533922474767791195138646997385600435448320527026007145064470083078473575906772777028756221750181722439213691822558580939131492713050791000665861383671616953926715803173153634778449213114752138729388230600523956257488023677665862622035967410344885873134019570989600182554650910410192205824713298936184669437740635921682266185760179143077696111014649764538722392044396501513174865845043970463300476517699608300729374366567023273072894727678601917544838445357686308661803199425703344332144843697483453676961499322284588373596973078913483826135909727732233695417272076663981698011487962179790259481137593485176689235071990735256751086781691853450953278072318838390460534266715008911373857901251581491854639702192264156215701515981241871104940661295382385567315486282633433684889918075466061982682657233979134774847874192251539525634464476272488926478269426942844388408792874686006156684874645019753620780940180772479124151549618052479132742145511722536134818950269709788739655818277966113046871168760552541769246488141886029297394561583375115589386162092257209159033486815746503698027020507016418021113140883407049557836730560002175690589711532359426346510173559423241554087795164320363191008754333149500344874864078981998276177498615145217247200844569922722433847540315126154120892547667309581346311676926524128275219358759644269934918087065986311702680165459303628854597870230247869933160090413366294242699433183559072369088368003852028048011022732858007236200978892819347536217307286151827187371067761997109323346546389106564838809509685314834227465870639804884412867018160345947836472471861858348385311316465900440722148571880130752011059787758956716073752652683089774560700273242320104449894491066113956515862633139724992292565656631633649396302969639230442253596910135126799612920559278001077490690983077880481719608500561525755561599944594981176253047246138553507993699471370148194273106522120500920495381711516592552094537029616060405289317566139936943616160423134150870107934388811401311541536942499223360440992989418127925536455380233942434130990618192675056231422193898247635728570012783834095420879703939314275712007903725311068900882110359860350742728844542162298833852267886865197633209915331281294093839067748388639554787993171239702472623946345539711980495039783719196390402600705492866321487411178472500384985069067799335441701658016146899608270324380095832146050217435842302772269084980119725152086047560598131421212230671267073430647415439967578436945512271435340324996146721967609493317725826522690277402787124979996595929260710242098916580897637247987089247379651617258970940123213746614733540986187734389348601209485521335324337971867562816304572653175020722072984955808306076831505656230962987270910602376055080335664851029886236879730561123050383813338232675055630048957707719976262192494484877640745825866123030894787602322022956119592590739296367663718108428421173183182478570257682943923818206446007035508655479350008545065904901355629737322151831538470218037660095267595022294692371269335226096019874428464441117093878767028078764980472066237833687568130967887060056827433381512668472850974041831997050558098694458794097837968602551190624415209365137800591509741327474263307877069609706469351267501278567670944927337874109679966271296825796325139188685812678754395782732872895683067086637304493134381073372214320401349804458273458056532684647328512868445944749758440795804559000101747364814491659150089054345979196563016124169432544822732793807897034072812277262622317457402246455237198995595235656931554836852974007950335275441697133721687580838915619782214349334415643067724341188463299405441234277526891507012878010400139941142636007967296079860286402852419240220485849287492282101665229421638438489542346727382311466648082610728452739573862244746689144164908497459899129831513361455911002703939579279215842325363040388331021703465071220479773966696143277838015362006765018948543253831566625320906240927149651413671735370529428627214226745713899941841927327079996333104449781098446686276778418854133450390305924612110579197616493646599006729208391601092758294499894548867849942159690520936548118244401894213006206171134156235114893036742282173852108597623320850787761401571992923078437421656675028483064726831696016303796667333955509355556154326529343548351043230669449933359099555114218718822707150776417861831237793735820736832610727368110028529018722911778935755673261595895460282863047599386149823426933774463642000428925820620761110300668460291610996541502021885566423181761105705918074896916975222295458577618461703465306193798819635410779083127221130308270598867913886425096617012662475369966515141677363459426090500485622216438826558584730620142756636971931796423429282315787995611229192389000320515019432956340940741520999376617284219402096761073917175363230101459689567308639216603063395318630715950760190943187941580782124812327268685614855270458420700940522793098688971589093733016969402737526843798331135406689910732306371718484525437470296454304530478425443222195613234363874487981298422949663274676184744997199399557047157728825229563065012010927192608371838718919485564376287652923949982746706572140341581825298449993889501852013128169355947359895952909045121865348049579047635733576132230644107383415127474287254811128747728437823618147727911472823970073640600470250674816294768383832354779484308325976025747679204808701872627749597492445694538173665133304932762522809192324529027359816858391430123374705180479203862042838353241503647415341472336922741622736180487850532470342110249740346067964970209868166144192230028116420963386453850220279398456261891018742300742040660438887730510575738323193470184543070662482236395588371504345469311743785779999537382812134850188403421597576529207200520660304488593300669513630993531035278946383908633557089251538673331150653885156108358733818429513810034492105536224441656055681362313007060730263306240301005257328285891798316953510934831074205329568497831011441367191766112303882857353959344279217868777719768093076954029250447206897495592014868866651779192273867128393773556898544102473668272315170049201233015391786272065813900409018242502376293637473848873140694936499738607722582898853976839525563904185867098318472314609984411307591437719139807961172070100125798361879147221582188265858823398042675421745178309174310614893385232340666834968623232693162451723374482379063455620121852341040533751715384433093876967353029977395755704205416145923530693636627888217759155934433633863521525318893227975911568149961024867189866515197636447760351627648203456877162646279904790923681770420947932220628959707879113397474089445607819296589954611821733002393794942441588537224472046034526275603936220250931849282681526878266161437293750981523010976132876201547749477070687852706916820212760511647707973542093563316038157240524146113558358693847742778847058925307060355453410521044696335757281761901188713392578677454193653567398920118377740360212700317463556106188313893086688350203320151204594869942657296462621163387497566873646505273305214514665296385683659632445262071127706391431983173801854174463261869512629378223182563835662754679593537649562665195105584356554799907512097326407194246749871697915000159545080878293757726141651941362194242755532060123010732743944524681890363593287160831509961886205971239571237598255846225900204175532683013626934916123635197161108754618521612512046218155494309928640860244732691619524947998795455450618587638908793269224832439895511818683886095522096113847541504283793016992525904214025557442638234940487222476463272539774195024193728213126812639723536535039295184130378791504823853733892204283931189663721763175574579354796171012090217721084366665419513802110202991841758107036015960627342857374565946547394390948484143491561763708122578419072336219281312312279712453357145878543613074162872658996714340794985080573210037391678746665180291871198268931918846911285626277626877037055474613686901667814467385206427420213422793252400122021991980997919217237887940634594738766066376446809924133894695399841691055783902663239411613689055713303139587147549713688985161421328044480468977104959301451430069023458804536503651339080351197398871678076256902455447934591126939630536771825527857146141170732052814971821493551598904454077420439937323425722295338470473136607568115670481151295152882463155718062826028928670187828264218081566309424590405892737101719156468511857249415666242479972665669161092091739840241345720206896947717470630486604010572772380242599473135269891593306790571873544608780309139028024924214290973673970950498475285851704435062994555656545473749633154552087275233010529532139144926982448866992527140374763991881844385646749130712199916414460127713315588717456697972657308638768736032673133936379684133711265888845841079672348217368156852974679684789386940539354046202387199524300797327323773956478363525397681356004682062341500200244281550521157578351473080696582595581862030494135216160463765178256946144131777839016326045452124807807780995634473214929486168582178061300321066298551641369262545269687799447004421664094857896357772388519568567942468819283294638173964727534597418862635403759101011201205927497794495442692096196019554939527468132267077077422183123200656471911716826652965408996647936469761034916321340223790244235579458759962705520992622948383569701218684516657665171514691017291228578773945239801398417527064601090840090243439016799121383634251190731483301919990230640844417254634884587388725532410381771401949019389890520468992063374339430845876664883850069759397582649810018297409800788196326049532108367440852759021760101889539081692988553251254636662901877828859365652520454123646262483339333701839189972416904068055081182415509573483147561421272014190322934286958395700590983509197156893964946419507033783804141972795086083492923281962432619191265048787339632915602642945520620014686495974195583018145476686575802726850289780553987683175802632700214688379618229785564134676822269955964493008285896590115034574146043778688121384469038698299426560717340740692548811065592233687884966746196227792856958795339640744629476543785958460017635078218042936896550963237144408269659316543196339769606589455956068754204851411083712853720528830651434797240572538789831531038355345353798282936621946049622547853885673133208756884243252383329312467465461230535705844957003286854632699665939053017937061361331223301339872961093292593309691838866294653621606247237242818972935559752997880553836718862396818193713446314539611679871891180897262888756813872045294934842864532927399531325391989575659123114907160437099366581125596170837650638474180815209893477883222016457029913114460562471795272296408815099637997281526281890729627846437869126254211341021616117946591902216190244832201742851243683630817614756241206066127278669542343339825597204295757487160406778774448682131604489081345475110755025755235823447481479559891226444613901412182125797390479432587735533450319374557520494992708683812437531860705098155392658390378739723274630863919442102153202061565966103036273233454132077314774904562861626898482506679168532307298689066999571525030914491075783828868323918119713320572479761480931269062709968347732425488910892936446634119079712644292384796025344478487238443379892384903868817718941404874798152200615902373540594232434559889838297849251760142227875382606001759770988610481931589886191075208261615217307317190189553005023153225650499982231093981272837701256893165353053199598836619751779229720089480529192085422809522777645801505496857030236276636478083419511336507024557822891385990236704943394829620370604665108469077951997176958599436915218213117685101336350801670026828551237417448642543987381070036151013750864362876310596061914290364452399047439959067370682285651154336702112824354070890982395079208213462707186798691416454814847626836262563650435161573195852582452025233920165389194553184900541450779706028563954781655509757574829778840659173228887782769301179340503713045287221867316412137632881384807534672615090483083798141032542527061694049973688000846742483863053716547346800362711732315360301747616362680601160294195371783752855921902665221276234273924314833110211316379423205312893077493425675744757869881747664679232826098756030331277219137119420797882341210158483361182336448150831427872592917791267001575479857105334151681952113316572334495046092357695169964382978023322642219087716156514149055416615437355133604295510813492913214983479338641036915989216299485856759840226873831455380605472045686089953012031140913770984482888447041315610965257712998328398485946591823090670504168393098722043106402130946379556034439594190038858100312128231006933728529215890106941676811065053661817143684935922757094122784354609940005029953959893935532579269908609497136344435255959837348174961055072434104667823386395623777699950192304907277698724443599867749226990729569283603480407802354876992729215304853135385222382966956605067715247279840523218526297921687787652391333054954195109592917447316254139409692454962882750380386442729308555693236477525279612450485879404747816251328686066181986119703505835197230786878888784930081663081414442667521074562735630443024787876098768706490022441741428876680523678797066115481427332809270135666376072355997573063206413576544869382823723719243465913054246029950257438447547343047481490266423464489000391605517643499248624886853812753833657426113861185724930322110107242085786818522710551183960226966216618402915323350805936832351489521068503485549279943936657382845990269030330919983594770757070856599693998578775503806880214839164785726676439971838557157608668273181898306517767933846211469900438342882890382289981751047582002404922943319541018979112953646610109402299506515265574256282444729172053587074046833455874802286274425636723827980801829912813294837426785825834105236799557072482479507343181843665672987230322560679891601329085121772010450105616327650102170893319121483465500291757106438219893960194358953820455639096576817944505470010475671931017889015569772207395446369874672808492178443264268496944686916484731363206618345986871717032521669585452335385436778025254880519870721173596278376198594829385794514237182765876905756470969878223850750232996410597095130213839128849725696425539609932965640689079841616224496244666493594107957529439939188763724381267183128744115691188061413160110922243551715169088485277073708148543997758179460944914716302725327415794383019377320302149473425827092096461810029314692418336447151308853310106698718380926256411331093293417423795267849889283066417302855559625062022244324512157787537818987830029736727949929485491985954497629188019755417420501712629511622665577234777283507452776588677174186348039353075874682211795529657172099608236577698172230475042631614304011653540822558032945468944233365945104894055787337961307333432177949892248325335945013807856037025417013550166012390659037394184772862879694281591265930698381602051464925011691313794155895618132236711656884134236109861142534316945152258073738785311895196567833613089520090539857605429209358521474160960959123879101828842196520461090171076535780605376062794957947612787739145971604468808463748696876931674432292766646589507399592657388154560639428915110750734824850094631375461099390144615636943751190389202295773589909714336567705622234401076424871518682554878799362275098352821678331105232536801193326552221170119209963053968056297325073612891061082772771105307647583402227904037453413958830237215991381474035668541641246862213636810102457110460409774812901398260227149647382488704774172548321886374185326184988532412688880168027831990730588406778362805256754101623092027606085605697231533391689990273596808342833625067986907230356084834021848760144399348394047726147229073180666873553944174839342236236299886765202423285520192628022555703870674083765142242751665916764043533308949559121847143630677681389420402412204779994495858165559007426863980431558107376234606511163281892275475831147909154831723865660046767160467171193311110585683979735377421312643821214577070412323458939155013451488659873196849336635639686091283946730791278675013131566169665372472870015813551191035480721448543753050849435435391640220466573539437521292267723342509269139221155368503769283776138233989549806700115136649940327032928388293820059790016538738587240994580427206929744315970124059241810201392724802619646582091161656417077630516181917148769016576831581797737751763176045506040632828361085139393238582098066793496927455130163310971813510264725468092320696278214802682803540602405036798618770963603444567208652847211203791109314100419707367194613287410790286275052916628444701607592486658269180319517676527280880826955750333264667961381409959757795094918505184483493033786629648333479241493593830439489907191180333656095378999135418700562380693767514808522656121210328775074110477092728573565820855603056574657971707829437655902870268686568228422219042937872881267382739482487551580937540647862725157503167071254167477756828833849260381553521833387083953177933769776144201784128735503158302359672802451020630456924044906681657750961787131189453259407023915638327563335793579704881451887512183857729745271879848307489799014471971556498104343887199526864806206987620222058109657927863559568147156536717687880681391160331081053931919507251391945077929424851772708415619102407901203417649520649349655012983980731457425365163254191338651109042520742706734562797936048242311653281253483931216628251526721774987356733258942122996222223303708260153499213292481482065961597092396830634161181233193163941838005687002840842892082618962607839783302826884733415508764585508068420419764060133579108514778050014807896565197531344324525418785640321687879390985802109265932690568974469058453143856901906912886934839272076920756235348419505414218865258236025118673877623429360369630429423992429943912372856372490490485351506050757119155666182397274243553027992868615623021738793802378704176543268990944197208322836087745571062524710677730562498554384161654372327277512069821905519409345977790992661739047499494796584950960527817157193980619854978935697956385222532054270188760594261002699866259574122577736723867169496441430757359588496139596814452194282566274087264800154192197411397048362338478723865741527557917046974520259366559351100535649789072591116218697190307238394113107253846793654419483643066917696810091207174087042258092137334721809427054916878374836839449017208086353495076323412959514024693909300116164175237660430562812324492203817008571989567269249240151561775497615423290111215883083160061123538234891075488207468859019725318149079303084622446726381635152059016053719585310664324161553301569389434238434353952166924616249827358199112718776018399237162582998330103506629933257201989718958136118394072934530190400999848013974342342165437301322600711815807463475102149809872767041362503362308730134949619077643424772455829337748682851427523052287005718072471310976213427839337661865342511032113670396008278244738763938957126711884585771139836592607531833767492786855599404313551782758933674812838189988326760739257275021198743241926873377087663006314964313211694533425714487876476851431886837235485854802798531838717379439351476627835093465893285853415786210148591225939133962725250429793118676863192548365644380457745955008577734064573871890987468650386908601955329206458377953060825312903628025541473804305784021160565931317428359869526023655483461525541833479610682072519259855050345890454697330310224171664397349870317558301663593156882666990335609656407814283024827822115573852789662368776967136299638584056092973426149622851587189845795582384990185399710160469400229919066670083866673817461454380099151566065132090731503664201841008024768476599333282353968291504431124576195577940116745576601255746221663028524529830882257596343365972106362895222394670250973167064343408888410173027871791415938960646083736844737225614011485253171711385690319030575379309694558699248865051949765479625895250372054358940370965189907625348382226899697125136510724686436905719755911240780095663383811938163710228569663334464875020302626952576293642723590921575917936894699928389210644802168441622559477562292149700832506123483303602030653289118432536221340814154559604744347192366666714693854520330901080808537751723518096811395059627773794543024576609137027378983333778271741630645050312410661861743419387897238738126390449953539478672879507541556484782638846857129867263005063555640953599507954037075148762262949165798896385648741144925439167146687812220490237166526356632848111858744979082590039106763104680279714093411622558920078202333249530174972443930342818105629752440642804511186287628304375036344561685335853836902309037263220578835422720899186876457455615858195390826570155786129239129428424276565685433823633970840257267130200602561674452661702146152077007168260970360749344170871794052067410460010715026488261385616166720934608593491917002981971542263514207074265959298590010009583153426369472417754030922407733368655812354489875861239681239046169896616730612675823989290852817004744467542378229117692116548462421550045251303544940819733891557715024687699834769479912663992197750404500562927095561872265848122398496725012579033245662477823960175970967302642867976232829017147841581835603564490193472374433598658327098892367230367978713637890289972766074549785710387066328808352857395791078653121002217140272793197808934329435465771549349168461618755648544144796582313004316543871521703496738398427178935063174714146805528008949487970558944423509841094106560266645552363841026477041971495421010892492263205649029638755007269556449791254523738777234944013019194722978753690655627942823812188236098177907858306487574103084488446524785972967180279124285530743477217929598790219982369924083356260953399949253121506856988792580626602000312110671489549071879767152428037461426546437007965189043971856380450218666847413256958393143793231616422611651038726405576812159554825638254506827907981441435255030831860464651230232222116139112947074794804950806227463708554986136449316075921707916414696350929065589536420977700928597248207042635638370981109672884475486150690179703192481883187547011695405214399340491800519187075327281792945320889226950448147919648805422502653851414425632042015728965450001236985362586334647415475035150987301248876170191228769303103195126432553553748102957081472250366666712456201207257338949296232703549132784343046554161179447438033999703236735087840443200104768295032687370039145155238524540688731725470209955617081555420910902831324433928858801233408531282752190676164602548427309294595300504514864127248014939541586024101694587738085051511332932137322221155915103320463457519940178019830709067897078661113003312612423159589320495521137474002552443821227478997918169441305604027037956294873532456705506805093855003535702122530849793018209470267124033742536675520989763995397739042947441369287482809645396092994398992265308261416767860432588894275091235168319082467676503549095863130153999101063963470617500649716380365192387253236267751970134884632497814494566533960902278659916156633076758737291756704971163427646461050746850620687741685688967689352722449381262225499756144976420235795056120389347664698848547213884158701973798638962836166965443032374866925357771390054049725079417220374906679565483555162183338403502107220133697186728974082736924588452478782794948235512766350516727958446098712467009080864747597968547944065137090028229398095650953036670863456029831668450168099533231808576335255739332876195520646212908236879080250894242180284576846763534090168396291467427243678903606514451365353606725098974607618699667684471915401162972356197754382173281428657991835266045276624306955373216732220137637979803118770492029984911288758340289578983221272303476355980093855417058045861546466252883612200515812408329836539551704514738567593708509933806193038089164948254871059314433110513108843612219133463703873476856442630060734406417216459611136393629209477782046286075179851861982850034937680288117620934733406208749531285243565949967423946816676106446796422397144165683597772405586082120344606897476179997017848735680931731625349102138105327827218347959624676657424645359240376680991933062327915066767367075707735470421880128556898716504397795711050646795161810964339299907979471436292467220780197282261562221397626437276545063531620064751882310390588347098490410844594434255782138323456212270408153710585315871461330714507650387684988017503051056258326176648308307574849498194904154599674322918456720001547862966376404227147527867870206001576473816035511986681269993093889186888985893599068652814277043626041981154824224532342682707628260979547962934376324333384975023380000211341975531654863785003246979042054225728391009360895914889226623650669140925244114627878145257410231341001760575951705377489104425314590929812389759732465424092745276272293056333045479090900172957758910517325744962835906360946793735535855805081576298385399281557882836799688345347469935369597423694861721366776322886105274931675588837993677338877555862130461946378202678059339481107520790008803182195282681346686941101658753816819324423760054101097742082304378061358896833634953918876357908241170383034035925061258206244318706865293283166330006147903454243356714199450611306225967454798024274217427301805238329257036127127207219676627221216822813774700439416045066456028165631869333067125628216673169081001526980310780902021586556538973976335951265387724195823937559576822466244040443355859491215701031896903303426437762526934754131332136097087074352459115465685231399007499205932135970307257497431712690650877528543483698368036722381574526263868176820195473671320804637744059511336564742987729528786235739558034402273992606069369630968130661486021989110329908808669024042218657656369493147328544850109948104743402516296164557469986923117827251260494327171304169431901605234169145108687800740683917446166017851991739308959977061985844747160383472865885779505685716160031126325718919231074360357491729361206929462189285941313746077371645565271431864685003130962170475377721935044537101271469122234089718511500268463315688444700765772336497457678785770241135766300219688539057167796712090479988897641053433244303531716815626219546333992064173136705229190553311197706526957851919644920720124810739487908068477070368428675382646948240595566662461502556109568768393967909676976495233213327921947515546426081926136974109460018167877150069880067519652325304505222275575955526930545810188888403942158277546198973362649233724079494048149784044917407139166341069153751853356932727433101725837559168085508986114600886631376347584916710975090338612826686631821618267870245224439449369006909473346332088974035895293962042079179405083115212599646591394053662868053751196340074188985807056886739452349296670490627178054821842137948814807405409372315208325607381225057179988996109012890652975762658717664945012337737119533488142487154049986364123428082696869031891251479248598964609457959001988431282333468325823734324490636959444351294425627365077586630869241323594958058767314405731115736746956319273019657180520155929752948255311013695245681691921605618122111097928508454798022545664774700262871334277272334240438919637275807132652504513659895545503020269791488583384933583122213581306245829757447575430911772358925062265980597476237029864946056036931322603991214147029674002624659174944872757042527921601962679316870839608743149166298777702914989351569613465935767270198886992495241924762634589143151401971322573418448193082488757986094141222358495044246363328685082495292530665972140153701176035591324666174576289920238006840089237302078620447756817535838911498662647104015688095974075174553842281083424611721305221804286960877373895534355668169179041194997672531647567117952124981631952503712824470360633861453078183754401131246155257002794923103867622316866358144751117907087762326455480645560186522435226007946163522282194848843930332042738416527851667809515773812711747686378229575857413420554196126511265938569133522743448170074926196038743808559897179912343041351100840986975192969459525396082043154026551905833242594721018874171022739640443022419604894306199403251186404157159117393790868298155272378247633432561246575360796346678661319333268472160886486224607718583648067871721488949564658273020961786563165283804483216638487641234944319163388685378769495941253645897578125041677403320648390107039252497204258705575662193535386376446295257372372089827364885337474344103665029129123961201808034913911740260319528146770474962627205340653855351485437200056189380192130472694585697356442106599128733719854060917596001407378407091022769531686450144931918081980180734354693009801398399902613003157790171667738241221058696703621652607804698814852232829534110204045217741467347824789564182919569231976280061384132937390639061188641224476517158414049393210902115884322789492754719610947215615600826992754025234267433993642981698743032546730336651987674636766544088584557265704732955723869387455685473712914924844285889569054856532637100011891303097192272849214697274071341099214552325507267464168479886525369816397626668724606742912934436234734931495186369706610280783913837411363822010112238756161180994488020974701473615116578725781745623749577180906382558800523247674936334584779201282684815924095918901050419329792433658773271274135938028582781030437892035660591211984402602392194611431166428622786175468629065620702578878172326814325905200699644122289812120572209707304107933924594085328636334031635424561649213560472523366688400941097163116989900108639985148879761684841200473375647491219620028978764956696170997484909802922838977183534071878188519825267736086947916684834369622770638284343673177841894259327631783835013430431479571598113974490748902199670306437037770335984501706320030706789854256836751569391593238769598082868466026361557414728563642658576788092449228397010157392937932967144120971929699095768812316159438329927469849141911409348360891200524684496952377250894918712055015599597510362830384459539383014246734164048260215922145732223993476446076690878605471259541202847651148876544699519724953884362033918272072375516358741310591592414108043110668344939819214842738644106655454484685455072259773997884015768222553546289660769349495891605590478389969668373040789056066478578075832443923575247926747310226522095585365467568940779135369258092906612269043517769256646362294107926435489995149069130093953877178048728527752822190581197841259680631085828897631485850572924005271747546624176784587747627394398425156709681514329316719752485831428312206678634012873668633388365105042334710383632607077451699660605190359107677472716282792051145418882876167124837989283593955524866899790215456621428587219711881458310700888644965739290659411839755324232002251748109284960880124509738264626387643449563072020973576122527660873614785709538713745299390574826016391192454401601804690783499821648405076741706299640752352932409793000624634393007803548213786862236807591733183988513347765882309450272667118263776381512596745035914218387897294646763338257634824659109843183351925196173957936314324460443925233262479023715105002769289918354859687992814872209523681942474904666893820229172147533400029812363095372297555226904398102440932069047741378548867185081073433564071311412396205623660482275743233030300538912447061942225494474498403021581447584677343440433211124772243559776491316663380719093947817527246847614846830913799358234411047307938307075531831421638822875620084149386558307088339898336613222870760215870119089502988907240287660780750850830531606857447372086388584056179279649712841933073240558116735026370991123675144290100238760194185906298651624693122502645078419727795458055002910589864985787548269415553223223877397972181242342952929758333988275905099706063258456724162036933330206349892037227031010227278083291117387345995650362849058668039632281312773338811321731218925889901941752015106604934864492732001658441774419870413928673839101390898914239538057074237808595873958580258857835939040876052655888060841231460571024276511868933476532568215313169436789503376064793229201199567233682014018972304351635228574467985160887213930345773291690394375655087900768782278651693920937307499604932930538203316910259972251284405337577752612095954080647771242569949697043369412809344445144209527104470126233405653760127647977999287115491548438752366934275675203065675707374621453041463427853240922358205818532718080903813658036329886167604156660023541869098055266409265195992694111344484979416181872172264095054775615355652799683462671140061351891003585445306121242753511946174440189592845776768530593500719717990084446117188992905159233804734413789066975419557569351492541947083938974240618867684710838997143904569246518903284181462734840255232926348298475689935309141365487969937832674740417201628652455268277185408249020328220353557970998420301256742882907307100978288110192642972336886757407877542221596362818861763770794651265599983127185786428900078554119755162161414828081225196181872341361336759278909082681724264450736234523695068759237042195187683221112183653551385624723765442271855345861150156776956046202848595956481014047488172721589712995523397015531568406528294224402537459140428624310054657225812831133762159089024292411018593032982619058094273211780969358513075517397786123457236367332206420207553448654732201016047359752223946046313919166022153966920855669332896159748839232425245771168031024416566420904815638695775017109731671639738302712158378100566906122457107986627213674978389012560808575026079106276010571223479155963350637011153526351429952444088917503491584361634463809093361242085059043178767284297464700289450759591509521322905602794539836819107808533222132791174836454434744196375840633037102387171958440468509162945971283722512858600653249758395432010400916750178279183751184115965964850810339604324586253223403550797221704904658235519312761600516042320471489354065144262332225006016713897778870873714843134940758063229187350143020880399146833935039047395476135962090636439204424382352642522889478059511587915427996450256722272061346055674728426056130162613730659767888744807938674153962050302564666947128860042176451778040747837294549265286252048134256960894762922585220319250027007149739269127872128141689837453540946585380790144192790670237966889662923895699065101444735845072462160726698210917416070627808228761104964462533833561739594307622930263919826178631587250910177701052518302741618194884037922309620918184821828156804258702767935042606015314725560760707697984276198895919855051232134787382572392609089406446047249708923067602018990035246955685833604523492426047248448747292456713436936743975252971823108665184851904506263068082086193258894752727943746663173947938559158181548374387477908753771239876904653444287384061490550185907956844871897571114952926843312230539524761694138415132854313055097326307143332118514213236060933601386327708226154958323976081699520025177800320471183006567036664501349243311290825088261641815352709694773109169952307226946217118556658375027284158626403109223061607823303665033547087385619891680149750559058133115925527644518185729254998889425385941153258761527754706633827990445688452903220893940719318941900255775964602086270628905813366033388865121969754190387035209705411172662991878045938968040750134710837739150025745321737724577832661460520300152513004741308129288206744234945690822143001004723414046100341566228669771022558586354751294015601803306589163172006907681727259660340367189720193442885070825775853834266090656730671063222111440983478944636465111800179974040322949320436292972898439082730029200194569525291516264594990215832529485260953272842506004436471587525265473508919467239211104883527032150247952447552273849932261593362553667422117737285504758257595864625649643998783399005889595990703679565902337179143259548367548173352541634427952740335432321021090719686388687226251917244638249407867055871189596976476574357059122572915217558612974307140150457005424618516632997219482139068586718146013671840390919837611597026868458849169653423595929286653686414991544461299962440485238918261052929996225426172005044199477800233318793780036276100633057887595792915748095443621232429413343940234267347626303542101474696629977208469036869164419769332761760134340563966252304908402537955166695818030948684239373872289885607968463028300984192115103308641213650784783856161269712472978627304355480520752108355269879950108391632143551978406119822829234316657899649133280768507383329368720195866973625045859221099977706227090268276272024097200710545235009406535060892608485600552186421447057637157344034973618781661834557900426080285118756286598929327757139773595954047948002788808357268384774530031742188545522313471840427256257124909178232399856570931437634061738891623281734541033352587295395203733087211243632412949851369945155188139739842982356122527847041936142340442114584400309235821851213242625914843840576589986316927514146876844918552384226159241307747217897457480502990176307365608770562967320765107747375496200234515809311203822159352209165615957494663009272717988289293022415660018960800864005818144441481514376090244099824550998527517872414388866588669693870865782553688503430349447601927697314218822908731238652323596700562894602192903912523784347194518860612534805239194472331356795570289272385747516997842159057456857394888560796445159503703506716943952519122241216051031089901489927296769473596476715200507649251350453096993065903906149793391380589643186011745108478775933124463819514397216627784568630837151040932355262271846318450278467453029802039378097949105935979834430240084138725031877761951582404482406856202758019710681022471565933490074858659736716256985422603551716001406363187426846593363005915710638983292119678801549045824164696396998208927024125275124413513410380956080098499900973407357669234652041723262368878515441005572851130479514927220087489829036968679928439721577262380391968362237010882810543460319633150587685038672852878562925782796740610796539243771032303805404716419323680519753776642089930984777613590352382578013074677190769831976994120412869584620985222541916942567038744571437454114733001307702504515118034119258416533304199205338973013252414349338045594327230376416380181246130878499535999758817229662764553758183648158400479506999385867800289278985686103971544583033755831676563299415912300067185573593616697426718421078625388250571161925324973963049726278562735960459929874110808779136708342141064460197157863305906342789370745305332439571146895167251459870078351169974347588765164629360453032563070666314281710355034804788274108341288171394869152735274777941697175784277268435591738081006227550094992888481273009553338308759767347407448232296789907389468705675857903514938081137721663957184835321072803232559762503468692022105608200878084522852488190335126473747013685213712787488084169918060884194496763984006540628920714005813972827910165194071328865532753674501447667472196274327320068400115053336661924236494608025746271691643639123106418422295862929446544600490732177973278560875132566919141040205464215765569797755466931211729959012640545199636368315630211371253505275930902909877149301815825344929115258828744791900807253184267194882657627043871109218824411620347533516962728990120606809670770406796134586274442157084310425928061070616546960302117970332831637997506916785332918183232242710264470349700606886220245263861734209914256625307260841295598244113624578716037056036316903917574299709826588992850289101873161458976505355898170677534085491893839324827768481480164292953592427079528778184426234608230638661876438376320378529396681324516782545624976820761265189879704042183010045291223982598823050387475666014610054352884151160842647538283668817172887761683930184172948697187886614135884001942598932744273186865173056573899955128810547222119505863613559324095205500461272493438696792942360615252705413818963427865821297703152503417461905132755961338592669192938054361487350184125771368091518845025688118721194090999365679806459435158223539870098388040509672227193012735205811047431561377858017553257056462768874334768221542878335596750638606894625948207600397433755695952429647268495173273463704433006884807553064285074400565278029261548964691542855012584159932634926455044249614206610933126301490834887325758740042263513058655362414388053538944332351972064226752048906248056096589848152270748712262211186364935987446055760175891895754791321534008695537644432124954066888941274061845241188948300607864300124818873187464866990545794228118435115061556418536135660472952698844779849283547283416358794869095078308480255487169033256698714962018201275267377054095938707190996935861214672376174805314046731631903055808543868311819873779325679621613072248992329043144465383715956665504878648579184300917626045084489471792141154139458542674269691701831054898496665686331354842252322978274381590594540735787590513404536171870485034262123934738166196279332934402509111891331830950708239260562444695456836016258123827287453809857457046540701711654167860193137230382025945425907418986909522344004327359346219532873943256169119007500958187968120003800710201415805237791782659411819360586815607395597032711364108196522686867044371070315289296946337290666368157160638068157935951509831532232105460817612977293823711416303076724466063502572786458085753294166220183471278243400117915908405429289428220273766891109111711951612209603840234631731040671212337848873662747515214958048150838250648601692186674669982987493234638415471558207983170357405338167149062461121718344426262072827856698585371092227218982651453684245480804435877970399949918237970144419452314817454533610441106667036061608590212990420878441834408999521110165257463572649656078919477950731465470172465563016908227619812291431522455883865039062113035928836745913711857409585131165519954274295217739089387608653887124168040722201919737316177780644729093526610450792990339712250942552496555615725109695440150651230916052022338540609190327949753263610772824212350456855733022687233231966879684073385817203275432726673934064201851694459086899931231542532096410375230310860920228660557114974343641823783043442730694488101063359151027280357800516907150295519930124164470203366755620686603081875056376513186273174099584745708342369597041060876591841036667701626116855649135389336277368715759716112883470031839550936091838784075686139468649098222677545698359641875538685788206336606620873566001682715299535300844977257661562310170513476739763932928754612401563763601286809688973011123937400851521750185215622332055212608832769931282793847358405862378899307667685571959439901987163621511275931759870462070499741180049483500564507812343397587130267431141629418054662500186044338204560527825500588578819328691491198749900861041200378924605165861653702228276479913586311520066128635338853808862124509853393531234959267578908199371156437045971526907028063618358689950084628183441755596629787836743536276960451223840738479422989219337638116930230134981217233176398607818756407818794876487582222899200862895002807877340396522830041075188045997717183073335322137875148831520212722433387413113971322878829580917933033817209229561861970325988616140303925079882821681052626101223800928729519577949862581895519213831164414077510304404692989570870813944757531091658701284293139149174569221455254869640125004370274977348357089060149502521530306773012480917783059784067316464963310592872300466381188479719910360477356004612798470160446672805576050901905211916873007385280950254315187248610258554795907017805363406749116044051287958269554403999880117239776464907880992989632795228825148170705135136627901496521435354486541872074804681211350235200463472768829733331314045765428477238377432194976464521137788272492580657453503675538238763761182411126937820352253199408147216745704653124720844535840724034878995091372972415048772357195664531680106981115227711472919343222783381698813970903733631824533438221208736897094923474111871169295135115067065129526980239492532202559055422791861306322591777631117867982101048317182480909325221394267187222186974181544903625977272509548826686364617142251619169651349466107791306659894381298020778705328063348484990563361235821414036395336921227251448690669497961472493447079552194068914725648975116484472107564670175460549413882035600848245190741635293443609175099324225990246357222589825004412734650807027232725305420419665565272596718024746003560006479096992653074764368289275069445589871785080986315515429815672480013313243964996607646635501803131496657475268140568032688513398703218775480506656189588935253887269434397106320612320537863000193980110270299778426650878526980180888143854144713418816868121296936627633449637241731963980376667986556357891909317601602195295658015988392461237604666012491769288624531965537851681785691209338352616606132429378182973408337047291131308065849500267244921423123285536017478806440889770729777373843498742169411065124839603360431683570957167907250274526269235041893442466796869889263420809138014951041540189997154973653914844086211043231829018177124094845196786194324231145677368180463586551459474099894335539106938079867030118752322567977603781137076797701649786008918591510881837938586142315651362003528613441700991422847403085135090712743706183053692622504639049271625861096068074556088129420260103767452055917353407766863384600508463637917459553076590558143375161192408902289642071405996625752940864568237626212186057805872116514642595099061589406690646762251941151053296035406723687252492526999715381014983585728990023820308515090501467053530939872159313596630370433862058046525757545637302392596322243445584074547561330130732388592053978053449168616921934725736520127309864458911776196302131430207892188028827504485050123329745883330571724934215271012980222342090576885148704324054345254470796295250763647152649378217844180840088942819065743115696441850520724135750761160704161718163072918454813859497121295052902455652663161613834407526053688435825214176919720566804041098062865137709627832410803642931194445972328683777952702137860670883361773362732776419657472865322032598188951126175075137299565572706309800299304028941873341833060725091959058448625318195439901157406128864812069139482118997663289831799866674797532058999965642920678518311267261964058056469113339651588648728840820847928503747470506134803479293439793889363762525277167132442738001090945325505353710660514330603148321472318054401892716157190992018236009556819377290322152581097204481422814140644354418351569625427991830469915445597423454984944414430763770939266050638396879134904465449024155989646816290576523920158750628892811717892794169029677168986412274510911459109232482256186449080960042751648158249553480513926005133517938682067921088197938902125874553877847087050049092879707013128773467538370479270220207170666285636154616498240393702049205612981536991034496919741340291861175499653500978609404034319229628187878716274375456976293482759242846806594736813026387726256177744580383383551250616040393187781895806816916411036794551214317082240233753574981995895245341147850444039898232049870871362925054147123614141217578765497447778403195067009035800003662642197463005348292144856145965297262080180945838878960760062221969997115258927502779027560145192344565702299391218756972216826106936287917527585211594566106825919544396705596835754075846488950657351595083386587300729931979909646038891204406397903875253781686876600694750035692013939770142053006000493234736054640109301405485327448504241472136207880754238542985926427595892211660212200971665501590972967261416555914079046034988354694013017391703820729192187930127911363265292714886205175169476467622976957294100011009188426307946260278509766427866496414733799041337726942344525097872417936187174945137532898107036444058953564947001341450385514213776515649641189830559177937426217668993716910592655011760823915607043957693830074919026011939192460073387884978250783892951846601744081198058807938163440924590334362120497433165567510449355855363085633357560920794635354360901870233171310368055247570330284394410861801237534144684134884871842623287213966529163776806283376305723492183285872520577867242007042630284631741095893728592173444766467227319657036643676513253913721318096941488000983547897539170462336698640715215400497412884599745758915051893535025422766999749315028910046341873747212156358798507867019082346157305097714964835875876706659837758787022439186450309829332993993518397677796098350181331224251410706748483673564385313871034321766173813765157205825325458674260139628790116833352399843421704389930477312468389678546521412994134497135346659126063730768622011956535592624988916656986821367427872250679769089970155341114360246439972837894615248849040839098460503273216282277996952779003408678625052797744437575037089744896168655923740913885304483594923646043148879598165563295715899796200622673030512190703708333751374214857844962778038123309293163055296091063243150375706323141137851386882924717597137343359723103314836354488863613009217044588220098509243712249427732669804322900069114861049621440528528552659803707712991283084461244224165691532922307493423757376093901830215853906489316604878426442451906065388649705730616261336560479601922905711200096736931184335675414655218875110736776014105879318565455945228701681571129617770627420733505048316060422638274860001127659554845490771560809803818377877013932207312655897778101562134395564617989885717155426896172398131718829588849621703612532677607218038607258506369144471921393386880380803085012340282684613658050046518644705081325525064289150548674504217886286800444910828185276559107866047841451381997008491267324505841821326845444390645736775035406546133209834624804531787901578824580823944046155157288248670974137321837505715909463574087075214278582734049211440770302387384132547374595845303094275598875343367502303296790789146692468178406797617735684434569858844724390802411147225771727031528134636462667462002757143023339346067613188807050177793600154275716523123059734105917750047622005896574775564899166769466836267296999339317837785356702764967115326636076903159316840839189251211152485005721498114883658178447231062097304453386975620448578449951791266875828995133966613246313026006309068527891958953018739110906982522286688983635715361202437216983971131104005676417308342765574666107384186511756782028178419205212168984091855363233727096029746706634355623537402518440781566698363261338700587829970780215524952274666410735875372921378590116639702589232519848660465871382295537357441842604173212095119125379980281667919537085405167962526324871002710771070589681937975675000869567096253813868831613078673650754591040530364669041029679656695860780976188592954829889122545206275709122480955006985829492603296323024819771594594761474952202504052174249867000776183794573479311210246989263085098709515970447324160120486886682258673059468978402648077686197520514025728381651935122306892191701388560698434865862828339438102906372409479197558598990971494572452123965312845503807248033726333260867332441370799205393573090624731532831863468994853466219161192946626628582479734004756970155224020833435627199576790827537720688920144450246874787003170294193461029498697744868687011365297852938309999098285459846160908908015606800061958953583811087050911373049021675570373279856921010209276334974429963410459095767209117793657627869501060844889732606010767617554703025132317012146582107224277156985366095859483757705634970458966044551849395010441851795659545929134243109305681324106639382673508070300014226968730219696207000731602452192231723323298092791534175606641858056760898915518767498371853010887371134913123101019305735121321126330201054867407591292269516329866956454619949010561018966359185613348601805486490562577870207384904553729192882599556363979610287692568620582392678590229063762556418204058642051860515557625760774709425221823966426483693441856042695772964363347623679542499029055730833429750497235833597742516752300063917185844903689078152944107101972438450046227275468176414436051006970280906804463475090100755481242604960753980363036146494198786168373102118775399515845193268659578891829517980429597943655432071452278046046937765710704443986856758875093662280941101940638305145131995753409190542723251018404241906982732600144331007260006702879284780843106279183600873882809808929541223383352683311601982546160355928664747570832603012187739622025211221855090810486605612480021197211998313157188222209568385936159426656185891093861264920095806082417356195050603368840247899501447722548402974247734480625531965124391445719765688287632561866268515824762389113753142797150357596467886163795924430454128253246647055259957309154618549948524389777730409298873970022098340936670557782292399074301664231855951627904494368629185325268467672501348575907837425764639194563524181896021051514529433229956048067089207167748836386970281791258043605863590572203983182685476022690735218215262355457479531824682442097766292446414059847622602034597980277839257863106374288373679896476886146137042659712266570803350372516587983229849371271977858235722848125360792727327728328412756416919470211547918135400714889509052427782777266303230352150390420568717879964226162306225057955199318044150433791907854017752053792401248377532836247395112659074139260499484273683361031089439812664930181512053279702452858711582617475727268932404870953604484491229933656980197707122969315244212380727318385729462959800174096443024463994922372659262395806934958218779574525919182007379829080276890637527716064005771160984101591685630744982023706396288508783529081002044533787819786771363741856693856426397569588876772559278927098903506947333066390810970171558931696241413554575632071931397899402584363783487458566377014828791039386610345305020481026191719216114905914408200678464434285975119160617552837774949078777050468005881833119204401780474712634099416033325720257927705595166776563485804867466674969749219717049071070929508586960143440340473050848714397586217144216766720919284077419012102651322318601081036565874499824448455985231195755447885013776091972240999040776151537933850404588292493563770957856857718264588653286565763844899158442421707465239214503019320975893351662658275693829062833529251662817073177824098929361460389639736469522608127490289611870112152067012107128075873223955989398630838439789337202019896992110484422014644384702062789979186324552894676531737933506814628961067539103689487878155067432746164011940979589330983497054020480010474935363768380498762508749470387902426987873903506729208611811777471831921782173343919543921097715761548838818651773551709149915310939212781666703425815988604435025765539145600267340024484924475943067693802906920178305528448889490078802192581428516899562635713682164162278369317150200450554108479130128027710188892559948226394486389811973462546197442281130901304860868794280959475404163023649423524672653658996659379805666916910852041562967582851724585418895672743977949613145859584543078509988286369966346405024847755560299469711949129376676089736949056121660499529186494751179090725421905553741693620945752870548868869185366633130473781867318863981910355898079890832405559621234191314707549718008564874790847743490297087496105395742152446942423762877116035375013607794940130535090832857070299655890043525421367048821948902821986713609267978356240232857099344349900130060992131808197367418299369433626221257132992981237886246232158787540534679841466677303269004841991900369400171154166556211364314771084990422486331015620730549463922625796961469789735592981271247019896668799412133170656760025539469938237912556312001298925836970923247895783111967114852649670134742351384421627758998645555031033106324591082604430663753824617394523913556912938951143828602445192952112632108036436382096585236835298543273845492795688644202692482383484826098121697988692328300898532051992700463853559502231767206888565885374485754093224800896124949027030856333157637712925786525115548687536775414239644786509664962750143873855160370001957516812937153714551447428740968308593277696379143636400877040287517267022698089142034685728119871418640887401782659081772160721117778987463497724793174978387812856380479151307151398520307520415871372143151311135931807991178431125843570945520653553988141483386102349547408227519082832194608105114047594543167885494932769298031342439314482138145017903549443347258099276441860834088082404242250704936740779915111105444827349597212715706964490956011134092616332419115985206355155131783175157088680102750913004458083206057116434020434793974979466664422600045378104853797186110454547467451703975791731384446208728596913718202498949555128868695932865651151214476199250734198263627181326140065148050791892764927003539430921998983694283909558012104939007956067278846184138634292297670961150517097312361172794735920923119199803135929408364988554509240125010965637766452037658957497612460393597675904467460930721890223896423066755587164692029475857409839403405041644667212948824266890675781911155082747443549884669588866645010891925368102831198044052367611731367085830018352451474189844761007851304734943881334279659618541003790573317505074220775307736913333338907966840694421173876567795561471429726084761058408764029986125669688813320735837728610870707056311734083146547446665417366734591990359933265728752444986221463101743389880353143727871725559003854668886589680157807281074706372705079650326251112178292129661947618372729306145861601255437854870737342118766693432792330366750262197442279527527760447291246529300749826748427345450406711958049364743622405434196486162170813259405831615537247483929080649908084760276472619358463579236217740729419732531416368481101112788709954448322203210074281703527232424543218217383474481943024731204518745072086389831663929435578576235759121568531011654729925284186348100866644976066021236740482197706541890859184059143844279583911424830578927739706415043279950706691450599136962911716020747412468149569313818483886420198478740938917979274494491623253366179705186719997529879559492936077641539990291562348107070675169357504683068086845055297148304921461849102221759761427342406469833398315662887064420435462779965758424439969983250640306205217642097180578970266850097284273500336689582623399812225729286922717024871948847216933854097567872549989511355566925717841203900206899459310353710280409479798793968015874836625545318153253235432777409010539092837478295351253260418640507342457711877533650253137548756826104430252839195417573326180028925078903870717596411426643068962871779287231319548244083855275741549236580614719115861300512457208605099674832038025179577444312862660330480997287004448056015069362928767454139500487011545529031194723062439337244088389302184883133821816616347194045727547502736208333304391811045527035528139622813143252225663156972976880500395309768702432118678880505236433321404275893704263077714112845840104979313155763701589691032969876265295717882323622902920823157789368251745204974437668582443920134117891245769807067762067761531988599265599526565699617917055058875773470357377096748244400309016712274312392057561479918165523675677412900748742931326512455175129565219905919301842589007915114112575028282964955214078273516115502514900396857839396006304567378077581581499952720244505487158839697702358559162606954477384108086082090022265258765135503128153814231465199807822288378621674811666835215483958557563757184763991588702577679435819285074474695245718708092692364584658821532800465617585312149112595350947271116083423741725405012975469816440983287483919681189968737896919472962399762536546173038389902076726378559826438837701359567177077255262649528189534961779437969020320963254099069898175252418452994400142862345636082576512529345768269734665081701161965256624014612867577354964045978349122196330329091836482104174402593450395252808860785105325128638297036714187383394254480187526464012133776768499840569235199734684655353611550480040672546393246377141793316650975378041585185731946412983783519024737006503118283833797684823448683132402519396310159675381988083987990256122161546670026378518242995757229055336054230198244686790153547525817182446891897516551475191189055848128845034626502761242604920801086754628579289726163337084699775252080974060623324299792450615302489129080275577251959033188092752472119450061905625362675518858680949733785862137947923489187583255456720707531525455491010920925346466699667962880576773032128536070530043043171692674520960835536128611698217722822643330979755404977478133646572395253702292171244967000257669965557011262460708947284032923275346212761382959219994213329810680409206009744429288939581504386093810134677617080049722789335373252184485431319536765510718245545686453762039133250104521085960546726753117666351928607222084655991408191986066863891714375023037721750602211757927898184355380641936113759197787275496834261471733421101610204262782754921347516526999453436675706622426571710622230944516006906435129275634084654301060748929529281332896857596317405393594372299776872491070841233102578528265878981417674511011792445269005479800161689502758619163595112622317456912827019921697206862904951945714025295967271535242254779000657444312934336051143663441053248025529647090292976946345759628045333162741877523591815383680807227105861803331059829285207485208586224373982495184918206969203867972139082410001738047613566676921184874985052146198132371037491867476464837213095660048225959432658541666058235322856563233648051874435334925398212000228889626979243035099864823020002506047040983435800967913207905678697721767990179981676407208224840856046521106805887238404355499586785140678926399823216410348780882955687664160292200624784354104120032398106131645781502501023991672239056076368917374016430684973212825821503092279930980555988057078187774503272760956154395234943911415944133797649899138707407456355859878079556131168722081133932216678818210409914836266417340847105057289025738455234089054649237573221104036000615575981218542140841235123905765433236012513117121500883154888790220870171808930024740029668076377459976256474500621636672614084794901816923409621044204237362643277221453683572945682159115282455477335409814493599483601242811577879539207490725176631567822255559419273174538693894835010170337579207829040209282685062680582168353070569502732297726284943897947746214609443343275366165000673002659689375062341293147969488363800481594063102214180135910675925809183364548166763095527585111948409131095528072332702387768394006045156871073032734475506392658534315006166435525654930193641066606979595601902307628567712630161807627585067784157061894606368461974417877945313107310057345300718838132365687144902583889536508750405447713873936834756993276744102319320934679386698321849294244139016294341701782562358199339370408624854953006667656161450720356830478305203291279964315324563647101130858046133298747706069697855135743414540971917203039899720383516419802147862940115120185404312152741835148072824987952255717582484794404852631353389626208399473509686859431449393205798139512089010243668723071225302240607839776940530628232173819883561751968351006804964526664887519257352988480855223069000846061713920559065982079892913639609463968091286303929356283745781339855400429420789078285520722212323713692842043506110087042426999822893142469832191046785347797643391412924069472830935457259358044360548894296452731293379535404258772209248803705406524990013500341957029423545233240046089945430510867213013005464109621416459321225253752016562385039985188645299244021439791307990492447318999491725468410583725458293521449814310062247223419039289057472748352198523184414370431863148519936292478407411768660484480724560354745490777808303990177297775688127696964724183173973836390279303314097995918384593456887674875409570639775425952785689230682504636684167370151641381487631586725686701423331350684725423023565195718540733432529654130035534966466029446943187741617187842969425788484635474505659011892800720874117584382940733068927747254880705314530901728895140830638335177916229392222278696999683107166462417383374526508864577971089090487539812925516705840361432281375674173780899292121309750260377729055157412332408097293972717019358536053610254811173283623615973904720987965948948445071190299818872169968888969800830713648474178316024733650168483960185381552344796150868559166210575991450700423310547435766298874358580807501811320771485412206194499021683724096282164199526398251800032328726132769852826376582387995715039965041701775478394390752196832658311289187628059219739554385631564643856263288125953113466532600580378234574960726615046105757934414040844758988844565436715320700560628909820454671350294138971332695863642454206646701878876549913192893265997999696947622165242906513334163042274400606937606956592466502581801275698596732654529943872805739781703128635371688980503063335956804663700249864799326711685058474171293871587639459506491186206859999833462375193925657894841840929755538514302259399415482923346229573562387396537104160210387832625361508553557056098263337739544983698641583822408887718557663469760715541986735793764785119293610233581204638006596113951792064586956573912046717839810127394947400493441725170405840095217372047892605616170151554325731667572865345370578540505173778494653105882474139381307766312528534361430748444393013300542031557850530116963217930629011149256890555000194822448844410948431385696744811553874816231104287856221763950418796993449432059737580993060625242531017098783625381202748911716458374455330172244102779091474350637047950353878328956140265522825474848270108741293845575090825761711681732715536934101860427129745812264527717827196427737716487724592168548635614227851488025925291406101848834562109443623037357102755028688558239858784166589958336965158437437487606526377905374145235862853270464875097605550509460247446834917476614814423524646649601045278301164978850478831412670634089026339314707418553739640778472228879006208817277149729437866201491870910611955638801789461632351217175281528017381044617628086370729428800376677934427087000572684965013770781481873050153688346825487656437001539366620868375229301756647233782135386973592961783610815401007640714364473606388937981311694915106500313316934220031394668152426920478923304651673766730645034430755896555099559656840614166683693107869274113489796362104162392425964728234542738451254425358389566153188111743499781719673969042249960422033368519202755888033450758797701794601972281087260172710134207760128467181113132135826658747590049287765649007111348174272574304860797839338861125662466450388201699588637129758152711602372584060632427890294163107628276102677325621219684780612125880793397666196248258337919852139753877192486931367074619547780409939860402966250736914352204552193155007703006476132660234402721976460175414847378589714774900226671085735857613637844923836508692121189970106079657422286051559119824642556532651917285129142598344804929574346843140135273505063994986152206552051161213064779398423591339676734111436206007302613210920792506030354357802048556223063585176448923096657930441458019583226652823636637602485957535652613139707652843403455080361070257250459037241951080821697186111668696242760739546143223897682252055383217327406301614317068377971816878401113805643565100718645759885312681158927622950561958203550160002653294494725281201291139475319131448151003124112932540764879901580916579530744636999243058090068693784732060246961245302446717733770049920099927363731345858524821757571761480606760950366755586249224939669189681805555749982909809022143983109093570570296808691076308138821604964688374271362097023436531514414461763713402726462208163424737600885625352040689019029742884416600218004783553891565112566599783359772034115498036515268913887202525606587297799110263885376522769086001175296851981494831454253790374289883406963371376140559382181885676315842743566128785610346836888451150774391945575602783347956007188621655074522036663232144424805120305328654518172086920952869922023455357997434617943089223249564396947079727644203033167803983726136946766308957043864447600182131887664926921383437764812741974931515279649119528994824705404815624763086708333437239459659118486248786166858396273283051100489547431428074088711175339086530013829538755289457144917718985298140543546061348187018716822505690274432576422927924436767481522884518698882988515261257462645836871257366186849922107040414446968297013163737490778540362230377724614520346518535703774572774485623639411789628239505832090739598268033602061554061641239967422081925517395493661943756157696862760288957796983856597648281975890840244835782287472801646396289518717765132737378112584004104340094464542917448495281245136904906159393010207940012940251801133501699286107892329823957860416178933668234176372777145045702654536890953238925815409276469869029830046256261116161723888907177591125133102394326965930124241955439378201242817414400431886874712789070021011890921377391429176602730114572373072932819913502761933099017265531148350832910281105392422050194110324820826897857060295962813464288633107097907404284859699577592473959031117476899750579478912281137591278583229110581566798775186918707919919019941498227173483860868536433712190870359232912589744312305983868555012388150670968469615066078282936132458418189371839505255761250296541861298846741496357343826317105834606068845109056461988147058207616594798201763333827420012798424767883196130016313740046463117106958734293324836627726307244522074656416476121510431802076402861976254479238059410219300848371903626615967929451459514377632772672726546957025652001813507249139366008477976271997122872702973982442681945899624926541416025262432542833187339633283872037548538815269786037999654438963525793319363212981218667254275888765718660031384566319482380714923312603404560325520296217205215710121377861806395841226823194658542281582396772649464724123180919597826269650256676367733070962672933452160200383917896950879961670444207276163825531518119944622319527452870312525895129887458192223937605759294922664782415539093800132884070330736604548379645286847371002578140077822567895806982915496330754213230591101524196768892386577358593851877189393203911314470553757427653666331444052728129596482591109666601466702354644533601113324501485587201243099786565191868146663862636878813562216320408771497147791422118457403569835440039866860050850198151835300596852407237970052603154267471946823355979245926441970653485174996176075277072260288046940333008066387504587432258970321647026260913041148635005547038389481026641759492849048979517030768495124556774776448229288192616297536408614210332771558786653768222180029135759454549689358420122361522947392095125029884419541700158542763916073697535329470766033866891761637005308753508559549308240455826957151007322322935527654017333917658783976323314689310340490294910200626806919424426137843166595433874821088943786818769771426598537924129904309078821950123407509009132582520663270120494589507020283694686236372842796866607774532413297188202666452777861816370719057290275242552592334997662094707501325827799031295615161645313695043158286119344653249164710758975851387841108703407435746755685925062195429721458889093406634901472201425177905939448241288753748756259046313723270936792977811031153705003025722411809837803258143910890313814865841256193029545069677790310282364225798590667807399728060937417691193029975263199049777264646047812586501853544667994003532586822706373230894797693763676466946794976939414636581844498238960300816400904011636046912347494875234168470417055425997692213519037851084137496347141624089641025171649562499451289642563297762100309308301298915718101724889494663043392199664286560823582105736929252651182215698687212460241103044599838510205926434073995662494019942303726382151947453709561112072643247468976596714050596106008683777375538986825569085032808717505700327418733500003571139920363028745381403701591770217806528436847710432477979049213556489842692963164072648981104207424281285165588808601374035285653226703724129690314363374064366376548486998615768809829433851193648031432732677249771112750143118123893068323341710971865963447926090362532960930849925431529434809281705038106993529066578675542489450845102570990545499474157006577657212950655853065666799509504637722595696930059279368020372918619650249550059090065160636498946673226016940271223216223499790171509196420802191355182464287024959036260129358178963891020339322161872176361032575207272260624325031753932268347471211722406132506838566584990253659723861063354479902678641128487428000488279082453845791347605482590593786953306023787579589683044191520715609573650794202547764765038449934735932567068846912234565708081630079660057640015119485376729788429061506990524514783903266717904504068502784757121912839402448491722955091697005172490397687891688686589693382665179584273292713402548397883440337884714606058327463576555229997268111367894472118356961453890296434491579348108165109143012741317869692097268086922215558744976837306546169455758934088144526406383319820702451750896318528125190208814646826158682077891083667241712693026037842873003487380599656497936211496786290524648073398426638102670043886890851169584551051289568311893360005706694099814396901300226895078491186442895058061730972311472109084431540713511557176203476748155669665099517371850266523469196064855700669600485063456072518299287122683131392445497097908751640677095167210065434390808240146512203963748371428376069363155548498740640347341084245312875155845082749681909993392516066701187639428063563102992536805668233633570389386901966934363407387979333530451089517762507013128181005067578759785026337390949574419498120893475930882518425869964864951531942686007881755950251217266532438655539270373022713381374394420320212718608029396059987811147791533850334171376369361285679874681599733141576340529971882991494802736559890896142743097096765408788383890170136931315632966796033441046150418515178037094020166018056682573564537053370771463653652848373674580627127561324569089603186151743608436733532355753955594156498005666527543813080249542625173905842894550000899686109763889335817981999580565514235298184148000307206423193633217946809987585393212473561453105506354874472395544263382312596182873935789237204458970257015108702288238143147101806552564541497792909698738519884465008654423696186646479376926743205370399658466534643308566670822108841916350382316490099562382851518074600816427077375490227826651746601584634458062688579138042782186594186902211869208500121772774812562114206019735654710272203452946590511014428678754784129721060829151969817799039913883637372470715961054417056663413749097099863690296262320334374822870514037504604889669673276201466210608319561154740904459642601102510381114561545540740864957928949625619397829744842703495624912063453033892284425261372959370518475127058579037359644353354009224099295505145413331063670911799053037555784143911843860097296625671604664783510147050293540715743320922047002705236361946844012405315839608028020668411073474729231875014736895559876461702997488292161096403711808556993568355719441605990245034548170723215352994357826094631728291841140677487675747910581513675148514528227366442155812957075382532451419012063486758223362384101023567884481655482398095719171006019647209891607348035297095066198591546519329714634347291749328338667966813419564728180533412463368197083213452818506588081662421869550546345484543602726266896488217082517292462164512146274586981587616776026891768881803780556167237467920324685489854910736908768419447923846873894626935363648681223022830496236789857417452351315189761492188101694892100992164180747417137978264533745551049678592405468828599197134120713625930871044025619216032716546931795761940514783937232139571662301966450474903420381428310884172892405574881990484580255395888979605273840460126247350692448642609631611020752540047403788404031703062969703145775339095238137978155587747610725861352236955179886848065997975368729271222929759854751184280887244281046033325314587518924776710427419088037648939271774842405330398273601554223489048902270286214970457709735135488630058563828200312095131507189352392800207680395292622530390399828835130180998126467531795712790067694498373432947563733433615413874506596611521081279171292131823617342636128288986488051053609854995960505500080463609746124580905437137092996847759309431771556359235860423682556218220784639846820148615645648661660042656296934207535527337660659740126286886606746267386019956108152470668685458292924275777807046534490009731382467496454777029639297313484332569727786850245476490724803897095686306876894020238818077980819351949745722751031439691304215314783881131718706119320060508473600605492642270701862496815524038166670120842418403998846507810025865690094255212828784623964330320761318877667211757175747494482850315350378242944173949516030591443655706239030611373641432493457269379527895614103120027234567077906551047411968758036688695002763129149435049262820147887761081716376704618873312173929618711162059967503136374178639458658394108401956066775887673400869399972096662084470804255504885893024498811318333835756069591302391506807015522228323486512710906020913750840273585210472421179969856042925792490213543538346796678099534074344702384091347028043907349504998817631261567174093001426293603060383328560862842255557553770630583286743064494556100923098238496780892763605156373479108647262431339611306435897946330831064421258636278097741944144469076116338689601449606358255751327411530968346890424409883089746600368556519411729826440053293630969481582837480828201440625290734166458234525995351776253732539545078132731985326758507400878890998318697135486505355020987773983246114279566604065569891372151525048255497482324321982314748533733922089107705119880129565680269552042036698520314723775006198748310646435275556506112032210218255967681073316458588616876427592888025538408528838874273474135880493257001581880907156044576777987610058187886014808659951654854043751198022225237081789240129374844681410025498502949527209900765513601558627148897734120200867255228641565225980092085143412745411539603007936594433188283508342071675968091047645670757282739390066547604851161883457966090134985412813393547556407607677929894272409840802091021120394735532483059922117951220370362223633237936117379962520371127575966446043704251729600368260122463727127875439896806767773793075267676620545533932501721026743359276374533596100529198284654242336613166886425987020240380112211915591969352009111736672267526891639045707932982232092397120179169562040839490438800430425603520974396526570518700578393323850279164720845199318204095427068999472567267037389630152036365063550661298360101662852309813413137441024023289326789593770681838094612601791552761403988494395737936407711453543300227762234648531356336098085048086837770500084922178231697178279533166784649567860014633833004355023709689960712570420918038275003725437810559475026495579856880555784150605261259404014889285223307611119419938334935960073342000987784154401897628139921562506647022689027917739639463039311538139572339701922275854560013460579482937684159050739238923375607455239951990323338875743544679207590762690621808675447617583180290030591600537769251913677635965867536866575993759365262660017164497205504538175521186615449908054374151870791782007533461453631205132103290769827119272290821954145424777807486508622974732654315512724936928115509887007612953305018128761261374347579339227474608212752563913809379599226486910693502957993811779290032773025090963480441024712888282013990200852306334309956635418708879327302513010558019403741082092721557742441714677900654641311650217039005763187901229224530979109275147900157441780042814688159197728887839190238913304145234091204716575942128542306036328733018184308116116451808440154928516009801361458525142894381996150677411192820033903697302261950342191807847459233683387537470125096733433990888063589680360655495760642160022759161011603990828967284288264642581479197289657004612614525112657414158063141798695756597718379267758495059054712063364021747818525287025123999445073088849087489218352402933591304107595923566346675699045324379003386682098682904592756350145323609255878080067835238645588827099423040784921051965997806340539972790461335622759103950594383219129419458057685278143914687070084292338706892363615464078963642929026572371431041213407405449322710907184886412249487791030026639245080670565951762458993340642533798200517526609181648236231020716621407752478319389065316064729995063938374701690798538760205319337964298462829663983564793405513900854611494611349505645748714047296476372365093666590772859959816562571318561361142043639164865754554248664035936387436826422799246181329489964848228590688864350206571084535299105066286205629644528636493690201685794429923373140796584674126637727512282693624766108310540933181337722722913496415098515095711203888809492877485430699615086229816957319374217046955496609308374780614828970164913514797965499203199289468342796441259835048463643887196612885482953490760466748718754987374235474016860635656481071985805223159049359152886176521342218136524021865938784826898343693140274900384931947361152303888973877389226001915741122381503836778603684192231753691587613580745731472373893023134745749250201317908961593267167979374072882905891902902455985460864491094824387419154254800428225186372278878572777325116002511098625463621582202570806373273987144839489606436344044629571600688077498794173711753361182661906905478243028386511763092750227556479673839255629363376319859321947360581241677443479378933798596238556140837918115160921091462248847046008900095869033396753394374227222657056466988557473904796731948819635975428889646585141169381334349372930779477147331734398083716433445746904897260237818404684839226221900914594116349666163998605094914413061539177121475603939370857077914923453233299696727965502133745302090746806427792942216982806251278247812016293561867347021160367913762729850543312531494949427236575910252897000020737379227229734232859366478219748388632515047167993619683587803613109739407137924330286918650931378334910979381676380138938980796127575286334833646119870610797512958649051650778798466025638161963973172108588524843291288413322880181608961974641695769799587577614816685696538576697245769573531459166716118539782966497297458284221808749881482314886953368345336695564328844581871708079923524701062227093703195576601754392786898379738258696867219966523176845409935341579170336521647079088520268567346858195976432185892541920132845569649354384250046585057410590510971140311421962870164556288674223974733265073545457525898461626920009168317240131514278301608641050510026033371976429496356138273770229646895894930201146803621620059771070954888888330417786967013553806153149307868640669714291299171401215528646258271599667214799471764853661349714496844682228036213089247543076456357152361663615351376942392316090666077646925178904600834041614645314244786962964112389461614125424102095605398393674320980089879358636760341616115019619959099196168481372698355050969045462344181024809809796781724121613948955367613830673477896854029514198796686279407240465571476778109111288387663260727078860022631382592756010556959416019985874666452135450471979163955420455283315006214572663307708335660219736684169083177873618039702767262985118375529020945530725101542485117228680670434960931033057870329821432774959838634919525147779655495809076561770573041327914183728855412030141686625089033700203227925184818060822844496994314363411065877239040490362034068107895399766345859711031464625728202183566685189993347340450949021011701134017039530487737665903727923383146373143251972507527249136917781851221268656853712406837572352082637994042524818884182137620659852689616179887203423074888020822193153721494618662882202701124286489344420801088047986869002106773084786654337736581879109952999716793585869765555748767017832453228235939690792181900175359779150289195126861362472313141049722478952664407965092466505924778897106425690049679265884671443445311565688730181752286874351395333739138309059935454760690222484174211478348230825469307973975318241665680576231613802361270894381704046207818069409292996702381698046153291294027350408127473141785442592095853683226565981538972544487232164776284584032185827764370205160229515801159574195216266877618771243752497751240646552363201182269392297116071642170935394121609678703091018467541595661611203977456044128857479284744875629070566828588547152919353924960702377595438611537497036006834903027472087355179841677133265807277278775956549348937712547631077266925326411099518692426120219489759403857226789576119378455707218964797126938191392544297032623549145210192439358615310798057859067524963861564718743667710504362622038377527576437526279479107417652028763648177868988149332874624277914594859488213472290404120082352976222766229582512650666321405307646745588683619436185103141897161358062235017803919674451101893479695612264273831648688896129578498097984900226140533451994900554306554850465126607223754482169702048644054216043216964850834661679744960703691064016803860901986748210647923907621458990408893688247471220619810349403373866413268982941204231367902835904918096655382303134697716128242952874831816803228291725634660440353592284248927655226911556650727029460403739768085617537305112617857229619477931378166733026042006563241977436356714021894010547139641159224122499484180746901447834312305733129723275451017276438610175198833040022061736232261611055812165597788948125262817868409438514187635568997620096967713312536683889613898702958005109162375899903891457396226194498679519639709491537740188319196505741165732230544347990704382631025333157125252133423345442083927130998332570322482804696422713855292228020222361384779281600519065576217471097140859746500248264692528939450183397558046111367882066997120153355337579446798276399307228523342264507390274683981187943895346167281533647016389745585620689145528541757576546898769179589610262148609631812449673317574182656110716201564517787010108268380250250888382879721099223684384274797433487622276484618162682251939609672898961692012051837358799680949791462489925178541796256325397888496298757641034283824382948747754718184276381591405850609769481500757069425244782315445550262154521745670200139903158849866720843661321430973147953056329743895475747165146677495918150475172402119920157134998063387958215712961003449767587630954928568435015065635959919111914423534159835403048007287964320064078739773451263811746409932953910072834240390974762971503148532556378047519598812985997354578760893308533626460304004985302379962229758535590522503735458030384347690173212366842638528243055388691225532886175324693923276200330021952224326602579723561052891407326822136470269495896570659108188836328836594980694355588674057868606928712043627532850511096988665577383161094560736567017098166603713984077467670032364902333786700334645698515821074285064895006659497192836343354974359013528191238417294767354307556664662770510497431209173323259977120942388660852297159410413432719249530629092937590997580261628238266520649145601373412160206974268850998641586710086850399698448582523867473414939356584786040480072481609105397290516760027051223362936508831604431520684771979467550115572154429069802599902182138027502165290992155554897137919316938194578455967213453823453700355771444514897029073869418462984468825855103002844809906569271456738979060410784846511495642395332315101928280943584540927232264341862054056541630444753288956930117010857928000343934876405683772824962422799530474110221804076463812039597866073151906946626876739992118424290755319650252941166098013185237987191835325782853583814047325710077850687299278963628498962021962855164977309637670117647200302959337404632911513624379661888117985967116101303962207241394782440569163182871286800442252794560395954346315171573018553239890823963294828612950483526944385000192645153260185480960899808968940076836075899138100706119193573077430476952374732445165968936041902561824784005875707973867036127144494957858479848515071622848948605458351124029713765162916573159100353001126747587390710284640718183112095967492354150124970098161675930137529221627654822347604355623074835591939078877209520753823161964473252501529678198081749071874806432338498588054310100290108933692062915523790239187542718703079661502342765608274972403498741683704369288191582148460863308994526373609447911791670506876969348895080683633987481252047983327255200137369266519558468564710095865012660359960361108340192652462402421753406674298294887395958715285427757707173820146570729644266104766614451817220744526923396084275917375709253687305187776757174505898546185110792869332087257636597370862796275966741625119066779237391023489576689696612626276113644092604058376076502378986889947621289771446474139544757769027811516175458756624409879988799609327993591458417061456646103362261394403827115916782995523005015244499300761206086749757170877607140029519857867927801973351738383975005785278018995946377778364002874879200468249080847884807799095929897077528268364635137763830830913534303633173148812530434898629360579942110441033098370855818324465604270422192229876929149475623743004717754579267140330819184514839566381563421503081458055076012993436500733841877146906924527361915868277085500109511795435219765648052931862274791999291855842825486820182753259748474760315179497649356414074631318284983171711435026360843922074189537092502965896245781843076551737681795111645318910410144194929457255314157019314524582365495898225055384455415599350584357372925036929019996425623009313216915920919154626635500935924205513292504294727783521566243422232316559247700157532587392804789342082534522306932325637968184492166683291672808443730239004539848798723023221251000178206410410621954550521834625173066154188972500134785296982968620234321233371133770188444361309427062000439859945484454280288145397916533764226265884771326672331272521490455137262972815834274421013784548959472412382516795684033438125244857246388350082036170291725854672889817723799835530631073358817731230600425427170636364120066427293083345148900478510806934342435564065962333971260522210441883398663017545358525911330876371515717759469610480724493856703567907956577162162062945867818306455471584602872272235138111428622984206220191522839781743568538295567051650082025006861368989401086226739609068226832135633016672195347202074061820262775553753475436976002955620384814942350638243728366951473403161554440534218221578653569620156249129502952515662768926933404989703320761320933899563560509702127177315892937467387457776113222480786461234071667940392359022797262630736583065315499359856371199806307961892338043434451240747707105237097087806940330889272352942547896128142327608922378920461415537009133557341785380520036493491392774406237195309439198213763518527015620196731307964709095197420199142988598404071758952258172824897717296469468463635634905835343434567592856504229913679962135686344175099058423359318774883285095954373368881968909989705579254033031544791884301261427543771729377401709740764001574065557469975398181145453696080034899591481977501562894275376084559351450518513079354893547495670568146163548242444300047363771312304217913470922848135394356634987359271719071673152958552965228482767290869056699821643312126780725807113597518808815911398217576025693101116251408553089639221900983940544498491092892756474067541145613070916409070424137609712662781084037393188441343400243136179530183303745893237583673270784927027185225788403461955918722488245804131612834852118939797815289672797162015298966109980479683186111222530109331492056652998942112692403293807950304269851034174173746467419492793467657345034800420690166986252503945948771449998594493281500653507931925308800113604411725282423724523633392041209565876298896700962202948811721828466624465144735737774268407465337034855051937617502929645568535151884131049140594393157317497503419758976296177613729841565556482253290037149170636623513918401342960495370907508278664597808004938489957181975978605493972319236802134824924284812926393064731303164433904920783787539129016593058624542718349690415972518390020609996342433412920339707908531378495499418829629099443609836505834864101579145212717699212485660067454128643794897965004916267177871575113343632649881172476903363695658598216422270672376889446234343568757445320719536568930886496468101839728237355527947514922277317415351620930807065277103104688525809599140690429770680779914004904461689597639357377806149476841435882688617560497860977472853433563229567581678946882734415241275525240375053879192499368515037154408701586088471268420168458113953873332473927777056434301419573019550558417770749023173314216246713109861629844000097798068662147554050321906236462364038554731717575375865367713302264361988423002250006516262231213936399331908640630024366168569619619270711547779743226513732563870757968420156139527892700529346742620371990003371237553600444075844797453783901794185156319186674847860405522422701466859554651849505267790142407188778579114492875581975890396301055356971714138865836602891362697741550511283373320002576978119913179885393674067786773602935391572396067268495263268285168207700369970007572838831005752450749808498235136724362993237587051044508317377955424101714121673255794151226279051567302121414111431700896557882221976987729673736869233672475824416336690298340180577815537552596028857151602831312252588750497211402114795078701434852809139519743160224975010186847956738580091167569366617854902364549136131058815311862252800899398834968096003449086241494361868513438348235275626372665262067050433603157445885837910103240613837214560923722063668012943568430074139847301207809292974783859517968084377077162650758340068040403446423331890654660566874479964768615834060377679812051766310123829499757709565033229642167001350012154323814220195808565241860195982704379046727698925517551542999965453549425186273286993714363120955734155268067671982574391079702162581931595938297584069067519022931461947486146951048630222018596380337182808902132670088054556027445585516779812136281781042762650952776735938135942646938383305014666950436146486178432901979047942414020085927662293247418325453752988525294042981217685724673238718972831641154362792696650245631295249470878909660244794124403680365948404546320010810706679376595198364070767519586428711370480584065085992156242662097176992733895315399916177150379284590295094187039455719079046108009795385325631326057132851685656350601959796120356240331871935331333728847766770168456401750713295242276142985013507365889888153025118906921646618224655895829211518342275502505192167824763438660020304649392629877321964727864973511789006902268473052597382371788768102414600199986308475925604599400478998690396985276659659234839438132306862584691287653808163987017566079154167801551711514495141023619544899170797847948646950664998015031821475225304930481880941581062280957469695528328234483578013556205321110915419164355337671724736897392805382126954978500743667154180058431120191478053451628821232769809773910978282800931760038721742833363996180754600904434201865192516556438193160677749359433415374438267871776113609654653937084648102407922041655975680585724244605438193532620241123572590300965942102038812476436897560070000581739889094616919637024603019171311997593453306080462036077881789774893114509728712012011947566951270884628554505478714693052974134173043608504588188786702943094924373997875110128422014680934451846701490502103080415150709979072120355282532689507691274289117236812175901565350394097503546803924201725416729191895738682662694836233829057526574409832648542622243954717680639719106060567168417652517596539448290357113863907151369883909351603188734826532598409566535562289982786823654689340884701373189226626796138726162275606186623462162741278338964821099731817432030185912900150618827851470770102991598843035294856902662934404993468906529143294420915777490160695229146849212540017408970192636199498868643842299049118108051059091046861877732313911814971939818423153920409934816695998179924936085697521661938397242548126722178232010953765776406385044472618789799430594829845557596538551206215427474804161949402120009598637447838852294394954149802474881867488879076356692290453978163017765612049051288928190579480436684957514829360481306569369535648572402184131959879859272895178231512136145611224042826531643812836396265537820324662942891202709819725952482301883542271793619294466991408131574351491815728708986716021543292465243875733923124386762616530385496831476565685091895186275260510604666049453623471393887488610963932040364174082765333992846333896166054331655626312744984037819108740065205005807183245243942023581240112762382748175364678411572155831092455726631763949453630781929291201184804263693287527362983154901586870842494719721524952834235131891261925760906663928972239078232205713940849322933384959465535615480902366840101585569159027765261769732833286934628470521137957463037350288290867240064485941447820905427229228300837859425186535610091904821367134679737480380632559265539126179302935897379935543854151445092935521738696955267283722555604856570090063099050232216282990995346449076895966994179628031136469781509703356840196843661961687190240528644221570851021126895980155095442722295441190812510891786404227909434699226651933673370969386710849294881750755200633392703210993193610239180112409714166324848011486478654200329807948613105472897926460642728539664484226482465946217133734351757370440632213892275698639485181178699154582586494501093253166744698967394236783264343303540901204943053283225788148597116954541189575581366221903685881317694897552320949336256132069072094532913586904687597326370487308456123928073605967788068010907068833712021229255527999919769424777655248528393400270893730751027536445398014698775854660273504192354931104406361624853811494264779922072958154448864050834452001467167136588179882200660815195057815722622559940261842571702200279988608261044460664356886326618564275591763371001967923853925753124851269452063143406354548877914347082966978535067723613307609759677588783167451753967991158745218064040551329972495983435673046768405967746414683319567648668254013140940015028760159104691131764822378875372974814153107335427858188645820716098746498734775547277860785028089391738764487373314469703271128879290357186429702602861113031373683158364672235479764397228179631222345482277750029045650732534818566784613289506662862708677203398569363306216699636363263465285030825574303585414925474316925597123805637015547297503964509892919831446216759555563150801348847321340453703783455708623892258279331540874463415673358672507179765474106207807549216718867289818336767930239896118460866894704641626839380660347328158565566637302537216104631194893496576642344583310861185707483759961383410819016899724403445205261135492313435072660223521879739838056044504573922257143882728974911557538844562505744148668621348744626661525032871907507960431969203515214655714533865306698554400249257955229178452022748810328276540804534992871477241301621849018504590370185802297622193056618443811331600450834153816452024141836923071240135860876956437198482275509239309247498128263326744839041604183836603406526738960014499400912891444349876082002174714606309596313582355419981337073886790339682810035325259946840412788673061461458524690826139366458615573253600797894595224638298475564256168728805827298019132449019784772690945311184045245903633730307875515587597332058343587671295681203555727265752666342079083781578066291184224994195282955168162276589586696287563391783350812573558007711660393451311856120215410076496868281743925114594432762757589690968925912531746729278889538414318101006377312233634502338307057799018218939751374142597828726494498714150160620560847464685487366067786717211858590467950632658405502911461600174122459917236697470662570608049191582609075266266476995813063909301036499862814814097018705752808217876002472814400937479704761921351218592193859829007620794718457199620955620778671561144853808537061087297248683577833863290499058724241096078291049627351519436079445507205830392453643356022164071973918551142611552084247880765828577676338349587141614287460191832940520504114151775187300860384824065084657836006884190625590363083361316347887507248954997134279897350060515601349377028602020705147282895223869015519107531157104598852011321073322403321033812997707053393362824252240219961121877550833221692367157503349917812006369660709881565766783519166683966010061160227395952881735424456508302290213870169970000002691662516622253523838611467239380689571709307142577716610575781502360462847533779694187366052818733558608717953549022890639226285663283873467561239420397041174318413180451554578092144003908063120233107476867702837916411090225882056870479204759979147799527281476065843799090087557898806143301791533329389216074973807032085814208623631598178168804927795938279652798338858221384083779620140368583854287084481707614322493707889558025237013803277350792966162958197170796257371002126058172887066154328706951598954090754467746620204476977681295990543378861091278722154244486038995418106246260906877989134537032022386098946914845372515842536855716503076315797188323014237597938911147561442393354856711717577867380449350159495947937505418748034469361855283644741654902493901874531089210136207244331715725962267365292677747259650481179475667642856009813297462080203233239924891346236561455827017481734188248455868036043792101893798601223338637482502128412173128043059913073626915625898332318069808279374977962499787410430960050430186597979213703692898144956578841442267363833096742986955438553712282410776814497051040501303760377447544931278576936665584824415884453741157316897298120494946233368238062576359406709711952931428449284219458057529957608981392432330426599541607240129730611136597965703562011112581675317817115451404054133527312594094569763956292399020305407789282552539218990076562776483285860144530345053169395422431947409725352478288326177997212074713648307978268767565437116643226538808278998230676815768991263309301706342705770325261535626576921454257344293767718917386258502210530688264081788185318012506375300170743005601568175161272559555905859400918954659484361173451721036016020394500981108150148790928926418101131110586828235823165915156208456004548440590958160699181178588169081445350188470678630934405956563503929516330826357798123576664462124247842527930290535033130641723597756275753766368004220746263366625944029827946765233289276297657650534998746064432894671557977219844889409063782080706453972700720416854013951899125868740681915257180585031196407052583742745667956551267891574874954792558362253472332676896976527479100172093469126121817191583399032310827907274264551074545787286124859363947754502945396955613508841774154187251989257563637667836019217437182530356858749431799094383541867926677034364018387158086938587304607868101316291378893291755630632554621376028454289367258044704302974482512117386134967158837124961686664140521061516743605998973393049531584032714418996262606683388919621211292570083090297038992246424378641463307518733683054677200042711747761277455129236362227418303477208463361825243572060115460611725149639685225623037370299876122089029883230932759408730425506462492453476092026149534126281273017900169023745097391874901062671850841783357153249225469080624046108609963476791829867047132264752708628046721614283751697612874596086988053115243445585791849967569205135833732891226884094277749007403196502560249431953201731917971065512693560541591914284900965992439038388462342705247533584991594710616508528715419131020424412260734254317336867248488877319972194495088133439100158877079529820528462557739687653224151512404496332090909469497293511177080684797303190355294988846831372303104224884648963799272570223371010199190940244915964660377537007528234806142055993943843706155217390448627096828471256762509879422088792285451723246803271561108475104624761835867519109669263415206121543323530723653649404915794962391848950497647218659224386867832235110645039592960144656792523654865989776754984871382456789576564019060529992096459430011533223374186441774698422411478665128146119030177213670501626236264754994331962284447638185357529792966849963879464322990812034602451004699260070256254516770437586864322668062387255439422578651539827310799455504812088618789643675526937929758948042991070726901595245979372307474590162381260892551901401089935540441929447966004416772173222678217130683473292808109994792071161505012703534667903018167603175066133708607777255114077245359425084720277840005612688723867015242079293179866962303604992968630842638644499073323697027791087064378269887039710493690497873610402720463781238085549193944536633837948538454485883280364614333278339748103743714125011409377659885353045583725677256623463844265631085899751473764277297477281098116376347109680656077179460469603048593205470662158705544397774571257954538096994391738525752484534163846959087019818221435082542471649102827510150283811391089812749378671917466650751656374150382256744958453720303951375079433838352039007864857934154112233706979224536980096368227403710854215003330458304337034241311473897199972963126091997198432840373713112982068428921905509596539762635882257538174499318997847155061052057874821535480833533802325329733253044093526767680515424028856434233388630059310228899665015314353955818484158269982833936845549176968674748441352747449383794774216753239513678953706946002219432765682482653050395609228796461977270691793576768904587758767525658941969805910239974747316600037396274732376499416360287254708316067374194240975317782522973549951518239710551415774147257004640247462066585963261518072013549300549089592391988542752007125674860726653520651373997554092836470793586999754153687409351376750641249241566782720260295755680440213021126486477607863423045830744619491273579535997723339540598267664963778426722592741257750221214701766768607445783084865251615386184885756068991727163339240609289758941002304334633746246857638767331075692806089477988546314547702205540075478967227360258429223191830852079472011405506500275686406506414743536559009505731644101898604091442128784750391939129685350090594844641440402262999759692083665077567769751725362573770326260648503902061211772491689175448431450446300722851366795132736572835503037971645695552179340567215171042926323659013373184736203574472397837212924215103716802980300029193720069394271081608560310793622434343709038039597418283829626538400325594845758586538793765968040156944847429689859979976887314089437064430438650861360826943155038204582442812629468340266762116548466356810196413957233002125973487834778940427089169507810606873547270716477642261336796235830964772160888238714139504315268579581551240707691894687416672535087902601435768245832413148201731417781921204389123293727019440150610821396136547517291035150985217801668953316173971651002231097638822319133326496235374739836466346064227946864161806599971689922707300392551891193258588884291786117834977903966829731363393878003510534914324776784983346449482458311160343225270657544324202853872728789182045024017319864704123253201082419291001333568736786819598659070143701457714235603900091078605333586151658089189805396118900597616972632633430622571924486285681113203888609701375313168844101237047139486412644583208121925806847989586730832094995258657617629930220722631855105301186762465543630586950591034412728581957655505304597629805602259538307737406119581431288183046601823544160805680379241681881692907608580797386128261057307915062142803002775146479697482878190255270240462675416159008812471248057644885085367611436411883404168013212309375737141102156839255790236882749065544303724651466818319479629673323906016358611585053564157177429509246454738941031089501167479786467153387237960726116318976528988977048074408115807468104205870834559659321652649391311727638072269427977701592072957081417158093926328288287144540073320603955842517902772244755807033345659899163627429947756795481078716205042630175164374854129886732222772622349609832826926871112426020095907558135358285270239394210041767893633088621989611260229094136381786772283689406524121177158030365432529285462761624209136128654787089858194734425978402462008364170438702224154240491469593169528272197572492611428402047561445362943358104969886768300217598918334148854274527757447306007847590663287185315951445773191718149713830651192072646860269028624827586025516475006126168838040789803224546235256297353351770407984671074382075811935742306251173037587783222813748871943772631496145683162593152706934233240009372374145441054558103309731354342625408060393764264271436233048963451853569540290224792291706414817587979838120906077869224417176866764669956803131319668633530047981169361139799043040307768749435796007248034023896902988656654956841707350319967481219617465817415106866719788199226736537447453417406488611559724289317295471499241873088263037985597043338370837952691960805990795338871549634279347355068512442323807581941922965865769029600564523763899222342291516663870737437376958034991516805626721355938348502713352523012529187610129017093209619138692283542808339916991266477692049603788437781116475008393718120609664827899428047063750051661764443564983981728117405725038887137712369832373353070543943336659452141935546438200146097324636652601916130048778611566215020409259868797463292371737430160435875931725188348365924211899974135040848872373681736548417022336664309505660161509555324600170032825376102936821413263127528844225129076828838563295496007928475425419123539216990933812970811737205762636340876003054311135901910661355116613815674825029833521100372532463370806714698436150658944424049522007124861158444578071430993664570579483947648533663615176699304941983047115720246297165939294921707869577460316158127517166303436271390840231525302699965749382905488138342009521855203780964240233851121500642210998890513247240123973833579779876571675226815889009231457987107334134577035178718911287637150561106707997928892634825860567809976199252326993539596497647118235080878135492361766018496588419175860594735966442001524263897540290388706403077980643675320137580838316047260589119153730368029410367598419491548764414324529316554359650775523538270900203249929710566247884857540103415703198645402592591005288452292301088967439414735597482964302007776440699429367192076737899174164847523823298653796778911251382804584003664577678468872711188338312079865767085613345391722931835587326548658256992194691399780483296765072954016024576175037746904348322295180264016230384648734672755258253188168341741772115647331293060411162745260292998368395292894504812541151914849241349761944496673471776383973300354972073185956125207801319775845405738825829962473015184100535703579489435167709224944919747340557936125975751100835392904646348108608685980466397269004824451979584401912425896827126201674423893075207836313740715734228296594301832521309748011191967977354806047449747287683657459789444492745115754491432714857669512707006681823287772135966710068114634088578501669577371131014888628198016887777955164210960396149625828885761958494626094164957014423026465416869968924968370961855582269409094084736601517997588326150385437542367571312946083956089273944955944149618570266867911400647547913807786158951064636709814909683627287744651573972571650872143474763524565345165795219046703402137415297386083654471697845539258780592421204700630136102189875834740113098025518802388601762397123304666752889727284436724399673443105393294135748711275980960050889957110955754819835278584989114811158159800950021120673288438266369596805393157967704323308320682703391079230196277673304335941734692846926819606000651872416031887876897979708679565545362339600043617579241425969478311109205988266005249756687342759748237627293005543427058282325576670928318191087492469058282933575754702607470695035129479126587196223980246277346544752214811091700657072472754375524343469493993982910544776970350768150518629165409951515285534136051070891439585000266685408608070787021639594030880336208474557491784497702579949790986559683380432928874856186151471955550268401097271029151948720657615620737258984508910157014653605332342274562636020167227329018044974084982259424210796354239419899584260702780646074005075662901352351249140733830651429470721089868621249971771160453936579504447461429454242641255816011445678887533358168666037623834842945718504227784720338966707239212543181984220522312730463506445362351631048700274232428323188104239826225697866557447703741649391471648748414699141754748909801410092271688901901142703912243709688374370056527933736458353399879598908016867756929752113303735770699300835763296319101580673190397562278349576983596567513476063370738007428014834856712486561380576049276898327674065402309448443426438273791922933823927795335120176560511264129608169737042121591041131801174947700656459219249229694619446259871298751970227870837905469150022849199970534096531275874149502797312741906111172284449215141796460890928104758377797841993870146324901027777640651862133274692503998226522367965184691391797788594157551982051732804023527887014400068566160025228741842951781401921870200181976357277538556051986286052133228879916182923761003578987082388454958964334873445924995748129439539241671163310711961000521508846770815313135280820369974316506708070333995790413854584251951198793922152890273523359221845061153471780209813111584575751149924387460074954848727261403436451269467605527349192181082493441638038540802489206987261521630775867678381179146606855823475960732173606953465410592595775704201535288113697508160577613525914879614094103647166148483479983603262059316394488163722255142197438848334903740753127409737215290839148963184505988867652040979533970060354760154268010676380836255219951731726486609771753055125120529374291624905589370238826318292730586923606806463579165826314918312690892025908691130070980970601227366510874415561604013979914738262838181318732105412631546099279497714458058435592029257697706219644944528663164366171880286045244937642122923230114383590149109425030135907964271602784644670633980103477626849003646328162726679435625711327532818929925901146298216110696553582867074328429576957386057453730123491986873273655579171979942579221914323625857789034846912053151498184260672975273547521965718748856303204278095014026109680423479253402302922453080253060345167272506280457896210083010942061074670533902464595025589053821096073004899730774833279203758536085721466434477215996643366733562322635194930706727008883599546724082215222397067952404310625815962388975994065940838280437914019459879416380333635720086536268854051633231413800527082379337304575933151909378734973178154554396349473030174617563345251824222316364895287477728307762986686088299290701190337501738726825962664410976677426530805907882101829773603659529344029056018911413185606667813873832500357088262553749742736308693115359673325835482570336291355905119079752298124722886771251409387518942871604298242952985916870990755062055190110470868433966411997717658937706619184711306140160361187887865749440647251150371178887014924181245378464113138655229384292004580102437046348092627387258030918491499279025651891426383194520949993441032246046087706050660801528031792452046874035147711267246238526130167376398469116727992745430440536877453924242619040589299724480326511044989615104550776649037064795128470048021150692354222772171457509523810480929313946647972683491330357209751231289580289077996587226376520800433671464137848382210445094242486710764908093606142700544372398763994969583886038980167266101799310909410473044947972152943505960568941940551893179175928264095591896740923145715406273398675769816288152170686918602147863910226665650125056382010064524170931098770704094455318272108594421650957327305714249637696432489155513072207630274998041860235905708835202596733543977111743086583974096494094525614663143584839208858164684374795703201785282560878406810053723453525362765957135283879769060817470026820984100421353556440088084821412312285654812975304735069749157156658278725966285503540022550687420416762183345979540298874702716948775527767448979858993424470191514496429875644984522853078108780511771571947591361620906082560228794358318558026302158968025952042762031223931309990030378665559664352954441712056188979102957037488633318526600594871823043078977192287287723634046370776612755911662550575598289091312574033808081480975342996669834582199710959490893486117287575235528905603575319668130457806892058980971371673620548257696694994346409164586157656384425837617058986582809549936388424394140685860634785255396599699904876672159511962146534342436202476705984773372724616226627767678095248969300105143558750506916195930398278722345807452616167534511179921145994770195615808119061068543312017703534322503439970799268425135705837723337096759753539037542954327694955777524809838759414646878219456067357588133557464371515565242062050456274405007756158469770263951432522955470799737821842110481690474441000885893122094860946859248755888310434098646341037700773370272348905435262299526100927154157721012466219990765681405966001259827194338373153495282187671455989189645460037791935915420731706896710956458084437823159381367779124382393879761974097993018673738203225657746660313460787126058066755682606783693060771631076594108213274917412211925573471803347370164406130095816542751661852105723247746742388284890596995458365510457412831294728775265591599045539224517432588582287940104774077576584440533780757482431236551349391621990306876448041645989278701248904534935443653369322757682054672781452577621956246593871583394017725385164741833474246625533116079449172439351335758721260067586200169454198672665116631547487677624443528155652526880280738881384892854911926395696373159516615724880319598495892332553529509556566324403883825114348177778779965887639554300843890151702872958743035230950331305420721402670850620270311100152943586062714806167441630131965744355650464847784776413421330483725732661776026764746039099942666443759572856706711989067300607567755174014032302859404010399024493922299356371299343269500232987512988603800558104581597657375136901813125934413954160597558099098263930891691537739972480323208142242358887625896685319668861140955785219286912794262911541015831027141781001653365526470757740700886748366653591717786613156523033789357062803384606214303838897330652241595655846135892049902410033057970842024979218092827089970851815505721559055907144164395707404325315637005169881250483124801595800128389326446740061835617186224233571986589075605222322578460996417808406746629149914585149813334125536116518788672590481011543071494937982922920665724283036686412801723277680301478931719264513707619408924738785887798214521459152218190333987325655727683445566175246516087008627897968226559874580887657373746602960672017011271096759070779066267347433141519285831500030975501440009571873366297749681483312670157050765890611523040942442909690375495620977802546440470683342753183979277448425263179471243686673406999706902257468258565005060192553164971073801929798085540978632948157616712049197992643545047692567112240649918808116242794267359529641762051943811989498887593773943882154962613803660376386742271928369039384933068064687155095023008874577501119804824972652652191438211573023750678545378505572382760869484423302160244162247015120335779788723174137312539887038451567829462411976099582040384809698359555923621785145162081732525929260167947446710090309131430074782545342201583237923779486530631864905367587031162257221800107885116955606322210805248191412835832639262707076625297824298329216885680668373898279731063690770376538369353117424457034540798320566789240438882270169318464407406552794101151254936847780630940955916860286430261889936076286956591390762075064418137606553979757925353979013867571243539927687397577085849301560067603660947498509615797972684937787799214419385861709384231225117055341578970067143068414452829833853704830649515698407201615078590346962983927311442496210635780179718017744462859295174452352537866190092835761117029786238093825340195425801952285259578401743488158872068509760912085947355990666035435930999362307490089536024549800053396196761270545086314945106947821865552991675162228633716841488170198720002342508207531451304431320424533325126259752983733512079060208623916722887224086319018273866473354145135092314489422743281501022842458663020603896232448573515969038875208938528301927478968290454372579678422381590713339221238990921066383487636757972271231297324175234720949663881151085263444328107081976450472657924097743831532837949925842693144054700312356416448272819897485063840866650196719171894862274076703474605550109402354010131339881485982715885379050967614526097525128048155361501007993203135258868451374362034087381987950260666780504202362203027938836822354877755230966039290408596316914982584997859237792161323430887512241662638739242917454384042894841279575829849481421166383268817261427281596835656929426611378817892006271533713589130577165544016727990740733871847679680179586304836966825701278756082064116298040691063055806190929040656475240418849908525879862497614281207338043554677575087937060472259593339368971901287261960896006071343025280709760481318514503580171543739139310518257539185435331741086111427813470513438952966386898583117360616414445599789572412139443268754009765719490241253894134329431240385278187640683606855624590216461553006795794630117909793050742363239240244790001406252410503430313973547049756345157690176460387367612829473229333127680889992761058708989677402379031260992171893046116839055897843383677656413112257730373946649327572246458006149059035226661609451529647478057943413628586377286497495846918492208543684208619195567855810378108024004507098651702079798338427225650597420798633652201462233009058372743545981826321905822853189459324396744754031549423136576220675246638469779873852043341067105905706881402141586385199440219980259714426092271126969323777948629872686486448738198348063387730502909009972091759183772142027350796990531743744483612327398159387142521819112463885404653474988038432279695656827830469982113094348566999337213002119738569592461112028496909402762897702971194782514503852591149209415390794216939664213312525193856837308582876545212402675570489482163468289654063390090004660321171946644404789695044068528467778475100631095868304328347997863850734638463004507475731124788401305191460574941817268638584906096424349206743228259809600644773714306257424171756970039139868561082238631704399512473620137933150233556634098346262575443313357450885973344744898851206687723640919946029481848218387576964172203032486451290957026389507269444692308976654530146939818382734061966988932929389186922933878874129014978631928926169407816879866864180150878005107143903129151189379409600507086891908876329002727515378377360829995304657725458647014100140919919427487430697196936487010219841683976413590109379598683530173634616609993039951211735838537808667808160572530084835985347688174865246390703389491916919720473695880035146290151260527296028173589037646653623403555861015015216933941820442690178057600987729850185862016172486218737511675004397077470463443356569940759121537657583590874459929885179343518373201602099532418648946480542438631018527378165260658139508592590469141374291116205531757626086148985418928106080320136318159866077639510992185750468676531697113271231410400432580893699533563756529713949951126535935115634052344113862930205999039585883702491932819635981261053979894184863947480258777150078491231829929574837314258139321557268797938307687305925045145547643686341145440101074776610743003406777167776619794388938089400825807036217238298628076806850921730091736587136761072292145663349250400290294973214143681500769577424085697692311266337041827675605002141786694117218923096361542365828373445460843364723938310592056576490443492046297501382738700861052227132820224969604531384759899862894868166899311707017039447144165288145136385476395082992651649558664347288948949834290454918060134813183513101889298960595796459031684295767023676468117917629525348096172091519362353756466912740673392970006233786607750150665470622179273543632238389562592691437732384998303468818062892810910742570214157223315606199802705864703141583941116853917505341541638186271085901364720608122688043222594425247907688230032299157569605451794789419749560695233130684285711251573071939433296391632886369841012930612668085879612738004353547967002015509012980442793627200462832415443253554693378075415202001455281638932520376617778741163834335772207435056870905250815755231935652854151143430632163531409613592816267144751264203990803724268966079757227853053993466038802627646060352929687240695753240554058183461220980940481545158893315587170748422404699851736993100959326999327102913615146218660027650227359813602273200065222160682134244091494421576918853531241118493753407780925753993537836699126066897153494768123240128405247485572984053699207749088508732545364877636025346952880194013936126154678455648752936434423820716680740949604594274907488714563306054793215257498717526749694698636683789487928366875586937060855550411163236320112347516472321608742928852478998812368973312046668681128944602546966480028450221308793917423039709902860831515187349182672910846372333435991116975015358385972875647691683829796157094550203272758580010431642170503014505858518431147387059752250844880566752817178635180524698129196173915778632334075501175815426880701875215396874440099697934838174077739991478189238128895019060092117836897858761660804797879596689244596978611417774496820455868148463584709910080460208431321324341936070747581606026822335229646728104806109284413356023518122538987404494665721824293641908622289579620735568211195450447308856707514612209558678682676304320768649295668684283019064246088837709699266337124971192943622509887380367683532855072575718160996388193932137973546722481785732285292952034627239969928029925990257082927259450477762440371848930892346436278050036177910782697899871870460462311445154844066008477374422741303944238627958687996371558005061262795922407371351631940709236584271369816859323945559599255678279459602598676717967487821298009139062796715425130043956323282090831591662278000877570001530286058545029365039784611671044868782396874142202583748066962995838256153870187857155286630232545116570068031542898962213226040855921704210849699224403564061093034022100707835315477034316553675804875890825602079509969707789125072359840365486819148938690601925607219947292267293983801412137192556813110512076803319154095036369546083238942729441900987475463498267170926298199417902670893417558582711154790627771920222729248611990823797462263500142524224130779239817523681603740861118834379517298371083560085874074152525579069700306557999535923290105670419109958883991776389201148156225767503575366150888551163155391729735506399211174306617178919057681731252529763323021795562314428269670330231644942604585295106514974632652244729813086911712089559612281447032748631888719586700287506022408922726471673586177670926887547837464511086223185710350803414689409915027058122192909847017058487559922317465634186403255001288629240871741188319775469678578235164876771365810417826793593879906310897648463983374273123039018315280405580718421768176853441431891437890694738280499862697173308507338420264103151170481371824106386618663010331498749721864320428232676589106239309645713995337971588078977480222215799233395294857425162681692716202639363851743484562524185310667671234063614917739965833425300017001474745139472793349838073504798181055322214034396178516166723999222842818123949638743845636420376995424040872533440994428840790950781774587294289745486503998896256422591062907313097579733370455899245805958201741700390981327412166585567812093507601539068877250557331617543832064907161096752395792700685417732226896641357971371761954032009415439722474593951164153277730709911926273720800149509003169488290172703376619483305896996133835071090864323497676995649743741720651670070576164900714820123814452464295401347881621954421124683349784685433682006519858987327732077830730896087080996178972527254244255618242565488535556116333260808292936706891950747268966823402806888259387114241585346346917772053137635988084515586766133137493937609307140211784672788071231143633949336540825094941008020127143405625088859689533748744756271771129546923759191453851482240056103187833982748647289985803445998586980413404552334521674967183963651049840117738432411376792813168385651723542885978855096120479257229431752825272653148215675440439145382418644848634143317704098465175466594007734474900950852935952249224599327279170527581808311660096941477344610434597262730602229820881836944080000888937606233035886721745899312615191062006993929012223495876831200260420552572125187068465124169148446218262389692932868175486257784198983166198568760806347158518514500591826645379389846387440755971320359413918906051236185495527742073165131076187343367154337697801826737954399273468485926719537106950770423394295041359449362344639626806541296496262909238987707342401119385015298252614253949033135279897574532132969857952245060049804301379533108888201999871267985906454608538965581659281752846200857120263057768896686026190188989497010442822091667800478925486058028570889743542743962959031961048343548440757092512531440286943283264225371753661813768818333256232029669917103199119714087934814473505880015451119582222672533351631207701603180354190508173652795697902951342851186384073306780038804288620317237802670081221451454673088078402507848899524446530692300821069842183380581874883826998183445906727003670225652619303530014994837768814618572617330302858032617358864959311936607642942459568678344941909442919993056285024841625271461327342731284729343514928013361987042655060387178078009011122361386458046402681764614549528755494620885764772630530614434846320191952528910557770001429262926311915525891111715757675931894213010659460684140115799214721058638542604810880199957169652276973494567308086158170088889480316749427148099984828872631622939782771821952022526384165482695394451965455465169867358126225480868755771048813073953461669664249835405991141111573781559792951791411397475462792984211461269204635007986438468365812667885158084189216110109021252945639234795104327868407392579558870164170190999931367585908456870250282771895652742157783081917246431972375164441802720962583923954590755925112583246760548343703873833328277443896232606872344289888450600126178959263062732715145127021261432459304723699065432271781105864349747561556595541821327394339439688394192554381618797012282238516285741498115477936372075663598117146957656552069396400495006994631165968859740964487296982369464587641691483035879652951769576611398284601989908019933189312006719845936154738108642643933210272987087613706217109047715241322233895522952564951404014793182485319782597270041917367260958698684486647182249103014978285949198156773531857514442612694644336107348015354453621718284255467068615434448728787716341117020461767265813280624047736034379620020391238532153535812117171794868641148732871154487908103413311799455909758220373939369519320119969037290854165983546155102075312136446686208773480638243250306186717439552626552378502541981836840729609884113087589362088527580213428395867330368045107235700534252110726451793394157541066236909759686586654957504176005961656353279594264788312518196629004334355267739385434525566283370102349425152076500368219856760692002325246440935050800413356236768219359608285082619938064856842610314382105713764023339701820066866619806664595620644668708000320368418496893963680146313734195190803711638719505154710116321630795341973825540974423063062264432514130398374573141699302841738067372098618923435358911572075074330439650980442359881252263097242765939425880307830622367993217799983862570853469371486767960366218062045662655894796330993467945189372341932079856310902530854112241171310798557873445101790858451246185565299817674404175376394451251223925534886518673127588826196836558530777874183669298879782491395377234186471091987042273426623114163053445072043666745168859648287285111908753683733578644949652083864568924064339593284645894837793947586962529217566498622604854606533712249651958834322380283084188311627102286671553336721227222401543752929247196979391952544832057295282003692338938398374358613679794403919175348150901776529800772642320653747103842076612691173973154795307205375146152082372917782753836010405497447024017224755730800403623363477049627415948241865382969231684148084832495289140981883300311631230964968218016415633001432292946212104175639749619667948819343171130427554156746551605058649570317648265679406685147175146948602073910877731801227623033374622734617162202307982703436778039067195868884389159637810534685813142680388012650456859563997024933314030434572464970825381752633044923456859172247466661604278436039311387665201371205820038257657744209759651982256214574473848476154836940755410392303781153429552280925787379301946974696977205080367585973465514542134041458847940343712063818043670036955564014911953466801663223471822900235402792771135793092166116731838969672146051266160179566864790658287071667034178033293363135412546239352165490150102432044612049030914654236552182147809268910580408977183414010644888743184218687558151251395600409110342598552187799349020069882712831173809711641125016095552031985444394350258276881196024388889125382982372321779360541325541817441467184249809848203591230711542608027706600342403975936365953500543484447865035444303280058009999036822341035448482063788996189825944466290719586868181284240688218446439334171403644977982058240360660126730105281613959757056696412277681257985480749159724329969199700600705704426079998125325169728138896293942441367537525670972300840371628653106867621450567536296011018377487944773003643996331745052300371603308584509005499428853754497809138442269166631737013370424578996844581664745115218943425513589547838091446187422210061735688472539105076688047128947539648439450188360934307788163375129444506820508245821558047088452484101821290195494326018938038520717025731033354492383155592762890497516973637212337664851090265999577198761894214440401346398685122650560844556809147163555313385466871391541182308578354151579885747078091732994540631500392519108141981658779527506159017512747432293430627895915988273303992913354518203451084973876586335215482030675392494939796365686087232220116203333459771739055559651042682978528636376654961241045576311608682699819870803951405461504555263039916005081794050974881789870816079288640492815926396854420215002217120831245933027207586443735453087047739455801997939935964155983977431397591209956489701122760311763190217630032355591095404041157314433607559272939474053636948235760681215537130350118086300835988744980067952232565103612364826906321310273858087904920117491088187920683299607375063633799418099062902808890456531759476604161996783037931559175049591638076319849556076136103262228580449936098301168465994008869948251085149722737368565953218881493138878020282306263308560387795118491411439727250380714265552983386821698559519109022864680627057514279771870865536747401548973613863125711663707467077397260089551840340423100711532439038817940086257916597163766306129472004440394862740805183957218777899927183220387181003899582259737830160660798899050114062368396362474660730013586936681524557014486647437827252470390776372970584801346950135991531125991387233771809849255284622494211524446788467231131660926898869454237408499687440433601524531134099380675232838178022670324507263686355366537719050599569001428769618167864775963953751368897604058421625642454634701550921106745403940995674893943667227467714212041655004439954843123530711392952498318211327186782839794605596486334042604098641473341285637407440399198255532541893173018042291779668848746681080297865917927499343621538847664483967528880891556031979969824500420046990785189666898086666732167816148848605032154845720884754134218736500682141656578188414751422381649504831377006115161034431940726703770652458151715486260215895333153053678490370129531650157419791425824453040019005763169127689453375816363665324403849769756749179017712264393927156742184867638114781018262592784885541779062438534128576912938544974096057762121732267975655867154182818754092364600702649101405654005030192979526832077832691372628983598669420635503199879544009272554838377248548042484535747601418953529575234329292563929695577837499322891117099279824722582063633574016870151180309480687314114603138217041826871151768153445687141128586107636996963883846832368948718460253536722703217674842330343385529656000191662207733621621102596795234142223346824528658933840278645449086876052421491319921827136165878122584009788038259633750961809135718291441577263619245627498843365836977513733041804390736824624343895928281505714374781361521074560373936758824230697219165142788214730592804042320711200455267116442908394868232368470825110448716351920186356676374930741993724389718739831282076342820095984802758532110815584080028983634041192903536840495300485475692809628779600929810602431047694288227515193024196775039679877115405823354406159038774644523718054452249335279246580624496752900607970499468946690618010653636564134860891115666307483678627259115516179428230262766212860611110877848485125332901909012298109159673509721243968486451513388126956878076226821003322126989102708272923805151582531421265983138445354976111684688924105622599834919309714311732753907415369992046404637220379702357476918876577578828468726842905559739223800954433630710315011001974576778934577904842302473474385087176886254934440401354976498449735629729430550455474676978540022751374557585443132242209027781365881489660671312528491318453315718420001559073862998685216008756272946598163481617082855472529780814852228535578310778038536350641311761354144550224135488325716523648668935992637983117239573088456926432756730146259591224585228092058243919372584146571496632627974364933252698730127665123503588200825383724160153331543704278903043096432894663734206840363082629362615910345620864411545364314766065013044404774236888787910513310325786216381854290518056112898061248922949467882530851337243037803398793113551304524632188508055600476547651949222698381195302144100205252238461382580920203093761234831847324729747497547820095973371901013533660014190019380380330504075459877859864825989915495096617191540901868208821507262410115898795812532745835651562318029873203848154664057111453695671496228910658008945463074128158647479899658057134942854695226504029195698113348347508076458083707380362542494425277005357185866270947880800426935905634656087333573430584646091412727527195905860405694443742485599732708609482836803804008224058167061019414940077432663084916375038613218460038864993863847184793622235301354529427439172711835376059564018360848987698407941992752093137348063682750814041469797736760617262254547265540957681109562928677483140817509517419210641643260103879543237830232176844629896233220906133761375570503940287200786272830316420100119938649130122316784248925091938584064196028715670639567056565787637279041855061242575739962694913144948076395423327504418707888382945576418739526858806933097199985054424363604817355348919976318266132124782458061645528575969753814412803569270010848438165009768267477286494142508317699926060570065505180835486200130217448799602597396483392432030975765475619172275180935971848011696516629147459479742413940862199157730367023150121999744378327453403845337509307284981899638535796824447672337163325538388646670386782029370050682220661507300998472210059483084887855383476931473393841650377571380570655165264490326445359044754116925122741550933549715454792635915156385535755369915360983631523432908542346118364993429646066172423043833669089017176526868538365210391654667884856771449795126042334286560182682449314530456404366081892743698327869865003746508856788455174185105457710603057837501909851951354973372719658823758315916823202130826784547383277273603139005119014057297415603216029685720102003201397552079544691500959318781592537499936068331513449898557220501786728402726365748061847898940639438978507230587178367181914876796953354249560536282676307221124807392446942919919140951436112193785692371368580389447623480935074941658774314818550300869289014502866165171368697759210919026849319931095835400460495601501182619356738798171905155814407583914139454011972239123589891640307647628763639374152653327689715391206862071923494546368756914130715871453033944885736537265404108368603668430856240762387562148615477453480754759496275112153221431141684582245139858997692567407189484467915867340029797681783177354443665412799345283955145874983337966349987131388593654625695447358855039324754231619644439429207037825138921501771454888927501763557631608874445416544003109743162248558934575975097956906221174238369486490627292431715318032024718847492623736298824218902086171550745680503360779958019929151730035896558109337752018914351841526424896640149957216676905305166886190033806902452699130992460561408564835036252157231981495247926311156923222304316434495728111106827183358358778282930936075820779768653845847018849556881339288260841502339929279866321768596737367164714052015530948060927349448251664500332216510303566267256530518761081403494731138439830038956469746889551469906597302276551337369460224805502135606671964679496368080112002954044059235418231980705344513397916185345585667688559924576915439472476262425457640700373155878548847567562921579468031670325904153384074490141916201041750767727628391230192327471166949766355161398442835462663743009722573249033245285886386283324919689338133385022323232309077256421217800401188997573656093797631743181214957718627801516790804929848394094314740936215287927645491982338088397535398954348815923801085355264079295753681425546140784793747913202293172788979385761756905779805858737170767289597011124497373454038143294838340401569844423930020850330336295297519557958171170617127048354087971928447844546600857113754570346734090265052605347713024134056548407558793993064503574223317782342696870359263591689796279822519588858526325875158419411938533971582998522621649984394305652294546132011358831241021300682245910686389348216137106274955567183886205586629491361081154377916896869989214216650410299879611262014668972597092522471579077074316261987345183063060495051235899367088158195133593846862178758129615414296818289396935073162603307527258712912672181537761748735547112751105933326945091715145656582101863005283410741958382910578994216715035172656445567162183394384698014690793335343701695049899934611039425092174997630482526950049087915162649922775295652637178605859562358838179850564390291139626028834023264946668999020528787840445389882328277304462025279326237433381038949396189494096571305597879966053990864457461503229942401818013006111985314588330963535254556584325620578699217957527448440273940306907560695492104440784943915256989872567998417537291590934483757384463907989850250074608244234813711801153857960099660483692386940431503055982891489423867458075889010758731856293822338489616545528237512325969219677503338845441662053572126342080048167331596850622354032074387846699873554225840546062607263983349391728486006597124034199404479354854457253596117067499344672281629165798742079857999607074502223342268616507191371682188732568906530962732740594021557322320055623200176594601670079052867136911989801413232193634010768005967492197297142829615159860876462024708900336746564096554528363229450136278635597538624998139004779263365814357865680015298555772551361739569602619765546908615469987866029957582943963776931710652079633538284415703610238130732491335285120089168739631291091472150808773089536802984907256558807881176841163291481344662150603216771381903377498240667981981296824767472404455631502718309413316436705055501308727055502891130409735023724563292552133440772754114484772363773100055564224828745145407147366095737462786630813035306763867446874043609382216876809708593099148076603915990764621449934120180809088409590022603937308698808742093502988536652931938883932076230250297524154650147234991256070477674542905627645157021330660821294862643705903830704608442607978932823915341022095160221095652093503187371938716295368917187194109483976538073134301195105179993278603782262027133580099722281646605737949665841934763389622491225056157304646741229890309149999220259729116937863251312936985525679304544842807735600836698142010435147894189691128452839987395687638815163491136322795049261406024959258102373749654681781391011743691093312209667092881104743210842018150229830679992754981264839259311660455677520723592563409889863149346502943715815292116501303549673938076186502196872603984295401580880919743344577802083467420914402076835793761716051267520322954549674019786604946224608173128140589171177440738443015798480713547371992560125481188300445713757601870608279562988334575041649675856488274235543886363990060016210641130534715378701550417925979847289320378909168475518139221380301755458357893141254802745766760215157847110349360274644584838080803464342378394837823308660493760830636488832693061902993504499783997488844087594536361972850529345890438911158336520744280345118245044946510886636434406108743545084532805156198622392606766753902159951887392669322441478499986046259776762495344416415935143588662534758708444333294260257916872041097315013969997317579772822683257385964405719453531384067458197083137694809653662821279188198986691368240468544965405440659285919179087680355847501017233023850504845141345781563438535479627163191958115524441266423191509577375050065031224737647395159391886240071603489701571415593661903384731964986136351623792089435838044603248062013795910463014549724185855373341899173711069476719775250924039200769729591901538954401025940748573118707582233667775679228745781488043072716512750599150583689239462786156426904856762022758810178074733795962050815793440661882101404991291825270714426670502508105922680441368789113062298548233260842124959173877815655281467962806680906184536422581019074341937606628818367466776498014137776473657794572746987492408725025419035736952896418086970402330996825842340290141759079051715094929700873949336841151220111162681604706743043353085927085990277954057074913169282690624235015730776550300693944182847594214594939078484547189422436026361710031570416453628481069012955387293704870197233841164649083076159550106452719014136570643866213579435708310668772684270996461658879593655576142784700747707871750234495067086500691242481351490806680916210960895356837369027010444837617244586003342994011756541549561407664434945219523935974077339760313115822018626622183592664889372225465213821322001553378199422770741796940259862394234996384720095844704062259517371233817428455759782140567692325525322552862575089087293467831043028703457119331714903873092457459129080083525289113381060794875775235036149648866608608629747951974498310261641371898859159109901870776541891021509321565588104730161974869893318218524117440860029817492353714476184922313600105305730084601727964480046434403117920946484820782694314363083661961591362099691036381437327340192748028343350653797156246988480746021148349100217410778449250143271238230775574838521506197729581673563121409237440190939180213301618546367967258526943640592618668784936500857717107714765367886941005048536580192604458398424094309654174473309330725995888804961754440758064995871297034282391500670152017430116757608483237352003653829830834961999391405797030371140179752682455407618802947795216162248952179159081310036320183480336788531518624798979227371560665358873486253814011459188202746775593943150837307667571820950423229813350929137457504378329469813208227083529261060075423138638807945867628685825255150553341240128137096948625447877269288295840235834004621657727413324400684611786046372120134142825975210097077222707416800626711727000460544217480115666471719493629676654500534569029665946599567816610624359343081601205827183023969321748666052795625856751514530454735465690193263611096991603958625128998824218718204782533251385618100775956579725699670418368681972409499333064725850039085939698194152941586275312167527582650647604839650781844334659648257559942598028668042689561291266214492951498298340092107596059843233019854576761207904141750363615724048033360763088642173419271971777338459348416546185668836623632788663018560835183967009562933395141125781400525359188677400067442924929623888091170963483236406055894246230970574065140632321490320978035161894449738963364301180215783476031306342334578689243966211790891020409260426970481332274845759878707933655350523023956589450119813048962539223552317999918060021760073299240012311277309664109646516751240712420705763710634166468969795717025577847206785383996462061446331013035794340529460568007880575626420952651247446496631128646797375597221311048993772898633891013021870484299680753989407239209130537296891886789303379801539183479198926403514689267304758895927847124813144324292711577643508901130951862715734395425650799405593600586376279043873387775295234378392518486100007873791345411112074065495786996953890455168812016565586382556017025171573081651316547773972884837545714987070018292442760303336001607439393281810616308531513572951052127632209680611483870662440551268495268438368583422239548071071135484006373419372227016761095859916901843015919072735060305865202047337892837187498887006634975565430711744531721953471574979352641342539842424123762561781311167552009771882261627121420982694725630097101760922405326892987285721018166954996053788103812135782063857665002520791461330557966102336925689888873706027587617876006073943755388431068688739735622505081837583540455668550476735627439985757747963510191391651507535815522827926185232995420672037645858272619607932084100941332294372886154306062352015017604021955405246257907936746186342261586670207961004222564062949901211994131453345532946285211038891551290974370359706491311287020742118655328748498144760253456792622076928164801425894125977547657301480511668483923366899380494322554459760984506910177774399526268164738327978174809227646942288403967129037143087930736377874762737946999260895775722884034382725938605983194751574201530532041329618658469901051150609880171389287250218384676691049968192607431069823694762181694703180520466132327595804124779027139759466046767269192836677394710673963770902029433880491306673396420354301391952502549251710811614593259496835306525784359672160791436506254457358280975135052977340944495075417016076237611002768276232385427767958969755181417941546847363229213741424034790290225512144051770720185216909146893565802791247848014679812165336362162422334939304718003677880845154592600716299769987833927327263279372669320889063004556562917395719757143676542900883363214716929348293625256539576296269272512444582479562602643164818785064841512660637645055296453438883070100568798274802379357796680887469821555795345740626825687097004792475432113834359129375615120246880308683999698131462807584464947989714785957923083046533775447731889080097515992784589250543037291618231373416242251066656548100370267251343823651367653980291256493468221684947556405787883781355995381045186005172439676019877173884764022790207986957875659027876465433777753506270654153390637189819303586880354293297981791768632862515910375294339835241363088914131513301975228049372981184714237702666445461531127917081765059322526009191143096050674475685813774155828875029968271740925805748517509838307213463697361068331575178860161514623792872088789951469368375691653898026910447599368777130498700426461965997842365865145440572466968414578222236232872360914813495691965127739525225939133230109395888423005666442354061626236197547932162576691109269221496260121279078816632865505154867141446486345543563954248792992475568532672423219664993239086562311088299661829336957485408589422156088960764319572785718833842943560408906967887607147309065491554910335113403883566124534615515655686275215147834011343234136426869055997960860127949677141350244082198731115716040941086379668339679870594972911268103114353877933203347604423916048248764179070869882135347850947063923512792585242508954543763602312280015139744552382901972647556389636498297556167144412572948037613899321946786209979232724127056803467295867734876254517701507609687727534506123461647386351148516066137805454781131360146866017129253956387896974062667174820322357960729178285915766215636287814003023205257276669647259838710703676163852701507771760870502987929176883052757231796218971978820618662735581477607055306735973701918415536181869668102992324210011463308189617822455136113282387216431815149986307632969901732454468004629831163257609452981791926938361599152724717600241033159925801882215478276130198875645362625369517677578254318864588432783310390957220172450763359005914879516337918052831405485266745049434643834848364955878703937054203755921701180481122260644291859979638162559376483451598598151590735707823677622896545943677526134702140224313912418072238277200498060291025271143589036133840138598276891984434095157919997504665600497704598618836785979263832313722902948346078807743089498738026709094121490130978388601511155350836155656973561477172631589048772815966151970088746088808302808324640863316700361648289033079579021596862989893689806337906880123287240303632158112169977883254028874663525360279609806968968817503776887323147453734268064413526342045842642631651200539197732683537930364510129093601727431778509411888581267923686752600059832784444346094165319374804220179800408118627262756951530445244551093663375288267264094692197489998334254787566374078252931098979920500531028154158448319095851925105334851767533435085914135092712601450505426270910214242888667454561261201716897858235138318496110985938513978750037831704479480266857629892498374907445363561020280154358641227861666544538395156669178839529843950398688298681090001100095359031740895390329216115359252774892828416816679210504420518140243830633916047811312771967751732075964889738728409639006493375331470531253779311824167207698750975437014425259024281415665850952008335937884871919958333287983575822632782793182981183660866633167003399421245759130191721810744872040009671259246351895362180226228567860640063962554183192553419380522694694909740733800956005538111157418567741770617671772532076349408850803819006451429407400890288162149638301380733814561700424907059266935108849440393516149029683063173820079669535946586306040413582218487733425376007229310874267610036638809838560514083784116104030007774747352329218505310925916378166052806141650195722842293758540878511062717947474649008536255167770769946982738564926696750363185792092604949784751730394874781812024523784000647065062767429543696490037319811616087662228116251974893128981620435207039687824817281474491608232814205591780182830676056745480245411225431979164876895645414202741703762364113968746662335450350303581025377736605398410207007163813425597972527659683052446990495738787852927874258240983880828429115129272043697003244340934624433752499548645746778147028911416302759674593414396793730501014330814493093826819940164908060493049699583694854427211731619682237139623786176126605508773243237957504118887047175046702933621259324690938194101605186659643527294831642116995547495693037199198061137918412185622506965739108623353527475724976487620307477659902215605209700336003525104424244778380819088549404402401124537330344718656341844612483005735117343931672263389732789609815201176859265007857998725721068265526612356849953542964746799269183193915006066862913069199959692450743000421559775105449116633076526982512460004402100064875262715825002632101051996148727622483088723080650619894707549587372522435953708500101981975184968491002975774268152904592624264914464347408445187281364103056627272437737973121431256461221080437709933501764023147033247252481108210190539089690896185734028680368964426454418986289622863097599597422945356403941436649555408775187873555365555278440907474912935059319756486286304329866431890899185172327883895537566510939584803142649044452565798848016349133185186638342871942950493807333732973419697822296451402177721498956616366268702645540483933375406488628612005329836740437007758642651668421436261920755129426271352717129333313447434386156731962258233031596109060502929443860798919044017270845796355985388161913839659516341548923912168801797210173357707137386994045364732205268142524770341849465044690691686364941282241346555554282344185703296450782379908331215924289843765123670722470603485642374904826122407426335694750058967261573181736827609113747590949680852083052517934381016679962180546600299298320579984423390260663573196991045272174172529576143970081671683701749528027355038588994671450030519631772361610274410647677451093555449279194275696630334267973848630755753050755943968522100748148971083006544949346239960278641820288610649827999701624090717291516842783607268667249950182472754218459870538000316549609442153246249954633180300116080712758748441114859332921025898452759934281658298933140228244066137134150643167646795727195032117896996029693779174352099143184784977865052686253703118600872037840677220175732160977857200869799342958606610950567884411030386030376708805280910077688397606244863015610907885707004395230771384951667328507753897088430967187656791972883102121271192371422711450028011262512672879304747297621052113173172581757197894528133824023946545346242210696751444795685303450515934738747876359301375861609134040189226363224133651680142034364445256110460412683303632770527693353320128633399036573902213111290101010172739538969635052359671619446190559903263111170317872962471027615420351998782209837809072357726798973578663523719413457137337774355838933874289322471945600564369555954167299642066265014366427639460988109618398769559452776164693324436705227287421274237970343557449609469423558576974216906752416794159891728273089954660841755490087643067795924369238003864232558211541534067921541713580189069666948999145212787694697077902469683090247219115509676316333879677795199476415340374095182912266404485956064917062507466278733619557464000938987415137656852896555303118169643588532604654942235044122315900706264164712880728749344350404329974731859719900442098841235354782864578618712813542939218837614802449542817785421443167655171891841200126001109898726011907002554902564766139198331200027948222039044753704402013816515080594757590122188140052926714955249610640200338853050097665644631765540226407243396580001966072154142683649998461779171465189824664943548616137110893905728751546758507680901381306899994053720275539047111938493153698306777577777244211642763823891481048634962440388650182248538996137193128190981517309937962233351809431253676108263277764805262259980801436159847984857569584003006689713252333311434752973733139119972020363656468235959182377197295514895874313399744645333416997074954231040552879314282886420585473412853818412681785763860233474795690895695933200849829091804913180172163210967579438607230552661347191282698885406955543000620308353941050824886919865825340088091874814640219196934280192393663662525053187156765012493557517598330287607934268284454386813886701045819000047648450200046518263456261287630829967369035186597836438927300064569803172109082965859063181246728342918525343383247842745696029297738887222889088374009332546589446504091407507272543702593192218187718074182900314427041996988514770107381373803015678148352506285506966708423112409858167846958032813854893871042712154623134702354844476005142951216796885231299313297770276781525257893787475610477557049983074809539543293872671248135351128099307272296089392247271844556067617186140649610780632390610891111550689158133533478540419693513913893526410451028661412466501955602685466073634782929055321998899914153521219843103520428291878254140265087682978239555147309420462596326986982051216624351143483124934289217952035343781152032013129996386642576604939834839925771359855201823496561767740127006209041052986100221669574337787455929064664997591037096109493796735033682186891465347690175994921323693405580742843547481699937378960832936796204346323099728372866574414480302039353266424395916243039739510237970097328988106481655223587391365055958213697350587994744603384255595769224453489632241314085164091370654105918239698791667224595546971939887428472602924212404785887927758541749095654331462111378151140944833575088570730192913127257437754271304590938208075041823547776222443434192290470697518207117208103120845990373312955561814375919476931510062598857508492364237200939284247388531615282619443720189663485780401759626709174740566962367705317424481418811301142435213226167009212679625035286944815743271208234967222980269087812458797868761224258613601513737814717106212764254392189318611631453567873182990472895143876426810077868353909599740117629462677187405822374578622286424238970310868217297447660801086221308680201936968877366330439715332675312064723011741306004091547997741374372331539717807744629524689471940663351658249532059551176337157863191278651276338701614463165223568382294566992420941756036907929314078965295260395266096044003328334855905225102647792683780446656396097721322037325859793326711109124487032373258705266672465826586227414521982761921044826243594501962605238681937355091094198368600916533511136687139091616531437406694613640443911207293769422369617164674089292703249784794867739409201162876568447310563001858243414897717891331883120805149961833803015082850355515409362701726258228900223079743134680473188488225974356570484901030962602419319241510212889235608823142408734925209029867610498275137408636152742541289844111129621253096757608693441556270397203562277167805714678569341314368743411850510740178322266684318142148281452537285417715331015581639490634302113141052567089744551466811816408481775252237097354727619945028870302257981762732879984342951091910219521060497832658870476770747025623597541694911213306964925258480398122290784049304875587060779366250577196121086734234056939818016056235772985327340733330405022794610251081566029446260020619119194976141569180024081530532635738228650557791622744473658788560418110517410169530780663016251068608402086903341617819563729640519503263615414290056846532299168088885375116985283148324494199756554089114978881217963233382666621928663187867026719049428902753285501861336218181538694787665733598500199531170947082191506893768665256495415270806074761145272665499026592442871272955832931497101867181451252569390287677323400491702951647960893100764029405473103525931128749176087327319741184740499907580270360864028007371241571010578081852857404380360368980440500868189748414488158169778116487281784286605998016059296264446442042280527503684170448379502837997572910434476390783245967732299012609374946434360084778314615033927529521568645849666054255928227969970210856893827592872106768331029740707159477018747068212996469606511247878816473912297000464487438617303535282138299261622126671391809401106632744840945883493698929058503537462596329433055281012905919133923903010690999839359496887760298792681379476150110048978228729934670876210362425324013104579613670531952217285513231003367630486132634399666939885861889181270211079268906462987638737671618910366313919481822232363095022256937288541955357094367344203570098625892955201833865918690546554965674502355266708507880677906653188638459307250210843940041760096092952625702885228167422762959178759897440796869168148666916214381521243955322995833862458691529596750597211390645718013525920711233870875200732276118169774763583431859829607782066834579815759527372636163052102019286736009549724221199868629363713193362054162164603438164741726235966028045247305102416065179498452677683362216064081376491214676052983922695592894169561573070841014766478356032023581088308532406460338698154755627968742055834017559846749654035243551100112991250763424698701731294134980424149217161458579137427266227000338569086321400833917398194954325172690520298457283534241244030297927586912064969767433391409165774228062401999443812067690901379606505561337595549575096203629136229052549453155556482971185112246147084267898742131457154483082388223968419023499024363026751744671467720763185890910930556181983024247204859608276773411601388177270474690815639041667343128010167839941425290505819515124164083665655596952916950163672424391293869677079622659363361737152999987175658692343461433245516411633118634183383636474002462312338303829537068272929895964370820897443899462995077102864586431011701778023120771433199676865784080239935672689930832689871283483829661666456089180773323975899356409443495881449385380483942820870487656643169825855070065625828594665298629396103372449381032348902915497777361723496226121725639577184067863281821624530230012603114769087145489947202731276835045850964985728082560808503249702423703661803605445590522055646936523834290712305914910854601526903282134476478791353662564539691593398364275668137584693685852158115572350412197997123772795254794165299087520150080802242732725261821250007209059689991983364791572501127989460784603450650188281780056031711279404589450203926080644091914980912356450523315920747578016101746054042470179180818728241292722569874166415360226851807872142462577493514817841955013496656237684110175796807952420637989999433935988951858973005961740059733365890795089330888876581738643035004485623838723332176779873039957794506833408643567880470882416936963485810603023555086292540927884724241090874382742913990392809863398278596082512357389183727730291107306888275524367803312851771894812723468367041634939705146767223195467895601379356135825115703720407046673180457473728893866206019367447669151373359575056048437248585150419299362797284597264238674916324132085839697274232892247710815012590999413571541741221795611676625477432977153784977584217122165462197268604342798460020835857847760568509697661389789357803813338218702752074526228576727135701108858349787539619254937599156217704493220334089627527487272054889611589865015288826105747130138882522905511030495256526536243789076696511454798817503425399646042496160873426999517982802637527659411177006905616021011487648427416371569802287882037187573138581265709066559084428636431444120785755618195166121625195648060610981119492371979949571541738252397880467733810755347936275760376131824461007418727716124493676862515040875080212074170432869678046186885615703410778357722341680756319164194294746992035690811935753227395690339065610135653110839841145257949314033554355586509279182099788443774195990781203149158337865535471230356938291137731011278583324155328420137335955854950874858472730694800348811344692295857187015914265407664879007130974685510755585867761618972990291019015005381894609784678175427727438431310020981346245612904386463755853547610441326135252644820799272858496146584647181350982319948090267943030967209157313895692934033359581176191722521074337483973297478352472410861908086383096731844303843844399951866072193867713989547649992973127737975406442749559547892042796947291707591935248624241702718588523496107886360715239326894194766738146310486662757212599443885970611489874344268163847206485328713068292385739223517356611674294104665514958960128797273272549683141269180505478944201048046182108609593422825683923274570413538671452766679039076283811111472881098681782463929228432571996774911579325242806967572826420574942027006630204757783117639715958724579344471776182471280798216139847940179567880698630550128088226513536956532530078630858522720435140809425057982225072575401081961092996010110722472410109477574742553576817582037224706893311589023433147686983846108269624783327285956118221418534164080954663617877059577640853039487590858091069430798228605380746777145175079443502310383353181761017796108976532817034315703541169487646125151334170979996456889485242947475087904079370241756767666593259751259799987574203256734943546267797870102699564015758770364608054097064117315469781730572088997684520336434228960782684146047456467958485570873653204629120332828777730879441334758857700288516829591411481463328827035139988662985242142803136622563695763419216860602378468075788799613530948095724809305650591437527760465298805352428217229855595993733280967186229775175452865737492074325709270389363590508992164797497412426195799193929509913850535100562486284848556795907405973834161734878848731021556463303847315006237967496322856344082052901724359964354333795953744039747607165104815833925756665278882675290482552519309290157964970555029035442073630417729250598788988622956341352286483355891424082042550328034408710990464646907173503639227917719839098606627617061491589554734212632672690291180016204077300281945263795568759531849812727087117702632121474898897862200290673618262264936700276959783370370808211006833701522820674588375477390312248318795648132356419531585331798596619050934388345324423192530120885288164726992823337406806320152632648507959434407643832320808857237507227797011971189569601565361366152354725236906125482108385168382126271646859035717834228278132800174622877293249350231400608414459667402722896196534198545615632962922281540261807609204354299856776065020335741480167519162550898900587658806387699673772473081379160717282419805251233857697020235328315830823017673909566082304428149631839863687228516881139220400909067421342680729930116520787280293295452925666190098602329749275659426280054406091404779623248418396358656357792673790006799330896130225199523207599008318585613378622338600818629535236873125463746703641995579293679546129286132700976777016288854085241639436047758309616105407057718735533122123470676675459660783134988578816805491112365102521533925090743907942157146555431999479480062294574639466980575762849197507046138025709390654220224036983469460338042017887914177142396739391796372012666630808603068416985226491047153710256177787358260857496231108241217613456884372231345307746577324899446010610636393443150781448320133929453800941816463807664606432164501749970156642489568945294065704697830899757046112592175537152924632705570702223311838889800046286065406427753551736900906664039032609271888564815651148584196126382469670481914992242932330938665949186392216953006016699632147448148733040681385900729471552573076914288492632355043959340393972877136529483126569969988106678612204877889276433799759566698701809966415330124083840540584910845668543512747104350359090795399361531096349246449201255009701700087285801330213692124170971300383890439711700442930087689195076221780206110505027297899092017670263857481890859495435609593329487058906286801469203730263335494160694844858807810075342821297522396063624362519417037186609307188055537940484297073269512760134391633424766048153267964647490416825806135086475415987005744820447979127030313704658626265132255494503751086574439690751080224157326954035639900395528601344325338169080500054186663930920840453959074537510630309952435484625605335383096356311307256422219864319357137645882210888043202221841479665150845911870189103557379016728488109596458066068712576966691100905745148014576209666227313406762784785997375980489155711253524163099407584554044847940766614622305064367716925094951578642738052691749211915690268821029806622963750773403476345918275134194766481400307643843607273838969468949098650763140277596327294341661903849224104967857879179253781110176066349881741210888393662290831117441299655767094521535070391170950842108028636629426407617612159256143032869172206232412117138054200123096874376886220900710580283138013294916416538559103470348977806242507941649967182887464627206146153298295737531003962128355105382569931617971847879051462593673651362051393826321237449723488003149016223260684665498787081157426357075660055911355129299517411097809928562143378925048323084104087224545893577872458874218013782799619485115688923488399186869466369560593389665378631558541650562168942191291332224232501489956331818775791390977476343778043996167951106811345948196614088914194943781550037511944261613417785176779495043358481574258812743978178814133325790988816893844690881464512469313314617101511984875918690760235263609279062567831642932471194265380574062175181714315370685170144384879436602119264302323025584295182071507714854638756322148021829481034773121640454529727349976335499789544380015246914820127885678314670817152545333392943411461388693052351953069955676364045637293833227590216034990145554809942314942091786772692484667560292223972121358972538859418476038045227726163397249214315400146354758269977535481289617246421534362897483513267102474342003110007013489542203008340884464395306159940107721333309556170547900230879241640666342028378272377732981471995922850410294589913331298701697491339529944216358805899924424006153866195046783691980822738756825193097292931541375049252058481079560022723080619370627778409120633955917101968892861226062596820575983269830619460278837082008819323939882931152234882421398403139050559990222153913177357861944122770959646710666017776249404146586694373582373478945535845418481946441092097194388617871954862714936991083288650782887768370759376544386385484766679518868475689920006687101115697529688775020421196338558226193840040466434410006206747307860705588248792743598659071971100657832217864812023145292536515081002299540985830316651824147975096469734068086432729783985775367536250279422399581455987457009021742132890977377324480775392396173033239376344852621606304123476246374677718968494171497971705242056394821573061303041792541415097745062096688454416795619853240238656829246054405072430461951482056363562682557261643334834183714665233195668998624655711745692116270282596510969996079736621053149955792070312200251814652914780122374538025903517685511164306446323809640245903441941821399496804016158003411072948944795109779970122025343327864823615149296122286248477349266903389966624971628279589333988214662484109381431516615607247545635598520288536409479524859167583411672137397703205285738435356020112081583398008009195156571741519978060647866200769748256889217925755393203499518333981313439223530573272645401048379975882589737068430451870584740647815183466546478199051738856862860267158635810406941326774183014629620970646207832632795753437962977816396545062083688155013914030879186166790890440169375083396174649782978164690322543541640926087477612148201669465412019098877444967605537143848068844415620000409261964339506435285743235741815629034348139613411264926175486783120739638495146245564999532612902323999374978238350804121781257267725074480898767205931856928350153553531258102472566915337721279195957256267785208204714866286310973844727785866998250076004265433983351914111512364534866549683866520006272184338625355959782724777175876241795085995795765707075417516593018596105897965973357657366578246704559638253739499815972310634992416072179386625969167876133900499346441541691430028488472104481431142215952627729088765871324674951591018057104576930113056796344223508359556210738232872966549672107998630275511265375855568507695770741728408583860302688689913211093105572732303803505165891701988968363830941618970703666809898733279333026227194047022902191577901612501736769594066810863869477077731408164403166011753693879871452434074424680734413819928621272548644471574337566361924843124548020509963082111746824827895566190670615143796244855289711369098246721086459909630795853891533736063723607713308743382380424081150823931672207457668492616264279337653387066508818879531721360484605994165770158218901482790641613454125330380422974303916389743923278030135066826186091829960523308280584490423163502834713712089935379987346072026266122280793152019748465138660634821106956551536446903902865226536879970174067594474455097553425974437410160176167244238232442110108563034583145283082112120338342646070231404172950412270753228724838819869863408391043716108538135711247215326670474954556297752475362525015947585788424677041137635555707122745314205838045954698013647678588056224938504977513084868927369172792663682296189160136136196429626391637199583034932302855213068015926624052344682984725066713495844958124322820508311173027578302669016445266074545545716291470555017614406179519473763391544493893125129096332136258039424283500267071884464746488102601281944023339954793620902557758385029573460010978771556288191962641663491018087574670809848284798755696805314227299006718342105370395201045556307446822638911611515358401754006028705823814166729764831445756034404488027882094620862075897200932570206322097506227938902319022566137680901515666238117951884379547737672471265936169800842938036936694905454740155908138114687055746684515631073858568955433636253542291902892198393154220647011822671970059883349059125659004396788851004741942824081289043170555260929290264875467320631094307500829027248808494137554049899559611338981984755131714181249838372475879290793734196902480483226180696724220768713023694374763863035787041933819795771602070670802569906811178311198146019751686371224116390414675833705213483786031568673256762523855741353447509981309065569504768571938922185743695233081256450415241443291829709667787182788394725526886452449752456458312831375589185580723767168868108163236334148188162395303181730298149519574715006660206255653933018940876852724062714904448816862216531047395634944545172264052174817583472946169187133187483407101913834121841213329110965781795139694875611085638711638573628349430080113618191382782603262058591005390345414475320969410577683123157869652258246554674744185584625700150725409332472693648797127452519204883661774678157494427252422928546441581857267066352960834981236634487578682149075472174062090410698632477943480799343586768699277949590555946180407067098061136529791984161538304271327525177117577770633360957186190232978780625427516367761169270457359575694046854150936825523262190090542279858837590656401650453707533243400169368275576811853037771484975844855696755288897306549914744998197061773143956370766732743070274967517846280743558127955381092967738704474313180650673817100287823512049969533890290006977913930272251114367949290691991087942688918351551980426775497179059499331661739308869720499419155495807936460318627126373658173848993730987426209755685429565610155354709539974470952405287751499189508411190321621432612622592202846168641640188834568929024367139797261049599506187895238998170876007791035553111340262516371403286651315919829075146087150251827955491250258719006313164596152309225324450339899937575034680298476143328317503439709022431074526227308501902981832399606202821372111709948783888098079977891048551811813229212535882556997423952375513279317475283219611778628088252910949313870383825225225621570268455950033740543258161327410244969488976906125938857065669230497775174781596094005777810527203503314446316284424071202403093157002491063420610645530217463382369361047189160821494393340037182904790797602270453579893005179194803798045283242826398184886398867153888154817667929019956564032033152809782850476707535780754250861565758456636925599208940580832311479155817722534215061636019237049025706690419483835007597042855694949034697357099454970478797428697762423594198345846475271684409092810554259607986523021318327819841132050739299130444679783516562203222436203900869440616590456405408458987486380389224109194530797990102951293765580268261512264792304694465775776631380415794875730999873438863044524656697249329093696060059038432042304436296003629369389630539178357492557212951955222112947623769415474848171358820358326902002486950533032789425799413110905160142488681431831441398946713065542272311737484757617612712709566121872891924969737775596667832282802093765569811395992868072011778093199228724323087063074415291702651051098097449688955093579436714967226992298245526127288665366456788112809724989414651980874654578695076857815905242629178198007196763757522566106909380124737389140077607834307863684973508647645636416904025310541716320772539588567465645182210825228319568496144224335515527953369934656019040053449172126882937044477544282707898628522873046115505890590571328262319784511873067481523979963714962660295740646519854388904487614521228415125733237705496117968451343231721511037514768852581613315311115829427142493862634902144652451170375393823230374520933809429166178213577697437730243423968246998021597002099607066488304873232027057673573596376244334616590894166307312649148832393278507136600464418582270888832831687825238813189217316422853027220816144023167825664440339832638239779589540660147124632662904873248744391905862487155536953755041387095104942731383358242296554881075749126612698811872872400801458723704470035407081959742392068519792946280416762924266263656687492198385127982418446876416919788247800820685159507911246228347906503428039817501212942826529550277296307415253920730321682907343450107208239174016400572490995801730546629483176514082959976447804491883717785380435563726429266004274870591968052538934581651902745508966652807953100409509201259822141940773529423939419279194791737062520659755409488217067656016149028140357002646186908010345583028230720568960507042942026140173514979959456316733140158099486319334359618731507431150114058280285261931191927011073931684639656188827823289986445005903600102664364987463337247262906296450779064610224441485502410903927304622383976121923849854973774080380962255532540425461478121707812800096477076916061540885623966697080015447084697537542798073010591430524475386538881067965282263307780211304844602577071870708508991344997128494233912804053320760331992929041147603809285687227727030983769302626611743131857241143879744660095501121047128913547404808903911813859707114149728754351646538723129782319995357793694718737414769091258782171658964248741956673247651042491702877199081269982981893582179247999362548793729922029011491605171919076790088801386356049016806914421477761769574061688519524954933891522159535395225004446565934774485021495237003842079733092058671381034592729902319181126868750941566528304078856420378422734582622627601006936838436686988450943580563306555250367179964879000487441727016956936896304662044808191102136115121082139060580295577007449620880660015198628414583963553444412522001825678273080758845128261354348052998285604713381651599932308076610899793451329978360807593138162570543283113844015534606675287108354949210265170740910178840231143004372063754872963770199165417273095430897032480936271211488124743237570039392168595262884620682374002046230115984345183958579251576412729161125950353672218197390424088669805501894376307633490596922991042490933254789588443784095649673710964128999162719431961635328935863501169704878684721274755435711862427185254118124555253116011810664440675180281457453619055640187949085974455859586895573039484880189369586657864489892347315025480869998380388816583718301025330153047207996474370613007201670528471655664177912740092050973719204255437271901546045816726003192731123765205257742854535094717253680061645755883174594289986687291929846396253294783115221132580696684984709054469580166730010369625486322570323839072305165484680769783640412503594494909174636360643706368344134916200136550218239745772223691112679899217898360095846407605193658646159148658222262790889824644515420654547806686145335257552199061256997968810701827382899337499022472161376346606556778725314443744805322537187594541237742846278027596139192214278536164431398604906718506724483803240250156653160768827414081548496855921278858542966088704183161530487613712174594255254898144586851468727213839162626319647480045764036080967170589977948478952349401914949261433842694613860503320364269546937810347000661378363225966308777063859641047500827380939891396503018131189742142630484880038625182620603922348687047724380634663832795199475534686982136449977137382430844151285914511993723870073203514391473914723835272086508328914794888791318974014448395029857136153884259161788307299394010555918006799658096000803617433554536231852365355610462568665126788337903472878426468554270573186684204907297330658068777030597173000503750300997427489080261583496904058849640840505916997270875432488666403933526672952334178188246937884753846214457904948368028696546655608138260025031781101186871409603047111771276835519930679290058964708598828667996129779270985401005126900145342942725690737675581706294539299281209623060237558085200642392548287753010403012498863184111543384722444466537791741320332786036216259126994331398329244064843116448944010253957229619718382420261699120082271790318995926857460328587462403906662618959817616202821875263831531639415759992130821087977952030109851630133574967858615991133692486517090995927901116251970050917013264959284794306306379984128582294839974920003796500078060258155677294333720929710247280909917995895657077288821809936101744970076725585675813574859317711912210129448206612514802326062162578222537735798689716787480506714696466126633128630714320531219195613818603251521445121355993527535752163788787677529194644188984581981036448440141630641189952906823118505595579941048710354325745648139495238071419639300776090685586846424678409384322227311995434455570641751514801672186916874119274181670466506904338108365034201068678362754021365167046279576430050040037880091031539690607339548674118258182431891197066708157395692911013313397351006471752699101137368587121165660789300625750580009378567160778041774563436492054794613434769860789424275910972921944353791301356194060230458463946062423501451207188172760613450359907596428022529248748423639774870777397269958567896178088202246011064402229584180197631017972173625515448315834122153511090192972940153436761666807158510204572446293569450498877977986728659688036316845674218037578703809862396241481141074155312014858094149576599650328428931305250571015793314555678881550204826975943131223134855250281310927088139980268499953828094005925203987938943463674292569922606630979343992673823639747250976597174981018532415488155728537102398026613151425661489240666805090619252329302288770604235320978882208325465503818635849365697522458294854521138956904070815977891735460394691107874026272449549975797776742466606065076305851553020032710506246359577133658157702595316159015209201077254046994603417524775207757521813506311299218100615383622980359129919262488098739461276482286928327421794363748419080502078076282183937489579977338047430380998886049488334858158045463850200355220344739166706107017666421017361730650182871176277838888159969618208566388926421775220747065870614373078248668839158393860124597625254393265249037386198983574149921252480906077591982811713682800263415155624218166228133010586831555540240592172830313231018603350078874227274458070989902379899579564355665363633496693109175878054300465095402186167748355687515828601106701329797150595753256261678968550983814018932316134321146313120492671820657007536212734674751834490829397806642601451380761071675311562907217135893240180985306516518261038931549590584998951065059645889889454769349145541209482232048615500939441317089377547059311590905770497507177915523496998842485316062490037206457090736793572239549729735922901262487318008361670582205360649976714505271985127149142402979980038541372295746929374296833429980175872690914503620470642955448018377017756151257436766275663963324534098574829831802133143649232893711009948995343123199020581374995996524690053506980494068602360128432705752822588156552605016033212186425691809915933822716348964027835744178006516473048757594200916315631291593617525903196157485161391541908523611465412893909877402456837074099911620043247815207651824307434409333635283585826894361704564952463427488285928930465134019718806324849422857451961021502093092773013220505928183725974718429834792700309829451926129324347191568626158304906594422303626782836616567858128450740358812352799707238131083426509806532906369235046524632470199649015708171600578690300718416191021174904691484970996110275989556695565628971974973479883381234042801048645063456902137247293859602544442612983866257875850748019506118985856241615048576256751024167485267818687610883114945216917070647300760212398813021542676814185303744578570394715224994779006220512713609405570520881928370758586723904622326241687855750703936671191188142755767874910932539910083804281931321663764185912560876152969812506273845047274232069221820607461818795746589899272195975964872553783349327628878301004890591321122215149696510701491928250594416492876869463188421196604756853111988822039991910056466424239602651441110327312803035545260454454645658490465762763472109618031201492738216079834336089260220544723347241174797815431417889354147466986690579512660536076587879580227713137150122279167271293188566215618495230264331454848473556315649195119999845362115142918499303692275521620454330121605476973084819873784083165417471664188495076691912969056260806358060317731717158264851430032098424805923610433949399977655261689849011267457522404586454268624894222599214447791910896055462992933505798552483034845864829293920014877208514229173720597493169870491249373698660455371094460291360169822824640689605819886823861709419046769727811847690709243330057454398488275258268728813543354667217983462006023005056982642505067240755228333503269796050600140419254853648030701661926537653252026108814751943184035622672313110232021600528784467631439929709222462773980481769978355150906975621509911953785846627136309637579152571019206897898469828334455237976604629436751811659936422176650441627042337281447630292550741344426960150712013282759838608436255193110109401894538095690225929910031390045355263213653601469203068918012993628867344466980946390170738308012159727877808560777856428041284331032742669197797363421701220519336585663001408296295639847272599126101986581944183573664247788728213795068284768598949109061902807847343436233420231527320986269338960843275968093708990389871583251292829023113803130210705143640042160561565802198117857856380571938657784516014655100284334258537539530057056710219125665672882758945630467315828194180888637200957519329829182608603752741961959248806293446014633010791393412569943143250101532430711808906601265952487700773367750875076182297669632205359872738003068480923719313727360891832296613988343263345228264377809845559880585261341794903187381281789807705767794076709207395772777501886862871557330707648126873024253772075140289579462441666760161359575935277226217018132624684456769505192643422619599987244779399649044892428438792426824681797457612585397819174140441612249552423464043323524302555805196843711845647432686826653682751871945548869684571931004851468480451877320078596236813847804169447735732153180631908600672529833301990421360027767487420781944252818926295406203280264422490370644301529906333433130383873602659918693497304264014152609590222548696909064999484645328136655856444780959569059853528631260996022642314355364532737989059489649860704235384472602156721013953376869040588886629465969267029672011775399547371415254303315515336919151898369879173530370508915393778056039554688716147324863268450468480975697736213286433405543511785121448310661914213213693574436781691212774680897549139181347858090386704458737992082639217818756018778355893426346045152127916812629998670815763845620344888877783193779450087516817251410546286395830548785755031036896916154731431156830566958010175704096065015766771885540622830801900332627751516296600088834653355683891116508870597976172192889446949681075817758007573086121150549799323363824106110544126512239572063743503778743507917193426516791890219744450889190326129499345194037308609077998238069117935355677562825034496996229971334655557716360283917690942734757660354841690497804517333704137520183516521351500434594646245874328355094915001469396373240888743891777838536338054893198975028318366360689179780605309248090520801181145351822037083016845294602399855647503997188803236584282485238531189023713115279919498350055686550546649326045105836767407085103368918328408620868817713510609988698804575398392892154105629642167521142227104531654615594809657196658386075301461300815526743167721660636147115882647862630793551131936871536561625901828944133768091862736161996940051324285160496522354469837994447808470273241828049197746265653630918698386748841440794345269765128053705975436319192334899647277962523801963471789835032561782350671989472836694642161893957478552082103022188202703641033225536675598128813418740461488896806916096569616918336070360297487913341101191232899238576135199403309401397136739768018829430761225937518233732272180750198090789117575401175628200553067852652274723988714284599524163327140055367817081956079277234880454515820315686212876373068718463544845906045087050936179860988189695409415058809823187153562214673900213509180259157707347385235703475113382520308273597850549061705172896434180098943201353283452661240765361621077186981377100094680260121585761029820855886192546338237662145357908720031535371307552264406694951398843434399076757853028840499616639358945233988032629537900212015262348390918178539467627960222899114129194901564966657535404154038850932738779336533161605763492651273516244810983433006042470299145508033824783963340699018892479024371914016482099544622286738615987605218477264577636452565636896022637527491563252859350363271968053320967101720656286724653525339062899519502812174931076718424068456202586386397239415911128976082406916474087349613873445303576424375691914171023271743167748394670542935069282873817295293630194402328692689521232412123220842887222220411141961839408168811376495030424804715750428687652815362285809612080485482914919319548203959478412720875242834956360165524845978694173712968688906898912772301697832074252628075937546676226384323369309242624373218596947367636559517302695459513028104658396857726463270089068254741654120503035077923142452300947266352214912830777951456487427867727185534012916668514025537807908789557135982078360353310123794536304124933608357228231348210794308294175836497222238793002339656662902397200886538385870114450862936185392961906114764189243260833418453742611933712246764306222748290226102746518178474007092910896875861359921611160517811131342050463511547844225116790534758589951247054037746821737097449101816002475537770120615239989436445730516626825291125943897058412172268914769946124378847741052485375241215622678603352265492349524085061595522560952955390499365283122978062871219637058071712005344636696644897275980654727860098876798162880660527395790281986854514902533287260959665569509829469841569598274537675211366441419376741785738289259082524776577450146548894048752227511792978822693271003148840751438802446526095962860949915441026977223854005068909469221448650192338642740003959224335188201165567725046627705193886507817205419293104559101531505289326765248924851783426414192237572286178080595658134212487124692381073928869275539792049861201384652327160160981734436271573865499167074518721283166692321936253949973215554270852024698097368561716981898151663939091634690291031331466069843832913865255139095977942742478125778346158436378556293802179529974942077472063592197688838011987336814358928424312131370185237905613873506053286038874930957783339193911232684009592439520976065171856548833095321730300217065730689129437156518110678346807094874260077728897762962754627836911162781556285134756541843521732313412171764336577790679993879797526811935515582678493475757200115183715693562700395045212625600322338189412799543579526704734551513996166386684471009348378026049242761107409704437889034719084185243499601056374260441797808160381443746842501392250312943089378815446133454808648818847353362806806330553081537376822752650148544746213677708277919249418547620738007889482678061570786089104075665713039940572088481065289696725319859480669136552846848554783743079005854531607640154898306692736747897571418493386897799667458846221008835935233966964355135009071202572881915935987751226594979236288440611313431554425842204724817672419907257652550251160613937780807789164400219164990570190954932438588949432171559441548758756017348338784698843590235965430256753737452332818021853694219522658309714615199191133783032920301059514291090509328374506232896873394352157673241266974066827323231429430526664731845681733310420206365205912794765449072644636412958282688825597541644236107388818416616243525520966212072104674479083126335660877743502327994542304346297339027387530192474004065140682886751528920487725839420301730161767914762792224719289238106869289715074692303392349826367361692111366318906380250366139002812784727944354298174144156283389604668696525264702761026563268389963946746774053367599111384608745903608847875040733352271937159366787336752607124929762622424257098285096775176488569969133526262784550692444516589269631303689917345068596234190374899616431443908084808109329654760306606292118252931905578500407637376068935155238380296064595949047874233359088772859147419100445136428170451039359110571649065895326376762125507033897193710099385018312315469392635300301786905040898690830771727748440328632401339703110588349053543598173678988198466016293447932424233467989406023610873486327845448112678594817147609841567579935686062579008780551336375937949359349079936837885153833169540020290446802590148797070414723502123420349385951661768245781405480842958195098035722341473381311541914526311423245440517867074960966602234953758443204532408248090296587285351983498182256082853675187523294985334272525581197864844023915103434946405231400861110552836161548818361654617230690752960127097746616859732481595807584223298234577102806587988987028777540166710966027984689325183594643764615509815894453596157631187228034048739340606635012269427923802323085832415436985941756289767891780709604280437617630810720304293112414830833222510000073031298610771521727726025818907514543459986876016032600078905790566398454898135482538793257199185396551226612320535984715178063665726217096719461562919618221587625258819122963189610203073417676200056747025986019505641312458569208661672546164867515779670894757222661007434858146821664016052081813145969496142060873068210073239891947407393967749607185021367660416416740100201075998134902792012815339724338312208540182217011031527687087962922347659859058169435876715647638423164320523393974823734424166475295559290214593695971787692073013020213099613119938114614739726973233660018021956910588050191238441869226536920579293082060256177438470349615687216286076945757544669998594766818579353573042848041079349166444951094846173209761316828080469027322871784933581486308699345971786381296404055979781395503292709817689778332510185505472333500060924307133810647384894449740764916337554469738232753047747186155607618568981943091276606355538220500933616225040014405811368616119896535468692087763127145325573298722975336033155463593716293911584444671593847051262881119773885681359047051036200542040464866941312667958613014685894751497106013375707850542537574898989612740289687037719601494232784158531758523369663044979450351180177389173108690177128909108060555365875879599575086473120786361141089152764176853646293838767095066474297071396672445767211799806569429365541662878392806116171567158428115693334445994684040056828975553058947759616190447537906913666162411289197679113922317671432156000687216770984300042085713487194680794072285403835975236260368440003524445677476143573599215704600360576169112826638221543668187480059773063453237722203571354418780275515762786350270689917612831165604895681873057762412438838379591185800031346481432649984165256801792292840355653123193858868101888967602882055877049764058869178496569721366646743741186249930569512384019971730440140453677310894628528063361879509389209415552301234840749614863175710117945028793269413019600100278527181815750910772379572407337827159512146306419930156869425031092166898657911172617631942605363256331740342822090713333142400631790967392669648772096427507469507010498622739185562709322161355612427452194934069396728790112612584007155855741880489646841041660725401255616083738281089766377765384906088707151986608214094155098223856141810562012680958632296492724222774926313074401833852009473660751001729139264820091279362871974284469936079988937988048946915157286310948647718924916522714300819369852746278092205164048225339944005210954599447837249341628807312641612575248864946052323321199798452007471794463275347718670692126193482610054309618116696059906698766363327689074962500312731079808541452135946035045454935178149951962367571657812171252514468363148320091616391053677295510207267080335000231178031253069897175634222183319655618277165646755238176084430532964883165424030334942781325234136241476641412498683095437155036554385228984665957439735288510690180611621429722282169847649615587931768847679525924975640549039183325678038551825105443400871809962856342753037144254691874525594893066954596480849343459868230989732797038372684106110985026916409623601576553037544022380729002803052050773033208816596985570541312845226970942685534720024355903239032137586971296244241878272142955666895695401550385598518694330196299003238253584210634759167651565527240820172291254493745984188477632254888624165373386221734977963050662258777245367572771752544913572765235207704440358292394976388128259718585299875647280716755232010717972801139568504083454645039824565228253282869802273817879304655259291068997670914944434759178565580228211896808232614560575770555140950895537890312260452292093874925458232794836759902150205429278327163504135340148275486924513005613709176512763411086573070775942841888707212236796957395573225953441258748952404478400622304166968619124711189487089111786561223914482175761030961180394476453026504837007907708113287301932850144363998149532757950683209179598487845245007665354264559929653771500771779274961177256414928056644119464285625530746932373394243544652518346042047104252297563051164279861112032723595295334095020669793274722380926816355387228852531132790811510811817105879292268351834078863822682709647188506387294315948924011558828291002406065466053776819815254217197417968701302329150006251609642520821730061950883123927127171084128631493652659461033159704626058882639990696422014903945710437531404068904929586282079206366195101479905080617081503458782238147791590986371949540134436702699826923051729871468641776250778774187466979614688801335959393213362875135978985432093902913758495220644183387246120441385988809871505092656822159306650673729858003899894849440584870595167990410137738058063069445124278848696546394629631401018985047488935283124897721788002558552986123279426565075888166759060287432429124875143741390409678662029410209504074316448128209231508792704682325409130689105772173386849000925328827269984340560890081861716190260616983546767145065128108608058157558583732688302931507475660508147247771898522360552630827878539257863643043001989877213760410526147917565985675800713658990779372518161690118976526509570673679463579411254270760043688741754373550768638747708518251463479981983354943843189010829258282886141482955420792141687449598486124615860805609889970227483769902132611143522472580674780689508756847966709156129510239264190637813627326861273630685318538961788748865344388956583675696516475103371254284133125540205623346989579650999533841561276363946677933585945189454664436543003912857740829834671068364887258353181029859576815504992273492157912172628107283983935024765867201641146355553764339101378023548116784228754379627571812185794647565468193406076838339381967249549324450483289322900999438866781228949086854895601419204290400685117118939811578264026594584879036960010940466479295859477103509618239217063097790926249133716762752585076715651759469359986873774434788591347289826926046004364613076141870320183397042997156537873329215189922570861290953210570048491689851512193954609358746203463688042764929598787348511770891637238881575737346421122936898332090557973056688001594188313128252445617583559505571738932050684100226818081873868980149541353708114491475355509171720413697326887729409192204690372564786227906868311725889220050420271058609827104828551557026849558563146765718269786798394318845234114662054167153563765577036831766790329815073373970499716614239827365266013837123010377834653262165333344391195704236636010056652575239258489374176839744670094991020506436726831122378209328019559975353664594628878354742106839450612371286885468584005492934145589689391543847379438736314097855672848614759123302161826838985973273455231148195007915869879841317582104571510672664747212169951152845004653926737477789744971138473406845517957011597658329448357283758730244526599745889290019724263095725992382954936501487436710775123080757851507005288432464886485150562079043506032217923133244247981578257348213088192152886314925308565825420109327743669421152444416661703404318364156971023850502054767971817218962787302620642226995802657226160206414886650599543147314416608161145922488541188040322632820786669943651491810593269019937884765755436893041933897698051031437909070554141433957773150487511209094752673902015426114228941145184976993624984920822792704746751622197707273983132092386338633730819966404879101799954257205955995784343453528710386842742049482178949516383221950463228821539225278164731542540112871834807168691632546589296351436164562386060555208379318573926638658879684257899421297624630768828552092526231621118427139700378008039760928390452578656343041185735348561880983681825065370184090488323938544255843106756210485822722297822226180658285624732531258955309756269316739958567537765426182721390081197484753138832284307363311734539715768003093728964653350810675188305006697821303917444318149094053381053016570648846482061447594772637633989189150949762007735619450818534263434783902626504519951239566204953603176062876838550452288113732249200267080057016943414206275468085762982841155194705894623380420503369517489520071855363559914686107771138336001587594859222239847423491150431822254789323119700182769102056006738168621197467083742800440417322408561089056456269760543297537876572415159113746549841777462698538460925410309623987497178813369945786319410442363868708887123012689983257286266742498481651344364168302884189256223233005146657943625853887996055565924097017940982607879967687474744576755842592157102174253393812228731076947292632564336339822896724244560856993831246169744560298257715908356071810474237931049805305074272485851675200983670412363518715471662722269551341826574382819399059570572734181202854503218282644559606418439779999142036050141219282103091262799453424211201716524232186451351516276620186179993364525746455476906038778823011100797454323262282661127550532487757339383933551997792385855287879248132507635104306799219581240909860222536388476581726639952217498548032373884858252215216340047123778250592969400945100838017399418495628697540437491778842891179593579805175635371763227004971466173495578211344788569338178416128483396134522467908534470507966964496854653098687540731769533886987756342943930348845875051771362175212603557557901365120945787751100296611270431259160351688069956161805113836377938068438035325278359587462997325041548590783717993344224484156450199756283341338593781127462665738250368589647958781064840950347748240715142464770339675317805884153883506156882490303020869807171931885152569706637304366527340731731369721097569307258054670476880388827979995438637251275545939148129182081409868848558734796581480915254307486245131350182216775461527181193907585202174905028708971698541818345198443800502708115261733402078387900172472997594847150647409482935431874226016238425849311727467840764545835521317732707568485508382623299995297912036569518203061029931033836043819442304022600541908986831625100198141841758028804808179723650451594275526524306019957570539082264672768430845601489900604125645500582297721086702025822641143783699296696431517513953924694628745909556628726340056946994439756771732748829284313748366810395574548436422687478431158764856910219038328622270266513020696385416074182369482976081817127424690321555024016419670936104816331276984724185194219991888085611398193444974660098768954400346530525846285648092079137654712921327949324198800529386911111393601563554031566683043206279984226052629282606212447347940389059453891266900923170873337002137971337779382167476117182368192014630155398592818609701139906138239306575691604352842105051743228817048953206663884474875332274889068511367769630601934696508851010928304252866959836117101275133865426096560400076790467517961857546964960001339778854055937043118618517538086241302334260271371726663264644630777384796836090386644266425148595593770417756082107145929274581920946222393953535905253845927967536046274312705661005125292172751552803384786187321157927033956771463521323591314167199208684202225550938151750850915767329937799445590984650718090563801624752539222292471745106199049389395499362700608759990308517728714592842442824931126497585430670930973248314283995452996125273537534292543244714914874902348824756434585046313201805410561515401936089880890818887650894392608217634125692937460675542816554202301771591419822247041696235097404699832342053617341374519438125058586491760040235058126613351390762868948621922986053055762345899595770705165604636535166562041069943916350718278202946866737385421174344535359514625917752037092543288365192938716027889969808129774296894076968134442588089209064993715666411177764536470460503300165953607274115882915526508345477310944122709911790376086149136654289544664418373301944243720720781160913508916207257529303220251431206680403010202941957436746034232580370323973952345306450306661806886023303016541101606931614481433213647981189402875129007973641644770339009090114982204435376316762168841326629211513521838127212916439949132984341091773208319046587733365787429187500906928201334844933734979111283082317326690123640593771668992938961048389981574932973041981245168597438585489664743816124728625441890361122433602958633530771729620148240748114795046131124725084312875269662242447582494770958296675625200923548648327610474019149736032705231884397708169478836744120990350070580117387529035051575470058076778670242212232324303020986351631452135292466436384590419279089934626088366983810362879685863767483664471077049221200624437415736824573719440664897317894813728059457396654032665599182668010581771460890459116220121876482336651988338462515352203479835856637480221912682318784282132525654002272820647083820281744421419100189122777936021484998401229693865283810761630518152523490298622166457296739217512253971040465730726457392428789855024971889885251123156972643727706745049829195984124337920779701220874947163116820080344174189583236326925533990352674384500981594566587731739138716049631052966004239952799222072390095833662651350582060785104354302166198939947001776245224116631050442247449954709832841016178623097608841697363285610842646442369218846640185722881652836881681705878154728406238514841570009296432580941174002228180527336722038021191853938464944949548107180035103828896144511253715277984718580912149314241359781184733922527664841861876318798962123676502852031269727676408601763566944841220136890911158218836352928234308320288013175055840809200051879371115547142266231417159512079389579177462582755478978354273818009189352272599343771804237857381101628349664135155862700680034333667731367586231867653149198260162024546790938675553936301652151603895837012177010916582754121471247690687586522928187977733582077466517054949605049586437774430495628525583717732766134187152279220479161195291076007240664426940509446286866782224738157507421840206831677473936114136994794220738483665035135131497252603493982735219401463994116510942379955723939997892314960363657225420987892635324853437465037871186778457821903197635602956775558220708211875946227021192014502718347844556232511584795173158123109652780532842048448711549720875442979748552401910469400163101511607717336086062164777377899812183456806822793008667976417225294984111356034177221799554050115630893405257992000816226956618392597627264520127563560226779033013759238022237683940171529276775921798203273499062334173501739081068767534655976507016378411469057181981923319974923166809308541718753066465889287310175694003118940902606195636632614125939643748716512878624355697489963344893619405831238306556522587975510629906612097558933352388671978676304047463177277753495420315556915177101591295617263396027929027140775059995483789158292528240898600119712726368293540454133278079225555781999942834804772570489404350634221174871909909171701481157269622229148812893037896092570256624764273225839685769102242099586892180320953053338837550490754949811851732162125600496599208596868311575983106755898241295268044578625881248362298529258230053515452882706771130644879900019858968594842659650793801248152397637534996574568021760146049723937524114135296027482097852774964394729659621861402670435204865579332123117279350346311546409668632934381656243321847691565682750273682948898548921021828258474431165823660510771704539641264776115323439512218601286690225627934687845144473815586548676059671167875026583240246323298469857471447983932055294713442922705256851732471011785935077183227369414472168346621169728735775242833974882506959027353709633665793207777372865648463151329677048827972735390018122274496970688400786695111483948213141429465870409526195555642076435534237137874689136856862933611858418337939859191239860807077625550595263194313696605049564225262823638142148873565500105320768468936868619992584054179868795886908027543386679836435267864586110697591770418313544181702214831745280937047874711762248038857598220687069637322837290850175676232361731632163521543303841820693114273294212048030067493274651284934725181740128137662959322471387507890547002835723613863181078854509238038843685511086101578897234066965510340724344378803871461537375627402144470256877985875089658464595841064164043918285161683660802170285890118427692120553016219959092779792967236805193174840311594092250501324950806282770285951801664654619603999516999123118796242358203829731010710859540047747936709864466477991511797492317538404033189856280833948526055047449984835213782931501289571692838775062626318155968850257810615778132138148107252645357484235453908430529726982478426150189590799467382827208718430487810193969546694591430150909598481510819271379618023433412929638023919067559516261912776598745484966809822037437792552767435492541357893803588104990694898222748908301999973372731554507789316248122197277329092572261159105791548734572071883380578058727782808875376084754414198597702287775256834072043902816776842057091372143215714446473002465841505160183450257297972688187996898970053561701644146783952316441842642016576690733599420386699079984000174567930964312859415287651342863095093573869271842344592045340183540389868331241953639040212452304407908692999775706921087215458151503061080115596629856951757171486515224441247528502140104323187274095250810901397186672331162278858194157671723520741345781221179288084484306188612275306815568345327599889369987772747981918726688863869964216886704347456670785779807996966927238540994874857309293848722000612178924950018604105043604492366686086073434399723611689591821096027756373965877374555226060804942875954939434349294098070369027180209233071203359884492353567016970462730877594164927904084208679609456467734298653197350974882696448156691943736201761044891414603453961388712269165775450083831494717580165787775963912751218097000229281020838919948865469039704268624777165928588791678206974882602762708052756282190783576164901933332027310655506063457769734281390586503524412381921566452279598813475681811168413408783865557637372954465419215305128803078739068517653464439743480806494748972400742812425283968619012573064480867805821063556201022802441811898450654109702391810464834169314987397332662561324943673757724635026665173107634323305080890272588819956341032374558641768019022668604828919951513690456091751905446001372192233022494916859669650633679176154105530709706667973326701530677850621745148074758352266352263268262860833366089655632120220810228773398083996574699316625644123929439045048710210439306245053256210078172834373570604312932812350008142409713084914150875129998446420194419504361854582222181454269205989276113824551618432711206573689106975996516075303327693444158121330752004032908249537935355507198923577579244460939907621725993561683202532372758571497252106865828356754526680244697376858326282481473559654822056131312739968851232057444992822234167723370074561581842593343466599860340293379429376255960799778903780512099829844020297703514543311906788797224951326593752074288403299536563346145494065095028511418985390506381041644914160770200411800068142109693366406914598021374279239469938869600196153795350627535240211230420051009794705020042716099819057263139939459788794310863232417200576205507632182567300718203114196684884969576158801076514962543707875963641886995708323525480195404427696499497815796122363742984031465306413513542755664600378672001547168377044113260787478300575630944787405327967257473660706140486667308043068834248852499950223013266885571505252189243930763907545463678279976490731405119897176007243934081115481758926670546339381655227487380493643825996331623519741255412470252897119333076048593169398159620900996038148536252444404030591646081129844563214140309941541805870753052609471450632183344706041665226526763501943721228434610739122422561776618678927675997452718165050752423205184957975833040510588849255372122299361363104036644016791700255297893383039783839655842004656397641336693447481644190990814191263333682427745499943839111680701694667441039479909794620982455661063616019987674707960374099867278800244722064124417093641045149127601857906047717253509917406890971166284748120626567427340344869689348648070941616948998701694985387559718482312569194108525450694818043814383384389276488208052097420097595623501810285095798938385725668877222842650846180281177842040838873781404829753274557270101883154351727728429849741275997530261964718572191251743930018639139345642510342630097127921725298155204577647929801512496816361014870963639009560589859736750119629991043684998107469236141135071765248211047574552868003404144197843152869688058280364758272269435116023905465373623901209532319709406625419990128769351891783439024678971062747639857356897347358272427670869750314459771649374572157285873126583858539014983412069419889072122773766265944290403104468839243469735706904956815322128488929375971644553695188260905091921782415585740680750398653671309393351735770518487293519339366801280876160405832329014087994350195936826521343179757293654568019748762666510849177594178597450000339702345038735484793417433000825950522966892146861837967994993902765375656464954319196178867442212814336358243541320862361021183959745405578565708198815420479920706828185309491380657945910090431002946209187174735869688658195644199304467351712623974622682931112028549442411909864222194837511674744182205060727866106797457622076788948483787695872979150262911224266861682445655812377144898642665664733670285797473699722419946506508535310073836791254890624948749461193225967305681801971652504359327980615171808272781591264582232208144767938424104570666930562706152837790941652765022340465071472447851991305627487797286271380411009771859402903717403508542084482005055286204348370520773679914812367730120846136238959991336825705717453654742144380806558839361992134104950506384192879522636878016809427329081088556529343837194156098507331092696671065725005875197007556963400796611662536043985834205572300653464222161114995143609240818467952023009282990449736853434194872003268738764105143861620407655908266673638155467483212561721649640170398736256842446478035921851075139594779111645171422870391983444749376155341628070154883101991246920833479678914688238391142088626661378705553079140971580586932183365163892166242960945825324257681641562410195873517613165826525051481186400934852877001077431587326153103300566391689612051506014224484762200916677031675068572250021300045516478237006372979734685248413438370317075685422538946410863458718307832256272684519762769253192286880020320025124483049992434437861621739642320618666061177458677595464319160627078408421100277092197396984087544125716871343770265310367196090000556161401270370397653573152169947615682977974236074389244833682319110720662566751244468727290322826984500672566771652554969490433694433528946938170060321931371749520372792627684639836767295847114248702578622219394762616205125062016007600169353198682734883456976263777254133394940437010318503985004463308447155776183552977053332077713447954822406020796262303258488761457442286137962924066104997413466849398512614397939711895920008171544439359990462391068650759378625021207342525202974759385814843458263512715823414510161619519556435815217789296577366454514282544663484538168307947456458254527566338294869427633680222337490633480200138376141401877576809826730300740226321974316804940129818745449847812645922664767416391658836058261680164773458044052590367983149725520150512736220972419550953483033316834469981062054759725716088629206382955796762539419324948407461202434368117039649485623837494730455605334778550576719728692904484070502439459922145025169105323857234370563129381862298314207064131149512887108088746082745623676255645560917007672862062733590470398646077430666075860188883121586069827612073485822901321567321845917309448493577580625030468983161694861448656271797557056994218315581881501582172756456673397578115326710814019997447395958700782992624505775257133881647045175197993150347540614714020013453965465886082379485942664634673565935808698456483939331854799905573078646606963145635241394922832948997126448510970768647265295379134780777341022711104666362446831038354109097205875727865901264378134914164763394448396514195034569612200781163140506291696244121043873795462901858714333420419243943580150430317483782586679601699244218905260947214404904840887982791649484534877797643885366810832855377440477420465456164569495669706068346606015574785723255657525111844149151861889690655461857763783676413719196338555395708427935699164700466537872370607931787271519926915517350524234696640562060256741115565474006346896951063016480623626851037564308152338295860236382021035028575818203515462818603813070640008816120266382712396252896093007546315439737345271521684355328600259937080818477322277864975571357124903165776518632624541764332653227188199157847788783229503341159104731879511993249791222196208480335899671844796497371040445196424439175946408186852211481299413707521490803197759076275312097431488936126755446994245054276613810460744418396910066605590381329005378329822866166267260551180243954183353246136635937411552255712839628637371066808582938582422407327939490190483759071774256592243872318812222280345388157496617827256565075147795173760576988313787065194394705930415528827265564333298523759256758406174437142592016291411683860259911560166293181973259063348302987683015191514799398582784196558112447586093159348027910556734059366005547383884906260094939727401015592549032043772598237026343929267665787986706489868098192842279546231782927090783240092610410929299207991575164371244618866187019199519093591608488458624363783848451831164459474523161905376779112768594463615493658594086216546135581875853702766355879109823587023457464532818739585754113099368282657891794907774760135784846308849746483405396124533527396617042580946047324220827844926424443657737765602684311960355138894237866902310598134022247118602628404476356608254782150812951540134838340735691414145209168223274296837460066311272508439776724565779757148312751556475405021796541660787618684067628775909025453395635780915386654359330641210824230145050452823612428173429762772754408423680288897478205708859418189238638532885959603563987995080884663823868677450758544240525392432273212545177829090266227467763775662127794125538433272064117044844972125739765900280157923752282670357222073135001959072119745921405939927773320360510851631229878892886365915819614880637253934838444887839467773794200995316190035155075009848248952556510544960636826935808761626629466577686528212055351568390777670828682295743194623885452398032905692497860768448417312711821189809524573024437239511043872104974547385771910183746016985328823104479193247467599502632629828325598709767805798705139485655276990448546556502272803327960969546717764388284892863335104120508798480596370018250991746934156564401961345318880104709585221805874479436687207008821092681002232486595438044721168475609087195662909065963903108125606422679665554417419520349245455882763604519547376152853814851973626232971409843117423530313259235429461926297793459122665727160509839767231655744237099536611986360021386949003625756198857213622584769833987198546321658022353590244010847061245421367483494897561580668930746834282715312664926051933534023671560784262961812163055291120484489309394239306058608769828779851238167944868292059005434763740310790938080938373420533535445375637093210874452563336505602287558252342430552371072941826534318507269956718871890048553488111238460367224362449066284575516930713510928310111339736297167774389664932607317537357982117910694873202567225853854328806029470082200452105527420522912780716838928251037895124588628249145936977994742779407415119391514731526706973677275194831131071487698025826902992329929501278645557629920818414543774824044002242476275829559027351067422823768058356923589854061675027921846385356469574815830032942849011131393695432440485153692322848677528909401467762312935428444072695422673132565382580199763110322279148960878839592472827333786070608885758356445056531599170562361906562271731972582061698383228508572322903465283142431562308302402518205169911047220143752907099960099569134284466020244880706430953559179216933478875167935733522589437145315143400828977574816268759443204814570742994928351887045461242869720296836271204358610303078544484682675303732571070460134730216470505626864153887889492224322625790436130075154437629577603306759418709828377876336691095610706149556637772695019779716772113539681809053182759036371649585033895798810041757365773532899546451502185058153725089324004202722665950014949273122725343380993808316615856431295381420579642120776564464628018647215256421007506128281289414601209066610731494492501428581949028600083059169125144702714264634936472681122216592139125472970242610101799118907587330688003942144124448778101481798090226304641425776648352604640282321178122532224616440891984628691394284829573417375299934615703984371530895401333901831143980715971714721376738226556069406025615986635096766208692564647118717354110267561023883954135184547359863475481077082723919895788161610035257025081487702291881659067634528367224840817608702480496780396159331744893894587692963167749297577295269050283934361975350731574221111598937865115518604941443584343130062762335272977824226822718586523190461596008178903076600415059750446638465352839833522218081809344671931482005894867572409456009174348141378101910055835807893154358490656903942583953437990974308075001373529315625491957828504192771240468645094441584888732374730598324677522676550405803468333936901889309481233274400922249520233994191125947702971028600097781676703069069064773489771614651467310765814731476831708141706754006572843078662111048491728707234941287491479060361459792278855974299747878545224455853644800634225826503355431363245691180345389206556354791627661052554155771949701659294557785409040563086567951565693977983249363930827802318182754488336765783358887569408998810359229443375812205451905079999558423903116696600241979978193775692502201166754178808683479576923184494266897842854669186330959853083185071733862137234059673905671946122863744720251690819863522159818985783028789331975046072560558577995300258103237642461018839471656129892552200907991732841765739888000645989560543028940322246395298928763271983639285728728901207757056441547906363997298784456244481039835704370561718828830389583652409210794825315017267350501134920623588462784669855613626321684410831255437491917956695099943408077095087309205170850574568454053547723130177635576478219401215840399668935902700018008094924099790102543782931806267182569319540429005433461467588964831249661764265150999127360980001916144725143057050261094916948984915484171675139325928243321237430080348440953768506737711122889020537550961454056620928733784593621525772313617078292974605461467301538285819433028489997780929489003052923014103419074408683870195497786359211391435361031901042028727781890132750483689199483696057153012356696060598723585871529356194417816437543261388539107268187821013597342319313033936296359362223165118416132094547725882488015877330265393526725796895466369301847750608056527213697368375961137050971554111889022099375308525677761911515623128852835977870866601532749071621856651522639105422889576771193301145279437258636662446945856689869348088516448768735960976271634314614085476218535136007821859191216737516226773078451194361622770226421440669722761847450370674676093536864131551406576307631998406935528774269070738251538963553158064799795977856603092857516737565110968182184547012877664787327184219227968805907910518936434736698370441975192749659065299297701033265361116362267609329292831421255539718104657045832158154233472122869938477694322444946330457763837110595456503026998997155284079216696394203884840487477112200418102012183656723066443824857636782474003481100648796550180468039263076531014811645016150516887483733866701485333740243519417536158514548232019601400793746404345540136312253871052115998207686222712621104600682879257587985209659432732895572653677837400179955854543437240400733635583835535718224229530544651912118806321283702951560244549954568352921284825044548395009964612424360937391358279000151293628175004308332015891524267916352689609920922535312186553729873697282602639385594263955558378487571593646783775505207507879444512741607064996661109875148257164129075169822769072594680690584267304893236076426005633050517019803377139949026146026147635251425723039231275530991514871370779962048945526749966501810821917799301888287779394195567644133698520197875074897566317462333118571461047760412001446092605771056967567619050232169221411082222453258539115725828289752272495282048796237414042700449966739032662551932543891351260212863969663905270326376599394763572585156773583224257122543159553193428488398691898779447150867122143487736635256487244847549486196846797183754339174697527393992878964009939697703071655602760906173949449092235420502821535187175713341978955933898128593063347543104530578701404010011471256198574293674462137187437053486780755959422881550447501665263236333992389707961075621392755782346415141668444059874554009656998677482485066125006960601161003826046899828775055074970803099145274381460577712992690154480232598597605985779144438153994819178431117091789333731246770525867147758673150920184623614960052457791753876350399164387389554878601943528272994230768925662158527322039408287695002249014981270355251148777002957375377819767084551854119911784482262496965037283474438307078191460056347273434885043387202434411442076478982958957649933043587206091815803491837113111955768168862615937589275923449851564677554839955613416439995574541148204702834785993234491318694280982905551358789503082639408167304696108126233059010878915424526118391507920278536175248677378177211254754222990334198997952724228256029217320834502030709835649785517879810348172611506889143785493598225347493751160442792053544473592359011614648184232106868939395716133488963141297239815713233012060863611716859292603338996435016517341207636595556784771620772552381669439088576267521207069616743838012417321311102638786087120442312691217686756967122272477122681427651708680976020920302491810314370617761238835788356495982393862656541388252207865299901620099465142190177891831765332147508095907360630079931751128164600808380251742274941802218132951086881714360583362148095790352221330644244637709729534278958335178036567314206178623117528199003203054636315512395374378098419821139942431025122177196191512961096111320688662031527478630347507993807948337563178468858537339877618975846895491956941345631212882960229337606000776418234558637987808384622525555853310069858423687173917279136413518500778835948865650230035586388031649341737489492894742116603407420678352202040664997944191990878227414945067876772658350169118388608302267346233424067408053691313192015310273656645828012846328119681723322563578647577702295756377408955799804471178147897626052924882916751879752524748769160956543692125704269685356505121718592392228625484172455816386804829697059413050670160518820487258030707888388237029819430494998586956852481253185987755483096108588842004461321949561301606139117961388418874534247394521281504611669429678263052048167589694877530949759991085202587182060563739212391707032942512304771187885933022282359798053994220364085755108325234089565837232528225604961251199019594710970738875506394258935402742821655215735439976834801354271974608653997542809239121935893582356001577646515190900622714343872913984737444753259198260753881980709816417094907359818461313453298360243759053531643341349230034952231808252762567689580324462725806321471646730398870081422675595642557502866411016026614717191166806768419292959996576432059691474033899141116773173631617203479916580954968621052577851901734137259853577500534684286497456419137723795298114516297743179209349788342941506061204721444476917481421623144612913659548633092769992687764948937008374959682962424523774223284688995782397804300043049477968258497088382076162460608836912301180340396533966122234024274841871533756604098433969117936663808152995935783489003184272548434567797430380205150880087423100300532691294528282809544459520090150948566287193177417640791813610265359104755267082102389335604224444133330553838037563949060608300886815408287387692399137066976967483525344468385114107875683835738248628536497762116445298513252870592806368817392161976941099287295010891043040402151085527494800768628872556512963104922640652459340124446018748964933079404813371560974795549026901850791109332148383198078498398784532962056139152070013854254157874814697387619424628701257493779575370694432900254130127889305529140698726732946898893184622658111526577105745211489493216759577770041833731044221872281595126822449638635745666024791417171100363126680788245510691494445961365027912753647461918990670153746919639009239341098691954166505619434355398450920720721752131372073876846238322897965216096886152395258234495630419510097023612514426968909251282153469523724339710983337704512595352160439478578996223206908032995194715172892487676342808042182076602184044216974907344265162716900027823911974654363206819498691699382971519218877241409088683499252666982149218838316658727107135699718728770390382913959915481635038097816107121854825457160414135032419061497902938413597829794947706872348071915875882128114617023427495558270283599485224449001285883275514927801280166183420799849566865419059080689766262977715880187429688903753609623360860478725414571904669056521363163129048235519210890317244813126758151275750412815978339102137430000847240628207228306860484588506443245226969259994751995462700602746362441765224034656884305960220519581373620766591652327491261411725548621251458281009482149234046790362893045343831023067537731737210462173695446202854386380724731125409921871450996084731324299142777175892763622014769028658201968965146454606670791393682981703912852451405882321209919446327517724311349915357621862252745303576143889494782487769736575408755938274613283111340709578050358804683894475602735220487124075299759788903547103196650300467488316693248822475480927862455217428456221337456005810049687462360201887255437322795836618735413167378239258041560708527691326810471410210821960003867268146838809860979727906971532455874466235867778617261656928332602403700915356388908068996003981730794918721512486833615280271775249875162045403681043836619456674642970712385325518896822986629738064517007101157533263302345901719601385279107337058772570084944471313780505467931028831553409073434610806198773405243365038097140492924956312060193851178053989154645683055973025327844521778018835335477004652412241834972919794074507161226283279884141738256350374242911144502767571966360490684018145166246231925532192964959667650379175200550559072690141739045670793143799530544410867130967347167102780510810784780851216147798995425041484627390027752806818594839711229289304274134592819668230237939104696915475248939270797496941505640771698605550880578349586643666147016880414694150387377586172757980518085221852626418055306602338473636328031084690558577132653756387959815482684432920113368602092377509101416303463037346724886008288450837928419651418866907517493972141285160303277589118697001213810548144983118060674799356247822726311581259210822858095333550724190807077778042516178497109366322723042783155001099925642876582685910196570454516466227758014251747807539875566735314138815428762334226846623121598396311826863033250877820906943768373162128545142168759940464526690982171395451800230358273173584290437299516370306196635392235270326892073833405102166911802996738168657423965145554997931876462169610542211764281114397320361474041489555697864874937342974391916033428972901800235122566379155760936208291996134560312029117880980774684542490485593449378526623232253279122656269915916957324258025559633245540119557046315137813596209271521756192881378976057204608124505828502844210490764721605779700698670493273580189080627778212771050559655546726286524908718820002942300767639292723255882806161068189645749617199993406996511758036032210868734183954542975411128685153460535730996704852178275181256657674944816922400414109614465332694825145223342809727249750757666835736632442044509381522491681561054593338628236346440444391681314192039570172184984949154785243085967688384900936059408722468330094578113051406812219248346719162276319177941588720445542247089499509485030436214968983889735214395039450869439201319339485889313609866726061718747364121525609478984894561451018972170749724105699265647181348483265049561199085440444630308676616668880669744920929008453460370425356833202039565075388149710869099206847898472671525033306174100660001586490294232356711597767712410896225723443805279450670820634175262439716145493013552059449610856903460212347195743619474985621602216189238717863287131052287215241326682276364210733426061262264804683792148459241893414967141454066275307651787400589285814626165673481504488393520424218332783325550968290780482481623578214666705295612743276763961315127006237820139628377865525009701216048393785640249725801968682959509795314184193813945517705503811758926257699345341788683421865857457545001127119662816444738335689556376730227900419246325707686512013131163316918289351291899854467029158080973296520654089485725284094674645900757280090949277975409788834785627941741242478242526226084853016002902124195002924141171881271341982387626514012059267251556461295167878492739855294240060410927547941344350548095603260154846380394095178263507062872952975560828125777025444396843552178317319305583805500587417795357059189560393458658783792169448270466364991769359848984925769814886436871767783860858386054926352816834591705517629538800596159707760269086213980672409575510738578792435559822879044817252813844189023611876731868004685635651894226754908913092383715207227589624027941196117003956302883531540552339035429886576579569119956396397545103299940656688881350133575810973105393680775660842197431095846988271659113166273485788027210942913162484844501398726930932816287525047316951593504947589357559071854951644582723863081359737117735747768854235821077791761253668647766157074780101499111011154893172055746542788982730696762478353441754913517713531596847083931560813958133767867325186573933680781994405698562950880257222038960257671043304247557894724391920257461937925994777367158930440496152620836766400427434653069236036102718330389602935354475833553106972182672424662941092020676724480171789347521967701497339529278150043248814001162607317970934080612329813430629806570130771486578823970441518751143680966034254769612312578223459026812365767906133950699695491457481926652122199478423692726309561286315290433995372195268000179106826042849580664502937174442063144086984465972169281992445472028003910805767501384460576140688370897797591995419613749835106416804071573338711790949180409292406005616938419207366481578043653053007022318296615620851310548933921393984816247087262940073836770246106991416987321232014511257827923726140405751666144684638457495535479890051392580921443955602303915743821184088201199159831428082582662031312766685720005267651967789195900818780362794880036642867144984773650735756877870058649531127847247625302602514601385555556075036637690442686626080948221505976998242675381463072453840592618071498050862122252458939689044227566755776053779375135969033938407993082389053920647444635983726444190193734474268159285868797693783494405898641666946566671722988662735712263554634468702487435779999966700562916962615887227978295332423408342186847819461127927828785317715115009169139273664781215619704778034679111914903300073775570206767380154337923890408162770618674343219523044060888002374210527563834761813959423718373616656455937097997137660846738594731806416603606044787963350283131611569518377722487393177133675645696927670125400694165648414256979910067450088377173454058787170608777877395558308518195249483132237665086089982363797373132339320618028989543236013291112277806201651694464585006457418398196282702105394070975846094525955679595576819617433041853951618203781370548335661727903718805485487260660001071266181876817320281687462915089394598581726587248666634928436518687665055760227339694658300670871981866387236577194305447522083091291235496424315740297490036279934626582678429265348634310196155684667356597534442480374314785184604477742639486436594179434357002099510152205786121489933289120784627470973130079416779681487162068496548358899322138243563262991691895855893017031503816594203982798654113667131734593526350064825476130434736801921565435720508286124465953141969997187720250294677402293547035981934664291247855935806225990800785948968631933190013331999216724796117316693832567501116815390289742025135760381808813927053734378307341889689230806556470681168538685330957618222811839999081009955479239277651042778175266065117831967820743146669305529803317851674764023575171057133218072801558181789499802750979711192288743692580911197623421033123034419948124080726709840205055794983455646106421704920351316023848822424297331958523903368895977523728060907426106223476473204745471008533840848482179663213985667378978020051146494469952635465351411690962911973694506291638193150758137803095457471270151284098334728168181824529756403211900441090810010664692683785542468742462018983377946427342504301603580213533768016431075956894663446420065955629176317841329655257362190297973656398993800125462856436809982145655139064053517707372831447407888113197577330829765586413636082708433166498744265529930176946684424879519426161668029214406911369371440928385393140341134205312637070692254235537218664153506792659712026358496784110199145484348272311525687592993863071967650397148190453125922960489269076841670149382773401680282128643834634636250697017108463092811378196044543979836448162635230545637109416807753213261565933754394641242987517350690095005206380211816988547168060624339417546064179303302554237002356817650137628927993519240708855637332376729628187066044050872482956242613908201740453078522809049794673338515692878100763257681959577035475251492228541003442107604322885037558079918661837566006311910145720992252909897002532139343212677147051879848964444804752822495503639439707963194093668386021049491069708517390075142058484566922683312801290329612900422713786644520602808063987705495624349987811603328062951796313979829101391642239597575293330579957696334446535398655078713835761337119962912645187530298041749467881071649467340805908129094250360751394243747838150888143274679669386019043777926881097193482890626239302505497502112241945714012982187495513621872209919607501221462811983042637645596217029693549588766513431216171707809806937831361807193451630821304142742591313292076013426103690178573347264564561578087065836686896574890953227496563691556830783121296589578762408152787393929249352579342819101783249671735481091461427905764902395765741569718830161209784582414289097329917665567594609209669051822679308957197415433181857425631581027573727193874409218615136815951023813517523235343984072926921851548176635785354815513757104674777800927208729691593888861054682974313276677458944195374810796595119495328591764116753179896441662447048868004399397675139266976066349415235931740479777017090984317725934353520737606363488987339639780369941566155195850396446787199964200083852877673578901614411662259852891140013380039779630182930122263417062139499295929600989914274866069905014237324155681915976783110233455442784068772383306137034879845561925252420266588348880466394799595978236231735751545708632030681330356874445069787012188629957457584325557027938465874529712841787245607554387720351882147514208892075300182486818541980101177818879632263260130660431181000166821841383904177011517517257642163534910753183895745994498225978557353363940045612247907917706482105553511472038369755767050335685184115206139738061767874064036047337960269150163377628145766066296141216773120472604730278121719582635256377276996675990768373360481223473123743127465468397965089377170189877018901600850426150559430331901399409757853072987826058679704036611005550012151194820189444946772264816939975503839690041248036354654997966528780511696324136388388235562279920286232697894519990228886992746690358121342628260845366915507439372269517488168059885518787277908013130131939907678963916722265946473768939323309791667838449559165259336471211775955085883655737568690289217872172170344908766174235317392777028356648197380817003270128221039850157499592596961615347823515759074076113739666317261743998323082020572721295249279666736216881301674633037919520493904384959425646636313841744411741969396531223770609579119003532256437200688862670943043749851213182397717148786186375474968630515433790029812908297723508798256098417238104910375293756848848516138700762116815018334750355147827578932299057787325673617455592630275749368327184599869337414059615508728254024797537609984430425232018574076825503245272088989152814817066076011216267076854854324525928357350471845371269101398043169826647558319641049463224750989914774882608110377272735346137736774086216301586690873460959062666137702870691037715265240914698586838752619359852325202467351151400920537095171131691881044003204227875553134016428053416368330688045661167549079860162970326445291452506341492219658998092256093595610295230718030786361968389198026305500689953757587047212665702725339578769080980937365690660083051871383990820904877046829769332287074545159975222514879213245634068373280670815104563053847141002892796561904428044474940003246559981211195202604396124370295458951471246226523397734561105688297365250824294986164510929835904105245256373170723637116235166987905166479267951407770906556508753304289307915750955707665512622420079972431812094213962149487492567869238847610451707661717278295584595526319089115795311817510134506323147966635009159160267428392564987848787436472363812423376000408918290165092950158559010345739331510344466204642117944110933524394618771393248890628672176358446342543810550515496724258906882995419846201441541142704718683025148781396248382507519727546188962748216606000798515885382797214985695189145162151258923653673608195987818540923127292962954077775203739336829636016326233815277119045414284028137392962821136093502633733029354898734660595558794360214926426063586229614418435010361862161331701203554523870832733348749648532549832778845332566200047540621252846257810923858675783309738404904127879585754552302602774040410264862552260826191185038752786151960741163975587304399390700526421770782851305379587123474269746981333378924016479264729008145910929903808909474521903840568658678025082089148484094170298548009862024464777736797370979619527633694356319300856015406477990209863997031955520888522679870530840973612438456931137124184873028006034168578538950243756788689492461993401865738165951594981187847302922007332869232620579408328196044043869144695200890734698969233367510864013251886288222558752170849457520271494475295218327953448087242397649104778462062917490963487598447110800296724121492689265507455984499069959639888120173946441387809618475871278499172174529967517274799860174081598173403149293399117992703097330517666313432085385736571014781061392496860085319111925293672049441327561395753488958751676457118654816547723607359427605134060370920106405831264195454255323603317588298215924562340611607699364459184467745032912494134729840422907305277193743300131492629873450083623138856418599835624502993815639868390324322557130425197826842479867390466571187238046695801778307723840336289288972664764410163884977804874271302124244391132737426191438166923647292549309041819087981435154846238080396970931233215447242826592477396340575661033490231126699097241532889505274335513465608184494366190852051146254986529962470934879232544549313818359068126700743721359133588753470095549670079826784689187872863698496845934330780838464563290677924588018137749599876161003970799720707990104703726667939403948663314005109243603666042798028163756019295780114270376115024681476552118033599212786174143818362241453362343831022241478507666688972165507388308774032360961272521267554685557130631656036962993106758739046941436397562932913873971270617843393962428289298296223510367260623566754636066891886365300679571394023609014408656496955729628125933571896857423978734627579326446436363325594662929334197040511565768137913964621834996226546957731474165943398193649058132314291247805111076663840354229739271271342350540126085804241059732592441816608457478784193236015606021265742781226656879039414243509520496545399821554959234224565754891595421942072180172995243515678580571349737607531797626416363567559230115971347868580806627467512748606470144862168992344412594372637599713900320523316393075722739469865216832213983515175444319838869595526062761339025727373388317095731683998388494556817391532611736878295716020670073860981934716686584522431427211128127087800336459995433242466218356041309637003910107602668908150743841177488611832891351549198202247207250085189960766609446281490369583546079296226439891615219359815445830503869832654376086941191977577530014357012148896428057490606442833314292331339157584344355690805676980644431645020639829234858710722031836187297351306419981899686256406349383412233690165563225957367550959837467351702337828632304096042158619857995304390967045607503445048255932335201394351781548640667401940790535295375094024876632876026098420053229946032950979753664794987443764217278763445852547569860792451300007320965119472455723330725859456541403089388898593107596966917992006259458148962177753438036946956821435002179671561147350333159908256959983184319556271528777730784146312138321820760586897468346098479482480245409519855398809941041358565872795012504157434862690011042319485789213200181292030598070192148432769211946893579335629108733155484992589038675137045880063232995387825912709251054942266437652611185417095112637240970774120716468145204293770789499088853363703656304561774597706145393838828456549741049128014346468823946580942449203499315081403367257537592591277025546789029396423875880108359396158621044755331708840374413183681103468328994388802869232225949677829993770948875656125149414611943737149309557449701388045647984967408592853827338908094311466786873603160404720267988525180096025391560635503366837182915193936428797417321812332734630014458930011596142103132705921327965761971651091287738160684547830276927234222596727052823247500681575585321906057002679486238432511576885317265189924348264398396974133999243636879844312262662564448287018801403114516186503177145034310857898362472847786769833994825364614221621248160370858642660778772250654098682831550214734355768289565330223150577789422184458394034447287672456140685108511298723166314359236873582935805561304444539506730476135094366047987970123875727913032792342543193870808061590227183078017560982311652278771739575884432953718873778307467020324778016910086646777756205959651693698118925795979631034410748573504446233421506001037241471221568219401176536491124009901350506145790761898780674508960909325204561810258617252637495429328693146649375092904932342680134612829510570907828152758223944452470260568939110991304543089639407630886807016585539548734857503058726027048972555378887855801920983177622176233597585462727728400659592837088861289710186548762666130494121368365096733037563868572097529644061493291982894163710985742054762918985708169254171782227523224833513195861023351561784482341361429041185832264725831128243750642870086550306092687032057990696559743207641782269684671153885045814326934260048794186435288147411124226532763945038347862484160544711559852761124638808698822395385014635076744350870710335964079728280063966066341489795523806749061556112108755359043195842033420193154547232027438984677796243005603498660994546124612961263001090289037843452816174290468798320859587483925382877805029156117646756819845165915329421661286429596374805060653581425365820830997101516076202999038682431787928632789229336748810212014000237722374354011772887000915417402636462740116548872383730340030585681187886930181552275489162687817037407670868086346223731140146032925556120597192112566473648491984764763228531147081722335514183016726560463279978759168072078122282380835339993590458813358135004031592764657161972017291978427957307922369323641233582900137879157182238116871179718481985721612302843461520761888319593866083518384366480030093003904632879877873572857572663403593763747373165472535866590779700818004362715065219751357302350726324758161820476955376816847594549037923140997380888133017126548190038522071183911345037643047134143434106769260670794088957514691677925219669866785693062843440028904602689339308784220023453738602138698091305419053599672059111011689170586731501981863872966892222576227308336888869057833432349889487885947237997722422064052834826224048145268315930852861433900226181204427843081319493133632410965776096512247301694918045507552104001215501667619728198929407485953835855596293488783248990216980996705313487591170891907309443091892319552929827132610076610330965581602714747888324920869994671504618194910757828053805550394948953195026525175089100032715438257826841320436738265262547092263688238723846642421438152714318808089516048778960292844442047516227766809673634459957413451529898371726629572911293946262400648261384771198675332391204028817935706879323357819899122543958412685952951421267302327216889258162018639645538767874808526573986618302528436087940020749523620813768192900814823817995773959153159871621011375936138919454935148064812991051783840846526576146483459165880042475663914619901964181085057762401812143160696740145943006179602712462806588545026621206428594461529196812125366991459723482719946162651179993935112765255447523561255813015581274404191204952464534782140191875669181065343698974952994355173048375875445434680090556230147941913988403329050725498197143758049439726299483685938215698077593530567761838026956209081883207357010153663623842892285366879182180337267161767827589648039988874023139452595743304083304216276228461089092932961719465539700530462111250974330135089780723098309011967428436992430395598992393262030937843313886802461393209470036725132559756962726369987481122439637094241801127173385571917929044394623260077631729180366379261109168355809813252440091511010594522150333479535160353058129988921920019497732540048437322124266439566004489207189742209345430344491192761990454732516098444398654065797522771973081423721104877634769516294388741827643983391691423473907539819550257421756423807282499387760870213648366409134636819154901154548485468401282211319073661196935589353984081217252334749817487909484258344839707291711461387101445379460720955410565064403889289064386418422575210497038785094013320488658686251607396702040241781158235186417103838936607661672751326669827730987225031327862082198366531971312877483870109237802461755573993709331503502654214813528057566023343457794903282297850887665044287845687675835317617416680224075376230479470256108795777657581676612214886422172768655736291309384188166887384977178325387044137218240340693447031786055549130185792851999182679910812700771412263203792836950019309931367995075293223882418949984308359436587734844018427164291692700528623180984783564541166578167559162104605159068300930195021164418961404891255306359456388417626045494701282460440056225340732867461912617974751863554104285183040592689694055991485987130269499489716710259280884235365619052857436486277093134172300124246791486975589185548635563961662971268608964779474071910577754894168926222155664949311330158555818385401259532097813377754306736564644273871824968382522465287228855941393162353044005934927393187415451201247096229398796894827946343614200114971310895787493626900350451300287435811689064207334753991265079882303249116772330458632780891191186441790530917613994924325864460828825706268834816024428497862236090549465496151320234717789927361905326924780022810953681119359651001596100837884116500892718114044431648336265428149934916520812570807406123900932427341241505253002895574870415087031271933080247286987067346269091499550790464582971597374360849988951015815462839975032011762654880292888051518770865072066153296794764522133917126556335623963976382591356706943646334368602547555364830130479436261158119943065183082711277234165904088650051242184160192312669220335972680452684272197358716301480809276309525814579313704476419858500210877269880430964718943260056066897952944769480306151175984877898115669504295101929196914014179057249361212083077225552052069664987697081994631749315974608780618040444372094662523220823659960486598225300646547505714283626767587966278803310737894611942300568091949694672255901499699737362195340670734482844067049984058119799640226311400103436947816055342777375823682539704571735655485310949861802667333864508301460546080336079171024050014147553820661769624817583692183379040435396769974217982664061377914657855923771003308801376662345368646092794498069507609910733471454429107570975875743543743010804436144586537430960818205290070216411834659564732875783462155562240753598805025552978681392771645619465026460772584222275251773347955184120495304739944660428039438836452366890945335964958493255917690906746652673997793686310662959749186853162863609980360390017727713812076224906160376308499391423962422178019276090703472977969837388848821081547985833898579334962643636240190704654068846027755093547507005031666937844863968289524621733377337758948905742783457167279430996420041274104020801312648596089626660911863335383198445806280931284353765598468770915444917875387292556260808501399426883596186124440095218830080082893996469972531435805577432338033627796759638521551742414562976521464265836961097567095765756454414535547652843052761431569793083347060076625313726083094652914419332719985709716063279274827024635988530371099663139970287776616271463561100985743480561466158889756492033546445910933821930573502009654202232599273458458457095077524079405998486714702579658147053387522821587269962590034461792478161423415357204272169557879438022331951844375614236698471755495065587847806243384758662007682666445162222277290851674332198806082695223323839116493633636661481558718232944277438249479705381351274569331483379810050311999692087450238335314405406691520005427101699349958893331378724526993877218903698553647226354893275713996310170993786941977265317366351623933791702890011302302144994083232657585545047177802914437482702424746289458088848148171380259672973261884854581177678253397531888744692968340653282064798847670884807274121390290776361829994159677928135558307876421504114499251791577679645094668216871940521449453860955017552603655412089546753888948322083642608900612495187603149083130202997251654983156983054760587387569663376756223850968207024814570930048901768352141901444197144544849158241211812088641903058673319252584226509840954835454119741010123256872601923678635241871585801648264792256664188356092937513328535892805317863735624712439999210343676305784652253149278912985663514642299258446801368196351258952719060610929222648327968794158266606005155282814816210865538739342273389394584438319737430541957937456124258724266697916479711427162868145106951373399038397549846335147209199981562368767617245619229149010974269981342034449016214416242925764152836164486530987666135837514788227615474598143382968311805965634475518423385190636723342250302960444822859746394272964635054834318528860774028903914029571791516545366232958630212039356971958825016680531686451392638245358219558774038574980642823990237431508668079796920277034914704353616087703137016086836539911221837618492772475223093977009401932954483290688338309823309252807161999873169398250562188562397048363344681121748672351614983705449846771717794601150790924554737222065191999621179399661511587002942315196022795425077525400762559816662103389424659934236566775301700003539977090971851057785212364895533886954808851855716657263232355746103450857678311872173040918636315103435165960704110034449721838730484598022817288542168203999068777043724400636354030545288140473690398357409299609933979811680443039464510268166860792455675603124362184441873249675961531551296152579327786711119093186646140832518937802742416827659052348250104948853668419869053703209030060824934993968932550112999249209673460734076909894476063877172818033799563530662793266750749081589453860721981933932525631931811438013193824616816737411293127223233847205107145680209749512523268889390497905007598565291980000610083718104725962671915354689672618119874951992637562309167168492162175959637920274156516491933077368870873157700505354849617494741538905525745087705934485354994107192841691972215792994308923274953347945032743186687769030536493561639430199593555294677649789213278487615707606172553608329752483351933584876057241685844140935904876725714686777167856404506414145695389898146163775308821012127576366534436427127533666908746804525595182053456827564567602191685286465396357575734053195310624124995994319038001356030872277694025479939659910641632226149257344880238889564226287872865904263017347861400044861815579672145021222606565006137083170402530711491564608787376648778803395535037568634680951271843538208233144994082885758073463089856868720781952188242423221835059168573902581927503082909629954388898153219520568561239357366398669730502704741145172369262801597385494104353427293259277343289727198545318433186757380300290614318148604702196726683891433326246729018011115969978010968952820429397075653340411864292640943059738698440892513826049091524405542994123022490295560862499718671095071047168464926328890271369420080235922332209626096393935343521952089113851648755925905033449329645324724625450550806515333761036952942755756803707104172707753477253037168822280674827948792798698710418150934249838205471712980059541506449958769827814322907350579593281883731393206886299267783210470525253617259205901408852623822435236578096397884043304215886087329364213448507312675505598410577551717273063461313271002973346643110993527836887225084556958052668673484034302478324383692022426552950272621897211385228327420305231966960493542065333889809933200249318550707432638476975954091271361677437585349773533523325784601616847981522999813805788028301462634947159971098999439916974676368855222603181760418084601894562988607609501401868344157766985232976636168499736294212652660159844601480194116623131324239648194715807294636012732078236926155670965401218494394183886184364585747864094471277193882499613216306807317858254947567439802048244661144083331113205326712200182907963628751293729078089289867219431092372334639667173169616418355666981377819773828130453251592663325181478020579276418382454245764931238950407427268575866686096415956724455444011219113216915246401052170048947054177766248506640935634585886523286623603085099562103555447287475508074587865574473655696561008931350659468007762845387146772111454213341584502871296599713281139919445722682161263571766790510610909743491806795192571888905902793203410300692449366660702889598830179709379832623920417045889069283436730738724691067592393998926545859988198372968371210580835516515949891207074515350883229740291257123106232257047744654610503443118981171859402252121514696013225043872831201560501125135380249075149218517203541425109883336664035823908068858986903316075459004339111771485769550822887612659208726704101037519050398026688106041916154217790735791688963190250137312705216621718710040026093222050216255380808919203353808318238415164869886089901707986164268054660974700233673832519424824467374563251528046425504121843172104061933280668492225802005116630494850636146460981791000358658365657289043026398105036500176043395806289115839617362182449674393285198454236445472889186725397977659054917220845230823190274456370712294123359749853020985511564797440226813558948660675518672045429654957092273544088232380478335446260989987544117061453778300038767027554009377978295881805854448833181456491641963419116866517993940929941545123206894734026113487610410345180374555180773304449095554103254519492840479433883533559919730847891222370249979131943943298758197999660141556321184488256402396721291857055586424391581051311468193298283937689208852072589418316222004214187169971598040365465536046962714858914616543948542762231653288186251056672419687042316730462605044557597097134905393799820086281299932753281972525095421703603977732351915284804271903061148012018005865496426018890816701573808418819680094560274980097743838332197372223968461127564125152789000493799314032980502499215891198289945249235233513514103419769622801308326993720720945829366388447493729410251870151938524413547402424183766776006223247481688895893940309460721720196457569050314651266180614587292395129216453830913794184892408585494829154996587104953373184402665651200721763335884338594298292879099341306434414453331674893063551265408847055119451096223145635587433419182916172576076583172380244391915488108399335403415381255977343458750468567563034140368628497403140393228418929559959020135882824069554717720500017662113242053042890909225095716431384548594439179609392020142940361651579399719220767375718821237531302723160536450148258097607417375371189026804196582499964605827972778316154225587118561826883408161557601352504377157155027636388440303731026678569948032706378272374907942345077522065926139840796130999304685312771102810112731487189704778151253056523995805960407753997057636049792878792812637193994553481712217305864725045546182851520991230141856274232630907599084189614767373007944271523488222471716157880462633680994191416867772338125314391389701542679069830027939382648911355411697380351797390696152253527788515199966949722006260983395361038026255934920277495215352525911872385380920830387887473654071309838869423255720498928449902856931259914531314723480423207069821278284101551920192366361262425674238256482248826510219052903838557631139668504478756037292086999475662513914837998356535609208365801530257259499025429044745262203978841792074316622887667012366110144135193109560079315730447203585690583532123968694657121433532630979886736831860367458209924139520488379340449338526163898627652982292451212981814666863551723584892446694464746550846519085292904170421922639145407923626339802414296436862003905901496449455718249024107932282072040072154666972333689301576257735197776896032310992012466423808981717735267627328704397092198108153411651729059843884947441509242564427578104007898119431034364378526213940283099648953101106558434220576401449505188513407723756122480570503735058319488581747418656526020318732429655667978853373324518818429873837837185769134410852003251093810704718007006023518868471578291766598473713636354429102954865399233035006018985166490704087487399653051016529775796750372013645751185424272615286329033318842149738188740758781426747518688564734699675284919291003360868594493684236929707797925541449234066922203214958842630945932533336867829629693477542588457646246334593021764251815715996621526126221725094037383753683882461718294623551660783102322147363637987955240655183032980085740319564792080030756248997248180960664455788692522928248833681799442907282938449928598920854196399148438729175216483862306833552439088089547791445993795615681829199554884270663788782037910693891681721563606628552593522059429778439676111646198017270627158696006152579111583127719769582959028388774483131099971140944493731599305458887621013708582105737893470491734717557598247669713015704370347708395642940172459810013137400326019410496782265626354731008214616317027410681099919356060956208961235844287716412932481321194629691492754746841269065104503766917658691024476874044731476890562987421958013912839626244174517354504624680788964858399971643854413253036899049029314192533453940721690842683540230668531427508212802891914571383817561140778743593151163603540483481360153574936775264110978194215501141012644151907786891809501097730302696187772357778033713336346897219831448125578823460920242033850080124147575860585718528129798962693082281978000202639826983414400205058608605634661060176984418438729339385260979960958075657548954646352861922995008028240637229747304255678474436240551759766346640423830196417033919461627158031464064493689092406108221072871328793501338642882105451706237845015414511142194052687065727864813280452507232640926130566804921414012890365605303794419992558322938519204252319626475459047553898058033361258542058379930268155967873533166719347021949625321392446429392607612873618601567304816622061329461075914816803652183398853958059478161148335292994375546067682489147642684334199287613055165681836347020715783508623024902987528278217315211486884470838372791631056011953483393605890738391124515238882631469886824566361944688820577598076337980845764097585150146093470312869863899901882433964641284451141646022600652664439648390653449952731236932630034747523191820849807214038504540937033197673403786119188985101137425916516565216837157188733284187033551718672010042719097899655724950854989260134881069988612435136102103408751919111473238650640817227248134886624016460725286955961059895352724173986964831108775136537546913719065397415055780274757939225986213390894577231766845248064999962500253593511352374190681710761046021122561982157393531506017626575864353305956878690355247149974994156928653785593331948243716576438741529107950714157713242605447223823768029396361051408633206365858224439424438204743973886360837733362400029116963222310008000303014036644735200965116491517033280085725478036399459282971900228621823314355197485104636329293942490946993428632027473622690315465561500939522701440546322010351551114185748112677839757717356261018381753552070774322808195528889914520326835389181995132520483466248330490971680523650005302373252112560164717440142121351803892108023677273823774876838355571230562421671912179141051240642250997895543891426363452046116560267188855765857310034237292065189579697254149779356680333879217417612058730516679059483812846205060725307824456703784173648757043247536127553998637429013926532758901420513058238919712081810640335012754026578980347215173254481238153503419063866861938751135451515267571010020076906162105937541029563138977088245540768042837979589689085367717873616217405945770313512604711118700036262140149571766296958949996670383448124307504692816219717256022916830372185819022641291991894169962568065295053282502984460743507016910488188206228519578208145788148246821142388205048004043896305088253351601047382003653883306998928540658336835382810751436099589012366889816568109174575343536278287659293571047443911103593020518213639165111724008225329622563168026249744580665305731631556076083799874602254691529101271935893966454966091325161576654397269866147999407912734862589421312196112961526611036840102569333209732510817628442253538136043020929443340040292247868772126847647921726487472700510146803761321420058841044421110975298847753861247430662351299910274023038833950956753931228220727998489773358300341708150326204576329290921052086891250560946576278390253196970400695869849766506507943297801667009467938642203290838740813155256022169496258344489258103410569943472370360291463023507182996682464487290947258601714492216069992455108879214946863723700621415041855242772966733015650086735660347865679151830395631355122343358261298836937013849155413960172043467190879836105727378707889106272216215403948249374074383814178821941774262760472189179589654171258258264831088992820245883303038150384574207627279127924593321163580044406258067321329849465919144253803724593222669412727262493263768819300874229429174597565116422032803646824751825507611092458047758088653655283308215303645658509183738296042901930974952437191404597467035484470863828780666142519940835949499186804907765616845780444894292592307307317663791346009907725052956222486003650516812144990905948908470123176224659984028807948998376611962347086503097779351964202233690986242898974165705544085383315689889719311875542643553521088171964687716902752286533795548123714266476441324268701537173020483048476481730461685835589574912631545667502134452369772757179516656961122140227488858659282793481292311668236725592293753333486972164281388327772374838207414004402787159432744393303481755141223938534079993997912906198087241381597537765438360149157232117529310841591718243331654776193653767107752060424242842418673876047046526794784859762879061657133410414688173308928983918231990328492841794104710337549537609330370711840373473810726241591484943580123717455101188611429971796560808619187383329190155384134129234448356764966910064563727741405985794370928730124114971602160049939975630607966626038348636959117307568279486445486579716181224996600048628912550017478323098112885743482233984407845523459404881796505559595385872101012408639847152382039691774636985405503272867461177022515652484007057034895953940705892692105277277436362022518040087938537538575698623755621580025845917871290266424957270881881287015683705120740111067302043291046444727558968730845372758726308083744839558646430312400021335659344784015218584916283721936931703306994596820421540980733082506713810588206537282506798556912819683841652284582876556378387972528267163175313482269841379677046910900661082083103171265777151243013186949225103734822442069247240053566253914847124403599767851934420966001815083049260396118354451907110045298298810610550650512758075391237378101955645758742699513038469742613424455277557461614328992229195935673835531546615660454877926333913693373783152016088789653453631082627328311944148200538010117323673453785533582523908438512590071270184648833779585685636430158643038061432694385338686242918612863286724346686611356822073053041604779882493649410256800007194709998123752547969562992866318682575710558553532476634822052437571803127579340705674927572848835857749010002358004308813217713341641853562305744109039113597296748680350044443896790004423573277606390384949151886540641319666809950625776037176479473968366630577349807969199846384061517686867796334001009760428199865272083929482951387204646675958359588274133974566892709116230537349374757527526333212742357315855222177907210645901591834682909485911227720943501561905721309131735703955065788383367412784461346738675361689142219931927883149847145404232702451143869660665715840065504929754985140977893901450597827529047801540682750834114091134259341765035671302942664493132879630739401515712255746316408965485821820446402681122676450112720592988514731136940829292965737415833391225863364031871440944700704960124305436299776805961275568910326842764768176271454152380427195998751066716682017320487581838262435801591396252105694675595869538784073505646069240265867279169250929666219718021516395492768743571321532681465751002229722238288496274417958168045157989494073307046345204955149558289174079848854312286336787090414803227870518214009515022075958800138374061659349864086859403218256461288677072658109384217925980802955628018602797612654278791064517788595388370525761213268037424920460122201765082887044615255316963009612044983206778622116708190374669757547574561765482942453175672002198450997253168969049177569462482845687942998205912036862870916166305670463534056447756063214374301164642579815442685652572476688398265103618466392886743050615983017769975146954478335661323965660427383936528687232109329911805250318770917571254429519606524982059852403597958646628009934850414978665102677223376571649711521438117475087657179544112757731701418702251271768419680726910004917828319477438871554111296396093450314691217528920881220166277631144198337703913541912522189297992349117157684058968113103894241081029630043691656165380331702603678946055359258623096770868750315541094158307828406538253591485305960146617027296757854386357039997873068045023499146861429313043126840187042913006692094671479660941756951132888444385759797333591403699839871106663501587427189229362330184295590759540398434205141728544895224256627396242934875561935095806342121502004374284449573813172607495562989375409177285412614168265572354974631971450196117581971080061987986078826771759263509156539615782663000630477308348019947969031013970627794756488848944141527969296253073962084769605450112692011373970285909321180263324427414392070900931766431026155680484638097477891077445624390099518499958821605467116846380707806407490756701268536795272437179029927967929135382294455170536929323889791967067362170176086241470938354459575119000460950704498415773598534836809330294252653408110057494040425083827364601199332331645832680946283446120730326178659105873009917771243240504669048537066061510119683825225224655123273159342726076656222908072366908663403594246977485629572189299428537898357823675201139286511399094243035800563588345194713937773069562308131308284851216495938864881981525667682143455798478901684440526773129639714206993659406764267348117405020105943874936423678370690910535292634327639824658579362192823011633765332734708587634715062731641751085089913243274202063858835639831103492832153231147900441926216711459445678964156907035789665258880632743511761325586247001301307438860454457030373844825510544595001914190384727081928084236894464802206750630999461092054822588313940640281309298940733430775642592054071278118801921193942138440061247179110764195898227129867577690427097159601868868357873841561995264605567712635896763242905323995943081669129683139054921521212285716925328138996231752680525366247772150038192184718932424216740979320569681575734744418373781216614822969287716462025030536678038530101072470309526741927490280779252351822568449847190269419111413349474186215076642061977694629342404446815059009398088655744212458269371018389338871815245026200349577447992324863198693467465756419599489018358064519920559396859230983286606602640141184862929867197594118228437670979564050685240833387040949941180632515434822342054459662398492447522589326567165643817202822532480102834608710570439499834540418461805135730045465731691676184064636724231831447761292144302693510554861205868557163934695398452612885678381107664825663161371732825670227252891586921247308015934183178558375779002601365750408834440430218356908964264946656971369651070350142988126050989758237249045605663450601430913161184214907974209683874199495298001394018191423425080342116298810140834127132200671419848821564664691965480801054487903273585085941078925409793101893732734636259637294805328943523101814786459400634834663833247721810681046471072482113925952949946649389051959451180887298308294700872358384579948526478763914210633796732241815818705423955687216371323763126882415596347681108766352623561721121858374574060309971232034240028576412693042494853621027788385362379525184161337527701298691114473963551279693728045984628571197726114693953821299594776028259138961357967914095557472448581838994575259035731411391872993781941569725790215649202173240801202376939142463269470551552987452993292722674241712906331457650522667496279757814026253706866413634119616391012805819239053220652487560647777561549928807200272385144584128787123988599232635312974331932405482197809734865209296287107642589977151370976777832221022828954577556699178882527856223923132385590504759338554331811435938610150816642629049802185234439593540077645569182902194906092536482760356569638019316674851544586259581379663833717551798704191613628852854141436445465069086335429287144280638378004455690166863288878880523194487130312133065083914320048786218188150224696539655578315047959997435308450140351408841533202200221371567750960266918810572571846640818342241573218896677221493209058179890240148889016942436928454662571542622653499110693278884352171659867082770632459936718751469058674886771873064477294918156312781258096222603439956237188136452051676831668152612115493238754169831037587749656407229310797572634560452145958971402930533778980609498830588065761116105439471999463801949708696446160652996988013406696120278916682652594872239037953755734401728850024985935374052235192261211720216462046428042318693201104312116960425818245574447056822248497309542333682547685043620587199074311432041189347419642269252452986827423687921138969295468496207339638686212316239727606398116107123377164604553824445058676033483810423708822207516504439963008398399369904015711464643058620839972636919986652054334006524486164342107661140775738874629898304491713558692252789185307411723293159718572526163682457442036527342127146360932584590152783062201290474260468282363133344186948965380421901342481230246081829309978989249798155328218061121936633459842521705901258553495994787202143534855866708978220111726849422433376779289326975518256986917218020348541702479772866193562687531308734278249287731380014008917003237415530765970133232671449772310918773078197124680746269934918006630231844631817412586421416154654588333146663499282943263243671143007129050961009966182786891755862109778903199836158023177323157968056339546626329991180240289718670563917329136546686439755211102961330893789711965697409968772450623277483608655547828752799665936312483883033890443095168851761153651642704234649440046548893317885077983773551826682509570281135050709476413569096649379847328682808790506583298972629253752362902515658024282174668539564063079374856651940780254044926397232482901046533545909290559145836117600182728089626697631496975595875146651221414870681450147832199330979463554181203199213571581170807499429877840211879266297748205912803669100980124954888191819242012888678880251390068545082570247806835206720235176904952117884960556100969271618909936178785029241274821734344026062444920969992516353855835118013898215709707728156157567445911887209043615367420828666930876960042428699629917235007060566578954256602436512475937576616141981386161545637927455892175899670327129149400450868922234214022028280280627228623944030839982258808303774367631134372010164166444206731397207507118414937666027850284485074536592670044111260017447998967075224864210886243149970791148102294237456477582952427029396563559196929669716157669199023125907459162579826101029434196923431590530617413340792207282540354165454990147527161752690896544422775294185820184718425384216091576920402013280315705898408312011623490197616187831894068369940825191457714831950961597717865035568771316421145816381050872304763734596034000308181770366507974635869230466489795812586827655639520222060221794369700931039025804647452241715211625467210736024755584327880153813736703138000188233946461529694486000774391468211773951547099731358955141990610906206838511645273651181286907520729180737085129398947277273190842803330825049209648561124575709583875534958014031103975394809790312456024782269590311136878611181392043818332956107209410822769881521648788510556809258836727634031488260355969599145346658471689941799308946260854385518603182459275696053022901089200920718282192443852423087603223635992305129816251214476209820181772424565498518254482983074920447452530779473811558047938104515853360356376029909150236672498080397435700080465950251244069017121542345898615517325214580547966989937462466674506442895277579253800691029800063497522433150873619578459700979813027288925368950082371045715376391623748733043083353958479664908317276945750249955684435341936984384997238106187283783173772511457964529753849359724376778260197559452203779193607671973117997303678624099007490704259328903042822546704685631472238493024245617165776732508466737955977837630167575394787961273682440917774829040772928483730433686658960751704344213538964456471162626142932123779744495754327838105298605403786825402847634984741638315450235774191855453903465813392982119722033091313020480887983945747418826170695110015355772802620368107030809278959359749953010926197823034175548051036533567917917491868715798499244815919568193838842096899234604436007216475590840232420338828149011151031478143402170189694956847562382299049971075192606402426167619949452713909973098429175091653513660318152542785203651469316002455904244968153748266900208019899708326503608735074298974814849664685571518350318015944901519553556895143545676536132656049440481611159803248541568323982714421027518116910493842197797993227778984353354594410165920640472362454104435092839514636978803577199628258679201616821313237302730106443478103965879032995707222054552210709864329239142254648557334527321261485519446604801214246233702153912873835199176580404901906606883009966461832203036870647865238335815269105132144837574256116729403993076621128320796329100017301607327727952061815923391964530893012717716566481513181880674643744872500021786533320576439931334633291992028299869934658962085607627621439739138234688967620882298409593914048009504315153066798378484487924551409736473017274127723340775443809993949127104614656648986736355807089090741122565990447098161733046284282757157576128939170945757137518923924232373446084780166270044167191569272235375742492671495395846436587955952480953623823647185610834399535392582500026775414571237950234521728575858069627159354822947982415431792318893564033766101618706262504859235023542173518748881773427456517440499072558717284482867855258986131277959452260215876379065065800761102862183206569321526191726677021123518786857502917535877191576378579417869941658515556330689315111929051492210952497661621881120003383241493489441270371487559973693692919584945050529003243596980724553234863795924729761042270399467796319464959504878366060619592538084657100685827103160615959138320022823270147553941353179953132845763163160077233399663202901305742827602018456613153133421672737032439473931785965380284653458387966573137493860386340166238328109334186182867092819345245270467538453979432432727311075207472943681969196809269297911631485789663633624958411648887295724282718515750905479274993229616298336724359708402498312727387848694039808680534140827509201318467161828240377879031964124689407598425026779803736803065816704826793653952505593807291370982448545061909669842242755501294477426676342747006340662425506517483772219437222770211604278004714238740651299520242761736059751096139903785385755808504100032234452923526109552093623999724556992533439264615168085476753464066686387828532366391017085388897557743972053292943280706428114695061006094353551315742066755868192765748922545047341852807830995220576761629670313318974576936662236120912164334881268783155747657045502196954064579183024804030738758418532774075018218463200950372585721993676750079665060766986757139696751330156184234942666886922803582587444927821635213126316279518046203851567646901934795193139937421800137691429733501972006755060410670863299529414217138100937487555786281015266658219658430233881441511142665993103278202764376237397614406517198148231517791157211824353173810297033504055537400458598462424114368171739833814795723614382387469976709121686491833930508581227132006467405688832998718534485682141247959141162074091126566287792675344731407355394454122490586473786592060007389209269547286482211080590246595668920425326450246513492627297922474541468774209451924363630489959027392006965026838279465426320231074017909526050676429814390207480944049621955072531254199836055850539097919843875751147618704750220683710954559481830998850996653953875862968334916301760255063273440919945402600377594343622824768861838113306435038447632566354629827366269752763918333745379172634635842889475754976123628803668059666917961123838706014489299840902622826753858671158477926421364841963929889306756006966231238613148317310447457404023504951677266631026107936110435529596337440951659762449035846689787165566534108365638768941403630588997868069453883678033770484593010562289886273100516904065834976871109175470828730977392181566338257349460431227642097522051667390854811601726238604069814490186287447102009514713968973967804104820903524231345536041594872159316332050712556093218691940108506054397544123907365000212074083661802060515940508478561389052084835771206325804234923640613278928769978735380339297078604949788265689907786309401813795675671099183926696662980384080173769688818178939958622008717815384733992133619423446366961194712557392510176629690200952637041852274029893462903683177093257369793476853583725729350959494303623361213017033332159727834519586043434416028341731484636579645727472868856637815719899069093858836606116384155842796518568728746783887051269325829414854170775052749059932249054421996253595527094897147258484845116611964698937642737093694818502042837516473046373670457007569270248958105037448592237209917401587367735459429923362480542474946413986179482202979947655644455953234564602591239402650370557781092314988517603848476942517210438428828799709126209393119357667702116177636618519404922475464597854958363048734672984357073922845221394877834878085145360742925465199686815801296696158671279194760831719880183235047382807935845690601693744377330443893116912445510330077522047893439830195162168993799391531969619126544683815372680042831777452247797383750186274200167639354873194848845638509785447682248677321599497280728479044380544299668889214102940228143123637820201283103491711359707855165278742025960638576616372793386179416974277518015399904291391884945149759313856779899037340287402787937086080942646032539564065632898671563855556561499947332450831535338147612025032998722135407449328954085392854777640815645982309228659319029201948060850778050063794018130563701232214239108344457242486377053696962859391964409391949921751182703890033605902463498435524699158941762474327620896394580661857395149449851125927536018194206249236631937954219299346741677472762967168516525341796906861042798551524199988524401885785859697479856084138918243012217724084659187749417835087454780022563041526357929844342303619061802890017000436730356334123558971149782323092120631506077677648222174154805588813104605772732632017965043149350451018060815159559425751941507873766654782658896462250017407287606539420075731822857735591735273182363871820984097484118216882264832872729448172562603977115167697119244545385817066418965391041466876015891550617713824282459069848143590294777483525120096027566262684240097964721861463790159276401715766841206934529845493783476536645085732107689907667673508487853330938390651085778822282831144118430575755117243401527633949509897415281938733608867499075737166847847631673581125272516177524764301087898895316777008329510000349321411530535166564311710060389519225082784103952651735486150884164008260589331533188158648286289894580642716509855970573770198766397432943899215201434407989205935159253740497325841761506605011688371772724360326770224621280891453013064589017798030055550772205114646075103744770463004999336067462661330189968378466053174736584817010047990631996782522988249162311455377734974911047459710194463112194345589011151926935159864592810657863745669897387574565300516498654480872141383846241601936013899279780642670430020777614012137845147745726327791210049062288211756575478321146215234225524243523845484909654220103228978898942558879402549174548754749098605323398277256501286701499648251126505665659355696206818807271614627069262566175666957722297766112729878978372995807076846126761701536907378005460298990929551878720303920262890192147771002932987345587324585474656284790009879930088054555265265617046295777832932625001464825044515570323423879226504743557890310190285856471674721675787462300795693310958336115229003473517983698929017557703197790711476143200366692857284090004820356850775368417048307157242754579184298554876381381939668765510932222558979617187351640231797393552858002158807067667440236849571617550880650675176190156082251720484222887752780757693713698794309913312724687438135973524046104833747325273863785341406183969872863503630235212279846206731931401544140753123861737791736424622823854059119390674112277339338464481292731521843223773681088702102705603176345524516054955100215367044763425242944912458125529643187560909992510553903288801125928435810946514915924103115366286111151040213528778999386343196772369918536870265831924269258244794831621954636107829659351380437249763566910943637159980145262077515668621501445853484619116926731453558867381947341391757025386651776718035117348588442526128634612903071612366391644398258796177134030304946983258371293119010441962506403079143968366120510719384031326250310563276254628051418933016501133206418651824898095537401296144843209092477896389868634444191233185695965583341683781567611388359377044325558445236022726463097207322217936283707004969753676643329236380167532241675682183159592942742987126376411482892706920027026613665226466705103249824476043804205536412259061218095814111792767290448728426280736578656041251339334033628152106699284359075598560543696045937304529320792651689450787677777960754417805689255546459276641223842688427714087856699251829518478309519312446585752688897219716821957754609875374964910380141651374175066390968178860620592046715191016916619113286459443424242004488533079205499093394937210121813949655067794806709954664100630747832702077156985937522452414673174671272199453395445568746309854380319155493115255358732040936227621126815103431439449540040375462766080235701924977031284907569375103762080318893866884292547519879062008528484662993627399637517441271791208869759040902078040995543942607393358791347476851289612814253611208876741996308176540735080276809229828937285979345089763361598415363785970429288381106374230190202516691746126124426540307536993055868832840494247861337729720058214158101304580189169046638019254836346448189890319913745856407188867809726150025918198166363715520551855878264799868894518090096745302848452004200207864394600669790414303203639297116928514438378308194606317241779792173437912893969967340643379862750858428370550778414506285920689318411540047800547799079104692992428254749812067761552595675492543423025817748177321208413379072342894209543856401874562840860968485098876250668375030397628765434344887880247534644820575339617649455089297129463933195344489300953949798850523033222407791506734700564807913963362157077716149951397965903181743194210160013077164594457055941839455618597044329554278313926571911456497803809817909120631062487271965701200319728911728020947296315410015174064130210617643151199298355311949289741359752750367651628223252408574418673237268914860964023676899416286594620062327027924043427200680398347184292105281567011478929698975728661811754910139750551068689772512779403003696347950116315345124799450361468091127736106742901041979776528118888565947453812709102467607974203409525558041881732759598714793732325299770212785172582675745716467480923391243574257741958111263513604963493464811884037953988915404467752071885676827863508170342901070591892438872958608539309347609967226693486912977030253512449535666987949389860660821859030331213944761486888418050782223608422772320827187386911271613803134003014949029913403206712263444461523438619308350635000807912967451442275838758395624924145538124772363032588561054541675677439850765785760650126930444036279835491447631327323804719783076638910553754567768792788875896103830160973145228343366811174657625255377269620907125147514563737094933945570460039240391205960533173298778850457560230850436415786118176594075680593339330004785812792405204155238927249216955083116507531848932539377980202221357634168068302218256191954769837116252824560395854717363275095674240627919510077637132773689279813532069074741856185824267124652434448972130501337040493659458207415422433644530545389238927447739862448525705289635145165442392873906876356813756551679838666489703656979318218409025527074342902340408027251349536152135627430567649780888088164580817870181710584803457966885978900836061595948593851679095577149962085127334530089353134046423032527843184846172280621717141652578857983213609042374353638495169422476967539445239552931842576358226265244556423800074208730440336506247005951005470742070235086844657015950647746248016183000999149724570330999156980081015698037032712378731352328207214963393157640684603919253531196448138682347055805884057835905965561055598523632108671423080478773600210969855940025696899837026761783289100950198732192946758954820254708941486659352351309401561907682969222882062301383060326933291039070127236507337642184531279561590454927192928285794914834064470675150209496780254002216805105661214886872955715428237672851267925760207848584272101705145576513330672672877146815244035720016207339802970065529860128065819846267507412013874030476686393707937463072850575223507081467284666686607311066890696149751444312797199958133426134187618227714449363296532208619991325087953790702710541571914747152454550379753945764669454485908373322430295815723007482185141607174127010914271919399080314490254336511749249031709092930798794733413824297269569624593846741151122927615842856169769546541527341011052797293775491284292686360755048273120803953990591056254411978161606246413485957544471278999892004725798511895908659937494225774794657065737597559778602244778035230967877778938528728967527810817544766346059742428855732737587606426171208257391455100480177587335917074171271294935363138405974308437124179665323178920345289417169675917750143225716681734565671269895706242688943354925909116360785568658944971206747314819200656402638747151858886080534199577220768013535012208537135781794733131339564661216882194648265857391116932625181116613601497734289902396823306711572321027599734558258708063485192917640831858210844197687341668954303848226841833397871125721071176550796878402696381336900543089478437394101645465771203442354091811660734539915348393180202921455487049512511120713638018619120840853517894832498753492955303218397320990523656039165410262204111383811412609248078806751835104085816555153953351081162914484054710998057374096182525198776121269893646197771280819122127149362693310407691925876686132047167390228337005810177191769685795235140517503370144805092222800166375187966140001002553666407240378517993789700677401403559090555105173905829606522715410233924594628466903299762890937366690290984360774986664907420445124546774346111797011397300904409677817502886933327432569500297143361397145443740010684967627612461754764180220599331844845592575856623357573155194067615567299065511216176597922481192441156110431883945950495036577423113519586340920149603353452669804689411505996315474328575735023954790580209572478667291246556302435607900567683365706426875032290352244053728491874943997784875244717649319075861104251733635374424947301680803337887157317514880781007430213583546504774531233231660113949413785134558691398330026521773121112632236310565926957837164254105177785746103471983340061741075293710323730412422632508955909954766299392503479007439089392909530064105148934780456467152857322177268802113033869427748056600865360696534700146244117613425721466437976741748102496214124898595417745236901306338311476265990561183449133857949801081510270377711045312202606438617706360535520650694349495868151874130064186356350113178231544258407086137427080492211284800505305205350095286427783712647709273425178860691021906103503842757781054270605590052521125514716019330813569377431547999337376034736768705875698855678129397246984986286759308141973497727096581600126574462670052079892683902873688476705241051415811582079327923402991958365871753348707222555128797438165427424978079327573806937813575361632282890239103628072602372430197784441593157422120131920844380453327419511142848508589460426609778618591730134159887183064270300279467297760996589872828053443370998776505448479666406204094247862957571073059453091618050376535991265449204365074466830366522394727728713707613057256238978671041468290927637948594464463228827974582225911125418470913730468132963683103162043592374635680256696151826469007269372908785114266666984499355973555142564094147570060523898952464836676957233491038012723926899859652124714450290623444960756889349694379147046899953477586277040949186791710700930803132543134801417702359406771099633567161068381047755937767419385783089495882043791657633120289849264995436196642301270120997085260172575970941664808492330070748257007217706700753248929637264129326752319819184202066451564987823625877629692283815177115013764499139307884805336817265192008280885901004261406094613947858492625739934594186121293958973793965306287580763388902052017288381232129444165722757812500775346430799794928930955223951050999610558489944764100493988937886466569302206819737125684168381103969253670850146296738033781022049687471934032088197766434900257087851106195748797746689032976229061541550366734563515820526416138412475013027699232298744421053069119030110457184342942053383300193062141682983805151431055066250523283335256570450666045568509659766021307611548378771771692302644258047586865028781484031404822610957433844407863842512117390517297954746185003132979206476530908930257523285051475195082819030154569137204204062431516438122242362377340745735591637975245701703082215867318059957684673592799061497802272024128469803776374631450174905841111903556854986556749702731419329508401186063332084958580682805792105417125069685960335935876784204921504066182462302348665890428318500062371747335272008595618633080763453394249059834426731034816201003561981297405531678898507653041227413140464097738752758810415601662405054313013407027360135557850322212446223292149696903143937108171468294104819978095489544053151999055522795741032519318199491773845917214445619125491384268014700263047524077289539152007777047224647384949887108908165796491536616628835432368855273578686280975251760790583877857838118746954061411358521598244332232309349547260718896589009895170526372264848863236783708209363511566765969556794103181156819715717995721975006472803963514126737259110713285481277405740931910061553268514478230926565174295007655907204352805525645693514171663553311536946198723758672254328322759670705969792967689347731844988017499575044517551289338477019483317683846854819537695019276209543785521654996771671189964649108387351092778763040714678267952106617089165293986440887728255750865699563136296413968904230304200677805976845235391184184318249061377496605218357481532993514076588069188784546635202691902698437424165456861216109592267171070902711270240709945891075576315343770029670389884290773567293144620500296277072198236113802888364182594502622220667557184016753999291323602250858530685722721643661261500797433100306809645192547472655805268703363974221102644057442673624712416390859692659408851551776119181246272739656689462131347325920560739682635961262776092467711068007896562792524372442781571220804446600814684287780406945281223940026455411581728219147555743357642833481601901442447534536648720037286224505617714905271055002891999515528794109142822425992613257256284338940565963441666426620770477848991714600249171283728103479388674952868741723831279211645435841692434484382808815844720709501370195910619217250588298174135515034397325996510952508318851198700661505862438656108232200108505545170532266113167255331294845083670193671149649793150253520129686943591554186227033024374651361590234878015763487038592048250125741722627389820192923649792392895730047809906791714581918198809536391338985140396722300983234830952542588982534942885587370882609773349270691323123878087853134676563314532855453404542541539304658901934181977263859739128249037560238806550505185452547406601532462424782342066271624085857624575318263029526865160906708419978583244993616902310172482745732764549118589758645039842212195007937364437883824016431099954391908901743443068532983625458494367676778184096313059185148696048209768178340768729266555838224824152343624996177427186952542802487376041213190401567195321944909826798707880160639326475654665825536333254947598196649430203013305438129577382260462052170088708239832832265204119585045959828067039397915500841902745186811998657042636823790972386297640521076657892478914888749544527740276558547055702258726291295603196852715259612520140575207421389067311154189673961938448621552523168611392556537504296320415256437978810237685312905357904366983753318543935655581450295520947447608368177654229908307315251561635117990554470132703696357214343448168892548531689775150756866675481007292374415245696689261696784312899655782260177970906750001884963722957738727700853284108872472302766545620444459861606463290006054800289078995243725628998115567209207656650071697736225243826343974654185213948558048158812143663161187358828881338647709954696853436759336080687833010291765957067874079302050442163303218147959334736785314297011731935642998441897308640194928343937576380741255437776585089093367869762845577444878370117578879208374661736438813735115917980579889222978533637995005619066295173201590846075586463952086606725453184071381127751269292111549374866016226911229690826708990084244674674378845280895539251101876612290287441017116642018117283117462812467196801155594699807903019109044999725040597536223964194323914728718049374305491843772812555819281511007299708073795394526817254352495919287075506336125799093458528695227563540504108807358567912823527323719646094923161722725019738686030742425406302175369310311821435036342186147741939905833927571214438308056868940913185466943032729042223354156307078780431920673123610383669640993852395187260975699133065403650331410280125225450248844315880534586734700061695340639387097488388110990751219200366582544018234326371882761172654401858366553963018320739033174633139435629413575338905800682808599949848431184561794132821977847634975253640769534103959697275351713304947746529086998025076077357749003519393084986102723730660021840475481796700943658732627803258924822344967073029645125568014909628290560531608683067176673799902113196097371243023251054370970005145239112926026871720883374645614969380363737693200179867397561465166172213216436984891677871119140819992795726454189762535109547728260371614260243165350851341591870405596126272343643002815666870459718573877075470393789695400195562984742202254510150916420491961369158801838478646551394645299534646380898754170912961792634732658722351594076603239997222424532356524627780589091885846052655362713311897784964118780902528669697698235877334195361693741247121040093901198707517327933585711774066893273486289347396762483529007380901400052747228536984041359658943398058636780754255460087112559647687125237421761984406679692966746229158402891289374496820501251917790000706926782475120488874255502279209912944792856975670735465574715228955739090707885592014347491477969171880935680301511043024242284503261567602887422692778458056291461778059955585028601202981997848738103063776850236319632869894405307998052316181130059264549168040355016940031303483147197344843024373486361459987918037560074249158723207676911290752298819999877446966096728233774319856763565413467194838801789421754936969877179293153857856352616135600301399131699664230289109521897466469814526963997313616434446074073327839675555742989074692274107096696641591846891192039090007347835848125866183026105891916882269664361723982001285038057194755149072380731765039816541533385265218139708580915124887363716933477421891377267865806860109297151942990837077806023778812284407322361640078462816238922789058622770422890845391273999916636397650110983004203902303218103997006665073836620391375317952223335168119700419642406855106682082759394827460491812244495189499777065559901447622157956483227475807872056657984719161535533327883283968393569592082486467394191194689044904209462274250851768845417117915566123488596556914417752119845543659714162068808261073726814193053961407700229377854681822870575840798723508402975314143557833607916655268671962141818083099028125465207626672495788612789533412004564455165855035160924785088535840222749634479695491335526884405788900226154805533511983339270988951447678820781930250158288024127229395908367743071514404284233215016300748017477973081086469668899609169074294931635520149407547635264588480186903999951906579937829897701350122382486503116549021632571174063498656879009817162503000086639010410121090809825090399997853379555136279103123305437478083322738718940026884138848308774812134762194215586416028213296818331194914737384131891861127287608880235813859515465440676645396618248428336692118274187975862936496872253851613316250454327699025604031348646485577476530704624828527578176975864279866385766364500342816115710146324643907946626037343979567777611032851024948614778665553839873625371304408633510744506235409108049045721209015213612228461155752174126981258581995215303128165166880534325805116560632458521714761678890279033398907744972364462836767247680305964328854070976541036151917012343269973837955281506206232669363856845699129706412051899612228348759215093881046640208748060901276899201980536560941610489132408676898870462770112449383807471771442302125630551701095287728839528369407702157077586206038895145663564057696432313857167524131553710658359495100930898838037339433616965338622445981572617082020244290960437033026396245126359009270213444494024355983605053777432684399908757383422684995360457025029230680365419400162562017525334388070320844393554949431048230992812607650561790515610499965292356344566309475121966557904960045932216940264613813798251297955229504570066749708134396218677252966275644023617266643130555710326546509674175691325397889420826149808102379455376536205215538775011658785371138561978675086255794152953868630557853030391357182630160738939164054315523400344987165894213429536881322856778882017419701419644172689734419357540548145360752627731955548055916934505074233203020439770989310142272308374809167757361792069385714205534109142219001042206838595553720810976413394891561187035152687982035433792766018834869149929266650858322322849301000356798461056119202543657169881654598786623774567039242087178721306951516042354940326224566666097490535416265440684261734300533508002401687435367154948307492998397773812492035689166638284984078654427725894512535722427313587533058394852851747792513365812243044469237456021148077662219361720676923483848532998014966156997737719280084046089329666653871637223886511193544260776175091897063521834308245429902828654234638643935926759658953952169375421482208080506754899398832351233320782555956378723351749538757736353699304755620049743056963942813340653223238437571629586389837861754359226394782342850970266955077753571389961077664063698689460525149330753567230411300774468382268935596927244744724138585118882296858092959032009215781167157199932370655540373836263560100897898439970684092531773055760420711337717185746612642620283695000061203268152931151147449978793801019963742754654193299486786693567001734839052436179023572025079519943423625989056945481542124348532063238677149804015494518632977912054068878160929236501608694344592749708191602956626044301033295440118291512066497192020381529878344706232131690371522658954122381807561048807685899690271622196917570213457422623496505862821273750595463693250018796883584245523219219598064766155683696722579701049662138064326344490767027937343549578972459448450389627319303230230175424041466401150781597549213560803209687382765232096787730626269304737735775376063935492463200117894729920984429414612522518572844921361551349269076691077099080324022404334951350278631223369864843162223286094757532568272423772341797981073733367301414418861403388011620531509789493013391815366869080626810771951715746734144041732826602207194252706422420891975437359635327037132217301705125519275280055468053815332933517280693177980061313610055376711235516750758322305735320117349513204905133577760728714990341629495835865628606001071444915456244801846517941075578247120027387527156680113300876581219933960086447429061859188538223151901547995270370440088677931831945382970200687087049478564623751260731656783029532246487348453939618489454194289980539424436559693751599146286960340171162504062402748277439505758616997393004578367247871735075604998597732533491195646309733165848377836444045034792836431234713928249219023736098882235844158751304420634672450263153462318322895519020759058536595184598247558797525764618416547027827648686047344791164202816292482485419421816905547163587952248165497682325218351315786881987588758333063219350566148048227176531629444588384301089406699302179497596058282629063598942433914470814089071391657801475637194823140498124572343218254663206102985321338616240872759969322598118343351427526057522034684029951360480743238575716023673500656641094947338746220077439006909429871450751128159760261880189098587051437608838652680298851266134927078915438821047878241427638208268829840805916826449146326743680709405653785241371989447695483569236445786363705891576510237092028909440132535684707495438990014359540492602880920976437834437096097517302103622995047929215839365487975954663625477300468785902951813286189491884220877971365776752257652489164402460577050447346489436838712292834654819746361249049738720442381304762035537337943463254320128578438749702658435947101470879220118695568842963281241707366164600911445481644134024512704760457094232377414207057908294169339447365967024066303868410473920548922382453656056807882858715102159048925655658949578068208631028398078818311290990688760841725501901458176010951113786769042642973525414552442436177490058481454608185856598916081273024222227947006425452228447335875951749189083101789498450093605755415485085164097483222893345559206320132040522021944490425486977908224083337276443818374769172681273265721025927118869618843986443485026593880852210530405358148718964862193357518989793459894043827233162626605290396018315814980829055468720826600111159089303739458004441815025567831897137803067584936778718588375251215630136437597818216672511451953655981584910953881193110250557893429331620623925255909760677759815723052673740916248365407351111425324943558342514474916760961505192103220387040658045634298487624457117768784127295986559552324047371665800857012103523285560054694730140041940581001400387317658191471680372512993201571635260681100642450299365043382716157753325052001783134827824778510548252098597301346434896808297651933944013230042398643480719857417906964552902619804132444765072519944929747574149442240216156689279288394553245387349353277624939410206440027616540943896675995415715896034209436309870366596405734801103223032561550239505138789807481402336920204153344602973809130352783388292156955200274367657443349746403680132285692670123865402834989945743121645325583032148590320782727927906611070663012413920641293823948487345598271534824630412461255740017481738478491231555261739763114135693521985451133799080024215745612954392259887614096529855329677453378805250678530908612843205573404377773149025211664397904703210488995929430660149217372760347679146188718535420506073988916781188878995973602431456125925657181720265497452546828120577420803547132548637251028727098126420429825912927115523666365856747592407239297213483737143073306470240972917856050007292403195572613971400872528598117196466644649582348329271563258558598100003528678067187441117121528634070787991377035981170655903017331564934063195181072106689765555981575222080102733234820776256852888590367343237861523264193885028898280737432310648661179626763726530966009343625794081625621220194069518817394207954455065927653548670417206503087470176267092122879763734845690231399964620169619837788223683629105089612468117996530936619850411106992790620502482302925340894233067738073118799910581795923650352496669061958741816857379928004351655876523283483538256202183126410513253415489486435247103493889768264303568733059921967206128848226521374826524525123859906883121690135591137595008609119356346880379725242063394580229630402178810760993470446170797459129092766008702514687493382340446353510842032775750262276544719603281687848898300633798382678556662687141653794367611282069300308213219719788880364493774138308940550675405028291300905419640620848946514265171487844932822981478567337454402167686609367104030054750325051934030543525146509468385595744466476910277449954274201851728659965157008679315964525157883026269941535088190826390612292963031375606681663455746236079783989256013649081726617811591340528051814580261872962353321817262351031683149770640318171714040836388406943108308272296329962971691146592989373996207248323446045326189081576103551853421682558303369101497391572178067276383317677930595957313967038693591298626538051615938798519341934070093822085498419457409003418372452783177300973654623043192115932574300868972322707187741821566254747597853384729056166240771956695272761409214745304656498843651264839719875849759810476767031622382063612015125431763641341144677184278169747213011372325023569026387828147832642660404260159771004962251371074049858589758231634902972968227063900191140932627542115589712197767141381415166812066867550664601198901533470343609495700803004260482877979345786240192503267536877465823684958027859616011121461815073638277579200168179919999014956861605251715381664537008803693862761317950638090828172588109025071333276950276785977305786887516171896985951299042662815415891199816783362761869948212778364686020070038629124649937448282833347310993531486483515504679621638327782512056062072106261523505765803205973420425849864397695476758199279431157072311730746040679940102668975662999542983771059444056537985556968013457319464537263103738041563180923999202304253828291136466718194987880238082686355734824555497077664233416958839235997798391596428513765162853410220170381199830700044980138123253774952517464487741834883488288333974096135832021755671679451187799521559029828853718673405442206718546609910560285924587968977556227234850177673773959503122072845819089380842913979173360549822594234241627957081369932906283665303206076657537996434048185480353890825179287654154106007864271533199460283759445876663261597825776710739365707058078015904060304273085891934585916190506464323745126966314243138063081591466379496995818180901323576145806558118766322234127868221206945797433536153311213827126431093963807561183383068760593615660517825141383226722494863491877901861147170564222906249227156904887035404862322146165441734413607731761306600153288838007424276935608798060034893971434705470562087696388733996544943580092045144057137328986793167938277115614082861265918143334099019808328593385997982087599699055913159650836845127696053579732874060253842732469955903063937903681564924181524686018780269988398262887913839025274774427661996464258906499839067796725097375704516074751733348078530118933809914293077946433918399057575839153423868378808394478378255834737386209477118811865493956244797074910428110235891421329494331476727734490091236849765690812793974755267688453267451511037765964253832858750235239985159652905454550045247628234223118349148489281287440037905599699458687731456707945136464896694818172527822187944820680903270522535138331958069703545364355898990017834282670270141989523974523884902435586247184532982154322360131304971590698401059907510893341665185924680486741260055920561869278032553203367861712222246466099734596675065873727959519001135016959311106967705133888193253786286403643385148699278248255460400345475827610834277934284086213622768599333776558465153063548947304939807391346274021310007426114245476349942987998483344735943770086159836781127381535090500434452871870021118878506943707835760750830303923282249839398581030594073633745291285253017466701553921788303959532944978318455298410045297554451273999185815387236315581068532477400386703898356879875643513780044993227896482510605615028431628431992860165011738266354027351114978647322105002368915902508173989637712681815290029492394587823419761670058856225541304978633105559896302515646989270778120060060341471848717681466517277350501384256012530517306535351814589163568203925994158301686701418065629129436366667510466762586344982043427526778929593674132095700392388418160584450285258526494958634871445856545833986516432410028021981492680663860618103984786597863812634762706622002435364290251518547337765817993699196335304676804740959631019584445922763031449651474296301341694570245848440830929762952478049193071802495149283350405374676738757568280738606356961899168754857585604483942441212108014293720411257391915938307704250353563275923397579034504358288024500974695003568414028907425756686217688184808568073005814225209853831438615191042171005852625191833177818854107014835646976591640729890632331880337937911855016611746734638039785869826093418190685429110666813270903800741266898046296280977806599488440754179097022209564493749083735549287500367020444631365363320940102305947462281626232016809316898673335783903076342912200530185767629826803017392285660642688913478679236078910035748061318125646825502452704180550416566063286705165647353023443236446172208477322377369841205848074750190579181029946870692077537912180675741057912623092040054055632235651811117595928716047656805211733656209444772090450137103672443663098614415065300735420941212144498027790124648805464195856653565392852186917385044766553051285961267919840488584053898192999419659680505116621286432264496152619780831512705658764296014238263418300236775349903156158836649809285127673459482765568469395515273833058361066682969287632542176084439073180420243201749391644736935942616451453217333585725436973545921371158045042217811242646557778921628097786152617297595796169839070943782229156907996703182449470804223602143974948334609559237086353272812917631633392257360680581908682826667961480504896371230894150082149568510139951101505971293626535054775810405382804303232845854687790426180841512076150856863958168249900166842874572754256337844572675443335352715240852128258321377718961903004255603274327152533170404718687681972791907657588742173400225285025097550995126041301524853386828585838628465009373409298201738605018480185641461746665494455445677361143863702822275991845897345852008361837008414481794707345423713000317955183565595957696906507901380792657601014370638973833284840120584399250549986034586744412041579257739004569465563562112530275284450402846911148262431466958874778455278964803967229610530373323149206613058249431043957737317962129246745875118421874005641428046430595924463531501139507929735293235138046373685932426691199462511080594800084440839010459107954115429271296195408865262631342330825261614901488937644112587473646791820428935617899131565489690464984060013237588710384651431844677121948070535187307197768191859779368753969649569868273281981125379838999993918664792880068030000311265156295639822183652981348323175151700648643137444218385565843004460537582787878239284327751626225957752159158857303363980338251843457866377298043660416904982112895700353772969783848581799617630374136427255913235696679442239280639928358429852248818101556830966652256372481056430014091536665171042825747530864047724638327644104425764539083295571977570995082437026088858465472521651038458963118564490972024803693299047978883171884767469975598524630769835957170276960241349668676283978178791470330265062342405417560635135866875411348049655612832565501796489168413395205104113531792422188050108604325317719748586008871791714239578935707941328150339847833605539754207304696084875480547825679533187205600347809700796907117270449947478682350451641829842912957290703163075490215152736731745370309083978196414504637647913933470324064293714946613817887390583606248209292136424547593063790946420856817864361631825820468338408493067706517777831880124046243087388338243391931362004608488767384244167252954237326479715028772048738699314981742223383290444768327644853551917632234710857675044098362450639111061307920400765118837768221600127629204201030935511448455967099566225239879567940598463357362691498674152412764743958892435525903701791588050199457036552578269771604771019115937450889666967645282631853968319233450302996789563482523426406159465066342620604145294672704937934455528900598333709049090586660204018174863205506054712176724708109779465466403333978781611850315682455068125793797520519879064633153138595690603191724735665271190161861123880637866802813280407807435645663924747312803491992456929409837197249468684519419359440568463895908559946629459500259356554170619237534944542177351172774338878421407502661525916829255081252814477630212879632816218332514754222120884778529700872390576003970501342538665890872896949595137006051389881574198542317892197242109211954161389795017090684243841318713537702829136306782526011496583353584055153780900947856138824770576903865512024775656823115829782683700135914728286737194816150099650494968734279958807034372580351431549629217250107480254801605062917310759961111279797254945520099524679913227391442975579659090214917642483625699287408454185364051678354525306226243099330878141212457905611766036298574388679958216814056553971545537534712286306090343216430162436673003034288790791075314919348492143141331815581212016964215960244974966783807792959103841754611635344760032914338588749507580304964196741250869802337429742295079453412901333727300956654067898170376615275256790367098454998511067836053181744394964885721554520453731794361547202578094394571761819323009722629719481606619240397531395068224571082984911014401412383014566894419886182273723361166733955273543454551819536304960201860730981030211743259978798660425856945631992457382670688271341972569080332896505440366235197817237735311632141427688311432822039527895123636064617791111861436079154616939231199457561752674660101908028968038827662413463174373511756874590343039251491989281698511356825733277148371287509394368895079540102722573688765887272663381773672520706236160645005501233356041705370513109550639216580483626790137979447907683955001322312982231707065922831501969448471326286992813347550199170338927478369493456015939525530538364371575033926011810976158049117423676881345470069077031595469815773906852504207824401296215319227581266578879852177082049385180044728348573202066791338022451557481752977079009062591561647679308118747115013384456202544467903293700964951437525576801682929491133267477298238371031572865207681427187635300475070657326823160196850671840573681023265955236818858747422333436380491498974713597607127753774067763359874645666493168361239632103915954823959310958548914391095049152662207661308582969402060494090514695323721664621674423262079502054081228678506350380392935245721463879047992561632949949411420779716401451408140891360653443510188730184309607509725299325717195246123340513000819352289137654990815811518842803040054854218629386023536771714748747930833185422159694579344110432515051467286438663620918402428207031157965841973225690667912488133644455290288173731424865642685421479075365585251907360779400271402415308687317179167817636474017881549016127905683751842764968042693929532549875199246305611258563743006520117806925371786749549848864886521440023665057212296996414920576708655408752844386017506995754977532877929321435534029434765951238007180346921731567269296930338123860545035580393026417964453637078237528548601197045257878436771363923310634206406017614080090851625384571100339375866168765403237440096034824915136270375600550839599956658782580897208717896915096974741601074082385238114672857077805833218582380456313609506425135295182821224067162079940652648311594015519277582840992805322613749811916543716872797310383059408094250902668958247270473713439657801773587365683087064644598907993718952262523395856870420088976065899044302292276200452292003609555955813869005255117675902313243845550471611302538945257696424869258738962125238946420603399479255157346408755364635413943940463911592112534631713504014471936995423255075739017585721721876192847929297546446918632911331869889294909576494503284530231636415566410675370114657044064233470481773088889693946842858758091712473241037094450158530712431023528176564732804826111128549751379078626023074393793710767251728487991012572812736367073844833065884099509851984938557742922770397615970591535534381979048462622971372411023267659131642754821206611923146811161774832855810565479653769493628755283134681705483149618166724193786989552841880820664469202044840429283375661143769290551603148805606676849046027637138999980387704435881884439240798704283614659023133071890093238703810142192312820098876810709355327529852827812497375510694581629501917871721471762399266734873393919761756028388456575768828988187328043180181161572784647251535530277897482515323326846845690640320286670164960985488570131110804907910364722160645197718577933205773848232272909109610803982813688699467696033241001200422964955100784568632596659710337554595453773556506786064522520654427201584074021718907193281359856216276022048906165305357457623032698484781084428151621504347733544740325615515599138757159762455394761193451198740976552262450020487527428586711792462317149214424395345423237243142837750180451123713121111766633186912664380087764563273903287569391220789772109450477361218755505907474043419631222974254189572846009255968720912853294739696267505856546211307012275349205785386961197854684810053181876119761193595685831905283014621499497981798467793202984743048986393890601911268505842932419801755833283697342615364984947258098236463890915633873346058848085121652604223526475324084548197412498648795641817570192319707187877916478711888611137538127655790358011689046417809220112949647400528847387047647986753171723063715999711868875650189773516000919569670181702164739262688538674828403865449580602849609864912635793193227205140036420665537012578381131628791372919402864395162995582535726527148946392343359048919265265160814045381462810808043252872834395680011732753591130175958143482703162791508271944742460950480038997277644171091957825772798748163835519674542704016513026608685497057436070726301350923391665899077768198632990918973058675614665839521628430147827600639923585440826676772363951811722520681291186792971307888426397835855385659302045342559619612792417500544560690293585073293080123779607963023090716108741891426148775022187430773556224842710700854514599743898256757467688989098689020115338920405577775326967380910045362503343600743507468947926406055545262227874032249516007007351771942117280387002569581100751082377100065039014725385165875161455888095910893456106525560303919774718060804892183706089104159275747649066950631686286872238313129998924964077922955965029767193498201738155516880661986939586872617897244364764334088597205406522875011347255983124194445484539276674282682160763230293326186730973175432187597059703365642711701730273187837914758303124687445550222650219110389855001025235088598849406784315224386190560603803447652608733763064776561071183789786659843778679998210252939040092383279599068074463887368856364439916760214280439480009384706342417156190817612959960279946235427233036701165387870481373076795432416050812228845212301427532975953295508589766626383949194882279062388959996803248005207673563452925489793363316626919236151114075318033885198918224162302060435112285221637085786463175553741366556547260639535639094598690101115335976401345914349632748721724810037140085245763278001568823454081016771275637107204472680681199001304922865252196807583238662808333056729450249950195287929647624250028711837676418481374498939864478554873089392168332195932585550014926539586792657699415532677458633414474699663467407475293962224565473243672144218522715243053378403553378766185964160296409850558972589239734052131959398639407956164396283657750061995615418135010455451603827948030866631320105723324159234731663404661216750489069420574864183214153613429715765679874826053279609829707845399359234622908700319469399549285320714791314026377217096718770374503150916462938989227399332396780525651534697060907906315305802769202276525444728599305121437844226872382178784760534647724074662776711413387567833505932389671196487191825754241710411168798361317972873573642648219897501253830195391642913224880474755794776990281685844398613027013229032980206369137838185345676561526606159455460843632711826404733133410599111588291599240478836809967654960180661748742650623059969821281886081125568990002742275411388215420697999478930719863600593486835173220341260478505576268638463014964794292857087142594944631381418249240355397303127662205451213993514040432071260977347999760335068725013956113268827197744493640010634569646861145545370141907142514075235381612190377089892999260363655959454305050298134229932064627450245119451709461157997172722305482124043621180863333021250502091920144099012647835083447538180509568002434534095778460798727830033073576020334145115229226325878088987835642816135871460674755097532489595891650912000122184142060481220655646224760283285437756558646525981641581861060237357856599776799736327054193373019228284158672667976039896122552502881619836637490093100208403174391916726548731390472674347948251719520716359807867326347631959442238229707234925593652536696438262340062828689053206457422651564904722417088556941123323209613283760229894631282953455328230161692917357899772734772500050660816325773267301599056998503598091900934774425387135144671157698661888410600986600417348518212443049198821976648565463388360541075615653429503932478953598820019205315666546640954947932124927374136553303484262249355954609581962383954258653399594522977181030245729029977389297851602796757057141977361366149677494201108463971766811058010936977572752470613004183321019699319441009222885351498082932336848380645222297739184023356777067202582909003300774769699476954215149851609942020167519111086114061421255313962619723967730537539059557286828483089020473619390283942384777168398664712627532607083338833273411214735336234450221439105201485552609177111419628601410975788626561408460826824505551163715603374495459327650858732030006458993275989305440018023043114933866512548286787628754535499374781504366944839514774792392761160839600272586733501498138754901489045194880981964524248429779934100034811907658271458804152765681400070756727528303508600472706625126208426067650215291426401866419896208660816853503544333913249600672515813161532669709638716291702870433200343900171346161438775629096435818757540470376772767743651688649431619689022150769536619192781220219489454393374712058058059194616947661368861036310404612033623931620763110807592367034103135510954090086657685021123088249993989461495219241927975091933998234112980061086442996819740064697293045716582123638144375096667539399952238497876172791635076359597993606639000897510045993267420436641451838894476803218133114477123808710436798552635469461365164611526946814334068228511376031629500346772434530213068011100707886084272994690826978260437593457883001648715158799494138604648597981174182516773308028946947784153957006369828759920646839975971350353964691497702594862438293412559036207699131054453941341561892751940253811183036211247537268095133350166201420248789062324721317271933338436905606205898797578005431748500000554102885155561425550237707863131170618131239542807681162659862750116035391485767224946072085570642990737306138665400689579982863884863042315634302852691434923030258354586180890027964462637567087981707751222237143242813702497630559231381466970903203446030342831712508234988907689805263541107255110855172495062138113974560831562789948624181022321224987514536041966939216505303045746674167599564033794294444889145328648370476460072808197741151048441617627897998318057025762039423064526714007656749368859807640149485842058483302779733241235991151778142074637210169921901158939760407999303921616545887552203494451222880698060545316998340518652263347529583077237523473634108121118902081915962798137015676422971818360419468116417154756390362724030924940973400384747861426956427450446669990481851875770972929411504174109271363982208347236228134894710770205135162718392376764748480642557346418160400447533967946408342462132710962934111017184124133923209784471956375153118121203572403944077538553464078910541647422331875033015633260608812899567684311182301424011495313680238783951628715156161176973569741845442526644765121513443678041426881589964937177233862211192873730781762961770756662471551037835431739959575887684649618923723371549219938764069416247726967749852815834252993271770837608342960032275354614952808626096574633415167012469903677551137962720976331105098235033381950098192886402893893214526431261874713685572073630683249670541971869889979784843351148658908367586407156762098421095021594165233894437150797189660006739069338870513863676221718667300203198108640938580875242577491997510096936680294169480564013625440933457928823822735796137936161262399985940129518440877253145633552810043797558580291745116647089643120618234924609570372101217844817136185463007752474712726824918952555618949881801111888264105652245508522949621996590110078477256094044982199220961805939733067511768250042185735295611269040255886865011779945405885245410024997410856054822114661885721112488294944692176477540907549034854125306512277951371873557984574881499119283181447422986923168082081368998242348848394762088139360650826606753095273413367155588124827439465342411110052464893141979960885127938225531448959959061112553828609782612441006547257083166064977132925056046472722181852872108123926202124286675464237131103570249776160903539606121560075568915990293325526464634734835694309846230289226051894303489122543605755181978601046005204559840039580185495473094199961192774182975794758211145857958740799059798108006632592138758142539984899338232616146356486545011479800847474235010288816918708940078645760969944060213824154965036508840031896649266037342506316681783076648288720053235105378422336641799117237258553816854323374212292747599416360538470908873254542023247469053509082747151296826065788498235588158059329033286204806134154329638907154513367378890186171714882068545329016555378416179310349267155232967968406658037989116952619892165058074484775191696085996351219437099799356701163774589370603494675488186449487345745370281961069683083684291649784441964210968284261025795494919842457946895591301305415911036828696807017847062243699502774139518990489688096506989771636571050126407493897600659745960288439046233666710414229995845666366536659887421699759017861870884780489229177645580304304714889720475043311850436366358155268952320624118004276067281283467848994231566830027385386705691450918601625154862629033903676841636425316519592881703225980419951695800182155274640623464371597020677481819454916386510509933705299697864453103990335693193637312155875994929312356836880830141979889151774666303131564892405428120754309318245694653014925116612329450667264554421569738552020782225736325066497996982920372280848182709743199975222294807129395138117912382182217135230724110242410675156239572760797038740544812964016672899755122618671398674803093184037772620443165339713861513734916428880750039079268319289409590608776344523396163719364447240323905517547204436983515692292328841392972194720392483146877893893167968825833040545427508128715077822729802987292342034428775793988088499280695043179859141934381171457339135591447604355550524217554511085912401417679738835998687363704722815048130865071524080216166853229664753662924100430597165840864531810978540022959374440105676001955378623314796211967727246007293189717375644818256083201393580351173419753568565443600584976843769685856079133292110756127282910051190693894415208276714030231499626938846758253562957437066860442973545233280564185419176585395392912089130896148280713141504894566645269364622421708785672816234193875482232093156695319851473165221699251544035794146653595372461556237032321299879813807409887098476947902958019280451116066611266244385695033940692930844295889049453519043354096872326738998088988432307781045081063473612754951844325998340234640983352826321644845445517041184623950598906847368639534485577139841896568010789364076500312020345441283749259426654891755594336677301522565305258505412996995611447005022027587600055288618098789968714446373150676500507817820152516729769387376640882814667359976005640804090896649295900818183352419356776541352652206158583446013362433179231344671297352137644348361561359993263565951415484197134034475307359421941739944497959928170044796301661654931065475551298213860921966194881995669607564306244578917017386063078286215395752146822050865520176619290041219820810251202235368207573032117090347245754147482833140034704225525935448208404869577362385737420721172926833091266700015794576396096901374374484160510060322774829952077978817976250898770692439550257428890661765210380832769261492133560701183584840004741581540553219448588879999546488891492185309762111859426741182457720784709665186504493494045086576123072105797319309785666869930590864221570894857698223268174873042332438111756271673369808916507487630594519084507135271950170226223864748927558365025299987808086162447828251647149236885478173473569087193049401120101893619162720809799384783766195434803466447909792313728410555026641210530540611617491322473365551735415898027323496291077964880836941675796242918695889973579771464013154764188380481372315613055894331039331799809598151904440783921238317201364501809584507369703294213684285650079754321652555031542022097030370576139840093980713294741453775951860285159549718007577226792928620518473826544026147886570494429746432289832819312594790792171313679738894513478251563985597892608205051567017264305172391403328977884224940976965848794609538087953963060470966893320161363871641079905149821228385035827882523328766653082980966372953268005405558680571258651506117355718367775367896871508905969317488853209986038466928895556622461466026966940964816405400727214658883588559161124683979012887687879230713784871145797007375487612376206090288046802164839577801925820669436932437944626463905469823322646271133409131580870514343306254190646254090329130676623608569605187005930414889548919492200436687850571950854939043840084396664754870853458678019110408724963236361106753751401158871849497612329458107673988531952921439782585034027229771906131723674577485881133031232360424786901371505839545522058161556295197506794839932490586062544086817183777762077935678476447162891244103175786458968277793133180070476063404690524114781527630730208665536240922316181150513466281263923018743377663840748254899169904050697947088586877973307114191502330430180564171832875487625361463255960346387547364722056690567749590627442266761978250322542130822135685349265366975015550204232431776688355767489461253687025745350491045154021149294799252424076382933803236491416151966878661758121670443557589549799850259493150936911038745749121259203217641433829789861233335497149204438797210238163472864592185459925399545169176059260114873303410508923680526355981192002663346978307536865755921110577228128786125724349347324069986692627033054670083681203352292457215311500831664408989370448971078812621665470747527468688527115857001000245102509164927536490777149481623699244676799129896656560399944472095791340060000699802477776089018908331128690654732568473321886801338898650214732548008026194737437580316706781822197191015698851139142626851028284899242864504655102233959670741969172548209658190328880520047948609967611934534482107239592333066483572469403692759371581995255144092809288870875708969175032828909983683474143611114758433227444860438624110008605306548964389328296201173316332481122375935835966355305942196938421049220180840358472232978913783583022415530041062645015576050196713057846439556823895783426465123468001387555876383887552660788231140138368132992518133953301932281960745459652685752540841360747333703499707665974482481746679167190234228185218157297940655407056652303937493731532622919744726888628743249072849511270391879336159121245853654780259470648234441026135022626139339127107681446117708021483113944625338395187130835973683882290201241780435926374960979389335808039414647094538549343148284462227310176182257226920041987662699939693555549714390171154849223259252518833593001861968129519643982869668180119473889740274041537868804155165986692307554189274888869980628196436685317040637202791164623748088187616180616659214304252122583230932488163533410390710005882284034679007918781119726733187539112158552321234872689924777425207831339007994969673470878279693665899504148991326762258918367510389582319433279115551425731172800437350371747865475448423112293130872699949326915364267135112532765205282271231148512280177903559869659177463194119392299424003976071167943292023656688253656689051548761280264870306666133056269906812442906210937390058150343639357772037506259237671087565367540944413275564100948922915493382232991251330731278136345507743276832126563372551448887635782731402721961939639114049725772646443824689585523792756604595097517764560886280795216607306062986897442056352591191637636702088635203585224648114306527258136280365709354009898963424912474244574327227761273608425818641086622614537137882312801326663765985438781917143070316649036529983550439012278519668491970098518989248060963408259870971397621468382585162788068994796354428832855264986282394169471195327732680548299971763988247672658974751765406299013450664595597025989432798567526853604304060572841429921738660914002366685317464968538141371999405850476546408531849588698305946689684863014082493399979244369291853773784067985536467264925099703035391155992308272067517138129111350039381460348213685521457359603164893288658321481246213402940586462670043095150803564305129900838746554637583857809354976428178882929897990806200555314214892433293569048908881247255885375207306880995685302096292576383399452858831962606203077066542620268187316261590348231861601707330963075222630696221577373107331717620484974063236059725407015417670113865197371256281975106447922494041122411206010453685783791269799792413471431680463058228008379560348071348748978450131227251962987125043536896776187103120636353264810372262589609356640796758545345701685041667320086377039015505729367731578024986175047443628837532196903720952043628272578344069240088973619292756653498182140110905659437967362380787314111289389806872334328798631197903160379956455340048998064594020012878615548238392787822670696444248934942027343487678209082138336130631963877087516389663004287945243147397865220402277153856637364948306087629875613183307591359748401936015053111347753445625442608989539157872417411878669349457959665690349839099520622611578152032052447948503208532286270086761619930074924818371002887245741582737913447227413361368871651115017170872368980268719450329199482076349650248532731954795155765925475581359304213457204032616992630121274321300413802455987472009265224909562261273251826039565571325848972346771678445361853889535923016455647623914580969820593357602005102758287454508605983515745470360403201189328107177924461807572617205480431241966822211186890244104832619761976660634901728728026436572175963649328054066866126493279329410655563908451016549177492563680519482695878657382561849845765070143816789083234021797059737915346354802206902576868839800428624922051978160626255341806559801783116433146942996150000044228346778404013242238880397988923604470200949813174324456341026383018682248097503842526100747222462943551251474362460001456462316406867613354977593930765550287792942273023127593815586264905045161329818288723993981229895680387039960328011487129636061411039492428851060312702560427867797805838249412777230232585067464335312486472917203174259649060249082655502821085109468073434201883714527765256152302987568574394015623154792095116543621263496937474168252264843816103261071763254364465611317594416516125407612676356428041981654264802204829319654795912265043676805835019705326653448116513912983282407014580761836772712654201108995457565942776846383396563260655464754828963462109791784063655020232317032059286695266176159826568539629169654638533050531591618838230852789240264820297438709206648934136022142443740679356110418627905247462748483123474736537755115678199422961027052730706892640265844610978184990805938404781193927361614325092989097141527570479447839745850928590763601775321515380868781242460178155648693627353036373800030810815839537810156457609288189211432210316927584069322211822978210364567215477598111236338711760570600097768666211982143874048038286793600184214422577335284824707260854902254548431577720467174662701806465791085260307278508359244183401435407615038838321168172563858550279365979208916464108583075890829918303665706224820405127580547319799040107942674132954318528566361204225782917945363360225968356880839538340105993493995650144025074473695500419920675710837327694206118185153035723412867627010508904754640123870273638332387347136317378097499388051278764513796978268068518492473017517381033731282442407755516531452323298172908611131495511874202272410161116849028837751675692053939468833093400869267277605518892512484416721403287488079172206855975022414264057964339405389628976588452841614533876063191555236707808962639013057890536877876134936830063520183007701524939678778458901121625199861116415840436282015104669183846542541029581846411178294591230605960676043325925376164606491048213220692976631928321395382179155824796636654482031361782213138364130812417807498064727238533117860299127929361598128932286601486205430135634125407411495009363419309657011190664983322772319324237679176130076819003726135193042238303109730936002255592352208869409485036895164301568099376024789009163936353199174340587748326207221599639214785109140774894069566639249488180961918756321161429081324834906791641312618860996748466543986886178221230087763852681279095725283822423013998041907333191212709048223788413866362887181324375137333092410299471472051002370677236117460097022238874181121456320875315797523371623859944339621923711162940611330008021921959672939625424533314827281537327563592789423929678040355072984325362996744027858662120228001378108532301014334043409274431522970031602819065333741086227286152384639197455732505263735517683627894509467628450664699417109184807096650591682677547971031184791489480764850077341549240609663360980251589811317266990272033998611752059322288213409349571443754848177610058363555154246862511089423985031667382341686324975260585261317483082334722261561020004818179913407415190160914412286792539069957560253471734134482576681032608939452180721165335088621989635256525538647858095237800794694010309616530979838512931969121721323808272729849114956120576886026535475314565635571956488675106390946335850394761426677165119419841960662224669212178820336362076781151083823075062072257621256385643688752426937828425525094685553703979080074340496700490617704039898697453948714926311033776530844209711815794566448654846867944479690292296872789860489749226472265969490216698581086088333195698629301930062060072006317533352825439297802848207292934389304269029345588740192714257618704272876364979908229247977226267680434822190525765855711421149516709770434328758238298298350088747194666835054075812097420781696774056686774454545299398596955139063590946867829130262537863663638715278017479417337474639031155644956549760933652287285699970554079740469823359581965011620943873487896983660966523404976450268006365995443337487707445391482754649827870067713679334961062168525974469626142837484247045050758327482372630271559099005384005289993593788934774569702743816734152762945516853487146386472025052941852525850914927961847757933607610918782085042982052603336708858978194968588445591099721951690416268137736618048675129295190367910083573850871508350499373610465229661713522995283880931076106233317931142829350925955724250512181803286509997597198092570944095013290050230948858185549698719214746879180337253198527015744404582391724943291404032744076032830520993724788797853278310987520704837425085260979352648739268155686240659983099934839133566215145435419439251197192433142026071570263003138946052502233061552066964836689940814078755860495751152628278635153567284145093355724862440492734867006386850176862114485524413945440615584959960571787145064256712431709201894472276232742675763684920955844711802285626598613387189881748478523339025941617220362808169037219649757874228006182172111915255661921743932519098777383848924523713481938624449507791427235070138247291389323451512577973646296309673640295661237524296164553523306878710742084305337373798167776909066984582926988224620396152771225110810574700015157663822764574828890822071301881057262342258642132961105482144556786077613914513475912310788448146336630934243538695461951772552693291554913741906702219973619267376312364246619033532372147541548326283334954853192510975535125494702214755676370031001127136559138755995085106923255605603604342821379346068162524584603948857277622346826646904036432115260612053865546244946395202371357845667643405898826239176354381375480548339155444575658911407461436448961360562165654183446345171243682449132422274722532898349985890421822609358270922557307583345528253390549074561049492638864939427884867190630419914525787009232238513672870256773271368906209518153110853664966188049721808811411121639002565938028868814912868520142277875477728570248180614241183326786375697436280143488222057367141327061856979261735170166103166623098404609195908619986648713756157650449102584605845355341536999271699766868001791759829718305153388371830207859009734607986736001663402772574895239161361511958613961969804341469637896912263108416787151182955503233258997068368263965299592987368520563544534523140402012161640920089553807537490328941102214992742105389093903399046057340829788356506267391897683311325115144249983481465632501802159438945434096416124116940421693868562616372188437260936410351177763348682809043400488201265903131449211439490932277703867315511189214971230421010413337103775234429718819456520794343294170576777335333833304493452838650784572524751682933546686844029306474658137373966400526530617829184888616073793859734119239921669743405300635436538927409396583465764462272630588047850590701144546244873387663629475192285033813862324976165354888982553774869515201447205133937864761981910174183584268274446700807860177807222890004491841320901614632587292351978428510452933870530293511696259394606729632514753521794944313763360271449320758961708277897317016200843055990131283199232740038452904468010315902638379026728859257458677260580484313009771949342672425303643947042629114834658472353022079667607606504527239264571994676884721854089261629945227929149957720268785313233638896598402964803401107013176339910774928018439793974123541888971098932189371385657118391426387215764994502488427515035819334049132596914328124023388234061877568833239803814837451518944809083692242763049021095691748548015767020102064618930079469359306832740032392723546368393882413737005014501441335744692542163179648528679095590626811271942532078456523086879303713791061407984563392720394964281111571457875423222735892687476320525294322092979332254063346490899907687543078528947379972822688419041666646939143403999587777611108165651448561548510854631908291231024600754535013157975769298139995891884615189997810264246269106706583126847828152770101103933066369829683734350910479700642538701433513363783974067982486698239421645801753621543198623304353646585983719753000234647780667371676143485225908399384171669094401454377247559467786439747748178757942145358349871839015990918208401797151977108184826659458012682910310012453420703239902664684332280149130165057747527839481099246644017804397239589650080548166786540838762950124131241375075497147181293310599612709675688109591882168873005818089205793994483079308938818745053430360659590173673087091783069241513470235996931023227290292190946761123224051710178328560876183024286529016672244350831869373390908235194738646624352457376122422112607795717716976000828735132211317057668349100519301914607397689325339068085339787326213087308252583514481362920105536023140991848128442180831322298463601987844140374345808349433034185812474471840587191734986044085086808858313912204647732088371458693470637307517841678412442443098856975103329777528917696949360514197177577419408154631001779421926509364015033835578626462518505407901355042249783647332949580048685502148298309159203693127504730103166207835853781412012471065537528410303961379259499564466566386922507633125825085688404489811646588895108447070886200995260456797586046267855513177059873221176899191909117210379659015000319078636408277956374862838512923914807561294793235227292805775743297708383624315852877435172054417158659895587771715250219859643136424908893968918253815660882904891894072843377816863176876960718394602383540733845648415833159003192043094389289814890257498966729833132431533856668781072016545332036035446837043574576247666243305014495381201323466115381043743086549311373019900324313508614137482917856389907713273760630898658217258913104691597288686788557545433301496410361658367417220073187898256035087145702752012331777295029674317003329921734294297840708135946280763957441153587574091060670324158216632584221500646778101654853110080959001938655756082683023066353565618746127604959873184890549776346163529276814721306909755163235244985241672926549914966157558225308550149577222179918723488696312820650316871610606731296621170013680549170036986939245623450667802885862433722375222860574136279529876681362920544640351939825486548797039086222011190309436419303476660639891163995094963951715805420143887481662382659603681214017124480952114139324293880413906923472755366422805748989740808570675012037640889132104947487282873883165149584642920916539331651471018209038569688512176932298461108888719243731492085514170669106631371224708006280026754162614988287740406690867087130924430114665112684579735013837524791713087213217715272567662651688408529298078714885558942927504603977399856695903944753283491446753227561001262022849262305855582626175628150555257536084151404302908322264689341168859764426972459666740457541008757700905572950605612620968884229670890913520276307024587458573405358810876949258042460124968434324818251767127528344112179198581714455407389179574613196070852998375066053673022076703311123064956374471440374944203408472420245140008781859978105329502052913847490347732118028215298337190426642366761574637526930542219520123533149921405795618803526967433937002182430962988478016256942382532499625532690572482049195668679442162359862867812593739990583685192503033226676264814245193584322640491323622333049707433999711061859304403961483365197752516762744480776087182835458658067879057025289086030869870742147753685167624144557050195138987600193102402763458316812073250013289193670870757246850639307081611261248641141967434120992680674579110590116118627242790361016308261087316359678412341510988935318345402125949673743055896786903768933045066921818467821531625824110967371834458459353346072496501418504064842700006177540896977995568755132273943108777870163453929250431066412634262808645947054622254356546316483485382341192900521997107216834165010869549838567136825786752584742683174981406942558738450676044597877505463192106016456423718365466170482047578869016462879990515140101624916292982391175419998007598764311831304558296499113448391289504131822120638790726055212258429759457061921814320910137919855135215562147039442090508115814829167121651571732092680970484881147161897779909988067799749688495772435649662478237275320160059354328983033312806546031846779352476805570238858880864432976646359820634975432150625863753301171226489259700940026027876072556203909469836807371958195153334178469327397044250660876784439349347135088047167533308253001271031329629061369022052124011956833995805851174240907016044700497453778258481531742465941757305842132153496997682412078547826511312656776992633863479397034798355961826863964465433210669195356955913206485955842456471023118403890430584555173080941471612347265514633479062741994493141824748768808057998872642827869825383603504477418732453811409973260248596409346080695741525094904638933796399286583457710859825741079771006622296905265357108247912179920770033867414788449032879438180930559741052748309202455725726922812524256832258125636750045598270735722919308744805332158361979329416224094826941185261409257595265826976768261041630869032482925857381026540655888132672213562265585222558056256166310789649373134976380705124169354101382083275836655715985302878807027761075455353336523489628874058756304291813267419681316654425493377904819894363735539675096999278970828104052034892060659768262451037472854044597678424744475138170914501903070784941600349347687211987635528369785895341894818343063198054664663317472828233764579469320066555221745951190463253198032702195635181640274054140726318729402535646298082796782508746277231007525600859433067595731261388542973080297220913768370965184829028264892351358626985874525384066894671076325410652150128917512627872358815528440571117952169029985574219469199726839909027387071711026913823364326360829568130477069757713326824532168515531461246237486118141957110103386292830385471386633422675740667271745891010223387939386731272586045962183414562744412607626927690046806693868076762818041051258758589507389707885038163642165423431830530708321453157652006072974053273633699157957143820785138613848580046851733025097145376330885933373475811442454267794281745595536721012682866500859653171546997126404703661009436332949858402138117600082220092318404462429698887651925118046819887110634105478995887006457253684036909201802877436118642782728949781885953049611705810986668900908794492142993609509769578658900213595537595923587161997519287803130594135445420349831033940986703252747073227905061440594803223694314682300870059820334581503537711471401729858543964958304534760905780319359717676624388170154962467130195502323298558786711631057700110460837107384304670601329243147363054064503184174062207666325688990937946001423158889521129709248912829526251201775964328230497847415737497924936883664669769984008649409409693866534270804231839185780720376214537146355708673950148383384279471138389869740632947712186473073328890720594348346960125114271526366466377411230717340795742319471298156302000756558348846455811080210827801148831870797779143334871446578226639421135874486358572903514768610329932502030709453715653828345701612163312018180238010749033512413191998851292231460139516423378457048413996617971946245096098107411719105173919603884546282382853110627242839862359898928542630186131271017729209062591472884804140103788967747036050026046121803956979375240146175588568705813170302223661316532971890081124934889221002011774413995244087606843667187951680169194061687757621303194846425212572784106715099572989647618497830329163046917789011607429930302027505476683638696445868812153128115627908707960584631138486407401903580013728060928151266614780709546367566492264110165697379770266939763550792484896713697316005436295288829716289173928674774856640698048320469891165434028103615771616673751416927971476834350494759408383811041993304554510585383309280599308871445514982014211073819722251505356777180326886590869232706928943580339901193431082021600314323489666291534520333914117997623711987644435768985002331032078075699659812764643249421353842728922931033774629731340895673912492716342157144284808174728968995244415398249614396099494092667945328422335567908944648854341345008458569994079380715593700256940936823284998523071031888239558517175558649175673484027360578992405809103542283969761754235198909321135554761565630831047012114663312835740352758546708627994692385509082358035150914946204092168921764568961372410539800271726667522151650518192500370591434571397636049202183881592558114484756323123067104899191205650592526302457065459733044588352388146321014072377743826285383647250103524620997549237678783451880945018642010845561949245788400144436100324791079809301118561585068428630429095529092455869339294193138452777498310939713658959271757459120961045933474651856263477738893418287592463638601853044928758930532359831284693485298881314960323536652419213212409265732447541416813549057960309228781616554599959913397299544012096595838281627520375380225801211464909149099890213207497301913189952430681871215174283948952119090182185364359112254112373185143637531605738326861145110292666773951221364210520363195153170221484080760576601215547503405728141568575655774475501397637917758153171298059755984178952688993708674228815155865587438504055072659664063097482553616985511418773016011294359338338277379677672861423558179151531512082416908436840849883619401221767439156328392983727282907138826814566036342437787027744795244647922743308634199600893414356681041746955145037228168655638113553283162012277516914652209946065846043678898162242113273603925180045022566187301914667890471291081495551607860075236919715551221507262324403383696061545869431606670019525706291146720428687104635332650489549633819235217546948971446088975113536774777715129546136530436042124500374762592608398491563227231258172380694198723646926592726977470039794592145357231682436857424235306140067122551797398338199691385955796589480955706742554005678672850876478219875164992173442570591398078290532559578421843310330967892185792491355860138943253394150117419375824007460965778770432022865444752226119975318385444833743836435677465422101570840165422300160583687752673119157259539802348000141113497314641695127800542159748520362445694653126692420031277671027639323883381935202141730775403938784679348659906712813998800776742845485777317396873396538936655824609109823685344965749818284772694128672954536100714198352729086557443161411499969738251337356157140778523470125098086166547322368632682211317739627508188418685643529800761527101503907976773789551585228757813896648112115601110339331335922515069940491010524911494313024965105041411382679001010992288311531399978929490150970783709547581459858997651306394062531346824698574093240028559613517377999965687297779273512468971275663586409372610962897151575070967566017789035262580514194702105410960689530944755733577853706156017137019522674856833886797897197024214072746948882745848922715047736292281714644180299928520736283700968083667864680913931456209931114987837344831121386344036410888030857163970829100084369044863264410985940772213882680187457913639207886865685869605816548396200724881439925143465860235831470835953873825170936660860964710382842256924076818318076565197705639731351484070991084294011365956971701511388260388606386638854941761606240447884646250302457924348499165167499512886979956489763455796875541906251419865013383443649987132415950152081347308239823644819771933951455232195762814035732699359333934321070354227262506160940656518103015981792815045970716736698972996455935521459804028678396211781430024019673621914639315660829945440917823442869916185349182693266086413723794563994991610932924251606333796173533079028251668349923450938822704384224163571323483879196759537172462156384729123531935171735201461143765068700958095735122646727841360554804462799004525763504751435738713565155683657602707140482744479349456215131272943235347248919606534074924915542374206229194303935025609258635796748586334089336157256756126151743809418171226416691008752729459436091777403604222681258117439735039297516985510138019615373868755894777476259647605929885317765215151219621063036961165597176643499262584473021358659659731462200154332226832159033484400064654688681810868568031362155431295888424886395567263482763525096684516329333651739344530597809745156590638657700133480893614493601036086065174034418573925232211213557113189518419628928772097473935033939639139554559291590073530097364040009120707756294501981507191953700779116868759034633938126296808060502768938669692422413968418642995855513643232241035549329829704314937273126961524263430390759581699166624193842221627160894765827907737872735045696083918441907957857820723533016830473027940684407735136212546509483150558504280129479112705277742595675513485365268465378697198683825851203495674518950475413424912540673413280027476658912405994208263823371973617821730999777638165645918910612866812585092816856771263381964326304623284411359315260165216532195986682984092610688449501033084078562536331809137668024690737928209901595028640334459475777056800093935138063110040419491741067356536547957110764716338787224372250120900391071021207854299590500760043795167054505210953344313377964036444805395697870868813879296996658699825943650917928656152430643936859174897650396319644074290424600044014719072128430948710218846368468963691832904980383731280856345169723633011497562984069725631827594531866846646919671683751268238838119319379199160963888095331765792063550618860834512720106162942074121784573667171071597709085083341713241070150268119208122125856291365944806072060611793250892363481742020191150463458535713455960242213614601547286991492279667492386321827974717060969360062763459318191900174123950754888443728061373879638555347178582776631495549251405297285999123161981198742035242000450686502963775277545074143900868852286988432087231699098661103104728771747313684018653991114882594446047865812572268720878046543339119319092745939010428029369349522421456385058560713270268662177928106994947845869703297129959329341844333780479587613309460940886054210009938505981636371180695225197855915744955944458708472466426246344152631650664096757423124963879135403668569278335570277331580101559856499245903234632634762444344528174117286642728375023658748330817163078264330428562084949185385487271235577454052287985634726370579101723807521004669252033901484598357018285191125927341206021277073996835766926278839305116668798869929163180776666084828845627792521008337944372202090320189353304945711444506312967747212126743965078650831882869206697113441348309969440077808814369884379375518307983343014282996608675932609497497879991183781257523956644402582983763224462482386776481011469423462455886045813057356778936659730557384236205326636363958738295974341140937790184242765215993299851018316669949576654253515617275402839913691474036037678725139040668316867455350201632507323267857204576559135205524465329387970301455644747133213675311656534642017314789172120870534077636197136666989967226742390122249654582828661358284894384737807812113811565655730774104148516262222068203040361740720500413083396793325340720095285327401956687559233416452425670746097528531886293218638811885975605761635431640378036112638317131925695859960960171865396771409795889658359200872899157472333685189105572996976197344696468556121363532247387947702350764518477604374809993346939730013260726001712444869388374077499350219149505586718382383851825550090196238366079914928605255313517708630203559059774035112318602147523956539360430436091700916538560809305708955752105677116174159796217075992056231917349229186503388157512695708259328131281120397903168339600027964029468661299189288757553390800936964909803563553145747962261502896213183407587345600540049294777349011759555902208174476233279127091967767472080187038969982584817608857096297897292698125333597312288157536118888404393550057544456944583671675626231028665979682487362062794979575349704680243509530812199790646291260905995052979427492819946025212983101414020630193029873450192931554240308223825308381760640779652772637293795103675916414472382474853174770495470541656580017220892238459990876195540643815674351910464264592890735158093082814635583512557657367902641639179070564344489344502079225741869759472037405347148532446090179913630600530988206464867733167258858940636592826745617329367265247594595555284348807798740864147338712648985419472603475925797077522814830187911566899447336740424299964052744665262153044497442180127878776893099460320429004846651269202964070805545303155884000302415752842516606866882210789474397433294695670331500235636333011923592084253032166656208147181883734792914534960207605817658941584420239164640960144671937944671214315763847695286730284338115633201896416638610124909817281915408410736252347205347377172982401704230553155987425084419350232860586371542427233015921907267905998875351822925410415308398256108262350150989210716754616813641877491052206101863698073270930506344716494914583925062411423918485235423429942499702886745067821725300173225949560103325407720677597278447781714313331763594184669639489469900788539469303691922055211537950246227455986918533426408909282724157546924980920657606900554954440015528434636585818239176229278544016041288456538431361468727776879223776280797183171550179447801899676267384856218831905095450246367822035533901252944255462124959759434395908666453357593801976705296418273815628166800062961369732897629665640818814602357980734885656602609086987626537864285695883314353128640184992007651403556344459298294887027401115074165318104616379395227781398721181795054331425890482729771291572319970573025882194772408090554147602456719869485811200376748091095062317593986193742233346473517218869066284090814832612582004611077871879254993416060655716380618942566897042696402608442878322441210346646209540884615126805033075137538430146926491422499885731217682677821355363163711122326419616647106227880524882847233169183063313302563582572700033405486842261030615712843312502645440248076661906061890247280859854584836196062801140396675543029380242913773143184077704969079654110011529343111138157581074096922322305915691288151465145889937846513731353240663016728996331654727012811125320312710735874873875787426434061347307589188760028654223626226443477623753955835958331685041871294971142613632073848541070215091589752904129093959237774138434952492358841347491722016227586484389893546671612850256412870230093090690487414813642750446892851944005654483974779601837478880694411373265418647672679873529714336844934068287742038280435391520138505616177977750418163065148472200663668858111926810147785247426861786586555639298889037959183269403722562535985539115915874453350066962911394284532937081334970149650901891031821311976307607197562250555173445559209296415653866261530588423922163214800401903887565604750176555874595096447256014335048816258277492159066810197182325362839225345979482845966296432093212266222222336775388358942947100651089331487072864717443974422007664999181135736266375108290605669172201375278766966282706174094763748280311845045418823673327360864386031661959849997626530104760131228996042308491417410811706012915140625874122252759683205695714476045345491422608099822509099844796868440716075393625621609701957574385079964586677709377635866481954132160298076016649648865544484389289604180870139660586820427614445759000912194732163552891639451472420462971373433013163805679895122802571485121168948424838436128130742579247825593515074153110698855248041854898976013306557834460705540800059325427961665898029703532241641251829153221169908649882460559246913769054750352426025255260853447044133680865357328621937275690585080336903781659285729166061148832743323071751368025986460015268104935244320553550623319172142106206096640360071556306860943891471466484355302800850390818284638307561479884510276772970452282236070606529155201855521160578104562994040771808187922836362999137167464459104031564939917613738713692040917088680768177907136160355516487379764896569371346253363504412832956060075713223620125238601066946222258416492823026380430723349638160911390081695168571326539285039845934422401801617143975409105394949806622122491724073006448986855996683776463497574722081017319849385368015648972380372146869676863802124009858708668578826559824054099078931947684841595623810304368429757017204094239485872822172102839984509714244818872998802472524115176203800395278340733278564717231933189623292420227777413159456669298746941511261914808302429779569127852813515401342239926271122247962663694796613598109326273781638205964869616649198072813120359919225028000556400375300159753285772393481153797786150525437515534220609303300389067781793616604148780728424655641776667574125668189129650902847926094735243095279611139803766286192942951115880580332235661248776138211724041344317470770884263335550956287314406746861401520600807172528383336991035983146690685202504379154769720042740580810729415765814187938371876687538209941984641897597868999003459354436338051788789824144210157072091042695533819726335807235787522827024210659591942948553190673657829257919680652203689068086618236017722135392819564219836512375091325516743096918114869012642628014671264951666634218468176341414696932125202302513918030850842769671679967587503184395834013078911697198621476865550230937883914519103697810194069211481756496109801014277663960262762338982485255364635190551230157254586675452828782358013035116158677881157163171552781238633160146744180249673125302146107054833622810266555745163486195714145356226763066548680336180454332064591707690521745597170819549305722208841102345017735593602032243757542661282485532570162108723782198238537859176137105564986111888196982642060475861292504188477148929451991479488821766135800287457238478410274177958936287250663630943335027268067015706189736646855488128187966012911931284235601965853251896344448615324222072806308583998437383713840073252162526103107292168631240907263669477084315225019427192542131249364888510842449467002377660791639164746448229216005651971332084430925787267942058995725257356553664633727724024655976323065629685962212609422489630271695342298513499752011222947126509890274273847100234658587929265331136645769943357507481312156577480722718321347810365240058378202221500863576659761524059354994968696832216583590682570321735396150278834942137707418780620447309940542355387230746355573334240438080424652830487449206868968221528284558030189457199194189585392786277526173297971430048473626538253310199078215166749587977978298333900533047499394527185242472206702648580385214141796385421284542884609030407901202012227461823880515856717996204855713209135663494666401168547744459570870826264738472505457875633677306003185598393492096643179086928638427531484651486751916948405158111212085631869864976518425734842368887644133680348435847720084668212764928881538085119104582922230372097980987132518355194827270637347046570095900479980571651942466388398992584400682961435805753234850261102664027250713292684347376562749237250370882729734008032656245624845612153546906354004259102139608623253884384504783111204803944978037448865131968641027254967253083860617015561268513096561192285527709913524122382903001094295423775867858615523576201151502880607058498816739713706999070319475446095875990197288387760343317313943888263397621832851633997412154440868328037995346140059176115857554218178211946192946341923381625887503174220701204250232167102572978058181402034028323166853936430589951137481925534704530780070400647411663661028664126649557705803929033230642854053437946767653814263069318124349020522886501143620511692589539393790947745979070485604218606659701479651753212185078927553787389410389544643256924945936782268505871564027358017925667927847047431892433678281804233980751253663601995500372637358434794328535517968520274463090111086403585739818070185777958460749623763655445301827612212219307606790725044048916788916474385080324782796296824330787783476800557289903625024040739841564997696684991760702133065325073057175420197785684402363123487480167089005221292923679115871218438053557364548385313007126828321016302375804365803058595524196448002266144223426284401467492384854788587168469707693556470093663451909359201141233052411430379589137794234329816013951124328680308396103448878868837986289380699948186446226019455021530179056269280449643542541094276875835521411673530290971326865890002832111951097644008062473402323671382238577359615260877058636011101397603428408564448124015779726199479874973577930330852820942564492859430358595100446943644638356117429457572572725589711087897381801242128630181382768612664712478761553794614483432319707881716350563138899559716422712825454139575019063879564130851357847915050364926688895482194180208371411783157554201353679372007564495925235182787704299754460451622019039048823659793259831936827981213549435165390938385323208105861138756864034422652538657872913374528271775049707635018051520943078170570506022247302007882143274511846773453038573255959617757172152942696576305630088234328257510792247303737743392980897674521197688541891070159700926106756365505540427274231440214401019083467342399588638926058706446431240984326042792072815954871169402240677017576236438135502207623803747797071114954554735200845358047724859543142295634042364051602990231132529676402029250702747783579853896514758306004564508035357587625502393659679003034222138079045063238310613916909474972803166508574113590954027869017227715770560646406252392499966980073362275070030084786992935332471331229695988789713452888692026741579333322052883844914598018962315485685838436852047353290716018398049556501685623263668754898137366846306342940260001795336117571641300435226796557872436290049586464327120202303771829895899825236743767063772489534532249756962677772053731229764292903640439875883256412384724619188915136817640677325523602091678621666548152533594480557972409093335090044038223038280053526992498720554728989713330196410279973701659074750990205016953197949975786578004661925460232081617399631053269831743315182286201489977660570227440478602895800840676666972249042246715205598316138175840245546514204278345697170783001897777291560087851338280560424014123294292805228328856366826404177818740423937816293271109512343278955977982057357966248029461361376084684146202177807371518841560181794257552005116667070866602754393651890866058244792963600498150103261179679299307616429268387879599313392602831043579667982813833417441181564400812354269837914887176174928220021597449609895093373109712245552955249331864791348040009094588213934240618407150640276260855835496420953142841871022126630067747926887134625264283547849852532892356643800459742556716022226879360305598706176902787882489584702087136114964831475918633677617474067806570958074919291906160722206409797198936975561891376912628032694723575392109172002658437044258891052833632087821158681480092933436224647841772917700180173695240420921084767892035710920876972193920207314982052113460120812672193024719823111817919315771921387276009184191375608854298575321411860572867736967394276136567642453629173020900503709050235694063534309235433204071120227222324428980410774528385546753893368365839755094917535195013578980953202356062183889916639423229863171788914087924883809522143079676317323006536920498603794806041260764296310049848152659525193122460364170681223476163369813690770952500869703388380613611745560220767269724858125923837754372267560039478751160571732295995430201468179593227579219084624592904699660228469242262472831027892458001039677495840575653488790291895918287139924033683280393812995444632531421702983159513614592811924894952598305931640354901843144597281826148718284251905759933294244583096400290727916157480969237394332380263815877484897851418475989990830910566689498783849885177460825644161696590616262974621489676503333027954949245511162482781091045066882501125083433008183064385177794040066403917998215358252308440075215793154750409410998829041796194801489507003786743947492633455908399257390416232893558926166076712201641852633938253785453137943174932816266850359585025776035815126291468437835310139797332584217895115636506851431883411201941028413015995474075738636220109311310327290007384058653085428828922673681807762107443350328602778367574057447480424589407546113591210233070453644553297944780196117951310145687969055565423622423328930314802753348859488315154743243823052121625230781784032553471102899460740929506810900764353171922319052821256353037583236976383076775663089764265718318734501893398706261974513721420029759215930981558199274672113937592566683229596822504482777969956124210005577695174250737081055465093986930838340214300855462842964984904575912283300704162074843126680724496213133967670695452011822740408233995949861686504473719083640569683253742947391008340106932602480843726788292096325356851841476669250232308577676833504473973501082576345112769766872592664562552305245855505462120430248849254658571757308088264228032443234626298420030450614428798477151404266932510328483701410108323532557681979634815693036938496112724545404792075939262477058640125689843655360678141465289965845623084882776928546853650059170779478293052798850865935521476558660597620157942193102177893657130906696613003703123976386732064580541682174367833993814905234912024974080054361055000325826254983199249878083666564563359076670280435859019812826151275618591157288826897668108167844579376512853207232164581521625450917600045038340944838773462105364297587409618344933356370768380733887587995662252629270072831375769548129638076697872507954800323079172613605343431464575473206708537938300950803831522804477078496583003314470051091349784996034652532718380240954407643966831342774209546756381804014420384199153881260701771408795625909332598771623769333354056280344720074092658017071962933370023233249726509097106598300571938923630496393945419577250383969689061299279753664056173978199836699022620046340369727508667731024795259773085071491496625798751480533587452672447334028775358449974488628745089975738366133050114051840717407263374276697411285596659925182726544216518691900582599064269092975409479163719228681769678141381571641699445346036135539482884075632841740342668080927616528524777291370036636003863374583085804195857877308730627695595878783686456363710769525466179349330493201017426681186915820832537516149846754231018731391199388176636765365569754968240086445658991995850206744467934535236316178844531208866794376559889131581012941142582338009411986648975943772033228669275509524259482640535897780667326582438984643401417608014055322539584713356915497349770871097355088000929938238272213003555973451297900616737421599872268422963117554093661539988537077402987578037258614152048297318418631725968714318159593342975013440053719194457528978514860268632614401494616954817625124167324508260127935018368376230871984461148354169198174503824863752640459306448030718994920435124337953563343000343298987079957223816448985167967684363037996236877545362558610546627458626127541934683904738828044265802022937375135224254808690653797299816623663542049975239015236854108434214144487823347143681517465099371798389039986393263147214166272977052854157719371535070719722484341130024031065690629428570519899003920244817460595759754348058614834041500067087561251847735376371818334322083530920589867310735163489501317408705613847914395278989446913832458516204546744151312768557698997497157373054206858966997637291625954167490256256168838704270304916296797438545483199110508290212828884111836329572332499648744549859690355977336322310591453429415545362894203804075835721745608525168062064066924900724219779796763565783200768627767986873102157689744608464145322940153893368223011090238610944532976856976028609061816828078342481537536632449682195572396104277737242268966953957147756505174531438803031186812746311844775248056725808846382591637129983274725256096524414660825069773867001219323981042962889569107219640852353883442626481144647232848594950442291957617544565509729161283064599788842137152513098768423559104077042319689137653261677640692460098260064384595356279099075442532354716326924041430127328305991963820538737572006485143498018776836292216625744089899765098575516966234240812592984626880806270751041936249408424673480258739304487765648917284063150427167930071938244484806762074685869042546349823365201395224449088264469670259898442357373876582167179187501535979741661429330443024657673226012418099834273230370878348504116138991441749182056768756716253549247620780309827880994251402154535575276930517970154449324332694931126783420741155160518861532591172724927600017943933377297945883046038108634345334730194267197074184429790963247417097256661922997911418494688680801459856674073346002276321048816855009600043364669149392497723097627551564470157916952379952029165216217738187443979297528049514579898330398431934402533036653178870512939431017728057385543573070997558047727712029512680341883769549038061250076528642570728924463521865373591575810849687477231829089788324435031200921574935475489180112595776936345727187902659957120458978224636058942363362006901144184040955030752382013974461625759950947292882657749859293867483810934932751598151326497631600670055466152693970996480115301465740428922571503846239570739176455061270453197268862501456108892505419883139524978022693804951906982602611733439419974499306937690343129473438118388638773353367266514825888754931706976765635289915005589703112302985089846926349775374051248980415897142303019443497384852450824089349608813998148736174125789154811699568179549242115430532916253871509077575741733210615141040156449975226605914094534580467151822097327765636594559609133058640044630236113142938479195751584570672151094185270238535421346812297472636858182994869969576800173723076195185212760059517622545384306204642672063494936538150937763314570479197099278266957347250067293676016741906848763803774263194333392003083841401659489525181567238361679844726728224537638142404700455531089422041153076022998483380609537084148497106259665615015990877418089290529563581402325198909474392578891257614978730953887759543523531477768869124991832584446707866012103689182450772686509034195656900926229258369215643660646225015031228078135222876942658871953321901911814400598498602927708350436369242479042867110534488542141083600725654625203816285587565155580524880309748415260453993518381756544579971712583448895146442260441972996840486344012821825118188387050190947364219676430385749732828210069471459119978438741092839412693979186654596175980551284604393990833327045799625853930618077614837723098815300974963068109256541366092777584573400930837948690336867068527090914528896678684216350494759991568416395372740674117868934370087734759152578411803067166087490892802321305800583793257258207869928707991404971334844718382761672745718797595182040432917885160196259549184614176700576279239363022091966643089624882058632497715287833706943552658369473830534696874653192907420479415602004943481606677895174865210745781137042747918517688047325488412431836762612302050024868586492236293300896298510933767536923589377896743877042974630663858737611811990342088203675156630455849751687905263576089553703217186410588277576549621109925452149832879538799641379283890020710180939278149712898590841087775374229656055967587155289395373909255338643436716232649361136827060309936631809431944359963983895592636906826719842498766376906258475616083439564346632462523793108276203708698099061283427298510877364540883278166284106959829759925823839485332312537929948579625262864894691869359742016539389756322309206004954133950006769112465472012515603660304321750598286462901587116449403224190342616493383864605142641867390555393497932936800770323793803244721384294047460090988467769616998099469092950807379851608350100606142129691594745039949236661575703184820278044809687084497575668447971166740315641014716161081941772452032507303155446183265231500434424683535137745772281942415768190797611871795938148146912216479224394402126765054945088356750626068295794137825368122340969019625323267663319748550466683071490563437083193666800580529096126499165329504482355535651573036116879557184537858128866302155306127128930052539758798234563170767155503280975449874068133102788775681289469595721155567778191068007410703276474308601034668407797848449549160544142873386328415257770435285175349271406637089052015621789443980891844883861080561747799569001090439267170338008652139467090832798720004413950992386313463743242881616202773191870593723552490714587508391722264328157029132006935420588802828457547362224899349908721406800864711244315235947061162710833281164806733449097909728715339038410031923842459846803413207093207942390633736091441386855411562429461489788616214039605142045438238944808917244619869227603693727111937902231774877203661005740727519593603092518509209784309469236516907231215363695861591419933237478044202293371099953923688118170198299207263874007869121048031170473932577469149485215612518376129820435158373634982246213050788743625563983817298288217021858177004555395331779290097857485976003668786711483099748625033553465997496180450393487068121845027807103931131075010144274562722647812800349359514990260178085289950134059605980698101111305456669918067167801896860992510182114952372205284967925160012842778751489479975412060883712647074049630105616901110746924964663893431037757481087589067911738576261175352589136569471468816263904645718439577110231080628355878560057930309305616225221621504390020838426992647092125774264109596430958429589963230903444021208341526058383182721116392272376822675453650273742344831293516821138860782983574215924371918604356004251571508798417808741499721128843019806371539238150130330385414836052423048514395313534305159430894509756097087135083477822172355884912174706792827990279334008405258671118621213395062498548034306012637549518677949812709168527126919358483896672635939709123334314296859101382203462195199590913599599899034782279439631330311556140674098255270744874896606324530733550395751522477303920489504251159678869561497438254580616894815866258592750628951657158372545208446166816596653427958002271746108669641563690547855761902155427099135410127902785987784992568659382336317807100436641688982842322203393505933839671474161154955439795919273680082621036691623776766700102863738048873816466370044753980826960181937380572438366985866031557705849645302691068723514200862956899573405598124122674824398385256032434090970456939734306608840371601088124760184263155866773025908769677522237343978739732003802005387534234603551162681761819594397996838219660608956730309874270194028071158171757806590519680515464879070859216324422947434277819650016573716220408453024321135211114548799309154479923081656885205807650040749000911793730367744475102163441394659361463297318336068702429163575641024107018680312645114569863394476399472579411721806321581714014001775232329679899112107456367765543146947913215813813517821080130391720425070766220411166726819453623753812596665913402153934675974039321458774022750864921523108939836002124696647790174035588339953629377990280857087738340874682288982003191022266131378048171351755875228955016452580831535753068653326620699467678286281201924530523939536062541222357446406426697618865111591870954706878827386531192956847972942124596140939127162180196430632950931655689431376978188526158511486877217031359409539482073994724465305437362052785474087749384937113030195263241455514297689880051717937235944078353520445984494071692512924829898765762535355934901278170060948896008994800437252200330414840807975876017180203413383295139075597499016672384695364798072461551394382954389298296677314722427565004807226416889302578975309700165333067650640458463444887000389583153034401609293144099322353034647339582298069541475486231461724165549266434200774223407857389701941448363689542146313964074790449846978325606776640249738362223737153760184212394088138608152344442954264077771025732305111781831914406794426238052946869748888670804455843005569880447070728963489763271935273299519424286876845647325684645203805180569575907371110087873637550110278581248146245483506985658748679837109470440248766926817218151607474050895440959152094768297726242870734443808027984372797034574549863404593722578752396251569164729044382698780206437474929065366063114582752963277037994059190532635477117686410251788200248940742638063621181233319222398050609610065155127971270738417713374193343269822631076901608902119637572305522182817440468202811558354836119965557790195885592217138432102413312947901304875260024648921667784156047757609777809808247741955390423048314441982434078931602569316393155764465358387497656160992726405660707186142942515418540319389721260626906773958531811497797610030275391364111235311497537681152346333945634795573685157314036525587210793353819741926290298755539834999267728238758072201557583267894457619850858278249969306860687658394018752555713482816986277310001187746827996661223981897456538804352068143692139207183807372180670277006616567438294977021866922802532883124168938511102448878482099658270878319148273945342455804344167121181777935184384191104500391476770071062369634482566846942031735821236679403728133721206943932355561946339098650383327297125074286575992875335696317340835015138548838302945375895004731736607432477648103091360825274022022945850437979327601481419590865344990634535948727553079719773180489198621791282652643034408539809390507652624500738311616216626787646874467560488253794074458796703162030064129642813736963553917409391125217295607299517781599710364246855338541052723061882025664407191565634135104034197002092952907521879999747653040165601739360016521578554220057441441419408328281907760677834210173797091527783785210997673853325682311975432829819429782340019134254709993732177779822048597305022081234928918123147991759490351505481052664590135609151832391862812753098474991294685793699248989467625522969050253492389086678672348557339294443933585617793048892016609943182924088833584994052059439889507861689511980252541863233093913180508526423329608827381070147644065057430505929359342744602667309566303486563367993627586891155840778427018742891287184120432803288569925589084589130603439608998597048311384372210917369962834788966955080746828142216840748581997075124444207564612501512426976972888082298756421190603577696420801377554818234570299198654903306567410100754077370408208297936652981067669848839455695847694554989598477743793470224063321807162221576059913220388298286812675870222188045262678537560017761447057563986489430541322181691573104565704458841322481239891345164234075299289414057536352198226812516277608434782965971848631358638586369336771046269601727558187037490686617080340719335549830936418041890712740542062537093927560765808323971889660652144369011143942711382961946191093761612936301131791559445631391101357131948354067007729239385613330983959173177198218651464391263367240592436174276402970204537512432841973213275635331429211756118102980740930186282928848053138100025231408825172853219841184469843676262205485830514013143724055196905846063319171055900960340914162289860561960009113434683024842828525169653776389970618885873397465510577338581529403055493242246794969685857823640502289493379675902126564681160540840489205472463285134155119682418320180374101347935925136406818673400766931732467750807182943629257846746399067853239802929126517729941259909967048212807532888939545197387375445430798610932077793153474330771296960295299792165889064789783646179008161341902655736932698135404199027402889130689106733353536877979080554068338372507875739577908028598918522820827173023718164139604542127318187605684805592384746502691940450766018973380867899707770831354146197127527637802474009105175453319135547981032466713694398362687555217300673118184677951721522555900252636066059871682822425999718654814175387504232216936931116143248074595103184652053323206545558007852665365975797557188984067445728887760347044294894982303439619853710017612600948738295754734829605111870815123229668382789092570269381277152126558672891450730504635441317501490844945191553845627767942281955064610457657060928779058235309609225353889092128529263980750966296121115764271477974642799080092049818040906192846575890047032111799500757540265573528323516769066180276483648652399535041586534876637771191539259746893674255954380906027958545905730288474359513559321153128743122517049568571172520368302828002444733400799811797320299803189097858558878265524588332375118421469540729054210783440795988730584618041985091652175085045807638754806646604861240832555936509245224572743603471459698829856441298283832165167314382228422247422699586594600334546174000001127335297793742062169234494268842863726288030518170432223370660992542568082224767357251470499657098867581845089744378298980959545391990393707433335822998652373854686860711156033342183804636927055614158230438921149494246975723261317196702767727630422967922942411651941194894392697594426537336017769089820405069433228657177351033917303481221120235432404156997599191716241227546643331343043569483126866232373056108340055196829884685171328938054930327847222057307376297977865674661196772057337499385506845383788898452631808573546503549275708467349299026068716344857699165340540251511803679914897902912155985929923920635271128642684501075835800598733264471808266719651683923758021194671127996706827353455680359112991112630556330696099653947621402160751117262740103621752099076560311268136905876003591159836126275242514644901870467610353055760525832775435880267880329407363761085679156078734837362172591393001578352898005767107404161395310255418689214256272841342791448449444132127758693771490592276700910109009535403452264603455497859021751161575126512909134289184627614125019957326595273828419748565579098781281443269695987132218119142856069723656248755443712145233026923901648515256454297803314500789136429548830511165991011934717495096653460252439279986458494664868638588815503728508527686701047694267152733583129638700349634543668838943435381903955958607161525308515663489042242640042063822855455735860183041693883699618483717334032541812662281332685269180963322070464452866431819129385134167258360375699593189592703290579379605325512270285424565072909576675343016992856739133759282264999665622199002386092020686437124535280715169783623541661457947059482580183390918867688836465768623575940412782874124673545309017751086068369605871805787511456986438434019255168842488186251347518593250233908171990121654395595834693185498824545887605339208397054425840023267370352175251760544409470923383302257917175890100955832756067935239828323200706356857145117393136655390630817423489300931548914852288845107113619367786736360129541525250904110602789266939450156621036822961441717712367102039755739855067489444387982929413102272423869102244114868798438748977131862237481633026050170800652392491569233906053265094101559444216798491939035920939879543959398868985276673934439024993424512594238411073792447749740467003445149019708996500117660762581636323748631602425536132898812938827271332467663232664528320680980676631377199872251600531280824630072155546803257182731469831473128989120882800306617989142054009652410095756957537573189941906664861289044990862978971222470136406897630477440906102543990183511464893793356914794933014270842260935623959241996354497634517575435137125516870602696765256085789176734765498037233156221259656450062396243541839934304274238765140499736353044621567080805881004773240761170899497685938373453403052818691997239875877235337000661190472135098342155752079466091698804931535682529678737451207900074931701735738574734175406659871850882978925979437218835528665051941523370923224895942202467622201511682397555910008782280368143982623628581738989094227512401884894454751642450844284630800868407019770287728568233985471339378823078760941375984833603977457881507546079227918978843612884427694599111746727985325169993421871283451490988477298915797337481005641245467202096412921482454884355978926935336929391096303766863351825716394395209631981061022117179052235695116665717903968796483113012418936164456372092727699591472942637106337810932411875229468041518571823869180664103878730668826774311392760900591546257360749646667919778839903992795348519003081510762276186215855323079194524182804963650671808182972369652465496146645490697202404252223559339305573466969574759082477330238762786696381127903945456422282085538641935436497596141936347125262202823712374415388499376610915902736972103574786860779125217135403875885963321620801224575563268178130216785312138707576314722362513578424578637160680901766786489699864329973822476239160847130303159913590325122385276470523759751052018976186484361297125652067626262711386199071556053017021997086333604163413685156260184527113455336949229045961379898655052100049931415997407964226302822960174565528442009957673305997319968671059002489211216086821663936101053026039675341137179964795794716601294532211352958821033349309229233596648828971131299148430093737788237030000651524019683941848320286706539780727551181276881894208545519750535555565206351036179108366198083709264989010918895322794850907927074729939686928336587852765856206912047285898564696951651071304263902432164881539454797441169517696978716294034147784290456962674504401641450246353147240964285749224103068237698319063856860795368599672228084141399960055218201904507118234224798598860008326706919244403962126532527976549921533473685321753736315718712400235346681058167472093865316172850604634083491588247506581384227547129675117194444343566872115496140412718883361320517906165727722119679927477785983261130329940755774440445517449503944953581993206209194764355386728323396945299073050543101221796598676443601030116167461978787448388658375248928221076410519114687879109335821952805188028015873635468714423587774144429151416279962052681114238141977662102705200672733788294456027138317078410630917612955286653938747447737245990417033056638536195437605576892169793396970126648542798642361096049132411101575388061478781331882605341741858726075383583939630549704276670914141160871426386043562772862703059888107981396346141305302415059251267967526325063246973661891345019387326491930730820236578650058782955454078400883380496838346948806100283347381896843083078597982765441763494448761023475053735291551249572132343678269113743040681066853365975058964696392280743763960923278930286228791042075906886768887508391963964256925401452534459852978192200913271060832842947375173992161846974493468576942908530147407696395781466480166177804033947323092579427500602901367141579036301613272202135613209055777582712728460927458668123173376166542912292548054202804423768778528904069079176735133677183407247861731961037827916393070615669223710911638241842200146673121527956892795115053314523599097612968454922134885919084414210716168102643818667794048780016372255918041524640297576730009165794678907436890454956032250961540696493371439128871215215028738342879537387734200400750121482075855514813057112193174277025951867023856365331358505048410359623934442637018754470936417549355969878390187925670883596852366475292938145095915291038137942243752889688259617863388949924915937195481114773631707699664041342566648981712450478329517109184500758029264930687605236258327905698498786246864006599837406042070937498728057226010427349134577119594495709908101581330864279078476146890896237565574137408656018178047621337855052791093315779236869461059426076082738035684847882517659104417379721922713904606063837166521762471428696472804299245725944535695364906403449590325738059602873654678140464514319137461424344380770967870967201067917717535216487321436717542521664275113160154860916131875678304618474099365535519736758445355127706218552454875515184444715672460316043541668893492246027368302673901957108103955848090830329353204908234230950499023309749830163391033895468509937241719845555128787163664494281427461092275124767504164736193202362225941335357639624180945811126846757466955036404600267797987845971251530181156188907871644782522646866984468222071991843604369965132563228732532778994439340166714299508416197205336945740882997927101563194361641183714693583634191539878420627385953439491815405922810904247418382194927688488064427999589414577091139803229980297595559872171674269015162913502998544820259580219487594961315742141996529614743884727522585256370235196192983434676944373569103733931850194268005096210746248629774504770312119275623300939854626292335447953314066722580178127839766022862680061673971438193349909047151335058911519086836448870904147655928078035270735325165290242997990289222047209387831413259268491193978936274197945631166801149959563506240476945067772573092959422429519725009140266540594274018262414518435560788624968697035625297153221994340196130915043915634719467706567749276976304726758221350188153786841446367688783472605358722745276856935703202447060106417484108463113418811392017240874455324803329866120945479228884630024434041310842589666208918280030357185051546664945820525628491866714006589655625935709770316964653873186854938048301762021545836599567433074603777819860204542510263576271093994282501965661529780287059815430701692846583892991526393351698195397095327638685170951423049190633833268610826855116655003352407581653259376183901426320983066198934710689031844109537423024253312861734317415995744093147465502019522515164109918453708157494369457969192082297350179392019233103922441038593064094186146091984811458320266881226806336767449062686599864815773626206112177514703892929616349065339902151507082374172908491410858550483926936610377256926809005493386572695003672760765290475593836983715633589148059953055773104823278506884382941336465615260776837803682177065141418624846142679220455754453922546766539137458030005585894074067260662565818763159499942531872267124027724704330242049949191021310641919157894946907556425860257254215434363690981087446466897718698806916590445844802571484815586077424239066327501654251385745564715494132403861443048007035663613466950536407052886211499795265772883216691422360090476194784998545262398373404082752591597967375460891120978734182250124841885893622953871837100418054539401858002182395070475509385162013400031542640284674805207465972096785108744917030250956165272243834360496620221839772557807073968629173670190105153898156821782565609626280796738479720224936940160812915258047403929868742866108084706374908428474018244967652828848973783224046236784200121172952749425950288189245477132796749706581769795617421019977975537430025757944262000979574966621138672761001575155750354773783332772746470074123979844905770595524471534972501494449952174616765781925015558387701922981644390366165159018315078438735391641376246224455813712757857061121281516336673190822659678427173395967349073965354658424943029249941056907565752786642146305266427961580795718833218135030665518984472562280609233231348240521130330609547214411755963406711386886341187071725184042152513724839611334370856796814383743108064240399144494973002518087068013971520155010542166783468926017582647208452995238253177577398860477538656080165416259028152424762222311529803186713369367615206392748722146107014413571219195567174473401175754574005301572170221343401772725126825562014139576523693304145958496125217921153862374069096548636166918175437316413452465719603280136005543395064007327483450875622989600938454214500461918118708103962496279461852225350190175005729746337712655862384346620562199976172611448809567745468305655966990372538219452320077141424899097988196369193739039262167887452186070907609405193856483925859761500466717905382353202964764371521152034444967464210947131289204608444979484881812623577251345276994623495035034524696582605580399337630029652133756516272215820475478021357695180237030575289486787344048531619059167763902839414034604119823888727758395589068413614383777088506138640121793372769230231072655697313448589245691370111021439906551004973335848930114267645001116135086136736607441154797929963294458369862066304615744024231914827553463527658672863186019954974861389049605977683527946818476901697717770491972042047107079366994502208709809081891356931263230674550892179580661211243529223869283488310651618951021168296331218594208965999828205918259709298693983969155505484945212369744373417444995401885882704798317922533204524116546223971416187985518960057677298349907522740615445622552853671833179971018985738569179801173208617922123449687730157900672213988260146815982219950405572899477686980062296428760095515640698405128665147070018777955313344394624794809792090399228151080942208421620145824249347292528275858518235960470141694445179223432875544412323978054328227341337382443801994333805043024956731785849505834438405865933871705478616050467128835950803235277412293852547603180281559914524486611048468285589783372821256629970217023212841893283277555496201229633704678773914701558469678790429071915363291731802989209819798599533666285233372321361399308464102203399881031169080624822463066423578483050085038894533234285859703449826464828536396621092374411748369118947394320889612598250808941686247069257308441172485629532152283369948299482954123590518182582887197954637554545947507873024646726331384324955730470266794957223829976240672107281633392683806895538057952125969881462351776521196360221611413729745236419705802942002111556811613527699821811598791983350974270527650439524305386380620683975902084059051524025643171533929074312891884959303902800307783216110602267223352967830104312246969692457266740527575014039928853307864786388062201735718639761567971483816884194501847118034463401324204043680485077958193306981751126401848291404788547511262660762027252595983203766290148003657881265597775123218800719249436697898724218588265803776172357262900184165127864185393480820461515561195205654981508732101315834206935274802883328666082946338566505822539130659957547120923302153553931763434042410005383058139798590560236406341178072958129976390720238308870937592612927736909659821098674784018994671981975692822632709872422943179555546271649663766340185232244086911718150388166399886114438979588406043290146509443974758068576438052079545329181835026387641146856667849388905643655101437495784548398315272686333016918884112632186955595665817863147918555716914209625444874423992923325233162412442076213251273745900940587681957884463077299831355981957557912681249808122034237595915845252558369189747136798930587619052336793810929589269846465664827571019661502478775222093959666165482127213801304924769820986676236471197334183006749306573452472147997745675738857967190614104906912378451451763208624666101493376496703351553245822160216501233582328727551108191552735990013762435683713727873343571556922969496346796802147720974633837997280649506615805844505396183791689305691775501292310711907606575073178972586867394127630398309198330208492244418683469263036968007246490043534468216333859808638119703084875175133529286269641898800067339637386228010389459328363125471724070521781138280179763994338097525808059701828246978686082809213464925803151804040190982449483335399649797392496031805463701137628586695743310163435381845033590961368287688709855452207037617284093060617169342092541414235717195151453991563947927096078184052606297349314288205633497142651679142676422110036757257051021260530997065287203045535863899817794426006179431713028414928189747082700652963444136151032203932346021499406508955016620835847872515860900165249692403946652122224057071809414491495514845665849587637429552119938253930697752317751131537883643561874374701793882451506164035623136413847589712364326948730027414587076785393851183722227985718327148004172588574879948938521651311266583130046808579825796061981577000821646857456970814947091617196936601906656903724253035317770825068197568061288276184418651013725471959608102205368164811356520991791557537886178672483745731193516462086109954491657253624537139224377937944776803706656827406399841565609678264585606343737319740008906882865210413645246076011078259455165305675657577161250952920659256309284460778649958162713748827200682430679906732149631015301392444543202934663750082841682892785859508326238484388528765558146757399189162008842379861374373177911114690479792981027459604604019867108329040892632895120553710793699631994079427747420171477025653662251012008224059386705735273310926315437231795752620913059928718382276834158403800841369893546557148576190388908859742483134683118343460464180659643825028088717704104958644871551236484532098049129318651618584045386403988784815497890236936714695162453697321806183724770271025579980387990786010318625031954037686714901787033796880831832030788829725537688517403870701368228054825588772045004947685692403906444450680602611354276375317731446449686393958325591118494042693531247200600674444508938131859702383399739889707202491377619484012399664540962078870413096862562212702600668501470578536178651147703593144759332354388402224570496340682607184332253035524252110194346437234397123061393585107243554979937402288857272875274213616788481040053043982521657328083553428378627549069900291580150429511018286044929822588862290294001773180006355961129545796323813527154367379368219690893449573518188726829699614883059458307661619547981900485589624750626432949221315596210380002020950812700390586738369337536522898126711851095989964012349095567618823415105567855361586942565742405394568229033545037550224837119966215543622001170112641961083542086887041175827810858115408301480749928179469527995206884384066151268618858114122537559720802073648824081114178872527598936550358431610562368598250150900951582317753318609161396790740115358337595208408237628342989421062810399602549931900960449276750796905660421525986704847760143541984786514734063625821085536497091694742464237008765950551990173172691466773847223298975444124630647393002624358250038965594442477009411659138011914741781507217227568652960346522357373059774998499115483239592052522112760223454232525416895202934881441215263461425166659286759051310863511029919157158580992284541876023370498284528199101870898256739948097888161034178887865773067583705096738871895439662749788711652352339336202970949179439249653923016471233039622857840035294265960523253201199186163526141811473840749304645232687727561682167229423018881782379068013369685034904799809822154433250432949855225430338438888778116527139396354396209736963154426017950819163519868191504777358287885263840440322644320199738103559132735906722616729952650512777638260342881484286635683019637075327760617754429490746771593895853818154452433742219968443362035429773113362661715731583373072841751432218779862064620461950996636490575921237532671992347394677748732125769603003454379892650136669772237844394271343813496347411410582420020484595237772388763318919724712305837594031326175695062324742301744989203099074129653856752324353794275074043767482993321085959760746740872454865945555971708518060020538782808170529851365029103963978522101441300720724879460645366950739934858164815349225917592095215117875426566160324955207676335798397487531740195417428268616838129595908101196724825100520523063394004646058244044508207075345445901209268922688295777704257993186164614326639392974601718674690518110680113176457377044682715294100017339499409147395315866103639676514215397108202036659761521986131214108533701346674232827022816719020993517280477293844069839998483851459632616136084367956572775080938368938620001500725524772126324423065502780973264862951726749655699125897090120202809012383994585815547248947867565469805491165495269614893527078658083157959152617001759534311773907176810313105188943896817824995693393627123561047614962423652937344404106958080098367991715654515547202491354321687259372762717434715018649096386610311438476156342853664715358275648426180560515563852465714318796231314042588718426386890704189106656023015866301565070340388176062973395587492328935415874498483263335871824335524094752925538563303049785155106409327134058422094162976070644419087799785434339427674305402808515076314174095968749501600520600972492552872218719348641652536693778084183697068292578223639063555209919356475237646482876276969148376166903695751178729269096653565141512405912614732549697435423174880171201388513048621085355185121786583144363186628428317365731374384401157742061950675358153170022440505626414130367427553440659105658651241337486961425395170791442672366035833603846709073283852729322038236869668118025794663689489127745195521365491944939564070111907501370365358238222484290141756089150197207990959206698261379917706382875404635741618447750751153045745749157731081777495334603117192457460658579494319654005643984802162780572885008157928443341696208515287568302978257723984916934342725368081196865069955077986479507733357082917799441387890839148815350247814897001050211094506021115543447669434062771598151733258183113458950360298999467817902300943005149781252754671793949570055757405465536386842823805756659291962474391654136666471126384089194596552975389153571614205867884949947807909320111412904557603055538266167906138920327342471281084597524445039976732984806153037414556648471277494592450075706204015619111058398026920338467241869981003029323977962771187678658981200207776200836633577918047169799680134331960247173993396159201165637717637885444588591948281113169940331680943712201560449220700864243498093724186983243781959573280714911565527589790185501600689206207737270865646329961382300841929139089120666344809927127709147275225789302339594927685967805585676064695046080419352855281211880257701643439902142560636332500998337221642391176919315805295128290356511618422329034899351523447645160860123372538017557825895967444888534615243796436468263446588394895372522727305182328269505135447479646169099079417374559387525704060097215196306325011235136003851120324507735679824802882923494026830986907523321742278155035718486183717401948059059845153535835021918098233369875066614224086251794408553895681221187003440506698973574842276724367381464418834535745849204363790351005875599052620061943835879459615816878950299285836123015518713795915034064665907073385778369791953786186995955636269961062814550322080856848869437424566300549070942901641442316960192412525489109480161008046480424266585059439301242781553006140127862886138694636745215901766316398486118348471117851149063768944963320883847486962132298075338726796063964006663386087805791727889288373526080288238551090411940161040512409799811914869269686593402744791039135601651115376077108283487535549854886197889918492860489351145193368785448788229300837016069500823516532130915639227373576746210551432906991347847940231403694642227342843949445180457713840726303030970618575482960793954344236224938381625769907568463094629259251866148984534062406774665944332641702560556097823124382153932669529925371774210136321102433905344916476641656325302892761988355519051747827487932690302994574131749052233350540585838646069680061704064762282725182082299414096847335722678400207839043968003759875445784345783647444479426406656106970487276987114464532453845994871091994686981636202074566009722542824365102499267201569970666054099093536010150087217306154280336475225586858041604655944875177669489267320138645989718634671386190008897782285055047851642220901535668918241325195915607605141663633108909558053150749480144637598007930370022377003747679118293701323137662391923501315659739086995619858915102033688997926972413921580285141095138747301520479092372007541294510620406096343122514748492877154434388646773116841466675258048216027248402755644723086564621589868739742330978210772315028358906941774573112664351276411789514859637208143490994520758251202489022187554084550379750035943656930725413213846943414969356447060796575447631804678662066861886077580407738304577926345029507904248138149402617658596142202147587604621326817343331045906717159718626147836604059988463667579640383582256099094492907308962228191868218019218061074995541852504490131751608061790647547968281944199872708577723080798073372958623218998047416336221249496394053212936645465921340795016774526308005545433492111471278591214364661868669623269395295191279628044645858569233720148257446735999426147297108843459399491813098227525407717673334799795529411584968979038433234240672768044594438035773975268050879248262990829025732073211483616388269486719301910913751682993879112716541004060523677259845616864367567588661411734651026337013540687199960286828009693855754435131260113406507588819853706385366867885082270193680812504432940760986061719210869884161506979976753431054263249692934595101909267007769554777195755580553883827266010957759195912375670261013303269268443940264759073802848101537850990986559651270655511061652510466642680638743285559628084286357985903111165449873534214796748837886542056022248525186783613515800277679866714129283243927241696638502614688622139926663277786119286935530394736298641924522889479311997653782154546692039478184312550280763521048087943989131949649425783990142220040641616834874648752254848253339386843495695211708279735596065470777631414236812801397594855784363712743975518319901110912406573684198271820014280413708995013060511494361426288596204967229558089982023929911379956693775941659514759125463197656622565438908555717458841816732349146148801732127015048124287851361832320176381701267693497715541583300442941949085301337376291028292482375531301083145012642429670218958373805577521015871203016044196651026170271386019734591564629306252420756856609780037890455662550582752065430958140171360823974995385771531430655680132849052472706665307827081260257290663251714571873462357259176009855610308236879197082622243877635644938981621613997596343482431088515518103032619690558351809420464607675803787478882749860166972731240935132011489679178557451589778549040657442587679772923722936309987671118188089603879172228662711933616749293055207233640362962186148105708335519151395685511618782342344972217648312525323481975029641416938158314066527047919773347347990592029887640752121198762522578327449555330743861196462614826704830494121962589652148776610522828623965044582028337384397201813124028922407710051424924097374742221608073650586415878152485355625166473124827319494920802602845537578203923085729608384035874899840379397914185740068389901117069657320467538003385623597168227841939422692046924613463070691118081263220927280346182476234379011836867715287419678275768012213586995860203100187667465173627410650329597987107273421690131405653014121739904497530134550239222374695464752802124084316133873868441039897318292425002044210322988925733285128998611096844652093913518797679126861923492662035729945016577290674647598320242962858953037928655753580629076352807418754560946022809861950022058632435545873845820886711778449851484916263479166114457749505841023184659473523671664672709601545317764180944592108054442165376441134442003992560078918352323246742354320476460535372622889992629748706399843473065302675638144398501392532028680619446572072122259941161808494950167492134147223108154972246328930048050441169213450644716782896944862645928057700576434058204546329653458940839790733070890877621037142882827151179005187778331008217534506153562958736957288600919922916155258409642228272652551655440519464465482221236309912027874476608835563532069711295642805625841421960691069342788751895522166201241617080063489293669153323115402210625179215146457194327695208047822205525765342410727810044010537983449877776249221689855630106986451262503566686017914109670997864992754783998508571416251943465788155457639648872030787738173118403112727035771330952090841260390568140548663958196217697488397068152328567096992467332785587596062511070797958746522629291369652432826355907313514991155365091337860757695938071628208362936365243977005960851111476575828874689059573688523380560879534408865553502864394974526752543778444479225879449229220206724957014741392405789912303102154156540896240087713647000337524183557492700473978348797382062200526382505136969065750469988393410620997347474327857966145037160687476628576148946648530790469383013165233551564375190850538908522685027817301904107318009160400726605031774631195611459156162289886069608952123220231899708170849129337741611752581399361199467481473099444525094582114288005855839513716950171860922596264294621964599031753908699561996431133132958214049528568020197487489122437082909748243837310030667996518674955756061361937019708093079662872967663698328879205530650528925890791026804618847878991127699191148841968191265510533156039053757073687776612086346555585795570718922051446267597280841767986929268496920100645217957800684140743598458172008980161983746230757059756181835210913984121504152818777106687200474351287251047215760084079864524055402885861604633580633524051806713363011682653809965968513282838015235817575064890280254536159527006189979924755580709003658978708806825692111637450631477546391838622803878254184264506889469526359883360421126650168215554092311382657099640677510672516479628551164190953637736477779597902621152706028616701172300386728902412945923227136325858627016012439852158869006401032528462547129413284324119625694461398209055128309729908141015429262744946676637490390038823034502828742172940676982835974473761068987589749754924443632122940700508693663900388687459842952867633157952309838548100500057176412418506215687177812512605041232504466334620504608774857850176154601940316579225018763470755429688410182271721174534382610013559736614816558852628883973599354093954304153249185257015999745982317675633732790116224085704302212542916730355613985751112388612194368333827264432565750183839867927020330541285231466949769920598279620199476308182468632361897587129719660062702299274016371221359365400938769746687445929437762409819009359306298913691840096881317928323199906071821985072904838727685243898076688859493205760654020781675904369533613838551033023858923780201306273604601235164754298805886110874031299749865048803691186166116857115891521235319792267606343098349361294557863091695614714093804582556204168344743880019934260682831641920043780009698296833669729966858531064025315835066078060893384328792444599118603151844130742591241924321267152765701533240423237418694770634731762482901377029684214162396305884157688942063441080954870157967314471358013318270322675256388148344177290468379710231582168912432945228317662363167431441995320087013731161201599898621765953787920576871410847757950010376819479406566323400187650478825020323272734288956046903531117442092677221512454252342569863776771208385970698447129644399705029124081924739241747745255070192967171178064880319816391776205333224021108975065000171759383423785419363925890894718777206606954558436038022869842863216497461296236541275960581348399470559855884236099501562473993179457821203278004080151633278381499238966716520844854977460708618294171006849239593558090078404934096855992531656195464121379822769641286850396854320201230014004164667426065348153366744017238417102362972883907854862302169198873863165070987498740733167561685347520510080631510795107545776352486417504206318428172010028938735775959417204246122229561862336180839620059860500630614692619625040770503062026732241826205906703291222293507738005289318753871092993422863827370026819592258393546759683303412100682525010059011389685157980585518075279027037346117814408920941647897425086637053844001655401512094761128050460881746341215168941597484339978589935596576498162718268663988830258810241892303803579148258016234323124537182114891935832204556707237523528705750933333692858539279394088255438012589158927452299249442261067943536129685116318586042027720424142699465709110779724905177549209727196102536221393391001939003973573562305790078714490776396372829523870004224040803518027067663272810524001416634741147810172678783479023009658540054663504879047904427950698189020945635079098018367934436595198226828454861222266870906199493665868534653454794913150802708128910055629934862510983371228650714228852874986788595219281671022392386435734479957126876736835902235780690945190350913613403195418141617453510848396171388846858466577874914166345421476869631087429347760436417711631774343441420339422087216297547439139056440687641497444022441116788562578751066317369099601674578796159595537562852637972037086344357435320373844838992272779555725206776426125077002875851697204297562854176263038735190458892292386866797868203534267236814613469207485526506942770505205089080085140772453153617127953067036609816488747500509729466878435002082307456166930601895967655936198265213668251048321018584001416330836528885626109990701063062468423398196368464527224480904061268960578048222548723823159023941270976661887051601551039295081594898337953090171346465476389434408944596292491477137676519705923167038209965628083948369280023729196660345915466695521686089519004847648946530444288820759100034035315238242112470818231425110102126172539068815933803166549109028154528748762778286083036380699690209379265256328206141211110092033587125196691869044526325779551040188424894028609939698662673642854056204162705618845463862768106562029855989885978975191550709676810958983704810655019088643884300752243878726528958781208916830585416704969756027767600506366545932947956845458757596498965570995794652120074678543849329124528219078127805638431350107425976929664286718185048251779447051094798551164323662561995247597850691092275105273431234528502546297797131123103075231462452228849159011492958647788300467418681169481854833014151173005501251583391832181364560892302467851003070999962718523519570163997663420080777673050376675650230409760090828948573346279979165213528223704202146039843157108748899243684029623751919893648284100841039307199875417472872893321505760643890855816030260113946353338731986481498087315442116087908036605646030395578545220863542144435638614425559019046534099522281138571648184840576850986993276212558471013509262722349011264768892073060285101826902251387973791832283804576619055042544599559183834972350703906403601276913843266436586391947669071710716417468342123145664398024265156449403377517706182611978874022784685541938416503972742176070865468729748261309673927767089937718647787734055813349000932739333936953138243828604794026223791445656562777345603263770213627442989558986340279462677791656974013486562462587853107530339675228146310965333858361981476599234955625412845216415453975593862003996675727397235130503041449234921609932298312950431249082180193498567619754108301072959694052638727059386643335093795726798141494766425002587771543864678950635036803087303147201216107062056396198916817667547972683292965962861019609358431692027280448566594215861293334477473959265624421246282043892075212824016632312655297270787778594392505431762396364605306544688681641352693327188309075232955992056980504076473246543538232134107095654132723500733109820155057091990024656392618139911374547868700342819016106802541749089413779707625454670561727584918830109845365678363552367788381854582869922094565935409992408997624366731013939448715086541891240819341564025379803460187879505962278529103108680305389068859600732552896095332534548118255562086914562089201486269937814413715286782494467858593152315809622599762247619779034701258801060741724506075289478366445850561767734872920675914682943075220835664744865247136491410317287647808012907503850937087224608140978583059442990755017679071910614249561131115796711462506111868958671519454188281260355511583979336934333323626334037035665531032113551885492162300596850093917390068068214987408148046021551340861149519965543252373814362289933630368345458665657653747711900135406342115885371567384532505812348269945376440715026086329840464691529579986694109662900734215418214066072580296274180542857709085546314580569166578794777884130253081684729900329000738647716301594813257586476939913908666552328060889951602299785618606698120371377812406521636257392467023310300908580392893841391108536190579299077581083535691989210116845158523866812444060651195580274391768529307943554981988432132395222337953798036626404743476811993714690517623286373548316436790132219213269743222313440689444605541933293904605282663094201549416025068504386635697918849544550829912102316220272079289377328194208077420355231875626306124350510353309852857633121601411925855195852543042918325276292417982969289982106167864768182921335511928347714208801841860577672489834546094801166536788116124242459532959745479905277583663509276009065166047524826169022628670751761748430581678078326362834209046179091540191530145121452471004173849805252943792390848228006554390668443265666477258012885801852195784036215784584263405505151685375487687926391797813520421157389675241286621881266664916741210945580887864498861011215058686195845573095872378073049244331768102044832538544001026997131633322398017967014031705390614759463441950123710505349911699613798813348669489082612415157164239534195990567749170746728410165534410172345694417020768909048972324898822604926787509703255281309510860783924879846117891374366502565717816195115139628356218051473865850573468009566874729986971634047406374783053668246324044886228364835725565203224071963430295876156753747169625747756186829714113133615331393681237824000848159630231052109649263053962867630999247985545198604810884626376606015538631901251048839430623893459175832691283252575040620556341782219059055101592142951916885492052571369369021251949128333510817569394521950010226765533103781654498074954709843029676342695086947366977777645016407261050365855722180965986159772566772585912883079025172070406632694776689978288347250164133185079429934405757790490045454061022563598472327725710783097047910844076124673580553093939855108318775548216733832075241155668993565669302338509090680585268023352987900524005115935022170686028984000776827468354622265840495746847549007854086200018791051034217691319370637244144433532791506475946797985528853962881386236958868795208447588700090753953713709826535192515113965081382884197621509238755102085466695333275944249850018629547495849881981351787609728612936635186010938669109856354708665863641432843900693304352190483117440622706007637407652431566344135948012886306276338315081389172456646757439233648315507640780502884114016947645521297873205905960780418861787555769214222634322168362657420558303181071683861742729799633701409321469456269347095385775326895807780519191597093827287919318525845488047000586848734764522248465960160214091058869962523983815169153952201900761337593675113354304663293035920177533764249399047077748439342021820856400162016933557144200250694744278700565030141683938358308934213766137145281784676722674572172880042346258643524509279302363231246031316054888918675148061885706425192435002090736192620376844231960343303833749718458619782823652453132208899557616185928357868734140836632451399266090697033427272949854245690799930158112555039356870587689772251720806312764332031159252295491075479925561035715156201978895080724886204662167831011909671614223612917108768352466621118882839575144768792821687493578705112149174688837459234563095302096476103889143234816779000884377722584185191323153377402267075685591315897309415936794863798274083231570486824020405083672418141573224391544234689922651738804199768056586203736756423011885899787662629327090644268975577676249607040277538576899095160295481152252370837907135561916671003919801872946403995818111743250498560188140836856322676086779256750278209952031903023892018131335336382220088557399885540369869623934110137722119763027575506052344799527534506939048634699569933917497486856300306518401013121670413596129395353175344600217929798595435287897138976634427545117201315458841475473419656149562656737301105427254158567865162188979071333753411716385145908104219047302019105505718243209762868704404698265731316103461888653425318557295584618923069032571810165297427071137518166933720772753282076726194225319350751830957187422717570016039050116784570058766800109558869706838292381879959267114179716866670412497180310994586196743220465936207940105884017305354444065817549498527808735436414710755873278595580417242760057238138621978123765553264525693488817686091405918199157658531218351157682812850091153336758345558459772378876247650117403757859453475019299955720960820696517595608324474111920265268118909529970055872539385042471978466223571084840268338489676922699808197227179099766749608017726328240521159569457651368926135477388565412020357014188471333661848340911587502596539201835392729801127773070991395970291369092803934333120647477359598880931125225454036071201859506063096371053125656580197635930152908874701728338498698961703639472911276614885295974695180071813067066386157324226501588741935084147040672040367691322119236245572471909488521827609237266768626776564484772919599766795002796280325839069115829730588620733852151188619146545144878491507004588004441026494347395295970473635589227123039690346969415474231109200271336275950422087491472641664585959027782836451715509090701540377747603062938449521095202185073935091011944567479412045498715429157329032264924460598699930861623595142114903353807469998336222703548029651062929780891480073880944978400880646341383992888862181932207959479683956176667441196188734061733902550205890241882227975429106673201226031165142436072020272222683569694620303551308489771625789576503046621343425250677375287588620926157784677491539014870218962130520886807906191781833461370292697193034179240343232407218654788944530914111224305267095317390635763052080632616015269376474721740297089317961528154056267770186104564735476460714012855163369637568059781079917707452383068179155277419034769984609935358697823939530046805921863043581779744389040527608337802011377001035527016030018182857513518700561411445756037506249366795077880859048789911365740652291791527255183360570061228602951144977296262711269302261796696847901677623899864903492277083397812292331470632282520270354371646788726040220717180804663336707009204001227913380839918478235540757190227308765539653238631369392059382230864511860598187814668704726218865744262251823635265118283960511466411728700958413000004919280570707202126504930856074673333845211086371759606525869860408791566055937989109948138512776755467014328392956064765377428007062408321168559763743635598580570679894626746809432075770815000442978196534504739921718809402228903070777031884044040957248746830922147479936350732635010495869172923020668276085903383540019636593757335431931050739250502873947082476955555432209759448338703670411460715717362508904387625758876277673788352974060979225830872385176435000332944830278768627686663842278511105075471268833510924714195702130300120097856289685488910282609177700156491405614013739637100006261544533387929690878137716995740923830157968517750164917258243208651196928726879035643786268165904465382602183547260642831213212519376869128948156006309164212459484063847609826366608615237820603755409466174392776049517104370388677743870995195108558115995036677529778798856001450698337094962866329377477351079551706960766641727355570176914854518668965127463701537233313433464939220708624250464504837487031551491718547397346730558991524547140427620924463250994572201778865809711298174034247424852877978230327892169780671395507903113070468568108878896495671640842943674920873519529356306326884704462691738715288327902659385731083219388131588482723918824970277775164646445979341604302630677864472539899724515606932976628671024706315529572835921628547045204722180013162111285862193465539267103182063227493692121200731384706707332677223391631556282412500626429089222698410423241492777036493817697393646907456677042955797929540235945934977195563105376230837402336089729034644712468996369582921458196285261305234012988547020659529764086482581605032268166438603179604754168264293668506368181168621508319738871999289757034732706174924320313783020482193943319327112912902045374572380121298583647447146314816137331139375207402728576718695551521388541212519863855465710522536244896778207843073708864101275224937242255549364659974469477094533606270457649585965464338730887652985496360623298613590878938156088210468714090073802554020806806012718883270807845604629724592614825449999606541470332118618570959297996379960243709710945335744941658600201955091907454993349318616336201648809659953379235822307020702231609697295202590474129942470722994050710376003018051578976703209852890158684283236175420217283457842457211616466578361450010761802244136529980749163201104999455856471607961357916902772797701902711791062639108270538702498001654771120078839223435605085700753967772513204827343685407684515055362198975204066805527726914969415933009775091836502919615923744952063033447750697290680227862476287394749451413745935990517742533399980676051990813451825940718629272999485387420235848418430382179337613706047428772824347181700669364102676933223008980927337582698217991457256508119423649094429098131290538511790167888986327751039863542979934183363057750414255092789830908080513495987769007368222851078623164021221964215175903634162846147719646422195741226313471323100439575996474086893685359053517594995033939641116379075895641206379966460583464200090950573891843606462156324643878669827201960288567129572278479361325827510013273564188226161917473317411021384912094767868826347128612718323526285032733880998820404717721190594130469837329613134767675386165433853801423367887569752803914757071524210799974242207480122603156746254655462437330009964605462167034445754532648147701676777109942706889968765464835516511863117779384407391226769447399542033412826943555680855167573025187154042847038673181539913425413582128042823283212884173824360303552629660235162789490498502567469351722834373965270790751865681272016968215307820544007071664209591391828954946721882008841482927132448259500119912640296256977812696224837287002351366506841097628991608454041671438361264129096789149026776994816508359414808907172676130263229659568217761278951117706769097232906961076442204422811148576383272980430450386344339768427056627095954097454520840265954739726541776456734646534113831043779999693831072896865941655816098268455802022981140563745364599693582586561095641608513235566335444645203897668858233891248989370028654517601616684749756383410152791831314089623927145475537290564960578574701452505225570864203092939352413184723004189060950107887954280428888161081665556035256222675612014579638162674104746996115068780958227483297309875730198412067416580388998902846039091786493223073813334694680869056455983665187706075794158660637020288418167059511125075441062062073158783435794403044275971078556821963279660437623763471217420995001699591222347841711837567128401612844614702019967500704011258072824712683935827770157221657569658491602474171759740156656013539803464938189092150599683737675533848305478420173981135567985233740896714019825177816711315843136399897056320034525173299992688195884943184187437010898367741843523633919761955929341061879483063129247497309359035498695335109230312806497263724838552343221874847722239674812751835893729330498524518994281102484509310295134562322168399190478072630307842972789641770089706672658307226025675769524174146991072184748350535720344952393614908390928616839842807467868394996758614484302335252267290445453322146892626176209595929056910976348583966234311525702197342575146876898329704985360630116628880559520264747788643229915028647152232836269333222764561602540847334951273719543373988581829565264864737443026249007266834598868433534242334591888768237667100469195526287727109468356362951290863981540580554772710201764613273025907688530308955055382421563183043788637448599116011800598451297011664784791322308865285479292645488681548485371015558860037428440943320580106386507194863525152005782265442197233985759921481317382471383044373424529508470643267784753040569801225418361737303495538013433996717018159256633219400965680727919764446477651497543015223721458895839227368547994600049953076706269574564313789455776679050345629756796648956403901449609262678994042946931214801779661221218348757300166797074321851173146715242781094270238629011732460475392650729727098267487225050197276024855550757558378387128508583937511680942000516246766487629544192334336218635746362296229703084030567303408846329815595285109766337437237228927681897860932507555102888959992728020102192348418219145588393947469789706465791664890832032557530930611934017618842729313558504112176894140711391844526366840031883588854818199073607618007853264619024596199992386186152471670912962309361847735395929619418522360584857873866395857042261640160413098546165032379410677031056997273650913572384933100316871819717674232222581684884524080964252143501871065758657994264746455330473574945514855417694572902248945077952208442998861158482205613486916183619414903820677621891131582875267169654115447469300982586296569540893506342856539486100407257589208863456032878938346792967906519107611729712458731647475736932587469676436575967007582020657307888169252842830287630958094178139375579858828787345491069326061418276990664784910036095092082265595433931729247857563778479965674801040413788835099445819911855396549407868907612162057618926869211422121041402186774118990840429605546342848398410819226537382268522875777423023149854266254211831217997584272013110370987727346246193217330350238016447981624512017336583586062402182295598091300706452958163315830165499594875628587397190990409304949888764868602787724828509054866769682997575615623337049608998630794644832821988005122603439827470702892042940174419403954134416725667660691538243221710173956896135025509359876598845280892671254857035605752077668421296619414226717821644040179830098000248223468711189792479656658968616754684759361061965850373344414429048801662520642185849078726695478399044752623598409996371153567429205371152811730498190923844592527573444362448496174137129958119456582245182689908530865973295187378303499361247173466953793469508867192545422989319170840656532182852994054573682982127265709655364269621354126223441438542359181514462550613508156754956865676522831420419926588090516425079996136458018022042264796418496301180927540000219689104657519931476663762570908671459139561995308635905457757863392327783316682655218948786449096074372188953980892132097773452861359676102126139643665342383059715290922107376869273967018015224203928014686601391422979434880114959946041525955702036315678124072126260235659996760257000614887117227133069357462948401583853324385777856680640711649321451165021005259950715587536303021498633216312935686230544898093011709132700031305148169558619687811182667620814455388011804872606868294900428530094086848367727594912873249844087174153942992156794243898158108778943324954077810411468023469894803564368438126113525366105097973535737687139433610560657290801702908014742344423718552783125366695614319260061945058877233848021646109466215574516138303984649327088897930281412615773411583510570374158252827308459234169052010126804119007536076018368593068320673491628305969672721918700988696395470955903182339185773526179632080832125871009280334230441816800805760391042046320836027194824838230543442057348968932380050258096219398433390839511396977071748851009889783579847757220630006409162906370509220161258254925435289645936888039972114889866001698211311288714844474595934702188688718573225729240169702185188838808425322265433662151278846643628681236513296790504395432930103063375912406081927113997239461317375890286897253665777405252016086194994572037854673282539534388036749630427666910193683337849183711497613740557205448744672300899187003971028475087620071505769203793165834115768532030300485515245991138191825995487233764699832082166582524057914185343097609630786519630606522022746430809075683697473991039413370071958528190247695028730876545064269971127166760354601551979898213035097524713992231353862553255389222141367523850538942148876304391364262914588078439064988464253703885034652508329753509921461106707534333892412008837760362374599875705100134719315799062472120945726181089732495547725399252794258473847362508826331972961317055445712686294817382202420651300840187649132910307380337299989529944561241828351354471406743524672004660640159828427396160438368086294458227677530208075595678256483926322443035174924514305302826511575372382585477599917855807606541707967505229221524047795667031801168152784050991234558596972299985958000807211736616798042517990546638879751011238723306223790419921852581940039602377296632144783697720148291264046211061385003074604256243224526253726655856266226141941675567719512078175431828390702611137455023253800141650253024661837625894195132702526574392581468602705217122502254649144887145547775006247776752747227175581829105924026911785740597312879105839535627227412838399972234905649576894973630455795883928031884122849414042314497799009313351892908884446698607383434031444325433232384147252016669621521733002844691063350852386299430200567127630450073921113608646162884486788788514280986227030808812376790793541590789784238832746787217688471931015378547476051885444774375136082397218885658403607098398148292583642743148267650928401704422477074424231272701421415517137375835787013507580549958197265093375463041090308964316911499537136692522266370015362345939182099716994554711720278250167327892542863142025229216750090885661995767691169470171214520961681995293877206108382064768899329532250148466512285063392332248619756326668564286698212213148189319419450197606544794710225554669151991579549229300503510152969931274498627663581984180816882968238363796577563903952847581499336949951772564349030566724809978089818961560901439001891703156601650524529157505222597294536872747122568758282133414090545636874025712696917819158225309525262537253131110400883432444667667571626530568767884831883702115599830264481199351520464004489004045074898353223795939333480451235804791805526605458129423372579264043869240464856132395422643067244895201067448033523188595070782718507926777661513597563415226598149687327005474719836989537215054183582386368697187627496324576806436358967369919920041699912945875094023363060098772936109957557041629142201433826549068221872170829170918214682474007121190313400253233926137784994562304164576333547779928409569572197363638159639373604388498252734432044386063392591995733787895883946339530594316550991690412660066816597921494289642119993243935404555927364142945867683503523452647977208864217136315874184278675897627748585601063942975796932994421104799220380818805913631596801146220410739099706934478217620017445764823970694807555970904142268768640137928198826164819312261491016239290191809867821181990509438180459171748316676287043206528218539206016237906528601113255200806194769062608369843180394000416933290965808034462806439077825154484597777353907400020066204445136088156484411078271831910482112551011894963150976107258948323155185139343417551122470666614931165064467658189004222237033548634046167005344879027792797759180309585364052721018259676432379125058445014794285826327618687079411417257928466244629055760969211484635655347628257819169638690308040953418251260264052044303697625376374273390402092063481967125566047141385414491065428213696894073852688619899808305054265496168944767586478084260264066501445229786051131577102226487053964370246570227651027064640112542671362526888356692250191548301121584747296046032110594816349483103774963355760477397089182568257504657989956387863211015271535359338720467764669284555275103687345986344281507736369500839802425616023821318944973396021278359290944266507324285236535957716063044515946602730211382441514562632369723308477186024498396088189531242777193569426893837902354603643812924666634329624885672456238402070775488982384879186322170116364345560042882261425766340902958174091311406940427115291265412061596710656214357333917980252377980589123894669720248739364395998879871486099747820509903732199654457044301006379951806111705881335901698865068971931849732455312320739443684175959463932574865656506566108939958311066919669282877736783818277108733440868035966723502792737372155915290957667266626029781872555952593247127554611299718553675401988314139814797092548070757979305686840159804006390004549856236717164145902524308516865041083211748685426539672588676862666873630461583326284828349710708235583275629050091014299631901824135597328405414660845976820730230651374496109550062696117223546352581251217898943440443466529185970710467664245462697964863054310909570647453885774463739548354570335436599053244354035880405662119550500709806876125842366040413080324378094576406948166741931728585005194639930292522669548607578052712697650472119351557969651474044091483782472299803659632683169921076741917956100939709385914482267818289512773768206162251567377976400416937499628205456781082946906566474735559790902171981804996445112209500458054875815630127373868728324292222956454087136615234946230550807462672743295547655609736086509114242636783940507595304828667678586410467712983768903530197634672516913688309685173140493303449554141246403975445934646207399868847024925758922937241846751005005964773836962242623790424375905082400021196852674952267718726854273876724499790967789631865093248191254456030718476912293741121777482000685455854984206506817086076655417681480664378121543418182069858974117688407687106207963873955532222729859240362453865791046206930196820605467495946082412484530196221172771344405867163727154701716994285738635978019051883718097977533864491096337717801580805872466177866660788940189922661224728639727090213506199982878906648351197736543911550877352055386608118828799857200454038913335844696009188040715660671124813671830545569853104400462163318336494263406887456411680276647089797600119458777714214222249092577076600151027097051641525461371198774493463829156690122623281196521714635246286105281074400532603413176409423663249186743286814835355839485360413189365736912181473718808916189606484944477272009987892821265277600416445313427097442039869471891790793639389522176550894769756475188465717833933925161359124298173630599161478906702408656300620960850695910730185612597814651281998569504441319839561263824374309325718561561034861656014266544107595581475876708345205595553959299072000430668466599340168668241504109845209899964117511308326592361817088946026981864795847769368057586821078330420893583143816229386841078914738093061488416311970346744395521128901000486092774284969296085858911929099666601522320377794654780882926526465588724593061119177742148903213106954020802611437319703154215641273788213099932438610865232209309878638885319744188143347584908138185796181246937536478004771572669752550344385846012469929909346919833220382804987070938662856659040132342052785167416547536783447632053507972130540440321730629941358665382337225543248880558010069187318295523983263787910376963500204062843057463216110732217308494875798747562345947868596172164263079583756804075367241641928095502870982716950422994572160502365013740182056689253058682862819668561449535754681047706064103598997508972334445685121703737750481668821449785172191120963008720968846411981320315448990411162743303551061812027440727544180913895786776851924159843018309262210384355137433412458739482578290122948631133019137788159403212040559919329443058851986767711814692552425621939492255328602046271022923001097817576944921662304964795875146061277174790961401989939345649685142398305937108298653668862221736085473968515952259775527201665949342538446795385861687923397803221805105557788116095433368358584476733903528344460336187574271968999173126789868102878282699409727608104732859608039456751836349907841778307216385937227864198356472636594555575268974277940601798140334650701532979028198162660353808349382564096248532223986208975620748999478663392259716563949651293090356374539932266328470543672003802693699555180140988675302853030489808386135018466511155021136251074335736792455294403314904112572677475187627735702147773605543079439528604648859788718924563962893364359295267739780405772446528806642841059460500896809905097221681284023562934478265092194003205766441223251605615346460973114070689084262066672197140737957208313392393128967507217021440581008653971674012820430548439779607691551765069441689023861453836473684130161166377212475475999091773057637970989034205084523082524553070437597478130710130812983909740237807277457724682195527664767019663132287954265696173093433231533902876039176779730663479551791442123760557457219816102145774958690337670615975164566388019334070619316416892450902949793822782824595714847973883147217397028079249503294610041845726365449208437512470426949566350231317648653143701968197729691345071342214872777816067531772657057875949182711441833414083694050665247037782774573042304170996836921897442295948210142947135539238268188388818545230796092781141521014239868610969925013485060562319617518965184182386961276312152476109129411980325205346724850533532758507533595966570969621668183241597053438761735844794093377677976473619901904035341074508964479927832834549317910273998425849972817352935656625367916784482313447009825339341887618123421186042123149247800151142676970805286688709388174768140897696847873714201279897384014176029940144008592466999848466777331404986146242296665072422451069148547861502945343964215117599842740008479915513838058968900548532096076045215606909666560300754924034823406622942889139956766967939610664435909398203532026489172043820953672215107253894992600396097647496018372922793670100013530928677201930900483644594940894299731081329311121575192587493534094375065023823552821898646536019594335437523779740750271694937160022473848253787072635644260629970850896279383882918143951973401650395491269175706304990097490121652285952944521606956240892579796190897773984493999377691719413724499945745010550332271805972604644073883639401367956863703153451008826543189077325615744058938914100071919862354753835501676219684300246660072169350686330508484053518525695210230805160536729620122465554638836279561435605904562528040094161375089252471285123703175689656733044334126855904591820532850244935299218610133085436898899243358100182740591879599921811297385760579833417073119355625220786293303059491716655129889684309566198960201382488996483150202629897296134954941168181819857271734930891832563192145903085112101706375934553704924002700504004535251677193315489098856462481969246033061989305262952920761678112762254952413060704811115183858024740038345636432507234068140757078066817600213160958844985962598834192368090149883207527029167705681152924764633535418107643766818828630126623678742373381198784633054777364449983745583669905665708354282122699088484956323713675356657972901963886595583487491556105738385197857616091464102590934418962240053668887681524322032851414132960600103637261916785785317377633685302473804310283939031984395005771961467508132443616110307855116626617177164194182813887921369174930663970108261948425343229944997979741837951544072254041528674247534413900415799168645299489449933444528302502553439137290351310158799614298184672924568550067253743342113885646291533756715297972798188042159136546544506707759861052646928956890849748935248113402767509167307592979024948545431278961472704039547612904467726564587309577692270503734069948670440687324991707713525791323289298305660772038831633851533405801378467695738390048450271107490187556322435301493042679513359031058681696851881202577623996608491237022750828253364316521220128913130651346914201898370291097461543052733288571414865476649592768569080533100737780221132891057957916600828943599242940046938395593062077492476949468633963793902608560431412375529358797721285036274096896637040529306146779183464481710961065998123757764793390503262742041981655342763565799826154466569397916521784420863657581318341809727811252911725667517104150364018263048536384654363178426020942756509099801318542564086240611653403029368319957429208528389526285529627249572549998818007574812571647517205439853717152942346073673423518082371676882404275498084750528099493213284596375518555127744029949991572054711656035889467510912528490766689908646785961521158542423725136286837733864433092758942161443471491328054855452360233266892497415013477067905989914919792809828808671836578835264453701741682586846157998256042091346631097548893367955475511650534925189631659583647678781061483810866602059965986535549383694507705619815836004220114938111360040903934041441751360397259415242066231895467641144091985060161202872315882141930299791946272912137569096126871920942057301322888087913173625111159933956415880106341757696199703250423752241253904745595781835654221045557120530968648746842455225943693117946463596719220792130896213572732802694062775167207805245674031386521125294895408793059991217787008188591992905562770835306695473877671782464517380238476717473010273174011722913835107049146147711793186858226202411593326257573917876545841190372920552020142420773529699663319999093413133164633511544840835931188707327659623191293484795995724424058701356514990891888359377319059855335374978939961804633916989982397484168598462749713697154462976679972321887517337211151183413264548126673209842751046926230526049708199946795542277211845351709393630254728578532477668473818116482765730399528771297744470123061036539667503028997387525785284112263879570851155535826383713530967724804975824765820845898211765215817895031825173046179243907328103303697363116752710274748238830107228783188566488416752817645406119400078975927553407887857085121593700216107782581390790021568895878792311599564631147580685674323267577733065093219381936091627361762920479308391479465726754333602746472249571191652565772072733451390910004876338770771342767124563150639840114397297256509659948827357580777225491226230113477147578454539214092320268488090140956328372516162133022556142257068025177117414968347107484572917700783321647405712147209663139265175616389128524523118581433164994384691206760344652088940222196037331708058572289122070516338418363564447961788824586719727412895796546195566964652346133750458513163699437645539602078878013131741998332398221206875987581722627854827326261660638553403096504146457115208604435044125483272807799723048728914013309101227330351616191099047286335588367546072459023951424776559514353608252442339322005496368861162140611074596959276651391532147296783807764678079708669678373967005467592206802864156673831711330718373983864213827369954448398863293285034244464194954799381518168521883614850026152882677493365890025252050367522324017320185932275359216277695926650666947347049028689542738554018120485066698080909484068815485372804560966747914908699353147762164315821123224712566602740844105076482229556596936411617918630361010230216345093908160550403165364463334236646740686886132999152333048642014861630068879641065981234799049966859851983041434200167490041464508732180652415688426362116197932743218380043750752162349180302186139783025409516961274352555381719507162959813356898631041010795517579894678381285467528728478375387667979353726394670593061524217780750739324046124356389191835423882117625116498953943232578404480508098153897280960730832654729401238037288614104936916574246835197899920020137704953455457647226225599652514469666319122578694227992814997207551301404334206422859285866615691268614728943696159372050308152535902300297872026545545695551137574956937422476041924146946229589309947519442266446064427764904013420067861704420736390286747308419805136308038384654763708326673919257330183322660026422031501446443220164725887519437866161224304155608042058942077255210021294429463264524631983319493773410411302901489820827064633887582499309727760932769678044583313516838173202722939582848970194354251850819529807451047784268281006363588582447980866447509263525428960580161859147516027126866537413477542102359573488720526306474448647131486058168461090480764985645343544424704144826394995513580404697206262961674897974308483244110086434621423527003539092123130222593677527351006390887468023614025886752167801186838480911188632478131903268598387762872252086496006654533321102710079831791516745231490024773489165375727411296901880248989163927039244563640050367602731488496797880085270090363650340310383765018230987194332149689687307233574020105642556301042305299283416996243892284569322753289973190543850212828166396361089195502930024297886049158838583085355977815117986670910356045359608922022088981304188693445762562926688776172682673698442819624492935667431691281205217054334634252501267651664275604814373957598242593728456120488774567345672987236054072680879944172048447726351422094134829568858061272661009036634003925008420880038810402942886449106334770743132495891117325016796028070512482865239634771679071219549720679981189472840920183642133223297507315811286197408646772350951537770228566430146065506194104289090410715190076920308267692455605366959219878266724195372783086781175236868786886842288702165696103022581402646090608473286343546896703709868106117705943902902875117612436245512539014552993466510803918926291685684022593178139960278698742414268565503017821682235517811235239391268995808555379797344668994973312860286349196748822240337424560741522629919921950690200495807251032528725376039104695961567747413115061269797328237008860355879048703342593728437131872425355803675197434662873414366012468640969163454062068448957688539391606020344737994496804312602796205282280037284026415303424546318198997422255137390762683875779045431091304059539531228228994758110209049497918830522432749081006347639226801821642924334720516484800431763028385731218710320797253613226707616987264607388556323074933255333746403178906990396612659667470008517773461276935786449916874161978695972452271003767479763225383524788428603571729161640952478006095079061875675953338214885458016451909471155553159075937237766747361048827231040937874054850870479735230821527365982703790995675567837576648333212105620913194156498397752955863844387993171140560650189194159857241268886398201536916669408684614032229272292056690416147137504012071907600186836587367856269697891565549558329156536824971048330966518972220082097004812443283269348111970599845772360780781463265095678086255098016555243585020349282913347557931009888613773511270080965986770398141341267215640883190091461157094945977524257810378672214523095353731775885987256198748043793296272317372701279730170442297677189689160707813197816575900313229719650823428342182177041088795769311174126191713862627179940096000632151454567779599870427206334357882099592686101904824322911397987808923634789026327920316423460166781393217713658987291501397163034463809682935716652610466620384511896510532759157747271559691062937396631644170976249703204774529222715315492033981196440139799928996484681819829021399234033329447000526052091798073638890906551897988217345670067833162685363558845512183464053931839382244439482587203544098225613588199638560456215078354742618422122963229389980845318213017042045367927135154619354873846617536899625249627876476744765049352317395629478925439160265459319277110737174559311515182678131049659083624623353803868733077904597148400757195386432086565003688235102987823145697321500062009063693182213872273118359054952013308383823020269866823942948107453559705965113639156272859773932035743393690592294004626137833211997246459656431035913239028326473640971795174681801279662808340551814877121692504104950238946424765160182522873125600050564268463061158563732333358450595627299110687600875271777412446526953295379021503778678349681429091807207833404170726265400330048263755186115630149286388301182108042614746204909108465423399040442326016721485011894762959921382344180760623375079102146696074075074760584729500619504111642611172361764754585650565426074528437141761487260481920450909729022933772513942735394054650602983549221164361677556848217154332788801573873023485920501247947817704437567868172084649308479541360623564367430217517481708653934734511330623571620074302123869716910748027559282305614605556152624072646258553267038378248788598247561111981100760767743007719114000906722566016153666753809225436699957849411901485268635794443521982803457661624065083813112426165074924051858980050971097361213813155440557249612605930776270131247902937030320162214041972431133233977769154728621825980075846538773742322422288273695887480076294804469769257529367414684527532773717413883480923417396447996533259363310938939540499630728031226587137584564567406512192902490965866669254841581245700348369364949036538405859276265303112959620906112503343708749704327344145041506259594469834633231613797433032993912622637988467078643673302529693914788212792026286056821538073780549934123166882806913177108446849316318420479259097666186518138142980923023933157111104827106846542998782765912919691085658018415201060026721962900969789520964865280673883173976087912371427283586896042154717444298770530535781639624486298797435222557182254584102092187772312838752103210959525886407392215538363065978873680867751679419791335274522367803076804795182567614123588043065801098336714660413175989760179516837706000356438490920667947444636713222142220491338061700317727878393701180986839565427847578197368570110833860000566223154576940767320028669684994711065682899904824351473163278157582547143983517962376027314235557096075839126136705719265026798475105248896489336438302232187156389077762471463397765301972733677812534686229157613121353162700464908000077403846320673644485946261748175306469095319249876871859626272286266538380375431006601553049650399343677933487923095390970769062519165398185384681423669566117537198967325363150108662180032910138976142518628725230477450004777623295443058801558240709511996710154605043030444552406096810659971045070229141027858583254248217450322154643151086188634716082719981728655742889576271941490152637431340493321342696894114417226352307560934442297156876168242552102306577823982723351651753638031695254089323209479271601791249009112337314896551386503048148830768663884437149634142306358949796952376201431586885463081815143204033741653007393699423690581283238825102283431910326591580378174191647599703358356467169825536866152189924174300660599065482844770470953307135183553808235100309753749731232465578985616293536025531573607348078930781241733343341929786215440291905330149337986611473026105148435186700919353562822790754779419793735539993843517596615836264977341219327125118306322827906809934870727520150084935618751479175834201408671348088662547074482209066791092844495737065355520075996448584167344139315211215236293173407828680627234920504921532757458539078460004465088904085643858105339747436030992032005836829660210722072532540105393389758791249573079748606153014305015266405931410564442631376146293550493308877878929456454305607341553095892376733201294019104413473869312981517931026303356315237735658917983303051171496178650533153615206706297536827483946711539554712271877693040077832922514949848708280490558996823436813697584198874014575730766607116010772177455978956041545583459427391443357063609200094839569279004891111404090118194148965096923723838721264294596536903289123802637897845775487673953242487633399139526872086070827826509325169768330496613168950695479085504685449908038139584491032062106426692111120123522044411609482551000795837836525725247633246734865679121997166329607619863523576395956216484456873626467936834989748613520321392985847429216058577213811009783533061051215044591575729968412564906664831431985221274375120489403558024368337502457828525501510483282807794344836911827824219813885282588635195915384551426809813168861927140709110291337102995991229551525954873049229386572559703732888360069198037353462074823712152442717133795380579545303617586644802951659983711385918648402549389231313233151025605489636490119149437180749121734373209372644512852142864904183626384119137518631032774250069677151451958860680540481635908148244864575220500108278080719701370156650579090888353308042788286730945427719680311696354862552855995143602157238911141525795474164365794201269184440403551424074671747540288779074291584847271257101585159777145166103431452188721059950149404451913850328841412462177772078574796693932667064336573338076269741824949869877358805722665275341513441911748528259733937076303636994826608852569967536472905319621749958060280812759893361394290240026481962853848457496105971161218365017564237130781830597188502216190633610812930471144917259180776399044345106908419272803783255585151718899040652220358787025508905242743696918346240869264215569682984655725261286463941404153933965593891110947295288101839462684641445485518630526890224684205317756296098878447403502319609668983885610819794454286376735726279570552594798557776740609504307315420245518321042620944555178693488412408146015114797678292831250095662151848037274184099652308588260436588064567113042493594390277796279731300958014302009467369050278323645147428557166440409408815595627080104286314916534715472011228509390055404777774082277387421174236683223339475023346055524690980159069862818726566199895540134931181353336619340579147217556652956370527422391300605408425903488970755310152747099761354915774806450480432213829899464458170576234640557240722953696078615750784492301931657829163218432489614479578760501111138644555416907757019160013249303676531344330064916261909787414515506915289402166750965541677764500474664497396767603722907185853489033678080254961030042702709502335387607308089846568618692038122191579599807653055236233035872792021544822447598861990534733998856753333792028653985034234219917661499953527557908907627820735736692094617606921894077958108268870114209507529350528207367834736542159044232186898082368793302548761233322511196815769926613294042498516764560010830080256950832769563571394251453440725130532560952865714081527437560455869841962772520638487510986877678150633083078628338712205689444660525016900439104650719577727524857138840597258857314803829285108508228929200348989677568994040764814989988082171294402270358818303823166094502213307594418460563736131446235936422521089037664500888135339793144869454523276912514001463424279627634285203465739091767814846828221271443503101667288417407536039025143476541414371115568729771651075656684021681467495002046809917813163121744669607417654492674007995790470056914708411650589074286234508713230007338907751130973925191443956323436627386908833816648138194287590906885850675788637794402423134953983098494338291784028991492362841625972657935917256654464527104575357627000547166450811662230367315679259057240750229741120531134154836523420127238925958531944136338409415679338460235844244430888284730363659375205204752205038099564192274584426888066082866048413950400893012414348463533189961957280963953569838002919635047535421638631347420184075935418640984467182580655371311206539430865934531507163820230033642825872040289566768567269306308332355996278383772794774638888420215934111698662180847015381616465101943792531058201157856342772606129870244344559362789953910725601580504590744302415670026358646237732041276850340337103334951912093989149421099649350055834669987740594179838828900931111153319758418639586227299760980976956958212687943114837552563575196746624694203634120178318112034860966376313721158570961947576412444751922575089680159841982520063634449272190983935283464027072864934483683390023837644207640406646499821938169157898501676414028443955451714811455096294831260755339132907046839798626420005950930583613539169000760106591520456851367797700014872009370391555064228817229440985934557677197220050379360893537260684775417471940107835316745268458682219021459015994591077816440447004313738014719812641759314997997409336500376919807296168094791117340001819023534235984283057822625950988311542494086263873096706691319477433342358615435934967104020223967353080069110823619004825348413664277586136956020626681990323031122853181327672923789007818158502005580686845976943204242435341975946671418459877318864040855567693383724745377063004730999431928449027480304809403823117140981034485250589017074579736164836212965633622622097114758255668823929853047408439017041693119826263178052348811398528855278595410255246474420262423063187557971942642598939950471853119698615289989141594799889645984483281448697079305271368504108062413403106980883520210692161164087976850609637709708068698440218536636284523718769580969325661778909569642939637336334306994284280821532188567761121612335154113271454086743236604091166250478092208487657964641891638821061956673734258763983920072980200848646229502629007830350671382021281723669663854414172886916350039170802863239353497861157715692501010559527984274049879053579320925046899013142826660995366891748222815807876880965660488093426238380593171622490351824081601334224312008439346894358508500150161952556039906800842111117500650612865234005367143002252024793614009406340371847401414705584797745668667856145366958605755039488581455792150157758005842688108390557903477491660541345736596005724283705768674891534534493423356331392647985330036376092242525448531727624775500037611564642526551023659549140276623443194060641967065636134174287115623776630983854837446647545460094786715543110574114055748677528600630895977217732356112199604434354505396307758729747166680155387058264798787194057422154877775250783871237953701358770202019296257241605960891098685365864772634023726345180217968506798243505571760421997814865391910145486955960990201314569636986695889667622827243374530263199012842119133391561243223131593826247705491563204715052644981514599429331694238259019508470696951731819237215459114561262981267201270271113563015213132012790362663874431556224063205310289527573307025422856474743936459114398373913278680658107619794390670223773093017850680417829403591387323090484528168558603362213030717599849550213217355687385499784908882461601624954798522725506421486287421008924091596418101645625824791745382166328096545581840406520565995654927402534348804216951720686638157109211389532268986368493110522936174579377101322007016063623420031809344915610493519889561987276475441707121296302965031967071014602394777380338527900180515462630992570371427485130259906135507136070087616892668964717397673972157297001890508206046379580294443278339092537063631324087923733752603084524508555208496981689038879253827470837454724660235636697681501620368605022736391473916356772048713934393906243572964777190075687832930244467253106710187891529666186870977208331830273526926099553525874594399333493401200001113766993805201139057364432225663449667430143255073706599054387469221232948352342535026223741002309977697044779447742758056827228308406993634532869413174981113913915485082977839105954224571434394933731477184331251990873037084772982300626742014221214925532541060499763437792667321493955263822202797931235034874830713493122538322649398840646428241896706204520683929619022652848835921387744641469693491646418975924133092633640234945595586310580392405938464081366454028061204405011240498953445920736044862024991205979644923762797298513969863958578465701860491100485382913795241937356247434959740333838182747958282768063161723336439127804422812287781287406904851296185575467399985004279655254091494306896794795689192797979032841519232898749076674712815451203312583699834189010145542139522751860370618605213665299722725448406602360932441320136120413433018505344109815267037267056620338794962106984950918553939245746724805143186050970863252328147734071833030385706074579556476994796957017441664495415637671480713905376704943842212508822709206645126568102580231473473980720328283004938411683762526025915190416754059731388252787083284884401479249397844953931455828140548210909869551379682804013363254356413745184301123141353545008922518093353353659190977895466986913642628075688615618572722600294283484871266098385465642408792062112403116874202226537361296748948726077603087105229566890039339007426122072139536700419251020629506389911817932477103208537292108587028049487564905381031987764017002021237412501728073682200643604156620893161821889206801011505443528680252372935534607311184023353337299396760165030628226067489616947571572122550883387169013531530202949420256889125127997415158980869146538017802024603104170698353008234047057919716100801142258638200471536330015286459132664750053027729963128830965287724003099140945275860120395784822737170011362199818056957359207457745868160440361656715949821043955197089342073159931035420603172379002357325723940165090113731922034503312276054942908269471573166674660731171831689097728652003487400687539649805224304318958648208776490886924164334166157675485841869794678739289566799733541694048101093759877779700901999625865471945327384757380338586568686865432793159885869139189389482571458881559331768611076191810618963893180685101780195950212646678592787165355750350236667259347932935276741646448539857833327597511606872404449426143457914804163202039328294353831725938692338458379726561636773533313067203137929946670893622944450699716327159618213971216069674254963827487794147674623433054096236453418305509663075212644765670754393163774127657446750184629497031092023174405673823177326912529388843847592349330555022477464383181449538352990491895560327938920262896073941890990837715363566237437605584681018697542760390811178321003171781641412890593804622304706245495560922465227590771316537588623241937315157100593501252787257816533994384115063478116198208099131720913129973597885116372982822804042273459090131438060323073569660917245456836536419530518652333886739929141666898356217554271267738407229105690566428713902538316998665498903877584557061491085853398051696629194051534648799254105689340048207894959215161601495792875438150203032292898699273844008965010082496485667166438254935349910930123086545659379200725349549674424088804139444443720560383180586803330558082351253670501560902263894636646596225476962095248764917925956501884183558503201416901039296809021795449071203162291527246881082764029857745778796418138700806621459639254566415999346178515509162848448767640406196548977225386326323784438262284029016647633084982254580810036021767744325790670853245309887788615185850374736544756189863336394868435318690905314994481290027905863366655052211082713365265112047252753010683010944372698102591037033802946355389358545255118250875107685783745476123727083373228190297210411197163409586119210020572964451806920323488645373870332547448831958859029071368881878324481495581742128306549138268165539026725522282693020134308297879453602699051420725258233608821277079586408589069755417081944603739139898449002652175686751430726722747991328405459702551730250046795856888125404085490861844688445684117056049496758202971680149493371179844338905306661366184589949098534858447945628813540849003913455825146646746511399467626112713969841560723393609424325356848295535699399974840179962555614262851998090408120964036043619690278272244178277165549197325946920090950896979944935575484276536833251320840488702700351859032071503109493365350543772233580368024368500471443471372785044519221086390648734659333693039596681697869820707418580322515460990564454424275750142556597402405088316136057613244710152710676551540637783220905956958093648786199796852284603872768898764096459931150728916698484453602233491496207722509595898182938216147691251640382071184350889889384301140752911787193248063864486844250295872455440298218112423761404857558831571192122344413671570829892697625182477710721435107119695292326196620981882142344397998762392299650404110480676376524450363465710506113054497913397792932548204246173775281805372034242331449853248616058090695634961227423171567728239729601960477119902140993373539716439310575427133572621725522374272040138253863135984195478602121951591360684215771408278924495049555499840750752618885769798244378359633524454090494485252441760863322114152630293379010627194245426292703151839142807946506317433115283471549520308574783283290604854057819029709573217350742982157039690126901749375525567468220570854441657087615691905853935278413028129565503977236700967796419767095740086039410807331290614813623295677834698565516419592958873419329082811188918624537501778230312529609880582603870216227384938830654054291826341612040719946555126885029358274726526224632427626374749686355154189001531471790363604243246494603470824541917324663990588930106287611190238400522942981554364918238161038622392865682870768927599548976501754158840798802460966950310984688432718058656706460979710894738962755154862559865885916115000126693354987075682298256717404296699828601034805689505624144262379146753920877529607273816204561439164095252520364905929048993241616594421052947641762715928264017999146293739648284576497901935095120516892998252154607788816805562460347136044390542588602003240094540014738170632638219116240606298006754570106389298394063150961494697119885029688057499826770363358032250149234485744608293735169796568355923977684506399762465039985969221859777743448030982183288635868283582305917589769124413943113104379207656819892233249162626038321076812130959509110562558414461893894723556147379302826701570549415220368650149307050637479018200974762430599177474864021943897559625384501011663902683436037763631158166279493667794213920462878715331751152842037672379618205636153808250107533853104543049379296492326654480631617589600122579630339330363709254138636838262761520534213067520117801929901604086079556010872216217160835892618071256133744454331477727609900481831209042718039212746298173853240446664897373144925718209297206246945713225917458873295227650454807646975687178798628610121201553795761131000726729159398176179332527210736774701542613185700596536341479343932729730066582849364918966433262871040883462417941081040596647998791255523748128105347667488979163467885952818401684334569354689608514907187737652800979508557587105515939307128773758990494289824169453626148729473810721427961450801343060834559895716458133193678502133398895567131462109368776857050517661132062858580625679319299768544440918969386476185588155449641061014566288357118319835207773131355350980865490940445608571613629387255862063922291815064297930595746689437416926639870130263897432330934601368744693399046987312643077661231646140611329852608219593997246731444165668751363346082682097974338969726362841514434624679779462778737233478693117246891817947943379813399183249489528571774471693300577890210355918915679370980981847546460999255266704977548239063480310363758089922470621660189209158370730392438396473825408106155756642306816035757362358918287686915296915483025618486584577237006024782911202995224713174949747803831347799339094486095011525512303697393789937005942537093042837919032247424725075148870491299341187504627265135315042190196831598820751570612356766722484246623782709733908305479134424317312655659078323642903122657961040451715412853402344461980174184961517503994532464215239449237133165426963811552702497229789117495579550567891875229255157856805416359967237803400992525729459061543259469997687486230968497210525405543371446006416637678057511924100799340649770701492264355306223646720926547262214936713254164264635743634224717565755609582908397521570818329669766525410213235732256271708105649815733934132951270683985243534095516767516191769691306329879760425554658336205874961153521039641711263612472925949257072239594940254937602001707855974313544623555759310198616914565265506985376813640493410977002197540857131086181360974045345906901538299805482694050552435967639038607711905682628659225567311284212936601292117227233426798219413228616317288804004387088079621353442611799556923300389593824216840252905791849962680529972470508083011192286589128855716444886630640859585277280661120397261231309821460365471325860675298013432141823370664705744924435856956174028402389411952238966186907409363715612803341911527501790377495052510117289729105938753169754759819781509060481748959032467276463858871109649569539875511133792135638718809293998740627916746615282390248015929896252421333897612838394999802041764031342498560176738074707717900941783936792304654987771051400378394568248779951073031522083731311701070234587388400602037005784638084593269383904814894499100580353716520216917659339166066965607435920657705015010566089045336219001171696808004761211767045857668344565458536630653200233050735638672637554098900716022244388318671473663390758405219659617542649668832566989276093380850738625880212431725645063066736079484059151571757906509656905236928905331085161131820791025611190673510820068320337061728593517058577509677236713076945774908399018888462123472539437687595521571858238204947488122588474054295890751043909948574000774406755621228353947497095513984097368005814063482376271793044401593230819918840715511325405376882133282679442848381602833762537784007948691634040508152842354325687376287410400367194680465992459751780630958416603424215891342294722127627769393116117399096547645924609349244599648150155866535140059778763166648632758398391810488447595003000336442802370692541894214676971154214587548995149186192805813238846695810595629239595761500518378509919164611932991293733422013251153894907417347292261206303661860812177804802358302077282625759341443225081630730455937892137594220782332749895988162615758635697317525627590792112062767922496803286885614201987307246119415581330423725761930344405967467295348484389172924502723517504341435407884146686280709650966418879161102630642085913348120237750819740555558825606870922035670598214817722401412003731546148080827152930577763275865323537367567511544596613952367730932135378088931962315482481311803878410645084163889484947889583482202144375704243255288624764712473409285072087513803854457315907516031168967038845031900334712197021293179159772824418059909178524884614899403357534294569120819532631315025124587456613359666993381660984623381579423270061214021827380186584896489601377698101945025165997900370827917429095308803646438747081668649738000248687214512431799733336907747020465367411622446082476561686755122436700193847695717173668969853983203556190385290064729057483581282349396275093547005689053863294137447465773869591779350334811573309004622782566673698533418413645372442290202568694902981665117122146159054816915190262905694686519637882863300796874115819987339133193726458687061408404820301788714007573645396250814857147988722792711694876532913618938757231012098807830245804590834176315659028498000587995636476648445259167774224511287398514085953833069407801758821440558767545160393210592806873514170885423662557039134304013518601451326287773463102091400578061703876047538354002466927306558404329618863863501608766708745521589664005637513380898154113127269338314754628598700778736138113792983456110291965736957610676639308048455971313696269745689518385094549819712216286386877990947571649017922168910291230575366955457043656379503635518144259864053206385257923553827980748599485362313358119308184436105614728731733922524238477617522700946773309528670478133695262292897720805562591731265201043290488317663925754670911456490260418569370254534249976543757112255071431449098231179560834707359170521718669367968863378713909698384356788950558384490816899399275499548104035555370808448142426472771798477321733857909035699332121464471942364995284076731304333994322955927046916001684153456655455356605935578309121306322665802130807569547865908628469960054087688735791722064383032864482205470501459680075938599968914806680737368093300645181407566297755000450753970558424771319210647571640540869670711155131614838756219046313514985224343963976378175549944314225936193530301984215335314956621671402133429487278237104529899317329684415208949232828001210693135099522848678369822466537589039766987546373616535064923637797259228219621562188468381634328267031272568761962429048438729279654071777699559951420206654795305546731259259423168513299843893216669195447457876499823220786325729541287549305076085456332498249066943006565137554823793641974766236867077491829826852054733794995709756684860713315801210722750199355829135064381848080745124640090599458912739404786132933692735643011218900664560192198885530876772205703322494167687653031461321457888243288542868539728758846561598874334162448863670832303891564318877996179484392767205310942117262672185378973963222682325722175179146180017231899527381135334397981531452993168042778469585674358713342365898124264202931901289965346187905713989344649797664101729405595468298318224585455193082243606981776533480595130802491234817283457799792311278524302531041967716771769882099978878992541676861984350541361488856783264665309139860458518815247626322439808961182747479038758990163274768437662140537673462133467449792233764088110553925937621268768358067822584148257063260798766094655409715081896253525237458139030712616796633229712608179449520712121888900669244562782229774062245814899945758093218515035635299806346726442352026570050122262756319067358978725814987760072803401910370917650865493935814853662361514065495407335504690931656176408729593072190402378956256812549934568388272336035411019077202183969404962106158625749532016469019206319143145480298888722871575303076322041261176599269395241531490153119572322234384339421009366910685724811868166363752659460952009454214448669909072492459766896996387896652532725279918442606572579678362055634672284997453769335770231659618792107108820993740607103558541543940397509701512751429932316691058366317464113872505961806012597420864655529946185759354233472572917207267921516996166903016515657923579994881944450755347957215712098496405956362672621266826321787070633544011899618184458819404148347328414498072494818004931119472672818484941003175497844497793110603614850986806240886247924608520933666329782118205269980728452204044269843891960686827887225759127761287710120239127377210759719419098010571969855127460840652664274409029715151192501562860245560493464737327952020019078394009567658091420316847011711536804022773317818706166543603511001082828443763118970655935298275038655278229047954702783293375278812491663436706367200289269594637134255819184333367737802517215802215638700941980936091194791596680149439688007625743896535842988843141202751170986166064311105114233599632771833505358666266165312163632833151221473909732423970007190022605614818621712903306706616956267673837658583034423775886184017510209484137618689549575961136831382647036019446997807548973646619056962812130304647346279462027744142419638218114390524734699494808855102022234095467818739037371709123134780090233536916760148220695629095256921229591415288647368241897503597395272139744619643525611643409612549313871352747945381286126811398936879303166296008552071593944690927007985473101288366005880658930412531656605944955007011079259209144892021048866115220217876189845313701940800471376134387967046150943953291994262539297630377198398498584380446789983330033298957541596080372353390884331509856949781406580261867604982460130580616527251038071825759723752532439958609482250848844800607334686052031740357739936909759074440535917186775447822657170998676317626314433401143722587488165596314572199791892170763788325300267490295102716347694405532823036255751063978265283526391446019032694430158158315249147160120398047560694927110406241552959097601809277387177403516954572988593489306915945970631692264312894176766043688145937018624903771290251800873524504969263878438469759795820736809501713288114568242824007618587468689343661885647660581913563616542298594511240845042506878459870702502001463189937797748412282916374304998090226772385420772864686305756893002227953243878230861247428986134960563329961726252887087695625293619586257054863161162628532758023204135728942424692085542127021270346113616633001325696060523159056790962874009729241424586695000282504791910286579562763619091870912439465157894865498380958001688889748340844080523090176331878254414948660065188709026740450818072513117812638866605869021713480090047827650055744583740246723197076656099751773116866337396660783428140564116664306178758290040112310034781296490800168416505072825721587324167746784395823696353397454477350182697519534088377804050763890834670350107752724244519244455475228876637178336884785806378639598776418912754650455726491033612419963161477339973279852440913391588752139511847240117699812193848088875795869637627572402972844068852637170886623461261007913895051469524886505179005719650255336962826440519221915176355181013920488356641232323643574200706064134226130198301372188639681965871703489551707612703095277270797842524357484417601651165799450333052033639473365118539517447500767999242024537857565645650934030628006297048982308290562616588466876955682816553332964033917058748297776447779001266433344567070976871944205496537978413501665272309120289918442829820781957681964737542621099081948926830221402149281204587671193106338986532844950730973235773211469403862775884439533760504581666581240041604360492003422545511449207144163332363063457174521906038091246002665608156110760898367843758041795114417490416472508494977438052883281706196525127722834427290375064209797548354410817951113465122980841663752959716473950416910703755987998374348631511073589230874832549478927499110882914635409890058927274813223905883769510964906964316070783048850164827712472712754709261448359981900499872270768540443367605842977736178976325820559251053248411709984121810616296175006532634149093830755614734177608401322033280048044907252292886502282444687172311002909575701948724771712696929846607658909761317621960479597320972375790400337659212267377718096825495490650106506732530446122357356589422879112063017880429600949315407462994962004622965656145261038455786715835806235462186487249114005449531842719952139777155463249872294223098702341039127344427311129334192907006416092029883155928140588214616792201833374139803749544444627556519011714468462070759111842852646168158451538205014159218919938694788514442746651743913562516942236583026073683639179348597262247607611914998978761172395688750870348907181855687846209018800500402333695717449188918426445674478044814017341837867474455210325102030147900442707388462290855653544472977728426266163470301821635843918472223880286002014493213721903562543595625572504436295941859133941001894966363413375249644374894461079805628530910488426739411171667862619365722559479524859245413229560135894014451907323896934459861627528429876249088704736878942917360599270769157211521671475833356853670583751786588849302917509420765433256723684839604200063712774078081384029590156662642516037594831490595382749884864173913661421619764117831702708096273805695331603433869351464154571568555966822493662534152485070575394622777291065282905798965580368643357827063953531439676765628188069250992255776788113958407499818829206685391091927478379008016768585360827400803386687502473342018996257922799825262879335359103802827447888345655358210487555201496951578360762437740988398148937124945508416390643613878120747340636468682270918925308966244475828712994864410633761262321461006352310636448299534857649409864356077886872360383942549227354871259734053692126115311102542176951064103626600601452543074913567639087795560033555760492181335480088994144099188521277846206998793004471726416637946953495704463810221065834848163907731226567786184222018333041342170341576109355474231517871573342299893471244083141697017363995811926742731312148704333454470025516337101597649708919326720479480674007204306143320735101429722321608389157870838437013257604099805355846729277594198317783658791352235257879358735604385558422329341391179917922830497994084542193026198092082477848359922891571490240870116577749183898900626122237353984392206295729228573432447894306705470005847869224952326972355468715240471244554562710507254105064169458107369592932959644529160111187154576289995775256942762015741077487122586383174933176855128855593219055086914534342839342404608600313286238051915902218155470470803394472431854049920669325859369396847195155886387280523497638245920977740547599690548588630112491331995980083563646741974715451040970250051127858919367100149348167084924550320086947261916213313093545254309531985889013588635505954081862334270138394962362808241245743619277786178618342600006823871479132745206090849087113042010060003058625855851982169939613105284834779985601495848032784088792415628655081897039027718015262533086431558221992470536682334321548162448870006031002794814174745986720973298166212571753497104393287239710890499048712435170059128099169698376571539465403313897264590960748637627504802993889151943523314716017232833204553573895640676077329221257203681700104200937613154373780042310190448361829387277222733271806066198315235455421951074458091222238185767222653198273112846292385603439525619312144035889114325185095442040282497271495975800359415770938078900873315855575277352263154541096138619794442043966100607317113273274212360639570389333434161722549594706404494481802892924302907848136727191658466335506503129020153100567434618853623354710034696857013579896952506043470862853415949151650004000862908556723895122519006169845588974187611289852015219576400294108439230654592803454156240447787456191797373254553825626674867609844024418693774237333161899889376577344296902072781335766672857674155709913031300074226700825968512784406145497306721854701423372701637776938335600140628583656895134514897978421351952111983772695929281886087403367726772862850812525936254519616945780228283822848790688823636286096850770078942425054433921192758528010887616576162373145780959020043414745972296808488009500466850151749531098883639583550068450344232551632778213067032933331185913493693383900232119064587230376669865323229491090088108767472116910484184701607498433327443134128296378756824190008523275989462046921828785757545936430273321872795708435992812505573109558424909846139619856674512356559193153958356535480781300365101125290058809857124296656585604248089381012233723995056283581472021279876560650848131775541447026652129528486072551520666345652357301356213322940665959921076032741721430808577397600118799097115812641850413036756975099107647527887321949418053447767523713566488117195858375488675535600361113170529998714068042729210799319765536849667770409540570993840287559552495891794864042489923935081144065731065170814587642968136903832271297246907432961570198519004861769870940517110565238249569211076291496783481558069566767575340219604606984582978652511717859411510128180080926999493350524738908755281157705264993312023597409069620291078103785450287721094339081706283712103103160296994397915811361035178668454660974363094490073421053146334388111839009637031800063938856382529575300013195815962310661666298755577370214106553681669277213209637011668596492041578862801663834071419265040557239243869484824167913570869847940593693992501629796966523009008595205619131657011882128586873840206733602429204366936036770042647259378397609432310673623929437487485798580747321314918084639312612303627576172205625610585932971917381318984367085799249954269029121123332575220657965040158156246370114285373092884908889657380881619417594677200934604272996050148233389450911088659505902822126077360021125689913905164436847993475616050058291818442486204164400078776959470278661364541511627087425784935613579931692819869081166242584883820708711950116803350923315447519559600009320841384846216849235523599195493770285637485908722362800274357823017464196876143031603309722941004481989639423818137880911668046865456753500012682759750006100134461831716883251648020006354053572385567005081882525819382648334254150741565808383481306429519233962111038155609142371768418694022648813552651137971368032365675027532409989753495140787643866333908948490477502202631433751707541695831739810365247487667944038228916496794600181664238069981085568300136208180687744839871711327684313723143993021137339479716637821937484668088229760568573652927080229975924977331068444437230296910371268226549100961852442526060247504250004263693133343449580356012924525281305084302725955060185164565299901774742406083605264974028906023086363082255589730505189378935633433308297928397505245472244886790467670974574743105424981691225252467386464387340515264318202439434319488079488470232933535547036622858017560670650724490573033476821508716721756362281806757945056327038847819244870731768195212251271889864031889552536219668550989841857069703232710831923282033403702349145591776519994297544880948562179862328741646678885468509242458106984301256091486091403525764443722594785383419297466010948578783916800904402490822626482897093819615622572979376454931108414394170771489056442955334132427987023891964689798355261750870450410684796265051602487418375242580400841930623772481913917850215068490136706925380549442898774261828223858571580077407655121275028234538768103225323946028688326899016991848710429508910244932363437997313478046308982634116146168636757008647164589312720655908709427255497563023158529465697917974957358959462691656924066954750477878303895432618926070166033810052021896269518451092505802581735151344305422828648391858262735408048003897406061030834968526641495770994662342697513172103689677734574450409939865955646440314452792381904997605619502770073686914758660640623364698179890299666350651208761930592304913075489725700560636765574977043937428712979389067089130002548590948904182873869929500671317704159014935860745588528860693132970780622155716682747813968526890037167169585643930465945388079958854533988298641961057095688916005063775364511157531392008723174345593634040017734625773459971543752696783758212002317315024000095291640191972793413343545913764875294404593638021951523605942091790559703784287221127600063675492943089172599197872353004949563763641297631471152006035872706845554615150534498503914909478020174098904448036543031399393006366490099545273590478919020458975263085986971133047966624392879920799102412681399460492065020293902932611550298577932927014421916579571052082441284362015110625973594764586859670277154986242889682450011505268667301881707016977159367712870919121019946759884443956305298272763657231019681512421386943861341242776901339856874006672520184744134783250214509651567913507228025362815047828141166510134229960433936986806794468802216023213463403467983802384643172087990392962163063632982067710417202959484836728997232134022691834379067945839659107390517065449647964759358281558717293005976351446701355331901344005759294646612155586417341718293010119161534384436413899276583953114563571499972044603018307401022144032631980289429106921412377995651944355656681556437633293323347825915364330493708955437454121976282495687473603203955191440376013927268426852391726358584486204229856425449584011483544059286140364879715525861540694312328849125039771129163997808676557716432333174696272348513425647431875305864380948227103863925299268569446755483224256701631355118394086954716109442418199093085660628237320684339545241246639492943061070657265180156143989540896995709768122745324760592237453007608336391800215865264132635826134352913108163863228728398317591678498436801431107570524712736419497218042671834395896189575638399031884186865507020157855440501189417029432757387383830847853275704231467655865146387915811220767747937248783911948132663111987407724378389092359284585483105883652350175885606447272989362930630143086072551418174378901153212048078248190781354213745539706151904138783747966787243454964475924301472070136069781208749171498707966971906867107245694782987171002101760428269482093369868174266467466541795912263748810773629055309604334759309351144976490979426844078272419919275726780951198251352237223266117632419541116743857285760078722881504498584157548030756525820944917783741695742628477515340927203891727470692937572319944852832225779006501832646104527203692412288548004868347834220391398803902156105887726458434029227288137913492994853801984850786151134211606047576995345814146989119947667392826426235165640701024756739052749451883620630249378272419088215784101914300379775788073559107845600230467683335468044074172225294560442791993787046600286689157432415960786749563174247300391865257928150551433706375058083901617416315896818723386001996482991652379698457335078431371212910212265325613321824107504657970405069981169876682560135196675407414148144337107504611562896349676656515465268608903497617979199865889308892367896148823344901287068532897765060711764264383881061199646392360180089924514403656133161769388614949675814533199157300188828790741522682802456693946604156268293819082492347183141875734961216934046616596584277683203044318835578041198537403700237415600330229951712084786034656702978763249323757066158785656950236744172352899846576265793510139538566030604426050484321149567436957719063920606201538855147745167258222814547579966961901053628918300770222514184577707632161154705092262236492969384883384924954129224701619629749735815167941087492674176410835231022598223850762952268038209746235036328364310897277141937610210077677808306970604396110657934852510922499850295152122889770594219960638911751888462196142706231423508348575023210703418724459784745712098519251355378769422925854054366184606636839944030124158422855627964482790077736322405448877652367507626984521124657062226342717644932645465341571057074875629111084537395234492151442021575214855337260070284014907919287479188578760409610572951335759759427391035442247156653438254226559391709787621876263605918899496388508717903009082236335986147063118555765727653447351099382385217499118044185690677642727778560241448206061295345452622545867822511537158121463381862655719683417876828082144749508359746509652023321250209283783693867109068771308310116903985474886324077643158192222546452968506963513182393338244977435925107916070895269112639846028955786381392627185806468418435611693410977264996570556815394393050211687780487268982701998331855172600576920562646575817851352809571769188678610484463692872526839482629386157225255269080208035867665747501071706098763190350141911241762045048010304780535729788141400898561105612947578182475326910937317041100526715470717034428896176259938525642088698032298292471702619556445288337760459254926722889928806602119808466884727123968340021101076538902665992434571752653658792566047376965329341821272044158190040466296613443046877261947172034470925675916015047360446340981624655594007974095958565806135807315829255397540749496482624850975150830679441417094188939373664687776266573058715690377284830677110006638967523111244859945971724259346672020125571136900000663630357593209339800409324022245567488512776911013054044087525631446720032559768634166312296084462447606877830020335032850854199577430171101514656144482933804331168572531925559165133788264802575369468493586956724026611578674313370683299307150790294872743831966727731900509289274501568078051801279113710008726260933633424245659729065444052339299973658320502789959563880499738956084658873820878821197859968463551277366652639578998469459358756643238334705151712407796845212021341985167750867752199064871361103042010583583021400292293764061929544389251540334552620202815791424894107693184986795625386600717309317331320165191545200466261346144736123176407728888500614964420587285751882359745324493708157180142952969375364943665430493247516745859565386759583590499210234234633327450336432959557969178111857832403385398788407301799253976625721513178526062101520418999954106459681147565970984591627505551893469538496243895153657838881229356139208830226915411657605948026916976140064962269532731340477946416751310128077493854714007896305335889405234712793753406977926023636241194988992757011379641251714994388385792226292059583314243376905713122470141270566773403898493243264802802061959484067037435746306625113620987689011021179704873640630668503375528603471753825751465345704321016750102476339262967041246918202418086516844331811848396449358183775174484178892246099023293428541049090128213466082275494950754364660597260910739268867449655411463477019400341502743153880374587630327687935734098405738866622582630534958135243823097485052157773861851881609811870592546957976631775798003083329263739723569806750899689516088887491490331488867085654254630195695137434531959485838672242684848754117211595119445227350440300732131980945267532464342734942553525032230245767042108745570210660033144087388954485454462259480658486752620079066742093178265890528816627982646425993652954022042704612225136988561635196634826738571359282046891595142641392963518145019885514545950412905400500802342359618255382630104018624951229557486534019065035364336693597987998430044340320048520409303351542100848118032605870505851883169086721261543780596806798939738631328906068050135119045298439254121842181566556206730221046642615317707291339731331438136161832207641577732325941377564185531005810462107868099054652287105486171520773236345177389599076633255161366474802683334629604730836392661876821408432832810565280942705936998151613926254571292448894189394253355760380809815975824296545783584561793446314286206692300672026040565364681327226072106966677866956608013362758872700489631775333880592558166664472690595616818901745628965424637240239514074130506031750636258718346150665186082985811470125333918204048556698899350159182537723212089660361860860198833102166269178620792654331786573409045537153843547783444159909495688123495914645696573331042921532838208284733425434417688668093507469095317893977200804757929596861877552468568952152922644802227878723364179996213960263143977555766202176847970510439250592599887994870387414281604093127690036538075418049230302668330332145543852546083374359589561545439942270888438853077520603999378313598455558433566390803011540353983506632266512181718699349482992447635040273508220618583843889953887432426346202732481962329374609014129477698983257986703115107128894097713195147951792571772924561782601117326940830736491270921333261629529703093333399017618842098265254095543264012181074059021258243753053479068754487549366262153737516298727616667209052148208648477556371733961327061723660804190447334581646016687182236557251925003752996569184623517474189767025409297824202516242752038607181818780069062892606315813914824061872346933022593893235104559002285057699707754568968289916034305872334958668718651308839623800849264759451521703746000433745941732153210830731199405415302455106959572960421286119856111649496578413918921212672892710199769391271864784826550013839124931700823402136710835288309581146682031215904991079532765083367911699743369611102862436092185118433474669794026955807278723092233225353525978394244428711540575370025907649555312136783356062936444573812304519663689693416318881872375119914807567592379035483216179360995271499629122371128304835485517929210684906992209724252825229165825797144417216832239184798902702743635744985015155084939302941638098123426958615760864807367259923277750030635596505629937208787225704124099390763200225006141431913874872619753342484346879268965667467666603540792938383874576400997410307299316226003986171502624114140870672204816211724774334604932774427107058049154001633029722813947423211384366953154190945171071404795867370807580359349877817577448471568169984918657112724525848865531128912033813988955390791940408435383268121452130520892253814824250032549196419067706604230895618643358093798848274432804699606146592057913200070298018591434107483308749491857997769538141460238344707249200209502721915939882292045581099779048537423935722162841179564122250221495699109562395606765577440317011002837238859499592272913761480864736992197153534484379668346489461499967483571250865893179392367973531258428452366206826173750932570946948631627949551227732596079132235584545117986211892824047974763733662327831560609810380375513597352875835524646247844726140107569576780295988456159098236458973005203986982044830697355534535937754502937171372452637141629762626200654216982114845653842677959645200542975477166343560431383732138903996217868050591809141331283563169740430824765890224358909148523241303987567424268925226193370078736212869056553126700522025011745953944606506919776896288802223300261997562448825137651223065279838632905246868095677049258477352466422546688010932175896796597328590042474247375729113247321346623167137390695339826802438725653458654164326970161471735970709160595573334598857711084335638684236117709759677252324926287867311099108806896995478228944514127468181287881570546093225395706719446144527529680508948695796106949027941056416045974946134340341199615307746482538150536144643374668930919671320957809629315383224685138247789147197652995976394575259925404776794485528113480588538508911751336786874598743710869732269691964484578374186278665590804388003806659087669941651560227505768285832718431925394318291206341881304490991581362297816221624178443819695388018925258513001036157756505379281033296493741260594403099236546947470470842861262687604022237851157499911663101651082081622009042450262781929930270328263349832765504746362367740625640850313332044879913889842057450758566232614456064221503734291871358009230070603549620313120313993106857430409987482465849375823066768037534711365497396956427651446945055353491962170806703449632694389005582689244114604524338447106268650798106580107084785679349968642595003121821172764108898258299355254217830618758689552302262657803657453534983814672051493309609469740962741689447681336258253511162062025370550841521125178777656360288961274158057562760492038295414972908007641269253024960938030309309432892366316862198439506825415352690437436919521999062256098648753747088507281657136992395295894621569105360308352100718993426027194453617855482566884338459436070930481258966871633833081998491837249384307554060585518690763164428405292134119437551300556469545492898068850887828582333364972580128609826995044235939835663964095327424064636577096824336003276794737530067929667741460461698189346444966865634923374466765108157081249926342375291352343536518419568901590095201658233864417665132994527750227458631852693091849705803204187384441190406527258622424562117408114331236310538740826645494421961037105388895472064768439237259684387908661395447544608842519919342383820117164593236092539543258304642128407149463914228359716629849953936264005480956977314575440063687238289277873752054106243479839996673436117474491092136156039194426749397270282912773212174156379444399995357898534465882323578729782002601995649382105131538608553411783098100178197482934898320848322724354606664989199724602866460913934441888344676372580433873581320239938765153673347120620630774060029402058865301205999988288938740128988247818772858401909027646865537838090545619841571356530750223101302284520079305239882057747841088639275237840205775285300484805265274517025149539396888116684367731318358041620245192500516894155980112627063214262878384795466184847662631278318719429816009115697002353001937533607717740576419631327868820135980464871758243268236001571188551866855405815532714840003714495882200120353939354772305112029435564304515097387176415609458821161211140158718270910557030467049122759881300784240772231834662070435129391485945349292219137565574525806955561644285103112597240500215778485705960735103844133874150908039359405941198493954176418644701973877254629127907406791739571914173123411260351550916202801291979397880537534295803273432316253324695227301028753185879931108813651442487058380312969137457829836020220148013656988649174677531876623313561646512146192556837016861439785681408150709185844822813096220600736807202929308846580702273970775107303739750075489000287123932303515837840361540148710860921386372538922630161679832857605976114773941931604133901507600774064097236785920034412879754376885835493256341561707847172710066838631329990947755424033808366876325052243033541211584870175275079051261745615709773291115213531096819821972206830137950379089248602712501524298753725795449894000675532223169715008506543175177118829473344493779256926087455709877145543765286168396019591094059986963927379116898077045470735249227949347442754572913593271440385769752249828874909011556895193274651169301780166630979942494039236121885824751503231079842912158833832153979859194415913084574674051496918191279534661544646081777041654632437610853343181176355322845179478151449162657948859844277329601654168695655699150259663637194219697918868383579315409920806929058510261388237374978077642947740333615608756121241544496680105834514981837954204171207944682681629662410567424998659725224765335690116698309090325506252112304484863337268120557897341658041464970433958481206792792607164886141514275581990317632057646372642072149854176795799634791433610119965497316418754948027914695182724568889771799306500571384855176622003675639981754658282868955952485366378128705266471627907458170167884093813361380464776051909806166367536384260919777818134631139813511936142929321873458169141212255035460056791867584998550091622701155987676085157858522604723564181213943384605586655910716602334075784708639255867384891967657078805678795478106812314929255021987321674706042417159381898948003026486391618206136317703711928081996736291487973211409735611786172246279497821517221860608528743036795669210084516669508365613522563800502625400972030278123110926212760586507222108730060761973974797382101517822443111793489750609835010509610133405264149821593069456161002484081559083535235179174512207235651599920170144413481758364918012595176773069884303442873066893825920454597951059092543713922198987833437475773464227934541777055773444791973213004439872552908672817597035445487903946160705913312125613488265056079912598168766952109383706153053742525661657625516998886671489705424172578516513741032193857765748516661931566015610476441278952253486964098229602039922691408954273776546372592027599011013071970304373996933530999549153670967304551166257809588977310562664413479562693467140539995799750475578732425464978825006047665417595566908336025654953965840260922573655080560345642377195267512932541981032372519075199462888189520319362831187421113456903287593345236552927481412120874717295964517668709714724932504328751044858874785095784209613052582526680242347956684507169361408524372316123942045804963768826417909715262009010899235177681661111062256080241281637584968813633921266243829001645733936886668343997418136214524986044152772954587655067544265020837060229428623520485229801008938912942787865448396158922495784711291283369286104165534661997987707103291488194518741295424932298626492127420966849933071245064408364804608874924686624848824444848646885205004554425582947494446459964934747115972635432120560477341762882425579858878855481273807362085076044673520364981603398983210395528449181331159201840686097642453907010888679824060547081464879760546824634269156513418582530995137938565340522241205457300309674291018281530171939226384795255056107768385141466244655888654158323854513672967370690938901087395424309337171408384385417695353464463724143815461939342371779452022902496358339882855553108868750573590608694594729684961076801948245562586294078788702906049851929678361625726694962109501643291049916291127722944923030849347611600906481226585710700069020876665010821701858506071267204302586936915929574564713192009864285194024100827947313221040500161065004762480847549179173778492793626357569141910911269762982133157577755847702405454080336786781055694424316099078906371447203980290720246614246737371067637076610746533229691661732447269216800152561356357287462101475635969630503759486908023930981004994248848373315331322092331474249490262047840391332021099836668254523355900940064149127931168428885407418967051955254390675380911228566039746374142851881791447916998580692532570958938622515490524769091123769214994184260734004190869710597629786096052859994331898978081844220605019283526573427343987611436506950224117681835806895597075602747942957076068960660891546385670188939611679741593758406759512045428628537372160869322423280498179832365021441727027033483667511214648211569533298462690867175711818816795312734482517989258835454222785214515599925879448521593609031714952506127300131674666441315287258039170752702550562866621089211150077797338943717725491599062190154020950243922080688435124641417422692692143572428785608785127673289241616547108328323509379444044734914698175020468215345014951634139515838036940759828674395612001230027338723496121150283082627052721688063443519857312131574522163296139565737500235030320717532546405683339358590120402733825040318323176204906559279975752947697376025160696202380848127348857051545453144283091135973128478714843554466942165436819829067115537484836651675813128851001032619193039845679705961563769516959190645768327460047631886552295808100011206538197739060379590455037152138656578865268507313477947359865118270450327475129861991842117464086757965155388298891759258390305827845055598403082573351412424093009233925842838790691373389572551200077375143271135206336128040497568529483920770703907428122776537278724776045613272665069680708776867185357024124573862802071624417686065575897925451041715848050768986102791383022443873118947789623076529437126709724458586886853814199930611967896491322502489041829249167109232728663544107107486358165637032656268519023931338244076703065516682280894463185042306733148294429027670797041986910093776504847726148010004883788235597241304546458037024339489380392644315187854128806839727978523201281373299431893658065323286465124875082120756670991165581861735971696529219891918941793337579763051833149257449042281922604342284214464496501318495132439808170173794558812306247856621599808743841843437211609108682327677971786447382408015694850239447925484662755767906856608190371164628151349598672109273120404588995809750829558918811308068144689845875261445206958458915889286553920361595357390655678164780778291968027383586201312197109130767969007839922452097745128893876302778890842064510009525642226035941511834658037874308327805425791475102068808824483244369537780428235258443471279078947345408019801922413523266507685851512888257392601223120386833259010616253930090981982449912139771679540975484221166811964060128229797025412789062926483079918332926096515450204680666381896962954171364247756733427117669107881461017668644782440504560340481654215016355299655232193806679039404857560526833610295181624976805630591676736274082957916426979460836464597782031125733544656581001723461391189398346540399875149138191125971784271909888947200828031555949651751724250171281857490031541568094835583618518620786920325616616017991369503273064212087468622392923260536017552942987118243672030805154807095185737056052930658499939796060627850343935543869404970877550231299673453328446888494802661961880102452022178869302087832609604545291761088957845636865952160742998347158906206404951371757694574157148943448608993555207940695867133751369026744891740536225823516236517609150945269217993177360872490983801198633445743388403547152090470709276454083590885401455325519511541814688296107358801799191485321176920090182997392805575411963130286978160652905095846497182365500842728458056868977380746333664565162592352893843335486472582408769362330055862400032619874947514731013478474836450476719343828190784298378266199344317599972293382132441522234574069539271084609085842755158954749737888390302097625849813853496171611627173308528564313083216987253354195306434234119378813785981324007815475462884306010333464335791988699106841988219193472975230665780487825154546218778294991724223713887873089385576736517423535800629111552007861659018957642361316546700757490634333190595019898659488972212563121462890767959833512635261374206512655694002896811647010432159752797978567382691882713425125308222138195003043911960649045362530974303998748290087713866296531875648392376312587142916479296223705218121737078641605401441432318970722127092197686912498653661952398468544427913282526376684059941454983734394157515079601718844846860387544268273660102567715968987827679578930425460536394096196583617702056062716586062274833127217413094592150814609988194806823825554466558520827744450214978822556187087989937519462853559853641730345894506234117882958427716651060071647540827156565381604024567079089152761523007933229052028435952695976755746144040452821012606774062266666624750326583488277040621157974941687599927772471186310477671247890823638115592320545198075699960300726366826523572150966752570998025934643831227987540136185639729014558002029067280597030465270411577605690131015985933785731275841144540642795039632976890608125275794973908132963465306551767630054946586504126731111759738702480200802988840086576060525041811822112374418562705010284584863978104844503942921721629460297036169938288121674607162799030428807086372587599672931168693686775051574959956588186557059601349320674178322179511902736470173882219739463342981765404345245156220644834431270385646115543436330649248113784818126805886248056407314986757959795678283189723886617952057222438648358942176325887865256167463892205553286408328700077428581528604218635533327024717576261605836017423675078275987645455196275961148700026224309038141816430665725464957703955795790160321265460133303594964930688064186900181820596747405239897744267130753207152676719286040802449613850690219100512252182875215154303946516086536398698265659483851185834233589089913580891726036047015951154530418200266388656003465037967163623989203504647636795292715997964726427002734042048706326499434536720095572090705931729608411377016044325556187686585820496253543531583280431960521454689858077410834376848019443198689579523653354016851267278737749787318336859292651815725342135147500406402415210876057946756171732717457791650126457854445973692851009645699047122121591939115631006064931174812757954495108667784450753553786412714465927751371383402404901734351138257914322853708344730837502782865539348877772709868489074569089126397689975288681819355639133852573302349885722165075385717815545741059688639736243960689307685660931740073770634992779309599682214901959026749592203649734325074537990047688968733387435298196104470680065892485588304539122474915278391989582215259553970497147258930243850249519301002167097806947336234157932897650240074993581606949344385316382827660319990535964091804918505035332016650516590276001443766203790815375496689064741620196556803307162309131198741069670600879518528676896646017503936695567813995506370775229046290037889466726141794340241817027024059473051532385217320138096996936835381121986356149162366511621291677451417755965914191392635327842022924480540065234037835627066598003859832704718309127265831509853420792075707320513815124952373672442571371065254769367811891254655478764368537525890504559123008927542689277786170206263834586729338247550995582626629157683583648541188427500090271586952717834533097219329146705938946660030845980762514716230291721561818185475702841872405222499500294999126663772104640732140661903364573024178837697428910117292342565971437398351461928419922780369351851685147424770653386229864104045626492784343611894778348833956333242569534405843563134257478972287441387501233991671499543876975977886869440240301543803571970084635628101510728748414728604051152721918198978739436679606156600759067155886027870372720644365931066432272874409446681191184317112049995637516686078482141666496586814309785826863352505822886393441443645523814765934635302637620653123820657657265217031700882022790172869728765788418222783420126373123851892637881876417732641381983014094813018206043659923687265635786792258061353731058117956689280338840343672959607238417165323118971238264745531233682000789136494207978325543456330730345247633180728812700816879811969806276963413786557943939498759645481771818743041729182797077345493000118158324598456138205858669489448178214244650164656457656576676270882116924748259961490168155661498364761289825769020675492814726795436680006416494635098845242897504478828215882493105063862340852843956197480828086919692257255855857613844198696558616454216692543020327184842561698682875155804567498771845418062925448678382819760519160114633216672019867422258628647986864494479362686461820300552453655887597876022986619650306778716283885027389522818963030488923408526471581048794838337930429720559466395072537502685962323643050772112213987781226304604031415730983034686785206959493143379732194238204804337595425388928276143986458270929294933467467684024458016492307182659411554796080608297356732833208278270659631868630060921907471247694081822402221462524811631188201843846075675660572330530760626942292766873924729655165669508712099104158246470198232668659064257053956927233189793493707608518475088478947901839909151701754514217455167697441309479045570587431865585724146853712228202951891659830833642005536595984472261207252366082284193899032857019564335522313759741548387375990749034678874834903936118390846837895324425534173261628385619740178489831277191652904849879232837995705071027169530646547914601817979549404882418232161199388011358350117842279183627584820882854508069716964041320433199230895731439810708248979855337945623408540945908851748782426766265821355048144537660142120065615547256342806080745165229867483975147201162823953896155811331262866497800777177225808943260546002458410451190308771890794402564375129529488178580314390233770184934177649396679457537446037359831450475403645209542125267227304064366986766010572305268583075712378009662237215735814540985444343858566646576305208029292127118784277042501045134745542200188110085762241470267227015597930655365897206575536167218927155315028700751461524514426152965361765901104401628798570978223658303835443349941299528696380898209380743412526414619796130653026831918162431542450055875690736237879338154274415510262225624702297453061581805934256963842595061265371883003181884683374070066790528012964263369280751753267741882916872680444869533479086462423186177952863793986595792757850320466295655766837900058159893806640606658837959435009427443135592000752769178407229196931888827810353226504307938381859370374019423254343702167081132963282056751807648291830638693596690583726762620866851570125706700471588305690925540952150527097831674974162074488919923953998672657195100606760812945067355172557840340334914287094582207567744192805901191573658373333201285413641822758326292010899840612194737770123236914085908809781880101424523507968011813814632402986978773413194581949853889157216477868371547195649255227576543928472703240824592185377028002443174750782795527243586735975707697633303889352085445416928195740415675585053476179054373643263195548508069924734726879421358233087022367575603015756544261443332526784202817349027106800680668062526877167657422935958667754291642878551879785268598103331859765915093823463582032718284695183462342518240571776006712675783444482729440374970722428578228497781652408225652775819056174190811523807415687535561754427730668551512169852249641966451497258808536635813268239346893664094828669475005057420412247724825112531997047777066266889109882668032624944627566959789305519368598909547608434398009465090522595222611697729911582743976747681382415769320283672745428372095101514929227507001796918547106926767880714715174628923191758200671751538428626289816128578453038048063762704633230309065824753127079198275574977235708664022730100224689182497180735586841071378794734670509105022816010568452484663399181091075208979755933992529024120113435548766317822048975960723359850424903684076155752496627643765663881948515337259080625315809016783098022701357274823412958548200663400681191148453543460755845258717211217686904013530479063118146146049070900896559606396983937797339941107089160125187080899616252413946628963358071667618972684616623004151088604215136142987928944334023536293313507255285279964566453419541971585233063722806742026403794875157472561085658086996554650346139174899542662777350437083559817227447336207018501331535299123296267614107115640633892380400002217505348278428226137834837891512741348043465848836387387373595400134176040053741849114854723506782946560760511866893538617279911429535752015096691665846425742973138437225396676522505163496384213122247613231293352730867297170133869130305959683661800669929689238744593084953947211764343322460100215049670088873636956745035440831006652770126684612901469279799253777587424175593028512328411261988722292385071728554938088423683093970682932849401866684914563261553084189904107248789459568512677444013823480063850181151127142689285526926125215394775997768628912757949661255343249179515674885500812607151701933999300596791662669960015826480356100308576194215902662878408175660617751296403412356698835348463188895103354290287204688252810702561082586151308966256206613611687906075335972523806299984916891817487397573372700591849086622080769430552820193278516228248108987735430349194290241649639655452891426933708110381062963628483188957524848082922497551685820665789686705916548659950418949580896388380099670090078938966178024416226742687451613864869171073933534780764351773272936526107783440706167358327239245065236346367656238466644032343531982027225014465399081880492341666236470301497109949938231843287570346890696966424091986269981212910804179755725801931225991230286195239691959410747447119985651165137469059327454269577569759655668278390618431325208677674050495112574927808367213635986296893394791843546253343945099022931852641392461207426142489482102279306952848715210585302441550889345924281251904894386183922305582218338550554622023668318271198802740751730833782713176847687471398868229469889226734365045255722022494000503290703264554978250309663656988387997826452769734885775908612777614866201077768189477627129686680697647298218510384422980819443160917066482306585332154378499057094654660745222039006028929492875092433103416355439563742916768492611851233766939872979720445913334069734269935088001908893685251868869472083943225145963801990977119636420030937311274828662106783881112415797299829155217978890328784847154619269731654954628708257661840438500183448351492432746380276267863329587330179640600977115295286513269197228181275673883909991593732408279535047448022256999677822128598712250842024654855694420722392016159964643855673747677316601432932453756867346220223160615664618249793832785784710387586165831807838470510385479507990711613471253128061170213962577389826087863944218162859461640315556317900565091881979394043813721089615217853733896375232474336939882419996405107318443970795776207397604629764199397133845940161712379270436736604743189093802829806211469618512122149198156273793503751830114439340764226310613719359601467225469413803285360250428270794972092570048183267011596981496078662338140617561666308149102878332359132620623127831902786796738179039960433293126693270286935384487492271192798233938467956244709691649979646554581651964330638980156962345223347127519973569720229412161566502077304591319423850098393562148591532761427994191633988327173000832353473570652182893163183301181313459734304553797620494823690246632580234421057095374629503507729213944981979060922112623582554536456620678002722092299348609819748708391964578584225306474414656466867712178283785004544272819460545809475190907675573254508678671030543439015972107823740684202556107043291339161650047243456334569520492535704710390493187406507346825112126070729002721582268956424066281975958054156536904617683441528982463444558018443824338031942781220930848859346886449973503998041251894491253835368355972900296734683766895308679624491057788846355324019003048167232436774666730825496219333465050493252136407403031294989411752816185394007604152981543686079271919815780489929517901702979657410048932922560085428308698428301951136658856492690365090684781401679272670629552106999508510084005498882727773589083444463524235001484495493731973359062710575059116840231179888706249617263177619415067072601631821927038219264014215815299269263482222492906833549925381733085566238999856059225437671727498159333668948420697007112217881169748652520000434542493262075297586868102827564415486099977309312884342177045979937077977738387639426587536221835798108390407860990245689311812983426380748657899653090881274083842011926073744612805220236802727171500315663164509561837088084370531743444581519618382445520710285158256119272764176543937048969461473723021174886670016707046670390050322027944118711574209090873623383879984983986832132850610805957514865135779457497877052890046959047386730255936049140129013673661287797771109913922497536625973010562872176480630619537274097149992532808173363615369408213986295960285773128821626184692364621059914219547037817372662784489875153217662932942082107915217761913549204839249431913870860305655233628507899903615530027197770714082148946094154405034519816860534113570411194673441087316698150743083657581654461912538382960409137021971145291005644359919621156140798904818462644873609036191279984915770764864948215026473578758575108815775230754153919770820205625141128286834100114516857724353048805294495094810270667708600537390721574297969459060664291340966772495823650482041204252697126806460077578313239541917434216977358505016863680147521128378501242353090136829693374758964898504708469400639725274217734334139366398970217972657976556764352798426295503305835846598577184974023010383478099125924340888322990550318036173992398258031306713041026505903757708217285242048290439861731250419551054261093658049186389359586994830958080027928677082592216575509552658303351695297915472099793449041977041575659981493337412279364341685772512973955275491528711632778638021844837500451074836296315344575625746083536596148036379671596998908835574088777918001558086313255004095167349652218571341314803629065083249309914567189385346423086656332484224776289234749901728873959471564783729397712673841477199824362537780414541407579014558578930813968026892407058034869293788882635703360980888863660856936666566088055203622268813255718879057470386701448476829294567923211548648776426452100560082163008795564308441422279362041001451545679243557372983356266510919601115413268034625618717078994336490898218254542053597929363693299610177212373334994706756498847314483385285644304007607139897027517887750153891969408598411026278744299466650031312756148545412991142079037764969375878689880480975788683172578814282973945708354498677456140431546487552689424279552445723633460509290732322127953901820364326064435667095990781672478028132670573248495799897978905785382280056793672044579603646769174320733098372301859831273986343692986100124994976425263955730563713676067308276986113217211182084357612362096262351950782108755965521168229092040272554341697390856757328932271661317530148355423751156056401750643892352016253094047508101989960145289945206507423028749140142657442104508561190725877382350597037943022697865345558145141927532300874318038675371210877589975358206104604950631053541525692765728933039715438734127712178932342828701544774775612627890074120105529204394105262933043394715584028217276744259475719776958598805441908474267381613290509529742232746664478822072214028293222399730342703846297126708214361109546374207173827188733534779484873072619061372739223410990196684390192272957040981642264715362524277216717303718520595270429828593798922972308390554010622424514604713275528514198493237148388425949789385348823110210085433911491828390144516416205719778146408726578206050097924744473857680841639952247576417077714036685350323430566210210120515956434860730084745067602124211635772112966765147412289663550198367396816454907712304801317678506878765010400465703254586203116743843851192098913307557841138871092435769405792496966352140972877048545405389868157977141912139334743886172466774305512098245130033319898382011614558648011486585087676081791123449818937151591743482887236670895914275854714245802923551423972928464729997813521542014972867313654846936155775165018486375949164542257188908639745081088855917401916266202263676153492011481759416885621545851421732698436823673888654819298959931804769998545510265600221547773340439098962535645247676479687677723563779693819490923775979258961590238021691778560933076678020912671191303535970713970404234774386056803970463061261485967950450040313857883898151459794644322439802966362200087051290798161739233998071075375287479708970427821430839042575323473678774249322977800438914708288700723778539617269138099517674762848256307998459235917881820838158614963515335563043360201158848431346901542293317302048901726313566773119040415239591417643701666021153907640199284334919610409510708822911929790652463300862046443409828212460917454787202014418961463063438735420966973285701545508904198259846466546896829514985935715602805838232643359232393799576456040260295325185853359180899901415945384156136549207484005662172390508421309579519934777470450113241338150509447283688051474302077578515845944746372600568206181084472011764502068958292926835351275919286076557439071689489894144461993459785249616675830788705916515728271003323573854711649873701317550772580922864272611078964750260434250357256324052388295099269448517142552059141170524451440319011634519863955483227330716140849875025829143234563597024343368912238893351637057736205766693015498153813532115749065967929458978593052795395931219935643686760438184941626455284218696353331688788392170756182437491841075004566206367892897107363930668537919094374467285613010807476165560989459961757607531422851488321152571830290739637310489225233310350182119906758373021716997957704975504096489186730380348268374046089539247149766409844198876149226748129463875335047081609336188533633862994120824249000766857837011873694243149566761881106760650662644965201502555482114579165198926899815666003809710598644171406049771512105117780074781015512246200586748649324275163804020532750750820536564511069334429201759775188088332309118872811941279460587528860067194723059286188488422200850560100942583264723963471830998432401869374912652289837540597995091101547950875976356079736707389338775446791179167201806070294697704793786848381037089038043489620818048032760271548852642549958168810900321308836896242629080815368089164445582851717714721594784160091434495520259204410853644152569044218186151324182337577537723432082758309802726330080783928665836044071693182000099012002372779033490665752485364916146499129874908237074238737337879174612509563286081099715509090351516620948004990816414267524171559717185134771158466291221162259221175222452461314530570553824484534010476464265109665804384777582331549146419893510423508417339533662448839080740157627088028672727090223732362387393241495599173589108447987860567235837709587797599005296845452396165478346712141718912160223597169903628252304762721924710058044205410513000059277955665011157357145771576030648559937126494422773719968762043374334284207912873419781301495323293901447319158722479766287412680988121921660424402652678007793153840295810160939964543666655827724548912494701315277390415080606170498236530893860966604403893005479858165029171694648488053047509310355257660342989952369912787300448636046574592663273907067217401202510303813376765383601416665973578080195388144912770043638314095952706404205218516405245143238345404059805262794382241868154766010478606459849129395225022131110609968610471149335207457669906373462402679896408752521171718206707939848272125732579291568620387073229805732455971608645442764175850084106150797831985837053690542740165350658747796361057860889807960785990849233631900909705717557307825647986090786093114516878758330357346508136288587259090422207908188866780432013868947023896271119019931583514163554469413466010127067619800036309521363101949564499193374306736053971945723969557413368128287907701737639170217535248842771781946508444148532715003991621007730568817328808292273873467183749572278694354990105183245234427831036237110846325348911087919412166191045926968432837163316262397925845981763643761232090826818343826960703898538523514144855719960467565278401969932676127904025845676228006966099635476758104815023669433865157589660021381910046832076133266794528212243727595926792276373183924957981195900301491748956133595767624588270453783975096462828763874458081566692558097470197342718249825269619832782882057433084025734140591942062223419469711482920466741046457639519121430034843419656371781208795400706521662442858171126220015458628352048163445962936658480979552383111733715195919651271314244922412392844279219444194053644738944442058975783007949232847951201685795140355931849185934370371302442578339359418872395164137156075072454136455686337260243463072695094996462794510973187306031659525706218461462822947223282886837948076993789521482262839904116125991690740912400439574071040475300559141411563184178056071489484468979653005951334761666613110107387887263103729201521633490591240866536641867563245935035254155204349667923114259713765261012033279836378158295005696745018126787198947849489037031618328850420983834236760731038206071765973649134781711856455142853434330375116049409280632376029698372066875071613880689263818074673475304750436414566991903707676730250723025049177490096300558245669273939607236446631660890389171818543801219328671632421656021309924721321660653483027163040506645840113351201790673413969327511896936338330741615460473920321490013651164554507056015440630180983714859231452031076215985079290335868663219787033539653235837421198671369105196628420926101171308778014751096582434767089067571609572705499016146764163527772551438598565523235298289248153462510452075632047980119070963154721198171522791326187500983407063226692156854213097185243315295027444282145996087671081901345876710540941585206977053297703370476969233107393735112039420566981783312537678143184024028075364149044291136776511307560846202812116947901343098751495506483076521197442194148865130451368547417317426781758337969029196995128744686929792912066714784686212927294915732959303080555396177596667009593308809176101288595249193999854815137971508276703608409507790705457155062099071452021472188667326768642857120601188980064716835749644379412103122229356642492579101757178799875524839610559647133724423068665302039731117297793623274073612912482541146735947463214645733779616844680332506132697541489632775166450540679944436705444249496680184539983656059063364202745654520667368169970384079951660472097220856852463299704393146300690779415635405570033276987493267928074672579039353546466412107344778866222470325685026144581566069715730462315526698922368630906744639226174159127587889640564305348617069715754958341902475953311509479470373099003552761251195656630528831425103889958100933430572417735700801871737213404745424032555843467587677201207462555967161916267022934665322431741593368991633758552952162923109892708758316734860535116661081905888996143461566897292807095500004856521474624545013563971578028627134859687674363537687486535534986940881942162844371542564616525934300200873341054268380508925625859407185783003329652431563489623865000068818703680618693262251599415167044842865055166491100319684323379276332063442980604123941444165326885139860540248371530861958305740726045561785075203569301184228752339007688069370095686314038819336830030871640317206659108366457119247091877098527346200472018216486084743446676533710621197929304999129973548173697040002918664308887819512897533438551340671446508097251965499824444602798105230441337347196770427130096372488146730204551297354245841521242111649511714948254185203065849155112294837685972414824231768738100390253621168863486100909677421335692479497635064983910787030387127533910217601934246326492663395851684731592230249833745147550448128547952656704765990320973944280373141306039488551057027913591250037546046420829082177087651692370692718503334009587646822750002398373783524619779960800075424582574244339785856272141223795755317703528994794550741561601633366286362081388230149479469599618672729134688060461027472105364295356292300219525042935887104451180998305317047204580359504881427605496610782700693685400814194234961295303779207538548327205151444100591745137125392984351745721220978555132128342758578217547930893287814348906663622119590655695352265168544966815942073595471865647636261455791732302202748405613255012559256502300955248033915553711372795186779251879050253898558657664347511455874290694610873584409573508268910135595339576091095843925801446768298690419890029862415636570511386633033320704906101513523368633365762097908719384920545663598297872849256532537936568418030954402445433937095871017408580280545711924895439695912061172186569528146140863614055750818124642584392874131111263259810897788181869538035863374055142110308084083647161885456916022601886803451814799622475537856437542242187692711499505920814769825238138757032003432532471619704080981322894539064951104736696237099249857740745490584483626601985894986556694629107673751422237667966758135236312128022148927238345387670391659612122328146476396301762175840412741988041127186867304507961887605995507481142684945716421561549927785031515426282948545725647352949668352037493084184935730532295095117556889083042633309094705199778218099092299227642212557244387448273790813468730938156183190073102923909560232664313055089530678235475569955802303793119249028112092177301447782368185511385005924874443929879488544622659149568506776452089803156891302767472323116520977812412238172442468031189269951860809169948211539128122756571947204713139287033497958277057724796733686883346818981919481662513867502112233778298662367894954913164056943738377874370409672048708324827880908203852151622171099258586585280304457295187959269746940459856813894775271400814325105889860876387893600950604575353706526801220512345219500213540061182518892639431788781488630740948854724103838283755987433302633237163806221412956490552180977131924999969892111450833704852269090130480598632339464149280757411155696249239889265531632043043202003193043821211754607805521632033977550396133826440658272316473932530058796120445511462515100014889563192255424276096685189373592392973139898520959696465429343152304157816556864803272038597891817809840113662630979127333640726656091487436141941783106807861261649939955007958355340684930765191115116373407644649795511945669605789911920042726236240726734932278317974385050919413489285367656330191726057433118172983852278554003796092400580217971343812765718872892739725241631040993337111098537338575066968689699092530620793887328504904024209929118358995904883317671553985440726187284534026231531753907472282794616657105288672579981820728070382860171504308603990707346830105655395831176020060991801546513802356953942284921345595471969950005544447667548778323168124922091742819168226166363405900957017656156568432589830076557958395449369947680532570487642646403074981209083939322370050559189694095264170638228632570293694991793343634064101376591818028668312148671085428334879257328471197313901818479567999209860079536281095083625631228278256222136683572265537895842237260797577292671491944468480320379229959493075604673889765886168061830087451448679090362750284216675356881643782927432286477608626986033352612393431704983719050432389974978583097108624777038668445369102815493556091311092241844995589637740281635163170032857870199821098149658131578773479109845346700469262327038492389419343104288581427663161844324736847410903496310308674560481389564817175018847799670620307654278565386329552392122902241836889170693688500958917794242189001173937227672055050089843976271104706363522230847152642598868335857527028400039817140752090759163279339375745746573943020857588779396727666544649547300386589603294589489105511717612736192954196372817704496493789790868268811947766228346325474570729546629176782386116177719659342758848428276710784766071754575943787526607314891945646432871504572137794453222932667968282355221655250209396811669113495250325382008997237194986173269743500465031837306467138316780295709532316618827175835624192585929832983814243567949826876074989153077609033794805401543621068757631224062516851931852988484235955675515700941686680894031221606105980794744952693218086561696561334800921571699714571522689971296752164158570063180736714586921271573728075566642201298025723008061736019871852747356069741065148645454665378554916222942020944930515509390859363572661053925192353956666942293980836357849837383529780652554973550060562732828628402591455654805465016827973318038373545671562385363051169941067033980195436144259635340323882639098305171851666590147059736276515504243732781133759355747021711036845388384444176194012107462064395277661523149860658309727639262674290971009447622115873128556648259199277195385110766126646025200261783735500564247564904000121250927406170048225584498582983376297473069861732111915272953484013104111815165236072493256326245224630432612707622613677152120959218425480665403623731711752699838465016492934538966082919543284959386390332646112586261091138687160000081652626446920818680844331218876296361237584804280091475869492977896252069896281270710040269282522999419714703746204166116374566688841283955118487307365988456993184316369845636135419673438216064423157941386245195598472498444942041698432860734204029171110107937764384000392441880015700570006839894755296707615870462351714045786102219266725007829977987390621148093709097136736417186688002226667548579491762310156820756473017990486060336864292170495922905183166368850363838995737679531681824192182213980961959289237999017260829817808684822465341757536413372442895826456951627404490669470996482403748869434490554449262585223252983336357991458713215666263333044842414073130124038824953806349053113660620149546685477116089704263522738656743430357802144660674409201259530316426626208273161699826746437661837231401626038425671410428547760188342760206296261306728044029502674855448323302204025328630522914078470847154673112517245706551286064800603490115319952955159534904447678080816724388730238470476712151523304215155652243870848424406204398666746456032561805898633439060215384540990161238202204313251628433213917208532405981410893833549152183365373217397678814237350726962230238188318684758917382206918427096947711359609209269166823131793971846513118122003488951620593022279494416808876505709835490151045672288219422240029534851229854006103776785894819767242603063672052384350187688456065229350705916220037712549687892972204898770318518288491364956823174039674547830091757822851658994392906252954003148866583059295979532534550059030644442578188823218760286229047418320182481616695554753706886095963450435454544043924367031955694143330107034712159924758533284773314401014771068141048519782190744659180061906221720191304890270704582624518372858003192522858224496376825741588278317879063695412644733914960923736554596806251215388122579159668656238590478771130656659322552807143798366102426993922772873267459245806558386263172122996322999124344831182891001224219630821692723726136383546594035945935618587325722221237782853527442457292701389073657745435084005952953214593831220390315074674981476625840333047723203386519409184634088877976856336183352538521750684623460990286700252385213931685361540624191703646086961004318674035979532842948551639336295241829987285908379566339288902675220063478192510615017332658643852301730359189027447133524847245364609086558418620525675839932060055907872745907552419865055574472961529482182288869565498501474064884643297812438671241436661090883664661459836383764328080734635511525653171753972035505215779481481207027332549496432278766909800721745819400634854346630606514449313777421592937645197350933400963546324536955437183728519598910831530659771686019387098781674104557545292149795556495281418974071306696621697693116065492037825720670976446336679569726458663782125212020612032846385026543829660430999228214750017733337158324308978676472440282200158508783642572686239569790386320134244954887105595051826909629716271923494131676452401355030371597308861154168875755481550255209482472257448408974941893155900264795967111854811123130665526741528229169080421129651097611635726873036311542437965204239742693123282212709573033502251309950284936773932375868943114174591020521217170846963055946299320062616885810341210336841711212757694563051871942990263616724221624357179004599336335884477099130199845128914525267932407390465988768935170996131701344175033515973800217462210296118716054368642674193647732929053603435276423854803892676421307046825264597394546569946158939868862989413418640389474624585353212372072459324925965874230485006933791102446466994010890893951224970881238857087097610424977678514178464147647575407976035665261926245696136862380923671702654648842675506570742343774501202967542572343027754172629447109942923787057023607056070296908858530082055271863015381485534825273182270257035497583522220724125913883846731788612192475881798423521004348352140696658434548115093109399749381733010084243866459485420427800305606738865638179907873725864486418023641341781654559076677079804881921055330849551985810048445066212804488584227054740072033108368877524044058263318308234524665693513050966645066900882230231957812550885181693037645039033293074757176666842691369009625594504383699283734924052156336763982597223903860713136615214979195689167468325095774770204235481110772409169232012487576228232644017458301176818839988949366620928026729163630505640941206318809702979188406725536321649471364457199610903838224779909611459625296761990874232304755841571390436502203274409797998280805444338258232233573945316347120728660129486340961666740174764570030049476150051643970457033745902239674251562395531420925773735075125283360029234210176614556832279751065541859339044467862521091204656328382803516774958630425247132135894388409096606264123159549667387180727356310644989092488225000893703353034994545918316317861457017148955228577162702096248155890285458697376957509517969649015723810307798441220427075147009121289999562760225026462201887862912420281188037724419371985137453761739605539439471043404959882722826123051226127341940644654010816279596117976015315083605583052682654559242510917080971053569650618619463942527762640284771982386068663997549552606588965462025660311536056851141012084929662710327539703409929914642345473229492857868038468454571324090805142617859536658058079545817750230954986116493251954229098113471456812196043062640197457551678958590791751859579595784114674942691391944136971598595509656001325362166504570006848550960606643575293706744111057202841220442922321604115898639847583266210931719875850302621381406099224680089271210651321023382214583160574851028265552893116411888962598522644996832870360440700639124470084996693147398343834748589422968621781714265539295872355729940121730334616132474257554692542706198361022620519023732823272794749832010779787167593206683627033096111542457915355039893534056646704280560685842765190525331522843829607500334736932298496634797293789083687550352177157580286066596185689518723188511509724474280580407416992977985317071105721774927122715323589300456444741243752911126633278371655016241901185025916567335993726913471027568076452033025195301083613847185230136334995534241332505783904239266164436341121653776472823414359797644186441310863223483747068093175945044924331609136113684121970710346463940815130447434968708687211969172492208551743242960061495242748493189480416927796797062555059182683239682138220774268829672232109559481678618978244005217299080318827638443712490325544075880744122925174607833633836468779975569130475926571527297851345261188385560267892672962450565905469981550220791709970975402726400411152839582190098743390258497763601355765959771460482190942936204173927735151986117910311181298662541914507112089941277024062738446590813132936327114107503118945361502819993887087911660743770283362230366811889564839929755965876557224343758678014421902317464435542420805586246256400602151569197881846506425345258108997809084952749583997097760330587937504107980980527790697423382220654437868662581950415108017737756728106680051070365256230829993814123795832855239161558029486236973038009184615966905680429961962526833956110857239626048676102699750335800959585099918745178376965406281308213145043996660937002278795011058826815856947715119959718440414454244759889386712147481360239434025190026851549421256886976900729597561179798261539781447041489090190688642579979760554813390026180986011906420168267571130775842179146471429744588987823398168850597224010512606123611181369245377616374861202099492433667052018459826860861485857693835514508210832111631481133833687126511109617768528771383990896697474980005725362074950847358563525265197691091646537639230212332111280236024231319002166787970134471257832031067858212110776457144803995010186294208314817952358731863521533699691090341059119361881909941254378957106094312610727765116185228081560451514286552439598394451164504327391454109470375330084575255238474370942934596242872993427481894458807206614948673473060365594377378039200638222597177988937970055599494002494844689391042697311263041113835152502477307951073425002298352103335627612491029247011664207677115959430855660011611522745296492208358342414720266413781598095438195310311515706264852255265117536994677730046848843219745176982248335279081065246236314644915958791440346338249877195197707316055804174231537136599156132196211435881520892864135466434843022800622557948415176475789190974643890093941076833745834941094830809773059418731516189610158390653674734327972470061512505300749934528909080796762856395887090225718725894056298906156653575626091884973810832620193136467234547097190389539463801355124077614316428157008834738005270327371729503325041818635376147917936441551385339967341957251295628754604373731254817268034854667672420897691022766138505523067915983617533647541587335628896675924162428132389438488442272663498161315462872395099529315887660410713665701623886587126551719989920395096241591373014097232397094283546616987129543920751263291143453937154884548114253201905199306022274981361598421970848312284943558151180095462282107948159249067549411398187062219438756001068968575099515813968281703558581184672128938497656683564372555809469258928983515948255958027945758602116950660555751241352096742361686448275049153365053674307429454197033299188667857001198797689628351932392960132394543092124091715624363330739958816700901594395661711558476288292245726394458171846370291264175725594716428426419858281057389247520575111011742780816802134901391148443654180649863441906149523516204334672327635544528729008953405672860511739853318202385910382640455041863773648954534814822485853386587639030031622383514938989423841523730256627724111382003363203218879594728336216806563564453555815172055203682521330010944057886240381963870336297838640322563638256219731133693960441333848729278023695361500812625757889466817634984854427098898666109515562633051952355453537169899686269903287904672443921535705442857828997290354441434250097587426354947150651606704375080653173114145687654662271772931533646775354021509167817245783577826980909014968779205393781490154765504277422653395376870820450183295171857255656463023613466464716292268961314032546932253363539134567777588656540645354438300590806607197640579252111866684551531309345419704592839824935030139016290526905181969577272812581291540134291035440537494356625783438483530906820636248701686020202349144949161268671148995619336784633957898958467500802634389728558225957291509775387914529169355244123989346356974995752526911040559034026940049401135056776046035408376490510150625836497199915037609943094820634791088837446352101138751583822584092301422851978690462148739993922326633120205167933493423981432304296630302170413943592756276124466147266741665065963046997678659135677488892517134690857004699584258622856776464656717436366725071377791228263926030645188725166849192804337911883842393289472940193978614089870071182552371135337258263672351893803252611669571543243987768175245183076357879524721494904913402820847682490287938878629131007791844447989903767367955691760442997709301635429026538606513408241516183419040026027010932480604696265103266526406987942886722864460354639684377511665869215928256985074201329216240564564044570583004814037117319660585375438591438057407346047564417576912507145009467212497050079573585992736702732609568695763490483441758693539645813076400470515752034999887066097344354317754428614797968763851509478136608856869875154249245999810005008788230009090867391220036609443777496757770560021204700235057500710076690874758562195167645524842350047159161721717805974698747630736483843982135257293824046612157578633926729317214791706601485655052464008740575965412674948752633685352785416351007213855232962595428588026504691327555134757767778944444163860748875402632064995125853750935993478850520377476329482640348876357504933254198100894791812153767633328406521032089257902319836727432658528842123482861656041394621418074096182392476550019786443304565308635955770944831156795084253550365356746963217137849896931597003926143836539515741502365128649056402357929911455710236235196130561348335136395288699485733121117818348804927611006029853126262151051292438457231487026487405808790953374281766256654428118194538944523912123403475771175537998225101827166612680838852653894540378729510370953730530819490558950462730175830800753422888674932022260568246422308412494261020171144512559531184707859273032357057858449135690991161840318552740527852100868943996614478327860662769787824666070803044379558362252119435252705261603486473584840005885974318072864651966351774326136023904687360441557428019379968124072832045170063042461966033061947462872850812129499068225369585641502350082676509700780882709727989489090880450138871850070648808333344525730468236681658768139866943628001981071921704077935639609623036296349919205086053085923636377863748524760225063184801262241169497907211260128661363991849486582829881619201084859670597550985678854081165272347290071475063423641363393863523807448332672067938345515348501287486749011233389152275337760844247344478678686130872820888814863588847859301792729312788718043109369153983209297801060500521675007707223945170554258461684581993480621694889219916650615191695807921210397709676257608917361748081433071726677033216171520510890498505900899396931296716556169001255507308952259440692269542425280863675452135461160259224477250845721530563010046694900885723451594878588649453128773435764254575269628050059160639898122324194247561546842817348054871262160347260253238297456507810669080422814303654855688033464375327370315721558871050874429399225784585497443221037249622398691499924380345297041611683173132460484658017428195216133368886981761160450337541232101505841969093773093140710722124385509329826568057108230086634626612282946302338105320466718032412172175503586286084943619611450475690332531606828490961112998076666652802646817244624240568407643029135671162155962947641831810827328854714537613473212737301112751010936755299011316827528741771824227262333141334293896419291931643559669243314062008293524935656905682530991799407509326160306657705093691544801494973216841253080949045238247084884351350247952935383483903089866933051994805712649942008899264219289546907945511292421712148501413771048327125281069682760139644970742291156446025621906803111910241954554082623090695321744666450028998686529623249081440407360916234887517170074890858389523542287183941525832998684343327226875131635738105672815242746095908949055182844175481455824688726742962723813071965945160941569060371754880988456639387775608019995360928071771153318129974367142819721364263282387348288970705934496689760992422077252471271716677726339533971872481956184095017134693756298033714001166694820239910141375302923221819507472593947830754738170035115965537929117270089944146503761084382009161525972536023989460307767786144150777634681273162141685294931592197962769897883615927672470797385017216081886861851235093509019728310355560577580104336369958448023929381098748805269881306314498295033205663652826950727619559653732031825560606221538789945472122768149972688908797692705463359181528403937496397352395513683931153838070546665898246527366541666097928067970085320184921399916335538100223880586783777488315848826585827055242597479250900140585627543905858428192081536914876593986859129316510235299075433011033770819012885256384212007301482111090988528597646025565008568021417720438477243886583297946894286569391442375879585170218478781752368259262976475542215759663665688280249484129892977926723369280054512300994407031811926325515269332139438752096240353241550657753481524116818696889409460926902264689045778270738860888984254590256673617658084368941374360233213118440204524718843559731028749984832209828214309269178477650044954052394297613217121615500256108915488487264807642706051467917668704115516642974045294626801247263117795734164719909580405382876665098263316686881350368440795386074968932148870745478196824502452528865169483987289488235993077832239879364184176349235139453068335838639242304204777174246568750367859647913741387002356123840487979134559589066602959626147051780241127894580755137292408548693971921916509196241901742675282625984264477895977987255581438221408200113928240602068838730406910253505066230655089305062935366698026081134405969486931438516925620665120549756697499102605435986762838319225758173901004686339208960114219073804814289827429298192050918283632519475094535076024374409531387600092247781381016274453364339195081226369907007310157024425907944880421528220919369913131610098010561775284651813017007682226646186508549892980185908742146617938842422124550342315216301147897987241637281960719067026105794790991878937276576905786982806694078495129657698173966741977069053081468745995697473698918965254593986773007775070426584470447313274269901616178104585878137769729631441986592959003027192684454026026297593347072924512871020230886882477759026490040046059922454698812925887301196078336530813919344573612997905780010238880707339128396469319063959876231022760942475849264563699864035819553345928527519477911185775623883099912501848344239160746062420396467067961581268883704447189261465971199334552637945971137317830243468355817177870543356702754633715818046229754011154303250191819180470581132403915166959659129517772994436360641580536310002958809231051611640509424928771063061038733084702585214124768662061705930588345787044916578806340579312113967964004496027577509510016256074475718459712345516535038877070352083922063848766947083133101695431748546153463807114808485209297827922030719857054356858318168343509662212744406951073519685378652901487110910507059978793079014755700037608653078926125325762732766668844968109880748907088179352917462500183952221127905676680483489637515302845759107942697677239625452439753877836820744583015484954061248771737237592181963094560808785462604224969920212565777614560016406806367133549843775701910279533418117635466695562530380698434196776172368703967303963236424607864721836339566821527641343586232682562488331656317718022090258698400858698886402654850535218191026190784846875498795558432703568570783740936820572779675166534562616812903917755628171973364220062897511651726510212861419502135250830096977570700511951203366643899279392691411796366253456954832797227566191846523875761767744481878358710929044009398538100734319439579021196793012017233627173313057124524792514517557716128679544206794489758270242667728886281059962500138210413553147518831960851110876386794355291002665735393011457212755926950312490532932542157417966894130904179552717852890759883783086183274191553950414113482918611765453798992653362866390676713612676417147199347294606187391983334297269545948926273658516898482102658195724023974555236529951806383717001636911680717555342223799755990959493315895481351432341811440502028583134844507216234237570498842125117153038077710539070576345050029568495239945805471455078836295649837821764291345848689965368296863976994420909175585532081736145802872516483111416839931325303661748315243236567255145875585817230267723200556402383976691568459175610206470926108342788237093616139849176971648167421130509789996065693390309080933647872306737585435772532157798857656627178145756529418225810492638913470169577858837385524487326091007734203995735169973729336754333534284607997999322706062863027408012784397561279611911196388590262431435690764290743000486330878518064449605997215436478490206213272616530644596172909303833793982802374460078722364914691143303969494843277978083947527130558207716292969657530115586464243132556729731450191761815419154956908219104576960853949935425133647728477051869027236127240604138943245518181854615905353354005380498885216128655292698609578072176071577966366563575996467187330118659348397327513844522200228382335311317016762023463030600789556011211977652061486032448246933279616286780607723664756131127110932626386434808806885000858830035766078110899879826700721731108176021583386885462406446243166218076454103109202986802864726181040299106296689294047780781216557154104379090658947352110631409114040641790115218587523358665411307647434412474653775456394789317547517231296518636862507952804587739678312368254649156603528768928496057614870997632727757457385828718244078448877903769423954590233894602873608285038291621079782718766441995994631148873008772823836605780313531940344022609364815956050718237664409416761456215192236621430485196190820582913168451082060706058477889026274853751729019920766343364250640959261972073312851286418623789700745318716840115325503443208657239474100768535425059676173347696874217645751079265027150458263608886806040185063602880515045510170178540336938102728985828634280053115385646392878591922826995565887635728723846234194718707838647833545769785617253389745491263247245287603578942779039232347103690701339288248475693502005308488307806607178480726600048415195205773853524777410468921207932526101410409989303805361326086874180454908976517659082555488037007526388206400129635178571341195392617474734733892826541746731260051903732602237802518080430873339049805547724127541744531422140666396707209178724947355518388488874994340274819407246394271712534940922329411586250349909946208340849453082370284539456516644879662939859673953202896415921229098518893109341928861052729054102596040075084713978678426992058971640851202129668530526661220109825739196794666738312920154145157003732140648313679643064446183988358746802580940932956231472345200751390203426475350197153526138263114907771286563129548643136741881634865200762016207555022502306640819874811249887537781305686876647777599196553691067116118139905473349051600764742010887874383778767941908529965501097697746603404355563119135580642907926252760681655897108810829849092523712987294640123719038202835447501348495138564594629935532246670116735018846465500955525582696585972483836288516952627217723562063053347205072220532908249031295897864933456641495533047637194629227697335379577475438387887138397364583037366398172329730826320231782693613934422095565637376206056054985039432799776182520041681457324921021945157420581290856299626753822038675282473255527235677905647810923727797009938484027605695000499018579517393572352095981858219532712180803688033456525894876095428671128127194472433756001055178610480780981069640250797858506396747134187018826809740548226696299974016779207986863662160705357920949578051442196025027023216583151621860793133012328901306834814017025986607181256641989996631834920441774127228451591782523710626592613330486043858623347667378503635702555021490193550166912905988687392384287553341726872380530403391897549262234620146206635406369104536781027245073676198868545712885050674385342065865254412411456954215024198572064592168164578380970796581845096719432258254402343924115748328797621314129928671558450884273393899899733389662919183396021549258485786591891579440179316650266253588532753745589922108853996314291413712994758717613689663365020172321639085940234038286521550289890161804650433483267816018309202835382136717477392842536850265407256069078880783744957549921131136216472026608169679606744898358747254003160670046259053713083765094242715361618460253727943920193628205079910253058484103019142971589271000600146657331980501450065009425866128075610458744129333288160982046587646512971827977383402176304901818832819813812364397416134362174292449799369104849654608918690220418477129483488568421313278236857473703701531902350049162794806206313778780778087650922571615761523434084833760998224979987343661770684715999066413087212758565527876313270465705947132000342142740862640719018061576295711320903509373304139151722053827240540853256265822368785246318052851415582163759108045376310370733886163472099776915892163002068715433328817597441872187880965813639150001504049710044330084271037673755504430639098943678405674502183046555767074922568229611523507209204437471947703199765675222097144874509417563421126943494692255603096150043568194917450168374797428256943652035653159155141527166542499744377368988322156754433550824978034196561165943796056208447705538315225265242534796449408578339482426126627876111232738447978141978942893841933273914653772953334231776911794329535731550922019991447846929633504642215205282410818284757050787058406849815501998267361806758656649247417044484187001058216030180304147602989814321843320764948239540621763639885988976392569982641084481731930382794360386993210769031780886329251755361710972599044283044545931080327547601792304596561509611526542389560853195099542106393209874582751103843351767358630681554309467014763733277895228761017064934307117918031601051741976899486693192297142739468708224937449389927298413985322025293858163848924492058706548708945828054897372774321158661385338137304277060356993613842878998760213101690050296119031444120324077042009850357266187261587755141620566976052341037717671366022034649106023955640005005938730815329427196727394920487548558598120676963707758360741089740848308549086030780412179184578588229697524081706285755605029265162636248270490644013899565369841593444343762385482542909535880624988728880548452697343172693129503644494911183593203248615620567784990077311329826461349512454503973684325383483531474947911674048019001649179210329315366706192766972458131588981689570584450859561667143721407722727496605540956218574874286335792776847630177080137643694801970928037558847432556398636872419908135659806509981369865795731925966397520424251799015162166333243536997066517008604967271340343218802301073106371856034278821852464576289396291280470445215457859082352608184244561282671260425540847951964610882184293375377498831231524086617996469210624371182425544308937611948271087500522886561263651555820365503551326232248748807257295788209231393172597185669102352254318232384561407563237245382417477225283100495814016019688966233426417088556219443895809500815279674286087612817370560582623892009467641952054283107568939410521110816753407043941394150176232258945913954916049173330627917084764212312552014700061494584876390503049643287630122098043298915463588876770868637320891451677962556355700589379555869188795863825369645511711939439235914624045206218001231441259097174046277511813869545699299838287664340003325281188300021563306848633851348742957701672869637625725661261104632148386165430121274877133678423447390492537019353700350440499497818539723038621102858619970499561986490313123280679176472212714591389551660238678299149745164508586586915676794723370586367324696561662682803335696791620310430639892930984977351746810399944869775943608037722211542459751881963664625618945358979251539400674214444427384405307308958880415929232834029578100644413970915000333230900513157665812596735571337653595683440938164353651506103632829855480874288425090843399799191039743769154085594683389787121212765416371952939484457029160521942387365647624911358975528810558548260450051240479019303058265490357570464818791126371825700766092126545795524489858282956305174722522493535006777240725636890737930156332026491951080457109974002013265879955479284081209195679069510513579638073650549385490069691732967045845227449029917535196043030880883355731566029156731683754487416976829667683887456632147291861668284694499032746098995014654027556527538729219121683859624375384151658510246220501192967521882885154278666334262965773248160646864922673379738430044177286504909796774011755774328002733651944871239644625708097997077789953641507424247204229747715863199798898379692615616972071152415549921430653822599314115070727946558111889033048266026993065613862350631334554135838301205409796527206682199981943157512971999413567586375949031278742079128239147429218636920864529670508767376384244711186229404475405065678015839786881712149109165854024939831597152321811670676004701755309598250853747768516103004003991417474061734132845057291382547561894939691244005683799715142639542832727671066364540811425712445392403395582796870654912306829958718235790796970945592434896196274797648737979379462660195574632411690553328389485977895052768257011993538326861691969458881841098619481039527784891733299166158130576535401885593848544256313004070925541838003699514213947909690766232875976877977773296904987524264285583684403031096855208957533835177386515182904636280160580849736703301715676545285732464438452877078588020285801869733253526846842574692150963065852059588226706040840227447287535105545426627904927677678683136497042408672481246997280631882607431219671354188549389362126316799322424339307699703382090456127804905234257123035713350489808506014020528955595836878977700346793898917251637076338101229118828317312652432577965212739682803306383101349321324043657313559739327341451496870205954751930403612931979838934073360763928585690573183586316244367528910014392928840453970253710883159089229388699946643537987294477454299342719284808608913301999807486569197178172416109364117674757143813098818320377529002068003249228727996510222667781386123258944560468881697186785092125338713178305616215070965675697197940233789745214458281023814919449091357208514891653897741481309613482473393765798531672357634227409493081888897529238348791595982792795078517690790860043942955413789561504762965921033902714546849622424126432330049654410152383233181577878026008734158850738518729687176966351109609640297970989193110182209200007767683879386285378145986836606345912698596601392133671904259891674799044865475172415893582204003948508593536214007136517538780861222243664459002683652684841037321263817009593941070355037610527807203694013023894214412675101789677951839109662100943924273929180120646830597574541433487895482893839808876112365211911563507883134984529261238831023019828208894464960385491688697441314625986303367075073930499957666353901396649820636344315124258826534384513688183698137981835671722470269071221985261127057213024344582802535963149891805263574614581022101782467926201080166127170492733554767509518002213919579104435157162822492902278069643868733245591198786447812534935852058463931654729640218017806344738960502278408960143784146842987583888912022169120112820199223556145543663733014245967074188830859776873363183660329149549130550861216612158629989869311449090192141456563360328040259365184207396343061917921305477160588660529553155040774807123778969772648093325963904163549325442359903027345581129453982408980326363584453137472969732506540112286503592214433093063959941846068432483788397720924307585849307908643815391805392526073375178889855450595732778879106625753287059578796968063570109250694033271038770347528245936777408552504552442776619258018601379873702188597596882975421886381303224870935568472294354459338335451653351025172248750344703723479155745679821689543408987295578691716501503307467140147693127725169969619682805722716219644020341700748637809125595417665229711019139488548175197822230575147817917519175952657056595401230532099304383184995231803407437110820887780480123996201272849302689760383971427912962739191472898525882514992761416261973527344475577548483840501421980536590492217363240450804554889234280587588223317216601354901713823040226628057657236995424026134906224234535623054969134368040812091280061079750750896360842180052316518497360920872864479058966267829648673683444674991374168852403334685535791473445780405129031891044133167224116016913843064989718896057099572880583493309242238829622094055800905058602453568818113349602467705161381697703201791547413010203776703226761976240977417603545196851992298830627257880270430281062657315880400236304544437853691313745624898028735947358796090182624019175431496216234803090493010627569760487826141045185490631916874072198001784756952999793105092019843535704919243110025663215227584756066516612735754377723330484975882742969876208766077998670386019100680625496302649383990005734750091033273911576344107958649746019389459118476265340092467666317270185427510430584147277720539525028016193770132647337931901290984120924515905642230566512727323164023563389541128686688293919188778967591980672419083352026889669021608948649699839783224296264571193716873622360590801136278904975440942969560543511148516674276735913420607313786648682483709063844398025714345764538010203356526881168624081726464482985286387523741977374276135552205428199793148774454885429562147204658411510626496280855280316677452308855669757922099658259897502596925417047932720508619245575405659547770673568568099628428904539490000846828144515594882637384078125891593196123316026335481123494087442084816384984806576374986758672069412987045456782904055189558627767932819502909084329666238724248042076905032786046140738548769656915869742639445476174678037142441121905352785273076421988411930894457593576593728381880418742706824448798122776505855464042742835382933413996929292454032784973996353142887404316231892652799971915446900152551112634772151293256510809992506103201964108402780047831705138473717960637491373929754712327140308699343585100302613503665634215160044840407978062669073882265625485135057418438877040448838610354357405153410567400048950552871860556037561474872172532189410178009854286183353386346329093022973270460100447125563935793273976118906196027204231145214674570886828066897263434365000076250822580844603916962665400936267276703100930248616308761511371826817404706664400966581090187531271993245442518294066446435061204381932081297749651231948870525175296810336646263669227366759369992795042158591651998810521594187029019032899760678430631690104983372862577799257042684103637586722861331569492960205225841244676558082930903550393909085577180394258246594393896091727675121116148162838105145938300378563460630068413727573370421323856550024245943647092714142764806490626359749627750990317186777682847401162872865796209958706905887918865047127913808841221120431710174184735677294508483365725643018186826731502422418176969219965922290234306387309073698631649289315596544790010944547397019294980878043108250349820490748192893143171528561979219584043026943511359347673316565145502319308452456089450745448952992644653741990344098687541555820534456657458812985187057300437996518913254351841971382580163040228841156764885602436255117006290546236046734378835409453238662532057990369248938670291510082429793424821530155315729253914610690470094154672070309558339661614575158202462317406249700242929248861074746348326632338260137999425505442009172997612382824379846581027025952306707733172438402475455051397246018465263604166009051942984126064316517044730466410948292941413976367755293753724097154571156248208449755513932209763724220669175222924038949706696542977732098365469527833463150040261671263734797902130491351018272796459257751017021254993829392663845918535912408338201825763578958606039899446500049533781227507822772872709496274033315597463156458469844612021683882713304963200853100822629908515087007257666761935237325557496918062723056306541838182502849155310258971966720025067396467447637930673607564657037007727090304960544494251413074361803452965677329156441941486214805230456210293888395301110740234207120247450470450960071127642812021071385085120385790293743636244744897463654966817633108067023983783283597898932289187256134155068537370345259104535612417004226819726370167808280946425134752377011299027442042460547479888581828310638348693417070949146856555116571707560647145697171261036174453145559390756576298191683706044715047606461387180970757305548286109714127645381296558775110749613917645121390324420535425490517020983343769661200199930213755390357178107280877697924891394106010067649505871137701399392269042651975351032596984235251518181307107141406694574383500865988683070884834712315712640392546452183443612307137918060981558684762366661313252996840527012491742223268126022085404713250310842673530985494886131028354476498548291507467542718757234699959901022508672090993558346105796550279186337510974181917584146385209818988984444318784059308616890224098826704743802819174873531516613944405696360332913780819185582385553403787785162186295158606432487170096080255171434931986369369241702182501886713646547591361489715541527558015734820285080187248717531869919439601030840496190023847238539465373192827968501673554055843333354641922639062343483309597397876394775243456219946853648133810234045342467785955117760466371613151843178399380105299222518862869951052885142239371866400540704261521881160969629161621417206046164458829291811216218561754968274197030574522445986592410153504492565691658578572142278585004873097135787010140409505393575101090558856273940451703399786470174609490793345755764616942156927624920244440198645314164553545428418782479698550298491819329016290801549439053478187053585689042904322190670462008145047982876865744135317737758245104869778910144999450153424717949627370572524310215268506502755758544037231203681274574720476674424784929564101418565115821645847169403229503133614110686320723932694435901300654229124791609069185280867094903546061155986744415386118156632529569138933055320217111059504631634453100780686050375121853123932544682261836604288465204158801580845233447638794290446155360960991993119453052023472899954528041415058491409219317234158796684394257152619925374195796149143933515683752697333325181723108820769731474848932457056983817019832240966914588016861918113941280686620610339304041059459652704084178448005508158837556200338034649899402151960698320024721331710661418575586064698422638423902958599481706994377511673907042983282708863142429131407946442302026266210969286754581867366153041890795248526468468362146799106604893181706239822518406912805092170402678120514921397050864481402293235064051651545410289471296928724441987283435272910823084248553321862196426993653455835706367517792593406197919403456716465857308605975554047035467234744205403923135802149595678816273716520431797061084647812803329081123331788130903928400004085081961162209980693577490767179427163800676147554124741371824164804566909988010714056641183242973995015566094762810458486046578192052685860358467723267208591771463616122264228331508205262736558622717724252279877250532120830124739734414415435124841717474235226861420844866468656855425330134412210268303552437551568665458677965093894025213669260662343500131949745631443797479931154198562442386018528264236415474893740937235781280566905937195409279610840586746494907322596550755155917881293255052205991242935533435553826193845518152987143377520140749433634501572718423452876284791188028077684279107211322731892399468363973968016614460689843942119657467107892231564503162855292562056757158901979526042783687987402258319936745714398435232260251475494100752540227265491311485313487622651231450884119837270639340709663376696487560802413738468664133225288125506216784808079879249480411575828152410164033407697705068698338669335302876289258794079755254514166240031472977214284276528366521625018517893420941569568349522411945738438604604829361575515933154645228980551687894856015548304999700828183708287051369595563626493304405536695544153135958298774654966127646721673099287829785441841561274383499229581836021743424045500694121034939457489620844315021680837127343889620645163773176976736296828847963257600447667360446683209394434049735967934811252304347361425953850055942284598124688055124848327272522443810033964072644030498914791354957451412795004266143269821150746593968206697995693454759817056174591172812461476617844618410440205143150926904604904135425232141676828879506588313873481262886607946495603963381336737099530226794878193824012278481082042848084615634940253266044231296226817274580966581911966492322115121786897994652745437638751916858558753295249106277422256470964170067239249372222839015133801051880748277136552958462516254602658635334662802474472940086582027183828488333900770714444206057727117079653281510447182062134705653956971476332305133460139445811989377630668159297782557064519873613390315847278257223937800543546298646462364529733807016413969789353749077993418287987453493507475752810630771945054717961400332142591681447416037688029174518953403479466736294628777002635853942834947157184142723216432687996844272674335689017101720838622818177791576395052903910620977884496485498314110811997590346085797764370890409636349423415641256122535153810902148440978051518046958574188247113783277317135794317317737301779198688858708159369546498187666290943944243068233550102631584550573458749185894495234770012582568984579939980476792639882077169189005989010618177247286006008593544898194202241042128826663491043659213551268405955798843919789739913755856059084657452424379134445251045831382324260626644923494642597955817080797086712837592714828719790232853303308977039457594231494125346286427809589698581977584301064095341910185118703182961349394055048260595605539314655859433872472386176394575862889557724363396244060377552501376256468501951596004251275114658313618209635655184045269058228043231831749078400295752340096235153721341666137922230027215095766135008744924867150586604505232161020106763261960789483540594488823098107060843055908813533312633874713734555258271205870773468379955684286855083478282821724068416033870796442062396832178487561709677912878582046565175624685671685121110225191266592187749963143383652031937966097776913883222258137429665439561427468574753897331334629181699490017387895560344551126828698191327395581355739398356045742773356036555267574669115296174912795685872054651063567287137741517639223229031305024004282017571572990181639557501850087888979174750271743569713100212260802669573672745126104293267379131677994113932033362032641284974304831766929510315217055785141541031224880725255362110416076990435376833131359389245019560003371735126817910536432733766471804977587439414832290799429133999974450933743445777076419198490846745534565036978912845703611966034696014825319834649327004045731874428719952744856911032947928136305584646912027192891352640349118954963753796355424270123341236360021487167642973397212948375259052762384044932247636337838639149929670662160382636515739392836244065073458625978505747999434134442286482066110078483319527669111448525446814229675400306574657721305180214238912387728572238891970912605536241875667333078109613372035718366802138016561368278238553413886903241022663387725551106360425811857796530847984270526190655922452995416762419224502027502864474824480239103738921104584237273418959109749473453984331515737196622598738403328060764613341587280999908658806885105356453264491781864183286251668130269749184751447897970622704945996345731441778409321818740124728229666825744532021263119879876042737596852955038938371794314690375356050619416008382122241270405878519281119806420610459451631125770860202266668915139672149733683275448199410798462658008025293804621705914488210124551586291749963433693999791472891861398156368584173084423523524008379367209158919539835924575000238711131346433650509283740570934113162457218154198061150914189881749723279564582441580460626965884536882502854121612171774671973356973947988637497285319234627901688182127945086807073200605579760183460651358480763729499416496463573319506938835233037428789052155195021248624849543565901197082520520339814873428562210590710131257761168073216264843287527026209835900635821698851399491067631185237280534050727637764039783876925074606403006806732224850394844897440178396040465160977362843016338495450158353683856888993340886720241159088439856820579227511028602192737364678696320650223368586511118511809848144509213734219627252336629631185599157782705659424467564449285292311527072122580881167383948428326809867875503096622243188125860026545021080966464173083800234833166065596366478072121030769117492606520981383228569773407173242798083656973383450654061578088671442222071708576188595837266281183595051491597596387338315102572339065731467455502417171045874749694771355566894740833124607614685273221506683128073189044787159755710384896989148230707007210183429686485591801989449496334297491833685285442019025984739684449927473992610649320491004485156449958663362776139630121651026609357286780233443348105758463429063566881840367907830924654064034851669739071289734612208968112732771017365244645553632225838054609908440300616079428630496781245470448912355430886317002776166054620810644461454163423712110395618718054231044116569048615521817699453651812652437113136699040825959133764580599360455837153967455873041631872993368896562066526872438788204774463024734805141130664014843549118505101646633618936620630308753658372125434776889305581963458057853649205824295836344026364987126890217546953625113360537614759009058229473412371697743680812794823378701570209124630563542261257143972243543981043656641039517923545352361165720828751055750319918023664045462777292393005609435177863915466025234266199360593364663346079174491048779745573990319663280459605754002283781425218530797741918705627000165443023811583557821622637494870188696829620683692639618376804869071822669840023511121042147103760954063309066606753179659723281511776356792323989192490289531079926043216715580923334837019521657098889115657324821000878298931323542215815744691912057958248554201508255599034995548678162395123757349103301158166705509864925483093611506579378679481351401299362200535144562523422967589111610465238151786991296975201751319444975914482605984199323457281919054581657834661631623608966192237237704867121472831058583150318848844090391595726870895394977010913229035577931662404385596026914769228374080622946301499311175398657490354860001089952221673697397866657440300711996844033216754845756288956345476635791388714758286173367330251684957295433184900948646244560824409454580601046814319120451130775895200410935728821246600756950510207399936785869670955998595004025138282703029338163853659112985533499660971273660770995083096482594492627922228701486338665240593855878146824697745909010091685158814465900822488348545234005764424784800417491408584399697918341402730311232084441470254566447761685290956184201012721659728185367208984046761849025307090018273755328495342624520675036695946847279944042506323973311813646878922152061590790619164343000705390550350243358432994377304837734519414739060228380401595058812424505501436550149881456502382916653952797825951834469572574275119188346327897560653051663436823323446223228623080826887384402724589216774153720480061739101865240336448584861589568434459901446402141434159025714799797119166965834567778428994318843611774153931881715509353432440884023398794441924242287935625167748907533493804229656483799522392998790526573182636729616430636640351880309344716373657869285973776120177773359541597886578164900502029765523976685554552839490460509055164851139621151118763037830507993844939319712130828203364730434793516066243926878020559271312301974657675134929345596501104832415142193565429931437009426855231954617704786062415962813437925754063393111473916857006615326324564552861068800473278944494984683507496716751345321111408782679469519614934838747023967138670810186524952373840034864446877378471841289479466184504844731178548705790429917337336161158363595555625490780617251076002514368202727391880653259421097792052698614549787950266088404112130692874851499544370955859326891450821252072100175798391626645956288363154430487143491987282764591745547910174501451106192616425826552946351949539142141236365115885749195999414788713750157086706893992575214095815036012046808458155549618082250343908278462031447182930725156689781749253270857643657516800158236825689195686750934042973092182585254872896978704593116519847914331373673374493664783297071839849878977531553508713744267742300810607867871067164038374018743293959380483380710770745939965550825194244787219320244433317955751358260690150480327476177185772376757072420958647663599059401986633824691584351121091183284273359122256833889363363898090014076924960736890090128995553560147411064965125997859068576079938579075521377235971310488794251035357581367532915909820279223835002413584991348436329619800436174791415344354704306892043579871606260522369128797009992685563678614062264855323907873264475426571780913819414195594800713978963754689478233788362188379355694011634154440838831867507146937496214724742303534019189266752247919369114930042435642844218549124779516183055901548076386021146185541647171976145789384254833532828519130636869523967302033615382332243245862453562295612603610001359358462769845161373900689272643891426626691069565300318961769381194100480225784987014674342635729954192896421109144342149607300156673904738502506582114578412745370694593826179427370404073497293076791787529238817013663296390751419154640950005102215674781446427372438662697934908769063438349648196420883684104860117763958458133448798763737576677829938034921365976398393414194490994439620780009233886691676447971211964221359559123354160097554117856075678330680573256173581841618287728331973316766753491320513146367113780200018448676993810684281242183815189215509912656516223386587616031835763142724273632447800086896777197270841469719638531283806604771578779952691186448313026008637170539131386097074878822437340369420361163332523118958270516151567909125012369054835728634394502392556275961375716739251148824822254877901137576032442512606805613759266037148745506000324557956332247497895461797896818222510197536005905204873314468445182795722743732732937360277644649898678569653027331701974644084627666161954910305476274236811501632060041346405523040369184263187446425716877260002422355364122187693474021404603610321093738173863526756756769508014997105829064982797230334860717025368633176091083432931222071397612188075554099599835150402591495795348852837781896510883347949144562223680134337082319809698912825573412917321901706314547596555893062849388126187386439463054787054480430295225117151843726375058983491607791240928016735861451792343732995927076434189650640356966500155549183983762468710973308272655303944946588122928417969222156323455533537708748499816823106907574072207634150278939699100747588083681100859243838993207985883337718024291214906839613073367499392420740086789153160244170878509263594675973761351592655775820066179049872954863273007930646592115014707766940710034494372151757120092667820418846661084587477335348886035754439320871596436411806513475087003338040634570568367193931053758370261600235016569450965453031232983295282423004354289022254679381020894825905453625386519720331281605459531002522069107185205932684366396754504771086363929295960614151639336918770231965222193797542543136607340965921595662123213812004961615156441282798286277830263224866438173637112747223528753945093169467575657425769100878831181861141014710999263051562541309620871704859381324981870721517661865614825129196589962641324543985001655977732054751953711470861742877416453051835745065372451807860765138687769388144019739918243230490981576690681978493505457794435081720834977974161784704973340738310838091130305419364814658339408144303452790420341042141780508400157657434531560815330449765256756886237127036467991967163282808731063241865325814923252970383237153048053144397309747875775512634852919970469951050753594780680468279476484175146400833963853803373148213333666507361424677373161244384555438589360571261823175498464121269135161982622523910290726117448740380101351262558220933346455824456305109747988849388769312792328881408562924962391834570926772594971032070945582112156041443057122261279027032351194062356804008659723684669618751526690195818647984792079699436052746767568367368330164075654784874362087968421556867367119309687496591543209687041570932180148955506942775783786231290898394783852784228989438407790955588784270999693572569761781024658535872009156987384984373458754707907484163310856584314898371053752273045338600850925640241776551846740131539463141605776733040972649978168102121676024764654533396951456269298001380004520707591295404558415920978977373548455155975868641351716234255909706898858789060364014001543192546501608778816874377357294331795354684523520112623705127076653808593659690527398135943835825295198652735091250971840927764754627518576333991828800975733636917707423588756505207221748431239684788389501442308142388615598210225713185647249174095285101471468499184042064188106220612881029851613206524737780266338248189941286849262835752529127105180339851020372116464116612036591393028631460413592532434648494741216615063080175212726632462454639872889773556562244930173963795572953758766013871788052618691172373397762505241453458430802934251434328246704343503294205177393392631976594667621377454770638161779169904094274285426174812949084531670816875838942136657221650857434570037878311049987118756983546056813962681593250975264680084484209550337698720914535670442836947214174288203225871568673793889700679385027995749719088189731179335941136421988996741454211374669376503673374067458078288760620045657785400869598174953269420726432514485537448786626525121486910305022628733468057065758229386007815930830931626303839706360214194328371962020757901798976278990094216118010777363502430633564182075809226987065403760881592703974707647850806767131965947950767263072490739954047090522798953401639298661009930510798650661491957659240570256697138778975428892491532453108749298522134876347780998485066363933131173510585320397261816033743564249022439602076128154976295293592563492332612663236747823672107722001295352254950723447082489357808025210668503628485837613760186591158864882375646699248665847168428902858625935910058491701582712684824052035666246093810763037407120194518308204405512609408954208497178063959592891431058758234668408210480509437619188257932252237907733530659905385378562235268704778341944513270456617688732251753912096622974273301107232549792208932285039044013209880084991481826496268092044266759489416484757098241486219856050134699788268790952362803667437318981061027025560096795204352235795926761721479451735563307169843130806682047290514028586622075533118509018946260473596361715022832791104448670054459318874447324402162117776272627587046486532403505387455112319870152547010998259517185104346443396115834607212431893306935182527584849263956705296769449490255151214189207100291099123718250522214815493488612769075420242349912983429032353455233749437996059834491416153229932513676240700302638738331268437174223979621158976044774515954457781499246212222008991287813330159119346258827374491750218301466146914403276598081267178183893368760485099966706055523357616010577083558504587400961267683698089685876798808784456378701172232007896454025424035226216849661491914028915869685664637764589082551341047659898855924634631034399586740783807546407632428492955180225300246383518613237646788855352880300898632983311131809491358985629308223677090100924551256097433399578440823839284762577058810846758956212877523405402344931796541491597522206904802568812506662337998025103352593815288723181288764488629289288688376197147236927974637632192077215560730792961710734113388937109787165787419309176959691223031007043651103535751835144195345249266631510376881124941189170858144777236255762599992978901413896178752765549534209523883211200542694147289707720869470021911376007238313663880605409380281404924728581157112327379497948315259522427829561172331608006642099341863807842562998095811870256463272833934710411093487996848463883945940316019815815623929819283168799758110144516565091327690341036650233645001964168918716076511993544605378529575880616530307531435548691615693134766095931344305770343770503956540461615100802496232885440312777450233844498083200072509256980946681057682998933461641907881621358396075943376657811994331324082144783434755129566743514140158048764403926985708454002798685845793112482019113184140320556826307837792379959754906902672856583675126578067880525806770178109964769783412517892854894102226921193823990645866870798827993854521374940411951529986937200451191040788987131448112354435860487891918633496398241212606660967196823876926887123707899722033602414714928453673008356185659348897919941259330363405569659215393363960807360035447100528383019195638760532305099091957442349784187509539049351974304601935502376802052172759086671322446185469960013866011801895015278354980830895585088502925192590697371694574892849049397179776787890654358528496750085993519095526073848145621468866011132542143687208542050646713604922283885625977839183530114037802127240927275595093720152430685179738428801838455413083454808508932820244124864499954380342579029740336992387166835270545263189958261618258475836821062388030473079396166371736632376632290331622296343486950279270422360384097398522755721268360895773053321896158105934621568002483557586714188486574019165439957855117811615360233798631163876991845365623480229834846824833693283077331194920166853977380093908588435625895195356876662945548004772344700159978543761265503536867717410119232018524814407597847750249302359814106037293482434687061767856965905703924083957565292088616865337597517548643254184407233611663289477966400133179350764575397942120322193807083763851160371938010430418252991733302897408231742133353837867628730439353601650728038526316184255180421533156263212812403152820156277820513134931744836284525676200679761590763710598571127952435110236361498909435109686816635078723295494518264938788168340180406746484567064342468144542938760201175012515456230666237985998006212432934538455690022873904632106563249666757993942368734173654701646925569686999127464897898580562856306114995394337454106136888662600778980966069101023663057363229714004982671427839102376071702328798022224516914376817900248174186497453615259895607150891787220776615505613773346997280695166244431072921061737536967393112686975598618941481558970782486102886993953817411713422440262586753006561813741757424410401208328938949243264048386416340672865395845544423679485733691610193305124177686675874082143900062748030948643669331080502742994988330753334927093449637573421860827086042612285877956496959153739227699534035708978820567003059995047258816690057196219363792916523037811826813276595060060717942965603056666080552665299733752222664240855072084707495272195403731330632866351746347652331299160692791019062303068375821616755068032840444962829089249311196754713668672348525330589584620475497290726116020427520163642643104869193824118308031027794126468714944328433890171964866773375174152621880755510575262214458521893395035293095317798325523284135830582589265624029937688222493073722338478000784247875226444784570007236052415056629985885126643966873122552547097220781033060965115179144939458194612230495971992329339632400795026345948931621377258937701148186439482370004276336134954617596020066048078575919607752905047536320554815320155921348068755346873545002686399237675150347644094402404414411678260872548213174944817899635279108235657546870556737730645244710677846301001520654556113468282307962661893970395869816164880533626328401337581064535700106485854471075093748054661358616941410887292833728059516813089978295952054190156003407562690841496267153201489836743864633902220622773289293964865027778995840003475902599484953456715032962208218420115846861028656830997886334704970088976554518356312174229807920470463584646347089188623936027689744071087700339174167195915750600803548381973448496397018104385189399238580997945094222976958202582906841875689504036410543331828251407472898474790366453751978957142418643688018540162514637888569617657849312283657811084022408474437379131069511222651463933506353944601273153002346083255491712919293671380683130413834079584790557865893678593750372321110421636790356323674055101030625010706129351660214236488406032737966794779404544538065303055749871775924932897010326967756626993699316617892201928055675179203183362201214232879669273997735749972793854902778261578805615289092422182578650552600441806294515285454048651014554304514979382497031121056420011775911834744779320267795143446762838037846618584611616399240580939590846122594276555320830557720370925201666567733978933018686434025630428296955541320842267599399148334600047142164434884419533835073759609473312730985875199151717389938141280264856460191251286705858444218740158128866460145094867769767916556192232534156904104033032650781979904328475817887928797931154015051235507469405862298425840468036076123830223102183084286010025664422781125469087276903127887833773173307114013431042351897567187889607578483525519147667976669499272526603407645865534741499409304767951379059736477890368788908471241013443248105196760689253851142770696421015925965222037064758831112109419169968595634187898316502333006166955394231239009858489023771839701824258972707631338072269478338181033873353216983117856478873687230813405624890880259846008152867291306688095852256212963605834928994628394102079242764075068755326546172255227783030435680085109646119154995626148008661221794148879043194933692502206015967890614601659120250727711360383782524040121371699640598063226641267243858586236307730095796306375700183309351265180231210439622450589444383676290274492897683153345725332045153703373261580482198183243172244693690708882712414726183970203204489036149626282049430268531249918166690055855900242010897603055180568090105319012284231881142128731749434532921764057027816544667899791408819012594485905134343052131788256564878666935102925644242586393418380881302026323446643432665318645845729735144006653022327925225969310663578656414337876504617922270738101718691047791850097239724534235920032167155509849516476638076304134037595683607177193086818239598902764513791487117056069110128530603422924835737166759856095650705823581285783237471900362694884712186780287938342247029117289417340289906897930747819294296356379906030361681710180000159684294321524456269755742963953531934327341734243960143593444111230778498141622438479421329742952537134809818847113644078785725042424617813719074021444386974578748567427769614085889556615155565946736822082138169218523314049003602229326208872381301722387524532932582900268943701291804437581983063627689228874538557387999713503586796377679453201285343218491521820406712620920028557505757266571286579960048453569590833558636952095319316960398207909701143610570031040745429434516335135348668615812903772262778509967216153442032731069619540361240117271541536402203717094663311684232677114671572505888788861860809065794550166336333925532839638370432117090663675208265182539466998681721923454302442764666274409543598657150872918303724194877282436924689962640026292004990197325830453817799779144107498282025760359962601912038909868517729754479219167607091569314620388254776137099207642227576686083439837887018298435468690064019597279576183631857072922066258231520574743171233607525637095176397158298203584742930619959197983270660981296133430709383259424569861653558438523322563515703321977966653020933230986247342201867934898482623107655615923550406109208047130354960991657739944431328291851400999413125594478884944747217909043272829011715474328161596316563461441324592582107610980266723727118163797233234500007626112208344875150284753325821222060070018703931116012556254569610752833799875896938425514576644545646160638881078756723539211462164174195913122624041771307684184042464700955509205381909981997996807781908709595172405620601855103266936568508417791737687558419654378491262148664061008174517478506004457075032499307902751332051217375843944859915147609696544113205578974108484788623924370895642025470352157665897216420733559027980744500744244960790145340125174519763019421402156985083408470264446901423814380020346024737467453843552278936313904739210500437928439205183639018601466473819386635373265228456273521505833181049629996314035995670460136298390483189024463060040044428989578174654950715805828803830017330282321749402747697195371602349794210745505969389013908005458552449727508787253537395912682250799422116270751871503863670638280766435899857509388470695246381096647031082632130526809724593628915776663605292636519576890820469907014060321802790390807504705959678110935865932835424298525243181736169292579603499373436573968165364181773853311267504478453681339490589074554468101570051579396562306157987603843185502068094844578889008081354054037714740682947919865794636061510059781993237153449922998728712134967275665337959319814350563430364361022290474631003779735465294837212808409548382630030301105943061770847752732199837519340753236591425648330282804985976734894582830391735426097884869653975670006417682768656875092355739870400923696376976140913483652501247030222909580811042316486707563833454359789691663719998587068349359045936992578574089962508626893407238326278273653817028670314867364395076809920362053221476306899156477468564332910870027411504819620951334729959771241155954383854973566204948426802519795042608958406368649417476470422744512131610110817852841225559781424513140917799565856758550693900096956384824065402064136503340236928330789254945390533052360763214026798861407434030689441752333424468443060662666574174794845866223376507722884076799446837067002598770705308907251535323366994875231524051506266638718400472577350890452908136402884677992878316634380687351796937211152467362778167058209576551177484314789028872105935864052212035028310449325875784732251889229255214097718080147175912922820728650759320159349858150545956455110513607517204009238395895527006058826455467313980942234901451724982655255908253830405307985344091251737754876316418719590205152220964597145016136099098397905193179407839909833451839047658651060838649825453632402583796824461546536798619995001584104371899968963305725221620680401904573340807954945693000851894630820174183679722247986117127098350330043716119176864244281381767048170774696159446323875251213509181174520122483783923978003215993529302121672306227599945142324144920092272458631595451761952383476306298428685394770586990898610087012360354788416091544446175311867206475348321156279001129071970732402535506526833573276570152213421099275273994470859578698745818185513533771737810362906616631542629755439469089574165538377831657614086754386936096317788220217937203255452396261135016004306037273227718730144913340928744560935728906657896237003378330739906540249886018296679183949168385510935931394086814053087768592229825433673746667879996084515115786064953600715515899756161117436820292139609133865841632697111617687366586106800173574119364447154820691022666608724270128065098126647245590955736860454110368596940087681153776413141465070155591867244351898789535738008542654308861030207687979453863641772890022035275366240547476426635640498808787086338265752653147956524817891293818682861326106262452423405045068397727650991503587745385178939998122953197327962849083339414591110668403077711386840726380373685639664078002974488069441081079766948883995633742488877346488361910423801389965311366094895129325097309133284343331943629736690412445496532400971684700905621214028949996965988306436413778058473363375439045441225659509627427262251959017586080113991242211106382529091366174655801217145610069344791575497776360342952651198373653052126152325719486478242646210482062831954711250765662388242654125304085632206036429100832345359928102320216416952651850680777562277186171967314007351720828098434436238732022943087186690983691165129481670438870940622177375462867527077293955187210227949584523012586132671296062776576494878558633352184030868656917717830785112404243053595887598307584811275497141660312151781466640456635305771726615916364450795660089423953935194070117671060342579483322761488653152714670190183032907886505490034692137273795286097371876928352703953897688147720177513877453651908820390052042233048975088493061534814559636450612230171419713018988579703484065236116545025697852863943265061100302273314302072515678177429861389901415821029086494985391383097626751451775592188698657279569533659240531681442205739615089266475779441976785117760925513014099844363685773000706625996109590820674797054149529943101934048809582813398512383200916948411126983129249564823607683675170460297649387519648825144017661214522610187979808117683665232874400599228963806300442446497951404347898464004193610722301206344831270192905983603776641581418503075715794861349175084315193159756446916337036887307622162634435768227534044548133650771570007946493854713481426350276112885294463908697059802914625989556565071880134860240144823066063343599590068245671545123786234789627519836670734827046122239905410235969317059407110363671695472056509189468094493556113134150892015232246627620501726080106809035106907082520689751686188913985146336392810817348449003315861549566990607009600123921344831391861463491414226726260604535402825556174064909321450273710952124330252421140333703552254731082354656853521418540182334181249524156435059591357711680417447987052120424860163884643838450813346804669103825336647717522775632857069838924402285478159761969703219457658116653028194475636031744795185716816170694403156548029616149284995963035590310599637686281564929039929227489980991446543292764205919764718137725100125642575990337410999735840924177051037681302981288596083929237118840676873900981779082880299672116788004847494338359009740901709310315293381816826682127865308166819728940455778186035529597214731598572455148588766420946556166945562555899738638150030677131971718521782695445229941078426775598127901235493315576331013058145448151713430856996576810024567737174138863151168150162501812704877430704922480700149806250992933271114023616669783353487205621651245274446214337928323730502551909981380288894780552775806263921807615822546042134620395920004371195210960171208411203480454294039045235527443530945191041210275223460350855450709497885046012416603191655723599026957701799680703848473085028002007461864119559458768917287864889649241797779178673436665771708595703833490106261415450919730297743077386328158478477841460290414999675160512209226759302995395007037383669606885763721713356412522750266176288487707432552895813607868918794340663809417179927078705686674193706075769431972171551092538181772906586545159616990871457224201389919709825788403688276802052329168227172455269020397507087878474823258031539268837852282062010052046966224894001457013771922084670738729735090699297214275852168326522654528584664402911246139507174056880739952843461364077163754519417528309944359209339363428196125973272818656247853950311125675160299130629332809107943130254047636870836458190694163295273930674903824574192211616924114686923775296278672399016886725408208742261180485711204616511296741714884680998335263697364870689847453089441644712820399660341666482275394829502173610734933859825709598090873047223293373775782921465248594745585647920590150465182305942832314529825678942226158903172455931117214619335232671599907435612936674101866492049245707600576594282014477804475419331629575839536562661133043110222650610833190532355655705714060305731986300959933704350984659129625650799291857833878044281647097579127916374928165575577200534336584529184591163334174558314786571204883300379107078741585580877265894521866773077232316066205063790712416667931033383649182608688888514055998580534946385569727564347640392238661391117442786549601164201648144996255957327184691271650348168339155405078278959744839724502217447018758925329100648527562480758406338998444944247796103243463141663711896813360189882084401997548904353988241138619335965115779330231724309081127347961245418013823758336417628389947000428109334456351336751670616613208177449745310043854027212668933235331983557137583622680376107634597527608189637822969135790862565611476613754753733819861366035082241187783610142460029988122173460613700125249840180969417745149591237095151650219572259416956341628436723170320763162395529359887118193027384446909530150314812597913221490185998099733304243205398067595317957427485551228894978016523592432630284728313225846605360453112089280232523543493852679202419069431077378458291599905098796437185226756413634707904448708790984390284149369217650759583274378938745076986451425788325973929924079913886173166469808761625924083154154249071804374751692902938813294426813324723945342910601441811159844918229673764309563710575198091446761018077891460550900342390899673086259897183829035639931440295041287269816830067121145678339380320808724169623236527129495352425058695832849072747375892918221503865613653344418385421896293259666339508793539552823827145874762497270878439807621527908826444496137528239428729776839751354200004813242150009994159997121013737670700917001002327915326423297878337117548412391155274151436245050850389163582990800506438583508180679300841764127366268941155926326564247398879504250733137624522028424251288813415995536685885172683859521485906335344214246310510097382952468343639332265732089773355715365195073969031279962276636498850444054362286001848007457211429998057713913972801449041565638062277141049312378259819184389423981935556529777521340485005713698170196453069632687091980584595983155866911449561042744926276101039063264752795253923263134456582204113545412900272471349276560574321698905488620123491602468939180817078390385475087707618810302345143595223201014760648076013507495145015379984863082817401481060787980193883395436552188204758424249268806370827627544186537873427538525202531635128298606438238089481871884221602160968405922789108348017441476082156049042103097427198906701074887566799981833776929273218414288169118520460352884081024797088744056987514789256309492702289239791029542059679093320676109575440287100921769970059559099457893192451972856132960101568099818108605709749851027429257721308742605654318398818263069874356866979694688687574971297268027380743756881594471266561705718010897785076702679376007877523750416290913589756089640686786227297997756030951212456434866174363650017409791795925418428645563118993713529751585577401565376848586416282998755722974390149253759772258111566212060490123892515317877884672600837104661720594410216734722969506789197722299973684675292145096456504662959959077651539995455326723587147322615653562931224134490606093846102016078592237428181109888500365577641069538377092012736614652799407074329794216651454866941270240606963286702825465843820181979987950682421512735968693688674514898841357718283340200248961854341949990147010429616494858556194117557307151225836955493843748801852254352677279691588105386356219928729860755586826848197085631507481085640762999422726642996167869300498874926444887136358933990820665987213196625730353206693222061037275816887069651196162501994781066443487655297182420216151932979325739345185319389937493187765335799172582452376144648616619190195549230255214423752204187203601179330498911433174674160036014392059517360495271826345098005312049576638385216842068416434955218297335791753612630402811770582706852654528024427339872516497611711794636728347766725254984094292024793799228266272185075968087568107351779964154737748935488020800854592278573763454493654291566102598734174404748591982634058725835572825849138102040942331623872353398585437537068882049398338584237538317620351135691024188937950971581041272316147016427883107231865013850400790789854321665556217281181077213278435397303165443636527447217227781436946820333808405753002639072446279159711799469662223029515569775297735427336682345799116373140510739683375103101830836014353247324927337553931192995321524318937485742909020819238856304109411506334075161942084291496260038770878353511163095261664845261466065284082613638177129711706506930242034791696625543985460261805991064024283312587651589440512025091849467355443100775337428860289475888424851563807558862865751826502787567725452770254703916720984223688325215050292447566590072422496420067905291059769417766058676889889718169118272879420209460993190146875312985493028216076353336416636806801273810652585906518913616898954826335697508408754656962934260309815856375282094943372154759155299745050100485875150303153396655842718370875293149624118102108330797813111851776850053355193548398463189878527235909019190306636508554769712649803603846420089421668968087217925260370032991466791497992743313205718493472015708295493586513673190933225595889845480959789703442528359732158405359492009823887365034038557791289621831033257875555968393693118877341855731793799619540110476023387247925075557355462880046686960808469716532992511805672216188290364569840314220161321584434454618092245178280278963171134812974570323727988644697286504143010394963654780485800052157742064269147309781989799751285827538879084088402413809631120507735680960311656732256952180351318886588291104600980434445689695148056120890663179029942920868706412240530603458238897153312944572058365169424515326306528841677332636317330810350296574975689412051852133570688067666286600126881591106224576842145850639724727983131128098914434184105938814480283500141434784751802998785751818769246929897696999428375527590246062540747442592231792127838351874972835488607127543837191865086312349956521027538459997999564465878102976633239752981980767271998717787041175841444283376174294127894920745043462795266362561902298852521467240510876020666098318551613353436285900055704722461982861043950095021889230912616011033989507234584397567279648005600596130820664936128027103338766357209026303716816022907129653738611478844550858878378594191331314218646577835217523989568704566661044356152639614157080193687672136253442424360603930654635511250249203137945140385494261530721016271528523289155299114840563357823231971451783118508903991484032138584707520226285704438800238100307680401488406393699619237568212413532210909313718749350690400442431436657782811082950291595491343485308323577143584667285979352306114450466405269903529541932568944093473642813690626436222906495303802819055707335224426498516601061565253382738249721653721463889784781780687143527885110647420576298027269457849880361715100136694344526574004814144700719562743321754518475541855451117725109272945892099976731402384826899559878588949839820629558704546905149345687504300915777427100516017045775979464096430809256071776352805750501512894335110082409178734609231070633692332247939139316408754567527433396407943885025262779182591475407699874005278671356233541686817882339239919886399830038536930171693154210798909114434239526752724747358641268850942951748263350253623473333115360575726344076888870907805122823211641515749349624817821494366164853340149091471237849409898041911933607184114319484272648060806648168796952842787772772153833725983962433993026985269990367359119819973486752118350956455675120823906525148982864502423665776217305995536815751186355887381650933853598322772498131393482236305340091130514994188314420093108002692814846970819809639567392201347664621833963964029700720762341794282466851453927593413391930287164584974614155951991584966810533345652060472588008492348498616766738357026601598182706890659311556976937162476414551147510682155837695966934424224078329656645634690365474876625293977961682986432141112906232206678710268119691007939693490146058900361456291580138296890091616265161589956755975534685121233354639215872275689557589581801645185443042211110606025136605968142755759661130970265855590369139079236303020669274567440019046553868692420200720526900957557080569684733193092883485552430806837211049559413362514876419312192135581900630172895486917200410867205919287722816739402912622546200340109553027889494591704457025487367734320699285730695737928941074617967260185454257891633023829528169741130590132695956726207652528037672441707818556421347805381816242926275386103464660807243473566994403032296722389766004680470163568489908973455032984680099863537071870559749812394103885264443182848732202793510912761579382849860180228884632011737002594435015290424624377399972572944847385942236566888552297274716118102454642427128070778620822269024633908286932966123879513807736662213359510957268550839520048915891846304793842452711295377249247628989071381819497298031083555552673854976822130737675544288626929051847543557815865707864494480062180903616831697922525098554077367374357909032611458188084284083577247407736514617057464475532717197438581713400270889451825725310890289168098636318951665224410779449272361541767687081102287342334240931944671838676029523125686485814333556494448683812252002078820122318452404944419924823063443431256651844316832441532640767434988128415113659894747008117674022779688778878818073339802752792911169994867511445101785757877456614089143681422896836723840650590439648701505095105497395083808071566644906671300877081030843234296458478126599402141325069101573796548925270866434516795153708352249592338608041964995338136694725990706007507237544771403686171112248851114737617049220807599939634492477908605000600862322212931677491941474341003301167001836702804704679013092191229937995064362076204512759465881431993350765031847350128067325470249661253321509912828769981935010137019242874339069395216707581986255920771414574840093512103840919288003426123954829003738481247344253041402808870434265227133690786503395700339034194000050132043172524220367235653800213946971454689977617823728172063778411322715165869125529461054951301282387124398096404879158526015383136633355078214233480328488730918119128970853905114990678695014034757790872610553999081949968390243758366279786609487638806756916734873789329277796064038040285823938542137103497092689231799897428055606107152745513119289465306214822917495260045202271299760744586228879573173072684209194109601221187170472665834163304313864525842192426663362251969118684137943879534304319167254346402418727668799410416797782759314444364037817247812728946479098660666571024674166403147609332058642648003862317400100182663774134684569048624556841489844215168459393288878184632213913389583108198595154988544911988430034563857151997223058117164858153424284141058324001794307302301106724044469877869581367553277749093981616124188123860749861465061515746239266847469692151693482022568211860204738816379562459961027175940755647799028145782968851897282313631002631247263769413848087958779464937524227340579805776830942653289419718842365975040433953884587938976716436372610227798006722701860382256077059370950113845793366836909785742619060049361816603687448925360952430921869844531675921732208892372489341009441529242583546421037785427485029516237224069426012730147235187763888162623184072642112244699703437101181417521330385778763019186767887174123168223975956189801684236794911038584419950798285277512304781132098043711627946965794011774879014001374448694083075723834002623130550869779392810164503673128457225914717832326411932275744136979776636930678134672824908623168995421694123380189979596098010527602364757237480259599903594084355180996938881423903861090345995289300674953453016253209438353181230245628371933299455302561494293277632049816950627660784137182753140846371690136392845163361313294982981201440048647150061673342397418192565660319888003108068801730437392845297448952715592551861202704477617890373928082059538358898370108877347002133152043274005642614274221412648663929754303090785135882175756849424014718828192877345832622630156787375885926838143896360730616945714325972084725180165198512732200260349518517930498489705449700241481518570387481553087898990565779648908498511542578365038352228831443966246820789418595164682064497828057304150239883527918142580115706195739385084425518571922261673161957093161313768362981799446422212034110928266881127390174246263810227189510320582382687304823162480937170752438794658377554795800159488455390447724021248181184815130298518083872973218901964263753120433098155207668587230796213029070799148886986401032217800029770600466768596154296623262088512541626995529313071541601411200957281955332265604045647333678664997405586375223663598903546500943964417942739060954569877101787026542575301942052550750342463074686517302206566962084789545423941549997819506455698356393768334244837043535339010934359023625678255885336255578068347599311823532668225514433113811467381644035521833906607068034631512395226243425814093251471555905036895779561238089148477906064007311108441724682044535990397195029497540265167558588765204553459762522302514899250279940855791289392937277551751185799022321087217424010988157762431709018744256213874351749690769546546801443743328229561349976155478834027297324196841204732385831536700785852935614049651233042605167837725208356264068732375290643896031017440450656993464790093918876111491095727538761124436773878548448002436844032542578227350094902298348243376508450347020070438697480683407702897511288654097899646508597241061035620125515790791403096104031365637188463523311023877689257790859753606379055842358526476299554156033211244041450878623195712575533764211108752196674841091401173414155590808890889724891894610935050548052010781963710968411502183757633088696525991745335417171653052748936856238067437569767723852845003510648103813694626934437858730788817155862262103458713095399416359549110637488068051130119438909007100800210050249667698744728947350544877789578303849551966541836994413691413560665732701446082472716862160304041468209307104750660742749660107732227805153645007262208057106195150917603500403160884571451630093117201683262970545423045400464014133627431351955752779622439274627095994156533559018649655591883367399299187995087608809260272457099487153223180929630645748903388184867705894549765394751314119707822661840994676720360713951238469777698776074167800385218861370869478230929238555141189740231572654923776116022591973152864266186021516347100804161062896557685988484988936569500469529349829158712780073854215195301264816369779967725192650052596764437619368648524235926420708902190224907619627793006828078155634618952467714780388781035121549844550058519224998261748843232727481802246626192596369711296613382811421399558956882775429142115552896865464383778101855240481212826636973866400647304955158285799828653534385464003365685699692219618148171527196136495682708272798260207758532613423614114375426740157720004805703386396296356053129632841746739152663271489007164666023727320247882167218626219953148944774660050443485508382229207865772093380847373411207816141389702699482941070663323018880742422110387565270597614452217609506584111057483568495760922378683077069503238501749632154915316140948796343962475644205532557203110966973273878190263516870039527819406056758607131579182941687816902607070126944813186964075782411308627215660971246665646415077328266724532970663808375110614361699664497022809388468567495950788479563091854020416206170902515785009297918057524751061766325875128326730216767686583334612364552374471801067355812958045625398933640728909528358215494241597013872550831168552048028792615669908981286262861448624774717030932639721549183305858723886930640783063567408451738512290803318264399288907564305649448906605902552410710048018010443325013912260958998503098650651984836454877523459272021179809700033619485267249836720052134526723933219028654614499076997160085920757350236701075086207673719827833350334332260647601983287591744136928224426362439635111128070824877347813155505252274359472648965477642247868776945797574493933104827570502349773488288749147132398963995392301279629228118833760533022818244195576830148231787421225037257146243995693995702903828316856311523478165828401435370288299832691711861720578011019076224215272213695980180614726807192070561225246542367678534327268698166943962887928490993011426295765486853667101747627084850301559731266867277155136645376146394927642447285275178101621626674440899739605772699009932358913344510460381244729110570593689593433057568684890049888247554379507323004165147676849265936112874901403532162529268820265884107484180353524891024701947457335389035944812552543684605976294860343155821305806618961752743767800112317656030953339948476273873866491797064522971958829238861515031035304934554001066832246302671995317793389482434340148743758622265343126138900905591365895078462305394143093465021688655980221300673335576297440468004533447721268863869986833249844611613636550485941898474069491009665299652137869041744642008710313620461601703775462272822600230414777327946989966243331722523438720284921742953431523161045955437481484255774695708024144060244706508435321066149372493742381340869583060228931347382108198879274248382406733895015942423110697751293451423599080459855360924469391481324463469694630115961830720860525006591680469983809885939317628813371454087828214554392107814871355946917879739477793708349515272927977497239912254348722607285100403930570001285975362614820959247056378384554677217219626932661707748203472310152090519053546908084058966008790438326588472578595824635260686583746398311872728226784294070687838223126522693576295555526904004838900871572834838631299007701262056917223518369863389274753266420125511608683379412872754150165626970105954819515956725639664912894597974087841978754416618346428965208758902680278003091680660785171711653249025594014977910340069419301068846872997081385736023190800379779817037317918026104519926625780981188305824271251034872005420042611655738731420561676538013859255354992231828724676397202629550696651447982942975561094007310865388350035938236451848971630277577078914246767379918525751775548802469871435888416870310481506885152951576397326432105176152223110536602522668402280672128519283116837311232904071096501131786792375982937587291132043942150506686682633299525777621338094719484926376231369711288054800539434580334631169502737535487935086371140147538455345469465132351624802816664873653058404122341225637614799419627501195309376699711626828462219469690185099630022391474522856702215184427991034485936203097253953819639330138800322926822417182798306857182366659163308122876716073267519401410331694976098959333447804454050515460533779501888699347133984171379988254427202981460736734310741842171534432160604252842482289103547791449979049435118211411298804633570924106352317571007346969408548974023842045643991373220083033279142556867412274994536813381677649951107595942456524711487104003651954013047586689764366436043281473810103547109932805840950009611949200284945345485501038660698473152270633099609098541616215398134451121871626769721978072409732438374036844646015371146941812562527681792116682133010909853387662836164128816393313681950527413814855385483968857560584478173786601988855976232489115553871096400231642286588589610924492061156095942241921192250747593408038890498106378118531612805317931513084669759318818214813412004742207825098631936842441404906132881207378570883765685705339193773948745699475065408075751086764621429635981613668956858043741870724632639460064075706009412718117351016338869695071823418583886566916903145556012921035516510776812382807305627419836412985966433572348954025007688133770199007208469005014389184679195554857016769875274732741825178759803620465844780358448167145797966787070037971873346358428336304901234995575040935327667099013930000593699723279147682771275816606358716944600797335097065645159873804193600593078723842463144691254643653516207262775862670649832374634995735171234405154866357776913233177867065500303233965517531369565997584684237342822253042031071542843763666653167257605864233581099496580581168512069244325711200138550347904076318815437113080462136904377731230892255146607031867320633831572533815580659955421189529874997493068897109046525743188601398399428891870699655412495507895947013707074728560658501121890967021913171646863910778803496008088725494942436181947603673469198996664265466712820085586411793896096618261364414594222498611129859579109518267154560782890636604437960768129700659106780335004547621524307005563478399496754946711976750659601435771234522354380256272764279916076266737042624387123636981985142735515766894479439972707710718252483906391775882506486528106996730791971682153136275505945784244357056943455989647385714053114123531726627637629143321936114424010903255375625924198263369217495059714575833065842814436549590613028165804259001744569755297782070626841209551065507716992675103830135223834189604998478349531710903782159021183072191839196264462799459777376586708444767644027809707719714420013398194238185748068931702320152715520285489490760366655733895056016601513271237518012437407405990612532355021518498523549471979747491349109095999046481582042422291167468031496633813219452325178460107141436532178821219969791945582900845673459978573653995185004219922114174617351355846900729124169134638527326259500510257153751487635186009554416607706617426170976358691855669936571493756317884197260751507742815779986414403528333857413037588883997605140611376684842701517659259812116878096242376143520268854083212955625855564678426820756891536499816216806527679417865616660481832694441353027347959862896780587857320065400888185720707661988768055457274671257019636056611356707860732567107776692188189466095721956173028275605986923695788472001213265948061616429624720527886395326637695717394487577260126752849294898592039373403888254876012955325276669312085748048252805870500690632594829412543458743928498034852469365963821178576896720328886732937766092080832768475288286411415568859714456526485933527295433225451157474648285116799247890265825828396228488017450982030554705173022814243605693307332945432965021747233992772551521441460202813302492113143616900027735787113088280834893943290217667207818054204298805050448346383002999531655995707636529795678959131536340696196838878892663953145565334480641142015987899612731967295630041447873790491004242119515468984798430539167299395989740543505770373484913678411264259473118656566620965313808359252010659671895673941029466489497093213985917596249423375803341196549459406123434339652544919935584262502284784984720891424493967898158364851429159408602647027272687244738426733974516525047967230313714934139593115496922997856345309344803717647157596626815077299464353717497364726341669953601483517716231566725265394350472291324907267934174848122514067425714245633537023587668616453089348959587675991264694988627133703408259014770765917080423554058813826022692903547234663929587331099806930961474571299283833723886675596031369092743237629186397700766100107868790652391607752022692683977303985682148996620621320460162380861239148295626559878803614048123838676010863100890055334899217118067024459371080842909795420619027858202873642178507956806383264907411133430516718619604987887925682447460392262674373441492678745909364407380863348800666782482733187722244868123679932820783112548659133534706327349868252396781495463720760178208504262928965080105012113522249619699866712676640564605298232646831274353555456474252550365153687757972614931787534468133997422150257779433599000058486423912384767166723453607924325517420186791266060761900308423697821000304262427892030970567576253864290944041703439636985302373346604921168592449524544921791636357897975617171884992791988030680581411354264519772585264180815551858877996647242289469969868013169288955684368140319007187077395910356170490457814963721407644037787502600340936371142622521750551928678032162144830268712644094304585256741999209479629335216191910210762225022587529292135702991118261836095703129845020630148333779687882098727716367084937079447233255920648508152805418689077724272053277235450107059943671955893264614394161457823186234483308815758679412486277963359404652777983013231382935156789465944555242471475757142399244191506079693945448270601225759659949729794011661798299861044663915287799654629550397361894521320719493834371153232240658693316828825105302655129506154722392250124465594948941442733886118038423643842492205678732422432867078279363180905592850016983889680161502294901999816584255998200697313181880169896264197434756232514652463373948570407668725055138069344720137016642738750028135626028000401643733403082354416630406190010085500978629918505215040872052410868878922336709415060951644469407156473778708043892610567782086662178683522447259876863658328892668169751764636772334446546409361130519802258422570391259823601664650123895546093541258308067430041214885277501094235167920288174271169249477423544854408114719694073092287956396850366849198124588792819341860256154712335034438727473507939690328744710886916665022700460840484573939779357730806447295452725812700213541512230708091944885448783676247740875716204732878107543255431392360988101259154642221551544309868153147620710408752296429993274372947977246328050377568391208856153835841755371397479644265017772326262233875930122741785040492839564227971595381996822591230138906981356855110903391067772779204837817883128268138297003387906767778610225568845157427543039713119434970571478917351041239787604333221059273856298393905664335354977246768370615494633837467130145072155266147050429291496359826168415564867954348369535574985653725270690996378625949372918160728712714163441445678467268724105880386740921548917588285209868164973926893308824574755947415332025345963012925361101773253001599443428190655147713392600725203871521703269402703842623425379237360528211881039605169688297122189648929980621670444241869111686816135406724166977749831219078797483950653328950085930230080737104598128841613143808064516554818336811805705405696130825573800633671077633432249714298734674490634715863498750899193797566885127433691721941507953764603238415035987008908132230941943081588843509277410893871020204973648023490052121374885023866127020673221635848993931343735220482446705960829206059164634562710845275570464131041355879464596794027298557260454155488501135249029822285017814511642913638638568011908784522280061970477868691967753885075390826854776764044395826311037609892319720463853140498222598089364462183006847358431256558924030516321544290165357102483052574918310935936374239679433597250004822737515275685135889035104958585381761826330684734651318452723853828184766864160252438134326076629113480055206952582844043415353744007857424308141872362389130064500096901275752792847613266431828062261052548497942915295350346974114894400983840237276616167396653713364094334702008518210455704457781533849298319401212728434331711561107012070466993690091366199737557477369808986599296215470643101718758817319906579489499954053162057671019224542672176242662099565281999938752766206766587483923425792092310824257326832314293118003165306848302688205206438966126222941724772461106299285057067744763876340127433919081282117895140124697641910380504533077607745850365527592121309348442878932025576864420263063413260777165937958923826815234377690708698542943497831547199483035811251804312396249889845503566996784977208743993879173338240059816151231209118177094382764119293311760141788990076297764056366687307748446233401765170449390702435336805854322832953444278140869608474448653839476625232617885255799632014039773470656158749292232476362674728146592974789111459285369033211348071492389215837256722629188342438755122878520761428968683693741977764278484294207772030183311940256123980988159270642782961298940890388179013867303041128702842360497762679676455497035247398282936464524231564560569539367995671388777387696011104617961351473873472697446565933834379937346593988193673732301389145048167076979468066844464111117014632448408340238682783861276966323914077735419288792649015715578993420978619789438589125437320215688076240157465497556935793974475518467630593161219507522416224937627995762623733479317003152349148759353217555279860713323859941664648031117366595221714914386015344655283579239371895412516421255420511592157178756427423573175383967030239296694507894161616141076357899255155342778658801920363260396481831275381602718457833293556368246474637429082217240725473573997405832666442108509118083867998774225424053595218599764483257559708894603710206850408494324373357650545788827364017553166247149676619962833283457653095662169352491051142837689482313005317382960801022553837372383073332753153670784069657022727897114431125255602928971090753334151877528980593489982049326840876866396314920853334503036840161606836117443601597216319027774155275026472866644369009335674125706261295430806447392551604545814708972255097032926847546091450466948508585494121303939562317301674462112006053409485642736177347347819902192607898210514751922000835695612854839631274026013433596771064378621255887251131400680975816077460008573529660650907160669673918428473908605010115645182528057559477648582914027444265606978555291041600022140351772082207374537962601322872639451304220677534917221760340892248905717263809147342060176472293786567283187487476914265037375366509963896133731943824231545024559664943406224619695415737364905489567795804615511122509881733641966410780145958339559042674539031640822291138941350912850391136412335090243371390132464806844302219562015963097663563610609638675622019794707351865164050464829157739683464112055287387473494283604748348966608310953052401928824111351273491271982451962186135156480637595662675477566159814519021371584161465660617325198866285445758493613538989357446674556790635297668716188800720319395356387348677647185646887945109827752163374317270199686637226783602857149692870432275892527558329171475950116348855093910678280071504810409347000409172470838304326873481731526824377738666616041787118667021827392328361357628910706556914224252855432360363488719439968421420136564606930624873585544775332393736750763788519627804723052567057288545790989948001175820827768398110824566700755588242638780694767701763074868117845063451926567355497054285237039478403340874987097816914829911417324341798332819240741730910484411789837125620338914888034776767171721016531457829216732493760436004607703208263729617702085088921584784443275663682097413670215370326978794434296757198203857194142449777626933150092459403242602997289526055326334683145607162679622215238705051431903292789235854033061466857660623740370950507944051250092251942901464945324100585677034503917104577996637544896750649789708803710128229125417687837573162757060299872724304443130972856340141831428264351798593591262445676124852015492721776445565207325620440328348809885133244910391623254647722189336427603021092487726773517363573693335901818158690284882122234084500073204917617621527136581731041692177132885724287408610376520068681174723182524940465793969346327300828643552492818948512038500819631447215393161842616621517773699117786653774457759286830047981315053386034035701210850064996360281670636578018547810965706677337089945549587132758020222175466666557513551405104506619581646015035956963910989805422420789918234805143745270427148219949926130836759365391671187442759971173408561647247701836115870216637494052114105555082439019602150760306590688970946949523215005460285358507813446090904862864867286147070361044705862345384866624480369208721358422835450713680081108274989802368193583081589120388033459133125576730503760555605418406372712541425358545661627249466722349175482214545207657919954563486614820537209812374668775584234374015126902769380937346749326631930508731984956367946289767318353544559926236837284363047685486001987071926331061294717353635180461236955553808835771956196510045347239255345375394421197019841909106257849660706267118961678295161602926260626941411136681188603290789594832334330650922937886623493835047000016256129212086049177283918278260620164483335984608672434716825802902229649377923394480719765638827340981288836057837742992309981897129843520772920907338760822737678848969285102161140343438061685502438365193441764903029247966866433753704549462374812131065680807479245677911358777723499265374807383347812929107889931756576020639178763952735036214066407256483810985998833666995785380923375148842121947597332336479425859112676150446733711394395167998424701819923015363487254409966837893200617436104017334800615467005113079300482832989011663937347182145995621087183025263836790592819267440591873690933037992683543617510305795793600167679978292674713665703212296010821380646512732408527626889615942469517124300502077372252434049972900622956538252789497217154669822851074258240254690268368383326155965513999733848218342062922616618108186950064275757914331249387960935078897075851075989196158862694139505826436720928317662392585438064601554115804954636571909367027374783711607816985309085807151139369718813869538489466364176095812517519886267501559780113401393832187517927869152641275695167316503307232151965104409586845682948210983328342349663244444599785529615803582632477831017257109248891999366430387624682176474422694731355114164721265834032372229952741163903887940485436908554766974037619141421905179524287875591712507905369933428091418239073251887910790537747637001784494748231348535826222532897737704530939035180165188065213680758568475016013055652514360658052327619504474852654027609136432982612775169426382240448178196916782247418162467458066692634127765664406322049815148804948593199366384671184539395752605733403252788011218025992467280076213652528052946309690177622788161802765014740689669758143147975619962261885717867368599523235062123286833668206469919560456508779824862327624320823175393201320862824529217999553942413632639005902002358656280532310961452954995840327664439170821074279365999310360803095505273915128772454206736579370857284606569759221974417144153087902625249876298230007157176640309304313674103422012055012627005298538972805032517206357260064729930328913173169167727873731143043157765406755421571851278899075607815287598296364719993826926413022749728778059039946966960449489244761348022364106930712010158784465436503109204701397046133630146483607603272963794718130119074564477739175275560038006335210758928468125478864370166244196415072104188386319196503238317714753215648240352543357487347376986935439333671476388441860700947265105929116032835384917715793395061890125795933707466715830768388041701634211046270676089491599235849283334747358691000658064282763287883692975224943054211185307921820654101918422919343270926199637606204120368789084111084978489585461281899368638185205416083398801928672251470768358665275563665218560434220638004757145777784520863222762246726798815139428523630009045957758567658412666331119895149185883283401723615228916620098409521456925130425751457749086737944484328251609875353673894537020454022136532615218450918608281924803154201923725960542030028373248965300299319471341110583515271031064036818746697591050295405204610643187773553816776104544593458001328604021131269262212156352719227787448145587993014645592058032447717561110846437484024669031208222278502756823730015777539816301980775837671010048584493733399266351496065302444621637804158301115631390772357187236120393569451693992642540694916678807200876868237313511091917728267532204312837774481594559066613828146056592245433591101782723533744981140639161579805603957477520991611519546174102786720861403253999883936797900225734123434807735848898607544240019286999937393073778244791373656200574798709652014666600823861923702643262252508322787944871996068149922400046836907967719139482390122981630374070131748478589794232998556585022584650964905137540195595990244339910201598272195715131255939649163248675651794016929572417863779124581413787185483678080922578683749897477599996758658157482061582764321725601867973584893585006962989329427328408730490431633131948316097691511677734864979299116897094457827137501901170469380072549682033811378834311376840930593191255454269279353793830905354970755896078427589550814175757657942529694996230689833091590878661666062007185408664011464708502152769873923224768037148309539011940920252257832325325077882077511665466968751647427905958411274294019946892321329413579695979562678425514619834972268297161104362731160119938703860708387118878650411031571508629457161830802929052550635181480038980333924238177274314982576763096895161111397945450517892487585501696106809334764385354436832660559510626808423510323354727747457496474689083136461817184257906099081132285658106000454288050290949250566407298616430982287032575789460572782806991577835237070062467322546417840114140136664761621308668273582018632712103727342766716503572673812025631869899400348625546347118269646202041178817828136641978775220308700786897727897709976150496059365805180891590443508250648118120042674673039344014207044286879679474285448142506259720241307144150740412016920661422180924580155064888351604899400513021475489127768041921142779123827965571606022011137592904634071951929243927772758609465075962688412288950322870633880726568749186074217145560643828534321933112593705892925043634347251021523950188070064149719228774859235316823722360689658405783019766974588316838901549976950129228202481963979094884482940062703381354902912149575467609114046876688779600621230114319759740725362445861997824015242530718512283042959604649497658961261675876769773781997108840301385998082710704167365589674682020462492710154500342001356666062419183997875207093075714406480375491472804918648585880206693415644245347788107866042538524317401866000106790818263456943134564412572881298944881093971998972304003859124849321476951243764556596047773186498149200623891150500748736589699773947981508284420341732665603160097033315220018396815129911155445010307369521701840825390107000664958896828048779202551984879086339345881598166653959056739575099747083735606480894864421918608386310036852222124698098161909487973802122943747661482440866325664192286963809087486218125834743518220568295123051852094548088672913310935900578883086027533077254245076709123738144910296869351713457681678488852812199666579439201861870186531879548780614236736705817867414645844580063280690104635153575165383649180230734051066314497411610516103461477025263557610462480865993896219355913245850754992324538802095669131112546476016412196408817452009847700290153308087973642718331894817982144400017662750787968324639246346624226028473949214920732197705720376508180858192549165778954392755542555018016765029047032443438622747141947418537405474393080588364981822566997671314403659157110727153352574736523747554832347684083630261920119598359647674723899573523629078771633115777665207275438973677110952256695091402994717236403715607679148584849416312903297876786438221120512348301906094335403371121388345607385120046466451112017786242091685729131660309906772083414555187546187969187252108419688759562218613982758527271107419908341786038389271971060399787798402832534454144352140157828042422429577976400921843587278579226132216010871924376174166625502517107338217997373712849094857165774096128605631983962348595909212069803741024354696257589010618662493515531486740279510203207527457172983613660791869560328696975187266178515788784439943404151380765731232753292380633751622980587388318513313061276043939589546341980201994532973177484739423808979295592658114691701938944112968801235309678051287136899704182856692067332177231465943263338299898003672175544823163238215896042816191767281000049721733765789703491630079391086736952895752742459991460884732028955388405426979910249696742170127351602670454317131246259716489206187597481543308134481011585752253258761333450837542163867336690061995106925600320272666972565443875942658068670073693631899822559090601699060508289532567445237671434527900167817709590612703625513630795479087460351033223648905577835954108400656010435232564949247878622299196301365536871323992150596401509503615799576252976002640206498105785998027920352170735241179417419131942327093842445290919121796731940280828591406236282603486033935502723303353820341606508576743961836471271209660110489480258623543785243635393853193751114537112756236154300170706883901922780061378322181997603288068814329442852522461512994062431898386980069960399536442713310455145468236202004337688637020248046959425370406079300643073213744436223829343363126556161317150344455601057086519581604982569344360422078945824647569614492011735186918092749563389907240567567050477501332219649241384929618963012944515235797906350747166545291831981903342992021774000222317815282805491438094825584532785302731751623190282329614966527215330869158694392342209510887497246107250205134690330860472485443543477366727044446694177253262977340990582634407051397996087714938940123443424570318800334278718855238303555359922086131840393750116802306930478611515965150234145094256894846868851152411322234601161915044117185076026822699828478683339572170881480910176950411617222969162602161389484325605332151169845434219391786783814646187998203737170680499514704969835024066820596303017249222404435876893447856933024394246416830963776675725200651466828105906535525696576646196610351166790718022743862780425780391860332866480000039861446010849909648715625109673238652234308591347880157115064474542115619798429235630456133526431462599413451291021984490737988406464110866813480705298099631172654843864307359434928152671550604896617911637498869333612218790387558078425931791112088916929840874602446453559424130745706928096669569592096471438446854245238703378714417864109900391173037542124673002597576403159452535879958021721647542502569305514943300680539608668976839023487502968935142072132570072217665119063964011797181827638233369436296504717991169266930928624648784696885654234792328530798053849766249968013199990524534549081891620157332203901568699386755443249613750535491422395604687534669363571920328689813641419096198655836536718149419592571696317203810024478573165077465396305857734304109525645205203583685874736305608543725459042948960348666083263077175341869217387316308101464428164278161260784625977485431967783272553930373830815093864456637505332224201446375855916008831656000971596190639350384979986881774805853764897332889207019794138926361092838590288907650527794943668918327329644901100936435767234479759282300428909023824696129100422275578211859389035260426603522661858981214919431181942140796645097140577862959968555828917667849620622878481996027556359493135091113665492934277625254259270135097303233692594286903772794235575477936826362969614205290106643524656981514891958621152123917569359419041211426477142890487782940600893652554039186340752700267130553682329290512419432919450739062572788825858115368217959247332105699917344348946296321337766354436700196831589394080122123055867185864107050937793170779631844695017365888711740758602385430318495453172583639211126754251237024950488745424610402591225028643850899111166226205149412948217472459163142799736277052125826689082281504613737165333824016518693926674787162452478006368207335886190537594319193963438030855354874196713563098733548730740044712208983457592766869537926312829882972555862871034302105868100568812038917363094523339016715073185279484129154755939545939688207226087786931644148531442244444920388227407871847163660624813762888250687717195249433055506500196206276617742024760708248157597207526363663164597374846273020765992495505906411836841041532465418200643581595255924850074218015672400122799851103474644137794796553276047845482642166461640602658739519415715379439317677570984388007093468434809016814479277657785634363689856123874103493204820487184597926023513183511594432132792033603586520102864202457779815947364632045145890545375468337936505619846932148881295748970449801359638483110798950985963349183023252863867987992788854231626819344130671747675049768875726287459285636953442979234095097245854206119558811276609694420250611685237870673366942882451034550707064411482382464539828206091203718371399276520996291426809813643205129879874187257252539856265203893666154836235479640407877366368039556676034485116796230218350447563516432507285808942151936255114579957753120527290542930259595596066404747054208859170267261761101422585205522956999629255237948896329685763078698452472370764004940482193140706425990005303530799398101838677478044305689396175611878568209773097768393545748306465707926015488700597127432769329182769922944888623948780813911768195890554467930639888935338624535006615603548546291559526133487830088962823064747604546410472915803910961840673025954170179627558500859147406651991360890371758550289093854232337814075026711300334371264288387303040324862282762556198158646627729389464769312114513002641179707985699732231938698752095486123906476985358042191006696760855586774915886396540692692256117017603783926557689588827159724195834417720479289038924117270615426978022823921447822791161615950093101445132923929549066875874972223393606616662847634776583510987976068901580319756748547970005334956591114717895002086109180117436603289457544148481141156341001078570760153043175407771327373507841690641457877283424725561953371593237245035040732393387834296056966584474551150050905374286289743671227267934905245994049929496703989172233415096749370441448733144766369751042769357427136515032781080542652770332451325840796747365119370210927400674310063899548129073363346916578174243004296056333046786125602264349147534143635369686880749748206652974561655506712609388808633315244927861151852118663042846425695437833115383633781128573348583651962034995747744126099018761120877429192331174644400671789614018149881946894750007304784767835449216709234582380702036220238729140191304771372300473643113674300311138047326270283185765563592156487305901748947140955859751465185132996234614662650499079819595793316007148753234152416191324596159870700329871719632864738659953167994243823536121035054822315077606128955965473018290222435057979415914323131156426106430167602908537562338889624638774874774614887127101403309126972281223218333366830644132888744956682573536690081679447301395381700464026149229472126571566672348860304522051383001265186533686681027141646463899787426226390446969949591217422347397896736663037565723233240534243790146429986561926779547845455102103201229888423085977402163214762712394540437493294352121595232170730234215298782890121224730296143501960404414550960960290905114162081613968945081938195041001920788961308415842692224509703709018162861868486541451675308088131563778636893424600312051332542522974630087704480701832820092425623073123470489925062267548144718507696114375892897058500947581785907926092299189901712137744685420754719049034885119840584385843186932808064758252823101423629036600754444210232574394842703775379758030861271401458997413923539768832469399825367028745452405359017575111138336126687547693437361525919092731697428698081599128156612195773612308605597006573622808875794526122936676847661176591080073018083581640535773990003394296173759022947557052616512133896964629538287365476103224117006147134498716191559031902090035150673653364504516475573716263143140284787589722619945523884265899087189056165533055538555027600721516700625518209300264710876000719771097908313686995875341869034601534002804568905774763678480626581385631740200951291832211727644050290302766025367085662025623737234821045464634343110605671862417345149109146975744721312245763493458776220229807519098972492132090924496542350692858796412907952290075410795699431311782557662225045780084596833839465596450004263782771296578448827779290729152959222321580408353268830413575727090691340362869818841208002451527868093958635009091888504965606560069384826310805075044694270434330024977151792109940352887324281660432689083452159162371160208222216843098216960904805268915358458444677735347658006925414858444613319622615577914295563652044477026095577848227349665791918925846377831610439898630623914118604024799011172137564601330872224723732352636447401907610614379877686780111189195044744998546580894236996518491410070178603853686772115169329494475351474546211202139621240495810958690422421601742557000248522399537235064928605427002697840636562514103100226797757747148218875014279003044705702665839403795990445814571752288708721917630725309020373541067577103470658187327722375196626421933321391922690622811312092382394086306506833366057233002159116509517493365244285363528702078633095598392276235951748471211327612717505190226474365327291753597556925143664356004520324198265837849179846143692854140148450394224428539633624062109109540782697206945062910167601303564198358707448911950109298286475139853665556597865771768349279306115059338266050802494760554639784907988277414923219999323925008369269338144265334629578818826016010848575757459152304977882040973313275035179907086546451472249539772988384440217116468711283734679493335571015234334208204442192705850990695014196675005491752567971919576999891252896047025442332378550593308882201606403460034151732236588951919471817490478555687776659346451137029958699052513092594896093713817026063045939744728869332571662748965512040110844701171715655651695042205017918513711896292697468435575640517341504301942358790480113367487868592485605080470431333474370185095393871862563650139638696544738709744439984486140218915478684099801546357064158738235960737831534465410519247064894787345812434159053292910504139462389822518127719251493325005489705262148287810285425240965816083189961510509264344693463824089882112104553772451963878234987916792094907925440932240092346090608204619865839722392184894203095526746697232981635195094751121845989008883477446750111091344364456222140416857486963801341480180738406010815704037646931988662642619343572673393661094948966360193453281604054737392593374399065204215210683527184763989093012746339248584221606049432422496225052509348419496581618501483573293746613687907061354617107954998740148641058211651482119869824101267682709747510092234882479442440749229976033489578627795018705821099229992494396601609261230896966064216177205509016801322362967678522349120032192697020385082687372699842983640480259941029976096130298344297261526702035598328844458553160811990896393896933411216902457325864097377666667863336843960974635339775118689942452947556166035004025562153083176847227977344496202227117663789682098988692686173912042327885891533459823505079307655719919369847866964959208436989477074132580472951467245336203727003530679690658586313901992206975435506115595553273987506823883455141534823940435057439844295563193095213619641313967604602094516150266752478174495484469177115193973511546378171978134857428808981813413476031911375647586786002037915307642803530170960967091132042695839838134685607081811559759429694866933883624778558578736234394160304487927426202777070811407652764752011871125663543271976857813818748212919502234604890957429571589521378283095201844938154532717231448356684946690409215499478584806577555426771587263049382741014798306344750645667336996440266157595826017158935184521026177018237595361491263457476928256627262693727773871953347443959995593767734416591524822120932485408334343874815443781896609531567277857451826886963456606084260613393888499811493451510229207071730453141162550065627872233629461547206070028100448375861196462270424270165322677849088691052902815684998398209559533363002765715101963226678164775414147253192704729296565855657032339599185845378518976117059700781740911388241403654071484251910362708368526609438523485596062293041709965224199970747813110793227094743444202001689058017253731493843622836594552270940797028917196393453645896613682224058730404070801123204301106637082550904476220910655918950427601335100647557652309383329206520173407065525293832340207046705046413652298943693826716259149455935684451816739631968403431148568763273188801424768210986547105705086899272239015052101582417895885419281872281169432538730790606892835303017979789403607474777895726567549400014428553059861021625616093960014480486202410427018258298230856245633619163712171010505986647999671065644690316590400587488934804155273516351765729217122767673635667084010463937993748062148597787602944109906345676765399365702679498554774514402378455984790357018100845771842208614036921238549891252449551161556483281836654525171335970851810796731878314084898343683785453882410626608366342006395491071156199317187471564831004077731588883216940887996080634304502545017959062779767495960528274508634351109666835075347656327892638711051672681352212683692879061269624324012397164845256022200680048036403667425454136391809723195110342804362504866694924345527142392012602544899452897156269828947223942367850630813472120450283282750849739478941447948384607554768758449831736579393780130439652085664242126349397133246876109025416661653665408084423797577131511914161271985468749396332681582715215289282684658822196001435496838812794953770132327267599559392535277901841751166933254383492734024463989090170209473688846350139422805558892558523126297429971790849206415717436332944169365443300949595913284202048378341263072947786140837969313937737770138886995799043324346812700910317671716807636537178430875236899024293051845292686124204593802348754225345267979884900844971423847473150528442960510169714114594579292883365061143406652840818269762951036629304843470005704345373796995121036261864175150105208979455716223203065857126030033016581228155153367510399761119080884764860996096880719413415045350031398148173788060986093214984494693706752047065229573009929001007651640129390008909455143176770406599460313808847776070339740861416594580151778274651697771409405776453282171642561232425881730014239202115352075635406042686135948995387183011259675409002550020883856282167583088236413649833114536838519365935005670315437528883936999651027375372449411216197408688312974541382661996583426477376945194582513176427286868348008242717737650791231932928048116895766734906020438879259388429802812408765194293203566004572313495708347239538120775278324476100710193403181104642362562321436721636402628583899130106958411698371185270537323914186670154005612736786655577744114447488205795110953801448974597982683061138820287593009553343105628096376480882644107681890652212871913885539755938992923790912039099853647070793197369162832329014895162165315077867505848357086121626301536927533693318918176572614433176367327706564998334529448661477068519498907739554551497735194536862060615691193568866424104527706804115370695607904054794919361247254042992997663394788421374183939875944905403104180925955880963960555919075742133216401321956925431500549250041632014099332068878721794891064096188158901635867775610029440097618960459763185160522529135974141029383685252689819960005226277912445558261722966629211636960745422685500819520256566819496638258670667568613469772368234538099837041647290169914579735928562744548563766615619506236440255490432915174301322303252598252757859803534454502073888234744569378379457675180985922114710164598502563348522303104082215296093345297967936052288225128979456954294645190577117367172077912999729269455972976097410035716060612416177683953934688421055731018423646163425022042731822297325864162337006614104583314571001078714550875622316873846165835105333303371277255418585343466823470841950520219107853829249956867040825359567720626174798063174070117301395415716874702981013825583240740248752450840144901567337375777628520973519134014191762168482720277089677446346823273901817579225926017673955419359266736038798164498991996677563224969697889112857731659374084594935934000378819317911446571152757990599196082774198564478985372683683313110636702828559568334284170592760803100099779103279821475836404661800836080010807685700575980096664250317793886555490936997942370566979638104687814239798359463201772738291777455529408023836615206903468994277439456991016170299087304488912776892584085179946291529396776515100341283299530109297555500851931864934558847540122629780633798733030474430408064590940257708193076807401842163208926749292706466552682890216778880442836328589998012413720694765839973393822516373755613953207534606794585070225339306795366711199077873357206601251942012842577908101294913233482354694010711760152856931300770250406011342445509777590739749715435946268298726270197966540855915500187564643688473809214863881859075648901109299458402065441035096554535244103429340400119497857818606389860153787858026979716259283245360274965616411018616928084794282519999438783063631215453551495796839067414530019401170124861664093361298970124266100540636065915014580969447654936654646253632660159840045322731017072789669658474232085034154763179162204342916895660976017362913803564448108153217604868730442457625898979209895053654696517706737040956890054880170512663141676466021891501937106808927263879091486500833815387268625803621283867366372973432468469325287195496849333536033334383965508308363666898727636821526044235831713433799707236100667079238713239964601257703229635849863942325421205688975712483983768730248898582888959244355655486062672342386843749662511491228682321961017710054341480503367244672433678158259310077101875113484755192724432519826912521222523152573775962119542067907895122336740987442076628032762217511850867881041556428510785473570279050911213156944637354442384635363924643517878965370629870129522589280485448169040817318335166072063323396258468627082725232115086122675877248755905206586510503735059150906116347242776720392723233928315839475110462747126924467433417001718963863639498909985325707425450895435229020744473557156426905753661367229780758525988060225099232985615500403897492867254204458838855385507379610866628089103211628192640853662722430156334251390623749352257263428660592921144727294138022249811448776807199757540604838565045265622237568279093305264967920086288662986622146326608412890409232346982220629153182809213263054354044920225108955482886311123579548574932643286257102522334280834633339831424684492772740666183428788554577001711694518117771212563618921293020403806820076025980237216077647129588513880687927403641250523907582857925170561466949849628140842450554361804238344466749498814549511416884162266635060508273327278378385171122738678689832717277523876619807933198777666448160329855607805345669959134627152088636296730508881272823936588982972412748086388277868187662864188503992128776655917009150021504768905392617607233086335184910550284626675103648820622632313790987537703652089241056722525964756595300726005945845924469051483946992955146617712283325132668077476296553142730193892210095855747093551480005329547006367340614335133339394851110699866151694143201000614256579845167969780442264254539406743424270819147681350434493794924528325346684928165068485701919588994347905741336907315267403782562483842990117174812348640808190749653466413652909233384543314377226363772863436464422359524777187858021898656583008199189948809525937127985717546817750302472595913722358650439701891463641019940964828430119731867931691492110768820721127349854356580500976923827251265004137114627537280209101489155669923881038511385287927708923866848553468554961537577763091388984792447089805787671759583060750550754643034252333951922066192479958928170086164499436439425216020593747259242127231734667429696817664236434050095617366252284593214175210007677403852547004621636634954921872955536478033762232328376146098063802164377120090148590141917046280523208823750330602261861594001283038190327006010604143228335038052357799756997897649302188499314591767715521243262991508477016348149519729413010775776970060169007427894775685992217032942959118487181002706677755381168897132215825750810046764627918356662530141226261680838382772966906856116793177447462913659436207112057809314197749742274908207165770648102099409765504311086213118233417897471199309084733821895869469730665233512540698726486345686802922489003565650084721333833857034702699962128884683017630525799605272271716561476222040446250608026146375800134127581288815656589775882339688441590052880883352434248115209871008815664849013100783997757368055770203727105011175205187104909634821181467229594361571081767377965132752411993202909896091752107459966359058917800143551170586792694434822886300875808472986592407771041391024794441991701878713521618760555928960548732632716804770169148909455020478998174572505206916622996005625042799189450883367271990866695889548052117559791630313111266636105615587833566685425685769494219255216077129631155533499280809690246861165352349010654837453906095772637663251358751057791564535016280841216001393687566830789921488799564887901243710940396505445468139523500442606267133618964491264928668162669473795083008896318486821555053834641184407240860926782272308117440128240409730330745094337533290008308299593437135297300266812381143423284833652883902580848101405798036905926381660708406803775366860158038397135224551052953850882607474922001527573352018676260286806172369139492309036421319274602344543996548513195206094493786764802745159669297846169778563308375021863121748050745634367982790800681409495305729330774283699789767537127241211631990671040439835637197438947482624042181766923893857646886850088215958600252163922120693906765442449499902788057759345893371015958340510073104248611036642964930261324507589981373236713527110172427473837264971711331519150429254129674461811552057932325332067493218172015732071573295107533501642028138263587630309071622910126588002966642335799578409456582609384485896396265809372657039495862263440570847161859262967150599337713854899014551071225317101257626214846448022702467424935160892106448444094409082592636378309224928021550068041151877379762393975618157398393052976695887614790545601408507752334439823733440510490136473969369969452180284903610692218494882311733213755491966002469137991130940152985726025323660252446510086703739479081420337730933442065801833863738356875965106549893543167297259204606795325359348929567211918546233360389607758690090611961939345062413544048399329592822439280912337513254300537435784889413766651595287130039962350934417999456198017226778562960081641342664029638645667338352638169994335302213603143830359038969766142943044257137502382357452250121387428219410136466672653601550485955991967234710218222030167375832886827895868299301205493205828310918530619957568819949147000960931494482055267758205526317028359089429754096492044486846144985106218208436277896974042638396352453398849661551856647111269243558663720480612474714624906827160554157973078832944024029650404153306066917314723840031396263054045074740260083729157852961789625497762203133294171048921776792757071518903554384910178886312833249159445894252724504376380197289608146182739899982229258516381267352454654236109945298927143287404212938027990501583424702643061422028468914766383869858386405142204452075647936071474987981636139859849320707320729130851283801143343813187068157619473241913863791525278483887404903797701418661533229770009586726202322484492499197689320155989627989562253370092768554572427358481065847385660147818803862881532494686167869627885273153147876840698270295360457538118973527087715232649266022400946239110020970549619636985430033277502476585018321818674026405933226107616619506436063946864239614548871829647544408263496765939426717407583565074558793608163937401119140756243119350166386997459654763208848687927955106779112161872478888626389048268131092163224629593106992514532090864094379596925177419205156663844583683411301416152712501708957362600358246766291554073141453637227357066145457494982050426026397235079278319661428705497499628441214850063746007631219067259660066206298337564558706193592120493659092415686171372276135347743376017116176263815417190175316968372353849244562939504353829399967945535789827711961356566638985396697397907423174906037624693941322847627672120317722968507305733563444319112033155371613785234426234230905078072596490926754389524561125656506886351480984518764283063453857749017833996222318089892043423555287423640604681894832183674218807827410921451755149715895247446802474275181465047803709473159954347991035774534943407103824754670998837741675525436162204861298306674820653326241744791288692645406968248038996563026930228823291803512676415001754728933690875300243345524944661920747878743271900170015449882840905225434553834366491887494583608975647100117775138061925339997669540648879583799558506160399129407599890216054405292937862261700244938085880228254367750497713931680081097740552307051985462517666650338959190752183857481590189050535623957679755849671038520664398879177676440451884776630844138364501241868134713018670729805231069365853217913315050801391127608813955378375456427893847070961116825361012937073043115789004498363578192270225172028444364670228205989566981478260749353111614196930882062801967501018865350729759933616903529574381350437178613483420501814207329264834547141389435333131861587291827069213130056565334181655105051767283245491001094718926867835509843000820946566799176299807636409949490277461264148293434297128408643877045198523611661539922552866456586266952888558714387213381007721015215734974508758968774257854268266779738362435603465051459569598021334513490386778942517381641948189760090867649001442180608095258165876462933935316219881352804868073571287840454981050783299495414441622929163516677460773302704446820826140029198374650153174431396177632096429028722035236639867212079901237613855879032503332651479549836119277458981286151518027559475976546186238884841630589193836117460375422491694630810186434361948346384537075410430527078065902293212152136206089596632392887678880243811247496109623290041782936472350847003094959579075398105335535336238096793054659477463558816210121992326908831373157110592021360766896688670211655674499481448582475092042818521526387736513908232052736943659075513831569124652860419479070300934918291655025870706649306614173978656261197262604831554407468588855830288525522446615392622065518900004117695363372324967273776786317508517273275783132983801131363226568332037178630355712159229002550323044452028987839975714680388097323792498259037786728594117651968729865457952929147779233303871508746464226475014318056202968953377485893483234096737763663883328393097277922011899202319990686426233448896353845371191542485956330588345244617276756413533540986294003245600292299579880074465501365604218552898475703197541312269870875595474809389050404924952950386204933490433852493964931139394269918530285578370040470359419723387714315389124823075629998512897871193766348819126789016959674268217483606372937671382160634891453835554628204612011884008425240755062983998855045319334743426328458712216422187012936920027636582237824973447108728454878215057299758856068133645344138192964767386362086480171801898797561258827125910310228896147832514377817773761262777819027268875262637163815112290304465221359523583346165581955064715574025204587646731460469770899369567380425338121276580333965786550531530719688477653139765503159304391791572916642030450275808460659482239276498846273339623709033483738525797684951882249171568716394728061000074067612940614795111770066119298468845146194860444806248318256200687009747270509924689312313220412185510849057112888874395455963374749103938339008437627502433946260412651185261585757120317191470246847942871108008189118229034689523389020503813287956428129868978002018930612765828832926366099079825211342600696442878768218982929537381140251261953055836059576616608986092635755556549914502887441491965385559223909931431520067893045044410952572195653674064408715463135634599100963407513658166842869491971302929663633697686083658768960990268455175067438648815440321967117177634007241059259928339013909963093824953064648924919533694337528309079034571927312703551154746011224280144687852111448617239333971918769661223288661468277113331864450533867727979267886777715425204498430635333606739050276153311344332714129835329622619781975375374788960749416661231563004102058822740355910752893408492309266680658323019980757437769546546702754675230627581929142652379609393792591132042341146089723301021550539796262561689000543826017253643541068888299072007497115068298104549870137535852625463924292865522265992427467965889335457166305552032768552311146158761434148589336195522170718713329290462489175420779634510727089422017294707034065718288187200790204194506477068182174035126797606417597572924704318779650510372584585845653001865671561062689556745739543149093904029051842878634446034392124543692980895602119513004412838935388065907147938294039773837997723657413390879713848953307018296871012795698926043679759400807190580807849880125104503753656452953768685888234087741103007554862118426976806171700554537984539318272759102855915066049002663400901189479184227149487633349197009983547763883361067451624855930328222794164567944728473211697639378232611178643371286773858268408676821677091991932110953540536117459112443183226102798449437434406392701598816701822338808651592614049004686019475957989012017426029655553665401854840276982732144816705216442003744414073572640093882888327375466563504809186032210266274549958462921797027625362779817782622621474459186491557428813548399998316206671300659597028916307041919255524934227175952422352195630072425567888397765521236239318870865277637668922139823408368184688558940156161084970555503832335219469245487506586853896730904429567603907393343144784578263209050697541970772314399442345419476177067866783475818657769113239232416379772109443679426567994043768089354702015119624231095737268050901494001844423431259831831107209913031502950840609534560576998397373054586595591304582118190889894097518132957653760396147467009896389988736240034118179776687442540749251080483916718320939019409278280772360950689620922119128455888008718233464567180615077633878938008377941557097462017004939921461691703807395589748143667609435694211704950334385528685563277100921860742170626543340263082741935110105094628550486676589915668101918268235677954834339020333377450865668655417138416781509118187952228814396958910834569734172696426937781430268550638944452568857603568931490583798176914788832376601055885864459510520549177731552625044863960886267174123797454069574746407957328750669873539743310685024410917397221235166131740195568145330793998451908595007851507621745067901352155150297670321319087506927775348915789418726269691987129346892846484648998914812269649369393386603896278568143261120326592816418414960843760667487451191908110031728044002909267957088302581078986097492806467291552431284888605659055866619371597312767224323443821612079416578493642284029639119338224517335105485786875731722495184165760795576061870625304664813534056184600073013181391836928529205396695394618715590339238039008517388947492111897435538311437796017297068410083181755836133336669737119581905155610299065109145317851671244720363948152152578887319431095898493439969324396743890963818112345968392017498781070743325210903376030428438382629072529889828643441251945695389292688165449791931611921925928637313592844649247978551774187293927654130320188394171929381993310819264563137245792528496534410508943005561883344499685088196611832753299105625362696778300324801589814510776347568419076833185685976863384649054632485035498149345189613867525105038230312392262019065234841179734552836409143644272367649787919175557710590901917628784264129669837125132126311843428989650672049155544399791990380952201316139763434958900919221411781398332762046265348765361525091926318753081456244299868631615241601980809922046849430495686583537627996930029974219630868354593766939358202268376998005602674237139406917081912677484010311330319170043551264794322464040679406976733672318699075860714020498065074737923101059783036684761510501222038038793931658399056668613786836374633857862429563068535389838745777174518483435723345430915958710326422903654474223824468482052944667794908643852417025499666915264766971975598468521001570924572704366104473208415506094045736371844238265719914251228268346398423023113901889197500268164807780023379791582196758089846296599307932369562525939301934387290086150286695513592210155556969296574144475673524407920687036324318233121028659627038834957030212175589611635216788115045719098728135100005865509624604970087162642131027683208074548705302930891111303746209258854783769928276065552257263878942735907879478111418555965990298031551354549504384440788419014632653770849380885526366335317190487540184772408426505826739758110141312671266261503000103501942167639402447815195749032577003116861285444439151340132422263595318051176776078809466559927284452783770821207437965874019764625186059661568334711659082094686978136722006112810416697972071405993075304291931900944280129224681802280956723049694191890745605651236105091312345654867798297592945409541582517555590170679734317532244942543685861929202903123721878609266804842407122368282265260538365025935553880594027330475580132945780938060814772811249519853251212728539279313423212030321912867914636717003766864630108087239764713041098933486615504249767956827250047903143027378298883036193217231149285792432923325413966103537058621265369986615463040827853829083682104752572395523883396026642754126651175720709152239851530076205191233416565252711676459014759308988909365821101235656510982999703583977815499595958877531230252963630998739444317836491025443507105985068754857262844873465285245332367025415327375514512437963327472984377455005915463590194651815603286308917796824769303426679436416466754867293590200956138355995025746421765741484143591117892941872393584314739366977844748655804368091551536336270688460551301656709456231745330189583963186531472168552957474873366980627371556863674325299028755531551134359677526946401899564311823715554481353508172618906553166310205093253270532357977652856631290123359740969167078285429086346182329300090840713801189398959492639035994407735624269538547358872445236339974211934121366944820370434592982974933915652449181062281529672826655952792761082975214488417907870921109985828081114098316484398808823857297754790251192818994660228453199636425096221701353947567057802679076797320147863756389958640550408792709153488852727915055989467101979068312783807098199343205998564534844709337704800348678566501895645072390634797908755337236094087337796273783982592754405159798421625899774615027382401045253352838126546329946490741616387549152449725671600913035138912272542481039615463998712229610441157667931727537957548736028353801885504918701501001886837066794422719112317058837353345026948699767995218041069797507320435831360221099989991227907228192692650636185557321544379655818883070944175182905445621447064929006879178092661906076518183698808949953872514712169047020884407149356585501959361302513927191087096152010844369460444986107863889557934132809399444422974604020933768207276091739263406655696361225152097983893964082733473666053241400473588960728536765752354129118670514547178490837528646847567136365542909907742412109285561580604911505035285912924534057254253129412644313894014680510696870113264517989893025212840015133095227555163145925546498802113535701633786428166331563810272603864625178093313251611646313636786794137534780851079934244217563127063403161202305479592316552141986315190264049066891090631249538933258211969132785161989074874266349444073589281271198964871016208168650805140767560192328779518721503114120273854837290079443153486823535411419641072257004379139461801337708855505492544614233170449224873902204426871009907457214213471054834712192961587874039193072063203688290677403516431010757474431730148753899552504955822906147290599616109809693155830801517909881577430344493670455821070564051025882635591828362769652019323583888711456976851664050028587463496252669551443923134632605214879152082222362031339472865379314189629821150310516079962551707273249495731489135825499153986263978385895416102542473110445185607573881492120918172114304416255794507412341544911159289600494596662524078928521023231872715499328072884880392157622717631401286471125378319416058390591671000883910158857305305872241182154864616223989904387093371214838525314728448740505899019267184001755575779632165425404090776505697104742050694390640668946771536019338951371833491813131487547560236656970601575557119992137533246066625355928384626178649822947512903425887158626782906721674801656590892528369084636043237449603957840881310633055079916768316652285270890472301739468438333059527764808689230382323569156919175654131792740165416945135497343412245249635855968506968167941906246606463918304526790432636162170048426128966723461249105404398296864283740628292768884000804987133438657759864605921174698708212270786234128283564558661462857876497653605563737157562979514721304032518383375476348154836664425855171452426582327080326126959832898056458959814956330841501795289629183385533551685495967402271691097846076270352322195234113706295319532373698019254025793142590835090847344079535107449787111496210682426078445442081703832729846047304023747369766150985616020626936382728607497063246820171515622477172134162291006794182250978217335605535095966974538757642412518732785343933609327322487581054702101682553412709289993793971676173442755078608805320466123611951277672637432714473412425219282318466897423676119543123284047779319224782745086686085696569107550054911774149248149168853666615108243161999266288321240972307195252880538891352276533080834086949985210120801401189927602732957255031233978953570681514057014452365273393272236063001077949623566624789322767161536225365793691491358194733639197216376885095796899643970441176373964919108260626798546550433193347173876278318486975149644059130164559631454060050489532708791007724718917435612385209641819500155320272337304085346162241984845418053030011194918311399583468024587752111447336436639735647339202100176226911605429568883013479594342620926075061164262753483157008952204855265310767170796643304480197326429840688707973541458954634897689343193121445641594331360945510420749948204622493332837707768722977615773692826004226522790221495925643944607498815217241950644176594823614105381333915944779143091722287119965656285268318954704273565026991366827866428274688036577741878110608534427621698657125683385200292578263002954571638292122946640408808699016076563936836737615369635862700564161003856129713360638464823179532012423216588906930317278827982522562910983761720053528869420439506512449942062401535359004111132762307386446584611036001994133361959683504844614059879902585907868679644509554027897718650808068526589465281256022564576052940767106922954756534031493705310433720395542415318885988841958557703222744853181880330940197316233466018785624039845015012550616346393392625942356985877757025362261391901416973465199465642000585703061343019042137896351083076075917519964680448060433901638942786785692604550461194682904659338070115395121257806982097176002241881739565319329678363591386312632759778571434732552340016705355950309709442637001039609586199904716456702393829943666512516751787168674429984247882279581202633130214333519896952108351167665482915538423036845303998500155562732262898819543851640528091519232044572758430677389961643407756036557612849800033649181521197218206071915669452631019883221911750258713744562299286446673591911943069172217453872890815107947897088115337002704684298787628920110245470439685740746976519653662690066858056504041571344945196361342357176282694776089643776291917068246263491494396888332697667608866916730194546100760147248091346373260791449658930352881621971387002719204561707248371774410859498279456052830516508855390855645991817729445688379729587800593840154107541695537577726923301412812642691148149301494351975375084882874790357923933629016173281864367870722610480882418844963972580584072669987931252393290899201549174412330919306607498689003393062450440972654790086314022945623049546816934033514398274631417091007273281039359556981872614410732338675948458135842177424859346929540740734011744640553006241277801454464244968628715928499980937114996350487051196363228283646071062391866465595031364588794413565205477168531222664998460541746387529757842456606478439878485826549094445071021308770544732512536320642129268662193209312527658336699298426815756312832440619323823580578583621346852720719047147605805015713849071894692276930146337231711837984350907017301005220455728701022723520998990672853996177998231137893150206177091692397457618134728587411149437940578478854840077408390220102553598309858014692890126689307911766940915445350907653326005513621247676835119684987218333399908717375345198777363917691691191512145337462179016470899627065134999162610959046401091307625118733083058617499612026749834924018552287160617864543192159584707596058822790033322266233401312076009178119195929932006586221166138261156485291250030506157631868201119102810857811681612652088766442994109763989823137652630809886713646122144723526009959026008806505592013310907672641601404535387803142641580464645757748722289437065117957131655495095215205767646204483408193682746012998174213080069752496114250176078248040212865511501691102638829169396002726338026377234524758619198729327477217235356056380354948620889126757087174004875605616248810978612394471250075532601215421918642438493888919733749939841062044957648299798809582466213897945328495369419607590359644397118322784047096394416870741613140249582807518158697848573310183245082998898348777587252347537015890638227464385225858667958097848014391133560951745871767702560303567267653879887969017283658704996876825151668646381190365847468298043710894926980312584410378997412960014791286208997841875031391437013195723049749156495396225371986684479406944508725845285634564981375621341400545373876566287783605001345568124247258358788697700182576797032718885350165351711673873893905246185057156210802842060300288030728000369320975456281467263961248042606396758535933582121764569210722838099930870242534768641424971141297653934079131283192761265769200350142201986539562644531448197808429473647263996481654168068326232846523801688084634900120233621981915812628571305128061899094522620714895770914655466793241793346300278280108485136270117964571174726218750423331367106557067863217429633838361368038513968592087181823170900884130763012664329588889024944036493296955148099695201586604464719368642461174572047327053397881753550829393064336763716711618637940437918064382410807550326847400100699782301373113542599502970504013462007943988692600845374899035326143362029827134442391775016095626390727567334822281886219734991971004701325466658542954863337533336120215809242748416327752218544484680194645909329439094485504725203397592052237962611056034153016742447440200977153431595751061476180493907876116013049885346207154640794756021022387061240144551864075035446695261189988860991038634325610719593393997623141333657905907620410734619449311347373989764372366734620732594186098855056298541017402281480700355598903340601806670472436262630021273562263760406424637655784834629289192261777084607047811756035017602013644250578484909453034321282844444665319355003174685070028048455216180889368881025169347778627743894247458978083023818939663630742812324350655981718090691251413656875011422266298657301489981811123154946583285563878298464770444609936456569457488127972261376801624859313701046373859024195785704877431989039812277147111072904152937970030268113289315132082158891909446636433573839931296964010394356564791899761941979612712524466328902622764955272985006050076232240815093176677520555274347960317669401219215380203989134555514072948654483794680995840912238027313547914179448897280207055530490593274490899428311195080794875762036903314829831208503417091883474150580688868780285530846850802792820795601552978855101797987402950767185707552796602357318396850405434243025409736416233048546076608311915369008953911321951181383989111329778819175154149276845869247020431011471873637879312393768440430032318735545334191981084556382999434407507268427367601961648971472278873129799987493271586916819496554514899593748222002472425028866416086086062817024379265380489827027692237364169586429286124057734533550799984879632671058191557460897478350622723222679227271536379309486262861400715751127398293844516038515229270073476593780570728880559399071131345658949606497347221540346420988548147818686728762184397704999573952131946746131772868924468625016750386386381455714011584561158044943918707028324037659369278653144478188812483727089451802845887869491737761546667296480417749540687351531617676426320612708720634602369648917590650193216894422900554966749308859748444122402214663217076270536828624799559227072679835216088373179629030923418504406407191870588409673054194744370634542223860005016795154520854324292696102639782511932144809125937150472149628032502169755170102470410278838558128548833856679555395737472054620183957155858588610009043705543193327220616627287933578085451291316151569072423764768954979933105854129915457433934758092598347581476534667541668183311155608870325130573956389312505027797606628656542645126871488787909699265949188151532050076875992260139377490250141800526683023696640128779326458854840879524908875266212509366075663053074130586409583723552625677525368206437953262619957448503788798492290288142870408368991499396649062515430929811598953128904356294097034119997903666482714823673234275243168491338458632522324170110064352180516991166253591141589229506325104936706525546776651795150824900201072986552483326540248166028744143669566293129105205175545815195987791424994342092581017005580048913270091884835539583040924486504221628629725567817769440932149656326219715595428771301243239664828434706500122179573350060708437449636058073402578260542945279420937493319127782385686994277781584815855359259276664655621099310793319892128761692992458445480338150707176805456034566104413212892025329426849861818900672588446719733537803807536566704634750538385621236616582163771429183924099025612490007391162538017165658389759975096285511408198596349481447395786416042418490600115100269254175925358485294434807342081029988932404575847541097752116048872500202004948133334304904536836105205937712164974226846203695374502594696305398784313032335838737850747203085510412160503208227003039899147968702081917753474112608553248082743647521607788504825589208231044070286946629563724983519425294198694329620710625509822719479607948897259767578019475550782830548268806161515518192501910764455513458240333929300624300253442472587179056006320491616670286093793071540505178228533670397518643637561925198859540249595951893973585702931198460073069126368016836057265799441603710047501819071432368201012255959660480508762675893215861342927207214492992837492367250867506777509408309409470559007667630563823490270007950679634026268985501205932126851851985499649264146941196256774622464190765305627134603261731512360403072680340646532042182581662908324448254198160141853074445107494527153106284093364487081468915590926607068874798072119536425736778443764407765754798711041266403489191578010561901941101939899891095499682571456152965656466100974636049233037067446705843027699004952799133426084157630634680381486367819754688035591733117767977801091003065341537335050711256824293536177810795514567420703204390358077576184865221981370699394708320709049348776184549530948345589027164498555244949176863653419021149204837624562339882013345800971478507402885070821733553272591065665600491624368808190759973143088873614083873677102093523730837195091990378412900925800923068520074688215094889843244339772281992081983256697633612646393330940738964092264567173938140210219658310607375551052904729948617239325585058568983906717128653884171953751951922641314902515720766815713898263651614703840615317400651257967407420442487726429022807061794995894387872302238559636931646349801673159349027368289004032033944779591837065071250603483015987774205304178645592050794987652858716189272557347806478679785818925757699608611921197828367345672072437952556916473097775163155215349959449208582714142066940858363317870132657694318747817900970533217621662850918345295398511732932336143998582601037024733457912775340542406447110307759913729326235272542302579701984368575050414116783168651549183600306222197946021454913044105338070564078002178674258441670015054677935434472255363569424751527944944534841903836411422248772821192811590893007994591115790532918233137071379927048337458676987522701709478282534605163577969313293483897522747623051633704432838461035926706888826680930488602794472101616839188915541387173856833161011069533048341062485028183580680467335553555983214092834700166039749987679574296406457608981057689754358919705161493502421477638240536185557480211835003363646968312227897255527968207986883588743702740281198422465253271355054723677861626132860082043724533885896101199303708846944144179350978375461107726748555315404808577422434014628660986034193273640191019562251247124697087438568386880923630644740526121153847564036181839738899873754959201869693907311098851534035439838830195461822004996193607254505323583224855480719872646343052611494133313210673081725740121795828314172930700264689068548547564837310890303225610787599801046625433324098277617829108648616057788225776978508757239693670766923527592676744819340947869280407106844056107194264088061805853188492460380352256982713691995795544626715005199852293623613185932226919964166756451576636371853865375411160305598688910389133097179928993123282468517912614173127680401960676994174581420378414474638558409667026499235731116276134825021141478768722419088457878962284847780557965514542307573090030604707952584885447520766142150052688767296123936073752802958618259815771222882780510056441891376962971000180240479146148034053350370685067779983655404405658513278224567816348328458711349243248935242657893160169406907197182069123243004849539883174846819994223199939172521470064846182253761140103308680002608607301058214959049880999736784765799004398155748363087401368617303125038589943484834617579197709343833636204644533142616134334245730443235400828897029660832356594014208020639819582977099880570083545733744150742217550187713895926924191944465395303126432531940237681025677645436881638833204510749868788007311225838254040208863705259842925476647583661692933370916295016324536846292843935539062726291732346339910450873622890858454668107781486268548888636945455410903097811711134979291761928634806920586518018778924161078593351801454783368701159675391198539373996921678182214478245612438671200500857655237161453438161636539240335818380019488985758042321883258604751743995723167056957997743002108348315705472980690421039442063687637916642371895150460706789803304685551063976020362180524545400328921789257980845552751238132785580745914548819953033499472454759663000921829560493749904471795550404260747478558673015278757289893397266764276004917804489422470379002124975133068831737229832511420949861927146655588989214884174474747841940505360998852516012590820854145395073261121707708628634843802724637426672619605218368978786873766222803184384713788139848947547491684364146324696725002370644514030267212189001475481173074537698519362023327820425727330499055537348485453987845176558742410421531628958800954902165332284539379603625569259545881916930688324800178561343539153083152928928021426564658212924381714526523016344273797573593150073320970808085758706061576574082913691413049631079275088107928713751185575169961936374845207944418345235068304427403312685481468881324856985272896104206024661258445743634405626287751712011647231854292361398990658843751149939214173347678995737103627243479809082349136160163633077346414146518007279908831723668626477607138044259767742964390780607889526903999294427936276969669921121982396216999288144594358565012829074693187236139834394350069641787682034511116792402552088662335015812553973566279367801653262638868330589801100181200589274651037982150360888898944679082117942859207308155980087064695318245951747835321199977711611355613325326944506398042472358921022746973732881052172802442861882778128303852916778124256995494635623747628652527702843208163330686833259749042805821883543128029098444091654239675494154100719129303986956069080894251751610958897258558435285108620505371475586963393715385539476647153436628703370394168475436907379808596303999519209661654051513291061477496281360626090596354335083169335407452986796612244410904704710964424388478764976778431436976726515894647027348574348481789626687376097197230465956812390110001998211736966422131052886415680292446139648994431880280376661082053083402910756151886790563024533543904012043397853552247526177587475841821914222160219445389698898374586355950204377612807119192120065195797853728887182265084522316259583416664619243848618423998855346354475276506440252446087326169707241447950542560100428404769680618096151725037075841885711984640204302958314643285379431301125215126614910922321825870072838505747652818096481380092334176586889089123770463281917046104078073974097316101318767278655008804634084211469242635320344079668479817991382264359569932831689003426743480535068352621543553393244801141922352380465393203861306310459714127163660027986657923278330101158938478789017182354135611063922999055725034244023411152201971996942242537647033811081718073078316256761418403465505125439380225954640330016083776441195909972741529309647801563891764716356748325412732935045437549519622852453518169179837156535577753785628977281160710232620852332921809717572251490076197143747487794831077920518023375704629828430501970494187321497963307369037175200358009815972713761124742127588944602693364104997984474838705980631653119137169618169417081558235439686067256944944192986986027917348202938641970041779921094348722452772253360952241242403203292010058111499905553666612418984965220739867749131159424233051192776649734067771234054173652064929127814751691306187435967313030500252608296694447243950029853755005296255238438325848970409546586191734675332057874053058067082959664749496384034579062496349143961102920264631424235270800319566424321824137572204349107059524878702917375094307167157147462895642669623368487828490560599057780419958814935500171393870584762755876301662874925323412198802698417628551696614377649901756832247216361082963171650479642667566001749734442308035807519765067705343336616638281642585376126872980617465029352963687661069250294054886431637134679761560310178328914550277944572383097050730811887120546809853060097384143407565963791985852676881720579241169128320334245683898325889580690157274301539644636735665177120469573252353765600453817642616997462945285493827689555707444859776562752568106058999494936488284727906130118639330301100744098360021037216948132372297206307248949349968420090749924767825990047559339227361057525812601559805336996515677057254093680427848627704535380713835917125482152672532035236775738057009452683698435318493553532337117195922837381675114681853200929117429986127725171162365094546321216249721032910676935960631064138613290362965563318935386809751430763167268384263498467493686454414862154742218008270583650639597969656447319887081918680295260611608257035444696437621676200779242672878027126349326792529332282024066505610810534121148489689130946591197102354436246664635263562778982699612002152515370507168061778289808988657930702991127788998109636879532594599770070041091470744246120537721518351947942964492976569858060730443741547099285309885514114013595134021675562261160228716966234438923304705715751843910192566433407563019254788140660754539711020693873436350443354724716704985617023721031685695753656979866726183488303637833198560588728716067019938226838215530872755957137707813438526298413362361944731709028845639985841355737992204208054935441395921775312220671435479525985782504127201104623200731494917298739599587177390277023488923086009439096740098616052624290144771466478610627265307917985698751416476223401302126881321810211674802970159345690111910768501503454780774214882905672721877946185117325840380550534491563760326981608469774770896649883467346972599096453817798728840716608670292040202297161860596882978806649351231967460341461919300273204525701861258661286785201485726635009825657118612665618859500641793267536790994071778206947268370044039114894112251831119069648622613746638163209290244493322955556267526939799832969477557902959783637854850194810831993926262243254029590713584124104172590336476865352083807186089027753917617443203955702562684105269283000413822953517435840764673666053010405131001634633072501717464211525827548891050366234221555718656617800406760103322583329565885484738122984063443837609627756792301755358074731950161464143864091522127170541556121427864284372093098725346972836278212614622028027757173969660475459904201419734528303160181262456188021912167012640304542018073966748365588050051295204506407089805089285129457957757574374927887533697294185785666244534195145936156530597819048236163133144057496738433172443310707612253460128907042134871408301467479032138345963145806860965805640004712214477658142092393542409010184412911246885930455012167892328695016878818512532347226152424769298393757708053822405991202677172235965594713488045026265113836100066981081415684169875143850534643535393867644457177720027174856917828370750528059896762829275320534190933130640778970999888711231070111214421835359119282206943782313290119634785595534099127146374740577757457700975565576323541432647118385603033454027882025277239268079676049025946443838694899212956716817556814839298928550013103775781095231804382665170561776564244288489470887256951419666945404196272323947972608384203713283698951982804536793874179574589015155979062841942341617283561337442334507339012934578598265065056192593515852710657674991991769322915097197834266749369859116058159529993401382315602247368027100810350358806517779984961752427001808500510170427807766925367580963837344522049097149576468013146774190635777314532473859866595129064896763884508409585878152361448992825927301327111758322069042998736427005651609246904397280419452301827336133155076193980876423945668036117247740687615813922282620281174957476677422387417717470118439245404248486865625720025700527563804401000214294122222712252999742755307121251080519136722581925524840021641420551194875946176209633663099370018704550618364114485291907458329562876685457552626865520115558538525558513831039987523993106050555017028394684905412991108821257478792460117834456759217907502711425397790649443148211061917770131084067340559150966691883316326231097427079643983504941490729844779814992019045269703487874307167202352247163782821631719081575319700944292100460864229750228612071327218964959037314764707750801220607151148167978178456514424425557559909257840076648014901274717881653723759779401729966358881543466868824821237332317579603689237022116653453837838663879103742702055839608782552390536161826747508448005429098885658385403024630745164673511855319818171147433960924197883358922966694647649737014603705095816025422679481889609776965595730531374732240511809757624318958523252133597892601687529712889803658608610564587985233177600698454434182976977789432417312505436834760973733986878329630413211701332590158352081602459495654411615817406248413018492215442480745095247901216257009671138454090599726806047436005271423431325775332455902780629317986432084766372042624618693075998749173052185467228940453904949885564289343552405686200983604338416265738938882150864250444658937243121895069282932122037859014255172992342402752556124470666972480533158305868662751487028375811771784751072355004850335452617603494537839021950479686143959007109710431642577679743352699735125667295293090873413342267744562107255616899845043201886748047809455334366157157368895971028537539739219541478299069449109307114471750545677616961441124619467243459163949282411553949560409824924852687368627267748407345655897346188022489811177986805330060995392918965602518484851055426259088215063137152926880013821507418082613195415669347028283703291258486118390794169728014538992418819599657077003579723270526664319078766733588025057418928481730612269798081374183535014661976788129803099482290309921956914639838686034446702473077873593536974273622727890391741237232019127298391503769540083204082145629940772410459499565096290863074947890454927018126238857775361650506754597979017223755767335784357995485580665148799195320943904172654616311410329990612694698137809348009590515614503970846000788676243034665941192043935226895853946581516391814347994906848359718627584344100092553335214454326067338765485202510637386358518939416861451064810344292401607803757137668427256509288378986924817330265354710653520950037123882425262640636820079415343098617899983182093459937596090481218511955882129202125146825979541728466969818623093255471051956111491973459723766299549899939925746840866584614051397643436347230685586504362527215387798209545042081458649481021529089444605702583867533767237113465713885397482427267463162683939026990160695014940476111958687040401062114911148260018786778471493593082214630485391430888245065848138207985887378402654980044118135408501848089408083389228095477613986638587553244562248092357862095320102459389414011061111306804174797450883003168267511392552076963240449870465237469942428794132629777084126732528646931625183425678060163156046500811593574545982168679652848927919894854315399693398681894737458893274924076264339694056249010532393700636953047010222430563269837341114271846496509901323776872359885522855974838074341438089160164048644451242371497423082122877931756270718893934113877085357849822098412523434182833198285554057125122544050443989203762435087344461392286312631973087088980868329361708873626955387793829436636840662669169580608642514061601935411549852672452291857480050497718070953362049542004956042735841174716301673251201856696981560035191959180770232013455957409044340050688172302185604558180909054300962932011689416183056979535500748844555956804467232334111550262594167020485954490635535499585990006578177253205999695533389906932215361485116869873938973515528937358005053535644285944986703001670351936038907079279748355677164419979271235453372705483464391374748102194174938601277900631806317731427582531867727814021250828023265485295938813506579374308237536558144821959366651337276151531133742105407609573669240201652238419013856485125734752233014738665053369824289267327528330886389064127629716045883270324946151796043316854070202455177265915725520637671804692650443978062236730251901297904922180704475217363927567562176265139563606048740994209424232340991602784737570607811168554792944484771391897280682885226113274087635126410525697731042384531735474382772462997584983771260609353584048561303961118112292562988097173342238953949278372035177473387882675803300725784016875422155755618177405149346206820315856840319836011078308449290328542964862101144322144256247427334730821957331554890717745634563106236662058491414373145836982418477538595938853922245526877425760056888049802391020611870634299828872012993631418576242340526677136624048709300786575895241576672081095818285065550718206907831719941717611646510581101127173099927727448464790020140471507299711697582862740096505113505232682146800805336706913360514536518198664570789675822550893970305438771360339679828521506349098222088896575638824404410123593651041568197895466086710564338292458069925812950992928067644998206050035038317485162741726233413592484527674268694656881765844002957116752061476149980546173605773358261189533107605733909603082068558599989721001068507919192532982250122373316205339551087659238052103602385582221262488006969778506282253034088995534712115336343029297736443089565851617175221291987821749083563182616192703504447761110343870639116048429606423853235251623866677401705944228883562195761047394965113716446583771783170444243142674649781367157490597820276061358236050982818930870952112516700775499983241609464126066151376934420682288118073405721727820905179026326952174916879345486671930996337942862710629653246007750047867024197369861182616414525262995194083961082933846568276009698192435792293889849037471730279383275751080293885131276321756054618583701983954418409418207585067247232829847871637582703043716015332354932925674628450423522268313732563999843215903412986831114036762335789386552974122150499176528937399945376444739045306503462867574873451349986671094099431326346759247584326440014654618437444745619704959124639926790058229234099050660260799504552041681110897807797380380588023878836368892511714656546020792510324085493037510924004281190895096808156382008370074321714123077671934919716360025376144583649198882327384882250218091834370198797836491874599966740571593041927115918782677939600818813720745806046585056181848121409448702506930267017028694832332163872864285968834667015612543021316864109278337817892882677982239345015662753632082898796952348835740919842484338007824236227134500469900150756348866108786395642412790033327671235950273067917632461968584374249382605892661451698370131076444466629406983940397655471329832711332083866190650148568928464270830510693212443348779678426430851444600386815619627891797483627164291867453551042354852129980121417980838857481353482347122470467815219983418432571204291363959592282893735764758721617962375998123895564652168518819908629919926055011878792200502146736654853581100219102020485989476637292555163383376981119895312711988743250933946278509469955924115409434071354003968022707449407871829030576522249574388840416447244463058240983176024118607954732728392208630097557664412263143840516753409815156248873756990992311692859991149623366756579955091118083608796076219113134532468067918091715430431794799554059051368676988784116335752961883396108373900739368201634515899256741742969698899953699013538652003355728279463237155304921683543078428489382661927567325326117231511022420305457014405049516467549209705535926939427727031855970291894652415218489299669335431412219184759394141075561161153391769360787895831264995288656286129621321530256120199543289192605166817037231422250844335492215003790184631793495103938107989874271203131784704698633610582186882041498631632380224536443967541597086526611861317902420100131883329572458832659370335338311244432504830183413301353717044108109784617452129987289461512331019496323675226383570973078369216117094882079449712918152658537876318413845696582609059013782426306135255581257083662344450876305288968494382943020022317994858596024026764331871056050234031340071049105016070442014712683571341766899367750976390208869001577752767233510740827929741523244878152785147701180050118788011271000107272022374942293437317269146983808719204568030811562050154295528972891368540739275880267626395744118463475151375516897776798205490299320701834360892392457626835698409695543633153870427948788171745358286564210596079802923588888043393638443564638076118029634016260904284836629313944682151703964978307135078572408675512114157736966821330779279449914362167222330607011231907141645031993416187217011770395915133693088897697870031063214294062332170708026350403230924822149608395402978323442908648204909561034689979354449180309778365366507970328095172651653251773899674645506834453413261088735009208242890861114318472050011425035243686179682670563685723181766462817645932999321813256567520705066005795341080231960459084615534212393302475213888983234983617758440404026934571853752557117082815523417784627516669612380543581500648698083904103660117083162304773770757986970805791451012494062486809660458725206805536294325670093307537305515362888626472503470542086287446009091678343396654501508016330946446705433548497697638750598665232699363618473071282247525088267965441546703242910739105449876327415260967515802034492699178359252524967279435824694155946775981515251852664464573065518623052594155238143310933425405327907688065121755878325756156853710023751919301976787628978753565297998090343144363926630308845706999000014932116550976122858507186897980662727250237848735157033565744283174695404917738984668949532261027034232392864950343056512786126260005247549117859366815939880391806583247734746369289667208611895097573189430456460515195239343936370924322728754045436432322244626094950448487980698193441779541056041637814930004283348060945631437827046901789833145333166529859802099799819391688239323085828219613679077899196602729399599542661933234177482727116201125294466423367916381596595476168420191446208653135396674038936950318871496089227967181724933733547766623871630504308162940862429584731352044248953931358009813989777411754109222656869283819898225981413165796429792090748321509531431198217870092814149492579119202309052147911044986270393174456216422638568535255346279363147435911497462683259447073446885549136669594441848649817095288992157661798408100593266399952909349826334009731656067803632030515461105749506519404779480169922926840136753723050636382252730420124256827608938103228078003304945791300545482260271405966608035414231790415173144581415573611029536252400400747422347155096523290713877400694364006042275125722425097819224434606457641496276688718584475457754194314246948309167034625389493168256579873074248617444617033633782600697133421996902925885777775051182961988943476176092925234603741487526975018025915739714936225420390692991898472036516544264249707204325072572140217379134919580482709865525411026602101050382422758797374149068572927584905356496733660835024599053429824251926321200482790632766255308690582078426845400382833628064600536658377644374329498896635979542676292694765408291451582605555150723795441308604401263916885648875065202769876228709667346662621968397356432418421300747919003626301415729707455023137401690856506158479845982719486836394749930204224107681758673249376653668636990977585647003989979636681152874422289505325762114860437960609162428110372553105363779034053222248364178038308098926173227725005425231361439445582992864605177250813810649155998593365206669478359189778486873801855115056981434708312151075587587062464379864354376061041995810110102075044175030564922127785914381148307695771100689487684962814281211911028534494220178691276428261404240363256438148859514487501208300322232367181028932601102233521212561973478177845176609631363196846428439521506061890940303548346491362684524757791417530537506270059665644782819559558036872005490509437289921625110491786990919009214063596964881886710354237935090895622264489218137309461063515249910524824835333004873245169140629200943100807223966854786277637770152130710758990296124560154600662131798209561483688097858651799440219524527678369038348247877633106346915349895029432615800230991949653276989229499808748390587031878400207131075470321117488136318523575666236984680622666086715076095990970723678394372073418399255546890583136976801736728187935743539580878997224671203819143711584097886418352813148392840675627164188927446788180278719548478157564592703941357710560605390964638272219045549327276453365041672531667723447645073559409419751911938761280429555052342370967029878643384872196757245765597463732704333072036917921935239577062613807093444339774104258268413547640384744615415222123358732209549451116988292490742989167292409539107358642133280962371071569222057360635591179187108196386250105261766951810511677413465357662950608091657250498805487217537813414383822629484948543744083810827062691402615937970366823986500474890877674135123253790574721745342628968167423862534578814992031872753364624614073957956745352388257272231990126886759538404381250589801415314742700465546024479566656070394398773132816457960750309176435954909964435165721548878802503293339089241136394108204097149796891478805057506039724284699791769462482474390834386559780612029304960450811683478165060573747547225025633649108556876605893574431557053648851575690069929389817928255055719945871335692118811439778432313597385972614286391132276621816547819571939780066758913454723592682790734536704912350825122372029294150991842754864140053316232514882801743395084037809265349839411959506213253867688465403236838459329171051809755835916211765760202916561146355510682915145162280153887111503196208852488489301643569888600431112009556567707518846874490190894434146307544624131325066490157460094291674294575985519775368472380204672886173378217503356646931203966663802405365386536606784791377269157854723700386884616266350621166648857879038079907432352961516784208457827050281461021853368263577970299768039450660474333849810813934733304152168433756765411575106914594112628339478181059722570744808264107793000377828771260935941753527776010995631105037459356868492117498969667808387998379722897355857738328870953364683819943924432491912939934285157183119645773804835057201069467080262244533511012791114077766675568328014360157130576534269630177218679731035754641834907924495344897184283698472224356306109174413257663813906686212389456044613693815124121855726091937567268769300712625658586736695426433227323800581985065716296265450823717487380073800331691923479949840466875406632930573135815556722134765252047917526123369688211314290253152836544496147540651445138761237005035482425993429403177631936628284388625987199898613999978315521375566411685042752933591387668962445140468226582372026292606167713991160102011406949716537581419801891717020975493359112151232747550947238436175405287550616782941864882120313785179903658394992466482316434130870190592526602335953862407681153335381090224253940167588724962330371714119386593771833691556640879043154346306209541625622066016824401801842877820752508272080485231965162498897560899944571777009175238503938225064449685953134471735338701980521539874109262077837014718107958900069892685936945225579336364582703003803892327130415361793814797379212416398093425031293915267833401782449900599646519865117276907448387923151442816085196633054049989377554764202413647953391192190376065559182887694555853840345021216036296204599379726309602641420950850640706072342273812775847166418615608665092449864607902903840818732697910217932184842646037505301198160813878637455459121192936971704906739394494912115307799008876575560856541689440850922257921270962330233512407964338854205880019346513991547781258565602671882772867595460252530847436161643834763884026818944603373308732819470811059432517723038075386923369137298988294179318114324056028214351931569201965162261961376943027988989205996686840752930883527398842373212340910325867546569447109496584946090449753016042002953052508999794972795823580655993733724293971207680614902961975615549344158998819369490270237020172059353979049975566335623566292685583945191175841682588048414476221827039911174089857133971695207349629481170757705583300870044949119627642123286054335049092503857066888465656543934841059053214516695713914693326229854043921014561912689742892174451282120761391310636768046515277734067714221849672826483903307024699035215247082439759527177810102573729389197741865255342294784982347030813860762378817405939798713371383687961958279314740452461150573711321882563476356419848097648518185820194793779314847166673726319714237743935793402033837705733233878516437438097108601112985533771603293220102573821496045117706782387265324019039731674339605671021072676940006453511490687710529113266114968454734640081428043280390683991484090767552354509312272951463073568906651106743080018136509843857292836751428127936765764215243120617752684871567079140475909828102026077858608823033106918040180383271728547769712124114478662984220577792177928684132259463773944520803963457832895213347207493049503594721941695455804636631098584863377262549255823557360500171262193478478032771025223518320040167547042456228183742587502679231968812855173841045855866584299650806497195575370854376394092565413725073302504630761484543633063529559709508167025837188086409027547531365485343648440885410480625229262702135532466222708249818902792293466576324658243394646409854606744960884581592864000099656055783564050383157842005711690829115394220665188369419220411466417807088032662407072215890854342976514362559235030695800818019292349918386389152759876302383142327088638166705213714366386269680002618524011872626973870991072630561638642925511076108203259616624708146839440143847922956807881878305135766395529068713958757981823046335062734827981007221972502965485939498814788802184803200081876489282973637621265398639637424731097206776112346849244231990622104306358425869394203673154453404433820820348119460691372491941300394017764814668467836558000157645068578944618939425327045959691335876726438060709120459232493006780079040436833027201950739569197530318708840295808614458190121644167099250326709248808766697812186183744905548764958557839177779667035986360319830713134928948499135865543676572557611482636833401292027951326454170630045446352239466989521684651505817685847329683091534118365027903095088709124407423305019233294269348738850894431985652224556199456179729964052026651890283841944067131682515334909096475690676469299817902908951018215785904955294764649428941052376588729169048501699664162644542227152111569937251257752528745406733042062889608322869304267839930766890912558885169434815540675052235164962725998507538848775289894849078062389977517771474533891901142077209753245150327506442811050786512712467335850737602074098072049161826542539542073007687076430828288116771150641055280341424356517669633949607194668623647417924028335717352099906852563256726874749698154750711555047941753103581023824663491732642417377447421310450060887254422722478139029148684717223745923380779909724443095554533556190381969590743279563076093944884447975887012093777397451667478771033543274682670994406615082342177846889188063273824474253317635871275187865867924920823067806507660065786583817489240135082552569074577312530273997197856447229873247899343598416511773394178039121580324630410258326611404550681694466488088625895086853873075952781258937102150434318037816560228061378698392257022574284415235293122716266843439360855289730231814303055640293413960566419997351563226452578032269053545191022091676962850870172954118323901560284328317362500554004687867008008964528343176135883373393948694325501569931393635003155789728698911158171576616953601688554215354123364704197963311776400432885067921514528135307707664055720934125172542949914354513815447655757495473598186908991492914560397617103550858340845394814945132909785541350140301029289705887015677789644108577209259322432053137556602659136968720662140555361802863793479673051171958501238647754253883021662485474583652739003521049071072024033857575937918218044392239498923476371332102515290855264548440498618346649581658417817957798892054100736965834675285962347756434942435784290741482954410742458790724072027532269506486157295477277714831179525291765181521216365503234630833146910928266922580602893799696350009177702291736656060681239641399795880904508689266209577061676362622147501386285837388351356515688857997523193658312437488463094111459064627851494629754626803392288788647160834620812158382389956835404160365129582587260576785909550226524858159312839814169713865443580614898965979412528514240045958005189409205678756264382583191908635037996024557212676522322798557321411208124028051893455973227689230974999823830098681677312368918858118174464033038385415387419446974839057844611953328133627099091585917056151424328017524992011021786708987479657574128286683878015805405226024205413630581442883859524194575871702441707754270375834462246617737621677326551628992285735291001373687889088798159576779853426465599028921665772785023620313670393957171279412224486713629842143641118853587858687112014934306794597358387728829483733027150473362718384372043595039556121311180234413537414245545200530996582114025909262659603161605093557211734597046897474296320649106046519837326959063241127127650665947352043061048311140158141536685962847991811752499447498504549263488878901398910776670926386113257168390231492235652904363935706517189597667554419370257991865894772683632545699669624850059349336128604762238313500002561192643389252923548468719750333496799841563542191381326359138960935741974735959807477614708736284182034124510296880509926556804693251793785467116296065957479152001059871257317977080529549679298472947647410411624115606660211614806950520189005258761056831991170710701792182483436984627666834646849439008939142027445817706329162522359992898984188251321603200075038850802907220088630640869084661948152574496430979762460683613551821011547457916733845480597160922245006327806956487217455543419471071498107349599668563308007481040116593213960337156390772242608610512185808000518993016052167623886929018459756376651452619602330091536424898658059031737715308741560047376441245531670301544635973386289956846731429082978981991800744241277805851529944304545224802936126363299988593596468786243051426737307529872685173378770391073473658361902216814978344191338611486848935570135554416193133567956598235494844704739599878157152773970081823149890208479957939470805381034466027314014136100878323799375148627870924343141446519468166225168559876197904559774367841927086484828940406105209969513111529778651658745272747146832795032729927597352152151284691216488818449324447779542518265681896278203382368055032720435702049091691415478343254064401825976555569021140060998566832140080435346653361257459086121532055896334620268334498557118659770640974734452656387190840070044849771702873636072071582385326272419433861519935403766871595616199782585832500701582805121796868981516742530207042287824926020144337252461973564762361371122046018126285484470999901423109850665807804929820335996706637827631527479524290625516574106532959287648825207632746518932545844823605683321581751043578059213992895686198253428268685481440379969235311396948523656715398765729508890968711132207408566796654127064075269255915775185223475161917993612045096278945001969466644000725886745752565885313022008312454283147478473724312835981455673195650377278569334638680305983116376933638601977981212733224821631021832830340114844170010059544936303071743530741394634301804286071301891661722314255015334246806535128950704566946834793926750018469014836326118525868499898757220869271907378452013330275912341364155799429165168690770244630104807803981484345567810364130096661697128238561387973871160888268221011203682247980445338595879742678306116712456192916042989195096909472134065698268258065151711885788897808634107944758322454760448579042516389715725459158356910088475645424735462093711495065076310109841157786688196405533244269919705814763709787226804823569869958475164231847589946823025064005298442289355287410558249047928797244903355020933433781801713878062808760969770477899212368745089666037342178642296228517345278657377738830455060577323153400727708501873968695304110687416404072161034626015064264167333093411073414826567671071005855582037633067711449372945455948042903330323412636013729971575865685280167833013177337030148959672340519049790241143885708051705066572862090492311804283852481310617528108570714178092096241789282688086390668481437452159465328097186384876022364495962145302106964814856485617203933543594560304960262538432223676718085154459337332085136389854172085668987074604762051289455979697430943802603067622862351389175239819969331700814249166669393498009406421631669594959423441893736910087134899197447184080121059685612325135278978901872583234054256952778169190418977377195464407744773950001728536311860959216045934092900443017424328621414307674772384370153922677393614038069491975289545685898479410736644475486212808593597032473792411558992401973779236708740393688191931632285654150115215000015205873113341213254454998904516048212941723350212709405737089304353360604291630446688584300390473927067149801924994637319555716973403076890787950192912743256404120050139131327826411854616563148923866856996651876653281826224775362158541143041990927428040098999689666547576837071005208951275873199670528895481867623096535188161718969412474339807942294874273553184357667285218879835810443253875622333785585263893435590965336539059287808684696714567553253773593038595902338450586899093721897769709671088817816163290275163792788542100339406310305300282489904358745434293802372636442894355370809049538366334580139386963420729391651268010541528071472316475470067962255491389185974921505905414617216401052323008632094915078148557120723732767546032345404565365067873768723043140423392327805329104122456402970841040266336304853945884856862567171765197880938393253808634104350170232234956058306297840540966571461424683439065503270680076275473098042653955337918252415845172569208357189165556248262266506282638612792277770719616564324073545681420971715804600640677832827739739569798148580095600420172355937125049561006301702835071674615073686754729641678080078217836053506277140904047571073568845762754617766764374093472545502993397943426405662729108603592307328874517236006665058419693506781360827720531353909121745200014200954602489198458250822887851633840669359300262204563693602079895151862902165810581177721339775518743782749422761473692566425335214093924358016301197974842220643376420549031876721478494699628639641714456221709499559158253789594617163808772538720912400004308859199254064549246147610085909596574961778568440151256344287355780702387330485542209996014747654715190943925278410347295817712056401265730937725279849816050973334549619000464476036005684598047082525773584935345021533061080488707427670990086392568479597648036242674773072421803115929687134333172961599160054629534823857470407290801476412663278581382065538280462141434957880357704803725665246252853997986635740522174365850469914271185337728336923298882107644195843081362834546274429125267234107845356613240681967662874785355421381025549612225631622877293160142298034578632140951757093986262543967741047749569943665068716444949777681583809228321405184666520556659340649447939631527176829262781369900756927512505060156402826283921494595067507335144512222625255756427397751116750366019974723555589150504742655502144996276023409055601837233137941902967294889514893015978418571923149404769081328690898379023080874179164438317012807991464721084220573397136551227941003354961774707173987816938323999490414538351900832845763836106167278387472760310531375130882533782382442130157101224694790002341567659656294271074320615762182590391645630137367305662500224252497595550054228207178137176631274586953796400083273380828397762144077847578853239349564179906866764987025250189320291104774085915628563359743737334298653337424101668730887768412830692527920311211854172236972071486245835371675953092589614782761604912547013988331963508887479281857298835807886614264632980097655845191070829995375660559153749705243283289011233404180173641812330600274344021995817166854335415167879161066796348552420914976282195011900429215331870326739097293247099330030063489319652770425645010121687414222689964373750449977853263790087137226267843831067402749347597271956340982764173126178753086572574615513119427116965455964036482434017757408502888347712639698596193212306413506997699773591920142189574211702281145543396170117401776114891811748795083303328749685705824690616969995324440547372991290832925857370858618366319929476877180902327928558110296842445418953749703453233742957938564778806978444276363733636293651282625174943929245359949368185630117958830696780843053506984789035783484261286701287235875784794772307644664593098545952454696617909362159369226680970617459139005898735936124162933554373317445191428885761005640223352250688348346499285199857726353705048887233582063309651369351333801248039640741132049418696658389220224481800356602296135679818988099915297214527513541409198901225361983981818769430878994924574823458226319049434755175581823925704480737965421512723437360603809078247367307330503347813462808597513554472794938128800165900921519528096249510768423002124586473666232355390697989719255342592211143134313495604554516138491994033376798478036158168836717295814435772998296588173988568696304459604373771475844492202968734486091447240846940530046005785530775826953742697528188353215612401170391670910902371435433907310223772863351691828420503366224869923474744255431028881998980960427677913973367668925999778349535719883412830137333750721779639006414656208980701808073090541017439994125340272205797478573962983052933282083323748574348166547939892167478894744797158195037030701828030814197721254020229269296715162919190113105519030409426314259866864751617701978104923595199301369321849460161836184243107229363154176306487717222069867649472356971248628330707058610425822172500917619761845896195698452903466662455022559764474709599150584085208435879168143952973447235748283024400059195421849384879288537899727288193467325103119441187455794699172667000452124381857600115054132684108440023973110184728295302280377288487704944030361848260628961047522936615083170336808267687950718687353813315336232586138681173789372326552186412883521647341449065413177472182311542546436550860770000139511814791065120081324313995690371270531111514919452288080399282857579312835117195308323013705996062680628376995177317069810276837398794140817917692751113735886113394805979614595749306873306333337166161807662272044213975036495910345090461648119140686197657162012430562272308161461768187348197588322303664930090023158901732714494124189094500769712392055807805790022613523272342566341837367909608022716109909867569102558879589662299534061209803473364535442793962493968902065278337452663520951538842650930619085010267074601005519834248749285344386099885204836351158414091075606943556126022687079094189004013062682352676106798467285310638736854373041838667769956839738702320751407746966628041215929109995081851116922489288963840983475030587781741690892923341655191473970525747221092956820933800641051394575425137003233271200004863009926527909303373418441562387673276563162248263749146746607817499148499091226705056417795494103359179463613982566166449709289361501816441623683617089537045676323709734272388579925651954477364921675785166074192861696994724263400107218071673729266049250707053514516656036425765337931850831423317240566180531486951194685379224106932788224260539668242084945199751914685630250853369402462967500752067191432854011080020151023064980269755047568664439845371572731899714480241229512406419086268055019148599033561949624813415188010430680304789990020174073893540624855188134654868321659251757318161279870354021737674567198445004894365241810593672981250673354186203442192671031261811326151981895177797405727742124028754300745915298303244700209814405876533718382107968925203472474562633810688358582860721763989898296569206110907524443897815307027776793807582688679409323900349783259726307454377345192024833331123705744735090908118190999811652544708554593202051025823630485105661626938917799325097681094859931037945022770935731315460432711227649869388842388031692153528523481633479072283267338573127897950345896927160190235839756285931052213080111384042985457122540008920545264855751792423796943599080973180863824032870394570432622440573375367736942532425653244467101948000297195608708342043910557781507692458650833958668492769884745129040143181811408788304586611025233255414422203347827248423374797487079305632708619997308923561898463185862883005169624985582005679500619490837896699434223941300651217820574586300679179540284380678878727769423059401290997485959248659589044892038984487447845449487674996518634667277538033799342719264318565139411350075697636911016660100516087233753493180209542452056711181313458102104766430387332693772918349961641039190635514274060438618676721681085826717623250674870035014033219315824097914273600455012163172808999404155298604598519340075018826933398763598749077107873022378793000809587442018430021322494956577594516276800055304024065527740185722537019125041456313041812188524353658469484978388831789895184411843538504043830874037914387753238491606342372076448205181635868111425594416671721080554904758890167038366627140836901311996736791326544978256314371345156983960467405683991476922282103505186174518654460131054123121774771608626236086556661722697398129652993458593867113223148302368282252917381584409251917620279962205108356796121094958826784709930023520080942333279261722755447641099652336893738367607243494664136782908923180671244633864074937597236675473751992345805626339021471957958513750139490161828456992638104331181511898386931152941966263135936230734479457908147807372269139465196703842023089993053264018648980584422977356393721788902308637662942596532491337817084918663369763258314967176006099931534287105653730652821357322964256288252454522818970121853219700684265747429457136390400613879713365516051180175927933172390510771810024081665393982125121686638311942084039277263145789985467506103206137013646224166076404897929161621777732011491277461893581649999484811540594949557796586638307711733978487646658785698630419685958100845480373756366660462245660889372865498591509265053005312909974752052614588034629340443219967026029189364792526857405241975935972080409803346721586951984050537181561181502077918675869509698674500219004233932417528617575992318109889492974827169163237926299269300727925543339314742797511286150842268985302496703654381638745467671538532818724513812725678010164067105736270097311019328152712009151850904200528109354299189174971513705382628923104798618914896318322977242586362294246517995511182325235372962372775720385931962800207957870210896561503622195328633888482454997305226762244722791886895875631662858347149836920996696207677844990705577021198921510660205041966873287597720455950939843269641099055288509963889608804316525550806344182497657267650914592307834269259114209947079338496810862287936184725957331015610649264417871151615594921522886522260054672951147563779984224235127514939828554966515523709526972433888667857904719733782864313864050616120271000659721887137268066749329172142555601934818591319973369502693922241976163645133955803492323206166071568148856987151473860165926347760333690317127453626905716013793483488971803819349490139742399112359337623128859930438651225289121450018036510384029081689440730027957846219089186948368977956719488774153148181348534733999159799557570580920029994137319541426362815082217987989753651813617086992963079331495082616661838355253692992010956242661215999938912417105363237345271974297292909582782753086060938885899710505219741630213465375458160445548646274102895665604961113795845967524597341040998399861753005006265739304792509129505470902854651682338439328630074192786978823307132595888782087639113746789744692641640707161584515564740802178168732500339244758851176111246398017753664286089801221502625646196892455069586022905460195930226787387961300696803806350392511654637106150977436183392105974881321259082451156190468885134429845380261393757847130622271687250474097851264755215001189964347871784068381602453169386007139546428016897163332838552389733769175816849171440646279405396619508394410259203735029817652457803489507764529317862232498377680777835223991576653325916460656125302456511215317978956981343798374866583250233313294375520283724473860764864540048285882009428230571934783952938663370213642650226041534704653574813318100604529263706096925516270885634327361303220771390237652180612791880726575857218045321882067876938014725875276226056487490706302268159508382440076791659935472755415289895667385793616423987539988202743357911278817080133948119529070763835411132673182059910466776078104838104535658815234502582987717790133878429703540854484882867102959578617040818243850689102688882689874392956888655467782679038612227129973066434871453505273319669642633240045077364863953130925298368248026594688653847698051282910053278698652847593149758157604798745459256247312927612421022737286154285408442001094061155884671141275709810957693181017090917103278749600823153071821391648273766516110733327416272787956999579097614904497908539544842451886291155302611489840947446610552035843593958515844769549143636084411154213618238445512577002177354117439434727450012343227635022810914286761804431857943221353299717312310272999147452736119378637625582743016048880635343391073221970838278468627513939228235384766402497594229714720107500122764357997128903065394218149200066365695586825890876499214669400907829964521541561267451269024330954314522949676594941858636437763407514803238239447477919348220655315724043171471899161610314921638594856729205075910942264072468558804418462069802641323995201179687441468674079582059311277448125580907290395020544270378906023575462884906210146983437050110624663705270328662793905418307080889477706371341306120346155179198286659117166373938059343598474935401980634300481729919962998510692161745408764042048254873809495189788035546692780006539329752623922304592934763315996181856855746046744592628669214153360295908273181665542333677320387434855310561623381027567937974298689807873767324622994117676027660131906117446809294658154440456476889586228845722998206662072549458259368597878884948420958773608645070054316919318585007833096875381604777918264102075055357848280926700310899667595566324219718673425088570004776453133074510433214699664160417387564773901247010440245475276387468861187512454908984478790347302112117033086329282152130960543374178870953572933721562386330522486425931396876494389706173051000087802156646834250604421521995686159357702159267556757645465294948013332903103473580374508913007199100992032887112233932003229604652653143304835573030994431523973843503906985797001779851521045453799220745144197171381407608395268180434193618015731360691403710626285203363383276386127729941738799846855841421913238637385984473927763811058602027420911794472763776661420761267267943292703456349693720025947155651350179126654019156922253836891762715219365318267673190438820998763256077095684255562902498646194320951622590129965963266885932550097473454257609528208087445909691903387476510255703499073060022346635455791819746185875159047496235126501794560786620730457983756459018822227877893799661553549330816588316114594695873403195990342209803474297888200095883973153305084810722009509346667352408913285520040972383027627295761390473717679054651160845298916870283675781459487234948369983702131293470179588906481834948438261051844005173577755413117501749692407168631135714517162195316313624708746780912323007672065762710895695100144679628314995185938504791996167464813884540438585033123689148578110705523074352134378832548542195762743433648623567893856955180749322766561186884491209503364915950455321565406911356847288533899821569054753781288592090208462019821228665971465619596852646557149498060140051416000308582433202183238389757188006846039107800609915959429435322944818010104196872916322604392816591816453017027449334026479063111041606484354828972187152901524383471305845492081703462416635442505307821385091846538296210397374872394852651653091865809581642601816666501529539369501546289579848046025982163318976192863775638247583784511796847571237373787280372834346627584860017188383253608021328926004561162675116095776232373518189836134534214170840163274969328634210209966944069506189081830218147274225005545299776185560179760491752321826802303819738724160123658029763942726611420477265926877431004538775054087577489663321530379530835719309515255118398989606951682538568711669472163468476052251623112158510770092100164075113102140248307156024701051930451388051957693611842900508992403725540172167100374197622219947439591883293266817352817958605202440269933393754551467708400332088671930833567785138472686473313454171487600451216759537796964159384830313433307495188264974013704156376590174748062369174277676772555705164103546503460401463467361309508293401043853233260882961840306704869930919012325049896871451689541025043693809574108692891534667067413642733275742130089095178011531666603641816176262050450009213545287965484210689771207534506855574349834993721056222447508560743591660148001806044658477471541612854826007759301943435017899960801112224299037266739111100036898256685151943817216991391778415273727212535181600351517280448490997791181052078028234014848044465922489951763765066148444681805925548166967076752732929469203364797092093619578660361458537470603519245815264343805271646983907953196693853121200786207026983668309169192139874557992941422353787741870338534029825882224109571866852923004428887839606068804251242911984404262648589393108029046767523605282300105266313010901074531823622788216586811705131452614781254067768406803630830968848960976147024313068827956921359823199281935327146381541621038878396563704998952468551056063544067970353997549034982351295011576457818585209692133065063904315047609874499514162768971985268843739955857157603324316197354913219517133659599646058817381449688582158459676624871520233500687072349958212185992263609901453057703343252537276070650668800082494697238559195970414911048843406015028969678970571110523361894833744387628631314265489936827999412750558804941615939746166548539198870161364892539056377820663818618488212442613316301443964814633590447240652421688913202234486585675526765433244714095548432965779192836841806261573718444364320925084955136546221913082765538470894656375090606345457830118457757453721092127181898041794989655904344950357480083498727237813328724616338739234792115261289135978598502145197368158740728376317310935382124145113979079483910694362353213768660430849546448754990059307922893821689596830230833005815942103858420807068204586154819464661985349459160145627872252911505865740197986197710271414293238789715747969472911509354458304906406126478661309666278361380534095269857292270460717156544829913525479922550494247601963322106712581509665353525483201115993949027225067575463674805791767033442811766339705807310289229128542713749600403726747235822340277479302214023913430423996907773119798643117730246270779033532083038024284339400187063869991193721400666309413357920336227496610047006337966211865780513018169189457025153783323385629665459375130547713238463418133858206724664091537961552892980488824831839785331955382340266976835227194141417303686910467405015608949274367424536515185916618866914859521063137517183698412431772043952984457867297197371061776336080277998394114769875822474195136349714683274561027110207473150386802507191383805826403122578509233890180879291351436339467886121357412133472249302825236899297701317519711199677344184610185082424552034622633360094643328794421874183486840515917143049760789618944749679460115251293594876800080972963715518072229935226679512311872491292050565054375158911166470686806380048913782843468476255338372760044154844797728756319024046902466797352867373797400408458682635660577194407794807147059891257499481053197481337477769822471266803727550445690607502325526388990839189959758127011421841494309372196742836862337497936042993254228894501505308828055395393209381295416987029628415070378406475126558223214594194580222589573609653378423042794793780745222778160277618702285987424326726613866149767541139568023889415216784908449168204938352623163776636439391602513857307337770224944148966064968025446912329313985937271182895253032101415948093051251374484922158930851952989804463176149023174054632381918700678193627609107085587812097390609482999577232766700766353068830943476005167752995970552150202050733814527924973108866250995689990889948652207980277100603889459793197896482073311206904382761450171585337748487550858291642704527403275283444169459729376792517544750611264619647668184121402468243590925652712377133218474106943750966880452143360279266540406488245182455141518772932847575500021402548382214802839411720704324963752132676088593585540576563415679704564881123524021636040739416736935718782310636443827660366062679863639534481335934386248905780109048208360540381227503828900264758786535987819888880774080722061564074875056943338174392773880711833557506330219201255594363568703634018273912706331642575064532707481826713831999485647285661563526653151998748881978711665091962913997121783084576343601118103067557725382679864144904559872515328622439191369260343261198998203078236027009751681989201139582440571739313574634017725992986434337440223665510476361857831828829470078459660304831355909321251290051210851107681916254757022642588607643850311551182006243798143048585991464337803958007005029055794278818054646328886439912686106940422920028929648600265495750613139881537709792672286200109970017867797425848662221615597551214981956268930312274837638891545213877899708770802840312493461738170719760974663195431405697545926330082704544953993046207101626270745555089204770105330510120064512411379962096559608121564937450357776162531469244168484415438680398154113193660269425337263806530959864262539838887661508254191266807497561718901624936253742458540016504637170175804117035799959173224892044415204137484489796319501212057805284384122520591493611308120045641210127715818571050580003733782619234464701047217958913762013733540744293138885058857304375645939590643122523369926999275735879323469347913929491280408825811349172278393915268624738365997819679098005122356851154693709585502802706877839809869889536355945492278950796341404555003728032690379105623185476698388898756955565369824896799894771843965731256701997679889597837665553202962046859927890258625402942223027707055048986720924334799232402894553284397289724424436135323005777539939256222191203809719917038729913961750188091276664650209213636129312265832667965422281794330053577021986119631941626345470266871964344278570971700487862533843828797572902197279401187414140740302327392034871321199116299951922218761353763172211606360572530683868046555406340662890256371546102667023318528904975542380176700403934081717939553981769806259791320615828179875277847200287364570861266052868004103566331857014687567967812804299322943026023146566223223160745335034873523137742956680196294460442993799118276965134662598864198650815829681607094424428771903760779650571118618061533728474574242437872361592807400200950565461953660544152040637184885900203789266349859458666372519168853662140792686200365508440414235362237953342383862702584335634982720056839174316912545381141765846901983695229993159944389610980244933473558216279479250928842052329372131670684395941067335895242168971430338341075780753449499107755114727568503551988484251127551875439275985534655900458442007090048726399585733872336595322848877501856993666907970344246011088744064133729489285332389452944060435415038494177961212086612347334550482301805869060526150024847404416891730578504218250378572546981912625505370699748037590255026845729712277413649761729321858689729678801827242149487782164625475217384157934767668793084104839047586342213330205031407916130066997569433065034862963928405224059182043506809987610019685354803310188825367633482485404854796709890340285450247970550949925525472562870241825273121220872008539926290172507103079960719317515242257778529117723730521356646077391782139514341347955613736206155290844837344217161153282492876907245994763302312820285952816544300896387459579281926846552722200445200158082311207148207165808747773452939041671391831051524125811481771694665420000018613308888670462800201879669317155644368834933675622577171236697477548998484860143074630137906893152952212465678524363662717962848418541530596020968052015878585959361876935946786811910405964465931778765679865419860938813029449341692611492352327561986490891714420703796559783355866349778383693588633769490477407404200547070891072356957646748379670389576841806781188201501444834387311140273847215276575754754477172773888193495306376185245362200957909898834942902641446747592380062395841294123200351640441299124293072031435022838691436512611756967689577123544411906240699707022724564373362918790023231661584124819507720965214321172125203898859847276017438120219622421423754536784047677735706527605646584273987298701716136407006030236484200269598513390025709522574162911134875533003086499067375216697130808677142834617583317354845764514379457197254651230867040321014107406052603822207709525991313712318298735804667933633474349784432960171950059550277621804739682630772141272176304601453029484394437371671346816118024664648701824951587827162224133182635417616925862516827449867965784344909110589407100102317200778332739946602789983404657187444028496504244354858895748501048200226974705947678638955975994458528420574096509059483470162159390326630751324968099172377642708906457707117952652186199344367465836900676258640727809320819668164920864984298643509455725558394718459485697079653886538863388926926887959640508120632257187609854766317250392539050777919606598120009634168730262012502339623345833671231023532002557791296355526297680032137226891604291296634272591498147384664557266187917811506905541236080603949872626640338274518907905108542433586439392218176502587093010728535531837509079889257310930587479936499790188282285372772294644891218139371382792141230558568121548712260431577476293751215569510024465754321558138659613727662014267358881357796292201279173370235741248911217278169808652171403262195466409434681081944336274615839085092093506597194604673568381454108881202034623394577807510941385945260386521498127193138915773176611676374300034477849265788321773652671031702462603578552034679062138576045570767158618581420176892036851158988498953485327791223614647962853616069855560473500818112357357602743368752047561163593655093778808338491260296384461031761916050003663762588104233665735123467555593625857051308769268985996267009830369122591036059220669094884506690727713678568672976378104833202977032622437729649782658400786606634205586776204751580664895377161152890545248020528396317160376987348971455369333943728038984885140167334425561054741230460885927089166577082835343009200180437732478689154684189082389537514365547153848175531517209186100983594322888314556295210385304618578404234885074626204748072405856062438436080347092766408546178154258085046811681407359070165778766410736494992400600427345651149402323160996513215844189769625629919604063316750996366578603745637348174992614064250172778145581295177259179295398575451507042470723277629195066292344176363806171773095021933761582708874775787250721367168084188151206842717003561299695223680929745246546310003760449654999841472661220019681696430107247433456445146482739659038478498289704618349825026373717447955389836070476593850167765161206216542968022949983171058349377920586577021228824167331731514610566526227902865202165432332418051882527974796013061111348296352471894528567306887214537818976325987548731949294667115627649038493248246280026667860557228927432678773252011375672936578282905766293673632548219154792217100668363233327798368914979934642016817230351581672997081108749466716408615169231366343916215516707555334645134517916184561687970709494125684822251985881646905278115670844881284500200606536127954070309740791075766729580795598640301990461993548228533472903248405729397842961001407269121522479585803784158786030907436352371499328705663074934802801241531559444217705623495784340482258249821695187772105492545732483185784620506901609623027762812315686399491346990211115073532351231813108242334876971286996998690853100761319659930666274498836674800476325391855484414103222779146330393065242933160729319635505500214243006103726285888255477178239370842531371978052842979282233936458307879495127244893340132809842573859542738280427209621557200998613923835603030781701351810064361234236214413344391315860673238800369361183710589138216138574958723345037653225269634248539464083400818694391942552587447143579376671246247630440081316377456823322622228247381437325661299010489209344923607419001839993041048804403791320058311710025190346805345768990446045617291206956865868553210277665209207845536492500147110973811204012842886711311714966074746263790614523865804577902503165608378304810816274267814206411116459604594277063891002989991717162843192967275939195597653753315610514143766898212378275573367038445190655483360760625623425388920393363742840599710637467071915579729075398404096168525612488058474683623995771431512798804025267501718614098679056034147731150448168323247324903956019280509426110527435489119858071567276915081302654063826521424426153076528756653658753968020378749555199495432784726059737437306783977115110628294908168784989345216863765275276135336209222085630637033418178966690063248842766907734637743101632674913224430754313288488862441824589061117793621357684517893062281867726856230667236574699977534559682280437828802603636745234841273750092627867943957955598619305341463700035594168164396289096861951040748638827446261019294400258041365365831696679997690468171303115861460205099417390744080073961550866466849193175596280399495246201802965801944937803270524308501770140994576185720328298948089415541576482741478558776844727053144291345897710739231021451885228637843749702422189092112923742579220200396634319004254906684855866851026584774318337045783244253975813238766750443895223099148687269916316472257783288798441958911705222752530444102003346357329299957600313803696480236764863113027532770773384509650901295079318110812406243439489836507135176457944367118588642137814563879621092238534391251729807253902859105249198410079194058221913559929992587426331421620895577119351643548837085475236590166208396049770954828650911425046900643390956821270871614498599341887209034400148205363443250212785176085088679141137033268817849895465662370047446567510979481260798649435108743223842887855807990415737164070518084061934172717162056530931436001723354249591904098766242616820819981910322232022408961270784873460493860039581975032349603760141306180542198377180079839239966406897126544574934241536703858858417810203584427359848921569176809502300557359191207234205766636277965106658968601046343674424760191640788533322714021005124161813836202090262285993977082832930432394065916312558664118957535237501731177052751143412238789872496327364783315273712247608747884878617055040285007190278604163708863818918868077417633235229306078646308520979154892150007612019194973433601336197370664457335711295557187283022305254814659233479962655556698137794380342893120185622694816876626350818470017694395278884779445137879668583389430705321391087078885040682353437438778082723190867526730564968341193409875842112726471373072079465112865404865208777325799517436949351349597842649066788001233185257427820803232113303157060561868067441618587423342339921104704480005020659256208403828546307567006162847083676742803646850391377283695884615052410667186179546170269385662486709138724716175540535153176190999478389973905603704228720685343190945749648603190034766373969419561910333654527803322419174566180840220952203808405129602131575916558788668165458041255538401022706925640484355236544669140220335436420129974289759700080893344267679002441447991712001969026346875857884181053165845976587258645043907712691376368082940446977031745035889364741778991498528721297728000082941253507442705766283186983597040980252624641179932030953045272962476134126133505253458856938278713839117404584053710959015401707440039604614212352546363415175179770897031916549300392988217294466427424593184743603922091459117030247688353652796904864114226818651932035063349699181604855504278065490058987237568763319558776815145561999354964016074851385391782978803713111410634024427681096301237392087155647845769211407176402573332874504757685791173989118733782977851892431537207883812081046426272653767102135778162963905739325871369911234287589218797938752036378406437549054810166379269169262073989405506630157067893097953531605436100150904744282400121592666006923921203658311337096276265372105211874964686143111885793861526986454619841724187204967507446891734875478943013252619581669614443688391518949473779457800522641495029324414861411568471096893029187326142525684252522553133309722460753466611124163797611780707148258104485928034157928829581052363044125362425431234222760008623955441092718579134760227160727963627937601735132044552531683995369899058535696662885635852260569744068763796426030422189267060801886182407800369540781766531767407615930324672819983018571459495875020933188817389083988997766241368636200348225391899210792860784713399983153149230347748015916685265054692032655832386256417242039746186816487672039152357936949918314405689885622853721919401584503325950113292727803054149215080598519008591588625926598473210058041957697192125377660935614940027188557785330357814423624583756476744663686698773214016719503407279480602090173910817271286987640200290418194278554051581284356185609655535383120449045964118129516921012015829171572713081864078358354906314182555030571328799499909740875749870844003950486039289583494532390091888361580231381989917671418001469436666933978827046215378582891104259168016491710168492456837959325351956184035242049779088080952910305585612551528641118214657901154523902197882496057047515621302759736159434126355014862814844484532227446705073309828773709550648153055310863798704718197117996680397172889522029976442211060156284868998533646759008512150436233468796098975261331336688780323896134172851850376107299563426534511730105262954400408822437964644258195918744566312112324602482585288801413068781185870513559860314890287419192654569977414775247994708133219855607949470205504968546183719775806156345032277566864146393638160284811303634810123411535301024345793070440126225163841708516806359270328218771271948393376951338705733817851336529134201115300300194197704860827012047543885383533164846666494210892178064854822201455861463851919759913187655374290453035782992529884196504242677269831406836565624522068534149975654257136931138738825140354918629452499272002949065111097904486260957804286608738119394410951555733805628376963762596924892064495040356409780039665243862235146070161191873868078572442306174640981972776302889896892383803655711743594347944253923381800160003676702047872791775476845116012627278804394157523428163529980565178807585041146934881580275001419613686258418582025289988333468281109267915058287829788161044061065417145742093595077110047000280329462405537979175404788825872934527611257415558912049603947261046319694455411134644992233995447351274144151845013853180738227384785391660250444727831753634696247838752014456045331024728220048805405878458297854373273733757644351779184760037337978166710860805979078600639428512043123964343026806127195421306563845585008364200268249944052623661612231784285618639871143930150807167468992291108584080573325378802054777013372614481381297229570127650185066367293099815707399407171197339121958305040631967068441222836515607238459717705240544621579486139566197404691006666747863873571114279140137248645196692083085125988615425151763561716438311392115939876501341877863072135085507069380067771991479443113898695661508574383222311640805000360959583907557037685562375362520230519633291920771534251322670222599593336755173114462251569108861240019405989744301156655992081740308351587120215302130597126421264007292664469508402831819992436401317867156847743489171710816661625066006200477746150613094951863956817552246240516120615116160291343994414162082673697550987213682232284875843614358643927483764363172593008517593088868453674012399179042758818239920116672564966207686540761331006179222942457166634330036981752097061500024585958763027899276751528819535309111442919450224473813081230878923083812810914708260149541927109217596685214444917259144142740320372958509789404501406569468202603578113649302035474980991789889372963991432208035639359437798634097470513759508818384249356536331854750333385472322684374829088420767062272271328241460152177951798841824768136705634204216914319397294024229135498701857833618693243873483282576106086092262790997655985954448792064542722794374808344323320360179158901278692292114290985727648206580548654979232526697525700293287500798788632492793914385795313384058629937855211856214536893889265415152060780827159498085352353402835162745006751887053731496216425637420405336644237073167330158339900986520152384159669809645023289780487057113255532002406137608849478115205027522239691006818430900334696536527084280021235856564130208263979903615075744684200060042812640625093454561769468397191006572737497069431326383950780006883458736001993540224778891136324044300238098724612966073108527309642042542346829557476446034492816958727992531415916656404860193157116515528657629482352248080386706238960191832505321022134136965888370323378036881200785131553507654758230544492633404349789829808430849094731623453968640720953099985769504921802480165252008030859049743951523404979716452661987557780276663775362853426246574159149516954110582690689084882704066171038916690430409432849754405676019740290586243454784013763088554221804777950622933344430443773527126333916352967857096073239784903457207430961199576914552785232172983625467559048838115774930523047181424923550780385775967607922293842049815624408154688227904387291069803003744204268292063478370203473022162945163911746625535472029239017696628370711008170484352201701733996358701597475626744894739588473834220833381668823184806228260730422041823396474062148060115735260904143298365888466338045578744086037280590248828839907033588967470260554902602678385732851553603953767354108368222885528053670274808848730029570071992583968585127144722543105584349024843490914783161382179369354640885250112955695718610419134257006823423101275737061427824232042898254821826511113594442329826644997507163565370333466203519557653442253031317273072973988574299063497337188300690337695686073232150391843616467970891742541283674129482237410668327812808755298888142032540936511219346491733183463970704161694429945506095182579768166165821011224051911897705976627509515307776285586313286772646180318371077444151411751573806556911647844704716490004524037586414650284491066932361115018101210232498228235862310352109129563093725137323604087754947874408258879859688455128143152551669555395300336183256547884368627852508084776799632398300299554909989813006578105825347990513265744427734862834397335119667191171555840100651025283460408004135777771658641540619336423387137453581112019079814664928389948774247165591389803151235930377716660164850607889843080435095366881770984013591914117396057813291690521119266892625991826779606140029379712622003111559069048758501327361019786800279528472717485779017753206002946801963763771215475530607370429703077837970188577968062102393505230649948996735905006510706523081297469207817251893146478432393222680656383932914023416058481149132675854781451938178749183029820791547092008075981634096543046545852493649740253011098082361690365747102680634796257447788360188911626671524845563760546422593218603234349014671798102012363298156081414994382313827712096397427626371075912864964457849506556654934630282420470796825899526437091773292492908267409933980565188914620118786518055261610238460839531469635666757454226432375655278939756486960285207527486414262445531258240663149524830277456581587080485104885573607005789677068243953351986661689547412606981969179886886607714976116785808212916733901285354951537844658283022313490479323605453363506332986630675707512453163287396081215133972311326597607047046167134996631467467103497593086174096954251960484738659756446705479503046092311993663090047909425519392833023258141319724475429244121289001832741050293237738936115510825626402737364677042414971209806679840464341120992211876503577856531924070063276743168535639521075763192620543083392757602732133103387156057289077021589764686121037502641789710768083276878007411605565818428146759972285024655209630655397462940216046400186351146565660315049892884309893519978426443718558937801947824799106976997103538301484806228600722407397242724925490809703616014914253369737497690233354816499594933414480800942916664339397766964572325239649109880791043580088753384315658350816682064564218720798472808908347503495657465330035970389496938435608130851985381974679823714567566402720178192419330455636625966796923306660230432130890172723234490487007435072868116172099026564137207122478327100778960173977607303511197931854147423304567748669316930560635843116511648865071753559446359864642655118620772394502168322445125587046253985217593471495864435956369249844551895455732395268034185669654652671949656982482804379293189750064419702569117451523314560276980326342527840915488754772248278218299497576368309682893180068869591220412156915003554386236478792828868091113942885159648964287612792046905474252410876968040810526946730032392222719347760132628329644888925153369221768389584506112619367470537266341054741896052122273029934649270601961638900060468769710469150309444889478575462724637044284197104478608287922131790388172356034404410452662156644684448947851269496395560313213504971123445689277906099153354172132860312430882085831542965416434628557164023030833330112903837877707285929910460216657076110270340323978770976898629736511465441331286172085405663364213499570379418737724140476412750796604333365521840655608554860498821198170337708013580939207294823167390744168967583035156808010249631533528541135702697780211911343009743149487301417555127216240296798744937902037532237897518685046499262789209726439852385359142737051756056281586394896323079943694696366234026210630548022832050990062115232199713740828617992362860977880316673840951958731824466649642950898801678923040203532813469857538362448190604771345326799092071739304383639711813396815188569390307979898888913956686035301958050138727652398186132526544364295861019945838078642358452447306142834929230296510450108736592077159025222854176402459261695063990954808109204860927049570657910456088983954960934993417293685173102256476160979441873153957853747038398825178070592612558339944306964349146230112393621188202106456233459670022644847563477139431567026622252567316665510752605155053165277178098810827604951528945868556333969757482465159374932414938411423204695471488985251326389855886263132258651630330603650660930769260139554748861277878250056510596857361232090586656502604454159380100488644765534549528861216201815355786020043147987808166907548402821602304964665895577725664643169884316951793768311066457715287544098290077568167577261308844049933069163631442339332731650754451497453678172709756375248276251706971037116638673038846438579270544241517508285826610517662340298411480898911201746655610209421166683244142054920770925794315685711100511664382140796485670643907380507744636111499889882453060155054968784595601986894277234117293262137358698300850693378569644989320622976667835421549427663701085557320400433746390191748587860846273422908723113344222012897377607079772721794544715421209837181728652923984578658150892044229062272555626611710774626902464682221523223166112415797895492079063129937779123774636211226217280285267803909305488720326434442907068598015965123780780944839419450738355805700418024065874673967405420000076944183496809584056911663114065774934164885063964458655974475062471601986653417406333042168704962029586011534738132713494378064955158239444220410300407057224931836572404051702861916958317927512259814131785532002736695260691283024278748775699661099184286821355794838730332253296210702940012145117968770526300097059869193369611924270976950785886410092296454044364513548731287141850583457764251508877735635637737505437358138838722671559423692060640409023573933564061386507928920460059035021058385670331685317956061483250372911776521170084726741808042457470371704475117845442257999147091835388048196314371717720415412102183015791844254744141054482492178621151706411131293220042742898126823846928819686672145874601393635487995602677668476380241537786333396643462799935106262446120172003381316962757644437193893110314900820526863256353073253729835218883743898407892186993232393004861590399775412929104998775949457620248683197645848288556651045923661209501307149327366729910581827718323201711441557191359898137667121726921067166695131495326126236989195131537570677374231592263212964926888763112822613975346800914985994448206679253032352815189947433307362771478992372242366417814600788619273619072379074781630056359594856491780727204971750751392627665878076188211879084085103290585210182803126596853226076509698507457189767857971255944940611093060449581039844495057955919154698702320833587505509994969513441443031426978966698965127036424501849131397625167088605315402236702580636890669608348713570780678918166911494508338285046953766926720003098952695025893052202607113658372189593533328097161918646310284631757224665455066868261368569395493565979584445924747732668287861501276775564961597578909424203319439285007474023286889011289305593299174996406053583774057413128477420501625062718551071623176892141121644331718780596554054701389013406611589040618191748792677377468176501058612886493134497519460395071808202492421691321967178847857142276338851837588378985527967832021590643785829918439595777922041227025718414420917307722270090809829402341976887152932361604791721126029497387316467285104662914165874015223819292991895354841216005123324394297011330892831077865976816110212623573965300410075154139922938573176353601220659318190435648541679165142322330268478974675553801726532111580095505230128807677880831815731686210239039201262781353106473006594364187185655702468706061989279205321024588283667701674022139849454289839719156113778620127731358419307859893960025232984644572756515254792599649283835882998845320548364961474025847797713837042761511192984595012132670251436616933455848474367197910836935588082327243234956513570847885737115048891787309143411980787154916146529990299724188907816726045404254397998956975859675771392946548872805736461991769785026213575831701500678041667254024243132005462432569842093992203868320677565777083380697047312420947465285416562693388923233981750839694827050518675438180551109594405082690717404484923415177882732064131207494609031385669824010478076624793716079284667494351757442362431718384287290441872967401452064284567647241583042963124524513395075805143752575714420717210542114718199374466474555793641465285927099970551467041470646258479813357516481979985959434787928322696574460968179374057949573805692176386705004984417660518368906338751385906440323936099958689223034809997592270616378151433608169168532960032163507937772236543518747774101288298215520167072816695019188641917765363666702751642531552118364201452512230585107148312433868104357883653533483041311660229303745474699277430147558909756995833047526151718189034767422886418791483265254614993302436650995018124952806883131692658022187141151377760701504323024627541558715553904373383431929757583443292171132774019718893950907221391857495335828876189836343341114021713144472534632860071163316664716518235021886334218984248498023636529317155112216828205272253895263291788827002749311820532237432924377208585603267652111626220973137712782201218820607195210679930779225179583486076658765829202765630975285742348622187866276630906046454477799442288446470849306810554122883241108836795688993081244223105795244653902243978650128609565406558718726636920211417270527454786573310752247914300754428337630144788838152833891534707238673202577717494954914652436414365213794771698328016252873175370626771883643315597997984042636543263203555118708471815751707651646351459832944944840799318955668466198041301379180103615692886858591411998212551857001965310591194036109806850108159465299694808461847335583558131061730297840869669124149623400404206892991400288452617055470098779491791221293671532820995068338812796395902359553075544110839557697231703208452396171701488971113537533399478587659487460897297290831325450397725888011297445845324694690380799196154041713361706250901651040208162431607140930110036096697109285647558839432044657299171638787263070610375059325862289124739431867638187574925046433076356379953494823444385402811342255999293803151851684519161110437587713442622849533643950074928904624170120590181365787740641902771488852746506172160309313052390403435559020339265461013897394665051512549556536178860465120026355027997567025306417835293024869730822622188290889760260923899703008884569346002996685678947782877159559233390557815109913422666891143423751849987486736030400582380554402744861987239003259977673353023431264869846440411645014115606946054946873722948745221328864633079195476787832879631177199983667526334992734221273797337341264714559668651018761164826095696575775748185801069626128336690496072473193301970109210404834520138910245870936666225854250084731592357994350356051116088803751253267236503970960392995989709077582961912575827302760406895348766164304843355397022458864118338613622970519738416147322346674131255769829748026020553478012547943577690295040769453408783862205498505395303159962784741000676947912958147395115092033961849405595434860879284064656920666279566369575436858721714413880775619482567154100186527918702675208447549664285059624353210303915976554484126877634671063062989530235205769932393402824775328379688488324361487038081017671167084166980638533955989746095652626929338389491389786767717913935062263863937575237832703984662655254885033261603915289977763002885731495436703107547629763876217029832714590641747088661847735519761072850060210132134994701514042300432194458694329922074963997355067189554804076827756199520708342030600297489274385925398534080753387983163501442595592000738472105428897101950759384412773390199472825325354306193076998502786590383489325193125413040862817911999092071338764051903144906186090584132758827133517559320417689236451076046434480497487535989635388504110805357000266977472247765839011727510267173238759544896962448475629023715511664327490944137732339253459429428819648421311395335529269829793318445770144850163524134405399479468539956550070869143372572863273663233574048349274040156079693827599998403083775411877105276746602716281278575677696862674658663283813671183067799372351741236853135029607846932996902781594385396412114437792460191872711539738742338573318428025402365058501537762034223548860608899642145110952261598227057156403916362524678885652004762578000815612132229844065508016199223811541357745288646672702588649500082432433422064692038054038772476024124284186103842819326708340916324216383603459045775813645365588091318151392878977034549340031090908256533117910340791931743164759729334142650703983287880380377470076302181096085729534064931906028742616466765317303105242485321059488971795974779826995288654560960469414457169445043526736598071153548121307979648077671206863892703054318897765720954745105513168266690970464769496110057066050314129493192906842856824448659912030255193704554383184656240860249563305798775338105627438273297415963343440422656551968955691159861599194050118726567613952323115689531248238098337821025645166378242113578828559209867900761137628979001771364901809079431309818126970789727691295614866176304902889955561529317176425175218394411869746639486549004085865364863284005896006956379260815216537999153246765587989611191178748904159534274619656437052210511859970209867542163895173959119932945016505427252281487376773560955558687204978220097642615923459494514684180117529921923826672937356582266317844478150999952707200733585979059667598931807370853358666333606700689423313685587308087867411079070207748639064817660144863343577514999759703169153447493899598857792523062278585470428994532952547448136837981541137549070321745723411431380538447408425370256939610033895281899430152030393057139207453322204204275762567731353300755969612567051053337427105433005370537791630752330854508982064228533121433649965420094137285007092819467478663021506163416505573527173113184799640643259814304710366967062302902556282847201678248283467812009589284162062513394659650879095708834556706391100411168457491670726857734563162610607943692177922008566942463898495809440550864283837223937723658753268926575803113400225822802812336751024237076199347384503379625788702827654679987444348000933253256798689604727469505690129833369128107448486923283883485103882085946396562980037286974861722803837264784084599474837659307155941214682174864161895497932505178782185659099553636224765051184933170401074052285299616106375171393331286851324618511458768146350179221587124907249591048964189995646743804511206664609717853575823077598292267175443728957721330911865536361040681247583081532503905696411915584792408035911791686857613184823252034333906104666182178251338538199333083157252252408743686443735481800288432784107735811981441859657731630802042597466502443600405643220320092105515733042834690189237250305913116450649180930991683751745330040055890656130569362621666565133044544716311186640037896318798741894589734176985591316349540825495651570893293798220703808204790041758000567418029568306492178118777385643018593011455477481733776087107194736145160069519659236872864682417543967954118419286880841741119849968449559356471727450217560879120442123388780554640441444319193303825894046863331224788442687054140678951098400673193109696813569536945722645141963029562283475835528505188133363703157480283359565036436989958409532471305568090250152278932247714728150940594298043589451801609019603280349117114607753995226984956804993542202529576142416198951799306419531410906005640115644530479022817163544824597681257643250090681587526454057807040953283765267798105398776902805779324555363917588007267576399029973781968038206367063955967504251748086367569333686160058530299165399777594565016041718530894154989453982094318849832637759777645167154579924002280102438087690459227542822432525222175588243861221942922622460056846146121283633133549420741567011786971882355058632568929650092163430578953076036663190979203160430621936711311123482299957451492500215619765573953245081131715164835329683564280476939611729785009579070224356260380529582516742030007169961737618215059915924137941447374808649842787172002021334697250540891416660518721968304605640684378173887363536583803645735439725641727726067748710020478801859641525861008925332071976092929950696175297560705660220265538372301380775433282266498318071424648435290597778541387970591906250914114197688587287029313778505646624940455032949789607069611184109505776275434228863943086432696113885397580817120920550957635418960358025850517662230752182620617433682296801104202856297679112717421702393136146116870447965762185599236505432800880406220285139081422818913873605062784352944520732765704131069245965391260999198482234326181039162711209510878944183240369047529449566636170241059182119163503569318746497510137063702988576412320711422164242834107777616420969757388152290039075433142318944305190421047369615549642771846508484537182863837444512033728154076546987045532975172591976919578626659962248912119138323052035189371282084213106172223164384335714990698993379320178159854684423820433031149268643879000012752775220208453046232417051013517970409748218385722788350696045006953611506785002742892318963539054274294552260620420724002157823735863698933934501548393911264306949828379026181694101596621490032038083393781986410336294360605982638276212166090988956329866747466305870367363096174548359207284849448888909152779225227506946141535795588106546980355319730306021037277392391310305033472817392292705381641340814862136259106586193104650734123961083812971367351130823557894294980586278980593647848388642667740415678318408796892326195458727194015379798623679083693976066134452526277385392054785832628587469472900199291442502171924953435522761606880400731799066989191033598949838285431141388930841126560100914458441535785908038787511083373580647091358048058159939204454079397447985029855565348013549698376563153188368599101607530678837420174352296780481743941524630642370499419987102716761035072141408832254364596775606878813263621647881573219194238522059424414278289014496862783050902609128698812837649627901015011781437276786109830178421834603279346503340403673425871307991364990654440228436553475403272952133692378281963508089444765556571853256842680811148607905423904149987760933804886761934431112610190707901462421724839851826274580944066431299768766552545411920577752945236255648261369025105170171662830999048090902880581408097391966662136762817410659845953749007701762809050763345761429054347514215300741871330047964845243255923347305350189337782175145620699549611932867701229863593036646992922290561695744434585187805823910206533684740030996284972137052942686384305626354915301644676508801134356174339537152152430269366909062770828979726332949666172300874697569422070536219640900943978352315041857155489873428481008690052347815559874561097009522594969751208929201387272230497543954192852441922536903844720198349171377311655517535439650209547392221685417104354288997150834585345620761420507611577164593297482873762743176334883346662389700850724612441246555134042319543541548016568036351146078131567261772238399980593467705145960448688687637173480417384873077690561517321278281485332308893090127355951030828246227925878158553457971081914304900106478378032019337941445552878318929402532158023224197366049493430030342331290105938734514018480502645341265036955304468884826672615792653376285394976243943101842276659122869158577830939855911018740845467950311356113274216595678040177929768861730705765530160439735346018066574666119950257441873820171915996107939437838521029811501446570265101474618548448711052750944901472711112642668051049505036220038334679284473591655082362652077698812635807675488098880637845941014318184103201266124051347729534579893761726575785919521655610974022299551365743631542141294732172753796324011075660870972194813026548501268065126606566270468017215271002347481986464612887789199996085963225633256162292078055619620252255227430791109717407504837714249133592699072297291841870730752702014064016684636280996811475348866776739760863376684098371890580242926137437592937161561484436649261405154767288006077270134205025342788736187127743419373188025835895588244593244191869870503278790749346288939594260966660192217578121353597943992512540765936151417947835777862011858629612681320285961175233590007621878224843671466421280495608261126480089829355803311198461610290531542410794497590429234348164677653968663041111657434711749534376650814276749261444277537697914874025185339414185513140904860306255149088682988281864941145979979852335108052599757321668660239560465922813025100907268698898806485517606140566284641121546738327620316770185759636386832864571906200604002999027176289111099711308340132498552209396785409271489751624822866391998686732195696097995246766899995724088841449483843714612061942426757936203547715147589855224785892573472118390283089861135369436828499745046568308410028352492461404372123956611107077381731172610397317396842786669065266319737081672696198418477080572246695216322699687075776343919294373138670317224819070433708801633169165659862100027275667033063100400353543068162503606432981788083701270144486058937481225654330145121270190860405013146171145959986156070613642967886132465688429109740206504557699196005768975370569798143487982501315592408299150632302738523474565213548638383412250975931528144270766308494626063204963602691903515627794877439739042631990916229629879071369857429279320571985655265664050801094025602795532261131669616214331356718716019663465229218479196252995224364054465864448987652544671260471003617739539163592803824323995114339914567667258291228622852340562512244994224173791800327881236238440202622388590715699627422421496390368039801907455553720999072020039703067554852766673235860040021036833572914042507683233270959209975572233054865119338505131563085096431880669799712750802010460138115237452421600509764939963741608602700621592925210706232311594215294340230238511419823013582632752811605397383056401820782044889553137739753199393706787047690035780529206734489697991847913862007586115970563232991765997107989244576120375365404842304637749548773200149366533440805466879293258896078810327813065620981755534382705871184897499959784348558744874216869271880113998826629892906680945180878771486051564722219757942299875868474087735571397414771483626073647736587126030381014124165176676223673886209929740315866615302343254511011133000122328602659414808879627170678150976002481727535701142167818285434337598266225942434354325730117244607812503487739565630162984953448368639729566214134437968408302794810375904337887331381236094943605109046685180734780699496598016856451697811175145239865899709792545877360430782501815806930633390477290797726734362831213881461736525526253400561579026684821657397565097388637976757845346934201497937083611097018713859282199095132405677599304006596889141245414015339584149576089426526887467439439100473081374398147217592683220764725611923265558930966832189107509848139079234616421298807111307418857664090759727383137964682329577632180778958305719554094827091625817175470806600710257610700509103892723792609697467879395525883556529403036428118355413574485828269121902966492868537626765538809411532748105819412969040568245786551466274297906142303024370872373296085810031311385891921623894436810600824848625488095376435023432805154079231155917298992480056677825282827630272461230061740496401560562929168855522623529192118934580691364387865665637784911815301163363017937921155450319404837156821397616558023774637985386102547051762648975509662471206783255822081130885624973341141833040644258851034302850555003875730195783995721166060934183497776329451935717064769429431270704894323273506443731652434486912389967540995419979038660504436488146696141357953732816525027979189499846543744104340669630193508949182256534387292491012926953365908467751735444352296170932485198817725056654916881567661945053264321763131460072794353942642972286096363234654538089705014309979648870107909132665749704677284230905381073451138596399778297919874785790634160360246985253495392174012714443830468255209776892928915965002897595110167597091405993144659965029025507449671772534865102952533186227837046094651649663895916819154695311510204065160901947269495998725726372682334732161963909980078558528371214161347634371927767343311349295189856638328693634197879773668578140848752542130824670629132033286269621582553979920325692722757096759139129778120006248854312338701245466278777144457212887271271617535603932141726399088843545755446564837047471118120567909681792841019924056540188957271037301929452290988568847293486284350527157023392079635440820737630108418551744015956577654622924354337015020950388549321148011734248802792138650955694733163185042878336261783735458525289359328546779904544714398059894067492049946801369341662320612630752805867502458532973852335896730906143829374248709754177282194657083434965562819355744338164979091634643073475410793620695102770017709849585351032823132271215954985398872473212779195605575017435345979710138132853714268523587380900441492615239471648710714622568846137327957466178737359853919480355575389882199278541150910963558426099245214732726859515136113512195829127146535475997175910437767103299679229684429781216517996156977855000303553614708101746890736589885288413489257535120663554870086434383524714433984199651376771193752698878360729253767493133421738900942203646822209735174070560576338904873913960021588906444560600888419010371533488528032466149631782132915946873257626517009307895945588456343751289267185745976733367058285286448320383348823774652474123691121401572776550369485036233349626649173166323920268273446888185526503204571147668370612801749454763916131495943165109739049718277283795636753110734686556113168576784798952255488930157132473871648089045315902730702822894248462586306027116887357415820733804117849749700543195935362735746118664645482045775034651969423271381334572493529303023241280499386270467766128903480174421905806812587140044840478917762790290816424277299659774029369023192199607562859689730107391560195435799984824188491465298112444121660068344078972278862143766317512330016966826005701238351573633122743030136923779568628164163646664061334154560880867168492887495982240202629101182773934774989701793863871199919746211419879245131176945689257872331154602386010386745461840656033723699955423915047866002410002223860570350001715090145676701675283676257936879292428583498938998383418886037894261566251792115727967316679686940379301180218982900530555275024840149804522050553470591640667794904610283708458801901779722883566074501363006506023694968431670393255040641103903308217102807238941832673583455092313164110299596417714506065780824234729845028111146848091946211149212580017120878520061835622730490796222454279642429746139939424386788338147612992049278478216114469557617877060549432044262223889107774361553260413470009537039476001336082878943767053896204739614036675087898296062321825680879000591938186509175875728409487699537348951734072763702036190019753396808128449924813998524060957893902685914237760567729615029131127777257696082992371238371682034129368733774012410028123587576482229495973205599309514991043576426532260897005927673983507809380240525286583557774729725938449461181221367812581831929809777309153675329657815620702831892743447157983429151696107428629135555295510945887726809815689656427647546843727316371805494823546162995863677265192042938620445824944456788794937566224712706453054598949982214880265224119118272680317187247334912915858251610828896138050506693086804083952843997656826444425193686178914428593523376460443312987553544858068766611841349594417476795236157028966295501869625333119651519764811006423451679236770520382818828153541505506416730647017565367309707689275672926222833052500682132966374012394598355795639686384025384362612217063657653359147273497921432392520529659686779910756971391256438555323318668050668947318988725752770423719063752060150342348628951491992278025342193816639973197615639543972153835352560626627312660352478949322727600945245419776594750113529786213909229063668181406906566209968378306964725571104050514085812826231209903336360224477941282581015804244870818604285186330397762216156060562457988015378532749184494572663189370101889832130695000909307896718961400695394319696992909056497855588477912643683444360517491030361442012517803749915824560280099890106883269143918711104165021350294101625361368131930416730722960779658397426492769341644761545607935960990630654784881118824672650550275073028713265944911329069439840370655259751271977298498656665556754967161039930851924909835873584052905245225431505114756380616923492101290446779736820437134333082556269615743224503392594769421169342614629979156274805591588985263713285250252688051636999138238084281600828302383089490711391017567572591203936604658951288429116783520717209529180871073608606166353407228515453947727975489747789523064393913334961608565065610704423148039569370477396246676280516344259519593880165532198770187046925401089741346451821145072875121974405313380044527610480342317484642228359255015523608672714851004687902291177302371383481622549631154927290740172030291784222218431864340622192001343875420436036592436045720914795001210141996137528369178874549004304132666747245580177525817152932392714919814159781933923535663962397151868868952711411271362712315348251672369421024109950139319484660672094822123507944882163889871605462158372907992528191536571668829850608838102803241053499832024423356372190437976183200540416223264338602687450368631505996455145129015951185817496950672132088935282176573951712222458657925089533974197129603750293866355217883708983536844616850540811643919304641679502915004297005827774720126346613853699601707008974189671683845548968680624574343723027784779594485742430805604470582396756941268099495031559934424352683966258128649174311717986841568312804094681402886155534947428302907409738044675003737030553769942114695756391196420771400663739050208632893830626960215010097336894326119746277671367231838994970436771569301179170193984383996650177488390814441080096783143098601599505682619765424394288934696499870407045760149121977610706883925801058850728959020837641230446226787124930302301243498316675511591637208483534636906504259704352578160988852567315421787415562962274275818840908435313218749777650183312271981425863019599119631276504757555932126241143144898908677626554435583395077001545127222094716398096778642954797657377458722861855481746244275554359188571878916910613407678541802481137934848861589391115886404763296040484154920070398687731741847078811027116386009931329245968148699895213290570151053392196669340700207386513611105110203522933542593010509969349988955329307308382578508814942896309112186580878254331752809672674515505012574618544563124684320864083749782441790696462435888601406305606517318488283247506623593251086705897588311200275618847564259336563979517174946848032730025159366444339958096778540375389274984053846985471622022070053668892682189507216519577202809211839307105540612125294019393315095766046721688087998849497575677997011020106204806901473546433946099137154035255712298632458987557237971749497056232172898367344635504757190264945917268280423481311195653187833487610081688556325473079295750724516629904755873240085065914371870127384690323681822443820734234300627883890735036313794961360857975212395949969025086818792111100068916417053035907390899614578197676530902725797856229049964089070542019235822417720848862360665802781536414679126019473087932021157187223196529024632644790419163904645754414600506624205560303722487780250438490321857153191191639204180638593334639650559338532183067274896476940649832103502315833809323683702887851707090184850076681463290908739257694223784936931493715326307476811933229298101395044518317246659360602506387736960376692270050213209312586015225038396493122909387682122055648533902214059872568695923645467825922632441565641113653801112746817922270170929443916976039093209478186696831505108990213332725768828922858790761776531366789556296933271023136526887546032899864848179407566458998211357470693472333668201900904586808380050615895763319963718626959228309074936762409462482419184319668411742384993667046130053376142377386718495210024981118681119689993420294762599859224195783554034873830863263760017632819795616744643782943375723909416376389094929207733257602007274555108122039389363462231584528191916051444942157195579503243064549552859197239055020212885576716409375081343898413885957037837082237153369714400612416898096816923746708516675185072536402924886112547946857472041057401716183300622314239606437143274398935365684979722051875753744186483697701093324329329430699848276201959471539802088955418979378770187341566702954661935515988840469454817166525124015198864825500451895556441274689466929378773415994202517139644321512606842905914235259344117751610079269567191385171430557036432469012656341220985230823256396074141139441214092456420933261806914767782998920719192467765482118731799180905572469626517621616317937808082693136231667875772331247832891619620864539853263162299089203271037842184702536329452997774876139335642752086952139331110707815760957659638113239437501036696889487977201249598129985760477450580766361469234868577845822761085597152247836816085872361067869096809082521337458670634111919849829745242441358871369775688043864034548058415580883252354547956342590758954338263763150766076677267656379612434347744608606804511234901540150945259456962387591320560162856855694616811396792815475515897875638234158366467388033970211258117528176364280440845412956241268497768142206190766573256110686077488525593498452739540877863431304957893095546562400185059447688943313499946017243055325708630757964197918103108675948823678985527991665528830473164723301651500174583878661055506980091730960206062363097915715472429868475763104083960869190074299427336619869493730528797876060703425430206382584361704443037391877239485507986584070624770574840451868541200701056007583775880882816996833768784511452252534272952002920969838840211961178432705922536919150530028377281557615188782936281700158553450505593772995352610588166581155864595435103757265666013652920887579787794646650992950013109364833822389924714740079442238576612022741793591665020468584059616181288686884467278020828667955052253141718255248012044657606644935061106427074939893169032318814603987183260879724962282590355477840754396475630794911999494973467370865768584549397879479360032662526861511086231965340358559364897009448136212869250017401649889257393519413422986348267012261308674695001208221432449935062700242105549374578993345362351600285789027613252529140113030540647099339600077798392804395599453773942931107057619081209623065022361435253316695492321707503136787179661132547929731015551027946185415598371183386020588046434249747276502248887121369948469974564170740369936756167958140504901318645315772188770122723972985537177630346009999341231764951030826156500608088115054597720278793488475968467937996091384554482905602708995611458408340742980635358261561937062180831872154932374766166736470217234702274552704354519102573323924571093330898745850237029744795004109577688768785500842682075961562605900001583363204904341074954712079548941174465944598909246289356548948714472062134232312394609857556091887878063192656327235343333048333868114048282810922835416517599520268717173119129567822426522558298422613742710459244874909164461471189160721483054085054032758957084876567757516867672015995555036940826320751878100091676106151292247507180542644829626321997913819823389416891111006544937967459876233012154368625686957071410771459867602618121840625766244261098839131925285901290333105626690767218206944127443791182018764317308997804893804746851758369770816753797616568617464805356751819294302079572891707270242628612069333291713645257832267235456549061972394158749337284874786950731361531755507004333219518617194639450833652961962538299801630387250759768941744038749803392609109314332748986275696109496544990331840570649870375893919271943841864467674399185164486445048791297549940113817897185506272725412280945360044674597433785610356554578323032751138989463583814523420817047127706314234167913961590629343383487157928254907908442605870086256879224545939281742595464933626206430838054747810748732561035007971982395211117607376547214990683358836323132868138660755941872860802768405663906724794898647772580000380988657121872979977236763118826635043572828641252231715657031879735777366964036341637087019440272701571862275102314565685262095689113087143190731177492232583754168652911325790667019688947556043785470075977952192356236947006440211131345767842004508207772589689121334914655618521236702162138983765331522279008422836556222778989406199789790032853893970979188418295975917945678387500137955085723974733653723911315947592876334326586286745649009735854634500644752102151424266389583379977971582475076872429142575216171356487592227377164448961074094522033096037473386703847275475536630510783783151411987476778094196235824759092488440495994311961110019603266571971332032721472790893612454638420896771605648255987196243162045577652100892696568979677978599569630847792622213855312229288443937408355467319976076118991309872754643661843801716772298092397016117189315981755881422720197093570895118118303889782958839222677593688708486005926905994244504602948680226400886158678811093925602672702439215975315963994136465922920532718666555975434153794446023252126724322165811997336483955721312247264583099798521924206883208498921444001041911237942644623832782251106010766390645570039247683002896781014979742117139812503898028863379934865944936485187047418877186303504477480237307431181201553895538432443512335766387999363879769713326674519477219650162907032958933464901296607147530080368123322089094744629265933442270608639161440633876311605983530454581682230497643398673462910762584285656886802843666216842155350535322674915813371569228319341763438745161283282504197941145794412393663547815133708256126996771452064602815509039206947078992358187056581580222105025938627964357941101900288414113387272394457764464290623934549453939062231122503338290503505735712976164354962896499516262020958357357258793469985221412170117843212870964349393782570041490850658734592180163876258147773755448710864630411200365947546846059552567097029737569280232363111308003920082992799409278085671698037857620892034513958946575038093236017503281223387012816368318361209417943764558020949680221843731014142322356442744216236325262258701256327184268453730358726296225076134723073813179365054774832480144347958723048539548452573294268789740375520992198716689006879983868450254758243318028219408154727296379757559291024163267957957141386881812489008293067964697090021299281680883238290519640330530789615645077149702418025410322693399533790878235252358746850721605255821336062666605758359844208742559228801274299886492244705126564256576667427466390563663885122192770685432191042370025463618176679270773474536264895689582683592890265989761453833755684490235079666539963345399740845288686817011911640136461756928831185041259485001062342135878757184015510524570881841849495074239079415983455179047808338697659397291461718708441341686394473390196404117753874255385151522317631015635631348754253843462398473022093787402238050988938654736608674561953395815927967333324238034011678911054240183836919751367987239512220713892039026398631660019722744864800374879940287861182087229312893716945374032276786697643336260131965168284047513139474579073998998914554116427402223257733387567268373183024485379790123036600682026393162908043638807340694330557223713521108319946755582688648377167225024161862476502308464183506956514250582320320025612417439271653219631603149441705923082306554646339531648415993893417163366371222077282960909398803448990407686019291871941934872138063317065161732567099518266306412222372318900497776687582375306991938831565852582127396482691637261225467613485533552161943524859761606249651494765175390000023746026526774101575823345738512612655540663733867670192693157273134015304418159489516334889727076234286808193764143096911953371276310499062613729313247723872646945311774422369341459933094439340753110553537995457500815206518271677544859689122079696012743832894339291981859890667139772764295596086836108763552104335197788793895646331381708065045844147768591700117916609283173412349777327301730217406935737879060828280412279316493869725575725807566464734551449804733576168378465781510518849144353476012191028502632233762812761777837856442070686834707850405103179717077794306044023656702191776536710536637096856707177877415549242419744355045259480899055243645157945955503711684290037786628373552551911980896468828872080311043499592711734276549303279800923156200087746793003476024533155401860857462921246636379308060400736961358008458771159283093839182689938592887392012365976920604297337669097485018149336990681444515671029488897598504705442954098587473928296270381637791020521693776599508539836561395316495163103254614058640000162026764130222075358802833595708947138647218055581036373070676725381273432959228115022652553437579381840810069602449263368485036611680314006336067414675780099207780130439765350662446261710019467318648962751166913269411702871849909244685660615570477786883902438345550876300049124516971207538101470208131325917649446964533371830545659044734252439070676494980715699462042320898533065882055368944955172820255118399366581229593754388439334314780221243740362926298334238336760717220264275170399346222429485936856273999847584918708981025475109584608729974037990386624903315169755013105773315636991215032417163923845974781981264568999239761459195284056828227537333383958779928848192711398853740570324876067163601929012054692493435116474066394972268732543866711007345542213905474895857606503569247888456807448293627067194406545873872562569014077488204544553665835027952643438390163224662618798348553936401132808246791060573697371238008889815584660960605819209046775790867024911820386151657715999266761408308900614186335389676957392646703465170404307083947409144204776876000677064775234942528336042951491685242431024564913306614338298898305939714521140332087946346011389620525837852107923859129176198991020421510521822633523553933590438660574895073257346362700590528797974420374318096838287524370890106299649797496366782183122040737228791004034538906682657618660069944297474635162790095781470535278831038839957370025980202992804177479637141833769723940545965079103982813736485497208872346456943475781860893469722982978722476179603851005555659418555109971541887343603429961560720396313450352251491780496299681355984909345639067444701171243917110407618868190478251592168343306036007649109757407492686383252869147380809977687789169679194271533929309924803456687038381319421063233301512388468384501410303496877882309548405951828041240966214311281151609332668637825949884132307110079147182272822080349844805970974516887353992829654019517933107479137831582730092016079392074883816543351105751584903951460426689844516882506439918552872068076084060222311680412882559343568053478870132295977304997786747460634158409007369558915158371655621803010315740358421503159257695153206728789857413646064027778416003509379101378491311396592632810323579631991430319480872674431628801034181177124119408724665835940020620519002659842601300263418960933376114205708171987108140147568780171674540100500209121925000980529994830633587210025774253335857968304223004423941075085951431405063394070518511122084360955447675122708426590256834802797977496604268666843870389991133099664356731979825844539275101853742793268536305483564708298467587142933261174993519155749361949460075414001664960602974063755359331671441255999905139866203987343681634152647409665528199040949948638458381376934543837969212543278373158874615033933658365630287245794681963474389481632832448101878662353299507792298223951130362637549750441954334337232956990929015513388374670019113866175942325383671634997433784678689528325754552780225853409443771678226516641187357559274713300247071433138054751003680245184684106250530618165879180874646285004987045553314031251775019304586502526547607450375997345608516287612799997214028303168048598177420426796276464016315517153774399330913740953678475657669108436067849940431187351007909147585110485569648324222669712095524584573687888958402523864152298383029208413835498613770492580902154594197189867865361281948790831143574218810752497327538912101155422218827313095172499828462755114087951008113577430372023428510731499183773697911774929826025606977911318397907181622603030174399146276700188824396130211006679198800037454612532551370139426040580579778170395480665895358564247986690466510641309197813081479574953307297785145931540167919603015133418315503769715956140338028944144322575249746352979492482686220158569135786608129926962653658375476935187269545787632411302356953591113898361566306092388861590416250899260590950812938436888770703093109206652792768642097413326913952923819956023234632092279630963061582166238071350551154775708253367162268041575294055633508139459738819992322649739800594131366642217251172605291436837717304869262152962070524988878420114356468206562306479642701162680472059270601717287424661401416518561934343242247850904275283860770198786790753123504092873829668967395069103931913456624716898317047588703533006756441778299034952827703388909605810343407116614693698973266889362694523522381531241797898134197953853463302437163280977157937075484900695439216354297472712116640544148529403057896407830186740854143684376456619846664707604659127109529031126520186643027213804141557020916057955581227123921019095405789418521463466592829446711145574548226876807571787877595327525543937384992693320338440449784528985870363700855865467859718554447230408547471135088636439439775717004822262747740326831886700427575504486303178435613329829049581579116486025969328695043896991378228959012429663884425439969104013549398225536515466198013407495928587414325873811814912030037010543357090329314622891009596997668570191878091368652617078466497151110196335571491203172621675654594601625663022697832817626771868749181841646951551045193645751956057676309587332476342650980096164592178939571408622474267729451785289023773030084252294660873680550726562867432320524999052744137260195291171917353908594812636830150491994698150859847660619126244330205839200106009224681715447156571146684945392923833155161650215003908134174031097159054804969620475533917242525603375081092949308554604539086922123490774532911903318279468975097576834051522214387026443473443678166263536546046694270484634253363055172503912720144720218766969344401754399198189725314208595099182311360352149116487639778399903169197978616097006775953383269164087141030763245450134151289378019856388221707172906878135255345616936638382754886990461841715308728444437387409139200082085222351221991728711474877464056812917437724502120261069449301159144775885326305992965487018072006407155142552315921708915126855684892360630010181437483256292121648029951636031649417993319821219680902568163964506422309873834398870930596139141296688216474501336791437262901372773484274244210953785713856580315314462896914520592400722707859620442817346545200925916717415461099912808885889531123483671362250728047239478568832392010240937330358240989654934999471239997029810613265153609387566733262377385912670794152517942536000563147165212096849581856893472334178408711012542235621402794084450567659815987632262637990230250472061935067608264164617501735798528735512256674377996424707159396629743532397787774166207268015862715715476522927131158920699531110183225209757240395459733290087849600066808656800844290444145443433530708017397778224661578809517493541304592755255422727965463197893268987737112754890250301008461060569086555135194216555380954092890417888535880685137321895981069971506350921515182464040849588117962982514885156343757556397287080088558422849205062825441092240755382145094620866845959253541179685184700456069497349035597505398497159769186849653340030589251979617815875241844944202304773374870957955850521322566412484284035592725180886149245116208985813693234270143451402944105728257376617645067789505602731660323466862201019191086006175820750272624330080814483823099684461173904519212868384371585038000200494297750799304060553658657873627555694480985264391008541919345653012840372655503044031114141052255050639294047947286991373902699993604740684979916710370081053061245102819265211219112478181657163591916241619637882938249938286412119583931499940554064831091513036252139745163510573935927624252173328513300775760289959759396754339365454672962435034086105851290523951834726908456469999114594704879407636197441491836579183632501016561993241231096308908909928819018055772680555688720082816826411623665027263471752778374282348655235446962436820780883642231315979927921987343647230934627976201170231524386000108866930418217044330539605459354917754996481280383469570554832759529002216025088637901092724848874199353359201133464138696865422693295837439731444859706214162042717470470641026261521888762127119648893891447597146170486562673362395796074880313059106792761801371738079407777928319734029663777343124857349777865798675485299930201523435805312404633866666363299878505819913287328897183640567945991923952905546284701304790055201165521238234758293368837682102374174484609076732012033693545596986759428732726705173425651477948567268483327776662619137813121367196760033710306905352819485903807927764088142026696806616257261364351409645439564702104768099830316149195865814511307235784219895735305081622972331249301632092471938372881424715816933907246296030830380046213851268071063019926334465001324377595546606553962066016814927887431736959542344722245428997524152377541216490381372499374409558994117519518719493457580564416350408323359714149577468462483551174360853097815715016942584880699116403730755059246307499771403463103417061481258850026080260418013139536037691278690119769749374205008886328373730482067940974359342797015703725446160987720194098258535026188219336818121567796787723976321646028636995586987307027747854223890779400405597487443356125721313736237971762428299254400006783930055321269208937788888653163607226866356755974505779370530838064904332854139906135854109896649695373852978077000137195332855452699564299774641487587032170149755601679823785728543275957823950997831745855265720661815354702216871051886113878716720008935300493932182574862458656473475560512605864903854984470529276084256767895481292383161248572922092300601900549026957994597866518443542885394757668043636225376322743203887738248734182200211516334382426141902569654490760145016959133451775472988649528545412106298821139196166639416097113528375267937459165908844647602983807681752053173234592883264989446064180043120804140867731687378224278672047838379787977657455801041735250927343983356225308261566978509221459650110483203872382041995106421960814605076699632094546039991253731844984875239593570344627478303156383474281452867841017357208900571611186195157147338080918796105418176935275073248343591373377078093997924118588874351031137980272252447090650650355614687619055439120719258764319874045383045762575598103799614147811721413872114177928707694281410640309002652487611376732070551836405699883089818789349735864817104489829229308028783311620752785411765483205571932575353643032302293692010728873239905489199587247873790628082448917353135037954437867172259451205913797689406293094200858259499693237627959760619017403040138731774726465812958529205574479789269093257926382597999315647193431974725717630635797935978192064406927149754906573989350871164173919901258380511201947470467528167255066052906301635044360176731564358774107815515943823448293809394689938424718141178659818757616460552132705983634281915808485624026999810268967502317929593839381148772605595405596464131132875261609700342304725376231978901953791075585322388256589749557684285907005558948073279191780888724439196941168216389312628507865710278317600352796520749505366933649850010955894043016185820623512046652602984471589891182249659407874859361647133297141793326758747738899009239338210458499861938103166996799527492815648838431575401448702178828925457360626990920731490441674865568754143341818100758657117364672756794828209503079180738768031831212657333591896503492608275136485813065341279787961534119656199846866786832029287500738333894582632150984521650906036943988490789378721494613740690928804953278474579382507000831374816084757674659359656390895797053414786856367353179471572049440567044725374634998519174354306998052542405338702186290213317660071702094335507917080728603182569608335256261180255600061689884396834134569051419262195324961743991789046830813428268221971408261757070268555606357813943375083168578230490679385027488407939357566482177896053177541258533298831639627221761889689527784468074793105109160549066652877200961539828489014593856576726991975744703867665764630098884259533392384935428359998287361716571127026042901157752811421791459786665652684773147965219038614355040176681026026617944604736092818953391448910932192465155554471607053273441147448093169393608221821727422013006234631522040624321865179925029412098074785388563346005504444184016446115758739271135673365954861787805841006746699631956093697292320483930320928880994464528747437092049822514179377057798529057410864268975197732734143409371338768157353186750942168835780927321901028859510477054463042024478295093304229685358119115401949750316005802677290841861421783816639535041158792670446498450306245915408754394765736470386195911656484995497145736126830777907419495593946963312082436532202078167463648043113767557030829551701735206961449112265535422751903723575197446456144065614218051884108205824593119236916387529039905383598122366390796782678301779644593729900163832337098621038917821049690515229938982497057320109857259364731598646129082628696070645160036379521102982111135583149373865492180120745789284903943122033442435655413846816897474221644792858569953343832270156598344391888146117026498712362200121554448870372964444880781696011078073169065076852345092951291593076559367829464189501169857952910618380238386178159991905587758967964570611354148204550676826545299861798970486607283567489065746601938001314614255375712952569683363047858530497825911036760334763559001419999737021355667198273378713612700426161055845558674175427657779271694297295190091388084917065380189989980434879488076234878874335926896524248228772596522692591338596169847973432512830482992176777670878091150288542146123295581749824962238476939489629255277255818923228383359512441148977318278409056892091087794849165463140164084935974111770700893983844597109030610779284681694953494801132792759116386506482540320928930388697924430153175428828840215792858393896960848393776251488997257798339956281455248826876734298052621598815905379589819296708176652436511620863795626755931497744853273783910543611558471684067091939333582469324200574747426200287275230990031950567273786902699920487916489698113825612063039306586725365935810430596013047267131393239145305528101369114457715466263944097080550418876106920386724643384438777251696988851582098845299908676928723789655106876968125171503270525935762844142956872276873377633626733585603034484265794320397063582060405473379585029616512672475998106953353392109559183493345969586044238244361402675339930093398793808309157220960653044680770111235771594279944621779366955504766152363437735121378566991096776496998963310273257466632023287226874606853653571010140739317858141610528152692823104128982693879904424112277896456960832442162031218652089182160440640591284248488808096112704829421489520437185279122215174423590394857131354332484916445806067682844743197002826956001623376599487960141731845268556510703743033620574223032433928750352379885483892534401124715018797902589230645205902211450814829328470296838026800007474690455911728073457567305436880836603475419102106681342910215014538164528319591476216662294103800569835111320040841667993476027507125244833629639349465183268948809182504271117508823495115360460896690212313178556274100371063425685933570034527073502741214839587902508727621156974318173160877184190014558721352848351311759598186225040896278566675262331304676135095994342657911002962901485169752565089936570562438901153544142996452300373929051327640633652800284084395579953978028400266079288962211240122669355503441482871714459251118138651519341014326554750094984097934356250043851622812293707678528670954894491583486832739062960189621304247702792493424879622116080572505279027375901640449497771124634673350139008348602222099080065961824579434817436245606515542525382095254348091240184608227630793560325284059187576040982734612537525035903504694223627264462610890889470961422330053863115799290443383457064842679728937023669214400314836561555305908252654614609092117513074059429751013114917546874193080394574360165958765962790497478298332442117906416397782473422709987860982350691034365091378194907757809281765560285703963235290321658175838864658008447637461930899795913259633504164892129448259234077412066796243654088931663096473597725610418757506326908121208415884124716949053115859825330503789166045655572796156645255101464886736439142036947533315173477151221443453121553875954904195751282128034350628481031082125806132551107336839968059153282079263971482591855096317437849637248108377391528814537715915490678681673333137999871920355030396013873946382059463948571527489802162269391827250736006376025511695728225785121060373803736810526862097423829583936954763907237748248392576543362823876136703057141224597592210971423555591648137670240962624494824054462461403475693730669803673219210074026642138174833485202109768272219984521551248557740499796681837099884853921887219845856822174265521203513265971883816265759588311272328228724575717882434101194240369512471114459175334659179322157144316407701238952901005625328423046882441493010409196915029029154736028722685272448510188555532990241147543906845826370600685648263767856185877515699794621853176569844535478736017962000335474965079833961110966408705062358665060510909652981437600135342300326145187669765164454131434156705025938027926391551668254369675278128516049808519340573144932500635263500813145409262441168556204459852006753197083527339289633164903399284689776351907434727975313567967627316787380001388940411976714367843436380177121003996434575113231182358344740294421399919166769846289059730681134862196724959990861786372271021533932348215844410228863947375438205198720172776452380249995933963956419396816355698209727670163214980110307646850957676077061949004083922030153892790182081383068880072544226639808908498939949076165738912884576370849691939688727680979662490309150477767084536647746346161132338974999233188297874878608543353979509658854189979370525398921110340573026459006329798164141216655304797452712889700562253932628848944757282041113027268770554677865909523180406390467600349309837074615103475602324427934806907129021671634571651676883486557687298526335060062822574050419367343416586983349387651235632663763076900927000105395013058873850705004452462568259075664933959488215613245382049513604862708090202454495372827857695665737195839497808939659430088555430055390692540119163431239037766555746045861960645953874752407316233474441135674069851636587045164742814804156038161037837192686144448502138128752925587744064862263491150205300512536112117476557915583387343822797106822333551886941824416247294439134394994638018937894586878270071935022483360932637923256348708877008249596779530650433412004340659757978945190874629588724455686468063611689818618486665021978135298537872505371616624268116672353882873785165453387349998736514076747636413158726641091370773128768638027640604120829526894987589459718409974796142285085056012367172378902561635933587908998718271176742268796053381331985839958025162015599492612391025503664965018755383534274367300203650610802480635128108234884782386444371819850426815574499299518462079183419760843612807959062172848702448436259618728238540912048421681222914341903930921572203682212680622970125031887619706524420858056704598674925666841447285151058213769947267666073681434981344665484346618848577060631439323677952558537907709619406919761748558137037491639316711110567581467901721316954404007049000285432847588994113755520944146488030690778834809626877890984951602048122664141708222784245689836555663422327422635005904641173932795869308921992110027618228129083719425243518470336105274936958787489853246803472739126714233985016978340152277632317518130495981659382064924776802464349043262758144508049155503413123917820557514423625079032358691212705475412853914887376767868608317434703996527589871656754859420365242636667889294260884772642073755654129829537140192250665835459757703131240904083221903903296991574140256401571178947735103306347802025594071843067127467770673133737592861602019712377403059881567016023823971498815894300367923711674955427178703593842681790746583030700527915838355824422322845324029887978098156258223944478650309788755303923299314801469034870306680424482196277422429005682720674744881818805222613128822739593463550314930811610200458320406252238138596710080749375563535735662547423071052963646253809625668035548699988714426169691350439307144847453381281141256898696329927533023802573920678098825331773658272469138738354239122856719893334498175339156576890459838975082262602404759617947541080711010664069597453482303007595542419234145446843523405390541467813305020152989536943647158847514571610997787753674989183355238276267074949889653946936777253801560994112890301313261352545471607560293381208174388240732726052637617227290617007346663401167842320944221799060202495797820742889092300838541789944330951488798737429081621313856534589902748610854195190017406043705237595663836955510715578276674804763453616418921491524522783021328993267433494593706587111063177850261445443743714935577581051669049859401733190131647029354364313366133357956415803189671633772195540767994861918980656797757167899243224932685366121661018347227565307298149687627721304024507561824567491741624758344197816623844636731369772832349264512282212094445403189106213515130883043326463068688998375290637323058854947291251125861751098946368509272857654714264674971475092382960643249374325307646226134963668168556529394181566283070233486959910221299720618815324550106594953487670832047621405170524247713224948316824624222744203107039434579569594914877735474402545365167311389819811874771821663878033925448666570881385260888695296911503207772989736562238597498443868880247494694731970896001956623234400171812589156295950452504087665520410064408274647293384569880593912352202532050474177616344373920955261263155996266008958582478648186389131125518225603453836129413873887050217073857123453687531387905084529935008759955541723648507148021725910508774416042960571344160999515113978648969186044644537671579844180101328914667648478456625616656646852311772832567199952204082175702873290395778015710876173802721899778315285183146957788583410693396513718525180855755637445736205847080077265811524188124079310654032830016841859097618104047527290931255614651994343834316563570132540344085278600614595278922684757409697054591144473086235770689311605738554116699070734045534156989369910788266301752243118793072239106751676628343753749747716589893502879929412171345743025494223599504371379532247178696876765559925633585813939181995487084250917017813375843901692305617007936013655467121471080097288041167029063695943252837279496127513940280316119742073925902636495348328155256911599329581385230084384130665726405947099604981450219532254550786404943216334708550926543751462542761563251230065501030860519865594695321297700761544149780800785369804190775979381303528352460641748307797107109039088949763889590128991652533460097577612903529797531861813668776723626030150795286493306184526295009700916801751553890491956915770712181860215178706575947105103457936734077011132702293282194313301087072006875793965278952771884814583871208381077133775784812200503882962980772835762568003631832982219421353077565812191881317430208126660746048548302207091298782688176238721190602925565486559780210872757048176787040725143855565084064133452751770460843131363048432512285238275849830677388151114085135099694302793248852575829025602537490082322229605691264274808548094386369814912847259317200548151638671179478894188872927525762417450450773643917735827059476222932421798366659153492616735720816847576959776238400020297803083716469369472693541468908878964805740840963163431996799650599968786217981915559871387258815159971514330726845886563042439858472769035998677733149239625059036038328190076551103112514140759406956653654856518556429306430383146928995887373223021549099720583255339498028721156279839369515952502667712037651181964578692111827947524424112990721830114777774805284651260035585943733215642044939423755352976862117665421070535415657817224936177481534700107718043541698849190116055427434401206404890417441879238106521797384115564550066383835438284884201573954328917233270949099461958520911811559832114175653302885014190026317124856737428329177640696561116460201057556430105152181519948587672806883130540298332191626000739981720129193952715978410686142816576864913887198320340235885949779789700651694041851247382337732564973659498054352602760092543289631628240605914435494318837332473321200560370567238468901105346382944269387654747863650092034684131142789262551830808345469092585423392306374439438481215238402175412458193123768016748534873956611348852703350057476749344129389055908981845612726618052624347783039227456797867177385761266428306401206650732275343452098816291846087227713136329248781844488545806472145870529602446469393435313211238553826076866234190737634447415724195842556349761064793574442396552226879162587097186941707474270359912247021284166367317713826083898540490917138724095087796988153238355215758523515449296333214411043202922019489331029126245794784482205376198712179154529624483612702492794220408788717935869247828481623956407449810293333574710443548484938561351214403852369214838355243090654230698156332636547285644764628661413373434373404503125064760979998089566643425683230208819074942918548195234178540299456531255505692318912382532967882140898243732353883092228212555586604373221838181379252731987151457421320935384244908954379275512742401653172926364323271517175510250743929146457168386122438894992689872374945895596126130361178091538677643652815984363560996488953639812807038254958444873013413065285867431858362125452776561036102376123652938575917159341941284752471429379321960914478270233610754182167330380056765473959530378593323692814644451463884230110626894693233371786583433669664547664567861494505714581267835856504978098815305119470773799479331484171553883704171539177336497016661258040984964530951368985032765565913084842506982236760046779061456884939641601559575234275765952441462876451126814099832564949499323900608728520690188598191316184863499513338289035136077247974297682718820657206278567995007116582574773775619901831379844469002542587461839245957403124732081576563312432620360345183530715192368104901039075411296831973786043977231916518667583523058620546867981136058099919589602651152314099255120464205083901254454301487910901341499175064833251997397495862506967275642607435155179926091188315921520623997154260798473303831770692796957489122316781940960213273040916921892825897088930261089248106411540712426072410781830905853899465238877995509035910845496082461087220551984130466385249151287432602775673931490331841396648972987928249659402301008554653658578827925705350771110710710239223137647914254776388593925781742217771559219568985964527834910677280302047584889012938010529201927894635813973557900631496557350524863217392326785436434827700990669386241235253800420962772413918498607043683494338462988616539359909249213374590970258239522867083977574028217927450778277931036201651255515426907535633389275988419151838771863774824106589694640760876363182858260180844263420251299395658156410912969985799909226617688737483183485063214461885404041481229178343683509044978742049220340366578658252367355415677075002344667140861184581161622141217256620191147320604953245546510324775206953112642803971328100507418933285242543727303765317827502232084382849141275596928247450640076004023272486056765794401939502584831060806089841350212279118284885536237336632264795164669687617190005977820432414022283374474305209977897805249186993377990908771088872665702661334031897276435222662715025753879615322759520175702207836702111952618630562283566767140548809795602725519500893005205991247804867567164521330399331881676451009808643618083961076695658731584789875993466217019414724846135661519521724215141901398118767348679524726102095119379303320772326836780366073546167009805067478561821891375342709408604085367783797385898975795095283946895521237585957911765589665462182857719331191583316847440043606666531031556786406733430688188071053760751370288272596405557799641205503218746386027101430400324653811673383181699474827713853453889990015833257288815610454533314504397227593680935702851814990512678057569218380020538127293672537980365353666633423634949469376529183837335329959001629179421530707544255148430704924365190097488590978393321122463442700921401106505239909419665121175991761999117234177590423848694890488171677874411540923870005188144443787966803628923314263939541880223424772320731012613869112853844668574870399155915137948599913282440221573828670365092899313363326379840756485505976055386221968822967533750948357909152637421479967593588822021718795788274798264240503933130238985434663702005985103434317714878553235531855751386448796750767580572799822620952081144127364705069226794942619638880571057387751532050489438470101714776671573535587635085122292260112850902637781960888003639044055502270168916632330681031931597426020158561368607994218614637878408462264226890411171916120119488200627974724802967452881557531199235680441121350894230235688763794894653597618875296838645775571268908112615845879276125338979518072728891185199172315285984156226806811752037031334040805634625273191946793708747427690426320959156184875677374035912171288047267227313105380463538555559539635180189565460047790330342196642945782726995504079394617513493024078987925931476490398312044564787124216880390126848654602270886720608456171778691963279222360543499053688285412621890750719241298433868460110145429168097816456781584890449238911384490145676261957355537513493253573412978379914009493922958365667978496332510146023979539855841746246220890457314110183841230317415159194118363657516851761257712972184096524287035959014031542423756777267520717015871567314816855203767070177108138733022493949050111186106709993419177836093482231998453498355891612695489254529250269145888053049591694907344026231166429729952075102942566104170549047137618066386320738182767040433653523911696008828890583615015564091784272935527600402095242843311765101848008983946417683045186096586697131436783263086367881185633867589903262085272501955672559756800110850319833473226162818494106244303641662478071408757984163827515108983583161028433054482433639297369732441860570195485326988319722476649076022601721653409296798709974909073278099345241224502199593602119802978849683981780821041786549059844647282073009607037367856984772283869658937510001203389161089833176456037779883072025652334970384595567731299358548149354354228713031543554512525655789775939011743516111048877045910343639402515477761337339204699973094785949659106112941850736029781409817159984270273730226294985340830940064749595084228790168609359976739836039295857790743110026595285618054087913449349885236841658641486930072596331584538470893692927245678751880257825701320269336954664214941501012796966973169017694896334988111218885142369061618050391149681539720947053917041332821960743734732138917505790797890358982409173612112428801955874272269134731371880799594211018285800331958161910921383094845419004182929431296846558561779109284692916964964982381684639170185228398739666885464404085888976426595537322827118627429631462862179807225180005829265069704253199843965107850397744573944033593630521512326933447335479491092356632794731445675614641926307481201448302893997536530579316611445410240543867219902086258391850223430303351978137682560325377376314972667484387103384541015934245046160078911732414564484277137572272917249508014267629439223215917121005367988781002938536467670767021894169612415495597421778488861777600002216354014925033769603267924742874493461440612105985728076005920923527375094427015420451701682088060264939074138320336598312876926255261308881348157654276891569864412238599950255008173196923663823297695454300841407653805583440786985272806239571078313407782154224190076501866591964211204471984110207173464865054638249175992499303361318906514455246165141545285328192967661589275957346997392160291471795093649705513976812654333548088560075820993937461986958156965570483425425620740334831396916054026047886258597371384470321788675112184119036468935915525458613501538669171722703486877274798431303100283383062861088357887306370805969738834306294730818454228496513442233335960876178070245888935191967357688805018339705221068914209143814847424957360949854103491033276057171403925641664894824166666688687325438633989254981972683410254247640684480255244664923026733081420360852971479845501096223408553102629569651522674536078019053986924878729009150821228205901932291140127962516999788222207028451371891755158109059195994556418875563229996394232015395894245597566191320351567958034613236657721980901472440953095395351930028943553231830892498385247478271863250627897077036327697446103402444734911149160903378000786599264128041818919083559226914117336868963922819682296654478322311635095115970819295048881472242683977432065807030758984130911148214311911865091226966159353555657401649629956468133264050619789600749426412379726875540151446223940288876217685720566944886746726632888872465180307722824283748186116800331841657759224743834507794908218525413894953997410198394638035079668667756800950902946473663850722008779034519892282193378086332234450148820658232497121867925137133747778903685272199384410884163789681323069743279557665481283112148823229746958710919653865873119339065105063105453228594014322045933094755656462641085048692376392733051354285599804621479938147875093353579426046202584160716701855197785843780815167533995395103577411713952265033086938132750487024542370577067480546971902514636242922798512976842765566394855830433872321002387427120019900660785391360643593919260270024102661103641850478086098537444611884651663678096415529444861085075013634978251701689840865082927746767373366058357750128089729307723428276122597865779696066458046445754626708080697239383479348087257965197520757766713848578962555113120994112659919377138911248749449318738021458499248650456067567021558543429190893837375195801817160448247793454231064265768261591124955941160289405028612220548164836714049150815404841109274586595759577119952593738095010306683039894903078063050219798494948064656642924757470074248040766215962861918113810106133309298950836211767540925330715164759757297117031242314944080251287002070269615693272046659590710728585040466910260398494833492746994752309908045031449790959968551140684016671529794040544212685787749932179473339058963520097967340737181755569758735909444890489039835948844684697757461536751237397685874701523466369437204356425724937124658875287964448742315939144727504602785058049063852074564207782106400162810846792092377426159627013293716615559995256082250603397500325508922536876948995572148286271463929219909015246446697841206324078177290452579227265358633878815463009618360145854066370469703350840015655825977970750653650067900919272101185768890268826120533088784345441947545166601415470632963104670508237272868384114377680158258487326284896311400954382861655530144743353271723271587142497599542395407202790465440032992938544708395547562818427087503292257925724492515004947829196251736697407550780006226485542680742727079838591979481773821427851905996920033814979909400024468531328944955939365604897671469842171236667543144264126436358350147971453535838917395491207318306831271408580390124731681321391395632151216421102807233519429687913701880379815397032173085011621927889130041055702698408986625476851799651888800761986018333019417276207126728030368800677850417807289807661800654080575431482626115692862789193864797607405626536703187110158203865358993977069881005054189378493863188724103509873895543709355580527504934066749960389657263655484435861572965091173892816995690770654343823372812178795391205206287799900386844142474312782740284997498751626745176636963641959309818575894817621094821585442145689659786193193342128873068011695634042906862649451423436904132991336142093968248108999179172636589604584757289382896730609056406774387830212016275169595945058777419279844547118010436858379276127192066126712955688568709987799406221498286655845938918480198967911995839053265102515469707555069693985192610907715126997878703525785080069111481274312849550686327531882239403858718960798536557276622073317282865215972260109203494713136186591692189831217256574110264349906598523417045353339411967641837159794505615757711292210915214652424719777651215446636548816581061607691414739514311516384078161516064400335354759020954443305990374746995183084439419993458556442208591343847266763331473413374411170202772372293889031643135230684583507897065667931961440393141011428783906930544175679122321507038456710396498253668844290842744780193395495943008260762535691532018716884739635442707436684392635320960888807116041430015033952977412831937241925218626225644600261907691024811513260929385568001248119524473908751776952921734038740454765983329651877580751916707162433891754896830833779323496782752867410600597591269279023303058103837434151744477763696507135255812065325971875834817728376458822531374746063481346176560730634135522288792906450092376271751250525730036698960552428776111454843927557325239073127867151701924317925402393693755411780455672777901993712645386781587491010763832900030604472422219421581712246328926846607719321166242561600236844833524491462387053067504467312424677145847115798034834763538477629394936719440388491223196343978447446306416570517695423643647071604233691438693711450007842884704291844634058094267228638596637349260059339724290744304146591239220035544811094573541100612229675156141507203798192864707397462958820681782538677859139583647871061782324781191846710356566662224545406146914430354754223863821414257663726856424049402274275420388215232822847532106565325743242114077712942433105554715200417368786071396450712292980718431173602925956579926857127521966454439360064089631123827906702715627061224335275186943953932636468154401326597646288988004980813383634720741233375454150384706549223042037390216103194855592665619097576722550375916219408140763787508182855982163971190368310536888174372679020846329827069521617597259235680954705192599808436294509507741306636226245756390190472456014453116289396253074497726415178426537125624285191020118785864752816095374583018533684598252110678637173373656419678338619426966852570139995354764232060214595328122810761433809037906824532258348275571938356973433578727566972489501538058473924370944197172297103580182568928335716665418510177272018701036403049295088681582250745783978261021290101342905440524477661062032531919941822729354387290355922685153351989187041623951010458765322976425495378985786985034613578251727078084210754307890257347460375667044243540226866274482425383277904218208555091480065822306954257163541920654161517909509610549515455587367230240502868569847057397189112179824424073302530545370833695760479811519249018487666187684812375002810297429729959983463412912352247460174872142872866543806891241507122559078652864083091535683189885150532870379330753077296732831375122997754308000375977110185199703993068029638328205824340670454996026345079308055081300936744894124081199894470427009094407169175610733470521634013063175873235124222126511232628758758920422944725973897969268012355226869513053421984022729602915071266730816858746405488765369378087745772060022818321777262911553591166173640172988575711614549885462211916346187983222957682818947766766533033449700249579263668466246823392364132106279560829805105052279188524824586813793804701114087822503474914554538749690886288527614153323979771408233380177246863549166819564146508219547887379147895711927257041102660447105106856578010427040492676889437225650765893887399041007610772451864500329644105250059791375884715816521695234697456755691531019174804151679495427649227643236842689227633866562700946307732100554902589667369596066152019718911134306997249019314630699195642564596778988778240679549958742420218754411041069857423344495073789915420309289476004969923631277917479709488837810272089840927156813439254872479784221678841323431119154188235397651157675689575294954394616477568134559518490990028437687292534975931759520653160803072843113353664610112230170206928472503603512623210572533124010241645603047410528728796751417127927484761913586092842564896300407625085983473766196711789517369605957304494928669215277347244537117048621093912972098113563776203316099667928096401386717045315136306068574450856501653330544591734660748200647581877368494839141509265951443406850250786457520962659155297327707371815570508129759056303110778400563723437472463113836512235513203888129075572185128701759524070557727308238768795089773646123080780319377894255884296513264014791718066641896976639686253308088252518033258866725770676517096004011458355504442522883172647272165406873331335361006955694402928426476326455383391793136536797341750682869303127748518142690169661334344079591779644193470758018779242468056619363248769482189753759404966325194520796432795749141387436243720577724259604338565644841345654792135963435094188172989178882464276564218100718573840408534548189276475993300379992880586320820253116168390264743158764449009423435436835790084180673592571225256830484677009414772018978683724754568116032345082415978124176621517840120685304194718935635252065597401170006090434960368776872654084008877567941275447293599318630743770293854655772936038277290637027062026447183093038575561875894892924621848075348982789080815442225758558299466217409666787226906334348133020494755769380086100272309138310095451837998148786413014291821321423504741237390788682302105633273171317103934916717746913743750168930382265420048529234173074034385035618099245712763999816101328980056785359346380752273484471577635920704912647711693256151901546436199588379896653936052910134913110425191839962384382186187377370215386071929846535187778258973131077177409987456209358815285617536774900864958971188669141371841117654122882689975375748957721660021654072402921353184611937755300222203531319437511188743330101239445060458330876629880963683447372888549520042307663271279162479122754647140208399261987917722278959954346334239157246801809152978583111288933030441834310023263970863088944537188409201783054293485892829912125737283646386427872931106294717622605657074436520809546172059663192639170928815309824813061404805103608333951034487623064895899426029323895334843728198642776122673435756082768764822886415762297900192811207522986927878605495539923720580751993950393798991754386189524228626749057377968093764511969849858135339782074443610014620715539878263248753167520335998566047549327319073857666358735201997257862108266548487370306985022013022988703887002946983405650544734310490921867503330011726633618817263431804229139529914266220158675135259463333202003485231161084501688095259294116297251895255221026028847739135318769088969967562792994726368675031362539234065449122544350332249048164976991174853449925087500018059052693616508019325872579377249010962674695854530059180038684881642731800073506086321764670956227886169720067475776508941260427163502241601672747383831902431673784520515074975865382645022818252832691703241094711432993144916044855974634798411034414029973918235376621364328699634435377823012606068883227275885113903906157835494044255456147552577212878909481523228303268290223517387443661773579730524167130252118992775856298413160024904187744747420355478497017412854212963219120492369323384567778140972783543537965577201117255081497939698676170607036912898622106541674218774441695619258329145019001332182820981714521188578644552357058290407977935948180271513918034560374886054103886807309661499634412862743959982878003155970869444547693026244148548561421207402934554807386379907625121274805116252559836781450195189162507115402997838649476523923646634829728952539360370969129630447928474057099371106384896946248445544567577676396249276673251455698248736632458392012844163583825368672812668049266030676552913847266659694891052292001986598929751913365384059563922255967485647993786644457580229962272991760921906478454114039459859937434875313138245297010580146726965576030715146869029679362407157662929362943869829223624218681293877764756274589323428434065324454677114032531210566973064986378808384386841946657313293477203831154711051287190203410208241777306217391221453996160767608372322442350752368658978799746777235142015821993253883986727179176550376198724445546635837992351039553713531838499292965955250497940201245936379830742280894632669302892870844148771611425096519395800071271404622703923626478012723945428301937179230581797153178031323037089430476110476714162290898429228935891207511033381750156966545356436894548576617088544310310398912622804352346020127521879820665935321135728965506099291217784281260743726015033158149710506577480469214890815897324182154539233793507385823838077110376360376325144765834490458361108898882733237889549821391839318229379249193030371711904244242828508411949819748440556892492311874921586311726966199871296396533637408838574638113590971068263574142133523214294939780531744529166155174480708844178895411126765454410480678302870895665956234482206832079957762541144962877354124647420005818363237181344004077249943045980441999233535540644647185874403204731485945793736068919129862540593753433991871437978073382645468821353183445226209676230798309071238851355477136596293779481681158743940180797504747310453332975049858885275763966186514567963014817441273521875355125240795546047760770478830967514507828290107711042710155776817692687639929854372694007816062314050541148418985903907053532323125433452687337288617718428209532134485974586975928661126986861590974296542738229587578839179688974567048683287664832419191193655406615580103360929109456966602851911650734555275947810023847153411030150108731239039553544453453052117077879930529462526360949720888460985194703492362012618274961061169630797137413860203561113807824200320091849744103069960385379251632152354131965913924196173959106562193680116318447081529020422932834578045960861833639705601696309735657120031258012412890593704919927642153845040562914385866241900814118386737765834905151939263909077683154049715977009740831959249638682248921164019825062024652716697565608667716564826570691593900118140566211967765139518262791352641253477268963878394076902985900339515109061779626507230856256874024532211296828032501011887934430057451805588230394779472571778699993776194080710765309797996724646507503394924355964413330670982333716391178371508817712768693007189452692008473609723445786665999936998415183528659132281404550044760249161601677937555962499163034272634167520346329326578432579259009592019439210659024196068713381378443328666968240721142348415441107737682885708859653245167146432046130781321722460750498642331631535925865421192160739539271818095897092904636685460009141238876565379652226575391719927346408699831097082879566743522943560770392821690633077745283025041864355353725999190324873163503134806671314990837971972237444722690969271786812549120535366521327325337092229949307558812642922574843914774748915969854988479622120886739512087886598312392855101584258709169197806418166608787905285470369359845107325425882046554125817971879453087070034307641333488142184400274409574103316280549198833372053738931220623493309005788182261764030446362426808990794686360725120120741872739935045829614291018588687106094625273633917014266560411843181630469726725626645403940197860149045999743962350961545073060022050328313371372683508124561157671412437346299191030806247227033411169689729638763571161917210052014907861552559869612281873083733452268924162323979346170636673770617557857684991602712528822968311945662845051309784719292086430113367001516907833750957790311879171406549012188933355974104380300740421454758900811807092146434889236242776014827914737896229176988315579368072884348302706223439811095907302051868416958092898293860559933419668979025159429858747623675211269135227315427800570215227275952490309830981086302961680993172941081776058050994703678700850383719361256991989262412794515123469575186613161320362406337719508872020699535157965523661888931707360904054859205242053420496118040796980501082718014252439440050934431089494541285305455550260582669047616889540179273038110098589126562712880140414428032555574006189622118122360795319384023191320473066896411880330944179259631835485180335856002894262973871047901687263134733794420154506720549171886175972391229444632496878663352387302662500394765023955530417037414362267736248280933421118473337892761484989844951315564985131788050663514129564405778733110301540024999602664941488177788029459329222517015593296401062601022666035276151147797327169948583543772368543655142631455986321208907299281517784472443821515979699508262537290819163122040047500080393520152129205560915250378684675078597967128380637579827003352048732289370688559923996974360337393583139109025273552386126539398816749161536221259653735375983283618847150598262886279667225156002358729762686708561036279323390589291562436810682027241834305479977124169466478559535902001454003628839800170178820873907181304252098677917388186680970111447273904645938900389462315952859103994406189348678260674165566200912937794937571847545589920089462767624705021445975314415703777775005318121099495896523209268317183787871457969547286278919013348884442291491468688897889009809569243327956126859794126258091515371998480566053666313006215489014737193060398683509996903890806872130391744841654297205838636697003513242681673785695006083602557145960361150533789585833695539352089896434313335162974185621457745527957412093729241662870578345508782052106837618785868393366515524000488586234740344315190400533727154788327682905816550836384880421033539234902793897333076759739184815136289020301597873966091678565846363895413435807605809458296286024440933746101100841563476813481786452213024205946521775368978862257763447793013256545114478873585255387785489880254367792713289793517785195974037437658825508416760145530835622576314053375704718599791577697521183308650666638623372888818095197431978220690905248195410052899076372164560321977665102057799545191109355517268126505026025239274536824619017600829067400861870333392738960543391315026602452458209888214538888636611449324234166839740923849899784325864157677837843689708827442334477647046543691608693070567399506562338808865270203425814343590510468667076402681581447117764837693912324902342806921645681288797580095835235402940919730486831182902542570293708750102055642157404895419398201315580264819223694450581458523133498430559126719703158734952627876151084905121701843481059465294101576173773109385480154602067039990321917084036040153259058865376149188136213090781984114795103499202397065599686364624114201613937698087806210662699035236487841720860318894534663521845053195356224761383790852987745717819834846067636015943794266850856909066451869654189129048614117963124559695586526039118435590279168781632982411978577279968897330040911645418724545927654651472325696128876896942026613026827001367945189093908862445430318208170355302733962403378184177401811813643611266443405201945424346854546758084380871207810385193240539186634029548837039476039289886518685629259010712099554105500062093096790160850775922050948321157600994806884356324256270669819480002000835651569002847823691756146895680383670179129787662487596082168960203099844476449996614555814136448750452900832107073592156682939879340258689776097061925138225234712044231183019455262106599364937593142179504464185073171578057928060324876709612852344441043454341096668594933534959852232082052593870553137987284360733267065330067715040660582097958356541731560531586735526779210844488936032222409195662349718354164015411073433200578204897197224899596088374121603074657800656090135520912625676845219111448850725041419873161657893507878227542274317763696093283428302911396612903949763883226022772807567708412967029792349718520838064432839858603332659922747574871447472547390547325820168337353546862548487734984645262141838269004989098113873814579057729989968623727761776838337133386159601140564567096770131630563717119160116965446192738029177980673208893036720843230299367011482516723020531903530643796515838306477386216426856964118932128069981965118614049132037087398044997438185029847120559139764620592337183413334865397516954139661125708916487038667887773556026091524058498904049896790538270677217531414507526607859844819793648619623328666399161613151530698368520303827113623303194017788068271907220024511149232913803069653721601453392937982495726337832290456159826772399317706285691637139310262436841667088698145869041843934425872210548750627245548768321994003015020259333151445467011433500420223299882229636107445656505279749743161481404042628850389073445033366205549390905080299219803088568170426070445526173124782447918128354157629849776119640582332540653068074233005939289880397365716966633013001333134708785578943075410568194019642994509926270001271209765737142610435028434942851441414341847697816522964538465211826947367074908979883404831643786219530571563318100612505694442322215954343601290879937389901785032610081609094199059790649161344693968995246018087341999039076561628201711535697314175970370686796353149795017099219134906635957448159854574246896705957530625540039626042618922895960761665485337718687340504948514724738534841021589337058678102179426491934682819367486895878259554438862852133150882945420006129499084172120537392388434235484449997323980397245111399873133610189059618785816003491332025783511544383530293398829669853326852477639217699400917641850454911763924188109079188278867933221567646638128415841340496068770994274474498908245326645752113828180936142482755850421204395714100879974051240730671048852776337792980488698319534596279409214769416340258886709786132944985260844701863752901519345694950953265196566466799425100736650022670148734596258334973208026033446283912275408081173604630801837057135299463378621360346087912096341926817077764177722939766872193543575965843592747042174597834144411826093094680320010252583431310622708936036017167439024342731058231675155572023648692936310138470067834659762253548614707058869541984363991269984964277970187628411832538874063335125988758465549424999645424785452704493238710528351868638586449540189411898230556666477410967340862728868995421611582619945464241891250119067396488168754536220889509323952993390520852176932315390186475386608230949540725798490627802189933920007448027122356819930560860608613484984259750295651020710640363689964216489784972621790492035175277833164663518513420336960310645591422839204840123508707825003455883467134894929211125006359606343204715484302635627212547497470765533748645831116176894023019164467269350326596252676769124019194249866958933930694801765636623776469813204133389515376969305137771003978929684924528445891958772241477933643176263260765230602235743813278943811087231941738056498326912327934016882229200643862073454298944491626996249176295121970047570894783384241503339912866587924860955874449952327041068772847381947796101681357754346959975297941688841893279786712422952941452340718728460547332447554958292957214069824830368838228395710097277125638050297563593701596706655503741687933252733819942549730654823902920711732019479191126770731961041715034439209648602614616059271254263075211790796326962354477604608959032058829794519599883388984925687846631146596392027918335979966118893366592163227161506593694817590035217327411823577796529122827665540817086902122503957171057984160107511906233991034850888858213477607249753615860040648210775737492120328818595955936481240015726221321069692269083549854247238301193736702582527594509142870045464969041799621541733771835427791421523385533376568214043102018978403876848775738267703838396732138826335154233147264873451874232526449853314247636442763978339922024173463117328731709032532071059736592570559526889137200996442585768244180718322170421896843601206031637269482731069667059461744109924020147919375091770714246466454447690295891833685904271578216029864272934393777789572976685196320438303400720191664590146120313710088622979206214092575299891177121369122931844919493129459541568824563664498925071681658553122774560923035340399253025421649313282394708316057764784045448300846322954324044020949132984336983671995482789461233425232269064544119155981561696805717808971360036939960431926364409815093578466050910533817151056231987232146358884761922326024083834115728083905731031442528321691453971442748267201010859651569903142577254450369165437411480295358421252246523412990168776384021121162848052689581658427071430646189632032727110692184473922896738264546802565435240552302873053975236704991127741896811492495807716498490427340573930484283961437860033960047890787565432075423892638782579897614701514120581898659389217264496842582677812573032272531408703807076951453972117810727776457823820618782348182557720745186671782382314178871181902002432612456395526554244612129040691957843571874610861733651606490579518967765048562432800959307019787516986756682906218765437835739174703238550637859865120828436572479662766694536839073289747378097476227363750111532784303429978715692854474915426723244201384688817968315917295732683374621337289162952626571776233334882861142357874967476805876311867676048569994794838900719638427624228836597155662568421667780248567708818867574969506382585696858796536811140539276984723880284051028427247501605354156191891498046709331775887394025901271317956184094044075476590302203494535881055388215276030419000918342129713878508381267204272801122981588679131740396872528360474205931671702706888832100859007564242701258708900767871455782482992677311377062552652665048511415199110855846020128596731428731979391134703488264914080312967798570452115832438251909011683270653178174342077562755138122488818508456941761934261391667086695063774455365141653189191223033827815602594497121953924967863448079760640286624438737214490539085522735383301478093628480320595613208001377166345270018918725504434484663410806862795173513168667088184185568215730488750511283148083506077049977344843869140923911558825878343186509645228564229830535658451678511590067679015146815960273653203730850822004166430887726444312209101324155873180673677096290930423490126644639622094898513440013459616568558680736229756839271268818095098721193177444233172332889234871312764001256086942740520390828271387607936074935875823588102365489828195953367873928138241599524484663036676184676098347864938851240474525128014269144471729667744171016239078606632546231794641301432969094436470566104639349726712773304758177808735338954938728330759784209479439071199436536745924566870809184451666537233582866983796631218885978072419006446198579389984688791323616832106179470742260850418419994035907300757202536912112718700358998842034785401747697295311658293340232502551343432970242042844285895433475265753497939010073251332439989314323265267086937253394509502631703201074720635084843069504587172790217082515946939012371633393730076719898844992701001070343609627840873280098018314542287340524545805363209876619844948964159439914759729013667769768133666866604050721422201125308219592601581851574731071399610911203681118572629864780096918183172722445278304233588267189500728597565989127067484282143767726470359614645791754176609490747069640350028069131507181936977309418128741694400407035040767079350908220567125627551437567802227291552697519295154242838948024322182076540820770028615399638119440301240080723705615118987027344879009187558480910917551698828156025042395503386738068884485080957737285582456540764376018794387423799227140073711547130089800222472226409757683475983270828238689374872907411569720126469160510754354585356645718060777147604327477528191339916762972057535936169599994975797533202837460846139855451786514897741159223839670551224288772822757705419459214138972306037269622848400810780446615285855415369642074690408561878737889375588962624322349951046754816331224303897823341564030309992181456756860023905546315754558049594871939188267591384066000901533215015014344754436683081641457189714264107000525635164785257252445908527196289602792076203639743068046798561110919395033984647297555620502087930947629742117380622182191260843755095816240960070579378863372224400131593331512101459831622634491489650990049142529179986452265855911051422521654018517880757437400106278724258157998419886018657633430119982051101356146924114748005676818523615802351459960800719252421446232813215684970020084573692408731817786386718604033317964621776002442265821479517026838121680951323428799947107983736794089719903189329592916263109149947681913496441958454572659242420884618983563833217360884817957047218162632564969139076973596947618511598881958667375914502152175145313127704654409786366772094539012921138163309173716946702048377200672134003736627815854660109386723944110705260350852756698249181221229241560772927567001819147367627067550722424370227187660148830235732451211535643432829150574480099983189760231631940523423446195386382813523440917848107456420052930976267301599668273366971850552217924653622195467628926645933240680575920450820147396197462588549176638245753951068574396475087806936797088898725310368365740000254335509226641987395486811879988874385457763723217268459609531765713045966250464344406393661459146107937222082779498946912339701958625628136863588436039599631664047521057356397910839354865137565055712091758263837256293337427481342459507179105890575150370453922396787583398450360914951522167771719882279492770632237350737057398222741257921896575949012097840120676652623205413147384903673872043059503797729088923912799376970741951051480589040788886131956571967571927957860834648867532013197183642388432263124255331693698092343698357954526516348815225536516621793250753814318685554104185598970243548002061356398480912546434033955088820843964284694712989090850578681577776926411937655748901010758052525956846824745560010381141516861289293182919428643935073094901966469646670256397463362493697028745229875801370521531532849850274513230447931132518916727059749942201650725443665189717499787851042377829096513113391610830506048771237456729097921622295886040766390370648844622911255136771745434021442058284766903773153741980573330952747440775935828201212991860547542491618597434696585495316296594997684568791904611546998731402631697780140643688731280458597356808571195584276708828570087545140034624640080470635118641942609827063732775986306888576391319818179108023229151881170812744857532839600941817349939069180593967715639739205162375025927051521137817241136642967781169596819311541113127047355953909643870011364576734008469023072691458771787401989538394234724332551953399823912525481642547297024350158683960956018782435961597053624873369726096172734999052629331254496466845226078134452435078802962225875223213813936115461553742906641730441470357061292626563642915519165461528916775419470291569686132544086569659142993276205718954704517245251639283609304842568141240295107207110217371365208281181922942895939979240291897734237794559805770278148357208879661160957696096947515606501948272657303760699416612980544414327296191218402225597640931320186625734835629475534781268641197297366046536770482610730359208659072466916746291548687006263306299117595489312496394009943412783452480594157155671015639642646315539699131606581733878124212423449517733789595546965326654931052074224424212294147181918085063484175545986341111357806098397934220902705014715363194761908686990782813359312009471943730582231889228585675449789556669022540786438063260577006254962171434848347180221686255669210492959080023433585934154565101212465283369682687504160703046409759991417257479094019146886513345813616915267894934944414774875013800379421325246414296734666958477662933812032048806295359204519471082422560469744653027550725022231572169946707448432719887376347630417902733810797114759297864731265559862093138780033958103686508347394289930260422780591203900334105364123322253494205361357036666616947922046705684916217644063228288986300400449915058133485939038339721355532618468089640590877641115668426901153787767996937872885241207197785495133430444467306917141649019770784827893034817260531397796965155855809262373906075784156647509140637314629373514005448798010855863647378504230343862192844649470038569207652809486206793069326600551807521990174780009418358396319214986241741649289978574249342972682865681119609375076933107827875149307332713602838354757881955512195001744223762036713476381847228400624795576839936381831883793771076787080143946792920658788947368192648169034787628820521599657969980680882984741168170865185051654425808973216655678344690950315716379402933812785073739825827150138130451323746697421729363934441163703093009981915216321198822468446142987680289752458974133172083002979661438092105168613277159067112540584053080594055034927585733322487865300605508533656057496204536999873042030512066779249314129136313386662877559388247660483410936117083821884726845190122573414965511812203030073793543671521988875346982661413062991087195650740114720165414355128245694514502990384672534387823367248810706297194057399039737098440878336524495856080012398121274678924598809726438144491100985205955214097991126943126890691049467218045632262854240749842607741646383079398648499809869344289651231128299594490919229592892597674439194376799108000439248956505975025537372118184866283532902817970933235270936615322438849367467882648881430842915760992399819311176513417258096952643432455388012939856352955509219085996997444571658627396788980062211318486563814131034309290918370910678914516254800811738202779128847373602869506897031965176736928097508042745257302431288082969780894227812412818956242733392964219396951745844581407119361827273626708470904016920659157736086808683457515648291013764050105365357699860308064021690703777234553727062695331451121558443852358220774091541737574828856034443461324674432023889112654494421472122433195546362062765680067729450920932970682860200250063854203706152022290061162108951901646832004007510289442506819798146582517405705946189663883564365937957438114260877412485831949645931754391042534527261074726727597628038896019843722918985917977971785219036508812135578985692765942763236971669425792596003316679942769376631806491304431720928808778418346262682917387434184902755554657443322021754440852023114354908478647005197192557271978628461874541174029563754195239711114363152519974531155840298775794794402557894741193136475249259741512984355231192891493990093509570175826546111199246681322569034073461249750978378464732233308193546188323175504952137158449802866133672516180573934576415763049993386583295360927399609212462159266530297285475460954293336651812737593209959494510770836166358199985725912433266826024467608709246896270899745513389391181528839205100775391194093012312145976817269570380448390340023226123706431248254671231295834867133989549159425358279450869511803406820410719775462017649639505196781399339827858475466961656106970215376860161822883064730780416671978355860076794288685450254872482969122838598806418611136108162675738022864805616677663588420885323243641926407724027760188166222927253980820746476343100288868818774871933990045341167746596791569600354774016783886537198732939116566990564442440258020533423383861208131673223443867031291243617965402117681019166046397903277680060941530270957859376290813443837450947202005781824267730055955751418839559464723644690201360742973596636574312251208147579189427453597532425177563069013153156106175032238512550369071752533914403248275952681676873114224419629751748724295341335372528142694871031886889868166500795792425913946883920734475478969819721500535242543187934291077310542309382958823357791318038467294021386462358504095453404879197544658201485582249960768696323952812078864664421957366363805200832689069064846115409719741290954544174243275390760503464807457586165827087367098936475845685346550329843769966872104614322549954597883568857544434389489388007833482176417419341366495324156944104275221351936114365406009278348839024946260281941529065815824817856100296582125200078434288669996792358319378770169820014213742341751449201980819781515391070675884682592358965864812725903444792709254435204735065056632211584493550567529045761745353805621045795734730461099956953661852299608765359433731793074062073814537510909940779664557115007699920756652192101479681899971082400000165116250662826908364737894669785976668257394063081260110861479232673874461125090087779148011469275602063244537797032451957982085286643682770941387488398449311171799322816292602082075313321096939800828515194709593356642218884316600046891953014397614064041607901724840766108336870988102974357579129589609535418406051481443805077697008847128414448541150626290147444355248751916650951905812775809245558454044704582479768712738768134125334918236673747605237399644837298205358032250216789738717531822612368988036389596780403867710727192772580614076029596506239957918995009039350013512833199351761169455515539023721627644038879407094598668205603701318950945743550166666109014365966309287018542558503093724633998675180987819121331734379515576110761917664225814066498759435994931992520471918038046729960661857253525695377697365316847573057771974341697817202592489901820973718794599114450276831125737488466078205017764503577880938647664787169867575288651332619745671162513832686920825907621932486856403885344573145128558062444857163169307514345269273478560896554723908237420452015122345697228689540597360776678734976452529805490809282951295268344336332763034914831076464741927583497502067691958380062544754138816640518827950210851412289652834145524450329771661073054603910539558471484238884003769385097186893692507096604281446790600809311695487158378806218017754004111688997855542415811101811325958852492616799952527337500356762640320895780186215721264010816884312874384982241069679853025583452541682365431837594196627469231707544996062829740743196646007902746380635036692721575647513229123418035376230710257676939305012842536576022428656617639128738803183477099882703627537291990024387719413934415667855115803157203713817082998017586205231449346612538382903833321486271303206855220141066673869772045482720375765791978041201612470995871056097037792403480152884338131691561731638415014413199017787058711376325036336680308890467218318312677963430792812800273953937841609380211943991194284036388167961703674612564521338204320759978641374900338319213698946951042952782077002524798308397725141245104083015481077865958030107733590136792478332494271449697314180400084000481320532374734993143747986897759867138992548162421548797863873626474264945851407544441919616119380893427733100490566169230619787826671812171514490200849982930310320565848460955745924196077854251376424646864248427617571331180768596220728766453955459061944791666764162539537851136647300683195516166852463671499061697934649049358415199006569489717155476067446916543021297235674370161081948726118261180970130775793956653154783090042980617647696000338058528525265663928070247171210677246114813094506282366041413575307532850106217400064985665796707943030238537445542961897972361398845320745541105023616753983381043133303856811456135636322836292435255892113428457107470513897453097428288655044263517887234494513560942104311867207752881274713564816545982288919696044053143667873787050309361082108758037297533743561933030790925323984863781969215572903152244299962474825253772803066343985605428895293498749708721983365890889534486635637498889974240405654226056650466162958752434743049966961124816983497535994140682270593014566185044404098422724541650627277144622972154350599290277539330783943458900317256978753989573730264988036114154665317829771332638923150340117958066641061199346980849890445638957229901436109474532664600152087219171087605818824808532947990767805882670334960000109693477963851752891062981134892089504252777252225214054071954301909816026415466239260972236660563714320274069573943622725654464418889514455850488515947324500342699763894754180141928203662969133087023534304999354746672996883892854849719469013710258805435305186030511613972472621787594226004766649837836421714167346049656003476727574456382655357061552625038712083489352251788415126428988716400243389792549227281028622706347577255518439080572839962949226571078733220618751125405122244952865747953345934009456244271304670791708042933532463923778970803430299288043963549310155580998236018103692871456110764656897862873615305992675617421948773643405817415777122748044359584523252069875884261768373097117786650512080752193097853958533980964016807019047000069650872852631559486764342099706586480598375159919381446992562083801225677223820883198432854691558379110759463154663622921685162707104698741843741203896435284081087132596860190976356826598165519020433854496706114548880403996996571864281212366820797557817966934343562173545390030939779329570138436040610418202843045492963192469631486846097470045861513321950028409714320311695216753336864519422940689917496650618643920893436461943388608853261494527445999531540314623581368639642579954740601198687755490576463738626090935144597562666367747450367841451309787561944941929130751841140592119458228159584350187374875802422110960140837926854967565828430720993847818612976887092630899461705896485832313474795684023725454765418841861662175829503590563501088761716043108555098084299256109368659601324740664683903782980958648783769455072595102049492169497308177476544111183864882048235994823964207732366632252050461546902072870464457151823954846051014040376365518581593581276185101115752377752848305150927660972959603846773205637192790904479180150822864441779697342917791536255211775799660532855327848742786575958068568759866008827876871871974118771647884152365452219517283591847436618622669084108763308888539873373697948984463018957694376753722948324481179310543487341106301817706258035358418879675287507635257465952406483390532729979222284947906677398589212877301016768602173323454103102942198617507810350374462342409371111213013837813394634100997854837856543095690422199193170639378297682097547734341232042412881845189508395167597408090236008319142465075164186266339643030929283416133516216828414675135491345925084258223112080315342918140005038868225250790638818303317981676537054558631519000953986065053861373406005876308154471766566326626946205781992970412227370991125022354521153850874841525507962209836077306730162632553932721810656186812031351774065090566267097940335633541893335088723950419853534752592983834051021736759908094350049514003272420242884496494170049732513415733323259425592563771584624167412689446087210312125094513495625595644690173963917239819632305685407243056119375964635062908758240019418703733876268238924216229256343524659893631537681524135655785852983588456383380631171360624461266562680335165537020141791703915098347164196166759094673788243875721396487705033706808846444580393248276705634391583336052079263075416082578742987617731077159469910631816422611935815877867155632755528277071806866653916232754951538505603237542492114055228427462880503679852680215907057521880541713868909745475978517823277973261899446935935801599177444336692959041181242616266556697993697342802749481465251861798371583294355911640425609858959315475496655251116998144688490871515764810978437749095145131276395717283471362067589425606636906182010354062611209954113761532126868377568491457523866215728355448779449004237297933815464424827557358109572640354029238589210054709200330657917233122746982991986706748331548911697222283286997871610897205103862450777002914946464357535679125955525583205809237957024762798814121739210191203759356626416953643579462927880106365399679776465240275189195841715071357503012288486327269027968617814795234238821086578773830784805614769711729130828394880757847231434734643646500128494422801164008675038562234972738279534408698278795564809295502729287894984078595958301703910406712861063266064507781750971727901983231502018355249325642097856398117105637695677374844459294323678557645233823483965509510713031125135837392658523033718518910816898894751625402021731007888444504030506839691737380835399151200393346790945906633548260722301716975447933395671848738222859116621525922389736403537041670072257725421554384585156758222046262984213529576767859914688136593222725331934891716235741375171363745163360740097306989591487068444115592036942704299173185417627358436511835910078636029794754892607337522907919254287983552501857908973124892638604517427288909459891756396213589577187050597838163681044827108889246075754930797654451566649835110698495135914263457283882981216947771613494499926875003526425850939868557043115727844521639883199020736828832725685709082025090169293422159748152456341075861838338099935947183883180809372835283879863357280454790230796228879981116844938515932837504002446390345648313815237297715883579601172732940215120503935222479579530819282453142443873866249354347257346862778277766398230190297534902160715946662169188464078423061900148028616917010342507484011985660194055982245504610203668961354634073597579878017474114796329670568318520137084033779329357042035554564253424552497727050465782653228991707105702016638454758263785225999761065139082039672262113973840405018315047395775622135640568121769463729227907790622972328264942493207581746199905764847256141863650823958384385029394783813766889173902020417768390736191499129360074249911402890049423238794169381950985865021203274034333954098153066476586964508432793854657062580663335644390129036797438850516353179172265883364290620513470324304668291595746176520335744042672850468121045155338998632493313591960679933878878557204490829952680970062326634328943631800306958382829835022014292218671973889882333104012370620964550354090164664520033799594898759819369906409593968218476754172163775663825202651026325263648216221000014945969878587776440935219223215520226196374971649485401663118938499400630574628446328131703935755141124734660425131530234921549514553676198322892753772308425362042243250702475825689481918417021192489675872387699124672861794716728868847469176721329727736587709638532130964627962239204057513121466469299015996608187987858780575466113694069473872536980843193339036039194106092891252248595884415140857792168707645441191337343955432659114591447583368421194291077130962011901745526562769784046445642149278015362651613758820052114044976164101923978609393483722169817764807679471019138128792593263293937301265873562298847976636449980559976504956181163684521498722061315959573758848363560973320515257359459636831735402069910288838024039775597806945232159706423011156141686361024011203226354677838526052243109231214709486209676370463122462120073135264187268691261375245982854532567028812164870664171384849974705416489971507840120896904190235955838710755213052010651768049701209504624600338566719362857593250167352723965215483609481538011230300586973188177551769184292568038894518446175967706309044180197934663696797895187928740600199551438603694189193265500844851480114267225269846917238331197396652314524047529994175993557586617911319449368971517419361104478139629569134463330074316597814683443835234095773318893206923048861649931361223193631861782505334976941490381842841333802758125193445514136988018874178244994718819526459491317721737045402895842202857359267481585984948685942728683141828510242755735039448254366254745806025557052326415904757999318687721143243935625727117452011041742138404065605776385955152892733021727796109337124914451851212251447384090894423930408229449485194257494738958257467621072156274392347761806683294187506742140796593989987484747863224047498363135427611271624801523190824160844165647230004859521584327276840154846204537248816863575131467697720941735044898189036238468298245597117926581820332862724806959342761296936872070211352211663808987582590325270550313676296203225532404937235605130805405924290360482379611585937178951764081279141411937300801718259706727121243447646183810299970840321156123740764347769363761266068033373855339285472413296713913257997164681894803730644258975406368064921589529804030289767265622931033260996909644897836267514011913177370566949106441642014444177381430069492106020365311816162592270120102555914624826146464861885533994419665996444188408881033861567434477896471575550208623595804771924535202430788050398439535018306877766237555902162439484689327372165038244198184345622167753981385433211388148163258778170008691331046217739900821934989344236303799727593192708551014320550578972886766840096996148968371068737533820519453484310110175752040108620345880086044646450605649407355274964637892078899668085501975388178880944657704619936962172213830881993832011413549701589744513015889601346811524305583498125383563721673261091597553274219841599907543474561997973843423870384424676184845471813181939379438891484155408100387492234909068178283926289604430245296891406734043143203807776497032572340457776027134835278194393414045891073308780324291065649047354573737943447987375744603536138911910694859814178274887547518331519802550233651018965693453452457596379630327741306320212343062229151714343999440601762611045647636897959122105789187379526462495744094204265818449431305562981992675269398477902845260640548922118463312632541693086366155977328366464912251872423007011690981875595355545377973669313889684301977069311968325039783825683419547521794694064605163069529546635268327052531466088583292996038792237709129254792256661780710964889118414931532982760597459994598512762452670188095932577770364072349805167432388828384520378964826267020518320398458776029246084029290006608581698171070028961791135978105364489005791258608229320439233727916601589546946953916941854975329809534604002274031072486624904710569757630711915787426412814416779678279271828064581325077226564217121683149094368447305789860239665168319726647756046362274779148301013087570576594397715004119707398484235733273637519404373108095072918026061090186665281812190550006603673594946583608591725739138367879926343338764588105964480834965042484525770546245720582270115337746361600397150665240012113125341775269662995181756699171780566991774672457143174987661795167581673838807472454246796820340957883511874212892819071070353157348093016407443785899696618905635469744148765625481844199696392961584873887344890719359440569056380220339401829732087630250091043588211849876629066874063148041818900571170632268786200748086830792840698542973163178025049495505241454087033083704924523763339216571824935887421354818121239920199174985099574963278033002958169585147854597701308321299267575736898897259334214644889208844347881716099786265942958009983992846888925082356907540211460703228605072823131008624540868842613716779251702891051563668380253008710052720113235423617946020449602215311401061314550912662817132296449867049498569664828391837809676819377273049527106825107198022538391204299946780953367293810472766345068924856210599276126790882033493195896324867947256817058398170295370761606772072377061870304664277285307975798503181566759159746294099945975939562848317122866299883470420194127579074996871752008157037476245197053414538087263931485778452094567651893258696636614061427087523479862161197234520317731728671400075894631403309719599367566400027765388214254799113786588559978277559119091351530566515770762627696296149706691508804870148426799258438337654866350085250132622661070357915832275777532294436775160864829301639835380892022720243685621280509621495727027889197706885121639463790087935487707639870765201383307988660021275401871108051883365224475375232366508396759495596386691919794542550590530188144846122225816587081047280860699959637305267146472983890996441464557277885245882287984050809289764915882436647881449068440277888979315554130284290837338349846328803720008349698139653971716994916417863786742680668702531330120634611049236389574494331470189883500617137337372091062021643856154565697598656655362349879168384049126030384836431319817746343758685395755369671791401646732295048554623098810635545912969158085388668395098146725092885350618763837938415956963666000227631936563994472659314816647119676684057700920349628344330430643212868733524558916187793309591189036485132697451164752962617268300168248782382501920817173691937147881684181355967503564976133194364870683735475720054859546546016951799230091021350594678844198607533200862929398874000424551199400893314963705828892912064565950382388176152499692801475618988222556655543517742086331463487750920627545333810047532779304736209019446964285422622886259387002662990593323153210933754783899471892037720899268493083270445239928741573578274533081671114528242423087962017644619271395128705710158614178259562635067771105600678610536253520268707571047710262103613202392677798855666791069314772208207179341675338677846548366782514194528605961976174436689484329476549462983409885753629890136662530712448889155133365012765033043708255543226839452136788415106088230797480117541100013523211765016763073496004075079474950147466810227844062626272307280438952754482863365812082425182728607798786455497744447154332613833414185164644981085587726429391460864882153336549665017623636836894956302271606630982532450937903362627546503945567878985760083758990178542255061976099857291392915699759244201211448338541631602857324181188894972612626312201417265750183851295663409158631993275109953278457717770659072403781918722661386417740542407487629103839095748680283625794256500592571183461952256991382865502168673594296810743941895678413744125679630889262145570504502988938140732447653672289658510195196496552840005933980418623062834835253028710917528777936536297288017544887254577176032167958236608066035312633277376807129663162090735394294646231071285016422246425802400687891968672151211252302317251907901053238632046370212009699354033705457592245050774193015793342884759890519749435864208843543889317261169821308914091636763902257916960265533586631759903016079056884035375930768800002096640522760554125990212191169406359753150345142765643086924160275905974572735514898830160323488433350608344582708481209540312829716860072156958087090674708809308355240187366030042193167091169599606368363533834651166501915686860193069984834094768035365849051634631888920871765178798948523441681602106928954209902182306930852953942499015359451419741173092087794962049509453676410241677938993291115028009273688707110052714031181314689888625527675838984112369599782215476656857933799135733368708892855889500705007441546596061782153497713842591128300521337327018342521984460606687142004245012326233312219620880775291247473315482014617329406975411031950818894747143659459501973590568230736092139759257559432188640724512643918851575356077004185026781773846021348100206264644776108101142361088155280499592231081097787609836413190122077010935730917912681178669184635561025123533737674937671997730365033621984408051191825792854628098720684891368865208310131081037359450499785583460142311283453199756735486842849224044073286448893509018146735519409005482823579770385084276666094021595906306527566355833480142543421492796607955097400962661534221235414176426942881764156426590850082536150591397030442744894379401290719135358412204052623650480907547350601618299999481147227050557345728109313314716054826532922581950721719005075636613954331941851670994900011481806827825016490952638413165502397529118286585855335111523047740986137147897405524051028631786996669738497442072274787932223024538718925846650432512772388926329012775894261564284712879020862861661132291796909534706042809713527582542246495690052669532113566935674998202139929671975000959833686147955251723391204061493483020668771459196292795418821037562014696420231555322700177959995854143052067643889126999305264823614552578935016120308038396136941139477359928152926186143045808901849233891092741521469958558042909319816611806659538073235488803311741106356241164261349927993710096081508037902123306577259013822507058739595117424233930020747131859675269125454129463901208090404626124391559148284040294653840872084437988660288106503164620033562188206449851259944883995539986807896625012403749121413362922233058308899573336357336435799174244035620868397271585641147366226682014433474274388869291404860399352084081176718225441721043082753883225479040256728201727184005875830169484474245800250917679794014337739593588721929446343657793894275707889830123120850406963089716709066824564851193429855038421768910180458524820545964844600604667779106787622312365293761905067491738970230294624506310765878599797619553331045766642919202437253696831275801143152165968263143789564854464718140806454359868074169284789291577549455669342109601320873766179116205194583178414239251898460436063907696857950761954991027170005795107347389785181118292445221747173512098968270591267787717743407479960518889772574745760696820670710167868876320971979589616466936319078462446770542347905415262155793601261748971999193465327984840146609255823011439290389373886926827966572030946761839496462922536260805346265489396366882887501327862795860745711423479569672902945781278186050999887302124951119832322719958276994425537907995414159537611579286664480284109218109607401972738473433953087753334344332265440693444005073108609906589843558633904940576590921538677755308412764410555496997196654233947433429813277972587075055511556686784565644296952095906716774361440984143472670485377628490038849933794866275396130806911924906930536669109831877119112854263040090176708857930701450374357520547025387238798630380752606233475625361091793760676254349806232935362447162621269505362044847820709953524226198039795373525129458056874635579216291595501490106260959055730287939353991885557078898933843332273730905729624151722352997687004088973239100577988227109578311107487455866236176301248458825490710306185949541397237666651125888152368394502363633529263655397605114953254332052640506735599565022940722259952596089670287477062333655216262031973907465764072581654803134093776586829516607367366113825856789698476164141211031209958638855282761092648925871731419159498068203792052902379301943707724154152504366195887565270282297583870034521614390488600436334505088519328991244666672712078748562682956319481338655219429506834703486454264971155085086652370502048092396365987867901082835470351619684196698549501825047376852478773775012618123211235132750974552730244392074602453829082541233032541326601259028726024041628882692681176044141382432921471955707469258843781968390501689242316949014065728096730602842145176106326761361538420863412719296911816832714123620741117371700755170502974499745580926989663356695717232095539571887962797973146359337500713025206149214957850164242708217666599618023248915414318270800147934265536118332123611296908704708812277207657012175046263364143965747547842526529923816047677257485095072923702240238996038265501949365550174163314860375523909189868099435721360401901960836594252824127434486747605808159163742964828294072207724474366469638921089511143588057464376754502648748698025210225780148457379606447982387109840353729964799522869815383091761373223051033241636308744924696844876580132745152973382105427997685598409739003136213111272271172279096126358688091225780554169779339612899868396162797337966600480656125040593801738034495411780382146712607169153630318401094767059782511008713196875059142441767435968723393396370428336433194620611652415730917505509537281972256755177281974462803723145112522802033044902172468989579232588047123843463487245544202875613786305907221555521635467265337353706038399122769031984131493713407457251094453375167967814040558357675117088369630351255600581478395863470889849461677693207350074095238728493484155576953077546088413085488912876482991253909397501670862979040379023559998295890756484092268891217857948882728587834426009017592357276447934438262766005291098826089433694299274964052186821086937457073142463375077884017298655735803092309716256217340472645095655063769797784633359928722209271443145252053270145769307690677203087283444311490512710450804407892492176355958578059488949520834382030418411616921867410264660560571140129056960145597239378955321232623472555054472661513313050342311534326006915060514839235948509273184340069399087651225021986263794050346883478825557161623959981107586505009197573894089581366300913752826585871793351463672315900229839682425056196499865644493354827410950615101956148452039796798122454186846579581960775670044459282464172428988675131839214386414775563205645426569741739662025458294115648323797823088813833993601607086786202749598033749743510786638854326775938172752579950552945988700493300758003275674448840578828090699848433939424782593998400050233614667057013508842359470258285129331599820649524059602503873181456764372824505186652630742231910176506714909712389749139300869176324438804834311793891383088507585704620990962291876972015290756230850160418030784482329012787264649302335350078474646306403150528607002844364070673208260026384955507646227337260769258868269206398933259322202164603701480455168273266921954718132917800976201661350431751200176439371164657018217139133934053169768321194243312789475009960783565848243640872645681416763249755238088186804703366038089831794421668643972535943700680643512426077936484036207445633280299534257356422566877262381955484324368017096687812231124768527660335351816751006959022884630433282343731493037886582393258716918518427248848264422547993040006824147750998191244987459656258209166302257392549356925608451153383729081632012571340696179219948599754966251716265877774841384780992351919751174359404188502946351849889787242779199595338183178308445911074406896665775054785412538231053991875838033328487117536338726157910973516066347569027905226759552127761972905214908865007113258988031940892569057832537389930053693296676745672036216288149298807078309659617129289579356093982128602767592233970219496106657000162985016414946516917354633065225469682999032966795974590705840189854321134421053117943361847185935844846084565114217829239162121536857602335050908624738000668376280158956503286018737829118501373907438468960482115219516374213852177251311148443439670045175939476395387093510261223544389813359377788687204266154755496555466166077419105162714078636947586350353171384363392150391803171978979976373538869199411915494091516184813235620285045375198265280739461861755547192805179257321199011549047655728651159189438778237366123062397886526729760726858876522552185708478158466266446322659958020024823625481739492198264560514452497012083145327220104124758975331432062244669117400374473690380748756643310649387041049467315912700963553753138323230182515040265003268743892811636778547929096025982998963333073805803390482312045263465621334612771811108568642161488817332556636370641517840486655498620684491993358163039170574469862098879054037925031322089798391621553723059571531383220594483681329440673563890232411464213867953271088834693221169870298365642961800712557899633334123299350028121411038010484951687251077446362781178985556337967199124431648647433288525693564302786321222068326797978718243792147930879543570143217028945962545611182543846094734204407061663121052568301946357191892481518962075343843510099728103233489274233364267308359043060526292475311934308779132729484221219844644811348450888439854396958169678651010129103995353909227996658959087744403693793635875888333952439694329878553765533133405919041342527773329438635320738078719925868773384028631321540412378165162591540772879829131335933510082071830491997842016929674850523684783300856027109804432404626501419123627022826361915454461878344100367700198619917073067015925658884149708449868370082364422636226581713350465891569601254664636110946885650436400197193962703867859701479942460363276328686875980257542246067214324171148253150126466328479843583328980203715442073292700729842382975471825785930474651324369130063610703738731420888477479395806567698996375144821791492172583550767530944458521383751546859237401817221394771251255894316067039690784212933157079190769805853064348709776293537982434235353292485530004477243915510994330705610767671520619371184562079223891030225311949712983318411014603053145004769458983793237063373834277511185996628605869866234162378056215422130026525961041192484874380229317398231305316123269426294846748258466015979721288125349785431494549315364495630991553201564195102539493417807709175784543801559607938442104280187259508895929473193455750171249684287925692882513383491889600827181215422544736204298488760935715891032584883420343852135870729574487097339273369648039272828102121793618405406985744102200104618489933580914793646788343913446545583049783957784707666651259541388155786449927069661998104535435145420643274029211428248583348685507608605825048094082865602625656786325533231884099222056509225057393746339672071109816501167950986333129463232124083688540548026147120576445485788884103609230616830883356357507140441345096110239223075460428824529693529367961602621339892017815047832745737303888429853062988290886842917628851944958227856091611616939415249933853277970447645245141524965557310468812464215645640939412536633779779350815057847621783722695896266238335418379493293752729370975813640822021961564753256037140107199085016426104050663723359744343879080646993625173528144956982808449050192512699943966064995358454637880328586579418439629617873699193282414997569451784070752215457441762358931276394899485493121775882665912405941963614734244146164561457017325509715280352187195781233215027671017118507785831115390136539130903920117219849000441525078064724712508021945869845364922945052642118660616228132225801501121258299213218226498483617435172864349538071538936859010354232696526906816162417290968627474296687533799166237712814288669736873477724896085055508146301481116440902821038524063585116510856915666949170552515726231846210204591867947212346348065187126024844297278111958624617116358412995642766198188243523633696574779806641085582910063407543974599464360243583377326666624882010195990018353337771255141483857912950898092738897481698732552703124422110282731276626360523837477898168747938866496978384105952170710990013467359333023409575875615441485063650168245777458943877411064960001291851294865119469163247138323695390254267586796649962699090326574876967816187644138924897414436465196257189601506792360874675602722807966239099629021701524508481153558163533465678138885440943899424573416823344879058292468774758877789491871300792234394276208397517295492121136246904699213075904165939901261575808611246477972409242923884397617046563366732050745553424467456970380134916358281159878539145859187676877682658943557194196521403082608881329633981674944775490627018640821641813591736487066993415467104145716321499166611839347443596448714870379674624618045817740425913785277273697738657391358319519283951450353969965585881211396539802707821523656932155785714478398232962543119100668496288690381560805567184818980011608885713823338048324588208941573285094862273429247413939171243683632198927313326058118946684323777892293643477798124592567660036299209553312927348039446550938194363380791095473716672099104515420691547745054100575605725168557422623575103930504415023134257533493924881162278375937654788452714406658052072949953070747053530257909217270536290985286602787774284977540689690411112298258803985756220105525058577365988932159469937735265116308409213541101830480530545629836555849421305760931759234845818063944368141306262054973120714386143931354859936240754147508282716256409563019152266256960326442146120395200133051755572090681828185394051930963987393863916906834726561907115615058137413300542257337628452409837763601155540970307915209356596983083627402825191212493175290443417792514772369849594878642434102864324702965166553303309090986058712866851829402116108903603232726627081029368286831815175719242042568299763032782339084436978803725508025457248751098965692349123234008987456384719677455970529768860700999680213483211578671319040949819487628085231017193300162053088747602148648511180102241924893050719446363723909428031640681726311262259284867695161350443295534411697688989029442737663381884501800195376593890037873368377144481051598926199244476454934306556273930710694373210833397420228101926761640345089893085274267139286362935950633143731235200305879353586001627699300731770687380552535135428132156308777074166832168581983149032446733128493525925521516269592209113567989804151050328940735850467891784318884749232886764352173133976720710494503691816433782710874747370946895155263337289497079241885692127329109103621989614802879373247093600147408843656302174436904744778053625929813405058962791183902311602504411759204770500447761739881481032681559135480880179326068531891328975756529525575562425516108008773496468331192168805379982767375993885500168033100920606966274467124274496064513762867238679867927781716286861819743559957987966970184763168528225062771904631401356278048111211115241181208037006372701301851238385517699823727658894477139552517863576808913875404009523664580769146723119072607471781784770940006582205832859737886548457491337867409994704630765545376518322000012073685147381437160674141280951842118751253004587703351613686489686773935774629989841293659455823386982953146561301884430103672364073377062427439936413827351974054213800887986439905929543377084913796693358603318063620486051561510107364255752744548874931276586692717398627432094049334315300313715787641711369535929275057431207927474458209361578703139815492353722287140457694731046727059507455301972192465753896034588768968972701159615981471699797771060180028906527155754951735264376355470008658645078976881041683396064547177035284785421609069009941865069347073049565960336332865142124132893451218572206313421559601162692633250461446130177112769321749056663602536901326364341745356051503364687524745802458877394344643439517823989814560285773922542945050392043544312790468388614244870616608249566685341674376806821898344127310638929630135980804337987614650733162272099412839962591064935722694400388736417488375926800324646894554171990079283391533961680763237605446555497505333184343314438707170363271871771687636800939334278971167556994496715186449405657697578344219798181832827279304377191795581749816668189914319643869988942888671674834681747519231645237019235804570661835834346891989436912792969950027748308222345552558392289438071929928962238862599143717315677386887014002471069186641252341523372632243798247194650131616222882539136615131991899012718709393240407529175110540367841696974961203566888128024854275925767001553129102184257879735731430983071747522886546756582173313407224217529435518289982740681707063045040506299627020776603935248910320823579890916289307238160931906441991165417307408835508522574237303282851467774744718410971521995822949289721791135397778581665070328251678218327964548671048518358650908547110842693864713380701871618724586433419485447142946195670288277741168145684757086110860885536993774650632268057373344296134671867400864120868633018174445922579263887002125657933679732990637487778237996129397595228884369709648284929470979513015766082257737133458042004933345975335124127601058004892515264296441920421548696489136972457115059374124616605492976453770520075793909341473976872116877675444727739089873294341878323267459701704544528792962055683286164231188648610570319154281144471256360167374864961403635532491606224042926506602055337992486936909804467379778265230497320359474277398130058289123195881124422824052417385208708766541392197901590555992266313412321139175075078108063327519953515791979596051398559216582838008566066983294470342555857423669858332134851723935418963439295543635249375119184367636122273269609295199920557145233849798688826745823469016931172318926409130678735599687547987090439474957816811546384106479994136951649615979280006117855198607904174758232263449585991240183693866899042250818867687403283082972764163332527034282247831950981916078319810075277381100799697848634794329099279148391476703938063026391114493103323299979653176624583250047461269101862578858145965344141078486122727679034708345478088757033717446730090416317354352078527757942588354940049964633323882988562857772116365985081307909663459567347344969366322846304324947495344743504530177269071088508346026298176621087290410671938494421211819787673273737712613981241482909136710537521477680483469682147306561251240098207822537080886625390489843197404119999507692348114903504073454762587744018743313080046964741417093207341339777414386383518730878029291770905710197776224958800805750929227012469718199242881845050685650701119726221438539405009160943687243973179334606543524586900933254686388065880162493102965519884927480273699049518204008857828284808980080075490903695583479792065649437780683054696463702828294170208911634604077344169564030234039961003111728376018810269376890196972266386066019780721432039253887233586112008419069433009619717070028435968909832400060734486828069020985675757319429782073584478809736232591284850115934790335000916881495316070106475336634155026889883988224180647824123881205541911583173593631905980428747660722470570646587755145560967584401303947708132891414245313184329063932493978101688333646214900165625584979564425034954941857155171161109680849612416273637881487742687191752492542311122083850809932816131382754492338152362229414166984254771581371879900187331842687691925836091154254276137828587262812062867977645661175445308715934163812287278817033157859166708803584770654043953546057898184519809732016730871543190569939689235844263703577791064798800633755003363539332239126823918669935714743234966209331993121494166999339849097652049199332973666261572609610093475112831611040792635048611771501693830084343802039280957830720429451200953247775355641428899430486008385007998272361263080922926585116913031473698212669057118745111745305573149043279844900121358857268540866874310318923713490987084031920253989435509284768999265896659107585104756621034390838745295866061998876395899315347106685739686796248119030401585921204214914100110439163427275480597899860065500250307659663262461021602274499298828400961123464896706021219266613364072655606429692705075995161622057518677088366787656971411349609252182286626426917529333456727908952849586185957949005202612690621184567409286804981476958181235476828341850693862933485142897077112689694547232836929410713833686205328020135444592762882812391799864992932351880606689558265484630125954438772986941288588400999239815844327569519898562919333398455056566403573110343618599608948383248086059774566144354811638529510317567289515443305955936418647714453537683202701542472278020854001538027152235065947421304864946796794537458148389261045360289510556855077580086710754257951819418310402471438132871847121810978121393243591574164072255656740656283445463713034967244675035541059673391449230604477566732501058593760999500134282440627880472313615534714865151763006592428010521777697301099890108305320396368731229388400723130557662804371121382455693977589561821691969902532035372998125862986789711786832812285481958954344247481378298409553168382237022479464228438199073961851909432611554902611415680251945059583402179902379884745579992929228897484658719509719000718600685576065825300877078937135387909783607091905235741765773489163961131388464292486948806072931932806844367830308364455630784487125150164481612924976564493439492040600022642379579409916077362028745284282784881487908538137590238631724835444562833892227928018593275199728867942020800970164487172859243513247699757794512455330879320843469154433281934142936550597702845186347163319149518433529464533419997929503055468393613870585959406177559006008772324087072940648799385889240394851956987485201612422766973050796909391933260785362863934751976344506381645166971914665993417715013649800930479847032822005269400253144403696279456371780294311251125592878977622051495833492903336293396651987314598845964612122115845561498107542314673008913600573394164497621446683929116429408061842035633258623773428412380115850314521446399969133513961289370048223907276488915380182554468279322845533748783380522729639012586034776955136026438224516762619795690282310813164906395092167500605311244885360567297276726031489343843990939592316131374877915645743248191163647562021072617295186579677007761495621997786343956440313712191449927511453815994423768828728193696635956192128957320455147729719226320940014204023523568151900003495152118093909739875743009133546392467302404771745186275666787581855778177206774278907548174861327352286121115473055311840843310794331235749177005144377250492485698599074453551650893761592746423358435930207038382607256791443348523889595433776614764788769781044843716885315165285716657883247781214221116987931578309013014709376510302345355305837297408492573944798552636572186140148875018272756421257730075734437076523911519125847644804402540610753586196964129696099273586808072646022336952844770666983010605508689873567546171139405042447239706881865343248189117263729402195301861417726430738760256889002935454837830607636190031104926968820624577327325350939342729226514322984099737620137595578362304471773198217112237751746163919825467774385802144403864959422741029614878885092180086680011265195426585493453385923735066774381934820001868228860551667535633640135299360191773218848806411186519406743206998976683521869437887641823162556566163320516808319202536037144243936861961716536917435713763586834475127950180979713983509911243159658604119386639339715532965507726110402234665934384616655912883193024520104911147042204184798257230300662210025610673205086249585730305834778411177975442364997356619484482167589988631490345900096214258442305810697391384402963804539153732400771854432056295722112625137277430086872757026184164572829481685343999563624794479072080944016292934912126316571082307625562039798641029924007894943462931189695893579656899863972239826582550113616267049305453394426031203067744410580499894134377021528941417046174597969538213437732340169362936436771371379393033107379076780164484387203552435921566512968082423661322757725889494375407903384782751116776299484499463242037215804295251676802869354870136114852111008982415465086874041531340110765423055827766052726400168648132434468805916275944948396199175437793228931116499027794918683793662438144334138418795947705560264894170581355187889224441283546191087468819641458042884624682941311025463843607781248060639057711640254283616127583131938934431666774253075720265231202230247189311569687155348183203488056693214173305256748103195343447818112739368681618797104966534741484673567275845534129523181123921604691738636112160000331320484389838100867313381965871010827366493877358061803437899102584248435550908058061012560681338645470836867678241950054745802949908990300270357792856168530827688138191839190780475499737556672875497343023484076255528435689530927323685740880314386498676191027583531167129172501895746949559023293464287654778622651962464536810228208473150955409630750362162745688682775447289214734408897510015168949934862669001022748518655293575277762570513468988155568427319290234069869395226419224981230363864423933600329944752918221448099603443581170023488565640471781033630605048592603310730519650221116472605231425712151416775634741620517498443008754457018001594313313188113646353189489694961441053998412938983848227385920894737890670759093407196396564014037126540575140570280005839052335409754306527841960662952346473032175934265311897140300293395736911358456040863735141575275168994421584718402201318854342623242603268325643471787995844230250146369069829669754090300591989859096640021882095344301780905085925085147498091896560077607877763073063538573042044522466953223441184108434474039294717324965126799274261115771226768974281633567792593252871691952864662166747903208225320398951417532548924258750616994171489133002398607729525894943646775755895647834152712435679121987655777359042282101717099111577654476254417227606092799801400719805665550503483862909922592609348308246967456117589720803761934305721073150051636702679297943053766951899937964113910809916156588843075753484727203012951574654446850748987908920149404199810104735451094693896200212009738921003706214062201926345457099093861351029252191233385805649459126145931897044433672323687686731017459331766974915733988232745787069493684612627318068267660133320799634542719392422992669455034739109909136559798583875838198933165444859791379159439707462354114456807986560017635045801451976380356966570458284555364826296395149824819347997511725253998266570096690807631839645166294895064040772098045217982255269916866076690200626862446125077069805631012325840628379962385362812403057725973623676859956516126498876988603965651431046029223978100202515925206760480955807068368138931978610597438866988379037985061998718396755245500048461807325865398281472404393133826293733558601343467416714768818704829813201077232445504308254247039289598395073786000725708393943414660140497475521775640413663582835683587453829772247233097724822266626611031640408821214378003381919217310808180153432018381243797621897464837395674894319090041192591240096656804431727662781010216543992744287453604724147430112137908248278286548782444273978468185754394726852144499939154034790818861725039029476791890382339467263614329174417809206567605733371898220678953421337031234286493749752661219330954619382917953600603226305372621672511034559125689619282066105390464824883954459607634484361608434260419435126173511489434102406926387446302146262700936230145789733281227039266167823217185211275171100232132480643947023315880811153411084168031990809211828013429073117433443984756117794618305737913910726227503960168595790460223187077882969097065774641615300722400837583251254647987309493031482070437176337576936349749607255001953590890199902896177130516258019998869504367950044966318538095050058845768719214195832525049863306430419552977581462341485190874010391199398083341569705847378309426946136033641297345956911101532341337918691039510889894934496998105117574927960471406193752289932594944364975100058467007199189501576138445892367900700758346238450960898907917249096859062924148036054196821095645092925597002127156055894830925333213605098349406726653879412400371363592306429162838657187774599258968516934666378021173238143708855653514650029233235802351985025901026450670021811914284470939516778565440405044373355368899808897163929159079283565679351129973895654883888171758612736038613094569998387447567921491686688592927139032790244665095658281873310263983699653260209798410011260517056792547827878110750682313151921638337756494103461566384901583593382014907130029281521247092353165401854073618346814658084464985667530551036987801584445171479954237848450224564716197459302245143087225212974940353175435361187554308441673583669492966975772992565083866539596266121442354487058582402137743032463967389862674217406071424622737298420939266904078713324874708116310512126192081814550655989211743241810409093545092181348751213813990670810447736448311318392455003773410329386500745798272957571225860806354399112933313449859989923544708499835020781137590642994105433299370048162747251317365848233732044151484183699531377624208455219476077532240856698970656028515134337151178531213062268078743261436077399188170716362512211100100945469967060897133124665591100770826544652277691600767335547867241465255199622808831015561186420138820720738956826044970865885462900388882206729410459636987203837215714007637846760409194997028148297595795968107817192386008075322064820010790123664856660736064886602012055262182999664731632266938953793329931980875282308347915214487186472705861118617958060356638208604068526834540820178140150407036888176370571230500661418044077708296945648547782703817461486062905194154582785183549450471498885725187389287642763588350615239483993829281415841695882919351821901389833547379438459146741612595990025847829663210834542939468887974576776577490592417503589770924563655858193954144739351546310622084865691219015986945804293056319752019464712878910262885429722653100601998667789703252988150640010810190688497140373965122088128369334655963929427168165319049653876117196818696604924585847374444008265385843392083673929019064938301026759541787311488929554205254384091808252484212232140976698960054432482827595421240538014159091975401395190910257898818779328928220484328160868911975464774793856738963098507482617268450841747835831171743382381608786927123244807465043621543591971434283723470428363039398722389213602360406517526421822606105681756676732478114070243975582135126555175426058698756202495104134000732542850430837212278992628827507164084380514527697050915672611614281405972111287514173335638935700431569479717349972164975063421535534645830223007008998584689444340636781716250508676321635329183470987494132353821493941849560727979194741213946417423824497826025568795440567928028021962391971539306408898949558244706989996478487610503379810469994555076266824463535045802959354773225166204114613359551712594448639272035355032837226916167059107717481398063701436639988781365350645322162218130483664426140840328680355913814931007165377878744560314086926716268291322952440789304466416128249951072485901249123379105714405102922364088728807084911540770331665816324657016819230840202786417879478077162404475024751171893961033606655094111890644481858649194674016829137101732917035909548117940487791003457652081247957938223744010493818689398994707257871465722005069334130574500266026969150134143819203902881194271878514535441052343597529898095054008738057242053225127917290612699397685635055477919161643940299622860392634357269189289423939847438788096942097116799278822462865526141922199491468637728905351328225571264139069165086830067936894589791174622167790475527361140335534494876739220909541399709353881175644862550304606044502995829043014653449070831727910528679209803581805946156271805774030305036874271318465523851133084011468805543550045707075158050691586808341181044356947826201165458098090886563683969820576208801030199654359849768820410728353413524754125565472635490446506075667203016810670367595018095967752111070459863448580355118188812025333409820458301103619455057135252798565013986011351355891882033363619843580417479818968117020136719629065764125836802414678369952179344152616521387769373129074571974610124206460936282850912486776937595385240157734002837461320558251953954356977558947411098862893794322084616108811106212977129231406355750585682286039437066750293065180762225862052009378571712817165283556200963103488371896277941890703697028244621259988188803325363231077226688985522799285670967600634703716101858066935255693222496921668371296428236356227437436746337769874162322774689191208446303617313462935945670894020315152513731113213593936148312604395953112518754028360351361796405062122951916203460149154312217917692529673400397422086228159118783041717431926334326086154741795173248491747046177069416445869881971821100033134465529780543104750727995105895921684656259892550285399614614536960991743317623310381987129383435524179303950740866186895715070774116621493150669993579400785796180561185788480535698231944885916376667892041995871213970835066037545252494090319727349053931660956028085447616485744360316831356558592852367005426201504624900694111415700982659541458892674984356169333340875220620463101703158461267830553445838614402902768292275239822309872586660742794339713142395103645824927564804109628654256995369353501953782032467772486488208281494154535455534942648840731051140455920920025909504291051630491848739459612485345445178604544327559610434198270729087910859232195749478021222772317783519752252141888021890600172989060118021705584404891796009761999784637273420656266866245763329094301842901910236633278380294116958622972598841308545074365322604899195029717821700802654660293365270543222101730155428468332500407619583149659265309901495949651488557735632525509742436331032371491537844758854643365504613061334971516973792527722154821324386368337727345881119173390968859432209739016193215797984178575696014525241904549543440263471679833693279546794508916763885635320751786597911932553368577566487513226807913224704633521946222579501066302223331096645550938689866883965690718952686285346840596807717705737609557460904104069566725186294956233832942543261171619112259531751137442628259226550365453156326494105995594836239009001946988388884424358082793133609325908703544711725170292779865123811656213517947173740461512382525510939137629489176746442933376491858155655634558382756955252591313615476176325095400172603193750437988424448717881871056034554347054572679803806578557730818342000424675656035584759773323547049198017106165801034270068898176337920302979248829082175648441125990979012928985825311198340270114353818056089414363221539122480220357436864404734391356967731311258366693682899668470614954001473407637899031530703520471682152434615687654669066607696018158940855573189954909086575679587708874247985549486564384329813890113584451379139424938984058076981293559406584597527710002911968440977732237621882452597343142106527265181641898670402636711499804230275627515058203270334904687807765282412159674425361012468138704142958065562062048422950785006144350064787760362878284197271048632381795986529379716184969518814459780516619464186233743289508770644062802960601535150616572347220461613452641684624036457443006101757427599995559214269834059479208484585658584904736848501782249072182443909519876880673084383945420369236853059676944061591310426874230207098276116614898447205361294123163800932637504142188360789741458384250837893139333555709806172989661555310825750135902051361141173643074420987424039710053216263401632518059065108897244214487548341537138698992492102827373564927054065408196269159157548253034108633955635331403942570395134714034691161365264947059652412405112367997615868025974244194995358116438307746456230243490820305873615151082884853765434395525773044447548611442265668991825390604551065559828979202402295560662194436920183795370536243545953150120669405650160718615326563149477939574570947427404675907042868527914676982860983487634425544319272276087077902828993692959842483409281239064005259554491809729106863465176906870674628866021469475799740825152383953458738128222554577145088025539180224133764106124175362102400104959202673580329582895504996881502145190309441962459427761305004000911594506583071320622932748875853812499830110030177985645042411084743931495909433777020645312407103330991682810578978981570483606098276940952062586432376271764864374921509617409355816040421314053554181919069422463499057286383497517813992666605528521547957252709169993431075244629756197273832889267640105469399948257459648579634549574656874343368444926745409218611111804740700499740559731842587648668838167466523379477400581401005467705421262412384750533563649750324899836582889257806361872088522947848067532530471582697011648033694387202718366790887989534985066580205189531110675381385803101016169971055910874470645510657341014981989369617939087399316686694877175602394217091336368262876387806538936889837162219414516565065027174463769642898116422655313402116821288856534574746408598605800634549677661000215769577407588310673251713725578250301215312511808340926345722420547818226234855163580554225117682173084814905514828814629856122993891213128041617429157247411680744215002221672058512236703883437003968272528520016895610466942383037937033933508063831814992020724621117189595564630711408498002369228276948082531655783758131055669732197865432562611575727669395362426493604224120066075366336354682597156486634229266350951292892576251506641910325447713207435289540744480023012646597201756879801448036285836403666924416770325104077817489686755559524928841253557251729604843654634656059169733275095167814185565479722458498020002982460916917912705472493625199168283596243409303624023405220279507836242220902751564813504227396639329978244771327926286481307357485924608168215277422905135404811605808998747376084024505316546124090286958733333002945947762242648850834274373584319837195844992309583653989874431508573641776597937153263555807061423722783925269832889300288993263873065789024229424305568684546434842443652392469210267115060281780912535825931352959230461024484016493887785197196952020633484276959615027775611591938362608696946443467432931057275819229772596055507917221786155757145303075948953975168356517615784174325056733318466404479457922238001170754914257860794062106622289427763371237080729794681603987998285990723717799451733069987566292595295087600164642664334887460703240645610842152817115579124728792174771166435045224900216647694786533844039397269423704744727169467700506609512856336049701110713923664560541639255135444373244423556494215755115040811252022935179232920771799419806673637989774880086691827940378756729419291852828092324433389516525913422104470341270435282283571977375262911098290495206903288392246240590755839809661822723137254886819375271068022776809864533422438004680715292395064516625796429136335624494985175004253260616392342696920619821415544994043514306696567790322024681120030547639887332744239952514797625948886448643388979441857210356984085791279200576204360925909243651394450925676758538629867686065587318138287443538071932547509017830507010182583068573749840558840348096486086186753866297881683278384083752036358213691965470955877783060721081626941913129829294421844972953050845118121363618054048082107863249823548915786109013718125007505448107615384203874684538452653653938265252274777768827284726759925253241208957812526539767584251475627916602755174066743269976843773719610925033858263888894198917928138785894634370031447638627884766810479372455416598263307079406872261699184304414695819594242932598907174721100641013583362859808976415015844217006709813205184324855200360585509747187131057923013600875659339401118558540348254237017458251775434820082587512022291656316959059921525863819021696045176301084227807722900563347982799328516843014355536006272433326817961449543867855333301548304303006755290001595860441037002520960367709979360285135909839491862488075557361555499875897210362142567894151808149007471464174522278080448897976337192789940415861942834206117238095074663150865739286128038263094551726355800634793517761609664672094893590105151257213099429167058506260674576750406100443535794629786690492176263070495133225527725627473146246538522239707575591198365056463093120493420285664091835572854483585927841943954474502613086759867692772433268884597757019096247932771192931188176210763671387007751906497478739827139017321705697499181806061280559040644504167620738360939020253030653728731207230458869218383186324463173826906779350501772339256419283862461396636244653475649943731316565455208198674604601571631606037189822388251044523047646057696634560303115142172580146151838192391814994775079806241280927998257201916240000761628634204500505594044352445984537760505664753979687909069531613641427773708099185450875042844722567339465016064398406800432721968598123623309915138749829005217088320931326591628546640860702424802800162430827281811791400034380971354001381531223781451061379136660219934163161738486414186666058603537982230503139937966761688874897869983371061573298563259691322398778943635626550440135226892481455346121623557083611141233761763540870816304061499612885304999382047471370179911531828553045224126811092786022478615739178979672832923324597440805426497925384218554067049544302045320134292351648116650211036497680779976687991460591003545940283289973837819358306337617426114267962663485381071141786263513660805404467213793767366687572708533036544080359510477054254766270341283981167501117872161133995299738292155905173173728584892453430464977103824967082499806036842372518324109072111029736336393208204360707814005216724253952842608959886358156328011972317154182139644951315509515365510140475884047430903683940380338275899260329017091356599054514253420548731391306680596269481393067969056542277164600283175884329505179988803329955565753130399051144587330984957278410660267553653163600703881932356682149389889394157823882737309379550312435522117446156115795364444408931168528824228866445956323403315743725655087653668282735040167227912542438527945711043775981478849028286055071251585859896653367242616322837261297711124542893311058842748883290625087084299966882860791010598329748274044187529087143220234423313929463231764675835747943371659948731657261131124614783508688399585730835238246900613791886700389001081241831120701815035752917478379010687535663063716734662688452996508755418228001805700407536511014978210679619623638374609902504700781076446095834433392042261429235725253942002443995741820355509138094740271669779089021183197953960163571644901417286769103364653707629286270705767059187865687720656103579262375102264622043721948977766159857265158719902495828661875151265860789930144465211179969031558175806255058604464993991587529428838352050400021220311079778395546664122634837151493518761461375225576903328126203763691221561868954970886320292257676596187500479436796747484796554628120515004060136594984256376470231049248791513626007597500540995595017950110336787037709851674896172930225817842646718887053397631919548019843991180921656405792673616217429348794607462052562973548470147252549697136100690028091348489793606653730638265369679761249987064008804938630372434480541167554399334331224486273360254806756753005844546731858962240651932669092651768376050657550578710688997363059274059267880423604343017529957183417384677286616994965482765059276320759625401572329205779016824967684881215440422856399438689652392006562711427143997383932855025384284992770200750167418626178838920111554683402189517003076326920553058031327165238436547048481000627447846131034281117664269145503111633835397096407900797424986202799618608543666534393203728739034545747435736872933779707366252578794921149971724591928531318369705962545709341462790506111410623379448957176672177093008984265072631650410196848704457054101305047551357610322331489156708098466716477317985853467881032591128182023003835021717917332122127705681801437650282606965626860711965468177657813899090263467085778092430293243071342067065287820629559219679748106940067242428852031750457870421502561420733797094576811084038523194936104756919559934563172290847849965691603795104450285327769532331520332794975789395349180449661864293223952121858260485483726216068902549640936544989847444586974087051141940230449355144177410436082434757681217987155026830926443321856164725651859864288693526078918109963924111631553664778414492063599471311185374351873394063903082892751228174600199001807698165660352728355490311992961308243833509120100354625627968175224513642513755366611844868628092456651911753188119422528195963519881871818788085631665192419460509533982475878814291650530378599336088095959505260665156688740162903923972124477759787770465813742149059489161512983653999945101010079344442264112885164623476700656551805825404860925948987304400238192847167895833714926289936609979306355094354320446038662429553048796064199282736776781551014639718691603259849142600637417458630267387149775329797114864807839030952948816378605308576973867777960575893543372259824474482062517708509235553963526607370217150037209093004256449333589603503084713197499979530641185684978366827939615091192926880353657061706914965990226870428326435717101014239177462893682337169191538157745912986385063932368362663739737201101984099339942878976332458631941738397994990868054717381477400964003266241239160186358790531704560850329500517138621245281364965235226204450283610134434004081480126330872990800320082742616453337727825380332103842318823501482262284712181051585522843722028033597204102237192009561252354265943876226671452937288796513804692016539172480088740075306590513612709565771639080352334983513273786046163233946894699680702082960570903114316962738069331151825926060679759530949690416669151288608736005663415999716803795405359667734738796219596081129144566309500365698845021011883861399272683726202971003447050435055119163997154409523978937162063625086529395629168716712745687828217669000451017089195622318498910964322156828622629015519452699052090169613487672780382753640716908338413346509071611143107124531050471606388557243895073441239454732656421172752503132969727001896231985598530302277028322838850365006002177043157059626763186141152128145261140001030251648819935591549544279833960946385142332811650579338525034943171673060613406708042919374625659645958429059893534203513790738144637387654530304862670466564171929157403471105344216479891233792711595834381070119592070696826018012121276196162178269811800191694518784959717161847782138541099164225755542535965924623558246832568477486501770445345256318842394552518824760896680157829263862415811860341274522961358684625311343056597678774601273311432245403132851908244216754414359375473154579631536459389105309288620380628293058943687719807048504167476768655956223458377630474776921184479818144049328000463929115947227776663581941199455998803216085432760106132346241634910268449539986064677034887295050918553181721812639695611873353553795637478477826534361818819673345982129685794047134652987498735842648523754934857816708501793941862422810184067967867454404855676692224655236445861315030125019718841506291390173317325975481786164603934091249793772200817123311340609473966412738382174337118442910622630241608361468240214345195182059461846691215926091616019220638439901745385203424265880002109969881283139727405887930976166183290780248780799545758156191850565221726070545036844058308932425041170674035821172464222022698810089548977403214716319788397384001013363915673315249762168523292209690640428147076741311007259113289290660220556698846422102222077952723858421214512744102247381710527946815385106892013800001643756616844985669252894064453392290846161970748967935405978155286433068984895290622783844280426656358916043936914144588982149681118080451712942277592148903975044996592362752897461128490748685587227894377815587956058474933538352731350111639240553761453780117198744658444908493372286974522996264762500387457627391471624794177511745834456404174391057932702356539941570173420298369874354824527660265744649368752876920503004812231829032501925999551985063907565674508403119432284723971652803521363361684111148296172940110992279687784019425149359019867283456882061885818100398511219016422230978859711277485817361261859662777466174145452625845175104886823301276317621355201929977098603388677323511503576165069313168997921892319264570311651594646666447025180425944439857574921474111909593635414710127535881247683471282984749296017366067075937660025585230401956241693687154779996152503882443083689377663479846071773473876145548080465615291647433989977562895989571452005757142614117880296335339229748363629050209732321615669709881870045033303753804439979790358092418503834393444777412542531075177061722596919553318723019997924635048362127697194169608388218748402036166659470572784350990769529982585856189155390747489882751496633210276426112998899539918475602476287828521241756999093172333045012046350612140366984383613160012028103838794201278306736057524687292725992077886254500842617219337644572366004983863332927836704029678415617554335507315143243314685153897530053919050093711716228673339085019827693272330961617159468914324698912027628139251603810976346064286196853235822839216284068184740575005803759951943862592194799182071050257767344445253591588512160267957472170774449004095561705752591523367014345100819938282901029862113465338625080914184776905674273744905374288787616232815377723816969371496779573787373147817995120341590056440824896903590010069662365505815623602482188743056254304025267181541199248917353801191806311407784420620799799021269626165190633842448378919052735317754097615255818965669484312320023873536793542884084205850120518745877189391362456185402635708203988856553405140307981231497630014392304085041282465115078033911475082341720045267121059097537914069057669368020772380562141058658385281550723807138346015889566978351683947438985972152718494030292868456373466547645179230013854363157032774663282955900015240767531985151900951721189370703754607881874484624835053482234814807729981600650788201786625301856422295870890655897280516410904736587075191771431259944987134769135320711454236539381048662968172044484325741632280963608296508565305425830661582696258871629322000039098145957658473014809462032264018351707345193450015941123194984332589873127589507497468170624505435806752066397033168531827885101430951372420731055350530174091316728195220007525732400166200474043610023138308402853301680752262325233646451327640571053293512101191234938749030855287189170732607939848253893372735670238460780601836519343894417871146111141762163123334922981497085754899669640256157370057785944619046638476594058766747984106536018500128594340466627566863396101477979472561772139295944296810969960093994476691677623529775897454874239545140528400800478835286468284815342433768163270026081154839972281071900636938641141439230380450053026183501950907080630308273941373578757702502822205547176103430270034491418030752373082342136559750688345277098891181073541835904221264259368346286617457106333907317215250316072138355125773144477909952571112853207814952732514014183425945935646922327333292619010679447130266265743348555320555283574412336157415859260835530754285160946920270522444015478237584420856303349216910142948361800850490372503425244947024007720007241403549276550086834382240728152468239417961388146687277671773492326899037739635732851215440571221223696678238057864091718777169320247435894879399393640034623044509540885664746041662427796343929929792109968684424623655907891503065026198881343866589205883626228947009573719249228121927082716055760425565919340766788846154201669632739942101801710600387920889102129878786753964862878536272816713256260699921644232431097573202361080775589994129370315666497766987787794563336547822669559401787990922845087257506701431364412391866379083471996358749390109197912432887964299392296006236684461225230657713517413196240183247183855012346236199121154113674055521847953499030130609055252139507179949235902042497135217641353727744125364994656036424556341360490597893049688803921306921432169053858791526635691350479059909780630876568656530805494693910239654301979723510200112103246174159009033642281471579280678357175129803300521645546891377978763272916740319647170714646782894663831954716842892145612556547860218531712205962546689026799446750378190298101611375336300241630364251017576882200060139534403493361023344659188639949981827465459037139616497626679134282053174920542903028233462610525227218203738064890025535279901053091319812767938418843187900033953074569833695993114416863474257052517163054261694470743062220598789029774218820850988044632033702370806676225294995881291090973956029223302772157805616331092744907771674103443989580469561106806297504605086775569349288509251961440453715935083984619180730105125811664078755663392613524682162311379323250837027218578027429899240964260716069669356016992895676778475105667818638818388464523526262167890114730845373384216312735061728058395081890058123520704620155901596554897925542981484428390583320575080203610268528963281427378105967905433788095413803043040453235474010123491289097300046086403251802494216034260156475128995680701722989556948800950294862854919016096527253203914440799917940986560437115398663660856831628870810750470697882449372479269049118892840165906348923252169832953389115636747560623048681621390851082079275259741228446086019286381998580208889918099006544821014827529152779994366797281700329128969032903144465171004075665963886232964010726458261324556908510721311860629960150815835767106256611389656593143304596510214098629080573037320431024771195550344336907680386919201322601486314749569514947917118346666010994477960239505731589871170379960788881820491212329613948158084576644203175793577995883354451777764540965699831961321237635342937976887551047632895919966980834898568679678594920901214620698317337311382484972188687614381311122354294589398512149552653625955598947267520028553719374202557724079026612848063744767136496487269854542337952685390734943557219515793714882058595695982002879499853546997923352301638963569362382654372919968885251173673866589381125643308753729928489118605920991845374527539633651582187375038720836239248745130373655031084113016636980661830231506878536380563277967470918375786348529568010375277993043624419176725526923386363647500766906796878733376724479567607713561948453723160189314387985170621809125267130292067757065350691647263790095344601607052114986291918885159206468917002437059679360316185184625119082016860612657475898100200566447587437245588091057664353725501574800683313833419269927259206184408677449892512927302119156931074553372593462477563666554193351241454853147951931860548124107880045261885631619181718310661583552565332126440995674916718518028685099611471206790094279412053369797344318039231196241092377032044352745253258707566736819953176519433233684527774001848582360737264948141623408336698694812803599477374949681528645077799034768647748860209335850800984226767079943336671415422222643332120738100003275856382175533298356642160791506423534203130347295698191626148414960368368776402595700931660302064803747535001735847891741464091651401655696670774683900487524146593684984051681561247205747696066941597483618027552370429193687946487265638170251349446472938686450413577148133735160747047759870769575823230127614685879616170747849788910824681092414655370573024130245576124592883063557371063420063451528185221488350953950400132777877793773383965325478447716843322272852899124322470399784370804063655389942721517065956909521326750332963690988690456610922486608077916070288423224479847460252812954870740741419881862441743042678913344723712512674738101229010912764109880268779209879569506498177013814526848017539069282719178547879627768685455583963171601129884661342351821439804174004780887255146993774390051278662921903110755035426702535708277101844212012620667535642687146276085898067970321182967406467384231621479165205099242506533315229982989541999583647087271663900921641780736213407946566740993513408195878892551215677809377143133649241189656340771080937753542969213952034833426022685507369549420039321274962530935408521773016471459940879177926802792957901691924654327110022932908191406148558512549816267509864660582604700528416890594484725272675061593699686618640190078098176921124394571946394084974256301795604359510338460999658868162190684005233938877865778601204424909545997960138720803303287629351107006022020970132116934019634157896559828645043316998410617481154990821040535511933525430128377370503779150266834627835471059218937714936716038520611030391121465630408275934926998206685950963570903700580670310162283402367014631356434767845255717625486130306010633174945765594619382912564744987026158065783384527048399327047682389309658919503919068445743875754150677637889732808852407993769620600584180191240698808439950135903928647135363510316210102991674182325503452666072572727164198510301740134543515390153637168340067865365437732194005075041835693773429143188294583940156975856918682290214262731515136109228687068409740310585673830385007150955845822305578132304024721235697249016866720130732078772069783562299183640767553964624785772952894838489749996386680752597673652972440033972927763823863274508056512020382848947968559959514240655631814867626129708949054182587925691900479140312368277669601072876296875645191291669072496398022374066605567184116250813334405833154620261898018515507795495553857615373988650976044701762999156568511155038834599949713210273820900594027878680382561613078105225681802946383287825090322022773101149904620674814612690255778678645327310769543455851412598210961755308358359161015600759626199068520731621579317998021629003753271972216465713409429737048641714284994058766655402146758060877136958323683596711104368167082217130472107700463506372340170953872054499372114710459672720243298889696411811934916625356337675254198246721747652805094684062426245682497485769707704826327705331662946001845250810764167974735493983494533568374790699612707739557469782047390003372979111493107663202879728826326604746964032219435141829106545327795059875816986706847424646182286206432889022898288833129806913233236332403518043272451048630480454966933923550530829261253228166079030432680090489894949647177999874380216261911935632125458603835654068893149961317165367170449027934219412129744882650078246090086046749397568732283379264562420718732175674853643015272081326987592508158180224076412693168012097030624040004293922376483790158609995019581263350893437192717763296744200959121681721163779187814659671235323162393238185738691300787495662226838604277519472580996694624787847131489052670162004814873420785202301808716116349336325921711933458204599206834186073803342206289449601935547603900223555057888434260314468498176655242915237004939381638360831843306966144294659598897612029326625372305635823637309155373406791015286397482516763933932095866551549473440597684732750163434024464145612932346955841003120233608071071014389562216389220327195850799593898766195538868739224563726024978506147399345113725994130659560272799922315147482237269716344737772695630690812091243596067098571629939688571902747471080740348984435295143909211061438089475647868988715274538784441405693652505516993741651075212775649542942372010766472316285457877638226286031957609146755898587686388135866475280606733772128367160627575057723550492909937056484744669988750803529229775882400840387559084127467006622626984437147911124110885593190177854462383661512666446521958704869041425857102402496567395326944980314170578966248623537825330853742960288466260120840540001543674700813430683195689381380026582269596292360175135345231386909980091085297621704209120557189397356804804485488243055300179900268418759371110765001450939545932267281658116847432508403959358283126054300545285115745892412418751186531643433083804913930294051482362682982308343719939381048788310520410161268646455243644814112262434216696840703266186149542770281455460843503529403580017191373343509267603303820636188819603877792495910814185283081886681184127733933881217623188795893842261842480888766941890673829168911257540567096934682746456995843447484660406852420396397128992287469623957798039200519021562605222777831955595684540802878332502655835050739987440153871221216194058879288493985742342560814589588564586355272926788871660568524511207339079840953085475563344047368435193910627147405338950681848553910483306298956691343691666121075174200228577324308860230297527112899580052741755299188530003697136013741919618499736877354024285521866717516205781027283153753623183469009352305884922831860568697986042193567298465734921179872334202132489925294873607007202819566001656763431747935593845029636012128759068706489848464313153096520142035880701713606563231105614071787768310124481268435726100945322134238589382874707992513132674981225023019131409563874631262609430639925536851513141484702141997655228985771425486017446632926066265734943300633851610839608374531284824783188354665085602557789149308189482355114059358386153003193838499549689450846740795151855794913443151260348531442518405342785739262973265165308078238462813843464156217856419518278477535977965154822117738199054677990516565386217219160453063243119638000144166258508129284661080646792560068094499573842815275903067621910072506181329248921468655317254501720583559787804508422015758904777913837781379091094749139840411436654723699531923006268598389211556134623369595040830262516884074209955894941535469637254946634249895198945375748271255554887722201613978444260829109456415916991134838972224632310575873898135823133430151578841211177607231547031603743974582678579795248508432531906184255647425908272540755913480424845731996237729535123582215435545993268859951584166380702659715226870209963992840867606443803456802237282930753300348020058393649694383489298426557811071422710290181789197869293117441670397867308688058621020081932372450749566234270002240388132359721842880889805453058038263308284357652510471108051511339585097726145525278591466180976396449637323987645210328538066335102605259216513350392011376616084236452198726395867587287804607159517091564445390802623240579161927823979513963570673244737933928322615108221123878125677602191710064834483629824147252751729058055357356141936500719288059598534056168926512650657291226644483595814510245561240575572235313588227827595936809880013243407713278492809625527113298051752818723984386438207495093119380723171183959499339300854321665802891825768998763876433876893634922784007670773422561579999055671294649632487132600053723932729582993266618814919611195109294252768280311994735539839126209268680041711487638342643853089549208639044676424293162165167680250492864386836086176314798060762435414737431386126255373032440800768696977143793795275433114825538394236180368432461509923996259950103801738279014907972901103687061655199381004222453977107362411848290746131697958334618818478248605774183049360186891507047958284056943839437900368594550523329155959521438242519145823109857982880996156298797597629447487923424762072507598091904931450024464325410043369724875733773638778200965430293350897729232327318608053758596040333182437693199385675547034851053675938286422230248362110626739752201710851738524474904014832083664804597548464403050162633295174232653792261487118089904930191218928931318543292366320401845703780373828067797859697400810559988191144514998543340554688765682525162509871728498113199106532880132935173048813758542429222992429974920559301911446227495036459307186794511055724252125025713975401257868482203423787538347477845994216919408765361415896860792543612811854385678638869705032026710822429048414550499618290032681114205214232112250180318061126406195132397560736016392458325780249515308344500316681699181298468242665918079508061029140349093197524765448625372423847332756544422182196104086601306121474758317365596574918877261416948235651593289415379022654637504823795688298688259257826760295135511204120660246534524818535155931764285219136368989785916588876965490818776411809548799865620583156639299744422552154980182520450925394331318072755840034370496398952993565731927584402345992398444715365968337991581753697386132931897652968751847555661063639088318592689088143843985196979341990103006296417369006924201113788061947376039956036380968722436439463451566594242192077179361648163677989567738518935112815496441536838773741037333524643787378703050390947115015231666154554174176861447214593777963858925384663163769800729684673414390867088035374319206618610462243825578728421693056903830332273539485779395486144457282909224406331933801555460922433547649277787604202208058195521479226459777403314420074315355169677188479894120224849699997739050400659115509422666238432637344074123445325487093909868031013260993468189403185243345614789790752385552033901005750357616960682872706916784354671202399295028325403615375183114832488512401176993252091368597145832847835109843853673424982295632481821083199376275015477248830340890261162822984312940363905753751951200625043520753434499793529192975999113938273176901829079998288748147504197296262289545487883298170856931171550959165065393632990419064230258854596182174419264104715954995320917364555513911113428218571302865626026592937105158699670551043354110004070253129876435855382026268758243740670552882245158701041506363004869090529264311886619890702412948729993551325781586245943139454279960395076275045518437821839386873789950112989824822103343700961083348149778033718148482368752910547997216256985198060747643865147700296772594889140380729047157604546698440842770930721994497856904675524003830521513130378728224591085258600638197643978507706601965283123452421716515776284103388886238667483559917053852944955087150958351725451620495104614143989536500157944298385309143689408714993370856446535120599502246263497990777601214827552858332040208841989968420380496647647706071144822888344242677551426279366666455959598202538763572799529232263662517800336353652851079227236054807845382144854505001369024855735470477976007670360832023244442173869670564476675646447745779823809140863970028124569516764757092421395571508784691508430522049760770171509613832004092697363343891986471361740417775747268071889380244534039410004403989523753737385760029627218424146232989393796759960343644600055161125339963596965171937579278969706804086238764395843400807113139063173651652998967511726331243212494504455159496040957182716464533550635084295384025072626572470590866475882824519338739918459378150595898091791676625720513012944872904330926857421133325244569785270656107429306991448431213278754489401449829939642952325685037077025823724321850584772432524619451555984609066185059325496653094612467526702057564673849617482565655517065827337366206592578952131634096029496108407084911719539042353615626286685048429105105023370663838446866926768252628893770851916321531225506663588070135589141727412348633008278538382377565922447985140240312573849023651267107641721236354884476061312381482968163019090765489936383652101891250477043507079023304575089816373396432613197436870770125340587029294253979112979310526998596624441048443487333436739423222979211864440209141975683397551159138488922576324804101087548071787870387673654264727146788542562481665395015268769917528980976549220066746965663272536610357175975852962310871803754350128083268163016206310122591270842449986918668349771960290672500911892590342724938423293273475270238789833006944269034921017452208626425264594841155879211201226714609566487643851338000100145926223026975975675359874577780451694648706773484776175578960715663008498199182364010441943814421884844288485220140985034078176460190149542413724507128940527792619447061753405167442534260748728935420272631995803755848625745410044348518271452793647234133222538527779011800375933660091124439827830163781298387792568396074136170514410573330955749057444906219262284446015572547855162754163024141745400478909498612538823520631152089090429085964152843757077769301817859122210006560160986010628130212930337448655776427552025444814412010665513748123576266092409421259497089953028122070896674234504786450212205497656656433301656407165011340784407277733092962718717385003703856688077829063166603372209836477042135887588044019488760271878265904272133071784176090335018925100262329267925580380584039405321552771414687904752765795282909321772119878409660559866434557268603970794153088477126103410694545224073221294316734280648690331712401195865431273497736211912672244410012087928895361280780548207245050491088353154915100717675965271874083789741852086679924245700443768381835030353118649663687731555339058742675041827369627730372578703300344162574027516754965466828146109667590710272596642468782824052628147756468852226593793850469325889231398646749040806079506301601143690989041079568110758444035966006552065554377605013384011337014096654898079368080997299009279887549322426657449684382393640772687286091008915254594906232401799469105656161889223271486460551330979956606763445408209721556900655790449189368960318141814425775627939936436278432917192957740623959835783144634122475328929178591477287693123394626815670053144699038260913617848736690012182133770441419512279605092280659352823489061772981021768924384496240200749479155938728941691407830056880534869133737196690389485874419964447316096042342362483160973213893158456203263177846937825188173975234176536522369763063066164710725796430515697524362319605894911842675354810240770677212971803494729969127186756717350668893321214027746765363006054974534565112788143630327432568038114046401834642344125013472145317785405447451449851917670308638408191381662306374783302307076642472772527347204491551883927326599500570296916968896994810409139287052586638016615546722822325538691142533276326403661410826253053088695718485525836509425043433992501943671996481407469682650482903672389251872488825046925930083126729570158996517478241482919731923929676893263047642465421223095612482193990572297419732922772391908851046623821670927841732723439445178875405983946870375223695086837861168930737281938400322538837423484330551147542272420368282230653533751496206789953960203222434948293369137898199666604543256261922800226867152024050834067530595925248954890352259368172260809045098802860881793345863438995284997978687956396832994330385757642317512857121945098584017400275299604888908656906332053057051986674427126925289210065544325996129252589091593236091259300635835912969636495103546631275842100334122832972007193515837949658853624567327147251517481901107791170085689054929484602753817380732436608488455718117027137447795380188419347242785364485088133605532764239693531331809921993517882681399772362183688281197881165596772306100744084615825457473489419518078030421740462014714131644061617817476015736018902050001649656276035849622645048999704086343671526959926047304353739301690122831998801353184347049593416286293417280503002264856474412060164889476811837017897444101955057134124464172282680018727490517863072565601133171690797130424345198378537908595180227562640198339957431317526017922990432825405988665061850325484941861553743220245387514517251198335745598025197556066448737491956672242793987765960753987224465239533935493363895753107695579785741530978982791821459113243967992384150275924137009057701027047826669821142431991959490642947903296600468796978353769852248266258288912047695973376305779389150848397004468707140005169263658574868640072508445238268227264268875230102725387828963498141098971618776846184385483654048788411223253877578428990682330349181056642340621971317514910497902369752672417020527942567746450823445027441477484972635765985409555148557181771696127057441815902918529633766986105914531107592580200929513852450909753592907605367424184850729490599899329718428904870371500197915954281813967890564993566723354664832263748013273099648587351890241426394371026667254150073200675321069827791017390217875588054771499225109616901454597749860820452653713479796302897350211864118193060022588926365101785381077401997351828541397369041697038791295469497834993009988149511514731696669061049240651814858032533243245746677767133382815483079503419825617913665777048527863157822226003674193624084143592606133543372802877546966025327800023714351102769791988743627165757070356733812708366572507587979140981308102077360658267765161834940725785096024549054267350796701843654228419084255817278529019120335257741970043266084856414658778336930603113293962890602619497741976835143160824672468610889196849025911337162202671491099452702113158042032690566383206934592382287439101205948602671617630111216897966966522642153555613691674105363051139508427114672532079540629282417745598095675201398389426156304932302623592400809655197841383526005908820644446568917475017028850388905741140306451093774657151574212181389378070178443293842932301048509543474244251473913752256977484110073695494963635113430604819378958108897724137301664208963793049857109099459627667177173218142080903162612388398900117972988826981528080200923433377357260063538451530680638822369407354034035500742643424618767785670545720289149238226326031258092923734965797203936093632057638276230204571434476831270717627699333627610026668476974198295490371967812836106979563248724872996005619795742386109057395438513748187593537180328754562996132150359570200709140572696449321037622836843666516840245685339672649260648321256455040241100383647907621992866458707280933843462891591648842524105540165771626980325396292556880715843245515923364546002373872678465170527343174222618968718589845871208724737203956049748078498212741385287815412014061463923942820288014141471353825483041586047114377121326690647519230915501527337554744951533323727730268085085303693463924561212230922332297621239485811638480680253252718370554625362874342744802913891162221725102184110484330414072754039687407948170687964464939262093655849717068490294456790492429125745233648653523145233802262520990535596627487678473102989565062620861958653103334116275257538309143784415066298846814342090338250759363530683155450126833285986016705654528672084292483816683314672218430339355748550762519947116923791892267086382133629464653093713764338007531951304103392207464228932636518524358785396247374649855199079777027560293991369131537423926030755786919182108504637644370067390618911156117417663033557551756402165489820564178321598105921547986639592162886739299377307050162115206689652487085811650922260067520597454096016810898919642669314839735276213057092256548292838956595786520526633720598908580914917602143351653398065539284565051294134373396271564173571555796896309268949208613162646317909595335822268996069802083817154196439271905184568471710916966000485466792638627450446459577657915432851342736569146325896241666027621228831712741885442720023062194150900818226060718705089728210439086787246377073302820525134770035939782781698473853562043253539981966577915792771546452067485611649401081304526360616663527580647165439200605763761809782509893651922866827659862720445154043473139694540305144498367655617647433119167215764692844321873616702742574863519194819582890613394303460641775947446560986148568649427256164138255521817074320563265781248489262148268970037883385170417994854527793600172467489042035744511484653835107881508722730598868840247470048802699310441201009721904892309496263599447753610350897003803380663649823798634566209958830637538752996833333890528480446951336247056479370374842770440764739550770067592397548021762785767614993717344436079462670138253615103494858264313932887922651853478447206242182933674764229260121961496814811144740590734161971302203822713152468096539220685260104601113837351204572831712038971276696739612670739729159598111863526740053212530183287632295769980291481258488598756626039228181206234722161860078833397886616443874940331260945809794956337553146258917485772283592473536805494878128282021477272802851152972444050973382592231547854262196667027818119890825597215750774136220555219165488537530879395400889002480219928800562347629891309707827043376799247110928612992228320212051770102148791067264939438278509963502283739650760150754040300660338295845346026732591072246044106700111780434127064018000690901700089834765450714353506112633184575407494248683480444982064187414006836458906206012525006727193429343797126661285941609479131507488329236937348558096583581181497104379728242338293029666373945176259750058596001885301415317253682876253893433371651990636928869615055252448884712473660475735779440198819102496709098233093300479813153709726618102995091405321032458700908810708812846974527148928203839649043288016675515575453691266019968287699823050695482079126439859679893283542161168220982562252557317022325665267582263319311117550945711845078671615816421007849494300702321472341747461476107290560144485012502693331988381566340797989282399303958556526217554752170353667803838379027560865343734140913053886367154622431597991960431385910787062219992543593964250873526424857233072138119033289795234294731285508648225193188415935594238204408841667797388118047730341396845098453808198909925819692296297028689715282686810979874559124481514652246411878048755996581584445121196733389670214065164688472935640877913365949419107837906124739697097453501509759987539659464713653820333734060422882994043783901205440972492168879900973286616742014389388349467793226013785297323427189318259074412003995471899495612259950315522463400736653504834838722785187332358864979884561406732208642755255933563919897059485458669867056932565668100811111366990167594223820506423274982944484980690140091497252824716997914070232264334566906633241143240057105823717562650120497299101211490579598631129761356162667770656562395474026676633876336960839543366826408151064413871820473365194731721423073683577052898621142078319276953658716382082075779531363502624302083089728872409133317548975454375719132433380852871193387391922480689958106209871205388398872828316381566833720690340349818387001495511140901560031420794718230215662780414038045228788950765046038859967457769351270559751919589047447989279192485889872555153316472027106332621493923294209284246749483428323130710802222311723026193868875733858428116846482998985941445903900765640921717748659711426617272128343366733564480835708113666860565581149123965312120035517042655099033889109367903656053850421177614351292068995207434660227418704938340744427751177921128574217287588094917229044886995165889259321586562497364066256866207444395459335582730357401543458746125446939004836828016028596808443887294685298232556007054044630064302229687157240032602460749632972423338952021959542149656864901596013137717749548242453212636701399861927814271316238578131898444005074977497559340966444310616542005322970819532193735750078128016336568544154222118653556936305246779709088587633966936911091257501912298760389969950671278150684144269371920655897181352751461462309146225561548217068193498513934230396775483386795616177501304247841550079571163572210913032611271152566186878625870141463552143712325007948291791483569758104060927068392565938126922843084951021424521075500333056316423080525799357378111230953822864325109411683126612900210146483247496247621876252142317986602684125751753299070445430082583948432132768173061830914964697765252191505129098813803836500175130449344855941186085636262903325559103192610011708401198593326271942971347723837225815563924708682729524929947234031623319581858722209440446190989095301825528229243757215414198932281140302274751486336902113739491917075212283632680174842935731152153706750617205880959586553260131558853030887310076860866769817812354646392543876682953807881091088706365953056486246683910440165405121665419557944762865792793432538208958898383413926124760730071186806200036577301968400815091627675519779067985893290237280055642950270867799904596969359693859858992348381543328543452501848889798499512307704721059311233524810962105298193252457267274025417332244956956177873432397126922705308717629228880499841874113708521342916690307183474590991970105903514143559298108095056451072007154456091840998590339733147136579196074676407400952864996592327497383171679055713713570917562834592976801207120193229624967814355047688649550564238340741771745798586939515454694612514984264149530199263556337291447135165949294142207739853589004020816152038832153146453598705548573817061106980464517078649102418111478021164862728589219184213552401743240970445322296666997443504787068464591629433402508136863310884055162754551023324467060837394744589982773078620512458050365573395672238540230407092649041043365573914873000350923974525439190230139231796071139070321161512982557951777963869980057002782463746181500198993329041804078631360559562024120387172425414131670313449606318806396904120431544281419236664205963424540801205030685795138810313080832070358541408008199272714753757497900272547778956750486697917172006330037705823034398131372763295928772221598087442264014645338553243320390498900864039539385595310612353360249028965944360124608325039929168710779739445441661989827068858430434817642774619015757836868678375863538601843843897463689384947149576915689181399283812644534638748730509196802069254154720493234010525110772361553504948915417794383968984509591012466343825172475510390428983813688432688578512479955069866795716456952892545080847555206544188424099239847149181052760432402560423572721871175302200413685176287608214981137498134765787453166099309365677651368249007746801033177875190818230204493872903469064479412532736043871227297663331291360354071706677613251724227951009976785404151188024633794102480679893525313834837328490107345390520494210925504654085924217923952452423105287848516748452445895328675355435854497090429364327353998893316936633489284294035079186838403064544313257719476802732269141532938692488099982699872720706538704476176479215530615431170902712208686463988068235749116835362103246535816151864481122234574902007659576414642017255997145275173639599674519808343992709312351868534654687846612044111549799578901089962214498841224159778636625708602822717305191042510938858014619650160318247019888694519454839552257220674007673156661996043622828942987120332037352999974274920628594399082323304633444062353009312367160893755550360441405419315496138771563092886201430919400911805992617772995887733854217768877397962024609706417563097609088508200447412124635596449742569989996976145620983773532256170751495492976249655395397310954467377113498693482538364857650660249706402439749280780281850678670631820556621089837846484223329252127931682830921819040145483174720716947734206805877087387860038975801996862195535008594846862854840240910512537542469767837350835394786526548803531643393864397629864173773670513100636731059170752012774756949217151183524900724404603211852810322525371297811290983330328869649731003901606272236604744559675312198885315526166508178669930692958911464806756765889593657315292438864500610469134636833800664374806765647266481977273704292323258029614485947639599654254478820164512155811016914632997951090337230250020807964591327645003729369641166252186703049563201853864918062081300355236248315743066034905681885878600541497588819325730872523735421322575087389342973451771658177097141749573661849907810053194120447381339113429863731708813573355134373796666442349307790020474929400329508820882509587764546479117647781196274824084364794374274970295220611135171091914244250125756506024641683198622652353543415349720802982691056059505601607394238169355208104216724829131906470998099393399797235786065098869528773601076637998372963390014817420192067314963332895473624841038606645359550170084908705583773606389680586999209200090218990500720395816236886760654009430310797060740797754745407370571041178486820345235224882108522262375393788942397723968772526220109689881626354674380127572491076740936519449266941732888748322616149159836570419846941834797766411679693926397330996869687331734928901827041004187289226686645804779935808961584062690137085650937609972533134074747833585171096067768443736488503177711837590116354363321452530399218395716618301295008971177830183669628652464318217096265694060904712729733187401681745653499481321941407356184620780596635116780112913088824773495941842009344944912718614754165836500957138437322785092722023082136579961817962113391264732463585390313309223935034869710731092281404938271683500092290516773070724870066962049121840102781575057742154621333388145294303657092231524606912972017727376272454518463498413407460058497406738812572317783269538918527838410475866844544553954719656310011485768827440199551046881541402973255909403374659265694883443717214007106575589364653489873803982286875284937416379491670311689493072675088535341501429972071175795346945203109798641392564285982984668796063330681721315100569305833902122647749580574993975285532118928690329345101820463825172590205934678657998530960732974213486319013700605082136241216966176904604056287630452757269142294759184844082117571461285836708068811639484662556640927172991783348871902662344940584696497332946511162714979130705629666228736111618541056315121071442883268042520667414710591507308114309713029582788352081161314451829851137754749753212125469458046774359691177188898786444694120310483753857879784037133048343013923480915507137358547375849006503943872213232054895355158741038513658332233949141290248067016826995066671793774093442587440829998201993856192324164443552508890489927653122049574339912149447676425548385413994548656083574264540752299148473939405310478927952073275717253857894565171927351346730645986848135862317268324023077917388087625737650227526542875475496178548733186832305833306686447289723669844205965130735150309449437301309830607843099745552786820693152278162887258031830204786258222922160707593830155066268299859519837259674249757493646024688007181708896523004173778095083197715554959110925995613052978989056961746645278609475019781026152667262857600546761935756683921444356373599399254006593898170313535828402353889962769802061543177625235845335185581893026686375777315842326481854057417177681005447425544969570931916239170218656745603633726250030862672429779581631033041667663931203485465678831242055123431183627333102419623412689005256209936217232054148508834030155237123124652651916212488471323667155650731744008864089051118603823279331212982744657180184822143837649536637356552708956346561150487987851308893757943174998406822121648936679438230455546132803297510913139619089925475534705159712672093014963411484342592602358981990669146791056865918615343613408617826875043515823093487284994071805927877761220558539674804344139606950826644549843467892393130771254243909639375835757988820301181941105697090244896420407870610759440826571807066400089179229139548283686338889086943879157352423876932334027318374133064572860892218958786836455963143291131380799201058675052823471904154910712992632182677341434662681512403362263386066187803254111851682559854651813522517546778989397078234166758088991121247135726946031798277677996376342874165202223567689633635662005825772749235058932296749663230691880526996786316945900092409542443840454475667141580295689552888995840152114213952042275181444129797930740105099317498028959860009242352076175402549819466020272859250814659252415319193114337775982767189803957044759685685961628119682395008119824250184946603275141162680063966875318431813590731103787436153205286402271250963118250964211299797833358273435901426782021366360927193491303807354298653721513928182680858898551357829782923662303738244726515878781280582746841614043745213369780249774332519955025131354785712965343890685863290018495471284407645795653652030267763181291013129258152883962907697860994834214822529184322422203826848222539788835732904045277375457048564926414458764835407367690468454566672684941489505455141924774652977502024338353738497161863777599844546588749222083054361725113281076238623372322123113258487932977945429584557081435082713214982506258957454532944113934020989512546284107956650238028112674052315176754330959871542363569776608440294758626803099987771609032152850718901281358538230261493898976791071774156644654771945205632505381924687664687596584499692677052919169689578942568164761252728320946121739847397550684309438697637056239111644095625127781912190726993467975184248183220149307200678001506803919208955464618665845035859164657966960570408641857747914819736847499460144494701287328057009367030252641444967652220991461941554215566260599413349167226574823618664591833824036779096714994561274592648639265606310179420013629250064010398658682103111725116227854323391799122060751962299657674413960220018762134279558823340253473119246691449685676683511706092207208840157964860537266306664191676530074404369628667705254530311435237896772978698879218066075344234979756473770044492783313029849249070606798992949065413045602872901887823044186954997446023162309759628123948043867369429560478254560494185456335752539670621598489292376175687459829282414048902185437782268920062381960141664236979716409671283735101125928245095966372372802144810347648296136378688401168021877318791062088966124863745762506016992495538046900759067132150130477472316090623026381048527437928912406122093593424425719036042182766546845552854634423348655105746016566502197253039397819195882984888642268822870241919904667460930931821741227371697851882074188975793297088168956501144726660054082274176124992085934072662402228134693995072298144136463245815350611784139240021840682176964593370318222006379213723592917413639377781527292996072333836441940357625663053083125715744087373036288831065241971153483635588418459191579111126346042085924410609534408365004831661055764991516968205239542611267048223336274748379782127092426547131453062300395208035355855757397722626413169235731310395773927137993283571659786199427297270083969730576583870505511407268366052271014123197755513730751837431810534348044537056687714928716154885842181252397895431833431797092884431526643004984843547388531197897045960410053248599268971706201143353095665228467210701844369229505465296452987678938638374862224658976601298733823108089564290966481272062873536300591195792204190551605270370576072623370867499746775285178407001002553139947981790980034279218018551882301641993358507752248270797589212219856071694045910210436194046715157830722235057075330902809800975428404989987550100740745244359955296228878512469124626452219358573945952129656812477302647690741799351074153856989137208214574710996490510631260899432141073510184603395552591538009571694502649999014436251757166122669589673267327462566608839207844276669940848966230884276053878394424305271300857092485673846706148309971506075681954767164937419319537279723414305222151698008496471473751517949942316577625848775240827620141231657431946630868714908674721126177817092151100757691058286514021815958627037589370930275759910757334648251141946616573816659630337511452829010797827276839507791884097899310573753953270396652640350418692651509718271770190737625654298262764198308574110928791215153995831670656141573480904032996974450922045921241711751395916231654041699229297667114366103397332360870381143855489903580664122328538581532872605352627889151022107997723723481375738529568649639136646750832330221986412508341674247160678301923220818533367305224801548219344905889135763165991233291326129575041497397861185025263314483231209949517630173749253487220429501426044982096278521688588856701411958153562430663939281546683678109411264928772576232441806242066610397212074674230146274000070586700464274386006276494967496300108800370075539674679728947713826759302382770106942623074976190783334417549381045082371285954720793646290141303610760990610622453262893398860149419142607204161445082146015606820555780027997713863454041038779673911299439141793621097989730588936315755318790866684128365186254387103608457468767898691452400217963163043042032955621873509752183948718856844855905019349595732083405724942696203293046662097543156951968913047471350203531548146400517862680944914481252084950597170295627237607103085284494223727946410273744299088168888727857233093546707807873605335696954766227232298692770260025910531367168858926860519719589152171203411723966586546656375059448242992424418268078618451321627040038758551755019524144973167642947582592744637705035788851250094410601544465193002747404939431391600473981706325379793393015084423910222362626732293341267022351257272059135160292985874168935830015691485482169334756317996649045220441283646261005449177140498084634331920351173790750128901015670891574038130284460824157316951981216099328745899178828021147182893801903422779948594214562134456421807230614060452195257188457867665728201648455677474018834887297971376229764939994553986717792099589974126116348310279976612014647383471336502371788110917461704281433647926856183246561263631799108096525631224412676891623128095423840715772655231331568206610123976653290519086896189919697173270326258150300293686322281371841780292028151001569368577685266962951601854027491843557707890924898570292609464299999030572565066370310991357037233795171366676520426168519314746684752191814396765433333919196727479121428368496329455283862996285511197604777602470434856150098017206583987246210667072741774930345731461410720296511497796375114887520060603699743596848208190427328273793631936281800279843197154139860459522333638028947534866345929907141379591379259086755073130664260267329342096431900495589375435115506933715334369704029222186242406114775475325395799370284256824177179042642053198379181548004270851961653219583595804570616395604935391182421852858578154678657398496706289297966416388379028836867248295490885699867062992071076946568390512410998336775306435273627122648534079257494855030238296334741677606709333935440096939333577850609295885728814734237745129206424617930508183252655524510633857737015709664885692352542786306567456003775363288955972293989929951776982130074098610983532281053048465984087196776894797369535923075560587337963954715778070849418699651660886424402974358583204938747694519131437548597428679165531607542341264432189447010954766148750154508032855059353368210306075396747041987214994301507556358303916441847438074511687000587218027446173705538880870933515582190360185389103226811561126411649367894243549644097735426632284999503276130755622447499948319373757140419602423019923663602123160642039476788453496830514181255961215302836897470414938222436450481392398543064012392579042061954988260887831173279947996531308303472626132214870147661212876630942561109184438942637927042237100426623259341210033265764210405847356252507657150257573841285355594160802684844163192934988185526475364040558905603345939646596432009020752129398237131398040089887234905427451693813493888793745982865883441930493323174886233328968844607712927191429122923696754108242890886613518067231666805373649991142021490210334616683082694958163833461594264030615452423731245545236446645915820448515936148455479318158052677752777087785292215761315060742154474800405585908165724233239911784957849714549852737835653801396727598350659086548196414851735076207122746666645247597292377254687593671051828208924935195000807430590004892590244849577926309393475548520071805713832372559052176245414763721999511346218237828484745281846038201407000845207056368806341982131024350805325730231750286411883130074544180106979311825646056930701322969187732172146884091733388265791685255824474394158209414368546313169574944968043864483313000485769396404869786891332927128797675021749669996985268909876737531925774140276883663692453565253882595421427353817482333258998416726721744611828108481975987810354524459630720271487236192990803943981060299359479429531162505006335976694207551442113257945443399834851722997428766608593916806052042347837633876457190742620407907970993276599740598569737942831916315389423927653137745274388205402484744888214805220022600473475997774559916855722991545297350912615466300399278131851343243762492265052098974620071131197509181745010220857170277920922895146546975775343351093265488943047439907210095132124060190410130190492858093538462474107625244686402979752553331627783155165136759936351733676756556419510981756856255146487273018692775179596527960127195270987599037990789712585762270381469200197942826551909747143688746490452332819108728651191202040594495425662997355778929449805685080153523245037670745055144505105415357066151005626013745874446534134784665483247442635073675476468252152020210195318785531529787449382522719795276548429370930976286779218269344811781486237436318389716770276354019780734516638625217570068690651075176686735356802882699279875580384630796658698184363162148013275588001648452141925838685833511119097786254933724598757435221452624520406708612554057941056885762079591738986713566115512775611537106297560810937327824720687895535355120506708319348772269159426171841742420850137118622764465976559876858317083599437604913730892216240536459487794589067012593370994828064224260078446723301488366085556081884328981880311224628941383331940232717483364098667211706142144498570370773066681932462301485164575225905384615245274749120661254703080610631634083158820331899410299465761859379778534513463466929629850683183661376424326421364693523303813734174575510130836007426452357996723335996638444220775552483359445245270291743043903292717678185230931395993691308371478887054160489192156793650708611095573854902419662485422049609182314149166470663733762920180383706594324343012848054144051175781466966686616525615440871483700968974527482275979223944429781300354201294085321007892646316372896304147136642899653181472293245999180900936944308369807976845500157135614093366226632776515475879897324226635868882993599581026625764950544240129035790035800674051641100356103604043538208570078139521752522034276142517554496741015112212793535372544775747950937909082929533061180164533879451862603002976180707470647516779587685694275239203390200332004382293891601767476141662529983447243309990236816748454974984305617035272626777950117884273793959564691679803716636846258781572305668992518064514753235717506691565301153001304753755817541261295472123077192273736012651773462576053790213023454085155099765420825099498668131028435907507387136379568144390472415187253980013181832277167071029836771743355238807501795459373400178943629541832286280295189376758457601108877833227427054463728490276903720533673872855851381258491707777546375752339708615720818412491551884116669737855525015253148692042934084251287344869117511577820196136362978866097502891811326091208171919634322790533802651433865628588318569950626386489964672962267927200490334203400786502068515432541751336564423675583829984945609946831389083718746815897541762636778782456001498225121892155066881139438645080970828768193792061488491344319926910632847849400271221759773186285637218573689781567427179179905055061976893302852705357714340725205124973141796786729460090162419513185290262604697951176757431591403504104611624604247991035845143456287506155117644063713828290052215349903393122842594016177544925420540727560811707768758950720138441105883793934473138062383738031747165511706024305070529754807511127139735899901317148211783700095322029237330127659599273062464766070773316128588374723905722354748842200630762102580028491186084135654328607580804683123253937991420905093862772655575055029917459191824859355168797632973244540448220593718175785040702902601649488757592196337900354550693932010641188087483409225061085727297879835417720374362329011873608030797196839783069081784778245369435337891570618940489872187919875836811814992556985488457600079801821505893208135342736192912704831189642439995183314695126894767240147250538421213786121584268532219811112509089477746305558568000684987030279116026588665564910833652976346897720539761244945210664527618595737335549357820021558734614849932392523413397211088369504358983842735559586165323576924167477769987325281223807849062948875934290528937741193271513649482568887943261138696929205839820268979385995243897889956326488290558185632123433566642926169115331716155586620138861560689923275793689150601898481954194934525699826256193257461118884770655533195902112179362940794195218154634568259923763687242289352617915672844527752660165685374823789041804029313323650949561017556976557571321966774892241769140339340755156116580186943216283881248517902288049151577393443466817081854412043246123495457293030262972257629791209741939516778650119414029406329156974246232128416528129103190154854543767626228158351648235160275331289027919524188814606666843153677824488233410429105969711829900174340364134845574301190887406251839207283188981060266232645944966111069858585741160161920666439705609708676076849136189271371695772214794480420535859919815382360283732686814561773579152922917265108708897687976203133363731478153149789773796910768467744242681217772892885857883196486580481783208810919783599571049209903352377180432940555545282907026017958322772514291269401645356084687681822320162696546748340702716355320857983603021524484392151954920019622848279716549107654181040525151550176400476612372214876455998620240496386691315363184521132175592520402844082423873710329915846847855619045813136132115576160152759734936907621231049904097033595636270638105374274503005716025880033832162593401464289763490107772099387884688746860624260505484081609884634053998642710084559303161100429527006826685975277364166778485927026270379511995307356142951514896817946960054070159979372384794909854541514120669289803888580907340747792251815969022548564733309783511999888353313611625336552457271293432025470438468665638895096990962636531481556548676320888065413575046195491967760698790171502488631619168024446563073187633971079204908626958016148844549327643681152600455396018146561893970029699349011161915305366014818896287955345933330129696310266605278011513176859212479155448472521544721559555087576777422265794752945667775602462981398217432606542930315093621030670334133763544734570303363840408239987687723127947597653915982167841621888145618929571204588465493485513897997471235827344612616622837912874550401297667706829630810379533493279914846925935521867623720627622521820390584730456517168158635141436038383621588780964073914396820575314194199848526391605704286052968060390542068547698781071112377965204474086319208654856688705820060235620404501906852611975774711461578279752530575681270469522799930384202115991446205129306577497413772853739491565618495148789734171970252140102665135131776183871388282887714640104522917628639461434074972416797636726228740869661395727377683516209173549904031872534918954122886550959288258313316945078786301683575718365441408158308903616777403883699626320829222643180500488106950791497991230455870294967671043135872482680566104545040083807551744884933853859012710542480522154599951263437816846355924432870009690736022788043914148350371773984938833358428848156916323337173845936801273471681107091645809485792911330618901400803910418562712865837289665273102850862615581979511569051016779009423758521988968288585292342265618684778693146674026522250966258221276764188519424406616426784931344955963883738574582561563634105707666497438416222235359925957085820604446809759362254944609918624788720865281458970710726715763259898502636300254594321734651483555900840052606364430114570546989066969656915708717340743799303001487668655016948432770867290765007640133941696266393310409691062879780344159853057736963704075668575284674003638119319567658566084187641296407601444270229532683041213304165073690883844421386974938762717762252726995630567529965062784100920781698843504949660573282133846179983605800221282761543871266731960848975485401521055051028953790857859924091432847546012484831735980062259868160224914790622401837788194934735373586696487184574798105128269782672404834918236431219103181971644956996581652249836870686178560171533809076554163831095596743515978215270858255849292699886973515267727959672753165042605259365994518982287936981918573478396908475061131928818264845818434169623429989148042922550335327214198375425065332894098817291586661103753321860969067560793295836021570051205037556003690412625230515364408724096332629095296252163433245476918347523737261381191235897203319277890057228135752935866827915506491423530421538642275976635712963414310834526778840845383832461842847315654422726887851778979591468552951294595287080897783343269554008350517392147940405541723661522410899266505695180281790679101414103973949526340416965037832016731511797073704746637006873199474224913664932911240943237108698687852149717076714066498388940454020955022244856654194013353224738617285513564167641495349116519692772379438449712239212607749100629306789448125517063610650372458684757497918220567005797181127409372822873483420776916273154910801440000769149732941328853421950166961927919643908521631286247857777096237611601613163958880729955130100497064052924229535007270615775761187527679467542987386716500465605103779587806052605164604486576625020594593297875484045398480850254101602881910981018894398372031426131055361415536525932148048683844146862998305394631725490241298734978313021322742317098961146135294394109985494762935229268337198673948943370884381237617272426391171186438824718231425821531654643153720557192963834473904152475194947866752491524774437200213010470818918854767958138633437115646590170441877554748073253598662789276630912971142053101166090630328880592877852932657433484492398727848369220652024757983674470261542751854203185721290713869289341434039202811101873360875808139420102078064729522887243000708180652891055520493637158282340496414747258412645148632912554896221733211754800600178618860501483117505056760539130553172037607636192068371249284068624634011243860140721851650528948449261621087367442300426012749695995087559865768753750265299000672618776004925016500590042971976551742794064814194384808014249476020743602186853119729347172230575702994939020749950179983028978829238722084247280357375158366964500488611894126518651309147069752742166268151658887360020454924992982092442377301243668302571666462444508062859636616614399920871720319452665974674220896292833526916584114325596541384742241025281127709286496747818953545804597613335398259923988589982698687313743972120090557623163340360717908360221368033186630481632071840954011509298244789908234186775963842653264054484155555508323170949404829969515855555686251326478891589164395046882256387789606182355921133519692049053898124730858331403628735928812952367569450252065378299738411555681679469922110566368371385020707639034907392891468068614093686890292507498811292322991570938069549683404135729582150529687009793793786080090056308010043108403379072283691761776141951744868333304485895610782827274666977558427402055911613050716094080806653754440562123041233801336019330162024554779519449160819988715475838609160034512877560446057936803906824970512257208403153735215472878496074462873562691360285380202516832281860487888355366807814638225443097524981392739246962221941334589218988958915289227158567158956102105634766798088991089783120686043169719030458330343980715124298736991076359377515582497104852303536381634099059389613854372023502817298026622854638730335527251612265902067683455254977513352355442647178736982275649741756191894648454254493288653365013487549809784741192265550374667003562984606626567783225896679735704481639040569015247718538954923413479125878437903952869906048661635643441527062904825637432702966544848387769729131568623127801396771770974194115722089200607321386856780314881635992975814116596191679226358145076919978675785967368877859476472064070838033407935310396422969618538190488327320329650814872051620781303740541811939537141253556969191268882558351556319117845913468982163464625883648913443335353725056743833300579623626952890325552017575023793932149190903945638043607362507930706321144729068597551868363853820813244144485224678057263891024074254723457643488388771714956747844821241131798866672191655386711554959305510070110084361288390740003417711273161792157670918096016463583394484742522169425764398946103439481147573380095893037285874762026914033436407162587820637741826111054584952379936645929832417976396770858418237296412126233535040410524916526377490258455320970199532209554435061379677516920666215826208360118521635707090483762567547578001866707948412214823459883152036195415230870236597725777814844598681409888986304023468431234673119543669319346773881081551579081303419506480763318356125592467552657912787341557090372793487018642822780097098982942974827895755942788560271225786909564487082231555891501398569774499024770532088543481665175789135127937724788606585218423326018415853660048614759797081354699218131789368159762627902787872943455850908138933379932821817838771520063170196010193293973552429221719272927172968535796693211692177005962401376600927128867487495643972591466384228799068430912929399964570016994698755085579051109492468532275016936443135038002490673713129967898416186311279679014868720633384751060956481373201599615170139855461824737804013545444269584415868392119981977168151586824519792060447140181338134147737762778694290623621782544081680863910064360318520187308928325694696969406017474831730378464164645936141686156271474542934474009612157190620703894176784376409661045012264791284398590533956112315123650542371708041921815830601689669959144946329167014919176014130400892231397259493983386971631313814433791383125623020248354387207796261176959347347914539878192304939859198882294476908608648565524608571717237266795562505379160288527293581407109890087114808728956249111539168954010961017568022370539575205448892782846070094663758677362008927932211188636832544403461058319050450238305675599625728278310828250310335108208218958750102862615037508981407348689204713815154334976479426457792176106554030659329172758791716122867844768301471322096284298664812916014565804838046033374219697829808521776729012728951059579916142715446376191879553930317391254087665558226218620524996725705316683486027936643361336877870055794688807448111590885655641240003336039395476221759691299551599846944658366735331409804845370480372818273900208269510346289669118845627913484204107370270483549794986088024706112896464062161125657559174682656551856722071941281464484380347851799299105096691483654376405397141352639056852279684999953091503872648388035303237321733215787302738561672416068609621419119145889624761796107318151622822757655399263378290479299164434900623508756366398297262121197321419886947516820522071435032796841203005058253060567977812243395492792972367374373885755637404249206922260256640833737879421223234224158974129816726482572824461361375032046628137338247869448026680706474944149977951619264256595060482517226332792545915576766468802930715951196158291112069702665658403134062120560687679247558985282834324684266916057118437425539280985000747083190794741503909721303143010508386128555331320544338211785588390276988713723000074299735182161677142037003989641513601622570818848243835290164977333932635914164698511963753659350779362588317110501850586374505600323971460573019271666035914667562408955488504165495709870591252239734061187388197936275506842089041959870879801029963989952970580035889641702835692423894984166311657806294123673898807949364889398043762727088548906703136296359678556414448968356051487502469829662342774091280090984893270208037671843196413273467218740916269649972703029414578720655212518537994481584003339240536601762268655667438014622180137510795411495183246733664958832922120577870325558142611185057201493577769509804450101121001224993608132024944653386728294493277668603029436529121573701404670788260968500067501482697035935810912459028467211370664444700766969143171829373515128194882625734384184452319899195146636037694838463793343458977056315007931801413007280406636060609367933363411986692915303344980651380308446109329486757735859401527180110762290582576137170823471755480189691705062724250838071301101670876509759407498679872717898994639105057297741494193898300442045181136256610612860935130148317930590580348386026234891983655442832391300370822721530031646798592045516238350143111523400058233399345257348203436728492241063453250454076924581497964640249770669580154326818087210146960000940601977947438181133323355359728551779587347137405063899584959716030817417903945718480817308646640293605857351204251348619117893250773042358778103439983649052938367539695352862471908137535755335173349453645642644164618339048022685982610334333215058246380479417770067884971194180646870235410515053538024942092028812448177310712896095655712331866933648142628785314236196298804863719585887564904803255231651858178665718998804428104755427982966402357592482159159713483868067624962514101046925227172865140718461995908255010332124615768718868648812283794964201188792172139263395532524001914710507540512192999504172185789768640032438775370300163989054798760937484748233564153788483945260485604975368418489112832654074108836496696848235382462292629837168696500809815067576901509189629851022701381707127652299587781243897100872856409536680485763005024836338305316346395585431250767723471794409768726914150164477200561170447318599636399260848163268517046102858509103787046975098556795017853387526584083454537991397749940631791272973739819825615633357142987536231753944144542163112115421445247420453073758146924723268010233985380264901562152479587017587568656676064043670916955481420209671541847434726391102946363133848156711905143528725747511129824381445566382691456777204709874696899749556989619055330355824445319592741379844441136830760315785601690963572141289512373573342124602580155000999195404196528990740297290554808382079709364615600897270180146140084361629641279863147458558156580582013222882787780557952747145837977846011155770113812051073952304954085735618266687069447589246623899420713711348765607602576300727853451092203592786906953156857749119153751372176551855222391964459454525657675813295946783459895659102176188238093740650988927777035408787291317495130079824784923944057329438295620612821718368924565428834313578099889238562696406167074069878519331409789196974606227695254577393745620340695625269482700443732284502348840615268241965030089287803640754044801381034949462118881748930386774310074382042672337786321477418565419230389103456118273096466588274470234018798136298369162622602375288415597824377435183454698138332662115945807613939017030650909574023665850709092170137074599643707287483021873980933737845787282620903810010363146150278953182396673895144428879051324652296565784460068316599883594860788102395601800830749711092347390961638863724282435967779682997116705385619286374012593335498769237919059208050619049859607293687406943849635587801377943551787309522948274955753930156771832550212425503533961860536991407609815477026240700730849436894808027102677252100379715132655720956468065557824751913071641660334808084208614523614781786055152641547980660603144662965151533594020304045039289298872407807091697033196445061495993619939684508613299643269442605928032523098286890586125902703059450866557399586080663174552201354354052793323665781502929405762507364070878765431166402116370877658961108768577571633583780487920645539005588408406825601176797844961180535041227852906768032180796122295819244331458224108175420513022046307441007919146251577729966701913379302493124866361778124071418290662002244213021884892356774466645963138675639506219897540195157024567597226002111450035692206050882026526736630413571216521745223817682914187903914622001377769470500673686548641462849737763580641683304670965031220243802953427907865568444997594428407060606429177373136426361559236160407525535543991828865905240029780105992370672536276782363399222665678129895177813135468427931769952361796987265934428712369902910850129130948181025805663761474776411847099057667413434077992125539584856706324693580565084802561906913182503041008566994294051487963714293523123993420154774231017508571020452735596219158955890806837708188202183912658313170214391373543776970830358850379858424819582058453233603500245166532825566118546002597682998297886330983210633314071313600062254700912366226764083253822068851601020520450695101073874925398965489918647717722610579493695184551370689974557994660558334895296867972998295520478538704280428025010521565890529367803092646623966042260914615465741997558516938659638400720383785820240756912524406372905393213569336206429491340136698807452929759830957285638122467261936032452383345064315453642689465740537183303645406359940688183006869110436766635661100417532236576669077612066714852430047504674469369200330286338149987292728822566517563506776655786594782797436229283331565549307284802625739167210015327204523753305218136110097256125068119537497758871051464816144249267978283015578034994886161320227748523848230038531641888298079459464892120656597283251401353479697194724629716936765280442263471656088699850293014740886606145063363510666730389274123299105617125065480801570805097217548265288554363199050485663280379332311893096944416957347620358591174142093771419448611771237775514290430363117119536913414548094872258425496118647535186491263132569579012270178077687193790595536756397448466275158632840247657221136952923782217936216464858044852508416117392716387070345206689037339739620572775399957380366679176139512426571603188948711996612911155422489470734319822938277578670849535519952510771243340015283561695466889974783344500401937212687505476015855510783911277408805245558394073955103211861980661852734613361785518568620371445910644661419573633740571284812448709887461316335930792334293422170893751150493240500126922591146912309421189355907006134442505751869997414979311121348187558210065724744257776021879303483605239181735028782454834532087623574947728736252662103582777070543297940401339149753645138788336924225837420222856943940095883141167425139105004755665324008384127433620815691601999143768031782734239898921418857587541218452899710073053651864363449148183983854833086912514788660077622446417653476948623363241361249740849991295704998531732396465429635078827517278456032519950560908248989255962672467987820550232886122981255055256748662529457817824569246686729613230474729546948739314177338762955291548302776500391397363483336243607248000426546890246439958021558697641651545004402637439752970201735726333352889300401891000184950523619242720600272502059417889511300565533181988383264269080866551293573740572627363550214094561439680367615885096085190305457701166153965172249731039256583071385029907108180231929824704410232154885816343545434511268879174965190592650083774314508497733151015407346532676859275453864395695291851163336281671506114291854866468734674240440037456582832445801450109621778607773543274645001161948813545411284168549929234794319775607543780027462778734623549949496526852236058075440755351257838067437125157217816299026220617074468576189827528302193153760031499925348177184301918919173387100369889879955808589499110971914741966351965465592906485568977338494979405266984177070270923724294429439315743891648894177470188629008541713373282084957587597011835430180961087484906878198712241259695786470540046855001585263848006682976058079777595876652845700244695598589701635490951619171368730162862697341361582402760497962679849632967123154993690343042656753363836617983610087831217760083607096185727283343454696230968191650220709940633731394804976172438374803782970704014970212185828871728384343332787480795486005347482776086540006775530447411565843022569240035035553367180878568849904343703858777381331590422820758018346120407882437647222203237064835933998593591199361993730288993039858112183958947192455034586628030676335810536071670477669866707036114900676224014217595079542325931578635652308465290973825849712185474316300079045197023948854215083064170099480646584819890575082055389909245304464069481018903116942734100448323115934690154264885958765075676749519096590516892532790298165985132602616047372393861583916796378696822856028364488125169219458560272784147446061070107824924111737866128737986792222585949424973295343888448777197060210491859321528664086051429668281874806111732705965683664414070936654802183057262238751334240348676020223775960620577568519359031274268197627226866568813339906644763409044037191222711130317589344612792312530521479651589755087740157679241311056033318348518791215759036986103572924794357931214973338580653720167382900187639826241764791266163734653824723235941267529962827014448619485475391255303575023417492698563108048161795417287696425293767731976164438613759367387024624753024049121989804842837469389975838146232850143653668919486310034500168240047273959028131587204068817377041229044252048682957257736159422119719582962670939926175433509722246674540405044178760332658860954491929797580777044777227631073808993544316360139776529133089087881571241755137613982813294096801633017941049162769810055613736236833179608308377823758229010716612136873758761955431732627153143321351083344074192932980210455221504165503430368520900742111646537431850311462336064320527391955130272840793672248767345298803900735957425523522850942764130834119785302354923090174820730887669467689433384472737793017652537430004523306924195725235396664971280549679846716843601646400728081243881301821148028043615087652482326569065803119462340627146840988820951024958277898629065523173544586638377358395323206110841522236949597918659484276571890747898195071406363236768744411164792660553642118182694438704445192812353480945046462594220063679282746834981486083215241822105407363830377582877065288752263347965237073818116163383684744554883260747243909524686432586524219267241924046312912382540810304490287280819249246585245762485358342508770885412735553857727918895635242152411863511851030891727102733415408308993972324146615207333605973058855103906980122221155702853668757688320020939050633691755163423906234239445094704238709843956122880218970660853296286592689886005270912982959843397854869439706114916405976509157426433025439376939583746114480433000344245358318373236855157923304111845122452277396056689665174439123991296396449515286823370851346589355170457055448801120057559974865220458970364818951507951737274604230023903118479766830113781697519484668200338798440942620123123314403820986567004285241655982842825958395030273530174363014245914660777070520891445574087456580267706851657417779292594771597856080147532390047185151736326583644224959030930687032742076112947968843903686386442138286639995439763680806330351738058389071994092055968268090560371196892370136137744724789347852554379868289722878980445502081822823073784046167813546013085401269696501061249911040182252825064881922038350514081742492389185306200482372317986849571958485500612716497209036156100920922150471117483246553680502386966621787937312663886111092994425937134659229370278494606346935866229640676796889855621747560350113353772418571796670971586365209304671934345723622712468474669813418030686187781855609663348836654843924534761206057875137439852724129912660271290786113125486855179544898460077225817133023698308312388139409985235142225254627321666148336453766557293090618917994169992009807482195129952348006746214018025079441464594187085468953594810836285112921414141467409608727755868491767144459214014067089303028221006428310011737181232275502054004153225367823513783642214581621709240573756334113536666908734926827869372812959944792635493111510378741120573048069280395524743290773728586743001470349593058654587003695823324485932795809576484435885344953369540492785350671453124335634711949613601081366434767962555577321559617809991122819213444424469302933211555889420801146811650928747433922253532373671447685279051198161346919299401247306428100792070525960268671922464576212122095991430981375861721441219739353104887178500239731061942564250762260536498982636483988484100340922078529461267356019310389105464957425478588581791787095812321824598727509802659771960667556054003597468036687502781975556022698517179530378460180230514262738630176258120356471535720883495172604909045960941071806466592839669239379238013008252070450587181593092022229492180341213043930624571193803781884379581591000881175582334623153224733910536613685101269691985020708615734323278049768163152070285838523616231383080522179982040424722755879302509863304218498437559263765066599502105164350377980338606547323093456339967294043462725409486914991111762797690005410231488294635431743613573426962387549679405423622681435334652472039017197317240699870490023657986069927636442777157199561141593739668434669687793243210894674261657839608595128692818006504555950894492411426775856025212266886964403362909645770415325760801456167484032771727428542573044515591204384283476314178820856224596246248871526968571523080468624439794899413799673954667430316273906910209834951602140136375972828829278403364386108415980708594160226946986831978490716384145291934658083494694983784283205794963376029866591444453071688414825138021682945597586501152079611590498257214807007981543441361021059954337652256139992981988240098748772893009695320144521706178025829215819708898369055267689252661337908216853969341638420996932724747250666627712370260602634447641652233890171202362149761987513141963502580112003656063201805451449511399760595437706941100352814332462613522885552954465342442263375814897239269703998534111947091443269041783441989723551252864708675578900051021066123802037840436568078053814163532089028294296615849988350462072065184538599461574552951524779549941829157487382438773500160286665028582982879122736413038538420757373912068826205676085998307406970171415095312262125568926567473701560090058341204343708409208012771235968937010435852716539983330673704317771467293557538902341016621274264134525805064926073456412548606835320973697532607909016148013694494238208615094690598378144638789808515708067908480736251435745584519500589449101023262276199511352113306619355843848964881503045992275305226174166774020675560910534481569826472822724537561286762992178019743682616501221670456425438420866447281349107226772233995890857469730590632772366166674687849317612035133053583268885239286835698307319990671181101245380614290137609883484727024397560190290358243476521088654835617808735630507851675393444901065638770708253043450902339444427023284504811271841461560254880317633971585810303807086262257850388999151933226321446602043410373707466281866337769666865091370925938900921443940271756963285605303816092224926421187831126766164074125376199698489711360653712502570532300767916592678899661504403247053831700237139739852980408665135262523041092073657639675511170813687935034107851241589519292992516344898558330070701080313517998025519584430643559882305591945217348690101236902421042347388309542318829755446994858196132756649254081800209362311557665137759122569483833535365540114524352025178410102912385573102328160478695454593924478855881249457371303645681619412883886444622964649944102295659616185214539718282640711235983366783469693656943282690892040236231257027973255408598768984025735440108002414673283508979925671653169171977910996047753782726958947983584490487900544366300105313742236913460392228481661122103151399201532813499980205822723925271750344187306328261883893254827607958894626314676116773379856258122855270992472945832103199886122137255993521048020797160774395734330268633340023218295385283073114142885399855300665226701882552053671752202553983659259324449323695456037049848419309735798967928803260860137637926555508840517348814869421686147340209671577040446162093621632945568880341880164624193332032911884877602865108361863320390680780539844153407043641160432813017666058048449322155551049898187129542142433452504594170452073525502011697450749911632062059428134088194366926384829426480455029832395720096402693342339319470838039059064767219253447149766488774336796527544649366027425887494657170496482169861644354161746263858281360655161720362775026963322807676409764144959059255797263429737874996489539896299178369271628394796915484872502620937434103055781287785542650519866807579497044664095731754955340804614414257225989362955957858973380762441689197833528941728969814038027976084142623456906379938599656984461329743837017208368576241381021455239799602048890076616885036188460925414944054874016754333735444970771236000430284847996810556885218477576841006507904384507507926687443235070549994218834749491259294443031001801180147868883035594006203504805533105833548022580412233296996385098217857004230269597691914018960408141461902445680106679223914845113930450516613553777593608702201253853111972694256569301323952603278623619622428325997800974317598794502493408967357395646308889704431103087667303013260411266258990257531718448294210265960126913551607093136259978980566782620415010738707325531502222028015235232583500014284240168379766703194300004209915939345817486014409299501071851240550869023722140245092951250922314078700439706968531293052576565977951331493957214019436062028216887509803058681853183059166806417471968493714014998676164679625604847147106417053947101140889957252140320984684995189044950475500036793728324964848339208335994207714519690982914866568721647447323887036529970374272641539344365596806627019254966152303373348222576085215508073004914824131038555821249554347864137959054420447208107065710734668734045899272127679067325122549375250649569986333728600095061125435409870173501091963966827262082846918714176728491543789702796667473790938305263331593183772887886036185500688876630612480002458222996865409557362710917008893296827566165263979620613989630121516898790344787014298283110555565807879792400539424942644461815955221895235454447481863371943308322555836302541854392096665406939881626900679244839078912728904407686860527938620091838381234807626543980164296324272965323364028396982997853871752571770717713327976902578859431203854581967716616529619876363596476377175306454516875385733087210910381630904985961889735243988778364273437181454976448074708084375512028045869892531309108620687351406848583524588081596920570337465992545689294737926740918231259045769278219246792569036377056230836347624268433860703088592786702250102023037414527195811590686130704538302971453795530020994307988302770302458892694577297614643046573345603476264193438402077872171250662262434616404442968884894481857451893643290175899443162327362309056862288116902493889114303288541604238114571231767815633988405599436501277870990981799244407703995552893429639760728956353843918582041968362331696427906438411019207238196550743853996585533972230242093793242170159674609431031863640669496038807265779387139732671387795443110806858082748388922955887397285822619433699408004735390100523125789573505698610432933624281697580365316573409342790218386402034636887003967126827430709847831752536012658782897909579900492934815806818663662834468341738272375094676402792747262497424219685025584917646036313108365398096769491370863211873875557393671395570522715278774151378290821383501318621498329403847609602608392259236429851728272199936996554705641885374244126757332433736137023253364384023836451173303584516638980059963989728818839413087024512678761584009506862588197623648866653851793698835090920409618161639922037634327520609822509670479945784904417313168460648899858266524170181604792503419649473467699730621288764029293614018420011218364342901662338307002360581632399833479813807368205402455964127203767639947036989605527281890652755316246273322614862325171394794131378886165641402010127640299537799979324586295785098588012974691306341071381071237126747009599962019994251433826153557354845334672317168510093680582658577419937190419663509647911544686486245012168807473129473175736212534288641118955367808581628132108763670106097926372609101708100964987340025185117531014935400909292343204770309043474310722906310265825198451238251290525967904272774811455943949667443970884496863590317389112603105192722197287222302603931009651227799941427430581624476578247612486183096458518018578588540241357928203667584608586159822457056832409041511254363390372824909953406589505472560427019213340747263183323427921157535296075884848688533358695380159324019044307866512586774499929871643515595118915572137903490234047021923768406936895583346952616983971171225772293392202999370918579820099836588477341627298410465453205160589597017846938828828742800693971372323821586004897387826596899261172479216392842591677455737980598163759417205933513461418795882415139697074740693129059073465287812405776193529341885369233223851605067200047070527927030320568455249960629209153196885340301890380552505078368158379822376853748239069019777076519344300176090189412210675463795292778815554443111188964190750092969231166084140145839143336491674777363359562647617141214657648220649284164354630800288579312634669738039150976023760936066374755633536924064310666903016603182071558003020341194160521955908431913953257664855562699642390158783429029237259090270184925059528794960669332290834993362399879698933703220812669229191247982076305986807433385811226723227738341797911919108767937267870772295590336224525778014539509022179876942761438597446215317060370720972451584704882776419292632132567516439638057920039948398178190642001975719699670720370577159631601230563518919295787048730812132534689311059422962170915688896665321869992774423625275510154993307332808424962356470827269773047093026268068725903463310315918401076915826272878514010158978514187756752543111961510256852490969227713906739471162455428586533245613991474730102348972452516156226315217809718280588799632196188033248436292661006221199090949245816337845508117937074249420600816814475122800882727288081543897760195792957827661256079649085315251034937612899331328737797365679698042461954981616551084734495368369178720013901742029654246249670691300925222390556223807978329915937377826202606791233383145802753920139427785115733699130574933713680362408899101524176171307561775655242064529451736326752536138890003880216847150985731581156712911179681451516959274228372345406407871841331661980535207502561173890416759333629014128787842700106353719186767077895996201861007611048289627855860809209764212270317426031783807519640693947609583717413165241347212149404642071473800724747503336940086993889459751971197381587804232253987976913387537037976311260236397483110381620432768847972575804980969607207330294971438173043650911843823204754156171323906570525136179499265218848637104736398504014412328388991593028261616858494559428727490636339606981743498966780628799448777356620944658703049021587910310767184246445189492978216408904326198093986997146295375094314163541097679841991600076621937323809845712329586985277072581911646244591107889578016182271640041922478844530639333827230537599422114045608601341344571296884638283093643629268314060335509846350174366000230658541728182063895052372681764771331501324221527841317484200993534196582732097871268206853123511041442163057270361993022939460090177632522526322391249470545232630087846601798821893369678051636453941115494540433213298837550776459556566321197386219570324391824349253971521545161687401973015798347476300998362178432647623445706727593922258420558471089924217961195052368713563047996805828984353536943544757243620935879341522861345063603580480095720753584784395518678276094788467440433158661822685422343274676425403319642074968063194043819784203872145393123664563456401474040596502163983283628897196013322523465088580372541922094654763049461095779083648230058938104633503269361477694120852084633853650275415210710437580082357633080942621465741051882765508513213166365087669479338903525579427062420611047332864564458712513822139953420905868529197800855467036180794387855904010025992407351509101356347737058566012460600940057374376159377786087035610293867262416388264175740988514010981418400539825308075700494477471361490264986700159571096601799940524179011488817746216056199549795897109216533810427588741178799845028346362278182717435974245504368221162635281811348128799940753835899199279470516965851295196262947910479889185313186447187348352145412516642948311526444006423643660323062058000823326696111258650587983805961114614392824598664797300178020881674671842073020186513034946631092575434126039203729199013112858246290554056970891725271859408139802151426727866946418157277321113168478410716965494518502786706058133836413312479411458342991726062837724362282378776107799711394864630488140600840808272997360907322683991265310880399912424655619076599750010028762901545605636197469755150773245560868735528328212840933254755485145271422671809407337462231730619914777844833198004864576152345986748772408283172158649641475282385056329690401363622410495578871678570432179224091299647438318816611437420429302189653823461741617345256364810466506317310164920783266263560976494996371653710999540428182125916923539123883924428785634619611816268500531184020800973935087909656149384225819375372376996483193535971450349436021382961770682259686452442049315652875344969910009253227331071173656120773773423435902852656369696398735841390408614545221637905886988041163929434376061657497751060394497662275802219778730777936261582002058244740466081299986613392784039681056679615003604017966311053455590644894322087176444219821698517353706547577966140539351957390587895231033817862740158163635361844211803793222583084554438360910793848926721491515700887521219341119201699995491054350068112408097219557164530439871226862216362158190282503439807286234832159499273185701627528970631483647469432266861958228719823158028217586146899920191487767444154037722784033179424220650968855331246162914652167834119279846641385561929487498926310368623463325122164122393484363181133259593812383007998864263113525813344818411308174147107227199216114629502144673879752967666690966695112018774417033770063128796923114004376978482271794582962900394078006630289716864312145958430266177085980998980512720077161837222896287957439279142637010172890090893989607889878643184974576378645085320215355448046335368291677903837515299068972713147045800811341626468501199862993162246615031769985075138635954368002479967796702124920220768342151413019857622364081629742801698546995838965328622424310914582104485661024435259720412562977438531616909372110738195611725577165148115844645175688132599727616771274306798063732554669294544424652877659592577268557273120620425424564686690786877124773359614671034102050068269956613058096305638289196090554449364447803245505372551510989398156228810642426059694147628944093874169846553198377688316106630161326911390989425201180650941556690937288988833906845130853063104081504411047341948961430103644064798606358845355073292935698466292455485575677887304407650971706850912955211910363877523732044316855576870082063597301469504781703738810370085999017822199936956903327696857266001096743271134509489618255382250036037955969540429716535784094776267736724374115266805081982771128935367767610661075365236618226867838751041889833456566520760050653135918471671967653327573804148389605843675545127547154066941108198782019087748400811061318059746024443506037836872258179102676416233714074392309845782318307493428822129547826920447429680890519101749578401847665495097629179497849147448835698949713289645755268588257758613515567073286916012082339447029666074868369024208859272991075254293658064299209443124392613468683776577183632496245520365183769589774692564117410371058128680087870703757525040076256179616427722575403840173784396551273309517695669487721939353982642209204332726205038307174233656428220428146959083253958023041755408362137168644009456025690747248300663899798215262472383694184824362778514874694658023346874557567172348147018685013032494017474831753808254465264524125249004429590866926517800770706393174293570630383239980912033251823800305971924604839151580247739464371526915191103141792702304406394430699549364441492236398839980457571202298641610389747279857694004838435703639415019372600431479209099021101462490939157361926219461291108654785115507993758984248659537233050596582257107111305323785477607829254347369015273984170852302031175064395955203214963921972739059131873265623867161371959226689362560118938314793611728921599100242066323366839997833899323233372185671744793045944077532211723559996016035165134714762526078682004306966385112972219753087435703417611162840196625502546681059545636936004788712498430814147136619363257644429553955796653139299142628150840697355368970795162362698571526716595059499421214576341837734730790199220776128589627159635823936753711535333979262311505544571386763766464345623217314865832419507667585735263031588608281585435960433705148966879066098547878216910763824030358407316536169865289145669513122644507566462066324634001726922867638449945329058306427440588923638701489643435684604929256834238381521370737343699508547361399402598539773186825741998079692708840430318189656624041672642746826809190451202431384148020259535335100883324050502959874057766444778359817738722780887152321140441917023186685697205553955126678554934438867547254250071830718987872686490654453556036124562903059286687086660673976934604146965319117099719979661880554762223470970200724173814820325438694425882569494915419962593619538691306377651582087601685541710050146813324621194366976263761308277252329341046773760707447939577090073684944316900490207615045721296785639563945342034945285024770966129194966184037497532912273203327603131944629334739714654214162152967682758570606529724683630858111384567646023676972966751060397273353296801927853004423729935213199792309130239445678325804016470245783923511837264522232524492725791999138397347009411676622576737508378962265600502485483957110238754657033982748367495480122052966049201676849234968813015518577992930853882769642329851761398142680134020026570552642436176136692663073569729936035917751939609675289034127655260727401823830455675542293387491421993074636583452231440384767838753474448184231696684109935811109705355984759112288886285565640898575081212671202118872531064063433849897055572194558356511851649475537087358894662297576408105442369048363634655999458782738876739579104122290877554012143982637441683526872163150209191439494923776872626065866159539056382924258884500079896984140331057150822772046587597928915339921656062474877676528280090792331714287176880426615023691520693721984088498530604980930037502353170986499293028525082345034838034944869416008146478330770502035005949641778098088279848299731631405046140982962580718813895586587418239339399957717684060419650397958456600434642172051265872207966312175751066950182827849947666896159319775838897684703235561801917830609543916382303295011742473540090544382003939707660080559306382365735986665648562076321710400576626529035401636311973146332912562830995321480977230730238048256884732339460210552438855843864931762623031584678279466744080092702502248284111541421517119163505747570700666978405905713056432982308499849214486139678574727261548338737482243991069188969939136598460572995498685562469885233194469864950383302724885559086464273371084769137896597443935902880575150605112825040281883691079289285956024927905394319948668345937281611299554074755319837622374005430734872446772099734647489381023630152963495903386990006150005265688577336408518558329663194653260452925422578481171135016063581050446051802900192824780038508095348118338482988064095447412863488573092543854598967161363051451718823165001483606253644835645837922506213372900611126909648781148945995390541013156930912990982612740258736880974246826974627950576496854421197997233965746914870873589420271820348347909740437405656838891453376802762286797628537190215546854740951473194907554826507947299980202664287931624875489496064937152240728774793701860298727602838537308456792738395928551606830289057612345381381593968779854794943181779226119634493930793803260448514157468702612607367768043918614058299317674163123738201826280489917135974050502243866118109821349640721866461558091272858648650492060461233273680085892849479603971312126754505561275660868717415906644684235022538347324758741541397055955045343340358515612755161958529654493369503781350581299396130061983178648623611572389520680449019953243260410846195437504708188833079173353164731463338901887707401768663303752312230377427852259434136266877716325026928632224245417462754810721611411801345267721150036506671208180194633713493263471698611697946077129127742025775132519917834603588047396030137025712993619924955535796638772203314186822101297582175052622665124441394175328588276626081551032682403223483438890088699339771875784310040051385487883999532651482068713272463471532224465852086332560510663460994581183567647630278524385260112487012690036263518175831124989587190874022926817803445324564136893177495595560857258973899095815363749550451716946826921334552730837481510621043891274662405672711417567487427486954264064434293337007530381862079110695128346539593291962530681492390439382686581244066389618113627084738713126973293606168671381459739011770507552940849047948898921318712811962476834757242976906433896518894652123438856442946669159990256838076790962707793311546071490849565135217627270586086117026626265551922107841952985876324587680099850906996525902126331557957285164791470942273349813513981924703656691644216983354061644161092826878720739962421098881164794791213201613647946207047543434697730668311024365430215004893903870167949712234952744372205075742946860752167992424452299120421899336975974594776864401440294709999828578472945271276221163927690784755244972840938355114946982707374800460862084184196341081483390675674780515539999121003941918226343841515889672863986334055319385609992752179258812562417699885798437944035569666641012879665500269184947888299282175230309990362793890026531431073129880148609324242832176511934762924720090706453154840592376674820401876467180860337343266800952026844866521599335162732932002158199249797135041971434476340150744296780036737048777904440255796874026541754359313746759714028568308785994423082114187619063887939771519466433510576463924250354958839195809158238433769779704247647706291681442068890987502537461585572804498356011703712258213301107054250695686183471169540126439658842200173984941035341668503237869246214845607914443345803187289645335108880735858258475464221496712123859602007535783172826593526012764756911655117016082568247252545505414694750931589689634342301439470755973885827799214421947456197773655237168038734707553067503379865338009116032417967581283730148008721245339807408674021009013201567818724663735424421129004037454034391349628015844243466260218865393048828191187463191096153708348729989887004327404672649151759773106096658498160603821836343389403273358856012354538699317239286028685802495564527962840567317316565006664112812976520153386699283460918183536178887055245523749237512581731945043286994538397301620378827618614133908454945147074475096366414449408304030096746891402052563666769688995312739945453757986564870351593273349927073505295537314858113754493409788179946529987198058374357363398029380251342593022051743541374134393609329453031850827578509788654414530842950298842579344282682013533041909857618245778308014474429309620281093021834474844476169526379932363734695564625430220630842366548211541063842467435294667042112703959756169745432367684326405212016784606902276324405931225348404537835960109652330193082430221595347768777602082188376236476016522041387534346047752571283844652519103069687825035554911321021711141330027215464099317430800855270238631362166781335537994223239023973553023641004993209683361892361290365919342736760550610870858073278530241037487856267957090398441197391255211354290951777731060505604995844203401015797952589860557665448259347020763948875285224803567814165892357716283973454537168721125906124489393359568670907258642922121198850405818726485662115590219519419837531376844425775909720229397873922530668597239096518829885111573443912840064017711704948100380787316700910623739065446696607262355889450503431050337545252192575126542914251033313423624338463410097570626609835744919356081593816868363882644002988415695611421076017564914175047051034979430683295407436448960517511992069539485660910182292614885449074525846067022268694806388961797158719006713608177501783713681353236705942056089731976151709104579098916836073166633978584772809429178520757826473219124697089345365822594996759507399410598632610634128542350977724132732998960722950345606646724594845201354981536330632555071377321358194434182527295823196542700607727701453121737388863881780734282728876651904348269114194619792146378192362756657465122283288907406144498088855373238085197344249148818586769524432382823493941119477381358046085863488267370387212080296430232249487186609410092341258573176338845027894996462633180751393463184298490041318593424295863851085484991541938302785427281653457416230083765577519823389738585825595283773829597950617376255264421942516642794322813268785049974702418991492450401027389512236701531099117488225200145356386091234954211994913444447966077009597373686971498258386810600373821922827089440113540901576235812712964810618890012157549058639747054658570766150968541636082520890404575441912008469141562243904626291323250461524519474254573673855043548795432592526267358145218290880503523385614218936087862200888210059110262580047522541145308603112281527388229607253924419372790196203121268120814038734375471211084517355609141048292809910094335570649137994836155454233338573709450807710191880180528316331591590599463140353321772931212346997398399212127983743619063812644720821828798108364702813569528613549731264770684727854480795241110138260552254380911471934627011811551982426565185375994947687107460436004887698251091428934188924583018168499025982404750037077278184402296841030438753046762173132256026763086129571265998517636106535734032383029103594878032916932723811537710770748091420690556110092980819760253337708038872172716816211360891936479089153331122668945269567547691633777609815742905130499945329074018630093029216358114593463215256967001756688892783746779446805167421003582380620867216354706776842033944414484339850246688072394323300935189485435694547176963561286104184646148425340523947964992414430228231501275879095887099205114075109676226579767441747624325871827734306568943906790086053362430698555894129787053866895250872106748730435073508658049858840313708139944135534963997790748802306041502707960355721670565038853232734089216236348774541802537156536579710152838220146505876338696388376680048718035192965237684620795487163122592935262933032907886446013711458530582602048701409783245521146737044841537053770849716142316151422587832466342534982945812806988990774344270242036281596600217177541935927247419226759001898709616038754229135868303503395066586495374015078892416199719283074013230383109119032876468695177744235150385739130559669785580871878842558993947951474994859349050420538554047762351770589576953639857822496494785343043268435821496571379849758194066356583109169464527314939452197288769035833080321322076695322246488180405333424387908920758206645832210507286644014084862608690761634461768905669403315342627681347535969352732265729871934873720825041563369361651349490923212349749318784140926145933825415990493472053859019310532937264883416294909682738422568910658270403336806170533723828215888505265017918887283548168371351387289670678510103510767636512969763707258064436795941894592676256320389511197220156431269172179550437627410755502123595559133482449220683885178894129138365195169424411189470829595740570474185674968027615483609646851111527279705039563812005510314046476042128676266226650684096724091886908205359670969617170199293585027115382016613062942191339979487474002269356365087593756240071599335893642633199900696599526595189887525956103345969856668412835406823028819853988587062003629424487923491757115744464214247314686018330224447000955519428350639724061712993981936465784273180393080924094477040994936618914902973962069678094817798173697708604971338787107722631021868887288942066443002488852767661011491908429350004502835340016377349576179585960822532812642484221873795980038962041877714808210327175503868068556675375038954780038170238922907913603726967790975586138475745978566365708192130148610793539058896350067526057559398538560731054796949254195813536129232328457749206920053500004584769899202542256698739524632600267240828112501851486386161420704699798976939167913115570651789688524856229255575946606115972450186003797794005602092445166706897055451691627271160554961880582019403478585829096069746026242461609413646547393602666570176487319384074602274259737358519845277907607379345433003905173900339427979957185692245689538903186911986295329249518007549515324239021225663391282675865402610010007626846248375748477468947890661666986860248500298006751943173287137145077132720527448514264753578633567284933135315901447540045824639933960885698740925086759649088586429248186085554118086145707188310547353395021803741069108496130810925434625522065085163825192972952426594360911847940841795882245635544569972667653008245843036868275028732987240145003167721207171026306720487912569597460757476016726833531767023516455224927502430592515810849779301280801217799742648034215750885113177469126365048277269221848101676007567139436566333326190747470097189715396834998371325646416220398376247466929409684167882224272056190508646391078977403235220043830951169331749752507561899570124408098068826793791069025616628252231215024250139987547841459605998073823946124235902084607326510385371008533333470098987904332679264051810036168569378549512574760731456415336063812083671270187488290806764427932296150486425659406486878990151249418062867838208512538990469742599223469099285763176179314235357625773342120628577968603722443491158527466974366644670062725193370454224485101864261740676630451144868791937321540375682045045764657734167795770384750089096681179279171553325265039641997184109545639230234293161416350886256624093302682618054123735720083871878262423904363482273706820177544744513609287376252984692573136189197704616251257462949552048126539301212560486657572622036031604033324617768650859582786661404809503548181875139613400573189074709963541295087896614461179764317913920658720475226571718081847140562061384419516149011452319393226312040776144305981641454402930106953713356063453185870311051472005796149651480627043063940954971277252199726569993193761420307246654703798689794116686140134667016126738410795621976081382938420935497263756298960906271254833029998809918306653534166447558768773263574037307819667100208796141799708891577002446541892492548680166373583789500232222167994971830226828335272024059863704828139330348884310727951481436041827278764918932667650939363624698528613401107738448744938738786026897553090092961098334348419324751820477392944811827770359680636542862255253209508248968676778221308981054820478927441490953250229243582019645631474728614589929939423487029937305997924878892111914409606466482920443849555573423927524946236343114162643828956140918449190866049917780075578157356609525619282634545512413884508729389611043868476164368268664719813349463457409233524228113943763162833400298034516714466481567067939380944455311425138786359504584295885102754036756111053747405187131001933199524607730771641354381308741566936268860073171145972717671129992785944725093029575424311619123415481710920461772313563033973318947495393504634389213749960975069146888021707884337517053429856423574610886751319250701277270580948968714787537414466270555212617513392522838278868603507529425868599040076232346916887704930630573456019926360812918371324455015679302480848360136025465346224414225724166011044349575639913876925799761210051303917997065036724016885141108134525383209717091105874615529051373909333894427561710784103180119226997541691693653327853626283363145417791772016592503212602678210036931948950243487771604540371463371016940435795592580137354638735737746382776202174569091575551790368036423744920323137694452275235505285437620422382117445269216507157623992041596312953002776052956333319670148225725753311380871512016925316876109548594465401075597064735120489978133306102679023924624245022592366529679871327241150083727770203428558957437499426350402523552351684726391661922563327925801033852632030268053867941118862640009247931496106297657859899259148200126277821412306661384182175608166571817703942890323900841552020911955221522351094719283278766419914918139190711331470309830054228696782212120398014513088931507966124016885606383878448393030840855740573514222221481668428054632698226702514830086341788264155513920748459070138841688278976249832237529235386888073052143334889536912134098153133748848138199482998357250570682495082083365407555796442519426510547252235694216910711584081339582240520387922492860924104088783273672570504110145168674492572916093340198456254641727841892437136347089589008539327619817280982323063437626017440602076909462980768466487682329881531790937978266589305572079157199949239757287419248912769726710631563770215103503680194305579068372364616308889621683836332172407170137737950942641468850753229020053020941090741749271084574069373231892340294376179912835601314252231762555699980129490525374385023918915009191654027354704723357685770351231617925935215236757793286046773036341957313507123100200971985230602201449971261095386322896523578902499764605385795630931701619293904303935555700549570863273270607910728714398574295180889537507356802829747036254059468155499379131920794311960945096145924342609569810076413340363990283202940595176145907398262747133211838730451083886675307821039300380435187272110288638872186760346604945692468454906717762441445329260069955226162669819092395079046065874956582620350946940180283392142299890154879104471224058104579883876982551421233368551970735444161388357541137956720934816243427885017230411155791619914284315477409022495114676688835555111044389113552176973815025876401515445974393871013998083614927347518170558351719283384613414864769745049524601002697685795507684936038994624900986875061974327338666152805405875650000883045670678072353129640679659398994036068172783108445550980125882218750875654906977148849317305896680921082716059491369811604275940142820077390451173655572759319148167409053415386055757403669787850136116686796766294186670763053259233763540143586992137935845746214864871458708059639807020397422643395539382859807105620799084453379317792748160427434058713104636781118442034909225827074138862618284962940727123263682664484779919752688645588951833257277473430241435204094356906087928809266812362737632559086025244934974044713908058836908207816803430088655323879264081615123475899898085383775534621966456417410296629716191634215596546790839619562962722427710392396249093470782019336141237838701499057630947490486423422040759771893848438156211576086498497170525521904865135886746090328869407944095831663626864283736358318536076790851095930219000246836587793098203191670067787720494595885817107957000576404429671265922558090943428606736568012321975185788335718085272490783772471736071805239238114055778440831548932008707694206035289364512596196477094801847351386304236486551057385666855947933541162054970112667101272938930115446668665339581791975152482043482053540718164851850651731760253837316218672643182327599674085045629162145031994432899108005306476003285579690395753018496168469075900473080340038012914896902988060622395559569194472586302344381300842145705502251697256953091982089411988085483998240784432443946215259434676857115507937400876760611762565320941340074756315801430132333817270636491152323108959655191030156346578130510043589739060505393301458306657323458583960275065618434700963091420974731283179814604896929968754062795502031887303772280267883557132835470549433834064357364127133343769049091730089192998092681685774642775946229770570279945187074700594944405452024072065064765301254307756034294196699008299152802348326564368493699812909741402426878085743666874384616688771912284993053506906689093348752753314229812889633084567585763011557627772844327154294867474737025762736404925793109984874573657913617722992310821841998254244101061959643756124938054937359749091428686566865111415506540175977833905633236947279725269571165593664523928352638775678449525953839535690013301312124046888757287982292855809018779313636662837325504324139543532115214724579747638727120398721846901264894410383815136947542980245735674144965684635978782663417689012122221114927486182611034568163133479684175805942441175460492855829191143649925253398406894750582885800639240752994952192793911631641900483984868498423967698339530350986328820658127237594005297918698593061059300322161972030416532274594831434064110718172893673418781375940588380133771497041627678079970338337300881659475097996997913211928795804361001199876813604160213772237555234518555180175894854162466122719704115125755452341178555055528595204131927377601959495858961090609363805426027608213304320878907414649095625292179581807242583730937421597757222081005518313212320567356044230798990641745879447495168606513597223093990857751706947155841403948148727191658763181220776818398584123215918119886529655764481806025940359580515253138992174711053655711905319558064188441170566011180104197890013667819446733156295886494455168593975948699668624263127270151262437950664928206026227251314264249161575684122081267797634842956054397384016875830910269677877347923589606817691145282171928281154752745209706450927027405064526927652118855828943331891384419086123201200489762786693955641584343693897696769351819237857038609336498403545717305677980496525293873607426661720047746181125290434863008739479219372409735966386738228145537342131684200984907479245345544810709241624446092652911208567990303102673275007624596737530705996887474436519572808462088345276147543287945136898705689294609378553764367483461526947087562098692711674064699251714763859173097572697452074916585111634240751490440959372895004309649000093462322811940363575050193442246022815331426093057793301601426278288640973206652483647985381023414753867332148329261349260563985095677552049771957763116159725523251490815206297937680158209009136605161270114771742397400399822232245669379666591404889874050441778068535235446717253340706988228461955370394982031517914037582768498738608952198770426764539590989992186511786552560381315089375368380551341195787053483025863690896139574315011118505528859062007539423084905611501754715679675240305075597655625060743127330447403449796656347688660883482788110123251902300859445388273518620858715076365158907282335171521677983530967239147027422070088894212209392338316477208643365681106427718669847348819598577075878628727944852938211784833642288264240285952703431894436779881877678657991557220228026699091977837614567218571776730995862817992814084617993678476362656816875006480100562132151969991361222823754326697692555125126204120147125736554830184491318654863862106637297267339400292627036314574918531466955294374988487343041062105160669718160436125859390976647806784836990522734402971926383772209697590936935556417997235894610850865458011737596471402453066093734277963998282189849595538277549056996504222677618567853494574059565826361317625546741016816528729959359154008389189825145629424605592395254532294492926600175792713051384348936922427818018655210844549245200303862416224422744779170837019350473009249775469533673304746234861879271685964632856763552791650354710558995738716313183432730067623687175464684484288878621594467707548258330011591805983542316500250610455533550776862253933629332540952786816903079708441672688435899490814363557067994052287493323587161624053882131009254640327598499063364262244620464110144678904022515881543051099407463966942253251750921797802821130489116652030204007144195036944792653874921952377483189165259497351803142488376633486828130279698986974911872777784070745988568954331152720625331792930406387134531204627074526382179691213099127474786814947420130705845502627981534566557323110494782901565397962161269319398522137344179570462517519411633610399990131219038568671414875973846653948649104070386546674414933113443483092003058579054595426031307401556691598954192334178338890185390959396470054504998432923917819909398210983550551376662569986667239120029691349935869466114532716628270951702739920203159012455857176677232960521999403055896710680198946882284851229153520234351039157724588318614254121154175912608700998055743722824402982417381811731052984368221762415549367522286466286463668981585463922162169587246601620823209738270287507545947990848892712830559114993146634510925713652214569492015403101409859565318746165914320560835366220993297102016282274265213762294829939383431204592818122601012032643153490393212039435896971548256082129579153266692488714522253618407390777988071426884807526792473428981758265477182912962839232623847443095436061040119011469085715004751115254301396243949289357153556218921564846498952531241730507377779607906144691217226302347360397323228697521952258118288215050052444957925100952744101925842637785262004132144635394609113288966414895621048209128704020015089547560813953151337021196611283084084444363451083463153034545087445178376741765096091251410755145423436286016209601297176388906364322629023372826156964120897379355154629615695840896482892738544209692604529839442192459320021103692517591815277347663284454841332224017566359687072968734308315460606487985903696597942021922280989086745222119507592230258800839673509032641057852290302269858088993137620774148422731188368004860089998868392944767232594071636071112644908371238019562313570826902238407857369299525437966176472488155609986103957832929349600299436326759775520618622363834638780863725636935090564525989304930175568941167564427824378891764398298569569171704105353130956061925323614622809636264904196284525055554339725812553648329758484952635215833165785047480539659430429803620111476574522421847268542595220229068549948317717379382345577760778245331510872267410945608619673079149726138090139141581523715580982830273018297862350500052476283193609270551869577855914523649300747293441946827648894542932779483152107467954157479028374157261774075095969918190437779550832477912720474780730087627302623882885266441555588921852024171238187787342105541500035834366140619319036974861550048021057465014921027649747530738456550589945722749685017658401859742787354806243141581329380726490253659040157627408854621805707371661456191572874892678665993803584111669360975442888959098280373735551234220302694775810844496962306433244722033375494278901153520067730106859621522043704845343220706547612437203536540402380626446991542004427281994166237566658566330690877199442949597838813831623810572581341733665199435020094386565716843386734837001438361954549550948494430346066764170581443782010620865738206054327018901805808595154889343897290866510383680261709402873928744533878486846252841439759984110337828245040136140305901244551202035566438228850362184328011882468156489223945703111035594139340381695212468751290352967541463334219244478077171565110904286106304903871459294491035218400979866109977020940423076920138823313604171320357251422459527281983012905224987827993004022924649107134355056762645766007558412507393089074377336096786672400406375989325592367614673460614513175000081298172382982846534807032324565563121882290319182289685910616560065302907542281004609130687968751934110673432073809946735653188049692351276008417464175447361055399923980814351998408646940408264518676945801799468098044047572664951136247632491248242081520647641664691825605614401448069791850875834677121536435758604537651856325253431214045958998992391695660638499856941625476434476995617128013764815645245254889476682959811760042125456755775177562723000956843993481245918705146523453593262126398013541147607948036597602183759692141025531874778194026915079185981729653653550331774175589460959884515382390637649017020878109263568552521977942124285988806463325513691845178774361621995031471673543994350720254208617930196826512709049965955502757770114061883837180462156364290205322095097248326633062708931761327859698016144385015775403956276644456852490744940999249052785236909774877209893912170447587249178188844635790544260466523342517098940892473602716202237466568992810158668170855819756315432533419073417979736221928116212626964247058748998682619508598737994154511262603815186879771706806066186193139208453208076885090084512656808058952697161174747395761788487827747547647928607962731739248820182965006370412720708788148894850648012931350346166582125930511208478739975284114316623861937341257719885232529267138521992676542745084355359970841106995050944299377705315844429504644490790654147081291362773461777791484979381249184732083649796872096540771598745878357787887710236532660897895034865833482895098413197735872766540439551985067365722257058072323569767585596210299217681926524226155948139141091809480084765792522971995305821922941825481312771378838528548339617155178106504464858235838320705896994866794718576390939412178318111196535702631540474587409812225941278912182506640647265924775664762981343845708983619857792845833795374409581242434819405358364762138335343278676537282502660097533115871786757400966812125069243204037767660208285237848838101532037798964634037769106722206938858237142296842154434022209209117320847335703201408913917394431273441949970379179205521819925828430019888060038801674274605763322598150841383242558896344495600714962862300377616516759638635445505419034334551285604789659807299299933198557885091119401098922390394987552835441242364662264311252725441217673341802287467819591005505372260991663100250341987870251631882130991112852789079831468153330379405810307398551020315358499910108290229773829326878193242984212681026426088506735644284217882111672051431870250548571426632917494983519886398490222757473883941181784921116421476269146941443812380724075977899437757869960616423030547749794878027176476504198590917874586633018878353136589080357077942200816405601569972456745613738943496361375431049106732708145058579713158650201152872843668354276140470558116507166453558525663382174356784488743642165067104318587490128887211611630033067005652196314222256039987582359617682492486843930838776119460154719013927535570391963210161817194349394371316617736191710498147701654828063485033156080119736374622431767451926620416494976636501401388563694623142753983064394355556143907312337444115724123454308193854492028097880462347941924851723204704457002535996463329594446712490078274203679765721763302313283730850843972613763691250220334875188138309241220385121612706435878987986495000682835283260014956810394926359095127358735833370725522361474154607437807423658615794123081049447747325128945611061466585275743450079320753596148876743673357950913656936315119208409183480027340007878086437237708256672072756018379450631986635333890640297074727023336150642375214812004055702682375515460610604384559191397184861166337544918066148866909105452197699048125798089654559710312916566796129202799466157777153488450075340472052527367894813952609665235234449620869663686444342091073521938782882653171718279922976938594951559782772424541059385622456228491951729552722472401279779482560662420974374579404636174714362537442840209678230975649513436746643225454473265911484028655397558824341346662375480615056766304142428148333965842313295729713450770091113662433202848579898996804887885189491769009930689122151355215479979777932858417795859269775016479232071762373228863614560440831684429929094364155420992694088959405242173531860330760823147303695808198755359353900737987437817736736087670200418870083987373204722744752866633289259640505678868172269814764490189300287108909204030954649611956901754099380017159842798295582123073914042998432744661737028955956122672347622244159879315068859486180492958784740147006184983835874177243403335041298580686410347746489547032053422408394670483337490100811059843807209689180619450581908564944731812787277038980383797509313816996491112797436268621139155890531189407985959312217741540728172843113130436822159680988359330646187772866833150237053819957436407829624014335896509807942274329666148858257028179795291493623536013346367346264240601781005006751492216470468083399575036503754528229696047834957134616211049927718011794446913893973251642951551521305216779099381884269429901345117581497684212140494856564567064217913757983040611441652500538137334051132940752320926646857802066577589373129724470647013986457147428383850444722837872489517588703051902701677325418628786136733953582525565684677743461550625691696077966854379485710793304301890897655751069892678602684830902660212372128390651031488191980246388732741834583001694340628727471660186058274355980538199514864222874141551674136698647939353204203135605431796782272380336841387782189979124017906934920875449205636094661318392079578788697244718609937687323574342097263712239709182317500187239693191062971927208007349078639498493454289473426812153924777432932624743152063243619932005793519887865557054255616474448990496509973412903432710659450583383742602701776588400804870284901349177790749811030598995225991017262017525913371068584619109326412989189338660166610413732747791101317201626250204382799069273959867405232689915936128049042798029481362054252106224152111524563796262091646939132770364201782461962952260919204554097608058141428653077905256792535177534126483223259655761011765900785868593181592215727886942737617324242728574939003103617308223726704599921173925445169286713964002066409967365507810483595964095980285832191413703757843577532370630921467721726726727504477521572300378224330032960449825106953089708222629067918816274226921715800677655840473079687333283673113338566424281644857219533111822987051909386316165701504476352277654885955916100450176866169480978937358882011528117840307350104266331889054157343611197105617471995339178931133284878277012475440160105491183786246426901713196444614512025227353001918071801069427718901811057288518040285256569748873061378697559065006453671502118439471080758406418991952586733832264607670431013551285545860530215779259797788972012512610761996254058042073743117568798869202940942075637297206280196068135119478325880243129295949650854469541513652348071509046329975220460851998358654012438531297533163260244163555513253675563686207245052327403502936037948628590691154465313127242755685961767865228834058707926878354407830114015112651507621138803460936524317150820671486533807700562660950055883126695311522053797012562467012288626744642820086615094790686318001828555890627537229913144154571948602971775266873893613868818885532967346276520691903971794014110654232637622785986562899483013075317077540939657984389661384468343533884012892140119480302295474124763156925651816037462695870812948487073388852840811072719954296834288993525772784360839781992697847340423553373287241681856707079584621234494455989906781496411023593381946603047684506397681211056232070827056849731716134305472303303708592600276740016029289509433854718698206149130051074491078854829693494946521809278356634157956491403361490232065177153055361842571182996027043090659108210676423566130796772313742326992365747816280389340827464493841130141690683886987768961161884003520539512553814966861472426318108042332340306042034154906393546691634524886749227887613643861349298957308529737145185581706291917136776702432761090757974098662178086737632547827196111004711837331833276303160062595446707269496244957661978980416091314771739879870942408291873012015025919453285115904101076856821543312429726851324653064643752626156365065635859042244987363799979380485845638453032373869387821964070705628858714102554564542101598025805745624131263121239560265006437381551341328259247327477640986577944995455309191377087447776191381068847086734927709008721931849990256266640060067958241852849905260203058472892771150036113117178014689903423108080027834890714492964936826003238578427636247238093088579343333506903092421480681229440207359315776240318485372041526752508492374874410142062385590381073881334152478800744249069965531071237316698204532968020230374397019466541681650194054437995073329016863067765149915350784027614408574854802651461703003824454362357946256786832878540672971681236198721247033951366312526287396318544778418614335264785595375576355888684725702684859468080318643057054762601843396168817217781692663588135105874328946679401813143288891680893987575543280920430608788633350707964112621401673845645678760315859582256736014515624795041173887009040699816416064001503250022381645327174702344737800020437327850889335569526389497901146017569226235633725365496788027566586145126621126101005966211890281654638516072414406412747574230685793577305276399706032186191069854557517687153028255672156795097073043836390842169952787406768908625128882560903608638015012177743451137112508598940953441019201568690082930852995701504842031117909597381658036358147912730539332973245058793478458356520213148524517629930754069597550253008257571117156539955171881622077689122646333071484419186910184605664237005953390563933011302954490915910524552241638425416332750553855158033418162906202964616930013977076358570252855279408641930656535610411616178945032208753085239330948987533841006588866132894113030311388205086024647011258515054671606548400898325103323174051631581778252224328807514702812096274691004577418474073444118673898348492368920432207705263776999719346775563065277576111781097838850328862531269425980708861759007263344825739807785700446571325434497592135363336911435551043582688334372277577484876474346667703108311215663372826957469463569697896897761749350998212608771303872225230429229832195195825651363488979579130857730735797555239588338883343215996904031006195613336624676150315915880958198946899389509366337183928333636316889177417800342775206234233978325733163073255883906672457524184566508996335914942302754550341405490348869583140859207721771010036057843977839056183678764733808953403512898138825969844248476543235294894826401856758550854810822716170621313606022788747949204514609952194633310363885475798018004124440281570820737224697380852283199361744705666595403128653090756997730752451571224733613541380929423929234555609401987905404610148494900789962686326622020771762957670277516467287409967201397236320021727400055459141291959010269816244654717107253878880544399863430246069341446925734237548655555922872890716718029480012929216495668379741355804703692287188088186804506282804644254259829063385456105085779257184000258710345341342854236747547463610018564772540558050251634338494110731028750534324053628021668228912597859967882028199460543616702213523853298822161273101328390174675873031569564488442968256653772151728701140469067968510388561585038037487816357980829254579388641675296538829727793745678798134066086205150342768676349051953853091754168938114424844060203156313757162654816067579290339569607635633476000517195816477141733855844186177609169904937858248341694812162930674326052760596543892437854445493369422171937279798348774747727871617512524898545677577243393951850913809717737336009391747087339344325209177948118636158517542211202571697304618900620114800904977998849494198014893020016340996496605478922327620077892709672352487292819221885569436127926962051313702629176015580585950656502527963424935037204628753176764525732684477503893591620395745285318174123581405383116962739982517820992345097184255418820883627293610717674112475736343770260361682366331317886924850530496745621792538393658981989742459686246838820773579416274616063899974603871301647603994817897721508493075564654946925566264645256320080091007329431157959437481094149382938387674435796595938568348199267092326343035637524678121786663646314297875002120909909635447960867580084736638247540461542532664800137529344130702564315662767889189926266850098176000842197728722592893095566565972225015664593213253269889936934152700809440936249741111906378001761697528785155828374727035996597000629184912151025821106355119413826933272727432110241352770819758429822795253467324589926868986921932404705250036743043980168749604206801582678741643208151519791797378191219674725913913823945991459936378145387947519368658014947245971361739796934560161985385772425164355313919507851777477766008987488879590002094443193409937260334036386478409500179488370412345257429254906553209703088666324823906939519688716447768739349514392421587437358655548228401879635290260722775286702216426021513900311062262111602915833743274676248700049327276600491784811648333454633189425774711548240060484489067842869849429652983020045482111826809552009166273650682588475915997119161388427800666052772245538388302519787359149076787937519199456980436974754596198978117260794967258113821582785595866891248900936165998294494181852213945089105266405260074652948815708838306227267830871066625779011636450553452791704820862374386329070011998438114289448796606500946480744751416129648499485455507268842095875023940258604541399701129435952726740771599984705202688818166153617756815982065222842815515352904248792427533086954979323666370832104530343126626344532836074946067248802711595944544280330193620597089009228323490293759660345545113005509087941784560805391767639596378503194047636025583494299690521735517375679976082270207297795026291889995858960503427484803728137139079801363954635751683667396234549019972780710414949009331281129601740936618701558156793884423391360180845939608401822925976291865700647772536731406569805204842684214958460680131411910635086964400915800400955817490852433238793182748566182085755808672485238070680647829119712584383696016619356633072543463474864225200889375752771038185407466398252927965050921860791532808706691941777953425321678429183659684714775575033254628371649653515351580577760635446009027835166080693519953045686561845504166856053950445866259431934595828878598045711261710483725540315184612775807091953634668325259268298252987553200761885756012693765556424021491826634172386726632820847607649856048245667636698865418713769738892077741992490281346857432581130533699269388967458077835679221246349655889656120034072951035009113472759564393970568090280347948766338276569873263190891381258807394347956736364501986919466435613287396538033300221576154515440757975529244659450640418061481466614010315799272484074308855066728075717238891859073224262112673056044404094894808648908512564852718612512661597184512934236037378898940324515354717183102011000832958674107052098596991156027085775345481367657949651687192327065037467449877592528376628050972438023759127075390928437619504590280676206317959368457545099136268031017923470257969097574539715480686250480363449537653115165568387382856695124512959087056343435631902890972591185411747482162122112744308907723945988810542916073952149737280835181036033733862447276531715331790555637119972017958018293155537744135327729751405724781467967626099462167317946588434813547301055073816215944391885293059884138581588471088373216180957786683269437174392824077977148613242142531981899427395442098539149734192254898129844503082555830919316166371100784182991188791677648785801852331739010226564188107190816726015070159939888522956339122540032865576086499976798408277052313945327403957010360553710846927158318398467870570401973209126978406095787898617672539410377854179003963035892668833819051861676930194751301196057845960676259154406938068652089255699489251132870553153513896424127180151400593139407980751837868468373579227384774622594636001055204651061915090496275157321324855924635283719801504911370650680991088761057506736878981095323106124092170540550859913254870571032376125390454907714437135903673789017786301928179900460774140809760175997872590892946281897172347910507512469925093268417206946010721808493183339640324049959445150289256531574609924959741185462470632408823305482464828455889910242076562634035440258001791416287727624328186146799481265912374300385932496918857670826658319857612968770417109819126302008858277116647032650680047694081950998267393769197872040757208784186400950333212901859420443623413706825031387420775585336806747067655790141076899659665479003366348820394401180700264736145950378152451405530551819505536340928316927655965929727709760634494303681756887092956422471797722826147351357415106917119842400411668961886963349271963858137098908345182282134040644663622638355339145946727838520613854461382653575529950043252279573566497387055453388947087642049331785628520383097451041324529514275356782174692850972545885046604655988917219666826267306187079680014223808385101441265531488570436956132956006480011357511245628595366241817907437527721777440722686636032332573911308505160150547463845962400409520696909528739578463179498171874853711132448284377844395979351362361636512717156057045314636093703453335528555908837312545758578688139173933514739186383023013764326199137986639519473800642030208514103025707193774495137751441918601636995720894125705616134335657603117659263578427448498331517984746930881777741136340072251162479185149932017151238758200069040131763613118370772697668010288940041382289255844776494439386421495797427575013740824919758298502184531172244292602645821890052969529820999079572912586392647044033224227791072662374789307706417291602294618870649541956732247491067439953521867230966150450290067155057494142905124897744979157406224042794953540023672068662884815827414579122589698382587647435610239245560679977893269272814210230819224258147009999232798263105886747290697143632240932632966754530338780924056583064689160313891669531757366114695354302213148949259707136917250998982707822400418276673477735940927149178160460053174790801350318922814354105670910976172183754397426915780195410523354606502632380768740069976924202744283141429309068976181596029994843981844968908736315537440376871806809356860003153839987146598508288783657302038422421138233390541559014866493324303240527540617638661797896214948111595080384926170917302876737347441371608160280685079371736323932617140748526076827124473420308541853682752239671808519651487448047241075551653395664570815943468042377324844507120504443507619169613232143413221604912495530989429913649500088262579188952342383923955650612687114552046002441193683391143601628689774643597975941512085111779937826141928121377670179233377143580566334909582842024622484014382794341701656488174900137169568020233759104925326587879805797417209442635795797379650548002185727962579526132295687600759958150264618382302014032211474799354990212262708690820782178156580184143221338787538932369446497232562707159312293564893137195015373727405530658064170791998469900975611751640212799891232581929445288918278892661432298311956314156392231854383551967929496263718674478991769006235788377922271507361733980978016710604909722766669679464337966662950132905556409593157884335971660672826349184698447618029788057616584636143831572647380502526732972917177314136507592237529235280088021884006486370739768270299772261375796568846240437981017361968874706699338700916708156229628985065200953435179141390245792117230353013250629975168063382871647658950082769025054881201914846582484287177136022767384785208862803601045583378318608836742244777460364610735045318950119985332577069319285727643825182775886875538080620907293952792810715516007340688850846845682623941807769470571905178929742679206400871182468300001247320732196913021257898759078754796072446620849707097658664510407090676698373817956846047870470146659323364812090468518276576577023731370617241541186408533920650414195650400244296647041521383745882087478550781298534187743312710771997471858899679157050220081581864250603814212961365999885546133457362132513564909421581915205033716951422689324344994164589145448768506970382160970275297421258391116065699823550494864507423294955296954998503953199337891837131987736550051569925096092405722159435824298128137622951585410977339296995662440910138267101095494114516138542962964405689583776972134489661159952788769890031673008098673095616245879161171019192967667023202793659126154940402094959816545725475723667716967807081263313026604596198889620454216437101597568243593687881920902311823787025362939229686634769641877113637158113911414068348299503605863459827521490868488657654131491910338975836813441596654276914615049345249811302097234565855574551744439010745142563091038768641832034057333937499615147948968630301549123907223456739527858308592700486410440580143833440329856076144182322834340450251935984353122925654397781899298972187545798707958163643911867734721958775504436639723835071528400569499285624835621287354173863097591164146224769232109122640971180378119895213165046472511251663910476746814519779799028760953302819722685737525072915590995338420844250704092360726096330041011432697323236430412713825821590941532640307430634556863771084810485288637688655137760878673658596459240943979259888320688159416121194469670263645849345960619886862044461669742139890893057926628013849377486054568339706467052525564847835198433393588710372373621548867964939600279410185281001872794711463520438901545369960471167835899801873142358975889318998134606808444849014175333943233892075921146803133832115319955602622080191938483870963330811412290855318217373079921804484832970996923726635214297606399211428071336798897514562347128000004331052827470004263565116111826875353535418066817795215159004492540419810443935249108987602209260363919240845720880473823514372843784697743556737620891890549627063418007792471971672533052340895523285969039566568921680568284472038396112719635191826584816734748893999789540087682158965472378318243490917471009765937357078694127566726350200779350165712709923094533132977213461420973989752906306158946831515833422423553787682322489725881662924128140723458659743950397184549843925668281118974003195670715280893188688261196384279209642397026394849986450116263553122544008536526683553008816875130144216225219167191749309656970011555719208406941008371008621910530088131258497051847235066120618406675598922826035518695858815531876046424775432389070074154388669311189394182741195841803897403558304885384824698062019735958326504250890544432069647416743617950152172413987430510256155965670294968190022375894831874215117752584481796224437726165334132575199487949069742931569541862794566497316953210289903030240631533651952044899732067721515109975303562867427117064241180131284450028628861784638650262501840706293526137473746357735081399275921500339676912405654519881182136803391636503132930999255006931051955470271728573704149708412873592876072376704732795303286263749962670143124052971568686193350178928096427897804803703548886218885422880365656972601589963732711631884708792211183749569145149605780555470314055162600895120716973282549082422064500019385553394933346840865429852101316813999256967122619155285105898304733204288637129331822810285442001994218215607494376022164131471082725583553981912565872349759660873087654804206479820779532998705255379194945478770168732333091675172998484838018858788624981565295314380241981097307600787851699245469277007488197483032843108427215191198673714535224260578562052816001100122543924893244572882021339770988265524765183614918827009025847706936287489493502013213473935175966561315782102593409009962702727181393464566702098774256102070234700139186442660234263320728765933026235833983256301262766928262585981454481262848053304865580638808333873485481052300581295272400178079140048641786401891259319912655692242948988730289634114302438333529800365908271185191705066976285490534378500663880035334166096167275198325518140558067939327694408291670438809902226752585516882960409670664422858811233693312294352890985384611942633554921258244207946226899804560264160017985555447433633554587355826536024710754120237529697580928005971757923260888647304816086529638547846094699010116931397352564460057423582085315399041404891623029400040243995659699498685499831664878884295074675317400989814542321928412156361198254557936239734653682950973366618442088874228424403153368192487634855433635056383571947811149799089201893498584241296838468061763135013980584581067480197721563375261880528719820417366749017679350477807779067277925631562689869133926657989823112898072159714896898370860848319422914893942267388377018468712891477232907800858244083649471134685769663228575944396155892040368617775458970047955029539119734313690248982088919836263344155232492559112138354889568888908220265393955062541811828543063775990938302175878544802574818854843648649698439143915960106424730263618817380731508201650513968009685317765841999401982815833264505293117396156353932960527431668686518880949538446563418896246527559393197614527378260383879973880031136319797233559366586282992587204328417806618746408413554804007993938966158412193876027901389402076763523894327043645810677685995644668816801657595321580748254220974398586824436735838375711899828103961704737401651754772171282917578195331903122470284257656688606792279033509787751911875026515267583489314683396578049950321912971103543495566579578046885600823843841858611856958996564756359463409982710446620583535807764189319526625562678602400720398044595815254120161150201218701070457442638010073529843585949535022251603500118133852926072825877152492666602352021277435773666776834454649855703778228086759727167836089096172014081982258980812062978933547797256696993992997149000467152172098257101060283964748635667567401532502700288859495884607330270089795772520059676617436154729983629849249839058881248038277404988301010894240487952643335804542226975364150313807786177601606954513888206891163166066698666280631505682956642551722144143824253512699605554161442613667818144192652663026703238602191228920915310573752398828321310339627146251186564086133909237823173644056382177309605022304801076864529328413939302331686266693575111541766044895840676279366207992137396050887012151391807373660408757365837573197693728279620009725052191871687590522663242855222913594974350498204169374226093219411725998084464786075455785400882851067432958927823064859215599569633569925394103994357322777930207172513579516691301769579979189907906664300759960872507497418785932969025593738564802756523097137744730929209535501001865604062998099160353455294486429281316427977737919357423497295418131164524320927709985140369905290438396457589085441372443258297930960693216184229356766927574981047941810880651392048150149018229698274364555058866714713049927882684681576915449000684127294459192954536369741834758477051080952775954191975913474622679833429703402105887113778111137159978213196114738091547893789924480844709629985381200720723961173392681098524167394377550153772112859504263558035695839502826774344289310476231743091933306173072730156771224545036813459248666898066910826345388925381444155606613130491853648607838746520454268650816894997831643746899885138197910491679771933186533452657765700240588424036780752795687658478037429084989214723852621189396400792424691960645473351109964538328711804607543952762042176781836147836520584764157179845444669483912097882438230637454517104485285991614561833002597930542613084123767512112883282316185256722574253819826331749179688431471657106456946943744309580880977313998747699551771459559112489453668212913317560879593221353493757653943347484812754112878272451397415942451669545498468020298977849042564962631684015740338482416219695789876364048760233509560434508618521045430979390602294105542933646631955751946441440242170888322431842167705302368694399099745406026864426137924728696288061385024860293120381645906992482748395266076165257826894309751753492191042856073780805007755045506772369595929622290713106704788921963324837604397560923826336243299828816446455610848899349986378230622785306768654919132141099173482977897062823606147483488020041457438233334981869123385590692192915444083403551633841473415016635917203904378698566218823673506339795733203400032120388142790706691368190278509851469034991379521778962643306943983295202790616889515218650805079932774391188913383224032018388483841713785473940073608279059121149987057438660053624394565030110523942991696884406507213379234721113427755892723778834139234535203842293599902729751546954112303597595137743347890542632512472223490264480199086076834328844308080230040939030274594327970082866931863809058283866772702797957576833574346852100075220382706944209465246921772602529365409491953306775507757238260504310833868192195269944070775358876623750763958542979787383006112758173206889668138213665737631373668295133548685890826242291841249589108227889711467138881924831255097485634636345061184356603590578676460721218331004259977969114017156934221388791749950153052824028594950574477338880011417454435128221200115278264461172166504811745117374985493501672106115882376520418961054000021752632825730377077335648417881432937935067042558208857286329331445061135568324941509020851927995769589236191920135809374608142480422440839129067675297004984721576859209962080773999434829395824051055874053979408608799458055383230038788332546770054329705963140612127842850204947960997425923052862106951582284109649771980231132123235228740709727080382187014228080494717272234301019386950967291908136987450581246638212020245981395271395862790414438825961331889959142492376766652371893559993279100784436031080586348143695503839174860653137514628950720661940490427706223025857256798715209206238161006368230099286339307583517993268666996334024164116776636424253372142573585098634596671862152522030985020683014671000232127743406594018010660442612333313547525401323683707836173394105623758499199777576708055604469187266446767746250100355064949755143293800158726731023850891846937910705839391994180723292898869690189030928676107334214934911286518266296282137261804197715319210265305794585836187274074105818156532443423982054525737930620649449903184970407288401305202412585355612685933011530474649271631282638703724991213117462007809814496200513311491641614582530196675130375742566376437953593125218835847351876907776197497815333660449400872278911751193049800855315060996544910056254876789340280984901498452175442189951147769703087804869087441327989267410796472366888804135622753951143563494122172566620530449015431425135657358535899472792952492520674970577584683848358634439915825450754091647030127394599036406648136206633554272927570077625433548071778576087313027378317086013158621370682822293928608775905997253583551252230427888282262376199191907759834735533439406408997484847646925603961025522175784600672490348469356802519003408787017298671542076878560900092295361097154807520705309687678610640112579840071630430766064208242721380504010138761456461170425000168475925189625523920905672069010399700410152816853002175890360752834266971489245766052873586225482073479554496243319128789484269217420485562504429303963092208172204282705964946505248082615893069798677874320334169256807246974842237280520035175011727568117894512869318420426852648766384162650416983173035560398251162509247506944382780099102439146690366094558479012470567467580547051425645374401437951238339604862112105476216209780981753209215803955768076527367940611911285466425570420730939059405513417646703249628883742409021671235820652362053193161671832882709158620301510633294664543565887451092583484588918042391091676124407269079141787471707542742591565071998082371730986245153581244881659165798061939312189815550876309802285464476244741557513081240488462727532517525636201510939934068856873950603520239976425473597893845442017067883231864698687209853638026434302467985029093900591128264522595049101656647462008601407461455276957055771033638172120588806993689919116415949425060300514046308608213515989362225821462763082169174960239887761949741356614103502851185966201632887847923106157215908159087320722907342843557461605274520373261649728223553444750794144485227973549012294824391386156077365564005883394622018989614435807899839057643758298286477726013343509160382757961149390756371148106076577368548185220539241868364253499170696590000880549305845553031738564080724585984902833843390907146800270032144404453767815788951218110018833186320842583203708356606184499795641204526046137577286776732731762085114162947862521348603655802629960333614749406138398836866711677167650377647735625089496582493468253371296330835277242687660002606595972933633130978000166233064519652350201794238794904711670613698628809596700946970685422712602550656170904893792029759678917294144432692201247141031757284831323645132438286029087178423544848746808307321020816024894491412101884163970186774705065700244004984888448340845873677734519844242320247755993267401304023962215460505619044935673245078078517115244088926511967855457927729942164639979757645077534653585280207970151416690013247010366832694344904064130527054654254160187826546151699344275766918736261327633926061518171879121762516530381235372661014476385792588742911149267664169798153221727137927467176665070362584686691696349772885632243687933009905055519843036850648956254332519964107962104020808676548722191767116430246344365776753612803465243545771431290751676495551472994041812301708092701823191471942077740482845338464514883214641281675616246741555941901847515569856697081029295085660203536510427063241669852660672519447870701435975190468968764398122294555829359161833065394991392287906162858565659888539330041245953244636571934465666789900124320286104062946816519137873436587653503094293583963499340001637503780629734112217574340262816830600237832815654782406594795439855788258086260007977101728660334374291200033419700534286660747182160580370737748261795569903140267087294241100247748958890417922190318652946962182787242704681243520662938354680536014102057474348139629902957606708668847331620907481132685216730993682079799936472893076816528688370553032323624933933720237279995148859935872099015693923709545314533629764062786621393391156954193818849654613160261314914330198021633720469771063551522851874327786531827856248776601420094062504033115566708849202402920333198174016238157333607448362925693770986876056418148901812424293785408151005132569219046334250641185368168117456775046030107182304250382072695596370978725135628818467893557510879327321768832393775261228247231341629781699622630970132779502532692175666691327527431191764170804808005290854487036925671348359417369689460141562944212377203896605245378162677922219254414090383118117030577463811393502350699626929417612208239588454382778690995496456642541523904169520858774132236353123617704906145750529608160376953645241739171532878390465004106915571447137543187167306041290092614557384714173982065303763437316286774997055303491443181606200300021717890812777702181517631253839834170744981355280071928158859705535358721420615515026753780109158836497618888767017106200902792837412955173954525242672240754307412129374631529447559712440273858408576029529712047262358250866120747497049869977553907221581697378018296734680952203710670083366192376380790455418519658790537566938823267661625327879995560530941788892285329044083817123075093301803547181509719877990609918875979002212006538119430780796380408952634045510329026583782139021070629204632125821944050595769126642701169719659814871699589144455489056112987315773885715485669620940401265242685517057769652098457133747770067356870106257694236381594158317551394895110099315963246347106258289234332767424722746934735200318979270442826061702930010718330293035954584805906323537006924985874500715331476595941040421278200456301558255917987671572494981096940499933806151962418518080103699771359625195363091209964812384698840674835113331669024856363830971831515545581818078619000052596027698241452316324722292854894838756083144794053850694607928979385706512468704291335959583531206419977808776989532644635806479217972987014534666224228629451085110393476190213604947298621350164765887572550672087866380801897894326743841107148459932292459219282155501146006070450006429838488690083281593593823155691543128124532459672845653619695040508940322746615230193766786939894979365456365856597829856094269750794712448448159650204273761179450705325187524927026174507020553825526656361402543785887372187406297275747702220405787252652819260903520185739433831211468210981926797201721626483445573041020994684386104143097710838201670738203829743638817233206823443103870690055647859020781066289314105965449241772358764721267280182905778293352276590182041847001256679576563615239126225598607811644941922178492134364674628216177827177231219559825712498586078106786803144063845213335658688929892460635185535337344321261351402003839944624222130722286112672127008513821683179819255790122931787827799795369273422323278086555890755891197873341274504473505310076170531301718863250480240738785311763651140515680110474882713648983274467931185323225468352230319533036302906975070667764967363753757130908516725386598314714580534457445372167064152308334294158363736653721356878701455696205451279931819924603824723226620346493927346153419800015341303699589773588859532626381516831017088344840004182271814050629630119950296266637031402301706347741831988024960011457459610506282653710997006862609712504718393550318762029865376670471518197543015551637928752981622514856890819443582146006931723971623404553846959127250569558254579489028237081137646984362066405798872934700665254786638497658233797622454097987925209714952389875413988259602281366648737141777227380430153341660484198891935663991590214722682670469531292088693439587731958814837625873387665311355277255189477853807989297428309323918272050326570309212514042489670076604453517481153221621747233695772673234272073028660215950769021780632480752991770472203534348808873911592386579576280669315784489188999691662484785180535405585825136852910326764540644079706723228605672177569289062690593473681380126662503855077470934620401436001699711366604451355651480074743048593924139369625733183202852285352930827865827403656221970087568183485549819192865829705904087777373663091007511722923516192877860951314079284904852450217966100304287617135662499200237248547702922987490782123713769812975813286519350347672842684874448046471088389591081559112196656749201940362141404760475375434790085105984313234686546979039844831871021324944781991768984981387379038950261178068400149032288695158573993802294892874950524502420319929487851945620151075309170475192128068691413865703086403989172341590429453549751402528021827955247683882054427081795471892444276763593794240714702263115959040458695090689603555396589090072101980526743855454869194453801621029002945954609626372366676928592748563085004544393807525397379150194632369541577560154812470062620699088516427900603080394890668120424863032345881965334836334996088618222379829010311620269763494413286084358025703742297679884536341782869745545114086619163938512810259954723112233279923402646994902060400864069307995882335643283513330827699588375984240617639886721161797697018008938608389840944010161259210569131598629848233203838769252590251895062975405906921070161070982847328100913771928166980117065517790443878864168824753501452015512898540411890518619858500610958193913808169967581580332720888955009430611109852752926516206970024519696332246425273414542266611700246442953043382971276817388453731294227464030496093119828799012883183812060061823514387945612861880599269771161574478663831528841252357821406439397760388945084881561465732025838002520406791062278542837851470655940038400305404410150739514624320919016910039066349141866218231929735863408011190185926914487183132786250788498303806711383166960427016797598294400560250934880209935919602567149332603540228129782408710970471261846227975175483008205030985457018364641934663960648268300299944443142076722458978357273462641703364045506236362581925995222351404469801801705968699495588505220366321987723435040820265663735792032657435172183925944458236486812548868078355666455416114406453783776866868774515661716345574059036085878204311108361733358959879589847357178083234654307999283915855754959069122123147304544969999617341686592223765969640064622272569781184294252117391406087473317155237060775700461120606797963170978313841320910756129359683685147177639289192871370860952085717105859626991888507188687885333355272679105933606939714297113591987932774505931525742842890010232960042368106617547611961636026902897827638374287517204797482869443297686211668713892033813583302030064948145588414591655065975836945675024347305075976846321125385585904009681513579283174779949237986832963127837451974685128708812859837316463297781326979251291978320165470050437254714394825971696135153079386625293748342460047963161529521472652329162186519957319602646561974319016760162839342714683786388908016058125272415376314445033527689765349252871428868308773612340243253793306276949816963679818537035307246655077844420808307111286807711561596961121553100735962478313372798916175209261299063955004313998936126564654089409216922993325399233753062167673250567186681462122243731652985497110754808227763294407036261530090596146393427390789048436409030285827475214772112103362092196642610599987881575913137391657720585543916215000358023843992655879529954859545746138082143731607716117430112890091069019449168444501321679938755695238779336208090927299911822446481059613382481910050313812557097775656607466721716413935212210820139479193450438143705174377212798424011331714055501809402649137891639078102108236843816889911656026342051276345467360253601191544044116266618881027466461028433911595158110275609723978018099867764147932196923120051025879111062569927346439596934626558338627416078828493312963940210450508935994315301311970868538566791504189056983667233621605515557877674142814322977959694690240075351732607946903776251359812616768894126029888857997591348090408472788678575363300274937060072478692660299160679165667639774670820713916942575549596345070795005893530482136756292846138358397646535642651754124627862830347150641580052323230602103937294568300977043526462213690213970645898078738918071763729625292393220540800278642804189944467528434042973537349984583589532821706336786814366310678267344217610819235242397037227859546488783498752389670094998962280810932823926814016691801094577875629997694946617776895903093825126415244162166970075518564491510786923868145978588062337478962288633197992537572788867985618599923437618458301630772030570337067260347507055039617395307587056518380655423878352197795558252208588213384259288474065618650039489317319743035280187766189622625449266094357888084130604382994726174967487040064191972003309665360268533698386480813752081506623872229692225865819782700217562089467950980966447543717704239733227063819097590980598718646818736289157142124041394663358636072631815013144044693837459491024898475469166977628067783899196924944257257462148906968988801004918649637787739839993303684622834799887633278023778173066145789148403728665839249667247840618826168220060264144367354897166030866748410142506405583920417063007626158747603559933966333371452860893373205228301784964181652309366893942994619730264624595258997098018204629024876074844157601595929599792943481449344303356601774453499786977554253448417059009001918951631409953676256674970326811551197585560697934598863541865788178114405508299552762521567620983582305613149460796173190338699511870564073276535391675121513960903923295093457623462751155217980035014038786131888633924362569649611885670683055984025756701008004268026449527525374760916725971788385364942972910681553452722730303140706607563604961702543151078982978639802798932540699617844954582622084613276291774307888779468398519599832117029408672440095636135254818624317457427097116326014344429221702260943569743723106512029497612978898862943074309262156949882278874317356704820591746695370757632923070471507269634119578127953254606234256637910249486430210985998854876761575994862517802144530877633960017588999318591609040018888208782645223914893100517480350951104214363401841984405576392065092658234462312706270633353915555865618432666888138061441666522486556227663286315902519913428076696385057881225673920657399148805224183291900273833724966290717122848650340009031475333250587865935887251512634601709934636247304101184960526981864770602401169639089795312031486868769025805460033376105089446900476972627037186740122061076506795856300507988146372247616288222480804279533734148703404237245881480281192452851523655647000199752371328027829464767912478256272263761520483826930497279997835600316062014694757844470113375563836042134611434202861328143953085734573842497483384472512441847651454684044482914711516013041919589466467658375800426893503354052063603868292543508743758916507660560891466204142485904439111598582487626869864839516722789247384071063862785500188817699797163599168260482514382316966837309277294663222511902382378613909870809150954632962703104984621931810234994753969279088212198223159647594268369978056641987864045197775861779363363730600933835468466851231484505428747335266705261606377046371640763433581312994596174556699564508246884461472135545446990738173726071513541163397182348150722707171429308506085860339287705953221928044225427079853562693479718534688449552778850437196996922675289508455939953847784380328007961670482098549017908109454281500591867109689376124810079021636404572607517449683445842712700303843066189833030331108577912644502285348727844875819943687534482967170370740777493379171113724113695969667206600111168590443996816865052840106465136802251550728140136534790088848698091784617428479206490509519074060069817000426922920124471668267526546100886689448793549672667540730986202492095777997993556724937542000642748055640074878364724252265267556322850206358298605118849401965969201864459391433873611133562509792718762669735609148332809561230502554164856233641326492204553300756876472961599730481955743965343372026530067022447792818703109852763321656001452775988867729884462751842687589416063162049321727565906968884677042098913833624797882808026026724724056872856183774817705830630342959838162649563732667553198980368763114834515002511940588552065579040568379499242063185683736332279375720891652551425986581348454378419949592189244838934753508888900347637997249870451884188699243182930093987956528731718194342611213171841575879991263127490186092509785279725661838985631067773401524169862869360145416754972175728238863026483727935537270961297138149482599331152949139068323758346440076891574847387943164598578185150772657933716608269592909171507711655263718187330056405098120410253060728672449626341061271053209559997039704351146658273466333247664157567884956033325653270972331667651225871879845957499665824235077738217049755427719293697375654886739706046595554726282509400226807139032921862785119897539636833455007271410371319247868137297681424449741439342159897555797916970568553470629380868240315969762413867786500428160121290038306553448457792068180054967617408768796319494192647349205499206072677719903363656321665924945417243371963886382246575361297757183546176887471352628297761458623476927829869891706596174221488941886654073618534145057239247756895095203694120455858756478619782292189866551746676662082586384856979357191874313197575046723252127011199615799615151026578665354721400867908699708311563546622475798177087260149581306429344494438747664050177641236564458289979608057025231245747691986236513207022222746206093339992586491120660244989563019867226606464599157547256281159345257427196650749899049795947800377742353075349161905853878834517580273909258308494214934293048010273517957776861983640065893587757788897881221525499431020771373016680464498377941063419464354844049211937452610055443029327564158901511610690345969149836348957824041092922443488097353600883005979416830469230056342295992986423506755071315231225290694989986702205570394095326123723562248156204139443348146722952833455901392463076893591803998133328299908596974342736713189233902121197258497902149634181313118316084715339215006284055163937144955691457177608357033290467932160224701295089648987433606362209204518633882564119768876278909458238364009694221766204156398820027071075063713053895930833452741480905609768402576110101574755074025845720354933725001990119453060296597560969725731263195111219916699150248753712712140713979977647160232814806210529516459909370350399064970670249597236653493965250555999666758795292816154310755198128501554317565078635533930312985801618715440399680655369170846108202038013018957610372759861834690071712519104592551839999809247881922535993224623005491181588297826827849871955551283764658943568321583749279235852941343693150581063570879624380238230877136185849857703247434056767192242905742272297868976145868785522312193059467495602249524972131344003602168179623474658432800867885305897214817434674679630474672258963309267863464831810972814568071687187697671859347627041192394905725785049827650486353369535780037288072315480330495163426511938780388943207757919522083276881218707065423339823800445429970140527482763342777729571347081535742074779113894953266345148007742807625216594587354720867697573016968103072956661402511573071159289958784569838748164288451205670223567741790731669454143790022351512478985090675748665496966660060325826108483719927743711644467393715504509934778371169258879356956673555071721233866562608121974838553334069274957321475238854227507380289179262869319026966981220981080798441954616641092356713134794692516405907119427234080505161223613161356404647803507902261706232528293208681118763279720299176794504501263123058130323802332544000376608985832907127331594220075689714279105357788648946269857115490140890576675994830789361881427823383008915079195083806726599683477924677157267745918586087963865288050046583888100553481446783935663355382727510417799538368506844449777921695074078656376844867195892864041212293770813032675637020679243140536907681274808242092891798819018573896133487825106719045751751680031072840230926435084110874000594505691102662930457487033285043607971914452961220403620212858032160006325725221075287742046857324861712958181009985474470715939874835949562417126792752729333708223933633529047093223338044372882639492765205008958149372417252937774442161385963082219730350359298970061169785685929383302206722824188917927282486547802457612500310808941882176849255470739026429439844540841955061759794392572650387665596115419952290107716007772030346230425586913563381379339930276917918501449611312071821102983984021424472266458139922957836576995618796597806497864563005555793714682448226507260774664985837662225602222001136315551754648828222353399903125280737934498706488872003785491085680296756363828143600002841585270198928390986110590814412807937230010405660232097179919760472025711149774902429680629629208768297778087544658077881711464598415387313466269407601804066397954750743222904938249432832403705006182949685323808513201861077035829552673886363992420845616785586434488037983394365829203232757505104275241926808103314782024576084232596427607384097700173773415795459385980610109274059600145336463253846621254540601149770828759365981778607094613392504666405299242221477486608686809836496863581531169361039235273419446325218913810212198231125409476530132454112550983760672805891432545526591441197248203074992967704830679967866062233312181685667616578875599573124196520237744442046802307070321969027925532241965210621730951288776234246327074680121844357907998878215447724578372333942052981255983612339517557606758753221071337843571983027524305504595927062918600679870219682680995847492683826498317052168241706929633661199849014075359369076684309639987265385107461137206918545011209844517622444638872993141917837098695058592343282702186494387970928779387920276830240767590368322811761262495005849024940690255977233687587533723964104380105067396919137140044072217720295089141105013627180393508162853955227728603700526342363701925325103086299732032159418161932472543073572195959074341496252883535146786957810516786358597690793590974643062193634807572047979820598540984619211451457796511284700038936536393811893181198445633691582184394177317474659308663306019009621551084013292122081130928405717880083025907973816768941267967216975648153124608192764449747998037278730145094540477456912191909264912056555581703202637127981972706462749102094820790632033422417244831265223097195062740054774813310976783017849631537219996336195576948723575412752204946949836754558950869210638666793361488182695967403311584079254410028160062389117634737101187008220271208706398781802251656928915598084290847860257882586716958164164200683497612998971095231737546288806736912775937989088173345713621737678737037671539472770564068903344748835647859605174480501405660595557241161562104427359950825863266839454882297307799737268619529712571140349755465712832675508050765968874390433550666085377638809407461035202887485159148328311244298010196545076904865404794039072550581262815937919771055914908273067056878144118248543382529931646422041341110187410550688842571296162076137989621066883762385643246941685127832739387253381547102664601828923124895074679111774611371264495145747272542621919338237450218313629423755430977171322002448258327060823860859275712639187537231972391737825676559189326625199345002762141390957991307986313647854729434012557024821525047825384674062946561951448130438022629410162105923922813235988973788594731342217997135042358748268324664635124310974984815568009181531271097799489931535929033427990053694121295727001016516812868160968612146204590410990302994002394439794206471105859015192153767918172048714619740311924681519044871092391648652051571145656966194294384236061889922770247760403600811828777856355295518765053248288577132406356983492751099158525911934658982872537299950316394757856980449115848369620764956825596204180622911607868163669507451767023879738587976065966445160045590609525257016347061464139578771435535636397609642992469363141293581659549310924257194195182345795884694212880004207873606463550744435488362676808246446085265807871326320341215894126635915395565987900672166555390778298365385731204944517990392616427315972893390504924988181417533096749042993953215581298362194063860079516581962417413508658619958569512439030795328613452969123184928352304253323033501112689278406546020703812391321167270943032414254166719117981062415201883023039578634035555635592615780167858089894934747714193065843649911275922668824930315605122163192589199847733545008236260388706456745440211884623848717252573429659637116897811484808739423399386215587740179314144840444763783699660254736415433432689269295497630074514297562914754520105305288098360557270894946418628830452003664202427273880467708565215855539748274737743736083409814163754845204213451338990334555296029040214527512761910295773308036644506677057071386231000585775990836933418641101107648029299358845291775800395762841835812979493555808463670275581057779342039911454858087830032002722001335285940296031790249994058613731808807585711467598408564498521530041231025943550378213296395779994967152747551940877091438346123141408502867673825017421819268867385094211888163646524915722129240840761247498065356287098828977131618980941518915390219151174792477363059025968105491541423417663822641927815665104270247834366836120069692429647350040590819203701177358890722357454243361998972068335415222183459513763161690250996055045025097819282963480071277817805889418644275932320505722394251601277955082998560270100082558427897343695835508091178161036831286264753893399227727428893540758672215405769140935777040280613842765587359488735429020471782338198123208267047824443497597793930864302404247065905551540937001436000680412287475199440072996695531687462673527781825640297316158610122936231477240876697302000370931864977972221992900135751100339754747241541111591837797548761658213694975593697489235599202911447778333466025609665082079234671691260485665199211479279091481356009002640840054881319737249467777876147153361145491331254478710372903697666787585412779779440996998532084839859083758511777300239329204676794921041171739187088891787887939036532324324652579671328656583785246378105693353543105953525811927224583638501673941664560767892831776831411432491121703292880170634716849808361256093353519329233810522070310257061080482608962885194886465360997138910479045533504200079860361152841769005619002809939859556258304236499438193866943480688779603915756820467192582105393580190319447390847687115324661847058282949341306196803089396987075533121530287037754131713080207460273682934342664983407002621972934115626100512671802695447992133228375353374698624849458918186158991703040297604337228331286805197628148679599427172192848204500972917693814352656496909798951014443560030503112696162854493384466583475600681861491938913471899018414358514017744352047684848205533854960273800277655681335633466527211216029539100071712867465889693488285670259331140016824625950386941207315499640412728220209994026340183710734239689807334430956316993050159594338023579555046745342779648277915345956711616102244153515147544108618807439901011726465060771332915244780954232042360155412124762755390221033603646834049459753541754785816263568507755706448257332273272434864280233605722909749467058215522898462818353735736311918204548845475184332899285780373796155315022130236106376482010788213840775113361038879676528337850592515994963813608848735161684627613913256487151557476406472487129118769899192394726020393479712642569891126469141609551751686615227977405919868412310141471497680566105382920137290021549344633047755628886570366272849985139508133344824800724504793090945798859995877205382342693512421987020352719439582935330916516531605055076311486043400007215654119985482851937375097970926130751974865702099574062977773750234720720048734602251549611777963874027900899211592567523919666531141055622694670632040885488547681618154991139672931505262618740782194641191778985079195343628905953324351236078141739040493318441785838202868184299696795501280110745273189595879340156749243597411409713716679204765062150279217403456107601072886127813868638334208748915694391091628347335009887267586481399302443527306959179443543856648527414075481664460029014770806531609246032763832773499621240944196583084058366647422789835616363834644740669463469205503224145955689308858913916899432238841870531743339315479708001295413284598668267993798217968355128004715606236380220441712383849268450242791640663314408944839134545131308988239932309304647061788881950900355420558484518780842603960092181053286525229455870057872835048980898754279959258542976572360996071772473642050149426990761028555399009404137869669463607188744217902429646207239152942810353191882062152944522166352207546465255363230223349603552773726811306183192810646011699515656149268313442291027808159241286383294599101255968824642723566761218302155799745627581469905314393516965947781395777809558019044497641778773365221612981401535515326276431984036117761180625588199543223796107051956368925395836617684347806359185228353099194038161144433638116198922734041284459891426091456198104762136197796513185001701054579692320326168500634474375918442592424599208820642795460341641986393061681276505765469142813115837099383408248050232012241463658084271177376841814789783637908617802576633362872387245286563057871859831321837014300483746972893818690709080675168261994219120687795504916096604471664145064899866068323336754411889735287009199204117974664038483720064622338083736741056196344529915382089865801023072669079246628210158344635388666506743185349862546574806286051662408517000540435327393323742103564710881422333920970403107615890912595872412501890710721702745540928739577723392641374273872675170261601004269185014122838013607726350258180750051354258247185380647460594715722624730669900801860501732884152251142360699823419384438690517578655409842932408286282691234356900591019089751398966485325150727434100099956330417679873543247970466158329068639406022483077491738500833965657284733361856512209951406415607993789979272941263775871068433541378263386016937269053218050011921065861076588008859255876518346553216352986797188463493421241609683183174814763202850483155367443995954012069165984212046616142843779219204818809318239024658806512907351978462321405912818782452989702701925045008540344564728806865135904912923996718093427904336925669833276208062081042104341222031743614974170494669751180287666805580389265690970470854971379063816799633719613579322581272742384949027925421002751798765430876029848676749439730232916504053316207883272476502472891496416172952160323603941934101687043514399426911773430835629816063543545407852156238196591784067071624585748033910209718432231746987996474245037313010916637593226121305769872817396116076004982022859359594246483547875658558233945642316753551973483262923562449517472868852474995347478952913480891958569810858177291487205349988022632851824089200854042758202949465568158513011425236959884637211956225629748447754320466654557927439369567322013026982370583847670811099114616256647592061994706862065764578910448316486737134244364978780845646607668905023355268963506607590718175516579349285040813606859396164508940762218191732662362791581799569552269632024154087205156922976475238249647569608655210508858789301553334133959195164709368602582820911586550078331904638300640408700198632446123340570251055698731721087555823453232309637441378867982916056716288921520652196109665580826143241890447649075934912674222972225488479554762011710811588349919107440061882888668914748786594580410233212182687450422668306650495346280341609684501499295451038448760605917369115350015131593003748425974756785287586496922399357044685773858630983798210435264864727829357439742655851623279019818875031221125561208768741094040330362078563161435786201905123567479295823301440988322560265149552495730447497124438260746085766988200767936301485320855770597609426441815084500155639345528845548171662083644354587616264286437057258151747927144088396776944803210982390930948755413066903265273561689113624746332026374596635414995860223944818197827709354271474606041252385417248215281296845456622295372855956428977924188507939199748212798349547581747946269398046084151855179744883727146490187077645333740108984836742453259945338369095349162688721249553360021089400422370549465107372570076742142440529310252868890666216711420367273751950463707009707172448354900325171790440252462800119152374546008458816493661336295497096351785378102413534066873628179139543573624788140394413367424176872868636492473967190110694075584330616027785641829279204042368950501863534088206161457274963700349957258072253820828742385184438179292669276304030799307205067925698436417650659641904412976411408584540024404602072043441710954049935126605376899835084881508127346245398192774509005287644445320158486198930962484383205940939829544251335511580709568902218699991223679476037808484835118249612859054516260886165849713880603925670213556510804021160151873745162792462314177144777681023348797275485833250140802375477408449113210551134703005383829085219143020746879778345964848280785752903177544226796280403596302170937110679167189846286158186841456703269371640924177732867630518401481011439967732491386897314715785205090668931632328352817977964388396743312008610522603427375831229651722864271179009769383482720276983629573805614292051196314264297138745421334324975372578220966140383411430175954531464878212288033597725104062897935350874624173228138051143893584808474032910620014513849849213283979904982150901362053904466857525337423449054869132129521921902458722164403604787202900452667242811436853762203583139375375484593890129088025577713066875172214227263144603207219534203573342452047586723681408976645516474941463268593556016324844153931668571655456315934544688670241964670340266378342151218132129847783114566214029307221689460478592595565103526783473186231955902770410932753294808522475332651436930665041319750590583933318468518893333719913106169243757978486996727178716244563486615024164839399406254043194198186865819427289118243865002040364006847080879434023314207760448907612769939500838810662472072816571341327688330355743865544645314815053846560260249395086875611191698390811324843893006435119128497672906573623505926519929871648857719886645334337706531600883992573384999182015049386518808720289204514359917690510854571822529697381967698659028116479586740745671283730733865363843450097199716597334886708473905724884530517077235417453007586492377991211137140811914452109607242939827914657576685230296776789396102904335018520978608256269969128175054226979000755211559733729112929290754286730895113217503831556689571783495829527586444353470583352519557811686015959147704219008551770282081151772660933145584517866766010427774342447264089077306155251540363383292435566056561157442693808788647603162189310776562939802210376262955406224150589133131214353341885801094041228672177148613135527588813327378588239249469659919339452327675004238273159197004984931709672213317912697528909530719843297477318745271344585740752109004768177604470163481311780917955520022661930283675358115145257414320819076347637759217998932092849134372725969861090588504805307137131053254190713136590860586143572249623330553578485132463801025890427205153106711660408926576827378539099815833411454460892397523846907570417865816788152416103751088935800811452115770236852663788727269322244604531484211932989819730619829798772005111840084814210684291739522462765201779734893182537053033327797166853418402717575139143614662633328563761393838000227993071028328282797992362985800599337601204746274071002443590587096346464852962646343578806679042987013745616577798209745312100706036274203771498713283753013106352688201167954099781455167173827986631992945676883034121227140875477802457602156922143521284475546576596588679875362781881903384627978229962518064880926716182784418550881507914896055796941140008274231842676228420625560738723417942959318330437038730788232338241534781363324950090123654864002647887822321818356469762845299050697611690626311384383605725980622657709967438150380997855089238481553459052310036470853388733549444058550819015756661088534537132538988755040235936384854986467119259288149259673585952284322825115066337991106134639843900889700927652687595019018843089257429286370059583145758156943135423130747488561992916553949443549259213296122637803498763526306122059008832484617956061906350765779520428848021273695267768840217675706436115572936856083842163189627732343523653565869989320891094472607270122886084169058326953124878807042073757138061221746554564312252447507018727371151839862918765471083172885521046719444883305018128040180810078889854023008435247006044547017503968797004038760833936023462151552313482386359807348516103018957776627755646015397383534289581563548946143981382285582598039668735206783032601177382937696015605023528316110465475345378133112781372969663088644674189593768371145356125309794878792737859712596743788904296642109213846975832461854952771679891065316757718941709378388187018573570261553624459494756169003602598593054723923088635491533436533535222905487311702460642433305506426715756134119514605913957681766467815821776927978336699491534471077425194791681022227273537681242891156661706994212126649490930749789568326037777443114814133739615668253892491766822935611403220492334389695723912248743150924609450111132661350423585607141561919969918870491884250740536338179784988249132032420560243929942845924958334978736309666574377677620935413933361834208934901300786916001778773609951911800613828055319110947063172388683456151357306942373913891439892655334798255302490016579344775869236279813308177257768329802534178202445307599874125806887799047746300988649056428724340444595310871219841299816401847776989635944554737013589224229914316067575624540403526814989272822552057803423339124429475781600121206539688682953002123335890621354299184026787902916071643128139427482275097920626744694580737507066068965404731591525006221641838806452673024228296890357764235974820907026199978554939802281608640313306280883165728455463427457845642335177027724314580883225614326383151213965318919880769362179548659115238297779939381200741586120163971187075158772411096752159550896082938923653654542628903354516975745202253290082886605459491034397342960144627154081337732412973392625065831135599309258653704821953239520628254894853749283437994478912250577445530152473851180484940214715192739036845683033875068083239855131375555657880554230245607281751055028021135984278645994663444676787427673346398148706195751516441090136994636585229163298524718199436696359054543453135511910117775596551032523937800430769755061739844498703177026468150432684009529506077442807980094856674077415815924902887736207681198400445347646284925735200160051629431949032622616100388385452496996374131631678040051850058236547119180146000440276504524120726967080563428181867539087961043366476545861506612231611463604139668201058117204548762360610381780136139468742799632121160107601985477275506500685974621018552832687145321081138923957833751479433701973993493075145074973790959964052620511782801787106341938807729078977144560310036453574523723708899313116709497078954438630990422182427656647876941349275511166337140087597983239832700314239155167861402927515183117701049365604427375742088708836247080346007582511561754716139741558134937017766505118523685204767723396152690102184148476283080077900665355884696985824773093220067579629362501283000390256308298230800986881673511316024059942921504941511339623565980068905152674181659221444196038291973993999801947404579139438425329052607625339349315287353247077970116221596448404719852208613152075866510454827672547735641667386856443005792012924768582796113581327448858521556073895258752266207708781891466537348498509529672640155422770080860428660254265274617923501243176272124811213621278799874601793168218498182327106531795140898666418559784473850981419050432178879271163912488747087127534651835128354460768491969568609637512456442195677325706459869753745329862101715989467899406855866493534486501624886421968918367438771458424069842952315527636279925950860595146609510709205696360924879886601146547569541602886078604978526310014761849108042731634132800181266655747545806878980977050861682389714164274749119512516309872268315728588207049720265919232321395441699977126583635616581761951678392800716158861682651335787417223532103137526279211944170599528518772584968062083335485589289534081544158962483562181239156199578764649151648794016231516802056446665741828813671325503360512645386728788958649615943206505154196025562754355595668886253778163619069204657661952745164609485969834528961148883560386374911723729576634231179574731519398678673286995090544093706106760058860663786602144005086760850660044611572139914274106288439753545902837360731948276167177017448539272079957479383493480298985948546848068984651927784021904303417128526577726510341698446737994336269085037284579383977887953831994626785499208025258365882602330601020250035428763286772476782297569705931024239691391157091498708700278824360657839902980260197253857307534369877755216068119703912355716162267597602629090575461167842359362363312872395162294959133060524096410762242619358787123379734848881062029697281859218921654589815743406312201280865924871654144228978587085161954325475862135237646881366567479505415674032827138543888733896038946955765849828640751225055047011787312775421755802947146146341383956593208175420897281259754476388224682748636055229991691507779417562518832542240066510787689747754031536780066553480786960535347684666989146314271420932354220082931078050640884160968218462565280440266236221279704663035393543208891798789738831366023713177950163063616591542576384922241063208323981774296233821666667765772379769171041402377566405564913936266657373562581853573047469740999377042621104653230421787812979061444921506312495472641968518211941321992926526339539608150569451848492417121867616259015841028022965952128560537326085893373660880394235034745444006868361716173104287910619486850341782993491888385947974597673921383877122275415041522556734418609958075657625777926788719986071209402674414955122039744511587432376188012061480911129082734954969074749869139248514931093176771542718452238069294245647012695110053491591117225795110888876916855808364458192965516269668053210837977284228044034768141172125162653281635788053146610698958769706575485878543852540384063363831584910251139197667172173960876011511572111093113362219065089277460060478234797260763948887918338132127708290090660290185403961017103069539250738733630169004686193692840282411814849940443726460680763155251502233156579001607702670070662658580134183971216029262708371169628401099763509734838212239389732717900439074231686523017531111170042737547096101050785903742280746938029875091029602567804000010408644966189253496844610553445863412130494787090434667249773823074759932507725600713485559031542050374789706879831719061007290139600052234328925599175604072788708099695333196446994386339367224561992470659451839160985925493885683792952537416083255485510945131737865772006921192989647866434949746297321903275581544888635710288219502882855366214433383096388894067779244938225314840830704517792780103412090255506438785431001058926640908796185749152624780658987926099821999640173249042414721612595173168748696823702388038085128489796735151028930947063834107544997696863575693041648972307189688537387612503930273736327014925452472484061592425646573252289241099473079404821175061112818409103765126521048089491095973739148564132644326643689243181729184111299309972914351345692781157414950338816883827027751132624566014910341856751141379738149133314128034859146735582473015079432786153783234043654053020084815320147961634414446020805885047006616790518666459787060382772745673778827254030446633805839147062421766177052966638562038695737722716264871954770400223416748447117372380412732146020645112231131618801497932681340227288714119606658341443562595747160727700148038552511318668801639798957553749509367346721409745614339624959279316262439969696512408017137297695478613574819638195477602123011452471771322578734452532747517340776034482375928873377484430408098160753996079484135034439755431723335680416673996349060514760517974218488102358212078223269116509412683700888584856562315752634638245795308647550631323199909137738836271305681149586417515857256295401818795263971200436380191385616470553512037036571706715464963800214360051073018535189589276761331260619158345020128412631937536238071568934793159833888754996123747880619436749904279364860118447678664514805109044558148287996068410039223375921277147101376294603524929460428716947955051302418599909148492332831176656566895903844900683003280217533759690218161618236305163579488392373618156940560811271949663901025298464523391325587172901378105180759263969334770936315060220140620746836673047337774930824040295091269348364762549038235393725920518504678086564933167374624237549268088812451247758717334283771689560782859279910984303434681726876133964005855269528657315117076726120740323287094876267851235927219596234136983572712487599916270330034852347268320782995681597860348392195422110511999621427392569744875022048962954410166788070102456126343958743250061638890996012013368119388907609372924336666814469477195724170424229524514074000740315192069589589018655419704576788363666004648680910840661563163461473679192421291772717117545762814791199732118848939777301859620853521782174592472112667146193058826288445382493749467167907705796371169752523155334971145144292261010277400806549089627036930291864742630580070633331293124847690410382600535607091762740938471301770565643133166691744161540336653088297417158558634180440519982449084678305978690337380227462568496499446085902179100072378710810791419975167607609550350317420058997602920890239521327839924235257444888370713978358212936928132543683360722320164599888248439389302394659554104335835667350369170557860385279554253884128215571839330428397715348866050733629470169907805519468967163804126363002959519650159913181761362717076425696308176197224964730804330508721480824091873647174444884365200864068468486638279829975757117223912186133482104810364697930094963072991621572308169836728726255258344859917466280541254976869838578672070682860254276108840416316063804011697764236175984084712974915342952588949426644759090060035277854790240182356671684257748106583160115762121611926159805354123539581512394537233713320590345689837370703744714040996992414056960154575825080757177843648697415692413074439520213111500328285750986528165506374513015402102284137287004466567814653006813360422612102035854955922584190208444823038310511854892075157787597379298202273198941231508698393274121568509201605916766472526948245533808107036138161570690214229850639582551205783308788401722813321072162325157156489189717578158039454738702535072457983775085191826209996748777425493946572182810829834107593619825807515765253040413524950203745744162835588692842995927079923397786561433489936999557894084332706364909483561514177978556531064467866458711139519322603443056648774275134519304484631694157024944371269792579415324954205945989170500984567611110282678643620862344545174368741369472935514798719661952994731847655010813064706717475079775000899677699558412166298843650407323674365243009992316274521439936150466008073516721301097670007615314555877376967450031758387720733095564542254972915599785868996201457052017382182187712625569001753151552988437632546317670594711831292643829103616079498945252172673257940438580987295395883488551312917965615783300077344816349798998105964494176454286938146984728818219920177463541744233116296043971701300749361204708407431215837427739301600026215365368118000247606822601615910025680445399269633943418918203615578677308071632032232477849549957801590432713967276497243221323154306463008895387413542854773594140337019623487718945954510415756745592774442184824815645747908555840392234623519770766816475413087840366701037414639485355264931096312648228434239188086412921928725022792225884399174138553007386776422307044785299237690838138417982713363396278609259522591898152688109243283474990055441292597780860953820529593891225741377202680540949488149276418194154935975201378139638133842779527446573755136474730371779733676993127247380778924942339755754510536949487120910793257243714858604927930145988594234711856851160029112749718254492408206331657332879999733156149988522148146059193372896204863808522939076879398370510977980374921832684974623953436418829565284920364860681035240868686906015222115842583707465575345107020222311257839914085283844462889542312696429286715473286984155303437424850048243815581596846276529185503565548289838172430500980665788694663491686043936600036012324813215538173470901812895588791039883386980745725683154151015704359344651479634154027012892362657610282414213585526779554841207623541476399015076498495081091142289021578795351609416819330960965292321507538942411383063512671697829083086473146218545045878534249086543859884064635768946775644791833438596817271380088393302441736836952222976714092708202125355791615923740395919349895499584134883760833491667954994248716273302861194138621795342060900833980100864872150327986721514611200013901227083957163312187333783403973179384883728752644171190234195162820562657859738191211075249766863786451176375939253360949288311791564502995368820876722644870282587693904926041594072197622577504937371388393846372198053887472960008977196741986447022268025543057875361075980719727631672665481665913397152054323686152201013608234267494428955988302435112613814309149086374758740490386323856437949028555766964761809894609680727226676393537938697461368798916568392975715198658692265045910709773825452721756776627756500348788740131149288802447503235162317695208833352947223417815921035323075755325804543607369326916295454538842957544864791782317750293377675433027845270060065223355197732024778929462955061593340863189296225263591341886393419140043520375141551618430864230693224052652110624299954307481023030925678255042059075029633651594667470557350411593380946992168370609645888640690529810705911814648043150631987233158220253378919191697160060095945838868114163114458061052379225930191284631354999629622152478026556828745253843557834309142708306387924781592749645766777285718029010236183281028609632937967026027593829315207572937535353381201083755655322906273965069398103776133320051609057829778185631076342456793625501919262587980814565859535078773967791075577207947286874964124268056326263821160799135431981903102007527983841762880133463186960877001120785689479569805536442672196270752780606210911155059363066116509078096678879875846181820607189348458365297869366046543490925986468975970502231710770153469421931021486421189999188452275049098197445290316861852303321716887879188757518634116735966427125401322412023321931650459142376804586675336480694413585957581836061102366806600697307389668928182209634508271564911942323657984944393402567702053280553389235510172623065546929929346297505005782482802434019427355065583398712757567485650409444710298735575430061056256066915307713989393446481477237961585810264507251448745250053060993195744045874060436464185966725892385841641358541643341963842877978952510448402770262925763578932659563075245408885896810503823074879657680656880429721023917518182348778019476252138178212962893546216543782406292586900655116505351373377480355243168413958740635017371153264076408176966296936007142240947873210376629131201627881847440237837332371138385900895761561944288285982324933755226005574469233361332955423642600169253092525862604044595074770450868325146540568045375844464921849042649107292223691675231881624855982010431710241587959527463114787138893646031128204437419704600865193039848593596951230650679160123611145003542534791711585847273459202181942182188187815315718798211026969831066967874662037492848490522620947687759550782188709402678271353254965750908659234837587121459550378339547179504629669421854261797593768696607487368058459955398301370321532170106298770123852870126330061461552836555207715508533441906805536704497686303738686315235743600674536352733756571781344840404191663875735146759217298465964603405158262164709448908100401172513329824935643955798488596252004528354990085227703447851513146793189608548194019687179340865306230919049262506585598396170669032066292080821450581255499083840083261386621574303380118159555720943450037875149597034743874271309965159992080143281572674954533358416502858260187076984751623063808924182492648952118714420981461090088974977486560928050371470815514742165227366367436374133201364167155156840335475671628049825419320316587898227654278064516498701436380804928450621957337196660476339736050301067779698512505880041294997366819337791689082641849188817756715083262772321625017585993102738227027794814464841533827280826138217797829486945271363295849711945865332673086545724149119260782698189529201521026453919481392990553248675858880455222263024341021687717825519970726063278135906642104459512540714557432740423344212746655655828575101766892767469446805908262815411602904929143505299967759722236112867640640057845807346367928403917360344632971356390897980230218109351302285094373829118464167568922622910959852527224636510691867855665342257781522043389735171128930330635796349791320498878328759916012906564240043570410996731428988491250214917520465294768105809133076352216434220151357474046459106249328981954715450803441228695111348930731834904521888166824243890019691075551508083267106513068907814281030757901935762904598805065629075269006933195281467341140941298351081618276171155050564186023916286671762072831487581053875368529140152071293508766608573776559834765960126433430807988186209491793958544113357825008149419816903643653776426890485478396009175757666130962057360574014168706943560267879854387897564780255205107811725298087704184044684636308216338653605881422773207223812130969561015584698626271345036066152846894744953019614416921082171842631757620142359018432840496306162912414698244601769267441010661899820473468618676534067759158750548139586658307667941526421200462505062863077846292643412306391986387408908031738197065417750860020439086947195871333671500132952822729545675962506200620470646779271524359930163632517634487700454712503676581685086530323906815743312574529916252741287268447561381992366135671853426522045012252674735593281350379774827334299903168741378334551622588917447853616758799389543627964942730888026910022150108859156398591372759458820077155073167799190388755001169625320554325344402022049575477480293294654686973084057441676011760530629241728057248953720052976845501408964616868338367659104937315913115801726886658418095743668383104506642192180737779274519990875399679191161055056378497118308857936227417436600995692769807515651799466245615448927355839764196606742084264614320174838679735270541389806691322043924129630240746742245784805637724754490211564177112706977458954255923231585957590522120056453306324157566391488631056953151563311254467750503045138161107908373258325257835909265680308599233093339547329314479399673969430515577539917341424449309792705202940550354095022573166962638521953767327855546284883841183624731337937074100376058853657441612258325755524765271726562009973484352212934477701621458046254538097996626153886648675745310840283034705399625427147450985275581559508464988438862809629459789286214868037587085295464798952381713843307222073515321374014640163161795158461368813554090721701220984164936441082256090384689640611495068953383778277434019514253500335717234406350629705754815881514637348179213329565130454483057559194471693168505260510154585373452346984253326431869732984491076942721996225252046906315382499213597866213113960706702616541035761073018944623584589808355815998155996923136382480344599321682336470445171100687542710667890571932436371219633456221121675715484751321218030135828448650758466596965452193255441326739897520293432775187313192666871756315100451889702023917825267646086285910856788397919718043138332015969475907799744432524585990195280438869501095561484601093632307915574075225229757177072239064222755081191216819683354694441454537952507317089354300832888060557349255159049770336978627099111714401019064102305572228827646704216364886757659789055538025883170945682152011188956390438583608531593837172715972306282060811821925500916633789450268147477022398012472306697859231030921325851769168828972185400557446970810310433577006589518260746536820663546403294469796136446621783098404677480450702931462610678882105088628090643015076139231910765399976018386769671272578588604368831196529292319359439765745909413333968468728179253135687796672491905448833448935585538572425149125204501495140947163506532430435966336978310035314769618126790485829790600063703265092809172285627732011142204594774000657513073691655100686652164614773941092444252891960189974867600100489716599790243691267402964463330156368293666864249837483617189250520216268441789972502860093785744802831095019711736621309513800261539085751919178347262100678959846263753544988167894083930228476427652797624768944661129692542152175508636315725621811026911722837803193551209274498427799143579878449335268222752435413760719732605502476867804918060336713312656132490606414913961635447470461165346303608220260064119474758797784641078493417033778395929429608190392828142030276458099978466289159264259962871223386357877769541325382683719731290485196140004277555472763315802747409040057407262610742875933489966453594583818999121276331656293935308891458975287211155829105180173707767270151602885854485642044175424094900550161624446748389628913915697584805619857011736999099901608131120832262933239135531930066900021701285714511217173806683171013259034369563917085472697321689497166225011021083566158451093510836769218211885385135964531209433440459774169081544749316645551180093989810415191642128227251074287493027653929718871776748990233566924788496602484126839270359039474362469205940394186287152035864688518421035968748178245702975184804661856535237530130117609556261773375865902759557069990072330614325459433460939055241551105986047384218004280477477382355544683467690413689605306985038667935657872141066818514528217431273747026243133475081720806374323243177724724059189459532751928503087770319096384686580140019076419969180182154138717238634757453167866762747053206748883565049250600517790436149044094898971032888947665161970191415078331149664598924456728349499010329195893152383954780623777394386395353692756681495813312692143973059445113054606009299707854167566920662068587048390180061477272942588568835049480219455100874398871933481651320325785027178451380556813379611595495104613528448009466572757023956103422069897499327571354899765403907878330676446050368145746812695506986971969254906562358582380606279673619320078821094126565539457098409504616274069300118258191828738269108326370542609081478151303726753177124876035572847696521218545213826283436765881311862803055737883563230465801651964317756973875494264669678957648918754057826595838429745184689314972015038664948938192901630302025665289934138802830017740290928121793915110154191325925951414841805529177026717937653376769229076587947145149718924202893954264946714487011142448492667732103520256652607116139230886948021070753000218600621618281776080906608541511561153076278436174148247995921118635850026061519046298629331446490868337071176311711080143215770808180949441471384139778272002627067867895333737335916549241317284487032130421394245545276210135523071838507193894874979189724890392418301485181618840310383914905874552464055706168668888794922423400487754060056711972216401481027845165259760535455761103282683359916449781716230486778886305146589383606412917227788139556966375688343914857786148741207395830543814871615903880779929492682778764071097158371730741395107989406444629064480804580063436519311952530044153710341734357339625350151598956895790669105322890134957041941988654964557725601852141204705674568344375350549690469688343975505153527419967521772456221132692708909364323264258671467296666310441537040286918826547935081428304152529202259034397351961013285435485727082859813393572914500329832060319311408822518695599647956808014202980902378475945990175035603183001483928832459596785216752358920249193101520467454608001363792745952924813785844198121053737550101440791292887028316744103220267282745618784060352104921011132437179696748899220636306894846934744201529206958024863463759780620731574088544021335861134525451168517220210846598242409282384328584252348676609397635626278351517558249031895741022064876837981554196065847203353942471476867487738404400746319355258821624999861124614802284970875737073486568217110700650964071900196654713935621308524685479814664219000001095830222816148486366953788619247388934099093127883831443289021662901509231568489619194266341004752452747248157055965715348333902874944209667170354537311183704694748240645841350353085405544915018460274591229921252538577918629074045798105115006891919180676067241646995939203078302312285117434466878040983482350707943336574549746108397764342822242881583360216383803556745100651601176359382024422256642951459463445191963245004998043852009837815487979431868665262447316789775362443876366943611403273020281068727343912577943927497546595240050186928920039660842571691488767385791943093739020519457387496834769969686659155130573547342324559197477840318475487860469061131250342481074259816584521455825555228810764127354889464168237527662751040015656619101121969903399166999425730815713562505641759492717268274068671411490655046229082498666639016488613492554039073190194357999674369315343237346741582873305104274789995820525902273268705957234890073933341764618265701038117337276008865052557603130608682159021044235216623225501003833800342113233784640122881065544152478592884787571751552668923448934954988695042005705566666385303115324270204136482791727856500986738186497476136841644213005096068731620201797418794167054366039374027293934918831589143790895589156584153306008826478149968548479413564659832818454303911093916163544492332102827670495195109614985538694844030536324184133762111045123998599891027318701316509432508607806867253958458689662397837037484221576101994586356822069204843620700299982722718466992585527553551887963143958595777761504433607565536541103312472303700279798661529703181482776259570308147780003274882601354571970911248026748021477488474325159402878121960748771523812573093878107621075283781973379507544647949109655337503416670321204053102874583032728903351454508119674531836360284323304700919196149873843288382450642231028254163135816601440172159733253487773513100658786177184961873865776373148561948047986093659615104039908871845577570951361618584058549764546086890957345928885865836003388088184285550847448996699535952936105690735457627302031125276517538277791980320220030856824473669653914030430194018090096172397113970628909391133629840386423476133772160063562090546368643379718979319655500526791534459391868497779876557833528294397918050950607474997235804361230474562071901739362068739237986958266585857617380619422184079542735623359233686212506670556940007634343655606940968839344853538859831556535020706822791386971989446060307187498089813325951815813770172122364114573755079974080673895094026900210849181505068953988537296301207531169345356752506987724734426370995622595681703529563506029623349765887783414140998245225527062745971478708624209086237043815525969243944548183474732629320075116659483135548015425542065697829513586969526947349098576235793242655081894586854026366315974148764330190343974813266743604924992692009768021745558013881666784539975028522524963146910491374392934933961306432047128596726085967492182379956658267032772287531064611911733506323441173902116472272180069615787524737216784400892408816269700868851774781895486338445451079315151613167777918017043358053189376683026804295732112532474157302133916421499398567920260942447428603125297530546588775015830001513861033364260654353288677489878863999648662217432994260730535198510623200354193946497674019963089965737568539950412773496981964306402556988407868951821906544520420653388131967581160073570230259464343693899891870593932870630492154914115257469752183404012531227568263034590892769340804465274209655708764428692019000473637040117180003241405217198507497802087482121658477859355879289437306816251475220760017368559090931011139181057851902576041396280119725791489358658034319750146296541021184924774222350940349305732382268768597992645883469538789089389419283763802353288878425158363669682303616297502183668523228540707751048232906422512832725162729229830891028367663034635529673668193498671354236915689730626175956545200608802768515362792858325570746675328758465144310294891710613765129205799573413440643548994116975966502913390122720914111222398549822031761152033919342203146530477524485170931990198512275597149781052549778440131017560117455590918803970744765780556877309938452853746913783839715906834306385838061482091305748758574161503902948342690843223364473438270680425967405289134744675429179327713654929742608502924000662986511587071848353032231560199784264763458443335648891106186646965655322559737378687412918499680035163526761386301740880247095451581722336813264838307624714203810832402741021417104176970484507469661982412752623945472963526980780982950785375462066922611435577059709468009375238553914310163899490563574448239850421126096691138084259067420365276023409839346459669752578714652405820608753004468391165671545757301765456262651085756840493271057108911983657095017055203815662935917065265946731888844456828527200670856058367127780614526966596778903335931026390777014737618306977803476346932831031279803794257318468015777171091217644571256666861729294014880142733972232066822527598790663003702750583402821623965980321684454691192773002105269506947499430376801860756540886742520462032626122268968842801258143234302095596049917095297013849502013283650739117732733676437692845657953408273831020957756083231213440516715190658217921562973427859898412496878813577038511540099561539164042185775581476535931554451587312915819879852496960420109251168553054084469981628300820507645435475196179442607215732085464804440482642183631322138067222533048417314153418783761878425720895934332944546485493734012254929726949703152064413914148995767110704731628369364105502834178476679834296514323068048954386975164962480852106145681525307337459319246658515468580497575313099592508259640980316647853619574007627614728387859005218042937714335380255015469101725710310283202193663106378274111518606780322528512044335144446203971705163125570708906361756280342066323925558139551606501404962239998791122698559558503985934571755945927119935024467513964441678612603059234385331675914304352746083629263740171689265020498811781405758752315457065281086062153459938859061830716725715560184665552010752594105226800226844905750197558593415585029049775727328375787419365536465007086654624112149945142837476606808868391352679095826750169682172960281580185776570878195021990560412903796000102681331779551862038112497570671534382874041292973531524567216469167234100219380838976595445275593255469878593366088786723034184977604028668976628297175859096694404593370444718003145079326844750213672708347102112020414929156393615990322486075048968764806616416315406544116846462989032991014579153273084274766750400092522869301375066251421349244467621629453804033352293591025440887102359289103662012864400468087140469550818479256265466641664393568631628107409818344968737257020808027751893666985810989033554343021467293836481200407900510435063270898237453219052913583502048693464951268834735880320477329555237461856164970359881677962141054198673458973734448313735432286793195819634294877687648372180860423503473699883843299326065575556958150375703919027149862242466228551477243400905332222034697042939634968427573331886948060151518211230514244871962118334755194752852160808504211105137402547749767454896522951976936868032575711998461753446775466752461728294984707618596268005498928505366677824253514286354236105593061285170832348581137774471914902242635837524803045925012550400394050270533583167517910706026262659871958471823194480637631618891103212144343449714713530443443962087295315283118997394741169161010812967102964536240052449514299056511188595467266613627021735481120096516098999669128407158845196883457228927578651465108177458331674108608638224598938741845702120328046333442201468679155024658994197120497452241369632369403543504736814836891135575661339869487441021332411308482676093635644377888197630914167736928137699244445421104697989247571036088594025933699389748328911366521562133775874115639752762218597219784385718452330392763845261120268133609579748404382810091556801629629365189996730444401768483866987305316642706994250044790909628744902640852405273413649965430013129026891800282577877556645894101731410090806456424938230284908557057346505419992199777285765985880668686706847595537342177429219506820638664679867356124542054924557648947241917965636451492378846153687260276742914105302860526214513387540288655580313111376980646878195914249272502880677816219494379300944603060910184125792158572553263111055956011345091456949184599018843044031712859083859541393509083532463785489335701400320867993635044110213452799332734046256791835808052987224437152946227982833058974704730640415091614297374262066123683462883554238880338094184184557676347733278115168932072446342793954734870977304844464614334185382586227595421556424249491121027626687627410556095494580898904495380126273156487489923797513052359555147883973045864496344347464770567885352834126247498783020145647796588555937947456924673370462166091065486479079757755347109525885771763769438554471427602307347043970552437878407039015812906198537920902981014771436589646314765463359572942729610406780760344115029697136079818720358436260164246680932330341707281459069497900011378422973999010880388202826273926170491973483867873044270808560846340614909589589668489160803173494790553509711560971075633910491481979904119090793836719607805853793399717805902670202393231762526172692069103939830347904945325412630401860407497177037553518714522797381873284446328982853188598809038873886513050288307979087038650808619106730553513630746124524384424442517098857511003426115577170966913236946346978417324339045706525955847737959236515324870825135138270296859884740715433812067233717234572222622849070230762253057236816907651824388512601177928747591263727418980583529274554240793441028494032577639397233106262477420988880364527081818936429151472533305591436983165182167079127565077233940972087432901666305291478628599751581457644285189399183524857642574808056402689978492447402451419195827080076140259770318861027360519600244432159552610382235503076907199057738694886993471011630159405229179900205024710381660569952415252155572513049478746366201611180876618308544162350191100977487381482169921464946982354323331328360958176006265634398316043776747689581048844414792534554966057916015180551845720737580517155992051481209249507380855849280679889328594119752843033797275991434365736370040151996293194598861057313964709445803687328587604241649593210561746626169288955343066173962356249874997299419642291855724611138027872199990536057057370891778172693407058237732426714136170948939689109497282223340457953834356464118480506530619366271434089773416583880070277984259407443411346194694167437601424966567492356371730744193448308319127948992058447085704749344629320169270730557864627148901543533719423206026733233012722124825727713410230522032137005015986007244934696529323935270842872773140734451743406973167322827258484683236713573435569195412078554061557625645965433355137338994845954162072526477775554729842876905474709612508268498517395728645489183382095634028900910781595589912229339651546989446717718973134272499942296887365288109110258286708275190435146909004551807516988807286195327129668603459671275852933195017710898735907228546902961194042442800050549098919736749210888058246847531593653233751074522198027288634075301959695239007493231773957495734663917988195080634126301168050921148185865412230917766350606338564154292129783664790514379483433102540305265330091485635778377239658237263738249520399151520613012299183583292769389528184755441306813185906918793545998598083111936271621712794146630492852434597869146849513098974779024616604149894434636874305158346067986545197134035825266023771186359627543532012133112368088778390166990964382856824171872114297216055573390809727831909498250147171892945174245957750967331515787709809562843324481937164360971650351616694268083767884782784124499757942707042297783760350814776433225242410219239485057585454244262159105232908424588904291877885743816866691038460157696665110699034822115040791537217034451626282509578841747143528974386908191593040003064469980597298445034438188441767013551040408447388570971885037670314783173385490475037996462282267161808328367029511257507854243684945927257108841438911721960075254516885714414679645482780116652007991843188077039185133842507955939733117885882402167471952378120212730675270553542777433384781727212599381638175236388641859731938381552581405405374215392169538943098850746399154268857820159667092285008362754575763957090409795813527090184853259808501597378146115149284734155567822805971648762333667958088652715317113101596176056538389329621108661495227973912727358576615082538870374589080072706478961140138308638203511271281907636145274664670337727580946017944430037681444461305475077119450735670115345567273704121193718914040228137543409793447609111272872876058017673522459302868001156540509093444329051576804075439668280794839136019330790604242884428157687959832390329874778905954852465124396372136563097412857419799226913312089930219204305858631116722277643023532837993919815408437781448592639709957342110349103582175367794088088130275546355349175764818667033751803364909900444011516151038655392208516447505791734963043707509818988441582963564388321112276446963253363542574606646829231260000094564648484919014862208122362259679373868748215830715191053777448213908687240253979557888579050075772262131897532727787881681277268867995856250380541958823822043871988674803586595105968488535826704467775100293170115280963475515205815263379060512582320691857443575438504973764553975645926912567648612605963251833878004554409047247463102998251801819173411497041889206530333179777705257323314246423656513651247496344302526811935255082525187237919290674827755988509461338351129201184790368336013338324854363122770244918114178807040989465837088075943578378317221810311440421568380866283769390522007385015145164382561828167929589683309212678124468393604435251038361390748777035507116143185438326514982349709898617782331359994200378971239800485759387051465772902064290568221761944849736410081242938797883975393018928666057172331952423223521852691811905128702441165806778704199175423917482533424673390195297836545217499669714613350801878869629501565497743583199958124772093356379012526361398826952281243234645475492684019483108777335246313682776336268537354663270337127175839920826093362773229851971367667093197564060293709595473929680519163749398687193392906675699765073060277096434919192873083572253656228247138336877424835337066273432893408677765825784633667411779528978898554068373280924748684504221670942095699862763111054430886566346797608112484571553204634296925988388228027034284535368344672360144577085814756063642490692069939108321260106092202616462307391344443695923002927871814341191440743926861780384298367329384604491581079089097115140588690387705893774310611852399297148462266675791160123910296403486434789440689953156337395558851604186494930268472107470273998363760143715146330195478125136845854785380655127907236132710702589479381776561509477957732008078677693447849075102625079208413987810104309910451724909291059048081062673622761379310369613470328725403280050380845424827362168119418184975119622654641159939661720988620747486969732168921572836527075741017971313160834120339986888096766640210589836392785788361362652763412928810603122302481034958900461777918176335653562184499227607312431030728263793377767106013564369181093626620255502756027218978562932494504628683509285647280702048753885523755731920424603285027591189497042992168829279634334419718664677905628755621241575323449848990761451735137487954347424769503480284931563724015166890135522197597285525875956031537506491753188907620863205380989782541818673267924755713311012931383177247985849867345795262676136942846583877351213355324736209131380073266304244510990520849811231553246562360481621500124574371838435246798609397583316186064997848041493107000588429426741459957216276231413814315285340727374922746494422069255480408272431955060208973718733546404216392835907992512375338510037592670537082737632855385338877720730986833262677526616432789862103870021311999871813487494797964404608061215204394949691979310553965590008272284508197220719656656914942040466003557000967897503676213580986199202071726008420911578845958796539352375859826135090376345802920241625763395990249392404834703172684044380740685111244176431685620899107641304002016262168472565453074221960814696048227235397957981096412165761935803111009978659814574258341234330847006600185693916910769594943736119556749915702392537829382174360179648828352278035860226449388092110303138846167474127535898012676907732876554424909750163648644667177931835277291643375157692748216722611414691660493309981355321136257587273052108489959917223535205940962099079412852034809869977775329645593385509303912903313508004848339057162456179381901236306231627752900323489102919454703456504747043937015267712353577920295016921252178194271768248783925170404880337771195780095919676249541628548547044346413978369149242268310253349732401279632933777277408678522965174786744005142592949997922012947745191276337578980443124994957447033702013850487432283086905253159942400320025935223690984286047714983571281531769347398263328736723901024022463067626216197674801849911807694202379522099767059905564391201381888712823457354227600431514348454560732632637951953866259965152562440481370039693997123887782609746410687450638702411924233158402275544882846115015717804839551526515734183202493397107443580549669294954358286880476211977982709566943467998720450452639319424618114158578569481778912720986560896372523776197155838877012453237408462261818015663132466299510171749666657840300430792017631697945100471390064628999017962520367581071460370679858108042591589705118731482997868319451199352187162865756458346050599981066749320975672006250560094921632285904704595268902968007307427380098808812109946232773671500995697078217333681393507929595279323027107540546583632935212418981163351843835143175400673598162163999203648656256375679185973244080748745487041162421779575751470157259401109654472656051250470831580199622377290656928377680751670281555706767531035251391849583973454222977658914265961301074655380141195095870366034225503838542537710235398314563387302445289220969932109870478732734095465238356163026892599247831014808248493153609787445117224080070085224719714188124269644470764678893408325393663510085663745347074970821692110600251086177490222872545650228010398203635016319084835595258899028790441116395515720188894140732742890826330726532646702477785655039040932485456956209727514593099156215890266841981329315666058358059889416311268851219279121864864868582841937371060561818673592684625666576107697361447921823484798257826783326526310438603085642689678531023336957914545030452861200265694383796067301822928733438274725333892928508856094294328446730832161831086388136989029310035986418058948963867712337107240483679888901976224336937666364414777273203947986846331342909519344841564259055156272132316228905143375419068988388316158271716008791682631045633348590530954860704703222038043520248177322962262163902858475596165625300329026777792143863737617310399089666598235165133772968365917722033861900393612324195340288753904077508138099544584511975606945973255617955776949641496569173918815922727359648800397528607733509220102036009272333039862648462182548312661048928397281108507774161547017485330683752133235412806143958954913864906301206335221029219701031001533336670035069637471398046775065371677944169421400085111040296091288582226152945265351435639619660721513201652834374997641716945017173941013977724412555122891408521777554771693603613690691002126614033142079554450097948950850727758743907783415615949373049885691988613382811338605075966204403213773241870563573181647576451481170368002710482850565020052864210557776307565613212079081923325851538766176651633806123244906039737000114664660580136610905459306293046641010064975660919582867794782902236186960159836200542099909938647945464739589066204447858718516900659729097730779902301942826341316307944743533291794898251357859876514010415395320322559326383680936109145552176794158117337971699921102288288950762661074504127419298110905727870114556716991418368189416486934897036395414008923898151437731184389478124296965521762815885239732464437422582815550155949316354228625652615232191532455566138167559304430477297949093609638303010126835562705997966405334576008318303547233096354816989303593957425575446738795038411677328294896061642354052464806624197498526148518120802626962934591155223419450346521051493655726703342770462120778675395004295118920384845458165285287700464924254780184785726198561816552500602223538993714316370300598077915743350126802316725053982254673168167163577087751118544862426414624083871288608347220911003570627842832663196613679893442401394794548474561069392413739288416415426921922759894371855843580735623419310978516935301953967916808302083878590204867339623514141980845276333544680595086188237079318660213567677117809073969234881084819504843839012799427378691965760868704533612372694089407137770733328862060728503225717536958377148628041662676531654297946013534837852664056924596810013501669675386604686129537586384320986812900792338255566127534015710752172783398200567515880448503150430271460084016979669198785844898205820163734915466737603874839303843505773246834236867877450399319555293012824090479729776533513356171255568218674410857785473458307993914912078447267846717231175033587681266582217653263741771359693656035445179066925748491519581566047877686547393236657485589115979351388878834767098654478257193395938873875321332725539055188449796284823145468197809560456189391850090942165157658481729441446373104434211732495062596599689409322492031626928374514487772263182768096315955830501988940176044545064332436335122486353128463787138945449138821326491112814082152902131099054899530484613429550626064663794626643826876575003107187257281705421439831827086706856128091795986246532320930368332158270762398478497561824427886998190115464162294796778427254569395836020057606281830577556901675117603699059992185058295199104261724964241407897235698026629015706021587239090533134381673399921155577074984984169672199970346528193275759171806437564638292004426260269921737443482000989835038213618534118265579027938535210758417432740524473358107919612985614404456506583970002610014029397038630652189745769959952997345764716364783844109465831571346091887893493698505741437821846834817606784695700053459438954434943607472654651804958911276161897052784571542458694430094379397593816585749918091079104782812629152821592827566744825325291164166778091362069858520848177958849303608522555489008358966707514906714239673533834902542483728750647448348496628121441115951294749309528394519877219613533568764607301554398204899425043691167538067425839306825427957918338578229915820282268417081798544952647685950670682552107985300227289092508486523472122375238622683358132061194238879389485003790780523357282690942800548952336778319277445222542851483228354943601275542644290011283543158220048365504904342567198276262259890341611733541183104617676643551119877748254048849744928977296669271362411825893203784573250517116124105411572350683285765784993535493426190410567899202032116933053831767579993106154747195966178496862444293606052864893358290962390611868567516862561140314740894047959891494882631984486620683644935491889652282914992206905104805809889047650317661874638312789055805569701681350601817381194887585201858293086724160578054732432783052794011205050750861326304861276946582376534007460984309109944151974731251719880948393464212664187480048720247592618626860089426837395303768455008551233526912722190007068414799959255621313051457208826479396752241884593277116869724640891533167191431459078571043131407861541385880622990629924045727246899419134879231514795654608515089961878450323511555215027875598053872735566404929570126405132811137703966257914703515937915378703153151341371362813036719620130784113876320361517253605039452880047955602989763284914294333026601469954656827258875915657881594583372600726087253383719194917606990979773954627111307496700113945601858831317167312269218378733350374020796793696503436847784423703089995599023981577399042122848242667526057764342989251454748501240073643385934675013281010243088972031140486913435424951351045762636767919306924773570314673883713216434793572586540868212091420485699598117538103663368467945434083959194088222339401639886376064118686737865357184616590569288910380858555804429568340379230827691535799784906520004803125054186197239182824012795713603018291864732580570761834107487648433497064970874849643428620425695428706837654663677314906269874235076585383483155861056006624017138505263630287675659549866076852963144192849418724182170229802545992753299610475709795123942196287555350556980417184877817042131628941325743687257715734322633743833061448840018361202338032477493388149083890912106874313487990483201641782626516484349065691898228125407807408370181330901380986029556650417445255984578773235701884918371889551613386008180301883330773306030814174612650788336591543402268262214153052114944986925233286358034609130031924015128092679982489171140186910681828695134172314361361401815111109117457374353081307718663331909674656664724936228382969563397270654009146074837212176814789878540940445791116555074453779261043861235648655669861517924402954387916990230810929899506765337816496950720719612000223825910006585095479208315446007307041105832912803243625244057408428157443162008987150231548144164148421683810115906170522540601803515306354881449612513719237046494677221428327712506695379603718709454719517301612868123185713505621535110072819116265167733532285131915124360941404886008263438385497174224072344076678457683448503601259185541814095472038996870662181609277154539527729012888960716791886202902141229680281282077278011654124922724385328224469857481150976441255380244106371920578612074397209879205027434882139137315228566472096819061635376343261695050172559011860727508729359269115845690558668359990418311565950974886547387991302895414331505924249961086408826049721394320794533145431247087728332948938874531014519111191730064575382351339408611715054919872144885084224048485475565991349781451634847627457316475080686159306137699079102241171261026759639127956286863686612826233571526674887605735403133750411241708455488512214282569860841944151268845011711624744224755266498765125370592933818200790447389751521798119224667919563879917344450258413981821574040920297236741747619977376425214523809535067720700667649925234826391384759834421480287909832362554925408352791746407849619804981053289417800863748368064930357031540491582761629474551981658993079566121009262126039281280842011964857170824462015438233795743327155653504338053854104607913292709313572507588111799999779685260564313843095221817837346452565138917198253406782804164619176765741186638622662584725800083177401661158172397373150327561203026199123171709357651283584805570987105045663816274900346362688549564677393290144942617347028725196167694028426205654356776377893406618168140706886337703476462846006222957538382132431979288270293818424108471658781469120573786155602578024869821738780461836658277914028245838128515111157931665661909423828533065417424177959482563878366419515314696633229476307864860264119471764241905395607211859043984555390894145416776461833613540905934264431389425116994639384564966854989507765150989161430430914836926419821930287454582730168119210872859931394529721586363411477327042172590612611128033278994569025538627167704829375282020257214412239439763167400897232170590250569055144260889447153727573814044829784390296636562769986337777478814403454173935138339683362251550972123779945426600958094710152293422664718331505485901652496903182755389818245871257499195203661957073874258676860187840212717689201780895420408456415261146801826119170435583446730135997607583730519141646926510943395193974461588272316893579364048805033620386388787259009863417902746605101739247010751893278943194101246643048214455355783689699912949732051149363508137516760739606962302114559802336168854706385592565437310727111115340874549058563206464300770137342880967007395708263088249812098454100060840633589910461608146972361287811959756398723345587997292065266540606472759800933749119816990159245027196743718635428506830138411864483100008824733980758029137913142026901496214116714211849464709296244186269674952764173144321884720213342678919194628480254744159609764117261997241467160397163474112869555741640504044888241402990327744782165817769436273822834439823327384740656422473811621475438790148890468609256863942585054267610482189590919688467674301034336476961030351293414678897374485345661408586663865040968608724403251787208093799713128352926722131335003898080668892150994506167034894245989790016114895231463034547018635991224899934700090387147508279121484546790522989195102413715777184930801992614050357512621177764446111771256141228684215499294834469828257997509374451561798670596394559906908235232607027699919639082381267129237209595110196233363651026500857458995396417928944890898002985654800591577653880814764406540863514344525465626361465550042701107319595210311558524901573787055253598240101803179234487318103367320480748945899961512279085389437422403856146254353123077864963455444490275460480165709551605254100194601543605145943576965465227665689531000519237745926668349892256416668857397100776472764519247225153693115368981212121284837742619795957500742149699615293230621644871663475345252801633044909058932981809168138447505952541141342315119970277855177925227382437886888879438369728511557450732304222939803671713520962943634326901711766566967091442392978837857605833016051803427086164000757881504024602873127146400766453342130589411901610125976705989609872974406453049257011169369891270464440360299220858615437418265703764475754412838313858411645285684347956003647120949899788805632907893169969926837277384494777899275294336183218511972916068036225604090527369964571032475030149580365029208143197516519735730052232537226309211337552131663641060612579402866266967557114656159278563463340421851991243980582743497950879346612416824824724989252776303615732160905497782531664353274325403108041140930176752005810230690088424265949195595688215147111614864346285643590414460521408210112821087098083171019767627027357198060975359002856517474843171893238000938507256207508710156026787824795245550431869491237493446215557132298902750309539392968246393778345459312041918626320363227849531583861214403996844652481031368837636965089332796516426941441800551642512375596687020708940397975157007082983288187840577494169945126965285316119231001698681437796112517365279999909666786633394814627408336667187860592166811819796231184097007856394819631606623991165318030670229287112414267520886465062093484815230205921270656750936237534834828383387363733082882448563681652469868698674867932233424879121493830061802317026675357359241886157934550227955170712551543994586108716037141802865562689836904168688914010033982096438451396446835206214176351017802787676016287487690745040862237326039016415479558613103960839471711734494901227832572537327263004592922229974252332919435939738586415614181231669606333558726553317445564224053231830177985997409802317610570596327762245829521544854623224133963547166986659676133302753490772314546464454541882310514335239045885507117848961405827494923962826089025772755110813843467737117063532620335577090022701615168588758774856604291422502917721146369820022608846956043628349105473617977958087875462685055500233474955769957504210713815707691515670975153885725897629539302362172902097889228599510349697459695308842776766570362891219648672037448590924291627498090079982349035053221164887709971328002845611579975567492914694896822389742309577662802169410477891895270376813508107697039220085941422512259494991057496215647083461741309190789995305066881910478352470416157066263669899586409596745442362050323617861033852832248412028563719887690480838564494456669069132582348244997253571321085023729819683167516521165982409964973202088387401264314979218761197416195626544562219242726779228188621706988658220421933934957309779309944080150592489215578961887252997859163620450988734826865836527303829115967735881395611129059244929080626315170308322915105524348069981642990147403880373146514893557099409111032026234651311637655630362877769280603206317596520575887901779802489825124722408819692721309676080745507652910548960676706612350450064805250678898780857713284699820550800707574897945834041989816736830588588071297478449426724256336324873089132917858908115810961340876742507743035187889723115324661566096573682350241649109944207271286278781452789296999457727013598438994371668348691307730801772673056876001539897721145143788520459126922051699405817956381106803747558577190838770635372147601835154280981009155511025253922338498999958500175016811979290153892845721989441770029122753129012364045614413627830527434744679243715936473936501897480708371931438356477959269698284992479536632231193817478087699829361109014572067015981395840792319763369779892542497380721871997331805266765207408399458469953358225380142767744304215832823893849538938241940753349469134706990168767494502974124296607159330415422106929785630882656682490996437985543712488210499281386255685261802431462298857811713300865304766680194869942683578687543312824685876759997910148180996976414704109689331176579727400601822759848589188014191040634707189666306169371499700602396288058714565386727918286618513574311469489383503822287946839490949752427449612854443698245709765331140425890077705761034268058114637795217630663296127924086700865390349293360382646100193719789852903945522053915754461323146271279917483909461599174290759444009520171140506377434528710169334861143884076995006110928024648789885844652506154432685175672197887073509152795594664507826680721909073573336265583878823279531400385697595829633175238399065370027066049170204807283862551309512880837090508321444991046644720083050720064647641694800750904447266530097723654945996567981634190240233520139955423175991132424243173032398763265936965649353360507030858069823462687613042806506562212720238017832692260283742525929725933691544803180543495852350169158696304668935947251787019114617832071055832319064121107929217646452824504837371749882061655249508712839840260402850576358837546691715391397950422166581336249619232546903015912464185252362581324898929469082908951367614923062604025184146586224101296556108239549165433304885484135707741100817876653524548659223710396392082869452926609285425633079279701158067670100583994037340070835367193997724130208272313212813909246840561816610321052707907230247743624401959526054153540505178885809098252914047733236125682262627201315166332410965606947584842679422176686033822248367336801811390039029159329120701987500245960231079213529721674021973587658591243086200955884985679388807273850764694303232627244848637456289726364245784220088329058540391785036450488721402114586533846778014091128927582790433318303224979647128334226472953180363098742958250751625793001992217563335193315924749430523533329070633436609687424042577302431707131184501961227099542106290652072652042566116207213116215630788578753034826394856560845277559497460527292194509503333421253446215786150496273045298779984111919478707907599410041668768793542217028078187016797789432795952149718907015757312622857076387626859366529886704443059160001973087161275109501788782989012428513132840906228416507715182158267394595100209375154807085134771448001977202012819103458036663257892282690138204041533240219862747770888783788871074355040782888371373681707079101961757248797935575855657098572547352229526610121488894401454679714086694401668819239630283285698267963916542052482058481405289407410374412251072837044714601676281221999372521589046677714322615931383007980153557733695341560767906893511383122558103917452907618345474478148496780829706231194867445962682509630287235160000814102492829382582667183512288053782733094762707250712922143409508282710724145928290730612227275338163016338614942450760592643828434287040037840878396466330272209220524675356051467752732550755344783017048380371586438341992359650770266548125052891490192419580209910738662803075973948379887340911937276900336868867331026347736685291500452589780344260973596747614148942037586425909465989719440609528588977238378551713523597241408296865492239339728432296999267733027809605132179679510048175337229379903164231107866274984742967806348113542878723750895231569805176912275711035354124316455199575754920702596166106767138971807076213979174618880226706460200062551789289357073226370292905185070999348514466807869118561256550009401951845051421159111604360512128947266511251309941723058102522217339103296479458238209521405480939622225713046617791223409682433958580645161575534614411165390225788212404551114712872889531306557654242192414288010416115170522375583046126754245630325054894928687091491884626056044021522987538410091889230624916603335175303890303665648254099699977423731754708901703796703160294197145882705015833949246088067227698127413618709606531410426183177728340931022239268365277897347379974214572448108532882807794039005039399919217658859460406975176679334119998918416233577845988897887957417164069262693079959349912554869574831512201262457122124525175354102727991918612521396793498617355951884956129920823807617421315896124858129215536417073810882472046661690362013752348693054363041629067303730262343687223841666959995192816243738650423370766500081821414293025768831901952511350624568341014514660702655985102812732971827949833047587570422561544736801326024999623864967374188584522905986424709871833398675945904545382245438833028464141258978149181585117951565684439176314456455792175999023520571281971187412334790241662890640281598875934189756438640494417931231490633907907704564115104037177727337102835662738904539738775578800890047462113756897591222212770685999655832496523455054721313419371133510057114290600893840449335477473586776973691815588645896684259291724503759314858971322094200160873041864589263524047546862164505141395174087455812858669548951854719038442928567909751555181981875641159599034723470044258727633502981739021982734657509690417207550101787334850273287329553224403016622376763920153276510496814805784665288520197719452560597773035929682599609285185475252528171954083363999493421574636815120393705017790092081718692443444600300689691964706924233583682608657310952018825981812303283753734574492946427895199936065639557753134321103340147322419938837120935054802800024996036893506042611634610558052971070139839524313455981579649435375973216090672152579708379249170452170256931985057313956686421658346239791786122148733075698207173855176740330108249678573869452093478638572932961325918653036665956460565830859146670903074408308243447042976132708750229958061355664930113740502423526162307805024607332803917065489331049604268677964433108458531947641816507449136945840975139350641750719867304003254234086163655561062823060668640890659430151918066051820941461474298653381022078978565519126198372787821607049189281008754152275200437364087085186687376684292998298151160949229256232480067717658800062564894308379084914102539647795581333552444027653536895388308128926201298906062081176499952239007923886582998189598505534156789350520466244396625039520985586460696957924809516565840146509753383389055896287171545128071075161696171266135959691319631365787370908786201208419832893039310232672782899398072434456922910696061477568351184092040156527802579690929672236118340634541745577688187535646149406557734445045347303120066042193343475608314397212039877227386470443473605694627844053593446793844504146174395436777840923525851460550152121037781942533471295831786862371194137693170811352284279199977411590571965407174298553755645508253800684646717397027696045126184387289028772745977602585857506204089646029154155545633446695616908978337045975040417719082371190565713187761854178145068535234319752244227038877124097451031573689067127895910485196615733348950121177267768498653479982113657020653298134056871400774200929864352919513732661431442558788723608102542333570466214430590499777969712911675841444040170011987386723290125416952914638872473835272578905905145002882100437499014456674574878209853298202140579908293780852103197328891948187569787632165958184167131536969445363169593649738881294067525739040221642808714126980410781688947118452819478042914205377596594989475153117268376851351639375432057177910002884230409362806716170612781420297768301657874427772739220554020597536742764152622699959450064347029847219334557587071782813196581861863647220544649849388121174345683315358339945884585666872918280309023619441353217347552175288297118409872593581181552279583947006727964834789656831258821702376558247245010020545745615483559153317447011266469521307987650808901317507782446870650691162128849200257642056665142386492378578104742653045943601896447380265770040368976723995525363351561239098959872863577597200338370986730993906364655073735559776410478383021348544732254859457465082948414965783671219841794164268616626422119199010967121431849943281323900107425916216190495129603031159779100193271181915624230756373963243279043000406563047667648339299430480343848158862802622373212854704676297176939651868668752742785805573475310659915313618981432347869895010169669095120588889470134845668897495832409837285057534339828808108495292892216666313822586555664090687469791720366080444546357606067335413469117701720814954062425518608149224617540172729116879946024077634368694296440414582799485809963782667935254610793334286324407281486127664431699325639111615627240265852484111415189388188926235393913803218064755064432214785030706399773883081276781635831724244392728058853068812963421624779043452176881150444655979743069971450051561074975520166340287025163708692893808832611138640311443910015908540750982157121129498824227645347018287383806043835906030896598859165348865121679637792597158426996793253858247046636298325604079264433860423951466688955760330445797576070656275068253511420459020938418618351789833031405804059753857515326945770676797978465410690724934288744096434032646078930823555885599644070402876468404268035133268583969891452744089961768836212254708296052532246544750347337043989470832721597087273517609358660218979411270773822727695356449946904677786561666640696971150362573290864617343133722673064151255366975700105846602758366198144950640741614473594975403195829805387648600595015125467301922801534251264960828639883835905205446492965440998767465803445083036318710043690802775811453708877143493902893107441776263924687740509313715647447158786435267241140138313086568153185521303802933428138473984575795413583270771978009990295662258664752515464273369387234682863764124170049142467450201241958691174414052065682926833336720524663230086734743528456793844998408195552676771281685817303103760036771599801354466509560635108761917266776901062454926777076278535071302064318533363031468923394384959686605433993956672019268071517152530478897023743851696415908355135793521839201842008820945789407874737606724186137547662806867417745343058788007807138564948365113188797905815180526749925219682525103307802154694344884991609038493351869243359058036256193657021916796670877975086896410578578961885822342542495643633648410445743913719041843915164139600471055638945789400280598337263210722011464444529649695059946136188175273908143223537771191938543696956313250297291331432129791325313804152101382079830749977242011918394468201089321593259878679311401567480936864725847744341629398175555184968657720331815178136380736639229369550488810840403690401081915325327548109300392839129430361407701521581294855330449077555869985472942117456632121379306398753152713656080707155027154442838515320230902353302250548227717728706301073066296827949840930439963870355443554486790740170733247795312591436536832435056663984198679867615750828415672610111879507379069005407360854072214938783540246626357217252994347568157409294887478535618367325554439434932802386590450871077794814403471896029107448753716034761664185899621551812182500085785663747589674329084919359129463748177462314312060546868668233138390947197638542681142693300328310151777734551329808013965248068800372568516447747444135882333147108656198374200066215819189062239111403253311492663164836335016893207054662520303007620758443859463306365977505031376251131641150236205731725922839989667777088408533184113435134649659129943103156195385599070133629793987910538440253849384588936144612733643453809268692610284901280842994393873379142901241112097070652418455151112229146883623171300896616769528203463011882230104746078157236366595128621260535901730148577475609958574266610112914182003532486153318520399202831882690279750925420399583195090152599731734295050282522258588651045513001074854595312283276034621076681540259547994873572159592040744973157620429867644336773080843111724748544683643427738142985381553853628660507625699097506704090062324378159418198187995477112464016568811541463694400544560536530726296119235173750101349294816690780818830633523802309836004074195774013252518296253339560650645989214239465108914745785593169811381822464442169668679983648462464620559353758990956943973268165795990242541978781868076012441010240223809909789021449178609964940632373155961654695735473758441277721855406873138705692545889341245111519198968610774419727050138315794822787163832566218334186518378165955827218593471876601441750346953242591318575111177009982978501563140431131701877415073421406929707593537785807930472743944116168335781281534325025507094573135086377199897169217622662416464893553725830397520020429060144404646889765295227014278280793390197346892450033639797212864695485538319223332466009945335801317098805746762917294549353895947873590818388313049777505793399075592446807932899289560707127127056132662863189334433699368870388964575481058416716349125563672378041760084360362028610027313705597681217034749791404081378477660882795514028619298938945633714049692914807644813787670378400477640637703291029342989693803035413243958859011225907464440851943795389048928182176127434913984176190646163428757634569278334663633098282986597736012600069297482226766743686259392401154943025414814065284333420431292024022159871938283320657101386984270864335578422672075114897209219700194225929216619294931357499326535578703766471219238610639754988884290973219180609267351087752837034445402069592647179076121591655378513182188651101730903041100215763473481260385097533555023072836500647715564006433814641113265714850894075952543996996814009587779528534948503177930441450342932901592667453173974765067437234841635884200862792898101549890701520705875763150067354009550737938426204300242693643989547109854016353223642266380002561700925982798139238259911275368845539819361725468145824723823167097086330421903041278750835496741883464114270561364832418939145254552636347680266102235573281647053003860113928133298835183978306189499852195185907566026640648415714396679417055941487348070541235255400564977159399269154130747355011595524075782115735286046322596954346575517443564269552549447311410824152705278047656057262974536658235535806866544469134467906477077541971586827605012391163111081462241448696956736754170881299506834573852570260038074075839519243647012739740918383936631131915158408617476197755339890022673367196407997099935730397596671074692083001138165713191615098810395108300899570111222811710947110568831028588355685326002764514038300683613287781759659882816778266648105134788175918214082722186383065762777670873084145729776323170429967761804403267454048109436202337872335815842152887472320996259990788565579616261301458142812355385544728814721232050743476181965962461862214247349563499178079577939148211455225308598883262244166809492927428327107760929054114937909934201800499548262636056810422889913688201218942125429813628328286106588188290447054950360058926629152929080666742818763247462028425290018957838188157571417617092569063990042288565307407576118001417816905447800492273665590650595331410055451895246425738786457728892952062334719730460923182732050707082880222550493623545519549641978023631916587889789169508487113933458710485956777512862249129568158590745221908714675050072800970038916875056084196186681731337467090405786649038281276025792581542994828791252882036883677664541031446937218283862938402322633357834597446694745646708523549888015914335983914901021400673448772643013441200569439165192127618617274388149585446556230990493074022112966957310704188880120237211606415022701363619015102805110924693664078991626147411034093218155545905404450868269692751171588733562209786238447661667475611051113599140931338352274408088359259523641876437090219761870094438004477889357082526176033354702111150850408630346977628566227090633033746834819300051758122878978566875565478030582951983592524599289128793723531286136220027029540174935902520057606542974505704987577890932940200026536033368649130320402786663969177590446969483030426020167616860673168842735809965095264624482208025978656751437404340069292117656963023757545945976625731494627462710510907237252296687638516921439864383620338153188743275995422063014056654047559449181429629834414311025838524747529847756970451316054155114279444904995783455049395761187337726285485079665072708494605261025055169905658295447082942979247745817829674555676197713815863277576961689644683247525747088333621349569399894443171848261399389675195496590925366738317546412201129250007017560896217820880794115496622978529478732681464657863754051070913881884196865990050870528462086002205498695848830841552522313222072782420979682832604047813686920744800200117134715770075760714798048728803769271329308416979616010917071471030319521206872007519036618515714754396880826068619478687009816762492602527184719518872245641101567022675346783514598846872603061905980134647872130091152537443231074896171884871640204732199089457026727346276652280485804357812795679166412110241303789018132106157773167562490894254503745848977649615297770192929245078824209666706959801791489458666425839662631676201024922865727046009917647296445896486112185733922567896047980713323476653957248160418278100994249169077700862026777635781435802199727080674889824032396359396865852350563110340796525574769966934309096615599088000248937984695680911179699997000203315066198942467130761633342695877364917910550879715371898479567154985665144391501761554712002981044516206039112928471364513104266600796719667606591475654906076250818158876708116041145333058767714733968275024728190393093500216557983182309154845741934714812447230862968685267694372861125773391458538696519206425338815292537454918466218756099890726523667182213869438083438582997484770925763372923129166073895487590616599472341252976454914176997579422406358312726202880688546069343362588539538865730211486869430329159595580213932706172240500753036587217300829873776447356264695254843048225911007823717590060840221406556518314047325979486789276505864990614559882636512391770847310946603765017172677702528952267763936408519663724369019522237583784976398761567049428799843629291492368696237863437004197895495113439601116515456307385639185454078377648085830498309465203267336837803345676936733679584458119372673199826653489083210196161014882586751363701980502564084534407529990128902668017100664840804629419674121284085871843182581127064062589829602783854716127507879875029995506904170753943971306163734031519301197861552664947634373893287915810161239677611898621129867919724886843793674538342618602338948166897128299484734446139881850158107008310008254119701682220565326099257301554506460131306263486246890994057724089779222775151014380182166669675182132327244770109420891769406599043699378271122481496832410834334950958544820051375467873675017560732662042554881917683171067723899221459759474534038901509457852379918599511006314739207090825932355045633763818065141345307997397224557425986892030960276448539972133348343521277798397023912782830563046616361480581357923791705554686191739745768713875900615430040904835918229626786020935324912868908872551456528819557134231273857992864143318979710706863498493877592128572380507744951661897360112890334602394253889306947776299589890579522305808689179518557284527349935280088252035124683676091374708033688822477105341924462652589212956934092354074369300941347893600373398186378809580884677610829575544720239012249846131509259886480521141560100411480123704922301183295386632541949965098800727562406496175553586092206128201522928445578374900705975067992419624355584618384270758063720558581905320086724279037478423239835413976106797922934518142963869892933459828506753087707204890818202015188481097331527486463710679758867041154055783259307647392675033407137667060030103583931983557539492039296732304075641193544297524246540601914572342600117804912493832945939248859901094718209200054422197717524721152890380536818130365202643839304801949097574396383783739897046949456745185669479358729804911218344850956101938733617557003869557261517086597007911395227721280711563477858852448532421839379805149647488958235171405362280159916138919849819672905002878094063142980967442981624307119119281670426539133339151184361334568468413275411213294648664072832854685910943438800036189282127283610967196095453581670472128980135706298904143268182357277337876326693117082863801698522318974631447814579711611878609097759508621184993587352388322782538857667534072804631455966350161437817138634669552085604217634084033604398077435993711311267871889039298583800918958645931904357095522372450143591991357511310701950486399096643170035660520039215620635445330627230656956198709643003796224500653960581832341348637086551018740832686777713899734628519545025161715515688038292365619031142535707379859904098012797531393152175814025754879650485961306175691045943849478549203933371689517766881294399916431473720895202473848879485645798090700492587317486288357404514477228888074076631263334676414072975993702547654472241961463061027766835313556967873661474729937796454474243732283156359858837607484225574215820755694291503730526494492851537147517746583266403785683758007305735111425529586591433571795624124712175960170436765514191205637154092375226277041587970517272445704949144946686834271545593846276600864888162732163148425652923571533700446178487060181439633642199045150462859373933925581474762680172441443086952113189382679489140967036704704131681717521762431127972237160746520253978020360851700427975131578160144383684094649344410723481392599994432782099833673317557422514546940090944703069145934755376058560980292875908396178949502356901606127309646311387737339173764362562485145915157612266220313493595674063007178753219599594561749084867209118744618259635564158123044389190240641538165771925310943112372086384570878893066164961503196843208052263696376308700451581513830318025173697527301319621831799565899992713524839328625291496718412170701470261677950211717531483495095782267484960786514920880483523720774426240733567761484067145983382084344566217287098767616898753374380357827115928981406072116802243318015091665078914373175856628167409661356207938719648179999728086338991109258333289373145317356398347681129911150004098627609741075221238282705741628321086469055265816692299798472965520476527394203700464545049760816750201701599446108172381790667652730641847110481087374184827064638556527346471312174598017232853298807975576061593125187883305321115254705478486079132386609633440480754128268630029319407961966506547070129798795717798383509277978182119361122455128028054638173937235361026806625411790242911328443378679517802530072709971620364880748550809739460358098930826836858518438982985047473222523517225640071344772883610639341901743705098540720514432915640723024482801173767641523660135751769738830259585350257139981569679960793097464910374544552238077304254786509958651207591998143318150072507804186090355494077278969149254616352231305082865063247539508475686508277849192511750740025224539691698671984808928715722683375712848300601200805566366061451161127035089204114437658499224462287644130133004646767975242848095944602624337631841420430961322446908186764724575982941594870621794699661890848803318232372028700506272246593355285381395811575406378712896464957197594603046100996175810387181531587378615332194561333709741350783021815718661931949097930260717673014341054948748784374181788695915868946771040443714536100078080745594481825741552695489364274538888537836175426915743354722866434218352107992094783529796371113075723946620402322914291921632973922511973505743666682039835144525116578564494693234977698636621004588806937412740183544292270383626794709854556664249282192542145920798863567904695410927093657046641433494600404730613154530603350911589506209220040747035359770450996290617731287009163140721538387941079288124436916573185107004974642962935485587734139453147010115086040748111286580078424486080474923589219381305574002265300119651649331952093111898616343616045647401387173310127285638764279296755157027445922692441954478192870380667889678525357957259579276608362188773627789871212696129157149361682765744560507701751581865406328959090106290081577779941421528584827528033016005647346041038058427886422855544560192979714501749639906860164334359308211033250019984928428680062818110475648995195359942955236226374296084645793728167953962393793404160171577365004148955438798223278395978112996899363705467292007715186378105039621965380937120215314532475212225431289623970475661028998450413401248887346913329483958362000012041529170198827442992644489169119099042508145621197623952881804445993849083924399321965889475137427418256630005406533608137130338158389252190993646451227571595658011226334418353936839274557842396923682173413317753777450670102597984726150077930787907693002275799883777061303874379495696492354510813458653508145154933382479249946476608029057722085388319528513003761028861168817529836770923684579617519060719150429742378639074459142578176337482198178178700868189543043142937046562325104515275112253801825489330842270443927421916608464092734099527033657035707270544835130974110494862436239483340720551510827603856433111300704903234193996943617540587472006969907660318876596022718646107359091660064430690604915962014058749878361471547594934464110010743457937828303222727376180706511828080496043508902683490338744583804019928681057003564793940390250160831026166614813487418050768122619410276806892210463443070734814833591183041323049534518732333296071675071904780970507459447884270191598626269067913753205355747365289672999781618809283658021529154739104778757914455878711563367113551187140888208510742580182682984420540907642389986768584424583385192706611234498127540426441775956787003046548243228655761142801334538575731024370356632514829453968832914316899397917975032797708262836203267804870362025050031234956914595121556412677008866724172823034016539726272795990841497281809868035136973429695660270069081112099020513372936681664910860879460231595844429053503091202431337519786415099919857628374885930808216675008771782678450288341223208760615430872190246972506290024864409742171701523508857741222679483385384968550243076026803197484466475719175804115443426752150936452687382141255591499618938252736692009864365777828964565837513993566819161706810266942835553087229282830076877348342706964060606315254468799660632503846098972344081795107765796558085776577512741978430397032331101925502578470096213934274362400544440228307213310712005303373347221581158954436107193126417500348605877143949261609818106151281293733213771648454867283793236618775082682895084760538960553373984286888789620174973447404087985856040832017615683691704099065044312343824115996945955294049104807688474701973247398166067375706151055959416845645392573538460292976783998146411075810214881109580149482103367214124303794300557947537137154948390335084481242195253698534838193608625334816859847066639572849894579031388945072481268753770496372519861362532144593618770392696583033205832678616739761036560808271430548644317839408368936334891824741139472619043047465314007857548222577182874588961385018273742607596404124255382834294264194125239071718026800455635714310894891253341571732691735616631270036733672521648825438501122887836532240005786955074665710454385211481577405944296604558631854254822819794050917752906633736837839473592155417493620161594061653061173418610063673411521223809326159732147442915744306107739207907154612318553031706241802671740681081771661804879831970791244975539872922973051382724630396638342993731254113997123666238431763112916201901763809164610067858055904207090985171527822551685102638855634779979687495284990311802056925723440911988942606860290639273543818366595658385619430701088294817051735570748870164711743514228701178538776045288722868911425185912720537830404410566214797992311458338922705768867411570508544879488097286168889336540786264345792457119828977869211100015670574617131045072856003219359062681564878407268722112809038422767512360411460710804101293811220851744513008324427500876366237075803236296938369641683951616007385728302352898346439146330139050995728554290199977191319869377149030036679118988303066276860837439501951027887708219364785423737891217005277876533308412386152099463484149903386746613443495923060124453973430960058039257051394244311823446221328078741878919634523697613506074253304360572874535393852710976959033448107789769334309898546502913724223273798756474008397686802528479020710145047370583217844336687445882569607075662428681152463465981046405796552698257243754113715807961730061816560531515053911865558696504291319660344639991840428833312463365275180822374297150846742652756608964608526894489679847002102367203848307320816200439063187701696705962240585903872567874202239878496704097245404102810977246505481610792140137572389181449343219482106348631471228788186389512092341861854535978690176016747431227678418377329456987217598858103759220601913589388974772724519774653654721025062490163012352978349645497789946136201323975389940479367420073203246880315370173121209611914466441564285059885046964384741321846215945195056206811286197685533071217814119841968296368329644929572984553101671043882823000702553900404671266989849609223048848477177769517345775879071002402246469453032502993694896775284131609478118418475554815493951616923218176564340485639967579520916436497587262650105409720682559797678596409289506764418787882851169167490905840070820260185120729233335335931218854678561353496309708380363785385873344658988461883828148976980251511248308683717947879428209044837402832334777586774835148719663343854351334017759949992511544424804836817630318997356829048450233346131415130409077982717470339199762047879497947575087986949320246591184082696937425858528652888639991374283311513695738664679732346207401767784890387330130022270159853094749787690723559448026599540876860072105701069957963279184234611604351509766259477532200354040884530087805893306970078156165795372144667738339765885676704284248582880300535161710513937979629102843338018957626356987329968544486288979231337461680774053827347805225351556885577564278738716332490190195076988273647573936541048740372343572784300688769026630208887142140196251875463368909690266517045002650428238332428977930685575190311039408997001276043888159419510912149292691227646548461200353983181493780570283138622663443175242931587423803661654555193552512393150545687073895585838076827681698913088780636245103796948661313727246275129995231419778263166584680107394735226887227911577878223623841489996472828473619168226630314561782042556552917018439574693943666688495421250669843062836050966683601810966659653450857229076073997018096383197957186021386653590565139593855907667337443824702662642763685209536468423651269889540539411642259747482035424755958774091455498243714005074491480274456246286074582708250770073101675849145149089128076474443997137007568792872230068796437555659533722926521187207649186160950725644491976627748487728444895753804773883137407147382980948564964599771208780747361665095486573209246864695485521115178902197351322474027419413586789512011558400758461530724686478499954056556190731529974597482368475682465145168517091876424077956022822706567513998671135632422915820826526007944622881420213350869769861979574094561015202239278613583637730269655853711162105827912525990490290057988751812643844654667662320816788297476962246517655103874895350683865456394561168663517166831334617038999494112081173909437391717524952433726084738065773746851293875958344075925802882722824192358217354026110877954494555532700135509127891532693159198301578595731610244837687196700438742850720627289730095344614037222856238394120549794128909544799260860513971163899607140809591007076879814162990523979448216626970526019078596321877441199422457628885289842101590802860690086539846170205299029631792308433476660884320465486059605020049074657147934604888628856447387574425645615448016396640338669330419617948453011485909824975986785748631170143072943956809232243131281576446900212819373991641964155594392021411851022526475913277826611286708379198365731770876032120702424309750003881911627311771119591985399361114655173268759340884732985147281486147080681481561110003783799774978824454095532770175204367354821821687842906529687517211741727245061956360127261634584845382421506212451102024873880534535040177931681352267742119682739165362592613111950569413600951135453949394771046121643203800598103429860127787761635467855482313836225219536996854716300101773033861668999130946058191551620215391806634042580813449769275561149173057922675820417784660435406112600664069833519619226557153418484551166645880521829037367732522042752054901315166447062240614158393414158243253511186236463850457772625949887242137918770498957131859632448720135347496888946605893531214983071254959634261843963315515684736309322871174456203913982684095969153603046974344471280598247804124280024454966682687508438803170840865618718024677768161421028665122868244206498031925373993088892122280414639286762801474788022082633563234996012083724965892185769125737774637249802703989352319754112564002967570140491987866622981552683109276859921849274781070205236540646588387003400642874900274087092337622930127535204662778829522686875944591539906032577993548524242981505583702033911318129533255084779938024053170944470443788912919645143333208393413019243877128473960363161080338640969757630711710123189945352181243484425873606721873030048907396535309142016346036156657790118865005570499984317758968565442015270740969262080400161370693234682548414966197101580863114519168949022775537016673738844537475935147527436959791857821180576813810777733388999913191309773760402108648075444209059042199040973709025590749405128608938852289542964278675262388146993844435580781106378730371984158138071409511153307409123484624528003446534539907672321451192938857412163635795013092935036855999693744127885850642364979314342635096533666855555256315251107778249605717347139154106948148228828638780342377119401336243053900051777746846940685498700917567038649519837042917900378365574433375512037435007637689238642043982016900716892555749717583397160970100128395735173557174822159112492338332155159507285687472016423405694179402725032909512671847727271328909447485199105779104988318517982618042823901544496265343048661859699900556552448629600716365159522494561545780539620432648057272161992847646633903768461437340657076547618757230530979438530884005443719014246839493203191729243542775373767813590473330230197728489901079613096775221179931880431763022966839198801060692715224028706086360625997301360847763148770424250339941565109605609086396321439394252585774577079212178122435106883044760383893467974776317252460800988050810486265520511977352721344724914507085125065232637949947939809506034276398425007137698081398354897802917478595203309862757012007072136156355928685736305733174619353774373610302458420914707069208062350040391677159011641447986849795523372693000599864540413165680329062410908510355448417426680297873600067291785280988115358044749509584925490206712888271702898205737133960821537399980597909588455454378899092787307839158298202880152579059310768981876170195197635228495248926849120398153214448727359408454606126261859032959261510399767103293262464619746120982604993190930267633927866420153608425104504944490208069254691714346175563764101859380790829455058041792739764991397228111987391949225943534439700964460042883007807506782063466110692063768064640830970730519866913404729331820645325539875724240934869636293483340730558814060103279821031610099152898364177141223199544707090452904063585523756493170511659435522986198465040694141158376865698764589716711722192549547399489953837420100693085494430029345151362110106297894786326231505630553588382297316401451702224900708292287968689781919305415655995513713340861776118076357791635178302867871713809246027630468238099728226990404654299382080493700398226948015900596057391120241228297330304458181825565394244788796034221653456272631924032563236998087461041882409149611118147618570721875134032799660621373845381187131044757142606268450535719716087629231779977396206546822984554566575721425080714981071254539754587103677800418259188975606709093469147688189695211003304161402005631825760624187628373186633529746930294245711647943452629748601163736124087407080879850484469874263670957492593584338772330645046410453211724469316484826935534761550849172256864961477724756563327053320789357470674188724865572823463962583863523286412580227389202067028755550345400244519684632077501956218233775500880220057202695270514768715225198185793651686857878508115848256191088734334117896375334207335319672283297866972711162050027617586680179362787687756717833482814103202846798360627013669804168121816566047241320658945872218731548916889714535855150858244951893963411523688860255826667450761090561230011666615276370534328896342089939579348246809040859917563839870341169005998622191066086450084495404720398270741568579756315665692392989386271063267320407344972540855178384886573810194702386353585075570112029713208691921788258460910417873770218346872922736138867489466091021817110340066589133462683375541413069520621467661457147049298776514634700880354950277432524117848964445607436141274213782282639609104756809228853154147367257162848652235159741163899970037027963926118864977651692335725659145013029193119660229911614682546193878783012979607192403209681720329201484721599668356164461467042285586283323041521815564915773021479034744947498862997933346469791283561109713903002282536403252187872884025401226982998863514125458578911010249827364945943010889158075347949884174710741537084014393807406373292794805455632949937993808245133219743105607216049571757764873839107678519488345626756118233233543285528122392297449250093388219617713908438240855621996097813010588492754202592163106798926268834570251939187706592811043913950376572300324796032406513931569111946140427185481683513756099889105291261440034364465835162877377003355706315700676876282561455280005804937624776301745016020938650140840838494902458304233678882878067271274833909982809378036101723220979798807320929833815666536712341283973856491015045732496101426556545726398724230490805789196020877318235750349567011249157068705736771787204178145387111934488430928506884009898904359130956414830170710061295385955695899775366105564585854569347484421002934276725273960849731162979032669399491848731308865897112552610872968850491857905806007309451867858633879034637524059212187122732782119097733133601901556689668570541498805263797570627286015647888416835350537854342809912704532965681505561633824351867027846553955753836637590164251620727509157148568248361754541362036363649188237146500164096765315820228575850649540490537311579897973834166375065584046019053539500700789518833255186120376536702699213997642087520894983942746900316584080623693867658516089781685421609476262695806716609894780994740358293518252471153168042829139825266368059328551174968951732886271183798722012767287570972719931295355097109087490001035274513058694937225764356900435403219404296823083217591683513238752387987417154735003329768025312791439184343288396355710466105593438704282523672921839519632299005512473987868576970926953410545606307201905593906556047469683022302418906901795369084202237744232942429489626086340567507148266503201389595841704341327020604774707062292454450533496128310450121305479738790612054038677187348126552787458020754439705481984114311430741074717308090806218259346754724624293042708646866773723489871751681001568639639701572259740865389698820932015606662151696339044582298338291302933324933920305548372800595766592716124279050567062309975081381138071341474244129179750863721813308979602822860396444998511977734606835284363767032420053824117760153062097478963426082539998853695119527103194797215289627889908274103240550342886637911246119977541212094168666341557487175626860641810288839433145377831231197401458094696730444750330599612462560890167823799829123057499917055827772993620171390826276157744670097546567531011791629945052316842299881454292682238007392995516768623651845952790001550931719705925994495411123299996852633010031635633355263205821155492022104331863604999668652339078875078441510727168683512585897442359689304591736036037749140777509750257573837832588084410034022141048213004455975275313046570044343855627172678101453613792872824812352573820895006210726187853324711221304089291274319068736646018712960372860683960618896816022499011849813386112667262841899707625704732868472221809428922167235642527531527575666164522560862753795255501323859418672747360870535095315988991291303621037762009393586228933837110894248597919128592133686912163480142433738879183356482269914826952129830003904941797607429078054741333969681215699768922033544166964986088292864988845903557501800470985183549603253688641409305393045371324839179460973378833249035134865592128042544147338547645228753451992565630286944597406807692919661068387481646953368259461116054844907094998346348827884726273407067190061929919358969958608383637448835470297699795977013544632387896929734536179028788243651853021205091181901464686819733094210197365215544269671687879931910247278476219467437471795957977384317901030394093834406066931667289191995098402378314981069619788547532698527495365161731937838223534086098263378785376982363410265737006454957110558004756606072795576806100753962593878521277582948603875901627979505436536185879498134810308389966760344424481939442485374695090233504802191358492975050330338585644949089884134120275626200993650011127107574910016510328828142964270249070348039352087039139382477757639078799980497152941973716039378738523426820884174665588498308618034148317151225423472584593587289511443361233706200065855253410071548266873902491000576566774765567515487680723588078244149344202980427933139263054692690988834067205226648220109283333552016533749637082786902854002437111420940082829600773434346524912558731836191231225558041742643511486374436978062106906927563200943079264399601326379598017507040337300016016067726285571970407138441344408163591243013419534202299772967738084275800151419277765611909589161025160789652179315489532169533928159206691591146198040586803272175906385189292460196056195890320523714831705268446072648844512999336708127332379771577716235451755862224339116077334495441632558247299301671628518305010079652627558512084550309204209496430242289447718433192210856519961152273950389370395126712739966733434540298024743091062174665102415054018255022354832431399599460701786093173998117126842644972624691383024484024331584345433122505579039979916930734971470729968038375411318585636948065492277617226165362423119362897035374026197325646699457455744813654048719067068231559149915872338473729404984397245360117463450986621554902101101432052005309458479537287160786367128677901161571222694249729444456463017462334254862908983599121635152328718495929367163116527528457678889514286477763091657225860917101000288019811820918688491047795992805038141852196224536960723963916271714023096597466334970112290242581368491815481160256940595858350241654726125594632346331544387083351794964574244371022581149324094032882924047089549216139731004182378301039016257298259176713514073074826693650807118637067391190283304942640923748990975998552832353885666427842633587806944639182126136457243620681626160815501358440427635562767769989600518171927994207323661174406368885928576581771742204701758214704003218969157290332571622680927721781412013521607498820438360476050602371093002187541826765156893649426137850749779051860851642258098939691197978880238965885149270583722118004377887123204157140772349405961890057565606281975065571840764974060519232180257036354366594656303875214930436969683009317588797066649730253206443161042649777306920084558628133268561239654001724555763134626895396095433985607739856024651467864003584117802888385241597657471701043075097174009240419506060626824652625171605152712259844689174968833175901126983543733756753964710512704838726841694117702230364348286112786110497219329222262901138590518073498627289065407448965340507272387512027148320860228400618988634902235954147872487226286779185573961260448021374754028853119042543189829748834937060042670542526403397934063243108989817277741755883847857581672791946705558324174162465433558674930479730570110328758643602999557476687620935838962611178041453299645138363162907683050433894294470503856456089841576697766726732559418623366418014030700169822321027984999361254091239438949093281675971343285716401012901281258156381639221744209235991648010709159594869760115172365590407292920060913612607759345257023507354286278187957431647075952857214001783685320827252512366761078705771100810255389885357026014235935220577449448532082285816244703271966427213155381423574803142644565428730352942235617062109859196318497155202005256695662400496042730137855027068166347343070481336231206907336216789058627198659848590627428951937129261815466885635059642915327766719566535814395340958313928485126648721245141677728901717874078368028573091597643993512351141182442411142872483979355337131652597899077932377182251537938928003694109173805769095333421474999226230495669325687653498497097362665262488774078036007519251305773999657294296245062863267243568826846341770201800410576457904143125251592249559150672847131483232369787199306745813373098186035538050613526919504047055671223243656526284088766329231135041085795333629946160755021343361894668064397322753624160883479266688845029270375878993034971221020306534184797508602640002563202465510681497168458797802996955157486273870432653984442962582606598380799724344580441627740185201771846217334978409563033309324012196449998557582479135521566934439568122207091907695188008448594385812554263685722219239639210163518774318559137741278937275245455731433888316626118992277888680565981180364779996348588169206707352100628262452668737310690574426376913343858454674325862369376888028287586774461511281296797390458393578685777106635624054719757146265792002763362144864723974663846550955187224708650693367282579937424873010247297103721909255988504095129494007387239302220797307592486224093481366024489631301628527289764356575094619481752384127997337519152118887599830228787063169723979354166692828061991228581817242885934028013126530764929575463827226739452309379048273870243843535975901754771997520567779491358450577295332098740198947991275737724505561638460877332813090078514719994774510061427807821528029097961470800638282720020404982720326638746038604312041612036149530285210526598684442095132845040131494256422124146383579746370758944299232886790007158117496345595569474845267556468369752681004651470711538298026189278989007821927222709881684882453050300543588624540351966540947743510128955151018342306195058726676696261919714857943581793371849015157782753843976984727605666238752282612757953347813420469781660760173061782464576428010067278108698175329439367025199355929727046604177130950180886975749437307457277165966897553921010658547933836295641044899822331980592470343615470238332961802831787787674414408792233585723411579183193807797588543722481190600807739896838281149935737556596907931494502115456047402418890172915099502808387874209140537002126984329295671325374616822491819487917534325626536491349393657923433815019392656849286556656122258311835198704717762623668857343181864949206167388030566827705563282657008874226014305370304255797615772996478704828265721391590277069173262464888676337834478158483216057779732687515374301712905126101171191848365213322441234505386351691339546048489245919416721173420095442664524668737415957352693457495525799064701532630862070807472775508762342909769888335083657151608268442621739617271744577882410063113227395026595693668467876307028010351260368298985611377148362863813402299850014361926510706536975413327699788427757659258840881992805557250235436524926355394334114220636556812379876573181550625825383521972338692867784409322854432788978125615176403196935306083930596482273773020290882915950292220316595789454763044582248304173250090658702512581917410037541902962129858253453474809555259799662040721654925306622134908122365071535267731915501790316713927022381404575479935870069855680769700670008532568722006273098635403494330287691294311833014585039766804881253209055777030718958812543073756141202799287131921169113334904577178117040638923658072137845408768937978070377867377029726391947197918436289647648528053835383374532353504085894979544870475518370806236525559021351909448241410722429990914416921374677617284245240245556426427929673775551630881686740515807887526524703500335749965856547777069250454401733786416023721335957709491052036013166448235229772619123632764327753330658479817661928071380028520137756329224474493968845251947678796016103885502954196585566884515230375122979767211423077806792869460894492771236365790747181424966492203166637788989187052788640503359814575782449103847310245517090051230208727195300877656263198483056769120104073590936228328451017481543499954210076617298506310830938101069578830634120802563596053929827013820827318177145544212859636903117166030716202391649544705428536290627033417213842491535854742955104744507785766737505000524503361974263321907624031332247570686061954964052326355519295343345278534413764212229541511439649593015925133824971216402370099714806231902838219838353198813487728995421298488173669465044591666183266583953927740812809485305951853811399567727417557058331654228051940920252921427923472548674840282941984909946456487445909234960191166491990094618116849974526617081896478816923937847428722697844336530483097742115872626430210662258510749295699068104585629663890069660009628083951314813650425859480327469025439675425721834198567118609958437416198225286115282985769183067116534969995979584418833832525226887939884732294712271882724063044203398135647299549201029790269421820278340700759016631990489362857103615462970928439048154501531166538335986448918514842669633515922908339917478759748500216151134109105151694276698958972795921270088216046758884528498139563295619189281693230293805962523657488834511596962098957213925862008340219192036135071554219646988832139486203983141498936402934125943743271003393422805498976746804948748976954333061570530840994771657985177992164977145594566372619094274320778918809906183909772765524636441001242180683264585097540025587814538449864579917852813400714220560938318136094615748708416866488208893439613305722932963447800233303438928009094755541478009725418048292056109153433579181474903245447622012239240429970755881175105229726252467320617838876674228462527448059865886934561926280577340837238825273876320625626387510958396604904356060484054414686985479793161645848386924849122321814617856316037565868678642886620902683073990016046873898731961090765664478647191324726514216128328133898106159105210921819955685950004855938617237201198141088726767667303675378945486569931051134889816902374957137814704645374279332752426485266333365222563730500227313852779888895419031248075159382078109756920471693497497205320953904746216681559349471157978037235489241085034416339509978821854702120061462936434716730360680526594896751365862415967747670963407945518893182813981618041834655472002104859476323708728526380863361344254618491069725128025429599013547305736992055459391494387830088531712843509172602110945608429447208786972868959796493572854118991602217861969289066195579688262893004207334468157744355313392809988474828597665471515982966219337116335622378892147541427987417354566331326081953049671264490261637852565988677765272560891795198265568665003192126960165557858943548093447512684157686414942805935429065774834685188454057165016377410130460649982935617976435985745089015400101764771998353767190466725446718254444357132289850680767677801253899179056224977531758037651997502206974211140227901495679994561673516765874013398236313338626586240197691326650192154002732313976128848481186254813758304536427419258632621092018681534132157711197425383531709882867030540910715125019956853405336423825810021811179640921690283173938651643741222215004361756084524462623014276920206419750741200658615229108370231190287189410758261027962079492378487924702093669402886655144551113440593723705557233273890497392142068348375334940938669431020045922341698804406353399979344066236001248635399807097760064594334686043287248797642374593055011471671118767178721042951603010031070397539927911502771576607808205939288658564975225081359455479072621777052196492717698333055380170522462151886534863506405988209644252866191145299819300437015108511056656932616074866672555234531515738550000711365440924761852570335176346240976672227854907441161726471294039039215769736846342038276312829882737151732203988622217426151253109537108844997228332916147683632229620224872102023787599675817337431182384089098642466605060099015839414766785991176742163429948399881880173651501587977391088078980481297533753454480171439869014345134048297603034568702462662743453032243339241400795361787159833132872758719341169663604249184107331527540938320578313599551264808227157640101955993423622253039537818694477278140661373181564830146221789218138474188048310686086661140830779906915656238477764698145330442377444753196356545358299627535553616057252682919113205556976842250872425889888226192338036952336755238056390197438459216865550136912449128651748865300835331183082355238783267434451851521959239522164597462309050158598631492258151598722086523275552538474751090355984794604743527257474787398100692156513928104851685363001553806483911626745738879131999670857529291566285583301750340228991021710505186687474437488060607778512307291359632374445537184312946912263730005120494458046085697843096386789886427383211393523682617369423758625414713937753451515838351277331342830152389896803766593726610128040389403392254301998588356031117574070397110299053743666622050426635805540115076795028353456991482185106847077813707211110120674000961765782167478253650005522620597695672851226594954661289143436639413219814369746894970208828652922590381106065095608154812996664502113292778282408060260529038069849947988431250995688424854765659799953890975893171317734312283211147146758016392128538757170627022304336150574886071320392626019193406359248554067678301627224494738318745694297402971954239018816976189328502428410629415982346791959314624208897885390740712774549734293009427761418664641652489412770015915669697608436705553355679086818820699386386872155369084067375112505780147961767799738042109689248638786118851462715042316113813446916876745409973087959713708129097899326048788355609348726037086422372556868700538453139682673445275636109485975363271226804551122744745364467670882993695422409392263298646341894237180819732935097840710806797976864803838910112193703764001603661266038391924720214576416814417659726858698304484372880808662680322408188517713569979039565883976582189807337657407673431547919087975336097345610434735253092089629306301201466269778324310980104189002888989587520180910898941137866371646863023846787292023647826632872230983228007204346023332604654801971250775908446171021132267375702599195961421217107954243763053960294966338792693145645283487307492116941664166016630471625447944688598747838371433176620792780043034092736392482729459582708800609039096140509458652865750019773893531743758293208085515591593730728644331915351606729701326969004455163110320066733724531649551855449187322632539380898525829946081022038952121029455907202051908310922674042961401609320418805481306545298285958009123757201485558160477735339855214633427214869674499797179861578016603863535595850402157731789035203809270806144488408722912998382214006847736179674232054803032880515976995600378722605614363644009196071343262639427280633339061753265940930338687162732021012428249543234806170146555150967343967348110360216376744274788389426055855201870948613331759548135443634330814812391497103180394970228279809543100340306645162172029478957108173596193462868751301444340906920762074238946192103557118526000215850250471341322660228968313537076020365549943699294857544036956559452984611188779993718061913962398733508741018107667199054634254905253004410892301207634623709040959274406707442390412699567832070988873152922294272760973409937371700756567829632734765998453579558929498350804339098145265528477065583667850314620668427469790140898835133068539083132622963895596805319979279725905321139654165606655108008375214435852073703316372008809061503189117270912456067416869031704372875447740044625201267418787038838301863110541586489335793872939889571016490249767892684808001077673506587198103569339838722693797087528552447287116369687811140606301509728564528836255989308373504213951466040504417276728234216985333620759338994134373337232068110905058909788038339283089005677151411933278434465551502775853942141761962765557678035250992594827317060342733801530725243014940745385743971965307740397901768674728783269936891155136955756306956840546677695888808389768596462564986668190617965134796176564415810175454729426054260622388989721036069232138548177588784185925939888389173221190074729781185153449998137611952281756067067161504430157009552020168451871705265441590439543127394276879370239479392876979749314273041826583794931632140131288622407827848951577497394863432029993468678329314543338339138815593858496374672105218367895895830630153562075917903920092923533258118720104304605079642200931622072153034739941046119022260177817328532266061219893128421590582449908854468335096276782819883688468282652286915664951713729018209808802784520561683891952361029609671410062171291036633428938743449212160786494196942893039953690652938967648894693955563511746315223790445149266853207880229937614283682772878431625765695485137464083586767216009450497307527741324383814300856497984479083552665776983098142740300217761460785994701816064370360931379076672886738243952154340027548690327865534194523832881534446561914310498526615183790260966815303868732243494252688863212639764998947342363159983150536631990895964754739300936453366082515032139796173614650716290951521634297102922399932293891129972624402994951260461897508719162831233552888993557726363050896898936751360983844614127815185606434426861124242668358268561908488286930514423248431963173521922962941839540733854103798775391631078977714947161764876785236940042807440376988614957291559292785574901206325519446754468924039150992137561811077894521088843946917141885882672723356130483631874622904601493702705833439743036862756157061333734853624352728145004465482180249540807873810254055897555977320168517463072262059283923608469464116702816614592757657131309088169789101284932462643342882992897979415657391536208939160996496290169444109023070192005627318186084795588312887594912036316226547062996518973341047796246002692150263370700460656099732318451535610152190489217484574672038920997589780829690223430024198616002111783158483918484986526231789784704913966771746386331594112332359254931928662127320191761857305911369886913750380610226286109943473931239615790240912743830332192734990433343354089778887219548631869222448227409075731361350165944150897793998086456362876646466349246882212739668782574281050834725033235609013759597417714866676811851068656339950562639772148835388068106731101135768381024144180993466418734412352737929302062026306012780848991014582691422702284937228361942802007885827475284766579665665031241947589531508649630068637026147445170447241599853230925624756624837812893623854980629704117514021473944849988510059580182136065899868272940240674223296153332466112934100319155893201751855437830739868991649183515622278183579659709142881999837718396545337705737241919962661593976785001598797770932991016607365412502023651212232946084976697539660927870003774742077780462274447019244408518601824549961949332067920387108048619933651059609952402283218482889447857422412172161015099941403219848476756657400302351941046245181227720529975671853810075981604293699866497261713511239923005990637776090280930712515926216961679381976960296830001513714086984746087479999188270672644823535338127384021333068351143921636101510711459883003036308345677774616500044847668487096864156309998792084163539819131976446988948522532572950399498359484756973698270699087310219124128551789620380862163993433620150898361197952998042821915589927700696920535645426823588433340407553371043723126288844806014671970306719973431401482903933457885743558175557013080505855114028083286186245002310654059534891964399585135893599265382882330969402852208065827664206147939686642324935013930317747957791646833805728869477051881395470321472319894981955535475954705572824610231211481000341232968272866687955531820471332665615842821340907010940427833123558834047895458724665935990970181263548982962918787161039723672636117439803178189654028024689624257534125359847746077888445364751807018067237609487505807609137238041969533048710461730189842721064265036246029730691441765428892461020893830763275348531818649146717027726368386216321892836561694105834984227445235348596458115958652975628394011750820562704847601418205697672166743938707757410933139910905319296863268377996836360349893733359360807381905489714424358557585114129576736802498759370744202249855122886210310420259576072199645334124457143679793363125634714076151625731738375226067414038431605093671650778532821387514967753676606840377806295747111227379284187572420641993739651517611178584364024483459816262967670608333641693482562362501501982374319770733465334328420021288286922926335408948198202968528931251936636786225917555035741731555696085629207575722955431336850439386333941638481097779059900929127778342874804936336792293990106820780461701349310116264878742019348292954565511766497773263220415533644403608304279266393392633854399110559724844200084386634466914772543191517521970001630354015074842640555660963935266922876360546874609638531516989041211337020647099386772524008160422957939725995361022784066058043940947964976131273233319794122603293397621128401565539920412669630725161275910955253606524495378131638636016883969664052452138304753988234052825740507236065779469228250985610764061758770302263685045043010631922971235155253604723286466815694437070498839668455893535177501105542821609465313594433741431552161984693874353547111067311155515096346502531861428386388097058565615512250848201017236753099477099817929905445710329493832709571832401390390928835929897530768468856832656709675866245821944220891593105555139339439183325233597082933046425351835638426656463146567130195749165428203338225640620902452162529244403665128184180985607803314476812320084399311981206178281215252071936806404806107725079793359515204499602055282841181249236265808847653488596909813603794045821083568615966527326601281338107692696014807857480882605945922669760740521005533609316521781740587775280317442591904478006341280945425180195827013924498286266363455793723560487293827410456696364297241854780695311837713164642161964290500735607234780509801218901806241357006419243510269111462419193724376384713754252467913209810716540957600501878282400295386043509561440029368982109241112457971548948633132923609156990969796174008800341055727568525997464973992524316548463340880765927387294401897233082304938900878502778081315811951433237187334839283996216824760049675316552460900587372375749483284781523492377691005572967642987594778051873278490195705801996399517207992015446139796806380542052311461656734601816344563659366806629850938503140542380215308823283393390680633186871954835907845294879339446042220398892060634903781067853981927567791222304395537222002988748649441578448119361027404654603522605621706855403841264541541975611489812610588295059312996511714803330549895038181104985667908745528188018971447009204820900430438963942380936687441866809131829081225135028879553568304330970336809321965132129470711298374515339935570320212621052920261002119557128730929548612388920820966352334241780971866097926986741242036085164415958861247663398735527264783434815751525110120874545953649533120793657608725037383032956936254179693335759467870064588082717063259815573462119258344530372799470131230446901570025695824743542801855783003392976413726773209629395801236090627988749640116867409636790256458388370492255135678682268610001464426684029374182815852500956829445661896402942201661865098741378112103180415681912749065216103725795345847779629443832498745480828308732755257875364435333020385865639913039437504164049228133721635699476364022288467228102059691381432925271187464566926857183357463269750259934491677518473611773053461946862070285514938325675483446664291257548740137436095731261443832416751418524174699220060986426856844656086329032092608289847649007396494692233779915044511860503231177602503967927928894009703425548920245720963961146793737716989117440846962450560965083367148240613729855986785146902085900932994797040500485881840566471429793027269274374603718338324155611108504759460390440164358872057979315845242563856781133332385773249220043149541662911496767575977146709966193301387729318664538723686291168652059334447555368899613796323500196129282185696960105443007799762173507839851113256008164657558374825408845639642485931716612754674622809856852542477484008519274520386847340344139314990947034935083215950841419064659816183117885497283040498710626293950288185142011216692295669290071350088626018361976280185384452039654415210494545107119948781106200468066123680165146179674688769610225437039103118649406003102730038487962957544583690078076061693863687284676662842676807496246061533031837316561550324195953578016681292125496313383204605062995363712334554008212491268484374904035841832131246402683986875933937561344439834767109903988255356394099030830265878841294419454404925329683057960208719210815678143995079830854019747542260779350424765992610244157018602043915951841609245661696322640007940270670905583988432769968457042152887632816288688723675326545435128048051455110012663070525030308846647413305282750972631344433598066452329011376077979842648983385092289296369485031505811079322589187885733470230279800452943050786402748420581320194680295680495320842324510864891765672952427290654277396098389645031093751966380680019037635523260638749076069395154860190076057562612693089696022731911845007085477056435148595206865508903991926033575179162372665162784537778536548411175880889054652006417851864870992073451289028419208184555001455977526097496327934883788762646409611924198053991613036843696728074657538324894081446253424737329024601716296354208786951857710995401362228390589761905883603210959740184947487556926374091591937158116223057940281091911083760698174412628366227129912384066870746532292045547053774769033487542188564445062414989574112394116268735299053664363983666860490593148593505616008916888604595230413451491083364409017657876506483561800821080252240207902505969689758318483146151267029857904735803337415893333652710932990155259606573687949565634871034713984860047159901972241447789792446746021152975108089813487008096561713797728439802793449284257217874654582262285598009153430898118846057966776110551280799173388107956652603244893705469876370884580267665449957630074300508790891063846585157969605157042791744700485926109181381926585123648034834000411527766182476425354161093663339513784630780794467194686882212061042513366020323460803083983349930862774624869166802150438662428435854911138669578802964461341091318900041870164403003717627255690353940648194594296813902583207147311261206538236287916063294624955901420850617482419691514249694173364654121467333128298263779625085952395877304315536008558301878391364641316472951788193644765624927318727382681946107490451937292940023991694853385373249696527677093577440688391750816885244779160054774120048194070556965200843298502676291336456881056386684049117933530671670908778703711568221594917410243684942439799882903687703063136458984630339734410233016919119209174388474855181938365849561833451223415799769964870631055542679278717864842905112735664551178650046494226405673691807480685050420930523267845548057000547817363169792796288711782147827361070439440521598416670524222688344863849396648392570064616498911714721237827065337734010162229321331015436121014375925244658467611659702593255908215291470753453538098311349618739547518536557686566850512379603120655901340052302710310970543710751695470873666503604842877428976391206518374785308295616372052751261466812446481655439327610190785992728791077588178795191491226400004206504091212019570540400872128016165462187242115241132150768451667283415609361943389497602369242606656383649328765160722895980999288208364237812936064989756849212557062404289755409848856883804209413286696600283938184939520505593176264099607225005665006142086096541970656981082206893783988315750863781803676976745249594511867531844095789746322901625269323934198168094020841207400241579319285234564999468008201736406623351359209223933815193537885559325513775239314519246215397627836996635934879691323443588903648553134216856871521500539524509047469806692049914379436798008161545813896057409523074412179704424860322593605268974190424922390177588681225062456774813598346140920586075262591757429958630778975951605255170157819868994778131992556167888331238370227163776599114734859002410125285002759042887513700350724064322691223321463923752226734939034815399597905886137627180535332489112311263385828272913715389858485769764693315367515794330483272386491734282151781540405650914426443055807240662638600558288404191827665928659967540740531237607695363736936654093880784993066444357731848557973624763067827192194961403371037263888215939869462014162921735971913246933495589867153412234756967841705353179615723342809376579731609819640844374349901097551576414392758697583481741385808175789612647344950971564517781729120259065294116280016447934762009969889033018051072486701070255199775229481065610370209443350940112305284713443962520264746009343666984222490770531282682090989835854061425514046624290334521591079865907699844921227142505142949880944814973197355863604578602674467228574763977721617589386182332688926090307179797013471289080166774676150825714003019549089752715878558997436039556962347474679685940525139928876075027391817371888773721662185995076267016194787136885804582903874471460293170121715923467450014681365901730740483790122461031994619860290893566913467132748301416114048782099312681744545355473888760023228137503809085638534793360889966520623548498264998472282581722573213311276313600803973622460391110795949920090149174310360990633440696331709509907212645130960806966826527526041453872069419970691118917330200165102135702810113767290514441586560205389397620615372832594553820341517460378302633137961264496837449809697364177159952541575983945053359100787482403228836134669678685290354984037693440151393510952148250654315061188869589155845335825765346079817937986930294198097513940573116680838265646865407779710300925305897688504341737341094343620020845751464258112126713266133410328681272647102681989573441598204927677448449635041681145245759432986644558372859484543503012209959626049443068552498106342825443734193681547110757964944648976656908879636016681147523563722307657985284644276911552401727127087455421179708139006227898265507396806793468905952282026663352741932236455961420165780768033248410643422224991857697333083054806550252196745574159042653687833462132992161825119467123399845647634432420177398713782482003627179830299641244371706875410536321630169063812469334905406696321209810466530637057582214835943837080959910131046513290774045905717247654517799557176564981199798887440258520936897194156838924020858227746981886929198691213973358333762860515788407956020683859433823294764226045475985695890389751632783477583427737879358202921990224596703128285397217472868235346876207920220331128640927409275854548260987849008374088957968843820479778380770250889056911088262779560456763568170650060336867415708076558410179469166180427102854005548005626811272792094593771336777934278407302593524668970402794908285539081189822649308366478952992350808942316461562272267530631710820015828349598031559110747614200893808935573326028934629613931740754025768755097301106262125513686166409275670043909543935324744878258587186883671101383825204488368442248303482511005524256576481771800683672368898694423626824325181016215166607825797320653302197609417090376440147431589424998002782744021738343639972804004638997977019891280278865103589772119300371538578229376246270352692687222143486727533987126676321975094490919851212992983061573178924755722394936252086032780875443738574979105474837678832439494353329348318617257072947470278538403031379600147189660889817275544429522900114229718873409481510495081281871883096339088048305487601992611950177070310885514525839699698460143950177886078196316496812956770863646706615718361807806880376934279873112542679094660077927101262470335160455038540819728491315949765922706106180714358383027332758495549700830899880257110733779830930385619833096506692466765603668166876277621629877315894370614125173774572653335992521420672334052063933381107971268907228285386058396519193947016177804920554275584077018033646533605593465431503539186938400314207057358370948542896525518710469635778864837609564600494914462352918511265941361670199320843867242412183458873214518174295444943672955534847211341950480924657314458145374189430338964816816190989701953203318140017697753949455139902636203035732321844517764092235838939412352298776695660690069350258609179915562470136949920756885992946701123116979603427760491450011802270710273490343894486063768471635941799970059025690359359931525531457521837559825602775911141918423541683732731110566396738623024620176170998992331840207545034793280989355011533251058341447660603606754977017786006055726898380941465766184594516076578546233726606578133075180978052868006107713191620686282351871626656617353325604503995431175090298274428218956959048204753531225492953894650838637990007644371018442409883060501579649978946366072201032437428307592103142202106765772186915165273921868906398797591936589783594820197396492900058694426033294422828626279363777687970049900328055919885908347583386855882208491453876101172665623382435582764204199676870360615834949904327762365024651561294159208041731265126297859027161976970304186992914118001934300111028955149945838739819863123654825713698719481322607587773471733220029536797677689075483318916304242566116409338908600014218842949680489209534039278595513360485823175598901498011640210931971459788932717690505178726724606511740707644311389300456110560962723541167677779098346271509957651911623872271189915330828242317810288506348230273674493068445749269665613437493581540199776435149926815830329383698648795832977226795773080732266882919682739765665775247895380468910834073619829127647783521202075408815783135829132650120826643727706273874313464895756209782214298711009373084612913835374683968178261072458894760957540324891858468103185198949772213323899660186928340377550882235574430825524382456122142507295793369881802027761860021691460575634507085543127744888866006638926260389271794601771530933829388001860306427154713079917246170798042100708742005769079549285355515343032496455036106712159262398568555060600119664465203446232762349475348452487291520093318888296007774252799603578608146950245218107353791195743182773842460812197783349382224943302899519222876192529170953523877040833796299324433863678002612226016862230803771843884835619786786854649829062484240160362684540324044665783390732694420095205038151786254414243506515915726286200925326434588448938226615480171367778002271384689257285595957386517347927359902336110639507737286509368861868437456006239647889579003857971900406843626497661530862455589112820691666527608053373717174471562889076389953656855962412703381869885147471509052490317845485181546800102005257784888905470914681119388683453532886807321828566250288456869228100566371038788890995157475894599494140038930894092067852323935674238962001316389923446513655378029150699195876791217934626589470603119540371449865790128957069110168546378505295247417768644795648971073459491195296282053426521877439326074854181141286570504145823658387637765819577730229724913940647268171578759042348317442330220256157388657124336534495648443315965808860791630033981056419055316835153662798898888105200003592544838514649234433482970824336865383716756543359209002659285504637264800655563308337549105675738982885285846925519301053640924867717865931268499985262870715781871004083028475853189221326114748499737459430077909791377306996528404209725782055175478606480288733664187307174150843961835460345135507515944150289647287408478717807591051945347508009107238474199053113412842351907782600800563232513105151466778823188616451970899683978482884314140768931911045080003987753081076212860467257915495878164073000953884564165948612430619292311541154005117711923189615728253494953313278433719123175271029830963334088782868313422740603175934870875138658365367169934121390892759109215196971333490511253325641967872783423196490622560944612904683674689935535584294474021053304538069320419694436383137503929084434248863421501705018846983586132982639487472367975326825284806358727330438251457582080408684193420391876628275025127542055278460996681192528226216421289703681476539544133956826215015312214246023732167595149730427969775798122355349365668875579047847400066068331985291206717759640703718871538667952302760593395653590006320835922251524159329583057290921868016557014037089462332499126426517878224634185873781215094491093865177565006835391105997100909186603771203614801632914024175604437710895329266312282760074234906032320938204376322609506552437323444509670977194040198777806056665829928282291745057739555094805611072052215194230753936185691463108960801538783806230039236811985704918431165770042335743106589348017540802160483848926442871634970329439518458561943518411129517593969745586109598737737608237156946366001930093337611190656709213937528413275929597785194758115595868844757767447129075504268959930472119118420339359785206913687318863168495156689196561065494053724830467799601615650740528032850683330416891615400287945900250438335442949615240961740892408653888001991462979447927288788899223584231525157699232164802626658322502133884807174293436014121772280877638964742276092803350289706119628294889492216651708334456237883651137929286762049069668411488638814554046426345755088519784364577189927030737836732591064561127699509516201112125968663394236606381947399358235783935435652055254104201912478867678078965017300479152551470054074190455598442364793396603745316877986244915239724090533759426089319234666593699141689747712049987997854608655768816386362477477569093445691732066427040229680591046639095753319195778201299040428513412355406899997626058847638180184401926582345106798779506112858599496449217534676048792461644823648968742947998968880617780973801985413837478185983146307028943234289625616197114883143255851121837783838206716611881608193969980995861306178690965742262674274186768628832903955087217383536232953369927266165314555133694367868734451339813912852059128601094654650984250794833847280636929026084477226143710011177140639528846872670778540640960414941062636890844564287119986962993333458846278051570958767123455680577519884831723481276262512973457868221403795928283096029421082721273768287216632555653933570487866555654879825177426301619859764557976492671964731606058330743836173872215433964523784459778480325351302349397114193308888134494836266281106030100216208196654446248993663804178360477347527819895173187150417500599389888150887514256011781558066071684272400772640858509735429029240955453522226559110962223856793075566513818406838725942148397779997960608307862103393666569357691818166343797543337555052130487959577520340251322561114295165317075724105715616605870941029260258298602432060242952856594216645788007668766529832171599845630099295913537702793409250615504336812163309604126345151638259085693117099509570949201106358433901448632005005558030993442344947222166322304061924783122783537725458215367265539506993510151014917789692683524229784942438925727293344655455747690501246880411611467126902559754798108367803278760604099767708719568498007771299605073283577583464674995941041851892269719097833495511740273743782734510279676599799651405608965164836646189047039501659871820189802139407811810724708634779380613182766901177221057593968076322439844715448482748584917971245861605033131239566268217859686568221048555244047338054679186149265428187337960298538050067979986028832925589953504633709090391876006746752553854520051928346206349300113786887204608417057498082517338682271754850747870123979355829721182213523307421433876871391200552924344527725560393496397161428964983442558588277464972150371433284540695129457321985491845763403713779838709488564890364599151880198874749773294856017026657148886810320698820890059622867178319034231105845215379250966277517554968465852253318034390181035613131360781002060201043564827154969706138399946572415164877587172994180595010827534354901884537482042531126839404488465464511866583624310316533966119941899438862674026052724237759738527606088318585867826601399792589583848145197263807605759004834231821904246741757982071203168147338211898399458913802307360933690471797548342645839064795265168336058812142699979348344143871198185463605686614843793050001726704375485155462356940425752985188359739957970225650859394064440811713929425398911279137155586581900922158311401646642266261957975504304710491042309932371716989568930171032627971607533709354049172832765706107706920459327930441843198652915152115443611750440034533823803624936288877168429485461337313466031546158993470083347816438063420683916748070308774264042274869615157026653822770335732557501953621301733792532316189066484068330827708663683965006874628318589178226161574973820574312049263489008590140626102040856360777252621526092647859105866934473780787417136591619695515121026176778242315854285940252369869082070617617239928613687495125094623559495201746986977441723970269844505479236430364781998989069365021387501790411932553944317862592321967400719666772256454136419852027132032855311833969316922151249441593023711637415010194406878088208954152769446760624505289777816827035886460933561821632823846440666630419096981976679750355108082501881588965330457004052504819323964415571704898437791702912941179436631699117060034971914224262563767422035527539672840814521957055543264940880732486365937265534759280047054412915452588705894271209962412266544556369290484873038670848468805526348621689857819400430156868016931723543251702246007841681967062685002178212353873157930516233026315569709836411267813367820610535673204189795132351713112244478748072620155914819322722124600890984555717006201858152546932437557119528482703454958158097407418753074998478061299271053016794679141326524874414288528576346339730748861780037602471256453711323176045751264212904474723012494662384605914925488940700742811253354705525807681652743249104819253927268481293585179995984115502136229235756598218080203376644166474715951171273229080571156146742422548630496118624958422456676591993644700134328670202760614575579157774525330190610293705069713305970043574063937472724901468016173341285112781140700366992076399230397991210261315926048092993089155031260357424773725681581863318894835818616151517278540065151569240178978376625242433311589339758140790850314200927754482668915773196248912130363915732858016773452785406079141402181762847066720353858477009353854960321388745616571369199927350166196543069239403791518235868479798968748779884766848670671597984696020824464316558829324229150369754602516029843458795714192275937410795873276197626697261707779238239428747596053109103188665796112109118065694716685914388790213244043268397740892185560773959765629462985193869665842072631123761743181639932280080035225305183716805253564309699551654645762668921365552750008114158026227156088352981982965069159766807614710876609513743703493894466092841046962792497328665545149762417439924968529936564558147040140513419888353021542213262833046698669158363456237274284702275644260403072547427003914974591132566526582662899778249179084220836534632154030780276105771086363283672388650163322885648456750578685057596347624568947581767427293198004847768731332745420181491412326314256216951900978478633964151829109172041491532015911153546394369113609356584349328402911866251724439284815798100045830977118779734693269303642878200532584561463288338132327293321937558054624745342367248811187826778326772774510634151007033355112511803721519574085273173029519332608018346410613635314913311235918948561457983522337897928312463001254321679529499339540199303995042561996569115724501923506844123441679619976446848514475299922402879590839906958439292505337145592012556965119785748622948473385322006816811233723656863212370404494835519329920989049096647393721334649279327963270862923611112266754196213463502880782879476686783852263352381497920716629116575011950587863494790262192690284790391139873867695234247921793359149568041348958170502304065852023583046287177977395570480683985654564145423757772463638969913709997791489876650467020846815613324150892862218022682064245911220130332804649014311774158472288878432483137452608708289520943821204833018718248892968923148205586212905693482128289705818830808259433505550927312376385342574835226944571934929990006866633135289308696510978736229856745087730509759828576378319670993700644543278690866249339108445977746671658596352321360247937445382458996031477778815864543255844863405177658895748511028130692478005775050278073419728063563774079505546669945336631642050807173465296945822777546015705065234543996151358033682810310626131514476851054315164780251741126543446781305977271063286596304424482861021570654736182252276893291998518729027327815565313764347443970317557420911996862301540685402663925224682949262578631022765203774764090824040565384138447652503518315040480488278983394906934395788894039461090210094643852774256675602183445902481278310919547980399094798802192568580079611016947891111541289459144823259753566884615418414579433136940821667278790176404039560692269955686252194131268273858205845410950060835949207092230412781793093905583455875821116588116850191317306817269538753253124884210725918133431280209984062269991738079382731896522638527464072193079194622753754957201696192641250654949209210268484478278408572827395399847435249092180730629883577501588735461910527695737895485149946422289261434624517055079453396759292042805662388671905182106169239035952435235262810696613947115001361147103649360994805584818582169543984402601996277455521714785342217915581898595532393340649952648434702491186314050152082095156838968399702197089687048582310228011924316739468473765321141197987970330283490729816359409091468124215128848587012801488572838113525040546366109141383490333131347216021310390021854325310272502895517933798503502314705496237026558925356579188608502739358513209464387011190120746619159354277517885122491146478282988871536507846777525587484647442589297873630359134108621185221811180338414993177470220178238510785928412221355518290781382987972046626595849840801677349597731249952689807125652136024635457233279755527154402016005560968972522792740489773877827416358861761738459144871210690217405047496884640999386505746513300012416155850941151851702291414650493034439585829114741957158014926830535779350354449183993165444484622920797228180821051828375168934547535741449430568571403315340427008706776350996458701553497990051137693729608266475962402793067263801295857060941381378112354386149183915021204962486131239154606029207660319662046748452985271389430276439504520906646207223436346174163286263541660159641811740262162657245310671115440665674305339756353352431589670048588183376521595195315922240926873968616245811051434812863843715907226634539920216068685955814681643039634952218015117935950326707062945983716123801633465725092189643422287573666237647070382321578579541721615394250009286054797626445527430694707307669380987111627804479031193161475068546036267635654613109630159426386397582275781793712791354746478121237565724735699293987870498263894295975685888003323276396999646480711712862206663517900916578374818722192485411367504207061599370341924498842066912432585875526188819939599373821822221604345724750458497951880935043205613670589589225417388111725419049698686810344092434291272323229172531577904590232467030695055884313983773109615726371377904124725177094602779933961936611740014180113230342025190529940640319583631933241231331588233153446472304340860480153084159606484838279742518033096042784643687341629131814936316500939095268749540570094319988634699837689063393888643418622372503557016508184746976668133172190879972727295824919814927964922024586476924508619098008702738616732624161174323867355064800107823193966214576889940237329566335288996836498732695507251591786277243841472407688184318672283325734350951803968060210592688344017492266178038677788033703315660453696217007118756722429748091354790952585169237487899393829076795080854146666519459395644841333396452006124798353947929534942753635143001299919849645579291083348096947212096182316627244015175249609141824751406914887352207444017086514510015197299247705599656340548298776482453738565499393951324207145043884158100745015685459319997494643106175799049181963578730525180576721867593533131338937117367880408351161557237626373732387593230823373075696717058990503134931268658077293555765217163585495727768200545493858362420974748838492647840810963385908738177750169894419034032513713077035790991907084260006536732592482310521227013385508923648869465657970568413176850920729174942818697467295322442034443013963475431623328721479891419137369224428343212285970770968474336958980143161496796965354378967807247892319397763035576597028813636044263001268505965552446415920106043038018513984780374006236936503951501671477433791070127768746810739105952450636612039046013833855048835451278377389091768327182315480407822093142280743181966777563400109253648762923079512720113464726033425863156147169161483763813745846627443138131469677289411931321738711200475231819469424901951819401387028026340847155096173770995946437153015410948513321678090895826563471131542602408202868789861415151212150568105428803246408031307406805910312957120706359914277980711919046242334766110339247210812383692887688153828892729788038372245935493587114570565318519398657498782920378964549175015304186968112607547574178445653689502762458396751563000855172500035367816861310849260091990633540378741542308721283547503378486000909782574358894190342398364157146354040006696579091974107113197145736622403929820233155479754050755944848282950157490148923178737809404639025379333904325123191966806965479109804105882443665588781765210137072566558981060862759578093340638968142486801165193301842504883858204787807687201384455646927794538375465651244402425399307504729869665303036773053648864673410092897282553852423904141115888369306617679078763984389748707257424231240879411385998851505026669682209553809014704504186055988444671857946502870440016908751880121787264083506050872475760412638243137931740056895120358611936703393654104166239115168349282998623204269135919557575594889674098747102130423365173682270486043096288501181572653979055144024962137073666339408052277343724804038250709392483259549740570337207523896258687906505994569619616499860142305802416424752467161982192420453971269127540110911140674056605561409614797673952007129305167329448005152518386283013063604380842706851693691986552741493121602304203752084768667723021812655097020235410200310272455816858886104332673724743933457900734474174104438654421327968418668289380950611713192198316066163845384838591842472287119164887319922447930209285096049986048698065067064369661953539274744597162854826290821331811849970977697095047710149651493765200511693996771139880367980167634714290806774882462868392193010481833160343845703227511670586044325866701962865697221272179090595008832079645317215273185149767263051605869736107878487121723944508913841536986559592708551132530076602106161279787250077942534697940776993835651764410407079644669130304302639956163329690867642705390268056866647631153849931701819214223789029251089237684763654366540980233415140910321317505546947942451377449073912295711315030024022953523574068498126610808505260227733393609077980154926342570569947444344694158161136467026386577657764872215344837793838752217335702652984349813558118704893326934862664418760361595111200064850294252323898099357152734938708145769740234548834127696459783937681683774922157261504974266080829925927502509281566140113366749904943541872764125051576340375023361096059460664742330731529801613245470938264243251028107616329473542517309077412590255901095050196152147854935379780926112910912050195975334771207939374765444563473276602254431285934112272326545632750316106066369947873600555393914761006801362609132386874134665683776836637983007119187336687765477547348091479111238125799748571350756696175114313968951054608625374908820054067502415882143033355058993933155942921654593416352145202123744896695386325811538761863964553786446790171884362885104874934402083819223941770319674977805116366371588965502007525872586471257991111386507744545802266543107318347955111377514856899512086870961569755112228274745245447957729555215330148679144863498734128163631033995151841772385652898080949276935294915675418212768429621292451849199957522067403699058359771989807421797455278558875402657272828594827969634682242573540531395830364059664545860414867950281276209895046300296467526166022780177691112571436233919786724688445825718638780515757565945813201314997689048307931581836015898435482482744609833493188669035798288665531805365955982185031989339708375423112363325791295560435511701367776003758890968372074672161632184551832636029858963917394164491760131275158690953628598218216255688583426631081150950658512571809282624442961212584410365308575421952746003824528907468709497377067195791892688136610794923771944277612402919744704209984200980907549431157993664656825373794076708871003143991230031737118482898251799079566362536160448057150337937090022618233011478439375927970065845449790643097744621356328096443884979946599662169230663096612748995642936605760327447076638969854307958491904061102703313470755795757205613673075672889032024662178788569444079876176864940621928432556884302625219348063581735768330805479198032663693201439805127984972063483330940443161069107940017591522419154754814989874899745135673014668010255370765681554709191771053805099600327063611479616344719559627428296470276452933528271057265465724401803386568632615234951860525819751282666005575215146362181387627734887790983252950826034118994310603056063363402373319716609716946169319269579513658975294640578973389456155014833123986882063882229596900799220968383906777672306406218093262109851423710076244100651771797492577761799815748867241807045085587242799209295439846140073216664309379512033672377829442730043771470368639962222124806023370628708770276890003143046423632612542171967153460143432823761607842566486318006103075219129667777921324739728676997170890855308392556392405811877236447228310938016861966250273884484821661104149021514129735835507608626212704027694405461179243226626399253187149441722657050925922054190438814308022424911699900290953784249453748711135595088394159098213447099247636179690748761218710373906981804933415113819631069774192012788933984776486605533356960664369731022908508652882397157109679620636538673334026125190624348020410878814101122536224664377150444541324158925920545853126248541232726823392685344803850953140197043994403597956280191426030018978011178161349004940553334857484381299489832645537872049046376036983503295227146438435883225366642370969131457387540355327275341214480623526970380528098233394581095152056748290293298527666696636323420815708273888150769739281511660200354632959042625302098967309516058867410135133413813305795051427662505910068960364883398542682015177523800316440517846870327530369808864823608701827741469728093936622554242975487052332572943744580466985631146379648583608091521544035909162765240485867338655728824524427350930867452051177547543790795774710002676712886645795479615530926936684910350387147658574111665731269155094498519648700701658285274393692174359466894652736571239409145941489663338290735870444268585743629701498160442239393954754862033633725103985617038844379450365065278466082598715514598249454709129234101483293920428646697075161533210422008513564198843523275607150793604425315850096942722740436622967060464777731325115962828534514661918755636508079205445103923313385971496503338601616067433884727851526063234519920279067842416995630930764066173858812905355753050016812294087369315070227599795928236994306895772270167963168321682076639658593304489502822962655370288122960101296844822980883341023963854559638193280685020716478017813881394042465159106463966557490150228294236243349684191753197715324872904768301714519563496583100291672412542981632678454537518127140100682103124220442582072317285700370618648888383137596215459744491474737719289715894551311243019004775387946899335510426070193862583922679567068462678305668001365802081509229633682687245943925580825971293579437134272481524454852636719396417685856198165597926512251626314017302388052737609812105875912943338471487248680009534354478462438935881845455027229830254349788491952578330879289902626493743608450729946377173257687296214725733821557315316102275879910149901857991487777005580203028752871478495558691479830538069128607751837787992516619056251788180835837067635644360544494163271960744040193592960994900309659439331197301724608595278506231600306738702221842746818439373350575500015711210847788021658601968889291632818601762154166533809753092396510361720510377577655479676288253592065173312182519558366370179736153624097974201228674461908792986036911579132669098528955977956481385553469936684784600331458197154624191352952736810309072887236333099418775589375731848841834324062943649357511789374884008814563005110810960793502296834452757230251868682278453854753643146967729238762035112180476464331137193798582402231132178843242932045790268511742904959349057916571061981638149784867345031265501409557479703367379546308806963723214395104097201769775510179697474389311331545395534487324190153040985185673307870971384575573593426301812451721404080490228789478164498338549022726255489563731853914156564566106422188032996308530509101767373170333375760683814593411926545292912179796634676795437676625892868191964346799899990701346934828814267821952438565221486261019855205184790581308068112854157329765448845642831002757040206549170437428389194354799989615349421057309345386292749962722572104747871476272562562558609197201125486063033949384642364957902908642599740285665965461712020587741267973651793793641939222479373822348902930378173653372673610415139583466669124781921426423511250742270580902501810479907793580060709309164044484973022151038561025160309661917540416350709796914204093391098387475866951202367480986572727315614927395450298325483980996932571839854072772430322504170838806269756792593535058526970967551526214004903734019429073055032577816774193922720744555825510746267995577134921361625840905164079860507353173193921074696284996821420662433931441845004334562652591015595927020347101896020609026364790298151661420694647709739833624318890195341535595611161769350830808278314680415369798175248859697772220405602335747847116597319317071193701981969334684218157131823468019559889288806921296380523244928851083878160918232022791452625357887859761363771174732821015377462182834148045257019553096166525020704294458113686249929128865017881833249425091569803146394211097559438802744776585774041512939146561549071544521290905523907093982706799078106468900003409036123938324078562281202372069660378669781699805610608987692353756742818803607152045272355131202210165821505984642299507275398571073870490868851978051393700312486158303159147260616435715460593365340474604943952548431810230928470356676907884556290681786356261001285014248438521612801704403857850559031867677336804532174876145747783101163255177383527665057508927326515322918886321158291675877955945558221079852773200304688029651216966962082102955556682160011442021458316436274293401771980327797733898451877604719930650922484478499948886936207415824400442665408489488200402941076195923334173357645208297691699170191486475328380879615181405410780401231880425102470437062826916447880539027592475755680955225216490284481051690457757556968507663641157256180955901602453505802227467618127928592256913494829873085597273159216539031217830126142560078335400233507858811596711192536561641259874822109611034962637832723537965076685953479660788890542463723446961414851326803310364927264143427772709923886768098054126646150024351735782731578364654697774061062071336587985918871444322246204704030687633922085019331007615035881095525085019294506838416935945170594719203911124970877652815751189743202860588210069223471034473363492062693054734764533835602439699092234881696395065354448842534943295018699865015783986380180288256817545857561742552045356932274676437984555526260790356974136670973677692481980341535486726006154058052588645482948517106329254885577932449678861064030511840521796400929993027393290191727537261832469073920283016863985871453327292169991949822891838067552137584787160807851110378194388439048884628725540738641651986962102370551585347772741268434107467874091015209631989134352044418583774745750349476182710996789201620869093726744261009000569449728869518163842887245534563398192341184665958446189742968896132213035354245739659929693524190837726859471681095274013780921022607536252929121379070379600168688427978160531028043175108690807083670970179030054261734139432083477942878355215647058978992717600962818055428067511811620957085164495371869374438615349112483750271242403598587412590205403496457069155849044411301863017461298958232354665706530365892581239060052980363179866895517269394290352234545154114446345615703710128613268897530326713214377354485582288943940043074734878811717144070894151263903504674574023657879286929560805743593303988721872745238603205072807502298534582337113070090468484167363748985885158369980281152238934046493540894147480484344622035548945487740663571439336248653555694964308583978006097518728018992557746080311972524293085480342745640207845387886166992487446165664258861585921616949524460552676102143623285709692865072055564127365537745265288592128952659290099946064651476884379048823976099226817231591005938202101641104477967314085198553594092312704619872830324763098085545654296329298978241156756970850235580320049670995630906459067755798716770687326778921385779406572734600313117623529337658211810314223049371162191936827073827519980476407345425955928583372500253983499263087733086174996254222139398923250567272884863141927729515804636932722223367212774287672343807782252836792763100417263791338497021933403151462184374494441713549597152418839215617630622387383251917423263110954111533503852456273468072346005407642785862517507193976726220829846401121362166216724986504440315889488680381358933085031099434073206578552074023462181381209436387446484081346247762077716373483639958044396342221652164179878985640722541840239679780027001382793637876284092960683203713057531324436785161478568449953480964931247067619463969681294300544414322906965620459650282125087960711207799794887759809851271262686863347504964775215572808634194615309015060031514688808485379403564003659418275039274753642759070443509427038680655504461670399846337848801507532323949947232632932920769279362325586995322137326280902882686571434348667847385647917694195891774096803992384079269372379472510447145648853426712756028415964865241024015035142284003742327733455364950656241826743517943281764062894085013429519199596850360896746666730855745101553626421294132145841358344003074751472556997075046828373437238103589841902728561272405433200957143876545869688797810417689640989588149109051178664375841635719657628479003983069277363456757774641434519517823048572925887805906665583350640582515283562617916904829319685237398217866252588917821207196651018952863429369419420040403588830564111573058237906737461130214151344431646298500262277060283644958562472564665002489132472773766422069919648490290504106424363882850793966223130927673024825571015705730547286209247939173511328657131610222417980230751704489025275429620817576445610172595834962037780762760500321567327445233009985082515291337354619918061002198632749488068507739014539413675925940710513602328645334943714048840374081257433326528269554666767191032690667701845420107344518030316794428235119336029349259354532166631437042843823190007562551422933435065147999589125080889459632255538561399822971583188003461914247857413989723940392602539729551675737806717812684225977639721713995600901600766492805013595256243554096608488753912432680004588087445929317399098815907134985417395283682907440231245279021656762623703045661104660310799158801116324006162947959436216134363269272270448934605842050585917803983817908409129874455861545182916601958350877468648544234633953786530792114038054167874269651223818911393448656652741354303421449935671815062937176179263870013087619113648278536158436148331827337415372361374244262483947089379390003614605136224403645884245778717286082435234863037862766322927460778414192985659088570695857319064254690053083040577933141347910029234013414336544716993203832512800253872155241218574947733211200826674693571493645798775976192572464739964285682477973576699259500114864983011034510839190921849218664260882264909527391865537606744165652622918983100126087843289044322271787795302563990463186686354021476730868463418847401970645404678797140290288864971956057551853942959072688233926663487343743565297832207802564720630494656164307366877180571732340665873685304314255977083607969624117465315194121497218611752685443722107022005472714883990610923662960561960835992962738351375776825222108974450011783868947417954494654342315446197204606949621292916627927152160582607050924239298405545919471541375412171159196909025032066421050310169938434471573032041611007626674328769717820133875207617851165510368764724716101275828566485578227839057537444461623475799836844387421045875304378517021092221659712882677022396223360243699580815017928494241449275234684267569483267959696242383369540975543800928049601085949196337649108259335055536470907836294855355311057241745314142390489436260261705546976083789291426436338181857894119812447092939660905513313201554821951873911310522458693495648596627657665353774776033536147722016962128825981382355650774009355219178900829181842251166341000676204727190508007754255715632630358894136558520916479557406922274361297544029805880760134407489451810505925787119857379100904236200027357504686392356766155133580151469981870290219447962677611719428789923669748805220798896974025449540948549669573368370629681775986315048953883965399942901128769910137547603966523701827483459927827622132679566678263771297105490589209725533006867038925003792664376478715812190037316194100964977968219965224101830377554639515657680396224404400050738520365781287973681334304016558646358427387265507304299881055588986469504485659297765843047205055320399785785574180178196330717356241945435427686633877274684652124311829424017553298277183363638809685412330668366678419551158284490759829062955152758332155719744892720670339751831770265882127828026121559277092244720055945947411409263571350840193028910661927839788956899175659730640945265630249522354915162971258526688033624266142297044994230913939955779860702214500990829841076434950635125293748558946390336363160638619160430543431310020505154008221661061689845639154360726875121955254638829241736787872568969053991074718921891713735967808561850913258675052974771003062454223762386694501405934914158763202801791287880463273238509927768186249319312691728707426461349940883584235694911628377278126944048579100541500507595381034190552440644641893529459424656081012036278348008903374080113897772617998314581012876128124864605191421218036023100917826160200201103122150185437711384069892824909332234211060625205563118113031182059912116382935742662725540778456377476276778485328867110951381688826858470667111492897055733653853271869187663641586618688238746909447822927089421262904270552228319674326128550567686538805660587190572659641969306767904189796819029780044119521814069601688403639815527545267221164288059407038167367189723306411415389097627643057607100338532544249681627476165143574926683353084331444586746528810093682519901884565495722223148613895604994056322095003201632515984249609521300412820427147342687582347243619705185989612871174435236182475084244494856323713073493479768548424233292817576622625916559212345219766029559247336170531485601203821726648400193721719420180545962400078998346353579740109119770495534623429376275109056582792123209825430982815550784428257809336235473684754973877801176370708067915620556594576729407940928720690618355829498770887654888944406649169893456135093267613226825174624967476322297728795309081660797014218677374894502343276303087892439142780623121082113976246824074363962712669329646006024379262113638671034609313825975144345430496056190819579022464547104885790586311950320678583904899298533316646785018094155185738007226313126569172436536312579660996316796358550541122548125316203758296614482892334718737244173963616144595692951343074960551373577029951080804237481992711974284222875903696432198084990492902868962346234504077812491037348896495578531378544962384500338898508147065855711799185855451398961200802811465167578821720981757555772800134141728567302179426131395432573157236599021884100608815581208200589314872603001164695920818840410100017245666308095484588680755842255729972935678745608031513469837291836534271040403447335369763880194383371530667842484092416003312999416744741051325593812705976063050734591714115538010051055168369104470189863093096958635705482559616955003137379928108442895214233521158457024951060401149521676446710081232888890686126443389155851639577274674597250554160374933286842033303543043098278979713674253188599423367859850229768729700747438226885862336657617708109182721545638705038883678484393923192721548095192766824519511110914030239878222918765318830778495911680628530061464357404482921306302781312216114849423933528284951818599706686967985060790199670213675709906156008254286478905379295104697292944265372292901551367036925112146721555691941756710590898884238775116420511704525476320452932621639069181116726342398417463324971554604496995649645022878786776354993217551731346476877365147869960707216713294296612298681863534099511182513401366529507308651503308951515552558566328910225538251497232160369169764225723713502221063507155129652997352970769990758505538935569114225160701050467328941727639561106475334673842431509784157942570426622891815195133634543951717459964184254471672500183627503947107007443295033254261726977625022892565004693887691731116558306970039928999301065758657433974320722927338313270323320218005436719648370195113085272650375743912499918109785246371354968743629436440868894290504615134904037635444010573491411850999309808462183068764622379711116691566014755191616165011906888201470287947409356291454137264294366814350115501303332706194399063198102841054242869760455981299292067827404393660188132822534069788196132687942145722030510667119404284507787445090922183730971679447518000520683051065294676078434451055844638856759768884139921579884181123243875930686500041908876719842649509410721845783544040109813157575067809365973160369654644214017133020670694888854262738052549652369444683040993383839942055474767251504214167767089940190438288085549054588369909443910749755215344428339870070289852469338461544317730208397894644605911511527525875666209291068493435505842270735724462254377733241310636341484514296099547130114862309135210414811049427534689566378053223819709185383761141736431933561578908512438598860693285763321834038426778077024383262851213865784055622967028010886958387369374519649640764255022646096070056188539527242897249907394181585427811746955318091064557081170568046279145792392091133357722402193059305116565942386534653941255515477713585832969967677458320639962291413520966006427297397561986733020635871931209418302533405174221684924224193016984574997444686959645235503180091818096302661948727627411292088624989273202797609110756222016741092472186165173865171829927649937833708317507377477007802465791744806606744939653867552572362263157495877323928171031358129444802793014372235381472184322726193160423268571922451042846922874725149990143904314017082345632875600853995958976153822571108819522889882834436738456819573120388322810805658003990362706755333544916016774083312708494679253562903301674871981861839671803718826223815408090216591809263965078233721225851022561236489371374856791993815737018897980840247231845744667412935577459021925698679201612118168733930557204102097233562327871893403902917984158234601946882441021433389812578443142253539667269695001959716910356297418845459524152055244604216663654695368436957120875460521552060492487216530886446206182410345871887347818746217129569566350385037876929873334159707017048364177173197809726634515701516498515148559972141842941032163741393318502418974313029599684172566289245214752343560955746618764013553824856670910683773596644428954131154627392110890167364723337712006062463766353527269507152677658853169785170872005907261297765665444774357400816134162005467641148348580808157424513481892967019811963753814534310238050362804121274037463329437462761754776994222521438335247125338549977176154595482133710823271703014834688079569374998917893278940759536500550211550729334011809022257244097211331324088115837261463975036630599281881345226483192792622341397839865274075548460909465479124284782676790175091391378376755612026415720720210243774157411773548125189152577984664359548210311852584197778914653983825470270927915436270537546910002757843244773794469532194604432934979579380958678894905240445454785903269103678404995372199505683214263595888563071826051800736730609665164156278324184750164086425449788803253507325092000375319455886876590127058720125346562860916949302037220247541647599018111742669362657552191979281833373006530750339883180731604282743955077238452259263690270563559098375543773400591356618818549642835230743473061161969291083523626253580845861486294321258667199553559720627845641181812130294499106493214164872966289474979981554985877506165709246166000176125447705097423998201520540027142310711597579260117682998757554262637893356444633044091466202607955854206022663446203519223966384367660129481816209889952798047171888552669792918233395626045223649129913126976877235514313138714447283222579489934722907166300443215871985950475789543597517639342648665449260392146074292671407393211689713683665697569189761428855331992257190492117566099117423476828715755816960940223005447501568991317517244780085392656674983584301620796671937507567413128361722084507410475164040208092420714129774845822453236928016275240140515935908589846851653652625001826134305777967020672862482558588686059826956809627210157032242292897122192770374972119297196219185604642492934470312618108342993995914374080136455646142920601034824088788282733015995852404965871935027904191057328243223659757804753892357923192044288685997511529491372665511461566745027935598468869326398402887907676415923471627070427851477146080446379868354296773690068478585119241968247606652377526889585145107211261118986596829539264716801280698022516188511209680189501000672886909590971198365824125219306244938105213609161141463702114269020896611149176682762259425485495863081758202560125570326883337022507524763544594269894873272059039712285193097621960266384535213428764823437330251667450113162715178169663576617886470508791183558289601719083669926835829630277543769169803997362457191221540186439098561465942771135277985671024491596440559955459625942141042176911400425503492734045556410879454582914740989895762765994663472282859467131500481950509808318740063731317178722565287457578751379097602650884949146613538216807053958595243328317473403300653443666137739974956599681690412106247098495449011626845538508759829023424784805576287981161488374009830433196318091288965913553330902383920281642972640589933190615312983257376525164228161410596104369480156436928480784618877123367428408302559339395949914785697856125378758170700531528837706485796117839208334374946033917886644092672718708557706613986094981833123484377539682670996036466960075338793047040352912021400368793533831106277140457443447109402964424443920872962768679316949592870597002079231345411689686596734536366444586886463966903621058706069100597124331173024710025386390060902917820041533576786978562937578019332387332360030780565696440154500584862869066288251507075271835458531777406527471336980766147283551283053341811261000792526616945379554437484733580883303442658220700300335919663759905548101997509963327115047748086732500445161516011222801944770600104124612106042941959514566845554509384836063313941897409771809456997257708345294260287784496720695985159815397070523165732420038147130826767529669123791934900907053538084260215240946240192062657841431592599807779397188225057558593729302493758635497897061719072590574809103159476648179555545411853138356533255512523691321447150367914332175983249017618045229163693989271570066291460423797702158357612588089964650121314546297763400481230515635640316151221436685628470850281354075064242039788322948656189157699996811095410321333404575163058602673564690759415193744172914791111714480272103927240240335005802091465246695438208221774877827800804770037638153982177769363645668295911071256411315660659427338028306433661101316739910456766600684600386132055731444151528830062725940847114646038034317242156638836496948886746670848382057983263833656170847547801393497060386688118471495567333417266330234866159814067373658975250862691026435113505038720709548112050771725409563704879188955592336487573845143407719008977150695182507657521426259398712536021047081308006259948678548505146923427567569307997512557680204377497224096869739591403084544629250179751867898273650101319598078317577452898064776737859680357406001896849152074038901075202653114207841443106524388699089692602617597278588147876641917621432958606513625254957140437727424731369011246666882378021376579538240416849114217948133152588315341578081453626928235353611103804922328148265134243717019777156760224078557851750451561096414802259330007656304023058018148881311107753139140617700051684775568216919318156010697922859757092874163369119429626618001102025830243339368077612575984855981504192289285468731917400822167256088159466601631309440308302236899336111495048546087461442979077277937221614564208242757935123099339884182495428453403762529040326934720513719547865534091777899200339276995379196310127710117166578910208682975572775286090787497117181945591849212515672151759869953765745940821353755897252999680268501643702047373745406603371810487573062248659957974585619060715936345646435189581271002663603168801230718003310211730112743678757840524069642505329286216595962447735461366621667376670208610532182574747517736094707389437768625136074705702468155338906357094167366317253318585545769173280870499475087991225113991290641537510941791904487364924408520608436863235489450836154640603551750713170897037027226632570998851134932760404695685719541965601666007179039904672882844416241940930365310417636273528701641721743172791268789673015665227197497934848983016014254009716454096184885868330529074274615580233480735986877636125099863860502286329085973796754548806017647823779906296698607136151550052376396473306428303488656995773517591547287267316350720329080319815306877468944892977477071029787747674537941871962034313571662881371262278260408756460255637392317824729662263700560071240352613042097881701677476681402565829352759811048017136657104994846638852890266463160659380170425995736435610378027587493102353793342560963343624822872391349526988647904131073329679808560664396300419430212061401141197382591388538266127582011689520846699463167176101889934205443256347630556509324399747700834905459118684416991163029601226083097890942563849398553045059819151788443957344937483290937606540783796113531184983182780908829807493157895900461653116397478247792553892976408120914134414710570636677671712589284278958969456035418889198529660299786521952808901714593896442879331779896384608159323958602445366810651146113981648178712471382484114220766193508493728799864270617221712200215003401329619436586019932548364634432760218896745979650354624350258607666561511362896404129930946345400916142241936557039951994167674431999250536736100836579643971474122454748512427831111810999241732770223544447891838978708981664774688997460118658149046320623988356302515946549174856807754278583971733778846424185165047097927127459929237462911984294891854323324988701207546666802918941912501980928535469848731277395326751571297472670792262274932513748347423479226305086755718510231078465428491380442146788087621187407639816662158243959777215848320481311692054837413053175610310338385880274676929782681841649079306113549327191155922018984359693099861569873138066166899455302907436668395510275927755620975836368750592001880839055660169311746404741958133357959526524497100396296807839484676449428427838597737278207475117073401908698295615063765716966058990711907508188504526728370698152752693139470902445492090785332036591452561189185300244539758846166357919859952181174979765994678580257252558297047101444504793582426095384634946614681700666405333988366679611133906252706121211712833406452313454158684127711630688862460131549704108724232945979503366817689348302928221136008107244725017055492412326092792415232136222562105136562390270774617596242654515222884424957386196228189941705832877256795289990210671447587698253805696731800501202139779847914735991018920108444004402570698873862010606346823871968921845767838157725532877602014361201482604549131598112695455254131877516158487175680122869139684337418768101177601502487361851129131655789567650876583282706186640127649972532840165830194688753668373840993189019506516317488777544696571275827509304966300932696385621224425598229822378399304112271122529926925003612994857870304133433375613166128134936560676222378802426191447510559123619240909355818159457061573986146444142281903361464061492515326065246928070493260295629057567649878918358396415803301582740190671491935816887669630134967787194416699539111887915177753695924611911284394656719346506747562418071469839523763606746918444871958121060296717861089790673504685416215472049017963364812467391726544896544560269886076808808499089896075076992210098601815737717236965654107972212916406376158199417157985870731392672291219141315659066292063393388282787042934407351446400622325174138629787073293147291141440702232695133322485156812566526228464400528826238349357553829099994921004960907670428525038073604794286190939342667053110772873713564400763804908123477954746575620146965765172689968028519398807159106141695935968694749350509614023272911381429973578611367780613746947065844283355689548127193991287344255094132496590161738824707150950233213633227754109038010351199380314481456945206637152281663500004464278825399225545589195212277903171057794522969488981434172873879727958637620110779222922299861736758539936337734232044760414858104910290978861244542231398129168200137366983817214274358916567944808997471261333470176906852734980960065239487546525552477119775443468951251539725633579977237933411776162299346936454971625602247542245314198365407596293806709919054009908832830775408790780785608571941106920508449098181612631642052396477534834632628374291021423686668697522066474808873004387584737178402468608041474122499034806196651999925965256894543848481057118126362166631946860514599130748052992072857181446178690795486500591902782331749745595180788677533509988973578417013408345634029956128471735787772593456234092741640134797947701494185609663337326374033906363382811669466372186725679986581272877574205319687882133656752928736270323456535362876820051217940578214194106046662529765069073841721768416088499236007467737193529747994444080148928607982163997922746906295100424670391064208831622608380631287035541264616902393840707579967895289028604163589259625188227861946364884083461442674111836719653297100785601324655492136043105174200427423722189203312959639512130772123460689265571802260649604932501453143600568923584336899818852691573139434482390648077485046819655016018716877905701411335587293862103784799702031218444501050208018834343859572957602905584561062173077738493167775502467762170276939683704374737558391687136434258420590786594774896095834932062238612454771586526168267173097559509517553203407023139700286918460556471073671869419967300972337885558184365583182853289352572790719479934176936531174199714316317651936006453280430990081015667256535947526832032951999983755717744240387629546435183057946041910060964629458674585264048587663210913894373707719312058160844881203428437730482521830439337458147905645203559652602896199126880935136286372831868159708682655941721158726362552565401434688276929265599674667288356314498415864012960647238168395965878175965089442890773826478092265280548491140360780056122317660321530134774661637527121238614105964357556323478787995164381250691968591299936053749165660980638192795660485639385819405929063054830977800777484133753156336730740169324207545872143015814150248837812693776932547953413374957254919050811469547950640019487354719312075604360066130697225647606742553605114282223693469856100887589146724715188665615340942631226664963808663802630019076862663807068650494428648358690888892833868402508993490961523836790941769462896920480052621501882499610108024476323963469169759660720240852895058735677213067668714579397101544271893426255568887064700648620693282637381943038444786945550076859093034397744114422230479893128638609538629303728485377208305917638000205000698225672826165608402233768404692820307276705362402151280442747533111657343128231415225083077897488050037541336459961937551954342604543587082987871931475121412314777001420943390645654296793069334643381062206696643744862869347761967455537788489428903745017773029021800985403367847678235383325536236219210895380622067340383157726275144204786719358093460042329083307944931859620309484864121057689407752209350404759002546482603656106785478527345557420885458211208031878900414530256349618207233247748828156832872007277120241964253633733684740388086585420941409519633052607842323165578645220976769191254639260736579783665431526839325238816864086913177802627434740722971220875960822980106749773370322977541705961584045332357983834610147819693732194375311927456196919278952929802469105013292270333757115659027078892724515899031851861257163212106812210528422563920245686588114097830391349283819633184391719323499486596977932714306553857380480723922437766122579541148082083659223559729158759733309419795571952934503707435867729882259150253194797052216495987348453116500951973079213108980607059651781890793120017900926350139437379931678292871356891583422048339362412261952746700568270559040793592847275948221430055773720633583691055266754694589580617358278236811656902153414488584764490105452408468982053968898339344019065847569321374023287098823711575614865388944401943458587978327114401808414644800874683346546287022050925129380983197915304152038552760244128194157296998938078685119697591894021041564313421773433767557795846333870647900728776987178437133636495953726789917555871758716031361277138788438089700947926085132873637550374165569280764480892916575593004080145328483366590187814731267065584513025898107078863169266508753548709269760835721791782552754770978111031278551530764766234964827698017059841329931555009784322332759490852044905562047449652698840926856976575253181963231622033671356093014020617860825505695927998958861866109852884432636546592076113198976376501654176666774545952868765165969909025439085133088225388871583095545236422654299641704925298135961396981922998840026506072908927781572424080171493130256232199242441080180035219034640739593592476557467222257947766865761962272559844323075946616166501084762814710632559919871356653992857922984685961602955201678621311310568100269274223336522221984810865110020519744901843780604516891131888462324033765814055930538404524043702913060850979937714298541538031492258219050150390404528010291752152699437390975081537606532703556540419957226667583310597690304083905034948231007715795339878807437973429402159346304354986373973429361817324294697999449849335870094873060778269872005093185816710360403200649724553230878537070965989260358247285612703641416215116784239309722611329625428223741346832799567377784092202967040660782627756731629686960534951178544164229575442006454128985364485196675354068029379349271005259653780245233536929391532205440327659031185496103447500920611745198701545912611653506894974021191960402326619147179916212252399137454082047420267985900518490353545078606914823374427351136761234527442084033793354078631670658722320323755792171607525840523131946305528590677510110046580428142696959324789524879560319472139441549751833593695937698585959790813986534849773458423960534982841682590614457824913754957724303305916335139772926288755567159555648223311909792120274012859195913916601409509901888022589269626811586440083315472799686241639340473174490954912333805797310834181682485491028055170383409060581451508782101848461452781293110752486431742863615957582407015876714812858779726836294458583073737994073471283447848417605821433432481113182922947210479012087876125004749545502819535902034253108221013557657947466241578900609272669344360987835550604082325184432056062804361680743275817910975601156361417630075870281592478908717941043512710113061841524134107276583963888279582025265886057746620163153049930096070847692963789312287383408383838587513140525572315114419899046313363935445231371886428975558010920149742937206871176309681912438167042031402492406214292604904454204838442312008609924980660606156598716984352399685619777742138046434831083351627215363227408230800776417422279421139231286732702989263414947607871638403292025320049211508352034853294460245726840061265008617028212256915400769385821758817220010617693885962192061030358005065319604618245752763788092395909236593872454908632732846367983950329943665605405188863541286048406524246710834007121396139706915438120809739639378894072629896365377494662895598116709818838804469866476729013950507646966614661965947413310339587499820215057689135326037055540269563527617186900144552719952626395287911170526691535533271126230748928789977149434925702753087139621417591548625233326778252141006479452134665536519811680448156141771808161901892370696776593810751382474885322953078696751662567600986319992189557462760290381389432938245560404735827440397454859657657999884842645781674009780672241895910768104234881537183176459447034517665897407947882834136560375379233658682966272313314575032230598400180112682528190106187224890754705975195613909307062957671176824594572465640447862099381423196559111344671656679288116839825419737026306826792404600308954984298563702547329336802478076641947326830264175898156573191713462351280185020351357329372171293414503817227916994661590241738973756736209729937304282002521796218166125143881377795100514602155192656864964260558939691190634570468462238929418400834747851544533462010393844714414937694394225922891472170014067938225935912655612366004049035983893838894216508269085016323456294032867840637116334423511938182607855753695154724865195945131282951455763151491564008478817446186886477545512014058838569598423724597662298649138533633720402540063206561968798924238638721510119110862006007296413589020697343835946495732173701367701139020345078835891975342603272489978627897221891721251489901040099366833660607431667662330416234177270859629346587107363191310287006143616507143319808864067047802053275352743298041390921518690705722498930792160256129335965799485586147249900399103570498796480254244284388180435186048685665649886120974618350780814670661883686996211142757505712426374764979194967921419271021930706488566204443233459135930737035953785592689179420782809556639064601588571244139227639568159300407376336974143072887288851486202173191407152856464466483199079192146463147968642776065772982405370212542567355594018306399613670926185186732177486719041990077538538332966884314450987088290800360432639464406025729681998621240584318905149439719617619840900007709220720894278007778964856184548465092627765210964212714678030676944939571977812860345417461403614813917124281022937305449028774916511627473793038925182744921853434460881935739281682609679086465674153965681016830722444807122218637275281941223947539047181641350321476148538960069321256606662867077874964356355866328517617224432807149595683869318462960684730039051608763685117354685686503326603422141419923443716834250207154384197314578930497842540154149122609797835067627879870517554816136115141659924134646571820646929094924370525244842248000031694354705180783060757719682868374455825720115722418861452086611303208184089212232362158044375772742119031763745375804140721990476031552387489387200493514258458794447343997781084751218319948431245499652600169468034198163074255724935337184119478542243324467209171515063489314761240340263209330648440017292577689433094393008853786654913194238926042744065519927227483661983977958887771172555336666701380129725301419821959602909722637692689475674215347499198968765408136398785455587806738741838153928688612046693303937754042647578107443648630146114064571976623551927654337320632594352724863358475492771216365625041495853239391930587684000866114960383729137810680255537928477504936141580246861890998949085796465070734924680919697892981390990949206748461316664034357932104313819921150024227979698068491137840271511452640082787121055846498315947641972259725413840112521478773552386967063311027285684932639203196565155531993869944243393070786983352890376310928679228708009137035650866773833064549171151462194216866328419238690589228208630479430930954724083431600447096657350105164671874442361160034007620304728908133916298613262979887948565610612570210444224173493572497435679046477858951477024615426510514312253827050677962641478414646656213337592634774312782560342593798702386984330028791144501514818097241720794415296879801193128689445614866368856689081702304396867393250840557682523319803078776404627784459800510796719827665774402501935396541119266505095207135492769908660490935819901928978572866910509793118898474166473227733577498077871670864729045952261942876903259308944226303085173188362204420610864736053863706245005167475893811077076752973987924431437535769365159577343920973766778206915740016234788959365087667003242929934333690985162786521016879065065421328140529771104959565406412703180694184051958317433461625244482819432535832635405417477726956664332239031787850593056935549389838037074967051775218399305340055473646140643015084351563859157832768910500001342512124562282993259631123977014484647904705317225155611876574063281190716070153265097055373330487493371241569405732368355041841825494328528340899480853991091241482083746090748646593724130018865367705853460917085798410171160482902006294865603355348221237618215951239075997359440731006590573346010485446107984852938178374403237405398199089935653573162118401578626106187206815869245025739727514492593014608787947421467852900916710742193818997594363254815538945069767070311749987205217953100943724815503784818351228932277847637672528405631502423681995978279209534753019321703788454285931989061597625183949959012557813491197910532447133956756660465857888250476086675391650603634578992426740113659830658940459497258551317748879308603469586751674291960340065545165025380136099791451095377437136158432681299804880338256598485257879943707656677955605543543097547353008311686495762644500988168620068099750182659225372719450884486556493780622782469440102679721608047346238217239637614651948531189787103618533753553285997584342385325651134845032804365641846507462039709077885777522718355734390277002204537621008787358109353210095671266729966128482696008104589989009177812162519078631027906140063654236955203669572436677275084497119955092850411992340490057397009851291457556676193733939340279399824767509280574182848677594451442037872589322551765430665176727504738841900754873026569265695879109290590770901039278411700350983989383366171352292801313515785656734272851481546914821565863484010685224821723031703326139456364007513925921990960269285586537555812178487008038930518870078249306592774768816118624139268114513368008013682346520036604681853793223307927669226873937272595620276557859623141335966321546155618647219167734496487696622795034038593509217890457520780944290488297925701791926563446292008732822316569677310399249301944300960981581498142765710731946625070311189601391356343659758961177317554837897326050682029907309281412424194987680371271443868568536262644461449498392368646173586697107386431718370049976127583241370501975638958424946462113213861753912909978623862670039000415657705133086222146435782240769957575755100395169903569709202922621524038810496725171188943553587840241218146812944297453709077256356017407268736718755732870391212639298639091095081757484116911358192935475268832548454049759999507169597602180971025778194100408398040147013981681545100046626910481076665929801040544039087119541039315129610319930054672014505547943372661227627572413453801812790587447013087122529173225959158223588861066271913061965847361240328858070857279661140251917121125479739907737196886705878161481578437402320452913873647942872399797540247032977111883049516307605945209329217956576222794061850513417695470383241636696655542919663843052588133224122459782504399472274409399827913422903552061303058886669755426499984097375139459881641743003387667101289437191911824128728156258707308839937066843798824800255691646264443101874796398949027736104056237161975337814469766489022678395009432932011157925963733630169774650223074976497267338068694119366772374229770372789583035353291729769560143890079072886129817415978481961581847915472892405189579190039418854971888343440700852634485166283351504271725494627733059317369962882010758443072935033918559643184186114602210307790543297518418890059349970629903899919979975338805971423440559555364195398371124283677080647919720292128666786691241685360205908595348278813114377518575341316461822199666947336173334171386869734608608897069970241354640649901966597793422347923167361893479774495575239367021962953581838669207541914068108605007654436731367511757577762207893848463993391677099599399363547129576546337399232758340986707094749449353553970790069479389193082204960278745279232373827621109773254454894177567907837709941891675265548968367048852598885978080366919304716872662758666517567175541714357438449970622586608784523328025425626982732080008388568181868184975525631928934071206131103566281215525900571926899322371467633313932954169575687621764696732824353116887402857101586508115886102893141375140803220934897498222101265269132758004728874247868227667620966061235634243107565346258088434973893228838784055103217772117283722097011691471740071463418188677031516450764765805944101474409290938877803581705659120596988311702299675261879808145887866181874278279036706677255145290238186242569292262345815019512496400653757551963690678196608663580157935197259312151421964418571511559639803655914282992368263000309212146571502447898178686843069777219521212104426491710494942474510003720260970256910880855453966017438048506040611526722720770888120620003865484656355189763282834763090183629349053842382786316833089750705605329665401937425633157566934585417243357125994126698742160287397382168896935995873503707481915511322346396526590930247423315563032130653582636702903156767851099981505215287289731553526362382467216670491840194725574836056557954412760739674261935540820831716643506750803516065801343497495303785576687831393322744179031234829388316549364134191019646354801980857635274708556868835742676407750571845456455983871889027897552527580989032150762156469528132124087716096145541374287011625935569830927743468711124052119207483560632653308743945751777778294362922525782277643537675770715598681625430707420144617384675986765494717819740949752166166547982471174701447924769062676643114420373506168440834942730768046039712298945464626859969377099870979066030301160838778899304940438627884612317719927268605896580093229860032052060943397783140690733819250935405005611344444611060352488859079771586679709262941324767589226929878607233239734008723690761341231432820749107285649401307316032638119297877228509804434355796537144258077602831248689670362369060963996419878422651070454912891000707127363845264157054780635771051377398628061899816158132094879052964992156776672166241402177867512228472990835835452728249762335012126558738020404441663442364103278123335621173635712794717113089357145005012329310863223452318431507167980009868532264779124897159936932239347878025193994505848041076262088712080145105749940214888662621268233277496810421798271486248271606778552860434402981612151984379601601292920959738196698636984870240248248070437761836638273559530680051158289491608223933420869075867773282336168796967674437238740888412051514514075774317158016308978395312145440109612195673312827476235033189122995871272025888544924123420926488188138746467992861495855846983369329219951908133736712874006414058259826552040386177089847351672505441933648892469378073517645233571412341604800753903270457199155122628088890853050411516293935522607805213875164544695150143396937951404035492164384457772134501293981758390021282997362343049202565211132465927971209358246454743522008342894819326753980779893010300112715748352435263214998582949762033184105792236904647226615274457919624952608709389569830376973219325550816839366738972114409070047981380759072406844098060187823749336321484064787912140221363048581116759406055142299467829687968463519462120973617773269340716734453106329300002580136361296735925101332076459836108379396442832362968030556980134518713494209381335182189574307439043620395322212533149450425732049082075836668445924272341533872847958348888839107866735375463286085736661269486667088331447006966233361365425735314970522766699845304923572798882260848403495797049901500765421303996351418203553013772091988285842536490789752655653830812839188529458563054716672147077997387760620583542092960017866301685015252976887878209575990512961130096527399856372337381256693021296479912264779177580993957556612092917200967398355876975178333224672801947613668705203101831045553000347156730619164919361763880526295306782039603347896798679263241909727291538670275764356880321996609450125931621671915320594069450197164843286817094730903704107877023081841502480974237598842147929072817155645929082102738254737991665365328286139197836654877937422719020923755818920356364491002032620891082680021209008488246816053849690609520008116789689078646574448492709811714510119435243112578554847471305208335963010856439038294511804466713879657708996149112014695189842439330490058639663112318560397981674731282669461439615850316680163254738906202749443542900844559491840200752556196501810195718576350683391150365349830710434946656922390331673685821319162576243477688869243459945683217781179764583773761150797866668973228566046589927376182944957317492742605027905277249558809376132193759724560010249030211737444316494502665034095240424218821529949325181705022234630091177513049410166621635833721549865458428017154739960588019343899034403531258957640607240039190186217342843264122914219881078397729574915563729354478861643203099541235887030137030220539629379593050240494019830092884461425524958086312120121425961444405074384950346396698790630925766824295767946108122240952230783551768882621782520009266411499003210475680060805913577264446585875584591202911849796090819989325024196256508784136165353212682642291033744182332971672278500679530386387213339419041247442156121345668522974842210901226117313238386136876363235501039145726503922733524720359233277959736267883763861804027411072160797545428582824132568064012808650874696460927234172421054956730269917228860221999445216812568445428985495942714451822163633822959524014937787364298523164055866277212145971260715726866399238754903419283457180129151778879708311305739794670233695614194317103812516441153909717323382477305501910870177721965430839956372022191062246548178250091054381949121342936537750125423105175914103243189351137532395905891487980385613383841916482236024187928542601334851006234076230750032743005169625846601153858949335701554997069951194006050870141626298907463296004867394959157254026249824571992122341270009382375844509559055481812791363418544628741377648129335993256406703632902901064609220531924923593347518747696592751920998520351773053033925874106897525663506309862268482464287360237238256016057573184562478197531984307133177508147095746562733661242936391435544724216481545031156273496650572430927522589063085924869779654131020782157930970604087725336725875207794786986904239123741675761457682707026051980507090147907710041993145901336331644386009843799221075520921522768747911059081859866703643510149170550010183488874399370052297268755654370068218277567909812969046926095311438776804737880742259873447408425657868441356151596589231375115696364435846020560314957445488548243351679125716495728756475456893132422547369078071162596520140074021682346332732190299426048207166467757030274964055752391576108574660273309816700748170181522662983599344354928308866419692206951338555588516914931014276226829044283731966213646651490602166047486885312090159260489680359441725092011053532729117163640785282688410635880612773127733851804983494945826734480310911301435703401648841932454101778767242028034286227373832799806147100652818249535046428026622437506584510519410403740474765602620296280137485664492277075759391153493301792401220151704992872717574467178827630496598241204438615771175647113843634953107832882255018250522459245595673190620921866754043944206970773606479734830516906747987846931857820192265718612607288447449470350971045803113392251713532825169213316228336972714542160104123798896605194737227116461106613851395259419455085815424264567857345258618005396043110022063064787682637134082101671591952380025830990781922602865278415506748196884913859772725132789838095532195849093905162226728187208173206531938478461429317140002857367185746255214456188969667386175593955049273598331241176878151366646401513693660581994585502898066234287818925160409124345666291794328902480025944991400817130243890514834586347483210769739170375933772616397224742799053721121457648438588977712472942484112888205459642634990527244771139715834360116681914647235966405840252151477324280657657349262327878397507092611014768143676286259053275245530198981106675739193412888319781141807501483479241774688851454329667607643380511546431660256768333196568848795383925514675321081771528259976664607159581074172329711285218525859913551107842988263635418418020760933861519666656470580693326967049625822587864231384227091574216773709487268504458980396891668519507622192494311420059146063617334471897782790075576442226441780386102949911354663733493959335821895243282209952018087861840518004320036776305693154779515867944071155098353867749411256735941551173973252289283083647815862580376705054135438062623753551477064471013160198775993672123519232973415393421112143409230656973411261211832144490776502940874709678204145847976194428156744882715896230886487355035200343610414492903454269932296326854781470620269404544239161244555256493482662102132556216863653320145878190681718858347716260896661732247577042718721481318380778672301729875534071726233928074082578320834011468912033438464798884563922904211897671119059269530976986723851578486848167061526572476325521925149479755353491909776868098980179610165554260453975216449361379702022703957868085488614843322763413248555786986673059726142880583806093623470693467237442781605691143359211887124783123613834276459547136246970528281318622087273063485501754029725775703448659046667049542811323296374718114087051283609045198504176500332382022855003620748233373616501221660777022385036246080923487744435433836412351691071445115400738581611887982142715542717613261203490441489331693909857525998055683331567944869367539959559718731783657708423726515016556193588062456035414193758162728348468007777889925113849715690361358476257371074006245931025962873985967918041473437554295986856634359354129280235711562233395206228386543624856614787274008602023829231474975619510131086250918692952394650997301439125794116940439259259294150869468180865492028890114633787749061125997185890961796389549667282958427257541203340052167363075103561693672364485627943612768982128547675502723277984761599552147526548360565615076824240351117216732702089382882773967982069349120961376300917287403522927933928292604079893167319815532682262208025603084054096126041011572526020826918163109208587858342256704391745215882372079360304934688527244034116250224982664995126011546601149187145126951327819020271362934057242043701477267550731621574346165518863249586729904177588844600347534175411474756908849368922949351430357517253116210497575277606958911311130471251715869291763320553754134434177220128804223249677755975746361983915902389231653916989212839458710897170438955953132777188829010659866729789201415155214005199087663855252557777904173448421367644616040553047617538064934901266090477542562591029813096626609053133359699410520908717027161652881503646189491379376640672060184146871763912213109268568423387786463611998642759251802960683343300365660299524268431906214253861761176247923385353606246695713027067613676628979326427290956347144547567516274006426168882247135283515256447240018734680019967188778115625082797888939864284679799405909356341143841686634301804765196102800761578065329605750336003801719807278272772118446845882596504308218795767334704823945364219956080162579536287780604418600363122967810377066515040418908198905368400706486143790035755007127296548107606645935511273819132624113916709513814337948296993793897722524341669105745477746205223583439922842249661207475856947279922260190521985616970329363024640707625595866704251409887305436807030382228120480144545620138600131432168937245231444555820214638357233652144147522117450934452209677005054156119670016278459516307063164438236611968207324261977871339474341162360812337593983453145695985974783519194640772975861291549231676356803833496649160639280937200671250888658079046018324968191615470331163697400337669500930063955714983449019643544241579636371819341943549953782611790377960725087161655058666388843299117733959952786281736071839530223728990187693928466860135998936820979466042583412484273872750913510999853685312627455220102531813247608909649133035008639141215901224180256739980442189056360199554874678073130399320673692773899079778167649667016070978917384153169577848203282537451492938394085410158461383809310286226246244002336532306997434848849411509248371257942686627588583831903804326245905537932286459749455290099205973107998286993258579124531587663631488550554845668803438481242832661880490847001777601563677356854895519376801333813456543446432567540879136242018775180410632126300949718385254078769182570587829402551350641323718966634441356842541207081523527313940525012628057096077028134153025270055366433675499911932529710845531145496280188389075892302592210725497928510247106856267253527155215396617178852171338315439478124058278374075044740683222229520125865543437020190688317167621348970216353829524093106679330302563941459701220256345041019024492224807255462541930468959457779456946897396569850393832238171927381021066540975713863189005057326786668503944235787114138132106941304106643065081644254206726466031662019845050243954824620246118364403555346124573979333012786687187879934614915290751083725386522719924411594524524250367917916873065471453996286686597852568146259018081270386416456064446622394925784409070334297513577349453282547511132904862473445823031113011468411741770898032029660419152566987867153756390983678144078336683852309511211797972008727373073420404405451324452429594782587410427157341346175714494404695317897890547077821485397530015668616929713933890894223330443612852846826297185803673437357827650638529711102391734725795315475513100247792087820405914680652105155543579549140167899067620408185407974469610101268671841385603504060062217455157389884322373561703332649666014180345385957038450322487705262501254952505742859231319372107958937985033594782091380467467684530267961811898460144885968736402937559233515193756155563244914876111095360042449153229895531793363401719538343296566095230065823375605794600094889033503584274412804777562649314114178893637964476817660380641099426820029849613945209949486678470434065639716447071866902207798683272558377555711135852597131616359089778852584110525951607462508322161763797731612856730266621195419089204268507283746118102303109437148737607158194487366684886364536193320738217419788830862772562567160272571674242186967620734892382967016802047342977907229647547618590827730896590644484839878925177160332122613405453194394013660561650068829874031288934792975795760962081082664826539097402958130304761206559636886679866720865305811060832569374130735289216794617346590952202288695198681966346800247941267960740794566778418376238977769877356271310463647658005128902760549479498752351505767701349108355618683193080365115728289248487831679817787800252170042710659021306068477055058727062651573850000594150437487500415165237066080557286777532978721887370589888633442840728482524912683278345277553832677904538994415412533752951229561524686997778544276934391003542373251216049037974022155931206137445129814670520215282089944520456843129700068321700303287355834954813787852029019723771869089728214388765825967350371193897580672082984050883774745520952678763805739730691200540940594398012601945812797778221259339740427647082483742474842918085791554600661010369240232015264689685636400364901663992561771559951993474524385069902561668478985207441426236769510807472560027668590572527331133630964152945432093505097069316679198361623050864307855688533629886463793271096046869254787345778324677139974484929335416895836812750762267486575160782588529022492877738006012167306971878825710845327819528648112250479942722257215554332875972859609648246265611647864020770548312743062158443384160320309498627415794025441338487474976683395777683495678076453238305526998321633297122475600791642545747653591987060443408289416478412919802460091648880667835682777570935706371499285351332111971806401673757582735017081849343098565763753922330828469045836807988392263761324319907047308481022709922702709013398534742668940336851435849936465711962953220723296160478160951048065967602663879481390528709241572922814366058624736512267526378466863151250206655710240643285784938475459217374978773503434412587436805315060071558807193234472542378999955359393457514558125359882055026569407301737700034525629324840739224265245392603814794879756526804237005026857761179676860281943489313764331008060042415874216721708506902202479746754954598826708065198948063011455425084074504908864407973610727472399289262870027905407197034716178021710349173863004381381187584310523142071150911527842962747709194611770616912482320158448345209384671381404210892348518363180056804689798512995221398335775480480315686408901603013294701029400753835764396482837571700356729339665244146833074620698071336000086037993111025854924568430661593144064444254742360512222353602680766929826249498849329996700160557059194052932043823404563932526011160304603679433842849867788077610036624673404314998830534406648629115186063300869176121755061288203969502077361190979195723436794037585960925061229935629766432504962651537680357715512886796232354996052236709662884684247306723118783509784075810114043600389343494221381839356334073689424693325539445179975121471437242271457939030710225401097469930280157973106918020850806139623668459488229797484187933320037571229412057419831092115864702760417710538642735761342953320021990279641690290072002504030942897803660451510432712206893499546045713377206618658067738232848463474436899020620471783220663009333770406680862198255822150477908944239963235945155485619414973301927628025453632003615620675671260077468413872171602204635528255928120544218374339939736925857073832456735208426611469714053113415691617201119731018535861736686459183473581922162361861317600045954211729063522026299583057079599016476318231377941939111452603158511758730563405892915932711900489046024755987759990502409849592670021978360458477827014113883082556314357494708249077268878105717708988110077903117836213338955853171136484297184153961117211287784958244073386165917333902474276269885713951079687702274879828961547888129205447648104115942016029268507272404633308468606300556714994909380469167670949103608299763121632268752435018247665181331721887596652563590611656811440171097312612740773831526390613456685971982114986825845585474287128248264306412020826575808849999063913843721098895597157154328182180382197867215281748197288421397952977489464629123091682522583818845993491484027627681056521061156816513169674573900059117149832075703180492836169057901662522635267568331655020381477299782711469419118409107448295147583748771172480894151403458732140534780317278766549385441762467934034753962103921613688446060665843214707571319193315523711132631902192997668362394157321082443605202542785640487093162326602944017117657475241450513212971534080912386534431255061084081295352802838686144980897835233118377976981071627583632785491202349777854404692131389107648035486286945639314881643841630814501541766581482396354739349078263891771825787769971162221270030500052013705917841773116185755471560821486127909881522653277426350156713711658934680104736521967219779867829639085787122592495259410670305406118706376525093920423318593586226567374528461678150550874100182741200515745563703715367491147482909515831639272031625688278726689017575730928456585721585543793839229028746800900076787402808760973831160019078215683957978452238206021256260457855852781992116314117126864989420958947318937486991000678558551293451505944696623741436370556996693817471479435691236823404334429163959529012851291552761965105589958976503424998819910857852791703814517766593490451490284473607034272544809693968555518964367480275247517791127994097575291034796047745004200006716620820960946853874875619320475759450881736109247959049761115045174139523180599170566243390210801981222510799632029727977649741773973210539534434385368795709666796613783158707421703637844318434703862121856526967721054104808295396534544256196309413611174826859785901833765208314285380917193282182045959114536352370358619043138458838860818733523829626265124703172347119705314456479614011833272021691330606272974048488033087177436598491401471833359178206004362335102862583710647326256180226287325973294521027901732424672376619775310587928148486940325656410520700288855094613623256807852218075775607495188280851453706441994386021467315697292973988327309458689340903916579602452366647166736255724469682033764849712112751574187646853149824401106937873123863369704935300076991819257699870860999928238403692259983305966348092823713309284585914834512610175700490248256298343480616872339840094277431772623733980796136113503668247770215495394778047826524000860059027294494036570998063655246127350129619465168960943853258432166079809916870305620440332107896794705397548319585156359968865860130998036544940619428240334097341448130471630252187369470868102722662834000122322825228027340278071635175477973359767067540364313064338423349294941877015637826177900064292390540438837924587026719177834329959849699789403820520259373176412079305915480327563742963065283967622825765340913406852571434669219491337350888899459381662221251800897731609370579279270838407417363299958505640190505982650999669041699940046640847266948039792426495347510939683053568611161138464636219896643945103255270286373304174886396165644502266093330711703442040684685510528092709576578902957362764104164789923784244723161824993866053976096213609467224921066649569280203767301895702086793220082544670214831552649518769849307375707212706973279009310455847997623289591570630920576983170668847018330079532053496977798238502600338720978080992071722051777960993774542370542902940499053381862320939018956407273416024209419357969561718320427684706938993067598961751536611020255872648449047189400214117256931624911249961445895933321128015631400847806070610477732745201047001222684863820397281626302148275579977950267634205215582087192192087264716951479173467120582050092189152605955171953521320840440959429277705407410852107906130676112099030080066531173003959064680199676861856133237259464448239132534509640931732367614126852453060101817489545884917228326616369311967468721521477320234924436463740300619928730370219368504472824606822773069353702968255028994271751239150964390321903479913124559619561587752551024495683812274476202387162277270366638280721756773070062547330605043572232057713996605766136969210815957974612981487855290502356139271361393167431132129287182567203629598831916408973539893406054434358352669107765213145847980666106681384645074338152912891986784426435210368412214825436496039578194968977585934682236309851713013030771850262422480930258967269503147357128220718213919919082799429473512454566573369401088167733465592632847302434373132235576843701789271517591784784364223274175011784419170477769243161844547740108210815706535334402615386350523444460654096752765470082495212035929910895985875389908651800082953395237499149086210839706038429880560733865417314340801897451721967236750117686399065644235544994887247326677237810110731851551687449674763867758446913731356093724828492001811590707555114972574433519874621625314817593628043039487609659238395740267843780234487091745235671563226585683855053785304029942021054581560397586528011540947760880611561111324750973786124357835165768954137732115746192182821138030436961023008175457519143355062617759404961495666904851651564484873982235304295963761276308116194790951819576871444978165060546408722649450421849615706288401132859256203197784345028931764319512367455792370408769622220269052430520916917382038641923011045913520994632606378663081857737813156875660563843709792456495974949024421678796608438282413259457152763192345107595201698321064759497299462175721790443059472956891888003382605428353146369614716927208826885964537205275667094072671901586313819483903899782415922462819541300939405958582513980385809007320374445536352111002775536039429189504514671579340821293393260875833527040167344784472462695841272813414461975866025166727406723175210305220056009578091570350440217386928742140445591557016876593366128103119415712903486292174535174297104676679268360590553443605174657152213969166795902924355402751409216736383656670906205029469041983206282157522021475796566766722400750619082563136010511562697326893847960853725582057562734477756902701608684513405396708313655806661094159444775300395685303402483459618448503165601218067338436215653336320453809066835343451317136996741386422746443062143750641816208160655061464149079702471234698923043435904140000450019597864558187956807403891874267781770503723876847806692388474801735433128360131504486726607632330538805008906085449431808957079171442451603620708522861186938394797595699810867093757815346043204416864647856766020391428117979039106329050947925005527650012359805114106811411287239279988996534985723048931015895644936396754777264897970282794995993559891638574418560134975471642912394873310141230267747094522393222641614769160481216455187712811980661599792378137196716775053288697158804212914783333398995833325405905923056585250785199261611564001015292922538904511832137628649452492234256105406449089358444165583842671851690472483844406508383005369353430168990285906826969249372960155372441491695505451776048085351923620290172651087903361820658605014325430163735799309936831533344555360869296305954276978628980320152839082959070249399328254381934355051153978232590889056571893713717221826237049765443605241807529321502727579645194411397249672397932500354366477232742662477855919374058275375052158968689246638987896346057234562123387732776026172440473900131862236159109890626577110048298248741177305675356222947113668293695017275259110499828274974418521290028317140059007364149217236530864872538141901064542280214804827836199749780413301925553840137382825573510146627487681866176718930636988542060926567542989725241233107598110216327269069735855288020243138411126204456185107295492854373448858591762067582609159630435933890060568347331232584001641677291902735399414184081964001552443175946341269881958105584460887072610160084716037827805448541796504917874904437887493719539589590075862094868724019709559962064383942813644480946367066159683644784065498400451158357227205373442160460759597974431733511640703155827886382762111189766284521562731484502823958121109483251947634283178647491361452362727184060213345760599685267926113936224680045026166819508280049340975827475036657055940950767649351128693979052836046559120859217611485706708080341400749531564232914303181554836817644673546318105226043592287875619532123331002533392654153563496365969202541682629670771335236631872668570976520707867982611306102258937531054063533647221246166659357986138610446730092870013010190456543234166515912237580818756908639127575189282181569342469660695548006417096386100966649725682902233805955535303985650666494395872315643049019523087532249880357041158892192748551412255167895643923770985333904303765215434053623791196212275608005065962155639806160497948098543697880855702126491026151659103397324655725234767616050144252130596581347563693277936667095453819267588862497476397511416096939850615193852931279714017597148982568481136081180126177801033159885609674706069304927277865498163643448356599350571283350797487881607327087947556741227711405312164752892433452928841870240252579370536734203512605763396372120134156901676585468718550353742019643581355424894080425975829460331891264141502912296950941327296650424602149749991485595077124783556368059165349673753286064946633193230437514755806578301280591271753681232365104220917387241358469393223153421257813238826291467205550809650730837428558715160908724831075392829001566574164955736874678211615057990130039013587343760562093034187360568920646574766941646414714978280466283930846613831600678808072709614555482415219595307776464193199249078304627558283631440400253118887133665751559511416594959749802532692716834985296665336292060306882458219232857575691027549638571789694827801756832244944259883894262027435380783130144567635776339646091992165169566484660615103709410218945730048732823686116816029649138084946825519863326903132931815044515498493819703151915593819565521146189230210406622201644260571072382802391562953362115109895898835889234715929122662071887881070427283009583231478843613262494361756901574926949230418924451335787714419183575131240344097929454983285293461100770708113987251169304509499916735973308208523771586504926724863201529403600873203701442010952970779598639120885867475626712546726803576906203810501268737493143457761927212209666321120873899976650020075818751639053778152408522783607985428697134876850913137592438191818615789510472284944443774321261370735839565629857161734949864302734386487661330005751593826775424556832772014114853263377734417225463342259403440449641867759051122933938479360508365299053511414794590842400289898771660746184672680537426241509449924960521469457703734722288882236673958142256809561642035795425033362341813725314591384247472921464024416052896594999263881443216603252077610310074738010037658679875888973162907435056640050154470526361914652075046307937788009493356480683879990254217286382889106400995837404082963547588177458204026633523454663297539621341679652537601466554724808473696351711824518645123411580144116636450632632650767725995321919581688673118896177705624318770146605939028400964622230258215423861658293972494817757717366358993120176549846022399854980702206101065373778725914249368427139090915078559978277683714020786478074521316543093771247204783720576807682722826843696515350583757770137542818788334462435350211492666421629181336653483830273907841233957246807441515228948418204891459357293047730261905086793903569365970602983647294831571629806985156603841342417558123428577072605969067035361072230104829388816209132174866584808033985104794329728323898652453996146546327882878888611246677971816194834600294138251340106983968300101464998215477364991865697010033210403232567683938598273811988422858282779434727562376498535076233833031589667328065820520000915416240132967054465554488433747063704418072605605914137113886755866780253956138108943813940983933272391003319469991336650997236471107122055405173940753995553347114242497814052961688730143892823283523929214125925945712772070588827982587721111133840828410300371458355041939324670029148804087212770913357462312930848382949310485823156859019239014912756164068768504650582570276923236612041401539692778518580066815078899596772261496816666506248236495139752168873948810314549993317802724596964384744502454425850771469972543373393743262374047328249590053960616550876296468654658495447065086331819110788828849993573584957826974715758120841537849444327260396189643328773786866282224540877244351523745311169683855266737342400779029261125293580546243663605914360924866264673508965655364826316683108097435691244644285964409762283347973723785596933188710223515865095578173266705850999040381319864858352410158117972765749818510569443344356264270828012049722564169015605446144034303901668924925749272855161446496575827959262729892630435291457613899784928971385120814787430203515486109180903415898091177320577231601771672592217730613628247125777386094307562218052037126899610390851129896443384112463875573001693178549591655820198681285158280556983844570987409923147053925079863255086418062415931933137211335173440342584942369277022438704862584637790112376321784988816032291154869218568430453556858973149151727931306356961585814567734505904006929982838501301116182451182276580478799744294410579599633468003731706068848158038856883825000351474215151008455898421068666148797029989611373747167839824463704046636434321299153331923177469443165177350928668861261438041594465886036547508274445319919674347986614872888532135185584815867212955665876941984194539679231549421915285712294699500132631176344089185012800328795194600417774623412424054095141906647402375915831451073693700297926478014700009240562778397835628235755710942285769243898963399715708445734944506582595031962757013268399116401500822904509085234331031557428116053354524867700104927343215634349484030554717835772173277765778233922797800349485759143658433709530304064697824763179274504019180558931541140724282135734633384998503846573724097533603831330058886142257000199497390560013176894155833049340415897441133389874645600464860861571439978046105290526720116016152384930803767135106759453537262919512663460213330888974715016309906649134589067968701427920627159628254264489529103185319797687034975852712602088017015263221435692122000656505267129451148670133554930474698909944012247415908265360433707090626379976104630957334582604227692060251099254183170943499935445561460612307105862636598116076564890967620540921813244153172610307285459220053753133657881122507847212656327267313907706232146640129220560746122777335338936884077741561268271815550167633168489609680734581171315556264853983044135060700399695902666556906115420300075761182174243244968809754817899417796543190061515965487995812318215575439296615395659249361434495360718294315426039996317842287965153960923717981205894472201568333619155708109188704603248302439373366318363939307862391233807638048871825599759548155606964207177590592828660439172325324900120659800331662315541478100734362843839623471379404864980606774693025703912632205841306243258805686194473177590501860052084616913516410055366993609369479424445566487165535803479486915124673556410873452001131550228067377889252228965896716529522383965406152790604017509571075128070590218023576913111212405396777851752724047876604839187613267919835380751780617515515070492920114723585591679507387690199766165077847767221380786151804613308746748016780270458557911731654325024405076643201933147183331548898220828009460295604819528454758416970627727049111987166180905078389286438901547898946320244163944371065962494102404000094917282056336062221527167057639137725929123766752852334813918398334205082334039994711242486608200729819507075721635309895624395556463937060092933823021046123993305837248547472428607434506477763733300928128174971918699937886550327471636746684637527310053221967589385626819655419755377434933695460672798700029611608173272044596708838491188708854418671134977015272785656250253080539070962812134584723862327076218699008832572424589933981016051715361650966714774766819762325104543379365018860693309824126482525348140501628810498619367047682598607225549567416297153340924500126128277679725959614545250190961293583381879051907849567204157828599353207804829948116081077836437945403152564640148556176891132313277128503849512619930590227675443959885687959391953664960047790734524229019346497283107961328676614812778629257038136707367343249013555500248663164748773418095162607854022768835025666898143590547001038619753352573721207257515174274357016236379034312129663687210525730504771634403121682811538984394180618917818637969576449257933005422697564468363706350264475542286470291580175725429096625071618755498333104423789423040900454937649347840616592903380448438037262540305702405476163709603141551449304079070039158450739608974647534423436063555419655391574577983855778426476349786507608068180501735687162430237385601462360180592715053057778094112838601179303338661347333815924879337592727355078548462877417168061079077957814130258956339786303792520209542830111246211925521685519134559202138036435198472075051960490119893794535348074479824560389153805082131009204969256946208514341553161344543165694254906648262724434111715420381038676838383536224325095163104700739040362601664708523054803942664615927493536423748048989635916244686476095691064643291831441570556713827660707598596659875917971967218171318861005125361114057543059310393903635419454872572085551180044098844833001628817629395853980208908869339609885527132505314110192258477508222954172431679070723077078183126229256465134937985912202579250368226159069579284851814697971262765283346142506247107006804227835099228551932286723183974376033970442660995126984055309727732542991730884294074971219782576961289233871439101057912745735572113376910938488510506408705667933671018448463846607511541452551897044655257226381224952011773102767165654908481688715745727705842718998059022889875540706092112844387672395222205227591987130828310168114112783615613010076924045224335442401795517871043725059972601287083556150950216494962336011954994033514319530336180237338648861202375567365858901897232306673124456969360092750910749068782777882752822269042797284412260496380250175438287739808107559411391713365108494383379682483133488769857267300973372225017214684145784011891842004163267464302922618508872785398275121045041668026038195950434979968139767419731611056389931585466809803494586972469307876856501025596776635437447322794314382565432771694247211641401232117972432250567911343021577897155250499733873482054023604659460920723677527629153254361444312668907133342367170239810924001622967066683671556935475978365589210098177065945134561882387905938711556974697575752877689628743784407211567472365460895526208348289613057984138805229571526202511686243311223671914603038689834947690000825614378611563819557191067425427442385733982238940538598767162699007776421436189061887376092452884902503084906660528029986172909206816882698811458144876910837700823396622918600951319068773096045134371816301204452043113023480991799356072174696507804969063783607642556159428449668885584492855242863977290379266396090099943069247445950258160002933054323610675641829995080698130840361319088331955112808791810301530731392601733981254691981394216203058243727098869370307225119981762384952399390732275727231951987308798369431387470014417957483063710794406454316541337432453099976886249280875079608295170636493479072913455625581302831057145731010194641862593945565300746666242653720805267121524990730297481510244460391702906838449917555696563903296429541253368048479891127946574538297970881280598356225937198804858142979071276434564619944520041004375176680261415332269351089047564767787777861526969876035214434193677793106700499707096673199854505585739670222984847407174932561768574805119204267549675530198729346456743010352062394826801758134456713719950896366366635734408899533962329801512015121851145427336448628847035918212929134197171201543868216645272381929695949471129790663162504699736710768611722123667823651271826443318191487343938364614894238275849816523502460675654238073815030970857791375098716064094014163013579489273755457099936601958032782187093941896801058127485629261106179103391460147004862489200678517159964190993033054708365489886916359977721108544414344045367849484406059775660218216851354088147615310599213575284901583911177967615847870908212905039777490024209871278615132061497433445748947500827379619034462669139361919015086900138443171145723557625818482356014716931391047590590860620626803852038714029204570069566832061275646153327600501537030295914924443469173282318328908653387167059319196005900245014569595538839080004683259707789020737359076680126003703671396434176615160743128691740842623898416155926162304839366833169230607801239910217643686866679891668251054967974718617426375527170542136717446002170979084808822018320966173332512343911665832600495771115532575322447082284216810833091127945519658972205507663042084425553597286438440668663516812661446672713474234189364052111090467185257518447990439054579520038177247819684657972389516690983167389965478810418995412317763381764849489646422314983544488801872846867539776441805812006287086051915422445843433170196875711468307652206273213381665096376062824512195908624199298719816166683296894813081488630969953266395025880717682057532994596578731056379991098567124605922406008424179612190364000118601155000996886439621580142499405139292389304392883034623888589199476584868110070963700100958821799844340493066507825628775888327518296559683438568139404278059034408398097223492520678642440340645626916875052277165584956096270770928779851930605072080201654906394037873076835632369197727007482375908730574003864087479331510280984128869022398438331614964955202724102302556172713557201266389338200770439669433077223496483763536267563314984576217620720461517808188748208755613832853411334048628292542851304554265915195225669452590406748946335972974155654578557702326896093041073424522319399962136933572440763496641778435517011986379236829556304312950697484382237029685063752935316525228973117026213155071612921546875954438538718085781349921679458536094154878081053212052740470271841931147968764643319491435991149997377863205950946117878055795670183774516469043548943756785058044177100172723578438269069886372241841946996773594418532237285086155015481179091519536941601574883755909179777315575471360600574804492358474616430933429475129532003803065161746279871379734121407094473406200146570372811694437377415093448513925110872364725478006107350922984310733356298333636912994431269062285724308852356042061685689902801928883239607128254889828424207335413365528181061097769580866076881428669038816609205478809963346260170569337986655337905944351818321713173351728051629823904772627245909136940073528338328409754453094038439994002814194054097508416417542318971530941601912714380321925268889982592516769154031889914495469886565771909565576129592167195104898516579827514626363596613073788213980284138727154804186087744986070957047589451336612361783306932942587869346760094830248062011070216997689291014463496919303039729707805935850572776262620036651910043368241751894417553888255548530725064886431242293318262357266925657054040224756226567371383927062980719714112778914503450972467476013919841554404988734350916463930609353388024304343756759037768853372909196007770152292503676919623652720553954102866673781881982642921030497657464576416424494516020786891738057245869977331605202412170123006370814159870223277419756806628544445772038551241687339428766258100242941266116460714386431708571959404187326199646264829043767203007255937193770787996304293890339556732328063324094355589892542928926979908277054858614367386035986481361258012242586905523021902876940993739282522169683688254364587693003297801126006057659772684722017261542578134552597294625187698287559064623960229325433716686917847444175206543199062971936015896926931285688697986809961997512102757478987216423677701803413485007226244739629905505178861629639047759367507559505215931437389805771385216275103433836759761692813848606817178488721633458316877606058453215058891707168928895367956607054387654486087394370469560770360656981714119807614435285862441820729315593366593977198159121049728189496007903181946265153690012292787730359965703190981432827350876892154356736005167232553787401403471857577645354526286362805035726047027166590765852582731794121021877054367949084879630077742898102625000748389665485478626423574904876464454034424367086322334473022096606025694281625543076294173343847797566420954400055807417967965774499452813996459335336813107793576022442312859405008086192706297294728198136157891647883743865718628624792529129756115693143735538527811826969475559122762825643202977982334429796785312493546966853827499410427892819890977877050427364037362078296320735268090897067716717717487669081508510222130321013805835580178311762204124661598109764545448533380677499869898061404197323995683599530875034349662489474350158167090305128537286011447962802692219423490281210104637199080266329545201046974987109682432042856180875310815060454029396081851523851713772713935769271215892525841533192514871072648255223600401120668633069193381196616782380350432021890486813969581036902996291818562352508169384446113769264407780600147991189688731444039630989279903667561139159335189659056056997780878666296536161486091422235451477204430100201004110888839791845215814039790101549350668691893166743989180374040181195693833559917097106956897010685065810754774055464739753729111009302395860099668482053360940151391271162312745575100222240708049664401900861881928882897425064185141873123836024667322455566802134232541188495518080877244640098841736811309636932883444768220966445453220336441413830511048109171052766695436714118774127717492204584019655812673518247612664960717848143898049580097358958957840104973361149297711126124288568865704530931080214273748684315612676008827636890578660244175675379422892019307223354011797767342019700889656345493005539758517571069835841526850787139834337473462426192121315666927465024122876898074744729727696315120166452214469958184039782446557273058759339287748299450175624926866460027742354507068421601794408592865830433908630307005709155740235203499188838995396086267178695266314338016135808149737242769274048866380962481932866155509194275006847182722646441886787336917062313799333018522281438784639170792973518219119649999622712515134838880650163728728163715543768816157735112897045847377529481888343754180221381242947768043812521394137327477949509827993255810084787685664696104555553076172318362526802492862161975086481670314229545012008552642332900337204380665303088080831013385822842815275638248144571212473895241293864257411780144482000693404363445636542432450418320585042772677908194128885822533457072106474518430736960712162348713380358546054342133341754954408475284722196092763276056287461937997707816101467095790008124207811739556086857759269827334040843938153017909542355977795170677081264287463669157134159116571066287195718555037385370798051102365777083474023369775009127612852024485298336058073449980282148378750053445093282834734770690732890881091727146149051067073803594225312839741638713748437284125269791879228786115656129557709502070434675986876823167593107548427819801625158779680805860087626333993787295449021763550026144318101475908335840036547835176366625094928604792012213966629334389608850002427329736569881414390045819349165297125991509887129134556911445641267153531932953912928946257790933933985586967871241564929397509879866492225349987629201791494868016296507448375651797131622651608483438824259040323107126842761828214679982565601301731079337442770989049792073497783469704578130037093192280846978704324969858945092796830188303143624733427652866415685366359826737614256757664129234318730763950516529023135446016345520903077306447503869729128262342399617030261142011252044438446486880677819173633241843081916687747532563399332966405673988983858513810728956169282761808824626681511201100272792166740380635492790937213189496638575140657957537224600557180321958827664164975630309910781238887285498875949029199280345589783624921300446460876709264694917037441513120686445319951723429417791204197449185430630555816482519962323449292647549311036890865423115369158767578731603562439736225683985313942066408022031873404309425096618122221368511724148172746143745056706865383577162371333738385511186433781630647799951797556854991805655322547202115211793119854993099355415788483631015499538803363235445751752311364013750157649056872972719933872616687118135761586446738024358730129597976602250507950836882906973888168588321750100819823276767216626783045399179589193313213272365008209026229400531913399975580728460198415242238918482985267447350385801508017613155140082166043145851108038670691336855073889205474370930780589297732827979342194937078793036030346856142239516736747073148773623359680963297737545358849578962314711941067082052754151121474969961949412164526367319208714918007221012296183773288633209913187890869187885478246082681689071043358487707277741442434039459325105740394259917785005494983824347608303063612896594892926155119536151525655772353574291198275922614054564682055772209375283335837646797520203525466792148369317162944304036263154271717975079292487783927536826396339517306742043640769715881907707599337651320441149763405276611168652055383822307205241482858426770381569768993503194597782191242232530374805407921496229851379899610730106328512999291898860414762643061729843620994900257779726741464152200839698917097213079608273849679141688781740052065634374229300858681213147470528855079749279987599350987152334246461584702012291729213264455516450462807694831696835717083104661980686529506032198103935217359425775224024464164185280676175090393739068322053389151528892332317183022263159118199493305861503322329763702174878796408745375926979414888869447220059023266895396455464953289373319581715814995487947865168731857603947771464967352731474307776684249009535983150001068606973681860283365644976109929534629371767006016488741164360258638969596587695690458876722223713972858102826988983328126725361856817223631761211293050483952544469949535292364639647616864498428562816149464065942798593748734418598295366438529924367298121333395341975147839473082630846252761335760359822394598753333414630600420430100158994689752658692154369513446692989817175028278602690879085479739328556896439827205818800055528235383063725345643964139916876303584792717450558679426281806015846519244135276687874749315820731238526441935868437462480747496300833271557210675748495854929851671127200957567199857390855387004848722701032957759489613768392215144498598495869672216658476984123795734620068067464691257942143639236697566634602581911036782310979912861856032229909035211005704738351492955329117114871139733410565532894492053865552183183263036706393570411115880796081544821450312621185469843286478412383471027363130743249665725246407593210654591267060459390559117256091520833968509355771620936605911385125665230178479481931427866567010110992486920216702269544206695240429617239021442615708377220832370376179208629338188473928804283967603197209130922578807286669558658561295570017718711480500758414586404998853353671935771612403875062019581859895346282308555015152670101955022290455549355578102378424137323620445167717406475079870128274584440419419543401970043015233546236963601918893621731828681234815194556260772547692606589122438688787490662369274018559477459200943361037820833865224946643469448952592713406126541929505458854852978964856235870667864408781333470417367340865111885861689217108194215504227462381444104915605754339479148230255929468924090295628702019183582067209757682249155408045435867887787825748400611906610127603878827139081998114530285724330398728885350744839967497997861697175816617321700337600854065615291300161303519909889617598952661520846444552234530861003517141613875963880117696694380213054012654766964005149718179686519830585436738636504424808954159743008145067389206821481178698563899585248856521476464313139753174640865958560340151341001807008162942422271237983843504778800898861723361573614397813405939500037008447265001723011718325993846558588401589043647415454513209295374007218670650948909541686125466160078548411165121762860856578230525460329017253031061365062193859441514897937461355186279926024004528736339941582003879497034284781044385276810038159644081202913519163024917589273123906532239153279276398238611174327471549342004620653773201993027672473079786864660757911145638916990592094420617623977698141119217427884212579686234421663486113740834796951560609887305453814341996948470358321616827424283012759251034395837744335628374472398767497383464555142144402994179234374498619361205488789348507040365988823276501098484036252011584474799198004255079458591977601731204262136908954198933570649739273833532080651556159048370273711032842499357705805191776456774917539581375268125829521785639075241178449683291403383825032258395216769802957504989967706801677100827186704988020493952271986677792523557762870468122798478530983023664614177113282943060740112036532925744806307355152316767061333013151429426018508908608403328417476564789682745636191553538949750430218334830807206187164296212316649964442472084354581202794715188830926045673572223570614987847247612546964369212695437291955982133783451238278379417366180688725830935766809717304889679823731250209655305589578069983496871109169106536001218184537670351059050060737938085177602000857869741119238242668118366153130430314998264332244151800055267406557658580783362428202864999680738103324542431280558988680151583074729861302372562947467622631047883110765725925498648577228708348264451591564509772794970300123538844228847006404164442026770978992604389169957066528039435039013474109637644509373653042053524029437837187279938327405210534123532042962612446722578178758711532007395133457977142690882154650839116598943212821922237482839459655062123909666037747796149528511023782933838492408358555506699654976280393160554745806397918066212578992470751281021606723143186670910976343489309212594655809110140153086924785666955334450096043748172999742678766300201293419066066918125005029666730236596552690196179256982952526626584076952535982064239083733413397735969516966733918350255328373270082268908738405117099428858183709777281936883563626693934379439256402727865165883195171523080025440875630271030792433748957385157397070594189114911200153951966650579421079107182928176834450360686456663450991466032081510955661596162210049982497092512459774999316577981761645544745362737586442978855834572433026321004990744679660171518939843072705302299358206237160740087586251161690960919289251030248957559370729225109681752596109692943732699440767149073119410074678367967192109372727513993848492624631445475104166319892184747742703093430465697347185277329280059962887947918427055829107688305275124377465302536905066936576689801316772024039444137409728309654410158213946576618458915544898393202868795211709474981548708837636148864171000034514621143234803023330864429901692274813954886132059362236442109448745905670361321560749686708188080697618801796829859844269728733259444844317000389581883616693631020568600333337792956553731662649748783903545803917128294239887449110468287437246000175047050777352419201409404851503105469174321666964717816047210683393402693029664752517489281410457909191494634055152509456183528726303430491149986072103986754153064609217292774164388413538916803216251937163688106796902914818151774825754596755110483264751302128997768605493136153742564143980993361511604655218947480197553696461203773507434268978130202987101846485828148913929631947661638323627776600014275596954157193764109027755768222247655099236530181117310643162452458218702649109612655833629264812074426024079166720231706668425497682505705953022562386072399580044740956337170297652481211824986299240209786912049148295485840010234162361894670783461361955702008414276153866042150088389208943811687874105317560846882516836462054444000945352218133067766110727505444411935778726954256099363038589355477369573116998331503198706604447611743648683237562456411651786778485925658976892939926039624054271300243795160317360060093137043846109467406442629733139981604545967811009525296194503992931482311227676865537494455267383230660751467872010538865743625331058104521252132017435881829697143763018082090439785393889143158449059872307060733425868078313798026717947758103601514874543712383228624684617686433087785013763845849562010413243809546199841680543887965205814085545299534361239946255157708505984350749980989571845543257134158794287688074161724752427205355491868119014923047046310065564425118313593807969494874193953317016917326565165595678578750023843561377993204638431376238068585351475015858689335756476741493818509783571621949040158826626697892957521874270855863018011904817333653301449306942678522420972321230687853981745200380571986064832154798849736275446187513299106243212804366082812555611639585173882815017126812502668713839294196373395543592026778253097868226625514028859200781156299991590917115666662309010486348946793481886990697338414252278962477344466996991542976899210656652565262425775312390633505399594036650135631046565743075180391535976131952648207016686631834512202340286041012506360435121379377918804989075426735997632654474893887583985942484572573270515860043719186350789060897015382547405542740452444455745496819698160399737841109843520332742998503271574758028602166556042631685735293440122045479040859489792443922967208878941369476709274492420752784801106043194256726291038368303623166711760612771715823006508918547965521431862067823149133341711252552791875044304115741198285346589638094626442016062351017857921237933444977315581750784304409656009857694603856316885810879595988624373229270752906404849135930040794679244345570913098546329507407764353224704690740709641513642646968881156572983549273792381562527616747397286894309034003524610512721373654267895675431599330052833747112345651148682988613776721870125560992632622986049038225349265598044606879733291767896747195309559001748351277485688125089680891786819411644210497258723276305367950149386739916780894587658119499249517164868932063087316490771756651222662646500286258076316189776721217456944797556527668066510029395288508532874645636188155917236090204593177023736067042630934570842494799558180289483987610172912860309262891330459950053358244650647059312472379717462061767792992870428096259004743774087262591732945113935538582322881003729774068314116189447823180170297003248925648497526918694893976709690759044856375914882428528410596949316795675817705605437977140925467161944971422420290791547250256752337843911365552860355792964173397982167460988010405189053956813457750921566188757759943137614626591256752065618462325212797935870352595463489311533259513254503039997529668332346382547494769330331742470793528002824224177611024980828704126087595970594108884955458538461865699793870258317266674764870289019336167295665883176059441437709716660210141992314940719137437343756677868239413082465416659803758756252839034260947727040435981739662975671261926510392937089974891587582539920710462111510376449077997498944269271524897885234515401074655570410506112184701652101857185954129155627700888073121118331073705604704987220072417862446261133060497281356495887826047082016535515822986075753645585799102469481042593813507806269322265905522627929675989375726826423131639988117930689962397336112075677334850105535795365308824707798222714913103409360938648246155424363327593916538422716934289469217151737723876470212176730886333196184243641953677368472441776976285885728148347410211522802584143502479078473250254614330547435078073649964027221668730828715130029712134438212595811587456969807063848456778897417057074357803688761353164885646405600118804985845440926216391404283196302127246123322495517609302392343446330268170631717996847404574768117288542129124088869096664786532785999559426790443697011693348200441819890871500108212796341172615742622343615334140077014105814292457741995469964754007280119169545552450150267718502025345895974759007875372599393428704503988331219601690571879064918814852321538070362120585857432130830419639907414486096048974737758821992664361537943662176998312094066300155391509271413879282846290925171924169896821604401618718460978000774550699852662144503084817834585943299265484864254777308964811563121356837926595069074348105859150230619483835866651565255316956443073305634563327222987876840540592815391674661969699426060176579375387606712349543135750591774316717895521097475726761338726223223698507291076037355522709892230729977324425055537147458415230302409364261377181468440921936607166785988475204637572636402070219999263644486761806317592511705006731070241870025241752118669875357950353249558861085589123288616358456960612543444279997120550429591385070427915686830009058112399160257108736314694349081310102787771905184402232675653561170982117786426830674076296855718720883760915071416540127145707182106783789837572330523831361561542127308432711458741964757036931134206679095598825491639172862051918560297070549058017520388023365212749011038533636056261096979734492652495309388536047860125026438727081459968964477878056756556464678024698908581789167166403477149308158851631810744689366019561425988279179234110925005327186611198204482737473702438344292473856455754078563351125870221430270563190391129523551722023519824991457329266010166336292313477369321573712267174871341493941373259544645772462533492491018079703567670577175076474414863953003292112559082414184380346211033983649085033378664440164019717270118084517796543240873963812203416594077071602031784600114218888230934110906098156258870732534288545137112538004206608630291272669273528145248190729478376738168846738141761682011796877903461952453683363207260010147291204193289115976303742886636045482223853664545408527068796172523868274674458714602824585946589903736926349245765554315488490734642912039213067358908366064694711424887285780536764835175842306885448462725867908798673515593011026946151579553052958862090830552243801392834818782138514223228280595386025147086847205128567836701985911565314859063980706108502915741003173072569716900959612648287911967352343936696752029890202015433666461679873334970980016139463115840040000939926996210725854977659281046937031642574542820066994753462682912930394898225792730477219753743753117028034621614138005244564041623978216548051426992535992349533710151421240279446493757865748177183593624681005849141306056577892014186509780708730044476648120879290943102877113218093236108480165663420620051577749057633522069207439760946493419241243017583025998959872845074670475455018350885843541784604596913469870818346913797285932839025211811815764955414871471486488275122296204479890436204042276440156760754579544063966394020474708009858804054517270128230081342194337404881837114248011371738764711135270178253978160385332372855090979076154752976487420345622273488809612966761103813678784378586712748737143967121071206899120177409081084272959097857788355607527640183321938641078559436428890168388558405226001955198796689621853864131572238828868650889031290163178341069208568116268226291367262228493540578240417537344452149411137110409275627283728378474022506580165603169116562517746164515538921929776153123286849174699583872298022603954366669658049664155612314319909471831172192560299342629400582217676428232615227023131273487452320456175886018659244774559717519853241738225233190950997684627111713311513113679323942766121244120893182883035277268335967198235541780928456120338103463568754142611420053070078669880907201589823698803792607827806743892726146849685726338234748786154150969042481991541543021424182202529571703746229316595618730949477230841742275819302642627392226812272786748006811046132884142315042341786605965979683741752294847924702968263735390259868191729741106088607106792703307076818227681544433526255887811236890839180833575005858144453530559963615870268091218286669103700973279650903803289938593764907352827109817158959383969477465340508047272968463054796854852276384315407511433471909109877652412166527985955019153327884201593927993605461804713654782499773744513900364607574004732450948193962351252734000941032916785046715638626844446059873852602100753065640810832579754335439909424844938513157108911858979455424372484518469145168861708727326722763658277537796734794345955780349416960825351526018099395324676363377521728990841451045809490577626226619790977683286926135655852971186489419153169478274061878558697260246747031762255009345022755887678086802425234674330362409224019382316897359536594942393102939620448416813493990748378425088259071212438080911953816389992136548770589287076501305530954998000229370413588004696559166595602170601362466095868793341479471621961146691090811962052191322294791308196955280006650471386892196977989536874639277042000396608800706633332435129554758490673434502062403737227388345869086342101682194326814408473741813368230218546914871404656473659317978079245786345040178791388013437655246626446167286809738503741080506531938230420068198225974792058607554708580383985644999385326588234598495227338505466284981570160415393620064889621921472535219691422377697987379366435875776480326074632448113076859405879430695255966668288693078876237408173728204026276319652527335423683341474177968924277598885313483166236751702495749727054908647911951806302784166489865665420344902814020879864303053917706716310014220272473497801273242307817510245083897000521567151241920646206030579114264720445644125126728284156280984213186977906138240093174263403777023932657073614902722166279718886751092435655660511932808649029067938598781733607697529853877681056659836059454296707299028563997753374462876721156886088551096374321260894296945134615644027959599836481867099401196417827596780194831352419880686350062971171292237040198086461851533461184539059417892414453458254411980824164270771869400105617731017629110535113636861707855531758859541440100980539166230145733084916184985566019445231258720271798087743974597916096639485278744013003434604228687774074532879109132452492625462426525270010747892459883406269988198507630569867755634742506288445740485635463170947383135288040054023515736812156641514767068804133835758530726538336784288851488648603929888301207943394647848497027890069294019760096479293621776935824112450677762088819952565345809694783750822743920301399994557295049770525995359496234118770276080240415526404525452262682078302394349376749227007349412400952097520730097911011429166488518789857311606317787213391799565483155236765617056097596536772822834824771400888124819024070924732411790155426080876021500166888750621039301163521092918204112027892310760333280009072126889396196366070574821394048441443248998098774430917163559197025048621236626318983241878935355965118443309695700555289601891487522198634945774562603497963905939004683024514526336344789651709235486859964756199353608070823649076843059398329424184486070007059501657195758275156700338953870213944208452598264237012702942902269977490905902074426702607138678731274941344300638350902797487452571495733447398831931742437761732040056619298892709704882767916077481834381312882368060872327551920722628867733648972796629239284042729963810829628323458409786131528772793732109300578813235503013742175594713677441809083390503517464136231298778797551529499513913732257034983953649098903489264950170510094105304610430692648543531443830772465743985804092507130240271800193956136228022039421714845880720498571617259429385381831349404549101511031686191101730688614572488583024299158400820843658651109081440518971143975634163307086206484236957130940953726755457344309331713865398817378043252400365625951969717106673660652242980313684345148851877196154646639835227551332661547578131237564356585299865110161571013417143506180116862033587935908295443444154315064751476217868761543085434913346967380297423533045775113006076124128697310514310144300652513593389457942487944832279548098672333777690752795281367350482533427403772795065802807247335764532895874689931679821336651769663673622358623978354490234543117090134444163026543967200528204636679785880714598335195177479158976017847322600775271484852738565925129545595445541141796370290862270723488628476875261036824435852157073160345275626710987814012813998565530426094780310952841117395550618181329412514807630247060030984838174240682665282110250327345672122235391460396149970175754031176884141180510640082198676338404942227498932477698372731646565473932009294196883641747053481618668830675126433323899371082164591212105989595189684226272443493915034826845736852364173542594065498526883348929515849131738300211828232925316677627977127706916150621103552337220486340734176542315377998619103128803750688958804170487161295904944698118169327719006469367668800649421706098755923192772881183755310240498737990309591422450910667689847508071861158379498357434112991673384103726567608919935539720097480624608464045033109008444962116235278580542577378739346241535420700467646643166697490557136619442178868762436546076531182214718993608477303950893918717756372158229159204814511096619477678121129480347588433631929375856261208338574233776129135062223839290684825719501366764997943799760326466328328911573782245160986230042933148464323336664779829517159399130751278291962012814918713147186655694960971281252726465908702406446098238760737716630571348405539415242094541274807367939907247195087185919002589707948302239149574084690517569624381409297534819262974981130929062100405047857845587103536036037904505222196261921036494743662344074761512517928822492688732817079158437693772853322323254425248429622936009095849417426722407603218026319622478000009532682738524995152748208186782973430568549125988039190927101807219883017730832669059450120786318113046038458612544456469069891738070997048008688336846295455661352730754955722562264492592529755107198045689896246961990266912175578165682198378754012430769269910413682664673967898961430347081773589493316884047201929749225561235562181045278818007804841742960960270830651579156971903849417386049927525060049832272530063793679373075294142063278303309976014854385558310178835850758567937433960824293932428905083436110529965958381499620271086143838623540893307330602049089401678548727229436780048800234578707864656454751064984988573703550249479756524037700643642122569201162896994939169117622855273243184886284769186850683836520161053160595341724243173506819528236722191049658716702500933210451608743372732609605829853348713955169671750714031654674717189811124677412780647332063071276015905141118349996754492276130222927442445090351330891780407179009508184939620181730924035518926301450776146579217032870993244764555774326962556645462531952992182993151275697844217146502855988497726013423068130457464623139920845869974823465866291792388707245422144643848590983292552746803759296980498982070431045184289800951049366723097563397446830108752276828357112058397474584966058267273292638727161724784881411425211287915724272978122798295224935813826654738591001717237903198922134679813749512723515453485235240509048849363286165145539626534114938466033696161121835212331992373741730841707234252261810063684394633417126676805220892342862488351183303756608572863458044038399182818114777214021273395524916982679440399276650036316973565082747703910328399449978902471767572850174917646012028788677422650896001629341434615893077393918797172247091072608862869496821691014962956048596171857261153985572142944628845865691251177993605771378347455039353707822475386990574219614186751427312595549296861102050441547157897585743958701972674760856774304030497171081623995691087059181588489152040863232539935607084767811418472490132741170565637217560323610493244395742205114563727109390500500454787695171209634594596793685726795631718105411410041787101810540577306522860038627789178402526017204038394969945359804201170206856150464334190634121398089867581999616676149803886614150752322691230640490694213845506770483977120765639544541526976282088132664939396789118845843232929044958306624754747170987502015999058779594074725657379110915132010583536669000750269513116735962883729538408654075518955583853872430521286334740637542674424531855812830229183706373665101288896183566224834792533934303401962519520296842927668730285684205877172398424439313192671265617248832865974572463763364344776537271201939829266548640023718486587401905322943976574733348682037265547571759231535946989047632462382131353459843578052728044893107288166562775373601498521246220468241627592723491725365435025063553528572924608834387892131839937084516304518746856085171774699382983786239071765924162594986778047207518254779295124893312204844217664650930731868820434152779964122323597202021508748147256573405682629682926626853147333710858919163356723706097099031856497698491443820424911981374893325641544298086640902850886358952022551883915396653437499818744348434857666832791173199029995320478210030071360895504281386724246947935782016006020751280821067655560329638292910840252331643805701552974842170393162141417028343160518290190148160102562110894809022650943265235845576430515704144660535592362714981797149382129588798246902166091770821298517477215646508382139367034749265808655755222454672700386069569822264281364738478876724713069433105872593488829924986488181765153198026787052836772956114707519378076947360818847685057115352210941871700460856703605927394058065194877546632529715221182761344077264531292739989794307940050500994698982372863533614439050821090995895152134437231009903927001116107413682353385543569374019495011917949590763920276489416138859579547238037700889676387028580403667446420506701310027985133870028069567317810271634454665350977644076704418926511931156794320644349440272435868165554090402690151992091349623355371274653430308921256598888567867196833659759691594576814042132183871638863381320131607170675708019306165870683619338533203384043858768023730756453588370820486552231659837383539205173305458219844812082516042031981774551312184728377344972495187022947861142484163014454961007623956574617520049713584765165134102213770097505677893130516484134610524879511615992544085758743434585103765650042915158206546989062864447021080635608555501678225612973389929402683589917933845779975740587094949435777425007812913534632000141811460179225045944653069068961935880910358748913396114640418683096572179587555405594967433041433648599495052871194120303074636358915012384818104409401049819714748666840969327299570879532629397712845010599310214649353158042781553322798565962201625101347795663386573875426778213808934973394654622393082792501899533961833800192788553040747560252011171589886086912082859797471926167077327845258947518257076158968333312423390496851771949153523243860744930850496074307375297746190729349388093861317228778577614295355965018271509383301095140899294275273156985947342347567913748616541570228457597838991656352952504891585089672646688125555510802652526004442105055555836925301834079911406024893792271582223812702925283841328843704523926541032948510435953976705831406445397013530783165781310863792643986127567883242555330031976943154741461941334944853437928113850522688602360496585016716333535145877372328411941467522143076190331153634015706802898935110848217529569022825096696160716075329953993620128421018468349205014151369967270845872113520315137462710753933217178347608231836556190545433166936490428968132918969181619955496078716132303581570991227375402302776630569034365044206557766276121947391301702734907861564225191376224112921342534781512772556170472080229864144435372110262035145945921236571945652717009855378064293900548848539916261474465686509242592012807326375804697091302198442565891905081602849017741055763646199100042981220131981114410756296175328953493333115871554455516648263364191159878738896552374577681891157626223576277075890873124567140987446404129299233539080467466355793324049265193804955372179471082982549303606830291107484167332300566091239837221356555222055733467922078983008050325136461167954116519700545685999655154028905316886506854025823709193309433352924419955246670304041287564743807131919168221372785823137357467491006779893560161947251085907540609478864970617140946404657516143534087439854624898110283356202132559379692842581029993167477417696532043829511747421991759408840647046867992606385908923216885406686213405122594433652940962288070154215752760295777550456871582842128154429103514709011371616807540056339950591731776396703659789074318219438738554330962460394109196825411147654382492355752097364132853056142132710338550966439448299350088528589381212881283441710710042950591328487664412983122097784323107452253777874450844591272222047410746560013975660384686955629087453492700421456726527244439763042816733571829949965895100100827707110017157022314067999012885758442052581763757349565576873256743838394107121359069288592317254349823123214257308413615579399249470222039931784845922503640194563676440905657842639308490155259868672325388826056386760480381880356634402197404381312116340876379383935714917619026117690610218912712207496831986459855010865151251352748632634557246935178320228296212269278794607390402491247248885819257548122660211037688084046200308186010600364061704325243507939927481940172336559387372296186856773620947925023820980342161285966981309184555587230049598651415367295835373507133356742007945099494850141015267932940352375134159619086746205502717374529505438735415576460178789524295104678891717629255183868117469157481135053617737090151373743532989640016837569861204935837630782786702928759324830576492289580649703777616273228279224048067159226564331349688506547559615510630161361630776806872636929460370167952969896063736501200801611005199663281776196812254219328357409368961015790554429953478174471632049364612625003827449452098136812656672688073910899450743348555006531606818696573876820405587752791646421879374714074572770438276642251046665731492293385623850679626461037409754079647727113687949434643172413864992327711270050857971339686687299898048124848872104667931165826846717092843638493225183844929287976965075111422989928341516839128071644796474088182562003396116990652163965389694934150946211619279809526553086791930771893329577109476515829125032037178864730970780048483753648097569246959591232785147119381982320223130143872665798877510421397921241945070061781483595614727130833928280158278475055785302425667197124937334809694848080353652810261159231386015301296506015931319224697654785276370643196349120215854497002767825380011870220685710545896092099902574784867445255194021096297899424918927634474609993703640387180382099995131620986066026875696994856215564403452751825626205484155623144617029234532863298055522264776080338353629315245556866421760790025120348995274718908672356564853862813065491225528550287099465373130271132241310013134768443986514550021067026463234504593299234359831512686162468890920547109357524130302281554509885332181791013561016578331773415135224051411024123928773510122323724074604094188254295678905055856139443872526555039402458684734502734411373461498455282915937317412041980517754174326030991262079784704801682155209337564766360277199177467022078777605859569945368208228159133409882626111786940716262639602132462515885634726565114074359572530366336357881854377472041771708557236930024476618127313979963403377630165903504579136631604960699311792663401293206482243529733647879175576830742636592858297757385586414603506137832572303771616686427532236943298900606138771881453354814852794119446702472791244231482142390170658715548278339177077721551475740575607754909379183056592589625088989541877132204215112913551700015896590826677965586451406979339035169658704256456601158835343304275767822764882268267700535532469736846897588798006659401858259325844270869277801974584884554876833979655382709745324496287160861289026682883666219026082120042258555858540531424992745881732549186543954704851603864412389274011447797518896746379439588770636567694712971543001759426954264594251847721082071927638062517043976768898872286632797578511472376753156404053978290930654806587918512981124591627480232348364406447286234077673012945475528955182606573315359693413436024671160241167408117668137056168327321492923443378520938286746506048891830367168551236516523095123202597096985805897869109961456757385720191181619807370209837397329805615849844372064158877680352792476982162370258133330575821329620483617921709387737926693158880040071725252443874699851642273286503360319120719288380271871317632039362308904026302908253917878911161485186085179728546619509746208712938003182057714539769693807005664342147034699093808628743693447646835775942864908074488099645308910137617685220934859002807103134908700305497115572893341149585009992794527630305988684057366679524209465255171671112430445388575144202690490062405682461434808814350292083021620957817419619667008724290089094218933153426118334588094436275414657738953766361270160029744038880626426084626192861305761318070804164082819687137846510147540370680652492427276061259512034734089816948773662037233911014592769548914196093500703548005174424152754205026534382805354385346162925782417709545316941859849341054646171502776755234133436366826012949594465433634004503660856645105699261708514462386761459198949277308947429694842490635899522736194943866983587678762641957644181604277474061152944048421466887087236111024259054434759724278965457342801281880949984171009625998325733810131543229696210948556261723725249169229097982375143383527262503863570036304511462652363742566909166320830223989781039601444533935542642742717248760149909607542774858285364621537410900660924350493431605792954840436564045923026982259192705985614589342770042317820563287823802437069237377525080561536648653542230601855623286786507331572779245828594378242092953288770914790973472286653638383680885822119064051044513762818047899900187490498229889809152761410838337210846943282763053261226396750735072160394697854342872516780664942197879346686872555085088878462925003031010017792468512039202725626169427008442656374051877567450619031760799465380690807036917922181768694779660568889338865173837682559496799529451600059744334970793532280695391468858156824517241749692935445441780262222018988977896199872717223174735015845799686461805008829568305685086631929518599053040112770091002413836633554429193875231226753248900555220429203497470096675403581402042378278891675611715647589475878723868500708249101365022073124436765476013927986847835582763014102358283472850768004939852991365744425641620743057254508586598324334843609278872813044849060770884179192440706473761742183021891740339024725761278990814054675551506669735477577821938567389732702808410312038191754521312832409427287084863864082828289494934940027007120899561942902807452323064759640185293055192687136332614314746017567439202341073656611137091904894892681765397624170380291323636845986814884528346523718544718558574637310512223506859855803941630309409164085672002292975274667528942361462074190954111546411517396298492264150128276225056807335566764679006242182137594818976821143182676336307754310455068188040505045233188215380753613128121710124432083283136560328312322276784799647462053039072052413561402661277069111056625734893105788719014832157651127438961460682398169157478354995874389390631844042574042007904160989390846042299367168585745973948955376660723280522729034163609114738965952394733536594338753673335298785602087584468402171246973072420730773539977693682918505800930340105587634648246809313256915088058470387422940728071029144928167794230287028799221422377251586272121133715116957778207964794658602679033291108911718541883147055470687542192915021964021470367263688193144172099474470463531567447870215972813756398389721540534525630674138181603355428135675094401753057597929416133362235682862930348374484500607391388719269585884631015280647528831520189700165042936298083856018056948637895979621128305543734869579382871363268434030180534935324662355502678582221704955556750371751905499798129959974645942734489640130360804785019688446339524927718569000747193591891306629757033036808118213334328257685065926441316687363915346127637229177995324672340424646228676152306922326574651418988304638210600000837623446258308522946780639265540192356911881004768537526113120016155348740725311024849228838627682664657359619562631324159180640126214227580949073479413441026984807567447207694008390836389170640558427467460953169764946235704753569388536119228295602925206941148699855941775877998000883264058928113164798786445837642366959222688167779191715468889553979739865178374776171571731394361471020342764764429105799491592011605727746006136148459495143646800138886754513819532933583345062153454321030363361664331308404828641840645974381573792979960097616015809270932616689535200795773147924073594669978063816845810637392305745039928552259046889585722268509187339642602121213341540667386827545000203151209340253728435333098785186240218816074469815202159558114757033674412799057303052267567427126453217749530280721135909584654255990528827729389817636583145884330858471789857201052704795234952163768709407132790019495773968515890841459937717542604549011558569820402938153131508261538518325956379565727967606765729849385514280219566703159393094741499598811636924335727442302350142648748946991777698260496252367781008766983922659578598693495620483801668398668010467973195399661661742250039079678730520320920644034253565756878077488330064303489783638526260816596950982240035600907195895564502505598720283249415571588644546915997640991502367452115011538124853597626142599156530451504201200685403776618280017485935232818827315691624285347422172600978676211387154719650889298074915379756456978618414910378263005840221516423282476891295872566868938091246957354399771497654445199774709762936426142661693952627343456158763068107363029491439662561996078732510131941356467516814510324961136372335251820803817203970031440979068013911074709864132234207862705550793299617203673354298595266682429046345227571033156642996592024715180902740320335876228729315486398361644435485195115101201088890519887128938514362155133516435353944467463896660181883802393024476601411362677047568505668942273636405200766457553749689336735007376135566401265391923071160313452177882905082354140715396735247726446948336633234120974140511839016422946992612144617683240937134335834856680155613649781197401455243299764720757236292229463393528221232706737616348720027827108663039304398551024053687026686193757793071914892293069080052559586048211715965833001143250424966787012427243695699607878362505164692970581239736132492081038961517287261024567464743893285555616890125953482967187966702432602247905748631900672571139004418698465146981868931421292477844704943892768465637298725239760443619985798629044088630878025778671564614952116317951908859627339869368917306060748726283289210054712488644493762313426721630951027072587346875895578142154477445120102245786329963885405249091621672646230094192565586049874663924574630224353885770751136729322487886529664506538579002012342063772239119871741922577936861253295546481282522221842692520927272191417669202137884184753025511327244816674778850387123480762342763955682493463056286168468655086619363052721753304879311477973730969269035054896387700284467427087293860116195565192903608837747107109389148167113005951776057173674720683847119117589859125000953752049091542416308627225765108279302762902650007314998493994991079101627527143742079597085643679192491121359547647634796542507372520879795063499320109846249659000855172270773204819610287612768672935675026040521274539158058723070829148569370548397008759382808776925029363373828354157019193469673898456955356422072510930228415457320763113565416346346696487264420152790439589050916351982811250381470313650879954826689678583408671465729904213240945855071801719895971375659850161071398555970448334381904403924386569697467399094819093276912515739808883210644587565068031556301019731416192290029142345601943848005499102158238377322217757687892585784362922413732098327598919643332994628107207048026783272730329650962315773024724100414631153736602919253083558221473174319166954132698223729821693632499834108222579812428469921751765876661481892013243004965447802262974867333351216912130699751139007417847027132611686475023450553682954123083033606944778809979110423906100925797312100660025619475003285922575610826809039823773595705122648428878018756354771427640990233254385440002734028497189830139325977633367648093839159437369344766787179930691868794826919123545592366747022922295393492085785656215145247634353848057366320866641408152486587978023823025678365566605297639720386220788260510635912274277261721727032283653446959330462555366878210172969633458030037280017888896946390661806043905840198204726956195819861011211989840960253940338638964837530469186341459856467966590462844014091804344644296776908654332844827253847733721373282079048476181250640372354876596357067594466606089237025581930344394464130926752143937480749792118552748316123643065365865435092076209170781300702088094878303269759913480093349088696833028071631282133169737205137504598895982045996164401406081911839247471112491517061936534029961793900519750653213989636125859423344471661723628820581188760167371450937871292897308262628214539443157294320406868310007419069576112203354592174816580379657187452519716723420421525700852450429556378288923392034400112449404277775697182507288304830433278313982347443040165649147880232684519718743889852082679713366334285435132765771203790419773623404662794376810633976886859269147141817408884867964679083200854154144755553213682283346886910172486476547498840541591035687737043562534155686500451005469597764689742155076564866138514329402111444814006064783778518678322873232933255440946776954366093398804812150147400506571597007337052460055914999291921747418580837630895378448363216395356475233990061894493361690476770265209817681644156142982896291270118644066050549050833305758101383847015250025040685310822790077798982092199098641419147464114536851809823080338784889575846908522384537243427719132295084747632824332391848520488569444273048864102758073423680672215830912920224027399347281046001043029047262344072407109345224035465408740210297379289253451797282657635793834649248016663756244796894438900332240945194192820999604731670650299315165605180587940280211535064495861688302980676180292927454349310940768727747091447705888828788189249311031210045031113567278700854622839655560925590497981143714916067937375060647749716695080878907867670570559418410338596788956228161491204701159923886940573110066821141390932482164798681618924196916878571464506948687951294208466509297375227672388605529954669430873677760536519556530257690051312050657004538236727175707016254362489545972978457220225155234408085390503196093625978161828656653221904018913183711828500333513971727267771337896650867172049934988297116575450949444025201638145692577331464339992252961020145139102577950642341933927851458666485814356565536856899058663683123442699610704332134185779202428670222020994001465255280651018577504792872591441640846047100993326033379821982893701172313496822539806785184851125543155975993963788341276578903577059912767184676007081434885186548975636689023888945694863284961476814359356538584461623749631754159627248264646839395524185391413840637712010988810105867591074260605719835777910704443687501884069958628799404649513934232297560073517878259420326097195428988592239697885381368711450135153269752786913777353455721352370393559466966777869741130713577069163860741480548034363395092933408502250536282879576564807969754259032084963233570993247632152680496274715490947516265172697764930340080424850716312981556470095154116624689171823695649222996006843182460796393096642352975456284249027448295126978511621787318432528838368678451051111216282122392632069510299124535426460918381424229261477454853106431214325369963667231686665274941029507968659083581388023912811450680622511411024087070005112144031735162552025821479483083991426805882527196840257093873920901915947739201014631702367767791837297994660953286380595950547634067326219874517723169863753416136181475390085039282189552748859977764468844225023454255174170930980736920552080469406429472807012051305583620635018109937272926316196280584845575473743991524309196564081865765597860499871652733824273254581449646183248052164937122787788759564401371741258831094226724034477379229897753510533647857938363948390175695750014458836905283626757258373664225259010775763918827885707140416752864148449171098223800910661046422989212770341327874799103682003074437215488553395437625603799799316732490410755686638218903102811367739602154491091643756689323445471591323209342438310172225865262453398332799548441493616615280075486824129858667056623033774749631864752614012661691574220431590108427153695444917281736387165116641464043016075359803601716089603195367548500789000139542123817132592766740437884286492374262284569170730738729682799142401715077352925988006171923383806882586043192431790318883853263981901457642190072155004411433642522380177590323353263027765491629424784272737319202610937770929653455421984116652563658481734035622148422721351195164830180551588103168201346668879342481638692033488011774245818312914319563640559090423472594891641059133938326549787391924068927355467409255083990683958422948509234696508726693010861345747909956793332200118404261377389063330440870008594521338078215879752852871045913221790711654093256766532584813611445140064871522967360276450628345147379942333387232908648315827846281217623216250348782750618638826849938649137706074776978572169505689982641440725591172042272116280490982498146816860849691722233177024017680764118086025881053517074325155982879370066371270975714432252364643467078547681061769477631588484046332244497224780387990200189041699239108109176672078011958596250072098635497314520061195582576985373498742227595016787902750353990626013079502035468591347011166732912678790690304183867415015092129077913346544843880180900946228770209961334152368002535163119367337768149589024659957448923339475802754331682257264920417503329435865241393590525115805230794553211930259275688237826911533614565697023981637734942491863177314483593447415953427587431655137793744180516504766256102665406161045123977605629415556412438144321743212998216027277614176997180300185718071649547507937809581701952803237074490998333935942503080768782759478696111844425572911732498695917011166503198440716292228663336834583760844247490512686429255261378848490859852623031613065208511330288939644934141569228626795696094637116951903318602561903414921876047956864812417257068969265842693930352565166583127328862482977802621047316938514387810843284035966831847773209767566327002819325906758588443883290522596501957569508426288677420951504213736928863541921803377302365934704800039264317151379193114978596948130500991523257647659321580017252386572143630136858802561076751720115686555985253800002208823639157847825368484472887033446609532360708738440829494403521769702108031849728207074686191247991194590977111462133005836233647413038467420169746932395908856849653955752534341559369345016420831345966322703490555434941658348061483855110127124634847488975643664125336551931092843753371242150089854516063605502489609795265096272629831198052994800385843643919543171176311779163172668139613396817999448849706842174931707408388032167404512425014371113850378051422688670162181675286031719793034857099405582934033366292348826460545033105018023607685431919826312928137530466295018967680823672923125904203585047190903618012979550988657201082157243253998832075728372961210458339113275074220573159885901807367860980352420924973852443550251190198089118604347499536725761122531741683131205835203965207973051555319954106698206225521259681108142925362546380790289712767200893945244537182799153723086776863975095955798967966231406757744797806316889622619006127080725290253095637448836159996603201127193452818051261759811089927041970567385399002406549587187816267100877767934651651949176703699461438038485754436104870549811447638822260880225079135645284462578725740124606775654530281881880241108421619438974392615108948926908121881787496503801025390184598259074175233367153573529450410515337100920919444159080407816618892146462848355491013921539777417941396456565432890772081832708263100744274456145809656208136252152709158400637479228348778708125683302153562923516417418427421270957778274164872306403392760548492755056950762150898393385906004877881662730584816909213273288387371845558469553925114293886387622627457844020052466331231250257547986639328437577480767734691592352436602546212486786658595007314572557384198955502685080078552630970586466405705554726654324654073635285068763481485676231420540285949433666918417602444862214054200586814737069992841079816532378322353454226332893292094693514319690055222753422003321281220375413049333756382338675860559587584295362584427891469878608787328320257002529812804800194569708406378454823846064507265720880431605770559719424975090161829292640438820554163228148812224330988690052981185324240743338766973285911225631529629241401608574642451879723468303091924490641609563491519136026406401045241669451649607225643546649331560025948377307753493526683387952690669588830419511060723128065442989888211661298639816648905611918278475560237562250515482382233904923066305150102179417433072238250187820256597653835303491598362155570280472095013443275972205046788960560810945277365781438030587004779518880595127509867653373908109581525969396506353217841410476446640799079764515359404101266012751268803875223745652078345841082126076841359315852146818373075009444748727643315125563805612582318588412493129762615953021917228935161064396372016283743203419810042611717548587832449246634099522806014265903981136145213490129945189771628977124338188264892145276530131012402852158908273869471910467227491914779848793203492953775794355185767829651236155208616216308315132609237911881769462846675907272494014683792317247206191743835807296291911164382858246992206460086887674609059043632087670282615224035948223421516681614804912438737573681859771199121176494654148814858657392564102709754568145016341062222525416529873171962440270776598514316267764955494344673255669467802701405708513519213123829873464288487810659163219939799329445837973239964204826077720427055533557428939654215517234261668377550124750845835618821946193638440897145861618542847543097982820234372097730740105317405179641901434489997684817164913505187099199896771948679631750030444786213151980773543141767628064299562801591097581238147274974003951140658211417779206866832688216361661778149319515220678465410623884546497902426873183490826249131937143283250426636527259569080057562707940538618768431811134004983617744726349337889527204173219573589850294134160508573923964425337663511488991931231455402394157330252825460981940043590669069728335506094597043314437794255274037696084460526451790629637655007911021515796509574110877974653114550666139319080115584271615902796155321824797036315526379436366928657092106434041263946836453216184907320386207023662479725797347701904626802773791344494518487085799156673939822132885313524398707018701470228628133573720957934708102911688547497553339265901776093814597403176580040168001898108864581036910641069046875095139343784535773178293381065290357561673270000949986117444164004797616242166968862457138340915526621503639006526513883576647367082181055760143845756818633696651797411834465997101238622821011554268934438064356781994440670820521975077387407016490805330613823232634128251836516153685529089830650268677242349959159373682941225984724913563538066024864331518944818229032455455257823852030435149085613329565309595730844749595564995743176783415212819042482451287849394418402074523597602441532858712279375898979579776340404985264225505873235307642047070616480916067286292418738413131118467987651025759159239620778875443801568348903954204099774883195104957553149297742669387727646836752777108884379064051998116905171206924660637551083841609774329072045549490045230872544153306810650478548556358627785311467844799860612185611069405942420813001530792818847380731290572155586048005780976596182934293155675100431577180185428257114782876779542672927376118136097680159429175862433129556493341799677728389427146552295989657905227418876918169285547974596901598146198995827589600429197348771928473793884456554397393712195162262032104281552322412630832587879251043788302827006978994756336215718600822851989625894883616702822060291017920774536160543933062800419257142360015515251598335748158663577618298720214611687228028911133570232127292309838556473551532568031909883920640483845851660815024289003941716087391758298747285697969944724311393540291560806116243385876702287390062217533227685757220121378718377215419532390717320761492003041339759324511543470660645285775954969728232361597484462340348837795770296162221851141328763473850985132505394696834510521191493844094156228473111814794961385699779277229942691932079708513480422310080270728029793997869964791531821382666528710965773510484087837695532793028879155907977647614186060978934312847381577060511034753372542904983044536451065719776683426041297235797826159748175418191857485641700436034433918288302755425682761144004992575730008565486052977710438942472659480267240425428555142695777945706754525364376151575383497115664000848538834138133874310085728446860517872863041801460658409591358767211358245458172825294433996704339318456828234138705400136061860854495839912055311336342173483945406352878900240199583478173488597876698385004439156568848170012362222984934137089522146076307425907551212921563316979097529226730958687005064727768077373753634916622758795312576336806411124815613529888075761831072453048949255873592498444148791829814327095833502738308529835412982607206265894484188156631459270725376389381425741163742989109521975398467600227125865356841308501779568246640220052697127113281043010851094141976137344595016360674219293702522851622012116790194433404609271358214639941871768059595929918828339995236858497789779005589656988783025503087037376134748861888451109251821595695009650902741342270316609312411813596094632616478590319867544670738534610447433321086294550216604972885137825440955112246716902759277062856074645541716759334513679834393796804711461650856725659126191427235429161502184142124243488373114421137467438469370113884318968436918336093799129912134372463391737094199038061361489311673662893659228966243198426474642165575602908862606263405939506874746740609176018027896164823159002793079405977573770011138570886076844737567003948223422007467235434601826315752568113125344816596229376973849516329384309926667136863552541166815852583734349285770450586796088788259056671326542917448708835923258828127346251277075178163628862966826967856770441184379636690037624658596221150377752332585791227160949874137815238200572341257345767538929969423842429801118056049065756660245949552103333287715067075702863760510907922528543422064887692740230993197887570927458574711515307681994146444770369222627489383226447943930608883152262398132639043942227417550343141724822648558639743802103553854345525698109250389021075875054209632103583367958361611140257946941841775420792545723862260577574968666972443296809800197075062005494717810911814507058559742631788228036784905277049676525548261927240030455746511913734764263089401313055610760782968338301472841129288016556337345918566556543428294957461775573189339288597378075569091815532186557964224082307081063265437594348027642396709344039083267267414712040108796104251872433864365134751143642526396880434545603565042530256430245535089155875168070581666477972079814042645843451643184213972501956861168189287195066037677202131102487125979696045918463517356063430281481767343448301679531232388462024956468392995810094029884665223166052776269273509780319502020150561997246903430242185636376066539885452967886970758664148580463607617542535160489494043991167045548522060965687985555466546395420299746399102602048781082882250646373945949729584511910479269472939534218989135905769948031740400095695055082674819731704314889315287712980168218759510252781947746700004204489481293803505115158871197964232086586761606477990772783889666794882283952468642527732384515749285833145751002301934593497545067492194212556878654694885850909267014258049042327045046573609204443538141968071380930297342885007515309242299977353732220391861316335183816662801530630432802061475758340701196694989247769747828706792771002461636180526235106367862989501808330143727823552435331831325951554362926202301160143741919282723373834724664386868958383952686560888205280929700219176976713533635618630264803779799048745363856646145735783843972732379529214377542206012742716463855665021691692850895997553414887932101566634967153569092484945637589604853695142375939679290086881138398082488208396867794890300150920835782405484495035033869989347918418283752550109913489735222560906426176303904226992473504667970831522116734635661549267413320393528060142540125206330105709597013377027556602576633328652495110493669196638648946550906389916283153273420288748057822036180138276464941458092490074429470367123438487679055248025929531390025456677833608712136666558291631004609736207115915948985074912821691609245282229454223414677824255010183350338454890112670163348017763212879155007414783149481957742264114719321579407511518950960954841730131028021915773065265634810686885137354782684506066610377576308361941398716239607293133809949558127831670341980516563086487595750550477780318245376166514995853403555214153475359710952786058324965368486057856215758288675639504464224356936528280161143561467865154228856311151786467916660901539659022351658190770587195048610875511673712293288342343513294623241215000767105157523259436599235753814376896013650883465716736923829510052654915101691269038153038661750203316353997139713556719403022615263557202624671944597771101164438851331570991827045449358090710569482815728757832368098746277604216518750430492318069623301129923254661344106145407297429242429413419637419227189659124857765978388329217998279712630900642915429378741896858284675939717598281249324597016824526799261644694674363193020997130175126376015608695814770921414869899994635293926975229369368846603813942819099962234103807563998536373046549705916485829789860785547762315253041049856863455857507490649701258939826456542543372803699356977078494153561401923345301650641408486348402961952514943546915150912020610353825422770049031674423211941086870533582634446486384604576814992055192191818146776363963973004275997516826489569449786556835641998026032641823731043015989772357850587237150933867110200193653149022368111912662925079398485445952870313790142368273284200185373252568696731960982685854296705852457901823577062086024220424729451280453884044618730067035232099035948698645052498115953225835598949716673069860581819911021167576314708947066443970222158116879861747843826862040247958925262500254074764209048737802916381537214708385061785426111969430958008471700612655069205788945799497163343970219322357005027778605814319870984020553766256088644592044832817126569878174991109889660247213967287847865544928240232759907466481089523985994799964484787376156970223293327796954078624483115060228211932016174638971218834160310594185629552846148622657393121179898986676247586746094529468361723637127931686004508500404658885619539848078094705388262454967379068539625878966914524606571803611120118384613254316664019005764206206227354438361376787094532922001048813640600000959901989024622595546109441578911563160944231177727739737231727111215844338137340023522077193015020272450171354593353046752460007201379551703015946204299523032924556552648878813119758872422056062852032797146046657424314834362544611291200775576208560755491114268089354103222334669657011252873880385622141731193550115631008479266148021116005718367095379935790422470201776114518183356200743751180866343544380256000385594873739497215324347855571356698979491722288850250483076632256481702856033470458772336792163005883867682102356224420137163226489980576960251389143044013652263667534383397404265413525309634879786488693349946648614591091573468179815812119968700109958172338574789633361081449228469920490278477310024080612803628502260363073418617273913780467300222234959660466072236823546434743208451812334930141940068112101731010984227181515161262122633238931433353965672339445607540653886123473534906475601644175151256011214409019055752464413253331639438753577217727057337286610825690751277309236939245676361607649729495951518638727367252359565876635235145188862005048584057036624608097928926914037279869227047193651518670222809566406422030074442099508126974139015776034203215820980172961608073557918966807052340102504550769435471347217017048966309467120267751231368620010451814910599959437740732992827973592833684546635628519699103718000487968032418887110012783013010383079090325962800989920367282549549999635060524736328693519505791669734299036351319357667991123359915834168960196506581738328257962903120960831045910588105205130423207358993892254290763483650787709720963467901853572834292056920662664618987092347996519516723645248783708772981176500903326539307879644715460628366729906060850253961177465210840925730487237070299196511766049633936483624313823171614797650483940233105547878998740048196923127546855338709553211124730393815993404623793309162745389800120011713795643512197949154633140334525011437019309470825690279293751405457153402865755865223871318468819595055924781212456373236989931383935437460090935390547168313917173504303860439234336055199748084774571635913551798384951744061749442350341286523337818488132985128971935169421291955345819921823788951023419621890501595685988515168660931460256977372841338335869108557374074591995163335889747460324499534844923497988548440273578509592081633318802728801856676747642213535972041128031156407256577427085747476498060989302357897251705859126343782107663803270329793570221788095155485557435989726828973609250666545172761215758608785153541856202013519736305911939637527101487602395357762306316214335108402852810423679106275827854117858151412426016349379209435742481637735694932184991157917826956081786594045622616055395957784484130158868499993541017780369155211685596316222544116526633327365391326899324808046342852412285893740998700736159557506651896523316932107662196632758266358347265348601966626660671275206052236853455306401296034359541600311225316702674266477677614816887116853810020936521878360179957261252669501524668517582441848972551747637539838415295112809732927320525476286664668574217541859372841056281156976081169549156376426811699948593399320985645502441473099973278603141204798901841571609202343114059706939767396632168629907193153903035970913984398429463212120026488033995756888904859712048626363713230891498177509656095821471805635055860377552935553542801190508542919240610038335356749869840361378430613293933171686877540239056748340432237360452056139203368769289257471476169696041066482300333949053842293661320028058951059744212775060794457880941322648033782099888411631763719968367205265252546827769423272628164020106996411686822416285849460740120733178524917160934151143311034620987237869202086250820246842119356403911227333828393468235099143184290152478436088425080605616189133143035866707673023001841372998359845619730125722561490902125516257053907874063610760334633825207084410182532598489251310991760330250845106663352805589388313378859052346929891152968131330455390946377137884099112641406330750737538474715722863997939834932358986853503428686629355234472263459574160795553822657201750051708107633392134033521666949723550461806553824308457254185253237999191643257135220347391303839911913003353112929840651179753557330476918958048714684328683978624806585984128859801114063452248125794680006944379442886502953485537773867513241954768044770870461099970449555114490937789726153042333518434149178362285130852839020663503044053776848165206696052779480406921585801953555315078876506773119390061417387829980344074166761861172841248927208804514435326400888125362648862543046283318323420114813962940331049321074443763413460960750319565377793588094571846276617673067041170938547840208580783468507362945810578435291693038011717789400180513452668211769608132593341290770980571745595232823571040212916718716303405781961581986762526427628163065998922451981116802498067748082135059253175693001007585175649969295848913079990725468982142033744100089016048553279984211237573673213574457088026487464084603621367106502572779531092994181324437386577093636300168022990068358306469503112750953468503630964874776283842882897433365037395666313791414633590095287952328167440707644355487786783963316415278102024887180605595602363598406797307899896883378752790648423676660141229388613180313379708298736607587139269450926889596015579657586713963589950622843628494587975784964957591767477601723710521332242766022549996979815858442258856973368792824401174629922671313758346030848954147805836108379968827749655156030845281028530698359818431476001017497575971978786063152122656174551726317103761797780189816684339161032090171310726676624086808695075558343227559484991074401088973190388629841732109210032619651655735620812831495580663721275446118395800374635560147372128983472729814581154767908759965300924381582461550287517807108705890868361128411567898925290763165096741199992945582884564981243251591388767395569660132655864070248587353425123875990217903990299320515645129943574207895037103803897180443662625272558949983467520736637712986565740996818188014572409098271820745449615151432851107065698570964928039740642304935215772978626603096703480240258562069299282534954907597707147939409982022938685370582537348490717663763989823636174859721963044392936415608364598746977548373568018349806428526431764810340896104964826068087940933479629931721491616621753705744207227458363946801397061995960192758993551149300867802723928204018331695368759231177289370592394426913819587040145440185041836478537618649425815051361495124007136893691955830278486769600960798381717837066065300343764739545959294038754598115619898477443447665606704174312866641205689735013178377244615834337714738095474778770736303034489180758690000000848473870770857465733230647874840115202959586629777325349553907037817931904247851178336862014818816924622452468643146913593706609091592694668358785715729187624056232130078608869148608483961747570817640229096513991447984514117830210663322105355691977086499867415553136418440358813373891726911022519246109887618317982891436223466828108569541982795909832650599791716794461774708558938620181395613720170125947722279340250786046845797163026901345190227318715679944154413054461389149536244185341782562283929819004044082279398231842700772174466596688899359609777448325893107396156559171375728141782532485910037673641640356228590514623689131512716126150779905455782637153813104521466407430373066705810704183353820889318052838360800943824916679329086444435847298904072152545840161508878466364338887246241617940035075138204866852450051599605502840312796166008127557408578665686733523959964313729159180363298373709895969239608542040339360278864792447169438808851286318320753659183844456467655636113334091843079748537618531978495570242682002640722430838558575328537930944183006619135570668375929072913490636042509259563649799228062612251001695733102358536214332222208991051558861445817969026889168922202607969966203054306733250315906074501387588333663629805833911134220713296322241025161562875584481329137042674217117249134717189750171898236602160181741645437509586811252883992644897780009369991785799313097968679713099435255453417021872523513880455071623825487009683657629700514102543824808907224060775916186156062792427271479188241999549625562023090418503803310110520499461494721580648026588212465761195557740937369642830775235226439887630020395299255345581142399222132586989929791556932259579049702837230316761955901805796071513082479681202199298800601805713557291260365292627590724579954962704369239743286831210465641664925597661163188902620323344203697912038141000632226010502467551936315691816728593306980182065548439513788727850959028882997500127478103093608476013646628274276121780967551017300001304374231859835701976544807255436059080805580565007289063483446572803502966508771736919561316828506485774724381204248500088142051584232306037244010466492670660457262089890742549984161666531922186062148027264083936561528200143178081180987422484344252786162556477768366624896659154954943205322446451447314752151849924724645257152450647654938221811028899667856198122948351720017759737356319511219445684663577371610899230108212962346252521143399269990821879993953890691348440641864712825575680217644962690168955146790506686613780023094033780067825062066683637899585977555874864084772871027464596103794882061268170549196709423957532442110938480087815289326690730738491040806405424382379449279513678231313456316839135301960501895494144295373912805542627219380360941616304408547992438587239194281472228899622443480542079109538223873054079245458929444711007360503575268943945429194084262655047538544274614463174771602166452178414353528221289234814708239602930172386297266015150065476069642725134108779342717400825534574384373307869028930145343124906490041347998255152292736847256185631331949058956706310429399439433898097990916419886113678672167200661324187435505221104893520316271382514928146860162455451244308451004396622368127950984784643021867723488403486732769431450287721679050693108811470041721189653580692967503842267237808529474448102103170983339461228129400295793449881959962536786398664869917089436545525974470456214712647092047573044614104852391122586463339653201297337101283359785994899172386724258874533025054943811940390548014703076381373652888203275225613062116720815814866006079905864623298214192847970422104884480249727899806176141596835840076500495156936972116629986888362836113222562985109152678799398865949367195094484316372896069087073495307952851754369066221766912715732435265494144680069757789888678434156335857017485241978934974442477530542535571134306507070162567314369800660909790822597228582880977342664423571510769266696776453530467902738090736482976307735102690463684595849939589318038336105647339870810799539379781155001530026587419967036417062409141714096066503434851608788762207402269465255199298620893835756125066934584275548324774862082521259235168268019964243003671127962993532070818835995823552686826039985449445849082192829132769272734475788366799290751530163424138821156517580475292012547204621205107223446613204662872015206365851535637225931580297625626600575204798584017052309502827791004943853163418522205848874372830842439874138489233378861032120004002657963613401605809575912415241675313614857499173450780178437871690140268888069084343856033780241600469947090135047455488206099829746568228418179377942379337214155453156980662060361404204622680335832124750407828634630748715702600432002716035461368443525026447977790661045957032672790746277951498072743651396620359929833639781937770820514007758796900623138495687101322431686511333025697501304581003346229092187768591145421877734172318545287394067361964418963508473296473180190266723129723502382628612343868675069149017400216468692955135975387558562190103462457868037055777754334624071326555647511096758364819976643573174887986233068360857101393229656475401912156167379280193990122913740886911475342413079839915622380144649228503449747153048566977194686270542346367038689584982680983698566887755359034394924091767880846037791004341876308025839913881590535982458840881371944722759734931277902204529421978358248839373885861088970625401373836860302227278929387810425627291772265217654182824903663231040524092757679846287889679268456060684174750511900285006652133246574695404843523735186244650428110174986166591329676740670144347717993278319972746109662215425743753408573655228104826839832885245803488093729649359853206609351219574924985823263243656964343110392509994029026014784008576554099654511862209411713693916069708076840393564197247400715490682323780277940800653595808913638308076022997165289839878104388400739756545723584158842411191145038711209786895667970356044172457611730250546537868932463410378283039796910883387973566393463219776384386281301284955015924573587972922454091584969044706911023033600785301165029130346264199795607321142630103680582485626140536085898584097450105518576253660130485889669064732209370231676536313964854689351890464306135979947745776948835734478546228222091144151536572459393583321735427720659349323808789342500255283973826170868130715196349762803426016961648742070471811577213148774167542253490198256784316149312145724444096063795335183710812661056202022162112990425330695747457329508769761676142005773915965539116730701386729628668417692093478275148310007455548711789982564204414183345620916474876147034765777108258783077497514705694126464959390832287851523559822094927819935283771319413665338957775642546126917919001719939044252881153049880732266197281887654969983788143838601612065823383926185992480673951516125069201664426149416872851721466316819839620999422247167764134103180412536316383985897880915417670959493403723055376242876225476218119854557834751039814413022126852952905194841630711185589024468894478191935147625446507078505518233817247992287442922701258413612453733857408312585951337009975078389717918878988668679956083595670553411059645190618765136385862226817353372610963060105257573854294833670323224174858463941244110262905897553733980125074678361732848550179102937170788455339646665737707321964749924141142474044424212046224377709490227352076510071161555035529308426825079949484343526990537740466162197145893298857960567405455943268208069334187217604077621685857828465677109123082635733350096680658755807024135483757022966729101444428087431186950557565529490743960208021194571449890303703422775341597335253907581806770323959905994458129742159699190102992464327056729634711534794713774381737802061562621015023537582005338305224352444019950119611780629905138775106995808387874819271359684663282083787689454805374151917117841930286104303031712188970972151992672235654075938393734629390692688798066105130182500745403558905045003262863417001297892541670822164657654089091977756812959423310684931138351956003772752798251005594315571022393890260547610537281032671326955686177130263307501373298833395194313650774091248640188800183601024890762831020167783058262936155831915257733677582492305323223655096836279973905145151942569567027456701072184216994997370573503130271899694395123912505619113616133295907168692635849254522338405136807207416238516064311387882586380356732512180159142843789193153594835076937464769288972600015322411525356214822743232767681277781491269749122746062825866140756322693180474759773546842324642947760593990868208389082632926102613703745516503881792676881070388391110476978931132484646980767455813002220330332248384800680975172184912380061560592199508573898795491671525657629787635996867280075375612537943119622147008649555708385074286265858966503412129815443784420370237814134610979489442852467167493063721071982622224813172303364987786917446272829045133284617818071220722962643220558072268910707620902136458007019675520692847620079102522176669006419792458451329642582772305574153055136649543266598479608818495544489122251401476782667709712367130372061648606586723439102482376954028746572758338956673225490405056643664328675428840864430360548788074425078279946076468833828192928620825283345497444146210058604166821445420469163584853225496792677784872524803443101809977740608442256347671293830775664752773027028092191910216411888382689791004071945804023345651816533599814690789049669271346756277915625689690980241273116825564220227835869468255755321954972222585905167940920628291349826722695661132559244460554173046080708806647389098855574007357860313644313874710663660643476713595330227353848214405485020107686970103223679889666470466344526801128278695632770952150733164307855535098772035661328373084665404478928490427931003101377012714204469966855512487708039619029184267784924551203581592510839760745237780891151145067188274664373068813951435811603062139644175056704324522054701726663409036189827641647551978721011705951913627982213622615927413356574885611023898373310253057744891041976299469341589978119324484891199088103111358404213300094521195283379496868074518004204271611694987124473179932157173288884005955014907625901552933688765245224536391274002934587421425685601188383217188992281238665443367529762677934164981573668580044575434323880771996327333680446818834093319730513536298503203011700604941649364868138867218018872908782445969143157747717214730840636296406005182479736492293975267372624379648831910859716220067619574974710377949995817922221527898421154124809283420654277415916487265464948161527541210774225089978020982540165641505316194370678144829976332365916413145869863271620887400347112218815447707582284342349962792399946542356059940218634889229460036318933057979104738624552334975939031626024048274634425819396143904551538453499051822781492063031890176773469578800084000596286130290313334745319274317822858082940425409582097879087190743887940341560651778992046616623951387089214496868409679932566444979053767809364546150118174603410286480031647834023112053854736110363567384439175811762823375232502526398180103919795449792804541547673599751799149058799124226953979845503450402797143503880680829955260242374450942913225400196963952080664959675083567642932913576199911009237424951067475128105247261107464378105720474969628399521395507245920201251012271576546176807741255635825326889650556815450902092119999494489237189443554492936659426075892591677039351745638789861975738274533857093946545862830462487833480709998787369460169820733119227411644886164760048014079520804491911935088118548265275628357116300992953975074058957742446326952547597152744557396917490936382556221536067542817166283962278606580478536064013891346889094440619968153415911086589839457806999872134441874982847827043746238814088886158723135390970732963123160587790717428904248510013477398957691988383445818647098316595993548375632097241158952220574285961829989180270490826576554481524179808722564261624330329282043441048933378323822367222649265425936828035348766593267241809005290225637617340960595637647831449280990531356551210575230503980609849985234807485634377499340430869684995575495105810768539251022655511085995945608159224040144375971665635798812173307973156057158293855675087355054164915996139826635713611812681396463164047945702505798165144832156556483411392181139672346810330533638076535874271418311624070474276286565260237502658635942620019808146106600730137520221572385147939512535306997861072641662543691270700961970076600152185569508752612291603437860839892207401086383235868245699133480989764959284068889379797576409608507575567935925349781727920222471967199291799756953259762615572326870524434898987185336537954814621772418888185465240453054341537294353606204677035254601068861846516369691269444448290096137347940975595779516985081877394999392833415085596354920246847088009633800003334917482403664393366936797687629257790921825602220189646833999168454038158856076222988056273085402017119318256574652924094630735421588409067697829094307653541674629484957490390309906107081193070354240066403895165866924830620923490388071095667263206041082204377363231551823111737376737625957069471714010415351480318142235256095323344059445963010731581796008470577626236621907698989195397520746681768003740967653975264788477791634458170329896575119458448707738253720173889422676605815574511116031944635521626237091566926474351225846319744743765148108361440173078751260412897235644365697891824220621067346021650858408456194205086986428076214029654535441690230655053399999268847249988106322094003839088390179638919555038701217574795044602614040734605060601586365543080644733352259891997524530130917931018602943875916259065678484728905721393395490477350983350989175231233302095682477473611956439002088504553582526024274252155671244733432747021337947621909133861037931608674555028550004418015126681955377397196131889013394072457669386346683487130858103749525053382366653158146818544895925658511961381578667646364826199996618941040516137903221377768942393818831289163260071670278675307520108199770188582239897381941910491152012146907270335298190755221413920654741748228379590746381639137655066166073998339089516716596889830356789220612700085261327006515893690228040927222008693537132694034648665737445398878391946150167078236441105194543628272652303662017624937456812138625591235793751009313164929645931005398696219646749237606984832626609989666282976187361959149334840773955043915004182191739828212774951914750661648377081630114935178586561512567786372343294820608507728656442520160658643276185037319910870601575242129755160527888363623295229724956696005037533029308689337820860383861677390290027747425132451760094344948581815161489672325878232510900763309609253526398478063228026137385902829018729376989437678553667072356811879129064887803675555321466785913847722683467083321959731001043984756086341442459958012876716085281446294801068460470173565028528896279921077867616912267119433945946245037149479836332814141061540671127351224527115620651969825734815955053961694591700025552198942015007814027978596079192239597174950024159496630103747105818900838376208348617704441422025576029320398536577541363009434249412035532020913895859457754623217448236658786410398139274616640584665223186414571146685704075817298213204955686921991323817677941615178720110866584808758765909845320914818753069403346255259293268755351170951213382720066050798655333876247615457635766107189360197022012210739394362011640643024516099501935041297705201489326840936576360569223090722761692813559742147394680335612002416749067594790522134354554668258940485028711358757223693524879054887963197650400530905834181399118614331369359558001674407979982639098049619701134697416879796255898530049334526763995977480723686575202859525052687719641901183437863655700580482094737887317458615310561819077400634147565426659097370335813667922201472351222221088221456623912480015681436633977454946899355813993081324161341914171990978644737884073322577183079810625080943476190122436739118736994922372773580625958093674621497740987978952656612768724850210364209020161118499660684193639467194250982342694975431435456484959920103179965331792116350457471112846178848682996087830279782968492431222779684218575716070731824897928576910009683113010946368971758254229676509607251222204973078612032176486381440364420474298227437937703810219633908896458143460782332015476284593961813864773843871927008681510991263373249895408985898237595882088360079998576533798748937914658431314066807945439598278220197505027678820208849940952231011672576726096197787081895556822692478029360112143198539511339025857385869221733004714981744779521500418784204777163789886887345715319886579954244525911985237239924473535704900124906659918213065190729874256530462080291764224315072937661055029862169230883239170802579473214913790640098413612325902475485735749675242168203576702321303545515398813752151179192217577215911193581497424327193157668622434234830145016499820636175578168363940958561989769908477122287112370120861434382711085752782631310655703134475433836018782396319836833400584197570196951401799132531737343580872262294342241363059806403941763240130549953452807221643483330891540012097817680375038386658645722884299521091819930069882868082297694063749114472610177900335695547398128801799280112028262554880415155759734656038881578029533227353860817226329439780717794006982044814614118989874632734231202990601004975661888305383271300541815802989392792391401411438936474694602687248526260496286721339236431428775090372459742374182712510222795585759939352329704050603998172622204001620214100375965389559909658955516307133216095452164643981393434824186623505106391050546026169435828205298296649779853692941202301154505525968185887279121617725460602495723444231532938632562084856595021359470398114249396085648943825625720522431796704770014824742510186986741625217187817853699878135558769779747877680243486173458087441179241378906647904792752174923468955485844046193087342745017530873788354933815622530569007980660719706938897934192719749376188864435540557242284558797095392010129490613702932296536950635151552881923599955453741310623346866170042695770629207560633692451384111559580851023105656699443731558262994729379850838161599510629204470337822319513132419942590575064515732929776722362705477662231675990643900481532276164822362219678268548397040272284004652115102279066649313116236891263823137282192690291542132288936552468071410813517114884577971606477346206337961134619897584909988947740039071591715363308003947344986330191112635930838682395286325059208236372673009041842034894524420682908982849897417544224280248019619977875410063454918938509601897998412898173543233504575802355341140550899612330187939938289397695375748664763773023078209062829824642252762299245827890940307701575696843642891121954562317567627886241087550747415272626795190535502249286075520775770494778858340552198237127527511352610408213676970790407500533329756636573366524130201349687521797792813167910343659872105066078311080217213832628997649730174847212637869239947323607647968809708229997003368877512227439072523728304347815890148087358621712185367044673591079795866475656013379129394847573828629628041997555067678201474358341638200615830378427892723283093257283266104178666959234516367938943016355864199468331801936919016599240623481003558194955875403030965416830497300630078500918008024248075845481232116733613520695640098341201776953169702622014657028797197552746369765760568524928296648389390540009513881033077795270756751568329503517836687512824474662464960455665028010788049538395619790301045605443538655540550772524507658356146291442053877069713114437948200253404326742833983981029569982610492552441835172101195511612040245694080289383705541221220147970594871769382057373172118935675635227302543952289842895214408147151751324021804492447655802480719084665586408045334896717531263500413449646901682942122403960967680314529727346983325995092908465544090055845687232586414861669486749259415886425923478738335949971273585765674322686158740459980010652193273806654073217068768940747305227945036413844929017080470011646322263136945456260929181163134670780121717446293200478861136910813278527465481468763380476923286680278239606083203549345136447467096587027807126349300066023382101503018150121281397865752951544292690466026173736019641866123891422741872759827884389139746960659771654335019890430039042433426786234009120825382067004065665636591058772663389343906071110261126474137109208418844755227521226285305482766793328436761134095288750068452333310364745206594147722265291093900946747832488993890775826733871925970101861715331121723910109018006902882681766829926459425495569016091448481219658267860623279541109484342037991512396502930756830390955697687600402591475937474123499816909098091615690487580463831539481320990682660227361571602949054840365015765576282790644725221371581919238550622467382007005531668733906507037545305584767351779442586283402818427379565351946982937322220843166215625588167747202840949659630845410721707249269114791628342738492358303538369385543463414768403455362787644640704502877751117847789499178973270909956489686387300517704299622982603788430972973697369946577030130630114653301919337882114014163865746511507920979767131430573565710484511539256517917380107165049623042601849190268701092280152224921696595004984423899446231391873910905867599735736285355808385722635739930349190132072534786712419456148145865385349637330158014077865600625467546189392726310853003346743326633531272907175864697404183674825518545759690345333792456771685860522159941437941717716873703455481491906773012967939450784153039615193743444831505432273759128340346144452279048359755241006425965124472960244817293608004096770561587693918129343274324401397693536013956863687070578663976993956630487802675019851116767874645583594246293918068795940770713340297083458625920350387217563896634395836780268966307591776017651989706870984168063123711929996679842610344439225664375167150304323929096119575394966341603095696371229594109056141885189591270287102807609920257491220617983995566883617821520474886034264480749611710683135080478989616892452619799322958893805834070894287764314425505252843257217186868186312324042044608463564382085036870669903098439838023852831934944160274951826197660954403464139080789645809775476342015450644953637859725144586699529460903599673537909015727825795414297822354748870304125311029196371043678336466032694519798605999595779426549349967339501062703017756436584181553179665544970938561516602399104901441020581030774254526378827109666762837930824744829333320042831910049945608573783979417304903855918304490714871330658088512009410150957464745795166220886749141029799863761700055706066203956356525394032286264593798892361870167611321749960984489337536205997466798948777316814342859704386783002472315789649449881082683577452414741447019338103407325007041966281212655681198340619742559385301067282415328548124566313109846363520439129120644953082160775602942538690368237769683511935866635191649737171938819147882153080511555529790169013835065826667699037686257557791054292278398467035551516643098342130479011571488558950142403626706423846018085699386531968576415396579097022015242370332656610457230106209175762962223308469898949387890497837570685398862234167226399156824709128379069868829842570014680470948927153247341209805119720467667802396916562722324967881018659509094265204475169958342174627835482272779019688396113267842350268964669432681517313226780491734230400154825740393312379299783363018681768194589984141760337372208634012410249013056230529189076347886057772961970335568091432931228705765056661487902437842063044378568091572655981260651819158984504285267197378936173434492120759691012804356325613510610335492752141386209476590117882337902657501524890253080381994155751757709069007513569199867502805553417046287070727610316795284678468922985645201617185973605454241883157012840015490558219684445812131189369857832746590417746378171076016073045945264375192678746549124260035048606961916250300256487812945651362858761470968290768642462978795362412582489638086437025870794948705157271577463299601644487456997607245565601623333704927154420279779657125365114995130456960403474756039397085549050589686604200231456940335659235379979269541097028180609000841606915227591586139588521779840868073302882687939865166281634203054370406048365000172292451174499055814940216798320437110931761378026560195727875608552837835938455780571365823434694066060720487991504376299235248244352799333710813690484952669160550517059518430875798110418356083779706310443746549066955275490919471117733178042626182263892988845095075076297636907081816316943632837890932535052399581355781020616665359580619700677383288452665801530918530154061965550821512879448357280566165670060228517651003301057907992865301348313415993040947700218522872561375816999391092960861896496322952073264105603246092569639322428249214780815885179038806608378935407350171220590923867730550619535382580264920041109549667271826637008409357562475156870520427455855143454181191306956851017021228830447445090597605078027834350341118620128020849358736348167857959223077935330737851531362904356774054045609817420304368385098647454666429505479406655230245321789526170393933426053032355622509146479271775456372401033878920663242666605045846533163241430790137957850414708186144337618263925193759289162487775775154439472796781206399441913265433450528662030033855266828170119658061438010918497290810022080260325977314288930760127521887136884253297685431579830235470820564963161744444536787217398308461426544923488695846954733730031375926447519025414659953610271780713820670920732374938195999747445319114912086164334922445369719951808999496877206665118813380393616058690112828816561797410497663496880687372543251024584916989977568537578260576673630729608166690725081161659743810538418205170295283043709386142339940650441957993842604591318520790307646650037530129509635587757003265082000322341661394849600838804855131160770120081416541616292383906678264350144730686307798251848890168880231431145356059670215007507831558337211897513767455834804663629773090641873357724148722483904525734700046193209314211865209761985529534352794408082348842127900308131584110951645934382570326090571894832009523852451724720798973461183943115406619026927115649807605767713191462553602458602076572375091059862092836932295247206132145788982855863952068865560666136359982863935214188161138277866495553823393248837442829464215371843759995971567335021548018205323058169868376506084326725444361875026839464246645258968141150708334067993141850780387342417381826267577739759211784165590097389649986098774881712572882817360487021961457411425443533752607481577211293975524663489723062050851079386962560481987432205234128767056491511656576792317625082481738365682769377949102180193063972586549978313081414010209606688589705133133342942899254270524775827607794334214666850338838136975892006263291799031597485228974696269122843146142641672910955206325621055860278117921741781403890534240596640389020698037343728526231086836481707266743380085007042419599298314883293971179300937363996705499569794344083893705846504315163433578532295926217378043799046537334481874886521491771439242691127186833771844042505297136572645485694263977597127784308845347900277795789222426543522130395664089244249092980387726966478722338806658499209043570294638013825404934829050477829514997037011711185596553686323763805304051333281948533539714408207973840536188570143767071812205738282721031355754294207390324849168151879236212300366637470768597381195790633204201326625438112409594018483558103492832368319370321446529736731420365692192003129140898258812027104653898278182766281986255112119242551600285890736000407113265160832297306883266226769372688260548262018721067210778190767193809192734225343530565756230423190928535848826590658966290200360158157393866977123463251196391984352527968912012473773580059208998479673202180958118125675126818874221501615339973235758447273983301840887098499311391659648760578997963360807574980435219278475033230546154251157143777013780676811426454633124798029620593974793364052483333315678756926622893634157700934758651219444883846430902797663624003667614703781871364074171449632551634549341385784300464267634557499386770410958679618264994970159486555590682814253848017327420195535993306741916193687342826695878246488059358362974939576347656112264927392329389557980168168490848910903699394482448352591092336278577503101083679903548781611419691905551453931392944073007952352805724886391464476231745144456812436263006181990155841944848450425434144364756329513752480565887512560792073751912178763774149053843006281139488448766119796079599602984797824755308569078716036992244091318205816797370350680274327066777768223073851620254970561197816007500347056796428269069482015876101550643263226818666842396084537444804770932600549952168142243290640353636910007753562140046791121560051745483271091844313233141805043633099952976558673904149763308148520129748809162670023941787413171224757893152287231097897633467160678796314057945034549311588927677463063507736042188788526541175173163243272751024456469106074005970033915477935771577864375523089901177656006464097695660273783486371039263344265240792394597037696550766921145431091446541861532794079916013117786925427825132641056126696623609648342217793881695798396846047448842705923194584742917182547506930413726895896459840236094780282042469305362316406235476306141298994992256891121764124634124206482863548790728338028003524258848585950657924265349793436317014881184231854603666914554435271984291622012453266213946114097296931483278107339865410152816847619714364529710464641341080763763517327391507525529119747992978194805812879072364777434884146403771795585338747579359692941177493900463851352828426030934391830382421389158267329243827474440512282840591281134147914525458009259247922962684009929346391451814685627710131188094892856738036491783479217932578957426586263869781810988986654507880472175636087103215106725293885467142047921488931531414683775141724631488280645134908577968571552397465421591299351563219579358200045770892386199449386361171278769467393539585099672962378345036896817011675158921918065499313806812693077430953827721847486844023895446829640985953672014214067125686158840855742957295549750800556732772836277639884369416674968694247910224962868226502724848561161093695616255378652269951571004133382427479682793370834453259271192182544028645983090985720287585800799609359391107023462386188396644557490180207103810188212658386588505012516363931316992973383815086663050229078680476630047498565458327085828927898998113741607185303290555261065601663887672925465367399655962580381936832664040652901381785065222041777364536001923244192055989848086116467785980281306784185747596603092901421727704270966804269575822636825562961980203489732945071103235924323796626266343384108556507236788161143684191782492364332887428978813582973825508422428822667886301259489193698778968647697619333717639079398133216173590038702699242092245861247485179332286477022763379448203367152599493898511748751396582633101958854348356117076036610323527534475660033986545989308339204444303791509224252661744192890324778807872125508142543256464487657730633946480180867022799748276290159809244620958866387411207451814205289160703493485781083069677098610064387836044592606928718830728997131096929302848671263186164494848004507161999206112417102814544459899390312833904271885471252668331840576528201943830603335932092576525669647000719750740618044752241402891452685054450976446315307668118072858912951028576117198954917389352873800688197235593301272260770747021701137356603389332447486535509709046741366674683607980547214130200462730352304414881107622972406093685221642459154218370946262374564633562275977214639610919584080407086535690356254330152548483031820787352271575352078244261488840203220271226139820008387128011123380116612562475288778060783208628382699558722498982129994653937396337098194243132051548239223259177400942999821423124113076843013759296303725412418798932720768302111375538464685691308459054176161883858535625222675919941782353509215971277988304468815313293320826510799521125487248719163358192219880844067349198539315390977556211930773779264226702828527761902241461135747840759594813400950051642973030694439378254948182965827242769887752994892287405443325238041480759229077551901600129008257772349911848115574160724563080662062187020308314640580185615372776990775407157945413072540938811218107980390567180537905125803724515567717549478352742415721101337471286372676282725809898811526031831869753126756855316562072936619708967671074591042277357635027262098206410808116499204643923765155292812317687586760192649891094737282734231177987868401626197530221987915858635670381549928052810704555993069878405913330143771667210579974297314974444947707718483603601916138365163151868325703088889218187301883152136713430503391770303087983421664559863432551738512092915897404813246937735835764046557905216844799493734089233456206602714723057726801258390875962399528637045548733436901097909891380522540676083707937066665401535225112695661659751410391441584736876588186695402917032252541635155487048203497407741392633630479211479233490993629519435779790866683538349927152712771879567751129881713915694023270833568378221861923679512343028280480187269819002240453873787512201816797858274204765355103050508047925057078829648047019692994519403817949600188319166903678196153600169541968652196376796219081471766735938656534294647467389514271993220043264305786724149254427518739724698438759118528122793270510342697534137127101646508913225142083972754188007124288209045956437299674165275780604110686786687354444433654198679660615005941366845233325800825892340342333918415908575092317185308226909527090597091815687550442244875210501052136774003777669960025927207517880558169071783584481495425576488310855009125880710904187400466822258388354177206077508899951885126745604836874089079165232882714299853061358888199084383294024968342803703741539872955834136370075260806952702642545488744902418379320386266373234343488202752755856073515361872070550440283708109803768594984546488485105418604895973645125649097931234436760401978730792131147705636264090750966506725457636018217759302557202503135129981535619393218154060682544281146194664317719996072371353511027807561371149778766544621874892510979567286178741791043814990143225104266080879925763253576617793752421201923299706991734028613011077372241227393097426223875250399260252045246411682650015803807156505683923096554992921072964033607998743734716338242868490172698133362220886263979002537528929555375418470883933641257366333957842060560675393763953820648046040092723205955264273179452508261782421923790286301794923529877988511064173704810943187163494417554661855764419579251972145270355474602663519595110790611646522569766006404082751793392853615240598563279133605923190049782001180585122565171893587885752918511924437423253065904226961893148135505868861837627802137303460116043300059191188395070779210836316493919220912188008593685160281100538639145018219168011359293256560704730372340136851177110665610329007626440203339170333021959520231854512356143618599840118721188848449265394503110421579180821445984590288048959726659710034292990112395675881053849426925330630211125442256837883358970774122517412725173786594234808251969441163769569505200602324062708481660423945469596156988740788307930366955971136859684687394175964509974735789901051522892900124150045575065889547559371262805747358570811312870419526902786150662056290890875905387947130486467468798421770371023218102261344459343282514467207429627086276195521568060986420207646396885998253451448282208441868343907278145257728204879867718692873864203717042476049157121687394838928921492389424932465536643914980501365482719970240535432795794774296746484611819102488121808294394471376506017872816737311881822281096119810617823043587558637285560041461778941206330439623612986184121221163658795452257042929916910576298444867294723509575029918668008122431871927183999611193280221494636885895628034582073870745886556565348890127344656318641445371197728880888087112574575928798054293762198840219229821571335311765117423659505562514443647222873249431021101523801724860196747746045676252635698027441374116331808027758661249146347541736091354154877588213154073196314201124891908289438138567533738446734791185775872639473278915962744879068848151761494922905404292880899420802444760239890722228627159012323126118361566713492845500880435574219293946126483139986072426988392662341397614176652669071986943575663957706186672083712880958401951109223667276202786094705999954017439122146145818508852395403900005335481747715478672002911348304498341295604948620710351949634163176400582537855155517632977407813072674135063416847680879602862259041075017589631598988200910458497053538608481299587952960703361644595748683209579382302017197851258000489327833960484635362769795467316704649740247447469921232722062078920153899700303061825481906538575807855934482868141736954260990473625122176954569479547650760060610870716977806419100289575615463801240439846576982537087981478864978563054287423050338892489430932281675454046813565881338735447657205021351115122304024407297139249840717908618835475380563724271690854711134457090524153350854768791592601299430653056771938218761144727202564900578280889246371063104054299886788567716205700546719451015173018160944684813061973602317878398909900657569564875200181322491280177241118724179116061134575092720145358341994535649099831153086421078109899254822945131779244613210991321308844115133320995477800717698829626601726560055461562263031843357427129956404567782048146257474114764978752350492289258751943284147687798370472356307856196358537086717385278038478005976595153251289982035160623864002748025665392708667489633842960206547647816866626795629463587301035421204419506429934693291680493553352906944586637508899439336034228400971086373584419791632771168947332133426437344691521859463010721910108375541101976287406020390749090869605853195906665669859540413114411966840636281472619327317413516778666325324353618061681502852881023671719824032930264342916332766698096494522261132683750728781627510708405384601808596061955743497657965023941969540834087780627181331322391635367529927277208977321691621897313972903128359640678436210319287015941993084179374952274506030297919361137769128702115966788326048064130418058574867027623895815174207266387096203852019024324425781393727288420171135824068142894396346519184976981608749648237656827142427242589000044414843190030896145768426522328971971903977858698670350962547459909770498003508193698517605298627996590389382007334097770384607588469774551708706793763165453629665066255472339692737673518817921312541796570799105134954019291694227610558120540542501310397133581427313969023782237604609242931888091217661588368566205541092847951742862549483350279379155022248110678590373446330428454432822638708847013848504384088205879518582215271776788116856753606395316950270755951428121044232458925254334391435931456621681460420781663898435926373883407465190587479167469447804139162084614726506225815383413828934705792218043422440354214797289291833856277743716020691116523095525467820213654138311005239454827091641609050297101538133972481152207719637422313006396410414365896362705498792623022117038240216131050264658969453956019651128732880484131577708325878297307980758120556434273299171940192730692694417791749967333728168077493787725521628508998715887684523568613677104305740509592508627507138907099525248204228459727186099825617578977909295550383781274972607458291170264357091156727474583601344365232536737648139433241950756823690419184352274929048702174046554340835623222984607596492714059763580223549804126878767792567593798685519620803469719805605753414848963615091114984232596330331055254142779565476455091373505733860190584443016947509083048834781688831970132344223424110006142793620901228707784187201382721242962211642539033033901229701134323062397292173566610709067518817511368908510724963230892050575209904831249003851572320376200442080345324594178572505393985559246507836133649346330228069700722446582926139101133314308607410533557897312294895442804486809355117714738745550107711177132787293894553036775620341237213918833725975846890431370689855172105481243273356987651102219171434222326460055578946816464329079481452999003972684223825606724920964662692142713856582812036261737528231530666897627279381668653841896990359720144230582700573416924585643594592021163192577309453257329928852604992179158728296963090124448239043368267813727417995572453274368582190758728440848361211395538981813642240902209157735116618187157826189509297594597859433749351341161325387422013987752144376190764458433295684497901388566133887612113695022304540817142231468555481197372295828040087136215369766728021259178377805684553040816673317375994598465165122503876441694759907497874167927890196463928490003792042887984056194057455386014163301717562140717538735768155776468555141259526738011433035519544305784981997814034927620303186733397708631831424388183280547559816723294253474192384841972033589026572823596969153850636419592579140729968372599209553450887928416419015106461491964484545385010914514926531033158652510997664217364587227080414452889067362860873819473363010594515871022126789875703197734285580780379623148900963844044789201195607397824477597115255989317392085920237143310150798285468533608783687214804643404409042673507294585587403900307856521704212467269125194788271710677800260651083913098256626785471057996421303191206646564316549195078791553029034408178091900964437190137939526006558120034725165511089463145738139227696336679303582721270384450262054034536751617812262736647769151656166112995204356228166200739059082119165437444910335168858720891882680958435922192568314863991799866081720178989401742454709335183852145124022207541414107936336494677942142198633777884583627818864155161802075229604123657730369706504036460689097265578245750796296279025839022154435213430056047905448047635436302267647291278611655933831961993770449399231201066058169545946035985237692133449943364747833417304255459877714692424641389922106296576105128657845536453495151859664119814301234915353663328569641542019297358861064630510152366993112552901569575038551180185308767151399070519412434105981495328893863984893777475099723372656774649576537836723625133914335305407441312134067868206029181579058297741963117591165217100535818340569236978013505439065730138706559412027048436591646529728343493929412426124834669767819804421103325352363349044258172923334696231064798266320130625170117731458315235914059334370067015484285669366960354691803729316748633628205483974924441699823962398468516317114371812040607412000887840691869499878811058627590518283551957018493758313216038997770393221034572409144109719487573958236752010436553897297431262094679389921495765750393218226419873336130942655539561460634213689165600290629872002382035063456299055656755193004428950566524539410593199791849097077248560298879325626604576632511821278441642367976564772956838663540720499560943094877946744861858178210231426953729009418860794399807639064731635942434320155511305597832801038813998510364799783708158742038612142739330514830994385787194438451473941954157708807101699990625301946252730374303019095255954458054826673854196958867206555710240561661326673101110561027030507328001267169894084965405495937702113436096670342590514102592127200561076787441490127593344857069858228094336671835184003032864991220980898109813705980950729986054241958902412930415166872708769109752570264652531460106637632028970035599615139245983553705088952849509776385251508640257124047481987796813832536456013668320217120608045801437462798318225511414880313372884849855529084994065362211107674270956620991977796369989830082836713458501427269793189995480959137602753100887269616885378158625447554763860982927080259098753903766518057578811104355448064958629588284246795796326924240450292743078225945720549426406073891748022559539652887411026940818931277502027928021082488177940419816019388631579225170473983960190201325337460712935772525204364289535225436804889615521295607839359931058259014001011400185528226718398467304336852905106878046627531604931144092144084681481236608302080335801454737437443859364179879353644207968576335153005375613962526821768441017026280758921364372464074281453776418227586149947174422164429734943347615239490859821202245769079162552917702418920011672725272450681501053358797671023785258810981954618308081828634335701361221450889876751636786211939045302225126658139007583524978792534068415494789610061104971019919800690096987050319654203248677889851694509032761838049898755997055031429148800051926021501669485298851406142336270375107731156283015711595191046525603589249973422552575065307512070677693855399032587742177718160417817266013004352891205220438368779615481644566726735055108457408750018858735052999026764521363154789834480943060946080115133359384245312068284292385266123576366094633784153992189385028095496579316718975960430990044668345382241392200221952588809516544126955244706070062297141787689888675587805318054765911010654844964282621548968693404292734909964798480819663226597175448226226839316900955601355767735807688435419297168679138748645029117771394635473105081330408095645694018013158774571951713219834224371318739262984539926460023887697785869475620529097244090610929772413620560436392133536552593875943572921599139080292774011589364494100942418527004235369993435389163877834220645749414642396007053262076214849963370391939893327808175312704992030932157817401212686163031312047603273471536441125360104165762270657127112017312231610930380644566110195506295595350029172153524785698831956931555807450853268025794731720555686996634535788836526234950126651561546102423173617694228456658912239383713740561661836161667644745636631875771013277904475413814869909415497723920707036773539310833084634904613821165856293613125988674779522973113008921762943113508972625791168809618318416718500485653595533709014419835497654638825738780921207080783690225201149257649237783208037479482910577990665837530315596996546819052762155534446956743630573951401273384540986273007570637730595173843154072938207983492453257637752695147428147822764791152516876685801984421679252295164368930575407197707443585166163806104721347976662705412303625348246315082150621832801479008921608629836577973672607188533387469434749944624555837464666854547313116635705900426077811303020090401052755335674531121606022818176909625092597154236756132277453522006391021697631991112044773078666150012828637138195600108066187575273659052719658350575991080670688971935668581885483254512752710046124267545404264842120374148263595080459308758003142990162551229246843684666617229756189027036834323255779256629322426876968910781953555338629344546503222272695999412307877356911753290843235538694562269739440928552372223091443131001165509861518215465305771692230455494473023040787208373640664494481520643727874356632283863859555662576011198160653738218624568054831451835161147907153534661640524932796660956700845487426326797686459085356611546466233336866231774499840055099248563250278441453951545337697706837733880060455557403651396155365692841410938648359540227747241522952716394963744681544558858987960083104198994171896411253067002140662926257570449927425973814560781223355130126451310257113418831514264020906489045062247215189332767110993661313467252543830144318204413074966368599316989758777180307130437732941064088394806650167834453939244130808124146789844279900726015161656832970687485800284796972968708765392557807022207148016530017146235333368790269114938201027719142122103643080258088217842096641537425788034913128259176149331403096428086140698125583997415332978570987363600779393087516869235490501878707058680966965172467686904269813880665765128179116192309976419663127829614671685430507003421343890629917468755272981608472558987080816446074332956386127522022702980224172182013557811417332891409344911948468094807059729051680299527659963853909473265946671484501348311507254967876013175395649877069257173889616815790551387075719941878497572170457340377947240761696029988068458146810633113726969935780676690374431236887873686119490329031058061947225400095853036064185013501008072400287840493030346776979564213786018809380814980726516493425965507456487767355715500696014973108869601472298564546579197748731253003452768869969724110477469251412679344279957778834791619389847762608887633232052057945868846547100034035134640610839254901470706573772426002978092862232663596069914310990164785245023055861450268212006857637061703965179429878660723472242992307415451735721768670105136012102381225956903829987719877568615068109771931981781535726886150202416716234812852783878078396522651353452182008281607166608715723929543551588815852100289386559037469318986343235543833975594043110864825615561376663282937294470772479370103346650124080054496929732576264594126319594878028101836127534679707174739192402641098255735962572885133611078289946481689318238563830170004721591631286641232462887596324716716940579448172864067035885262810171717917587538761135441837996697004372181389588957297688678084314299885800942625211337320712179846811203145043638342323584168829808835782407026330500568384952663790942233191293771244692830764602558757995466079048290224653494331278663802626346240863022082595887166279338922263255687215251320021152764775583525304070522713448032434426752226487403329657201259324213118751764772624764069147370628318345090670337441418201361629851126446546326750974412611634527844727187689443526720185925176729032637560857062223724882419315764751924031273518456168774941058561329171936855801035695958249260648019572872848244476714178445757215004281756574471367778926672037266571301192262367476923194028520130032560713829922742379213312214319787052842273733750938804036585429798978223052093072262345487725645614667117223304763657853112134650675072008405724264557513796283036941911789608135504917139124013376866627945217720207975374946686662423179229810719994726860410774428100824601668502361745449980522288411263409256262779147913536054934653179758266847991353634763947617891394634088577365014169651084047370980722972242235180385717204301586670350671433229218338898376999149950307125979468134859700519815100425132894741721072197220319711677072792941802417087506027711819736254985170691864309292780116514106235733568146681992952264699359433748900582164016826954292661222666490438922908447816139207851060253943954183626791393992560691641180136217767823915398303539049258723860711663930096395070271409644666061019375100428372907552949777179377618575709803048345088420996622375375763613554135899882988497094913004612720718460185589984054007259822314207126378520618250063534299076520428640148254280761887524716121061591683192780318813483426546248432788138689917868136155905861740613930345359924838230557486569304028642382752753696435132872203884527678041557571896479906977294667180720246988799498523992830985428887103496949383432065368354119363249474034998252514415287436054334986516007074317835284785308792493511812552790977934280748879576305890898312094380630700744834227300104884953701066553096750054621911333748456737048261885375340713704462124845551511017055830764818500293597328668677497180041933757370327314227726060149497772213474510479792943962086144264900444943613493457832004330899984156468517740154283041143577733841451973861181232982706978686083018757309638762568081922942602329628627257887722774358621737306192340598389914867896387295976529105620867011125679194593384429345604297653852209706668167245588030930821482588816062680703129204045589312468331460244925103071211940748371186639533087813342674051208518027695528782869607040627999713403632609346973365289108669380612726071381981312229438814533466684587680501170600892591338059164185817651741263097852943119272269684831786216369965021053512761562556721934590794207370591879440198697401474795369072283361284907451010697093797940330948605047933622620214425547742106099713107561794012092652103155232570780665811930667137229542373601564606759322367833418758548932090816272367811630696363640253361634965313397233285051399719069972940561198116659293930688290156304689997573617419891018731269788536255533443468011446288586782228122776455721532250822609687484223654517353876134537825689287346326077916493791421473666474343555802190458505477604822154292552212547939565130785645623298085600973913590994569411087302645867889012029188585332048521247491835028282510637363125392948768487372817465226873004716227803499904551975440223282795092713369181820072594987106568831128416233829455452012446708008140428495618259997612323544139967700595085780827226363397710325133193102151256639759215705016431795359802083670690804501498139881543310493870195772685506428932589882028867500664653549879692458817199907690251706752350509327198192422671363657176639750477943700040243938164854211761604489393344438430752427125754685971179470739506978530973591504511508721157823345969350420943415450647323831811544236558806349782505364780508602452556942957993379863396978509333995521637407123622770069026121458991077036535714469620216936981402804932028373563951171424797689337628911768249097941755711175077957848560442544701969176230658952020858242786088471196163781744503077759941831699989068283260272345354025319709038844031400353662804182858152822057913130312779329029564300051804032524917114153399462810518850401916751404681088799948095924626870681964224389162404537727955407922462331944355906275869740437598463693844242075910521216949786158889677635905115918343784031501322083105354112711499752935252451862068560440687839923200454786566605405334683093142475986121424876403698249588769952322576510522891475193951476416762548131785134698503186282245027049284371480516193132101852331311732393574702431689492611361476996885096294402907001025017151972320530816597482567728638036261453266822416867449890195290330827519695625535280832686622333680943719183273732261913885458293889756824738444369126451251027011843399662419846587622401036625830944037053881767542821354654475816892164321888441557001535076117996360731401211511973706916297114220862646002965052238021878881729808716783289045559000362639555094705357238814707651334591058941282157583033392351630440079320831724738380925675721869485858036282523310503595798180190634519237070013469573534607116617739319397278590096557316552018742790061360788753178298348287233514734016916178797515864527306914328625741962740096052873498969516680189892278782989690900982488736281626701504881609785137185309176781757004544514959464504015837246446708331709560466592780841368004728132410668506232178826514641630840707818373567981292415455910545507082952325902903208678262831873841194455165148034012867621756972735491388748105006758244762238156722382488774789182024708161263957251957477661198550045948264351116282772427964112761412362906351020507563057451819369812564884175164424172243281426977018707773774710314494704527431887449133346956817962463891252167658844494984858391750022670417311372919811303326681306955680321988757637937376729532277485023809861274888834965335337655445051598834767827630088017783632525740560830304187213407704243757416903296463572308646714911938465327520840519603256109163161783785536279095103448261485193143306970331786926908776087090577869246565002640668724614985530142512173269882103798522292553510550461775778915149676746466632464676838680459989302900547891310364935461127385428704637780446231169636614551170665408262505710046950701171422080734666041496432557611921643479291558677087323539909933019030018521035546870041248492863238030175701804328157092565110713409418919753468000559391231168126245083971810638050904364201071015801978789908219571775371978754042478478576155225913845187535048575911262077071078009575332090522890640708969179129314269908859772791423946575229373605377547361683308638297147641953795597083379220471909395727980728876732479405517605071505005543253689896616552425150655479694439806896041488400884066373641664411717294233140254629624226108399711635076303152268677791312786913147313203451730965850951272686686131668756898175327850131544638354635320930034847542429870518183712287511965803554385448966303577386213541077739090895053302078818670700451468136740667898429232266387638634786748884487766537650082329508624853178822949280009160537911236370166032835286561261650070667164062062153435965226973430446675669878569948193179677298907882032074763889580420643045724240181022396573307039937043015933904755958432229273515969008678487166035051834121948152286957636241206232690050180565881876982772284582328618803595768093584730948287077591099652953333742092622871281731286455886681828823779993522080553711175705958723847173354338146842039934491107696547208247072400685841359270718816905898575295643542428681170386790299747548731230506820350729803180133653976360655919009537579243739815238012286270137473520189861395937049533399852774589532086947555474556436905293386583852212008700952637552979759263613001812440723519731908062933169252514697813702097681300612295845131951617771017294412903827038572508142230408060868615019513986208991073544310787829382594911934239211000664053374528572001956888408593144279605806553575594644997214176827463772562938025221844666638202300153551943752300534365729291590761140014602065185794722739882053689114543406665625945341375124593265775085536971570990539044926246757738744168790017457965508928920762725190548414350680630256959524117890100007500111613459115139299072943981901360923812106439509504557957785090738766377956832385169072420341130347035813135346129680989169150759503849161955943987899416004665178719529804672106183276926519685030166725367024643343042961846399481753001285742640160128023961560917146089285435835010216479299199218558466151023383602987136638822875518667686700877419217192842570385401510284808379544413319190404027095305448969868412376547041182192417730546429297913327120535280559874203487114504175026870998077375648329355656228314006914914803230543756870344745514406341163231645757915322931166950405662747872746503564050117925262915920470307000937831019168803780832584531420565576479185686635771948729805004858176669467599905105774122262577751795589889806309221342810802991773845139040209701124390972453724234651113122119837336603009932006281680891856952027956830671281901056375769370957784668451525407545240745693080086402915196753439358196109614039328997475105309462666506919935535695634600004814487423231506422285202742707324471591700843978149677181183094526446200665540471076993481537573450632459605006506563611105404879347942242305342047449522397523404060482274423268757004747639594402115176689109210489431851851108262031107671746408835755386039948968252518115774611939141585553789425333084325910708105110067638275122054594228039407284457191042283111444318383228325362598947507514549678937515042907348242832850966113941288673612436357017370607416417526337606271973798820846492185642739623302902593727564550351585028853174093713597854046262338168471236325045976530533364327385776155625830166110451348289280811871881571505145376462858471000694436874333302382079349243419566523523095468120186768688614795557046007204353431752692134222414872745236590171249349862794799159913826568335359704134683639883288106615517697521172659234465134120706781570191361115158351282029579725166392678594730381057291993033598635108144180278881216590572451875333447823472626950933390515635638137644467504796908120365552075633310997115970432784409770672157995446976526543153316686894595718305946365472206151528116680996532752807177803149871433195837390849968787432306932318032961761286344053730135246631393491187787275330674961707109559850893790977210765336914941333246924583200695275408897898481197010894286165731467583890908387169829665986228395048726154093762496318782569871505964922880358017328091294213820732790581278043174295593254219310404382712076410526943914917298889432911980434396613940210359169731743659257725745208824970785968452237785658507480237463778170253133833906640821549296286436013372474795042237725368038792871575414081168753383664309938392587213692350198947560870226954007388579417890034555121891659689521725999124103772016328517982370503900533610557111151376199717775893906454837880734398911207866132201781171569794509336417947450635375302160308063321732491822648611631662269276720979330190029433197636613496918220486154461628369537925635877090177444293438554006518473516479249631803438235246110316076793664753636584781156331563432339121127028699684099619028303338610018324585324709851039446102946370040867823953843829559366441822431953847947776285696573877889406086531171576929328050387072801853002499326075258964352880315282857160164052834277605207389184507181368571497215228211233825094454210523018943508870769415660377622041473117381178053948419210902562600219537948944333225348822796842890499727531983642165022967636443020302887366597676791973297881206577736233770149283551959410962686812482969732555025608703062640150995561438359966155111685465074249070221162210865437968301678904271081962888518803575345431121883480518178735671539323994813152433606270746238096946363568163993200347514419100712794026288787437115989101264785494923817997808451347012097241322112342056739083239881890028474247073954737042209470908663017814827067801202955827310860813219371775945988935668506941659205735078305582223069848851081378599749460218857461262279616671763236257533988439518074812464436333300088172530028566008333211349999363673067641111253861693534489730420228722717170578436271032471163116492784488805424126092968870488525233398866807433437271332059575592426889237261435783701215749428337252856145974743354356328483363629151986760256272928432197168294971253201822907437605569469413112271911335868740499886604585707328747328899985720155677632869663631448996547255493843191818666032261332250524624872782540616101856057243957016221243330778002238288792263509185966256355945903288217756078909582358014027057814688447854460422831297633670799448398465200212346136524726803224936197939382515652126900887305793011203593671208544099904708012907825648074024375494080550190887733258894185161185285833099692594282711814135548420882226107129416377472181336712845782971025003854207170105737150643083118343889689353492298904034458411710426139152997221951616010108025061487412657319011191501729492689198472590483806128902888938636458719056788519458712976525083807187901588328152554181922025082109176811323173997729873944452610434173255248468552761959440221956806127462446160578379356635360698990993186022933080152343455743298580901715404129403344477363812451831494788487803533768483994584041006729402914662878342311232268646801627783362541004606097536324505262279104392816155085969329357517172567845000350442145187392511258822884096418991195626265895793589055696839396934943937347199633866534321216296427085773489066665345333618173714905120217609567553707630782375640736290164709716802192174333242783085906886684944770668961637765714205682762457670254212295568560586253049608018658957907424860228623496005875846633628871179832879418046407212903407522217388475266312948515366694340522856270209735614368568611120962830662710338053159084024754272943443288802098101300239470344171655428971058732520489807161946832670316158573847935313385628330549131252401191083094908068732002750913764064980652551703803525694500992157018267556268886349207656312874983256883113336898491992431404323019684726338524944951275161944782532743354375025060055655132852829040026777526352408145219156386888720760135562742790624117441387841080769863993809585499030492904990325980357856706466414589789569188616487435183205827505095397120943272352287827932327081063973310783267994262108752712939049470101815550706405266565024766929964865764745930336605689214288698987785865430030523217812605870736588593940093941242454834593497800429804997732262802601566477214638922348526987597636643147639027496287932411292271988956909794004121193714554804319624026656986226275304092161917322432189222478459799700245572701534593444017414305152965798511763794702916712019286706511138089434925609366160516831805278090664842580866122102694021868428054561977992466619395280652505451046590529056288893392058202432486912578478498033357607625291326707730846579724275212930473454441035354097685410043146807592377234522968344083301304794008571478602711307581291118100733691669323639842636882243647170697499069232061215162635488640154265477974799785199590905625441705888617259644863192400179109025516463852185407226027861630968457094823656214109860840278607443471695257799024994401809999956624711384976974979679595692881442555159435020280611800674437079327429157483597585868272436751433661547913900294989037314829623765099004146304528911472328967640865772927254696688240286716091983042927825829106954765829546725950379900142945363603982703950750729979823502289809801015525230489109317564514470422715999193758847855339390567942402364976514018545186508652934293577176408227686879886581447061443106912259611661790967139609918369636547815584976224327246606376592510104074276776793083225666690793966092439538749174872816544098295878431896994202180339470002595354690050381569959642393619380023905649456707080836362575427436479644939097239544841356726384122925078015761126018833895250425255989128919090610608041616870585384524234612755920345943983435812053527890769774470759435937415059122830082523917119603884969490962952892028392162824007911690717729866609901042770811687457790366402641919822293873804914544242124354747408774181082950800964077760543587578067677925970384004384728082806123069747240443738011751636674567446035802653483685590746585566159025195086650408438366690386011261693557984436947191233448806271342856394537835287931708164990415745121816804123909639097157167045537010264064346561961601977392803317701510379855320137009161215028079065811736025922318511547173035506269584974815545178878785627817822153399800169143921982119135643487351858451414505576886973810335618471143886020095450986634462692971025469921092831427829559994107113666575177041232096237876053790038007494114419377664193880472433096159969256325626597040866899086375546515312002874094756514165333541426771143485680608125571889938498435829234005584568076701879851650791961557396267138968352192119452199951469350426132445262856707911920944619303106171177350859348369285574791363302988081245898778403972614408760839829419925425382738464284231320509983692567833779763589007106428375469487433649285173633061422421477310699990985041595222786362304422490489157042326068856411960805527728340120213812498186220750840185669745036815256753130528054296844688970230675719658103663063565390924502504547730972291968751598532307715778469140432480280527976421658461188245360405910085189327445033690185264550180793770253528736021051727631015817697562668808878198419160854675837385485558717439567495184759036534556258372721750538144941015518450625339026966558712645062070678505898492937689744607995090330806748463718763382437611662684667117487488589793761188735187516849889983934212215497400331774940983633590282799734266945957165706068953681781942933940097401069025672182689783071153277998614217572174032395457145103279173943349838364525199324870212104315679775240259653941506331677857417303121306983785860639085208779269540065088974732606685054052514776464795864288180344836449512995533937558896838146866452441943584606712167721367301878631562113963479242843147266262894630132095952223880433291762481202158575173231601452166049257274662195474126721990749662567288384537612320179076790988464596333627797727060876578965448971900400253966606317331367399441871959180731271756768825912047540740078492493452492614222063240421433608841146356564340415088804383767768524705633115039722237083876422909307347987648208775504252833604829703489849265569053491076665622636214894833912292176089118495402682432687472476928224651443029276083453940976917390073110020172260520628275824959008788626446668849968086789324896143131259637011512557464453035820849581910844353358849093248527995172032942184986960536000059994077056031810174785333526947790051331358811445037225881594285886764993973924457332683949473529242476854040851145862217687612826967744481096476868302370296257180383845792234556329783486725244461017957084310127441269699169094866542686410458940786923222549463797267784518786754648293133110349734321166415865336222747390141969827806486471468617330202062468364018699941734839472264941379177165595049596994331173167003605234644651179876908716279222103491867876783863829571924248100009374586845709692086639567804751737764520387374591882677369890008866657047211880458139987070690069721622372001116934074600828944580294724178313849934284518839769439014752169192356752674174678671064563593734713155646646569832545357268064890418516397903533790320166470806778643058625305472086937732480482748504659240819236039011193084638309375290868406639232116698514948495588925905506006096129694885028366197753294891671063762195544767763167978621029787133122968016448577506017298333833719790428484764972213013858680570928704330737423233851200306271240266429184844196196743177155276025513607449381411116185434702051787847114722392718796238486833029247666044750931698095874390578905005038934515208294988522230289170096057512978639360541410218600138756312565528633730083718763218288768271440046916754987648492366055968157240207473014827724065086231426928206541363799424545115037266041671729280689746126318560032184343676056985215267135349911992342669846350493197872689622996825790000319786371391178061180958636140050271681653171658871310470019578649582138741823217889825638643489412420594226230296489662353070202256182640263805182565684689403505797258778482873021711464374769902365750056156513329532584825176735540776927739069270649843587808357701050608820785885993006194372361280683528530564883788249450813675893055590960083128771981761757909820047479550647398386448069037947445895194081398234327081421418506389975276567297428393389198274052091071398095615095866867679300265006046814547094461692169770146419823037153050730073370534625176147610183053809121192165234477196694286122836055956863236138884291120559805124534444176500158687761742596523369608696594958035710102738956377034282187520906704872491592924303846335514486514038644844255610913082853479610623361346791534523995110715861431863018854280415756482591008561802123190676583449437745706466310601314849908575267396745196574491654159525029069489041938566869153649343789920008631165992463726303281275891502508303497831872505295074888256745054044452712276203995031616511396640873695336901394806738197914793090449769252383763328266917117155242782324696999815563142159815699524143063207342338980732147310964299746852735837194560977776784925540971070013823761409564963588362206923432301737269662826884295155642990232269120350964613303202564388738422619409043836590124881784367197607100746381384692754122295995387253484202956230197742013808973899232310761674621429435483212409566959449571779015074386606076924752435149870752052425903033534443190234650748331997557257217446137349183143375451459655997528310106460645459601327097881355974764125767747866950210504783383150108730863735853137946170168685259737809326982680631226340514541400938997844427381776603675136302221002229229622456689980641034244167868640940434290842817330541685516133054807646333986181656082539295863871318962776385112322205433617864557725530821417454085110999446148655339071595997477195545871787068574546807379267791512733533938403521941314238874935653909066365659585602509443456741514083115475712341636483592445183647709279240772686123109524655284673403013735359621157922919849509008463545667792368309509139383562639086289294622939055974332909505226139783441566110466715052152208675378055302605331825188047917181774009550190574690745912340062335439004362587489311682496721322599700185600179387643430525644803095370837414230619387777557713059758634163263222222636859455949088886874980914820644938077923141219568070921580259557678125502536674226368263005216000325632204564092781341895999233649856496595871870808674474848451235779016389173608080292588254606762918301834044009457590544115365269628283919357713761823783172975877403244445768096178899803342674534194046281285107500161966799323196605110806295176290870207685566723214821642448929374348797200847305311456851958240890435825658085747537533462389618415652543036997554913537553125283940347286140070155568388427589846665625976492626340789665419342979556185284374422887252008202580560391157092455921228361991051987692412210605039172561430200307925209713750163354387945400927437473623034087589735646921955275866738925148949341152535712635407932343045841299297657044363774639710329380436416797352175053542559106326223744230403460488071441529725342373183209211989562130136746652389012296359589855393404202566117594801572052870495429821223624204926646152014550550698479101891339219545514691840858676627636362647670619077565058656910635780982577954675261882045527527758162742692940991528538607187205570294750002902202607114465878486475911526036972768280981234183582074648093013964917487533153257842798338413169438794367881639875799956931108913380708615192147284703783982769180370956794229332635084801506157545893888183404138052986754754444172127056751642878548439765844345691674900732209554204846419522450991328798552742521665404111832124199322353046425605249115737706341719907458307113430768038372365592911791337194814829226539818497746910448436911707412119430242624708642400151359538199357955792466615836612409729221969498900568554006352975976999558770497448371740585070123092031537075699498774749152454884433829940309659924585301012906904369284684732619306922350254723865612106667963873277296608634633299057863003005345954185285830553977995512737773671670581017997257629599575220580035122845258223336536230881488130776173700013506299880396352985438256388412025307536415918277992346380942169565106813638499904647918306583202102062558994842386967956678047707785843428078712862182078541404721300867412834301833656613718355421475428888490845039215153229296538843447130349850390203032634529517106363027150968016451627982907770225935416473914111662518512853661477247083976169500379451341784299383991200463501442413375535044673845382466389325946993516114785259950747283270934568301299001882486671118756656477825194105476495867180908506539622215826440563575598474529970799964832150276856327942122230634381719131929388221233209837566121573602616135444020200335551992888608443060384654929947022153119508790613847392772578407110907601034213130050014740476407314529200420583795177670618561015554933793782520412524760466763386575023241382725283339958177749371305508748844682622642099834727920200890070344610206112651013404495087146981706465443674438950568157501421459147683876431375510442326578621594897069313154193792516167174289749934193753265052506705225919758354146678335771109894234890410685645604639118555662009200184724751990713691696562227938941209906946412278401624015287705654887448952710925804061928569864236078186169365011845942341902383242961081254985398227252080295266836379654827764931896813376591484886027481532769488351865148683489095166551540078206116612064590735454339641392754429616305300462870386204519902642173629156498607012962841517629982301990497800323642965484363993404565491776129419015096573232551145193965949786042045452459034809908816252785237263564182676890242636002498734935490282702181531935040064971644388897452666540683589665047053970813925764266563534591031168008533256410852879535771319468947977582685107234035684998075641167161062859594506755098697238066377315990371855342770552408438960384465114022805755059501406334603806787355179055759891881062480760330952554174883670478716000635930708096685784672256571220970065941337351706985737913639521642293363563671806325978560337985528132184631424707710510099496217248663479849131527698966236447117302799032651983320065804110396487822907800316209349372968529604591154661791622329211213658011239042522024602942497268824547634346504637239182752411138337508408781660315915108553256905869597498454664298164297758174641891905354804227444308177286455586167636102550956199004381976051217312485169068004513962246926655923841707468917381295278001021713878790460610964999340866003790957213371656406120399260142102946547853091240896584593054057165272675503861270563409556202102492868860397729019391869456514202214761023048377003452258841736246481227393308827098701048986305654344478365988944592931092546467441239333932068383921794878097717558780433178867330284281743950099270297706206244315180303154317390744780158660808890572790917322646832028953356004129546489988119312479270704749051951761179582219009027917788027858296238702074654395331561035896168659121595320416642487144724910701638700687468742143259026038304884635041916004267686527464757305146308421487892310345146211572751692223470112598402929229851359902720812857649241295511618307650502054103071324680562413232452653514644846939240929959858355368854422332462285666802451348466074675909472012510023645364650287068146327205640883855155914135907139773419495448756394601752665847401130968343412975469988335830250800681360715345803132703293395458259882933332941223863305878948008855209452222230153806833600095257515847663542493899379729017267068336901343158196375793216387149352878874438283952345721263106308862141907943282930752139367991774595235567633324330181957418396428558128770807386117425785720513007973954564132939890166790926606320644232947612562515461854372693181462089265886770736887184884441804563502028556145714302205109624952624342741330207343776810738402470002400015017597787899515710937184814892792056195246136908019000418321203349390270579978629922366177863214033772039821097595250932127977217869137067959676928683482243063084460861665303498413700208201952386290107534969242763900178013657696626034459398593469842578977587972399166900355050296834101276506997096807047640991885894189767071937967629927734409729672073091434425319335458228395575885469728606339668573263028605475467602612532431614827048975748581362053966423188230365362131129366844102412471673522062697429839371699235003047839468363969908865245702546289958783350669391390364985314915398627831395709019867477669001648919966740951805760464502612612756433848204338536403729365078620011668039001347499367038094508017437042715234791153439888597714259964230440616160319452877828506914496322155002987570399166671287787738606669097254756456053798028732680661963202605658826168053944292126993700975230134521124647548969278774253328289536158512132423350653043778095184773226762642309552593931907861083902043165892557429879684625243627681670864415236440472706248558457905580381240972758714112574013985610262534409520503346922981810734952393406326604187473543193669738729104656846934293012866914397860243831351812425244614372398569505943830243419823239330712474029501684695132483167713575330540925093976471190348745235846592463698975040761599693173398295277444000947957561486649816901165965640194200226024156320481302650359637161707666260187133250755510027165279018983951285515815527765074584565822169167517233775934608637332440625553292397434672936703958886601477371858300304329463755489033367682694928816400632988596583189188565844358491776958466313197874398578029306724838077616775856730402374116517554481087787982344490341725961152135950205451228737970932813671988922641843764977051639690904431989291581360791441461237109537681635813814532082445956905232955605011224769628232510182058093977996868723667384612145300989801005161402615339421823627543426655221431312638382673158244418593589961009772905913695125309899367046083756813741587191993914107926150470546353717390887795464107816106114282063515064211764751029427098203929013027644758625168887261144949605154461953511931141722725672613885891190979308299088808360902053328771632635416605014086856812109212031558818780916059869748675960792145649904096636260128691367406407826014818631930379359256009866852413848209930908247443115927432924140990617329698632612448989126027188359951175276988250046311468412852892520115449263694104356282920564334511269125361495353270157867253456829097483649128415142208969995493366862245182857467322449183280929604146950185832306629090730752964463321491622641638694980572503418860311214382412521887911921336050492639213548468241279230554527766299980473157042147522987515454515400763291495527249646846053474732054353958525242112597329148278683823228195980410161242608784861290711047659641037428537160243612955167596452511007295818963184920635413401749572066614490086362616759282530547329932339876882243809690952524704366300735551240237730114338320544367807047269809840406009695173193927914982368383139543999452450842792950367071366721551123953860415820581704531741668158990764016512694609986979939169567173614659363305607993140611606829439339182692180800938184947665577944753241876989286958247675266872587087486525204770301624030187441225498370831646225472862991265091364350142602900516229843879566349474466156846608504782542164634554816790245947152527245074859733380616860512060351075463360444318311643978840311378243277437376569266551836234977391216584390222097497271900718032378267927882410763216429237658421426450360580932190745141371474300510061593168428636523717600526178934961998947987696244140239468668394689090768352615870087179453344666083287640892896008619405348465718885308714300432296767640650731312501632763031510712162300256330332607573893499078842059241910956546420467272129955091242350165322066070209696137171153519304756110633421843032717713050268920494611404717639668034903464682035640310763866390195172827480840436488067405087350144658374454482303194428400192193410281188761547680559080774525030759096508021433315206313418835748377299416132032001680191052826534479920011519113866518072888797975576319683992476103494741656668463981909798061309623606726191586650335314512044225788044669548197626772656480834453998804120810869271538946630091961699765602424802162986039423169886145505637463222879510281143793440796141545929453449711884221603805877102486600609474105376689681959677355308986646538758568838597916392392662636893765802935531374941422394923583224475464755351517513059178381547542192094679883922282858029924481680508876172008159116117938469688406136163900875568123524966262841654912552022856656721379747804499379200461977333925878525750476117689350690148565626738718532980538596618411532800185563853315560950770982560776231799852050896663158264937140209403214854028265697477295380611988192048901618286077418447207741918294968792294967263881706882265995684607173573021981678155025141465833331487940310403073443201076161973669647250016817276154264457111405891302456163190368507068489729669968837098516648681740070470045423225791477313135513074521338289246148803262044401963240379712850582783659971616170418145157416565613959868476391078768814938518919832678437209944851492456999456730051356607115791777617882182210341261463369689285898364832479521779936501578582548671415463820219473324567658363408591048424533707903387171593298116928139889711513364048288539958980216064123777820814184491567861694020832175885861280395129071167065207873368710789778297987328039045041680090335705144579127402665518869080282932541566227498026995117669721779777638702876107309435308432033559349002697192699517014874731851769375935573071341608329359864027800745093585297957740048581091461071298726994664359559762545642852938392995518091850023872801199283595959252757816757425734126919506147753088293513856820605419713158712923063474272377656059003598420635385223061734380604373147799244944041107801067277534752127148157084623727946677252952197803390321096659238430830492255432925478969264900918385470958744817421501366523560923519020955317831266295071093455640233612217098531148340890680103477056914776732544844583019010577314199833188670876273172424884240436973790692957011057246148131775425047706621000615349162806159156272312129884735681784050072156540818735398593792127441186597933253952498389543594105437631666127742043890662359576376105486760081998752862431833235513145827400826221677730020253041099961799384367659504897347074728297295599613131185194561098667489438908070301036986203800560135560765769451265624719571645295493399594575180684095017227582682285377581273606345466867795529964124501068404280417623848018007451065807056329130999082961078865418549429716533239466504467233258700550068471108815887988559091133657705104992400134348632823569354093902940028791700156675046480345210531399657160565264597048520367485471324451446442550762230528877899534430285676167326073592752056073818506428362308808269885803562780245359056105914473703980374555343479070478257208396387867906797731388111975048916983182485968681004514920953481978595561421497637050921036665356752874434505003865469741554609440611478640624822207463132336857959231664314621212867812257073439925821362820082742951757125570159922525261766772557432309316757076417342085187015140848052112843170476433064743982914063842271671548923502420683010090356117004775598670829124083073364065667195074336341547874834081940291145343185912829637394256059937067885001772223242539861102163213054078183505368338223436156184928844983804558855055580699656085226924222038807792986519932567964160430600914213485022111576282790598263825976039857056225155716192570444791929115667137778191401064359363059476078201381548676021505489319805891425950107500880221588679956316248155298464919917621803024880257267668998060382239369728112249435182493233123909600424390948796573154992211211862122554456960871465639413765517304620322318778879804980562785724104759078975211915484175672665124959759401119351002512257254870351169059387480532852798374615733898377084938974383424332173159224112317778514717013605406143094539572668830865104923057394527909450407935984440721210058886715501476363530271718473271703112212956190088213950296100860264240039308948156790365484147060533684376458947446753350734257250396391547707680809243825341898554304331038214431141413483183798433490608906831371454908250020141621104468126975416646610217882969960368455854864046883841888296580938248876654347183166501739212586348581862886966968715319652971543534663745158197884123438198481365858303292918593108451427160943061434991133638487964756444988107282944341698821457524036491318308203745361781540226121983259329048990208468686430130917140786688522975347250806381099309026553823801793315941710893110820760645220934935806948142739304760709668700138296199124271000704462380327591496925359194775795320812879554380931999528361029002438571349338008975584527608532410165885773580901036391394720949102237741770617135280101322719777932500787188436130609748653013078350553449316285984166956065572153464239525897090268985662320015768718577004586389678908890649753731889730215036799567355021102565682062385547055115227718922696470154408220531330667539181295518951617764960881042602247765504166512566508993199352425738655478971716936857482224214533586612494729147437033396745633110033961080096646691519292121879368315739354178927453490530949081779673513651669572918740320959028920510000944970326706790539526987585930448682981233047367408659834741679618279717704574238553885371988250447369608781821539313049047266381826298452097163050581517970378526772463571057042871340629751509183810711485989579079953779427697728298390115826074743812948895296317471925449633587574702899488680182144253368428682770925137712157390980305940695779108877516566075775729691165075929290301689032125292682700116887228813657650204597365746866216536394352406817051437551192698046570688329026798779236355068616486209087721753121080651936281431839987141344457965533207118523024417991976970471419125500806956732980528568166039998084617490411421392238001844897890178219162720252146821647327291133659441710293838661991023710546012055485928288132116271889594646980992881665044308348442146845672381236454846503843689140109016075248061199954828848222630621360699996867267963753210280236887586174871901090484900332243410316552708145431984153724815892961860681710658058288180068347791760152311156884246273848929191040738868458183836464647283180057262899092228879485176614031075706800598751649188876536487748424289410976496127556095533313952645879129913566752374027117847570481476053743365070298897132763588693664485522772872492898971264080783486098363332789191386826951034740327067033748807895460604534923628828872846610566829027789012288285929216955191381703506373291002668133633530482786535437772805813585206935797361705899525733815235752945149002370483327273764600510519755026652072299960484256157042707976653804823322495360628152498607406781996713582788424438662849995172109244816736610365211934457968601804683339648940701340280091996843294312669135607640930103457024557600676586590538666963143783535629755810945789580300186131479480915781683799562963521188293779790272768704405319734473256225796913131766234131294279576028510859316117962235068787631386871794342050242570573122038662392455757736663442244556063932267363834656770797289337988364410834106333127281956228943319593957196276819792541498626962553771196520276169812250372649821661833126111502053601528126947389745962714954089356329468059038590078919129750095796887446230503470562571443160290259059392738167435954815881976109792700888355172692426915666249881838285190091971761173065885739508683578333820159180414050562080997282013623382706162090632303974835850670074644767170202869285230598290122586697208397068732828555111027834405332046873292948098578015348848322003114513379721646726678414324780073404500862605245394809090786419925553392882650104270830053734632773896239020393511248569822246130979330650239730598937040984011261127323614345514141146292692622653818773809410358558480202375712001937802437513305209597984232484868334063835304833506147425109848637151112413834655835449255017392095082509068062439348717621489800747791399423307412859208268840967120884791103119596195651221667833310431982008180188128027005772275302127812141662648319549679781600036225364674886433883057850450438359361162114957481899510047733071764761863479833994533978352446919650977857304625767145000283392864350337582095746045133546224593815417308605631610124214439979805647310664654531645916122141129568041297515088634182759180241050501702725665743517859438013306475556644252019849763339328426593250812027515121595112103369272224106442800733000859128310490562753876403840467887267030531086905580917171006753697127421965648151683391335964643698742155865657661046517226645274268725244367093422953413248176245894496515024471780801762961295613042610198825629595478041791073770693479846270937466349026091960401510503637512351528300640723114351149189596533394514553684594522140318556200903370937176454033659851907446476012793806697992422406106956315423383784642450604160457019520989729867873371486649000228223264407950517628368088177185358453144392110526870763505993488276825763368401121661404516639285666238159056499187012111663037525879916415061752971825701844196997853104246777072752618366349951921719159107264573421531581701502574193869033584197000390375483145984958733127469063621948970359267433513174153386696018958713560211250878957802838964534418053338142048500513821606675920098680764963001933453005252792877402621905606602684066569106336881627828210030924746752181320568978832117344544927714089781807216485814408560370935728151637827374687216484114738403449553720838791679944004798401807800181321529326184824413019433790034024266434723384687545094741915131652305329141406747144436863864501841286913095780376002213199259706779315668668585874451437654479602453450486448361133322115832497508985306723416070650347409387311012858865104790870825329308523581718806401600521619474979965522168362374872211337711825692215274400032714905717154243977090856950317012186625782860495150122854043402116147590955840973360280361495753914382457983251918948636024244566930313609181427082649794281910394136644521672155838576668026340739661417145692560245144042436560009595908491758859912159187100912752655117804718790172161011309518102456905938927861707613953014141036132605576854294371191409589212460183577049955244875205718677770444936874975089492493727761950933064734022548332834186854197599840510426872748224484918097924146284958667360891951999564238696179179144987678740236724608765595992175319559838120573894257565790147433479267550343657864788531590500478893186803186113221107322946295845650483511758722868442501302605544718873227274500217793759243596458154610600452598657945171969548882675350186711448015196434548739101887349767125754999531317435186974590103580794488053970561855561560145420199312766048637645674642508612838884079931166948471565360853123474462236442042685283051629758947345276578512573171740686391874646191437074193776097771294272263023727893035699923649986622765375257096374165008402970391426474683245508036771364736409779613433522706508577206592329428468818009073780927703901815582173876390633256250353453480498743683701531235572976729433372265035184376200850493178911488603045763887585010261936853487345712295322844503340476042956081460847464153932784482567822396769860892627638489066565579321309101117965826983604491600281375649722064318013993088456771442803948165711487023413182603678872363182282741813833541230118126471088040764480305452751135523151003342081245877905971793511144849412873184143644001149732922459056825808003502087205190981895264298828108575078118818085383029076984666124739837842773703536366903469869851976864286827256484496389012457755678773758378304998007899121868858505252555597918804796643217693371191588813751387810995434153055572403791524623726541552934574862187399027523817756395000717547918448370648667949722740400057870529360419606789698572574514156673172117894335908872544097222995067097758284399327099881190267583973562652253149693860818604314797740474271693807311572576983544665385953184015174937145018246161650780609420866519721247623431442947533622258171349542946124646343734305183085137433922690976413205687977960929622165073284350988045491940721694606487678768169615251747047151731841864971555723174205410201415299477575458142571011230201796565768624499370120994082183668581966747019153699752562295622803885027486037402250982840251203927304170071996339337763947686247290342534900546974167187395002022833212307297296129421701265553923078149840593425249547337758077698434236217717970463742281316238531494703575804680291310024503923987244207824748029915675512214468099846353492517878499563252137240691160994407181932677059649994455309166472035460638726301129539781300400459593430798781884258592845006939983186067723716625533651663998763758449917532179508327455534959250075710744755076249887168441460187610564433095891175880318035134562874468466100298281474280702045531406518163973778263435869515634190013260625083234088577631863006599437925307586199124661282594795339068821666746018815599912689858622072427756559516680980383716384159275916175117166568418861842065229595767827453978741443126967523616457858954259981186561714985480123733369573938909941189657641788083681393706692449305497585897221886244567611638218016520028894369653932908065625769383908118674550942539163144025506228549916853005982148873203818304053619416072013060474750907111696586789123834705617447254554465765702130290711763636943452960714365737458520858692704887086497917146687366662687355021517581575239891676233241831238004640500446377461978160896905716887539725079591818314339573466938074897985289312809914223683960752989256650064228848935504862178278461937979905340092277560695637256710408309507019789904900526341752338675774989849293563547839866422870691435890452778127763213996196420539801381975825259628187801265073259725373355148466169387943462738278607705082369952856890314864532077219801006447549047540470077240237803309245990466925440341115190398705991535494220996027214150871949051810125240517752414614995661236454907517562368547639566930830915768172199191624578890579384918563640128545665795922373816855183768009821026459523910405506994313785030976346080520889388846587238435581808152267890104371134994366390833857641546681397900035891124943416872994957584309431458288263725760422927106031053664460411380529758734087707258928988379248650836880891065945649478533015524805851810464746607049614949672400434807546523102547287765660730696153608839678616539027729579800448807476079053133963475117776073534930814721187887271515488953658539111274529914535261645743590891024699298307750561171614464728489065512044420668917404219190188946696937877638243578500036513727647718373164533118083383641141010341348958328908137447395097815591409200885681909774334701947390341701521019377977399860467625149089927507439811325494405362112569307426649735691545319167894194319384440777652839545960848405567219275683644121355093423451767759798400770611451078290776931593645823053193291622578296612487360002716902875506865065739641907824044160918616397896177101096614428702718181724755900505593665834557386125543759867586408763474988213598648629266136631696223381366569776232800692721256899732580486996594252945260253054617673791616087913392881856639487306072439949453787507992743506584285854006113680235344046592809113696696291332651289372182152309427395956330238270861051356700928092046847781025998518311358521741090370228426475466242280672387408792616356165952277972117288220484540630919826957522908723652946146952394082065528927392766069468705638647351120081718322183539408469080112474131143860883982187804570698527075370892111667414327890257081240643709633899054495249915684013219762402441138813911153988195972745714992748735741613331695983995209206272530063006718012284850293578161730842888458940714116569910869582283452598856196351769211487716383905915537180054538280607734195695516220239446795665349576565701152248696303366934097798272520586115046525660207193860487725208694771101020355953248537716937406777395482458969956512725835710352228235115391575706598787024413607907792349497921094078558585204325428102579904157039210728223149397513552255021351261992330005647071889368439801902964097984911831165614192732874860394801885597906262938140524038770370884401363545550257377473335843396096429965809986502383385110529437676586010818596407958198386580819401060197294734305087137362346609625005511559614824847161374757423693402129270963036293093855677703607244416042531087548007170864563690877855294380882053163195819143222936556961665550900550429311463569958008867697701466524033590367556097398281874532496753853473193920766187889138552259529962088982198663894967479473603659497890822018175759623090359148306322261482963149090919115890061897073479688264823827129828471674899407359835547474699178470525417260977408965785613791402693739104188632936178961680952589743446318959635260831797732535141647412047332906046160710171094660726293027982637994496574512240749179373656311347589384536212424300826572339188012983820075166787006896988432040447893227847783719622284479680093616584682030197165754536283019858253148051614783555823108085059880393287675754718848990787300961886901772407173743890195494855131034538743986235799660431145406581062357584635485151827490650083049259231734005106815566413007956762747759144707817336742984126099402650378265704301926382600553640128093673093786767015713235590167226191480366067421245995318726813872537069418409379687057190831614709064838726153639189704281980996993882768274904980264712700023642087623757680006371597897338116708461953081925664802730793265468741965696216691315344323219697414129013125981670097167646901730839218192929187543274729940672448490880769266923111729582988258349041435159189292536423325845153318482301144154013798556042093462887907753667228740955192156654505657366800892211636173367271290492578285697478343352130825617304612232847725085310249842855720197053443088309053852529848244044951366691914003312688992985919523147133730687971796731771093879737464320067810320468441888178456226094503717623595926340112125095908175450343275145286851023583414690344285738515780108237531640508316606964557745426004273781854582484545940447037420831897877692392785237602569087609621785467161068041903107436921998811958552351029282712901020074715111450825710659400580745456315132565726671287137249503972834787682297732216899802173935164358700512307477278986118136800834142101414150408963918162436804891122124211546209592490825018262700061058289342264824012632039788463604890640389844524863887594898209056234149098889797969858839026830909586335969109014973481622032442545835074901294836234072031178676302237979429857772530697312730512282652953226527642093605024253583331348133175932324772964373073525528584457802191872829273708669435402360643514819453459520401495967082071295836341972094682561264701314690633950329924103045045042594048311625790240685511834395209920308204121673847098659837426715660902949385829910502385925156346018926439973222092848282995027466560437369506349123030794913690130376968106036124849145914397278920938182096197880513144768430058274978386295504273362921305142604525023158068476586132789146521911693274550716827079450784683306191782340315331028011861735695311684933370053033822142340538952489708092272459801600363402922202712888770415187018544969883306398166444493263158531848090670995512587254642707622309164803084577915801019883221349835940526364571178211405278799844066103054383598279891405768618409383168533992441766289111882432147214436441457348082575324551660963772297036864378681163436971863518098093894437510447349411070842931625571351849253594007951083516254158689242220079197592437180199145225897303914518136208242132175952755973799118166985579539210966471694647895828942313894516934308802797809646993780500203465426192783496356418256965270985497939729557607289763094794534191604822748452761388230700052259621032394385061865110946025069354852278595688834626706478088673292740279998356671646466738004233827957597430299675377959461516862548184320956971280600003043621182348291416301254383380640569618357006318728214756161602656701709716842589999558267085725991261357802500439623310817446957695447528590126340848488391920859725322156532252616456775606763507731321587721875123005504851557234055322743549891192785262537470500833100947584985687520494764452143815432253116312247943218610606586310764895940768794718983701251591625725691086787595094172700305415455100808551133323655314222008742363733482695056242334593584643433685597880669003415355217029797049910831403051315354919616361942301955299932520291992594874561076243134596050321766614373212846053718230640078304360858559696394060560210947645947865620301787898982155426822818866948657165251914519908811164428807976041277617375638338621818001521775792544711357565580622690104757787928970852185237816139576380420531624803028522190391238232504058975908651989046382663638558619003165627408050302476899184643182511956724610883889044540770249962618107452372264131822335554045845517507541114059815303069908142664335928110939021040375201454344132523023397159238305327736606460557970590043993096329426502130974005368597282168871619378405240721100776680926020761247320338858747294886947636111443499796068756334560259206066142399921666415613253270607855295486937590713318993374778222687520337974969988305446871123537917637858223238232822637453031451100849516579369392434583265742439943192651918362384197464657600276718554828316597416629962889371969635711103377674414646079735697311086592220024632694691255903888767068164117705953318118934549066406211385569051732021495740562354739124131320858230559593716932229740379814111027079582856451354061985253452831476621775123421819807171187742061554880044427757378318328905587877824651333419830468076654072632802614186419188028491143886427357241239783991660047769570816098447130466089377525017119380251027276595047859675095136910274767153787374556834492842469253200542872455732139981435124454253725252598529465747010062850645643309258803009835144379775035713111584646240186494815469717182718274292104033246466829885638405686989724194846137667169785125534415467691259101360079555208223109637348948391155757648930219034670513233375280928406297580110274310623901696264422755747945892452870692948954129990693528156668283474807727228871309770765969233974573800286970733670107692512100097353594075573236045011944579981920621373042442362588076997752325707772287363232352003343532310085791425941529707706694058004540387448702693067753658527922251091728784362659221746002238332317637703643555832373790014054060330313778602120015246764836184710911863143673848234810721662136778644473147205366611681005921081636389476794552768030581210114007236647779276196249161351092942410646806313829582057740630932906979318460571036728972683611367563186889986937882514119077377400397494234782432710911829643310575572802819826547375352655955260554071723767095461071779779786779757215526362859732408304539437047073413559099173410368777118963993422922069020678171885875911426162053782051232262157584936031037177400099842983668968713419151694283781850691236923174844790026845871771121475034431313159558608824501186407284121063043945824445135387671560752074531091846910824107693405323125519798022142347749805189907674238954550042845981899183731330591762755594388279916589282011798729753581648034528189320833288237059527504106796851860837713819572100209894839510914276582507037578854085953697352352324069477458094424347226202575401624244916340094679532398586392344989162755951242152822031563504640007737108135159544855925987347904988370183246660159098133182538142367831570850480447337556536350844377347013331372409055326280419620416109064453507974082593333663540894911992385815682345900572892853191330860127214497850458539717076386617926243880772683622460280112569533561249970733121773968250405590478627125238197666498639864087458372034987475784849518013637859089930170927955371055469942444947147644689525358495153664345456682993046691894024532217688213853409978197008403607751845327475926371551108866918807272132936492875370764804996641406456260826794518170509809330743634023171418471398272595280895263649961425019710136869301476286568344547418050399869902973072956834640127674419335148005122866019685299661947298439848002444150006616892295296151069606082611230360913334976778635763843260167544842924285459917892616990702885266090242260767828755917374495668585148435070291227080210970602686773142884057796295282250137593495741415876977873999862483684311672086831368848792194858769384000688496103798919073666148175393950592170569892709148984559572423644891932864162798652491149629893423619715126274002482325981695977005316258769718390609227888393128487674465137606348354218040747929145350156659122073575780050828371467206269370025275276174715577669439246924350188280581631056317603407683629742766646225596402836196327670935163717147238247399461115030740671946689463867080846623982046472475656966970215256068563056642575743180642916426274244875341554512671319716075150809563153305583059089719108501376558546275432421852082341876268001815883634157803289260236638217444923097600016504725669034959988530634890869875018601481006525912538335110477976390450385547235155026772744394630333604442554451055098371097065258038256144049825984015747182959765584896318983206871472173792193364841033641825058939678959894245109005393080702611644753903313856508013345721313688519908663548134840752644608145547718456682953907821492096920921956725593491742953463556250867544562286558251836410022353915816045019777667897641583730685225982595560950905483504023092488454765815811217530784012123471624343227913278354504180083656865426186535009060126220803760612145872178983437867966356345643565228107808972707105625248913885239697743166962157154132283145851739373320022105248347774470605520560395645280893324836098306889486514475751578265260144399136091608259098720309526810092828262761723998502993605314046267103810553336268568093306440005345509195297458674733165234160221668680318705495006870129255467894549588840384108101198592721731336013738845325542020382172645775794366201797624553065513572542264589753868946549414480926920318513106478456565938385756082250918650268387543838600581741054014262581564624897100298384683954516313840640858168397942836402389590485196451923969241221406819514961050852418237190115348558648964306150687722453239818970676176602768448326285917271411156711843551303388716644578414988144891585857399594824183447556142248438117455021740657876032204089512698240835925933245265381315382958442133545008354951357634567070662202767303045963955114764089512514415180271531874870298617130253634216458797400678875227284182046525565018491748907904280577633704740063109587321051482210602887829174087150459732332537609900743455189680697215711592894428054969852536551560993735343532169260452340540766800634810251244028603179689432497611132342557575664356800995944450354813841991947586660351130932703809932258737470196848667847947085549372270130816539101895282522529901806036194789350520656708283562880302191800002715814816248853283642040544303804808761879769545264744248215787403043623320798174164686155403689299157849372180947886013978653919329746641114741038948136925230780916165777147711612121926559262847459536426814580490394871198097254322759541647132883143682851123232203049534469090162474044208962573728937930814506803771410352079782095599748899999234764924157536443840784140384500565833914417483183244674675208994353810341190365661619842695903559943294449519120978129368363552091579197246533303675104911655058038913697816264570469258024947319370997921603029344738816676295688538549608138363696398531815737493733175455450314062510612720781405317070865647971960295103364678308331278499393199622490037712725911235772627304251856000952262204422751349643388698737131647974102308163537078804619643980446347662923406231440967453638116995142374832615644050627973125351885331267222109811235985953327462922772323376301788588301967251561446155652664332881352430027683584557087659279447655147508132982689999708773406163730802368332104355807602864263489350213288795332052954212356263405584033326550950092423050887982337561085833746484162166065398339741474481822405103883552856907623127060475879550637652868372072384368269732705944193993995047672373075000800016721393958375363989029222563853859927300676515050094830973533247226866778166465414029501511745839731871094358043259919816971270134337233066612394598058049780729329657600991327517923296749109991932411390358403483521670113724128926836619125289886843151193370858592834506853136264088012192370140745003715833170674992248003375431940652136413624170354168878877533232778003789772748692339496553449602597535298069898719550754759288645030535863273003272543345860514539010356693996534455864476403986895694061675459125039679472258884355110468360394904428437278590010232813418954502505919890254753546258358299712605551220007673513260671154544505574318304032281288138374064680438096452360627572160447542858312511505746323131666677804400334190437908499243866558783488866050128903429689566021435578106525399207640628126685996917107203506246712693566394802397288112608629493912543867261890192083903920293507536201442361547022965014129311665700507941907653763130815904034806625712182851126209148382921235518630618287108063266573646959024531236798203436532321546459040772628136926719043929044581800322867545587585574609343605206090964397534826361783208068561392172541741803066881399340712065981749548517469301792606075651174019885181890935830972946926242227657763452372800803430221930599695478316244367400417765427720643936099433661456926798889187504673495188319679898849980814706986283482871781356230279469102678085798662909750847683615369843939701218728395472042799022242312874587728156408489549361548558241079199146750555599628125768913552845449138546167936341845200516868877811878880068131226916928683700157300468927218385296272631522446033664782579780199839054612050222029909833585423569500076153037817331322397001350499492769083450165560145467747997933384567458305168346636390262332972374833736342252163238096876414943339500917320314493054573927804285389097797308789556043857936201672475090068745355772116401539326292020210300218430940771930770619851751379573876186488820297522132305909489508223244830821333491112324451870632885276468800648903049227666426876997713175943862702790173748515763966651799199436629349793917031570861992290056882003317466281432895919769487672643577124336337805734076998132828802399282036630969619951066266211164628938168155413291815285727098689972707398799816488380125149042276246177818149701303311784712797259367127732830445494076250120447879458282054698571606822579097285174622512576977896184081615948580269420569336608915223809242062847129488100943213903591325165160889014163355086667147400460661947776253748853487254299819985470353890018698688187880806905466412033510182358992280883320503624552071160370216263016311078371829604915736671316805783837674896272959968441408926263817760953139890569565996811897650671816373934397382065547550366442519963028258864562359724458602147429145469056927213397744299821682204673903415179054076555284492685885340890379298590404907110197402851033538148272589683608385936604068288376532759660129936576817571183526636827750613410785821166552032534182512747379511161053387704900506514968320092543544949644044890347023444105701861233490261431575027491590495604098900031647583826993969026867474090143189751205659498935044817581195432478421246975833044625611960639779252245768729222886835887137335113856031556834177918697982040009827428825381043845008485503299052370198098777416959289053209808951980306528615930575730024622368597092692811882432244197024876797866247985461933019628063514893038609070211297568659014176373807525684009963763893775604522653767378034950947540921096983174503135238763668295551324795455376976726875412020503630078390382970861128613738267425195904952472272619951668572808597873224484932666395804941945703440839832339919414455401703851032666207336200668065668771545074520703735725102786407596268670358785497988340368783936198807136880185342406662788947860260443729827618815399618447313052591300658200076063294627046194853951364424992741067223503921255168787480637793427026245367564344026148378550631342797327837596213638746247958748880599655829734042143714529601253948497394681634674595604113110551996018697169635026262367543299939525600969763145564516198838662435189065775905691272375307107685440113945198906133481766720214402683906702946260963194489778305211118896864972263557507302189564636929278136699927219865386348205818006972364008661202897935784597301218391244749501897230457673741380664917921731307772622642463217099974107219936847071507662704011237883337190754887464846307890966623581595048712382414473018537445338837781612261400448236314129110131059216693229307712509837965461953801443375551289987591527756777017241725979127269393906564871606279581242881014428407225860216685359758120070167039075390114999689673387038330333291450098894591299941656081676786113627414976623333258079261952707024316760311786024386914570315032159122171654281368593773217165941434834809896426366116150718891055299680698104968745721119880812108441958483940803476909896181137389955335461064966297043598012668329452332061814757854036793447857536997087848818411899745586735619044060470242139522425426460168547628113007585641972807378705929416115821254713075089502603260664994755964820700635870342697990298287964275940812055372511687308287062466785810723525212943827061016890994548925822191481648479882738410132963760291761509227152764560422391240169719968929022180528327522960481321751974738689170072088662558783141930054394607457908107714660355773927613481801558744743174431289291915284674609660036761516053391100575202552374128096267370270831458287534292739545772470202577460967665696223032526476310792586033918458808190318891069575630640724337733250678407526741370441734964471855187497194843221327066550815883214828160859355271762995051585506891324992235531393847805972482346786606698776121158770027642299608481886519829944072089124230688687222895781620455671791044099857358632140651545241863369595758462740282235183940035462848940931400009477873401349405456620903558611538942806575905183653305457760207676146592548090025817711890339481562630195636804712527560128185912343016470585148265579806526157567930094312460355399099715404743511638243062827478607585996485437174110473088390674545610610054580684692022318597047601246087345680968264775053352516973505800851683895037493649794245332909623798767926495870007979189903440533321782204160728770053577654778128048265833404268359072111117195282935652555428041106921792353567202878023794314439910564400145586226798561679013788105516388211646187297829357683144258195909276266519719648701969880199273531207073551674865033227480190837188439786557516105165238397204457643202222082762396688705816299472163464812503039896149280201934153203028158648733825456129602869217703385511744305480699589492815284731991616437694802190507372381613656382023933767820068623278166947797620257248650737784395472331660497455800454770107350376385423447568515200075759139914368827482157216419320292038152087537324904656947986991592582256214675115706920548719874256805259389687656706934462239738676222754371544480621554142499967375533953606316412119942204971759816941904829033455619044062503386268957785465622951921017205257534918907837134366266057205394489589600621376577134534799501130752149187187907939929929255618446188736409956228947920936054367689002506487002947796892871355641324152385858364550948644833858341041792517600942859048332195816133967453564550169126284089001633329857680277959123866010440200496489301968256446635779404395974765245073673645055118758808674043089243181569342623767529788282981789814050207317014798279398888610535287463807878570021005384009450618821372726937897664290121918992875274721304112146410150841052112070981090595825068798916416251939860742605497023064374991999475304708773527082740592224847357650636389997059594604213753238114545557950014298351097313595104067809545424195493190528003424346488643799357518251550551063457664464796023385851392605763358958384425963280019047951496542895942796992833586772903775954216949398245095455510853827766297140685145038948098788605031317260599911919530138164890487037564124392803772347101399956295436530278769926293509074320066589205377082040108539351869937951517352711914556477287053639186072785963220470965964040163762216938972888354962680145980499251073826536269839909628129364428196682850898153595504744153419220030771581628982787874610701613991295999671231607864085510068913044013401295753139800798138258475146543560495608997294231283687401396407836123638309328656786799596849995984827493202655883075519719722914238799054856558800210911682323435596640460491671601528905454708934115099003529549838086561752226646903816473016457990123440971004674531113570124063554915402847042569462348513076701541739769159722547963418775150634345124371586349389189883787219733087671233398465821086230528565481268215686857931275680579019931619866909553382956027146511233268879890995122536776837302768624789352515163041122739162383825448506825650114950648962219338991420013620117353517844238560718388174511566084760852101925398148319690222653155670690379340568209741045949579013483814133464613830021544685802237652692322387708723536355072057326853128989071648061472292594793163710605260314197955906032830500818524724540631389251299697847772462660306500613938232319820395735649541824981698855800560448447252963957675924561498090659401618203908076572702197320878495158609568860579040525697190471474336859248807662654548534813623780583751844123801953805318034567464323617835082751280326455653299834210666654313253335492198530691314116562088312850266037121218736489228808136754339909526740177255590117787932556160717526653792625800515111494876272214394487307660661956184497202037834431427206271318804791124235358974118561863636562447497097671608036364153931498799264477613993420586469642445286750215503023419028696363657099449339812723203471923444326754104193147304245424154662884223749799928421616660119175185075118183413734690719035324065549934031025275325389448520626360174936912854502567845979411939441934244337944532628663475530392911064530157234218176082763771870304755911965054989296939176169988025304138654837903221825079763054752331479480699421250006618349197981998621456006431669803814989715676509214812749347117638582235313400295229971560969038986051381715661197141724833421007198455803084242847794257317229763008878106462791120996984094327115155687179927117029300451436606587760176018721162253580719505599825262127960678655429823920743132177846061411481292226728964720028974611653624515853534276163681584689509901776900666720181553191015460562763508101883157241800131269740408812528238403697562519618545329060659232694950871946291286882913018827336934917349673597599251749461950020627698414908810452775802344284026547340153752386602805750222333105980885355710171868778282930090822044898406626800038671436100990419278943939914443754366996218300737395930832619749598088248094893193672497454267895928522618733514568909141616819103880656423471452505602245626953198026019951726949648467124513863071894438503106162011003120540457076120106486383324144208144421592941000123833827078641984901290952576958446257926108433090476568864321103047895459565249499149611979349534321453166083775772080118712859879601778685276532062337934772462323733219246590436238945167794514271157453811267994939730268644011104206771256405608673274969697441756191747206707581489384864694771720661223038939439662880346944130355881721036246953610152686956242905421641562781831974885222132140201384950845458811311781027357212560312642835242172904270008033219926296757931380889939247922406574503507816350677584586562724733600497696747336786833481300159204887702312443854211086800172078618891954082938102633842526381394135842748162248238362978813449695174376711773547043152434936988551658781860144552797959223919045456566813933777849152100346130011076202744302781016655531713045021334375049461448694498271025413905481808463791166605586249358367339898745358266514869765618867790691198146113943163880656193368961461369767169142635559198048227753624931606530469465916337295747686795995976932048073547836174510634502512071443804716871788958281362167676700270970192988215432592215892361132359266672405158634657007992114051444352248638569401634004921276793936020263952938789067860132747075026287556412260117896022370400604106511369226811205077752801337656751241060229528060096657129870764934309599431933834732235400543888869801987489717262310681742111420690184913017287497864487536713053628334733853564176642582405352918267602499133835389176567508996030184693364551405419096801710071597734912281419180239538111771678854762557669963745164434379647598881591669241344340736816146974306206450161047906342384819409208776988921764892317597235311473880713801380999225049142505441712866277669764735167685952516376160778102647523189748199172757034738680337331470302496577313540197587230575930341527515151717088157686851619613901084283390419612796197646305658526069015018237107545877006924740033726606393686777342348911143184944882198185571064623136372785596386080620563192091138179829770496065854415290097275750208631804859489049486345768285566888780973634950253909107999564808653542989887683380019174402767463338459858577317041129690477247750118996872312343068871427752663841999503105628155045281333649570980733303437545338395991459538507221651360302677297714598632343723286572713401354915190731694232875692605222722936538201605015555728215409307424356315763450570708056439653125241088164888219127805101929615066714015053626364388125209484722448474191396899743806946845410619199809938294225435055969884143162173633279054803990820675679811433665255997992470396970406074187798601566480026283308949581652071761960656131166845427884573800671089124857003141719220734323363211842676678129928726985435374399301683579376456469058584356494073468601073536452875512210681106262227307430372630124664568408464732185565665505924023164646980266229288980868867453383089384234903459610697841063981304104312205014301470558864861074191365989704597568217584686279917277982494519676959075065342393438926444779131812821582879767572896059354553471741934923154063696872440948247335794559968964464003514641391932879233205786284387279566009751222475983508461109198830064073660963757945084387966616726016522795078831986405978357638267019190507648959558632981075626552978791022590612070769951839543578820181288906310276164359727839354595170017325982631462142603331630553583865678094383364756335193561105703267291653100712815643072683913456576535281414685415701885220404739194929546335664578493660033728503213203706317774755568072112155066881492696354916397588631312479958090977284967328146056356458200753294568765641296636918015676866301725543953376867991817819074257421739939716158346753650469013720409892385330567889411663146176074382285425907630709923662669782872678369554901706523223039499529889710206659535125022095442304367405230238776268995776345599791355575754659315303114706783523144837881553592761346662759061076874099319379473907548755289397809920061600723412355700577577936066922339381121114778893134339142033475712917999896403414721162330301411850740087364376959783150574914584836403090644726272252770322555307056950817715918798568702124186352518522758617371664427429586836968012614288152909611360686807675842151140170192568498823766449750584855891149289081756554968533914793577741067639328545124849338240271776090030239862492686819020509426524759130240259851378636015800768237313589472225324462436740706842612099570875263176369349307979844639497447635915888870300236595072038960427722667639304891877810880900928703103650392481778707625909428811963261670088619724281800658871419722563878592339420646819185530168490301625029613643346474689080707499255002073920406169374085166396326331201177045631628749138429006635723565200904488960793378840201938852056739211381403987382715260147065738584703234925759526906537602332565822439225823741620509701219031945105981778933010236029550098974748145661946021067331417055927395426360841166243452689199602551089037964768565567745635521488055778394340053453919457428389268767599348708827043625719508582578139200379469523979417122300707288850867644373685236412070541509384902456644156620278633716760439123338622233757723464041197436660701352897029374733433082341657960245762298790632384873980486161390541076598039322864136043049362005890404047724104409000789978971147890422119862180154876689455688261854911988182088584330979402819035750063802220693454392196605382025145663610493382523732867436199380819396760535330589300179045339072144829739602849199951614973057810295263655983221643799854603245942896173967657770975804160532740373008655207541500097415340299431302790513304535046439404886601017288153407327621834620253400253513769565261117467352157079981559160019249895694362302485963902816647699281851034676562134914805171175033961383823738903163434816865125358590868975818606257237051577332668968987139885981880452053243068255946372745412972170458873371095562855328460033128888178738872000145013526921744191401032088896270295824818931257258347339275386115364104393479711406993414667648928210974448412329420125033238503042191782550399201528694339359536334505007942068010825809796741439458088433189638956526478047050968009062348321399244448097455453475125095583659466701009748923398208123422418917827725489658172373395277917404073891955459586265294586020970481405681049721577226408626619153378885400492200768378747270372446539257630317551543239123884633458034880492827645490221860846899601588764123322025521946474608560647780416791097024368797864865733616458050268487811281169104356988086768964785676565809133026104489006988167694258323211827532760626627918811423989549596444658787866745394602639001230978294197728245195938558926690648532716453509812558576484572238634998011465839534961981792653223589251436940172969687729271635352576530099626824565253492924594062679216623026336767984431856515464208568924396946912903906378153276496960098625566825218530921774231820622202083108232546055197740626814814438025450704690497945404212888330372657321575900099766004546102734724474001133152120055749507607505628609175374674350176477609565409805436968823224652215367799331274100567570487208682149833099019459660424151866843011651306667573094032779276964463974654712248496278652248944646801876143628340403678015187899076369862663302613699895059707276268016753351918356689873790848865846286157434772293012891011985448723983149307904429693275084675479586601964291203213671462207315486363309766667455608162394649338630676558846928829298178789127718939218596153260603449965261230024328807780087316993960986781253290728338666992411613384215516568173113638358998633209913755819391108291931145711941896517932653959727791303099370553606658033503136145007771291350369231610857358275517389613304382823529467738932949537449870614622995905545221129642193903462585086599549300199539022426513661945874468017605952008781677499546106913556770586562913522199508034658392441965391739895070923685608148105537479588942330104539669920147775775684694627480280090243231569235674063929633128221230940717142645921093964743576939966741240282862579993744919618556112165193563552520881561453812528454559084585234846948998372755226134951603137936412335111691981324603714459859203220880574130489876105596942479076214428422845817582965168853695478564266222763288302334976593062191428406590052811229562149185722418871440106975942044021175764834484719375319656954763652687589383234740052594505681282243096989651875730769997790840139308676450572200324518640210436120724103094554432802441016019171172199063651748205573903672976782429344698613381889763204410794301143925030640462781135756042413519743270432219206254771793384363646179995608188741112076122523640194179415009088441215312522134855875207485441511077765664132084158856227427030392337020063025887232644457221263936620724047860801996355891908140227141271267481772016031751103510004758290485600530359228171667367823025276683615700738997032638196976495706517487707671944072392652403890133277426085705832652498816126203262658941020215640376573238524096571447762193043447575603514275364490489301859058203449670523908808272773448409343940589816266791843682300672396289625723567412608754782733990410488958218002371323839585544151319078774605767044540135941972259605847298533904709106322865379372399216245939263104906496253475313076117959736486346523494164266856030521265348294606710669729915848541471451135586727243172978832297062654085456180001584013909865410300916147139476780015588992879232526684077143871713856078740735828424294920037329310507024905910919088637020230704167682522405410903777845279518968215183852418795369658972725392693210157563538462039256214529282540422101500723906821723657583643071271419277321250478118005192740665568356789722150335363334361064287469777859265070778021276817409125301675772750284952136761681137322713771092355641180102416729003028480829172998691783769045644578460990183549477715203781993586065774502071376150790880916377742313006056071760286257117947417261768951389192739931532038464586235672497999458035949006257631010168391046728907604622159969548764702003398473482328299817870412537936276793214465832523043900822041384518275649219598512816335184472377558934995130832799915903324487392139085115906640190318790862990703114001075930221065699163923672960563892582430513802811004104632015106622339016393871554095933810658478299408794456113704806680355892792564259755307899302192501863385778442544713689627278414456050494031084509136533764415812692246927543910380279554916739997873818969966100952327973770014762350644039582286262580532264171332216473763262070991908595876475722272194648909278424515248807334773121212469904963209537116257690460580499607633344531105121456532209977024567439215837752982197546028505825815979494089520473098501530229595390905144122945930255815084150790875336518068686183047655770679007927629218397875969934153392296062519905200219726807366795055259859400365002466647017663374499873510868679681669010732811305714728759577844273501699243115505500386356798736351336338551771145134427458596284044610171145224839481068087970734160476721435800006699838195208722955135249104974138842341493502312634647929915733911864728032970831124702776321052357844901285371828004402858514529143845527568502359657436220055312235163266384025848259511724979455334068449163594194390093882053007143712893948478052323139728456647332710315667975945016882608165561516595458939905102634265879409504392630082212103080466765257616712047212767798789133016267381085645842671189041840617461959176692105116923474275451259547871479461624181516873005008814090296215954987356852994774329944843790618494211846470106253945860107256618685548069116034729615488597927063293476897875080375848556017650113026431585106751907978352739205065370331229879782380355656056005097523658206207749173386744342994990794042088590662329236835227725947985822769751828197522293964210534634992787863562033156380747696899770273752367327881276962754343545987715385097699188321141521571245009937714462277598892187147448847635751163929775546601812822341763595951317551846679131670710344844164519032943823908146435038892795067381049236215064235332601188762166525309944985347255416284872258641949100525481443653305925499019806731169367387355447274588355308151031020055393373657346941789057659062526934734328106418249451390175962359715918990109953160764034827399376150409320793359714186450568563572011537811139617791080788342420806605341728920349863786740507657255050344847737806287756638668157038699753210801143876102080280375747988756672382154464352162074963558850317902445119289083289749789211199683402905089395224304485958487903668430998213816301110738876115444854285015818919831684051896777986444480781788426607019997511458854874419147855582037834116491033081741331284144616037448164106627265870457874433432901954923130481152780709974228025703732660450487434827092039975066761096145790718323148432373148268875840747313894834265155166465270794704127382952010350041287421390706922783824241531137847159747573599511374737118469983143361834466657024806786728727858144659875460648482600443221008489738935896293233639793332370062630915315527098172717978014644508434575357938570953632021117518055714082474593183410546663161515412661571771511736629413448227667548849277109438362824537446670001173547519061845577348802153575892778605666349508989164044389495925737838924862789640348583915991284475712504751019345656024930511252955181923808815761773965728732810424959360752761065806015710430967488371345191294595728341049411213843193969167857974414771760245174091490699103900609267537590832462758409131462593237505245114458890847929274169710675134145602830286123065559471490660554231083903870302124210173308295099874330675572599575068187483189094627301135512460976085030098845448094916352985390539456782047879597231993162902665546191261689145691578300372401048718406672769230793869373046940323454615817680778838043427997255177066774200494138358353895396849680832700116843477310744390256455317483036851483248510417859254349588788241152850144228998355713597718804265606210171487568489583105812499288992962111036935887877905539756023731033565188043324766368034517238926417966740002639521287565811432256914174804698243041460894383102994204564275770980992104324973269520409906399794463004512023892322571678851836465379435512799661929083767865633771601723588637315391162756729124310686235414205877567232070910650790155027055672737353998244998681051275044669859616542009362176071028782333217085849992284749711468780275205549356780174668645799445159060634490650197794230225263975755226976298573454324015713670401806951029109526921351774291151201075402939427806540487119673487072003171297633187207459914378033944263499349710957247115142171880064482739028758752189104922300350176169485190771709157416321854158222244429177097493029140497154857812003096530903243719884516435443733983249097244829485365833625753715732237764559460813166879251252741884345564424346150775624638884415559993156903960362494006101366360142232073292911192150840944494795977997792940555004980302698262681947420436083409203508244317873224883808175154983027218424932742146583485897710813623200824496674205161195411102920775805497736194809415146386316027109665591522545379927736740316160762444691164342879097127746503127591259785954563066016608775445142101011823506239603651247131082755799197133409433363178016427703506243460260273697562386260796506352684429400490274820027586070836922473140621115957789185684268823923737292928965838310427087220641559950268418293864860742042553471140782238408284437500899734102560442551747003664259793032521881657102584419226390581408181973761388191529005562989568648518562577999018601528696211424112079974711984402472405738914674164929130524173759639873797772036765213381141679062563582976236902044527385514515891187785897009501325932583236839391062795287409400231152985505771437327482332604455803143037877759957855871479341518850489341935578996113837142944798801404519573260240017651248184903791338712289100852310953678891211445281441779854971042312252631192146722732996589500944370895446269405197433685894844522343058090785619500372907149214172895255186218166414777403189923989371436831316492500040553176167383499989703982554022402155181193643816027714116624512564053654542916234680091621031979948092912879237469449932733313396266166427339290850784579493046024349991085586475241651556326009888869790299011047377194881797796520494243417669078076878442857428830975736724469406477286256653205241570007109789245176864611434931021981853623603105049847275493730779736817117577505821365351409080771489611111226476369423465713964623532636199056316087099153663925286634234883104054955943598810665083693830151839244043742740566681893822375800621376188441110166314869233640527224147497807938663433489158453258507552709128447216972644151032812080460752104921672044018653785066577657168940892213242448756274582562323966868247734328217780323034256608961216132698289216346356927208099724861813156371424025719106180050478380711997924495386454279325113395802360335650899143194676114675676153040127640436450087274762475028547649296532748213608726532828710964390696682535760333413407513094986025795468009759034544832543698471801461920779839743528008730267004129836279061262496798296103395425955003275117317352009018459581347501156602032285614123160143978375352961031459118883360482413875071955855483558215429011653401980446650926532331359345528372095730157914122641511872898878357562996501808768280886262284739018123409346164564149027368263701408314430236433591690421282420768514402352805025812756556122837857556618864096930047548111244023414029285750785746667904635276801784511340823515046501933328478047351302631837486537819889708368237554041965377374006272299955180908352888726807207723051003973254537493802848040204368218760007781686298293077977560383125400457403411955910536470319938502523527896131375951337138626955291069033306115768350003005123554604023586670456900650625648383091709722879520369437685468316277146637230987180575894450500355867461754539864770747694324487208467050755157336431231691396613109953796351384677778739671129930085896777309858967729773317202237149327688368332944585239963182664275891604763631790117335789792780251778814985532986074113546672932146106041589602687811100966951487532845372835666259652508335369534133607532364034241584574540641334555572706620066382990400869304937678686886581122652552296108806587203622610258076645892984769298822014031947869123324445432336265562335872142360692733991722826171203050630796293618140131782638117159688937470002930795019912111423423154335933433992911725168622755430638660151229356067430202837199042275674874577101471641803094002493699349640353046828163289862770246680393745934209684753404739524617857864562721765198080995664989010205782592574073683500667716958293352437679254257309698330505530850285182918945690192915249913022267764135111962372817580765354917505525269078683265875803084965955454235645605581495454410076069798297616575666576228833238706928827900704739241227479345506377009779996745560160022567127445350466073450859268767245713382675473984294192496024231013108845475822163320419424300043875950110370262943916095412779497599511672470811332714947743383718137161303248462812639957507922638969520986916618508339915188949258006474632407282843159005401805474439794213245861299055385947022724081041428848506568812413792492280809488512115823836445494142192380573496043848890285991460436575840458103314384655289596588899553708996214136906589879401606445523790135477594198997199765299463008362347434948992728613670094608030603865011721882803696320572931424926418495402915331151033545328034633688703219675657501140609272041137508159908852314902193386041537330279684218226613058305332687940526660337081325995278455067642586807913346518145425836281968092741702808029400170840958515798498048058102832029797581354984171376510810922680242502916422967477584533491233594132195595202436428327421089725523316097249314387768709284718426317111466359716611281794836610499677696525633172053679860010702202975475658850786114960381136146124328092393037229691045432187139983612248006391712101112644491407972605342020629127923640715008531452654818869577353568904364667565339449829049092982686966091845929992231619743530810760949146467298858177770466012409841094057585426294851783412169024072786747313479833466949907341387826622816847775057304920082844654583763012884435278595698590370417032505129101058511341792596721910664369157207267492646289101707042080832208516316515454900623307573904969280589010503810557344884261557841652075439063206576099577914604568194920384688998252766715295901315834219781292585494330564145300606761599137085113415005249234986577141778367245523192355308466454400267124392782499786174601538851416171703358773138677146486789507067367287876447589225247651596888231184647099819164907739754941948382610479681242485429557228750064835831675350990992297809389552702474326367617810172970453552058281438349893446703662774918671274855103013612549589739171380124074860973266327876655312471149568306319649675588095612669819298886297546658982306470917468778095786261795036109646774430398709989932845896236522656333473439302145924807805540609003339650885635620965511181302485195946067858021228209173188588625152084743659253990830188640500466976289739483100636628576112925716246431468578712891763433548920365104737742490821007683141863894789081057447070714644829215534929615248643754256217545862976483907803929782918166275872066849806497921159879229654334699697231850334159315742623319648920065595110232830967975374694933281043936881072919550263258728714709588295452099110193954721618496237048308261824364475887564027004989173811050602588844464716918008432419755385951472624323782660342486180337666672268433915493193814015332417300286315280419217962660555445642200190014732139300612792213343340038630102527783138656473108018663243500883050172536270743391459713935215322121817638116460673126355158836582308132397848822473098978285655043071663905037019548310902162078886454054224701663274491770023285101768259663886988066397698645856810639654048059583972259303110278963636382769767933721155035941584931455654579231074136127516479496100415583729322619914149028052300922763434530813175793339354493340371111215522064475236423148288087000563690793309062882479927772090771627047675743882626619236069543544295219586583429647346850726470630524142746617860576430172430159129899498337420371258110728225729087404365438927201750760277265219505042867498867465222612973626319650618579510352904219067650108156548833464921680143792560142134865939504381003072095882293161259935856293556694258800838808386857010090571671564846399374589644397149979198113725814412043959590922350197231226602456036074549046152095994661569639687335619974478644351804345895679488996802397616348663906093431029468958603125555182540184499320579606397078374313102526385324498786247966407590147937758861373968458019658719107320999388016117292175467779291730299067097827460392345069191168923996594470799759369828526868564483470378177546268712432757857076564266616792897854316451534453805709225246389670702107574506819177723086816363080256302575609815078655347713664402898690446988099779960230977951936516178629915221188638977258168960695804887709255114752520002592702243301945123427604278019343554445989562025382652389643103711259436941989975849348775244252094060469468587214422861618501932070308441487776420755279150839655300711049766763094126155464117332969758531110082021440620816773390874175519009820858091922027113535720333084301077354066925904006841945805677742811063738692428800860727593340830753935725058570400495358353611465832048823140119128099922995239871531279160769656518749678724869124206164112555288844798252255936588209005491939562690237879653906997900168975553629968881073583625304015360039079019751633424789038828636629839455567333975664927649434813917855908538792576395397794674805930686861358438444734190448354131335921802449511254892279528853174523656935822991988590454791827047317544168212347834024553212494834547245277654085520575664535094594537244250886441286958318932481430996171169072522039750236288246880278146979033798820202416842903809361989798665711051434379969932660675599462418073419787895425042688847070219621334388530047151935164014956372227938273930229153738230307039845744414660934163045425154871917286382924179592134677797261695027062309674618397951304213646183354661879211160086770835747549709351263233754952843159578660658430486116108409921933271494134342792645944138723893365231832734704343997775705050329868602120210759193647949767886113397770961993130099407064899339889513422495641852925154968384810262618181072214211968325493455994909284150572220470066314527755172427682991139972211132008304840448523716459046153048345377571795502054140190705766545962022640525977560237351750203525853026040585887718435271625578339461580720706734780354104655030585450631918151561869152590228100887591301766454843577607747750309778108284001416819963758420791948957074806817005418817450757141698847732016901131357942732225495011434539096035429649434784059865582924102418388621709663305824209624863354798420572658131628314957380768859206909396733699220916616835283316667444377826569290644103145209622197418190776109260702060637443821016847495192577324223171765558448180267368830797831483896772966496751441653530184388038647008577714063493676695899738389208762685600449959752307215784371204942780609793048016291250682217118646617944766498484337496893210637228712239385449123566128756423766820437188976670288427402563242369045489812830505807305854229317411492604642495511622300337811290802213749866836843181713920889596345691756797668799355552573634043613170232901186493230599175517245066335668995877259012885469307773549538418634941646378355815478327647238905092831111719585664139092231023223271952672129511292858639737593305023471083337299766125980581907219560070359890981533925332503168667723753127819082346435858376722182164016092591168384286381909692750856988323936522659908176867057404084591559765944628017236713835770070127908596335219551465807855976536079885048438532645516684598006827251903717272426605220911864245453724052995828866191030143082363556744882703447135831207730524840721558115697698614939910511892384667274622328026691313139150637229045437325201301289630539774638188689184532166963235434462670716617112638484299734344488844631663768437553632660220965627640407719309618300877202320891270193556400994397346202782529993672834745425682388072035397693994997069090286102671066317875093162122625486354978795667587212637321299863059264647902503015443419479523083832122654543584734133832997594232132464469844092487816738920316303803793203217169648783923730999454928886233622172027411299289532472898171198413454966955281957956671588429526912135268049287789276830242758833041266615975782902032632445754490606210063057010177926627636732848977092826416107418458298533360363772144401410337923940872692752207224703149786459980456337948106948150888368450281678968924746061512659783020114364692004083894061633132677928661449523104008713000397091261442359394631216124739937132018270170469352957296260574554865494355114511498072532041037014240629884317603775268416020188746530653145362298951206711944009559741311177838148155946044492505415738570754987184033131090251029200933480976590257200742497863320195521957451219176472927928773818177043423627465456473821359831133259642323878663353266105035517689374631336371980100245864520074444131136789333532584300711700996143354378024475979252999999250091770875297060617598686038778081994628611484702918759242982434793403201609095898861489481050765779241834841829359690200898235459978785183319183309509979717905724415306887076522102395257984093644728016675184730380126252182215420966051152881798364085153789070552151129847280098989328034671568144076593656426159911423767550917864671254519043888572710594863426408934488425268584415486694223088782302163636106582738455408236586306784200745833512221699500027211800723367703203305769155514906390485871712065851487821317258581576410856260211903679886102488842197960316287455205537520701107265179522122478533811129095347645839806083579226738400023825758330990987564744949244140777812409537200453876558394338795799047204216836218402283736809790108139022866798009972958781240944738424344882092864329851804738798767022573221190787868252944158026530490019229095197724575086515205137278476366052801498290280259184451380794487722064408183409073569981650635283826965562583993495159434467875082810294580102022911148893616745083344530269448075143162501177566710508575696055394233454587410934215605630661040878219264361723384105940658210116073402926519101755540251299755547579816938584657009896376567166778470178396337478940609039663584801882067023107546699788590295633744143593254737451018648114353943498385886527148302390187697206319573520793349139832730917286451623303702735406664276591776901137660820201800658940757398218629895450361665827253554542314643187828651468852296963622058118562270902974993817047827030432121403428310617100750655623370788832300408972586467428251696154914826306982658587490086749669385808725203525367445926109946740524896803926776969015897567152421837710131577375404305998782004859058735157956951703241091285106885696095065415044273097308144880674933168164675776688061191869226740052048384228985339040222984960916191619127472815398826584642270600751110278314976163618670044210587112862779475171399151609394374970946697572713628626391777922679871074792854171966879907842903253944260618876319079195469607726341015419699859339881703185130028125211782781392107228179611786604276321569586455843202928982303026110845289152116247334344932811135581659103910096717863345889517727469288521439369118569599736871302167370881751280641379593323271923427792450860009895794325010016930439617773357228140090421361038704241286238025031943723930293624810863129790114372473598230892069943602021006899523687619196908458997579958399476104089216332421053010561366038020534969311668199873852510700435367899902696953386290417811504444725581131836629372708345733563241124645588173371503715299309091393918275080400872185036644980863638925335616789508593640273900993694617298576300399615884764757806204489104843578922132846511798695457336909442422140368859231301959360682353076120177769105743194585734755222730530811584415220646509749327697584963365888494028485600416654312595609129879363149660266312665239558855365416369175333773209399922381557194213980690155955671176240428718334326971516229485971413575021758901910015201866738725757082991901320764332306779539385998207139019736222618500809747868238469720959091227086728665229679240440628463914645417583052545475657974753678642621178641462950536833927836709918849918787587884832249669858162614451288718713212591238135592854142402336315726248393430753621299406521756176980732680671475975178571303867842857221587814956023585268852232264133928359667082095053701263281423356934501521035606511594430767028955956131833651002578383610764015311237711871747645138242938971718704733837419986657766819443998339334935720722006646752889909096987937288068358854378089775236496124015233095580304697602388119925525669106503630958900726334264287547562247929360630227253205940566053308266484606762957435031142890994529109294644095760018055622858562626095665427964148918652154555759075896737470165007076637532546575310215588595440891045823510340185554366575481973634734243495903370088507624932140683155427827509126822316469633203766000215112966153850255209663855391470957015928399145750388810310507024334887289982012976085630404233954789413301115450201675348526053612965956983770442068516842995517460892626167747379311083380456632196140372695994982926820393682572678789096102710718941969741451934548021172885015425884025332350304976081562698153685844413975853063585607699209918971781575206620129704936283906088912958870870033704101915580626885033257522415523588877482816957435374808552755594077880637253067875253650258701620389073362502932223405642026215598332639060447284430559720813596513662504505075353027133753175819242649397887698190985901480260159851609691805598367316373700793775506102308535015345151721347207182164890598820671588341446147378153452447224367324283596466896089252772152312052108266682641089809184286606455177002710972512526345441730855782874770790005562325935956920599892342427917573477135562583300834159157514391059601509051761602969406930770305790395094986142122692282631934557647342515881389378552603659782447341341420099912602729363042731277549937850147990108965643648859664785135584927482673183942825480754579317713763956112890362413476695054226629006075376013598882865594500749114066228989880029808843940610119521404406832863362536078308519666187788607999666418226239282872697538296190086900166809706415112948580015754272447355239375067766371968858981808816198759239925500718441289926947590576567749579212742404754879865691431339651980130527583635243916637949368022883430169374689991292802054588274092147745299047703170532470938412547447957358638307597511099173601784836617257376867105723599340240218093557455452310845749911772207441598346878046937781270362186485803984917830131313737703112494461084854448655511920265605129381342425489317454666706972113536618331796475343311588006685539476714703486597972114648539744072867650587596399215459621642051827801342657342585358495863952026698005878922757811304988103686213443069006995157592085935828290903279688240182245594045202030337144615440009096428975701313115460026192629015162212110941754256697385388160739877133232188268309595928386967669564465125766370079629806821831198537188481025381995364594507346547664771671017326502776914666774900219620070718920475683086885966776975263853628020700901605430835381858309946846781348530158160379315876184473309313582917689589028951641943954870410299233574358914370802065962114845368466486142576995976875521393878768379186337458662652854684014099772687643031345704853720586954906221999283239109736675628686599907737609002755398195986081845066358105864990985171573138518477109768595195345772150244703540716225518920563161905855787237358150664726845970319947137638245864084866136921926015021054681526485100837093858058061638256576659653098729480361667558807203502400264065310294444486956121977261262810241725298896646765291673768398935664106012207323866338503840282983268983486563855699869428699695157944746672250442786093479331841069740193960244505357900192326490156490393959953432687089367045873356731356886044511737827590609778260673555645828200972873763305789226203690326121416401537729563121144443495805484381548988931309294611001885650011889232827477568110592930654035553394097784419709510701645954178277047576008953639382531827967516252063403837290075518949812239668741023552002683826448241509767727656571078096610189456677325675472203497972108849675661349556253100318269583782441514379383829049327338613291266622099483532772058060999847969474939077140464246649266379536700324166251024977338914069963429447329100161994033622671179630058648167664447399175750666549977236861455040951989950677345534026484012891560711108438943979281934708017230800765093537815512937853839627543758122117935603184046057031935163236744897291032236418832483454112575517286890320030395119484657362425351942780509043764856574123294079700304022153625230579233678112370584923272092375176177264432048122826335833268646442755863849802052788454293033229275874084236347925128898972673503031492839589355814123207834103533035168182717175039018492814765893418180795362275998647730602685343639339090128045214221842822599813995185272797166937743289750376727191057489070115142096167916203811255629445014789980699397827792638921776672306882038899143250095449929790173070092607932565483692243934317023021288587557343557193531393597144281675475951026142379431442571363778810554542405662566267495360173565067336184514431011490633773897193878230736863227891044265793521617446466536431176106424285466829310088679732417075653817088863222817037134508162245791236211418721320680748078177351001882219801408743680864180107352005973697810260234444803694880717292331730157938455610118604658120260296935648226951921011428555251473869050183454073134670946806468951665530823978514278630580261694902844145112642058537112178660371933562369805493080606898687754529564856903994980105327974035504095447576323790507709475361669347951796084311414016040132553304669102050977115243903086013975423424923200049984922904901727971950412728534224196103245290517346698829236784809127129567980191232774154764029345342362083322177471830542755083013016788634421110034697291916176410457684341219080095524192354060888876942026006469037671007988538753546251539899287329107004975373168637890597002018051248681270963028606494897196356910006796768739754237495997658533641200291197155166672844694997349389755083320559411315390605119104983783318739579735538054909222849404701086435495346871460497505481541940955602490073550882872972055066298950735981646573017210551128011176852961517532031546013993847253658227291810404117244762514415665861845872968524851428051395302676088081083399747388531398782877660766319033181094112880679160468885731738742419768722099104388925314369175536740829027822013630847239373854361922405892566646636636850519454328605457979363958736403034588186264671057296409040312506761966364771112753861226533702463192242250032410955967851436151458837005035641886109165840746928246280824519787513495738636263743793886255082922194852819495736730041541392736497408338502788368056659178142311365358419235903596589229119995941379520892178874649240603933776458488063609126011435573913190538927179873714744700625303504835714624118488510617146787122239284899546080317538619995379695556380995251184356807819556107649898866122620011110073986002255334446039888856957283910653159653486958709390372684361252481423528227660820324030959844793407543581361130629246827648061885122136183183047235432281508553062013831009473072803169919845840170264416733824150600815810518709573252890088841675463337797605028153566701665552950448081454766686398224563785219436731261931590526741133980259403913092466294153204794630516042574236932576925281554262408370209032247023633774204717063456265554207678539461670941502343196075015787223916269870185931249234462310664670507320679718308158190375191863328253821305025638998418644253675242060858554165024328293710705849009707806110922471885365292607662013677197800358894054639689645443897899661814626300258389662796561166050261289713703928681443384993975966293293070143100558962373018902525017204627024897602481229837464333755136243320862267009523460729334112475776759252574863325998495558367081775453332057288309022965958605405944862786014395035421791932304627282722209382449801555093319581297283982652364379949734079494875773892135140425451968600195647456649532945938987911554270941988467650921252498946436944824744324252322191343174694336724638822895977168942548985284968710729226413874188762290014055537797464350035283052525169398568933505125085756129385679702501920555803468866226438096208375322480980892366845707331872040555020320814450402282216019383753972161324606477754180745494713553889462868668889953114922678721788723719053144453699039751116292340685188920085305682806157025883467427354826691053075711582471912442678878188143800294286495598701834618489175262304001660092855688377775179690650706630127890086721240325927003164595287253718452650181125992838206826285566901253800593246183676038956694625333934611502592483439495131368904227056340145548987555477037505809566179571801951641567658970421856393583041681652586216931220066717973868663250044929945493527346468981157247493029986522231677402115112478403812340772161734491607281449701548372666476849326851290100817216437777885140137419414538694098350048737719896552752632045896560047854615847231744959097368043928966320463700574521096079023347479736057554150166417833354974126596984005839409866841088833214281714885877747672383559604101284529067440608923192562144195875203196046930446206688665130291755293590926560769798853918800278375410456362080212690793705532405069252023126665236153784178401632884772582577100754591813966872133188803098119880551531906024804432127798811242070032931257422009601587159445773180236006295548980915661587786207591935271635829626793333273859538869380415701133984487476451169993005097455778988903730057678399421508042891725656483436709991435941448499293588879803302261086520228643726653626423326075450904155971339231893319257863043807871876972684135150062149239369642773053532750220275311158918916891137397466438124098177827568135858342959977590248442218795487204527057245706581995897718261549745641809228309448764854830685661844035012940922429167388828266582172561937112885377093069196166254025840613182274949207243396084513002871359405311774270907623072033994331807285562874989145393700401470579779244629687747292191399741254218416723249739795536468447170822471779729100582466375925058699260255986508764071362976148273623279066363845041150520005913712328573677811034846123137847104582563378720065339494684677231605471457413205019740597647738549142440980846755820016332383073865959671301473199636269086171473705873875269975931891091028186768210908090303894858870890016611750461792492326393430440382044884624665908587527256531374470859201078599564582199959318271352310081953315895738314603519166047216944511002415307857498089988188616711687120175699216359994004153546638495570945044144656061532480676353013336352815020658541218921392402645528034680743320373768739317166626351727772559282795601795793359381796473053354939854996349329307495594046164386234369540034649334567336044068354932336720531389200099416344138202990247560338591734537245404972058238490149054499671174568793541028039085686482233556924919008725216072898091523828707878415851140776604982693365326667443099661012452422318548291983029141131912538816494089391445791408467694553312311497859084376177988333788747975559036197446309464855643410939507378428194932102141377216452125797031622425037842152435174471528327905728896538288742985356510856934679225343473370121047618637027564077510725393107493383432827656174949531401622523698478792456599615128012857491054040993127302188243198289809515889864119390160930703912717564586210015467138803491558517899210791125311703045381165243943699750398286507107771376638077371920495114078281608247103140010301931374657970295686471671967318493015562590847470171315171036796813555631755227204933576990849825609889962092643560929270336535745286042547898537481005820767515142007373437778210048952150387387096012139394581815390852538706518552313214028546634554180143898684150959090609389534589555542373590539552254201365058712255058251722970173692803024204588768936964095586869493757918968804957163746714302671692001128657484014809939300125029025170689797593512229454134408884478567093201915191462397874198784419048965398622917818457543203469349086631337341542866377005441923612436406664153383830454445793629039358790832250116207146063855889410906603319411257767537764952859919062743437259214689614663593865762316816269528685893657999807636452239249383643153701183613434126038854896013406303382980976342749284847868709701231921962403320189170038102594662086391249042897202794537411715839105124967475547526867895123417609785103368297790388690744377460988092680553599494767853607575339252629540678724000894049791233429730858448509818073227687464940994501055778683338072239979268161005427261516427503463082309717047040476123228655082071362522727433679184373847173389030131634822789196238534989600637872914379286765316421121182178892237969094225161605649122027191670274079271080096923462185061281279296562392746950384975985131913524598216959188082450650527023750765019919224104282201629867109570962382510648278611720554557238496793198699791422968313352072660205831669875356391032453247303127713919782920840608988237291358563922273576598784273883621030804098766076689034987829664748047301249777622700155099704420220404874251296368709229427817862555262167266424371365867879897681496112918347821178490342537146834676221344192767229286385038423655572576462138905867582403516687682785395182087791724186340472787956807091937521150197356122379499454593469990540413849744376204000858126269358820821128711847726266524085303730666530607052819152874599835983625243659253366606806067120888559832411265426159633026891717577866675295138713932505832313176106269189708264712939778578581954587034072799017776484649757132724694525974070314887837968058964994647663926710859949587274778692690067494626363125046330131123155744230950606854271565774982748102624426807550108470994065571205661646498847758475442415172833174122201396209880663734840104380656537824279277252303637662870473124933837219790356874380279187784856023468747939410073773626897933453581887204109519497260446121114302985118217356011727237054018605316077481861349378429746779945642136794333681272370952058069180518001772199872329654090749596705857867300150688745567407028667118932648110473842181834146852622466813934093609111088375308579211587770835989425278397277334040364817558744155378419290059484372789116521300422835775999359996267684065555565670148052834146760410124802688531366538528182259037828834491078973965713892651437963527896913652178465789031408663889499353184131253577166412968806643194382535373215855488246568420400060887442922129568997796411904476906990205017809782179000856604685338434216225115839885676304845544369878050947232262201879154089250533264770056816119354787902235284748121438916934342980411346440109280685195673680612949683269341637577571833321874187050323021977742856271461394791742409091231435294743009699845804235516734533982654312101732869494194520861748971748506553625137371431996694059238545739895842700477001701193165235676926716350600637510055543969732390766659922405493801374667173265279847568186851790877509330194428271485253263622418369176249356110630098710847927350591646768989598454737575654603762118210606715228028688603131473032893973048745491753581133653594450981274917708871879921898101115785932959560624946298603661756826733706734328538522330406630051932569656191892398298356136180891536043296175946850074911592717951458713663222010512645727837270106914782607050520578208308561112315299600864226354547837569497886107528621675576521135119117012578051413220859344752949346680387623283967855501611047216957339905884938495420191907118781302781822885053771304442544865994809273025502094519811192111067379143462706116820903728899444922202414830143398089267542786295483621799465541334801698061207957962811627505497027379936372475125552831258026956252070437421764291945898288554279093396129811441516394997958291990994676282049425493450608392119418276319295453471456520858619369125031064293662101632443525400198573346304736517994676946993690200584065356807980170648122964212043007890225265120934702258281030273655989719442601590709658537467976087263548572864067363564568367186876627616094985337619136014814898158222295272025811618632716930444382909385014313649854155063199985538611085538713911524504603888940554607001310941209860379725828063094446603724826395461503733195242471840868985369327089242154137167013041995666061702868410340268516910019022466523957723989680764207133926467753283739330880828681683519778021051131994338183215347953140560754467341921169041489935112790168142462500506539942921667965609857720337897551877224515515961441921781853455688195099575223283402979547194479588058217969238294053215225171652666125880161112664140081433098875534389670487284170134481171535206266164490446221860016635867103618809422028947411779910014203962713931654295683714374188051599745002758777320076025303773788036171392040964949809103008334504801125899232684513421466570567066858763685709419875955410868567059358338678189992831584887385616746242806502046369718405745110379056629197875121890879003821336192483869874419583233211491415948961662769276277163715966009222973270567770124470542189254858386489474662599692837895196588697446648786760018708198089708759749369740172301513223169759169990041019616281474158888812014004955725498152393246997191199899317395277016093752265741760459076155838664486199846276896065436556383846205993087183930752190765381453311159742420971726396238748038961599535360665467872167706363191668085710826885664854014298955118997397917710120586739703450808434784983530273594437620033959346435218114814556496847387860310219274988115921053382518905390684978175039719547899526275572954923382333857427735054144558052406850133688156118997337658394890070916484442796518944333325731201953644535234735819670010885286410173499225771861534465990647999511407353373576121765842706239139632349541841819307341356685899986892020376521191917316498290849027214691437970792287251278298290943256374446364245757148960899940967651376248998453367290630057316383266828864670346256882953251212333805506863057479301695794167024067350059720753005547218750788771930604374808240159964870723899123881266187280662392179531244207012811773419841059846944677193713370450970989799182506168902728665713245260230549612702956294896072997932505287780902376889481295633840746418011414622226409371391096666358423488912806828130343972829995791095985691999859544699650757396650859131883513163807090846157054907162369678550768380682545449817577920057179477084713126402570523524602112634199918629937037359194285175559964734555655419822978886128467178757743504188377350491347015725268954089160739715197399978930519943410831476549229126548405336842989518638622266987470229809337124279841476903578408453944193264537746649993177121640170273258384075397275982377532355335880125827875534688734781346081532237428746242118117183464509134704468320669713500595185047352435317741280406712717009829701020329857802991305982346741521049018090930477552559950608598900849838909687019076412146875402338674788725634482820682762284937365000656115617818025222929889800280877626067296992592283263557522220217434844361949725101255086400997206327530027669818089367814765790430916038431941284063619039950687816763948607557784768621142384043575676340079429228295607216813787928016642886217238204036585117934248056506708666955578404385184933745467158226925949938724771952593521784873067464215072337249250505368905915361662992971937829107673662476360058393416449418605029636259600385784650724098715987906221238034219374226979347163918958549029661695757290560664827541631712280809551203027296398494750157332531342038707861686715432281042413677588761953914720081080777145378898168577353575758573175719853095676137256169893481420975414938795786242989006846272893698738681008913087040344393886566418280142968302558358790836141576378544213634650665793028051410412997505762409808092732478929178958827341633708200601232086228163549831952026880284772967410560941760599987069222534134323140451529415107232882599931651878069620399639685873593848970421037086572081842489448031746481636124162308904610675034225424336456322067965370261374177319284428461811312755826901147803973135521687634804504854501514265687944811061958513082514823887663712336900504815411255290609302116932027286785032936293060412406862625716678014019633874069428409801946931563992292010506822275758831612127449783475174605801768208568919696362903805321027079315345877928352364579846581697856607601884649869238114234078634782874153304125934137418362864517021200277099545489226146453684509081010629010257895311246649397376425801240880756660364573853863082642084059314378126395013463118990147568894941312319304788407822775348090325073323086503910152714709921828850987613677034938139486507301544684354230148601500740649735387591548289186011862133577961246107043441354415317321935523698375042850468566963518307380243851667929534617273056594313762067065002797075097618327335946415535194907480944424544430268891831013432012005758918080213434081923266588248813151506456125113351451797284443945193903052537884036548578012473734889988914045111520834754450140652725893009951938880193699219315476626476651448146314359062954770245640968399688491419347533331077270765285473111909726494496591982398903617934767603495837660578917140181016579745941631758587863268679544625041515499602712164150729034949957384717752628456159367319532385992991622521604646006089014640453759469952833052108984101689227460086204360660423181239215498307853534888200370111718907758811605936351208057451756872567085261852630186765166122073798378214041649265567454051149259951090885635996412327836534704121092381462786745800627256536171537304478833001743965051955083587508563962622322066452783621130515201618592659844589901212862409607110693906479954143654262665645713803385931164855085813523900738050163022164715693562076453735075320915538729549962386610064192100295309070642151474867599709732696614655781614051027705654825715303854270325734161941574131438175135574168774284825716389596281968259340944846845941782042346868241251397496042525460972042420019900073104287245828925081334432743832295731713239148603428357139118853665335141251237389982132557674243009777684880989617217900413431641339135853860497353631417941476709713785524542887877806580256356034174591871530840531771262468798456657163410302756188782619254302106089917233040766826473374644545155040934202249661079533964692145304098970161417917664693924869661797807214787506919583921582236828122741024250480556155987834565030690768537593608493761071059535300538841438752272756871928811603109171452618289666263639194675885298175066617791987013276582347180624453851055771458976477726078502184142375609839205463857325919081429950460818267263766651985055145726723266487835919450706130236647008499557555401515787634786241875181799248681830424642256855206626470972858576649941662972703916181454052321595595198982383613342128098381727088709866383605263847727205084901564042146779377426801961385778558435797731860738633443908490803753420087269480724770184760284998158765101507220972702146368486728462741977082308013748527065934848493742626084368830937689992432251362154953319274692915076416100219918108908291417975587506363942750070631604330148152603216557785158195582877135925444725189402515725533361992282433289699652391398033985212562544332814768053163951413654163013012825712745445665397575308545233069400040162435897058480653690468219140254780976352045231729668702986584610651193214194293304345395118928385348889264129987250890786943673770038034152690232687228159004537539413906840454343537849793413385232545680803618742126954327176661173783726895135741557645228919528114751682932622526560927699030060507334971522212216580524226098912052444371232241193836517173200825882251257742538157280732366500766490909744505152782983357902974289719683194781910750527520035942707016027603830173437388881335029111643131271537541438686104495949675092998995479297736490231949743938577216530666737089956975945074841803557509362633479596529267854665818599081924793032240646580342132775930377954515358696536917066903388949374558443045527240191924597482524308729222126536164116180633736913020416924893543244036941500243447925541102611352892172477210149853454131645395680715670297950983402027697246252007376783386196235172090128568171570222203185594501081746383963643777357828318998443255175532062525363406404638023473828014074763901696080554494559743307638372365327099588199429551203118369204619427967614735284648810854520945546099566075356913688691651331870084500303578865658641808275241489221836594627806953951376807689159169734635268503614934062763313392997026321738341859044517577346880955101254857425355195657818815200871348599468615639078533493321570250303910885700166122388749650214565809494430108501305415691962349380645426039429511865474198382247489602315689231224506751867140622671917233640570412821383637341695912705412188397921436381915444380500960955517142842355158776491445431948948406747761187384009104104030398462809147634804501806296207972497764321460243372687193454695092134270363184077428438938452627522008960702151339517515591134822366170526931875142739427946205503408354711972240315745961300927515010922213100169088065156309980953596642067586205752148934223573925656690229573137698515916353133884094795771587760980437521527305028267382082526785087368633423048543650120035504184150554709939516649175977652531836933044062028509309867732707112214647150189190355086182433408723692865652637291480060732684033487256511003617993105666646867840256401423561044469051026261156300123710138489485280718364520524592757191287554153955432244647624860079402707363101623809910270582738323563386271140436992114909341840653818798350940286387726218203254000157178515784187445273357548911403768757116899680912852622999328522680380515893717879758294892095379972167520810296476076372787463532144607217810074080235793233617266322624238479955422170464806953442645658548925103822798192418327913979013833678069693030763742267844860638288048861031343285573332780827281790464630412050842150422100530824752520865126923725605360188913653324880292780955445574585615765869862845947707397104001068251373453230246634156956341497072235313430953928078951133294591909977383544620076765136862089794605610257832564501637686488738932519435031131134215733046661556993234591989554739348429746273148851892753162439904881080910974865348059498565995776062547626222868946015836688056283306198598827141836053284038746178404202792343257164439684430884349261342845140842628655337608714471933638790088459480751167551005713827254093773965503013337661146469224561874754839614138679774521176056530364858485450450646597928610808233980865344014891530812030132888734570054939633833672878586377042138363703741178194336769056564073205098074626956559243047611465978342099322209505132399179191899526511470269107584133047079725943716977012645517993852403734828739415554604191385258611268396790397512315560293515527563485214416729246735065680209952194790542897805232524373195523337849855760348053851576992140368963833065409543103225367726780043251525018690206724333321126877160922054922519757930446781772381489125381353682431701158729548205628259887222294340824865123227909249166691703248129966925056677194167089350870217671638174753366483098740707149732760091215400105503483907081633349564523091133848735199109478158513241907221345161867404802402799172163350659083727958522712309935151405399358287051267514487607392097326723132140517512083219087739577078558054429403944373151503984458140623843630357462953093950112608527843696327073120343985262088324181019541223580610689826710417423945260258993874498680202776505133635269274714695771698292687372476262398575858125852422578853970269493537322634087604136436842115763252585415760075301638380484753434985862516153865708665704434704221326760196221152336986183738355438697993424115854217162455500006696699890969756337474077802897509803267290722092461682522566751282790500577830551524347358903450554842687401606301126444164704507918336324084695932496673560611966304813520265653067002067891178676230593792421397466290226953161333104448042021380192827416356348352874028191489401321797634917062834564236620937296918360250825494010879004359264178200524088606105737512086116993424729897038472508497328065824730597695319619460033347713825926553773189795936103877437434565494167708364198073617994882316612288660845383918709298297087881121578107533746516909621760393581780227736792015808643191338285080228902191255452911192820020029341578739653516099891064493733736297740187421815062392477619578784325969798032755914170360341946816836369397443178060653029258034176888196140056537915147429194298248909067652722555865942532855002219554213873204029194580829505300150660873640466532178194168917219330564817574568874709280109701872042167893648205950933773096628337110819627932280228228937810677685151465527480681330024421202508684654702487126557043088978876498972011483332869704213135245211591617136116752589413163842189745122491374247053970108557856865537999126364988613465169450490817238152699019961279235860063050158243670618570390952309886274522356180677554564164971700500840145039752982427993801895875246691900012671788538561574465476616110753661402381113670804444409575192436657356875758516002603864163138615796808329470081081105230072669087201605742968932633617914609044861758551647969331366939774026785024558052529250184681096692715764340619023788769110325430232847213695219320371111417427377989127024493000288693918944135567319820889012898025369286200680352214950463393866557092963457908666134274464520683506615919405718990389625556864676655045964814885064531165753566548511704102605061773235757751195347372724841996911298218526516088444854072719903193947687572212236861957340696602878380557495613093243657706048322192346718428646357336620977312242465833683728591189446606621825631287856634326084007391721478935404684067998655446891633114970812500223330772687050459147356709581132481345020843948355504011992318747632017563439170735354420379755568399593516584644440710004356592980049166033118197487566893873181356723683335742803736404062273982319840623892914647994762133686393526831751080243167243041921625789995265238566062453519873996792402304111137805047129837750234770700475928749408101780630960868720927155036334724991180529311439304177755607409335853515849094702247759454496917682418638887613595328858084395064226080937121483753326758854395519553355425996894572613530323569827458299761760807628117412911488679561693129413007642561298626946825537657336665579596557411930024501022173491423722216203834827251876011347356699015334628901534667251262238865613175995109484573586647711220362678468134597681050535688165103861885796355681609328600073700903066421711277113933803099390357236228413740611291114450715309952739239770063853220529401812310702212769813699452270313210702842583800370692327258841164248663420191407871641693011446771927090081445472094743753500410270463294957823946523540797050039024196830235306787538148293668113024885036406483776408651555790087515283867599528215795699161290796931558712173832204820846824198659323250923187925087657946399237121257040903518141877901956968653914068292274421620744658372600927419444217596450091247419277820075917222807745026816041687184240484176160098698455926294174491765504719959662208916441512297020395131145319344215477040974787062975935329793903495473714383801358865942896594057643629426756067897693140508647370194065984086794579444973272346349609333765625582009559239066629020522328655560338652068912309544396920241736827245921711292528171564779586530859672029322327713870070829303053850885408743404079907744281979832127934430167052512627609917573200570465749677629351886972507741848818426503456047012905250631146859358562994567033380075300912778807083742095810157055977008676040363267453613819428029844668570657405171810328986600410427027074789633704571583013868442077697624849705241829681894558278292003595653254916760762070157779899270307244292606672353499334838137576792264333265938670616994791782488609982728012357756958126622555245771528005711448005387581982686553761315084632199855896225542810148435505871140660402923476735293396476334709388054907748385679736319288440322777758083033118693323687632521263615779224598060779291820424269687279435628937220478839255672353837605556788232216525709406500682258478477775034679802759641096123934638032921737553460688525014952389366400021343326143675648204436327538651879936433487029408736055804254261160046446049479350114360031681639377710099586721866999252066423046491590949114572295057905920947146289326550424393852768756763949663359973695225892475228982992252280986745537986750077045403788392242568363881539715919924297257225358754679581105392368795729222632545784835935175416260416420972166305984747047395019017202869013582713079122191098923587212144035908963473635708137546897051854567380489263101626127408076214105101495428116015330475499812625553116064031671963052114438961249288453195453064108338406230021725225845728599623090839831573353083960876585935097527970062097798594210696572220585366632903744215220796387145353945321011030918572049143673781233374773614461752011743223800155933368441384407187543099182297468995298862997924845958830678609713144895932162746626757759706939036053897344951485533128905890843489715186071768626273976154330343626509146616032193641335339898890288758096102448268709251646072964353371865324305645958421683323769849257927474651175939470469976279431132356608710805110784815932845127696490710292765921733902303505558421296547102828018621155944803874124500339278418124325522873331639209529923533272034456852403417057800710475619256999622884062930863904434298252024506844738065490545962496278435591655348243699556216795999568878907503938548629878816731451858937253187887447279227644378251082992299127958887939133922610232561301289390704399284703297152361762185012744136555516343262007081038855167226327179380542817092584754797424808888478860794477877782445352018528112643646588104399647088852252219239923286315245315028126728644857230197958764154230540654567841917387077270568373036853749010161671618848747178617291399126609126879807889838340279138507271649620765968911395708695260613495549848848161777435689422393606525578596285439419416312828817592520674771910734811439163194174000396028383822794399842722183805546085483863313074838427210537969496897798381031727431527337394940091634061083585091339759261821263070782915674823811941398109117072021921223461201912804344656386015409718349142664549187034670453824758217331748668136763639397429070627848325450116585693934003274393241331228490658993290467367643867699114491817015814698610333538690284186912182113605321234722710572223755619300437435690733000246905836372735013072016531215322862822640530133382484994683644284943035967829789848714400104142267998944136773374031647037243867381690057018094338169114531894531453927028730688122319765628170689888757406457372679815748739790578075110043759288048534994606555414401009509258903621332504379820681988836785467883771495143032053379701076934067915916886058678839783931807371630287566595162142495073416805483608382931012844386526556551517500862556013884878004522525063822579423286116458032334549091479957208700257064053085124475382234559654990041066229089901063923174040958034780493489769614405107825533672411906356334211551857055213161817253650665016664511177047606327890419924771899300755161498621754986717462662805802938680482368561911909219358830021978248722583896261809322594798993618401474608994674187836051922628651945288961298041663575895242605557040885573384520467555422953556200207567932536548757986525681668338714415368979125964496546525489237576643380950976162445231521016838825319090442254251922281023602642542611119446509969178193949608558692427456064781872766495211148758156399330446757390028831400840509965241152819579279869651842254585296244626238325820292861946236057349466523789448922453656526205048307161820535737000715168126582962702162074763075674227567591234442368445836768432550055734225761275738400413301011799755060965757067872954333972878761732984762347103083248360759120629778537727456988381726648877619953482817015465118071150177808733903735267763883346883909870751498684899001501567034547686928634780646604060110461572330929113582360648108099035132554624923335357065468950531244702791586665927008831842179037486142378232965339119015867653210710772117737254570379676580277787521430201417354314068384934732226814413112469693716268341327422527386169802231259837517371190672480079914778700293398655330807981065502755551707783591899964416845833829496314960240854627205841390730315427359093673924409484298593731168501723163271550762484123882707865548427890073278186652661823253827505354932393133842073986752365203791710541931507982332652357892208582004921598867966045524299104569417602552451958277552367067187703989312861309130386534407480855738875734411921217410376590756642434192300977222788323334658756788981183528912368003310780006474735959654239335433137449759774689575298913742231632727660826815716124123006780624081665541404195890939578829962510153661142849225392397202603444771089572721879514762792631306136933287303486894288678395040737991042411264224163068714816964199254735663378634651973833866395695776074036648415988796047006596135137810003072109762478138021508159416125949987091055252056598584378651467882806524904331203254372092325363535000336918098394130558966765353316729285987185399287437119638050312049730695701036457479013772038363620241318890165356862871194083371096565434637108359767600950370955987271642551852735516973962181212968158022671745329759514564442943074031194911739503826151746072817610711508816840569168226237216321768689364382134707936268832481923106424766728778847833409375225083177953412631704407227176044869004018524334526144996130735324726355256632752816693306086939268008553808558266767461212068196184949410061792442376619669404912991105874737878911425232483055796180546693187593025105942028027657821276374917741844408999441723926627352133097334073071663629303424952216478326879979284728087321517883025263365221874615913700934278766473407699391878998087175142007750655265519537656994243285053529637565148576466358272815324022782207284291011136380347500547529268983006757616007748238247951756597106663797725177380860490472504634339518976530488874642672245599707166305720049077076914269873107528289924823829005483404315078299929735508559224766776123220288378362951579416842272717497694045300182822667336914425463445086050209588109083122508690035187087243162943180721179568529609000973451135393432883120658114567992198321311575726565970094409768674991027050144965196429888524662064568928543847768302784932788292840049981934263126420244388800160737105875166934486341592639473468065231503738325349445546710574234595505908247132852814803691105712748360932492764954593490610180668275947634114360841717167314993174149560790977540494281083249996128958663335268714642585678154477894861264112893582069664197889718667724745965835268906130210051023589175516165674451739579334973534331826926735798462234707860194047217799291866802042729396385114224389969786275091680091275460284273507162942686015352895673958260640050756553230348451220707729340761404333445787442426595273772210291374297187144797161777590110067560658164347548633529857253064257708501743273901514365316499188073760265013091526056395553186759192003501447946568977416777531307159940288717819907846400787428603241739633744532425534359469311649023702591842334820060689005559782914843550168312345128550295488702026005047800530185072088644614203482244793301056760785618536559269137271954790743757876865281227209828037837822277128038995013204361045186257190350313554518741057365109465202560839149697211221061441729051077552258144426444867438098640441652027579751091834870887276886897348682892188289787922875347189720551952414197991727030912396739814581032794763186000506428736025972693127041505767937923806723209503410867658302738960024318903292354026470309449819512107005578990683796306603039926219055700408532584287239131155478960106894309990022850036375502881228156557366271502466938042337429421334671343204008409083694111582592740358995581354844000652888640212392075168967716331622715801376215224005113408031313177635205231789614661635068412664223807014211641378338514207490148547716252499010891158875349589664163865084819903004825424550820251584724401199467997633436643049287709083068811480738197506903612278844728886359873014109208214273717476530440795832321629950682961855826051624759725704395720665927951973176741929753734707889717378098521626656574834088954986693723999265186998132741352169463380458644947067779903384156854686240071114563307496953999568707202727109378300961761369010623850981020088606534925126571951208472064185972970105372760412408474834782664098645919266444028573140773121336626194710752524580568881706740463305862410340317813057363054996852214814373873388553206645799562535390162723786459389177163474569594359049507123534244648071251767340943869052814065115736300118871215226255942020083502147051764162893324466258747910476456256185321236929033314520797245851463509162580874500194965604849078947275658937520397956150390342539292421409378473249317443296406053660908359189905873719285692782513855980462403118383708293228694164146518066346490408474284848593716605889185902129159618715219466555984014122392162249162071183176906915219807625284279567084589433226415973991641283125437464198817153818880105038672088634062083974879823323094959411208515565693187286948860663906579323338328682345064543699083909997419816100554538867351122832421951578798432640841985528524677768501799936921777960293796180378298813093635211634890196379470722626208697607823520310039024646299923751705916838081246379110357861038288481156331863072452370517742287672352752270868045572962474527447040741447638658957640529208380247052900409142550331498392025799354966757444058174883742906393670438465926725049227418130139138022493522964687169992322767201216001756038770434890873686362789039121740965770778497338145620745189577475000644844455589211519785155937355115784351995059018083459253123192885128443827349329471459016702305392695561444906935123744628516435338336657595406879414852090068687872897987418331610661976692318967367680362516894425011804135608222705389236794011672162767176005372804355498890955922070218588693823647786798905413214902176940049376747504248865775298249883292087117374157896252327680599049015461401223137297175160046323478218750346239428322182951701835709742822768573591281080395765722394110586392874664825075187017082666809528284463374418906433730391911223600219217227480549214408487868488784652342692607173973639632034964292358183997803165537096029172602823624819080895962066552467397004253067094152846212872979005853363491385509380721593473475988501159318101066137705095590130114846167107780667852291634879035351830377006000602363195706253465016038261705748235950807235397528336784086704036899483099277741658049009481697295863573153744387475780942532858921583861366973427381666992051295463295302897432536994792303563693896630040317971284165178984503938922036864220453621261204503339854197487226880384625469181835669046664761576665997118309615927817895033347006620445316633890934948583053595942275235467360450230959991504341581185579929810931128340356927861397030259960370673087030131264606395256861348589635206358570410858253932229339881646861328390048613902015447623226702954986893446248452867065545839431038171527415686362284795167245430811734538864877339393842178041709758874672424032124859877078694184845816779607063386858462210472841577823620687540444465709760003706849957464480611470324635910361444819264234288535805122266113805706998770969752575083282153897362696091568070799147769556525217625145247985808936202851906459262897769749841421951019981923530635825106728111730808925415509483092384357175848284854365850885486106021889209573474282605853091577555188095648037228626565030673692328783971623142394287914627232078836675411149581466936349141153574781891447633577398520233633968731942926917119215449597645933735335025768175890787427487827357488998687179882638002033848462899064557175301027830236844607830494534441020406860202292358532580790347050932484458435849462721607340497583099417777849651771831200460346036801791190759183870158159500431382396932488970825173294104212546869858853391475850342051311425700081845921571388217097682144699446091147759054920507219669540883257888181337477192289070248172023041818008778203394828903930705502539755388519568410286408542885072015410865020589083716158697369605737024895837689028563860709283052571036584944334609655672579567066741186207235871793624879986754484393389265616030262135686931485914459214216270338832154457276804353516144062499405949500527390802127092012559269781345274818549975259050361567160572862535989740368219053259634030453200024265861872127425439761469498852764436081811106936869930996023605292839016858908214404161186686169999712296672165252447082572469324428118000617510171699300620278720791481860610560312404254769823600869992553575019865470385794057344639780846655030139489577275641773829086986916536153338759844751684082660440347992963310656998262432976885302050912877823344963377858158617447137003968315394923734139535935942995190485163266071795652409019002362083923857035047785049592954686691792990976505055146198788793351181579332907251539786760759021390748121259051066175060153886427468632526277874650877465655947604072693218598942382312077858456547868048217421998225422009525339568983925318193730720219701125052202204170091971748887528725064326194173294128414505933346945518345668947218275787171359853682585588086077976569193699311228181052499159453738576868804627121515600341878955604152981700227672117174197849182142824697095297742787120202151720527225444154189899104759067922289356223726634934517654274403968778839679761418125359165699163646841342250210025127157593903513094508997973600599804306549712795725192141545979188841175011482006272863825309694256817110925713088322388901514782808919242613221685588580710878298041863160283176735479778942512888458020526997625362531006052982264522267549383124905704353910202715079757575362487469400206506416592928869617395834265130985220252272894342772355357202260026798354893396239050090340729572180844570172177068060256040685231852490905877381080735921278028697735290508580887767878541752487561882125494589154313195405766445065881307054340781863462651623099057345935427095923773408359845222485613977692928008461770087900369964582003563258743817341630530225544512291893027809360543735110346164967649662884241448668419230858639130722374125596115158813955736449884397853587987680459939079083099948449917672234641012112458406607746181477212055244239351005210119539880582717022632170651434245600825028846392964012776746209253468897254081414479229794243217690963736842877553973040903299347990105673802084846262876690885271736294851003863754579405131067508832302621581159723385360343007308865142731000496113288452722099164565609624785420954006138690156713771049667840559280889237701239757727953191070206966058011071424907351560493272044458971609302003700349939583488645909759465541588801900461100066241060244723950248504032318643060586034568685745094311161487357990221311599078554199971486881258537777002123960445946773140437801009530448429101198899423078837136630385307465624260804984805592491258788076545976495728689049036259488251971649572724686069984354396108855024344259875227951438296845781683669433596205600723400373857639106425728894006957879422655419280529137548906909277075632770650106592987265281638965640308895395840852002135869657556570598977537802572971575766306092634501295492479637857493877868993198358849249895783810745905845691094099700564382629978578382954487476887779435717046140815613402158044638615815614496031448209883212706957121388890319124758187550667484376349255107592371031272020495786666438001207745643828292290089386611547187067015065486739524590644096287651727352078997581474768011802918500918581824625203549318442817136668812658525350249297742125498169851446897119621991631652394652566381601088772342312715528674429262508181836364510139018901366824818144974408986290572783332731519164314760512889008548731847121082029893730802343296652681129358617840008434684141226588619613799959839134275261559937796242390858695570245888999473490387769105719305384376891937844950669206518185834573837849718983991360183490784868993861778495481933422153249558601386027885968671809148602823758738340954434948494008594164291870442987375194808132751520270190855056096974543033771441897815647937711038547248293184415213187088716726581524143200055667140058275227278403114469100907905749682991288863231738015601081815972195823064335583149354170687956400186946412653322988807095711519854887033791198162605854788231215609665602896058554116120688848839732378322239616121457404904258572961160172631807850568807452215170820576228613322634179540740037073580347415466687844677361701808850486975132991011595339411502659807441664460339733916340717907740948560567266114350501479730916798520558854639931106962963379978986823714639352748403019797572941442742037520821358843669661802008660702651757541119674650167976929390329441812295854765652638092967835090523195215709512699892536574434142363145614781007337512416913154421939969704975688592439898578272660483925542720141023340457618154027723480252414395435824964130548744391939719375702182287433824536207797432234054494664036346724126816094443676426139852273039025423677895648230816569634235366609291161922087870300651222344783079675072206879879436779589766143263154440983312535250772610814402683111520272846943893035536274207932514389010077142364397112218199564090582072004086881264918798275449813488287946188690914513662576667991015055295743037967015833651093218693916573400453099561192363866296219692199304820310088972636621145202469873102075164956877635767586204044072533544601214591885370074463409281758593258748307541294092854501123824061407007761785314482602837700937235201968888318925490990097068188720937621108890106058966626792429239248475046476036245177617080848431106298463318679506719875347725825390572411029803275402261711694454906367615969033623324926420063764145507221705756865558305706666408029075023568651688130757648997713346174227383361228480658348578505584837031995736449149087856636150168681375107890047058297514010999794966858689412057057530576379803545030392258284290561803656129282898856034886191962941433995743005063994543853015208673487831690755399739770312237588848240031132222247614375394895678011227110985354513696872319373192169101198578825596721288957603254365711389813513518635217848463162628676650204853286271642256401841009497826710561133564833577286421851649148559970361573781517790710534035615920983056369922720280761863976021005828716196140662960238296269210135653062916389542657476368728901313991837070468451715618339262152024193481909418078838418168904206217782213148513575848768137665080276695624759937095599600753354085637254793774368425401012891955142324381283556490013326774808006828797861834892600930572112167185246842241725523445085108889105592065221491381533336829193224384490837334552693351887311197136951552131168233338278339196092302215811344573674781168112609173097005435701141498460549058575175039693894739162634638697939143137671045785777719503297496151851233650238321523683954191541804282760754244870470302709327097046377366338732538107765043869018250940995290321516641275924989325781131272892632547390849476194238963062475896903173315144882821729878077468089902698268521566104517319611696776630489855277303793068009798246530117609672559653038266162907032383933720244342494178861195848498216810319885867462756364978839386401874792992111165654821970192517974725811076173336645695563843779965020282246389991621060073432905768613195745701587259556833848240693162035844444078111771910186880976584257586969845351739446807723283952243466990372741835596432636815899804615292394001466974818629882302796787738989294032410798846018798525959367605560153575287088272028518468165112086329849089023269198262493905409657586451266221750789842119202047664494445686440550925130912987140712784598490933755278265762066772640524509701989522166728359712552552967354980429540166179498970096614580730396416407354277640669592212842306708941561874054132122122111268082712391675976088778419413230953809964247732016058846692164581801827954799205980201227054574196831091177457007326831321550007234279546195678418427254172664042742623203138944760422185084520009250859906173260298900361771816721609896283412455285610705431566164196088977374595635782617800891857767718189420634251172840118742716369339486146347050974786565087958450954326927763864364410310473533167340702929009480302631052914530189401624294358889380296799614219963519861904651612553277449117271748123302403796422347712819072514286329593178131009197535609084681838556260227492098532584685845428612305772979686467435448011034945837684369223731477792686178882726919499829338324114150639572982486689454923061376670920765835908713721884503492242127541859642152254221596926884481194797348293311201183384204698231104593917238851474944061185709295680803738425763672385551091063462723132438819675248196880611286269356510719807179416951352418656504024064011958153830834097170367058765718127717426877712266190232897541743743271887773345448565194661672943742145790094394312938668125549276615172039413380680812747615035102267613258130670821177642377970753741776318845287686036913567186175963982622686452610646770361303897607111849320042088240013257266633851121522669130719484772816552713142817215876716997091726032957296578490973771945102942701712818613249625222541427810998697797646904602043232665071434725242270409905059976740371095944667386407714901681283833948212295568553893144791250155381853676712084556649531355243068849197499369313193248916293050103259166543081703745585449834128719754378168145904660046872820817760886300416904410886001608301102264928129227776407476808127207597822626607329863286177418357983690001718258177946283564574977925635216543124300758351550262906646493694980110415552345549071671243016147093793138589992684246791133627125361159317207467728362971678902065936132741143131207762611957839898950365849995843861940489206629628666849069845946996296348961537148959849523624024322131127523475612838127734358813444413933963109259923218671228103834252388932936606638163345102351729062529132334814528896550519640675508912309902645538172588866903421069260870187854369905275383067053653956732495860530638712135140448962679706645078109978017692103482103280765031526842671862806850022520562016364172301965830291947986064247646754092369488950581928835551559318102413045147702279635050381967842961771668996896540948047411989225726482388110728366735385824108957943132080624455954340938333267507736717990653179697016435129040316979032012803158137399829794470849724226926399786771713332679854129839078661076010122207860317142506374342761263141477623805646933592124514167758368499075993485411114893330961314888072190897544017214108593833427586741107371080103769448056095472216140476549165145590602360561756555110692400650612599541509928319056426505525009594278279569128665045328800791686990070886274869492816089704470835181373739186168149038576467605413647852211653781059284612436463112599816702026731646622520384201118078497480645300223318783966648879866115650607867726624942611951593965867532890378014160579683044291958754369271318378658758185030005011272443629774048005494602250697313571975123362614842700312145331560931468896276790797589905824215686650647508092620191345973040009954337067475423580865356038875143953242180299768500585382810435158932084889514267038173981608496318447215754108274526311890381896508569396076936087018460785262912591433801091421471628647137292901707149665570379480185489422865694517491590002083053833972885469505574466880565702403122221322433782484548218766697031370670140151103554572813913004598833959869564945602082961979990884898782507961892833124455253932305158866504703103263784895104611984887943420834485121670159005495913291608100849603702846604942695066668022374804344024184786120295941449303004659925527248677667905141633785854350848796774810772727540394817033604279763582263866698761359345295119935279405534229486212526027879122766630939570594846945422605086005307531101018729893948348119838538837349823968843486342067166657759310043078539660587479244955824474011363346920052002068302658306956099417779707560064460375060753071059941995300653037813765787720280594214577546727760911346355110198143671348857366493985710930630890731264898375036680804580969080330533821483301903777320597230783259125984707644693819800545690933628446356660206321904436721506283299274711641401425754854193987099303948856586631015310744278380369432202457305780611652912767182688085666385191091329795803668018252164228506858125512956728841693491036490564461243536170061230464227952438880892302899597961203016024079675254348634559946694406661335166982105683244041820106173403769403753996201041712253937060836318615606494794191645845855759504024028563227251652059703656333600498959474679302395255144662613776756028088488982867835818346180062088154317396703778606857729729370787064417097946905775479094622661624626814419379506556288932148147472213013022291487663046181153593644492285329802723333779557715721615801786883238205311394642995080186031410624115370567435423551308550015245400088499156630261554629131305006179475859303633556296551616925126747707162632267848816294278650056042086701526219768443142520833939635733371925462029590150684883456554388257255486170055873859204366457857760018642684146773662081676301301615236297494125025455479720486166659774546422477605077552242626733848781519031094550279785752834474626757522565296267541047358904123277932413835091185028434221736749746328146083052120214794893159259486587694578814555519082912557530964695540133193143332048953338861088109524879990225883169535565292250084166933315765430291125229581904855107762071665444562170716153375373204439902092114389949843063268158603158061325328941731871604257258428408123816462292611409977474469275648174815983864074135615311741934080452003652413880162435742838546575298090643550901893629177948849155732777353128786193162460679055280061899996458664792678816894336864242337197767096981747748682535580400816878470920952047000853780909033342203627545260700282099945510072226007535421369767523646730819456872337082521397499912164183515324794430222702536826012265632859917414761982235365933846099946392177765349296938996241062684991058488376588978180267281737212326896080800943897258028302669014035055239868620562292558467264236826265945291928026988734586662151818356189048960971076221395492692385637181373694951766928607932313925536677712006547321594034021358434439673056457185785529962293401736943553180652731891682429034905425160839746826219040976855698556265717927039970777993291087669366849184361582485594549380146867348394157729146213309257529747334198306389269094470650297748763715257330625425355553719825710505517996808924143535350791404264580610779742191022556866847123013729250661104062936580929900513314030116091495337737589766709256647564627714207237722951126574436363149482780785446382532364837995809547366561463721902466025956711713033828423436863861452185305284719805900491761619251414393483873502531690577448413845541072737412071451272886271557754421301224387975473906587203777014948586042031125451326583660445616801566414025450117263094167696163765131505346288617381127444006618416788086002920495943947257024932758558383111092388625360866605593761674964614130536667901572498853626656751824300935504056260625528312869737074628237861509270185198996305233217586587028018595392323518014479837809144850330712790480678510062401247043225674175693963506359709296097385498555593451868397556525631903660931588296687177996780459902354405364560225477228079090818494362753057924025384939352468291733640634293032491175181296262014318883653140138226492201427573634527670662861449876370704072222409887911588544722063236300104520882939976607408550864676377271037804887332267000070199549931460544197952816819785664039351059878017209912344410466092273573630413481207593283195334858844292657899033889370428578493782858713347949486259645835992344619233922297385099747713516523046108850133010940587390437938733390926041377775363404206233859977245044286809249908784103468249421574743333606470446043597762650999529266767748214429318843274924593319338579661447420147222320905083998957030018313063565410770320761923090686907716076188282203758630987045865706988378298727312469777557007231722637372398062913768624413860459429040215722210764532955933006765277576480414851537143694716471961529351947454408455639706009907134788260622696856818495935194017297141538077962654301785682226477542269605529981457022735191210430840741343098527590401604348376407780707507596588577520533390128641428926712481343241118419949599853635843283581018316648904348336549511367604123145181064366867340924987334364579072920502992292969334010953467220097234659204363199957690804515984643760245127011073395920783908214764448309438487048400278818978892828943771667765153256836470872075053799025408328445759620596743975604780490284460342625555708175897835989657966926688979320296859324781479384147561246675972128372203421120340972106901469466523106991496475732771715793310750977156217955845786014851594155656976802899040739828695830143734611510044792038751775503571651845123264329079569715143031952305511467861997533192990660579943835221113319839736427886425615654740875460270090825836819654041697047881911978800257480046298265534630272251479815178850157563993984107606792212181837404272289726431585790075130359454092447996709927166483373639546220161775951725981026649958535218163935056161841586713447744703091795580395170554205961345387933344112934908240617883649651299116362985377465472280245634290186773534760537237776327630698789271283268481588960865112382858890502626553064765498584824835441183279984818838591434861798752566146579433540451351113303245833979178235047578399215345398592518120987010769826246273466654607852918437818977524342903213978568044580638431081979142846118229811338373872655016701504316194803200961608832817152924274568335966551217827512576266148622440120601351646781521590681310951448328250720523491441606013770699208190814840348080678828752790174636642329332186538524375584928960134591899053405287035091111492478568873542230032199056523874618908642363393981858583749048202232324156037295001643265175211350482121387034234307729354552364355556366435073798762984737440965540903159592359333582251135269933355340124950301321861320693783324328092587602520961651448119991447115354856645717876522880099945152601470966085927952633412020016742410779288706289235505233320138050335227642922040032675033724068372748669292320382217601921214373028271270321061393253965637175719847241963541822451488963801481742416045508361260890326455991296386737985840744768082681738757355219678409349125667449606770848508594218758107219234153903832794407247538146329418032825816895418260867946169608793799320343883249252180343785207515179648938627412981323095503544312634797865201333809362116625508006468475811486686692444602778840481142268803296038037766282514926172286090868615010927502996950240263487073921765330346887892210119498858318503379720438978784574476076211130469352159690733109087111947683660471073478153947484239354772029545531071181489163750079946570438041672419340683210740993701836457074609080163221551247767842769964992225868072151610477297187872768918491543787412399293224318494609147787365512903289321283462224973537137089717482430217242872285073056368535334140374715611032167666559271332210007931208525734777998327551777153549711102728479981009047348820805810435076935446921817357287883416160606374982617009342345059461488971242843244906632023208814549343795962555616703639474781578419133418194635919169178745963172193252235210380377910428675618492109405221538130480060313507340591398816253578928848975466371007967786665438699772200532622133935960251411217128385259579912240436911107136363472214127588017819959800914824832734880223983442050047356672935554606678084336266565307109257175992515640927955427786346738362386685301642571260020930401988929122705245460907491346597163649116279520983540588686189384592988760584367824267505847466428946361698118017035896593409619860961531101219752330383759546152033016360119421079784875897066500618056272106793488101854893690023321614926541582445949014045174346288814072072003697166759233388765652028594274759434090504013349274480872611332153851910490133471485920604443765243016118745378418837577085345975903885245871716340569692787952596087128681100628306003950417782299525045233350611123475716166290175200905572140462522454904418794014770600986575204850558897547801922318529017800203939888068150166767863551439934915097261131206461219780598061354158657875804387739653410420439474903295570333808117980215565420303913160279844681187555229077819847208263324478091505340581840077772242120430821470818998757482091356230942394409118130890527349917709432500261186428050516106113589929161400504393496821520568916473783967717322203132383563040324950616158402225232302386932687723842373112711644632284804908163619780319893382725935240930064681051931794672942896237825236334536962211735680885007955061979373977450333711328149040749028275380976494799977268586220419406201874467705206639279098060605258161930978697561640364757023214280724395133205205697286903309679999207199413686553286327277306416976908216786364003550420593133477882455284323579354199775606464553749312885326435591011967621249308338087500564342290090988544425142768233077091200303332016232777284455030842412175379012514230892939932054422602935184829101846775495191286789516628619788670719836201432910917949530193269929337282310685429636983368261984715155323255881854681228054118346158986864293825982434540707624200352818526658192221457278386409984515050399113662032645896325457994495926682001245526377210843080100826933340168424699967594112734136604973940421035294310991534129150773006392311662751516243661817621248220718025716460535751090821495483455481141256537252975715974088209814602448397691918964906465326521695210704840767366615155807371797580643987045675761693951756734818948052105248402386334255731198811308618746338439196482156710288820891636661192252771946846393451956002955876452933328230615036134848711240236872119465410779639373959533423536573745811580794752153820043013477062009656199981715114525500610341893145990833243142810833675643950938296208158543099515996136136157695673822984151736382868954968953256075892178494443740753754447452827955682187420873625615134296092296995365909599943220259532513933181329182060591827605694959408507457757294086642771016510141756446429307326656398862024607321065979404486086142698894216551689911095778502075829861803598774948369580708188558371529606908381321917503536684724288331809366271511931168298420959483589882915122398377055300289511321445906890704243077901204588062152871213217541005214170504328657244309556159475521689097214285842232955165610266948496415637122365216404415535991426397962498237207170039968535131018535299972758934539094057991839341473568989784015782362780345326903319888087315419921683984587026402418608830015113021153037432241565013018858943933302636343609879836417129637015534578572471207825738725551537744899793046168528517167478855033912503522301897381280809984388012955181011737612613058325587896544133353407000626802139863788712830531935629651192718227949781556293252684187313913637190409758375308973206107540994028791822551275294539771588213487610255373970621897757538645306226422306513006862366153942748241720262638122086115815345663249763942363875532864022329543890265543755975679094563422080278772345474621576415751799106619811872328647948122513678557156361686673864632974124956130613018044360987740162051329038226209598200621476253435958574323294092342922153984923478122922890285126395097031757451172724322975734892579972199334787124294601024020457374256517558412795968172115607709478698262580114487924510221473242910250333656260345848462121273878209244447169073366120777078476355113247570410338731186758484572736397684693713136950363964428237196193005844308212171193315433858103759332372487310453674602420839781899061865420639328444221794661289187953467170801831553664044761940743579680331505116618659274928498994828089809733935869613877496547728877719208732382426924316265462490024921253899619396491099922336905395144944082854142162889096334186133375350743613774816099012145795445595820345307500669086809125838036782451413949541319281034374930639689567161491677446135426596360839850028953606278983233614103211814781247671507884196606443951505225502791638875723919908883068093616780955052102071154568501835260008411770399791601576347108241479675207533037622630783349320367604065214028266841726361327723081307929099151640460492858215021162459149845820605016384975838123336936927183981283185528143508628352645095407640151801771386524363231960335388007164052302587372067992693664304189326039497544267152101014940547990489652361005630633870756715836021417744475241388098780307875352235213670156804208495733372737177435938330417502898693227892918809987367731492736093122926545509008905602569768903838514434973871595595673563625194665511900147937088433870273138652762091166290547362223869159189597456302155829797411996905197333897464997050475312688142089357914348659393790297949793944535327654145130094011419031532632924402846758518538012613373985817555704603262785700638530030355480078678408154293145128988084358959890809723752538296511694605440327518362951534751608429238662869323190151935457729470924403846470448855334267543260416286661507527461061342463317351352252316359904076468106791468064595211487791424933059749063502112350642102694761924917096940298763914618612812777065959583182907809713287883889479250721302704350477492328338652231252544035486551351794494938666226445707289958412461723021586054866385756503746134249549497795170291337812128805363704764672214246845680447590247317219711352575518934589626449103681182142000637941501404684873087482180005920689660087740843934078415687876431846265588142340652372143116182531695167125823516332910211159304608671003491535033986716658942106419374903424956538114683513875036542972758027080282259159401525139185411413557074447255474263015055617011426834326185275358721457981055037797742635445881923459867923142960493755773399180658070465249006426633678926885519789233088314874042539767275367275447801274031580089080259106991989647834838596268727143503967825495483609408052878865599995305432223004610119368572615308759936358953135001292619156686997757363932851144671041977119607879920089629258804512292202047560124323287229167798610991200085794313617496163616789388148175855416194860183378486586660511243183749289199067770557373231873694837756023123718796479998602250259164734203242245098681536482996520790447490588182134405075857903899512306300624851009068661424209097613359392171314629540156583080281905805790984116738284551548923452984477363730762398718145011690988523958394871286611845089448056688475911169399703049666046498390331363934857899901520627810473148949875049078021508310064625191996286767774265686206961038261317321213910796483842805374397496770183543804240375190870209421549686779546970490572425583993722038050831663670114036221633303325781514213209563836335915706431726491953342618235765044331128126676438189252035863588568770683311613433636459232711224270506735731196542897681995152257086845603701609636192664952240992491223359026076420191370357891872908784353427930993373034744783876708887866961309998153538854953386446004781247318251342466900253986932652808391541642223508381013754874198448540805846144499632875645715285072079186527706590043431047114872170702238129356440055675102557015734220387136215493282855997467448436332986306830486030782399956506087414030717657240875922436817056155272960915927432900966489016901965680855221219946548017260786581301035644253408735903762480052778481088754939243702638643874560647026952952958550490873139841534546201024386892080665777622383852075443985356096623219268647925109695422000427086769720716308722915067891341043547817458188970501949625808443030585010427419489084701637174291125648206836568396164906380281564328992929905747332391530924900931539155563016095202575537413096003469394997333638175271421510663361428610808944240502506060402163608679287396321982840051338863936384300935337629493886483200282490601441521260628564408265290821394782974290203327528002104982163954057322238951019587435912234759656221719652293340229877362794187324021896067870401326253544400660864900330879180931633133962109354244488617939261740187753300834661640281534216014823765814592086124978401342719096289113754630491758840922400762592688892155045078966752317276298827650776175036337495690618283679792513834430058065690050478693090053827675685362646028458337769438345516123311897914839474371556259099921462434903396204310872646425746200343262107330535606375007238248090785207596046133675782518624222648875437164399352553204443588234308115068407732496394542726718202677550785693427413534506586679572906016373330395878171449781138929929896381985717104970210179096602458174728688476969040039480596196269472902987489740709952001619021850042993169847345939777661520144233380137161818131759511045148350418837493606476283405906333635289243888884634951127208358609570946148410992602605040281458830415174877059797592348634273382801053905375055504774649654653249102489997240133910911001683129821075460587011492151913833737132405580081209513119560970718353895703917897912078669069494321876024098347574185144372985642710399452720074808895303911106078480810707156633353648885957740521829478826825755111610988774960186821545363560550752033625823954035147139634444665701263947140370479949241434457659386874760270539558913712597417587794903853044231796280255834899727619377141021267657851062936800247374264074092634215652203967742893571110312386310141072999775783207734509368810433578169980608643005551272163861178901374818222521086447605906738141019083178426089074387118898196206424898018372883743743284060089919974189340747499814963862441584452710679177219219364545503516838688072978719664984662694730298930137127638665983372406806374771574650826288732077347380230463623589304261235736073994886057213406850652222463677009374258107591210525856701414133626782812777651824520320452966952764869547998420861486545835630059950457320290870698492017143234644171636719405475932269359922650546260224873412542351098632041004752054619576696658778500494390862496407116678509639088336712633836204095988939365376741672407325631320984473231519690821057726049640281581908748769713859787306819443807737691757611640663589274173774869608428203132076676775812771173694325572125224063272667572600677489649942204480286265845380492244245935845882085315082292183632713622350851006441249991043582654914100255530980438290338039448018726016412805192373920799415501066745944400690604422609730720067233549477552723495572330631514193487102079872801737126770172125385937355948954455081969475854099280821743650162221296398180202811504263201507428348633159532088366491926790134130148816977247710373644250557267342166961788868772594300045726631358193764938351508490553593865925639336481691814596747802960619213257457538472862769794986787904957702923948457257592666219500161251913577247434132207292437297600010230445593817827839351358542687579071197471943552588151979721235431384061110654368832056044631234972370822397198719035489633808710622305380947995097894647684129118984820811862929626608441140922008488431129549579113834796207056749691097634048856536795082775644923391165581306109050841232568557376944998707268450759157353463413595360969209079975629160826079109131509512170294674887270340743219848046609709818844011546908257227846827462650323130349357597456528926731611671244119768743134453095406131412472072869943972141602260371295951151984706517191886428544518412010887296510685846310383257645236762510201950788079582280478156827014643752251057635990575104084418631404394132828173338286684658303291695954042248966658503617358723527964589397866031828377855170831007386483607496080726992939202448865756475264246600552540252274971166966981920530466764897826351687647308520505928894982005256835144631657694066295106506416565753888527344308607062311549496130529805398110564896497008106773665379683993757352158018255683443808579208007224788957283810490379806023885731642221407625244088818755621303971509239980088568418110932685788096078914600890635405173858229271781602808106289115575403003262308383965328984681017707681721808032857581797277060776913219086024308317185403426791011140974433384495627684826479311573571731214302916606899303040104857728923355701433304792627775276959428705841922260084443435374435894781809540505626133443758817627935339390436442598488359444223622368063017814870102239984045990702666666479836821157721711903003978762845396124438597607197307725394023818805864507579260434584393971074759152924932252991171641518249555116069806371761811774406505108662359045272328560983371014999599671171485872786503783277030282510402796095374769272686637657271920132098911863475600863256746000018770094189050243401086286542901912382352186287040643416052266447633526622026323170183900618789346587400764303278576643938915579292534884386603939099530995324182727769325394086429543640898108599752746102365908269399173532890746153535818559527171423587261854994796505400653248282047657908035946642195290573163977831858324857760805111999336703233106285994045720965100620651897904481244597643638544542728311607106051006163291914148813733183423344560330493187313737065836109239011942601367866830440648340942184064476362193926640678512996199148744936988856072128997010007038161002849732286018682376805605218389997451119828317880529612349538190178927651383524259671804350883007536792674251024515346515058742810118371576919627882590414597951714010310965817042909544141547960046538008566573706223214761825851219285926456283097028595442142834312142193527295702347564458297494498976660688079653604321517163424830760027068851583196387917227816342925739057905670024711340201915721536647082848978429055913667597003966301560786811099763661721506674245022667019184780264009713710170013487220835838759446175842385067154255504967754645462296448297067654327583805275651781098283168044325682880242431321670870670319610415478004263546013809829161582411369418131559512119839611788851768802995825021122582876662294459808648660694447316868378443386120821572607364647179800649854361696920523368301827894395071135333755043022449401858867367394940938675499926799485163802196469063497203721762178252387731493162082114353350136584514298664646714897033571006385039120365649610498210359630236279721259044219219135039154650720948733601729781235168399561911092690938843210872629402835491835948101341682254238509730398031659310993770659969429690926666911113564130929852428014987133377781040931186088194511143979009145445078977916100137583155200475006736472727314379576170449173142684683033504269597011168355207303481479964919049948868675355298141631466489593885662221612355244184428686549129691337845059924397920847078461556213269958088772169192650237631461568709969433320505321391367267034840551557986432296878571447601386083501994264297556360670616032900942780324406025691844638881804776802251156702033092159121726173565683367102276604870977425191744431739698640285033017683265407157107538745668797200175626595585438885365317507604777092546207720285730056687508114090559327969664564931097034445397318856749992608406446063125680976817308084855443901665895611463598064646137928907547166927305309075140561502283792823928880334244800851149228201184230898364151109562095630582151767592230999217695396210292464505023042462814153942188089961280488200660935667469149229698495713081829489020502135678465763748061721430372792791798645819989507029027191808302703551041095177617984174423815827099943393290970120834623927879342711216946577661124997552696151390262727387069498478050464349815324427231972968036601949939420468882996612446697223798044641537851811130134851627601750098117912849206517806573904564224116675185537495455952331305644289372084343438894326967497035085125325886303486673731837806719795918435222915294806738103140436090422559654287366516730096299905327680343288064381178130276256269723277631770177883610669472078311217942625824513137849777928408076745174315840892680512239302808025391688683477437686356571831408700973049130639777775601576614286104694965239083688745548135932047976763693497054589705640699310928904084689882473664047510540716348386631913563222621923400339252355522680056137752948522562590630253722470074763559540302179281499742142063617387574975098613041612558368235413066354921161746930369021325252952825597795748692514789384169346308675338275675592784658069526201880175259959097690668746688714941663620147014368522700083744387071872678134765989161278450289297912269425101721516453373065340567000658554308819448370995659817415046028037950565427720969634142534235836399130582787479860677102165760220807373618323370117059280884912669826062787338908583643606754894220112652098591320581700914623293395174674996256247965382536019016450211052300724258634380280079214845755438324516799868423516736673921426223627891761440335492799607274638056488199414100130361966661431557760132492314279428019354192522210285631476036863029418074774289760832861152920396910646213987429923641222170772901412524427446959865257040820239910084107276990319088905812135384148838698955812432668611792511191491587891624533096565152023923678385697411031127110405439852742103237645046320450941235081713152827556760600254341233314098107813469328844417940735578285844071545739734729873310454651823927813422593139648743498213504630262249627261770473850345244283942567823026042952876194175849892244448076696181996303071405817082531251569420472435964958312589225036783049452626079187029150455076699809153284693223588811421892719083434754227109397791358269961641562789780248485534535319378388146430828138918296396081979677551146467921682183863503451392954373307044433015118549771930553279386252281751718553845099313072305567084861559394077066120317890293930719256989056199696020354788261081877278228690142886202611729652750818285289082480858445370710518980160826898247572546360282701644541600348842173546026447085852125118133048447313605941912626500683248406656887497362322021616063398907669389073156525385540317668589363353931523472496662290723829233479972094312362557958809226780522522125620122838904154865695436143901902784884118575455536654118630633351206484827033631639183732824696164938385633683364616981879152952095592896924765562640520352422651850437153791590444001497914374512751553059507864042975068731132265560200655750833392268191703350267588479546228148644769721531890232004401546199351989447288089513391395291302868967093282960910846513861213541462320155678673843378107425265546851914060665138303537544349390367656314124703317186047730746508077114033176145539327650938158818031698644797369262372838274702255237029145517232455511014161552263155452131533014905568424216333819223262583631514251003493789792789582987540364487111291462475406881469796314070970391392628427062072425537979273312826780617861920712745151388476579899571919135363471806295897055819764635978267414003848201081779993019171143203291122478445233351548047759604737512015859926626287000593116998878075101467706137556824957651959704426990591180291166636789456057036072214101991537728458706517942345238359869475238444500648114491732314409446375720880068514962568160793171550429162285280975708081339844808472248282380228800979700786165563592094531185227359774120133195032543567774119695816079547892448008827444367659280400477299086745734772942615038137869353511910211915713610533520675465521893461989058384634592733708619956746187662274187656540773526419781251891573576455522740966174910584229882134710008987342906684090266936118171689801611664338503114507838648425083007423333089569129510774272259750554720783346362056140008286888984954635864575829743749221979314127117863212389642770270324166213700891974069150001020198754745055635911225800455459126403466755751359457669223671824218059736663118009862433957949798448368538392879791532116601730570243477308844337492232201763725145798001810364520469282332463904362837802723958669617880397038771796340847495024024396774638592761610986294108985189007164073818850738457433520084538941709406768904213186084829714302155768885222198841100216180063799088282358113889177925416072757643078511498148693102574507179200617364859506578346807048140427695520243927380976674886317345482504085530547863881135206590874600031305950649669941879874884172037145287162497787353577618412654384882178818386939025409558243270804647040810172786604635170776799339450295501470905737965104332935712907995205997544985305048146728050426149065916813767490217665275591409209649674764130366226947310076436003949583762488450421161708116406461992220739233148718400323767084252413543681870871191679282085757187663332883706864670969698422415186628049811976911187787606303411963584704000988697661743845140387028707150582422376177212079035279837939294674352915994848793121566477404910144773447025375463632648716210381977937784216215279728565487815988319628771515380451333116918973283215712628024994084911644992533295328487232131282737382639030391075615636740475580043282501353853186610189383630191513756688772282060675832724834594201954447375221264384729544450093444806969018506486072906374653242341069705446637047859629792730088193567148741673612999948784947795025621479831234930948813425957790111102654313878840187235997289706005727180803329974741861472611388571627276920945094008897903476942351634433039429495117702709763265326353730344162558996604855350530511710327979989879375680942854199297148743647085075464164299414834249990297087949988834307459092897132621804060660498457136570510563892492919765889756766327678416941809299967746749838200392810028191788010265263808372778548425631170499441536265284366735845356910589502498865041149361344733366395930669179055067511824791269710285031929064501167044108817890832459389072262318633182018840595170087091382363004784980588891857367107748353650685823157538741637925205490366908565200375529514509389793261642026219701534564252505827074783810199543078362958335830682938590636531585105494606003159597990348950595072538774480757004747118568869053667122061830324932929935410096959508238812046726707109896126352417927665784421377045359142408595600474004640971645673449184363576418493001673694050488278473056273463948342662546049782398419891435919486647304602799144221234670774599461926493049150626901052114211069676723567465290508295163074199354159611886745591162299324621067228195740700356938824372743520169526978128645150661973495392408610551110560627748111399734539773168625190568448359881015711017972785424171144742535967023212261562251328080052688898257485490036740937972076549048035743129701650485079320078956151466675408466986796940160676740836643576789906379964891908474807909263729822500679465588051699626940410841146154790946730385179849900854951868507257261089645997000054565591594932580146641809620685520271784596488637777045825139024950114138543010695423977931503186294462505108680440463701668227699554190564020430038132158700927126417250850460484842444770470775968781475854276034405217439846830169142643084145856591356670315365862886845352639311588790083235336545079421703559958060758438567998382228773750930270413632813839845170740500947596752240293538446155342581327582350958798084142772140384927498046868244434119307433159980498860048535916777344563281791052845349214394696097360981834792110755024922458417457168438422212374548769184087918514196666683449305049294034275345212584748292601421631517340215337501220706040068713861326544366624359029398198915744716423352376784679184700398626101593216129634179665289103817867592473035663941912939830099893596171681290464522244660160766732723078513385864639021820712308453757222923199373979106416227833635580167796229821349611559743582803390837439737467992241615078080627121143042299442770132321745933088659900736230833053005519372338907068084743706565014334977123069223618347038947363084078568501663819066011761135522293366426018266971084802452744783286067022653668873118835069498095057867241073004737277525196494341165175489240482252620681752874507152370120273256056002339755401209093796379454178466139155364162666228973653433701919632134159498059748646527231095795591109930119791370429070222248971443738538801471668007810163290919594550515389838481470455242674384914975365748759428520164166375875217903533000513462696111517579804366736628529813717242445131417358212388314550569317171237578755356682273492308090941751261299768527760247628577451325283177206315034168952629717106117984983794543185240338820600661347771632751537101075604092170744811481528519063482162517790147466320120908876525636098197523670077389716976637901776113905821342505308137056884909950191713298652479626829778440009747461098185583763969455006732613690182844830782756979668238325246799559481557358355791313240586070555608305726235121125440229691997654862982654579866050263331443993023767934976937026878159968959383206805753487103870148177727184506617138428165935788391084041319939428124303626955739748643839310422577784558212322260826728152398037984233253889310869702151433852122114458162427313178766826501343480846270389110463721147558132004575665453318025049129446575568947573274940387881173236151443113200255327459305652929504333519999332268765018687967891825786306373956275675190328180241976140488086188625943124612182634378143298050817318511181381323252000987234481779231732809053999774940778340123683204108490654189885054935738595038948667859360540354890411844103848973097479681523751976570298485635879428509367981445763614276384498983449737752526313314775451309141695708383386357834162705011994783384985671011044990900120376451497897780843240786710680556147957110301953852187262155274589476294131446441747377119347335972735796307590697774621781440295247267658609733857321522443243149173634361673211972173689057814404470347266661061750419411836458130739922509895678457568997626816940791064007567554462458889030506120669505275079068629022360182800134545652188221081709892486746307474391922875826559838719480501901475357886044584899878694396925612649936022782252036897065485339188788691526984516153366907913230411239308734901606241931481228201137762815287963164531561857048653982097727550451649764955398419660694398577073664322155894157252367324301530875627177550765135051030301126380124084722704841498015488923179248628151864101087749243729197395658887691611284317925013371353927501010145051190143552444882695913579863211578005500562648634553650011830169572474138657503398321760834527474916650658802146556785196351552008906134447809479447399949419968194851373553204472821940354588517261418361920377934618612174931958887990026290244128329985381871986542623786896511826137572894815688484695704837710749717965852365222069441759707452626768816812826256240532795922445487278444923869868295132025793988756388509750719735251895942913975586414907441781476241158843349046825875583500429939738132174724724866111201416310308302104592027213545797691996415093179690606324551428329302607916802315962626223970816661234836994092505923550704793566337765398709963180312075579748821022694945006706668728157986906811731627249397934275098426393524374856405367867425872480576527580669622645254244862245644309924283641342653678722611614123581304570823928099319936080595590011921864541724538892742234483290304691837452286188006208388715024226700058854528962688344663211118868162989986311177851386817014058184884882161628382778847583361562956686961501412446573478978664033804660373409026823723547080852408085381463579525927141403102690698915244111310062731910637349796896719411296035525011773638057413629367817910915899768207710028649371559090080460423403053629470161806171188037780771881240953260556096853284143694527207831948135999888352096458138665922980096449668616625976549745645206893529609161784518626074903398799719965292953346497631695202377915738002140947930600181620253216549302601604798194082768242268345212724292151710842853893948514193946847377588025900149815590890336672035984617264883676447564177664013188044422971873784319053957845129476409231474827638968842589695830502249002816930382854550372916522729927129997498842312946879959767473488135147898692955673360029599281735127766509614864979704547645498135466899711166359147369223310533879426706121579791318568304119174667540111173735744726902478664738942327836282889475153814638295676047595877779497283351981720929071392856194061452821162660557097123494150944096496138943165644805908876735843576512598781996980908153288597459509535419060810535707946112551962605141045157772821330649575358781349834234809899548480041881452792758020777340866133714053799295177046678887395398823762596092698667519848650043373954464830453495647679222657158026778438710519360667304222416839055732949130617576046779556333900148389878081065748517959848338182771137047961334216248147146122595360146882086792725027338587553724960696631965456662187816619337778009181586348439595869373787947830832644947221360070296204389893834353687688052832330258287315520879141249017370286078209047603842808460006830475001828166770364134756413739298021583640579975120123411566102647141753585346478866218532448099989696459974855032185174994737430371431070076004754531985290296775343107676371670559244592917719484615171083109634672146540710371495569160185403596366724499511243161502849882402863201629214709860604327166180459656223470879810276404195685877733027557752904435623415271948012603500693953453298580351190626411639072670833757787539825030241405405616057362784031228622777530441953937929927465525064286878389623935066692586026714041927737663660226045428672823187199673237284748806880268482973364105141988082518507144976646009532944418273569914961398212412743326069856814471910223196601506316101121949267200237668654795702549004985855477526894835001019748238668779047017984309834851885276577151323370814304025933744429120490552456705551272225595383295458281621781648597527252198872334332017823342105256754873825548504433317455419653880226178539067350504249254893307982402975526567742120864361868111499352234860116817669030748766046441340127356578316868809472586587750471875397812686741641806885423109360918975550993703614480976266922493392539862923829393960000389185771293523422775838631785840266631834567883484469861899781129472505563119790398644689219744280524773886467979378980437208373522306780948322590690182954431126873125283748784689515775920474571329348824456115101753851980777888718399953350758331556311396286362918576361717750242718790196004189733127364147795356258079793721153343298855892738390424003676863224294243929724484953319393275470939399497969768852932078455323659805199174564005423999320090171064844440618688794454676188620780678642407181258813440709579706175056941829430837878203329938376870308973890769782495384550427515849702956733450850998778421861985663256542511769174906641832739334919128595185262584049967562393344965832991426034376312496869198161787694023631448073173994670532902764854831109097505336006510988377811488603065111118027330278617870062849223659554016945273347070917855776204840332496275244788577225605364869112158978106171928698239123988952811730956635173395597179993552355050835486822344494992874055017766274746441628343490253039490874154506145082100084928255268128664415739735289373203271564265878092830738013490030390388114417492529734048217625955512187724037161029923824703893480320114546875408378120991547335518110386305844621144670144825956966934416748021073538032656495294528916867978260818199754604211180283344335175096489654923768720207640195650062465645455477152086975050052086308168717428289794831893808786883168136166261173131481587883632304453076568696122876998650426780456814346947610894124148978020982780037644617254003481730732698466124996020587809355537533170108972864354801911115582320647761652714188068726113721865458886037260999966126738803077445694004498607550407889299177213769343346300329558058158382800140395202446480609720958422910229329290352683547375629380389893535500056458090313132727226511893774215989680962906299126833067670046721180443378292674840868010312514469073113468664343085733081288513699490215746434548606681868891336719925073432016215569713114179464215185074854379381813710000765759790784736115105740582443947753041080783992309852380498023330162122246251020879080495921561644432660708637764739423401382723436551918914037758253014676980577148786245068465752306277966675059679925231046918624466003835833791049931101605905148501364884054555644844035441239666696224335365786519057581860362992658457730834799482580842871091601593812379791103607281345249123990181845463244253135368395393396270226090359501222229564480523586107938043345766292941689937006090881450870786075232611865093667911104467886633951203769503044012049069264425011479204668238997096435278634213703424818028002007696122623278756933453247373436514607897539673494842611561463196310219743596920072419278842431494693087036741857226202378328797087191466236244753223116309732327753857192425813462958566199858754965680468358689778146548520965493062313255373255708341021969066041026186666080331540470025402826892240177690160339993660711662639445186710645366363377726565672175575574023120111673355406414614743543182367082226846452080779913739169830926030887546401790962200330510373208321533969062991633846329537823410001786201908521057065457845196124608172480672880990989375184031305156497506353551479296149510820107325408434278663006557744721029731649763885255098544447811150867047302664640344624536180583286984637492406620108497781833504498311430406823620433327042049031551408005382888666369485839012101834654013060008644855926858092489072461612165757112830013570480362959242505270969838917142039490905191920298789841930473893098581017247080122772293265106789732531393515419376270012591034138834709432664929063866523238272190686152702020385759898434064105366611930471277764390967196606604828708389687818481987354905212390991082962212964881784655606633357458955579661984064080299932187536420971802430118439945399052500874022514048760383850034394927574629899722999783159051295035339379341589953233832828413318764727827928178469628085558156412393391950628941612884691849158543568490568116471593740481919234422919258016961835127612151833632224736655604709968871467430082048616945452958669217029902884477492099358252823919531150196094105773666335597697990492285245209796877784232702341447349183749601174587377745384790303162408763458648765807970324991086296038444977118276511350892279888670484290530532124772715632730086803896873689936778907304991360229979381593375377938306530780139397167872222389054626727816257420689578166756243527002424064294318526711361834215178788361731269730351262149376564186797722020509471923422883780422347102682597492765149164837757415490440862505643074282948761469928163153284281839339483958483174183514679001336378630242998309249856422007299807041322867067338628841758640034984752911015922487209999776368004056394627116544791337358477703638838317188244556969283328603111234034231463104364469649350615370721823933644840930511863755988401512694223608258025293765926786276171693554075581705098372261342099407069113396105417862968756294654213246517235826722133623560296415237228962351381756887742120577808433035564437510080229927368772129964886696525148549194979897585039776640104373976496943225068402671726851129696577441091912649517755531172545467931759665427903979086906743409766648585387770238352290261555451331805168172221840583963449046027154258531712567470074861802730604323471107781294071333976562456247715335066970284799955190969739508533819131056118439379873231712285782449449161006382151125834509192397700106261219568098761470640481842602525128977598431519511166252377058078336892294733216796687718621567592223600651140124399247511203893376418909726153476361221250807865128040996242014102226621558003391033648181433625016197347148468096777444104102586149241798471803089791949378800148428969828844085036102218952916491930635713422524473477984267893981760059677052240290545705687384008441651478119584601398163474509239046002773611890263487081116932608084644215013540895767611990734205525740808697553356121668576147325285904574945747619976094365507871781331717598723361012353608338246534325934887044694651515872211641274896611158287966770709033598397256572290696590547735409486431798849261900372202523616288591573858266163891572139595665377928622981163571102781379440173240119786671083202197290950997342095015600091213772641546231628650511705504790481711545219646466797710139077227600105794375904886828796443582646961487901057276233681175933770977885427854256302562395353413235609509832317552590315955925998884597222268636095598080097461137020294921666333171075760107438470433285127943606422482276089601262784606579311543999351454017917573686476049895888016417139755350395630602375816891801357554908496822498596910704472117469357366841377550754160998917472579711980176976739039312355385025011506659025190131146919143953715050089329914872027566601653381326565581925558963284208710122975712370933758320121975022258332510757515969413052812702834845604994303068954387875755765685208594450185622231341757026961036106982709372160796053114328917183915721933881137564101332096333895872878168284519586867590891494505558927911398468478089195431518762882631386289910183154257991212478171012163966310665564599870284166470527576386813385162333744489715375719578729903626547856705977610811290215756019279292586915173042063523179410740298704953538223917397735714059987243003451053897815579676039026719947968045084889429964241298306728503823083668725905486165721006847202519377006993629068364789527967557014580353241169204765173236372261443500147405220969195338330258431640883361726984369921737253642686106919092444875051876403072944553178845957338698016959096122718817668865958245565603836510243658342523810146138616286518628100801854587354260728870008123940766519933378449715786434698771165645704112270322704738804577664805625668375569481565975550715251083526838352444667057631923326869136302385324586435171352104000941099950772060912759444783966695225823776274858622688700992761524690434233284659326966934424399756508169576093019756224158293819400405275001027343201894325145856325703644373405263864642799825787556395228309370457280331785196002224319726793696248571587508130642205930565200570475042048453188295371187801369578227610982233005608340253428827554414359955140903407518312311015181628969983257456789274289266877829859395279705646459098276319626132501763380241585854380203580222126328296447518357027869033093652602874803066228487009409532452534378148057993954841874445058979769688264098363363473732405745659937435837259644943130860741922256461083580857024313253093418537949468690873896336764919523910652717863327543190298868467703004834168034863603845365279258759437346001771476281515648840300029747178175966538653343103522538851508433835729008962369008792523144578397528501812515848358172823744113805699024787018102329712823431619306903719379888089864064301491345171072274979122019596856325343408246279806572109203831797751327780312215979815813853802352376431405550183689511600548495917723533158638343292766064585344154988463013092391010678084453661045417960204706416110873528761128063524615859043666531292772260273894417313511146572248234276412629518813334377682061380261300188797217035547150128952357442556972328069998245214312882299526173756557210750965232984138876526263218354422530536152182688576074442005804976818250772542068780248952486215453168602244123285615800268823496868234140532973643018937496870887660073841453203419213231605780398733280408425324677032544186231188271965825184152642962481119405381610165240458408711200190593237480693243702680130197562696902953325565495193080669356930907396983104370550805820055965856399520030828186283145976761143946024500948912674126437791568668528978055337198582069874317404242884622583689254096196569776647903950840114203942240572630734424010218461941855572021037574781526325801831876658560628271427428033625949823242239785031184497951943554849795125801557561168903821652719680792882021993799005314134717150630362809155554656917407932801697794988334192533108811017979401237857410388735461012601443350477651697997095906639860036409775712850604397959416506804140931690238345242412409308795631223663757015312832605980417210507412118125692354770724832277710554465187246426567350279336068926741935944453198139704362914303474723195450186810358714508516873235072762008144002668892577532611408137808898443772462212035235709365623443241685551240192223014260456302942639037221539103783605889600220309092461393229596580440713623564751201386682525641127218677826193233945974290118459901430754048216414511118699276281832678271569435518630715953838000055532406010147840367057744655166308677844119341678584219593923124180412861978575280023680518983050714047595549089494586983511740981997385161841166432357992371844933338153597571393801556168371748112670137453323022905788684582639729903661350136708382602585272396721033361224982446053680160556550932810466548058677431169653191353974249405643718890970072078139113529113288146790614100306630443571327835786819606269813147620007346449755301354785100409283266020594519689842701041760285217725215377896881932772966405465139254006507509640564634933864025836948693391572614092117379305389149781043093730099234877588713757629604583592974221885804107571841602137677661470532208604279028720503307412612016652877084135569253017519415868521936685538293633364646153620997779893527781863763449970589876280545961043154568313938599911731751426848848451139834948461898671832020864751349856464248591947948305849036280367442520531709619305348976922110006862119435887234546905500567023381683628637970570881820125909429875461399755145065104804598347142211014829397654032663236339022247421160526870672789096452178869740399899915675057115271601680606168561472912021565460848862610239530648441116811660468648042738000782334313301602725285952818248563648929028329666088122979415430121740908811813892390362152050183855927995898519896147525837062970792453729973825150737007974179050769277259057559688831451289767757555448666668504822714085848000380301633510055869960449864875849326870543766696458106642611303004835719198259428491266574690917718779014330029900035482997863819798497711880863566953678878567875169852311461852522627976022523719213676423942571531958090524274300162182998427872355480726569837387167887777594663475368483883973771998451192983465656476669280597819044655005379420380430259869724738506317807862454052001239567738269205410555389791208131492742613145358337075367020082991334290384107330503914242102594105915292979707238243933909027387598460913425887906102585791721504474106336348564168313929696029712813137360998310975510323549955187893446858481256820505761003005547415268255957673049473117682743218537454148610888488520758558365917838522195865618310704517278611495014000141243397753850099893387362185181923189164625427737874813256485852280752938555930871995917600198689930673780393449802184460616050264287087245322952456801638234511058001761788229514061217244094960071756496891011735913134883904846368108778987461389007758785769600070664087569588048395387745060148317717905496424077780608702326649760083901224495387421307290723540839131059937626915067060806576545889098043985766593645266454398621718469240959459660820279656949339586673813905878672600532635108427936552150923601494758535487415962983964013705236416532895873276280446198240114155206428790007689237895009092512585658894886864218957842122744124763497889016329146965630847836593612926261416023625020667650826098404388162426952076887592127866299153386718028327853342897548527716714035311833732956669355703876370416082506079786571340993565829906576162779731923369438227664718173307642181405536395255279198999718036606813534542670256676004048508095203861522148026638830225909510267160676347573967713556295407343051281814991063974268038460181963902337608845586251829526458474342925384579620540034835053074334134457994673904893436261537223899925270923390889279234182061775571616857796057276783007584963220728086198244684698734338944926939425849033923327583188522943173132244226642697840772123459376513801259493897121412186356239836168761599679757294998583681495991717554544876318176969770730871222370658037664446652184678850492705570746451532584386738296809611432454937512470124886315880247861373597559520053722551120357147535856638758334867679937512863882248036866249695004133923539732659654035430482969596556437314211124038529141201828323170900251250907287722433352157251374243106517490456712615261889769305472785617262980561499395527497962368956198541167520851084356893952359209047299593333176511896057349466299927865388097329560669169548879881212592126799078822220148004972711564159464330713086098347934148466957873738042899383071163097324011871200637022692362483149389949513777702677283603769146479603473161986938099246025087619558529438234964007280266183345540025330020208726662540591454520656928128287622213597291297291906201313986405597944193662109036555064309465904886612582848144711097835704865141542122954864964775554276054694344607978611047778991812467259833015844991593774894372130749373354131251591224812846624522159721526170519810444847779016448844660994047896164936175647164145798492042449773177605093541294092289588990051350774347703399143065311316130038269144355461585722008399474990789309464692279348640672190411639891316997886146157468925845817588391394688730551936380656826001000522094170495864940283465603304841647481053760015656414662211465213701798067721518464862832073086421408804556684131618636944822022366236289218636282161290547016643168333630361296641948081311757678593954188699552369211586307522955837637626484539195131123936248575950926911044016580327019897460288802879132959900672917656984729042581558503969910938274949812362531777989051401598584767855725581762848015193866141006335736886198508206813146264002629208585601039023657844285195497958233064733871707589229763176602595494033195529408517986615179784824480328322595840445861116470842393895751975377254130086339223358996920072615898717052877983004826222565471527735263398067580911204318093450784801059738420427024429865385277436745529213816291189186626272376553149091341154581166894688447396432854966312908936351038210202782939727380740449511356325296255080034500028559592143007814076346472320349383143805410926377582957749735293921003172698614747702314103538623262766759440048242120987186745783773207160993720185191735199060664366175993328703030316732846262387671414213136213746367507307155917091181283349335360969352151041054441799644740869272890664175308056690627418832141291914282099266634804749829336841513080023464742754697567436762267977047134358844905389867071908196774536910283120938263370100170648151182424989633215101123336050921994654167015355333043393695306742241061522020669506345590363319979765728271809860556069506245123718839447823568087649425791921318572830662359881193350488450558995836183993949848209632133048983778866008852226614155162649103456940041834038315271470987267266091034941006739502487824633689712783773039248362558693587070204253085716708163733315405573439365481567614047429037516027386631414063831612352389227134614631861038032304498361868077503967800026922250902678755688968706635835160020480515764616391241505923120252014440499910400332787972022203061899319364112464929925405050318034430279664560275245706556921111657153932501033777545853340115974825721130174979486077566446913700176695576153783588960010479992641671697055071674362122872553616017807170889589053682254832406545329008029418471218987321498682329477385921110443682877283178649800746959953422184107794795650868011845808307820948032348996311089455674070759229974703425508686798346660028880378481077121734275127384616917364818820972569539710519534346784367613118476353535544137972165979138314361984574040687566107383774855157171091918703927770604355391252905762661864376601310702950479954147093438081714351103408826000910574706064685363633704468219039307813788431432200711004862897102476512521283283068359465803677996775666730347043941921828670647445464153871471638425858641068219143515378034123732075579863308451986567738156571045434427101078441019590769132738830790017289288870250755048991788227939872356829459168321409763139174174324086578943355998909737821096137685218539309400828884630629914864566808399346925853503892423209136830606242278969168324701481769024152892634232574356738131325824988891605668643575973299184072421218331729926733408096351396155764512797462677746522978381648262652721565799178766183903280498885514695908335718961856087830110212117198747607239533689224601995686798990676027574725181713603926239098243451375023839050097185141955975483365285163585535771694105669104044927803160608550475025812553271263466549404248026756123781307849685678496558506053834197607943099451924563258207510917699732531318500291268330753250641733810705327354849212371506210496009068777573688658395269325808075614774526434445153027213122540610347192897690726268271914076679751703274468796712287149551823207799869685939730095721727034326527245810701421255330251876450912361622382092670823050951582857969592928336313924501765935415825085958292909336701647814365353097851678444688247404995028275490368316215953225569578045945237167808394233378197158163527220328463813468240548533542748613478675547020531241199064289471575732360215218439096258362481342008817593709718318888508229731685062260805876152554996976881931347354421418720340942062097741209424307362859682845775134444103997796613925208376077270174417340400553761108630416338322478859070027241098736825585575764746764684143025382609673366801255874116838838379125407561425467950365019814190108518594891356816903902333365296254252586538926187086483344978020598219490797351605049968178762927366003398269225837930410122633213686541274295954141677017635203107716349271593278567728453556551095034524415622622614199465077663860249590903140448310887495367474209459960820647101768040684100960803628378099092567463034937878196328534744326768438979827115778950411449286208534097076772541092502897970555786737040742499337839687231979070343486698901536457996948861013031803925937485515066510413079107226619290285558649188190808485367182344037132241569178994045283826405532489413283219220276724091689250165035937169075447286966129414308678031427518056015850340821353687116858258743647561320871803570884358319135885837148716369000012553296467912151330919122213349849474626997959252539296662491891045702067055266451415992073440409799318841956169517788146091258503432163754904914703003719781088614512796732152035996803764309726803247879098186156601889866899683605517380133544411231055744447044086993410173041547338345094348524533490371187668388928025543033564609115652557329292479192975796441967133989465890454940843528313747929417128775901401146097226276178333942221170848568540267413077343883869496648045345026118302865434608253196940716900128876697395603981117483650431278258439402361221070179150563407425444264033605375634426275292599230170512740802373972197581281712336449316580227396139657806531328861021505624951224626084325749155254230903719024303050790510571916363399655762308261505163537067058283735639596918989773560628109583201905046166977872452973181518904948252641821648123722186804124750551456677254314154699448985668380045443853596088296378761926880969742009165718032972823030037119315116174912034607167242030063682060747186809078668419919283698821193746806534967369285757755280031761313111039089493010794415950142277007723597467179725918993606151280977498861211910546553304012929774838570424847226736091193082843622511991779169955264750965824935976563750209662348358658169295699142385139670958419917382344408045075392152078927047854813429148249776229297706418416179909845958225393240297344262161318404886214444046986204719008778270622984065272082054993483188617287128981656468974718696405426351371508481441722228608298781801350709636693083388921633279851456913659560423804443882971340934071775362014278019108183305538389656365057216530627271155196077928092262968111045049937625728864309824780475307164864141368527074311977351448466317465457090201490210524317476803404288464223436933438533700952229828328227390437740460506742614320837218390553399884936641177628496873167854567299141517300181824774037005552564234449437909551590316154167543315219273319548411047525545811108002356952217622926591410980094115131688615127349875992851710295817402793913999763692535546578420584413338973300253786751576002439987408304833892795203542917108438573067364762830483904573735519383520441157466537274381890532157017291130845098463879980174290074083431017707486625951915705928685137528138054146561378197234101467253384788157997462932192618392660528610095724398454297908397626916576441963336631373206739957367097329372639568069021345846623457634437904590902113289902440148541535528120079185899155136938415597483163287132621376144475003687004894108361794723991233046356539604609837561911924840193460675867126243267457378611953127387109737230102777191048004898509293996877922710341568241615549114737628719411348755850908007919014587708522484457849987710152449187548363613065908604890338593278390464483619211521522348618160160513933552468800969497213525917153530861837974066680121976660971614747985074446575782526682186359925224760528564102280293861905348459070927080950853875869568432309354514818130985702519654774804161490218688914441997984008146036228849997604836342590227721268321225527816448242134029561714343111028723132694616329105294509815081978223103379734368424101846099195900444893886997332839886375892926549939447414159781996511449251893982661640392216443521576279203452880573622587164213428225146078828787102697176399781196810075278667384991382305519975514700833562962743738922520339856538043214506197285730752850721627447820574350152337995441274839481865305931265358732095065194334368538566494691415632196448725236069745904804828159628328632738223411675961032609870646479247774541175019846729332222652117214767354106898721893918790386526134651829995072767698232580724224647512620550910308788225026828340516606772139978409010571349152696725342017631640987348212873993376968657729595928295335841352198885148673488578384970976259357469026010961946496213443127864405772397442049140275649824012068812664576740488700089833915124218254393798265267327964195518987431997314425672412678331035247847071572211065003825930798736244110075708255224119195579614146877889681582964935867191666319829246183139847535635939685113386445653289456821867452644649795827219495382864736982601527623524081001687909277308285988878186346056760002696785803118967429193973611184643088658761644769728135460615724074906989387891148690341036670448667585909976201966451356768100111877758587445265206133410805570520418954052502877572767088355024771213870193505785285028286586222067425201552143771703846093864860510879061499647016734153716418881899269642393585571601842826311578639663288318253850219383683123962278276173134223781656346715529657579634701268033004567023797099686900432424058583864909958840636294279552186989464739030515005951210905795416864241907504007148300190220538614693869790463059468100417127590635663400032298547453639814162468620993695556433439662527981980604500756075438195756279830329803913307093357140907658926538345610737802938001179999018820770093639498030288677886342648330974135929584304667267154272122016836281988741103417811150920512226300562856186995936082949757249705542849750744792964155395047354128551444724657470912425069964590891440344093901023482703470916643247792432603636299781314095773930993078463473755459891290935663364460750505690654444801227043593846657227224235727322758989924096798448716019912321954928433217995170649031454198162115992597380463253105985640424681342567186721097346163193697194191539793434665093498585034417005098792152447525296024945011304956807502182879253679496532339057800366908235760766313067463242386825425416023117895405788805499777430550930264525236121018115117663049842216636843733385469259304805269707969045817255982311285705650186868028822778187355811411601417001416927927163618621412514768994389678076943759416884098344066101535125111509166735200642390253924577995551900683184536444730327974785289544704859906152586815825318743112934600132313057522341060695345987806345312919446038704313219578384519593799520611217521461071381674728556667547700520194347316623355145945815454109211799535962049026144245450386869385109469097117997164906025559940914701308850895025132150436473789283728671846937867958112142167383657001491339983957957310751357663497262304504451122362504291454133310666867507865888631194011424281507255342210162693605542789072796522737575807412049764734978259529485724998833925857247287118683582192204681011257067775298742978654835162150341480049771737655866063550109077828733957506457169542103151106177025503352594373203972638308594248311532789012435027737826507315124626834696024553306466991288000409883890274089242850915974328641739751105627131052828652752705549224531087390606089518345562117351721144786448086662524286060280140438093027067966875861777948623354235761134802402570872716072492963039515213226539851563724836737833782758037811743804572813191863195844358051837836141844805876575217172955983838291129006710841001951958152438159263571492473565788908919115574202825409963500815008452352315534471832045798327573585470284241606128464646764198906329466923901896614608702318487721943331553866687620023596121629455910664075181307603250943916138582644694793144336920484729522602061183321876838551832526481562395298837689257339577742345790514238595849904718939732555922996050311096489287831766142585113632058046059700967744708620180052435362823377568376054856669639856965323226993689379303235851357338846773885723516269832096360743843462672349551171051356857506086428673585494177597502585464064391842787170267787268423770904360495196198418774285951530172833701510094253814420803164926291062421524125511900638625201115201064835655895632029316407890928905061721818286376842623226377812130630533405829972814929784652063939355778913591924387363978078828635308568679168237351743229829215297170867935962204803603699773646986287516266889784247839584890794734450702246715192065378817514863856354143885424781707244460401944656167130561413311211900643591105454278669520132050776000044502350123545111366566908894863701523465119412978696254835138163138650356826307394044745893307017881972823178733092313037051140643129898269744628041314838008603322175206736258026861104569646683280122244338324493803935296214542871353354199444685496879539653469093521669601074378170788106510334779677715352244271192345929305159549754778204933320810718646169243050213492352650196012943875466568189227942501749018207322347189935481306086733274268557245903190668032510549197617018947889141361955185272313514473832797189577731695693199096889499049794551916290513600160790859163086073174884020015251442825330634267291967208784916710719164885007222941197398816078062190911187744135562296882149891982149478868671191668566059470504576389394732748259687245664206455439737712888664999556926824389123534454278229273034113845448028370295773713073129634141106527642151247154532499349739482627054516207085739632679266698750358423269411045530679409759479853205209484661940219124881204732659490726881553916765684335502270901709572124320214480811631356018341310973951585475487887598576716811599911022027918469268939501195627830262253694503085328603379396921315756204585514059745283830886591190656748705197504058558591753287263990376546706672891832294364932144823774941954601789999352067057144099734189663767186837122088660608756966056751600832132599317784346594625087486851456996837547184791397220141379072959563023124481958956817165791381045652608016145918004642741876254585132497961187392704493030877775815355805218019637076828284974137651616751328669635481161046963977079903612973393257195560673324284711754918035521981340127779225403735926740908706875829446116958608828170057390169950173972614030349450018013647849539018355727967078144180968400172260786260498283192162797023291296341077907797759099584181105131453023559086764609640774790913532404496609375872517026975145960227428302871950085730271614812994274289147089435591857562894996817419833497869123768534390794437932200216429180412317438537194314080435521665897341027641555172041918447226883287436583415056487473541867872244667160291481868317855333646144995537172184914047547718357764486743357411781862529642902775466532348019030873157391671836754272363723297982280547252258232203929969491790008516060666331610218107683181873351253586779842864745680995050412959256142395422082436670557392366582588051579645154306455100872068853453568329881910697526691521175185043367022025143264096470749926960432263253528730220958504862581793557928867845123618915561835566959126449221193121770290531207427331013694615469451032346528476901428181086853089594292740685227587096433616144043078608867723211324922785417381349967645305402362877111717097994659231794862646991965116607906707221843032713516473236895509551168380617183435387307185986809340267293208953527510877416645847543443732528822540082051438110807118027344543488179446956503372496930616250937571239832895760282394672351687829462574334679501398456384930425512600118002300565168768895009025063633502767149123332387822483277420656728721263996161933760281801080491740011326823485786902299130109091009885154536451541798420485439407369501667242459439544549122630767394387508489951145589736878283762460718326406380457484999769525930909023030164301623570597650860995433944730427939835879555197890557628181234451212578849178731192054579705558176314649626567338721719261263650005000158308035411847680329047371942981043377198246888201793101348319724897077375338781683589668290525859730254287685364732569090703362809844621923980036980857243693238823995266392627690018484868398564803586914595527281275029921782543586937646378750451300285257675800032858154872557293051951003954053901370998022280008700459636026749698784923269988185661913804186640612260354800803587779431829361721071426727768284336722664631579608834822414632057193840299822622052956879889567552470978413115804188948050928041205231354288989312839528682552205606435384372106476596151930526279479875560699147610516016118296361376203323940177270278266556215496632356535633142304935423828093854915386654318066494368457899189350975549408561116527282687880242397736126339143300003363200728140751416565780295142344475089042409199519752435709085357283334838596963630485975309620438091865711546096780080571363054492556621680210770604750153430269877387398166232735994720695135199904164991930989825422671569840504991913276531520704379719896803976346724061984126800658304260887235683071589510464683667474336157204342891928929622578153306015639738178252922985496187614075624967933454070384051734085630327077272967494171990143608038765119416159778805856369115435500161333205835047963833473956623548614992119229272522942734473079632109571892816418613582092326306923853785696915043349816534963365352004893325771867463724266318038680643440556932654475460962150354413915664464221055546029396691229093512596441944426456229317830629998606380058053002049722865146573054035063057378166551387842653274671952547256966950618538160991631773810836130150719869855103405605105563838105473519324520757102268219422275178968638432510809149037967915524684428033470199978307356734235912068658737528825390579156320189770370485782381421865692635581686521163208405579057119303523815300095888639673673018564319531086084544588001626418350364003025596412259549679442088761569938017798400372666063856585122827701366322181468523270984926710727437794504864733283548085036511852661494080376528040744853590141859072931994088752878601322630882892726893461492173640773170952326501779606404648746628461699058152923154994445800507771420376560946606106691935567370201811327494454532729110275318356551697006361330026048333692423089589293258132592402307901275632524288956559541924765528677996489321786693829908560808336354220438356805322993082928787155999638251320753056882235651626621236125329754330119470167516805122423429574893325929306866204516312569548631722809769880633931436970828517431782851746399437762290000390531214532474131716530141983806647456222141863273353673454422714676019390532539644587563308719995675033943680112615873206730932087394310064167004331032305977598101811234841133474448020288198277294363243676251679803180438292773384819316293026608778079640194276799007438116979170768336680329606007957109239014782556345671952964823498577378134107525447229412502741207636730270321464336063379379013533201904345156937511583562217019612603467190579498775521691258015985003290466660791295497936830694935994417262005850502475548825099482260932513846466424833802935098691525253663250760267597318271845657377259973987934968668351705821986645948686413987239136937019837544244647744198614015154704771827089112924513568355621114294860901148461497045945600428312750751892360232534237041749763607135596333444482783688677507680581815619014041713348764693325926349039050377190708372861720882177118126569898929372320278738540724958268795959654521458746862787415497154351665412539733108752784762893138258649966024754053021719962651327353164011337557330232120901029675662359095686404387818993064956208178864354559622912095245539190368247944353009953654488338742812563735185465022260565677198975999090755794427039223434954264406068515049111395869986761099420532211542237358695095544885469350250676886785193341339014206594007818370174986661465305236622244412447639492323928911152922224918162926934117730477897889825631228496707098169291527411738410235238277709004431957345761471812881009548369916426740003585323997078157346419500139180523297672633576092158671673002147514815572560586496413244236920561831987506916538720922121095504629303791344125688429793006634785460812885220744618202341568534499159569436583609989049915610281663608847788837790841043111987479532183233757546548173266652383357919282308353434395272033118626575167049373749247789550716243207474031409160585014274290607920917430803814349223008880228905501397870313943572523485758565606246025687295020138289596931560008512476969358350083707905430902057090045281462508994733608542232798023992771362537288960437816138573049426614255285736140827417152199108226661325824964083451453179894121607848657745162871347274177224436372955538234353138270339142482760625150979354033280912364152341866470324794134483342670674210903985879266800214792126191986692593832044419711414959651807346214072142578630450325478441783387681475282942893657530289890320059182522780939800146585296805240047363531779261904213095328214173628313482948244876871799935101950831235326352512127409772464318508586747408300272782359308446777628931440779447578238695779774614316630608838981314631577541435502461409999425085679326549379230929390481140834274308088818664796064291481901070401311752766126539657034488159104596798258000896478572340006362048361264566439476236409604124451302200260625676630795864677388318482560805181330924295035164180613889277618832513459041836930847491803532625167444553184651361665034839614083239542511097225115363008863414648423617522894500916490797113052819478016491131813017131911947469998191990898795404319347722481585688210955940049103931360335291518906545521146693156027303825596795899767789969835594536993471999704491453536508478002380428839346909906782742054993966666934741420477560843617206280027623088051174460880026837001034046170059513317287860849996710089642140217701009973566569643468299655902508541413495725779025016645388704754272166947650518501091301819052650680669096980958107698508325103785234893489158084475055028276073913326213438066872913818110735226985101822826655536213610764203377256970218685836240150826966438894500423230787095107748136382677195219433338484735231921475371430368617933209788529945206201846869471278052891590522525110698925694211977485698924758648421142470544916471393899752366389427838025350913923792259066053980416638160335465655703162060319720351404264610133876976605299404104932825508825903244526451576628250931261982750184582422325549027874274698497123166728857652134287396644787060470586290582578817759628402604094803204890604566261607105856571023355305223051697900808384149663150981137404153856348073504635757132798261197577345741708911937959624624352302665813734552488830275011040937763332202730952904573355049271178217386669292065200908480715391357787380215353536733955274169652218461689863150480133752617956011919359989888160476023541476517590809524370022313707238606054841511192646482451487418583506440646279160552221729981860360944796548587897094228657960186305155513669838304113388471791995544243572353125704065954216476382322558733916504895297503905507555367642014279418858779573245041744691358826509025189449453070100889922424697540166912212215886208631311563799291600133755318053821477232891902721609174378745573944339826539945892693239797550731663429169566833521850956352064644814153014135922403214239309517247915830064879597417867073195966261265267690146286061675024628975194630304366389107291077525326897703614958695400163407322858908460929226939704014426982442411051179687582965021104841414213006801558909876761853110872524310561662184336360370949907851950315568835696074930127298942522948812321684685628142546256630947048802515817456926541233873505403730558782591981420703619697212487615468947501193517362754979960542800184111369445295577374436848463522695780277727249192462859970738367821098708062573809494859125676065562845551738582880768481005599721486703028469011246377717760525833993177070514892248249535991485518451664709542825570087999966314784226189818791314260138867495165809506559645697383799664995647559478890615814465629685544854089779867697152856821097770829792579242146807305481502198763411010105931825253834585267346352030096944969585201820919693333418561444655420008481254791736498928967479843617116712750392611479489093588270872061661012102713960621340521337901968226440809115172702643711986288730103297053534889819609955666425768189503694444827653194632265606862248228544537508302422753672192103914038432992303633845330182984832683385799674806700006998512363225612077969837849875923475076531313256759312526547325137768562014075938871975198886477441432477991115853337427761631380360878483767237544807530938968213672910204958443755853381883455453287981661078555389443793445440984835464619712215745779307075563291877912331938946327079937950211522889538010165232187376758723752194395907237944953291352751678552751948137914203922485018356161730079131816560746175758052701930730876438968976847359318617900500733709013388677860046572369666834194573390649920806328022113638761711245819634604137553794845162972245994076302648031926431211432664646995878638964974338833675631655724245923763651753135745108922480170710299603779417388833882790354822567845616934974869583241949069050003982649814747238178536730791360948508501456862710199119448509489262595367551310763321289462743147838640393743983157656080195459781958801070053988580439204509417293305098185227248072165658944311484153883453953209283002322999782053291974834698780429345267637957296169182042899188265049068047094255036640619843399993934671426285382816876051510256254256189299567737704210577708764838201964988982934563374278948325768380120454989536730298405493063586596796809133411746556825496526241654973607435016197317630096282696050710476357145530901577681017829779315360923403066195066357766474997148718307981318686908162554374052589925010131233893561450398083202644037502936111825774956795638074658299688218165165508681749374875098694045606596353483398669675540811863169261967984212306450020530903769570759223392316573364455463233996316746642003951583336507143209192860754336812371779652661723378071173605372068467311255612624937566247912654513022733104451886843006089763235563642746141174556461695600393146181282328044264715847471794429397218300338546243616790566685404842070643638631163390071528602158733766592549732472120758226531395984430926509842053452508177426073432026238358103573871497877807020285062582359401063697040748661546558056524113037877697971291650336380342544639185766294759315213046437566766089459832099586580671562594217065358151456437744993074161214593047185331545966168230472569259669423425860467595784408639221160504520117927285063814840017140203278427461750436128378255374835670118376792421860720716363113581107267311525663001581697040134411053863197372820903807831136381625858212608007597641421972466151938999378520208693347121253107638159909406385688212962918045569134817337613898847816872371788201420390990865743028680743891640582939380088791002452097477354400507495973265683999358168630854391757828820345592107422484939899880159176907541988746780179805899132988810735769941966111619227683182104813239241774778009089244131673709643562584799772087599873458619134449906801366105265745861495035975736649623691261024734125166387356897002399728170799375846213646990973153588434527883676579623580119146768480111162362835643062949749728917260624298866893537077641449519438462764814815526306492692542233657415227822965146142696248341685930591588266649266855949186065532702750722795642516939136678185361218106447058941983471973547889807354216181104129828151262498528840487511859733261940375146744383774806551048875886579526284079943445640623411075555744625687664774937021103861537286990235285336594946747956192164524753336012077817710768346979117795833992924039047116768477680699562432317340920299300573436164684551695030298927807367240772810023609035869838936006927585865122722163854273238372187556655996059381078937927023877500729562522473516752665447785980705686556236813362343521844188931929398383491204973471751786984203303085563101189135247814351456973011378024069635586913549359088280883932772623939139220522084439816614333898218822741570544818383514720399746885694276849175010698204646743357243836591459827681661937792477306250752259063625004280100975087796874357692817313965658531747310791122585082990743553988541691555111835034714894506623673090556670243920998073863181781135459780461479693016470396861035261725238703826465769990448151203032254414051255811716238977573462994032112450157985171659407278383827717782791742275172886808256961929658064902008160573912908959485737861628943990280257727321506971328664953430837365984219494759649807358626675095977971026388495470333004114847654135654526479096201745157873485366516011498163857911424510765926487620602981601288414679826989099299167166136035285606072575481166188911755769292147679343205548598373200891492437358378433953243045741317489212341370943039641939859531342526191325425940541901100469154807108668338153370580777569034894875391034210820611894903963691191450594333581206931442552770316626234039386945154947216352689531988875227239731657511937075229820904691032055337819551791472167114351921932012042322319439835776233482398958002386688140260113729703173205633519790125400871934128199429175630143212040586553331470502812276377043937542487145569385664242309732723213461761909221439894572823995125526298128474508886276821944334476337386042587586875744592194076442019231434146389515186863204845143314636785352839016643658580571759642120680483548270770174085054274259433495875371484211666427238292248104377552683898781506781345406374478698531284373169295434733777030825263222041640966279316680497124552497472849002894154159091073489068744257665342825906763664502449564514939060133472798994669510648332003877621230064128014794904334730311016401823414283398017854275488979824914254222813116272500840803289629562123113568536231666540202171152869720795872896618375957234835758669807138408048909446310517746213615479396065360877527979407694333517138765238905518718142194519245064124932571948823489998239329885138565063887894070060757714083119475888406312953238658806649477699386632861754560667966136311696469393482394407323363110706627979396820410885160540570360925661604791134199536856556778851580155746163398166050678987671976154262665412911701759292614061307754110442796434853462806875732723006599169978808559799726392070857008657011788584387239340618287693622303701919793586026290025546644126947598617523338886888906222079497924719598103400181606983694882758561252756624550199946717809534854198053808350637827854587331560650637886026488003906413585625081709954426410784298703417489692539148952101494526451090672145855339440749144016997645064063116337865395717451663728740398887214748598092192033162749537144368229830321454691072489796419742574690075043703815820105056821576415402530932941909705943161673799327116850057449718551898288960828178973179162792385961634944703979777974556296979120024440989090079020506840285657869244383414181653220915353812145644542187577327224090994646126141661724962607937202803170439978501534036554162785658135028628423643580418638725630878092564119025701123003237569917691275317369647754392473251848689875509456436116425973695749310040867450765310616126763783362712757658133082234972047881404328813212610186594241620354902894455190937677093191980584293574648597914720940994195588077805390850776504569637668338004186631974557736884020450724200990703359582391096771347845689406782528346784901658372565326937642857721676313031862742770596128881923139424784768126727373205894664156307307674427590347522918493503912566893927225052179424341705275842273273766240120450587333297321821281768156307148069406969823802770632364249478503930952279801229888463588116862319783297298596139203064664864685159842946260532598736808467899090174933702265625205678004723737432496220046134876853715677385690591349825309508625264614380163630429237032295766800807791772777818672493708341553956028875392572042041948205700618669592925794589587217885425338239102021176169044401093614269340710868345141566565379526029457440807960317818930003416501835962932001005704809541405714839170895360116032640388375001344289228315010949063819997796393320535005359569608935456379030596808630808474188441389910245794039795096054081775341533445906583442917754809183482774821493313182140495164321944663296424215543088559919201373881218044779431326229605060100509407215213487174509634715036565475945451425828817565196023447215918860049669071107671306659778172987056589870202887133410576027087201432300478552461558637062014273646295127832155496112470554683101878820894599542496437466936185566540639588133025031199685793816605139359084214508195058360421495979758672984475733576638246628576096518298232454652694137544722650009034815691663683604977665789453387466785810194232883172937421729150818417673050077795341055033751141399721763800506826222200508664894146599813303637990993797604758858308403938635860324644599731440112274764591925707612092421769433986303099385120837571499651459704344730288770826153735546142399995075006429164701140164130492921520201655109453785065933688906992078915838427498579840116112655407145073648011575261435040249872638772333838898940645066992377078097932434520826713693200745427541827018431622549623951464139357360368049524086592569137533802694733051601628563353562768136926295194111936871865816657098797234627484004390161093580718925502282955948169693978504417665217512799447620997668741263238988932943256275358876143798932620053633715653835500636699753856063258021667397166519938556844700542026282810858425359604594202079418001382336361610982433159975892232350040302066591637260779245374052261540193191413250069736477522185526721743011091885511412371956693494931260357270238018120552824840754626584641452496041866183512926565279191872385230539940407361122745574160561345725569956655322224875127941752071959193327771486591917663837920865117241210330685876636600324017671085927124920553310781126025843956742833506623701108853989633757798062663610784289818343729690389101550416222806999753351427354768614573656651185700332143740847165514784695482381189880955672832779625114242308683169490294086381011073888557995142238310958743377796831074341798463137947562593146068937800053050818263168120466998754085694129577074744605126044156224254672560748901960167689613088551755690100773123138376908814353356692389727166735619708981787231161768258931615374679620342716757700310891624392551471721080345877099311514864384182053525628156553592389083400091757834045584509754967292619272448524507400192530452742749361994083127173310519722293093992179925401479383288763713408938101094558443723059863842464487006727885286551847096989808747066962171039232684196970161901743478493244238382890711780302198036652113845956959515767770975607456927062178945410068678592234547721889274836770260013912908938972163390619223308001133308703680190008218115580228119146514130187909487108632690042863882301352742143778956138630662295423772233677426913087516917044322010631416914851098018394422147917129716437110864136174978567787001397806543187013317892008293677163915365015557974750168983453751647021588971849365563137040734531294361567080441193256333930318792215167667274139675971112252515911465394370089138542625288492830737461423882816301795938473581092230527737271346980079479812667893302582817569310101164817988830804313382328907698187280309486702729415041858239690304018560733943740335858624410082572224198355966055611378271634363982563392833508466128176932550701213856585721544628370518898717666847605681161411708870268006555536525227275660428636522560437129961665572125861041127420009124076324133175933557570044340962959580491794928776408999070453373702665080759901811625780892546853949487762128556705307184480592464284131549062271140273389903463457549664997157809509704783071606167582648234548683939229393194409712213764729689358007995987214513947709985689229423718647699321109757707924892507735047175333353714820879637106770841008782337735874009615379125890719147895328109652355699757336101010561099160585398679259234301902673461894250239516875152803580809259974802376256897403818193842267028159736647324538333995790421694992109365710964724346046574373240757446155504331362334364612744803406179569208248278462559254751132454092849451810010677194092210504278227000830912491500595806316382215701482614703915457770647049055054735426309140333032890345853580889117359066132921144368436168562888713717745331729384915205834715227685436948863866621152703535212668883988642711191377291220236501594840300500874569004751896264599175817869636993445597202571756207210050247520457754360140874482919488762087472049648370814090455444834615529237057926509555175807650724281290948635388718643994244477133931500580595233205641390380081651863345100130325394245216620571525178170682527736689429230705012584434514035837090971094124003924176381886593658017564915978890267452477323416045247543535459345024912089918851774715776267006653239511091169647511295328415261560873724133846638448648713959880208500027758767247674480744950224869507624458459096120470172199641917958835383895492468634341316585239497670099169402407065939971246329019769592707552239589843941059281788841296932803917837519184207145665094456914514820752580151909003339423246745880990344732393801150051876473091843146207493326123403455586439941559470704025682245443011398222945040520811229704201390522827745491224382762384643499487515352343001721262756535063450127542055002418121837656161620396017261950019219825240762155143325298714301225437829121774825143012947577564279540988545763624856350412509507824544809238555923361857626968024897922559209261074221486260619345451381818741796171610940125481234590586807703837042408739460195118629974403448524454285355364488133863412645831761498239745192562867728384158839335104141295333461225442582947971830049391242945967051194746280682283502098484450093087063640632589072424624390007662870367719705524311113684050713330117557520373903912771079295456225162537018385397141581951097922948515877337433975293185918983810535673197535655931512432040094422077328412657814031961028259692558912274460817668901028487328024900563802517007580260975493513672800496301383184270550169957761306620200815016363309582734916913781386648027771081934466246779420215398159405080539493034849657003499614481927934623731758672575758831588043162234782247674847488887243591175387830988792926536411147740600122120164371415650486814939648379710810276455726586182091904636445188074692098020778713360943844661572430012021549779626824003332219267971124488285547309015265483166420836550038449945018748007433221220281314160660071692103342741066426843047425583738158239988537268626493816940253075398559813542114732993119168290255937956466627035821992080079118192079866944405546709059396591192469797950106983347377641270698057486179578272886963793641150753167048700170368351583829184767811160440389563422136133426160134644670986822555438653880449860298110927260394525495164752740749328653810284545991441376788640000734714994020941310967628311039013742660647408417901657728598034409225696474129104600676022895420091004248810689817757472996759942067337087856441115741059397859934863545154151116518847907843250606948359059315782357261961375138335851386628601641023957087579934397865176462407168330128290124693761367369638172285540359240355347333974118448288949726668688210074203690139694260495321915847722018361830327580315982971462633532992274020788302772509928123398546126018073179973608344726983026631214359676754789264883528740180695745091052692591801849597376229606802137829801659978489238108761269211745334097172247043779993985468970331244125326161068147391720221249088065393120805604619530009960948709418887192293217962550452704076358182117296512929478153456013523870271798865339736043510463285232785521088642706569551178205196413706337866039775712867406697557070277842507405186518526899001766167877311544363033831171842642181070000909962173752631263907270552344865703192934015241571731361651165253581210381001352142317173554597825924416228793263179019717765433833633272838856745403002447667155886877289775693741610257254977595766491200647704975443046963678135388347882187267144166825466219723015820342584037565255489958890436791509109772648939615834228337757146525895478971065083737080107876494660079015687176406613515707952078786250166391565085665122602966382456576122652649231120225162998574148370293983841829717542635752798394800567383133985936023259403593219355128405547308983004076796387087389632044123107061132854163001320626332039521624605564881987886787811914680778756577208022691350721884681806280424589392081561663393848772555524650429961222289074436512302201758633673783308149963559982301419037954950627431743494306092305865789443118860617558264734049095489519218828984271781825985711465668618917671526967904326886860197939135039085762428601319410506386596598157479712403954662673667636241900661814043056806867816863466963019980160104092395126887341985018485891949410715728801891798698875670930200093031237539540754529652556953247464924209197880964117279389681065806727774271591495724885439215025296232860852896037532091879099594690814497482936358656726976556015668593188397041043904192845802157763142421989613175952208769504227413860416236555617121154931991125257501839687373780546653615684051871375220323404164768893915047232582904553275370855987639003058378823089103698304579789541122449271303862630193565166438895742189242345035867984666010073315447216795188895704250558460232828138620024806679498105877893960569858409905577643123727802003443131078223880167408085966132475130482385959604500441324217302635190723959395697685331731441387759655881727991335774186783608758226833280909635391933821708459090326493498776634692109985887898889439403074871025314363631672133086119137195801519046573407028036241108991681028173711957860686493267563859624126781550324590722837566571320904147477836017664833159998376029563041529970522618733147867000020484731754999955534796992202200283162875962086546934126977299073768000424224568775676527035025304052212240471388465643165644343661396833721333189158143386682604548977590092923497463473999688544416646057169516907466431934066036392524943287555770783444920902245643143906285346765124028549986584441591856212009239897522494555327742592780530743634546845448529634181835220955460260008090729831596686851920927559079301130208171190415167959349181659719017184331563675767361765518446949495047832157296503607355829682783983911133255229858675661552402181570715807373567214228968763221611995263487195308895260939576800474183490226473730094831818627736057139602719441517275733613567836506429893977228234106688957757011432938947821464594316762160573776736992938362094228084377051144798365918104816218293966723871722602393380310906319246212020738003651823222541200551021110739879528666893007988719625041019245029280499269256054710777012048057761827286213980094246558399549586815556275106410315048397222058974191651481715648674909536040624946745501166647190746732008772905339419279166336910060159639907149537015603701706785836937321303488664504549656725563990832829873563436186664024403427395451818170514024176696589598399616114276339244396920335243142333302813536593401981434977263305141456916103860669192307652487390266143784880898684297938537790890384571511345672929749667981525320669963749557689523867444977112926385251104361975260311059487184774708429357302135689632688056286254168513907717152141281159544123152479192296154565886389569862868309477412544711431928989913775868584582298262448010597373640651497313272959478651222224261729167068622557276295292642112852944974565073607637986368267760907605729512184979193279740779042641900816703373122290469381827564924002699903444187925207570564070660382083225471458965400497321602887274593218751255047522818532757368275785119013994480790074102673911858332881714146934606402445087208838295009038751555451976109227127222927439794197108875709136989407334945033568101191696979885277952218642575397413847662413876644502694513061805556685870691671217307774579797197412337008879108484991086939663391948176179306586015075539680286728394810822331876437845961135706039881196012801241172941966245512140627089922384084394450414921361536613548611585553017628181982018713411302124753329925655448858867478281766118238856241964809816525851234159977965127085965978134190300137614824992638576769232083666227638255338077512881344442048988303027168459790830955935984020488973863673114161744364292869944665566068448407476584154333591877753497785016060668755593411876758188444173430983654905318865665338010427768281269821315295616514085241446127521454729543697763143892549049957997556524214346402822900356478192118733748969252405591228769588395748862507395272553725165435079980151888878737016264678651745700265709258600025543948517618317426162306595828474154318579669945678391419025962138722647432513597374062283274223424023627720955795907252523635029584961964125885196483670676538930334599585483487079233186207400070184036516890284812100675538076291611483072719704921623064649426466050276432080690760796442290634318293316967210641258697953283108009429692274681787064754727443981981521801758019132850122445447557382093211302941432238431335226681227165201414918622247110058151624229286927103131355949905447810667010926462325574045525183854690041237906444684063557476483108883169227930025355209558908216158484986477120421520581933498496833236910840135950498348348609037489192227849664870064857651099839985562161816986718407479489818097418767144338628441155103190186895787881701080180444195415912471614887401167543115476157849077666422266300001221724985019397061724201541826718744522114764819438205634928575641203865610628012813368559286649980327077140318220154917965080565105843761309597148675212388705871989954743916355271484695550400755934969303405806435828773544938519210260030073569782267787355674122563002361371962784965678642298275651832788387350840060942226971834839317524405562930013429520225805600681557176984644525159673891180716649358506062646194965752137111193679197937335171447564790763992675171884178559655929300377537953952533992346970292693879275494335508619311263077495083540357009636680947557473794654558871378314163353761021219652996237891550463939356095519721310391395342459190991696322308113432840863762110995003545801292244930749589765275548078245981297304261988349011614864527658615543394469887953134728970379675435521064664303078668696538260448533277969862347934710741758615683920607884586439862336440827759144907737666112753046893381541772046470462040546757987942243225814912865804692237379719220093167397155903521575164611313000956542987876344098620389172916537648961459876018997248542408516165273070262582681908722510614305901903373493784345707058308805583316570007790287291807788830901958019986946244714732252076268812265148788617766230088633602801697829024205888534665414322446146343192012259549165087763084465975683371511524080439304097344785215551219897772195194542588293909065282971771442005104982933501722318929303234235320887264049423409943523419671004428970951876635536137306359420555437080483745901524234339457191130418968282485919767052374311660151660786299463666075521597635691925807137412609612006298565462201717037982285253393962361812060078104234778657850109305557386297540246354418450779733376346147830579303460833389600641472719603609101619114748967345796591603458267821440018345853852879661234741659212122169882595906157285841908144482458016504100238385601937013846552290974792191824950709803288754830607305161469626682825075125747595725763365030031501356913577011862371681557264493753548178227567888405082181799854266270270872936131057415462533276658339660030689081143707759786486613706313060917757927778902626205931398617310651038409982649058788160875038021730082078524572360064781454248601458235732423123734243473869579946457477345428286921554413888957667459263922212870861231632042201805838131415512137573912322730017631224640736023902890579629972048693493735457405678088431256373775948779448813243534381961931070119694960312190713816139466511867364066596533192859197403732143643613965603556624492115053619933941712384035676880762456049344509793201315785696574963079526837751113305273985621003457525982142799798032837825456578133862724840953334253131340823582529215923495817842206167439374711755555001018413875336795835963190342467851973819160473536218724360415875308626866165135860011164733114959555073963033734750435851464030123836724379676793153195899214122117773741839116966326629922968890496331213010357778859187985898113825617873047218877228354520768347187389818590425504842601809266051407832760468563970083338604840279735948242638092239503203360120523833865627835926142025017877239327512947403889127077544863624671326210262469694695461353002368853517036577929032318519097726295051670078381295000512018044246521248246156977169186914424527984434582887365055720318626899915490550954284233396552128969523302875041830216106520033753801972559600840727842579358570498893907066878075409570038125441231553372696407981801315356128138657373099995888946059808797794778220430885442095482737803840515128703429984741313786516533035388264919361171420055510418775870847655410138637042185883703695637628161742197143154799532544290113502859623338314746620660135823604726857021940769864987154729435013722537538360891423556562001538090452527660025583354299543601487572714685148044943122724444565501594847039852813509667458095309106531904992241397466064363271182761219548792748641595715762188974258113009312424450704694246367994862926216696187239474574972972930153460926717834999177510737733022321489652499501115730380705131220432964159201440752609869404039925907945351987525850747557026333522024924058855976407833172075428345237772280597048125062051924780830005440005145537396333093741186634057662667461854648519076085543452980386280092255439992707358115039497613492619935727811082191765392455382482470020119338499858026573859786311937280737332295841997982082094891870699418696723127599432901570628798755346753431786587417171737345752397486423461913767770883718392522252723469462734042862586510107816351406728758893442086678404392702744076765068902257531725529385051538128797071664699599242663633149132015587804562176382040246021378292324891070159071754361186189945892630377107147066345755817229128272463801505314818829954129850801758447643977941644560741689233200196160751105958323320452608760776184468592655607629276505174739180724260174045009975715291630775902594921111045402463725954784171390947929378621951007326734261692957204347165283401152129006842424890864061572932773450897348921917017205240399137157009583044215674936961239744935020953760686081414390391765312855329501754947850469392418448715353223857056509429501502151838550083151075665152960749739726847220308170525149952157108266808292041473358783998719770264421350034589656288393577422366198298819073036146760075052629517416923432389996369838610189774464520544078004821743707421178254358947589499365233230756126786016534714493672795262980745131603256275807854276576174940409610610954427155768347203740186460972197347458789242764243403264737681290429349642253768106327691162383642356706558660015936056637668848653778326096814687344865125828409715548322993267365396473483362266575398205131031286973220496381768081225837961336210143519711132834185879588987672979192519340378389444434425285216194850912411792837354916655413505163247413603765790555121405094849000548590573712516164481477000561610650641010420734912211995279220101312681772888242228896838277710285521522832888725455657236172651404024856775618032576801225184164404156882764501514122693520717744394434156783940847901849019320974152395598187182867606289692759095357669567650351882322059421379648368946999181016923807051772685098566507611248161194590726530487418070314155439531933927870410430422682608919516271940815726596790414242141900230983768908310342702163106959013065806233337351238833650207234609754979604572237752088035955284932391519684299542726434413171759235679513964357349719567308796506740295597658480002861978408065502537550844953660139126637320313916737223219164647781428303155463533590180375677735694184555369496987425972943655394474259470813280049338432355316834452028402222983766950742035413987692183045669665741038811527749325037877246716326674074241131586404599135012962143344675986438807522416169362249930999923624067208070707545993777288457783315058389380651396666101808451126477956760570163872020464043887015630502212343850513063192916997525272132285646100476148267592486683963252814895700773082778790298432343259321656519348781932791099265604231987326072754150922647536039831156379608170494798465884892116886670147075450110903191209648614278038338715456288393856914734611326723324114828577171024507865700631603567521083831735110709370330068474651712583403165655649992299237380344981735458649437434484110870205026547051099922226270741237709383137347329211380735355419171098126259058245180451705923019508809621414090873834765604737401669106159881898769861814775736419718642190970402999010891627843817104195437205317967375265696641245216456017121036241905591972425908920090740862278624796084279783429604913412353503899540946878015651817884506000850577691267664926127122677386711727454365564534718097115768006127231292703702493261421727864827115080582873750177946714936485687463372620607047781243668723306271394484725863552209858575060292539409095325090281627818012604338720432699036376122413621014736510075035884379912323969363909000661637868037774790278123680516928353520240984639650023443572710023399024668168223223802168001189307556245444388275803056245109599149955899808410036167829255409792971513689151505614008895916249319176465870878809067886728593912697031995044520403767936947717569751330317165429464007971048207221019404221232050095136741729376230951763159997114550314206850641916882597816269676899505747850415991738783608468355441055741514880261444157859602378881573988879805340631416472234393169151027443015167090108665617424171447623613450150618327820714447639272212148003363385609738941298705189845895135238363626836075279373185533298452470623493128481111787624188407603716015168521698731475460187676015019934176704377410777034636660181369305370059280248019516516331533280323555845415841316222309137356136733437443254952050106411500317196549738566274947871012424667175097509611788355471458790625294145186332912111332515930593788339434140077203231211052793026808942720823259910470523147969234939564396335141547481798789684042242361226319813643906440477799664615251867913217939687455039012681341624616171355852982362133974853618355403461370819821746972711972532224507653528865470362979810804033704703740578313170876793068284666857529316036768372085034426670703188765518614178922776375775103066211934336992544652135182014049165502104775308751271293914683870685970348922197782571920333346574967205204737355171756279685750968098694136492992984581255598796825387902825625282189542570655595894736175777809847514778918477095577491507118874215668756907881501853196110987789068785836046759356145186856267181479443980017863073081504555141789131926865453944883869436724582608526476968976545924894407372742538811201855583043636826179398380239516007221633561739228881690215528173901294197401386694374498626255971772469029489745680743292548525249179548233798253547201569642811863156322367800451257288889728747708821349584797003475352695653175761851557226642959369514671487384367712679052115227301924888788358092889059751672984377041174721815773302149170611593168282323461620618338017922573023854241036705280311481804300292678681622708798994881818061213553742704680097262462624129889372550531215794621541306861949587027074690575158337629403162858664031855093505620437288098095075777068618594638367473708879272512228235071846170418165789148437926558003489064001593495676500054188215976066640824177707753070795113211209441289290278017972798743659359269522013562226661138826961870714564750648626915286226234651674284493937463625429736866060986069233894439790286966019215783680662554525514151836515121326284824557888773509510857156617828645047247424100696774560798842835136027264225448796569134210729769463785416474729820258398600643923308512509993472458431278560661171342613741925425694321325676210978993034469057358176622052879849715590988091358076883369939032830159338527726757428785630653989931730087223898174216116456258714898929499179763806400001080397767075486418247506754762424962000969779572658240815303473454251874748247857903766391906877590822781536326780418261882167990838575323389803645193603548298692542862513181113402473248022687659276704002644381601677622465638438439864334694988103333470999606358157197364759632471029613235465792862309408490251968725111430673105823063381630964207521662612791857778491841271117765111750996701471907344073130938175949704444226759262517312318271561395857071934188817816582685604997033512705814561552314525470566860840812381384512564064511302053768428186804904207833416271547056461160938924354142625618414326677376892529117245758500483523516993006766608989865078443023430910094475088797001631180624279165272408729101783573245030680423024069594084784107507131178955392681707428878126915075881783876757026442613756485981639701358499274592981877001245648361309946625337678573974331289852796222889558210117152134814372278054168277013493442510197300184561602855770980885574790127861831381754425870285608486770492911742461670074370082054630957834228846642452086812914250873984005704095146624903975728636810831922407515903178506203837656369966978461767806825469987058426403278921389563088498966325237796674109145656668944021477668672289255450728547117937400928424583041304093138305489591221532123898256544054986705407382895801225315327708097357444725455791246188280076139726578351977143439332343007747789552187290257722902646774703260634036162091956658442484341543658582285273371542900376479723583217330783121640048145944142766580544328434869770404680080406571102300934494159599484553519157656525698503982501816225691656325164872906988972679011159006433253495539522963510956928791356408053873051651809276099349685346157159200502006511476231409301659819039262459365927774159253412874489129805092684452966636583815604173313849396182275045461695760560760377033679849353848451480869116578418860260470135271000805338431226344389041301960307870218556527498458109266127313754735024580540616728773009679862521100386934624807270915873666557752408233321321889274528691703411145597062125604878250991539055039311139584198844947925834164287841701908159570682854185403557670632014363569153819475106802468665152931606709093893459621482646495643551544552899087083071528855684257889813502018654929919392876213393664493820315740929094221739491326226595495431685723953514705669456228956839928843017517180478637793287863533215328308165320762495457988442218220237877765660123314167211958717045567917840464386061800847005891543073897975549778017857965139450391690789047410162526725090625636796705363363029582896174413519821584447255544700621355597540600306958541548951422986123382930446745188073026333750990580442881333088168498797134994787015217240038829331251445736332742666800634604401778626752963138137878875501751511410643175622968423811104278402586353657014495631909844798832239011130080502252274860789757908296743746836516131102979483365054200318880066526900773026817466651945839997146064822583347851604666849252174400657505729100378844930288620168629661526183511515949724028387804845943219970882172523719249205994695735602487694571523704717560688149328204000526489480737634887461996756264061437491353062280912313902127127986246339834136578144979352501501307848648214955687455821345497501264769919287871414520388998304090469967022701032269102279802022120040006302964843166714264807916260066519430265482645553691225659264292762985875309137681111297805674724088398563059886756509284563820764897074976415826485855041008447981332676162020966722536175642363251450617215306989321272354773142112918655832570657717913638407522299378064861384160389932872996162244405301533655448404709883916217606115022254708143184130124699270205948612632493470469860598125343356590463161657868046401748257683705128031875208372192390832228009176529598248484941585361867506297171607101733276561488387493126199606453210157015668102318972139489948128752787020390799542461739037017461908818215216945949249026196074803242720663502149768818354261810391361467601045319419793576432157377656284454932450047196521165157551679503580651398723479149615521518028065415064172184449983899567067662671909789304287693163006937676885489956509804895392224313771646065896358976439043478783176009058785088230930547731110704458237958054188222922509756929192946998044371720761885560419190809191646044879246665276448082567187653511993607533385110255611778049324417116842185939626614175355001257083357638747377771927366148859062264353628274440319790682656874612963280079357765714606404438084671646492647084421725261674915401120024083172100376829469919347720854861432995818701155319679705169344164807623096597520074503220036758266029918475679358217616312444573717097585953061966445003615398034309161236613980546845981475827693756873482869703388688863644527440096964973819944330603497164324395308417506894706987594187536056496126751494483077153009804055978397425171941336015203051055205278282394931739484557882461051104810187790287209994343616213421583265737970418504725035976576116079849021686123761581171592647400336500182967577424930586243224426940363248312878590026253802306051882133423754395076080292542270175625157223362380347080219930236769323101289129863811845158558067399705379279498624406521818397320389990914975918128974490192206311312493019824962140362666583613736273709588783737118782415075392438014749240632047029213555370854642428281115708013604122541505543993235295962963846674653424773151001507585935442984371057779709294055276129482718304674429785614943185744936913072113621332242337800785416036292783984358424995465352941698787577074358702618686201521500615377727122289248511870583407432913585344907182275260037885742088073616931657416560681703365924631669349461407408881606938219765061166030961971896669750611186650094828456406415016480785090202597748681763287447283798284108027199554952758941182959851031376590500961207891028489607929361919191580303537138781184839173710211355340469989785918564244931236140063169973787661488415761915279225956691959216481356835278121051883128479137922779807768746213844321823940325898760876287661703666362388644697494639887716709445422976381090593348346009620250023174646041703219978375315727165222229358354539514655074761528623598680588494142557385325909132218056813378775522750833861073528239318269884405946025815227609244010647144687050022811077174785586381491104898106548286155051452333039302096350872070994595222183218742200855408763574284236915226594455582296964703475563471375977024584545273900858936942486972479596637193282959045828077233117049237445593856812924476097158848010394292266256744171219282016309421487560578702067350294900328922935711107165054043510183405962534536863273692338075011343227594245291506691048175811655627986022391589099047624818240761000111351030660002166583311906489377379605644412910571691604459407457232124885792905946196622676517028521584515720331178293005008618781568268339141181100813413550537415276634885865837337838998868194974632307865780934677846317862805689062508998891659182682474721225191469575562062868099687672777792421042255292237102190758549366009662371771272305300806207231189383309239365590519972897197673049861854593155558819771478379976102220289091996481358273560220399979117757347753040213732044659395300606024963622343677800759496558900874945275793136781923987600330431500566488912546183363879370382735847346851464020691885623211522763699525461235182721755071193234700295046685371197925277960403521060411958875652752445296811616430249755152875508364798521701946271297848029730753987351136864719243067555703349185765893942484871142805638334732412514610787500787632083285386295721519907673631011296369349147388231282478363838570896273778255874945683526418588906807085516727534966999466312370353407400575396826874012654032734306069025098441797196248407379959324704136140779838110306119969149614964467629173640419822565900545042254437325395377171268413309592396857906846933805446255792104498816889577354442232062210745396747063314597963147053441140367351737613541348203404239660567061249840421360046238433819348042110339771175756017745993155729566577968356106648381026081428145524457390683930111373503553657674772190950754850181089281335295660507879278578754554230242380382806323422395461731075190083170477907827857178276878264882195630365720175138613868107113611066894453962336702615722502869056553148055018477634359261093898673651472530161000104985505739760705647521907991078320439534881477010043652586111956783100456515081476849925999905258589662265078317029316238415293892746030294787008606368822223779645090971233811592137702481631709329035374958377502661500506081290904611596250872233218792159132153862160593421235536314790067864099414857294669409958965977758917705711789133982928113480681072819260514408504185180056191911619857328559724512494231360889295488141881731510584702147169285372138475500631509927363466574255127185682497665504530427833398028692748976967425440536019112090648209675171976967053471951865932377369893563159356742544029823907216345829473055470095079262489013633036531512266272139023863111801191925755800126700132698226699450784257027376747579901619119388429331891632704875789199607640380245915298696428139304291588352245353481010806010475983355053184239920834431693963257074230834228008337238135425915441787960593070382128261100454582357292689481822531898876027722008948267317806627421563723271462569057000477976467206777233431022771080814461993236988308738647418336921825774801437489166001764749327068705405988232853469823698221451735690032013788620557754780052934579802842705199068570864821514670077636607386361927908124229331972793096330523921539569483882454358468308999492202130821037268209592797902874556140624712897912236099441872985937566150046738657514135091753509022854965239353984417249621408792270745908930916700096168763811927520743760139426858566235879188027604273036181625097138990501173649255240907469505908342574118464311067896382043395430400602652243338579153144866176390814727223721101573200048983049884143592434339737170635008812543911230888233164524210716772838799776964979093704125950739874088004943196387307857576870857099099386448765484266053103507528490490249434675717030271884085520037703787531289059345216054544310351703666962593423225604575574886940677237750996289121674517069374887254599209094544126131628581172186541170247456013789266348690619173651234173717465435839856117452763017236919888861030250123624405772463518150692649890226910217891328787203849837723365194048758222771951089883001248258138469703759199807498827118434194655738051850987654575524678764004936559196590605503701012597857773095139237815447226535258354405245395143980806881157750191659889826508786581517859935213517792680037973885360432430345952834624941217211412719550774108478663466698548895104875005012805303783325115504421313418131537878405397369008610989083473525753727083464997199820155537625206521309255451703301243969113005418018637170592496141355340509162902942399202400363985493352320195463546254162259125168534170025333426564201660138619114676582190101292282828657575028039077549184639370506477753225686206981425034076619720088241552750491483050983627437855245713831907171673020731342136792708145534718356175344675801270275725245692957037217366768098328662459199871507052136411692462165176253719634750089110519581910492165322103457115229274163961079862883993086753421943756867357746461967499413454931988611871673432107755257193064526811164206287582991726665524012739606061497176457895084571117922244460384202141818468693063282259315019700817908250683666185390579305241542481307084865467198173232452643428170385807473033086578661178358113180269069971447524634505753874059545313399536580239997321165837670594628299758713026946979160739201205782474224862792122599507149657608226359647228788067827170441015730328176915426988723986096725653311637767781863883080030241062322466939232177998548325695139291831734080555761449824367605162319716275576198259772687701835235197329517541899496557915358153429986484465089967605123422780386253377395856750026336909836911777019053124168858054755245206329031914834309673003489449635414222412176638313855723577163518644208970011345930497914443924950976437311613675306135037873170052434509910402407779578542900146724193124895437445240751499024038919084527397049931780942032741469851665801602328883260497232500431229701337884411490028002053753915118102758244308331473511376470064394337461746804260141270811096492869661988625924313810591796924369751480672307049994422654986211665328592662020677394078736815525184072635723116980290165406407560468061242127948007418504104417899802638953342317709692048112616182179645971461712243830017219723123068561133771351311195168944716188855476797779623250451225382045978069597218809061024087019279552736873752204645795271512931727157797301696627774687800099357363113765132208951417358651530277959104557686896031457670821898049036512587101184514954670418921165258051986531929477502848849387111279592537989073357458613769685990523919722891205619143236969064644145745497385343478515699760761030002666331980490203909187275942974421276994366278402058071321892006884775218904532156018623396494629662927939264841814538151661007016587245271981597989984178163333019254092878911126390612370836161768324684275874825216583925876324147366294838766878005247368834244285354963439288567046142840698049725018431980183486803030703337747469055646035065980032660692467106735750493690886329032839687243609129711596479873422202233965895886257240449238240100991905104983835857204154919379257194063599623613638280327538295040535296906405652255855199228644239840461937012181660306234236030002405394006139415560514803733866242414707587327288537855554036318985685890035576563198655337461050286306007045875844369183520775363195745003250071317480904793311700048615926438131141241915631304057368046255757120997597200409924259565595202539484171616811752631540888624763742250074628579864695124262954480679823489539728662453550009430280578823105434271740260671694983820193867125590147280922895951997324695567854461677664999203929966198368968358685879906623889045428670765559232569428844789246807432700363807381553977210350689572787835036619172177841712101278747671814226648344737591752536455867181407797517324489257161935747159200550281725522736972659958984626104758064259675784957421550500061285585920986957812989495445169711839095581115609501920399217995481120768134389347239195422101028567716753508681264178500851432534436494042907170413703316247814795111629954873843901034281021650390471806118013216011697725008820730515663761694794163366854906799789236592045864651760972700457562292806793176226680075060322748522953420403304156361855708232743768372096545941644333429182923472726939758613188012081963156022210966437807146839116174743552284895683994177339012139890994747702780383341800880654449503094521282794145123330172532545536329646596192003574884728715544945677184591388975463529004213203915772026648268701891449698730997853674416355312545157652092117441085699375103774701558583172856295996930876036351816727624858374897530256447817499210908289257302833617965438718258163212571021338333458122637332275005011752514601552603881465025109474223456024154070668406837393490319554084369024389301815896138733300189611985404639415784123473284409786195578854089981057078251534746888394430308241739054806258687436964695469944888441914934407551186952712285912610951398550993990108461079559239265403167983816884295778930219272976300228842509788661761853370554020241611470235240787684704854816655862172691819764514240369486652878312834847127486561006734664885158665979214323692080809593536034470594536889166589976123787279174757544240191502482181415150255668774661798301694902199597579326585571722830897751557607455499072993864010198826154807064060520271204652186406212305639996884994730837579875307793356677959952830418106182369336414306214468176478956487382114709762064634285755247584237394945269016852900855940618588332543080518096706253159925256662687105607354962662661468747662032690837606243884732578240745111246329633238545227197326772917573644261477403040275488183048999473530067001262460460942122441354856893643029350656833471065303700892169879397755854140813158993875526435133388775703694294602361099106622548311857049920686847652651243831666335673897900173990860296535335393699251423472853972310808718478164751105413094504009276718299793670571054815330845222860877410045583412791429658204126729351872331552048124554881741582272711697658692557999151053241821362841833273099002724202256890893084665723953186974267484251044808975209540020876782405795559530818772949147868552280564563405831838552200109183671950891485716780904433443128301524585184204909430364079168153318291703747211180918267087033592115369019240681658178783181532519947675747076935193682469372811944149418209947883560710636812606162255202701359108557319036536790924552045072087066962118861109739335315825643073533378242909479286129849804374247499024591047647954234754494083720994473373378636303303467867540549138954395767943303805531636990880458271076777485853647733766043975054933222622883861838962657951111337945395535701205222273851764471057628862411159811389110039777719851791866896970660877340722628966134741943066412504849103673034113687679126091325171231282919139159659435378825638180629341598669955296747565076049173101226865976837346370467388818932606825452356186394769708812077979979898890429014488327596576330021558572999516694011360405652861269367754421686644992508105572170886850796239786892588943728193449973766075099891116575115454631063788923535042866385817066408888995988571360100919978137692337952746830561107011025486487648256692578888730351324292342623911371229985606785474827865229268280178461719584457992011918950256068451750344216730560940575865687311579680720445646408232473861386041450169302670892736633530407364048626728750839829206947270292740133606336974709237936828284321123550906382274276266102541452072583047341669980294071902041669356366698740729616149201715895759934556996631049854160934711080760085181136766380671351357838785784356696976161369288288136602488039166469311276589044996627789661611719022464187688391569993825298435729170854666702713989677219822087949483190287270675153972228406996375626948605370961150004420990728109043364581604817904392734899711084737692385415331257140815814908702466386388456427417822366601065468989163883989467339487214528133249147198538413336343677740311314610347264571853276832678366457553643998016853427786859359872153434577585448749494919130813270594053620823398754645076315388710466982901824689142137526198246917772349498887005400721949117029744503930872726683218161293123176858567140962419819898901038931284319678093473080475424820943390800356147986799868467665536444107554684633303827945765575265736894246696419115302224458013016844606879290759041562646639242816741417466452054221559322915779222254922052791280074088192247280836986141276993589508316249567789043436818956080361843875574485743967994646282585911699291012248479210091700252028058027818072001453968378514320233414224973273254172861074246229043242360656965957123237485320462901357329241277128601768615966767005777585699948041208986896208520457548795015594103965538431340415012801467908852019166670858031838301636808257000976062956860405452458006493349849109431349028575237552476841980606604654276674309622989064825083894741158541112624462363800601808777797048873863422831304610563608200841830070887378715012032020127346980237837862671394269732661669609702185744857184560715569585389548583150094613809936385794113553848694509289615202601388174599397132242443021188507926905123753492065280242998297589132064319258873727951138954872388816528295977500883039862256267520888712189570248250168812975267271897692080163124566315535138318777664328096572784531861600126947084901835414971795492641650614632603746928283109481936496109675445654450096260710032570369950971549173158497170011064421180480195435658739044660278573296123502780526814363100769573568619382573599192651250397999114047922376222744089227444929277255726803148401902208455062698005938765784647712515330968530089168682272969506002151210934474749188808913109085983198427167954566801913144822155651785319423945419431064334214407966118293514479557197050756729216016553014132759923831183591250475335070302973567607131219340905281760004502105526722708241492360807817934523437097012536318754828761336608144918311728494488705667626897207467217685406348517849215872241532472797205228115878911701303886654340401489054766951708037835688989740387350765686726213050011034430840128641794449997546668490935189393024902621410366261962439148104427852232280568175983038147294125842016471398517701640014768030479210437707771445719858723114159559916828480917798093891859521239420134110721746509695813468032903970923192860698814002088312851744710281558496037172548328804894135546721002939420715100878739785508941415391288878113071182453967146442552515147587780664098059048841743135319612278147237274339447736753322300807914647187832118266597201730263531097206677909315167798452448014509527436491518051205173533963625669144955426345571802567612305182363129777204432246351548138833891510658491008865487084867044913430518175038973290949371559800306536053188075429252014049865762074022733894806131820559201258598364209452041823854618771852388316261841930304904085619049071367973337635663707053637652315486532546937680221511272193882903284547790490111954927310731697630936050459722569875612491474555849270873802635622214772883532034795397851733124366675719010554542283693552188765156934370634873336695614359298468028271285954306910133369567934699025010340407963092420586617900099753204930043567450199582970031701329633397777369981452600888512340684727977128935075808110898086017225233763627352591278609057367436016986865226252580073287466163106109177144744656476759838719813999737723769132308899233855447698628417921394971375532744817477156660694044196236694192939851361691396400974230678236954746872760550197345762054952861759015124876734875512055649707540996525247930157823141643166036805639150163131909627290509741483652946730214248379602576593717272457540885311686691711861605918352322020840993083468883797969511626452173660787966359367508025139087886298812420456844253574315949767904852723032496711292064621541325143538852265548211908492897141204883776877414997829975452257630551497511429424626400980368324672586029715820683526667289012678083776806322621883604737686090595013137898651119781298696962807104185282620519584667518771129509930777149731196119283865939611262031445883318054645439436853286245841483174358244447908711241454608326083349787612646814982295845160106421345828728220879823220724318119417886122975434509368978492168217516580617452548677459985261069064545358182879378435116333054314739746329090291640662382424318761164277804084505715212946269250151892090315944421616884890499841451408120519939064600355297120533113785843730157031971515642305592122046630039973769852903676236068087681272921253703200892126300579234004359584666357530982072631742883420956373817126687217609110008221723724845416445057982464224882434284756319902054873547226714699710305726495843234979847672821378633080507339229953068951524245581693703068556650544665028347064802453989515189072518322047925259857337830829602141669983685203767734052233127214689411454787584621583320651444560223972449338807792129327268302884534324285404587135522784312933791978385338200791505192308425714222272152024844004960103464541531491767290942592613874933546046051286315509971184734013494678551951021493048128005616909853591073039449870812434039362726966681051191035267052314580653530426188805171782193463998383079597868619172979316267942854234949893841901556136338471855280911348010247445899213723197787120349343883095919311168988438099661176747902143390583502721150996327306318003956760899308698837691592117180897920820262511534433367481165262667859943875843642144939927773095752051645076867207641984735835540427869271922890672612578835352135890229084987088314574585018539621476628658861788690524816298592489095702437964900898520464073333612803618414999975607296010047147998673905001276084496889007106665101567694028704521685503567275617400884522485803705507926429599920789410738279580236058657657093344824335830326615361623002196625266063506359374877980003092051523150230552557285442619409159799415171511944272089016523018332164390564307126185443036498556828413055196443139305298856028845621691677626719214475076363478774639769325616152973579700683481865578162792973463666996877734607211171730694076449593804670095269905476741012904999108516341182780251736589030668293887077377981617685081515592729134650915629051927457005609131583899777787044842009612706514299160546393624381637817761173346741855854329898057170957510638012540247789245538311115388351286586383054632945774405832798878621504421966850881162522856511962476100218869887737969440783820784041930253631593335787248375419325376395831494264132227923743432171075059084616883722004415749937584858483781637568330967004576090759797896020737298931336997214345770167953476456737120513446250892305854245008802817935242764459132773835814833498531076578119996532137651131323825514698590661173154974488560035092168126834937572100618460628397436713671085309743800350076594515646321490063819314892860162653302614768263557740280477452318285317956933055705366920333888317659902337825364049320612456458481936884691667101336998984062042834191338188832842584178649385244953834130651711700748710715453485140815008808307739699804936083806428178133219692454384779112562232576916152789359100778391228578041751207833298511847195588302259480133444360122469487378046528109511424931292299017462804127046419802155756913183427884450821262035029239800504227815240466395287001139149974436548142351702364462391630325130656473519322447890237378105705630784307049004874786455708331022962588336177522439375784582194818311530289967578495411632875906941546322499477030146489063464102493805558482922874110233012000042020549349222615404425045121741819852995388277847371845169166015781237004017957804930827058485205988465335357204246483901943870509951532169411628024505631485951256425654831336643591940763601316879992555793417737772017355142865828772066445482521285239641920495129515292769440224566784406957316214752345112967617702267817235137374216206947210634137680764751098246891221044800552573148589573097578996778031947852466149158654030835577366232939225899195496460450601956574671283214035887638641966638232622087571473279910252940081100260740647259676186902066412547142945323797612440722179161443908888715224946972127949940122823085316616769287449178447098283899887941314209859268179099719702150867485173466179247609024043598740124344266575477538025141590347764974827620184737004268240716797142594465192093715991812859717857963787650302936763741556782610192118061548849498149596630140752839937589293071534219556310290239492352883555126928055399834728284183431544194933218469188545413440781563424833367774648202504867544098405006090727423361933871234464055646818726905586816603451880003305268480981823765829910206705491183588088687840897069956533813162460046592546542786084547028716078222816542421846846354962379218074955615515041702477346386798157147377104572671031675649982813269656659486863148941127529294286286367295451021635934188334140432107634576598094377048965225217067674912657504342485484213364875609320477917850207919846058858877951454138240442018136944157906360337639689311888064915920522243444879656326047135576623954722675189327159295728931654488894865040816999225950834674110150221766959972135777630735034422606040219068088881216350225386894559429748593139182746772880585431510678221870582976280922860624987866258939719966210387908621709758189356464835000304907964109826997213080517715254307992118902053689896984327477628165692490772113964336373783530610250217186105461925260068017176137411949112293354944529056454539232377195932242197590978933066120651256704147783720853190617898541021704843959383843313162350482772522227504555302809105815464832973566440902799784166125077541122025036390013760961207398431983540145490451153239536579369248645236272322960529139403626370550340724461627591492136744779465496094181986534061766611351679113224546506960583479476367639177375322402797674540573305676997062848612697261656163277366406720663614575726811349379971069801920389631155420534175937171691052470763328042451042182945407257209627266479048834196672541815541634133378652841960953745548294665133298450398379375260441458276668401277394016959393507752441416374020177387784492982973649358583291180865394133369732094640835660942748232766207603316867870965821723291944838379720939993468495290481136664000723785888390817024227287072137170389191709046630316674471237131259127989761866654108505669770870040635803601578515930915676593520386256867912845535519525592261193871993057018346507802137474968220385760264410554218059686858572501651884620765561272077149873423602179018875753789491037109974428392292003788882406141436094176269583567337626828341543242353731550770782792918476422229324040607758389377126988919535278258635275748287117893878775035439566768622232238381394896481303399416552258002640468197534189217712759074375467994096898886888040437282312885684085076957904595712331629965483260522231548146925280222263526320569584171043198341104437785140099770372246014826512885563641158023628160349020305698506276200557173454036279862952150267757142157480871071505668682652030575449569588314520391689349039998391315431264620896089439982313952596442697948823035460060999681446232910394010625883935367889690887876423758441803918189562937916205516197764986145778960020933375946525102084360270246229141391578729572432319516291714997099912610752411402775932619539993335291120958121875968778880314039221081733876801032360819717292684426590548667031037892280982529742376215795019189130088239622088955423210816219582997650238070687085041179387406587955624212696237705988257338207746324021186567536638971953511397036184268246330808342031178872419678568656620528962447497315764498585415090348125014686827840772509786002595094012040157785108468157414631933349144541202287834017103389943782213894770400260770295008662546149132192857591109077305238541718832250861169010004920413547312829353609877074597398608109445916669624080079888689407775479140027567570299216066892521473686994429681985629076093166807851283109617107597818557113433424590856632408314864136644757808477264209132850334907364738307976436020988624519351849020342321684225235001875602283681149776355378143602848600172679509281026423537335148190891536276393329080243418903073587263666064320866174129655416351988273459428964232646565114049661403273723681361276318448237230318588412720394154353370537387044674130534934866327267035884201811492467104257124216664789209253827008215771267632349467492798696944211950814861511779499792934784555503966130898570762016845377664369930101874275413120013463289857746777811635949069045589036779874225510858946891503152206117841678945507167278806845410129771685163849329622251509173861047019428115028568714235386422286303186350371678614484721278658433313498141602828284276342434107553780512760348162757094312763550230396761772339945821132331619136547963889786422911313920947629709440551958131558114262428652373166475017812063650688821798056362858597028322239939545131214107665669509909949166917955621513135099731341207506096062284179619866679079500509930789411053647540878655374333066036253770095745821908414045900532074329002331037629637058901388519335529335256431224478346815083023661784482719380566127525428085817425814815671945587642432779609668555961812010693526891704248627851900120252954922079055817860457016715957021174862704547235492709967819427628698654613100488016898977632906881281252083941164011068920842185221823173052133139439958883704341409626793951743183291447926607927694493200263229074491411976674611965136669430080968638257100837102603812517245715647542351149984250740920179685529977588511487254077456696088395366283157028520091985953267706172242681869525425018627856862006780841755250365708667929968310896237816934363591146283184852016786242602476766713517594187431597542284225222630156905775731215802489459988614701307994487014708115127918747462495262867824863803438292762610684602326225546817867706359548629820716046794636607313700283310812492297406302342266340281631798000179688285114206508314680098291997739512079099064963024034092937283435551139187274907247948868434833319925836386561775962505184045351663562524006980022470393824317633761951276557845234335065064762475182055214102143873593948757536711257733947729375531875944476146931946665108391805898087448089208983650851708474498891228909123485936432361196674218942400215909672836331860393809659139471726908912378962944068593934679163161570360561992605066665205685864688731845322833377275200185255420706615820401827208798865828177021910034045938943527072780306631128024534399801126444918979678443913761118053321597751890435033756203994287826274725101171715267585683990891291250883715874334518093833342155167096975027703938278765019537167427123131075512362638338891296468740665478683276359990272232234529447495909241829114687918437378853766964784677261863986078446732047131866088480204261918766628028743080028814003675949113643286222240987566513459089295078374793053844292688611612872849057281218630769053459192110405360639008404677479847993430798786045459093232281030149125675654940310936159841932285683937874054273538082624057814235176557214749722644339197796709062149755972597192578140224417627715250657566412510566873181665080906588661625702659037488735298092670194082516555084456632065095332489430299497966068807958281851106875378277721987044141730089304266848630197929248930014663920147529130692559488345718956996265718329875142090201455484464835394307607599304703951775992999086841237794154696208874435458187980454407795623958480405604713571434521327122651388487040704002050230274107202613054148516852390101606787973783739996228140665067059592114309120793759577116751765055143895542834402262290958010783470265271031991297403435056254334415988542049294304359077437859982296868982069161152765650673939886062285793271108431983215443664740502731797351208368109515080138331259051989801232165410528865959847896851015775178269764372920217259976817068645054836579827696510085857931170896766086348388581923093440345742965153547444604968800015522934319444761284202372413809741595824049572411677148653735017805460105653938883251143104096934185453795445571667070856765969817724392619789829124702337842293707412870730194799205477171752960273367805274785060175616248443820530233167104542791965943370937969966970902410724501343671116235805571716292897249830861510040455990819619980056875314795545637373572666824213054411136670437720579588088416094305969611898220002200791064598825996891708613790478753129924710041312237577430485952397793881394116450825781507532660742081005949228337211616799897588772360751090017214270646329337356220210102349725765234255904634463222010213946420797287428572909567683477198890265704959765879055064647557223505294805820120230792445315941633155358410827395882273326775227512745502731984935765981715290617552069432835659779738665476269190916147641581520246907203103059256686150548451404741977795677892530958640038147706660862497477317325097125603303254216612657856728064580543005964781663824048969692777171204389067058497339239425153280123445955512200206436609301830731086434408203629914121911499956367613273856344995229647724297276017234261684754930224462631909914215844440404485843457267070519065681279779477310366742881741692164175768982910262781288366915640197249532388034287604198988475538239270009359619657520571604180329793705297692005232345134751979312270020218190137252496803707191682693367860754725633031041176743953462219167482181252746812397351130116559267481794866447180898218371430537827376769888360077419502989311272291820188431139319165818556006465724741673178964665929487906515900001535784726810054523569401335637072337069722232186815742115558427822946994206404858861203714572239860322900078205301395779158381674052960877798215070439813374323792088826445209229382424632806529423552200040468729559841965062292890504474608267206349261455754910982254313529664827470743795951619778498588267582278933872417887986771538033676264572183105322498864527592882852423590471596731390734262877303390867700730184758738388454685001899529829928746827602511211032078372604472358436834059638421219804630454219381660409098682882245468984902292187872271359989532598436565119396431563306419856700348384279401572053578167643393865575620445493881434870718068912319155824616683809917781894461381523662759220769748536466340871519409513074477579690568451413998066112240128655629985236329324922033431022408860668765033070226672461030436357748445848974165222130823130520752678673873871294835181572769609534536727773543241319770612857918152031234936972256605296063021541424396668741400366578415770043160760956655356397327889618404405763423413765853384028849980027775792999566211204418839746683862779472583982920800134459341105736785584452050049583464710540089043481213597657274420121022296904123253355888718442863093038387881522544179737494460917490191158725357203672155532671819440241031613093456974083959432125022803447138593845426391493225203244359470054068703648759265411287437325932483344927327366798315712459853634408188329429605362394839678901212312674514235899255051547059623270928117874251275321985990719133651283722589356089018672261056485963824846372464209979145690910316820507516866871296382531265713192268201492991523374815334995469312845281820925932241463720531723097739436449939961468853839584182099632256003339275347989968772296044426926149845806184657750880611740317902485968819003578051295428382354530850837163865317736732821889673079720704987693791365502602467932809684416582986538103680016831633667303043424158384625428479075271228472105122814756382775581305516947162866509722284617202980917962575913200424826869333245636790266205940098698930313496954920489297539118007475925009765375356762974763384068200324516434869929684713724739516781577500449911973559342136585478263686482902855990074431584756546513003775952379069480503201387586265657664073667823095648323569613760199890239022286674518702994228302299918844684280597918811635106633837769730236484713927678583263595496207340488532363659968686344104254069289939261848384390028568585856571763325151116943914714454900173142895162280466079478471406138948113366852031186665330375434465577930034662457242234541971322448006303894516699014944482930574456006453303816692491764111246770741559952384904822825563633903857417859081132280114154067273779893490534263473116147240144912286009728441586656165937331448933066506489229269906001223154307874080826341692237588204112867371759679972093243922826958037011209675576808753845693860067779638389340379790894910195686265014406572793898498160285149164808832952641964094391512925115377226575917959092421532117365540241332668753700781800029558691406881264402704092422019433040856596878669753498924794596576539055943375038882305487028734750759238017500494628188370127002960460922489082621095850102667726159470604081318575197573444251002360753198679568095241032954198667582625424562026879331434663213725837152331609714197495178353711736061206415929558743004399309425098262329778704948603771149610578687948692808867115776343469856800097967841669962933755991974955366388310159802721038578123024965450612542204711896107455707597594978524328033845943665126739419746421214934458304586138702048157717944071852304435634587520100557667351591699073230266279789766662913353069818342986948552395442062413793994331169631770841824414449801153507398241689844659744455275516633684199204773839429233941813782052559596995884805628634505433298249913372325034134764894994562068445484548770136655074630383434251235292956363362594297331021183972791327860811181430353149282945468857160516214296203562872372525091140014442942115132747837730047555054291621684775086139983861789333651291556803285183730930731781383408426190602215544242686214036924036741752691302149430818956248948042063331032878434201735705198228373064812611852272116466657118546232761593109760773106587834927962647124331451707899585138184815870152919120297494821281002393496757653778512986861685867255285855167611590992665213473320443792061324618577998766192912113997739058433120756718251534567101823148319518485990831283046611112951852190641964826762020598163664170199296343850354856176298299215815249460149022230885288760620931131310750979281117999552946183469321995217014693872648290459685415344335992486164681973061989183557142989976830699013878751370604666145338788272678086967271367416132096529325947672133617271972727047199764667554808991156763840106716157377028822548993950891716351170501156242545364388611941961885442620321677139564885916429862660390262249293259986084156724749082166441444631376789238803895717023291062763135509949214928559967698174947019974273271766219237746068522891064695864127814614516119507131552218061348741524196744363052850275283113421456068163440607902245689416474081841633494552750488979692532968558775323728604772880464882139657943550718233168831980037935557793429311129060332742953982017748541383045215907161503761655596053675813381105508265551808092767862866407879174673463671553907518912995399827952495740927584314955756801369422517265508396043126070930561735864466074116874030416242972020530101227929207158693172288816217694960445565233649116929042657013091877552791481091172250349706646949594687875672396641709189545015458092675822008829090474813020496167480964013123197827738524160971784521820271554895835756792552789409495765165531155990178883357299748993370659918676237102493707261926921523936418597964192269469849769992225828174527913880494019550157745944182664664228815905400060406524994629582471966223505890610644358702074935605265466575780374261156735132839396213715641132363136282314990732491316774190168349493223508503329857447193840499303428253039460063090529651418259951925110688989802438943902212624985632641683402904876724716655033016335419333162278542823502610061511337309452909526819118970009050547141857167215205469969698242675855328156870368882442394915874407693403612776444531778260478603695614363577434327240387282701032161886475477104302721280673372375003828481520765325977159216021781009761119163000058470439324473406941136905786281367643002167990520105106695682114285473549803663253640389498923735010892491139127759359228712135948637810806692870043176715569173625267505102581967524620382695143664170501937263232076472495026825025260952223098794903976538990761360926958922105867984614173590277635320744256369259642193086234853918745028386063907242476960881471317308906780935998005228248310111981423279133024531863808793951634854186719756406833984384025508484493296744032007721945895327744190494420035253536582192112437177644053663217411211615944024314307535714782899079440097665039114523199068726360568486451212252224105762317418835046926336619340606523054523679588532270065333198859545208558690235062168080374270730695323645455748007215516037257842936990706793253901723322480446787452783398673469865593076201248881267197021896851751615274756903278906571709043785851572921493839641463066861553719428340367971227240366133633558166639383040767361850647872283481032631581981083618008311814009151881799870315327088760396003177518384072052305164289860150472429085867439407845336196502873715964113080350716723103054585246606756871712967659867545173149083099968828816613476829552473183493461798627902211448253929903154002301900395987531581851619946720809247864563706732589297766304336255428498909456228250868091858727976888145312822166866158481027073227564167521129929869197916971600986688100835243602679563704133091795619906930138760491065583974943383290682499041562091986291751016495473869307908759246132859701616796601770233273702296021023116886122598147131626197451399193013098668873898147698793989924543987158232490257679391071221062836351091547044284096092247495159705687692767684875865463234252685589962499682442616899909563726836380401931971987192252720574940459351558680250259762213027344606621588171926680717513265771160541502421135055261262822124363048969702009579399994111305215604150003618578716887300251717363845877639733079212729343651114070219164655118424640769473833774843730860702307100802717088770150760720682868292813687856952796159450447357942458192906821327436892537183036568323441656470085815607828906773526449728985048153706492529124269432033782026592781829841845406064700080048115000614480608724704964197166975614251978465992810720410480741942117617335462725007774138284820523537031110698691732163627134221178649550640238250634107299491714654302573915797343980943297259252571085260395713854091396177037034277836414719850053111064576418479092477699263509178340506981545930731894126729039566690947827854941019197613691014010961992662208839128926301722464736519509364680145984308250092200935332544162088914478374751910457791456992902556023169886447629462673481880743167940966788857026470412016364262174940319736602916983318220465609333760485571702339159674140889383191847836384225608101818461306663209649902475747335817090115636069228928545886548038338108559218334628033722159166406019572635891102764893781696829173341866741593973810414920700487893412625372159617334317998929871475653262229323688437854634495477552468244218542512788413036888260238115341911624127678176779484697309118877185250608112754381643308322893724284528883808210864800322047648877459397966380367264473452909959008525432648254772245430175340906351137073052707764224485677644682074105434450845287032278836193468928137749216799866295772419743753469021842888509824624186355246009917504149992716241413700519897526808254253994554006312864811876994425284823352359510052503229285069435484758539861470940769570433574247062546990319780721773035757360460783604331681147191452022843455612231067983897818854158058683820970058621149500702304037083693171978747311446298984784858190583388687269827058783480294086946620607839156482504559626912886746018318852986232599651300676147236681167733621058398014828325244006184881420505645880092450816825134844586402096632191846758278556249348143186750612880477773587573481604313436063807755970092890319314072524667266557428334674798001119332020604161764306894113153598948618877169012714715782757767407283261610095242283521036167072536800235920522262890888745708672657690546839452482076760769866390287140997868066892444404085454876859945916111159263829621353383601584713465534372565172468069308351678543935085278723812380265383520755694378524262654719604015152968752549252760268520343449308558305341376341524201725452743227233179404799009320341402536130425596614080750611743310089862179137370043409922970301095802251158844659218070716363240351135345297397592533665511324327137437810159346495492022025171168951314251691258648003110417323850972372999793482950439179846504376997498401934898045932840529945101520021914869368483214919857432650216542229852726933420282965893965368733838894809033710269125883979008293758993382247262360311352987393976300803203735846793310409478020066315419093508203607406611247028454890241778529219370941851277069848138176425145905736094937645521512202858854716947336960587972441225651901407954992837118554080697662659606320356463006555185944874283104906056834830203478101024182136768065948747710878130445126593163635333271707384699838701717853820999140054360912043710359028306172319341978285108723291822001065404381120917839375091371558653754040935023166545459508707684628785893590486692201277419813491716349155525424841856075859857828897428482840330526859935627243581694308056064108870576406642192206996400757595506372091438795654821477020712159818621677443345982853895196018749818783736035567849549914721382913539446318203607726674181782211160069161747992291926188779059491014056384801873388888167426044772694053134495089012648297327560619561236925037810855321970470871670722033344290480918706707914148634983175362185890162130099977807375614357512903973160873834172600814891698768894532038732429051589693135634643314224982718112641950021198300730578565779519750410376751308045867151666309349567642411808701268195943518115046884271693145642918496050517874256565440964931046022206765979706865720597352740347655277164314863197871085392539169687787665554377442278731980714875602024753627803335596207984069548371591578033719415042800508589939459183987568553323714836837476950852461449753039385199751829500005977088537061209344027470980339983710795802232153024805917859752260580457808565804173707507225202893299913261793750862839202683494141081805657591232944484770238789161720786757300088124746103447721385483680417557963109115475756261093480535134145438233284270556339872476473668343821840997189345527575592795126966559022281014994073782371810510554082613702498732205151539541368610499854489013669213684415407281001363880742173006223630870387766824500304264589640377775549625511678988017147307703782250912103865894146037404890736133778040647069198379918737289580099953025511148574990070431104281948660921972071441069734080391787633333331651810153999664034047732608572366936091571134793544986557459158330232827253368762771139313141826186593375260603299119092805631228671038073390670968933145562359149297886186432827086055324271343394545004007532109500318715169438713136271340416810190115860282930196937667399796380676887910032222207649068938948389421960867513274159388075510121917771859845962271376260795641614269365422613296812686097895104595102966030589894678027507124793956116233281130446244284665207637428126795681088972245673260843552791999117749741636535036707916882496281271550450421322928324650410253905746609755101941036791280797272607960719172923326543488691584120781730559032853561120544885156685976021336773800438517521903105853651592672828575067091992500835050697890481912752635310787203951354081731696853900876800708623353775118479445872010507477606008607389997686671706496020906258067664190847855848010638576378823937830709949198366248717705593137030953130235070814145661573872596415673251680173666692539612339251088311732494829197232278950676811741000949657229926367792237538258728842182155111007621169236065559633067151826774894725013993764122393131376545905370865346606336021351070163215638926199455342002560447344873636259895055142746949787131843812975064366691017884044665478075377428597600611177266948745386186080990157535143442140011038432640856135264395117144562053942650559985585177451667862824963512104380338734675751536704217380055133508372862469576018993483701094353121352699872583213388809775620746423460689218298810977725158879117805458877339918558529695138761372927027034915512085167349880818441735283155905560401487635916185855838112679388513667608682927877004331019033247336681786948935745624238599777605463339480218037648173234753140275777518230746675685805342872579818548629305857674276907682161751851447589885269731230685321210972041106246044764259552522018400614099461395130394641404305185582345900007400961569282584166673977347632871624090023335645566354519764349500173978644843440334544956736884833662115895780040849756847584154002677172443672008256604160710750450055134200197826120408754156672697399257140951079342038851941375475702461307175512134376984953786639358847849572070220145505407222060309086204237852221878103460099784823623480545179665201669225874054747876444540778738396840646122401309622081080822298755411831348860146573304071183027954056884972769473238028233886997534498124884529379797297006799072737376586976992251296154377619433947460493919851296727366452115141329040006854437470993939559798882701848477136185430129930802898015094761811518822740214232834648605935197259465039181046893084928400700938003608814867333247528716403751852753008424561756996179267458043672961357611558467605285556951892959367918088884358747827515183157604805032228513692213985789123479248017379411971136031590604997416425202845815724881077871884151660350866740212473243292112232534582135166131321012755355264769351486165001582491082129301482796895850935645291186525502107333975098922612271129420024440171326736022659051754265126996706032314934132017323916206317384120480416113295061669900115604292792119214220067831321928154659704530400477582691920598583635099611144691221345855194717003873882177647546186473464319039691638436024391782174459934264256335653039147847161214973813586193292772277315034043728215901664571980672755593898484122724490521086016250559985150325504838361260945207835028553742894054868315023959055866154046913641904668757956879182880633485143086371231748718026622420650706990036033611923679576463954582421442742244692182338251779107514741457176794622436593711837051009697330759369536250494651637176125645869175735562097151269117512099963636510682490169321020838329389164805255126481705528792994510775473673512219046590442374862800363043713988433318472711242076387034766536730403980437122068100250199758044662944456808045653864468718520428903438148001050737143412797665284614916090578986424495356046325052767822829922362303821127676088567782989943682339118423091024760033249685573280551324015911169557251697506114671257533468649804681493230271527483523046241303130049066461299119170078533347611441657674889634821611706307010949158417548686253821595207353681206772291525116005354701847123980130768874980658319540027258445750362928995022946683293590483086239802051913382145610082945444123205375283072907493094023378016636428234260950346252979075586085879373485723214113663026068404706340324671846956703271284386121479067893873743144418865757193860661987277349994096371722637231664439933548777620439275435487734210450939627018378317182266894085124446322760600987898934876526681721796981013223497852755058614218689086086750596085414910386561102995334061307836236697994558877838545874990016666198084019010684070306131668096719219097046410390324861680241334082550449928019069466877049166595394129189001495915222932515847033561805290814754046681777519975570799778793959734017685665863866208443755047183903676265400293835358158443766678187850674585871348729919236690505287798492469915280193184610944330566982456530282782453806307357461318983078027695366210689693223484024167397298236207662416010129653418899627625463031887283793137504291223575263887803172806839663827635187194068683888221855473938158723042381636085061929160887689118260083532141195446847225557497109146244071760999689860540080742568768538186466357450184773045385560437486578506838631141668553373798723765058221665689775465826824933061970435846673254701448970330745424353109071773382974538453126561419739456036133973852208640018947576836936180460880735993749161220993966115338105979868533647037282038248637251312971508089484399871704209618757733395916484115185916980124973133328765022612812105864019016734846329632777777673164388342581502884656012289645584116470590621288990501759765646430490044364631990469830286590809611618059086473918986580165231552139146531670765215597441980137755394307658016240758999793796526468787867135715062710366103117461374994762864269889075982829828614217174667205057424727594249778773034226819059158304313093549359944603870393389014689691838257138956870336714594245016403261313806077056769819010409901259545642532873628520953862524449326583173729249930847213938497863871033265117189319905272635984692742113477476896188030408510539600918067683496240105346037879897681999798592924944381242395472812746144916681214037359682061442480945082945569999132161307252676059518105256979390089003550013746459298799408048631559793475375730219475131147202229335768123821331487982136455603863050295692883860753267035126931163419707484460702959255208176064423680821997550980659528082386239100340301487657397721783311156317056179639797461300375750662526491850897476610579245368076488073665016818173201646852473851259073975517203303441965775665468163444873516900824653791627841080882018308433082620054337586446076041479048572589066514546801059712276777860572854722442238792117856437426360841374002462634149895538991964805741758466700617371426298244139632988104601866691759002985197480822297921021267917820677943685790349774954518886333630206391795282627739590059781082477749676943410657476165032814647718928702030680736253201757909063296714340988192624728245279821947638699747252556395850873652679076313467346948117174828659635304859257095761469208460398970996385710548035100802339472321562296569080565570529243682805021403200049128727825499121303215761774093646634177720246185054163300441324190716717912903885616557824983575779027658834925005995642510599319381000399455443719612786199924811648209064886351420007970009381445471154693527773729860126440890790638168106412276907816283682007080851782434037717104408829548734588049690638861634939375711422941713460693872838988597616700326946864706243343676099014521784135004608219165784351775749829433370552041759722427494518872291331264866836307264273167418603916181572179923728075015541733590177216837115154330866327473370487909626203783603407355765762974891585212543354136125055862133804694423610997839652660534646080906753624188452401253136064695824031592173633926253810807714048542977444282872460573254967781928230373489164871632668447607484076951078436131658698623065399313155766246638469600254868250882839367114842191475413467955396005179099150853003468203001296850768534608119431548261850986427187382267837374648988845397322655873009181004791474183189210049960455456794942769971141084007721148768625932509517853941879325373419608140451799299197989451714978744256221398793829844224032440297749005018677225156780768586670637954821861790279662083042962778059752956676584357564643070811926973725740937482803346157731089172872309061888827196271076617805209621167663588205723283528603335655069839404381152972779457712004578753300040574137373928556371461565824275927841589384468103615237083179605746184020754232437522437585153942608688101961410621857559994498869497268791638023366040098309810761005332351706657034051450439175751152779527086268286663444272939102511491837824686851031483998211326560093253626359321128122614374399584000690556541173981971056604366223953357972184801736578765230799192025167709997592287472769915361645129951864902237048104381568012987228079035408802619931409425762403127952470689578358451436072041497345434557274463739213310149022520081531075880956388721859792095773653085674761297697276766793190545302402477548213734228329636346180783729677670943764251091205384620167423536344248698127847268981016562691835918556831063874831439274519292832392002298316524948655501706011140792089320022438041528363311356106806853536727872538371580994472391720589344116075718713233612014793680063369246941797896569107622541150682801886087217372980498458918043816547555221810802052123866354377550266304724386663682665124457746520715819274292816611377690363559126804249271433601348988014568957541952568850533828886957471680397399964052243461662114446291658388901214486524812328516447649692697912984544502195223285820650517098983248361963562581711995775165724124821628369130768306963519257681012495522633879098206270375015347025671712765758755056540632263527968969394614515273723561934461905313036213457556855317534505653304843634642115038481971870104072612827153561497151724286428657182078818062636042229701555207840704596720289128160494643494455287313557870971619114323983545219748329819153814108512207476916552779913456077138083078270939794163047862841928572241114307195061465756369195533838064145620862895112857294722085182859801893909993449081072403135235272250349354712113955939486746081212267156219019686553689346870729662887055608389765130685962560430527292268332509509999270554701371972881218713359858096952827284431379430522717521793344191787828106074751636397866607991804934164185109034599718848489471337004238516149646683862717783421544553499379716923328977581642652486032562364789865587244448780412715345469069575124667607634588443446519779631395237246166617104990995425377836476199734683272463275938180583922968438938528911916890953186104275948556406572770134619482188739073303930660609890098294891516305226516589592159135301076130796514532755439959586888943579670832705006604716453014566436251329286850834193734199653061737900021086881769453688569564369469674116382996372315462985383856730618575910117575571908194389764094818376051439595720840223672788804024828583889117038121599625658205452363227475290359918715850942057840975874382961507254684983411922164419308272211729665473624392492146203160751951301529255230996151730278237570891665324561733396962117953923378032236682862683973413768866672329359939524829124052684136129204806648116981163358032077430638141802534971838930035030531437011138011492555622519489486845948895932403183199202246956825402366740673354211634540307392497829393160785603740042968665466830311777276688068266877953159779122359879269907197801879332793958346337738038124798901667433041514840500291728924504158081751792826703517198422011635345211038536467618616395864168025184402822774413019760092904940664597868904684291304287274269377179395582532217756304683271869689902522869356501957099125679017380274583057279139918005997846506828858676632216988130344128582051669089702207290464779923263637793423299923641827124872699517483378258850974322183123680762310653239094603337181257969076843104397589309302562286155259367268347606051978796526524949621040005103957280348805442815434252582563848601274452001883759914938563159375353951810024231604156780706634032241851358691372440665143775422811512383905428559205166198242348365112112387642992116590912644287844158446917987555646980619232183096046421220408643632284170637927374011113464059794972640783075952073417754104067723453010086368352320128649812941336876446822248846610726906998141179159032358011781089976223503750910702994572113649484464743054586872917540324102407388222151719757536127752960433077803221185228761074192962420263685750390825261941888434878461819539911808625794930095050609577220926753059795884244907736895464710814786691118064881472045657430865962347587742074610286505191095348582008708816041460307202000579818711628506088337775776237212603156354769292823674866053951830092140416800946625534434276133359085323002507595856686213269334004765974047135546037846597816901112258275283644123172424594872795635834766344811994965788841686026977303799187967474151871568540496409861492925238964647815256260449325632732715687608378052876523907634275473630190644348617446825230417584259766456543616620823368438025644108394122668034150384315893733459836944256442064463813961597928285232493905086389859979103924614713192591877133792218097959659069059355138379800092618675085171765176552367332591984619337556812483507946111631663710034928609690861999231997906923677324269754455280446038578584772090669632994904129959952533703224455738051233083971165150921213660527777975366636710554432581633526351247207964414823490996622816179591395038541312285318631709763745062187372591486219169662560325226348433407425513756227905717327660407701069617820700905744683904891200366629039619633600774152562676606730421321269740811879314192307168458994747758148102313415010225490017978780862571770467785240308944820154408665273598046397924417682367964967893838315864680089763978925084438402628125751486627440258662694168200173314149594602187288043917582867270003031953601620719455403115047936220626547916786722753802944363936393184897743787693480048769470138435824120004224278116594033167062435509414352895190787651097331699625287516431765493530776803656858768282174959440592907463891360846984990495863844432588137125929077010439990660551418097235784577760694880134997383299037882258745097291627676730859989905330098949105177688524202108622484150364389007014072866367327252547212596267525774148914120410395191245123499540850293557994280623967559275540110489128148521685048565145263708971299975464241885217573518010966653332927845272585683224784571711326915933615654046573270703034346036200041118758628757147366049981121056139298699902289866701238665405823204775742097176641630856331732427184073469660012685786029371703914494913551863677810679331745686687234746690352108153781826621813873472487039424775034039044874648154954924318939649952377460808028165993344517972939940477040235101824854530560208177744868386660214775986977733172146837794496444191698816047819887929587241474195481966097920086965378588479195045809154649357419830540698532192313341122626129755383199518556633958285616243439063707216518531899166798376236099790190112240676356128664519985349714697338539882713959243391308583525050087358816988771045564959186511752314289319731561653971094080632058709559024005670644627133304427698212060670692080876623140974139033856483346701346809091705642616195905658803164655763253224665197441339490321938103092520739283664293210174598284234501628119593420919334721827176089311558461182760234646668743661947506685756225329104297049091567069964707357594189738388796985193735838274232633021775538355959187880672621036441587254186897977686658141792397791305379878469547665949084616950923250641826985505989440095268973272536634173558701152945947877599207870542266596453427150329456341392171925566512736027924870064431187916962961953614156376390664306076774487611162124774937179551874331429472650518190797717972487385192246502796242558036239318119193463836195609046830713577448595684594837909783765527789546543093827295438323602426716577474145849843207064831740572695455837012106542370867026223103279274739717562311619808354124475242053711369129199114297464997848398296030773564844388198156574915530925464937513280639485470365315881663547892778999968587645465177797126696618933081339883154219974673516485943700923254617497761439687169438050171416375247000917754349806524830401467636195231029436436662293872700648543456905374695238214829251835233251647920281090551173129395048383902727563783402278984396882115659776960949343883012316638322734601457933396030795967745266965127562984460085872863943333321881435869439404936986498086118096724764035866487041448981803212393804031940832165617571973862560862872562671536484051240678123022749725496117179680589347736326365826979226863215627159417269116026129684469956963321808427913718033739963752834969818169848603076825467402322923494306790600076676115206332143233033968258617810439747431278555762318788804391268188126830431799356365107973252271072605982227238103847136105950385522608803377850591298878036434865456339115444479046193416216013653246824370209391241901607855377578427982287740760701324447821764606706013419552645651889699616349472490163758170258675229935482309088490455796704469786771464136649886389042540155357477027537606940832481928697963395883688128677180077922817615312363704247761259499260246871199191898830300303261631211766345019014340201708983943588260820126559452030626410419245662515657459918978230644138756301139234476043441405046553711858216718028132328175157386934416111642167638093947196184378015800455387347313301530796699873487253443079511129909165767681958884841152894524566210238396601172493323635711579736444048243666053981849971594380019191754561117782347194272081004275632393093429165653641400576933363155224630505785216607016022425483874107638652051981438614430402907580396687300444018014116800119106489946648662120418719596303552367722857915339870986728433548252150981821091984341806814817122290527295536827247132617815357896774721147270990869442983461929405223946589816745737455169221742524242617769577739569246654048433703700016687580278900707669799292408187425681687923875279548349971578957772038254981153841993516489551366934553672304679633853509101329461883091667519881950238218224702185194916582731634042771459943011685421197782159062183006212603126834468326800568722074845428922343120490615720891143629877272260859516184961458001325441225551501396712330082565228283879923967083242563865550785533349770805037080642405044433423905402112256825661822474747313322648551252951878354233340339112984410394193241456776861550634190445383514133922963402079716052487158396930897699759190575344122982524562888825015458237979461349630188121728286852258144946005694804162624207009869029459869952010974424045515266883431489825802452022699330614215190024849328810569071982775434006678650738979624266405893614055870943990030087673517273367875904453771410085169531485488705189307738179350756738062251285228692515497553853750173578502486410605098617827239190086861306468787689905334216198944997402270378143466173891867984844371707273626706671042357501888188929115420907337733449332957083007395717806609623809001709814878757813217379021631244315891230757403470439426936186846638558167993896915478042141222222410797815636468654879527940127385183072082976149351098027270364765873840565762221631653543412240104898293176755222655707514068557332316505468578713415405487774434356240797228846055156357625754464998824821060442244264025920224191274863095395235020550133111573754481008123144315790674065701317104908187597399780426273368732262749039316777340918763526215969045050240269366796276439589065446224654361027090246596498966566520378532991619428532231818301578005046568415841762738702702489168982080981717108812244101348064578363528708937000144972216593611270647946858816888170865021972090637308096364896603896527440390757413910587335953733509869305944692308995477485691357489561790215171689063496468237663652513739382637641548331572977373290473607775664685955615200013115019586362208301114040766019325388995559803181988831617263995914891921929015371695857798675571236945611949071900801439636657288555892271349059459359757623470139134090840164578587059233880243111366109597914773933280226206174042560982811687968354054071033139680380862800966362005339017356165158847752405899971237354924909862984083864910349118506355561379618386508819883866734600845499528169682728325468489174857617487514418188132559754256237421540606919540454018732492318432701693059594668646993939395517574763071676476772334263815546326553874654465454515351951874254088014806261171635843879115296393085002905396239073425473897344855418637800186184970371571936820812740022473976527514667146593249609958457643242518253399515473417324769873062815255261721274631599395293507244199681673241302239092236043007495720575759698452487328560198132810481584316518471749825025215728406027762426617390094009187044109308857316924956742888107065413478413768364219414740777445535041638189501668951816681099146380197942798412429547523870166382144101689404360281363032270444478345674346252802119189364380178619907056405654091055600421921559479864455649213543787013220728492970998332862900473850000760128162825949764871099154963240013156274319524944465773702250470743414415289651951168400078924981327827859194214421480255424158995910297657252303535966460714723036002405108273248248741063124808703029008366019888067305316640092999210008367681992966866626440020930740420241690379414638870991702091330895833761040271259340287307772598678776985426271089998015832994825368668951299959564365620466828852114043591207586308736853426455784581364806089406406054994909336636306182011607987094101613692177480150328691548678033869375411231369894461072473111850883921044643349184000313341949164207569907656066681989908387559065742753721606199980389042596887071662907243230532207074221850121467352409799737404428650923246092866696860695769529959289818841807969250401937046657151658421145126025373831522563750231174029087350067746931388488901907398158232303688548521229585940526965439046137606339838864073970215345937798035437187229755137935608940384502828824740472093538782930893819769008800782986840758628649018167370186051638843591823933298783693431058244825559369527681249288099837484836858192790622807930169916822231007958718029281687749004971929566597653122034312292939399710206775437593229825175908509594009019976945582279648498914183749356404679986018873444118825396261762782380439165284985535243374681164994960578467285800155438632571962076825681529472554128337743615683073472549629322742058623477670399121465670141017218924805239784614312053052930763320951427532993983419426449850446442410623465327233736231556031661521534934223769944748372145333429290671585263489079039565602646480879930561944694738530668043003052228630125739504731661451167491022465031126660053226201657424100110076229839164882936500779311259867595596738457552804360293494658631727483272145046602138181993212307660776438297963080793753693613348370222698901696587259448005461253903134455791774483782992187740573995777659838462004030921573796978217346501730020359477083987995810515072343330365037131471496675941328910140066138827843912284664956549817368490118219553856277363314933358006940419388031597703969337989427620241714362533354656848475571598491058539411514057803963556403267828704220217083525859403047311327714119994407802014883256013291348946082728156223738247325212805799054997587267180858426667355163567712570221615164180530351395053318807805063373843232759173077516604704540256232119982794536544207244371864060449504857706378331330031286908372889603470061946766358821289023520686119796280273542865065576859470772427176740953411631502784663659430469431119885663511350084275083857127933312676964016291160345860467763106460487394955044718678708447330648511541203227316389566817021740024594381320462482952426992813916851630655222005477525405224858503506600172181897400592599138194022607497295100734393377317780621977490210865795511887428704459370116590291649282848466500815006652916808557450433716325786612912298559744521278060934418698608916587887825001001097359140514817125929633659826625628558986058253432490605465410912308875509791611443616500656671303861476211315396909073794332723716742447715877982031908576562250202796302160633643405878196557245339096008329069343421152833551126959196573901724991112365812488916535797169871355268932846575192731420329383119864820807230005441204481521413646736355861152113247939750199339164064094008282475877862486239008006368958547224423141495569880380086904463051700084187083295311963809967715166248444334023138308559353242730277679472826573322367740169004072072209795498393850280902328168701030653622223851423376352910427308992345759766393754017632123961014947759222170792699806174728088752798937009395245547411949188413145846554894679746383611892302259002935020183040666999687767455332424460610744565255056297859345708050777683605273469543105673531896346328274349142076415012466044399526832855562212796198292604904208603112553723869436231584745494723142269081227852143773099027708781141126621383912816925547226985188154730454267892928478895979174924133339736461513234967695639670332337107538718768591452859851333663303544922978445170936632918107808089554767839811375819267023691625146396907797272587915889483827801471016219940657264647205127942735668307616046142472026858745225879393007467097238349993264951792551689518032390320112668850715161204772638015517250533192007734405898105565798465802001258449667822476834869405253826679961053547556903568238186972018731054752793047552747332956890397640719296034614927629819425458250801533323201520797970916599890945738980481312703417686873182635003199281412250602549442344738620129022778072862812344299279457573516677618662149975752625284155945577874258401575634792501425777146183060581314529291164973177593486942315602540527786525753122025919382799642771934283323138537124597961237306251396635598595012597775255071204589664286790588944203608509985302173514817768471381218600819807558200929743076836380425468164010192322014322056328131918704843916657656179706238496486426867700750988119273934096228868248611791623583600885089258982537332861786926809170963907841481618062120779979258770043056554964771722370631701068302928419910465884890720106765898302909839490941514138269080137366438765072937861890932980293274727697213530652955987755752269960973464250336383847860348009971358044087069277148443925800374774561353949837382304994864612261101047371017719448234424319136775137176757671335776995993267051780859968857907169704231669863027292972154941382478551570011320105538633446776495740144586772667957545897789237538551346715956788462693438454077659450158048626511650592613950884599171092006884107111520328288548051299337352690466722621814528282743299137346139229272364486733407547183732751079881855234654386699141076904578565475734248270147136933479874416485645633529684233173769939264968389437881946281525409629876432627662522106807875666910278801460335760621104433956888103596430694194866855865293469451516072825325879984492600872155861792993942635724147793635262147034653613277301296537871269643151483226503358740033253189502870125819227528752176272803073200654312024974602018789966214696502768521618664283204710613870588001217892505479814601281318757526030069217324065870704830373706892364174628724770977543951835879495769916113441292299205064279262420886127530169292259360761313389029675761183820679279306166098910493846084060491120158219983782404612005265363435575163172199393064768334527729837170615119061600217800854519122002819848903699132622417657386849347771591994120543567413312839594573294397023935498017639718834980223007340466439899148498310447658426497151523506341992769004162734847984328232939837240942377624906060358499606083867630757849746795490637510518841580604429614819567869123609938437194415964100799968356303205346291170856718107047541182352230053504612030702874636627183233818746281473694721736299350792207529959651415960672327869590903039881604449504037295464844773713578553384940956671450389203797206705328828015122901619683121051925232078141709932374772314257157259007347668852674271818487085999478340610618072271144899407467343494086728497638053185593411356444693383611420195577428099570468864060244997363366807488346030425271680475359896936087857142202967712616613208873073558360336009760421256395118010585965026672707542598539045663165883835431744817265502209212594396723394829684215474078231345495869131933152775907453372944492217427309374962075650695235432766383247326053525989838501724042585101216291953973462512412002891299041497886628995145761173337326384280096296771734955125778741880564761593556807887405218211468362119472580369303657319514583183240019908758135362300783417887141437858651321547688375161699932806224997968740835851299851048085700490573130697319886843432210834366799910340616047175411882308555179567734090094148782720217591395603020221451371824824556857805026873499456457000273502032325036612867857306862066018585712456964205354552722032583254896888941547491197124269755720744392026867464094282342813747142522751695973520516070712499478791193714622623336688625473456241479456464405261270216909232941222384056664231966059354774669084188508508112024112988138047041760857228769477289272079238365952962200840662477349000145900097721450567390500275144903051437200742808418648465214188786097543106817282363140948414914807658819583452786922490000103036559187690725327488834730090337462181882742556126212446717349239805995045394611925197229521225395121173293587826664807002790197355481805344563909557053880840443302716612099145066059970852221019819441448055300022573613445001009160659737416346900805177234703753359055175638822469943239747148178698352404393762655657992375435627970972092332834753376152974639580198786745481867603916687710239170920611044525441637206729088035236679348048501476091654835474290407213074529610641213801861738454863285645664962963887579967345614331641422523535519683976776899453036459269222574685128537224905919663019724505385070785715818312139959905314666946778190114810183877625618112243640796757791844345814024341349950451931575687536116177116899633649321877117608106363881184753709265287255391203058275150353819216408459837422992377125102296856365454746881346447264856112391423539784576195274917532187791993177753228431976121415979854425421320671405587219787003957680643700201617213424023567648325579036990122593281497932104996142816925142918977159136275425307858517833382879596244138096579267250988946289625505571360423844176058215404928202301710689338092181502768305397313707795998738351920436854609870419631936846943654952878120036845699470373921796873618790009426187758028844835863771276501337053607840660298733988475201019707948664768620190243644148988045543408519937466022635675794418337912013197893295963579073195423603171153024440507052661976445229733593326774374861069468390914217629431616443380871435858499834233536037200463444760824666715647427402799507851497568527469142605321726943330311966393874329667240907423361392697618586324968251115496052055004423283969490421509406867239306682908382762372377458287581618478556631644551679929310665500254696411143543286253055334833420978427678366105122130505451686219361580063631374631440937204062558768518253907805010517548746026673820018601136477589099147187355056029455745324236670574853917536848181348077583888140778295876808169701540434045794713497432085812180348508318572316726638609514997497226540639540814996472591934658749574548156097234167585221224952652093217387342740194184804646565668181987686149782745231178841902801942256937211990316132259998315318910301555664737360857772300912492542070638038614461102467553101150249226327910933270918255555237945151742177700597901837314611052893044678238164384704663900753629967079974321700543959257155257231822643103198565924859493611314790288341611012887324828379841206308258944791917775067639536335408152360761995071632173246447861696276656358701995389615022458265505603444353660508769272227551344381546893761454008408814790104115048936174409752685082501630986192925062620307406107291982734624256940970192645656415244805198853920409967078439585622175029558265120456835150425127776226733224822298331553611623697624549969906888749090067766893730003256214035980341405122871976822774885254929117603846555385702489539297667850464507427217380158584776263749656428553511460553885633086347380633966782601133326255807666304813953726207106676786873063668795246885579269319089943022786707390824317267776860782141185698177942489784741593852830245469616360327757602292880743966292783767979376972786980509288611633214748369013743585688349629904715646688396995181012610952303935442120770111779863601239840598048309946724280769521644012911891515857070211783142739517071468932323816642414991588705113939304565369769339010185358708593576665002965091215490809588703095520902982818009981620301194087173564412710864457716527979033532229334243953206931138910188221360405586936523631319212840971263029904213604427689033224005475365525470914673000551766860935865880534378446038840747786852435392954598792457839082162967474063208275081777369263139666111496290743504592363659419435513836018096664815124118806074013151436392773320341206727757076289223063823582169298722669974243866043722793128290558050314869897937510641641122019873787042301595073399118446087612719809674755188786389412312950842678248122751267942769896812461547585040673650534052958427961393018884016471402115088500485726413271641118789757270535837361316745788845867458062287594583411419017681471194943909040034328890924638900996831911314048194519880367522473197881601183192547042215902293930135382847670734680951921037485730050234477308434994011283404878412439538956988600883525858948804991805732078907616296917658511934841955530030833423798057533522746572226252683923852627436970867049048740218791978452210711809635236128474039453788053116953608814538950944320639214121597421931593682765051352947056882381958549078464466389533513022578106846122732668339197141821609359563821612571095822244539948293001304994612792493525887500913251110426729836907707828722251691015003633355711621099445108972487765232428826717381023188993332811990438220553916216237295035437722841755923224863183627695007085383069291962058607644645232384748963377546532028452499296561952331550826127030504567463272560060334704745688367431733579199556574373020010981183977476027993791289035447997147618125053890830419413787961248948271641442076642390303675126227416367263888837214714941678404573729652167470154611646543092451107195980896147165707253329278700201602006234483383494179370374870177366042561098219748588977015282077717688268342368230870289683083459060172897445202186077024511381637961394356424671470629147213404120609632542610559278078327025614911662053386576453461876958771616770175471826658178615613119358301544663014762706407927978793522587995715756320787066984902507943379058283947313009026770824311139691539331196544207929942481213182986592607233346272833092970609963085665361084359741529164222628194104439625030348594963623054264884517665595840477291634578397406293504912772635422665201869748510586873883690125137130940289898714036380949582723460962252000256301688537247175867497130988106175576918805587506712120803801580067450893224000039413554778594427889046889203194261411630102060061988737586551941830169143942846643716653758167169796949466924124520120119157191829659183203127087115459521489847362113729066198855792899226256925229692353919232801409967434588653449657004763304658797996766378388398239138226262540005052902476738138636577727287929718978072415194616720143409553734369680736030987687945793164046769017165002505622019232805869061873052205331916124911825388898401656217600364904362963179845413310510506348926585051015981738088253927883870775969031048911472880552127709006392122028835028785513422959170671364815438264771298216487713655583031944653346868382277537689999065891857073947389513958453496103961406419325588713425505278763938754550027328863421626339929466528880553090336100380968429116440142795237863402729797185593133935284241948548788431760087730861344921162086927400105789504175726076610168949309846684452175987022745544367653460917788709414369916486392548839507467389599022662227069578421552531551943516624815383324188268863447095068954929508268300774365984558632734883505103010937030277788487536463861902434082075471128502300443450765245705442839622402042369675720112251960917332710164188646061760295824320449724850673335358583862088912978586382931901156615586460592996964510473827617500726629100661202343764383237208230956867212381534441523499512071273284846031741697102396079386216437910488921815859080886589716897235143676677171341702972092377186648927857297835153596208803452023517962911629622943148560216801456562268007917476153076574994910344032729993750260345970073281344751759056985156963379125218948675131577365400463396536872619851436102219462326351984566164158703343634397611199967887600912322230187291744581283302802704214318221324070248667636544814192266231736162772258312069768438719611542351370978946593667122717391634113880970074313526044964659665943404576672254614735850824544012630904071629045676396727501708636289235392523835681331311014132652432972639033543227329947695385103781548791085410626506917410072837477329173197310357899060062287548456068680210720555401422175776611813832424014140100149549693327509139700545140113222862867401711152646787794231284734239609461328980974553391732244502524131591441623934585237494371229160747848809241615651008938004889971793335700020570339002479900690403536682672368558748285376079764762381343819363896286062960059237257025662076805998305979544460750193259949350254185147134760735918156732262268950598720601233356909823651391915917771546410123898743975010532545014347081466930269030442942003976458404861673604928721885326531305663049586024217184494754856505319821985275232513748624963568834894889783765046330480177871839374712869220558577754249320116398728863418255935129359428243830953866214979817778408581493233688996637042258241442101364301999177867982537310112178204153987547373000007384552969822387167565816539461184802805578243570872335820792448961716599154792614500065632497691045524487763699549815238116831305490714951741590885774445687212895487008535123378339165407459077823010103642807380515184946396212468602475300417554497510424796574559528359458205010904152776090324731176508503473020965105864967339898183889599597814349544875818926454957510104703506168259987006231612486971505711357516346467237160384433188840309560368766007788993882834081456230416851246446895710764367636276341154172930098094987056116146261419888919286240359304829830325508942131813026206921253389393982600392188403639614638234518987769225578765518796861754590677387159900586227882542959287000873509776736029343825355736667315754867832805132604234352224664551014117676500193100962482654206346334845554975148482853157148071624451465979866414128814606528556200307662786663192554702391648398563248069102268881206775603121128049758911062564336725873870660206566164894542484371954210732117515594057908515005265266325889767408030146235393547654420683327891294306343672880039425419757332298013191272188912763403351332107916334298925738214540152774737248085027725487552630851633394422341285684917158598730440647694747872806565862599290617577408041906406057490225024844496865641461191722017480484116559963901997838846850080512198206526952164509208752548277997690252503464630299045440145142809602242110732983527528273805989105772213298744075293037214278192603864581395969389750561571398592514320073682094410996427413346484339875004361035858017393926591574840241543271046245897631823156609214687557224850989797968102371405452203901632191716892550675091604394587342570048031683600916402516757461110845154341540491684991041228662066964509467209482402851628866553506510907223963856978137856488396335193214937742022800579160020526841368895576567558324508847305598571656997288756685565435835775666107517722698250772485265999218609924133892645939254684094263456608481978861748845192879291082657819637611098719340552637080798654415403370459180031894781089608551710869350178439778520794389678578849652537129666539123244504881867891686791453496023591174576095717010032995387949867903617444059981706537549337088621042036928668584398192430983454695869383796216786402811202970283938979770206242897465291260290956163332299703002583677458882443166827450464736137790201482046205439540927121659307608702368959721709114755815958284768197223806120419063763272175660014924869999452179864942422424212772013171435677020746325807061765553800325679273494988376002932247580899919013121568167247016752371949320769186728306764459028216202939598080440438038767746507483427910895722823000319397184626241012733651988336278506186754271179667463760236062425652638998040066052684023928184809250606037050033571280896114533226581094131896052879976448910141380802947414233123641490739681051154421339736720419420663744741516578562522229894713321750564377513344185610307493063437249276631495612874540861638601038960675959936090743723237049850569865527284252009138051680575651209960651383291269016764607489100092390007026258712999052818342115930477728770808231648514105263392118645227876082039113468448370214244905098289577301151905344437636204325491225603477249857896186518474840857735595723872398441346614476378963900282614339875980031299188470508794536997708253743765156396951008140396327040833375273224729514600196750473144639782914117377135661687683577301841065220089173336229981916543011616772412594470980876581123496397602381101750866291599691205557731056365563124554349366747400379303237337218270246428375395039712292927053295343245104354530106478011435947269053669226525288951343243942190190683828431226614396740891057469384249614497256478794129458715412859416556990639870578581698888039599530535219277303153982515981229894623310625807088342377853741736183916748062582069537747134014822686008275095296328330908989196456112817100305299866033260959029300617155922115786745583776074260018521148315290051305155405703565946470063226241872377384872821483557112070387167351022588621597908677389291995383302910746504256049542496576224748415230341809610404093154899824939382306322274337913359113898921804560451714666365079491558429847251472108974253378517806220608041367161321019752484151598422156292368344350220098028281362465330558068626985409611709193120948467614245729999222509105101445738179966484458848811986306745709301581217506420187071409862133675427785519962868033342703333165552227024986547446537253319712826967182586394038264250157016576790406082988400477876259828472534089225641457594329217282299726170216871729575316766881848256316856930954096765459789954278356550153567893315259931172463743798387900767709727688971581928328197271246934868523942811854206706644282262889589720235588876439563779209216745451564138745540015992538899250577429201982384307426574870227417423624238285053613089402295407509184273405734687431819715377961925384640764140429072973929991197453052976414965425750562073989127285119328969126260276822488792603975440967126501589666727576584838736722030952409230521364001394173935250522814446797123233587288642260691583421424706869984550424412836099993796183883754208234573365214593259689144554830916536238150192234342211350707153581780556747553325804244411467875839665522251291142086561751674863158155675719979823925835856107840943715672043998754182617330668275389683711456659684040252332274900487460491969995476976788294030046268659096140764391078281084015615065713662961755504010457904741757489439456865219866116950381847995772113932264849400765025464656404852655971360119883318671037854861974177068015783377057635541359309080498483426025363107929381049525576130623692850106851466380576971069642470966778066470036396741502086442906897461986350393335838636444047451591444185477370609837170839205427862749313189999253529974900518216598482204040438356683225102142287574486254393510156241223193639945967300849318177756546215450021666359803065810904816321492010659774044705105955484620615650639260738200628924256149294290186830627154663098226541563920225979381045283662053576516247368447479540323389035237967045557231340121390927994640937490387001486668743757913929586718561088698078555969607362292490211744224729981949142788535368257997354351700819647524789100401937725113177750899166709353619130834025042845252033936803118776023563260553615596187708751840645617955548810842014550114978685346212838501193506862746044764776877782201172009595644107878180501314081514916554990823936968443253728656240758414139358891183473114381141318028169153359402673930078707768732213897562207422611684100258889630576182804096174131734050395679615503351133269319337203319606858672393646825075801185402731500615668129627963469819484517230807887779835357586345543935406799342188279654690848402845196676797835187504743184663523619104187561148590453488277852292149753483621039815386917282318485258507879964108379595903980927036757187305898631363795972684677978432538855151452320724871925404160145591614324025373039336336952406242349426748687327305616201907562297157808700257877174095894968288251929479611484677843186521809119112206695332943254473662463049440590113298771705850032158447336523004804620798408080458189601955585361371112648864770477131923668716661258820601243719066016864983743304586805924576439423514146246178043542566777169812829823649506561913834879514245091844504114314068956021653210802403055061644537393274527371902891322705701368815981353436074165193549898853215429029348159148040047375940571798672474504821807521700753538747456002474870493355183132889766215106790499448350570420837508817595853023641951830089991602879674167134226109339790762441812071766980227436353888858525671768623616372865250771339413652108000148307063319890280226266308990299026651660831491942120762056118617475097611828357137740331533026537705587501471259309452253329234076032574015435685679139312170045727648504997477033863983792352437051035546128794254515385689517931868379189700780352671453277276463164206896822263306033530975997991443139404483684592730764549081227025545704645202747787382612198886235454850223730086000844966413408406311035226570226848910617676708755458590680847920367514016803914780073678679853757111307375448780953519586054752294436683632721260635764182316193743372584131262608569593667339539674793900231743895239447612089853401322839203851793371271581689410656418692234071765553227303094162673719985877836793545078641312907820237614072341076952716205204134032362882447383581013173262732662123991920495327051530794175048529468202368166741548926375037090049888304468965917562199432346486077749658225812501357452075476364748508952861405230259628385915778283451479572737811975422168096026026333715539678811395479779657978718491410523633877386649572177708862379834386775447312230967141273562044969360150791136442285765917599876505787149075116735906185077849123199760563514343727381917001110927596220334201954318516734575126914052526330688537821605660957841821862221826648498263978964732750385236397722618341437866870524133851636859420547393251767795959895159817858071312325485144685021149354704000491938870113855982489367142534833953044085324692450339193641965139663468063192004341256569422542812819235909757735473570135504138923524398459043532985561538231070569183614628436449421320743599092781209046612896154502829880813525085764058627808602262715436645913391226763701211350184847614072798688732997951999210134970641979820555077239511371397490584151641709147955914016038106226760251797022345521212386134732330012606724224820446488970173904444243367339097623313277551963762120302911491435411861848951886937269535081281283431589387442031427007766086661647548016887585676688461310937685688359283177052502577132432505837172625275126889061504257716474839801645810595963122697817916098922351994288053903679100744148076076139033798675647091783990691195453028486457596712716300961484774765595062799491881942859570864591633857674790190711181602288689441602273815973428557771183412412074395327695106069639021355711498941904079816410908221766708388748017158623197258138545868424948670327009531069254820511218587277386477781347856682837595093481382896152248574745623579212180762597711486865922343864356121348623068160766066899032365656639612370675819432302319111713203030887572819386154124557758913420144463135278727993627423752196181143352808475904467437216425160825256355309457877993574860972772026349862644435440450858205588637728204720548971964227312591295880346906665552485202617012725869010475181643886307499338002234698986547286368840656157105937857223420943769178008147206752463850470643242895802630172979726646988771579807675592515832101431969627273872921073452545877722104292068436302683303927533874120444192335063481938778714222325469813689361318786415196572726461629129289791768401913657543063746335970447855473652102863789410450869302483515068725154395950636532559758906310849044184766446388204832096590385813389361757663337429333321914165450563682997115579945345588957952085787427063173037156165710345421012275432376802017338002834046862823759226969583692316871187382611873627166323500333163088292162503374970090270915790766892901762876396492292043102873073298321638558369985525354911983546263302071470711703265196246025866123422503490835620868190772369996859951894683241915143203326166146043526878312062858061668242466090297109428165309253989518811683452623699293660574610523524161960021258473479407881996217106443168981142568304468769932011872245012178789654209801183962349111028739581235040368756190378295280094240318833722828859186169469983434212353473566943982092016230702989189804055531162313211798582656502232162363386327191177560401085973384948236859617856238419106044661876166642232418277329832217132637682169960967485669080146053465645096545186922925017573655957097407812855980309083274552617726451371370292999511722066354806435082314736756659985115164270203137373934799906521065821879447015966628066787318318736970990039107684823603935290959528806228619370534511032987029333616559662179176099405986469967715912025406663955958979210472076872946570116518358820978810426224746925645193389930151306044487976429362518221133903401518647802856559963665812266260921203195748263197064269376068908107497788279447200895343301130845184350766795345794956062498938165080307710707094181068449941907224078159632134860048146564716090451404761154957333816874794618528670825322777105699831420679635026824250491893862317717343689181491791620617860913915657541574930002685708548981258274495837376310087141417566338719095319312135488705823579517446282928628622758730797421028336591472878383457560440643049810972359464205798580555084971790860538283167676749552119019774053686002023904416490287478442339921133620735232179879665694363767224499249453645672422510792713497467299031296633883805630488839543048227641454146623465515327659907118495077345491272502578986030147153795331453629873164825488872913264537657529369265506524240810086707079997721361696500916118531793675435566747356338969339133136486136471297100100668543541558070532673684508146421466574235038718637129111171015024733424714592496622740749363290441202463232692988992892692369468058352910134865485573687969092850733382358294790584467505007133909153606358157017324377743674479053142172099039917003616260179946474216023202963963208792175876003985498386480395004697610920331191237995661574652408279383350655958023715435295510649742529515887301102026551404064087389524179427636365820619887926530124173509366209317976727325069383998773904764450123548460633390873687756322712938764249130866177330351649387996670056822731082414472942619735140101900169377227559332295045083568184320231503968313885164351276529052178982540640516636768042509017620097564273232435898324268500427260791278922426532986627447597781709248413952584324538245249106246718047494691195914252983683316998938784575723390986321352857342928032381529311912417835183067085681726769415252933948747372615361136506953745998800224478953721561819336340383540276492171074737398156846840471944814593587135285416742224434873470984521321840805888480154211270611539309090277082443505387014629937119532766711076275902139828178673338651026994072087875591615978353328181040185998199790086970273001761247923162026972194571117585243972965615723517290341279929516724099208320138921495819893243695853993926676265565131947509070581886339560332133202133987536650346566516113787240097967093270354184591355602387950642968064722045976175500313668783386820443620352152281092321841151369706294155754910261550351478808975572313776210978350404534285618703578798629479957042666545360611624688290159233454754737591771871393400028851966221245443046571527718129013302283964965222341094557144437804497164657755719459886871147101229316934666164564786418743629828767931937893336843691733423989490213115888829574708857281376565054714919951070518377463792387678520824075068257516517575695358758744524436959431782326297242655133585840571776789281542644375399138792821750344443756033526809102952330097113171877104785280303875723807377461741649794010244322597760507183009704867372894982519258524886823178146224836406879755775355950828784745009394706962999769264041990337178972497332957319213487503785087524278214657268662309553994666331104862354743307102563539613713306529080004348098117182124029620133687325783842310745127183525110815632745227514648293061079958139373620300753276996001479616113567933215417284910360843237203597234079873542077503932410375576512726462879280933164972758507092229145971649181539854933638705703010965362024102217432085498848309530907906797847338328785994379706258264924445017950954749734825947091652557947312388544873996344265878616230641964845198920380484725630117807381355051019803742370965517172656549433806349261364755757004889464873827127278819503094681262303972570308199169616355137869892540148311956633524744891599350277927940260865666709972441730345781051552214361549002067422154231281871752555359225428983860598754614455885776272226974324205364150982366399502060213355774317309661360003469256438653619303036629805425585864265886627810765245279555845880245455752840344475574703149040342744815206667206644777896953063389521970583412203639030704532951326559919509290713185664398504217340580873653739555533095638399588647081726537895944154719032582630855210059814779300218501192428695228330238150335650591121382994796941654194109402823587450192029217454542026860188211372858070094140226210664865447571558395087521056460473651078082737070092385883039320995405706971781045385062861080849472581083606270973575983720969747229709390605004207686314134546574310225048711087346591033920083403570342929349599827117486315394411678938536913317470018670161850488212554771877728198468358526102362598377237450386122739640332229052368309439076109242058597846271491925603948787379808436815987737690995039344025883791728861916147458804204693543812413725839737703746221421154085121882504798221737092230235434309432090647461235259035362435206101124507431059486850407468562956449569438789093818731293306505754694922987876702574564645675132448132419348637932446800551868339814327529918936208639336262281612446613319490923418455001634653062905886648670928935872827879912157587855965149357405221993455941479522911120763005372395837943713268968039815014381653244633174032660691549369688067102939138061404473436038671052549180742434557911991865328463869761885164789857843557288293318135796514776588058595015478836522150983459044140003962032482759008785206248220028652891328438008756546194266689996208688552358366092285920535374525978020399977657329195319443401380824921588487772479626283728559998347990710492764245219731818685129437518817700227065851681514208282282576192586701538350190603653703007851387041355676885186112696089837780614398803011251541534369859632494592605946454951798295899270799780951349487107605118973683285556517398245997025794782947646382469970191630625359404758376017479485611116493261587133574711463800706061204520957029975663868517126814111977650909525449724356030295305838535801409145260124126564688569387698478678727331624402338916876259266891662497388717647471252351932139190223337511107878279965383569144907329985156896448300742083396421281967052432231480231385725336502432111604083736364642925734244681572009007458077923632557244992605906399324523458225108750766601922746184394422327654966479140571390979299356854790933697324167312929104911226360186585152502492297090910300803503050153596803146576288413385319621237425262812852269454298483390896302773837863148776133453012034955903064057682190529875784037595577163841326894038233233131458873915360179152495816606605646037659641521262749789802755539397160341600047242345902003039943821425265881666221778270449624224642194651810859711730591104798254050925034183838288029924821442948769026791086217482838720441396605439136716015944060859400952942425176808257799651947724431465282898808710484933882089380955561079708952515307048325316324390677219414895765195262496012650823432302076926734154941139146374239341882767466058648289382289152445174345903517980973256199128620981620637407564772328934397995639468683940068508235426685155121022975256799750852022691289213523587479448693935727637509283157753570963683111064376525005686273562438891979971704688987913097903306033104917581613450819364574527642966195268646323737529460674766685018582226923976687554026451437093537700176411211312833138077755655869370178004995371132207115176398230418040847861263912828538923900501632417759712347867183345470595187598434923998454368950587536805564658737786512953754942134547306721505337898278341753876304880911248305933884555209379057224594888862992036056937761219333417974719330314129370256670609159530260060688280723753322824766052036968665681059814728945786957446543556119379548900692872238822067066139364715861399184215597258506569601783807777187219853028208457649016980044977603317260068509597884495606322356727805739252052861811526326073442504290492051196543264656986990586916386735416375263799817218358206800214140169732170299195822231761194958826562156770765425288747093757397153121953137114234580932918935155908435394561441423487800528641044236613790409650545328586130477031762895730118004630792388178837948653921659540221892461784513667886016770840525192717919136390090679238846156181278927653065988406752492144086136077918044479248411954230002480956873379741257629971353672517499023804079908670486308102137803462654137210926770296549638713990127035450858578422468028867320734571850432138333841243110853615636918603129136877417588290442382863387101573658223843703431744327061729211976384245712522680978733788280890807293947988465046877315994501554343321595878301578767175136808791453420459688364290962733073832812017159110229332797108454139380753103029031019090589359269701458067952861562737638498145436818739020522969531150449568104145159305155335529341394240478576750550136867476517443710963753181809896494413941415332155195592618378428890282899451803050720983864056990645139361452936503450900418683592042739230654714216106117197091635967649938204895224290675290281348270927069615819032293150300598610411727099686502354273239713056439379330569550580296181957119911443395759780430066238585886386849169896107304621802505674367523671291376933477294853020451710839916344010122478997148889689053559661716006970396585377966884810366456569190403258246655669812858423999351312996213651796618783220022881744781729141011208180736403226309392301141425209315541919116987445690888835479924654088791502464399519037885484635612433545575155801909839480011641131919086168395259546183007799098648127922151860317696905648441810643023338346938875316031381138239523226933142409263913999889806341392689264187372541458213027673851083569774106513947914250314812277276254782926606300353961898764016684216004996860415850194500297884892439253292872346593209572272248132646820056691946536240270786279996964718189590409816821664299279089281681068884330161923732564200515009584479168713781735523321402353890252251644910885812499747316116794912918288475492600831724032289873480961287486132204211027502661755305537416263338364980068678778036748671639528450881948470157278175296766231496698311867174223064066498221559052479100832365877045707589385388992932390369725644180907151298957210697407537938663012840480311442665407334241704622848517024082982176598972673282764314855068220838364908639890982228462512716102259728425975896270651402305174320940106262569840738051011162709332864466339001831377040747170434815189200380168656794293208566222932949980898169896247138419835624521444927793178622114014455714013081011044039245444199439450774175055226088412692420215568265607106680537859007205493963915612315275982462106315786394502845587877508236134578514377133249692781309723266472491382094736809090703083405104210931176177168414410354739616380807356347466136813109538824215110677705848061689991174977407914235184731871800266748515386712041930248121189386476266538661635295847938248112527054441055672089999538908257579139763265918374401335789720657901906824248337790849010442528748872892955029757765143397315313622207361769441617339248817720983138429347620687074027554211693970044361059409062840994494671668062265885696848332754551099946981694961234072277792589443591596328979798299835694479538470570007174621715866335899197749108121695278150716645213255685494887208634376271446216474540472055924621340928044929826616708140013731014454983534192611597358896232005415204180566549251598871899306648316353360472315055115824934983523338942754502316437724069719169518998033044273703721194024402501449785811745341297593446850643515896786436693540664945269938310895790668010521898826374084553502992913162119330052530869963409648532832121146999173344591594437220384303763383227183298880105493263312759736580455956541704211192863639879046044164957865293396981784891796351785507951014180274410482659650170357669644568884604152160704566130941542950796631633815202575299588100168004898820372833641259061343137806287750910784008259489289396689062769218868122341261536276393994251631530547167407266432996898189580510474864635198542116882199519437040921485031949821401986707312881844352191761410473839735848281275116590367352795013151670932359181589635190050283334323343964109902354942846409004147461243560065946411091634090000814948129330826447767759511344883673861368763810276364955708583970483135169616746794048736366979572581863106381929859205865930721573448252359980125619153970664044659575966734563313397455892984111793854969613786485547179867833571458776788476305443981078963272184225489985519889447774492275527307563168873100273689016924383911618619851867605252049945123640009584538962085910955460240278628752045395887064114996061741650263691196076532006880739805111405701544126245271072482422449878241839175663897681238631825491561740604192712675623522937692765334436568187926575580592719794583632908989579566773135976291398954123056252587550972521000805359159512116858960830052866567704115511578329466676306665491324073914562847187153557853281570248991150395904732123540411278759866977104293083594511635919097920294652058011354851934300309872811320420916336030517812129999436941205255400669139201842679213117002936728283478259455861984823478129284615440974553189157280489631343520116297366857143131042037541054525603031423131055734879696286562945730780535861642598937764019368547341110128948986249876094740006566744036714363232130366852813753544490766239238309654693406705241635927827307483728131347084992073191169441207268133003911029120556013794153958673711368597135888745680946770712354973998749203866222580797370928915408478807317319449652569675583172032476923586761419321748849935357964762780003358123868870377153830760274600637615965137416385998403347042112768574450257796211165989894749982646360597911447306699821949637193132848449783547796671912017267504858126062071117642896278583282570990264169112408673845661256944510103899826679079070631462899076602484187147698145631570623653720875703086681256878048558793553145934863832741817667849043266071104496783631309774411102163835411886479234171123611190783087169667152576166299267553018519960798399399370843211326353130953344492670791800945986314999504341388929600261762863502801385257420438696470734889585886830703885013873139323298673836523458434388830762954984031748321753072985246971425337629529247045428655571400295835785235361967276268459158867894003418111374623525681173728239767604217320164399582368374243623712142358980278046795284625329900760247080098572679569754882376229948648818284958595771928474854070477039754833595443905299508634649093444011100913943870100811819648571722720490234968614408697879495907365888247101781093708367076707210311173689200645130947461064662978477529781854683139081970656398502246376602124294852090513309346011605271295407022799052974885331222931083894850295793493394515849925050902648996460416727619378914850080856390416136706789197304583387167552866137901726280264572647262611167361959451951004694369950812576809340875931888277650644890664616123704617952796256229266382239193226183368267890486884745857533718774228703341271519007387696641246126703709185230737807929670651455688891680542258600229639928863180824387861339665757332535093728449617408474963031164929839730200695748977682767096972242503672923753222987965506122043687787273836349802961549166842868387881895067225379215217575195983042573867302636080944580316501220961566913108077967008327170958590803166228790239438151738458177393617337642503877840466360942899224043507252209915141504287657743331069273801064867285788706461449188513749835640464627220906602955491115236407351474922525591040033230815535828647438178085071035543764121860860480113259658412526384613497283979588132117854942401458081313036705176414373896966927535390012146877012322598267911713484194475964759593367788378396481403354468573352782629629107724327373289281641423549675345165340122218695225965846626795522088844704648213181219415221615142722746485182415067763649947443333439586350925439495856990482428405586391859597494834100131516610328475529229027152614233446032969132492633062692299487466855881360803448044759054559413664614311566352917387133630233780423201202744989920307272845921066169046672394331841523407495595385705749949143012127862317978470944523052597647975889229297983070627183245984796326998910986136060427296358952924386102114770560706752301407559962831825856090053836189890315598448524248040942722343857964699905319059445895386910134623734221552712372130059059073896307899772155482794715248616564265471548623127198478433771689312186695454787763075339981100648343979369876574050186832151431421904038525660085233126744780642345318511137339472044271158333609904969719267324841305647452848676528550426051555295276001327646337577793576151880698542425113361047284585233516566751860381038968657350710487147774156770133784425618200932440268910791761310083628264616945505446124129151166702582095834673508825460567471604012146565860432452412893573914845751940339284906487821546302102284122933223820915740764700347160407692249445397097322796003053266928973484682795510494297761250966013572477094221222184078345776220867127813006868349692686476133586250436159940529233966083468068310302786895620848134462368543092524458164010984538156434228189148816064238035625984057172569533368050692159308623001464543940763316397835636281721190449794266564340919607636185313548179092584345802089522241745248238873225590447595351515196012356574971323643917298843370898910840512703751812111123863224631445491284913306118699340008978675834300669110059231816189666466076160078793851027239291774763778257332141163842460708144336594740420023786441569267155916898613733701514076545603392232146646427213757879997726671697809733729389263061553571105276542254491690408841120542315705317670599074519026304760731057963091478888535403364833059255323437004818972265787311171050838356363190543144530041079180994147835200692067788408178049112132347356428505610926341981309096445238914675538882188378773586929983912365650949430716673320278696813810510377894483251700983357234642371623508975600548089638889001024968911683944580392642174026400129944964228373967039229896965334679650161553467347026374343729732333367635414771115153428722302789122902706781670015506469527953063864633607404462795174876993970126871034321146653753899881257925410555180386566865288540513527871230749372340318424693626059631311741926181060383008948426430437244343616745656780484047053204735378810953211958963969486557821942903983190527924547918226635915851584790688978222777494284239041068316066479039120880082544576854160522492412674197890970192045441615662145301501119029877258878462960220271563391372265235048095520836460504397810900254237951140479816798655283073408455327441093990227256248808563877980364382314760664511561496683433886400589490452759700190785744191452608578436156390582652984810568247775414776832399633107549503349086060351144544483704511802275489128948207089781028458469727517048577197594828706126488470016612861475498721478109964577561649929000192079161342429421154064344012768061923113615764335549243345583731524956267840456636600081620730451196906805261746109682926071794118337321935664535895392224135942758749645972313823365450936046516976008193390346202772473534925313901911989551558165487249120929437793009757419422237541667485495427654324509757242586569711025210923899718441479078482447718211796353430499614112257977754511516853640275970865022113279325102956588867832535138166435934102685717631272340715039878445375862413980421630243810224852692816009877686816238633609734856029151898680425691433235874444177258386819045921721844723411091752568262409633403633952840122256775748007551447712561013788864153247737982075464696972921745904329282144512379747009649927986087223881095712037363819651238293518399817720612106156822012146865989129198426706727869407231740659381321188152907562023874236195772518819668688182235587961459674719634746484646576866714166370634266696092780108686948339240105323480020693149676792848089433592959268393885585709423152078454510461049465124248643359295911619748513518082903433657944735531141257942161923840299142933446659340748623523949657175838762124658146494811816931014812835446692554757623972335029744245926311523679210540762050258091464635657964227086488958965324883651719171135447085345852299845247401638196576030368969323114021018308752640006952204367102404962584776215383419356961516066879431698232501918168913205094099575523130531563707646723502779958048144031446405024916154940568422737270785481304784681353672530043706672690867153684452781871965037051413763101767770651773154939957228555549894262534699377245955170067211256240226139077825972757754664120798005168475463858981181054798095551402613265926234314158948732992439129976712355912802987081778536926051716994404510551452113081509769436946122788815000134698256605628192914058391069539898018948829811235730820224218796874637548650186567716332597156094953751437447440393533822266916876693888865294538045239843268014299792286038000152443147485351982179827696589692551502699285519407053151096430485825500113862180940132990154751300359590637094412399301749221022708330710237540886143778779343102831296281674302321446572960131117898335525114395812078092932915586746128086310533441712255049633542786310841465436220964565624678470919054707904848757687225117985499772465202017915132177710762642391322020640890519599046526931436227761706328185898518684784650786433601331266424030124753885213223904270627818475131472002859393072738842468430313093359630794427391973196503434825373972556006973747298628895657528091082459380606541733824358422215474991786259857142516271793776483548161252364599966160687975993793678805956921406212305767524687583064167475661757586608018200514633268621089609361276557143938182411491560166382042012496217376575602614684030240918262358762769428301172875330412634718943763377211251165286694879802813775709167705941365827494201094449072600910309356404456145444008427015210793920307847035493264921122101130828612688587264949057467578089852510848198412870543137411397114302035702178829188640429217204831954026916826662912595872087681388839854357537201214026323520951579539646100975364688036074600456936402746863991693928124544817728814171794053659418116322879435034915386505644317423575438044495802088243623280263662015637907990466652707269236471446629811517741112831976251816413217106111311997946838469067526099197370115370928592894728959629191897636788329619115354019944754007578342938517968149079359068450561798846394988025470470167872318631618718412310619832443861754454071063957082134664881870729549816014960308966915636395731471213469462720296624055169143142878501096513358730364197182936030129935069233214979186505919471128253741979454049065929586146441555367938264248192392662321498329364317229117659091159460845403377135196702182504326156538225910204050096405040686646415980360075906224535502583000342501023327645276846976112639370607171763827771822538399106195619680982569150372017160240411826472951781208512599367559346014766113711355654571165570113344479111806991893371482521950846457268077805868645000485679663783908850605270215258502666649754157325583974013121815410391531668843479056215964085592284603901156654565237996521936282213967778121324796029528588145058160518840711601735546115869928703501940971716489175455872830160336053014785124784571453386662862490129882938830031602026519749271150166533363807757667073069619553988717526828897089871118369606578639470825492140887027300347031625880513889439180853715300711339267126844762801346955848237698673039629281175596536872905970220004032736537299675532115007075705487271727595285260499776620188867859361436540695463256473151340311138585912031241331177691876759410268096045649203466177588845882963981790913513612773509939265275831304172743249464671143828362475010826215990565579864299213926507113360351694272781725926390227025835130396112314851354841139722176620689560309726077510442874885681618582851454481309639073711789847794384963036468773634346961283239147814602435959412972109713284152207627004794761803015418049466981184355000287543133246659208462340034101493294181009199225645369896728082200344583557435088073491087779993851655562002313753275062221173519079834604167094121975941079061427457288028561481001266182785432853331015018467479415152281405730074102774064697166370682797711613475481041863397209679052883099365635809536111580543050110998207320853929005137024043918027635661352617333341371395075664491228105244350344319084499016215735061217807207766767625253298137619493176241364433366701789024481962535928363988472886104406361278226696570016515340201667283251955720931383341765305465064250289856849638491956258393957220093302849798135669927161333155831982798028801820547488705666207754794458137948879816180359724181258799071004275496946616978788264246454111454858213536689430650517743181012585111949584678217961238992938422522426477080051499052611502190227536773395678675351902215965327358811166932292140584458182947478665199628926182978813783787838052620254692566757089327718565262849169437656521699143848805980777199685566860265911538060749121113357382337770809492808769580940215337690828934951941464236603416643138705184011742928114317007082163988486143431962152041239607814379874211728090407255023837181145414263521486710327230334571792964687435231391651857908589872196550827635030400203111051294849630863293960610227152145142743677239952470803938506652963634347411856383253834201171654953106067206957964692649249287238965251194519334877464471561861597615354870616376747148777138467339654905397662360182192201158948678838961355967267939241595214765358952819264200478776884122567107506195500055246576790044304613919244447684694999191607712879653565704863302957800000859973284160943726187895361489707310864137803574274887975370280691558567818649478168092143161150071260893342565313449935759140978026729321504045401964541431245662269705436865511320267687169225174247052147661667123574866778778976953781358237929545384706797773186961997295013086892333459067954604960785387272855708497812833531120919765659445847318974240949825745961531076479827665587492112239581534968414408755512209017171457077132473526186135456095252232058244300874939547272647381211192611919343338035492649394240129870577427572200596210252074530497325503843955573094815781070286315776153938198201014685217444643245317689985120376376908848233960593014807698045236089972106224899503965281170001875513470145603528936122014937620308141720291510872664638643636757259539384294814065751800509470678522135447351877501280987073408443824707155375836801578378523004745691295623608641056379455831322862908720158188796423326194295019643968872969577642333427493801530214918756131685023293196155203295682984838914034520864554517394077836052525077141373286076324343859118857573173152023379475521788061524023302246009716403513207676172665872528653221428452414678236158278623744863945595007671991246603993386263133417487027371494736244899302586195309248466924701343848235618196571944211217478116422747504862426060399251429397942033256346132113403533437117835292012247395338744843187277446380295372160346876459043646468681451257551792452502935547673550701597427197735494710732216034223049051096591986212751211739719688687709224071309734988501992317801620285553011517657713243494590959482484795972909804587696179391961664497265073496073748075279088377554205426167407480527418062303789553710605484550234565766804728535421755684223494810305449855066930799740127664918142722206288997920965596222361120729784230980291508391229259455480966478756847347383853254504410535871232710949211110665265746415303291104998946861889986449382537999057650929047832951578983574465299961592699361204222994969304602947828127014990151145814458740107774438828969141551572191642367919381078231496460245483874194745079012482805874930984255183392115453789528407246647618398649718223931785661286986847531400013215822252269764794840417529656745473914215889937128948910695184931783099403927990448097553315680357584176594542972593540818477436519706262808588959798895947636044851778487548745791850201111898367863491023238631471217303617073345359942817828448725237847986515472415946879516017210067712582481960789279266037677714663069504676952960125331762011405003912025074219443193794317892105443127867196058472098208665102885522046646258199401805368707583442238230331391010085043384427930732440698633448028420021130084192591389851433315540490782682158249152767685415613441737260221154157338152601985219682619003218531705204067401060439702808930348745456258001746181169327563442851368637310750991699044866636189878622906102506131655180238422011298170227261311623026996075985474906457926032873628708904589752636382387202257239217081310581614936812095267188307635761980221015124690926075512586968141720307741343331424916483616723477425475026788133672490234129343526556447226497499603405443746610098371398927277974608843210447817295941735698420270484879503268763953537809422311789177675032310308673572353982437848327207374649341166184009275539384510499881610262406924436219100834795797816684700936847704673275019980533745763084078545339987037062109424855739778974072916938607682552758768448381492719451195381410541955267084275564915315564979954249523958444364759466271497385672092369945354711384292368042782186723750436852979657727890689117858102393060704766992167852343836919882119192850388109537430421257214671535971751071576193049480464059697563594725403877717533797005595298764119121775262354067533686814827304345842077863333573748264372165112457778187392083483362522934388008767984447739582094080346689937773045383517314008245690605726300581073343119362834390560241153520060700415280861007359316058633940116374764367653220001986106496429504318787218012371104119416896789043877203275983761623074486491057602641709487520665302734263760931512276857214670069923593584471387032026445836678932433244002948614631277208732725339143095478315551731584991359445918134235216717507108791114164383769427926633178237625450574328198045981028013986842777751463014998021190374914146179703382317430448781590614146370029742913451523376592700340186219118073905373797454721960678916215571128264247934517656111271195735078633363567846949291837153195778340106133698233437394329419940425173093453192657157961408139247065839182722349473034302530535593954940431008881482752783065421635844638401893519361736011294429957390630652591495601115296208475055704933707379816969882817878084945812917868461763090890635307628297282147381938732540053248832025554558579573054306138973067608634263439762283646018036793352775547294592405246860811824508249061544887425980665567984628682725210713102914765047593037140890974642521952668074354255109714293889045065803407926809355647743487645663475160957465115294363233387218326600893779340096038991574716458449753048355300211473882058843789300294697381353600874233949093760878302211494322787874615850860066967083807216910532771967928855519780263632583024999990052047135825044968053021169810011265882117499036306522856867670539083424498050702470281061795962218390031617627916228662704239027467790342440685629242617538831453574250961317342912447104836807113602327939118625113910646686746425639222764290041362242194169862350316311310511764576347745062221680205045195811656170645585352245685708520230689066549168297617752662673677615716106335505720168408050230175957566125428844257889969271110576404359316608545572137652983050170641898859680523374761869309092440809889848662690044307464571194279614345103951479026690622835103503836229306124475227551674301780008731162219198252893501537299814450751318159941214185793064264619967960117195537447949644355033466001904851776957514269901233913274331734335168056802847151668952329467729891256370123828377151851874503371101794756493612592031491318045124994318458609859261117517713188376114796079067002522200262881778068533195697470810347575641563298742389580271781708501365019532730059337226701390363151323277226168513383218982021253819350457927366806351857419189722370598596603385015598773619830457913141295683068612425058287643599289194162885761440396707082879331620027489563381026682206010517215840837293487553368026182479360879752866953532789146372800058877236289760555955707772370406914561034416349089998220346947047908399942257633339477491699039315873575053511873560762926213766221306326409843805727177158130681319670853856334814346364776654676210951366292332132303897646096803569869385592967113613583867894573510542301105965214684682633851862801260013489616842782561409106735363797010939022420751012213819622754058980486301252215382089198754447861851933751235009026345705411661435130883128448488880089790759440103699146194529390896463885000748819502779450453382020464585787410243550285305865851437612881940375448407135207395297716688612368045337730445812690167214488367799394446748336557911390890292979494236783238052901270915045590925061288295833591809493456162615424832768687678122998644182519708028919902459890254100035943086007708721855616441089539121865476320737748246232421007328634813283646888320615224826760172917246848104162895809906347195660597711264578392913437484891655517818103034792057541882271443072995736252223324479294834692613817309655883222373757349788755385844221665496846745258737955358121472473333389204885045786342142465851394974996496422840181268789169414613688916920894047038817978671361267750670923902912820769551402662163362930751360429568302365559247066976776922068923795644328269024426628595905391630750481461254312215144579045525456396557718685324747139374626075538759048758942646546322274486082761750250286990910515410502457432422728847653562467551969015794300842197128962844971794485478710189916575282151365576913228045882339556639378162595657061339218512877259522282553646681572428306058717085188416508503967505311950281456369387620939495301160075416290327926858729789057692171606785778848528884940963452212796260431242240343974141149468519292167463453979221723315904317324443221416637177470691217424618943382241901712975529171970820381878968833242784931490798262440105627280180291652611864742068128016520331197141369392711229266527341761872782772381536204173633578230382231554507890835867574184188018146582606394977783870024546226003129419013419026711499875771405167207207824491324362247983412902076502600422676898222348806634379830056341232865284420791710260514158508593895368635510013308329110049473177254796175006977926862705993780972746725742850830230326249237105416461505240150387108999198895945720680671045740800484652012357099151749375793870497528223295257510623363828192362924569613686610809805843932699481921082173517341020045119646230658300451286353672353228443170900189268902279837014383060780179626108517284346666823326626554887491111338613227472412655048096163186372252108697915808261336629564991341198333935321023883805797799729462534425288752860858794038849154116920860583033471735932652721151359322228852185246567821305277687395408000374690867402652449975523728893679460311012228066540958507001181727025106198829598923252366854966414597312500310213649463451996523512270948447297203395037103282890479031464276045849175656446504582745105025359977756505879401405245650010340613260732606996562500697551002954906749997180301269606129182824288053881264676969345523634568302577618669195847569103287129641299372765636909585524998234848367813127126634958213574236262359959276506966298299494254747323334251674557263864530713712144585777271876524816095303855446706322791253945513280415067357572668565515107322092678571401126346702319177434251192816546998263313733555465392920533869908236703576624116004729472464602089868014925435890081335910728197831289063881842058298330350440360580208823237695873747181666487243573261854185695445250949275315257073005062836715900861561648425347623506292427583983648318481837444349412798908164923504878500556251945291824951540898773572719472620632779759640588704383017620174438189218019838626237294469824487163285481418606577573490958503178848353669039540644883129774006652443024382690594684137013521102182145679861144183105752122091599756131938533581972770320076924202420244316489155289905959280222966650785478912735236570295831936475578103375617388057520550452866513096633179755982508856220752981980224384326624145925944854346910532243954385618762732317452284069084373934811711566099313037989534580595297913942256835201881169540265867738203336272150896790308019648067940541868699520106555834011607112602285874594356846753520019713564994832380536728960966025994807400449656390443085526713927806719891847275494609052100257757573526334887213080290844712282786793363407185336641198321294688969247742325772270960348705113740298658410061622303113509172291982049625629215954062111353656767432173276912089888799050140174782855128146086509877652986241826434260655549700800496460701341591559494657144165913964452315779241588117077463860917894855392207350548189792870476037119993019094689492155148766732799304279824017658395218965648989616988021212711222035667839744447820222705196251749656231813151578349677940276199181404128629806498908849648018505300156826054741773407875180828614344449706100750920855152803214113596309657409596731628517931151063634583680271436419415422774359388488061011088830293879630510869604254111415686161754137469178117667366967295501565535881170770100004959121834045463877098150928747790902570364090527461581079090738261692571955518005764458194864787830725538643237285831012007889200581304093222266141502739312115566966529334340789381773921129226596977845908528546684145878419838068211630255311775120141196007426356429150800184963684657292796433845191309391048000495355337139358823071041076942333245040836962218739399927850230844547251927880872428421683282495097944213640149806206646538607428934250725701003543280669506503268445288892876628591589475379268798872633904421365484619961299794561986371975885612937683271723551642299986262700493696173701468315171096913903637025286047038664120097416480408376250454048313297123075543040628214984464031522431432980078171434299834392569332239008275758074026930801448882656248422613978578720346263132080901937138688426995636199657651284066216522166349727209529138313426824394741964146957555845887140743872831093452819036622073458291079043789964221170201768011306787222511549631199753445232202180407053839174057332885141091739950254161511989160691190980376459561798021810935066391135121759691944127632275303056122937820082402705801236888830156318007247524487956264730257501757824140199634918082056863034749052324316080172050569077966294719733989750182893666909717929749721858394410755081398255326506197156685624895737110554343416045659042486741279484720747273601554662738625652690610061997296255826863540824260511778248296371647251321270481957457129760456341606152821509424690450086356815544451418672528530067696065058990116529450044452553377827006275878887504729305185466279974083506518100070754992721953884633311015273660344574013551119034301050402239726840586004942051896170809197918778440407461552178572508501767567524131031417119747023411254744236400298066668064558547015195662864943424629340563700899095566254198066871967232217935003443671368150524357062636990279124270547764302757998702110130984687054372354078468108413221187844684341302023046903750104794117739557506035536531722184695716666593810916303238031700869972613410311657519176247048289504003179362873152724692573707339037750900420001673294634234631435147889018875158783181696512246783848489870944148379745724728943980012007453377327532413661229279968298638905685818711702476018918705334515252314941608833915140043162059438943915022150127212566315220136383411232803477316658236418889255906576739259462027869145204894743104896327955532780718843756332718786266251982825860910773652199894289050809452111628452671489796219040387414808869330685175482912004079798338247592776494873097956803404765722871124985897213769102639971965701776077843796536069831232160537829968617319828833080989721071273891852610124339349926247856974645621288061818776152286023214369480646843710501434627688503105311893261556481489483081349277034875412998147228520927567708834731783201112784610140326809906796068483841390272517228504715390682046970491940398944513737022526122272566696524888120899307884663465099147677850887170550043481367353314051322810737636277884264319823077752226339563560201092241939107501064660925424255826416921218589957452556112647882521177311596290975988176969503915413090947920810164740851800060711914184841084963854273237761532407101369610384278431359681005696222484537518725121276885640898227969509765071672171535309767761853116442082156629279524755170097861200830357476029746209403297829025113432240074370938252311977956300685891777764063456098804354941561599768952375790160257148460085576006716195678428480037730142600969530746525733480215589519581874795577030580100639104146918064648773332088336478372579327676566338805184810656791313118249818228779061779234349833869819616668144271449964757688350333999398442341993899736619004687099734697475062450333854114420343169582239767249324499033436467887462830014633186682417855055794912286595850172818236678325568294153266349749674525091084436743777734915939999144912833459409954635006111034208774398242651525269385887854734881033472518334091064134441202037074876256152899272778207003544961303815764835671585002136316219594660935912313842259915184512312987658613974414284671663807858964084694435604263954263309201877059807464309585951910701902533662783406193879748886760211477488292672420670967317698238377710217988701654308729048288522679783789650946724286623334184568113036479125010055058478809331091459809779983677631562206028477422222374096188140150688673805565017916828841497749937144841285146373649486759469744160464809833945127496541855554115231944863506312939985484798443419419364572174851149991459806781368530021264216283308420421609378447335767738902290161072685872512702596890082371636729402357489115775607857649933652648468750604551991377826855537575260082704800628806906653045993295722133811327561158237929409856122246338466738403433140060988695902105030403477950281732878390455467920670818396278652360817748822210373176876116315534901726313771152632771921254259843066464006874358220088338323690236904987952993716214613608200908531923720501148604903260655993178030067717664432239331396855516491808293336818247383385195316099270938338290188578072273178438682762273472192827777922755074863278082969876212687410893398142537792683884651987838219238934630463287060485974809180825580506347002231300047220732450100201403063171353925312697902422624763383247021273817419127982741330443452165854049651847451040633007320883891696513258925876396792022672579360387631631585705104979045901800270753324302619486709148820564452281946207729165882944246792880287097375208910253149821331185843226230931052217124235838257226786188632598738533952136905292044785041184186533313814983059677583437266010677323625064268597013427617562837641961886311200637527749824453866953037583494982410700579946354704005382181192318574693373014837293497014612269717212747096295014559146053008109073589968975312199526601287620045811469655616037243169092141631859860206746011485823961758895324681202209403309158749729373247624226140522032750520925685577736745283861355136303774115974907259728703294915413658747716438001297245903317475236862398862737994205654238832286399234351930442486008703617921063366097396356293710080766591864417903686685409699132836673290690572087437933260758590833565273099290956030617852717415561161564678559747946182694363541062468422198274171580230484648354311599951551318044954473291873967796427513170727544630912759040630431881105164194657928721937137152962486474811090097583205580753618554731855450148799163468290540038896729664643101262154022399929796793943080490097119521089992501205126199774798226796637313398946298033595863691142027188070061883489722838121299834974665311910389753517410087623008539603716919475263149979697780579135771646057885591897172591262533302593145106167145559508459659145233796194035620406705183855653653008048680409331403651158475995900724654136256189277713384630590107406459836563564877990549393843771759214085919254971140388756100803556455849713516032031086243435110008292693059388941857968785149862680893831525043133574744943584054124599029607743840042249800943416823491126781382818089283668400081347350123942643948781111683107105520325009834083829588600130687188564457222949276752921077077446875602054478168006741018353841399691597165824755012005434937994015791192899814212914256841035018696562951837131389182413696797842492061657267372006829886100678387187596293427463531875967497957306107594589652970125945828742909760731326520154998288202812531655459754939966292676736786116940288671584124325250504021560640195809872774608675715285368022793587480142965910463810794482163941269520274924929878157292042523480483847456045888661007980749270673918993564685022692099399639602834605482019574557030737613037042052386854094331587522851342411467594340596761842952092936917386881218945781862574771813203638353491310413015738158612067513720998270691594661820078397556220825491299365406153530132857320831770332533678609428435055846074358404193556580778272060354831917813890606519943163678881844475938408593603368268828644957261075848385852291346389659977789225969180225603603144456620306648148928962045755669066598991765696210996854002011994846660182136986189415226811226832367587141573196760993498812152196543578877577917931159375416942064269953278243476141404528662956064388647340562959950170260072517535618947630113066968094074614856886911072773539262328950728528197265710048700002829206278893293229988816090788798247528501261105961979636691781478740450941025966488811977388052967443081901382298152112361021387898051745765171489500976062379659872208152584258013441550827274057442714722570408527835699482683259059955919561059510797243004649338744020359673691954982555834845755057253719186494450158967401976694617008912946037414221856698461290683588420354585177249659765277690610677747900332152929618476710031053862527982832537361183419466352278847332278655752613268567633772022702795284403459234862320777931394176420487052843625303096636682143840682996155804470536395311770505206838114307529730944250298340095340282871250402832867105045405235597858318874905478277774259146961223459914476666278389072988936901253496235854522720390750065321528634543821328335682260362477267639835889507498042036972420489523411044990320828717081789383981230240073337961896742162099994881904364454239261697605163108202208820173651729921439450336112847156522258310891091667624178142285338111571679615376721381670974114607314832070319781475439057818585326682886445868201837813775116715772096097594085249733302393889328309200542061230812333484627273092567281237586900917982419724404638223766109706064732393867666488434448992683498332237809512942650004037778673630629181483172337049013040224483605522751231075092480911350881258811134225700655000624580132721028902659929470241877464342285943641895446281909413620314458196841310329238080239227482078054627180124017459938111593924867200365375547202969527679089336715761043895486116939978680798521398115045581279317809879306887259601005764973076978176702016940799133544308345709202622191582101075448324539416703575593035768931768985615839313906816367436876260080299018729974044414744032794535599490833592597379522511769664659939601650498559193080515081399513435557702865828752857448277280214555189386944503316802089685352242549057510870286533829516468086711918631715230127683051477267088319306349077018890737193296315386874236725324905524233733867542103828928035022853244351634966529135681463238053976199244235715475523133077397062825700213713477127554133679315668368486796653610936585543912389824567530794350713093849654961205403729039187453338727700527205915066799730555730670460510604315263995536806703166164537365292675846867503829078321051622669021134507142724988018831361440398128061038157257102781911951156070623147958723416145948576549180915933510749423321423472981248869079939840699599167416728697945400680734166643242053459609857252716066603646016610504180474535606328375286008523020338608585582589766160216032133769454102947133839113827626962305258439761321163846257286650862657795295012619162953908940406298189398069676814469511766295980881886379905882660448329096281066522637735964841064444328212278978237941914432461482366410830995294168890443920769519122012377781465749720683786230525792609601595985250581208287650090810897122121934945372675572283116923388554912049027340234648824495724797003221800162160907859128482908425628468751840362046464517712038710520008460545623716758593945827980137025518393238119469518164090889694724057354569696793972130698771064472837309795784939566990184617752509508568911497754498100695428828336333334343473205047225870219408392072476797940208805602167793397975747865134910786158367832121489524704406449342371478330187250223480796582687508526966338478204472914669548728208756032450467309889024951219617959450625032704841993224472207594272094770495791808396158559493348581748832215108931934086769463483534660015164920767586540326635069027572061882878437645538763362482563834175191277228647933161463464574378293748779068892343244318511660370577772669261406587067588850288422608817978404256052835207736147756640101148062104865142041255136049588655557863167248369057166537088611065990251313953699402403546701231960912083952449687788770047429813787168758893278585329386157978716996696994492303597473299030742192714440518913006422004768767516983524252870284785467323447806703922483591674000139816687000285277192394424411730581128301781686879615278136170927812732477031168104289371557578766944976746137378359462862918971266381010726060489652038649912181388888075659143555527843390372875261902892214762946990136089579317176812949708500875225448915952004724618751171753344482853763137344842403429367872380342552931216101047297671875264928080307965158189369551079610393725387990121948032194160629893922407738383460244760112045888806446446093405530735315042041550589299662088350200796142777918435785354943814875295754051167923989504645768305393610110622726362385366581420577781927583961108263951328172621576883314978488231242611559346199120254448910309437186679816804233875658262711076092863894604596212722011555878669281746907904707126452156464263336551494602593787335906182442288551688535292567779390739566212735429169871292607141519468135665958974502542355282738294006463387598785158946127339702078264035491157816201099144018874983896356788465332952218125752625506019650547268781277288770547303277223250887119670875795004533437350586583402694152514394874164847441677378979312337847635688467373687745986148789732454166197035097239665131627317859976878193654806853801317143770806814920715327121504437402656671867284179875417469794981851249478156709270346446531477981442187618061804813956849528983238564406352786022278866558499949748547594699123224062537767039406991007567929211940868515139443285711228810748590550834562537672194454431840982756968891158457248724154925088838121611482711913720030664490417142308300705824799657573727779823968003566628294675761363294867656523258490843506250979377596756685929669334072213566827332261740871885475932831521919880673712722823969953706040409667007762223974847967757721968357918217865645719506499188259088457513283876516360213376856276103294363888441492017591660588181921004584148832655313014825299601781774834400477449897860555749244368554541798405661272877719748111830856698628096314426563903851398008263255425481142815177547609785871797585338152173457440594094816481180728185363555271581375620468370002562752755280108708550910835079575827779270678881978557428833267231530096829050586489553217141090730326169979289364421348168422878231834435009540518876904034350748539177688018319547650104350465855657889415340280542680280573339056179019282541139040204248483874279514063505829910122826586228902789171677858152319575045691659537672418272996185396366078349455365213669253932387228855424878350928990485340160363470323578922058607697458573506624872601457899306890141905190795076656428299694856378759005926947494339616126147972855275910118135144604905527573365055584877275678898392874682311082951340725745580713304135083581897436601026579544999143964751568112260945719697715787651394254384443651819853654106658874313660691514758321491569393584197309392816679641792709356958914229519743702488065172564712178421349479146031364422423230196794544964172828109557310802796814006089807103126609901243892632190822377838382302148648451841610208002470953388749624856863140338499098382870259086508453517116675725592994792255579468886697558188397208204073850436666078761954995709557724262533374855268884202513370965071139749450431619400503593788528849874705863685476955483828536744239935975297466940825148243784393621953186958677962477297689330505625674623527170930887526623971479722552225255723166988007087390683135381213710246866114270496843926577819384247585471645857580910520244104832400936376989745004063422260054358487790017202076220866619053168016614283992090112975068977056863535379738661463564352819137276168139193356222304219277098435740615141940869125190955226729941445478060720654735336417443514033121074167276647014180234465464917508732780293978149018623902522500085178776980422758993114398205125408542024029667909099224312875662608665614981048835036994247758439267265603008008174924961575465083671290824169151986346327401190734355940173609875270404079737230892492363045963614298557167368819719270234643018552951814377986392999569140243371012586784636848509953197913732617996566116481000690714595764097549288086243079895454279968713851632332014127494713951428753154633224434137426978873173848806643345151508774836176413626176802136939456993479308855866646929817017568352524445735170376429785996231490621051877066336447251036102813130617083682835219326756666100098909591289411962183836356733302074564215392424448271289793986224020612621530786263521985851774324278397051243189246150971458800704202415062878134066151560660812017458966313254834400954150045681861368780622163540095233038117942597065473769857980567154602886611557156643583568660267209973714913398820304840388297864965296854200487120505794389145422704798480322949515507138347398383555805810419825294427720078013403567082417294478183230261941731727921606365694159529620559747001365419858150419066753098789685095584848014561058460849494075238694440510074268081041309998145825010355204238578138738121319439108751959439443480185737439257186018122547001598366540560831655397354738313461738273501209192755712871447172967517116561970466696759676460087877862497495731396117378378535433213248056397746817303329115702656276570469118182590226046866511744564361019520156086942679259761381100535911216771320821102571847775104647155654022767545493176031472242429466329778263462711603817755983936510443063255974565091982081319759374031542483509027308120123936299686873479505638286726104640362679233795401551018293403175145094459301414484897665716398462722524776705008871455604290930201907128762446340194171841936173560991617803184251398988166626317312049204725928186661593419344146721418950991415966005461471793969864847805669058495687950454574558623697252738951857996312205476139342198696801854993657090134964091795503825114970203367749086119570934196235130390334767936411683438223086444428626287908070732816037903006756796118366901402955027255050942926892458562194857777988024882932134960252702986550400565508126433463703194036597455270504733888598320678039021793447043370332506036833868261370516520289326582970666503294321810580278688884199946074229635979296278749797807704655822739292166921347901225087701682339604229745825740844203002938466085875660727556431428959975928329342757480225759961799178976561325018744603474946887142949640788995639663459107358201611200270665847836354526476692599365330550720526502049671184339723475008489559423394690850418969007367850336381330808625840018021304676532250631312084603530266835740847012251167170246373695555388770249557239152929747419626953538006751233210190893256261417040713585506718020812870901241639345501219321992421413258045110233417057554442975352863753280956588274953985231775564829941060406901542010640197495265031737627727163222303828797009264532611727205031644687313500156263048835026146285178823771628096983164227698474740262292933574672435463339597343952386371572683467141960819596452823916921941621291733161702182258036125686300189376842643326460556987269699764511152158084934708690093938017324889062255882143685298165530124370427988149694812490909352067354053075430369928346698064887461314340815602183995362993687905171695365028830258211657719212734220959030433041587954575892626713760864728294749197869887306394090186135281877151052638783565974015248499954099101262618597815153850343468390444029497307967476171568421022896789210213524883987602052267766756933349445427299140909336358368605159095431822562568638244807496697032864870895174294106308673958876604237752160668238279053955271683103440969198958153587250738639931512459486306009798780582050144318222768103826654849205484348736309284492581804886433511212896142932612419290787104606983573771611438030789353314346060431869032461989496537212075948011664868305594384436794910958001206506602213581622398162810736122302041810018494241460923887780197851631611665451790248342851602728219758337237680234715742181414980422807837671416129021597249522515524591472712699338013786660892741301298431646252355737857218302855392357124617857830028014886635179976633781339624336558054625306978192698469420852224960028127407241812001178173398216067446688083883503495294764331087850810228173496190751871237409766895091546651175825445912547263355699333355308513808296727966184845548557777262406201035330920690301886012819785060727398253026675020311925460552991691527466954785599594023212460761940229649712991500802263917673570681270896659977667348624151568943028028612521735884682942848754340632966478010654570969194750728889387002633672007220248920494496895300486580854984029068658354352616193953862579330377503962555090120685587831000462627817051093486913253095173681410587820786075536283778253282423986487226031492879787977626827006205816942694192092091798252848986650394978776257435540409839689063196202106418932680545245379030083482381166881970641831215025010029138438774199346368115638070920768773188479597756267972000230005011234209177215503613911015264321077109519699546277170621817639689550738657581596027237246209386183407009570656529467395528038172039496061253113514377779432687339062622035164401037443740501438282918276569185166625623294752133026612347260324736889303314509119243083988475570540445943080017593742865119578119834047253001168606229028061084172610162770525153753871646245395347296082683985353032425800480526196350773417562809631111293318082327905191955516572185101526434365465780010539107839873854395464826654748910028270148739149385088182518741316633802227189180302050073918173674654218248914691893102927931861718035005718854409806697124802425486409674674721945090794863974043296890375284902481045097049461042985101919541280348354766293010907438888652661154415030058481897223577674530420676583438988004392631924369633460107917878125857055270311849903085063306366623718393657131330979201758009701753694217185720821360218231587807783470468378010704741962316216206656331796370977846290877634094006698739084811454960132550703384287417794116027411939341236351789224991469553340191550000182884360930526174887378161599612259174030143446348850489120924612561085040521778896127434516296875980890422377011937227618782995907954971275395839496452719201776428273870046226736377300260181388759155092693938478078264693512483759759608274747560372401481186036692923319624144821999588835031718531095979855034663295311426297782233223081187995648685124394818802206534701318877522593877109373777056391471571711275517929510671226929044643291909126677431520894677455719966202116101088181922707587056171720725491688787727301302472887646945443644352411231719302936524328933614788644407447146561234063894136857457094741776979556036638346071217433460362635368612722203158315846711721123263816404375806758845297953485603906290800066120722594465593095676451910521888186079727170441008876441634792332666780426049756166672151975868326235523017167562539368015325211824760571620957339778591451923016351758163968690947783132875508624010514147376818263148177007669931443406969795769391418605269471972079410651989228646756976339760612884340569908086896979908068539227891808815652912985273436290478310529913400602575555286850517311716757264585647835894664173827824400946622290628071177531998878547934763629841739629820774477259636827197983785996418145817705641198261516607929090831728566644056860024671335352634463010362065567161133977067773368397813188594943928382715027833631551769370517499260288189415854240317997133271897927485032711761372579796055267686221466169925558210577410487746693986520064445131953992520734096657951385493337694664796928121072519932061848798715665725265919439609240515370734808890208898492605519563432686812568287379164422111100983155426439529928836464476884717922007392894967333605587759417408576522826198122290448720323243100124560220473410162760797129534571847321072208409905099291788137605851959321458539765894539070041454095582788130368542296064592407450657494093861596867383511724205226714030678209291469288020338297566614303668459969763642899214527179679302971136710249153401691833950835726716527426923563172874681101631518186683278029496533644253727423115248109677994281762334016289050866209012522360673931356748969267897716765369217193414618851199112706527613543790783146854837362894111771958691755304830677426752239378530080553629298353851997418207935455483033888197877368288992070614806793117041846302028392828186825900293059522408581500883725775682930777950771114855510907513782600561604715147827776732930416285199457309356914969778949803900941265987220053305620318917358373596769334525232682122072129743742151389825097287129998901843071827609518825571776355195199343441394660474303446179181009195826789650290382846961237843994568831449547229755641606639942509227413547417170638767224916312684890715603043118563338869861280709055858787243440061977186692215531334256275676076385076271321465045519255648153066146562303778552897788967430932313055405954825764152911370702309189422441055473904276930283922197623620838041184753057318457011444640621550286179089927605693783499689548780954538332619868327011790282948588971135069594723140541248860164760064952687988453155649671889236304459110288004234249843042139435489819016994553493061446465429851727114195589244364490588261721718865176816171490160282410916215699228168427006891548292768763324064004714932412124476676480233723229997085432595672450681203164024058666446408288841306276618790423418174050062897955917275195773016527693553933441209042364292693594116835858067039937518263306364117211810145124855628642945234204792134262152855401333823525671148674219120645073904778290897278516775764772539647189346874831732948432575004955407540802057286548104177838282762952147718061010250431818886816853319604324676614658618670523490534388471482943553731242438202161526940056521836171210648121105312229308952421086202016339037637330797549957304368403950979276984912887083312724930630736542907437405012961839639829540907527311938977675563714501273404712223586794867620994781235703189995811323514096098573939424277431613899047956050910531364929767784056555409043224934308294687474908283415621351533320389288716793936760733503687535609299925230949180067209279007590371346845673180326463761996454186911452126575503999202277392044863937933746934270891911531396233691809462711788086345409364216492829665873248492589037885008338475136628112517362784981684873957389597807956344371251391735117842036182383550406920950756001239727408914218036304865213039225437295559894109813876205210557983443094341784472023557686389234968082360208420125245258116213022260988787160545419022027102173048471740789834666369180831587643982914638786644004934512676190033884870667827541028560019004688005750366882095693304348256878641660814069712824150814990349604022050658021982003070006048573056878403321394106978481741713433033471279137380214600008224528151577546185403380607211953707330425104818063970578661897115785060068385964283961093431819872868587049047635639449664881806059603819413872262666418179804154142113641301196005119763228478026974051735194231318185242790177100053932743110610531575983443665758003439433698659369150655820988690374687593678884083391841677435100048593156726396707001045465866261833856084790509769891539157672019407865802893668111299211268556127031404294239643934243373982550163642268388799640838593933658042449297244137685173082288725467426387045231755593770027693175152147834234516146946582756464833412065310936196672769680951257670897413951904383905291325218613510814767565965928395090672387179218032701288485686313421565586664787670910746496016099594187275930710202565139704170988310739432091241011295040588013334656812445531493044181109970509506966871371576412090962928324230594585099558820000752996607040863692363768152667010163583356931436300712820256928754542352236375032246675410944605755826617985306886569949030471346851536950210029300698815155033249573089261399230516168200067882291380571766971616340069272132823596463866584141321428770360742778822545167625107370166351526858747396213179370716496705983532514803990970737833907091603229241545311759467373099684561482067289191566194887105779772154242643286862408817611799546731645767750756761780431820717803563470082553718724544985239355709112467697615485968738104359531152357407848385848538832842926263712680985243028859895743040039588195975618368826983432007995924340252044077170302433002845778777040992600721341500234114823857410670339300115049053024168815045652766086177707506344169310125533897145013745283654579044520259816843731672495347429589038673732484602754383093463904661241079318491464047750992577859126819416994004949739957877832851442007487829580040854021056159065826793034267021147557011468834953440040867894406513619709239010561352286077629041524774911871264546852187447297932521831273634283456994480626297271330226366355177916597610524188789920217827159150802399598727992783129679406623115263080806408398662514369466683798140761015632317558468879798425775927936634069313740279361475977548139501149944569127659040053292829935778400855833564241429439964001937908469750371139039654700400090975373114971903873093201795588869134757555720131155916530825341352515042137033731364664882908444661679864916130526279755734670948718652159194197485286296412974560101985420272841946951061010499766120665205472010174943222572634350075024669687463010971690580947643612299008396739727565054884226799142195729408443536717712077932722194463761670309772802917107311275381601917157462108395588410679657460536604154313640267590641864042359609675599572321222568019160996465283870467609380579150513554158304878331378212773838762637463741048635724299950070543140723237696219905723583590799934369309616774352183373700256125806342636520297347716757966306792631006668411173525304132890685247565767186599970617460706200520698158459493791454772863183960368291582018350756118259285892210747301986375840810835046190446865179245978592466015670821606360675319834496069904318975152299866859810361229981499510014311685765024559666973815003159182503897939647595661234959784320867185364938430073391411859425520091097994875185071357927297230183684599190092831446724478331429732265710150643077889424750311924977634241258908746997570790982117295465257836283984630378650856143017237346670311692798338371462975736716817815222530450131747660327445813858873254515005738745366741331161553296607749732691462569714110710302837780118246895522450292372799334158987590524532574059479757052614146188415592793485827072996970244374189124170339479720720186581219132326116403743813718543653511040294464987454893363979868305057678617175850874564490442404330732987851989161639464604269340698614905272390927049181884409159395958421303460456907533948580251368531370475359721963051674569067031261932132926658452587559956207292886607499043691867155098272293935165370022799212913742240517311651301631307240972606809200679635898960432536679529922236275132418655340470667710008162788459853027730084192374614569117415954228021185194981402062373999453963270920315033626998835862712395998829328186469786706744169819875681693108655273702863886104689286332948812487655489354914792482175355045283169286771373380544007110672595448123253437109143733862208001447413217889229611546073395538113214331217006314480442041660035723485364582981774395651309668768131786902044299038432808021756329957742027245347295252745024161425355280452135609871748205825427797547520984632728687817995970127097849066441026342951729398074817618875060984087561651504623632435506636936884803714137762174047351700124028398487276578628769671048317347531694791184917559942482796955455460140055802160740473807515702971074672946205997871394843665433385371390207314175610438152626248020011201924355936396711559495390851125850290769939827148343427264574244439201409415243258246111229971131349796465976532233402767913338729151545556588776185589045785114294383102456475816415826423937745931721066619949471604227820073103348219242579331015214419451515420585173156691148568065279765246861116392995420482020994671984461707267685558920383106292807813796648695613931811301139312870480251478812873383036630859295664020944435048435787136871474666882942047986612273987286685888691035003086643112965765374631758265608759413333224853994747358893874306175846884348872485676046845721242293609473491269389297720451142612288750501868046557915597925408688363370340200087896794044318074363360580253364581332776641142880381830717535346712018924666416959742280930902447223737151569800212878361766230638057863993099505545604620359657334261482785905007846449175981999353350825047431087944301868844895667922923585777267211961937381387654703327221429537733237549505301812018075678262947209138729556276507947494572484250658097224940702931996496617492186635371425234545708830288738438532190729541765446010218081787196238372620147735890468597359173944447299794047822997784333969052276187058878940040939333141437223057047140019812718443557269061415825159201796960240467564455390796427430345210433677647147378887543722500366559336694732092676455273593857044963886829717446340338749570829486350172128157780083075748320860994880540613108245935822193622955722347831559618391962769071284602442197713235908522255898840291369400575393110272051602797595961826910291996127817658261223617032598020267944331777558988952112061223509807851791161342207669845194448967280782101974988165892394568939366705445477235122692687730690871127863573208783490594523287596623742643662574422935338511374719523250315503918767017843463751673498428816062201212478115114232626903190419320621369532104736154016365932464322560990639194192129161669086908062796995321748353199608571470969493977265737388983446504217305287459425905362629823778585740324665087903019557630677643001275447119864747423756702774539072658373272624785418253576017559643021120461380134556034100828689109931767469898280739144119252605832069667143362863287196548586408467271379814021667389436251496896442865354831981963260418134946196398044675529654794425506221808886271471896629768943892598273179941158113654520353747484186078911398871226364779353862971027394847672674888429393989227931265727101102038350460233610154957184524324599105783093952686436541480817360041042638202066357831972965242946053497512852723500498373856329586474914960525168841412713800457881518200295810907094063483508916951098608938686228246210371534922597279851872027942712313822473009074424554594053591871163369370955112959789438604101404381216899432360620495376131181127096857968175868113127906985286384891413336369268457453351485342752021451746726565333867500890716941100472553012003378064793484259544043794580589242110241713139186048038918031918626728200407617351963890332644602501325417394791237719218281614193153420930268255759328780526112745432311179863707425992388810595157061377294097530040913197727231059352626645931743388404823576867999518744216608564798978247019664620577912337347627332905114205692893764014394081605348029640461201136740756612991846641205189579936804308559436923680193260713415198751908715734162561849306754417445365059708394623604955977915350121036941279453876992623550207502255376998355814232522051363098367789192822647353658289420488977750247396043017067564288575839458525308129798908586680445128840862884997253822005108684796908340649978280895177203337047769359232933305653007564281538383389851387017985232191129871633344664642449703211339716151050325898211562494586011769361190042979280181526375398860491803529601132161355221610337968947165562516223911322063643072146142811206478450850624121485685956699739286026298614964116737431186049126873414498361804398429328910360201708118412335221493403826819873571427598232861550341882381855372731182890015150600457906331442779755009764504593969897114064855100135964504323065757277540966101561273414791644914967138496555654070765694985718437190354195689748169651368180793550654807004041930792754160772930285788109580394629870655708450526197023770931749057955562969429451059997072421596375089938830189016185850701799047385915853265765768116568721354087108405825875209602857011342346252270473157597887772778428038614664025838961781096003966001427101044197740208102980515096995807652630231085330657126732542017860479015137437648304473806915189685638354561822401561069787747961739428024445619576371831745130288053694866775292014457253428629079498996380981961063929450738452117070022777891928250433697024445717882930869420167091638056383311669381564539793505465976500972063821001064497168125602065977997950416918712391639456809312892215438906617242971366682831891549777652157508132353924604852089334633955756566317566352856727118663924775053068507483421890173217945623819953359074507821296447792804309044410388849789264067730484640909679934708227262511174076507573274874216265143561460985834609694557900267434046984910488805755079615433630937756830019692728793515443154757477736620304244104457758227982673117801022716000902183881969415296649019887136947113825248063225806393358340397038912526102451951603940979117422522321681520967673601658307348311554004139686792538962899033498139951894605993850379195887005693047441165167727698509216225402007958388232975387049564110774985476616354724743472024630070327992085080289075509516927302549193591606475528804718033884826536935831926147377772292760258731418623498552982123979603790880042699482837627815791103159411758221866400405445257774337711900128598341690351857895431626236984232515271443541041674517481909031401173938071038494592011100277058924925345629590066301165568812500334617757602506852213118097372844638861314107858714147490489167740993196188386431284335920303218293420562815466629037780476230500615988391256974064433472193119822649650747223934597760047757183282897003936451773804727187086211829258698599406068931731251931665658749486314081319917818408567015938347705014690786834232702591474852358117257612894772185567287828152204487429420898760563391331994237808110070449234144694436186570212214720866226215178577259680762173966265179896577945986036168682094646533019068329520757511129917220493952575160184583371297662389884403197480653031471098361552685219439753025612812645782357372513570206565102313833191529379563441376003243984259859141278580937698756868504929060009563606382562027668553966691693515880705425827256169471046721386473542243089781096509603867705912181886618594142942693934905640008780502543983378613996683862556972637529211383460910291648977288515848090487817400894994458127457524532261821183926818663727760508019658803244463387128379440450977449262170284433664095165422549149306037615048843110632956564238892416066691323253234236012765190936503312684051505520695098271569764133332404116717346471362987860650542957258088360092297340651189914627018551167033044702260897008188682539092156754545923238076376921546385366073355212346900688011630940169373957565351403196070997184314312940370758067085025765430939302922109287961278565887331733162029354720721052251892833796524722723165566099377635902110160071718292289950771469554338220302595737765157578057104762173999880825568800934080656130012154357859066989845265274452509959770197235024826895676335249077407287093394691870547865708210218399765522337219275069667660951978987257998978898495019598220476390744843584213888011267459084657983872399917903053641721660830886102409352465712121088277767855547843861566072328648246778905666113649920597184722418917649427648542034225320625915336108021250019820535902257050742744727886051021450013667024310831398462092111235270067317140675937067330079099639127860764774287525147851648438168959778373247370353253191575086142197651958288486015182794437528502318239669393995375644934470963047230525590315718694296020689042355618376943835079668782275598410342504562070547611400701769349032587564187450769088815480564098647236069737749088506980821643796832215631197939032007490972096965331969973098878305283625298343568225093521852925091419675007943531499704883077535626253199276002237409113549758748297298085560817258589369338190425596884450103718048172919869597036101340552087506317065166424670636848214081603714963517537111844743161932057367535543737737833205709577980799467658358959359564890415932621872034702100415435074003274643575311823094863041242853955071018745075559623049566184487271373983505692363203713294682863329131303270841704109833444388297880514458945114536970572098081915788476739825272436479777709856910549004782784496011275036533392024459331207290538960359684111707276966069798479482056051154275967022855872409982641145073380234709499182245608254291249959551490118504105075131375482680224229755269127614674831936243633402158091619694010935451122803712191196627810533791989013365193719895429612787479563254383390742255338495818605100904649299768883082326020829992507382348305047033172423259079563079984213339550471892753729096249297789497533931292169790284099313889909421535311284210919937463062451735375434063753249845995862693264796711467964015938658535514879307915534406431436361013091020899633137783727384231925678953710514483773797918856730095784325204559817503128513667428296334966618604844402549978994680196386551230297162941809965139535174569300517273979069521207720783973097756970090804956123410550454458916286690101681946087421734895647194737141852333298528667446335147204408974024367562895808303389593813401890040704733322937627226299889632342940896354052778421155335207886017526956780619812236734687914567770521557596332810677016552332173426927451709515212841612474820500469663527805764277685710433109608197727450207317145250191485303893441963451112868424417930067273211575373963758431619265099589822674745724204716063662031322021775714082039556308614610156491286393654070416232849576906431970425224234113320660880912416453449773610283708291788598850639287545579533455138132450836029110059692320465444765038540505092219309893956486856066641194534206807290763849079505157221902306959190934500291203031862873645845237901090034895054803005459553086727382711889801954587899254930822804386556742801789093476688689873514054185179236495534938977698861891865642977837766581342247074952935964308653103505092980411611491553862986548543073138176591519113384223680285099817084530811346920908833203324690073456598887828950012419045951831362604363962397988811427778918812233888556140412178196526853604116338694480188276951736116174805936656783161182772330927399627388281152877897510847577125499518056557289522043228452089799358574309118262391614915030769245820704537635907219296809694359533005566346544671694952435916923352470488007773278218674074507713202029703760473845751408772887292266536973553224763549368724342659013506385039856226970180044561886668481078198051476550134964719661081293372305985853480576949751684442719055521582178163114153865858320473495038593243635436689299227753062194954559032142797393373141031172833494274900163682978039931408745327867120510928700465640447758088557249188694807762718783119692875038772950224207104513393729369157707267266234734199765410055226829918564281742208823163711084380422494216552944707800607759304662283425914479627453929890977875790120830969213313708271503952851055049263003158562785004811838818825854762001270681915154931408964335464818940255199862991202288970830640735077425466353306681848772474316277646449039648265226142508246820644710209278567412805525825410507063234372467724090864779997671588291101713180740099889993077003597801400764483926132992769521763590465257063470028327744801703246190389021200007617783606862214098440833572451962783309471349944165606436233428648368765362990591793782950061369894116073508688935579126659871131904865594050972194323768798639767326081711845906251192499521339331833424137302426912017610352269792979475074356026965019214452878051093955316453771181690650724139714007848007705113349855333806573815346380460567527052606395257654181413380130263238323177263642055022161487576331337620785051586242087367619708876134384848477267689506121099555644857968846091964564572152391989909148392888844589536181037778400196693708543689504873800190660755719586743993688139085534308698852622100138205507842209929701823275716886736364175214437022613134422678580234335400488311256877446535849005389449617015700740927990260441682288859707593733925363767170562215293585036100894810715286504493201687191512060455904558937014527882500524709587792936147992404212096003198286114371762804595010036658243372169914399125753326055751887312311309852763135245545103143680999648457307418816862407848024311512918947928180381131986403786194514909065612681907668880881599798232032271315991965823132771532527310956924748357575952123001901149360620194872196676182376008495985859931840307521772351036769088037028220825341450639331038136204112637024579992270351291965419455258764030649338676417518294879645905780618311201624753481422640232922587250318771979849375808732006158593336456034631863744926458987509301257240356392751482451753132359330253448256973301670563468694930741109937585462203182207073667973389839403050122968639635069417593011798648628940144770566166593017352205655083050546412249212557881630329479963982323814681243131146933646901738085335132378123119257549766039239114648859653819368484506025565268261644402999973408507233023966761323789457254399675054868974265417125575906092740517949455210048590933425661734680091902865463811008940857609372254275009087184843696185123762216266953793757228917985134160688644948541185540122437484108539941912724865442848617663538214347429543819014986228500037439313221784711392740920016401743774739199925952643199425194027229107371318646579463843865835577751907232417819290672334797495300202602377440784434381869988463205412549068509350852618843711948432953773210344008094968734421051470304738121855894091689532279414782476318633708573937979649266015815939736504891945461571816883358156993476182086537868792476407899131069468182180542946161201794346191921264433702122204817623419045529721165038092108269032683713164565405967351832228322751707879289223096752311255890040598769015330746210034928205231118526984119396620447443315922248319133533493000920269606696398553403940709625915890950156433060741254649744057712458583067434212691738140141831418553044048924263579574490484845549004548880406592258386906088180210633686981019371089514290891019735419777835017936292390110657352206884035334120309207017572899176520275621053144968950983722272814562085995055644273781571984154938379598725568610316583928200678004898379503301383645109164015387729031279615011589636462934003794810215794291500100870373211761818546677300867714575542726836283799103190945838642841405789144489670958317626284642892584672779381299182008281138397027343512567084791975869891938091759462050946291490593073956595171026469727278613721889431859579027803658702422208267701111049752699967739618350694240309518990497073636138347334088075734272009733492591525161389230267028081907540574729124630519989080079349823802850651633936368862206081719752420622256172808294595259296265329133433477057979496330645092374280973243377802294374362774078672508761389579519999867653243542357353798639508967379046803123769357377314541814956034082927825115164754743436909635917403883433020580538823363060739108829571727514845533709408129313004516398609973333834558425348648317565760960088362764206211699678732823116458268643479322279928770140027211273876057891494523054917798985333958945987569225058377844213086122822463512141804820733061331486385134293092906886789816980294257702158446386602584524161146576291547574950961033118074767131419817550597750921634757960092331097004181100066520776110942335480260813796218650482485520527031618583611488254477845494898587337237867352330995008697910921811864051242090613263847881868572537165212854622925711346079307420431121727639244068032708998320167630219284456110465928897010379714870265622379072531590673889194424730116346026210734643677598513864061517660352360278037843833703831398941224354611579031948392277973545538503789364950589039687495570139078526372435479155500247668015436088236340015484381629685725222351664036475254989497648842499578208137933070353162507683716166500204953585272054772120607123444155477223761516266467379605054540699495496793281661081691989193681942182583332050213489957411166884934456795787751720630971961407366235089713355508626109122490405357980046278559759306830797092566101329351405465295816134360017916919551281739722034781116701448187575426624326457543422294805127206460945260299147893051517234377457226696751092879799927161760729099526621948011713314087089956259105470190565527684372032416371393503388301198643868868165598741444283637739388098117419548353004207710623957850483302179141561127111752322329887004964673027206269084873565326697289894237868296845073486540980286903405677267821265270347324433229165730094508405299078155770392453496386920298790901876018901745355472156224194555196359769259581533003284119792717826373631785274840960729050257332007800766719350403212900645765313165688611142469430298835824818616029079190812403698458675394340175508979092856597987458564657008787009493569677054501924066077386705607326533771387605541366471399330067592140348992703899238313765782271769185879744139392296738536067229386858292020281849898292632717513923689694425397788747743627791207229491547119419717615121127179672493096842569208082818353135011552445217894215808549319063912721273104583892545111877388208677429183287063179742583356144391849054349040134981522554398394451679918769122039086159298947348683968342255170678536162176063263916053027377704530826359933767702902023988326487749501182391234362245165912820171088113357594605506943430855054987175629989078962897489815115694665820604684137522812890649214559104939157810919448065330675667310673271702363921546804915434042601411324069972210369857602732978902790900240783154149878751988495259334676910544475751716282837347027547115299277675141805936729192292546687637076165646844762610894983345747540414137123752784237596170104830776982353524634740616364288987810901775273205427552516444806752678896446493792961390931142450478040698495044835321004064766259197275736843796768368557021454066700056985648441659094670194300733536888638653841711569059157964764760615619130496301021521147457042774313416494101537581469416303719339496228371888085404499180676266527693203824872195088078266051679378576379708902256293899659311955009101086309552537076395791630305686755653067793087093474079544691990883271847110772597401402429571826209869290316393439954970190774664545651544275575820057949236012432495614226785541161436317669650175219001311982983622183930923444525619085410505589604477595122224897527450870551269044332500814411328612055993968803365052362705775673203993631904130409524356235652383238546295320754485063041645915789085467384542575124379729449244413929324176672720688229072106200242840266129551785637407820860062025210448956230818200531671741064992784863337708323254830276362691086292742388169432220037287724126151680965288241677466162399928425260817655434838641894163114926528968732930990823075491406672027491283736245554499607579570859744152563948326898240051760290308543536703103594549068085371776075765583759308149942746974514619813755227725524689795211277417485638584049593173289593540309641416834896044255197523721866186740067161664417749304982411020229088552116893873465685369824559204041526941623902483384289119895754204132589366052779715043144762371870518043934052727389434113434368935647833734219033085667250434995738389557164670719862737515051128113758737511829607037825184910261560889554081586779971795561599705439787954082901433780034139617568687389807876490111892781433122062729115510362279373931810425402098251531551799169628242175815449505408256085407689888567891536561233093398205606491633169788825377561332772570273842590872238079281231400785215473690926545050941662058458697553234547731686854431659383419789605893841783267594161217357523205268711281438315660456716681954223851449714582974558166910644064399757709666795684713527526598934571379140845823906470716506388517931204756491456170764097569103573905464346754364278030355803786921270325629844000690613640129045325000965856474083438284353119239707270563796569098716960395084706553644512703308028716292353097506948892081679542038696286857549358249474684784188622536519396233520836074338802065508488208243750094211561642515869179677120738114864072373774278118811995106306203552941848561882078143188940286530848150677175255796254828507645528989373469072766943951482523811554511243281983691522043402568809971943006793278653962735441761450997033727359515994072161144056310601127882381459284527578357054501177257349770428161286945831467699460116019548823572441922886836363916857280496298225636693781667063660019169049454422157307573141094713691676022702732091621780392376115769130796883785277569099039076571492399728576629977891170994084422164174654567002238634181332526088208913056897084240911235202688241320136004390682760253070287638357703915300713836145040482233488733433664610096658838485869138814118956437614219644312987461948322773998630945561500641196075648970399808038642989834728923650086021089743676624993972504896242074284730833908573191660051674922185899023940056784863872356434973308072104732793813996656739480026282270543323411201397345358960728546198107304729223966032286493298184050333961434030145357837589437587026155510119701969160215826236571613483822748935513460525013928931264641027588596376383643136478943173806261519722462933708467015432350694176079244427751653055903912669406984741803130341802301430415365598362286992213594522099234568740880112636819945533257785498804904490160392568473392458208176939640154839782992064438731558064605366540808240716990483210924397067376704000300985805433004943500408863255817659961335269335893108269549668939083187004073652916523074634372964961682075024376529011551895639583810447463472264690542641446549125498176603854499514504821116733582021706526035071521671689431707814983232615207129777822703455873296868599596534244580923433044614382913918152740022967274070446335515172406283723211509078521818953167612744847074058788429138437030348290762468755366851032838162173542443183882435967693384394813126110110830513938166002989451339675298049423960263842616203341427361576481274481545561975644518044577066231970841550981137556263396411664327921502656379289780867244133182494285775313983794281040206394587878597764527486568609064518453490525954813082160012910593316318818991673349929284199232423061058088130872867514619801452047194910910927805541610106539841759498021622864411051705713348072205014201026513312798859273007639882907005490461296524162485691114538616500363222757454016209285672760076462103976004349956540675500954290447065185234233547180699281393046814294591715086387966662359892022829135851307228404301819977292976845726032732438330906589083933539424815929246646551346015784016729572956252146022139221103806562948391720954210439075254619854684837565552657309251474588780931024533274187857210919466594447067498596276008108178803544128377996820753549161157178120188852466516418138584684757470415843783699319032569763147702200106329524028344304065827254494648431478523796910187059827741370677891616198196132220545276633344310807517225690445823817849494918758299982310277271576607304669095306711767450522521497435030935094660757583444346180033192552821449268532832781445358790855573107451053460923453859984889105239222372325579886409689392925500450770065470033419779195251120929718299962296843159538417729874853423170508968281633763704383069017606101822121876931034010746051183860829044675632428084133441354243956871913973540669196758363718937604505586952067225268878771558522548719967047017783313011762787007718113187371047176023732795325479484731698695619029024174457795922708300731421149002631504359461008654341239648133316241974978313393728141447159846322801359064058733668949054195148547018261824018090932758887525772183779120617469942020110863284906962016880925831242082617255508270348559881678961320799571364347550129095473382397939762334738391157803997718591439027555528361540739049078068606528982938829331732603056833731978647953744971204179003247003421801355678220340543301005438351025985534711972946607527363887789672427052830491086324706353303741373486713666944510802729895880897928528015255595299109971197768949467496534248419730158575936169974830670821647198108089585655683385538100463294493570486391311549185292298504255197621712740239025062184979740017431690576941525202590712208504594969098753374549111736268022106977011888211007072590127871225907135798371319341484944824191088579398559776508421825307316685938364587749926082591228248199680922883851844836912410150724764565944372066960066994791492784182709440650169451932789621637200124978303725722834131355633605718004124953605821652970334593423970274598196532881897407340496433993954388737168968183942682339840676037280376615951859800429326489225763596075451948106299882321658198288884514894991819301634002624891169129509510948488370866157882308758773104386259106166869313433549179920840876185160115015353942089647188985347725056966696402365698790162193404822555539162342136679557785102148574391155397485820270746785945427945794102159896793278576651734333952959871027536330674386113325238568678637468163457911508663538558569244522554594379453411910453888704054681238714169917692549840139903803828063373867872513485126676400810390038937972861823377415572493840170308839138691796190799742016336940750700197971172613382761549050992732039704301122425373229538482273329709989220554716647561469357758399276755104268126295745706144288847195617534910852743253414695104413858484282539591115010986820685115641655329186894377091171745394086019583893900953017195191527782694930751716604008666537084093523934960969649839903517941156869814928701338059276770119034929519137607885736737827708645432147985989574001183351774435159220065024441814555980414508980825792309895524671676557534933719722250769298293474395058293318709229477292155637671215794182225919133694517870741743109362896926692046146367449276811979315452859122953994439260897052519965234954174318907888031267141955158670823756360278300602034558892067113060795537064195495076052701339534631016769531144461499801137811928089495360005014290563610748656225405965072125743814600200563209151562448138021099439013379837953859305544097963494644287794569013165458817375433791187037455590017766867185565718444158381789588402728018721205524751770293970131579167885089903083714959275462811380187981257806292181490756805175389076523247358306740034876153975456430805450984177135534491077647852266546784550154845433118742856213834997827359049265940066271168308133228898457151083195923768288260718645043153618271621538747481213447722346554355490796234608265009828956784511564665303536385663407677073763234611318625028026726116529467938756776220438607684390829874367200943933568002774033820509190931522083470020938594133576040500503944788238866985840285990828545222632903458243316362887806165533987684522040351224377940718399541579038380339420758181435767416177802881080720716012043056182870220705774426590630589030383155647509408199014511052954482138879326608267504394157145474025113707129378113227462559447953679490959558770149589019056210928617455311777259582265554624838167156934152492828238608689938810815024336302577856892198313687013703769131046095761572708325325728735238203191819068366575725490650564777761676946387481834976272087027943143097992254915942215967005574138154995582703405433395112598104317269454123401900816056417963162945320238405926817312354742397714451906879689195172349450173414813954655916878715635046779002480812168915009772213342373773713937219019173659844352617209138598064687838578323533213638944286762654618655923160838528176369971376354962541736467766447492479349909277609044007916554050999449842250808534437310204446233655223179102864395751464095094884112610249582386570287584649555219288278513914726245017863688336354622430830686894935782045628644968829794173191850533918798698950880920462035206528357461537480379395606538967992927747160938365298013275243016975368438719356394481140355835981800294712507986879100653142785360828601276475962536413109910478749995082906769154056905108399004233737932577109011396290940921311342269195541311730050405060794125745151306108578277685429970317772398987027829057126195960688928732818375312996001405967846783260409582113871799584407614451732609858689026732360510936031833147606204434218743156742539753815411872543097266678731678561711907650716113338923495428716517282979501854236953412392863637408834025441341847747257558501896656167044068649571319545384344685174167631492243976394587942211032706051802347274746297193533881873048864367623810506577728241113159526493593051369067462101258512424574344436151268394097722965136690773097142410385322158256095235720166565823610612138631005419535275103768627490310899113155930283909114126367033626790823646688164401593494711003986650806552010549912272293196987463788806194774477088513705310448853612419093909614832824008522683754098602851020002959808660574681072007318351322042091179482414863274774015939453331822181873651988816229859434328053404245539992076137668602732351650667343542156232000613587411265268767406862520362039592164301761156623824445503239118353755355757991440742969287771702073465684205231325178510421822052931355171059966820942898923167441361332505731648422066107812302105791544822718566832254574749911823484254627834036420162592584207737018952854431961394151320253327950731402929160367652496468072537284194133259630605343352771294757235479879996718959004559953558622056661716656586836602159547730042680712862972051501502857038862887396145490402782565250131197776717236272836551135725745353429415589353466738715417627348996040058120136259268879741091300169040115408952562935619346840706104287786066057890257859455388682586678509136935246524137353018397359474822566161003916071353616139683139304368364096065693702637368729522644339834408567387337498495323650353239703912089459982412522059926074449370087231920727841152796322575862675748814668137638391122585909358830515147560417230006279234417849697029600157160119712253610420036297073403022437340741525927028511287151383038998845085427382790386469348921709293798955148970262858409454501268106174692548873526336957781314339046427749734879544839051709021755648197605844952089530375330955794415420552001014634213374849004615022262313937387432515924009249482628149481015248435999287976692249560243478840964365278237051848111470300743716569859079833423753478028605975788955728583727088236812784744418012680928577299123079359767261267290545217402909157469167976980206882538708095952744622619225784435735592683504936505194917578709161900449959436689092758934903718447070806352602566693675503979494647657153111240295738938198133762134235659082575526892863123851955607364705245932902258876954459956251455513757838739911068759906370475099354846578121667572160049179730496417426543459880662429963814624001139081515923326741958073270679859555567994470520022501365801553575336476246223830248035169790617397907010184427538948711864431705224183988457710067661547076379376355228750606098189999450953539066165192960595890604844073898615752644445762026503869152649247688179450585496161244004604497082577121449974616236228234026866474849743290761505130178810302889486417509976567819755146167067182016824015355565881542325456938591986524086480959484401747367645760998496239246028377737089646774479557969733131930881524309820168339363386592630210719437477203944586023947717036026010694845945947355642686020448745065361714325863270311447528962027656726157522590507816346339460192881992549102604506533073118595515826857213110920520286103171149454763809306865480284302609601804786279280932729080419042956994938401613809373681832701885569892700084669852378029028442716423231489381690689844048757510768250112899153082128212329560944402870218022154461497324298216332194555798239566366222659969679685845263079377055168500608322772458203702737695326590592352353411821156816772696055757320888722117778265478688548301892767916853023651852285987424449647566782783713888628618438159123270764438466069818769732607201902306742799240372774107901686777621465200041361381432916818211116445705906340732539594302786937101152939120745131076558850902051247566133000142357248760623204193765561672888003067314434582981473465932200740486013227893397883163481776103561305978200772717206231132158573881743401430723800022544832102554478598823577945204353408508960103426588042683288030260911938501388743045667937689081540102335718711510779721957163711175822013880221169411288085600583258149500878605193526920526065346735564113343467258914774281903188396274808706399679852814761384874779095872252647184960710986703627906170962728537719241410179023112479864519091932734017097337581648582409228689696033173406052034313383341702947633818305295246409555013987981382871858512118816535107674661011240189269979624273632918150825552180403814310485368990673418210176035050362710876083631838567623285976368630805553846320973808477914845922125432875167399289747663984401807557333457438795775947715617823435886077163301897377238454479257407937721164780257608605987319984379294358120592258919061861949883527420743412853322495152756963165166422943901053821429613430806407054124736513591422866402037982931470219882477140408535043895436757111991505995542112479014160278782675300951524820726487061713935960109303064582210507790889019316606703247342464229999927198890709042070433806353281345895117439806949455825195547275040882885858753206680118267248925660024825548497662384178879372789444308353329735974629246586234434210852026662592150527220363080830320182791274257358322101004455013891704121989217633013486915157746416819872731152159479711054293246059986951278051313280738830479067408216170416129646024756947442774817296798353836460617410653639248972765562176171005465633378070335860800010671224625789011660459250806563469566289372784990007518091925725211549264819336959211633921698757665726906304755111479444894580978050152086489015687351616045836777188934372157379124275637162155867114344551447583575655940532666473578173800565232365084865235310760283920461065760653521051475873065680573534312930608862172663807982163453683447811914800988684802266696715466052315680398584762704301625451592938426549717238513081898913438941022080218816099488655388919974358796218646568255928769075890565367411422340061243202982733456411506665696476744142838966413749486925457989465758403277812609454332221531978629085402629598442565951130499623984133666877226381989319230565275063818285004049712524969264622623358750236048570158440807785172384929613990023481586204138611110393835725672795538184898598913915301588991833709415563120175401280960518194676298309706063764892471582986038778858844358530806549829312377682341632743060730612028232904366296838042754237389164279342533035067081454437627386288041885853752291573516719762985585926628939400587161689081899777047738419985879405452720770925304887272541054333763061443240162775105562392015473854610307180394733814093552924575699229336410829979178057110545033851231807695161933138845031975925083488808139994923426390843812988900335151067241244910890233565393689984780481326071785328316112180124383029783035284760108375943668254431931784076445773020767238386106351702042790770513155298758246201240267319309225351516393675110012555806329736365528379210832328534703886760128489723897217948078768125391246874510787791548651750603823309040554524961005916372730892885954328575315399041140525244370626383011564948570169387413903523673188481051086195088228240910791895622616387139450290753375070499548938088578800552708794642636614810617128889970905449053555480275135473363977925368950477756465666167924627193985342171950658991050619538724675534382441475217471124201161202358007454052816232115439448619703462625813806053901660730433231269648633020874519090009586795304512076139533164340739460278745871761669220202544466957653475093223551557854354116463584141813671024417141732090172985459100472548336203007221222244162034401796078283424756074937275731699650818288280482825110723571539569205199916725916966823182567416183788872449824139797913566368823361544110499276079252210885820502684205055530081088416698250473805199899186827411145094995454667157253545873823922673117090905675692960987957302505323349317959630005350114050180130312525925938141536015604995524904012022831449718445328270445063777206831942933716026525409474154706479259231738201790696071394043250969003164540041587478591524948800170054858607866784863654380126678900762618383030492815591370344211186878624566596607721195688666988557964486961720570379330728308819878185373092539239618962626585344903933018951293395407183765981396080106647438313576104328736866994794707328740789079724985900744408591485490977950302911289860177838074727725252671413237749044231427091269211802672320286524301869064858444907047512657077008065541054654900347575456828714713744492252384165126936315769137238434152063781626813687366494072886800032134702791326616737987415294946052173383630870895196376061026895919995150105952449640159960402502830635715159696044717541625959937328364447579923998347482359264825459485903202473908418880694096887763633701703988728500360657375054143276813674752910605912531034769525887611901800592966837471001956958923195605063275902020077052163530488147977507835137064721948110948609796780510491245200670654661133505299486322930709813956272128986705739820593407714605717961082211312834652902418910250611035281912843513047966220706826083256627356292527862954704509170419505863077939653591507974573577913391657089674738246665193999524026951936554557096827824325685873406603317666752485588259003107133143224216362275471188320579997249380975561566232754548962918886251690952617600455277477158309796113155661108502163494483711112899791830667239901786440731178613317506329440355375827383685755041516817748587212497509726824551037895687652309056409173282536184969325751850051495707062633963056790551081162757303828123935334369221809141486749019025058046050021645868970599375322103059449622688905261492882424210212754446923161759752268987285418064731850176851525228962818070496851211232093663500939648529306820607175253581223720717937971899733855222771324160419822701533633376166845967844166002427395084546836163995183126876327719011915720270356749137708059887985914320065596354498704206360662154761452312459837565566553495519702389867110504924285332052525206957703100496304085306544592789185248227816974294810221935745644901219226993855979786689481390711723904642465893647372644580110652744594944936189093611068485905844711148481171596614230960136318994581534056337423970933502947034029307326657495665357115448220677126381730683401839953303089112390273818006386645863831431373321277418623195931158045208608519204932103191732203959842211672794707640692613019467603484865826229770744499108899282560654802509566480914165086080970149065351700499355423980154758453635827788170070236409175674886390548472656538526101837446742588877979342911640991327807345151059637140597533332733240348228580945987695955598713300628091558806981829210590617337707081852591106612445786250966254547063856403163732018170507024790978378175561678204478435343681042206619025893332499966830268550271127001632305987195848779129053213913578149466897335005624758044277289395105678031603013854635827217717012990435318312388107430036429326728002886583880492190960056153278370761719827699602165680965338727127051672150741011367427424333905888665562512042180309422313962162381431084054782436593663902120851118794684538248430524320818768911542264664846219927662640398253608182031118336934985644483815536602353795829416210269001942261601436310399486728218174141137293040548166194830686671480554774310076106772558041709240080729207453346540099312162189445918750555975317088120105576017069955757909200868744810449061216286339435413534791671538362907780739040002089842032024330276410235366383584115405209891618330837176743073412994546291431147545803998043520796894149183074878267469338232705933491064030044747183143905314369594816752710204761088251875327015650771384089647169178761104924404907408393070484293731551575584143781795646368533696432266736872993510624349089194115458978500876412135594099193851866674993642844727561227024563779620977796742173519573489943957855970510032097809245104472864733055794364408071473953987190781910237815141202359669140175751123287709592534493558926272230380941341980459636792712657670068143904699897010808571808379166734285625773074620536263615001169920305936699798033234655965620720618662270889295879501759612909668124080392363066697462516601044829881577946436863054119780424827052692075453904368542022663616451310403699846461917354337690677090899729605042119745600299429114330651533818553132136292938572000135033299693205559726987270196636211889716040596720397068810859595469108673148226303349437049600966880955059769071870652485111883822679109876928187515722424611627924539859756640207035278733595869983196939738239868796239047819948877514837844032221755007865078908647021864425954493595372397286935191711815449472717465419491459336129075215701002121326200866595298258148763300040131351985389167333908381410657179053022002363321081135339757098553961804884447467141871012937585693707948369570484876499194619899419752474010339215738717662040071283512351107921844601271710547972257460529640523951976703210123064272419103133018576698943684860779216042688998062563354605164739316117231395458339957501802608560662070274281057199826574070765087799593334994521426673328788066467627750247646482528036037200355430861143598542791541559897829477422596439080016814391655308231996632526119250992120710508806359974784036505458039389636848851120046508116769241332220446335203689528589027767920764029291536382420117913931892393546971349358244207678775888978866937484026323746985676250171349441978358683183222700566269963227313236315441292598103320981987394028616925543948157495645181463924453160266052384536092446519494817835328563581083517210980750530845965093836569074238389286387100868168858381052780904238981131290057486725217398954121937884870933022783204477525812687496793190703577014229057317171305486637465223024088063048630639926468324799742772356615170933835979350238311990130457347377925265336393473803722398625984836593960060757110252362050475150783890075510776412618118893473917006805358645847251891325957444121470401602648999494570390925973057781408445366001442208220070998276447554485842442029450203018451946254617095003514639171683939550470828393771734890436866779449897545010535156375944241011226799647485694301502737627579211254538730261333663317173648760471888451627306805713653996495571852118287782971100280910603439689510481355781549881201968570204836165322725077123886517618838532006555802331760582072618570136980255722409795340654349217070625367104539867240177658403925326291332563173620288766150042882893368499915432189646541535033279082877360961329701602773852955469566792172100959963092129640381759455300438452318643072506054112643476229521000053506558733275894679773780385231248421168041004894220545976693039826628717648926736164682755560237016016945313288792061267983749334266050452728069145832593511209307455591292861978189694151769863805824848014471187635445109922528209588571754833530870392063086204177447538466879923507210729996427643740230964709339798126606020785902650585424172749549457713015250386524757217552471307422468183081686275167055883042317343994561260356790642146233842061268834938803681293694007362151231280573579095296259580239590334877301597916508601775791943326071095235200981174146617874260291697439504882731728555057402610156823955353127983387831313603480621149261191234645447084605074558644561449389845463907343848654782173642574035835381513218041149584610254397469872336511427768014550140670250966641782972596321827808700871266908560533520931874080590435123927973115697941170929199455486407058385068584724611349508460859423746028836226937104692674932887522989510974177911081812900483985078868565783087588374124453243108678424448720863428384896871216853932958793825619911452326433688734677731609554226384511864150994276571963093916274201305833631171295988519452135254596001282396470830671632126886551027567925265786934975493310568599328187713015541479253556764676303957366637492745375768334236503391456577048897118789704876312453879406813912182659801594536074355367918683572410829535460969055990216749022283489780725626630428086911897017713844165052074538200158717498260600484275179011128356289181784246193823106361764184397994757515482680548960874741767149992260154208653304284951222416234471103080610467227398438639000974775836972071541834864073348599843121040029444042344079737411959877901041894554080184026860697715109628941667365461927549017378796544716904205421840228436101464879715152788087911606229368472286650673435398541216591573980742313798165885906257152029820968755048405671754555801158582829078048926461449859720154369670003593175950767854383425621030294416958671072395880853510027272923164281597396978175508551147446463027222986929060185522108973731764453485992524346182100643951720759463636994977109461865903545743278282751527079181626208818835322154349658481854701183319159294849598397253679889151380119866417623268011007324121806522723251543660016815711450009060126586931689875574642108951477664402653422721921839682620815928632309646919711051345871207729825601552254695397709996859584875930767164704489033053998946236069921611695377450717805369159898186644212770842391622678368793780997879992157952556064924613554360625368927392915527951904426633808946058172502865753353562000358438213716711830429271609833541199768083087596540482122679233868250907377660715515189289772256709399003292048814500837822204320883302912708479966411062032408842645688315596977109337801125276060275522273188605669132698418572478663391486037039347207837555582532234039240584511798801036952159444891236426365939694089393760970672422019464015293060680689753367973191267720822841376166153946086781561087378928651095583075522000614239760979087271504031360254327293917913243794915664970845231770479312062755378215570672104143093495948718091281196802898801653419008915983250877637331061120376003416512780205459282906750639519019714910097940768887818620234229730402571533286439684421875410289822985043327142595964959629971382704392678838142844698181374652605508599491356226748823168402202828037712577221427614428912949686787765890562713892791546615051068037750235501340417468234064620155986497075616480871682187802789596483396965525931615218056356018576693722418146949311256115117417094682648199980676041222956343871108996970429243754670950734411432275554004926057072448018234457153131456717153773640508246586311518049080921011406941829765939535768656573046044535967963960530597963769696953827525312903228434011854363020487130752475875431897507312626716183456237958754081498037219259651316216938847903230852371799653805033354183033982834526307648080194840274731058514275932809551069994513523640360621323385306736328466579868957865893584166795980455270342876050831897342050293994189456426896690928191445509005967578653600813094808716424064634829003397506709542108251070695834903265552846639624546120066926412185962110818127356968095205947089928920344881069613362025960087760166883571731293275773959348869160237923993256344208748346624037684354418641418740490397513131960532659998936374685120215433886130960768421317924637675900084591056399114819312039196440348937303936681082329347641343606052784360916878328876127017070906359411488680026949200648915580926825860885973115493841811832518870061073433073928067969598082015219620577186933352924102358838399912174412540535166508844427509009837173443767534703021329232715162275529036760351010341579177799884642453082612581753341971920571442223968146368244261489082617736703622557990609223210379722651202683609441397006513974715745832382337042618063982050981587446601769486926268356674347522499124243914069401007869251317803240492530517121060454707437242690352378817841380643516193837998779109935359740012155286297285612350036879937005416676786159794282215628200231008010167352032781858846575028617879187596201869093485446533590304291532954982176429245332421587745528991460493180181928623039805869448210113424851428988691107098599395653778765134321768191317740995243220732713668262372246027720371185722285199949667867738529562253389679436435089509588510130859398348578500105361102017603252589472420627600821466591767318174891266288641907007876044879807074475956658428312851491587147657304008076918531404228550535948419511422770286204498998135563844404715445394719210112119252193127824947535036657926510926999428299783342986208252919637784748881377346726873259470549534126746446217230171409491288719087258562694403047579404541896041098659867574146003877955924914916016861326898457822191582928454539315164118670283421058923092893802983761756305142802326532155329931423852526496503623906485482510501839810331461513560150448698291272094756662524737696364142635915381922195579229406728597543509253087661681391856689863222408285298676473369207894089575434025725448631988528915602417889757964744324532618467117845089553450697229744120874152219503318513609720533349092216675817938654599659691677749984978480000708474848642320890685305460583888376209028306192295188597194425856575908563085363960803671137354978474639292477438881730420788897319237051532776304305653995534458072315438491718668742718260589369010735438904709223659340561339304126125132058890079715021695645782267751449735068976826536550109524921589220496548235329708964126816952622830612139811619014115839172565631027355486917298826630572106471277360453340329003956226508085640569334076924458491054959000559992754268375318367653266569178458565667665959485992649081898805277594680993844757004550923497693713105167159124583846166347722020108040767698284636482684645299306288030599893194006124681593246938191029067115888322949711690338855831481527435332997928489348520951824090974134516452678044446416662150502780110089936491233820451323612339831551900699366811626733297352324668319986172840081487712469446319728938812578771940519042586808686946043953887007868366322682775650354436039455109192626497743108556879549739529160574900252659786439846908017438432607755981172898249629981419228005685039342858884415122225549259919923726399262855317623253977498169833407694057964043208610129807753928723282703094276218758344601327487079235156386909882022833189187123810369371311702025150595190780132132015842424925914666694975815160585189091186737961434053272880688425193453496362769936906772800737251566323418361054079891029082256866486077947132711688112479283027225559683508752853313978316350640541046161026763614632151883068172091845773547742674282815555933858308669780463478689118035303455878483773031163104450434096936461481961048996746492705922881775155729911244977197574786337387795602098074166248361661398528165589689744249811672620212572017801945454718494497141820141899236475465308170481085812677876567463352024748481530710774784614646625718226053170181561722598481253977392564333913813738790106161283391635891053291638241509288641405094060244023013362694645935541166737753353139805506973434437777192699212888537109461106117915138346645560615919222491920078952222618958207717175970866888587528358450184722241562776557146485469877662300904069854180949758966264626839602134414257956702188575874664508703523330209484130011615861752726493533347467424499634096369282040686815509145052473466305803920672658756387545816467554419808202664174891213287651209731108331939548901488877959390713354518430289713394898176608794439445270610253050714285918587463599218557575965906996291444294734271597002639933320364929226891267379654555065231989737399156575863639244486223311154422906067179464300231199485595526181476271334392567475880463150913519164009416045020869522371174526070014616102222266161982962232133254036086660186721715716940955811843142559172494544329042270659956453937774971637838725547859741442205758144639229585056268138803939309113443405850256673639249541809000932964465412801863004866647228629492997921491385572741280233311232365810232718039120051939194628774262810276004455534016869389605075290843754235004579939123525213540549802298758425577787916286726280021009287138255441942491115356020747123411336426965501196891735463406376977102739331292440283095868554183059369081729868139620642196108902781896870626218764643526522656039005366442576307854095854369865592787563867799594842164980699203423398183406892698830705947104715614161939970959823327749898594531156636045649504722210459709460893156863524372478700192627156917239517418643765163922249585320262759941457540851008580502804616451971482673242481137034585571517022232303096756626715699657903260468838991948216448366666424585977427288433521606423116711584160444700191181848128397065032569862324070628320965475205445284697041089899969036086456500677663833465021693907736595292315279598521324042954977277881514864736008196129077472582202966612379635074938562068615520784315294627617565065714197366559692965614266431428345275984763406238403783050382164056552100147344149035355610632209038652859408069919747186810796440353460793685060773195004576536718183815046821185436258458268020827780591909975193180132641770246680222100873321491686014369645973482125666900559751642832779355845977308000129875110526842696444730301905392287297548014621412911638682171165017785566496404132352915725377712577446443684320941091389740882318299768688386296230952721558705720324680820161829331868018872187292146832812098847012802009467122585183249871161298679764147110492669584472490602842901916016162741175574548773809173479664928502329944841617080602643062475867766944143212090965980029172405736101538122992231677515502039389909217951916728012335120260081001395250835147680126554512815744308898827226929614676816284596038689851061867403179455874541295801525636604857244252993107805231566151526681579544402051119521567433787079032402106072990466696876226209167990529862952195590447787255086093887021535448589046359912279375001101538171084881078368079646062710838639224692139512830468415944417037016211507304841936532328815291467326079103023194156749377203620784343649174943884829382734361120477874976210881626478281838003085255100011153085624937462104713525967677984876642811875287305182637984814039135779647829184641101620389481513999578596917954897326212117663137412632593193591063682955465818543523835865434994197555167741936138378730068459478571098909939174309402400497441495296869738993418106750824666907192331359535873730963034591310494229078207051487785322589758491387357707345581550638346982701530804532707903564110996535961416411988914403790776275809246530789910323206248525462498672815186554100909231316291530296101626131730544039051938481757601580979909710956718289743637823653831279391082579650347585650509239399561663502832517346131991394768915495430566682171082060832608877197482501429754067435361136537990246737557031511243304909921044523786079180461100615296851282271802209500616499037067083969981466098365400237681821965291661692570972200816867337703638960366425609285667983249291668222865904579560209559297327888847469501267665049122853014476602679444677791266572977123290758557979609411095131485812270627917006666376072525414334240208622554036521017514160031483531333602750578102556128007948462702416771152952844694322925923722314531421857014703932401291535878527382809088021375155386702253625858393031874273842669457775880668093414008383394666098399397629408637740319329282459123327520037117978291331710603561038757438544059731424214406075694597392542698485134660920356080708032576444669644432299734153170355359658166204476550986092348181924918284644274708462472540232635839053616396971222817787547768859220786424157972797557085952779450135292236233057306420753815050357810844017150592370053373114069774878987259959809124093526882819500640170903889064086556805397563590182739736058000970875767930367479919435764798508543643370898995250497158341763816591695246510869678868442566708962571140701862222093906249136569199446114078189097622729121043161170848060482722543392504425166936528185741366954557433534437601276819467656520686247652202218735581927384228613140777597464775550604999614088804730207755752602240719817088653092083588585161387278364388041422730626334352707773195085269257342710321130348227808345089355935797931774151993745530680945696973786098472922900764789753974686306172669300510142528891373612006534941787910613225033072793393720054188095368790301962821384074395332718252724281148473440534631835936403751740767920790716604617768811575813849790822837995583673475152207826084489620808448975397182181237715226920337213186958078835749413667077970684338909177831464038458430651359209662594094155848478797156656027754383376368868831731064831118683030341774483873166171549392970546218790869577852923894816371525987390933286274048552539679524439682377650262050774675002804296544491087159682359282458744401154739937047967454144415069324737726693985053190433191921831571466293983140509515874389486571980137280114726701613191170090127982578674148298537663907682208187269228348196192588205511958957224060574580211833841784819656471584560636269892322939654381783888253916960059801462063928581800834160023950716469810445800010570321057140506566606231200437142833646366975099048726463392722590820078096760876030541571957330930407440282367164168192718660649210100119838353295354218735190625634552340749167532584433825346129090654973939701060045164459488852785863548973224416465293137378033010078496866546064757722502391436439283551691339500658821863319389419059804698054351120927069092130452219005470285676389583956037998266072464001940167257473223917967117364090750172353568769356815335506686083734324500123322216568497016406628457111627496957771416706001243563744794610980506160474270049336138759854327936424064837310329120168160881392281708972232599098746527301588448170795526115284184084449713507673109040539723297586072694735877092731096733871056459018367321281030130999228587724035225195249126201318358143301057898988556652439010890523842970885001346692656360601330181675668917892385918134011399237611365231186250363866584516018733356654644916516970171935513702601946426126930304373989123493622494207018193014252764535270038836358788800962986263814913014179089811806087861340727551907281743521348038265100145421727609715424287709217942807474765512760237626944688438421183906967939856892823455144262304685760595978666979845764218475244298649532592592091544318674126833380839225159420624027742756116315803475850009829611874398909102868182332989191432267106508934115418041740599176114704986906034724846934543581535833991275579612826140586571453211729714836971810951296303113130570647706679011135887527282041166618520724852930035378869270507030875874130979321720008350794677566457108898688807504589768733041972035130359636407344931151592375688898183459833808857255787708347759276138639857020122106147153735207977462853297961554068372642236884706466587658342217771545119601992491328939269196550405281080657706554386841369202900139299322315297991102350629148849887899778317667840282106489737349841313770188495420520221959138730396302182042456154927407286822536742626997778522219881451258895008899298711654309188041276528949611137063789249331311721368554948369490559106642199244312763584689701640889865477700231305030193529350661438243111415246291369996730444939277829894936747053523558605551942362320569826960453393174397990359344205700463477629605431196262565397451904548891296928840662778115166692409047518258514372217398496887011007093317925956075235244658035269737626022075935991767557234098984069746364916363286874365863751553310049930041406729003010819085369293086742477171420959839093920178212431251061227143883899277817008825428946787698040169543176162462406757810107480964346012284587053893968702279520668843740582429863271874688833564746115567740492179377065320976219659531523748666529491667065354897299145246604656338624587487783354370239527055222066177372787988990984673004416427916725376015617907433538669886863451464671431161935535254620565467257895214994399773987035491345280433274094252410147258271902458695980230810984990371325800861953218160345352056163761706506665979972374973247929174027375991293808636062829500180071263671377869621072268280146141648451399727516828834330873972844496195015644654366781260039950919207704408197748575221813582772104713777147897239318307703474657684353137734443389306683418414340473752436309920383923020063236410746414747454715449286858056551067724786450343970984716097909400041979320630973281670153327632931295819796492450206618504100505478692972023218488894628680077991990520385450588072520083798014066282825052905710712789846415579699843811440013979117334619536979568988000737276949696923991088055344870253520992306649690237732263784027117521420731105939010532389003029325607885183340482642993131753400625204396564218881648059429990818494869124469533256736949301229743791077452084721549636495518000363562861979069454356646344607384612192788430058719278144422472084798777914697496725413811579124746398105340560935629776941946052907077225073992942219515938645268993486408378327264969982710601949566347745444038236677223790815927271909138956892593258387345884552424486205356242096334521584717324285495255200231962922743459169652569452011413215110541861173141176561734800181413221890571290182394167684019821820502452215629395924283974278440498297379093515144211857169406437552109169653461276185431234731659581838815328269810891672176738740883311432675195301449774659849065690626240429523219159720025830238882422876993692968399094629017108556134572162628287507748735917465488407136009496629865853155541982170274090230028379879414835582860949796539774447716227184026048131190213224211807178884324076187375771157753018175327619371750438276031625349855045829616603639265840704603598877153314908101076143823735131982839884014041284575409637481007422544000547823301835480432970165860243296651097356375664590221470287301738235853084227346745512500075079327324104546899839818023018586033522802612539630207494906592453343367577572830193927908911369165963234055166058844369352617825098214539022309485984076963365801318153355061256514178890975700425531951794283782465054478499838834564094584258649553267556382681656211967971830028640683538544591462149856851427571018698164066839491547360520237883596392016406065825904725110472779303070091734397785806992020745961881232301336930801389715194645664819419579438319027615298526534883705522065591121040927102176033070293893628348829640695221649553906777473039025578543146483300455706673314462823409883731670204383964515355816439971862021018525810636614614011122426534187998407356131816890477967950275921942136807536143347076599940235876680529171138566768632971475847141182954943437162839386515002228500478943836746818478522864448288820451207250463930237547988699493998798060071363100438239131789839437954121568581073092874182024928584781312097071902074909054584898083824343618118951102197567159112395564402186467968963758487202228091686608767741721184900941219137934967221734781993558470243814704868042427639153554660138728135056696752440722814122299552874795774693133031697017524984754138194435972358296014470544810771401565021467007030883520530838541131530433941898559284402402050663826648340282089207837387944831615313595143136007862499740818484887231717343471415420373486088794167061560602589303573601247755788653586453637072440780736365825416114417658980599649582365280521315582858392565968174293566654774643214203316052784732348764094618182238449337135413166962367937436626704657090898311745155810524630095884804596480584219372174979146151235321857806422313563541810585847678620476252919231096686722750572340871940548096136076215940541096541071777939435299620692414852800032955512525848736852091265388310249178569071915187773400681680609901156991541379083737395069873749746656662601145999887808296600324072022413000415569141863624348920057599127203584434367162886245964157278166918342549600225879075326846789210048782988547309701307471520958895540044720117691198368205857349298392806206447860252556391311093070840416370495387090334160232384735476988436068592252111135898636836916065278311810383501379270719370684046177840732192574205483925775114537858148899537816867020308650412136648802903374179666961167932107422969219082308639192634377229282210412280897442298263573021489813863853013118434502625148755575603679723778948445081538821634734131013175873859684087257865186087390647957014805154182108792883439592566388407726688913476901173441053961530575538574132120813570933297627885824282972539405421431711545511942272230077057527994498384650222916992283648573242525747424971730422347931606871987692156048046225361863929913350814583938416698304478683097317194505632014135043285743193749894702777852080903826725718964492733332767886255128699635962483848494461278860663942977706097912275901284860595702738036157836050932587384913020319578859077117426358633763282674449447937947388649135115583354353255497944598485468116136952074645288438601630378096812484199356859004349048450039433135766897068379133522839861481950952879022832624571306043987134689694615926858285875562348190795225115991015212511554787079350040991850456451284096937191978471004349752458808091358122789707788215408320315533355521727005648720608324560428370575857363240097848696379744666560554323239810849160160198065409018741486453134307127058709147939076384243881322862085177686703807311408367475775171084040211861035958280304890286422569829490242932252928187687695348220364190273369830592130142824557861755370024276661411003584141046486259544141363824101219840649800195444937726834444108910245621088940234608906251444728095659653208634845325733485251703872220947329429715509569818382817663857239185314910703476565451452819361602081751817249648679218697501863581333121877287043288913994876325377680085770690210726894827051740957285562641805161254828454302822612744060400176447105859244764511562761302032758082882434146179446589583957430647177733434712835694858018821707055051783222836220865255696112619830517967955362468480605037234649525714782683023646506165361321580811978365988813034340350581190971071573494346119388033644429945857897938171626429973937613798747249686528096519552772382258033783953672329897606887543256251195030373271146352592938901326697993212885089561503069997030907463765974557487111006942495107438673009437638787892007088504744448224331141040978361862406925232271065146226643090612278565639068738047529709952542623659751143115619168361076792019259161719889030116183788129495022036538009394399355548338382882869306581522764089582846943094439786298890774258519311680811447794319886252627957706412307310623817944513763473021407890215980809158688941687162779716654909668668950857716754141712826048693403146538829444415022494770793192379173814686796986750015811876440521066566662193727853217570293280702961037963868841048505430195696367306494186216879999926781392293501704177946834601917217715795217344439275959380895215642597215770499879154030657448765480667766428467634827054623736125146719885412125974598054134756836292749366064043767441275980556002387407417476842174046494877563996932585316717206851004468416320227283023038454284829941278858861466666440973126215216450416521642134513875388079794751608089386600473822599412408599905961511622005627942155603957708356946114084701497943964260073110471766239459096228004629130085433207409214454498249863968764153003094564930152046137051604723005867745100624872469626959329846603264261846098207181629658304111298103191431899785828306116887260848366459605235248741238960146679478071462892978206781250811983146891104959745216504702506136417804378244720277039401223743952106238295317405218277781467850964282989360139585471650833832552588518763305241919641179957900260892569278061577915779841407217506279186280016510183087321719667057848284299484590442201143358695155023128596451229934145000801526354036228739528006934886533992371135622646120964640578868745616730598599083632388350015533809225584706588734601718189609654708494320334030418873543149632342267345780231598385430964276795880556747760219030451845782858308901421723523719665575658234723337132528144990486909501272918392083061183816068690589342534157702565704527278473998574345310503500484381508894168924220424517190526802710502027045742884054811957110899552418356742383339526596804759007350765634910537959990582335864440184811931324646662050795908104743458522822579518121917564358390419635581502667626439255696320919018798522744062664372795754684252574969931170624922044266878428338481459498241606514479533840691641746017562056529722224734762534752804319521142524901297541354631605517712506570398241561160121422823162683799786907498672088116561250638403404209878727383830917591274429227401331975048349581756746643232532765658110657130404431233508184363855550040556663072210601370400693499249507266630823915503696533703193131154364804932906732336266132197467493861664883699765432576821103224164296431232335099788887720833220543526275292004526926516769662326112239492748594870631737185501640015343213521996490292578491535853867060344319579276523203175896945429126802783372132740943849957102638172395710031511537229007678206203008539402437153387229339026642955736056839366507203519328714118339316989918437923511586289256967375202905786371110824427794895443170519147937841929994009522033186435789391740966756072236984922102653896450616312011138948150201288373086756983426431984887740024052444184314153324034379247699621674233884830871882433885018730412866405371304469092491688496925109749262738699134620863902152639276488868016582138221458767681554981448125869409150836873693047025042924694044108858082388621661211515972570325891988494210553837959182095972788795636861907834946930733545543818233696620872639270842441146679660520414716978231887003389972027368181430960346805368024921327078208128543620957353752934206826688050203624144429197945578224721121322881660931497537502600373437169526856749765330097811398848514580294266765748858746659450480367518140498721519379818466367119482708697607513509518458112318887273200288530017638176027848397604630279275532507468698700672643568108844388875662913710469019951580156518134444117060380624465766238003510855554435301781489078005638614192125095007894607239674419127170362646482622285478071416334277760378681370475815452343730998327852256553005188325877876522378115016298688230023883715004592702837457215547683812467175402566510344259549130054598788745991699674388243740077321198915522121082666865287636146685610578598903949076052867551092940971939252483622388780839235017884145336498758078879672828493598236114777272846742691256228328069989553405168765428587553182448202719559398392638211633493388507942479103637337044550722627710199788251840164168686248557773405057885420992937520691915334808264887908108701720742572483821995374905500470238278230195803157153067843760650072359522731216609690381882088391365638511926435078757126499471229129234450426605413555157674920911000575729243259061831768222515064699274429072859315303959180377618990427082874166969716125763918056505933631141003641844567304836226204102251823020849479093555978628862821874407936074567184362663067657223980941778586524846861511279171584584570796801391159772558716398079661249685238253881573124640803476980021988461410874621702419610547874762665142894048589631511536529463739025888265369643428988378765191642883339184767024660672246106101886827136965419468030413049657663828884067825402229691592321505318101343987052970340757293068919900557460118087905612052067318182180617116107577815495384849039606782815367667310655447237408661151234327606367339647505928964660097819406112963655945168046989101011784188967389783264597427738930889295226228573008989538243205218892006542551657305082069113181107885677390526646194511546889913973053380880903066103699392978075572145690921045975612474986565349311024360326194363363727753629864420876230835986337703515625390722894152622123199945611038991312281668577467862935465017063556582642770162019588672463966512404710910158332295425175207019601624960022479068318348625663089130219298225718934308662093814501378577646678359069162309847929986986819550911701743178117820176290519726673842377653647223607622681978123711408957753204388248231022490576197768494171901117223929281503687054079506757137232484799211546669217882200046870678348087612572649670668458058173310948071887586613513315716181431797087208142737493780762222410323479895672499137229222242531250707991250901278881581577184897799810561828935995025736271259186617698024913682538391133058604625879227867485573244709151494150215302525765662146495021883334247206037912715273673539360065605588259551227853873155036568629621705015404801448974857514466283308309932737626741715154591975965373981995859196905813050613627550458681067215211945359089812155875308167816391075449453912564393296466446136039824890530489621547887949192388122529123132169537373128190725845060000024279810864350774075765216174701651259363292184639093541761083207542378076133513918022798425257139888930186224212635285624084624459186775513764015956591918467877467724848400507803602481071687060146222902641891429803781104391896682124208376478693199197770842230413045425686873030459482571968960728914567692133861564363588526486685819936461806906941393425309951823201014908442283669383300651501204055894740113122005801565870321706733639646719351627676002975246237554995771412557369821366026849602983747790588749663701747467012496395806754168989105553445161044032256608536898347958974650027243575845203161917850802673569027707126433179601283612301972520969231598590862837741192484796507813633083595707838608118260347378892814638481989283323612328553446705233356511183138828543466914157821239557208788739768062296394682278420710694004907001733913966429385227998790983039311065553242974375872895371320278436654832899350098220717172164176063507569057072280693403508294303713261093810278771049089557390005672258510917474689279106350079493093235434731647679520514620695598978521234300427382109730274153500079432560239308540474659404795177551543151372344830139614645493385915231405036625580439086132676871853611457654611323630847143490847814495368756081918176691197999739902610311448069139735677371553807570583086249850150461094925189929550947470631880975293294253595872291378119898610007778682614949165002813483178993341204265840825881341284956321125113145835921239535017728367766662102102971515418692456535161161024679840936648662886355841082709082634759806411097106044115864618147827868541636438974950762869878609464368057018261510333164974702187059971659199082617465973817265879416714189940489398770541648102062891712117262886370135300832518050463326810634256924235762230572254086097189081166325021894852116629096636493525753083391584672206316472750080225837308322367866202138312152526682237328177712643310801406983829764185676937583176445557731152998197875061885654913972957036929454581201286445394292647083183324065756901739590948715484012115493531548203810501124010186959413358877276452946940249824528402379836167935246943640690530221836945535358576173791199367738319892669768576350215126714096705785149010355126198868658376755377024873003266882424978153053418402410974785426093265852347520381345402609061798367234545227920897160766773707073131507696363696301595517687237287805650231757564493754445993357335678034879850743629447119844364497500705146517374837151677329069782054832014796532143640642680956703411626539665172681442943282107737247440438522970665487334970476284168374604284048859830340236411124325971135105335914377551517589206053287452385548227095597561698970214431310462263557504468380094444587954911657586441385292667519331524063278777576062186506156966527531278677043103435640267939256004381301919721828414992879999828845268684678742160242734924666687666821684539239550574573019697374940480948742657939717817867010079554630364763420125864006793844030936518515603704538701055920314868914750294305117115889709512278804507993063279429776356982522337454662625780451537501145072309538502098952634530356716874977280176134336380439324532540701756973537694543792037623686965235401521027559471342410835395244426626608791366204622179214755235147860971149519189924384317803036771442664672021630987405644469058313433977423755470265178620934029175461261704364287127459149642401163333407874412200826370780960186385142817483313607923420612014085068227156869285654430077793672516235431129813497771276204551436186884854608186083881526237070089710319493264355299488456198252501829496932103267361013395856318209814481579099290092055844608357862486509741905192822763717973386087593298840535708827918343421589655995131337997906590083349846749142376679966461965650280923003929307052556360796975787655318885427977518307355144346834288766285448830691413213960291986871955948906977662401683395346808898790263673535750198622979318218706806355421910925001295353445448364009800152160900408737851101368092735261826726315055437054868308173481690204046120411584095723718449139679777334096357602998354073630144236458142419952574380172362776404195973167869779456330794126246839004623814004688994218957719529134103678156866503591064306234765127999728692503942534521161749247703307317183301947384508651470566700410056570833344806359665105378291871027921161091294832151100533116325459151262317467779092882448063045092225430312302885893133893535127747893750608844733277984355882042225050827671279867175880135084619889025820250492649707163967448008221328157419495299499441457408621018291087698244470837701800870463723202949938236261724998563850205453472202439573162905184561110324686078647445604346802459243057591644372203444324195465961079410243562536204133624967093633692433589699845416572013859578779431116545812235615928880919483111947591399252287804446694446779398079383838847090222522757535208582497142946479965177210359377051923021336627148715253526390420503272062804464044338123598050096685448815996048466394658999014123132468462653117971432613121796929929928661767513701364026622539152560621790672010103753519521865017444803514257868211610151820073092348955165778934257344605095998566911253092737598887553983056065342809864046761000914899295159792182206866538088304780130373381875027316843757873407574910735034509370209034327491890298782027118633260233635770535095755220707031351681802436706459835083560031573986900639226093664349037246602485379486841311005718697117745914919421021349012244195700319403837926073066939591599913828557170397064420088123180287969477314223777514658653053961443470450973354979780625896256143925854041146041124063344261129016262742261927447392898160679521450324100157401468345323968577753801906674346560988043080790365912852165049470666651269700588662461319462544573665891281823558152365423198882100109163602001989824094751028488156127378291975806300329575056083533887776873174987474337930265997450539377789839195005519437911432094014927309542439512820798731610190364872663376434654756717737058814589759022780017991905915648032197078458758351477778409885262048519583735181858238757875508512598811260637443005740583879741985184650775455794724526825234654787874165036229109376757707847740166317325223256619093190013588713746065915909218970534031418396910539418865426776442937388647866916244150043395335358341505202657503680721198795627640747973150138192913900421295929781013780106548158391235171601288575238118908118468113761223076391777273602407755499606424101808899345006962369913142801342029230705724564343849599239893435144388268714288504634761456235531536192332853314226482458559176750515358548748845358408803404675019057538588533985759505300145501701302482942090095823591712691370181261090803939527001781974243254094169721103039456804460971198872163720706435492339209021367781688190295005082501616708620786332671270581001861608359603779412104812784197180380410812593415423139499244187683250431413559868215953518044933756685595067965760432682913363266893918004407361546430962798130700807294372594958674745811336019907411068586905650431942237124375895755146960966337261335160564534282111704493528627339093533107641099056757547098473878206485568211722112649427847971479796787378073607893566231227216537655702213767950144743052001877498510171449606246613421193173501701466840132110181181635702642218452211730578960080582292076891172383613792163253754841537538816979490939712171730309843971640840506215630946779377119250057598945674969867485576274053463685014420879581377180908205780403674503611206893863759562918081968440042783262600660602027763754903808265664084470845907484323814772111613571265239811300892700551132124447555314276742123519520501732189455088214332206045405546613950479414666340059617917418056406651612479333120492391670766244358271582414100717554944948335321937916801611978097982010544423843857148797075429832004523218293270743601150015739861675237427527238204896114981674908595589055289063948930406598905540653157608271068699552940495914871233992131086080280830220280485942270324362652102808268321011336976898640669358099027807063155654358775054435511096370624953635952720450862362107677003520188003153240034311859324551828778593133028203190290424203279756156337408145326436805322946878424608929931586801233764842905018333150366513044308139973081145899711523218561986271186629501948754733433501351947755805444856251957167677806288201003458637964107737838565799994103805519292312680322310954004650698691913077293839662679501485917529044048446553752715193339434902970029501467701437769504226081001636107800309784274808011045109993344127835254236194261587436263380075985525544718639517131740382527169457420543505700774035015431550723223390870882357129290154863877410802697396640530759537514330674666563220917882996875876363204826429439634769311413884643628013661122984914544681344836261748150456592564336363333576684481547598990554607116075465901805558317861111773328386140521837244898005596577549375341750969929788751870470560910670486647961170697512257580099548642128968621535279492636442036078612986801337935032009525186575253519187364854834090279991894656106982842004318394602035186694916948690993493616082724687015477376336744584006538489200010076709042945921888538304790438150160156951898522205975353274954042169467914437934153937693372311752279985940282501727569129854199754392135796418910050164030749066259032114046307598103705294908310324697485519959507939405680040276949566778491700934809217593343982205113964917589547149322511959987794583977378317401516312044865016280643080210763094158133152007717612689877844687931103308958672549097802401261053353410224690898380700328134915194328063676201169595933313596654797250705619018289137967151251557510527348412639034093225700579859628283159569117349223443347113828673090936250109262593724611450834732544227856578627917101125828328375393135720890103563776727109960830578543771160876521389230397087764570332426292828072292211875063290224152820086133406728638845398936598988704721448380174337878378787153034456777343667091642609204948754384584994494246290603582673978412462032397976585947865960137141702137195056502934925157487314872338907768971858996998241703045277832187756500137752980786348487759240605444622893448850083083342318515374203463973430217702039432093358936874287901601698504323144107499218607005165535964077972767298679618667341611361697536349429615127952926323000148296991760675483810760425492337906486413826844161602933894731189602365630978470226269322629163066601578266704275071456642538411094760734472124029139523856668126412531364934758395289837098406918289770430511856556715903213247549739856638919657748052186996295449962969722013905901484748424630460358612170180150469089761975540948437258589353011284877486769171780123275310831244683051460593872079092222083291328770875835915551623818717992348610830590476986026676142418151981659943369102670751111049936388381050962243636454188579733837158347430707998554398266229748318133107265842790460738431185736720277063293578379299587472500682810365003157600927553666877725488096792449301682843174962912493024043251690427057733985412931721575849274089249895603469914454873916820384600710244987995079119388045572111245103289933106369387456648236567838098640226132430419012875813854763145169923758840076632144352198588491597430063742789162992397184344685408599997848714590298889209057546960198840079751312680978843512285638116192638494291265271289319902669943685317508694770903343437765407803020715297727935648567547992261498514489078192327903719133018035071369653283526188815223526497684590085002764350357377911379395348772594419782432643500949709111287754565199416184310225730844332054552545232439213771293740150270994109769411383337350467330465795402111520666447518896475358018032210671458525131575056205654609241093988617699141976246037098381401549426473880172665039363322324337534422096342393668748098585612922655478672193125516485404385192496372487885400395091465514496982400039779601766553846081353414302717792800050957436972773638965493193850040034700315881917599798472042493408330379798707131491788243679619979315783144112908171694378184298727239459941446962176104379811152835489946114896508714839009128505924071881364134917048661665278659063909487989066763071659845765851571448538142375193019625461890880212355472411251652003605635002554076278395945691004139509545668274769448844296566710504936087729851422184714920231056331119616003276462556228339150502705986025880468124310431817829132238066883702491908747901306221260528489890159032044450656515464489942381248200168674273881159527443764509218727377296827342110098292510989438568710229473050086057268378901166080008527803948842235287832166393952779355484086283594635789679974455844447204392076210517340166234450158454192822368056729054278301799812753923865676218209859381558075626270988585725678266078196009128611826472016038967148144415130227427066923838611483790128696312487553161818981854505859301672421797830567448463666944242811269080237418271176815422799412990221892211348900584330895396098474490114873931326699526310794840375146295225813047884465277390622930101725653630507207823054182298389278209525066157735950524316279366259133623754926734761006275755609662963578373188235675879061283314240523698050300322165126901831169176747252312462172049008092211265749073167252397523273557281767243396663186489766779308037834925391012087720964875115130739321398841682433077272669089822062076973563032773199543672494712315592745598101305072999145550825175941301223303477629937347241146698373145727581705794104429238337693718703977033092852707756114985497259990038385401438250440925301892167887184688714658134940606007612854395157087226887993795398771124550971001291931722667924069496932235785175713413381989518889489288190182336423248261230292927408317162987442517138514382509109464653017425186028584874443266795701169731467099782931653997695591616336251766772776073596900952916200022190975205198291331561575746750421058787146492155603321834840162653415846444392900349503709594151154384448571697728024597442399261112713286326313402629834370934837523057257435738860759735816557830366896722223099285923462145685179785068180498153484869217530078173408063358663095749003873431066432758922952791159187023698314418279403193015450623274315033047089635938484951999481511879107291901603010184073504399516042681154961617271277138038736175475359755443762430882919584363218835314485265603877811411447300121679715710053021673759781968615764230312982084250507844853931376208916630181001042640827435052169391300504490740500908062879894547523277722341896462983533111990066574802433625639337824096773850430378014401196361484413458658571958969738388420611064984168294516199185287880531848866295999426019108078291084856262946317695246235728650044399256526289873809498370912465600675811486977897566838675298888857350365682999790747596775292023424638279825876935217047098287678873622438014744713263869469265449833454322482883173837736822427365248681177756617045517449890564803175379774666874447106675044759833608604354915551612180744753874692908562495534338598129990347106794856765045860432519381039024186021302635886655972891105475611830127822843037724309092492631822129100124096858067748957293268873189843843308241126222722529428807679365942933871972227052050974138695257291870293988724282547023968995473565102132271643824915797595705974617226851221989860086602893200145403473567353799780903614815084851565578477189146852456000287274357217384170498026012967096781844742527467813259928934887481453742106290353840801382238955616504178762692390719512726174742290461317840981199046146081926285491281044242649058929884094571331496321477143186016993974330617019725959936631846311662760160259140235314144063004129486664761679976548274168375890055562649494986906003577956549186097945857346339175062869785511497199180125765330150108191936344250901428897346648744397739108850410782844762610560702503108552091103546322805298360029268831200576717623368694267982617416466264870835618341589798628440466879967786852582607701662531310362968687716787944443782627882509200204616610202331227229309660911281743606880435487318600814477777985943546528864677884518597604712913375598522396401130959817615117074643228692091916412099307671431176295369155031132140550336013612714349530223678758627597661532035182543649887028091144814845019082585596317502727451160305659857749383058223492005033038607957736659739962723741302670588201455951813645630475918309648433130508464777585681461566456541181161037302412165056127792317701498123893079199251002390586552836395943750944268358941930027904851061204239447313014347211492819321453877153828584313958998322711892061572129463153666731607486128364862136979356141376635298168432161809716015716066003541995597873416750731975599795085511108421808231577844861339388722343758696228702430008529841881461209461970902584149797906273434079420792184200260789205905537472146513450807191638951298797319594156485884473968079807520286695594855092010622450908426137222133639532079325207223237452517838452751688320289505930205962465376860797682070057067360031314313828416400366936931345911356103985753418788616899221320887123798703308297417037645742276866270900176504302487249894817113623169247127716097520590214199101202051654854447407944415426173146989552799353918656362612823395952560221997392457649741496645663742933706049863071516854873724128825957630307982308787040671583034956924485838547950655470404778659987267857045749285363685699383189716987698065038959374502994201012979683563625247889773692926029716679245300389371717056919842148229854073967290517472299558592409868439251980469393044263898813470624807767252062297800488832956860467623995256700006801863002491857847704176723477668263062072489331597985131071450020036067087811793767612410446354198165198268722439994231327847982785820725657647756442150174355721065041903885394620048796699450637020827597443894185194331279466434758372908540287514146257546966690300388520731225001732371731394478156279484562058526967455483968358853030959046050177682025468262817075288758679091067792126356981032093699905607468961120974672777904010158442713171481618402452787459813312902182679163200595164636070587290049951590501649417284020445762170051916002751239897107942026442696546881644957271809328017798792956653081441079575049746044358257206783244521182141652650478182782627716416914506736015732056405585744476070625864148332319918554710849764627091918515818450195615378963358376415146264193602248691285016715116276234767888746223261787571028602416764917706976096512534860194459946190164896202969863124678635822366705732690079391973394636754959567709950044342500674124310727154178458789476187102935545289232902922012237715920995162243993783092970935543339762829939928037235011497228751592492013797785155263343565896566773978537623981165689504932767082222701563664246080323191954784770188709988236187069374029293825810713660491555253977725176939905672927757299503180595355331944553707777850905598141733136236809633386829028828859444417089085590419437019777382056880205304561531863852747472775330929641842028523332500394942288859508445619766791634672970012115551993111642727761431666374387167190214048384333916114488893552644803221963962458673393944458956080102889124062737965922156229994411449150162475636361207478586524198814722403543236480160992422443240973259985518990812480140799201435245663784979845018194295112772801704674296421745586750912124177701199130614299156767995887527634952477807285049660175694367476125347033877977555167610422829908917272822291657212457704096910492724123817070082266188861721074797558066991812336432951065650128113401966668202470228525011038701750194125083539109568146495340500107055726243971792138838974514704393171380411703855826464517442143932578806992932662931303010316320975115735184784847023164226928754781811248546159532316147105632472650437988151513944776273093772383887437695519340367281581459548204743244929760670587297114029702660268797227641446538873335041014800746806778185133368943527983311173901531973191534006975402833344594577654987049760245110289582934300124772596741563338260667103894130484914716808066646526934809009824410892349088541878764347053476213840586777858774988584448628997129283567143048452616483367316823044411144919790762538547972648039116745105937491474085005248756650306111051082742084689271755177425993961193697439923923308208146702596123840554072467314956123470215427025277532484087975134552902297476883503328294072987288517346592418676513847640297273405720971308867168640857472185336741503715049774432353264810451833684473688819563886864048199183664457682526806646076950681515999471321506473541506899097571784888887034939130333070284054255310511853620459603902491018237398135128930069193307932313425818329548012416132573373267026141786216951883294081021048436766272981361704499096270654594325581586499506619411104796710417610373515368451385024033811787984600021090125121374445730603712113999520191775115662853054131928404987021340660071976771257132327974068220284933615435051427057963292268396044754311862083114955338968014955005457173631088679486674885338551150497993237348131239570128219043476694170198593557981443255106990307382689286927349471915559145451726822333317432652753689027327225662707248752703679625644013987146977524359051560606423027613717665229004681277492692388758360081195294807991019052957113644121817545178764656354153146762387077127088022202494962231183270531109889125211393295606059175066313483633812444128688460591219401565569109439467277982884608651741720889502848370888984819750691015659332578358398368618332511587151192224001789286443267992019692045954166250977088619451204378153450805543735936168356351565342867867242282587544704571883957825765480170008968714261860811840458146134978683733974225315279496400126072652737448734186062675992937271617133769898553119377820606704986978055548334129211312911308397658940767338482602751548198408551228705695792192481334470489681474920332549141860421779805126167809860191736018563604675440065772315459659136484128852429892835763999943148679788161791725726687727018187300617965732552429443672893236624733917496999624454634473721615458528095481038737930821415968438092975004545698661559110736279733632000793480533604937272669985382145920162624253618853005897408346567594077872398030721540551164125160460184824276185575939998023208988181156599637508777273843236796385892622803864750721149066329923273629293672919460109751336993942868100266810299712181340354235838284379748546423626421451495589707012471808413105508951005506902281762338938932625154129184935017561191011611086846708268642873219902448288046077280909776080333077894096871789525393548849519669501258922276184769602707693085209751844265250411091297971018525252975341677453219581536031885895798270846146516914841933542816015718364061364059167486493879741335295585125453383896408139531579336359253906736021407237085398017589332040417224969299530072044471405486232497248845800612754012303341733462683000779167395868624488209694006832264265600690558342955525138284190036675872666538623562509604497658876043184579609729016529557180351621641424153310375619341490744079591416779859281534704201689159693857089876476109782866101822470655934887212806359452021484875106412728836867966262986820752120921688537821844731684364505843335809876491380343036211812785248900585908688075076687979959995728650847730678892139800251279246513610711330680670838069238327965305108441917390160777488613074067735574502557270257171093944319647730958767544650105604766524113348928316825128753285346405319786547991364149733365134709721585696763214702759157571052048094707702537828360997506029683781698734720311553073803118844101902932236253692069207284268242798407628873334147317182943180517219289965153120095332593457312373259794644949266280718196900485716873719958417831901048088931794045717900271542273362424938512173839613157780594052410235576312610978794725768745721133534972759553582808896198560214144405457895766298676406649673770323282676164632173263130891470124738923696229577422186402086854841203999076080588807567948278577203003830903347535440301225081416242509783835683400418785333506455713978257242672682391467851117299400757672531274969053251256151220945049448660832923667285354961375506698767892167315409961960792783784823008025232294290761386129038598440005175542854137114671759716464715808070957299604191446471607435534496086828061086782594902885020061720655442245124865880276798205296261560103899510404400354139615082512457219506028511879832513985571107209468381294373989384970113527233071385525736740572721109938743768641467237492028663506522515607545798042061329848761423553483043659425110713431210612645485008103238438767365305560756168598925616969757771337521114640525767588552237257981644654754195261036698116188546698958614437712126174383648772858511498172110231648103207378575903739184483233760294947838263844281886482213545198952088245324007870957480225863851407607935400436572168090990882029294725956498226482091787930249795876180553925684051990535655766959055642591988648051809290372510221803142294853655334679179577765562441247152549102690992621592812592805561105220203349544323018766637799484513350792175158869754054729080877355268053142616566370620883217540897548105550362309777231664607702454432599578589734236400014368610523889407872587406818555785165429562959918140360486251574197037911099583532267694361387991599956741456830587201566584972259319940623501596720228307039341262634581629287621933520610936341023587148818705237931225958936364113914666924191555725183961254313833384930559567460425839094991296530858359638534419655396689806692537225013893084582821169936393030971235439868631996429806071366958453746884108944161338783211174866451524131659798311849974795821534518160955851776864209706117000442467496984879447908778698351859313950568501126987573040106773426893772960986016484019249185504838591163818990600742968591897293477409672616425860880539999709353983866147639988040853991616680227564691782695179629112978817130944758572679898986289801443490146056963894636737806365956652611804692076616518182532901998848180797664633553597658425595019791750269666993833602572467951094835192970906781027810820577782946933117456355074511447189749346407428489947390669093779915789232686321361383949191517627970444570544087425353597137713305261710313536896747439223447835518504771368787852756573146181816082339284782083230554055408925967929920657097283567941963383643259005129699357815086354319980380453428786451561102404932755138899587916040312391724423232744527884845152802688719116809280606424537919079161904437132559993196333989619022728619700629451214008878501456565883679708083982269769975673230560118400485349984360086570850698571691335609170720164741239224222002962858639831616421226456726640586501926042934398602815729872602889472029101626567916821581796685921557606928109552791209102824929882878171711631626068082257043963052325552045564297823616313752613461688771293353566605840776270475066552072508711218220096421897138849996845714562808353741773087170504072987852481287844418353576914179568326637035794860569085550562701426165643588554116247722625047954725021802258973015681942495986248472865690552293430916082103710051982189915890234844567663831040736153594279388231650013526657656861381628081401006083306322256769409181790984064707951361613643611052625542114952608533490293030940500506041459317089033701122027668926798157587038234039768519969482609824107753305269251762891272463526387606909305548763065488337983777521967830913600450144507012034348140413107122373124860782156738210225524684677107006167497850121548037792793319831693939160491918430880399601419638634584707292972300086967645802471582284383300630149762951458762844184464876662392337144329976794740110786639565104800290855114293878171378600456653598269326896605002594279943458036918677213205927006041422380348931864109249099403773782308503993204810278887579665397103527654299048845202307818322498053248880542617696770370362075776272520572950668721376739799131150805228218329818252200703855044240896936280668858070737509792332814274143870709325717209493886939970104109695238637553535016707164128778152445244190474223988542193885439274130094758405264874697279493713919500676238531690176212163385623174187097136328224761660603180035582439294143322527376288746450073570598695220272453136794854860489968320914990497070913886010699221740062682588801608406061536837086656081918141644686789132904075605269492711499191870200599103933047526660568905350877221849353114612131086657653150535045145078049793763104623169582425602115754811799023879089150132671202963369799575632138427150614369101250881918187638658767201316995450610099731431581297550656140338988923606684319010998272331491023528572093525709579616486492939353194302587847387177185781176313187922977379696191288220532566373674975932783376740566840577831147349139231792116124298579490781346515406060227958083754546560487691982285758622498544661442061543223652264005614350771802975381161870323752001560101369842965541684777286885021103218465460942084102604586883148438047187457083095960221600253352987838975352766452719408469951931547157680561723723720215673969527152781344303648080018785516516625417527550514175903208798352629914772557986018069778828075036984645090965156390209822267813176787253168099060903511769575675055522661087538195747169736462401329637307597252483000414551708725037816109760968724098617549391786328126747865127313562509185647097178867212974119794210078265555759965796579174610487263564536545039174764709700102600278369643350314553405057247253038988913260790736098787800040589442586649644705007465958498403308956885913271419877137739858912820349404830337989850181014606686467005929579489471776040784129887355638779157235819269508971733847738882302864052050346699317658554914972531843651043553154710994789359127405346776001428287296993151882757899142096266970215727768338712063355414796220309554246154573110250831249500470449994946626178039745266855250560354524257599605382462083654151361039859972371175375723387664904340802224082337664981669877408950414059858538092199179948241972728638443268357096733110716168509014492411539428862085612858313537419875459344656762841821759944307686440171592985435542468943257021351289479884696100543750606268406481231706380943269312655415425178882983784589007341078617209167117849822901287788574459335820474270146502881587739312981855552352739940925779219632996325299247521495662435571046580131301468164753108961351308281761023661892183884143943506018034071054135784630706360640491750530324867338547961470502767088480026483772566163666701023773601631495784198794318949074975020903078418672594956340972932169210244349167173530849848328294493103382754902166130055362925052539853419745429631142110217257441143825033503694666571470517891279098597199713023892487427998295716619828162287257282581489425694614727579936357674318354571537863900297113330436013912580001154531583731401174273189166194744477646298703971555711447181256124244006973703206698512774442020436829828454404611146122955135434887883882724614830343329550043378908163450596319431526863038105103908666330710998426730599172732027436086592524639855023507092879942860985374714520962729380144767522709594121158783812133699433879879787315532129698726077829487135668153070951924345974074374717666514600869075130552917555256109339554827850992930932427106974260604573346833126788854376203346566374864302891169624801357472660038601981000747843041038909448458237191760458435124607456543971685830962257760822892142760146424696547633561479541116321900525714841643699548341760763515491606921953517619799846806757601902079368924766538702854902419531051935487884044713609380571771859631236964483387744050901368252588338270429432237528537343635421099443403922546241237444754053435110711445073755784277650023239773638064214878936151701732298090238126664087796290166256166589880857119920280737240605638021783794591134537250375383808285126165878478109000260314857209513057763029494318100714861231295002037812653744845440114602127972160856454118712969545409163904428497947115732675106624129950183122069155827358543597925865490970510109633720314559004801320730196609329100120230870172582605272179204972653071821560080808602819567971490403530784251688550774834947114008722634406363175361336379191966736170855496230061304746927690889467812238391824907673585302352196883027320182166476453077946918695323978653850569846517243577628166154001928319511196263480853344624298936429292668732360956208983640867991262562783881360782495075802129885414837648772644315915909052491965935624186748849713385142336004889887832101287479293002347621969475608904798212054223175786746876903700494207476186399407030860242081537743935004697952060557522312997892759809474286271858332353417256801510473929833210929423161089910571028410237400928525194611439864711951421607917333806154001483560875840832646464257019009066730217968660404711944568712707585303787351659923851817579003580068141671777098839455386107505715508609517394073864035055016034919495765543995344997504692006871501468216480482211881311081169925497288847635603933770018608383393743347533238545770200962670976273470682241726275088108217822464663739778644514377896075326863081110202676745150833879667105417984501158926256906821540411549199553855937039095904116356911747028226776659810293881980256830137087002711893048714208880636357378717756364467812156780930197236206601704855452613429980177934888730806920693397659202666744116524527450540220596375612844257245015531505852876537740603463174069230491061797596821203800870323410010157657635295049362008255502873808504074821222571096266626647838682753056627546150765671919379497231326653737935462393177677671248475631938018392336931220804357566666592153755418042167529694895429445006232447002776786689598709834276518482365787450921140734078737837517317340079330471265923923770834475572013568454122402651994935751189980797578944752914545197044582471992706145364462051863244865365663314744040591638569637738833788550071894351318498427047576802138017549341525975512107501622418735214061523218621623122392194859401095934180387446668097224188532449937886865552425627202591607210813007310304637308893463818647238469679016960896526592858626538628004567592916145519944263456788620362741807647998353150842856681595219688051422179209329385045045748458792130734666314243116417103085625361989179883640243749184086077043805209239037255417160645754612913293540907409834790376500686269759231508292375224822962007525443324190453816133895322608642089818982458071692261171570472658429055876713005102996339697674799978555663576751818700375089048947778453630667516596882296443717334755217784520706066655789515000911308220533818337566890292916094922377106317392453588608355481326878350590865630635770772752085126089549133755976483099431099515445313416318678118809256973592542071584018683022522372569390954133482572876401989954589366828192374649187411359635318347566688784486081611315856526096491222593352295244288430062534308394217694229012685303731090897252354215063569267207852038583543550795344169268647864054346074348921005565821425801589008741420552602542105611363559855915313826949532074842356145950813062200618430550104529238218153645488970583918591886661081560890509200006884588650157412541538385665515960782344829091749063595886865284381385204384442303070086005769365991487772993270858302844140171297433484454604056319743574521948413800331062866283427197243311766364213464474172715199305365337289118170162608317867989223928883215550718861803370633512072162711448022923462952242891574058225369386165815227874547468782582078509955318199770116383771287863154107612500550178511669810207597474793737262713117316330862324347464662928587995658137679856919694026772730675625162017263166189487275583239376502186929300285647461775419122930456520339980057583621999511061460982408783429899349266703232614711108030941237022126076149205423614825174556963796728551950580680921699652409956262214719892499992355928150444402750691020744375723158066317251169580283151857679554095089878434797593039203674818204622009896150384467745596962540354693418566943883301014192878363461623696062853973693015586880005767417084592454322627197263517819379245200803846010509608145965812440614332485171136509645751621663490979525711254554361289223571786758419215370197034415564772579807193525946767359128967516524432267903184104136085970953656277749390916181508541001895493422130176832462613823741192218379302856421325001681888745965513817242244803654230322321928320491018713089714107298695623582933698415571192688666008122966606209711964737146984152989881168394142246423014620539911283553485624442279299500848410260891669784708690752693633746455781808196149898344645467185792855039531876195783798335882874834439466057343216528997959446123601021700261017943605250261329258618340275386837967973348636137943181962153172131293836915027288970203307565725721636500234840784819216304336089696483219885897041739174280327289225508344133234013086419194693293413069542810861337825246090478102799833980491126402912194805192855813797508520849904893261949046028446575382161051451572448243993029656325090659708056192672896544539165697960554331766227085526258408004914134256665874164589426059513276452858952484180525545564753535735295448321524759876875123818610596550775022302829765390527575799250500090453648923830129462612100520186464273162838602963109499028066172384009281222355520293518566649727662423641391851573539686126372017978565889879826352110740540221082758588478629460665663217788306462356074656513536782966434938246796051128600641062165856683003462020652179535645135742863439374688180324567684944818462851777218414885125516600331551601299008709733171059755818928691296900587021946678749690654951630962811240611777699932139257349946361669504074099724675078025747328337593787750992256365647591829736041631475867748061213778531263640235346365523037065097516278425048634270038051516629817965916662845001700365589883661364847391660598910790625059353252868684255060376791124923670462923536251609910595951115953511904725981538547489547710326353672889787650197597183925513315052964270272778203097304015050657561695937105273204917683288124556359097433045326354227561880516395341025672723898245675208376643630184805964563400267675977155041820636789266439882798873616741401581886713387449917851805879403490707190504209691756464585328764781718411884615634988973757262657106011375398165161793881491624096888130141917709607063353116666852513601149725791565376647813184765014427063401134305052124563777464397968774419957781717775137353097040398659224590938519246882549545450142230010767076197364886778690298183593276807284659906095596209735446796377031183273865772167208453515357128382465364765799916637494479222186867411708994148858054732670497353967892078656620261496518335942920240547405137754371123241866029012978803523615330685928340003044857184335093681016792753810413328318805584670994329348783536508831196002774747444116011400039539394348848853041712458470059128572794313234172943541997387987184080840813361004541430673504799156120882996690869676292019832686211512420337189140836510207969293411007790117376237518043418288439324652549977856565668885265244199766689793665175392304068396530422362390322167498415151769034377179944948473193932385212756918298716860351278304158531617994795132472349042260186420637596016235537106462187971123824808416980812494314768232880659879900402763508129667521815130450976676706140439382573336290074994588630091785631607097018339008565702612283929083149945299098275438096740217284041271132888303364077605568409846282768326397283859754537788886383634659291487246749928016912353528777816375098012590430645886686680763075931040178393188588464165318427535697766854266830550313918209149570680415665028961574186044411219163261795720918442005472592768806135000454497594706198973678648539175192960454368501999893818060413722708247138696079236571190231881548649508126917416248654526753226328198809022475289005293435627382790661408667857826639460422980604200452038973390235746236374952659404772452988231838658937064424198550013079544559560067328155843078899198601505175870156568256415978942345516379449195318310150341167722090606081975506618330116970328189815817154191854376973527133100745800344573850084180102315093610154100719467514893319637808221313789213140701070919328938330232735251579595298450395386442202020444472203103254824486080632443451404036622501547419359132252484308867555268265182241857181165028054549254085852088511275740448794126679777108299140201379481336188707300746645357878013306833075911492386246673897597404526024405920005884244123718808527206206410027371665985279726764616081884930674516716397124019798626005494308949491311591957431817310855646456531372405829595074259532484432211745089266127135690057444754901966098455525407912641221694571818161716384476046418838378163046197847025048122009089626776230970908022464522208355168722622094444700944121461406457570375527943059319919578272169489352865302216690839843298016973094919341920604386998883117901617649983197380595301421655624187648127913895506692429655330901422664182983329545853308525734557436849396997019234764145298826190724305315398375541775957512118482061575680886079761118222384513987491505663217568393853409259815324208848787486131447768816633946243700962476702884508931810905118880030623498197782023338866660331043464865624211591901431063850017869016723164298976739490605548436019112502386407405841110795339501347347060887878757254350447839608142552034686282462076071044552287836098444832541183789362902299250254099591947653502631351266434520974143251596353625846294597779329991573108411909738867362022605700830890882723651858388006874098968431667200497939710016738104751903899070743489047178155154755750934972092269517487900021288147951453156746919291292139294771295677707991844127968364603761656470711563788302760307873611115253713848700111852851527815383950498199231685075089095822265518503948048997354643655768699291767162316223191191441140827480533863800858043434686297378516205878000630535485575062311922605082291798102547322997414929722614184987680660533031648694517868645594765993338231708323842924133434503448188184569155778283422315756422547677579065717286043666205288866956688254020055544267366731550157128668907280278454949018736090037532470875107766668974914183049300714846329089054444385083404959514906161546651343423811982336730806404212961936235910129748702191686045277304252935954165354298688149976535218641092911844378870260338207018030171935205887421938704797931002199547086342015379761667561063041106193300159482373178695799706757791887373678130990149998684963261558358939095261333151432020713802960554328887142010049082994837743453503793016306980285324083767676652826396177758106990459749268184837642774043341839945068028224856205658301488401400369243890975158881199511260002160188307926823219180724708032336436165541840394931764813102823889199004804829105325873191447522793396100260381617121602770740831967188638297679729875184122647676395564410187290633194996737088089724892555729826240398566702425276439224978478730017152208151070348596133904274984290736184562355776117977898385667685546274787382257054023483184739792821712027937895890633739488316333197896258545634174305922863371701813178831021076890348378870952103016865511580884207586576711963458807975353788474100375112498897191903875087961203794193996823318861399648115797782021233857174861071199249192458146887746466159928403609509776868300915709126391558496532843462625961223637143454446574422845487674121796245613157741596268255947049454263338865063714347064354752105908715666288506091676894452212608892225525358754412453790699706985790551956114437445045293329121328284235715239026231795812369847287722210657934148940785517154289462900357991310436778364177377501920539817805760540442798727351064719148244495439761856255194167396977152409982045590426701668924008370934397017332500705624009403786634263323346385216921956615039414047815888311808412434498259497346731576012533837788734486714858673688047573693681503198203342243750480558902141865579563724806972773073545323378438874097938767120357689095130253807525647665129185923566629398664416376929988311137387608744007698218040945395179600335388913036288705371768314801956133437277520533387686229890435679893316953814649662376062431337848245835581377182272770357449929870436592137244777641193040119406200534475080694532023915230352580353105558564570565169891340236714899514227967518139734921628138979738436497931654512209539474762780514165568284280966740031146480814150429447983083073450734131530703061429315803784262817760122261027926989232581682896837101447961797413879318897087062384437571950173919447779966180974283871014942291867078507684282358157970501852652372545337120484718536064007318922351670482264323217655359711120587825687109980191736920736244174399845766112102820814825225139134184066205772965784485740042282079329381247989746560550540279021696021052991790486736707143084727349292947034903169556158686564275285519671336696055403872343735333448295378962653232233150957525270841914183347899704329686856954899136710529263863633300382301495560102315296636420063427094136877730612399206950416846341468183006179878453337863533157075400966529568277600966373061859484917927594844425416157644760710652820570866126886931350611813043964407027189848423984462772618745918423666640741968522883191308780674382429771280434068156690624622249663967618793167044596093652069112103044100588767301018730687799532455180984803690540492807304115482865931362662403976270908302138771563370139349666999338389366130629500442751660842988391519174691267425738837248002983866351210432147618026519778322439244677635167566571537409799120854988070947729951716928014620237038957624849241575724185481204842969445613367887141585193649737442758631492515033153550313145245965910472849774617973279319804488131041012428595068512884751849398796794817703503460474979971846445043633039862153390887883376250833153929487575981116124092005487932505585472547371037082285484525950072162819767755049753807679831249258775423414645102584216367075294362768539169470459923710046822767764709112398684046196589813792944860792215001797874314001421361664896324536446272296319222250731378193487439433596314075917307486836114780735453135440887830080229161046391322952068835765859284413680452995557377566948853431342106532899220535279910066253795968660818896542901647256097062117243462537656979638718386051231411308349311257576749852885294190813211642267217933877794125874007761302990313602707903874098669009369901922693516890837501379448232239365230307428990295693173407332100750526366126375095504252929076165181216284583229910935401784507075013358925950133873093976862369893450084956844703883019579601908807822672427588318243971660118105032595758305975997858437668778922718227490090586741664091400908849879979158196725982943118038841715708663005372409725783626256918695496132362696514281976500107565226830349346314979496752736069842022261726219028176242891651427882772962844231527194703862243727821273684277763329506562581935686029884119742720321870519545041881419556171726603131294931089364643544906036075305090985987706204423420620823913291662395822543232897173554369227904295672931082291257718680742305728697553042775477137224100385703514944820364560072294920691010101179098199575925942882478783894193778098927821943827299658425946105135909816999150088968957529002492871158538997077432890754670409032972650560518271050365769426899708774989460751204700881471803484992523089245820567320098758626700972128095767180548770033023406511947363506850131990593123877529664976066199089651834286936944481995829416515217064790579226603605384229478605480955181638266908094891940304737247244328831469794799777557833646314018679610634520493771227944171457165984604993933638882351765879886814458711277934779267013794901690461872473312591393065398019789632514194429473532259661846388676877713703803238477385258629958087491632564142796163238645490292157961683156731439067947076112784963809521770049147421389938644402847336849234448748821161264140322255713584027191247705789869778911556391132573861874873014166485036420898889235269920270614865017218713098875850149907611041603474674437694787261729457871583913809541195098783087373099768763792037907550571648265374607129467622663342488524798046572706655259821545744180590429914503802881408161277367662204992706128365754172242242111633221438040498452978473204195380409718348866271205357737846128518573098145059946793229113962422396554000913896733583556364065287035661000735864880627604004051077707400925502041105624586160669871395982712443398856368938393466047648079953278925479323967725950086628658246946910416976223636729928058501347890749700164367909509491374215428780184824484725486544267883699859767326661072296144375752387308495634771389073124491725581964212612258530557062131554939893811852617096479170989389157291300336964887608797868320642673312501269265215185975883453464947369813038375568474432300744082593713366759580697782655559734150066808180107620243704085389513769435123260613114933125870616183104967469245618946803204461004709515762567114783699273078660348835487932050199518331987661332381731775048567745278128235570017744682269031629846519791758229592857788765144264524515164528736870057523426597482899064806815074618270460857932675243029971567769237554633624998503993913506825818322935462705087575254212414972357748663556320719872503527719928268353843372763569476557218049757197716361554651136362207356452962691793492585287957137613910141168164485078006308413343905396342788468179603673039965342943710208675254879447660152763427080174944590876346449925384181213819325997133754223498109290700676495179063878512225987938779300259317930115023160334149601585683746887112631771872766024973618867748502430855605668921778129199714509797223670859326807144071374231986093625503696858630065227894987142290113570207454819734440781068839532869330580923490775303439649835361712014428318562902239571618212346490141564477690956578186350423865015955415128336754960731680552523644210170001830268497700471724175486949537858817787412295586450283461333250372147926260323318037858668230073127209515263003395754719710535579394746100856458982766604650989875224237629422986286739476693393224227475857787483550589855814520711888402368853808885172433341085303620854931164747590925942071826275385850282737611991533383243398212531848634135978262128799921589312821734341266029228707698524290248523365627446071617060728732288997429621723161095561385492188304225137092765965592245805571154744329023216204386259514377863770926433732177318095479407375301687884460392064000307631592780641907795203097846310549559463826009950514951698493786550754693261014091786586975375289273488775448567705943543014257567434521060321797876645761877016160069372560239989299354629352120007318296189624037222050426482850150046706850626865332192178058494178160625801116737256300986324689652039105462540165671545392559083523993109115880740780453217934813380163640182671258630442392783425548273436963833129810419085117652396103988412100695106002028493060145302854896749902214247459508863785875498382300849424720458441595042249538965415714299161765041414198447437528290421588630815918967811588508883858897785439834279623026814090465640078076702946530437131321469582253798403156069145667758942301857041899206945705668002093470291858702403594930593332049686393244215973916199465073050891415182446842139611364967281480515209489896429664599429613085978641767749990128556087034126783590571902258418054131379998585304496515741791310313684608499375654680080443835051241812275297444686902594138563241164542066109898264066470774008247906939396633922224334283878662205707065381975069307971622474396591243864310285261894870285323353072387530113929882476693412078742224063492902794453716064565492957294514636954375715620221323793546357643417359867218217272569607304011516672481102749810046130181185709795256913723035623187055499785869488390689095788157465397704640834888211773667678663186118926304634184402065516254033439933132884757383869676909840642580317966442745869965676644869915389521904397274334024758445595837334540877094212392630570477647457259586403380504730915656119762159152922192641208535293139310688215000255717703492968378995490962341380510409943564466338889914877401217207084838022869428009760650011751775732842865427300962488127235239932783927623200330217574297898366392015112128158486096896800595079482042043610218167183357929223773599185734565377564420000842685779976101910289925689354323031865528411715092964267652304899877571002716145008967484850383361715134524292645466728076475163248014398223393587009986118324726925967301672695945556910361103389285800069586246870047059289309617397566574879950296980578600993912391299672898336625579478881032853914142344949971071402694936346765274796935413404897224461576524737931428171604841062148057765725904504236524213570580343591289559734280053810579186411338381978159819398127933308849058900196986710370766154795268342106738435306314660980187450011782267804636592634113027374441428359031190596166452297913069943722827046088246821856855899050690938616451980783378144923681639410378726402630544327135206914913719067085466708509251908144586916793452508369374762315659837450594396036649781207937978202102170091930442196173135494218220453004704098637847690034923005352572359740227162114936433745646361856496935849993223264956035405104164438642497732901683368073307212814173500815481727142533653057318872981821288231620431218826568367745751449961123548472307689025427683089526439812319739137224992504551579302676802054990127357134891047381718249062509655092906331227952087408469213312517572949290787791795842592301674279132986932731588292861940686405328691577620332743244073109012379194611776933173837832388686935064147739096134400966345554086774802371015716494298837738736756834302686879539425399849644790816325509205120107887967011243889230351448392278759514422137989435118031002415364917544658493815149902818929961740448121983131577796574539869527162247613812054336616650670934177930497772674091029165937422740240689854576450018059033741883635629969647865121548121424815184516146074932685359317028166610154781902635321765163854687325809216354099791976188877442636961410866031295700788513929349667414261035936252743333269088633616171104477664320034904004106943962641679366071977204419742356200920252906184046521162835974067499961224939691880902830075875097486995889039569773764672193452833270287570036240543931151259161347636079190384417428491574210153328513030466068249766278974157348725776077055567960182102709375510798817862675105529487289196820891845931901388206847386470836985507731495586983696705496296372251345602256420121166364479981534699021877966789957624968338190313719650146566042187192562907734908468689924267262806643187039109472435466943951908863370739068347388211967613521815675630964590241556968044531300751478738823564176841626831308850377858397763905289742896264819198382616184724884399555835978043237733975520599295579994804679866130664930472020342494339390459365578425235636599645790033040187532028746357649315259146485754417053889491089152361429413953451261065127962862834125711678613515759095458310376069175655659068767225915636985763847791757115377533621982839520361443370521728821723350004715604803867873135544618393974900920538988359168654261075318446158556670132708095064267101888469119202376588532780099111241060361143571975995350958402294554033860851437690970508858448886387654205562311162637672011551798523239621912294709324020910771587860380304924744176758641064906106855716438121144203231684917740264352478179206770831357241257806990520387918022999018903291815949714696820323013528229661045016044597611183698924840922030947580092573008670308402544697924957853542243164349926549584997534418833120229209295756112442306864602375879319263735981717471600610955512056802374573065643984373022997074644009401926214849227552229691132836862505012675958363372461649348486750563554449886211435813135915854308608732249575859363180164786583786357989955417054714131482793419713474843373482045469231504253216140135327581465150020249763982611340149907451650917143591681885316918896939470346726065508418015879348990916287162743386120695763230475942531396440395584893927903701633494135418831420146502366059083801491821197482292551485862406496261070186775865815398952817703848131017939504536754662454038736475386136446197362688953379998535116991792814673180783065698964879574820310468022934126020295405723298817423028762797700211448987273748369298435104631465465398235786844765109320057697842184313097911546736644133965181941885833086633123687161302382226382580868052959863684707577768322935462190765337545132528401284163017783427253660723523495346124147648059259242822969825502730762926179798231016382307099144151543276224711812874747112635920131139766180584709622427157690167054672158773225004551075288027636264849249442883112878579837061220966449814442529933648096830554249440599406675454670392690663600894352995070605999464649030453748243739221398672408800370619914403048925373813190200016991864143695829444074621786746127176883421476629622346015165351778586727619245844952124705849676385490717962653685905833066859357598509521827790794552324428210719033771633353428015824139337269115170361756890776543872601822102887987512916491522636668327154928798855124184482579684218273714623131178506686486429959158697170070043281244991756967772736682153280308293411424329253134399668890145256413858390452764810477859149655730956467298093880498798005319258072714955851861365824780397673904126212802415394833589603789271345724125592310419247639807452171627348628299812307208109057386602431736426070470283221808954651509064941674923740381300356127304316867302017247430094972782063512038499746246836261464323047933189224281073271691924264348936992702156261025690777104847930766769883461046434937011450698766623084136894090713867422920287987469469044186854688663676489035612005716875315540445611653156365216529906860415436339949854448844679591394104077548951283044924713184706654550335724900419796352021366544264191268767630252345353414941793815261161007228449125906134412563684252758057076552823133348588089565851890823535048516420463210222509379677574831730166002742812601247936587457975316712264680217702590425753123955254128408954268353469390300156955240444295836259568086173376078686759001026651980819068234532731582796905443178799702147417161626019860403266381270739206054045776949612140743507362088380661202927252598655967255715539004235513189314250113002698121660082864242912921621183382776661037658073777584086216210459847335937151035620695072222678505286796197515413027058219839212194077055649451265980259808949255683695833394574228214379897869757606932269855406134309999805295695598001031668054068626021693691508852433857006320125558877928968887252093299521180816751370742060280665161959736653971154814180119604284559531085589317840713164502556056861415250630791119882523303948230182052839134511527582345283841743650425916592178760741305070603784320778473197996313030658846716675220485229842801465694308310736720980432604830372052974803265140411876805779733198969806590497442046827424744103419048622858429939149354869814485870939660937425218725056675099996194922330381743020239125771169822614679613785484984012997812826778514334278682639916095126653412581269247321375993780253500053525256562557574005875695730392273282459723250865177544424421569759482846844854749350711673019531127614163120521910923174895762439065521889861823385370207109203091680960671120547008051586284432023561044916023637446577852359483098430802141796321570196497891509385190336438408836893776334215089745536345621728892979087772179038038848751538787944407832163761159439206514643202512193455686220584836893045953223085302163409134904606100491920903924251905729532382083762298164168793357880581203233127837606789041269650757441533034226920388340724017452707267221998887540119286453764298615749143562215627797732499579178870319385886589017360796168413577401397755496194198668046408994921317201085956578487819679014916244496699254492045016645005157775274914052378740435756321230311450238560195830039178862454722395349983790405237004067815875758950867834408873384928684246067151304153052842697684095171046297153798326676138914472838515255888085254091867330042407211372657972164106250747929583812977533567503321117582689698336814491516527672605647604045622392490040145662392391198463003407107243145573572061938551918815013282076537010633560642149452794749103484809293637928082673661174038412560634452779835851693802462894848112010842414329013734075050756026910112073509393763130632522270009504165727632426439516277276043515773736771859700044525547554860889250284777954114800673377254779530857221162858475138085987670217467752853004191460631238844342462220394589320571832537004624017515136977855381418912698610457289559742966746365180984764361210446775101680075920701135561786661006774717914720024468181142337625742186195039235353815536418621432530420278377535117757488222222419635433588413778786551262079158564839313188730634333060612592450243638114276112681832568858094584366758205193381595653719360260944323305489570957685590441749387667974057592992053412031363563112509450375733316988627772969038297190915002762879203784382354115042360571549945115417988306983714141536098999737765442812510879302182982095830746014502940288072021043732707316535940507746449051776357408957083020771403691188324908976828246241622828801970954291485646513660676298184766649087716316253749504241691381280633714977299797677563443908075961206381699715040288199876060623436373946866482163425027459937087100445346203651778798824987529485230290975373568942241053037071843384931500955681573850191206612979191735955778804347911051572834291405029243532793879079365980727233394731870764451950054486024082284261251918435074587622414031749282354322608920714266132241400900557199283178368812140893137361341276262498590106322653886277643172460764759940583565985390361642427271129856018176193043616072086640363940472117816579176408483750942875505505104873692529077847786822956050065960520740359595450437947736277076927548631841672060199245509714607095209611221251448569763046586796067055403897170509004159175462058262769709772064611130252840103692401509136943403889779793978801360690939157750320850809214231609507067790216037742273256998693533808730238040242291231134965519674165402630953988894805845547197560844952766586795827730230017185428032965114455170615950981428574818450565347520265025573019694251156610621559969361756195748667116781625038469530874734216772725426755442336463603110746484149676938044974502952124800896989728161035944057586589847688450147334997996437070345509268962830422044985891494297975475775820082591489636341831927219916419999774141587749088804453318435500613141324207965170677022986651986490586120442031490164809968382219565762269698774572887334377845427098828000227145373036701190525634269574470493597919533973266847745503775169822663661934003063572679914134764458134928876298760521357021835256813471777217457175480502845863793929554409162474285760893166486961024332487259143966248158680648946539195945205700883216906681944950802057382890678792103151532303637964613337291113510880733533434288498879542309440219785997658144565865493302883396187920248565345789043933814179758289381714301656946166338529842310234979647328917752472102641470157353063314746620121483281665610664888879724069586587903581969524452060829780994645447983458739774564248351466159197484377562407016676126171870441785254150911979452156145733936431994079294881437577417588346639410203726198136706143937934999232956665690124514443693667958120334282753257736555520748194526155853033785411427180457013943650371599182964350010170186364185304152845811764137623066980655709846872225557100249042880873496626862934761775236425052394165253682440889761535750233502983949080479131735800987449683607311675246023973108807793706359257481312227795143160968117448436992740646212024770295173941540868410425642899938106806684332480361016673875380331297590097642578013190561946754425505724026837656444434286364584694553665051316912150469055020828428835722996551877308025015090836373431215240079763074491497901369145028430552888698196663090146872496852203536554258958164606130656701676290931433856974971911839489359754954694733451658529165915804188783913744140432369938565123758704161163756116164131197541761656376409715416302625351300784234854806053822761467905464062551271760374932655579355215708753624005795229780247625740939483312387804452856814066234090981455158364101465997507949818954107799054573858034366817286983178321149434099126057753129895467155516300577708495304992255446278368383545674303083306798145163728890297737839800007444427392460916726077223294502264081238946059817266230679225246099445446596420564416363940407877568507563425975442667930402267604000517836804176138431191995205126524447304837609411477795552516030510578001735567544397482991601401020429717826945395355634511024664237127309716521363727771332220501240769636064735626737321960536686530080765069769237211753295616834080900506602496636486899212997687287332689074665066187851042091327438436682476235410896226866736345207330817190015323970290857631034762468758442568669736614696907334058006004164637254538127216324226880298446995995609953094866959901860026145718133340902817959532109761485902844408806757794256259896989904371401747945311146746670343542635038101357280297231075286172622237558699534447446017625134221167033557339591944151529858105230428813385366933715607683672738322046416150544192078181519580059250652638072650352188013405325580033784443671599728391292443394422009399169841400909481233688062078947001601423390808335725578164738398332718313659369253554950720643908107217593509657393561804992616886169779089395981849491073823785090243774888546441275309311920181386674974020985657396885990384336039353556067845480079049514575400419152834928546628532577111055031280799882555306864742634626844534686983868688402216944984960214308743929269239603371201091806324331170060688905604612868905822890863324596557414114243734104834981782580991536871606375820972789703808614897541873747074065796719300541873816181255664615312895012829517221293833443448073136964091903917986919855284898283110715754970486512837525375706342460764829255437202538998190395353268100390725136767271881402856223044220756761031332869687869882283244939203142290724417746871091281360988347402009392461449594428029635854422408112935877888474202526747627321798283686462851894935523888573870148943034124051847167292814656219025802957759021605806942109744662715972271515847156234502769060113077292787545520566513540911537820739047621082534321603576442700881439642510446705495158884985540557498137889643388095534397785995818274368879501380865279246354363947171196689563598469458139269160728803699001616273399263682525606438847600024552420275398656847727301647604335225700585649815053022783415148657549438327730715273492669927024159737740193088686742204002913803906063992229233235008935349402709401035265560241454868256368825007690058906390123432502662575723124519893542042835217847245136828569045814530594148747516399474664009391767009956227612267616846896364564826144809374337149417043930743085520569882186679530370085086102972615238137694550323913929089515956000992121214818131941372464168941853486920805940605418705128217156675160877554025761112409905170595045888719714968944640546784249021239610570488327144969631996941733938556964965509674349077304574072381978297044366335591634270633026812775622507002489924057603827724340248233239458175790640698466073623592568965596075987928202933630450287247219659888217121897333076052071993833139896532128071286565968434429129413464851059778581179379426578106910342369176250016437289355144806989456949006827632461868258892474971688557184039017361425714774315514403043098420589156540757505444363286060957922872771758602274027298692756966103785233832654972253694733994269912580358550888364562161250338415135532964245071378081106882057504904819496865717653100857305904769915965588165572819626792820844675375837830736214012000370959226161018428347151215707480236806147908805507892947280808367763012024373898004043554937214188813514731368013507554445845975118378888965291093714052986913714222504852229717884860152857157946964877557974119204268800748413881332213128662577572545003793289235664041480418293716003319433972355253079716439348480474152309149428887832807318317686938451570544037403307412572421247320176465405332624249115106718557720282633657937349885884043787836495656517987033290313978260621051994107882651501437983382235055226631986527812199165634730954836454478420395454899244288124590244923899788342173908068925133909356055773269696600350961834295980832426572456422753328831391824381631666847208910455986663161205619970584630989236159039545445889581299528083075916621477111299510974075161612701311389794618228572700775171997917826033456736330465498630903832883176817504273929111750255764760784198272271860607604462100853788276020168119197875854499059834507828861449457603145611841200129433218641198185498828639829067957543709354658401062440522761499392977568811689565028372786653167498829110155330628505346618713433015587204764484707405083722200381027706397764834729701758209652953105557740061326331945145009637505371615466596039388465322091397414602858468818121717058305602212042957765887697667181230999366796307653398102683044121291932624060007336563757132127029541832948773293283830729130249663529039617828285354956179590793429785997715047584000111522501653178410299563514128413694491988961432255506981060853609336248349675561891294796815362318306671496135049284066816292274064181495531588736572397605267906198751978335331906463255072843443628776599040838991242928015061811491039640075150891525950237920704074789939551127030671121694791276847440171088348965630644026328911688909826565490100449670952257356089063447498978520264660111375524397961280786099644509823688736660667671416538900957475378849220909671626622464597851471482127366692071508738412606362709707353453374925029785662616650156588238802746464519235032639444577869186796233077161737704574438926902034227498469900674607491816887043204319041178691303800133232862070854343237482813187387535891262862738436319113296380873904114850433647934638072146296702303745564240548275450362645055246630868381188744996670917195863930825234680124838984056321253103015259855747419511290584055559601745324970686891391265087900464334813654784868136516512781662507724685190361495444029415466698285062965483934735246907419565554555782690657720210651102393370514528939806127553265730624549002633477631207950728262077026587687526988280981314109265943264120416968431966920010115820963657231202182361810579154701393240990251710369874356846505888321211353926420801282372354262066536508447910044719957239989495742048396007949736782247852914799065629720036485076769541144263909770342169589696298416332354164643549391183989705002359375289575103830117961580008795261606147837562083157082398191136529651623824002154373496282432898575255538058959151936338881286822410173553422571007119525908951877790346816330318184015392253509087091820949379537699220243239838089222193282333883918447408369784366377408118247372032226786707779744751160541170999937608441513450455169660602019714002861228097179643681121606863238506772355428191036365312003594057337696249260538570302738594847164555421540468243058748820217703593143799827053344557143889284412342943408306478107727300880435474598668431547310471118904953062150912489205865306921501116761289781292101877306280460927974321775603143989606962490752837591249556745274124740885569858096794563469904810644191822885480858136455259350828374998132252869508337214423459312746572572979433305166301466684504800644628527528616153418604606814919026518611942948791001321898437874059269170138195542426731965449161579296752378197641090394127925244365779414683007123906624391456578349473047655409428586655027938451737705626121780455728717621056715282916148855990498038857410712389009182701970369481952027828055783709322675625609009182898415225738765949909275390469875256838356820425239189744762394330587406565080999932812742263395716206315587330539413030252931906339108050638568190533123624994372926803246480791402519513188071460724616179246452927548043727487624138905606574393839795636075730318057305077488544499794696869450545237293776221436923547505646119992786300614450777389843402546015525977560083141431430474687931088416979347781817646485744337004818868838228928286117485757732547986591542992025888711091123647181806778906421942477359621710912745265673635542344393175882078967103377131001878770658058649910431551641264230664388645515808626524428682518765075648168074263475064690159099739090097005724760970049363392970780404483433673786895934777037060752050986706358222177631361423873473780884260210517033084309483853839696408972526945397631013380147575259124866132210724619881430569409754688770082252751847823723945892788035813120607039169870913806182584379808389206237063220899971135593558393041726564306830456563947520435095350456588180174715125416587614033813080446355903987381234235503175608214745841214470935263166525248544073520326868841332195359894366226653650090234209839336310444936007946230590003972709107088032239867904890901088799033912969951920404875982982627219196926403741990345305824105971601559256945162235395799458679780527100534686686475947547406025957795104471730758700076099195678417033832216463535517053065122067466830568114248441943517177110283574530329323928299479695545506624398924351864921231480671216154714785129797621459595363978024300563662296204300086529885495660108405944706594819650031075254260854886225212308353621396186211209799926543811070857256001616272961650213782049522666420636820008018396542891238743965640373819602548984111891932696437479676924717766283241935172438789973939670719014294973685413037930121642542696119442434340123350376369083132176068461484211346085109011172948901022729945139407177329264227032244013028936288522816332210527830330550916256395885027906737558976470862965353846226669144604532736522750626663166268910251410796754692423031893429690876987808667950534006426258836892724178567393737320084328885317233889953651143187284275868205408932788530998277668639933055361349840030527356633531765038426742967621770743757432890174169476665405872095351698139793382659354340267329973092098136550760852219477367799500842358972098667070613760983083603086385200957673949775096126763096708676249033830080420342451290963084763428403030250082818541252598341863669257983561070291775526767437065399630205272930074096314879734562214048265029818860221032064972575573681975396852020595173131512569283203892701620707451795873767305132081742795117821207549136823569730605659097311651999793212858159766578293073847210443208896535095473629407208171623189400717601706599588319220663643142182963138180549471041439259521958899447379573427889343569525173298915028022539874153412587597468610103237807639376178658365301234128684251713985958012550006458026937787616821083315999147715856082864475205511862649343744589208452943649933474807676059064227409369791119875297861281842638213495255991989577062532118744874371217333407955676415206169587410032501013440157806830454750657719953881801996570313683719210956036178942457853113599492365205576158351267176236792788143656975355193998250461218286873609685130869674052433599707619096178501314094562526927632919937202385611319403399058345795577440642548281697828088860495466420452956506513847471510542918634679072866923421658571974594790821397880119011993512405284983741880041831217118396414670333918145160355997571580400704631285881698627103395212240891176666808650077679134524104758219794174665843032427281515510256426103658163724508073728927881302670829851438756177566520045047322630925673819700540646631422591932252087128177202402641099294682054805810634429233289831892556305814602250672046723937535381333150540226085263784942053641966769595488547382451666885749129986457195081222785404198646208627079754515299831091711435459484700012401081137350678517921483181926830631297066030137173517593305735062172999289724380498411022227124412035811341174943968943893785437035005336239633637574353099972856042925043439916709531955935145707228991148291566161429669399881053370688785242012822933286466519939956555775979488577415218418803302924856786377664443843463418289111497952288995723713769906247434716797406934073435913066441907270112304507291557580101797916225755074628889300772604745933825693997092795267826413426924214896899412519955959805620031407673023643011273291278552934572256270665182762041110011307910463203741852903432931596841598279583141402951644748262028640050452659719797158011122083587830905946851890180433316961646901858609997499632113899666482439660563683907706067309335424124481755549505903134617799426443118635777709702204463439982368128632797352009107312655260516311029789575963995815961978829581053467378717491971400070472936289311429268215579465948800810837195922329224313196646993892087356975173933708829599196750830877821122098877776348562469414413030761963592758025922148911144019220149894626390211949557290477416411625879065634520590610276105244020064733418893705576200541070965225869777180348445542523245666060986732378915852372736758542817780946497367794074322952558120689678100452653838705108263136442742118195590704488787858526625416932264529535293201347146930781445907734419663052538001144479009921936687226584587033280211527102832614694628653828483757212389614210958543283210635887780780418449204167563017923860508769901388579304788778048205295846165570645472883232666076261284950192930403408416232964115908333408845498711309670043784587794817164832531557577587014821615144987435714955677249761085590396852219804754882137372192225978479276631406993499198570110865854552357036534335928906209170236926039117654800460228358972824950239196582026474548203653660658144015121584967321390045760837103026034761175208109854566438110131347061040049448557614841319256026509839064400932025190555461814552560610619183262547938728735120595663605096560376331188583291578637980648629380892946421976524716497803936401886866813137771440325662310743325118460584161854769862195370742310717677324853382280850975343170017408207945747680435402219580863362261935409579107606458201007744787123875983079542540070226609543854131021464662174215707368016363928227758318534504026922580858386200903726576955741447650189149025607091184752695831736528762607915696239265933046918292152192274910771403058518696309906749471076176243971428417882645983510872915113256617709199850001228724142013623412072559559386728785089688853798943779331501085117931471878115482191802269918628762657478450512387329686339717863325136335609872570890837371910068864510230313919975722837799719911444303222628310011433108225923205834994398563310455550444644490912545955301003835957717821286466263045167708897335453255084453946328408748350308445755517363819394453700664282260717906273172492433043381341160355967440452906585651440690367707609126242163611670497705352306421487002382740392446257308778503131537027947048234773128643673669727072472332170890608575198791118690212387525227206848135548231160465774399679582643563013606937733289867912232956866784557580614168715206308028822200594691260382081272707491571111891550793476229960804982497471771231109703297542900374340140349505654851145790812426578391040138816721082692323668280997589504615543973181188036598493788088692232143750592614024422903316729145135237090528772747552013264078684290404246164651998944977639764635647632893495470463823820690822502263353050508071613350804026029545900125480538666966020084506623632376420894416814955101825405404376647028381550890627297060470802460424540606795718979608023348753576654007516649563949572348786967746777933339313197058198979392709775690133175413158903517910009045938915067634826415466601611182057255963116915969802177593930960269339909942412104109254077613502296719685993546031519759197728245119806462488727235974205528286561053875300256812473582540464851647715927688685517517385195687442122243020462954699029257810166090544893399886491169594200713440460961461943504158469862203486942613717830887280605000609153694576020875919059417961632828875632668291743871038643680631309628435377603431495898746180957022427151097398658391957750310877795109312204468797934524294239678696968432384267792784206429433983417688091332822387610225926160974601811759670878385947551396877263457164730476730694577207124763987085154853868554094972924681656276229171916006586824328926030144022268067454614543196119301851833285677408824514248357795848285082777984715917161793745479820576390626966529240164612462232373347126726643391377626661776727323306016733461948635822339234699920336755339189529872311879011457827769585366919803181559552140145189340822001669490205770560819758962664012492731582052215715227024004448004525635271946363274037384620941518878465039852476975303438892556112610025603336393233645687376517425122205303599239793882611107758059895648294661867669481282097961703150268212380097133470108797860203047968846168164241672787630351947433649173213692760758673671311454194256158835131406114642743827123537460979279889000753406362936445469110329649170960598993946666364430089474193085373029326323169314396443087962467334681287162464347178445855445702099774308788907407745521061416878445466068425439818473627628226269073003779058708309796772392470708146449775309828169507507539007912780124282858835458050530763515536536011792043319353155711989075753385112945111631698773660486278445800867475139181336367414401258605328183091281732057063952657204766847906561481269221889763418605500313496036547052087411668770693251600409275874285402352982005572170150509360396232397108564646734110722277020570746790393213723863979208033591838098326838178461354835189907689720528899677975129932556600506119021137521161734650257814093807817955283660197610544084722647761041127317826793467136678021296549843867372788137859800999445251926732449209602895795790988189412782670268095019128413779080224179149654176249453736144358856122596008447197668965328350038909706646255292772541613967012909317890035845704670836669364748685359958183538711096953031013153339446275264163651242175335112520854872871340811115813565479355135148576521615910768794699104202152553744980566866207255089700091125202805668208764209460286349373848817364731789473298772855099162783695490425465014538839637111443196966846887511849570470854809586550984132927148809900488464399922891030653563849215931043956384043326305672877860207396958154405469522065971408514165810704515078442390675418952971462343668106156300152441452582258480230633738827136053327786997468491191300211030112850877868853803541396395207441979064582755031933583558046966821564978204843898524050400802981342499927023577906347088281863772055900733875861189105066465699445837782461966494005803396589888831192016954539605167011607007109073644146043298659430863644485335901589497072607912109668919690422937189880699034824608151691491012200511382465980195190504794064596062554287312684112679331053023469634116415954607836784628052681663088132124185610855787312915412430508995121253882736359115006952569154812065048377837389274582285953736990107605695640678059849693288721016751538407562338895106751280261820443331920225267495508047920406903697449560708323465745447967787828057548191296176904334987047339795175124101182601576164354440220347376201988286185968615533108594030535588714019387933269572014876542637090497904451773858934480373689761843570278733190173211311295073238508148766149083979359445362381228429299441683881160385875290823136177410176949563813872987093561223279117626539474818322919672629534614551202061444132691787569568199144954913837150312453856257880840967765291593591563480818665739729291318499140166892773752031616440509482336064462615567015213912054860241783706352281238351986658661491854062672770670229945871573610723493343733176005149522426224430656621168394761514099214608561448548913997132269149935630532118417024381989903928134604801331058122240955113022658761866554615401381249576257835903809223435418303815570607594187896285405938200820614088452100148520348501902548419505878592184275724732202076656861920329493225442232583310762004841465980553603153384589326954015316061750915660796165664649869200051210526697943469240140191467251750424931185411471717768502446614202094759828312137275503390976004147813575919362851485626273764586708688083669971653119642591068034571377042405945269986269208486266597575072089217584512597578206735976613353160724324394056183375550664451760595561396966798531335496022991133360283685408093802913997297670047067344979936140905494491732955459162754835894522493044857385657443504824931317312409616463396794544373512337219700263640066124707917478419435891483617590532643643831713875633271826821984026663910513359818905853186182317577187855856219787504268530967318758586049674501094629708292522087465714346083781904768859407240706463414004794373984339220548152398526508644695286297524231768651808133562051299110268081353637839575017485557185235371180833773484347742069753770841989916582656918173754294607068856052725373238070097174373070838629787007077452082193860468289535657552998680079541326237266762939457209198164681385229971807068741759967284337137354790266277637739599033147933305022083715933089567009082265843218014439428334465554849271538872738752111102489732123303396281353772842012720250126844244302577783934473419686303773874729730669032692298411370215125850750124426776015620932885340954019146856981394649850146308224134601352441719972635275437736559581811380376163026345646920596331704465375372809595547606563459202318181582654975013811602708917627496699465874244383864881886597398260844560615622857160531088095440045353904221954682767564676555557897491060206548726377806084148208871463529322522169295725933912895688930253281334792645185058736125818590069111270342438833287898222608655323255362033353473095896447983216692600482134618271826057285969831820527810075220089981861564872695408011494202223838657368183657937184405562575645982399828967547562616435032874486280642521335095081092751613552046920037840032776537578096354779267701776597307492419344540093663384587553793118292912795107678099429108270721771593116002058482918091016448941076809017593381634918940517401098309951090485400919380750617014991841087550742301158842544303623398350669096802468526272313059964721599096313972783097329047955080010857207230572801044999832541747271998584842850870193460387435251057338630697425011862089884521405059240211740147180000493094325138785994103316659426817058618121665353998757967800200843005254766963994481441956130107723699905133411275736332082109579800225503501847388698797020638452802743473461185360597019664717444425123720229331465767754664620782883713346915700938283823375592241239818613906881270451361300126956494928248701422587883395682048306858606256572420005075171053983681663193998445786492525370643344798435937300477024270199856248131907946956200689570871902209492124465926828280162482595462196371509992556129912695846615978032062031646753018276081038223905223025831987691340665185647351001909602961744686961744859452058240174685065397565644401093240712054306706059978827341484271017230051724109373055571762231731511907784937821453544451267903656507061319401339626209917399496617587769969686054854609264221156740123860791156608999502006481778154899406461369878434271556199717634325467385889674326151826734596362395558718707239257235571705988093538497015370875431123662053127896062412710885393655877095970038731251244921933421220619887591219906326048964087405605551615959686873623961964734363173883821187530518397151228531268044357847512229348081337260172013831144232528732404144498336797473530637688834830111697406318925914706206389754501833385885980313861300231900310742489636489058867529776959335029478083113843784938101376418869387297015101198486991354821431993693125032163840336356624295174984005369102661106716342257408216735645267896900593196931190048642482664613799143243286250587245366351134121755796687218016411284645922303489928237658759776824290370248763341163124376989457161846828563595367950349437363889143523649749614610164841487218573039419590043901477512143783849496990764574634657022828533721025313336103676649663938105367869613667875586349407134902561129941650308144092538599253631197216289625230829360320630482246912409889886245187542483483964432237972484382467137814099404621587992251472865138242828143188026355936904358808384864731382573036191977477571600569138712457172797659863583443951455617800489837520888516814930055400032414105760870761691941603006930546865954138066628328976351194289857383837812131469304642600101155143792000036534998981049043835190395690547602372702575849795747807181715070843288219670644047514521367351976960780286411896825367031825706141859717586368459701200903086008206286842613489870143423016226567987145810939119220221264409123316281957000741515942083554154034650609742239289691662678742259451622270658889734033786298505982984018712675907632737705676531878074892364414881995622918788443151165648869981074321898810306063872661462253175766600107967968086285452823261923132753364797892824455352722534776011621971802329822688149403683261392146634789108703842731830356233564074560669646274058171941803777705953380581656005344630673806643823101345106917666157714307990309135213161893801623886818831892959481241686623929681805984896151911897274894844290034477188176320068317138095613960209050755829809328138317322025586127485152126723550697507398374656568299018291301068843308522372092696889552730323948714919173030988944567466871989831373243029236715333561520914907171529855433951090361932097733720296023140529076701943963684678709942791186800965365482004350779058294058014247890591354861303650419700170204425356397980396014740004380159687657881600005628421135375067513093843827650466264042208925095601602640677864288353199757893236356314027823523208653271932613863095902801412167062672479707417887676972578220386308267895619811833271286181951942679218989615309291668902326768238849759824651917284089395291901708657891805642426881363438113072933510604749216075283924337095702768509818700078232428646427001884428521212203244702141701819097841330598715415429623772314525147035199948046137980776939367261319625193725093458991726988006172734009239795174527288098841553809493623168168070226246671533155102731294167630290954380437999487815620678109086342043126295492983336039735376046665849108211100072581824123666769101609326604352880729589474677895671310258821064183028339665519417217182891311968672764151268947158516107297857722420350843260816571051834045543326577030521661647873706008552334471929483200225286882154970292643407178275482388448393169752085990183569630543392651680707353075603986838449282562753433180596039056294977043523379287553267535963212299990934000949582127869601353359371646033038537126407594730631695196721546587624592787532997865843599004123846841183145242022043609305797945302028175263329963027521535015275330246508210773221338097003883675031017535703892468243698704330826362753550024427133381013599975009887812424593261268396131019684149593921823847493494503719380930617250744770561708744294602402301127436164908977657119986899340552691255859558271567991595140927397866071379519557103965685123052805532410755568298035700146606834656770704946082845553250487949065562962664492486553410010020515520274642993896894460824963658911199993397720771428397207712902605233423132785333365607196627478400347409670790953662468282193272819377570931550923741138395502331620239594127417950641192791303698907950945333544155580265881566200629826943520044978244978257761440235121044047259929473412874865999855869600903804332657242245346942460658919609225679955195804770327447749526169340437601403891553599337654416223000792774887764631378143316796908159387791415457150260106669840792393658792515365012588327876296866563897736743246951285221913279827291519318123269513935501436761788829308983854789481278247351483223313458321841647939887799386686930319973430872261289704324792036303038962481003835021588198178170120908381936048343892760178934377553930905511454319427653583501181841623794594001483732038610323897444201202524838550026437677475901617018774097894312783324508470253752717729207062928368140872487939287157469308868136800401543328507517214184205255709763830941169949041838178737428036512113760374360469420637409801555748166361607960407371695271648942235503784154810959611851433512961954711563240845437917256914106042424512928279991628178819184566116303062947425435483229273676672032374872475921871790964569277969160889495076347476438429144993147615758390651266356227673121844909648690787936354810282588993337344580588823345923065163951349947187597361215942174099462778118382396325255873681346143038918057771568765107675278318761471942019086888897492612352290664431297915399653566911215279904180846602882709270199866381207189379529969849890902538643696581770243732501667094306601979156951316631330187775016836950808980694356162386180868083390515488130673288476129309802628723979027229407503335028202241132996497562381356908662963404538328403973117535527283628284825831622340192546161263800685403803172611931531962338983162559063727534115859539466494646096217461912275986459633997269237577419903532025994146645319100931925033402328571079536370748646490000571677671802618945345200413239246624884828582116678780114516712876650109716256662214616919113934426837610937527211724297392177262748304845965943060457149502940840677214566771287819287819124896991858727246619800259837355264795495981295156032806264501547900209913979308380085071139218984000642660401097653377858324463980058182132962202049409056582897569836777774826476346507835889801211895210309385278338738118183159803413592428830947392032507059006608430741745764865867017754775313316266804264499176120531825097711237259535232896343853832653968295152231293489186633224141574578492151402492850657929114173411872716283532383990505229246216008038636019543151252727400860107448618446636813641325035833301423371682448874127493725534166298695215372300440117897348153863165891081809422723751693250732123261905431446048492732738789330882682729121739559222600281993893273057643014119731331465451026129084309703180679537138011855383048712465733840020130771642260660727072905023358515312753064933117564846786869047427472344208842023987501606195019877524757522039150284654640780170556308573486806174746678511535626917203756186763735047819080232522371836020289359901097553119031280224345327695930854987802852893120674076350505719945895938985308723494187683237382977892816041023705095415806143465367172511030825507388850884906470985007966552833768554889399548697154068872331442092965600116312966587035788399291344626179884504225924358793512946252741977113313436990488497541673020115471141163275726765199960421714542859280386692572997498784857168219701132128124294685647731673042014240385968189691032625008960011021676938232581725814919667948109853351808883237091583938425829781684641195066228807492957474793703223680626169150793238541143523425491449129909881494968573718668259547823358599305204869344434180971747844865423424729093890235479077851928052001173123955235141683141859057587109106291413401194494844459899589662632554718292551669200989336751657225125451504858895896063073279304493542323272184849278560201440882276311869290606439072606849590794128900354451193141521455542013101271890824219096730115445024182847472537639112418889713997101876519737935098260626120966033326214898361440018730021279060883383853878318742741062105837804017789829212476888238764328004411428180138471297343274107417583031700794500355819619715378935158873901390271761504323600622059555680080290578568988132696734581793119281559393830985291129077744103500692972462961116826081285623833023878634472949468127436751061154048080067073365519923241167309553889597793989060297412376165965575759952566775076630764745282381418859099827205520736485550951800241998756724952750147529943189725193734800230280706765765330778170176610380403474819071728623689856865766695608714659569213470466581378755825682550562872301117107214974841421079385239147463735223617007493466761116099020756854966068806310429587196596878493697058454815890997414900960178686757013918711048304552321730274511767260083992337368208380947241585702049338535540378885724558900647715060176357517971576522118371949050033523692398484131357398866819402780584328100401416794787478160754079125264209925165929409010208027587782244133572624749648377121536735830028214139832768134960247503118253718890807409055821020794919098223809526645451130623269232974646944602510054979265105482638095081781920047608102288831600982773842727444546610212837067826886008192020957444391824979587040027047667080403290987668400383498365022665195713354277231800416531564178385033488203390953701603147367379911696826158028268103247563515350892521361570109912908771410625753263238012819852544704470973279539315433192359452460269369604495870797415274883713030538796665857168819127167006399397905951940883285550658536633869994056808687796714189010747475199985247614742014660437387381803179012819353283543228315216456730247266428526417923556730746202089915747681149557859510876867214944186389658911588998193008183005831165536054627659848197437873002225585089333224557030916329004027908731849934530034833660413163016047953077828652637160603768128359421878573621459957157981346056770504250147158840244602760541233173763003113767464633919225223277180027302912049952026797609644385931453308425135288549573672824343501006462143848072290190702429716903897424553090936621794261786025557134009525063962983170391699051674477697977699049201893358027902691201558994508076639792399180260718333888493793561825281207573626462517231300110617446711064964718723825474661137860313153046861757303914033704611936082379452067451650930570909860033189811222763909370497641546706466788390475502378021319247336707022756534786768372533073226378691256035488170452575502221566384783964282820579657873003722707932343267168718908604172004820331628720198447564999957247700623839422754507639244748894772738779184124629924980049498524027427449220844757695971828672662489258029523590297599530398881816739127969154317289568818712913994188368465270690689489300791637305129302243975367404520999728875384887779425321253742145355249131750668802202556515246545800510980056370844255348843176416154635482751068261536911007262804907384007651897010450025427932187797348967740850744441508207308249007457722560689003545347614975400938579906515664296349027738712462771032283992137202823637463552782748582610442574578796547877335529042990292222661805435509643957038442889422727714231046468970042601457425279444355710457535971788752866120556149159058937947872821024637292173497700110298737903349462880192166971748189188890112566655797696871088474549747741501189305058984274120477980792750371765838558415112785974564468922865193551610965737484388792037768883891743964039857721864533779590834018427911054018692837923131718190286353662130352336489180912032455885834813732572203408493041971316236135661133122189630764576103934258087616665734484184982974617041485529106817572062255105833540427757627927495018622353582792438337925803063949389518006229532665947988782664310596998876431416251590082026628261326800279457460033525976469041644443113793450399550642139508471495052479888162708227476815876596089692731202196765529639520162745453757885844757637932423207601281083209463845938011901167188443446451695827424324153668530472089785652500645671677242281387450408716766576883194466754278855643718061664779943681994391241629898519287219730280765649081403156277616666428262343444306614628108147137939066701749481714927327225760563667762352718741957816636455581543692481013105078336167292830417138043120821097439722671436128129043343824531033161051636918783981369493307556935351141811989157627114744928032396825541136267199914846028763297434527254859432127888122855504039993009054551614324078792246245225517264161610852992665400103605750213013393201506256790187380358520369125184256335770111868591820342031895540309918256817193681376234808055581708870439749427553065065335492965316448879406171624178749780610057579094648282449000052051023362072489336072142790253135914799185992772892746663051029848444056939571723637182800420944985685765996724100742553541889968949544865332499653698749049900008569160801612648734383442780734186489379381557663223692581760185830015872873628237103478439019983716964257221140769788760597576582303075081090088097502491378306134776913021623074002160135620415609178134237827380020638397890893386107199511244311236793779719274270712203324467447674332866226924517618318723682041488988374762471548288399497418612967112030726073247016514906001809910753705597484302867376933723671451464242084989327378623405808588116238054147370548085545867685184988827883402657544430537241701639636329797624808886313112546336718082065712070318171676691295932474460223321710996557198203596369417099886286606810757730492567075944764953929692433926067445362389718657275070955007450780391943174192349950656541585020128891775636429804714486467006613993484099580716551756270093280560238945015086203450188914581121219196471741364066643331407687698298466804188148140473699071681551902353069521937251101128215786897149342898606401660784261578917058089094240744569157452381961304000297464977937434687934741610921395684421909334178491526483238734418525155635015480813906623092694202061619419057584081348204425390249588170481563004742486955711559414989398894375485438415045943131678707181166787608502490711288675550604208244777168453007070168336364361457877401837730889502725620567994547573121378958848287660530890700600709532797766384314767457114846020611997711166321722373600762393045436343262581546064134832076229130944940227307809823355118507993018884268527263734903008059300360488261343512965404337467602838738777752641297082085668778763421775971271203799760325776809809450084573973618906033898567594558282623892493240047269046641801201475800600906635666753706035153199151711177794641143235503488892218357381750204608377254815736318665140591471051920648131729362681817589145391189036879518115956870437620183899211455568021588481544949808587455030324932192837275377973247153217648888306610130528140066749755348353040948523490871699368130733720812739414923079092176795571100296427128025249576873557735589848427391064087276088098399825110275723460729375988679956431503219047561319656425458675130826825807072546461868015041343805114136045625736161322399126492319957583678053740636862748274056657284239679569613004924974737829855016843716190498445949866047266725392191725367646567627176446763875325491300234332390677422455024815731752619463136541001499397186877902396378391522371803590261549797867516264845887625387468470236251809360444527786633677025208213091934041902104560927093993080473990931806653292533806905340422934541631649510644114152807316326515812633471823986481296341678046401825358957210792712181391268723075059919296113279927038723799775256867318888463692987070978108309058738156406802508422833184325022281488063996994811371265537959777426313098669081349146001224618703600079424121311965451974471360800102438963111534995977241461986186922781193037374322006025874578343995749369853740448037712892470350358993991742523163593362632421813791970977480358612841628081723383060507464287922034738129254849689393697003612879772814956361287105863451263649342671716973322843017166590195593185222790729718628260984342913134238467349893680882673039851986662254685260043285378661761985124911233837722184296349209503209143915735962681251379476074753136315367362856172750226395811260570212523905197399736098977478247011230096029740204874403698426575886111550113740651193765995622376701076975816511087481814619040351292578912492053910315937849543485934653055928695265320670120692228518120100308223319094859755320940624056758301822462702545043173640666034111152832711074588640891732335384547217895242994542777834706796841939242150242053477006935307254358866093394237355544157254831446300655491029182632435108927841634073536368576713443045070605642061722235267529602298705089383268647644312116992227033028094716233016262839539292944852675794546313897586952278182405310407184258032214292592563262826051462189763128374541267175566895165894278613986945241077870533118525809256560743475836656365554248898948202732518921881176454958020258264869305255498392236937887374635006404423017320381814842741761820773058205673923920271373708539944496766117868064653455490275763376602136527461665174762235285327593507179996163887764757173196743209694934953463407237520417094431885986049157870414748913242304323218439898675693983407205494678301297749910923450051024905983852802357934129097243020274166632151102860905189071824293400626618900169229729874711613243464803539662221249331539982305169820245457378906700181818294248569469002566952027117512544844908716822919392448522467018865585117000883234363260047092985295323384880914013241510658370104044086935452630153471896610141587770113193619253358322333505598336286278595809891208235532648924582660028351472939203992981217341822773203215096768747136470048705280796259915298992491184952897476589875023335812223436943655768470859278085368920212954878482386535701785830024958333026037724265954334168758075881133520454869966414534599738406827948712613178319723244589164739861838180048528376918649045846113569623125373758090303854251762504141370238282986189986106431910220229755097962063923811888251746795199054964435360525237034015141364619069297040129543815761576283214317870162064344229049280675930435485319186674709543943578997362889484433880119216441628274827359952619989860292167167125181942449453777172166095715065439921506898377942605562032559337384761053943799315565400785435739719569414074580509223998566534797658072663387645286873827392440077531371357363933942607072365779231289433622882872236847154141922117108268261891965200989072898326689261906987515782696509896860998249793213726385934069163486269126711209912870449740813172936666949590858098644737380718365793141678187147597737108363156921665178050146607496562022286746191205851627124972819804386630314462528062463604469551652143308716485301086054428584204715193259101400803851093743858301445257859633395535080653157084032878521457598010535786709665134170394566709093784400638689116620539843219727500029979439037630227855661967908722843467341920585348694634910708956989978729420950799865223723950675641851869734268396539260804163369334236559694224336318012235612949942981703953028083091566075172495004054552730285387068265508084662380406524283013325491636505636707798692556795989994565569719503533128756855255843079412577953704840003738627026474760231988422553805881897659682487549217508698851985676639017039581135097823600342080992208306180146051656264440878327580602553030797855669377135741930115293043756563922499552906188788323262959412937104087173304449198179084902526235656638054835483522794929859726777737455605677253809943432787057609159463315966184884715515491112583700812582067214718271732460343855922168671207820875368828752346785887264772185367303712455040307988427038312134467943077053742205874165696027790452334117376198118502999801559944688228998159655591502906070926322791860812290212305438518058656608517101817878248375459874373160122316333620024509537149385574273618932883096912381375759050634744374318630743941595027946710900152948985578587733632393022906420469996816515577236498801098661037175808283711858470041047646930478597499312520623884061544056801841166690662795632626518863637508988164783118451481935877507483375610861372468490302824918875696210131108317134327934412557291709200232982707084934021854684726540457181087643103130671400123950156483663112798927140918377761701861289316593821508213595112534998040145459699700349726131640339484301010548824745378691377120392484385135953401778898057219676937838975073626657495483002079183889398507907316054908307116716667482247025356676104133900237479168095078445275020854056368152285852595954102430619767186349801377860444413494215992736628163057862909528532595251744728638913958989107986493293776326148786693683818739524866591635433513985332323612173137152724244087085741630402200678952394820198536338396892436018540212690032374890456039138725314975185531962941529623859323327948279807949174388181272305934521019760871068871816163553399056622167032964559139826612662924261072870816329390988309218557975924167817781429967032809665876276684645028334870823133067624028413972537614870163633193305692752034052571868177873038087056765024322936062551404943290251465538105809445097497154876498239217428424560688382968389760123590690181747740111528680158926117803158413937426181261646889680116353760661965647972061290346156454134234120775278839235269529742738509278824640109943190862757826414168029232709682539742382257703872937404797218093435994530818826153491852791907765367842968267354809678428286345664664130022495232353797445372109392323073705986840209530803578192408838767330978396252509327974092225508610650592600150513524303497420197730300833883302346326337977613166766797688641781335127877496608902498210875247758382886544931933053988287728591588053718448305431734290888591716151417216157947084130384834722231408918746614003348699143411844439838230312862134576971749332246666173313038695128074597614857999343324199776909427166344564588065811035552668969235219354148634866367554186073076261634239420304372065491630426276418380137782574046442591340035209782802372842952165120959493805651950185852635125241925071755422418286104982755745005053183772318930408258715307394665795036543279404876048037401255567016008631662000852396901019746549373488634480701876438573399170549653594202835625144444535111444154868869956028026274795102173090164295159513725321025905292447398376253944451302940598730354432467565982983621313712081220106837626854997907294591002220181758441728939613170086461129084657957648840141139276813257488882781238097901387933432615637903376754962125738095288755731278531933615378758506621161559986743934316314772319635645049756149226121495514372979209837380085577237878001809385475536882087118226663533198389777504596252295264944408122513071791328934631401055995790306134084316229026261399371784520665588077344577065197202903644561890350273703113175409557186156639481826869430901428795571037396028211034157698149395386527975241747247216967404081703662086894094148780592010169667029272043432414253936738822438520039770020199725060935665703206351029052848670473297424702385687305876858015921724968703844155404219464988864825959716944390678045465844556581297506578882650471832312316130759490321954039863846733835100377195031030991471021771739776242907996825907784830532687467227625212266465549001853626210756258023450886264022613927839118566901158169285904160809369283943636809854239565178615278887723899091724739614614699399550866740452387957724656278452240801278271755721375469889683317015312795170293435526097081250121436107264298293539146013780632706203259358392121630143163455307167091297487261485090323149099119931076620264911776579824696774108672137052506511365102014304855043215143025075799563275248022866476817008376131470832488350350324674105343890658159791088002853672012066420799869744848272260726563726951385443151793190937803481616566574989375738285390398828973553533820737145129926817323638786870164302826351287478380880727418035297688508879843991126949681145526770364198413774460037673057241731731103424727726819239429979104500829249606460990508936703436671637906951595781793253624673608807076811796495498195922800324258834443531688663771319576114309870368194329532555881576190238019121044747961234074774914143135287917513789829912721547168667385526434110906762582895539719036224062784146406282482058118584938637696874508542911538689188209822930791535873439966046901269704680852155382280944782320983174865360153302010077649126550851123456633188658726393869943036781451083772260437500344703692464006912142480396433478407132621674616155083788579785486304039673271399689139422953451936502378525198201568180920845605749529909864339115429822820859290728538198429455972644092431371579338722504037630406147095553418105448731424450235683382474127968616624868054277242117471220477191117526649590477059701714259449574000168119259787069151982104700451936004738671239903501781900368134449006714045756159505851656345495321311837446032720144964055930934392846073164021318386370940365778656452720909618589608238163077718731766162913900894536437475265080226753138781288750739592750821432935094315101781073536024644875708328883087298388407740197738603309210321413228128929862100301763481067729478431392718115782906216593967236601691280653954980588052180477351646307778860820240742917707934837972224650996715239045268679033679919191619739348339253831132609251713359274636043364344570462001172432307368909425033498661934360883432992889810142875622036226556767097902737585321861912436809195918080419847405596934373116491748628022694772595910089901127322382981328827285951761956357147316060534671472973839232308738648778164861870359305918421490508423483847742805521365687424174064243041467324117091015651981362365194406833641366615600127994734801828254232249875367416353394012605953586354907089828742238530174051552600422100324143276672871690039682576550167394745985842694190506781461538012130537293943856028180744772965403075137651805912882805006642650749114982954195786459351172191574956038909996295661284818538791049450580668118513694852293839902007045339926876707543263881065337295231718999734662991966174468868479810746585305441903315546619697633389400224959641844653720334367648973323770111424596913618975965661889257737318961876829110755950130804988102837271977438919296282822042695282312922344751233775634031336447815190938047729374049159294375263074779810334738943371741658574260467508331401470027537419888593152847133669736381915478943401714525959617301065862150435852817472088841969433642949459544299583446601824046049192222861340654329394845737812872316806561407662267530941289590916453268613383073999568848990939361096109326811132123764520152361531563663690296072469599490553535318826440021992609529649473769119776179254117073973724143053488165248512283201948451292696169646074523836171907104627126985925679588872308513183386215839991758370887666754414496400136823580485947920025093280314033405572624302436118837427786337876955894863132172304643444032813116360948852728125326758750172505443717605060508223449239474321704666443457241549877040480369028372169868361190650151328783175625635042472554980419356007709267764138318283054319659786770281026753500332681968444577721034811677240208026834810739379339161608094893522588513922866686723402161608747640513486717753556836055836259594710447244409337223725069839391133382770375022902141097741384585192228531206799842360437468034500272532749506041346160759071663056938460040141329515732092633682001748256940568529964510768217333772510161767929422333654942518520803657275845327588876965186786636028330991907455247335429210321999753782265776185812304077031023092776171858475485080148141560670163252467238812397158127124118699894631065410647448597226976925970597028579010922396165690420473124509270280246857964292176024685203718796259068581602078331731441109571950787900660923215346741918020642588374304071066705520196773781521545748176439619995984484270488359403813518929989318885360776618506493997330046825106301474323673508282129502752348810272380365438767770958927148914103350037379067527218385409577381164033237479846997034032476718154200595423016432327424735971504883525769328130866095913008979203263680297196473895662337548474788480542202797902756867469911942053147170354011543252350546192539101828177183677926264604436476885326868340233782501475755321743992313234271427185464814530398725137330776193425259667654615240135415712475377683705186257675788949573494485461693067976977293085996619431421868447520504672489262146689429614227453324899181213582719286015929167470624929498025587144425525958291459051227043199361684892507228533586554997207234328569172970919285959026567220172734447402819052397154416906842726321414507858155823876636993249514065932405980751546066103921876551435895871442312226851671035438142561088192633029212976794903167558059794775582728807764444592593554583307353838544687764912713020201976451691200487426490816956867502339782889153486913595244940352067560827361441315460084815593641222672108123994821638419886266649757009922151823987272086588416756729592888843089554324412964304831988229921745529129297432876647075146845610725642268991124079164529461371021876684355019208702871037939832601576821395896736385847050956713565863832029464707520899300201881390157741493058766273182730098241229710338784449311795506618551252493673767216056051311565754625327248408651795897056630712468177956196901443864255013089266893847120535413968946457640091168953747403916424334282817661784288320593697999992017957251536197852089786204690540337511056120829786010477240514548247362760914790691234525247390878252715556542110475815475507687124642152559682675116951180330228395318452645562109560872629159649571102766372477384748030242649741722587457534098611874240088632638345568460079714422099007557392785035199396922302262524226686843494874308684959288971581878224832971427424696665759327574587986454839339187604063908930883526123896373627884583122990442158467669884440018171799951354069760051714263504465442382009436818882051952372358093650096053153798536324757497811096203353571609401079572561185594019139249084250090742371720557312776335249549908145462899831334671471436631896830665578395937428808834548705114520553711483283574797687297676295313713677327905902949311855684262549633181903140913016605655399196545327527049730615660333979718321296517164889749840836851703980790966674240223970081862732789847485595053097684449103850412454539862152219636880711246301730892658181868208277809540027704021150412573083320954314144185690420470187859418590822597579160205358033704631388209633670801548219369653516125511475002701955407130526002947461484299652992132319881497636988856409140156566491679547537286104612070863205571088122662211967576004264869656517341618665825911286742947497084490185170818132900786016778805345554351338398051615387055651497344166021038177450298512651015768891729820352230326441973795595339215575870398016981373717756191116696840752473329296581128409941986654062472135696490567433329328879937995639116453125761210912325482369588997364382794342285567254205648977239922055283270392414864501553653570868416996384672592492144672016243204238203965307645023057304884315554433295025586225268248698430320203166465643544154470368157511303806205679083533790555889340401570062410003720600877801196731702242876765502978620822362208916656697554957197887655525862419944285140414910813707287496811485909420318177379158086589767320020851241734140943388480843019456008965978438265278091549501341506163190075496441241704158274297243426881463482302827555047928327841372001041512014867710093827706590820020912366652175018864048631230398101333322350216193979456688591273259513065026550442582158466882703362708384196618694566498320206000868883350554900873983442500232786316275878510922629723506276301853361219966565068165973306493165583674605712747881934076321723980267139626147354782862161849048626390237427565191291301213580499455998880781983134897487374881175472298129398551471118851903733740139170846233739608166351180858575275392512122495024159136165407642406192391195867812168130994975412614089663510169679134703837076036712318572299854576458351824226952695540025824821443383876654588737440897770570114521237380621941668994146983030064828334680741936351335308397166913736041053994791413233327322354977129076213940784624170925813242969719405345537920751187503011839735677798484819894181406227978484276720072540506106339654274564120598670164326197937355548721181590491627852890172833197272071525272001859912468379092235321069890284007461968256576592928259435867778910350787565009143289170399683502252789402615938082422884865799619100804206312205422818271573732758025579236077961273108441357568455700114759006861837375018429787352960878422203544450666986051255277242930247653472444376841370590358046326778660572571704344763364631463598788515752963810856414399919964413724194154919139767715977647750450289909508551464103098186591695215905443443125820372017166763521688319018389920819329436022952674073876780409369141681284898158416912713739219138915236305238316193861872590945951858561034398910748365706837755845272132134256108284400827680729822724340551769058295483920551018198891180688835899136609728037062755195644160642037540180058935537293115095544809622458087648496828727259920055769635751754457343706742761304390650838436178266335811116633706951822425783492879232499296815314795264435182371843409948957681142723656285860996508320629682096163461979362272202793023847862466879781445933420042473725158684227185186371706964371298302146575851863813293348460361275646872770412258365925001281920963122915153484390229976349311551306755416566683695463061891966004039594000547403687142009971159383673496443251410910054778409858920153930134327355693583739908318943437303147498828885160651655632121559196760402267107519308665807369441355079690468364447032245513332395816402609271942763217913732705787822589578152661900675951091906575922185745980938373837708116992583426087569986925961580619397167103213010661408341706364959995192271101189860468975258925488977721529351976183508163202797776796366866242300507395421396546454907285570594524998977229293017295808167869682451630308849290768655859157118639140380818769856458050978729464472957281721687274978720253279427341522137279467591659480096878984131072222869853931446690520832031489753032948396224247007794213524377877431287605102061068225197277364054763562295344536891613203402847015628748822971968456629009361669602018407509234911839577334407811021060040094688534918688330757053525037658363690815284841185047371846942927723480889917687933953286573128216294239204827815971255420582009654351963750497946652142634897369154453161383066811044864653778557170636286937065358437922352081838800807186461943857826239623920785374825522687288411779242356119021911061109039459107779368027744587520118802734457685155803821930581998129290903055479886693021479534458952607598528775347484644296420036436834327219284555408552350780872776610938500661538148543487372956742506266197739131864052656881749514370707142913881186141946253423400350274816176386089852146811275222158950531172086547197578408507046926005293357328909500197785059654224335433662568230984202889202329735881975140080890064317557429801148549869113745072284731240789130489917244442139403391120000860416145179636894921206534550966345278527102416082777060383457885577529214070549543453950907838392733910527325159283647769846522583685645396920158850391814922206171076100685084152348589279440813212001561635827139701022422295394900365374969713046395281580205155947753937028220567279975799030458597139481418749332328207859417474795308484755291029099023686499101901394148178032609965647039999014175699955266972856402599321012416750436582479035406528554669004166733154440918274456290227371832554025248966630183070602560917031486196168769507694600546975854769325738501019472866147419292761845514735945730511238084635545141861755132049798015723062342047001529320030860362292673425179527987418770867557861261655131448486907789662506437254391988621810833810444403827434498828538498732166750904265727926978671760155064348732250532612043942199727317686692748064308602150564756039376104706198278681959179949392160734004761326416820642072940597233702415011136634154569923473148927714797446921010109693675276162338405198580710624864501075939876536752512246397712655543032935372418175794875368692365895681283344453246794454799451447615515815059359362298444080399043287197930951240121275820188398915776962527095822578469901445084863846366281386184028071898205177069100369320845986446723304291502381293226342331803859420340599479168285493741057113530027315616864559883555832054233696092928017701357583789404060042658209445397566777509016328083425943729421468154514513326591156876523296080015403365614984627489187659357320568360516918102578030481288569484727189238235100973400043799783744257882789775193649262960724656522085157400849292471353242097690131722008806795666375182091996535035229923430255697441060357472267821515391887138464363698898291360972697664822838829452478205272859890038243787424814955049184849624897114478372036942470370864642985759608139801572477691303727182221277938681877894631910064601642153511963226874672803292384901160454884513165576468702378430112914146438747352726994630848678480469796274072864418351682554367472648442781830633377601265790249687610391293488204350328394658332555448738931032741771403831749371708215636264324228147608466059548096283511878903363411560792773428510670872892951059820422926452926465343149716048649552865739767717739936862314726814626472064542238112721860684617198183300295079557030643397750759699225082061171154388025122022431812227836447363240972710621072370462463843550283296215471261271423101741230252429365904763680878398741520981252796621524239652597685917951258067051698729497784794881145324558017936236238131113540035045854001940476403985016792777601718434804226620658854426990894205734681233349735236510100880014325283021404396949378625511642331451412225815897114395339021246147523747318180881461810322823687834945110173290378736472084900907571984226834089554024400139507480065867590414060392517199250503095683973390206658439063095103056924307311480039465469700162572133106235779939815630122636966090930793097030253746581235445124134333814875048945215816491378452369955966912120634059360618211267185329501379560615343664764739160771784708581317162790849401470191930324813721834250432143370750935516389676661145413342873389202084829214666612025354860710740197582168061140101074630288680736721390826478160858544827462375645626773924185357583651776217513201759353354375026909059127936721165839647054197519779153215752970578003502094186084745490723292671909480809709562307602453844885341287783762333162812288271781290385443070250718940011497055808415205868164799622018841037194576258927550003603348457639673220043889880005192620817610089428846112396483142912400526049386622566679082531760393020351138582066799775592188260319784538536562809396104696517711245119927965205693442921597069112101548458612235087548130700477200569283577434172338786727811752889666412330185206599358556736161805637339829410436439095982274230621363092492599768389028337131691576081293670578404460067308828369276006603607680745545084237209558732704441023557826072045637327160591631984107792291420977425608004576936378019467797211027554174636258364285965072300062021329113998837644241208679730726961751867996918103174858844579781250360957779926365561593590918557514772889172890913226129829419545022745267177914817363323175027632028011393443353682065908291607280073812636040068339583216413810042897504167642778615045367756871350326611096119536837611153840696884682706326163637998884042272366758316047728768467326609720364477725887947744735990045256567080681297008471627875351371308996703642197816572939920411144085125880098388769927460378050331724301559951605151170351228551812579536430145772425197753426387441279018759896968488075301986722378143937341772872678437733578087204646311608891010424729619738525872558361359414480973307258609107644058251281738571490912289269130613743934593422491766596281810474191506905121917592556803997571803559325421925375262497821372143686858606983384478035280396710615057502397162426500758356254684808825951908269751733959476593743773005208221486803176587087107954398065209058070673347880710705571818656754833324522155046742726063796423933591963104887503152802965877476798640710495464339458727854679238102395341896106909814328275674471210772880437629501068331743053145633820746065998461958624193164545346918215510040736876858955983916002610418311965401082310899991346535464899255260660762318695330851404858660858156665798899235405053035931720081408863583284190550765314519132060740845916685197703635929276519572799231588724028712964638202815409541715633463757605108824188141096380853382506620300067852747997872618422992309605643854224898301937530226251030473464089280996018061522444070420306359712036798093350104836373153202998524440711628636326135158201421826384196424970550731206757978176767579432010440021953900771129361419171771375809985476690840924311795454227140979104010746750224377380136592498638696812128325623070689967748729334006236277512618555726168636178881409845662433296414617836773979762602582829489865284891666258859182796978045683299210790998018246509994551212950425483788098200923696134932936717693228139305309726422618182084199244752280646514640690300833843757056456133944621825521985300644242704191193589813044228303636728537222646334681774740257611206332343695678314020121809300405090501866185778862046369186773814234399419915023736442901547317795097326961696553673921700675052210562456917558152449351235268930375770611605220873245509962735146395917458398932283303174208303235023512710089112536824565873396718369107646295701172577896102964752624744992159079181026959875957816179130526968298034609589287544560728900884968180174424080349804758288342887326821378203191916633742034348331002511628238466525262229067803938866683860567855541445669831551569370947962504082410617217552287160303615384783361628152593340932855987085260888020443546161559873068136573935085816946668832107858471900666941523143527559193975813167340278625215651827162007092876455864637604080023984528263966709415298443957540881567817677564103764025459776031897243117056728988820612380175277472939233254581344860159455465854557978903193500010189011593916151872248514731386860207291853214319727882768741463090032476500401292895747241180971105381957477562331610768907457248959525017996706081771350751278966452918850134241339850420292377506887546669542118653896343333390585360649303220375920409874991827638623190541915654537832127831731219980183279913784393136204407122543008762501557638777136376867561520016676487300501536189213620397159876690503065397797536583576896761980059659727495440585217320806482176744680232801409040840076166408663338431148808107556252767244170721388732057553683553873215032089977565196873165078127044742568914935858237674085699942687592361244135513567031055176782014977074245880540603365304502899373637644217928505969357218971961412186358322939080133075922599748726174023520964065205065058169211268036517237734372365378753094973074543555593963089859485069101066557940573615456968070272662038615772748363932009303166467729388506224953117053409374528190390477506105112592934465024152144282543068010555524519776030385808817840183944020914872504553329061931946688993894619348401114309299353240403896489927351048677550224538536295207995043625690922163504663825163292911016661722868005452818673083851320577580359004417208949445519787432815984023829369221502133440284165107595545731166803737984919632664662802260508402892784406116142964251336750811324911359404343762197999773941850291509393199949954607752688534731645413715798739143354909042676539400701399701228809207070150334772731260416633746108357451639394259052886128675558814521232089565914998307915745316273803545193472750631751238562932201622871606365753142995949340914862750853960862041513159967679515030693552519200575383528607264700420033437331475166453627736535758534887232227355762478071026581451805858996755587981386870686046776823769956861483051091185549197527969540845243307770688105670452994787856896028939821882037873542758967759273423402686734676692181995674247512141819650421249936038040147838345687082119315691829828350089191223280179285556313915654533953248609620765372285856965693816552052359088343783386530849124768196416109709594243369305625982569757958833657086095147477720649896372572342300485005011983059855589545340221582844196444729773598199509166763453205753773903457194061068849341050470488449931398000556236888165847366090919219451206985929702997587860454389816698674386496559136703191959586180687960363747271394455873219882318696042642576309095415284023123735279718778499682071978175610565668735306304271902853422045163832875116935241583440339969656949438846792318304727086769784550831918824286670424358544007211982494885499196536777951232692037631177164944668437807664187164686512787108311473911457338765309910821959793028167060604483095886003768653814153272513755730322780735922978328042007157877110049438985995667179003174568685195179148350325711880282009391117218516254765312838596079792169667002210106634444405288968182834183090759613911339933949951291296575952977882996665659950194370545777499654777879354489162092550804983842106661035259674927781488039347884284502239479277715297141969526048740957607869582219085174844562176748475539020389091488737868776018920226649006500818063779897520376753695884930815420231325474471682927108874258016035892354968592352884573473477132536185290915556179195344557846948432342941526444810336561488136750957544136944688081470435261026884318367293235854563791790634455566066479285645795708924076452191249773227801820372207808497088327692246898756389359132168124626769984081203974974003411578035839403973308647297479337718148002132378235333345258129292164966889770481758635348741138382462572013819737708524073206233016981157793214165520140019998494338761785143959503519193691381313779691543127838907279279580996179210457307779461234522919988502381783527470055527833369908565554205918412524927445409277585709536872995837885836531419756393078996882771225465305682353969830543546071675538447874238868142338884060699115576147846248429639482419001097278529763729666132016946045916694465715832815451649125259386415552569153713901760295932927980531551229834773197638984051931264192750214408406661592743043574123120286721422470084094300067160225493675299610620195331086115786583212429970473941707999019631698768619534070756576281525890639615089073491169042546257683786997376459802777530271742770878262552414338293875889042731024297244198742088927887609729536770692262371867796191440567517116074472421061522845176083841634513597252641563359578422940656951781317832427702512648678145546867055176138815696406246221727541641993791717255156064550567312599556219235841701099037171432858141225847967460125018056890932774591560294872570231664624280405575170697664333428182351374956974104077371983783469314219764359434385344733191798034827621613960333305746737521524140440329389645323869365292914261737108859197842376105170747129144467386750280012718867240548283760450054564805184108704437281451576074670403555842457507884999645228906825996194069379328460356078092510564583117470604501083682117953895789644022772975591634077079385053838295690337111880225191796226646105813660563268704831323785111324526080750015654203134042095740036262678993931721108169219691979139715094570860079582618381482999002406059249528905042925595011844479932642554372440452453196501702736757468293478660386392618301086745025328732151718521565979355308337376974867564845257325202853947018714783063621492082736812952025092713429816488346248300566419006177685770799347128166929369335539776221163092459077773217151869995798742645991346696591748756229135923053013700441992229005503957998878682435135098000070570576112257702755273835727043843253909006103199659352881890586661598524097001101200107118705405494979570562126120243053540548063421303569458469240116231594555250848031013067881609913104571071025759765658885436244120681024797228849156630732556745656196371818948244452380591403367407306068772406052984557374352231631274420452613886993708728518671085964949912614910966724894415944144334320055183666281021747937565138905405962610509668638567834879485769197343221142561410659566303525309249301156505579833729831380265478526217229112479911212306592210791160899527061265986630235637560607681069014356142695479521962626902594700456241085119133870129321153419680509408731094868235107078996921906174743744111876196631653274335457706878508801120704525656181522973983828587636523035298113018999375160548601765202729513209255524978097404537837676996501291562073221652799954682562754021657866667054397782416899280791222790730901072970081313349080983144373755257274100286311015846294600245536177984139221794617490646758991339806309360511807156950153193428760994810778486801671094292027941539208329393311664454947626531220608790012299811873643001373051031918880858258485729860643887883931505034969492140794499595258556386979855344544448588004412837123919511638794518476359951410671484118166806317706802108953859563695275264290214699231985579302582272869272468898344068482995430604177952464465436456893363922226028979447065174526405076851851701763851009157075679116147674842470236993183108715718718088655831565017150186251246187874840431550134501043581815203693450090322361573563609310128088936646474876013174415775325648613847085344148095255691765613554075717247368433063099154562355953865201061762584635945372928864487903819741973227320454771757111178012474889907540585400025009338377818664841279092408647894238358846172876517002022351885562060865554323526031616833740165205851323427955209909683831330987839300640835212230718486900248932114415105059338322342429015812922159686746981335753201071748748828663714090129214408155449771297942066751537877915299123601475022344568321072067027888484231741904397292155449021536265320132387028744893007095444687047157703528496852379272755418135451524574673273514465210033544525755557095435047923012540209402867110252089746671545496741674008306369300166173246355185382298081210507436871298472266207063183079591441810487021432734948074387918142649971851198228812751532960828698066654636339195597452635568387249653389645545039573561130473430784990790521356643604346940172937370808320515320596869907030313040479988181069331463900719298791918819122667764880364592220858104050224692001432267437463807305331555172653932519658555178707192029873217561968200272266375632881927992780614758810987906157775970378825495676542659112175715391536928752894047370537600312378145541758220222326780455842783902719084536905829913384910811580299873653966950644067015221776071527552381589832727999388524761984152058240058848306373840163657251372906571054187996254242684091260716241838708456338015971340964185018838898053091271647663657377929796909844874017882035000901851803642912918761033081869179908441749560644395403173430671708864846525904353626031426199196940059094697353951328891931262780620763090143178748536355860903094755975859012474025997313012449950145614532725776974894283351645850390170737257656297414049437197256939135926097392056306078732005717649961874268586794157310256879243680166212523007626865102484137143952298253720409944906734522423955737511800749470954057276180675679748476375103862612316377924900469831541063693596588267353295676245315573450324565937325316929497618110855458176667126679956164008751542513109600867340290840965336651490508732042861114311187480174977699020528448274816520786720798996833190233029033866881838723125177311278931137460533219468834587204196006467139939553074309940931129638427073795498726776935278077008652150873504196459594602949923663553648600883736383380161658327734576986949749106792768264450487955503785890870051674766269826592738041456530661182313876676479061603050797487647150715890454945908679279439854045909948034357329290915766877611153387556694181212388787876232439898774237857630665113068165662304142682450130853675235169925064172839304055924511647877345479603151134445272396319918725208022456091599270914955940354640447826989473871653059296465941361610699741369131232129974232647766826431326144920993871360226359904320750552724686634207242681022336727573128348818210406661876574042987663703502515427772179910822866110964885978904124386888455934366512353081156517692474436196070156873852999905677263991573779618297292185367178786215364587297892297984670261440832492900564711522323782157890408769696047474285498501493607358169496143457816466968335645022392492013186001812704670145666031899289098652348467827556243683918273786317383180989402150490971423588366299943267297402713594521098251464592178481908097595370327649286163748467522518167159260898190258502673207566821448839748325288066498677899861958497832272325779277641941351650884742471199267170519756230842029343749573036867961504078066616638288259972261690185655209885515786329480595239652134196085267268778072277555802557131660773209792965735805325929927149559969777164231776747554473015987506123448234185916536659988077698693640263412706640442412330227753464557706149924712545753553186759997003892049903284275634956895610953658756486485018268241335146122024137744675975688806386380708115915209927103143418221180436544663025795524706349057739665816376848115617911615381991449748186973352608930814652492423295265212173927705580586116038789497420026451525791076744918819363288860590382692129668119380057586211798155802249656593267367865634926269797593677441467648258351199182642053293158147174282591802361132875888140486457055682623230595002185190649125503486148134617793097210954714062306985317358339134530321935029028681498087679588415476123229772777279732407369669779920902542291331023062605760446467597049602084142555156011979313651273212729365007136609418423779989139237625990168503772156459839492470099021571767975625486128438338745800433388795121945920489465254147656809608682025716500647281142163366906647333388642613188993865230958660644334715144884254229951619327508136814300153727013900917195997829000564098157276785915708591712467137870183459746660240955220441805785100424532630698561092028417206042476066114754807644167644529792441762649096179824657509060256928440249059879462287147184286197710465902838088458093264600084797666117009960410670779911834938589396276160115611380664601911378781208131232522847220214742341773944215349089461976358166775885012718779668877222839951710184177571333058087176432748855760378479338504026340104782322356419761141659776685012201537139993847233604482147563534701836849005789905538278332722450142127742259257204639206358532155380516638358321828030300232178377894843039821746849885304873285540762056584012033181357986272861048156073429399949528807538476571237043969941864748585460573535303702070741407077013002937850234867217637027772347358588218418159105019533476760748968298337598495889953887335980233853267269843552456882849146780478255369124522604816314989886150548380358504097931914691380168706003570613559127405813017255732573724083008137333404463959502018028403571840727225612516396544603672758164195956353137497880235041825309537364488076809415276926083234695699604072120271549702318933442732938797721088447472102383809419020773204097491708661657087806075602116635299960215792988907547674277158624199143629847723158886278450391906237583051870218446850486618822609654897642156973953409453037810986072527484495633308188980240523607257763517726536908746471775127625593661337550185216824049759621756980059013155315873640670749067174898794528144280349336127408325712273060429762375163261547516975890163157160038099757405952571322545339974885227937087775627802486297144141579974319559597599176964484539837946717531028699611157041733359835790745558638663322965032638047053500813356481435910038563004274223899749903116265979443675554061239245425760477539394014894101345593601258174412513521877912081571070170850695312766855466624033875411360431304938086083835225707032425696224291480565291316254976236108634754584339987616105821703858528194498859667190261030482437350397733238008801046509737490806321784873807455434111555109881336436573946622633103879220651851403730271016698081781919041713988738399548875203722389036905993569116502008655639274568139120190237766444937614027818228629805256153978590925794102005652990984095377067268184881361961028230946222688700223410450114639202200600566740584142280999254135808772644231535905892786229868432235154786250291337663794443929283068690293911172597039771263158070665721616251755463082989584064019021641116473239967547870735381518636316194889054685591325637844490452347523648406229923998976664286176397584507123695363647106376880940091129456692013273071017462899651456599469454563421337249333644630925785622572622677160845347846591958279068524322568954135066127401109733323589958471337336077555483496006498550676522355762010860736588067929399909694082939782939105516572896485646593963490970621585624656691603574887076910207343501160439813278703303115094646401651187374846768235241013221770545790766090383497266991691973905643240995982567710918856408922494577748267084397019909526426678723795290815803889146769225291322040105613555091536576381753408302167345717078843534931624221118898645988701951580511426508786659669239653755534536674741659653185075551803519436954072385131221381221318253154897108447099215885316241489397063696179227127454518246049016528939357198336909015816838968860927593536511925749172534594159420797702059427327878189578687845712977085337279666095728168537240491112806007015588742558282233154669269571996124930842498328850638605956887840603328002389457356803063442201652097580625345158579899023427945630628209152856046113767571039968516763654644775408761857162966713839445792590492679304163063089686223361089333119182941941084667519583148033767654081992252812939978959777053865692792022601494609459949672003029050850619293439540918295483600577389401804225285190604146342800010298212538490769709697556077902260105550660316879027804498151090985081672204040125179215818502918980434173435047965473336137838056332074923972271689123265970024009148440504454062356378732817197593626907192883773599406073802382100491089505350625986610719792274322832134746164173369530047440382382160333144200660654825107421602364083532304915366767422168973582696018163898262810757295506602751199431936860463901839002404765257521011137342512808253908275367826903952826170350331474403742898477636169996333481238312728840490246532728606495599795117490094137575162010610399530218067847359242825116871000335761686110176828114760343231759595783686280822006707781191518306278905064086419625999663759637234529045076115936695771918595902580891650849576672129379243783320915928761905338172507100038221911637623122486851816751938961753473240096988978346390899977005000395272583096597055714540071479716562309026903039189702981781565849649989272832849055496326480334283028131423723177544803785405933870476830867336745536724453299905204130901125190764087200293720504871394375437199969673447871069200713775599387543153563186452582905609825764919902957607779785718332433445216056124223254837135040109134042936107573241949235818223897039189060713425872250051769546122200841918596750341092142800428386452800345523573649077060435715311331304715528220585686920226317132908298712753373836111047552245581948613584254519643072934398752528824845655401323342612934990134191047375477906528131008701438044607076563064007860922262797454696342717760933170750973053420466053714830333973920052082856354670295173130958918957801077539622532597742407686389991075541148722896191009125068540448386676294802553029074089688322488733473171238576239979782243664578709942943956648448625627592803700912811683487087413810775472954036196795320095982334786424899647030588617000285435764095629985985887342887532310166677733962171099232715544203334312663649830332751855021807683911021822224891889083483171180344592025873893838757838843416365955017630187993612801968623789362207441526367797662308456045588630938827805941096422146306451158368897514027563180194770242093710598624101706525446183922420176628866492170805229430958877496658245333043118060034582594653006663300787475566546808544467262162608152865936067058261310844993289494869436686374250850584759159980602413154857416496690631725439834330071925934582327726334879884910954166723876467496194781174593612967619952810955358541550947434639928588329327355891281165464979535243949320346779255921455067199610868599402244001360281425511493570016095664163589903510176470153684361062759862197543809182271750970295548415095743055297555758304409752392315415770524139303870309500617352306673107944484871519733356959787636546027026476961952580941563122932875831968293538096810868197669877192844308140302020146944727319468229180050902151664693732795598745427334443470344976573369367321134551074931639471835677290235643077061650192829577932543771073355432758118089093701670884564405846455530945913280881219652941797010998183174733601734825559311082324201261788118994793887033487914392685142212525906178853675539926106051252371487840724542898581081146363632043671253236142528196226131841879018423806178649435800579241227692765212748168438578570442235111349719263960760859185625775614603804312114919490613680265454933495849953819796499013816831506660009704431587290001627492336197174632579404823267352819918008254858685697364798879323408008005550710931850588571263151993641160743088088638681440030479962890341211395345587425182586980527751628366773654744705747336065812542661547219588038199643031938744069140499215378482166230422656927728282937868750961323469331867367789202718025990397004480677666289444565588093761242315825450517471393233539659822635288827283490566524260659044411426356885567938515046648406203525175391473289307155002134321035633253877451921483557008916189017577663523340398023816131741423217391646091437490271764631810214737158596904543702135348919266733631545923585994951430991127652626903827188963911145042587787817122770624052167033661987452840740796294028679250403994634642126035570821447823877883478354934928880696123233332122324990793211907690610417497483233260730696020042003571123037454686656226010832117594087340972034029406581388951312199976147011971649821357397847346684747479435312693880400128162627226038052545525745822169280009215645864356391384457217133284876311607317206970046408993546461709229624830214716021357667553663563238244846067802789119560959485097355889110549472992335195684128819859057468883840871790713320082702089093915325875034559090726198396168071526496131455174716974805139173110872055807809782518852150934658484103695390164503302556937004505113138979945211859985533178864531297030678801815812047079133360244770044467113481794468856656549056433021384716347980357686971393446587664318247501735944653813974090823784877167970439609985193256513005181342249789833807211905454751833228914882073741414914909822504346044952919785082863878397028675150991949450520389191927700229377271619064362291497881414549313077011450419382608136106534275563060960903747521690894071795351626721925478053340088646178314715456770310932784286976128180709881135292637449636560224135874017931332240705046833306709253225096055451433040313620114302885593195219975533609995518705822891437964685855917639891077692140673327731446490260215982106155600606945994361809058966037436916592092640272363044572463981951345070929820019318020545140250869872184653171271156020876441899760778917268501957532245274927379519152536344047605369683445979855747202173711135332277826718206795562880739422985596666605203030572890995903166112170361782404858053827964296038074227613895697391675423761967505547844048894422235027424810893874742778640562057688835824974344833100612413047533589474466660249656594945150295219481377037777588886396357526572979114994384418618367357854535115300353598620390966318155726484545945802101993559808459991308214178076376020373021973330596625903710738200228915146742601021631034045231690809416015835659220156759935639291963212464717817149314701322136157597658026480078301953783572098373884662799033991310828515427926672042013110639905453033219506293234857512180449698389281042044038748698452919990725366961037237915432181277182671363699269218179877980397983208192040017353026703108443343095568352786238705318350888656060647331661747719557244679414715900585151781885406758614963971083003478573146793936683200751724941672819642895193159648541351374499078446522473089952160979743460589451673468289912829741086493838234714651044895945883956965323751829660871397487470076623534298699396406309774068735959588590715850228673675963776732386951127374384830583260790862961261972296538343304232476598379456499733483773968943424570737724342861955237334629612904661335917459722692327652496565116538684068890481365499293185430157678432607399895126182336053038736682184268231308982618825527300112244030292561324653782275561915399960108822375733189590451057018296031632908282816605298346328134185998741052246347953513114607450514827685383252705889948271575437109906903413075472400171261289990597989617985719004842983202461052808084407233886521588603656953708370088528923083995886733464831739857980452785465951117567328509877277205075613494790949338757671182790559928158344596313599856769214904608172675756085652370062774601544956395704159082748744495532431724299078577001486923297998675468459345860519097028170766421714832562454876503406240096882750056805203718257041305830956347946460862102968363711498807164548966131793246544253715250164456791720815144450709479273219401415694984970048231298292104748928884704621648878469213743373259825907793685879205790574156458325780727807098052100344775741446213094109068815921364350074506099370372354175856613477261654573508270058429697227221251292286186466731673075269558685027671276991847551594752423483302914066850652430285009434895750257731823497520186971350503960513171112500275631493330706469196369030274366096980895156686139338719725965131443323194805392901234301370881598643315500121369520638142523761336086167255400044254932784455487889945979906927033698381320698825285795932211500659845885933325521399478635600550164386896107730745678172034875334723569912385192804012386912605593795208111735592118642181218062742402504621242750406177128983191138232232606327878767544508658908617181668743814704042759864087152789558003103748439639106501579841056950625238141485354959901867241221757400222896993072943707347149553824467275734549462035985286085554147304035695339120345512351187529946752618012479819986753846648255453688755000147531895956662036712408235903297376499001913995205896669679537442393354619763656852342945808299839371248111134423337979847191758876173563092358015705519636170904706989961737756451196656315442120395604544158785572115658388126316224275295053672907238836458160690434899262006783135029928549084636601560535356992815573121658617327729784834034261419722452067737994723398356887727216341374791737867567755096943138460128651494032178083273572352049831180357232800292527998351879693467948704225857731449566685485288737763463198310608142846954192066014906989993335854955081339996393142596057813168510095096331771884712037811891320407323716142131226214672906003431774803161230131475355815224708392891347699347372314809895827830599860453067176087009544691316964541445274432811276246776929619029711147931688549281572760459363212520077479152521225511532759518465314403512976257387404014596228155467072297746291979677189751589773390788337723698562472845739709968826369573060937895205594307165207693841450838142262861468978232109183912402793337102517717981160622622298364054161186282930749354906642051497897960517447391246268584167259100178618381899433689008450038899280115882551923265954120652417967852332268056256551198881549796388924429523531450610540854410430797247004640483689751577903086301334350344389893183591547246237637716490824733991083032258269978991250197723521026192166551460256063931919860244130038751184288846875296512049272624072008097535359092190941079891471258290780812851473557119050560769271880879105196859804551728257264373463905167791009222724792531188249484403687039104194896144112770160424334948145068086584332427976474941278256429812584274118571056033826700348887071320212345628201429676572494409966155873944756716632864134008767795845722311499083728870128051155077369439227888365772575647252772037702192194128108963194046593589387353572544256969983917295786891602207763051808648147661028866004829096709188030592256027386303187813067309117455493827701693461215721946347223257587512128271412372339296335962779019231116310194262274161976932891641314909872815970100419053787425785995603107087333199703043269320546780056801370692275286164725731710037502005277094454097300159787775514769440693312287418962417972723034880562561232338105249526017145641644516309167550649760497164062292774506615288545040737174396199081304267892765601114931378448305475329454046360383003730215634508978130991297298380119994095961952531798742261553893623179135139558778781155722869977809972318623819615085624621264640575368121242348934915825773917862770119408370785348970035360501469810874990740598216222905891676894922992268775796730174983214890966341416789755857269817488212057777395468147719344978105250336316499779921360166026628964483686156135765561465251977012748422433745976813949077107561860487648023883401885194562088315252741921669226022887258989770526529422705235130394021866188691460206385482589293443766003845011486625860493268865690448161769098793213139527406389098297726683550809743278475941916654640888715454497395508984230710350411848825195625866944850281271586864226471395872094010448650217604231595894588228398137646117876433716603565316681011520741750904142087317308884542142000353448829755374175458436879007716848917493088591112252302072887795427557000363018012683100266089973678044785132237933906825421009944824074019831938608256711819318749121138929413002358697467903097967266810712405595565041789442869992063598121185031110448657297806437829610616829258425902639500128751064135225892010890083420318920893454498631632485410637338603927267234855918599567899137792570344731850175916655801603849135937507174580370356804214056738292596928145455022583435229193474132558947432277772654255143980573133688386033931071093990314850149025293148707466171856271284842049001574906472488763758694335587198338065630991372184972942046719021368803313011496513094990479729402404980978591234776768268798563411831218026280821891577496113421252169811525384549671155206512547782178793938760278268245389840906024919624146985010286773617273342120604263765634076428783762471246405328315502783065364172448338515521419723821324299511953945843162891697091747216959785142151877867893097236449695030813127421019873056644681216800371135736268509894233615066724947173107109933911789443268433203411173580497228142773596830072629765398077422489993975974522515984986680091204332694820607135979764423641455346497330520754099698929155597432358583457214043671870174060800345425395572132421092769885721802303890809646698113715231001201817662925406482553959246004230620685334725649450546042625071430187271511403567336568445916709036971234237575448038204208966029264168770828595008162861164276978061846514721849423835282053227929010352143089250461873867529609305581397871767423913610043603018683215290025791314981546902797293079649769993352171328153155917592464537065160189830914489495233389001547662933445930244529859129488782014787311768107732538591467495568515119037436828161040330175903320136591649229249738240391656961054262996770927569209126988944450744772499982537624093504861559987145236916620048737956912995356720462274985807463185965324961941207660436402288057754604922529750182255383107307794186341835347795173494377269860135704809683059438431607005517763086435115436055844113593050318781708643142545620431845420647095835162868848511779600849059912468464622405779354091636654207735972548414749035952050670443611301536141096876915897902639471898869720913703542282979388470035223961855110732762947790389536238296696697519450160534090761649904128977280812184655964556885793090268023329277324662202211551837445614324425595168926345835310132416134663767567087946260928494729769788189040003845945891727541857257976179849132440910852591888720703808157342857631122350083841474735719248140559554829181654488993030186603097205336101826421169163542025588317437296812691916543010670255889448485324943210908097868275653977760635401930197138602194136282879826716716287168648583907971789110113693676112330076205809385092367872290244306470445686896701551956824500746517500042558849903057646229781848853330907803168054741412813046080178390397409458824025091954779883954461799279064468829411167822625414361854410403140093042890796968070185273064267057474111098266085649358353638318743450998994494221222977779340901895700213312766420632949670363420857825577035990403113823967066928918149450284136457758239226204430764286880242130205506177472781706685535141602461316491166341182782829103682749792371357349042724548634645083605723594546784709806229303822174339945609555551264795909370274275748633331338903796489726702879929865967199997247975127956955445919341571052468721482299100483541419631444389800002047603160826413025891714149895874845206993634921974084062804732982223468500492608898536214436502771179429813593973053652164297889896567893207890725257201147250384961119051427863941574068771118290717163407698056927268784419642136967683104964591454994587398063175389476833595537692302664417256141198464746165685680740117727998859448587712645460484133431236483085775007320664141554239843061085038404361774974280099337303665735079847096309189188634962933338798172169948602108461315587610212294073384699124652237497680736595539570680657136278623316549080370770829045687584354056656277842213295783824766792837108428216786282988172778889144678319778900271688149574952988147352051298765872947345686074237681491979971168711966340097437900715321512474357236524771042152804891659793284322491789675850572879001655138186415696618636626923871888749782222405355189437570773987438631895660355604589322611914425873536365159404251423016812779586583923557886261299452684142654946298973779252864745500328534728703806227250497710637233068128108495636992721676532805474240657925652107877608712728441083409842895554928755081845971638435155397622256310816888257312896249433029504346050064123851745362790131983514974167709726903123425019072820037817063543096831594547258760538544250179305968306466457559493557618532032224865407838193830390689726207629792049101623640842460269905300602226288012802121250859766435919962366462811086640357218961854141382524864208185982081173227129044001153031999287289498008558655663088644401091361772013350930751990918802942234015668350177215263775393729639806854237670843641954268470339817733707224333072062370080103274854808712116974469288219353289404668282674883822371673609902671366450075596639832813640269501248466904544644148008294823272425736979458593430934536034203542080315879571928581772801078043197567477406481698931777730864453946149080150880547027129123265726355492897296009335553199441756977194892340415515090015452534588303443076942649583306486022058619413229599107297391461867264159028389628371970230745166897008662042843170932523935418153055619373475871517127052288977283762104852450507034803606060474918803139792192964279385513680839386675836219053984608660318381675330822228821683708703504393098067137026097956815025060859727292802660201173591777552119272866860639251136304297367289317379839378776551714323149795628268407716172482334660062299915954775216648906704092271423179419208252138092265472189297143712423183252557211403496067434030201462516145077506930795328812079805769073565329407934913448525462170878597180221871899717338512768670781313038346307593984812321292192472637250244349884193295435499721495267609078688313321512241547706057242279446588934921063026778767058596545889828943052948403901872259515284115293884152575053162771907584446406233098086978595054509498310463847381807670969628697115710058087643295523911809853098322526416089952506814370989182004731853210390747292400619825610043335520534821754876839374186540682676432413555912322392363266693730979563885183192974685155815470237309543482522646019460130045183389389624628062948518689043089493548607692032917070924418494775962451970843462282107601903476528595326444055936438596171686405777926042729807901673502114712822135022796089144722861652987765439337028859173579364485957773307768470831286669084062267459411044430065762900103545575196637029855654008895715096536004399777043543464637860276150089601190377355387425563597211311897060872800693681405160261816867802763578303757263830484269747825307642716156226135496266364589092831120035464198746965301088852911910766048886392675349200837853266977263096870224969983375754609202486742755253233414373744027320633842517705361351759811692374729080518966480184505386631578130828986445841575763962779975289580109365788531093259653649634873466614185601417509409720530016916565457838408221528148543464591051416151762485555008302841194276936069770844587903555917362693627389952533314339563025414716176717579300553273897771706706054233851573409136505238171557405037109998333515901118674677376677845838763004429999464137971434030660129655730398148812305351891914023594418514556371144901200840591227420486169060207323167156188479902801762108049437394659997619302957588389727713330662761980616460990246133285319596812691459496204925055648889831288679411224169585649085797857574061769424628486881906783747596625580746833070340778595518883590352942693291881237628920160987442858780259048707940355393411455589979376759395049586108405920280630938819135115275711121480262875829956415171378055982619164857727815973085000774989582579358422591379266902392538630090237943990147463406316481750025092717997837162187509353997760383953030471796143755565270037064766588652441935743449926148102256829557143385083380544696683948429410007153565742481033113962756781800977501879212737276855723192505733318775203508646127712206120643223658915023014888130610991320960853807598376201031457030231366321427928532602450418703129951259858197168547143071249487698131012232507553058558443692079272259631479584668742633093476445725285544847629193783853157618778449354599237481815102936558930878277017329522426463049993088176785305996789175844993376737849033668878049720094269769907499912375873403540275936080372852557215556099839733901265390058800978671063293725565673563934268602792948551766374721551692630778952478622876038889282517072973896445943399818838818000867464886002833885297857514506421420658311107860095318057853546016540295049298539228128821923650582864784485061654490001199118879050005012613970302840615654471023098230102362484915609734598437973033408771753043183683981859798553046304434390606866697033362679680501528496254406885521111816841129046458744699393456495209359786710465632258432789871320784210636240453486377615562820071543180145898345927269184259659497527842884693541040163819874468262197255952282298185706168584990006619814917575220147439695036540973849793723228091952365454456969043243500345182464212121188405084097262057507480389100105746513205928283847937087703720051929052510653263173857763962217493936236120578170266844404176851709275807932303405445042589658349606518612953598102211223231222766697444500384892741047408833821199023686063906812599216192545058964205377574527447648114756604565839631709281058500061532651156040803044411240823860366426057121158533538923951773699833203532702241835165246422100495401148995038129293033414303457344266264339564296923838584990308527271288872410471784724266624650258656021203006031869682154421145110962845141703175901216905092763996777519668040632923371001144510048410347222465231170620896372764108558499107968664170684182521669565598162903462663323378461737104791957851607592088172554984601957842245899778258841233854719557238921275431645353357689631537022553272127322653255731319722655298048812391462443376768685724687940684984106878271514949908043794908624940490730226333567732179408440044127130687940964713265998946858471522261359267910549073971054115170939990685396469141857651261608076518136051350007227961213005886879506626249934845682176636990965731548749973016599000366687422431156384282462836021661884692458423588689564892479469431432489688889805242180934084800770199638483987429375796787540945388623925649524298416825932493520412247053392953860973644155108762124442674263137617870124719787788930567670214225452725565023228651709887442706867970156078365875083891046600514231250109489875722512588932391230267584645022708084058210984917343065207822236472411751297797127238982861868391325493902040263005540588447299853743031904266133576255093310286656479677403449246201435257604229503889149342391212791742239146601803804419281502858659355215174777239812442668924164240212623032068257005731057824071585035708935706249528922786548586344930483676508372138299782311958348652976022670009063455769863507075171294341721446224500992331012631300657262337697870768086200113279398380803080888040646389841891528517837012394269453060389945364174197843090888560615224244484736681079995593560299905461584317815563125817519485102491714661453781454156055771861597152925886575523463325589535149085582810286979746696877113255525452102750959828815360735814332341672490503469487227685364537260072875522600227872029716104799991362093700930182335879506603468157485999112167976939886019493656696733812100954221790772646192523674993953120540153618028330437808934931637259442653103224359099825548542740187993462219423466981458629757295491983681601207486005023828818758115286576633814796119729560628680869169782993573641727651440051965627984597931739450267003292024740960749539090813328917319178435584663557873534968980436424119657518388916293344723979731930378372499518584767239118756930725839753889730369764677970674791224136599677530740674907849693767499502320890507474114098501973252082000914761144431487058436369877087749848814824263902688043279003134434027901686201266417352371920127964239023104055717914734865961766260405653491949834903468252917549142777970168953033246234049194953187043976229910529086423229482457559059598189583428646303086803299065934086298175748020538148057920240990638570752059170150021494281396799603172048966904456581243724686405745864447022348440809919844647659075602921623638530624724653001614934699376948245722879776426279549837220508570115997713066270401896768437737512906480755721200167568578801381187289950224131947696263606835006348476005218770291542733216981952198093212319530727294781070675957002216345189451384820649221017884171659868697357817167274946493084675491734319797253889528914385647884221597796413473094237068933234005433167052722247330322435820702876168958273995122566381855735181369941059679984789728547994829088197403223974918005787419971978489618326782942546894049208238573510891155972821832914620006286776961691066353416221113414394761076622820047092754292470735199429809990037142429035371816344399552048517918179575756874717437700684421250366237641249316743665467474283771832979759151669994534830505161905176548166237829883468649975649221967923816926356187924420875831161942749575253331244266816040552821467353071494180102483132083277919995694384132831414167435588953483196986810794770085939429304073592347774391506153601468875790352132435956222607491159405711164636676891759383890951642999633027280696403261943246803211300291618638801553873782041547664771316175230818039546204394348481437010088325223372394954743373312199265034078872349166571969244821009721457644554562008464086348349356332704488293622840900619101588372413568619226926922661136745526692866892943214449753561861106674662091700049182923009197371804222342618680397358615965567275419796274639539458739281122251636438521759284808899509345880172764936443933886199345390736089272107753435623757476298779421792142606045593975939938310472063579267713684666296549308353314671726204278400126124759206714726951101745857204617709284637121959060229029659835776471646173197959871094937861472062258131929875756876399536231184740944348131258776814162992745181633894941490888890906538444716985081260469568594782188688360049816958157493209926415044630639917593310227825120735442645708957152310775837246205803224072350261885476923103493520082263932523544226336883430258215456482842302717872656505535170822634626511518503575766891467978261862905349531917581099878172995882495071516113885370230123711640158375002361811361069629355765222993194452388578823755647492267072716843641966619372794608568899854151876369051490481192164285452625385940245004215180357690128224438863751342114924035517444490821061777989192813713772349850469328212459793623929866459791099213608175438550406411106997301896082335424299527377891325733029788687838215225473630926281739050076173914696934158462533352958254667753415150221548459879148782792231699906608500572305703348826898894326866024094478057416605796219558072864533720003544898688531932772662597609448582677374236245454415074744420883372737948833760391443241554672156785435284067417763632361766146128925159402278547785146584382359226431172341491267111152636982146375328676733589829550173402521454043367118353211429629349662233603497247014942935957245274698760500205563119694876837996127670153328093100750473495205840105864366906915275520005938547392448674187594389095843398392549881764225258918889384957717789740951084778222252670748652186930732687627656342964719146333185417661933312752183843133764111367249936872187995555085149191226439740610822218295244524495945040989162354487585799418971567992977791022312174363569976181630252327676965491394241555329953351727474304939956293685393457666965396091226553702164953555382037762010792781905081134512409796472904452213302067053917960221662804423985699133513196673987635137890394438376253792012970379583499674972046057938967558826806552347933915213786267345383074904253391601026696258076616066896112345847948078852267512176123800751321526619813597224009193906964178080573326765875384430434515078367347402782635495714438728113686254961523409658855102504208556853271263089408157903675611986349554545869960677809092645185876727128984614374772633420296602115776105784209693039479004948650841439265812448778361873299714459300477383161831719679092394057942631829819390560486531576496322218685990181420006353747992456738254920702396255836492198979384065853893045698118909033211968255451465993482666801097486618611742464734457390686654084649884380582534818938619477696123978339594882432077336203335179988276285383727177848425254418565104518134378036488044820433925603298480066959341339156537937254180834582736053953496478542871060504791512010204924222611307279544802059874375553493712581759248295094917862873914388893554449295984809423099454536081021862046747377815397880365227832484178652979174155589675842205345504724940354275091230722796882516047230020414419646349162261931455735759567770804435558662078412641684520043068904037500977587765532628958393861690321553471782301726482823802154188034350458916047526391541561170390853968727991822484973873276139492570640874715483754917699762298426906234122884232124504451287205564741510776226915723142273557307488333247792622944811466380607132622483369012557897414100583416463264406567031157605265815700299462176608186832143028548567682025763126230513694374301453349221213325217075650798534836265096769700619012812915057815180041987008016335133238658837515503845173063886117105003053902933216540146825965600676750714704634538718932753862297404367220949546720993320312991425285910589907774648186798575540785853984726987674160604920841131286574270777755972703185207548922784066869726828796047398261304221856021388560545614166119699716071966133396168244334181165349991381354754858346893718649991113890450485971573725767120549518025243749834694720626332822596549053588349243203735935381919098562310071293490877796540318783984441092114811205522227783018427240523133154903662153675067640549305833335811887044624385348698283837396077663843111589957217557271578962159615205583410013262390754279572604799535127455784003540444211227686032548839557701873656261310014065241098455387888857601314598738634522620940964818392974748600732228859898724200989048704119816785479330042937279966086730868318670364424738811273357917715539202260545847025589542583476384759704020968804922072020484529274074701829349540368434455166013392991565077403737435188461243511198218008366145269650825789664862231580180925567348150497375456840695282082050019712064175342382460512738738502787410761557292820284301067654986333697735622742302816531768324571691919400142692752774435739401359964860831127632009235646510481153534563248666176848396406734618702317747421778099814928020185792662592494984895576391285507352307797396469181519140887371486091695453692691669655121341358152489576429514757377734201659170159445175067891803250951115121572359838491728572241485310324036586236368218372022070059155071680455986195872381994624319190475594567437151903667538149078924562044368287269718961306776454019188350800009623111309585485458940319664809142284434463180184334542413630180354899630329795282870823001992585712622636681728973196851085315588921597058261729675435098552449222163601053467964151169234998078361072171251022371789232452860165299651620988314747523296774793964956570096612723817977397208820942607602480514199464550106805181414130197884154684272371457773637027409438061857611276364669648760355279279361043187060149994903488909375752911759498580344026002475675306275669749024711562922324739090772086492566434813709918500130898831004087656907435287183218372246464300316505574562281364035160371171181651181215324073972390293991262009163919388527451929661360603310472341395091899788901844528535835436735248809474111174586293756342625605233584636640134426114156247820210928420584735154764395491862539954789335871840580659110735052147644465755910623951607135438662375940609484880125233456971025900781663340361435658011873811430973336853052037191509265838318245623512675613128120093255299487300425707915398882462108883542184970302774866139016341078474275740317119637623853057948639530868883476668761876998573237704026184547161779022945603245013094248484027850181653239041902605827812494493600990181501377290291614201364607781851887271122026336859161131756172836446280813602784613421096486371403501485193780934250390410610786449734134291311920089243352491443827766312391454344771141029239146302025035574306544100324467655237077629552916713444466865439904516104617029102042400311261206955132423614353654932079237105934613280980885886982161298155690176332821814713007600435290651298737454401014368695122276920329593555178488172182542461976649447628335176049889781307395095693143977544845575900369978501813521509522395662468845686600906332321734851093120756252375346603084533460244027099418529111302920816997114411076167807844897114407036544764305008731110906525476149150118738462778957369732757241749946077288051887142955263095162311266894090611712166542486112874055839259190289262027509735756551482232592677070160895091261520177770211128308655032346537554588269858035746650568620725974430424156448676849217143746211139189347103747687400606027093794599355136129133788645450818237155093299755298187373158508508966398719809938813031199171492750686840413325009349053038646993755977841964777233685810502154618043602225318296084173021352564174516237642791406013326593790230928075935419467262436285063049647276222105991454239182096176668133679656432999534930066178095489615669960087157665822078123424769229304317827009205705216838763192943337500736354263009055672462182894137651153592146921023987569945773557636917931699195398316304516810071651884666598223122986559481309700835894261836900528448926142594974075890924540167217094974187123206847255928597162651824311461301315667449613009966383647282527410294912107798830961106504373014917571135491149629287654417278075724728289740915092508216223828652174894156353720450059214311980349853117702193146613342853848308309734646164159932651080999148160232659134138465653623303105076643951499281341992996406684967450036090738994041200006675429555150163174066838799693728070651853194987766229095152108444360506053598325448344085394565686084170412065091041896534124506991758817016857779614712621184763165562312799660763985806981237518734256328681031851932583858949407518850230516275543019216439587041478603931644991130449771813252183188040138219814154629597424769865251729950644089714358790262589529606930669800651176541668651332336611218792730586479824075113457056849397469212288471610077775177193628045922120468949546405747526832745553954912831193729316574764323109462459368000547971463569041186483312957397030370115953905514080324786564587774694825421891869914024095664444225501729633895204079392170766859465364696132769925636186851532448805638212476440998256266667884992621972340116483760396277279503626450392134885068059955826722116008943951991103074388463044204547300393429920834513055133433454929342413924658545530046895782917024323923300556054930020119987772030082089387478252558375614310282649512872815637508839495470242424922098503359589739444792248276944155458332578296754411274883378610682344854187851104207144532285119788245207173442721013616211594392352488466960078305915438734074942785240146865146207088265542208828070891359167315397363603974597183284326434675192159648095777993342926550030202338231676553956085139050968820571300335118280340910737052262550983825455896691617477114168305672558351030735757493523599062552743277382445547705456037806648312961254433132479094667661904904175107601459410617715136748089550492434716149818084659804975304815078298248105399306909617958772639418652332993794918856860898596252281745169053117523262304628133045441500544734461449146248026789075713480036468364768469759759692039020760046015190995200423745527495645952041454674340948039832179797141860383554023463749708184224094305378762470638585180325947408140221901956360972214635048916944991436084475101657261286030475905838229028201275011681687482585199974660885204920280722983265658928457000518238114339153413637000899258531775582923319756422171303224800413635501571409247706099367437615950858745880710479463835631947799277117827860026001213286784543458798348075773184031315604761284627141518929698664060030587819842124750586915000766563265689781036274604150083986478829140035805041263841348622237054819393260700173820958452403320918327114460276594453690500377397341941273469367134022067202876471890169020544343069265294382537697725779092145442499057971508831668026173286521876693625148185290961601785064534576295842345415694487614384640991248304784242745966659373001414995892301956942541942638073533469363749930077017057768476868767278648765803756247264713557800965133914510114518083957541747451284369518219148398984069247111762484186291490209585887279902471417014007906564721951743168693356951017206974891814935567346795341118749970691867383519642390324677711331950794116829725630761545174094511637974935658929694451986194015183379945331123595773274942573106364085449705900500308386145909855450548671206342322581548937805332671016770556020339063763151267638683145211604918315114341611545621703149907706144522428598735896478910463184614608518964234041724791341238565675961619494606820208991087037724584595688817827406661704765407900974829695011457673155472199146173015403199178947164860004528580196773493384596572502330612461506678854660277980674988831539097423652384569799322817165114820065112837248725074192869482752809243303097179850481373055627570605845038373820070905742829999471519328683361352891046591628458609898823414085521639015066738231848371558426285558143512666151350602970113933700257393733604334305374302935772114303311127643586703207458843526892942005769467041440753233036848254668941169088545910962181737332713402869139687261361882411234023889178074905135055764603559145838082914631193259525872528817190759213697898930683054290890628718715543953265603818608583542012608488112689294925858557326977735948538060974103643961733905756263578650687612329030537158724785233094041286697595471643228683169065494869824204647093031390477306604007368325593345503975587419755846102078106270978002286047616137123801053977332176235354248397510461765108306745271732236739674994658197785470235502963350511583278544036516069762335264306249562976603115005095468251469201842634580933672629449240788500387215677165625249154559837600856082721455748509264812491773861679508963604449232726278323163283668538434708434345263716885539103389971160592941557221839342477950898808746674870663956486994594482408283799650124073561763931749356093421605481940438094975037720295967051426163512197860307081876456932998448524925608117913989330048121719361103735043898714816353912846532330230755218423121809461734463286168743520469301817486663595815225281996780075699573305962996170606648350130382592849458228111004416477574093818821706175997634959782156885153305868895486580096050559394093254741432689905717600508343705300779831136834944389978149196147386338247849222445150900608278573930499692708053868753984212143060775942719184953285171493190891924583232455173268405135097126254532734164246300277657050654027789837567632595720745608463136523869997198766052684805440897545943382025522489382587251480220810596866491278740476996421331761088187212078857464306293458123405551360714306597452844745430523022292608942821710508339839413954838039066910388498296041911764611160745319725126765267494504354874952356589151747127211264708843903748314375601631648844022271917441975804148804312949911338115414193567644309279194640469727736509751167694485679891347539474781249607680280680541187795324455102414577285322097612162661360593291568539896642443871878063797433960680267054607202772076536342201411616044309631361707801492606250062441095308868734080646291850681891691166597598401246319927347961574160244389693655024387806013252630609805253908875103944527930103774085053849158863003934257116329398238344194963051346261020879949687007291702804278695578910165727370550814731334321603707333621499296086410084202061871763976927216433056092096572389442260369557932939165534209112501441986694805534224246014876264329161674673279564791267340324498587950909560630571510428544333749976115746075529166197502813594003444959567913628141670870683860658790442255201554705224317723210673921045002644823965595614576544727849708681057253368475002264909749500657256384944637182253465405527582974162674255191149456474537571493442905968279609491849011633237560867732678947524514715683903335868050694852236142818423541155394705193411568899161650441129741243514026390111282587434835989549699008548780892556111248060372252074271918721066511700455900163249150131382675579779349608267733085109464904197573038640175248971654184672139211446911479296059100574141558097908337533267495019146367868275252632534413178546707361682263578805781695994887577637459688191004179419133875116552521941488949553066692560587399112512961138508758821254545197769954387993664540319404215094930643396270480393125014394600420100638113541903035275440197432340974874298593807601207067107568236430636757090604994482016981623017088192787142844889936307734793193480387904703432679510935254216696062354120666240645885415511172740453061099399125084661800318366201296662849568302782051249344185904195310678386982429530286726984855244999163030318847617410390847398927634579604228098947479646055834040947902900361561535116253317628258149308046445853587245295236651500799152235451875615530399046408356226321112229992231890268942157875553543939162863517829607603470247622993817270846641347499464987207038228199955256035140571938538528774197128821955468457768219745883718296775199489946601315545575554222117722309206326158132556826269680905530169105891387866428181671650713509747774266038250642073875439935119695548943866490851084710795185257207373620021809665588854275484958101777040542765129105684453159651280046298370356631722019717772423980938672231077575083095020713729278528170538809904176899871059272993774715399701933428420646735171964357985685037118292914607232031920718860794083757231610853049922604625449285368638314249710913370051668244602551058471317969051563746420288121270166292470007325297670843149755213270148521282836967456505823826173537537568967031248095384731249733853199751895695417624103859762877403177214385017739800390154239454126809730748763888153808872600269570260405452027115588293218802483498715649609757523927823405894206107108553942710554077023527398255423435892401807621958948622697711183044200630222483022643354549595811483234147359759974465691983968490049948648311231176840500991437871174251248477362055631953772756469949234262207936574713476416736669257618605753819195156753540418931979536949958004326767753591324548776891446850962203854582681391341066879852925298707459082612995284704476824377721616369079705943921626762851107025402200258056514349115240187557322689714910304215882282025841700568237703273653221324594110888051150427887959496843444744328552662585842171641171174085182482087900223721791229580567663021490602046911249329308714131297344957006507331432670971139429154981712479731359482630817557850597583640463372130318420121886286443521735065254483283678990404537608653539634948490026398649524540758199496810695114485402613702490856785958221689752757544436808749082107152554681167137845329805625076364994103694629820213979485160168345132318895684669648408727590237001075682791536758173416118400760734953000678342387524184768919329729198747890793302260835235322724278048250934455201957554450742449355563666174354224292983280217855554325778620716961567479799283953276458803569574857670639050086854716934875755771534343443000377078682951088556994245034726575903378217200506729728018887089536701709841779686310596948775032534816418669726455616415558437923377212389241275186942682945411758479128396923583274719271892587690927150368169650465434399951832182098406342880235048459362097742525364782829939741190504671290155891184953010452128368912538646418716117929084209296625892460826949270802199752258988521473887382178761236094280383086502425088639426849562014849391010024744089460822296209636046646244569036319690599252334360852707660940404716672180763416441808785227347411309188591195619685118370262792647462589596690215057905848590945137981239987184314775738973737911585901961934063478263848789189224159749178076860001686440742190627663381365075092784165179338696828841799792784695943378753362747500512587927957861137302199845098087508020922457778250243606739687519714443653639584708753112676373435614708004353264314947238237266562953268037803492443340386736636330776643985076567683895386917034667843646904902170252570420659093328517338574905904886693516035953468103490920222082185530762921751654614519807565014402069782065189537357661857446591721514212607739737096559983128085876002742977289226335330916378373080450058462255657975701888222774438153372712571804019293726179362684099944753833472582975724591988734728550044679273242590688124085120492438818340481038880624417855175298805269400147549895557087659046613720029102269250424986844322685549373364659431113553358176720445199962792869036727713403145297998474733235392945511776877667158989694167097909202514255567747860313624022674471468643119169377457378496989295796499021784699948979737170385741982275792537378927972761119909175852954142643804727684686980351272570135916823825658368572874324109374436761201584116879374655094967519624229530879316913940302327309195278864415433490437903322638979876515362931358607919810566753600242596672895436621488905944349375180406824966729548540518026377697719805040468472640543116840177893582525099495247725638307532503912800743885358961486091537730128316931643939990206831511998385385004124431125262340564913185184073980789770902376768550971909266341403874369536052384898616141432365363646320510553201647787946113350923159556141700175175996905106318588761993431981422025874685356329559876343273731648465187075956062207124126589610371979215846545285047701929090365809768931996194666767700330484111022504714993784135375976355409258843435563405534572151169610835279412915413567132910454089102306807570345113756259729579861680062841407492480621765993834531667640867045751265085986112289206417288743537919269646888892799933225587465426180184563703542347481212980511722888302444961046843134423945344839190329328234360499503410576997033378302204011065127728438834656191290552492401594760457355982286867594270698712129520193667112661850059352784436175867529141459841779765976664197469701384409449778213724121121141725616959685147293355620838263392087961944599364856088783904964386528848410390238030075701759082537988253381906479331941278626473528025304320046781084470120025220192493181827914779812073508776280285563632701090742273281430645268121232978814456337957272251328590958331787017859522321192071360086890624714671620003918882492768285301210972523846881568150666407709946105331838507191843957024670915856557533008875979164675497831276435400554494676056110030839744246695980325259869615234885720703100388278985132488746252347898439386576518372084089118484177479895130603942382551328714145280563600139218627178088061552681508541161631144138967719402575708304056557793070868794819572056982540623586468217954064449358834008382784471427092531637948527723633823193448188338036943323022836977209156515089076513166425200182236707346491771189509874819988982322496778120819704442365344543700746830808675136352709266463870347230824195437569900894273497702679634367338707049857284844851650965344326469335370797841553944767890278429057554876933767732689165557880532757550361397640592689602868784350876936467889391255356566829924519563165858184802645930945340766473239479553163339292627837531223112100376201697308472906551239757013379897834339200833825227942337572406571632573080074796667661667325787340590743473390741612534655963830081174164073950631613162536870702606196826281684311598259063289117552002218991500692605684991872152083198755399049035414820927734862672673987896258389027127147012083364204767451942417247755527809984658113728830104717820583076135755859715718533910079873009634418084366553743004751110978379687615157526402039526670047980781296055746727700704140085721305942078686141045016536024799246607806387680296266316363475372881713669921021490330996736567673731455709438449337834580345915848764410741253835800856001728355935049458439329777148101146517399842321668274614968709121167300462969404623242175603034454005815512948666749777757173687105734061014005858676542988382051682481764587659603492336158304540417965967040789359218203998581770489578960002219904249045437389952959945607025404537218951473078332044067046571886395570103367965426243235552877917532713510211365956562791338811239245315194980725865918443917510716246182985582411725900757408488012358514161358794032528446602497767801454653788804783553789489880809189977202435900743056090648731323227211319718965591426312499292297232249915488790305638446437343252263583774986187953064354568871495273866066648873443370269010323217844935771943028077918986545710619514981856091733906002014564465578530973238575171298068807029003411336381901126478238845701303428989036011943423146455620394656458769808932943026118395105030101386635129200543854860092589667891575097666144468145508362630542265277770061268280170854719723599497878090361130825465637378062547656805620879811879447714788842479947806755154134614822612752999660350334313015041721459827398559075719016861750597529121441916177352419735264533330837117908302146272102276073263020007081727730807403489378050438294613261304105473818181948728630573412289986828917303548709297550788524844397354147550294715599039601790828443331165767311327931370688036260293822899972689270754632001057391027319360124230725231267985330098608058251560033730671452637931629109871642913705907123978763616647922207720821737042759550151619209535285619241526551488788080489232778851410187673332515429967766718067571502376954306181184957388631651566382941374622686644741554435547893704504382586865132546395429695839993455622111471618218021131176047999095297389795095282306994234754724851664606657425063913877898640050980444848019225568195264026601232750536504750653777476352040903150776392003777601132045035539467955317144901393022373319144895439917924303788874050722424971908978246032274551742650401899331164467725532972589699784369762631731795425585091451326196035221834316341361447261234175765274561354847546253088427114418042433827532023584169354408851282173449453632392631082344520159082660456792509629921569087161115176564114936277501303342440637659695085737015111647722818294072468341490148818157544300263336399468174086780539341610040674712429474937010288763442070484326699750965872144883441950675734091950505256439887557413811548776227858212126216592821886417429999522820229034218747745116294051605263531602653252525879175400373484202111717024566760438753114969670711091045287563175797158054392496627414047844481049509336326781775399268153183314158108961767419797521754401357827828232615630667442577559886278929715563924685545592622307804525287102121500824024069709817864894510818350065407152178925718613440503416764206509400588716194865097911188687658421438008654511251164617162623962286435204048650193241970743260576204772696100873784858456188901214567924123621668994087268625768856899406043929024221528672261309119844573006895873267727821503122800183780866529742442352160379431931696518376175426263224567845600141338273904318306522512599136754043594222439688425674987440594503829113123470934273506159954726539844884287200420269512782209851581386163614555487310426753637948708703641605050182129273968101487494335428636273982282977554162968714206862564818508609219140960220256048449403845704269273618959813026770554499062553965970629255184585949000606722636517188177721905659172819819229572826488756620838845442815891479528547066278525660086614691377540202585982594699047837394252970670929473619555597514687687787006110552003999948700396958426144402795417640819810725624865116601381478798341239724203745006784154020032965356427609567655800946239256302879649823259571555301172544374488365512971423798184955631097802402241907333742498772425952136719277665159910777858327141759217604987419505459214683214029237971630786776931602881705921123355522137928380271514133488045523797297190597103555717668726935742519947370654516455977809572939997150512678451182243478925820629774892895156691893061480842113461680863850403156520705770285612443136706937353524342590890227405548087923445011202533663713553556310088204519666611303642525850675136223009297117345893095027727223205278194415283216470367791380684433151404566490202543280743364002368126266057509690666521153101900314331893954709141911682965828481226377905768406060752746126201077479077876355049565903664404488992720574302949513124781342513654926243579241383435372204575050839684787499655276489738690685801849892582407032479275803763826945987253314243557778518893514605539726082274201000365065926569110813990342369330968952282768436953601659745078577201016329923579893193460344166796965387269386570451396731178462728379207703124872592461431048785194679526436685969734315297674709972687080054328672913539458828562573273244652470511251502170650123375644603629990797666416932240480678438120476334071936386305187424995038939811715866198931396035721874107561350478395450335226528824695675476776045141607307826683666725497612982457441160096934825528787682638028654385668849003223278211887051772339690595067275762542882077341299578004290648771318435944701377858368792151619479067743158279297895762295129828267527508759059096776179117272170841252360845430830254611112846328933845490368990211458535058827089333099350349556096435226683671892548892912924665615203152827071350861721771579281741775781767905131863705364764334713994274600442154389909438558746566372516144368318418534202315784182799385280481673246139875455125283522231456831460731528778261520601175372618999010737837657685609911426343877490382786636347306668643976689672056583158762791712817325287499242714794348264407418230389447748892992143330007335290773484806538755306262632088644816025230286203368897045403652208369962050505982374360414302957197465049169828006133743865336864115584270015062280528963752197724546672178362943435176434141022538984973562485710226023585354583830524027249194660548263874157187652593075942660837580973951158741347448502951063526779417799442085475163526633759261602525294889992972757153266805196566912027768037016916280580613561233494943350956139308636598128751532143578053053071534063144860022918892326601123222351664616269052763767374312576270239270004954797722574838268593161785246587751556791415487567996520385482215170482943415233069780937855205683108943701500714568806981006906157342123894498341870028423800381726383852250502105814200590939874911068058448723449645681281401196057208836342995567967470312575182524122415512012144924069020346790963299620869587764285193638352928225656000985598923426296713696668217527804454652844082015663339718450806198998060041695378989441834536689786082236677498783202084311432376646607067932158975015382131029409777479793992656651478379544099939491550457598337191513515555044467789700365510667035312233945002456553622630458557511318028286976559362564309394350607869389563205882346709974573558052728970723275871056994868597363801984633694858067094071620950236150810936673397413542895427607337710783846150989753370646665265416293226004591375183819528889229854561022597353991943912453875618422865711284847716399140934662911017000406170427230459013959352679622473303493149650333722521238309185119412177576101596067529792307770289517901459008288353828867578524570428774782966365370781097160290381163050815855714045082880319543109236804044182797091646342315150596682167351413777110678269851627499860650228517612219514859696687902742942509893726307293347773049106324681494492930571655574253041354050375802158818878279224919443149072813616051662078492362371798882715938326372988990583351861303722182300101773997825330614710226363206082898783759274258846605421481727383926433612245370524681168714592897721129833046199368995455960966036761904801122701848946871462121033711378795858511618993427683997161555550564348619949337950634804477729984643104741460213923951157782809628362966321911538449434040219570111865654387895785575645084294187886702871804349560168436671029443664650411186210940749577766735762803925811970050886900693352325748383615358033601800683967056628917058443638570981729596382402811246227826407212035385041753006130932759345640524309771983535444666662599654194454295215005888371427034329015502540779803724644393248295275507277134474187303850839054461800691736946624451874554508437259784667763846846081436813645863011585365556495039580797274822360201732326978013796736162914108905755036734690775182264503731726478991584940159746727165235094715591835020002088617046732768867546648294493785505262371108243164175026586356011416132930344621133355366709868381385395205383964408415543573650489696634440172583505813902359689479135799120603154779712073185923007441480810758079959481601309302701808957833431233973713306995922354293795572907204589193280571998042616742478136945079488676854397338979739992375854834778572947949758793942269092012439267957528522333464636754942842416144398721889271241178471293565376902904900714810602018371074048607676315518645112038477852820519958218675157820334451227083150478330365656056775472289428473727722569030021410191674596567770117423246392709380416923130711723981118427562708090369384960512151669704453857494468266431053923557184017524131363012157794619104995938908553686855713192027419348201122745258398657319473506152110187891022206001424941524108742315269050704135603922789119874686848148946764887971684237677636133374920739560525980568539654343553876671713390995706176495266640314322839878482074841776175533426079554819559319581435989604932163211970864434064751647009167210579703096088451619776078985793140714463569803562738158898397824683467724610970476063116064479779162610974740448531923715318420265924752615435169648573511836728313164241203832010303064734793594018054928548087067040447400977887848271975903285888629979047432100996489720834630552887391097720530775975436662778691215553479730413988068041227829329794215707628606721544421310058960181992457183776792882832249265665485586159182015570325299533981662506243606923539722360001062388803204797790715839757878978848067168198675771511088591862067439586992768072796026885671986782304438747754913675313324295034141344568314945046204907910468661167443101723132220963681779157561456416464625525469758701942152441323479742258255291809729013494317912488253753390030833952729649346902587844000089318817136258931604676247988335665110527045018628883573441881034564610734839053687729458688410405850993119162798012093515628073309595652383280955482090411915249772811868974519945861974295691182758770166721257937356562919423072236099239813368444824226896648578828108396825654710183879167857763779643895712892828457229204363990274971601519340148350321302624948145168398640973174541775128959434277027079219960906009809654396524775235469700282651403019464682054632532948535768977439161555735109206391041133539926788433245214111735002670305439894230150416147308937512746088305966455680651002655469633676239691872748164212670492692633053375206522824891627403825149199073558035620676024003775412473570397128067979089318302518170179696755105992097670335992230913700170110914977264220967951727153348537811441502812031258213023936003039895374071264502655275344734513203429374674153619533933242321510886225979889425566335794665278640139239287823312924169395702678866786271986961760442596295852105097862234252611019371506864664522779986176502452228897440383031169499343962687158746538016384069813795812243324069919617921312943742305725992722071497354187627113528453122476801840398603970018999764028061487710782353624112201705008891371779652211254462098140382919542353325642215787349904733245718647113584928076719435805997358009981374665452100373054873038492847229275182033790111456885050653473680751386105227945362303226293698516316351937481464429028981695355497438801955868364997353605479897987152469422762824380111582538651777921109685841256491592770982226610904636555928804871071707571356163041069974520652638639504183578877993431850076511094945082752569679780341636965926326187653335184927967045083213026893847025114732845674354568789651468629945240528206829668718212691761417489433489376581921307658206425563378285202282603975105741889897615842479821143051968599457527289097500456645717249460520326481483679652892895885072990034137119139536659247919477231576487042210808623819329272689656343231548844715641833592036727251376550422303056172404246357034157221434087792436830432912207011646570270869831768232765711081973922164338484906115483822299511834396432956622354191586482046090982542622001395097415862653224805854875018054804648923976770430237266547608939967987277509090362541792044472626784703071783884431815871216833717855358103524871036446594495511418799429206328206768478181407520454103171820788218739519991768752141762884392122145373127723511907474131502924603101633551632358347297229895827806385371495245837611285696776663756359645273120846920377709669841413443599373440414405869826407076925097500612237855331306012775320592509429839741497956059113037705989759898854484579486382095959203853986955410351321192908802523702376392204656857557980007585539291754629317770335873679991951705128341889647183474173693881436183389113788573735109619658074518405647787192076156759569065029586916134885968013598091677121502895722636310930072346013897380609716858001559471977585533187727205413103635073857657211347224476963201026960539216539143990517905142362703212659704863732776898894396794230140809949608271840988066444753690346343946896718540876812325673045187973562815142539694813167555873174440526954219813405308115173511465708075319433275528607878080256170191904477682497017047774338212668174474146912530736255203082234532140077958561869156963903310975126158712878315581066215964625599829113297274491602617743886811098833775454237150519139456365323854023458679964622842178123321249670033037424067173946716012581317157725754802064063330364182908313226712238086308852111929911409237800814176940078170062509439717686801448666759879253088461177742681659257291028211098287798581131273002223010659216570844198901732610054709576278626559690193448456889566391208901501228973297103304417452202818576947884992543172134917132524491182563227903672908596958968731101671511111505427765515624293693993607113197549442225916949819930992932077990400826701562799839373855267369071498379491006225359987876764041717529085100532900488984864987296491880008980910281044106766793309745010159363705745143129161534691925343094146314907627968827852581523993320984825988762521939822575789266370345449761334028984872370294011744351023744401718257375124752694644544069938070418939333520125704698700697763316288732645128323290006075856540928389151543506501493599874671309384490272156641048380981098071322805004046779051017063427921581759554160548535523167573400347683077186518625782786239456370253349832344784992811336918428589581114952535770075706973858420541825749942857598871667057173242812294628259787514364073818448888952335580755675887564673967414292798332047951174606425252516090057509221098068311362730851680393854566130082040205305238993375929828764535756973323248584055931549015729256348820122790754280120153311777957258989284113404057674878546073191718551175721564731014778147401218978379336394234648307682207756314397850953539080875804911632619669186484255039038560753670451894175761360102404591139347512599639911879957653213433240630873110051053030434522221584010377409314671159614843284630274260065321683679674533560904591200874450767872505209047263715908664975173134284112954143586490971633465745141785522640159535015052059930980754680640690258882067247242133925035806059844192633721814306339239312755452685845181646639386358699754740733499602887830993453706288531557381088202754099671486916421599365935125316505914374843511871159882681872067160326647837023816113374400108901069126423009041825785983800991031854434008326677460783050663122934386192004052475640842182688277234382196163479324782994945558092475731632509624420042699076057777217901256146108366449533366493844404369661206092029117869939823847909715195599988297098932274094930273362619299314129166846333186631410279876203093626517991966454123808778186896159044665577586965359099830540331355185735930203722640819633175209592319088254534004584626110208399805179306167438135685346512809144615346720150741070424613428051548939842220130903133409476763129601887633266493544239085961075847732775993544896135691852064663350755661961284444212360788953380031718584603415442800977858906587930781984531352534754842176644938516260881201411209802317515922572558443274989409310275256308471883677498478157441586695376173322197512787124970588190729812964753085811151625095513512542004452127389922662430017851392992353516405248138077716651087741183756818942666357977570970444689955684665879897718626730749982319353145691833440518668441582472918543039048927044015336869977353377895034483333979839379216628989197797515373906812117552297172940603573452973949545289605008188499575426019066852088160117519300473613067590031226774757757162641540068463290615693033726966732655452829268888130590743305760618140276777865930682117216410538662114514402904656919422185734094889146427297503760666902070467034981362252647992668735912944064455737679815366642512009112915038015776526600031125229849591789727737116869484782520154557524248584890665210119884868592348586756871832584467058094435334486351645308618601539664174198205661152148525654420508552161372091675911346233154158478974293951134374561157753917776384810224411951125992586398060891457716203984854462138572589973165998963230952386940123754693838675309480634521838814012405453632449463624442634026498970509525614652601803626551615421826473168959550507141454048259671495918861806976309155808583707451385057480002480791242986098176115511508297517402170898237266273523872765444680618878327647821266472786136407616939126710748160804548245427365899377868227045733320999803862229473373783276612664118638302515218566713918476725624533513898125197596973221600547063484496409410844105727532439910271677531830764746239922208291020365299477453217105670408707105428473159280352727966325057234169741023096182615789941608661191226665005426418393889440115888662635444985466944798148437990616200744703632562259814248989548053512045604259037466183444995400566330094842384030511477213650166153156906623130403887564192194226067350065638388116970168710044101449905899516196784540241083309323959371091175507931351313570946898700698967224909241844502306471309616107842710485142875565470954710089304409363656513792349862636421488514201317803730245850489843742806304306214042100159887677481686137695770443897139367925074925770988936808967245448211055215390482316374926304407949363474586579227014341874008831401266344247847888989757079900962062567758798096514761569166151205333547356874343861780177896687163621100621948894097892070753286038002622650982211719885012223906357177368676050221304149188922156612669983958187345636286164083726255296462149244316412359794013071913800587867774896731256272503252229561317292098339145830097253504079508556154087335296360716071383931009203524595153407548055203766180579979684244437679351891803754220920186543612273638600214161942566922895792303036954501843397131203132255517495727960761653068008580931565380074986540790269328005203498446835537607248035646791883006459897359231941364872881100235002369342129704392420637257291459784867608563192878112805995283977978319865022274120820593651755996386896644701509356490872489842521682468152561981369766633707133281321411246089450838990851588899495618294921851490048761996981460594862504823625313175365549536118683490879610105213859423589594088361151897523079355672400369558680597971992777948817205186684418665582457036751416981992388693591165349588592516251683988143938484163304931426713290577182151561430782495573485820221810917173323415733234006734517331133096416376478536325131076947137213610845500794826499411433691596495248391574447845858276986535882806732882639520514071539687572771284515807314889213228681916903218808680311948293449806696474584929606864351920878861949453515625512234574415420450109948357708994437321976820851406318396255819870715838062545871420264466486351804637002686501736789414290111259968213984700647992505818912951739334340366263470724834169080370391092438877571654168950127830447251438982819440145796994662114737419439034703927813375360125128561420530454088743079014087324879153410310276486199974691289238772346192857609005682968933548266430833442805499690822250439968282045352480523978786757558684768539912134330219900349852218490807736611772946884896313385999845957842837130963794301871341065555649196670374877449394199487327523850553559707809805072653006813267648222723414336650428344739469403263020898636760589173085244204698889388551427320847650903575469326107463404719696729238627683161840839712222250767673020441116905267742684488912393728771233282935873396135215783039746428431670027340838966676774956833199676031910255654128701252264244480994989603823315929339543484176634389871822980982975500784111130723574025932370033871164446713436798939309270287236871249516121926826245238427095054191948303896523780979679075025909736627795390960760451287739078100041248796147640444605499483475683709170597113556350205467189701129223063424209470624548982670220322170724527671234570039235810903141899721460569114880168627622994435463375322037694252878315247652360451297297563904048181341726731862036260383908728733984747091125018619401752200644520796119125172125222562997941036633248298377994816914669601856631599563160964751924517258483891516936444815802311570755913859907112286504017706823897830805770437728603362079095970518590870735271049209528407277240183880691477539891220148815013713727793851825921074688593688596645031724278858289168750976002501098962529377839865484520855364276856381789564769534920301048994505169226390146094627660889323417787280002767467391671311652641435533556627122365309415383631301987344961994238252974886121869420003599932349344949701171242881218231520845421950255671214752747677788030842717461436224717085196504081416777783253457752773154632426294550095836192505840285709569111904956908438771259262078432641189541778914006843246755554770818014071586776158483810604565562096136084194770858084248900189976248954340965104952597407865686862895344495034669842365930060288243284350160847554962791718531690664943197011352732918440287410031789553558714368955107361052504638767094572121656789593819510709632380329118097033612788772742608571623616386372449942877951672169007657473613065032684739075394151806833693923103133644323302461620156614656595296379562240190433110856891514015237412503019644963931710499070253056490303663844343012185268933401374577035437764055757633880705823749111179679933215802355333219168284933639029901522967495408810467276114655323924551062963508055016411018944910737547604157720001842291371859726892787271286656693701052874283648587929651200456793778265050503303787907894980533099370072953954303200168090654886873215774153561742792636760826187679337879872427095610901011001386189632760842513586683886497573425421195700514026537992405716350963167762584770054191367305511099103374922414409935665968790740807819244120334170950064698736148848259584092938108861723751594429995847902286144238492132164221570187628248085065334715596490986907612756747551651611265924341993971040850821442763277009546654875333466881664167016105732728274180655331528818766364876691752375912595557650370949493716656768218858736937021853351240726511516950525001765790092921850019579101415630616880422948972422405241476496580021083695537073674791836232005875091913613539720601886318297672985901237917350943475042363524027821828955306278831776799488389273794156219133365975277889047765482077243941000832471937444548400213503266393066170366471458009187014787769349790596307351871767586795064144132878598276036637716604823969151754258831933420785198543589328224774725308754523376138268687837402341200039963174076317979530972296904761529912238835071456891536793032577212074105341073400372011516028561400678213134928421687758865220067222767436015530213650258838647667874252654124957857727032338679636187532523968575611711504774977064597058118108239092110560981607043324325163060755515965818670555181485795276940939179344594638969558044057041277017308630597303582567976643435761914090530498895162262580441408636408468374812243985601841839229216407325698616120388735716873666531811892545467717966131668518276297778542801614692371632021283156100062174530700283928306089091066107855468510781325957862648448696701990387541372926865513519313325810732413368552718539775400530346490143730910108755812048283795323949393102043512239743699609043518968756349225306708616146033430720403006792936284311275561291988757715369651646801266773749458513044326844784712923822011923317095994800145679509964086338424837069561032967638153018142790583360252865277804885374045519912810538190460041276973393521719267563458293352189727484182131914485171426887597002371572985526066465014726565399597068726820918751031925373452864798393860374706546882573456457248917401231345778231980205772426723324219317936501652679892366985326014043419461147090934296145909890102390894298181983325545911951902222792222276326212397164853881652251348244765985752605315581856197539220072159988716472777883806919005678706847424335464933335284376318724501156013327817230967895417843336731106995652381529405892357530798271546200130789654347212152375691814788803758663894729730543906521617165897067820014905309187394411256090475702130292105851218914349153588628230554320338329017064373504208754028655484367989157912644523110289438080036424218897388339893853862394543984975626762025786555888212061132065866875298288704788867115622877321433573958673942320150680749725891931142951008066392309359760010051295900438237794512984163167013671930662778788372954423165900378095579757891332530801727940075745262266778931022056420291558296726455057512597885294255655041001959084175066357986070175123813274847859390916612022611580465289821171086120537535091692759073451298327642701169671848963026854413121282501825510800120078948034269103985122584660952142437638626001706449814803892138208923993121298483450490362787381137962545524877054564444770879408095956861510128111970385709448489072146326978483067092188727368045624910110140273668129608583503548517411893189947369946626403711354867001264163038393580618461107885192674264226262788436484586063396436420468278105780827232817365578069766872381635421480353837165195415129603184018290068889731676475106028443960320815245862034251906766249953726120088416047684319117749573703713908174612524249971497857657760737105484777893412677323645096028561748276593769812145165648459229918818036521475984783652627655540132279923609447560764665452068165778155492869843081753748087488470222149827206230796489223029168614000912599756394242451119576096193761525909365697681409042526979982023602701714159425419452010677282990399437417464465421637100806795887595877144978960159631895091886330421555292912516373823042402197914193358056770828103092745132338870199498049657003711207178706669225589647252017363923073013536091706089982186834704914967199965834773982826678322038744544936741796772707459518323564619960945318844572559838840136054722626324010959201390057459780498153488788037328110760173315237053322669684227456655190826869249822431872849255901523039505725554705120364292490879978491506848730734218814866500922523118029919972835687011983012573418288084172324388510653888953066014487412228072561973818672153621506885823858270376494986358490941187523547245463312407232090035726843377316435720130798967735330837362092108483206336284248562467001210607581638407785880180797637522146812767084357559576232695733829398042230832966373611723004174291958770693636196378465324421606944644707328172361928744350483286208256129639405560917141188622707722176549782736159236439413031890041632041713076785864074306529284472724102922965225182246840834945605760768403750390742094081611903570725665538777809352713694448273318405424147482682895121845599418904393302310431338711964059375064626072243549952721321869136650529479384434128444612357490012449834096651254830324792131724246944401570731561652759467001196280369453738562384988015875810509531153531419787905295604332772249201755649867333940549430864659196042990639999107006657436925062410155604518102240940529505125086472204123041486032349205746997315699803111449494004458978410711169790463063339460393673912484454808886417522157196257113010889002005213433012175226704764813256706016435771942945127009472750326168301386377747929694243181277764581923814215410855541282626227542157857641326815874611078746518130272852107050135940168645620449733797040436824057112091209492849598732045949687876001264198719639442765602869637934811634450626176947144902657292574694027369786194271987077232029886500020589994515687413895294359513921259735940068620782230959583855142313381171066304140649538563970278414539509120556498466579822466263953811281117127313670915095051951901729470664316811920293200998749869277816846667379114476516819257640052236749782751655091105225993748304598587379786678566657592263415916351549999938218306217059464846653882411724165019436597712045102076697039557206408776418269218949286279167580653677543331512731340056981769939750422537533824059634042917042736321992454107674278390919261147998107306129899740455463611127764897951506757776907628586977959443901560715781576257269091688992746814373459073215726595680969238983926624449172485298664779185475372112953791554609317839588084964312267408919019483121864050802979053989020825280661579554640023986061261977209048298190350137286162788609376148172493244769800216600603228940277029499507236189157651764850959067123728495666539938499779160825301247975642798886549629015472678401302565527522278487919170567488070987836659325365080368640461383610808083375727380540882315985768308169256930130288067062368794006751402173562433228508101344285289613944552572948125595944565445979033141678301173837570926282549194551958446165674862263542481384601692726715200771872284803276451660785473994626678924608396198942604425396758369471645171753396681878948043263509601068700546800191501939147902255996241333566804598647166140982937784194403935657166177687910442022838982690746939448656466121932199039756454541871021925933833306123875200974934519407209228016674479405157833174322513240165770397545698553914408941838733989880802899486323352300218895362566548727902613222162083160596211138303603237556405416327104578939226568580919343179065042313137994522608039099410859329453074915596551612956495500728302353706842338057062180142082857047376347981903728868676116373804460557554767077680459495468775408377233096320669355300290618017636175551770106890103781369405812324796939918234592213500885663469195637302644914766849122765086000984720717751009851306627452909476585307065435087322110155298328860541058190525343205727111035396485634481562858579882933908285600490891156333827146607560375399533137888827536620953312878718695732027885448553676089863011563553321693629999801390022132522119530548486955728819481291242394359022970312364145534031650439748303712926773613254052505111011793371663024056200537797721341589085209052007018514524963801263560408628045291052897930353278945567983646895050934605818474964165802729719431355766308570245611550018584809274748267719751861812770254645128021798917913162735758042334777427115272974243736875107818013452904353652118551571851017951672334858582644882044980213708468668272439242350684210766046211501254122426366526757026959335768439588117713305415846073623389240381535159538099898995668458320577877891972179088408090761767923824099449061657021755098575171408462328321497300742083253250792971801073136722647471356710000833781961222323533403193817282277166311264644937195652682758018773098674174992099813684497781147801123504480486041437245535140790239463239540128752340772902779080069516479619229121585048202492940332249190558374714239395209199002436105895553184779526278061412365239901812808294862406411193211057275272879029308333164566903614474158994619397897941981778029113797203129416683167668450381187604909050056752827176283983577646457407399089903135796460071680561898353006683842122498015000944867136336960057404837972919166694262257684481327202899628091503305100953312519935376919625057670042383020776144510679185889650215157997103727986309563476665472469426084354930514594178527467178763036660529755508279136028646947622117032208542137948731677374521298750821058456583069289870524914394493474910581090121960454946708541406832286177111548728956076141585580374521696047141657352096218001221638348897753358864292120448392840429675287701408982817774581539202644889041654929812520318971693134146075292768016022304877941722934294276653474576813714840822222590938008119545632027320552411861326644462646990381677692744696255572818943147584355687040166813020059108287839064771549195722330122071065344955925916325466936854640781183658332371069941001874236001067573190838404084942011692764288693307753803240360024656577613288969693261118573763605677779316066696195680352288327636821849120261046548018982614177229897233527940773093841649060677265193200759737904897788353874744255384027855329977924304934352342637099002796460662919593762946212503235304489218578002759355641583400147579881830446095031288000937916170537349251220206778694201526096598025912853486305459522243419817564932691500572266659437877459116090177304002254855473568338514020017564654403494655658495874465307412525781445811231583447631805358544072513903164810805094721684168665621805279301385268761902673398649378674056065610193114670424229207401356676936189635422742758106772654781537499421684157033208052293719708091893791362411845375597918663474585710010259208358270373988528212111513051325193119498974917316248053654192493174457871232020754561556577751603203683490033222239521972011538954915002635043813691066967116169194452043330203056987658306989796020345048005382903776681952602296982871207788735079463652388108498410202867453373735424190542200127331816692867685948110553552975119403768788143620693457662953587309182504789989185719504797269684178682484204183907231348392704216724242182663537343476499957943908401638195732125986599607494997071003317780241255817194605066976868761283558588789571695887710744507499229274213427964686357954508026933997842791161255551473509782869587813345617637428864074938206153910802886876175011187042595167105291843618472690123110281300273782651536652302472214593133988602804960762041935572652144644884345569622629598438141514540589940586340883555466220162799432238032579509307297539834834711732949558522462574709040206534880308188468674528144573657762040357385038185735796293383420575009996677549582704513060212195082971138920216866728380743813303879864349420450674541220521793640933146338522088257934731717788279585246008816595955049982598231947042676551111305974187424509093320481882276469094399008477263885655206795133875701451273692953606925003601552249362403847166539059208534798091595109607849890605274210472441356674267313598299109830614191653864841514031406315405716845662174070225986144520516036487666567523482927472411193145331338864118601913717835331437437082310611994991197778519737844075757334450521253766118839090710730250376511530124123611147496326149867231104526933549968369547661901496097671797309539043586911431617460877079764302536317768496642808531417225841914768774199041356494504855371070237824118334404712095232911749136853125166983065367772116872269267525296346092854601642352066431932147590295606602766159197743249711135388866184804606295482586938195924052576698794623340925384715068633185115282273461923030098919702769625187815527528881077673663375266933514208092622041136622467336544647553933381209522743801923185599563582342860688547597211706152095563399523546942740537323436969969696629738593294113071149216755441380180689058173158706999067841461079439373062967631767809404765536221614755744537665806220591615200921574492239377439329732723200696272576041084979311596021580780016279931244568703150719232633348129750189186795712065336707128360191362781113258413136188345316113496201433076926849582784360997165749409515997743521979603490354583353517626538527822647039874261544473707886448886464974669959961151457271146171491044702137035640876974910208551135201754116552285901762370666213887535677490256713779750946317568759217709524288493762122526939044367670606470812847712462221395391026263016726078917327953278409011858263183377296502016670809007371289256962519632048514792616060732617288956115617705078281454224896114790020412102622599380144587592414693382840228798769741848482103628000757821312877977222334200676983685135556960400412322580572039174743312202914406913232311107567384692950072620305380579721384058326812912833002473860315524172861285814757660550989982128524014774078370727118702058572013503376824054391098701564373997149779556392769481800255222322633646410375607543382422729974983809483146612378417549450081708826052212743874071912904254060558104766935608431379333721415623954445741386735889721461593818894167205793736694206515640441524223779550254851269047019321243824142991704175419538476241934091860249208837860608585152007929212942167948116742153319078032790754275692285693644337562711029964395713905922033748887587474108547729150391631049323337882008257362653777779310546308738946006740163472872098298612452128350639731005601933880970758918138264128244917358833012183213720330482499380786007140582488825085684928583525962926910701282520131902409361296473533605918976904259345253637720587768966503639254114731516651080086660341352587876640192220476844327132302907316686400348945317526585527175367671189913107353685031682890228209815463546334788345750278976631030658785639102963165022918089311942347883720585047517994652480821518568250766747792516420926359576260647041158954717876218559282590264468123883863837481665476298871160604308319257277753369950613404245398923919004920366672931708645916689786917206061628249012875650988421838102100684617024430004804852948336892875874309340768855030567419396493571205613139988216383164950183194211068525375693981027017121048943291955448486758222874062699669743981437405752746842402489723672641851211272402236055090915097206731502990665213223523211324267024734528915631260459970296845441285381557397009617258300558279963797661216330914040197857900274319976180590176000354583558684412463695811770922428282666673636754808603591042466979060566546400065429247486033496845377976689655694623777700993753230233226002732248071988818500962814333982450125437794620637601807356244223538201332065385814203449920844541590977656647227998570290219199312628145844905830781470291711290130107988167061055544522986708259793934883909508172925795491966264266610754493200883184877872357184003365844988564581302494414606883295136040158878721637074445560148623789203161568764408940202251475568459484974302479453757506576125453133231707774842562876544457915316218989189761371860559905236139339337378154111744575643966210312543397514785233318320315369762998696746054165770598771914202381527152359582724847727593274417737507573559367347028642603010936206993618152288722512705471731844724116347958093647974307834721091766024445531060400037027845993870253407024738701774969111183650567370771757266918070200864661700982151129894756124191264381258954923753503994412946133757872085314232500121031842660413815172417999686449049910808573395706849717725656631663561781020677549078497356403644438268797979250618210011889066351792448355447447600397347207493273755999773515261357817883564128116046063818270348331445105090738391280581613172263959896037127867485726211093309050333996050638446468772013134345025700020144972249210713660713931949086764733613529573280641790533226924877110007125213640601845863946793180952749193870113913114457673318222329234412569207765581407843622159815568104572470182699480429518778022207451004995257527555322145703268770298449909740091052659842658705977817834240657528216069865061110446020274257472048163464079198994732967407912826156944011187328265151399801215414225164292238344412608271057934118757667151885507120722133129069227048286199980724946311008923451242516531579777252987639035117750091983358101550444309734887035041918808092575626962072388031293056394578352959802624050470871485241820787076959939285996972642497449985660832779030731115464708600452192046816634301317548423323988905380628572259797810130512488069189790152552088108608390731519705921020454107356941445262184751894615254432723497940671267456848375382510442679224765434215580750696042062030479139006046489996442691515918712016122746391065352524577251514016002937004449272244344659903651214089087916076751015857755683672870956455131688293709701969169691255046614895773884372004218694998176323452241952206432151142336306869849645439639287113330688124551661161840464512678221500976641990385240930127304351663497828105969349846341163017193760136319656222802673719737348790124417030954415748453799417802453109508968077503583306282124478204200810270229253515578084192179148544777415206505010036436811307555721443872175632685158997295393303624933651079336256419464632995053834413891715671255417326700322967720771263278093085111970841327950024947274003784692902417269610846932179997214782967389013228804177943823819227574680426539213250395641794577091159738597843286870645296191764735196318185073206638468687167811035531855668480973296381749612041237844312764663730287376360799382440623385666056722643219016963774794485368578124961082280527142611469443984775394301984581315696572095457480169938878470908565171113392016589700064747146491345671941079764575169302587837483362426844455978123904485977295012946058960735091402362600941815974655668503823806038069457013478270656377802801639712651110245743726914946115176698722512809665595779819121742725217153290361842086737910394647788053501668999916253710006061185318848294951014731717286150739874956324233633299653052561622506690886925133518395583227790842951282196302829559178984377803056951283092036710009198171087226528508677753077952504352610995017165322440323347823179932835258842498670971881865394161880324442554895936547683964706916403185467883816282628237248483908960069963541640568763770870269548224816629436822084329912428388459626995261480248966012971493173689176361230952171360473534336436034156463773424377424548121985644759474029872683687548025969472348737128763095718353695019709281765131160569250876825086205335658101320382357294105010186518886363885676584080119505952182645831822802577766425294436029123927990535109122916845342640938929312370335119807216205896724096760073337846666514058514962203952455115731770484556092333997135972618879332426144035776386445747368900756996427479808408263676092099022160177661629112632357612976133679359194910634091531021243948095407874207002528036075321114311150077344585701089036866482051761903807295752071897076814785979063318923177572408008967318483625695742603126888609764991591568790285378871463147551125674338761270007934242242342888744407462250302921051519036169045157622964360569546742363266087928420270067973361292220362100106498165630160825591750765306163568891141578747618902447157315919065147990022050842156623280722495867870015433812753782407945808464226228993372072651870206003960612405013724406057453062458893276124797755177042506866429834694807080196658345607533918390069919786204127751235902727358968368689993750311822829504705270345729824686356033644974817337702088406052938820336799846189334263362547425661373448420873205312993996645463962319219358053553447516734768422459421310541391751472302385474904728269562717572481283054365453428431256118542618267829461283893583533033306635220450521638302885317171033579901950695138455623872198188935075483661768395576285906513323021013175940378549316393982569838912756685004239134603520790129419089746155950138806587022806239815853617889947256525976790637827147710486601433729766080649281883435084717354718901497491599462372091255610522021536105532126670240749357608814102710339192322910383925629016905195970429264408154472944926372035240520064358594944936102308751649537018767401160470740258971830959898197356963140007823199171696713031309920821589627041278646081046667905241853846915170140990882737150465369321627561285623810210310226031711490874381079210762581210384233966516573331967258209039239597778278912416023749446164511212736924389370733186595607425886588946454940384630965333941452431471143044112487541344004537570613658809273574757135796100668310729306085882819962746584590526411254122067152386274918459791279568991235183361337327736177993573307638151907638470658983202635078898353955360895734945508507710809506148359197136796067337532594771812505995739348620535642135801319225432384606960252201228515769940212136806722865916352682149220050538099767427311894720660280665568377573939054510791838636793382782104726609000616921214346709918347304153152812995246497176543941627431390965736710659118816494773570516136803816384529987246783590181095759653592226372198564702303544846489332243575928044564762047588819744474360487510410418596648284267393056687465209442182288893076688690845067618161772758353671965967953903067241034958767232334985004153782851144663320579708633985367838869838667454209027982182117197860759630480723275415711160042705799682338830735690245385700005788602752954862095529081776804277848916452675941359450258767642758857802239769431058503278180272584603327633597535651664179069552286617481146559273719970064391810819898641825763946895412529627827063264425659949635801213399638466225543354160442310734691458775798288712319277620619884248486239547660521245490442713361850533675232548610298324185798729012602046812022322715794195600683636196862642568717645601245000778689909639779972850831872688246783076196029695259848160718177524348135805345689032377868203357318616946276339058602152258115207540939962120976188228785606283424792522820310344316117242315045063726208408103868596702966230720597604316547683167876145952088336527430340268530299449748076918315749575179193066253384889583646995522837956847291500480893817413555809515867546479989658232436526242137809855364429107648969645483520303218747732609855924544882170047994502304256405539032614629278065984038592652830867968551904868401257734262847193967876764524806753784971688292437821031312721233046960478323798010732663779270802492443396155463458077106585567199806524360078863735212579960420693532170851250434376827906159851036394020887144130817416056182838022670278181383684115425575689256892707053912099781276403553168506642311178036850825495188517082145560546775671672420347159081478200176831010764256831974327839531551887370133321000835721217151370054909638683505008962911712943729965245268098176247201297040782444120022013478644111435931245037916933886174667715261837202192629805709984798145978535558227257619854732949461225027374274290832841514450457768157051913308391567724965854467505404666055583011902839539479329042017450083235757422410481451402053627828980455014587134683494782252616777972209676025675772279283964942489503823938818824060365772136122335227022072084833731167684257415311166022261430348073120184882691630973242366532789682673352681414688546965672665174371327785095003545905677775247961781566843008462716727545609371587892906682500956792718977562238096423856242056305100000632052765386440049736813875695119341288527337003327293607374613259675895446874695569640284893356450828665908572574762841874185457422535833687616724896153174041899555337842476455727028672748306544332115034367195282694107792668494206750640529187019775646972959561283098744274497406294846285998031012453934263552515389538233247459044043740790392424748266222548137741442259594951295960975377718541494743712282113547626870439777237950020525857779436222683896898929012046361559367146765069687308485886399470637188053925015897612241820969176628101374261762897652163332533285855800444867335499909602113540767006109777608656875574746879614221089237710366745033466334902495936071467713813756058738904652844071469243369693980885502186342465515439690738578771492696617282249701180318280911237157461234454756770077541890704746365985777606364846919416783611517649379637590470381861640054969049063345372908689816672635849169457356552665683200708009088720655333573932526279931544893054767654629746099481173771640317494724884960006087759484131526573667149381352446548012224504885961687096267582187649431230338137107453101364391540266193466298032592505359039221466539120830877825577677783489754196206410008725915918346840811077566755549657226074770244135508266231525204627189188762408144863375760071104170472043199719521371045157717217814032353659204902833469113869695839547473787066978164273002120982048529098998841176474171391450086657886382515847569816154061421364105028330309531009207312566583004320705725162282565214301405442036476858672868765009586043018476191671295423974494770667562827165080766135075342114785299895423533092177452404070554897890845716234005782124487239739749933518142992642588089425147291191997981145433063221893712778530750868453580823030423392505985330739841255827534066533684197872073485807519065130069849277564847683582412245209030006265391399369362019218991916246753879618271430313897102748731434995821645579309371865702709196317087848053768859658280172633492652127269313275331655766735171020366666846496720246791737660386954585453710875470952357633384114871956261151209557932002583840554563211812623999024057512639090033000090877342113674807742821995842447126930184671857300904237784713141820703977249812942514816553167417009995877348340490836143218595475116647407569999876752319327532278864694399377625072852129728491577696011543024431492562311629593288234304297057702115580228490707359058143409730638768193981579125987970599493316249360060384976123884847218466372500613177392722667535083411453407044902676012617308818660267928924228139120754134179810666244092665776740043978832926715120876982819300091123882748463690758882459621087812995081812264184772976342696885556653789702765462640542715427499751721587426682709124960921099397208297591170981352865514946065799031868408419589625743795380547901778149464993150034011622148996380214180331606242837967858570381529995217834497270067294638961288663946388497110128782991839271776113388797506401781437204139645201292674178445593376406151898316897551682466121919681385696999548810373630179624184157037888100466602036555850400050758230098692374071238403191657850191659350224018708215243951038847526887906899181339732590131136649009764275188908853106692008048257826672701054414769795294483450755671310987975230102203972214748907984362601297547980340365893141341462296629915668126190830309389634665829062932177396018460681616996943963594942497268252384785090570337651453009939171632690696252007778207005063259851916655713490386034899722533930343172468867025892449131360642187858594860277470353997744180001430791103080172000877344613316952076571399116811505664579012231349425837144848358098958845112929256004739104696357577558044531548169296009154412547750584299882083388784565406573769187518942418191940400305569740118588418831583902744763318737359366402471220033614711023714045322146621324557498253736231859593203935988982086972990963695770571089726011085391305136903652077719772541950772290089725381462796691926166697066633810371197902542178349699353622601457667544594400128721149761719462630526077170464399106046306867484925015275736840212995520083672160719952037160546445791408399147750832853373859594264101451258744046360528943618378865703310102708381941767772736636953569514764847173813402567600799873548935847006250613153211216612124222026095800961746628955148280232668473351170339967295942878035629491734837181267776132612784109847795315687738127648789324568282930728832853250622293019700832081375104413801948227513611557848756890718907181320217593127509771229350720114470965557025415884955033543473418089335613976422237851839997557473493485060763982736394554773133799672274267683196936464708592723392215037788279220246704643779349796940567828491938924138380338271904302166137270695649829158963568173148792068344279686407300391404092108254350130864132240420772504080867809290805064308583802569439289951180180566128788788597706261012081900580425305150072585613439022467783748726405582512389074532152067330309020071553632497022979165342363427913430095191307562774803575599116564813417885830200463278392585493427427955217068741490243730047589910208589948586515765291139271155036659256507887034912422917757005457260229656610910414001271920481377494604879222668154219634444604349411237932534914216098633487420837781174646170273636197030656097195530177873346451020063843589135236185313497257104860293527354237152873132744903550303274141483590093320906077678286640648980683247332674080019399388375144870628106139127742292424239705124559820480909619434049488558055300098234293312583642522770992674667248592840698426760671403703412437385444427698602147035320721697645022179916096015310083350529366467077497460430732705472148535617707024761875133799827613617379319744458237826016190801106901663085215814697311886510347742854121988093388665597209738319518819965545500321705493394008365982484696360615452312025513487897932755378401051626218505751314981881994627966441645945890303580753623901918158094219925696487071148480508597775656576040630431299192405213057033354410101734611825567903538824529656289286446972901922084009193202349309885499244170736083868364584904832808326084413024234535678986276650592447100767651949342775340426519336873781956418745043717309477660776340852551382371524010007620636023535987991009054539326601023474164791539397146233304600296731539421822757778447665981052563629581376777065065841907519370328771769333193587504897337695065593462879989022419289828451226212098896013656324753596860272886861339241367527831721390210954686447885720757565743623450335812649351640737611885688516784077088662338852393463003674759046631906660875972441177152455181185588358836581642994206376724668720774653440329215645396893244572767336687198215886662932441568578298863939629057848394135216921590156585882919879018286556207202535716954625407275635401718800357434848837580383140623197912310193326682733443042520827940858767319748945097914537809497228248898339368969494127028797631965945600833432246210924478675620284253773207469050281669104883832731017333776707677087700802110126939461214461366797809023564491453434141182982063460464366727416933197505567719569075293128527205684274721500009947074913203048172550418236551461238328602140476428697136866523874283926641870838311049353422118830073317854407513917104877184249665772834122673857939082778072270643038903734094155556061976687303712530445227980792260019557757259380637040418185563239132543766547656076376114807592892947261406306660701997025794301538134014810544304628250709329328584379113796350739803343874340601124992251419916127648123666420896698367160838901749369373379778657028732017096088523638383786740101271114124097572526545078754161189525822850948855420529264556067008983190276164014923000003388985653549368315196494926694516521646235529012880555588060648803287512133954556397033303513821400370230431551410260196722682251520034782369912797246163389159012526124975953552506919857761485004018856758189731303749194281640420010271130883759672897388575478577467674353938489775078171825463189286991479565169186229471325325237028506269835312873200306301325486714671108369769186981194910967358081305903237062271198424857182460630234073922136403710303114138770177798829404043881913184457805922166991255525681848679262199505901494608218103397279459156834287948943233756828989085227004750493019745601268565230561113407089015304012952684700992057762974606285510760671354671405694395591023554685466919117652923677353543282135630772834721404760383665953556065867872303883160910113109127513630677618965042282359514877107774679083110662586387388184271204454493626674455403794323356708185380705356383291619247121334707111475718858384551926521154167619463042305824015552419286259967209454032287298797824182424040384506634669493087875192762938173180766273192901700467549040666362612211419857256379565613717849663446844176016113417218389523676417642636626614205192946347904161315137331243236387773321195312051167909090256471779295699084448245461389991953608890397842943726895741423222943848675560644905252011496818786832180256422150608585243954355803277710722009348107587902770017257112894657858628779396562413605049800810045414098787900752227410572060326016873669900094374249043013945679622540141176216981194651020989061499674014267229110756334366950426640625303152290367586105038693662381732855462633851230645443102083911861462136657589640851454167043669382607690821695676680676677469519820144403907183163909169662523080596656756488172904041941633518378463841067147956705384174944255871119767178778229954934359255390570695339317509721851553095437955228682613952375690626423175538144173741281332699369938366965284887162570314958955507931266660568331634541716332928920681620948447305255438840764760868451379762953387412332256555726690260952048582156503386681587324169269564378522926272141058422920501161566543160822577159904804814515864440280307443315430672889888276167232264211414714075164129035123721468641458231607368477633009268882221778692644302762323531796591063283139758918806424393210660542014944827701445913615788302025510885317445134917185410192831959543028829927061990903091434256794929267455219968601898434556021382504132568668284233290761751179439524264570087432221218117966768130554331186999854615619260679256486821390827438355565955352580160365888598015456008200517369387244108131642988842381327513869655634566165874192075458389700157311071328484236874185975841194380482618912954693680450390778374073113684117150963323335774183893521085583024661322417888356356456257182778629070709075755144947749073429560863096580352789094026324391482904666709224732297360287195404713728927727847089335207416820925379330226592315125974835028796772484325511705649040000604503976229038541689352235664560030785322746552860321481416076228767112135427406171704048563985009254738082854371088187133949527539136155012113447680995607364295762892637427562476461672597582526844369819883776390174555306850617025665583147761277484879978292029799861815584980046938073487402509740549126554722186530214700202963675699229268012768382578022708522021280373971981034569462734139467703281652236370838844814754583767747598585050739257650554742725817627562174606320331529815786147066118141387334192049837123295547294655431354205841861045512986196655869921902985087268658258872469605104134124183686809877733841039437729929132513584852528810005414698783886170954703636659380182578368655367306962712240252535246033350014798233335366593692827511209199391820355005280767347763875331896564618044699936875810841819144412001515282580363916172781934533818670166609565258682687601402285402639123901671969510653385966387461119177557848275579969956552812795817223942053236100220818443532498269985875773429433663704452482347530096406884444078116543379985591748360566610180962978721841957918828136477946706868078971797843500809689942996222946338770429523367332932197459195204682488544060834039408476657785716643008333392773645233900908993189142052254618680294109534188966022439613959552318358680100135047876744047469488320039765985147821442524302175816028649422357047545187928483627539268816788727843342700244194567507948636180615590264780590785091874866529359898848140670115758278725612451109521241240927565719817354565516298446406698826515685551582587940723413531378133390090075120937203887256465889800922965084408428618102382147597987858061169746762786753483805171070339230466446930241837061927838208014752142814753052204141511018206524584341367871381374850768436631111155263844491852063426802685483786168873758264693823473196601458740870482705038116393085645606112884819914129106307539681768154327465863914027098143818444352316031045019839211968980514548087325323527141637522257270261472480905549654591320703454026294756557169111982918728343431789857766385078416416068573839881679306715826424265912843102095156239105344862823628643377270128204690381630734870390480349304029193654287912201946826923292932024134929077272454282356460047650855403305013289761570303971663476689010862210134697717695165998565554843411770743192591349335773101295151719183568310882568246875362648529963520618506013466318814196705350793451557739608017369806647103638649157553486297581756287301246605849462074125531557648006357351913267005171682665344962671484521371900984195889264270826567691142910587784613835851201599690202772080619672953170742269222513386047849845687449442881470429094216192323486989079924203432574674618992693210648607124737534544482892308077614928662157121729361070782282863961198843905435851730176772262502187846909238451212124727227823258773689949278718168012656294674116386607869375403879848195156872939373771367898208687472191113210964716657422706336022537617675608802984493335423414191270600724295380334476297764953590354710426379057311100105666126497146645497578351931612051724003570428819825737255479535023915302314446600010756176563964823233610189716282862032530647478187727259521192194452462545670674698946158204090426685696447342395711439024933547358829643346773504659089756511432648079244720318691005356272966727104532112897336251000825453774019249162237428474662395079951381384302113878280113625337859104826854945730187169268540637370347074986019115906239831232178625564156850385892039515693880097952937185731962778553120337144704962591320257346835716736974363938819258850829317065777417285463452243083907504386702698626852316861586645228372546654128010573183774584115449987486964444152558479864228638628699306678514073599861017996565613909548792903830978855901907507472967903350067483662821365108007856493171656060626489624570661264242478790279519990955449738576283410598119700418286743314280216298319557248311937815737938700577765045911665797245747131817473870344882434061032826704081511557127837109885343540073002374187069076789737831089549730880824251967966446201889642158274884450072732378612531460065619425635333357083210586131674317623237684534371197741851099533829245469211588127977039084356604599658380922733269779981385145480271380959423323681006927962056883905033680849245475802120785263603250771416990620703435131101709905956080355246763320208354509304729670438536872960941134818937391606689262137207806792515103953029049920003412805983052888950430976804555606085779876320828674706655024008464194275057242362396778996446466756214888795628475538242048910916624723896378836728969012503032980649708332829910155746945114528264030169192761739685893041725954439709019572141894331105407777409659143747807233211000847935079188877968081221559727753993219955507433341586855796491024651711269639441653375625101307437349650299839469404449988380905217488893273712298931402727756239153920452391751151155843679960506853725303420813871443610371554755332251889629798888398194871438309946432442902936406840075135391359792761703834961161150851806591085711503477164956752920141742102876983027496350207928548776389276636065684444486927602108373985665584520554764359750095666707037472179378117357779060353419484153791590354377902115002660083343451042423686651690200372777946148318970464842246790929304568555703232337469539818856828647558523478090191187833093779989889425361243935935448001347262626627300340002233357033470009335336014122558548998219320717492444514044341840334487687039850240946823253800181170268092510669009713514748683304161463552265864846319225360444911803998418021482695779779302130820274338782699357514755564694448381650621697260252994467974757176875687799179679384643088054316773858244194809032889132060789038041337055204170181536081955787756043297714879820365643348198427701249420521102098312760854226174938416020859363042257858902973340001026303243401585531509849381673646145882730623480398919122492196761275760558263620671921547028066054634934350373502076225474052566247543184748031702966756215403236779202006895789236808037878027506642236523062872744036249830364978739586929267754134719725455395555869482630392022114714075410695970329298823681958995084019034385907575053951995419127854896528080412610111089261778902186849378904206116087091799859998112934843197502902378205806772992385958064304078015342772172526057009022635021057408909356271390700785324316771512699878558485063096805141738378144839861815889714842867573077990706702979832602563983585036515283885558619276561081972852471100866649523397985264448553109466094480541274309994484854561927168936499489411946274864666787216495404998942552465638037513237482859268507868282527226606843691729820071965055305994864056944763774438926900906002510239150881020779345319653963903513642327394582069788817200518930546918584644308521011648223181664833158667686944886408356678016903222723611426813787486356511044401299202531338715990910397927408572958026862600477468621232568803200432331161682920524183474437984892565207874247510536025223305258134223923647650141172993662842454604691657508056501500302756950234533537903111054459311095500773964434559080566942214766169918582338764781829063024309694057487774797996137673930775982985343555412995711953716023582687578806586902803571208582978770659663186580753206512858956686131896932092212717841345852383303473503145879679983167173916478878571291215216868482221128169266371165783165213171953228174087201604692782246087101115246284293510038130407023468257357325304523593500361517776535487223654015529553445443712381575491386390873066839038544751023420889742789816520947014811081189268138831163910730724646909846465022471317546890229961547268526438508521994226170859956945100995614581896353694353973255651044186118677405366272698389095973646434813772528913964389360928972198206739110767065496261848816897242532886851844101430990118403022662731235801521190619575366801659473933531660605054508700288279357112235565082645985092485411699857705814610103541497115043111497595673358313095214486179958286743612215433676262891756132879289903154862035066070151319459696287761911288471655913498872844305583071740759723710982065186624770918282273159595162710120526028663301652407898140990767384693339087325504472151867413181701785049670882611348041467526113717566068688396509449699885830623694695852446788547668496595815864124080407640822886243779501523455888807839265860193565951866192343516323847178710459293294540381695432814417748755643420100690573169433312714420316986927952325346838062839210660710567766398853749553353734972526009125862264459863405225479047415852950251969523924400356436433233550220048126870261602267939348269006462760408109815842427637556392260415144795743068364445414741150073261716885732704213881211151894804662190332836953234740059687550392075090417928519293420938099722176107048470649062752672563122250976893206849448312932526437019842628208865512102890267381006103193449667501317053288564523903488299577593389374768607928559955063629776050074469371658952884573024104443626913070844007068602136252325444438752416203629288292818091434316435756233631477345448096004317757961113613360996090833493835056007320469181480805663158390899100841648926957079178997008179228025502897118555101056617619175055455011139284558669811253496200198075056014565583637537198651468630567986993631598259270307057880186178528962091530951997828792252864215226477534296029902327872399240302570537942761773763209007697765121049470550020773355566456731026497707898509101818560021816583807292047083747137533396464025209596869524516773369956704098201339564943599769846435697926553962994921900063616562186112308916345453533175869726298204553724887525060588469549697180647047465097115160487886472231049572508835348628622826050622236814755738535738578066902378273313352255640385940125996898211555763524426414131381947698856394184900161354622703643725095601301998812946894555096725374754352124274909769627229387388396469716256026731949955220063143981047030503874858594863039226012808061865882932487038432293359725137858689270622533179330167832576904770416734041007280999172086125809773620838028979817609196072051300406576365995984554209253697957250364518356018571117144259189182736193484876091706991649328968049909294671715945283971798942719828053308972040536068450942936894277891377738257334125701664935725078724233749699557863264372941445990178843179075595938533391566952403760303579915591363421642935677276512801072633681707212222819139438448268770985780622707711961071590930931210253471843512064403072107672885854318109738685335716144451578116718667409202688310193259869787895994336289438069175459941371727973525564316545620163287061902674569910893729507276908066052241663189871755862134864326808653990631469774326372541133774278288490569335112447242781383397022324834686921759842228965897237803470254821732192284061295745624820560209809337171977954700101861028144407478342795557322935134380658129876353199242944578818441408430245817148782435222358815047425719714958144032700436731828776068611753976919675271148152965338843719074206076327601881293537712488149787294855595122622806171938170535587517602842993523103464913649620537893628652968660724438282613497272403378918511158313463994298596276225726303594333392356131658451055701156974110874466757460831172210908056308695060844730594191838242805197450349429327181354244714710650032586071148693480291376209097971104578517585164988976994572145999461951551492236741392502399762342950466048173369606946901171275360859147091757797739688139889120520364082428483442908444280180241800293438526503807094987334767215969225582072808769654634968296386210870345718039186807491595656823363453103261797675145998650086004918256368822364602680235528136895667162715286826544324642799235504897159345581545305206891692864322515551101065615782354817175817955512648216492329021034190992504053397839435326099876342236115166453345541813750609816110854809060297230911937126690062072919337925184837952214410570308236141167917622321152724004798469543606275540585809121446555177402699912316255347829131901741844255383317237453644808088352063337763638796154193010830251457426658573609423527592057396147662179281705407876313209202868764841194967374167660284060162305762491257054149076579544191749651302638902936800326970030061149309553156855161817615365505124647402280481904595708412714787663336441353466559446233733095629700327907132599036220293739921207487163965721237237886861539374116825415205698716925795000851164714220480658529005651325620950015806783666233913303424537629806679618915199937107642573902038920513292555516803549966063565549618604638193991652465462263273139902404020295657919757918715435793073205068717297634095158674661364992799092895320028094658078755146708016161907362851347933386210841793086397131174620616765087786900971975269227412749779976220377867418656557187022503707598628626715785318942889799915368288602785740334574850503749370126406586885193091750412258300455367488753068802428334173605529817715531294147409847323658098935518537625402604410519113060895318538422478817882439180136762518085653920498875081710071871162991178920210320932855426572080175566248469958443110518469864611547813211546911882478763318799277147431533947227489873062922440339588508718537027776757448094818522660027812926564266551699700848686355335529585645040187015135734034427829093774618072320906162605963805528584560259407717827531710533506738111124168871807773051240787102498008505297129284912128286195691373435244302189058214242362052519209152046483929694818410245114489622707949092464123239711930879353535278127927516628995818545424664919295849630797912453719657796822676962044224082727562208434697603089913805416496610508686617216910323315825827624528097104077014047112887771285116207486763898089248073061322809086708667423512146619297154945053151098454816819872344079168605123912231576601014252082425169758996415478898634372565039203611763425480978653450468578057794649115160509061448255593920305640803004584947484810638852553631708623426554364880984078949073551500712945258509351593986714103155239967117912847648767045692153113658906435687898870467556714304404182603213578446926331134332145494579896498163576019307014823496465318209766825127926313845036905157404969763716421841256990273249548789673265541051385305951710556209929448443020946971933778367895533406131221534184204966832938137086981591717694000173151469718051708201541108185147830660398622207318707363838194514997766495959517253088360915820958947756687424924534024157687078427915633125621498696597333715847656377283973463251523117525625081746290679993268950692014094230688463650207393562249221531227828077769781595744233227364136566124342220085263572286237453500897333066097803873140562370221137390374471260669392426538806484663349703624572008962886472222480997512369748856517840421451339281336531411849468437466744293627301216263871673281367464444039407216537400930780351209516640715499368629146589371774894524971390357948906013036581529446617392144353299579168697377890471274645448506339757987456998885163449183770466981753050471539447111280089892184127421986449314950736357804571939314614838231019879070722519465457515722748289722226162156521452584992294159197504181790667924064995811019181758378742995597099022884089419173472167685198362997125715055245094493734572990369133347511592136453541722558864388997941709190217610514483043221653526080433911191466904304254588697749967007165864956822271869341481521083504327490892020404965588854268363033302124595359915809938132173935520161733933252203598891624850602656715935024262955079406789706016781797744829771596522224076205694946217195958249341841072369581838598923905616946306706043574353352810672478180589308638724503610921037824075958139336501474634197460778277734206800668458606632235372796243205918896610315278991441514292779759122149892293290685334168544345320015554869304699166725752109705290295696440299295797842832459794320026667050778169150312705902851768413828004772461324780137119448844375787685936230118125943653607017578916755293506817743556731545942578851890606481809383384157008309222073400197366338678477675818335027078069714049397767044651438260684944685054805577347035123654943395657022624648287469065500172605166071056801573674799249940556198417179636357224782204564026572771170856206369854376295347025765199347140731254860649138784023866962843694324671049566737409881328652284912299105008622122257720158237099944250493975931044455812003073298983910031693530065304880210697979700794857213000540900719808226128000368005809459563294300524369359731761174532252659793347027756653559310851905352164800338889005574779848687297555359646834529747640065241884148291712286141096096387953739333424786215465051123354930153672825429425978463308966536837333676938475412843762761105920141621621629634268872576540284344476011445219744256167544810391045349520504066041955861160095788410214244404444009706074558626029375098602834089147250591752739854867766159218307520359462217825781679512950770917494336315305096767672124818287836585609788900215152203980367588811339282590542652139284804483199293264133112332271023352571792386963508465205177251733940048083466176727175480376987506664617016440098228289641269401013997003091685813145234710690367415278343674179695904033332765551091378304552502965792928814334461964996257068638287403607441438786601860778717355509391247626774759094482858122132364721076005443344640121159830339625270324373736761103674194753821948229775253256381900447975456577646324225111263999936138030705581826356483956294660452453268282083626618312316571395412404913673609003471413213181117202809122315262272266328561404873711892624336239521713629894263599187291675202516883542529828374107224850786771465044324641711810833392123751530517346591343182567476794818133024449890006562694602799375780863405901001301898499186823364303177697401464693506990357506391711280612035287196533698492229062663071751228893378078558360938843933596965418790457002038032947422297998591040800151980287578800670484722137429127341152220114324421371165176436614352897744545943009530661142555319280736712162184931776575476888404073610882218307273309764359653891561963551991079344209522649722118628727567147082261825624959819992042623190840055538850301908905832682342092001807240469153060107855790596352007160422728616902275914974321852425724380942666225866061865497112899749142833762750958333860978302646954671979432713162812166399950148081250121101965432159915946824433769319010416584794817415620923046258912919200875044755909412906517663511678827904676078112145948891320137203897976913083381518864373966368754503604106172093808747064703364309776423245391796745857546191277298344536789748013355050627930971906083734882461768215725515334165042554193517047656520581030938062972555129982548636624799361886521217590566916954770289320995479517618238206269603950394348811626933630701873336523677466987509195365316573576179758449887038918192567297311495814421344657234623771949309461505881336211466127516065584214853752377575367884498685216679517958777879771494227063299297627238729505280712087715832657175100924052624520991759957191273435664780377584285106900214566695651090288718474187766407037501750847783701830722903176586280846765957426694483896836739113240383101729748764106021185217450182763108816265887195991089200634378215917666531522232412901257185410208268638812673077440744907211238027922883056808952261686729568661547004565506905230150912351171768460389313970863989603788547647426929973425696492529489131144556491638718519057823911737231300333310528618055112501287962252179202944590966816809450256604898734664152029920710901667603001600589307766189048447110496481944465470900336011388935825720221168163167199119720592079831427251792549907552936017875223277732376567046981647306690215918853298361968201392299973736418798819655697308495666825589268448370172923405482025866340082137976958267448171079399476759223759648162085617261072133126172152339302259767112380358082870532362481113628410162167387282177298248447079773174465977207301344238771217986879537211736874225979739299857009755420816323523162632585666072710695391657184799327710738024031359673516270171990662982570115632661060548010468152827844368316744711062342288109603487854252078114978995618613539660943856092089134228643240918653993707532471129238459986886101071287292979762359198005055877814634464565112390281654947548274076771919792005196307520391681362089525838898811587304918913214518017685719963738041435606631754110253090382408413838463154466366404075204422691175061354489059876195912971189995991127108991711367714040719766262308616733693595382962061327025361247128823457087973686843613876540158149307646928803731524578747782611107719625902700014827018223586450786451468786088079789361077954926664065735832469244525291876081267075401332116199533417817283124012117063705207161771947671529177528569427892940005739090184682529596153071362606645178925468670464175310990362977320727830659811300643280482334084886504209765159793587197343128069359235035909948530028931103156477399832521629872639569781305648913021415085895943415959230603196013562848072129762264998170707281442820118720598547159199619623698817986068109896568503434900662175379385886459815829168602723299219176743239136831678945815422346682701189278086173003356523553472291261864006238583206954576523605766731596683963187125111912269173199647400224591004216779706810189256391583946474310054902479046133982094922779424543488978092836232239671925481091484013896898775440744780602007410271197637740013694534345435374323086248342141058986329364137077174985889006497932234907075076861823340434474389660350163665288717080026605539718597503028013341322209853513760997728159333693299524381502061858703192004198269466239690775212842484476957229498885833354559302594124115014927864605618003187500922442457291179531103327389984731844563188589590042938483934946124677311069948743185173376932345266856220576401942712401503393917561824637724814353898421527174015551049130216690701263066111578132801826352361174119413044609006551975486727423714908249855818522436985032870405929744847653532101097230694036366251582939352262340919190297257111392795902183424432042452181358300940294359947778929051504982617060119724296282188234933532250555534139977848980851675279440438352604827819695359558327831599876916015581240278755134115890930386032683661163916130278189552615575192966424408540687577262825355989419512852604597262847698636495494777262990967266411733538784642558536209285407170785185741237922127133867275132476193496889554815069429306495185922909031809229334764659366385331689753126195405905274474966302605814295579576719725143309444331575179283140239904866708947381126310321631021230640584898761362946201655777040858203259440657863999194547319021975204692702718817687736403435789699410762575299161413802356918924533925926550317726111926146138616034535262740318485640768932211192782691463507034750589341547296904889999790281246556364729214580069898437395434887342802054594369514815033949150340462007904001005819739965046171877117170753405510860466267025574696179931761644462632364003068348425452940149079206216194683689016607436312776292594796407783842490521306833824535495526692932893418653732294633692211843507255155435282505399517537295192346570981514890375296103668911704599858332682169726708493613862184133121187908839960934041790166832297715167011864686924087618639171960406178524428080739126803369209179129563875725465349640866902535037043767287365915867613784217392458400627568987169668294944633368564283801422399722327041159540679335370444171592013585910724552310029584289416364507521352532566033728445502472804518012304713753991014523720988575951994458358034194151147679885144656785335541776438115335748450494780003644107762325514625792761484218556776925393745225668012765740974529967317430695183516152454945447695960890054784282975946433660640840654994869375840817331469722140998622909622819433410213473128016605353874584343298086634833666551563351307290879499452801989006673879877301042015999543071116751361128594730907019774309580321166658490899350117484869259814686564804463938941752747844883441416501882621223202736533787930399314824372164774976975596325999884313453660561007449403549574991335169288371161752297787995263977389796684258199885009110752852713310824777509227700178091776496920745564835896751217682400449955394661918706558954061379114871875187984530980844426659745027385421587567851057726659013672713073884059194023412485358492764690113212417472764107894154069356961211722097857155734296706410263544357493563515823850485395857575073507442701761033005713835588778598794258160512179043455502863412490777416839089907227742672168354945508270695676701957103565332877565392936361402023142179597281534196900071311543257426773906333680338886574909154748554294324650809194350699482357394752715252602866125241478037796964591886306229924752477973054866324138971865840594503613058358011468189729874516882939011232258629051090605733408565149090336294730949557018451430019685180453532725111470637674429814573441750676629426935670536923421021725492494894521095021392075865536052281012447712248968835653341996912596993715024578687347102876628168209808479124828056078285754415552769011273421807113684864993772892160450756563239450187341323943338161932060890329206265235428282751722237527468321119338420268935965333310741102075889297205717881040304659472570045491623025005260063759499478709957021206380756343978559517009491555588598081484184907442846083466317468302554699874606496472568028368266163308760755316550789118036514150450613806567659545327217879828271356934216082629675670325545865935981711605730224711469596097108989898360795683882933099626741753543452561260159411488633984558097182472289282488276009842079255829826992254907297550710062566213422098264718490836466463544288896533988717018097971110728798806409081896359448874948624661814092442213689704667810369270315287454805942895430728112461401662362559037845443568748030074872555263911837150364955374171947586752046597653066785747616767833906351440642799309131565817745484763928611619975148425504912119120796094252858807387334929282610496407751551154839846034470441872419699180763270530075816640412176998866867889797825115952923149802344050388525926731401130228650383483701914231917139799530745050955142896408214569025720008278502260416964665280427828037627229717652507773845813206500289119580323497395561256528753748864368241080166426964947401112059360278986665025522827084267531756385080297058064484289959526847150638694640433067327872967353802784378224926530882169556365796797191132031269909605053807402647273362720195016205366777752109021687489694766778018366458010629183020217098324108500126405398815550834910345943224100463734062196301288515125813480281576422435601954413399504033808682310117522944700959093941382155391521556525395874573418052001537339264348074261605119065789279215102015992617798281858820322662548057835018929013965000764724706730738633374741486789880946726025086351694737469688547679881255999484679855081377021148595875477175654014141898924452603602103296994124284563078105033373958917400113193767740561879411681508282863437018336092541628896509020138074217955484983197055902161104206020437306567680574552545529387392701096140775155827115316593301109477548119121515973244276426752890999685835116890525488874142831889982149905051877311145538863767909144408792252771865642700646268697740369296893909595915426755149082206570561150394192870483945484992406836959647360963047094145927191730467698168742766373612391376208156415990427001988211526287045016623623908221229031809847284110345935820096989636757178970838415327771986637103001461986171815525687190035001309493989544857618831047333774357669232286564274606825525378184273074588602125998505158518869911099183039553672812315885130852796058979393600014320103183661330306777555534850980561597576163406774393450781308597410710970492217266479655578874548606770848224047513219985667496365196855198303642679454739797775469964754918484077761383640977493856311772138638731678453232282449159374234389531654285437872178320041063761620009582909398750819220457233530731449082619315867837509844696248313933725117739958455965253516819489875788754261183293958996258863379423741174059490671598698531024325454371728866650088587751358773345431468337839812297310384913526769970659575734245017646056543859552555317187864449945331455900742507577768868867651036352279845344736571918595999320552773644161044546837802253165305152702110600808441997812856965437281731664578167925792457972070987874748257762869843443846297410972988404816443707518374290369719673351573542245237784845239820062787511942217729434970166776105910915184954403463498808024054600192500820120343586889112861331594585983533026299164140927778649154320443017343008107325384650595614780946286240494179463674889394063058134297860362112441970765946470834869477136466321133702918508465432008869719292569478557860713164003900723841473471605900627252543055560110616033330568306355353414723993865505340181789264755622972441957572815022388412301974068467448082017612152868192369953948508943190041487033870313138526367026422708634179087729332705849276142354672237342630961205962709995892747103576777246811682510078650019872839937091348888292304267145371290862007072766877989820546191573802196390225341650677279092079562640614656568503583678981867943772313902218360308006684256637582620596721999795804604055065548964686639876173305454882767489223276308819072276299625166811220697068202234206077100210063758771156012479041270023599043961688907997116282259005273186553870145211441567030605633189841098868027747835147787765032296434329694956121947289818166182492399692848286976110950352228677968829329765316659512104025836408843857452519813080323543993916388750399801268929013531698824003123706434238242623421323340745085803173211178318666330889356381974855578002494468599612888854720977037375671108707483334704205449380073955191443063618361266821703655955808766635114078379237682020296550125419943238386397267252496798400015321138206438379559743561111968080766530095512507600410047837972236781262695165904038261237306843294826883700455521215296852581606655798982742835580186224967310016152943613279730780898364442637373467659273269682831624449310033095762895763925414289048930290887409253165165895390784385539296183049613067327356250544571058411691049787996179706420237046921101842382104977546263421342281268475558679144501273623021963116166367523706278391357064460952991604239396941294715722490824520273513466888611065590058093523422947526919332708947473437481889371254188797835250522441080131670543593585905110729156194317304309706886042573871836956762710719322511479070959376185543642593866313132822038101463217949114152931583081252162342593226033509711103079045660620574556318227561077874819629409702973399008723290535264935951707253608129434324482371905378978094891955843548582613954562823692348922954185752924839479899011774720772894962051242650099020840771890802102269366526019811578409721747535922196031756825657058375206772362185132129165039856542485850933470431493877081551981558758240916255971894140206493564019566394926981402776547117285178372294558498699844388937139216875083864534790321101525479840726872727166010258986070787763108218082949643205047624534183654781484658994515327323188777914399582879109196209998450992545775665520506165715646227006100140107439178507214788688700894110990906690127514262344376087238854867500932276638842135768117611172325541531749334563942741292438341766567839170754086785782085837047941731199622308856638854369425757186389000475622999414106577040952263199908495726819809195886880209534927376323992911452135437724406429179422695221809237591071074975577264949854671523862132332794812056884630484335196735510354736641352767270558582194090908947565321794692662267408495895334752420730719545651778727745967411543216478772093629523165348830598056966901778131813068265606124983816939165836152742094731225467680409392837501293093144261108413802468067425216278526718821931816677425806901342458643595086484266534512891102105101633172530071970350806331715005288886823760489943776092187968502534316611295795231786428668379375462059537112580309399918563595702745189598245275800301024180183863669706800384696682007763582738639158017402177576815916988683806166687284731808925394288738014125515776423041910514221581088635970469569781760072721353289880133821781329924675128212184694876511240901144047832891251026726111007020258041395324581361088969698077217130154084003898753666561574108778626421741097389202142913584132107851792010365894256715209994975699601310378929119352289978395852676391752770137626671540730798594747939076867224296822313726804954827223970147541830381275423725976531404998491584234166969559757979837763608323901582223149743082177197331244772800038277297252648172704507549540574043304556013800610048945474648969281872168750817495756187401557444069317934292249772846360711527501106765379513061364708146778420443540971033333370463329982541034469648181340390747701102977855486153258822044098464744650650196305355387666281984664117399781533918133721763379909077772644374740792888667386445888390514989234251429662046458326574124049475197039114107561063339222134013558358631788202375410605281204811033524506507541065679257940353151720587637745971218431640678239241614320603836336306136853116793787920732776105445548348493389222486913912009920392083025663321338057334034029587066312906661727291084299007763486277250504969538518524336865102332602677712418799311086880525005497291042493834908593221641558705689562030786831477030091784041897629614678349292582732136405328645436783814931500241560375407245589944821145365885650295137399640832282474276622507699336050845821179079659105744440383526191045276853154819079640493637937870801396877831148429459112209459059453413351512926765807770742638169562244047247552627907661055094860002503358243892195559712182427682888405122733293492871940018070937074435757170479399893085377583458972298359359134070647237474271371068653956424842063968225558467215680595052053736820062298816926621102823054096655840849544446798702059932390074554806822365763585442471053167745895113982421297446758838442310503666972982538619705571336267354240049689302326177732535184526187522958647313788766514572171386353838688573866925530891439878057351417474035576546148051205230127760606898543072451218700154174207491229739272765423346518082302185761915386574747088176501175146125466957416107790457940897977903553262935760903318242900197674758625729201263665643495655110170158253683909588898198061783564563463859043734315168861510385172025543243845197676204984579479120588991327413316690423885401670126497743385930856768009615437607337880812816140312963946926852119009565558792767402729066004714174406435746015834270729704591792771869905543006256999593921961286874034058505872937870111199565110589499588715543929515527277472818716886016329264038841181865943557046151526978819198059002496140014162457530126040486767726326249754100917088143052320675088370377808505409596012047620295537168486485945761504124746285231113078121209405448759480295132203184087461872103614638781241311972581623839617428766719430186903803277048520385132530284714050739813026160565334588128470505603230647808112707731988903779163231688881166376495991855200731555733688938387098197416062638209843613537878805417001325970686300948993855329461484747480868716477276038627764700165221143621562393400923760107475112876189004579359270424484730770211995373807582169078566349371997031221065115288493078075606981239772717748507919890909242542313486979126880730082236223730055958216152088427378119314049087734216968474085792462664443527613404852384526797653860113113027557861907080650886008623917209715923281487882340775243771722062609090695767667254278128954027130470609149180518929028811582557778442132535213530402413203689239006370787664255324855301151376713696103358078782112552711458893004460650921618270888602059188406284707523012859587343161017552375821867339249812810895690431741178976355785406818057602201920383562497617022738270726072728006188789529292569021148020190936463088548033971030590865650052161021071013121084008826913441519417747665973725155982986610331582429706419430144247022324195837661261556523864109783911876768467678582072666637109870094625260716386011119338195899357802285394703015405984456516695697917718940592028778406093526926292698566756729292240720479511842231465063062168293939892746655323617186066206096824180133959763958109014718882523939444288810608613152367737674487119493902469319156513092506706811546082793433162879119047010130137835506917895309678001659499957069328591172706650315805023254191325910807719213820333139523162663431550997086323376581758946403075004526967902968176060400008862795937127166059446958248593945123863781729821943631855041472222929141356078169784841452474404371393053720540414373976594798955345666178928038155708091489542593538972630811058714309690939458328467519990389797711130921327615129429529908583841202101532545667816459859597127957244114388738132796282106560237941111473464855812590496195629286548865825541236101651695175573708012608055178405093292560383914501482744227249042158616573897715232678099907521102093897418529071431000804360102481575942969064375280821949097360759507580129596344783666927423617319441671691988298229017346431536624326783119893753768472531401468931043985927028783158995906385710587384720200349282997352013002711432628166944462998621786143112729736746196815426020738555091353470915771887662282033888014448154128270479639652437996434541326529854878250003630376541949019213451602334825981641674163600523760878427595345989727222354755640543656920476479886858869411935301479070428052582798923647950595923425160041441360951990296247495160012331254647872818652372293070324154492351493939156658928093451559378075248190176967799982551970128640794978677148110926001562442352361271815636445258558377849885041011693810156121041149156333984921127045450235304923775237722107785422130503171278770002655882605831057351830728164689527028958419653659600614207530401170257759974457333783329576240489639372675119557290363231050094366534690819732322280370363724864648156354617560096131969482842133406513072709876374679827768938749553128092017992896289077253788146312814798517696618434771595196262383348840578400429611981520721050444382921228766403428052539103567229582391987231363642850934379197869342719108033372472606427268657278437817600732883212192444020511594921092402980014458704225506172891190389092366461061372655159612043533846215425653931270920103573580544470447109931992982660955791498526179834919939507524509775882556513066297173701236533716591209336076372555792896594687367125444974053629250530593269291600165937473631739749257067076783422368954685723639141954938351494550929345329748227882472563195763152125484623324629402941452055780371856851697253916683657893497626431924021718698647103603218451467967352613823175083745380529333367590215988683860907075584231184867247442186228245792608726985592971979346193256062926896640466626076853528275285953927165537840137089458303435350642577165215125926934431467651372957381011181840800382772603496674751596425737991994626821934143122011129640934533200992567637818583746157342259160413424717005032193059832271375600050316091005530091887752292641297487557127611080450000274704718695063220965615248284564023707510131952639950582730898439999707198997880995396250806365514550316789332829263776706985369702528399212950705763248818496534015277119817533250270153292492209754433493600197706385803549119233036957445236801186186217198823466785061472591811400659280071220856003884662426345419527558049556281452158305717745498616423958922459353624416635807255453595957954574429229616660064740438038817332925557699178564758170101146337503534258711448191788048421770973409594199265389896959065058986613734644055084708156582202134817230236190348481070874761216098537077400043563256844213667846589030360122431943013839505979473325196026076199695137639232228048713679314651523736187059649266348264740987627702688761829298189038072764748527037006423121437125229935864051616944609139897089825828445506900557863637503494184800886665747441088544980168523419039331688431537747324918694603113275577163576495088125428151085821733085675058008047814135906256740636791057242919656936942573326558736905339126706973430981460892153799227763431205385261886954247984064333764235851831839660369177490761713841097455131187418552259689466158640705083173004030712447325711658996014022607907081284959466507453451000892878656254651539754333906608083388913764347631183612656518158455754685720070005736043997879964751437998901118497936031362752726445733533382835045894808219794152361135619032573763782988127620802226776736333767658561761568380797193138297223806203127430473611190960177150472795673450229177548843306824639304519603384454159947715110982682732379859833005023550449127690492335917420023134377365331886856810682196676375234685087298133578291919143855348560798197008383088929353907108817751964068045165306264781236674503110929888150314583499129787776335657887135574975408733234827390153699845364664739378523985870387203874568308149705947834180672830385067079701944628334945290410946050872783694096429303534539879525740988533042488561694270828070259505209401332596988760534386507734027455555940587916219200003799380774309075277692766020158635719646827388881943737459852343522399503292498278663001671047629332911722062384525296668620774520369931639758900734865751720542607012271561382192104710481882117657048458297067287021763448840215499316797780515766262311269220910707392302396534167577610945122844423006711791021624141738865809012570914776700382268670199879052389115828307695737446390662493016912586206429410512575827730114292284358620967895237924381277686144363828688801885978046333662687489349360702032638426760474917051197272750111709116162337177999408269975242148949051091922055512764453866114550404681054063825878768752455915249695767121748881514030682902337404689506870705965870639579098047076064042043440507915127494368654977116344815956965109547602565784206819816362604021878447068034709283220444068306654950202137001503229361270613658433063513440906617725866207352573246660338797883299843771920589493567922693116921752384320453867013210112993616818738692008006589649285716501175134850625909713194652850151805856540568743195942123109587732074934960831910551939396046604019760598189667268269077521431213870540612943252098052971922140877562641412640394634020916007191277274744493407381341428637732818544019241417755185446304604628951659548278712243944157268898583380691816426069621527685119436750538554677747437161826761734399893408977876268430644768764552662473717663300210503928585334507084855071628120745082417813577566834764267619584063446097932123593178619647459131537692730942672310548681274435719987090650447395656093072302199241968613184252776369636339044243239339209726554567643246466901486237263139652048510299041476288258188510354481973261874244009670823311215493740990815260738850244314616906769280579322622726751651189852803875390214291276599397324759035316148084642074082798746429650625282180948188976067367439619880008689566612371834436594533164583651450827571558457793549077082011244618840088829266082153316743230851267966752825032710091563732298706787459688733420803646870727168139593623002059146195500412499537421869411453336548624482862386532262789334635323308558726211523435019980766665850125757874173811725639338314797304719748961137858922895931717418843549814586693241368578031735728655808584746169081028272158529767444124190095462972614792089315051396700703757775349342797423445059649476081610608243046970453471893941901503431900703265117113581940991589508849291044220312686528401881186669179495987395903766531997323487341103229403034961696419353848298512275700255460045050807124366133945461131117408107346665894471859384498907423225522622358536992515904187299835099976854422625221787184788057723196622042157819499640449309593616420985656540084156200436851828600437315213950979827690099529420724699552748418548264019025486052764229749220714990404196593248104220923044288682368595848626946369656926977399858850656745986149239427079590389831329515551633394699452583756119550706406988509670978622606040334564972576201045619734319561253881155155724566372310591724656523771692749356390334098348728656246391995186700360260476320196443006003110686153785739242966276539867156011811381667232051528167778337908909439643456726662710036115017802740799226213941589283162271444417937902171899121141873632712076837597217720112645935624049080182210207631999039497403977778923427755749355258808338884140347611399131531177173306745654592564612746610002039545673628618431157790934667194364521652598072191249998416973643541130698062625896172325355138850236139630169108801529099678465279381947147490373498472368887716580940359285810632205572062663289019518195925980774170596091515972155790382246532925269835517828701803452055109089427835904198936066179834917133077327685932782502514868889186031424630201490982557186329126796172591475678849549977492396275040809136301075902506527797329600802090561346851913543719461647553772512809157065632318799477679278371892522472861750325238545713649344208528374424431523880383465953832730258676692272324131045291362282199370366661584334088590862664538854903319990418751018588054180590832194194854273363115031788760414737741246086211937380610522155893410006489182280538483725355213021421810528227217717313126746518909734303799350429242068813629643195719162661509102570053579245125516214709008465513932880838446902733499954868073417569651646959250609359434413338547391861113969412490521209005871679194608360474227824244170072283467878192376548545505702575298993792378865645505768658375128203408950245873536071747088860006453486403127325976899985182551901312060333076535551319530374315049753232109101467656325713729641802670486673049063899881194278214241208419603169718871507794755097055642266506435971797001518975436271254715446666150931610256900728013613370125690746202688086196819069195303640084095017396270319092905830918385456305436775651143833777317788514200978526699753109646537452751389186335254468683265958745349710045190008530927603200035826395725956307694515114993626114478430976461092893293971568854891125549445042257746463951805695532412764512449191906068917275940269215789357038087445355376605829632747782824705973333225061998350199674549888305334273523744204884467501937486070524582139909968857810300476491612431874557954300506129177922022675446989195503081200765891122485344768329565120740020523100344190204076707892197748171009347383284037954701485145646795897296394393623308570730563414566007993103862509176042986674916237476615421485676967371324114482644370745160421955134190130793100818953623088491260538258447556472157874573846936919255870263258391354916336026012124028947082311579841753085037598104525728329372508622410221621447786395798744665896041150148103332025796342621744237672753686460512308197879570641338911463492581898690672820567837374310881040919716388274825419658625350412808045360591612579389647456443109089209372819380099552248295927626107238226294313548581485479594830441688882268911472580052104950987644619023789317066741546918311160419717032537198899021814480216433085546551810187520009542017928131778941345391455040537435406969327682623443698608652438533134936203080194166980966323092179504990684474382315117831090412335206903396927701394502136774923626159027993747406942520771945444904448449032147008481906374304197697513019025441259593227350377954800186189366047332923638475543895199420844955298982590043633154965122523383140883284686216028394422192890958076084176813016472543584619530998692713728988867240187527088870192749750319083616639182386361520190268856704191681825813866514274129364397247312214665317649593963102847934923411984884334093238665608835145761671141943840139971607552308995197185467200381770425163100316529590784503618750810270714263097374651161886084415998195196070690362815393032424821625657683389834271699079519079704837036591830243694624304748876642590162169940154450908062517138511016933613627896789031734288620863761960569136105179710109793417830850560438825157027078780774664907732741895316915913500979794361991612431482727977794018100886666817825756446694163532915159230427208762286834008078084666667483381330040564717348960924239333449234300182228671879577698939157018145653847525660080147836352388098934027386652127155014852024944728228719465704491619824461854107405619773806251520039410086949181657648820764421657229517497551979758051404879633035617606535075611465039600898233752624462163313540297541489880272099974080412023942497330713713868019937406011259846359237639566597685767585409626639122047734244615465444476114516092394697847327543305844311861607760051260425792696574454704733570215034601705156804650162691390831636151188260775802774244873827266171822519662193990174373916974888769913099767184419716137251906324326410044653141910759474085908417935642369221815062979474972056456706676381693111463361711951003077463963773131176489130011910498707336500667011354239461289616085124180078395406570291123697417805765300599283717301693445305580210183942552289331058605343608324748964579569090878949696043482477698605177370505675715613832009814226839423267410832882036344021116297927556812980248166593598067131752223114618099584237472992921044606257883669771782910856303348675812054864605461416319429054224788630397811724782525990837786151565563310219806393103658153301692679441304698790211195572646763213336396015217333483935385049395867366687133554135858553737711313887868480495326501051870797678728074090330399599244071553456952627187340259725044440561839507482941818403115073274599034116881801427371820594153411288075587229380470929056261022447155311048273902046002810458763621618391233449762974807893461521155484169647654640016505739414455839283002237721502627312243929708994834790482460143576323957122571676228308996770641424147650221068258801963147715622818095778976370920413958786027733470505146033891508999150536448456113898506673515897681492171172310685332373030140617689428812512587894855416208208508111691025518056065985702436881246405455962269950522258131417143946532322102832200698653209881774064155001434227838766760279074870470114871549038771971192005900922275495785756134336985523857915757652013790824431263685227407999988197454843403022101497742048241900227451749563171439726371955267920639337881286669176314846325014934062471968845687350461966657619420859727348647785501772262736324533822071960093245601215985749454674528379533233374798741997957310854380292115629747365639587690559327662757531855946497376006399662275439323683526055295770327809115485700765695667939096891633449632518265290743982701710849924019275893808382205604260242829137259099514738871408098420238301075572359442367684624121630677952024581229723320038249299046814560924514783002376649651153153936791500948804693910767944456252355839858160823613919342212257834638557324886469106761103686609964743221710946992231606933841631147728563792460563055769757017434285307463714270070933568465981706756281556646655365047494769107921329302774561159620801542178662270547945530089704993614628960865190674485281134002824076398687217903694733046933580233554068885536265982955175476761420830994162988865313126721306833548790987341963949508086811732470617148212040567908532731948203036298447351330209319043130340679097031031229545062867020150257490972538737886851796341367459611049337273416420308810868728146256979791652007853339096266375072385723042614583613458983821077714904066910640488422507049751773761406719788569693408208591984561340253015614833316951456324348783521305407115987956384830627005600195515882236288945947116462090400548061412806202462087626723968763318241169486010395788613106247015252577626409205501135013847165743677427744865774015308438611673203691936011013072879042609746594940571194559392707833774739880663687208267044643538940837286396887861724679299119059724373923005025991031530241913621681675626013483235668878593631385324229519068561365038155150357504876738132247204710702249406482488848728067267579003498860957608108039035974914203532413131774070130190776913051087773895692426718726476530387815246278739903576719774791508516324710366379920398990929637717642134114090166197779512848055634977393690296052806044435671282841671766705784510345699447684109791917409698172259876267780586991028456463090273510994926706658147740424510592231019926165701229476402439786149496947843257982689624183056586494119660189058062305446096470659868930517147842589561093075713101081184914820894916110609882883244764953333362381871208154592911775139707816035564171302655854633120231289346915252663272831260056266300479172315962176398720976460018207833616966307218532619181915792643959823436473603058799951984695746384387580074343247364168316949234156665397696927582945982303370934699308825614501706361825116701649683237682585477142493602656403867856147140281987912577727024381946034384815419563129357821512765949389029114099665886278606699646509985433738580960430837023318781528215919706053022732825795143183114731593906045117262895004109153295731140152338538944158761673740110825973719690941605710227061412020310787078908287773298197702937229934975301555753439469649870697818454176114607037083015447371534599582464810081190060819871558767191167278797606232357401242990457465067133051124401705790593082832478012846286886507048940377935381712781425729094231603141512823558669467780522722830253771302156753912591873384180945740864759591069728465882094894376059472000666267039173846336072073764518492457308353508257063751727960149654809163927334176145334294739342182218250184131815461416663143561010749432190776402339201013304227268579285320957581347280737009842099173517505327757409599389912038967246392077643878547841311791608120330638032489214948544726888213554891969064788173652993883411056056115368519895742919340526847980275869947866970721123953486562224971963315508954268399378542763570570109979675309212515033189883946043967829936039303039623759835915502236799244509944982470997270958767327360939866850071274091835771115609168016810573971942949060795439335684089851149189395683841663986494995367592855389553980996399634689311773743692888610470338854140483116912149863091744771808743322859594068452744511584367790101687014350975301905349988849178004920290922893033315479540047708512432846833252149670153159073089114910605001201794868076711077926825249188339891277892852358806021359969826433662084269495654815202038113946334726893383534730889802370715294389240457284571552239253052093907323740526052710941324007877408159318873382704676474186584213257929852800596794419040099723343190116151948404780263329343802048101131666147481561253905296456510377885968734135221981906710028554377333513279292461981009677555853184703302197857873669937016951003260705878002832570039636266142027829669046179307534334202754339064771978385124482760059137306290835426858592075059091691201613677356603712661983470718568354079407059348388835247774805812024290680207928525980504550556389498546454324372566128548945236247760514306550121898799313138603558704268843715276401418537740076152670828453789382060161549850591915695194182344383125190348297432816776326147361234789107189883524793654842468981894560633750090813778375990105288880194681037563188421679826465892082027313165677604170968200644063209256440981183547609842521285696108276143898799742329358695227067596186987612660616367825727917418216767247562879488939586561077686255376961065685279420155611933258175553013735575975620029944031813567879215564096162830933360073413896456412877697288490206872725447447875769199131086712870173082579569498168966995121878471022125360938312043263356738130148960048966062613390418230822589398329649786984247837547156664758609999588103634440515651311444402312942806255666443265024428152345623153014407500361027837367135794998503178922458703816885932069832137889497902534773743980327488287438675774000957912869908220932903059547161213467343012995850290651969206416897381245167302990318244650897358532901349393039960730254412953178134623904129794554217354310477835671339095119765878726068506283094049178142138114500629431717910508640913662336081640367457233477828353318047638376802267532743826601553857379773158624358255906333644758832086856570808782747940064775922465112915662978377127080170956267521481477814230846903224724445326774331839896895439358493562068520807921818809995154539129827708071054306475634317222060890381773695012962691187741764621689113381140579980120600212520061219182859758230146274077406414760034028193234027181169628302849182768389348004536515704344979281595944411853129918072228935346425686312274382185704874169611434452677290963323839335134496779496175892424606470233830509076621957350330656347948810007921722291205025713172854639688075217775278286758604208896483447633973303409654100160500956924269086741856884717213729533872625185499997040012832032384469773284546957010037676495781793701103691903985258830702945682378778444227124860633250154323490912772475140101541013156690835074833959265545633511736547576793897585663463516757859692508539796398773612952423686834985482856889585677423583052440477045653868135362147490679982537713552897203702436653260540824574251062717876053778550907921857056076006549654032652867590222997899805195625887095744802198858215358556954013899531280829525341973858049822364336445486498237740268565831525281641183806760433251541277484421038533293390069550719350575085561736382009488764006413654246600800864244539298586429810755681148978224527655481335949245463155189267410102118715948940403686885149737468414046442330849007713148307528416348496995194808446095504563072645449794791239402056762033713847943935935615908129762875042063869663958051922327565534406377648629499592787001689184354229339796337829957762727372441196780544285118127035985966467440954456386388762888369345455447649286655067203728664121957995197257799787856015641339196373831488379216814094505337671908166500092393140321805943227611627077543894662241788219967690383170150415305338422280004606683423125178167289750961851190431152766680091647472631904444960906417222672064060151607740272072500907902634336940031301525807305613537661110609849680788620289598004073791831435336579043607332866722272677395886847201149231655096787434544698172717785918376871592143386687514792766342698588231914295974331846494203763496750522196884573422873483830254620453231883334724016982901185560735493684532464409818414087251300634084271569063442226426804278357539420167901609932292804134905737471466161407881316384614881782996264026217240035938180626253569677013946028486498642385958731828274561628835255796066906789846952127435867062368841114020681715724162629629567686767702598648502098480442100276363853804079294299116584056113633408867595835928036123979743254215158785219939037479218130647780027503837758314400951858733690307724815541937424219529704310355186253658858196256438461751410426518758767425604533204511563565511064037538359245685422776137845534900000911764201396839241858605666916781089531203197358274332062782592674728059572830152425688542931928942076559972794802630996467973720461827613521326903029140689138436146005207045332156776159565923244160679143686538574864704701438477531301498494901134919485858477702636842386808337211359193763763337184452518164710930780255794680766546804277621973380188948690932467179215092047570024024418614075496311922779908797860131467609595619142255642121470713488896334777375384722523905546352909527767374052469754690302005437003670476568434956625151978215591180739319221190350008489596612378263369226035576921619577976071581655037002943703593784971571180322307322830387435267833970210195225838848084459108513104765053453871831871643235623369536577401536683647717797748345041189281980218847549009726168001791892057887865461190493842176894456358442436043206331848887192894192961123916808058503521991379000636107267919160766726948678594660869324752079717738731026090026587576786221294837739521684721122358345667665156705082622037680168743205791554689961842814712164539249118726485284397153317066023250337252276320063029954331003312058345345466559387842957700998543828798534745611558232301121980205166005394354865564050158355025483671924957061783954952957798587196052140196298329569642056122467287550570941071638970763076538821655225772561043019490519850716454460460967668680691420889815428914906829428108954959062274799987173909817018364840161910499366135280241492795127294800549692320109340479220460843464753752988272203136391541316498722104987679695621288711433660111798298484010385202271798369405990425801660454668601910676011350760779767079351499578948094729728453385916142442430575649362138344922332738324755081676491375245250930372655217999047207682572401836957455416918280893756761890786199978688474273250673104659321469187239672783786339408827793255352511104178582494481089872137791551545857876041683425077159679311183383136329004011121102305759846296009142805691467688767892716077774259243676850495762053974107123032831708475035409875551925094592837198962630024238271400112261715927906428525956774858014969358251750134278611814482945264296196150158983354967287110862708013939307845482604189568161945681472673354625867823810621598745908746207760424458161763653470616208974028724988172841431589042069557006090913667237342527529642104565438456330847852700562503655685216357558459998737098507837841808007826734226530385485212910355679269079594719725677932291154379827215467863756115504588304936410790121123886218301975176381041176918180371037348427079659072920479631611636068108985358575331096451651908907253587893268733503809399279449484561732090988731400133678460093662349240768845704778322990725301030311121614013476849224851560908797618726236674441476793819355592785452969563690347396612045777096711530960238436880087515775526018184490968020713228230183700920935619547628638792968240672565754894407778708442760759042615525214304465111958807236603240519845173845312920347345979138028777444263499361149042212809078466755960938066923764890169976631271579426397109867536917518178940815525834411152817171012486509077510365098919195289528090304361069637288957081738136813935643144931184464945829378982718884433552542389041479685138041471660964408049702072792241797435213115364256824480537640596274750910493318958647845549622272228360002482161620848019608074849418399565301705421872690475428588292595190840790244243294626320164607987327516294951957267924152062577320134055733802431836427704972558883875249118869569536085199148960977528302131363997085844853535177274522442922776760604341262889319238493692539910707808209014074600923570312880363734351141314373504807116764400716509936335385019010737475190957774941146318483977710935622267527895741485922573017716006290847808893915248498151554149638033492461041046595077827923688679496011441515192890807631656304598520014127112395569162163222277256023303797857657441236194973695400270184932410781340416649010771197265652920145071717109947194914043216424951696546303005647667983094865752165535206354425775723549315525162003475168875566794051203208525601267879010364466363885171676341615704513838451696959991706394973890720721599028807606794496694283808862092069677832715219574207487520361041357121935223157296398407431902594620053706632760524962952857166719777698389369587475062905330597095153415289092588464337777074660389601299728538785751204303171431753407291867240860649773672205736070727791637722899691850645308838282883999279269493388656096769531160429251357997553698766615600067718549891505841652901182574278878419647612086998515919489655899432116929274827029159018044654039437619255196205639123412960537274295599633756407828854943030817958537894732806396054204580121732346337065685334010573742637940681232180956557767876996988018411358153572239623949215730181057173443953732907879601164660206003897673972065292286444156292223469770528156280425420967620418803895251723368142975701313955137537738054662175752706678186183817238890809318984799149509097062969302570680134295725263498278208220142482573537935583409909530002538494632654716439785298210302504427134157563767768130709216912772678615874227469787173026975028210387578278770678521023130357107006706054638772323748150514133162259731080230940199500360694584224047774074796862387558439783343641595542486277094691158260730466438425702661685422694518011689680155933715462444869992166788839004908315427378029769272575096638920822076039400064599773538414127336475632076340401875008090202340961675399576229928465353374686662828513565469538682326327302807770717870982111891346140397369893121051036527704391314865297721410048722599540086469163354325276329904456569476086508156564578422927675861461625982870267761864795567444103975161145889144514004898640866950349393821361333290165592181118219244556784128185531323904140847705960644869707169182593936088781629390656686533726292843570479834685622745929131526004686403707218386419825650267968868792253791916512814536716235349182176919966858308047066208510259082136799017221770693500636533213033079922631707601256078169525103308020249804196122554729534392183235595965575131803492497568754319330577318607244582377833786059023930037264384715234481030740274509861608670538657036812206435377820375292117962765352166163512848703966430386039770603676527105010977541168018523408458488979365757384834351343418006595810475118086116774986685878228701820492285445089759407123251985890535760526967224036973046203584351059524025353089697907123718797613355386262607590749377586549464301550224774058621109507495464778969229012234567518529893031791294412544249221376001189855113424950814021444365932246669494668918497200039979262447686748199842166522228592684134530060333369050110141295884046493561974900302506718038916600512140308286503129985797468500166897686452236919803853821487769974316195593445580074322262345299136804830227042233817392453693405727340629639861774696677218956987498772705982434493626681244356259567846729331842433616464319239242540046491593250690945850118423088778789282989059172408269488612205896744525260713623916263950080678070177515230350527128946278027167014937593292772705454222692674399846498239961978375119243017623000038968702313843662117137981476963464283538842036756188842803401734975135086241850502879767533224106101788053807736227267441578786799241791846381217384852872042594759249021490613193648774122148489735689671671278759335235594307139034462683016331004238048158573834833217315929711216493756432341830488640688186532253174820525043646977421522768348139402980808559553111081709470197289486423957184704447112863991432632121837848752195208642888134348367733496394616749585805162234829152385716229887313649976036069836011140752341074519560191438316406296992913110734290965838089028274161434254685218004403277296201459876225385442003740281400171259241067004368571485977359460644066757997204677706591644686699669132679081595946914574689123234060377571895435803538764491758108005223111532042999818031206550911398072757200115843959541955322279101117774273347077815639678949676715240376901590988218567770813015924926304287456796672065171387339387913189025634827727206892297878845568545957381535902230307019620440516793549838147621824392792941437426719416354552711042222967615402074073333870610349931411776511259465266725265279026089049235779742147258057665462441446374384404005021771013936583670280525856781744255002735619208028691746289123973179888439772259150310136078207574640670477158117528518919681366667750108335221542931481922493957422982431142900406831729659605663539549801066686301104911192484047848681489211549300162031097971804165842178224449278260175765946978040634581629324129506571246588562202087865644947668878414044050638855054429243691863046673535325378979566867481508875755737715823266663739849024103740682420546218174915298417275540317066859487367697090686068223499084957394687500360546205073529042660123996126126796619364038944653991644388523483845559933875323070780033258578475336600063942579539204759262794024150445151657929896033693170437680283062970437673575083830820406244528432014726076581919105474768922954049754883575764045101298066487777441945359361237092584968220939377353095385576965818018732738084107184610102235631010955793577464385819409037580741922616045481230119289114196872293780987779855376344486401586652245359638250047798537228235890978078350331243585194640910193861365310953601526612928668731292446680506626415188221377081394751673165826788901551145609989384863258349205251162047291141060127712586405164474818658672886581731647929294684219110707419972176086620289166503913183286069709360332789426867935572269631709113133464588776689706480825502843477349528735996720240131861676460418040171206375555402162125300143717571454796290153735547772087716369058821103126509790102739597836960837646902569309998922953277220909202122414262744272999288540008643294975764725451072132041851998567143190083860342995898463209313221190669669809770177708354922275927510140705856459704401002418944770848389004395989236698428413633690707292684722403830817970467929289334959564760048138007361798620681064217914032348008165717934382338002493798398349415909215619295749189871364397245114853593631074799636436835915462207665785666079399169863137451512924493638960851907434199927845544317468317350271762291951215336654876136060465330623838032384995990910252878290646233112873005810472236145775072642753125527956505738864915991068224004958726788932284815274667524500120721956358714349615078193130353245758201681031495302765060755432643925754082353495112434764130686490563317764813622915796177086804723823235227036153181997937521509257851665917626057137960225314427844868553907815822298211116941888090200327240696266658989495166560071117248701388358708486390615471697063514098364363940513015065215998811201372798843865864713162312221547228105467414141666967212855068506000148016583067005340058067746315667902305007246499740433538895260539796035003049387091532560493081692270263517051936868785580877965767201825210451504068834153756174699437658574324689045657613372891707570784128702733006935917933453261891186987284128809005294542976087040714019745879048485115490223132198207766464193535638883510619780166331098462139625213611918789545693903850555869608073444681152529535470299227702080629472951199861911433752725946367234718658202001634015278732081946600088732031810430375301975863900523779463703364243988711148025195928525336552042071244361886769732186860241149293359521986571131573305226142002345066825803240978956858131841541724026012729371104301263907329101456682945866524694664497221543254297220085655799035028945697590230057748358477930439951739123501378071861491429942515689551782107171062776159166122273967980782823537577463291769901991797137883242698030662568209286092913167001144291383555592500731737881929489106562718256891803517837422109710411748092341711510835703545845012580218447819374187518814005736906846811340122686916690536886845107031834107240718162112119185199240899030589163448004099416057037443920453545003652231152252575440128985221620955486471887991664326146203610181003222116644616858088932490287745955691703064721908972797978738464632776166417413182910384449680352889339200898235446685115825067262419107905045158693736863534862125167616540833796360216784589810724983420288019353492329536975768422600391991016800890521063131285980697348099372131412417006788601580079007384575259426986017380951778840498616873284043400918060480251354622052974874258675178275670602991958260415818353426004298648233995321413932312887964048431447386160880356683786073284979840092602559004352921121109095365609555238502307771110528281795821632403618924540704899281341321758775358409497083796976394455668706469556061209340259818264760243043568563484166230164294302375465974245194553389070044628685792661279165036443241643915005814021742742667672519689334922232868130804477215236038292222695047705123184601500472729877860042550482185442148807532535668196609810668947106159521987976002722182327733555466215900142617161219421851840626749583449831736325408561694877483884790289939135091908184896186020034065505016099783421392607560479340386060711576815224494647463903358893670900899599969452674891824144375313059829012382952446133487384352182187273270557325959480658546134531126663903340189074977877284198966076039783000825959193751522514599477446147933146347679750536485049307327998267762189225686259855097012457301667721446430081416747030788715289525056450475716021549303557921293243129947420604145360673168406857381922046935341695892162321695459944146693179237773506303512718794855164412167898629166225298284474213612997188389159523988185121592929678879891993346436831874678944316064037123804268767486781892368210884254819863797992322663373062766811475851815055907550811002004818788412230447392738000083504186687375855087143976593732357575755458869667651710722363500886583631502353183814078938436004219924660050375902042747839002304932856413973587221465331844782762105234010245757220891341225386070783758734747241614282412059839118213031496616270800720237512460513576653600261639794774759661314191542862404653615430480028225708886433222600028006732979974259618581498492326642672163048538275696494376357432954685297300740167779812187211583761904570493815001348144227916189998700705087302773645627985020763137685841747608281705171880736518106492255907029701789367050208548420617274521903890398448627045489380995011823908666588619535921792020419701562494538952426118923460771910147109521756016079199567438176167615553235587376336778170541330066191467629152349388355961762241132307665399667133071745080115920479245439050705199214992067119547762931444494042888059654364579596989109122832569617595703688114322125622519792302216007442254961190503973585874777301648903551552685056090181647458136075517197769098085221887882190320659838322614725850016773889525846017948847330140008059130037025049233406016901559815004990261016636857812773896716926055773407617488123309872495428850495543215521665873009516771664446242818351042490045769032664987847194771060966752870803337062602386202629162633168307306136990371484418064487132049224701342531881203331085370551878289530611720069163258661460055329705730538460033474672694266885281412963887700517351819360359866109891973805638874368276234698512832855522965583961742474567321767688479794501450615172284746839432836541681171878663396675016686168185346851069778061951917944477520551703017270845419354546534592731637217240152271838992540225100082935720866931709242869706865877172252029861843798650401134640043931620140943278812231825428944750807587115730665813705043431383176989025600625063789614959680616428191050053619951411969129807308545349153229042126486998653869651468319437953572357477794439696314276322375677855639175546695352868839236547471858009875228685574016791885219681006148148575456884884050074075149267641975868965846655954214638801775221876238454212955949967530366426446102591233403999400552938045094933893295055192996033091055686702171816997311614782248702934463009275475014112447414457686042087811847184293539877538157382675743321677128165587792303306824740151879783242609085174594469386576295628242019631518005944330211395079055561598637301895468337655438984943322592227193617542736744929567777808705139824749437270010408422269105245537109037967246672692449760135319519854252734375861664168673217617389229615916525127690072044324220631401528487927244175897348161053818897215338602321207456249574830686790877579410236414179435526712395203436201374624816876928878836076957721794589267569552970111051437994309424777073156889129199350821126476133617020026283569786775318564701203569963578299923919976498764619379326798252418011481095092117807569083694674932142517330663550850597542837948442734748392118433404154996119786332052759227925754841443452451608076907935662220555216864304579682648436183822401660267901292884206848174758473996000213584867201528862483462088959657398985298320471139037700013382924316466920715178941726221294004462854794551532675744311438316170807821608006405289529994475274042035935856295897884126396318949286853812858686676148595967008170965277769056694946147128884954387580267595385654201920016262961182846575746598955737561679687033098086355750903555865536196356175288351329132810535625789648360530521346331069251594330469903188852676845914727327677752499775662915449363961035139733113514967392563057858920573975557037690190715886784087050214933959978975437032784385776085738672070828248740354176970302999755358200202843409977309716336134662428738025104896349288842040596841600251753518276519874284213592101575620505938445000248921841137685289986960051932624851802447705881057860197987220359150041409417150428321362773913812813287733065459860644000858765937421787013699705508928597301835787365235921356916654042429836134282192174204209610398300757858115978754914324627000921371943100133759342349758188617942396641632173624364787677458023785274982757584390386636822751843748887880205582839220512846614197933007620744346882699730362280580770141273081607392839545858054202287141112558349594027674424258943872783851151512921417585398648166604262365299233972151366123611505537842116540802540402695194483434422195570907582368752474554797051243972047402077447184506147649019402489194120983735235814400803640786974988534936400113095611724191116940471075464194216700210270458448368162940260525236698974257561280995587335850795110681592135735876502840051583830471657509940712586899180824442391020306737305145327425882632310232159850110809473782672521410672911910165994049910954323771086441872934933736414903298748520734483785281170799832660872255092866986090744178677589650908133840945158285892252190224715375570173976261244994024626278072752089825395927361582415187529280993167485329498018944035188365181943456822894457867333857127422594629898184098205722422880804092425617662677488700282409410405920651365151669226847364296668375250696249893722638670069527421523436696904536156603666243424494897908096857941429988456053239954684725562303347079124319866671064844394040653835024401913777732751015712532114258395972898598246999220357507853764378076477191804634250278967412635071504587795433270886626472873312911783475050447218940530331170413159945441445931814045464056882628913873047497226494141103275940877903471345755712842676881676879572948056639317690998894587390822365003383575289477977077002256305868913322553081094055723187841451815238931122913073470632325702526672985712873942893835322675922635319454417669484129434264069820486531027093602753430211105572521281923303120380979299336011780099374745850532451043657731040192964007921130909984979309420890481570903448316907294093369890759643869318790196085367598832585842861257663779324655660037859261640423803840031858276330746410926782043405491966106616963171642138570212817651910818436868024926208715377159024422416588029511005157322555177934082768333283961963827870473630785603782753151386295514289207268462479338061979847045639661406103176812853871579293411143562763411622804982977088278577142914137981611959205097040539723714771563140874121809534745813298706356329627730034002281805603201423759047293774425888506254362143999441621685980629111487666721549185010677237657895147681978722689456309730503657405988294931024565824715484587365983941984094004685431940959058757565619572345265657714038639556520219853098269730951468870484449747360130231280253945498956734190447497892656724466892067695262901763223799893476436703549177008456718902691637157777738495833435574042629239300859008923080638164432379726339281281357695778530253784756075674090972912506571688969021346259478442249021095248288588958707606542965920710568344302195020503671067017532736427481970931590727245620909059431082943678761282575535702204340807815586408322973381047229836470001780243042655092380733760716318350597928394666634279870691344970871128639313946184659960090451131117792644606101607821217089103457506697110519673075616987595631369898973842324260387455570312363782080942162930806682446499165498952284879262634487414662965521678214777412437450623039564888359500895006906544846948206679222006834808015296267520366689744682516238977649394218382094324012640114264783904275264331459991123628700390981434502912259785080365225204546704542672700143029251466464126200346328954232690040244620344114923427381289929387723054786268651520444592448980536039786557867044742540223319850526176366623172795487101773305775986440512323914735236377643303367659880182445651037132265195748247243450470750238850987736558419692774245217043058517351064641515018472348579211841717210841983525413039601624043092019132987993307618123193171458764751231615717049867578373848199184680801168554467164966916695459923896338636705239684222315253823437549884342604296034113977143686697075587350720231511306857568928272005555831913436671312830766503081516527389241257218081967705543202726729767965216506892853316915819136091592400746548250210829017942549882620377852309099808260598035701082544824870430739257683267078393750536675075757956041409612915177211172037787962221913181120151358789039306039430139863870442172379283483413107751619192816408035507661207483953556238211956226819928829025638423183618196510869847433503878024315465564352264946161731396574780685153892060504447671520741321131841134536733974874490147161274250427592804784047317040811488897871412545585400537041478935502223353889221700405629297735923494796974066491722267784323453643732554189893883448402593926360985808499019345906073393999223978187527115473634566995691643728641432417509080827966796955037714633950613226474175891104654743350361358071848197372466730279447109586811937231706931320428741575971768021313176643781420513833738027217858333184611857318789256181905738016874091038675453950829675324547224787695405480054024919160689696602127719298700445594215672900114784197442644786041402877353976252802061469765467739027014757365285487776552529500653927866367015284563617848045169874885616712157907215097676297837960994218720405485163761261221988947912211380929742867953281037606281955823350197587589718641848227020798763194900344301936183052184093414816911688802715343955364288492261819749020175750962301505651945052809048796650059462509608690884218221468981586513261880916459281366591687779211050510228763988363468739005353437964282007911566616179382181687524014816869427659817717540539981788527304168609760606108394875532216283243254712469801691742576989704741489581441368808989742211384746662832410616948278647693721253451793147315640147498175730266716580984238737412218880621614436760983787131725825151746782896598901624532074495498744702292922171759000931182095201037556177606995867001657759948007553029101525423405620160489744678132141832984695203960573561815561895087611173945594751519053467781977320488263465785647824403604672538833944660198782834025625024175267658424573896767549071761792322110453192461941675652254054651204124306003277943645651997447803855432528305808704966140726498151169134202746616709410819550230927048104006030566343283608479993541641851933216944468503274491061845168776042537918652593625399670119970951448207209532049109244787959549219513586113462805025918697390016402347927867558063104066282960826838166754440686869880229164068867507426371800703474940673344810099732142693077160743900750234736936492215332762461727163316231557713355822397836419936047033796683022767549816263160270525331364720306668101578713127818818878416174878187677185054459666405457047464717208650580133800638190076811422341131388656302950501202081478443060349297839084641425945435592448488814655371217491283855019936268383163771126106966649628433014178597570295100280189968764663703998224404824647973019546306294470485024117959433777038920321075878782060184664745431953296006348049977278747935258247852982964990745892507747961676079420374847079763429308880735120951001120126785404733411677569043639339767950591330837327448083235756969400875760692966427395596198167174990368774410367865343494978277862052477822721565702880165212205493979506812538355039807880917181768621838760434893241642392916681883859248859870945540957389512009299705267774936119241275320439474320778972049693471062415270064039155741294912448179295606856687027778129650702698568074422969439261501444448816804492436031145684331196932366970631975487828665682775256613711344856745127024349533000920927901794374219973069511026986535310732031863958306933818756126783990405867963134476118854113490109754809918670414433006626892209710216657413501281257463704675200078399933953850357770767070372071052311852071488507981214970354210499694604112920784915111447082251424271395358242451066143670326980292882277531108755348899035066410850981066278404515232074846136621887217327960043315603832858071243240734718588732293208141909044697416894179699972931075621156410175682667335142424258312011487665951028683833024140722873257932442307660558868051776797672897096184113070189941943422639688687065012883749085870014560443061218252483035885678021697370000784567607275434611456044423682023028031588344894137451221483131341794614879847957963322014061358875034821455207604548547097570893277315460106359931905267493396809201374660329480621423199921311789299979947476215255053047757772411244994883476360275760038343214594909306266082930408493507680653625681301016869896681154804689507273537957583960090298242847774534438527830268771062658512314702328350255178263418865839223012776249896721107108387659193751193483906953947440699300258317423521143338417388415138899371046460160324102794195779581462251305471908317335080602924743852973139095657455340946279849825148477394931559888083661709997415507823524981971346808177811359216139890319876212138444648061155057540010421160363863347038826852234503973565818768411906185886719816190943027287384356752287581107021391371970342003865718611525717163321413655303367654844794965388434429681864258670534729904206994410495410194435484740943938054593605170085678881891570443835902933990994629075935300881920057615598967838057259122915994324932318692820286916727807530946452480455969114716511864776134954302742704993288813635620186421291115539969966980600923503940909368947338293015859390199791323343252770289842515827840383170561957419297978240046753578315220737760023627735727153185834762677755016663101649751560571130838660033379539552343266802587967216039578562251721553175550693932797803353740673045464222595464351708560446566527692604900302865296280026369695568767090875514193187958690963429319375474333011249839704712834815952776610290063563384270889748857678023575087048296407590299541772224119652117359793245646776985148571801635774116298589174725545391691673137389540991183495682523798422511578997030241857045530608452148446909228238290801484512752010629480461444052709805842517414942932742851531826022608433982437508296354888668021975232266034236943581319512025415908188551084232408944449036115139791101505881649508912017352497482754707730582916685226714308729469613043127355199801574073671094832416993510110222453491885118311199053784035095271845547556982683229297843125164731224266117620620711720914159301550821117880434151988919680714328991293029293383603818691967094023952847980670631112883120288631304155957229036848271649350752228766284752815302262626932943158765860763995710859361530586566437654119600376239503460433901498464953433782360427271977982761276728672129972414157955198929088461132152326445788509044114277230919087910798853567952702914979747030431955376161762982073136230535300170240185991709894929868588925570114944338987895007905876572917411545895580569595282809478919881445924956070568507605493151130473929235064372103392214651752000344978676407337582623300511819261114463837916553214596881810023426109782024350440799350633540081782388834512881095360795798027981551620275053785051219056043928828619080931843954398621824865450720297527461818494640351721193545029281603248427838901326808423716467984449491819218937276207197870563442869091865234624238058240036399608143496899358630940540890216394975656274834484940207517851182887439996361876676032001363647852417133261365561761377081704200978704491760671111215828601277532084998390979993045728945856337950792894439551630217709839367201974114769909626163354999047155595303992827892409889496804886952105903393980172180958744668057060920463482570825449761067247414273954495789253436933153697137700795895383303787953528982004846188051933886516297383120425473575994103365772106517816090022642526910868540149768236226166372453568805419338156137942706419661552625571221984782348184466242747539328572119218887138408761605231440116084248693048075721559207066022867575477111062010803106618547165778400950696015068226885521628298526115769752594297090392383713150517623504709030551063532726623153567110366485047677187453463978282100999577553821170197135035174442747271444783246101277151006812402837064033192027500265274777544616472025018049712302534845803486435784150608724478575833108538790974117993158600278418798225627436665737410040146522850393051420577877303509246042374171738698016579050112096468811377486915070838782139490135459664518356992427700464903293573109489384038425957106129466095170694415836920365850830289843763240316534094784127194579413575434927515799282312994123505539383666645173333439582762552585862342047381946961528391774840593133880673662497261961060027280605434088304566353437002867387771428314085788538132712928360820345077416896627491828090336032822642606784997701609110221634627103277309140958725956117908550104298203668349728044696007964077113585495320499500524020443893932481226425705432343505740660483392828021231542392584986191726045628329046209454412826672066844828745136347493313879998397732638781736196656366632426351517545650343428241696091201311958186088522828107433817314319251710647629234596469550774230602792476151159532041259935044983000113650784991419588844906621948027154545892463858158939293042036999760755904200520803591984868541054427282903192649159653575501899761852441734012111953566294939929041317926199179141589897554261906853807396194439901443975200917948678408799615016012265747525766594112740399605088979632511023862941306181964117840943679399228662489314948547551801203828835141811849860027377015347381731028256414716459049372308071674291508127436091827377627322269468096748489580979216678929719888013142101611290920706980335500719634700426279953782160057579169746661386704208007281364662843639071921810073226727864393046624688656149132657114942641803050383360811335731213107819552213268251479325820725882990380145904028752007273342770102490925909141254615271797713312206602824073253473559769599354483414106596889853107535887704914510728999336875532414375227042252549438197991994489835100709660239856232414673412133688271292679215223728305074918369932238662685336123720544361503225657893508529021471548442597478578951154823690907189762259689826421918973578593221539511743674455150223205239676028285951279605064721788648177715482134121927139017880499722548862211845162881351673599830350825368370825547173034661250867473127919643842456545735368359637860393639705304743202291990237764715197268291509080301059867380073327599694703990987767949165959709065945478398572921913749023988187405292206551444753705602173615602809801616050996525260143087763937570254216540148911312934189812388405515484718539407271869630718217268103189587982248918248229916882337015144117486744811767266495196228035610474202199908013521420956514727632193923342236151266577393034352298518448734354260875293193817788234014536545742134040078331562069833631121099916483858530763257154090735291731390787394627528821046501321165578582513111223852198708593282934114426866161814957624281222606343586537697617052738351205667192044046821207599390895928300834512194743664594140640208952912286040614622683682665503713701694634625752961833965023094469888942470718187403362894231400018310889329996032827134119959366677059172185397770554528546522505045478669236593905934378544532183380531089933093137691838995984896661808044838417808026277526464442198434278532378524175427230714424137124358372014941368563110924453915294666351485760506054699680790375313661508056143440972946775852282396045197996649370299036445813217890125324145239319404300638710795179661579114290112396877320317959002379496354275720984940965789092089842395726168737745526021891605129961478139756711332945159547088520924192937548838437817518469952042990458853366707770175285643661198997133292746510906037516613221806631884590718041739751128519028309203957047944363232581921289382241515022031624415748910613640939063502642539215301965462691742879870445607809437758303967649367448016504936362158386254500229289579364150108701033468440947625475066750574579903752535395121821199835109193362904519710870724925276108469790952178040980175857983089247993636616374251419139130095736245739354836490429613111478411858451108369831460616325599369966689015777789798332904550063335305882671601733404118726613793594939761870070138567174958530696229203799940063467985961283374973915902733213096285386155362895495290661678311433126081579765068710276019092009828095984805644615132429198567886067469144542412512279501123846418617290250532636724379927760362367478136266102093751390377605733120569091555685471480478420908296563145838397658405890860729219124921861636196815805869018293940333270972535131229903229780989151634918955529048499546284413571098118138503488272446212039533950978107835436103110483456972498079326286437494440595231095046340633888541782044851572794545898784809747944454197996820404902300480083413104765234818893299545389029245711659012047052849163936697027727399469486694887538030847499717062331663954798520167851685700684912692459727340299830510356530255590026179841384910735514999411011070440372967078721534861772535618528009374177401123133922342953697382719379038155389171944112686176183073204690902784539712718324623693258293926132766015726416794174777003122149945380003082836633193409644628855191308968627958026131487616337228756057387671840068289289642252083004639282235834306957355920228218418238976084969209598778436255883563655708379376220651445136577410658927851248653388678298493712616139235146051635484392056653677715026057029823325477682959998007546570350476623677617664524452546215354683977501814164951012398526464520960331202313487913484322882161670014705752182953046257180584197259268169326899374614551927292185143711279889835706820963760233060166624007787851623956214355247365946689022351183299098650640615991407695140568802101368979176440467864734856793209089292545608519481388033153300076540907528071043072345069338945617826880346174496252794362493296630612803086180907969371518794750661558553577156821579827290872915878348896155821990291986686083507837842848735787596971532353449579625359327759068501782234938273317828640280918152007103353450841901006251470793844053856138876619945410269459670448626694427265828117226453990698860412002646049217355427948394575684477916652440252451437105865488975816280583355656135159531545961976176129561552303754387799039414885374051964223569254692975005746581772708512064596929931245665220605209108778683007827532673502623381901745850889025107524345080512299709062717465556019455616844953761175014993157945997760843034053939293019831685782137062720209350405561401241317522474905458626868457330413393956560488051402556665053190241404063402414948597078191864837424965024803083305988833426806940675854073819322716821726196706446941335599988410572931915684763294576574707761084644694124689087482617846437116705431527711356108069909142531675560737083708476760696208535399082128056425774583625539020099176817507760373860017189854860696174813186421149239619058475998823567644429342519258900437634528880195661628668619104498938147115069530108333479919061401241098798913949571204805783271646458464549053146527586228424691301683490932938516674300238148360155647153738854913120227847786849730316747830937534178188939078403958404813950940601720229777899805038430087650391409029611492235582225529543026785722229757210580430114727017231707174450493544846990218898015011607098992207093711709102207139420659472057522475706843441618417143645742533725930655451518076658354818927978922991754011976274652976701956911055365729776083344283686744228533444008293444531940810143677112290046531932681414683033150333718439119983577173449856359560271217121863504802683805234805475716981886007968595873470537173213661690482270698458029662087862560191911541469790354992019443391103067204463429674573768674031636240912962007393352027075874484001545543062563272258953413389387442093362307930997711098264773238299348835163392727832773912193779082820214288195972297376998756702486617799549278732089766487061232314123650323892197354835785897393256570554484580449457750171171965452589860246066175593042082061732571689757490222106763043580873670889244026297336268377627018621099945397978333640989949018940515466006141443899196142666153243127682515541133904650517674627763507113061243754261582878661535146803740329608774913990557284543002424959098139041322278951254410624950311802062116215600298387626107186500866500923919305433599709684013117253753454975846960810889748002796921399086665861599520271589701972596049370489035424704327824127364899060657899511318348931457571684223908750377316840749316435326658084203062926800989174093552980026603364171636106717454617630940808314430812727237540155800637302457788318010395226323793658828403041010593324754414877093284084740180144649118758762336331496301424191649247806659080636093952737603237151883974808207139546034704030702573764883587692241346074394417512027283475050422695569786826589058306927359214323656925281823795631041914034279734274817253474007321093204696501305387882965386904684284998589519151793850210777009054549762555301508741301678427728070879200505673034462273536152241696005163169233429032774930416198838193819125735105692742565823871799948197316835854482048312751850715582027855826168913773185151627647690690275704587181673431160860765069822292282798003998327877724734395172690567260071073366052422454832070522764217205036184717194072716851308691510666213332265789684213471974736985918053050214272509495103361689481392994852520858047458728672895480672298550112055079332789413528661653083998397049767997633641501795554536650976619604177336280160767835585529331619798517564793417623020974478844790790167700417584889017275166640110691266156037221957732052620449231833346969638170085687681828460453035371670322884889647230534352056815691485002145934326473833933431921545457039916096133885053413458760742287682706955361247052601872012896533811231579509075006436815189376314006018103537646854362873441722904401395464021067210854187375472433585418339189227914450581940430626527107173012278862544205698815205778508946345672012333278450905213213529777520554363324028764915708043824021166129604596755367943698050788596916027082356907673514333046517100232627469893072653163311401398557410507232547359029444257591321543172772628305740709046295606199060960555513823748830247310245233334534816547855354671060231358431581079671542678290564113368292638863997722585910245505021176541477727300178889673420763452437502634722530132193803954062177768044297615175531322672490963701749182918733254783893736962537019157882685361520500662530042892472996969307190739395683620493428694147289567421500466954904028778360134044646114261771977174341307439494371004236035882832512990193519752893830347710943437866326382213068177736030816586520439453221188236313000392760848809131408179384753938305038052562664498647241394385100806729767131694799449936612547285312702757683035242260882847779270870407867712149563156954795817972928075064790537127156698405627617939165515587164181667375422597509707903040015141847415973567855391171935998166119409466257208238084645035385243001738535111760250506050748985954039110692459216047008019219213852584328273219643729217797701183164881843164614516847154496049757867830154980077088307314934056601702385106392111795460143505112406648623755995082550836230600315935343509473437113898215091000287565771371401908781277015268354320241024923314550798595303955063759770602618412208174375559155794388887710189676024465074916489123228747972413333329469628168278985682973374823799728855388218702433818023415900033864235859402643554968058171948143114721641314912929785912349060609669484498475071888454973423544306784769726470030416438828438007719568890167635430295067403992046111485639183782251757473178787128475881694251261452696935374385246160832591512935870031673828973109333628936032348624333655267673222343757150485626239433390013146325290633458312368058957089480530865943307375146827764281476371559167008856463049862675963217357481195131335137002107502619950485429777891348992419175209523951279771709717198599897211844386007061769610418636475215395727137217635397334980930663672299262128980002218143378755161771859205688366626075120887571581786836172861122741685757226216747700020990122603881507029084371140934027054985135672885289705129417791786169937109762863936181540049543615562974870727974909655335721626002404108400063967144606891691161945879771920087231501659139720547449073314134546842712532114375484860497561935926189069676935688676005873146906056200018204600423386254304591727252141459731650334864395538308418484707101720801916998956392201815337595591607186641636242968806978420306539807812859991149557637739790604954396365283632792898325449272117686800131270896449020023369931437798915929302490912437063872858301259197527703573780082790622711803226382923067055060143248622062761208136192006773918078550353982130818714850708666814090498299142400131804190948748431201896906900110086342516641479003248814230570122110873746976500784153747422827436748730604289240728392909467552333272840109063352975958932313679815210528454912794977415987412231628858093238549814256736281644553329523566257451424410629779181729384482468836423300570848421752673611219977563361554556381544850500176165756197227645669699974567855042820705486335743661804150961220686981935691686438442205581387937315861776778371382377348933521735999630462326794309669132874903866665876897396398333956212477801053585193849235613486814117479165314344516016462295383756752005612988349168805201094649734939011396451692193125000456473995477637285303061887192961431504114943484044756056508507136049014619159280132170513672172593224231939437552031324005299210473773702040785673955667509524299607307589097140244453742313994834569293057679236750632828822818020714096216686707088546466669979739353360663734038708381282302367922292630176716121605283087733922783923044659674466576623404577948455716101809338432521280058813217529687545221007712349335989101651855220557718640606016518248744026535114462559992821867629292367731268693835593646571066300001168925202046574760357276744015546079873465026432256972489622996729585573196434986758383650323917270652032204294343089166652834414780052636295143782720003089699930775184269956041507931984956335616262536943290749397420611721008036735014440824147715493304863525757583900171000230946196764480131487261420183096014787514468417045763394422682428785905756863219118020945768100555696328322200938448880637734561843785123613129308748879913132820079095627351925723397638450115307038994651905480772371091834380756202791239921295487826467275110986733123611130925538471571847848992575992540542444807531987499771997769476621689959989311414026851823491779271650115755018546991515205016874242031596374483680129761408001447170338246967656568649555516193930222060582209754332705647987858984283974321311631730803728070525528669156532570192646477627999902491147886843708556792208949894060128671906497202945099504011647114466321961668083961142076730584016329861615425885923711996289106888000762121097464858652758834181670783524145484095162362628776447970039521948736635533237362747854416185727335543424443505282172311535794664943210444706184392945203283102944979457651264271222744539635194408268647011154367831993050170626533238055646099367962005889706799886954149311341329551447669430818264471313687808840450952873391912657215452844221704924158236960308059318629532554101414153180336375127445450742868530022227182025997123577783584830660841337972612314885234391119842557334872642861901468278874794785639681348540266054305847609708090539767159100574980839185055262008714672375332349479451615377554519293884089516859657140470625624220425498780220617070572970459441825585403062105230005183277196609459943060954306539585404525694681570550017041142585970665084626083694800979523031441671951438225455265205675530217385608888368401466241861669096470420314308465811960437364993942003368554935555318262417288079326364570897333339357959727842366833636792909403225828682007482713291719782607173464850226154528651463118874409587599671720212728232977306613466729911536891167713012030225440534413587636757591635747459259679574591182539231202487886895696909657838427146150132626026766467542233811078784683446341184194815608408783220098991759987952458674361139716525568573173821331584513982212097796417346102802829043345396496918867158158938332051177799835500912398219638107580604900341307501472540384201545645612801896456739568076467584157857317062661947854860263451817714205866114433492810137640074338851293210016545196447078011200467805366279148339054785729336724415713339537637407451042867170284320114363282243546681526559819814131947446977360818933339409381838734708762879756101857155263786819199408507450901464286023958720246513882617391603707110376798462623110772140433477017131295442150466264076620558988834356456310711862066459232185349898961795976774214437904862600628003287686502036182504000528212831794503120922800050527208537255641677758521729109547417812092964134712440960724558349802559302568124878741164630705476380043593181350952470583610542318125629192722248986170625162337311546559003161351785422211464241767381643546933959297536283698703098355552498656545941930958836074680500961991967158149511173052067951900129581557341120327147897638660388781919919128526045058208894759669438505448207005105511942503900290932161351578113675055427567985281302294708103393582363199000119791292001251067016689884635778913137851524543915017658098447657919962567086189389508938153769914011669901264930290030660443975625096403327748911521264113504164493129322442444447400706019512382967819292140730988454858928631010191282009462451339210492500456025565006360961916815000235264355835024018978468984372380184563912526324476879886021035917133342724207503499980644852820490082742485368343305252812512131076754760348691378745059412468742801608513507147876604233525285972578350391979152798353564249717074180678754961901364794782515563361824563189914620683848369667653385347540702840092912748188332456467578959407598539163465241668808863784155627550068102656339087813948597207920647071845579607614386730035845694461924588636400080748988034531572655850107033357139280412655266970582356834236684703916423803208031264436431527231866106711396203253469949799139329099812360703833398777771853281242769646426111020991448583562556631982350597982363051269385365571446806533876287597330388618219702482987116127177572227967439977694424482128254867017048031846127720786583565562642806737095627317071516791753164195434386553590081860921104767684206394383440533920894922966561128620485182302779179857909194144079339372583536102976547353487382465850815141303585799239752733354795199019279519416446939852202790812963504586475545053312555979243133704940477248043893611985239314011801871441752708513154915047039921216102059074569251960906194426230481395282152847086748341578214619173077023239623774510651116576653286362064178556874844187845011614385123309388398619288891021604485275202970309693755118899523340013872654021222674699097977190439300244209132406801493379149084714410484241470163451595081811636936518178182989149581749283554861102765273228956050578887011057875379140389392355678593229556745341289898297033803063318621724099472165898119232806523549184642012329597459541808414962582317750083952513507404290944144636633225839455359164786164517234824852906261270280073104790039800456009850573258952191937061884019643238316479180372708053181625901598805411630173679951290231428429257588438961993827386590474486992020404694883829707349214100451932221244823433873532662347306141115197055158055147741755872972150442703708356817319419485584342226246672909077950409446929942273785625043580271877481242236268472469363143003405505044031824853432473328156675154845149837824822812471335174003964172426377626021566899345452346239867974266950661966121958525661991163158841347045005554906888808023936764380303370197921070517463096792700019208054988071175590212248627147839125197402121005903943693750555958918340809662687103635394226259257562230714913377608256091719577464894638650708982836654369351512944672914861973489031853960880538790697695386629570232717499809316940228631536890216184363384844271409932328836014038515672501363930255277175703752247646650785115637209687021231123142763460840335405594096506091034277315458035876802469478340590282857839263060729410273928953840918897909753208117768540553839488239768612237302442959478109850773399885444868498444692760850031470145382257575944629903646249859470063360646927008687800871352610663479766703470040375129636514195332204897115942811710232625294003619069584717833009739464665661049382059706748572294657737568256405586809041886186488003644969488199275037247831854404168549211832454168566022996059240785886518892400068867545514100822030193159808011289193096419933342557998000027414359349212650038246523471722685003623258427301693807635664760523499488570501869082057109960933586035172188283676264404690676306880727347018997439493481315701772777904408764186794754449345856838340176633963376987698676446348478637133145303576077161896460663156396802638426491654889400327257740243447537134686262109895988795992825915536985636458745786333651218314958720560969205738364356086745022202592482860228338720408189681918113118552857882846915697251054437279071107801676123006238841420306029736494518648873896886568086406674023194671036077876402311511390951111198397140038666418155922121460174059348448082044252433168692657754586098640127849474329966651505461578504691913187927745783561970059541592669720729649582163274385190722327926770832757011108447729051311778776433789231737675207275958015743170083550104473565262064239822334196289437424093444016097321794187182067664129512381149077833845591702443876997655377102208469851213847910275758518506851615365541102297789675298011460710569758128655455991475963062784517669229311574195158477922708313941893917509384788236227530346645195750450594236718084058505215008933675627016956118456542583138231562908966141875024376096828129370939698570940375652328635896962943647465093277114042905399127831010498104068937142654773704727051581043051919050095331580259943620390253384607142428380673637318156831772709830847948993226299818889105520028303824158959320323329699526355885642640903040445681189990595899529049142683908762699671191238922663052212504967007626524256359235914371249818897814744929352550868311093035786733287177058349329917742904329638887690987326069457792863463877522718470414217274954164607268767066033481412457389727214503060192214056234647523843986333308882263285759625604490261939350555930009854807298657868306046376897103095956002064578251082476657421669019475134057281223857265701098705545933031166719065013656882315726378594427750501287661731069391141556204627156835877533542307101510958568248218155922697125363418155695522083912588627769736663502856828812323330962023369281949270789481817790179677003890800857377584371478217059170318345775450044425745237805347046993224208746862221845102755879076223297444265048351432786946979084492010130857902813339563436809162129759257849403051445203491890293694841142797362764076695428102420641985599208179307425974157313747598527945756244596926118590035241461998127901413317159027485005469151215701788236186978113311146015358949735412840468168039782759341498603215227678847115465018153109046429732112016235612573749779461728571374450251613639558004311629550574174315910547483926637730067533445356788286492451902403976527402508321620609261568526257507835051838662489089177397921477390435723324855407365288804603585307757214344411567608368437300464770330586786416307851857782339984148598456146701067770216588910426503878269091585269227732587511074985638969227861540331692505939229884272070859883066341056925826963467346096436138929740664459669948072360499813958854226662012244979890049315717243870238833391553334024865029773707491434745964358933762024891797736050929208999694467613423003903894877620528427432753338772428356160139857190117712037344135574811532742250284208431698938685881023329218955631784476224826634421246658606670386740956051548702923396180712445673519393790017817315014707314802087909532820859267670165301063883315313502153139228143293440473205940794102213607951946080319965150345366107756307904665629065875099573456395598678735883457731915186485773916410312551252170270302491643443575439076347931559767708864310303230938735493583520904253678806081932042710675590212206413641617182621969271970708361347349964320674457481159700137476811797552667040489888039442113544973543745019166280022137322757962236979205300743226656621377795835007773491014814971002472004951420911783414987760042599726255821015489680963489290904554096466923914205691333719579423568936064881400615503818106027476047888460689722060381930891047021549650271458106128841227171383218592840416686064927065168443557195220877667271621215794328502583928421954411988404355456735602818799327431591929837005703598283265556036161218445935414574622973874265873959417680353450286999910796057659385973166208260940830856417022456650481856582239804822073104255271401501567053362977944675448361166819642651359733563596980022368705086798652723195465767728144658079041598291400622159524980430892739244720067558058971328839365829084528856273728042646793983708565934752762921893763066815137278535462911577794763517921689971606139999970866877648524506880312345743778035122993465635288084767310762360214488338898115937535301255159212448743835287105392916985992595029367257610665054751646225404394598800418679162009196517007564481050421916734915375100066613382965272381072676776742197197214454283864713847796829274600630509406436081472768174709395147226309315105192376562422118679675160957639258056704352508691312255602448705781992581502666873106793918596053771981724337926106557526114746152501006519861123353530411146775376380079254322979550310281710592066740265958089964460505637586794547106500079788264262746021077194798828783927147580957606319133856230648907364948428509493690501880604409740963316617573428075424900975594528638715572536356662343868397946181969312622367089346050398963357713402517199255039617698129128762415349879568751543356077474364515127688742544659080164889806350964538658683017424773101250785655152914112095398885922928170055077032360299330647554313321977701867590233927251084538076437985248973813663940490189052799627449327804729505367976083727768881208186656939354683552654986490016399646790004604958062251867873104307447957586090546469290787043799450525393572454206711457633175194970636844909652913347139610975230021874022398244698307921761709757405890008937316912143049194305252336396363217287486813519584109661600743613818258348066697246425099173056783115979552532659480841316522132661136327949876951568831120523398149671302891703333096615856546464195742098845909265433515267726009684825563589421476009962708960597920939263973105111278407364801404904259628788052936662187696665328091413680866910482906743429103591900148179626120302461075863426307014343257494297687741790598564866994866367176877155458144328212414893974067182500491048322970641890354426068833880312447131648329044560348004770196959445372038406423578736664659824509092169926196595280943535177354971499782997280623204507576803164177397543579057680796424641665702189308453903844761012148937129746656534680662084295743573243687425856953232192492641745430187324151780857778028031309752886718491146733374363678851234435332323891801849241598662584680144461695025311043169386366659035040476532772908933861194341920486380984961204515018476392103217736473874763874961753281075604257567671335356422393751205257239473837892403038348147123971887459111272442992068636939295012377525385021762794373941011707952096305557993574477593081409435603309558162171787084220471005179923404668598025925452459546425628552658205939227325079684836774918969954803697365769457879339354060007755956708488926393232969824355516494653604959194425730947606472439344890075871207129824945185689941395580184270229591000669737265032447639149371003187688059416245245498393682883528290718032563766821721517417214535524488986217319659238137253707475791025778678178246115083727320524052932410188593041005691054575623569004748735190506722602198836931090449191601929441066340808603544865556762530283154884959767734839865788822983195584886049251719377214886916698653720739867053811209974870246509239011987206910153699878051938590526625501778549835100203889012562326127405921053647727877006491791724696880588342882003649536170315804182147822496742005943112961356096439741984177672598136743885768369943355441917713969554816104741496266386726279602895160740203536884940526912961460514020949551464450170768846316969879195034569659288512209787964899881159720903320698571731101772177917539395959487828480900627221608049525382353533331443545074182848914338571617918044923983910450474822061195870566579583902686217509998018796311392743475986958479464598029925186073638227369381521664720709588156698174698436719700179209824512340048773517507788021826100944003942476600863183700810390317114955512037551821845709561659192918521922701207936006040105163887299369439845929817749709004258982135691825513157844920981548984481211319276635582542053873171126785906011028571583399462810682493359416891804620871108486520073768116936178840660928325390870977139052581569400109583741699892805912363377465835793362409768344699034500155698592726402091526806354734904415277784737285091873802328212433825850423405576496885408024206706714443101820689920148006073986823242332909027245538465686657445524010446114997183644400862994996058880344739663497957554641456338514240377395771329224392285087487895021343079118262072437941954280969009849621184570229355393461505692805490014578531825577632864021583364717397203984586066287243346816933731118873955762955595311036688897376510431287703374150327848191517910609765851695782094562508858238818756094658840170217427445774213865742710056531071394832532772808020766993351719849339130647634076911233617843038081353729916745328998060352955815050252295379375448301352058019700207607401015821724346566489598951766764905827500054951070160649089167372397483474122805511482325738581766981514903983980892164527132700183859446219670687739535390523164526882846476481121116315844337859415501897873028815529553592907715152034518619797761260648630650916966608630649356953615454193766796055941807612106057964504486402718408025906194289269336861827961755998972465074791740445281958846097976830456728722034768976802611386957820180176769450440442341455551111467055594549690517361933828366824958721295099374999225097933569823288195425241874475998302868343671803543510662793471532029682546209252783645847892512914219183855284793674503702737299155044195644955473961518702420807869665260092212381967468444732401398819030623636395892039449312475004119547316846110693697899752721496058644103401213679574547716563960609614566685503409078694141113472486367433296788477118212408847082814890272002421797451171429907162674421305038546574169616298163116933790190586682239024205988510374518819076299122591291442799520700263764675603890565381713996639360179618130778248538054588873458703388208573367775175228089205427912797486415829264395094426281704382305253252326076468997347000231334465649288821123195048713595797920585633782162397824165100564907204951481043788493433938148220027473163810314125970449966333299562048676167673004093728797361070912194762852979407071043776682108453787431022709249433519253699966567301994318031430118185741511407658630968887358017487858558735874116732531507344602116615069271876575099886756600320579111738612759806191019170207698076124190912289619526890567905179121042381042840734282423456618881405021331987221938619238967045629494231750363690273298183327730023792601893063383517586015941342919941323646137991387289129147893924847794545014410119665610142263427263726549562617039796626388179207166392190506075703329245786580421496963095271130784114825676284755051632990418521374866254701714372827417138539024027922614661691672619305552180066826458176421296995966932363111315619627036952842472571587817676243056858365845830916304995334330907269037521934822314196920377662244418434634028062944586896240177034067064632268546845412348601882743706078200412598717806324937046595616289444037484856211109223865267993600431629625881775578602862534031556481376108376928079907106859520268375726725078302316070479149207876666813643792412624684975070065658295112803960904705239309385279542097768618334660607083552745965000159973308896793947260814891625969512702190781422559786788836700368838603223393034965058147412080619451793998799024888414903613510057981796282397839544069078107631923016525562042035011943325289755914894264909654799637286473615044298340136422550254100784701128225726064947350688466808741876046740437569230840401420993024188801532467535144180883047903399240766743562303903949044921318942378644328056122829318999974152287683626964313087407983543619398626161740941232756947269012042022983107759443097779234234403958741063253996635838700493874432935251494662997194652988231035407650761655313801222738002295559172225561734616850066886016555502736453158191146336883107113817115893614199427108352839293918522355913462921505912002944037117777670838562797293655928749956445898678058457422614872267091964697402183350212818801036900620898597200931137584084948029144134449226489143518583247198092571023786043351573589712940449662957342636469702192714630382763394235121053249946087779571300216417367763039449413870934428462823479131821965907630779473820007499950794819289712820826961487347160625916533134115870142453168001847029523390186205085668206560420651167277322096542849104775460444912033029897974519180197118235101755300002712545699509905380781702013916124067997368210438159132442003264798061668924472902310870417587389672819446458095726324724655617559458197302517591951961624736692051036756419662413509758095814290335676495024707326863435504407097294678433112474484532908743196488670903916764024599475104924421352600591507087485352469623747138953088033508260102032852847941813744437853707131237955598313046826626402723427514062719872359479962046548642970993356304085293712267778402570746415766524985836171286015394916276407161478295086598426903622750970654366691947201528322650702419797756763749336623789939776981222339596404382629967386349997505985878762066282796946791515323262787938687066723014085043365579417616885777971229252026920967352563126094470218338356888198470791097546886141432580681550843362053568618924213925646413592864308077828372571122487543758800158385912290264262271650466005105112463077959001689388722101825685887710876866674698606975230221761733403146974896725573052924102672782966684503434972076436541425790287248448024035686125461248052888534805490883628970546095918332949358339318589823385380996698740214831029810900139868830751908080394456387193237878381804749495001486143631517061177134154971881211513901331268803748391388778391635185440706213635975442338636610354252236494814529430501713575821460225755398395003872597456320320501278992156624565190228156784006964007500991941277980171867899385141524556106037033863700798187365609937734935981194198257908640003442715396030555102803218652518177432511423091457406794842274697606805593745709425656413687798628041545742290379360459558235168271171396415982292002432301173455346023539282296209477354959297819258111115264465612369628585953504474995308189901412689778159659221855041209330620956773614765116681003395203403921985842023820633974495133378449226560112062573542676898978417573764354771529845414171506212897656395405540732405579002810716186703558194448774357984472097394886872612102329697263795474368213974540179322070092038545402494905703782345965139746563573142757629594424694810541034567171708762788064218838719701363392355970488405132429809211112252156917811671160444631837514065646575334359631648318934201218634476135491321323314926833445339443911765374482202898553535631623207823287960896211821565792096155550816772753533847720203763769631682173243946130816483278625793296493706794526454233320602761820394689468218495557267266010781035047631197661996951466930212210192363861258705505771696093367657761790516545536821708152424986042574924765120293937852178235015603952052097351588528054480608415210925098987364294639657919105926501194193083605539363588172506812609232622226179274379531850231012565690805331125200098681521547405450202037443891164404382136769355484808608058404231353936890763077675303271263589830003983561263160646417240452499248901482567407061924558068980137681466926321899292947269066982251747788027944044496325043001144918041394940328325001129463632166167326295475372065128971464790233150100218082707452474829924011478853504818793470540158764955542594969468819293234570379113547643869656677551669030029987097063900150184097012551189585285223337207030292777661103480596470390526355170886125661206980098217836594327324559750278023910213392153671414192641017939076171915543188767198123615721620328512619338414251836711853586897744211608756270726148365827029439666058077182772266772759656656313282619572469393390550780339530051162126843211288866709169158995743280923581087454688490674429072238309261754083778475616913066090327587178070193140890698590429234927135784294862839019592250321235920050559668869413355044250934414134163075936948498709304080257564203059003602404090498043894486064946426427390591081338392595106429924176844385314351992322306514483707283080220113448681454209538980782800084414251369368709876630400560871305289670929741452634105265738537911706301228309640032915160760551150178911983910530833996820191616757814152260833739886575473004528103891355996880960948169470248951722562754048024341198554015398106657940399759641969337683668849772066010950907070359123594315565830329453937456388246943457186612791188032728932361253099412489209929436486371930546888368640081611267436280365340842927794906905906391959060095073438509145102633047283591066508995032918707625060567485311684601139406020167689173681995766568778062162783344438216890038216936463686572944481704924128989229105697587409970232683467380501442509239257654567137529300182996510155387860271251172646101948241405860357132810285998017427247904694162068587714407302468906842076453059281913826459342187184048686036197403136793622669587514628009744029884234611106343294444044648269885938427506741296785823713793820209453850442812014670831736961548805700920249451404763755858920495669057778301104252264786205820433945831440320244089192452861488516258543896975657251075505941949342528761871441473245363714188314686506738644803329140591532319398824301577260703858354912387394065291760772475188901698897618088462632199965131543219686084640356060601977732881251075968858221151631120589782838485364310297929485849494985042356561345287255153170163243172346911136578305220687932497904027333685477722433774610542274462509760006318424534449633845201617577120318588147801720861890311692433837016161790027559262291850824639234916285090287611383031614989187089039433055559463767666674582691557558266174075305784248500855050251190089250250802070848777676864108773895397106138237698779147975475577614665805733317678309154670345505339644399692784012800706468487507271261860269793722265784780079794209322642332272027798314042669732834571779357400182724922629174114277942193580886699923721490502201502958069514284519892336270819086340803284463537092919188307717631618502624898790545452458567921720186004209660788642047050633194676942149312731381776549560486882052058403720039096349855834083965951982541619939147235303512748545860140523189410987380918481469141128796096064918328651772725581068368333640636083707786892382356561082244037860356533382052447723799415991605820989791480124769439244766267820134144065605227192577768719990391199422872979434325964941827089094546818151911930443922532824150980737300585321345014777584191115382810342420876376788691245424826555958518145920915334052160314551072567834406799474380318979727770100049067359413912989040362617904254564448090324323355419535504459240944861143242066109571435802264035671133313429552102786638851787248461859767316791429062918078862120579376569971289202765697892623589808215202614101633807493045142755252432062958899747035671539740523042108094742802233218282492978813158131257313451212614911814651248439280007178489889720254517900184755319235252345446513403220116168241627795182170437065753271330972192629226883536198182403814052849957351769269267167154862889504148952471994635074605932250112180214925062862746286716134808429478016827922273339461189066439360314202303550886451612367673929538827763283480690759998691845782600439444345745570302819019638129640427395897291144100439931339515072628818145061635969499712963339725856341644638152129294986986228911125709353330753107896398128457376908646991827126288145711550811302719066654508160093635461141484070859031121522117687334366617232232435663167199910578999260210996308386453610373926391491283873810815796058601300449539244188760780090342274598577794807514029319108770874614289219949524238083690932352999153186462385629023553508018197451134916763889114425954766306723171831946566697860307428388461037649218586398823091686597292613531631155721254158749797705783235936049139403521225701230364432347535199435893919916534812216220385066884335331344536020445944717891377983150200386389812708848463798339855986019114514053133029282461666970920571018500274008529197737114865987968463789418004310576624000239146082461922803007290922396347969062728650887572680848084373511859865283192458435222573950204790086133234153084477316732651625827214094152132651388772515575101782680795993425028272803242933950279734875410668792604012270906697889496425295208215298721507481796763477412826540199669305833947569805347692074283359656039280355329802703982232273253740769091021468514087158039338579924141524433490188826067052564124121212976585085934745876937179166956745203183012086844751730254596962157846437441052092037461623322419571915489700521420135245593315347397908628941612446547820879308793393050282834071268438388364905144691275736369354893936727398110530383828736151868093611022135102845521697477740938031277912548720858564443127464818114384232334244304914642980295931878019730486926627124361396115388874597543928411439357748611795602831154536800698639644388684893649016995429931055962365458206494612767561285620287630224008145466282019826193195143815100207224251741220507160470069305539114904221092576489774932821412638834926574076216225318622511868500071559019621554067070956828307726690738802170744337883775171304896187601304372860531171459603974525507129442054238364772824151871352652617996964564553050059104787001356782420292135621861273142833423783927665824872517108736685151777095586047850374616333616038214358312444294853780147564879459868840369778160465577681862025304306491776256766674075316687594497197217738561008813938885623427556981185731028867780708496780018234688448029374602907755583949780041517653955320140351174475882045291476829812449017670606515655375458245501486826188710273570102707603917880559627809433868639778300436890085344711855413829232272218777478610182863757999368732411658900582047138423530083941080696240498307211856437391151281161225233485902885019695196595744728737327957649302797297751704346511782553912933521650359464806891221447091405684051570987092745263988081899094013691499570638507271133693604463797051934774227597045647739781642936066044860570042190340031293020188213576290845537387540228845279769558269527531999485776668814038566669882095994285032332807461119725162943410898587362441027391147112387706366908471764422459028791687188469127487287411901769781021466255012631538870885132532717779371479979132601725478637769665151942266349674168208690152249915961280352595733024700075255534444658507906040276756430037773159431591619061210750014932229470205961700790905699222012386705503899813241606868911453680347713016468181008986640041971952621417302440514863239926646114236765778789445027539224226836116958938038797706883098753046936965502019050626905739104925511232501187611212003818969281006334330177484491925888179959882738587208415129104797780894683139935288909911000570230329293608716257302893760626266656440474910651714696019087138344186931765883068904678918601918848782264637127260466950073533200555573283057780764022032337362681922594384659916279869743439127521694904536510966095699005605537193259355739266593235798344523672482785802245695171311836178925985218344679158392767327482416439840840447565947553250042973791486874795259605884768651082040923886631756175717344167860856850792456840450661680193400623669591694941302385318597276970824928798390523827446031682530981593243258851482433072006783328495267083822960232292922427656531641694435839164890127220796637580944116823566357363180344959138180441683941000226458756349576508678258866624117937423843077240235417368883711983857863696910752488597204260898323000800560707977439028576723945145443711089608640001665965238719090940607317153447292699043576397054983925596977491555807895680348953221076552144330225756871091295077777532269124393398888240761620441395921972373588796853883719109553048599215360409212857200231896350978045491514889151398612438035346635047955707817709164337399713758211021840154722636032374228480005497828642738036290266170308115117975034163763325781316146331080847858440077797608991709320987233343886974334922232686157322274555063409744686416837819848460191559755347429361137053463699735328610641128603218399696830551616437567645231739641096783115176683656023294320866290569280881120390695524752096422824436666994416896292009693847665913634289822618380539718834769835220375983138903266431951951171114517830564672243997845407194158958480245472210773122160770110550102048448316984199353035477398772884866597318295382676406342084073090531022125027457897882154604967322740139535861070028230016351208778717133276470671654438755986151230030306861237833083194976951737894823944410418741299484941014232529195401465112141615731279320674059146234025862842949663987872639900332055302806027969279818476239342341008207648077875816302165120116931378320209963299190368900041967145085712068211239337075077954369068963395473237044987084687855714765238594168225007549895051377651336814403520460463128109415855262301651051492845462363567019576412601968635774793198230868005714332551462069015222224204145680524373960343933135331585074166469011424248838035518651182242931646347932351602563677674464782552037359838827143727967647163327639557711199005057798694132843486114350906700290401062956181629332497771790533828979644252104741558074149973340547014520302541745357077056382669139233297772295304477861147502066354533527915148775318356223550757477613142139660619486651893562518321388621635729743828239654688547202500828267343278734735860600520463770430272891278652970777612507070677163235484205165914752783264666469838806903790092202573252618688306481450202334294796939436080389979757281972162580840679683851399430810550809023313485769153444104340400765036513872653267344880517505587533154549529261814485411765976467196806596363939345531353218703976751777002286935436537102923653165782612469907868380907504875020928518059206248053496146784665621225515272566855168360937421088478307191277392764700219692977966726962139922586414360439202344386878071433816040383624220252565182188358568536891450849301990898322476946117047408587264572140337147704886035902096124279762817799922831464230504582853148141842038301530565181801698833776685906050475909929410841965433071915926218475430956234174151682054034920095610086326906809420514602992290542523083620473292115362612857109256699016660926704384305375267863066118167700549550689532194406941724349695927343999249168693192099589357422857277434358927160587888060397563816662604351799905684071043711620176390527457178087234543196737857366071318304292216893371535582004804206239709860027907025055089549827572878267187900020868944280362974010916776249309793698939017615348083285831395581276285423411556572686146656987017553985402204522715068195278258990599678952524011517338263758531846380997771472329015228909553731776991355313521798345911570100968931451775262273046459764936530488348637121170742197533557026110327473303242085610159407546717153568366224444684398402998414719731487339267011603173726641503774709649432737456993053148236014648969724828246081603973581293495774099856691044529637025352897817387977503988241106401941950807792744022441224491428173488215563017521725421092129902059424255363584803204357994284519978923374738329975410421509150475542374786559757241996956636041938590101466230461180176890096209666042478228275399017996716127499140243192142064288468165138060310536332508169201397641150418739256497322378582879465638654407202751934842358827627391184783871198260651546131915730623888888433067850110176542352414812283390827519150134553032305861690978592647871267358712226821221889381730882971517114131100810878758022679335568692188233613444075324783558736077803176029972880956872629539058322645806792312681432585868945354306224009925705512136597478049934793926515163186589112516324737435194469222259237691633485099397452325565048759992892523610223188984161776093679879116819981086829768249327869016561019547655321411432505090874564540266976868418325800324159693014656497036624967907508422891204768401146877900051686553281724630692704317663466352267803056544838518340656407026506858384997225094335305115827530499885638961977314804732274528891583411352088220711766238770468044827686969736972129400301686028641326270506317786066467587886696464486096657541668243359630296383588176495832545261196672888711532748751872284307336851710500750466764886767537185926314093974497314756942898011064781339188080988174836950600417640138281664772049178474496030266010133923594247356076935239199293651605424323601393114054226824887014055168290066127669057230049807634992280703225303366078961757027882456301468355450072312324749752454450234289300062080711046981528698050598297521885760413295353720820202060237892129385608102883303797917156725103261180865692863588113613695780418730590944412232188645227135372103519165265525659586008308098854493157201589966074240145168815031424996254051698931692401133778609954117397911610311791368015732996959764259793912816345052584185894221422434186863101821783308107206013807601791534115639143915258760468667777576825261461370183435063818175688566971809429876494462857667531370979211141552371634274676864398054575622324249915959526305867471376857865435372243648562655736775086809385427251140948964420700351733532901308460224763468353107235852365381902323720082094745602441953170301009389537712587327414464244909701874463023478061273989139520330231937059094504602785426152616969118032681649202684873383938490206251529218941121884039257729305879207540586680026729784164936633461797685301348055504887251714850013030116742748716058386100074022773422152923085706258276754454554090372466709513566835040566231765995993839287049582990973336842782497539191406040204277220727336974617215293884179146316614400108349438500801140091184601110474654190315500271636481775270078140182150193087184803460410228576696693558922214297130419888296518757448708292686963828104225360099231911280561370262332515409075214444352809307963952508715221169826099257539092040428083253897931254875622771485238134037682697928678396823689505708009815682688197713875110165157902265286419429674818991569462398107050197006528765310204477761882914864632538000402311058718972987239106065330149070190052948838182389431929947059452622997214005810449588528475349889038567032029854329057937069465566610138973507787994772792997631599840036947117058797075387386020822227801203308991207613903961045423419784572385157985205472260764295220376199377226813688408367082562334392206195396921583147752626206798254892472747604481732405586802528782720272105398422733239315061306439287983583113844211890331301009770850318445580103372520334552517635933470920824651232307304115712133494555074265497992930654296715899525963980654905778165994513498386729041283260934410961739911928611255838243574300922427553245926833010438576159755604588563001295342912419391646624906349850871426886050682164304241983376332032154209108892033534469662958600843215087294721497665432177703932378203534025606044209307470322855119412825662643859110874621933262343523275017438370831227159732839211943225989408262924456100672703993915977062359809275415613417885843728664240062889637106282719870592824276644124816181152993933762516205257810242663507646187890062206740016375388602666698800599158675916414063246834483823747680243751500179134768839449613134770583372347453716686205512782244508077227795045223161894378614516692877518291929299839088898245250945593839216660348991213524919212665004508210964039485407543673271158912719533610553049982630057867089040616534580928442372640824791531663936969552960212868435466814282725187153088084910717423196960111363039941399182317059442763316226517865899275691103868213060734285520270388858436251569228172503469332166446110095435980999192047528976105402031234009429326289086256530880982979663674139296130021683284913788240098963270589453755744059808817156783714180951049013535550125240084073091119532986057994325397961529607670868900121491560899461481617808817470070531179102507010527518749764557927387188310013022418402930046615588320094265724857196241150639276812073657073944390492453378487159014779719293567639197958717653990363042666946893239734903055713434001755115804412315362536741536056580426691982328666291980514639254847082709341594577777667053246429337389885624291091287561185445570927662805963217082991457655962727039436129431322731333731487041386769317651196093089348129806383926804724473114384554631166033676230836928308763415059625092894454979576156140612370762069968900041718320706921832371734909130595782840431733174352381021372711522476854052570660169356569304091487144910887221546679919734763531750920483827745730872432049581822622747059870266634440405832240730163181765601669613353331937059196128183052657657937768213603054712185949888506849337897022321822206706043128821943925695571809819468876755214844930846194260934354014419673297368117400324495817691588158820308266862778552851916030026685470585925713592205851846287615623831321864189260701706993355901152031305237873610632717388678918041768488827853206396120167552914147391526316749989548404254605968082712422291000941542676362788940193746956718305424173178685400697538755368232187019450348459321541846283227375959207001209408605496351226288088650037148953075949661196827825608597507518255674248568894976885155805393743192060843466716967673801694315542169717542336372102806413640780105344168513536675199285853284460721724810528912387908607735293812067386288588822387267435437345166780164415855790654207685054415583995649163040496683829396616324118411486404710405463216878434035555629277728673533819827501275758911278749678938400941139995630228854830098239842577896043486016610028464786880016337712297581360109877296874333274781985101246703948855189262302275383806689225719777711232637588150109340127027561171124451493089011689096789835179625441414813011924666648283211151198382147692564520825188972751483127958681257043181439778640471597131430570118903460444065779660297509129301843796038858907987057792716397971848325275585475095892098582324858960399826954402228786913127095579593945332892863990873982742736635196122067611116984419818773499761740891345016516031544075557771497094578358819351755778888533720782195610675625558412549648807694066558958716835806052461245734520751348234188437094410485706168616684359967534075370534773758403094551569143175777689669863989129815961862631802490971813309605405756041919764388313588285335346086294284002087570015668196424794957505652536274211716416967003990680171124772238440435027068764988029718750130941948727560258432787376743432647255948660393600513182504637192411873398503617905738332975905896127578120647458019376051945018531989346821454320638180540309841547747778852707877048703287501388261627821468983717954680894858637121935491749069455811997935495730929472531062235980859772971682261787761549165431771535582972942807317014570449007053750677119637881865496111029785746081250575261820438711568510928605085683738051255507537958747623444964988840690141051704883882988278982997155503879782354735229203704877479091818395654943477675728831743837829251265809517096986263027024638464605413444732551799141282999213561953926500883150688399618945509606635698846071697373565938564908023639809160063658834112637131587661080035471624209591096354953595877192074266942508076725509538448953134395640746864961012037176829847590822732645992701306902019886375001654327479453066883854339477990056486650075859439693548602606108949825137377156974958132667324259359595822441917029347365851266569340116100054104442430922192903930705495616842658453404956319912338854522170176354486647966084749951574308887363020258593730324343938666176847865460729398900005149935787596534725826792606955728665253375805140438853400017583308647602984266454162533729474519968329839958046236141380629754255162066035465784523168586110925409520596584977664891283188767368655451399386342285178200038894050948101655195197630302268120200892789340185371311886462155010471162854545158451029380409322396769773033157771417065449531347221334616300404067796951613631669547783177702575441999178068646860373079038340548048881779525962265792148078202630103077166763303302789824251459376468507645856957338329720158224280391195388237535030102860692413360406167724765358975226472244061002036809907908923506875358143765670101072706758997344438020576573200358948998953395181813728190412751216832208388558429685610861764165836060729630152504873200938033505486060607329440346600825873397041744506089939635656050411300103611363962787162678295272545787824989266509923838809052149511943759088945935235259873182385518053335453593667054661988740594094149863474242873763924795988704339235168948586315919767409480146274053660137883815695297654375878158565001429836296334050079056199906976026484453561310525185552622230751556911726714918607241914342748761711779126000900213545464001280688720871319936297592517397284198868720689112400608879753539602480955222475063260906365408587002873784827843893396488548510234642112870468523549928448483260604751159050363045569406532115975888194447948048632781785150694473333102845349411711894034912704601049095989419276973741992395899560124741471676486729322697664090228490046893740700043196780813258333157444076763478927474877486722607820800108086684107516922080332233902003752643565736050274228718444818349699542285021417325726243063439252501171644384310267686551191820076437908299806499662313688284252042382341921034482127302833447587311361561182640854821811416023837135835427103830205453908147322261317130210413213156397740922390261390923900175363367231430555912728732548880696942420548825664905914226257171402718118807928910829238314539815312587563939029118749101972240834872757580050511008555362513584414407338320188623745571684644207535602487034966261459202636183297680365475639562044848576884340254516738312173235102844945143980492943485405895311752923207824191540163697525035195265369503029808677199417821810682109950368841735212498835974147902993296131684640856885207747468040096298947486326691293797752437677184742006731857740791918894912652309050695505855285327822392337765284737294996963207983390457239013407755349454290435202896107153090896487379407454707923722875707104881014838489472009548656211788827077907165626105030059636299497899278765732977006909269631188111727029378318279419502400375062753356625625942652335818844398947779044269059247477119658850745394803128488847834714631880293736799201196458070145086771007856960070453206812213190510136325661919797930230300800975583152061049844618478976809799962014124171632924467740977071317379014448206562378813865828621201212373524074781863298582316185945901670585363045797661189072205413846398097439530637992988864720180030629595629608942040875424435554421110694160410095380687578045640510711691243678845024556022849705282752503735357709837454741939425194686984142894390662629980584584171285774757749164802654740914166079564361583572908823595196900228941830807947861575271154116138611470834408893914552316742291529320771813605252372082243357685472066319897160772450730760709198192266439156452074670408348581785552675038943659873139428977026541699857205176328624669236293250345673683344964079168448150773172670255628399113053373999211852579104980486939185639144216350650085375871299937603885881679479832621587399495828015460455293636759654301335008788885873055176931605359339147900339729006800536265594721290419528356715795962033787465006335903452831244235992016297817440953187662401932419898323877595661195369664842615078301427325900978233017546830863103798693587519672596361290929117667572600521767482628030043640180790992632309759204684610614474623077243481714836086722337466019413661411141435277000258484193893283118287869734308707394316316432896599698757733233377321713572547385973496645346434818458737325860412820076295867638030375649559624486684772945790362398228314165096944840934888675879076484823840427411065470040185138258585532613717980303166110527975713358744811501058346018966829405150868864969985462280737682882128570912439780486864467272302731059689970613589758921204058889517477226800370614049325701447833422279762482278148028126008634830270124969616018524667962165503075594882870504605160551885388861824395490580392118887721232725136851210188697052440544336286738865062956777661748683987416235365341199564879832161052796175992930306112421479103432366066775667415106817562991992133341701709989201353623284333720320279548255069483715993380129088508279589903765620750494038834773441226104020532690090572295645332731539698597758413651870848021739422793547624987690980925473198511351548732613838821463330768832962650586832224559267332347422313559457119601432874405205951480898806303882747211221301883959536005280012037387215458912266016033009008471373117436094300784375045301050867357346374320619891322979771030210455435773639038518663265372238745778002173763874101385556800627817791880777920641162383045941309478125322313834688655835029294593625396661981444885969830819325124124990806925122167756412076483600401261439652720757497159495008153576822999774036329955561153289359683231839956599376686570441433043972175672661654349560928051772609430269643225678668870221998652560586196563005577134046678064865230757767940015385870556926842442480049750538858830322699084454131568074756014488808313811901771626670766412496371177369806169332255691691878431123628143729664471505826998121618187133042890557909752289223400138758645184365737508288684221774382349995802970136140592029052346894258324149282034797069120250493687518896022219938990391927257114293292658774227275087008674585861072338494349320933092615515253725543868613683073444725199713027683282878957128007491261005076799101049218194403139421029832378569281407243255253254030964245655849687709694494853963046555894320287721928457841064539566820525398660056505875313063480261509093357424484147878094624931136671602389199167199014983521018997880911534075424286633674067950569845466168461875056648451185444381202599279160207388216159251015919642722478247218588305067137108931994998628158342303424003371783968706107689457650851259896216772537708139281949221648582007429195007548796033231200845422168261464952309745420405460851068123379337472584944860857280825556570864847071702394960944346904250074162893977424859097026453651513883846700573320650034531267557786736947613862372564548366227096613288798176479533483250743791606950395583454348858864111281269909767702106993527531276102644355769959881253467094394809848016440153674727381844779076897547631243650712029899566786709707392575631730102132845916201968575780710776577440132146250747988695719423762083946921464238330237558873815629643062293705115897703640724554575051384770603529472221291554638587894455062964789325933325402074341682601946596801903686954293091112820490048793765625238304374464383363130052116266433818992327316632135656626276663488066192875115515234679499697840034548731042664554766456050306592228657037163923432981360113766135759563548356048928408754765965955216952547488786487674677818204632118970829449688643465693274787103624406801363603611559934444184435171865329835683185146399747894370473840086108631646672620988911812317883822225496587485314132083181948355733517481859990893059082042037180741473275945041277214798685428583502142127054951099275613166385097634616811550078079259510524638259795245351610330640937806558114909147260948874851407229545647218018969671555200474749056789460679353220329562897733599841495778832981147266413487011653362489006883713031465875350638725233294036802847188593319440002918908323321015563870083111035550379903579408631555480740800115666507682333685066327327656964716730075210882428461513777253787137049268543815220356613644496206488170805219109611187067562680050039564064469913211863438707395849691968547832300499192210983146419376615872403571021445847627217570277271055178041006266699321082248909250221671601511340808618025291771407251150083149352492511189336162549366572922717561399839310790779853150350212681035727270613002944834545947472141173386952829773840044187432180984557247350007065986758386483387938313807276386127581535853188606239815921141865059197155309299666571932087214322764329981143302981097243341027391379444074810022938195186507890467346092358141883506410515109469028858197871414104485227172467006938417471165774323779768609166560268541898966632289725125843630462182720334355438408179266865113844977704260934522226417410967050417369108061840315054190080548943801281710225922788292552162867823576683532746042452135029678718769827935691632189721066937189864712564533178367508219673903992462377717548279717146331283558505424213669946508854093862425250454464459241618595192098070429733316135463149922378969363805301970826669140083912707827029485969920876302670425163703944820297308934852625413357696117767239222979922220364253866156966831651101373054155158658591286617737946616667496070972726153220748900847029758332015017408040455776554162604899914022407432386003100281189214468452403403644644511549999118685607651427504632160258715620727530281811458260006841934599771334571257941173549345266477196424759302140130488008642894708063604039661374137114078715359472954270780771436936507543159386384830883291922375813812830459709956360750648126970830858295059976589187951369231208289929037368311419264641794103151339880438784704006385102660017675810084330543716920623603294779381231014773313437424798694448547185698285338769713999161590062606502225336191535281115964123519887524059509032951373269835011153992342651518143335102661574216312758714742749914604050205484342838600559050108718751852018749212576650308084037792261777140533865339107402845930432874229643052572501752079530849101349922424550415028068257445149365114945885566445994682551669807699607212835520366641509039578536703406356074180150304647736527759463781279422624303264205366175880431456403750613982432761793638687228836531784797138374349037867808878295002066151059502884013339766725736735066309567980685315327497369977252180202821782484524403247983079309612059174129874332253710997164070886323047366247477216364588765691290470841811701509609629251786737117080797330114729118296184979323997432739895395155582924390194081441972643729541618690526239321586026190003512407820138747565183508560955151629984414547301916189589462892006579522071005778009280660307905779456611520145973549228157127191482744619713833062376459491585918835314470227825394303790784322854961007496033168943312414367549877903661399085255054221670580616032082052159538182225050666832921795995675404982799752085746296414613464947610275237762909242711711676845371379545038650813565397503206690609568760642104687756373317216179711238696350332604193447382851995049344311672513623265364858664180781837263338176086131784955827725766868251387770779811610554076807078000196045363919974099667693629948352371002043022060468646690580601342363066141524690388379717545641242426905447968186166083466040714208346126961541865447707655009955508147873204056883282261891161951596132027462930658298461380533617390052114376230764015834298168792879963048423695225398070466398541467066479104724602045053867460989038411963678617773618404770876894899132096510190030825524637908888103755321560131248765875185223054440294039444344976254718775974419455586399318562805864354850397820505601324749287762332215956780690304028373908827139558518822251478315219342650940151725346026991294929512359888973304868586589373477556834923127885764019755211212601408174686532299514237113840191468350875098157421149445943726330459164924235138187189197295737177480668086302851364485610214727055092198588484266721736029579224985979704753202052672960783556302930589161093182589084115782721770593534920064821178604035322825519102632975739526800452629071515807247980443999026601980110531030657009199792958887976078987867563240921047276075143214030203079955027917330860715813150402391858748801898633272647114211507529554924388981947025600833933311439972031243512565691717341030875501407726972009346938477949327823037436852866448579844561854987770135608209028334700696204486541900266497313141638467353286336105255184979148452613748103826157017653506112939958087454394675151336582269762329436431689119224302791479500791466854446939808669667765916164140200058802649785025798556776855652687928335523758969011153530197855407314321832053472809910150761359466573556176066972745048137064825876265203057255304293144003763901705768086902444571749234638090520157627797565039334209412243265129348031760959299137751574840611016000104711219004615069534861476895995362592240286684472652011690422875312780231891268836899473459529128009624318896518731327621259688681091343480037776096621240281199095152250439121724096975677297154844119464745625177709087307003956009564617310916633290943659584866362227235620516272196576967783848784761726826998025781409609556432456386137051516069526949018378060192562716297252442412506176586686032277421029573805959288012258693393027906114890178919191765612587394708059933043240232901338062489575215751700477692605858927981879197467414881619319879330726957634317885312770262906633449165371801801529027288620224137150044752190662738365963958431312076367449330588015788083669208915384221965071029594367859876367704373636682452562131525786593409120821017203878228868458097383084154290519929027488906633070215596990446306635481387420727995405054993599880408387449016994148941855381114140020907846937112731856006405301646237891266081554533737632995204684619872494808875890193497962593452045645147578500889419826037891761351179212489433515169969656656433067432895524573295422218987573701531413327228361660484238260241892764622966067678878325454345887882639762372835685992771811585409702880939736052915023612462708466824021341029350545331320327671135477553832402119179416892199565401740672968124687620333657843453191294133966690036556150184567604474966074582951706356212515796217308584690106041638177385153827688720747274189285858360814568939473580050246295823894470245255979381215326698021145062964168564949264028817625691378776323095189472937098446643804167346264250068253272710505756800804010603841587398460101139844254871256190434156490976023744724239343696668564592724517716935037983766382624587661283372085385990164767757614841842631268616275678528333835497272629696780637718542113535911107211553924592625338886824307912456922520701424434852397154980365500637544802131940133870399486210883164160182265781491061558972199580972419828593800666748473213242846810854900203033794695607870720546480627874574338278983235792901095966754158721604667345822069376441152190500245258244662294803747459476919761013874257609234054482756804437875374376785222477355635741063918877690270152563774143620096752480443370228635887949243555685304731657171988534440964283688232691695047466469346773009103780584244509751992275770297515628864302336371674929893469410954767102764009859455758173859490125593423835872341894143357387846812216796561748116828898518538099095615558512510092180123370881008288112107812020810076465387541189829877330799689826543456247629755416778743429122502779633304268036484852964971019732259763790919213311415824934798136471977677919292299163851419796138140269505336044310219389908314067006854990622309891271822613857739412499790910435313725607249359807298348356265271085818538903261750958399316758001985970426533820164940575617186104238943801391078543749012745974695469071716911454535479612928681797960558060676293080306745223841054972962402532203903119426975291748019054536160446307812681486927274163204024353046963894638322125665971342349035109514381814761356690616527933831226162746648123705120108282458838916124324981752285454783804908665306752137240089225094825812856902299032452774052586415942356404724909877358659456347214679218950854173514048242339231812424418498708833774456822668370018772484062546602786878886474094512135093333359421263451016188120897310319974750262564884918601687158023055849308357549633043212939262913765483878223501279552679986624596230775088929954349477230698857533659636640925741966623260629689110833671618296792993044772134975331097375107201451325111121157077312416989012051342695873940046827821675919661057698348397715004961820417153897117315062730892987648564099268020705526634862452290614060884155444013148230009060369604927094780380857574281099648301224567938295316244850300299702042158875108028821847544418881458000159989535479231040764854297023262537872420384030854415033882341254898642608098228981631932505488705604078836158287540282316378526112388827698372722103221637144268752551829997943248144891791040847350642429819689541337923869243229806965850636912764708807102465070365612506306239941726284118707757237293079240245261706746618589396043797733660429877258148322093755886182900527037251352987304079876263128643190241672968745855909984953626483985292663172278480239014929882551293365483291645254357382450846595442772807112585215298036878219512472401836230849359782362666665202294430123234566352827761977099207775116345810449546119096523252480551212537484233700991880838785831950147539050160280663962124913013678969218397199787521744921409718852093001515047499051657653433490609577918963734517475722173098704837603913489990423982198629687238144950393248944129843411088404162653823604042288460292273268349265788746660084838650486088766897335134314049937714711081505513590292393099189430033040366713620095059213170355532427708814034737028697054011219862710131774679982879027549404423206862214212474455941352281723616205558061897700252619940662757939679364044218690025660611611612091155543497548969071809995431561254512154740750123976022850580712469861927399327405833910538269909951765371129299276219245136606811773541484062865461996305661300173944822193827465672860118101071580462711577293732080764957441499204123398883085668570507293651334287201438072007964130073857960855317748785284002347592675830038051518836321686746906563446618590762006306277419873681208724602360169003888615268769813193272856066788927155985409953935041882784846820909309820029061212484798169196508570215987878284483299407769421154426432428152810669441314916524773694290495246450454442116653504334863564057393257481553598829972990198768020384001807526717931509649058399395563643745719053690395417791928448399129464067301636561507572678505431735547340875497298346076075062773053473432900198145433374494891853287774485774780356146632273584184125379698019088245575514616969126895172135586217218859398888798738213442024397929930434867660515061561278713545199824730676361922774610787129717910111488933856470763270914613974921582744791313836167003570444136544659970546903206310113591199724775318527432729471426579857464443521263336219740541666083644115077906912783757186269323368001721492769025528117409568645628697092470194937687067940959670715321759634417153612232928946436229894524061727883458770304217241701746390461357101494565994586987849795936117013619149159096973593039476580860670862922291539668815066553188052014299180203995618992505973234482382108821228243683510066941709383572163582495864802137857189932229366282246187748921489967690947972835634163006583983901143605328759222942343923937821386419093137994627280846072417170967678645408007777481666571852746913049188284222888888397048410080976209242100189870375159728913359416407105989052171482270600723191159291474776988924661604784780029104806770210757014532158043594837939139214676489612100385012889510443798988542342090377553404606210865743169288099754333412666013241837502752865624467845201400646644989472923759779272833003173199727810422878976365539831387842910632649480712561332521841368616039032850476474663586929289492715754960882346630905433494576623507816135743970248637229687325917545602040640671660314546345211412894180076256896484939207154950834561698237118917285844135511293535338998352128827807129097787470100142292596210279234875896727497874740555722625979846029795346479797598866552042769052366894332410344321710090557149097305579428462192559538028699358064018581758447812711694378596322012431320732496578584861884754054039096503846327270083530836510053629102589152471127625600287646282587721742717993760427414991904737882834617542854357535575068489437014610117466892527785353657536622128614621292352258703386226876310679595594589510344726779334300825531852147394032016437214391425017697807536849232772515170575805749588698938981253817229903881856370389899348699414206007010821908094074738594070243619461460939079055515719934448415624679050638457147307211408158445242504278646656038849315552568215242807054136309246762663889220949322913052422475798521966358808831016616634718724115388168906894294478055416403384230779679297173395192877314091995117697867512573287532027534266405160239521687776672652268920137086493082999139712046293965120341858371783968011875038134475886354309832706099364821883443082260867180943640488510300379335116928651545079301570642947117137192286153208947388586820702381729513447026120549652930515057025745036436709245069919042313706191067483308530270594553591913220982074409152676707108580435817968173557619824014163093614816947789637031015204769525840068629658080167217967739094677922584490243917149245505239154162803486981220321621678317740288212100301094086260414092966220512784994627733296747214370068742744051597318530572574793701947399968496912869855086983355093404450559424764212685646049280463009968730762194197079352799623241089779640443541005384018989202034379526423128786962697947358446475056925540176239165570727485627586887849136092944444243125295782008741591512757775859014096393476405482132799829236733526719862080433275388053134042814005013514168598191982579474273778320761745175822861374909866420678557067708701529349110276194303616274905651078140609958268563562387960895017873317780881954637244087010511999495578072210660561129328761474781062881335286909690177393849204179918710676830833722248494739540492673932964577026494643645823251227588805299674144317473901792813819229049916963249129918224563556495672873356723360871682135391981300826554427829085199801090337271046868811085083998474815327545516870280297074464230499771746028246194180862068273919106340882451681738731285222938003000998586257530115964115672081322246009184368844372697768765401731866722083468068477525468642630282254807959180015697460632907363819988349757552559816919433661562360311871125481985615524607569230853304849019105051930653535914115802410197090064830951192104485143345595728893336078711745577622061101957525368102719585424183988771477900795963079995665934417459172775497179261934143753266078442660410163288638506486302534491217835167565972241937689890519720215575053410363827411460891233919193934067213196740544042841384813720188079463961038975520748469702211552148367644225053092123611427714297910677459502292474765793407393002175984079361269718772177777245301404597760224406211086086175056184736201129470623458587707796405683433307152298964134668389806852624438540204366068390773447674104842516532675683349776418844725286855716179272561391793915260636850395849315239434761584064833213901943094187476446863152486401891002832331045191090624119617122002863467664371522267618463240938386139976143986320088698156540260827733181431636870202196032593976873642548760483926109254080753742194919423893858574014350447310970081378349965353584556488704721711209898805508779860035991418890976567448373111522609229707045240072408048713508337356171668866868656987548199535363656517696241195156360850434223285614841638095535679149102126294072093787303704137691130707757273741620042810962896056030250724816380986853927544219990499421726260724659736810814418229873476657722335055348136063213468323714015295325738795146984425931978212633654411853349481748380822632868631044890539968383176919603930890010023954005616251738622977602491909786540811545314243868755161359020567060489840162452219575800890909893704031089734138475263681991343654214352230384891779275155433640293684864795939591986731802965078717710842593038958780229167830638186277772502990971910618638527663041437901764603800456087169766060190134451882439255331091852351499355871824981739201147155933047470497180658958600713973088379237454553015777226317130827491178438608916403665527735753145760191554852701981506312722520403358743180365028282673632089005573168039404051687420416956311634613798171391206890241809266729485450519138543587923103194390810183811740051688330827805634267587506648219891664339552451922178877562825116657992690158457088015560363106509800725478856550569541884690228043973549425869685970423489919505202102723458635015177025290124361716863858372909680382475576992164111848835903614104535860908949093991014224226572957710538297533868775180426857050139514523546765326199886978904939791303608993116518942371185454110395186720533032960494220035663011018269610708249043110445609813252213768328503665904026846178925864814731674048685336104678306697660843052775267901332800797574607891145600306315195591200890240621397520207102187285185102466078879897729940583334947583152225819072931199373226042962726157224349316696631922498117755180444850323513054163183793786462310153850752701115163935389248715244320105057931123216420899800242738326549570764322374956490606616484507699662335257635579154742121346589028988789190084997373590551696684682759475420959028666300865923019939895260951014296139807459898736449549723561174472839963816996633306167486899775999764604398483330338759944885555389876620222352413532365162541891323407917097383933017552502239073065743477643983669747129690349045073877080633030200635346943480934469453039125703427770976711933788359345678668603327153164079149532964708783414614246537072576214887759890924174431975392577741701484337478284361427355688258894437334695212604230965055865212113664756352312959905809864219898137865460606878120213085106150287152925684962826324495866387878657473674901885928770920654922377826815154852762850476578842755306552336141783401734660506851982692782532009413575245191424715454662627421263421631595953662951157265659017200953411471471153799503868141361250338613043077231175582546695126785968690442941435384847577661472397479794790536364066844804742629024439159206959473454505732543574590716389453508440326834846441970651097573925834190579854671084343506183438969552034927537902559241443909194002228511131844541419527164894106472702930270493274512112431886480789596089158051855549452397791228977053121551380958499017619420119042586066590393755174134230361147019015487705555010816849957912991395819834684423685232772296018514927658365705995037687203081824209495723866994253782600721297766175158375182632463401868862280621821449422082886425878495076778848195818527984547456410096850571556195013869666385564629475174855079546378669945487726095832166145171786631689059356295922490460856217657334200726127784485031875749209258084716866213352653524424634599427254532730209139892650724616829354801537875582494525411677063564898614416280047524933475526254450622203158610890917516409589697369856774705780428305107896090694050235990494297949868577025121759920583427943714316674042697838350425091906105905211590821276103821549246076053288513936743323462036750018960521916833393847625766967358187412448600696968755052952503729330157907170615524134888045050797178954062589841979041788321458727859022262812588030850927751798519863898656906160692403773495309499863484953241497846031517199251496565039649940968311138352856055269701064484957147762451526581272584383577559397791844265102613478210605904466847956677849712280785080024644650335217045628463168071049216140747306144663446444057020075468562604632755780297887800816958047321297193947022390114917526563037604487637064148441802084291963295592828880058520404534687699149633674567007728591746648348595956475189621939996197734380524123002031994008339851972209851873012721930319718400736098942468407545681468964179858706208430015248342029164003354982679555212277217766387925521298189263165936837717775649533080278741743228992358105090386027770267603760082584539651008323256963167351156667766493032753188450397914304989451833065562928379174215299270027848391432110260090958320028618254887751798700012025043462562011713114919498130790086104680054227048251342899566556156701354994515813395124566315447310071141664341864682482144878318564632850015604113521191454087062133692645460706923731685409555039204512882939414779996073188830842812255548433334238758608570301814593790857954200996579726845636799872811340752182583999298609060464785468668866716657554147128307946747952740037902181137571120840461307673907275815774719815481178050541696758475160202912114254110094946188921205782572082147318489637830690096126896200130714793399660722515148101535683669928337853389946764741448096145626310482032517283432559063069432139177871834149248185334576316164023169403591752561050118285449204491693517157888008669893038179970791893927799628943365078530105582763161648482733206500423814332391799978061810446575539386695270475548170387953403935186577970325381113731943292119918643584204786580912379039902133840952154276697670888668402040611572072114603853015440974424360178371358492432441814263215083276533631906846930786845367485205544808335232035785809588731293109498185410073548150651578152217399421240602158777559924676687596288798700504859901177443728723701388036234156537345298905663600110432084374854056111131917786187163925382608041475659618116929869920015588786399420232053551686760424423517696984780754866304088115453253932618245286811800167204751831311653556851390204015616673510668770203818871744804877440749647727445094032433334508039078341992923653014266684156908098217028738928756498341532180426885035869068286806769881685014326967659245450000427369632987891903903137311724753063193967868700603233573419762070740540841631256229203909533105964498633789909324016337928619412915792743297691881833967842818636509341308650855325776666181617356112626069927229027089944694228968757881838004603937970453354555965731351453499167564288630460442208382571572696863783494849790741494010063920302045010338538097698786680128201910750850921867372630826136504846550593428846793208392050336700350885834021426383431947328345805329964497723842042860327488532015109156779890101616244062833902524373045894829703433407264520222673457145012081055085756177470716563093390783601961901194282072304614498915448708396083049310704116185987077036247776484912558356951163486633580854191762543521905727791331423342171518594008872750462231774218036208338712835654232892485469989603929634252801409820997080912869746599641302827346489476409040294447273754728749128082226939581228012057653878586543934742810351242415857401522885201033272598971969100063519726386109905833363687383910775009571726300392300619592127106223441991300818172515041009401479237090765770438660417610622731587282767086636358299790911303286616593434417936387759611523260961032113276685920423842870792119340856571106557683961083640829863310645544595296990415751582610324237004605712690643960147561422974936106763690894966030557830349638895656894268198362376760837076048342088927582449515970639205171136205274622186471018134664640708002733540665515318956154776595812397255029529726373017681011449634902162709886206040128480199121485400068952369745879531448930488599091132838356378983836500321836891109861769694914069927007984483859724382422251985284958373108678761430125310418565270326384008350475417484521557104657740301930909422505554803064283627930564499757241346509885899165925996771620765495451130366027715834016873560034036806605398428625750285078036531121881771923272026115680337182526309624434117465223854811467508320737353732178207909464791498645871679708145057852153445705456078511729100077244290470246843143126988721503038455914628590082390923766411191341187092544565404651024500460881604223747362346997704232623579017763390460827115249264583164963938024589235461072330824204476692808116854088883393501553415831377000554333401532096416522870824712194657590226421666807785916901133487428006604037078084954289460057563871786586157746209457166561341207437006243453101104312771522207993541927923961801390073892451866793473935902962122555081257706186367520234754403807052730811752315704210453976922645856606865103118507242124903680731428361166489767481674239403612503620457408219985809811084661598766919871175044448180567445203999552051541136602577295845233365795906918057698159058964012439599727615827874316793114998860240466104375638990320444381811102392017174359109965396441100571313559227904647553980015423763041833886861575012173022539620653885824625598967082170080742517348371650056277426284757794192272841685030122059771180940085485568457214307918067631063804813979198592163976251469181005621622704292339718260890053324133803777664344503233185144843257385626682438142032922939216143650047860436915261121405778971134861505462177022872139300027870308768156360807080333190130991554891130991177044566803885608245414474171997011529133221023525469532040734032565929740941516323005936204044296056652200342219531222794096329639977550137485579211798258123557297014568791098050057027746331770773646794855760974914714782248987309859051437741542392977613115158589988830926415998768335495625850069492175140360729316137025978016012125339620279923103764386792777865607374343693801360247748786581401558164980037614754576423240285252139776632294968382089251152545569117398303408804681261959508290937614976629262856314757297266409774823670574227914060027607333489280209865083633139534992147722416772281591475139232427946340824590418722320778723346044044071365262826451497948956982129695465876088850225695920701932431533958244351805139837199985482257033969552212438656458867451226458801422083360166213201046440786388829368534125440580778812018454898348046572234743817373566317161318480200154071192142202202028596110499479506128722392353164390986968619232916190117165822808668238140116328198544286821193780821910021668455938439402434018075686225496084095334106756244841553349537155576186028121394412378606309972932460867776905888766284612488219419203882015274787156612603240371398400137812332067954869220369575849805181774587625000383048826365511955494269695198903692637591416753496540527274743335633984074087935515049565728386950006167925351541946017900990817184681772449249664226961182180833930016173610582208463412750604004595235254380069952512701351904591717837729311512925196139445670997176136954573216165054863863539358421106712210619370901389951761195469652479075011117030662492903330280437614749776319258920051548944709439373463648669443850456422596571094085931187005366020235716924019145711197728714973835734396059007495026780615809268851982691887071100217498701026921379873817415358202043356330541462296686352553428692200623050453206130987704533898970573854433810020403119939727630684400857903019188330077645909938371149997349261603556567320387697694980822008507108751971130367689801239820650977799745475718411790841624590793932410300178981625792341939381466096763414589900631438403105779545610882881228937957121090340048880985034478340548631481069500005846902472402637460579997183045188200997380748985761651015420085226196212606488919493907726427741750301277873597855033799856348881308575682187661931713868458976293885921289628375797374600011298736811616632106494584357601288463581773353585509855309386958469369532013328028800747457486939753461021407888018707668213390864613716110052757373931743977879521155814013912167387153250081773461389108257964839866915887214794854120075390520161292574744404188567852341926910938617789962531266190104949036910653684386398656070806618905574930369526235332615070777411538676480546081073056254429949867032500940691579686570632610696635914416780085512656620246454234579250570117907016416607544972356413913505275731590057337096321013878004284812579743187890986714323390378887699430235227172560412231880979890678714814112729118333031738519537474071536675283913349565269061412653012102825890469397780056163668526607859051090706542102422571724335697575597370126710464653019048948140330642058493611816868318886201032371768017962538914305327167283300823956672078368856577883249619424427556557416674663588748825219964927811006112723461497281276723845844485890347670843218489904371081800553772087479067508043088929244862518827194643089582143067307689234468831618964806932717296064238576589262608303696441979430315789193497924864408595075313073143146376025122726118247387994541046594026198902279013840014813114979124168206739120535853020842220771192002081717944734167570633178247363635847211754472021036368669284850678112793291426751392602878412342506963351664156109620197428679781721311653417795018229254263184325384101271319606683388164373904015445732378957474223798552917483196850440261283026669572996997598072526417116240803819599803649313194046637950860891642660148355574630392997991199198363766613544558021991232394356181888855345631815366115508138892934049060462034307223691915791939341381968340556255083411937358396518319415535129749329997697474887488371715022709462775621116015994149497883493197854240502517320758131824541168604925469891081734622365748957513331726811274378988911302710364108596081212715903072558215210970017825557146749736848607051607137619462336340354988516940623901874931501632390773119242006434834543936222944735282117247754248356084841738721720015024291205560109931692836679443519527462802713548460278556841056173060488542379583609616879003171067421476481883651157326885667869542358784675378178365569716404927639277850658056100221864603960466656381786128701479201631053343347410854819538295570163879174712040196496936096128570928347808144597459709778400889293631383476397301010947119699273292204096506772329131911007561134308372868133016626682944441406424255304197946354039302444958952504984690561417910111753002227941894320661751882022824554355919032052258428945605942581681973260922327126471151024076683603732976488226361918532777445476823778039320565868789754591607207314297655363120951144868685056513961988791125745474687517379438383449282401646412473411730932904314710152140367004557504625161170357324095739888770983939684012639245292369801784820858578038148727136686088240076865347499522760224374649405714505958369828715814660390273975648179705649875862429367334304356350622012781703543403678372089139782296915625690810032261425352443266232540936417866534107900997127245939254142004380400858012400425528975623402912291734113663981333711708672876047816739548021231222969531215245568774689978245848016192478701162322547340850529126436263685712281920528454154690724138023995613603809293672317801648090340960055822682337453435291382031800492038389372841921100288287442507241218219259311105010141017312504133075694360593039338058568455348356233509010720383827429025042850273839808400297358154233283384330117249882575109992716599996024792272244376929950316513975550576543886915848931133614540637327984463902190115027824671857270419917998945356557947824722249260723775904415195114866368699409456201291335917351218860987907975830814478056263751294295887342765612348208315681815172326680470767148983654614753594241204070659035480802075796466975183164966661663944762511736595865377982063987495523060731542754601454127773960694836323476259253233694788075401123616637244995005952949431239215564497097570338242129749907470332208427533147119692266054423852555299674544196864295480483509094540237319730635564044177524724797681792454555552778329239882817194685989266859197337896661465967819828832047988777946625818476304976297811419552082256612633798119477742552489709178612999944546464635855458600154016691983596353828704273834886764694720832112643249640557103103014199794981319894171441885389385344110979302504404399410392385126825080492267705235501008613768223407827199529251578390101068198332602535511109670646105006623394604217838512320648612069955365077594737355565576494119693420052659718507857567494181624391119771536891357166420330396536604040169499390198379846354610847678668372883558203396055323235574161669171161462200981150488689667789036508621407399397910059115682886258540538322007432932381295550243010758232732379930953689611265273273581157061993251041411549531767788025226261225844432422540796845987745988632533298406920468352193330694523555780690097754343831701487639059098540542647521326210201685150230154800115966983030360638150676598292335315420617908744417569901194136856861199042309060239927540320506827863076182684797510380376285052424281028422115852897727237482815790839419958633392933556149822438936253031999747292272780893000569481196125712545297080160185305472203075673090484036730718844941551332505671137155147733962924676040457100869652555804626254161606562086199162174542169359724975819292072812578412979494995142150703029608857369126490131652967050141532342755880940502526536248881928931962956763597656079148172254227648109784577583092535956444185723158706718572761413463498147974656670283027410212784273916190272779482990061108932014157689105295293328932831537117061533377563042252646540042801973270534540995640612886951078973680769234622772147763396481283640843705714569468426150831792973496305371661475342058106286709300622947655298952188501884300771838485207594969744644003144957530859762719201088435818454750517167694507999557577979831826842835610073800120260927368338631953856415864763887633032392258499115786659994641897137419658467191037925825758603421505607929954571705222644230305466779051322435134147495283110537106931050468085697648375488837489375196983290061572280216369239302605903447732426538234342579198269155022010137325397825574080703336631787118576507433768878584927922208176684769010645247790185284533399569965555993677723623424334597275950571649160744568937467685184203951718911731829950411336139171945943968748837713372999442762442949604243848229576441567206019018359223191358892696846894058474549370279263076485431947633803717246140531963887177336456316623857913398821421801982986239922083591993188498986613928081142832931607039179608852699433380289715134825394306169114742654428060957633184574144768648447521133887122096697074195772911981410981638690505817277180784197893873628906000379249979877934850069515463806591820703412077976473674425943062660710183662785069079974824553100887314806700826440786962430217066406995873390622051127686698800331088338418751023017739156432127033807363797171679063431949636475408351598781919337268191425811481693409986045979524812519732809408824761622673724369152297826069064852150815649774157289334063503686812129365686957276069498878646653093323807036828615826077314683995341427986001723300229497096656453408960064451205144025244821770276626628573794036321169560441326145369148558156581197731540785945122413856635035287912281213065460935703396682913529161474238657041420074699781510385051268266162617271376857808689304051428700389571272553878821867433243942084726701048954893876302250292921325898877174113909706124162327321257074472950201370353206275626099690671184267087405142238397395728173782625903720467524046838415900295249381182400705577070627445209033488344276028633762006936372951688612654797669809013545111717308708147211819956053238361478070719043166675712264685654256171843604648574373223286686425157981968407819129944995299779808593477861572192118549534471490183412683756657012631455938771383568571500238965959824244016091304541772896172462473175748342854410392075368254121954101341118865254204934935109826314602526592209752921384768587811446353513059790483007306824775587819716706546276838014466400429251124058730688284826721211544097173384682677584343629992149999362556649708690391551655269844034592261101255461086094533494529607102164135471723630878084183624023507038618044853308718464211909868106656296757280799202565861925128709674087383295238885604656491444386140096952366163937183746022084063383686748987046296306231356435545987079666321247124839971726912457800528871087702485458673020703400691507751151322950537865690474716873859627938269763471559976516504991008648359151201133371687486355910720659760403111431901682469602020472554098006319010175623157511588340334110557551801788069330446811374550978871343977558019886846077735276483515288264619116456636816303330135357796567168664061953563650527420609509038036454159816460714568854725352743158494836199691605276353395594353217832242518494288643196925737881812257221488426483039800892470964656624672205184833707741264724681956863571205997943538731766532514832170119493659907824358528764430298375104578238518430367419943424869541020731939647775569219394941135193315137995545193044693823471968736811661107249111290748728556181710328283809495842154601469287097548611529709257139107248439523066020867569843244784167431833473303998266226613199139293924808598300951305087759607396863273267233240617017560250903097664221567942172204291106429849406110589417518268065055077299061015272305496934351710843027158203643384145651852364549209397060995310110925669669626346893970999439166052434333158087800202454794249419066305278171528123029552030813983418183458519307410238289834373779734560157272628302160150077406805821002714850594649937549802677332611532189875355848194561638747111329328318559596136649306865569473504161416859434703813737271924589227590177410062426507736651801639639867568863681644658948738636037667788528150489537976228252620453182462334785494826944004846458801982735875549649250895480647570197877531334674664741984373991303274622914616220822462551844946881764048871762017081210904975178232299974036966691779365890647161812922619477143496185867293121689600075989263554257332697348509640031335949887101963234222301570741371467014878462228894902530950000387181307369100355561453748831177071156620833576613907897893884438242052563002919118878022064545923690931244318601532880039569792583876531778538360665355014532141155171990502708620873338495704813304951190760886660913166381536830935516765995708322571420499446689710425570000480334046685706021556343087092335001040033789769143126112857117026172897020611628153829681135501283868549109985372115529791990570722650195089520395427852097347756725220210771913051391518881111419184762400769075490778976125556728519094528155029941001463941588588448251557193522024631096768725905526492577993959917735109013520331594220986481312713657497792725601510564896335463305921368782978295554129213846767884651529984751508316571761862467657138533538393972775576521673172959201051844058477696722131830609566064340537442757515157272189941950645562281921783657316285568509626066444782933719756717427287579076306124469862422859102975852987396413546336005857343508029817720296296845879254220936389280957507728441643600638534317995119078367851451343459341956529882479977092512615092581867464334813874527155713277892441405759475348181089021154415804663054813653237643867319917808172026685842265363237725844745579099582078046648730607283011915049838504972286193796392935177847978942201522796562909884690854998178110816050802314886406979949948441481300272193127344730197488805528469650858016646203612209987219335239155183285843568734260701473785886654750656485235604933719865802677814931987736603572152209999622978378662256744654735416357310868554598492791156821535270265255496842766934524304471415719267964344301136408607490071710934441896779675758667193964329659736948959780660048079201224263522228294299726319634185495580507680190211431482064690309430723857717058706859087258875083651825986029984262411816796886322232128887643167104021870263394763766428461679219953855069521095809116841582822055017341945787504107408286417891057560888070635713340149192791077822294443555530370225010835582666668257890878840993845106672194685684682358857702345773324582437702162937403536066347243309988695884316920281646344189625727269882035947415772091832208725546458748789446340780156093865969669473684755268314475275223279891166183096209128130968368041734042247477351660663083743258865204594955921719910108926084832770514897220276809188482559368882464403979723351556410126801747360556493411737319331168221068927064254677653805138575660660864508916839809120695165804168537917189865800172812011439521770438701680838039675100241552014903419628448852510167281987154035587038862086999258339786826418426793275854070787788167905290326878480621814463877258011472562442098646447109758437242279382710577634137646717379651174788132576042276522702436641250188377302671073954006574208941264790581170757461870198108678441078690059832166324396058484635231833316739777883734212534727224114129135768090252054556670038924299821579041962935820638321501040503208658549180087760059939900063673085356614640296356883610546592718457306967483494829037261686203055798990269801284767615383421926933025397804824413291401933911650680022193292022781882781130266700329707400438893550327587989344407838286097824128621422268998142803740651249165895231067485297672467625720725522501274113625991562997017540738266002317430222888228878171916003089612057383789105348318151592226961282905301854283033032948579902748524070968330543169538815172099800644280538251908332373628443087966681436537187023894152292081681260687233649116114902399594405020834806244809298557705077446253422927179091230297290005331598459630793897993941179256825201087421351596861968918092019296695153541926811566906296059132069725635751358647143888755350520619412559684832339286843863453356935286377344026270756498827787727335105340691497095264219315858432455808669931534619722513393312774928088247945205694638819547079038666617954793443754696238276462519953714021637073920572363822354075541991781048963322279314556816233409707505489227020352186250113110637511132063399125123716947982297791239649352399925222310042555169023051401256548528764972730101518026258381071225768910174282852084793108066474770308633063749858525735105300053629907381069782560536305490962473799922057936306424052429397563219741271164723495243544326163286350225519438157277627376402293451605045559627314971513942634957101535040391838764821286993801842237755386321686708278790899582861978120522600603418030836109306761413230904383817473838593529201429418809804743099455788880819996938661256041486843334378397355003570868774478125499382103558034187339273828861943706562146207553619399105430206638951709368284638833250489659821024094136542875838108495558123121280669661520979395911959610237452327261006398910662737072119191050705388437367610963251496031102970517195667400684481660459663182539013283265652160264213112589432146457457111164193671930390384630187984250666814514072039195891963615893246807721065951395045902211762902793566313557503228140666526216937399875817014850707505657413431880830597786696021518655080025862093946021630578402612048781853344218918786410341610040022808050551441531601502081036944503553034103916369208340919236427000306759511060055588432420096831117598594996757070714165478635672622668492487899709202802357410092978792077144960400057280302321571986916044182566346924034995696021708354649100861413164494425103232296116436451173579202391826693877886624088461124585388080812995826703517892082159624258595145887129428143407814358613688066636085652481148712179512054058550249742197879560957029222787867575505912151201440752857733476196099220847225340901610486358837921098076624265059255761094496715299659474771672751733313466849597074128812670757087893448551905784951399217218219351361327952924307367218323379985903970326575547390328016459179088111583979012931302544986651828807329288611851172540161064087470586623855524118032658250449455081975371854825557936726162026094592497409647919699390299343012383289372617392341930453242121084701853876069087716888068323490300990298321293176083684373861026587325863382082190948213433583031301459818255802946191228941303106327524016811319084186361698282910090265333832654450592172709568464460108160346203851277055498751123538065354052897350566173291319363899042696428609788175936817664097315025685183498569961745639409653443818506993705838481505866427998869688206017323317023423075493270826853802364539013740277967252451386608311677983184861954409281534698642940121130831499000116797644404004926177194099355923007424294085209592098392751895328380905011248547165803445391600240634720806684245850729316020781121126458977712374091440040382854365162639556125818842155993760258124769803414709312274343758659130497609171980948812134053438618361540514235654865758364670879671549548153129189755731151021545959900997657889189761495473911071829464231073177783045318405904663299403860680939145778027536710314067917451011624630278824819592361501315740224989599056902913560685855878900816491134988676429085174138199988305990719381205672352162598306817030330706691959620830264218853154137393175966725898141271014509839422981859734129391792547079267837761106858476740601748519837461093883283567007784757273956369814214699008632396588572981769124362140172019710644647914555732242067568547305563198439022579602180432581388464735221595744352584431255360083273564598288887787384924898839638501485907706732617348835985598463044658625498618978661548604902545341177841228561716775113019571149630741485988527496831388196352726367679962540851204467675984586339299779522913083154444193911490578906748519024885506707182442389433945470102570685105111434685977836541613156076518948116161348776437559408690490154433344278652390246789382464863767302247348927954083226358743740754654417158471050739429165554745857476667675145860863844649979207290309119675012935111055921062407796004975346195820099906524131482296669747113452394067596432027462216051063420735960046565610630725667880704789595051707774500957700136335772664083490889581672959873269029437119062229224310335009723008355015684921710014672388398527802005803351234016929967900786142718251645660316120916450053041339967307633882992902566685656321155256226631524981329461240207953113244358520826148658204766252805454084228583435983021146448459262851599370270799938413004857000446369852420407848639741643089645773836041420205975889576733268682105698792859392872624650072649752057133863272887920448263398126739241005669836900033077124037036661399070782253731308324749622887203077544330959143575927444230595621714247674534694433648053259726646681589908657982093248946568920700231537383138744319517768506543062643021437564955965166054178140689626980778390188921449607077341989061490224878028982752985096583075952552217579124345354047645445751635677906987851383491005560876820170678467694906671446584522226684179578527220687273432315013906990967248502605360500261262194975698134582649975688278302621535565662342846810907914499386993169554111991527729684463185456312659753421458301676350750794252899820330549012968061294273837800971366841502914929142056363076460489786376419712211078793680687558952016175844647776162389229597768254414906806716566913472081909828030729488899594787508245481813943191015761090575373302649995809818861363168222670378341924392370669410361485926682062183261946573504255912927241272276266188779020667489858214663538953392423064401516334830180641782730782823761510036661808833909950586701312999380317377050967645224820565082041841739200508791752671912224616413788294492498674053457709914789096621707161962199162073358442335943083721399590717573577542615855712852052541430840447824296106979983407474547849753858167682982167560071392654898238132466107638531007542402385842701732596179640085423317207824211136173934232700794148232645376673152796881476953147512214154491208949854426438414602697246673476304718264659604486265973422191916320720671487786636873118454945404398684416864904754807618969993191345206020965225244157858326291373825215594966302450619132681721186717420376083751117781718361268785111307261404818240216084803574296495088502447388792528013039438609062136451083031313063389115699826628531884872242474881929096245807469920997906870852813003857453039963147145002286336146719996246305103270206205152265838091720447620999468323244936043605489131312620566811409360443256316694802035691432332500850126813088267540303823105178336241603970381604344729437274400746032082682717725613583225469610254707995793796232742897770122924977008322330929430723320778969598973805688835078636688434939384933265782542556093093187286609005833948839852211424545182956662253756186738557508637133788162411697958493334204022611046865928829975160624371678394497500871309063908058814577400100338632923260843737773596097713906725848844981214424635116566079223349662510076873371852116004360124707631059909622784535415994601436275492630729730958154181939459294509611013876759289394212037653353094793518755494203727082735780752735751759350512515142487707007488288868073327757598004851873891626207502801256463629220205079822405197221389297880439130456180608048480534088756876918899654781160803302653839447085630455042169841158318397346696902193189360539185827477575141734380634225590817879612775102063842673293023725641050406320621407683512737989985256451131862826831948837700615147045014047898348986719434440928695764225793160987954700966455570801651931598451377193786520668206720347105175893386568148517934099708885284095846736530311489804913396533392202687687880459518230639699326539005212281562250738309733785635946460314341007895163197484433297268967038757635202076215219389592174832550401739648002520782279073863646322573252920700153165664730190492001805306069175376425636227030021030950021358454429617026217421411898078665199498517094956092545168573494048919145852543263121888588895364130064878023170896923965213240471537151842393243975068369273222676326037937055219098964553369537324448061096970562334572910680182520958550967239525185943958811182713178485820325377425513437931694384615141620653462064226374014095641910964158059432806396568617470967116365551843624957279089049206226203800956705382040133947041840140371858705734940981203976668954351379486182529292991172903568103465650708296387392715414667614471005966746715486754067588459722036427836946335869570414191401857944443170591444320105029202817767931508857120462564185807612432294650434800373766368933192060753345712836234717249338683525900408167083861015674198108403884182448972811631715815086284308646779953553029143577131623159471768747089511624661477548792734304149131181110074234705432069738749644249195212466276217128895076316926201610858999001670808281969732661979736524283597300844534587909290672720668463157753325238855598330755202901597030095641126552493710493560991311256594617693779230323896235105296137396958173646753665397118765256859402644681897221701169087598808536805211805590041216144610806388067022113591078454973784702846812155368955712385134631592688231688139454383543592587710617490386362361854576825782574381920350110784028289661952368298260321548467015594658618040224082037028432325891635763837244619343505944571006647033350967408945916398203298121887094597780095944485365701912020972651729193448082119157928595525296877292726500037791688709650520181474895959970879685943094251038347409073500663197402201348624062699713413607489448348943177888524631174226968823169553304308914885849320268439001573007891586564927400879855010838104491859218192973146120491514779738981823107150501539306981814989892172740100113936805243281768559042171543610737273562872043164845777085518870237616711746932233623698266237539652659091036726552232127960815896078871864038639273481872633466727193162068531523612733101051551431814861196396144124622680148951008511035653592336827560523620077026912195124979562463551060231924934617105060294997127234662470584639030684695081143201120148388921066616541500109465713878681683293844906458213819569158106811840451578449140825600918184303694279966795709926718221821713176989813588004850208992709539742215492637469376142339677389376455232746280947119285492701184614623402682548628146438115492052372431509233942280231397977394586050804336425405703745718913942271910984176322432368499208583045638717864040312348324085284023834112784361591889436032841583461675152873333982423921774663837286967478007525989122325248554295458511511021211813117696506336983239106420448046997111747475142756203861033252839853143847025730736386725344767311727475198614796817346086737389437900848742832290002166740159875371163243568961873706623237117090532201471768030667865445587819350982221832784592551270581564709948974475459382312296262630286513342244602334163578529951524308754458699771581734594485410493759345957418822647186690986868952104710992175521632537810940541942398056874251571315080420169926985404210085780370236995128752901343148272102230285707651311773330621328481489982388983024539406582862962515263465384684833221216722748876036729252077087436719594132751599670496961853762653370227762964670121134419283474751943290789729032714646184416902468389950801844921405938711537536059369492446217856457342687467461490507909535761502217291763757339672333166254271363088207108081759626513778834511082803047251006883819798383193580673723239065783098932926743544593645441001453239858533856442953090376041376601477381918475863477047449140670093725359621602939955019528733270317264012356669422962100277941367101375125088701847882919712294310041464947137433937783044655660143526318654805130014799105309691172380332705720552767963879100895913695529560746405764626682461697711417294835112714914912677265106049687598342269867731136889047132524345272833164807924581554232504226542091253287733669481935561077656693646089770331598774248545006258395284200549342818748634625425134077814658264129266868418309454154572084429313658382422801455921487834890367556034252765765933720986195247538244520617305308520708422547230970715648471730705620811313486913563360826474460772923475175175387926610989581575628167391908128770616947418340485534784812621734507632897464390561213269140513171588777254822987315575356376919107268213196632614655275271654801968106323666896996332639184581801914075644475225237614407335424621709360835290577978326440380077568332342864267196543830930505660329157521727145566100134417475522525180766312424866010462676882465267587369009925762175653424931769431360909701525367519376761538805376637852465175224505022582538868849295961911463952229560479960145108952670552985995282394461875986723161729990711568269450406582885649169028854926463766004567677633408338713079560522439516403079557225726208087378582996054131227880066601638474144907353125490545327481005314927560099529182987885268985909024281016414920188213108936069834589415408816320739162061248659762164361319988849272144561223754337962293803889893125734801973884497617264424562483327105422588426323139504042964748178266247669341616794465016284508853322323959771886108395258904689070911383689109566741209956756833625423216317787171320678360620545248316518917241070603231971427115368045617913942394384958569365980534889387072951820149140453653886926511233004160172848618658455367338410728789369048411014601901309009663334240020394244166549557486745922415340196013929798332412609581307430022517089321103081888867668111985240929544003807201754621124782398199443446377785295252641656909703135419922111789963261923252361477007110914117824601552277720135217504691219790792371266154955027241292371796579379254794480333016438811589607200475395144603666665627161345421418046349447065109632599837647107763818018822220077110592849136450089125686792218819621239722162418753752028676319011608052490726726743627220761262326660294109606758400157306271547122514557367888564597096769591378236893828176151442000233634975883423807089714194889503309378754308740634703726204857376442357799227460095730988533049119048834954185452183962850292439396142753108049112794268255257258068544805367504578333417713560431229744832232432142510739059815919577714565291020143823747440433980872389167733475506563293254670018666491098405637095671979564126563758131468886934311978502741126258678097320034732187575843524676697129533990671910635084183166085563722529479004509365333740314181473074213725390093751314256736055760159825705587548374606080366483223314129712446177163279438563617124280165879108377137208103112355323006943449643337566843088213206701857207106922180028410282298230128118957794160366422096676298919215197225854827439472316886617811871217804076758839909605286482086099976027905570868277607190559008851192438171056889865355317016162481238878054598257776354316075002828000714771732301170870964338812947078023015159326177843011365065935878062772330610323037419052701233359853882121843088133018529948657288758202142954050925903851047279809484499453681243024543488212230241536217040971033283442467361781680618135862645209834944528836428594595814112843136891090663025224505937246708905459401500445814076590873214779224617150335902441154044230911567055649025315689372629048598057716762629880571729027306529916572937821638396586256198912611425235490843333124820969884623193410964639270200620868552729349075458069424222532726489607437991608032306542522225894107730313954709863511514094348931490068272231698181159112199295185981289964188749875153604634227332486648633647122004858100269014029453215524654899211980230541813554861241938737032385712601614116741843884943219360636105548358389537834974384971839684265048103004316724011816772716644672194735982374381026729719495184554004670171941482632225393130382632750082116456831745860051560991653472551191138533218196269111282256769785080262115395404574880378251890769397523961959626753024698071487982480146025870114398871244662822585511385195242466899655311899769504888247225964810534090624812450753736668430195143827396958467283841107930760926753098032909149539469742668814862051774391233688144799218835480748428939244851064851369803062711338681128519278962341219801366668126180196702860918598293462797801744332178340142633262052291436070642571275280389789876091562034001499923919860655158434347458687469814218159940983499554019035614806068437901411641358658591093323188732698420489108515810925253274531671203655439060616618426302878749574826410825109653660654312064352655901342573824003872890068149034181480859318317901145384990075824174230479706453885910088369198423158424548767707273249275153279843305723111158151610902051750045793135569927865137379763796678690069504853033902065350179125751208351800652687987079919952998014589904593651882692201940200821310029004821315573161763972722937051788849879346949311179976433044457331743624113581704975680272443900322444129675424519158884064674592544861477884217489412170280036670137603602317530987739329798077145221670666922519890231835934535855875668858225749459623619643195575649481559166792875232209429265228330677941992633339827255460017536153172654727166026584859977638638128176315118184980687234498514918915907235273998332601583130669334977149648906323885620864032147350373754314454016447024452226904780789290937785343670832204348565426177115682431554285786676405175050094906700858544376134357893271183723895984240552680710955747460668399005290612835905002460972842981081123696810794869006374890027032694236921390986856978814558091394071752051918460786338587270578982036057734629747033772547309283436040052555124749018880082720161088693867193986959772671646161738617880176541388943245637886886254146678271775366674837606857728839287979270112428807146529177622593756119021748105794858638418488054799367388974671410383727050961687045474197463680189391143089604589482663470874264328344587840517212937537436569764827167894848948472500807881435640922526817105114719080546557989158385329854570305790216970215426008536374123517283003741075218432987644974681021095207383337274428902711991903041664827964042019561999828851979336172549363349528257098191230045644851190929781062478009813273950717534541867361767511528447918344041906766331573400109951008594439173478596605073934777164558340183931470515042932967519582081024285222400775666971252886291770952451001832689797791570565864132570336572317396838993971921759417209631109000573439772671682449581487317169820463083436942655177242142420444378339508806741597794094303734609939152163808833801133887279887099486018695759362441170585669230908848952490642670324507591566602751753314486342817118833232628307684151689237338701085585770527699178915710222453464059329241814291729369676257432437884563452231867128854989939444436005667171786662342302268683964593185644015819740741272842788486627622094148898114914784655203353902212238082368173075674853366419859719807438799045455812034857315557698597978500869459951394690180605043240838126520945521570884460335598693869585190056019191331636736963839237161853849883103190433439414594868072304651462175371638673188827071439482818102524679710464731595619409678799658487328497547396949375964452913998780232334568486064278398508236579454156645747049046453885780026528404228919992388617793749576383201495596015208165709991727203550374952644415412122325421166048269620583146764765943573333908178250576773259400343380300409317744004582071285218103501023944171274999303057818409504122379009198192221323009931448546850966061763415737377267221859100095477918049612616868062493023276475155806933410291000711888680299238696573155264741231526459793112196171615113976478289251936256693299918411221980517494014365013572375407624982957881288666602887938427960214527553375150041869518640493213980689054578956852195881388991614975499671458356384584062831781984214438167240903603749975256904029077396031997959661092765435025355132908368853801543512715019579535284729886289918582946062209540618946580178405749946554267330277813363179299299309415299316447289895812357187829658821554451869496682745537322482120129533290900856317214399824664865506055238000566801204333779767729146734478463952359767238081863440139254183842005275782065986450291686754444091314316885728698591500636789659047082010902809695047463400375158845732973674332363832365918559025123629270142409494828000330523334434746266349284960403488810990577246285079538890876824281510922181806652690585933439367708778325509997948424419199793436745129672519938128934516740030980430266392740746394929798170038175941877594545740881484203169880203494716644347765544606025704315860268477627375486904612563551898317892202655297759526998280918317883666164328460932047268004705524308457997393644574144462936083741418066242182712595671038148950652111996652298003697817888405074668838287146970315595528795908243846749911477732689614807604553168932128586975092681978415541208807075408108418302671412259836688525932296240030372196125810490928227206519762193220158469292763080104304911859713607841985964355502080918777728777752404680594933089080084962920406302756441478926920836558267637020137854823450701768268834573406687911617207509673458906269299387655345177522181186628484426745107164268170665863486258857919570334133852435444427728300014171216259189896330104136584796717105432807167970838266948828835541428163391159658184747512553285446467085187344801518650501376870701034430698196499628766792341370775590802769564139768050791435466998161594777205256028628507660087858266579844919688066697149428692070958903699384780983625155284697536135098941900006978269242021235467503706149949582479064735634543379349943948964338969509403629242641543277609646085579619158070345863624263068697141086237418037523880481789221812771445028369634588991920511602122374678128350490199235659933937315664703524562670926981216215201255324620810726850266648072864872639222013306465863876918769036772321369254477668837773549187440537756569443525441216280066780747616888747406413960706911722870181153573278681169368989573146146157766801612696715387633232518907251516225476881991174688390849149901698807249720975383901182938929359832916514544372085864310873451719872394963797243596555086265240953524897093527183635749516882330030759797832988592062668772013847823707720905341147053807316394801113051876115829217393200992130451957050364339374166178298522247597014738083262319775856961981503109063841906311968854210893907356305820489787063473010866537258006828980311719209631633227850406503131726498008370065965651880668323811287830018588560581731440573510712508542896587901064287846409316085161390467858968642532050320322665770157393037631972995599809172850283463034911072581043349948776257042869135207005705629275663198831967800753056793909908729082659764887614660677477324526914163959512161002064927530904789072356387109136590095820320140659887907464291131224923205053976701635302428907681023265415093514965425143810435616834124131029098312586470816588165850523669902309468131554274515152230558767353906187165518264693047645952219567942461056005757038532002219231177920194733980778719758008727087106291204811620061343986234346218277523414445176727605272881067226988204083713379807383275582438396761486754195589174320073392903282815207080577573449331051329112581606348435506235686183049362105346388857064013961998761699090875554603140671533956847583518328740688424337842413650739536516348745534709091516107239816634741182690435399469350774999239397017712387551898772896442879834524197071347044831352683504282312191335388170539410968181002974206495677188514683590792427052662508581725469558957884262366355690493327063001966773325069655389611266315541113272418520182267689042936428012704787485856312276889556167003337617193006047787052236527617181918042363813024145985159033051737296433953045369503379390011384024869725219400339630223025180942613969038909598421755610692921261197509190940402721896002559255486030789765321844485466208032978410483026127433095206497380170625575289734471381018531441447479998197009856410613361771366857134674546165066133244152565463409099476998812763825253637300861939386282866234029268459738722251642898755562035031362588111349398590853593705420774861822322047166245886932819132556989787852265984311137604248545065756640531892095406856850407114085234274383873627460998267056152702514427438754643010124768972671243806189294295555721062126187780022389242035377232386059216691197675286270329190307660521869542080670467025158137009079288520757292171029033275629360315843953892728461123552919618184997650020808252131053547280916843816355058518900168702745746328260533025494072711637602264312944167108240492795393398501095615094260980339958938417114948051027279631184925359082281899720029289399770397813012417120500926525824949348232988043301579072664843620497498699315895276369457627187865804150530705993861334822408328283401037430960690604378597987097622531131118570889075896233893250027385397208882656693910690707301878763849341478086921600365933809129378416828920491728640421681581208271871856174539533926515130557531743692909996925277912962272948455368912718062926015213588024231914374252633911292713269402404447244540692185452584646966593240078212909327671662979009325748427631486294650942410982276297769736396166617971292329116942303817794993648640538337577722972927879700927751235994008386053525569565544443921909885317123592095702802066817186618626677707641603104276870769462100521575670491471379985451807934151534719823653826246503515120806345423462909490238699114697498933042151350981579184634393199609346939381340929805639388137567660880734489695827735104552576632553617901375030495768004752378822516550285994457852613133236701261251742403230943655326954372723719695243388408901038890054790516941092602291353652028598674444717792030799893072348429746449216712542866772030967316096049386902962447562577693988649749265649094393528331814699016899179000202656169574692748070960421066638365775388961009578296087050243229115462070753842622006829583172708649838468363895916787911787756054763507152865668679951968871648127600083953667780706495537698263936112922284809804512134464117354903672549414829148807629977205432674108292654990585087535319057201281794369531300818657835023298241380092545871965962884901554538915449490210983198768628486474118317718545158125925034009983824173231925526187698350706499423491137054826438997184942309456202615980691705884534403745617709312279031079277300817402552048489630287326364259751321645861678715913749706169726433765342494224547547889617914431547255545963280944936914535486153427809788682745602184918340880111770223602533344800499935711520726740040265855482846817924392386062583574522676383566865124659814388774667318582130893154026354478814841420566226256747198744720604746894032081515688239153375018025612542318064893446810130297605688773781236036493661175941541740555222187832213792300964013500383288427185456007450822404640581541584898125227692739621481563359255958477542155380469726832171070156433157317404974070398542161525228559466700799284361213264960463485852734035362589593357238153705693976162987376267344451665781331766362953320678408042772051807474735307358789380014557705168026284319301240291589510180384521790573224245774073560382172682983246909727330295631933573018433836996749741334532918619730529410648922115909816838205944662189255693868371494055634697205225091050233062047461120771943210745617882616070337519934769249114661352884601806905407183044890048798921393635383924722683588447628952730891452533315853926413314206023472618453071156419584341909372211355272465263228379181938021517308357632136241251189760659978807508712778223011325986819102312362120427165591573945242299212491506706150892253058126141535499404027514655186104704412689909091664907002327856921150098812345787621857789603804641956929968417625853089533861269898207742578690717091180325892823889971825472305158513143601524564473529872050495135799185188024984230549291011814725238443905967826605535645795397839545352607918214926064790066192212025667122841308647972210339869409126136941868320036302210312881836532352501610117140126919615790237008037018499118857538801872527140115135034659364784363393189375089551402550429762893535461962125301172309719496239830079066006059644015477707725118147116801854879692529690586003001278425533325401947584224062208503109412011427415788024483333064817692049261459998109055003201657772350755488408465044224870963535304084640557866707197372078236586048755221393026467595605829908477568281408534481479632992089260128200447431499707368935306676633624168021703664480042589395836891062807448901416651904531025910045316873506155601444561948004698745634531101257389285599699845533570961437292755811271569304952654868350134586861333663198014219637904622276100512308328333203014531078743233261530153446989124166190445610899569271922161560295619535719438038809778414005179297791647091401702828658428710380346215392590726896173005465052662535162305121001126887110937148750144763795851115280778552140115261348178247504904671121786329327341774754971941985922352813443678185674879518677567033613804681238307273054964116909513411291327861837867305817341482608699748637742003492637629287521468342995890521497247751257759818921040552351858017649522714805268138620859402523596012792568279031599276548430474606881038819485793166438937205608532515698262701368588998401098497103079151291838148639633194127422938226148272967764080458899831417667939543520841173381423171310923242930425106082096569865297781047519699247271667119170820327239687597753384225098910150983888509735594300202871464355580348122139756005379449896587700664761342449559554494627140384923846232700124541235970853007876463968026711407981294620093936370075115428515555730654769311661467191813286824154318979014356323457753492468675299216927857450620189498870973477612215172335768701303066440299006679030835828811119767117497823732959777520077792226219746419853333674604177332826114292542076426626606746020018489692334127268779515597338568110553231086610887202880236968870485132872602097542493835090844088504587271853189690624671011810104250038801578842526367669401299337461538523163781203966154678078762518644260105713337015012910893002487751131005836093874239920121341115907998519418641865234999375057023139287323686490483240452493011020449629340119408701795339434313789495590195801396501039311871418531662330013606742770350267861528688190963628318698153348107847887387758358079680489551279473134726329480977995660757921225202990906061030379784898804140975407060675868061112586111496094608771542581362648240133999193234543181878993598932220844483305800805650665839896945662397151375408734488470341505418043058610310887510421806598738483131106610708739808504143087359892274177620651791554650860437588125648689407873328466270003279051584305230130761690358451284073280668208540737767183053100524720720379237146243178004916216182882110490273903065266040686291055733338317619462271774053786318587954559756429285561736644004411096225847318243604344837560444450096495040505935182763533785003801465530160016864251572165922333086724737726341208297607118445319729882418283950874791480598627423189921106879312461082624769507385612685592300206494871954549192008494527252911454707987449054506658676244042437040169016460025713784546061201005608237308107182812125348128579311487966151920361184229066170841080503809007984672937589292053721578489006822150825271413323296598873715751415372562850057491726095442855379437589866159546432475269593548418494474341605325320865894818730938177069397113046659909514172946492953853621930852233525341534298084717594110865939128773770996724309321039517852698170761165854732058416478130965136098890868805351802246325286795134426990614220904543033991772875367665719811176943682156155278266522240404912698400679269953860955349938714147350788380348456051209155356657070863222148231711719820615341337705335668994043108423773590366756663636079206791649437391476918901189626763891235426619068696791229241755116124486386064809152468353351890904592313209696390858049967632078708200599316410694768844442603291456209641852719210930391842827411669349747307263736182981231695641182531534954357663028891402775734533851250555812797031330845374965899518864315879426574275681172222446416983370209633219392848420932827716358309846271509672318995652657603881955535002458210681305887248276091571788093454093480445645436685060736963240658737422786671092367466487686798420065915404646256296745360966189088747994679148978054819468693428820544232559344907248966585053108463580408967077809279242941342584181070367721493748242550407525574011539633519903206302998571069935345907774801259986115707022229182916239441891470798472775217561491952803841429508969914299011827571665506753961257522134422373062810746363495871072648171919650602654987264488717123780972853320843068374171719372080535849193897916600580354905215539583511487947715492164653167792397937983166074081381185488745843138344239373548860683735846831365741942277848012862134703122970562525521174135407986448512738414469038892441722876189993244312952653386548347915238970694432126340701507302533032383286616098448332916729872161518556638122003076139780729179750484123904534887833396807346087702183419536601561144494818846722752210975466222979003979323840944652135073108171665786185309139676955202176429370732908603872484021395792013572721542438428216855237653366718106590740514346919288419328349228079342699026036679872695526038846792925353313184840261301153668154599867375081874373709947417959356500621614611345344397137916623334008859398830565054485322089291590112590427772464698399617884862239809244864988666894163932544785507739465128551076740236959075045669172530695659367343642505846475346130164058669905726544271776953369576621220743348246967453587769061446321619408658397158906051740760239124017234339879207469493318781943215382961086200262821008435682355697573495163505518977579554222308354070201950067623185664534766030579720691944499672765389545470677333216398283233276427674948584281437135521567767245924116778644035312260864582083485391500787583156064675756739690833987409900033687857783393428499757864766705976328022391053843527345776180477338307667534738017322589436327409707873736375821054169953918037746047176122345075630428871997705036130207041690184500085153153082681889505014873057439114854542080882905979113825650376559786032186264026050948349419226728899771610001866114435803812512136949560296402626823039766387295116652256552902066956836770638931287071783236571141615009082481349170610459650027227260888827885375301206595487931902311292514372395322569915452542166943408561415386364823137205198525726154401807592730629318322398656057370021284188334328107174876107973675036496005169151570876753688186950353122974839269345071586465792895186856450713647772306832393276948218495396599747375087999330201476976126098778803506792732755113901321732006638480201971591226454008959337786142705751669398854642815931748413282005517869449171552039963875095925516428201618135928590871650919368683735906809975024659677031896066500565298900471233637638345605654296973908880905913326321257483475333584247211730163854848479693536953566070774933590375523778041547216644312526047087576075386019913737377851560148643154681506347205789573972009410469713651163792554131351371347451781752954285086883563517438779966672035906996648208242551398348460695852132042843736188146401042888401183699939580296153817778012940111690776170512433380507514067670329653834034331065743802260209960154986372525013899577048926832977506325079641973963108990642415835759029525148748059949625940850373832970857776760321148710618391626844359018553952102511031023876908623762280716491618129387729940884675142229711570361465482369014809065216903360275958206366865627249677541397600970313408998656334012516324440358055465041344286221136118520977948441597089638296717628077053552065011775868053027451686183756232897367518673242217932873848978306915300418898297525444341432264513776961770659697379044168251029535145850967881023232196005216622261819245928958498740810059282825286335859596554809305146422027454831519707583644642168948538811843718445985499929887981288761126921971069372045682539013272398168387797097279530901886094532950006272239944502139546691527002926456721985823957459135370853849262401707137205337635699983965973480914804397356739942840698407191622234936949920124745012555212155329700783459375739419371844610156651174028881930920727144211872304451355468622310190100737042079251179760744254832366458515750607484951665491319489712666812376320207974002793311872426097625407880902597585220570216906391711159683763866577602604057480569994585089724458415224431150920109335177683732162520708096083059450936188632162892837307163199297016337030659379648960269536065023400882916440920953062181569718539177509747798095954215944211373060186079843594743050290440026317027567716693351602936035283257765370682772298995641862942270331645626977455097938805992474289676947715645941257202037312291805195148916853797718656208636018672931128804334495478773873042451276090153247132176598857940476037393542791977968917021783168482662922317204436253279178212239658606287008803323850709271511813000990004719945422301151431054922573146868326644921784138067902168043273257402874074931978719552342600586263083723222747670650429893459174563971789417762732748749750120458651701159831741049780330124431892419081197319460280129500210332278458861558468201388042081624321102869632025956054013498498723555059943995484003265365393533581250425432926792237952867200012873008319901976292345966819507337066204905904909009311374890569572578834035346674328300818891249258185976491297292170866978673241983228405065826003817463542618871333082296207889501432123518224214912837718925281959448612427369916108762950524492422183067820105661507329161420522260037931449309897283034143810711064821804240717380333613767532233207307307405919595969366982235202085902481198218797533523762105404211478519410850512953500950931423006988582643176223361479437218313302882940568471789047963475202875369130510303428909724550435468020929024192100906324317225616624934290533342674011135917298321955897275227342450912231791541175878683182795381218925608913873263161700609621608295781593154552691301223408384177033464116109177647184332151298887972699774688671819585569215620424076158417592873612011020467855643299528058086561299752394538280414076105464132309548902266322563436915558276740870592396384936950085842869113489448428433776286470409562881390805738113257990592930293065407299246132139442737173311602504547674884162579373217445118517133220320834582227330323860172647841698128126683301045456962058177717233926549635619715969587299241310650742336947380163560429369931916203294880726685560503229001381857149732992443044656773382971834914857159525969542477489192573212871149165551851219159759556681944829950574202959856030709914587123197248912982564356083604651667982817384715121228152701297894823258977452912125187072819599466059255370376183499486405309936754421029196393141122877818167586029347883638596934714777582249333369784017007609646284955836637660539383063701332385304599987624116846239988319512735753435089935521722873944567831512442158154315009154914248693224499937272031967455243352967339960402368749429440310905703810438029718999510799344236857792869569760074520636173419251528764340708602225016845674510464362844135728863254941960308267299250404144900190834463402705752535503865439627501446291388271529774250199096909486350491732528393184054700133913339576868095344565630825845792091745137416353905109370961104299378456930394971030859439972764469022660074996527952330103198378860062070711248273522115074421111285606559778094799881051076476090597061661559416547303518859922713790223738708123005298112635954606945007022828980694330133682879829208243435621289545187602667705279920526251621333602524922455642631287293804721247427975468006803331512735753875233890099763476222215119254023887868964805513988075727213767913207604628600175773307904601974415925228573341805599778173653249550312324417507268996458365438290510100762520894770499407072631078213681701862420388329394456984209715012667807489402648094715495294614968416628679823407235593762961167349814634542878814394423017789281791036618002426133558479942544841409841141017168867700312365790618272849888338437138804414412074426815702667357490579966785204918463687933307077955812148585247800939791982984290726397084264900629115735351173214658862559573887511958149814392232263549829133215922763711369789938287842622142993029576392368885009572730940195486313364488188099535468986036190621796428265949092962647503445767852770121991634502661733436369099454186274241680777619890686908382038086558559319808483450338558243487259143042786760016391478982005214866917756926488556758217354382378755114241135003822093479314201153169459105379984689624547139518589812456331559514769952259139290065383403717311777398107909273500339719117857205423734784604329846200287794063564634763501162027961215552437270693662750325105141068096190257316669395296499548639572874185034719842577209104862251979400440152641614751901524642642223113942044053101756131419187686599943732715401487167314488924131018836455768670972842441173876293570493032228997821784802787766802239730675697799574407894301974285001214338155020128311187806477115397445822135520424109652932957165477492553144409512717021079864437037071015540323696025111315505036077603787268568329376719902686603939996522116453719806722975076347793960325701551763489507648415396430008143574374399358898540604262004624965951290322518630043666084376112786299791148564095446616686057052583171309855218846058479098542974555504627116756730938118367545381961000970295770675372249209438958064173239540396636714022112104208824892165083204569337191900691065856583221019029546242151862715522628773321461249466018412756213496002442796194953570218086257426920621085293433550717478896727844456932426383282205507559738646205855607569206938732558650296612694099546002219332149347920708839467622984504920525771344328910109017388996861526250958537041404005307473915869827036522191461748159064827445844820826862301590111648906109527452439064223968805591022277491826190625917896825164879554971534495745997626198776982250089358815787542267925571666157201071625144645405955804730427616343005348939754990101924540049986949401695354072406646260801239529365482608962468839176087914747104393639170224006464543604220676219904075450674090734919884411183639396268780575352423266000375274071565337284888739717607494513755288811356226384319845349231535731532105397800591605412583401372613871582952598630199694819192471918504126727241067315029213410771917831537040867169376809692401139584835736693983569448416428104216708819086785467438739389538864981347160778304538846610042723525817420601684283976797316459414685844094795050281009069605297893746237264149970499902925691022029113979325745235588478207925812074778400733785861724692341979689362182237943745458942405776449433524207260819146550723056023450867215499478225866116982857052379378630423935514288239224476722156194755508833147472424880718903877288320101441110322772528619274941073362895322496740397852873057139776380538715073754427799888894310951746398649014831939305802784548050275019117890184860724145919228061438801786461923860221499217568811881639691470447689010682854424494292336859550854230776189634248135435297967579836819607495940397059133961321758413832069315811649013886394437000998365172723159367138340071102083260251717214161245067827410924290577531549255328556938389251200707311045094255711980632991643007803131022043862629487418193700196004352737471210141168399522104965467243093051022787997707182993468021910996482359940999509792902440945967491415075633665807747909676202753953867262851957780906572944944433778181168361473657672497311463975429082540042425605573074039611817449664834387686286053970891736046795336090487124158040683542807287547171816505707085555895495379819730984237119546789096329891224756064995255970805318866675627577278218704633991129858716220593876287670486336585573199149359693647106835510120076611509252079728865149508833187257191939932168851237912269377416893864606559365138413298659543482003243786415836917429147213806735160517140018085394014884902744881735372805380085601805262651179983140052834200753543593863019032361993945319053846576396988077360868181916530585086382252319225600544427888493443854427535133079977591532726680673302113802620676250808118029348363497676034204042164159698577724517513866388680383598507767328838944633842965074596866995352677856786195839441601932173499803587988356853512280844480155523554475317951442064099406405467144609322465198310757028959687955282300280737098227822222623088897554812589637851435017258518114442539652559939782564099106971964397058312058428088669207954518680331845296692528042754649761677141695771246531669219477999812261440332709995814747384481054234559357770128508428446787503277457948024708318871717782810105487941050312838617686292570735095327225000865683517024853185279919433307232364949187443168625980546659201825488105047995641039004316641857710906741416923060005209520748855502871710941758769633722551430663328054056623787855266715133865525842508016425396578696366733018115359264620968149120866849979490802516115449674920895640210735918002348980241116333429286897610181276194678165601810780554816513022753096231902499543433624161446526832480579011537312767187333904420620532315471146686488815900067614842479572425835340414958440992716842025932969821125207548074624652810091507048477280003659778729634872837309806320323205573406529458984192589489842575105963301356431740640766568518092047716189499702988925120357540506912857023486319237509814878596939207834073183955397309532346772908687418246464299122867915662400968976301273042136663357082354753158283171745564829761520131408242335762829392676963323653089283734134640131951497740410521972396013733433828595135641288973171040825481214649335249344305832813631044380254692571644862684420699809590818479181969698922278531437828907223013091645518097809048492563454841881663035314500230900354188900547419930651252545788832520134428246171514381478748490653082975251666308697674141411077929141075533595681355451258076125434865428746930460373130203282525873801966034821464986508978673728929356664562087936330813568117342206039078981528943922326187554406995538195671354362571764250156307515902246739851199498791263076444825971226397228409349495379753625857744249999526630970860466416034769003236530763188693138686091878079680502889970286717928165369620738718477517345236987503306461884187399308270470814241197422515975254545029618704532293927873224606101926424092815251548443313891907109290753126622692465107446621712158481948121810360805908193687038850117010831843706168634983818119974703019695421771173405467811110739114720707195202031885257851105600295160414795687758390509924376308822598070488243738423791762870784559074892259672520279099450457446435173340459847855064078590998164745648978027412873845026724239394434247295553570804885774509318168272246716883552302943626129092549134894143239459789895511867551962068370033817060677782682168286595486436852932335338987367206718872379193199944514612815560581015044681089841555978717478656420056407265420912362135378315943587728743604607433424453600375362208608777833002994631648041619442532916309169070439964371359725425323415745742040816549138099099478225757978668186575255896086840769803808582709410696792750388956767381671456021694187883059291378991157216718190471851108239903221797427997432405089062626731062808194121054495842617614778165164300214433303935311446312603201274643259240793255820467536681545077487412768758408471269151454461429829660170823145211206064941918015034235133470044625837490884929231262637688110715480220739854998268434825073767070507853392771057684643376431247336095897134943003128613500176322261485496874941778080905192090192211649618943462718579864667358225632007705081038047574985385692525299571521896485082614205239998742973941095673597381880403609021698048719151176562492499306485751884747862440119796954924183916055752546425398841820347205188307594726020541316016102785844148389545292501525124683178324952604812282408117015569459135667883961018209723434776514617794667822082885366150907695110252635790171712792729460006465471789311527486790168712684058717825675962114149509011256657200555597752598967128421323157560311350494608492376024672866660564008412197219311347561147431909350624332960262736931768259698493646678195830756611914901909158738807625367037029397060600920310114612794259091178271984461889866853125130748448788637730378965623665865380426506376030626491912361543179338799473016047138560921200724096803239155236254928479940232777626675719216710290577949107363230446582761608907179981154693364172561039702030715857960803806746246022044819603622435075974933474629563116924462984526581740082629474410591055327313066973952126118602048767340214155480591127815985991459880334038063996518378781525906535696044681834696687692499393809279214425370928067968282802163196118202091337725325595906291501770124604112360194352488226813525190668622453260264703024532989018298888328760421499717107105653934460912138739147168269555878822622167702416455108329401695564689504107924846474189715791264190680044704391111424411226924296618198544566128087331122662901687267878010881741323282343006477020218175666803905632664143656856358876403981365532344769363233309949470355693454558277300297650391255732804601711676530709896724423317494459015204080999122099078543350001279138490973690115285761877060690667454163184657874200232657892126376460851724389377852378594795368817154430025079514375195194487551979734166123152632113166381672828500038320984697652247815229099235963688098657586934843539809118388819124230002355219807390265190473232535591006896180673565892418026607941921906085795827475933535428168925644389677566992680899742200810342556732314945241233824700962506908424851154753715966473854128534371925423464440364205403329714544160706318115343123428860979727238202855869902908834413698084434072741196431929225185581754573970314413797461556647905028239866926821706409133243777380002310793643267565421205969560748388679187888736607978151680756724173378422623426158462763745391110818706013853691695768127431354625921632637530648150219690012534959931580962019710401405113930709594604352158235340287153896911854616558333227516561176293526777083256739780411640569960368698902355612148290432586766327041629453239689219153491376242430184588733790771607978985389820847101249279459681949868581715772878908625892466220866388550462509562308202194144142061279085595981363311369060698120470533886894619273522175568605806015544314166081542425610757919865572632826089115446898795331003123925782569334639442624988303857201942010158172133477662622661727385168062835944276477161793856220671929356818096021218485518417761833870989984325358970484497125314649198072542058240484344576242869613030513335701446674406903167595196911339160808941671292073215617258313791352167863425737801453300574512925580336480997334850330044717574111763952993847910261872760352716192124896390257948980040939104059715209133146112003705491593467404443478525331754654358059218389308921537472732159625456990470395923771502649319295933293620223001577565599223732259206527595790282404522389036793963042632937636365987568246295793122226582888848902097412119782277875445050321426451277159645345052881275242968130406253016173804232481035886365160583278617238870861448722524580180539264294447125359376227805720145018656667355479595612311246868051421269541653040997215404052032179327421300390894272158940485437844613634540416877912746041226483168040944111921796015830979113711143592689353913145655581842971904922198428505953551325168589030517907750902168612784577656228634876316776733673566325131813317450689529816772934697807198645445644216699828484564700551611849718583806811461074749769892804031234181887032847495315121169172277900917999522159344695094638869013483174673740479969531627500192556039027173365780424856604069353383048692992819941374033718045345246879329014928347921406315101893163270774865502182981433208987278891340647772215510045520932106115752340109721185668093224703470122988272351205155455512993498485107304304238329119611952528948629394097785441329450932454146515686618555871604592005825410866328317664439113763725787938244333207310751345259286911268841583116910237893858225278844179986868743720940155543488119933670475082694022558531359000366941217738514087204648402735185262875765268057861439960086396909178596639581551265734274568641446051373152824566049723294127740692919686545641630998516101181102323927857519280951103017999692836990398476464584424091991074298132340036534029763882940522511248098242922653586328851650212536147683111827132120110274720269405095273770893103956008930724882635445827867232631505091648082754777208956160883224123595106470357986538281779398916826882721251187088773210672927913007817018077851074830077278076554564693018538406284949368081826246889411480902567068137086243381089479372017791692756690113427983450155389187720980064485781684465448607053297765077005970240762253255706624110495507020501070864840594061327290015323933389897461879515782988854457894582685880978829380415670754171843592873179052790944474813864247465263039369398816784303357297036843486160772628175647934692611362283760504882906237270727202276037750246139943953352586325410123665424683496966490869952006154178636769954681002031624318263700360824492868876383277965898142122158782136759574252074191641023426942666131131575261999616781751582061187489752420397885733446616811236977138402707396702454903205646965162494677439598677078934787173411185395188001486200269715756266472926824966889576958302081984760309613965609516874145371634021958048245487905177366612688995145759787125136882878747390434820934451552901081832923455905467605158370016167622272006194950967183286893590350449336227732951371225618765311153969573500137935063495499803029715104402305515326216417696308693702575134178792514638708623058837029745597290962166890130153548985979475672331554580667991004180701616152033418568903411045091148628874745478175674961142637851130813645885175871127158861614059386768078150795287703526660560822734763175787592571794263643431126393708807204418248298856632807079286217296827082336403553913303200103835627462089617357701535616148244760464006180108511441247375843838359651115196568591690158500737772791806227103789385514019014008098214148823422812826318587736386555722127171736769890925269696140041197877322029872551388610447860506931773178230174332107009695551244886158427364791765737767126640992940241219490415185819184808654734569174531631382913052108228951499949679397409812739526389005736592926428545621234591017059117221486194333618606973494798423795443873680008208180267649033204097830837351206646832558916691029429552110613804327694917006479817832590780074858789242176761226622966986125710126017543353379017509128715252324189667137583488923543172156314454400205456624805105832193807925075825980568981547699275528526224678155108677881335942652114524531829155092147863662837368120717512337524059958177275884312356382250525364858438994364306472660269165365974510742798075689479867128381663291725913958989172359188373741270197943534777266749273053539606610005496347540561431433848212021142888493484106631943604688861663088362558838275516960782770253727626193459109405022792447069044486127205647185443065360985546557624162131025042017557135660949011804509908837400912276582203950417455894031792055207342779265890023906854570266528617032923845483357001268095613835749617797206287692771949928466110040294774504355325658425322187953833003547670887036632935803202834834104016817246791229965124769487639479376266857051108801308329889525428238232524882303348889267676684080772930041965100213098095425973192069351843175901026544442143285469416257319999765418758112208471875610145418671511547982051861777470615609293964513245708544618055998460343005685596274237538697115464433751470240532060643853297200131388155777172507546163947691076541529901272323939986872060322052701822280113803203610216805549720998896883669745762572541528562242167090763562575039723981585099177957521054817670282003408934718947431686905095555879876659803514919704652961760261840941699170375705634526992197967733808164142912265137203606426688758292501082578424536961698673094783108952742185802760007166708692397224206799200081706314849869729286414323276450237770454173676614052844521305893296567707263611994434495278593209959634288636377393626192040952432729755978782231126712600658721881435468915959471940058299586231595934679699614656253533438158893220624341372882597274611343182252830268851046837722672504965123384528860106000696471504468777129760290254782999042767102103104531437245105402582972763652420241242359611340358874980851899322481066940179500696938184578404275908883675597402846962195016071097619948472435113356848502329851292784961194091637138084084681316891977752575072094075023341842574106420024603022929786367054954206850838453994779897188494383184167483120968563482149576971515121212323182708262017713921749649657830115211819208337776643901592698046496144500103195947214684344375620297736200908439191797701746454333750250676340024348156388510814406177009244820137616269768690488073531783820375529866838749251745923574214162939074262783604337115872642792223281839158823962343629102811735479668076490750496804034637851310773980334022827229982504919513016023321720533312897007216969852896277373384735139457743968578065395164162178519235969758303471772482286395256168675570158625190418452899835242466896663719494947326690903942807647512309361747961161697790392799104232441727099759992259462073656719292596136060860831483513064761682983428915774248155676560389101041834071208477929712654429200442590608398150598009260219690614510733898146689502211242029349845722899500102833721378184204504909399519289513584525456883134568532019901267157052223934696099737789109014276353994863518566702929135946987428594398949554946979632450077098587618636023026067470259915655920630859681004446778638909120343120745907782002679531063274813844292974764726239054004140733939721232587038053132097563868127868106846754915071333404195674359863950520845039685670857942195755168738192008452197531443046391189371034378087792146484025998802406374112527988736556775094264767819474157012166895784373130301489087256440584016792974160564833199677633027307529903407866047963279973808277797716253879393543132296144707936888400392546053398101347294736287469602045370865075646817754215989855211172740995021687729906481641405541794887039672674403198145787962601931559787323384954735348365952763098040340817026863958176892298184169998506821931542191808026836930384006366753211742459176257788636473053970801207189142747949763325519354378325001234446252177884165753205015148235866002880216542306897073367451375405344427269670897869956320398374887848636628819997650521255577198204530620408861204452311449587635351479679868737903959981973560321529170731357619450060398989965689732848916152749676252899184382646550873320513574591845890783787743623598717622530483051500691275500744425988333165530948710757449721257735194728656031292116069804528851157164167464393075114957453778466329622950662468397655190300028100718268666984354525735737783820607253947664869234539479871258119458010264675774051674697595815266681503708817882115222465500355708435711139002339838604974417539669939718220640185129991563781708138671132593092065836254729365524247619815458030606963148709833322690360070750433070735451039024462281880313661571206540618621607512524218512126949897163795810044599314848936078376708801846064444744188076065718011590418995836550291388004828318939043820212637984618952147389880526584508086378897619728354261502921390478438876886928434818514061516061675265309933008822142155498297129568638719384059732165293919250624810504970280824695555491403413375013350809050127369320643655603940809137946137286108618337346898383796758576923187834143635087531670019838933060215904885753549678667447590143301770622550181989680018256910691354273906653096587404529479845903557264661295944979915048362680103981427541200072328376327732667240807437827750791953747863669795597123910375529106944721575191186964036398786128786530490333942770460490630104441439442708693697658383778679637678381381694305755780937354283565915171705200594266776571124426689225322899778993269501683421217934547903882353052041050615884213968646170159428993456502689437224064767563896264599052889579145475099873251726515690286563570917760367957193682552559600766000752253497559462182129166146245276082424077300143824481727745869697623067475347984981149093818324194803235955134126627393358810827353185743179366926049701877646498477944262907278565959632183628597611284228749880933130123060784539567236714954337281415330245873362730893468728028865203070717497480504446756070443822434094356794596272696485114866308687395439295714447181583845328531155755852545051804897383869274708246263199024845937587952760787649046276843008250776021625599297482297109377246154032803086623368614175761605038818829210777684147855074882032895730204793176327351582485394154017750722784499454453561615037963257722393669025836209678865518291241787526560294089262516185217082655158259999932882377202428589498858477034905029519772973784738225792715974491183656469788477926818333195954542593693142163977443957804261221297334522295091528345840107336998959674945160505901712568493785413064321785620539317287709701537394913788363443477631637199380943586503434254491823870454388930435011549659504933018636464072363787256373167145636287391606856572689157073195934677932088726401666043030420419987498816629925754316334126548150972511911220898964227070337605157191229248452033893181656574077576582705309128623645693072277172932276194129765212281371209318291960981199870552372523194216446222422682085077120939473746198313543913289216105300637454326841091952154135438435635826162742718623232755278307722602410332362889124207543652334894664041387949221420731268736324629108446534681709897293942846788083660598623626235960261541362672961466247031257814293597688240080585000522560341295132135965508457833752343081165415043105436283385978997021553855167698096022453581577339197551135360495713231922657839974531765952037253960945826375442711706511497400813334962993385338625371422824664920315005376599056397624873231305085286807098635572997379097991501189648668112123130272765171070422872280273936367382735292988726023516343509612716420436618436540760917160246760252012452154397275713428169244196340061495380954326542463733693107540314341806722378448196759358419754268220594115118568121717186735019779690165785540456440213661621359003605232841393201695851753600374264699245611112113785405716626565147940723349477799065364395274245514094292089377320404579490482971187393071472398603136210456370696228298989635435260017780248218694338373944200357665851593172726437959757384923746493454800462029043024198536906690191141366777653305288557099779318560924664590596239296034849303155998204137480911284245353784981715674778097220285343076276628533458442629500843131059908982971901821253615703500280954904070462914204582589236708860108613380961114816771134248921776857645218784573996719247894375686483968076881449239082592626131343180891635729979684401017109830499244918343025680834005582683340843982604513876330970493726480104289317481287202912702921986222229439754884371510017771711141245211908535496627508384773978651930119297212015538927423490915436089260147164354623326761033734470496178712106355000232013167772676774939518487509167401312022765736266358681323928203505996009684033762831873633151716278118120900638669820122391272772131707509733527914724404628891898609871642154763705401296697186869242697857447685600121930782262544492379310515077447315468898319909262399371938064639026439888956033056343362977626350340925075706114359656528543879561844007782157320634600377937397561379773158750378381648445912982352181816820906804779473432075813289827529716037910883138684943362881325796098170721699414730927133977220322619331944552407738369760379857950287443600815026144227999740525380626930015749841606230875410429988566812347534884143446016359214146002406022862913135112703330863998353783977213157609747899645755233325917815259131476306289817197555559775279403506846881829397980512229589636221494655972266811693568090430414544231286272884549011683648298328456450339269534078880346077977933958239624704645136775270113620049468857423286392888466499974304997136079262989631909811453611155892084899092113511090347255829681947305106671916453728358184390543339008753046986658158095893066087834577093037580455633202138895568325267467664300132826158795082884820308642795710416595576750433962699654020789811194701367500677283384185103662024350568688331985757583590664832610145433704443148638600989856653078426030196867730290648010686445592680787570193532151048050319910934910994238088290920975395427415666959493081795962239741688564266278436671508982695794320699808138657795475442217265450767674946764772548536979488768773067009341981453976766106082147951042708559060805469773693830201491030721488823332713649678713388840958956324228731580145942260904058966823675730554963364794775790788962661465835467134108185897851550524131542036785827152863826915633965512246543589709472402742432804816186588957868082454680784691395610045991872529926159848812686525828116955673546465384723520254248330014552672922240066064232909514541231749862367919576718007726615529733136532135021383123671392101844824794162870070930005077990946668812355093608894947900781973923098191039871956977569268124742184267445227625046388947106797935684380407926456909575390456954114429800327564395875941322431112395241952420471747088099561062496357853883585282196290489092677578818119378890985129210191107152787803868347337072651682586410500264706238752474261204608650181325799648808041759394586899950528742711043526084132959922230978165247818032717168587150692362036408814482191512072968658678188247798815632076273698416349535582359281690472498841006721021298760894668204177512472574361074823826460806099705657890988704594915086344606153913956608951058688684781080412417612853718080429614026779893390364370236680131301100309470923113815296479599682332307439324512680110530331479236645198996568510955538144461964224970899350958452243687529956838926194501434963081878548475644517866747281254642157866166113119163840742871135092757706872576889206944677541432801758496951585756596062362656700233340861669979514251401242583447931602200434657772731092482945159121959682122361903835592173052969015820960991876414093091002955439855337015841561603544449404567624364695347878628477112427664411439309446214526043364126391526124891472097839177631416885992471049158543384014377387321076762420081783805305751366502991105166131099841971058470696008460123851936866190419579545298393242589539281960840122590003305994655209934718959777799932029067607971277189571875103811640347443276485970920475257828903623523468146520012857413695957523060522411255258052463027316404760579019577497293900419382732379108913323057551184394853593369556453986456474794659459463461663766280752518335829369772915296884953934002711022366826213983447555604953862321881054128573310261987670246402934644995309492965449049654494798691916595916269817532180084781455127497407743385367031876922992727230282104565804958671238774361910509727759450631401827050158858445573433187324478762200659711658451334572159762094313158271534901484120698811354943187429980223567215922197784252575677179649858665797894670345963724874937841178627954596905483165831090833670743036665801955813754786615874941445150963216582713527118416591090922704211103817038694761593882168758251328707653918301661624941361252293445836740826706859433332237448662428852282983714260288800389466985340173719593816751333291189970536496704121080274205598346312251355975497248445766182900518822131527290201754462116198462933243591276451930478813431168611955144008976167381488801124591274578945647942760935885261870732910808560248243189948854761836730567780766088143217716438795839037911058625183001749516783354650802969074621290855887872982947755671330585608904933032961439917531221168036514828308189025353848748506089535095001508066989132119007227572201724784106043503402462542909965803619174803673473908896783727904322541407969664986418613306236041554507255778454446790024590982517419325948809085620364265657785461149021257758584714608952173540521785689829316001298815988530129040188924609984051551483845433601955755695845239008727785852663486790388219369136609554249603717488265529622883332948304269961450165035621458924152138258433596606521759044304464909531883297035151443493996094813419544641421482661599031293426389459364541698484747394208918823753613681815028300981133938055677722042298208122745714747663730317688590293421063581351878409356450661467357435479402716253848380878765280758544016787943381695117873279818228755778275819093726319076252700080690940877225746139351661620664297781592427678579621657537132393081251994142018886338714800034804299144244066131783935079185846557241707815430426026252824559689621876689292132070522242866695917055439123530590767254330580475239821968588853534778429680726582416881233891740093062909680384874014942194187950439764889454552355762101049842250477785859031929934859583780230655456723686488320134072107613756497415290494249116366443196163206552516814592136757901920872831105668804732593642344366276366919907856725550947638758158368283789408087048227450341535445226142311992229657406588964053346762171537628760383283315656397536406759048643976407287499719924476122802559023263619725156463107961903486521735148142079512031905383525305880363254677179531879199481733411780794310772938774964099332971237970039569625545938442333560796136202760799026982258804506006085226968392409863050309823337396161551728928169774036432518740129943889010065470264514836515505474211868638279047009830125851431159154947818276371544118155554281234526619927317784206251709693060069385507151005500616920724636715623869611896552588332944929304229517949722250886416372776284414032425637474574824861350840330546158011452909815937558286158731849103332597883415075527009797704510013750402461132155817482069360029845668683325041375016786962482650881474397596183701529692771689622619498157088658529231886118505268612693822501406352740655453693022548059430952657508968930996920818952898321666934014552416961238196648095014545677382309591802396441939356482552474072293290282892012041422295225126209311015507813339054943457801940577635757787203791055801197433639555551767663072686789535692611595911851921662137603388977833546984586190880392444542982549947937805490087038263630703055406981032034014564089593221735882142697942708084049454508847759146157320898604557448817503437779755431588908438933775807540667633949806701203057085387044548170802151723701782295027087726582820392220152433701780233955611471216777636242354483340415866544723883430115633309694018729512800788484124066908167050858122800234656541815056176062283570952528493961960522725403438493813974095974749750460596831152307085629492232927863348514593602640745212558883955569239886839951368911633175241535488613899173031506522080893833974374298320552892178984398451620265718307100748259025750538282223983564560325547681963872190994771506339485328731767938917423318445542168928057564648304887585288499589801955327875668827270627575029918429695487854378199601471663419704599203832225368098860009842555353527896157708055193448612598968493867645268387591221976891441707470472560698063400546490577815120934293725630563930288852423366638343452131381568794310575951287874879429519490218600384192235799659993550391347666441291560477530375158974779793779882215541862747189150933605816180896054465670546845272516205534123255859173272931752285120038707491850426117996459293910865254944401881514695640142437871605000679575740459209438770744362791690797835147949213118228874180024722054221940542025785162062406304151279736782438786300898319282932508725991155803110167755681902735303252922689397543027672884513100830455747293194327921755057697457859092421263267822490532512969274946148249128004151162469871734693315583577312655753075093828985522180596630250466816913325835093898103330198859455927247238473268463930089093026310634326975335098318086834161507310494876946374943232952999949310078188429878260495971943722590712159010444163085314363364804377465368898942003973773845210125455372739154550220921086135711660533672363561157863560759979766405681457831779691232416776436923545746154637052423834341594737904745633212546480872463467136302971128078269947100485558214338205996630845892191138694043043066096532889404880128702148106663451739736160888702351549657943956278351566662504169188574960668685357042891798465644393540183750382180080762816680589864630393864869606991269489715234758874148936001968191576945269683203508361789524385327153565983170313137212468413527666099194901336829386522759606498471732911363721152643183048809988179372867608502368558711395244136402913540958200905577302898912740349763734363343020825933829016257142793959832540738524132814068133569240656011981580502179325679068067757021948122937940505676218940517617219861173894950472109553139134544591931399938186854076095256168409596226410110760638307644540100920872865811791056617947188364697369584608613354170238566250603156563764513903326110027985618770440832462217296488909928964410793321195115114380382988282511161391865300533265471362878534465418136003136874092995756478735332729557585416642196129147831375393035292863439958334446539713692753407542008840594798373936702366919586602375782065420883874327280612044497615866873311454791720166090512026370332254150941735691901088532783401534403941750722115607507770152822209698068241743470201861555098679286776230057028217007682472048878671800511885842821637460318578728330516052502125213779780823959344576150959729838220792878014976632437131544889899310380399277473878135019160137133986228440729444949124998793727310925978275502120487507497873270485901967640784209545689146748415204323571124832537816573055642239008851842829561154919297360619232645384147569181424073794286200932851915621666024346689921577454187729930863506055244126651351749771806447700485114437668604116764847336591734261583800520310330581552210043823867124983051367513399599484667481310375939674480191967006021971926811454885606459958995802522147796363253987519769965783185427307733817172434300788715877169467163348142314497216438742209492522950580122661134513177698657470258516858972419753863438461703317145003758618646876341172585856509620189324103638112020547334859807454828324728169334831146297506999851746744391258662816701928368199139665835880098009704069173240908693893145095780032002847136677216998899840986879541840339562081703186176792662226223925761667342914697933232228629443039643633085926223659081920172719021941671477164267553390894182916818356061318971925709630505942832523262832218331509733213577127773229477850490306303136344762635307292526047713410864415527925281817124305950792502265748789327223868872842544564109166962608704233420716504283567867011957527529209135262871341425738316525017328001618047238176762537663714628893782138908260627497441831140090720827334285468426673540044102117406779740954031804640809192193646731462129484728355195136502565746918497110281026529249059813620685129639057804717779181143046594146421999733107816950318858128896272986993959141808538791715695520580148115535482928937346604007421189146903785423986638330192478674354301193035383457244767922240988305669218260617911643231897283154666898612022189054414408859956044112242819981039282678811300371502440071932087097231416735612560215965308430331965214863435001210072867402450080917716698634193248410871046904564675685996611723627622021552130093938296465845813839879447111461619686677857736970476954935404041390262889072320410598811527447940359106070441238696783576137274911073432251861113984193015818102374636350480190655103406346915739784355495522898981676624628020950921173009109193834577124701500319387979181907087682630102847114739817535159051429344029169649368020331981331185112227904262156621809645659453649720632193083583113158566981580589345486362815044876009643811125500301358915736058905999533269024446976872618862559400810441646544098224564911189916812087392394034182014248956711332339342002840545354401847080380798855169605614564681603101801374699577890728495193938167389458126814943660007154416445624678456900548557671219352706303491929563550782377538978202610330173494636889000590296647140890734560204492162234575677494860199386992572928136731618410947765745393231001428873892762709663545218957555891443837458244923294850304408079269715317182263063584592338954569335955290236230440849458179683437136474231291252044238609663998905700061924511240616638497350409836831252233005284351968217094784166938458930261601378499631776620502628175093709127245652143621029833197692397313797059181454303356133939953129211597413793098599329424440665477706822528639367432012855770045411715215045988474341108289723907790380189816798677533765419655841035958061823524737942727337658656671240382686619937856101082400602814630974823634600280985967368714286515068105683741934772053876124855476252741369832192838603345319570312713206937278035726126920549988379638192247266799820502052840335423640257866075721613255653029969341673743148495638863727163795920614711167066320922139088626632507083346232600318881741717275776238746003641472945720863913726604348923450753021994094467895945152208113051998255737240219739495834161658986020617459115486616969528864519026522692185326000583895570065708270958292498342533409720203601791047816434252791044227710263719017156617548330020705152685933249309649898876949836973744708923465205618968714842933413459352508630216786528728057540279566902416505561089597211797100423443029007612511916959104182102357523987843226485971979482803894038869632740586688265380486599016077644046116354910188881062587114378735360961370541132582188650131330517806350630493172558066620551768479603568983433720057697350099026199264312128705126325839508856732825251018049765318997914731055515464986894775874401777696778316463499505515212330077407638704368196013901497911512930914004466470306144122502653545341465406722394727820298030334417307365133650213569414777028036104166265661477451190005225432017002457927947420377975470063476550745760604715979490581473463285560732802893176457841832075692374181058130023013973836815408198142441652174624657667200191856008808894390356741002585977190328370510607182866862604384790876172327999226035910130229505945866875558565207814680770415500222551325198634442016219550373862273031001640792212538704030041446286154149372195372697123349201624983028386332315259131276323823989733008141477432665943139192512992613821496025501481179442710371818830249836209581117272117769056468609821307377203143558458166116349013590894702331333244664600999207187026595428385818530575629963440769985244003929813256860556324452006423890123930486636314299417465808997477694575107662764918043237254708203154506628399117859966282966472938319757881017537062984992709632575521821034483429862329951271340520927795140687447737123015996207319196163417436164874955661552952391710096068853767408090887431849351952558732217509791328163882095815572710602220771345784355293691866864533388054524909028342331701435123846762009554637016368646021305476155564134038131505752188198133468188294462992462690629943483203925004234121052518972628995002963136298800283928168722668723718803921644114809173360289977207494903815870573744546790947684862285453462153305092246246447375636057010310750522541800515339933411277950463772485966849733257005176999775601582120069285524019821946847325794483598770974907623645318372256979042788607375984080255503964434142858618627998907839007174875575274246419474608160659421282819316733677585595192884922790535106311186748558110290494170109209315668546391101545280482798311818788776643609802520963341085885917724646346373236153608199062981907945453961196364316054609125012339893227798907279000165358614408335004721028910828724990955734501166519497653606368101299139058695426821901659399517548283093656700950250436867643528243149978569223276821448904929645162891003466770443226407531548450306725195182613431793751816554436515198025957048410190665126699117184128749224167849949597825588980398840085416127747901798765279556007276392471233777882890618225428004835560536529627957223170350388053832202819936125060400037126582475738534261752248560506045112446682166058987919533706077465908787272305419612452611622861624690214555567438268447828965741316856049215517420715465713372665378143055292899327586376761903805848118964983283172520989197151668152010086820038188841613014336390114036977574745405213620693618339899160224481940032227964087375304222382527506407958430309588222726542697723123855151615329365983222066908648363198406080019716156409927936770879172210178535090244156098543190071748097433626188957177525388247276965200954418813604938964031569614524870253261881374300583144355932545242474252873632908917813996355305457581779886368668721636217188366619587725955858294078648478769523376746305042126255582642335050742872148264339671950243570339199070519087216239442932315868796083298594617862805588829483768644817195396552043911422264013027787268231600955879890736715108264035140684558528505035649393425155251282160435191187592619026298644503767612592068778669601293632780046082326135382764433994912175156919093900346086603624167559016649835706285223641613908990882346852973353153404530206064723513061863912520549889712400642773895932394288392865885123686239069169115406751997742775092355771596137957373300349874348929303769225112925918577375160988158159169819756903137906401278910665465907676164433776854277133774489207658605317392226593978826962407543598145718174625655136650797181255320217186254355923772347123764101695416455080184300603549206629056793162776493176950515715722892310031711822950052318538043727262195005521836318400358233034947147122421424741550693297313605478219373765955202797194510908467654580654815697484048543084465239048388393211006237590232308416015574377911772525202783850597592947289257589836932204904007294709474692458984023809371871660459278277105899503501060997060305508917158827206940753878797191949329078356509012610121338013508612779998442045969443051294618032083174074757311895948920294914471891360505179380720855643993972492702758696291080618574454342276601675060241725152867543716698998227461291104247344812929517990867429287782396152634805640913018377827245412378343475054276728678926237108043030830895255952391919896792518489177380580410366727202848144781349204066784219840412136916782404612293324946751360521349532676731428309972709853682418123805882495733446327690094818338266136979285968548277885197867012199680064973238538905651962329077176958903818883151392579232576801688539710996365417907865335123048554436692439682512870637465113084333260023618159099363821361493582575647827985002064891440533283374847081586559111109369828355806405711449063863955578973124354106767679987473674021314266569842055405447149388343658470214673762562765999410903027230903268412842967578291699561567805525001361713743843350804596646970865468792772892004279797652679626001375371590398172669139985869571927645930961141435602828410225082459526589987666752754534276564126364076246445291480169243287025537054248306963580590655980174301452304955901853484794232955812639911475185913725707376938514974609721822816726331168084413495365807737655576374284918791629780980510572621358900754543981586233470458814007604264628646887373632397075447548336783730766522118770633184275599443694250304461129490992806346927413748871876512642982723018254195677760494614589581864472687189264147850879210637677525841342943341295770436155177981295608522897869048771125693899383869252520495330572818174949414976673600060147675712668157512168432282417562728226699661372889538105891185573679881224392561371783266141043321173367816990497679926392572334005088757942089425767900604636875523633679883450623848263900478007052634512544611301847775344949194738530619196534596527297457443496786975905783185351723365188220245030832507763813436125650765508228904128069401625120598418010452537453151462470609646120475971432077885385911122407705078715786453732536223765006961009118492259152675026420586154694904868583220424285186349388837868879600334822472610145046098175673788402896256972717415183980276217579687520909590172523598086384210619246732743881910672108007900043565888407856723441047223339049903969236962369102176526197297680424829626439198821436681043462144477923718032489118934917688860601902441070597331883304828752352591217806765528980833041866188430932780494091201038584301662533830024920586681713743881993767276888783877719453091137003033617911179858309477396555741446468277412078455539764286683899241197924033658147937394760421424507071853003368634961110713840078938514911713059917248885113311533525263704120778735659802747832232369891084210303090105050299151510379176300395353946143964971096677699645028966838160528945980507273315283080753877122629332149446631703401829672333415456236435139868983037167220763904465101414890230683978543695453140686066574187844789672646831138283164501413657294037457947279071863052011163209602378141534666257534251845027030126911544768932239131928989393339011887022466947745770128781162479542209547972419827385467076524225767117557393051319376802228546529855786580803486906067145564933175296624553638183900280481714104644340584802806318839087659238792725952526331670757028701666770097105210979205016989906148699249432924394447063964625088466268674907973529757286103332187774651257024698617383622687845711131589097034630956877362192014288854056239237256898972792109110705595151165238854138009492475730620709382635463731525272873561681760105000734466884376171310025941368333076590218830873937354109752663194148951080409729297664432481428201589808027360363989215185641871351883406114524067046332703949893418482930886120898935416413215392316626307233985777433438589146219653969563911211430113358128938030963729427491538712667202701510522706185335119861512146174373747318819572118861787978264287609305600928394338460395000857294878252376996971219233946532348628594581754313884046843042872909493591807041512136457350688789997496171702197913079038517264655967497566486974956001661935709026348584951721281373571484720002848983822821043981564370666449170740777206398195054307123583604221605022810145358936400899893256454184615001544949217728488526251135912008524856258556806071090268140742133120793303389699249625880014227182663286301567047609232576360466481441334757903068182302431800690935658078397790928611979963794449652330946956488870330068912921545691791906782351433892603570991747578208132996041026389782655694962260714628286433943942188795181392038017470675866487837030197526879584581003967393994316695124336283433348057358888488045219325653317764219321460856994392834351119968234826720307456122530262384376136689744543868991590922718368918435685025608077512421013568894330744280192884894183625000833269160499955439316654062329292993319183635265352914352525072704132753025940353220058224917846297457300945813850145379500567674106140390057735336480596036418231690091813138758587313153692496443374619855053322381614668827565440885199324381951350412627433077020881948851296766836728360062999107982101925390760251775285901159595035818818737940804235506655725786610239408973488426233014184502430023148619474673498160837945338289197588310405306431919680637605724399540382181768448498619216232586840842325492353837293421860403913262838640032173754502906162777513829717575578409087801763546353506545471040648367334631616172251154992923236182965290806238961698761489231747761407706629165519165641607194943809481670341489821060457141738396103919671350856525980341961225354949685921901212762300938343950660187346941582354936450988312430725098553902085955660699086862322010605573568649192892537924227590572007090158084785459147590081319792293373471118108026980234651338696813519528272433318778332944993278183502017714645795456773807503762229636237798653705551232247081572508271146640220742026746191221393176115579068709250390873336244395646070241446463014855892762340520429495926282583518737001179022513871303462745648894538020954887667081246057158188692106061885416975151382615346166270103948245988311829382255748383001612539422786609735863480929633877286468809140076207696559765397853257962178949813883780224107299144432920998504006993719048654365639390723634307803815703987276437813273760765877765396035723467188162061885317290417913062743315171832371576546722494925292306397932752631741158964808801801997403399778968404026603498219114257796532691929381676240117940334570455558801477412793008112936665921636685651617440809438892234554427325400648117483552037574808808438869038534322027834894475007312852812442136126848790170715686058539081135604827803459185114161252416125113299206895278452390943350859713286509045196285312963650132899526392209779480413724760154375150837187572062484544792809447092106241865006622762719609124722792779335544728838549129594443039003812358765472844050897649089307021371460657803093417818255126898766730533247344322832308645802765040433889625679018873713444050432008242826203877382193890438757632871143668223095156805090060088688906303807063825959703304632616294484011914352224249284558217306227179960174860458110264652244904230920329387938600260950079883370257855223997552878721015229112181252130135952969769441296179825752660500668301298779934178251383262749603817333503834756413280609026550544462322011001238863311319080756866263943712532027920246901185634233886084434311658659260669517172630457265962345494211238309008912777456793615480011010964114099744764610455587407275366294244386107863682170714663671286604703475135224571445718253331930124146999650010721464810345500914651946363457162859308904175303647638488438286746035770744195564786551346181699878938243708390740052124190850939139808159794781994504038107777677926080501271144922982913617188237875166355831808306418224009880751040899932674371052581756579874196392716293060049910325884190534047422270176235869783934661720505805251909966997967253886332974414572674785563000666929658079532665087289371504493891668800477803853018877348583691127476468030180506500322208571300051700151918478764663149366177111530913340199253659172561627717963666440535861206171047410959221331572242517193540143495889311028831749388601574149970667391519225060073356676193721898729047293915598274183469141741721622745372310863428810067121047137529458224630517746625679888820212155162355211086166876375427471210847526049689776223887845370760656862845811880791698088424468104041324986925430179138841232780531976862967273074585471533272039901087066364459818001566727315261894180453970283132402320970049746804122755756705266172610816947658044060416598601152769039576205575780723783046235650556383593686381629607584381243648512821098821938085789402901475736759718741738852666781869211509183933922206948049142895777834939507734278888975434711151969326326908397915592799609262309554410230557708365784198809729181450074027565271671973979940493055741197368520736331849631830635318228307950169930910603334896438133944973028211920182236931383046642322809888967349293735905776660955698461470257562875120740825846030848364721032920191635999856182744171254833712081211705625312695272016743623145571956450941116089240470326702696214892700481131223223296571033364480482451039406304786827179059704611995967297488153050321985481896231741427874477113783605796449190924267080920882256308063109662506072954189759321584892019103728631510874856281868326535415226245054863691079688291454899749121427721058461613367632852830079894839449587475559007533653688347055597741925008260579527172994073656005244112025925363992410922942387020141882488281368363354456432129062711691033543138053421445696989305711444882993417853868132099850158065727977148134030742905278138385894319574295400434809642130678402228030449632392785377750742009326738084845028054322476224814101699987396787367606911831666068089046765648311000261850109052847019066040977306562149601098513035547225097984037057596114042708591830826394582063270952468484362061558786778869513356087636685689083798265771990455998244180584374360655519350946211282710201667731913694475958956286790526130837851216550569580032699268044658780895265872069050291231965552871862597335089499675348998812749739221682787016741859874207944360875618167664603872070987623535914793940650547909836839985534674058019370249210926542029414631369337099440981624830233734009710599765243825306078539718117096411085394329294887786575327725670134119177002187526271005187477567530319227498057665143715761399931610675028909634297699025277818114650052963455398985023151936718668432780061421793977565749240653751319433937293477586281082682351121264324661181415740118302671969499675017854796087787857782148787900375523907406124282194354771267862472214866677884776492558991829232306046441401638041437015944149192637085253716054550802485726329542952626721333985941546212864532442294197383291525625479460516832738491818667395398071624313423652053490537602408296862835829154944065260354863706402745321591670007598968741007708132257572198129383021861771855764500665385218313356794299833620222346576081399907109240865591716840243979965425033919449693704456742034964809758239175550550580164463243526636530971760642352541457288128469849759636446368309135471835609315974951798583634942509209942914558600850690587448609503652247593230555214000996068887894171348909122139907712286202576144819650100030625430031369264657877986767430803314922847894607075356847531797410727360285777166148989434997487505525953142599322011381425726954385300741698068609421910587372979439532318230271966196049213245715182552194804558977707664517234153496860812668133080493145685842795515454436264910507123249748024752146516376064250010758936820474139422919326095505282813975592018129279483519945528709788662646017266867207923414613114248681029858836280905725377202093464989764454518048598544193840725594786310536672707858464805644918466906365501129552867982619574294258439592197610584508318415484032331561633524845432280244423787933125929145142416854835247932007959070576045572828716010866829931923172025438977146458107724118881023831336080779151609185036784249444893402216258220468773754177060270128512342415572460254544200259910214949433700427323494397162255753399261881870335465947889866337034629089785855751577128964069385287476520711006441951531940475400756603914283751320309728080919829585617106273459151644034118406641265823347403830837183962438501694316661516674526464971825129742886754780970820541069631803648114327686298784138905831245795003303839110976694037200994307299516004202950014738692396573310925037595707310488216773729976809608027225108752523692533703696540950696607053183402452063759188336285062652731215499559108280800027385436409331734577977089329303454443393696256558456600757902860282544986700813956764127934098513636177183840680005450806769040567785710508562844438875375669338209938741681208305464853239179396509873686185690326311706301528450596413464736157298243621414710270307680579571095904046758570283552468212517147752312070466887412305383669223086569267977443054670233359737175300422488279559219643134059917238010427097872993949646034663249048038078777058251458120298125834598538089948786472428356765278097313049932609504331496281341755855908291762658981760506711967394838047521408416977884698406636916252215526993586267430074155659086596313098050569281361861290997965266538251070996707051050939462322280371272654484203925014321196597419974629217174031132012155193315374543678701322281330821480525535606761114635209975352343001942667506014200439873188618478769599399825928197772634778685927234001846583078560496057720444871833070070018583835339650325543457194538685184789629987293945247791923415365137999559933596313756064089432021714196414676812138324975638237790682786623144634583835149967842767876925887033835460920155232693507854680100235810994405075289298758494022101682654064732649268734359370250483384195705273598785605178933326632215396189138648915780050212644013939177506019211108819871761613015888517366630093363050187044979606209449220493746656331943847227281250836258367886307690194839441064567977995866658593793638101604480359543838151567158878781997519388685371972515780600566695677731852844631919838525013162160218180825811657173918167850985683836333915991791615028504928135971882179458458007673831520129258635840076587965120874453663273882338931695645508740530258443111013165078827737541756723950588275677644480088441053334236208231782982191638268938095792089886396974400110811346511130386086352950193720534136801530243448351780872900816284994054621818642370958941041204297484070326559726927045354528947887477739314542878034156373018242990965234921663180000140124639310046451851661021765517459856649294575807714886531413930867812826965382561201284734115857610286826349815413386634203022302759961778922558691394174891968461853701806886400367742277701419716308285736461308538192192989014667978787319617655976729601753209112135955044919728101053442716050657310981310294067947852841555772073769473288012373009698319049162771943866268539592135212881814421086659746502856898693294347471969387487334885902218925036059362792380655464421708590814786893718373769934266263030177518674445859120297711217116989758981922436414240949529745497383725732033044996939958348827613614176060340578832173044665833511514137888857910302305083371712636249926713579717379559827934886423301973284259066364775613023250186191154357046723065686890434449049629365909627941192957409592580097132118470789581278297819919719121184400654639564759310598038972565616738593531138168253233138235630970810010656162963090131605736601919827410707841026872607693282879972864678531859234133301612166822462414220466551315029034283928046637782729288706566180417510267157507801200600404821787857997446579466398221094010061512550672308329917296746549620415339010949458326704066124023457133054983086207241333432274545420109027605091633742270672953034350064020359706560846005661822680392422360642521319381447372785425406491934187803184435318222484861133155264940645035911380309036319832319641513164983336396567488802281907919552106049891743723111273671080825078371349873783402345419896489120379707548811456016442416810280101140963187998236248198590146317530773211318776044585688370402011707087670959409083277701060251572671870290672908361850312433566222137966948749978268224747720155477124375972941401403656553605444433273995106473130110235050956430145437357484818220440802320289019166712946898334981111203195244047016787430363576684671837480835077579176168079252153037139992119443917527265762029242681404021347376074357900528539274756493019265968755264677241458771841878017844736976499514669032963525146412402088984259927751859235759936966929342013540785475172562265657704713213571347648123680088362949904591825263269196260101372645932230524472050664032405571238003623813287618658322932881453998804473174162064116255553801946811403160984280958140650146929411436732244603478636216853475625252005491975396326419998903457256172985020008501292158674390403121588931856085878870800869633621926687612128959090847317827886988780915406878291137180950077751672953100917931142930594193928714681681798461625648608855085686319924356482250110036887907316100012731669509089152318420586895484651608235921769458175066436241618900354806701433136189792245311660503389885683067936441393974405129832381149080627909345133636579852295625235851735290159988912172775048802782506284554146232182854872097500543068013534670091711002142350717432588214572759550144208027465906900817974746820919741273568645699005813703188830930528145117702633571326048677993192703145063214832995577414045297768744772200940241978704342256785295539320936918640077724596511898740553166283940781671689995894894064161453383177758624363011168024468783136980861632013338864665759753234984954504291085625588830209020918381791546990254606659070043408644140322745818102050228385007124295245119429702502926136732354862180375138191233385466336343913410127286683055304965462605381365177228410182439142887289832591970127368253081341970525832398912345496057642487607290349872317671134568454558290640954179959626629174851585528372745862844010587676939024533040234681742416900483096739729962231849768816490319230515909321415840064899351955571219165246719841066834464359584940021169237863218444003097573289795243942062161334478019763259077741467869917621687048627951416532702123600248199964196655124629419044751630340731258989183442915104987439362631168944452801894660458477109256701457241050386118430526694269637158202486966477217391958284347340058129359419703383261539383658806282160084035595788702386194788554272930789570302868068240113690319503843535729602240595416000633792408996738422163732857053079815526340805844321774630546035883448177959417767492194182667312925700897015496769241581692598680378054975785230822417020256506635175327408662258136173878754923052927158081062819947915431967027450399351164893414233335969776679850511093541998507291444346880365615873354122984232711234531346951120198870438675723790040990272391794259233866084100627569815659647239738092340778323678507477114860709669811160075646439324009075913708787100514563279415082859386052676737578797071036800565951364344691819484132219211718783527004416772356561834063587269908319349934829261366453794248961482501927796272515151865867498558221140194662109535534472010521111818629402402217855860717212369223986914644070803058680377890454806816766240893175560219173413412124707542957166837602078118250618568119406762005281203268621728376354299998475796541231499070495630341072786724822826722506171376135851985706712797582048423233583202208218252081098568429975170734289395050425822865685512754761092154891466158822331260071408277008903140374169226815762228651268316690488424042697327563998297931267312696925802199926190211895314073785229812940693843790928803695055086962892983973944279209187454340827258294798456450177722808152416305521029537015004686901212165580232887840972915668821107081723798977049805080894765399303299694473452330257437639818154362942857386867021260564493014796132367667637251279224318050235200160933802245933449321678852109679518521947165940493956069084342889672110558678446839529415263872233113086234900694627089392995273244947336532514601995529617889090320404766568761316260135664837901931258149532820342685761388392352595463270120507878333601309601426440528286369722491394643239653948732688659903070189651630732525288229093102494169424781331475966251541572646638339656244148916086826671685873135903313117445620269376339342717490119970903749428854251270237565404140107485744030833203921465150982332802352766421643122569738240637699695259908756850825581427228656025641699436055246950545440872918006414970283449070052510343635620818956007858802668721443315506403195217093729052685829065327618229722582936275245018325773050598272511702747603555377436471732207474380798263015931497668107821247452468358599597135663438736019284465242641460696870746522185472864252736686251619532000672875991907908883706851367850960849368599466479774629706548843334405551427114498714885798214729048637126715268745423884965162614132673888634639425184841011152281818518594358089301201211717986559587836025009616764399532492401745404444107101959300724159887919579637345135236845668662128220193984424851905943367402195182047739034089650622289822569371318023876539927387369727061993933059711382827486849775643373664596438699684292461810091417807750683343543863239371977535479030394191872707776867294514745657206513252067236848456870080215924773712145676095541826156722112401131779947066538894017050167223877217074235532103191450475559769976335015851713369301523714455560731227127826282986135765987601865810697894096342186530959750420256749216098348961162519107663505761534841134633289026648071088187191307812220643613598454989320114976653583126083678526490583498942612320266531130258173022498638758584787472404304635080064352252812778683929998690468508571928949916753503711534855054206748764640348920913975423838677108930698553475937088853909350107107239921963758904826348931712121358988746417000922596603292963743338053576777777860938995325767026225666278024485328823868136805657304337107139992015655161679831758746666119133624212865640665958510985574651560855883650423643361032135075711461733857514248356985037806098849341510105031204591505027034826914488869017852175643662239200976969324697950934634082062012187339289358155203928252548965797947803415283809795758986750620581220216680451463813546581536458516769358593951147506100599809677542336246272678457137931460191350054429055457481600372996968501419239932937994613871230673406299445175170583044467110120296939912329937554796873804476142254909721757680438387036396919819135770276164464898718337657773381048610999809306618706317709005458028072150549007407807968806502594416507730502702216564808361537975945466190703505047779102219464624664110376638678789676190177788112471187810888740909631193393007600094114214010183228574662714207947218523746409795218939154150969739584439112231519771012741990432806327516203639864343595953264556550779664975268391918399482055242320736599583991572922407186973452693065609063480901367755187881728231749780054491790270774495272354260922184955205740160041742753758805753904902038634057331072346133542491632567323089255684590999599658128032716622117400141835401928019506937073912199672111143103442583634486189154166571825538839695230851673542446518706443230233296040681752019141816440538181995288898314487501009143945054303870058843187188796168536894721817259101358150211317435921584550323725477376631494254640275981896559045729350915670982857950403864998732149041167081240520178587875391611621801507604715110803905738223612650726360479897243777971234786888465100792148501061580728679561072626690049216741039397235482341179054528889761624119918407858085245815069037072595725490049379052059652929642393541641409860057274553042303253389046519030970516906321360884872090679875174077925820965146440048292588737501737276344246969130254243049030131794826687026846858908467394764178144369465223297414057697202629655600310618781582385943133277636726351863207421802091641748036125355049945907036272168141994379186363033906984506570819838370989388792414120594796588570453201603350719982313975957043423391625186574759311559517250531646792118025553558083226738563191432983059205284877613780265743453000344760269224706637988335596257928844549980763191084387238703174811577187270007267041040717706200063521839639109948563526390072688095659328572839526936415225792874070853106484548323595765159305520151932973672375869403132516549865078406556890948989121036664676700575253582968233580153376546388980463266385323148363638656299145448083607541689681057196711315926046031562746099419091114495063225878558217016181868496399400499196548241618680086691523867733371728217241496052207858420146492734820637787543260997949835556318403512479354038171983529769033335858137560421445010249336175702631501850768162494067111701145044587706608147857196365039973909385299818968241832429970561839653568879708461821505800456032566944429290026036504716039736581086974500728447665029080295250619902381861269236447949487744942925663651491529127119503107623633069717839645437721172146061199893935903760625541215580350949363707954024395024156612938676727281564880596947595032786082225454727870302423450777364961953648660423083926531524792419546596555618907570665816169173883599865040188446871230965221289090785540239562686502056986276822461593565843558710572758611602582262473107290423284570256930468466527437555781463032676695567245079636793169523263106829191116656436177430962214963869595413583185996677560410162213917615023745387290690244908207148494032104508445699031845702707574793897246390514847684840807722477096180813187360895596514916071767082767585617824456429966625447507703419383669670596797169819921872399656758323960383700839624770277922286107620112532454860698577853208967534295874545171050053057435711369434505064831257441379344158115341391102145204409229204645835948450368037804971573300315767857924364844885697407642619717657495276216826169562308477164689129618599126796824181813971658663052565804604217958782946063709661379629127202835038939852882022482099860752949364742866276506914923998825598534490065633024369665858844372496596253951536170938794118985885305852264834763168191218944345989557551411179625096657456056412286290813159348764321840441317937813948231391460175853094627457519049253826804195840749061826912226031634664187069786525287278588071090655758928752752372382982324327088755794994353379166066674940353341118589197839465109606275072398389740547212812516901895066751005843098260731363963543896067233863700820129961179174144757243008128807388181499756515729502375843179265963268431629951391481764594835802196561392320588066203937891126841914147582253656963517070990675415939929953281250764099534998895210580808882249995219408745666931313803800063617472506441340090575113350376154335611046108116098728779997177463627326207201540874147533858307794517406476153706146575199655966005832859161959932065531840454373151418449958183321853528638521447129703555616685695652135892458059416214800303853425537819893083135681779107937367441435046023465231318496405389908193903199263701788196831046209723567990605161489796550507437410379862752917618621121924353051075669895944270278595020467062599196452505167444874191104900835538950274463248246379841921381482208203804755664126684068420831953873678748503286737477805866087272963705297277995464544542029376614826749012802310767626011673211250871355413094433156039652455234682174777368855084165760724554539392913100544934159241347490237709149878197315524139716621099505608390225545544306645766018126169095418422563534135562361675407235999979216586174243200033065007187505691617799832378725875734308280052940386764149968472013926835343826407582082881499762487592250568809854277306247056046094211212394552112282653725057317383169870791764491335295090411042236580443534851459570622187684487833738710217959440362281773934445852088541698793391764954097652528452638825563699107729071535699527492640212858225950286409034420600788043884508658718539548954122967816674755783668757493061178191218711487140821020008283364098701243571318021005391879250191427519335582048117511530582761873932351478256446193164326841333754203206807446908942442116619930055560226548410081576624365477367061236611493843688123183729343266552917156040430492138374631463869384548496271125558685556445403269877167132973537667289948109586384059988330835512162804271782939580024023209789791360600569568923019171595343897672055013992111112913503644280545797244987885882661492338677602811388840205298279967303913351538653029761806114573995116964680257822390969958699879587440068755375476825130977862258148246735444348411643314054669103726612969638332525150144051549832538308045781238581712054377703929004053170808386184082120451611266203419259906084731076619718989207191226721875531152101717085858202542916518851873543700489274787122987900939165074683652371247893812839940833172652115754457496894075050161591920124215512450757396064137156695408245031517663401222187181089878215113341056779727274992909485175468537509522784416348745508850662526323616951335949117850945399613111044015580723151084813721954782563151974559974282482716087993701916065116331954292008524812988986868401751286530594326774477320161849290596503365459745975595143358361652078165901175801943973936917854814548560211705806060032033099460750171843484561553621731269576962081772332569298604041927629282226285191622603931845819567422636721808256721735027628479905358460780128590657474403873843657214687211695278714685424313489910759455781803276801269054347327240115895969158619762297639374365808078028225513596972689801326326581738586324149152266656025002531064624128435144523268432371800154086740114268157360321440430725053717190908850518885275622489683207446003643210578600432999369013974560453296125808227146066000530661151092169913970132416311457780542327268227545369298327239363647939363117747478955941997768387827453645912827344071519306685632553234347605114208902231887656272877896083647001289955844971259332466422379685119509198223362928059876747105214491147218628729706513502577828018000335839306270519191609955671318552377526703084786191665921424038761508234526048676551742037249942758786908368934919321192636515150277770886409861906622903418976067626071013964361549340214001824194457638140017271991342095869342712367335917949389775327505654337957622389035258307890797264838323755071832807901476009695826684224858064802854998179108332242853244626317183144903671765358004177096666973530753330196580360382789084145085651910425416063483130945959407869563660156971181974497952502822444009769290518652097917878874683646498631244113022562560429548850715028604527963741841553390171153159686173724949685801718534821332019492578141175254992861797169641437718504766924618792177028196468087473914939940857277878540606363236698173246383245254679314286391689045434483398504012619036187838077007079469047902207614026568456377237821412945060971978053180691579079500772031426504375269719252442230096696801768032251298757885394147557190542538930156813719444694919094200348990260047384151776411097773356103124429767150866695896599433387839006363604980934436669544790667607808353354275331469550163950643088308465086208637316091674474267015589630213070983708845541401727827483267583908922467548161530695528596709578717216967123524596991037600794253002836903517075118074187206818611949489124861858090623361545786817023327039402205627016227362482838522872359470082154419921997473400237995840519432732557680513055581743394463754946503573061949211023412793632986214157972211194298853479093827090286680354116352975089817862785512541303949817032393944534314037370819794752506393673316112679842554744407832303481413835111013778260246712393925255086698227183954731727137077973731151479758280989655689855950864108593610310422561421156944521334955561370140509998961193331857457419931190374402514516413082044857697836876730654525854722644467084017388667351597381352051403606249982360019098156010174677997976511520043229456718585791688651876539761822184900849801476385762868267257721540660671728047291919147121021830161698726297479346053877442156369182345629892411189191991078335324156700045256505378150688569338107323275198618926168512878598637327556596711272571859288194634770458035359967964540551709286002802909644399557949807496189720123309324051747083494615708849761693308670900356571712218082047772605171884020514328881971470442542748560928930849021669541985736242769772397985509106959982293308685665975703215028984772975150926992476799252628929188589172993932523698003375379587134006884009932923606188041305370238118105989643992111391816259405511030740848180251409940200517163255056883275492715194419910991265052912096782484397456208471734238674534829697875932911033532546512722466834084368009898604799057013587959511645150010104972299241800971078209373326480371128333910235975814345661483626598182020895738583210780604879610335923079426639771977610462069085512248315285417365392143868154594908236416973864018913657247095010025946360959519809600111252121241559246570476569173428868575695827647267675462971361599934961187942435724586294785813870345480650239206264364439538544929099468157700199972402005643069657956298110609220896891630370402749382476420437197419581752088379737367884537230215605221269622339641220190516385261000278133207671259527104185943372473296104133705113210400253465236124367069803819421288474356302220524077930758431325923879068303392416284544376873458374296919242673875582691518944762834346959756835082180656460091534548626335567744182260267646010819082098511142642674353410790210503445407872464808242798327289804949147739486841665800657727833210702800789264456479518808528511983464088158092572192646939102418533375945666882814232846485140197283910119905962166744974291696395530588897958527148613282851430669848683191385889924398806526426640049214263491855069220664108351373154681148039675744604026069957323178838007005516751064448440702155221883663081460802039716883826278648027529142790210144631158813070963423970412519466247511312792733147674048558006889222484968775497914247297346371189797205750332005881990357428789982015539028475759725359212792549217570599727809231659501227107176628329090611716111718241200469551440676971478960967624386133488560403623682316410737850131765635983337811488841264365024261624853887934429929744164320293644252419973717819183006171248209803344355835073902788736786582286530862422834042808233432481769189761086440676995426145539721049990409370508256845482666806873048010608194496417154412882469741965213312752822427969401831894856301428951879735560862911252833698314028429774929113480889748401189121770973025127744177523562596120046174653112010337520484137443083168965412323850070595093999216890304052687562259764379839226359774541457363622213496588225979453005041182341617221524397449612731419857333058236862055561072601016885332378387085273659762552987584153562298645282479272117178521727156640279572681364731210881125290137791105677028121855881067796448968787341469277025113599997326364067096882415119292333381187221953249829126683661858235488304496666577731533623152840024406491768479216507644028073057067694421819355166429215171513668105394866669224891526178780556376268854807403136186300183392329520569263827948543638514901017959740084749150527177099712249409466431007549291647638459895542646390017960043066684626796015850692940919133010860011667431898137047816005228650634834004458426843254489113181273449272857984366094790255486011566902470843725895512944333335494053553736878208681788850337863677076085545663556759551511403088278664219142713302708549718328948889516591343289509610058373126494946789772002569452424926200993488564628338819835342005699548661922915029846074780022682618961212664732649954960519408306243645030950665218940484569151415119288246901651913425356003216498469559674495903072270005148838658397017891112781560846762132172582633145277035771227318341098468591587551095996151853807828568931964446613233950522963305627066389188288733534803920971662203873823753500858978210918482574004943252951697995517277537280606730032445319214259571652539650889308307869756420599427347303313810441259549830656890635571900750666086717328813524621863385806050974817558227546572626761954996879571587685462814599070393084055958976461396789479692500241774862775939039549779368160805442429561195045626286305595470461834283744499195657275652527123283550755421448731164215911503768170219084896578162621882484283460301905083784991270379697340352628785078106217948282686849823275230307332626394498098291164002229106212654701011339951634218627014968690474802006276333077416303572113846232886321161651913042889201641079858037287338653407329213768427503146301730710450236229570583899793400211121538370342685861071170900464100218923382108763950209464075117060836368679078135126089935483922507332533633949290520563728123231483134649633994411220484842626349767367382006997057131975549772536835868550109768665538636243220955554382075681040268706488724304569130111398584565847180773081611193123118025492863937987819346249589692986973796875964697794759189894495237759357455474829090816460223361368188114645541872712389912419434636097848100704386567460584483770086925468935669713857359489450324617909827236255874723452235128813612394954711112076085887406690204236845112835918424038800272110172956076165995610390221361003303564988192456215515507019622890110021191447163644467953274037271267280145183306503642647257830700286576727941496086019498022722197970379409146283354529531909587840530620551915650566816697723499935073852376875651537639072956131852148672262470018675987034059938937954033464529016819704553277400213859527307254371930830176687933440663148850442308019920778306064080426908451970557424870982719444822317591077855008414419818450128111488863667252230492030127511941887424588317934526686747408776713002870177329718633905065183531620429634017242723674083450450797253440162843703481686986511626897753498099511695721709103741629568394291936647575797752176418473622198994472376295978708603627486532218971967570399324056628404711590280809686621627738018743699799316437570096146296869641612263276303820139772418638025477143398921162653808207935862170835875488287722365118877744985358621507127025109218503853483464001136480763123199855521426830875940526295019601869311669752659548817825727222334650043958768660835009590435761816830635772452871695797526432130179106992628268622942989861345226371209613429017003195653988018922021483587530813864392281792414401423024257276148058594280014675964906562799481767218854438676358132201893764208667776230177772570463286009751681395498935431672674310340136671204472986167913653666544706560243109915996608690365086399320094157718602672475786109251986963241170021853226221614180756572918180951335279524847360059729521581711663498289772075044816649463669591037153037565587531299703564829514046069752222277966318809525270448246847635490857034027167036960159100074547756059513205669675609255139210131933669973037209359883702678273618102112815209073393248542226529818068380502245691905969964395601577065597990638246507647436033996152936842166257415174494628313699579294799956713296863660360216958096100130179827234923702218487972089737290333915893677917842378431660591602386813488546233587214358375792787933176911839419066605685396639735201530654151098167569479403647824540889436517614419951409677471974332586734430098390679406009330942393439409672752978443666216923430229089512434791395028032246835792312795621844623424050442195325537474528421221941817331803775070158192392014052442741336283817722521498105240901366293358872170698670090506850954528724415557218960377576187538032870881213619312551490170184216243327784037434731330368635671564453369961000127567418546622553848881950361363674977380402545083258350651682091163707062454551738317771301282186448268965494025066149138074180874500331763061278734920196195082359613572880842832315604936152815706370207004160929259175548243892109397426087695002630783075538717944088768360412704081754467069320403741550069374899424668356964109833405973176759343996786403370574220306853068817907942899676698711916020403339482292546891095002740504482114372693627164715682274058899307665003444283088569283225372118291745952863848861892683182730876677561468627600878289165117886400071399233463280655795328681172616305874354172113994261610632222480660345369353546304571952423781712632974723332357896455530751170433061441571316254373819321062630402335159480495299500797807236637296242164791849858874914751262468492355542226911471720832255529509133081736812773023557951405169115146118785825947841678275718829047560428838983974833714665068913519845743508158020699976333942429218577047109044645168748077524216930846101779548953890712736204661397136484976817208931305438430710958815288429080249773655768492923466210533830106529226678965770194480142768257125955331711038540246046801113365621127689276749909189245847444878734487924976041022187248512024754382647682914907583688177332239407040960397217712492370559141011589952906097460388591293308753350102237453512371290146097051802605286944997937279249634342478104140584328996769706597174314985032605829721692520819732135883038080929821353854463970102881687169657888699812851358522878154824627298485481656939806140341671078320660199514005970589498657919613209823235598348533787683501700599836710310131430668243268900631267013348850203939799413832394261959470826931652423727984893853534676032878140677983329484889189597254533612933590106986174308374537948389009686715879034825305557597273645586940214240585862543763675252450886353415630890982058624083930871348461451954954089051342307552085896078216658528160785384260453091911684136342258366407703373571732977962390992061735573401152605685995254851286354680313342451130224362427470849810146072089467576558113980462823824858367026144797638624244385172120810829287182186733905595066355431149319633650199644167404685023269699834588251617876751675890089702152349237389228179923144287765216773575131894200370092982931051966168885162832346347689090029201653853310541651903486485352019782383681990715668158022448689053030109647024907863836351368806339098843197849406613370409152145258778034387408199123639170525834223296475410349587112729451664570282138211663866347244729028025309928421023103403019767727184955854352328113315860589179683594849030169468776379164522901966012557342748878915049106780432200464434199140382363099014680149183235504251179796987063873272880726630939046657931483515667603811982848362346537680120745365189605230277345763378271491550920593397361302804414041534311611694096188105239488154308662948768822420596758798744162364627717022187959815066157540701806519387080815866968030424839601575605089884088475427720346371536189226752827975210743795372737783876941236827519289276315306958631320441880079605254226821782281576938682865103682325629500106960603743638788205418481694125394991744454783869954803707665735654609338709812954889136357347190562252921675596717888876595407333868813132923620610933558647900848112059166400764795931027711162163987812984228613965706919175887038926914907582999212822660060456667521437992300093072811063643993200637863677502609934485343424566245897788520317611231671765571948945824769556782875754689262638191837021733094845208586650316095508429292142123482718622764352631214867409202317151915686302955380369740800457075364511129723410025513724951624027216179600709175583724622887678644225509551947058722677327054158782799936930333262236770097472768875172788474096331636226090996927052391514179844338467994000956738087629328267277779558917718201565649908753697887724561684893584743341486891396181739376366914746392615466108336688200447320486001182696574365365751747065982810693455665862335469607809627410944696931093848351725656356332964241900742242374880396815576479357918331728852652680938121927216673808348043704487244575382545336106904907333339062526524429931463742529310373327997322017416546712147083212787121551093608565471846363853672501580099157089503000903776364731887546397570399148537073685332330220169863999862264621547063671752166618893031832616381561495899974782292704477849088651435769540568437094068197438396873300716746466257783104513558207557475562768553130119343057725435658511480623085864067856098242045275961147024402755251160352960082123125646708612163111299024954639432608608484515188797935556765991580554440027848752048489385407443395629460734955896746986314807939253145360480042231972094194093350174380839253746529636678808591046231388055497910382424758608914838571712336430536246826972721190612978454612116724696693673944994084105939001366281335318656416705874400431109772536145178160076535726384416843530515192612438062047181505420838828672248509919512644536522528013942113512514987734567168330955767259743804420883080456486326533892749182670086715971354720215407319134490960522632822281441912140776422235546568357947030624772921245529349904858133082231740342647582249421249838929226906962379961521516727421962461096479116088547434667031271157925437350210196640270061769728149573056539436746168153769850265457383929440375461390390313919745491456132422118725558538605406145394638741676626029878359426429531732925903831203893779993663080875162186594566780131773237034150116468522399825652970559122963505331360134544772162802427792761822033108841731414760285084011132807395110627551462817054692649435334373693470096040100845409136382001866697379073063811129610480827859157621936950325673886439215746502869267422002182069508363958916737475597060318029035100005957513343459849938557153415224799576471595726585882582842368285476773121650492290239910634371003415320417510385309708700398287200860193883654889830066368414978455277239206559527504903990223990715175094336740393658960235090483340866343129585610364182914623767585448468239901020018257025899658712753119448201289614999692237902301026210793863778786612209190816093666762483387503553403819108129151525328493841865139251513591140561773870985090260972306214521192560190453855158622896645116840141388351410231673106293727122783318395437515483786282207096674881802537859457012513609920775645625469468798164575822020020643370320033740803539886843767170069063192143914220431493159850948857567127094893950936358043731553095800891369494578169809437379210219676658305404681602468657663160616372896630192839765019638635324131063786773830841226535426200025389581470946619567348419694500544632885700163199513867251756385432113655225342160077498185290313506263884387593053843049789699158633465014225753973415377204920200131851252472062777805370319292408011502995167933459956391409626654113735968393597293374901465023546712148447841647467785827207476934383660656925132102272256550878876615728531976876427350019323386818473276863929497616600926980536117190217358168314452974339592134351778250222312235183052930627068697331631123874055708360078279171779566259258433436473463074488831376422973432827593722486148869090936705218146303181202912674213567092434174590945499156769193318539842645664855438463948884274802773522554376659839451530790723568239790052968238042713892524292936673231152190167031847171179544171724398924232042940360190831707553299749921862870883022903244270112181621049245171145273350243121047448413676556454950932395634435815574208761911865814791814391343552047052119198284117931248539031296829729019149589398861665125205987509327148399393726191624313207239483020702046087215127074533776218652506494099288855418238812569215645485226893937583149340115761685020894874399306323660040047837026549432266881628813407495228265424449717317006617878704631057551067259934920963104380452530079663702882041298960086094888723040382508536144582241591269490705035175268854019961499242785681458966945986384974856060361329654387242392732450991975282218445570899954159213786479147936172965965659103766756199388477691095806379933572963165985883839103736284355282298961229831317886499529542654685177159293159038243538607206022509776549347151504498402324443930135605799150507817485903153474251019315933241353655264828529769623651571687919476310002265015851609100445089291147968576334741448328336858756731280222598702475295855992687675653399547996568491399545889968277188214264160028843693842774972486101385634091757154368451290747920810073031756400646621285339922301832881329269166604201236130922220390355489983117314853400456259695050394082415438228901751590672210832957510278325377507495058309907881074046308064900308120862026214886485447993885869646555721074938798127173857099923212538882844775489076441393304042307555808850443398118469947164335131271550773448801384121793211020225991830951295781150994753243571179281110474525508308263942644652477477849875122322367169964602183861099641381116238523427314655624455239311038519844682782731674036439896831796256993316228227824261073244164071578138302093495902796695990581368761403846841096186019327137743141771254298759824457636224758319686399835939374733765953546142330047436617003446315733153402769420490256300893141424730080471380584699743387940437570185491258295689144266722321710461485449020890791260686495617730863230365464216359312974756941756687936897506140542378406735372282855736813300184707683130053938010029061477550279209189514975380146888005996642987357198814192714693648712188082273318924375365158925573503514598568298636383513862577085452903717172949803531279898676138496676203307978293821135384500933413236574046704025366173480168682153718578783748742109114696689055132051049452387467649131644436273704391092761491989512403683625160254173357115442327105910564918381183321295115814365333402389422226590614370717240796666473482155646670751540001957472423085934992533347940864102808352709494444694308630523487189884720327270429422415289503167158923903391526610310843088714118964268159982550112100401752214588031670064813721230809192297271656628700805389571625306598727281279004071907721633678488721850896747649014837630036846741356295388701041301774308759006588916218921519579100032640760363984579430028827216026760498925647372761809375308307947873827892796836846812416820863772333301081492823798948970143900632548355051463070137783347943968653986681988053840270508788934962739309890004821868982684458632213167295380001527223377271594692134441218785250139316108886880489766727914307599933991451340218814890053838641292400595937965857946584491086091772829275923165209660220075489128442545872079048462062948598176295506707579162403462620982885689521607499866359360022699006079351137177348106913738374638464182827685888694846941504904290520271979674746226688666308652736379038346306511040060821742209433436526542700958863715516308306196410773471259512598491624594406877247753274908581675109378808019995386432027502475159655749800361328832869582385792913284178900740246643505949065688674257213279330599769053731352461338581217007498484535462570159502062864523193875930807543261161366620149970056953229274610884171259266013788266776344227269612782759582128029489670123714643995383119324465847843446312752317876671353587846526157961201882527037115713891246314475323736422472354006766932305526868383565281406114922443537706871407704865297085744254375687277837604416079212008754230429265419672323372197504357535983326194870197563915911619405091550281067243242654936134155217105492219815556535542395026829459316410128845309069195768055933635264930963867677657487019777055871896745057814462250424552072898182388177884806937460564679738146858109944988917362960790321153782310381269472125676451885475191148153450883215679265290622488056325839698645500168456016484498295672617773159078330948053211587665646047324611597823524649112269198811393234607062321444170034922672850029881353943826456941253813744593651309649284075539122098421844117881160180589918064693255773107267952451687053246138256402670813205644829847501824940130333809840000279535465361940504200644484568439892097294465063520517642312176592595881516354617954579661974115904339119019012589628973548855516751514188597482666223052487588292087971001626515720968715745318229408599359144830559790641770662349954656277738589102884064133377644699795643291957293544769700300246496063138182187434380397725793562703639803258717331559827002302719936683021106757673501143312283010662130786766712914458416312369573455926091058281098077424355143683386041174145721821788608716038489578999083241747410650264415404545088125933578767881789853685535424780982034857433788826584493395674136961185336769242184154737897852452599579216121233471874813859758109321099757329229762516669671090306134886496889132888621028112772009017856431855307234936176047928046661124213830376591201411031060585021881745615457845618266996267088090729080690934737533075206970007086578485419467439153619571745507662220380309162855567247678959032531610642892245814185663690401207658318861157727815851328619792422635973271945697312467846544737222334093200879486927870780600933694022378808018916401086272350108432178442782974753039417080191581487067764187884975347427043659205841942173674071177828307126710781681560630484497077143589201768526431261553430284132940597326464915077623337935689398635054897857448801218489718204509643058734188808627714653141829285430511571668760762216941518662773755261382010892447619067596326418425134180550625591436798861089870775416223327242988820673461807776994858461788803119522295751392757175399074518926401229356653256719538336627874575945276244014777092444987753524804459230487142144561126950390170487542959602240799619658251393579367202490404933685969218058755632433405424240459620732672524800184456016933106267180976417101956851478164915954994075257454393976593797950269530171579027853853101866670528271836464699787758035746191326024869422883230931984891864378491284912912302146825029611793282728033398620353924314351609091690176690116526069854908254963833984913817994598073254684307087988095110495416059539756154723858823386646880855713173911255608072764025441191519476285934103442808572328682779019514716897662006480310963643059055423344153246836693593207228688045620361272741334007707718292639342537041824579519408280545230904857487415815262324431927109678407868773549584347601075271471673972772001837656302540679220815526863851252411888419660932761773020762494293898513865469776169871185259612068648538472057787498947253649009758289017048288039214082801949130214386622306899616016465733379839039136347311334816545813487994646891762116038589445521096840627866987450512992009899051433994851296494575352376892871938397609668359060549855640951392694381729952758129922209446091978324978228933892151316802848194845957442591452218491710420359220636870878226826056943639190386858657067704159294883401273551564805885348688850661896050400450062497670464270163459136777205616138694597778700401608521947219575818743661478252525087791991134329801270929906427111813684005308638599736082557155717775623981523820794864423874860186327848995174843893957603494986146386523252999776737191953347819711236861624360767403566164826429855450496605679037897889387617673756704475697485900063284173221247173683431790715013716292598442397848994674144594959075472559618760426299066728771250905538003061876121063771646357955554553193093150393712545481005237406168937491422063689249217224857548754282081782923586280321024670814127368674140362441433017217783793700253617813486999576733643101894319892485214902438178630424120360497295646047383673849465625540169738593842181509693968189854706097517680436388596642772053697949791366888394644965053411447092178287687243230328584600275536800170475406925229182908573678411517203511469099656144727200582920080763549619391581170068092504498531908815972583206153961158409077995154182296843195543497065080828254439646305710919456310223274928824210587069689372820892008676637710232107606668118698344170527723111968850862147758548466859261321154293322937181717382938448642361480296029119530710295521414407407394423473042612619046387325496818922194577292200980502405487831079695632963543665853476482375265270873116356495701494140375864457084227344621809594703493262849501520573329047995290813961553647430236641785191282833582926396520958521853146356896905619515287188219776634662178486661833982793888158133980692841687317521959867955552772083863633233411146015419678517099434558169614721939547461025108665365913559138219991345141963719796695252546714457918304336199044187277802217583574278872184594796683239745256481555994342494789130423391886401162744427055738742907627735989727265236600891194783152827275008560993345412300073801522198877865497915555475961127966868513503748364264909565056377929019585181333527041729850262842517067516655974995307285524947387517435228033742713818386968724125980336168440182376145037787265811933059006516980225988002542310050268765627461917712036727657223930773317744862277394454716973429113679559605711886587624983457010224049739944793879611209845715476084492530028265936670727594063830352815760787413662669309860650889942741520309869491878926039581301429769894982650968390085760034305627439670805156173010986543088038607056008889681586262986501575929067665191647076388954670250044464186925655598013467787485519988431682622823001999913893023679928533396209386139330917285106396504720532097067088986568025148125476249060034140409287939411760303131082521150902408853159698337755860545260545315215630702883815103725815792201521553099908231531865788353035517985128345779031892776266500062981103515916399427300039147787252370993360393728276465414809947632498501713837232282829073694011466232679551803470528172027748537189811027164754160508149971485248638540510650766066032821847707756341599489420171925777663504916316143182479722622238891601339303297181777865087818349883888169798981427967130874889433436947768685806873551406829084900266000546370756906831048076267231481017743500997899045204175435146689307293239210809960097111214602633462662570496314757491681664750199997932251617760387534394709248238407680664302465236948125580268414073442856096027846938429807174036381518070997061319095616227765548705714252632894278951393693472124896207215773141279910882029648706725869339664866505163711091300025945655063387029703718444915827344374336649313855843405392554244007831139813941850092654759083242333280975391909219389313102963251699356581067362169278403758370656046065903910584991651040861580288529693318316116662472071568467683424174554749215664024813999486562981305384147095889223061002593631524022734383835390165299760983049787402162358425509983658778539088908447108372396603089094907784180418322663735907565194867722361192496113585745183834981914645110330564858008261002186778502870689522438347087692357164184658368459782563428072295360554689214956296774933918881432954585011855896242492388203480958650285333426340600627803419707128511094296356483635194419249769098781170904238767529603896280222725488342449738192701968415371477572337640488755775882065851813616820552826982008020019628500396113282573662990521782180381493660008920503362803131407407614636454291510242255229694743359470312123195592770890176581245288184025174113187398803483799210203131668087790782162938612117216499455066979619879743909919773223624812290668576920866532340528278334899084190062729857121894524884386098300207235731451336750792283052156045326695767175666267457469915040764445360713068592941030998056050232997405212573400092673687576220971507655640741217153699654543977592874156475545203124285138655169779242616157607814533890813726079666746820484885917879813541231729237649452522389316697327971463158653263758973822978405415006456354318243439064970005634876484838536824069732135201191147945341168727140798483683988442233170693872324195316658685136300565865958330609569710580118846819014984555916087502365373917858852861319749733999268686193408162362643278572298885607563746395728500719134956869595795382669154654188781823085507306193046134937234788442904127581705388340074055265357618948360616749852002360270147290539241033324153474345372040116553801947903206753669954652386605480655676503367116598180116865633767038220927386317523972242783035404976943593707759826770548653708173914646489726054840632432744483304682468411328676894674531568009866062730578090191210809385569084133876795351184402028539355973230081703811336209360272749895729689880040052778625772601197910163628670861454269581020095641652149335718009432738516224284798417889524659536861855347621300431868819921622942233172574012649698723500096037946758042569692468241919995476147535516468482139763266369709301890852607446426561225206288558307208919424453885518152884553694195313770352977312281665606441428880946793529938902808082265187641264685531391924412553426285033450855517839832188679167232144170989445639885153159301856822742512077467825701880805998262919099818189736895040174360454326980196776013542392100413726520132400577889124631146774467587591159568763476164750343104611670126580644447562529863464627322570388149715189075868969726859635755215289111087031728197155980277743245058500630441126932784924393651478379378071307035081496221847210502481791275995197865954671192139682662154581056556274450372443408768754658161073913978943081248873340045905179639064501551379618660178833584711076850005575514161053031093425721435446297207980494278616025723670343738132416291344081883302975653379564067249209952680598299449816111518607696089851803582156195425472432696002023483901126572614057421946012538867160362027632349535285146353766011894059913797407675670870337380972545779986778290681764346934418373183283196374591852390631560565345904531701734964598455782471604035052188198712410039003661554292905126466688354879619923660551491598344193480943788389570322921406330237236047215191855352092150000016460634802537740664851660210311694189667712427265186520897907695041354924013759474597323695950078776575108674341918572723614575983854809358672879906328855375709463073834774511533771982997884995907530379484010626531079610434071659293117704818549295862448643324293784426963237760836297561771433113347347296314848901607245109958986791318106850650918341508062594859450968662165364227047240175478210549677145742080810370689566855969617366404820495209811116493516626704093259734544547786985613625261518072817447876168498612720273127890240818100224231159723463566195373055041329025774188005710525302450201551984079320343052506182634099578182441913468778965055810284758396492897861435441381927629769304046630354619633022369122899256824703543413794510337512434017835215604440390548267430877192921643512728689480252799520223498567990358228482888824569456067214934713291117006116137620454931871998869337502330030163414923918024816420225281955617867233594802990800422457366546547216727952891478024351778984816271477420063666156593382442077320900487894640812137504174866008905736065297005507466316330983778300227579190814736026194981801789131543115562050936132457462163238198586718982129132171140299832980086862758523856000850726327119670843392583920966404764476772434718382055939895574237034720340250086636591710752717320153811748677606115972543272948179604830438564632253175717186944958857467156118333166972722186553886551140775175702630718629654688242590727274297987890146797765094404849338852412265930725659063339120288927991606798503057418233720717798608291487367099910677898990029185602236736507827460603425056191765272753844271286028595794297905759180004046759157582074665806368614611240469870496361884604124953398698064139485496116874768204444321026740279936057616445304947077363362968572552302011350447262951745024791648592566442853885236401031098067632336986013055822757892075106459070184776013700706206027139741397321414972750410492711212157342465904259733524078095863292260571995034211415506585174139640807978332899564964460252419420810045575697182261086254219508870115836336727652104320546878267571947716292957287343156076450710928946214423984985809159235982419053335485541157971866876011076281416960438816304449677013768043920712336369608252673235310789026693136246569052376770556222507234783506356809727821084744121130679823472562501875860359072197508885801901855390194493670093401702307358771956160447996510027483701498985434115420766641934147095803910341326402333923522746903858482504240710100527067195109063452831896088693948510429110787313350416092376280524205116925417803198808463915502828495866728837872526150497617983013803755022411775052175199997962500998888794046176411292818817953700535286382779213914436102914590271878703123482256255022648410318862555817335078315148561427844486908334722777497560122078928287468860965496915315159426617180937023104048557692970141848296974791531184658387979581976085160567794194533713005358498000752340573364105267204861792236240990373617732401949255564983558078489885017773310562898164517296598566192049141984001757464324552300226625519826942981952435566793093254241623117027199949637476765170166820932699013442334588394863731739997664148848602556291976581878885763198461998909849032858270694966900705661540996566597724009547697646857703712785445924569818311892065856326676773334218090463907909515292818950112937937146840067218563302901258911841157375690184305444660121440424868518323550729798551717970977915676178012695790365486143321541095690200984959353860780146961994175537157793881332809299998363008214890760731214801339401199014499153307556285519556395655232305766812520130914024455984592204977123079227118932076342974448193711841524821368845743852671781228055248019602773883985354177622860364208403122411863247742674622839713578769921659443924909480397270936379439579320928589356216448882418468726373190416940380969105614565579914312028026363499338838557221027554741672272412122915449119982253417307611062587763436623509073318463806443283894853298657993317091145998726088238291054513412393026553620283026901668983532597637401966644093252864594029176540054860138627477709073650209091267392261434947908882186710695385489632194714077042533030530707016406181312311823550885065775181135278289788627944094640231485027590361907978343082275645231242938449233439861232788692209448143593220237316043184765101755163333765791350725818426180738349474623440430611581237316671772944218459353624393600942877473197929372697895322452347305168230581025430196747262912386108008557035970181243590059863910362044068777722883070297019809926229497119989393524627289972535048758852028466405256824119842875037694023960037316417661239031511208808216255036331304363299423680347925703442181064810767510678519752460043749308712267228191444636499949325569489522025861669193829614955808612288824900765147083629104326065935931567353534009877635627793940354611140193294171473881172052073608455455462864909763259084997395969129114508473064870556286016898807739151489252555211386034235730245964612475698418692133393552762316583463407065602428354418566444239461301252887961481561394798660518710415481200887549146251229157777815156412141492806922593147689740756200602755514790610645086233880611793605083140958534507779977045395915258499178477449080691921839455329368237949775862161241553715803997224076371211808914053203078941683914787596591058050186089730726442868217936097647292921636341599390656036048624767774479052925495510682757416944082527551381314972056786829641333247251482887272088514721889220540312342055729825713136581614803816704969547745797586365061723688211298696395716775657263262336551135784356850952716085342859427748415110017711213649799203988696297285584278163628520235694846051407463131686250322187655578551651781875317792770429472829715201633409028864177656547584885658750294386252505781464008126145147441363273609792852808664575799404706153751972716366635178066794368037798433469469245412713791750985421182021105923340677960937831561114007070286384684217187466389067931344237734094376062581553736970693147415460680910433667768137743201408417307686972838212100937702319151104349372881150095638879593640319697379725418676953307542135896126767316197273641327247967830073496074723608038491544192622952096069792066353233365484031012956257734793128866488437746326392820688468293310210490173580040474385037404233698017939358912630580319820496303242907961616864197308989171440833773645344828735302658593164738994055076888062326497619337531139383633553380545817566699990252812097769599280136315547256569066931539532656117685360269346736039587735931835124559055191791747890629661775477681478745725933623973287051833431233336267206239980352175104135228422924781511547983021454160056499987469170575325291359161020947914856759153143185189495765307801270742619873028100412790964748000527682233075821803403872087599452156263046893792553714119617131118213915269170815434204912387787572506863455611492691364839270036912508782077505614762604542076190250814356959728264843278481128067253180352780122426889640502936133055880152920588970402968427037608059389370351036268790342780605233526648162199258494212044066823601537560434911084278842105718632321062409954777801430814919117741814784729983791125150909494324428417054752340434053033516737131769220856323668134649764359998449113994737806368788527042493857876994896890984337851739181719890438077002911958234496571624235180943214518400427230418976050260922855749458164571136864062264670912746542497925135645049203370897845356661314662899587074702847478700286311841204178683020607224853739473286260169647257181907270313526372560585480618632931990355203372262062523435424522590440020585875681757654959516005964311385776811003125099585285169954060267094746105023043089986662676051754663663791534600592906028972476059969388217464705259951369861085311550232930200951476572109007982459192736109705240634563142186101731086574534704459544902910308991799287906909422332566156404893071606321069002435391350103532083935907130098585033974898626400521162499526760210866460507384043643957567067800224201777112160197993879381902063295654809444005990391234245058670077885938691649389654373490058615835670658965915624662911291580117236259475486241698926697690550084523777186738750418672435254789875276605812487436255078299233054111050566146274065727755221113531069900455354043939542553888942229248910232973559558747205571810579793768814772352068225598662103556803292483842058371793710120720250906486665481730530183874424724415410346763021645482502717627313462767813144188852849399241332391336450087994117739370669001982946064621202837095971423797207958120129664467525553813215719031554426539458194608347862118827915067872647168497340832233315291020646809408378681640384076770985099875676691409291067060688208276784387016897965628903267260610502923996132307863913334344364470398577501212812147535607298905322594583119507053269313868965487054731246069573709091832468772462472307118086439923651851845472937841982343855200875851986992696276517680843726094176443682294134153922460083249713363624120909207370054419409835227259314951598283854617471405180368300038750761795273695455621109308908519692443800233852727552192109894931597751423601281953015682661966637300801518813562664173383951345468861187862330550461842350643252134160265096877441108641074111250301792219078132932430614407710254280417278189836103721148401508819473564295896854966931432401422894866371457022794265857488307167922220282418396372355102724366922139957189573591832395770763108365542853468496605372785628278194388844117731308338948111806006205506976845159751622729453166525623875631343183861923586269274723548571000187552300847840049120515501838180955801209744423131286155720444283120359751695619209475642868860627857599445491518941924841739839156204220723091593863728812971280481711222512844750769055295871125031554317516664161137282736592532048331153174961953654950618589574781986982110520748483088220617963705860501498929953479055052755843383375908493445866698995525809844219984594753082466173778362122585270498700160844184226663748765011513891900752146785467370507038572256422551537891547677721258606212324952601453074847179527419381341438252195598178414442057602198124725872747233722797587916026571092852956563158309079639208557028485055336623503758279498210546055867773469662673907166570752814938879731430908111747311079459353354643329941293501938498294054927253041858178918783722980258451133005561011014757469067994378321419802208400099105935253620924775224985598112305381134250146967969799685981766073135304091614118379478373390055761022088583620112567654558411621536418260146760234713187840869683087812314695831069077109026789019970870109013297280025782269892104858682998410605201901250280201565512244563129286264404493578950983976342697536095310946672643910263627608569205170574653779231484917195076086163021202775753610385897064376078359973976270144261180285157895282510157821444029424597439208014484787059846654085775681973851678050555315768624837424421990475073937607239948361989948237110351715070702441077403959477081254786366875798185727981453768015242954394290602439675518998892778021425080667671303908229918608443567874542506736500203344364173289430029688619791965505837878406641870002023762178118689233035806688870887413255143414619253218128653900079430290629676886511336112798569067111857229350045276727665757994670298081636911905757499741332356001112291929920017524550216404383802185540525245897857386180641255855761826020022323262497439508375689818772708385420912067175011632831108734523201981565811566581925367652811774738952565531455762836077533882623574035571432297989829622670311194986991923559131826651077567167901827428561953418214851793385627219457657611205879516829657397578889277362230336590861193654095145584596763778747268829976796609778902291888852028036083347873932079314058869737578842532095090448264158277495370072990482795324596082240215354022328538309556409851040049254930733564080027539976063784083257177257902265707221148264594408976288936205819248997998816270020349434275972586092077348816222353278359152771690317447848541141750735610217865926023572025925910409616326046569473009822391397331876535511644727084065911577727790558388851349874698716935782269984942261301414808541392080460628543419065409551043477801198952836043738225981321059025777264837729258964656183739004730427298546894604773922152423190589468825876823880466244532917461593498084785832492790658872943487500060012879674894268131342655706488702502134175500577165256573389929351810453195539980664363694228327508711913655566426792285357298340722050804903644556722361974966526453479823861611881679398857991100745363425727359807962153467046533337372590413399376188009804702964290953005049002203548745030973205923950632796233058022579597460120365986531776204525935745495731229430501866049362842299596845733546759806624570340351187449996436278690756098309595562940884384334874768979498159484696732335999470476273472852505167275412621118556088404113118031276416242868277182553126941451544658485532399375828808086255904976622750092279166221180813073235629448453221372014627804091267782273500639021803976375346149314102791590676701707354482860672235193132741660029809904023982489265363686834101725792796916393618675731400291514548877376659688589602584545220350695871162025182856469108642930354890232138739985180103572802144246250619407555096384578059736071113599713800929815784198699190503557459454976640826843979935387219509889212570189019890918348134751230844230634934425724705344202220874612828832858466397701631529974414986163546750698349385940139259443612820838157176058568612837137027001719537509138196837449873088656185755088685148443803142348818022451407151591849510112472843327018477049206913419356095897120480465163391015720469946758177546852491123254367842972640831942065110879763259046115389055332178817215507696295000911291970201671799257500350894262774200173316549815041146621738231189497579767841793049461493932970575258459815752802022195328327954313064402571561567715061503200269130366319072893363129730416256142497308422888221227442373226960482412421671290944781133513488093672034040979846108834428130091537349222537478152734219708840929563150087222153447791030157465544737332883952935309440590308564998590618906387801495038594217071799668520532854729820972989851803405224433583916576695515717485700184109344233922903174183126999463099316732243034267553937655652392369638113020411973360720304668694270984437170119733491908476100337902890731437009235710753113244262674850753495798592003232884442280084500364414675235076740106280652954367457378586035290374437249352785855580392124542687059393305562040105403236448417085947933519851321661759813114377664319748982790057356710491893999742459934519871418556968961259497128047231123957006427158710376595363508803273473621963447511533256747919047574334597628958124752250967458501100058311885251676026175610133837239704285825158316679671468248436220779312124689210980825618107898925135892492640302230674190077831437216310758540185181481217601018186683479670413357295419836350662999610663548685113535767632291352824652160472036119208265830705707855445219402425324391424095899072422928877402354129507719062796651562213795536780769535305932989639641195521974721773339902987239589304736739515959452459703612441650995458198352516604919014204654848361309913906327454881346617160962232747464527906132166978854996360079217123533029485221015082852401611404538459211194256689761911433386583055520106928082190445413526882280935145819131647721766674465225915406550781364430217896998939646843344953850658182731458708972348207580194088622872598865812696860572245420115510082470741004304704997522987058055673848775660665219593839161032151180908974350276255787071510829797082000974145989482422978613091583996060257827578170326821748226610073142416106530193376317838402557309842777006188280145836119438917810312973225905128411104065255939774667018916382366003961052579717372893204648862499086823220968748788900343158897083863105891071728217140507936729215684226551419855665977397490727785843611646048039139865883532337630914913660138379639918223959188397000529380072788670162411445629942536950076103145023883337401636758793802344049901419352768187348095370509128462019937722221576839765312470936708855083889931965375345725988022950014459490738998687081272719994489577642064154534553467574838073611398058481481074975963692614418534217912493774908484283756717787937840468090014706928025198219722002110459451908629893306630989025939036480448555990607783259620293078544359889353612088091054550866517342538314084876226252797643228549030471858124158539068455054900352096048793255622808388285346939594538419141142185341221792165690522875238399560397214311881346860453452018082132775552478582172752705735667684319802131799625280300405602036544353674104455034601044637363594768971018865917054102760287774145554251221052272367458565079394748375531062109807034677858643362567254674344707779775348546747214090609660113958073103228474991667680498487305419816813442379934914460043255130718378196571724851417961756516093800234422993342109493165919564552146662962786905145547000880838569305182801653007846056327199383958413256119706450939676459447767557896280465575654148696778212538024283414882677445242991430252821188918039319408315272203901698197122276962927572070346407738652341710446849451427231284613002481512555441514981301668580085411197781493597888599600402157367929245328066868953438026730977812301509319820135458344555951575077317521860237375280442806174707599217244033146308800953526740424561150098432049913395238643262464676226512199842002609769823537079331355910791069338289209379380344627911786406719750997208199508791458988579567456131235420558064700955988885746870605578380186890328296588814815113479478846225484438814151632012161402102818732570061524981110708116411198326479979936426644847311856294396054065866015568275460834808284462820998115012264089396948676091615398314069008727357748109761483670074371008982649264543191953420960237382590223267464223082574101300366917565220758451973684891424088606741421106154295767029019944514320589327065567601415642574203684178990478063444077327150349675566377837756393627896098609591920308040818443501970679424324814967476190990325822402291715570847154182550951269720598205540349427936484264336704196911407798190114169389537178261892796165879906175262315675413262215566244121766236654087855837031729040228503254622609307061745082312872856892571681131470106792151644995053075198427527356218179179706278272490579795359803253719728684307460615141143761860045273642066738614123884159361704396596636406250689267795646231666888074116218536065586203785804088423954025598140108323982973502136397157642014862204365492839769963779873046201525732018858597199765784868761702562147902704563961547408029496518400329103072893363979975177911892609542891303424470749183891384296241449313996343270150313583874959481008600699552976571522898518222371852988548933036444401278422812941379100839323412740840330742866794018154463931626288749944747743837369345251667788215024398587848078241821492972283670447238846908184096180474660113826374904446939584147939419436165992866621461743989407294773033702499996915909918748708249262120290664560151674278825572149805990527196701400818423334061944494404953665308737178860710023040549006613011478686374355848109211971891941246272754926590121732187452554963919586712558357782638372411390736449530499980320702421790054074249249668138924078068330645498281875580914542571008387183662848159634824088775499094098388410747993177053406481950762854918630328019100525326013138312202777212754514333120296352540794327544787235231173537713303759226615030011916134817002101591655448981026231993178407656959679037408548841987186722142193139661454724813507962411164106672460034039338885502024014797774734266042269144460910681947212627282417800567364083229703391690509128091801100350112789379899119940553071966884133600403354324694523302807811199513868220544363242583750065023446158310548491252478641567846637147448475601040170659060112520615678651712255078751962038767338328259615512628063734626298624688771957025727843828818664302509319543502039210009628419914510138473298802929190685859403744211494618182032306033785083196100321068919878569121763105322679479921130157788002608039323082580874356200378064721735880015507884601294586669016724753631485086912716795577906305524601136045642965821473187168146866813156200507612184374054315649889914123818647600323433820813974863808832136493732852548613669250340707903207414160561129812410251392385761444071360968107236100088678169071658445212470500113593301791080783635850350125644534556029615668929923105083009671419335846494854043169848169426853985788710607007053652775324490955869546744134218899403126617330719672120959086364019456261221389207908643175709361367601049333474013652589897459383270178388855326447009032777820284650463066802346503415070386758404661362684678384512935799879128678772852030976544397658953770059555655114308887199248267793487569871617322599680124326251677851352067521971533420116992211347148366033440556893501357424988920923059212364568205717538279478262992700959217411483497871264587489916791952217970554103100692313343990873721677619750841801384536078585211745210359049280888152817438113019223381845808673431609185960676412288019432790968977820377756565170155398897780631946376268151257420186564244018870603119818797101194045787859052728484244325069107532895785469622178085436499023380379683019517355634606030083617737514089076074987805778736041778548172456829852683521551462095147749444827094405196221977028098915080762493897098949406156719979812040601890215330735700187658668389096671541529355805780573766596003375943443030094406517012840706999540124347806272304217703985882991405345511662710131496300595315533803619116292594715891298675672775592028070588070094214193260630070838873831201837768951799673245027997970483711697056256729171874624078319283025469222774610668229513160213919481311902167271649465729112457352026278361855134772496672446609388222242447505421186597772290448727251206100269071852524575893104357973168737211791694162255363349907312407800984065704306488905388852640586040211536399186655408013117954256240358802183846259328268329925768125714353358438347827587585373839470451960912561073776779303007692193406143228272862761735694072302687360593547574589176230057864141654247848548257732724410342932885290301428013357288844890424194400626623442709746687939017786937495339877548539125129657199285052982869262360269365454492062787534567929030429989968872570219963868370999318617128103071744645201316032959158160852768798904677928078771291874721745332465408073858596522623279576821137903506291460383599941205980593414349600965535662094242401875797385778811905565382229407878566101231520431333918291591757047493658569929518184384388528484314691913782264081779711723024174027553447902973818939409867305482803569892125622782631481403629504375828826576384846725853788358159189961025059547663847015342912472912644211725278504593867909557767806700315506905612223423547554290312937538160349339833296247197434632685155834832141582437490724407413124551868403038046342196782006903626100523235334065045274631205304183752032672481959695078254397235681355655168425353979780886891248572278079902562984491569533316059779296223200042311551897474047015743592901820892360987795010883426591405087675223541544654859498040625845660822240238975915870518684850384427552416162250148864955174346135937896499225793650489524819327569345676145514916229987850766233542411783962193811224288038051963287184845285262233496319481917963729175402116144817483753055502913080262070632912338375336890493930165584806256934265542841694352167389328032350671872266807513629572645866572635547222365624819212619360341054471192127039566396032421846532126144212213295130293813333957017381620305611091194064125805446833396940373546471995822861202096123362253112384698992994147920010016309302272226500833998316345571300655511169275837440409365510738774573793517695979648419919215397880850274345291807296265830770985724927275780443696209129333821760039462494590573129725260329993631939712878901034101518810261667710886777208773543810580457243754674809889732792871704131574236671441967211168949422996162943096050572013158675077910600859015066765898468609931419093261657705217330933639550792030983467334350684613826412212549273329368150839055389911284456231344393914080434842966051024921801209271547803361223701356441149382822927594429315038619070424252292149177177029655433333710274763094619290622447105717027165061132805825433963652303595805358975957158771241419156341296579603214150480534957884255820051732377421347204771204035807873488504948904485243748126211806900029009029954888496141273749585297994974029195052732512323433973667686425096278789652825775407392236063007556302528777250420457017917728686793109391105221989688630212481918041531871391276514089812242791721875624624870431397051039796939697518766169475158602547781362297420434945293265221610084737104093248509467245830686190708367338675007756418840502604045810244591342751796032539511428216473983172263175236422024814073715647940842729266309642055373730398918887425023333792685357467698715302122757151879544768294676075128866830413806330568885331415192567358788932806528773163608209322692778985381977581067522924108555028547854701628935302910710506263447352116102318993131317530408546331608961728078568413283210798547190672025653965400268356350409696293952640011666166661598727260041975996140398935204383911538216900863348233092226456154792888681969042510889697866885474541877322698955003880068392036474155155067656467302341108673811396423213107783555012975744351790046005729663778605640917761952757379915135767004623823244294964407726057646887971880168442643943199465936773619949908185038064496260058011235357419700737833540504486406456195616775567627821751330318410416599083973331713081062736044360896513759312342517461345293591041464134280649236146344034301198466957297097945059717116391609848498234210824452180654660682989212673265065204272505081906806520498810112801852034580816201212685489043032886317474497548493341143806720138342500528338657669467686336024123188771297777154296280793001811201969174625099870009390336777906765294430354142302288203651714417527969805731951010192413885735986893963682721443587124926219113307931195069912991656086335879634866549755491080129532160873565835848635784862069977393148424593351814818912257142793544005139087249427078057817614035658279036983865024073133921310851640519548310098504203979177645120284115235344541660165916149215457687540410342153523437052306945391489920254994604641715583267641509647770957100254632611310932119787104191709586038109923977248879195052008821911364692093704058416705804073639603461231389861399858225875297214861166065563555433985370853017650989868852528478717358087005972367027177750646640442287756285848465451407598144853835040099414698297850608384182583645847161803145235359875025047333466895594979316974507626975660569154457488364174018246702277641229129749998895920547503931911440552210137467612215149216743408426625828055341144209801423878316393653270465581105713943581057803640452724394062827843447509135973977529846987895295886832906909734782646281402651481629082914515395881253512619464568672819583571545823978508817535160577545017932590011594742304590159776483684567027790513964806217179599615750284521727632998945302877796071745122749712752722155972957767707021945825843875280272873007519651738907505967477758225850866327978095838249195281007577471714309409002063867865026819859867010200485040530303195743393593634957156430750399287026234998259825689670392734001696189273886673169108770250962956000835448891244502759595812260597992153171375406490922808897964017990315305990127428484359722332997640900891910400986405043622469461770319700404034341342454081489008348067170426512438932266682918750948655377996541014764141438228237322215448351484567463596020516528522689443154683319669470280544131220031108870850510935491246743672438843328468746211646526588334974862534058916385971656322572419675094857644977285065119698645381314213764293043015539760537538360219176725138291891243053979547674285190664217728064338785229825384101916379797484107977800246210656888025911345064719150988866512354827616572126104273444318356382308687587855018132448003648120280488781894274392189583177364851406870338475604748855862221617275049767674710663945410499468551163412617086877699574703234566539869382214962707421429899599816564620416310188456387655937826672346657591933058868996765519118565293759643577627847057027650939926189130275901156533908458526265256173806693475719255173562264384594779181304962179426966307655705301912217956822559786598150793232834521330825049119900456593836019161080946480134367988248310723778377094914965692890984534274772807811400283222769661915568796502512240021272430736522090125678303779836718550324110782858005107586785673267861452407895453765894457997680918923939731646634590693500935197578740915092500576833529054113409213828069121143868646363244304836859730846685707903195246340081477061666299926006149728570812303695564630209330438358050957207890714417677003397187818631728496601154236859293465253963017651849705857775904752653524941842340976384092695497844719166834983282977480903291553075740112635798683462500801648890451371927486984986579686112888839403103803810516453187485473591395650349307570117107801907374065579265039599088647206761004982427111713031786713806544125871310670642531487110033612285522873195681161535612168016460792057613801974794639931190291633114298168378353291409048945515786416999446167944110756134618152381997670313314692754064250191617096050291696275283473356374860751956831157269754738174564502582930203429904886135689104365401847939367728091607869917198074407805694799006170989786348308089136873819691547526386084198111991019831532362251895438871971157495214412408253795340768029212980017862656474199851502811637589456991488617124383913862892913253057100072596540508616588136401139613453335845553840776315944327231304565138861758528002464034143911603751414271463549162943082640783204831690985796380374985070650601107176161379866589726967744215959092947310833110021946759378986127603830835821848109460348099892299207405817218342310534831431617796525031967443781673021725706312903046475094706541441540862536931576664726963693193730993409757590320324265987620398971106536725413791882524036580882705830115334490589296796227629543694212951726084967407173770164458556356330970436124819756661439309596116714782878977919179570643680599884881785136110158980004066248049457184772966475735650528240244080011176009745166937238022341637410517989589416194638466432029138478982383089174724642333674306329111810464945062231525378177932670276646979064701816566876586218515549246415969157591273040537411897235291405647005585831007946767722276472526122290249703974343064888647321870171378880934417221474682626490290015713710648839566576660214870198458834862695760544164494759953227874780400790222424683185995629659110135819415872265923084659407612373307383406801131341356022269270812332025049618249330091953571261241724235962145833863637351262531950420127565894775734292791608734188187630435626568428007199145393674392644151605786911195479092588815071332681760468578677145757766665558478187523180250984050506682946647892812081656237145007601214163140110813789169317980295320693479970352928085057737903314893044449109638248734591144993335691400525170489777234857798101015202092855514086503428595947480839293778010201372881460806421808657136517331767654006610501423592180158326900278671089370974028134798157554939422346372353208278173843847150812861079656699609789161038795113720881985703018555731277969533848562967819336295231338971900837396656339849566577487996410505125614518877459531895730449395305975530621007747689302988631118602817803482748632980001077706403408056767353730289305826997879046104491804812406917475287421221560616366951325456994525325361214764622639978624826255744929857552144256309708555625069709348415347060790280146701078236587795466003577088345939214486121643625067934768470876398903347982642030057194094024920805572727274848373288780793726217687894498063597572192163985162049775027977197776529837604681876119563979661647171319704516657675517149122893452611269665618927712466034227552240071165692339986706390505859587077479037990161933599020147498650331148962589683881480386261849786290772709080369157173932862262252930841120320233598021901485829624077647228823937465047444795493464642875675481426331484064880366191963874587646018888306014256040476250470339159498256906417704573419837916029451604369844893792622366926378967133873839768741328158832912066247619853712007190277301845411146791493123474496166909730304265323198578175740094618482290948127583253930278631698372266572043235398722025493154127300451215527656753113305818603899426607913854674951748004672970474146233953430872972847950306588453126847216796825803750526660825795553147193144571879303283052172353217977087085034745799803335266924165182211123382465315607890078907385730330566721663453400999972626261181177864444957824002724668542025209527366769937552939704746977017146954676068731467984185623131497569314667433772766383668960034657716920723517349452371024743308295105463621944564459191818072721706151371127992676620466146828866920324370602751524072137932793981922944171534070755939288721529929285663119564948638472378815719905863905051628484218281624189773416109450937440361065856213662661731645849351687142298058815317685861132059790729287297349410216366639126423857902661100249590788896503424096477456644491469371026257901220245726897166334465462726326122540546999187347275475320946806019531720940981858140785112944308049986542623226708051004984018417657382407987591217370894722438872880102712590031189967410236131058535745420056226226970944197871504172154411951250301453836260590001548084640247067770943767630394852750054927084517108068475447021534292957105141489222636834813733380990445835110943559120429207001451046244290890635517522584062774098950610414099687088438951292326368990207927577560359591311032751648878340246149218999274666198902841475082668720830439169213682430099229439297973055297133898592927578879946691755466843351504720794606646790084887975131795841247224718963242361285359165833449699184622346484458961130958590497790244933490458719179437082171947974080391134570770478595797753758630135722415823214087910750008070139124635716475733552742139081252768612705095207459910333440112556764248459750974580036843241102131579136078766337508479142726308227851719075596501379179769332645039621751776598080950952956758080986803398520404197134699444027642766490444899980885872964852974172474524581843328102775765523158081599597108824728102027310828289542437163879403727937722337739192982238810757992658648302413496403401864740251737861208297895356550029374747767988687696810345659993202952418548627916435695499548260236714030826958635384633806079781282445181283770516204079298925179708878310658687678633563248732277964772217169533713086984096646429449387843589511837117338105552923167219899457019083366349774867766737287072238306390665523608349256567542204327426032567068928112597864993037309900712739419458328424880002919775787782903586332138885875476569847908804154636378037835128117222872567108958678499676058942630577805406510225000277175480089644068889061220393738107612244974222752503877836377527008932268220948327917392648435194684348832039943794443876736192031189847664749700296889109725357954582051352972047618794794198897526808423819218978271254096160602448406103705142177542491632812414620512572493981187944308312140411420233012680933348768336910738187085711502221620850802292225720484897774389526825816096865676903860457129779106630826470666550447922834709483764235708762734702551084283481924877564909729321026084538816415738492402999160802482330797803316003921232913720528660882137957453054306409155855240557308262286895634339449368779073425222796751335276141379947727573600033425798822018597017644955101959124240009656989704890590220061748679770529489361513583223181247836626257146635514834443245579896453735747390942866294809009376060021328223274101198380921033715553821477515498461886315192599896673663442722996863955074902372082001786897266319463894284606158837466308798674377808408048410741159578448500924921270672284406441834076493620148558318902556189837605071145386715246321979952269113350719943476567829768765928280255960664554638697977365143374009745530391893745057937889631104278273395923600804734402495998456718448606252035008398885107062105343180517468269708082218314573675650977495008398757483639998779661283480635076440358330211305646145768135651132912938395050872026119765821846401081864122033921302144797377009589571901706238157965891174076720366016303340401907551321294357224748142179833483449362277832959421283372204925600107278463471124135276869831335892087954062476494178503308874463739284830334508399814953412396710639675780085018557279192469093621790121009005170885063880740688736593933419071675169934629530191000316149827627654977460452936658759904680976950025483824970516874297085249583059058336575346174804911662363354183581553367385738214077041048036465488035673390752843562765994800042047676262649720132323230883623220523395495576364826062700673011346719211971737546693446344254256673640125946467472092009691867937581077798778558391481835316026280745047125451552261386697113912784084690066542950729775432580195783182059050353098378041508500284373621243535463175330303568460484711980881211262979415067270454125750702373158963474922418822021321781245869717492805240059999763025292702043448533758237352938054859683712527624282274380773876382991992420442822323109134921223104177677390450232730176597320077561161356819611181697851908098096428398492255391551540199006237930901606931208918046782416169820631983888718359576575472010806781957649999168207705167284528759894580169974467227467566922672156544012094408067489315607007448688071579811212633192060344547538165335177295012243527653757143378106988412478960165905528510074419652147969196084746399919520748291233357785646681592967943848176921617624995120160833895954819127373571100318065455231750554442474424389780046175860535694601739249784050208462651590879508800026427409176497641138820523643345627954265325942598112689488869040055432286680633789799969098334935624467618115802581681090076336510217012541197546056672359787941934192167133823636033123382886054123797619593423143243560350965008895704186300423778519933545731009797440916077550293886907247474709638769639313785474883227645286100676254606513776894958867313927230743611598610395557150793197429352488936396013972901117938989866201336211527552573486526246607829629609399021282877502333515337141072151710609670057020971650796078454360293832817751887628718339211016371477622326873104313106499109720059142917436139329870274609382704830742158318391469587026735131229006184310731478900771480177266291187380116650662306081636331863015826012563970291430302286099224974760502840945977502910644530779576751573876191480783176793890821367417166668919729899877359317331387123365478518176754488500202839218667692844113677790766417646845776257346053405736838544625048276953220731522949852679185232780631439386861242515123853780268666558262373006771781717839771118715225573832773080378308256369005361263288886260736336592553889914112789391882659877375338110852682028907854935168654367438844536159953144645660186819926891947459383843309869573986836787848985665844625164303406602010505368246226350856501458604532897427667420420177098839119884265006159494052191344632155897271601704533522624462336786524394229521118065538491274091138605762454311369947945488112520105699542005965100843062013378782496795832397791601500663603355870992676481256900807692962328511794443948161740512928530840959591313119081215264029929826672060908763114910203374148045164834981302682531058937664621862619908265165537288381557702933199283396808909291303181133967053619577120066981557961271099721470442552218654339503715006877736023560486695345485720029806617429140751813343416776061930630624578300164487561033682859876303633823605567413718317116454045612883290171945057190947303490513411053782106540616721129579461413534297871486281239492788604452244735110061337375677132415267967399673924432596788015387841728458654436710859512097321586276195503736893894416098443076524221762690455936087306731846021304772869449591185899174880184263071489620400309647260290419599631634215123475546760072110960294176076909999097104517065669026945308001271389957782402709114837096942052768743135385903588791302009768064485439204671142629242060025667752620167016062236661036218647147670018210898615907048006526346953816162877688745994947592846532205688607459739308745279387438574132420732259851263408729255033768384126934711412349724459624712711532935266649529696376174886115002216564826881530651362685467233579452391958769894763723934798487233525859653144066284509277780821087551692627175741068273777605032012325416143605498275184776626090753817108149566421156636680274723305923008036017071075290589356761396617269659221549012334593921947660482556359223291571208941807961757810254311143516563436253933836466548796253289491272239720319931868851858735234091992410354954402106745022732295791322705639038026493046526610843535871601112016398258153856206754874495953877050020744054465964717929313456360731353320244939870366951593421858435410878916978714037369526205448054255369556305487709749315939236951448125253052403089287315482258062706016711146540959751373440860833942142922832242210990800141572160514372531940344289207673129415144608093567090455138457417474967469669711180467259123891199738844584393616594857874511549696571752278674365614559406666419339676364759573972213208210838137617333471786592200585387428224848292439125292963506384701682014931463761878144422508239512219548235563419607422183364479473971761638787237567038050557947460840231083269527583223124520929291513203609363851435973754360750638503016857940531419039614678487016616940182862024073735751289487441255705148389439198270915399399882245790748652737777277123865059148456239867012654914072328592412777698152425148140653398479037342193384749596950671020191551499380810095484823954349556873098004570283167674751325414407530931659282383923493119073547134246344951479908818559180692577890813777424893904097219055476884982515251710256829284901252475012675732027210025195212784657500254287988264924352349414433093572285647936195872542498107392297269228013178698738153457093906433690447588094565708849781133002302639582300895285462754415941597198568398620190025871688652572587333172081715375834100881471281344042316683373080805822737329478179323572203737981237098843317514081963339968309829736678345667925690147778889895955898045969195054076189714370622458203874491299103357830527012255312810645575518096921225646203182968428271285476012352195479436479581441769205088635800882494459318385132558582220831358935507241579587304368970527984299125409179310209929719811170281529692548057537248527854201491161575728685741945647467774628995906924538113401873980922963244063601552219841173409486109337995089584952257143070917041390200263820043430198545745327612500381784825395192686783854996579521217154389364045645860543273577718881538237878175530624501874931721444972694891934792086044066025180428982763815243235467341745055113458749700586985018431823349803416261434289051230402412795935283361030049511992398835897064997699909413959508062930094545312602779922894866417892128940203554774506398077843002090678597494088860183196478163059042837403620728997790664048095654190244445551551998511661773287599298187503256649530387492514552285630877453892090621504061734538165534345795387530781194146349498616500715576393975203233284213494090473384565790263497564914181748869571941179369982945950424519577113802040863460708152581436118778815545278323886629520703733963695670361116041915958675847313517309681004598723214792587963740851027487407622332347809452650387534531035842088449632660312982474865516592311355256964313076536868366477219324273106812082759323699280594522996629935225568803433244040012696332059365036006965029830227277172380742097323826771827679456416575920844064218087107973896647273559931984190887379230193546165300817066257364642798466083858600799789218787108873838562727843205703375987782970180781398035866084165235219544139005667514310698843545526082512700980132636480578020750900322443685502290418509202028946289678415216932857895171766744081097126097817339912641336480739822450577078930756286442997146889680377227411088936894176816155946312465668031999811013297642071841553172526489985502592581316985865144776410392855900645562755858317488136375976924591469855486083363423962154353748803034511974979758412056893240856182576158915424930254712710514501345243341561841019043609431699877034042582138769445732643974080668721098845254551939813798537065084796702686012464037742252138868798762739991625141886581503551300925982329163982209229999821544620602858845612730627329535771120101858981316359800245616926560051343993992960508906763754146847341091656022269014515139877398307999166966636027023662269449172177142472280815682617480684669731710691447181274086987782275690286828763372158839352961472756953461832417687696451719150367933573866158277917480540333467876617568062827701185416524521066924330354515357848495302612849856640315773706838295119827706428714354815459063772839562534288445939737923890589940616255439821025322745888327819315547656010218743470809181782745540967373977141771438744693838082443908776563146254947511055899062093727747178255099800010217459887121871747684928431950212923982604966589537436299170951087673340459669248849489198585970241579041263565605025565070573872116506132982513436948002444336523597052050371572947664531600935642405974882575281783785118919909346120602338314599301145491664052156885559005304209874712122851397202395229133438863303222629333585271122642575828244749940138902620675797862220579160031710695927690966055539683874708264597047797031838532973016924544114279510001507162702850307905461767886204922473099135569836059327352844441243945190937048646199621789407059247243804557052209354625964408385953979452658589577007224267474793464903315976350542498294840720467518289966602251295992230475812893984385393871299724620841456055948157230234962753838520384175889045106546184618987037014360240667977820349324654153155444700335081605803290511963189641488084793191018116403187945831181552211662944623461807422527744664539299801951640625272841852387604730626597400308494062555126262483146270158128395951731420068259811810040938135968184288046518460799394506302686257754384697889049423163620658395679439144102982537623866320930410329529053777589683967795073146892064129922053775383815277842044454355651454766522057769403046272365277318324813954027964517062525760285085064331026774350042364121418113029903021620187215517252826296615438170212466936099072493994284596894773920382638136257354288111244503503987724366059256573965452517180417847949018749154967073083128782563369797195436924038446738038131738033563273926343583976803075053549958037592436473222877105283442711161887086955652634706692491974796222652883220410952040852031363460229184477340184442747341167844936684894623340496633582300063878791241470880966992629954496662436435798532772261508270491115475091592062366007057685558703670210429636647125733271910626556382993464054912189852121017794312881857920822903391792036301012524968646015542016971386434315092850012799371971256423591153228966970355271792099435333990799673023097426133483557988315129720208129172614054310928201410770348416476676430885172894716554778122570992002495293358536691192396294451937877019164665259539591383984531354183530145936901542180954861413096175145860865534874780200494789393563884685486897910705913260136445487666836984625244297603833192145112192219478556024242292148143915552452640234019658122992894209108881251669831024350017581358679546913743182342864248337786996640667166887997645020261413313093649766057342383526646418346687455778824017242264668606331753636025164203706718370596945675293588623680201056233370450275899581742407925010863966191885152717530199531034306193100695315252764555131529056051733516707009936248437915452347962292063584474657257124460438969348482547084117520641070114812461984943077584973800333647179163451796109390020401796253364843971878773000406934796787138417714404116858812466498810908857423505083919647519635989821199238746697644962312221488843529784426958053984669398171845970015984160002594842835209201236787084003332717100866610126975627282810612499963930922263043192571794581777258608918139699975104385070336728045144727296270291234652865244693874346052598240375102824326606735940974047473670264496297730274634407282056134075438691889759328553759419790023333134054388053385241706336075692957079692784982697092147063090610414662429482662302092695492242669247849809996326933156368520028465545571941490117591164118927643451426963615399851474534304007540619582461756408116391796318411732559322876852309930916959311056443408347343974726104878008199425340893669324582180906563360629535640487035222045236840135404789039175925391703072436353487695813192528754034232588777615006093888922319714203004457339052933327497035247876831212137731426276269177042614064884857955179470531484274502637298216885902513872542271499496458002939003220837763546654024980981373920609569884378093631738078239005266168794763167532293399667234010988178769425453475991683304690656547774026952161094272698905837966868146758211784290289897099494949988807197484950847020317391974735723923045879856045113343740153391795548802489331223760709364536284531420081318174449198181053907072594043716605263403616165406072541020976333116795939136902742720227658379062335379999409649936961525854459262149811423948438017678379143307183276298439844637898524503064104206151630385382494149022071742669420740947513172281498281125355838702608761976888882719897252225272835661703974140030896060415464213060469156406534743432832997245980534923442572121958078475010058041263860016345285950138000540063616057257387448167233175259816955073496847565788825661165430238110526953385847422484691094300394779865808309870516229136410905960584812467604392216137115426405625798255334809919425026944097855905069431246548077449656027363110397712947798123672584435946308684234398907540864534495157791269045251163324443577241023665272909305097663467126589124012901487297179046137123517958355480772710115083390877007335376420588777129786580359827849718805231811922471689994715642242087721550581678970421411867659299536756082485347080831283169720499228277870254090285530743715551705181892134263838375313548670201270842766343639389880436122671110357025989187453203661237126795334385257345627560032707514640336282883459189859074514997235341857488324132555348925129765354487175859454079240555810191381157641270189025785457376443292264228518194241103821537354529669878218350933703228158135112012416434326570432253053500692757734991119761567889172992641133097994088303565037603040289657792652571468456015175114401239101690673049369443906792383551948774422839838757769202707403049675694918250215824565441074270671549294771481020874806637126529742668954478374085123103987385182867236861970399238671457340481769457349131123331101777619814032785026627845862679802383400726729265534477157822749861795444230471561042750571516186415642944231959286864176700550466905555256279325800398056934985289750732891183358937662550386897575094869211311090407957764206165316349047573112496477805911725517776074543234065023222876461599330610753785329925933368823114602150106128882033069751481875103802727743505295045063673754504298848842780151502701060953531629022764241871173305654987462021242473578825108567066196635191640404965395504637775931605589550202587426988541598966260243387272730727515292700723683193767081307103051027411647059003569430420568498948900867497229525610028044075814165054296225780261880487272129088325381019011071135889154644195382022902096215187177652655785994696077610281691561063882922553612301559826482748058371256439971395792327579079335471486062263698328765229066671746402944433788730965099984822804805408603595957652717720937627907841761755557288792832166171180031138085358904292146698638168928787809773608176255602224132516948582134102534316121563332817764482832152673446974329712096443107445595587701523835995694769549484713101687219253153553851607320682660027722113605244051373016369649170043535062054373441337514394923424515067587032084069596617967969928533243171532619554667170785580682185384866737046837508195546090355082944620140021703874396066715774969900899772340497057976377043437052013566521478725998372734979126560023189308538010712847763240400534355778213036114138983931200996216572402543044408738018082381521670749760091764979777173340223000128228726297851318661460604234244192977059053575608633172889450844120638770838868465196773640207212137902402474844232363000971577846560752672358395775426408035790199596549504401403766356047126419056071983556046332234616227944414406718919738840169770732220109676123801143298242429784236683073319588207935779397131293178641205622512873978480047727026527839029348039597686697864877062655695119806003289031046879002171670552114518404059807361590028177069981160337537197919358747628459522091659291057074319654792802237066754447141270464598380463305132209988903853519766778581508663638101568203594012788855220684547715655745657426122969962473099463903762938597853787180803280238460536086468515527961629287919052918084350315996588393821131543502719961560887362665372596195609561980073388392036399830686241968593399715192092597327707304578310696591912750337923299922798951442571305563769060631780228979534059073051864715998940537162024693765397080540445988808136721711434859424649698764600246906454395470239302522862117662455355073160823747330091445912322917680104062514393834994009575006474547283830769412451279100973449353000180960301832164208282162273764080857028795493718776542526231440567321893756618053408739793484715690561674329679300386353464159808090934921905402891039904362370042744187005913712075776650526207725172602377740844755034125176173952168089999697491486740004349119375870278597840296121407363344301519345893544812325806957847224426601541984770899467736866412731019433935841777711369834594648392545171270138327908594600785710296680157647613749260300673094328894718745977562736090039975002828875965719288621557209059507594639079941230434463255626262339474214252741467287970711152014270272041365119399201285415267231090560901197612882583308716889569733097937659479204453696831971362509973130960236009166349696821652379500282692374596671095943474487501668612787922261359114227648705708771141607997633265641938222477459734371521169118175877364664320733095249304371694571289417822304742862349391276829426257042108240432723404513716416590118724484872882025218509949380778892325194485249073967527073353040037290875238119978110422575921749331560404804619152989589998722517661094811878091239026984001750773208962928994189801329603740618307034511170708563962637481341384742469187930404263446783418163260742538730237357587283684073700952172438724382673651238016361566653139934504619789317710551703973871141748766711458712724337723353589860655916677970203760746252158256712604936273436115044125852009818193112638474458360654145444976159081045951055554267182955875797939966993325045063438772917311795091740505383639944491160376889997911015313601692122117498794142184394940759758528516775591434226554113161054722515283594611943925458024263555489945995296601813526470447940679140671826394576889264525709603116554152991853074037066128677423861113818014731372722283086010885264546020267916254531718899493001074977191880564354904058155201004807654692932247193069987171030126049754584588538899565121239154717860826458849683195492995383679676220591040919642516571585462063423126261916174526143037839492415282314102095924531906364013529794141183190072895349285286513952533385313157606954367551745292854282577890921108089489728570135299600950139004160184018722602900858543467666157870217444807650170787419667071705702274972071190073155246116756841506222276898307667332651256258088731145798969247092605176635455107145576838266754552467304508877166052495555806357944394585189193551075298121721585483229885214023566691512506916939130419203956788284336897602751235303028698636181383420418923431466023720559691758780431053299136659438180971009076195202256069972978806548737441136110683587459155751211263150536344338392889389225790560389606927358073407202535651991769791815177358454041438030973335771815545246662117740178782627837651464358299330078622512983059715907693870310724768146677793129055606003598528863768956050132561735220677580530786099559164036878588903497861490137800282786399480434254439721839483075289720186275536002862721403933094356416100356751970522534659864061606372990082663503513157708322405780577966446657490907349858062281358205465488521478961015479399424171756119065617429904072200340149724568467606317060651263840376227336409710166446576085475994534690768583819282155840876566913803476230637870291308064242780109428650115793762938563379375473193294946046187676699944679950248216545348331779321437265786197144283282207669116651266403751354685370266316762248617609294191646500393119414986866401721432330962937616527411558630491582854357023935787383158788292338354670287638143331223590310360829950896073936570974360405823999008927377579227719992100304392986435108872272083391154146943872419431423764721932472514718644181014866634317857666905091522216054094421305276222071213009195153864632797126458599806307595067327677228163533831212839944148840729229010675716333906418933437352273297255346883395431667720025283749630409163745961126332074341806710926698414827953828660728543497666110215889409755566352850260585743977460053688001320408033668060033942291405522003346675168047330930409123265411314399428998921470979204862606415892741678162662217463522450513028770703725352310065148315995157134683091486759929631829210466395237155033478638908382742576398527210737433849536054902343343691412350527925641012046240796321144890093657638085839909999127841059020613334656631647105922066071673320616227901486094222349023793624497748475760478949235489975159090891352569038044369859436011804456058363698513489342485238241490384328237733172109795803321485054561930817519171204895525376278304654236066970969547413700022284721304754014047635993431528425135194578982678138228572526636894350578822148879241837743730385702937458255534847136499449926287712584909949967208706098735155970242151052828288493414207097510350201742912022873095387137840855104055407509828552979723439240602089455741249682641389520284866378595593389386432514035862348163009914796173847239006151067125046243052882645902561202356646964767239858924862295645899207539715734091159333272561770101033478738467663967331042353587714817839400851802304800287426116486431337039917874792903737509763333361114020424965158403742684103528892684473058670605199411755713750209979621710245496341287128955106442872844611978375977162631333834845552750443369656442874053607269073529588987782595032603892371385140190630588254201911533108850341938589377077316070814326062398401382346876827781514361934505172448849555961274961152113444764403738892675663230703709228786640084463870545882037672447069110042264883227800291027432694453294469493655131580779185719698173400539403924895544178881895568605716047181199301460117594255505277023211463805852256882484139651566863294381290432757936528440762782062591459955468742368130814994639797221497668550616310876242997665686152633228509099978593179080456223027310329165886537909710924668320233503386399335388574037113523425882390702324163495490130867111368049743279524227547093926323211538025514874694691645452932473399057749532899045440522837699106095448528762881040230855681709888749861714507221839415221317786995260936945631213850114856988196515427891607712420255725389709345024628971906287159957243486180087269072487723040955140051284050387136599858789578945739032076373753293263077089610427254374814310257425545347688878162633852922639322004014248852799885180953898807219519430561119731833017136506302831679051378425316791702372074743004160007193371935999242279604288634776392460443121399451684614325122134444889207988194448029122022005518003064974442760383527353999944042148995843320512836052267430763298873849407713963979481638039473218299789048106934985550786611956483886863792469601779333443573672753250225100552716338564731696264168925029250736921895834641948850457263437035170502765675118227757427235958339552839140966592996457163995061578603857601216631000698661553796869359241096093322412285062610478025088054875658173556328716863060051963964471596236916020241042916950268911372049332861422840314975177504036591616437958362383314669741410964659498241961449235620018140953254678668661229910483897033458840247802864115370492510768605482002071168043491606685487469663014672542038678599052586826370178499244523716387784499880920298837692677383515766925942407883053405773831960295117874910552506410722837383532973473589889338514508603040109481293829912931220780879749536663873673561975459712444413277467821114175466663975934327480425792625847710476722889956255546900211117462726120382870369575849449861017423725222550842056759568567225305198339966766076225205137441003212873787927820746136635643407895270214369628734900826324345041600068561807279860631046677515786733208114200669656132725788437626666982868574025237849537813577139199767801355963208523563787129258964184025536556090169131903674134406269945929616128188825548439146570894563163598206322319573268339684321853997948434898985421979733073355324711969075043326348291131189108527308920249713273392407531318908704817243470302998427651005102292100754998514825952121378808296183058637721204151206290415030821724604110356496292112895687349100040497829767204015750200173982531293267853876950208122568057186961525646305821342105036674659422586534068747804671649370432787507704247218757983563606106863605107405139703389546207162459568831873791785752626298486042694935671269348123551308966281703895094301111162436141112678057055378337638832642226106226088775559510368413491927244350262647919141089533282463012650407007812299445675576968547408506651999111497483126748873674542332231335506794334800205893085494081779584231000925956888201325172343633955335011606448640495428413492515896812009511252185425386514999141319493753584955062742573278533780580004225370871746167146209813769276437955473525988280935795959055173893838902264886992470435465213035163771090728419234952787550070269121202457097208710608605132218375233885199990117655882151658336034365421992384367827454070973546585927508478690059356653871031729665266790396873373986438409725782181673071964566477006778017011109342705376372683685577518563348953046332470650187164107223058478406333508288741123007394523305459184041861283668936147986132989151061266025011120914342895101694511906533457837455221725088231239830618375212537455768808057489951763909622149941769212493526967117655312297313684416387855727163860983599904004359959801056561709378246722603295248376834173017435204277957770083075018553630779406515304076152367861045870500750094646458176464388442756090869802362918193760326337805552817282909307979698022578236855011056570452371595457605709020487359057588137910525360919663069825274332880515850101364000926906539571335809106252550867868683185574892647578961377597830075403142578608722428778210684733233257353334896921188273524474281555617241795079541184375959695470666776601337646382747636034370767197582031197696909403463768833255924185150665544506703734687345326899843607549948314386992815758616485463764855801764418557417416645905530921347611199819165554165154917154610877557891147556123946800852847935739327173281816614007207876089155219884853092536315412050643649417266705125608878249006615128164184871921471502267781032565414909678435635463671161590860786565228897194456341233661746262144460645765145723779868845952640148545844985458751672838779559807624771788765357478608204496332558390168018384186986727646177208885173220761996164399152498593254313847307915925957585883956320588492935527695642136622201814669577207360767402202108968286989968192047890029881593558968979344174700546363331127724252950167560300145892280681021189776602501881168999400422269145902373907930944257085580472411902802354071915231118090664226964645469238178671212045877526422964492270405869924930172375193342906763415665085048011443091482289644823585879767948085876221088213852144020047883743170067823393780943302789427461069006999838598433697290752792224389799504467107983681493094542727776372042016767932334795007413820019110842409620833063309096743934564589962699040313176397470583905656804424568054864160754207454097667913045995266434572417750946557325386087201597081482512440862575670532194052005609053348612120129977355554765678502626585830288361978318408660398133409139254502969418761109945687042463653199536195605720892334866919339519731940633921642448485546393616515115112181862232008522846552383727153487292963212768937805729055114240531308279289586410198222751613516841847243187526946205129666329411689656058579206657526060610156063610911785753105939080019068259074765971040867060564469505253590302528517562905152071792271037208640521730564683394110146926929578503489833913987108969644980189760513037320402406925938626777682076115969607675619471957557256360944210061562748928758531510866355711026194453000214574147137638555999026273405153878422667151692511306025494480603703105827499012801113379657822745416389278082187656931412745389749121132615926745227768250543416580102151466487484287297166061360569465103723091941482808857321131246228625162017201117419193864601586653507565196880982912382652978148499728647279738401495070917525100616784013851335510912884060202593603400936609185956058664993138368044831665776505497441184203456010641196278517132836992049474840081915141504521023998342517355460747263188524178597973322333028093537681541945323295243218470246407851015304135813826453345626028863570579141266431169266805462841558815371792438482054001840784024315845935292326545485847622467001474997731987645497119632157396810332664898177502688323288358710967860585179424750814934645477977972934727492858847764875632633294320264141938790644312503064259293766595759300969240905025580641815987317977518945759226329823971956652031749765972370971085965428085867783838462234231295804311601532935377104836438796862224572693314643545445366472564107129452500048542212018751271555308168889068814739863409982720319098869407973150522646827729297734440443568370639248082409041811600521283895697070845311511410048836081668322380404517692139806547425042826906399663699058751362656574908386718940391830205254502566292583700285755877034009926513688490903625274246997391187564368359764511716913380104118151807251921247286842879600804313885190071094546446170883503032337932737558699937429061271740507203216041646704774568525496092560640956379979083662014908113036510400553555974677718051853160563492371382574114615162489535436798141235362023683990207006708150710908116287559186740103851967989372120537798085994743740180182469915241150272020954083047124309780065578487045408864488503567460092475079487896819377675444992623504119684018660743327943956658879132034723743415628717009934837079869462405522571851654450018304126911364371328478385567511383796087501784004508924329886546456123739958191573730962027263413985499615768646975089582523440065942836665910067316182727239276794904759652645401130591349527495452642545507082826209109824867279807026548050223687053354640660661755791091305009056177287568010851826365399974031658198685036967740729908772222058233454907939701476987942146833101185052066704264845464251288389631117454184936462315268814831460876340840214093782411597147579599327498243027865764025254442762382018672125904216098076803922194612061590242103314710722840924686266679491909023490252739182490576691935814507347856579905406750032432192466884889449249290535752437418057685413052523121658380284277764119140175717305176409147274766320916266383125920333828844901737481628597846834668158623255651704264873284074776376524609540039273352454015509543733961955163060312074710657347863474705102234576103902599212245201815946626725517247580150319934715099717600918665122337466480209698851836065664694658438089687547974879291856241686980553916776944281194289399202959489657259068248808312987939655353683273619144581456862271927888107465561417701129317555524626807558710973293076166137690869896911597817045320927570670160242698850831254027166242400732193628212615030140449317068309230496905207806172138337721757061488349992629138999004667133670691372302592860135103383543531099434087314211417601855536380168928577933210286670160355024966095548333728905310989075472588236520585679038489762777901647590915267767092510351500583553041229579076449218545509216489099843329396289274609568256505893940190608374658405650236254506208590567116687113475399563949697726129589781357753226628695996612508812118455708043391493173401218184774513163642855515842860388672764868481349026658511695183062040357582863831569233050930098206058423714976289525836315680449248028713422905889474830948059216402044191362496385000391061303120388748927931737445673753853668487584140684302336341922258939154759048061507165887978553175204816174666464049763930131801841396249721692439476252529135837842641131990281622929662105158502978591920779560332038084016153353505518102785247863217622313342411247443663420656565775407959875033391381547465450248278588049850263055587817287120286343119509106413949808671201349451636396918940069165807735349094251446549818696581396283510608353401110300215579526181704785019429617974557308251603400275113226003957200568691263267087378272021464069493391252365319459263867505706666636577880977770582905772999299392053809977926766595777259356277177555103891267278531063916665328180956495863995531986356965777027718051905793066884055937939292664989535179383196287368467013044077132244032643312276493603967048787740659433411069448484408883581707133034122585610914290399256343364373228498428838017181269716030343208865536766467701676670376220209566878573474619526971405134824539645939225529605828261072285434687918759615933342265155280324160906467461259270703322940027280246028822636557565991945081763814471513356523758886858623419256475920307070445986725752329248228702985608965644492285387305668620569280391051124269787996178165896460929890734592663880654417576697311088329987325746604840583100486113245191710029461391490633247244189066853763959407722419497348899545266418761782633690836196122295404603040122887602026918273574387698177142361834009358927851821698456857888081463795642154227165144626465355697509323820925108790061215214412101541963666159019568651597317914463213786812096577853210903313331501849026343918124463465204604646077164807338350628326018822026897945279760033141661454727093642943703921026176993397899097204357845854332473432005088199481111990143208094151650368619335337471582250033708639078889682111857463493190938860130868960993480781251206227219444088192701321900159674462127374708406320833260631331694568078292340987202653500226372932427834186448443034627599771625216353295331206704856411841121119798557616857734124822423400161560389216848899749779151948739254010010068125888773484856920422264566684931563043709878512254489175097591197025315318101503026795336326759733845246134569722816709445070045416253018786440983883072638216801205187855250398399902250370527910104383034992248767078623934620563796568455998424074312361987542022268762133549193916312865620492128122561509229686361747932513488568799461743806549843425446033083531512493623409958482738580069307664811259392968154379391520796762703061067798818739136318260054886392204802601523170507891111238802007948813111078196480160419325435558242196811604225085580691284354617419324433543936355994204142162479749494054517920109658725277285936099688809104249546900614622497315469502273950335764723180429686078762186845548942730940232092498512123691722606482604095015161551754396086626605352500888670309326598787057941847168394010147570825477458799698491454718032041819862052876978542468142728252133475524858528538596761663200949102775103016193122151762924585867289058342196249494414035655525303399515205881646495299396288831241904699258528778987738923619564464421327203799659582902016754974633206288682082753895410006068636909550606882360003978677352122262174030841952593634804770507486831813048020691211177516633593989452342179674561555457319535262204061061327109406243657739650243565298494161312396878488731258512441615125483933468617919196539960496291496872040908990866379367614379063515090427332351915275311880795325804072750347198942604894609990419034541364131607766946775502088763649181116856129766381313433178843945395145645251627589468350615027568566777178618804059020238720599651269352284724699789717379182046320305065497846068579828568734036518637865544587627201261327591293779641679690899354292665331610213836167331650137962765836507029400493564576178813223398526272390509341031742301116683189497285998483805038963658596729268405622745685893378234822266383548693154623235596114829320340760602073366536155523500845625543690471122890687947098635104208031922999396760909181416477957993762345999445021873082899492021436563617152594524161716008718441758612340511659536558554448254336474648211455060504040019096345756945082619167736738120065439883033532321237751471460680253421731075284528769602782465267450780121772607193482382865767877873747708731961123103231505166763885847440213362704659653903493799256380278561754839330502043152043796159226500958653213520341435521959060265008568987735586114133443564214422609881582494856618364334423400106406021405757829406869451256138633746143850728344798772011215068111345347690241473296530517847522379990120129517212264303265263790303239341545152355562285372208421307084731987944964988265674265736391832508659809875942528684537973677121142155733201391295504781290704608699735372884719397732253551035088685655011368967011241199005062835903260449753688117501186238996224010580613342967555630527129992339666504134079707661845335060178272219010445416490034478709296244789795726582477591655193861679555031136557216269766255248175194501632529271960813436380103939600153759266099508347842907980654543707850438161504984364904376023713524314953757299979026659425361074620760284199917522916102804877310193081602362272025431048692779964428987133825701928944520959662666131422938804472399305408468360762958858300033496774973505522972195157567074606498932008777161281220252019839091007906863063341394949360081244940542778634536976881209315775604775709620407940596459625663581660678136589798538764370852858928789532867694320476696934145284926592984309304203219379429314092531587652685656902902246312460828016739155948486011821968981223792932259844861603021346237601317818023340017005333724402186401620322035851627629935406469858820892067494300587843580707958538002343200605693137411112503019639202180817366758199529085452757328841545454005349040007721768440523232906546325329849950777903976140837899427921316577816089849620166983331357679304429976068446901265839891590575531786212997492824156563101847393320279357262672008231341710345299525080815655669721872828301942387378330110516156163321459946479020248711297013887806844896929114408876502449389408746854903436708174619703450209571300184251158696353098927246832171407888717137367790493685365302544260482771394229045069613245433875375891285932199110751630076286625254479703624827669742153996596159530038540659300066014196438412230841754181051046628477432063340434445107759617078038368635458819036001670391071580098986241850451831860066963251974446604397828221112224095867269739695035067311742262742001778949240473280448240722380988111894165231426342177402274826099074983211654705123758491951741512097774568688561608391519026861882647065762100792472531421624795695079312237892501325621640064992571890417719386372707176604143845375736248648690299424106414511875490406673378781061773221805968227979931637752614300865850010298376671661250991194601963116611253994076682763272631150578063085243689750759689006489408229361330350182599450601008840794937129043850355582184547078497977224505975947757114462453838140642372193119479738518403621123825133753484899360818590284296760597673026886239324387345579025694785394299411681575555980644464264601192629289313315913345560761642830933908742965123787677400670792141712529872273698404135014964529590454103325060701813635623828255636643734093824490123609040272763120312511104112366400530962316123031266191927370325948373603863250821666353055861469675636549475424027491139389780362804802321150282331387755512427724358293335875474880378567460423564959805941879411654275984581186900255512142856882826417170243205109233124596030966698316159278916208695031920014252904236634077644853636140884606560439779681829889505566353133075237068485190814543018365499688809518323599250041817348709691849432900942693215292181523834038002309664546654364764399381468613189108634533240077529050228253064748369556112994500403138483786989546484024596424007618488753123169139260156119857005817287681408516322187328104899003536695400396005354284890432383671585545724989884445223692131035335591912868585724571275736877815925883837438268003243285214019326733299643877522847651601632290666810176667391627130145594443607472966542353617815440919921801012949655042901449888991027360170546423987788319270127306896729296200853636721729998810362165353039112231472651680708030824586731856296065128296548159242929199725629385890223660569583853491133269417145382175501385698326614948049155370475031945561348223065628506871480939424291705814990494562127083586521265808620206048005948202426973159955201184653957189696356254923729339734845818515321370062064068914993710438410541170242156509024663058815295721368256798044032149711000229092689546497894571743256821562744988669003122219678415349694135496030214715440258250826869201942342713388099621386471291642985924003099645418437943327369250028450798573841930394158443518030769268272900910549588435793525937999017124972616722946079062670516996182675870968448198350118682942150035880598510292614837712113957099701697071553422432868723023118327487960078828265796179867021035559223193743265185301421464025482805395307398670389279412594672380931296006479924023260788382503698184768156553733065195779086897227297812797748136813982860788922402144607625801604995814647247094305254671246123156852944015620510040750780593431113375050171757997779140420180492589706004694210508237995851214765781871644662638587897040676213576631426513031238602259126805495332820343504854966988275770702776333789052791027092072813969880731646856592356826474237782381765421062550774894628704543490959120110254635319509586388754693407036247987545758962130011429459873480360343033357337939694694779414891366812446841723288868163237977598349094550344322525348416471486042534876078497889903013112427699951499568712081520946412146113127019095531572087803632961825521717674219482737109731534110890180043637636405664712546241622637804803564774864182693697458417519870732350634765484164700910961492023430289450865955412601809180117686673402885483449568336445020970698701954883411280147430398713046543818068906547265523610185102146042913835444172180092886449860929687602576767937717014971352068009394086373359419476812280612971047236787900776000258104248861829669469659124629496567362137034374751968068047431616687448346501874290278461994874521076616843239824979948212213531550314166154237807790279077963361777157941330591198323621616835665542539559700716575178084042028475122779753216601241721066069742441781034884729400586350458905349361742095263242460931409465565642265051845743550236371276596996978209161543297718444481487686984777587922789154365399935147942818673956314571669544783085020840434147588222965057954868680230119557601666510189488057156198796133711430790341664048599341918801241227692533403755911788396627150777576786803011903118192145064245044610355670185733375581636431595682235334951052501599249057089437396212372927916400372609687482849957002409875023937918123264368899123680836514022122037990028589783074315392924782610957511231424530441909464156127710067490516119833890653741472626354106066384222182792315407992526947946149864182026025178040108315669061025189640637953890211843449961990578148607679370066315346654973112145875268418210647389874310849845513212121054641090243949022762083891940013406186820524819994702175969808733112900806951867885631812528622689370048401418304468396789456519820604248623681999889278035616335389378307890755330906453698577739842199527063477363574163998643354152246400985658534995521529022102492085846508310296887881786085999275396706499910994664094962046024005674740492553851212917436290216793519147717942783173140279686357763236831771261637968788491022243362547976559429791688783639150354019918241403748741497735740843876516273492223109580798428669793475038353421928393066697275266240355650544677061246897870625039222594571779270885624855814403245957306575950924083528023137271902727783888140297240405006589458139139887803600474138343494202455373338314542011482372314266119956003829773924703024700988208380437990258934585562175894513495089555748854267970513936007217651037660848969178416844127691326228593808245197997813787106067752116919777573874706740749132843726698565600051021524188758421361943342475435644262040051553355413205737463447584553237058069151636252971838237427229186189243634149792391860766286107977441871587876787062941668788245851990827633315380574977688411082764652783417893797443800749270030840077672133826684857734754750832097280948604864556475504354297926624329516743295655119727321519251087612937814901220300380615353173148362259084070281526467170699433408484962323464179174907382409793383175576802767309669801940023800321514660115334542307660606129630063541764800817344754254440277319396033933382180498954234427699292951726721168021576217488185639114511982860710750948259086951730832469126040622617890569255935069852980987741475041560782386735917734768834898148909570123614117893186640370979449233552575839071163488323886571485091740477723254196938765898285180265804445673080029390106232606728028115680091162873924259523082281354820888002686715957708741508542282832172525517712083612021270971798610574513670893731813733352466061405712742152526205237913556155312416555432277732029772199804004172109979802756429246637311643577920719720900897733543971945196112784685827224055651177033786396378712543577072603927168510445126299618499256992997852057612693601512184501991875537180768181898531997222278310651187048402478891411221712455299803489655523367531854042613688419521303284578158263039194442832373778953281411452642354964321515966563678934848013112765495679665056631070591410978999064445370566774511548417116556389234013013358773015405133581770269442678348516143460762968965095773307318608146765763440081886390167414636775877785080147920222204491670910137051212458629156526836489463473998087578752679599511635386127093794521640658573212229135053177582533765437984965377477613045782266448518551569499217513497374843864291005846340513792415264086013912505745831043058168364465870932686837906371853381518086237487059810195795565456599102265765815637323486959831023010892101465343527531649084034349954801925695465415406628948836853813161006853049379744094250510379383722497377325875098810211840130239912764261886288436744913812420142958038152393772477320032856608964710196588719478555717401240182191744591690224355031377398320799268900488888770585955299633017474915737528145305393185180946530458412052241244595620995742336364255628376159377319866054933585863514475882348615443361137512090946469733757578836811565054988444141226834384529452344656696969889280677322092369042872037444055073016251452547721572300584571802517771833181085811173810294558825336313495035419587090776967407912384948658682466669894069496040886804750929044194647636700777765742965629097916919081361833230120944765269285125088852573172714427456310699745438409146624250154288969049347180271097373180230147452575145165352217520223676859290852204548165468033548157055252589950202361756075430173947512752094579877854879845386413591889060877011759907437691986469398525454439568696516648881433304253278359842722922845827461687602764970867985287599610461296480967343485602775823872077811884685703233724431889869319157947054505480506349581765270716347039502875747061714634781753901135028792640261873050609801501086679412283710855721380115760483377080435507150788238950852741173378198102136370232953360884777403003890511140671944728851154764227165000736297021130925269630488014998712573900972677883304805402565008740074122297612526410116181325653937491962367545807149278338245418642128956597541801345765043378979175712795394236181542247029116478047121347422945143901656053127765199179230532232344580558745390833740126105043310767222405134985872792166900724419431029089919235778370091053205401720874176744921157527497969939463041821176779103241681922354383346546016572145128259468283185287670235763907088968083121962048658825108144779374101373728249096138933672021487686060710179461778212319292993174637210881440599698445217554358676068795334075349352493372840782508121737034586036468119032918919598612575345435404953290212087720943826110792224139984129179045038098671607716670266498436382134244134619718604141020071937943406076182240509409808930859693354496345134522662224518525241004512738085334323387294988292273204395504162645798031648208933985186531989315913905571268912441969313742609461534134958903774266640542523313532462014257221809624717310944847810658460690185491211308241859096545665976830953913632081758327342595981533410470353106563174479450068185758840644917848131106144477104143932444257354701198808479198494148106501276304506829321020469797664511999126574207916314613713529953690422346256092941820927023963567537023805682590153326677006740936879219394878330842104324978204917796447802239506281183436993789802870842034606554679842310570817093942367814008951999322718532218068657455021828139093841893243353421873895444391148032971765052830450681536835829404819604246018550159505434264355491826655988834208100917699230748622490258108135339844298621664200200094361819309450638858360192384356090772559131383295667198486837640623744423456820289224840723511185188448197399168584336196455393743162074804739689260527082717714292117502289302895395947942532962393063260118029352018163649159450180867541809102590680616980444447566468391244362176374975536691054909853255386865185059744441912719749184550984312058451468936915542707304425462159357519590841803457507684605678805638169481285642358507809743556004942847656722801528035202193829429717363989373625451550068858895908373238769377746645008296869083243059766848089666913680693081210364613937997083433112290933747055563177872684137242955247219137659320656771631062350674419553394531611761211332546180745672212891732068422288758592252438789264473626684434674043753700731231092422000514921973075690915115276395241166566875049311883446381854162216371175887057816498754351367662192803691476279055255042558582281794019052239031705304556752120377195433047240211570162463405947568298595037591720727779432029053703213000419384214874985422484329302028824191893847095413304742245580103752780625946985952340367308747756615162992907306203377684404993182120430180184103638327330011575644250314614006616556038177571409200644505223464187314602473048631226604501137900616072454673081561029039629923874829363838331178995151373097704065966771130158831261649719724902967802626461789952878526068656493802684423093113084711476383154167782090614932144923819022420522206292882899822168027940790792758627834620178152627537858152436887799507037873129819624634681191552515477677371900299923984247343823545505829231165395560832850206797880809682582180572679788761732610519271426810511524180850751367181977007594947373968499823771143440448718536310836278759275941477399999768633026780375702428289881468964960172460414596790286357812415228065269888350113742991392255712694464185629695086177409274706164175320535896303530009302809520927996331905032382394564556385305537574728689907661486739336744711704665716194261510699250337257889853117045486615953032506895753033246463553885622118673309482681471854640406085485845549626450425100748923628408513257230479184091448242995594032422461278672962075959829155156231298891524743449550124169098054230394033348287737904706583342524471120280659078223164510197312909395573218979070694747244568015949265179593194055724704423846599417250250970522351974972758482542773341354673574719597693051789035883650161303497271082688175305106141968909011843747710040817018573626873119302513945970760209783473085683249507779310330690960221743935592048475710119590095595802651961301976826458641266963532890244952800031335270540279074849808487927971363815669198592156846078320589913944269543343074015714302366571871652589958067029139143753308695185991112040520667757021028650357634387494618054508484638580542863724850495431139613251922171767162489696548404476031672645028313538783030513878434220069480658923454648100866612223771630384035312385727839222648808069116500180048797958362421845532167130941159616280397777960004785171897676380488251115771383913010949597949457831107418789908430574262156683694824973128110483436799631721543277433968813386513364161069106995835830204292991792386946424502304200438442580510726976442858426669599450892705790390620149634632475430105065324630747596404319411080443543203587546827373541445717199391314807063021105059972009703798611841965518197353046540139644666012229209559316189012217649620701607969264087179260453011698579714363746335417410697235400214812231833830027084564954863865186154984160062027105852997360792152407392283561453667951647716479280208145212522121295870044100661623395114719682829344357129635784183921168361419006116992331813091401706868571767811954534061467898092850888660430227853444206985810937880793360520434387744295988471864446306002976067098458090485867150148643205537866621888573271449421022455647968561094601185423670793629003093375268447535952284949011550738480450170459923511382968012289871033446979740682188569901631756371297712462866912108579911845653094360876706747647799833892751535880261117609481171275787563920549680471251845457794729309329909680132866148906440772745080985169605414120831218201945795345774319222458191086837238462499054745583338761435155372873703188161532681986041412304732798996647259118700173472617173976262813448925549257300841088669953931930302712503798626767879713387605591959834600930561685845489289246940653105627283001034186408783272761506484312756634953996204921956090054813802814835785537140428730113100396166424095046983818339308663184826490864022888711000108854925395908643138389480434069496383096312086736305484021887708856788457148765199934224852145885103515736903904625309210053134566130948648305505194221511413322655511468058957856921071920765561219570331255997324456857923449334624086769263491858654478529511092276328467390374734812323541415797334236094712616904305059451108643226258987575594472386047195110925830426266670506177959389057762403693433681349183874585969433880473008627243026174519819724671794671332631894747270876801584541873758739385026369828628679588835074439890799421249684686427625780585898836302294172925162487599716063845555868953748818059148831226792943353915417300555360319932005148884475732845903185221463122851502126182419686816751273497955597367651041868820605498177802111942979665786040163217845242072230662443988798315096125656276098041544383183736005238409950706813070111781542587486679995911914751796803754416380928239748836360778191484606496179540785102907366728224706869269777877910578403647579545703005960474517930530183111011052508812929392286421159145661970518067172137013226841478701539928904714000661250396364957524109574667291205793343304499302903721618225664344237039225373148298086442414963294770510872438078351954823911429643322494860528447604892972492789203831879184089652477859474977538004030348397436889624789561629967889230923877058727695402037362834084113100166341039181172692265380159269941430151068921654598277959228737501926473359432625475072194546479230819216435054871673047055923800996157827939646620874157615990561101981271093565012938412233868366707129916582571209888414798677907236808428543484017097918150969222727379286712766669105733339550214753643816759257276262192014668710760261301978253857869470894205236760369442584916777238024659571243136462554147246541745557819526520017494784329574148938491095935410375104019946979899534022068286088171007934717585855379691064051361552264293483567203442454151404957296373433300779987559106086789662969406697149419991496057456925795399187772543973780818252525780086930777278156969229095381055496264371964591538654300102320046388229098753624811186194784754277068596674261027761896524934618330016705950272710442081886281720250021730310607697447522969970636872753468139306383138690818403882303741583013523797011098717841629619330412732549289559656477965105238867190897567856291814935872418347112677344152286650263534547049781561125246567531803212188646444642828614561037116831532092515744261356855720147950366407103279756603539371196531957502814952381268754870887801003782397910384416247980025559501552831124153212573400039275017501852548563233161003081417032369918745914830816240141651285842649846938558589916903851475886896181804641449491280474532595283872077833765592108052389474552392275844796504604274115528445639168611093546443328120129298892594767212116168222004460888544869306875250872383583243717127113767101302830766112797954251493124895681411582654837654254401639111842792416921869097194638797563116696750467356686287989951409409314732939596693838584476292442995415578323768619607245583002937000295248043338970996474228143414309787046829041788914736298711795120630213567393260161707869783314676302142371218348193083422584660714204925206491821028423320056237859298605890635349702684682840046726239366503402897576328302390364581439890809484209224652117488512594777491455266866666065571222736758298493353163577033897595300619077701634422167704698471653483351460015228840547742259873020307934919303928765789946681695752721600200784066193228943283396647130043628105950820776265145967353778097967740064938319531626938149403045925219802256115401071936553397680786277919150189822353005404196057536336014570245306700341950426551614470283323140057430010137761817062834353600506572567209493500036135085841936139936055392554346948412320361311295251423761741576912950037540372721321659829757458539345762988244813085162112952868021727919106608283504344711948913986888619600814548090992072440295960342837483360765971921078772288100453919642055451354716246543057720657427454949789429166083634309620057297353345244072743512434570235530413732047170323767421681079759241149065628068307775350160019546212423899701318655574193631881880160705998858557923162932889448908572625254865847736435585486488209912658114197556477604471035683535731097400126780115506013575204399196943268329980954068876159100377364184913266185469517110726577847627049978485676834714511532352914904135280125928044340121534272588413365840250801366805068287120402864597403939026922653975893832155749196046815641823589862488164219127058105796031863886444416666315552965392945413976257203086938775363493442125598632790972350570815036663347424506323305242137294710882798287257402469159673056834828292691604156275930226468407402806437946919641245485979502558053297217415503016321837023779793514045620634053827260209334417062970953747311700837583777995022703903747813946064154183455715950549355250132133450289275387635755131745414123122404755066061718540795960191007368754370035101263026947426055543689384607653519799283913366518067911013419061208833282124091640919396494373562492672319058755039505852711036819276205643601031560322263242209902795953956095638910697713787549188584600373835680931952906369429747153906924244822557523797833517713186767832051891985391131840825021745261303243491472166586199874858621183148200752856979280119991582806778913055175921085122524398138112828487872074475792031698515526340893867588416503072431880612990902870714138802356499799490088750779184271587539833556927331934522524740755762544493479044061204934385671685070954476293577626358523193600681380374346239741834099918409950264954264166297710260645159468322725449138625835038169886383994091631340535611448781769229677666796019808000905275592246920312547447742995690269023055256462987001132516138870165452964114775415320657625756375243302736998472171998663874779525427778292138515099523778578552458520904303738555065353726422063178732619914847684514676018662939798360591388151489161040540144924025545594662906908948248390750548012546807218300938294764016388473040246262257518101166222784210049152326160130270328958558910340475912546305129288027769799140394611425542469123808958198866192007595826087627805693812101452116943700597931938322918597011116672295203857023784024666890381371512265734203986070562628151603129192471132566533225794265119884662332145155649079959256627582449606308586073005247455904627971829708414683062704621079959400569120574662410395702040556343254828122199838109493657736034111470443129088712800551750812126754681953250190922719232955993164796677599226112620633836322143806821864756482331532166882844560136437284610281450962921249905740757113292823562672914953218547752458258581758623990052705698890374326991553617508084129255754271614116767215059376939476619611091426780697926388241123572855900757703807531015052976777252951778982367503645671131296954808539668713695358095348953234977326892600141323969851619559585928802253700939359456314537219424982971725385278026289195135263310847802857130446308651997628295296721512447452900463670471270605095917436779319411680466372733293001327944976826391192771093406302620465322599841754947730284872464467054520704729197230787142236800388845896277934515478269677592794456838266295313415948862674561682751392819263275294263125247116856608097704400541748018495200729107235512248806932620696037704759497941829456931851573449725154483080460851053218639766566663651229383038460194267650748654733726530163500982990767968925133371710877831836145058178643537946254694863417352859814930134301212398165663030724663689604630706178228732162079134695302810099556941362209438884451495127407289536009460595038556174753018547507829444780569651525304490227779905499478661239545493416368854706593540020170213426158196032806207939187088790162794660525274209752400411661115938098104470309512182225638235065978075591719407555987654855504479051770687085694178565519227566014770224515424797931545096870310240018172177479061185898014182533843789639488348409134820110101342672481576570115256568443937942251746760027876965477767211230339101416052649928174949962319275681452457472563664615090749269209073619198604480225626693085820844055817284866664570480932607051425249518722597800630201818415358236802496960479350970697023422553808731569008323952945501816643691447789993686944750883879677778880359465585313480258170917727279724894610109627048621746664606894427226171408882726398289720321702450526926221508179755073644612270006453405092010667611044185720801965732422818956233558483380733352520468268785762054144350393770454035988565519099109365713105357101319331743586685709395087307941125263386043173111596809430557593584234904382019577803272525047464851875728396665615518981458617878734616529609723290689839767958741324494964381761137293784787351710678705688220096828149121204059077184057562531464306746979092366455618476364792497963972003251945466199334435732754618526754160734398839523733245246816381365568061046660599561186379884333222836118034880312226898073262724482180014113939764333969061847692624311084574887814498415950520039677819637741573027465704071001304138357777631226049266168030394154792840171364309772631660818510738319124657272260738551169312332595180727624505886086209735509121078244467134623991827141229757980045071712315463210863346138994688053427201802027580435620158709792728235082220258070380219493685922027178211950951560288633964635430627599815181771828635658055155477064628785492435450546459248622714983089217807554313210104231032527385199203158636985102692920021169683995402846444504655715655055710529145338450841053731001078793128771692825500683745988562644939985085294913578665598440755172810837352047195255983046208368217751993308421626753553668793275497668287648648900125904400123390905161617868063835455041469073531012679147000278417634691648300985363448886090524775453788596615830828710571347401761186778080970118281614599815664655857712391498599778946426880105631628550166664958186309467390990559790289217073317788093037977386966999791699139788363387263694044983637626530093973834535061301009391974065423875470353630342978848424705754319040538208674357634516375613273254284404212699864388877389107677786185155516237965793989328033143333658006042485871651738662523205837661641826394396812519223469598058991604494137247937110331593410984081198142365993388955274854630223213704904912275820789473122249603351143428475607470980476271575834830482393283245169321910785573638352402336260994838889125174880326030604346031312307756062672068028641593618930364324796983400864818979191485386485640920791943760450916659210291426134617260830477214361113009647959190136749758026453605113530426297613703717054409480237448700704605440786468903044672105767555697536703159943227265864023235838949636584789466763715638772991506018606598743249318706875334145099254931490084598545431691766158308750680205853802154165500002817107359503746103683833222368326009357821376928572110433188494651441060779342421101167847229109945521467924615600291821711050668367586372203825867239157159335078035786048391127345318912801392839544916383129584567731012921956876794820748746514112914104801940009644356205459253326896839242905905372785326844287128256482734562936433352415755882604956561361496509515920254202111086726558555624503548443530384135892837683271278870430343204584679485026044520190173010743939002780655342543257124472310214350805026079583828070350027481769692596647229395325098015910039927413758050174878536662629156711237384001603975176616153207929326486786165997319951897957798676342965970122714651929679597649728742844132696158458079156958079243245709732276999521999324823488990140027843597857526381542881030684908062050536614249719653296934463158001052809696763671622387511081743784761329787432243531589626930467263082439179375835085527425693026645646046624054103542015199524412353357255148893671437658211423720323463801760828301104600521946442872837800815973041157859454077407377401278874238254969603120089306747889213541977962376141095810055686198445929108914316735702018254205945696387828675543875984646840290015812183824750561634561433634208739764837559867196826052013368091373912034338314200673363357847404008038213390310766915854702142547607629467874571130732381633466320608300061282240985100008478888141302156859333158457736483670949434497143558092271025320511998728348469651537850200093625929432273826669695232885273185562320031597955727199838296665141779240432849202506125611062954990352947288577074626248429110603282014928240760510876445709642915134301433032644448794089181725053298543427385602512818655536667348045357639146864879992041050861578412088774947498251710054108311322676272411392933980055787883466705334938109023328765473919084787531586480716347523599249200082051387144862760493852201293781047508885643374447935522879049936856128069479365542692560207342835154293941472087496162388051039587287136471965965867638513567477524397506738014034784786724672038833755466893313067683301845917679374751820323023105298689233953554248259185618042511734746147383535056351491280264856370665209739570880812562075914197220635209408048535859974031570311373282737603440049003787648624857287653613796875838385255938355600483757764487416092104118971873905892857161482186678781846968411961471033271785501689398572889611687525543641602812768182746443400451200411679843709311860021116288639770211218560772153980410165282792530743118336574526611237541501483585395545895799164473925861323209092808945995734609134885835529064102144470141221647026613467208501421856255886990207087174853140654372137811196649481176711336926508906116512271451385656495242194306670791947104058870028287712384544298768379690497522216797235486930786537996346351052016265243325214183453988903600017136978782502938258543937105891208929586027537196465598965559604845191184932147844315536910971464622874210003238273942558096289285546137955653323077618015061879977077421351068121644904820530056428000605959925306970824994724327355446682324912904094321306698686758008491575789890398072891015421570102752993559403617533362034608519368294928465325377346959895939281144821704906759788534605989202041810265832560787826036772681710571384268546449654745621555471139015984052980709696973913495803112092598350940098389058437335035031851974494091450388760422641568451344974101187543255431689809690586158584164494450610191021144409812439815630615136706578633243538807158032410770043289371618103399875869569123854067119362592630543772421564991697060657645185157041418064395301878856088286535006885655326132333080879320607532852018647323616473067310079280249693413249125523485950852363419386576151181206255517460315675587015489517373165729600806480491395587997540331787798814352718927740720672380932892024515206924369067238323983360747309220163959213436290699814206607113680122415724074793938134042276724307010419724079830011649933240527668357768637955262717927385273374469256260757661973337235180083691984289042414856179259170782883104424715471312882666384568686097665921640065659730459318397466209293426991893863322504807515384212374712053897365715424974974769992021267115993568128781465316623486842762201096545364758164173251928349701084559726726434953100490195207286268758470728535277247968272710265820376029945978305435998237974065239662895233963019113132937077664098492548057783198028613355393502871191633434345271684956116361517719455633072125868988422148904086349194965011307589561706466015602924090261489191570596903693465113887483378195846846005031315329789151544056405600274453148392810451253437287873019399707101361497472338030577673734191871027337848232910112858625152687796379323003559303774953972490264056802385674388800806479478571577176995374571227653521947953007294992742056776433946366896697687173826176114691399626420600397569340282506000097892309667005806090328062196494770533355018731595114587359442904875279334304574872789040148131005885059162732274023079659258685948233311822809942354344893538633337515194464456790564452837084369584757803971819967921085425707804038390036357013881628257650486375494601220559995548320284759782275497067652497997122551559012468497473973179520681468916363260899110529460906684340923709382322343193522160539902011381046384018423270913490513051983653623401568888211909025648835496270141979349872698354500653834158800107259119695739999092747157148835144235199938406599672717286451781780034828012803571566211318613319426123509644472557503267122080127637431253670971872238238868306526209424131936856015565627265811017977349494004404246793923160437675570923624054211137909538483064930533157989019471877041162253402557106620383911462826488364954314172905505607557497869871036860562784090635666855517001387640815040246241084917832062357685131334447147532386382459001015282300090313353104212544220813181394816118876120913905108545351949370302059224683961541653724583250518595705088720310874698011219672375284378127039982388915740664241595893162921411843915622251660015386373393012042873528171001738261151338678707994603300985305107849528040651810286729055756145595159621869793462668027147111671406282218383725091345264777727992143289023586661021785880531357854430881383391764412753030129766801970651012592006656867080725549639825960255195228399067547158559413873826349809006539753943558656032095834084684548998836998306704056524209889505514635373727213936689353148521902109806858136366784450647915631232127632762489869091831328055215090421442830996334028474546301610236740607659181200051522813090204901292919504569223171279495485112256205004400571394783530169607653606777918631810182358538811521223818822685298895747348492713899019466638712495820208205599608048131685626238016912553542891915547485051252537606147763119969808652816159499467711518133413960653404712467836246673264718845626196632760657042133706286860693669489227319526197646900469226148505268005601514509407541997059603755830038235994888421989758552496452266044348176412187705254275592035961683333422188762646537113892492306064287617713912227171624013465640508555253204358286395679207513882683466947839317417316926193342956132456508051959759355587204268381594585083315939649431809455209869000378636317898396595173364507730850118318797877207599170054649022079146230107896694843682371612486816691155239190831299003558015384653330779888423868648554131026687633110265443464195810126557858456018249730942732414504202426812463760443054180945269908417320854341661302001993973014913917097185445610650254629213397460171071313800163872814042312718776073085025258203557692718962007446023127889702385997949119958277394648706290945887969017115646949409503518212471501053511369235012828277414881110873543362878872978640709194611172688589233016497672795759170636667450529949093733203736885745672565330604348207673892838896140358384853779064296504410159761692229177201083293552629887838901417977190014706070820288623470313722715892466171811160093342600195993775541360188474948000360625026933106720436943734609415404495736502237754608443211617657910356320254205189372635375589063702250274366512590178230518388513163013130373551303883765668006782092721008392328370253713529306671333505090874401702778406777991164781802668960573874701798105256597763790055920092128492354603769422765213541041159252245928194215478351339297691653595715029402922738472286575169949570099613740961182478355095129787316265880241408604846210096448412403449129923557084616595399337465635890051315284535913422881051711842263203502362412771246037816053820177578614946301034897234009267322478367937295434764076241259445645823636655383118935044315149252090078334114609633369462123429141062425631335690620033840817239226010783026351858474289067232074886516087330936695276775103704923764486431313969108243687034329196920169679425919096353412615232738476000575808501285429590139326634184856307403985358298908642081498747311108654684260901008322878271652082556236718180228355842705008295704220286887196722513553691373782414203749977043002348261133863598682631384546593225768584628650704883073809945437032727790075406509559667495470079315663494471712526690542482642061410786635911407850462477031375971116247741869556008776743602127859912428038936756808664164129360490827690167049423164367113364416214014995554390584987575434960923887967193928567423310796339114600684770949976738154626078993277564461786676118828685661716560324832571749796837192046710911185932564755836590573473051294453839637983176405007281395790971906043083358198752261538239646269265910109006970850619960431526380661818443275187597634202983570558156919487200297614008233723654419648824853587239021305199939513560929117592008370331186233384835648732025640107660237142157347047916661551142856845349056470878282209811192576937467877568859702221602677046540722227877124604339101057935473175690907243998209156519778139263039717624334888393478843310603913872244154555432698407904242119916853249389794482235270748812355388577573796676233379717707338722070959520697783702720757880063591269650468775036911482997532154995280138875265137317901906426407654566780280128342616766114425994800817903786174928213387309714911672505138626190171741225567946420773755029972771359240904986184163313675298335822964543793256742379790303790939859872852354916390079954065054040434391327102463206037952397774236730488765522881440961367409503690675818002483753810184955147440097033993053841061600815326468739687250864218620121823078837502338232203473521548934766109382934818495742796830316114000629587169875783008289803963041461880122337171304449595327121505000726301489458231048498352819844637135960429501271191531070756304060092304927274134360405161110855269453540786722978990040381616499536984387406138452184879639467462772918833307914990920582896430107184260412941945478942388175658318402830339059813380664503514493747891708278329837325275167782517110785333887343920999489999422052138028270034437847969984864517258979233981874352282739041828013957334091671620916119926027751313896540468849361347356253914521254970285253170662038636229409291275341212313056027120107333218638167428754071230198283293853974680115925157492052893449118195446308026936776572011408349905825029393498068700694064873283036807460056920881160647383601776810668561112101606254552265333687254192904775269436531686672069059032384069140798080957207126762797651352581990777654516079889132912929749188500786949385836408113772765351426631062306385827510953799681316713029989337462403874712143924787212068624349703404251865613112159155949472025168013249498382508206147178700928139568442633693197319782475398275215913410461322069201915980106735162858135267401043923958076121408799504450905311291066279884359062271108284656550764105183951578118172925808480880232226850029349051504296813037186970503113942752307063550285264838712379122611837027691522286907272661888113042926165928356845384893385666009242967746694531964712432131313097588044183159497329265536839501618480737585021032098049910193971465983224875487142460450262528672490388678044047373623764712862825794686417324843174621711890754387070043353732074733788298417794115352375756651132219573323369035241927038796800959794239892709732595511561679405999265977660782772954950972153556491180589300811974018817895698060774339603744370309320395098704750484702564253285108697791572498909659540699744215625621972563204746397858393109144818011520623400084498413187939954007826517401395078891787593342743319525213681275159953731564721568986274741682010270488371284742237675082248336195400425425346635543546229977620006048595606075128419882249713333536079813764675532040030538978608211766166321952161425792481755315581202505158343491907828462733386097044519630730236128149162431659555556924471988976317141450711319197807219035990178675943648053316540188566239049090595905867368488530680763815995851158517050564531477424574500618622921532857070902549634599390616941854798805156108227772964617666946064090641341406614779706596667448008902590119892978703386531660590455878373808376145944028363054670884632917883974541384438381449316061277773859871718411090284198643954974382780394563955819973225651946444030618907164929042616199664976561040803020473999295293450812175783161202441345484885807480439180977493470322978556842827302825213230951362025010015968435957276504291942023286364522492193677378306393660887304323582269297050360528439309598941079851385652349703709848922086990092957406535416563101321684808490156541112712701629752453233764953313088967629264092643845215167169631991224393252016877421074336179579344147984985443592676039684289120131358498897363091765844194516601994246163085177892729040668986564947417673215935843942637472773956427797892423974869582623456446986971774842022984596989865564602358852122057116555061285979258739839738744584581454790094099805776859996556088570000401956870026877964990794093388967909979427028253415588483166969088625019755388229423530560046123247225522727732734849150509140914945392250049638525999823827840190578252021369815718332843624876883732693133835718951796347273994931858879231052310487135772100614047696941916117707948667323489032181698127303544363946980863550795069390292055204698684737968329572428500799049390360327229823413538109045218384664657093163758683404024247584756361558970120463312968834352834234969396192413667301669622646475404562761940294495786938948014088704007093406721084977997548346646149523953840441991895696286380883338776379286031242741325875964837690599847656079021082456841391555719847275942428152333790935178587290481400881566940545043416185766044834808489774805785782277238968582906423521414637026752216385736806835077960137782877068922989670272426016961844305910671732803624456529511443639392419668588109713737520038590294052656774465744274528249154242683559668070028217791107583401063957204577018343414791677298135531102614891693586156488319261185067718773741105977373993037424899212663764836446540526572105623729342831698095187715424289762127422850910379446506289731592500742366438258989332232334141957723470903733690717172879524874210423771100461676203820589737293150879754752134220625011565460310348356715073643056098622169231786469267929688880337069123315049642746516774788239113540089487532553424220418129552460486749859647441565516824666594927552192082815044049645793208398798776826230791672942897502584010879870550379971735720492188776145276614847152678075604462738899115935482535732697193077636371253358208628224013028034122383878282117793008237209186635025622910477075281974544574969147879760992178271452987934247580898560125743272069750540179186125649709339873104131215100444811232795154082469170067939769491499519652280642353806621063439187153302095422565821279165381283592033550916253531892836869162203515447544219238599482336173128718515242064975169322182035222687000593404060759512976982185081060126979462498751665079177066240668312716805458289456794792630896959137577675573076398391078240219873559042818163511697430513922358067365689948706455640522583338037642832335673609287369385130623171663988690631029003796629123150138452675128414359020189822461009025621499010366856335289562982897533555694128711697151630966845185355717945586512930035074355853803814146709293589728135782220448904956423030418521057414669918213914822674239993762005958742625040099227466168313892643596307389451689148753951817599023285503305663166348981119774985844435538011345493681366336437220657971997035029391611354396927053518252558172110371255753592271827167099042352947078684616572556643468811887797000961783096402624822394453664887272133554964343466149138000275918741110200022407645482602299924581032183882099773683540365177337387277999875080984325815501269864003772093181539341969696709445611688555957467330615977218084804984158286905352759472634287644112996449415932296692828377067205147568699326735210467256875711643314977450053468564684050180500065912782922615892876016772542512700297483922871661359303954744799442758856294869481731691205519371239515943023262141851241035020412678196830354754812080031932343630719697370073681841921009995815614043902228861930138433558129867560481647843878150059684469220358743292526728421228793712721102511436309824987970704207125817795480278184887982457925121081061361005389698029993037430081113360891910034692761512055362413072667039641775949879044299075691063086195138343273992006133402110540495558898276368257707084872838996697357119103768957119073701349615741893387351521712000208554205369712206192635500235321938985576835310664143648546163727146922047997453337686063289815121595550249885953848198441966308200242216084551178654673745678340183950381452245146420877044284044983143712589193102336885792699677764709189612451907182353881874523692759706111228460865269466820309063644014337189347385785914847560753034335667051756248032721859078940142430635103643036273775215824099287078129061641889172835641528646375885951189356468637416105470871642827695719379882884962597202583785911878291402157856210340228010941821367269007075740149558282872627847544649056429026344121440909775728991021617660525798291509619287655928219788002837287658773702252273239671309950085811709377568210062329506128231346672479376408854175091321157402121074521763857519164877557815351407131825514075140116238043747965060421305259263930055408947946657309002895090348599503694380254117312979144262493728872282160178760887693419151871833909752848179855916449211669659802318986825775982830710025939905196449716003304133383191577936409581624133791693997078394945328857445771429835257227377465922901899538441348304745483658600245731045454973217883476023194874115838750361648065884716763861316906201245051580132612222970909358275844758909014650385323901668288067925832145901088177611743385460844518746131720298612941018910149496437723279177321017420185986482340011298017519742412225787250969754835051600212312012574666490119238862998873456859009579632703626954227005001970339729064675171689802734111575721859300226390798085985938738615077837557381232812254844015419229751110930739155532084310707027662258246662017809362392821145860216687237643914324665463629705520780502064191982489320772705898284724339663248301930172547569407880073294053744460390638934335295661837323427625930118986266905974943856346802577739308657163698159409643838795301284641715260235051780211734285173812220621665115746271608205796197833408682218131065852858839352415691619488318584193322955036069993975747711424407712775851999753860510892077378175228597575432551311212959446585050837302342522153970789592302872551901862436685523792818174063481787393959476719595773764052843798691741289434842068412128639897096091357292409639382486540794928981004605194671677325240164108356768168338656787546287765705753531874725489679470766192810200429240913130586264466490972726651155708984289302604555468049243605287566826481662370089227339290418538564940709924566724627158466896595211294839276673448468969977028225440549755805753206760938164565339193651220715161393044546796697116377511705685368693542876157250927496189888000432172294048038238243375451326592959359714566906065448051808770884826004926531001589840031919685768662589075050936918864123270439149090853276199245153197366010873776542953500116105209261013080438044965615060096807578698865014091076949244465368122020191958500398111805175580563610758958378477277248656917948592113605972830540467077196708965968922967324004207133616145991387085813765243887959110657967289026606939656908751024820891035341361368031505550819259111605445534001819446969615529498405085980000979609786449430249459377815680546441947026328476890211247111514992060245495316844816621336201081259217703308155894501867624188472622434248758592213289623891708931558601966270255139589019467042360106634159534844494306737025103479976848642680319789518223935885551020938903886035975208347170774281514414006283371975345779316477941284168214505420974678471804931409383426953521269324210095693570344758881689636949641129623367331647553027023900390756436615741055207124628082692260286467338187201995266142763923120892894898126671891088223818363908917969147709428346298191366435929464170684590534834710732144116805279695253630548246220103796390185173709578730501845125537427581556083858356909577068769685726137972966114175846679071574206254335426326422502385654393976983767465226957749006869666479932514747319997492367702852784260209900911944238908161596445223211215367635725201488123842574522902772341646952972953104948841151425895628686014890749519318567512582942757520832618463155615201746243035337175766631197387875924912582432220322786186434269610599319689977225277320650889055580716690025598108495885038386197685905808643266492982665408871307787189455856355651264058325448298628519183310355410224515294247111188553550090576333470287036844888327557904886971865911660691051875443823659064063389305699469066219332365963870491603701814274662969989243039754946894297204008620979331160201190932340345669216224284322720500763713017719241405793697031788533360642268694490591974090321046573854151377126603668598789849085398211609964500534277065971819812155742716669727806688005888403974928542421745928710495089145847314041403137504578567817648461718493215034390342435778594556945377491334029935619372452381664087605131657586510423060917086240102687499963930769323024920480559547400430598721718411762349175257854355563977883082585024798316496215811322925533013079214641197843887890753583084825454422960547511067817950835818859168858801906805383462879918715676758971672364269694687365053105112472680508171448090789561515264639083234147769865035424034912983683244132756579522302315919251537048172111130501305922726352597901820340996011476332934597427824903343726173876279784992594958758945533099404005211637345289471502401396150842369337592377186571934443446719555724808712502879949170008252943798826843720773730150050443801753065397702100912787352545063365730007368683981002779746674828729717185525063212039529246293437276080717644765294877479369441662500422057365375841629183803990311492706675760895248920878818942982262820773697080344087786927828299547285815688893277350362748179034959611244101501201839705297079037125775556177425038737970059724962506458253341544953260260233648236567624510902018132829094248444537016166147934394244188073071636609306103083447424330286681949050168843596407106930321460980410592537386711367278204933012161263679209977533503812009697153308439057595065567381152013647800127211410686555737251461436716207328455236540050537089386447480369996643106627437507302783317302464765237096115012925823719017695857069849494506266125524725472580565232005668154556257103808081347825430734181648098911099474900912726726277301981209137038824016674577586512092443544974686377226693452086139407320343488274131220447417168500509518378152744633047161258710419722576359109423203124123126489787588528451745938729323692349916337677057316698619849559359614985953144760252019062606304995117342448739824301023408402803872171462752429313289636785054336805950675174933344412052883745298485023419150997699743252135408921073178094120194232283160319757726715649792306757464256587431628996985431244324495315412624916860290937526694388580990685660937863419475590359514770586077931986607584008540669230565221993045817459244752565392874712743010194498891367094836003673673216234932572645687836638429530001304652014857995763756952641450542380415771059330730159253123281417856867125518847357844629362170907911910796680183090456469573941159488063864203085187106456129372203863538372838118014143353848173812299233779144683572868552314815036247895211672015866983418165199949195893368876184464177809311379341160356580756163206491141703037217304563139810712443244329548627282925601795608616268881559999970699864884495590881973136607592144402922708182095275363361590704409379357291368448878168954205422338419348270878331904734271789762046932994288243400613528082708929034189026049832093100910424463720922443619752661600374880325681613489918326511330415159625513984355298697809486723303283239063719112190867946867713638969911457443814223518318731307764629860576676867188796093314913852948730171462762596852536904138349937463090404314509355662741519249694562160160091886441165800009964049872621587021238916605139005772708446025677076090276244980895131983384151657553119163345452377200539692367040193063126947118909106358937390267158359348564823060887194355856812141831334428036084055630488892550341006787512084863598916260675495828121229167961914640311576714880609717763514878335125900157989291528670631417748357089597362838991568221175506768875023065656909062337260574159659291013424048499890579070910116793775168822804851417249616417821627995926493533615517420731348162589752741517083557378071153188227072850949222707258603617741000990254340735038558323384530685207359845112613278370907602072175296509682597703936970720505217554194047586740780732634736864637567030327683137466570103535484244017791074407880533831958681244029135513923029883432660008112974289026198071093482188681181682324472294552064797685834792009239974281585807722446739032902091356409983769554943716897274643765568565040724834295406025034105774352199035226349214494728426541775491404694171805719122384914907095478668755089421408686465929654483920541806930993864198205677109790209342399933989496845001439015595755245958800104152052065436913087941150226183079465459621781179074780973257053297750284735079435465558600005126430631473844015658763694506103122162192897980688491532512631339956989589502508616620080773024617522606616351953668127193329500218132782364752510900785056279990125013644128489282186971757648075290837534835377842269875701761692389535685048741392237680812913127737073073092198870934133709688547529526421295726200608280717413483673658220343079548597161944723437640835137180276934175383394628274160187894160080092496321413452480082037737178899857873356370093902976972142810708034117793881356006456345563010922134208108651686477441280834037203541985388755264587739635964030022307472341438610803170529967833785779105705064905698019592194816946592311224631787646564968681421995420230018709524417974043884863146239750993865777492493201712507193643091541951994602868025854707283989633409823087134434261263152083000597977963091639748293031739795538202797702553729037524264622906387726326625346253229495559909799562943817717192253510416466212980680135553102601602511201348807624406057256312542554952144678570016871483336964934805360989525757652198059784297264062871919347007296385013584162680395910441775211643048335180777257898943797342357535081060648697091334687536319334971078987536747554392564420093287320314364557437719866731845019965468687803275597692539069922529086406752196393058667459547566139839945459754738998566274766879514451422288519806339843473011762266447598003403215909784607149523835535443846000580283090168857790878073313469883717797719771973483884735894069924656325757395652761950952248237985796729874126617481575509664551118625137574818657602412986557266415434725416449696338713275556271404308856123740762225220760432944530972463963362193835388979000393190998480148526055551798480411066992905426311333150811857591566374475016235693654983327392490622851773447554460052707014007925330554681446091285926247944854949158766488335908855899751665045318265131427104101449725299225897835321175579655849661506902934186696667018235797031761234764087396414109335536639166128223460451700854804605522981297081511973171425300419741235911129827504199719823174084919424759770388520144994760121022032696374756648636803105016199112510813920901656784375100017896440091188088548089442630542841985498710751806078892787578076470730006642008066275487318197185006514117041629392613690911508089779580071212437791203201271994220984588169052635141318954429052249771364495425060711272498947383328161838067801189397226683963878355638196324718569216205836884154524260525556720434739720745907404221175281502402914994224763678224288151129584237468445125624201897384661110833282628122348926679079241305809709599362624909421902337766395086356947001948845833768235020088662039223207930178487913969647671998100580152697471834141766388059331312978504717805658942610999924461741549532955276833736121201996803375379925750208841166864305595076512490519569543281057947676319022802090581473651781587967426056838523992808731966797651764169977421777338916083689276987213205568159427904621510143763233121681973671289373981232479401534750501349258379525582901629933174399777643417057299846115490683494613193569255835096548750977389727526861987344974287465095052068509889464613635424761610844234723855385270004652883857188338606079926253889520617311850839368798080088570608763538403754393855985535448401867305736114770096618326143056274210867587784327925156335182519046385271387395332742450022439672063171592072187473616376009426290955714829600467605875080387011927034166717496588145278546013417514566284456364944310411295204898943593230871709883818829137131673572860831127332260913522925804806572842355225755254151895572739173259603340183645784074002969523856488347255078044209220444692532737545963446286638538846823061191137883454307510193435883271320288349672253827645943146622294376097308385183742091992523549677297207603880722476611067933868641879346078242229134870332687349405799797137918513013207182527594157153761975164785491224751214176916073894743007280618776080767514101061555147577176625792790644434561796366719740457171286571828311856405606050341887917134774337983979358831175999502229398078980682604437228052293435442234880089702056235953142360489735075096111054225379168050242602718322003506494764456999303470411097372895942282562220050198811439354399006913892025833978430872424745749852395010993918976830643633837024571967522468331660987511608759113638046400498803911101862792704048358432160717096583810900706388922283990957018636917707924613861331232870512055608488649583085459414022948263952399717846119334182531061777521698170433654454776734556055490643360325090190950972552242207991992562377725549958657931429946943829561548212796528162928758971698429869452655101919436285273148740167609565382750510824577023150260488394768596071212115190746483027359790924353767587124486376942612363353588196776804040004750015915443547861175060138974213563801235626371991401834426631840356608187995655205153527344038740868956079999226292245522308869478914303501119548119085938091712805656002829631368708220662967361599346439236225145445169898080032355765467486245722403605393440512156830436512245675279736968614138134248207205414369494289760718350024625901849943090053433754350123005378768039090768088406633907547307097864203896338739263355872536119107588563862368741698344148331297312575228968733871280845200486143628140944761695926094968653129414778399747391335225013786447862827909227902125351671937530378736276288376696308366757697013632054751376389984628951090669769427182703891281604724682185858494148188849537944296038709308547921990675596002776218631792126618282910812098232584257504835109348552228693071750555766002654675678918119059655891567820999106118919180758737072054196009374257443765337267307609317634169563464995042075913701700448498742904102232982034281341726957075650551124717698100304033077165622965742992627119587220438432578600877871742217809306187625793077126870597713935774219697524430189986732501790634565663419449223580516253766648582900687574078451357143488947743627868422828224066139735443690594318963484929101976037242187894509842717124975499415704919854868567151926614618900144453117821076432888711146548010510266468821431248257695389993581699428791276866205218955875547763344589623086827289696842723982491637867145284688516346741615964597063782885205935578240773488386106719895493927346627814730889646465723034254569247162934523106438443715925245515006662182694733508227984162758863085022687939833363278539872325894386008123204018719153306168441479388669719615616884893750375461713238773090717836194431856418243064840661662478464143823294576707349310419614859091169887946717320707903638262386413357051079032738210027603363150134368587854747104471505610407783380367341254665351536650060089404571125252675831092799558691821556658405457793376888611123769169781803628452468219586032767032790278433461333587754071630073402919219296918054368671459166260460436236606216636714619617157016557348337020689161789051816788892790814709979512787759400243057883257903575730327286833537912814791743189087604546283643516857056968818134100947879855071476658654489158020860817029230840842164251550385775333067662169473566030178332537991306031164402725364098067060358370374250818294543427802324858593921743987670411931556274650733502137665985218307275521875786974207514676773982225254113819969276950079371271758273145944748967973436981590898494337426942182875257273127389938224454499187847511302044992267350196444699543483979513074012668425241237176148682373810374222764214014470557081770715027700477939429774768198072800217413221437629576033495788918322971362826356012223006101190888698168843228806584000974651480141362528744505526769990477618266003124688847466577238332221561245465983374420121931851826437104030865572681418665968129160646305131283502760244396726800740093728007656298318222454491366176675115656086945315959731915614640060907889349382964044990649664625242658362249587274380813311512869821614778949842600565217489105021568398096621154823974143247488212005428024008857426469746597687079318576188268710413020167625741564196688971165005329924741754388503430150401363998656330627690891199237840203914946047344857048108779044107934914247961179488610952652600747521839035097604750404443331164811615369415714783311738854097760648562545279839666217039437427771470371789535864588175542165584252632410555908334088807561577028128109306486618894700123721431547580587288225769572653703833758796220150675330873101317324154496420650085817136957073107931815631232451618868981574201705532024752460694242153336098102791320418689300338018501449858579523687300033343233228019319742409846562921815658143910528701773536573019776581176452582218569702508827267408998672894841343264351263838647907873754143134167540160588245984322737757389157618835488350087277132087502442533185295723057040954301228245744326949578403401736200379478223278411783637481436654804361120478499614193449028383413664392460162223762402995564436730040859574611634707602514955483780989330781791437462691042056756188184904786212463539218220376528050594071822711430129636000967871248027544631840525922606905533995663564119334184378317909558076140670284745595798152920620354854253515244002228081803841116412025149662324620773182387963803068111824547662095544374435145008450795233508995755125219824517472050190042765118451492816701080915758437709535104066045472508256212000521890512346567773167466044632863200796377661651105506341326923037367056164494529790247729963459108161666052480431804034474607074479194120743820604266635643698015313280461763076246988146337766237561344124594419363002766065336275681357602791007975049485392073046701344539486951114883071644480399522828079640099101801172886125029703771459854650139866899184890923128679091085780820028276504230270936315352511230603119873097078885449967506221521736007830487603003007076825392372364525638081862324416050738935516998606033536637444804005427815762887266890166758874485087654037795437283891509179777531556862020711241258196135499805463633637486696607858146791373004658375445559315638577254495515810148630761095975206915782633259902101457784452372892224302331511267960861622109081839263489518041307796503808128023734022566377437259826882769922389523254981325938877805900184465826690187795511097152846340356723545932688049896666544555475403997356719343756376904601855603743607529809163509386013656060751057828152573187377755489590518281690113831161885932103801667644090341650586348669674460825817237782095317216583096937926030151680512904925551535355920434998603462750900377162272777228979435139665553484397588114357462183970938517355357702650060971318550580277099387925914381190669005935893773909547311304066287373855333119781137736494078335055847154738970078956986013590471961356055792080503834418120176165273853348016085650680752749544744971883472084241744163278546465741603000807632740365377408318145687008142073526649391449104666131430526967739813679957107345684717258007798397180210909823248538135758923275777534903313486087855477758944279841935871560353930285354132859153825094668804104571719432837580988127409167124828759770658293046678715726227415671667247944649147549590988532096510249115112981686473684630210960458790675681738737911612048483983802345078512440993798503069519408225404218977714785163041335554006063861673964355618456800292783687118863753966053255606758348854382687513005939374420484696903153507181819241097422835954365882312560825020442783197220889787904179095024272796745770357555818584851876773957210978325695346297857009034677083886286383460746591852479398499390860473356588121929092156407471781709082511842384225805171380313445033921636439457204692057859189447569767399890493951741106121646720843822748516272070707864521971552100092831593387160623952691444696650058220766302545807504269853895177093494048630588250239745596893838118361756082443029074483214262762536937427366989948343375685316706634850511034507949953194454785270696914814360740171761678011050869235039274531597025112664925861309291227577584761982467572320903561636138279995751094204482831517367833266820341943779417274830888004506165086385667174325597181884093184811700222514425101228531944675233351692995083704575823414788151250986499671675955929256240095446187037847807800340578502335608433099667254160455182940384249218410191269571067022119668101692579542751916346429518018073557522065834988308409883093625922595062551016881367240492557163961206389576631735715653384847695068556369181538295432455618283565174660750243942854047512048390355421046950322568556347717902184012848271509407915683962098684117370857968305097904044020685805584508101341868199593956764139204305785385127550962861338581201273151198572001836511191335292283396577885289538949518310144071513677695249523936040964444815330182664271067090223789836356595781434586182604498459602961836782568496905512577322504961625691247370026765077003063384656482532833263989667209076826169840303272679286038154050451583016110053421419247825353227149664413645952433944213623444260258709122392418542183968930293274192650091087664342958027597849099449527619531889715123418419987992224866648934917636292711230495020592395452156631853909319349585222177133539209984382158132314466954321917784237060019172310548886374740781157932525163854427333185920135273499960342240609614055565547758232212653951760711449893721547657450526580823849142663237107270445524861139080649079518632966926408007486162248839688906278733724843089250571911546159424779955368937887318038675910981260435285694686785830587493418900192495164026562688255923626215453735556000095174697290791291730187676236666666640403227509736500114994981224273360893775151058612008877053669810452095051108101705912601258078743165925906853037965043212024925935346962076587249026878009245454429861189735547846526430519348564363229778024315656233935801511342363540614414001005905901987849535807132987128498845450149000186074888903978153957559613178519244432572359355755426786526903682084998627867283811824212115748596454455990369248759991057643990632589253422635781567593280281007138466215972727303110098869939603508255387371604774804898276094095282221037429325552189925079253504013209996976359691859453087579384035971346385199233688173718857457479255283668049135898455809963978165407831291884316835734005592025263675087894841738925226271705231555086654887452086744969434991826201362965040691568710613365686552586223496603996240461637546569480048699433363470601580124515152217171600037483803578001471848991934696440139424894048949124022913905806698569405710724853018249088275918969929904873256216871573247920444242403006453973529948193580922834367466272941608734110045400476608867977412798714494746288304675677640239522640206717236387715538180366527958112447413528899910642198898781954543931380637083026633662503211044335090866259354831984583666596111616791838827833395560315089399791254968122771563961036388130314188591930490796852354022156006595296946520320881889806259712464164394128090007619020248180688636709334832470347297247539551405707565373704822888229549241073374989940623645221163651973976798874889815569416374716653150624767199703990905605671036650631533856629113181099489596340449538315373172175411298308579060207061112486971721947570693255788901438866689957286583818814579730168469240146891032093516978900555352079462242973467181147661526044580375773536034418517376952178163118475139295366544509441177905508857782133295195980656925048126200487081322055500207827534580514696081646814396295874257423082546138705071079549825466384098620781608036533065437550403603463243638785266459410786388648117319891716727059284939169047650625590001932158527349447042940305620271137663724272200581286033534466284215161031775974388019380002878153542485429084933429860705005158120675592607680338964471007046557994804843602859026045427669292154168216049132068387408621571015344688886234835644282763025611306984784941481802244519002235392066119335686466873473666834063435029682546851039811776099334884507043411857633615350567439617442253869622031986165751213461714184320742692939996550306455515186303298205877598112756697677826256268056514824675287098074292188020237975015398932705594258206933273831191094282192372666169724416803187155206511619583707318676309537259458877066285204836487753781439632889172847646050338809118970342783414702792009925195476347990743242913528918869708779578894646660303284498167187805406381538922127849145128559976491727559830612491291091943871114479505048052665903914903155203238697984221278490577910727240840512666209733456474407893078673424947010276827360620397537814717902317656223213652780629490576593123890551278479838877657903085634928387875801443770810976022231505734986774956563268394250375588288127190696963177002426157659011992046668394764917213734650635284627093764958745925734902136424939623321359545391558030084389508723644562091948975319798141110690508393661827753464001354140963906805888202081862834353753897860882574484226846136634578051422314317409291464627505780844677863783731730155305109268929433081319943106056486629363544918413243400970829451273710454732747211786431864788477948160106696809603345046640298168580666244721409885366567358596958471203763080978889535678290586245953028747928249654086977141957271302175669962046905297606716333814115186786539092726297988662663712154402556710867401854340389654535937820684916470649107420016139206184044372392668671082165829260664643082308357130942306846773913226607058918980073610339783683283779319709600410936640313316073480161539400934887608684002222910559735301821400725039427011873417421709039322227307417550570113880679158834699559572824823063619388376043272551912349632630648625832389791602461779679030706250336566731575297888460861222143335198207691309884936508396302989383879457387750180088542874893352593749403721692593741132714224545197756633981629702386573384216866247587416186494187612128197759817106793437672626931726285411881549208347244730143695553471598909227530876068176858511248345251536788877105731818905076050494516966315170972642995418070287928622576449221641968873379296916297689659634553949184976868080724942857546280271124388931813655169745473350484184153523666152436788996503353461223594005056569876057884827447198331717614575519582492012136973901155109929565642925134191574464251402986782654361842473783282081342481066717609143200008350971565366452203891914792220762782659655395361695939096334192473526391695154473821016008325014214953155504272117077529092519307807499716724665423991964575394981044490952607472352013276913453888090679971022032533037088631482408111615272607622006311467917213803921951066916280189462324264830787486464473101636612376862850422685493514776013295255976501027210385973388165534412807864384831250794055172046967182437014154344709504241041970813694024220580532853201358120166801685379242115353655906259439879122046958131179736253507896002702992086947942431597738579394874376731998738226372938335538094905964883785008901671845285161845331351925337827503206872960643099324923805628157880914752487917144589710142875456672142705471281565328142421803051390434928782767957684174626898452229038574408405962139502662788803736157099370513770533760866776662036274676962656238544592752324014159507284425666745270544842930800298108940579688396811070239114664710670767430202376338487618796674383536055014195033643845158904747560650653057061185342897105845770200395918514724114722821106760732149783216266553411329326040536660353909469274619162878605603733462514624321001924714375331519661834002998791696893512783203126141470525075044936821463648204064126063817887669580040185564926357481561690096103628083948652201837116282170689246520290789274137202204976256367744931742203048201650392178984565178588434564489291654509262638218052544403483828104701624687112867344797342578671181220869003006883195435162909449582108849095487694536385125663306328288694624124576452936781911414761428835321710286182433755718561316456575081306497913216089664006563088989506736915864694958145549858191567048068034404888226140581726765071107692900190591538186357502549507757755759637467741928009212544995691645442474077168022081245601045852799200650779773752534682896977519093350754073114232012663238934112435026655493496627933605249890532939127190826723472138489063436325563685236483850440087643208396929373991033338158602793473113683159354014566243232387368909931156516263055951631413531334679657940334080270897317269901948072962757987131115081702481184707824054958176309804349230893023689610540202552145505486149110913522461016461914004551659145794090313500326358467776848876675104519815971544379266368793116697178778291030721012943030410250385253347914758587289969130136495642377627176716440556570079040650544783374079810385094804572141752392050404464580897245520171811531898117554458917444754685864388468222564255483787517306534619936536308431164262768532314939006296865403301601627011894560978862967414951935170302482423690582182776487640589341770853506769483367710657772699006834755739960010027786787288970525691083202862324262981076223094001537385942807407191366667444620023888266414865345734182058535252328821990109959058714301665855327558187166291199614552380353646437485374935030193442409183083290938553540084416586595085933787274966532472046449408410516775632543034852414130846778713371894294977711412016252049522685294616298411269246557132421430063242397265830151037669304756166872389259364624493317568436518677899199519717586980442737502320880168205982248538325842164130617127158685231017538898805583904683116703243838843101112502111407584556579826648612052092267469035247586093685687818221199086002904223243475485349180253491343547625403051271739419332441597200866737474113358935248789875996949203980716017512693313237539015259306772687442727495144849148904938933593294847004141766875970405909612080423179983395471909400326107244550575342718376003469785183879331215459299723770930856377495547294535349821359864195073205074776792551673538441777786341292780632423835783187320167650349006219151261710385590236277365645278725052810076375395758842707543676624351722682468030081064527220721814792284273196263046510948877990509011747455465651629616332664943687926644812654757201953281658976725470221110120442952772079880782775889514499022832239452612922997086456560678863253748685054294639025467579731571456059636050802831580240360791466368654464371241970057115223274967203659095078578421366905053324864604989882436069742847113011188424442633073479214706962372962236519195900817837898424174992754135010090186757834212153192103980554190876058215259137794594899365199914679303297804558648977338286688239098999852418455542005103193510966928948767603083583028784132436066655703346265230921180112454469331905734891163109830203424734115909969824880897262053476038827087084836431958542064399865944154511162362338764995400112109389949902690640834060217859514678174181433775657984665743857633080528502817056345199987848093929082612956452145282551315546993363454703925438047684398893390082886081499986946409211698969746870841145740269823220603375524213767220480215798983742970644161820359578436579009806782221540944676928072987324742490961549306122961716486499368464779030209188800937753277143983940536647182035950038621867506187133189987626375071744015181737042834493738944113761460465116589278116981649037768712026514330445734025059857599599689128085308744605843898853193074219283513190209708815644574513330170618638625461511988206131585900497231329145671234270373031097735888740809185799395086928897207610369270539649726726101308034003864503255937837260726433983296353293914004252811749501992767740986666750667361442542789420685182021104178856126364865305598653768367422086293766540517454941630650965994428159499912286829590976114299367259406491086670713589591018011807985699372169176131818606035883557025002671387083260497620903628032336912202841104384202959162866436495584202118594785151001603750976697032331137083816542359371429287831345094719070564687688585509833782862893798135817210205605891419888935002101730836145385701849191727080194463260096119820909003648937682429381455895580663312270467809821532248305806639495466563581028907206929248376113951465929868310607764008122196206700687183637191913623676641622714163746636525873731262371967578368854066838976978724212453623157141322349991254212606076214705100920172344302916635675578039513046271935946790625280980360137549116201851219868427126078128905744971809611440027575028229259993219410695186558032004217645587993781061663537255484374055740742633277262568794314181566711295022484820906310133014085606646314735203900031405441412854049431723546270886477096049667406289714927930083553125260046165013882737806066349633529655163510085010681425059256734670690339580994418971662908523319626807411476317719800755055600941679721966112159373712877922747107927559871713540957081578098023048698052462588887627887034699548284771397139277865202215486099936030037843133938636032747763295541625205895008429830575855295849030381551210530870827389583585862559927297348442180217800211666144140274935590945588982694727438291000650181336794315181277821550303970632978109321885772191627570958790769533593992905466400735281905831484612944847466097097431177634342944214757645909697186558982178939252022658379449221062203927914184379954797944504250757432672362887066799534562265775198792441942551299185877595706640226116151589361871486739759755901684529917901251554429831377946824565953639562324293843477703125652946127654968017479710938512536656565903963763296366222979384597275841357059760116953977676342133264897698867995130676894232277068443035696247699878749042866047732234982260246741279695139467921584762751513854864024502172658137247642183289326902486861818099410469813454590594787519064898679095341234066366385044797282926399964404992902032163939695017417747017019814241979078747567308534892401478673051810645793115755128082068092657850530294319935738415388447848889636828282057994445714236860099100968966699498030875131997152949583536566027676996118992764863273309561440359210551702787680408900075787242089351913356983313770185745452048824900514277102204513318614683626218708587303288893872624174916189685441799403293563440143056736131249914822105613305146098651868659920681249921260718355259457294325694734231768783506409547681943467593580592236320416883920969347797871363878100946765982256458891289766018334388338637495077142583384080335740654410370211449450919202875216774960600343314610707375007133022044992094849852097658140073659291795038919688145743764436316844091091208397241637985015457325193127780447880082185744447278863560632912916521439929071869006351552672636378366866679558455267873656740269396105253508260288481238910453778887637751941614624686974617279752431692879755182727039658752270232263522362229356295374779574590529222853237758500629084737549125897266954420427362944264466249288753822801818543439788277586679385797385677177510744937835149349258334534233707275211570260250367723971834087464767136966589625757457192023594795435637585136806075133781675921439171522069287499381487144963069488700505197892474263590139525700803061367719717802448513110609264255200155985748934645224104947303080264724485606501674700394041696416704673592126747198313897421290971924198332970777116724909996770030665909661775891394914582479466894862691649227293260343411027024966467528271312016221933230602269473923696878050048286381860932392671212454105737268444617177343762002136055119923067103469119122643130147962626255358209906694057709999584516253456914072515065251821527678948022910479166042973528912665897361144426187309164840787977581363612586097203720969149100879751518693319354171548728109722243725455590700054914215648576892450330745106927461878752608174056515598086259493964583802775778876690825579738526089873427575541992585072244164998721738159843985347520588152489095206516519161586083584363920112745292968277518353311663403378482286899658958084953517380363521263253313931003983553245509575303814005526810231288598862291736620351436633094834338269869276270234853196282186356400195234690404901481642808364424025732525686834798998659997256729653323825172733920359692680771533857211111025270565082857426602069947097723513536811807949985576919532870782173669322248617888739393755326100400998805117497266831288794531983346148726815798158859965325943368855639315801710178768862581984301065770497329578012584328240299669853754859997281323697901744236288939470881360137475513445765551248140317305706549132956685411934069930297817905407116211212784529474170461945438892615635769092260550975772542854121097818732450906252774751475620670629124849187155092830303051442817752064904343358112827547056527312420337202983275202616929395560501805770283329836052859145681162881099494445087684021263303374061773287465238758490762062664900101597028531985377439217415175786117415743640101425146178951300730054064452875145745476771469080306827390846719268765386833600303410608267924194916012810430129522472921681239076883679876668541436635326496189224140873025452895274667363802731962444412889162879501351791330213553262555130690413069432519532749775501415309090798443817929497174260276790726555619845790473149760864098906264786593556811837149795520771920763044204294476502619928634165286820358231036238022737193794173225970932419448862517754211242809650407066906387472274938144013896904244308147116812501997516769477947676407931614940503071288431397882574507925853848775414109886257397365601493958243264163776489605410787619647218432095633070180841620959494779856959253314876309847796517885815721174856251856045300111283352599170445285714650004343977500005687621941665869131654691878110911124083709142701914678527107299950503713500533664131548529909984315064525079420033071326831124500249749492866086940871075790005311684954093057693905559281826318680860518024242961315398865800560115651970250009503222689142048847085401629781550952407231095106309036547916817257803237872340623112310185256697789919884797986750513508196477546350568318786328396591710062987418134804454661071655464996520192509850637036404665294103978661389287368005496613624936723880965156943106376983046235239768381885332517452362098993942134188802133254546387683220345071807325992945026990443540015573508579585823332856289524955049045859172980466053149119343822379678057304613285711889594664556664999178901465158104304473757097803014823245051684804186589691689010571022713107516432108889851142746835135119616140639414975292453677552096241809563300360842426839988109487979648735387577428408187486567028984156959219937463181207250300693048014580137108479992829030486581523605746925276962098171669325104427123451356598691798283530298969838093502576691983672673333635412402815347242182345506652561829226248931059268938934080503357534032804458751568112880272805187557769001950554286541227146877678873343817991603837388977040638340972506281829397236297634125013997247664119321129183579985917794913904567989410475836546223446508784891399503696807870799795460217585802808003948498176620338585109612747570774987961199804817382245418044925954695234243656543875951661952550877787970468003213136111830364390136227811246769122995455918788450466734344934812776250218693332455100733735665016275982716693593821605384192671556880653231215947196039381025589682946284722624734414464165384232802457333708383404579760669219050391732936896089817948968566117516774539221643618874015187080049520203073220350332004534906974723767085197796729781763828320087330764646605481009351905586047261091534052259987076753282054148019430865987184478578206181996284303709721324876783320910283099322413337515620320709498890135791534903543059435673299972538993162335470794620874740536507002732858225745189746179320521522386761182555159015639363681198883415404385400937171965032428449074732111859981977697434854002887679148374646676070277347931703369076385211182486284475221476981438343313918595646779732593056233538694059741353117058082378291048726782264504041944364747148175153432437485732749322214543884347418845915167102736511931139122701788169788809566997638184792282390442073228444261880010111712012207235831403219798013245193229275591336737958887409353208401137908206696568443206757107358470436447106605089150647069992639141449847997646010771359320800160017991926162904372280800403111638655371255480518796189450722054293764411833534092067894049575782288655429677680477773906063655530837872834353576505242726798640428815434869484280159744867662505159849822172750375285930197582983887718143746544191067336615523081001752958670517102638714763357239934040304498187721061050865474229659224412783421307615538543862674145147573377409207265367594629804362987486620487062565525894789120734830463240778961450712101503113101727307197226654610877051825145276477334417877878619912530579291745622018996427326164855679234548807311071775151020598044663512681931825480311634724345195237609429105257236646679199884530443275265928332057616787130863241267214188770459214653432488531370414854589080326731206095604346403463006602411615515878250317782318517623303130002376627438738805328335896538600713149064113739254664734362463828715020255495338797585232193147571664880580090939525021283317602674046137377836341440453198611179311115469683302338387963177015319166621712117035297350512344325765497786692826694086323423962438253680822113571939782287409003334173615738361123695613915910279937076408710263305261497238810036603214571517961411338385022560921519127412900362985459581644885575658947119912287573033693328536334991425483479771849253242807780531056042201029421988373857198486761324491547588139385626816770967929365052301074071709016387624416903454202484537999158234922641329725837045114041599115713309799655999493981012191075639657720462125430014891714451715917321106027136368169759517393314923520807819206171124396137500094723183364385737129050032970529544181823959240000559138184348605292119410291783582301971326299436010447399856037796647488170101975527347763909683081888017960127486296292445568464111208442090607752983601868227937110432354326121047248409453143904200179482799967752851204440328488985887994594091271049895037882902064922548908964847922239692392095473097407721289033996028499654000054284130577535411766874315046916531462995168026973241307906810148301034493265672074348826421909020364727378551763885671400165987481569042318675253640402472750155105324934819829472793095565943425625401903146436334998263443884639367311447217783152199101270054408080973114855257140354408035130712701226151611174249444397348645053924283605649873249563044428811757253141493221103308231633502616381839507647991936662222427197292797473861787872342523980539499288888463769869033272759682933993124551638756042655511642506319117401742560373387903462206924840224006701386803664528974463358925107931510164070384068286970985537058951149203123782209582731953863322635219454715054965353855150926911412562550683100611483815691185947768429847706636937056489191344055223504247349093771508941579276582089922103057557169924943838977535478952229340816773822068127648939432145739595652239437337790221066337359957820764000105425103636005407723372141610721569526390856919199996187811437835498027144876633368421132588773452043964593827371972587763133670828932417378768124993914114108945424535969466949739191873027992432022654377832909449010899781788326753552430943507912422446512082462971292312673475067627358210524505305133425380709031515122959658234671372764403971345694011655538928308471986420482488954229514309555217888170422619934723151061079133307227763528911212332537188141977810477815287416567256408896199318743680201752340122517914689047347258130977054772924251418315707643957899805051105885415141448356049553833763920322988876709737333504770354582242951972632459719260118700932808084185070848449306578310819756291242942388798938646285713169089964144126620580640331741767301189782757123787108841122664498339162047059641649524311303742317078327678516802539671701765555332723674873654853501534620426075845328260892621003603673254812026229855998848153849925062376897709254100693341953255580541291249132585423523005687090291371189575548864565117455676847835281305656270312034453618550922402479661312114377253047923877173290262041346811682909451252637531082290986120612159874858736111303600120523466909681183532100173415729218960060132203237115999354055964919143727522391629937131092152127989810491094767376007264512569164744997295276315826665428997895749840365237997494850024999867354578931355293349840319632695140684415088595724766266577481122328166162311762146633277501142120411359757239805368114717312447180737953523425036764412982659314993457315524708732380417100371607896559489605496724364210305681931924676981881867243848968168156211830795824012969635563646562091880474398569990809599486315130412910776124298439019704689162604316156352176521013964068216456688661300034582783706012443314383866851360737534178991071123792790012452253260469498915698542748092852952598706721724809099691184930027625205567744312469767423561252891338641992891772734014875176450986474554660321753838860625654072762322210390385997123344733207764811167133349125420285809112438207450640094630467883875933953718019475408219808182586563030183349058612390200047187971464138812967232547820090906358984580331227886596678939815407386532466645455051997603172735555156900932107620244404558757439980940069613245512488459072549936661155903870144321119523669357311464336724768349636253798814323476660893649389151780497650848567372967022387352302553503891375377052123695801770754195107136589852113663801059645488934377676633325219749533131816737606534739957533282154023123141323605288105954172591850378005146230871308235489422445698049370225738686657045250200440422549796667958850851929640977464927284178779254800942921793118862005522723452850260412454785334309701787453866457464851611839790745335491794394657314572088524017172337787978244234919549067691032350496642206488575888050335344028710955906034840609087210190960849901841096128123833662308906818652530797606162465242108716274382313432226405725418679335074380016143118913262734971965414198186720919208735064485691710787555681682152733779598828360528223765778520700804341563385902384000220251683905974084407742803946446549238919096241021018808888975955312391853900349781275863978307814808360659036742881100800737085455262569865999449128441792610036525140326036039957188143210439342773845096606189989481186001638371403866943014569525378056266946386886790644133017222870608363776545360573429935401347888337731246537131593255573026975242576623725271308784058472368202739133386169741444259142135180704368714377213422967188370115947847287590720806712427909254779599063500700349595046986498313036289334423686092230789824359234075441143097917852560342024015632184492596003058500846908109604547634448631358462649360439207717477380770685023261525874328277545121131028726279758095557632637507601448584793637391511585402144198105644563773155648853255716972083257407706376909021364497564746176675674955287252811759104639116829954818776154224736689553637314539542278143737832009776487824038227898605574875645382840002761711614907959477516039061434167775783221396358790838228500144285787880340409728143164390477845511623686481937843467810748339534148494469193827007479023866064577080363541459405252150793055864604021004124156646032184211553430629253807985291434847410908789926733424139470851522115526092606640027478402118512698572561247728609692181787276525309740723205657354288126477801602060409488692835252604884330893488245997398378868444761183279589560149978434967845681553882602285807248502961358276707004765983692150188374199768724278612369901446601047735498732336734034393357977756710210998553719691848426561731194705133520722258468058603091899407734157388756707894959443196699119901685408266187622826748702322977207119681475562242549153542601381624452756576416541938901750195591361457470658887054340686365768399790016273119753087692851221254574644943322020412430347702893380338328981348949175408974968372704122644949986194112144311601162135931027391299042660679391372798006357462365929075595433819938426948065551150195166330593698759683219824689809651400350569275801808705740093333656926677284449410049928512328607839410393065714312430118942003815730430409687241373126181143351911323347390134816227409358110168475287321922720704140482334987153378740401073664670569901147906207211642250510757540804321997946526066752497105275142893957005701079200029808264533840668461304886695833498566609256404733701681749346261902350008548912259046445506619073374181463608300030217250713859476114408708733987019762398202340936271408384964253522572030696256723452238143597434865369282101778590441873503241152964872183722687798523085977489439139651563368523215877280764476866214142522196640086756149571211341717471443643863436714404443767436323103870065943779902676620087695402312225614714615594509496883148224123604728780185040614038673412178144131342326218999082406448366540821355488110850657988198493721819355698620644380435521358858794699456455404341341040121478722509864745117880312842281345352874524342373593102791533625043606484113082272482436208654991021820349561849465479356799784268351120493046036670947566649657840909271074598327464199431737811276780135811888814762811835774009833776265016005447465291640017114939269720540677705921416514422547707155069013309824427467524696164213987310587690411334526688661936222309082167789652673909618760187844955858686192346564913578829191247299747395561028345738226987485736526733969427458388792073991478488988504190488554648715660618309767772381508880143365290261620348759503246274886748471602048664596019731664256830701609165296844785130819454493207542507854528366254699644037245813437415739133707119533271526492943083877023369437513012034420988501290646719505419461227120526190687315470716422160223909428988773881090773862406128675591867110962270599025960849367152062980102843394406944172651130808825799390041198565803394479401270214705265275761858651961422439155311225592876020905877447827547201764117229545077754703289665071519754927115161718513829136945734836849882622333812052629426788964848844733526521030363247093551937806629200773125499741478734851132371630489313325278425130001940738019883706568279628404272488103921887220429382143401007221497880254761841230405505313343195977447162514346082240646838666126676467983591542552062210097005525937097208857628065370426254040932141662260609949127209831088522793396727481510867801879208177431654191800115878989861801041933448750075030681170500743670052419734475653503185828111885057527233340582398339268335408996562460693259634689519737039184366952358785998933289527669876425755671176813176016761898277690286129807447132926350838956297850324475379754384047057266944752100371211440923036642437898214382077608300158842395882086424596139657707014155869040956002037203807524725130900437802366408274351049447701822167937701845430224764146283027689225134043538702166495535180540082335803639195629095711681938905704573616201678898578324482923452864401637523292835779360328876763025996693959785113917574273570847349737288643284357265966264434566098117478242992370841169818397303192895862557356517013299489554783814419679536688543690343192122348599101619317789592284651858799698223831786083990053963731336585546944312926108427276496470639407411830219998439500407300839108318252260401364331533119592286711391211152806274524143993019140164995265660486422341443022678195293234671026100355673436648303429560384901542260730070326622512061753984186387318046047285623663027231279348581997856508076626554163189967081312187185421449970997800973707720215593951006620551823307560460408659919690061791180875662986011904775580225185553594285564485231214550340922364934010966766633631155284149381278344786832753867269249895892701439598401974762648905472373637596712396205800343590777375532537296195846396452583439713642836460732563055859682401595468347792498150973644061067010427745288698388807134675238374521055691339583354181029406534262224755066429827544407615721531177484604873768970047347482221804889134781361301144450121634541298638867887687752177220786667848900414479959177178606828048058127460799018123963484985019413938002674208299729021521120894061363166914023276449653367515456235164038923373762132896583736885999252516873256372305307184534133893672927572493678752775810297002394424223823828935203632413475037235977816316248186002386014304311635813342340255957657844050508097326284016055225793506428547287673517073218357365855569973784142446005582307831919350320914855113450205292644428023678090026657448881102260875016777434346333050630563658040296576116912082801072272228696142967751611424382114539724862408999398800647667263412090097525962142008532866486661947096419946549213544249670046740190347593190309238783754885415305603181195999310301509173642322886256315591511742843884448097515658288197167791084137726869862621218131595829659625744554140098268778488415480033560164624201295346660229962860200817151506712804355551131508453865263660336798309962779150071539771821232224871131750566150267449436476726065340400328886631528012470074053060872974936142256049615467171384097590812951228723769571608999520333410698062037478036720438498269809288546161923526193474791117484206883656701143139520033368097384410298342454106597758822921081157049738789322078238350380170174924924784272061704454336899026588358011825946161449582852703802184845791964386489443043619371326599408527261874292487136947088526874190327022327963001391497400381786537428582159262017360535431607367650570474887706074318357788449428998393615903420730056509538312561957864826216633556255290536916583226316747228925437526672667325810062416255527004189362586158593464409109377635179174093754895466296488604494609117795497736264486912461962324617426120269005274801968697140312170370232165068006550384681036572776415957155421730251233401876104567464503501893069492647300556795083066921097586246673396394183397672001272750478519555590316855273380015249848699671715401080771444171149868638720343150357191818634681505723749129934681208634621100530716675390541966071148698458917821083489887635577936301121563075901731803354160988794996332022339423623508632653725707000990959307381265713394146791314244564527936313970341778406168708299485114119242833084638615926459456287402968825534707247516196147003610485457967295574776128697313937759090917465506040309090394939933706121055937718718905391072007802591293161788608650229425140329373878465940255323199183540852511767136739691705033119245456615249574800829918825422269145103274377972226078643832587570631499406226539662246688835462296509650522316154897374808511932009012293553270741799957273806433963955889344307990963218603191692481048766343782344251109969365826817070411267062645645846392713675594766411556928242530326250503145731540873085742052794262387521375963762973882699746174063648707506991575886516369592638648754113425415899065802034640219318058625946369254206478855359699205057395418004080778959193037699655018419284062683127601805488909091920613775161155604827517149624108394482702940585344677583178216419224046051210847233867494654907341019714881313386977107923565720655748245111399976121569828371972412972545038649650357541031020538855765073110167315860933886094602090265001708056493331314186632695376772053877465874393346017016114014149840279074741312991650695730612060431940953814647904108222219051485917870484694743806972495613840871260534094103252398232230073942832223392573298588740224829135476569333257242428845577403209510559735720421501053473299634758508405326815830787753867325916349288263361185556412177315982256109884423547331154950486136820030659222309792786439658008245860433371947403971013391814534334899153178584743171650359714718621200153692216111961399473499855123109781950098753283302165166348521072443385144783629791367772459662587479831537324485199727855099337296026878829968391485322325898973244140873586005178824550015597301786673246755969468812373218862488356341554897927709787962555612420505015851899614267984403339710617472715225014016032387738041839878103756032745490917269294650355235026159805795904260472727928545210773996346349704786252287568235446397326317195695567816219693112510597628722111261819647169325449200218546681947081266310988894560756791714457921462953463656020757089937982021645619714033993982648509165853931716389561322955617482370450000899263362212006590399173020303830435695682723341619733321324272263547332050701448056235658649343233181100876781629342200036982312626958302861281174388169168768692445354904376620398190955799743625152240997466475602852255829620283922908382061549877705621614879032745408207749271131673612931654204881457977620642486262113630906073614086967866541187585517058478538146267711446551930844077503956096993089131771361224161652701927988338670662602889945468128676047563376673568867846537695857502429489651462285031135615973655559418318918681356133526500906368805310896016167387598227471672973947711147894065344500733772020576117684006074773631991512893202506791534109983849609824902646546945872514131686495266317093648736731492078666476098865419314564962002271091763783888567901908325797799441812781994898366503483607215601590363774380843279008840560596053753476419486098516531639706390714385479076082662824701173502754206476182132093432430812770899153843031688505334710942180190961216113809050702885430576718072036653209286833920595835870387715869568392459949377999921084206956894253051556675765231362363442242287301719479962741796815682251552965350728597811276293050902670942669015355051332258772001071572131459895497453080044403347394238857980100716565769308434042665678588905401526974237747831886277860977469259889187939020068481816137375989753100780315274786818421835625589651217850000109788354425905346005079469997282640441903723559518665856185267704517861122390749346286610671752691172410114801731779560505970125981438658279853004344143215481931909665328977283645914245771493253968898228870932131137190925336938900810465598566495886897778761531426479352958861647271651538480411800573318804224352262810470618569105567357780326137795795703699448891484937060029763081152095610202463741148134053054949079025969791697901718022859681774752398224649558656277762115762981662240067852336218254622488421289586093949825963732046255797562909738497420235314773725168959850005763507505801340953284484211440224696439123263213088762365695898698006662735768115205088077116468818473713787083709501527275901316560081106604763754429953014592590956259725797927792516885468300455349943237591574280641091880753355361801178091492522428436315072675230927879081574395518746077249747071588088846672233968439414452525527959990044140355011672989331698269569215569858549432742687712550626511229335360076994058125921873018293491996005251904459811939374610750789497875223275696612470692587070041176048778996570200750174680069454179364759937725576302808242248270499730778269877275145540463116522163743175458314797700864347517740879837563942878795896778537387133518530410490991330836199004184792881173667947204025026671070471306315973500336329383108975428829567872039187829321203873245991074959887600639920622547564867642701878216230236627590891853435647877464841752784980625667560754131944813071494787266548043027175670251173229956364360119839171289880748917292187623528659167039873660962291216413249351964265052217175714638984993622904048528855243460102248164429103886933499657710693790644007389671098242115781888750169944820044068853955398551441633114665025450594057691136142795406289563503519117544399893707330620491495470618164773165773020558986104535121761161045486127230730736987188433437376407121820122723542838327526155143569395627497059940700011546094775183299346630790680982497908235080867835801908401230736399883322508073835120210726643636090861848595501284636281987015491364251190408382612367360755486652609550732589888875754403895233383293538376541286349847360549559961030964835151405883794742459275879677621451940170199615102986566508494675275795389429961194445938447777869033572390887803403044044163141223897803212794243584789769082213760593584600421593808104678567062946462657976732457914340684156538729646050571781824749043172420853238380932581502730893998861605309928576939674135177392365708062495168307123403054859679677022517151052900539984675420226393841046340103022166856716333407863514357725161455817480649382526787755856067832784120980484267172193914890577457797162026350347734937866446459941554744769310559788752061844860962127410151642667085521377390751132000785884710662877720195985693466775884641894684246670724251058968442843994557197323052061955539696999833314272018617855168895241141944195570191293741973591947439294963665120333497787480116129003761373720939642275685382900495721458056937689523150558674051000842844679160656968944379123324697818437879226439320447400819522114183758444276305727308738393553328365146309049502774277417816649558023023774625841272272590060217684279673816238839128615564464792497564249370546517973355788348481243179787141481310401008392349757047866854054283777552481753544369363904186607898173633356239914406456453731983876306920989137520967750207279465175789955633595051481187358408558419189419792404999990485720676268321465411973541410565523774913878369628614904787826968202653468437323709422592238112699546232345384549028777656819440618117364849051392668595190655184155082040749534513476565195504588543388469617051929508005860832466710461952735717669503012294635438775970548076413957162230354982049859304149102482929955090013556946477234672913268550824171019071332696130035897674826280143764694905921391195411155016320128678246779579117900103967871599362054552149975800927642678545262555924925616785253994662236856789157153909092242740068162796936219499769392921195323628417150644458821969474343693944553428326062385241334673512333318420771375470180606009375639452393098781094645319695111959006200005356110454442422549248231970300459751467175681666509097300434955270229619602549638314219165415742079296957443732981681856274771548069789207337086108801844560600432376489496716933707753965142725914547548120299634116661502301938035815512664877502664079490270954592425099232558791751594683075825562789975158204897515432292686965177000311428118374908738054297886216059934779255757127227249226047060377479121545893851123458697837969696995761960963139940625114069681122799145769964782849855223447031635177409672463628193009219595153729020148376182621437603466282151972679983958442430127295895940696461117756644226964934918009750952177283945386179075863653886122731515178502349320314007381437544827028225975885352225550412605019735525626045890069112199038020037272030762038327722663531643249551837540987393365027546096144898742938850142102362398376114551685759633337737126170217463906522733881673557808951083603234830267430620677226051864169721754319967587146244065630981020333586547736012718709201724650677745804066423495748881871420223826114746918067311307851238298601512301410651020827526880265981141722161761457867958815501067805413469443152010076465501050603347584915920916736536544365393597384820022770939092829106809717798923264461329140174799190715025597695529714947708424770200548818370048173989774591090819130891147378524144001482106236280371957997598115772048851520720087997611530112321249720857552561340108411750129466481593175328188648895836892379038488174163515478272475261759541543339367742016615389476907890418593000751542424566677477416445648407760256609581061946708942976000058247795250943949734566183851800731089243347059090062550784429810447149761021765785418207947651522570994130002741539389867701212291787756884903836769484752190969222778563713419101994692799597471980716625467716764236242875748042747375071866221113316661286479242474139399960182715980726664019092240346121840296377384588534635497948685251527299022332901354942150967891714382175687202575835949385494015779564845613869493071587019924157920729086637359286652186101756578704519914285668201765955864573535672300952785217039555013572266950179157570128055799284789932646480566188079085009005306038025151469240065518291018320203800188243536336516044435398356868485473765800788080876019545523188325103684433022366918583572909225098739473469987850069775720655282874503125538699765576953375841735187510857522166260814572934625239983204861169891414987060900733394061203144874153937254338476444328561437713586788913213696915649328362278206214616646361121839514566051397164088380646748257147832147166050079415862483478271258440799467002070317022478526285465180059760096307809696249120881683844760929839031103536472296212420913558458519305440270082972974225313723465768499180081935026438079899303982147656424142340755964933446781566503793350816239222912568378591131172231228626319056728790539030491519115471265703122310188171173008428062325953068358793011661946337949289881424168979288821931094199483561716023962964894020959494850307488958028753753834491828829713828235600484705541981814778938003511804234248941423355741625508406078336943887581751038215199723144723344643120659125767266031055059286257199119415096493652655314732803666983465290842460123450647430789301658110271955820876107119513281114392511655063679806471763187591918875739422707728539274708102225270067329617243639831377882601824254499453776708971886162367754891384766413853562029245417488440817034438001636117886433308065810636071539361255513406269512969680580834850538299453476249110243036341047953885768700758587173476228049092146671117288023931656636748823975681477770025295028289256110492266782147222454689046225824389723971805858055163108199848859214257136585039628696703348480825383057388225320091001124902643118188138919556042505209541660191409132174087614880253069045146481006789101598013547393538280301927347734976416685688968399050976166537935736373537337398173546696043186011788233481748241215531277478900937775445376058963788528011576669050310860546253702330661991097246857314594879814723948071402448238964923979330563489422825210040653943238158616848519286283189643350151041599740880722100445857788292139803773545759234708579066236617579905926921654422289663794778624103210603061902018134312842385388935560099083052749114646112863316493580168228152751725687693214761799688053196449912070264276065570257202165575382916602198689830458353566455242974659504199634363078999001082621245837656492055379840833306874470223326253547675645998597718549218471458799234756614934733786403547048166417918359193044025863791419473321923704162968750869971086111480942599664436383832876905949244280565569567489023581030704153464732855512177395889652960610373348636880853616650169232596582857171759553872862049351346274299138586059496584137844743175184071535867272082377060048909045066863307246487127870417386983418447349784437932090621685597737613566946760833478857747015641590682295659128097386539741459917280462087264966800021048626629313680412924552075416147825485129500030529916455682683932909035565258107687758579982678708331542754446906810067688894338256104780568570397280747442508292249053863451782834994851645072229589208656416619855244262353175991763927450974091793499379057021151309504089135454534538429375508753828734341822891023260456571140471083012545088668951929240985638588747585270752983308182323743725234988944721473061387969737942740499465363612916477720493224616000084837405144747035172103447344034822020091864031221572744295805787312362526894681583358814459933164512064368198445118116347236572761634937522771711248364174278967838219087425992813032563898760579655497091175447382309914419434159799696063200043156537949668222914682981322056034201943056345993789149756527208159603319296806125053176208098660733386160709845639068208054816103742200792432007081346420467489568711701222572083497554023968170663308313169311518201090419531016388848527986670208991318457711115959046367217729868862886881237670032378060876087325874054874753440274921176902182270876142260312003842657840195280455863471766022116796347662446518297551987472622140104436208196573716136098979366951027999718827328105722209323213751908001542723073474853073742347785730184114655680504110151039350048122993405615035113730848685959341860958034486853489786313766915824820689575988776278196692238075208314581571810551259297329934096052282352594523613094067422536772687172092242512960582084621192363765254594582607050708689989602193877919426872779913144854743446536145892898072405658090100982229919022353971685127436046530700042768002675851039144139529497733545552206994065803783388332166298069790462349691244472956277256671496493947769280900745020291734313495394415549393123427519708948001078484389744421405858073614999874772436744748148127572427828884211960321701173141107667419911498425769211147375411357756623213413002254264129431659827130947015756679610331375333046153883771224218821225201587380844633557077975350439904193910049398245230770665037088377969913061584910776053099187636492410154822320875130434083188478734798390816081428847217688064996239139500918213937938946058500193157400789346954070438047625414948698896678190630861023898964368896319217431100199310072967047524051530081907982455069295833582836520274957309648602706154170108231427965117838589887400487627853804961516763810368158092656151662860458635163415632267314652525838964268422059802376666194648809531975653294595627186948110653378905932507876944474454101506738800413287811226613030089083470837738625505697991590772201747067646019333648601870232344916513819804601060351765305776506703912929818893175831649182556420974176717810202650060227478567004239734742378804165115820885149294340158106693747281715833414530528156951409110036256603709461223182185791417879044727596908633098250728506729179982955663911892784233159642721931676914409346317207641099332705092131025480879646040368602219322632150822501000005559057178565219859396693619334816657040627905126045220605948172544391286851327562192518248425309094725139986537807221850004087052375164923440883630545013489888471890157743520498699769332838062926018946331943837337768280324631018037691573624161421694459722656757094420855488143656370070364663608700910511854653741697734194261585003720035920537078930933982607047989610781714929827779964995466884273976991440449869912809456859642706478436695525063880672296339604824224741506888791904484022963133702279109456695787356753393113416340639482021996655175344852123587828299073349578760580497309839205615736759845388956260136882041195319469425432675696510568558997948472831886476246187988150124872114219622198000210451668847281490020581901508421610650716844953477249950181601727466645748825935197703625111180320108714500158977833455261368181012770082423555120827214112558198276591685524255117944797672555343023629846899942459566867499819645027307030227466544392208690773895661340978267718231399135692014385950365749915062741496052178081082681745098854667306105671803090757672134938810607011371883178624183858037351667760433637746333082280136042476563980620331554510027236610404063721427076015816539772733015469607728046889339441686349590334690552798175790298691040065486870575937232285833741890360103605481959097427755214485489342474262637697689362256280331666061149814287807129800114621823372045349870605390845271296616142644030088233562872314180168058327629524488104978632550846124569155967890913287921953319389659910996832846552850667340721478573222711372713020660523084598513763673760802596781644436347707465028897414234196051108151266889449708738243831943447918417751953168261053321177354300476409456722637914690631947271943036558438753978323923749913208658476444182550443119706860672210202985222382601863465722647863808776685696138863166619293552527783052584537561035949494281707246369794499242176766818983737401863994268886106912415846779511226398142456938390308546840716431459725122154117913269900626411104679566187299119774981563723859441942229770802328502788868822512971323732264017819736508237210153630983863397656844355394128051972206724684481289225276277879453333013922134791205481590631340669084969502570643718755003849028745725650507398051340501456425459502663755585488871363559387413040019317729622418342524915711943677835762349535132810965836369590242696352577928513746086574060057417656678367443503127382315813685868770493645035624179244085401934056786657995809941873830777630504455895110154316245775426986780632876073807591283405656428792296242173748410861338210121117553579572665052750435556297725070512205790499907807910625826704389418943551029220066369935910685922426235405599872817235460079892412631224468816918255224836454576290475529000556352388032059831379575902311615735843442660540447935552713783318204434414185234639111482631490141578047338119955907558499700457466494482637265664872820938997948274537294079100731493692464496615411400551693096917146189814509133068441596961270401091430293850577603893995383909352240569909717687998869459906091975455807388809556526448622614138663790065632903377974291874660217209801781758947350120201940270381588448778354625674227536981413985285580557754256670913493746180741768935928416093902860601850833158302012604791201237784320948855116346704166655450673068505471249110006772066386811606575929974712874208823259361398417027842210919832118209590580135245165666395375900597421099973741438123730271441079981822588488120126602734686310516653000781346063941259295203449758540764894057346824649516879281231166249628848817003929731744814685559543646730656629540124268548225439565598599393002800484916464384994731237619473879450044159379547883472983750274762141042315022697152970351921287941231828406853298754458998932473663138292533076807632314693065086683502731185410806258625759600665952026444907290205631012992485986828161246359554601756462660014731035010764415079829462289632667243187116127523636237205639988928735429803584904745206281289803519827817345611333317751631687364745068909051341693718611921106177513035157407206085501590071407546563768558132854244095203908356212033712893309893385919481309560116790970290626637726539750969126127035731722032837178183654442284789070106613196582718736446676944175916718610913663394755816954876419644347582221044816775290382111018353151529370515644042202644918535238326651120418186682212294024311929974078038136873948659955430288732937622013384710168868970907627137255196859475845101643623343802002622625730776076864829567095079547965969911391310861209092660712492895937852474219477748891592165335093006844359752583043560343566980211215968739642574897758067197847838979605458370759201570356328896158264977556828083849317907559926709595678719293568825301060708163666748459403427330152842386057247089940667518457486667901130076214621543696363976436013820392094883586995588223655193714863570032961273816883242721906337919076852894073667609904727958243002626508853406127593854921364156625686597859637739620706302982639145412683710995936851655434574555434832921511929210153788979192502266574909971032776522950451950529332969812142761865396476584563363267995535407591306586245425641536750413086994330127382092162908203291758833327127625876655926954515564123233435872418038907178966811465425365768624207406566637594355514373251428119773389360534722524359969043870625598319912585836460617092838447104788661290556569827550737226014321569726067143432349097515009205145339401585960412329063234330662684189671056699355899047864502318338877674746167900515225670293632437582743106015003714042576224671355804293328638532277959617787800877268145024547540509313686264011691479383223784852722231432373028094743025270210229808319844733508245252495750082401466425461570770054935471170342080759099023398166336965791131883015610683864749246211309059737316385589808507566840907994985755944854328379739786810673696087397363894909568300344974754782348997638507227880665864529734756630362054347665278121647869270862737185335180535339214365743735071001500280002393688604547443951131568564871482449779080080264765038439425685402849702968185238369607467820512355240251145762050740136286835252624033821856166715865440872731586566368317465576942612880253471299453566319087836752791860535307635881260542676227672622467474150492788164600564421460821664673621221698671226278142908787070245076189647170411830812806881773956139491034647061821593082899453154630911370606179431293350282154334970428470249244518473325721995270163373907525749348741124450401187749140611480252612051903415465870345362327360011088594057622913973278397629697662846287938428524722622681195428991150006588732158865116160645734853406959804032970252687534013303061951930538710892027735194993270458870321827514574892421963452369036274731507659553628410803301973203194722668299771423021766404395314561362006374610642848552821299947059180799751002124522074496750323800140899726936142273511023427614203729497686401008909835465840182647663280679573950854830296803911850275173203660714109978340380927032761902172174972289716787035031475700509884098774578943901578741654516154810165952589776350216367754011279609464121655105341471020615084856797202002492909607932790821418737893598165701382555355735434427962968768150410821849071923071025195402107580082765431036185373872704515746194779615158145865855060516364048676848654239342577736742833624936682698300112668919054992722558276248384505815080850158110315339764823185203180116095614098277947958671431555877680276320130401436866715663200336629511100373750375872331002393752470898384103573365496820640377153914412971729645169309420512127537869071027020196942900272599714305657218537633001739460747252870538816309806303154546909099675436291933995692526220731865695162604903737581140863205906993272870906415654939919320021715805001400854013971986194318588212288563589923873906907797776559477132130796723537317322854581388302497783300817997139848494298568817571489584437296176641082621015522757056292434200805851841896750378528551948486080659093858087000845389881515943436773686432930143852136977121222960176339039185800163856832161927505503208580049500122249696719451682264468870970095306677278119869551813231888177886977969983109413185480163592316044790154661840941071586679967343780161230041118240900244617670961693612255905631104966176064289535029039016775087257244367137221051502233528992747274050934520383452325549219001710596429914238823250205982534327117645062148317747290904757699960070579144972348269990225151898226067948895985581474341169111204510574700071642278336433546965218775492893912165610361206543991253837633729461567581389113904656164186473951048805838019333600527449050357645679012742319737015526772120822642249099211283568932487169382936276794292148639507900825278181009614969812555114746989020292836044696371252918311305882739842517117701355808295651865937710867224617293986352983531943424873646236769730652484905977928157888466690545744464097228196727887848227163507994643782581715778712951047783176324636410941830017579939092352683891687645710865863051894570278324813939082365514019075899832845965586091758543886897787424020703420801116751424627012978207608528765227170003102827165137374076445290486950911102064807906069335672682593235695192922576733479111470987465168421229785865600352331137246389061507188970526980459167701614258232815481910870042240595278374987464504899149323935431041322250825366875593642997746571170663439855106283540806828090666590002290974175145497889500601109094855603964130216395339320047543875491040512157209384011598782326858052231530076058044632084382035343856284508568783387117054956418028216695388972826697309105815947548921659501048341662577464114468602958768764299634267008993193036509487912016379865701241743571436244897829527544401421607184974528984382249534493130749879655922420327633892574583042911475651491789460902777693127137050829834935816709343873991424177031282257930648090497822487929185295479738930784222136362178131647279990292005195423311869376021542225463706262123508091834689060836546312339627432798123965418911804291112525442039958852478181209855244333277839762633578055190330314279905766943136805172932682027318717222861417781179309394619078607123417925881206362064928432712310952762351477800053249432467945347826931919860276823435734235078357187073570513966043491954373672852682069215410774027042826584978145898993929010753000424253634514083568943990594974450851258873212844838502296308863967537154439881149393854593189313071035111884850019396149219803116715143456957079653717245003069507270624745336224792093017578003002059124386068470488345835037070201435959535810090723951427425629165525215980215350813990844671394952607785794609970925796619141938688867213503830364270282218154864030814639472307101741847820381581010522014816126601914831440416213287903406385859497343289785538053936362479417616433869583547691226416089590922232638851785454281127587146626438695646513460165859189016667815617651393913830155633336060652439755427176237834705674047815164460325019453361991310844145919344990349445381352508726262383865334781503834873941336862782594808584224156130574086071118081084482097520061938445083228891053488160431487305196091851122603067162299539456144887875294504106858218490349446367788422702716921089266278629149874390397383804296859324293619064631195717578644507232651303862202122049334796011520404027006471302799982269870935531391858995320088596577828786814717733628844472450309959585431396357085378704226447722272914436109305954008251566679904906581713328617652600451662257786994374972751437903740569931996101676697928160392786337116076870069312714696946066885235342481460322931095192501026918382242722997113735582714575286415572110465610268079096028529191126184050870683163699375723971846584972040577413771316025710742702950294622178771153128194475912414614810683749434086061747410080160697814201452638896745481705372130832869368856875601333763921921189571912053449626102548888958169891765519111577993502252128346990101744396277424876341118607410363521943895380685695930264886855337377312290776530189406989237278198068024910819109302880678691763044859212506441096485101566466827382487084938525518845959166974010207574037298534056298755157467183053123116050267527240493728626956408901648848865295328201193926486688739515166704535168561616271682017347069051521896563123749752299856629483134810695789201774023513041047293241432598269293777235075578034068604299508473528352242508237044961109188705802710416058231949247480730874434966873441373344079020545673734869902587628946350338690783822449621071059767148788917244166988939460870636477315774247166139172746798939085227415054029127678114835089180642136116751149127962617490819445070411284933066164742791976155457834652078744058643422206207837222831693951210586664302609797160733303179539604548507724746546316788687358212225923425941339468399580676344345915986215526933522782399710228617755548661939563773335274121082569842889492890882100877544619356905861566385152774666441230936986967935845492203686709118479011270482474261384068419019509683134136512030623133219638523043680084223753948359798079236695360769540355873539806701325390517625952867649606585337009355625690923025883231264751973328270986136544861519264768176999054454785456885374623044543634480636431245758250325004046538347682267339845289275175111561548167871098437204860504171825960249815774376461972277012379153864309897575552408432945309281806819939304351994103701678865353783716669109153780662218132491983388476971551985103016821687925686274861128035990155892970025250333827905028756305434409765254340055736655243871662745643044182996181837482349612354326306290838189625116964354677120158680757693312707591382215753081143178017468241641092410558124143125074313716930488737526234403160994476419297147647606601859497287166960703927308055484819098645522814727035924280298023700532350198568695369109456254554911571752859571589742521484957902905981723285822937601726660781271743362819275571428789852630598973217046182179429712952109919016071019099512784265071076389984719110109021715693148224560582299265216713590983022709534434202858949937945942752708186695398566661131597874105823588707030812667409396934545960974240521737483617089179033326429252766620698123550952314264546882555149045584527525504663131151400182955240547454363667691999020329868307073253331977193683515778346695375843130988937541036411957019567220740026629868757312801039588336643940565320986337005391099229174903145139851546761672936467144524116500594655075895534476871150993555252815796731495311705502108897696993803300887815047691840587272381820988669217243694404499299838938863652718525658782081366833927958642603562065951151841506167522957259788801724867817936833847809512996993311535361284540073437709277515743442500300128546922374350578442500919618697427197668895903809339180964827132457212613230845551852312098628542915453591606521344949284659368466982140529450176693736172684621174589677203002137524357562166434184129002875449987370048449109503778078307191354748863292796851045219281364982204035081244011770022282892881595647168641695855804748955536013221071718341831142194835371150395787051687315450033062829587522671090942606878528223243918644316382922006514838925211151748885823876094833785697546451149775810260308595375800339420094357468099130342198644079868361439932755695458757041381826592063681055048063593706309811642043284950932497759478141696922833732492068782590623310149492708318552520081632998176232835154713391635515194126301951629381340393200806045482576131029501342106620814098258103022873664652695007248944679045411639777432772736775556567222504145051801283753211504705896982217363691352952281226052628862451132933590433443527617107702000511176408118249162100104664497886489120431069268122471990233170412587701814949188119750757875509346222491931744976698423909675376549486474905312967290429833032217011297960231919105731107369729551293602461913608656200403403253992669287861016782840754830055426825869139949721197776892303940283870241192659238923240022792632186732819304293112213508742334376319673080708490849824731250267115973214594294283421271559555377838754055107603586065013779159370213229190152500551146616689917622943620151895231709616000871705989349346289225669901869713121059806880584194110986330667522389803120196967713726176080943780550709518171387500225290014711838159573335363687148034564726437860684954601527807857284956819330703685241652039398965992743876420122288624797993138496720120509525879127970025461307323957000591526640308081227696777788628810728456367441900670980119357777440286851959690406420295694679966498107582151184010240549034583056357059802349991331759769383207906385619490175887573305025216096197493220248849536336458089429591808054474628401551428464995724688875236912318252849499630967065512280716532064559773416231323273295634242199401622661442507723081587722306468419403101170579347332941692563473238270567888488336722587461444115518809390779984983147697602860149281703643100210658043909574870822798230820216761238310351960879806054883780380982634541323727217744030969078709339274893530915137124348622341148771391615840038515820577157479532145258136216704249965118931862298537961954737371809953641321802741521696620218671041688206058423992340185701989163460094149113112963727908929996108842333247284231944674761288511127504361109543787488617654406645188255102267820758905694472512197544125398409704834107272408536380221532306695579367221054773485543889107827180213639108261517551239502602527669941405033861230528214240969178485868286127623400823633239987363202000879604888051086230682134482000700614959339783780672057969601058273445462585771424997252760461416661256566758354284560272316593425459462481042068048824008374890599301071221354471528699660998791704443594723888194425980673157877305160224549621802651254124075870802413232793937472429308404785985330685340143564871401618032922658034831733266696222715005672595862072800435974598439599004568500148804145056530019322419055852843772478005290584319663553240429593906734084041612665813522244660713628614265317973337727499118496795952837183993065492510298446238204285552379329315148470454080483814632070121017077297312305701270558371487126518782110254001969313310585385108360364942125102118043246927248749908208620354391015846012323961514886578246125254190445119654949842226162395124329194214647885418175473197591535879392616871843205592093840148340922093538115853276878085442510417677235812325726602521369576240597845061682337416052365611427884117153727939044647003292543071916592318060601627065818981067659904612880922062930419273414791192832312584636579861488385927456354146530124882675138456015908605371119500971699601139328366077294689219073116026611911309418572798835072887649378623741309814108693293255184434099001581612629201124612827463140301169993527740606608311138403903304339712668856711144831916532156670396810418875306815130244554199676553109784493420895805107273369594023927831108266753497646844095693893089054366768094126966382976392890425193128763340776252457651352209610961546288181015921093835007657186479100688519621570558935163859683405764933868243829119753884162981257734365441726821199475444934877977776706311968792394331568421593648532126360063628141261361816050592283708391567497088434777194116811708264654690496264670988077060899485453912134428032736155597221338964385073196648222609347689572215922438506921953681679458242193670907545890540964964436958675296913739966532428845159108001287776519367565852365756849465747454548378499883041051302857782743600780386876583594035559708722723549891852177910312542535965797293141385272899807641519722116008190246662835546427159718944720171075611076755099631827145775159778870504692999521727711454171017518245336563870658090379020434576360524184165938332828698708430463164327060564076023289659102658771076174187221814339779865471503845167357857953669174905355724400115698778717051295610349218133947191730178444981767684798476163086476210149207562454816500230702333209422122337781479381108831998235706678264003170313077966124053170776861572041875937467550095012752821874836031115663629749753736574162514057404861746440338146570241503692726181682695596619910745939810589062660173141569906120811621797334293881419529787442426676267076771326213194789900573644158814815393327120023019339060332839519146888110976961347017741958918580812224476417308735146084054272981966544862883445245764453992898497773107541457722417437000775665583877060159157840014802929931335076431534913056650478814365219655900288244980372945801391319276132729579457088971871888828093497212638736109211682733852889069267272626700887758950144033654842916463799143040558101083630485954087067054725296432483820127011567584895105068671891435798577152124675201802452016692695188543984547835710955017020296504697902782086858122630517504109309715163371576219935270785625209944605105129550617973599133586676088530705535423655463093657305083880801635084353417010036981306648292758638333135695467281818552990120298228891075025211701191518132427439440580436338704225519803789196048703090664924188373263311231290601286999829319211852348172597479870707898594720651383610010278762705457006066845249694638881971452972795654474802315486105340970576466814117621535420217212142565029377619840241352035686024589237497672778138397306819921412794454951450234056432776092583711580117799695047132554579044583225144298582683971351005349347368546312711512424250432978808098641685614240573564363877153668576017794377416291900713455258109010224463993803566862138793761097670503936417182440719568351909053840445047996983211458798233860593057677160220839048326001615172862496724171131953513955581252549317453707733897181077233716538145667936937174889157154923607961143308830632666151485664773271652879736744136327268950330470392062837244008811833465190049403745726375348724753629896912819370749537225110895702379940790920814906645735890398477349539390355128050696268721152405411122613836216596852319230387941110529462985234396092016422741708344296144766325380319233053983700348992239420833944350721844785772135801076363044827704777804627160989412822548687565616426125900368189666830291030686236803456603057113174754509430154068942686695571731062389616993802686359337713994156973325785174080594632918869814582606465365071501261907596464143880634322469390950085176313848382586054579191977924420869790925820937576486275404042307349770878347194480413827816150766671653421271844534116140706213401585563389472269613982245487020276229133405559945693421853129596646929212961623020852188369802362768019172586376668912175860794308146093064684982886371976977631190013897085598797870133289814128289385454577035809849486134813045573537680309300799549909341017492649144786660109319268695339004447135616141627768751629358171359754187470188686776844158791454007565751415394467968545384819468493736289671137277562200579720496585308480528434862186112131107533523682709887614491440635372713511869384827155852668893732425711614751042145516610004036710110914651619663014247762219661085667952812364051872569347379934860557771901542512375306713840842692054039135097884997018974701241207942623055663738188257134130164829783315198821282201735696005930759785415342664939500421389158090880385281791482193499315648228059331819553604810834616060740083645348756928141261268947971937564461350742580638229377826248680724148878793110442819402803714228955639877503095983054175017341769988879250042954915296819198875584261002400979228772024143982245066577428523600364622531148540640660519857103299511415316938816188124169696452421927229047079849178294421024943402758331247892499914284171845985633653626729615494135754484885907879020448624079204289464000494596599484792928151302428839564941989717966074227269967620747289980630070906403322033413662147780574399501622032668595449715278350182842959923515485048473543050336855399974237025720094403205753285051462369386256029597564936048781569670511447930480860891103672975359662921655870336242675829403661020563485320687909064201686850680537540092348206986519164653868115570588971770210050627109872565109368355246763690247037110554744291919334543446597333640663530748013286405656469894251972903444521243118525174208305679094079657922995157031829257276312912523360714748929506846473531384031393114304515330814272159991736774593474013936136968213727727002424430126240368747900077276815399624340041398268450017063499541660233784585920409086743581806622980331669333800364353573701607676411092676169201324800140915880226834037884489634630450088499326503826233342456735132747175070387169658680061248300035203096384764844088222620818717074032347074988755190273189844906713249555436494101487467646549415123246833136651311155773466137663356857780936798644922910915430429079936182170308272392286516663412003863804740410925419259976864155814168038373769068980881230183658026291555640467058605471151674908975533075110345310619502853166525892343707248738832010356432143451926374418344736921576444195860970543455052603324539970795748542658996553416645296573631653746814992964988333309412322308522212823787692129066202305061972279947017527878451494655849580716560606971371317873610211837552289219543446843020483624266398916848593377927220588453190803938323230909929194097530345898043510053997404497185549579571106045180188844680249280575961353693046673532540672227013392573221978327579186058414060124874784840251796530647672713102658503371498418282228215761106619263898678336320489392172376705054418962908019282996518819809847738527937727524321696229122661169819694113398356762701026228853689527326495829580796164779007863031695970467189534836218029777891363177571363711609725837573400007584174211146734997863685160275289488497266965500855081950354052475096046707052354052751294119746289716759089986897619482077269556462804930899964211592218531876341635233397361967455624874684389143780949534714665387076054197309919024510974089985479484842269506317502848578907368821114892251167155733930456938007413937796931969416422138942228302860761192804532910220077259404052795535971174462526381198780320698958302478612795227275538890306192428835001589757894667907950900885465333736393089198685660377182470554088631080329184685688634279142992064519491506902978776918705919833370240459187433769298282644876758754253213994495395439183868443916139481372381037614907796394882096308000235754667751388894392236811511076937467614930809958161789507087141374465439273330055283185183557935597937701859454810007292616330699538572174367525627932589218149538515065475260887579060008015569495504760268286317835383202610487180034600163648169716771614840960417863274589959165974503133369604718967293892868474516838891258021242218837997340140546754855304720890430231181355657099663189852113786584041148068138004796861964963300349069285514715690682401051550476566983860169733957910765341615681830957533665314903229432833115753855333404694335492872322142096362828002973828174271775523130149534822650299077706344599778540747943764226108989628730686380696235384701729766043918193177634339954827662378580067235309673781777303211345031116091035830582579403928509238047709936820910135428920093526037509973216632021588542399901383666499994109096454157390027621097966735206275678448256910798916924699840550815751012224455196821786012927838885725750132128920982521802534336523854969532586618549148038182950455674417120987667314909595105869847397048935487330350453706691622424819326529329086817835052213732973853511510240842026543917623315829966443185906563965779478252575375128791366386967358212299631117325988854966926200392703562187635645921724291209752531663818848464890215626560756390541759372763021838800675197994327268038111671589998469074017567424995431079544413571423674140301693333910104215660491010152392529527531399194488179846064722191082710202320381914809472415472086996711842187699894876578249196250481468549240841270260531478913070423277083734724569408943680082357968248634974980965290747476127177191440383761731111694018008827569380881946127272936649043833406927672115044837209998003177078802573012489829356029426573815769427966270684275347668014244086545847660183557591018010463610845405191231390373986519346452054779301323212237759702524644048115444059530529588915775588737283975527478856303340185347087621767416250469916416661039328005200646358456045514399174810283101196884653118490264072355178710237960673008888229717587610187100272593622665722791472200974511632654893008287959035975335101493499328011046743437543076693908661194406821005937782695332815234960077216359383000968157659819780482440924866041107217873237180342411461467455493281498686654417716675933357183238359311651918860458870380718053540427485182872297466596814989648387315809241011830361528348779968098642732565817657765348777817791968812036818118093497083030441883107533335032817799866080717421093449598227128016045851939368812218749454382062179048352813712319810837864931826318759481510630930072661850554713658819570513403957555494327725430627400723060216278801331668084820008173813127225640058598712581672243015704353353621203979038369466312367614805111359916788925323955304441084068142481635260847121710675443593312882935704882932792781833505196547253762523627490322563300290750696226420120129558541178877828294668590515589467902996240287132368711117502912328971755825153526898420511912996516791514054749738508970155400420525854398832872440524478158906265012350069095835200139846163557246755903208975628703822086151667918714950132787530241541071895021592253607398941824253735624113985022444574030717516282931827064569285050397832651953037732088724314553442807553279464464612540977325814352755844552395908900595135196364448986981587404422115799219807738449411334810558066827643000284083863341191070790245368046293346170694397868596126660934405625740771916717108559940687237125598600883831025455403681479258704337440659731439646335393693734689829895446251659280623399395512847569842131247750156825432650779547291995316663488052488931795545258792381794765613244009716731552775538856669729117711861068301877816454963451172386327606312473768963457239925635396319109980436192400266066809874296457210548255628653999517005245288693231676074163879357062377790282874659751260701067602494555461494428085473016690143335151650898691105505594485577897700827254244051763070693837057571415471991322911054786085266278599316985472725178373401166749856236798993342863760239395263482532693328824094392955136996711076150209668744507101257231944118195937737087278479305810160611518512468656324941974825716394959017554219197886822364073737844077065986827887216990374688127499644950619341827722680472102764637726274009882893996603641083754031401864772242152337288257942073500140658659041583779338751756820722746814038987124844859680140945940457887349799525650631525775229101251673539615908269288781865393538471261605401495869641366327212467573342106730716455488422362335093494104820364261372080861788441734563034903308239269450852904103434077891253717178752476760090435012568909592792707568962302805073629369890368985693112576233932598424170735646568140448941659287206279122172643806312764843113367594841497833887596457021657240333656647461957310041333248570376423031789606257567991437525498723313984795184999173393944614197267614993228728636190598722448117510470566194090952834014081633282980862271270307905682244636749859986493051912195445741771090898717446333102912693717200176657412578864851734626532817831661262114812005758335976123417378318002533928817944334898641078816928862121806791529936710200120088628861290826927400904784149064537983467635121555282130903329579617377916450716530549015857264822320434435794435831330022131251045159522302539421347990955395809063675622283885633286538934309783870698564770739400241914566170866676805520346453008721497468912640469643066478464596982499085954385823699280722523277341226970082492727153798405072372381275760721204039956241271833363399099031175327067256059457283037617692759356823914296514268418419410696774708982538105082693013120179260231027320206875446394580986289597588024657783372295354817829300473884974112500019373550920272851614031888628196365891101122888170543253098449221669546072577080049866718383997344448690150875928369079297964151124678937778172938035882873728893075360826888022429625626620313256247888658680893879009382804262510836279954900869397533663140124618641728845529508560389260279214710171162560631209658320336483747778251715514641401005918576267838559895784600423757050866614068576071750454115028090123427998467256441522667107208237567387549580703197398658399301712427100468792316452895687359812568973158114924354524995389556733191576825247290537440910593678878244493043120201604413694648684608291444227495836187881042297379400870922518516591580506342632192333235491675799041579912000763181640384785778160005447192026459202456416164064174983785772102758544666293021964211094300510740360825919068343041902425519407668402278589315514963677096441254441318532881315753916605761160095844632213381250367194922514328621556861164258092180234270300755796855465599197927326146162465313991178378625666903154288750971464160615253415167522242059978746707448984326361694083482013753814147627681576700424195069523172206850999563349323729437425715172561450930514761676342415256823450509508225133346369442949003679054996988557289600886835134154263620389572117859042052210064893411997860576743792078892802234435627590149961076808843351211223829961623086897351441701059244726112554060971811606364372502257934434823805281231019586439084333767037268391579294146730742092820811161563419108939976805723173339581922282856400602602246157067153890705292728574736872425798514471510938187948561661568844589127788488738885210398859085458740915994189720871231354030335535543723483336023542541222690108098554844581064825848244140266729007213180642501062866513663782187477330735290537645412193929655658160677899084954837036477791100953145573250585546079052276870835958294835495058010201008947383202197015160440216716345808872390496984315430338497967680229955491436174346105776146383421967378703263868285210794076990227691729947586281938070472269177329146661876362491058381778157651174379248636595892345329764009601782956920424571454574317325589346465299385625234973472003502021300424103513439637418157118557143932379406738640949499631988367167046022523014328945011232456005223504373552196889297251179321624565352045304546342304249213978807519993881251506866210553415687146794356376648379823834814458972748935167025334081907572093961245635793081679618160785905860688158433056084055516887208867504308716819599569072316842997906672112165602825094836836500858036997234696795192058979466007852199908895797409944239145688523342328840228067215877755212059535286449428759985518079576584497793513770731152597580392131942829151834017777323169440822012658353811477234499358767246211604009099969590374524124626464623007207015485852169118133662330933498034427116608471341925741021248224358856599543848515934354011326455256860076414176007542012080232726118493204988820988443630350178657766708774457365217983125188161885209230854454052655959419239214712679197833521880178741856893122366492885105382332716766704048672380362871331290587304617269352713298135334438412829233954710501455586475304916750010564969907852731013697247214860649815443809897627661249946830872044409368477601831395772840470483952391687242866640688325653117048038251883819485028725570601039125805533997600175296346093270596978541522764118779214604383181988357627320479299672143262699488048079039635870422392362762826363092257401452307109502095701785506778866569239346715644151678672786015628044060135424605384944672266307418893667403894870991483557326457862202497507583796352334110560042560093436167791807604272213142988831995731279162845849244519004056349083679199515541803097663072294310741778894213476034326220943278777640441044473952173431790375258480098339397374999852722689688573417498779069187184311355417817568789954443699475815395052854941956568804908935040074175102134890062260586304028879195056856394393137972553490721499984011364573594987450498101995280424201644626535088929937335772477104428672468170394621077315717371909470997556714493570995044496243241188040313137302652810927192592180121576223359722634012376830613462957050902818354271368944720026296920557520420462620768312424093599641476550517244593502329636153793803647601018470777607255643512132119296183265695027028469111667832826114036095410297838160654563594581430918936263983647430152518279279498413535498227889921292333782738910739528189585589514881081518143720393616492307053803844140132850688574512297993934487220402769182722450942521176113168113240852505032587867101612056846540107262037452323921022921384262823115836289201903059294339123256094844029716996034490960807144061236486935682365185276020600665603297808595021663278867972857332849379363088085924726957089294372956085472112532927428802171826067444601187877730728393956360760137028819418687629795709695000254103073888644285782850191335119885907112164267404330611295926693845584056244478575821904556761817920952856079762461153133049084858120375180972186513184917543160369415835184704885757676400079154971836503505986464078653069521111592974189550634150603049816273228463733645928558403149181717396267154938539340651915455041087446728605364674356044862679374143662628702940141854413045375541119041563629115451281641079120906036612971737104762954294000287185671883144282923342889545675584587149438113870042561008800086977708055173335570155404713372843484185936996451676596653638898999366872401992606933406238892686162531214566383115045136425058491909438075645443610363189833147781984465181978937099097172038511292745572528082402568546509437007494986352286798678501188928791832474057361653538723940961308763624528833957001168331064617113852365674655179039484181386978563049392036830309119749926130526881860511506033211308304264888923794222330338373998189509878814776152364842201309187101542473927998351935395169725228413158010770813104449934034867586607760729365411917345741976083580432376896982428203813635205781733349979700669415429839254115445559775827669785559386432984174888360835390730496991941888170018317898425007504699404306794519219055164262880077037865685298616511166957151128926265640968172998231357182954867912934647992084958554942122890743969758401135654521440305085546213674596387602883322266058985285201262693987466476838071274790285750307968821124509188262070536895778203424121465756923092666173752636290682137373299736292319607220147158214194368465512484023682783842554174235438638721473633444258377482837621194737270544189361957024268772513914691286842401287211310762134511501874785166717656708927219252278555907390617811983034913646713167228916936446947197704744024850425771351788244442089904627028139764722153097919337719615288416652895055501277822623963729776775484483936923743130575761973804276399774423172158142392118200928568873621065581231432279757983285732195612757958704967587095915678310763881796395559599570550466751681301228892280838514591830452521910093285339523570390855682525561093780627487804399041171938903738729271076297702281479255688828435236914438382649807793330685267583495810188185333437769606160579530289319282307216570712582951423868904638495925798590968521991324356553163594266247283923608676836308639855649309070311851472292119431656363488460399105978518435617793084758589876995120447707929105339085896554541511105367763861458891467231859425058228905622377786356589238174618417808564091182374425428222195536743816490507446152444390958164981223346461330727701607530584662186002206174144229067139259154287088632986561480044485727508937966922129717131127107642706316691607649051303213250417827445269364265809242969831074959670310470971073266700829402888904343589189233503950058451919493224343036936416862773712112912224202351626476088162618673431530941642787738079717678241330666250954982663965288370527898387552530786932732487659524254166696453940283985797091646875359701391596205801489533793565626787206009452777517515931466195274689302307620120002653546067112751485119876261114490349634705154189033444371147618838017495296427171972518134210093047696606517677955320803047756002137232120394903821571898855152529965368147709659302151854725409643930074496652146854334334527462664775285794905172193186013274305865440734682521203645264602485951672926535705629160184315037802179139592453933267657837093637445215231926546236185929776199027815787357297225014412354956555635388306062515153047060595893780019065115451120386055335747863109627390548546915554807227695939857104473986719007176575911905884495040362078922727024353442053393405053116703992645286523320566833089680772309399212704775262280325368011663250986940450270558243219303984571764071247562424560045548047323444651625459481284861230238761919551668100265256164442012464169141909374353563864854813253870073614501542790198497197193103241339744752126508710403444931459999915776760000401153708750445481866141377608710193383819288863898466202777432793750435990260252667629727941470529585740515132696794440644897220061999342662207366272249485365851175960575217391689136547479459911737633379724839046890347268188921520723702335010855835235324310949773245570223660442515587352996020575610701279463337514771205050908849827549173016245506157631367048738719457367562334465557953186794063902443900841192659448591197174873762694480324533452468942040474657610693873406914437285234226960829422891165611494307236049009614233067622742229786779588825258471427958858874480358716083058669667343786338386042015750882317025343129848786547560908135819749427957782905074082017436849315788497969174342005073677574679365535778313086525557446889810956778126985728833794354398914555943035769097377103140150471688177396926658370489188921182090553168246138670140709168886727753912334225179615128175916683131591167730361135870584876378183521282504849091299684222923068804190771052111668537534683586959391986848166451880726617376869092772470773130132048438081529465710167491042672266723645860246631261855298489028351205354845097007539257740063639806843421189099024051344996317039911475636633291928362221543851196597576168646828355925433949011643075027089407909623182127695747870508214367553951809572263283132820411803353121091236752972330229170934406890240251975672813513593138690595075730328456263302200627201189323972285323310878343998196429258870731579816034342991751365527478397813263794477170681497221393931704114338741583518519402978120887728001232430645203923618983679800318339942022807148482969953798430490351843759708642405454293674581218355346809177527226070814575851141990159554702842489601434833525181657751127543961636034922306670151804067503297692609016251844103134994536906594182487012899965700984796540573573109664240028931042445930337794726062450087145096073377000535210196498914433262042281085156653207458111502643334397450688424049891184303481492845223773419617315085059552908191999251464527999403991671654254985960992266207299382136550900051071676014768298650964512663183790024291627380976814618316405573247014866935091751251725110545654470355646807313934681049374878344880548503383564213271425768933812565035758384511319762508425353660286828011821412136543886686099613035728084331820596539854259609122806675203076091841577922595334954270965096943459106158630755219522581718341381220474815428051303588659993938013593825439294196767410269275443678555393476546677650895037452059492776919798824028399139543149872168962263491382729300318604463708964248350342805839883608022505747031153543527154325917993289887665098849045762197307889749180094871609925614058040653185665755219737480626921454054846229405550937473690311777145412385672439597107318321765325255413626086656033554737095902605801046248501824658969016907574423308224060411164125995026725791716653611814647583929230372191864869338234494872692265441607973044889627796320954357384971053740739933024270503301607129078350828325292928027063472885146111748802339671657856658303188982754954903445640507553505779950008298326050714251318015815022441272651839385848583038959262238328553100857072844575343509542264103098160458281981573734399254170628195273187726154144628287080490133533511679649362428475140574392746193665813861044758846287120793364034315203413203000374478457309665095686747109024403209175535683437915359750133064678166622291832464903661197818513964838686509134370590223425172320000492789839538423102988146532276682895194143238495272521639773619764448375979027825288825406112762413868620046632457770355885732024456938693856561790233151196219442233407689501317219862867528865892973790095417684248133294092032066588834004659977606131986455326355712308380129407787099400488463276832502050179802245990120362868851991477091978225497299822257676683449008006108826316767591897465974215718339717518209461504759107878171202862367755783930695495441270051858894451360539641170719799063881364227002021772043519026729964811495613826052217391349735483308760629429408824632953468613297585942939121164323248978796630213715719210510405434705541222290450975452763816301187517707133176578566657369171708601634047732027638125993493626337901399829336008386719476766774571019890314897210591424665413027620361494345714990284314143531474502718533995416482681298230944033922972616180716192428886840555110281922406773306389989606928864871258040464221500591165657799369725667145257938359376842332160348424837545185357041723560886022560898879043350585483106296490177803956583421892292729454995221431865913106743641625029249505373190923869974077340522404087754587525813477362201512915922061900104224974245043098971076475367799455497280341882212801146438973043539926109620779214850561646873578162031716390853538638860863796648427309515976276400853615701251037952001330766523165220527612938611612998849386983224534891265517777724896847391301050213880050338253126054546720075815405466827513017710333360997704378917685139206627530432594243054956084516754914677755925768860110281399443119566270189760031047793959757189970960690304636660572345504888513883538218932367578125060852108596429265296457052828174110731552812008543414210590111299255270696675531885994231927560020996738243500259627623077708314799989605599443384873380039449347685423378677933458782787769419651039752807987627784623699338301295412419940023919299802652539880720568328740302538421466769112552367685150663687003057639891502426784905233305947791058931351613791437672737097298465099363970745012056012121595668013456079229900358598666956259674399873680605099760421904392583228894927082212854499720721747862649503158881144725256782583793718166620178460360053583455300744338640143381385444745306615802958870618470924001724532390500610700166483931156217193804954356521716894292488482872666091005031034907743218901391009709828825326402459653136310572731188182902360450161446525105366294391903435279065773295489552210128362259817682422178785916168285020712745841018373914126671357701912893847373195208242752902723112416264539240490780939431407940449442850596708540968175397427721222855338609549347864589284465166265295877397276725578646041557890042663761708134830090328012788765755587406792691661991309467711877825432656627143917961655926969856881431183563595807398692164253125229398984677557807010813519497042833638490383808001616597853401350091140575802000063354638045449733946358956198306444078423540406409016353526695174945182043048880059739141391932906072594852194106169111520068275088691438001797988556124084055138830200823572546216165894310249555355522507205852480011412354378684867828988564243658314769717215809145976728944567548796134677397134534343999578932960312539412712597504016823984809157340403858709879625269710951167253496036737070206119220678402289791964668515952139418742747076981243732062380643306551799986941778785404133958272359942251466581462054751687819868266867534342205544287287282881770167518687898669903922414682249724468057588654347875130295962188848575526517825133190523986253741743360398300237226281527833379816002783661956980931877496813561491165787074094415427490740761426783463319764019703824500280338257908065499189119942651383235442516256881625230013894439409121665218350036783872596302330897013572705566033393260996642334631771748702563725898140913646424673666345877137863822612404385711483871580533961576527023539247767206104948445827439489592263581855546838870124820259866310671288032073145437626053746093578704572530100024754277148673853627703645322784380929453275075001263032867353803277499370210688033919250603749918552108663710809022494727847753536683729714325407458004739700393529463155385653331035164444729742531199530185199459220623370400428820148465435352438486641155266180977084255970090042984561781110515973901905437830351414789968858560775440927091832501270607543248319359733364183765309740384968417966777619264757232182198044259871010872211712332011123645285441141302326245882083205891835920570207827640040583666327985230378688870498685229162102050060410748688475698933779453354676406597615365584344822167371084146505081858656131212285207580017383248100064587762230981741611485531304146931760327396423471228141815594281403861387222447461440624798901216423374044910025414267175732216606981603914203091926058579814441769469041105810065118297278086749057634781791442913269411916551874230413439060292067014559132132639826495406293819520480072180215760373090616691927808332947256900119727747038361776584104954517203789141618621718664375755275969971866002569899587390218499317423615315596952918552307934688976753237254235672375025692839467887346855762106815153948645690667544100130956332905712934748578270888049813390211264793048571118021748458719769901228945567839525800307507157494241305612228817900632909896072680676676068370845031238684496476642669461516886996121559187026268702745076365858558858557401583575916020678500220511080198215143612186846948537506098242624794661641911221987524446281747663471707583106533384052236350278517805463944249261015360097049846208837827176423988117455039033926270418211675095719836466277251860894411111212041464757574737023232626911916684986511131978674684159286225310319162687608329941743567153082901024477685914278220081110000550050632987596880422528568212702247487913331853347828948813125189722921211850058430043820128354304523938586697573628901457842444006817687327827288036106871525104220662087052434681705109142110258799590374114398525348895167789023311189186713369288551152602918121958156942311415118407676143216006623380666113535919153524161713785762944555825236458177460828123727457799565847841646495887878717775271600560094526160876686070651097067420503703550388229603721206236825124628230452982563788181415286351591073035200879412480067713812921321672405660430920448325438613698077370582485984907955407111502087402743630522294836616316023297346448392641402714147166623395965089977390169260544484027364457787701575369296639448973894324697331801964178128786529344527635106518964485392175031164345652706892623712142732359838417695199557574481443299253841844315185752292526320656102949748998440207602176386801464992243726528566067462161497698556501496012648227625573195599954655273382023523596313836515858097674228504907143125417706744566805140378544904308059929386431237542497006530493193628588849837949721791257705444833855385586967181852316530422833235721284545854931971650164897537419149856653306417528611863986787651539049340099257791150879688315430856695102775081790233252407921107630349075594144512636213922071904445241141926078673546601242518399590953031870319403362113726110145911644056419194979947989090682299037536306340892656959841118276115732714701919584864453604225308553034673277392347059005655219491108408098811312289857143806960074947717200158956253442616693219487258803123526774391510426077167894237807237819966406618691325496904916405040444634215851580566364657309110003137458432340505473584750758649573644133143695171729114841163952339625461938428048682714343304501199966269945282738713445608561134262157251045300147063272981124424899474806182662179223224468672495007515492128450575421228860364472144344489333840524815446375075303148497300147200435290541727692160376607445668865307607456028557754422810919643552454282429346918657798791986536644504019308421636744969989933665481276407483733133095614804510761277501594678543022329687380679028368732927921053536635954719907187245212286914071573556526176454663684342188695042098650298393807264486928379977553606042668902563102427520806254413992711049601160015526879518895657165626416012651182687352933271074408986387035207988222713446586798463423726486345699311869953501294556899745541935495604679948465866707653603819164039794089448231378980180065027622946559382268532916240854011025633139315995732603385082430449850111883124204736644831668705594692468244385660919801972661958695623189016578030701047398660315820410730367662672358847919675859941738568400941371626797978359665128383291008893208997376922043464140548344337721646299012649858220639047407755481183292713927555003103030973391731653088494667021964650450342627401895818069908627215745408132848669253404304572821618954738536910483190494974945755478977555172253941254282633705356989557380398822568157810777476613057836990554325068351298850380831888995600868488030272354203593742813791955985067231351132272775876360122999094486700768342084266803592892044300425994928508105837608219938255023637555176415492306949948489942919315476988514709604980848913990641821326150419322225353797123281265865788106159387329124242918893486503995845754276459901823014548852272777619435994047481775372997952845573604078274433818103615227103073217207018905617098599433278531057181604259632971505362251551813960491743363746219275761882155282222827012112735667814665920022076125404522202219998989934553495570606709286656653527574118130385820413641804378227100056492169452339566385850755474077480969526534892583081956789539086121131068815515954669646016386034874758605402110439504450450073831624161420867707495996605857893262493330068613228310136124476946887950058308931561672141109074932735755016972528596262738387355225908765039373421122184860487141546771332912120665939707793530259157033101962909210409731858177138923277794848262154509843355982106265089965992461893153291723717187525050404655682274841363061944143061629216297553978868523544817100896755902897595397892843717576894134461057241816701684846123961720942688408952004647248941633237763044484582839446362321932772647321604165286741206062035737362847443844094807268574594046433043082893543926916679662771258123226612135586780003013491606393827084123263177643324240746145833867650018475411991870667707217113856809545767806235703183158696802956555800174037821491816013451383465837866233797376178713845170422814979711746440147148459680741629468687183162779805176326969119997402167028787804945557950921651634768881081149881596495084920233040823835934940090499960255308281785328369618169430158197225595940909618852212497277412738231677924716499913779207502815436900937740917463221049343862351907734810339657909943475715900489016699731661800730413883374003661735481994952028351281027252110620624198652978023980098413239237376337056453468455674348909156472753293495146763237817375241813314740362987465046870587890198298647534759321059866012631089211599814167933476540975006356546741721578592474992612322950263216035020763011148787285379033554883566270848317000442880160521930047004755837898363487908008142793158745373890680008760590035069783761987776565113949830529281420826566576223905342697758743359859425929754436992498828696464827963252227575345941153665431721818007240075232393657575143358109259156045802987213603985059404079374012767672608332480423878028753385264304194603226948416050951866990694049792573402996534824023502891615026504433967820210275728016185409051729830428043997923573658237061189289576064427825825310546220090200803212880260915537294053767435661283043350777816345494702876358816834115056915326386640454712576664995624349375751129715071089931768609138721520124935709881720012848349531476670332902799938485068568408444933124377917980795719615904893390151597898851316331564207825223045730091750970126259329277122821048733231510840027604426555929540514982648014580582512146835916658550188897208832753107349276009930273323896852476306429957598628285415967593845960669586688716676513388688879594692412807759824700698121202609098264153084744893410702066908023740605970379194738704151218692216944848423637608703942762599077092997007870432042708878097769167268283031192022451356095514072830865240858988998728742259011214596082096418523656158202517335122165625072272903694616030118861878843089098007827104401097315304070566931234411390794107265523142611829830437621059802746435179414160457819443654237698450102738267250546089006761730022884989805451086753088256800228128016541735551996351544310468251511596765114220091029015023182821298668401314366918043765574507219981404731903321561442600885828668940982616963136551853110191952013686676906911980521059199755368488905267483390632518847997549780252574628109197036847622848685160229863114236325382952838140093554605203047755551674928385415846991056186171654008102276644597751389399610087015166142701202634627325877287350435898420448277268628397527074753614224591706602084945217714401120239766927776319668467792680412018725510095133329688634688109640125628425170830319970440922581223418099248604193094856218013400925581424101104245412625972815989975101457871905235073397699208655306942610604847032120989093147534376944972509245167154383892427435096137545866536488576194860948489837765634538258845751201442125295480345205574876709035274924693034773530735620832737238258945850199437748401941860233192445012641345571508270755547462277747955260576497545340967252978822642767647808166682290384691466445719280342215987889203615278796113839013704033348584495761403612310781027134217101951816381082343915514319172992224890687657502674346611473895953401496092499882999208020890441648307294077693869606398005664806487921107441958748839202622354588273459896906501068612804718169211892665663318572721633739203953586975740419821536030801729561766437059067933299488382703598435001644906224275724363654831503736956362576513811371459535243102522597392007471223980098341999106789731779240801926811005350869719918496199692064916429772572186699748867958624570704150834724706136530991074762309003327664222443404460259041079432836778411850017960756647869638288391960269308906792623316786143281830266151544408970546174034021188468288681828835500026973372608292101276297644292883552520044258392274452550039372302224186278602678298082323721408535494952141006212353907429757065712680597986744495888433101434865098303298816485735674720766135409389813706508292453938750570275498840029161435447595081532274528637563575760492378707130385558471286035300959736306717510146241633763095356092042280803618162739548171352064831308011049531002802037280732840378876365335356801465444184119976765633669584308740139984718965294023546986479232096766036806072216567702692698325468826422600703585324315557541644380643027848605413193456368004967487836023955419486467467962233826219639754477757210961061893033467836369647608663348255027288629191802927418087532382773001213537293813506404576109004918851715204605472631516457550379990117953754810684105654214448956852983059781806305265193014265246800204292695874404783700670530813746288977252382425784701384134568697795368902447324424484190100730991651950243300969004402706949282638654371235759609461380685710476432068176976774113848747201626634847022685303113117691021113632271154943286228606119412781757525042295221808339317714990605483829989016997421160639662301908340141674095223314688066751786522558881475696701253373861178874660993908993830335305941997587326687035566061807776585020946486585297986574993037563505052872079593183448864692140762454802780679038064753722002649190394100893357505421821946357158552576087247061838944506147880868655582313078854322196095006122954861163072789804649194774267417120754688023686754692549978025464577616815817086901483055736269171491283244122156555355363939404013481624252278354682789742616023034829463568113376066213670064354039468084439888363798166066134828050287448754848132560364329182305599230050767116936965874510682424478507843751350248861912848267237181933533235789309899229566029028658820277574270636142194404299169194783077846115824353015189390871200621458211112087989247097567854719817937175049985227493786874320723651082489245399728667288014323294918156856912559640960660551027647284746697913047895470801984452398483293559199561424579956294906183757004331035347290645319017519057839105206555288675515567932181797903259686240255759327915527064359691173992074147677263038490729394785874086809220332604856326368260106678615159215935417378290991609990517266560017369030756892173998724530981550070109653965061943186710197554770960235118425624214498613626706838026751526473034466270006426016808204554858971305637895628871691251900540002751463360836576252554506871440161724842700654936223238156505046975536277488630716751007507908748959948427636182788735688328104077617302423827310542700706524425192966979545955900350416272036093543764422839162948707388515078888657618563314641394365750091682625218376045133805648856527924665407457055906280705689193678006138080483023620897591135809107339014194286096362436868260257811034375945542547439602743381416109343794308215353970271283986608843075074845272107195322730894172474024297277018917573297514295059244294890806823137337742148501312370281828351826738194550395454098106929105197259867758068940888415833715725152539331063671380219485907943378881426700889681367647434664785239145242838414769489567081748101770399287372677610814109251119056426894895735042129533471588268933600167763018434338326129568642665301198674517875391125969208564706973671017259766756376062044545473563798032712594211677752782179933713325130571164077910332654006102042759175825823363259678629401729423452228837253908398701802066955974221525854929244104641062727558172808758466928115631975547884667711033871648580031196366187466376998084232744285078095425789190612593530567845262892099253498664720979070122108927307241315773559972257925076694594989369760752593790868410080488956136706041523841914881944506822025439614790670561325916699532945255667888824901698873308547600621839840376930884390369328086013062372383481825366722429582255319945700741600181001710635987918365502702825420663297325342475261616462138020698140558926902523726240004108174422125679684124736320187804374486972879481246460857121890647767086423864826275953246262573480808338325998945289199070269152076591150116387344236392176924077166907167914311760415280205465261364985762110778575667507840655032561836551607832448436760864030034976996998504404937510962055918329422768170037174420075253830878959511135325050195311599717880069770068030974440844902781774009168977896115389794139521612111986565966659514929132900418150599926556392895969440007787989275864672455254228077007991273786510010449094798111618111615730948196383865258386109399480489368431599119907424427905049829254903135415953508412220916937848908626466262976101620784822820105112754630854226091064530855461760001065496597502688040533343888339268895908553420877998776928978137385598665714328841459626526979805608534437262033607074585161220238063618574011144175807253609839999399243234863085942836963691378263748778229186631284730858328094086089064961561012003077474799568180061910630789268334402335585731418940211278930124779683196998099474205072135925532887317802601999826073616620545601364582545090182349897091894181365612484947346657792439885310936426664186525111329749762772203565062117032617727128061618201887127755874130261817560092189113977490368967612878954261693451083090274041404821603871160273775667497321500117878020389542915787347859723072411482600735431613549997405544049273051814905045390377446559602333739859766037693186149599759736326448848563929274365561719732442273613703234666722726403844994136551404917848978789458305176895851196061642712628823735667744689219716942573827530852361340961815643192445198847828772105137395869619030075975727160367671134373140732502399996831300859343231735483999374741177607184541680484892004522065976121038362552244971890006390817757381977991001127322809252908314713813781032316279410342404104609095897966931783461194042700347302437589765616738640155650293634480825013199736452752197738742926002665783158339501424392793873078540969356676406227628535882449394581930998472810910443709314138614513212033372147928485763942492010117298819798661559465454479956108282049813314429433241593707744896686409014139767563000666792490862499082558552261207263113812294518099253027047533160853828790392258816344093306201599265177445168662625164110673273273570069962146145685366784454878744149124153282741623132577829074375008215872207804113397795253984843525654695988425662761595105151326377334389868582141335193922592617048677041255922688967940009329379403962145668118091233741050785253036848626224094209872379103101364787599179872005206695676715603829534167891812377275535639294691767910158560353520669241066233389435112796756989037110111504414236478206130937011403576993139823913106396504048004336532318452116309838120506031553047507448315985727023647464362102372014907143092503667442947056495214832544926976642047048878821373182129443391610714393075214975959424212622151870102560790884315104841330438104489674642344605633151373392114409330738061856597591853650811118267817728051414548953921211608076431553687634629376058910470638193908826890765842821792093075900805357531756785127273554402002301784523976441675736722081319722172880103870334010821254563276310237860046808247814803966068724051454913158866751661639737783590070306054203974170436605103204870884493200393469936103431072037385873717123926149947061625374791573610510556629320448749473231946430272137382261109080595737601606672765908557323818190694123232842215683096984289735065350906905636527714523503614506151129897188261638482878952392278706227319524062648962676949863555697809245503249392173136601075369315437386351029666927261568205484378460310382126895487717944952809603477698116020191287682605822703211950229942656897289236193164668541563817135853164607621789461787168913697921299838403637420467244370048847763042455296425662918235698394771853148529684394700959339256431958832553041228424945683229114272910270447249385843482385919008730855251354710832889202980452898978591274717310327058884823883907708597312759105772564305125815854594798403222115734450827695964025536387447825453994229867797028907717787694870133750447884248848902208178796417296112533303945625559857508813838330418522789321820445778530821220913974883584129744633560848697435120732860186562369747073569088991064315933862723594444024769501402382573373411991753515070043968775419643983871834131419032770003353025753249648476387683496394689826126686630620606417477951202885980309786681197755122891545089152509983480159298060116401070303322531281419059049917779213153446272269835444280787710674301039163133868351137812125743883629896654926993627979527769077233674370686827055617738004363397736814247988835888066930516614172654613434058820627723942475784799320893187456317645904524062598563328200631180804044152913902251886999434974133403569025615963764256950382094162357912888771730491945467121094101689219421615559272546254010835497387761521963314161878722576905389164524825201073610860697218333386207298686116626191314362419825625362716284954995573687322300680605779788426333208885980034131621925309846878124805136168833277909130061790351247776790004306935430040337462329486065990991366655619486543901813146222652136489538880043198503090650205918535090929869462822922297885460771231542405883246841379368075634068117105480053938636257189092914398708254098417088683933946854689891955380679479600060130635009579559067109530805189030581898990937688076948545041340717492759480882020998354594745568931373356474393235709050713085597018229190978158289130965186321078113963125338159950245387136458356531892549182659934628429355589643552190642612024892367810727647742275107804932071332715743955044913082035581092283135288967704205635106160992916522893376674727594734230540507440730018822576225185489548516833721973017250117610509408396061456271509348630225502465157954642794204594391779976950069238790899271834622859373457819448421557136287520283580742705980064992303034106699172928534181901824750843852210843225064163545894107463810895423334368188945186629455830442266309134312875309746669477610693397228643101759681049581927165572233000343464493562913146820169258427083221481592676723512325470029612610879158736467983847425837984786749103484465414526978071377476684751244320340078094298803684709797376943007125770835992364133257090578778115891269541857813833875173198950978636482490119535858743009950934558274361793968004968561151111695218032105541606506638888691141962494842855785082394989853954395933344797533698734604542507331761354039477701178905357742845947770937881148765470457553283581376345251516152717963957437273804428199218345611580584544372097057388838774492567194808950709695059387189003571424123163903026311718452260935377850039465470264903533235927933687742144074580033237660936327197429092204609311638938729774624423596542369919573418845047287096272873267901437388608860122026254093056750927018613742000422416936348724199893615664840629337924039397706297191643084206536799039898636489100886004895971860204603119056267916870475898085626114062105703773440627570741690964370457729303939571798529635431604923835771590973936389124368142762577139526107090540285710313267466956156227333510833680422371896867464624333822306162354394639154591555002759746408180024735903037526240637918735536510985292302160935737133350700670495405879091055272570479562211908211046802346591443285975955354145737537717312456498661660150078863528748736927291464174251022379855582716365721451741083706784362921847735237326382099484765499351745569636969683133683962912031205800195744419707222841342262430516607963826584655980014686722870352788897475020166204838891331281538380351369933199971610483237817649782025190839652730546832589911445308937012666185948541055248190726882715799929731453910579764664250151927189423996004216527143073068992341056641228734175360934031242883535042125345953880740444394640973329612760928732796999057902137471506238360414838068066403055021962367182003254775159337826470691565179084731264612957445201965081956010522415362213041440521610905844906043523193798703415730194930678514782730165683361480341377614120327623962372935800233744142582438318036763631949952661793966090625961863152374206408904124149132725043985677983113870988814804645571513787902853877460732364781175987351332602541115596030213591411112223867668247259199894647800630182831002743986899540061678232322304844392985765935505242808849145666973234901779433275363526552721718219246274944624417158193539475714799257219891182146317943468145470214976808988948145878025605882154780992553074617308831219964770112432505435491119558415906257266710571237911518437058069370544045445778560163116396156676274889755994709912979741003970592186326700357386559250072443089486514519445465290481438299504635786642054162003180261246208917107886527746186323599187811533553290713275697230540861151733588860678487845696731442408202730174202280517124534402055967321232240035297607557492286298455408535981859597400820839063027416908656839061762536421392546235906119930779064206863866246303848869609354362318601451188942995403272498423896823685667600367866853322093038859633444610099815785485646022487567129575239668920053494840796100128583423987966584846282935439757958077666047004526858837575721859204374761128421422881182113969640323508952923432476536894111961112627244519622811693331988014491895085411770621816496720137086993299612622981367000516208506670115938548172981732497687189971226380174394685048550420551220636790447349305724302703126015338974783991669330986358095146284720823860208927031541221808736463641175146202608719423709624663400963970701363931532250888346154539780670093227219553701920914538419954391587594111474515633886473102149934175188302829271244198245179022473411349743987151042803067365345923558793710625645674115468201348720278501105030653533998894213772894507977804651055663091616775964529723151964692788905164936888568831339981024688256603951666054995250456078811477736170651793066865361484278100742702907083780650616406438181967192271278421070902779010331030751912968621953196290141587288647359042842935148305585039234788170167590932428667017075012111041370689649018952558358178327272754617790155522424287648665040401290295329660557676023606968344415898580518445894514673649125056161644319119865064782039108609825816613031477095579084010511161377615415685035485008414729034587918212188624622349599113505877195667668111508925851649612774731843414058222316993511323783100101212334225625398429022921059829857322978843366422687199660069259539606367845838320449781261512410039964990833000378792335231791160032624418721897460650208168195435486809752310514656647515130570055849069711156377742420101485910351636895988725677475284217520610577283598805081630463917006614335766021934585766976919395175918185321391656473205025732721790815420426492328729891527958184508560711277765546399821564270621167739921984764085519766819643538452243547428667864981453906965659129239027269357679667273555559760761377568877028318929325115618887631519329637980375314292470573812201692886401817514160998442021388126124520004733873997461718331839306169464196351524252004744753572394792123775539213951984414442839399440222661331895958137840794617099650971574172390116671821702050530151665009664908397886958718146514232203147921080789368051815244775547901221953165245132533307450800829002623504489887494300224208053973514665346167113772047853584476635480304042330077167330097782642697140551164469911253485500948078265877280205918682381107597660681510610139007288700747776680596555614435590194740502770311496869580330872927140316411765640584439213969987031346034649904010454850446030775008292633815619857833930215649097983860936151638436964772203420014520593599236806521036446185100056289426856569232386994383438072229799813846432810931563346829186219786546532032938131059063181130368030103801594555413342385812829135877623575812858462525231056045218111445417944513496590580522947364550711068687588434531552108149664898203499420308023942476044935577018697284130825143535144380265689993704162320901576156416121377067351005695063503635787600276147668407028540721836187156779975498817060080020071310918663319270030410628800950922555383034460590822392628370730082044333215999283834546389127605083277918030012603511553671114853899065002473975594264789349221773239940596915535671679546572573384392020931057007006637581503772283783049408000553687666024154334458499087084954137043264820626174921527534030680471709011444696135921314076901488768010469557884963688509279207864371598512730811823319180451065314666316975478177481932906664904888619179335522192645207589484937749955568074445159761120542596265338849433743009763746571239708892962759431697104871137025039574931402100935540861197724365569059375851114227635370924075221660254117843927225631024877854310145507184012088883628969884207253915748913187650254545336280714785736084444840112818536577492198427544055470816341203828737846176325637874969064245137127896948318966961990628709311836019058866580781602059295099159737082246379754494388624075746702132320499732497201892490664362502563124230123901948995354181887209900721269785416511663265030321306269159033869378370261571712844489177541076145785014019722420071796867893655538808428019516928481897466137941243014719965498649421188851918995921513113103455221229860384709040696491761896413180157616189913648028813335802539871120115606674406405607322615518983942426720566566874774729698684723346420323991054671907014408037789096868888547895631459136149832537862015988339994892668497030603738566815959020161174116269101565966563331850035127879485615673304589168769964259862365532902011192125248074782112485870413458517922898946584319992626878624657200989434515805063656414322545165723496674230457824025849080537381285230897559331611161507983877829303998802421278565630906308301223744196339946454882083550368268099675862977844365483881465274578314972821308455217787222246198025964710434491293423116769973385655416860909179350412652602352503892567979254802541942959225172910222501689192380228238576469769906819691824885613789407728147543726931620092490651808101646113634252919668579911306884631788414647042035714022581548277855351412487178535286817644816970390346223763895077398824768972362092473925181483460846741949305983732040442790250965286585691901187936805617715721949117250590416653053606730079364540184887683294103805160650918380958968851496768385154112354142373502625127245399902599200218703436227533449191469781966885611700836308511460087847411517924096818739987939360615656346810678248848275838245190148429454801726914637070520556172412785781675031733834833845345049769988793020020383487123301191855663772910322398311513347813816823675758811016186998201024285098774187155197683863043007722068580634027292925017914142370971314468136412086219778586499972107370425111708175030172344303726169395859014924825759580518147225956583962447200193589793282208823802254284133817669103684262464182187952208671109226910927427551950545518054865812086652717314773484814565181389034048638283199848007867201662636093929291947717786570129269000895541562255912111589047505716608301341420465625945858761397504950789898284573706085833189677849591217163659168000800507523102666374448094811804421279456560801586687861170744953155907881044759065326557091549196654550113485356536135070425280713005378418603668600991126108733681866544727413419838283410732900256272104051382198154934736329774208582200599010308380330677976622942571556272492585343611104134800846274384641578561349450399794427094918657257110815082445604168218506657904055508119210189273841521087677917743672711374016116545407412872327001780476605250080671560175572933187177582859460861440777454787008385417982795479434139320276218469102708709878163374436776638179221305070314618804183165876996664402262173238369690667207906903100251070140913477420001810309480937700766100198121315141051219898014301043454926795050418847782172457836725739826967008095223490480239757445568027256470242034999386558377096500320379216375497109346425844408628294371396382184751393100685518038223579650103826861716189695075890549196757347683327124684137243257170760239614843169611910896919834438581643225793667816733417534998643622775982208454766588159613910731016045228621682385640461803593140372747620120981944046142869825091548367923203660696933547556247611942814215934057499096029902274517264183495763497230163342319320668993942013120375445522654204218857584768106056032831873564342501855173842408798402590627190012299361600577177166296333821104626379977860689715872287525949987177483134927084387687491798820467812624981360672829351009212878231162714729118402179352059447729515989240082355896388888128268219335861682623088704100339547803938335090880855022980948848295126088581256010509054858938643202521671561764040303428829311700522794438085242343061574417131834686342093978624528662997682180132922606283911783917279118963630112854536511455545135874907636637195446992047677168544120002541896126467532756132371255558320306981382599067262121744574382297637210889631465202426272744309027438859544923208181593463314136918990267968296757935836571958630021873479798741345136002765522863378625169699856327268264004906060073604450022543334019458989773280746758962909904671489235465425720734954550539293025758823648638224058790723356981329107119539952097748241311094293495201071061641854557100452675515237694890694549342432288335897661948373424892850838175058327392296505838683443510280264478527451071783950553544848060327033337924877101890345814022004794878599667815058778173189340858547526100989807021024713939254226251311410290750394460313381116690492461082415862333883925553710135508425367821636411569883130965004459713554246482460781360152694258533601962071979883399694996930813689499255618760370193291434651063965843138892960433963094702257646258221472049724473373519567120402879290270942814091454033302784887264756211207740956891722501881462149953620303839851340161505026662017011303558156659149417665920355707855879540270145789303767686902204942165564227421131030757995267709423039374275599158962219295775662024235642674049980036097672551701625447966473450928304898596585136547109352179207554830682357869607480913161121073988300979732215711673586784115844679380028708193886833685954313320709896534820661009887552664442498267331637529721796109907951664682275107480783088320367126895572098217394106956072297579143028472742277195652588013260362798702217036993266607708536884513221482240122202060545924442816393582531195775562847230099210515595957431285966467094026057947478508255121853839024053798317981035598904235037157167409378462065550166655636063749472167654595739927697158204627928031496091736314967854192156992386051790491382862157907420283062965431772124032934022663675488237636652129438738901045552647729209059904951506362212123721979339697580426950351333436226905665653311655206032592792686161024916292466823860017536352467376721024346202669557614295211306731215458852133315084343959456209800768550538933482373134956060282550787420648940954150708671628537878518283068205819947134697726514387021132929903097581620279840993206227529592375849819267608583994055074488140295868787280937946663698594472793869038103800946744104480019263024565431833008002249684092974251082848816558907094679460055030373183523404034220413822974951931913727776331951517244671544237311044082723244906499341050325654112321747743774189366788791169873281942343252690373628233662258967323552610064378064227305109998913963082251733024981739266465329554450479496532047476232253719580675534003761030994326034285715592473267711422070952887343355483548879617400208461862986062958144086193836178903806149703837785224924250872325415345903721617689886105519654259867279867366381965260208326337203337458271078403970757049206506009267168105356400803961386943433120452801742174466755495753531165717104699052505491326869350390507022688204923200515798184709576031443405040595223469578297492741782816826322533481531465680448096688370993043914776457929883150067440805018560418605645973191949247982862541185985822672289635709959597622262440072706068677364077029186186491604982940133743652102198912365121837051753924172984544666796915280498371766377969672628052531981347354878529449309999758237155821471271114473599772214393236780905708691012512694471801179285034045747743726007181985073975089018167315836414353827777437669639357204200566274668207357498544353187920095110924415886916280600367996949506413885958354569678885532199457628095512797253922429243620872900416427998407533450051754975063705362695267098230283859421239030908838950682501355476663131098952033363347373241655384829832537504894252098666882411029176942374755939561796926044416601810246391097194010498482169397395305543564032617618540681525721381059607516991668191935900558327216580305223582346600371357998042710462846493095723796841342791578481737779574946386841463559878354776312657081160062894487852542088305412872718614039673660469753955209698441412079677877736034671278396011337804410996065976749023005726309438912035919546281936094656203813741336467945865712948541995134498455463596250813527711563484345475724164600496955712454605078215874481647867075066887423451116797707993256326636794166808580379377012319119184958595277788898789262392107612554578644663556110987041186329959535818898018140244764678462930101114829701671554666818194613564487303497394073237592176316902284237635936373856151610738268354835626324393655451097096167832188848528838943040127402314209947462358335603045274255998016580648921788569465560107045907522360278405778879755411460687771352206725347754584636210563480849724643901339307842561515649234191029344672688613616712178773620038329233310741229349037898363769858110985700891891917824126752866132314820847598507459404011613889144414329763497241435067775412152667815315255572318400560424406170003657452919858071654032675201207646539992084021580880615818103194797758654174789048843675240639307598273235889901508957264754110816291840887800767282159329916179110267744818703306978661731598347462751451555303940376165480304727972057072336099690296829952377897250023697528773169983889349401416025918939647241942236642917199354804995133758882147349311595829244795853729583952337256372676291200660394651549332188851394264238152673321054998309764143920940715233513095801936484452968097110978242694716742443277361309172099603646337178226638963288079419123059624477046384138665632125686547442416861251911817087259972717634947120193902337271064499207537056758632742864467841912144991501888458624427635729076504444940859685155326350881980118753400480681504028395455957686918686428502716320576404866336744967265703908685669983052821230472843018360717999463736899549641718218565172096588508101432919435691386060169861284571148518837157333911745043561511943471238408480071911665541766063500703261907180824200657792399192835266015678592050902223772268880450988926629388109910932754216517382462517164733354850844023875661943733691751008345812117642395694737769070934418511456283316995150933740602033032894584549419296416106209600751178093405666623444984698470133545030875614469579005188277408068164600173257365592858074753503486577555620260167889550330192361097154818698653561589170909228423294118334149024838659872666346786347697206338240299242864551596732171647883362548711095188890436626732248789639558985624017563173701663416304198265263571316168277861820833207969630609811156481508104915972932138026067511360967474882421295218086030406244134098625008610494922267742027222821915290641311954867385344477103393023692265913527107495196189131686488546228596214430477000391367603923513389673062699229382991507226985696639892078344687632722831870597603721457731461648041454285672115512038361172017050062097152550406090400074428300337263228758559249121916793218806915535434796027857617155221569078424599112050794078501278523603646220653223980561032663896241200169479730492756112589743341402688274411425434271891009984594154579955317771996432527638711896801921094174173200349946968377961197906214970633787034141697988557998929664427600982625554832144517236865340802011710844555760626942515214358359365883197610130323956072688191257211392762091046333744946011054898886911455288153596158995918588720630340562338380054357521425306767409324096026923225205093036115997743280228103881015213006560652723555421051866834445657258856686461447066158657040464232361465034767706266972156385600753357329829906589743904812965325285538804881234222083125606782809067289614810956107993255438930967011382492568234079203388106575197358173361901609477560659764752348452278844714250074255425286054409108113631142582836440206227686179027593321243229961189677776009931087944546005275102086252937545591056286099560994888354879031368297959199972002040362329339555034619090096992556918114800724877921379732727800531454454448245496417692413169637802145639393500113597040545574839388873116876107706194770090341220184429746800062295997268190858899453008904497954306049836795270478117186928042440864609040076774393828011063236592186733799258666816102058057804485873468610823792366540211812434251984774760726975602481014499171093531584123595151949473123648677540393625077249717738434009045203656923322202674907762787414967686203015328378398543211947137721649224221728317378292856765794440805505179955787548993591994676139571313034466114550974752399564701279923877134977668394499475528940708375463095931089195614418690158696449959073873226557339274269932652611050930640602335584387377672890073814292850587465861180628581605277700594281660622150377549745257847077781732559920493523484750057619454137867835517853221014530639471912156952830924566796180731334954420954295753283449160230524994620358970019339691997752934241828385841763774066983303738680431344978002846746753403393185442964035384099195064945899836905942463332010755638534190981224396531339535064357847994624858625673497714126414142987844462324835035603906032688156546947751612280308022418729847099895783547526161774410944848976207221832832257663415581687057454871557240696737525168876251110891984429658265859094905041698054929338467756069395921988292559317646512435154943511540458550112968179483611379562189421210953561118446591039155490645947094480105102694320026197886492343521886887119706418582039666304250264528980402162255631772942144292452481717406077581518303126696532684332144304824584383617932654281470030809087021960994939347507714527710799100492475116751250267818010042578047732075587904718197073228443840141162711023082737385571691938077099173712730454271815021281037759782327055392355233311683337450500079720927044725618342902828287017646728494729005676398319785645354087276227745900188243336705341373393515692488344733784899479612085755963800016556976614967566551504090043789896979088412574047123977843820836936685197072683295142820728239633312131103126363281529740326062431001485527829879231063675331658159858406940919452142130874432471383435249814056125667329567266222770276750802929249057323609977933562790029630513735607035160595491165927131499691207155084320464475809293036452283913168652372011185792066221366115193484776869309729314765648412752161553169238468154944026665111156688701492119236944212701311541578534235039525638646484675605910943932388724694755025914661684388651810520671630701877294355543650646685763611724069147461200155970904650099288672829846842847170006487710530392602010393418151968517865050178179537496913844401867683678468137788588405365477151459267938788571720398630612414869488050060046069747570557210732301103881851684786476059536037799328597228447492115493992444502009939174547343318349463196341843478145603749628769145157775306316582224783072751470211317592255199682039072627838394592930246742207348501053963375798724394330200391914670052740036460352338043208729144918000152336999624771714993909699172948026597333453020448798804392403052078286682853271001305638012686316706847344370998579234437718958086645924266878290022941817086266160678923505543603815583031827351964185880856158168663595768018800442834686921118868014405778653484083834576685965134353140072516015046455784145635952205229747373869069849019428433248804303397516953743948572611631742895303492227342382322913113625512040778663625964037147914956418203319694738724822657127266169378488851104080839628478940198690019031890519584472068574934814389362300145085701470967233388519944486920713081239482605099341225153255104693893521124406276849314889678169539821550980654274033092193022826468667773531065222188746569541823299621258551207189493537030714611969091597748346170132843056394389051469143579622842625339836679173820114101410254594925216097831200606145698067510019707507576403039071988300639560661692021082719296355748113230531682316452721653842498592210359536301966885048679945890356040179415906572176931446611597230499145208080336312135510262083764930627328814393349751736301705500744342503029280129450960946714314292343107647220672682415016144616995162568191409162685615111989995831607511142507735175881128261489065316781946187116407178907384962178139542479418971537744418967667708021855955617072808472042512086214867232854822077150245794981164274818021492851206148635502678935952397454782081976129282023089551855019115819707234086092777507388683065738714160266698655701538164920084937711959269952078367375693910655361724358853806109706415531401759745293487562198443971407862090260031977364640769339492033492298617892717109811020132223945998820645159255653256464849435325720319163924442258421371606408677007358975385640992339694848047984028676756600731781782189536152746352981053816310354880818994230139044230265281045445019207012117191479719540545370183581629249615978639160905843492456178742953461332805068987140946785971470159442226269670675870115590264997901229167751729136120850346966774078370927548543388966427129436684935160561892797425971215440522926760043114056686285010185887222859351542162436174316101402636301490123665090849571055330159787787725719437747017931645324401936765364914563025963592251969032302000821508005624579515047578074602415027956572729913622463693671255754167227165353097744426822718277017402169513342493423643782504848725553300049204135992211236237588352574412000533144459879292306732072103393104996383824182402743188946322760747412230439247251314731172152529832330862514943772253919817689053123469546418267824591643909000757996337013878038887197919357672410551188464997184190048952500431783623047063941940135033173701687199987414790423737193161527748743260148150900392199855896652142803703721968319298019994580279997894335642032468022077693024825924478456547074354051475380244020201887233686330347331553453890338123496830684077883698533184334257628281081896727896279771499737284034739801416005702326985939850739873635033186239768818765227612199962201770755893319800196418325187823867943907158978105911110398620729272906207455202561380452010436693281275996952123402943588318009486436579513451306026272267408643658572639551651717882958828348581896653229098523487855091413577495131692425371825907728133235804944690425590594863035532592890251533445842150928008886401863687277536856832627343785249789382842284455027413821689102077758251213595594436383603839533499504541387981931076777485825595180970806528905008375914685771427156835662158342782433098835813061880415763244165951179110370677527989311109301609815145258814303962149786573950859907893724703745337193690318270046412817384371991377863918321490134092350521936686683309256669259359054720096260875862936167632575067204540478695065125730998624206132543834605476128961616385554362360793942401486906412734108350567486092288698769203014819562597917870507595908191163191785742637946170310392919180248899175791409436801319162716467110895372664462353532724761710817544485886003193010667018684309254158732473743443100136437364853573072309707229037860498744787743662633083135083807576612126916083948128403307464033464861910832486245318829333503707282027480951777366528200943246455827094065197142500744734627659007966883751405796064343830076622721474271119420186324324206054828115279043697945749589978419868336860746719164493241392288997390350543041547696244685047170282137121559625828772654120001146496878934129397009444562658261051159843582716099537489539286459690379182551608697455780303553091046448325982297022873762223646285254123307984582709242119597965414473074981698762524059561430697003524315325426666529880581810463327864204888672933190887150515007476003095442066916928483371634005549942360353583612868034002431398404775494803772536144058572789574402310425039978788166147475594798259428389885659527836627561676056626155826731094379768890567986933735492559953509592699729882940614556584346377011930567229978843778446165427408841251246602397264327301941018673172877473833773489152070273348766556326553576444037643393454366884039777755386242197309657264837291339170452058859190811154296002604357582015476034777824340470804698152234187080468096077179977254815131979349065370109672610538868568365908137320248565775889932840544024091056937354189429281989036289463477474374061778740134527242703241520494693465712020040149683992365739932248455038691028309971709999655994675207703602627594120887366275721983115601532530169315389477830675299289259069134590187295614115378390715170696581048617277395423088241913400994933382060895662089771967576646595701630783610796400295257088506633663943929772216614762447454855025661644086559604310006136307618081452503955840448052878336377209734593765411192151867788694120802026848771324774608905038993011382265979417430641773796690561557952799329199955557645131956966121283959693486802129634847542162035196290910578298095571586762673663256900283299969062173858488147973582036495545034877189942056632706023707852023625452973174494209483015761256235571195999920208256612963387785584508984349858605817351087823722939125506985596121796668179964355500309636062821519860889562645427947212163246172668279251019773792954625703576903205308997844943030687250884077276137524981975917153560689832468822657071022866128318018592985465339027894294598550453256394519050860141369558587520451058874627210162305917725773080269322659855173340065507304178435820790681259145235404746180243394079248621647697128102896480835797910583632428297303827137271503874411190766730416249633296163182553840317660958131029844880506937755057009058747132416209341471739506576110011039747431876046031995592613649346423931312189601762612528927285804673407427212497416503444938988091382882315799589040376869477463270845257892568549390696058568858193108706378235776230613593263465367575889839310258858645320876424229403880922014662022629410132922242904417315683286551955705140681971473506962759093442735601991530063741743711622529513357623890920341151718316989025827739518357998093719640742251702949904923981052982960500400848109324923402834189213276467091747350912068095578074779518675097373371544935436891214266377954647087347828470343898260655293205149274414636431551749932260269854658942899790643999455747246595849349718048698651548152328462088877833366359079554514789720270901268702027044046309913105120079666714059518818894686612397061312878853112720026084951347143620864780874824112225993123137196699073992788912903564450763861408708826326567757427646779625119119611607503391002216461063176912933932522651140948792425953577606189370469840735427216198738152319502698415359826397052713702606064650485038614439023476212970410153964703682572262526463824384756116904250033175932899409310513613691240568485842388445480186229593196873464947129556523814005782297241733468801322812623992043283185230039269120950910141472410187145819084942923718769150739757582709258929200702988149344780698770592621417242811206667413457498672563224287198396327620777219268317034378217180772412741690728894029345441708247876317458014577288734203752425671928783910709008183153319797812215505576171792885464276837161485967092259585332756216515840119010935295702867282308933856285409278585376524173749872714442960237318783836035754746284183193290363563630251559111470467658790353082412431332415145263478045048062457959197113134547497936490157317412691747949929879028263887275500523977293914521318662828352856970676603380628837218639609181835306728228312558149704286130463430323804560058791519345011690483943784951919814141857153473240397296855918509684548814246814012384710102285579543256054443287799016280363256799723358871300481720086471787409899254678297687482285460998259185026696649578814068383154629932578473330703622162279091927384581939606805777756290421669217123334015404320317932219711336822249746034909175501529147328958610272812412264056693963507834478142664831849837703680182028933791175253546490962492039255842154068719572968785355537254158568653008771798310923823398044412987705961100378812605956884781942517098272530231845604974068350399396004940492356335349701664486119407745036107483946601259443615628244856609338525647159125502145733254823583095829124143855818729012983105652334153628545200751018227551570784140071552837675079604722835595047516156619905248594516254700749792024287675539840319114220335699287302134317615463265591755401902520880067079216372851996538348681231017190032179068360390295447610722592253778456325688784350105759035768287499778921695870296191398289320865618123164615504738611779282331173691384494659863871781572173430797100237950786328687389264012241678695286138626500323153588569810265845304027593031252259631462510795004690231509944489207951009344716394623575675242565771427772681825523212582998829892058795336983595680445134280703886709861844411143293957777593961608173945131000327621021713889251991539633756361677946176618439565981513831372968874883242408687266610876890358538561424152990303090702037249876956912073599864199649360851970814587834579518825480133737871575248798931123319477392486269360979293497178789076246228213322693977997296426719876544807303614171068377069658727633663761670237323875699142004940973787346585287701669953988891968678694952538302724518121121601891549204724712710011042911482464512060159301301314480155170310238843093193312413451724608471953658936188086856604723712081748430550540869485663462376104409475473630269612591748375777461597799105462585893375320517002508539157458255036984929718292412663872983253678669357235424167321833324201310428192976405692751561312065431215718252178836339830516217362461761928995421702110723142173345926283007489896712375878964112315763150590100840343204391780077483714915338635672227231419790202982625094432509374316789768206571954210970009346985733613383851271339074283379234542042064676695502125893153232885024200649291241407432488990866464734326827250621414299490107489811426054535125347943807144332328893800326680765027302742108115612909936804634952687662709491137246176769130916698051122196843201462862529413074745568566123482801306146098817747710269805695809973080108312081679992674184690249855291754285047089161253743933257731621621269044242824616540820637869522608196352056133894725180967643786763637330427664250882728529928565862593373071236698858705369677880132553831235561764331093906788735124520328429447270094558752327483637458090677541688548171784189719819288938304113297104280515255185804892200886814901748318201672140555291260178475247081712006604955771452264405231232937875060691480078402837450934263530577371020362973514992551587226469135824407411759279972826353038854642067575684092871655779756609385446926643819070595570199533274071127759004258497732136982653014771288479068042720419244133944046625857332743376389245337283942817860877177799310779297961702148543289006386027214193910848682777398191000207152263453678668092669287068617924768484123337020957000142671140453307929498652059287121326447758845592544876011569190656102730614152971098626007223009901263340604856039504471984794694232985066948890161066631330824378135396639549201135879270001250733005410946213090384855471346699142203826684358357899914844135765676303167339220199553708612298365046673343447270518100016017001413644533921671944109140403143334548761690494126201974492457598026863364240380029916474635744248135820895855000282638415075613551823815944274197093373636769931496733731510619373228129468626176383865753690036482978997419932444935266637280824963131514234582548135650723771965007753273557314707218040772590847417028330415958097846647654814889437084536490280652827311085107741418430094738922479810481977221117889004648088513730360394765712976254361954351239624654135765398738144304603375938834133878111370841904912529470687267790927412958573478861165261937707721027670169306785115422552872003621198106262200162580303746033166197968638096841404194686372567485688438365219010355034375895516869703761594536026584587018472319775283566376919663088306018476223088883547672530224580903468959573232406784976612327776356846574533903423216097546792632168742648857751217628068061981007690026202588157061349709088527305451009878889721101035341286649989292667330015416915570143815938293472732996261109645378722866107625496919536050755606543098527884720683245531607638381557536529799536504661709984910823471877513761600681975120078461392915000151767907137627155767646206381991273654178788636798873566638887887007015496707564645085195193165922668242903000212041438676793879687922658221849742977485230147779299797724468329068213652492579139646894818703578993365323424188980596320376778740587487446993248528898030876618889791429387079678575100986556226044670550276445828806242340861779687511580289229034045501346011423538508202931406584914153529912540011176994786726023545029130173424626748787492426675265054879801959269719309125590345402013073075237876026851533228390256078483921993612374536794415233481017164499987758301687390132901549645457210232335190651047895072452672362174057778807272783164734533397969478922939043684616923832560249762417858799577331423437777470000384222674144864769747872084130232842391704423873270231596121261831404499115572290278201555877751502077500376471539328234768630682690339945743226152985601299625529679080210092335702545505194291935302265143427253877148500301273278357171201473326255299542768659852246702273309711781411368836867787329320732936758275896232746307560000020071340251691335921100116926143942789187938283487009236497411305548206481252360457678427596933056597792121904075528242303158306500457877490788393264296763310385206607479114383099120549852128968836803674395975130747305203410001760542592767330659182107941478924176099142649410597132668686792372982142191303762847293888605137771018453172690750595781781550892416516197940135678582454646015180907725870295580057663793874328666661959036248522439679926331867173543854562380983882971312426363053494510072876200460913175820373441694680853237127961251078872848091668794992012750357844828674647846636715711170697238126604664491143094714815829996376390220357662036218205531475040835567791999164182168243512277968994049717887789367534279526211741555142637992592844796770083248817460718791480439710800961189750959835566171541974729948993132510015822665019433920633871982691073907177813861249148328350267559818239492904484431362110282045668057260820041478902224891944770499485259083749897885809217592153245106615328009204272645301954291030991708886399883732484144136452167306720338972670233187464885980493760059039587014958250332357365131621186070943529910670716048915000673770469607755064125728787366194650940774818362659439079393843793654249325037550999211621603247956341217862520111292360681275330437571143760647428153542733263464700953580257425932606958407797595951110393455191269777215230131822832083954338019178555423817473246730103953273530364829467928814431081229061542836879561809894489937188262371408445259424102248054172609384163389357256909618900883395449824525429531792133714591048789003701282291245668140369968562525231885120057036554480859733750925259535837144663879199455696458856991650540041813054123409589269101044429413291558889036301865608428714347167515665539003909171727923547613290185531279666877282207979020327289770152527503680925362733550591350635040677808793967089119742610737428473177841507408119428612000314925244728583855029179157181841449435950175428982025951607198503461025539834248290231646394534207485155195722167172064960322484714951574113101053455463685103542705256969536825724936880292459490581346508306004798893334200815725119696286129583213295755182091539507966064313255200941027374249445345416153235040140519830843048612717078845312195338403598135528065617579835250570435200530664412605098020660600212339712743765981735274432209031759143357296433112847635809826734515910179805439843073970301889648374870445270076756820436076438310317994783594454457262158039145581994103060035205771112682403508424731497952907261896328296122949216900176806736154733774983430960357535790756356240806869365902270877898897427260410869361380791440974928755533918667874305104816694951359126033587469873548105897997888129023120165701518092665357744526228227280197361153571994486975090589476591907811946480941347093275794098769883856248824407457743014128195103132831280310617287978819746921751735698450234426094805099686759303457210771605623690390498731787879579159039580280386553305165000601830807985559808073152982001700098970153479743309003940745378355056717990747218002855419825572544992620984210486089820295903884707840210022994284184149951510651877394908661685246446661928689207507449446900974200693262784000512042763470866497484014793415838217158105658065433123212385088924114368033418100055700494405086153407193887844941597370212349505503752401586749672008464195004930008710581664516875128387471062272149541705932880157698477223097991794830327870881173897080941028433324674427791304647484788530866700600316714466935504545487688677966397450200304077906117218029431051672050953228494083719370514478012110953135176094163333277234815874271752243211009821943907102332053561539581543071611751968433860133743472227202540457573057911451473319016411803798601903159335146426112672607459319742522938738218347362751514495393757256657998657992844957781819534357660117296594198724857958675761165679649787797307498090592963527994843913506094499995680885062412652888873004845058067044784340928114801939359711209334146780227352385119974975077985863004791997585113129731113195227494981133535932132796823632021683636236131654226239231616586551608792425080230968791981807687988693178222273649219758341998918400355355319245105176334638919622656611033058358062456733939753384417543606576449580505339967264926930271009542719445685674777894428738886966183639667622738695606583444944995568662563662063010352853700918990131730254429733984794755064170525666510164321180182801219822458738128429709537172968767059152802761802475373130488928015116423225787437698825442235184339004187033035276584031690696918728694537626811166533235287005154819517964094284298553153148804476558875974969690623371172226821794613235777214832494094239714752698493177873928482673400766000448374570538082492728980297963987856289601169251293568283138258228337746463720975794627085278232725230828607102075281403031915334625534933626537835163990371406695828498246306671033323121836980349344427328404514125311130150164922282793821046442740010377375445997988548405430679416210983781439940596950276368402978357865379850995453352681712332173401117919766127877498088146963464467164985824498905918661022520409055742026090494072353700510248681348252956665647438009629552472323312350953172525997401301921360644361646648935429442924835292287716497748564438408613355806531571962496490936037579824513866102480888993839052714109983046569820728457152903151465559727838772246784508259051429027631433680760880108123270853225456052010691860916813580476734116763025504049809683469154077717266312331133229109262463434917643853577276200465444932481530690962936207093343681918649635469411254257213160991103866850691127215258963122701648266177168698662283782076580972046876421627699257931106484148376460488031427819184101889031334126198010054732346101340505761068059146835865309516966439700778984600295302725577513380943555979153723762187477160439613538362949719355504960850644125621719826917920083193949209878596832696203119989199683755939148447043779535857656369628730343233093741157348685589844937755045943206087380878185424154347582730594851842086493096686458823468572213201715795728595606252045051527867247736583062566288251921701549407517788072103192057557706498064245137228146336241441428120966382097721301972779407810540525398033895416296081811322387438209430985902936941544474839252273332688187580359110252740385229100066095870667774427769299317152410565271668363155381358026395255585396459847176475647254175925567912953488115779035554820317768195091053517503777389047543042149942337275155384847578328644905023813016301043293353134943703311756572910714903098381945440257589426943705088421084775417779107764013088795178316289240342714227914567896211833573367213663210498119586369731924558209644239394004433000482589643294100483201952169474246703479727759738280962570068074366693060710217665420952704651581151108922862582574074008392654135085272906883776387245277314610254856973611664115519914788683069099278661943774169322231855919267899392439768273429379675400816515660219284463567160807839665173122537267754888060628520680255184137652230510918183876957759666855103926490420018979063967829007099422060685481131746771902735622418733429634119153520113969048813218803591570065040938378136628402640273350969589554421965246932400780814791694543411219033864217167351086763343917982249975692256319159116001380568454339920413786014848326300404781798150452405236879562011363440991484261379996355875317380766688866895984183123058784488837604893975775778073533522406916738470965954318237083622720357377788157897434328784177625676660655466998453290785346734147103235575187960657063454569902497291967487996011239201251443639329481103233909110211613467296897271729161777707950007444342815224230972295246493888123805920651097174601420780436769993457348888106795890882653448315396919495171614123055104113019679098760589467230861052665494800432897252350051643620840933086788889841383006400548831691076429368551288382026249044351127707009145564482974401111139677417392855280566497657149063774191643690009993814146143701342247368763975220717441130726645181739305097771512049625969525342620377992262572159002898386743389765305880886915261701850470435395846654321749483454338396093124365458950413721522682462964541175404265160441368674387628096969323711856048224496045833229211663020201668437176099013625329578593609541304648328127455046655308677695757721335864074848157668468513373100663897325771745853781372197373268307975329867001143597342444086490923717912009800328508244755165463513479762089244996058858204678165654455863802520124823734606042569110364524225792011383471302243782739619310778964256923303938777568918312443297299778646894914870051550146223093918283506743695957946590606934164215794885596281674022742417629784840652933129846520247721698178614155631101737140643688648019303762567620610452248277527288228407870814614681953536567198949006583590023913211556234126135484602314011086198604125396810085755044615022500767567215321002734177770929561273090166250211264120833842439010674348095584081192120003041886589764162088245548128882342691806899724396931096581093900206517670419409623493201918370195497652151872034054769903026737996928767109691922849984178767730342843725388089274224555178111918909135355300216347034428367385843248956637787301508029746283412685012521900338476051355122448269790275392651020777265118047413563542762341143941203717587172623592672645886540030315267108378021428971422204145106545016523784951084571753375163972918777758313667113266824885513174470634772160089698784316326869914048540132611774935557233884410150217843115833533435873318489374380274953877902116008498658031415384918230192842836560377292045419682571809226980462298240202413240288856004301115863969863027391149053588335486507246771767165352195194997064274221691831037788826135015698189835457068854351262252678882703992819008256688457750172550751149610240462031559172418868367314202548937846807079441923825786645748765370804876426810200380728699376345905902221980311715254051970826137592892210928562304585262984569622717011392656287306981016116178291645116867597618170417660415285085073851140346142477432697146118301382083073650174763628145771012680821633179634292617971804632530898016480457003894343922310870991068193164797770792452171978769204689532517079289811979212012499756384608991206993020460799872311937860347345581013905680285422245033414219856114532726944246970198693435752708968458350183852741968056776606208223768970090345216659144850127102762736732043302225133524499036208103048940875575176460305660110103710253674397850678188470199562891101076028485703744921408770730348648263256857194686250205609414341826394018758299257814732730459919679876912161087519790414709732008735230065625400700385953789628350433657638777994434913028208751213668645375110839457419653557451936765953808519232307775387594164518482147215777456797903817111181062031493564220788218487558148566022375930877464392053583273407879441772964629422996521317172866401243546595894190087832695312471697577348480953700406156554219276790056289638819473627582974995127442691342428418216677283124863954003691030888476745665065884993855516284278556521180225130546595588773697500782629482176020543450508261531795538479746587774692033143041207294961411954005140962772800513355012520721076857948824603639917844443677942067342756787507836590219702427616330140342288034659848289271261224616649436392230702091527782593378327593638505971980848175509984943535054021849114421351945085342086345179377659484803209829961903649650713579652779410190921647982470628014661713468320116547942561155324105506395374873419914746147804626637416825693626664136746169429750905018885508993022565449868973796839686028771904576239336158986172026979385862903738961994188092928390469924376104785932148534159149490743485131092488203192167152552195857840045656410274154100879753964989524706282078074961680935674733561428590358771482274935229419164613792806433273960516181283427834273928997717714205400906300594733028219285467816578168963647282158734385618861821572796061437993423818594567467081592812720470793853799569210675154899995736205190266991778831750698420482834616760361119384038035098912979272396649969731198190973021960918918192606029471695661691550959910807379599179608357040348671881630529868562150923745730712018485408558445181431013602828853572305118757158269253478318805052598765490334851757800225132087884760716114336448862244663735597245757500145458119997244225512309942021262562373519096381200992272343086568862522259670461967682222218059222832657599825183755673102942318057804216468602950513414572057289047492688273435582549747548629282079599253778377658820490799900080756618331663634657647803499069121663591632018585552505590208094392668736446363458724562900257648230351460732967302876901911574398863574736348518836572457951573379026114055071224754863615957826546195569496775215351439282860871698388152032314846950310071747031575571508208441133428990746321110996862419657925135328169293280217044114974305189200443920349266751739172864606304080833650755943141195190562936008696458381083485443060962365449131459605102843336344387232360412263366508459841819541294167625978115836749858328596613308107586572603772278740686309589433636486951360479438804341004582778511951498376621092126778879023529347975175163496406601377761481079633188004841625189492939678719159811145151190257985625682814030055813482658401607273372266592960133376713691735965979295951313888227930897612426650011148623092718934700930290903252408621420723995092194059310284932074446344913227359681898624877790701737139560828110776925046707487909462989936369684831803504467983050557911293959525556347760943328283110251050754451417179861310131169998871975090518309011745339157781642129712514214690197130993454096482740432687006094750597589226773915560468145981998350303489195545888804978750929830522452017977055315432267794720814952839939255487280516001235469824640939109320775353389197105372489936762419169675962903063228009244839191954795781345579832729680064593044244131395308402224997612198994359357480621788187533927336096273177594081283012630528982481362467807452439408739423830812173717880763780562028870571408434635127946881012214711172611176973911132357326616477259651965478424643154400050538689445872673524312987877629932016904420055224838466177012345002065647680858175293902492083685993813241161439060260696938053281499423882312747574127674401580720656123714369431866120850159629860881862476045614536240522343049186798268359149718474394208415856910304239312505289111350328736000444674054264530599662140419871334831989118629337397734605769309852716707984672128544735062423158457324163679318505361786423583064442823938730721357074673576916886661536899093885039741296064860427090919545811497362305911941900532067479951296737158951378991022270290860949170335850484954225825851615937008958902114360590807454768592292923349997604923835175811840655308093165583642114857301081156211173297034644295577882079606621812567963790914275597318569055177266289312744646842986239444970769408763685224795663592027208507161557078638472759645482095505652600993029546039343153255648614266370285875352694525901854301975966962620854316320448543010889926554590590862110370857945878289895104021566323364123664598584204583026039199171875890124050507721009951553084633048035105550985738201660415498001178542629872885020590649652871944354653480418489521510780512821629685741194902868797810619859470114590911699631753888801780713834851748007334117408563823642702719829458867420136485771082067423375415801005434500237163088692761546254456119896630605653331955051423240994593376671234544710297497560273389918484933039376939680879771184955376017979222768042768326684156595867860208716158068213925862394348627384183134074769023109958817113587016635387610646521508007380662269858273760557348336118422618343826871990994375923557680240825663826048644247923711085506910478908286800072788396687793350163282341933613966649416046715570295765022948751731320211602234230198397817794608694014563336700250525918485675552616754667083455358423875309662202623004799636214074354058093356508466878059569340618027804513771264063379020267418713055112545529030552271902621818564568126129367965017946201708360332853246713748562852819020062562507077646564104640124673594716940928830995040957703425835003713356650053382946227061333697970030497017404743112103726204210477127889508073622535336833507858827290707966543357415916151499465721818350850286447102565551159796224038577041911253168440897852029105718166155411402812193471965780124475728344299285646527284620074375531108797694104193820201072910033695340472572859236207843813562821495588937762947509007950533964184734115183760215608083015162441599322763554803699820825370353828641312590218943562200418331038175607344605083852414345182254560648922653994318184600051490068781515765434933339445203363449731487405028389988181303356938922727052432871364715474727274432714176524923581068770641876851321693937854665727845588280621103505905677649522931762271264513703546411024522514269974124775568038368856440457731488734831231649781896287366829439649941706387737886946353074920025487839221182485669714813579586043156155438660062470803452169963379844045432224538953377716170739568128546086787549845012542881052266939228462342685790932209634530274445525865421849459891919635789842860627190078137337773684211102837931622151973828125379286341581927667981123800813768198802354937848355113908364262291053187313881108156201475722176334212123983075832647486085637474011817675056611686662359562951551203791526897547848166744292909861107106668570232860429170167337344490683187371821299570503426343938446396362493613590302456717219218413887756945158522035997509137707273416841762437327874147755481844782407895429891597516646966926665781578825713244226274465269783490465637967916990745507937474533102108468262952142855932125731576029416024286793574920468928626276739251474093312799383684462681484923484848147458498410010804394406490230545127711426111098110927160526439064818588958253832103445506082176619404883626679417266789027822293393051448275659919580214226520436062893955369006394117538526110759829946238179592634402344154060734246859083663737513764109251655053056915126272738784824113301870880956307601725630271567846084591644302812082365858905792536698017838753022087736232034106768511496239990874799768008645717285755922781057359248452263140670787107047200431646283310931110716439430023806141981886724013187013663373423984940496522605347843802379942211051813625495345612453994001063539733873700270196016089123939111943124662263731163057936329031645241400168731822621293475268293728899493508863979872129185113632769080513009501311865206341745622813011666215249256491593265617774722402926772383285445849732772942572560915388767227458432745762096211699182185288826983667064791014372145266983390923039898238384377955926890037659985874866019405678979391744917154870964106965771586362957828763976491670074274687163717748917427730511104191040894212105326512065271490455787038308918566318356203695355030958571341779836795266842111575877830141554030109144117356645791321256912216846698588561189096859749325730499336537096885950604676285633755696893446386725779015029935518625009427747932669016629463615828555901950323872205585638963399099104761518850052176609623525914621816228271580893567120428827280301654447849660844555808420000590273815520687339305247794497084608923741669963134227191521253188743778315811066922972631086607051754803995488230032546343269576307056746382269150576965197591758415590116776815213125190523796179082455261274903868613988309942439989479628739834614883674899350986973276447951350350520448832450434908152861949706568245814377052555725397613451437147833928141632946917781925969635325423381148027801979725923006488266037827426578995277456150484067333885348141282895173222798553657677318299462768369343067858463561333319112333174510679391965875851903522998079291390028505605020628862409317563104056300176076687843479863317651797770007476738384404862472889065293379474133989533763340385486236492280906976651660176941150160141998360886417705779700244587649326066448608695683130789417215383810051090616606660277516675262758195445647880016684207926538014921881131381054547703486075797540881135038484414723277207514579432172756594733831230151877027872535001056386033957188320335028072613032760081130264639937289241739855031531371967980311687242611872406629875739710052183579844375985823692040898219616115028557182617184828877214569912530610112448326072821434554444190694886572781930193085597652806539438519827458309048660389476691076245007877602990140290014839825422425915919160142430217022262431513019680265509799155397727945152347801557832577757754592162699465573584882736261150518043959535460955626833665669093021855169626252640775427606175065156884088930189920339869004043140960420424497392134513537228615867817317472973952441009371167007416139385921219218143783923612105603565774107929895507817121361268163835809846662529259707917092431651985022717695521464737929364520129932964464437733089858821527520016854341723456933705483978429518964811071026107681177321612475155538528713155434045063394937247722337773818942361335462588939181488168915008180336872078795335127001537278515136291908556793731187209594574190155992387357687543742993816798932061102409340284707054878222879937532048793342966037960511639210100355627459072910663617164481071791140507314136894925044137024113886640786385902621532811554203224119856347666871136315350727436797494869243030819346689627330150403902994775617288249557768202592989136940803168490966211656737291628687120220157146101316893907584652931981737239699675914642395218420793190995500152546088927909024267781849892594978199380336710564327634702546336279370908905716645285830105865537331159509732523303895979753377000872914172017716349831663373350799935360286715742544607777249439892366473888569466511831496322139720573047128415810232599210876156082509356827601903903872344984151550506755566245321699608088411422092414181035949792437165266962634703791107315647072588510427897590435028875493135072741221674353033133201259778473338934800752127563526125240014256960847690233764599144918012113177866693114108809237758459910579528005380353577482449948023646195902650961515064736161734742369810627466895198858668994321522209803407458911932446301974964213926671657173626771082338687479248010485200787230044355339800039312829792140194506527775129769262460689284686898187627826513100400553270320052588572565174962465210746146913916708767372334425970623276801388052171603623351366299498465620357416667629160834526198849073416095502967112922877569532366839284846754029659905978955079495757984113388486159245812440906235667923307112548039932542247605416708840687183679444944535702890331893466636780406060497697123369858302968632829925137055024387804512615624842915855392840192481491597594190974852419661095202882177589905571594306743255617158718499273387375353771954943449684572597673050461961153989359669656761229288025991222040328615906010627269160322842318754981307198210989474116061221531429119709789479783417162029285834607790352941113720552117584265007950447964286497133981742294084130342596135519345976966285517621670735625047817015076308364806328633150021208586513506207453608297198526944896068201455831932030391181770918195363585476914814370124125613782942485153178062513837963102464972045064729081628542769095834285114923469882273858983214432903698951038070376974617707552500749992262488933431500504548801262798222089586590565368086143404491309906403897160791699413263446393405767625840953882687595870120520122149946008839020356694153823557247411541351666158604999876700013938425396958451164962573061903843669792386541756077948486810999628537975402646122485531035601185076648222450723220914761674381252433901163346278376410500504415523348852334098314933304222328394276966599106149116464536189289020205207910125866833281316081404754288473975447195967012831439119210447852736849658455940414276103732681271089848403202853648655830923483570520930818427083361747373772144790394956391883280530503468209544504257428624412575830445711103288614762083525696160499504646331539976689873283044047717133752947283617926952657350928301189847253210967518844718088957677183777702688124407401327323170985267151155143314594054067617011552737272658628683889002071440763316297067536404309841005189787029936518049756995216169279731665147627909748012305112176883972417749878267302313379239200133189584812158576905364888141468240927869155576023044421604247006835519309814732482230868652457049862080215081668301878880023574786450161206142412011074368557864195330807927436993504962331623217014861637815727560100638595994361307239903604718004679934112324897285158876776176108715752045650031009043658344436797455542610014651723879532082839163177145367582918805212417768912645282815018367365736255597509420245935843993974055900568472950245232794852479353887054173661084799059211323932183393290994387019924547236129208788111696324414832690147699087281500960816504328128823308738490440067881997271697376396618287587370831024247641201368483854564666707946280382552500777569577024614873574912704959326473970780720168873022803591792927980703226002812005717494532350866319651895458579343735915125736815232444590272984581560917032407028008808680622123920199536036488243420087013176474090719781735244021794382603053062151443004034643856830563429247690178693104141998160940382174268027496851822950014501600043658768631462438794181087302083482003496444953078394086232092077609135915964744106620748521895534698809348498205538468743629764531039660427531535000920602651399799220981536507166822332181421736519982905610557187010672704548319208944688790414818736153969658296212060807013734589986363532452108457798331972781429777603981674169291487428392319950991834461124054818807064256381553078703468983478156037135067812093940866002232383681494036463433156180124431079665828635800223516087664290759190020089348557536830640501033974274889962652736879996175782288665553177151980699063264926916594138445426507898063357420941132357383610063542782646702476541867389950299198398417753878214603817407168117968645884068158044006535642784777052105817055808090526305764874795753257181542478242221233489984300168421535057375529113242128620289478017792611619196973223625762139047453842161100496004053403285315572392919951703879597660974870082484550934183836386039214852921150316272492519347912992377946512489422870358473287315663246930779683965044896204048875529623955933208435229433163529356111870836011611929113596322596913523442970701435862943819874753901718288175247841081436158721496900769907652810812456385615700277295743430941330694867066273072166633690304297278042893103092705696686972373477092385717383027382811837845854895444933048589017636995092304719139047093091253790004672519392196373581105254915927954868650659449745400790397330227077830307142268674430619345345542460919333041490598661382281595101507511347672423579552330239881524677056101162928207116334271581931678291201063429278327525890005970276502599760641793307677577403933289808319386860537312899160868649858826534811356934749142770099263250428656789137425176392976646509463780520148608797075863896110054380445388637571907685092766016850220429615624241547985820202991137611417734579586845380324403084151313362658488523093531257342871288909588775874825218122308589427769470429004685399713066603539690395237977822071724925708965498648396341632745642285879134224781336259054835689572166275430671573952615862872834292844200443033378764078739911458049410290031683419384260015056510579745460061944502072742271521968184220852063925846364497213783961541984978003599167583767963959318074357078523590432278877949636890366660890198189749448818059236365836555895251930607838286760531556184579743260946268119514597251556526144261034625377825349404013599604116238425959753141888708247280803591217169422188676649135975835507530179583065241410208386972668118581943440104330366648977917984467633086524754917273546972427291313629665317718993876491328739034968160445851572468840954954602716790234836034693131103509391392066922036639083371684843507669374260442320012234272542701320337558786372978701220329833934113842761279724841976985810986792456528637862766056267181713692044679058043232037241428858145830334214435847540556220982824207711199083206833963938756581422005680087325834845273441708740324833069102892172691366981456618573021440013066548058004934021625124200136031956372373120903847610614968464711315699599620094834454441030489193539459362596856291293889470071625966414194882742171433617976737039483556547903002189510987981219459836353580955112132805865948370436286407799673324189352931732217419894163072691284124350002832299799026266916380154167812202147268025952726415286369757472248998905400731482773403566385759081039461042617861190061001646914603482866564557920252875468690313853962744750813397478198905404381432418515572244569595319452022926504414964931951041734572032238685720325700379022600407591434749458729534525773770271566414667577985700705488922250265672681243226828236152943135416230759183984512288389365967755903501891412994746223044675902528378783910005122162249679530896098022247961188581469948540730020234184900387031026507387749283608430720743604533422624204037925391479928271568617713013737500804679243613084559013511676905931090604803706560364613883628884264927662732768111972763117787190002027209305391178996190654781005628879947243183608515935229098326242205141381661957430684085740927878344470108983196692039100766140122128910968709009583023739280376621068082510414615486378924400353422675435082068414062411838879895189065124511676651759384176237103993123181251087474937197237464227794567636023680557008827612169282893758740009920969432892369946314803395618160598184706198561404118447531923515559432695432927841790863955035586375576545338263162558148214786835036313266342627916178598590145073497591111650052458210901081180521612715307146236618395827896886324660334819336584164399037435902410215311918890643886379845061609419795843765234902388126078254873042423137968170229477706515968837549148853674215870148045222632054022231495498892912143726875603270375100082848839871455480779957773131736699625074489628734734040367290536658922052725786166961112050281465371356620625874524677549932608639788694238001638140199934886517853701775451182765033438123471990603021049979790803706217004103539529980994457009584582179626723108368569771413482901772862916821210755003330521687494985240186206381925709680961648342424204091781216043982790598031712026239175376439816428445052665053228144180343254503106222047296319565961422874318432066679086082490314578980163169696705393880636988372752949401859815912454339157711056368915208823425331626665040860075107346466464455233757168209901235406975933066531838851308282981325931623545664612635561552404056652543993205508641163877562086495298576670669442592029166083387607613568669098756791464118304768485698051888391548507784324126735625519318592310192901405522437676284005031378741323027941678857381041640469867367826686601326949263588880073345720737486653426527402002968658742513657162687855046657232993281695497348969345636806837399552600566606690743957178573851321038203355241306139675132658871719591913027763839106340613130067082499754460462310749295524477526205848518754822296833490663020579377712862108907175420813787637243826790300286032315528632049781841285680584569052780664155192508402375759037543732327318174116284945026546599517783642925356994135593556604384113358128324948552610553741230768705566011208078336707351509944548226953297387514589193375069660520599141052733242536264097785608332693400002227227488314594263076684152022231911180708664274290219577080181942554283050099661061559635638313151607210706928171985739531288874553296921816285941502451516992326249322347264107946134708332559672899950016771601119942381257559030133911001169908854978263930341175599903090418336025115628596448023460036462027613129984213279932298537682411736799780646594271502014856937226135207608469970176243947123150814098610166577990464486580016297168719631011799585393831735449279693200948000963881751918341987653545228016099255029821288309329278266096560851020629275606324022304217676133945794193324875692514450819874420910819882381200660586526509330934905358452298441376303817829023350681438765527570939666626207479776642019531468167771282543345256275729962029761885722208678587385324400258583425565821226012341900121940776228322110201018998896806669302391045417778152804276319139527773638938639906651681307014275365934186303402291566161809577749349916797895638077347176052096445919047123186220192694385198184220361933199276945198906059396505775636384087488340703701790455447884802229620992813125073299322356999439556892499704415402523091784965690220661216678889535758689238021274079185929955191856020518582325889888721456198545233281210467359493510400925164886252900544531365263830487787637507344800162746567921099302049266905378674249322903229148094636301220983366899274508084484750540518951876630709596415327400740558793106014651981969640566089193269183762701149385652074477611271912754310699705304698798033127402447813151971350054146479311953860735887059955598554897913129790926238154538997631974041055991089759984211823651665230297243788856225417143230393785505475337771984752954769758139404925941741237297757257942379318918025288043794909043360280488920877227002354016858271584709374928646363210708328856566736617056283140108588992251797384052988654091884999996960746432628797723675912283410261685498113618367561824179883328120211455789399322624344807924563527875143053495965694975323949773546477267167664343932504418933595599464674620524605408449213510403035071781710310813574410912309804233313898946321268195356905189598501198843307700680652495390372066681107276742447431062362831929277410102238420768999903931753624759552612340255950898845466369328727001257402078304281056460750249352589969208952215922870881425744803869375186790653655432823952452516378059422550087128620027286761946466163187389951651457828436476593994898124961420403537970867013554409271800628217863998073855373444696078464209008105303037862770633264073848477785439812220352054244118680077417566284388096308413080898610722454826837947401610285654049058351487438157713073615713355716417285862996752673653100576132104534013797428455627576155702227641926862203465753587508022937694732985968658715207958455566344125930400739330840297185590056441034341075841377055821032814941487688604105239347173772771570170422978170713062175170646565332940882483950678686538830626640121546969352509964401148622862782732303475901958380502618344299675161907369077546884596487537017901327790791766543465994640606846411286211473748408910524418929130957984067930577665594438061899583333887951235096485299808885678322297430090128408427228987495047127967360534364194454220836410881628033119630663281095296828443687618131185631280939107774706801646530773246471308831270958390662369228003619168204969182024923675985758612259601674978181916432210123721404188590150995855017268505384685666300656859228349796483526972202898099808256136360766709283030093163158145186094211643554989544806938427578153598165092835635642818567587756124814044401396827091455572964756039497041703669339720989946587321738626589927285100663561249235936288146399086242751482642440408335068818822530536384550168344862623810609523797392856682475176442581830586191320762682099480210874257032779187586051643019811458238971722393547755878703922729925020598313907223358972520633805554266808860858105861652031939496432258548727814193288417428043119439701366102764005522478593730442459616155557160263858539128911485317496022599060691872295743458115012933693415584914096847754403476074810274262929507206884159835252294013397932977150528093309226179503126835295236066574579391456590509417425283902555504293166028874512419365905171680075983318118553721599370210422012355006705556807697573061240416894733143508200089559051932433725204661944700113821793717938518929583780695992113863526158389866814685651054234718746957817441487355020886796085728448365696926227281017267014653240883018946427010714941125279462825477586281615632321625359375879447361349134520712712219703572844583559926783590362338460438513254151236305790379473241546436880214658100740365174261909603692446894656412375353289048232206894246011502551978413448890518088265095720738116839286956556831595070737985455253240712182196061771861206106541295667492351213320090530184630170474941575782507013006697646691944282180973465031336105502207520534421254829939294081361779415803474354806816629595089967521713151779571782457993336627400513087657438261228490502983351963900473848599851388664336999375595339554037228591069284713185369587152303814418340707756742288407627790449844891083883942237666302364482436607307910397915337092137588133470417754119758979697296672752366232457227347730838326914763658381509359518960966682903421757883584841238209719972019730821029984671075316570105100711310748334372734928715143939258713137085933710492314872745421066428522574986792148250857614644327536303797919082552978769086020894434273972067127098932901474803445504473132112832405196370349595738136153508397193166895682114702608861161053250067128909920572567794090898997017232736413579404198649429291453456594952930019827471778085821335661389251434152680928231231624180266197216832145606065801103871725668701737132700353926158960084467868016101628119458311899534172218406155526312093124876980222266169727222672502249999786371564235145322417321892217867869538766236088586163397047381522015469040331969855966515940050764767806853474424357928685434030942401852750404806417088697710849606968006253201639814857244934770702684296868684096599763722814019307540259214118781157991894243400759420003168697233094088307994390356838620062544002580149756172623854514294072143108724382873330958180830948599597673805241706893573989724903775194740210210071780187565564243222082821463577673226103182301895150268381815237724354639149133939747234261060204924713983325694396986043288347420035241743272988953827597065998609807046722284608973887520729103565382818745158883257164996355815526046312472532605802621670108588481848794951410062276814535878640363888644780503023763575219506490326623858493385415614087737194167892895571172533361082392037690732105342471155643690112516087649902896523858327482210616582695725046977023146732909812695083645683686424763894398515517813436874463254562313440216937096327332532960729981032322068523777286855699490239651899084087559134843857491121859200204189009553877446230072726796595204996393536620917605597945382144355638918341024629757495410619739558829408293757865796055467637395480292759671727964342670821389673735415046163753135856052126154401170009043090412783618632457171235942169472587690267047897828650860951309908974533957750917308007938358403916914701439480271250404812575966006633992358308823486248579794831192438720667203927383741832910135932086155383726471498028120521677664366611644615608931885176593568960165856338681824943612610103556318812420431623146121441010462053532587827156967713023480307590083379105234148177396527115321686247825534753519583140094985407927789691025678392531261067537239610974604464889475297754993623740789812220160442887753809501263021979057798340361824085815413032559645893767500620894086516045165850804460059373699786025452033414829119419140671900768707828070304288245310757815624628569963998391175186033417494123451034854935880936591425424287974420832327085615529087363870050267669178890997352415606136498253876979741882764108189913446076364023904436448072948567800455565960771931212575728888982446339675308993797615651165546256466460847260378112103021577370892058754623451677039577742243978120968758626589060507116367273900067800073094122501895300495565503837123676356896097515684787171065789421168450797801478895740939281245308160628694829171716848375387917589939880108629620775689436253930872249029915899174945391044221439522331054211920578531892801792652585909336028588532595487491051588666368592931649238231675472555066263802954632300402608447886508536842534145331909382458606881176210268101022361822380512546685832012676406143524019245957747598727824859090325657274470423216974145968916942227800490584392384345073655536180998188651624026115226583611978477720458081884361514398231516995940498994551972086702551024065030566875268732691234204225439868236592227471872086625654000185419120810068992716877909387940639007018776665833192078363737039998186972287398801411555899700969986324960265544161528268784031777210588915652806328278895848227406941674114113495691500858646188994088780518895007462847754100794940775092498637348223255870121449646633233943820601546178529838381413178034906944096286041058822725790401159983275862837855423037665352079323680381061192212197995783242782032901851083573256734437583399528258714956022319033364799298859608994159407578455051912275678712147634982284383106334836049955085285964854291148822467361971495016661792966816651582638754527297726471072823509345869595424328605717289270382167426430032754733680009383550325771595056535553925517551146552226227541737657111490236035132836690512180828375698412549011048653890478550121505054341890050765457764563566829650652112485150273348516252086105837664547492900136208502399556104928552258999140577291836615974631312548536725371205495693108468675308053407728346274006587607460193572147793619494197044832929596278813195953804048084030345732168649138313686418853698245573628475873085611405035758516172983124784672061861779164592413604944969275650300406032086008132689070580034203520084992962557143278238373247497804591210960330273651354177690842883481285095526333084297930371117819123271194695979599664416331708954719884670224310993025026000920737722217829788686900056129530648175889752462287987635056330020240214995531548737474975822170844994542636576348710412700611212746525359492911680030324473202750385262971609675700074219691312075676246293527345099228789097157056127369642510824376912965794640032573340722491440882777580940597062106009935743496953723115501776775366075998319283311843409711249400118469159675798627557422215592522343735922152677182709331911852838899633131712276675206837678301141417348533644361892874778405703906113211192423931565454171215811839013797223084568234479886602879572892829739958742345320167048757299163680402428048090783293956026965268047034120121241935122637911740664327210309012399324960113401436440322337085263876894184216071412311576973407818399448503212771945542095968782442106390121983499572254255417263162183168360133782160153095255405079019000632750336088237704145373625059230155724669191131535863690831972190547672274402821100893050259464175166878104421135665723015986870357155923715553837899258925167486450365472953368628017797615238173686008453116999106108433715977422523876421066944817063945725750337672259251968900616986627447826218202843645074548104924595366895098689634229780985568132899388361069735616614266876449063837788191853801558365730393588266108251474981213285144170278472032214966602246539949228004662465467709292702140778517286034531449032297087311755775227834175942362667111306684201967558963534991967428466364941239053901952788363713565597312916689103749627093951794760549340603523460714372900040280291368558698433037995514504171247410970617174545749560640468083192308766134627264966252097331271932497554115534962584807968467531985970400276035499880332329525849811334656848338427347705365556351192231828487788554646033928449941096993338491585842416751678517720464332397326708119120872486002553447037917481509443508448679093039074808788195222625388017837025338581926797583785203271927628053954419714055366903889470771243461537851545419946588466516496672809014412895054694444162178048159773859160747973944967753993543188923686943975029995634189415155652773759170197632777612967909276282847284332305698533745405656920801701221853997522115377701744271129003540941374434944359541908173481974703030741125024945068225788576144123546631115680158198408603185552747244565879354841745598425400338806545566446445954385067123936368902210448066958062334735178867580751647371607746251289519079946759353772930986263485073569749766826526188518507245624865484466835525297505072279990163351493296569589526462410664437495433731513545566363112048376251642619253721595800359004317894684424920538573099317183142318797818664173034958041571743106747407546778267076857241176432094996356697513061872252915941885403050608871947334467085253473094306952618838078517132475955325499521132899125749333959275046648071079268248757931525406336775924289408374053866356077398750237258013407413269443982106477382025374288759109330256390324518429299972925609732414017984745816018677320607544353774313591303641775598952909347225889006808849726661168382768354768709816694483718882018324533387589231522098502160393924632375053189962995033903472880558724495374992580136544580531399709478477860425264253007171599896493040798653437529874721841716913009642014537806502320852507686129890118749463122651158504589695353272798604332939993354220694114043190801585069028967662962068111408011027354116986713757337819074902220050525784320570254738322682153106712486911688286271105024552420615820575697213482256990858321587091385755036366445269739224893187451334231093637641059443149532050969371642435985119475307458370482807886935379375917095021840749675496213540292439886554517778442902320720652878988642057034813897292794109847000300887526914161819088148167926874065667333031835347259249258807109777484190901364755308863731940201800916731486541077513158257674068680385846258460390729685997344150367606376504143845713265676425942302663600869615747186078681418211976410131197124802543158259958483535986109748828178820355389070107930783035944786586694277238124049162699825838380234801364414823212089504346854892132488402370385434670460845894389013026580083385874011464821541426638662330094549503842383425778670765718190003262657905016946894603897966617065427570198502394942845670173358273534966600230650279458127036016532838245248312166547113208462859472992110710291300494382009287742631268119952303285888866229071029872421028948992559762885098656107741560121850279182265526636543367658543499777604470348958337787863365525825219099176173105895963366239941616686067564305076243693593299122719042768326996351643056911294909769157913742183715185971179146979161855371215887877522291859474728972927416508623283416978636236319457876783803850800275491424413579656051174935699706325064901533696754244413814749614647342079382027438593615191541545002107782986660402035078408266352695129814862229268374571724273629201229361576121854731580830717059149940446439078744900968765172011678678971939565721556304759423628426568711642614819167346194235161957491230051196976381416756797090455240366179898025342927639034658651221724166791337616551276941367188377586635482220615310076880250730142748256155774931113332499680132120388378533640771634098015150597512606994006769811510204329975511460578216826619472619052607214270272302539445597599570582752746529008908519961574815210388473468119563373249351773637463035785273980608592961690895713484746875008493933308004456179318920184406843565753310382405419992994940908964852191986465786475121940617204659412526127390283936763185189088371808415510658905731587673620600036525542977438510428181577814643155323720262527915083976145214956369606092348145924819817613788854402044341469005765549386173020414353366725583987970455861959587071647835725353210942720125221160910775896135531382824055299409526326363325788105478115482235850656121413058558212461782851635222435932784617170344585535589772356631381677798800952829754882767138328540824121155918345409887034478143770161388032111832502935906919684723436330549861849639245929662478506401433414202614363743236455956986232668586913388516753763682073658373948158380146970649580812214521843739770503934372139586427069799834021059333421054666786684484662444510177836248778523272728197326733420682329417788619736198482570866091050906804558092206703799161789265376332507146721573737115512750771435046733542161974831692123375271023364135423098767067477799011321956390950018025924038711790874893814113125799038754467136668018615710747677323202319249817505982413528980153019098509501529567657524822027870099553634607741107317135117091939085085306588822473241288238549810430389578103077793210465827788381472599871491138149358019520518772282634709760068223652734643907295209246404712977542652822438396186874715213130265902527226582793454025920616025512589493419260546847629934182000794697860930036010886361640641528795547910371546338570618610511193212209362770618101479994015430747768469241877121791192640417668582984857701421875825602394849002731641841299121420679271665718243493608938516695566478775092854459602952913118204507872677768717503990604490925315647427192366549288525565639346084785541402299536927173957844698570380156372120631819683576313736356285678463914592297132869324197351228944128205303724472186130591108169528712644953160037086520802393301323444379019067429923793707261858636012075156092997438332298360460460991549389878586174226233171338290944756484966922075087060864573929539324872358694609153063381658763882434163391155806355624262531572779058345029528261624056014578969576642898654578248753373124868391888703487335077576507918857728291644276959590090641818729307330376225535643499716732175382711177927289740557975748256368644050380511332953748588126500676033143142086253184224728693281742957193508016160624030012225764197245360113984677370193240463889705268171225539540980169842669642893310834753894761907342979681261133651183106112218921088328128936244065332493065791660608518982730193489150549039959441647115276146717899016109082915951395299330990003051995466189311179766983823369658204483551564025558390897208622955868317594340691406913621356537746679684687062407130698230337649142251841973980319152269744504168184441435506304119140621856536364407851227719755930277114459509502830277735734717292241525749190829009203197603589570976061166080090111668561972232873991656476912529440109505570190242944737662091622526453635992609167980608614628997746649825544910241314983111558303870653406664344995206175493444850586219262931713440338532583486901091871852406279160168972863441161104209048814174519094039115708205952871640269672188850486683776468058117681061707452966884428910932295804213525861029290903321694938596865953328830624908767650066498843633202973903152527251505927218310169749708929031403638536494243886654756303959760407145763894797134237306437607131059691143010773021118054357013359997436443829954898166531465161103499957296250803346262364538313804864202815710911025167183825515548108239348078013968302823402915652304781673264235800506009696199701314078069604322289249170862824593914556568259704754547816425895969629681793013329626955705495791633395358038106043767370932492733997093325972359488025736157301260389562240877105423999539451966037266990725089932448333683616828076219473944442955758247959259106243356879259840875527007999682464768115942373616582703383248314718146232259097270305342362475350880128896544548657212214143939443572210698047224028272771320318493320721037432285506941138984069140725749204955811908834195907830966658110464146894505718522631139440168870995995281321299596935024655717349593722668069532914482733660477673667177477586860026820977291610045470914017669280098811602410054383824432551487269352438882141023218162509427302443225268242288303788837786973915876745283410694538313316285058899173209952086429068345820174652691393399394429437577721914176831670075270406079103239045355008239591524655200754598342195203813460008285640769980649237105348180723589330298848755486961281799961581879588208124081752620421776753449813819503872172809589249396568722224263593872811258491858766873581959953333888585973705092410075872644648739954961257393588737592661598696804103263370762622549745120823445197885942740672978213509690227976888342788607259783616371825526775061750388396308621964104378594599296442573859356517595611017711566839275057950057403455218916066018735223913356717932396866369485643896589248292126599404569938450798857795906973628846058585352127186637540485431353528516771497297635048328244864709592895070959863266353445880068196916603855624470787700901188600745485495252448073629847518646013316553839079690849924317119192824033732587483227293623510814521953223384794475812520804198459412449817324921913386968038413740255323195774185155658452099832396965997058205890312305103235967742463032112478966001443995546028477002659196020599839675589371806980641063708523744978852314285338850337520319652532703919502630684034970480416590081016968679765723260504002722842257613137770811892550646882458929184820928818123957676710036303975815216929667879249858488001266992247916711957177879134356875346828508990240321251979497942743825472288603256581286308979568790049563036122644454281405686601393375016618517521788234637316347258394103815750935941877850522654236874510262948998529445268654000356924008145967490230530265429682446646434805265334823701547017896244061927044249647094945796678038990424678079847335380209631893138562704862340038801872887828023946188781903974110427029252078470322060715096388089965676971714907226310918505277336195389473294673023196004221701970978247504624545219742786788383514940524653525720085336474971841088251483351996537639423769208970344842741098476316009218007595149410714149767016021833105647151811986051586449578823238270042106932975043570590356609944203519738651194675399141527864351296309780058080778203465324544727792369115464909568737642558373101374575511167401337148192967558932110963025073186086338761738713677521826438963469767892955689889033931634374042523383356374346109973889603825403122969551371087389432213657739418249522355197573018092809707116790017848159604148598166532490858015450870846106364501614220316428647501129118981568092252820621715992702718400800625040982103112620605813140845225858152122737594457990712039561859126760578344159824506664821859117261550535092376108208495900667960820077566308523157354838609155308259855911933867688337949583049634739155329119893380852461065996294402850419856641728901999557334859174870671407404323274047803274245941172942929277569463360471954584902766067976026756506028059555971833104317657800637659349194080125662142953907887932392823784054837483311642132330269735555334538970583528356704493502802202956188295325803276250238568962394201640799583293671123613011096297280891750078087308695362145492591060597998548102453294017997377506396978331178702937677420578751174001821686163207059659719125776980396854202781177647151063698930494749648517512956707140778640364812047117128307266031789378335566744606046167737147629197633401279618189438363718486527068540686116612417221914281376821715688206323244318680186277437631773554321317896403012772921453400354573338187067924890008474574678798291692299977596188349743652264905547279007756328961861843097756774024558362093328691199116119328277881643236291952407694191585987001695900650091671775534920592766468503195124984191269301213894861347114603768358401823547508848694035740672344411416352148323289917301163715619901585767300495486653027047135152950499229181651528884129499941849012341522242239020356170515723055840555178466767110901808023427603442718348580197278542918037184072343119918895597855272832588520216449312199181016148546171177354189147455107719345242811626684501977216919690717464396548474955831775246614102134471979196523831042267515091727094004313157205483121795086792806977932793715734113414474806101333000797600405888853842139624568913271942104397513545965958063249730852775030487876014791982021157686759446102723124411506996917312971761405172102115066315141087554460387681577041321323182433492275239099012275591947473925601472822278905631171621541783697060610591631661614529563000968934284764639132414066779034066184947965123255809945327654652378592980653249977715915101562799513387764444447384625085973524675168006968020652702467902079638828204607150140151758715249746830036397501223050797803956379753454750073967730984598864596326809918955353770816850608446435616045700430116104234060066582682896237877052504075512990860047169546115522870634399226311700059105795788170894710479324841904268114292909801188051477783899267223854812560611096354175297896156029033825872672988475148697974341785555912477087877494305518931996499802588305760922944452406003279687207912766404332835071373468428945717913632699556993954661621537385865664832253918655887715814218941128921065643114856959873778680013772169574378777748588226186044426511098073723674981244226167529169807746047641078874664837244614510796184664375979434213246414776690375385513258435283863487258221240458088501430441416036702826688179787158998545991999479193162269015514181368509620660990971165680000034551653179110907374211249291769567382931954863722898576962475695286546783409371959525710365884252503312832965010617034328548130843427634129356413320911632346800073503288670773778334109392266561958353783290180428933857571667229422334145589390668263398598191265261604801750547656815033247585517077607719456027435101471882584916375661250797708627943914277723955440362249967659986839213291474189675558984267205835201681812304210347080965113054960932326785268519461310233157810887263878727141192940948494467470692651557233276908709616606139105230486567099151180341937084071953777141851504395765581668110667251029816362076383059337321673551710247973164422023445000074713409654813106220981171930911717386214577833315781693821057223037508009780362745235761283673252972825049828836851981860307047515792215372523416425183165850023651015426711561617031176018779960647442705335704781937060087496150036347049761714838875092318408088430077672060213317936844683352583070394646155818340807096416725337507010972835769356535676400569025704035801225056916315150913922667872247713070790001125239745812980487953209879967111022777408971442852609593562220334335705295892084427000720496546761427135233525954278930512222828181461446771838753798620651128301966798192341186765205875021752926892819689906081068180337827418735481790308029232065775351350150245386386735317254288733457324630600931779988927613900934350333151693608740188993618160449303366126298541021136289316728486129816615708333404376606023780893596280752043872223647388755086035042493930924966642930103610400928182814999923805750186481903790054780508547655787293642223764200459346756162456775046736572855626416364113625988191601247372034990159539936225547786520493226366356837847804020847690732620629630945081254752543594268943182099738211135927903981703891578370861610059274469577850320520348107195676141537304279274695189837112705203678483948139736113670796792797840644128123980973810926549450750039159367279052355897899788182631609755501799841935368782109103628552198665713987443783924971295047360339240386203355914994600961056199060386865257252003523280890391899737610774286270338488063029069760704063397589714474708311203712049984728485082203033180033913471642433017518195438848631527284723381237821418528313702044141987143640212870246473657872111259071781894946443532001020795184210696818711918015301375397121700164744873039490828906726516344191366670440597997283809437637605932680347290273658853660319296683575354926868082397455942033127338424811645953588003158051348878828080179364046243630643607947729368375702770835154281569269080576976186515771169727012409348112848660739610522055975223201469039278149058168334102479844659506879696637242492047169254165049504996819441543540663323698284032681192623154271693122059913877054399077384202321920892565639723092560917538556552007656822742171431826540222915333298551258893740918193788157828749051387977714065047541169983757805262340618272762687476039956511443313656050612162498384704139105914078038660529492301049758697032045078593717587440976080599619667848374885307775849640163662211133503727630830966928809767151655293906271395933185747197984138428287000056323462679179259052393918594462274401756762384373541806776675789526791130555227457602072707078982498567652765929715574745964323124727452371319295925728511595928645584409938110125292032364319485847041318387273915405119110295459215208256985691886748955431952303090118340725307935890220127362954876522966263721915901164886994348538560349037250646616887159273229400899499430041487969404289341038468385750636415560329252825561111689124493861290687961004031140290863449218789426185272826920650504253998655672677012105124664760878644592904647568548506027844243007217535671233449905829843758204155860666481520283264001457118091741549935180434977033259407035416827812192757277602623802538763751855074340228805335780011149080236759472546310444064515044978853093305608368319586990714255308014387095235841689867528504683234189347973955333416352978998881922168618133823009392308316285710835564264955898362865772605899084823197117076402140909907666802188158178715308508131584771133139462628530081793571003039564477190315161145236981031435896678019581891987210141897745349795241613967163838395248213618360829645995225581079258474094359929294146943393752052274715459345554223759126864398515714827459094373000477674797999473584730248055037728869528097405927319023141966262520467073954846462820153702812283721101975162517367112258295331937309481244530610720620025923759261995156880790161161106372127406874393797906555686410323146174731755866539709491318078953256482214560154724026948262107638417910643470965079836958840558556416470479802086253928574468683832403348328512511202389106713371298702899488120146449381952506065543907711519923088834463729788690843668545108591796706614041851621597195810536530932773394686174774606257397725715313697646069533075126860145196476704954151642534208070330388187543094683712090884129136606051680816826638135807103986337133372907147384841295895434794243611260768646472717505917551697031249666288731060058761558548147821434289449649886813181760030718994817261266078825984244157914244258259775874099360976766679472680684354232309504807683740144366076868588398147476722095536328666218593823870985253625973459968530159713700784590886933955256143189259615773562171652815337758046102996842470272532428772176466693174921412925970163251500035149473905939116075859613519238222546397141751010008878888498897251110671901506627392620786262588502221175929717798242463656410909492002577775680378005270326986679122942753197923796672638209201703699838495801381649838169196374731115426715058541437264030778748965878067978015313964856877184833483597081523023802329388760042323956231353984425984472665795807758685141125103370198283612458608711824473450546520051165788160054322598293708554789021754624500091036976810438422576961689677296529271941365993445958123705413633896418834809283439234173470011801115563805257602015178595033617305034352275001844634405932726785039310969543328914149427331409218848847270658057271391309844860731196170474391638454425412941521787688880242510525480969735759222020979094405882652179343624401513084748554339700272852327817975772555208683300754233173162196878643128050179557344749725388087732615348625126299396806980847287532381475165545892077833532514052670163197724984703641825346993323841513619293245518873856010708202207511944241309684109515926248615413275446008526271651587299974005748645972567789943704419857446748307911265756165237810119667025246960377630341743393436592213370943646463623222063548520416039238050430524421363640305266418280632399207843216982252407331188216089863797865681108192546064915277799844883662473644360047354607798939076022059005294169258664910802924417537295347573029435858800737552739333911597483795093452638841033766836330430811211359321178048124388141295844961098086922450293039869543808163359234517052558337702222027936827786126141708439562413917030569056842964102387728813080391389462827908824608457585901942023129393379515021671738207613663460506766018420734504708556416836533963637633714435808237560289026650857709324358733694074731125384470453888795482065401286889030045544348291843094439816452705281187884752873151345115632275422420111611151452360065028964481577072828096289025049242959031307308638136610225016146116842287596688260033878701114683424094162735627798605984643709005589199374193491929355708612539531747541394127893479105148668444564581170664642896488508955653527390649708735397262327200654963129847011812342237338377348700801830566190082254585974458812533775576455041066033046020693419501983520306675840895535191740762202037692170151087989218746105224470882045566844552777730237626663899619114344633780999492291034696811133091890258756959714734790884293950243204177499781829566416285255183082654543237071913044529444235183533525854344732935859507525510493320857242440897091695657772078655889296772219673212674558505128853141857283755781075373217038969001660677955740428765036404554066022734188613432472026550409730231808164850168760950143557888809763226892958437204715651326289298941520298302639024111905196392240804025812420583004977304364530297458110546855806000003365163917456088453215252015693272162590002369296818256640838900881821939072307749946141761213027238725703514637992559633799314949920387072905600566435202001476494543667203256432275802499331980067764425042843863784102165004284439300396756652732763550497937759512130206634391396229910366357330840572842893490996126959001414470420462680617463096992502548329091703746435566860258981040417486942602616324463968670890244145979992846251825262382127138748320658658777617304575990529598855558727757196970820747512021846567311218577559229079962158514435682461389840440793145887869185629465428182184700860028743575155802264820461274282938529510588968970915022243023208333887284298974994781689556463662538700739305339072817114088292651419876942124027836684423702279863924436844473022534161925544331101820657348579858020914496811544495302680197325519145198621729219399470400846024747228263525437463146833356015322637260839936526238337450978665230683314616195540866873917254371264524492012996791096014015169090627090068217023140154910826451414702239308363812280825319421741482786755981959295044058261114359022792571902372082341186908228611827333274439708315724783815200868950171977661938946200126161229186228193370183433801938803506645582226493642677780942929054307936713709329533132576695808270322961615999016114345232807206643817271539090026904692957576514878091835223847111070466741825406124894096848902567894920744201402782880024023058371607357916049757770583996539197065410024650244677534770490549206034999564477387891855499213444425758485026825114939763320100521935520480393375260945320779711331978107725448723373587499877076284838352910616925481057815080895321454813592423011458737250674982599123032837841336794323494170239953624302487001397532271247335398082710756002839771681967168307251992947729339086421304565349975218695958833976170529003247820607741269366297199669132710466843363737144211931282573145607853109632182565900096498954515832348045085411378510280299771584644966810964289268986605353098208576422449340243623269129170178563015732945945428166798050130617117502799375320671220041114552483920912360881284230623056194097154780634680939881295102679956171535072084816065385534451286045963698158600004115176446829273458154302613877920480339181251070086489839300300093916539798964362352323556012012381885718733466282689217427145024215115414794856606359180391458447894762307048549486535512728128749711054155300647243370879658451619454213596833014648507651054060190901757776129473289045175707917269562534600925628218051923757304974918991505818652041167866355698812760933927514115281638572113052384030584860413850682482605066784180747735801473574188995831146651475201885031487463347665101725991127643442726841124290859021922112179031723914576428681768790980164193159215023766699086328251092745779051969874286110742926523131164291483015958864173706109870086116850950631645892443911419719869517279883449703810413540998219660164836340844278060956995744139393332136719118504986308672503566297640145221796459784745847042057277688792829217462398118440189400751300516236761924188828794598101093392352510767125141344085710415870884783680882395491015032148458544579905113992886014920493202738056778233221385866275369028403788243561322966884387996285775135515967129441826040972198788310683952655967471681008101656389683711358996850704284885530145319017274699119379140715041425187384714656199338293571636843723616501271491975950495588075320129609438175557812061369875418333560065562055870793554234948478406943942792056610991584597884865707375333220970172636900835111820678192469780531158196305973231752500916643582644267241572130996650041119979626185279512760650862126405685203243781542854044184676872116934544877876791400373744367177186666578019764179651800910452660561763433096023154011249891780333066175973659260881695803267484430362945219843607656667927317435269201829531068275541315908771358192197549807847593855531339099935908501764809812285195949512567989732506477076807135362769370469277623950336292714579442298276929760054106266733247828462322424833148890026262781764930834218337742004049491342275303205474364394191540764879270713736230998163111934281526175308509869743455825924228462332838265157588484047789296921016984884839022893084255910851968344369088447490874843385041973508430064160129980530207764248510980246333747267788362016172728562140614602581496071540338859477888906904564228621249141348273962554873384890821339736361494213594415026571679741404082225829098765550806192248668239147828780432297582530746395448920081624099062385487830190020870089453523397850484794281316808276062162582822753574069531676821561012692993655360659937970277436719426043965961340383640037516741599139733890605188490402435430207473686356948398428195704020851720326810318175526660232830653801140348424078354322271500025779796294242534873588808591072227351514901554249493188671367165662754626976592611242957856676636380293564942003317382166649455443030063917183086131375641522955326300312096966340401762184339928690693191947046353332802023482028970302419508912497076177779958590086451738625733401146768272563978784198994946962155632710615130664615673850271923969336504269893243610338141438857661404563277306168720363340276796491757289443899166722038450349503354100136439884587946802982417229992708144949606752786148268097363709043522644472191273289960493329135120696120376652199865721119972199839116286695320169125343656966890607768287734354569066125763243747216468072261162020452754064843897215078325688315442189686889900312577690907940437758048229600308845560579855785906561728663311594523285148433673634493275712975423060007320483499839466303187749719344468327723033595610205377702051831911144043713957509117047669558621991001168320535105857689985398007215782851185993655106709803675744350974438180950195924477654006365112610100731740456213692915584161582040224339466067318087708538734465426334532656903838621320649340988355543094322208453561476411059250987675480845787587951732263718225786142999844725959068116395396869340656998989032299569745476916657557596651075610314022863308096635418898266719770623961743932996384090969961558196713732168692807109596207995709503460128964245181879514488337837696518052124724135805743287318593911099139264210922716831434725132969094815300198320733043685685816241647926307520955804698258770475218411940187393977635192492227279980992836582402964132042445150276651841109222320745265244630965020981222641543670505224777251958370063079081820457516111150613368380397691933392063198436213213225345189183747122522782931728935253635429396704241078831403241506719192221533369582270438882669637650551530275911188654266590151385388802580098456485556459877026345368825364074018347660256461903566658351011101704683850753830146725543600689921582564897890761700492215938010944326340814109106475920086539462475519631294239207797815416346064601386702158046248309224204163354389514120972554107594833046092347445926565235695726348898139336503649138778154710978778777510090711995095630642422842198126288314462490770570994161372020074402750287838147183349741393057106656540636846031232113698369420441883698799769641629693685964508094444360997152021428413099634718251612947566610568245426459238146105286386530282796773138325823127558646545695518676536283434399607555464791793066816313873846560651445994886967642966251754197343136400605591502901158085898757062689721623817147248221409149913937921280115023448191163089435255695092718492274115924070689621952331763045577671825967099302443638627692314383483113500946323976247369552303718615388883042865816035762709720347801722060077303600503601842608180428805614465140961526843992635540294959667301355357580653675930741736230128124415717390362518847970962182004080574408042633032504688466058668126015490834280452689647634520146140359472039983909578602586856797213050962675932720795350134301780317849141097040640258774184581539806266945839731117907394364271637815613662479014168549423741974577209810982463791360750887515253860416710375147781448111260980587590757857877530385574665251613743830175303435513015994373790750755272270377384431121501620755500542820086780509734646102490435658856391168054903736145642020514241241943810538163101538685529758115978257430596484290206724183303969583573671222424754646377563444515713926587941670770933927151623678260911541290050052062642111631496521687701767038470521259872326508566910858020275505200026012091802174773326007751974041436571655133225968594178778878659207137364572333749134368244880512589965402352275261367153612593385786595686790033708944910248664538618949259281535593319823306241775825581421807362730885819912698019032475317499115493228082256157121496101994423732066280582947900180334539391429132322381254925750306503787703630957736751771170943410103407643727811395294790384174660169684120512702233209021273000721503962628862213351897763607591361171237765435404471038763086067513657107918513276193300123380728241521900224506775616097807495078042001564343594601682330437181156563194729260972595820324084218925526383826451322468139687420444914775710615085942443909335362504629746432808740443027324406416391644978632602395135474444451940170213686810194146210819219296960706591986251619963962754926566072728264385912536678481084181030423987327471909745301548754592148505405465137083232155807008381903504166503236644334497924223091772737264381443382589717075460552553515284083751399886406132412386198621649530940056137643578759558404761316379622138088325199018489018258831888013701977885287181831450585360942875105706365290858263659831573171186984546049285841759436810846002448912768909915265036027751929496568869580200672758243608425757885776078123873710949249400646506325034937349861465949319100161751869032341693044580179665231391179191303307563776955933335259081217808552389657729094753325178174440862367209248908872450301756704098990477961836990500464212626678050178112981161481866599171082651273389619896912552721472871059137117091642741197642859669741551653846245847231050980781710915776004522377198167528411480816619364189151711205714457897597381092509335790359279756214371022629852810094289405766519944051676356337475859258344630621760547749524145802509396135670875229277617548650315908546484853275987194942585926102524639736923765062476437437892551215905409101209237885423426764618557519116883546470769357363041349909646558239334325457704710792020946203590195836448717101764457031176339996256043305614812524472723189921940795002060122339389145209007538962017831142416129510149597479127528884013643088538620383959794598234934628597359193849379075702309407532481441570106309498865377467391305799887000662877226496012821453110717559200176335032804954262670228635079756039082961779340154445402800521028544337962741319222443804912740853959615310684782881200830380997866323417737039265910120509897403329454519039556308039322289381874556973632144910252801641173706018165545939237815886500584520499002281407754169508082986601791369671064082442818709200984774070986854583060630516106550289730291808309997732966064394041083078601478023421162377703659923399101156308897591835413334652992395492499861972482121350316045369002368364743624936844239744916192106804460938966605143342369771334508562885300936740246306001953795858325421763282283773679857504048548802818916366541113070914433519705972555119692522502640720593962028837072091464348596695708583079470556375015007399679472641516962938409918679490105765253100453928677816083465220266991105734991571852520766629344404519251080771292000158210410994858242641282597020137006995131953221423644683697840913641839915175029942326258179806755432864600666606512862265048641874654015103949019390888648608919026285823555176588890083950508336576044084236351347946841758119841401900301359567247025420951558215657313285780449357084174736314019337926247293990012859216659147312343009838933262987250147544099104157927337362480297604806649000228819280023901607232330826206808768803014690392564858572645001743406390264831460762315831318767150257833987021632130297591383042231916756528076394582738367316080278530150590713562211664585345674316798146938172330958507953726634535238913457604405029283242624378571180730858290297552764216124603372629345875040280870032997424011103448859678147054274992350026535668786398566300363582417138728638724371695842317279207872628623400477918424918915709089417395673358561338060161671640520823803008986108328261907702061172514901563810734308965358178621057285294392055710482184943322222032866111067400876295443717358653036143824581084019865066887566138793648887620910846617527569814517806547456481812972239802512428263798170881719769274781797108833540718986927883157552092960716003907187633315838577603671418097135319858941655853589315343908144205903025659366371634908563055225638416553261449427670222214786293304172407958977176907007555267184417688736096238453001766427668972427881872516238296885797968123111043715232805771381993202715140339148229349716624404024590683720459295890031886046269914452849701971762957727140914555331321534595342836252511433615915403366452282291658123152813843780765385511827847569966286630847805734083899267387902767980506466184751683193770666438911973691652329652100346102253931254599668971593030949556345586651058151962051116458501542381481120664727244078864000887387603393736730734583543500250608194516162878351656057541486162754672294372482047791488144474628214351220920909969137485804725236370116073860428622211638698271915642772039767708636327551635372212617710701008456712493522751918385212390097308625348656159137441985828279194706998606578041660811167824914663807313354245329703695716415445853043634123965392323340407691616058382560283807408231600506441784744374587853347112316225586868127808569027555085043097470419195750888736477692750904978268982118230436832553489078176970754919645396022141328052407922656771909622196149740966358614353157690701288836201310576029636796175261238407155374137013466599843151693910503798246985924592381308078280323343209060127252126869305663336956612158988794001222315775998112465421365563153015244295385054089945126584496438782596561578715090801055141170067023441353246018093157290052153478079354057930368109461200417630303597831500544055649422407227833247962136224721265493669022990702282995449275353412104187273995096304502903405728227538463388978475901975469555693704907479768613655538357243740238595808172878368078183384161673811107321154863730283533705087893032300865212058855525035061384592764087321014886742660465800036726404783551234985097524659167054757021805663558664571421706063096518355994446294617988678608098255706983992419948548635079429731173286828444509530538055350464932602396063719782786414283654863645812360001611606788464410341749978201178122129541914577725212014155004698326613215156736218368587972079710529452066203930975650814262234293334100366363937248421690812542484155965078365766913206024520583995547980905582889746386440522422535188419279976449368851734221393830948501866804860854918484148479072276697231671965982368889443510281207569531153898820950684385976177653286486592620888328418663061684008892903523094899395722711126858824221082876786656985458302991360834941146640041312154537805814291020421361012831928241132055606628359569353714588077756648005292636741061585286600675799713957240828313339003764494655843320606802107629799906883921075126519039859064879596226076898921590449642585078345576182564250215378506542548512995795958440948229645764757083887159295723325112552700527439374314768733716536343913792372615795142452133796050119957938666668934067501483063945605794203551018480480580527566914466506004865986825710368063590508806279096922845685035367997643363984429896472105758937954504620552965387505080354264210695611229003900966868408948472518938430643504836563117910607177212362872096882419616065408915633118724930225062360536771800561556821566978397557400987413673939758709878603273871338922830140212741932438001073066963280904692704360107149628554868793559880208846131958291189274326551325427796060904342910974414309588041076110934292100427964499460654352430260391576757356686956922559100637196643023337048625084697211750190968930448247439603767961343254940846253703344346994348881519723990912972097729397225921856135354814644124450429815844623492745163394561499134985387129453518562770242722783444516047654213515502135775072047089540165336924130451780209355686669215111826437687472462932224551192078422631013459768756524506709187402158811161952075768159605441443632141852388553589955839285586586063591261166941412099428555157174152282083102276233753281009858113302704288755575216310595263595397303803805193490740430970443843268405575229695689549939956946381571819329041645288181135099379857182743641051958152754901458092616793983016221623829648374602486635482492657174646709790737565153581382431466843199061902155896406565428215221809743334303674675708560865989572683582556904040253349959306953345178313422750034972526441207204617249805761901629863135417533302283896730113084970805908566300355258081151667334627600256137718571054594925555181293756710490233082562988251494196533652978291697896622560038015850033309439893346246853792053397291344322755869374415285728404750853698007972649458474388708100106579217780553214608852027474961093588600327369351426191696257093243455211261872350292281179819581343096060377483845126942179354926922464944494311385054364860118258986349171784554159624454726357660718782217615722273430630054874369885745457035956269485943482385947707076024213051721497970875292783104190814326053926088499757474617042516555869325405983159921819157811945576520424888981371745322700867252346006589100945297438747601969762104346032234222389343333616276752165818530907686713702000925594982985533747218988824082224500163534599142794155981040168628054542086975662016523994706275690348932182462685801653746950655120843315214153866921953264722135587775656275259585189789035277244155174879768710482215451105401077983861558837255359998970354056459720285853237831029912248100236026117339027873364875074977843532735547919485252837041707640768719381753574918980562215075595283245421733971203239708212336842079719029275891480884500392055206309309371405063382645116303943129208782129724424563584002493263180191419891653831788195415998213002060401120279646074763398045148657906804982867065123042962289849771815287408700723561967163218687307252703385898998075219451147371342832147096640793663436454303179056766277146434273610469462960954110893410017390572824891819691688739831430406332060165373996117674822775831847266842432418226102826681570613154585737384670631602491062741071213494194817896807842891273405392005653813117001364941423625482248718690667280528307011528779715961520321628460289560198722192050729465773854457237985801611533344878907131831745471440117866698755776489265861598444157601906704240737589013829080722079494559970173555048535033821529330974273990963352965677672075467865824162985415519631842519068827419412732748348622534684204872029058322854790463701502810772040977429618536275122347158278135974673176983131318726853123118420038157905022119342125366040551414471618032883569476690185175062329210939759365465161439024101415228967828730205996589223784608214056387633053730207335367905546556940251829677067290942021638280399280714673918828466505777094908623985655300544584822591681962322550772423693691871843672810150212200248325642065094189608948704939601446585723565937119955928438558030576117093498145957832954213535935457321708060231957515447937659160017841255210218212883005346404460489123537643690250534088004781180951096070956386978234585758127365516147894118374176680739835350585466945735342036278443190823678768685029865357909507005960491758694261111113844003894872458345768575152932607088793281907435161757635857969458687045824100976692063318933174856493006403693426395380086965037112309991755587753503218212325108981422568587084638759181752706670336134107203651586649096127045468278158457377523604747708352294317921304762666895558799641204972041093019685807165934367186165037746963484603589966182124067380262597191263578970166510665725979433568478959279322270571575088811735874134016436291030361685668682669598231034307432122176405758505000215465939345779268955275212828311994480503066592759745731895730941163613013436736056291251863258037834934976230530587375631564956989102883019157218355021305930274169404216773051935793923541694363315966516446263740158464776049588981954084248393328476005189950564083195982900238271440991883085432610884362166895648666278778650150392978016944213060985318703315422080690137789026295547178759597840177147312039227658338969445795378768877336268845611229777764158612329353097001147643116041669467600769712110115263341018670547713518292355791929872484653333636122948932692457170738842924469930967405321611267018477750915412283646828712880681367601030182756476022493859837587129905728241386188565326515341231130141447333050490402471745423098580968337834334404647642901581759267525098488540555923877821763145781471728371741495333966287792116234386208750224398279330108695738846253077669890353161944843103426180781133377023889861635581804854441148238266790916842058165372449862520360628171632034048510829697814546388250926989357007939806513554363280121806742265369461020788745301699626924252894659646888842513769899567592069394278867734061213375686938364458436282624441532646877855299621195899240952940692961661752118831207438333324241930290330868621802592211073768424243605995576340942681479378631685414417240680165544877110856327671497495264101197389667278646718960974978889291780625852682615421264132388846951453298888290815783638547161053141729297051443673132543976669149616077605810658383597879526234699173571840291704621838282708269930159778770439318833466143716828468345811852660978834928686065669405100957854942343457974434061421570445916231456042663295883134465712976973685921232950730879858786582715954899691481855264283123703799725911065379121283586328386020117936501918759177304152835061761242621693185706173089701443943520841589394526263643368595190290571668146173713651688916356363645655561517349786536574845086729786012289598183915431077653654870648576665236121265644002912102399655117692482349307761386979119866139800262388289485059812542898978169968986925625323635804083094760627372401747614454986917138335623913145385219021679253733772551519006997132754224327092381540017037417886934902245355722224051685635459339838527572994491600998290299869279133442016534354380065926508112775307790875415746712187165310793016881973852853378771521405080063211592250823052313217120562897494206330809009277813113084111027195485907788965168857140356686285413724961437892522551268068007531701845604335096837229104700804907217361531285085299173200812890889203764644210990485574012571745817508569524068518333687830113328323485041139336562865099661592715103613149589607327410551816816363924183007210734024854620026595426346155671925208262360438192153769428642018554235483982961131302100504964207608386359234860266846820560482146239775608531002842870199408935149663398233038376809792683066905606462027555821705278913160745316339726316821560215682264457779159825583735346436651630991334730338832288106041027188244565755890622651340531122266022937697797012344800500692423771732839803239439931420422280605408357708622133316808904434201090671026329737873238763217159526880475967817165263694462504643556153209387358562516334618298095048462819063265834736435375929275564249685766063873755297006216513866037034987004631612581723071855232542151979378819853328472238734334451690970665762067871397327980117495031825281990966097715980170760507044038190958318596716825435763839836714378744214109071612148055578776122429688309541770795712271544189281542128276851562263284721880971149647734178280929071923956007823016686814190108837604266582614867817436269907502474159350858323701650167856558748179785408790090839844399410035163021511004362982685542261280911932504101719986411921600244674566008522397224137175821640985522936232681887569333051398952200697667588463833989344271383149608649070218594513010496652845077049609727770120919812046222689955070413724547655888474921181321363513433033936046642214173081933003227990578081383744415228481105721409832904150895118090936284061366244655505051806488417614693937593186856805122155532687161186549804698746291629335166142023845985799750379281387172030187431712504552997724561458342012713617949567077512687711645748178748239000703043075672886167776075195211954413870574613936782348164068079446487132564656904516482755115940863348200965618156703459931068218022015120540854834494400139400795862301612649789789115623885067118267710301063630298070805143354399179015383364028486021706110193720589418731661193557767700579047354590328762697210007818422883943522203953593265728264115977766561266987256574109661199955571345484812557521977825861953215762688054234863085786780919987632088053141717338813430250750773332291480402663199388896383891336493378014758095258389171767937005441474347814078500364929462913227701796841008581635487984686927480006579440115038610016002108415902039188652663333672771307767398337004609016070908989807661588152819262805805856607319863753418899778804516967150187928608167215048142479161194886489106035624723935720614507910878835617813790045374178583083399976513858522596299046370830922832802096009257584120433533738152974275905817206014557956285059717951085357610256247867622494663832520205893986712580636743630696201421367798770813776539546654430076856973012774833178469859663546332729420308959126284025340231091450980925336715809008701064379224747077186882132433682103311959415821917048728940492986244295227148782781892586292991955782096949377881558540688260657917666837960055784697724289603996107467729765092150468518681768959003064069513602478027871884327000284107025489483476396590481678938406571266605798825251302810724250225935900415733810498499951774245792267930587793202574509278407752420714432322272142514253872526310749242121787305821711436677997743864704769823656362324952494628958342268188724607411958460232048936704675456208425959196730068934749979242098319067928779231019720432778516429916153665955098663278413990379415157236613520846688747903719496578966691019694701657236399346327882794862545347710171980447672906237884132690410167644663820248207211830518391321518470060501560635353970598883171115708207055720452083111397761824581169575176167054721701777722759103338635365985903857740591839122467243752966694471156597424313020313344257072603488491759530471705121286200615456884414254243924048025250427924470684495174123538190216152845089251184436462144187058088207864285631723363830616900381386331578722665735194568123447361570061714692063475601902471908846296969045729296436784690834761229123349991578979370088848879524373786898005009676625682872225119069487838707452711582588739107089749035188044425657571211333137334077614834444795537651106892834472391652110752132184627242575630317311222764062781241726281328024446402131551063661659905635985114658120523018848541226373487968963497355142198523564905992895121467122299273601378468684345851616519024601196223106077840867751507101013566099156306440872926390454918131938421094400312883959700952617741256343512515813976758513350835730529384153406627347382446539343900636670878616654169993220758872717248289811326402294391225389853961483866738233468851365747189579993785059361527795433610620762606551796355413565584286476260800919241908003732331420116773102031125537111442123928846340315557398351266129779401590805395412338196686233955444098731218304777679076444175728513184879144764810365697876124332982525311735463512663921498361703146909435854279907648054716990150537989417061135796027845707706807738208512962433412796778295947217079610079755280177706912325863133639960257549120291980267985146634882681497426399594671995433855128111433390325888231718665406157954464218634109895162439543499553129508250269619983989213158200962584702706932163936637989764961021570140413765619611520901650184566833577451831862141591996518212170420488399843062755376588233137535422237821429510605106121119210663392198025228069773847879460644689749650987631918547839800806046285368854300663989961383791772324929329440058110887281915699695587179670842410281201568165240878430350269911997216104111345959733842082245999210451266459931445534100280430845610154791345101348154203310539451946114667279633553605237487685816356283503257350057638885048969439162843079138807791260082399373039756631160704234693224297884356742297102010567047122455328469583219029379356348399398543787024349004633759791057010619757783098173036136824750682882070880229685230667318397910008173651625498201946607457127802776298634025830203211708059213043715464581768300165305747737723252491798737554890983616879538336167342072866529462364317132723546071270866988676699454398806893084665453895296871712142550341777889681476843306188225563327571633748396388517892461470855460179742160855380436167164405926619170891457498069174587586737480424428521574391218106796923336709117635933024101639810371805014136505737919591838390433400782310217910159388721908677369938891687241777810636964625981923338145024740692714005590018608116596298036671528119388376338537026761773100822097652395419366456063699773682115513054946256249561731412702038961200481500251378732146057379524271004009044876879358639103871672827858949279026206250449561371207536106917784525976410219124121257066739765813371300933122110381969520676507120748679949709401692773805182202769719641549405447545773868240447918102579663747627543199999456916296029451116023166244513229388193979286236219128578124849681317757616612119402838432171752911755579136888308031824850608928276995560847916134680672007114819524647047965462459645294522669754188555266638929728988795711260567036767619761525060051813150055752926215368471909392702165908177211821758446925357994795317546948757584608012431368182656251277124630734298775988795689802855557258508982488018081903798183180324821327898327323250176862445770632386011342123044073878659187976105734257638206122508936322689667339513330667421845630629767873610755937596336533307117493070258232971986207550734756943182809366727892803696397775952297810145810434893204241100468055843173238041435776876951761483060337671283064918950368855324030872330296157393245743330680017035343683002391325529947673014312448493586987477454167881764597763668114397970378102007408243812045226404262419807828118634976103929983156922567701296087446243550824572100699635415477209297720661181068104402728909549374107479417647081806076835752004683090475860810845868495473483539173174589893216829801161596986125821239670983461890798552532196803940253643090578899984277414065306195745779914739049059833876539644653648584963001516390261144496763002455183725654984555192853635234971331687678147239438160021042285527821879924527269857445090332106118971432248491499217034740953367648797813093542166018480340859319729171811243397397415789478219395658980324698633587764613326963188494229664303708855313785055343969531475136608850377051776309579474938985805886232689358785452930371059664564370394230384614841332748874384446926366869576096038589861110396436182446626803180004644940076586903884901087862087906997941896338564376803338472895080615207362783230583607729243179099711568281286708077160228673573129080399750769221652011566866867276275368363625629028615733243834190311086352331518285244190658529251391323096754731379601589224850011387869680259619100873055809608659233194117816835567079756005151652365746567957964236738032367703163225268204411828307948127245165212615566235875134111938895773744940723074298863398059730612823605322000240193830766386290288525321994905087144732403693181951690061628661674796392915615284577023214680316886968979024509031732238451009006007431412050063566364620194243876433226952538711003846525728649681967476046112881282898893236329796829403845810761490132815089081628090927279139120708922689624085941119559693387985376157592942588920118368124344216681005088159663980488775057403906078708573819970553729209005480521213047520506067539391030881886597818741397041697291767994467967343290349655696457338611881982217461719347182237337561711275281796605284560977445734735907516767767047651844085079827377855160940794492113644897007957945463359169117119624797298930144721772949105288770019268727170366918446504792314220137480858993403714123946773446890269205468712651093894134422144158490617185830056270257058758737626926744716728058008195172962931302385395378710982027482804995289930091454677189278440118408720699826860064670789208935098059406894390882886610993473953510062718068723598243192874576007978972073785378034468637777704888717788089880376621787774076183481281124712752125746677095736095868986383533118350041086939313349061356718757881248633850915055513612499619658370369563837132771125970125397421743881363070163215995761607673003308469363451768115535593598602381249915628074217475260834990380262413253191088927517104220273891421740445340158945244098377608585047426313103675296655310818162722207590350090292856091432728283891333535884194286968460471502928552089603369887747420548844633836630822112740677513788155554188165446883652655765463335544349920186716860358102920527377000724650134311498062639896841068770824158668696696421642066381462841019527857857121978060039038626826782423971365979915809930424918088875299754389153809347113952693982008402768604333827195037902612102760436015694539810957271172864245223939520781429459142331326737882587610948922921273055449814967740830382359434425684325831581155259304785771476679537171016394745712272142520414203614262497917967368045160103791606377570996998302534812272307735498789730614405579575679958790205351806140457403129506622057436945939804723448150254868723361752904757841517090456816498009068789268370840767390531317350971240190910100090304118319998383220165439618894914415543846177152390204445270900318244489433031091847616108672369700265179311866217451727623013687633821959185483688973186995705012077776962568542184962372985203433663794692240121823110066485023600292457200753445850639784525850998345612804524561705583184416866844194274787302793243600514472870345743193595066446795806548222590233806779627628517443169761828029568418294152564227148593077240223075049787839571203301828972039589392050083407364747323636597368858866731446430499814052493277770343840932707619649393552736902283797191090992908533887560959647924673945571436951593483375902722310584837308733223319339186160882595272428286285115512213428722041086193840445092932505134447661553345978845144797427097680467988587659729747272152301317736795761072704833571708922873207687911141696069878030334336163555272997182410930007871289780097738131364247089389472239372458580171441053110662820178671953996112261603349786085323485691722054792549803560700604622341801428314280394894219305220410792386086031844068915967452383164791902103639222998036158540773072843951464671105724886968782202923044901811151686064257760143651182066902443733135891720141776218012440243136006756135388146777993256841356567470424576355402978142705819198046501320998945291623348117782125232453710977049550762218018907120814936838409854112299321470952136172819237937749331769441319703113452783731565890148332367753681694133396795460753161000666259171594718450987866922476955661953349054085702258414401962482352489550811077498770427527972613546173044803922040054315815266889447909023794964077422185552747953964927440296789142941895087904616443199372319071133288469713498165484806790876776956175811076453737607960709295772661378384015831123679024548641539977129583846940444055502292477088463262687012296294510419257774490115472481031287856844995915770307054594893166163816210815409721926318625865535745654910378753596563880555314191072632600309101803920466517456211349158232083772858362657859350027271522117505200519092252976975142712919403341849839120260490971792435124862377942497748860640314409357470571542986878784584296373084008414148686480544295201421665181396673235992947264681059454897787398106190688985489191301698304923335280836338084307532308197175800172516101029057912299945871305401163800662310503341693923207656578085456327414090481343291301601865644919879355415555691585810455421510120716259853481601850068151487027137039848797234295176080347548694401808864689614151738101759915551692219286138918374972828988095523977356911041609124194586655441870104220472298550197121938282788841059687290363113906134715593854557665457375243875891893003292663526505753881809204347300831896482176275988712541951430650640103573236975940736586197347816867895935630323340936855168839313319998847175672564450707583955840294515254702394736156954349912180571947058507367908594022177928873400277459821440811668588980813345174530032176798355444586511858942048939206545820747253178439592180570555967157377420555805707702398476431249755500342205438224047849467104442849743479876573083468045868820634664193955154054709769563446874257812122883375817955004836194874198905368804976014732632552878549387007031766174757427780443544458124357619181470626791868270265332011502090264070475460880541129476662789350332746611142211159593506139124789517403753493312410148366885121050905452636446703068200510505717339389093209684359175881554421537560678042017137165817113017304256599893718550657220495143675617082748790283635411824482601665401791496919603507324823333067397324107237000703967237989803758322123714038786086112613125928116682843965167141502890952244206562242913872522154317795563878336531107361872441398436599064446667211195178790300430610018904639921040500512429958906246115813304826583449446101451545614755365847935237937853256442944476173210471784432782255792117886481304058470801081058898516802418575819980686106464441519305834740086164268480649711857884614494615800350366609107653562310958892353804805631568039015923425001354258900308169583782700276184182245261542005888804045954759217437889777261503636719967999538091277105003976793321052976576676085527591224049681782992690768014282799935011889886471064318007742798146009918889862791898760010579161423888268063063460948848929379400364926388731272732259430732967932913341031650832342991092515568741305382672441743489117060995268339568067987542665524522692634865688000826376876682182721141961012474999799247799178645430296230096888899030715541606556405295830234249763275833036237531903561049990831395740461520134428787248750361201146977993373293262046303868322892366370309682758801809983851583879141569273277385343808054389809472705811701888611421587213851122953331553959478155742501719717010546743353755846900034241694159228960925334682311792656254761598333157894463812033254067910603216330300436685981084369289545234046410809604414519138767237863709357182734802438786204580920797436894530821751665052899264209511592670213251728508738084522038837235362401913410709904270332081092244769245582317987576926288588302991642575057122051957862404831708057737655174567919729693130459078053705210468642136614799558690891848427355690347751093976816563467230704397175841557465198115829332894530139484953004391240454226865510101085913363266528108023260967830341074499934791112665812566197943781478805043654903667190004966483880085737713174220830066025442901769314577927076001061716062483255795415207935314561359067527418445709113092453413024416895204902506671241912382380679988396047554163109156526425200614465795607550272850238468319584668693198127792329895404070481263658832564876409440222580105444447949561978674585769484339317963818958161210372856866251757576674468050228785809410350837725969210073970007048179154240379783869747404677235146240931275901337407578496930335856837904774397464524042417437475434039928865285549540025103004552855501638288304446203886070182969539746805937541043211826817676725923459728208863157271362557585244416185391052323554103934466173683613709924671093008316072565365719783463794205595268494396328886418793636961549144518021867994152580015139616528299268426236220375791266208849029365011195061454144712371676393900179587494933202547575084147783561208271093421744089579101230659853750117840959455926564082564486096618264803296615154450353571039423757208796190402717487323752329318650086622479901760821780363331714981572104216035037214767012283224433600172745301014996305797027493702386090422328324521971312656590027854141323337894917228032453829819911213294565917426610459417293384764818258461343723191723951361366853975932560186731487326973331714242197885815786009842687560899972097325425534128832057801630851935935445448693347371723601222111971653615259976496255419745171979003925448077298511821377032380720673902874918311593709481079345612303199556457120564518667390972200638970237668294100942492257619521062711004870325039636089437583147563673713861570860905583483029599633774975138587970787410303814333640088870718974961957708775963882201717518567965523198833577477837317002681660543384016617379162020184682219553313538044495100442588898457321492885322550902377628907909608505007571765241244039692078501152295466477856842697089782905259095670759367746254618231115953346311309883590595188384340914167095179376136201016128337534995048764379186043244279879540984774934969093230823131959722148457429268747670044115855643424366197803324268534463175277768865541202080949310774632942536054114828253113035582699787471921564947238902008365138175217723659223861036533867089539826812353053452958003911735472859973197508959514740386132426670777647872125257193987218028359837679612012454796137265016651712467799380801559822954786540438934963558747983461311835899952469637977663037073888589574430165246694786108996842790836823482486909320760322120740709691495201384240499271476898244732457010833099747371883661995493147615654805749424907779874710905028835567273703687310502914165658530385058972176745554072246318976144668763578455668420687340507394078767267111351044821765180461000180633968610812103848078604969156344043909752605711046527125601717969952818785593764400590743849697806070886815716406967809464557439831625934973543324421940735911611699870210680959563563372954215845978220549169615706764352127286200380243372068084412741547720673384401679102305035377699326411390948006011668584701012860303883181457315843887710351169822672888334476224745658227565877989705118276954861744161749819397792126491326373337137634469756818138014783236189903625899405248469383627310658434062651773397348927266622212035627045769071529828151653596456913498443975978918216560246492018015862037774552038652536000825221831930938179435360027859104261350231481383093347885648494313966506869116585065011636690809581606494385333913804056149864528698178877901904218618905849097575505949132006343039881843574652835767066333794985119391688794404129681471040661282326185825136400679106460069954036614187928892966647068426546866960893044514463074125848296085582195021767334238240202550973299738138352822448562760288436320911531967268318095533703395084593783580449638574196388856974431440378128519067729858215087054115075379614303698195587570246308738857212269616130401766951630689731765113994606077241574964174196569640002811463649718054677499544103891153748585137190635916632562261569488595722310120813909238812495928414516730589634515516560537744334119418944792082081032516228513267274805514728192819194591766302259219546636221450635074389277513188635567322691172830523657232074092772821747161892837870107688857594289534770046745328424135461053290118732093980726706509508926686534403578401750812796503375181255752810224112532480577979542727319207098419462911570943912678903625430144137046913409495694021125388445403780379147513598231335763812490250471722020369437951654757022966914923406949406363875658202694008730395207468943607337729257528667840427974636939289931447103630035715908124756673999349175241996974988747085382095328332232452077541093314699704327108131304001251655980511266133227473873089074755907987107091238871748118853673801774773109957067580202154376485311367261579925305522860535729919678976235160409944741416881774705625237442814005161141318891649617214666620084730559418707336980103266966528066970340753312850310417964270055431938160600879759932488895148775065098802457539257419746668175417150555568018646434205219128340524510876692544563635657391491726855700723715548698031890504180999597043424751328832307456646847229347127350321062297131908230330117613270040650813965177278114579645928426704591971204928324999132455717870739103056032950369777956970143918232013264656414673873840661224786052743071473498520197888789387458905687739766908387093637800154302894693143931898340329065987952335117748544814032744119228298719349493206158520174006399411654251814335001032680128670574850232378335132137531553449048983238368162277061380183891945457394348597387238023974601595051605461734762439056617299236146720145458828261836338595354276614940006118386840971821998529033922910620394573720200171009862721872531844956414328368449807194696090539281454078448248778768171903013300611834821466461084106457653421754292363527931088350719920903591456483187368485214862756142908589259922244543153844211108974425901003998865726981044314070967444635293825218248301196246308600100681063475204904249104717169813687509105368983399712453464320310519858707321753916887582133994536422795556148253887612650596723737200341182754464081297143810084853613200222257896867974679390595644109469447931144337265205446941280646016899774270396583197675317676902616879844015565460815752806871401882925733881406785274982468462651669984065511338890347947053612493566214190969142892847398447838735536299844883116070077825995407808731494694261886988722654597750740251941723921208393711893226484353010849558454844479371898271133819319209764484656351526457989740245919315232340329211597847219889401972277360014725749310794333576818771751540852070428408235295799244274222736544243852832544127401654555421140012517347646249098878340919938010326824075501813624331936843479815882736167219036305034731731473492800479514448382276775510882312608445777726212779144907993913970037080475401337797987021800462048315395085761017931714351129173854822164684473129394871382183251818180154796872619442542256191452958501684716929944389468508864425734138529531895264793738663183714806851554861073731494083773006961721570002974226942249232644568415517037134024359923529404735417173902715360665092481601493355691200779532561856327677325431308810707028954148610713588444427064405174149539768675941013463628164125848418543659526939510547629894489150434712742071135316839627540409024948126395331872906946844289165085901728007529053703228558526130741938347312084377925865034867028890829156121866357432792113270038451349598466294658698358401099030972909746364535267681944866164758114303965751266620791813177787872585516689847753620543556760610661185624410108770945653247454182270979033201711684708862942689791419767678334981454855621256073455423197806139107520533263817644428536472537487960789384385349204037312749550863031153008444835205200862511161152938818138853858581655590908977960838537874375409175619560048177619744873770556660400603208613981119519321790424727616144569560525449925511753402970651483941501614125753242295004029481282510930562548513890694549010386153506587402198334498740846265142096641200113717325119994608959395181210829279196175231978147016432269987700935028896470622130475542840039700472289379178949644431564685472549588372492308719044597167242447187706839083866637337290487157613614403161708459044163102730740341374318173057366558397669614729282207692700239513152287759531580288511806208573690667693518628995936373652781304517439440880688037937291053793927881797852704962281433906946836363209867817431055053072608773851737836759527536201994948341581673803073311754124612950131983020918020201411887675321082903739594164929094655199008572153587028231622013680947003978409488781144543581982950855037059275095608179148023501927043634069041827534652340643316738940917622768484150640742222334602887861589917063674476737703195687739176227991470704409729298728502627566426942266444998893411009726512506964744943956294480345755050719856751232671333881227520280268509503053474697524821886984299219112009227275620115201749304779834812245248461815439952365120902342581554179199449088479314109950668712146344168714481022899458302925528558826711856526250822964972264257015106972628495303538846140540848103118762144864081782140184987144928452699615166192925259076063014353989579828880612021974810503172179219038863383690931421800568384723248914111471646163659505356315466775504117760433917549107935737036275385454641218130163816836905494444042724727874215396706930456353324654943841795713086797095798576667348037496891598223633341961641121602889422877338778910384685445001288985978597228469242995454587642587402141899760882663031539978080986586785191834232766486194384152648701280307483019506864041164661758515225707862260868096275233792739209294494884669990711067587442965484725423976113023969241925182961722222992079272214174491816096681169194276577194389359234987489385757758424188508090441321164665204263421431669075539141742398165602679346561323657384496700289743707397487848273541677754294810634460321200616266969476801140518139781709459847512642461258647259129100970897172933365789386140830880367217841813991082822678197406492968427499634065682632208083376079364263014942576047939269381277492172796284398998993010540969229273657738470469287154325085319812540374469682966422235758451204997377087030545280244926522743680323242528972018816341790673284123165186764580711442630530234542790922851831558094249803088922340032096071977358812415094424629352055617056613424406383822521518132911321268923753286409308532107873024566599638184148875680958908094509267457006399592735138580464316980744499169378476827954484999230616418001801867007753335725762900376604842996504517763948145895237525181481411262589710574325116390551083918181380470043851628267847141841275481812084109787158749981841188777533588254100332988961812704755182450989424034396240183334933696627665445622845921980132228656994308678408334389467817553326927982659566162209713377157615998866500361399769979253021085200723616707744007915391379270806240679051364798178385820314742510124784873018957507306833641334304867338708043370554936554365269527408724488921838666362001432451409632494351575472650976411058830843299253970611657854003903728237289626498400885181278585064325876193646156854061175921763515447839210640997678351420368688437418651433582188858316063156860174287330537983152238936575752766717389404899338341581007666436650638469862548462075729728324475057853446536886282711180847989551136498800838803365203195257356552604019542035276658738013385273820884127575196369902431164953674693364673956465594927343291437182414759209641134418376982778910334829547897798566819319308880205536783543891470048092281813168707625582348885492492074862589891565330486435719274396841006909858576977300081253136209970485337799304494154264455158758568788782372091241984805125019641405956428639769323368442635417172832707653797659539858221145217755096469885448878070681455784075956410996463802737914628263124650922162707716680958931685813326963866145801070603322152525705690018388810484638522218503896394868528398900282630043388855637058381918929459621020295545517085772390988886479667291901642757337061898755746482195109219788957658098033154702670807299239679958472647013426504788521947463884050748615442935896628974062002498439412556178115112352637929922851683481088407150675565194449340553493546809771784036373123327493474339698893058827018149449395427948652688266885225746708671111006363734437515018830363941162653750167710969487306044127068013845236849263008846450718793113167152462829592449857062183666544092685685110145710519508300509125280920716960046274773114080559563767083241465680420854326531123849547658542205177234431827491468285717941904114079648960116970742683185954880081868446020177907282450630505493076636459090102483436026019000821040031366220111736839382846700185107547952832785563029456392798555911280837124777875864876836726847340557918399819237919340936280909821923858197418594202952165371679786241013448138534721478933255912850670770920905788928998234957614822505359975415729006958977569144514630334839890951070968365789105945771211023109466216508040102401695625215734828836316184416344049232218660709686540291116346432024892740401265248327439144866269435585885243233201517819154067623457645021318424047352584993070106551499810972814129012102650416479748228911895318004588135013836728787141508218238531354015497484957323224701839019275267316930540493827231113586332643134347102836128279146318497004156246130615288427882643511831778174350516332396677447434154890431625506915352417348459071654847844195795566276736754584483164716086535492976500395754097648032218358014875549065351198740053212765531072520953477986176791817349932116888071791612195751458723608524887008725478129333451838802939730169245561210026736161431167010512308906062734662316614615483341913157662616994389418827852427985604947330087465497116812503118773700215949875886239370468759674446644681510428575474077663202735096063938144593574070992694919115299959792555891471442220369321234515426131906399303836136313425433255689898739772562404334265149804242110279154809324844707750038734204154487199623077311866862169606422115289122478379312907519737741587685726527418795290325210730293429023028472862587697894480605955137317507531639948683609102698673840081095042490879019823892580532702286627788756843523343456093442075353418525158838539510984308495046847948115446777041626352371723385555922923867317752920103785414954175645639116467952220310472445183273447834175065005585434978102813096545063832821662969104253298468844131482288446064937222962107116555944470304210431129646646115161281826139370788871925394774784354916609621255039714861248376023360085008619459976590108784227741679448696343536358474793569859755929156888937885037546804466595899066905846119664088818568126116657090509083646066405929482652053458046427057203268522113677112810469100498707469776331995202944837010202070000580177586344576009743129873833767763941809288963810800715218286667417226931302478621973610498777753112999666928863756272669331554757951709093632086909156716807987468426442977665921487560870301412392393543802907918478437390376153118874776708937254983682032010942875104219519563370483954380862439527407271097181564221490634577002243347949658197401291472070432577053228424273422462074598723123462805202388794815034750115247070161244388194528260278819265613831050455487455180145691256749752796525840062486596115955894889997138074612571347730556739677316178308107515325037097495255016828154611403670110689207785297114353350057152057049317621669803550700017720011220692046418571340322223610631658761574540072646963847303094120223734599274595321286348441540593761375467547863290554705512962722104494376805374818289964349455716658662980525689722621850475878171938248482721686340043083970654947603163686192028469813475731573726761162552281973430041236963457188472992819584844346625593535256319672845832284698864371121678563126848874993049403913108237269798092729214035264582656786747883780367442967292716345001480681271348980280437230811143016887898602790223921977108833865799083021316549423741827426963326713381593981667854262050537710824338020403549764168122745810134712328336223961146357265851634730820807294023530585952171248060606520168165620984849677423017369798197954727793567790382065660932954859930668909266975238253246002957672264815002329160023417271127085671454716363769589341627820477924433215919673404653223895925129117658290640528288884058374778246640807754226750578857337106485835695572071939921225545892068326499179872203863889277323923539078866578739281686062111320571672045639774980322189394668342484472509598394035485190959880971228083585750597035902430782355507572055899149316176354126438810991559165048553032188111541883659655035327945471972210379896007335685831254461330631922101997689931185540071292800004036834557164869513530040224202728029252032192504867240855095026422808723213035016601771668396826221328957237877204245468193774419742897408650664110288109160765575397715936467532566388312632957618382377741353900337894057182352373417760141923845007887664251460811171602041090337524525639418625398782248987947915636634994651583012338459922269364633648681929539427125123376391055356215698378882097071778230846703190495456906996295409980954310604706714818636416026095646332999687964119397897088153716206666407254251623478332699565140548608750330643022225894781385552950131260510995328285338000372423480564387171583528061176060075086682905555490220966204617641194087186362998412712431779724528204480022462565783868478624684451704208012875813770361995363171449783685923851080501354155255733431059985363935063365508449196162247839193211453758750653939115131268649132596292002358866018081127905789408227745148631445691091554180585637909030928864227505647447341691354818827846219112030963609866387488760975793629000248181840890015748616911108110193948887530784621943495315677618392150313204047725426821110045132321901919460698486435950956860741892504716916106216321498601998810423923874205903772302582528651936723362207852575738661540333178839862288530950545848521483146375654604964656892275182928856297987425688216011400110951433429918111976733706039739025711033904627979261663055109927546219329253718461718861479572251056096559614505423848755874243563944108826206884430016380105798063830113119031352769198680084321310781650949134709377428972591077624492333285232039835276669506891903460923738857969266000197441656237253992710783127131407176700233232937831064157141523323221654845555133188067160904731021760494646573136075475907279029776209944961078652355069814744725105159311521090945088663306943308953759777981182212661382991236161742486030178614049122091240914188877287571742429600078228765717236595989891980723717484414547850389721212811590783460461061299136550685401926924715981939919011123352825325248590294978076544353603527606191699127526328156306398512093645838097136509084842741419662157900541261552618751427264568723027261937181774957286850553318332451482812842182099161006110920109041681969675414768105873775708676135639553810141206944596620259409270126100222347147587937763110673733934018693081554356124439904353109398180900277750137408483769709830550830583574331051225529638419703192233689923705042454502366688571775513446169132516833950543626291554566157031541813055915184761125570108857220293938706752965453110066140924811747008448430636708994728647003601365817624894038657308594458288109600416575741608459925352298409802342635019262507716390834016098451048528957748897118207599069971046801768103951045054826336212613450460664853684685445867537558256644267889602330007408468056255248178538733740480904486119638570027499986705140057157704354573769605996708712237080524405878911170411486743822293030477727553681525105867420089445110885752677728178474262474482656837892959768263631866426740921765707186133744302119107577645935588254375638622188990295881826562500354437054876337745933228513362845416307771748500209245989338168905720133461829746838290916953423855416429187297296907144277670976852354034608941311940236610590847463611738954830810279021819767147844274246666154244210871771473525917677687230504462288857305015875384255660627931667941760748249107947527475168618606828902512565661020936600372957969094757878563650830078010828594827073921654446732273153881984933736846117624301356824069986065809800946224611746576848576846890191259382748602178695525855885081540747916982774303334466009808649383433090652641936932059310912122649890944143843735179745878361730207851848126261275320640141587038225415288052929259935991886493959352901110144673678704235397510035088878311652893592680310139729119187580090400217645654830125973714868448154966331402241762975830324628777580666785701463093720346893925971509314823005953508723152424917591438843838002414165812592240046301853328889613778398501978137402527323873674741669343358590863368665810421645667759743288676317554737570263645317574094861021490555197660005428688622065966994138674041784371564433520746296943182107994464933691873808012810103673930794861184191774034935208627134704895204184305297997026605574764531669216107240214879764734393388761762381675662160543711424593217910746817466527123884001298737891853847216041978287820301571679383418329440336461750117153272143683364251967153767200886902625069303376493267982661612555525719347508293718763212939464895523279050415583127302238762429523728692587969383185882858320220653850657494464065976956695110104369088873380923549042219681472013020714027666683286672864200032757129466279515050509146776761877880342517072921150645725659404359953923336980003290119127338609406574172534000930191581432298951836659943972886038839799970054698087090941438673614129348896702467582461163644590309888485853822182467375043386241429423374520833563757254346518195172041511775524609847650512201624125640294891249740938282733019287350647225302757899694042459121347718479741674787095181546497745999890864940474810155067056596011845824299918131884057698742339635402940712677896542298640806151766185080004402976854053901198083779343413904107454824675410292259270802761414912991249700308586129523310464634638071405757879439122273598611532053437242718369810126365517756699822873948270648484235354078294542990261759986068589226725782822770663842700715387630367112567876474123662134748477746463724173232859283146204916094887132192337937585436862445150668092365415376576906777108898860878852292172958763544405185308238785459425718103242001626138528234928330957349687925212756739690085535243941050670160070962108339189347922221632249214504332008744711382047882027642328202762027548650378036394044785905427482114679151244525355115848862630045553799033414540284917007555013980725560802547691218355848228005707833655043343231454273398665237861987289924421737766187998199364190051260871939444805952708838253642791370882493321709389268354881937469758805785345238341660988563100776094857058269715515475920020678788398835270814659359979087821119004895515221299820435965004057619728196564768131342685284877209051740514810673544105220194782903177045501134072454736699587136507237171209012674376574342271226115745296793267696854804582348785428118730746154767091405664080122611468831725805637397141843133339464504876445103127178586711620245717422379356984813851799216258358487085250697466723388929678895610136851411322365280131235515955704236348573619433009852510514384775631876307006121766774306512281737789157205002410613629566642210169912519373775486181852191844323668842801053487953820549907271793483112509172135641057009805698643825578532138352186023363589174470236401522568651314546461186201399256862259794019370380131915284197214942566332009086680365518248918051374598762434276740095727732070996018164899608115989729998783041184839795012349483092358651340413457982363184185127874583480754992541834374752823430049354860870271462316695627373178144200505835961518734357439835963934233455459145633649835430427379128627985610726797967816738289906002787838298471523301421156072871347439909240264754230673529017838420866621103901212291698569874387244859172722122823684589301455380692443955979518163441110875658002798189947759813045957637406485504981299547373782115440285830368256040136536931166515790486931473427676144046843187331372245530046421989419883192386900864589077840298707235143028347478151482566290762300835304199066290949981645625819588689042792576044374333139871579468773794510473801924633664186734405608599029553418087292936312467254984243201224828827711993325151870927014137345438861344028475871276107931174545403723693076681918535940500013102117193333524251971605808044296865631263996162573946333320697237821525437758041849658200052803672811005911300002794298905775169760208588911696816087293851573492158851105980317818982280454760277330436239439256780961435387836187323114489076783515968015145838021635617739407544991101558157427329578279932678036469181487639248015286081703673185657808918566365122266172389933997299719908076987372389473568674616088442904988257032670655389129914666154993571426188532944407230736685213042568011732979977182095638416824940254267190152417027824902468586133201375988998097626750117591680328024355482815190516393571281141141796452808725054657173143641837255995043458266278449176445309105116590148528662050615091520564937722948117280516092929492819375135868328202359724531001118837642604111857642533839572327192222051464102907643935677819800929073196790624912262304922672043838610311953472209303779654465920221268894216715661177553639018031772054625891072252625099230078412547478555222462501013818393771082559825197693584067633829164984301234732823786856091155760011918825167553624564802217872951395824223897584702159546490240887762094210712463695724123824041846472277099929461472464472077985835182341090998791541836057272332670025169962597634638932700446537248307579843781086457716373793922820496635726286003865273269233834950866972040432122256260711418156460008031694894373263816854033149213614947127565468809733666110594324970674251014051057112778013484396942941486234915839967595066583199730678183311733009969057328480572794342709754503843285401936494685766967661613367783794743147831957712891853203390181555982816614945599972639060428340211307036788667699339230106020689429061594802852534138992526328961028893456510001658573630263113816834609226517511707259558550216153553977564772482978567257254239119773334862860543989065039365718845208406768813718489509726785041785203974713248217879284696148535900285391516887530568061469256598295093508368029415694139252836580816658445924540739991160031875153707457145375175671983367106357151070817204812262255766971938793633652531704046212963172412849254357214513291591639331754391593586664964377598069558628465569747129556278569304052842577581050440041628873359544871366159213973241345660839193099491179637431533169797284055967153207436050612490969155828473641202245944129719052375184178320675087383715363824282133279942099474220687467021994147934578504684199894316766043035691055997835529918902577878806002047353742340841839608016166282591897334311961952423612429269194756770815342686265963468333417440286618336890943779139308006332239326999706936807507798313491085898401002430924049298621053499267245763951082317972227812918781521934551534001084362610661174211889246792132138602218798578110823326071712100322263704699511783615015986131188983089741720908802304451426090246346188507917137681346382758292574938355069107588516473406025409051490476757496674300837892155679432749828641364580640640181005933610704890664358986773663208305922577665661479224578321584504873100789032516391781545265334291308553324138351519660346103122580505634199980158547753276775674588914265800079943268093011551936258276687005047824379147773366430754740317162818997239325193456343365477299550672502575359105138884570285752352396507094737265630699951495158012435981819980182042847391162972991475091112358393102910801606460155996878119095469583957881360467297163722608261099823846403110804408190376731342081066274367587033327666479480590033412309942664628290996876065598075136291229104468854290923455811161559180192506743643258949598738869463421717675802572044245467441758510665681648351117331819010047563464403500845777316058328964370710860099829355670309049187024777999979349507950350794239646343015319920209744914496422299115237056273954711660325422976052842819559159669218541610780618315665490515201064616833600954966225550858831075962717081922989726510702185995627420067572003337916594835472751041395057893759639238792950427949560885534137702234229208333204821947192002675602810440009682793486222263675575264583052929233472992873005766516747317669006633727872570653002348660866977162513940888764270183744971582199528533406139549909571645795771238017052202868439102399229477934571329429527373426767217457808376390335072712469150116247927792306986727267641299951763412499384515952211024683935935687655849202013823900455702188233276112351829881153105275095146839295554660409080609646277945725345724595377679894131123543004508964618700389453767942203491061451182343687880195484054777439423055406648195562799753313762794399486144497608515740398562171166999024041110275185482724793199902096822085784399598693557060086269904792401179398136766126221517648546510923993342924271141830134581250613985527580945630399552039521642272600237754791315002862442714650742846322422870993696657374654510364840883337367729116379252553456832931172220574555280617502366890645061894869689168364514012226888337880756757010938357447320043775585459953344942041010597363629740999219956367227007842718659228494314846732003640094318941098169181952427694719241114083040908318527397404362777540640377497410322444832441227519000609945932258368588952677753430073218395710719996690777403435908307594876485660466125737997510424463890352426308766522134285077660553530271803894916762037974029596540281702527240182215202817688593226876253896031266065772728761040898637964079801151133482449031555020791476687610943533452445320582011473461231814167015256905806369683804027955049048105297836396414572532515240715600431721465998147536603975234774344727341995350351672482271003345193999941197036744588062884539913115133520820882102683728137938578379062458015226471926890880368760283085826400276097228938979377455674526313449665259910297212916472507393248882120247344500457922660756782099807505199290456892339598246715399550995679468177015442905022569374430378777930998010610045192738928258266159064358546927018418722134028315097935389204603489329635629363733125197511512176610232508762385423046707377439720317218228688980577858152113422541815969319830469548543558458470604317452087630747468576599982386296640610593462509338450850881752203187567539438775955667684597501320803941417790040542022076262457650532925630144615159693134077228755695984964289130342129938626730830132587855078360992687577540360390943733308116321542986918713098745069389992206885851655806243496498413483811301522391014998865346765450474892446609767141518238923037918289160715497702705934114686216458507792361420352523797096481647463389372277336611364978720313484427313963057352336496156892885284685495890805598522872100790696554782605649070918107406151024097485381548149481246035868469323282024514352713269239485321052284857580893600455128711001663625278901362436165380047698597745909467776404564582885365783837660766399507675509573120037995522642540306114386666516723891385253196794626106715074002437458240638954619743246143748308216600017400845229679818219125744782433397499687543202057417767629725422507789861344771697624497995346423667677134635071972899551089092395036894210671121862895578201656997053657899634706964697498751358203814092289140880118956519061373216578577168360830871457796456924261747673294485731237179029690069698942252099179556496298317016763202490941170559632435105523136053878540483202471629322707514174497499697450292280030971000993981510531094609155058455127272009530170875302969485611994074072718917178241957406924972541021144370603752943294793271862926834509581374695284088982022459962352651928334375927445359490757453912752349013915374009173917712075185533999816018165553668582304872450556152963978832563735809313159378449311327342811505468461355313568708778477671221677021924101822556355273007377727840500844468353884253280368178429820132003757804992747662441697369431143888790996559803359617221214783487380885010883087355820179512239251539864851669288006795639800896637799542856158621471532387065050892355494096303407928094077374783839347932102950696162253291547899357309126301858386757097145035394149376573435052899835022840340090785357598091900448613460758740346177152872545747413940068345917965468033558893723922327575342163313628437825897709173974339960970786642845620568527872765074300264820650613084662471581210200388838603477950032305541529971458351618296778903392171833772903827163654929725079789397078228899071369449081853980013362301313810648197675864720460285511052493184151402036733738020084181572905397071274773447227792126371123814567792209692429001690579268970178008968957227306818587924077334607066580707572821783019243400201624510219278411283582230894220858984106432268756756207599207250849910064070554547086856816337758522766317167812993599226343544849667763110111819910896334467671527618859679350065878567899359270269794129226452931837022318273384469499485596017415039759170280209681773857732593181217987213781735430522642589504184903303552198062106425549770738096503965364602244535021132444799519240908681437232594741504213098680483292897444187933296725442830172575339726674729074650726364280168885623221839926425987469750922611935738974557898141582653739226698721924934752378000330403014192350832003344579987534500057495941811562079696966592165144884146759442038068248007223823319403815338475405643793217741214635978557787851036495095090338371259658813516511825184633944561324317117695782335412738223594078414117980465232105523481974856618175116427045762763844103174037770689964993082459845090203184191886103590393172584606777216403611266462254649809789756042041212709227488112966246965309359248815805158000964148438835653511657588181610336693880592950950283828722518785535552864074677109030753209472802503254768573636313181987214470127914485922982137522115684677003850198341619621278671152965607575590658451873178987528132586214901567040835172922839123309855234894686825584907408419604166103822408550122037773442142589756456368771117815140755037766975644545262609674995133274569267780467874221428093232048214882762259917899771390705437123587073656814456749990945101054293251986321177855404809058142824574199741397625664744136687000328698371939308440950410175367278936382305247672677858661312774691713757220783663694858423966098299149650214185566042115579745245709935831366074051687768954190175152576706926895986660762477932409908711077879099541879703371404700173713662115827907643690676308811212281271046798121420775703280389631089002392342972885231939074616367535657573632229842299551668204514746549522265550460054951872637495307675088580879404886039732668047646166450393032620459225730078357423568195312946970048874380279556489732544303255367706016578487268618228683418459749542176800039192729743432692839103286896138325835248212406946676517707645258818740551480115474745577883563176740553172728060836367316487397866122683003586882546573655745411964781609781740472836837862463822613961795354317360049968643796019055253157509441568741200784883861213607166890243799736071157560305325410678105449288112671986296448752035030073016184007128493946209845877966635136202543989281128123807294207832883638839348436407380818933255837169097044500274983361571958870670022768883778010493767573592862539644153261128972390415568464388231496447407736149016707102222832916046777684549609334185062483022243968574406180568964423992767887163608899434170324090014193303323151407620914262041582180773802886268121790952470797438088642390616297977937599070357963195927640953593037785434361077485627699807510841136306408877494707422129924684483436591532366859157661637517849374728683663168130468723119913935580741739642782865462385784061869384590042443181800577267635852482784876618401268058107078788989866839230865246891241520691853300624710039093009653872449072771998017850871630004845002987350256780567406076354162521315944831342558419239436792918503645844930572099651019364967177388619790934923903783473190761040427669305052081496138403735128033670573130608223306923512308821122409511243319607853702498782051358862156055979499952243105700694402711571170004593867467188672401682725090213462379569306909499752553502520383125452879962163208418478169887118088390746919234913832665662351438750166717212959466583449228823501783979702020564957082603077672760902632521959612008022029686173634590670701342097634267654751317722477765428091963625319495067394766784747077917941444906696122339986538924207856057582108078715263841974924311321561567766770862565209931636237837624790653126069230455280912609609733452152463123049759900607004670647179068430936783946781192460417553892608711428606655013820242873549541348892826590054747603967278621380927769754489636652267286045253803425694653984251931501919990726770373008590215973513267264114763898844035100124193950600059709048752979965275687276457911931332043681789423084782532208389448697960152410852647099225179734907192349307840755933843716786318093521952679212215466553891655603608408654076731249749155116767098268306724113750395319852987314858423124168817184806532522830964282338454863177935050850670234881441675856782211605283931329408927685816705132178195204993223418936469718148356688469677938886575767885035693873828755807518872639391505368346580062427342280190513978509548117121656001626410226469246866442748066696224318814829183232004656160432380139058731610026688504701312193115213436283086084700169788681117322246367559102262149632594614437301370425171557250883848267236764032794258791994112114866723022901678285088175349279703181798907613763990130676356054476811285893831674593910828883882943262711178678104353876220789175302725937887865943834283882422240337877279560632277290574707888580739598956719098755360937517681836604685485462948489750029104179096269998420199442280330975371367831926262861792149619333195547414677648772345798169819556173883876062670612890867628308086322043656537736428092752414536127047635679606110368835882313884351912138476763380619709954552189934794259999364716229092087724585728464730652346247524055062610027192072489086163374887939439288288906432403217237406932699344831345230754914047814156520706257250083638288802112544852916258077621520314766006910942407306538120684628782235946732690033851728928824155259524561968685703173346221356790575884042069088704239301932484900179141518994504774201351507815318705122181133447265017948692499793278789968370338908571545109441209403620070678738965752496647630147128122924883302394927143214189347441963431430159610389647537052697374953448020654588114450158700318785990202140433403700353394651525283234166778879512833634695849298864013123920493074967259502100450621340113981570733928312885825530597231530275549343940075402681802469300250703284102597837655702980766902889580047836696239540426327023192422307624568639354489999269211115472441571003311708534245873295666628789218300899329966518030935248287981695459283023818406695324808346111192694488354465041180167590963465409131934306067524682354884430108508843985763695622353874382594767669565192514344162112552949042790433014097260506822572767246169051173218653650691019863612377685837939720454276970509801710460344136715083243575352089760834080421122972058397945231180952793339565198760129462049330022146555577325659936257135989630049716227247115363875180889591172261629855645454104781653251128049526895727074774165891442830476011535862953886693365700489620341638554834002576485236721190454641274043543126755041301146441874959022760209710144994436118391990230456536093234048425749355134833163798305856810636671712147753250778298863677896902821596269953288067094456087714332721479532953329689988119514267759685524222556828450278045086738497042829366020071149843377847380143995331015885271732111967833748148028562205286025666558367643361138041553753193840011284362502368132532038870494078260134178431905652695515648395102106493951404036674653882079900809303520932151501403042418578251941940288075589948208667242796773118635350270237844239622039389209027889158160357964035886116006708824722622940273712537223639037789744826284330381226796561942458889154977200107880532430622149794543998916210720260773458660263062206604334484927370461059251322678541204391571559556897350218344024941007956656285562056739604403807453292452902028122627404429727428660922815317959767752111853250148180892799961896672797791878259829470421076263063046386104709824448082473535639251695911779893509602010003959510431745103682353976702030027501386367926019366011723753315223749609032792107882938636640321221606361103720872714651466287619772757869305966009125291116027146405216241771613690256714033388037012064110894140395803452295178717225172327583041169849849627133725660927284308953089724396798753354456813269877122794887565987628074875839356583726347123065231839192537081461109945726800561945090215801252286306972196822835016794677118354870974025961310976738803506833946961584296478929549507662899132301345267357960187065516010915852392619089266197576716813125512902135698017012435350138459200894892004983394427620992045784106613944336348797177378123590952982223535068410360747948874222742291596459721364877667452286094286625285809878472184037054403373432973241734304622083290711836655600987083799207793856786177071435131181716820831771137189438270843204876854918427769290850840055213943193406705857253631744879779323960658149234715104756777300682283712266978946782832679268874562852891636753681010058407944319879016084475017462856058965814818309297792520317733631948026277562336729963991862268411243187200976388053616761334909978720878169394794779565623719129898101386716005118471157857761509565667078099325721463529450135448602087193075663706384761664704275397526677820458575041043054237428744544667782532359319385374186242996769471056914875872907141794140323244237153246427986496040770954887900728184008382079965414566892633943521085681370048616156734645424456805445571235772487482985290677178391387009150163086116822406839684863443208339082095912840963649001729195683969509594247145335532021329758930482599972802174614795819291779461959845939195453580932712455116596834179096596466515701387103363230320708309992482973828310094636117307358935279610587786428125099055863861852921800148825050555029892233333085528578385912698765390928631319070861470985132794679571492736260562218428723402730013911192788391475603770890129520873822034461782450051810944104012912732484353076221836783383435697315543038917720411427367928476375597691875308878024716633622746333178061412402780513791869122483305166648374729221020228780462307851890661825009522449370150939108878591024426201370905423918983936319582418157357157740974061151473670341171702482873052721886101944544075533637614975835373702142927691606942126655393687627772584880205463668287992098053470268759509809496164239594417135317064010712400740409664734819886197474692558644508575212383262595248396310916923822523519775795351125420157875782384587577851085684381276777608285681091113938482143169029536326358774405688060470971850593317706411728341447457733384003423958970398934972563887419143414319261623517094565242614439887242689479047297487196479225809464902608354242600160879519721237924261926616597752401654587027876611916541920504061921045474366804232290311804119207940575932441458916288397934615021449204561012568743519911401848531126239481160593078468475541718950855349659013817103122393081717251311890487058173368219466627545807086227952109144079171738278426679141222860770055531846289064490715226981452012919955735467732355147587356438120766998967273196006419341697055935404953301851579006238734336684622040359332705680852647286864754537079071294554537925588128087820183085706340268300792557402740927937587648635499626412547177023842217147363752667312476425367267651034993601937037510594403766356870480302506924662664735026187674694210420961909946009722003830022872752755637582681525460233133393222371371794706804927407043175248338178186591427670764158166622528981257203596230565253907185160296404183450395853080411834089586079976364111983972966661797563723224105859898408464365239575338251160887441856973704081946983389085945918376861430312097043122298628375108622245916318882014592129746599359026731561385424920798266548630487622830647035406750451850859689073094415593304031248547248422243384507308348147266867991129011628315150349209884607213590993284157724710600056468908421796428872928765121530852481519892129482342272230922910930226361136057176295770295910322229297344675048411753930155642376965952485695488625564200831929897301798217269333382295544272844846338958181328345513406159807310141736456121428841409197767114263207531499535460613093333416737592984929454333452621687446671422066569637915816146567526260475522708333467653591076282818011542193699707854934803430911193729884059329962362924651379833827344095237160586349469437767823392421186986582084139233277978535298688508531573451319497708672221191503950613941742434696785752153277220747526714594277777067536783989797487669434628462425720879372924114666436577961553546827952079896103722030737490210506141747540127432230482843214131479439833773068928806610738181132725577006985447050091483040456529745281663978383937243699160083207004235031438754676030935975318670839429057983238930308659159603149097455216427825716228022427241905897000425334153667828596957014507738485240631546739547478140305997496852729511305442686489520614304635593962070220192581357709594210783514643332982357353868262600442825816169292180845691647045372673466922701054235262534702278400892454214985983197484134778390529268666417629170389590842536858304314015639087311536825346785787598796370787414718113330646491805207489666014022558682431744018830013764613184989792672110711996589292841643466727382085080603389122948971586403063369462236262688686989360785024253886093327486962445251997644606694409125396345794532730024916706078747960149046655437957384996516929122369925513690354311255780500829518032880522175285346930091902988841833956738417311180865586434014468497358043171060851877269068466845235383674764923040697120433868012829896809541240043375525100541966842212956915144517281474318182559937063473648691946674154702848752676989112778864087896120731391272360260174853684501346909665804215749599336443048769597880386572688832315797061602922637742585439088867810151936633822069311959036415343911583520653407955726743549191899809474149657162888683206810263364432171276948659085191909944521562964024167167159134054386687561983188206921844533555439860158989032614352082577916436287856015496665130025407341204284743786948191496135029282961407668009881385915314832844534800370804162646258242692659811566306353331782225993159700491044022460188199023969697854496113177654741337807433642906616749968293453520195085473689102756483667717347115249748658049099234467151628671500896338363016349292058189498709553030106911781260647203513464072223107613073545528882268378828261438219317920227832305534516884889915077559810392104657837895989664869486412218874715314557170532232125324712539807177789770204098234346923747106290260440429574492027180737289434793111617325093330071348891383479626228897187375266056596989647223004966135488064192564605672047926191295519571181495026846144770554172089445938355312249838771101501723320660119625788270869872413529818540417926977564730234518001666185905101606308144010835826872284061123766280544080650859483815387896727566809878887581861180661455098003282905882539307010789479619135466917064123268514022064949181416462948873296351484299654442504302336532505887634272114459495378383867669439388520381868106590372235976205140351157210733897751140584290707756217463643007691706095436020074656604815663793174959668193243560748619104262562841507947694134635631815386762120302387052550459624947026194820921236293217286012189349190077141240700738002052886130713604965616972982074704345395873584247096808882205258634746795292053537535389153263441149271590641630002812265262437917172577651516420589271980100875526452351284998603434649936959556119089769393475006973989725481483496724003249747488062292162947667667933799214271871362111973423195939329867936464244960278854215103380383657031438734513281839550548165263770700494621323955492511316313550947529457379960292322694666452182458392304427435024172628196777202376750239256619990384118941071966505650525169017220890349889247103369010183563293313595665080787151109639752050860203632775902030444928743311606837734105875934806257286844826531939927952910747057775917979481269418966771963186505805193165496368353329851285881796112752286949833426592089818926990215394445547314954586906506333208184611339560873435273118153859692712295027208354806331219462546451289856991568848193883571333637627607107392109340086195357980666898950644623972058754864063481302707258973291802738941079304624160159015597368491636384149649050707732955416686362533385766226552366073193236376205830120793982075990992228283062064676314685399965953531142321554827763455275354769396685210532257291152062887988981514784294233739090914916594157312743937306680663927330706170262764839264277984272255129472017557828970011193457095246490426389088795722945988260114148900408784162197421543298651345714479848031402199098302913694238686708352944124994116245490706816205014895312486350283221229661153600156326190803745478954299602263273161241963714368596941624993891636672108267223878250870034951869954979645144738403256313950660845172642594690179180314834740322492783268252138919591385731973967900090784017368438108801614138769096363363212188250861128246520152678307280061595785353474448697221863427030256723264722332651633351598736653615426782054100100559893394279338991754750835566319938002021513968551744115412016410887983286594042371675131806620845031181327420964487012509013031221157466278290899396056466903827758924054139878915176382159298166819834406948676756510058908579474731120752349755948282718237833514344790384811802972432368432460736803603351024399335613186530504317722317481230598189150385394912894381698861458583266174836645096099334698169306065983556419776114438778326055222893308533989724141907642804782424577324829955711415921240685332530003684053538329094329716559240660374572663453515998239571845462222301045796705860834718455331518181078795995660282961488769923946546618669249044610129838744941137504800051169886243840498646030201023439156295109677818592243567960456677826076094857591697855095864746553999096686635113966977647906190652159161365785535444980350700384026672952108332557135784603214451858410723220162477080208875224070802829844961782835513381848961251671811047607589202007104414277808537583208633552454984039869465347502284030396070935733080118616132611441106447689831010181191412754945146344846848157640075098977491579531097225269252448139720725659568050896913792767328621004559337836663389008850863948268173949980117686240729813200787261958407004968851265618206563631417324861714438490749094314482515269700399539496782984666614661126015174617695766251275798877004337818443315674736934531946369809245447691818165371905399548899002142166652918224505962507123529663210337308512865105141935996705769823334995742720581059860606006115143191127420063268609835418440330561440489661897608561362303277942861297616906997988194148514662876602173111635575928547109291569744701915838756405332550857773707900766262047421211487321717000066979593825730238932425714103859504657365335088019056281185167903301745479502812991104068841945236709958943958640569554366740172336439656179164403355831814526469759777736264617012602871213349722023789483103486392259563194384366147167071496480297611658286587226439664941568360355894878727202959604860295174498876655941162803097164790563917294613214952439594232390084163761830034386690326872413627216890241854512185254596761935451530887882571337540473417409903636184407891500697215021408727426276578287491617693464053159889117380198886053652314076380200388001299033112479536806576851046770922267383674534631966260919094890092386951334170531456410350935238131493937111649409947145922907867352379206041256268895788431058262486953944789332778549087448737901804873563764065534560347060673124570029164008041593582113947013241829905851998653217143919274163209531039872294844362776853536832223705471890568206433604635193873263559486886895264777314539405327559653989383149806028607392019091909855097061167701732200226945007460998450802152436812689509163521430589007905050575078069794334688992686748724808039991135797013153957033340075712566702046606970018535761892344813935709509211847750243098789054779512995099540222709039231394228074715084223797224896632428660073811556986880102385088445706119544157264455869067579527725393164523746004783244291232862102672747974866496462760570989141287691869252464077852113096717524486544892669786638353399166418462592486644507359336409639432954679737295586540603578300804839776265814466042093927931599562068496970535427826855820843712741060638728531794349011904741017926943343769150456475458647502826533095665593802792894582530521622886087334383410050799187397000708628762373465078244921154989137228296275059675347617559760560460691226049428589584324233746319627715861925804579275426962709807609927961175290605006005358986708144170132649984403105991850267167255202124915655879414123367986880379167484382427858500360984981136590401654975103001387042183351247744398498654712482507634040405032563460452858948341489209793192803554551151855941183487867522710783271975537560107849612687083420213517972649691570777605193663494824226975160446482925445986552022078007470363335247228536462051267400730276943775779006918159416189645766339384548274427882156120789387920974121485249572975305041435121652877498016961740760596389567840998284151883228557197868426025546712557561105195247566248217114167819351293736627723964012136453836254270735103869057220068916063316531232748689091690984531433266928448336804360711194350288826617002913682644501857603148200662229571854333741380545561652820886861854172970710759871485579545659762475978905381660063626769434535201553579636290796681313697039098834317435604979220434011237414131119376653293170741778178338870703323051360477236947301522893689145070579739999538238977687142435740904744599078976508682436131313283261292306781751087103918289980893678448765392132937740930485989822021280524458876339195576045973724811316364674004118158826564301941581279318160095864562971256504016947133267303828211994122431737707810772943537913636375512375608475435232499174737392979029301091206914601112468742330139914832700274052693310809540143341885448017102118757217688531061098420759430483447564626357601407699206169666225879616096698461815498625232133681184449620328613744822625916851636838070241788679676754407324232395902503485887669098333954925011163161393221356479095015251179469851912616073619555831525652178122570171169016446120532984328298059263036129851995324297945210982727527224119463463996665375347894616700623197655119468234290922989835502068503534517356345559973194111505330385424021177119702021770913793556067450656943195381604590182770767328709820794137076926674264991271963661333760689101459895831776756284506782834723764002574960994377060829707252216513064460417365474403987123126927480212240391539087030015612918420748143333130132526358862288469133832005561590187921620198241327039888936339845904550504571032021820337620488686887813017981163023511333807749300273218721935375418838674411901989874787168588781761454163865053977637149835242072364058771367171272988442776293444615601193205188230089758312714254289511047213637814541502272271725128844234338274628669819313718731978466429489953820334766372222205906597674184172883076913553347793959722343949878585193166495789809266475708095743658169873231989629918603572789602093319423733783391312538001090943178914643433814112927218062330880245780770065955459246315211791526131944367017334731181145894989664375745850646890912936577660423693858675337394523381772452107671308341945036822624184807892326403109980707122289940829806352097286254462709744497604967924008896907287107516754334028199397143455998401688504882317987166356774866706269855883828799255351808183910396373090401227256912235874757903801027703840322421836844604219784753360155489139008124211626294743640143929212573576687148155673128982759711687590190344897773442989032440404373059584583754031436115512775218037081813523569649115349430845306877577003315542204006697721087819202797808319020453130925302791533162016138852278740938392751628404041245090649905244234135800465136294336361207580229491814407858884099295286902856536746549952429689356778151447805877562973936570584873429264474160736654910021015681962527147358505220992716890992571791804343045291177062214395249421773775585399586505125682043075769106011081000977448256948247591958519404632501865276186715306057695862256326531634702848626842970333581852360651089956278756413486287870011586775885163843412711131865768985617476995679863586503374714353034385973704093177492635829144587444402625490810136996376627955802616487514132939439168243833430334473287597327634409851208817767906761668648937922546508279215661893177344021846447803255304446170809428987354745488024721833406266105360723665502547665893384140353209469156103525817097683011744216621701619062683735719611093518622344443276736853839649065959302070520013405518022017288706484453906013461318869833938015714234863545368223212313943629596986530415873340735988669749679746677555684056794493822785888363500062823673011546714075027051570946666306130110686272305844527579518532877883541582278129823480654256755782364815455630714980638461660879585093425923875040894630440302083858849272915837938664464306532774885108453919253254511979127786333735708228709905256974728373829245515251720372472425414267976094906245611977748813567288926520643695187944308715771113311978438649239652573563810660397492761641087306676236792482145483088837748297553602837441412631022643276966496295191228029606523609008218666538546705455075027170523117687171635311506857551959684347361435205967339838018061228090697417649037047893341562226427199585450052723261864793496036786289386475476489551195128470894340385295393380533029682939333276054129213700498153895030650122168125901809068668903326589779699799507102873444018070797848556723717445908262481755581081122750206079697932505517044025592292206038515243389180381726160877179003458173196989921602092579796615477871682148679582046271320367898751629606671637212224280557974890589856510363876179084106049207458667363511094147601243026507118910624739545583742372638705550659289289555210635332511109882862842647120771216305410955344966201431616595194654349675618410654841030029580181048555399692131073205059561861092714175506345268954735371987487511296355957002901892223631006231318294308159819643895702991231924733393938006725975228559998705059087012020328974930245724951813030313327931588090788890831352610771383883457029073500473936389958885698035962289203103877027171194463191474567107645623315129785046962950897634782493240573658650792108219051316647538298467520603215085637696631103264768683689508661473546202791813439849027668354772921284280063941359175524560994795189691230096064914447535896903287800417437566618475470470052932570587784341876134163221078799773377889500943518945186245205788868422213572684329070492100678690070553758375174756982020391362385093236498828086713217620047349389811827148903635043838119906494445999432194908593522520070612833936289734580143810484721388884923789983707016183549927339460887816518298713029669777382399493526199854681783629424122562899821059481287072089748164403513074114503036247041638036958447589112420651813527167372522067120604770266007999785041442184152551197623819605595844399734479365242976052102890202508573492446284615122047936986827042750356315634115353673736591146666445269834323302296721926469558224594433811421251587933685805656806124102899471703143670553337001416339138682694808185704397265496278461920548446669060641987731803983863030049174614032920477995535714535873413259893231293992146844414572591057301651662239907936322416328437031770171593398934333345327944240398123616063350651638544697734679804816963761350881468925669762852556446997954782325008905837204354016519079586982768236620915329457581479999299586472131320789476076855685250544441226961486350227357095804440394020398563377804320703215143719425312250854029869548841089169059112944686124182138460664590703343668651241493862151250262794611947754505898734232098723049969025525792345419724695367184644688440160536784955243546230092987891361156040241206741450487581589438436619755105179760511174375136120860615774254235633149531944242236332539335718769487463712974908944631232388791160289352187933194000666767621685023402119414959440640059520061340389088719350438005163132057085558715246355598935212277576461303623138080517805202560594090225572953139882604438670648605240020271645151526038633250308244599216460637488549244274922309626036906769673692266769898893249383022988988984182980338743447435506828042403565513424986401709701334059314205087386214793811678192436969074281892949755048434952634510864106424002945546066979384138084771172429271383143571103211128959349177026109971665754783099209922578884623443828625296456206966498064652322498346550475540440551516487744824985181556081780255608514488771143143226678498053557067063937583317532707607429264974484422551056281919485360299400665278595937477671578144733363194506171288920912658615360065253303093483490451782840547532492922469992119720658222765713949168497702546770325170856418969990187634374045623174650225980851179928864972217252579703750318113505577450192487126243234677281227396442036769805520494250409338857104169090748471832598212317220207067225806968765015753056708861672134596926387707440588964165328047186584229366398286590588619208630189723237998481951810534850253200451061106826166339671536461950609758868688624080162108447543076294852154617979575002253799137466631829388659345737890686041140108243830081748864419340140629856384882116103432417802020362596418846156353198349763029420146791369892318898744497655708457326583806345022095319214758655150578047118268946622351408520360852439412365448113337114818943833947250755461518844715663136504694392597018180724948080718514038650066193903126910389046377738271484913612631826928505270330512521278852100460338692058914377392524510400752641724469180799019030273804125865715797893406989402719797270044141442230088763308157812973281530146651935620848164463351366123320281580901671614261689247725022008697389197713743010732026466872534801651298868382029163906675055368098075463959268638867259373295654307000585317015188023626169621350333867437257487036212768289382572852614517014717686436535453217502716590854209644822917278953196842052301503666740058263842013013567884946279641327167070889672873812220528746715384312777622902067363689611710501236651387743291725263463146873762885722869667375889605798259381704001040991617250123283024530964086265584650106668775502084990889384771548329193108148703207698841103684826348911572477031182351776386116521380270772398832288565956682926312477209082522114768226494435059649747580108953648838078030628234679881584476142923250435897087810447964654029469673600884854448510936570897162457113232691504401771793931357637012940895616386912811993594746157936368939790899989682980139728037918826499371733770413204605842021680514424053855551567226648100342416470922347349509259668059323204205619032782042541044912095021003246370558374247856547547444390920015652985528572427927126647419849789108178070766289790575395211850403020420893008291994977790007068939617010351610480969090123019424483096695487531117006384033072399403331596140864111965037996102868211706727839636744758615087594354082023817776767695132834102176095321914807578817998968619192659999998241904587347949981850680693519910456349813074744155758501852371375660872489022376471532638423917783886392984076989362595503175841558626198882513148374956268631356926052372445774547501798792910852793785275346230617382737739444901273167004149960208982224997687166064431045534436251213271132434496052088309562957083455591262144420460413453284524338198175787726545233984709699148422240420289948364045873814665957434297178442113406899227431306776732857858390167965990852326531548707211930471751545965540162424010128735841815537234630412059294927928490177459378942068058450344709065604821646730501027293193449904592179382840123170775661391107329386777451133248866534777169912216472774398950888269365909550071748920737665857816666770595307983452116483366956888213608862836969653917758039911248455948902391266966327608667992505351553203129417442646354884122447930429626217754609618583491747997073024225154041355498109818462920174676941354981409977759185164932889493148979610720523123612765254778158133400978543195911079694909615331119869156402071435469179860779724878050476452186359581306254081613064480612570099631992328370087919551362301849562097983216106849331794722819919196412999689837472860349038604169291486929665337699432252506786265948843591980334103997461469370400576717959202170618411819728917261282562657103974656727887725497733334421610197751822187147885241226544735577589050437834145161338735781067047193002585643940043577552780235016365220218155918787730145712726506045025679436350796836332178222000829504322286854291935876858294704754914183560539448493823160226985916737908202355467299705675730578344355104016476083476447385967315865055508610657392812386255283153967438772643425645475984428085393881017229518222150735475168940868332143940944084169749181214048574375329884867414326753368238043851603566637699309814442325612325395325928001419739369838377327158265386765172630591945812023771158745957748074491774186241227869031532824751479233567343171544161962865868194411487122221542474265183023784630088112874582609473986741405281145662941483963877886896037894495329237327945892022745767162582929443467211021504266124189434218912112212960465266476155132466297500281697240276702486454595257819904518384391563212595805202333503963602829871546211431252733597914186079798943060669169769528129647987920313777952511646809477744756826756671056441264967218992412370349018874446243823541914196742497116452461495289213793101336833081350098544442750251316640036115338353906138553492443557798739848835559492871190267649637092484452360692825294340085339464591239468250107596325897677745924676808142814330142537388310201983549286687305800764785281910385744702361272962088501345224042078206954569311444711276340967429873536935298236126963006275631310854685172371768182815545864194433536344001629920613890952025860199477799298190813145766168074818140497300713055976712224902778197904060485516075962358934236609329121931292871353336699332260684786611868019653300385240960393915543231615119821959961241663211528390369063650014012660998975061106284933109134054178784030247253329941784890095800693517666767067490047654336695230981287165566665042121484888097724498313438432413597533501265638931995412791222939711389302915599778159818319109252461419266675658436513932114019091828646124629634820902270440495872493196442435689073988661467832127054859228084564254302299446603083135385394963931337968394424686254604596946437469781852282746241355356594209784716410115495680196649021586487306754368884594519206364935269818171637176167851877954901852465779811272865643433368003223006095042987798907319632034957631946798134179959091881317621531042180625661735736910663648098931058254179039939980775183908782301663632769024568300003293096067206399879958779900682631517854534443876544665224332390818104334547998602319557413592853773884127249998319035183414074905250895143554461115695324821243514146920573668648511331817760749122618371620154391034879002195025014911626600013870770121171438677673572390745636051754877918280557965915845353364846442604592335684894782919851036033648310666981760684394958116347086271938772148648184373866942906792258024669831210417968571478969254997468684907885715809214630628639534200854053346299275153808860086463555758844067180614589864079321207778027574601130307466921502355986584106989415537169762459088836961925487285849737705663120586574071737243872772968481171370242305084233145230589543433613059379428953806853982724442635452148416338509977136385955267834532549255551217046889354411845991103385473686038803246330914441848406274369753817075629425421444828965606491903580386261804802706155671361889764388196363755956105974231111596054112104341406612173037900325455839403493576642480750958334515055465086536647895043244450895377555126420830888258099862214097181824325934892786833297236920173548607414260387909804864188280265913388618033573318058684079019768757149904625744400419112503526544137126683970740917694180890849867088959035068613621486607449147546076406240865504527530689936795506498872280745765645442051385362734040347086054030103276494906676691234519473573910938642460907404691393083334581296041289386602228488348263121585979739305812555290786972113364807503178734216248159228973362969487964903388802472197959241388133755124742943582878082441508643621835567719500050249706248811201258603289289142258681514490871169101435957175472995156826370379200952829130142561156176811982566652554160578230260522066969020700606541739859832770762613917071666133211833046834372035075482579112321232972806182116445791775007747189491008093465501777104120346159895885394299895117642028880019297596899115771712299398556204902904602687109066881191345081553127107038787400175557369178735325039941980904536528606969600812056307088782372161083648996972457887820663780235294727589022502402009334709290065591346578806944481382856619418172404106475232990919740483292165477717168727112397991543720772706466962973824397358313979372016066709889145240517009555373623617059219776531123245214278146081785891016029066458692186911095340140896523518303117732486982000083551371320280051509299896391374719595494303873998058804537618827182715432131347754326225652727294762346067230680213206205154987339694700466183420457491504173208490698249848449308821329481196440234143832369121612715225271814310191177427776121428733078487662900904454608440498073773308180647043980174563753082339685073285225893542566146650111092074489576266970056128087948021299951022650558713563707401726132998230147563394117996072633728816375560162507552586715881156477143582695116178113491267605278261438978749905948717323070690043094350090881898464668009232594529695216309061043281294996576830360081098584831548384749667000613937305917951105087816803900026320110164223357927119010838559688309070605879297136044862651385035176371467274470316601785344487880125523290912494120477202158601092083714492493799601998526375831296254695703786542877535361070952376644579719607931478674702182326844743721910005383463630856167096139028953850031427203631647471692044078092836245317729133054972475829297128918112199628913158916635431895983318997219638735954426168932089122489718481886064711123916989430443823019615575899942042615982323187024202224800310832036895119647951186241310856199820086073939045063062512385274619510614387695260691148498202139787866280972269210961152538913684248662309170182348091101480169303825748518717354743770865095471371473844883042467484818078262720964969569025867897284694932074127302914228011092375686790801569931188254210498614676131576293080541690192965812273646775339972322282098726064614874817816536357280032114546088535469663508136420922331860307115677090814862342519084163922299328406063099381464260543657908326633278770808939680025776384075823093251364952817200668662348101512653513887397259362593508434775399864700017038029793485530915621390187745874427873268422156780770166714351598749943684685840647370357937035506980144302160152567182907194958257467575927861728254615910080686186463029598182949389319447732026008872352031309106092527856804742886589596339976780647443683341320666023921369043915198439253550758063704147989510096588463332164631368896606259460418904604816917448024534617406529436241998139560663492452275372206543653353773810675072030709021288231423684856098986882125168326475950166551416703009610557453080079226883773417464492526234498611230907933058009681282828837934866819681149813391476926271984453156355964623004809899714041755993387292996348363490861968717368837025726596983721000578292691289515188179936960404774160925625796602837875194281101188100846446926422714986296427837436109798308559557709940982708445723985819468834550469670247094376046036429217997372082630871409157772734798095727688590824876892545135268074914305709682645788793436994659166073303159116581918129986496234911200734943391828276746625041156465511903614956035996201416275281887706717715888360495162761607161398456418539793443602427267014460119080667114999281941510584293150803940674153824805435351307112670223283341509306588904546903108454900357541024885213260585847852218766747286743150771915904984672615150049140806922045250145697669086035166493536917628346589777905233454405634705220399520863481362418229727820644680228787216016750214690319980709465707111727298802383901224510852394900824824960157299516104229577823803963943405571114027624126742071638468903797198622401841446057974883700259398092247014671091678908937836972274401765061297923898528648747810490815637116022292286299566974589353120010552172077118080992240684899715713601942185329423380443245347398824613543162264490079484596630680814825038116969752042410402826347718810340168514165814234824707323985748702281622944195961126254864290754097957459979096606454233673778769212996311882772430041525474445406669754175271728148544690460000563846176546444616396563882449303604319491591452522207768101552968466894054200831888494988861404489202120186557239932679299270168081791789640648980900865567223138631232498872988669401016467166246427507698449269904792096434040576439344908128030440079267483658007656276177007888502270655893588659173382676864048603153093933780559516561790682270534149739174616783169064247790081307918735714289227245637946290702078195633815120820609085420659824263866990537412524531283463073934353434974892316670938860580062225699006173891910860282682815014867381890986561040289107869451161514920568992883262170037235858652351333885521484291938799435111083699655070620169355964073204377793419305339112426061190309946110636474078006201800854570919027538454901159588656442487175607012725046320970927405214833599554940155701647429701957971779470993558984681510144072358931988655845346706381338986354663564809090648768210160750162888388381131968981915343534344994447035419346500126772024594210093449478697915396666166696869293332223229077898972715985094353612457844402963426728191639433983710844763666243887613339160031205086842581928451267546928998014024600173356684874376926514660151328867042311648049281290467187682429877403257455226450105893888891101953096487366045367135122847801826818399555966350655980114312129626615798995066138028550006077410165259563176739920498849993169237496203228913944967833710435305301582535683982655483077524449628083913502617088807691839571430492499702456021147622272120742143269943479076447048537983784069443508889105974739456672349176571624390048784887342599674027555041303559612133289125441119482369690764164031873282388684531783599113626738664526628319193078816426894879542193336517531327720578481799794786105127563463125733818743047438966632155115993414379752637366907102170207846668298250201909894227668148951050253783765195897228367910878258563197893001123760879060348493350823740526287728224309219464861125751014471875244430600943185605226883133415567348508206729630497290144531019443815283386180597841266996163120815315244913306918598299784081600405228506427247129411261905211576701798446921577920380371387830750210921553614631770064883037786759410551758537124658054213899398379623335650895323121111932052304823145770925762247241450192231351917242135346070316593368386927667985759360854144017061101799946443833612605081292722754067551626721559431597699246792965289919941722666557766531176251953781800824262937391527755268454319333383084999894421560514301133789780518745125591190679792753548623036073041298934096898253587351056249744830906346360419497711010479418845489544449008282442857958424540224405040433774576608756249316431721763987509585637249134688608544701086759402547621666011853207845155243700777221396823845868665924700569206656091806706052277608480405545321690639606456442854402979894214860806683398778933256889192172976493324813075096948955056163487768483670360529333406669482330480058597747549748144579983882872506294702969284818217951585878983436157773567861866693063834959465166255700286032274312237074787327718644622622777431422397317938521901808906662043023825553971724537798706858405002370698440351933304209479945142814989341418802914553372025987060394630880156215247802483423210249356638511349921866326033073760442162069419579432308297125593668003752837952194471360440803024010517266028741437169721955285476531897029265462467382517524092709236726389577235760143090021107831830684691440821995128779949602691030886793409373298735632269900535003256551731592685453845552302851553287641655926631448370740620660686414902615859753563304167190278172523644721202810889060878156801164731509380664541582384689171766549214368532967579590893365377411094170797373134325576433441146452309822277693720555643614521488112883265318810443669808026558160407281851286982827969691364933372561286679125684506311517694355668790027284279688441859358650780019230523517407451916533391009303600277239108290684549004243346154173631867586371963020788506650628337516753789674323118596989277993166959075401709063324183810367688560599427396759885743210483093096227739735261571966819458244070541511609992059130138514453399335331422602169041336650862417199517807628580403143111109984318219656789923755345511012626396402019487213618285964289662356171064305577523506002346714101901187865719520032871193733317337253862264305528343036149209810263498017774586021976184887249864098372559213279588505121890349580282555359833962705029533741983169158137335494004489201669639534907873658366281827320608730448712031481301291282764145973258872205322844536233859307288684756581129077583755958905130833129196400833549759064959940887453778247305370508304028583776983134727010086816827058053019915524053337814033256462322010012628813174351005554007121788899246595902652598154010229789909817023811709190783305210300215567548657614641778469502779548902124768228805682147247816636796374567182277851364849056069093135020645644136414055997051065357308056399488541602923157066560453767794618063054367408071464175910645981513710848223797194737115100006018999093737224941501266822828381384073026894474755404680194916878331260608282127893487726863497800845047802545101102800984904750434447403382691729564156360273814174738755138813068430353148219859558355438413104003988358866491650882867515397512423011439224680001693775890274534475953590009633204590735312224939932882811862768681202649011437901472044084763576068618486169439588952326123845818690930361701647626542550974663534723660035805691379075608118484639329325052894206985799116308665036551469538744072392796497191138294674202933039179816025961440684295475286912572575454015959352727408362235115478570380450088371450801225464171181036139671040222214946375733643011155954378978880355616197281379475735737153455309419045410553072646713112893654495294062354485824094148523480503962700553168044997255224782319824050251559090177162180989888404374903763169994308336230684829850286384819254654568638842188947788754817342839361270101179375332483785608832726612824647681288192875429636153097245900275202145755484819430259846095095803599270221653590838934276022802637325738391947487817517601006768158576032297835098578855747600748508483653034218143225923666146486440184650187594339002647263254398823350270257413748853705756091245488143233164203928254145624384236977018765208682838878518067042129460828234433705565195785191379554401174288707244312352292840611933728856545671874382252614401893820704203059958773040331278796488178538208094560601982312470669527793177599552743822398954404559899522927087835459071201387442844707629233076842657881738123474098195329392712939112945700016456276618717163284628391241302697878576989374272094229181076485810744988047745930896403393389852936858074773306687796261501329155251435715741312026593981710806002676285684689123916677151618670988836144266538512498251193547084696494678127409598201201027196718317423110402287619625369483458263452502536223594133479254210218227671715503502853884048953223030895984632746662007950479026946661106996130974401527917706067017920105418731093889741185286711780048086812064886563383746585136029200679873952688425379011894921931741337283479834983446908397976612152523727989885533138983688349160010145155524960613610360719227696163032984097166870806914115352056150700727444977356172431785269011652748286172767695572533996269293510772155579205243067880222060272999972925555907987095799256257163280668896417725275771562713535114537082656070824219917073980843368705900743811577684008160679991812374839824316180718264918024451770150710272922256648782220607077047453774175074239752337350919448503097527091257954488481893870647873763546183548062753403752397454619887918469993594588677992085202814766403160408330186364987480371142090701318729850820868554710759344294354203429816910873625272357122895401977889737855394241398800413071443942284186240405747350964575065886438970223210036077968178094299375933857885525626119175349861733039551726198929044526863697465919248659382038041451423079172969293812656444735599119556665367658165307915982893056263130707474907146178488691851806963851647646401424805377001526360055556773202787771347987945700209129267614076012697565994863231251236410008251164130957807107746710821123129859365383456642897452201282395493663241135565017299630724367674470906815800861148917361769252782996458374623793177749536847594092064641951789873135909228824018612654692888582597572214447747429325454758156099036114052538602242280683272846719315096183671335190717263991669773584087135089901026192303868533049655497848729921208606629692025510384997102321992843316868977959161165146531458769979138948107515145263839486987996549103416785937111414624846999432989004482864063152446650626292208064327424625045349360143862342890226711680915625478238460186647658534449230891011384165358320784200705799736967956634998488141995957397801788184105530659914499605935919914729862838620908949437938685390573897890289339743137277136877213630863502861996264324505639098956954977539463239393941212655606897601465892873511520957927385412106043285132831910489053269878988798712084612234497259922679214300143202309436638051773451825519346621541663013688895014743601897956418017540274852650802478029576302892323250913793294699459067872014990937269322929411677019299521811328720495491559976207485639313261041315268792387643350059931889953972300282728977691561056309418745066674089611506083187812905588105595830299167021249138813446153278897082087219914364409019009125966913353188551466111069224560528418265707009363903602737299506268063879378170428049231684706049013446289602818927941372798073114527485497434452779964739685683489787470957665138993129226231019827025603028090019690067221449489360617946393329909359265359953788143252394470120025670456066878999071862340875035364021602975583503236427716055525644818366869560600708449838389662656186349291852107334174820117183270507542828433655769166072709597431258394883958564408747288461073544687621937964979382212176756054306252659939447326504729196175981773362032284788247806951806164840557898281468032829632725084610193201444438842291531057082796895691516530607716069961045953181481068243685823495119231086865003925518291330390788104581927213325698512323843764169709812341025424811446746367320682475453982273731510013317918770864267306156113374235020195564021896810286419485205667392471863213882352580880808345066853508922162551873241859679935213428621992240640022375523699403093962429135777473176540767987288748694049959153175353571384705109825428192374555222104561591670794757356759214285026326348113769366897224258057561228212234120383955618238011883384388290709116984433329280721096834415336697609734742135876698633760999139867142356018743343422847339340912550896636903921823852611539249159026214598553002841011733104229856538609231852772286960206286534538924798579134687312208056590520302819167472401183047891607049411458116959678267447697362507114632990567233791114564000312821600184791121077184310757808943048941234596061668926070260038442408058830373966008017040676141721165966923667542673662665781782984568211480649426974992267512804397108191467709972830313627772450120951314940734854274449515911003968694764268328425194582634515370640394420400582256398618839995215172908090320388596179640739834897013208385746474136132332020946343290349107919566200831261737896355637117551946079350488468913063369085989126782725531257533190638573838348294201927653967679293153444579954739664633989100619155769730997239089999166784287383058859225279346443778619562896723066862577015644121137285346930506919457751445165135083024530487144535070900877152088960205449822572739577139293147445213699149892196796577917718347857667526569272210012958987430458522683832942569474258694810057673719212941462952648646047078258932171391594824283298915236522178526411165702012484154633456569719535572929274034289397308816949336645743372705848316383059944964801497064155884719037410805558925258376137050701748646382732418649059124892239163666554583534229351783002752249810577725487971400370648582500398397440378235252831103947955577116051317348611166588505933030486758626304464835278502778044052621655916811820002039856071075071593278073906588408817221698572050667698481663715879470592736200493241934843289889819506843356825091560463139915963876373945471787507498646765950487765997298036244118666055970476535151428976352710076254869542774212095315475325806520439020588855942446710885912453561772223429314789061302236976076791616195254410271113556477407919664575733792325757732387603385378549515182879116785885596172378940087673179209048897725158199368509496750034719493394029333682522620002586013250693652064494603941794327770890553908873601669085835947320708865301906067419392516197077062567289624972802609803276088570750165853379601300192923350613627569760581500672739250252777081774698926815668555273163119723528150223086860454962829508862314651319285812910655841540034408762193209949728277442017025657482915109790425278599818402805682445673409704079084239007354327136209506609009333630171808139140314721876587468202548842448235245449318520872192016986592854389922223545928641488690997008210812117800788141607925338182991307510285018272840340119387679376754711495653587055285080798378002533035109488930387119560230761882921525504657364798171243548683948312241172096104855843473499447652716453803956011062260931521688632133136780778516022183940902960224856925632519777370427695172281683716845897984674955532981466742620560407549229252963677206208464745545241372481705674431242110204672182322650352028600016251469896823099093888108512789342019666479485578691753153440205974673656858175432680173866140886784157325182379809821663052866031971428181275642772476965518837338125126740618912083014207997535284707117524044207998612758602074687115006510609862916300752079495460488710948131517950659368112075058758526740677790027372827126131481466209877947903778692750038665007383598294354465913523942860780350268830462093097439381144979878135412989732460353228931111939877000206043397391534460674247162424227602058670449018248179788546605816011779793313905095656450734746260264831742854298503999561724731098454922725523449212731790406578950382030671302551666683109448696351702392640166554280975727005248412744965901188608899107681938463319851648674175231708568828248668357373613825362033719731691697131023998907404963133658022263359889507007543327203207934782412096034868817640799718866088905681182051977520181549805668192899768751867845137737748701412064431377929518642035397412414116634383767847743139031299890772826724371274192707508609769382186307565673057269309539871415790371465652069913027618198621236605832619351511826839563547382267498970344045442214283072234658000425203522621149797029334628109268535512524314710214546638168731702792362096095086187198433545867845243638654772530348495992187917168523972376929041035835508156121800242798089906219401698742913549665767314108381664807841807735760474758944649807862463408751957955659199909909925019012881437418591226477822466201333110581606283771796445718930646466046956126832259776958825073328832739735428365608948820646675859563946094874417962300176965987121256216386102201862847466375456366302765859443329804507002353569561720850143758817810899869451475701716533422196713504307271817082145549523963115532370988663120360770780504200711283659059628409621908322534239718229557069668298839893405196205651722573839594845406345855106365066142765075294321139479491595274569292082005950862413371479506056737652663630499460808768315202452163463901326775777277227269802615687841143692527108086477027344302508054681293873530340040146983443269365469262774224026393571577513934193791272769556060397981503037557531025211921028371859991509664180767550300279643251443636660201851868524194709615879060654870283683118856221150565526557298234370019129655789156111880690328087116697048142244002783955611538351391567911459793578422086014268274039852970552171566853304936398775659544020834052897965766281085132545609104815615480053923942034031204519866132887992024842298402821708835709727829047512416187985945415483179050812538457611385811790262888998558628916111937632628109879829398865587784890791891042470554157719874849194894177361493379055745260007044834121397046089221478232325409002066294192691213573214172966738417811789952667224143003706420058476848083796706878599924820427595012585275863680334609024293531746830648227073019646100429380705298550563620419952630577605921306219912067866531727398874039470885771723449095949893454064086484076683472995772357490785699596708273738282297701276870743387737244543583178786021205371947897418799404244045325069189197392367779691561598825418784053642775881996986593412589245379485471718976813774792389083233927784044893021224953882825608513553772012767887927698154597013091962980712782636487088351216535171554330628029079709617713753763247069681836447405683268987241274079499987728554384498721735963632633124302344261833819593661711262079153009690129317718559123449379045608463169773795248600273633614665004332466833395085591594488907743975322660790286507758435900823305486580115015276546571613080866017100002788970842586129288064558772767131787884450037647061893186993181498749200546206136252686670791383895998866982582930473415555511728919204734144194184312177112224088379981224106554605962852498245837132091026832813446366990813566780357386400943858034538516647008288137147240696682410085092566228054486648295703992197288937727715538746408633825941201088240449241619635698857478503018136294241010397606276127373067459468764378403065230389961155803438273842081646224894897639608298611312582801538004039002717195444893640383200022560372174288748452218279244073760519350633137536210685372594215214140014809005602319648894726347096781748057989425469998558545372946602797229385452372660401612021954433592999922073941536983719161527682752927013321662642775038525908409339196871194558725797057797787047687910138375611440245781139590564445470619169237394719019799512135674960645511852139124425441043392049455779528840995624432975153503553068812534783692498372361121254318986158926089485824779433817696418480067083060379576965953005353184557929779092164515732190370618424302416826364645405932855849008604481628569433887325905808023285200867090069680161869310225986814837615528507799793945444001749650215278630120531580013719794467447038747967529436510236333457307059333227325254685839549788745279816259247385401898510311089296453071041179825131059601603975315110326214741192726569705119792904357759063174466631944082574765587060796938453526451290847685939752265941909717678105044842923656379471073946107940501263806078112302037959812783442445795720949349945190185042080510481321039666685939599715444703061526804265997751875889750473149532130966430296135286027406963252603340107490365963784185807012240771544818297515129966988939378897984276926706826920351926920184906051762846789668183587518826676114761001339086309651845006557255392454398699126021993555138506171670151577239798583939099823099012492638404357984595042436820545176420078954805649047911650901781548337009633556740627879876243931795514110197202661620674776244608329169955126290173527078533895234667005297535599584042705592447215771898993152549733614998891448306799548031905053884639442235959443374220654901534316020176689210996993206786835200088980789988344997403775971649069212993852788853428626084345227361483346215737401788897573968185965213144504792973548354649475987230181830943870903857424532697061060970569998819586714627176652017461733575837973671232430396444917871893941647968901063500916820874238003932896272301056029080856812334359386526388363642193437811881330843874267676088656666785691546626817817833121253886544443376086526137248192687032319228298309479448856895829305899934058857637948673870788128154834294723839346942819464769080252799991968177898737915511632094075691550296918667833976188486393853196628004052506771880756383324214582705500864827264774228692379698907707241646808780244862313451212950847518960330935203031986803617114241256596237234355557949266074914551529096844526018582896375739851391886190303246633051021597576245462094622252536730338414443844202632048650608129562847676132678455351136388772390914210141632396641928742794282244635708265703939213037170940272423827461416571623809378658605364223057229037374962193550446705698133261182311079506456141027138931593061895468886825971220406358899779083500890503290268874237749214695917720418327750784184735961230577197927027408329857383509133550938755850838470050500980223703036548595460914394296161699200335087227112167691785023381719769841287227253619752370023426698436345013216304613941016919025425461176998625693689641938141777426011259160119281338986428460228457287564700114927900393028377593032543091862236905311013736089699466211361280272525933735009927532228178119298039659022032057657577381927933860941786389791680916828042250119060470517630336955758032337168498190275484724371974831405559942519234218680666444219492209225331611712732679005620150342082101751374159396245330534949683286431005861769102895195181008629838986298482593556468389866163650156706443204041285255555751484776183596133762200288063989281946064688343587824097522636826656701149176921544256456988218167326898843715682618818181049273000874576299843105120625700096370264507301392315963065923493192436162910909696886387116479037606561835728224684162595348733580583640058824646723611385495981340898908114414693047004283077692467762001589722599157093159066148096524383330881968291891223046259744868976119485656032780666043958777444786388250794052745269789602210259486254571990426716114439551109195184571382591132274564391057842877903049828480435328020492930325827358485475977506367149848304889249517078648430800521493292743552663477919943365842260426915305467165519691096104924532956785710823338772965620476846579934224798810152730394368266094215256965365069125997147049886233643736662302692942636849221291225824561385149980829360741808328855096743607287254595076203465454632868242945992852014995601759075195647660216734905903578045032384163530219640980062866278412824370415564609567373552303954096838117821217194103678914323304135869088451686477509856803957499204384200800292380016553472480336984144030123891523782269408643353330081613351568208718897115122476815782074649588390629424560788040462745282676047246981384741594158149183574421319240526619307459125797209794019751424342350052848717799014190177973360979482186246188722567189473768428070966142272773315044406121427660724695112256108129407581690575752354518606162676863816962060741991630098078540852501331658484216323400057489982557075346138676129211839367945191588812461237971894347174206745795515481892674857488862954547822767980990009583234600140008590440397316112569394057699208933850503432066333240335363533038625944692253916768022212783488816284581757123355209910398164651770682921286771865550879367551124769266840985038430930426179580372117415121976404749790656719693523679425767828798397299374967727388991754628941827238688959941475746119359782817485329277579288550729693406404258422756404071463474539085638031752751503141598336163190635593611038520492316993898575774032487182233056202362944298352772795748235134961868661734491417131968131683108298869879487862905097968169555757667970145537107147223500396719199513652217429909116405608272048860413836209159048297258305611775282072624918591811107618218341646921780076419922841742108547439962873378506499517689485954454212512891977934017192988248230947494666612290241065675905689969388375796503060615232579676373241539520750936991750791690830894881679502453760072250524446913496598201771030571663104829203428689949689783922821888708640337903816976039182084690282736051534648543253349179465487765596028485960162270567357132218131549120819849649234090882284646301342926977255965319622973847852685091375054196023899137139800167405897918686880140109681807798408442721464515189680493950598365271107090717302054230005279600082389775466144869492018587309459618210516404776596771826025760565956078193149343955650918055644206004886617684968284482990226920093682600941443552231547800665870427625397695380270719720093719008680669692775941864177493419967560905559030361834096614518292128659063113570009068464814520620994797195210842889973687683571019643732681758481955170848949909703399825511559139200158649504188663901187692902265730427208110454442665758397473767581756510608224194136471112222457072784269899396114638105346228814257635545595115106364867764036929432212408011821739361675327326856606604794254070256194454101961141096585029322370751834679124491623038236452062223696378831832703664514229897653190305264288182358721339610591664360578895056610008003122907219782789511420067990692550723973460684158662578037852003642571637128501505439283745956522536634093310831578419769412340834158431854903225561169373572433379448937877316182279750824713687557844180274796992454986123999452604542440193974982783705629750693275891730531804453749250969571969510093975883740863387767017170204503854030768033820998126958127997204210196789924050877357562508839981555486410084300078939618012522507660530157938331472956062197363304088542627006442867253267408507758997240735625732909348732086175171064049494513937086113938491348663077095070046134130545852362970224448564182161444976761561435910676102036691501535081428580774036431770455548449170408319832159190739245977770182760968016300901827422187730160640267843414949087182495270845121789748965432961291734693169458230100641983964480825915431264496077446509698773424406306945805681613948833415257859011020530123979483987080309709218137574246692831183970483334604218567713996503657819293448304967826663127629934621863127202720787349726415691441253555279016334937865950492998369206184626474076135073541515935355297241705594273449970493808632116127490292437344954687463534446408417097390110828335553733749823622923392845755436256487420116641583404982636456625838519514720087138926893364427304630752914791845683222717494622323973335660548753528725300754229544498196902304940931789334736999503345295459864235865735518940921237084321573883524141578754773062529669226449290828661396929024354434544438764089675811008384401518615841414674095534884532704337898726821755028872204228373694230715869416227894877769218254638192488374240217661017207414882333307957566727490249789000213330535470847958978532328633536247531890366475675424440309351508414394019936801799423280584825604730372685158130884445987139907578771499728584101799926012722747407492947216361614079237095115321618951839160968429914510870687121558161224689308012702604024533761016055929723125002997205536906051953351434904087747280698955841343488592972456059887964357926881558158229474213206281161499015351124154350062753395813797964656185486158426100623026427730543649716823423379000420948638656813895974092827014220974552639009309528831521485025520986623358839062287903123102630901482192032923103053836100764331997869214641949631784701137160799906404831949444730980218332513406157825809851016909298813142784492906406288603116830644180756977630711346458785667296716000193839219504318223926199960084138681143632862650411485019364839495452279113939305964961611850627240629978901935171507800779519642463252123867930068577819908430365560091249063538423462559306067863259463630934746305294625033771684705505900543902017356068460602850271887038930411615970569767475313618712154320552146844518861332162892610297097720528254119175073274998275698378232899871263041628753337931826008329236287519694590520486204447103925408706208803688553505736319176129097023839800885165079854128468466184744087518428902722654408516997812969111902230886127229225490040391634117210874568243017290850161530674382109154089782921147235973129467713047894479687754988902050847401013690234988722182910020693242039361105123359795555321375984209221085346820743454784309075014771039566996497615533830687696340443452334844848166778485946900288410957489571444782269310677436543660903950650766241970704155829285102308886538675795461075793406082237369195327993385930353684994841809850299270203137257362618000076438614851264468430081980831960546247752382262694199711020081382325596151104526571642348970976692120213983260101825696636922321859610426573772277848866757856579791639348600774420810905473724680160909352317655376783672035689808485815505388063959916819855903060169694778899999137359753845170701656918240237434155107156815340163231897276806523497724471504203635222539907499604070126730911314963645551619668363828430262745342142866115860080877433269771824715478656600585153389733467911351449560724509023330416356143769239224434976847708650925239319370743811585171682380677946047247194032587458955020012658308555808598196013553681898401859594613227111828896801197268233659931058247841487273095576938971126842994983742354773221256611033968494082340439380156389337673852220188255223940180567010147418088804154107137323696001809601437266079628042058150072044693961312350721631250182129225342490989950750513052459048124784769547554820351391606627689910107213077503519310426661938640132952289158843595850429797990970512433014052767676907337104387831467855586495313522638763394625050638318586194641211135965534487567081607130734206336792888546477022314426445536578886758709874901687039189705551089582153638731517594620190519581307198127203269065652845046239658986051211265043151739516810012861596470313916684941836331454618987708539118095915204606413042305468377939821142640806140632936701015915993929602756294109612755452643510580020124169607825041617185135325650056335085470539504539094459703647622635960732992327629076601913902038365643735244236052935042416255312295403774794375650025839444149804841012324845477341926352676359210726304201836534738326059806378957729227960375627631834609470747367034731594894824885577830494655656021963180142553300060921662987623376834915379861154807367461801902580534032115364000976945241486058831250920599767250100533305613092414081921375803290177953600006630720142141663632756973179445464567417249106547177713290908781764525523685250383860470668327335692122994524576554708517889918063104693709494049749426649230349946072070448033302739183322519809719566810481679438285252109075458252051266634115111490772280147536110560195528293301462944177629128345113822176653700320279123280247778885512123243542479332610766037074517814954180279317221117535848844753602194082696481801559142161992684135648296202433233162742086853672023245110317062611105605989934499671367186590422465172376485085606439777132502400862984836834187106587937101249944528690853367054223393842773213340933838084639758691108853721786366408742270721290435005364028242454008976825403171236876633133200183833199946129799556977242859858332473055654786814790253926012591363887814605141905697238637832973604243449472742049209399711875607027741897326096503173711505131331064429841124902388130326724098422096519802585151787548511177274112711039970954393997488760061436759677953573653233282885362893322032847554006847092303625350948469888016293544606491555474746243466119690530996905046796529793218336521305330970089720828576037760067803404895167092353877573571816149277169924669476072143040966066183848119734574755633396937643239039933703157238917723897566424675336612976700586184015228652451683566693197315220946767781196537844265771222041913076832476510880420092418237757735456610246732811909172227875525057435941207785957641471712538669613111536230809224068232418966074363303143246742433415523845146884362553981306149920223093189674022469024770075043420518064044226740660958685121581024452003381066112295208563034349858701107077517570413868529809876924856543591736547264601381983690648358760329568746066674250233268232480901812011577085681602071804831177809862172242920304392678049726144642976820246508025163707109403055724897718879011145132899694304854058716055301348198707205255718123260693125748114862719615832853998473042536328760347540318082314663808727741257749347299078120994510514613084883117810755882550512268859362512684288768414430380298626342140697908164885819106824302023816508202091154394528031517754270678730727075221929481893360503124373632415330249412690088230281662385819956719603615539913024273041169137620419895213442392015019512056301427188218015103882916360732238061328800282107880856764191473126182272662847502649673957739732126049957708766158592637949839502814048715145061457940189749030103854431450837556032027283422496891137991408556419041516478015538841893256778140497880666778470944989498227428105452761173451449538909090228615028441738426911450383678272865941890730800034085676135764191719500168518652894908234750619664885406403507439943565302876462982711512596101739528929328864027260238483719169090724944659851328905654029454056068390113311878499058950685274438051223707287537803756682438896900105836839353490659209281969893189793201478898490682365171112603980612929814351864994124148655999621710294143308376658429290032481376962876039289721190965792430110888962551273093842254626955329154713148188774026213998836889926603040767696124921256093123255061332003542191834553031761641701812588693092600402524495709515307491749860011572499755643968941832304501749372548488765373008657254354459020696494746546344167384763404700724058411178695838761300270661010395080472047192842061433255085789366436918450587203170991041616730184782368528060392479889848263243710379577476899528157748111017642817047334147523613686669243652726897222615910012577002909362468802676367323087729476627290174076286220169790934661666616517308895875955924056841358029133769151899951189854535685514329234509489134371969958765576241470013656682959383218404023050604142100811756977766097394166605895430397167101056180300797381313531041788321152470758363715936399081659146767919379883633176753063529175376597287143906390673035107638855007093161970157708329613595324939749041892899905960624092460103520941379307750822165210820330971962418593876926864954834255051217056788300344415977622413746595824433735808070135385078281516443515427160465940198140471156472843519444315890467000457976305023135571900050373663433117208398902941804836486859031485358512787710688309456531716864758510698576219294589706846837993122159447729145939903069744228273630441299522779491334998916389023195228170272450987094915495292793896054100772418457516444727096975797025655053133160005245596216273547499649163921208212668431581677315591831792622521367637108960547339614532217682245889097674991789706584130079593210239395643819949557437588692234666491780216085878024792258819152531862757600278491826203832229438838094063484180641120275575226619132233977027170794429230249903200985868208195349353505215946329486265190417759058347246873532091807623949133604482577644615239582159084497874455775710087088815408882174289533909267789777731153155372171523936606553130653421190209115077947272134208389544866110313479108953880339384472709831605158766819681012464506081480005296351069305445295847219926622726655455436689037737947757435637524685777690137396197291880329317741769463343954426499444545672388606628892906394321425079710127628773246926597721873518645716251714053036314556145733742878424922405468402137947708299782597153385521318959929470652734647088398913495242753183471953972635151621440634023200600430344992509945375889090155042439434653727069809915792997727392108109277554016692511551706308114871153908298071498627750387180821431823696425593576605317922777689606923325303418294427392355811530818983172705094975071538422643185342506138893788380294518315750080785599582174654204537814942900910237618799563363037311457079456271405624949374660498637722753422521844330661482915915447506383324095746400863432736460258922949736294175687645530467504645451851707734070874751462455462013586792380367490314577591133581319944898437857230040384436719898877510106238626763261847958148854847291225435634579246940937070872253737323969581465178512075284924562421250920559057781260046915861560065005258128209209861372944611875699584085571679570527146978782973634646005810842653126907970516191114675527272416911075205734680117324964823133866258835144042713961228152823845237272167653665415164552352988506507822123821727187426132227077603191903774734393525611160050319352298939490993174312567022756838224210572225121190474699065959325928394358139192013057482246742922701435300441274877432262631796972577129632639616679172884580014234711249353616794602978339996055218099188576331218258562847167714101452212394519777053191720573083241510465992396773112387099449531112342576731061919167783793697650870840268135868475042950500080099476276704417130820247374102305740695422575106662551070238643087101277539487859266030924523283009347072514278756992763366318552782243632506956166077215753115118617286094653384091142102638304275890038330558376710474096278389623409398418879023597650964892275652487423120780035450477600784122358072079222708231202885934724825004243614037381972765086434985071747870327300200998955172522022655244320060559887178253904662063715962317415856169826180638672474301693763517263296421693064465484497672580831309900020296528130974254279607685644879659547671634232240046145019500912532999135322533919885000636410801412115850739631741497580387433637817702951781784516562747989693964105790571479455678673034249525982511900403391453199677808405624565739910206367682846201606845108768611696053079235876545282210068708114834156036607117359943463991404195659403915344914361604705766686617820813466305594453076305921655967016656732791243387413973933309681023122846360839784921647962792970740351682690399686047412059962983783612180728913662146996919303900414276469092181357484253552256763010736765369430326277998388781536595969374296137298284866121292822986706086895011763060095226660971512488793748776954185413373718432388003811418263923865560767543617944668905706214671792741534149543711970854054925662617107382101432419892688519638465024060101755240102718131707795849909333843440464084866064442740189645583179643062791056183412852219879178650499483681836296896640444816765602166896293796426531549468962606995270014054567549443222779503485432194268679708825047217382473680853947053323866892040040880260663999282099775885011339511647938302502254218708761277697223988282970643887136607402036954433272856139169529599167063618977128378135563087510732765455243881027189103470794933699499256695491766065030292407960130370664998934935196772552393054928119722802439574919282474050279681922649240883870561729887785311099935124251834025474704904795813761816946037696929730929948908749466370445891049385364074059026644331978495700826368399704026358086590225149898113352572793660728232602472994849162977000228426624403375187996356540812746723809503417155974009195006606628823720273854159839798445540616291665674698962791637735753999646337675051435171700357944976052833346430449495087939753922217642598208691822707565031963675126259382092935387153249111947560115833149001742780105214782866621180467379592185667925779422375383373122800420743108865089092181578456867812792526332101385220914144735481094397499948715913791556794417583371938415737400908525724433956113524618552841401046719169851727275505403650812112737060365873425645763271014054133898292085545329415589791023643699144556924170226255878699210591006636269254942772924077291712005406409380286956832351661629971299633392793405086509273150733278690635530286695343838696367873142625589926902094783131492287004405082067254108492363091210231053780197470199683066083555813349522106127255968108463125997494273221496428952208883821216985661460262891415129843490531592713284518586007745211026015716693006772737943791295216273778852898417697945658523510434782828045832945983287766515863489429378852513060679845250095662285956759240151363233267121831158063129238782915338338815220522206833769386618531967463927196159758304685334377801981628395627243277025058724049742489505546450780986134167470081391769995992384895109843183924720217415191334863686459950637493683724048818688554809725663004483223147255865084501646607119609228079747633025768770559731197673622621826851442443453590597893957373522972383670770598634638721055751102012109735976528613034127463192951594855155388839287220372982361725642046623247603309263916605190778852185651720509793171937048522059188506763733423866883603439240157915199982172889095803517427953524520375576500427035205773525620958268434849020721315590683271296542368253785695881382701403493004854597144029083690727308331100194081271901573370271495750100456093846040716361162108281285244538578791036285292533405681742574350747418582768097581104768184094044757459092860228520769062542764282044304986405382859865482968471100840367801586105929316088354100546507709283280658089667179119267737486285604450634326265692796087245675090304418231938770051701919775507423737356087266646748837544720238800212670012870593208674206402942104550085201638828926847900303197147086130010364732574540768521453334820292445412500305694352593400140245048086198371322092704890974892087538061820187360145985977496594470797775376625455425608486652919244419688414283974496202267778518200863011880576104028656919097404073577722498789094388730280720533499036981700896765907861881401313022401043691730749673087224608411661102303917403105605854103721100213006162122943912706249303028791901921968696882632732771766533907393728300547944035872002161932063129595286503137896791177270219359588344171690483305939403029115601734609012625654840457847699677114360275732533954470685266626182783122570343311208762720443010997812815840196738333006279464895659691598290932239503348672437234745819761469371378839231348676552388550930115104670992659065238987517118380614391150289359259406213899039670007628793946037048152932717251556692105856902068470263571601025497526716965931859367277156675584313047454375310606341320060737935275846319319276403349240556207483787403596105836369295180078410477341126981514320963923921345502607623121409588976503705264532817730841456198447718226147945343449764394600825944548398470275810567348008981653143374918125709582732671533683996861069059000579015159245751815244942164251697072278856692807095535651339639599958796911645762767456172977459299680849104382192598513072003520723249222290682432173874351710754666869656980003396748353718449334305240744718461932642453878490138192590015329109683649269655593789450094253532772792190085175436249147532127128759687362436193577688039932305206532360719015834772326908905908904224286517386273233900263333456025530751896257796635365186766219020078845389311023651788965341301773648117551239961939926057737869900945081014478712501230515743883807808456493985609940727883394316376546317098253481210452382280797179320246947459043010034248072808102578475230704711955162599117735790787996527876847314084395354768498211433951452546001731835340037206874434591359644356741797746440666489162548062935897142850491055590966372225362650924043047634145802366050271530484202916412019248917771679919733829174792480292703319861008186985751905042112387798286767853954892992353886221098474671668672185224297233095655447464149165024953717740945729476114872309747052815257491790966015289011836728782510182684463240471220509776095956062379869123953381342848494427498586534521543525033405796208191727899238973538280508079950657519450803610568002088699073224006281686068097310897723994395471255875268030567953428353141477688678097092512714586974777778776307928563576466945230111684809143713078825323840187801475453033557960615060746496376779080833076284895332806976179807953984250588598505117438782130424979640088229325807745920848384931911403958216836625435475672117537208127495650571693091238259325117774902100448046701049351294253705442583144808245868104300397368754555399139441648560514172722567690330710736610232121100952345182498991602267424019151018730209147718945159928746778807922786925399155212898305761117514677878419500180452643021000308105095379687019732383993353763321929008672183118754128265179757855254680715946165787573310878666516651348993301321852547414409840537999993730558067367318920119703373244092612175390064858711009905636383533648358972368797865272708121291379565503583861766990550560604251234684520657371523729758172476498378313335481609855060828534573270450191140544065725975709918426197681736126429676710526598180083154388316196384453501108044112238376722668620657393602114553196775081147785660402487287272617395753715536572697064968024528868213629685658683650132437710493010077777362708570851513576604328285041137549578106221880592017877701208953295105777633150618479104636921469561526238267975524498135998732309837483718808393713149316807064894741071106856909001519640657426539329925957399174190972201350235706036259774323541430837403002633469067262748185105647419894439471610846358796683393963648560101292186020937128968680145158746695869195725908747440526567137385936486526022587588214531676844025184978348913285458934975746516950774086472917511587710226744034115857425642968837728781082427455812488155890377581509637902616781879017987064783395347120772673470552110084976771792214504236976123274456344392996831566118285006336214500366883735580401968247659186951171203971890127835954357849997380102012275815321970715905682464182751656486017144110375538430950885044938788526257305377178162901934225170894455802796461153204632013984510505630385056793865126943677247066183984107447901411373282311191273967557067975109426942065822776745194160071099436978492177283996724861002804489843464223435247092569202045271006804949950007114423671983849996849559356101746279851080869156595277211496096005131990827353052061333016062065954715844872609552842983243746954125889717299449832701654875900827195681901409359269098443160327734860813431585516918989089964155687469406607302590071243678200352330601894320623205457801349661531301897909569196550042825109058653267160674754343415819219602394795167488626492209671094198558327474048888774904370656996562647733181643065038486390109063490537310721774034927241466243748668252144144645360498669883451853217664503117712264247104091181857508464693051820500597382886825623227386533363082668669052211075652058697491021433406995496177776737269803687046362752134826700991253319609935511667207870783507573932858022881934092334220313867536428216508781183276913145073486995392603016312153978633314459973747200474563230633703842526986527960736225932527115138008810318417622742579984789494929561805986370998826710747161924495810005807890244997739250940170908694328368753379552239175265468750515592111404856639492433294797795974854340665031205120040546769533170332900633508062371761463051958383238562639814655171490667443979696194826447937384156146701241086810251484678969772436127842302804478161933588650041632979249125752671188703252532319471512585145235719832450318700651584957636048115297120898756369369596728437894720207036077225225945017821235043406128512841292790901454403524851653919935824597357514245155458982360955296789639030408149772331933597779968204905721675295448395637337745622951194294850325951134882873151278645960286831814190197201149505209752586161494765471964734200958479900404760532853408028970752897386076069757874441124150527308671599954011562169346018811738935636590411418196083426501101188168151032132534815092289009114369241781678727872779131807546783746418401393476891749405450723010186276961513738609399743018874917597621270801030860715969353001448376635332107433397744731840148051980836607800699214001804120637754007464812185104955876525561156047564520415966775908911225276912143769288532146497476006550133687647614594964797711359751746527679542474651413552946346350429626902334773987350451001585883835612604281660025561294992639148719636547027227378390785492439442407816560326355864078542415415378991838505597669860887067262014970845385338438706255232036406632453738180280905954590262690945718293746554695706158626424204917277130776284386686680592286613314556939993190102799698695733554104638612603839799736547124704520405190969763744464079102348563689392465766397204797560990315283854509317298633131407920613762917790665843345781527929583324500610716843163721433839693854829402113071454078523924799387723894834263843235754640550691210456506160071462378990534941403159343096393915698826003748305083955436125222092552774568341564016639621474780063322020202721932110757674498168130910613919359431687768903698602810917201421814764900536851136279169448045014593224719390167544775388592077982034532216567703482509478632035997737893203395263091455060284927184130494366293449967515672538714070980036463448958175021098892334671677785888859827199730231453193862336770109281382485047002549844817683925944331367209164691812581988057517150361144682518231737206065363094911821821959932079614957667380075122228206496539622966260403022174678863797083170048670295711613827857146387617551657235727148563035767596667685978743339056945270898308745871467461213617125450752750145047091502235166429322587550582971529424110941566062523747538580996830530959445307455486010095341079903702968612017401349100857908815523840186810442697513856007036769856188868228512666434896050177065737579594301034355245300351497671596741181603174727705276307893612225254718601740988320699486494085908391761984092100911424066604922361005104324835954857795391648858262531952068050728893082690600672486931936417804624503104836326027865061620768606380828646202154581189605927840070307808534088317881622777252896022998917000463777593954918699220602803953210893507498120644994593529954263574157850980870974979727243809518131837508677262677488478869437485160058824146623530162080964435379195544999420932088525338187308515180920444952589475718306993580880185173020844897478887793127244594419514542890698653159672755343867965177271313075549771992052243726474343044831534465410191456990596745013530896781730552116218634359352746426775565553296309484815622450897010887899991384743109922911577984666680923644195536124972982130113397820322105575935506273167069352715940367016527248843202074711054238538960517041992431563407466663971109713788335699498626068960541396280139961205991904080632745275256620031555920346557662604294809266730005586217936012158658288334063703669825789889283770865117065928316895797961781964055308638869159021360129872136455188453321794362311270317993629799620197648474344343044298886694188741045036945721314023210967681315409599702100872047261877993031703811016351366925641197017416528106758750132420816635449078889812523336112698536482786416972048327747030178953934257223141830242527064404586976939718018150982369943166919336436050475421027097518858163822564076870115869579958790197843068210126795583465136517693082991734778892966621937989419291967844982722097974022897475138296225043351996927220472632760563508457521586117336209215630672063095298925316419397265031856743847864705360530807297978313953894046391868987395516912452132478848561292787207706604495833402878055858231907338195961737843678985008933974813520929180999818570798983175113792570961302772442103139974620722500570207583446386320982845990810922427234897143324667250239435574177240190980854928091756823142346147856905756249974200582669225544108923130225954216024991110315504533668831841831059791212236860067162917874431460532122632565966927006737177812316011801141277972132812486818294970787536908034766672614783643208144437664120154708196983196245541067220887667060292547850895848421035201016277790092293189636467466793520529316750050974280827428019828609567558122113235650971697621925230224689331022856427054728989351368040963011536708893319788984319375354761854684778614232103835799177648618601329761986910672838391475622086256505899238604157847549797177789284495182994010704677143618689143693250447424892992429182898333627039755827860528063734571262967098850980847538398303456977677052264115863849731289923771919289725303811797617272867979929513278633984553410497972071042498242767538887956309425976918552626447977561416325760232014221933650801184199758839436699019496679661867555629674728488053696843384460231142217702136651808071045354118062420453408868698506860614113955202836387571191666371928150511306810521456617078951364587735612113986464240081935481358939666614816879368206229448068768083001315480715538527274050252691496811025734952943645193212438772472804415584378602087540878267626528325983513401221166279797106131625456823688036926992450440781884380177494513077579619765462526468809457770702707751516144865344621384669167371192201654052744705364414632952076248219431662052638795167140166317041196034811148242342956978298513758711308517283124276967600302667952648411864911909137069078523379568181063757917806576079403693680342593456962835387809583145246540407195925186120735142643887683736582358956468085995383433389676957034898101244494614470209968126378001713308654789963061484269467170890592291739711476584872482404653823117365393713010274534127136847581976902686713238309873762523444629515191371136455218011824636537786044210657578707934647835777405444374166988520600864204069470690931888413452544596528716384799522232634117801158494791552159321272165411716904062980798588680597887909330049755222910184553373852165899872548589714133050730530630323786695751423789845322896735422895528857354622153551525021475235752409636562305389519492725988193959545797473345648678489716050585403595154364468638837705271484717306147314742918315836711554393579136074717438127315904406332718916394922201023348863966696010025882021927478927983767310104529585445722070761551733529733486474631298056960123490059739954458368554134114512580348326157860210377160012037421806830968085791411770074174559582770740718769028599726464321095580703395308182363561994079706728831130908650938576666817116988231803282478042916030424864344829832157704763328132701058739625741855863707379346863710651572375303465537881548270185772143974451048225238078313395986009005069924978229588350744447452922990388593864125011415521997333081840676768565991160135653266873093359013359764947181973670645623890843210373796500609870971882822833214245813458877723539101346351459321244610551757669244859614373953729657411156085291895014385584250496172015474743216671906600555871797735317825060387549104956911293437547147109124872404774654305023949020921481223883076813156360973993726634992402692397112006357158332435925617546667095054599382462514860297596739288323350152660607821546185793383446576413404151404219115438495170398147497216085713590311757304701127115253899585506556775228812362644909859940456277190994286107385731302044789121994323734705321769709935818931107004405687937095362379377281587182746781009978865838037299314065954035722405962213591655627990972797263226799223561331410529506970412293764880064090788422521319880745282545283859816325717601502441788605132412760279206807412407858148269696399682393713441442610606309391895729855934103598033228951823237723978692645769602527733984037366201810014473339382578923513233960127800397543560525280819219395008158749893874820173194501917709342285690884383376013774902931645785109146592590422796729291111296256558423703502544890184553902042751669391868606063512303938294747646099648487099318423979795947079714221725650440967870448323215111547735400460370386938298903611751108892826100210569607861565959600106447741576228618450442632599700824177261333265911399540181923974697012978724329436946652923672935639794438781403567985519405206071258216607227474269724767918922532718840086777815627466308960466891596991240954595058840385873727461621404279080723512104580202596812351462995459137041646853979844244935065747346098452101402828891535487129019232433234724498683920612622467722732504933675490804082282394274956565310610363054575576018609553351141241950627851357457475754417875107322315797468975164318840104774902366070200645237152965767160621565558505341753822573545535647613514471002262753955419613046600550048380668097986363384724856101148350816041588015209075176572020251371017253818915542412414282147156652822117863495677664445817123463066389997556148931290006366761062746474421975539736784599567038625966057478155169804044888382542808058720421257427912824237085151273591233953295854438140744630269681227615472254264584182528780342194199578719060407118798565056381777232187579312622892502341039891124562064900793785152076427790240273313147886134720369508486704263729662283713596202212522650313272567186708756890543014662397651191635958197704147208703779826432534162372816805559908860805428936044054018542101528209383538552286619059361754319806412254724233938388215277271498245624032579163825712628436843293720855058559882231210503817127891720966185650559721719756887579544132555660030017213398386021085834847705617269167479895291815471653767166384781062468442674219102924450690322051152361817385437804649191626977681274734424290693643231079933648402167650095983147656702016641671009377151273954313421236236200027179048903132519814448757192200467152379606734512684318121004340478070432447442158659816072682197661629776676935880570758474650401083679073411900507254957162432069291863747642391795625340032140038061721860129701868609789313753338356572399721645660210301912176343807312864714670678286024643519720155857431526172591570429657783492386312667183441219963074529006596958806056870722890594584708135658305373643964999898222805177004114222714220062277361880029503267068040762085821655940425088822353826562204861568145828592955862585188042900236333392967914301324077068445050195549082356944461298620482787787517695130176547309833680799024965302769455741513086674882052147334138759624633475191029101359597290706262092039315831468174074340913204335971913399088805920445344889740945110503378125993952798934230881643611845534452533284209261735049835242182058737077129549041472895590765412580598582232572114550605519523747524863846036721942584122814178999499593470951796852579848254748904002875837464755124767235244417400937166359885718678468227514430712576218228689138649424002092776497733062094963062719464643984256734884815555306438844001051062985121256599377437330541511568585540715607830583171757092619881171570294978935951061704442305169861631721753507896522907303798470398872121576332233898073159468752236768589614947320133882719961467976684399620971289804303094859948591804510249961714400373605001015059027756252324684076683461082121491388492856405691217635783850042187802570174048783133166909873207835478978238079093394267826101325272631043637135580066701985079390898777374226352334768658716441121817186339411738253826294109653835764457604627802237301353069125929666607229221779417848432489506766982819552912125750069009219348517250984823003196228919666002039813021442390960561444356087179957165154931080114985652510910430874740928014108041596101699128812745434381378462046576815029552855711211855032905027202502045611858302836760665841537214056420806158966284945414008868244879979210046058549899872933771553665704900070468152599408468726452596193584018563168338805547642105016734286423509746418414335022011077817145131231443826409356131224119872262256024412258149573115946523228543710684130981864780376160169405826982027358935120626668759440839820501874972685715880435893023819832952766894592546404447197327548308134998852517485247956195302587783813748163481357019604511475341964771873276093470466773182180211489320087632824521288438567747797395934544463275287065181663829899440622010006738176850848655618258696593156187467678018950870365824077090183319526982375284617734895255358734609739474847902624469054381551407467036335250865206771061661774371848609818979377477926392000648497437073627023012708955749068933110088659886659948046958589318799214412945318178405865241059807721189726150814731626704106161023708273388430122820376440369463869909689598407582117328363317622723393384342562346084497071407287768788873681386515583692600184153253456276406337270601764107548759433775075640513448539716845510911198996101513718847795465212969182386597944996988791463981895485265927817375920738992101704567718533713922400385175712273056687645682932991330007251014692386718609995686084655254654755393249646420007831232779595577828363440228599734401481209268877307277693234871676838058780000235373796129774415641442856497109029096305947544509187931283092072600601565013998667016901943404929337942334969958546676771021549821231848203068963502611757562581584371988150124898792165515466381110567733974214745273892988890101052301936705118228744242524602500933391180281296873427726010982795173676110371314968436469860765378170081575948315942090146415207415724844989756296234303975026476252804015404576213484697112134639972563009927052745738964629866787956342024097984388132607248999672339494480839502533494152609237759104284907335568112159777577696533939576098070691854380192912670144409122794343950598798249805713731361630430004771427240481986538069287477149169077237947397074741554453061516542158110187421187006408011485722243728468244253312118113979182001629340826764946094757324347678801978959736565486263779680231596903663870723664519292752919417457104169036719142935999470701547541034475077989010177839834759240818573094946622254726096174696850382748006833613256007564333398285738985358135352291591324785511734606399257272684155725335965185757204073798557292298645344592187280263957728295977520929620217312996598428709880533270534668941368750633864115770170024989003496444458139077750533482032708381812653306111185701688129899082450759655093546807904523437764655527595489480124987069397941419592414845644706396444282330582032191834699415020949104601412757096455262240530315484591671453846234081279298417178549325435441562093415206556275170944279517707435623055778421577926195259781758599376581560095797888180823193897235660872069488434908225873288260829217832906006064636835198912193200214209995200945872917331303259096675275277527296496883739252197982800829902796448024282910133643511873837290367614652124442928589207091349271279169134910438046075727508415927700852219948019896281769414626234998563915782140123888198552179528683775710602501056891621970945245301091812742536133536822639646536722601856211018096408982995326433454143800969147632629613101719446970814116898341195573904514668265431914716984087014790643890799041047058588899293862188587350832116342633017713242273646172733581601115512681533206369956493765825106519925103259122236156175495804930219157306735159944476199881928131173300522331877343073635651257031266940309871923322259058175597289826232203215130714666658271918460379088162613386102617099888289536559697515641154592020050303747218913216536298725750296656732467980729419133174224305199080061179482255862688897344767587980829456247009717420199603017853920729351014955725562953912313476448805840007703703818262752594435658506401221938916895365309708346002655306795478088626907768271148029092239218674009360135070274073447910910248172269132335276494615920493572972872574098613402205074816075130860155724808532676742025875912136931039324576074909644287116275899769456501407102699999315770854943054489072991520384533141580599643784223763243035963831741320814468369391856236041587366919086267164713232636706477327921976920144815374675463451299865215998726456076909445523206603808548435509374478438007384439274149883918128278827927953654483468489075454629527857569693113867734663584085095191906204538798833237888699706666238535957107537260824265845652784593396244111721072148082761356197652640289363494348404908914759215538264781973330831012766424430070076718024052576973304710678864051342066552910160034818775972201625960326975791954967883373363434817355954042215990368991313444386968864853875714130661744057055147928605877798842541029517407557902069902606198059581045436463808949624414975438813127418206100465104751301138405263658132071419543499069971051304551169465142311593919221117131602311678356397410122976822198260583695231752204995552273936677817482758206952469758740817170321469890836709518376081973937825505291307833041410755013165750342033457306569919686349999562936302202001932635847547639409084034337855163122595021319264143225648287538577669326325230052584709770428975586443201138247787601939038433160942079929736798502533461405420365535957670865251887651987440858936048739408494323195520182966773471762448809887699022044197154088131993432498342239402891179698035167185085234265310293044883084861304578916207466460170460964153680844579562027663399531030755417280195567343377205927287535593759642965302638179420699692597244167950154029113846534550917666194015418751683359530288870378815258458077058999871305298290993878680960223480579811391556923616536502459998012412179209401655214121557042291922410215156328748789010151155175102579092456383379096149697606415395642044564887520847237976094723031220182051899234687883994749497894678740696736559439092298462214675824130353017908198735671002226927248809345148644886541932207443749412477848311149082312462142480341203151575948217694523926607865400819665485290196568886881506133462321897160626508110942795776115658269673747721988731818769111519026349551923431264751045781680476652913380962370903142741380227051119117499990864973203372845967281967392666428119659965241185868916366080568684884321725336946379685489767542315769725425443261676624702936020163516507993159566570587304919477074177247938136199859542859547030062660595771251030502694016266048990405301621839803982414764029905995636018036965187015218964882523379947526904861047168880798659698953200201293409636395611024819874896193705027528621303793895326302413629310307987059540222114043402609702249862502752661442817572927012348397295220062374271587553766770105351215888202210819992049592896042035009160740571085696496179411217228433531482107040007209385303356132562569267696910205627250357523323699498075667249382398974213699854688670759602754373269495004743079265844271798731621032087076222560286196380119120028864772108450563778751615066230395523460067572826753081030381500433155761798452065347571664310193547072773307501340397811082699879170378846606549093541958769443188761121326407149427936445128403642084486975632992933862942059084711234697696351697463227538852756762524296556417365645975037721974137779581654125220769063176081749805934423332004973488251602114832708677795466587855779554675166912689243480633051345339150537684728021189026555662815177939288593292320147458470873046718376823669035056804145996123234437918367087675625550984566671894013166895014596716185695645686635203106048188942229847714068185524973617199711848391352555934174335584327356086699945308838043957457852992375507786174792210252106062083913763378204475044404371185065720178721861263499444460653134185627488141520594651782985091721623764761420213990173497661327246172213781879758653399359419762715548033954172065837934661892244527988693977816025417707145750288314763147449913619699671180630378898920134633401520670675029789981329649919518712759426280587193688834626930550507604150288812207561804490420293803134631238886350096421036647887219681052081816153267103211370506368277000180980273384753568599880254825102518392133760270069261968308711219985900873362038992241447215745405828547235757607284865217890066873583536953624104816874174881015532752943530957921929041326059996435270735383306652826752163918514531202383485122449528958114846585979678264713747291277343417501933927403728781242232852323909419904469213756292518731290805083645172416777134832628981889351501752799063043173559570188905280686423572532381718594099259532315363532939513977581646996062421167039981431063596421206077630142139748283121905937083193314883996733485629747009470100096578981693625702947520858923462531197108644826229404783794685783191620007731062024751695707811232929899475444226591446619944556289128253183729945516731665099277348401085240307840285667243780271674135048237107450790486792827256928043089085666970262964065300305154590107090602954298453410444152159372012085215636175053576524512628835000084390716220655763845116811052609594561991176147884842192832923233450657653636914047599375695166535398840875544784452212763309498515916565295861416447347339727996301623372403952536909722846154826671387872091439999702263475847593480801385752924785889349371664892439305632493328591707309661647814098307996372252633232683269987217797721092481168896651862157572269051685687870921697096662879253910646008527725144705328824546090634030231416436213050577838367888476072411660537222448262895689245258643555775032747922039797522471169283152476643983539107531887637859182673136520628082883814409494393228707382607382976001476691853084517121722846863461971210706160720733129174582779096728665352325605513992618395786836817502243658548959811217415407295144482056063716969790760687715881581823201964167263573111170197441138985438868120399777701004885265785707385129273082788196591399372810601122182637760299966805989406522335270240856230346169355140133647098139127833715969203269000726577018917261317313102404994415652203832898525938451541780848509247590158307146927355656655895328242642227981299789819859739073625186029210972856738656756912713832919771445815269793552912454406577728780000676868375111297422629864950965279482018269587427899504957881502242062131957843443785245027476339203539668420924331839687480972929417245622099964671593623426802339128765468467588194226329282855756820016665153558262941009625921069546918970296957088786763722821144765325175495855574308125762566837105248640155403186097195782671898721866684003795167936950832358237701411193253389330086312331960787103537657686434259564851744728808242022063872234077373516618218321189815512040421650701569526110121270734201229746495366039771367301398196462184269254025759780967876999244775556746516745347759138882353577742352523872164265394182248260415993304738451986286532384512399914438597932772607125650396774762986316155980636037596179701466706626147078685807021497948924318959567824508518434116142893110233355396322808377597345731780307044730160508277310426517816574182713434119946424516768142549719246130067152781079162152495347814532433431353207818818788518403427764226501309177424672621366790085279845707230680570109237115037323746302781238286870445403436998216019450451807267380140585349601849979407226911550516835142668534270023946789844267595811488286304915389514420708415275390901998949351756617060602103171083150325763447896918806438625181507819057539902695548157535130721451399142930426064971982365135171647242961343924751469025695282373664081930077761671646423046569983704229679357624310891020529885503035165080325608198519907975959366503671531305255334027799753233493225259459546931441149893099916827726474035965621527966771853656370407110877329351594509342932253592761340844441300359307007355539913286637414979709820627285702487792867578139076522674783879692174681010674315081552129637803717708547152345272550186659373864615498149468630935253735062560128745573327126013715862788570856743620993860164113019047267718333138751313832746495486284879708543020436027762071361092800297304349919326363174571865485103836883463983682017360309354576704936088894803639064233490972051680486351384962185093480430351811750695480236143328813245238182881894401917046427580677509077344780758768607274370496205842769509585352166317975611965596929937987942504841984348845627885114295234439211749744550682412483999024099297326254765802410281594217026727903398616890632661919002716437737499723853414471589116911442029770167474626575784221433918942261850773806739204176301533265799399854312704214426253308779517576819614699126933438145635700189957332815285967799244883519325588676196736110574740548003438035854534509429649433352268110134604154561492433697444357897749866599161276384246671340562861281190527560294627349036973229248233253335384535427567476139690602706749048576376824559807817086023099354447303688342819307379391924413475364964428095757885584392571717638234530193950258756682554250965755155957823253887468373953363143105022700444373484140342813427770528969973397684417432565695284348608004740621107784312808451576690321832920819651883871016439818011285314254766632663270499604678615230108862584739515704805703916699562748052779323030010347623747022139826442847347564778337156161031805846374238299787066225816336786890045380942830391392362512244033108650285714571390227348976734224584141920533517526036368921786229224020601636633313758337276692188799060085439531250431504290569579469374614165417845083510402451725722978454992595414635068420300528830957953749284955001521300097208455466626096310048603174581639184100778499938310995370808059332255759542054981249479087107512510566360556181255198648068447511360840168858374899094181630307572818937433526891575583267872471436125821056827797956913726903105001114399107495733639407022968034137636057156989439289333235785456981570896149443812798737462949310764777618261059536516671298506689236278329019989137550467763721475833844486379952507970837691013249425765992044730824248372110267131333471212148948876926559517626857619013448230298280045672823070719334414946318180468368211338818107219412571142699285413247261701288349010565198134626011509301007508525907863443641747751513930989389543219617473396453502893366819883749847232212237173026669293696256084701564467751227168371852284152793450727363444922749880797711892138004544963371833667546758496476023102400761017751077909697006351837113164960923295571369753834130005473217853806149393331954895081560399033959892455917532917633086258229756362804143983636858480775897425311013415152404916926160158840081785322989998866743142543106474785542844447204857695920033798489083879777309908603057567199224325093941059580886664265273107860230662046054220877528032072931272596804209266745004877787172336779654847274481351806175639374503274474950251997288235980867105287551453432896890346305538706778810282625331689890012747656202918312511601122643922960704256690196234717484746100407295276889602742189741808851456348041014687380091533413585786942042962539016987167728892642049255605327337796911177225419826065209145839097376663959294875612553614298573424906921618638512798658133588590768313238694795139403447560795187052878237553990479230380383272403645799475047866535477876286187978122608253590989314365190705704269110216453216820669701459042429965159302205373244237488768340095441672196218338555824255250398035026307683339097346903738180973566845930574489705324477219548359709741329977966880372857599773604315566247917206566071473968320529714083427601410005325441205453295598041801244717178935096723664624762949852777585750798762157283296590651841432333286855419454748975624488792333169818142603387629618613136767183947327376622734074380420097688994259931445993879203662466605147451797529582819936307420638046065745762145526292030488123969642768288194837797347822118628600423012129513265492988476286293425820799226018640958707544432066690074396739325214370515771336863375895316176980224805708278980661239190687354122270312984773209097800003846201971252588608168227928466448363887105778589976722521636554515490243735752788069479216844298871526478116627640854355253805777610941364721287650293531523076204700615428891090563087210712408667139736526833200889297143641062575238573190338093096346033122382953170857301577830096480105715031975609482424327596041048619406409388562660585906920887203940942007774886057217793372458621884356937851083487059156843957291664114981321231604788673240605438814563467922738269761358109500381787132028270526936290610996825857325255896225475689610190505284267489457493537574515811737504030660569218163081586495784777205672693478913920653685535633075473364179213413048342640125763341857767219982277628638068939050327986178105591865738866306162879743655819833711914735143709924013250109945004116532836051527905887258744747696036346120909383905980546626985904667577207400347149671271834321624379874688314717520750059010102206245341583893498284674563630408429806480644171662941273435928219596286490716045106240485409640388219144278960531702573181756154456278768878088870369450268151626938166428210529802157346561963887539614467260342864321386575209132325773181090821756252532736437607923484608480112047197711415716248045920289744560718728199574411834435598200580699129339186096895230393922038987719239903731838577173587897313657287821814173513570833060292398792897421894064060486411066340046054935970569215020416645522524242898937459468041606549587485543152136101904079278984206634053926459904483211896363379037475702924534248562119734337190174950312207340957310748029146735768195075640050908998526849345584616999617967311156363366956085154018083509365928613629086764859952880445951182789238346497146650872415390396345234006570710413152055980877426226118070496816824292900324863353819802182960145069123224315422194697295917849686019181722250038533890001613561467704113572957624688860030949345594268080653428170399113491490241847655305805734743701214644295397443799694746956022299835016932539780592133861591748890872157388865255351651089251193722054539169308339610485372568183360519919074546178991706907968070362544083730818003011376711866519731466539904497611216257890780455714871876501393714655718743294429507686150465981102694411296474350894753851347607791475775367745580838836728109928730025933850199565319394296616738800253154839733722566047852343683564229261267629870622697866607644233603061307576201722144545566501676555190989017739262479076783774592767981839797828376562187672234413572237925645965656966465422903990240942126082286286108508942717146718108152942849017877121555673534745687241339372130990530547369151744561646398549552886800587131056360591265321018330088413700570352873583458540043093790782344337325161160840764225027489512631283399047994362525829344965334250496158119099779522227179932661473019886699114107836089654700567659347450484190552452219011576777163078000878148432924968622686364901528405349380341050747529980968873611593222863935031364011430902139277359720222323359936042598604159222496552381062226740169454378388487625649716709309888959543555712801410177829317439113243459250871299721998961651600432208775469037552845342356100938241294967372926077066780186391919557461987494391324792738328504523274114109386989379983078432747442665346106588933676804479399592589039240484900404818145131339386654424638853023776575595368583602524309955862648342202835402338546415859909829915543242150643118483400983047312557101839952177010900330411319075548647589357358493480794733691104925482753907559506025346065468332794818299836753218823347065062598193367149845649982145579957426091504894633389847539726220120645933993567481297982936815396332084384793282395821171882343684203141956049160726278648679870927873683032433535925284289313756130166231810414473669634450696375392119691179457053296212638456084448823495122617150342402765045684564814622937473558801123810056980367021475673746091850323419858484711950454338561372181424716034313689073757315888529621560322411778407520792354107514647649308218074410082942135510053973358922889759634080079072572837669301179675994687190061755419569848843705291926957160502944478941130905125583757771953177920632719031976084686008253598367896859180069534200383638090699967668678354600244124014584414084139859122882076943494628458540200839081849744588390938046159546709758347952726287934952260296820408326036981401250186741006980480557577824217894294854174796903291928905722545432889247879742928751821716234203818355511881506237672457542735975043935436023879607451568518596818574499041998839521130860446850632370702511118139804494583364248174783296735260534344533068489960626826102264521751636367828452423443217414914565410664805566185553551904869998247760675525086424685259437620153910989748295691781544919111169415575282639127180195691687806622853750212798616081482762146292046741973147061462008124472096817213364624378723354957624162974230178868469722963474153245690218941630505532642622055052263272781268926815681757085933895113879490203497650616720139468444691668905354438740172461455728114426803155959120379893382488083098372530363478264596966660626427675033989300140856737814113033276875409716912335007133864980888277405719800141017804381738241027015263630934786416289577805627207008633788340845702028377615400670603326089913065639732696782930382932312352672344522654136391907710881848238949945274245873862067566379108538619397373181603058809943150993700558409018784954846912363548003867479679505109946326633181579542245792117833662290571053066185584262700746053667125888457304650734702987082258615621454737201518329132817538578879391980811796153853705021909806018144476319532694835065538025732691596130800192523919779539301204628676696483135908176327127575003274305287823862855159347582065034740365735139057678883455658743164295093942278694749092475092045984011129177931887588986592676195096902745044724330851387918977782489244340514784086432353586028221635221625521261142641389683748002611218622551865510389214140832226310973782179060097049298765948103698970024232621819955201672131970427335195788011595939055531866031059865468986087098891463688249021476373116042699413857526287504032206156247768675195043058215552984615395621257446480831494788301220224657068269731172472149299799004442456437664366253646785569007419374496472375591412123647124889144068468307081606763695876943774448222308753176318437210167195857137084671895263242148667865493976790003173806084560313853507043000143764154035709145634968483174102569348993418073306516066779032627580404609378899813264351861044618501320675346860272255663431812382541693066538890748558075600708259820895484516852231109512023779890280241242085106054659485280382354741320842219895038722299483244297681765630307322177800890204209917899565690937638120746824936483080547307695003684538748292023985301676310342785817220074783807397279525357541532342347955102564220680147185303163370618629870810520003529410367025024869917810809493857116642165628491656069211688596000298480433638191141833888418440285734680791830476692216196040516159349004713107245780339797836745907719859264623036338805652794189910924946188739007070370508361041806661268952802743569111911519413653201292654416495027341400786811784792900500699871810052007036101561034025259401877564956466259148037061842711822857663047733239082075602394335950468625986645137892676114911977568064778089639603473920106105258212851297881291589316130217322228074452149133666446147948141122766387931834929450931199236352667701197363125297237345567032352781078248419148762568357581579777098946722132223462467616969646703088312308498543879009236493586543567049372303635930087865429334226115731780804600468019679306178980413810224153106516940587716892619565192852694853779169163268355418105681606050506312633963142447928749023886978874674885356378674431694331107613097685951152806268793297513896380617869185529758361097945448214695868327494084083595968714841209894093941758530996569931834031470179830504659260766239070371295230565328272452557280986635964085281947426701179668796006007656565331506245924774518024726850664079932270047404490181137149411530092393479364182754391760123390874961522869144735459209518111029562371448269059751059548121033388224365770131346967330313879049674380144525315737457816343736070854393545603133033408905385761615524437279426922508916681204622544525392048390740082711754977450395974971969191789493313930063284496581761912386988755070349847162289647324069468721316729438863445992942247790291904557299801295694613255129870355668391097183697470266561816393777155908809487022854051450453814907612573042904725960947986239355538913571932493936028921643418241552601219072883972626590870572547679323723734422943956216440477805618244568166962973678020962119732762780888387183517102834762026137355650062933994936680108767852497447862295880196251357320124824700626587561204868468597483345287694870197264463569115636124512293741017938893093934635115831340735924074832868452577414341206562967135303827096347141751736634486721026105788850200783277923874045372501787256334663553490331143944142793263709879337903697987335955286276861119111697965799255359869127734065056458801035221093674777527026665293146042042789123787904664751657361633988856235820362681544312529729191166503112132668074473695118397927356523969370906180960473911735854439500411395905206997961960614892264133613941929857406838596129990336534818962815669755391409592165680371119040967760869621626127814595139099422166750656139535450592186785269229662641382902481856716262219136628849970102890726780744695681987415640601325245268224979406469890725128527603877150822630439163136275002138850317799056365981107409472126639272688380795841752808757956204019681582107037860545512323439159912351137002697867985258136276919859834983591375075550937521981318124793697574082725500724773083554365790475349150185703321676169092361540304041359123080019139808595584550698777471630579969489671925718556629599605698124877780407829172029145892756332883539098706110992458709396214438304640432641101106074355900323797669892396312867055385921238020752872178380342157106133319506439310925824977082515297909764083324270839261837551974510774637062645812038569505323366169996440505218832697102530661794408561734799493618012797790797791921585091718356232386011496377963045987148018211120352995673635406553439010771159829619364825678601057308374866754775271194712822065548030896190896987538930598911478657307406148688766911279856038707305373149939182362882321262604419871065323432475113240747238364478954063140737120878714332015040370142928861499585812377372776787603368120409508441332862216852239053692598737397719671870953613554682978435233024796517484550199237300507121328715630758629215899957108524656618623632642447418009957767770111106192398395579676415704848152083718780358237993152865691096206823871074514866776299439173187444897365129127430732644938425199776266884075385957202652934485503757297505190560879707127487338895094678309935507434005894898542419713336257620066238313117377013244826122429006666609060667077479829966358047071193071020376581652293456617588915728424003023562041313563379582870497059088291078649495568931252356523403437478790719076966341612399152248727685467648795134289438374201857943084830521461072264112414941961507828307821471242403485349567102487297667024912022819366613862749941333427437337189342978473954953905976371083286305696833794004252600277672479791273929373983198921230639379160195057127397475109887070029681957923158932921358763358990791841458691306979406406020284086066984649886204824008842334916239302220378512868070494226967288764947332080044803128257733246776140086214186949686935505571287994890967083341412257062928418175831046155911966831234917398061553078762452114380156751096121599407792728349942764505145010474807349897529532842891889585824136533396548345729115669292048793827630572707981291391155380601035446026290484229571527195316544288965850390379407872059444184195358309288272682766418428936878343506879849316960317866797329695314124785452995394369379882190002549493307407347962514152688649437335165425147560767474564967294453659734280226697798305235458233032223869571504186500187365064789573321348074633230085712592729149530005796940191548246601880786755300476238441510423853444298264157355487132397224258134511060151946270741810632014641001239500491517785416275962962102273967417320071430420680148108114176643695164596328516694424281544109703874171121412839950714677380152095599463189572163792607642197166572649767562073443178635606867658933391469808735179671263308275739504865925701472135435855838572819085596107754121193670973766972663220901011918250993942611276077369654152595450753580014970122050017836401963562342053405915414405090497452609667326003937975668333570595193358210315152246778427104552703849293363182076996072777615868636610179404720050176238602926869352604764208534066530576291511129002895382546372685509887326188601050371982885244972325209285511873257183936650532558841399736886334692049457847608694765562894516079394857889609229266183476462551704099874146102649991363064476513360560093301888401567447775316562600892554012086441700072648368063795803580379730700912103707653840221695463645382671161660429183734973077008631364827360938900299975899114891768954587494096939959823027687631100155655407018103856528316587983205814643722767394787591111473247788676180830442098854246812102180960677089272736014001143019282128515211265947726626264307450385535533033195799458215805932300997455768246554471525604480608903742428255858100010256974244861728787252885367832494128269500264040910778407906036231756906308484529238244121419113025852617709393507068329405518552359402223949211019842923681024085717026155249038355593060814722722635969074747530513677809824064855659801337887251363680005160008879978631779020768736409917384817080013503095808200593497221425328727203139972899886193515576446500377076743447414440502879319288368143940049575906457946508622727358711937090641325653787634335388753858345611494136172230854745186086471560249769749456112512679408441065964462197796154105395588553821256840843007041874764008130802969738213940550575717226632596905696209700492305467000081613919591726466336332044955511331972197023742705628453475251549578973856360286253784420027231852450319431661070426740520915986926091576242143178254092112108500436918284006971806605402040531786969974260440171058322007831022474924240956704708685336464764374473075225542249623996714354794937689339198890097983240198602572412498016733365475745125184685239198866915899018905842367051992976117895074804885360777814163989028523795882123699367074835888951154391411130742943029070665865190271784398454453962416790433468962894499851413620929816866590157656162277987969353559233008379654550237777898249037749252083487171496124249289544399956624306360551274823578593890818171340611536850386188981523812516206727152718722407498503783967960552764558360921434835386780119116580898523940886945965246347535690972138249693757056851365970369977542527466483246446189696362255567264263499248091921235287449251201781046771697151396633501076657144918830369249147280525414906454663917011868697675790725710247045853626238870971889598252515061952771342354141612608516364112106963681969911188177286302093609417961714248654954286720584739126800482639189625014357917000943106221434253595801281685305196898828222283167947058679431303545737749126513903861990219678493593183309395302434499020315567540115980881814792349620546082163161649918782310782331558111964800311068732350360593763370490200186373508495897637747298238222684976114946971574446409109992600966563629329611735601439283809683654093957018550651265723364610096060955990945181698986671454808892410514395978489414578781233810607213111803534342310152272963014928880034831873612980165470384875781080664754914684426586811514350708470151992108377430833536784474692230004850404891249596846914162698809607708579452918336267934137991231064811394289698079423680985128054820817342828592101603109657115256699885112597821877345908985573900218314707346024016166467027706614144319971295183479689408266125099531442260999155031953039583907691394368834443696763456508980286176567594903092763639989318536713023845968043538977781193939687687720583506881953548120206581988097384554992286850460851197467873712756156602977022008035564542371777713412838758611700856636351663543108697677633525062441033227852595834644888748791647481613955177683959136220974173988023603622744346589254715463434446856338883165986836667430361209754414638365087936838965756906788734450711166223389766034570633940690156566945082099285624481515113105715563991388492351634231494517920030611576914633480542159437860650855332538508631731846303745622621279253180668968812037302834187245547930461446335310687072224319370381365247634508459546890563480726943764670591631319829317616298007397683145162318871082314519498492117073599521319040936938944233985572426360859039189681537358327422076883982827072777103718763894574372247355517329797272994734648574013608966054794187245384731402661366353298472363779055695868579726776587189759660856872845749097681145031650361857135861978294452178690996329806278606995056830343149650737467423277112537209983077554126672970519417553239813321765602786134130298969438650944129769094692722818914517482331114301056581609175549136171375398578309950393715574911870069156899855811093330114723747012924318404378597940942388212554515413572254793044319724099443293245018004912413534882218734061532311976707546382677023725963550220239163055597516223824275639528693626688095508190565755075930244701746160486816939749965976430425141520672611071716664072263803652469305567457405992085798261866307822222478896207714872446060331939450154244737353063780318164823526305331499955397633724954821428102774312382001586922800588562512774201513895746559684039276573455727943818678728995786837686357916801739250602343314905745251725430375283134043138846724191233966669898424887901860929306241730587164971316073959479514827498110037801586068164063712854983109579038474976254201022532641903349715264601843287137693117802286887861352364115946418108808946871174906948982748064686850722541183971916981948533311567842113526204511929478624919209604960247802491020075722522923235128639518931934609149148814710023766982027304580883222284946865058255197986285026238237829394906869194661076922856079254167956449273069660724648086449860779450218426065635200420611671162283607903846857692213555257749264662858508453974650355888563863720086339829549979984400466462959568528654957734389144700596700550965692826261670092016646185725687701600059365108016206075322011511123275916130737952865753108741954692663271272596306547582606775640177045055915501747060476420119701022975613992094796285827706574891132677843621380840102791410645288710334509909008578504411548326662397955695770116363859018112109554097607437252584953834049151980686046810298184436467393509074514482483748276236938171908798755098023577052386919653080455362142420874237573494797105845255529223836009781594857275509716518439290481341424204005574098002584662263074788309320563715266287142004938544252458739527179561078932846439890546314648989870106749764238386283524900098341266965817723559027797143633094012709343779826597364383108322645590451991424938449922971705741370600198351885990674828543151475484910445315530551104510465911272725585390452433061338696558711315250549151946618765052657033064384113596885929136217086472924924641585235454694677095067912708977480804085039268988784778725505123964505396218496854936834363014588182913575563435674806263743441813869208946220236491089267162997844648418183271785073994712208489057378762380867136715604647112562100310353668835025591826686788859303453237315874689869181316028375720710583040887007174826125763459208966764319836653793161091642939205853741079837660819883117131818245959780275818301642903008554977056116758702142483620819661563530725521077735070610271692085585980767130337555206867202895440106870906631650625437670524304575522800570298570594161726630972964855670553243612519063833172059859218145641719224855106400506364592897784605799892275948677586965475713471607268257374650852974420080867620262636796573883894654894648315014143859766524511994306767409634718750314784124432104485620143248045214094446864527557330517051675159492143014836301292969176242699802455870475495265023934937267765584500190303675428259817012268478744124164610289041178391710650600478381895345894068242910488566544596001386241295043284672477174504239367731578628639765874614182215032592616416285005995589672139820808801615515692874440077569292737565896545625254748530145356362887008054538199750429160055597828479179349838360731326316037513105264169122622851064177147064387867001556708212456027307970359435548694754517342259818306552503121286016422611355810259483220994331148974492486714777831250201919900276722863346272422497579599434630498450602268404653826948386464325529119084604238006599721608595428292287061489666409211383491425616954337033287947572021455910968755749625205125248111834283443043844972867639982556706359803689509636808652864034613977640190072566341703899296320818954152335950645239425871752892105788722573391802575097627410902683227388488527306454912372042712936652916712423555823209952433139959725636364221976365053012793264092048170724925967648121891094382622417750377056439932397897829338933016418581345483576885219300951156299824749178935021652630342480702113495510498276686812514382388343448104128475355087517352002473820191416362223385300320206693263983581614399156426356099204279321143513762576418099907075522070998512028878368916061476391659357872607571300914232300594757938688346177495794620837100978204550308590620605234421795901946402639680543912204962520221057578326633614931687207820966649165787159786631654943446665960154092876201138070265279066417059090342446306827286514427168540369088027764409428153190420180093375752946356018429420058238291374573359378254439547160824648004339366965120303712985848920371002966716873080095107566218356167325109744806093106826654327805575477832994887787651020764031098908208305081365956347169936758597676388755641289937039437794231497600815990929468504139193262088884720684661342432287159196277095641336678313659444479785207354699421775528173649600869989843623544984784997567031009151698203446559428718997350951245774636005404516519670817626198591643432070610472586054236542118228155727291142375591699939856241663671294856217092116381048120107905372849453292379095557705271198154049755110567568951154389610655441836221546526631991009236981711646862216935241200168736951685373452331608542664500104554613166503679666761568374329380624822242392774428103408942432746159911015807507655104519260640256285564918980933676881624932877163741491828455479239080118175160340654759537761650210862235784135048514104964346405951401421470289204256063562631034717000320462511711459310616915202323671759479064332289747832544378442429308000154340621721902104734600817248134986396936766379010072554984997602873125643200720892948627550131569202068596807907863214880585182836632025791353170446202822978693905997767393987287850101976087136378309105685787228711334746331735472152972482210487015976853755655751808450102559592848120810658245983630409477197816388998102207853611005174978936460356683973261293156006286302149333348265003847808476961122633957483724912934805454530687904207096600264522047075233294109406678700194284887306947552613081501957886737824007911384306026209903053615091321091805497604529470058734439792840614664678060327447003042252550933635273827183592393380614136701449081964773106398213605549833937677765892708879833366676049566241211521408806948925748893572978267048469341442454694017270654906517822379915771255535118752433809634421278046873084878213398532899039162048024552278254301605948024005391679869057865576574888968266225102325287616260611140803204214839049677371684582540758375939630166254688953504845886425877668968894769302012501905426979590884977558590932939358711954178721426982960490489849321439401122976663502655720984007288024317551822416832738293159045981798477472463008660238503271369463238982133888004074692220522969229771559530199123862122731592122851003700398901208622813680600303536677851242531422939241187595189032174145571593465735667764395316566588387479543121132774715347219699809803330868972501258472626172855181690474613693655780157149062477419969061345301424041969272083320289674771850606113774681548614035588492169818233945941096554009120442738293777037465632442198812661198343750602206364877841069652923301411096836253497171021645256730924755309085043560310160548260432374378160836692468474007839340227086518744850725635511065238533569716318280774147062754235017813612211992268273248753572090821890188851244705812029969937208474493649793365373356991875276027474016843120761636223290685763206599305293501709168089534274076437410764147674343837533946567040685854954264538315228103178882890706207308204759743574371624485527826711729618282114098489197795715945380437429682451628132742355106079306918599219283288142827518157100196341567167017570918512961935818329860475465571754130121701184827665376527663417636262838934781061794098531071719849801657470951037024316319289453522991838332356032179844023692163728280001758930857795384238808277687753345105027627256987117653481117771630498879269327234260535895150926285854878921788049108856490929870805553891825604942375037134822012608575768946108137457921712659740255981336408116630683886719361136417756104293126196156987036203632125502238639234020212526655400748794407608421711137635146905410705561886482488479869246789595835494262677814535005987573472127377734024641680678879961502746513018861710457689748644779713283575697357589894439322524756242632370840085334128520282196719626585297636915614494771354164471223669691215996401039280703154777556890480789563709344175911358332428461404846287092064326043128652150240210566553137515508425097566388551230504414194042487488067738618610095973822525025319501160932235084155183431190563897225792520105492156016267094500782283164340508350345682511527692513967862500307662461409350336574821459528179419394288239048449287994579963164776826701279881347656309934532666425327777762281059383694660668340945816079275439811891150347469275579249598294994207838259767858527035226980491150532905314283488787988984499639979647594652070639779867453376836661810095252901629038009020107679755601901702339696486124646552455843876491391642654694776899371757677307689110143628843696736019022087404571847046819879982509483673055622901412771926976604564843736878783359947533755157053357600082590088757170407428605916088546324644586421499571045725060310042184189201665505305128503944971348913636715238134180204407956821784828200223303030616044462592958549894903826655030123361530181119078011764200188680380380468060233711247856189271948023959297818822316407204799975519376109084743681253823068923835335710702600048335991422530989874113284034191488152888079940093235844178290173641493725886038455790216164801558809247367849450427772762362130142292471735643828244958953287867616495001764308633126796283759749849381806771438569711649208242561820984001510694500003533889881014484865381867573931472866269833859979567706269725428988895181985064156498020274597718547019336742167762123074650542950360128451439004394918017784553941660778630388598053468418004812749166570919764580750132761364236387292578913244910245734322104057892963136943608627493661323161703297577407492076606000451289263668331900220933985271656567476843283161301944346673515906499009704976139593875251588250080812062981115984915102469060529097560356359158328935912200927289807147204271365990212730958532455167954485777915677399585598674888080205715993363645843860789576000092659698497811139724486430704465178050566528832363529194161884491226229637718874455497153567119031648203049079623608928563256433503754517157896093314016005288040465631987673226164658488266836042205422663825681610812775601555888916409142727324582581807212731968211471817194949746108331641455885698945859189114834431694031512059769711558587121172892289256971564795367927749649494814256656422410153852723500982930327872587102264496931555768862967547087604659877700931255379381005293920396317837605792004043009350634770286291832979587145693727454511034015320426347525564716593552391900144706077728829590840159614898402587701672426339592014493649072542697337143509115201168346445365922761247399500037364803661939780762892419380401002834973195537258100256706350123961261107312124916751560209277475587376375110253782426759805739877496843149505704162156723243585751416100945624573074569270774730993799096278089882597788926943552350241877794492874966839118575384046809976504701795715034986323576193003182289799336837162400606949243486598139922645225066069933725913949520470350054454084383183147878244528123572810787681327538525576954364765515659480638496125288993749923855870335124234796123329936747040412372363436332686142557194602099423844436146693789279184501173965794713989283396317709946326797011325316386151037156853677685096244206594784817846829575036118402356577153039479492472895011164554342711801107035644829483567051061570396226670010645878644596505152851335079783334740723647154759115092171660194624184405586221006453504304650619752741847858085983356692458216596484607717747238624540145105764737190992526522978637396770919292849268540134570599390174042270960643561245876890154379683433302268596554579654579245597286545509970151986396605138399494955589921299732547921678852673031365463016469087456206428302595828365866781842617621034730367843662799756597797013860434427261712879729812456572110397162919531469867448137322707199559402988098487687636074119670762297334108106336558248824174305945293795117237915454192231770750077640103978135266161299946219629346364609960398958096567119755448824067292248263656111455696720447179498738146922468958825156244586824254745311036786379324244650375654647418346186761291447727989241197241327464687441134901563560118326072913224225299949752841631085001308016234582836603590027750251986984818713442896140270216659751417613740432060732132872235702087751680413857224798319220926555470510606589333722796010677727919252915002656536485647687764240827635347737764776181012928310982155678325158573399804616435205683739293740701288914977021429496978259646000949993413041502412041385280478010323811772733613522504558054348457625233248575981251184657383366974471462177703009589042120311281531186426559392347008103690893177419646587768207612438325839890226399810628202427069311436052943545129987752780597524155404477119409606408984780999890168461207916207322176214739615656066930640605617760131723874019264645752490935873602587634997008312950623631190555156152931242166308494459512687265229778354175654198204450166081431474232101534574378145850570434763743505195457435092173539144198115667378666605495244581732779926551978837479736132292487613503769562027860221403755912190525597270706440139488569049597414117781023007993580555141483375491597136905466016444976034778067945577553045020086879481802269733525873800219802563636510113842019529972590220607797933185330269378496743333146149297193798057154496272006063536982195910441995061641879795821357490869155939495813441346521479030119205182740646094925737093815454271822136745471906686206353140962577052922448681654264590504701116031306775306680507390728447932422595073234118596199277432329267273627540999161680522406649485172892049264302985037265092217006775296067884066696615119178580580654099038715531446727225036995712720853340398363206057896390533615809213249562918429488184073323877300568857207253234948481567316228943993552778332940621216600916050517110298003886968810024323910997991946949965118715172541433711928070642560564327364431423123507163509800643413892854827906257615072129053354381905768245087406089390613225670965000282124698006127338537760836691270921411671863049994708760112679293512135392006959166954189361273206713520972407352377026206434879573976097700898408583498789478112556722789809486732674118012205140234124105133719025525178185746457481586525326581969441539448201685097736156346195394240433674923839560726921148712823928614786925730275212402734637097398960809530450853022230325810426039177795319732693106040377143914470149464636412771675729274003172680783560108000930753513800726053222184008613648876745255446347976130276282307891791414185651961672910065717830610586131484293777660125796999482481267294676636905301978135452274887015563789531736364557747646249572365315224015480912633805410130379083095152984601491190267881537254954603779016215473946308552820862960254985361312134413261785603850382861189793147622606742301648198669010460701986800078295606618233978965991351740403486182240628711313961019625167125423528991516242280837433239763766963142244966354221149636831339054390686272072112315577125152037404808282567777012575520413571890408820765450723994894714436491040366630488398220949745333481988253218912410695130936951722979255600266800476306460248762712062549004350553042982459656836164572832118537320187845531918920480203477086579794559471415107094310140945615050353805362433325565593171449221416537959169150267098863245465208162080272679203921032156796422001826985866131327264785971137167448201886812714216941985195527915037184304214821733133388029075596089016551418920343308674032021321892776324250870335419225728369600504941756264986283477439433018025887396270909332626511777407228265587399805297587018264106177087020272723878856014406376457845231361880849053175530774647424001691868974766442716301326944081288925092819359161587001891161148031954579255189986469125547929420574031600179199723456209888071062616026708303693408997736956570197204837982396054399874817110602274234563018413304983427142797036390917648763254779554074655752882807880890899026112358976547281122060078990672374376868304027299641486942375555876920520928684286307399525688831641057106324312591851580364353251881287365266297828303531533273027962882492245755494389760624656831114931691370486129569414151119056272731990120567131088307036166576382760189899134842329131240807453368459490906491752930361120518625113832465844111288134846519735300386653467296598750314793499384894616830065346818755465852460449723894470339323541435746366779017935497112311524091318443745686389775253803885103007883687906643941879682022354852445009194815922018694620368754693095576481181606933799644194798163763492353928794410102974282307491705051383375178971428052534233709960213250867908055312372718880020899576979358689190592196921045894206052396638090537659007369364423675184298628016632965429140216149159400049882549038033967184300271047481819037888787451031767265098941077972362103748413089858061709594887361275595431263022770912372423740251735265314181537937152344701776509127047619358491624816320922470315680062707658325163822017011841393543369670687601223571036363601892737349893653849662609990871149429990269878448988678390755219751219988147374356631215686873587366744943671758698976114762510906668663709155133095808177232103101739977546964401096621725910551702974368161020097581148742424978723547612031201305162562832604162955904712035000830228365751754114519001567963724769569174782460622431989701265875679585049377061422079245992193542725617361575719033804174436893188821403701307611833432870512852683948460154810055119707282487350396767805996694072557694046918498748408397754558165381415264784982681176237964953463346324628733053877068322169229734772888809924011194866824642558911148778319226015630176081713250082508658346327474294069456318447658597411731720148549938081438549565760881450887829949057079037942055411672168599254018571966697866710871667889012435171074662737354106596822166768918820250912001536432979944667852381692954728818872574094600594088797192725610305315760511516405418870876351369055660885040237896940400990860752928855887875279437736322213186779035159230565414498074512040502026500853498699157387997313693576263605251790102634581143531506751188687055540654041514553372552193144734384267771824930886156947647913662562485978320158383354160060440591828943921620800327952077466489700464165747139450005989666061222994952942002776593232888082654028250858228932507363221334542494339939623830664890873946404486082553981498126033997112318131103061519593854516146441100585704877819355998794787415508825410121305054576698074731473728100517284921766894808542114083092278189074482073947186408744566284548172590559781590417115838036542736599551844381715714488638744856112867059146841914615396543783636976230304397366797511948754386593134911640807966420106768576456223214772045109213774692808737838349310549347822132867277981340630413638999867934352970859510136890576183314020810376180117225273400354054881218874168511432461973830801921323346794986041014860505506382286948283578226775398103675918603383914889490885632611629842603329916323346277290891649243325923842573944844068017658355326695606466319717000294821856688596217670386452107239607489137724867549730241492357868260460167444466079875448498698873754452353838221866464019810682616837214659796599845211875108042995675884114043041959149001598686791793215345337786290563526739298419578013332695457159949287074416156893244772709366407112055796386427341051161432357764314845145892556703424113717986010637720851873974003465559103537955700019961977292751521797731054727762925628519763412426711406407043070454511897336807916878782578666518797829956106616502975198564542659694156813510737486199541882475406021578127406175368537553380817289645753164122908652088450288565788112630557341008869408383892276114888948945123129451525397788273979609014380523357568859101712016986776478021021713857025483628064153848304494895861485829758927327550562081499097596645531160610677434567419656501223064379369726743637217988417248700478101767983744992199607351831900595363904512262026022508316745103737364024380079308305944837551290984337073167670735671988122687695291174495029748407344181411638578882529172513127878339243809035438740420173166829633701127274608813997814141414479956848043569390511701274412184684591050311149768976100578162512778615345303561436300002129730456029898983610867369930857929870901993579213591372783054975926367834317739573891474742692968462112495502912333804022185761707445486054684856203947532857524035099233273973935357742287911082142212715865859202400284001552564901346745499916035843005440126305921153136848009796983025447402441079997796762740000029613662693367404679467982307976718843862744561273924034127428934593981433910090402649166716298105724232765433692110652818789463211474379511548871940864241495226114637158414376427541746672482601371475605891619681493247835121930898041409738593765880101868610683916920975997640425161645663700365766063407601637916066045336056370840394980547681461323291865912019173321867782918476560659141445066320991825765844174083813892920369818782087673418938531411300535485932616948013717826871024092363381336701719944087593392250760534143283831456012817130099171262561595029356555831916272294905286197114729051344249271775658782606099698322950967435791135553904027142389751426218393182425939277728062072226784647267232835992759030701291717766442435458991638391252793806361860424152315300627531872936233910731086866576234210412946484983940441191870985053223536058258704022521812311078753506478312039437649573067412691862882923329508266376077214087756469543326640858424443297637351777386060436164928730179064980541446956503005050703952657202817539313176574027050208040724788819455329111289129408222496733382954252068005005871088645265087268735814713681994398220405475502560348050569820803788142240217702627447285203403257452790194088464182697409481432328509705317607609907661659551144397072814027114254401366689235551360521528986174469578985684201534712076915748529812614407757232136870350816895172168279688009544909015062329319827430555999063394107829519485819233021441505233161044597482516515931211549446892183249044223799227282131210671352747093750706157928236403998391095895204784333514684881684133931145998082903443654113375226605809038564575839410653615295422952007236932661840574608899450377341214613514352118931202925767137315369370856864186202409172297625850858266287848896410319435428022704259022611346509321628552854044425193057746918209236062252306621707453512470047997931192605486124765018674823482981780266842268622565786221079530228407130558003269755549972638311496194493253126159122272307635295651852519664904505907019033242059876738743661826940290110319386527015756812830870679877460060004158778573216172159744002018725739578213639000891596505954048232480074355014452354868117664799187511421551807399182942978941427888008803108358771859448813981382581630732092736461665042105554282291073175171076722142651097552943826585776611121937237469094752729007362051357845515110287866991947655132997639368556042298880281958410424886576746912940544236301083998230722386300750798933815665335560153734153839405175694522250857717952782709478907682940820881753080536725682230134473540096360108428913010158950515354549326212679361203830742484435986203326716596329294906461565222501287162423907277643374810595717364758444313461397588358171885225909001102595614521280346215355754880371128155906987886747096303637696407178054690156393944688857792051030910977717950359873160719399855109173338770696725390652726292669045098183312355142529799468094370702548967010909206436165041104664193933890427312954154430401485272723014221987990144446437257584372070972830758997342452956569413065028997866107696973121659770759684840818203252058858183081418279777638438473571522036616654161885064585581773089855730736483906135907655980446014883139402099613654130924555792580702958166447550446912917533049810327581538048506753965167965934729113206585236211145309489951618112564311614895156540361697626559015963351412372183127291162244442645872211034595850440942182121162546283471158579739085025198704054199351170684390213054215717112035678557843524447887832150896637489706241333116340214300871383894119780716604074009046225491645618728831291183613988433355645713360727343004924178021534763352241334715917936929654160863781387506475105841073963307436374079220473047458550307280499276368582821369459746451833125106389141464070897416951066907291542142599349599570905629186585895938704392833394683134800013347191447057151384445106646021767862751444522701466922782671072429679512002752147186673281816087779284390844421082384721422698827873359755105740381956423131404088061093597304936545538431133119403407568546012243804043188424647733308444086284558866975484675463815387867757666597633888817699936353900539112072936897196583682290159023835771751392145813486492254224236716732425388431297334953692621992271026455695784753816310060892618085787119041120803937928812403697988534693083937093869897971220402664256886228879320047911971410728345034464043991068182357042581736418794455186063359593493773821431999681191389609803509594256263637789215264500466607971117416596392089572277489040983367684218112551801986929395801735555009118632963897121194181055696073539531846482969800147269419709000365682403778483463238237071150259562905584096646508676215611828235944968676589079520903232342331128128412799979183220827145013064948994952884737043910737395720814565418475269341040632372338039536171223481466939098881195030446251848411952189489466423119220507904119101353883879071021312793120350545586932772981677334431965456197535255651195590570574721308834373862427345999197659912040061899711254679889783358479367276656461121447078810465223089638483005264169540492569164281574838256761978009579772791363778078098033337940563558691782287981765546231194448183908776583187352307097399102644503987384163110341621163520109627540185631379515690887719825850343298267470558184038908017643455825610319380655034535350918397492911700967643376324401176139595456887007704966436178910681506974514467655990634333966541659771557695547413919270030901515891256778784368904969252042322856801105901596221444114598050063965694415122096364691672762847706581589140655554495687292515274742364248200312035231439301297471582397501984950236361154105257381098980423089738129116860268683574290484848715190316673417297278795184682518912673985907369339898711531867485630569328074157320709245628816472684151610110746382874535802896936244790063792960957409621897785710838987949694942548967827482670010950420472478361089252751687051889739348303473053491636921643714057200231698698676013438382921971624965527571835540201817901594535598053610821957843170321619734242343997923302574908846426119284309907813637486698524217103169429095325266778497364223328591958050974544703942187370211733849446757151564101953011180330169359339849226508745519583249332061212504784159445927343007334104823254040265875750951257829484323672580898990136387407178195260790154881834080433688660945348642061069306541793615686854461796779761421350740989671339976246584844577992813253886866653872595499860323523628778900109392925399993503392436741931725785895724713644561747026896633948910412911230311717416754953211274256845761147130949725566226194671130186797997400690182198883244835732620031733717934422117481676061922269080585694916648242568672664519535074438733223131967652826498734755608394434110114242984367242398047502340504549014969192015758700634208724603545709154739346195623346227731173422615348329583963473679970100128699652870642689013821560147793173587063729460080907758375648285418366723969597432719151303753031249534511274653204533801255986098857079066784648945446666755998713331639441210761213433402482589085346252784973677989182733853164743044721558717790599149831472096642076681694346202301851434338414043143644888924832249221427301691292168923876561502259887846939775020023271833468682718945429537168774646248771037960043078370980055810983404165280756881144644647319401307210916074514347683826567462862643025118755088679617890813765713966440453723717481981570199598704406775767681111556924166731486496470624029934187767991698249369711765791360572212837490365910386489229124891873437147825171603922162491689455117214386394395588276272260006777935992448475154883354748324860427729786371911817219383453599605425465485325564047137214673286072328937177575080591250341100095468936977203112284357484748721607674850545839856803808735806973924748301819893515071907111443442143533527513537445866973425217808398726278491861704967345426654983051685141660536917560004624079855903969400529657090490302007802901822667366185309524603681914022025099791697266607114601895486095476245410917909529384286137117210034298480386395925932959037912360124714722070849396047260885704115959669981334447961711283944335205958182310050575857558152635670984512282661047153962900494742608052546193724110366000078201661963518573016692018634014553641654631738114547573375964563662709762197224078936995678528687263977045883867512118714779569954408827254509842706795565982909196398464268070301506507804436655548861722270495498010357251395350996858345297088710535362644392978567318091171089394711451251783589235054970377204317889371985018128634972742807869238451843103989599610905133595932891691939904510490749968531141746200394404516760695915163201716800131501847654862654660790663748628794570680229415341887665771382317188858720442728555311340555381154708435081253457226337773477027181267636037527959130771192764860381745957024753223667740046019608966299452452044280760519228678203316585228335159549856432005222907905141379736644585235479824915222499373334581182109304643462319960592023702969201045286317626968172834862040997463936422672003977065356080090306756642092218464118188960545748888188638452300703639753661007785417146352286954791947920863554097725387600430296804483668645695115574161185494593911563554510145352703146534926918024082811413584255913342677247093018290253523039803223253281153109759629661853662563601967063203447823507478151360818809945545315769802154993947489715254643684778384552169568264428176926619408657874951013037301529561704051190102319870745119685108719800985701473539728647670944353311205600740460954371890505212312461431280730337949739009757219059758580559071188127421855412544507560788043714043704576282216808558391632827847535278836207101281044129189246947283989378057232054476302426692602189213906801116103826356265171699946075864464419624164147647604104683192872279268798804005213393625367640407701510638472336957709181306544505079043673150296507748098447022716579939028746623842300731701831068772559920052918141312053220508949566226645739959865140637713149280929100406399521219594806653196845538093045048781881857841866489146113075637284883039957127570530563679096734557343494433322803531648453740057126811217798629491399315604350481792437147700511770766415387194602540307782593618564439393464033650484984918584578343236450703965680868794845155571178677738279409651647185676241476251405617620256567928299165412523795603089423405715986092554218752386288350475933188898216548411756199774064049242332428717605964059101801301758499442333983798192214865538438306308818043999680090574034504492494029700645059754186728573600516721938232306799916793517735190083396995675514966550284594420995351367828619182214071271339461061721830546988762101644777894405975050190262021214079715701819226348505024839720291974576187770157282824309917884511478115184124122482443427726564413790859108612078194218037195914213935567164777344697608366237511543466614244699157233167794808128768972717859273141114421703077805970325855872761790586757208945192361291154438187456464392288797139443607919405251379973679656488983977402142864582817796584098531992444408728096035159891274635051797395077061757053496232643279368095213817124121095672098466510913877077375342132402427312268516026657459594458779304736472904230338415166136201694160551132897238102657633031521018199609481512600931774328553130451646861834004642897912499209823197220748389611842021568519309921424150587871838989017667196323215836615251866003036124289423550959290340824369933187218648169133703018273737682957727972790699948358730333520482489023086128103119225086272917409597718278486342343507890866736897900584655018515572460681450674424964564892880232743891898161507061381277540516582736691453764099844396926229782324860272406736842576156940978250268342355357727622029743942944107706264356409612317843211552773644905865429391882216846170154382165125627943044686317028836171582790946802764792596620980344474013824690858621991763886855367498120694123222798442031671025963061083506286327495907268834758730462276349222280898205009604030985734377001224790373323004180734559547671543539686116833754596938993627869131414937345301813338917204410620893333222592999850421750508344852962540782491817992791238255175645401863181768790099049189836519818490226193018708188849641639026445861564396456225672107762572319993764074176255050067480711110746262105763455589565850110232262841013921093470042571424945810593906098859172576271393514584137311511835029748797248649951218451881222540894248903478595019710105263796178439744358036158383602024340724517973561670613959511333155747140197163984830413028355049437932166032061289065464037664121360200915964774040340757665440661060782879130846529061659922189820874515677339228387376605047641822602553895071882607516980795360505420603739810362612180292263368654396069159551208679544784344666168149112921058090560790397035807806005058389394053529194919511375514409905485348409842452552089551499753926815249329449796379491017915585735499781092970065854070813751970265074513036542898650954819530946432661310285676501019485722071585979235917630599584154091287890626467088964987557686512662539742337637285356039752907499209960311303572295444417496956765771695297800122754210453840217332199745465677705320431729592631563860578357064604401029670079431216178175909296566556550458657822676253185946582204377328581411877826656060842098107614414171818331425611953614032241948696441246558849013611653356651507385051742347098387655497228407133443278735590446509498176579823200256005697547979346319754269484218558635710617191842428554571492494792076535620815907422529365131038973546541788875494880787613985239180472991187703155859809770112454699869524471147272201777580505881591401988570010976425084874082889105082078243810421869550054111765394118297351664557352754675082625344532388688175260928323934507351989006866439809964267282504109231713083562912244644930972362202483823344314769197940325115750881178807253559541762331438298976165226203717604945593794253812926823180654351146573270814324174485908644413486582161707400126250673834183788196629774995782419475014968285194937201564434779080892570185090466054790962117620416922935757262007546052842760256436795719078271271376916063922164842089768685570719031095090289873222808138989210376856296664000084958048947593523391947219594287753324482232062074261840967539379659884206063239598052524215376817269652687924081072984633305322519962939541126557555756746392178552796828267293306549932827607855176305750142155092848535968121314860782069348522479063395546507560341878127706982381846030271027498762708611091217973253284481382905090443211895338650661704088408882265953588490672225300807717622918201802363118919979133566112272063033566738400903581614683499503810792080701925222674739109065420381438462641212786376176483914117573924147930025957016514832877430521132814959650897089679247331200625949874619602546119475720171961210498508982966569963192886837580797895366391392599428956671902002088889036775702563727483102341295707434114472522430042095467972214911559394448842291021901430436001759198547708110912782309474079369195153831346686997873084134718857050489517081445045339697369721277525425091771105140633184378497970711666571436144724451755250510315383047424073961473430075058680260500267766004868306899920374438785026344357051542439628479228017370199531722684384489978474831149083702726413001742475663051182316375837341904019104710534283381420510278511137328696725685676398665583798800739216874004560026546641450695630421038776809783868147634394171855575683428426350673676780910625305981766078808881688672361188330644963240423953935514562932120274109734616174945581994607491987524630803973008242278335949051683914113148306838215728525610659171615156953475155983827617337537509370533813375429537549283820531791586341126350806775029168516813476139066756542969856132480693263201297667106669595657729241408418520966349750402729137649241623260292085707443652048088004141688645944532721169569355981852618247368983831846215950845590035945054770920039083567874971843042554764358022514402432985286970675687569564458836896984599466787864148708298319395693590493219708444839435929758472378091336322617963105928349185771677250391906461809237761377118639835603803391784100498763852611610170900651474112494864111608536585774140766366667030125270670583606626026798880138938730936584384785862680604834832237181850191551990197323702920827135151722987479553636882647294087266579242327266119110719934137413634043245345612664920843562298456925705531649770840255960629024459815613448944730888103356826901530856073747598761316399064850660459399699337075770978931813644194266493739967113749926899273752336972356444931355148674634806300676887716402753677893354447726249134410684690853315619567429299928109020644380947691253811218122555881534459981979703612377393236229984088044521264984961609929978897275350730998671052783328033755673712048407378843625253838658107297846060542973577731643091346060651363265796168556982919602505177011273472154314273818140241611800762600939504715131141031515614012850250294964531722844462210526475400055475819986277605363959481667436185540813115745697538105100161010468781159083974130343641489338063292324935152427987836930031206090179870065564890001493901059354360764450708115709207811803722495705275525659718573833565055563450776948897199307975626636857477814991470849994121358825970387042440553162433073094095161060889534028787490588061810254155454404899771523478220517702644354817631081987973581641821138840142951880961683696287211704517380114345301184511285999419207648918683726906817470446091723254769147202880724670070772872214403854833347484230279263628857826274674252773133485644035657719801420224797688117347076279150824824717738452785462070552217759031434204108657584271497573498581124602060380942899883513720245026176737509754010106933132340795138101335905920041221859457786320234411457436129865849031086586212181333148195106111516761510834177282753766993240439159754804369926898300345814252051103982316768972310640993455026647444165767168820188198706760759905536747169443901721048011107884894179014560114094372445093091925115393625691235311090844212880243618105226157964782935367796645962266454038137673721530630969469881762816141189772780399715704698835634100402555196665543536511281285623594316571661820812030155754748407617990971490443291896932985977579132624020115714692691750751087461994277164312864786726747841339696528235524723189049071419166252509286215626199358606445831153021359924418532063289359263926182228477037664147571156068903101083822290859491561786832405005779280471036428933726085487936948167966201121686763925985588670256023036035040052342917090540258746067228777406163360174484507294746205252595003660843915146287447573075135470654132974365634185185846865048664355019112276061324745506122911732098287565257551936745471167565610784892189417355437980491847519788985979931557685154676701707640926120879240635430829615344512020897539810155563735410014578440749489318285504733957323848433016567912714089652961310597247705709080538581021652171366616171650984376882333632400864058926677603372849143415160477315103753001867675510134095709849141918814556530155907571758071451417103068503383476506173775808695029238720731800367451412239154659117323711796566057229380392459526713598649609985692095538194863188920301311440050339922450860862449284101870667069211777698731798630363493919009026798924020926819504053754844487447687645118749798961697096919411876574553619169972470073231444737855467701063845714471980060756685353426712375958603964210201794723401951167306646905497535793943154606246650064884342609647362225746320913530889115668495453811569871892819737164895229941733208670210332740252280202757642383221278916498735187093618954930464988453799229544171787912380527605462756883291353696740895126214755731768367503907869228390103203686149389661738759975669438527623458614144432787815899230497212077125728397251740002332547188351286360561794989524640842880788062946145995034394959992371209791720717359437882524848949915545227099776118591675860271240718170932910896109348550144056156609543809757752293381220415545152786504649904254793193484645150067099390409275038491313249475274742403663831569843748937274515896033492431920998565025765114666846097328972649369183758260165525950157910041969944391198644885890519929106944050818401487397157396350341874709529123093712295429109028828744966593847194996279555799971958659180176424999515984972819591254979793829561583101694313765705333865157023651446436955218007840890577285231900332415176048162235212126667824385614517060609938050748928308434651737331206247411829172563483807915899457156276050344111730451991747581446825716391621982347687143892872938929233174286403518181029143723372103891402077187143349024785636838501162755875262959428021896560231115473650040906954460996980918676574995430879727153006207082180613407106106554651461111694379322558438635258563995583971074771087175186321510595158916480169973510818504582850833512736554153509781952861266093652027493301645709413368305624882064954941758093846426111972360268231531317056658020617626187931109101695534337895083670345618420114742649964539059566121740824115753502481243547021081340700902032542968352085220486125401306211891980351718215548896344582338436005675863870377879029433703837592499378140252253258101849472886440965796590087255321858969178139474358677486043275592896448208622475051446708807631627343604356362177403804744610417270125837060541681729689749264194224709711152265792284563400064538408084455174719879167003120460123809791889915535219450542829891819019569398558034511066111648313798720423364285201355118758971228030093702003218495937162393794677418232445944395582897049711454981146330890851798449639003639678961758265178756883613832173604269191707576012013817782213557666103492067319227063637248924066317927530354914254562942939366802727575793581084326674308793027072577349206636999717511454114338252412495947832570327627380656414574799413613508259314683566736302634993052241381522790674721693499687467950774967088227038165209274515055757802261481102825804838689059359646676040927177544103131880463595540003122902834430874660034708806805841157960529482518464375020203138920238423516439056857194264039155658640033217066016052815029756039815560603729503984160329080146097347362356495100305946097691627168070007543309525699066889188399460150213129285660206362293072076346728292975612344395123495248360408099016633768135975059818569267826951896124104059586817017999069963602540037455609959654775196734761996890341641728326451721471409134881493647162419298820158355148991952548047639537635340324315957470234179347454503581621862257404656523628258738320530066706297076615112934456973069064436832910423470092079935291405621558202869505983808480379961626840038935174145801507785347578785581836653621192765416406427063877594547333838049679469141201308014065366867911835765223731592806684856915172248632126958447854920862294449421053193281182278670786422405269706060719518894801768563971070605799488119565607932572878830401239694931429782552987588125093893579365314586836848597209486738024639730991532683893307641175687299041579643615790670494637657676814774947291992746440225923076802757240155357781586565591786623753389260161117213007771903226071860010940698260615770215552657630509849801272169175906488044367381157469591735610920279197918571601883840616990840880099508934020642401581469293489836649978610800281180325253532997138225099593329711563422296094454293674246273342510193521404905554781864945639713416276445884775932381123641557972818217463445708689166159871796579958214957977795615779301877476372708330706962456117049499871785768755720141946782089599138468375017353913005467074193957535847294425238789365349623750847483977953946491097941464139660534559369709123809708792845540499430739217664611441184850539428530946163440426483365849018216291611163605325031366959815230232302913278310796752934485355265811314604006825610445347188531375800671861074384992528516487759002132650089571522430497012715781780084010584193935748266417918798733934534845457889627214830873727851187417706359352052990374027655401322927324702434673024325276599675892038520504089839440638521474228670775803206380128743668035079950875754414252441432692919916570734669200036921300628173917775215159492769435509125448623988356662234592272218969075756093390281361101262661713222635498172005805568934239274328405035008928877582231474756131143631045262949337907646475260052971404369566978526901881131565556373520617401846566343030997762106420362446884512243608737600517841494574986665967527925312403434742283282257808423476967121297890289696374497171118454556171555217264793867234622560047776727491243102407784528108163443269172483865266793149312771512644744989519921149359563853266286152986615259848954990193898512014003628818861342015253060225496369751665051075473329948698033912346866959325928795649920962537271792824977632752859325932736759998046568592641255155973898774635042341137967802870603622705570445536299460651870720517089348388852641430851487555873435838352043836960080115886180340854556318630838038766455891508959515530014709628219602366076692091251013768009542800374621928292058361030473003684402642206930932472551833391057288902385332282854013004350088970830253537732122007393540431929035847614746239293166258005715644057612697174603444846148756177484080225191400527193857892428895672623742829910299791984767539525448775708806562950786410540373115213609949549773160377866585948585799527989127420868903712435757018276641941209385674724439398846448322429535766975146803316623235480979455517781386002330467647718007735100623010077991031735486737601725236107940064469397721713946913417403309265768389233707904670156055870271429953057695194863876957527093541272328081259994946590695317388344985222506869378767893313596217180956591830974948867850973162084526555976180801503528669415112197233525490968402621431964103791167205107402567089979540553887682444365064097004679722592497272628834503895587216195580014650778032550286794566386772888931913864743742723805499090476596068846099380357254140817334793408467687073971879751232219534367189385558110186394502349383706825335864227811539463066452234216857654932390959796348561100463808208818066689694074102794388598129120773183014823890536160019070909256847040521393313088782627057437504728712138095389408943663768908443856605851462968835116737719812165903777196915332126224086004019902203571652709275431258503257713127650453696505308415666008974941989383035301791809992384357362509974421043019997653585030932890364891289359980100193526528979525716680416241324148597138073733529713539763961482249498250264559550860203587389636759439861570124850197042869857809608094473362390349919609751840587697398238310077723249413051070617448766474998693307106759818829754615281873153187097865385114005098831405577897158828714382208722399365418983190637842923128909840744605544212875705143408728925931280479293132744419708123195162179823708198948992351128326171546730985398255436891538264440650898851262576171906589518987127155903718321454867063058491195118351035644708803689855733658574202971293962607338275136709715290869264881604992784340632525104557108581268095052305915553170797939489366252819302506465721328065654910151322640272598518703382061028163824412017288985499370641828371045122434307063109162142382184465503266191947479409985955551548070058100685481520671754358437046458478974496244704825511520150928375730803844128727294454675893932977999397521599563036939031962360687922560597133549242482369635572914927536884267769551037212742695547112758585122750050440020178241544454495768310250619071807577843957284239413820466395999650610698590301380574172583457810574076771355321053357485001701948292277072598664139023738951283918890507705007087077847369339148057244843706180051250441196899402428090990180572539725615754917493864096511956783880618329082443421760583028549978029642212285695526702143581778749128285659002363340005996973204676617356753157560910123380934661333967499647324430987284424345425663254990900981419389071557998781147488254838027642864364253747244634070611016637331787878407640103421666444725718445150869713654609123796542399021383198274089081228691746636702432504313096825986390935215907660148248059761872340219342937928985314767560418109024068045817671804963373635582488497016141484657101888487062823609296814631914410218843247896558069001577675761714548016441666016428325284928141866658010958389511476408419677264621644023537346764514849854429603834721609627756854834280063008204092362297781378099987166886030654076286760422688867653686736867712013085608380972066224024019098061372124847936691838817529266036388932669904981591677864721384168691602534193296507987142065014806144050626264994831926387688890269548534951895829885234903909723724662094744616269319097715169190721715387987723370033369370992111373297204886955271982908022928681531967194607269594199710492772719353686168303221278529839802889215295462711594014094819485800083181591268640712597911731948101616366595695626668981071556529392193081457920101684168563784923388335287699453439674776824273606523855013841858434720924268358920394857937001722691252770714862804920966812714691835495877577468227563454862946340019798106560233368914820459541375466330149737820347413912896691914085835544888568362700161820829827700048113615618099905450039173006878960740127288069003538571947745580344615722264917633340938693472661632518763426352828806701184993618535331356235399315567384939217522643794306954785289761950496045749926419924830889595718003652822240962993899684048730492480486133553304917664945322001994044519561180854327477578321338524080670186859271497222346881981408722921140862623417101624264888238941854701340909487269412519542575567102023204434674962074325290007840327203499767644501346231779358068947340966933268524627559339549569162907592934377633110718390219522234752293805943512950211701715976378087252505745592488048912661135932044917272053673996058074290893813718119605248263305815711752383179796677549487537746602439254858536378092540081606550169344154118751625180170270482869299309294671011528870522259177907079486855737372164684762060635061813691170413857484481942080884142154696149444483818775557152257437451866160121391287047317487370225165530591870744324497209072737074095363289522703386095114568831742670456583912511033872679015121830641985898090363387735534462758356552248844419229472236780083033425775720997015983935643020041397410226630263006267392249704056400088217868501419086668919169600796595586162081287423837929213252084275464386846672532819573035678518935791755866390982601357818291761049873134356077642251583863437117839958488869388720908612136355739031172215328944806882704278058402654825750588723978759583285767737760426382596941198166473861693416262813830342058058072004080888748991796874399775943238864844742881144780808425289849592913614281022498584138957969557132868696679383053232288484730663212308626145061947808293138513450273023669445925489498619658051659944539730508634587445010788820922211644862971675328473859464015867315614532058662735458701590584803900817742585117116205043710497407266315524777491381497768239295428648824725636773071968615726930548362080587752434358706041089495416291259444094099804558724539130173089246702356258568910845719085747523855326628086351089106969244376792596429304815982140420396789425243514787943977005804748698394035021807612628509728178948186062343789079836179361632776928978338010979421837206317220078451846458325956179387064718775367517594987963923571310295123821557291845226969493744695553919455293746614777438659455237945790682259357547850006194475215443190691238123362259850948508028865709270900965383850555419766304519588801282651880455375413308719488363499835892457190869805253258575974956913350441446911179847245649537336244378936922064434518974228947429517745835606501616577638723904673498925987617101438124139352783397455475213108707965373920349937960450573008943240606139876064592308685808176556323234833155980850435818761007933983168094413786105954324547709975381652882962825362058571814572977122401095656460437561947155628157284732942452391328304760326525876375371910202281526709887692009492201824464074056433628358048122494550811781693062035566575729014365578173913486873972778588569937192156179196023272970881505633899042989991550207858595265966839661924885158789499577668503255497931377399970052805436469296664946722654719558480937907189562246309677772585253660552826958036586161721348046710198317820091630934710402967922754112695264608163434820755881944133673298495158090902021941366875823074993307498772841679194553724926947869201987791488707961920519368563419845098564616904105352578354944942273844625268697543786741154418178333638161674677881591706917811436096708471094119396858018905573989872509484231238406070282030350778019978643901192896565917630423488367947821387309172362395930695895985563494932895854145861410666701493463863231733871663972890550853778567731836500625619509401894135536478110098415441015693803128734557145735645139362239567909060495106660649427539464801434388005851840731717191870606609395737544163337993490405271559191935965892925312405423633420683150022093585576392015532984500859456857045773355317717261729405702773702629105687306044153596135178120746219276204261380268751873185949740804270730820498009896039352506246036411698787985297951933385224054508693586757885040743915807592285538854307140980513354717990442975897686108185656923783193800874588098327953621267055610140857168609940348322237360103761817695904833561316304745409835943287763991444705731428125409419321263454355296923648494763051693651774902064081899910976886128863949054224275274934741547642623083359699444788500861841538298978123530870190407062632441314369353999690779918673143677110151700797536036420230878216529526557569009323626661878332920486771904503350385917260893001609728211413252639775848272457589756503958680509500446232949278594598403039749982735937276732877393364832791661071581230939069381099838546622442176912020603103924293419254739088671159380575571798115923207820146234649951993454157773262748668936735331983637895042893900801620340862466306772257345619662046344918096286177773931551727446070800523965568245529895917560811624110493752634268891171265668775955730196945055981843759872212911467271396872403902493722656244809877583251588447654699554087067934246013338401766115612159304436971681009486846519470312692312472726368998284987817610338137888599087335390480447376275028502173267552717148313923983623076523219268146894408153651894058199094692125095236381271808303040772409673828216216463328513764740035796892018603890691208423366806984594426915321724760455445267503023086082835984122719886971402664233911512564596583661453648660766032390175002516975977265553869221250689666897172988419571902478355328549078397575327042112642237806174492398336430735298787199602690013255765224661612926236964169185587864890443568283414609308767758044564965841997397097713590610986528060710181833158919853755954874971448045769861227246991566177962814187989027327098663183661710397057564767322552205662164129427279439502547648487066040120102163048661413839816909441613820921942904113547942760020059778623569627108201736772244698108266167481471548199072693780467904913154508702371020226286091710188377998490020562150674616897992002768602109711845557207811237132830766356661672103276204879191690328709483279559024163816282277112144896433377201165880094358894384807198333734214761404695616755783388117718999094885797946834966188318179321021459899754511103818079243445222295292313574457840495582811988014120833726646634473463450854224659321576597576814659368665886503760962185306596363212127927305587763560101582512552738815838807571775974909299347136536601382174120713028357812814947740366628155618003003517210080626380336460172966107381084992419169425636873435624083164927471633495722159572287967503418311434000364321061677024735010380528375636922093973843807803713739467578032803070051273283092121674324494990518942508862413976671520800671753583821052729478247470537835439446693758785730355632251684919490160542872103010096609066024085715280264519145090694779165818225390387958563349887157310730637003708647938493607982510526937709809341560802358591788897498012280933045420307568217826365254686365106595842416387758783516788027684809702679564633979632283281901136490868160452784214849856749472466274453518239468851166017259438870424136271291722025137935068008638766360457775781628165138716646310657672275621469548193795656675790206291532726378804319034377648089337654165992710963163674725178799795161722312405123930744354411058826427347768633765858306074411122945753174800516139262427816001323842120089832010234832403635164797870121349404983463896185897338252816064619119606715879094242082328670972721086616891670826859165524756210698828930794896158353479246249510958058552034848093495462641355201687358632991194320315741496887517302151558915328172446561398652944217038623890059247502226665395264154180746228692893566440146112681020597353043607809639150532406261654281683599482267835160887063708072340271540442327336909193148961597484503743974319099692587773426389184353225572798796173364621181904545510147812594481070258188476476979390389497477223947044745282627430200616309380341011480123933086196660926679066867182941048967025849813286128716864064020125279575747434352149242043932478447988741410014940245325907720382779908210609163362980873800366086109644842013522457434098555187079000116571470089797867567688348382865033535178410089021476374232338487613252563916475799578343933178294606600150405622279567560747266972324131583044542637740885264890471359422475799168425702638610486337266232652755396789042293758999845659644449403989731571032642142406268352663451667751130275458001042487267475736977241947382773758268180990069380976952079720083772836851189734033449857857878062181084025181627599555002113011017611100150560484421419287415032622874221031884709893036569229435315124112973796453095888579355012003089321982579682898560858609603666796168449691968291107451459114679390296611102630654346892380004741939724027296219339552255885648101351186562826860083069653054582412519234759706815559501072413445137208723851594408068628879237700694269977027702338520145392953571458741034374626457556617108455453533715526589279924058638468702211167049665792937123131523479816656641792688984966365714564473202522203526354193840745230094397352325707595218023655280305426827288507288006840399314071672102856684218785757012422491786966326448376964068442922402958989732511239974711903413153247962424856930338005877635856071638618811550147511342762192832774833177694837486690049816341373721060083347736378508136566119127556452110725880437764000750473269098991540882243610198807247560069142114723096446817417283578608769172866924911871025427706032423458701992589053318580729903983004767001371894623662369702392094352765208064934267895120015209095588424216723575604423406238287269974304798576266499867616366002551507294911965651149262521871389450407540344938595742196654208593390301692539604131348328841173845445300166947239908422506628367395524345998792943054665676135727970162989821315888056706052636038190097692349590942476928708485620720215431777239237754596136699524545513353985538090554733351686332150868205458445435245613700226805208729237215304271600212100235031295547767936032489291387230838868337922837274212400176587786097965061748808907335825605490126410369841428635906074798192927220564849104273377362501376164427656434878221775879356542911782866472381540953142992518249999817392022984017656559762678983448555164556245547715096149143412183041774655684632895707569369810985565325901722429887545372429049151379221822582086145779075717050836985062543117829196699131199118737723474447755701906529916800692094281959136170108140879717196203760697885444265256633155223842471795977065743755830784790490611007129817560823378337894609793134734627761672359879859180213610952765332598066157186684234185668146671701023465283388366033221903266374511733243060742151960906331758353403757897299994299492349998457591646449147485759015456011343651445113631311133515968277186479329661130760684416686600249976069129499843125619984743861158913138913969835977339317879808816264481517994523065928013661916505333710386241957481679935078582788973843302402147141116999470718500607662641560594365568019662775426562749228469214573926069864118575739784427312159173805397010147538638382809343589722739779678762972653365082186251561951985269818904613814156124590627862860253057185735250052933264115729184697474145671204547761554789499907510913267302754602392725016910592552936862619946703826950155556866956411397593089128163723231936351726318964471964889090735778712881027074461487558015297662557970188485264998836076788707903569822659506414666309392315311439151261016341214706053029559256176771714146884675373491138804252322496001787667732198819407174948667040809602021663566719919151213842291372388971108780243937122376432729384758967591044797823150304036304473710031718051337574462276931686206463447889321600842222167443312371476744642711691840824977776368734882386130401534188341360051164565419085847450417069445436355285668330109748800239837029256389704838139217149590308978428309516796180814783608309397122999199675872520793871802126265858764555622081058411802158994864269112246688885819332299732642391967631942542022600937011664024251496545216728403450033838801377363799628853076515256087301446616595451752080358002923731523159142362173017106623226273523714525211031488720385385295465829238617360366572360424994078286712663683177610342037311743677883256425904805162141820100520615082202480996613532188324191602932331144803832432910112124616422982838963835268251110123485425833223250313920612875235590562438430248765505881333259880862632589443511139843014319863764880536193314480716327397494110510740180853418078875983796240024917806227355910989107770404143255275991660615855220204164084349305928204920758448955895919696997596509727779073657770169782513423474086941293830016582922411768313224366231697152478690178101426309540439051722412825889188436639956876885911663266089589638890251701116982969106172504763382902872599610275411203773494482055765693284595902243960352501533951709624989139552009828175152424314410141458407101646280282577565967066055237573953344952741686391756776284200409819546903360022012556330121677605957375776093582479590196445746889080546457817905653936452260132263986668799883861673650545351319761757081862192809721972046350888045099999380521757976382592777252212752372027076863065106941097964491210986375614465785603236672275767526353531955158899624238384141414401847817889610406916714579182990695340845067588794707216992671435443321900407728630631372716048162394114775587502368603571875383371680146093266033561669452381509468110974805839752641882723562452362992704841783114089820002273159747296674315704774251383535418935958376034292291275922912939056904011745109901611120030900649196688210554854523303534762725080817725212220793508285390125685110761227720999272317547921953207639943254633611585474996641021427919232655331895660749431754213858155891638500435115765927849244292718218785894144996556290577869721730710539439437802993148346280820048637727600068974665321865969897913331744748365280875281311410473042002950070050157709658917872219462555187640634411988570848825179717101706792510231130944607675325091353666495895339365657203313326046500923663883367703686978975255404285107371829099192933158829191087446640182456496330715185600752092042765425385972709437849568442805296415263793347413448304899195508923101016449344307198956542490031254897614440532775569066637520622070315974330960465247788125361908466351829076864506049164618417852089859603220052750188135758177407794033001047340169565092284580843798155242754319837053316270012814297258344608028300243929280320099821104901008675240143977728654795915792026045815923239128038011492389895317187974924809584875782966775126720269201976126537564638827566340943498314689476012105544840970430970391062796044223062002570664373131039563187118084387210016832360160350048955592080889043887992214074981863144651458591010504255402431336664866925739420259337102501516369256340687271698081133100331915459496585338511557609612203707385819949746539783890945873262109184020613762158771999119597291855905985736934264085002027042768179729251233447227071709270682257372267439965003683882315153513383530905770026177159221093635218777557547352818073004608723910888164303177461999932965499717803112050616600464366570713973435011777373826450838237156193656151731276317427692222103747004668321449292198114037820304884987077779487941798689806394804059232476109140298746717104573515230538220854761801807243878565715061691150978765005530068431931318149481631688222967550255543513186317075152911654977997480659733449250809949140824443119880744682226470379191634334330974243929828407842789422198201043588006623896850683891185045902742617161278234607591010573285795470612780357429376529817458450396336252652834037036704809804262637440865090602854008324774832964869048983527057040269590131577446649288888203954930943133141596678996438312608763660838257182559661808688945677824920266706418926032938457879569237781907059113772765977404852656098651751587059350386331606925980873492073315912922666670235964867717015928707485046383025784046485633261666786214699378966735856451025349930885358935858968409636090969774557072810169040022156162532439982807478072438535116862801348439923835531895296189298516327122675248795056754303634776217891431289970371828195045019770035299965126654684018445980899959400376625858658228408046514217559321621195009014850511645160298324130461644418598347098669919981561376762655964504603723300989248991609391924767456887203187029722420932848689472341247514202468876950645124464823345757009370844677370907477033920149154978054294826460579065722156206055132268271901997890890177310539467369070602930419818052321930176037864579316035579756769099653337046664834160206385916617747997705076205560343117633325713751615762541694790888508233920930537971336237661313668114484065593593868622797678673795832992181699804390136913458550545053970436929870662349892830726423062512962410532372313034213852376731338808622183648157283704491401260283112969519386229953097581919063554602185595475380936376960426393435022374348432868427373431548441018751907646522587582879573572052038344729365176109581079607082250618587152063653909848896569875093375877583580446475573896841681205398778884177335314653781324069699476182745337501070546710305948685464134355390082615691302752369816066465647195261290830275663704076031407311027352309554733323491960988334034547791522671153317016099539495772861068596773863987256222979874113664652950571766323690362890742657256742985530497365815275228618306762484232134088885658774220995784626328875733795418467013533381997051104469730756233251810339163269099987532337038434741206549476076615239213261025619127999796537120095879927022462391545409684216274369210240551880319586060204785733145716507197453018987853111567514627169900795527864916661227787502817838870250778908712710465844532302125640011339698383067571508903383640166505738897010478549700917600037232653689414612005855269132993524992556891825173838680565265591204132730042137333074405714316016245453099769763260809894302405956480054338787570460055969628402825684797058731930812048131539442553469072653851654970330427190635336126525511683601235110450832373477885973178041492399642259344422889546712747262120850209288889463374654181129800880093706837182473052878582809261908214864955433437123143170466016702901929188416251577752737622088430645053994248375924318692022521845866975804074215240072758955803775975126257377488647077167336472126939691298348805862100558866025668525176670788696864452790337290925830866849837981978307672925200526105121053452059049541448076823406235545092816275940360584446552909349259999334178872423387100217133568117598139356023442997830506285842564569249809499596342934598311891783598411593242236679802018012768839440124638152041400033325427684856260520335632124602427859249493098132501749862330475777804495486658979897687122928619902779030141119700085215862735745091950932720805355612671897002941238456963162980663323345321156290727752985920216068385855489186708379426187286412058667865409362589775736434196125450769915757237738341215729862867242340495636780838642146000152641903880545237899734729407280727586449574058723404993169755831296122598233814001063064101175178081697719449291973416940856478017559619280601214573184766329279381791737900819837546155542483897690619814026484680967190138270595626546190909472429261307395319406588464147572439069931299270938463428688276860480860700581793356194221768981093872034914286361598265217960057827167320955336884574649062826622811789203353221387831594776740885473837205456472220522435745698942156295665149323899844763560195148013183113711636432325094983574997853080122485169077674891116152492100922781207650753050537344768835851916669834099193748736685622563595632877192796303858102217998529356119692389462081524757713922613761451813331102687532725913789513102352329111334074320324321455067809167789902836432983674183804567760430713460575434464085522414679939052623570858283007058195167687722963497140640359183688466112210714049237532063773575018381383395163341978163920169939571379600787754724265416027822798672445704724763536108812926865882122571848182399478713367462571378162977948234101412434631963850958240020671013998619313708738371948669271082336276425881224503465768083444996229470563186692582358220975867802792726027224415420945152612961669589034633598309684144156911814302440917884673579952878097075562687038606680339372741954637122551568413437800068729055592838452727940584145256649140139111659617343966169613964548569144093528022775670193858813673752736678833463340328236033338796124428691271138458585569741442157895392672439606417400527617461228193406140538355531846394383238407586828990440052332421327962954894328776393426079895129922382281662961850061581104594395125018862997555444224417846741195228052931284427871585378311279865935341618810125197923638662680617778477615888095282781712157182234759622955989124897375710050109873930382877943328798674686492199219948458662410344012153273081827930559789876961649078901365810935351909029022089507898160145380228949817455244656986064343214968819923782550786302934972598483872600772124462336232546581506373973251321058223142220377950453461722336514784727833352117326082765369380733077848490594188764413925125081998993162337398493702057687128834853730932124524206972083863990187066899052741244054928754805983631045344044091572054894712406885772628532362659152449243166139196850722983394292604708055641694899519757165155080923198894091243966481619066817617102686624979215676380763142088885366336462046112310595264132049975417178670965168335434427989070462113998723491637809401583079914911081236068091664104260757912975415819557484853781834687141592912855267239850696595534237584758802132408248153258856047921085762237207662070043574531974383286229555256235150031148148181655884734049936072473191442935848482227171313178332062235615621191740440826691023229991390507384342917914465096495054874570102363187211348847795994249484307310470888370731440370617388510261206976392644850211802683368084804739037792641951891954877656464838750858639650042554432454433002864464936592589282180916654343325616899158296345470211890408243287216966643746972627229458883604822903501928035999220593300243688822717292676681149804318948028023662378859213451552992183951664245203831835808252145320725965485162931614156766380147032115045087558690701305487280976146112350031007473352173812588233702322121192183774275870610599866881329587450357359028432683916203366338338071581629451451605351495933164680037683518327641359485815279016158866377270740923834662706272840701062943831174947606503720027608385294926404615935798370409596577432237339439164265632767635271188477146802816103466340019424629930993682120872582549400969998798453500484635184761782851066842493380839127326841240424766179919866103332172413439576676731780862902451832492959600731091578052132414758724111246139061900908012564941668381120440981217819733878661727321355489550628820853921446488942775734916499132547165897720953021855065645366802620058700645580230491311146656267223798920462479780949458321819015219320042831952006781318244051323702232331466408231107925770932286207726077942252576136280197561933879903982874747868791243878263269707627459711149024802863975258097809875391760143582749231470405196124584919931537406154445513502581316824412077740883784797588361034984303337407767152380563030265802322744409029649523462246120515747325092067680844092751521965312262797189081332809263190179938847536677231813184582609807341532594676042562937129711478669121861202614028281313244838238218907532047012057337169516639803685899127241330570080582856000007526623055751212655238386091881388239313896976044502067424640275616942654116689566508127684420765511963566896313244574419118072872161217243451070009283115122162932118233197923736293212173485317055641945608397532527794434600872584932083588747455894466135350695702674042226654632673764046107906758935920058495378375206001508525056480892181188988331812790010591424257810479026212435551509398073772536748329350827371114626853589601628247369005396912062795960347527606435023042579910002277815285924665923220863964707187502366898335730376517407123500944542104597987282765248799359145730023215425620593382524027093563610276559919848927308264802177015895783573580170094145821067770591862170441796622201013525477933103880056721220827831396386407580622807668315090877773693946437985155612563638210370672881932574976035580667877198666511093731017967118211286097687507742498881432481661752008095135234531233497310807770206224450901314124641683519733762038380731667966458537684366224012387373601318106604504626004600518672986090364891898194069052741951540115218532170074489049295406114501270010268614245209211247307385492267534981034035100086036508639825165481844724359630727122635208068881117175948465395409586238372079653891857451187573413915462598097896193531535920587818411305825207149975568863736030272822568136001044128903827195552261259572815205490174854283466899630283696896653473784881475106200963216328453551919084353061991984909582941029612171245970529605783260126366917007485439428426321406372260980073634070846268619248171811848627706714874774946826704137787942705690247165046323862353050504428263220142329909598359295475154422308568482776716871433171769937819916342470390244194779199203512224496444848776192467504343242393219088485290071737723462646252446766514569423567124791724183402791539753214830785762837183915610922074243169151332482131560358717383300724021418269994754667877958740924719436121357036851241981896407734243392112947032241878970900959842243972757159699015634688968314103341634922681726641809981732494599524658874901280123319015120092513981287514001534594758704391894469539831588418564184092164963803477296885235754817911538358515661916013377587824051948084506676644057826487051305527036184440082475681577755177537143092759814203759578968582330011349832028346067645037792751739469943316294433961173255344872007842429063283105676820868633848008912065519436500511776770976803276158567046576105133385169532805134879966466902565908652408156008220672785721552204897253165354750166248906783940068018143184015635729579866576800802878226119806235718722104205957375433989976266138177616835285478876878718790975660802108577258966883727296635185666870743248532179757266338359086213553504710998601060731113231311079862023755988716514118379918398195875634055415810263794621203431516674177895072811695770244901292166419117088369642193603160742967286543068530389951862606173171353176580105731244659942302828364259418496066257654840341536627986545909147653834843603337433889783041739380136114560748033560324903480019110760370254889710330250416606186181095736767913991414524134348659958902369854183093748139386917740813945479152259521032753775013087386776700898389303533566314414487605678834310718050001310140956807862907586518338332657773521199487751353778461423846475736768145687893806664872537117652810238211668454962664797438269773410937570025367766385559910665918513679400858177006170566335210431035500393650911485193962854622550865978147708720230692193275529129708795712235390569672777054415779407575590320498957236228124894932688632946130309627473540393943965395277014966559351588764946505238050397670427187335859912891180342531264181886113319222729532934401122675004612853913563812401814131899184235463530525154828078701022809143434974798821161276878976335222481178910637406471123321610779389606518928800865353341540182098265885617186602422715674511926026784077509368617241150664067702217338567243808827312491847531595441620553241985826572545170885603716247612151145308584030772418891805044157314516752595013763972446701857445838690992716448597847401480779522109025423574827279166142325832913826574999909713543388457815586636503357214470566856848804528315747724733330651189757265739742553671773338687237786138646196085800989602999576931193093277843863126312537592662831527429470252526587371964283820921771835245732279745945188595521345707243826322150949981146077968542604890100176533765096672098480540661871953204500997353341320613776337646581826811863616449076624031890179823938233616234566182794957836589384441194694744226498621436100647349666431106902357907458130137156936545596090147382851496945355301747616109218326379301175602622350181903274074373380519190804356476248840263617873419576295527288558095817135137343413076939670061400413148475242955205049796800359285094420187985649474261536663955972566527667043799619331804179535378645811195560457496844735433577833825061649471524851853539175571334493653059959725901056692950799408735551190087351192378819706856925658451154134779469234684359198510697172530342952477539253472471805825645907069315992592038140554183752097780587369450741375199994427324676507949040122799564739763229011192365671638002941180330388475028471130056601418772361066069080441561761663806040560788204756124905383221233033098722801124810757282499104796612720019112849071257457922315810971124703899946722003559609592382637675149668638170057337929768357171036408286077809744565659049431474983698513810833907763815458556957500441075737837324057755568264370012172963295651905653353701041353581160793362109229373016692664037661382042913824029213678835772375701129432716759354317109567285095422414612255893564006470145974505224395530516901538193382715871038012494268377508786943005839313340151896120199595039903462202171105421455375622228047874776492556296135319884532290845874073292106130922030803659329365808213640595152590177905070554983534370254578796926391037041330119858570557048577606739471187710005305884167994464273433120242706860713178960372791654430422250482736843431370287635170095155223233746759234433416675065930385302660017945231142223795641220368236098144519297353368033634438543048234446875909641985471515442449844641635385261506712329745970660951456816633216170972058078172365815473712814505358766027064427093119488506187101532083151997052763867128885640833041890024574014981842125219684373936593794202192546514926358207446673178271650626245956650741433220949828127190086687337365295086243252051334304998889912391729551786917428200969229108047413643978250551614014515822326180941176385376390116051539879116404994263289117721604451520003151458076650122128967574943707250408532172573564996603000798876003978225097341979679072099583493064165734354439633602042537274313197289945040570671404821463575213504535400420644892594627653802681237439683591951198212502434866811522121038126048413629355300358891523314803438898213159945486121361317126734456908145641693735707674049373941961100812663538449067123711521866449984175775354409411588349123778763788043481495938799130887702649767234826481152383441894169940032206502873329431555278612910581283319740155389713483864593105049406957837401026198318611503831331327013341575135530642722398147990656573732073072618843690348501308605679805463973623711712689937004367039678244234461843974973436647428960851896312146712311142298787376204163965916434716182099776527303639756141821953988475373141706406247964482216745535474460325454513733673938123194827440854053232708229585938787484930007047146986661116327322085132934484690569203428366398562288172322036098569173276499400577120469843047752902492536024841158892603026547179301706749158712100899758270259559754358238339060127722879207174647169607435921768663301313943612609998360551926424953222611901153361392669006988468769236248104756950293521371181329579334819700395571701154640306425377262293702094264759564532745662323723257253432231214813603242451899192152228875233054944700427478069704445987173313978858759842936489458862340666208925928523325472414554942199584833144481224725282618851937082745954429212962276256667586574848114395682767841644711050125553732862180788184165233263885883947192482371472231657045353994499271419328574962846869592190806687609705098720772007506075488296182587218425306250131569959097414715568444316624317789598395324274711764541641062602654296259549678551709899497576983906223717400267719359857893865486208850584835103226023185108391231123124600605277860649893026849986507904443136800543218499929065344864298071166502746388874876596759965784903567344818706681319912080346596286326739564051516470687293879830519811418760271779160016447483264318998304418455758442776560606555047122977385227569003970915561035971610975123697073471107273448502659099404302543993795740158319396735253183014212989306570424588658970600285129161300156001974068408570772397468527231220984782159786139912902856181357983852127230958039524393604950397308642845556973902509784558265655870624405328250630833417671737699100432790279307950412216769378608280779834968868962811806752426113983731273104475894438549002049522054895799289151387622933345176996734143873574704594763865374282331082444259169897077267800431504411045900402629111986955937398803096376227735644717678318859452509177376305759364972438684582655037098234003352262192820309605171388227642645243518859720703271571982574748870322520205144067632392984897102081215633946257907143180729686013287941866591771619403131780265858101804964094025243115490756204133189581506920071211680127324584051948395099489001051123162926444175135110371053374950244862909712975885646444328761963422520528040807950609015898787587556499050002580364015298415435544808318555047809173831620571218084296230471577672659545724340335305272926699536100219275413940814297138843876703110300982161634976347250460874406287136086266088496347720690198250168611337755991751115039641802048593885684899504153044630785539151012163246688147502906294983385840723509067462590832379626404442496148966780970903775796551614019735680850056602438469887351597154227150722127388142406869697835145724723820832498677685305258952024666689480950067851429260367394172024949270307732654667684871815717064768925247044139683014323869650717664896462152639990084141530392680509819032662029189001281984505767302069620255432164102164510201415930147845356756851882844373112037354371681195384982252171468259051184284091152118866293329426702537158201639353267633340777214076558422162395126184740359146968184741492444802748648224424220190480884434936255447301618907909707899907278954813120309764486722079273391158830618762589207492967090615483800087810769279955925937416580063629935071869866470995088088947574367459407117381741892470491284824135587631333396811687906971177396370997753127233085667622647288970582169547027135045113659084019424744837907650205468255884981497046289822901868947575767166323701712225574694325754024565240384876822479476799363716825240166717237766651469768739248117283137934530376544849737530123020485035217938800839496796584442016212776333130723617140905414433090227675193618884657438668735711568288836858265461301247086204455829533589476526340921056678714281522157090255535030811875713108986878738595385385717991681575615076216690499768404886993679027906327062082166509002709572779181843358843841783275406463234688977521340392889591533759867254832700235708974875265183060794552562701447780080090345361521062525295535533009704224340275063145548685657822677681752367345995035693211868306631830636404585176667690006557010834520282891881893885256269591512064577539614167679230815708144999859209769606785913713382897375858132923533273998029522760685477369299091591331468727629835948765276233087634778110983669583806482048545586060171239271457036753848833629834717874482497611213577140969870795498962816421033427518711884457282446005330792620522762055113373564568283698904256558575422780404488057465081909112301083187599619306631161424678691375886352140397642229972973114010581106329895617326086959686272218592102655166256621595960884374222347674072560077347130316818094104520785197542058632008113546476677942806816909480468129193503494763219505539722486002286128131941709405051479979548000866863179734316084262519860349410316637607929306669465375527931988084423100609508847430000725459369255871830040103286090528501332462286301029568000651340810299788140013503022303425618112455872335396391697091439489351738113211484472965197926880894304403908231349748277620532375838910428776542727376911096449095594040844347566860993209831588908815773708247949120333284558129518985872668914242095603817506706080400406635086173038299250093601325200505582427009806310067885769677647541482683679536900261991521778507614778982769493626308435232072017859354935567175765515722120287951782476660983400909200815775629700774395708858660224132855917535536797876859814431097970910599887575920238629001650705642184398736287769091380110566093047442017746970286799251669261346424686030741975752326814224342824030948504898383143497444624733591547055719877070555269884920793093213644386245135958736947373354996188028412998712703186982997149661061100185655027694564161362806766321157587454539348749725193135377512041407153701485728249777576344001510753392358152384664940857545443972313088269816396742559375232024018861840939637753052414419898146876547966863483821047575928669545605146759909340670066315564866020129232110815311792322872874733052456250089668939513074969418747584369098889691056175610601151903007553225836221942274942214212683475618291698003623664941945405780406766664631212318981615404145063840671495479880749342711476587139793653562031981755259918425832188640439449464264987392775497166905275140216720364487736955761957990750838010918291409697208554997035345304560165037554137560306620880839641294986091615508299275435486589160560116249585020720225554066602688014606996293287799700940716879825533627141836546313597885178055362753443080268610645555836208757204787402785760649686819180946383785773460446494974806743431649841747116490964451501540610344865932859495559070829479402593037828157699894863287024551506874709243831465845063903872729941364563321397529215855566123626176073661331596294322011633271182159940331600394349958517921890465874531974779739969057819069906961504205128919077437369495409701689851762199564199621477066584446017507710453696634383699894149362261873506123287170702357035584241949499769647291561714932769454342514351507812675182215941709020073636369554719852522009350787489128753740792180460533046815632799611253198819059521845158284566110290790533082071165578543709856083688101189928586005366847485471826545497814436259040408607659118595437943969683164747477826574253523855528358611254971122624075475849643607985677556134348381222740098159277387449467118847915938039160289177788459939069767100647055300108693438928921486474365344051998300123711404431977723124290022043046311690571102582879398972465079781328642733760847927389892037926331951534699537354038562457806385626225508027031845696538858118300604015798311232188681910262343337009740858034752123353660755797553762661610616176247740959576640527549144928202908072822793132092551376983100966371076141578212764003654273853323885535881325030054037731577720510170789469619691144242004397606244334809805513485703757594675238333461411824151563151793346874525424908628986799656143599797594514818284003710463412264357961402552956539276678835268818753242659032301892928784236808485481784644952334288077485122115992525750637779903249144385942349000880192468479355134751256372449279914154416605288590917848993342970727944821896229185347483677643331882213229834325043758092222336886371926690848504352648353882115901301888146215317212965690330673278725342841343903750480565415721026339699696387711025716404884315936692437507008933522984021248215375826623136573932045792115878116507731404270361420841054245092658719629468044278081608850648595501613949468566338221746539823171177231575519937486063240803896231702434048311118654473607013383213697638161506398584138786778132816416461516501485023963447603016467898087446581874286363690128316328619901751228380880212058250327046005331793359357457375647528581651294559053799746172532080241085612721468332030485487528845258992038140984511542902450177086777809527001589119062490027306600886602257368670138931694631947748901960361202260948130569123694980236952715264426530764926973667983752114494783808394973238057215566494439083080506665733195059597007409601884475239857350721220739437276740969767766403110086632077140208752794768494679284939831731566896174842539621010011425472023814811446453636569714924256824690354711139105061433842245318494689632851904771826276510855519261230885218219635938095984116137855497148294603946140763441601894020878315193338570103109165532330282700170327753165495764614383816888785456013275272641306588477371972087027324885732757687907942585658014078575504382250692061110414175300946516672998205212329244418797939803133335417899508506429495409980920808823943653614591424640742341138951091076181130112298737822450432424240372578494083165301761378058666209139497325373186684625048372883086124942784730057516381455051737943948841414472803732952032447485199793371471358067933390101947220940455372144187125635831024518441345637629024550523066021318929444214201886065314606641893158290600879281460905440891534600391851431905365595190534335359955187575368366862431395499148698415730584984764448272948794880410106453545711572878025674224473931798611881711337185919548597937738366546544383879746675661094097808624677746805520737149112864962032090210937715067099662978350565542024184229288668462300072897912930294057653686050045619241535283884519628877019696916304174643001194424587808896041809984227260738854315448497810153150379467508851909863580086895703207399354819680609217559061474347259793720366197769439409436411127346917412503518136206150827751516799308796018876500017866689142081942069795357335599244279209627563995436863529263543032861606390970679335429457577869225590496728295861062712952559394607210744560005900761025757543754791487073347922096018841055117776364366587911859885651808965112476517446116421941960594887482671030375319323783558016103519287017827125539268267889735878577187298759414113060284689799930788946274314128119042419555027068708196080807468295136829562861644103899037592283313774017225797566331415669102998640269412703779653354149523801587825043888715394221600767048001745072201995690529759315100448880226998260607914040283883133596711638622990141214460977577217681152366918564652096482452733479382978496204345767926923531040759920190500831783068706355167134416663658511848034166413945415756314678933764994917372287957101307338351848794415658083092227055068385434074301496554940881986495534808593003420308145333260551023319924776764086317319966105713282807467622506570733789411404821415967395529553800110879675859381075975808090326845705114538825688184822701504835078095372392713281775781152924858018497032472131437968315551450862585820108544941928744250970349948103187083562864269419993054692932171027296976574762571723235919228556287821384767283398873835128639415850877681303660960763218592473741428012078078802685116925789493459550203322022284843392877591878046512275450820056881426149249859184108981251712081467029385985277115838976003793265508059993409168256799804720945459203761316225161760120881776707062115330560006563458926827915362736489907149012877425634177870463274188706457523157126276637204836615038448702970408196257443132675632934495725354899965455364277623773639503633395730520510973848803235806122718792313260423435274791410845240329863177482624240988756038943308135735254928880156284694052311054355223909464685871043222410744338552178183393831688270772743176434419400918257288784020220179599931393058739602234948725909916173777152712349398234533071717769714373123256171878527868623676259338528770533540718923145107184813501823148839817525092342468666338501781339493408752095220181330462646567899028687175261065041288901182624635582004162513677672171889556698661137367300657080448825220125960218368125730767089654356289769016174029013655448768346114387447671275507872206212324324087506596232051845247686142436286842099001705766647839066289136474015917718784715445307088294713877637252214337297544688660841739420654076965967557688596953046640250266818363480085847615748004943156681565487237179990912963579506824570596134634831629166270151515135481966221484472891732968636314352495742026679145546091273136260062832646187521617797025878833593070248367183451998593499474344302235472887095277945155429147784752294276976301129287570341714528415031534848362904957531202813828661842975920246747812157530976896490172655991365917861827478409938622540834020648872229954476577841172547983997456108083254939477167345506829457214765707734508341385796799386281782867619365966111523880850987466985383172055751835651461286821270362582846595842843212615548377046997911930996732368827785273865993850683537106832826696352913832266704058304191273498834650555148284338126709054978649075205855290567946702758454149766457535864752050980626576709626439871472417832245173410579498587877096383263802440341954336018113871374251809250404443783118837139234933587428264091004916327510727738441925191986014314932475357726067919963542437759272636601770763203356085179295136225205253084281315979760299752193619784120788290571969403114273757099273682851330447565768050455794814147997907076413220998266089261086669978518948397657583943507607512740476214433256346931042749459878909802188383720720077510868832069946598584679166217672680478306744653440995098767582078538672387652303919425916118403464207694831438313932524058871455699888086867105422304565327178569347220828510142031860743143543288714552251942843400200011815775574240215742351812212236559116098102607357683680473549306635642407703788460280181496656164610217695824850968181731458961179540448186928887078778773745534268139073564130967540888140539095662225171173881584371811059012469837215918903895961401334457986190782669970269462594465714722489634557618370318517198954145879402818894534166173012555141018092084981177267243229386138742750130368241885506165930210910375395433592800149690264204632059923846634353000413831182018071215801290959155557764866949910901814214324248427441214978434430810731953102251971218870373784275544911736077467206516349479262397531751270866698473410628918075351678179458845249609897509860207953592438526324274049935868644646318477668909061929054263376700082587768520437267174964111239015722551362193529381570769051326583529804572472338617353938560156763047667577390731527637004913457871807577563380849775567406094890508765380613731058785309392120521537172223633111461245044088280080826842572953913666757774518767011406905920628080996001487257545732073913780001374065572891180867400876474621259015296905032386857687697108653224363622033905817304912830330763665240733758537029093737596229244804833772960413069728914821747783038624673155275714049222090703020195484443307843643661802929856822921494830354541349713499756896011191140094555218769934329629210509583724088932264835963322161239941888104572385680971723042160843566209062991207895280860155019775258205868670833531283100520755492524561097496853343370794210961203041979256687070390159176782869975204640052054181789351626746525377844967301122661784914125612129950408833582001070735487685864929021432546953412675312624265684434298667873272046616610718195920968646436057916835303523690157062258558860034225150115991676003591033873206953621640422894143142816663248332311628496938154355601174787894943601404460925668554227852650830262726270884147838393522673437747548472529783357049554977266655958225066376590675009379951169186134991823453694138480606737671204773792764468740347623865931520218691463173127592259352488528608531944202540509666279019579840384492382088064007434281618850292484993940951510480038105505048833633547788419541913804558461108530317344377277832762091045215498967354502284881537814263148230990517727204659507137693946600093079076877272042956300917307069462524567037772321417365143491460614572738308926152892664683924178618848885611622358096506784922476380332783946463648480413259916373911576485277535418890188052005010647030792938946960554842522607605970513576157215458706696879905411401891304272147821903033578409372165656186853318959234121402129601519907237289456332789880207055716010005363975232880085145842262833554126572713087418601299221710392453983462400617024324374302217289637880354080814637472710632905539416103957458676310793745751780561620462545775834167051588852070505373029584384254953754152574194162922177311795950827847830610680444349059669203336171364105737686637623396393663846308919577878226735148101585808167853729842514972682732302201812143653066402479858379972880417047474638147452951963843280347412881167954134526667796819394438547928539359653717950050159417949757411173150204743395184589469604242469190954527497913703644622219320702121782495900194862483191526393657731117275525740100746637779840129686729082942713135399172040530973564637650972124155974681518219505251462691017582904948911739349882736517819752010446581885264080578264368351393202895126815994503329322257886719657395297385675086451900180379843551219732253974200799140678916424186176005965569354696246915851299738306647224388337996135240646140852048809345094188683298523229193480391807886861143416354611795103348195961298112099511939485218208732228619018893907209889008530035919600367243157386999415199736453873780046376450037440137236910282723511067202333516780842323767790217598078725771280861285887137904208020511188024063573505909324481240210430537534202590795452680812391586291029058164210504230080744321813888175117851562042506334192639557827343017867076136348882308664288838035833254380861459268836372863951321228451199931324650786673276934088126609715020497345624259291135178231394904729840798240725866945923822018165954795602365938692853056362602820460418350301714829657731017551585988057980709686211040771450081860689488875559254713583319091270661014987564255579598758160191978638138407659014767574551762912292399797958436785003413879049378788920461851808543032791441631717406510138251607371278501163159554686931265402666592802748658506599512736573840708300555034877169647756408714003596599477753368269094607847721058883196510771959169247581452641503965487177495744746764068898890973821054971381679810768086077079852662998539903015112520183197463035660542302044129279465397295301236215833938136579625536775257355328867904716304262687319128642320914895986266842526559063663761298589827210445858294454287264767585597295067254329955479238084482939530405511500986371363285336306546996526115119080896382257882390647030113550307335701381484249611221975345049227719917897186079638502819935155170619311845939885220269874691165989733379525264193090775125242373200519530523716042199246455826099769472941579651095727433715456675954049694813096265363159424416717341764374646052849941705448541905624888757634807296952507169690684959931729635402080236876763468404065279325861731309159078337481192495066579985916676907302700184193109432334357518530384381143302390910959030870086107754897964585592813744762018919642902552088382466331912180019578369381881590617427234498387247228327751115296617631435154444844003608019443856135872969362119169936520892183374606367954611170177783833867320240200096578492263880015627744272675117787150633040437716084710230366017430178193836739544145364067574756042495787223492157364645066591122173071384502527468158101534244108805429523874445523400678532215937816377880697885937211930350472374251178089414901791071712570564297673176451232057464887616128870970642681244701869005643184249760885455122304525571063758827091693064613834046169790860639365141300147194050325565276725076544121170389706648952300144980530843447190467681457244053358336545226792404644051967873391210691774012061974511024243518235738343236188088641873793892337941819518219478645914006363766991892352324440232487221603859010401191784956748844151811649293185881539674960252950862563933482144542734162915171084806918737297398535862539549648535235215481154332733305663434427734695624376778434476581929993536826945594958170752961871991325117060217261006378674016526537552803271200713159150573477375192418118797885299528218003089608240342781645286513083088914290219399486147010875710819775813097912864761469725142592749913500103416264972311755605370211504707824532118752192425286174705137344109488721329921990247953099209148584557280358400995483015971397409055586570435262311536740855838119518482734451366437698128619633485697829624046428539963747805033927420024641692004856528462342508410815099073613853860938969844762532536040281805229336500196170453555685299978525306751989806373709866553318914873454225574158560277929308085721449130639814657344169153817375733242849571988785325316000015933601173931784725602597833846364604277931767838856792905766510917046027194989768427675794564352434956971254458043678920774126928123448094581222954293140643970286427846005122298773157961331897421609566098021032360228780677187195808142065024963052831313822916046791520305800945419271771996277060001476688262936610449319129162378784052106267261991244159689239490050776939828717738451842617726712690740767517939559369261084702365078121312212990923231017202453800506065298066279347124149249442819439635524232567030020455668034247607667444293838926072304409510567482948258230575008209479309906217310530661339516129084136081028624292538476589665723002845209015946479059661397544808538835030560477914711338494964623216157923698939026458936609942054316272283582054276642922425249671577723237033961443677384711741000474014060988810001884242747359311896501185231343014140193637956345460932519638640164036614326423000553110941859229178062753901864872336804232704909778424655316633435785213007316106716245210201655766447505636707768461410159156090407191343770199838601378320818919357537222689374174804188969006349842288581399097590919433887863803886179675832595410988374674123243367465857037144258183795854515193798253484921411473227460499199045952366547348137201429387382496319214612456226473206214506704304844616458882359143504812027159689645793586790557329707658669547826145312319137684937853524251817305704666626654261428169424958409239677654616519876851760208363032235954090723914830940093992329737799521901683718410436821268205111868995785427622059634769524155460079901941855405143764800091046072068184204015541590904655986173821628449423132693361993012006860067056623130593067823212855001239453467945310181948974094938923063998127897968476391933255583371647221864958346920909391292540133643117886644381389578357799775699638026675141803751900231221579711894468891264699749431704747146510603048166211165711910546786292245273375438386182234066794123011410039183988783212160533223705446466820752566259985078414066344943399614130831735908282034332261576173873426036226156895791897074663786439691978003457830836084031267985457893143745878035372633641651628735033629254275797928999081797052948391995791137827242765353686405032372126141395251778818810075014807179682531073660641133626820887768208809669228002474565151620599653899245449497372579775547157419178008958360941805656854800274465676148869930948206596672131056171139816872901393688739537013413320720660176470441208954202300738392364155991897955375528711387957580826247519577857552455889327948574822691052209506231792022126853117713482247635971473324980370563070792605711694774914197992036960401427749431587246434971720152993364127079452580678176673416838118266866880753431926510095454226113356748439886773905758378905587174685361568548897077468166090740722089932209294490267469176919196626964187216982772875431259638120658818413941710416090470900147671341568138268515417397077262356193034435549116796257065866522327491494977437521650482409740579457848526010905885225921551497903789221621559949345421995724097909709358715200643828715391317063109842736351993167401050434958536843009073923778524930503206746926501958029427496315173277864047839746448268579352717203248513059384882061300468364860725719741280426759139163033629869855557554019259370839562579836764522949046196477810671221129853256566668309986808769302312438715424794148299068610040894297369487745413570874761262673298923460419500869863035207286688824061567536179324798090177436535539501443933461812806420898677179380741018181768604907335778954749281838174149859835264043562917053301608770134897132966528433179732113128159290275145415945906902856518085876983200490651879675025039613279248092382686982671697561866440005524093278572119938457895954232666836425066818002413534598089572857614311486447236986155986180753605826674315252302045737978442442851250187928045991927302785542103684899047805045335610050194438995859597330348659024005602106863414083065762692819033644540243006753380095849329179240150082680301072477699539929497784692556793192440511791395932075138444483974758673709645858321240475911444554691070883199768431555558588188979752918738961903861454754166822187248764833664114284056345401787275398676030597099015938672755456266225744633374559103383572207408337470186448979855949070798490790466148713297020547695010080441838184978102872953654291875401916294263548218832438135652436570429532801416180494238663619690774887563882963080494920691242981230117933442973314171146955988859812019533906562303865353381177757413232504523648936451970952838389165837823566878709980606696456301145038475293897342806560589408268618560701177433484576698863903692015693105944611048372731801098006248310033339591364756923721577267088692384460881894752521086094254781284383974808896877112817327389910675517259609174266699995296831436998509499765821902911564766277632063873084988447554667336861503329330952672611268628173878910210921027205628198079088735883003197229007707271158875711790279727789453467342171387804547113142380160331062431204513301993399881424410067349074393932370420442449002006332601815314532609016739073948781873152140646662593652020085985630823428473269935166529788092062285289941076143242100066984470790119920570247058161737436124773529189715444123957662550945704841534311118084282962710581419610490372769109666906710557064396658070273314024734111891734949375499440291951849990353325792020528833456047037855408410610733391890149339606698477309260856624930595263660399260310615147649298675234379720693494024010328650171078464499490065241776795077634686159928343252093906761265355872891314013611890975636475221667274997884700888703994611180452561692918796192305631045696963326296843922888135117162580747859053994208014501166069966953675257436933877560246253509977234698305470036386178079775053701163433282311389991129378551059647510627526351397175393608326717772327591568380529836617111850760215011996892077601240006051547710098445426940291243962670906762878903265467937248190210529446909728526834932735125374718719945039717334739208478805944102497475341545472243004134125855193391110820726583524992248467298458676357663339946665732559969978239807722816123630288985819162467366704160808369712555286778003569121021646362748697311703129805206406346735149520547776169753170187675996071984848013424373600725070981378691610584140738699364121621186215297116937597769500213939469217893982987053907741773449595347786005094194251779575697026768699084415493880913130315404191886057505910491201166710057849660380685264904670167588694567766103328975340745967665906100924807199452367558504460766780217041926291142416222787813954630918155025162060761690522592502996733243004010508323979860440661806918950311141287909703147918026011989567983888902884584266887568316592994971346181243968834537104863768216172378064500296327519071958028421047171494117880942501748874676675316513765931193998030727735140298479088901586965262354118538300679926569073294673040324274608825110552991541386337232347374128292189053314168743629824906883782359082622797913075340756396863716835499038426275232226734345387273865356478106502932878531448657903556786586180634633531869403831278689117435466267370647655781872400359685340039516787816579131476704102755980398770286635606944415793048187233269308981243521815912212704820254238500274388255202111188452031503461603133721042254709066271919795801865093111017084758460228841866784464532051348874813157538993798021921857006152890412380795888093493228715424339482386623072059447820946508240379724110467040838085398479175102613978021029817714592313788956696616973485536271265871964809471042775458068710312100462785247386084671279751974153750942685140991034573725502606704520524929719086030379326712981728190250631057342497176925684274891185614513326737747396386292594988070458494519335151079912162359928208832367358319728655137102371001664819255548245404303108964855599849020537436510151894570621024923576123238653587346538758181750981158986296083306007636795778756345186727276337359526690310269686390369226899520945513684534081535359565788082276908603183496106686918290031296479632734651179836696610185492120004059277593464844923987670580794929743501860162553947717278760781844746500388230371557497494587952084616191797004082328656332702542763557285509613270667637353191420177796401876966048689460724170462240531811407586441532720871773303083635884334957821928977608802098928324348179223487705257875202971854071232723412433647925288643646059100477740191333044555484520680025611612205314762480547231235103066330224803056372825360925728313117651362959952569964333164419154804888604676701954095639407698129225510888458674685519178748600896795634388005644653262225610317919594635272390838319338517218947577484672389753016486947841617924886984371512979993352306859843003205954683730274683028405345380110977228630478592959380487251842146086306841398671512467693701985900495804621243474982638273230861054331667545199364593092762782715120327059995658505533080878795937656393507817151330989825977282305286951551135106893174778493666587076978049415690676268488300114975932193688611930547451971564908288218185894750228059419291164423449489328584835064857056641070998870273076009785704575598880068292086903724280781581375202409901413376182456170605399173897321426090849765530544526981899835354406890423497224448447021939459832605593602610503719955407452480012032009699172349944051681150053359549382024308558587804416394497432512277141208871674172751967058165759353992107715666889265586880528740685705261437048311440288094615267697803954651910018550995853795519263387409825514840992845027280566301296500772910357352931835643049901610125824334940864578336535281923700670239878444360116425208171642572858725402191276913112583253391288668678926496797717640596756323271632423601901415409009799821905730236707702451824166193761319927003412874914643884179182993989454536961700986985403619158871650962556936520244751215613798966563719329551696988482017544520487397731232447982333474330740422224482365670465831754984999917224812610311966661725512999836320144087808598648493838522720554789253420603978424190046621098255330801577774811925331264310868064694378553447294218383152315821761505269158531034138455701491892754645425349104777147538220190328699073450297101512496866122432552595504274920906442442501110046747428375713292878478086836473494572536735823613827794257894714598373342659053053553825625129116444773205272773019561746623353132332936260962090138981392503916169592799418257494805120655045613906825730378625293615890025503036970887119413970161966688600730680151858961720175208714978602781878488736958031595270367596883022473133333708182364949641574940600267557558107433023688573838367860976972149891686847258871604177249093231672102075461083373237894802637473012082150695619010722984256093258595813413872370387686567361538585452789707647390070352187771576394794753448623008749520142182925536144053076166596074962787296756448273898301951017712260196708701146061082536298718828331302942319775079217147317857021634548851413898402874909341303889226239389613519061817835450617479149938164984062670745583420414636773066831371768066878897353031687669415658228224978473249126175635919743843862731300502086937540660271181226440917058277398505329468243863553771621066786452370240157138117424286245369037570436639951691472773008305748398066484271215792759070418888915265698137316626147423906961201730274553163682639593396445566108128497134731202776421859553876572669641319393838664957117489858500658512153781257830908482376109016848018886852185187604083824211719320617079445077550917083033777889962912707963459912049756464212402243014656655798988125078261379157716437990883257760342359727097843036805189074359011938831354082782718545491207674356697574557090686721406978453344739329376168421036140400400304079096551074963913988588239421811598222143987538212036344802101995991423107171046465832178447868787502581523660370367807037815421695585838054274348936175102637178762343283577824877686087506785252866613921537601482639113589027790498615588305177067607190385115445782527332516399567186665201541330399626307150844562243907984283614504867311452319297057413298679388666674623260928547231378379834422923732202546134625857543120510132471583351930411480457520837157992197522757436758120317499235405893407627621222862254769992023976852329711669127970148855293845327764459132645621366386368135758564798568715108410103456208522821513679171964518234723144003355906777722695281079675668984819947139458526794739440968199126212922007678186839888871011813181202047874102977214263951172735683849451502268580228585358840807385694927316192614531019361234987270417436378869855753280870868906166446085777030679507268865593755797222218741096214681606509436179799223748764766679768766106744362175768550449325535429706857428179313541256634530708732393874338104563832247461673415692822630372637101578894039220044838345442116649529592724239958390725476209946268649521146167209331167238159770489302850960065017157214505388489601104171454744064547816591420818156425291959293205918329144968869361762189792895979831556059618496590194271456196479552256761690988135174323282378436896280892154519115992967182439601433720607404068187834130796300875560248942003143593084795421053542637666976419908071357343922033933746563567836496754558339224340642376412246462445026136641244836401793789250825210162440246187459966029393472290231288735241784278595038254037919290568610053563026151479675968868916750313169256153623169779489713182561528274096739724755567993785830722610817247843145271842649638319470781471628411224118270039339733555046692400283340940914962271639750049617024773294561421162702376891304751785263552851261644779532805242904871853784477059880616505813990589261091101331325528142218600436507449361023120792898697641795329981617642605796200162380620145821831836303574241165393048142746771840718508768461690212014377334495266734060013342706151304597437267995204750634998636731062412465119164705604045216873905040645876965645850097787395470303702477919642669286274584876296212772188431325986023871185244815444911738524487073469721069411585103190420061337157256056313777998058569693892851710591874983950143531223246533257356705610970673014787085379089921193334225070030251654835680431019909176384104877023273484866181551146687474656613061492419752499312702883906300259874167594308101146048296378777371957941637891053086754894137770360385908787704301064731895212376398238601212135688364897783821483882706821399836662590196374261970936454152149757188767192561399359144493719200380399727866357594298889734831542955388585103402929129299684963910494542242603170276775127814958104582941265758470150244440839198728590921533075624160409556676528273199602791121088018490352954251785589590678573376513554117270749494185097022111989967479839503459767572552184514782498358052762505968451197376945870365862654471996572861862920271373102341324584533665656633531089868134004759447345833933137254661195855994265638390778557199712682062994296514763600994603154148483379072827467049926685797993619477618689447852827178710520975320857657806753592938139174359209505613396443106489623289726927697699575375571327923816005915322808782566288566757609155133675674695158042020702214485475278951165640109571376804942764997513233434576339834260610140643821062550818426067903993642730297348033284124950199827922921755196503598670603082989876559262091144976783019648471791500268784397499782385952846167773414715687072371430500366462589259027931267676801839976022733766600246007300898912897563897742377487482845373122883042785840437266557741560347656581434148710438403101357861800164416082200072130460744643600824597483725474416153005788836614262831423418971424260307342051166600350136552392942332647232228362749731118342555301583398821107071548032785775568899423355325754203717894859991537442784394407521278277232919274598788855418762187493744301601136395530600702167054591397535273530536928518926039756454952574549499554306228517562455884166497675666942077972155862043709406554259969097273572343600250897226625459958785872871470448505629308978455473129078194817906736186405155551281648797532580441458825988271978461789475940654681275104878641762759303330099958305782236383351697880851605198055491767012475918217874585495120267252356192648685899002550853998820655569207296454428247937670667666339165426849359819382686145924310906844828675733081620399766506881086147166953123318047848289499355467390960853265864649528576075326740803493691718554888029867099896855278990941008295634186571191748898562654272476171692383400162015836000528334769379044608445528478331735148618151694496218520707431956438942735188797642071816732792313353007477864948211790316516357720886805933307240715593926351327162498848472518981994346771077275906566292591822817403324986847396415014007879622384156933495616709914735657011523024220920632392688220997560383326450905337765573816120477653754979593043539848863202824050645027403698568724892491632311946071417827819514901102881372426109279319992359605544709214891743696815767017967860638568210118753010563076200746044612224439325304725822725403440209918036150777185312883937225315639188801218615430076087032228649789930753821367438566370594229966155831605190759263443137179346600623425379170308192499371779560429758754974124693966982353458015653076967423520051131346451068543163204597226091825590259706146426900612838344934049350861995573490263062903206888277828582809678876103043042472973908662040368871711100225789005079225601755477891805511015447552171217545188360268234377138728190329258640830637462826170586023287558554958670823927817106280754981655920485256489082105348325158193042184822702957402186716610773405258343982814961746230962210481312293735099169247422279203917075083343105053868701613812921804515901696376031546028971876806006562540156404326753082914434080851402725695042129115033542468904841554289877123524901266740228508876502413479691748956945618912750529868450669414207601956385492445925352833035733920855881743444330891557134588956957582187851689435872565273718761033724117031929094714845133623205187762962807877756301039866057032745033450399871894966876633183847242766940762645676372632948251389876105242260575525738500922695772915549516759572397317948372468578534304641205341857938276335887109998624152848223128841252683717168939217005911823146303666048561398765191761600976211638052521330223782775761676062373072297772850445402336348526010486363201907026114296005193147940874412040559013326769476218152613503537890606040470493095660419529654851076026804917241485235988204628082630495647540261396233226711959069736912334498758403884696323805995848757354893770592404385306725236087320867533726974051025702276445621344141153199071190392459947647217787853875999293052997581634635227220048986483152086150944120565988990364818989204699545903470944800614203152287383733246929299416799836705283545895028073916582273795358026276592175767559707830746800142709796518517816206694302252006817772835689117763360114840705035195418838522285697996677818350606365673233364114592633520270963047016580437824559422242395524695080011246643800689649992004342867614243017501887740351774784817456358874153222328354048022504560955029757176270030422638772741593817951756831194086502226641058228066244609992313643164544082852014467087930308749294356623720331107254072892239090417465805982679885037242003335292048576622005174446979360170206217507451068298966599673853483970264916224343027166702745816704647282411309920735107059663751555615592248543166958386396081861605179018610893417189739156716168816540525801252468821078637987977425844783203328055662659441146448152084014297804814358211787356167383502895198287549996758850784460538852208947124922555017051923126423477869756416586882047941346227464683260121447102472786997379180506394370040906241457770674090688127977712806434421853296635534892751982105051795252812740308039050963785040649226440385931394779265264394542514558728702699787392785646898193775157181283536171736331284542429557970698557776769015410046777070709503471109628649039156978371124999341479470323897291800225112437617370928980758732523478884492029080581078915317176038727821096707815030084554479695612390609436190641960610790929139754835215317225038750126470291617182394996427903027052246059527725998731362220316151156223467539131015694266943359225536168330889590840130081631507400652099008868996454039763752363117505734542322913057218057029331096417479560450821221962686201014109078488034540634419629954118529123282813345046182280479961683310121437030577059760939128714462258056292649627173565719793537215489332041042019100258759600288601920163259849184220449345848592907339749983308872808878971202566896685133199905981629043967873776460136705092233263306779650909807644861378355352420768173445715512370916532934576063852471693448639719942655922573434793014980566857157970269316375940503917431139490104219911021190220638694820666777694417288607078121689069690045207704773968046021450883054901266087936050721059615141848678836897172566612254889336284355630266547744825911255560557947745662488995193642532282310511264875996090989470040581314898411773632072022815305607612504933289749688606182560704928209508367799379263252301230720476252742352361395634718906134689061910926950212710589936560867157816177270526571504637419562034580047344407485357323860997178562313138958966767693616811315362270083560105678904625495190084367579748411045833323657673126723985449813178873799264684797639451180334152739146002548786589816723558228219618312562646281816314422851922818907921122318819703121643921780371184583694696062308436621366010838414012394710249283235080533929868102703852896220885429567936118362386879364270422508990589269072932089945348721112568329159845712486375899061226280422724575409796191826180430730839697710530453500850404080938086505728946353389015125716771773822753974605815374527886094385771534760055329657482726227034197190770977402844002013118305410843837846208235543852114049163758853183133322218758078272869087492967167068042689509420895221535059708029088340590551218243823846413323875209107480918077821755803922816665248895045786005120080638240770165413022679735115295275671717370777679973837081805477935023361736694795525203284468190352470929661654780727632322373007649955072620778665364705946777437979450918312805921834793418449519728223458392825538440299670049880758674021436772675914618317649531716299664552182067180096963016799387532669247923219461830624800667074704284776471581382344926113580760561740447458834611571261634022360819059633572419956447065802127473917216771143219810771195623707895787080822352206085185970351344765686047091562494239285816220606346793135520356399132705582602900586699916637955914567639411806886490326428280621618080378081548488679448716453426085347046482342793355850169107716974732377974582465529535031021475933674078039006085979642398872173823663279073264490463074783162597965671228529415214288373835346047291840442487501380617748254932424492083886285484860488117812770641663561538054616545707732181179685156315884925782276998796327901592833609361561255287661599794671676755238435105429237517373853804408216510993616881312703841300316292451126915787239637108145465696051901304756620253750613719510623948934657752574029239769614272444254715154412940647384998295929222645227741926067179179465040288248695282225448490247399525831877195769252366179335077713443047314770673347732383391356363730432357397159787150802462763875006878988454610930954999578197819279669137039187199314484895248695305990073986079357064632809586146511891676411027819482635625788031474633526278415371319280439988136928759522102613214049991637931605782541236809481061964591487422280769956130661414242046831739838318924811593610504035945495545229686450954734300307364206688950008013529660726108396128633205582743644961916982081304361982067684663185147864475557336002934053252003396203283199550129909174669391564733675931056962826267694655561584467006109192268475367233296922296464869033117343284698155169002117830788741329962955229880877170274438109921227920852439427510977090117725217337522301151644652019218278360046686307692682461190812252845018551879351558844058107556816464216034744299230076063210184547865511771003904105986766198993648626562224303472591240729460398928947531612627673597322859984881828278120746607536254408029812909953834351238811189606085409413650337069363023791875111984296979772149732314597615119961824731062024803810079173332620517067297422756724829388711365338805947832831400349526350758016169994906722425323521477846908927470584035595260222164880198184748230460554115348165526713433565740506124881294357259033961495850263688556139830795594948202760329220330226134011781192946625052759815342965861008410653756870310501718793331312979935110708415118286009092380235636556732294706898940679693057595271646733929160723431702203260183210570065976743077726599182302491864733457645807515938992207622797336073723206118542448262866420999254359829190559540212181849009012538300032057375605163345813568419968372584839913268228710662066270115922032810479922853733737286826881840170745842095264962090302038260784250468184809358234891064849367837719575802779447768112009687688146450414586550654628045852059231243887655525019741091788390033284452430510562344416425542309881250325392261670980860636069357984075976143244838241848044189247317275248076708061544689067090473033607206009711547980716663626380748532659667117593280283171718730904764256578768219894914827286922974609505882682775848393551854015100599952227136456153863999726819586135792082276888759857827836875896755648055471309164036598779919199189425690960058553143889428461334358232575231975235414539830389002912614848477304265225168097502521244681718677946018925158891809325105123603916129168180592880274664204025313803167449301527614519994651805705000999767014829950839163967186160607148952175471336435609197202719995856757275729333549310256746706741571088090314865781456830941851456169057417767329648900646004605085163063011104041958572600302826463116985736693597685609509590889830597769417872199983290376069060644422507969354194703711245171146254241222732433452713196641890183715695365612136427304014231585876705523787495492326065953544351549628977740822975927517490114970838924330217182390713457071452255435972491064920472074573137283311733696143050074849347880965790024258283249621470254506513874812655677680692625931437473192277141319817024001368298482827386872064928618034421287521659084259509951177062389562490207032954575803879934430790947987814133969775262251509940378733716128337046028478747326381784521936236759934267734783612173031684450715275856739942413276409832418311288342112619748095884161164031366597543428555952008428949276197555042751805521966730166037860854871611523043274698563064756520187063648624277475360623944697242232352229093186614746319225043850437547850685082222520787278889731649234658484888998812007988885183507211488453122457534684860185605009960443597798564166163966028120974582578286602483440360425835403459157608129177947151616365406659895006597661382938456899186238352092809780765183377457597648552892690961608305751093329087227317793370454843519200486357901084778163526300046283342070783696985498833912886267365003138201232937081762954055577403267735782047207333745590221190838689848867965440463858459572778620994783329214749350338682316148566542025895263620522694621714200101311040007764173304224300312648507268146103583862549667832286634527802916206239499677353242057648252701425631555340119487550647031296579141476604924340254804262981505036931130890359536762670325655939727206100451200055146942664740548321598761231064272739992563473238376142398088455317323937952333969543967187848347366003393699130432623420529333150094699746132318411901326105219993287191755007857701341196643277890830221274952816623799172251427712809357372847021936470071583320640664178990052331550054731253642560918079037472635687004239247240476996380598356688790463432645332221766546132128231613952816176493784468313844697522111652870970923645941370472306635175521263574704294629511825621729994245291933967942464128527882289181890998758512749132922672428920578806422343129085715104321380483911889119178553338796463417587517725751831387451730093751319091045406093090252066802106842264916330173355380549364098420507498052406899364347124981444273898410670940471976867772743746779427240219671319956352497183333886552585082137042404768614707125232171669798321833408156297072113271759183475629869905176898567854041473753438254308766887021151589017681669239476810003534726690650431587413228424229542521994467346717071343412660207625891868329437610978722295485167122020597615556023845917107819025590060541721087525890149023478482888043166943727420269096148575938846960913469285007011347966566790240341764936826859709932343463354030441394805662792660475600299338981812158813397450063872318439049056708194431739767706011068501441527752542504992041317933918520160086895609894495246947904287578957469664814002686160272783944719399838778777015924487862321831591313399626095122277700866822479681025188875168790461449762529041813903302900202746889328193422168781140286782454750768359064018836112753613438404395246211066158832905032663055127736037540279463519831948484326094409934659385369232795753996551468407584794616737567789789520234470333011980525339694181457916491766103600307789237286001457814519318570463027023944045419761912706331349591566036246093335578996123050447433813928539353225152421348854495232967782283663699515364855323137694595713275140978834862620528573922840127421209612043726431968550029546412525120216238745687660741211931508165981614917649258024359128304576072086994315982533601873055208832609452687898251847230324493816500010868717854871332675539831644388847131821919665233620302415583738182494876531033479431112094455605163196300053458629415709088982175210571220312187491723988083695655129754494343354873097306962246800156480743569000535154421300443775714660466301229838598702255017202062882358691761193841645902669490881765006453251280638247503933962466594089671115283883557340345008775671546973899421929728562458032674365239000167686036143187654242644890493052946973020354174647228398537508065297412163314269685970794245129894495172852430048660736656600696344348075662784462132248602515436164771034087243833458817226695842167078938807777006306683564849671271585052174739381717809586320613986054066964730522859133855008941866544390325862055830408908430724306556768690881811404554937872250661501841044863727275612677932888602392684183477792820705768888097327714544606038296345584182464269325014436349902021748641634255311832261880030367448901654921076616795379236424572580551744802124281046300270280823226903156991656191869658007541479509838101352904515908040152484008973530109849578280369418248990666057590494641344411032863554009322747655010702022315347885358480658399751305832959872689931230085070973973626928478526198952360851601830757213003093467190793765325149454632894363635969151272021745748090290606964971199320976776513496820726266422389563585267484475909032864140438100479560197196681975966697691651513949871555959166480539741073531669033260666310071872027737023594799552385310484673077791304084430495223707189790419885806784423718164308514541610079203703187956576736769327307672596447284844775297855186207652255381350448726968249808042813300844247240447001383724999115293724115866367889607925906315308714898713201142993247332897641279576287830900001388215335181000072522309813697117875215059395991809473247978780605894043084835149968658237146810398160420001515671861747563002771571774259192277400301669274742802690506894966421964271320714048799848906775905436174311774288730485231255502421750307918753421051947964890004570399717544410040207344839121713776599627235532261480724934599385849767179868626155527713242132793842547773205405674885317235885344523164368764595150781585404013624308100438252266224091269557334625893616586323059128029156201392898015410941878262639982138253489333970498196318106762641871014834003534279852562941223766314681106051458329985467886124122793530220398513164317477928632952196014367676410745365491746217449584799023992868181590421115953215193351124602737828539202790839881043654809268700305439324197088017124035359678788971228721894306624487331585650148664253202122310769465527309375125899671692356419331190987251291842660929377940546512572618992997662603567881525230897266182597820562631629202823662076327990110870536441601567976098464113278114226567735411520026008200913242189582430410686072986679493986388465445627673003520498358675889826881547238224209591007727300842021523494040632036813656169205122662573185659247858632597451346479499215842208305346723835289305321320582447230299837094741953238550014430350104035481585952016960672264539466051189745457805130333858449229160049198497629519332820224421192165215802454255740680214178730968320786081543403768906322314803014733145258032410667092692392395907391504762155466723211696661601239072685002104327167934556864243649489709611749920343514033534546706942140353305500191250866398401235158610894890657256713308868988769805976678140569625994739918393573152328429745183767946975644362381343090403295831787924552459742388346159149973176211052348294589735356951060783288470186800303950690058681927240665566289417521480319142893188046978974409147625313217891009917949326194276890557081059312147493785470608674553767120428446972695465629087212815296292651890052488154716872419021680377996760022742203671412942832261514942243638939143114086921298939443431488550240890520988329948252418073292474160425491726304029987066373017810067768529966265110257121798586909522140401791579511154593582681876551308108115607268864567091425168220993703466087586903174646468841504018522135486784330126866809640428122834959771254583592132953863004275119868190726080889256625631256370656762169022388317242753534735239324417497289769583685239465464858651141390188659043013561050540095849615300186740775961531231759018736140278207201305345754523094304232365434668163254469531012975683970313576865196325040923664128423276669136463783131597329135332201503267361577725965006873333257245475511123822087479825798382873589463895350245276651609221772217207437580895160935323910226762582809352620785427876695856364956883273200783297271525340757321653314610776591365229063547575942213542498580936895578623189278845266881943636659247829668565280124433346399835468356576277812808773493020422390891250632766698290910371275470752313935028276268527982647722466428778010210392003238565444143527564490117205941882375959812589649682865736978916522761521004323915811430511168092250278263323762156938430075506038918117562630765688544145593689367963088160630128146457740183835590460233056477089201132827764944080223559619488193186592331424061296801986437544532743294606227085564584377015763794503088923948578959452315891806647645868228546107400191589870670727423985407237852354746520769122369478736897502770019249919564034519478605350100029420863860593516249462548367104832010506773934984298351065007089352149907292033632328952571215764970026073371425806628246495370122954215484365174477185554814023206875799440804780813523989669040628522753114902195978247959515109526013617097461518700044697679393929592175209279531228034589169434058781417732446677654837794340693208423534124440496021606718825381133382224746422413993350000828450458919808936803490538155875199149388073111735247566998993160306923966976240062704316796573645594896739342635098055168561635745688622867632048888854428268288618635352563435527888293761440258989643410238212503690639696244591852293793118533268487650636437197836720493798250573518519136632931359183556967637835770462493924077013367757917012987441191112149484378504248745276433888304785566946060050466058464637766537499884185930567312298206978708339102938221371931815553771159146234097335111093420205709661913396529328811462500779954560849344088365696035537878270732408609852623780994489945775784570452880653830652340867174617797248239799411890746906093758917681121097357169403118757776246191708380349514586526993924382429388519999507918407528074420375030214939571737264478080254471760112271028338438463429826768190962791023958103155670228625254666442243120320460299759333556425639195209371280682578555018659775682629769456667631447663064645534193062725540267787493489003216917940399717822036542487790784088234962715325347584208278990064494546015669629691860211930971521384318103348505277535569371204238426733586369470957819918561714914964461227536076315046489050360502024232314290821074190083995298357058247437398507947963529699137136711198779116752568059336874230513274681840761123739336943848948613833606056573438203764491016968894256427662787217112277249228764746229079322024574652164263354879783955145248002567207465563996553988883165070732700458638623569031439752880268384928989411743275409061648974963421393957674790275545467233652772307905021079502507452098267470126355039257200297948254126838325354916561452008973521270136246956618491781936167377229375789576178993341577618964547110930741682170359802846534109639883373202472316951883233678905067819763505779308184378747244478926194053443583624770835220197220186234601768633308361151393842122184483112826017343640630872700897881218097747615696592019574695252289117441557440989257060165122102041316901504082209740021501741413280630682476766800515172752915848970955439647305000588294771830701220963973676812817175109714050347663972885812208995180320284939401489563604632907048438134181966308218282315712934799303726347225090468202116766634717997515387808388029040302195526500590830874742464921224964952754638936529720976568274791550818970593753954928692027854507309475313157661490039497846199782048669235175705445156031423064369557002157710059074727408991542952183821583137312331135149292565022081525065799690629795877021158711734314552788869055906627941582138236840709752518792314195395150504960341668861716510647882975782348295320558123657280006336059800599959467625874533937518279151997384664944353287139148760677792609318392981071938522385045284161144727775864736494659383203051952108743572530688730463384569302179298579039428498254742441895609765246313504204666446301530249104670747542473819735460201259726098025749685440073561859206596202811037029365961716676506662379584563400602120532379569488345423506471530790103198955559807727407653177698704769173306506886408139289622908454725472293099965204614960789641160679300209386686440476429243994157297705301161775293334400290456662916267063671252259355439214513583141104702549846831215059930989170966159886722562392775005770310149737941241833961808717792744828460683766048054165589162914153413586241723633608913256271232064691465341592260786899410190301873496206529766818149446304461037008260204091536013620720823277839461254948862985329143857799405548968326280474269242204334918727505158833297922513177190214802855834208996425281119986482601156429983797754770809171701725151084258982913845920423403038855972676459931993441314717157043663774589808599951698257093202549644440817191912245175918374283554757534748792420053303967959132449544930224082875572645547446137153954620695359739660904195923297806495901065011785481306066460842310489103605845806141279607689133328317408758801536141990068033125819176049127687801870852318598324828455568997829570767505861951739474154877419544824929802654473493631420680579443980238083219057155624350816745843963149739854474424618633012294184363175090125047929536102141029843354479961442105476328525545576295279632130108147297433847545672171630814169384543802141933212111908265292405874318334767435830037649532282019969502105572103536678718107841830842093176766579210799812807477123668752169353896695661468797742595648869878053961919821196222433465145806064102532581304981913171100367427262839646913149420673002263674834567281990953557681732946009165482439698479186496248595287107800299620046868588522692853940295068657864682711596223330313149224804226993511260291257473386063896318659808481663879743014746741403114345494580075007429407489833646242919369569080678551791812646474950828962125883526634588960068647313272009813187425440674056506031722572270522996671218744351767418979792921497023410191843295892818805388370307299518670248197682311900398006682646014878658160030721815440797771520394589325434218863215690971315422451423763685560202547504769625390831584305396918829924215894034735621433168834378209308111409044675780512954324627654692568928584779421622775618480473552503940390247163184712382778014421869822415222573338841155697482942284087865424572123121564062241124151354913720526436501907017998564324466950376002785184717540704498509202675982573549293657648538325712305173413200498693900532305611005195780501917237889960640955232326654030770592609376164873871080587358872713796873660555936639698985844907745306847544122675238255212873446462675916085909129703878534762353582989640995839468345681356153341343913443264804084378907824385497246364618909338869349574966373262739691312589297305864401393818647000436418190863100659488962605408297183023107318610053228267721313462501761881365483875170293073027621893633865804984694334847794455022879293332640621109425073789149258523222201921794379997715499043844125335682590724170831000873271789895974569315324292231588706294586929020019919502624047603009604304747775437033479283599131949415714304214472140499070365625307254800473610672549996917410621681130364085601357586616227453135448566501112941262707947658326106624827603924482299685791054938858350390287168698291003366260016576671190588902389469659917585875838413436626595195933062736098828777484385976539728046539957033310721114484287395791893910472128168687199172141531352561371652428385874610675241314668281512298400634233371649064343835621478959983889313684263109879357799108139381815888931983108212853624268332860818494895357863979940954655586840022559369868841897091134284034154631529416182976717765797077356997472925176516153982344088109731949286768916113318125887266785194393408184977281610023407285769948989394261960958056206027893415811107746405100746477045852392727682799755216689415002390557997778454451100165780011626915559638785048724590282032223623471280905878026415772815804107465644396887493635109944263132509599206590807339224848903255731236779222088346454863909292087700744702042635047969373685653613080059108757555473625307374802150972455384561623037509979863218082674519116087891608645320243159095217046013638089546998468873517449460859101035618248091875610698713738002684155329040662726788908592407506055139909587133638921902754921296877087666844944269687629183723758303744041110675474893708112071956924317409359608758405008438224804321752082039926216690528204219108472772868588328528246443927452794533372304034782922890752808083811733116730005924468033323501034445747998954908001303526950058292322929925141175260529703614314751373921346591281646889232406399309559641250506923096646513506407890559605101675323563142071832405220810862216163357579766133033099316248287982938033145779372733562327088198247403180462963284421379478747645173978142868857629670068913408058700282999892000415028050471316005658807750128531867183013353903420615947801118480279426615667238374923625981387937553110886616067758328409796736060774592809006877722867779202556371390587455748231880764206894375741211880083532772080022984267866993030922908533561174251756973336979219319403041481251289653431956981241540440710752128314595337132597250515764254847561363741624121358659770876335399978046106356611308846560360467811437956614309065113183412198622199715530571344438299480922087009691225217661357718679091819483729492817987704830348831594484520371057901625585392462218636777165533531097874606836656339741082056440829031309149703909739947819913881510639932303131075393386318496033165707090104098013002229822099497500117707417610108657057255528483613616450300037510732746150582934713467950666686090029685479869735718874691070047467109710394447194603730486173025900524390703540678802886027399452581961075268188462828246248687278908125382126755961807058612932305993115232068648872533154418562175239511806275176126375835651129832697997620320309408905743227758578143477046690379748051602949725740477573866185543670472647889623044547890503008532852448065962637853354039015584678082726633803342473763761083396337453340565578295277771575116953894556171160521363324663161938135603006798260871390809910176676821647074908863218409088758983984662774072302825169739447437775085891757539328741741688630848132613723633431707978651889339143813072180350464105220995601254775226494215202689858439465456700612975256289284650608913866608221206835893260055942618129790429808394676181507900434009410803356382639293465411272942006677193089222586875515914655304418336749064061434651635164347165733144096825369616645957929705803978163556342610115124176995598245063828385188847162990401050549180157140631175879751093794176531234858933124356419935603916913928524972274421111661692195642683374054568692237196037173658536850501476771899521566866461985675919524550965235136634989018523705450404233171991289159980122376738979653596225166870970525110710859485745306596388339083408838166186210293979667657689487990362195457265956489486067398806355249132646720596501746002157294051436916508931159227144711676993820716530188635384469154986808232179305284525768141400025737485895677747550844917863349437806314321224216687094101609484552060283436520409360390656327355464148641028731901266795874309180852221589452660001590153791412734102741417577473754926143193544150339803650854485932673024375786471436944498841554725495353528741790815550393141598013006067033515004645472621352571948565647967362792639531933417476496263104655936327751866189376502402270010961387272567897694582090175337912649592008375990297924324705287533445195910609206178056733824137757138077712944802675664418187501561744055709755736926173855260875512960245154545798517808150586067560932640565775690864030900381296887571271979028903659058841694261753907316527459188019579651770047058084124564073291397133067125604664810986761694798709994322449788165248328080856453351608392676789334922671794013888596055590616371895758890429044473737769976039903589241144068378955160379359157552408083737533774088410255976371599672743147332270813531876329590492845523504404345202940928458982735230195103032597518885368615918220695890713683289852530707839561215176803798738065570478848065744252159185897943962985849256697559353418941454995840456185812014814106533453507695911280967304791801105167677781260272776582694670001077424959014735525892170182344599045668651509086726309488825567195083317050769374255029849128620221135531722020549300074888648087725309141587459391805336575621375389573968891046343364518731736787579588915954416750422551845435974224147353914836573301002290194316136672660847423931979769673642069297167739496831144408287458170116584466375733268758625471453484010414055310298853592922589395168143689276064118322784318258157232220813569249177393883515567422610829256119207969934501243583357185297234332010265428498960360687676779065233464830985468679711477706217920419063121448061064532267474273686100687829814748993408933664273959271442684762935170118376636431768423554730510780158440661176229554494582904847443673399593911152057310747899148196734138226720652413103033467179309960333690005537315454482231070684330155020728846305058088406654967836643337688569724204660638975421870843041925432448300567096883847017184298133250477832036826088355055527034513676346527764598286444380066432752677635119357785859635008284427275549214329049035225100291119043837198044412310867900074337440751900491345875582285499917521390572772121663516231649961362009067860983409445541002853071875997938938838497313780550103090092620286898762666622808192444948162404520587883650410398416178450361282060096663421621296766491957117063137245708655614298532397257598227993367421184330792441183705510370662615401238536867445959595904469288077307453925200839017153471054301107150696070826588072685104799705127270656668499522094302296976364326759005858859924793478015332916448453456846935471541689882635605497338890955862931746053427754078115388328244006753006918345244717374604458510350898795586882955229010115908468326504230894329694442646985893012596415981942243506534066380020623968787943815457258181229618680576580791868383460667078267604669263978129345984074811244512935690540895876796898007817598370348864273965095627034910218341008114575248776244309994432937650015800121808737583098236257322836402855730504699284872938881082697087616414691960384055532759851903286400905193245291322177740621019196260983583194165195453707615318605049185684821199073122124753857079699055202977199725234151776224767137738667673219716090040690124157736918077899132790130903108277360803462822175167635162460078612689964549529938771280952676872956828773394236825583780454802322122345351360800606131072579257891785723743551945130344484933864025564642330172132683416374389013699038056189835157515275022986547794291891100410640613188449249680719945911712581126574789572537115994882129621432134021788927872709272409702970444783638403386259504173592112330210485161850803298906757421798236313094488748509989229389244388898432921003969122938649142608471948753682479178609986415584437814128871667153808077881132145378699963367830642057219868747320520060889146956941845982524546197392836830521549801263977457464093520260734581572650359537541951315624173440071663041451723808892865290279296722102961416444925969735367202295339344554819998790232198052031648792354312947639527509998727727519344318405668844945883691232079886869852162668163411854023645752328299263115329699167772674323994680260511492972469860110718992969352515363328260190533413582318144220754483891906468621634045523423227712996295028052931222043123733129102937038715036842270279397251262655249706473181886365556658072461532715133655670602589489920329019495261995493553744032865169994019136671540041071188087163081754372051289265829166073121691120069322041024155184093515114257623967421461322309474437638347008273698192967780439987883683333143990103161844853930001406889555269071973947480091979489980801595706701477962494649620724497921882857794899233264498344770138943343083704148603172512900323048200278980593637579300595064784694449816658532329877798870575602692314184948712904380858212859870671755677792052707490563661118132624360236697290738483958419350079961884782798393738239517293467972440910752886668347147462281006919590527631236805395552289781121333299933001758260889563353564463194333447576703793367181101720892595613650054188914524609210884750866801965338191136244920123021519861749899932530939007176419697887656676587153430045210682934391542114741695502763050726101363645182925164075157918339025050719923064329745573259721339587514438494020459847416200611177997697275269714246012545729064629609684748221753176581474492299610844596562085322817272620218351058392945856690715345168070071424717656406774125281078904914382907498678816759412715375477376842756534793042484962507627685996122377032586015345223782336377527847107131108956010617347037710163936070303392347249418508536342336464562319214775749834679941099593454379469507695596636440497071790380912547661615897114055834838908799151496266563464070056287837309101853449431330837847040089137275267699422635252557414683257699294912767125976939768777368345404045915359024616409077242839759517964604882388031798975449364315051418249628529159655285053493333011825596622061255052507867134473847335790532431066044556527025454095367058236651599597931699567092628665176398230518274904057786253946749265354271077561324330197808905363023574438789710400307939482929625951299833071621445612769264341037407712101681202543176338382081598286891390027606494140796084847497062984787924518204844961672815091726311864803909240280554891378497451118795419977185085617753007160655311589160286869369959370966581182052308335076584441256753939520599442994961529336560688990141813793746633741148072910180916406977417914407454005390369498246864000193223586527016722603771471745484299629057749058243770197129768556788739083817092780991096184733793326882250013984586109842308237182875364474079713172472373504759034240454883987942896591561849370372185914792419720406716601296465713989829898158471269689620824363328462284855809789728519359344292996056304812138644481203936222832936187507210493036798528676266302299629751360993134560094313849801382027395258507589746187234728330620516425035102275723441082210467600148399882750342654951502042231110809616023084025971411387009968647104717356232173937368570846316930136829376918321279438079213533597165738159465382898594167875122011125856634125522130592844103265413262139796226045967774296518292007595086400627557983787214080734989903013376615371135348980756226422185991047445140005177322756639923908052038491840280346914084873096667746505956047643667489102793699023111631178801457818310362994433129443903075332741143661912909012407208073700443818425000714597525258679160893071229935676280687115834205691107905986821056563782031099481152252796384917174708504343484044479668781580726443294392545893757051028286744747324130867616449460124237081594580695912061346442691025997077617450285296043741388669469181815028394043760645951812244115578236615564375175452300968667082401515768321495599807158389426992719883894847345303474309678803886129952696517400324568608674555548063963369784104707307032251403360622592666005579664377401080084093487594168355771653913142192979946803643259579524916919955338469752861673857860311412268822950222519254641192069305230473987701834397469510373800717576372699015141070518361620249018214381818320035876503187169418909586470128621195184547760834010802867869501446030591287019647277664672725621278677362223403592171501582676822418433513375984900316238508423777767362560284163909435627908061364325951678894778962254841421602792927131268433566623395495016979911696624622926436912545653020916345835668843106177165330464627300778036221638806710400840317486387269161402022735772749429097957154348923447210876746428677081154402223175563375969475910511141494165030192290293708057376833446592586394452893470352782993973764147270867506432572946080307544370076215043239304925504946839397175017322369227022397343044272343354189397552995428822265368511060742051796143313759581130103492274566417406029779931687913636066942384503309699421702828986976619930010150493801113045804135873275021234548032538467689664792240355406452863636894296482711495816918144513367020443093925264697917766331184669470458793781619394118744037651013662240325044929914636981239867633511224710466100587855720434502104026760314049189550557346928211618205891748905028171955836932087711250538022517407116137767751313447551714205412413187511622441698165028570090366646280218712953875303207833451550188945012819628387467643513770236072346015689196735451980919227492353289960610762361388371192343861902707495757689766458899189900334779756118359509319125259830610423943247111409118286015462365919272674456747491094852943342709974375677689448514425900271655752862873465157753470499411804768528269110740314958112779488018160995466551879740211442052978506412549295393968767440399823039798879404868065731669396241612461789218190286372889912095356364090387010858881810302342712992652329124543117093640355779539959963160103627846978134467764946116298405440148134333728019758418303597011388142307449097534525544062063017332332455133708867551850958937387944103443427178834188074058236251273272154029770752873799418753859996370511221606795412904535321100675246160183580283114201576641525146346506168624787848313975735404704006806321507301974481100173363851365009906296057614779274085841100600768847083358329818925061147224884279528002046084899651504992449717887112986700296633395099951588771568939600400307117736044235778387106311503800421012443625755037274039736292492259264391359576223405972071628683342169356172178923142321493427201289272838905734088565165392137533669783655564326309216114839916910897899389307006086051148335539971831327396276611285590722856969505121788961017069261993824896440099004717605600003253726322779420174028216563477274527159873005086793865580020678847940662570650730644931456056264021474015757253474528902235728715770517243547800474742441822594718637263697956149031031331468818448072703716298334502615941000528968305694644800523836646270484736169004795611209347028168782819872228004052191410857526785105360880375193342956761741177745175886698493614890904618428872700689114251015711071165587560596686842305284001794833297355618269433411317704050558535382557763316578605960456133947475517680304704801727839462491843990778703180762895775549836577542060705781731022311963335398581100563322071049117709683096608118734397263474715951650523057895624233171498954499498380666205095575385697645549783375832113072940082924960055793841981595487241484199277436340277339847799632657546703510566762246447169580760752437743522535644300534494469161343956847510505103945476171429249332488731476633734342392250160695584504530125970199731516600005970446891192087270423379647077376613623541509348824359950447396876377871303414423191959919084050021188692983006360673456565809096990074777099053202221228464001057342549201880476189730076438733150862542937080521148992018237349065143856373063835042375497620884055619241409285699440704792251491246301710208127028639952297847352321471758233273772840866992332236035969648742033404550074358068048751661136492455729625607371869164624445842817779230714116454270466552849400733345470072614850483056961813618721873772406533059074110400997767093147207749858907823245933947884197485637966064041687943191472599623407712592375453488236887492851106150867045326629760561636964706956710812046870835138987263153534400461628587757944084487385162547363110321938598159264608690688114727024355652928734267105132836845822176557060296292294982303321551918076850928419595342871447005160528500834628818792567598905956613816399952150170062355291851087332029898654075228349543511994411601110287674902242416574025947785199023475603255374350939942489290433778454144791390119664901087593363198590974187816122368802754762761064598670809359911575884875146785374580112003291100576890054378578531283681466987380386694457150023451959846500432341786061196451958173916397612663216149410002520176651083505944152102553747180832453455908636309804516613855436069824950614886247140226479591435516388119002260344542182667372062055497017921913720416821656724836292760214482315271367177051072089117930268841746253413250407852867104962239193434641766825570802320870632331817487849608521336274876063432380595033716771572168133222900480878973950285084965920635460719023099167061754048993886244365483566731935042935446723909050682024023754474698421351942983988799621458937153205903386832407612727499300629842844502869983367791796918784885026989667411178381355526696727037335353410882415724229031284835220435871160526914922327852767046849384615300470288943755619956763269494181570889419729577257734445089444301166899259363672715483471843510199892534003419959142358849023639231780891481481393378900866662944946867038002749752052011990902165955884277004161831571206480805707276970245534222350336766922009304825425010413340063664441820653238680900025939291050937478927242032333256908211070373885927977450174811078371216008585607549477516393398890299181884088456643400372338576837643255622732463440893377633810006125813216151193107440048897389138381314300160430001059367962479156059669713756070566806553623288762259657892724950833339518046252250598899719441732817499010495433342898421906762865155455487403020794987962974010548742725843991037976904230205304053623123343016721985785224919305211947767409526873774041121067211606633047242108915493976742774602137258208359408524075964967968041323818242456286953452474221382499423020720418860563897252490870679963021469328414211696897717042305832080911362645953480749849671460309642618331045671949702590827646795596285241248915680955194376514011704508583395507819410374618912436174099591196846403715798093438762965886381578833635020608343827875914488784413217076298070795142395904199231893323018580629803347665735754099309124930925403800268187753409089090288134047780111844524414336675103985114725041097404488260413576644808978979736489831818829335790207621478824498350934961122314551173198863249710372011958768682357580759630413257026433796053739472879547853094784941666144196743411831097575369939602898686355455493853217043906910609163308886789877016488212635891219914413623498492130477737001617165825224056556474795189283049498966767557317127574136351691163953718295793401110236056382188675328672496409411776585404063229133285693666227609776468374153474860676958192139010842826368121074340918810125127935058868098498553157663900828890413930663687032553162227239148448471378537469927482167257125966190864454196298338841102248138991579591377041547738424312441495599583520284590801087555231156384310402927769128190341921360419525689712252391484152730322560907939214019686993822614169343948340683157823455510130825687970274239203411292400583346335808405230944579665807103363666825006125823211316575920031656453802335645519849488668234581755033861926392086184111366314073934285392429433739104994713335285320674760250740865264558625494405267424474328835753390561108952572748923789198031658673567030346331240590444346264430991030418118014103115301521715576837259951887413725480623669492620522019139824287230737855231666436837720528855097339868144689400259168779481476912456143047625880760884533844205936539416397735902650899464482103913251925123227578066784660701824120897110029859599126385405567350758251903542724562666141185525425230605116721077979133859836449952408985118633086541601920668703963751300630811319734497116479744599625878987826171893003795700588634571817207570703618210015639111345020714853304779673967514934796163529507060198423514797012400966119762177984561838983380362115656902454025033710681521708786011889308251218310012292911818151092699173741088935239958275138534541489043784107837113690842381930528673469981523211812737682958629641282918411365576842180876965868523307889119137762938676737786850288937490080615022160054373285875946584227727335290187733935795494231832475857946251447185201851634228262822158942111421526338547597097148703333228319505551072822899946483624162077974004148095997876253333024191576938708920360991923536463401398665782044619279669312369763367779000339437840446697252003478190112946942114169571487247398581275528971338178879450518504547820183780333443432613799307462790410467941542345694735782330450547433160505360807766375770192945521794605166740185625133958270641614406572093747359308709648335576243520529226512108012183174567199655594612239069433035351762542927587194302407333292841240260617403574235524628886820857477362245370666224774046219591049175710699443836291962121205319827073943922969548724107554625781030583985751218057968464532498555058811201224141835799155930375850922255865173773727537867915541321749272842108422252034199330648145694112199023445416350647684031121824754495995374404322674782587634266525430900696808678997121645105231978223456144056312194615142100691960325914770164166818763300805555310906013727996105131336341343345206481572272392839454445030950721648968312764788403752086634549874735483669063761319991644690207965404107556380081123874969112062373527447026630354689710977016239451111864280601728612383557299039098010582978934006061477070127002990849999970818809693122630069466201155482020056110558181379116869696942209465814742287306697740267198136603211525402894527261629442996663020231091504629299875563097005587314145620672713670292721337373507423064548799411136894833113456059785995262080831920361630501801075756473551365981358006194787228426445797983001499833360364548447166263388531333580489625892159946285507031139590234052686653032829896182607928446564273143490414019533362051530212583358210827351997716721580830583566704979699875335416880563525397409322574418119066329252485037500937686624071742893203530768557741079315931201799955882792291598670947807968940192688556059811469730604009719201484119330220294560936566812047625429979012849921335506911160932909068427386133772437960412883747897625050755287228966090057794087526352913570918951214589663881504764499353777549619408392489203594325212721863493057451087588872519569843528947993166809097231190010420145159746297057993537935400067860259874740765713399059731780203636930619681139984323797495182406103177283425953561885068781665754273710244691091985578772934462614142884565327341215566076052084072078230115488169097376738952054713245654420874338931955782361349081420573064568257638703975868779382297308844552071889248288131676205819291657277138951982718494680685314648892707332087453301209986676414989983706323205302403944664130415284097312855036373627606129463192254128076258869173024426922113205404433391478093294101299313315669103447856721948996757828518095158703521898334652543764075992982132901873864781241153638902497713699048263113583131322699464757029337272683431494883931944011445631209961408951469187738519246186809716489811351619631926759460218990794631192214119693066900211399726086353202761413105927121419918110831497269640038221232524513615711507240396620212956289887717294686123053342691312879770595938020479638332388739578126762489945012863255668624056615943231437121689905924559587720223749728223008610308795180725700770835599565002564317646146540586930446311663232366484507217983247369667303735602010187560399042664340614079958784648561908387590961910383963037905634156462338719446646427027113766356437644230899896189435754506962537732723415804077022464850962499100336437672890986212024525807529577055965331775402119829954762057148061703975493888676584805508526127765452612127407706897729846488821776168669651132814534965035104614939223879679913875618560891557413375927131618890125292006034721000783450894026300911670095419988826691894910107126533366223433792838125003274384941729233337823894891334723841968198430363320148804650063315502584538885521095109568449902816626231837735880403026811658564131204247039297274586125816443837252591590619367772454868637035508629504451550697542826814726435477665065627477399934508444127172366825387307104610139617230927163021468444535281520875837880863268583672640491251696569487840060608190702573648226398879648928128105562183634117895018598447690052294799002217029465870623977693919157598768405067698111569063167659904102010975936301142671330372284064248479971049907308987016134139605476535698673809639266620308318562485907149991388201462917766326192842585339214791954456669323828943925423027666125194130496734438112506448198017679672518026519864248003671057590276874754310503254451554253109046352422751682390293031766174841669200114185635915621494146822887565867809541988459472917414197738768749410705072315196072844523555500645579930109008824097661343759283357975256302701150773560806150755621589738203620417800449325276813812737720166301817488010420187099457931233549620930553540736876408037422783422006483157846888110104756055540018733628327621361082739058561322995379886435648418298466012156242923024250351386698748680220668194861807494345948455870052323660458633304652449986344590575398153993404762510674835099929424373922936837191042515122298872546965891934777035057103430239132499236197644166513829566161713584779187313823882544751816020923813262678492030099604458793979484171320881513888642996427984680242402466103251620875944886506881120690033176886836338668442896772395695717411859646935954570511507181260580323058048939947094409384018511768590497949953343229803570332539609079729432464116601092519650220450609305754192728220152935605768656451659079914763679654494733442306282480901912296359016536849894301001175560613789032007048549189386645312416203571732461045468378137638965858404965151843234440189515249856292542618278986525891009518595706157767578832526435865348784844700182698730346029065754395051624506551384699953728261377184580184972087620690514752935143112956628810614148323610212989501948973080298847245415632328464166643208103322885379745553162533104478075024815504832796407178932331213917407960808095580976033231476469441076693547487901138030122848894126332849641394528307187524299603876799953570191619409008489773007705567046147395512730480020756660839999744401268530946170485974905074287215083572971155914389186285925894319020361937677812556293112981824259823386692280976935284920470984463053463434320325495588184921711882735843001255655131383701668064392251136992691990119914354556647871728741415881555599668757249059794506237466658325750178605664666144273585602056418631491628560497457669053599286937484109614499522012030121066861000748103289042944582023561658225498890697727679353711832128333567161007732665161321631497921736879596320264475873561944032744351054027923986793368481478791662032745030299648753210599913509060482259899888326773654361438468719126957646295338116376525666980561630864956508955346271376466282951466449112525392683797827793386095917359584853731726339471515687846497387337980560154176042989702832986768343969998342367786631849517366883242111567243108184686012703110636431843961446612199012534834358509228509904691064749341730703627519027174262217611029225676509633702043119057949255371516173315671036081269842555430429823375833379771217366566643780708427829085072693254707387086898129471255036120090570121912977049310938464854998576746538705911524593724909880467237586888970495702301028062869474200740247101752674285156945456904321551202396086748352936051901233827513180148527816128695659146924021502229349725159851963381556069336438104987697204034184205029204842620095431561197967055264751253994047529698477645646996420001621285323013726262775503836072081223369200340109848209859328646121901218289989240295957146546244439042838016070547189459878036247221796683427392004842247390631426022746378964735242756760993025758359423976314056403953499341676322362992580596892644257626174104330546206534354240580810354533705718156472528959888635581172175051132452728049814296439504674736811159389368718048371290180492454976690460180898812341768653122683119501714374936793787502591995073787915466773748584781182774393905444709640490363792646499590071312760885059198928904695793354019736323760154155091584330059738332267188681261648248066920023921992110868608296431937388454333213502423555944041940463740869746894280459044013980269881721488535294025413341635683884854748696525845507670209052813131413048190465271756949879330965840047194781233926491214057373944321312656028049097906251698469289315113317604728658145018954563052668135821511089673802367828808759904101915106743556310065825715124209138660555554557650903171591815957091432478807866031915745407633526426884182979088221005211711986699290963172442846949758111893118119584010549614442336468487288697227306199955963961677382406769516826321336896750104062050236512115039946110682593780784076940467224008714843648004746079883586606289170530300541107317720075816229200830089742221855269720134703718101944208409183211788106362648389336768103052796770261786750250601686700572106255840512505498173209368530089815470638104119387411856387805728147042716734057471002392558552389061369778702690406911168882762473112062930844452124692911451949152069064872389096351306692649282434961192834236357135769160885945393101189039506463554436591620204665923491816109483323425404896808114164743435230527074537548129180445398322502605733017462361022177736752828413373282047039517832986575226705544064136253573453027803101994626387500145723117147254515491064182862520140026887850396186801028817857993415910403938166275696923926006987157700715742320370235149008091794080019077701329413566874937100175825180086512065258316673582776141389508084546604152771554885055442537789259202306028118049384447307375252811862240354783096720103704809149896448639158341302538783227196554265532947398245096595808855750819532520151755707556491831043484060360227067963241887316579744337861685578954829458033612872336676098085453591136013699538619179521749747487056333049429483713972420307864918581112696722110556502424970427194741935424960391349184968544681337703464478750542746043126861154622064458300936910800896006890509172024893602338346100998125831806051293566838430646940428861575503827431711000646121270648997624068250899130922968441904113292532952826187695483638923136967430594684673193533384811423772525147893526836925798518250240338832888679597970742841051753091608650991880642572598254639295566307176281444955243687189965393486617385031626667769699730213470342415733205726648723928096201123459717572310398478042110180919658283143395818179211865332980245598869047292667167331098580323180155022312181414115451752122220675079615207185714137526076478813511028014034612972490576778011768994482137575862758181288946649912026013206518571306875118514424115403946840311905255003697001170550159340680268223844231007226361203256703811288889308679766431759162547593146741234405753906336450365287441565406613916378145930056644667699265204914624646233744038686480717888415951063185479095763911272080882874979593066744680005754535132277923128448187319806020915171877785831133861010253433476426572676802046000932328414052389381394315629698782896580417432067677076964456449452016485461202364978850549883318194257736574764300805309852326925040106467197503421722336114142919724808113989465745511034550204002904931916132745656981056000307762137698279437063546596387083359270811621204672817149511305319755590833727872000167315340029396444034519984816939877209207696007742075508564495324067214815743145527280113718845398388016961409733964303286805165904623051322636339870280710028575186385693105203152579581531464409078107219097771569340886659208130898798038858060753120744566457130720983959008606433210593453878368556319682036115721253807680046949015730644468210446425256750193992935572411701061084666856617604151699882741502451183520354427630408597792977863234516897150182186788329825845598791594983381450404705470765637972751353459302998806746558780471560692547553899296553993576595567638179389516079204287929353475164717347615066815859732963196817361288428594303257500739525045682686915541213820745117672071275797509624512591494841510429249472579654852853643365011717661776367010174169192659142102837213201902647672519565104560346679437693545097966083187103486585697134398207909649595928574116900848983406069569159389501755829151607214542401005547482335895259589912149191748601832014261667409764880632190158381632726782530833616340552638431971150987941255417871607546584502402998810204431803247907459994304029695930695944732886611468081383314595810492067357474730551107050152192867549743605152403733078928229877615444334692541010155280623073536225220370900972516292087257782570042234658017518990121066563639698652202763850643446483353146154285981530706383087475206853952061119599434684843935491786596325736591635188389131694299259613014445599374412107907193490913537895572172495341675977259385256338429378491478809169678097177359549087924062914553362731401102065246204295567725979995775477232164051890634043039148365283900511737514124176249212067727508462237847789769276654763437948427329920533499741453959148766709873921491155227961441996334111178927566326310428489228146422363978240155606183172980144281800361049147709217139643757359517549699959778673964769612651368219823101794602210683043178623973686148545418367989644457319908376469925164130977063575689105775640716155474005994792824172216556268400187241614175778217303250377766554347803753975543492918871614427723066778278931640353883764738370765088911139915572525125732904333282881292242693694776886175225875159139969399530920142737501788565231069023280588865531000031444104938428209908811846109727416024411375981160537850351057089795046578430312113462582427300852192462387288212863283985873619648952785102768592787412014112516991932040681052330374523312314275686308532236745270735201767123071687942299790606570819488586005536224162372022117802671089911634976887101959879556093040580108811326325805971184575717534578731887111797702576897568979066776817775573723480814758491992588799228464573473805817899230406130525371344613264955809002251448401950415371220641795373796840961320762363874509229228669714453433632459719931853616976427863600044448959744817317661873344840605583282020359989681656111816918765033914629392596495661689051983703509899000571624923284553357673163751102053192938992694730810090509016656769740756259071166504128233056727928767260227432376677732047558440291514371706597185874827455326976834054301474212321159720392426589714642552081010738265860695414641216336788647504446964625373711166819599122008613265553814890744293783111259466104242367013170557205126821821969425140654123383882069013568339936030790733473975726417792911577305592700654284759851711178500261020748896230248738147581081088378023893159940408522056967377023791711355553605561004495664615250624065110331042872021799322562193041150056490882376158970808310831467266678717298727821253919427323041048225393463566210650008227113317821812379047337111277815891986214782856870163969745701860100620593243131761149835610697234008425175985731243497106195241774539769461528270946638167051441147006063151193912110742821781707147946847033718153797446854869108865936330728047073182429899951807987970287424232332955527329956903598176808093746410821196292672806997354903868734505371800144440898589963588417433953777671360117585160737188915129039762091952763134756031806903586491076380643336434554799275473837191558104193630551596196839878098162863331954281367171017845404731583639177927269876656349060984089982154525213937616847357327008566781049193992645260670001315126996825075320480459094172218205855426057783323896500813807961117997427993870222282555846625171311848020521048821514118304741189778060118760969037932877973893727577196646037774067234460582171292447500031867764943099911474151284076005215419839764665973063071823172454907295926611796789503612782714583067745624324256766786799073211789829297890115043311367588526322713123487927231835589559115666992072111438962963501173818984710708679091078893538267758807638586258206639490515693079019101002444958640661081603223377858322776283978502568694795367666882997532975882471569196265951357543232804803282087924598634831755131996899802088599039071065781648792868209097816819187385339458637132339009985203960324390476906248683107551530934288270356513731390240188552721162668268117078290819458789316027094115262827618331992102381456124875170922691656355175059852419513815259766695361326340426965407573613684643577573131009709475059466650394499088634252598829407603094823939182324019362558825756317970713384867712173783310698485619391611855126464934026571860617791239745137843332655724043338213604641380688921727064429459342402557604996288577741079253435834633204454509559089148541279594570886118404875165152117656589445976775426763058509704866146722511860095412252486175301097284155791168811489165728950535786813777508183411047719753397245170344716654477433903524000660854868620757846082110981396171654254545860213412742413730316868862704892050161752466966547662038334483023804347363647319032431518081439885475507122402588926840002549480816462543745164844276397065495690182267260801172200473657173986880480755900566833160326346832255171514404781261280796760025756206929675680644700448720320436184005954005307375849224223311065550187994175298147526719703884838249650660368474274882444789424349543001851722488503016722269339910616429220783273595605715353013335322952379226866242226428106602791708270898916987210539084642629030767380748508096593166449093085167284303414725423825612713154622159409854411497040729108128093053665115846999756948097258812607937392040540486089419893328223663115164792805602615754490547828788471607621802725917604390839277641522400131559381708785797431327400082718733898915365981934225474064808791396261004872975509397251036664813180029190742647394710286571150267254585885670018031212752392688629060323301620370068917343321157925960232613296901603614121270489081564430007177452757728822706803711749938969766212924400373637417771251432981873798202529337697832476983175435438338719626007845592769153097209702047371817856605148998023491265869176581872888190145524835816577445323110203397107337778707396879810653080983592272423033969094559189697724291084426284148568768195817984694316630681220963381108082660247651918503769872190198342358113973310273738950363345517542321543574156842342896078278375329104407366072848127202923928348843429544435810138721348662648558612030608160871589685653838480597700684549069734862497072172054881229293229265744799260024228965533693215688790298760770268791889321608781709437075266021022681520204992968992399495915926131355699200834403614922331069812115338368239688487093697586325980342151238409959762221183044416530930776065732516533593509786924909541587188549209167312697937180335196767039075036089607161501514877654990516233216181043122618593493469360099870053292605313394564998868362540529160748333413853449437710141258926858499481042372792269467400375282634794820168185476499603777196425307541911483257364948137762906086497262778489621631091912169717305908529711774509363210863346167692736056536987231579602868134979214284816448839213230433814711382325876076145124174638854224726299805545089567544103919002247689554033205335251271642344770770821863056405046026454653962355115043492960171417855803351176690983734843181344089263911724365484302123603114108333520184245712118418074863240836054787430233213742016727693299616950091136006647194688281865303284625604830047923452478708894097342760159296744931353923401890193282368451524088152121097564518965210467845100678021244504459658596776958890337963974821895009937313071502107122479011088602028269840092434031863220878401227725626265412329680452636690290020162945044698894771186644565792726270258521023331165102743583550266760022768011977428762788020550608322875315924926215529147749862212964893740879970743491020344295684726207584314467990532927064725420943657913682998336998154976941206450883145261486997349718624370446735958458491333478444158798357647451968663261006841105803355082179762125535341323249515563738648185930789139400199780804169964610745744162491678368810528666229450222724914729850409826782616374172915112731742679001441920451146504838320613141914497547797276566507300144763228167617917531528516086965841649606385072810870897118165096050386927033210557327344080817597609015589138590448409897321107681790948517372256194471873201240419483675803271515810880011191517462176866843198447895381618616873449978803849277217442460837723621046708640018002172161269049317731373683935696724701522794201814876745598905268376676663032739524528692193583597385774749868014581436523813720699032664965632443504876717527172563893211513701468262705486750788815372645903001732548913469191479434873781766436380663421784869977393811231410745281176912599105360292741758429951849783179569613573553411139034839977202267012832113572684754557211431508192270397072469517590110967738295294206178451353993866414240758536658854019031822856897153747411190899551323686138319425298927317840194498549379316057092120800079178284294298383808910786100649087112204553188721974425579933988094054505003087196325412122483572216027571436192015441306707451353148693354976340052053937261655228457440373470185746427611182763701368932235734158340693974776159416958452303481468276791606295518285807707232867403098533305341594369058645910998941060494862090683476085416784150111400345593180184601078849033306706152369380594243447195888926938754668322422955479942806498144172009703394476134261933447428025525430912431880586384363315158823943636886885966674231525854771383720735608200525203411805388107732415949105030699858183206973891636162220514651793419068537215101769334362352127041869424578383156559425375052361173656573316748979404608717831729575302035133136416912099416691925083970160443662542433265091920604236474139332217824659845595231690275438106398206710291482779336566449954641112701899935943501413669756120530937406317698342968295754990776451642112612867884851813579890571067995019303994769642063147540382715402178648175494360224107779755363280009052951457059277790505738626040437021448696286977896461329570430198316994436661319860463870407863717990411689206170885780682918806724715007261012866710134288415671368805023720262707350915973330217937250851143177477990880854862796557647000896502398427571379337179085273312104507072613462362087440032615228216699456053767789482263785009864974914506751129834133044303231587096886562845923081385236213590473247784550911893436181619548482525742393877954655937074703821256658933178114518315762866013912013883719582673389256823770421507682920381817795501426461510167432559379284041394700491762916962409110838730293044816440437882705130194280901609496692371907123821894327883327865411737016967938730786357865768076562473674359431072204362305760369636743180509562168472343550641403798850776259652299542514586460208329428308565610338853669911252288093018629435705694965341598489385619788984889453460203043180137957507008983630379900880045248933002772856459541130258578804195723920863449352430366477689299881247182548789663180669442040169060543023270666398506443709923255015757896159272724973107217793113492598398617343080331413864485450433295187483825146409010738519115581524391951505959884446048944945559174922084471959785025902623159520497597081743409048797329276612836459739073459355777132010395701932463667384489156579608599151234713614283512371984111893384422733844150620470027972161172729188493300883871767913553258570298362383406895710266773898841392524121420469972201468061383342119839476549429436134711405666217292983292025867440014593479096948352208772457071102252927683592664208826687996140298699037250758428137396359682589740897965524748999019275305217806185791013060630032396336738187496774898233100929218463094843063487846722654618488188226930844891127164019555961183688180537048909818817755980200003492499191897383471809246345598442704973741835365456022059768380740845113600356552023155251289814518176369938767973693180782682077343641315764108914204750939837513099992804757820075020891904109499592145289005346143600000008142592942318397935694138609550349227880251851077964519984846250666162692890079788787784793636220731253352886001671926232889505361083941583457026695113126479286673940223571113415757807685602084202575608042850368405285912338245494828954811562035325658228889293356269739293267749803497233328393214086040134602092527881704249074260621142988433237191583027265561276212619057906122971247052155311376700345137415978366611381637334705728591757196312189842457058168528999053946812591814764420287261701257803428285209848165052903483386338333151983436784933578926696980461591090987805966807434143191101060696737093936340877592609322224742845712003846174852030942840436841164868624935064642800142009847129962657219749754962867613207283897505170305594423262925442963736370376050228716467751601309936735691387077107343618360371684211896619891969820621184440876067379685470961314424215467352808502551097401337011022209740450189813554950652329865631703949870561994400466795314728897670970293159267405409554407828422149409517687278682036421202675806206876354381513639306682098055020687503232026234596908314364444979025939023813620380586276397377642674231545135491709407423024211875471723434437501676227772583653935423466849141200217188648477005042834421034786596944926342082481995276750815568171307285431756521621914739664501312072795179537193389645390795167941650485379916333714118008271646701525398492553775811940461138194399119647299702828406359161585036377607216670653458541048017426585987141960096760992208966699423288862627452753150000591205106934625895637860106108183148983549791666584214293361802216909092433769039310428528408770230247593036256374995341913258269165575637763280713411437260267819862291092007361959615917231162985657422765138826580205875448054235933502944722722054391936594210901383895286110794915044743350938250260201269069743571017891802030675980659817834653076454359741697955917459097218025011230051079010013322646121726181992060421186203428473685686506299898236026006713639366273754865799398852154697416721418892347628992006515315352148752867797062548652225367681536563210015518526586516296691703230054504323192582497647675361574473043360867365931282075695470626999544655641189939600957085130525265043812414699840105140958587049385917732013065930596344077031345202931099150208213044764246386766957843401417327243834264237368134991016771706052098245164392452688186666831758776057325873421447583333559145859925218908217242238715749451919841229671383345560581471576587414591271391256764973341389355734225526089556229566260128013534266260928086847794536902376290798595032848226019234599859371019259334974968960396338108796057867906234265037736276217882478778018073437258983301292882351988542705127129042119079741746649644144847870141297496091718039374954167424415524613885305420165045072820888210410239817385835435125664306116964883825439962251740294676734061819206038278070899009196325879754275140764284485683668919621673882218577767132118951144333086872806413489663314770471380330507651489204811773649954657960810653825001204185766027898701576070607292663061043002869027551847970633898749849440512626789710900021616665471042858860214812495251953713879847585499172437798672158613137165376199311308471053601306111847383839166824633339914358242689714416154871955440529123543854136442392134376606765558925980499522256974617248374396763893131642094175429819396642348672812142389527428846355099863965186172546126346392662477876072921507049386048984311567665461590607685155435401864247706214607670290841975207653947048949655575398910112134492351809780257604267095906383335691612557568067796701382236195184177656147145657027860486279829050898167872149968646386025143028794573328001458350505783422163560794520791394388757446484671664636269613077906291318594231604843216343662596655657032273006528024884712028510308563251383044916192961346282339585547800179121025761465013762454789176672451211119847488626506045141768077335575703156332897742216981508376905216421239977318275671486537912112299702613380671133484426522467801132278951714042317997132496148628328227906186532880463174992530631851754719921250021307982342595292915950088956633750561098812960229967962993365998129371285629207535856996468353853754718802962631701115958031368578132134925132594493372688497154657502364071577331596285200132907415163226888549483939903059309920436164085521565195902501692064087617106970705321613443332788093834975539413167034584247959856368523552883937037516827991923912590210654695436247150504654568906236989982721370880227497666446097186107001200211933892361813047798875961240573094115509895919189509594017066025487099536956249759570205002056978879701188332125739059626700493338897445555918355420373432304182905681411208266427935123867241779577886617786666888002920664291867689317647739332162038717400679543000688478383975065998252250753361720368913485302415051493431139689553081729985351163351112609877545448917093837634986032974562121487504616859594562156854143910545248442610955419393252061526382779164423057254275452616351519050024579362753418639454661895525496285018478368338641436232217858183055794013964650633786084047627990707802255019676122239599360237255705936690157186724018205914078372021449645674111142147755311806673459028435240666671920497804121646390842881971794237169119518577712603962446949482685417148382116217171262130804092562820218386660113050321126970634639657873395053433294983537292492175708449630180781794384149034063243702298094240075613091858218011044537863252240339957982921003595827328543418802671558586757916845834993490848448183652955634165434319752875399542512567762906715820914572048489513363607109946483054884999263028480689328577508821734605300383681869864824284280120464707664267197317891816183766933172773279066046328459869565712944394938940312919434351606913760323733287830200260932307539034696805661230767316768929075462137724003310986934428033254003931610063064743849819345295327208426602006290754585555269765457025390214141971743067249304169904278681685400750148839713335538491869918609510751214996282108141325846416611948232551784365510458200369107125855091002135770011628754165750039383453703446711865623937104666131827059479575510887880146266858103388792275488726866973803477843339620816694828386280156432151034848959109672380522838370820364192705532991859331985483732644025252228851863233229596950451759285121655820025634297404621060142908989687229692726229645775156932789931469138601833992262737196849805972035054455903402723573195876769303687416540461158601524976809175608086951764871297247348299505052876096251995727519624900568902783091847705284731803931142354642848402146670416107068603487857170149670361372016675364314578155765139905487872340234026984252547358883314870755515946749751267023704160127657232221665655475504606237909384466002568933233213687816298592623053871165437037040057885969949590206918479883811614616351208306610258707683170834207156496347364712437938387707508512102661660108261619758013109085646645514175537685184956283868915350981946461876062331083862016635227784798303477245124457755022339787041042869604439778816128221390456557222721690871794003286706386780919951048820832902457345887537758481952172262454920647318524298592836717523861743120529693271959826587051173871828826388086754825542377860204499548285978925395353291544827764781574996945679587840010820883599978940495597756404478031073348002513056523461548386049522158228984317411024181568116624468160960801190393473523405586144185336013924132474927350433964937849549823769498131781182768817420198400672511348661905978512453262102509585184942131778491188589816744644299031432403319085277320157677869138442709269782539507522516596689005159643609227395188984546573751964444619597801929937398753955899547128910112823644687366863605448494839454239447869923484605117929954141430667747352317089574799085501396243184924972142657034737803211723635801962735207784759525972313253319877412564955691172686067192183064869721851431931644344199672504941038167952450026060188795638869885267962704649308964911980665494632959602417139734486273906257933334425272976678648980596299168029290340497108807486483242522231949061582700704225447939215185463950676308720422198093243879109405642880889376561257669934611622457647759281259903030931767270314967977112197110424124835379972503575098500517924542550501873503172848980656891482528734935935632704332088044542052531887256165377268407086169145769311333599616246553635274866771693849236898821767278315247820999977961186473458433854553344134445763290196799013131820402264444567933029131324496539155946951329472345850913375509773986093380263540511004664629359145587899868421511036808996273951127236766724099679873722785226394626223512751283339962513082301704698734537926301611137203556199517386928838563017375672046931835297399848006757025493747582547331754042679025987798346910699660405371976482969320577906290473144607429920315670922864819387706414065814499568212782783644942926447245170167338373503083312823860673586456133171896464165610876611427045285628893120725000458921136727667751061846799237637537556631028076466410361979215375768316571660080832091303047285554237141226743164633022003502547824244178319672690019961576486497300970050236450909298867064572673064615035501593021942170586086901573746197217399408502015847235501584068098893846804000400519911616867649459624671405692700025063954763919109928223749408755240839056218345187148272910500190256155667154423491575203289895600287569251392751130351490235320462848221126999463009058686598031403406964431785997842401457367570089008386506383802349911712925329822671081715792997108733578883896432687848903445715553786388348255771561020540139883749060662843778282935532684260467517853478911565229909213983314853701870109935626560630494599556346845070677218284433711839580129175029061956303708602160097291567123940812617469687907940547869144863622342714462046194215417692264841003717909711695986613540839385506420646005209120106898064240828450819977753889515902001196423264897606362825619502565839095862041865374191845918058229490548055559425074267007631244707010376096425175968941864870451592245130912850484523908948779787241377844403671924769346231305154365646036707271881866427868011357254133397031132842691567231752945147920207703959375618761761495065425927146578120421465033067123663095814543878816776831728842098883311652250345231133566637832224795175376431245992976789266378798384377334543713229675115170603665848342551988659989331992244769536472101048114134429310754071332962306908434069803202144263841157531866722667385567945411068379572555385109762074145570206727073982766390086922443546805510658889245323453905761074884638355240587854144624871186528246891724032119641896393883550677319426367626832301798451818094028844935414008771716632614335385922669311444874870123497311000675095568227417764871026445624389515923628061362708527959282565737508978938229317116908622939612064016600579882129172389656571380570187092643135618695864611232962555376432710166242218028718980680141182840059825718359118187512656161967795992827318475969185052101723522133455294696767903007528403025720594079215265411258049508278772640442631267084871044139941477844719987226165639461781802874615609392680444427392812263556836242692366640334577660885315929380692470637821179192996583169752633007758467119473378979373250890168081461503203173541365573357681504177463533840353888325506853297794554677900815766111607315099356691158225614469537643918371525419148172533199944305760097413345211544421656097013558766166756091638578380137261637783055386018785229054095719283834540084241145641997995819875653922277330278871981036409293945830064664501248940772891195429841911911732863583495418730245186630144569813306351147325621641094417682144020737344819075423637787373068405993484527378636095856857141208358591642798711792168983856291527318335113384973913251828213301954587940914960101491890199426956591273030446139692675250476894888624401072126019835279999971166371085311282530670245136613426999668479183772692618936928650832419495329412283279881693478246695710515014646334328582514705337644083353119968541404893385767822256570822525510723230854919681037822877022654838320704011262141410799745324835758947765729771751930575988947650888607938748421124757659547606301413268544732045993365629926349246866620694948605225242876692173506123513010122128387158172520643834519273776233819825939197165534336408612722113116302702406298052822732484353859055019631559616333375311485715137046607397708205348416379781828628197533591020032230077544113541953011571033421287421006971332583789471294753143106115885725292406261660157799399417660967632800867338176729478600097644115765774458165967481967211615452169060550051303551352070671859896516628459251458202452151175447286196631408155575497407671197834368600959260970881671948564335275060742979359740271558758145473920689364566307114935274819820685305945687360975693646952449527555176910502502130554219809475137606871245426372406387847067661878262083569026600377394328398695923504992594544958944250749025995695821685517343527222320354512274187941663796797368132675132987085619581749196785234336727983731180960779889213809432379563115722480301045351154323368302203145748830781452586129214187951824691421134199008255242374803104763139860236228507566301527290630742959404445062250530234701264150294596565746529327052355923110523169378915844206128597065116506882368245595948243272119816064726926112694525575579247326910462853126089006697349557133618431080533703943493136789774177439192336927662367591799673857016938465403223981467996568496757378639833816681836599411791918085518269504620412590375139276234804964008921532035980630654936337580363184983618209979868395326344501077304394306856577885063847395032500945370731527257231448304140117513469074063984483323582447397353454822308480488007147751725971682495467903986139459913099180652041219618060952709985280683067021995287101323226576216882429139933459083285835592413484998270974674849269771388455280146125058490318140617173854385377886242960653642052307208877659409321835364023191548778646271424420666270770710733361352099036299280164739666086677591825725758896280843553796411593779432450957659757365616821945850190024538389743465502015744859853873011891859829932566699925423679738435574305648032776224254825412056257928866878516351974781576402053147874015372023982450232116242641768843958955435598252855257170093159179066851312350394544549981550716817144369275210598932262109511901398429493792205597120672587037242951165638242096100802307911892685064535942074839247748339488329513492088297635785534543142078274650601660980801927885923605959331097560485964618735916924341440965009676010640371041864414261211568341312816955018728153975177709587938242371031350763748680386690436737521842535199140460249457604171802004479212267043139538978995526785241257121669590123703434312712851667301751456418288082623626714061573521934557531968375013711499791846038257492541078530632438556340810988342085791046159739134606722593394560427310372733361530111796532913129218260607479320348813573294897560403473563689539243232923546022861396961303180531039089044444595327473543750378621874188752987363930038893936991927704681628186781622705993295166428401079340103028514926694028665895866146739551087690891117208809725742616170004028068906065846614507605959917248646201094994301201103010982536320523491996494240153345446660270008385067120862407790198982247074528700622720355376384448143369810075534844329378086230754755435809933163446857218998003264245765784630332522022228403845363107654604836198469179817085698281620146528173515930935189726882782219279192743285216785474438822275305771481930146643304237402068936362574850385957697422003686983763804578017152685917440578894665960945642607616305175480772875556837698754512433713648807404932951286470654147050048945318682454436465222069911006343469573049701326573676819746398445527815464211764970362096935259127005276014963380291991502922386232335689597115769973703821088428534276092473991755846038514601483533306763682254423764997562898811087823844529506592004399435564269304644282514898826981635165761143026557889796074859646120395866536063177704447747671966787472017810943718511492559426228889512888412351819910060932675798756688580545285414233096659829515258908492124101210619094417083274938582834949913694431659576871124421879039218068482238796741800584076709985144315789219580801042195694308261722397854600580874998832832651637177092991878061922791391759098148064299891980006837313995239706371622786786940393447206569775078874760988296556453029269124112981925242578367465626965870955109775812137688929810763276003185819266592617775090201150969113067758617168628530383578097435261945024490381244369413110363430596043242357763998762255356123954667578823831204030227792574686563068007540278798006194065638095157634139945669641343595421134256731911408266802610515062010382295236584431920106767576264448910477954138458901664539247660726590750815806896152654235971206281894275175511688826469678777295072722492225367749836758570964113436881313782408713602068116573998823698427216334232459041549092129585585866094015506778244041748102394180865665438266277998785242514907315805046895006010424311361250845730559159911095223025724120522041134514128464514438286118658633020810800451515977508424325027768110736801586348123600773840614585746435145769107242388948096478649353845710122531480632379271684724740488393475411785512751751230565227186094705014960351019722204349338130329333870909818183659550523815320687469909094379663431547203537602091905738420282881260862429639271803818700911576623183047266929669871111137342875318144560982787729506039169735766459793076573531137773241353211491630682212805992170577256510214721977607686393412056813059319197417758915925160349475833814333495172225255481822319125338586266370574257745148038975364417308446930429125112051531902076494743510964412755329953999951036794491498415880928320252912671396183514391009607775849545010972866092440183071860664596613844818637746737166321750640762097434724458781386992573407251274877096424929259232117228098100447481936947703801595554263720312006170742095008219275477392786289067508315184869140819345181809330754780139786062482542981612478330871784769974894251490759610704099343655801179480322467354087155323923417492884423223321350276494515791721218810636580677831406360273870398490201541988335051844077138912711768560517333311129433258119622236776939881978878784782261574029333033800565066184950724073506219392013301463673209297607297254812590810589865779974728712330448945620446298654288908361753738448592869960562624701518138631851480707877633295600629828125002634565802778401441534155338962339387502830266920588821927240620121630500520487034320678307462839138893726734496798634501690516517887730188044557209041028377643321492147637850195452350896950194674356058801250095559546416941879227869159879637193564670349085906429220493344363119413389756492423870148997136981719203266847147400458959445015542777494911110395153915207754052041052162481576586535481610795965975342274633014137797548461886452115132222595324403350668491265197319058062230620689893306708777993323643491365899084439425597191619391135658677269888507463014484429487070933437199071607028410254974279789494837360397142742275054121626018246228538043450988725672761215549096919544609530670622169369770182556834783813723558581413675972762593768085544442636875496232772895247200286391044073003075990317367791167696605925463571139829018138873844016942264100748903408381242889182266451972522619234548527401022608291088145991463434159818812897235301226543772911853473060271883918330063960581987943290459979776262174875277471238695600159642542092044468495078726228759484726736472154179080476248956540503743797580101916448246149981042396560381891513664143725358664401364614964188517641290385512607552503992602982821745702281441534286807840618096292135118867936630275261965718430051751825656063551382535888902894569669431862398727143849716389802695432751459099455817448837752638745461541975938498275736037241616337987937488915203065832723676386978333250077779619036720095915589697164535378265817603238720687799085655217715455606088998253447513503345152582091131605275689163651668343930980757717711722786180126882406598636322687206182815694406454475884201837749465941417051089470827266154391913246802713804063932491686751017906146119917013950679411785163141287816335568933268996272211977197540349916847062830648592339761607841649825130989622822303345961947759578202902061248634443185200596079411228087693404203682610927082080697612481252856767670944823611252736688080633516557053081815684466472754331993986375825836866852584012798371330076503470619324737383584806231161438381815872695381228871909517557074694027666763542436488665726234464618286487228607880982715997874270358614140968433052777069745367455434622951003744704683375548434781894954316027217202157696741346653653730561554673422247368761440993455400860641210611692687758118276241608118026037950067265629620394458691555469857266238387145762935450295586776041938799975376479064486215886124964968761408352070488021288146054750608644071624414589191404822896734420561351741364023192584676074064564224350154845258080079964936952785086831844523355132374041368492838480022086587784095149538263182929803085384018133471852599058390218479630735143303008523834197540751399768260063634991549466280107008081935996706889825540119304003269148245557236298567940206430840685076912151864757328333868957377749390139256031957672187486318562910019082549616810495225432869079199421781925201407666523464487852343423349936060599597797533933211873311762721511057621053332155431985537865973359971753056658169981133411460685580227937841643073739949570193530022090253230326775668567085427473028227851879382881251125447400678331146747436089509237680364146794506899916089311771237959655799281400779622120109015047316997361693574524614502819780283103322817532304243492276521834692450440503146788487603809581340974865690027208316296641820021000841157214734985892763779390895299542860420381352150263103267428843463014944490889321285186300982562892236834295183091883056419402591474366082187198273071240532828974042412518518831124560815452714181746318094685043315941605248176215632653504196765980369538313312836357470132733763384998372507929569587603197859356121574251005513815077555879077169535739782451080822822677373755474400732579064114641307321195673237349620227147225315900270478057819178495413514191534078932204642937679561209977452072593155372394902189105547008713320495928952968921143243961044399231100464403175844728503208040972015742342079652059461665771091646583554684002214492550604553274290459991360625081409025967937433500897835368646066047096609303558550449879541849381809349984469501816937763848714646252972403917618188279719591531514034719796429803860390897641492805808048459936747316769704513569903635433906299672441897344168725865567784440530722495638030064362189161002370569294816044175148030329585374709886921268137698651383186160251207365187635017515746784578168787610801904105328801127189597425749943332451902913842381916491790395902919625774715168635517963356946945784954944306882226924782272905471327033630899031968908345258687317780780233607130225200167572449845415984451734158070420944157611308970477955459750641565523782738040410631154196466212953026802370077448709388743054661623839024173904768026246409315906259456280639489588698566812369897811088756326647937579924400088411975092440323235715489120054667485525249323958045256981748413871722037392338122943449084864853448800269705506885403534410325614586733277321558173491098094268122660523998065545948126400983487920109897643396810039811170100035971948081262305013742565223160119951898125583103402803212820915854708724486543952031873914563566709538203517495121465617863119844826799695271525057503214526514176716108883069735950075849608222372135766506679638157280543639621201580144828377766174183302788113940038586272347944612647696881904454471202946508221573712284149557176285210195849816684231725420914188123239340371835765169127865074968845132430529509003136551632740546456732121258873998913966294735509714421453545925288649950873269585676205027212336150359169258916037900465503080748728075653401032362066457705036004157093264933953578214394673102802669478739364989931593177029804164442264770443359460157102819217958935830697330039465784928181051637494292366348485127722344536697875409218782150394757524151291932500641375326496558606784699191016829395238300591149210361884768905953137556855273083014336383304494372602475310322028869421818674925347372449176921112415106753199976488069121114113415045036548706528356700824798901495402149664745734911203303004523327933274991820454344609389311982575483998696072489963644286424511667199904264237386684926098946872980160537768143247320781945576409757249224419694607550074209212829295540990967213979755085538508704420925390486005481787674934718904972534265258039169487680222968226317505403975223821590537093969593286560512420782424727057042417767702634874623492677659389274760564702500089776407944103490833886893327768723603779365174184733161007682620232399727211080196437205483930969237576851347372771377952627286414914734541383407857807363657794415659941022345582830261941824629513615912827874060477066582677334105557387380325490793500599864124596872408490600828608996700674186853662727940244256704114672560622272292518731091327644796727137617397597065144282017428619174317776156924211835730050325525703190983296904923628197481537436984944856731435536679122503122974257465502700507913581570663305086276888232148561949231801564569523930980286139301794036259412841753047747386406012455689544806883795298370328455998336093099908315701371012166631540881143090864353931076533959301020232266353942806052133037694050590632405296366013217666522372935662124457201218319198040120656456462408876172886980473037612269876011298302691716297481510611522989016784897557377812799901089848435163454701263596740955990370237893679248761850503240194654044191878488603560816843162432005179662856305044566943351292607718900462353265777728381007390019389723282075385019067764856373242711767356365447314108296996405895082012899492818300933865813588061249180068730371412750378117619446640206656341758155982212486280892444384109225953539931255158554254948545454775098874860699277108742433032433376489389471396275341223631977240973230986495255403377604879646497768409591654532005509205309092882059253572530531192058821872358195757065675738869286067571085272926304186668662582815302265837166090687636190526329651702064884542702822307399042221091204478908515359248891822011779950628102889962938420445169375085942848710219570363270158122069203971664499096214570756319358846296335670844292177846697344229824449991952648749926245094134025871453360072670871756176542002683590321143605470618528475408536793938966672469450505563671359195613743338345410634930098494069233432784909758334184565844645937723257535236986548895223616793734226179058805542520169121130783659869703354300504722571967748361348839697370237112159884869881888231588070426877152541665232115318053801927712962119169832309121713707490893581215738992766973700973778658724962064434218898324647819961496643802769097308539143764947728482130572544119540665359615257041047121260334588344482130463830754634775278789520924135134980707298367543742309697281610215454744099422987223735713696473501162651704585940489424748104253664146318617335765930462910384149337032478587427240463364342315288465275705359763526815830051047138928328163375681491320475158641182806825344433385611181152216675919299147114243262886829738686276843325078700483548828167968811269568833827516725320593424488318091898459773896974942885025655490756281561833985875416052088155285604876606166909816876667094379372802588629340353191452857180116647100919414837607240131880878432999723953744846250191671876471516406991290383843856529749823730228835834979210247595982905540352677215537729072964439517647946999569645116817736321544009658219464351979373072412714638443962131895428294259171452388382443201194611337609183938959815102141502167749346430041576464894415438254207887634105967422689117387318839682277838145749153866619773495108238166122788653888041879003131240524395218874517962184678709964339893994051403367710813899477441107231160485486362022403802039775848963773250289266568896153856892397669284238777892185850720633717822381922122019794180938948469045242732999444022665784435524032012042403118589961540440135044897857774386323193509779411072247008799124565965917758280844313649691695225817824436527398839937775329805786862928565076806098602131429427862935784572373476853711022029173785542522727393677342132294491442804987426015621206847093121747115492107756252104074786789912089563325652671598726701799598899462154980265127813473790591393283861619388281464012400100308066843896327647500425690099414060572180527237931426370669771993434388516837316863630789288264422901158350342210391817401697682900118086314489578571740529687539985943515295994649288161691922767065626715257212326883319304991061859038984755776955518725811961156537519666665128989000808756311251789073130006045212475139706566930879055841965875154577608933311784033718205095503124636603291743992247898339203165494763760723874740270686886110548546217457070546768154449581784214135787997543134774153324670146171019217876513909971982212885101676521667674137727629481850363803132613055789915196504434484746629767224461004851737819050706348471867366694608522174739458383774361777550966057649722006676985279111607964550010981005614807589675617866465532173697602668666672367603212685628599931869990250964508611079689160852677400706790255180064881975672558839136190553059652868827627769944101490040913191799111940471798498285001210092328677756885583175376946291937572055022684506450121585827031077866773210864798500728194887451080762018989814843987265044604474423895387771507306567569993943129541822259702090713194108485209653501061132507422999078269978738038731064596244879411991673013695273089490037645334355834481788054321011782733400362195755718452681665840220430422152288298916144416624432319617132904095459858129078609540188104351789343624331249199547749279994694483899587469430066598345107080696758802010817039243465720948866851321949241660050657728577161579932885664890653200605414626119055555577764614812697387695536370962365060991003974999655780438909118230029662678203804949591307150640438753503809498188982812002710453961147865374257228404123711656884589617113834207435274467375571030031873337300435058596444196851285010511803686355692225485414117812665205378563052468996297498046947664375801941721761423779786777195828464295538130251762543000960698256697120643183055839305881742388060622642961548222245663517665991584642383094523966274681974666370195311652257630232243849521355749230827936821487632812305985200308786879223523073460495790011923907452115109375582551382883956699230815410970415329452426624704660234837522632758843969499198859827926240352818475361971061568490672874155558087609370796295917536562391050217423318778401398215770219698832686297346178824775718463639869585470253651914927647966830652713397302198002288339562754529280301292086892750617175497599587326532569376230374682614721622285586705936052180327550728331446441149912043935306271180878465285924235112435421905734354095806011381705400599029102446695258990437643184059994887121186958135667935731827220830330006227442340656796259871955499099042304471628784910568854600020031495998601424423411054989139568835382608420451387005765842360238550456583433832372553651105886787703268728130532711116356736115518986015959275215594791503855250590534478482688806318347268247089643200737787526115350937297663418717338411952610724242002770084472486844090584064625341024826139098144835876902276675720697289646047055942087732587453617061638789781702654780399883215645528379556824239990680858315105258385164929519528082525361041047431882062364153695795822380580454350147820373344327835006910705461902138904904642608393584515408864960114845263990728878767178151150157709619932835918914625233361776180889689147677534117860422410171126969476063361578124334853304429372936318627364339350026412594922679054806188763791497289011286657939599974403058295066125667037850383897009853144755888195273354962769882471533924705572235337647527698666309895461136667708581692941298228561163398570739969921217747177732549205091248096351296375816644960233743367722998315361699105824638453433487225101497706660467235887962485980532456261591789936097323373639103206471708716834297634002122115061878075794121891590094231851360810943858952127582557211786200390137711524064158060451071342039333880295047331765537071583925061203795130574806870597747793307785418081658830580773645474635495522965157687223500364063546788294738781832337789689872577632640218686037562154521559132258650845820852605129367889389989855414801300948431700433494907170299368323612380632761305278042116421768671619765843658810255686444085879815856214273922398886975175895622259728212367051130249879529053872350375268500941268873206210684706039123975049442926465170354189523637106527423899844237837368974058494453759347467689656193840814477703177503873143807035010780550169155986356708777707998626423873994730238440599131827989092531969885060973660014874126510587368440375415941673789549780101016439269024417369815552941041737765034281016214091452636414010746711315508913689102482009699243775585507728135518041767524401103001513896151040141725479843423258578776687344281644846589918714728373871687548399123966223134898915107909161255405192484398417351114789378872295346903777144432234047539512588539515193366347665217449267556802194505788454183078079988828710010105228350596546185244221303618505096585313932544673988753027616304622956047972445993091698785372691433410698635250197226382396640760411650109574005624633450337971180279626954198273600769772333849549404599360620714821744658464158322636696541980312608692871593143304314705549249031468126902970427802564265040868284508331447785156342448188282490759431526733404068881940882179965398709159954087011456912349532426446888394247888960372495487078027482134478002360250870305979452330449326061659569450892976891429020022169132201240507493898448250825058242284935405435871284977104622731018453630465259654466181203485275572237297129963806583514439258458981557196333768193494932272017808786726300527068152544026031446258635289908432145923677860849579246018510717401802375927554095615286514637360096411371304631593699794128957728764820993088223594962244330093072696813166784511614309429250479820605221451755129427886564119197397355589034038939666265150802864887665146806371984642974621981735717874712066122398364344296204145062378900738977450430956330390317514266510048385376689566859469423363660045686360768498684238525449757118630384671522932493103141459770007643488118497892078076175302407311126904587139446968867729859518032555268838031059269897177988327891584181562311994772609663409796796565113180423171824700207857259334125719394860481424243925902647584295190691723069436366030777827268201795333153677239420615912485311329481820766432658602274498401264182040360566806921381007281728220220052332007698831722877430786781312838617706978415876050707138545846429890711255951154857519303536923454860832174522138433269448381270957100235628279763273210536560023729919613858962484701379994719028777002507533431422836602884922485778611560158684346988550658384011485188855738761866869157704037847862332902426504593318111272504223571214679669997114089366171820318721018305531492058230146992245188982249547257333401449174698373083218010844850991556067156093049266143612130945192182149800840866519144058322054669486109232797959033535116334950916873223743076149295077062682657139759269535411054943715551271375478852485831511507363102093380677980887167918890988571567103529294243411967733421060933612960042770355449774548475548696624335011261398867730064242618546492434626162471411564921131740760958854367874036633367675057529618118613561422453686557361981981018964580764160064174969432894948940629162286893457606469993300449483498486501139005507045429528563355609703600950355820897240326035331684834022404214479447095612974987633391073320900268610675684490153972894653021295865940132408968325523880354590160661250463189146513079432440857978757193262469103013318279461727502441777961695264201938580844933971538121006013326184097136883015999762908604097886931107004783034630273473532437492127172490006601079032214455635098934954225272217004947812503389180117878366464663123279998926166753794755815741445320928346753212605110563520146735670027531512430730944950223840474995455074133724405635662546913540667930426059417715590752759021357973426165654463321460109060180243705283795670508972034166462444477704309240360188326847402076469690584349179507139719886634692681845487560255520683535857168889987796758388840050690635531830952829693024888651959022470889678948676489640392125554275031964595009597088226688611488670754885229239394203251754003242849903486175084426090749293711858269229865752244102243928928288493837859868767860906931157403542796292194613712682497429554460370236037918446075973653909626176004401335949778296709315346844282583430220757549058305557516263337572140465258708246758421134077399442381139102270299140041889199772279276335879471974531751520186512217141098775703884948985388780978430918330653509876615809096221119930755893284197813972216232883250694536424725540360069165603758486385003087711781208765822045340062872464274452756544860871905249309990860914763793301246809717695033871879060860357893579086091252205206840364417015535421967811387958614038438653911357380240036912767666640800050394054087359240538539354505325819961967451142296016984622566413240745052329757359328858015446534149391742659288731851668216920114695129826262567506041557322578564623308330346537252183621970374368688014780335704178747416312256288844608191179417419984256218287503959922549758660263253590869965240162660033489574925714044655622115637015360440667604315127579519115502694002694878154012044262385880077009453255706709058697781007032388311799341881924229389065510751232831473597438259060560411561820023189439156426404160149245890633205075779173346434458296490262557572040252998826750128036964286960836988677125855221580405817092418262929754152390055750008496637462588337468205719189658777155849675446862595680618974379359280326188892445289865484103253343895631377844290017857779698574687895328551870526293714536944696947101807280559174914298034901159137181002608022776614183795164901410999795539323558746668303013139622494060019198675942390593970535912073491010147761112089001599718889370105701847126438353260443457301262290921203631893285602936571286489643152447575768746682343303469241272112750435081595335441376566818933312945314863159896256698987853213826811385580254219357557093623169844811733402107845880836063119013343297641241153136127782191829078414662126666326585870896410915826530741530265522014675528260822691428717800998847088778169149906695604520070467575953721466418470653285863645366697164514108980019699243874432434670954986983801618644765767715124714722675882661614054379431531204179519916077199512397511796716226254292796558094702914802317773556571677273047271962466307486678518958212636782667533126614000945224255709913959898461181798614597349826558961773348639153869754596352796517558797839286310456235839914415879507995582265654188045162463590826812689530739945049772166808212722156430545710869187589089884366415581558300671697381828623669890915072397408881905488447848465060852366375686642692045256401915038336100912792591308737085199682309186553001191306392235766773497107966489448244267402265170882494225969767879230321449913678180889301563437716810463250497258750004479872096136702316117708340522230191269901425808888569423113265755914961354796374809406634573914973883017858286986186165039146205408512273785960108492308863654417835275444291756106110786045439030683332315864028126241271205833106158982044069443789628549573482054295130822781734295428659838726965627185536824619572007960181119481401208523941196351960699302655684927043253815143915503933820571035721840349787395946513460497453581575898617470910211490827525968150036232712573331905986723871719085238186051737724909130247748005810481851783339201881467306707728436100252357249382339247638742567525392593934148045572185616404958316913779451403845960296882415017863285079452161911634813978586127647404399994285402805386972756089289849195814551643102160515986542459539772899468942482617520953138247705889037373444474712250624193911018794286551745725687131630788329259317031709554930064117118666140593780300893495746082895075003825808528453483183708238190017452871632195819771199934869623048896049583382141502599832792367314774507983347204523851511514398342453053416283866302005189711499887681801237357167528182607476042940474685381448006398289075573609572295879805854612949641945504715172211748395683428825393085950693299271904987669644569657216596248907054144967899285287224718347154410631659515406875656873508825147537082726304262372237200656136070160639851776551180793990047977603954819319857659327092122691312971143407680502167918588571770272410964336308432989004803700597546923158928464929846016520486813039607886494721795293531739100495903684678695506297264749087661448877981458278604702123340629430787337521103144630119100618821924420649581571817035162771923300201065190366902759609289000602019916045183666072858241343450877032566826088211636934892855853679365078013076279326637134653972621097992885213922198071901326873591437939058849307886545106511419631455259273040245444259461647813802328633938418228275171504474397934214295223483303773298976263421889849729148386237030598247579641453230152836755577841067017928206598727285631082661523605232318936779750554839696182222134636603618311015551023846525094877130951316548766611384892200836583147038412195690882996689997262264595820795931660735771327837745518371173378899040168771027332463242700081833678654483704223727921262664830273544864276324209218085311556198580976073099106626622463084849120568674899593053536631686247899222803840575705370818998902034068564644986321596434402862100710121549382705573033273786214621504398369817692993131212943429522827818362289051413056807887201828395196308673131094615897560976548635915739853085722774980393559465559017093385994465610533176791170636776242880901465444529493840346931556876545578729820043141605054843395610093799316359740463365005574962157235788261517918430513107219561901675825823618944011923126338274778249403240368589102666655962264816648986003684937973333121595262086355539034049469374579801200745956640917571931674989238030625587046044885185487923692407794871890968405068798241758466529888628819917209831957527568334439416435176820367333653437390258977819542764197331212135598719197576495188515925148855166881165827537310801379078992256244654598755657413796408208454157017810412459113881605517976603877193564396585950396104397593161821105526964979049537663837348344828071592393304953657313566433795387608899342570556205371090723624834989220591965488871549821854151884051617622960339768728146477439816242823364152339914381461661920357239295975017563527256127975167270569631082679874244967102990969671963355290956225733742000202692729823540970212827408267334641467016577926063208039800847069246818741266294037843881102479429857066398963092494293684829959140479143762772660344731535219392017789655646979099428218469261598452692894595294652154408487198922762103245417850346574382930093476792014900343050917605498132599701675188084057547965384081773590559111514608809180063998501171046368105864907863959339077024680749254157477247026233229514435924150188496534298734669551029864821536899102666178078606830893485803521282590798964039704477410762658063641290268050957341223210415178445177506609773485955404604784870656737938269579713431672030309273985633551770833072946844439185530376331153158625326340901592366604916543921386904361614836859935891174769225288185323963856272457144118418302538155900959003631778996135309643568834540909831471172100753931563524556535373102318064224583336304115978827900899308199303600794545928665056334681015011552971174484363651913854750767002697409544995778799835349562647990849508430785361061471828514310040051593140788459102728840441020976919464377755460578905456797568253415374611504429030348230981490528744224864416201677894545570349486911611966930602738172883004206641736122716743507779434496421602043651400222617241270941322123340702301455220666238225512619554129375173620465105723777749800757842329237439969758304842141432413145773963708710604837897566806367748220133916747287906866013530054172549204088209296945598656804688834271350658067704729144406117002417827818744373754009276822425263610449966233236114833824758595863973250134370993324505878956046580650064996594792140340783330927992002911336588243248536100910850717641741795197898605501727332654363263912802773261307431588232449519934481142745937185354565936151273052648001986760019736003218026685275652151752861561793374381567139295208465047154793440572699105770390191858846763659288839735578208070392005832705775773853384019361653690625386536678761266963967593517630374106109521662537267632930660434467247873887169101790011012267665643113831284753790676737973109794234861999920498734150731829609526351895642032401177169616189123511940705526956197565165912240634362615416453751478271836065496008584447330633483644484954191671300733688569483604251603434568252126718435595066178437490098656823330583848213821306709115827558002181632737175936932745347351124600711870263092744268164079252651110183010822456865275556277425185000625277803497366780835075798226571520958369957658743007344317456265750306653831279230038158428672770527905704608068721128109589605059966380889216251007880632915456706227442939654589658959106223302999676625357284130138165512280895189497539052947825688257085800577877264746235292198489653395541585958318823123476404432598027830401348249808761022482138998463281570079867457702278079584652047892305630166693594661305090922960477751275851397433670263349246530057670085147767394602221298250509622319046581723389416349780547509980954972129116190593359734963531797746312281479304947532690379987955620279103807253147019575774016528578585281080288691330840592090807281358664751624046565290984671417064581649500437695085174178140383556855314647530890296732241085297837867956503490057935408007246295383222501067150299339422070411143235223209729207543815704148673216804703238159025646740237195078094665250815365079070662342692496861083255739700575899838624740218992440244228776639825764788600879607722344303305402153547933549927299339517107148467809569179620816306161158361451149904351682165387481234350773049883817544752179176970141559038051404048583632532186209798608081624394307831084759088974170076052796557560400425808972233984188968840504063590830412104294234389267942453703886564124196014987626063046396517689849629185880901400835914159618476639948804607863523921757743864845730546096292305164083254608892714381096473341690263586225243776319838726031961006163614274358532814663106434225200985791830599449949633067050817234454209027965368672713055762346544286511055939475236552669692987277938186069073660050461528134892493116608376086293533370438245331321030618629672027167844948940267284857327099448962572647351331954288786381829168004101513044397039824834233532637839532717036125363703572046426195435824518864161702999437300250369651510217772392505692170922563024091879903898481438485743262666006710372717545371135651830059432437643286438712279654229470879916834236994116491730650630441542286904383920531588180263497605754046684503522516404842045505857102985720883044089307882831954022898725630456943968729762037086124021295560087334919578986079934160250470395034175593992191721748412530114770791321027171617723706056741454946673844190726269448023659549048940380504912563895208344377961919640398290188415633237907541210020131958098381247590758157775532637968242577002014803812830817747469805661299888128666246417352296862395591931033988457553223274735276846624379197129694721593764787478329728695476565764931850124758274388362901714469897926747687377906290019222140864620447244519806463525912798161905813431067097222497958380971966690598392695954585342562932460264958226812581352247677061324747271419932657094066162608895245444707936256992609003633147463297910105412297669489708283694215870162199161532060858941478739020308549318560687533330683075941670913863907980953295785393412180093645969970810685037147455274098320957818572175236488532894844220313222599058065243392435773409395949232206088441490640337744418095862485071104018278578748476916886396390928244331808196957119478770405906012820742954927443394896016717410807255401769860530248926031976275598648151915017458179223970166933380468438234344290998040654695178991578736330430282318479687793242507986988664503656486426032545612565472029146458651370350426832955323169070503497801490238143440298588076496684869827853440574370063450576967712237736305321041317205655002146203607283249529671979875398172570424059546141896243120578213111967683432373030194930562912554160475729306198767346257525294963561308030176833456393467434011164586235002553158788954057012789604747786417519035603012740262861897283137282394604036674650741535001895675831084209393735685456952347939664523780111596702267529712054966075429589153098678805621243284996748167399302886541003203691909832105782122255599514330671644198846780015247866126847358650796051510737333256850367657647718278770499683944130311262918984649851205830130302922123865919546323429093029085704785709921444105463348144876053048560692429707937938877068781567769566853755972905594623787940125545219450175570107450692441569813736933489371434430340879894581384211666215518386110548138206256077556981397169567717086339495034280515899848377446139548762721379894177872563873433997459739851252647373649710532175352543564235060202165250250881804333307795268919927263510550118551314680847869420700021716604429468261757811403670372395706762318256891496633805455031737539589016910502026237818270080168764111135447302906767881974742500649270773258754100118628027082091354983093554856206728328866520721205014678660805884291113361282644100473992608149199896285652389514404509887135541181761221641439929838909076874547991462289321809829719404882060083237667740580901547786070231710210307405270301297857259111255445797526388233165499286085968889255006605943742537703666617752280493181212276075424659673173712627399671937978874501258817743515410767218339453806495317200988806449237981581074107801451306744565973035938828030611646133140077543963657968474751398576241932900266558054754193368792403769327642907048354838617001067752460160645674149051912535379708090110706649598160851350710898762149790822941085664190235293517524189637695105296091071449564573489167450324925816698435249699066587584352672856202829448027429415431510522673635415098413879100658789437318569793423574399665742663481032364857421674161488918394298506936170173142718156076706412856842706993138929748415892935950210948735088581885514689667533439920491099135000616759257486057531175112193540796249775716688250093199670521191234383120229128499679356392467548046199582575329531819059945859680726955562456364030945914887620437022448061704848146841301756101381121500705051154295618048537786484957057827808208816985274340835642990977567463072603029867190098488618194304274241933282228676432872018926242185822914830802374555515593741292536897122959336339044659080155146337141819769674420609575295029003754672747513029492786478329525837307353293476100318171649932711176569904918851088617764138890561628491637755538967078252000776808572203751523544989371539006730530721357612514748646509743094634564393945832711495287300231134480646910761063930236940463615110803910063890477780282867353507637208352303214567658951720907347722685814038806215925349942926965474157739905265336860608020019760212469985749956108815968811244261881897999444449934437570632795287290080907819185749370238380811538802800807525720678664842849595405062995262164938211838922648623526155714527314298416054964182583651468178761289445588882094060416734443366822057494366647893522816339990958029508453028650122829897505354358720489249853799160945945400814553841739024088067111882196330845850399910717442040082395239045760826839794227665588402797894822682167488579705899038751789579453147337291331114678383644215651435383232271623550959576379970770091692606961496484803255753778209995213840562901495853233723335434656035111069945265892647214246263110040361306417866101144011384269529304779244856390282212483347583148973861510954637709777351258121258089176388322471092235404800580071595786096861595335731582794960682785596301878756265197895069546647232558362815178635721640837086855497572650912199323968490278219477013896013952748352776744127919752909253268433850858550554381491735325704498853150463285236503152579666724064294509049221055762920096007049528464045514481284903968422246462382085697482837910033092463917438843341135378189536324133656721353679781008924605074620888696092640475303421475866197808364056298053143087722563653393322307239036296491859314983979296630563608021750849738176932888506960222451880384653571839738672833490102342123417006647177400383690736681410832760061508167169706975598033997090472906189034959433130439078557709528466740882815608969686459473700706640921751395119774246797401387924024166027176252789953099873568407296855999593226173554563033928071811953022560049752693696896892899486625881413227385439227866041038832830477677046357089278741792723296440796851453080306865531453156554633211448383209540249115528235692372209196662638153516406634545000487528782584270729679932773132354531938823797675348319628439307772172216042929404121038461650210982455523180654802739175748191268874271393328354200239160881811314949814548813613090074557644785532512927559875805219068956367222021407908173615701744317432824833469154844585640477076865879617096390896072069082406122661621955427799784149406624462120802794390253944583777532953473141264910238563743143414194982434650581252674732963308211704523432327790992809881019687453219956698836862518171360564237212827108160708010191217088038536564185993482631440127974706914463625657894513665869576028651727681953002180009719604695602553036440969533610057669804858144664036599413979114547218780254028453632136517514722060934438288727720858425509244283968586959743211291828592577562246871520772657940822141944832020236950087302086313486595847169515677531491084883412351619199617934194720205378230401473072215990705461909776551441901154805575814328246018488536948461237404729481672760780491611619276567117535918100530013947935534183382938119452195443020648591586772905778046241248614997529572204032544539382070860846350103724287864659793973547574797848402170389361421595799692676602524911143128294691368786810735579035395261456405521946026733833406671556991290421001558269522904463918775679324981688310609152428980861247685737264961868596234972164363805847856992252005358035442110225116257993350430144023010778513720805345289164372485760011372699202435928192563048433575170585558420514650538049805706019202807652748937651994992811196025120166617848793720140210400411845387578464831931868171453554275974951597117914555797361562098546832415253482901846805186348029709896001786399117649705253918293133870696961239773182007590312721061920116651159018788944458160228721370470344205539166442224170957570356800314909276769782278317516150800345101840820543401910549200201306095899107004190044772626953895849396768462616559995672795410390268851658034154113263517527718348093662783848841404887696285131566316716996443212310656321203823415628881383887759921379121693414580006366596719145833240155960455405989562676631561870468779999421178639029079655538546812527221639971877057093456109909779664924494337184886173105990589035019273258040858813433628583796843564244218333466523469617716640147536039826252631940213691386444464849674340385835543468395844560743216211313981126678267933115186323436568085414377489051522548875814937032415014333278801526594297153121323913435987074574709473063572317824985662164072568138434366055976979701324531421666254562682384214731993887578713736191604552307105119649637227807214893770234440413117152912328627773143449493426929273236866270867293465720896395278649228237598305734887433612931706633909540131341067566843148979219017231864862770501955034278001958119536573210557680963542393866954421607668014331468358828351032792431826954501117003631972083323224510487733502369443071385188768091261877933437200197033032881671724843301704763232940553165921495738708033015228111359470844636383072044144640636827755066990414252018900422327647710455732751243288087719610409112488723570647646526280892673316244610471997575942975911383363662540114676500302979710450318793785647708962046344126133758958633521625216690571719243228767810565204547533453002311697405899854403533595195116307158124806173095305352658739029704331480503605690895571103876644333438359114721311444436629021137067653215302103562901068604009968682935559197718975385509834415734722158977928162467698522634496277044325687853261348735683326556425631743399828687558118916156108185235661700537511626557740069678107523604824823667786144214617351828068355514618204492946190402939850948228589947980256894508656694307345610340771989903497125654403963573308866290306606275523775267830933355877830609629922361469130043080267034266083546478118347717717439794338220960536831664162171471417489908351832952455232017634031146909493515034457297475353121897114500454693258888318735639197459748907038459999150107297960123574988884958017915763301110363075838473474227016131381263450987037021118828138384930546455727601167386289352398745370859627379218331700299772314482389560062845227740235780715086600515525278864375662598499500685039539214290660081946425894399061619646317655294289706417078333514433191217671636328450192628891386015063801035671543500147809413763842513232388876991711193176364492622935901604381594845980382405218189226477323114122965777360982436683421664309617686141912098717186857683571497758241293998549952904823199252768415959727846539876512582370350355398895259983621549012611108558250250665130434837596552444434342716406812497573726696213765002488147384854153454813634824220067866144463168776826434977892621319876081729477250817239786688581188359681416602346929440543968391541290490167689781821447746377988776478390193960217554468245928260190370850467818874616239103324082480968819399518473407634007079589261715420534432435111231894968957489147273034649426550479135453936151906085544479968132674639182997335796425266411213379184225352278024136091412987539992696319417780856806817234319212549602381785761476201179782046997135637311511049858628762101094483123097670535139318761586862264792704586797374896516323630320154158988185148525855990461984896761251992805347916005823328841629875670633122517750326563218621773808745256595395856633664146182582989049920191143721998524560533515278915323444191460041835735898010821567816062584763750707118687175633871845462738710660479917325923771023819893175616930670542819291009183196728166556431727036877939301226641730013779398167492475783620754479638666421196276578140400865532993207699057107928580015616626419199582220144328613810131145181300459860777271959007919912505638387950125863384407024312394307712993586912784137281799912659311835040863785895849178035320448441042863845758603589220675183629859803674499367641755126845972573307790801231685932676146570430831084306904692754223867830452599175667409704172322894138123974542105961562645755106323884947881621903387795380163461585508105289594965252310995095748899164850041945091899993814332483386114142904027928633424485203314072767535411632385020765951801680466824256460627304319973497325330930817225215528640686598386156170957228675494646031248732680763444882580299042558852367205293605058452712636560457756586954227543983487403882864048126121193178995363772236532534963516779698584252149559282207737051875343042006721630294197563751939748868441003819878882745396866866705882475822106761684974190987999537622975804365012281276287058681034463129429425488174210141842189223782021461999253464189536493969056224633960490026417845143630105330408818867740663151611976794355920461600949013826034497672535440551720304553013445307817499343244580642194796726273304195873835929552383443292739809094537101397216075393514835537716214758705253500390446673204805984790482874071445276188302880385090918661583300736169497163170199046636489948345901956452127468148860835233793688547563922771191722239783797601306167629817184557953466880506770999469906607128130301928130981830692053727177141503083063288127312344582255022803921139879250200927295389844554283738834503692479311103844250411708180637155077490301382462659771266486695061701686216926428167300986547463043607953664998179485740016530744978434090202486751968178692995443104977633217431854020688114478948916863185551426681521299608165604007986286229885234569387345525180640696265134350787295107692914177194889254674099022673247801241084883425026684093007108526756864614991072624443000912753020065502128322038926745413050383705129736551066691438090566247159464253493050856524162597922116862474071493480794828975045516724953665753008333455521085863842917610846189551324706450597402800860586233517114671620310441878364891503786005349868341147413475561605086662635104414745432441005850797566510652254307428883598764731957530123256129571500386128157846495577334308591143150193018073128748034861350360737917551154725480445141215375552183027197221026169692170550149844700004777869440745992694697350205549335156468211388451947716322589924694790198308925748125976194834631622516365672296195261847243007925661400748263522873427102230996294198428649489724121543198996065677342621547151917550482053149331211702783500001728663255107904307168024241323440111484019148595919034602443433196728079023269364787606320393950515831048694857809924201046966842730415823161809238993571885915118920389792621449563350567627912199162606495925526404357614505322554282660023298213728751465166496744563009228800480938025160978858892110386769056387549646057841606578242985975621661772857974674869719895139314512740599461061112973466774414939820309079640556767740526967771735350398869372367561560012193811273165333313385711123130616800571833395219376538495741990781496462005600505909865365673202399014152529768720060584283444882264105596364174630678476066350540349697098768421780018443432558460876514546070669937795988337745066362688494486457703812855962154223662141679534405024782777180199117564735110724799089520875041841450742661212079020887449893476983274524132017751749360120732942342974527092563926805928459189765596791526281118198724280276446804993427875112786550710304348647444390209411743861984882152413289981827603199371269390010146693662657967726116724356166213993996826200574165250042567345240030107008468282874981300998739832902186611455807969982926920833902149270541644313302677544813539116430782377416582367799989237634120145076484138005999366412978836900936630727375083735594676720776470067295868888450136092681225012315897932635785562553323684590980841144128396523637903754427140208324572051460423622892580041757801774468206765363221643947383511774743628366384169229781784458338443610462300151328119320016745413085583477377571862911843351400365284419800867962224306540058975807478716213949470682925503861356924077399369602476922262496896236276983411096598970998773899159048589514855722780068563319978596313643665280803453684953337951990371258485260831306488985991531494913839736606903337994216313084917662469348487248676046822421806628139366386120134234634087508833822530394232430930488244749930419192229396005406708908697369721736693241236083255512284325148637786201274952298004014021914019721896156721992463261532594323653777841204500962547428062804411065227618338008042577920455713493432719436313393870505340238831792792231743266800678783754106032888257380963930631023778290757920815709316005170796439681594466744051460848352770507481667188185596096486594894758971790242388027391259396500424973728404506140855005713168382079024117863647914641641016713094212593593462254507803694221970606010645133639855662152354533482797535252720359851047882222792656394297707880827053867337211448626968943243294788221820329828175676212330141124674384817997794552336125741770512155739000975845653436066849332662145390476850365368490975575722786250209124603574539916952967032050115107786534940613001922145080482605511794810542027250266566810527992591137125293675441177692801479524203094159071150704658809536393112956581791293322567233566126020214201047136583908919676522580512316420693005434682100235063211358327522799645391554390093425920677138890071072991082822537344227450027377353621074644314505008800932508725757235139579935110840882033907600117385079889095757990493528873949414430073248662146096116425112995687950923349150669550642036278098957191195946368424652384827075113440590864527157840678823300447856681116280548209493194644159795625793588701274498866327081889761116290296551348189357269017565578097841737588559138240932574335682609273095694138229982891244721685425297867108434563083930765964895209909517541176696146939022538106235690637896392767881510173293606320163586720520131162785813203745177215501834467730940662321892610107751539662049856936578484160760030033436558482297844312759029458492030949003512559356216991903289858394870523634443913334095237223531269851827339262919593402622700712549705198180043469278656402013701490293043230473876917487663163963624064048448750782841361545499818084081693411442066373701452085596457995514357966945309267635286267302140529930647049935664404344211278909339466584555801603594523527102558775320843580860293496132436333299737271106701372542953091024574883342626296317397058415626175946952554374475963584096278993964818230884267625066518490577880950714733176463488387139133146894491310218642888721755007415588052718743137319633286138747312595761979174266977646613968689361452005929821336466397190447379506136094426840472697887080816569350684019719160059109389831100708035979786818131569668174027134882015848155568112456285850713162427291286565711754090326828376336561705245567414549135969600571447615757650214666900927617089473732374154448643862920357696609826894743983024887660919908622857218674101609597030120780647723664264463767405744882953940021618339956093484988019220043114178436954233103357879926338598971177914115915696909961017514099349316934256606227132362075475842566320080219633212445319195778328843010489375422191271447628098244955431149045817942190725509829624946316824610779194913771521553365815419588357199279744210843510895882670755416642544394856489887149608264840618683084646075475397912898235343495518538435694153368319649620698649996752914910736045823804201892824438171325538866636190821491289003221928940810922860529493609052241521763605537258215124246014243625921029480204811541221875341622437651676873451720263895832236606601603135522013101781993120267433908375226836669491066058000972199623334550612782849481151942037251444120327436854250124294780037247762275798281272089891116467760432171041511434506952162912118607820670810640387176032454589458867314308898859609376422205638135188806236342808374978564059997047696440029433789824920217482455522457770149295705477832120376872381927242890044096690991311971863424261408212631855238590355927537980684484188773453321305756095142100473361361818643315656701238244979225517024959094489133569192769096784196672387319044926684906544489998112061779053066302899813776341870400178096503676980634502793495704154904650700060253852154343502189982532369614490922512404282421681145564954905170068043120576365672721916158859402768821090706845599529486820672620564459750288242042362481193257145457829072334748720436778583424468468869883969172699289917091624542706200384911006489222399867095417491036796638058821414279928952462444730920382864696756802627770619199640767045352127593642094131329035545846554584369903807636147129404902292381194756323937953328119341105891748304821505933919356257208724687821123748484019797243178210338737363092377008725008727396109454221010244209427293407632957486460921319518258463421027541877824463644725999601884424740102008819946512118665681422476213265420000180928116891392689618376471344504894656055192002601146008061311057561849655451838084854014532579555751927554982017006463205689021529269057490688624835009529618165321888119747819705821149945034461281436194632161963629364158702875137500310089910264541693507264212750384724252412259360611902698921792845440382093660639024666233149916876945720087427473159747040883052779392072406561270580225235786008431548040333311757396721929350563894956147041930084076745520084426719573952762858350569880780653161461650925585408588299031887859603962972254940684043875942639180672069411316852788305488251124352813166779729045122668093029163804175974484503184658665023770821381969130122692847066965422958634845729220920077802861357115617676276218748314672266812887922687239002259973944154304661994970600155874794246764095504013894344872286441084435357044943434619720451248653740664242999387173051343039898605682941395345431158314271446074194453196634796779855066348073649995153667356749929957669898490178646825899494024219558951132503287563559896280836849269545765127654503324109433288004680476696306137410063416778431614293291874534145471093573825348547297544090594361128395678349878794845926691624663529362078989926639597841219742262626889609008587017294798767468231395516549545486063514982658270053645457974193542242728726715096923164788389610509922049682370634360691226303064992913926396561476245874261765975877945484136162225610221551574881204479148180690924567244567170777906830065506110061053810328555339747225204300205608067730387408392404185247954688443296117769018583168492735900426718906313385863231344521724751513090148936494851077257750919484604232971645148792084018016739575184769533086185480219538024930154417728954246192060612116979176124095132032257527035186408877674893055332124031370669101784871208502885660130917311581780326815439013900950174855065436657663313170247078187566643251012829804652597273836576333648033991897107810354676220293158422593627370167250896548119336363104019660663084368584159609215338439551099073340963399223403404626057159725273920104994611127701306148467408163295192811344243729886325822001708021325887384325500558034360095426460195920512162288460294894482778505447451744309551930145615136018807710283453837182935475335594231708352678024632831557327516195170363945975780581614823636670796204810118626362138613291883631210736600599679909609454898714659721284214442558057792362275744065638325110043176519823433127848797469796033003865478006601272968382788561573480490613326288071958933686238321360282292912485760004064126723529534432817380451524155359048863834542478681661775950824493906560636520699229460792545704453115561737761756407757201607536684433542784277862898979129613705733408401134419623047520019491007197410584467992325215354198028180951051832380056911941250525277665448317899588326025419748570217853362861261261015089606635967413904678071314980414166487108337496849420466079341501496398966468212773934335799172301325566774708107292458041300589901299674090305030662295182699058026762537058121195456034119546438063879494205716040538420138914917434752946938484267935557960336698694991953049306335761150715256362314487624354292989443784286299806160792460123424027657659133752497905460696564282539641587454298361496387495137414218609875785577079325941992016103776855877957239287382141132284214846977932434747174678368714092083496029019134435090309727995746882656326906237716330386877504342638369729778556189376152991118668726170397746379226555796546757393292601920971182125638763279588521747730890599516649249264854033590126033922692255958049117535655139357330063676880605657839098811655172541326963774735056052526626730891074221379596452596502756903048510105460870589043450284690010373967074215526397110041447912774496068572220243169691500089370218124337228171918635999477598207194196360907359322745389183031486023304195731538576213178155207118549286170796233352509739115457011006252074523840191169824379729816929142694248179806420851295248695361309048230626210613762816823732251213353718418046902195022368014376155196257949397559931001406785341221408070893914010254762177348198248003841408208171450138541816727041236912995979031426103316933048197137484438756197962892891884036759943724820183892262985521456491080066354054117807534330990823167290948974686115273874329525369133971062837498699023029003813191904511704114600331639101516434918027544648848175303496501772034418408740108163413614966270736208319731903875228908583862272201479492243073873941628414749987736369358175630604335830236999264722916579622953496323284226747990464743560452282105270656133505961884366819538055971027415857497123874116053790981349955431463806256500155008733245088229428544322855729987429608990383883896745919561414742844210245795388232029766559226896650720025071620407577286201400582564782721694407897754970048555620295223302301626933179726604340680497368461892447619864369766970858160256397747785480105514530595596724362550708723730089131398302241534996587130837361417604917040646008601872901436198471932324686529306589952522372703990312231815753166960286361482899431564190499362622309317839321946646803100522171233754891027101010566651739179319497300071282198083332423498057262177345084338563065731990703177400593118435307149713549769070112854286642864669377095553044467930209072583769150703086831851507588956497652808689029495598293254592349955703385631309363918695749282392949071441234093736185979080070551610261405743147406892375672964897862132911451003644588842861093161647938448328214272667376672450757826796642380774028326304498477839403477806260631827673021856688686052819289770285242905856095293622143681091778085038513202433420027765043274005312103262735218086621687455777478844217685584946226187538130359736448903816275217482802675554848380535711868851107855570703516666059921084433174530961357955282489398464589888200630621894436759404338611163302893151502077042425070614475632894231469001662244145140402364792158427470359077632543876516116885062387017962547950286546733758294928157537105866696560599175503721844416771355969831739653462868832221658075150941493170450243959050248712105323631157459178212425267988760619842718576431039694793667436225363442780524853705503741222195300773343977818523299662529167430253160114754125120696650042172034659560129063201048672790509628059949707375655630804686906960555470866495288673779977015532656871644869005805662291027113392889543686938162719218369757586536983595179082074971159526583133344858381741612749881914297463387905318300179228507510258060025457341615960209256728735903543225471391297610851363443652179611645684717511597224893626469540552000666898407003517002777246179168972607668107455248615012934839996586041582211884097949772979954144275094204367975509966263365042813870213299420935539804778149748052106581398993929300870399709109268559764183358664888485884907485202437504270627734612799990436321592628140773437677865212887128389056762480600391625658551288447486462901632317223519547890714136482878359417526761338759478370588311208459261877456635329715317116703701672543211015789413454001827075869644442852628507434271233888058014573095593947234587927961176910684360007464247649116516793188277212607216463217505059084778030490012366797575749342992599575287045234310778464639883201820624439740798193469041180560707903023301777212013341430831942676048164518006620186763537053101267914339952703963954270583010326601526676427011344097812027502842489267862621741582023974909749704139812272891765466091175035695181364504686788960568317412208766127394709187253604630517471092405560868507666077861899580325855150936981149865224121040169939326429593340578325060648029037698657470672912173340362415905324987747702687558088995656696610683819426037732003502305948008854955865840741447982306244894065658833457356114778773108791613917328734602183262718343491802039683851092423992500818391458224203367262059064901051677201579436181991900384928296203376969094712748618188312422669136955903102352454705126497003704234595097396290345120680218856332450281749634099943960610283183398877965979268845705775007306751272472470992928212571983463208643834983929771425306814578787518591300945530704564079766215852466053706212923896222027246819471733102748003896664845157909283349106133021224186239568721247840984980105838902771547268173632935980099121607978585551735829340166487907436456859105390276263956409416085769329185100473507455545812750829243283502215220282228102953252687863250200367779512836946966696219698876948893122870321278746933259495316440488427821913308297270789357667087828482503746418625369966800985532858954605072542034522071946591643742513069787318309718560119500175539669207443577716664013572241419428521189853225972452093760210584271603372028298382021929217350909533954048453700504610315934043272693611514501661384920606206661351771134818338201905425180446831439305765232407281775624116322747131774084544194948167812629806837532648573973636405107811374477847581999143530829207138669974566621210937358132456223886009770013311163988647900647607924362876033097880781771375015337962618332417519419313810699026846588159086649952997397882607745881223194647583112581531384828183100548133438659468609443480961175891322112593100021868060561640967589636245975601960361068636299818963269958078828180203478681164764662790594047544459098533739005858668714983355231624831291538153361193725338796043692167431743586646323276612481654051479908607036519177889257442933217600747464010551959731926449160693479592222943173103128714248996433343651700909824734760026617702087877730564593288995117761908360740333516209195481491107574770503602285609883168167316989487882130162403149176428723952120682181985017735293958808058668563383797475486236710278185088272535769936646351278992107997564504139401293971763793692230854995050243947216753320362498146058556686224331082967472919321567530485824833884377402680561688356814647561936240381756222659717553443793733978886711954777991299450302004605869691190165620116055775007794333057249980933183528520432398347442575161795322196499885720452585469037321045038591075299604798914337674757810304079324686441527354950642931369671720606376947099811862640344238179412427325421246375663675977922683907420851355001486816768005733689460711135265905271985917338068245870593837853161977782168239106170395845810327621568152382525247238491478976186306122792002197358330426503043675361963519126273900949201927170370821332127888567232020456263356805010444133598462033212819840704532795540781354692003981691592752481077501922736127975792701046589137164423398769457053682625317721392096902386965032323784270701397216523840200099314375934004113155126495900746494598693792707964217988094880025556429790377300343350623831778179304540099878250400686660446495619835613666022246140894071926156239834258852962410533044252292165583503881395979418130079207120658117461246998694587613195480058522947377876195492326950137849943695902373791896056731928954558360866902022618198242494192925511506373023348993457822968567681621056936554066735526316664089130646584707940654643019524166456314117944052510821620732925098382348111620843729487389465999258252357712739063816972849301102251355987356916682018710269584012569330109012064708255074605128391191992509241162152478679410322544951094250786180911622505505131546870527883595478356727034421550956191080493310632072813886533402285647007764594958101761002610041500078850445944916792132429713406815944502739621678102291189345273742374368173868662999376600268408688581816502397964124466031120256535559813121839670564390226394382090808060363254943238081641450132803925595641769262518476051771261793892751757087353555699565737986744088281225299566047362253458705739151803864689327449407828735659207436555481848327748625362794241924795628031419433696241766187139732572751959103619122876579283065846772359323921787910868722998327456621574546395953320251451008700008902886384194572659933952979883431532817891881205720227830355146553087261777808396404504586850373509327891735474756473795225505204271374745495243253464759672135873507110257508597530070497589342589265371600695861206549606614837625973516978948679543698416018201781528597601502336490692991168716013253554311011549937222544210859883565965558140999891637313636120460888435368313245992885970724971561910305323702734828294364223408555447479076534033802560692733029979708579115408245574317567722616268015885548365837523618463105891124057040053528354381123115798018259154264385515959323138635280213660413619184594680847076950913889777636451207271999879649818759154318376311625431810158049012841353794608486098346621073321428522077353416076489974258385835941119187636257573355603415447456477007947549069635342577787560774195334759341964388191765864440828453999727613705470076550544137744041678527485650637493291510151246131292208903603050974120789409160982607230356294610972574376674788713152559040902833500169627062862723929084690578851919856766864103985426920677337926346275521388371702003432963122119695413773774747822859654894041579627058781916758746792840154998913588562882792611931147214052365272421825744129867941819977774892733654379137047066123121407729089634506171404497411656717263503791720371159244028705622043791570706419412268961033160562892024470568626303960034263266433739548026342156846188897803795816334314652786193559014382225259486030170200806477984387288705746779272311321705724986823077596073649239235332722755228557053040716396336986969388710322964071224361951966986323329326561318318195280641368362589187160282371080486925130864011838246789334781937118479847608879747760441215379223051416299795528341411560254694998767823901313010468529250153035617273708197491245734309377618429863914393287421630285022084177580649189392010234975837451328245823071426673615818127287706147189057196627725247108559905004565401700782549488742565860503585918572517267821628065976763526609496324648661354184172972211902182599808481561662499003243015038438052789142890837809942268226176515315390291001650379362111172586439187410429861495129367228391374940475501296529005537875794065404054884294926231301741165364265470608083053920024947546659458339104046861990814480486517567713113829992284473418420478491673617360138441268941271762585173601543185514236002965367055276113695336913464406584520216277550340648841372070221467207813669291139725126536795612454009505858378510522973275200910701692351569793066830220135186160290013713523588705472824475417181036092544955402694314170267563191202005967592692373235621145314407497945613470077564943822196237441522432229902514839441999822283128883460094487515307490440156464178790683179545135383873079737385816825456818250965339611272946627728930280908576089749987012336422274249733152223173934597840348995205832964094226289162305728911218184307993114988612945528984029278101051571477900763961991392564474959485447322861886513870808663729847620609858545542443919030773893161384632624880165486449690790046172903743543687330616691095072503907835554578331659800982737192593720297278672296963911388801900722374445431029215085065324242678779436287036804578775642456216639944156793921447988065036687120995441037785714642399251769270673746866781744684657128738106180538421948901612705717890886423194406241823483708069798599809010774364642388572764556474065437127483086551132920864498482119683627595805645698354279964129833438202544094737656313949243729653097689202993938099284272362022729986232577838442810520027742692271560286316199529084011689724471940906333488688799127288729591955809636520671754877435836391916470790668513758565681383961563538418289706722047751999900878710933699636602086489578781259613837658409479868447605968760123784000926471208559706786102878111279740876763550415983982624950077084573493175444538421189546618114968238738260307551738416908951648106623807130824606237091632463575571599515163660882876824344750691013465487780486997785393590363146421063131318174422903938708446318962376782951645279313608610633951201564152860421233722055814008957178365100472985000834675693434617402620157705777192880406360400794145236349294104069029107349178868154783844226670794615782116787719238499510012719105213175518507234844338336015059467139212755514100379142878279161222699600962702311498332940079824455340386569978569576755982234841402621257937803916700032812721074293395981953274884553363844190574188138458205457637268662807986779257901921446809864535376050818445127136198591723919044427091005292387445091708179986553166032480072884557549021295402175068210241409887542679623846454094795526325454439362700157006232121781774065261088425963452570275227753893325817854445650854265252634033707545186004434381132133579903541294953293646540251764998561723315336805034353509708007786148290118441410203136527736805858404159545717580747618343194589148188149284489122405367626716413190874488612109008497229844909292292024482242074796410731117442377527402304698638008674936912810305030579039210515872576063105389914016115998972102346786956230281874951545956140973607660523387179645737686864568864320917058088956711607762122599691075554760285184064183730954893103005686224392743197611449234024327665830035033955978315122511258788337656140830956019903903600654378461474294035711903194801616787444446309938725869328286752029903629514467026391682887015715656846548700343654886515098473139244070156678129374174296750175742124233176409902388502965120237911552309178167618412841000134273295719820001917934402355407812533784134285920832213083060083680430709006730172622785764257193601879866841030505649343294744637449043948772526776373275032718823523412047366372815464113192888957942600834615478232474584192262233001907189743497486517411735062175332219421157530857446534116446607508334218738456542779391351052062932671178207047416293085975565990679413367950233509041333770857505848642469222872458741277739700012304848653876787430854995251245929478237854542447984089516675975959622018989563063767620245193239076798772450266202782056359356337342078491079471488675422781771751337922908771162770581706920125225225957415311671772994724879786232694837891475933776264588427226163686599572432663638794413178719741663816628394202481412104920394049307673107941698429109137921555112450686128954752702073472597115064705975273725645811735166486487507095279796500354205168683090736616762585934013193423690697096797595016057438369466970504591626460684355005354476491088673015355192686740138514513265456105956515771507256736754767532653295189779476851757009397326490879043285813336054939759448647284861806801211699629549256714903017256478612678306120174404837429473247381411533697558607248459656916586995836225405906727421094742061785626398169624178132279834964543865873678588942308926350021638298149200275995964814978755640636442028836852621624031435347443081216579952032191933118992590602181093405638814355242746159664060329035466658135285838200443127251178338770242844025896853697614495201512540461169417642927053608009932309069402545245763080957986848822969584596569911844299709890262942122372824552278848322730085499702751582086274082408307447999997149669487947408286190321978045289878788475527765609780122138234051187581983352280809560018957660364390785842742682732684758138275985028779362379335575959131125013382312858861208880159306261465290353803093608745851749140327341321721880224545426753714730826538924411634855962306783889274473957128818900369006499428536013686567727660127103129397102966818985773546655973891241589372482061610062199874197836809015266410338034453957977491827722259292344740654899892033211812864619958639420746256821044242606093305372758044319748985797978180959547256762851683993700004616363718491116824081046286871006015350667876945870735086870695041097423151747861705897555910968597301734385097358195041786756203139339941535932384459724638640656859979829383347158407332092679828904884032341318208268523329971126648091902274124757160325551512909749162194187522869037612354809661618141153440762368165467325484770414021479548783657372444931890150080579967642128665644828611852990071179586862741257858006666336263129736269341816990691549727527747110494650394003615122144358093341628610625933310579609167224833449352236955525065567579534222771272123199899328849331836520791837233652481588297494892952336281395655547870086193564700706833778554697783101734556149326435081969516238625780035660910698734418854732756367218399498204156580733854636609499935590152077578289818094542015111771239069510012839221219295575200940694464927882747578838936172743192915201980700736477564317075234581343301876768556633826160057760234504216611294550488134487472288532525318646008009771703395648332642944511100991900553512944794752673975954483167354487980933277826857318661804626525390692681571214241491805593114553203475016703085985273850176036047742825889047022004636968855775976694561444776697574379363643861028614067805857449705193034580484568948953299003832202691970599969228287837000270944357458157220010299096562987032947447932547878130187104503000041690183905006152414959416329939770976257113193264005134843939728415669639044832257571053283426521474758077622440094731078683868591249617409347894851919430536528522236431643523493083971861559421653683798190361135750825729583607959463095555352627972929173576147972066280864226625903038628854050214435295284389078037015210005515984131342943159335225611408341885091891032858486599086582355337489958014344449761699061047174963960224282947677980962942662050132498926588837845373121584092057810251507779472799303647587557770364414283243826767034168097443074073460907840026235343007324949528002498661478198268287536728896243071095589421429662130256948857484060599041189861871615887997339526880101319402641884520841515941082293103715145839227942089041963711156762432305465669839931658860967248014371662436034835461795911692862867688834060959767272121722759764743712131044781752640189071234483759480677901898194645530050189238807117978349159343171462946101926780301125882603143000929361645364537434780781906570224502923901745322166754351573045920117855132842679720980897216941088710101550624697687487262789892641507201889791662652002063076671178709687670636503501490769932269575664506683067484153737888601953453543577520237296164787286994644249879023485238919874768423977697262194835869628119097291510644481230001370952408612873486626684373965998528480789252540125564969620491873166751356368952875073891975487078631408808092593176268301849718602546980722513118421053330757646899416569615648025840863331889941968859801124362624488589378848864195560720629880914884085389879560271836198395461235904975094490792731527504671346440614599355932172202376332804177027546078075226703373314528205795363706834159025627543340571389172855339516799689025464909750661604382142947279920634586932662966945080722115618555979814233192509954120182368389137818737339433300470127167125755216940375869619045791921080382543241695196773119184034267242278583839462200166135838490021201990213131749183468446830833383910105517827562484862248227546522576488766925894696346024403662993863304273073951021477639339084520282156023359088013592978445594474324035564067746628376050485451380959389559145329311670425525000830262249043921954554716763161509151656038886502977595780585049060348387989646506543931034394690554960589866799829638617618232321675245646013651696361025558024646514984406740701022528720019571723258462270799548492457830844313648199397748175658266406466451030498307150821870927405889191706152234499689445944984075896055575544998585179322219733881173971275454049452509377532869191348395398875645165007520374240655477174572157180584066198227839898465121303499873964608473793140884139636770143356676737190422396554760023136811163202839696709973900707420702366935121760228600601127914048246818125479121564393068884951854657417085209694901040005734433367964662590446087514799103971922303504542850635501064209544646003452307622566512531119398233241386014924389158975702557499311285255985706447209364828615787947733477873395986692690377952499064640866647681460885648243715268711036199945845133611527970455642642063267174756349691438357707481609434631026359135164908046080823990142190678314214976534691795633595354844740779810758249981442809342787281981591743397605525586552298257429704985664412157099220152160534744352914732120758195476704744443079537855685797976573155729951513238001868075744902352262512844971616845365631966873957940932563414096029404344937148547599726480721941700825514550903042771510938475355572142767328733874062242923511856063576393362525703486234158538135562735713375763499584124047799761794371223022466345317032936113377287871186011223852719843925028111333013684114786255052614587972269155210102360025307143396452938739931320567087968404785228989066610567753105865493136009545218891053587472773028848810181369780749210487248154330711206171628334339625586186242312874327619342133507037832740142498063224957935032579164876581185149528174613135859392722318182393905078113193639872195865797836925100337616864871750018167851118801595664048946576654323751577600779008612733761841445263048388563728646694180895257843139789045504541165932041447960428637349722799037560277228456309729099465303376331397805541083429872013159565343143278378761031647012281384323877005783519537262627596552700004197725487271389442891817110869608831813784799328549034198260130622164391458834334165098829821088728432047810628715843173563223394978035360383996800875252738556993675613577280940358611593768631256089728523775507383371241498334242451700033959665639364585445278300836323308004277290789103911438218417801727474293803440260444312288138814489192310695628138606122313494295017899969963047936976917991611436281091464667369472236723153323557257341597522263630691827584787698642494559189710789378370472062201734383088849453221953630540366420263707417594871520051291173062107412722026411235491308361216102767874411871163020282775666496427654322127624667154002038768377612255957434455957430695439838715309284295430158155533491070930006076864871960872589254714139421563510488634690255275631732989192021050145848875018819541310251318423927132309566315943834976724278343273470854025714266355825058842137203164452804326232217317753018272231125226934937604853270473627219837932499501033636465842245212932897078789216781308779938530518972470547478378954278028564855552896191725373364413332510317417678504775468745977202894262630717340049651826356959268833932353440025802040271487726059250628349495130228699264535969805561393395324109479794058035956969890775832538405940767139927261684546860992181096793447127049927021304584338018443104540754633317236012880511510355066098242168201308459146270410234164348588327349897459711431090662704156534367771033435956430621170113321934599935904746038561252588370090455098365676234660914040003459374938360876047454551075398103746566130282491319631529557954992386749638148144572818593129516495774775337082025645649851781775124489283998814207072152211297263276702175195408042719150947588634578465634353921660305633302015561649984688221426114902799954326798723844483162213944372206190378760387443820575418527930112626303092190619902185239274025765153229386747809554364973775707747257652617261590635743467076141390281780012677308058344185025547236690220991606086176039729776070937841946620804585140995214996763496528416884040027965017842218669172334923474658737513886184813554922854387020287485189053498738067296285963502386206755660195257811694853615791387353564165083769277631559208584586957538780596449679506469682611269892368168929051241155508489880904591276018635614850171743888778494935339157319559265774871207995263163719071266309857785023568914978162851720432118956405381041433602859389914980626079817369000386244709912519636674284107089011538955638112998163995809425682024573169050407036448627107297970957939172927305875592025780232347404007397948309026453344577723641633316013209501020036218705358378382190514255231962607206373969332256413153439070100100348940880590552901801562685430552213257663585859418955446442211032623548925965370892764160659408985893080192157870900274399476926091428592696441553298316097976609527823783727914484062033728232429142433328809618533775699056361762864907577347279318883743287632118733377643310609585701876047803068102662483939291664627295980537757178643401011084121930025526897719916159927576528090494302006835938667420371847353092360667208878752858004565568475073839748510097233123554051053523135408216435366126880572677865927339788355411420961475802655829047517712278130990196515114737765909121744709723127759450331002166544771176544438961341931775411549702655113067064111433313611163928559313027172195602001708667790013996473213358830225976331345741556239649853372493492529062822566968235076920095949389573813132262224857812629690784002040422961573072143058068046106393440823354465003631674125180844379342418736091912812429369692739978753678680792729551934243247652984083337899156490944300707042057860530664309585531399639962548654349590205675110872073186300972797820476782637621051904419147162115514095056148126470535133419821265249299894896414921690822562141572497862423478351976687613356657732343058029917946356963688968096096731358885721129173845185079689344488743937490274728896958889137145025940236015394706753745293121508352023062265084482220511839178742085780511193376561746442178617727493220408075017230120883373710432542401641485184688343864277191734749926163026690299189990890542349512789723904974437405943219118334046696926197298752300258021945657434199332820250867073289966286407814100284274480696325544417004121830663924035803769965878537232489652072132744131303756763391639176176846937192643324498106923511915224410896865362740166203735179797631556958185579289731690713265287385971291197172272071914844744240001156792297696467164064877618363219570138175630335672441066902071571267054073069613404583727643935829293833726453628560481894524410585043170269683140368693163353394299901837989855054350312139076793936496209093439423523983769098273356556011302135270652414704943631380435712852596628973456072607230047897100734687634707225914678212052852490588369839421805949948347467850740790144543230032304972773666289875391812458253657501371232865238073755288491071231422790076515110449578223810127204120378170824118989015202436305595014576174380614997015481605262891705810587083585659628619596159490775503282895202181611446649404512215525848658383469602861056740631210745177351052151406946717675853650566358000284628701742259327584373168996721076506095355511506718521001441324870821538277705404755143024684399418842366381284187876546686686984792237029602348240188045836944291057249451477083566994509960071980909741958132365684677993832203750063181699706295246177981415240028045857250107600711117083258591743580403964483117766799766227423356781365236711410257521933201278259028982297829194484336588480242192106690215120031419341276980951431282169339386589790582216863597751218539548237299705499871810882524620733401323530879983312581762788215308519761819532332037788946835477516991603110380214414694663542889139220946863305742463762888750391841722855684150437612746492601740093395616351724608789271593006691624410187216091741854094299375279091830626400648975801374496557652516426575567027793781675671927623374227177396854245491360072305159756221638969727191449219489573295806758481611801720603430530153898169586548963807150277012723695589333344010422693603464966357906239768787038924404655177408752412975206522619948481285920042702530939486674116061551439172564055124321246804344226586036120971377814367601292607690133171462401395947622173456364691978286977605610212762315485022958678173033818510650536309867284899191316600250973395680852231563829015376342772124850090639007292738242944305729223034347923753327344744676427057216992441925370628030121422361969906287217573560043587299393278720034630884684984090981151917127682407481955094201246734787420756585624112848698905852260381869039357905305422843411608068742343729490566421058499381480698291483216577366456131836585904705158565089774363684254675622943793967823082906338221338883781206493249563185089032390051562146821349245469187790157099280829211211376511509384282377700222006310227333783496103711181101218270065631243233204343556882571163407296490430552391382569706000411598725284990127145320120385551475808091621460826641263114828871824509447607279205618644983602253619079506241525816697162541315091697601983339852052203740553233163276605955789914179294071976162953276250526497106450365206623074358042338555861977041410585479312370323445564917764795656841823951756695160434051911729901722320805323950606903981335283427910271406745758951786947035293018746880138616476584646077091579786355281059628422102216089907731604381155373270586365978719234575733101258870646449685227400985702493450841640979822301867847007078108397196298005133560786158476885893928637985629378549816519296960267825791361461510368512294271982014642693258048551151201660171753335416942485038911904681459524572420190568334020475201250019790768630744520836458357619828201798691885037453150240870335203884570719892126574655834065434215147148382282368426813512873829985108582627838416890173165157806733372375131703386215442212806347930153363096598579647998442140794843677168142578275257280178351573399445604818544144548694660547182005971170964168772638398658245276492987768874221553610267809364574731466182681340770909533658566771486931357362004368521140889276334781603441260413475035615892748566286604797554961575468613073381063421024677955979728919897640752833332086617571486462133616166960731339285737604233530850751647812194521699375041537207249609892734357677059832712039191869421540916369872192132643551982873929453231521999319304949288438844004275846443166902817623457360544198753313948587406460724882894288546424887337216070786708023282016196795515557089753126783913462640465592311007141655076424115398928479941036102850842387182145959709611868433341210093779089141912350326073732509138145549459707945661975702567883279499809062943021934918471457887627906489503247864088696801283223701941502982530077116949222140311646565912482697471375950427556129334884869163241949434858816844703704310026564051118841847456752421602706363927910022979365433760658539593955009454466540236886988444880206988035829905487975957663967522717585282905498394191657062380098065487287647197535303157112186497855742939567556776087599326297147277730489296356431351542856273661144559166060076188901947223372903668122827575176936584756057215715892901441846586200419257917983262408393798993323607815697202552707811689438952910953361049252087916996481153740128870686134840733245123354945683330899911515822061537815130266182961551419388628091590122372556376453564882273056128783949701553139731293062541140631316534351960611636645759095658724719685470865318062219950325148229853695066835642812598231185811948691854914402429938094522943713518561343055242675350831554107166841403825303059200967337963496783704946668230579397085290608596105096773037808154215585627791358679371742082884775805508012566082524612640590753322185157799781195314461874757973091930645651212472713447129747403976785608244389410262945226694071326465633659932061793008317756514299076173147739088680021916232149625629167036059579201238622016718952837480803444151655072906217638537027255850863130725309002784059694083519083380741783635668512499570475759530097742181699127037651832222444542453005418650937101607669797748435010016856104260739472582452372961678731900245056340869757382283816222645261079192356270527369628346039092070397026685219919180864749426444197001492241832020414899590954036596319169602799961978886011718085886401362009307090185356496669032717242345713363117258975870663622743617889363898554639745547206338730780402088935141328968165634833722601254250766049249900926817413501384623280575309766780736400538497959470764733877318080531123815480338963944942359246711794949319089722872544877060078053683305455272938449505862120403336529743388342356884868466267321600742424507896581021804569348147678887069575101043888132974587284985850109036029806855301962904205264066406690523123903139320720324250307741391288731030386329415063879884320724224153361962712779866840473971648496375445594426887809744944295788349498135477491537147646820041130112735116005541690635590341537638859317309563776393976486175526252545873106956792370116192976174344253845872946854284521609314982110789793373046322874310286821826507207100185291281133611940644173473102070510458373340914672858897879331386794138002840720676537120310690500465549787437307470806265527333538270816834276729349088083205972734508039323731822145225790303243661476625430789883809356733133761227308610867270825891041477652657151330212640060756841315555636869359306362262814714399866624510971295391931047611531735598491932078605939150539410613504719092993728237087845936353535589321713623120297466482306075852289434156248259149927112481153804540706758786281123474417426841771120491980288025592198573029139454435574293004248214244786954011474633774231028511851998852470543017873340727800833641816785113057085647556405729975810205840577822378237188432240133166124959268370997264143252282910363818993448861446801782062637391082079285113701618403634592935303640499946956031995356762601860472483348836104143882113588032990401159501324093662692724642031468515582952574121863064448008551406832183069505166208257788810224549299866215202215736307126560643114242704384928062877523173886984985415116569092742437984541887126249823971592285991696368189218394556501718236606557611464207670309413467378078133475020194375567970673850320599473766059265193079536345599114997232894870150637267456446807822004829019908861277169841399028232937381411734603350837770182860685976668930391670857658343641970407985231778792358617404201742405608955924106072093850127534354678021271275164008193949344430055325634577051484238898868650029727819778540056435867876696256189361056727566952030301331172919110174170453250758001799284799064202873627099101020782528484946659068218610822193807512527139167065279259233718194308560990870148807882312326346191276136675200841920354711643183250673464699342895435071334338759507685047737564609843125894725110251770744341386604324336690164189230614311906641347029534340947167874129400221761668045396800892557518970189115398788937354873347766295171167427918200944985524071337016770096955478196758363491838155620974105844588790473265312450865523797809385431290549620076571472158686793909297658529238670198840717226074272975561239445784070505865789465658167287337987655295496822307510147151718111432853033482337844575633629792513570905913596982363586324393948247149134435217128318662935786144589022549692447637767924263760837196709712881213884102205879070527952366360592396358292824439677787803692916780149513800928377893878024475762945996380762372954333013909937545073597330009654564034916613727750715328063105305650901958628924706392473600384893787260591567989650606773611195830014189880687985095152779863188212322944681648186456779541647677393033527607064479176591990735631053452206474060530255259708713908940720576223144489331119342344769559796549002825463373201261506025524316388846472182953754187395597432596652926053587839505606389086218414600337267574875140437939873034048272164418454965690581079592263162192888685938106364806425152355878852619904230607553498989977401317810569452411616653614474841446828049515980177070265335583812460431405533192378639069747524052105808313641981237216651373354546537784199593085084780160558665771007169172429723084371002286093007729161149272992036851014906093442811710894668801001904039334233018200980313199170863054031535638975310795101650538652088219150609943100823416408983977067749300466786682766528282542482297253455097877940110167109342875329807043239310669228315124879948403701221508904596795667161523569765141182666843625006995179076694204099641530252183492167716933980494143256736117266263027651051675727146316005047156694989850434840402069075591605969642547268715789275530584885821640440361135081302705587381141616613341121503243919971532982457103393755928293849545224341699052477774118069171772556098485721132540783618376419824784988303973400336597969437968556689502889688359725998099869260392241473656641479982378474689497746522209362595748767878294725606201595700324300807611023215528729239493996109317222159723433784480425630188719053012387705733712417320878263037376419499558887058466751037121802219603760464710929816126801701432990467653061441559316338396697372641351397204764768378701216730483205095200535605985311002286560294186715708870295200653761071307945556214048740814570979219992300914025087909209592107278998151731685120161044234330648871084774803394720398416071385117654569109647241733754989731282450051223155609467014045893167510747493859447822095905461140696170361534164616864616721024567232555980645600022318195484802500958744345192210524975877274239544728964126331084230123110149108158866861233765286585686232356079250558706739092004734959659280628599278811587034202420219900999962913284445937023169931102407281107742803879960928776203451667054420562886583761429727343378711536578391038114793845650634540212938703754408486488027338657448412107060987479099235845405109790370004367875745601672583423263639897024001774764782197707404493113606911305767924305072668064862266157522416393309609331394192444008979532404165762294646299030775906003886843899374045163400358876951811664302897071920385782226747644691096430309809816178146828282153261011242251126455078748676604746706436601047946126207931323033605500250184293521565646218635142012023977669513704353331091515887369107829021273961805363074781062224212915089405297352162555137457212760509739551180968865433123508861297703488773605767412922213511397059391147836007724672775791921656974868558461715302689012762294134945792706646083880777286914910731771458390531881981136567897393299259838891340771984365356105023191690588217934889586286148792226692663930904595437579976513502378520302868905027105979318852592110925381236591331098350588022709115780970123381409152955687957806647913244377406045307804336436969427881763535131665609231468281724286002158117370581073605172957111005683153341004758775898044410379066655684530701364750233737537195901839762937140440245603751710741698679336478384059289344281403075460770163812167574800561061314529111600307434855039963115248098324428366134678485612605146743310192948097311076974635185847380892720768232519414104750560926944982089650861174181525553806202510998187532406578596943691285811230201952833379013037889292559146251915638015406236794337649926387399119560588974020132999460340012148431253486280430389114995119282580072941407361020692048250754371088774469635130263108084693768398694064815301368216065042956132568022260137886854769021199830665826571377765687714047513822919536846972725498152600129596687487762045613880987844441373733890823898990649424194264778666622947871394483981190022891928528464511718362063368365077283871810972614306432583753979839749867882750086457291848786195658824637776443980428221677061950488907680831260010186934452960037876823286102383908540755879548467424483271010468387043422374562650558357964894639916230241460697762915887906939863945769357731715915699271138702610026750885400638574941040328752578733305131766553087604541797860441295259766479080043539591968769135315720342859082982994268017322465610733577229653022572746842144594486820224859257880058888914734337757722058410757945626855927089666407371276635388193519315768755519188712661774439894759548506204326808712610089538202985861928950365011344824554766535007945355777924254867969700230384849194252341965034061982079390218813449119662025523767071013602910628996744046925593477242111620990272003676775927784879873207826848245133731466412133808492864072433725180175687276444509813718079052664372862720209251777788095334516886067288698891867350605025693350217801455358067272101657834237697899736383329960205644622992642058884897774011435078603220846934993638500396300098004989428774620228736750048585925595984207853069937641180724287333182977824799138609167277036594194528517134038967757556119860977122546137281459325545805638679086989917088736322600675391250372257105317086704987151261619699733817602163860935654027520276224583355777208186944442871519341146154070718269261089907389779116648538172364216377860006400421620358113004033066724663220336219716284977054537048053617819398471732605826636635420570314416785348442268786921993171896263390075299159419907013590342396950484926295162028805390938795189201544299915747092028513794516887937443984352688715405575571339293150877802311664957077098915773065287185840687173632179869182014777404696084005613260693651972987173249004979413709833008215085846425772674138194357025707221214076449185478345848626635253317461519561723603614002001604268732068255817904606807874985364745993461732309212685278575853421554373048559289034257113840367629920363917402600301232530547748004640452112630073669245859351234987745503029312529780426812434104263465561308369420763640763960482811790191166390314483785608253190200052826952416115892711192594431682568668676156787367825277056395442886769808518963096510388009440611211906953155547842550523045974159101503207988803469639267172630832397922552974333484840438774767849438671815051115821289038247254104331575153671454572045559967320759503164250353800843444614706207882447387061429053506834949645563661978079774008611221000104908708906972658910548897787699968253885870556378716486051189984813765434247555837058742651792471910224861517510186633029958015367583533424091491541883985427356772011639256142449064534354271388529023274040974923720898955437908378093408794406440510378028279199778405155949688755660175119720220469376804902566988763692579111373331485706763535787140132280851133288671113634415798699163751257499791683169048014482798731852995521063032005542691994231210752286966230197195199667281410114131777639118712119194426645987506610134579180725343329629723371588244676508341973491195656878180951416417441044783799766108120472826453025914363926415739371956697068368310122566747865648711325704822393762993852040011450099671440388504610533299433766836728492519677366083761364647471055336795874819123552919599214662470517336972783458467312657765064614819177297059672054315604357197399463375409214912818298884085742231787458069543660022603889360654187101452141590981065181831887646897328921635668039519949521166589484643267109699569707649454960691154557830815900370853135848162452214928967734763480880826841083908513140233167289986315563338253030249856618616085098941469404125960337416353397756278745275885449972644285550030877177475668447911029351574343727193533352167017605135591578531382373092212572782306938500090457630861285291126916080614675150963120320174767565930168879866741791202914821633685919555143508494709233530072871704788889968540592624486010900787617150136311027931649575581592238746566111409453202611500507359951418385354236466468788184671134475560784720973017051253306677018711625754543148151048226018672984249672801465043274636359074509526764387325056344370963095922502404073513402087220651484101113146316801864926213761327976335734340466758169126396432520345277044557578099614507941229191704788593469167378962749198848248531627411121487033969981125031739539164361102596059438939027084087673673596712747933624320950849971335265965318864580286992576546669181400025553008609779920214851294534605349947686777509548724976492472222189343626043694493288695238042571822703612224716741657005648916277127011465614409464614835027722207935501043436068828902037942731665510103108782865157201673753495592205039284578091100599140438980480448949413181587835865160005626656503285079289081631091595452273985172643275506305942153521973076973728672837414948688436778891652735494849705668131345660604805870021621685417529796904051916304773231951322500924959490859198622846423789291853494039603347247524080777006514970104646551124769672485918036036971261772006220980315475590502626521125090459132408652808186018143799306495945649267265979598492202939628273588850257571930921445922281326374619447124991523718783649773705140639348314494169988231017554065767334448201681415590668138056442859743435783372530075438265399825212400040294514903871218026310299038821919965268609691156943147038408727941081360149259936713892769828123644760741946509480837096533567191293978253649102599923375177498757086590973298507874662620913689565409457296874944460851986422430094078542240758177358404523306133515672224698709993401768597640640443876414156712765321822591853238673246486684871772614980956788525746864810753888142141232345411493339714749956216657327713461805946512259128053844044134627828781480584239928914685305902307303600114043282907366693076073808147492443871997799254668103706823574258867212156053325973664187226119779842719859544354436721536688771117660016472425889953627687377177219734336466565443870402703662641758040059385741623636857035731043424841606499962842060669378399307043536969389322597437441197345201270304874244105745478784676510012930035524248570841843708662344690069269758796601839549922479872635004067208228370490154415786418819128206808741601871265444922001662536534543673585003749634531185267305127998811775113580998146322011071207257621723839464224395110277388210862516798279607826124831174564698702535861823870236171547027327977536802892642273183727931980156257739473767978307915375050315892654817207210833251072292752074663716235377284550885441370589223949156230214367249730438897433569936517899901450325459573079636600343906535427520682872645496135360988186256866292358262943940630427873613583116937505371065263290670341313221675230295685058999520034323487076302980885204870039745806661467861967675191179963714475466002351053631784477884639674957128662409710611026699469778910686128718116111177827633429803836602337996276201902241361298932327235074110681513997983094243035393461049318623251703720053342412548934134867744885261574749405833243294429876444951699244036409213548781875048351244487341236685686372606278383960999832988258094551997673421570238849929804639527727263727362906289718691022258949201329045346834044023253163798077298136165436819776303980499631665942377562217592083881783231916313205923065574925446975750127633113388678056746926308705127838378982649801834532076899890312306822635019288153848024474066406175410166965388788437428325477615546007026322442779112606048384192783068669551472822327406548691143099344801717914723934683194004342777840735653912233808299392979804454114350381311231711404911126403066896127122571637425270285079346718308536355567446582382892351591343382364599443702248863451456004990173368784781615045135869871237264761794531430278905496536117186570068465784944032116165941076897537572371922997332207850206809513870315506906858000939369129131891504169773866937055415998896143851836311423896285817934510240699766485176417881829906694040255145933581688949700115775500586899375741297008659901695435698298925706910945811419385373470634064364424643746308596315792538108841841889315971337546984048212521795929204121010906438518930826034634204689460065246842627534060763195985982981317410267390158124863003979269113167839180998385944283944973392202484970300710720577172521175568668537785764986642985656570967993184839854526040074389512732872529655771671468819969302085196224236991753374626961190547033076519930819052670192049444722084051743756338461872818420699094769973592343010739832511483636591776015687360764473561232137079610441629818529687306199854753733875235603946759286226304029239154283179698265959396187708109818512246511199578273623749353277662047963708474214560672152194693052101390152691093979981111666113175715607892135638085092904999909874469806949901563901788599972433783715039114196359426561344123585860599234166721482300030404795967988508878365744681822389708136558958348698411749020565949202772398175923777864701544115847603875259739386472217293749215090119990288517952637820084194986980782274555110906421953704770117242582396481780004047644672203578261710201891647278448434623415487499856750759133870073018083257268894780564138529475452449233252069427724549392866010334970702030288901725819390066674284142599624434269337615207069643738695889003756852402760849406975081048710182502278116842522233005624929356295224372296446562482211952343558655134627233064066941111702581217564637148993464678485415987966259009792061964728612052923833944160715020794250818509102926876544832464942604550940698129165441578142525220702625559521017236570461874665674513211172276298522220508200630691699735877467111420226039415453626168437460395021755997976035166140180816691793668284666181802959815566649678495472486794928526097188530174889003646250437694936871399588454974651036031206141546594317918034067980742974226418321674353492988571192273205178530182061056037169251396865328341181006478439960116812086289914129150575210335211064795080514058008763860363262263460988119903463420284625950817126566522415339263961603548084454790225775806586928997548462118311085856211337355926119059232918513118370224637630628267537143024957518958430853735048685101715636724884108811386552430370958776636245562832917094415650649563195395806949952653535928534085987216098929248845732678265267975861761084331311263410168019897074874114691810445637682372131196572538526411282787294403271684673573898133921944728894846496528852034060259342648568827230016927804079804788774574957518714545979982777678029817914580249675655777499421822963247290997605445820931906788302780723918205474245820902348223966616903105827204065620943302582566569505905411838275174410926562323567242211911537932399314880937862582132822746421738405480251752809336344146528721597825496111440947954929545962026380132570603369417385886740535839841607310477885479761077903596227766614142573985028320299769613500222682801580760100789769825388052623021276455933280538482909252171607838406900608947097084618939532976116490491402745854371054348696303198870072628164961343444815062703577989024672660055113701937190131634915177802396399054729639641758446983123351703815161310234713506508969894367993616896010416598605188746785800470603463830042156308371776767727172650526165723164018608273247979699542097772271396782577402859299110082657250904785086112072072498138118431140111902781704309891491513638812085740355250648469327738766383709272660198421748474059359412433522073835082471947231465274332518760780640731459465794398049347824093723625058581473428537151447162340596322098017028246323686124421349735100002005051667272398244616750404400643278832740960163069708364226922976580886038044428916160265741563736139026593582626636236947181632471000953527962846436269708130278575193054511582913268205019223035893490417382604963800639545953553779250724800537586817526386369186711689257718366412748628281496945634626090151147981072291449690451421593368648594916582766411592081071457553077251854728080581737060878783292182061647116947160090807636884150044784793955333385227512623509139116851823213211532664892858370119970748584073079457513161681137434397177197298037729007610814110904935378325932836028805866977617251723667591233155538250540287175585886109316741128947391394907997099729639879776708045332916686398757851735332192114105675069570952757314952408225215693043074687179922562434173303171244608354544931418237955626571980039736473260099746058638937302403649941598285794955126186568304905387165782036739648671638063214903878256206126769131513879785185208344128707334814786071513639037394580942734602864353811914390496557433682378172711687396344983360654392392523808849289986095094038491397083712412801814482853041593166313899966980192961275987196530055891450791699042083042859066166972591174570969163265374320316384848088525418692589411092443712375824927878472907010419812950282738318575141908502741833890793474748853258164928291735587872013215923694649902980784625433115054603237175405910527436547712441815262821002318853088324602606075759893379078766286988014108731669579010452716483619088831249559850304358817549540742924505137121786662722402209821736525632921021131992069121599432402991995359778383542673320385547779750213419438537880957437205539897835391199418685157058769836434983114040871988232832028986690571174271568390940415712128231239154172347753953508026684608883167379356519611891295098421104422426141313038901620671971625915907956657303746981805010604215096105541245121981116607877981603130626411280490507630216435780745325529066628464917655337997673119211828520734859452584617476749179202588012461293782027661036885776653534546500401029923326575595333740877280766629231814701328217236433054716553271437156243580113202355391063442568216394782630321084725516949480781272993314532295529021118049679342274459998129449949528042866158303038000895797307663856675023028700369624324879420644547547389108418740462532877243904442144075807703635263343172422217843052002805499196782779568389904660246465024617312326290887654638995666538983656936666746336047021739749025189636987644216880513293686704486244309814867999548482468217443703406535590630305853303965630404361581048355112942735512549385912765980983078306948594091901118067391624359824723588556445480402282861583029072438553438967450081532632810774096399975021952382813886998880070913552685499587034961494817884210871815160464429262347483765816395155637826341836446776720212726481437957345428346170402120557364705602534779299780631530110202931842638969994592658598217457621972123217576479445539762576046863784653968827917686671928383523073982624366865080414708393912128768649723954772588487908995067536148972464100903074238332617578083273315199483102966733965785902222867098423882345243153683357024946244609746439792714407954713195857915787476394061052161928352351241122364468000754098637175535871830820700297041318882658958690432926115008383016167076271837594165711832347743186437843412813913761217083950217648962844101875779791625743623406762611284664669870910355163826706667379272953534278994190668801429625388058758442821196153719682683569191147944418714761647044939598608887804233849391413381640266337378841186914259663162598753687094215475393323794529582230018646366970471207561132033862377470135948613235249622080937706225413755227702924292227579768419852855626954296793993643305480435501984336049441318405238933442588706521078794697452256755918252793605146651300228126027425981510076093994454928003725231970769412874183218851135394552743925620029503025098970035426137161278751192318739770639339430992176535561764217020720298124776017653940486763880205948856388743063146435044136375447334936164539355602149285277852453191969731081232452263028291317580613919672265030532472568961561523028863618963451194615142046687164290536363109009002360914092864924971609065335389060883643411723308047348278837493588361436558745603675814094245809870500540741495987725025335107544727009467229300576117209599519002675687490565214443402098196625836856816412409521989157112444015638594344441376694788511950200694741857413329663728014832479854224345232001687340148573777884491484696626571737445799243067189558279159252859728884635971149442983091526539703690953387433207515466487149491039733799203886817263105072765397800408547462398714461478010460135843118467371406168375782822962397254433211833110452028731235846342230768813548085269151649734268799269274588592277431529728985748163482942258807341670380316446966380670499082973477891644220785724807245161466397915706517681968919545434612316621497308068596882513101284833491610891026384429487743706635916982805546635883756809784448190765423420509014888929090723494891919366880317376160223255113588575680231484090716835469661698214646062078617523197798634271813548739610922191174105098252182988286485106745807436285764996236508881704495249364064953089760797389426421749517710812738012288036609445092300260015637826613877233144026163062682729486798856970628829749878003705183320429667572496075703408008212873379090484586433245546750597719164964576707961956667380167450023110053564462701222742188043372096376494182520370703032562501796740410399887134035453603107434014490534472023514007696709905247028081269118736514044535665815360138106902195113134719250295750408299160692642765967631182195122233302902574523242311742789142346095227811096599441696161414003448905273726787304823256035097476346734055866053323886770764450277959066403876477490572106411798908602067410960995192351073122892679187920804641559540171660679331078497802838757190651738329667037568978087768915741865829842130060019802202661197057100481782334674226299512465839703289968678572148392858227555119724554969906028518963084893059316129271775142156444285284552270038529923721241837244706073035938692863488858971824711812820934680300424915980161231365579310742530750723713482503855389252135580392676814622006799114853681799520375673430807390992861267966251884046539676690854862433067034915045981646842185981812925282217174237542603431498728129899494643178225990974939336438882269535370288917640286262547900894413675468048749002206038126135456327870855103089775851241729831461342735743413057248970218884712268187535733451726628022245244065719537116914582637915246689316486570876223425264871831159153552648063423103286359953555131921244521982086058849820426799244021806645638662345884576502605588268151679101243058261333840015004294740448421620758174545867622129581847930163811487391787678685280305816930505741587600964304571705522734010831523786415449780817010896359690188870922468931794029828582841053422691063009113409634745216060809176652675515619658337449337746386230794185433366341212861239257942036291633944251594590303092318476405675212036859732492778379338804783132841820209426869688009595535292839203882023311794721184856562187440778367012769481198114407774216643547234943499485459228872797153378970038155351297761335032072683589052883280050166544789112160843409184640987361201144179565430705666903653897237490827910909723110507331408782893794416117470681104615165813977010354498786029694665737277279599572945186259286210613893874721654167506516881965508163059369917399931097469139663961323290830222735359108973864920180378980263642765524475377156580138428708552832198063912564700678309380193122799478642667443230531895924486708691746772967974717072733746271501486628152270242452468387359266610796312530086949719798435315621879068140147430080908514160326811223818381781864773028642518437199331838263085108326439007423840904264150622853366465012401941764689538741806611947116439694147190529308972638327467330803248793410166682973123056547437772292734093351797498910521585490832096012773543992758534809968581298852936923083214783984952231484047592019658911532442073335534245074163097685601800038931474940101470275345596187756813868726201523320296799149785477896290611098328819212920875271690228067073298016609841059589541978349839974934176046957111251096650274513338521508377403001079044473137854155562836909827824718894220904440120037095239900904663706753177589016737296392408165833832362607482299478492300130236292222162445524293855533453949835645357049880343501299769135692134082933937725353724132640944073877153909914337047308807325861179832439149786845311560301548223570210831332539835558794780993872901235655738931662083746512381513629388549900460399686083507900336174602132849344432047224418973549134844780122975562193275764623825440744613307688932726330502012918122976272235724319650648791896598679336787571286726285795011690565717295785946542344490799319660561978435266073332084909870164701146522581873197446337316473963079485174672536556773740609379340703719477239301607120551391580756610195833126326131498994454856176212820653807126763105813592814453875645581384954416065492844321545888587215566418520294707231919454200170283876994857172714186687071406790490335196076865767931612411586652937078290173737877909873048476419927436127969337902146152946300148116908618449969740813719876879217415219383970424544256617602543590905468350989066400220952678708479833514632863214661779639329484387943338473909398147856473992521564267616758899742092785686499898681535609299480662671258394365379436788118336299210711102596855696976355270830247620852041963650097666307882754411274767751797448688770717988560406813370256721399930993180347795533187905173954005902763706522059867860431568618105513568989646919356069215934806330347359663868839521198835947399934545899725141283837754523265517136447266146984719404302530702064265860638419305210537612354127784461499920854860180799047421318364045169589766495798179992802828666436384581804088090131883822467757517511333036029837198388387490958695219001065400022392717427506628352148404326038250841277407828103894864024287981842521396023176265401065292756666605791212147631177801496183117459460043916471077641754286355760023872946593740284627372929788541477989687131267933171168037219887804967287479779598115675423556573735581675499361240108579953568191747909409435532530146256996773892399778452667302844690077569061210300951275084664214128644816357553974575432420773862968557282056088980050615470624375239094609159458576294853468754760967117056777934315651175601837741040796798634000481997439476975784261177858735962173229021193195506402407194956678996242388818234571285521516307819875548410156908266509243642225396261410712362192139484759299020812158983731740945615424252483634645991148166424797436484408115714474893682867215144073162479379720593413316780618267163535280376545152043426524015825503776605252243620686346690910043499234654957471682605147168906482917910367927865348416786509168529266555067846886889508201100777075664810689677343926311409440120681671425368782145627424024075210111798105328781901483133216026519102532195099944136851132161158511491956269817429284741410076730161555241010705173403429317035963602432839874355462733517234495143449726581689088122615523976819476463042900516844972410731211652984682917843432100938045232348198203635504870430458726202262226472885347727327981371096589621691690657110250498746579593780604830309826065534006831684864678130465167638844283885896950924595835721504697728558471235200897629831592723922197992044147096508981777035166675295799400003355628482384303481057153109983545646156396563914428001619978833309931732537010220610042902314527960307821475966297480292569041133878583239727143278463798737884455376398646519686498667801555641467350831104320941675569036889784672698785228566896593261138962228486181775057554093653884994743391301349831605788099709744157346927373220783749135446477774006122419549594670326912392219711104719418751700741244894303942886610030081181426139922672566284324318659346007248491187959965524794746769935305728250818577447170639282024088758539176638298011408751303133836473307111779446897016359591478129641304836176070928435567132451452336899076278797120200566086849033634006355441376920691079997936952939825454990456229066906292576517205484863076191315686106096859747148346149827217708168950556530563804441129467125203695933779993595990068691494081352501831021117609918727416768079786649505471576222579207013112398276233066674205292382265978355001273592157015831033718821098574250616045758590106667117920277241077638423941084042646367430948160612835862487321897605374931981489421917506170788779535022078250305516433507568513193605503586791825592643741120341225320569908779498509839393992820751115722891143547215671158754100230111869408902146822484049305608682754188303857121535404737611255431653124754514932614484414313596773481188569683928203065192270944860957041280461286708759356830734578179932906137012181049483688625944375260870958150619713712987356892779894266485446233265005935850372750231413584061312106820400846026212053502865881729524524674461120239544522233842771423573060242366267885955954285694657501241453295433581532852198460794981422096200903929024936755938339917535911140911584026181047837252913762408478139191094435232521590493710174355173939228058557997778924097382303445230670834453357478964413689694801681221981379922170842735812795718795597126006641576488458091588329749838966851681460852558971101246577752345786739784075247205592536000481929055497472182641929629614292624599069292391902523462085364577533605946869282763016624951258642445852432077939420647100324026705167008939293725695658369644447016661796486990427949526083472112061348750407827941565956480592620361970095989868037384094396689171622274043762081278546342313528552979399064280029907038286935257294626406394235611339457522529138280635952082428619801962150373773759969911449338371964620341217359720729939636535424110070305723287763200302003314884206369184123278540415641621670967747346554297959684591113214898911071748316914814728184097522962700372568885819651330058403189740553337914747111287213340110334921727658409961809763420097276173626545141550632761958111387210473568477283154651443488721983605462111421042270978985024948460709670195602742378534011061059542560449016826037816621838237549357493831688732599761378438119499139950143945560910367120602465073654700311008221903439632083351674185799925442079995140661389379606524162856459336537267503848657857840340135819678547260420286607376682848533247456494665535376503321621537211721837102477256790882840316565986143492977007788299734572619580351199735020823306483944093437333866147931660454184020824024782084251551078744096990468539595582885933400030423556356067420239452156222659279687506432265221926443708506781957650966390060827967852358016391233869939408581996234200719429017594524432008902287081175935840051398344159042581572884374446258184512419714851088943381992881038470840884775787796790406857597061733692429594624348569285522472092020716172326055181684822683953806692242085586373836804379617777579682994544546856646049822987360240834600251807620048034125645974461255341847279497343363549645635905072187107151755112508661485462388408890695345013619858328261078286857184477056098335269916465476496000335737276769444833044915947108669070504906504491334229183466011196370158351000169330394554130809829971909520215087672894784880075545673836166399699228736264587762360085139746209957238911676479311551768822752034794410391498151886928683445212147001199959120917175105789825465079133052853569416782966721932464275933618571353271635512378209460512346293552892997351359123793417790202932583976523250211273450242769427054547610861290479886777168883518927679964464521856670864214879706574797445286329157043634516280113836274029890641560640667717115783404496471338509195623597049062163212861745793117847690976382223566426472840500082580429455530152521031164027286675465177228223857977305057452556923678057041214166347839352291275244998172421250117041647832148474548518720120322759469697825362442487785296720012410443886725678002231478105063813976295261880244426539717461077746286287102991024804971362095646872721296306019355615110248832655261914438639244558592453557906545111787282213523814853972300892833286607782336447652369351780096499369002346175322834231625439644385061172611132482955538366871388610470317459927608603160844518839707511561673028625090892568157474806261983088756588131745756683516547752828245027068970665272000829430059097601639008668349454240398842347962570544438040052385648268433085140101332497658163591547944629343876188894730952029400899123135428835105820390613826375570787285182655279833517231204281722763031873772260886432585203855395397773445449899603385114682549096730290271835769950319943907799608578473300637921292109004454621668368767505673969567618401834578462580483242179146738222349471469153524653076116191180207564563625084939319883407272936727915331124725099534785023108173612733244496222747265315843166085071598792075916580507411395910249176416905240652084161324588305345298133818349847754723599055756868838487247148591820784474847416277469189311205527321898644457737786269143243726538405058648226823667255012510851208758048651310418223015703050525574841618124467135771183228695742899786199878702004649005810717840831976665069547431899145878401816434226464180146510447958009840828514434769489282518956428937923082976794625689307925756933811924002879293555831310459591878477802745300616626452907399312660659021757144349869756441975093158798145682949318042250758576603461835817440830483831782233018687071608917648946992476774642732686246879741026770246750799620316312279872777799818206475204720236346084626842014273349567282658754134307999723739368576921877023348605505116185894383816062482281084854393813774253725502824184098285644322015708611564552956717689788432759609887224450608190402007357944933874295826475139163364249943765352029401714706448133338385054060974898380213007908269132240724219515066729787693289278043907917962989473573161097229421792171043177262694040839937153010661416916278968090537882880034995653108071575173699402665725831511954479679783113485077749816528227537882255995134596310054435969341923297892886563929465541069930422046113120242942895643341673928948038079274018940727960047704141463284529901504371826673250606509670522695399756668420108716907485721287792277296108030637096522898745178333225199435053925555995899258225931821762471837596512416554190778040171162600033856492880230540620202849679892801542789107172693963775052601872918506093394916191149661493012993313374752746371322682829507446054480268870173089885871669811545533186100926248381928549706811815949861564174512954483599299345831374602284070236741379634517263353947456041342007121727017022764527110633559242714069086259094521488462687823269046354032214995087139770716228540144114511647893234444104660371133559720278458434501815913608257798661858148533693226464926855527394642840389307273382403827665339441990963603960792407911013369826429018367213606287613433205095683290542111974172025882647669318458732001633648216019001635316420058627168275333584669233118615250585430397097367371560590658549098556367530605749629561600932539206128187568030130328568849441310472039684143843922517506565224576300911195118928916124411192642961387978430451280109455875623332516047595715899988878270250694345651676347725108994389188234517763016525665832347509808201958709121848574243670745045492880514052944690999832362341527014465514188490017025876000657821482155895808942435326854362204694027037397681487718077844004000787705076094914341520003012994557545126560565744441110052491344981170261044033369856149112454141714084823335583013908250060016913530652070468605255794059953424038136143893647982490837784130764832978176400873306546801250401760239832063695331542255467016206778930885531780450727050695742455401237785015186163320123711081931505978870244546122639335100409906165093096888582067484991753541879188738975548353881850689763597452846613733754041682506943658464234262789948522275213052668462732115776022156331408841037675511217301381791250637756904488942250177614431238283623925004897028194831024326354667656309706184738858798121544260650954918990509222750834288220070809153316135123505161169236513488371585073760734139544331989526127720853795053556490238562653578901007403635877322614527278647656529490709432037482835493954081092031318081867979921950420960699072969375869877176135837042401069510341837719869021428496914464641872904347211345001492009300045767950154215561474155883889279521848599775916456807409300501332314068776213795323525114665704506439867830432177334618092724911110148680145422566349341548176810513324910503844805130468116428430315974878351035935525405720159498581360306337948849036796679751545715337553300147661278185564450331471792277389959292249128415472114417453888866353417505201118943217510824406264962088804855159608793608350103851576534355298466801973171016103868577082038090426018695454473406708592528944551579220516388672194420628237526444306885949786996698952592499162498162545516719445981051516819264656998071732873570097770031987456579180813567380863357351143593580625280398593926769050049082847486917630620576403568484518094291726987058954181508298245844070194467634092628288285423683907892913652803973931656692725589726750351047114198654531712806446915040901695643378557971618141020487614626882412193638340621828582644372762562979461151122661774254944187026877523763557209712882495834880370225649346060154381714799614723979647449752330195534277689373751340857208300313543239412169056072869036751039019427386025287539993154968037653193829178883216482757812835027212600382588168540409989986676261631415130111123508267781894962550991453813480556975406002140825015665352373523679115090391277344570052135122506162956096317344067552050529420830529192524477440954279476358809380189030270371876125764624971746464683997922446599379947731669447517269774274564214432790554140708060274208260258441613875992811816578396797129222272282537880020348466881504293530799840376895460312803765989114082057618855293217055232753383985302488328931862464421263949439156685900217340195707681448968127256470035670368538414006069880356305142199457745256611921018309555803074808776435909922000981364770408734917452011750067130657309769194565312446715111403392936207231566015409022895942802456105901933639453298807455923317529471681280362932043148164034685232950365212681152684437325516041620931421060594736139757918809541142109481739215254907261613337006437853745699251410350051124641059373456763487841128740010938426139624641996654143424188408349936286766989393784352482243205331130742579642332528892463417210340614598697655153652184255913325002041622593284196711327674964057682153097032525073874095034977414000019179688313125637098490893731941291878893608040942356088516336651623357663744771004268112051685345305663647914721558105794583130600717156393353208748190182466730526512931729356100832702641089424274678744328706085538814354047224472742267866058568811685646106459167520962843042577471992795458882786727717640879936983023614612557962308499860658774327493790384169253288152673094562477949858214825709894519244091945019380914840712981094534478807256526199475482564723431696188479346150278465676401603712485108358756847749107634930737656577005831811930892467345654440092561918967473169666474655989749516231419964279023014769318034848564611058644043522513237956924300057367735338322148985945744018173604018675647417297159367581853149491543987565022843246041222478067104746445674078624891979700546925973266372151879094937907570524044883438924860863433750914297676555850005202776302901865867961216172123036040318014521483975722444382190530768002458506177233849999396945731956742134316232338763510057088744508240004505986079277448374433317995054949901396249976217730365176347942048107859490532446691536021489558357833036552113615323948612668289665916585518822459118001703319968198522133419273327730494249040757322601297100264211845241115817309263695038199647860211898466708935622036382884244598536608582679894017186024086676989236222399366708423626881446348996757433939211129744341478859830497458240139821031845976795366430118775817681235761505782321851782028977779006194467478233735483881178245877637116290025922791121437523699273603968543100812300962425645197177263483740153343177697586308343284342073347492486184378362735875807569909519609608985565477249071547290054223811978088083538539872216902808784660426503804565243701921140413388637089727891798884077440573563448351185987725562751408292974766982130216840163626904971129090707997002869401989399491786977780016854571700599013719555555199846695389609156119938372958054857795468769645760746671639178552019991109508420077749558276037262532046274188780981680490790508404050186015952584546917228471629447954039213669627851733562309133735839442243741652144418359716508614953583723790413739517052339347007010782031174148972945014363027305445927331685179794925893187162650233746206794581596248930392976724553282191743516647559515803644566642876395423002247642446656166971418583107937996078957017091993315842148440830669304004603722012807161338328523568875809517999955032308328933154706524753025244892043123656464187335558026229407227344621695311867491532297135950667520537395163809782354615300054691389255411809886588045773868489842153144208092270753709233007289104360814918296377357691613859885869962592718581563760838048094710768497562807689850121376243894220443559473603747711248078462390368796311082974391630813889523500584646493871835135252320802778881949433256562316966450600669762828748505849836561337556523246126565746139199906600376268316649696566459581927215964960709572656304879052863016300546039013715017555219056786506551778407633849627116826653701578311825269930534409526033120735796677711868917145295212865157360646450237289016531566320631277514739287969852680889202927626446415825588455404427570891740392924600349923144853263462647287073175298763840072512068659415273002445202573207784743053207168428968477613402284272705840111327603716901628863519234608970110831947902354061145070921635519233467284164350991564765514723792157903099130052197392009830772944487640478411887479990943022233581659669349922253014337347126033527536516644801918753518831907872588130030095650675051828336025964744729003832617292521091740611464363928657673695018463635467244297300281874185946918299964745621875958128796099774506297097184489459215159215472865599867658288573292669102505416355407219783709651199634682390640817289280978711157939575531445424360933167856625609369835942031337736797361859605058389124229100757102004429470046211370468333223493976957497338822814127178364916768242422523764354985253342402163371464465799186435651320260193179700183224277498554199616343131991872838431776038710717971432887620775188509329203652019384000249306499192007780300753542763489148869638408272726798554207461701671375207362492538490048944511499373701167786072862916648564049892015631581245106025177020228762432847544077620246529608694279708925439160206949890822667429360079422160965821919783131823733948676286877665639999907365653301759222866957887729178107816242276531732721836442270977886070227000292363339953279156881835018059018179860504208553752706113266063564606207672318961967311570938907650846589720585379056644930868485124972282227953490239728978363107078649734455597985843592856217386942562706562090903519758432446210149018352384615640124069978090523693980933300370929233509232024653937081247840886150182412216602688030110997200229414437409543546323715829325224723650365760742954999527714789725407857604165714594087197953728384661842452999595057382349215476860531717817424242209875977457447309214470472070675761615679248599991779697479311045014693561323913868084763390643925744442611771259140915838637524037500323180263315439626311032026175943824493317758618645984430304140443147910771746649832970812178621351841006131396613435226675222312789924640783511819143869024259763273497611379374392018336931849471073861618133847769094312766110772797957188035930574904305312033911004885244908146618606149850564489003553773527466686806188573787814134699473799831417454518898951034577278709436934463195348295928726054208731105111220599100815686025564615053885802411448470537381113384903848612928360146035326368791976894445455749405674706839298684148365024066569595521044177664934907062047680578380154846592557264558340414754776401102865584023131903166569610388329691164359124535222496595976602765307076293695813634285097941902398731063438772412760976017635921644236799419435085184340355654940941917608325042358963044754012164812588778553485343074982879276538169603606354422778730511474378670820487100042302165036019182705517948686712383413691360276085655903382853413569822672794669613832898487065968871934001022308624195642927273869251278417887434912306745772676364146331805444179970008968718868356365469381194020447239270392361788931893927277073615971191146941553857929461011667662196285728175301226678705123834534638688645358164976954710288325317641548249099806012923249477126507511412208439379902497543064902909130859727832893763536592993478868900299358975049264349578226454548895995150098771976250284554558661111156565792370757275495629421585893903269793050785168119792087289543108598422343904319542776232293252643281876018070448596111152508352345985322708507085979871289214776557426936445908807784714858624113492817729082482152246568796004842742910899147735320787364834218608275396428528771829723482250643985096561371478372504879327270190227053831044677661998791291259291543581887579084972018801167060155698892230442146770673652382922294553676671497290614968201780488735974093454813181817562625194095284834066144460415243068121010175008495277050451822441686820296447290708914466460238576928861556118904677930084839126131723580551007145636842198981109229973663815732272572287042155048023996242265835419398469971270069057481067471587257631825357080237485538764672050534219769763018998185731327699987786035076991276811009975920928036463558101746098544350127528734712449576982906352713611891179879697830205718500666593697171235787336828636140309684529763886084190972344982791774871270147597050979539203878554468871383510991631529210463302021281381817758074874563509439234030069795078451255740177101970367571096158287357853203632123834042600799709480898656353410207329916026903485488475899911098302886197515996760406061636100570643210368879874187707414395967316869184590647241715725269175997800069681152906277436833709666882522071868999931826602141579897223223305822704833734890270496870926006103939150190160277785480507480773510766647478121129706597808130233002617319847812932737262515260464580473189484998053272484351282976777643144033421911544992540752996699367778103799394945827622404211205821611002337262118430616984562714578076900978155355076319798157450618997763582243178443611363736751064327143129390571981773977228139513710367644330779837171601710115166596375159686989968015513424401728327579313241495269814204206778449862288638298490555641873022586409317841910088782291379726974454973273044008253499797474416911711105537050812599634604195815131177318670107519017915653678517954450140888146530227501224860867342957432529846905323719571487660040695262480047040664995802312158562443920965301726942776443805552126784178829779876795722797741651150802913606484044624813989166719657470729392423348139912251191751852475916918934237248240832699680825871479395308962953926637007855117177631021223394592484582957907069488749344848345595214672941140650421938307609825736965245187128800628583741203337362260108406738918531349638141318566080504252970477874984509902694419791515886904583476322313569002847867729242666764332085138494094484850276482446971742725299410097248530316739178638489674163771167824087838065258619096877704301067518165689021024412001501218523660531316750566721196962483308709014916071935781808539755503774020645824205217883303355789180319654151588859386659747270896763996413098998174325531904402024441795421873214649803899066605030058687623238153698117542296944795870813026956379734349357322272914248135067334412662795741980738818532107907724233055895637402905834183527206382929757454814334223132189873674192130005993806504883168052690474641873976741112207857770205438096053246584739949798529294535913932984496064572118216529552315472602363191080522372045261762334373366850893635732870102450069289787286877429207342414340734777758099918885411468460399724694271852207419264458645149957547521175808333340020791725299879163192969825845271815145139235153323308907144058168200112860392578891268779552084326578962154607239024529192008281465360337584388917375047227212116789128181365292013535706308032644701156966444543405838975195738916193747255560164574580441954999375655446301700149703112056492139073077850857471946833675248387601077381994737117649623439757794083640411598430781252407392337571494723942043505332884731212457795468883297853150401619533546277632044370642009461005310534717444129648287945729366497097198326759475294332117481512835793838939282244639361278400933061001430910417386213766308080959162364243479650456736357947817080744609763103244332860197777479053234700581631865702145183274100653580652191431700493825276915204431438777311154668168814748911444694364126507767920423204251004733357264720428101160754700336062823356019991891240665486771626743418738486542907264219116805611769814087417006848695899496675257913499683681527630538986927656414911128876573230676533651846081243489260721658875880592785720658665438654802967856697470729886864865846460373800707907757439871878881861827797769167383822816222818480690956006636849899624091964508367870196863184971042304610713209763818275844670970986120678572644408203325204399489699212370349440033185616059106391576354824637044571480697773717185420570579745406356811760803424855389630818277492035321174025028179843809372842575199738779153482224183354935935114225910768579290429833044431268799402430537774202605507020976891603767712755464131921601015840337876201203231396737812898917780988073358693650374549746834585759694796477132410479264137151491937893727988299406456995444161534481796274859759672446091319083482367041702590857090679502790282340313866557483496497752504345134388936533998976372162805274425036087935593927107478951643179991378443473688471072181775683449868979966466800759062830944833729133595670608980396909295079835554510092310062879664797245256808197672222837793662464666841508339025695130396173908488016298562970599678793923725868686660010850206703893834289597217810639974602419454218772576259885625386392855130120829169295303574578993772028056784731198066097461351531853975222926113471721558751122686221219868984246618596557909132046102907019468448568030135899808744206494546683312192174742043009545597225551107381151681294756001530083291110784243106162029465088281163885427930345641436251098424471242454734346537857922277509426012415995000736915144552566993459146282726952324542688456866975887765534987482000171579236123040508515695997835752554279206928416911234017676401589163402403139041362872441007534313466954175093098541793251390518103601950199720653844755145174713552562562078539274104792344566241596328266641159197619568346299347203340779717059668960699332381111872396573140239971659973243752768447344440005175403624096594333467223845558741523633632335092843454609472990389862647374071116974828040041481267907416114447542229905611159227406387993195067739239162453200710198939126758508519765744879202777593657846124033422173916778778922520851394457413286806425299004567223563066935157337473251585341576759364112262031152658965802294210991853388707280781910225331764814353798858660383576333042184380927225137059629043510158877116454409085616245040904832515819515752004973008008148018723204719486377100089362671765679259204878869541975835063999139877344603017392595713371798968684277909187185911027060390268884791561267600384403704189853411739152341558485905185119107962728922731758565423705306255268703851782028460860136970251267008418919065700033293993002698283485699755222987631370200905673991141378095429962508902340178252792947440600377154682745986763684891109791326908511045881790407107814484871123581904984194772584288310366935592220276851094073119493657424385424124537886125600366771159340297024627273674087332798228292917122361550672112485929534251697330911134249472827979743675812042118252158630939078357632630488370484514836957530460990429341439129156730147246317983520399999184392294545785627399633595706803493683813897141698469783887274209927255944708624183635994074108664261707152027875572498640198038414087719359361794858429022283515203455342230509437202000197306012451893836196617515906988720754620530970434580795057535816846291138191069284788455421282789874373311986503492258446714453663713507344772193588104706567884101765022583006073159413005580924489721773230313091255404208746666456583329205984861159000607709919401656438070639298202544894766795689584685967842948993219554729324119678866155924533442055851478136820012445410193169038480858318969624575451341159807313836814011142129030115368555592160654487100092086623628661597009869025206025596938257964381143477311486995425166131708095597530730344782596008438925413146970737264135875679432220640149177936108069322850065272177369810156045669932773896444699681423483639563179306937443463568389491535179686031772933521452147705698892298054118233604018908271120102748947253228039837218891634138656719306648253930158732550359452408113940326257296185488042251029326445629195878491890867405355140629382958688141085847420175413800080090871450830072118173343959177221474676020662523606836163210321588554358313632901715829536900436016094512259017164836506349922245483037830478849776798518063619835502558053513757645804656251818074901670831968851004100352396621442039058121245671239190634706781679404180951520444038902163775096290128635844700802259322027871357337401581303843838388182007867840497200637366571133039237321881795833299280988603513907443281646070045827937392795240830915530775503932193902561728200750924253658778321022155279327909143308229520925341933871179155481536013996829977182054453087672282816070465238537646731607885009468945705427159968722415879354006585011318319569679256966073941314050628672578962171888543262306206694027761750873282741606436160106292796730177752579818122217513007352133499643659237037753429273807742686734667772704944528331131830716529136771142313784833175240722523831626683296737106831384888106795724454095788395985879795522334533580559795934058638565881431206377930675367351960662944048901808066015083814292476115360684699831977247259591300965263377339024053386370977827300436625380514639537011884763676750848503053724064150642419532783539927110208146643182081629248432364259140764552778534348217656310670964792614008936283448445391266062544581023679156984806268162317679772544596163457693339036674198029294716751344264091666153927844956753211956405669954090047809819554350878008659832282407158566438440612096090726566977676576802391996756404586694345837748472805106686662723644207728895159720259251426939195271074379808839564399856024779835434717058688284835438173192889661968135761009215928173513917929467558977079093369365284317350768875122864813567042389983088423631888203088902431861456295753036185351441665315278732031130343854661159481808091891499871701886655603912535292270511728777915639239542720188717976583420966126832430116185174440808910375953751676169682098502976075828243279784628902174274801524859176368180653979767043892729358765066747582729701511671797355906794511546884925141925100128948175795269986518613517537746222286587621790364712865948096902669579936511964639972223381774861596098088122067952077514636458293936400119909238528269730094069486572292820636860977186034790014029009804270458919102010824031292220793425868153550190697549201954000652995074610312660334871025730909531086341000250524612381449566125481315759103381549097816871154290903996605896375940779130307101486342430439275702546945389894850873629508663970490679679562385015082205078283495624068112374413178075361218522433104556229589193854432284964971516879972447863429086905921172017287895824470294148672026079939359369862609681236682939562271485339819923579048117171119792075478483149103942713143991236339471904866700488005826711969188202573290633993957425348346251274959639701761418604925573034610054884726475689238157816510235693008663035305220634925888619826695611414319684952695736064835802308195295574409494757993838255828881462623800817070370302214707449637909896929895763417106858476203263405933936341113999247493798613236711584787774650934078410652782935414890597969731883248534474613154751449302025101649008858893540940971380456792548004112930518211844455012844532134578201174206438241598334255646058388595007735022179280537656371057003415412231151381082862427034158349146069961482030237268123962566358338982081867480824108985610164219706440196593479089987930122003948372293957905110273896318545141470073193588903659522581515654532566800967622841146392547878024065409338136571403880635037223313751904760419327281390026575978568771482119353341793072496666362930402520026051822431313367348613366658933579735543490841395285818471527762005838077957842286056291940550122294083986116454891960410420993058287543261498000165508825154178331667757241069328945598975232775036547366064387861391738177540336623648220116603174454643549598202527209505993125806276204375225879919803271885134551307760362100768128709477066647336990433561497461755955524854117864302219835064937646445929882114529787767487328101765095483263729752537245834934950100270780920199570798328170887956651726538886256302792771953061437179966473490628197582543109680728787205423638661572807166186651376963156140211454089156835735967010144511709873869672855352416843052734225053135989291927746834101033054283996443175689979702899253328161382389609319464024196432515415766835774747892902165885744529697916493084447322781210048756399641020711140002266726282742636719730831236872034730625785194019592151408834426648166868256356754496779890165280694426913043979376250208433685087122733725679318678810194471174686415448659908014535600678497343292968356217008508710413783405186471911446810092639729706355657100374442586498780729779727754099359092395832729619990246646594559661638996767606589494104816635425246409140959639707672741255089468651734056445290337293846522285570811846796909351141264234932360520423394676411453591112565988878364426451867456751094294996712863421958530918550594251823261555385612906849656490162774769547462837549959927358374880765502284883814186618817023825649910687427225774587303050555685697840407551826236734135781729012062147634826969162212809142725067047322889860995256731957569347575243402753776651789084865659018458504237029558891800773508891128131956944598697206847161380445677716947229613757303914174144000304301641249878385642413431133409716395345797596165126358303031737765389801931524218472325235150686091327583334793411983077981488437434819378333746932319394776745768179418205123536968530688487309246534540634794322982548001242862913560101127675973543607761182589641286270952670078516059054773720042888506809235935652870380558194113380611798390463615317353899450590386993919550380839495701909431675259168734233350416327207149332817670382030215193647640058000738784561313188848739939565467914518408389394800048178510186998051543387095061742627435638263638342195952435026812256254820405686191799324343685662192315017568554258517533796761310574157252918653362061130030468907904765407816967301048662089705452906197897805987156778210528712995527457890269985106178941662317778079937312000958206074717595788284272731495649488358271426989776205500261976436431393637341829886145848123118714020520767395100504846328194962473893568252563050745969215979224797252818984097424464980054543634079251636174339683749595827059679922592859942832351733449968689566227914038483967491432724805637388540533433968914739239797208778036662499927474660536396225528270727465620856820951894004081347217026447621716818074769868798124483445685868551426563457662924960030241193081742555808950231556178769580941930654071293296260138220500861529263341874775061217835899322376157694058306042236344833965834565100866405196034808727576219016445299650182097427508917971515182021402519011843004781540046877457743850546344137614201386896533295019886637823135421588888407458512153339371245271425428509486028430026539116569797896172715859995765473963047510884264478903382554211072855220114368888079358545739139726107179338425101686504771772624505139573738115588722480368755639919336814747461312037523039504660229039845802771199884750651741529708658210486993733503775460214274725342883580140154903908909128610363626065526357239210908663406686438586413581658828217281425254643904640666479090349438959734824732854312218861666442097875666140210509246813440891300482236594460833679759805260587430911445880084817698638920447525367594736126543194713376301454401564548747361297771421062104927659172340816927858368600400978675046784945301718235756513242482302942287987292588967273114962762467245160062719394293305421178112947869638494763855227100272212869331066096354274231041403962197528929915326324113778285386850514943764710034091006886096346116858212513259170718565357073945444818682811043097866752356244820439380431929307707675514300666181821997972130971832155167089186051843219792469775895013197020718060612595488408293004309083336423075509567936060498255054033119121405153534369149970836741662174939450196695309438037817992381058432633259503351311841943103516292004417969343123641623146827140710554341954527265316101679577678620120322156476491698999705698918419933714652405810809880150019248016535452134717577638778260643850017759060663325197955629552142956532424885241647491220455721600313733291482430571671913577970414965332980707653459572505909871022584286533861583036082363599419781269835361695905967907048904445609002803829146382464287097815250716994230327335130711758787667925794417102509878611329017980255762772034938475180845450803032958848071271313107281106637336852399658326911254550237560715444854357304240208854558712576433003055195134505735054028536015887788344969979679659801478738299364457379451659449278895787173120369112394522607673904867032804541622358660219518042699735147364717342704514830191194776732467696139148768217283800952059429996253947114800186295846557346956069904095347030006796443770348251247106245670860884134987267946182425037691181982080511550200279533289420022101345557107707472247750051573542957101010644063882866107612297951017074172635156172599354787526450678454932879000844676993452612763573447476040830103661026819332735184038019301015607151215147937858031597658814654163047871544291829658932645486465893549608885601232835559474632884846402886753516595956885168197205972335739135304166476696294020046320467496520254418928903539664295021320983281667413887937631711383580634093807573679590959188376464581394282770676184019714433999249706032569394862390834571428864547865325095921097443038189559606539735267859002411670829898118260550932287291803728172324742743620712973055073040663976903527541749309941735567983244546611233808996025161850464664288387298154979786439994329856511047466488063031635180016732512204904801317316530031670881241235167653051970436497208162462071075669620756780685065483794200404949352141931830087091760683918493142920149224862985435341682074629386909913234238415908812150924389453610420132635317316503400723238806305378360043560765372928718934765913941479026291358518998584687877091343522398604613976266223513212279172665128495030952532179778184224002339060643341628348982197597097854057798415173481632326419864038078106235783479780227611337386226894321131598892242119152237846415644928712923778188432546696381122341116283110532704450453766391162773027573446826981619489243441770454015070605109880559844565220606203495531036688763074182622682937227853962926964227717083603692080749725418117944857983127106430125037618210607432528237362201600366423075435557921127872009739040811510499981679498115715207309772735609126382472002004701392833282016389658090754086714014550208496390627901927112784450662745852039094605047363661909036582320370135663881904958863299226639675374343120188984420901892932628026570990195411593285070052559569139027153095076493544918647463205051361256766880678292386153265573955215113273357048545492938380977046508999297646929592284765244396649167998847314457193810984351396371251223207096463287448034759248516444251694753176609825413526094459874162407569403086245421215537780969968232679132485728509760744625576284547637656678767402858336881679000409000117182683672991464842628576687722219919303805524515671738374097484308251672675016476435191110561917575531020310064293334383264857193356680890253853734562722758251736157127914801689691954755029392181381666193350810630249944529901436079104355880920858931960442294522196467984348802863441090396976378724820009676679765440468103623512283761644720374581958021578531765569932130337746764967165990098269522477703004033313363251217761864227778459227344174394442110839874465215649522320553689051962146609792203130463936984817046296565031106245145830962433886749329126059030412859203810088310215425890482715243028774636502292459348970204863706227530213441451236533960839208499865568530539502236135611921153187167261608328212839765607216306695627589943734221361846031180652860819268847511184634285006943878042256292143779656271970500765453446055357911537681566066771403100957323103233617745216062534339138278776828233827609665192715908532117119424406758930183597963975047063927818623362814849994028714062721391080060228476016099927411718267080471441886241201637633224421436747346431481129733313655074295965233006281693813557574129727092642315462304614186333803139617581577317017609328681375334957246943954073813026382554004263739405742719555389100239299423634247659548655604068215135501463835826179730319475472478956936562971518377644113889270048546617096250390962819875277759694571028756413997749896252202678236105670953838060209313945351513480623854982515439786504374714111818477416214557476841660372310363914599364959220575904785073642891289742741039451049801822893399159806128258441668390387637988441930405228911459277845023312688348418872403280654030921531114539640519851109875301021377837065096650949285756365582633208179001227865753812355048756917267001365158466946590257770642497074056249480165268903121448305275231341276862834802916314156849605086020857721399550650749484529970171250847293197958240168389336154295603598561100963840758561209428136464343144969873574794870548460704452748692693519092453396667696369583191149781802270906406260382127480914454451348644772210992239058735196881756440001844932117344940505685528710536870988813569822596587546627400884162651938191364128758424403382526941075461554242868847474333901932405281004795640409835227491970620606367139814601977994551118009635250465179882466427827809685810203626446989140840766937347941909928669303166793889489859438207444508638207574313991061158761918696931936048411846107063808671026010630134678746139058195297319700141299898622084479110209668258091873070093485632858856520027974142227077734290105882963301374915942964579709141551053718128623361578326151211281374012141962794779936823619884835800147809745009794003243933143249744274912729856364430755789282087499738523449041651296000905352898584082330081999364091812265148594040488552096783328673449503759447636199090482061999235613980361376566330299184736839872872007945803736150867338490635421131257664821841354720854123218133331209112356927155266596679974218618302778063407212496568040625199464543894860417701612632896114270385530603172246511341410791598779969511902768795687946313979333050136604478589808364273931082290120758506294825019083955623243050038162180186928128623312530253994903782009640171898176805577505656946917864418795262910786529833447955397508138647112492481947174405277403175807252874609638937627405421030400376345727670144882258518327654777452447316887902705273070197415479221706369029818182893258547474940869356804862749224399645412027361212871225721220194138194792124337540065640854657280423137239745331790094833632934320777514376438392298779524273173999122404717743256270506122204608061797290449450602611886685892061881574982389347708202027951577715189297454362861891082539058672391360541904966836172809623225982837050616351689776458336752852671479262331946731781954192301250216111329931683792792110842977996249780938008597613428416935596312667374862542530782884101416464363995603731657229290514337025925349176484347101583132746241383683829957272492428148618147663899968913019584820701761937107752354891164656351158367821810666576974778179681380638164597254123915286296692920366614843922027745864936971164415673771409296815787390365624029149314121483496351125218029878538176068003683043754570916507877075626779471350648202958926265985841864460025702956673126782130650291496400328176625036934331482117078431714642594373322588004174610818280427070028114330021533323762239543418746296097332389917419444533523133444659349353804957508402230718399424225871065563386446987712009305900878294494442008647145890883190411768483026987740065545825204386599385046136226840885118315500033605187253102157413632944931173116463160791087651093154024040905420599277972325495599187943878922622813997008166162381366433686586813396903668655600900859724117806499408467197600808440346981114566858295397032655087569235163879450504560903481463358915085239980481560339560363314329150455454712861211662619173669952036700658855361151947481357681294492239184609461364697962057022200677723247261162572456811090628768572645690660549289987708576915405125738102558563555080052366572514850725457746729892216517825336852053151254129497041994130341004300325703567631720318363683798369006641198613596065416225521770351719405190228103374493381152353489324645265301568633343629882605014572935357522961260651216130826955526404255300433509669744807042944425462077916574531482391120644208694352907626292217686039047464922129186190389286203606532371891626997385611276250011985001124564111853944211566006831481229595202583160778874264199108859004771265399756360512410327307299629982049058381245683874273289581852245600391619799031902103410112557970761346563545958234437025819820445196868404849725645830435307433911222149514761508959816800112558280360952067765661271465408259777379223281228157216891039923821329110589675866823131279960284084180186252005318803895303761819643541138700144136672453752673829082757822835543105960293897354202685772670489633522525129693296845953085665850190133849153810749417655777369595614247998628373311035709116915384502052795784447721868574326919719787184804099567551553149698092541012907643435598821765658267236000111942522423691970041549602359446003389575436435417919618923309622989772171792564063407915446954514839500911780438277642935575732716035483522409159652396204359380345380082253425475391499230218006453185987437567417275657122248603563648874936886662356039678905959184913046222892927817921085740993985451742245345889705823275780003982941474056158558907158139574139145438780667685836236892260411283492997906903089431771033950424044250150976093272144939351854613842045016183256544227737120434748866111133029037459699108688466138687522234708247542569630657505702328631041320212927009397015925152557523651881778405545879022495952854016244347339411817827618027452190701658169963835617376982774720068383497359689986948944333700761946998313436383499313775933615108227134024572170105783107145914191187812411898745852619489973698889900218798723209590987993161347958914572580823515932056946312333422976762005193933329236700397276926712242448019651930706075097820409203107475472180378086857257034227466326829431231300316981522013713022678133253761999780274382649402926598464940283583720511786621778965553297425335476283454677081372399664259623856985629717018990816196191887076994777765820420482391427923063936013957353878953504697849217603585350597282115361033490147959867510051459767086833185703831455749198957911673331228511192211670726016401043210753202614371657797249141366233764875056451758948932181783900132136068319214256577045092597015160360470210892166908456037627277624223382546818256375662761584181536512056094344591185635267947345208337549270529450534738832740175836428188445765417249021612003636298130913218044432963057565089432718630200785871074630186272900086282227365312266104674029255787932183555071448344953096618494912275116345690406095275323992394804574161113519880651472508947633638401536559334693969277191328768997926753942961881601600540922906467159145785944183284170833089899029225337857296269843382814472142703241033450439110370785865532458070918200742696968969128896515885573608174091187822603775120450545157502544125553576983890288438483472981442268714276006532321528193741539630455257281040914232302454581105888681176357372221443965111948351982504008191057047422887536673266442897301771777140101238565243088964676107614913694248634501851295116476230617438560966563761988696262319833581206476587904046607288987257031336664044135071564990090315821416017062095986681028649614878095154078220808174094657952537704788020594345214858525325072121359566119500234211925401962510363578835706616478579980437018845304952904895671988966717873299469251193871934607817797372945337369972185293202350862066217136566739832165174961952751739307558090164790011083430043431327840688942464595215576905057683540290707445520789197871238338249483384973895381521370583732012705162316327492965502371202026732450423903499070828206946612811228984981409127442944928724987016038197216208975391712256469631886999713830769221342823694870314673563811380902738791328857315613486135063918999176177206173706716980770094791691055817109247006402818340800110884442643848011336502734202678005100495284070066635330543298810057956740223889995118021208179610939286634740584251818764261628398649476493307631254653327724768912109129523917556554055925217573888351737292952935494124338480988399584924741164606737906752020444524431510799894745326480547429833462645072483270661460736677744019092577343771600756746073303134654826291216252053970418973955380837211769864246513432290833525089304383092676041421508208212749286412188286917788994623778784350896170061923635190530662460358550366480916304820576378628472019747956774079223621954954551977478885355120423208569053669887608472789537410385848053145343194889304945978805338222842781138390553318719772751843050578917880403666902626015602695147495625626886557062498181642959260834474363057616126532191385984161880731790612943950292053368154530363336716720724970379690522224999320930470701539234788266119603093469211903741988967252805693806431442328061995795054767128787428730007767047876435605343544668057151786863140886957385778442940814900930054084078279390506378274185039349883899464276874234298174799645955119247307305913810866242202560668872591874342999001528262420302940361556213449588926152425204888379948101821610762782824861566894978411575426993305422306426823540304814489785626621899784696579771689574870278562971220232119203916052181331423633201989646492933237199958080332833200711710141267951590537540899383616665578594295263248380489987794036991182791586415484765884062128949360663049265166331670538503538022635398592918387833401066526770601968129092123576823662427110257383518547037327390868005983829271678011445238771107812639173279134548050471503297418250640494868026581058820903748888384095206162683378714524625843543779603645461271177798080567335885637502947075922084917153826591844355042521706071852636902387523060038143593074122295373748643592578258768579653357465402674394642570205437437671678079356156359474967415037692978308400778097571872173235200399142758160244630947302565956760015313253616519762112123929938432008107903225018952989948132981656793854064709333162152782142421254261049703379708024167866606513176410813275459025375255387958166951408386876400062694990631704202130534050722255255764196034333438149462186321889214592821219522797620918339471283688652051500491406624073094995919592808929134444624859996822692931903283629282178362788989273767878800609841547365120417666339403832785344466479581488499606594789585096574212681135200210938117317175661575201069483051899817343488803949711855172342558203739122441316559874561904743990171861713593487669196548700171231205783361697874520602177016447649644250729876931616731421453695225208862584275819202781398003225526989376883075500398586352057000155457503539975100907719462939979478639228184250692282758706478807749638354938215796107047597464098925326768297680096908805702906727512470466164191640012870767998138353231608847131197720282062257179440762898406784714198106950258421888282379456841825795016374252718677616430591275597114630958745522508760300611116846215139460048982665484065819853055790607897546315558453432650386327396767952231604101574332175603657146131745606265074705508876638307711000610866470963980795717364272065218875408142101190792850777043907736315974411796058299878116805483940321707733518437243529396552120782108347297219247948418167895597227201729999656954806255360766809259799423095828131563213314210910062540954556979533302726554005956665812271480030869944102755336873668229679222769685433402229819892485771775368358408883967055032218247239522082682641349688256877321622357239460402751758608986484205957736662028735957689758374023095375974685547609579750058724306262297016491205038191887020410200877592537273080145074900583625355349292014385257804084938471920813009038403369536248257006321700826276408220515715334540128368130086889262178721556867694711576364386595251247264024610869346233722133129243518088778800351648652838817538938328755706097154680445266916135433331974835162829784553724316415565508002219828526285569304352366364153968394720624697212870548821867910357596634876781348094151578106354150485691331444640636611384702308970283229752591590233981208051546386174831222291507189498964070889079277437785059008188699162802053856384238942151907841482430127022129978216351584732977999389095705457680955551879516263571913009698064202766211955372240354455081406147228329765823828117492381348936499567070717120508150399087447895849342482786056119806894860606492845235814878216057213178270836169551422557611263625097356403829030654749888447120752143728450227725911865653299832035118533083284969298726590511415857208231873663886884605525951077859943456233439590792061873643224535475945519684780501654350857758904293663727895836572607425694122436207392491039886389215256339767901554684467259168015859286351768573616769774121548985124249772713473158015914297571675202615648310085459552976006140001836664647195922146590229348144382426752323827050940204508471887915785526684893154504821119037189039786815512746937332491414962308289602881032718052047744876406155390474910238322492219163322813997833844446959412208516325669138607852361977121773082575449781168177652240582258067155702880975573254587413633996468203191258429995700419816067785006582441199487366510293393378211100872521078017891708530716777822535491239677618231718737905699996679747854962495114765303581186266072344549558708782634546869157866643119088047898307266666730971875854343598687626099139371828596680157781154963076325729684724145089743581197164025998015752898651044188649605214151545583360591597482402039115953264934889541829008234355490920142951018524038088641074437169225586080512105467117033229187607476959259095238373877374292665110456151332202331036338058109114984179395572645644989720668498496995138686213852466128719767088451533856004842050337530358855176310205886444820678599912813485604475285146797589038695185153541277937892456836898590802885907914165969643253824377212238591584866644221056465344541811010726645008970195772303270870995345013655519535280246133887602222731822648313760919864833556881820548418041321063366564384143712825674078168363432638403488230465576911385619355000063325828367068995429303352245980803769940712723630555309065074944067113570318994677080781857969249970465507190502862265946085313278622606067496728335533499503179111184232613435814568107593100177932950977693783460542841075304657265488540561011145223413424245336312602084088998329259618022566736460213315395941512462338689088336784570051901226684878283243010389644736090832462784955101201664763326302500349150541394109601203863671777126831986632240189250567331785267539426549103382204053809345950647075787626377289056326895957588825591426493640018562213578936696923570779448440249542272658708998728405635097512143924391376983317094838202015240234753884510748780281542778485203625032813288880959146507910715233906728904099247095983569442896281969343654039108120755713419140215774000273960422521430953121534059253681250851403387319769623746728619195249997083388110177221673692026094726843938750019887382151466248773122012038977379454962350743929519468448822827105633136397443733844489246622551373886378835067409960025273192078285916957402079675107069062900799090571802147199334392777212095285316468975509289128678804063686369300252442720874212212571392683009046288623363569597774221426912331614805746906584250476281708186032524327119006206969829748787676220819652195151512213457283257163216711851619334239514431304111830200131800087980394142082382700749348463144718847758092254760969097430973170406264970936122819960672553028943820125240239762993203846055926983648685305427481104856376575988185110297643490829637100680441067379025732725792232724417414137837983935346099760662874438418813777347702028493825475607770086156039659891528857608968929998791576764752229283082063257503813952966694690782180962135804703416633364840728408747908110625906814972586727221260729062987631203395559274154742325907027154390092126422106850016500762757282764109794282116435089264433797086216572055127093921129963123179190584063155485044315365256939373958025506304981640909873760942274399126894740083514655182109380133598411857373157816533957681185420017867770748046197525455779512709327410938858936991045381444602497027045709911689269943494313853370035267521854500752771272491843280574422289117806226512956462639485541397246527526815327463650252601975862748501388181964649236696176494235250810044714668384545005839483589074100610829523949860081785991723685971632822436591301426556108809472106464204692075288221648351579673539230891821869822446487336557876607491432422433120472031446985679325566694803048177079678505691543447516498565662249551974244744947020671281294884704208867516649070038610907223375395987052761078967190900822265031866246573590527509060150928935671459358912508507817450822637621939494095015216063488986035490328214483198691781919415105987335026840898871535522196794087615421134994926353241806924423533238035460328930840310135779334115055365523423638711049404268590466202722360258717481307403073767448192397425993070034443439862190299117110728475117839213999277980996003080972058465028551520585443166330476747047457720147409427641717590380667262645308429100690825055504989101874537272018906537155344779878661370802918466230615128435581355596712830963380373342891886956950888824302248407799092728436696742598460273478226868618425880736376185651536562144378838219101994519930429472229432163207805721990486884226428977151533355411987124776432890155699905563282148262208034247830319716685530128730058303579365698854878502620453721539769071963406025483286940432217772550131208525177082464998851229651004171634344778731048368871080944847570656602778150335105351755459085800808510422895151063132553445814611736516582765968661077643567001863554228757441916497506352733846801561895710038932845401553586208556930250491933792584073525262298413201352629505401649477058057082159020074354388763122863430395620731548046314057477636769842244590979802400279951712519024511041774862956866542205640584671152521138113170852191333933099353248307106573354750967678062275600843182890576338491470612207154017506254197614612844777294417134737795617577445942037142152201612082036215991710113864766150679817097706562822382173212725485709445937515709083812248904812429009267048334839035960335888187091584091395152722861326805467026222260061202842913329413179702309832073771855175955097813068943541549928956566371385343091413723413497559647920222107924081320088482299893894803232253032376209142841831951852320010494440077584821561590352933969543417939081056440389335113950134844832136684222361812748934970255788722402909145103217559362418813651129300191628440191300285848713222568814089973182063082625393706673602996876252291955508136256257311284082651069941935591218277051498230395326896633947053338694091597977559503006467426522947701280852216534604594656890650931103928535397226351333453389792436975470007512008529014862156304775418721475228975957053607406716142427019514283235377566931650827072316843885633650526058100608988982467889717394657986043113430619730660898314527436738896391646177995130938054890731368723805326536943178204735794210163718770963738938238111928546385042217495719779073208479135825170131143276303109973089749931776480302116684887009921899915847952422861669314126196869174952664342917996668831793790733109252646858917577515475041382574645129081158349251300588419988451031720124097342021774068135301838048953492841824613136520697637977688360244558384180029976235321518196560479575055558849015738504051093578770339466406230905172950240515338580497950365568428304983033913156914751672141602145838686377379441545710971537577861360134530808802407163306624530367756733459647028290540386273960256591883766688017097783638227977623911837481708260232147420168424694095067760104731140419527692038622625529513173689961926335925526063119754639992554851458144421790216274527439790842979457225647791857555380628830536949116107909833270749732450123756608748716098641405063244274985320621673662905436811679442818635851902887982927607151048755716113972529623648963078308558120357336749898141531532849727689793452012399625824097136559713397914786303955387531616909762311304084847144959477058412386529867950222247939258765706852799556998379113581371900269000931161650900517385071728609523193944417230296819306525405145109083550418482932054331931863188781433044319805539188460040950549607850016749479561154477721103725692505737126868511318962316094503415642496959877541640787518946260379935540756543158889890830514722803740669502737625379082557607531541516893158755182907365118491323789318121495773267885514224289477618987756710648168816025926155677762307437030470323561462186835964567620609642874700176715744120977145227907562623635502974006285739870666766301830615919626042810831326019923798095155325042341585518957677444094515290032844893249323092732680079897137367998747716176746311070304826166047425695387412080730412791607040226492934351083419963908498083180553946198457933149841178296083067643478036785232722522489894157607836013718221251621885565850293284761089070469551302799587063495116144650064101680261925577899705018074046553477417679633642675727816347020594075896596516414491659408204123248140519605605078739686971273747730787105790139114241469495779922700338487295105885870900939504001929129003141999416598137784270673442483199800803139905767200726756911509288484302744845981645058261114713137182299387399352152964635766772608728915092342373086250705492703636934015653882475230482431086016084794043017582994289200800221158894766983456751044647638593576988532560215998999639334469092359225309779233742424467996620728258234869311599182961375576928218406458881211690432615587609330196301320400060804434939516986985027884594089692685905044515845508512003156628037018307307709067302394007051443535446539550875601349527651287763670640832856344680629650001578377766871879361804273718735340297231470938397903768290915999334304871745891927149483551401807050053106537848372798412269404598353428191691735788241255913412118632251115660876622541956765865047332111061017232862397745320561283398343975598370203450119931636043883224576182995762717016578711285887166630057206404675177377958177098312507964090103396312167724964467815369527263776478625260907192454727897005346141871695516057013055087605379679100241988134440011671457642035116062204396338188188574848568930733105979300925225303215319692220680941091577463660381876957621864784511133115141898950549214444111202346484104935011212308577484458330448125951047909385311578938277275492715395142095986921171850853593586919901039087159336446197173564185165486753558287481726091572127983176035103571274732705023439887084864122735388931478899900414359055517412099862195907784096323795657549047243599258907413389300320369147308945233620960121038603941797505720961672834860926237759587728150717434109225035054570163759051317087244113530883126412915542701124206112048072320314110771006367512830908422934122911926104669844695206597655025570837619857384588665368561214072009515050085660218221967353090278162255025689271565953827331884823480375103120282842439300907826784667979753898342140695764883100288806068897883916940917266352898698697774464600536395962469898183992110797238504283053830224746710706485221935228476487680224504967450758613656464805999424272570401856998187428258000282268422215290862817666400464554004569822972994469653927879423574817783657980412657400310099666439774852264012341748562372223836985394286707289903535073696864165204458740379647166643442996838784502040677485718180501769755329100985695471875996224347722820765597875246333817512031130783542374234648142446600358008062830408492309560195147723736009612646579772337468535554463444654273980103813344642183707810118725945277049387276015086204364609279862721662967692762889060577481699182560354150215246361830611389031185748034926209345561466382475941584875236470222919117157560327086022763506737869611102864545702206445504597699089179455125480816741734885479967194880822902704455246484673758452567435981421114386330642583705474760406930916182903931019257721418597259189191214177958729324574443327881200118182138633863190137148688098291692251193789427801090781759042458592275449243925910553303065174463429902397324190274574149105459971704244462815419160521525537968939911058251029783564051632808748051158466692061646072221883154971771115865551134370733835563481742776554389014500783878165390173720685976541071685600399721436529944330471738356189815173114907682609950394540524671508055729938629230030288316712409192230985116218053564609145052239880883332256234417596355971382098888621040854490828694079939413310539680413605457856330473798947849717757739997439635597842856513373877870215362522521670024685188313524525876288665633154997909573116736013473782028463966967151529385060994584531527229496834050798479514336542694618899134735853790082441818949109675736274856789436316089913675981419350875179641469599845356612193831889990634316585307801547708081383847836521797582953579977926803391702976612103896043864999573506636349931472728268188861960780584798842256037081063357375635590090805424818376104380665069790880398917781499266072141048434312584368027375347269712255935656874704109900560351447980197523537379951107225288158141005972997603698989093412825775895160801922809206886133925153457369040128018807599273371996792450196331728832640741142410538096922499590972127901558082627079353327029898224388163207630329456621178967805654688351840967888544956003266994874750680282859142370849194848160236072103313014595358868763307283908460727444688485923453606873210233480760379785916071349777012751130331952066615210939107120682237188642157005501304010219151438688308650364035557562305826976793542785465576349907086497210227080078387008192196562349643364244267410081458895734113546866084785073322950833560067232700249398381604996708159023024253514378646965375146903549557936291705484392790938425572816055047913891383585573516201107459344528237706650650114622514374893595618117984270486959645112300285554624289822691731816890545652278340434536986530886476620021691034023004050969745785204873687412566637641930470960371130156182092129708194846979980737213148220469110368094295347149858236262117077179253544511646745344072891331311072566333534026981333560827744411650898726288489077477943304295122450778798765140887010866121106027683786317355954405822504675185575643062342418836100345237682732210838947706145214087859898972157220038575788437934871064465298352778619223853919315806345960280646434819827137164241831621594726886963213449680409430453146692365130137006156393543911005952744184165537732114090626974226008907609067096144067562720720712988968209051306833137394946817692774751445928458226123372208365583787289744204548268241894467676748944470907651740636745952395376897740068687603496763358816201632259630874021240595244623096487786898596553458673644432461025983814255783855878742559003344534903372026519050724700097534400379338169250224299530047475070929887688490559834333598428433184588171224638446496453425951538020371325326443365939502707758057616194690680989192219454557894107963582742490724385547681431217064519304975930468593978112716842244339397096680036920681601347944393139843567544043557894194387710144909096985879375369596851634960559913733274286668548374656544978755962711980038539270128958046424612385642155078385477400318022658200806254460195890811453493478464202791951951469907711312519879861450295123819071527124686451013221882059659304849752056120303388186455474773815056011320262712973014678364794298047527109705673137276884934249854785296552188946243317821976893564323602447925554580555263575601226918835965135635209571284792395769669765637694176042366575108442847322750093133113344079830001679195054691683271484811430830061264459557232965873747667395510534897275257367941895640980029297292922318607503505103426632924543047774463849362164689595389585099924227915835904761373101467120133170500986952163533636435954517489758245406438728547981386332366488399447757783889265305495809408899419733032008097358940593911358484633355727824667072796310825130925139890712763712664730052262069399070647755884166922502986965894164125318426602102254486100899465393342068633576088536214649610816786617088661673937452871647786369286791443072472977018099571589800720987746669564970227451841000858417667753298200080044809189628538510784137390968382960115463543888035542467848132111125379107326999844951959709670430856296919599126508062101894287654021498626671548605790664287517021762102557391303191505405408123143822773792896160132747026360447247754042065715121241106597371964411047290005606739294407465402827004728503247502209295593106922242055247710291130091512688518137263294236951050607148000026989772991994705850177814330178407316805593336453653022443020682912833978595819387313306100891465563887688041688691369196525817974116018748358438320628440167343600620339803714855494701343805014587732115410883393282097306468101508919827462254580855816069433952261010661520699669680197411091967973638653126237739787321449165026755155921990629975253986163456553781318685073377745508123715626890598542890028718458764282289778795497538117026276332393890353845336323664399793446407638712159013792854148531035937835874049056570592750172177719533235175673797031445827694583926701556816720670828645512541966741152204603445734342330968532053863963466368826412365911299224093366542872576459900819810935070357135331425180828950746004187238582299388027934573578521437780764468622266315598870673714765123675849275716409179272469665960482657460640612541142705406723091007312764422844006619534911589024503209328091825264469256761923515785104916516124638316612969466079606540785792164518221613280342404577602298930930621111500304799050632258640129206506306492693834478119227526235744943011875996587742062156401875475958065333281862180484908754602684537774867177646951726713631351117621078451763337517905967629845912592862737178240322637975207614890993160928916180763437920925806429648101037542262907332011529524614486367323021732302621486128395238659313404833109812560501712594464241568617231616213896823931726451156696826513439570938537732601649649389688340139684568453559027626991440880932894200939678510643072690428568477291399444030661937779688638898144019294098825022412671101988457168241570204975560437621751416681640231175135348604292307580629686630570284788503064902740391483925048751083810573980663287999934433755454476371335576376084635617606506206124043507338044515875204527414606822793411596486686981992110696530467135873850869026927057764723017334419101388825867870810700651408588772210649741658145431768484797673574365274122758141238171543169212296762833446921668239051971831691670468059819034489732483179183634314590371197322133129747759196158360709338822964659713951172413262872444452991091317295466223176332278832286104329479520449733767100533776151722522205052315069442841681001763900016926626334278495766575632263191636845108219076821281354887893499964577637380069020898913114325250698915549582309776478371335767720898591956903592352792505448002859106074333664033955363307059429309438150817297972329514711956566223931025210872252610615374785200970056641572742622554413596692366309028998565773853666088620505012247892028849744327058847306848059065437158833001466724662507240787358715499549247195859335249083650289050098363881430334087295385579511247117353512453991866289877283887372594700749519733993325708903676697640244159847016220058738060254536707300470236037207871184461479095059059190718818948545637025631197962942775844991803132114299393134688480259336559284615752515044092411712505251661713372313672890856517935860057423480634859865014949481134732247193493688149874413931803018759627871430156756475288129627902037466708395358280322632045683751350976069586178992026906935360820301854646860632772765299166202650226205538677501436350308432480630823104419070266792241522036547856767795631686794086726205443052174146921447510097062369085794811157655567985090397404006528774536707743780384655799249561898714268981996482358409265860969980815794963246131092983309115918260548678005320257162679012129839598272634710037286136285366647446306694070235019766964584191602200030453804997726148362453272909795663940502382859586039308085356382255043830623215650307461060896533112924908112157802628591894166563619867962433903358684267517116015205247091904667666014163540026053120672113510355664029187285774304239614305215118175597665357814472610610831352761072799738273650427899875744164314710202257390719361108580159967018804083805040962571368881542703275465682641239749506896670460195699577075372009679094500639949935203033317073511667167417769626559731193186208372150498185136693827763596101826370069595582456325150928685220673064381965087188490367476873729602499348533505843961924191003963637568499373143932125390548569035594787398914097087854091743153575223197533881119023736616015255300375614858876125088701562707122960364462397265190954406122683386916402858208016912238537736807657181891201989475220677426575743029419226018761800716248415125852641577712840926837399320134087559564310898824400097248822871692056124220296970065365627842026292432965813584138782072671770253776879441375326814304208818580572139378576148003051470534440176740427908752523069011915679020099614461204180837813981297491659718033896050066908398479599424968521177057443012021214206105297638931458099330731740773262556904732666715632791544824852812815852237345307883052087372293729025765390251392781726767588433007396756886870340337764327180200636614841974224177428406445421301608988594211210127096852406963539943064736472668394310784154059017804954839536072413532450170782738399924362834528521548574386390460321956248171284215370317340693356129545612964419577286493375153903561285276231452919835140674992675051792939920204478234437091958688248820528747066033059659788025616110969958605254402641537498564319467154800264804750017706313074613287096296570006164684326385934326694712202677284746309635275374711992660483237432790960626146612896096663553700849074880022913574965398507374697517290092696024373346265974107164047055046352665654869648176413482269025934413110125529797641958388894249904750096725996078861314120987499069291779666510373186641790104626231163367815234758210990724161879226656587099501126186695055865697061869814284321551284738438681039447198393203919642231239532029265669543855893412424147008385647240729369968190030883966809183183448307580784150745311729485743259257523743732522713858666494759430629032161830788488480311916687024995896543204044925690741435751316981786140209831590693013959845529022572662046245485046758416649322069306351703728050247666348659700095629494369655620560542811607132812084972149002494059549595947547323978238517439027797580305475619059517991498114051187878095669291454471035916064570885879930356676474173574175144056108393325955471031285782698265777843139542440047194559080487849072315758585918895441191645533239780382505839784299294287537285520886245075707631150419058759054696575451392079569903862474572211583530760028229901600970361888082961724868001046138334719894315341296175270142976016342101800287521818707158649721212989435208732475518357691370696911015618065154503608906359133891896665745021298956995975646947376071437354959050319101398720913103262077250153281207608429886581861777037933906050927383293449917503383942146576894869954348206826687394752922933529897177289391535765032053128060867027127866774068177766818585322221320853011964980566991605380533900199933856587056288410866003906481088742186137217800894187204713293930889283052703335051444878707625665548777313851745944289664658612689682080767472141106701977648895671832033596380881555697328419440618561094305494316022477114691177694668692701999037339916592598292490397188691395089179247013061715591614506045413363870385417271933165440984063864940218709558330593655106861972843708510814808986691167818898977423958549278118719803538805222700548705428343474576160648583275629288863057612446584791879280785118704629306798466744348224971433669564083466074583302442231582437080305331962395581290627954396747981164197092821348451516283213725225918639000604312288752118245372109838601618790790221072620457642316180562541331419989950279862272532551616432116533159710627326785229877893030080461629684745108823486056701722203002216756658489691836230839026560132772509004797001636088430247159617352405797368286520856458018452934464924189968426763456217525769457757954995405108533129659614877893447940680321552247970522085532740159423267311401288350133525665165219829334408285640358503009253778483679177954871885798019899905845673313000015406317463832230279119018142130177501622203177016230406644751366997260914724476156349651272585903156387438406238236487442168566894069245890593250121486734778420321525082606785113885931845816968079888860262809333095020350999270475377487491635620908107786764585512271334576116211071231560579427008897068209901804453215906060762794772721828832657425835791902505496310024920655341942704256204373686312161929555564883286522273567410865626707949663153413108842625653262713350910882582165126330545293317527686449439912020372392637989869812408454655118398951203879151480727689403311707756115367303024648568735264873815289751667731126069574154280778765825938009223601871737211471108820532931761930872658001868116339960161812642661520929965766165284701233190627328391568057751317110455973599487223628289490413222978476616563547070412964639648636635477329320179185726623645000657899490724066542969510397782738176670133093683064524496762306093506387640142637656502562080806697143882872775737320722043002215657646261193896219263107666932871129630647682981769668376258635892028236462353638845113783079206372737854928565403486094505437953333073301339046965030847002908733231701208590702863259015449072921837227106102860879434221130979705430928715006179153307256576106452752858466371193702797816948733017654027200494328335873693071279945425926163711276370322866045210224366502344077273841750489885021713390287212317629406493075441877901641031999408036556724543287837087533014086875793598781340673367264984311442386541848648096242742113220453219272511832269670926906666083182651506528219900063944467685472992348470262957379297240772763081687900921799301274179937203035524184092378807598706888521391510976631976320110657630299664220877014958470184202390701587567339621407115566146561617174078944042700731863393968124209425996739885236868756698148495370930149206481093685440653345944122977056905314126401235504104269860881625249357979659320708756734629720799563256636634215434462034893846960409109658023304440729603808814995506375945272174800140874879043246550655936665088991156191398476885212579098389649396660205546894508172172022139432899783508522145258288591048973533813287480849622148760090325131083125216603454471945836946126609550497282820680060984716269870620374781950635595066122485621003820420918907026702951246862141698041291213548160113237029930802277587981735361198187992913202719846591222594661254232610260267676926788929068617636273014987209954318082344592266861088425027800191720608185470332881118349346383106788663879336542987592452200512739257966983807245656077274502238287486888439707388187009217185536351046522756218862724132273312903303079822741280273281243753145479808220904945431322252810968581860304366649469424066714248747010297674154402098415251392517414740378467667588268490061737220744006482824086956649422319044048660458302555277558511827814553662307379428925604846780716678409890062562413455961050702242076617785457286041422617388214710210865299396741062581286682851520084864713631106503638878788972274870321710334328221840394447623775638638389824371941565737393456476207282725152756396989771447911822806929187177989353767538627063395185043540401501614852347264089665405147970977130595353353381123090095632932893119548885931546093909526665587394301587530612160299496788032590066063428728675123709935354769102674785678079967936092859834375612214637187155862700604011634695626846267201358613514780885518262364434567092735045629678688889438994797815552805691559544070498970150385851939816792977391522931095955938707560923256565579444670265473661428709073838088046397075012371027131356129113188653735119881227546528216181644094806107576504942695482695771075505410559697308861093559636603428986808346628684661009324722650409859385010594897692043060297468606140486984210819892485743719455123011298598485857308629183793371417540453186054189746225939662942517688481459708061173675706025596647747988624261969440778414920546904430582231956727442765616255287534087851403125431705847592164324180955928694989558753248725889384506691868164218574309604171787797627232709031055541587802310413830430509746918294340932891432436365378359780743324872371394505873994836577565438973282746175788008465760816991814479368427161148582116722782748355176214452353330691597203774561569043513863723100788871782010602356657394276002244689720861728334808761457867780657533773854859137767039458295342073673461347480088050064218613501069047619361239113383743614814599494611092219387071974745569352380666680890733025745615787832087620560144865619446259635525026611324994927156694766757892578824696750742857195201094784834203933600168564961339945484737522666158804522808903112943138921822717234035586812753848213026398328608490871548302543015413212833383099691253880065427969025586114715252320556037903225675416128109278972483395296890973410178789502542923083675883440740910954141475044718864197748294075711252170971936143749658659944871639017272082561862162289020668882649511312601199822174889538442726206068167659540421946385899988910762593369191493655633388103460244807927832050031688315355590379011905134582328747079553679409608353704776197176837025376856155096613221930614469674893120692145823123002420528790988316336143832193818895423600759843295580744215549592884378310824964868441151766366901775701932346812714927133548940145396790503695246127992434753197570521156125262222918548027166264826435362279275963080712073846808593354572331130487374116279871811042446957869795993647293090617664490021771016946104220894653774096953894403996166025428114657455636518835782719319531731994169773355917319019037964618286274087137636532330380510904533772158522544593591866530879042603938580857056424782302034421607720881435122417417787845110523673791484105204510231573849448367226111170746258565096580545322257316542337627729929479959052526269995245362047378588184812901235217844997100905531755441803617053516164894082913603961972293465235528297524529790298833407053754349662812467750532798778667465219605605409828602580342472730541814075431477492030154910298423020860386685929316863997171469912893466452807097776770296770304546715453500097462871708039424467329886428032452478861882387945639928689992535277625426589050769309648840870325835485287976399063962895928629960703540123926686664837278984777379350121243094901959571178920521737009205244578166499738218368681570218782578538966448493615985172989762835134614783209411060269655815332403935727164969038847090583773901032040948126070423331757734641021302988293719655736377517766029906871617880539482460201599114882483778874742361623775151188536560537031786829948488695332126564320028745750324759392741122868468299812883534559552125050766190792675894084941622915385374452016134034746339152778961364878945003772207499661875700712514709808331415403906616282002611840063065064759877452510496875356650287182669101189738148431494948007594270044340830333667023284229223023876548384879332779858209296149705976158918067045485603145174762734848073984811523425119292507041594646440939038794761637736691623126690949981780962337292543464979278257079963308414217496841857790755918281114813455171891950930039998266472728681609878022148676178097106961076414831708431556774613403932004824904382749856900770757085085954024534440935542543659975987220642102040010725381579154308136815694915083334850746443947637199502435879167073694142520613796752255285765999249222093643078015046497428224052232489427641474191988163276254648974778208134846891107607026875500175951824954927956089946921829617649081966739063207527455452233165073310534477644627400895228860041089980299101857654545253446834479251530753523101194810206720151841330797389888895977715051623806542794289916075744864689993332703640603173105383285019530424133489132938243571378066666543889081287212118595092116743150595500671127960898972555233319452550656621609602734833254972703912769188401180813794424518212953594121541861751042652125663792529667089911818200080068657115998377304961960381535850716988783965222535978463908936838937111124463118284067967208557599467303956344957296995801177910776609610541972672292129437511397139950679811108502629459451755170449452277856735963818003354673753178621497290059859963935449103848422611941710945856216784027616139251281268164568514190029794127669403216698472862749209355973487451407537062791004079370920166217499493681435730218722443276729276281652440219400819809141001291044759718557949656087769723591187568974233895622103688483910306105538995304860167227523973795885154119807798024527672197944722667758537911054305171806384382016313060549208530280192852814834287726964282551905450853608554958569658624863486069128974476502413789262204893893865961033552569718415710344014326170755573219693735523991060782335622730898124684751116923770920583310856490496805429768377166294866106006329642292039049145039017366426991379406059474308232849491819999384977479799043230768133156778250852979241910091672998173976570566557746890371087526081855445726557563532583554453280049456862686301269967927913457995890720306757712662009466008649278109724648822105768501046765410404478198625268134980354610961164855857555209298377586527187866383933200561063422038648319542361255187964970003044238591901765395447029411177110409758709559317186642690952759277233691662892846878921052147756095621178463951229524054223184070767235265260693721512103678655506411301995069132409168931012153296820740973817573683263191864825621382405859045798435023703201732879505784819249122414006794516087473103530110593834652653793494714856747667390719596918757839014464401843447907260112504519880236797582173579841037006989875342652066980304539359385032194059319425325680040265715911132872885843188159506192128408515299118289359143496076873119659465594508292965920420082480141275637314958134577180073951654263122924613442906314108326475583889068291729355559811149860734754694597823627881610163032262937528489639728333061512718586222968646671756263206018030892668797666246596205510600635238005490863846859479515820072824741878506774946869860092181181345738619924246864959260215712951982537046532876794889986626456659102058538438359101950500628974647794393357226982459011369209084805535077513509545549963180781659470230215090457891964541567434599387119938078877829587406130599740731796283723473060604190966529709832212108335101066418287325032668563489310540747372913931265147416638748624970673377628164292517630335758540699732591225745742444155680935225049884377438114879339047829763961089075572525906664521204584106786188343808598404598921377966386458749786135444503125475764397663832105835428083229040145757750594444354919874880300325572806027741970693841449952725899485687809648377113411233121827674725174473181123112142659953927034027171909928853860022137651160757403543222881296373432373165833664254320442044088671799845670400689104218325156336449705716471772418905944281340649294518070990395362730943269499940536433853604658488258665969836196535780435443783562746454439969070609875863251094549152239578833271415243619138089616361824284994965324189181106932915259676944718751576365891492509213684009779461420631960638657272346735553472108015617348767318579865682048486701607107371494516879916667029580536118600386500651599775629659561906439664446696226277307642546210552521384776080514500613303873550945654235549169171363084437620008707592913691708746007908501569420184967599166737824875757883928595553801799149803081079838353021319229272542400983506573822919827122382997029007749820181619751639856414500124211954205207036113100670196548599781639738857934562957118621846224396801484292045984003306765307612731730013725179517664041568746732507381887581599091153261094341072162029858270899263779468922989561205578332495536262144222543448309835427455212250423154440499891013637930475179375437619735009050164471991771927612086500276008524428507340009785932165951267914108503969850496362692984630733980247146090806719870695845136261732399138309375258001952331421630842348623647908102225691866294992444189572141478626091972033715434021036910539583390831387902170724355000898795928080367441723499002280924035391443886074539307637943813437010542180714707425422105924693589053033228504229643000113851649222139744919810782609001093207888963349015099225993029689553344066017410985640209576697275858234059251666881770581731196283999723512357340742577952371353720851433897755036815935374397403824441577266158213976906578656728192142826349337283757870119746174126235905758356052711658871051486615141508742190823733891839706210198646919753608764767041494748533010449788157053057033386738550392570676816118033738928839658411752654278555540804428624804310700967928138441468103896626723036265518727038165595570872524172549332485018181523997114477752541084087440581900911013777861730281196930236253736545848474468728683948273745193160845612149742462768397473216945013515036336250091232270198238628225919021518033318993383586054690381400629289539432281925115165908847049878622237683252146691590713326162812886996483991089948359525613362811423484851198837220045158249873254963017411175667287224985718892331673507638458309544923059069458759208978467520484096062166087047352772630297699237751516434703687849815483038847102691038987437958869088992355722278323944766330061910825421680381650779319465465246503942339051869727878551445912115377667927866251856761616016486711421019429433172706264919598542620307212126778874149099762613722749113888702830090708554602942459982521756539597238977539367323323444370683806699747772203383755211568980050693624943201390771986848683806449177107929513540288718539085984524942741535500274612417149506116538655095424784709505061242567623381462668210971147811303558952094904095592641173026011374853186258111617331219263301076775621314450569112135455406872660117182879927169549995017900913902980246168587132642353557698912593972933784600110527061888355669313492866232756209679208797979320611863992529063790469175224716780044109275165511997954135509618889165180150681370849463780026945758997044572576063722939990218821288373745299410177898046975130535843239797746916263642144753085510396987198530390556933643055210031025992623928554057191999857512660954107280063498373996338830546744870598157087996408940222078961854202848735460633580909572675832936356283822089248359463141319092161184746714166141296858649193196186437125032108624153091341006101412983109557984372859102627789138810535347628341790584141704319066863459436289933910402428188815707703683070812126618157313124632801444292154372033717306003427883658755966094757954925251128228182633002398013573118397102393463210646324683922773558255196891479187669147369527858606272682585805907904937660273220544656087867452834134709194401246683037473156683747378877328891506796690279712836600430743335674491953782517776034157535970569350027336051412096356912682010129222798482291993366657432614176656216994776178990513641192661121522712257911333633606341113904811980608918794279597611053124235918469322361385136580991419364549190936097899159483397164191267847246639033957138087160349115385091280470848668262109287051676635273344722038145958849580897345041947532990239601186494346244767719135435707924034211695457760852203577421613725703622223569731208224855311719411931616164847237463219787476704287223808630218818083275692739701941266521984196004725277836462065288594965781507013551303047248715814344003968610884321545540812105474377620567066746620887225839950662513484682126006604331470754080267823127651645027052171669650363986014548209464928190951630361224742627897200014634423866909152034631397928097181073691316851743687896495835506431450933665243223223029025895901375817852709666462504264107997235697332328248851647359618688080231212584714505347297170098049790708521444665243509390698878562422696571476656661560989375263742498375176788640292330288880721321774547379374269123585854906133020561400188411910782497199700343778980480425711302801037948957808681495529551868559045395117579178205068900850641016014903578959338490576695116052769925727957615242185790298416201788291662471135165372749293531343950691479471363568410682837637589833505800861907872997205206657082841676541085136764119591837874862467032192845566029047472198353679706734914382560136526520919395810010656366057801951833959519242969954407601009809251376351900746778464010951699242594124320435060450018065535041776899700628647556662918314081463221603400273302301178636379986008175284843040620355719799571288351692085116713679426971829049775072161861112121656231115762983647225870005943231704418941156935912663847617309560036749377635357173329082137968643398405340964612401535105454055332914199566997293904888258024707050487392860941849937768222765276661301303167789843203954222148981075534150999593955288750889331811398253616998486387234096993383852151568745721111196610408779919368791178396714269493983135719083890674600217204775337947555451115381606507667286528904034486253982824528658944653312473114813364760302758784987647070310217519682289672192902389300946535890130559664669687551376635375675384083841399787476561040847124756678453969248348854263031149548213189461930580005897679489105389016826224785555796635274142647859818899663570036163095228206445279121561315600011745210373807701278662695192536232178692284870911165924256997456440804551741787134056481679854542544904694964672560596254974069201102097658256221505237163538970974646914835396048902142137883996177354872989990723096133009000307120364751604879082252584477005394900746042150157204085503698601418636165580731382571728712419823734044605995121047769384996761242322096251670085920982740655545694726205713135477777582918220632564578618588257922684921595899685264024898246954093881926616410298983695308612675260768967095276764690838605281406159749460800898523383908752711455751815544032269824810073970499195099666284702918831424115739213908632603154068992468767391934869623751656321579212920017624693411837277706335147350279368954020457980608995820865759886437629926052920392587224756448129620634919592899424699010577914321442200719475239268646130626258887755311947228540392502334197091950762683544289621012879888367842524260511098885599998877698728306818105275369119151671585054398092629877678794402542349407396547847425732939600851017048882293245726219051742174070031155391067876388797647271715955799821108263686791838973039423686208654018215253477062794534003977828853676850840722666209217455351241501773053643086031229895273512368800313884080903896616648737070124852200946410913291809098388257355832935556030168700952225880643044300179666120915229698365733970919745216518689237209346530651380913553384641866510833572561124894131533945817638955478340479613768112464831000638919899841897572542822003399722558377078760429309465879094391813879360598990287726365024498423820623843280617245087939027065456253290692521035592963543883041605968906067249938305936778606656664088401220865387934330562875095856243199026433838847829202023330326663048425754909179537097945766614857015194607289233543226035443185663320177228895819487370535041757845277243724114989283100430293280504124985848142763800770492369467421523816445569641502844926345538985091081001743214339904589242246229470647727591722562203771943270148179406119638137972642084159281089452825993381441208207459164327709091659255616371323828701055714179869955541389940889961963901614502677941716444964540503896740956529306972202079910751570674596571389492544896934914118195885852501355473477023878146265485390898434748996690626653202936013192004006145056302836786716238990885270625917672191889129679806891781424119903991515863565492683949276656141567645416823556464983994478962538721264199027766091982258464249974042053860411103684159660880847896149988521304717800612264016165048116063407758806496581786583799618788092338392860216278641176643459816622980001336510173582925713839409967810838638514875410101931727730691132483495111822754333250962904470353329777953997230171647038316934711793210284524048470889063335780481825828811284464626646262057184100050320450578372838417203668559035653161447665466575814507459152064690091462854779290307907759322850630323200636673054337459067147792359722391899512523579734072338108152796685104906742565305565217278633718458778242857742471976914905516576038489291867206153493631970770808249627304196271811367388292224920424185371494780655366305256829632793784872398088888163357838352933938962456015625248193854401702573071031001884781346383795581472008144362672268040546072639867141921119683506149755866221828815777473577815426141013571140201146287375364784110005010348304429260377728186311235650598432464604290317163087317140864657365577709656045805349783059681473665094605336365771933543095595439274164535163903929066676980659889768277332348543554088920098670692681917858771723450647177681923790609005709477971362582757504536157310011262125774625128418875541406244775262270870634800462612445913154439420278202331956182903976593638726770159274428958582019047567740316596964799313376984437277327862100672360916984626161275741650643960489535241567431065539334687143004089211625502702678346473033308058521438274170560174811827435151250752634252467673185477896804747000266537823017880668105790913330334037924785844781079910528185845194166297934702355284099438313478431263832517575658252748082534113448619468415016853569960720985145223369632817957452051274278317511012867342693825969017659220112060029686903830382938883889548760537376184385976903747465055657275869498540662313147857967836183087594491263283421903970375434386062725407013236940672732393019584291207369345986049002203474157469614870238015554606513287114271419202627795136386796308798441658498135199680630866700826054204937937492710880114848554662470741908708119494253339437163705099290085739879676924142956611969946102085239561783033953597262709411757923583832241675391838878113297494197168857010579697451186961227039269627698985805403980005972743272257011897682263764893563557009626102546421766335868518234267425005359494119860848758637486415427423459399786102073547481176379151185524889379716845645802390897450868363525925722724586737218245454475102825219059098853805435355095952548350032535781394493636328554929886125475612779285328468314652634239998238105834024519937336192617596811242046807197462914504331198227333787089307375112766968180307837444561532621846336419661819498052366123190838984245605089774010634648489919388583342228865677375007000883146436027957134887168689991672967584934691907352404584974831333307835978051219570535869036479390345606479721781977077256667377136538628818297303985165964457182918556399035182239961769730415586509727121372766746467652417213007607150597075733205047291608730151358859139140237263137780594379267943058355142896364430749244711569554155945027286231312622632263826753794056802277742670441069003387613088016576953527518477660730346573206662796239475631425442920108752234379638995480774300236355133689453170436910772846406718299266057626001351559108628704754846900200233623590662330856330526126588070659374915553626978785279184666323091997367267461657661320652664442588106433892396644843763379807840326481111745230383004531579946415849301370043606599979779688873654914759375797514398141431002985684244427285673350037926025383746635134976637047694667398448467398117673446861715467419585208805909434010773994574310921095223809358672141617533320834903113761225427495330695470898304035681837852469614667667087040905461627900568035523919932072761143706446282877175680306709387017029805666826331961103779757624639708586434217008236662268527805686374821380322520889584674940474299065251554701390178994947969829972877876093206286932122319027694659505520125027453119189630781768720805589987465832428447565458163339273375069293852896864519640500378830729431121985477108960113069578993527133486564568916097544260097191355555987980064444363249150169780051661454751623756400594145588290290177347309575825676251684551168709235883345133555811874281480621454405914529922003611941551228801722267488845971002651803396929824375473578743400995233820621174044285166339059883086344744918166689739586363653319743732099873669537958959378839249078993715362316458047994776368599991954222065941086371954733764324517918065341793777647014604387928861462289225167271372386182591617963858178807606157524352050370973319461679822103579948221112804799502682839531591818255771406092397774079005017836622006082590674656895680293823281972952194274884567735067472207364987933873413620520205561274327796537291782140043596531756223594976739014392943194128749123465506070570327648627528545848785716570002577859925160757096736226773198862092727457907676397953697537494482619060335383521027216220007037252089536244140975789468490095611594271012258023347795863347725296405155207212667758839797033000665026797492777999385946030080807674462825079259571327523772664456406347917835695053301797478560580599779928548277242496009894594934456040800617931142216299721102942998762561305822377297439638789495928943668111717564393635172491822866617177043838484249093943708240594724869560733746063705687053411477314405777600731095613433192207435463367637936069252137485891176324164935160149371630347826814424439241544584733515254626860970565456605551899124498893719452075236580281878616305404774771939678411178912330031516324336727560616781668636454158750686790921341219398790427967963072195408863666042558141061632061432664409008552186108679352840966392522166347148647782756992828552140454217616314629449496001274479195186196971788525308662154493262070206523080893724914788196280223870478357772861856532369461119118607710981352214784608714672819422078839677094508905498529665960667507892774618827904509041942157223479073822361851804129825095609859194930212673910466436333509290261299443626617795582078046747959051273592900919648428010164413713038298541094157467868103008731476353751163880750677804938735367732291792178997475692149931515817843137624263663857946166839215809797569895414105405700970068274843900401518309775893645184833621602392763954823321248276603535755972781279425225245299714704645847378639067180760394856671644566960343106165258644549396297970083145141017886180026884344514021610309561662618683571568818299090694782450378804304766403487713417351955651931431989037166709092728371091265750768418020315122365048190443625411838129284690898875482161456078250551709625060608053012390178092892043679298729042940288252223202885638043705441461722245888593985383985121324689815778483190413918138652167531110867923619692785312385108449116827534642432886240487908680509733250413955052390627405388440095229803367166541754607153461129565714179371642760841523671814742035776836526296958887803570687304941151594988619997377443134608996063256017092511247503818990366334180984746508825639553840425835417936574851443419757283636850581921526746151049427631143471556825082482777935975300231847426986208422311159124189126121874882393991863257712426357648358951065680733517107991575996841800375032135179914752992197530177105312932558474818956299672091496211736916652265868982697721944949708766998368080641553136002673156054785708529335034786488703983221059636351481295499144100767210885843796628880094162731917664033566819790684739411311699621652200199996931186490607438718403661248040405105924298432403376510235359885078815855804683554548062277422193059971032635024732001610591721006614043928906749135505396455373609152358133828695132390380357801063749627802063450473071296850479662990650182539930956865869938102674492518626650813022310677704013779929458630010680156332050140867630822143782083908826301719695124965314772277033163817860565676751767577519589061211551771211374832478306643438097464382335090566721599274230595502315839328019048482018410493710109889909383531546440219990965892706109517805221205289311204112417608708131633136706845426787593416633503303122728537055874673641127019320627485748324877756133068780514256921983160906597003210905459100605758471035469400409155610509067712223636741534989662933533327781843036323794401818757681502624048949474673101621105705097972252233676741090307937976144797070894802740870041509840450601441393607153230387308886435279403660829653451671570678483558115284595095630246699503349499269299518893170970145199264882706323445811877591679119536062747765599277259309487121299889095144004506210057824984710537858452755372824015757519084329111485445439298128354976508954361355273160414573860545508493162612221995172856927020336637292681113523097916656299749958181280150605196440234566333375607676330313931507556711070374083737158432984820639814077630428796050938426367569305347889097264510940884599417623006220400104736261618377992065714849148900301293013151566749303603674651375392227796866197988395371263707431779421783380835544081282687919074855747619089244233086479265509344675987945702683332499373297813897616775562854118848256104501470999293250197011711763902046501463321098587469418634385404318380385111233597094221994170299413860065354298377958434974707511165177019931085126505214300278480880191120825198942848465007877376391102518499040704418065566833485706779345691466100066025656569999692437947998657322186347942010843376331337506997654235156124228535942940573685047892421423580975372256572704504498508638011923441429693125462349922442893812287147412562027066665762495712971406823134000413495817691282679916206321249310776107039037290907019359341271678858419925655094002218605324612023569005779257585493775143334677453262707689140906402846456309737759085556066443057301779600689655748264491436510142378644027623169359424055247450984667666233998609050672908396430566179922960737515061336901612393567701363283482328622450881313159766423673512192868976712624889294897410855778900735025733218443711705711781486294390790126014094433397706044727754530797621518101568037726230847501229586863738977617619863289839222845460121529482566121672822531665194574964857795842649967705757314256968379894697221286477555985695717707647415074251003414068733960992336727237847273555651400577030729833913756715574433865864761124073270563684957243083509566041615858996072006687686448108228533348218706135344378804782341190892582338390531403041587039908536804961518382914125725177900631317985273464239516241203698874062735939520785992162003293692957551110661542772387364748918765396757857182747698944729919411746609400021617670207324245893822795580844311756537762414388281593940792192244321528486906174372681730105195270689885548723415119668000114393625465927363746914886624151477328377518336851576809251437129770604190761800811901847739695096882428833378004008295598201619507322255248990279647421840626484089527462051737432922328122933602858712246812151219318911007189221624079390211476903507381063067835220793959061074439361531696887049915677252149637386953202054526633761103427602003217183058678805337597074283429928396128739070044563768964949796697950147364709521453251111950078325146368093275746311763432586510959861905237703633710013849531263990909889031847992835338807245664050673975455163413650655190703329857884733309626793689046713961199448942392725958927996682885068366002740940034671116257957727376698478633783268959853024330830027811359612568309167544442073000038693166800380185897105745751265959079830094824995775295383067727911015166006588765785151295739084964074915560672325564720589177392300810324440403442438429010361893651807393228844601725677598177868406601313687880679002753501336308779175730629616085620842401744656916477113989536104555376549419759008566506571541820661628569829638495931487022423874022493809951646499696113376736874786929880741766705553796376087792129085023979502968684776986392923645486962158051812316117397071858711662787291162880739373343226877420729673284054030740570925636233982612953941195203928382635611306860101020906866832407847966002606618901651448908525643897517651005264340562134536323896489482397039749498838159396543437162736323858789094012431069712773609389459255702234604806180238195107793374964251591540330395367942730600382484226260782398584144657454249652968830746097357897498425989778152825601387451920143653473356366070508844050530509252311455686217356695108005888477673000875863307623113371588955243640793108801020663940106537107721842209673373353639127333343429430105644955560015405796965808028007593488246533006611554808839507603724812906449982941677916325179715761298535880337982044745576715347339354099846563897847455107773683894557733538371491779455062884009753130422645326072150477882704537282421230574129768304980252684841176732015970981414150556475143324829818158717045982134833695666497659229115259915427439875718417410489929188309409310350844821312498900605811071919303406745441775011354616797496300400658027952206875672689677482367966308347673277287388755972969491691655157692534430375917537989743974802250877763658238674643618448249138954905518490079640914198937206803030801047351652017979443028350822729418601955836124531727545976931465899767411883150530434700112199457981923572730944083177140963601730708454664405305028935007339561245755151254575259342262796637193508495684597345308581297049426137864229059458157062960453207338764790822878214685994565601233157566701980815038220286578691274432004147708477299769864767691680807103453972282533438490957486423835423332840811039313011266167713712188494595228122341115799527423860239149684561899854052776831452094519827584661793862898011704953338109148256250156766734587551919490447896970262806176227921403649015132854616459417309758539258102538406691649078739840698318505934079541797281990865442787238938000756668802547500077534863140625796887492315282362408082065311469091524054896706100475980486276522019226095503347409484027929184967137943560303108289070094876880289762926634218411542054882185504415617505224738832109808956943221657333217775399966739589445805076447802281360432293388585951150548599320065228511068823024748844097057572797687292866619142250854801852190208051090141668506043161437999988374121519486357701279188005558035998742183976394039731493934355472149407892040853842175197926168428881990752947864096333770624204442244246260214062973412676523308334074842383586479575892264075651145146315475100623951719616973012495514947704168302786609839723608222931746510368152382230067586387631539402969005730719131135355666917729191710480768797438830352967106077310602198639651038584419295567453876623570438802315844823300474942384818741193232668822860726921759324373264497938125800866425173843092524215126822608790943059342088392085057602878029393074402131370590075258787650796538008135983146439119580436812954590699177679934009510947022112611699693205008286864385361832262809088370746819411782922641901409742372633510325606974581426981260135027429122656220238768478089478985028305652626492411175488907372557305191450233383353890585661491517937448370321906262245254515433291388312888628195846688977787349206094759475068439291000409450634415629407230332161359872370003798799153382110655450058382852664737603553465082792358063833165544692958747693679776482089818876925352083273404471822194685351164064073292662318503983283237295639312739881817192324943715749129586138942789687637757892901529811031945061641456602090757283293509318523713228945275258449980643254459155663060006296088720068932173731668635683369176201071255686905657095509947561692682858681300570928998964090872229755000220016354510178461714930837928199330728583370866698993535725521350064485322758987279140741446425756881264843243364100329814403496064839140046546637248384066141211999643360957059314411821642066042440673100026194152449116099081036085343906314870887678313370059349154279124447265625821162304126280957964835224440351572239326392701883889049367772576979676752596021019245162016735944611656581845686206259615646370085907412505336149499047061979273798153181294888180742661956490876388009133486460748531480043480249019211282110144508503354237739506388456205333021920950909636299088172260237072693165196294376524396323031708592930170216213028121299684914947840991476236582193729731403697252802338005836070274255664046435875037837703174225740218415669280241147516842693076501060373556741611925223867824010075034870793093489774218405704290574677771812413486421611270966839129281367211700323740738774208257368609592368794790238402996909778209066689082591168340838374660440690111259417037481545408237566406376758622861600671451067233182438558852730502428510045553207597561444065127212398279540828033956240028054851208961997774471382650716155506825320497610597421386934979403344095017930289740956575872817559148405593057952428145247231527375269112976085069605057278847724584184877652462837842950337619535092430567082676329300752590596837412570994325387966994263852298039615190885640374140777443437429511377930003714821846431804560818953269230079490421308454419569279221589828451283654250561179141413348820427912451805796263276860395873454720231632739257153013385592919097393557555159148838018029768806121983367110981491455015567731236836505795528031169964865292611043368871295821260003385636664147132786885582549488035754262589459686546964869094048281854133832882292572971252602618814467514464290381373609193537196508564542531688798803446019952190923988786273498465026444302964827639897054164525033243143558710436942507120680580758919192808293144987937342577494091803657134535236633630518758090018792309186614654920466324620626502416191184520359992575352109441612469755626300026599631430746249179163429654215758027621693556633769676548590785659425226185104908423643361712751328807080685881789910854384547883574655251344768241009616786366344964103377377263406673984764757030017715768617259710093593883772582911381401629752869096877654586127817223151022269885431294940339328719137397040954963943123250230266198281592873114888220110124676634373020966079439265133733602407165665313930907517287508021652943034606541644466380553756060215255452524695662963383818137208765195274987865285593425119009913875286901388423397566154226549009057198119655204032216604766214707149513499123891238685308796770171160670419608495298532529950376231535143992682944287947344355746521914947497361459902845398608929212616079967461833674911784986201343877046643615475650911459149389266295560165435998090793382223827935167254451638137020193321103188149532886663115513017509352748425180164033413405128326388624184096687934202154196701660116107348065595572292935399500622017316052999267442551138805227239283481225596139200690344855626053917281586684025334235464824550061029263533843435531349719780123385037855206615604067073955588022320011316788970361764356303595355844721165760552046197530303260412957413631381107369360232311744529893334888309690697351570257545517399301149949078512253206169667300177905861414501543430058068148691369310350159541071837905972135289477780443145751909597794074959723957105156144364829588315075915040001227573578604834708215738079879317995390265722702660930328512012716509171953756427496698519494660822196226167930104441761992167944071900595974308745002016794402942277662081482611613116469811593680065431079177879118181073801194510282879724240154403032841193931243383628432245725984555669536026676114561975886197539628136969786730896493327174882929915346991056636829877524580989264231009306076061266621344765241138505870984647658165830707426021494795280449596291355859967612511133263954633332123720978455389906812025245542479525070410592500375355846927992192384346244221354743384081780022386992429153169467896284881962047960199101727318239720730372021224949859452387127535506142412705921078196709058341818414519153198672420687951753994124246168594802052037874404333924915276818858759028466040759493306104356690362711719854787636475352906118906822127071313242989843107573476354735142785961567696714025134055350349858096068091488958648924846947115038048943642638404327034469506431202596860704701771693875845270203055195305358987473832520121081131870665996199817627651919062654310701200125342365699076644995654206657600697676761273941104795686195081255613473300526553380691879134686466863733148967124292769826271768785406606089965129840055315300077517158534099040139650020352293946800220493283223683938188180354533084173979060229764392226671112206220199761369698924839198200502601923279435391797067527704898919589346252151646346062139250593410680763889901552341229804964765834908722122723615752108760494384922213100007552381684225916496517569432607240556347876417072649024908737243567582203268276430480828254248804672037971216878931321538577888084822138180624918848828125411852437239988073496464646342772176846892648277770424476943334437013627921642549236753000202244636070762632533212335231860347497327003865782078712943401732728985118147331079163530171396959742542257316754264418066487815054073735288450243496993473279230568131028218787470195175788891098620447862228150214258464875904841096106672540600684579288895099689005739707797396498346820494206790472404436078878953632076787384875365926764473954088379418233867536653910039734291692331098997012131807494504773438149938138559193857584117559412333073828998685377472659514668715291842382037709796513185897814266325863671429918522738758649722097101799001162501491263596371227937044270473205842137706154429341081973811747460133486238253452868846848054096984486996906975532027216592637520446899487843127914720028136335015018184738999144841087961678979926054923204495524080283938399178339470623074606407443169825942101187432506935284158809862964939905243444288855497611233605462289555360262597090556276988526964653247896948482733945276977938386212479840653213257885109706870496767693931228580218097264750727836896973710486987211949284096195023542485193375895968953864650433906666581251986047573396788940092459902884463590284847562621944590132625696260035994231316822005509072848695097889292324148500322337751227903964448464085146535493762018789952874551015470555432994380843354720927303614172801157726033149502069219810914771298737046261088340296482092222591479045662387901072331967852294933799717571599699245981211585744962108751297766470193388059746545706566587533642496811399013675041213411981179398205734958071242173502082260584526628108030482593324664696478055058206166668736177656445927234559114519758446426224712829706254264745555366261190432736468742530071658627226177624782952564872878991859264286791580038585205158496727708947255162152894400421868943295837059573404976899908186897487858570601446669122288846166296401878378917693901645960167530063709833443554894691244740850737140236331497283799111842594133229376969866163627121534550635274765071022448408401593671161985104419505469655915726724980661259576324167253439034593987867569275088810060532327987434298231576878161577122123952259486955505977899968323123045854027379145570276811329439188099668657625429900206186571047320930740557287985015904593645114753343743434262162287145094917920424965979100944387945887934663114198034346011912425277999006515533895620567315370335936392162412640725470552740312718187729661261628378501661125000100760266291252254376178143223326133373886968341538889095250539366808632642003365365666627017525222448289632019900731589076768482024227743875915193048635803386899427998357542483334760998601819595190694575195588652329123301286082065324177591830958848569371656837991552300884095425474114925145758336909517830850844100768405792542496595866244713538279306071057460078914772599184689381867832657101162081832490603341888110450997046469215647394390814096206071000351964929853893918287074544368835574741324549941356253521778468896737392794194688284043774217088143163184689486279946465362181988210536239083589929825931157923701538835452764680303653927581025184458645376915469520687255991501487950849944029939185710725996550518651545506948083294295027888149038607816516576963678449251705631431180526181055761120209709789362085060091494199507645091783973937537485441637248799776384764380476357737318447161103441741097580515093133956325675457410685077560532813305983339879372879218712382302753027125352788502473806143055563671270056736536636365389823432822296295451925421163666269312356905074093034291851075135502197597572797998250961960192320923581496548362204077966622340749028999678208982734232957744400357770522570108498512606592219981036124599459989854627604866376326162152072118201159030231329297080036439163454988550296775188710427282907715236491832508468173033627439071232895393511821733369279109705280074968849213154113689973346150024092352746875777460894886059994318521440484314478265649368188046323848589150891923882567361170277159878720888571321185077322166484634641921117480046784456935424040131155594842794761883221741521179572424920430200463768292676798319863306739492951427272206852054375773689183980822426283181449753226661487626569772791158646387370408044212486123437505808675761452782521418492413196239584699799040717340009455338830463197411846938505319377580870014880317011510293335152096056124084737594882421418830194466500832534154235410431635906684741076324923563121651461395273835634208594980517684510458290520640276656113495826725606945094368065885052403156627004308917824132371323953449003849401033781302121352863976189594815540404374055883357784013328114017434430999208266728760095892541420381273125677931417415689738777587060305614010012145098930189663277976144341969201289181421618651572294700090127762939602871612065784213294229898491455420832109622667384484582545537122772055257095527351146836589040404125207780528598167877404477892980404941079359504898664509942574327406261843059842129856427348029712440603955407734188249006796445579938063197096039544767247255037715433863959022081652112239668701615618617359717953175042101610107494430157004190347844743383690702303261325638225479971616518256282616508233273415380350868935180656468245040508634442888965537641640928827449006650496198567324071815695691555844984024594749383150105943320821177245270620959826343787408751199834096605018623633096477308426402596446419716527565965908117507638119640740543359510439556583518753425433295900252167021715652134526601473999990422745459576782743081935115634321464633616252279914928425189858615271966690169141041770506507724636922233029761117689091666010531670964267212086924613096688479614038185698995751814091578791231980561286759989697310921953595036410416209870996711723210635805802712048071665807328738868364903462317385213626028286536509644413330726106706641587765371687643791277556033829073107591152846731085911791666588210849462578783872879012426159986522199811799994487001397687998130836101590026241214028490286152796031317909467260389019021821576340455579998909388030740943425969162772702968115284166331222259216086279606562410261943034504128721040842445033591482825996918547681312455532682014819204179984767690713673896532681673068429226238699802053790794181750294250913905640218997468744961216887522936839593786888897232760862970307939366675373823123600683041378173718224476761869502302191136250305528976647960890685694404653429092191185281286488907379023726479902749006370375277669634464225844357750580550037286402400333730722608900012928558145994087800790771351472655690382720643744030054727524071598987280283668706210755797755089235740101599789109153205047812549894551534432892093282972249533494512662564271353428642294005567326700864637692364679042298488555943072188712487882714216110383937731995829184492231814733097440486500397759893548655647440991608778698731003093614802909412019567398220254862599906239247268946527919670964567537415877915173897814965993269542617144427475462671382126945995241162882589685989735364759200205846592063632903645547976030967244616664241743778899670567330550191708096581998048870512094733127191302789594279817319902506858086226359289917088457819670715813397708039330249269286254026450134389919893660428560341153271409075683434144148621428982924253807761649329720845034347040004645289480316826468192546693115489410569559853363873223546490851938265652605586926137608987480638850167050887542994108149594605307204390824584787359036295581836763835995609923952779449374136917489918271098012095051976698369634931404999464570008193616173124225795731642360667797236586417844749229398053078219645332008689004163276700786638667442521125048385043785273789047773926550060172015154565105244476861829452829167743203320230949342247461300853796342150989507517656412761957128263558942271374972990922094631863072540728473534385173693917722659269272481029517905019966270278916543081742006944998963829889122789137996364247215060511941747991586661041908627460752282209076406399230435062743470912322308648937375114485986472933348409355228158671499072182923212023257499785989452421687299516074290523474450360685726760556150375757544461756829869239732890673374342043131500088889652710662068628898038571760703096871346969612201033853116171730234865255558070032856121742846222185840366232643326814373206542496428627539865246648425521630987538411747946090785403315714661887100163497846301233362214763448600266056378612764908865968739763152157720317029836988988953485719866325787446857298916636525891130096626412230605066053789590385596236911564643040244309943132969056971307591115225710377985349437544043474887430087840825297347474430761215548873049849265959540467303756206804426522986143927766800435248976314566844063856380002863915125990428552891957629293897403415535957699527961785959366797456066359518343672586316095273177276880493161148531171233200877969800261687018791948679333433330733533367608388175621158620950270117946279186746220928431685112103839211953965778489576873085030436360267494758572840969533740867409804070842696624638765536247701724992447907154017041564422871891918079600347522964221386108855294918133989347408143721562102602571180779207309372730422523469973120479750036235190165178014598026884149753625390832014151287282840027069537037096947802993765314527754414452018282001462985097198078695827778664928566130540791649239599814158197792235407590132944002063515072462300026289171544193621735456780864583587729759918566597780852716453426169200291230922706130010206481089827034708497160618075315362631236274097579136654070136292666436961471655782500525395664898403773471947714858137782283390023709586293039633116508625017484840491098264360178253164749681523084145895300359093314523596912928100330471554912473491744749786780794652828282389180534299421969847684800796811800232199208459752497077438780791831816497922281747202450695951837677930005177223917175459715301077514913365503996466008222296830935361990440120516327535554582933530724341911233471160882531339996110842854246751405976799741070527592235578437852472438663921796365930269141835587234770555181261453298229732233199113912244948383832321815692838365805748263096463807877083921034314145670025308177374580672157814495309351109211052458113243389678044426628907048851124329445610233727473581691527640574019617143348399774290212137847952710582225536663360009899168745673380106248695108691171069661888858903849070337592737490016655269736709395618240142283531644052304311040916905150176817952820614524070538924523369908862626220535864244875369756097966805401340639145939229693633510705319920095421113524288069510608347334238777596918195781386373365711008378461525716595123054861998902798707498241493669897263491801740744249594031551339421957089301142719912232191770676262963245890251100227896903323770134988360569571738183362927777757744733531601651752060623910327661766997521782167005822838052447559780585905021102789539343119795961711361986659096948787162545717191165700310076898243390197991786908623163037801647703260727382235473122842356014331249540901043789868211188639216118430421927721966970264746461887320423486432552143289380972965414830129112672009405196912697955025482346346825521952283516693224390697352207588926517504588700188546461912933291638445617277982041871213687557033801684013890087842226651890772842148333760362157193153915420366789258269570413851599437296814946669089308188860195252749950389299461241984000132781419317266270697017281424468162774991609355887259716049663442600210632524655878534714796577188040603957083845580037930149974106313167210515442274742409475980194326795017491440483407207603185025681117384022868813799192369925219392193929329038219847190910064891852385887284193771738767824224344085173645589079918495417716760080622434172945510080483605881942002755699103872243457502798111403574049261443039474845150941095083853244279015477132572077047592223723460422035638290944033299127549100287552017386889081483233794259443137948162633172299770861395347973696139971698371402697366699935938057599234778756340839518617966798116199302276040316072212279862924952671634489385155422663087093639381664755187295397097287371108507383694708318483088709441780756411639753065249476080920713548075852206124612633920375331465776585529901724807292995273534142026095221183722207561032911409756169573852286224798568618343259782648845783780702975344533168039076035161239318409558712138212614799889524241337817069179642001200067636205260560980925287047483058831231917619754863170923271879623561725710475562118181960497964409195945777108793256641583631957638177336870490063108557793111644242167045189950385689659867242404071790958427046675354248252812735066554853361857777734115551144475589615857427195486027455444822657869713202692220344861634061335096084814492315161744647468283409900825326227321764088302613030113483839428776838409419119200588960483582470065329548953104303191331086538246746258725550025864376478389063678273713596937043081349179655468201338002783744408800819576505415122854686138571914133094324878051181554390152112815466284169178285202730756774543683740640068425565640424005771215565476569208077319482129591295005282045131367073251943815047897725151164517670000499005756409384095572677793279645044908895608283888644796526912820042342026972117784575148875010171529722060257254354864656024869524073899468889508584887759570177494388579665570826622182856971928537566804338344152725282967968045659867914283716119589322088808797955173736089999751776323617487955139538676753664164152268475457163047705333945950658220914174154905232062780349690610911129147346923703858135845259758269290622696030086158986241030117092248608270904900944534055159411615902652923689426264457180187455000861266461836458602344153306851242758041891462051297955767256634650051233008054272249181523324894307186760860382387172777748876234212649848758217652663021213380511976359772042259102005762888228436081629066947695799715953092569818913007460174947158837837919904103593740155652256204311869971568238026459586165351107045383093126681149389191523778189855949134060332095603599092302924037748874103897162933431265123845807469228584909783067608638626915902499887370484066149018473662855930919356444957319012806622108015281449621091034222344128654447955343785183379615927055827103072170119347818658148476457867088327288082707282164489553230145553391399132398523758240530633184135606295966044338640062488779623716743305774943028553291291540762495479391431097259111637766687988147577798035133360236347626745900328975799198280003856522163939836672933565984489826004570010821749242039564067907075179499062906995748215894660836122468098942664115528981794854400954402241753948493062205590240947468945427995872011832677206535456837412554383156221682594801998419307980501163107409016684745956501151805678443164914461757348631200646612545090693730871872798186019181999173569241794059485137236222687502072603596945841380336963608842250438260323913575701449131407442365157940817236869285403019387307638170079195982366075067756061244475912141739548757422211708841990424785852698725665650426363212985321076051230645636331143589810329827394459928437918042098414442339116179905631314111843528814977070563838784348989445180378991013776821354014795136903024790065616203471126569515768310508077621646927602928518644846292322071059485948942154859275275118767026863957871547583525629649319031179609773981543818170213397204381049884955377765924008403344111570599305130551421653150921756375606072583351433812054625456483188752358334404895447781640228639789090199055264256399175079076908534659907981742907260191682876193653006346143819927035769302080439383769083963480718269616076861994918971990714820387481951360516372525937248573151857361402731298114451701394735821331627689090112732583689648303043276199915185358545854696883166550685521987416180866705338412118423120916449065157314421720486788679522251059255837220952350116565544214352597448456700052547093419369691513346622960231940181340183293635545224020058023985844883860379695375444599121963423540494015909713325045551456460388378239122211809889911968516961456234773316421638750380256176077187772981168439774843044666950158056658423695765450405730923409144984970774797276614685924499318176682108680185678299944521811860735150863833890293881293954798354614287911241037330334187487964606698817052402021219230548406015129714430607924284502407098943524328709266854228723991500304186252836368529821431591886078214505175953927684750286434791168466658476435138769317424328510269143971508183692833225380310161385110323499010095426755458147390024038633383835732261120322941719858003706024132467565084759309224536825751046353693623867206983094469232256360678946380836900684490362189288158681791042771930539192991423570297728057120875688347154421259441953425986228065786359538658969013842464886756895980153021068105801246353585616830377515960368070120227342512186884840829890573087854729062463041236516908200407658416992626946159721673321325217766056525664250593265577825213251930051634876128371754600258213619378332737909853843241005409551408911628072240255004001878510590171756539753789613696679029647952799791338292328636530807743882195903384576469523356232081981743590508279899875825644596816795962813849485609054674472773035917575052835291735588556618602498646231777867855777174538362410967876928137730903474961458090049986621942614084732560365566729939499712730087272299172646653025889660235703648407162378284363620438288566514962028115208494546536414999537153386496211609105460263356040644949064983074284421571941714243023898021876362539758170005321991839613893425849843918834359567580998473138503459235050886360186697855426291933619651641870296508152266718653220427469782671353412585591953136529699369562884474905729016791099193975219341199410481416098732956387894832927258018675739611137371914276549228729731925275353902489662377675469300161968524606031048011195537756592313849392211994921456523759309968497641747710708141264894469117162275328613893473831949945971015227057954193773670337354942911334636850300837817821882575978430917462828557867018201450019607486087506095227078048605612928841017380458577407737921940239202871954748729942581287627676909412234264035021199756693066738991730031770901578914994887642362707306937742015075358228483396500094240999684951443694388516741967656140352527187806781987994494419637888670383112308275459146036655895602761053213229633499112588441343883315952576965283368026029790698491258255594303534425085050104744580535705792108246638701862075937025328251700486512218448235241107875922408940270599076543221310546928178136201611138073380952652933193758686543553006856414496333041986303784707194432045242894330251541747380476815055628825356312792742351669315879179953745978801243059664689898620000280654066642813877461473004631081738029661092858752889425335575591467708366795423248253806325333463643768634318056821713732965149373448149600519525832278783796061212049417159825482081442599621712935847803539017853512056928762997101312405571932306948962917196679423032618617592150731979300630933280231123992221170569652158775188988550273871815098473854208968877555302001214370590370009603440985011027127856833867855347820770484010490139603740902537454175954904803516694877049744288218385451854181758908423742012101830508582884974749066440392293344080623568484074352103949397115483092799079769404484194648301029946737439550166850148021142109105938587697474961893668436599643243910338637331593075050273207471660596768145255753930434109595459990651351497323976566783889825883479373190317340680700525998280733616780417930874568717765735823202078743557564973324187357995817005643937595909692585572548172320118004738748724275635529550300157363931674233471193322020183446448084115203153166037976168102479112396521274477739382308203719758498914409801991643899319961888905509497024578863948965661097332264098061708739150267916159806128684724786888601208621064702947066727386900364148283261254597968273975528474138957245903545899036655607207692697501431899936306214712923819789522430178348733589256603972054615504088171518167699168174719688400148248628760365218971721578171586034279016536460388269224381093866262839523823148438561912052275275557866633495285133917326665696047758881144582679338842342104437484513682264567592456355382016651477492958372594415942131664534814974706322603405160357001896903399145071295603512539915909717319683220492409295286902206757650462617417957228809513599774881734394577705804388316636160993458362928341744025011209471192026238539380600166319574500589603704818724511638554227867962158949745268616006259140706792423177292902631193481302481743703183860119112495012907882797668925260722090153072604796876856985092806799993453348365186559263519586357817709259372326260884243920520457425262470750531772674579934127553796872926085561244777850336032469261428576702835886059768616877387956385059708125525713571582044429129568834341699856634311223860670423959424621607135890985320360809323094997586033691643761321598070096811873018025938247452487568504853078383097174205269460390555159347991023754921826425927492286367783442339660687114717831455526866733375535205600680963307709562616414566510949697121840308738206282979038632069953790444295926846045185758050534704184744667367016899056684079421686624765018093590661015415591948901833981484736668421020594048829129119758436967613040935719201504681568750717046761138642127403189516897229841774838572101047605598063066593878431199778279276223653736663823141471387662690657349867709426327915733691391048666210385206323137843703037662897918534993872312301354572551325114792195765776883326561844023491831636707790252974821984020122851142739733655328828954889690526501562014612616167537916583787770179600711963030028725166036649807593164853235771703611409888404447170621858851605070637358733624082100070222317852300207054012067664627168550179200389405821186753247636205105505844678905835837648477190782051015810344129406654464636180353666913464159874650155403942607909270512346607304658051914211438011978977378999201305766560780000636408707841074248323388350947030307978935545539438704731919459532137549996373565131286039787477610337788749513850586695440688387297179501722530601441026250374461974206488031169063515425210769129332017078739718934508773456567655479499794836401330268003801774147968383506621162952557888956689640399671137897238275733267522938270156325623958844312505358388501603935705589655804278345993702790482626114716094624723678377568611557617672970325902710197440428502234621700927228613961017338247674188316367456414790204426394533909622251372752477278104995887166605498513039236698897035782108490435474281752958019698266538839939072689999729264038150347509878433214267779131882553619770860064565196913404700207736972148671589516628737945038473797055382143131653022115551874805269857970953694186497680044134635831121930380088990774761429463033451976411535804571586574213129110778815913225934680217042944503164597134918576995694551353857195573851888676967102493661461496763433662458269629957495175772462274930711554962236542361676724556574754069433178947082619654067000055405300713674524702316827669111635261444998735221521611063796435582805657609691587421873968336431194503229471492706951210077126448178296696229666503074610153020803691909205852585404112000770464048162223588318190991399551105686786927346179282366338026041559799180818590237907934859886126138046395068861990563579000818186260612741100607596801401317681102818470574506523389136688026655268431651141694784888938533287306646760794438534315883140680023359725157902995683319066504735874190827344529668809779843344620206394186581897078508365442718414192233261983972021848349078311764573633964410988765078834966164229807485995438023197756325121505086913591519731551266717484543821525714702610316633973390200767061623037404806694979483659267598919978422605865324363289023785274643633645399877838623717887445169137710689980995634042598101122020192554329969462526667701182380775489091070511130974618360780307700729368427904007540993778793123155287979267656470823667740364558247769384782708792165288713292563359715839082860429213378542613542417505224364517935249183317099729403770942798299185812790579544359830234297026795589913710047617286873917795535718583965968154794570400055511663577845116605928998659406452573394285071889905826291906283177046235085841645281705008579994028537819770760939496551127038975821438711025708061119050101745046524978019044646753868199279907335001746506427051113522371768523181370593181823545640461942876895981284361383555212180086213004650381716394232562392667178942549877670963193869371337537741950641997945477821288927488480112785628334698259749086976173585215897806838804069895783185122516596109261208506028723189079862478659660839617147295537076433615695493308681199636050741080810189053905115619790840529507378019546648305982310660511540441859103269289748811287639222181120097303072072771824246246595286304496466551017151614671871803319575363425291971382741712979930429851800831820107459269196218722479018158732753417532517050739736928757417535921024060882696691828565417852295032405780544467340859856243266354068425475508081859597940137002811186061261237712880681803670338639052170401782217702245409473899937459695850490874031116095474453101445412391714769435324237018932935716423504656941540690270393067878264957218348241379492297553262416025305423985877995221311601974908582758391120778817432046363298390338372565606839162662018092829602116664172382473193142303817487020887620438707475843845287273140933035970492287046591114469500098362756465568316153038998167832327622229386673642329205353809340263283157342078527910543815206720704415164966088949086112307845561497582112692924403276594926222718809791569885083266834470039933240976147622395113606931406999603430201114827069894615722049049812985973566631328977349470588656187076414184327353399801339331696104467469505865583692642836379921864399463357515826528898492998218941031474802754272829586838855191673769966667768203765496082832496685207753023450561328640911711454771679216693416088670727298025474335924379762304683899487524739698137446391718584684978803822618718328226304026200626018551254402089707211096751721176295359109532082023843214068794196338118578649378668665053475353628835451595923637738613770331638471523114185478716500847164247040967123167487273621932573297732293336534863751072104567133097502539804361742858623404831681813706186574309770974511799733874028529920917123073503829286137966743597048635523325605063231371150293867308468083713304294152885312070466959835341728130562525843987968313178564762021252078042210218328755080703366208552659582513226986772375859394239358690308257344586529495505187097373520554684005001154990704719495928633439917098988118370724474698892894931651343534180663101493191024687905009933626664478339634006972860565717737900278643446079521373247960015632847981337296884520590572487004017975272800564176963465222051544497559645492586002700306380791606429106993229336632424765050794575875094042614801381084871174388374164846587362686730066474510542206822147274598988570902906455738332679049523672556861226073836449101011111757137964526719091032626864280138142003545221058302671333475806347936419072393028405684309212707189908718629115891136652270129341045955613646859171587652377722940236687426645294406694654218528311703062990866764956341234370797172306377572650522610209439683622082355520932928966650571848019667298929510262029453966546816573107443485214600928210392894433802891421195801952243800751714309169044475473576957530232193308048878627802622346878207365871885386561986731082888101686554545320260779328444783955001447308372235762585412775595017997882240914734337212040139463611343350743433137563923762933670957140305685484107162218988048300763449758899096210232128592410640483826957883225050093700710985843472026607662254000016659298507886919768071608082025829977635569349642674295248484569364212804866557932632435803820637761359717611939737179366516892758736420671284058207506068684457242063376545616587590560430183604831576219975313979962270430090921875623837988001762253401581439053976832385420672174854489210367891264486880376235473168902971002059878257201832308099792772057718177218833636072941041468292465653404481145809054970645930691687832705820363045728049305839435086631020645081498168678573144347843186743750403060266205115141020429002501209990056109061340781327956960533997446973245762552406030762613571380046162864602476833989100388197414835993829357956695037459415837635901276238122228620069069610990404130222703500899409819934275626315539592632655649417578168008455645048501926979995208181591198055665269141781707776126350453125817755119789018344348041950265097194302691120734070314771929813998130471534670016699291244155559707214351626205130144436693576089717826695495980622084341445507276764886313220889905812661801525823272359744397017692044623119603246525444340238425382840760645033001306841911648631482081008385227388054100502662889598469837648370249982346193075924986828234838438224375144612814906653981190886317820185385829153022264847606748934881995706687361078255282548200195088603365469972914221461295049917886134580652639186261776507913586880389665670184801551727200442803655602815375601044557094037899440167127829752031359980215953176799532528565503980012531081423498125604508841667203801279736585611058018220775097223372138706967405645376088443955207203131888648605151195339746656847003605951657466542952179033822630112021520256646863800930978885054740790259740656703996023154896977755762212956830509616816261554982603417892718581856586627867268962101111572444884383329591123043583227842497156830573070260187432537565790793595035788407539514920902646967546118587666747122563037213884164117632954103217884146291393569408115958638626652741361404128964027719785526891046614587126504555569968830521764708390762997514131091981633844577813608678307780687234518570743423743379870176906118503711251578761872161697475423951021260562815612745469690869207615014324930043822959731158088980590885644775293757547485161561430569849734033928785283914159673666594086014696135574341377034084111485435750163024586595999449837598640178589544138285912979917074738872966252764034626346172739193388225940887670088148673317585303675739750080619017342593828340003917126656631061706839259085346589042860486644677272516175847697340052639117952456022429778336284940828366082616228796620317177889455467332282241628668998377537582510321775680334255512841115321256489110528894257377693687684467531077196913834684787426304741855356232745012013921216009204048904357825211196479347876327098579090601272994611313260541748712666895558913098015895771856698202826785483291400329002732898723368868117789820600688184354457072409019523009717692739219639633392617387058714621931971611605939184739765504414811034371926992461171332137030954740758643950405750649076778722729529567807691878696236500612584185221115729531078852280995157485588013392908405992880246985245111309667207057258861597034299324337581848084703561574282607645076768003246293182064871880408047789224019024528672596462665382381600662596467517568062534165808816350588317038508361071867957029110538335030529665415690974366369088396554885598253838363555981120025570879277508707909572597544885110450437511692265314351277750464730426114455603510426758369598597975386963082218285903953335684501333503882891095248275271987638673148774285507577145851243767422671528953204841710822552050100472191120926427534894982872900966524452690129929415368388932913025745482104321180131198728056528041148103741076142656830195252366997719010917634490629588344082450013026040905107831575720367301789854568057224301885545819628727058572346248515918092287180633779327822820576488600979125842966801090658815489090502732599430546446885713223542020113585234814945020201656524217260265353295235171981971187547073762783463123498616422338338194874402017288020556495653459705420920855991168256739923523499750675056866882958326868311977251514661784875373556347381424015607465607231287071360341342236730075913906314055130936295063838063673712129883643229678289865405619448540998158983866692832596853995754607802874201500028903370070629109778742686917130737130555960243925131034938057567430545110883891665918071367431217888503273677284117235458669545823934864553477851234623244171765225304592608851808275812975803007148092560526682468071599089033033640008499157676736311198688853673583729339195318422549024232189550427485248308926174392817872740475561995253952864428496739215813671550237989881675350964042628206233927160254986842272640039856106572189261830447425212824271053056401928904200890718981474841232989174765316045658324436769797216996558052136530316420135958443517365336187609720533732600001107894558882315478751402414414759459395328837842180357558198287757194743444538281489058215331082933681681554698469915995729015188002580547810151477060869123658129387391826460400790474828598518933229545950121127038457533945501863110226859676491781177281708747781382265156733901699328826783367450805212673850731828322961692499799122731494546652902777139961651307668928284841814584860688757108010570462528394567502267536276674715106986424979017489641301728355382993167753993817559658031895526620241929951844576472224987644338732215409292844081389356785832582370645076826239720777093450944661932291554981657169348084012847881825624633711496595115522812192970158225106166254945781503467284277711652918480873500473473287237842305219471488711338927827770497962451132942357084482677346961885726230072783369427464262521919800737008171133468530288908559665555057780221393347433981331711561851872519727797148168672340701227363799954919086522810459503805054684271866956546080606037019217974787326385638937190616004523264611655919135571064667663171324110631950551782860959870518436394782650669458048884736395341169761550387274548433681254567877491984783569237908757451118453568349534636314612974234956469159763592351206605747483777116492383333310467913531214039779166447567685301390867519011036671501970894377853504178040532749623454266069276583359310111757102205393291955292935357931995938626628713971911613384326574677765182964110895235628011914372496423231830140945969437731346865921520903029218378167403419391422931875728000597837319114095373406229512007320443776015946256594940285444063932509395374262807681153181013794674085786874364875105842444848795342799624329526893345117019487509540728416114549114885774853155495667897311036282055483591259751996033996518769567827972271891988613724205789358864273185598448946090477421365810868927869802589291971527770167232842455018206876279525008311990121561033923259949383723170577475338391599184951313702838607065118225397060195841442513709630567029569050078692303266607909409594441884410229887540654562682706469529005885699655042356092989562091272164939794009004782953085090593111088421155595990549235518941455534327116722562741768210478588398294726851536238980556324397364432957035659552357193292315763513183790946559846306963473278042999535929352940558645737549567787689724488098130499800375677351089767108861617699763263106263578527774978143980433518722227368367776492493211755006651765295358358749750746990441115606250912614250764287109025291371079947592804082300055247421956265343578966945496420739921629293660402556445234810152565176906098174615603228642751968389052976851692836705790126175548912671117036273018464122349347594628056009396686444874382499054331286581545004925282257515548661308425579064098133656716286854119065298981302235721222671142928598204091936579027444347919362336132418263144017601604855844085010860714519152901169220291675188859665870894531813374138760311409099297889493347694057249105184798373169907672435855232863257675842071898590108209239443215362549085339140174864601454232089586167337713504568014344143324693754384693356386329075322628105648384810335709735431926385355170379117187123983615318914083924803057619786000785492415728541174981749207453960604304579152904157143539107260415942747049169878277558967881348509172272279443202844420538349351996247554857788700675562781842557059076139215007869023008828727371977370688092781663300916435813963766334177712984524784550192999873855315300738664328355128603346118693217694474461564231093256671277865118347894236579528765191940186396739514463752060386770161298221112508195799828577433143005761109781829638197124970504792243792808580652580045253568009334602518517645511824618874511780537261593105141082927790160540495915967154504168651777402416256522774695574383809571907785679161372380051044286854089260574804700370365405558404600673715021854081604480775951444340500623519617309968366357520943203730297793496021938585569533714449474212914520994897871852118887969096722212041395647435797954617103548393316413313988717384460428511372440193032016238132864429571836433495791725266597250532942211766107021220517031788695449926381958632260851870301934367924879448722366898440569982375821792896312023259045933224784788102854232132437921683107930516881174617859588561748326734717903160280006881480819214501285491660872877093211562984870264074711135139219397666596559551471159511102011578938360141052560942933966226402522114915084996696664573629562958365982934435576496138959281088900830607424062919086708603205520664769476722005942619398727896628775951017268371777281653562765461605425735945362494152149158069988959640572930912832807931608731845230686600636594805033798679480109881422817058837368666858978564055634200984093671368540796098968663531815841456533034361097833271696883489482601789702198589921367154932907550709562440288330523376879994521229806089834469146985833150721077245491794399229249287640594156070568310864888152200992714345972979439340637837629867638823474334737712297491595021100196621127096462534822410599078274339431392368285452674423367856084317694780134163584208254578260065022012915043065929613268572032625394787761086551924356017569197990458232436045372389909836469497855306343652715735929311224055896764819632357832259892570080403166489085761773584098682589751121955424933973885785049113263996689995796107426736978395285030608756655833001583351571426485063727264807275374574835685048448438376288392184074150429152697491410048382097425293592887473272743624304506515373620653382715873046983892256895196036555155404666273932112462061201211470000150010274189401730411240529750364774097304286692556118991279586102882090626483545980426834471396973457615914026204104021668680738997011049161122508607921864029923079827488309252440242447046615788999562196932119192692010606006265865254848339373438013275125242615126820927546208137823078550558795660107936510521005339747490029868391931930828511272335676678013183205288235429103720005608607802377098262914813348099053475477272159546973002916673739723916751446194623634439167916771016247403256670812073200957384884592723783136543607238388251018674748564308092561882966285997780439616849185041921346697356255899199859392629368648509388934765196105928513491568709477072370847835713911293227083524921250184235484721147311993903046268820273725035736788663646928088031492864132059962267629524633216937697855894702598672696116667998698277141277913857492445777602379129936130907781551261938056300761475888180309895719446064392755734903953308561267609095669556976285638599795918190544976231833653158095276747667766265793450269444326902542087223737774047857716801798917650260277885310072108894814409829436110750760672857000459902371824723213102491361705900771436175303032288855562663067086402690698420026876351121364792465978691548336504231376346125660855011759181117044232285038011982375166408975425187005736458183214211753867694262595187961610919124374427367536058820738098874779285979014490622168006286349425055754103578804825080036290899752138584985146095001362330309033276325260398415773860782900184269742768801042245578858399979178030496334185815366139870443514467130233811533558002291119256717547982772553387928004860232059947383267880281117821201843902698470616451098505523218580589228107790365776923966774280997728411578514568521109380298753827171506786539300044796845592727748188079536833205111038898370908651139629057818446751268053716333276398704420078002944712336595271669584637117558359550828966784858347292532316570175930737773863365589924858316657312780720651065035358485241898436083009800227461225567947105855884674407984748655393985110120162952134066419456532747885328532886109341721870509514556403407215208499237522467514931665822763726958590669750443060652808022035825872207739237078247722945237828483255870898987118101534853185138868010969631737405733035612628346914432828479106813145875307332975941670275081017356060310795368541493659068920136957803814973577368836252623943097316737235351920012552243351821461239735160474480299741905411928006221808254090950993658184379255350084261676141819777955841202324918868137959988411597410268773155906446995359141542605170738040655216822216114810127759396914997625226295479602007942601419419765962443690313112532521530440619155555878418891107325406361682608615928584913068935801075945973495753608244176840382933568701903382576563853656098233295303941151631694814553685402530327628387748498795391680041070485375442801841984940781566983486396841171535320689711737492492609377780571379403465458203242068124595000766441863966435546447100273756235261703647505512927747921725936724720956870808417872531495892947846138957133207903721413642647314493534908532820348760350329010468483163609779575146512579756700119741364342628002915041177589855226032628805045621578910026768695853101454900409373036479045401462997615682615061386175739656821900912390421750389785481818942256825048951298671915929261807796777260800866610882013313878494630390341802785693959884370320537413953556609578397612656386596496304926689657911743808645040666634710113322958218095350972384762367731634547241051304956153860984887529612954187548947919652417960058074840161452564573945573619021565683770950040913745642737142785430038934570601004112149975566912376906022871351702439781732547384533977351072311288353763014185397103663752645306817998754763167176161393750898807448901254426339947231351690769750602676804197087292110162634134892439468897538538883591383899978923784981459460718917209139207606177041890698271523878947266962316646866790054867660483378401882886818784482245759612473495630440720000052092874324924242823852161690881976282576250757656055732015455523406396293370404612533279555296358695248302711987704159804660888387828608141397962366716013355042226383524805855112621080504315450971490705983621260486343927638159181511739215006800012165303059690798970183623001922534582855899052967199571663495156274512703475619769630940762170233796849711251165071767574233115303866872268502208413467720570264914787208641976984650358858839230261110970941128424342541815497728889106981526030069986163329881422257942423233275967378256113106979316171821647958508760285949514241232440888428786099903419893546269188626387454578588665512331527965630470377095207659483262348311089279483910036746120285239144006661507371060107375532223089903880203554047481007020255526248916824087502870059607295919946981393270964690877058203757301465179807848773751576127826923103747048651252082541738952371671164945549102041217860352754384226670955566254961347875014568593324157153402306631325481248452190155750699280650677424813083154688624875464840733849103530689778304611115916854413263994215446827458941566157306632618171529378596933829950494613490405728815647119115520322027462644569069019166977403513998729166886118022807955972137866747117737398714023642348157259034366354865845909022991561088679178677021392723547621098225305300552334160820414784395470628751630555169314362743670916221980281751143479488487436099487183599607610891868150377100711944304845496432168399949767325953787682514457193180043719399792893954969764406038701124078245213391388670367506089703678152167315409953273994809189531244169490799423521594367897012640682325148502831050450780086026362591287083412252347766378320657331616504588130241874886093496716061165129881353789464014136457971076059285479907216109068357229885163643835558984368287853564923910804762639705757478831220423852245809373722290727350398736541254372224086089757371175952731170222372773523042987087436759927012135149912239883581924351063211935892608079825321659452517202580821516172582435901702196975272617718999997945750317449088474190666650406599432801885298315560589783457491651578224147704170428493932409290363224229204615590816258853190343232167361476030429129696727941544093458845813145107235850756812634806423036984993881340004071237998097579574140426392212983906623954510280317314874401438858419782298271012791559237989596692060690685063071152554433193126561376583763049096161710175967541592281514948268949531431098885917826788276539667277556448853522791511776923739913847490658520554731778261105653899426591389622984752071306377544238864982679434289851412494696018713798407528298516086117244821127935360421983097784333056297747509553557971129540988497279131987281176865315894295580663027092198689309569926585931028837154332790385863175306164573037549775774061937872934453744999102360201374062579931109173150648597007760212282791480074471027928822083901603513181501951119999662450920518800517143402437978869867815272849307335997934692890839933478333995271850805233601017557385581328331803257418403853354565806492377271330754106814599140529134287951143071021680594676150322562017093915749408256828229772734981048608899193187747742719137571853086503338529951780717825524011891358131517897329012005617613932794164917513113201146188068755799366699631311695862270595122905870387358423666451508595289810627757065780106799408427890513177143110342113528990171199772820537620712241989661580954527557989136573499369203842843210430244789724821888519609959284113348290041201260382897536375241496717199818415279559244907757045340186638749220294538461058340735366492031824863212607653915334816898025381062959527660272739363852130111514484386039628934990346458251788719558382575331039432505761626490159721256428217769286090080953189296202146988753987063478692963065103614493914905395517200670705927970646416337830033019537743909497613138418185094258278371700016019317625760864245852612868131324153555427814515358784146931277321711556192088645039020401372527889153051030712795693262059677631986330423975372377809026586981774142927918522094443892764792489966746051356765727389424816126007388080110738939526932365152890848113283120463835954410954835020210400049242815346978397007628939667922801062934668463877342144832583141167186333077189497251699043103417289719963706596986629460372117110435294739995872265316581421927195853769564822467749647510452053979102193018507694293754202509753020739909502096151905780700968629496016385778190022680032207816806665160166328685574408878627363235878941219852174422451882265417079791323909144487369974062065969299945368295396624819187549272874842397729292228656079368123971792059138953707020186412419947605982827565399762674660818786586513992564588063689476659560259299049350285657818439256172302670685872232210630811416490674605119310868227301314706508086484249564473993435536645585010523062361664137310240179049930018120273330284972791696848186152806661370522751066896993971037959626662004355532662647097072340063830634722441900930058423735395710301583815280220774707954233689656577434762916156401746153821375515701546483126201344495637852642468448164807859261996641850988632580132164266117816823309232677258916055076735179066823130031405340945435582751322781250213367556752801913316027272023166319500144963297208785813665700907673401802680056873656876410213050803675807650823460965891910954018785896289713213509847054168849874678212555745942995632006679431231970287685060644673203563823218769899886796237909478650749453011646250943159501886953321376037008398394387785527150719452313941275756065720379042362556477524283057022412940800321737143906797943613218207067224722856239867386884911936066963900543217601810741226029107614149922254877349239076743402078339211914970767382326916873296058316400956053334204963845332023798485072648298344087857774187084646492099011251839341247200906735424023903859072731245607718383173318367681374329136650225398172553067663490487041980317294224024786688616983271684495694081444463975584221604981109455263242878012903158721330660371298755817088517395701563313924494588438880284632797792749534557369962231120695792053813190372052428069957873354624751687116112847303987230278072076866379918223138673273197753893534114157288140827159880564553582822925786997818200847494317963230285701856776375034815056633467381612186509177611203656423941955675921789380427837703898546358806847120911259298620683468909299806432460765574636536762446239177949788868816390481961005949802792347056695918344739112130301625313545362186071427762524356694952130141174716554147713470982344154117337840634710922510325972530012546052825381710327254342047827425885850041213430709955142245706739788791757529860332439830739171470352055014776975711141941326697567354158566535321323043822304464317686095705032614576033460294739814103821879287094147532721789375122274733311071279843717323150844878839845665953651839508225320443227396601366798400948758526893490758595174055627786694662164326370136181545856648404824198513857249934729207868320656224595083883498625165376759400249859065913528170123264793305654687770931278159488980486504018417742193887201916239650518144256635194927264502105124626874642738063179299518212505340953269719048296117035601275076949664614213928653483682203175777579194290657530309975849861758294445774123284822561834055176664715279043980018236927394956929831402598523392529787072063442296888819884792890301897430735273314380959226595928021711238484411171814721293574105329481787595873945905291089552838387133362901572177151040402113297338246511129360041415681369044634916070126738991694740728762472419058895648806569399776288106310547916568974775821774364260101377597415056697392069457221275963774831638332530056005067407045591358365313485279350380728918780371905936972775058329469518190470794929762974996699589769582987289231399200603732482353496863895481879096341487759934220460391234624792345248897836045977207440682290640133795577543960647071659788782571050582828977044151773189079890208111407260929864280870400807955642286947543262230057983490174942591485934439960555378237818980879228676564161896169365108926415664716497772195899668188533730768432495822643290119202348554649345544984573225813133535992293677375645099967297681919542063210164433821618383785601060892026789548619591337382723976238102702862622303626083650470733260598119821813233910566612603165727523103820855206439411619024738602601244496651177316843104455520761925740158731399302388760496344119095296821845460395539106635783735207780902930954743102208971562242522557325761305534673999525624173309699258009639312507002702210783766888806124058745920200200516459581291205806086789860337051906827311451691170837770869163235220333430308302283837069725168469729439959705712145982243593673955342291882828506266863795855078203119832674976215244126389851267526928663914014138432694534549635426857246416781401462458050375728298674745666451140331331591031568269433221781238424708935508705247304889355731017646106054288303361592494022906798184385632345278371537258973970666756743628511790233217418627721467914510333850308948074278850450085868474867764911651865466995163506349886155479553292727565919650836594637161877009459950836150590439760674256769611291103310221686809551913589436148988015885808726763032394897086329786621837551875113498919440720359325869474841487923148880665828765348051983826094681475576219181156256822643353199753890130608114121922864506871446817767232604686916420487763005025309662742466049237788905149232880454363459648643645212751574218714189519690161534244075110117211096809788779567819712737718395131766374644940541310143621716706229851133469214988239643067722916609095483691134261989124836130812123554339765484732311930488054840106956662753854993881580829231040759949834297911370946922649452898410420013582286397827424715584532723173043063790034864205377662159744680321903596902751698877324617663331255937134564926821902806654171170851910174163113168164710443346148998082331016829045782708260000661579910124044051789685335592451915081823123731299724365745660672964688869805817559461911734074469923035519439271360277217323699091455472174024220453283020991183345968166077698318332735041893446904607730879808388167727412087424357279082670703552281808999133587041717504792068097644076628735089160235062469085676430342305209563297971652385001201981512851564815736152262097606869769071330195639225493038023837904818611258082260066876850350336286650609643299587056193129851126222238298234678110539771759978606325521989559902802119696495293400871415655197700718198779876436849015692921293932447496729483480315513996892449614288896185787588729079222640001512127430829853365894917952752826402666497136851550071222326777293032440650082472047501673954563485420549015658244827624513258121035266555420956125085544130953169918736058390266099205177878994137040445676521352898286922013690367993175421055023401140933315468030276567094859676493398515755986295116110401349272378345459016054717544987619177718232819793044042075315401997926093015863949488094429616974798031540939294814602634250411251917214717975265184759320233204057968155444491812835236681758740117595795360975612839828215891640065263944437276754162296902671107187689503469425876746645084433248352625171015913606535719358115590139086633981101584856285397248740294186085353220382329480395982080758451497626216612466440748489294553445289010021080550976362131896162152107610797154768374731097580414630002345071670039275815181876918693489135390668306756929052384856583593904475593616015967150505699341118714857988597239130116666865871675837610172653102007061692494070297308831188585013747513449088158342841542826948032797307202917777299205353762362290719140781653783112870764893968122716482156793664318373182833575682144324224982126081147676409885664655225977891260819248671846608522115023927186302598089956594604499591561994302921364184487197102909050920427424856059746806756314125131347971248570904928172633829510310810740539030731804578947099884371470821304297969989376218179065706217388792654615490320891307701675148504938199931167030013140457870685188032019478300304404268146987173405142524301402233252379327014008439594380510500380983671107274632223815857825613878407137819466553264791232170492922409995161121057518513997642819485868241734135413379554582957309443542994260544319694416312614105459113991051892050180281223958088003845506615646698603085097172462207231509741822294816906527115561230928687328840423879877799776234926038600752154345256399373209509702220601490670092748595713391576131471242349330910770420839610369283874525790952684974033565230963793933721809805203264248716304402988793424816023692067234913993562485208070096004660566035673818817000536567053644752088167402982452135758283070238688819646944248930727825614438992873430960041982553096242183357503590830208635566072897614903208799857165278401515598611331926917327237618867274262087095165395883034543193377299689865434404356744499394835415175279067290567168113856205005626266652469562449473292724067753207499025371495244934941059503138401427145128741227658412033721117557713554035275719513376208197393317278787689500445848189363455873593218872877974878575521839643725320846161257772882640634578597145660658234916621415568773530675831558312951256838207689669381205488263867998246200857256841200567413611044666730663986690424766622121536766267396477997669763387247753999954723271434001083460293120378700458608031454956491061299472396877282754074618754393692510192795042451050866308541721190380271302498344840940775134513739318757962525346755220050005909602280337212553714534778725979651911637491631978581809569385081218432478462214677059712178307889903830210368116493467507715551214392891524839228798910129147044520023433677560295922391322338844440018845081837405914962250438179781615432815662212645029845305463514819294538022573299757003426844614700420348098732686160221930276989734250196351130098098419763210758303156693709744325902114254993487215475438630052805456525521650377531579945622951087320652390950107716995593549938653367098132545427221724602529071929825978215001817562882159810905834358528082279513016264827958946141046812931985050947442752445357013168385757914675427827090386772375826890927527992020367678086656316891116433206484737603351813951645305391605372464701708794682044665127073445057509810885107921742397094946367469119096191762982415584065728111051218398045395027685146836170677219602707362448238991457092037098887148269299749929241058877388776636957499783078960059913977314269477205025432852859823220891454733365402905099792021356874834914445061313644301365324656480789574029864068381716675198666746443303838275158661898090253509224587328901421289202549167408779432826584306529129504816719415024597297045961302986179190823575715921770064065170662488743504128213259246705893848078735021817699934298609229514042502653641646606981713329083056121436419778009875103726144932888082285915428730960892422640870526449944538100125111887199023677649397137371921459484677162726012845076661574469247586829291548650266284699255709002184044090772639156054692255667990500455092517915106187834361559594290379476950079225240277789945053361827598494327674296675668878099896707795449964651629912636415378189382298537900485158686648638579065756321964148112066967435099700587927113232082773585708040969112877314220328180422065112422905132027112170649541052759166493529454860793576691430526678535025176425530392098772022985161751136396705351972903420218061934769089467272719687626455138501246155397269727384682928974227224265442459815785758686629303351800948703424009589791927838668998451532581166597898490018828052456373668100148647901291558490663595607542321791423472394103130978985325765041405491235957818293267175111615919181440493755985269417574385715073676943441005192311188255764310334597996878160950556017331744544258072904713828023198725963754429179081288037528016398722444011811821066904420209559470439494601093858800722407856958651239105605565454829620915921157729498305988891222935072140526400186625640428633023301430406374812055805929494464730162000506479092962920428710702545812509039200947579588416698840295980350515208876423365178957327441042513968154605993693837505034230884195348009431930039996591818340161681792348787087980940358686787029313621373756912588839098084864286600298818730817208107142122045919346746474706247917858468673892781684423601702215988622081731962414334338751447991991271414957002968155276285950232016281426267509613264449757146752329442436460344633884970538647355471278972435968323324438793974511343473237945173462587061809782073092107837852499917606559152658303957566413057581364073884223498085796715652624691212199346266966175173693404712615129530078154916714023798418879377193434175009010794830800151452667671010038859750184892098081487558064340543199751537063767581409808591900758865772871378469565065360071938091893802875355868029383213603194362474308799710876923222968731383712736703346731981341797558122175604018189130703911485821046029506761054576907962766829394073998357852164914830945794699126875367864511532439328452123456094367161636278280035656041103458573423685796485188938755148018048562721340838860687050301934633877225770013280384262997285350803180196315738687537714746429243671500581382888315675143911478335506097283105901653763885328673181476601333349259632671264127163119786226026327483104952535311889904221736079055608862091455146067863070884870733722730027100306280587228793887946411509003703656458014726101157440873449891473626432852283413619391278938733068832254603535978925785992066499630122958183170863904511639823756338790739101144387933484019262629673101831641963385032567153244549956365169071568400694850875404645742961584022422780034843657919584441231975393019061963403361267399736080737789420989265857066483746347698438910144851424505993753191668550862017276675694248671710742977699869474950969159079795985357481552807524694718418411313567407111114075913719665154003205295291340041374213612905834765024264700914514441270296787889065026069659533554314049964897816053896295660275863745366415493762631646684192407867273306346199404275788209357616661807945350442289351635262889300546349301417096829564902199737485400157864352558238176706357978187575401210306397833342963466499435095295912838402427283813272415906778251247954826118156666032863028281042487567281305393921562604359207006311169203744560649616480730492318851019992078022299121954975887145697048645365512605481336867100909992472743554114839967934014473945246566359314488582177234614912975450053447598409486425021985254612658459722362776820639272649043305218998607595205194246452512505354387428892150809866285931673451721167002671442253957335716945768585844941897024896526296949785212773326316499005446733661307625104625122568577113524540472037601685800198789760298619424828773090978006295792934383012319474216501411061037635608241116071907793289867784124881782539555208743564804739914657836738497404362517720506818348935283072290082265252420048334353659434824649576580041698277338474464940060471667832378206735406103495176510293220258797716512028907651579123994577589208294829060280375853521324720015663442721920097986667225583264512359021260340360552327884046871791570010464088437697803308319777327027872969399224802831187346832494032634855707072553543910932246271301887394664555706026275810660058646108732611999948435539429364170718578526411367068050921480785736007596877940979250237262991338296438361709789858659150880719514842887280537374663515683414441922828915885096465964382116499152335227575924501352458702346480476269932273953751435470461372741381384559579020421466050554479788348127338666760721378887817441819115807364017951634365201986501425362977761756596515674638615171564499913259653862468218396800512286359857472926427003483674568242574188005120212968718198977173466313023303437287031894349186172668408808798761968707822860998866041466128712435255311599367348536675845140857177211708381566679695527009021013626489152428403800277582342102249491129065811421091353086674901076621706043989594460533252524980656750666540823478790870426806603496171015266187767668533017865209047612833350839583635313141470848215760071832281400722798650638452516562796369147790758395303169616878922330643245347715415476887413185388493272500754145531008775484166737564959318780307857991283362043480822184949024898280149089829244823168363788325824168015760400704726952412398228423975046150417761536093480823793620154775037457587138883993356121215057850841981591663988254475813796856169116214618703652470158274920911612839432154169819249831350597074740033874077315833232628638320420836681738183778741570928263460672439065488995511120237315402561927427177390705232698636607579844017932593244166724035088028952407281013200443193893148506365325195112336403655740308236105924696737161386322645515416023056551240110851260592800386295818469287327401098257585410191561483353100208416810399554469322714610896723299553095155290636587652056464188889991715747487927801216890996417832362588698853457908212436774904382437346167519756991073697243430146639434356039288508982629700297259716515067591724355925628088972367783377558090359689092931497911501374116684992666809732273445790500840604046202721837252658269919816653478778838014625560790789588363094808440616669010283965089084286041879970854544256702451128144954317746839149601153369204472853464981605402094109888880643255646681152624267220067440223455001091060326563325576206883400375672319329030388013897139209318735970537352575920842382738782251365409165675129407734433841098805329671355202989583605361571178915695605196183740798714721497477187169428808293026899738166298626958986212323570118238621960473577753241883185103975181315806369779114984533412288443190624658362975282410897346597657723750669187495010011702845835123092946284078674415024529657943152831258719249092634916226895752943322570556208712321732445422931982590572875592833819075874241847024156683599614735732659106024477893656769819542781381772587756800389176026227795959053419649202971921872866082818536810311037486307706503973098597294158270281493827519911447143661652138359860935583799625904226140159998968277827321346709759532333851891124683089927793394123456027679158698379826377934961805321812859580148253635072028072453579866251661366558462337505785728834815958086198374998745850726096786672751849980174985497311904476526360226786353001383214284239493071677064996796980591381906684503418678063648371464495279993917408354011972961442946168841709898489282844570340573479147742608019112485241474597642701664491829762470701850981622722768994292314501759099832308853851039571629352666641791873427743062753915070507799203811946843207950598372706942777309736268041250416233799047071864454800471387281320860122538723699570405093560023089401684030524878844486500130062630978758632156598142511967055733500140584417614418893700957384731764259575440307268939880069852752302520415337289054358451819482065121479533350965790921093008042579781444663324516929840301489506343565655108914621566197052885450774610809087965139137528837324343606327914040425232540466713219428490971808353004320394916498929324313835000757220539837027027305157345977343402943457643086001889551735566844797229567869063943252096542644300314106563712267705217435472391438782273053820205729169861516141852622420672746745832617530891115475031895554807488087028426576737427132426734616017888852334444423908832268569125487993316019966949924805933297032831058358922973451781221066161763293282971969099869523318496617378103781075348576180748578231644467438867095565544888140500558280835963330883016506266858417314199219148506969784520353274917814719260108761645151554584040293835120380357927880020403145693679268383008763757222953267018971905346783493269435372836348221879193934876253693803458928805452394489947062430091766804753622500162211555955464707564346335230932229875197711824469029903562990159318429643829651067275498852827642366125092197613200180235834774486407465674517087898151715782609690154587648638501058576060476768072199249673870869981295254322738297473317122850233523153191743411731320678205127346828550017299534126166201857200322497762275716914535097173403617552762137493258131207392221700794579093875150704941371317607775141905183423873406837677091186698475645356434044396672666822664746014601939461634483606325032997199545499214145718802222002905050056230970661992595805726241092113039317955156928198154841363301550869134977396828105400836329718436056428362718340221745295639629038055279939376550551053650887451606012062744285102484278536494398478467434424856919354032276310811065300671150932194076451063892995744982600477139176547334412367213300375579610043241623508574771078891338087289149185354940565500135712105278927418657521910835375723192353135680677768446195051633664021573965785627064140497446088671808864523308699521105290474293016868035166197563803679737838765585104350412882182584715957453532825900767229711840000896037341426092318133229733880682498027283489897632115156240677267208561432109793194653901635291572340977516187271728027472177087291175452850603753681528854587304669021833532026178909089324145167661964893943735146299297833684806679140322115344644039891534450419084616805445963012309532105313813396156303400010568314973749483451738858686419710594154302817841214063193389921947399129679207311846496118138518099302564029645288044934022664165093803059839869826201779498815253940895978444832407418845781009931749271282726273420094605684353090181841641108880402078726234126898452228396772464099477395205416809044498170010739140574411898222832214384254437112934533776297131519881685362046244353816615684672705546857226063119202750236324422052483298043736293655973759377983839267225494525164007354858318877797986671434705375431369257771341025101347856466976465562965314582981818064977445919605824315409479188651345036680842832122373865415619273784570598326466353468522687550355211408224740761257957287540188415579749742626781638306100247947404089960640026930229279955528797233665841562532218021490720780112846353781795096302082885037619282130041348580714258880895008478580305853914029004142073569804724081040050704651460048281697166106579389105733739168438115426101962433518139883815384755817031737284878892229022397562148162384424265841250429674179359146859453298650276379865462780884247821198983332561745710194612213013610359078285831400747458225287086757946520045891384548585150458261346582293464852915868499350506553408215726693931582544360807345546147476213592944229426234998256290385351667074944106602161835734802017845596984528986265092677138573827486502191616824459396769719145251561159032341984450765486722664599635780211139240324942420859576574909924483334560952261883899967341643108793525710678838109511578830513020128730893891912967495666287102963757498028596649508569974224583178337721021353985851343892544528755100304036737678711186598356988217611848663160345519929688029564766573960064165528202784633396159170590864454721513174262416137318518119468511735874149753004164087028483754174670385793031322519567187937987083141682037362910311133690394746159599550940406608462729073954946978863868916587773473770936456212127421570158333085225002280204618327058738629154945243681340047266187346298419778851818989511297021239923283476337506534301790074000298262009578421408237363327446341733847365187172563174353087124541774254754158928543787170221533876163233114598579958931706209687265676750715476518191056956171905426565624315871303052031238654426956908617327466592056002207025374679988011246571004036155279158648995134615742810056878013649792721570105202784125756655189767886896086164174716199867602183113248930469024615687917373562830961807899375208407607981355331100375953584067073223653957106130968590419897819594218127925275496458452918821068292522350098023243162643042873986847442371583055486254150696233759438819034163554543452800232345270882160144715899102573143939165124271500844026880446071169321823903031383736370451107056957160833149639025935765436030385467678603740818417985423494443960825345628014641736844360202652883291221290260693841443709929009002188945493636564532879975207911461947478697343144451057451098284064378840124819225872305802164303311817642841096104121851953696926668419144772340335505594287990519772429594418665036655114926093040417390008012883429435155904976740750502572811663100042711042962119305330015596543715624239675311610429941229157474978839527055007990589564165659028366208861094709055722983347885794826197241124675602671669045773509288626146948520586498066915285480756649984480846463476504751236143792853868447437685451965044264912085083867593930711048895485705344721593250221136602136369041069271528273928288067076452471489979700240648159013950903941155820463952333426710707913378751087501786817696235876407507259913748962748266028151972299924421925270026338303893099652460068753682461069309126141994305410921525628625968222671182190375967518936367925341625526332782086823568634804053166216579044588956189090053207962046647283815847070366077570110695539859208276362394529685908606726850427694849577852838209163171623492703692965108732205591669576401128581598864678921872578882717323274188160811011749430587362843836424054288152959686052717527052010432779163188632699291459718289715987910714645146695297077156431933009938056617612113869334719113767124349775122390405425914185149655627423917448268091518562563494380699886301755648111528843853707198544337772497174458933280527085244812955103076047447492651795162590599765600410074251255357783472183627443529213263847047624878994499727963316085626697279784839231123245408276684403835573412130218479592413991333173228647240709569821120107903039722555329707611461793040338594298300920918780997038477230937833937752670551747938057983433175945468786639755660522062480013142447890825301550361340439855012161049876293590412082046853030208385034906197291432329132136883240965747566744041520672919995560267110310372513654224836128661464562738131036969943436807417757437251951943841138695724456600016242937528806883527607937386091486641910170890390909900329349657518390431616247069007337849849738049696862145929447385749649811165859178417651133929082409392486778281611892073870481157520820572339218722876686020632882674626204654301980636400237797657131282164310206456832713496733559820806763071180748269752017512946731493733214295972219459103887723523654339796250966214845715592272323446341838806326610423169574067693304878704235269484248613923418275524480351908953140707712870541842948974382666995263341488365477611486561227341439721035998258075869502554973634706456582386633285810357838082197135285400891412823602108732304970233104943842916363458198650390059737365948765270057292708038912020321634172992976020671708120507246511531487434751620916451654264589174539827022136180950862110814650060960591878789249969993600469119540100321964142656031011018274561141037582233640525517077496057932728151274562199166470257586370023337273150427961702032115887064276027885844810580159734604312235213530199096504665397157131839158107573613186991208434505045838192548975019456492159853316884557728574630551182306070154687125287290808748541598592095697509107861324157405450928405653619324486737115302640957736687839970986790565125396999174517312590297929221671481717190853920124293227346962869166073484568305944658008895702913520819715381691139763176691644830107271451329635810397006879440188731152126647031792929978982762956913825431109004200810177318239058614297843934936591991533201775076183681148645798811848052378182068004427862110504737455848418620711386127932495470787086956493809401545234570651804955300719331027765026907767127925427699285005500639518654774696280067965490142226522555594771039936868307858834502522095517559303548938116467518315746548507192559290216052630379277983871037711691536612214410160269785906240421367831350251634012717302624126087723395234321643437819847220356361207084701013208428150871015263093655547058549162394366156814212160101500415076629669242085342289677451453824233307944740816524801761880093066480058447323354471373182720516885265444875642513688860255407191691633836897210627445889238840203455259664792962691912813453128324854544046819658964147109482734386478960322262913500764610983875049165659054400666650270018021871624132412679981620722249520411306286669651596402159112462982663083981875740582780510984538536251588785773667676417368728191674128936582134305662858918047965824237670184745928444628424126372051835623290123033249813733778796065025628621786762249300620516408057570095729550511893694600318590514715034684309531063445026754605728787324298367918190970371024510381037601624935966047434994315862541574554728065613297776570579842547805632040683362706366660253789302969781711399900638747161458907201262097119943194214067940882761181048699324331488835672136931472399049730547272677425363189956688350697971432247200930670422739177784377362831240466443978262548729728599468749673706263886536491742378496266328160793013966736467790604044651991114848517079020302369972537124552457531980239186061813510649291784225176137534290723083733001838790557785491595944414007903249169377101449499305307462422757443822588268375476637541749807021542111988163646844976535335598012743915069354903230674341781791867043571136177927715931193755122132539475791597405982854269016397602339250970801492579614187528553229635134358142511378221453302906914067341944727597373618228917548191496538475015855006867184641577065444055730184488191561757055230470084488513754496335149969885231302300831473984242710529425740593984113309173478484871056889485410308649857638534576968943479778887789424933695656805761432717790770884310960377821349090439792712959948942715097545593340707100576223964450843854808577171731878214979817431107251315166585270389482188125111156508624340888563027334853789847897909768653058546885417362078943644566180577284100551237354351683894835457366899957674558943484695360555536657488226687588888840822692467568438678607345822624907998072060174037941273466191678880371674789781232926283755236811705924661781986703214025104913093869038086841822710168253828206966868435526229511669995051897875765930412047706486865827609726063330335066911445319806833391119345369506058293440858337599188486485448670461260443150728417347931806304297687772320657235618538252476459415704991472346696618656815415165409538621315296506120585633780282360572019017142855961265566816901659182969639638397361762727480138567873014265787389584667016036756110939310315782693747287524560823894329925849714528271513174727963038150990412990765413939908508161055259317064949467729526055150298383972174614081189256621019900661414050800824833489136005522087810988303470903121386551894797536627681334698482273966287999447112469549870101536651212244740793719444302068695280759774615535505504569496155990088366584351577926647090920789804241243146354119134616321851533003821863003213433446676501332493189810004645696505592621380218608372489052377785744313912898874006145110052656204332375198802064222261472355536279630969099259641044043495937647493440550947495451625208542615287584158462246050892723629163004788169587792216790933734414098478096249109075701451289384620140893673870255395840998723366728527285773251993161201002583172399694790560652882244340252002040120593362618347853214926764735687764063827125478336368428040498290206739138943807504679871028442832360756582666583886850190378655360989333061092658456795413617599393313721881569357046705151481758732735656661612822365960563427604134225316056542716520180124156394530960171438894024305529235777673342687640915957354176565823813799135256465790749287285268662068253361766784286216277366565390204038481580283219648199677872807309533418368372011176540278583636558184298599087835396061174952166789968863771885320448816719749197496441872794897213861565121756975394543828254433693191034105500472527202506698053859125715335620562374092366014305567808673565076899376391585193911037069295377371709178102702673585209522575164036392936910238029191435577038073971595967812556444509704758654500422853755130797225228421448128923488717279331575370921305775770144721354746012379937027947694819990795412293184414809254206917402170392914028819131441653978828221938981669368401868037932941976347899713773035666987637601090201382655753442965752318602073797265291872786803522956659354980737429413832345221571369139286572587665545527221529871150600751097256127507923304833030100446575344120433563098827320681923686472835246943601987424978928201630788346323379741230908550822761578625488923606337937146201938387089961031303624223858749682810232036284871456434267706099007559413804858126335778196008093595959955447969211425595207830691191849726130365323032866524657932572639959621542928987836326060022636171951814576490013689478389924770383412553677979317997828232781700493841059592984194827076410770099731589078823016718269869408576390770788187085968181671188895184429538161063834320642762972288646598795654660025593346709373056426594847409164130573577631591074615090245632742746409640997704422636919533083883610999901587405407626452195519933759093204323807030486841270035413817723119648954935133122319426557702337927576776302215405822712952834252635078825126191683804765291217898604702595779442160424029592411443940107763173042654763946344609845498245415870075091214974806923625443947129902177890336796362786763403407903118664190642678938966685867905644388338893324853461087713538104151295942599573804864676890366396662787197648614848735060835610517206971212264465806589834914883931137679409245438079310439122580022783607700491795638036698025544639260526155027437730069191645796579038324240339462074399043692885868335686931722943134821348060517419707393273624130946444262926642680256073342929696267309112632384832737295068876608957793044605481262421862141382253862268612879691420649243764810790197327972364711198039185606915929261188286633300359697388673255899433605930864110514269771621511212290772861418609476955686028377774183092958910297193112859335515604996061716931516239380053626925443352896863841772959531204380729381625430959267284271612371495325077759607899456701139669152970521994203127835227851975712153002075408517335374626545927144015799917349709017990245426703127580877109753709977268170882605119839788762659798354518669623227594964638712651193564270333318377940890034529423696983185893055274943330586765118776662566365132980040812691825901586079425187787602340733214717062846378275969490568060511938601111011980487526499513114634609494535343815742849152315924556255573741835275353775225953332022559135520731975976081801467940007813168326932913131803047645613706470250823180679502234149075473957816189039611779619251904826819258322375034428271793202552320695495076761100187879228216036168224219154743997211827432879501905654190653045549564979312958175458490612068899929163725372059389712117519383359623223570146979618371555710919977629880317954972434900173936386242978696069371106130022501589732636532221915599819458937866864352396010023443132209755237952305545082504214239872438393628958380326507553800084192224018740712213076737323204392451496479382423536567327497620152020230971763917663277893209356838370793034616411101859142008822034038464655333493003565127717693059289233425742973959738339833770340211722480028151616197174765475992813236868092247412366591832749568071743666505617982504407705291316975709964912279376478557399053683590476673658898159643662974324522717333245768133729629822828617925495320176064742537407505838070860014718102749653922031935813795834329372709452765802115301038620475581197903516535472250450059906642837281543615734578217624640774431965432237936291371269321900790071137000247938564399419119166307826103614377302536054818884359666223123516128733278661228981428659811582039783110144933309328809261152135135431832212091551983539183942126457149758263027412565682652162618393813081333082124719907268474798940554404984718182857668766230160967622199466032297573181041489060952224226967043232905418808613816639642516295910003006363955380130860393644521767429545896229773133506625266448630241984244037756810852511992657541721344769905518571998824111453107897215902476177869996714373002215068025969701450949577364809615554947924189101352080360972174300104169128536317435634670315642125954299121698401188255168621312438979240374805899294655931288112889427817957605486390438404016352458038166595797714894452240230931527644769247883683363394757627748787305690104792430995659997092950580746387800842047877757316269317540153926908028051920818623856089857817092906751216274051825204618630342589525837042966705117112725826520433787537437431004700318978500007019466205024254076450253488293743336578886637512370001876396868728796269658360633275809931901131494061238057759729252219750079341036808537234285186106185461576661306386320047505656342950545655979107327687950208317926696024045386466969991088821307191017153977123835629051112990854079285658063775157531468272480393468697235718954116384430247689135412140109524455363396195159988921842664870944417643164400541263847180603363744564765872865029953741516019095640410457749931442638543055921452180402525343272038376644361157509348530108223978035687039794391145321910249370721609910533568494848321940417546542614669922614875038531025139911648096640518458069987931599176917183662173666106299762595258721304902758681037394784326216410448996147969954719745686923406027880407006921028273610233066192022805402725675945322311710894343232716764113457665851397138531936198605378980901132858453026161978325602644382908223943344691234589292658289077951098398018729121672953666627452627727689261699550930093676197427655663973570383844080984566098709007490179588290036085245778383747958341769401056798347400078637158216091757779129740926257958749240288505613910053731242857454664395785145114446101869926706406902640722227364731674097443883810722461739545985490050782823841584350897763137276684654741887050693843862737958747810424316397131190973270444005762540368579438143274039782863353774595646231691559467422923847409460535837337651951109515123960301847956555649005549681103295330486628865501492772405683166259629221039410126939503145270990242796887595348126903786442369091062207391299895311831192254942569336746253590376007595502104951881096349859328331314615684822013968349709603270085493202591192983281448609871065005114206014804754860618554059899394616106619841726559917456990128562773886731267949163298748164067679735122259273943809613577514455661185071359555724284323429754618334846766079687301461486148536636365159101068407575376146784400883900712992510235618832980514444838493635104440386488330310687329328227477925198053143000101641954454504805315838683770097570042016809295144790930347300269234572326169995731931265011327950671780289693353239369078075459518552297404691565177793628359855966114566625667023432517344641442875459860334515408797182162553416325967310027192962767091179305220146188077438045231980557635837558833107694121047916863273216105875130587551692474024135812065452329912816186623924533964526858006807283665983700873502671329733192728999112618000395357350113211657709981231816388202697068104540941055465769621039139327260118503143129757880199092544964101152848018886005266853757504129422521131639477392431635845391260638783300100818492780581357089760476732086624618133372516163557088921876660177908676672688298999415218787322513324142713825851540217509175526376243597397123295592002960034056075217181712700196206429777353333936661269175146712360828170633669658995788900267282823065811544611463501479621977900212515757296360714482141290130222103688975095702219540960684347081378033948476454808982407671115196386164352404695184189808720390884515749968741291469552388657982258901187291829022624063547604768747599863496346392369567561382094465251080550001305077684893116534743236764620575321736278035649277299226054765897915128024342869987416530849272818613810417432962490509752597379133057969136608007579637820688871045614661682725906411371847919995973607130788466104476462335123854037267043006701535016144446661557139320742583353194396489927832800977991235779345268412286389208110496054875778852177671375829203394784596565973253805840226150240649007893148976191506207974882034045354208926991964300097056460276820899741805477045262255095960021789874088694523621916471566339176747217534996408439621403600231007720293567754363000400996565227674485566421859295366593136354825128688457474548096001406077348798986519732548326705116471086270568042506090150403957185793833916468336876711978774381521673053599461027804704646955450013691560542751603205572155605588856021240826024520706467581442666268916231244948204694792004831141055050545918232516844761702264805830321509887043649823290241408387579117566883532977281416519497221503850244536049200943590516621813585083428639179250975175845612820490649627099217548945535846432785188616227029312922836951218196589167614077550318831522417924801447495904514793368272099205005577875358223213032856144501672892773355806674830825807625771708471241535753088063301342714241638773937215293975916454522992753425786227639564280792658041989570841905108839804479179002726657231676878563579241674315302529808111450317646383378838905346655690099959797765409512223687991877256255830991610425452737602390597380645613061222754140835095441300196581826195037231315325507060936977312749857000897622578584518297192618102495994947784339003184535994215618813263929754870517000153062939337754546363830684338628502061467416903767395477259402895132715350738109323858312823705835414544399981446368417499102545663198765100392288120265282217458979106448155333932035256833672086321289382464606099494599241069697735867438040829623847939526705651883171657272591194748601374036938260348830241356689808791919648402031581026102899396016663371659494440224970573973038746437503237551698270501963225347860825810295592278998430421333447418509346517876660086537288522212398613334891760148210258779697030796256514654180760895424010863414525984492267680797752622712068935742327938816065545028782466985517098331492141754535769984560951755117646828292220126205902815600352161675820792119294192643011164973641101800207496238512107051790664873331992154614159783185668441759874712090891170769018173195102723760082039900403589838135645440239272989677068583778342271694516715731136275646083013402053214960463719430916556554593182814296231083348574701322269889962882922256020670911513380043651733842081586519953357574868473023024247955215371288916522911187274182237965426454178229410803443925417124945762929030404990812621652477436563588732728669927614838559515054770039497719080577714730354266980415995388001333139039407719152238709744246097292536296606535646276523433436149453210266522141598822863769961844661487308803973212262903394450657945536712669511782408281061879969391713780073364990619128057068082657502375831586017957860869036906019706591544749336977519794559304130389661772968376705803958784671139757524470873739963840057912556925478453950208810525996269403279307098496724761238399697305258135142754177258152878303833005411531350454349912061756242410593771333889607123982132028805542754778279204973571113425755261002507225829516986868299161832252584637760568940060175243637373826360567776298945132777362873459627118796987406037752830926589347428960442047091619983526186686554958512000623060843661199190469245072869560014843745272172646008870835895601129983091143970294287544076606643338595079318272435594913658109498971076108267757645609722760665528674563099975194443676073032490799061924547950288706296957488873507505136564176981096263912377944006057227538756785321380801569841619921592772645165413866869137527360496463122775682335580031407767503745510737937418468301540174819995329704132358600826784934019963080444144164155003588782646427873491484031709696542390922948698801868189717219535936811577096332000307223406130694345621570374034397961084972150571408686803098856104210350062000758600844173246436944717618802925092363559799524682616183638383626773224980029262038480208419757978822924713872653357998934880500319788146267068138008576257738157058847674264399044326191182807104665299842653183359155149210837935575376030059274313247824459000884901343031553333323465730521200518648992457940051792067771635263978192823738614872561295083168689206551435843526068531734946618139564823014812624460734608822764479836002619375404732262536711934178726896978326618070600233620533777771606047932396608696471903198365352426581652504580919209528706561747806864638920094645712219898846931243560494444834733187296257292512483302915304560145107677691307281403713322004558854714420727077344892179709999558430120534745030764695550007739005930298256391347498123636158765420212128114471488272149642799308413860263018889329948783404603213238586827484761380708081267214343542243139448225073498929119192069577405078820415650997371717885893832474040980052527376329027019162870759399329849126329174399275926152886632405117170018995333075045933173392993201825323205833699024058835550207320039492524351806682549910336248403470363500281594375801034313730174200768193827144835594122826922396861170576462736789353906324535535881335618955857191722041870597795589735840327393005953808158790298835645888922755962990788589783196295318219362253013854353794883618788194020992528000212951600633972986425969693198242978470702400994234449899457259559062270359225761314100147860042821238470767435420292548233314518487812740617835965046361053435673009892050357602660571407393198208702322868616045633463070345274090790498251316742103353761772834636380143937719156076614783099679224846149909365909549590080770339102659379694225109272148749011598723893893666709037791942101280853950000923280667413203006921610250498968073498787636340696874505198099335001069535241070871558553462831906848806068904658101097939624631868932880077031196000588066656900073192167347644196271059333875627502994712191849831567892607928144658427031483487510178920377720074352236105945163304113478188054718960537796849195649916482490626885387213749342678358643910951106657885269558049056641523980492653322064982517837832494614026435804803889710978214696976088016580870309572959666872943592175979271193504681660374118532373154241513738344076313095728546561570915211917188901187765488596758073768067861654914071745535026138366487188028541238378989414805614018954527588477026024066813720616624338102911776739274104469460513435794887479495563079528984556879309310746439970299420636898358637205704454853206104036479645674038060679301960669452955208006461160421855507759115367576237962103885261033731429573901873305041012203206160634823828446799800706855996752589028085355838152607975742508941765385900541634288644627910303541801668583091731538575594956865191294185829453332702853852918483423835413184796047750401298771843106255467589764334429367945772848798956023323744980151610551463602535825625116399341516084325304775657624531377219125399194272683438152373985288188777918101498823850584429665252414049871014760642268138660344589759906062636848246186029052190091188211433997028764929185495630337873526926960369078828644998860860285785741419420177350310297337539188004691998635038315628995704563917623357879679052098304064176576801151132294992401512063732287746736342536517914232752886459800855937245839147162514202528618639665575365658463751971384567247738951643762177883869465419824614865894683377424162760827543145340343853404756417930885951904539534981235539290253694273700260010932328283409868745776780797535313164188549593200553687812618693007708280078729294347756515553906775676474468531114398317253460780177806176559768269476019215096251133503334323060322931065713195161583765052345150811933519739708067758941617571533503945553469197497049145202502913796566270348368954798389958748850640664953707150019070219377043432720207386804387622089125979249099545667216593680794596327127175052836816603580866833724868839263528199937052594629442346789564751692228890815496641115679468070221309286721020578021040903146501026132581015270497930285233852724524974507893322935199671867076257204499108975717234936495383162051453658689614861362773930792846228555852918849503451930146742735357040221673993754286869136031869157424145864593231700560905415321971475448361162005314035746256416919020448832457408656862074467756196403706777290093462979106752296538935139142375299667671730947378476604017994843275435250453665581754551518956202294671477595198390625873469258165966485411391953075855066271219818882470800595280092733288895141453534262018834745418668930959309962830026080667360798284740004151852254008198338379851377024014953231633702142458963368702483194374468211974330755217524653435897769022464575444585699724000621984580725873324480497960482279150642458719217878679953775515014254578299379497855112365124769399427331154946858683543234912338594381448260967635357400141918767403773507824990321293956373530043331521744130814434297865972859030591890633067725412275493144790629360309901575825080825121302394443505272382165054741611920476037020645018738825471922149100558191706621073239015628562924079895774312448995427593187943228055313150806162546516544943763498685424016452156952050631586542483272218305468097948860844490617603856121170881847258097835647657109627059717478576731676489477357189285265664793989707214163835744794904268696629154985280167107038515152817136752452440773074341693921099631915014512881235495758226034342594138074109540660058513675443641575531705222992250984848414692396541972453671012674128601168065311606529959706604276700330132404420192463565043366209641104419738682245538983019521272902172239144647781577975928011880668386841666238071691437479989352034826826614628354694093032848265795747551182630328857231379808660822188028479798960955078925904369060520430526692432185723233100553612312285126687531305863843745132275090175242456237945935680853498210532447504619661989102255568532808660828754232835875173591719668826756595193202119898628841461195381382049041264200301326010223532703230895994634590076506461755165948574714662818541691987018405078146735566291482510937298001480044072380051527993344882564150907666980894711859233231823736723475512358661721882113621465158152775713952559494080899541796014101664935645720618196321560180031556013761168654625438630072644581617764507361407311576363744483658166749115757623699484237288431104055847909080424510178237378932942047408145109078880348580469583052188062656914264146596987519199357033893469498156227541276414663829559322642875953210807289079918022599562576272329591578425194469842726971751067370165722082036237254841952412564888423557209260256391114675377716070161230366712764529063159553991691578490696130215939144224319993441282129406128996783858324692317374232970718168028232310624328432379216720175971872142166430473744074722776412021624982949468996451066374716657943096753682083143446054212293997490688915760370490353585146921656149687985200551535673025598293291204743383658819620368003473128794068163504496798887423382289468008479557838128328263081946228773222415905737650577964834922152454154786598660994778798045453057261932186358665987044232600982933743711662019787315569374514030975507808578392460134817838792377386065034316290096687421940660928757581404658786871715712080252260069094424468161662018849139133708181501689034752866382464576787945575353119812864927239976336941998560632355490757277001576413540644953919248476919561026455520238622132816872936344746020483937184906938718018869799114840028343818844722167788772156099287182182954634902116361355311734379374057637728141497240317705779737410507620382683068994782167561035479650076770764645087633651782855217230784147879474640883827972244495197634584890637823781359271368090612249769077181330632099569334200568575416495716599680236871380373010947037501636102786688883455737278003985927908578114191637643176898101971303598760495681990811754956490283078316300926193785841417995562002347225833374653840379563246083561431413964848860976352079826572417990281115172411106632168089698571120188065845413926676189897991718763659851514078835292287029560556457825760722336889184147340912128442609926322059715683920641523047963320280130446380463049291165568264531788959585545600642060783666056925876264422280074300001273364228050715725847490053520325391673600153481915127253951713900399866382214582762723711900923268064018631214451422241518776720016923009733803561117537614846918037771828412705267297394645225980927384307197003153154001718589354195324708750989969703222950510977064893358430143036545317034342180733467953904580414880495266156509425205187047291984098712824163168409035397251603291525859037849892539731037665229791370057732905001858914952163331480170734539119371486380815394039159723646009405392988550254521249791314054314669098453178790029385357210699590703457217033385771770808417440874417988594074079578466098668818114108277868666630925356364835867655958477908561566410250947779067928051304711059897629973782874842000112845567904127183947047285684016878771657936554516507829464292123635619485415041387590505231618042965979270133717647878249308672108990356699845761278984060456000403518003353926280134446975776521110110628414803153640168464779478137337677706006365640896844089045440872029620689583448006629238144630938299569301281143728949582523668625106762911134941292176824366792655037903315979937158840109040892735010882745417066485834324005748265118040534031579548480353488050905257187356992342515437826724565941745630659444983220772361966154851964725625215770012408572438243655855906102876784423675604276921067959117016934333054851456209978173247335719286138765942946660004709402294698971370683518064227425645811492685434463452387954449785931015768238110412344296433801536182687975124299845886868389203154375398318365391863801897082855574768352168972154046250753281253665122322816444708992590403498115296585249060722524835848918799194700908095643542762137073970554413995606982857716059205906689703526386219594103586211152243969718276286419697955415326472977141730671326614864303849803884559108882306742567044229937492810209767652956685651715865891548504820830328193737693962407899096572207759535904744000674884711225250267984190643949621828200631453470310090224022064003774947540883176195304633037132308766079667756094984991760609181027020112239672969322781357612008368694592425152607353119982922080876710424665336364379722803371764584837275760852120586402140789116505827929484359607404005816080618799846492383980618799103119457827494709087909878624328656442167128829372706906385546469217626841014360455546695912511253551604559762129409006382270583872362317207636737026577321999902711230447717487452230287839264538240425417731083696871236955356615415516737472009298432925999012542099211227849097337651066725049739900888321224435510960940906764545986048144849768255439835263389023044922494694835482041809497626481078134414883850670406070381332963692598048118622776536328695159658554576017462939539686506570289324372450762536426783679478002224203413108204223259614792525155653809254888581541873627520907755358734085549889176478756328743890890421682497744078824346600690027796017688831333971974979056260673054835824175571570927071375888143218227673866723561365077333593113736073418809872418888115404565603171300127267632767285800180723789208861686650627818799238586587094701560515698963074317424095569076263614821252882448640543819486278386730758766379064049848260486878014789985472527803588062139730323625893776794527027109970308740901902847444945037062120609300404099207229032341041768544625275724663380750988062597688654355143597881367386055322812368388251679092628515559631339806352372147215936296316125866219709500206999583644566736633356410936981090082245607816542494482105026511738251612043966117501150062243698630521010645105845397911764239211950987514932176071505995317789132742867639037796480288371238242186184645941067294400837132120366336032880579151702114547337688081529502287970876635624048523779752206073169204279619044294031600030044976432724049431274404904803325824431676326036985632864339379881954011277103009700473692572049857585066186330975872228021576947462578467278344386859361287258466803376353846225146348516685774782686396258932104735203802093913286026333073160909984791576595142601017380803365606247235371408935112206151832748132912276650310598389952216339264844336807771205095953726043164682727417185168888635615070255439989897587133041912282180344321060545719705335721079472812248393974423968950205087460942671811658661388395839784023352322330284083117449411511645237505069131609067679167936101571017281226578571271566180779199572435694097507716196455223064200200081798335182172522014294456130000779028961450315606251176378284783292430596005678025089669113262104452745298098379799749956549288550231283051264965790101630995706472671088424420373904121182044842105775151922016862132418022950410491714160121264993122433260167487575493024512426031749363831393336598744574113995899409154565394054318383413424514596562826500420865885509748286272414671697709641201006385266599828839253114896859567178934899721470995589245699194506022030164026501078113140308537682394073773823642526319626507304135059572423477984438319554112931155383147721589640063762993555248356368208986801148494768267018189022417924024003858480209485814209244846969366608728330742088386885852716547890192897869076397164615243532616875395723920204898570916677647241080721363653434805856774902528095024094166700096921696854860104407976214268620501036411464300130235765999430217720188699386425541084407313687419701006713572328232681621284896991470439497154614065353936071875720286612326090322071524793605867781411992424901717397480841257762363994490188145156831798183072695458855070322871814586991883975346128913224236401657162621475368918223992991556478896090164191073083315867355127584489523611437334886535514468028420214174825908648412664531587836561007029163062659897571466594950268890614717002468398996504249854632253434877692105411890423545860602562483004602521075235280420496477754564719584387783869789151709844650711393752083355623388491033525021778249994427722787137842437409522146246400711673404336830325809738919379138830836515375327084098149607929179220108855896699818004108355784637673010674895930406059627218467878013949869407752037541798235533306614074231512643528133081992138899863575161480221911019204567793883437868184361063689921634401001943551932474712932089169896384912628017040112320739960921026538564334178470240095650721714066318540868101165949364592082163150740066282642436400686344081830429275180634781024473783160320364428670897062280513109089074495900538042426028541246626229454527952093622578977889104426812482281055688714207322779961687827590053656589051980241748628892474068045121344993976560863965296400945648466788387817569766656032051544160812099694262081732995709285444718244218164560991218426555145098340600351492815181044972099539867215420845927258317653066715233899447034718674519892364389739285293934106717926531941899814425888936309369697743850023185115614267070583425989446990744710595752903851143755705901140208662870763796735049947531467224934879687998380852061012275185049575559509170226105711798986407111491523791490951786004931590431732215167068446023923228623904589500920739207221516325819899528317595273309685334148945946369149504235018099915663825161420210268389631995425339049748512724306533830791066187435769363352165942934746819861990409799191602102923861840100174604286934880987263173703657476775401867628346742163362938889624267104425709601501798740166770328303734001031459149191683121758472429863480867108905076369412416382162634687747401630073099168376447339579350692459768911720590389007007258574851863791666613937675280722230347883944396851756626887203890772704797325174262107286891282987702678624560025890172249106956378823766221314718581556137868778313273929009839590713072473667924021399559125238722838461550045847199180479476200576011012674812721466918367121380811397871734717328616452209177688074444160194445568050919305969384469388261420956813759518665738686597196104944616680201683724355453816725250718723171222896891221001420266215241222385596064568386568074653997817004621330075997203858139938929221892025564455180362997237995515890429176385859748560055891969548124575423617903143065581826953702259586482692095956803133679006199744732887993114536162405078657911722946781805890408924127174366814447767491572143112501359438982784566192252703456404651105813763245500375853781251072731125706480043253215694022981349189202575652459052761532953940640766149658310965108535571381269637424131482662434960697578802012131370352111403607306007047342918451776549389994781413361606901855643362170469216227952443524560587327776397386057331284999520699936038751327009868220367525430370331490783641423688390219263706536549823979157093713418406117792358875102754181547082523947516737737058536451100057996775310347667109922695583507360668920876425868474463088930282045868942456097664445412468784621376834768179687618398461636538097354329005151570194590781501728103605531958939634209158963275510364677043657004686940883361909238108401575033028876888038059795418847568403286489521774373901261817226506580372681081133053183856900035892846461551150140387583458197334042237893053323084461725941445765499720273171151374802738043131888466247099337536411661112086559014212706697312170863609452239299649023835339475539085305106822164804956634297028038448702910637271352237011323569943064960720737572843170822482194075542037395736521576887200656744313025116326739280401616218319836478711287808185969645388347376087445527927109943858735951321017560230907220129914335135006199720192364073505363789668173598659498717010449726563448172522383086627987307368372948269452865782167826051083419704451878551090586418241828677205086506851055543756365788684883885612842575273829383330658676256096100652799840899370885606437717374839632641926046409698228450961263641491406047969761246949077465302261360496982894378642412749715715210825771605457417314747870377188979074757652915821607487071002086979071932086738605331735692239074329209527224984686349312481953177862393882980641452367801971029554191350694273822386717705660565436707987686408164522560961419780683105702428642703515985476932550748112102068695889144121207220236715673932543100588925350721675780050827522107529253939647334613692069561191126737273819674648973225227607218951949842306542688709551315037472814600260654228771412717610118272220736009821145686267327951840171433348597091855950382649073068799106123941524657557296689304470189119082033389003971047931194137506832974685130395966990470331057200661628268316488094731766067633200645891934031957465671045501783309828840827450835707293033391426171248248000073037330763618009448847178216920199274959155347225482038734510624225673816390343677957446066040822135812311226230060228780131440769312808889019249452110873718374141695210723910274051998225716102226558143625162969247325466957089482560605220565032060506918929363607957531571253004061587827257922472080930572983196586978221324670954406133669245548076401644330763320191991191711274256328709547021325496304681621530726129947375002011841905150715938338399480949115689172662580477167737352078713291543468703170013871401265629306259244338149832357670498398942080883259009860852759908292344553803154622906420348272754076459443463480057914051926992023625637071824759445157453511642325578779164780027982192859653507975842625774916446947144129401442478539634757675852484554315796379657895428364804710504692302059720410117870978791380791859409002727258198066486512457430970975697164597147311032100386421283260221401724001069536566226766382400348465510598298410930481053059705315205398643802534703632172007834037492655529887010227794025873300294914285933190625095138146684516241947671209840434133926367034233218374511109059433762166411475948701101240666329562222829145245721529568779259363321925675268338246367834020190556651949332395260956005216750728264335880425071987187914110853222727484191371500940699297326235854466119481576959908687521080689694637690377205429601702488645332880741874940242060417592593925251433085264717173584208826659775341900515039093019210067381884088373095687300175998674906869268677500782631058658057574857612543022642442347814619870531712204770161413754850926639227222787703056809007113181966785886202674961589229243572420463463272950846119512822751456310695711935460365347699489331215378642478229111427415706539157368286726384847341648001595256465789271599706563216416793031083082621622024646037059519963434785606310481061361887942095867451170289592630720406453839736333622179095584949157471168739995224689384968123842225635161372131367061583995486936103895415553722899447488861869320156880136002668095438051970916606578599892576393247514588045483873897833287725510093586121079228797199184039998351720359757278867338542796581062039114197839520643943023884693649793666497997992766369672648869007717411142614357687194304827109767771039905748423125740303565838406657993592491994276513666849317874816564664795997818157091278945629887163675461508250021621844336722324817088960869760882148065300175617958788009657998963588528436429227216300082089491293161553330581825858276964376222609877212040744056769262103814967834867629465043462269992474728664952199512936699881669214141709009493691961974859076861837740237446517266965792830680827713574990062617760813745639246756277993984902878957019213367098227340651142697306120576440884552122350151686542896401308167145218599054946727735036768879502001435223902957648659105198906575354353983287643675944124196934005795025150806082702558208737403803777829010985615646567757055760208636193296220307806775269928940362054688078058905925416033647654638032768111215114917005904406802647033826243941872190204252266440111249694180519349841170601561687613737309120671114322536215909408474677362371661076463198068390116541532199347576568159723676718333755232131282118833609809632297705418657162616315600592898968314783820862941002679366069990972932585086455889416398841622256701819701581902587103479345860534088117885100626260168551251519178014583079703517358996365094573127504409262336891322697370312700669318693979913716124422972353588330737877343585430422735078818321974205908708398822311343260052124815271135509141731672855715449071849486428465853969746201905866435807014901532634942743120703536603663745327999629210178250274177137670625556492526542866429032341688999489508373561038131283318453750028982004075344568496762081265307211267304307252775266852632653720074233033769761993093060547513053711021373801008994871365942886715637790953314127868138838280109640402602690210294913321383426644096744916051005090252527786944864874254725780977815171159606762196826367052563964694506963362470763779649950330816749137616404250802809151770743603654041757504776793447957393468708468033398909537985328995012618912778277545537447311249627511724419038444428531261055038509193412040526044588185782512837389464583031533493736486612903532534033912744822710839696808520799850447100553894875213908012749827272132478468996518533033832584974550976488499306798658252481161619405226907837710290136602779232146012915433509400442410463782253591762425229211383823047418414098482935616488496624508927256867179039552741930177091794809797966466326891386123626482171899452378732471602154477518013763696150011950139547054644554187460002719046681336004367567265073782374620464873948222931405631648701173252944795313946867996410055154971236781522295945489684469588141963716638908245354693140222743932185540586303557820291721247585191822026132972774049720887627887512989345458043625417078920821001111812534094138354416421261141513224241371780616769068787377717234175163065844495476101208270112979661115172154686725410783392222330167108715060284372911771357952367196946765763959486405090522368429614918200991890522619045132643295485986823950540843216781626630346017108182672946612520084239540346851700703636878216081662269405439422895316941285076533296758981393906512467443852597063385854603897598028648585960729618784276381766401082486818191442333137982446782485684623381554284405564845897388965222446408135821377953975391614350554675942017295603278528861753294490888140341335351815985411705197861245979730029583772093907537332578752125352824349366872755453737897156165339066079942938598086760308382966087505301378939284274466085210012011572420956130269148645171172336497317046534048745215893819701357748392111505699769698688581375532899399613492311541574074495877167173778375351727985396693625649064523432701202720327293313388846084431749114855881120084660537643030127815372948627062404939653548009862789951354677504846778276095497991218497655298476715405313332798434990468963188770449608071018828753733803917605457856711240310929846749190259634288607535849819767544216531635392693488716457426186758196735997426841666720156757061922717371038108119897713698818821633834547290588050729491020091781415553221618290423464977876810812554533922840787340922805444064460271213181280666372200486905572333040369461914825581908047270894264004230028507165486511786426820584527159045841276771086002459172540000732960505380082325804190982699173020072566130425135102405026916411027836522597356512261349079583627473055071497539972846026693629318222938228418623470368497733380796635924486484076070134126491042394810323147265319783261301024189627863099838160806378108534054694079801450630198737293304532970682321842823616177738163515824526778102054235373599927463190216149525671539543838524324943786092664260778629868753277180549658135475262313042917926617670198358432682816390271735468753465569559381043675804740610150191846171229395946208195360588656694103329296782901813490702421951789099456150380223303367476639087019543795140476810949185623064662475892511333236379983879365597941593674318228208036753794773429335531648878783611145463267196170857408195015562339313921897521396255948540700829466119069205410948337973201295533927007817910295064094204397512267838971792436034005683647911200561108863174765949834398301388467638185931006664245739914918342243403373676001254601724853557205529849925159563619650994500872660785635948965157742679425814394617726241817103041721444043771483741676573979652624300238813432508247407140439108915899482390616012393106688943249592640092343321725871170457978856408413353404691830231312849938119478182484691237400339991272078005910295784841604538094785549422581333208380680820526835695711408646305785669185162672332188124088773458816205073921216692373661815700708233437086435198009750021367038364724186091937983490792780702869489918597938734746504578000100136858997461243756626931383554630499140713665496943343061643511424465585963222190222866910761560019763353223130404227094594082332996840040223688711451959677086836832854776208123899921194328887563871050625740416672734491715588580203673879317204834222705700042839091625363841753884897113474348912539292816861539347158878192489512944157166919663505705381082488110339028351978948185629637829147910175860955938783754631124550231271245205234143371733273759433473772873687555873268946325046924165108128831981013933948556278937972015314234831147063048433458937982013353543173592198205415551372451583838895070237576923025910685453317692545344107914269685761613344526791596931106493042503573689357324200155601285557808325976325598185501123720980016454041677199714458187539522044696579984242157387765872643608246245867166094413198797028385219734214199154374380835520254298962370250723048205848349840729929160765192471196523832525355403122748382322471496623959105721741443845030335381187107471857129377546471483661920694640055505808878382789174297558767140346587391800906102192777996333405690389256810770531898860263499112464922850855484280601864322162504693614006639131929391835226244506624611329475978836257824904203392259226905771185609737055693093757680010151119749502808110520695303402772986489964322142349339808395710017523445531296302511750376313181500010580737004975602463905902048169369313258192984926407870862369801928439083131626676720560034456697763823623815818047164727345851965402167567859984083253963109747918902954397679909075710260369591248175380496096960429374234409545098793271485978298030681477233693047333092141322360675440399811489090315459802915788695312312518550699307066685626714583911848694333872352568774576224306899361916350174461702016615167391787669930078222246066487841216584053284869578211967429801419325970177190494122342445801699997455505100983348010606619167032101536313255842371902273716381449514636839606352098072529704956998007976252766308197178578971350239047738997710209581512531739391705693836018094368251043398157076243907694689898686830126771683316964209520627952885378145775879485918803530698559714708037603662374187145813088958280155393175450431124885238900260259330353403057155981730211194300413389077581861030593967437214371324737037764320230090574605301639751733437611086134455671607495279384066787501495876754832530222841623649421832616921195452005756781004409966072224573599812730552145967694067659858078044780565831486405313254230057305716046757654264274506613725165073595986390939715667568317832257450434522463929947142282066281979254281277367475463135232324560987145837286551264053511828016437390497731607405315560957737875489344865856109011432714435823987831317151600161428055624344775638104237991219324330541455725106452021759178957228041178312000571429068759949509393735469606487966370462434994356839999727687488085726212717165328552235196726131365844798630687284984604813854612403026539183448032850299103233460593397537646030422275714332915760869756516112217132646818926465878916514400198922285700335714263671947579074772849863694838321234801089402172348429386208093037885721065564394180648538278122685274794587004224245643780971380661305010203609026454035872870027498756640841120859299245029811036467684374690378183065218203830110528757169297415599516091691768768490780204130618397877346344936496160234015114594996146504852402200754123264384250302821134456248699641082315463833146523728786954472962892656639586004006077186732788145044485009236107472530021295976241660087073802561689330480770016624749998048020787376519408039989777260075644883411655017107300642027574838205957235445167683227766098284249716011152348963883812895339837023694872953927699482813336035964753656325357895546545952957445112898520521434408062983331770939207929163371105660478944436198299421298510403224992380263536893046723064642574231958302678522694688108914453101652307298606705843761689928769242915034028689714527028892104401815480908490365250646734754903349435798319171266778605438477284770434115190535538665505607506272839868993143567463280369975606281803322135939740382380094146544981850259495727927131992743649300456895057185963141560836281967518647110666757666739892906133923645879086222666761067109022572073352354643025703612066729408286829964355762619674794418097195006790915196671327423583658112629417139332697038986953099065356368019510584231923043919079994960306449765099915796233213044073255875967066032196295415457781028372684043943165641446098029127363491920375948869370875292854909434808603700873048311372359012230936878603492116666981375030096366783405000164418592774878082569944491636412692884023546044771957623045818863471652017723907917496659654598925839901700727374616543647157882604253871654932451060118002733418110148183679007111783005419404921747815910138703496438730518858275201838581029438596131758320883827734125520644134481862745975978228889666288977298832124321618254380400134649939966153691458550536963756450116759144707323173422343135791228361733208379164499180879880000965037640223483806000705919601717504599577659109314190659009570250183583966355397133164057971000616755895721873703964742378331435733606228823125382300304224823466368203949047165026428744771807357906803386365114897489308687867734612131387060200048600995200259365726599376107049662738556493305832961297098290964887559959212169930100875196634552380845135582921066695470813370707943299751043841906014012458399932778233004685935346556829047014674202660963148661920990368019733225323972757888480262101740318435697180702789926866012673740549886914264739216020116418971869500793024436059601100572483054513199842411180341202169203600363958496989255756422913284652105309652236680603398339744739079174905711022054853509098364162872501959498526886247184925551879614851398172771331150603720099245284405240000588245972315973101762755114146774827213486540945152307402137269279069609534322954967955982690204738855966454189967895089662525941944229993818708566641202418377913240056108941272167423330708609593997847705319757065755617985219667253540712640258186932988907549360755978884124990596102145552318761302103770578615632078892372707986579590390782049372452391353211498531784964763961136635906272046356961787408187510326067952205992528268273725898661345610874136468787848906237815736969188646390460559027277797814341625017536387229733902545372293390534951409252535669200574434211623491060273711510188541787064435933422868964538027405077298114811635236851782620854187776507138213323371455948373896629402938138896574782245577475143318700005457382802313841021797488946651761152707063502313732553777889458895081523775917754739160186375544561432892484033027593849968093223916573230842010178410088076274725780245583877865542404824637856905659784266719291623593755356652772667273433475853559725590527407438167530211276873990149644604578565394136467030226053016754934335313983293759443092866401911085718283408521340484499184896325937099592766198585945068500131503847664120807328175141174947602620418813992461112045122156751606699387335464484502510784805012234905709061324270239907922049451550458488777842564970262895960366449991965562378061007074111614032297864083193765387255328467137588726289516155491170629056943608322379221550890744537951797925675673559615678188127048679382510807241113720928945788384884555709805901631439465187304978392780746080570878863851811419951099129492256893314496616544564627534333910914476583704689291466946975718855297580035438014325811446826335170345257631488576047535201452197754438803589897689381174214220464633061578557516709855067074229256959032720726259140434351013367946543394979077503977413887917713148467397280251162749538318951919120546735095031751654653885523735166169742845260496829150417034860333174130709486296135261383633237843384373373355931319281090197263391205826645486891793372353575944214189740772386921520075719580991442359623720175356249076613851194769009300412160803438248636016125832800656554126966900483493137244703991547136459605631129152567280380153316751270928591150272565171584879781073009361714686420994392863077069396446018569643140812093872533689922952410171004745245082167906697468543900496323084676440429737234649253180847854180125137064419334694736151886695453037750179274213982803518996332115611356915066724434482346734671946958113603137869040775274941549297426653137086199416572530167238741427673701095462561165259590334638251980677221954927121930524370832862651265668875769475528390716633488877689433404130125100335987827096189425498064192736970859062630111139524967580815989368135861769941396608674750107440650529413821977396272196494087076658116357458274063929384525558369359528301544980478338987588996316048913434140283234908322979281845945947797933888304843045183050969179135763973136998101223835518934439142650992062217696852634016783158898101359069271412412904594444403372495472007052794798362467398301834858795670437752342007442498627755331374323928314790098143136404996286685767715880147982860786414492623118822130549028931761301655624794713661602848026991986326595735033246185243775522838090827404254983658198432672584194499900330532876322401869498802481272465096276919474921597334739229503950741933134433567042101426314787307387545404302407616383594228608474748870574510357984107649713095984724904395594965458393046249849299736951003616671134510383870475716235166781216211814811609316932870100623404630601222043681124882051547303443003862154858541585242779490778683601744291463718297690177235804730130851523469179142882208117278000917204432770855575256737918019108144633429737119590032789731897745375864444067770034857528603067485325652795114242464774538542170956055280680827831731101737153237242883592480006642713275684772531829353805120684830773450632672146304784617788770782036575867655642980768437231623176999823700919595144500211879209851274575333619888614832072053853033573666138204442477366129439376222332329605659119432449069244270056826593651207357004994274594483066946968241680186733841080965355767738514467516845258336050719208890262998582173901568515000879124763962488593418675125897325181502204512661996205952047214244591411634322049441237863127908286806527833260576025078511525788768384200244212712608733505994504477427537449535153875680567052001345450351005783949129929158937244496012220572080194859576760372505298818129679096473261291478397387691747718468538486925600307595118034268616374873904150932095212369460210252579607106097153774651791558134456217519526495701460791093996213311125117376470234738983249290760146531850323567347989685296306102668524014886429562288318357039739080523767682187968171091952543083354325235005365487717100532509917632068533723769509068594855184858421930515271631344226709438395322767707101443460583054984585890961265411330217944136760135145940995621673962999291317709411555698611798284174796881695597700959944691317665148884155688547104577492110275267119362362196426852675376819755461688432515466042269546425992475114612398797704406651000758358974374701921114873044858047290760127623850487739117279553024946318520108597891703019241412601955859868345811704966289423430763763399050583395249073775473801929340731053277938537370472843653502085109479769084421995793665220388556511995029005075009073085740099455043810647289696813709313937224060168175069339991359789524437115833635478878172387221139014422878864720241044199379993584248969881390447341972769698002754652121725317247508360864419734698806855370767869261760473986667942445456611043648088789917895462097090892159866584028748153218255285020312477301655860053953952290273652776754069454125451811914816054558390515324659304370967886676966198806906295561169183923487865964457365116213080483230286452228190632432328324115681955934619425087114046021864778379745951865723476287559111227872858688186666997851033328332613380816095841329188110709670578674272808267831676608528003016598218297995601450429777800813609375500506773640735582133389264410596799768932490355792831998785180423387086217669239322163345185691495875792761483983104494815327854821698219667917194669296347734026376502904934455462654802864193043929188929583863791670032965988031832757040656567262280416717465589570129582440051080264939679439037983975727881204686417344818660943941687926956775785334117501136464910859117229776554826796763689669794494154272846978154598455916811410271773785769755013755572517434569525478524412598581319537213851189432693271304622184238217433325414361561614115305156104452360934533225003053921106378053106484977084875825075464471901822380965388236332845840426680130157705927260754238497915768442006504355506048777040765938042859942132536596117823445040302808190904178279538209881784527180156829661116042985136738411587103029688127896817743965736964498015348910211542977118713893415717131103215615164310767442857533191768612757482503847558700421964037889387509826312260478492258289481267956468168025311703375779917340704691263252821740765321484351525500714862857800292321264695857157063029549066602682763150108444243431938544676934989739570391147716577787834727690060880665057428488362420322841042589611184646759811107835896600561776816700263143940389230543425020454986775452253791850328109152284605113631476651457254032130632850560630235745205528340224754775045359122091700508734718208550569282062954878085108903842458661556651448111274526902408461124407482612258648498628827787468238509231825473075289336357110358705998806330974796592970683240438583823267833857152074560116069545494786333172720592810471908800746017925462434214381278079511199298340926026834448504673673977797833051251239156673751509751993935268535408502100620481000353427999128576348658953384808871436381195256842443957024643937907304739782617610168518850451319172040230074517666279828258665395256112564262705406142507800122889408122089632340806648064199722272629043658725273520440477097542519761474677976216773458002648882184404634314200128772587030695014507789292777293489937629138757533805197000912363031701556143199604201574408829273359960938601386708483850805677892480444597296594365815379472728084437042044414294027279140066046433980189811340932761029156381409325642162716108204890274862882108626236633670510625668810638474433547981285346883152242618617738201966104691931386124026504930526572274553865730628816820498175600550824139391464671068583737856055728722177515771391184712859241077473022930172720525089050644793564024463300079096287510141568129093038898651632922774964886423637974989246299521248647959356274689978932454707134264721893384294363737995805074564116166297619599815618435427243629501716816067664925449196520646940606160120339080379867433438821434416160196669543765287476054221129041065945283599261633187043848849643530235214074402174645144469716174425053996574097580172255454789319448794510012969545338273558205340741326181098396400169747554839315777079588632636587389367563845514073956730136429835032312381202176494503968255819188515032951197177087042030224571114286323160771415344823703583148031370381279070456069051344099206977325923842708303424140590311827565238305121494769595281727499336559976268759925378745120658153929001594079858586807262375105683311882480586581864652814805102429778777952290547114649767999799063524711235058405705990604946814106892674792729491182059316517089855540400297624108316829526595143505911630950298898649349473622675845780033453841828860610352380893129560796211564766657296414356380825537852955332102054710245763025254495765067579127149830151495687431692753221474061221808877474069385392690531136638542726647087084458137286838547254449804342743344902615128555396819015252534696443512412752959712237292967474292388904415552645522396548513497984611796081914993736232984562295205751527157605530002094610296622893465784723839467158611207981013836934965483844780392764835209358010626737969880624581983849554053487844220265491161953197812105882948402890237862623197326851735626061186070770776149072163234321052345205301290581612741138970297557343493590649982062554004562466924092982592395113769305216437346879837563390917917490067493633437516344301340265035479838350676091728436722138467372656478478622724978537029290849923281284437160127978916732870444349616527967970713371968954763153829327400052852322165879430153013544363720578075980221521972197919069875270063482470448097846681763877204584244572955445529297674372128266356763817561156130378654319304351989028342764626568684775796814764799264380424237217047921649902523790483582966276103207013507427664720303140464061806402756742329327311333845703266153802580721164434931207021251405963920522868374568773879214789655073080828621494356756832207898115107992130634950264478613692211760547967985060101610860422134848790863066945882864706603738106959496800547379046393173866296982625642782541713076990734941160587164202959949015055937480467929333962612343818194981710587190946544194714296936860544611775693903288906479805007578826120529733376758872985256893295467440366009254718943745986746495779299209005897825759911032124719588455523440523270162726068520072651209891747647265589423973560762610622382425319114841911864117932350187889841080988623687234114280368287129671542349979244810411542951586449566747497420569902106265341479656289978942819069240403153709379759331345215374012032442122206298290552597844649328225147598704530294984949132763911129974647723982909278341313153194263614564137698769617772516270605340298244502261235808104233155408623659894546426639603374224201488141122635546690545736844171504136548197820247371752819366465447880817660416475835006789992166126494930213963773071388864539142506802076845584331929077454009296133246610495177519119140157639035681746859164774993113992292092277698106515652813193108799895361476490961388401587690280265685525751929825389159382762521871687579392504208239772437646897048337788037326057712007040996068231448175016380442017223150510062439625326864631805779328986916196933839605081378263635803610428804747630908334865072073222766961152346600085181944502343842608685595875189416973970224997493478025610832724615058356200719677429814926450891286198651781928740636358714051220013138773218790862278731841567415499996585828197276357673325268215843386016298921499806185309873228884356625171034512730012579908597006008019010551978455537138358149559286328831155063182600508544463367054026106595448793605722745516790661218402138817861708281730112600364903403922597252949261005614543416166212129201811087384241062152419788820259584153753963456017667344947074635781129962322677697515271337014428904130288371514127874841722374226502050372036353090012729137752745586963759336371469700841272380714812914337533204525718963401782597360533601639976702372874607365414291246447310208855738398145611485551028564213716797299836313140039217117961680712575983525648273536962034192901977742826870271804378931431257775658190639109993671810544862463730311198276764353789516997294106419859248278475446828267078631145912001228286298954568459976381316724691513495618069784174927267477934483861882922523792314901377300562141504132413269267997809093281184439048693740192998687041213310658163863252248658139388353704053823197284149122842911569626729968042111184557879284479845441135448319712716499590440990980520650140687412123654749322542653379846194192193984835020352310728385105765324543799793516662247274305121100157453735615554288178121845203131231824501826032738093712979701954370145982310004305858705169432688259705890610284456341108422973169936683448572904556157465615562876145633319926278223517238162626504607583892322366175145055165548722729549715174372598505049094779932871093192367956247091020795815377176336499472113806542087679022695120965044543602321001560859883976662857991340233209469233040200242618525264724653706279003605117338329808127883640600544152526114934628568987320302269557468769490798673214744805444232377844189954930857261760101273504288585895243405992548375736962390639898700268456858209460366409513650279783223701864504771154556270465930874680953620036313502364128957835794410261737174930131993239946605998105129931536760611171936776310535928610049565499968654871521414024572011068320449747000361650526593612125883776628991394721611439186521179580386533091196149594903505040210339713355952247447711885340141671685771734895064515237784622945227831156272246432001050868124808221068386065828560922155988933018136567610386436237644493737961956241137126770011909373126763868555983025740636404852280244802661230307202462377913956584172510295675337890821278528610008354806934929381253896686583621742657225635834364219775531933815068864871160904385635536313379656070211320221541599558429236515154087218896266005081538114623978178907496644237173484814475123502056978443670985897788988685185347579989837845829198477419205414751829656623225656808982068425798930193000719766779346741634042917852445657608363976028478904475722128962913605388388735408463327411421577142136600779700100730636356336506982431051918663903832640989931342418480467854226305553234924604562845186242304104252317586928098224107342080707413844050735173823314713702366608457345421788627526678237938465211835258505464814858926511652994918072071892651018514328058112262862890638239864563858363539878214771653330818712300607896447977561343532821091683432222858677822404142127155380272108476490905075233456294304943937317205653575989151436696587892309635641393160384914552926217041599091093352500765307149779207246341171414085984017684352672991046752619379097376007327754625926002554947092944034074398049290586864378221385456759793546734892423289941531205262924744424196674217582808196306773629073876965939679934153551829299072513483539983018565810668909998142142245963979437045537370315813995458577532420927380963036645993460800379530365497888152882968664575926674072971456509013932334463291896066662925006556602637362365887260387244230061310640226743816807968330586413804635682923015660259778518854003577503963292618048988085599315629328130833563035568971406422731948133191502510662205130512882095697796882810626231788191385008134484907482809709950697825798569780254961980465530242254411814228200453471017549103994433737501247173700064594497277677089134433619922889327995069733309734340736957329027127215326655605845601512760179485079818687667000800801088507312077970755234887514700845351741648017356523083554934747821659017471932974717981771578308504141226834865243061587381561925089916197838603541692281646567822023106431485700376932938443266123485790364182295735484443974677446784954371822469940753837678410036998067939583228829597633568520045415776640444629616198797570416200010087727663732381384274241577495389025467639557445935075595850949920496093239702369603804584526570698495789147995199872072985823792973559159967116165578466057635651367666591215048633796062660415872087803942715261512101599475300969775098377631429623187924922772474412148431277138020101028292182142589972498863185030763949716438095039876539166599232449253543593492549800862877810729798829161083260972081434640066022451689642894358594064042000681620248034005669490893694924876698583641356056397891480551853666840297037063604708353250581310534316613756177531288445292234389511752755397327661982628971488564148634870048936242293702709996980554430745206360229631355772379243734649267261049370907493374971205556182999613945677469925635616728801629107475119630321111878543294116884956345185325432444285176992455890068281870518408022276977304242943621844995134893763968356101615443728248900051649893546421037019724095155605440856893497860453494908930491154657382219138621101289610863595137908286984007208260412322532968746852991843575214560257717619605347861791953677602099051087005407055287539234698956060295320651930279663900026159198803206852103325118304431745011174920316905055317860878487468367562253814844362964514396396950495899694678439861347778874817070206594806521086585355187981712684439879475309419880658207597296435444825654218773837856183862318487405080337224610415223358230288058310328096099834710095206249017924457150230364745994738796493908746549310244601607738244108474946129197148864119554804866614022473973867595722921304398474962414137003585596102635731950532042388893102584615775873830400246302420336297387818433524111695636998621575685995933252741941666887775154687789782975778311626451856830318845151091191723253900621405832977887082814691421374893727899391257710913044710530385211552450582416054079010657936251159082217793861727368445658384488928122987441079518716247721152257693423598445293060099484466006020207660500796924611021951726452161276007805613694938729190943730189359242584743037322351951543010638636931882980868135920091265207591264246505823029373362998824130491672465183792890608999334639315455506994631720915340119012477994720989885031499483329391508193746755510960363447880716038237370379004047116798565446970635904208138873380333801518407475805015545842830090894314681848116144679479880301399291302126900907582218598145848051494173326679150907171501749085373825142017393451635949650015573479619933483924600147350351560306273420513747939437868838872797600762780014227248189567170893304846105927185721800048321682208813770108868846239149167372840081927824098919781858165144488113666879498996699213837235481281579573999607434280701758680452462160812607061307821338473604486581358796867581898173977887983454396021610615749615975320050529112621881212252750814409238220298464383067437839210040225481810932771479148591606318572376585091710511256668880820583642294851291417046666465659991226597201706020878640256134139892657785094367120417732860300718670789001648187867463032771755434797770363165995608226463393830140614364980871764340415417335943091262893193732636868301849029885309530953297175389809104183999329308227454943336300152970151284197603980482373472400147518125772970207221777130094984691271153341009856160986458947484359635292362088714579209931768846980956304285873921126589300028180489122451299338623843998869325309112404813653970575087916703036356882619758298473796698322938634901366858810968172743590780089606466519381919610467247925056614106801379420367602285259919016497256472058185813328740279464636332108464428919463254164837051227249687545980641085782508158236094623090106968371959438071109618219870182172323647115705460983411438174578997150271659582674206952194492862273595993752329237834783046810254930948991897679003656243948916389671248696576070900457952347925293422527251914936369403036016228073115268507470629269486047579460874329298285610898682208148523610305778293100393932991367565648560586814427091487704814111618896766201155840968719784211540636727590779065609402864867199960066214244367561307773905880407857464092231240201015626210213047817483502659019567857620126070641753280667067135626749970566759833818004865205674149049345468588045005811787243907624193723160010202461381309680068501395924069287982312096554389829011512085575953785620761030264512385350736075904390821711899647839312868086623440161476091599008824906953242055942075716514985124279152066857807462091152284748037825889754449739995192932970841617095869699414327094894407062274037383476687071617483664969105819450601139263187934655870605758742187926572270649975792666862630269996956370852182391863249018376283028343763363777348728263583855539091593426993650648945311723443405658706566163410054531439823786743402330173452463727567746749430856689852590669233692629871624141255989546622698964197332455305942612924011156041961088964571299776652758168079139735765766094738590438278599586082023768649273671286727907482472973977237963061593378430202585733499949397734151393834567292079183283945773543599921052507214195815987070166895731826980849035331845178984877817050990245884703672170142879694519688963385307427149252237283265070523640486719811811538517448827136081233203179179687649645330286816344267708565082717385295166694951199478038009177122848522699123319481006378877447526782982983220253605677371203256891720604569787867524317117705571298373480626192513716624596642396658231294886970002498363713957256873629738175938908080564926484350821457095833758498217661179733699843998207658499703257745189737987994345693227599188016083085835311440858954199086091598328363752019173729616299361537726497955277984346892187249651189267274484729112127650502706054229355391367499392686448747589351952182888665913735897681850357023433766103562933623603427065910913795934538781798129539835841336440008382592877667305328793331579574233312493776742421074165877975492099086362765073676261029542801978591158562355670428845937799293185142124884979127359660922056358960845463244189812574914199175083776117222408841423613600519486191600522253061952985127584347446205491788615746745142586703481721701569124335098376724710040137174651460581294587345052092839427640064917475688558871390926799472285314574914484768077790562129076536409469458066679127808495502802259195134129110637575724208081526614290954044395162928370774546690719923801748782151924166926749683900774613710960191837603420693819308513227515969703693825154863849289689591019702577431947068611173048237586473747733689826277282599303419440359689159676386768708328994806933997637655742252293790137755000790067498337622801357160766386358153672895958263523821565126624785809352630519809931413672848588149543345559063314749572884106114577269609694080402378387118880262830676091594075441134360594431093353946592089078293500573588223596960139841932509712690801682470370595365091602713897721559203804726633716243918279176103511883387240370678508100451707517959817161179721056891018082503555232248411195082459221161888186417174334847227218787766743053888723716130557509841139783470118201162463137712942490762163934728524401552733960200543870710547322401151411853334964830285585516069768014785359060620401818742043750884176688668557271515494749333843187390522393989169327596608145343871926903012627777905984524055153128775652778573290656106182559523352527890207425099315716080321909607214597338952983926902084400306603505416766300596499364298436456919549822834920016032917479357801403219155421318404878927034323829028518993571116371423993837566365580018264324983040914125489299773449864843182115884333979040569253167092757940421117238713696254489638456074548624310000843526981845940039821366945379131140013715834536015485743948701384819019012329900416091077667988273445458115111661708083267581502107229755898002616021745414058083147311895568184132889473001830661740241666140885225751168723015272585379687302451001508018125971472626517759466000874322299589902619953607981055719182969906672697514569876122872426819228345523231586801443303978029754702475277728994419967758621090973335640927074320502671940450393106416568138855376805278042638139546804949364549035661636528428223158861627667751642749069529389476966555322610827457567718783585723572031036714392778824594825637457023169811008593560757026302397223487232894696492026955937401947389241132364079952555028312446833480510053254482305501774311026256050769928687778668320808529998135775540828551698951702838434062478252347326464807422274914461740783577371980688581203430461067877257470239066729075307237941365644047292081099302079530063778719324602220390689869325842888518590253864265968146590395928544783141312477998262349726216789954201924206334464890237793717150663229107028420309089376330425415342294492071797738878146121209910435077533053946421609093583320653628140302376755413057850405618122190696975726377975392070320103980815869580304560166707965569342595324918245313539820353948208098261347211766351261820738738898819505773116270703267858140575457592168808189215863698860426194179056917305575980125054838942968408417402698735054141453930162511357559509440316330658703315267811908335701372111195315276900210709657514404462326673743279421071072694898175697331600884360198984790328240669224325482154375158833066390362844107522550916869856965967901837932585825280289113159665968046558369183285354395741731564207758648470646484529632865884581937128896879053006707205036693951338958883240842433805606326545082782354953292638007447645561254838130147464213324076258560792330827400351099944793971969507786411329898701282123313093271955118566921556416623410195701169366768929326850239888595054836337732318764327659699161007101090009058062162736371843829825244801354869861429010675536890176576443490935216152675878866461006302686712226051068052369189932815235765679547349403425999548621269363641705705152935417183251107008423680263528560228903309045124899983677822783268945969329871819888263391689714252600824556917220987862637150200195003580123619285999159510214576439826749063914828458430627890333113074685545184804654591341213204993987175047251218908253628161251451522792730161019452378333377206300969956703497173867950513363885572801925050256146841183687365403229291805272611444536890996963717300423294447187987580109377975868511812450302951140945326504283456565578500125864538994797450677288140655457195278862992440005788401351577589627132650512450532134490565645527301670578658736403026873834395198010324864670855352741352295117385192144211043134650886950518917188296810460456836977335388660736462595105990293213060973027754684582199520628975660910257943451108146627498776721878308844035120794640250331480802567956741083000232477172516751318697658768821506188068761794209030025956249704693223212388850789433572786275665202343690707042488039783621807791935864448993189954629594820245633028554526913654272051804773950901960136536847240929440394096809061682816450972224412457598595933777887231503663999991086026914451644489796395051406395509554775280933649629242937625539101709078498796368709603102266907724182760142744845725067919521684359944695852986284297492570589704068880062235276085509203272310303320418162978695208281846359850337800685096748106623847578046281324599705837893096402601567464501286100715983984045960452851414141188746137105606807670418399234593538956337561912175494002928179821256063906225896581515965115106102537286865315420529132096703909657742220802734094189310679812053951907441273436338943559521593183646515712244821767553625137809117698090205904078715423072974471729785551095158042541418589279989164860000065726935987700484523414065872463224936340724239300007605884790635403910634104816402501131281952298895741672730065022713509850487429365434751168765179789410540551052763061019360494192633692370803471530437641110950382810177543866485029132932614650010154918189263985116842572142430868681963401853294320643138904050694241193002900912256226760607535055790880314826460733208271887229968339204090948495103426187279584167397472729367323737592347645136785405200039392090131366779017370779793673692701609061336295032111000821401385511149779884994192357395276082175422512377347021372037587629981077828956711313271432735479816784518808950565857046348933378432597085503174655291553834655057850073235790193953200708622382652345945873148569706079852170377754862656236090076983532616734027291810892275354424830187866320964358639568072999587842525453970295121114486419597321889448871725131236184220596516518063614444312737010986487886881952730082743893374032167424934081535686156192376138875781662854749475526897536496798638777268893598024250391742277881398570878578968518257445170534024635893083482849342028989777832134024754636039162864388226728213454989752572021886646474578792383108778081478822340328213670939784379541685894951571081552538030579695950296497591695400111661778804500969137737006203186110954644699876586344289110483857187673187212640464790921570074039410847597483559081833577937587928057366388178949683345455613343096977815224257009668039192522232770813528881702579942870092097971953196736499871395727225106167055409683318847189575458698342482902667728625072294693058644869528287004841520921934964377368757830336682056305520733697794741982547331738162579769550627566910071141324196155407088371692911820795229911958216860577793205617204478550287673131323829114812844337782744851075011920545225287483473478529822237064540632372118840421186297097409407591900689006705892550906586092669169949584736415348604718155698032912743556118873380533273092454218054915968401783537075299064129808176081523490891678191208825758984339790597905869274285300303144312532489686847787775818093208234507235159207031686787683090625219695727999878159196584651449435302700954005859116379445573667977183204984191996780209862952837476811365880592450505915453876898855441999606181625813970953354503060255879298082570565252445051003393970145109354910279798646644131217354687204020719238262281287789872662412423863821964918410043843855218279150150509419669103405621562971640209378246972605185021616112578320409129418604421609910619205887775972581727500564986647987486536071304781640970863786188300065776498411067715162142607854627889117106755731136067891770734770806114321814713440926606992961248569805230646849670500050243999915195840714431783814223508793546457107134939817227781889378304849672876434376998030762139358290601810935999300771576699365515892183492151078137543548250536563827758965472990130813830056724195951009895184184250802163312709179843286592174836452472374070425030433270938673096946161480186126449471021606049552321976153071250817607241695191820907097806296516817797273831417132159653643116554722979398362491436818101847955046732826349442500509271659722183886590672232556617697093943343491396609383544956062067180130557269254383424834681512802637442274477848124016807986068726128160986673086108199784003345009939975862417651017553469500508986039467100200491700840564253882121629527299695251382062993403902023230874567292900296723934456109647769058083849391655888195036879501590046447783850610907268144937985154492694891663011166580506368481433951513881406329899971337876943251539244557544532201999922760278817350815279541968544081990633851876608760331567905512793243021936178378723213022260075413554942908992573393875051207758666028890097108630681432215379862628984314423358791468676340446424044648505839508775667328274813217914927380380670295151125788209220872438978830572398764063635996189571384304754635987618930530305670614768283207485470522594071771175906715370960981770859700219607450782191358441907387917607936827943297853664163619552966827509683391458393061491667589862682462631922488360699221243257530497564821081797413374963882658159117414742783391349436990004147856368417535600740732704970954738688322520583120659625264081726259578708236171938573866763322791544914756935519455716419974216964417716953184957637599075920712085129084542354306319740423145210104553271502183179228807363655607407927440336922752472653299365660931463369940566587523005999471439861891877948374760695010336273266700836911236248694255726601039444959401097052540633794322628476057120058872829212231025509175908887187050091044719944248619293315161354062562148701823602597276726626552250157374688651797471980522825999281114898056228792516908991732426784793098058584898947149473449229984284682943034236267434006506931025309295563083587864784187846318784081855294514357345420857478081893301857662899434674259557567470489736138461537399758168129100771084262530931012566603546295315421960200123314121797131817466102609979922180906496958091410844148823655413879818568538373946828281717333939855981750277138323815316968232411145908546188584172575202609048047321527184181278989796106373058461354367573678048830452741950623944646321541689261728439704595036689022361250201487574760061757830578139392985059782977778571394541791531066917191110929681335304357063121618093767365421448390008375976853620657132036212571182217852174859997421200638452577304422443456491600938551913006875385305522434397973413797673487437059196405740743604793175930200495361157281123757238857761477623277500199335128995629214755655474921171288580925095796204242176590769554925460869804416688454026089754470548006739914961685953825523991328903908962479535992263642618273029853569173534395079042091611757379718529889494465035634076124260503940226631574677636552047542288139766580948580293913804121739804970717031406457029872363597500891866256487836748942327360613497027312137334178855088146665272469292026528370122561751141425378345597836230144955344956770796238709631282151443968678386185575393224251076069862287577312378309443599227006931444552354690808593646189808760670926922805242829725660899638121158212864185128775776837429203634887974199788133443884368779063830825308724109193098499290921935198012779618725054927613741615079947949637412245983730202684776375918063619902971060968590312538490774493677001222337881317039640538721035711918713853086365871648687729726667359220357337218988111687416845018481712002065455841618728054008963942030810485201120692201589568364017244839817068055642869995171496668540722026919172134839259990113342798448406640780318469812073313681279582729366225993066674948044578922069408021881391854833999680827152883244948802471107729892778304586632302497772881215378614923495481519709206510879869836855851410221381457998985832783191058340931816643577850828712894934629653933167473081675927711645895837652694929429629095495296080947108643277926121962802832600381180267691324181775657865689367757269588323776545652904632819318159373170030706150990951054920336139238328933979720559032982018295937386693956325860051010012131775668918625377240174427779125330882723021936492427408949681729356086815007188373739718207896387214031807889262111791419937806593101716877565203099904036584000878209322494100548920156291233091798744769969177298032673555647354640722914387329084189091345053508637300518040857575722871413846790826904362801056450317881177905576484068008930342293171642440144625814833240177439474896822117273280925430444324026582424209238993490290323246410561176191637239931618539990527588490725839129506465530945421875759351309999014876016008428636300894452476720927512716000736292296137317381790572627129280991666798630905500437293024469328851129917752009612496175469961533177929574830033999357153187036530675059156329494057907143966338478303336235561711708084102161700027965052598106237889479455192234525953870920181770735534651377979702966519948896356407587299906092780021202276865236123925966423110404242099312758878610011033146399753904849048189123418526553650473439623350662308335488368950828393745036438618055027721220155567399872747038628538080459254593298693798150156891272336504435345902285585576139615271011630485025348050265768831925073331082792611193113213784091847936487948627355672176361146382617590254018126523906753674858145930405271977020983255907342296181646977710787638094852441323240678040640582045607024951272420837051876650035685566927794159430409576861722511348397573977491648326469921405933989153327922432739169495774153960543834381986747927556540640648777522121945413188927157264121897360027816389516421611135285596723080560891318711558166964915742094257532104541224058124478806525189183208789688068877238390391755414388904400183285937664662268260812875749522280609416638625426639649856396453911558595047717141171280546876005764709699622930281931246748752940269218437493086730002157688708822434139938721317879432401258067025537604725265008011380703286040407561473088082769058749434418964668374675122008731182672445918433875370013311957243826455923379141732512689902057506355652554576543901946698317228677022405791031235535189046921105761636293584467690513893918997259289380252459978509539824416040431390353531260067098583575371585183879981189443998767143325467505626802707243783481694329269103099040897152562506828956717479834295216877978091021371218146596120939326033950314336562115776114967963843270736290338821305319419012334115093063805785928511034077665940185504434145372937664327871910733998049034593348156369158791299242717568615516243107664583811919144321507696999292177703005526453834878173039920832947916555302309491804832296678500022827796395576325484577972681748322385209256510561061717729875552006821157262747705277860732457492895741896826192585690840142332681769770606838813083498306512124697958100632910631923934034227679672715808155103956560214603955810774452346944791922565391669935780807735759133460271302810553392742473814614521442290076188819425597793708489377844043288038496849215685726380997163166738077589197741769816064565301247779467850419300604044606957176340957974283939725099585478675275334245331983556533403371755775060454173788585280398182765766044223312832580300413888055871540244230281490202822783450647906764587950430250074110903820266930937168175320022508604000044493380735557249422133433686398307601170388370168346177478967543584659519178985669795389890830322478191795574552578272984391340176848533771347898095498841052089757682190848439202139283286961404470747000188586139768075530297162014856657710400745937687942651213901969633782411578360261620438918420889344775028038066289028172518305516965291719470808206457290980419846596825090888641605980914612424576810272865145462147189014760674412793228880852155799508956665124521701514276997170447085762780143345212908858186289569070688805982229655481967884096396989645580202439020304839536688019963117421327720247027518960545069465526623921568463382527164921645363405482746105213456407897884016336730856123950884313618068191310789615895420306921457715029133218495926949627267111797899950792279764585668828535630808459700235122102107075294792079405378485295147794948880681638312432954876653207158363413149036420888473218234741513739472225396899331776585502723469547522935548037735868417370282417274686993303139187280121692455790098148223749301322241292764365961022466991751952710795382507438519811224421699638122152791990913597198263768125561410046275258797757408491210472132513834443906200467880172282999463846380988317283753703983298704296530606303092794070048087635154663833998502782994910106047969512176975936840840459942879898127313288393114064452135163016069749153631879808051214359391739808402727786487388596990483098793616392123074954823409894859997541427200426266010565575489622585353715135443982010747580440855738355996420022475495752900174931899321368904234459185776202440796340069643020644285115443216414356004533311612718104149333571253198691136120556650092083404253448446050615971230508943245144733508919943910514046591271506842946092419384451336713748498504170955537484990125029460033608339610818585396944673206358952898762023285564753737120031011007099763107892454251934446521498119394289135325184934964785680419864623422247555866908214780163880799184576000834324181047402914050246895936395664749920337834130879989221749532461238945093141170313225625085874560544339527036831490388994476723626418714578810232470444441099758885472938699451978483019912128477974243383633673010034773806757103314181664811637001075304430186704620393254279170435240912908061963780144665717527615002522074241427519877614539580117174246839270793032809543810581231493216346185280531271949006800220347161700917451346633455257581052567143738664656105571308459409151284304302577375694955718322653256884011089758326361579964964081654206082744179348755830735181784884270937602473294159639728043038493488390864265593476482576845546321263254922563076426674122044545979007793779494542926998240724926515484709350079328381593821123675830098610526082039094280422678331664518951412058364788356122866758102471033184819904021415792984526614689974729738668976650901020122420287243948096298666323367868574083600634734821887137273863380642693744467515835746716278867423558531775035123888681221918213106960803367048210095428385886150329264437030311445599466289241847504513517970736030438605196859187218045121776373634186202980718013696380338387372951872012758771733533670937613982673418066633204561263155110587289187905639136987902157061816292442688781661701673314487824018687948685815897879492891479488591080142435697088178655280522014179598615886811006503475851678143818299704700380957804486804831959199236029514458146829872721283967196165418656175807279004073172489021571707560465743510021639037134027750894890824944350172641282241000890400364579711281086989376495330957023706541178530963697622835234296356236344567029574652903390850233025895204620865673421249431586841124999081080807094192150175948953276260457654283533519031055133703089204694028649343087275651771242205544038288390090073541908357026618744378120689348761793252895603573832765722858645774750791260874092216410218563992861377929902429381726034970741315217898532512347563041183123005972591668109776885352929746381879654913925211045592530254582625117804914799078557623457000844332530183770188052831896364297243041998434204578428796665602693155741771072978609253937374342724512417322619364234726526639128589789133012365079202059745264300917639885689044881522156113021720225575377422504795742818824093459567537067465263249774763383608758573615141979401444131531733820695691646770555230017307714755841703716854017483465951718068698237582369173637113790110828557478892861361722067549965646710479114313986599667031176314456870378141476255927402280218857350478554692437128073704042171794208460055942396115468483598461876845365257005903968335816575891717760081175417750448312240250722517969308730296017555675397135276736226391834249202993351813904415572652965831641726995032462881902104745919876179943001954447901245992295090340195233096537775984265270470907315131196394489482980793788069868570292886726908945205627310964728315817655674439037988174421802034438614566747141208838906365158816799016164323279020887580565731614862959215876689505856384892438510695566111203028242713291115674890129323061005440322921262749991655901322447341205351259614886369786550536014004468931465272986104245062252664203501582411538140155912750867588732832177450044719794719688805231152419899723140919031001942274857592454903216898050743943458243181303603985027253515978922965787990492499997374341080407492051149073944601237888451367023566776439133468870526422982694624790876339147750074346484278005663675717410932337078810180735425524980200077742282819679607402581781416322135689102588832127218273535821038957155757088682139300084322447817531374199749267613783871585179674409581582903907476749245528674459096397969261101741329657128004705429680222807445714130553558672392119316766679381633325214625774874105543366579897785227224173055470334697541448811709534080490763272055980249323170036661191059270490588971372618661692904915437924700403298973863733524963093388085499707372140756667203517531895523566327731972433559039217501170590703294995566553976004007551056757790406667782461835094840878895444166131776894566542026519507553701152491781326479959822411252032190899089204034487137894431822256762259293275745723579176586976101698896808278268771170770252251196072813148880739706573350343662708433609989878349413473841058653366404182633028512541164067864132534970118565005408754457313214315038411898423277914931641527980165402978914979158756255745391461857119925631998643235100561953975038816285723342467675155141262282784002116025441304145585443208954713715256775141654141042362168738801291129052275545458511096186130396934417197377369212613515204604456113607753150022369335168303468170140301262107575524106359648137177882229933707755469002182541296486528993498430267237813281780411453427746091352902813771676071233827936151795203620416194413389511520278986997057466412922943021849794626665777280696894108711404782215252687633695079210896134547069743938810745572093450250320809236369624544968565319147248476876173825863128359706003487717696817437658580128935728981868793183398792214271658574689893674617939840941308926999406555669811142407474087378509478053112403111498607019558324866460558338574452726298617291025337754638515616935131519901885937148940648314255848436807731842269169285291255575539405838145479739230342177361467254346138787528012720954985871558906022692169544163873065087718782579566382988194759283047048364733162056633643973826374900319582285952644610505829386660078418286574637791728054258925522648676295514677044253084297738619774781355502111286359210145305515070069643280400373125200865782220324775740138470321351138182090409207678254693742323980403452105963666159529882406586490242127675757433566485468770799605436951146253328888394822862106241678480307734134138087784562919066059888503738646814005741627567638302201000135178437875624599243810912949438746344729169038455711442966929220727914969905337855362703536139775453167107825315543381721283348146483196831167166596763428446230083255641988193075231918122412727522845724728708832823199364107257093049598211701380133972073206277556565128343094750899223567130580321125674741526972096667898280222945212036030370877534555728657975526863624264658702307374940808357739444673552537380986368955998188039650358835238700480761123293141413968792547333914489296702041294408561806046481009352163799227573770078298316529080216228807360837942118918825592196887538914958979894001086050156865163854241741525366170299381852823550202747547825922747767744504206299362578549304798160393653711617514547981719694929750986985221876210104688612633192214604197528702967267386665475009541788956052839782644063173489842867111701804780326584115303860904714208935131105480461288051881308356239504589131614632984702022923092362334113776572567862988083399186208276714269949888417211999062063826764270076873847442371795176424092958535307824122632109554991754242386604308756883533968216156708170004784661754129487727820376322946474541051812056376130375416966453234215074353340175384514648692817234794558251728964442536453250926999302370468956810536027399237332009226207147548915994364298019188092719561915960562411614858602819649612844199718878490466679358537016105876473501097671766198632050090966450433961181804744417517948637595316807473187044810931434439306465240769863883523251561645922398314358284691346855342726652891197191969226963738597437819734400718963850458198307792076248091908459602688174439482776431067147456685787784326318650725301433589178791494771835668010202965212760513337151597455610498437819904655735545986161805184918788314242129687721724985703134966588242439509526429294457820637909861960037336653001093676803463480203994804152205949336561341473410025188483264456935972502590367879497016426855454119983920522268681242406804394807770238471779977495934878555020275249624095122222256055486020207130971344207355458974982183312958045379826814972498907199732282580874279042463152732908665731347661137738382151858567806012586600567121066041919720895891566440881780189191396939420425362107881730679709217653608596243501005707602686418449025156347770075024726308764047144123508160400646834710277690695213306945265336894946489795944696803455873355209316351682772769962143253193421699607631209423955841265460927244707362620956297444093899328317958987963741313126562218303779140008726751344033765530119244314473572970463403267374508588281937800831157094313210757640932536009452943733527023317418496008603073090643127348855867273849586974291448049715548470913729728913911928858980708055086738349244632252479280151594757025141395555242034414278603051510715854708498954236148170415578335199509070987474718042369391809313375931012822153638602502595742453829717509477931625003063093315619391192672213358048682743179414739823303720212662928066899722776258667846748875928548086188445891530869511038628885941746364453361313829181066557984494745895802111793644735545009536737190541041009513859331934645904011353586695127369212430996183908542911153622434607959992796305390088508548669698022390422851125358581710954828311164664499949288412513078139920340097488739404108550913447538132255429773630142257426346201716182761356897967306330029223245451919060674647661795272170633213134508066289150821864485790673807426615102813434145149818936325857641873425823673703169366642568414090803688337227731459726340439840908059726874227670735354686127934411690800918102156352353357122012159593356940001410367331220723136935628926940537101753081900848966519691258796315576011450610812011295049734488077646792752542634262145503024312019503610814066981370910767796999032755370897320281887483540357770312251932488879540722017916982623988283138265088165994634888781380950134123406457607555198980794625336704309974252373310822493698024164360038463117071037424491511536289662381833110485639178495138120916794771851603156948268776368460965129140019605906949855664078720435054347060253771429106264815599324252712509610354515133053481881577371740290159206570257554986454627088138759633687906900743658208749856379679096632043453229800083477935308765552862672372144103314190388416237789408026281203803848878425567948527485417195155269058344330129852859112257957915623657788464543151169185212486621530093157347365671717567350433221094141695854959003987174500968047335503498418027094536155646782593617913679513282714220875155872813760945828576446945361809974691539744640031114160936368788849844284792106852282670724972578156278727137006479320675103748800937913333243618154491119747024027692037734214668522922561936878544561349817610857936221229632844420591840228194992168249796052518693037405431608613156637247678398713039350652103765796255940619494446007740241366275159598489571476226909691500930028185600803884158608436324498714387047838835318786422917469545388165883103996043123778131015980241465025706712559041993069262807412050968810781557419518706095754999298839315756307911527892743646838555397013501452810875404200437111581898669031096722809626877626006798996236320242894207905849528316677808147935778904781787237977553187871161856670680076691972202405268003388123356465694320766903705881341517524206051773383204694623313554183456479240288354215616247724580084485452647985022937563623654682978425892870340196809775270909500945369238312401075663053756015932375020632884364461475451351742478785921539752824355540895418331941133730638026608544065467709770622422444191133025810732745773103998008647257738027778695326997528314578330931807442939114328109777255010904076462328734823800075125344333581324199325072122972962994327067083090950347658274791117700854743059917130209600218635090082544947579731081636231875166569875576144903524141992498682818070067432579969511692765550719877768204050494842558552236608165718475960524880558277506712319473962794842901711863407968239495023002722468983118891562895941457462857996777879410553215292356074991438792037593501792817958265270762227329617998005439672179930168614498765883381469074176141299603555585842571577264392739348718141175762619809687783038083619527096948721292769846981679883134883402372001699365245347237707823712548119625270907711055692742103088877594850514487539156401228818971834035146530206102361743780529676726545145029186159016952395369694427346708746148422354804085083594897328018121447015084074119207445658444859959653231752663852557339288975114436876215592169058798005682320053212691369495669869471393432707970015023882054085283458973968734140191103352138167597493433739711023403752732170022802808045320770710727515255811074194035309587314780128763784123776647425398298991168539926223245903686005865382309893183620108442764458884341837436540760937836650209560219527406531598060410858833446864807265245363993699411351117280958109398709857593094456307348088603461094619342704799124114880490177469074464447276674456243437554021160156823301405528145999946456428020100202381280900789843329248298459930332622122748128769956703461361316489990112376146724829504145753718830136953812150533491606142158300498837458125653039238691065694355870468334397162130278338844198974794915062652163242246333574077296952580950937214223382944277304081634099676997712795727764197945056798574250918506409146566230201557545226770480197592025987250310041904699971006395643641643074391221266958789499091139434682033580000020872132512163503002497344549264151672147123624827419668135556716584944618976433426707693402327162011621355810151268018360651029447755307306434421531041598658969861874515855780070130208750594293039689402495290614166479481323823376964904019531901442124246102843841294091763125823109097663262555254704854219227616870074873458945502405173017506592620033526441606327906942154055056959772455879581050319476771795415829126177196542317502790496560661959117643097178047875560086859162962811908922744385689967938513090770654993500430102090519333392841616018528070695191266529795386453855439022286158477025341924376613461324381786542046377717572917251284992058153797020467231669117754362953291488332131975927937731616908772775801007412376616687030634813526282684883984549240699557222878318688714867345640770785507789455680825608229055495978010643407607293231871652908644619544339628030686138959875503301260761877152643041206638282686772753186463807799267890943389330187422999887062495755263777818808877524063196280928636261271947701332220726700338561750444161631309538412148945051669234544989869561365411458023472945664144121709568918560928537826522572674471901939504892242929888025758750157817463725755486467126673000604990277810841116769783856991438026159967730664350753385131947216188671839993336867670951947265319150043090205412469365374419703155383956535781227002685477100150725277612892145438621159353562430408491414631064217326483998693246880696820467863970381874113483218849082761736554325162052220659424454831196054531718272027153795353583831292109551799960571613359041338269752113726156906348904364110200293525502328238529979005785182305116256969332841128191139942131200869577699093077430226456049389590865894732753832368587913112912988986102123764835145354624579602392399888334242615796759437975438079933315435539406962006906284134186979468269244924346971620949957508352610390432115378615261373074568792832794431840286740528660311369174069904739754907749918311835120702907281778042424728386760231173205269164411349713847738518045497780517568871325243093352008670125569839743063427434406427345438479542907449104053495091040622073620821467847159497019693960846325477040852875820950101839019958396526313524504478798211275857926749423547839545444244937034519479802677461745021321385880111442508181907055460335825113549974433308135040846435688903788595105954305956411704480534781052358341742222874534748831756874270900401845479082476909775995373674518755671792770198255857094128208516688704093682825841760063756675430960792004248916249960428003747413983180688815605840144267832282742933009382167963304808113257242412205336308030364238837656604378076826619106945670489241587655215153248143066671055324173733101005902739410486853324767803768541126084857331789057290395175933808285590446426497373610267033966853863304891653030910125082676773295427533997345970576396964091122608058597770816356141388010140969908656866281075569548808492316677298535336108924396690717319923342932447195217215624106064449361657577965052217129496961372891824737535221858424519275473177960699527049613169590703779789165357728000665792557069837567151021045591175796482747597794666606643739071751940408969672546026887736418156215774917531534490041746006392894304870725380469386292853307960153757322354028163848174172170944311198324436884067060415874441834424653955503721494553028785203281349386600242393850512060595896633833309441554441570467398372656806468832371837600450671994999232400198960247725067338322961908861106222505204247939591101666244578797119635876111871843242952604737408242523404859048140522773154351704251907593086559134856494130210599536924209853906761820301290169585801182167432479829913018803757038521009262004728227141708973470800577652992814554233419331621806656512868996016969655054167001885535846877470693662571605600598506283551763630594016458307232994565327507402872955700574095415792328113071308462250236996087751725836198467439928536491039280632899528655717719508465911412106686811465101556752108839495135623299072879601514438339977766264914207127098056934782698289993577762375231856252567828404849548446076982105076537191584654665805002416973846909831196407390431712861627963771566634812162027255800105867027055998823362635727669379862128606399094619800089697401557518621694262937678910133138714893144415464298987045337652753348470155859256913570064491099934507814094705745048610357668303906740428385159442198389258728479356978151053540970746907059302674700079467510460198945895627852054773122286446883523446617837163524274307634236696420577598378826388026951937675109596899551704628645806895070061843676933260730961342311540374176386567077857380442214700923106251714555219684886846959286449435788021965626504892469128639017030265532287793601412900838595515292597289202954861687191355857845091999217614168990030331161782350733295572606069761740307010150338658575603338674058645163862761505957362000744655823425651128560887813703032006182488202694800772696072456704012421805306170473173566805533515028588241817832041695066916858046221808443959677231329000361143121195922885120272711856409050399033275088780450195421935391114631166209111294885690319268255668377864902769249689043426349458888016622239496878841969057363566872175246544439786632245129210549696406281402125883843652867237944270281866064002350938111901786606941288379951355992579985121657226069645349448929457102773467289265200588947181355330466216702398902673132681067856603335336921996220302183396179630386874271478768568072197559180589032222527185485951144558855917081162379465867854757281589348183898130045046537238132076602379308257023063074293426627826304485037014810670535930176344928607171584640503509834052006232463392907290812302331872346041297544200189568593715615815164162213778823120944184535015446965605106081996385513375723725506751792974179516485364271077973436827748747286682969917152415522376773662925399082593903311798981171419133627916215808577415690072452656467990588610971968249423323827882000035911525326132922154723613416998885609991474556825020145515195821070642705260333876219767020103936282869540890146840605068683897224968575903809863572417423969158882267737385921315240537331569881153903986080467767497056642433841769388766308276645406987036282717468568032391655349994869697710827529113204642609588147399981705890420410140165789622730691926461837789980908965715519283387259810354349417719620999621782442464352031785357199958410439795324841273653276523138998234084147789072432032476980775141994495010178933144108643913573843736222801396870329507361420971111924375584652930770865475780008478936225813415074430551821691236424887818592800356149635467795435555099556721351049423618063705163313641396088943237394208996204517775212381101150204925556523976292790921334750987403592318262724320789102451643828661546291624251807806356390493143502953577850796173153972787672700297257455018843251330956227629117146156865774284100277458492258791105316417565820032040592628626479552911821476835622552821814091754979766054088452316701485686499753096630993557612548040778180468281743391477523735956205519908897505990933984311504002141348684348848537286890634110341790429164137698519135207778109032852673556677952936036104269922377084900033817048136263894885557605586111017071558670981850641920975406301696712278407320447221291972038792906273897277131416086533441842988682074297152073470356109819361101825579682327491278376147284816365378683016944616898050871783698605752244882719369008624071981409383819483481086955208150840453175944885636918849853343790660675559627960825946698592373796907219220996181001145607478945815639779347783797241154157828581871270198262910165110532038510447804277557446564252332716563083512774427464273793337407151660138399325735348525675922267820634343253658837809709355688302837207083026355843697424788301182539080781827391194522296415123510928133806891088123452855428157435364989346472145523512905781196682200392871868569700982892711284264638123839138083971158347307991311041818160634447350125287283308978317810414764571474593692355973306688723945244877867408154104599569264920614251946932220386042326612432128106321926987394549484053777651125044746522279179327413414980994772046151585559556272928283611440922615722525938183382583279703359381778547103240420109701459579022916137106585155420365310484036413631607046482817274349420897410464307107006243013336212602386753579190748276063167975700468707164046362605476977434903229108134544601132840340457122715631598327723744757790085444337780624597167864610552944802142319863937760022334224297828799669421199164780794923139300912788107637647667130825537191879039724397256473732383670421470968080032762582986018303714175367984221001020993061928842332644893225789966403123869452800683738949870992218308338125802827374235317850503049874022659615164491678015029297220546303769794812323133921502468587495977491339465282133129198385546983794723157176264869710081318022657445119267303156761226108935934813607052811181898914253989360727391316222032697371946834168318885755919301575582171529186979357590149067228403791125014355828440040511830061653759055534174158173566145421105232239504693997793526885919865934588477412884521501657138691623177212952889066210696116692546316306831318817529888643559026284881063666989201357864686982440231930267835316288291223268052901819034325484585266912233750492388764206312603158207742143870691872485576627300282643129472060198269926515530603711183250759290201161061991440335981161550932328711177525401140176182667173100789009752386451626072520508235278861272762150263248769889509123250505345093212618601596415444636181723571498159837164783978304180262871944864460500473896612852639138199403141824829277239464962649158328610360786562923697556360291758027371935179815231509603085042178301691374287416303158996863352054692540162778101996858250525213056102702248290531591326145611976179138162452125673351088625057657634173030509873091032995425401609215423101251419862878095755530955375016474970434563089778685436239489888482713111776659330821010516150984143390957093622920241687311429841773979781713452477936804436729072730418445350828491406777709079919361380312802312806816928287598714347591934285622856670005847807966565665009211693875304825295622960412732964445134193791815220176240710219621881108667357654355542753249685432245789669762747375222411761501675200167814261901747311907709614629337529971179395369163311903038570368959165493517483809460470829864346703877107779086582892966516134795589941844978639415567547583607961138603394750240000461132285371375457171170239199614230183368790789044334580915969788829891281604802485596776555608113894972869057128775884359927875893568209826522082338026210262082722307683011508227555678138531967022975082454200448627567989249465064276663372916901797710624027116367345963986265816769236370728123912295258243389701362136653905658366547379331401682218601922997004878349803861634526425646737282275836532926332691469042188413576610880436880500955982120690037277491247072496159911939646386058167254222020086780202577220526256746231508781507427014543924564605139688637961077313764177685192196297603923769410769922297822047612767420028014032262693740524839446393565336119038595136314468430677009768912541717543459749796057656088931953227467469878185219432247124479759866135003210892429246165648984797545244911992412691488994169412905507383446714948051050896727418574048010324092299879296048512526831220397099901847674937094134912690732058515946015173421115188391727542586266338161133773835940359039996040652412745588209888081131723062991025993039445642129960054666255556948391325431426640024927393702690673939080376754201236334775663680675395943995060555260811867329296044328937183247742160122879550471220305968421593892184376856885026058695520911501565919304549089541844086260914514970972945722913248969360291666774081954577759343182432541109752288121593280516712104582653023993742987033782476429816586701143164822541398417849848056418003521593409661880469653691549868512964632190934558875278934924580591053502745176340942945309544954672723364074867641920655273761529093766565347856481154910439582357701531418829380725451921703245216202757502240944331146389663719706205301087954541980469367990124160542117455772837366163320119068704384947997958369479643772348966752216998837476559500566690825630096587780115716603666505607397429158316307262587738231010858380382118826185584210832068110454633039300062188647529766877610723640460103371144908501320682359154743624882665124012738692394214380649980621377849172504414352526750658891781440816818377860967096175666321603611048718499671682601241755875518604178938938383525278757312633897997226468911412114802044040816363409525872430119746847444439808976738888586295531946757265515746865674588222294533916678473525246951580357084650165509964203118071573840650768029246793816878640903148105444623582108050048016347455268328356647974197484497449394566904679442742149307554161849134983572905379353022650387242562218558835077784178259069380547808828593763156782430586488336508449262394094650244632531499988302782081767696248860896591879231980967465834627437160165883033807042722608903473655782036464831400213836289699775456603795880087934560374293994701732913855009508929267519959720318640548404580935341425570515906649362651028261319158107145960732363819620759425927270866103113014369965412823867039162129253422826736951854361523790250294495898328043589303990745608561808517330417614999778336916385756776108808239198951794323448848848799169954295639563324366165790196845262488322533382790191455069079541863574050477673055123162453562875346747971921367258729721663822386352950634097032310564362096026761030996356776153943485035541180495599009292644238691720229310083551692684980368602542300448034341988206447363777242496772352319164411516341746084572680203377975513684956610493641499000210567772451581640508394139650342750565547299512157615576643166691408134337092296539257093156476734482010893124858699188532124943205053021245183660030117367395018343646326796549826647504660383391207450759051114129336551656531452096255269104393971624958990320429427231007273190856194470669694293445990349647507867997718075488064746479327838625697528627446512104768410827588849950250490737620568162795580433471002447026297776871361123290945740812276072602075475114833953425924948498799407935534528132555833585339854095060944504409066786361833179351986470477293938807759322298562228400344930352871583271432823761558931313431811762283190501758249229616142041261691780585280064827917041914841116213335550487956708758994022173876882073938104695162670682090530428741743301603015795514248330488659596598663342689433829382154403922177731972982398046975292674075084043130681648973001358436588412245517859704366522425859835228217386941659467080337774875959514573232769170613875705755849739401776133277422268251495909005222934510571019357245112155429083472738587421895344806517956013748605667895421856289591482563034760308108948075385398074295374503059857790003397080363478414860327997854002009613446706606310324786040119318719965171067803598556725582845872238855656219490656238349734064234499499879382781126477231497111310217871145429915318881352634871275891654409197374326241572852814857189281777806639115813037234787568936112889526327832031845381465007777888005704453398677757203733838461206239978873137415525662256452034591105622401418169119693911107789180707442775936643115538370519471492741421310777264964889363347735780419418354381597519027100958328129689005127087740914594750850097638529342648798017517333426485146997262414950209779011976023298526899508677331362678186076122365930298872226790409236183582961549261688942639156134521439204197760901772897956640169819303979144536413197524303873468895267720365511426172399066581949216766908457268992364670702260875661115483679903719541835667870791587339201186348756697519973722553975681825847498598698272227350750540999363980083380021615792744893124838574305984235530711440905887431755880972013881277279616705986088665398372098247558558365355610550961797231083857433327988721103483454393768029564767041706402146588470557714997025332572516832903469589636527435859237448630233303789188902384890898622377018432976105065710072308925007576232020985500187411492983684943301406063062515380010297010367403893548329557570436666445252378805426440186378426973974060839262540783282258253940887325426567803360336311802412237288104878135371069348323384861759962739434348092104888934493251508345457649040732135602712349520438255584767333396647786900236125189268750868207789019706157035965310162120647968163298911000955623131293002014958173089707791728084766098289125342242815348544860690607829207129642469977283273180318142937578755770517380689210569416158838578534240591384727496196755504404673877001256146262513474308080675119382676600958382501754004342562782578973795693320387074185213924022480409530869874372507832486921665329584408751296727191640369035214841559417179767517310254250460006776763161935876201774983844001193953350873577321497246698427442196429553416900462333636015967442988568560198988442620556493990884697565631535741530506365713554854877784966775964432141161462813117790872400729473879257186927156325033481966054281792103145196581056767638848140573582316095131236062765494258371382627629411490652102916251779900324661637620890207653531774219852795569533144070725807954701726732764906926893743163673025478962615758561406575370084064205782691400543333409463069407846484047192062404505218075446319544928678882636142511599532364412756299205501538168017019543867187167841082918371120920588259706129731112475128698538944902040015902050247440743133800336212439517817558698426951781055533479424063916341580738523699706963968830511110108790095859108747716369439257244896853963514025691366491658132828711103457096984176769985763304292254415218258581973370678150698580931519081921593852619143730716163758115818079264168872352584703632411589166213047755050086777186221330310030521795480021635453590404782947601656941817620312745026193860995331953517220149126262642531598776393176103072601408689488944115023703354306270644829026581194864319339068943732980090564542757219734226278459961033255837853793288449919735574611903723015301728202529671841182531034750825937378051197552849877557865343647405064172480719804242818303510769556170382646917264879390085618974903608200498906629242090504887042330187839988339201289412090912838129276355831295515485167894265948281193921281192143100603859458844096080324758026525855943800233819720487529999762984231741969065513831732206914740715753066912202461986642119259741757247692532081871192561306994593298255080647082537736671671143581844239513794194474278444040002588972288788545725075342904073847225134369110194401099804823063761504327893085127285679202990597970883974717317135216247451971991532025680629637916030280854294339272521524764031242686239615474482088592317026720312280929626192002993512864261168696404667411574533317710922217710112516476945096819106611689503809803576964853755310568762484941151073176170755150179990101057799671297301240329390736336897892588398891130478229804299310006179878936133184932531831486977017170305225958190394641711311671541964901751560945387822937292529624410801398832052038074138046609650015987575025282473669285641941363227314498152853063539611356030128041895852249223625693470551103430593582173192963801130991736380516772623494241095649690162161937619632602650143511793541311785784200165327452081149687754597068720333945538402173050909567609643993398486812986729071399838764406088649967026496572174203609988062618212637498422648087014373018499459779957039785147587854936517187541777963304143288865033412664262494417887347457353945011350349176664536428472011319904430254539145238408303434549927180002394684543754147029369290230815794387865935911877927307272311328178104440437660551218446687941887139817253879678117784951374713659755985340852237609556157497662467910097409505859714367950175613970944428940487893008765234809437548625535963115850112438198627571188792894636375728755411608474305667968625894114103023859771050197328755832548165767756862715158308363562614379033961457903061502912470867572297232208664581584428455870454515171688587260719359125039795779733423967836622786974315544295121889292801727357889340564843357842099213500792940025704513217671426605507176179127055279349459960465122875557849188815323330316554005016047653855350793455341246645311217166813324293122189721771728159159610159725393320515864383702190808557122381077786401126693514081555288005966278620950950847438465845716656202282819061298162125204409845670229668645956466753556387401177396912735338773399292384026696157841824156539899604149911174558091330175009909719734052965286572019632653956269779359318267288445187043420594690658531628422433515686272985969096076225375418501986862323504226384943450251074937890749173044799993358336583453378910669133459979566333526494836078869936811626548405017688775808088615250146161723173253588402433209312970908846289872665339646375898022726044772627441942019772405355016489653818370333743146419271221577931582087724897516031067745287455495292441155798888370367280342941467283721420563546293146393820871061600451905002032615987908552091132373236905158474160227843298062526035090737691939989074314712266298371566781095388678785091598968819767225932306432736166867135533238549655393390637648774105874705022916884017273118976896827241645263785121424503632517507115568841275247192401119978618410775339787025366315795532329514835426931731854219703924026136189951167641234400446768433968361175784894357075571903590741709737445974858684430331828408070279794675373736706485791456928307432389370508722144034442003006891469809425705263889457648390122303931561042674608479602826028615260143345705629696601469699130519327142954861606571145227869749597208302141168748782247235706911598842462258352093082585783122689322885305921118177269117555776576951834522713197944425239220125269244620256712835779123587179916721349020068775649860003602497037092526591343419543922825882852641910985567668515782488541084612306996445400821429281522944475644165512147572626902291160678635643823209881534519316852933875678639135367558859594125441467735341960394338155426932101956760828119084853639933687600412832658480243361948413067385426182887195352660196148881037954533151991142175336863869635057069102419349949185167552421160517453312507033336732462584018621352732327071757094841458430529240485200614250021241820272722221658045906104408369007718342447710415154598630115502469336909683682250443400164171234055468372184803581143647511959005744505303047667552492793484034669275909508526006209607365321443094934323953019756650808421792489072734838746825948069279423710781982324896318488302105902512234389632486239301096360334580240422854108150986872728951581152822368084316568225929579064468880996717221555430586001546765295043177325988928184913769007283529057337450530638061671128447755557608731303778388568576329529924682649888331923811722416724074151890754288697533691930477169275219633567440681783652789686040772495873318965334206342167052188255617867463398852693492770673940679189562942239080757856712328961545507095064251456630849052607540016348176557598407057864146796160266747408585347493496081171784089771917994365322745671995183806955032800991374942407175207312137917472192944305580515834271399069692166768113148551283792332933652485900732394630473248624250252790242204056977666951564743683598727012029580124475201310600255708248833770135156859596058666876865427235808980663204807398729989169387767604199584143626583093038379802950335596635662234190154249978516499919112382142706169008196037853410562171397676182026726787579322243395824683396164598986430038029227207733513170071656886886548246431194141712144496180396340872791426682577910938225124361965271330389845652002262793955290511422620910778540447708580004111037937738299791221320340727492815377285346696392601792912814534229600664100368096654362194724112011972965065562093545795913292209889130344276644873127311338302124478772928441381126714633223444686368868150313529539543418691213049664447061951043672270845790682599300541664891482483283336479083086082517859627424042201591308171216508956602799132986359202793891940334090311978046675839079469560498912800729224842832300134117514573861942808028792822344750072694507826816520606253633166876731611444694077968694686770574575275209490636206611385019470167396459309167541339563823620542432412197940185451538067324737709320331148943265973738110437154234808879160787620518727648524863785967327562235826536327984119018234991425650283901400365585111466084737742160407406749930165604516327182670285544535781563359013522760102916030401084832149042910359891640331435159566168954311951394788245284469395392094697865086573883376657983895052276444240296587446090851144309979989335150647057465529791511739871547663279481412699242455804844746105762730966382505484131405909608663563124012941879829840464654250021980804552104175522959599991520662161594075373070621954095971796416601861413940673831003827727145443397992799778312719686190004146688894787160843094452117997372122977858275648176328251718949775385135975653657226761174155584041831808397485715940251325791376339447825308723691598721820213599535665509942891817409042934178974102045965439482793509803114146714825385222615365503682230396702765525116059946509704683742894035605630797076324561788862862056996917197254623242851962501535083872428996591527829093008116784564868694256765303028603531412526025183189110484484233585297025647881600580700033822178387087726625841422715918787584857271757567427380753001641222295104142857452265507950705843372707821515127221984105421054806880194254412228727384397082483077425176648868995582857087173726461166752981225487722868235668719815998339584167004739466100498863626568243548548991209488143969001603752501119721135348389545348416475257722806629288393388576280212497898956295409748501028081180395348804469737909195577154212698274878633155678749777214553527076700175407419403855755630559519838518266878588446591140665639465617665697192045339186623236687637198628847941063638449416918851909459843029725300587487443910023965598144326814755015303882904378584474586897815454060020003264967533297102874182598277947716973016590594295161806702842250671024308382352195267974869231612497306678714724372888967558960858394458192659323980771249256567208016047135827668111497216027365174740891054182328887915698949261463779790501096253197228552535628858768397135119704744094297212678416855502815372673211552402502459480541895947247749976224725692471005210397411415808142610366640155646707268352046383940357473979121967297810413786192304531384541533643508926752158068567153508197743024688390837169791552328668561559110728996760567027370550242965048437453548278576815716754241378497314718353796648648443104385042968384236610176460699627637451211121897819092547841360652375510089812299664322634973704694735903500239193716355253878122344540173347092512270327110202998824906969076372542504298418515542145938494539464680194406780710975543818563863801492876513199644357383887969509957985213948160714163698508773585747706031235585710016532417420515218068338884237702480092417179227244778386376873829940933805272142494272104060438728438667199352173849329284115886313425897065332976076516779007800227638771895695871279054459162511916145211451686007881491474983159200301401279659894707180297401919136863480199074319100788154314529286391465885655368102707818559332454398913544522099075091112540679521562764827222006517095454034978361913675121678565896342408977188520561399470651651827843144207379251493553170653291317791447025218588308528856748094936479523725803943118593575423669542426834302018910113987444116789712229523293200604683984350176185995872295753797002260673486533697065561947800792110731552776274734468471563751031445118739494321253028627743408714835325045202419789541268575122631815573967669763784718949896908381906271571502273198972884120118635535801013093960604136507444490515991642114258662623833475480920348458978776466340712513845453662423315319876581645730706454694807071996789827228768872802445522892291336651695877268371539328648452588500811452077588567325563507170343975704347337711031528205107819581315807500866720011860221562527171688835264425707331533813261216697593853331028376663728706073498979444664813511746087679954887915920152133626241480255615439556957058837486822412184804549825084683352127992383786700924881634012159293135457344352585343180841218332665605565596881677009580864496546278072387437737216125142184187343999601093019290594833406034727621590384360687018532085414986123267376873329421851574591813275216691612115572098343320432316932250778594619913016351535139435154955137132067966042141024212295232131819169764576358512961679072136349309275151761342152903616115789165227285924952168779188393401248073126909146012900327215321572270023675073862836832824196747752563731846742743638624802145356256675746944260827432672361579190402402936989849262599858366978400177855700057340625011407367029529335299377390626023477735410572189275925593673995332846174490738933607863879951109663109825317902314661000421579183912609286355513706630558155447202800835361577399429071260051602611960889484121369354772289806080507233253190683662119483925046897616888955583144893694543162603726802225618017023139810697422775919325774184392319239482851067215771344034783665288808511325212547785859695894700743601793576316628221311051611610522683964249374936701496426055732259946641671821205891450555063559692729456543438545576282522742514384392193899778074913134603085143024569909948643660493505769167577543660100177699533842312500407843651912316487992735208984273343932664621447966248899435022704328805314027978454157222528322039565997065187811503525621295222712460558277585264420212720305884368892481332658353068500382207704349076857809169532579404019030285005631759161062800570475993363310670098157959790352325384054912164825761210511671101323130327721226720329011135588460172945807043509466455295576902240265707555679514240435551348731927567978610240129671180167004342765099919752552451089385601000136785508398048778168605833729711793720184680426502965572695633731070251143831862688334077292916886792548991768986278312530466712124592389342243065849831182491422637782233824445809630780198683942782380643782033706033461766652453963556978992804426595451726960422246399814104445053250043991870619623344654389114104519643573703545097697281615154976045479990215084983166340834018484128222097816376089989400281699329336558601320150196905578253683376575173780946253801055196656882045081390898354406466528664701607662866719761519398291517213528778593689733893916358609729796815244524329489986140048560911886110474873402659944371540399505977805755336157172989809312787052672872732174048726345839235689921099699621902865223922670411716353737714068539196419028867168474193167771039162033303993860380136150461694166309521541542215045156372636636463202460364868279041108047336778706727306000775715901199598786119739211983804919442670398665111456842022843725319818412104248946519060652758684035901906519647020747127521928108019603853077522250330580765925279160958138697071266755236046749066978453492069930454128037782258856160108874265578537729199589583595366564039106670250653599427179774900363675601538552817943702460836160216694967404080287290849931032654541666311832456904270910049580004518526407401130181192382340550971814131823739692513990067622298426458530119783166230915034051855462530764374114434571740747122058507378341869746634873412986670642747080840197820113122118635670587610320729054141214557991426636254406890255033233148842356263897751043263075859566146567667319196556041308165316490949626107988300402056844391318931240738245548862581342563680413422651145067745940996724347389779913310725841843314731989878484934267607164930238004731739352175971252872117567310714214714984322050495674026109892129276840414254615708203682994652356335593724774436563494555636902648049361810674605762741522061378971241000010836951238056748445840243500668665846214954393627934001153539132057616849304502268528774497874357282191044809683928803159226129371238173917570065887897687086825958622141442533778670664943976386497044290356169795251919685951393616332828120981712695496063499017285167730597024367678207857255509944302363991843070323135811003226859758655872593654018194690976443412121506530596025293398072272571500250355851934102017542352967194588720824571901193251067505950702543446821924160662863651541398640944292903357342876862010953227697639495941942488377201767115621197339106277736710214975377806212431706745593214563196604263122540367204767283020463123421646146209402121171167966287441018172076333967759573033898357349663915535643220864340413733201141028939549154836883340762108040081902816065503972044075346065561368349241866046903321630838706642360741515170155509473887561478983795722222501044057217607010286511494867855368478376551731370655633039938524797970930143377758222080552831317436368019359279775309197714971765388324384572642295043845744766340989378401551169287215130762559196090009705192388940874414395276650610175190859475616754580658799736955304721302909808032930540371974016318764416553134845985612400118681030983195572136306676429200695255625724557693402587446697191817182571256458615912385369776104445691177386309758447202738257154222485081170903019476102276942042055847148709823782315907353518872178534967913150839911808126061933589538771409372902440726112318196013780910622412208349650312824768419702800270803127346251785877337138322867563556912312456614471922102666559003386412176814652185136422236822753000127943471691115617682901616029481744008863519951787464316019924384729381524021551770025516259391064060118071902616094025035391563254213565617221167051348090504219447277805898508623496194461601109511151193026460739902499034176992776690194969196556646920316727750550568538798829302218777158568774421870116034750008716123393166344574434414908456191781933206408725576152532084562697165968561476005600024693336758947105946353229818742789713105606837808063351999560191548492818780720727340878729481712093898978623030845051105254386068297366800778068944963607811588382600927389563915843417550750889017545651710556249970169350244868894093137544895274832689149670954093380972626033541578259427168229613244989355892072213243880200959816055606282727932961971827820901521043045328770102041985226481166679580339525231113936346620643902632643903243724010825968214286711083616643464235537864126811015291743715225082392522553243553073150234082039489037639158799684265443785991963876936899616136098951690538531058568491026691871014259117507719572219917481329668666767990330756881866168510440159946746336937596803386236264848496709033236998702920388598564439410261369722195810359730339640616936012056503835840199168101139937608044039689426972282481010442573212487316965183403010211517217157814505185299950476072029731263575798687444478084194606649367508882140835150455900838559246251180590596949110073410911733046707442226333348440275454737173517784750060159824325781724981639681261332700309690462368115005475434203112132763155492103810470587331391836414230686797542625824490050823085415261013226438253721963617069822620119127637482659467726305695808115741513798130424595998972400859398651268584136618181610534915819603225470221937748722078523077932470883755854332262899090332685936414409808024990197006909934054698019040830159989965035273681461053129951612008670537373948783424224686874176937568316006397760694577435277813097897578284104020412205158757476730687219196888236446292882062421531388413515938672225847019487734645602356144958229195709393323308226324721947764614240103293112031827641467691868420771206078145257645730784052570468791518046700726447957514103273903374920087418727021559870211949223590026376682250267410204227228152703660344053140106415621254614049728835286333125468136201474935790083096788817103871465317713741626090591719433224941981403259786982905615272229939306903517339164319109649357896899551819025265213486056548803985353124302286255222921928961471503022812400301228885920061591363864275344042704899375326035974565057726857898856625179059794131293858969685623346981585519756777604427280230189408361087738252174446450647276586104765561908328299440444304806033321161014706198024982673305176012018269183479012828964545401505196760328330040082012415203850999560790725577389430207128949708328959613548064840598125150962013911704682624718526515067030523876969050211704573433852490275806365950554707905230159604234368658977451328778819140822091313010632361605827677672539147150029213932502575561347510649047436186489135571722958901889537340849676565805686599715488791225632015969127117391907444068309417176880053963069375273161933307803620492824327100140134225834390339841192326603594426594433663306337680672475421730914734814977333452286001614445395363891831811251477490006335308596153939089643366278511222489118622349127295453343804699636415038598372713629655414544848141294401710434751869566685005443769202123331505892173460742440415269850864206535382316451196320375272458224717506816161790184292256893309186621282875582132151422168108389668415167725682197645077430221741857369299633570127809226359436278794313834704712465882192771239487788165592959668133318606804784059466628012126420361944664569596557070548491829644312208094884278432458040868839751758022303924903950658690677495469284548902135124323540256554755200830713849857230459960435314144104609619468610304388238032689341572495317245803777180799043921371722067200428576198865502090670152911321858219794582503888689661233769434689019406911572322038709989384081294163993779011359559354848344274988342766889098533848207968937366541038245602537818122550663746620243822413656494504636312973719915521450039264617230508311036823398330601789943120733216146088209468931074714592777332078846119312063727584149130424748802547080022252332879802908536385062141011058321979547828638812587206687380932275914757474489529820272344494384288693549643651440093709997422329332018152988241481901772999872314828644110031983629284730419540980150420043007047966185812578561811420908973468354412092839461119202917542613075798237566276054074616447019783771024894132496307633268004371452978848006665264840559287148376952654040020949910333862715049197719880313937862140011730757772127408311715747039913228514053127275784536483707474164717361677273647063740767158182573351342604455655037412706814210584338204890896542589932370050173688252763134931534910318581904997188133279330897530083733846687789582863997868847292554717038559789030581476666840376384435906023453051672545440984092227432991253762916574662009169753936149980533002237200636644877646173128141248192588592147445185326760552056919381515032991752428697364899340277376810793623656038466664226282609242896880835308149141053917515020374323374069466366826302159163798048591528645165131420231148823052799170933872026105099869671337689813308282050904876952589807184254606321463588727506281454037764996474241701447953068467640677211801596558440424818778745569714836784813117760364365716027716719798110217973114659202360462859035947339382714300995778522651230246600672217416706055008121674305969883733126190779305976032021744366532537084494819473666409455821714722619896478422817557944717767906291267049533888473471845715664352125162412864599184081002214288061890266296413450984625545917741100753255143838682828030457021348470600316677649688796967708869237967626893583074383294688258408351217031901818474952117962486107089269533431229644286123435290429387582760608398424549972671118842491991434248792501844094911744844164825533755251760062782324585684868641430087471424631262653871525854625621439030293469409538709347054332839553574757780732902314230879648019035342592238336544130422993260159835449342381044274215335926740544462093186072120018400820842434512201021671638839427875303974232467927136741563063955295179025539878248402291122358617083415797591265528564092640996282504715353633485012857756720827931088383716657358038373562808067302169326958830479934671506109171819035512418669174213911258805424664337524661147046368011600501628276073349252140096373402018936043775481166653839576214762991868306399834805193811786796858597089896904571636094051018968183402638493436409272723531215534072937134302525402026224175372073719111428876402210318954213053158645248361701584595256947305574419011346038891491556284990707283991841915967700313695846421296018654757267213540427737319808520454889897276291177850045864068667852537228732780247961057117594287042403523032478867837439164806947163352976710067237983119718326750600515046642781020346557040577171160051640591416412345877563406446364622516906181325835418111074437145321708391402572019902544376238022911354321361117924374740966800017678698433642552490649321164971382867686318990287710056212207811655240874357899911961015332582474734459738852234455690050135979200019574919535250067798672879940982834800764185649481003516579503109344672907052761578262539026908511621019630194189377331517450278597407867604393542703825095786905429595382340917958620660914154371465542905092319045252786583312192174585014467849554998503052172649211397330935172642112568436375408276904530497139333439017916566484461033706518258552651699177260124723241311594199584411324372818428687062394001924212845952998052656243929585685803713233086626442387870863780897777379346449924143998466453752979644284726070948597280517980747359143366768261837965424506082600666179878223673903531310389708250051076700688727039215065916786451276466385667815655535210399585744680303931660846341296156259766483800637887887115988565937137389234730003266601721580577014853066527339859691992081370289916268920806033808996369695900660077703326280362455948414953065376608349052222369183493731208533491304580301261575837341907284139364410135148133691893789678760493829089866532498724352836869911998220088429443676765615130060930794997346276082326671081578533152630143054950981072448266327539437953868944407203986616066877354001565189365926393906648235374349850280198593872392377708027799754689647438147859386048138437944953447215315401025232842355344827972998683195560249324131067974874965683316911322476226088230882721897112877504121060818093769257071885940244679445117930878360781349358252819666552740839385085651350867588575487150166742620575843269990187269454213726564588811822526406451237693185944871438137689490095547630513635122848056079898279595909135229026109752970486321150568802835300836550822590972007483848406135337281074147348788473892940830577053015345952949318865003510027568862892016366926747813317568624130926283141527396520077805740840003299447283942643938068800017994524266937677602619784314254524393532786275473658058015140075471002753806102752764960592454905745039969717707289793000889947401361287834452406815810193236755495867286616074520488514456294967330897701934284903666331252543212282213327555065301117312871993831530426485514596425594039878673706000521978730599067080928531450442198992633145384350872433897721433085840961255134240986997160152330253229455567848980768200408014122793808870389611653691378783471690133640161111082119255417613178742765236334248422562248006371199211641588374989140930047037143341226469349415890290898227683033758174026955451870287446388514606857004574874439168298278613007059582272556344107248907659937453289181983355632584999093830036716602971230508184095480629592489224895870307126939504547429905430003124806846438784801929356878314267684635378040081857922564136828495203984277020203383168802865072140405170394288475445396222713314773694741253558418729835522509701476607394056371493330259263150450243244180667427525981142523351755903488462463013436736527559742035433423670474307314736368700247922543153374098435463843066744280589173822307951545952393469179055363072224265466390541057351901324946446229937500765510379065596222008418958207917373242117281991573682685976831664511371620184718122689601367630762404435935869817329471537878709592709929886505788840453116605810948749433907533733012979831061484553490268283337357324083246115517781652823512220930396676029252261972726962740350832398799560999245078784481564759448846264125561775752620005996600685558002294282693117217195391053795116360573207831099798725413230930314089674210520452758234851550073626943531577330222336387697949547923201779991234173854007992645965594136862549963883072413225283255592340743366075084646866812421589041590979747134885436132709512654863197133120072874583761889062474580962897964399413060898086892989882535849960469407923442014378299298071477619710654822034105912389405524227429365048085417765887923352229111520991378246773623607076721399296026990348086354120413228950090402035291569671843058828621335980559978738234324919034525822969926621916989354763326161030013197107404119677371526517996742788926356530461035267840019221931451527823281220062938308948044940532857152964053539567183520832418327065967347079708194799602363538286758083325015984221491934555174477288782488495017276868487949299222473616239068651703404334112999986961099302691693711403319056263483026968052358291818820629920996477103933959982325372486565229327167897704479983735724306857862156498145368655672992515028392030142185286359589629285016159464100106195510320124014872672396426634335009474607338287429581084270537740613752472505456903662655005244988259613078554204869269454132769839327987051866739177383663909798979816959255087628915059841894050737360526009407004637473226013577901496542319212039220399792304054870299176602757091188995541116939422140245220066037812612836234165008646508551050869952895699828343731923115404148647531383918139178865735439515751967558625861472919518838054255378036774985290937897040489642169677653202798461742491193893838252541718753017297983791752350013647347391436192546948601475348024250771284389710776375217239022080812022432644041216572673491734449914125300371111929335665129969748416760919350089448477138627827941344265080434151727287319525840595126370939039944567747173746694507253237941194677637903001047467672339002183462697966721019321981667372482790867456024696512174046227121966121610104786433819861044884023059249157120146639110323057641011911987280071003340155367795205743324242944533931907867375382832196314198606205229703579671357331527266322641758238162098293936225936100859037277721356540157994673701674094679278760856812659557921992609675949289050895538028326751773612594934309971794187521231434231184917107576957905886579249408901998512523484199761503806372301974465755561320734576578285187683570022346006649872408875686222324479262096091860449165218336058693806560448534668317957748865412196158558985994244452469881852811384202682309797590414205152877732330088240112932573909756064978780573535333756497611552885423252836250353292871109525375785517887360456895272281390929173279430844742232966190902312427958924431877244953392951610610609665344898644928299870820094341316874726404420233442673803363894648554439846968178652223391262496041527853114211450851319854717496774443843962594867890133245732351154622705327444574951972451624460741933918572365914250747761188414089648439252916535824110665497334230712501871591913588816044062139957702293410186647764103484621673252087435185382177802082559035362878763401888652271227722532026125500660051299738930393123466691291976143190426201351925580498523540179808856114738798878440151421825972881795208985677917688847430019762065505308462262854645222026546047725003793783463410657568099092818230203399684262030094985411469981953662509427744172679749461430688987947254724088289778126851387873050906082017518244861775912052097602390723051580041710434124708497388253631986045902330807134610214149742170073905407080715409391528895195913797660814080286934429593216608803356846144294485228989366164956588655349219249612109671925912209111019425948197448163449209951991977914362592596524342650914757738683041238632847989075484279441954851400019006479908696929958289976457175017659003452836039952593942463006383239002306102635474820948151054796154901947983771622294143024773082556806040089462651001620673059938040684942729574636597792424524206517541043509305914480419020680224955501490640479186475668521393008206125126338127733753686359778489571230304487420365587509237845688472859518000632209776792345202465366250513139660930409347362142018730470445889250311810849112401532426656221910056515138120238918647940861057557282619182780959866660773242528390383134166728964620311130816549764635034286221196195972220281289408043545777133176694602167553652680874986280234836576007618913716222739373216360604538613080482472653136134536737139383967821207091523196857809354782755655709659474533963495405467240094915478960107326573024164649586465820754742295428733359243058574407439686482265790106311207269396314703189936998676384816797945687981569295678240225374627408567309008027270851145145271984930174718776093980893379602810526516098345045011186713316657990797527098199347599715201840890571421910816915574143203194704872028648561790088225417480628030656473811697368382817511318872957601896041852756393920214824881935073455465774944266248716974214297693083871586532894082943651876830603397970512678525095816587206486881248020768358904958554797414856732487157239483589818126893688575461970092542951697952145495004609364974283362039825348815978435639244547963671638386768697555525379357592919165689500950241482516733879557474289442535101967332927781421145417348628509739573455950660600171561439658233495532661982984167139807405628510363093483996127725452823977556219359256175456162623113098293604645604175469996347889782173263834522635313614352164895452762857688961156487701788085604160199788005353683428046435395362534000171623666466536001888536011352570607463972213848778674672721782734716378274157721492785460326059239791855586334105131323901266938757351312161354918422785165857603577242208933198098995444453230049346060772426443158617863763624818348580368195286526565490789279570502157618239055565841502327621005597805200715333220411051737596471856441126227265420656527249135849334095844832160275181193614314488010838654510177996249690927944943198444654184895950732825083647991377416751602425505127150216034747701214603294337140202572338409450684989630793756485293536394692718970153661754911106090808508918373640589034716705175557467827623580653354290147018208027719896163797313534902850961309115404444592241712791336493072578418597819953330242480278459223155829285169948337543281813778611316377621021853604566144025079767302960001747625863200845335399664837070531996679911589468855170566540788237612253908817167282985788206153286353133923436435981039585067106342192211502297920083781086405923923892808099807615346884733892147794027618959304124337063903790343956631274108507199827163589399831110886151031748975139219019392363933108441115080391755741710631252881414738216958286857577725206087939657207591344734460155050190955271801953228753667654351584428498467233306670983199132404356365296236566322390995756520529430216261934524438585521624969325950044376014713631387584965877861097286731687857805076112813104780531186218378879290242728444928249175785545541593095716426675087330242691378104114473179093051527144313421855622754095540047490808000047922040837419072524341626185764682302066523388542481536854526441658752470624745013006263061582916041151328847665393270977593013654302776718684696056296993065889374705259393938726894366821327554359075094377689268062896111964259336213851354209490789986813732769874636526355067862380253142933470835797491745854599833197634595670127322220775106822428411468351408256918154875328384313012911184423465310444060653779774151615858016926320819363230539966013883665866843798685192131974993119021701531493708464299499843974391901508030122444643401145285141610653804990828948833056481837754050600208309897577355752765588476366546146931463259982542418366896621664935362826589490972472750240963372174009224607562586535697327505251207989025218426777137217980734107587131750697231635469843423332016078446522604494935398324940119810915427939421631520389747240250153302056882357101263110172776380528372696720150031215656874347732648983103129332530752772680249645379676146516160833831255265711510272726696237320480577415924161225056502790074675194298138132528219753159286059755064642523324045303840016957743480245768441796291856521835250589601582110194295780125112472055903487420181983143036938549032154110446870907954231747154716855934117302522815830621106795922871282019112248763944885476152878424187789560697518435857470292044168808312109555970705440387595435102336974035201904571706444803302726827690609543694241433551713794936533732262286656680825365420828666359034880567098005925704686746299094234739554864792391099364617406730090252559146191181791314089564375904986635958499194341092843625655298279514803063148662859357661737260623858266952979885659679718535199313417788422682201077127739747636558830226644891683050589733049882482366376279263548589523183413534619506957137281720534828709868474319907702529191065242552118458466912301693224351537651319002305970041461599520292044669950278716041796945093740955234565711631514022879076148061291008642526984080853138551588697763356630465945723840595079657849229854748025326409733370850972689182503870989484674627610092181736804602016929257750439649023490476173265170896494932881455436559545937742082654921225266428949515932924335651605010418421915726655769269315052912638623360161808127600882795139600924527069055088925132612592925750391710115812453455461049922859847878422787340701120131541568071853603547517823296953674200238734476319566449974178909811380703936375906674494408331757511060197236522682176371826680866205609491689344724006319857169953250129378052528689293959616276769199538310678093002775637208013807800198469914531714269571137665635008596752758514688811182712195278192757100824556318368310890954646617947441946272464328956492467418548031498608305152737994296680667452623096151142125211553278252186284885645228913527101923408188622283561238920911963588765722045872956814202831205987459698029543939139458692014143177279478880349947238987142803513507860274980989511819478462213354244389783218663557056242733215628465302932485333634689056624347093842699063468559538550313620417033268924405171228074204452972862771272834535131239770335714315842323872811292051348828049528617214389799961971291729616266091816218721648060128617981417132873666681142916089166435448356867867357057763295179248058194429715057503364975500199744926957095155486680251207058551668908146479397455514396489137405366397929864717844180441782708766891928522018033965981126868571404509915627868242794789242299979828943253800792904933409155811007872574989658097011538367784029075733220036654993387806982505838901626528576786709313350158423459483386462627197102410010439781001423877262881455238256870594969069737121110945234568925686050102714306377378309476100696747075043951720422394051175570762065073880006319212167787569721329256176456962716523255739445710301643199319583307184065753260608851999713919790675897771550197048395124489459519094247485127580763963861911212465502813588404335975059502049537296111410547406531376300382591588075866462698692854036844995130185160102073828411730843639861509181515954321021485150072275556172022479861462129385795489077152161158490623714022763704365892042504412697778831902173362707220529406626288726840631756815703545744869283875953597511179570665496729249642362648204115078452008693334923568527540022522998415571290102259919160584632394855586656599009887119221137962093410688756337620462803306587064044848909127867622155599593819671285152512064904105510401409535552648022760090452096053237392399783490900293594261539367272021114607003123040433011509696329454947601056435138041458538189520325842565236916094844137934460711810007426451418252086569467235069615473907957715636066343074973138316885863111840546207127967968520569356204776322928356845141196910790282227041412861147429359563435588807029560889243629162705957757811449829490558410315291888400993213011809525018273516272976284218792317018304078217023085339893247264297656456857089809715719709921466104971202937163983262806827870031526816328857265494679645358464914241091530875965860084427365187181555770287207313931289352709448665658388580116075304053263456298310664987023465539984249348249308237347978046663118515635905765476929630965031135607953200188023266731015370311027537896956876810176081211240362036870921137000634827774349303653981239895553810838182035906586519513040452792646073640210721892412765108080764021968178970307104454998348496204926668940545917123553784761469259683682490154072179885016595445148898664267232249355689434303175000750070717943173222380347960903158919859814512151346515045544363791104637498991272564461515214534550063123225177843725325555700195996633736886822068912636716434372587011632999023806446243450554912394395172422684746208833008177710111877301063093945595822771658157443753360984871690010031898241726400914350550976033213416523583406589569032846343711494327486650772332272658313651922780265311300311788895583546784779724451389858274320506306518712864406983126795440290494671262658133297352006342134907040448985495681443405465302083287259866228296410106308949090792634424683770105399310138140221393896691992155041829815555994495553680034932215693016620589646868960180118715767816779655412669291971786030394380337528496301062292669890022811096286084154165319556168666306075395734650424837729451454369063336543632941359733482952258017748866594188600347458263851445278334000522005190205367739477045275387015161766212749744692152591628744894605522974508834985755811191055700717106247313632625629580478150168141108224465181995777297242163132183973495949439549507986225132124957092749360785494030443752413101106859913693383175147261789430591788990461656498775456198002364340504243470989930194309078232375176952792068820044848120027567607536868672457710930262928456412622069540227709512473198398385473491560777643606101504640459824897884662436068321997595767480154578424239555143916609998898624086110701404378032537357220760644047513076320724522280776945469083382256888333508430322988763846556004679569875213690040250321589416361584880754308141211674705017968904101883683284739445526606376963898099681228556406005414367146260084480058736424397435284178973944852887151822716949542676244556279019172225744318862812595443346332056737616223008859600780940469328738985723602306454661574779720376222279696283654923130763522035593701839794124697140987412409433596867370078939517044440965503887042580445120917534315886374349285897490302020073887796250665220408946365020104965880775715404097533674974483000509650931219082713630802474317224038335368269724904418075107217315018543251608976224165163349998922922697747258055381465635944372700255178334798468785930067699453395757980384544999693093480126308805525705179102557524304896999251856721645399361432377870219137708085929075594008107674558227914162756155696088111330036307010287661220405640722843807323186645491485613718350988801622103271760447089996536312335829823468061578944085231699679276408427800974644245889436518639591927430867877638690767961660459312522859772913407015632482741760743442234644392130289970277771022822483456855587493256475118944362009574217128821294114554075007003613606839496241035884122589102831957494057924141745346816604207214345100452045748820328875378305332299226437499640508683050473663947951826948793688474711857851147396715181003476158604517918362370811135504632199737978541087979476666996383369723423233506844344491824088849398088472198473238062830931311982011483405506141300208579914827341281539020792341097413689487393614225302267699694863186177425330368204018334191843565922890528613022160449492785211166314307540279461122042667716107085666432892450848765279894155080041597958062830742209714323981405601067006649773807599430181274603146239920766044677797626524115176660439944014597260360661891723821856421374577414821852334910402772019223002817799629741328481561422644728733284904144216321964306592859715691924013478763756523241771823579893918790885775577484825231044443697986557730649498843727519692518327085180552067202207189846342515212481795186392067787024604384625303918229269578960375324570637607140071553457364387366312355160715109368346907488794570205968470376399864652337885680604986546230213305507161204614227510469573465167730413913360161191843457662679601104915675237017011453750384957561263804025947934788459937661166730107861874424466353277982875362700011186146854139413048575690240258758167315914283849550364631522723946822752869426109870965359216091151165710634990854546436180535285298897072224242935717801211654123066803290043893701072100908792194593875007253968214068706116090835499292167461844062823908335315409112904301141839819886903295469467054339146965573774037904940347854886563533603479130678476468608359495269722262330676460015859480322887262941215610969695328652882453422474801113842917365279110565957818896251023410690954282068594464229575938433409405301901203860061694575452276119998702293972835103788238764370843067628536693478333361179048363785893073709303508762892456745741473808804435736828414419083779095959984015259350796976251118550034666456316230195631269831247626921225115860031556838228339335792182486383696751401288332556806477536522801880416778429039181737046784450672378882325633820690086449747665474686515915939613377442792410942703301471519801968025544073878797752180940271097444675833521885049273432825966706698255397524438138290041930272678454266428864059724338131652069976945833749853589403533882768149658455116114762679136002028361867544660812072862724335831775102087423512589312736026737875057742626402014321065172538284773267977292666199307006137275432919114572870074067027311850947122185335439363016702065387580121247440510886469281743652689459980197175949265248741519325742373008255547351076797451721614960166046605885171162431851415571069519425941100587093338322213034113935431351462224993698164342893671931323923392506169143232281396999338832088464312763355262614254012347719157151279774607745640975710210355299681833667891172464479446501282201754672393060905143415315210159858145706197534869618688378737225129363798234636461949608907795459477668535187678422491694853924723159720593817278680687197746886160333082648204477853866309254483046716262595875257103825676673752266598842402138346414356383698309664330219851703845295241700442981485049633977002437095453341649852673826654327742186814148591974196847729360432200738114459673197088575116608337703266619066233621737043605135301213687276540071753597588915448099728458646521492114585037625102003246758698542564314446778428153286018536166610646233863447597330369331900055295378508861195965369741424199504073914674431132540037185472168708859824173861765375763150150211854504816631660171599992118312176185888627429253178564825814020662374520255914902846497625698541337494327228833587992718262873006491241740457316377712726006322384092063124657989070490069057673031344221846561465634398258679460856842371582592593025978915747881935739010669328827798303696231914292496272055156603905259144184362017801468337679256918134499420884966865760791272499007447948208205770661961071337839066195288367421759019680303249741759197335190957804380202085035654632774578199120611776316216368812423513472530175015194535460551710971019936993597997204580241812809610860491427249682360274175960786419566991999286716828031048850303575680624794875798895855447920824538474963771368254017793357387675236983405712002739331044542620199389209688857384054430795671377320611112476375215824076418726729992377973954797255101494482557998492886326784339652121777356080714069240009355056786145883382528022117170043692076108867765171101856037302464348171789191078670294423270680280474730421166440745932747638033562562086857626425770094089442054158727425753767411750581191358210064029155174927189922318190966130188569415649873932988872264731532364815482550244087118832411145274969306622856364751952244338134818104525833513460330916373882026149586866056614021896478045035865094889783710802117958581404782793866521124295658613374756413161121992551469053169018551975440937576430545272365939159914726237171725850209925576272775604346158486306731207997746410628988690817329449691626408424591721049918377912712084800158651870130721415983262245091357490026470508276676885397867471482942791590836288780633684058210544547437954193067327844536439660169101113922161122784442035465989186519995513860791867771600715646886735069569201310646811199750910778775101255529139367972714663839984586254557751396800127026057559579784267331569849989326898939539106684545136265728480339881681178242175332877703125400308749550300495770422926363894628581400032901441785303491209942813653118666414512062719840444864851550472734653164846913246950954068376998243512276199474696925438584626287720448661367171415637392007543278850094205746432568969423730121746390442410181831850464328965824574027444398227753020679055207531690303560891736723607594929618567911168304448455835002258918558479567128859323329470908609153873312962615904941134064345421869298790071125983553471676559448756207677496730505512094461142251150798511428303335787095775068185174566853231059272566181774669875510533168662962558483761138739337020204660761845339108394593648672340595311722446738766369145040666184595472455986869369870032212386794632208187312265869028471913632679585436838742043625530075046722032592830229273067828373619968881809936379774266241662626844817153323572831101153831977832134764470366014348652634072182493569515970532791332063493825822487411437074533800367667525799880543695172190109324116232438829475467109416425575569737035282942882689055055211375031664473655247702595062693576413829297230353858173129683602517036060247772284576338255669539281491177702681431659789973933279574583383794897088416089851257231861434854054459748536258118979049673861027214814188094425243682841678773040512836903019307085972470229318122394465950950375820656021198033501104955433756511507456198132853130369234048441764086674233451132525160517284314982483348278897923698807511794861973836628699971911539312378858960820555363412965265552554156842939873871373424930714508564070850280245806537397328067604543311694029016049178994907668382993034811352616836524072185039307750899893196511053827383880922327425303744490037718115521287568351400967495156297711173369805138928870330366025835433017790571774316511597634701525139218895536361558581799159297032742530650927583089488200987791469681511923655100599750714544507907445429536283238710881893129340784142838999958648459644979092069340258722194024631578235388168453745046229307019077697962539468644367038516081034356334220400101631792893952004383311273013745263483028429305543408014206150911616479411887067235716129400993413719425517925921834644810654588689427415220035721262530200111052472533306512778413332508836200070349338964034063157757003765445806714165432428220728917284431434709311395172686775565238174399460659814718291631835499442013264909817895453684416746550725894705154826477117463043834356371923161905466046193681386724937326394054129247495456742171663850225579958256264901585175743295943589226685011582182299164339188796687530750390179515159509408907462185284426287514903410497835487704202166383418983070958596127549657782113760607586219592408397891485886639601258932485961182388843142077674760954087341816033008371992388190027163738492557157687264439178044055632758067817927886962703583799737576532840736202434403341111625911819353788756224698380321043747270149256919396399320869544249883377120611992171442951748165529535316335935655141813008489347407193740750047310468941676119357956432536164083159838451228828468992651176597663490637020657988622505670701253335550272985556259716255730012972698323458802512611664467998698191439523091230699420560609836251488460332720030640502114856692690848536830083811775664998240181989616472559867396599348975184197455713462513192289388553593579029797380160700438698553062040985017320439697041877719624640671267150268736609367988163379575118027293415227665324693809160666116979915324196748173354394888881569831602520974468317194884064501127916117375930706014763178491626766930014237746959069100608195242102453813168760426651364363350551155571086781429537779953154668697769374264756695537083154420899503165297502918530549952361818416146030546554579895392268769636328776823251818400137065462628920964235698848097651723106123106678283627084337652486894993633071203494654653081863681224858439189827858957231228166282566106605480611948208028926108033759658545648513123050896176022093090406615177998796951824188710466896310944527882552596107863400128952236792833731157141544752671755035214113526405510859390159516235674026696647538749138418552521395512693922387727600989754132760351039579932278024296601738651804990004355195754917649324740022841490413199660639533820532136482016879030793082398975421528708405020651792477222056187545868590705481432315129798092577742148893631802998566863185460512629862542081484961674814379138214764938010824467307685920427773328065697017687913140498038516505627171217779720779836941154227509593468628886014693142018480221131235086777376009424281913895865845234541924222243986787619114620081124648507486786730843516081533547837789912167600328913297683781575414718708375379995533272161819803670180349020247416026901901717583669213688482446938684585399702521534342300232151465987041413115497574307891870172974608157103700698010721170627534204770948341003793817706816007995201045237581821880067365088617101352355665920083224472982901329609219975590661652142054406912400692027962022760014682906387885448382183671570828408291872751352578817971294134573956530773873456544369417239753346617584798814723673527212981451587664252120344928626408036554467049313273122959348006841320817615626814192530981763525080846388438199302424389521700015246378941831216348961656381636694797654361596358436418711866230707484039328650434424599314496284926575137158704762552020477096104616643985947928809696117094260671090055214238334354914595661690729565040332156644143952004012605754590407945950538578351684337204829675628091688988589103564409875789461155373278585507977366053034317354749653914938448951989916765207240070185170642702572697532657430514032152001021567246184139180946167863786358131026306825493458563011171762768546658227737405489276540532691423270092052834434161883474863534766742708259648339128561767812989059740294153346554584777062943172067852395020326486464011969790478541012127396681086258933066147694879648752633097284435376183900944949013109720838718056410930714281798027407659895029801842422357424649652781080499894528783388778091479643567826885510676050057145037019659569084620686659104681523728220108104720692673363175629062929893077574569003057280830987823414296989987031717770594929307919884886292408794196131994941450574435435402396418808976299511954616253075885634234517408583841816249421660364876262679821827356754607148753369985875473566802153842067736399853129437387218178406009549027046393522121752455059892351813059809710613998139783788920678840873959536203948190975736288084556417691110575387081240714041151989716662851633289842477312820518971876840270946808500602628563229944940618746064707240132397406026104756179906404522723374186827169353981305195957968769286000419759411409441163193139845921166763980946093232443982904946604716015490164928477386068328721444832764041498902989946083725702511070067869188567379281073264074878149210825877206474281233170136186881650995444614838647001481219371194036825699527799792575803375816009838244782179675325365161760531319383530757148176012369152922155955501247051965344326801243517189436696202655551791228203716987484176969896394216990995888551157557475178140392006017213240437495421027041508764165405698218727175150447606314853413553921641977129968454975779960383786075081369450601594543304330862987425264691636328115064301477812103635314484351165122383281502364699984485637933590336969683411981199061047740984328407424972760568969146870164038098300012765129888497271153773737818147444416972292552574575623057380614538364544894786182674324141476731598103790133902187142058812440056779568954206059008497895101997423547386047814053360948626622001661877407874614491775604610182687937017316880230985676053497935986997143062184016316268919520724289687726357280448138290003316679305880604025584985557613548377041028072998369999893734524884116374356257495283420673133701293400918866654220642209179226704412205899232872580368449591352890266014680304315740375043632353002969452219737542516440054918600307274576848781525936350507078551614786711334866622918249882592034031392525447639627926466142893320641810237655708837461410089716684178849631908293410875779081493629193097134630087133285486012406746160062523513107503603316408477586959008508149284585635232125362921003141485491401468920860145568725648202678480489483851617984647027654679244777306751251111507580840252670384295016148668855259188547660716253760862879223128058742599958532038986314295270250616941834754776856206417338109176855644702604100962533860778413207205735346040845077102790634104037234022094842667654573935405185797666360856902561316125105350023468532051376695332276759221733207907106729434921732005725479564155219648381283650170903687092553180263040813856868259641119945676524016159344514309985125657385264765990075631713249105196755168291494303276707142930664653559153348788489072161105498761227760014675933748576663643273155846704427518165618869621474761191561099623803076768963406403945645330555992765162409138806478243891984254505511871935309963013279928390640943304912687277783448591251058823284475141696181053761108840244950067232091613942187781387136303454073105491040666876349274417786745042676215698448451209372148908217874969987656405192647182915864380042554871491241247430339477150876483335018597868660874804162646776673232808132355119197117405599577934347261152179497428939493498561847950655911926160330143858157778619542154272554067894595369301205743943991025854815495493015332909021963315134155967631370039017738832459641791590158237402138483573187578352106601655404763951583147395207398529201638479896334658882042511156010543356854339318195021399464353894448771501813819423919995761438012519357395299834516933108912729952812973324912406322323380592491506679110588573531431341278305918865153790801767923066422732532850311647540171230141254046449064659381185658191214406179783657936948793132140858476460957138624022555840376638005612221252510129476476765072876801687543338273862929092065834912730431607831865096722958913128471375442502505636869816173495529073502636790689902753202387986584810622521409805798060952734409151808982465124857067235088813889093254336102183719993748579993917637773825161659033104061003504568224662095345420540749223827545200095121449713370906071063496363958172827954259935260070135808929194861851449031035854348254252102040979949108596929964056058232414633594776817663134976604650756901066885028192276317008714994647454551418458765216962871038774074030007396227046576764093746738272173434890730233013960171753121566257729804084544412158383452300505952110186313875494012943648397797540694789805523003427906699676510827301303502842293632175521965080019586387181495211466242345740234901222861147434711988106455977067110022699569373256264925205854407477238969493150630873440266860978683601572474957366551990215609923689455291201507970632812753515841275039202165197999171858356661532615257831920709558014106433942171410168278181251081112931466777416302565524807478393457694538375333078557020468500036865198080997213111496334588100759571447987508481364899088618988478971724341537792429211476660425558082525566535467407302270367941136731865764031796344693182795282338536285403271760691445894070431726017806844708151276814025075236051816579564426549477193553117443812293372865801863570391745678638846311713481243647641911208703003389568623944465544607040503162055637497663129303981600947425847684760679789197852223860554704711820429525476037751350703134234867744485823593058310532768855802511969401246492963266828581637333659459596005272755542449073366892753669061517332783790840545338840193974142455593407519709124611208967522556997269529563976971094857041472621974004310166917309785151806082324753046144488713190982123949213273732289912862644031735904698080832020157868272849203981546235894240657633468014615174008503010832029203825478310017966213734440089161447162590575745742688219249810341205274781110564057103895183297685275956146301667669171988104956330345412689519210355166876933479349588715271278507893783352127206893419946188439315580340580237701786012398169807229660612178136919971758247929022809941916035730092473717782069510668642743584992738966184182072603104777681829154083391220251923911377384543533497686022431738657798884286018982462097367233873760393733841467540685224164043504081922367618979749855275779976151620648866305104085076805781308281423422764679987858074795345013935379554141222370196370004818277003546600524041377694002275485616393762202788017377763365209237958681136068164683682738747291706098106918913598436427478583767442920681788995015216449818961424670511605527367202197794422355859495368953361501995747498232458382615743271090562036806269055386442117196283363647508213690647567722776368178644192064577762489318108293873572569889476138641063524630381248537771591756595523045210135381629875804401550073559595032070742413072895272503188932314271705074929523369340734783549012479620591358167168650348355902091509541839636644303857021573618551950241685199898108987491184124667264265060045542232547844972660365242018463841642865199123658154331630977863032442392103355236346759822684209415130234792065605556314361967154320514864077753049616710414480003553333917018879918322416796265094699837918898022712570113131719494854343385433733500128833454927732696805778817171833878592010092924002922327442613087879413759032911108816912699045412702886759170751195007762022855139745045776171941978457094054386605772008248402741902941697097516218328047951130228166399978387808625152628405206333033454987093751911768734707758762014320158645875123320553648156398423262990366035992873397968838503574734279756486409069192851397781356431895050683537463400902267768436918991473542435538851959230326720419657547338671624542396306100566588204253366239548831429296534683814103423124221134155112456560800715166983837625802695015322998649480575676245599662802170695378591349803632629699619310619146050397377725889349136650281437357542342752412396561271076263591639598005995696694979296472529551317338310238791354198594316523191624708996019940025139617116272062499992192480007959568080719852313624771665675266260340188350881347487061294253822334091163897099536391424318216870440990836892003735059400422566982810245415088643841991875367446265857793906523257378655448533851160330632858342083540844957597718103422437104716089181213122406636465117272458235490198741125675282051379265141586036531004559775686816049699201617036703221562573304565598493669576071243777729442420946997419851857172528652714402490760703655510800966364433692535419233408071370902865238886667233086467544101544226738158052835656465128147253743197833444498018324756754680011021707513265903459829358465954210046633675697018603818185601443019913156111163797748297845144857930585277031889886724762436899003685010483662036392054013626333494898186182037242289779195923286123601136541470186913242956412481957304666805392958938245844710248152806484784572457983355345274571443842387129499477206837620856660726958989231792789616500553458932658802174239215747141763678675063331261829276574945310291938163233837271408224223674353830034136533840851441330758405312783183701729638026051776512458491432014057797618772436487713470889473046596490337529813636716093388709704459648217154710020278230031386183513609070082131510826079751634713827292727921992658783139367083246129952081401171346526428718858500555279037360396343954691182399039675560127552389576059089357584310448925436215692877979308105956866318505558116784102806835173786467827487066655286815109883322778016974252000975253448702417708549785333404971514765286544265910465784522863139632843689964415380970964434677264680816934511774221090370759771124797813479616588590574947752445194964495050974413213717311686256484481978429999341107575636980639407166729808423369622435733969011952896678631316714286349855334011152317969947527986714808809460457891516266967484603889051115549538173718966116807161874112271585908697454819295463915139410893509522382401436779587547423501746878917846765924144359343873794740877063982149407879807976143284885040601150540000670730269850358649705202999187927019120329926459015100465650645220047220077086414223681573884371159032652316358996654001856604458808709018212605349335435538711876228601539580907733553452743626468886576895843738484920219620059616016806719034948395065789586607484681785782599671630629100664354577692248390116120253440427649217283192445212491370506597858605626829359385641488561115910058717831120873320513670671814588508485767791488403064414112019912277823180151772187898223552961422089543451571694424367029623914680544870198955708649328337917359670291499561173370414702886617195272035877592328805151385569528323710853341995627410198529835859237711896038349244004440961789183802239568317557699664337203058821183795111242745865879528518811132211279069756401877211105895690631884055243074424780221747468543692021935633205521811307624805344126612846256103434084304886543830183644607530161255990954754083137389079392356339805230881974664412174889069962358154056341503380709863455674088865245997199690227026434330759004413509698968000507624512707631455378447177483099748425703228890768771238783649638026801425194373886478823933920256761533392924894554711097285710737428175004970377126830635810250953317976641141727611745373986604967937339074373367205006852354497027366505443632193646040633848389372485073256161287173243194181984582629103951863635510748213329606455792970771933547375071178100660210639736584704122372037050154475903513289352848777665914223082614833462591355824902014447534344822575677887802466636872057783092738963698155389063116556341167035697899341288194728592850759663841911782837713961157348035518527493575628310229458375913903533343134479596869784078495696056778050058076776888801864479959365443700785047573037429445678145067708771293912372075556912677068044442271364652042635414727955795777517783230508460721379794054514888239672269568932297588686600507157041042346180414748955653794938350826880912888167746551756398738519467970317225769831697861634224300068198034385737043325052571001211772027960280960886383280246538498919994483227237074784207817943443976149079830570784783705988143149596581686382429140923256697873160439146244554064736443534324706722440504433371318544919983501650754037979275128040164479075221896150321489086613924354740461151189076284883771773419133358750369960226792301085581868782621914420282718191306247301849830985239021540165737266185719214546067810388088570793569576920907859918026904050641791850665370324257308899307223901916467547057017680563512523566230036171086118693313084056050501397766742270498104711840567316927037056981642302794654674314730231125180237144662178828356413641997098650711261816177652178885949215155286131054598158077445063907761906467607651147016513578459145610884666760489296282873367464278317648362686829197841624476491519588912558371458290903557615097773369703152932709329165417841762198689919476881153835750976289995485392589014976658804933549904894755428650964358925906665735740504473843757815405290360154623584092125839243292306089645967088531374795873190680197114144075974684584857098794305692851365307216633721445414726420578485450779185928335915590476492174378493832598776257868400086081377295214590664762074025199615799933045858839019367468584605022775122078738458685143909434386732628254614583247562998737936270926107346095504374139240562840756102747256983618917568201418625150094240143302070215654876646237945352629746437461901499258329472067923853188550406717449206162444173654799873188783505515102420574930287750824477475130834020677849225267318334107541332757186781194793000272986093141137163085384782969714470133064619602241351226081819886809894414026110490158557223306364605111090096003417036505412488207662908701310718828382881782017648059250754964165082480257105830856394184271964273057449383147652533126793542094373494391662069659545196255654310336886012248277883397014035568821893734364010637648228087376810764859686786543032776076108379587241016416063634611629909375842539002260412986906942320320426677869331464677712111761152137501676638213573485817736782373768600094917251067300151613269304733864989860471800118129713958593072428391142773267713805432777414841045309727989504304201355945991017186309930499556893517715117951422568144400691341675029813475019151210244719314529980936584054774869276396875862369530096235489212587570438001892343728920164325408826333505432769467693419879709489902972664249153538255693556509295344406889185427241464030243663419378167727123747251669770254783824339752735768708134273049521965548876549825382564703660238318073056044019270520654559007845843332780352002872989144549869841652514706032535150560381345739363429701329402776804503166590019717295727705228398890357670043025262573850538790870941167314735892956123589816034943697344643228911321907704942987991244958525162353837627746192780808504022622927438801081242498475746946140522862654732120582868459036320566410970206487283238369668943277021605355267448463554008227414563009000381024753368028876638336472102621802639407465001941288551063773531517072346421850930629241036051659115452834129250731974250367549938654658830071114839942851043459194335921982321536951631407477913144559827390425785811329635940744131186573683143076747914604005834313716826285257041036464584103311162057118442800129513586314884825830435711870060109829672907505957852692800844680781625269414014317550425938816072097096765480065290392219210719038311300385726589235052369450337926814665457942784814733696657156796693139626581150821185209113077970976754204351915419141905599684545492685138536697594556325462796161936401539251685816621126005513046334757329446534351141223746707497434264615632839834701740276494092172958618686394271144771502556093177459805571014518787581029032411989368895838232420525723242062178815022182128883314745303406167142225322632508120205481638994391723799808698439823404883668874637425100858626402078048541597521956105452116835512898415470527288185483038706790341792125883545938867525913301239350614322396355097381454231841567223555168677309988162804494541863841017718364022723180027116422067636875327893000024354186445808377770192282104592360956732632201654537225880714526328953210738977554325452147582410281964564573267927196057233566976854334589561011524292761487104706801657076395608509320273881425512743967952005153564094986340493712673972619960931768420426020065727045306336287501517930663760531015451671424585892934017945329416194771964199021155694256212656127987801725330907428018274394036347279171456952418934653863030264187491656667496106561479972674471811827581103188640952977923545442554853010919317768324544752670146374714654958988844175869264201350549705850701860520171040743212826476047866082996182865225823723292998731406191484963871433511364803652569118068084292898021137859495272294577329331936768628101288480926242132556152456121479243227573160517523137197640174542594061662672188222010491134213540286820076561250711740895012307220062463665621580652452735709043359268011284454647845243792891620325067069829117341973146665553172086859315626732993395003822990040568919848752279800130484212992697626634203284975640961239351279133027187988802155795148292337657734017537106414568653824728616834148798766383787826424310061804049085279132384376887236207478346867444402711834979322623049983438048651147399801582135816178079820806324908856720868830247832604133045826270695804112340429061423136103185017810104330042246345780423463983037076182079031296215534835002355939914569253500968568840082414785465853418954253616972398937498536379125262437561341955738971791893283592574873078139244815399401127268690427187053246730711194353604985224432187707841831156648661241570210646622013516360970397377226966065855787438257840489292607343030586639290901931220543829322821781282791399871418200414928472955844531937048127493059936503779936713122697352349240820057116425765727946218816033141964151057661915719610213267780159792234176438390586870204625743638333485540170143086803694496531468165262775579145195821191745737206544726338822935453258493295651810215397081727393600871937762326368609764650819095925324848101318779636782626384819515085260825070358655666908440524203304886253762079687641854042088864148914888876977974055849889202028323564590095811564774659218978602203848259218547203802764819475339846802847788299820432322499484245733151837592856613947581269012922998104116591955885003906071221172642163229670604813593909964596825452330702543180138974767775629560258135286964439722561406704779232097678246999816720815211108751634793219560946750832506636484700315242082392752581134531719886749211062447795104312547132601911983571295498246750131184546354998563681824197756023766951001076525044105878719218131410538036262890012215257785752381649573141433143266848131868977964628983900227934024743683728965537649235629038097737001379212396208633913942299423367560195161220607952478617161950052989943224676062545969387254300549897869689120590978840262369988410566974797463493559367290935404450254982600881244948722044253504638615411346763013451118507373027570826006979768862656857136237873659918170051525013221099824493382223333806407444216770906716389685124543298203444652892190665173341245285094323731974689651888820892561484067718170751040761467544445247095051442828665857275717075925104660230724867662737861214504925760694740190282760951826434705257190691928379859447623273775777002467136096142946729158479467867009413970329428010443357044328231497983549137614598977052687855161807731187774277792948168269210481342107680034878901324353570729221999057705100056761368538184896058800904964432099784606512590988788659367547459139458996459839187385638697808768279708123917188321608144315968634136549962678663219433737236813960594880587239524368678226680028471702293178333108732963931810697160258219327715181915342310896878929070795011591460847997642432215323122969323938640261277884093925919496253233140858249449485793591711760221194240626451542846117564161412763324378167364149510301713704276800637437820797682516222612452607136451366615283636244090540956528925212357036412340322080963224617028026551762272843444700627200509233845930164247367958531790634688441303789976743919295619464627666744014502133576876783014935701486507506152192462827832561162710672254937439140025856646558341466153308509596096622800506810536313773019312877554423473535389059958401955512933074894652016634780769014118671442102908045662738910921290490357118700798369619896536774537808408892625982919327023507455452163399697498140948885095053034656728729952518180771422964671560586250151720058439355975645470868424047550442971386231367059128487430835881120198672223906633414328943491137159290557875524313523132102089156770878459946724401293807575222680424259600962552472015800015685157729835519423640747415882498632331410183558538453916909872782608620856554921763197578209162937869260450179737995365568563751435613337048865891084071648438049827057216910745507311177154998750884427903228365089508459389334999227708836168676341535138132657247687505513646168116414726798958043637450758394268802051536151506444844992866023429626579155571685845506009546478087432058599055403576538913762259442149117845068751006432025223394242141290092610193740446999936951803349168187264939496563832100182442430082998641101149387742888606201014772911007493869652598210325231237077084147838183763179727569759403866518418067978473794213034976804244131612181413147802558557719433199474055829819811818516821690192128917473606567797586601346736942127226167355402321159266445167677923689457096906990107288769172507180563987107251087078616063208041741538214009941984202997188452131198396387778522268759146306485999110807572770851839921286463418959759812900725527313448401959781732704605997839259013547616655519512075191325107996102317255247099544196755182435795366076001742080772160515540486252294990479787601949963062482634588372372867875346710618557076450244295646013093820923715788209779138842262099721594068098301294431273868704561285246282534579570982672844079644972691845424293546965853173229113606234656887786355781022235476642533813092860606422546942023676551366027509359569435942195736232371233059735054534589689215929187020173060780980632734857380360375328641833166005441759919979203404189542489062825289390661659353926063159403275016182899555440871998816236076581973240379893647586701007700955665747955070069893136260757974205972671481876920754864246538887972192561637618139535035299791273748553678936547420136798126172911430221034508320887052142124250259889008809727074074474545083098788267220775463170833209267769897967888106445768006509712660143590946356225754959401592156764698895992132108709348742965154650187163021767930676588889608040674849653293984239156430001114874167766768293695321767605447569910635210121059471501122843304336212372774414897313994986869552162536517150374241049909979809166723962593925100491182644281535330639643659051963612082533292591278296818778094820948717905628015099865560452687260854880473453533643583736289296403219194631043328596981750081266267345874148627195298134261229519296978539435407617462166617774720656092538170129041659334822147260069374403018319800093512279077060713387330479857942938931390518943273612414079012265088831618288358162779377661629847688414735947321575441195069741804353827382235629260379775652032324816738637025461952167415292017528525127550995504700924681872341694102215891642680841078150057431594187340528052826752855449323685175936562589306883141289887518796563957357179340327106531523639848726241703901692221042162005471682819483849016038649364044782797342261610794823925726909638030826110829465467382823344852450804394825337278474592666222971342610571599562317802467872752920614272484551989214805082631178108476193700765197656064871485545536557674762973233601919864461472500334185682870922161066219279991241470157128999527473742305824979877603506655738194768464487011352137418215369431922456411561866176417679125400798904702370584665275923381024760149358558152554036658936689124267044177727126261320116547525139405403998076241264486575450239617946114425498787910395599447233780191443134869611467342620440688945833456528256328342471864553138608185153463356597862877457569987493143257930335241927855407139182915846049197186660286734563085748412640544253511251598114341325132876665946635641728745163731571042099927483961572143689044826121612772085388373272758288446528140501236314739132482539805183017754304394489860133314813336625149079205652425545329364342300283642109694288680615853369669153312889774876838974198019903795961413921213144934364703023620026577656398210912511841292543932418085460297735915036355067287977491189224361317709432039899965933228071788155676145689062230789244466982412750804231489925204956002009602995937700491520956539256690916374408065629287045021527407258886049685847587634334280819722607175556102028394371095219004073091625526916246062414253788991647031831567491022119539687144531723019601154015414474122850341388449917145530989847342105630108073637233499451419140348873993516487170914735396130953533992497472813457365923423622046558463377386205585384787952567355438424535904753334788061533855385783031692866399335003628580898785318321581043461647643252018619705946586809977429804880235501240387708663894988690606129150164275345169229990164198486600000879716648094688286565404276927736337219210047777576141435768070152849264784244818237410428875757959549019282752619096600388581135439999508520492957447781383134271862053582929128498337502900633195257793142266630874558221782148400141625429412709794282713620427165038089583983556446242462483821968128714288598827419831663503476564456799895289692110422243686932673125009871391156785415413265381841291138021953787498668019844224639101814199980768971042950840126853163878426243280165271798243609625696763242830085875665249859969947700272693876260010262373297988786941119255243642592004524994881814045079325455048846155697535099170100732568122378036362692457735084757712299437034098269941201956944996478178864682684674184947250709422893166200735539191383375424377076065348739276312663796509956431954518407764262189827090420299302925805008579384848942452105759565265671774332076069877810054274928132921856490723169192236850402072131462579252045546562760157912488247910859082462505455369361756739763885281948554990545418023310564532742727816825191024370391293501059400028707753058210876455651736459953739770424255287798234180924197044690011327945754733007749261341749238480766431421613803996391054693208358176845317281347201333309012545910888296651032341457908101636202561244418217115483169644189977238703654817834048513103521066197065658595683379455383008784817591603068886706144235048842501135038050176498342374826434248790645644268238201319348941843033326510698410508338418687392568885679445978561878732735754403027893363103040398110763489050861150729057514205726579651800304383745719862407806563582718159066770286532562991610004522606655563010836773484775391415717874504001829551030236179520790064897615403455809273783081664028417736609599669280815379539620048410604249421691116587920581967715727795961933453964381574212187165428494281995963358163439214460827136202276674009347659210747447437845313688707880623414984838916875860487204641315026341445716378834183170172203410883502875485311580347101498407958061546951034822642092318799868710724212033938328904939668363839917100117333917499140073387638463844419035522410525631697608643407052046989080802169953061403599714213898757119696705102681084435340388517188522154466413836769729716329129075407872716718577602505275345991772706888824072403545312590940239580495328743265895649324903476233665354779612853110777856847267463441584796633943454334547546349006116303428680169706045799965391432608952533299438918250500902415427323875928555889827976788424803167135789045143272889142397871262875069962496592026853579258641194445225425141235655357491918886500501517318889285397901873530527614786893068370751967036390744170928106582450850375656578103084788343731707412024184854942450950702039028189653824184593703674664192315050933616139700838682806467762232588735762564680294270070454753739124784492506024263934870207353356632341924311741694639168828493937454277475215156169050007300226575642190617872873925681888982383512057683733432111806605963266905767205683080832889100905480462677144888769970187813096592098550368288550743980089001056449944048048467214033795026290987071483863340511058715780092190734761787330552255909707312727599592299241751675907834997394392776887789874562911482100934883017259086541763132218549024872793709851428604764148907681496372058954934798681132087791210846851848307474832117809874807574981592166044797517281612085597850200551460272502922750506794119842881813319508710662437242360717799040121464122747561042278769404934410055971165862782732794909277516715186972222935090986466624635838431119733282467231307119866205883520962093435176888135380459689785706154747596463859797915123605380836838277320585138529165015612676739941750011049990102794157878874170784975503056272857367351588687176038611612041799322235252851560321785327447294548457123504969243326820175331743820514127763424475740560008174182585620298987392144715560331235339540592632570875318623371931492570499052026320492628092923398438291412717290710764308256855124261324862785128303410067087449972564135901767145028852056694832596921182789609680249014572917182999569896752807330291512205204220416985661602567164787022179621738018088907290406833901951760538636204485481060874837209301465253683616965759143842816774287836605757142344950127196302961515607275915607810424324368035030592055526469560235644636464678486368251119913305854245051116133178542656729733976876933578095764458503160201526987478167306703966022181958712583849956983246275219005738896441566512708346834339830299191719807402696383925919663056535162686229170394581744474512542400068615009950377056086742739687674958312415260591465674248524775514255124792072160823151068002513494050123299292026712644846649741063134800300890818020749648394117542403266473924767314692299327471630486948998438880303190098638723675094092174211197597329095117974574613268642356039008846690969874913750261043916120569334669838381927008110527848825567507744766443665147398588501795367857901025723563655979656867266150704191117121117000359419324424117523098940308137723707442466656653801599713017919379834886029000731354943075247202957547658742271897762465819252064994289632167510961408173561363195975235536874051532469261270700227808124323409071519426553040566184255193777507958193912876751152199222510412683638689678535348476115119624298346232949139580418804963176326237593977762372762492965727764583857529314152438414644063100156922879213747415533802824294536760742279849624171023891026677379822183092687730516261091576795833299696051001630518918476271715206837358962804054229894094919816930070287651876390753958251288963148612885829478735690441269428426537024827593570322447211478707233324904142095915042524611785988663842212112213635052446103809265712251432512873519717903807567673826572910848340914034180130207576707929719074555644487312255784377405650616218218459660891501527762101975652410401356418408638267859586616852980882740465978941511177527991610537229557112648415822470075135234390903886300749972519268647178995901084158945948032011652826903290751437126324679892055136244445241580901565840040052201988452462589062667648764205981822442525304572874723734900955725224225541376295771063200767231948930225645152024675937904958921195258760750884933600928880411564604626605959134281005330901381918539425618095576840507617934105624207585735497945238749758836791596400161150116524943153996269645394032515682068378701345680722270994289533897594596751351290482188244458677880073679662362574918620592033060625734646758143909215624748787839892043375760363623358652566405398489280902900848328605635432676488292014247439557971767721152657291581941788082448592140617485175227467513696471512491381459674253552346314477476521211928165712769861087771910615617527180222462728726369045255809964794244199582409951016800057368899670001256345256918950554042170722622555219702048558124946816575233326091934152944081556127988721946747952082067314363289838093581225782300928787490896672483465924735627775619097032233675391761475691890502211631773703020904559022681347580008832783423719902666267574160969626683163144649139723394870074785701938947420501197226082329849585053662418403612769712625177335044265258078558943009300853130225051836882267645865962150339457791838409999264265976898450570273419186081765772455034331116774233271966087393361017847932777643800012148974687754275011326672229174449339770039186189963969931210245040270049825857259387358314114437749877918457833471846590132892255880178392822861192356234301596507375952850836311993513740037217926935807171272902506927926878599743414334051515288739655614561475592462395105974832537473904063840994830416489938911137739980432732887197270535555903756822722983712952497344164568226283132783614386473584437029919867627798798809133347544861447613306954779743120189641080911272398463410569663057265479918276634775752836635957168082805083086354317886351013868071127368347162535537229461636203837594230841118585270097911750585975620127508655280613635257090561539823530434711274343536968514506088922551094956966882701968696487268679688216369844918711227798799350130955979651796414681583750765418931591122630526993778736944813532852862853217958337106098208858048689259030098855879844616710054818272126146451100440501399225926292020789458644033998338277195079304213819179278477409425058529616840278408115366936532038511487497673430489572610184671533386715042364624079177628850821121329912962971427951865073787729873634682123752284101990823823196703972063712697583157015569116477470731180136382806655466663834487839438617980344724919329966232461286468806058374939990189267440240698797310567625386699789446173730810480116770013369514685473077559789002616124343570158276299561983905093150182441318664093484807530979256738203014434602854841138241290987495107553801363917878338001477458497150517010208280437955575056115307117040371870165128015937847018777874734571134739193140424544695207497011627583094471800884205167594685257523634669473531403788132738269982690857209501725020914555862987613583865646891102657215196357143677915915043822170272681391091325246159619398519093092810847691433039594555743169674073744237019383208216636992355681229511218572870937814168737337900812459745841618435118701393091315770971118844584220906095300893130915576489703286039798409476397347526134048079844772642323530199931706314948321378840679182266451024319174041244480684746970085607988611248835554936722914084941923711035070283844173767230316348036245829841596536159156232424682769751295348933754680617280135515873510713207501941293101467281805165503066027807344058027543244525644209987281485568395514315618445132116552786438025686962187848405947420110028677861253050102661760102157718578578275937091834866618609687072804630884066168734539093481683238499701338983864620145312937572263565431712224406590470624808655056599103410518555628098393678971209783889720162500835395904825561797150161151488210539191725211327985108629757688679431598921936544318411940864174531400338392847903874327124328673993147389887955304430112425413798992043476293615655315399686512669495421426723257066174567156444230288207627549327083819293814319644792604104877472300397290414238240962951819635439145385828192727595176096651530920412697992732399603385466876537517693010420632632376036721077025117880480930267879735426553834535428224169548111210081763782805848918260748050111927887733844212742841653462293572616610761781197202792149690159385264292378188814275778389722872373622946489215348999129512169652499126902623238959645096368641282071840102530558072823259729334279827053904032738959637475921112488687045094735291288905130729884963265414741080383424397889321730130704310841407988061724554248404039915519879202250868315405889425364905143418511600974067648349107319942829602441034097939313158898378807925232132875955440109422897098862247630665089465131227989799968331026423484130249378704924539014230556500986459306013632916317517836802519170501036678013791212430141183100312021164092215617021945896696125140839137572542972747051539081147707472209088118083525349129141818709666437393826343351497973239529143319033458659389302355392506583312994148267305272703043027244992597919018829610856847552555313005832364325294054435893245919204093229415991333240909625655431142005463915285487237136210475215060983590694258908784057855131822434214714331996681810784462353170125259058647440472074773619628613228777881279161012022900134166325668368889736911648377000210757030553946385211871105754298339232344338108717803159199055980930994762653171375273172742298770806603380505591503021104268837947252877228927611767695616598808290507790355053808618460964865630317562921497833603775198274300156208513380663378941856545338566556577784393413518342138196361037183722009064121269892653488691556865788462001620883820915196670968815879213910517053635725322615966082632673280662405212153266220118647284657105888072232175708566886617351642308735629661950171807812699779763107288464335391072113335746473751313721051759623066489230164348809054569761594735887002136212784973787716706560696180128409011750553254153628671571963834678740806646768436378253027881607154481328196420695245578413651400356398326047196361149798314489049568978813101188618061939127639606578680208562090343813172680434796012685673951910261809667450093850337802750299347235389530374939366349699583330503671648312129600762711402866190045947010458702097069144277565261198565043339099113222245241522119231189476374719449097205847474909298331047860896376903891549099043920824301733261600314342664464829969629749019897278577979424132151194886914389719165414894643662241863649652276378739799070060879010819884677771296839958987690223786333437552363064912803070850733772522276889527454196732047450673602080296647387976750055229095701072866110455450505782712065585414037181223532357504674537238480046324963901755233797133235802757139026206743286953894579642616017003117074460094441755565117035240982711539959789704982803845396942224900011525841433665552077389953723849875014168833461762922213405160722061343885814466200684751303971729671693341475381854876463516445747774449439512890148457787664000954027171220444838576662075944384874627910922759342142692289987144269088551967105707126786241548967072917210408700306174522623844385824609617809413596459777591370653609470340537151375433609958052046008118482385014671082412547649194454592108341848335563763545267473277659736279875351122734234436191068407784744705894101383559760779399794099044478330252255665631081978726955529646770822083543315378347109527188851842000458398093638581167579912968919610473236256159322347524079208281459862704657408919283559895973272741312404610263201196866598874883580966758625900862740372630558653695894663330492023541012607615873651393628746824626371068333776365980016491365395600195494844265052911080015209439866838143546824933069555542447964726476559410862418915988689674378704884578904315851712998211012966476762207726804010143962002203114823854562957585646619254621528314334914232470193054105521737615787052319906151945811554835819306377425340177967117108206182789566308101479222619338060829739687757383523261500968464566253505427364395556251053567277289740707388175408347763592647263316297660892188119556120900279827938387613755891933048899983545094058746810994661858677345882506153041554090109888007688720335842180190764374025940894137467374216886221488384801451774065436931949305547703842682440842456521477558443657723511905258906913779249584565787804861898120049099455404404902647316299282583882858961757690281829233988045071855622813648881522090948288226144048178398935332191149296298786235294366762231912084621150343734289195675437668480046104689312090690463105808740648126540752701481147294520798961901315212371609891399807026224181861558634122137254873045412940269102215829989385646273539664633398381449730397068768576679373109945107963418449432272380429274297276623335487393094034491154631364761699572034092630328406270412309696562895397801052904860270990933318373917384601343095477627110541129914631260417519064633603716175690800372393090630600076679455510311059998362781670208240873396252377582014138513961589117102256202463900467400762939444250583797324579567101390732992524989248705321453501010878597159927659205725978022137716935779476607582398396178053245221232607351512104643018716786869628874409807271810466662191126703724879395107871837236930232351558448804937196138531389494415333978174397703881994941382296061747911389412497817120413825985551913493640252451099550376543237448616433942013617653971181036558494231922146338220785445613901061594718631341362846143597202276652374534153648650270110502684584590291067828181538628398083978343242310007743308042141133137328931733918171045754793776521996048810043233815917573800830300894660284198564848234799018699825709573975188248984673063443901083628933563037189295710391983442030915374716098268739427495716434217705622009400189997571992327821379027190927386811155301217073952499085235154307307278273972912542082971662897306078812449069459503325150451409520978622716673329801270299268691222351462081821968799131243722286166318128944603659029725052898445423595552589032486671203226126962668456283451211810491818253598690797934330742340633667703752601233400081281679437357280504221208952398168717284718757716549595335957619242067988150983717610012834410760678412656574601447034899229539111402836739088678575937448454150201660345372032087795791073178179194962042095309387127156401961400448636694422847522326773856914425278184522530856329491853505744261184892388642258437233153533764079994302010472148387110932078309784169835614824741635780983893333655880683179850169455648161799163588561715522564691904269750639222729430175110096222400449419367175471027419318679970949775321313698066291034822636120616495728174728362031171593259934079613463290602344251120325348237259591790191170795915402732389629783716248852479655159633599678917230590308733284527198927595307193817883370815452535024172382162632765645104115997640434657021546381144622493430836591499883980153162055093341081290243297890210853969061657664057395901171588660258508018428441306462125341913398157356945128986472700898492498794636688448928695651981284334743791809729255492520952481975765527798998800528865304233458249754167202132561038064164232881212606795511189061341447051277259229885354353290637221240081523334484951532448409268166346140130351780981582396059198988867656264566187121598694705747346145904100048812038277189823146703603445521655793205698056446739978828709541756608513941611950836983966594074029565552750297747868831504167824871091810761761432701476965113023057283671484886696759364189540372306975880095197217403071047582373820870067194509260543503863642938552100406342096500130994384028606995758669576855053264816065317974631026337277962174918604530020639861955291933876330442382638894172394946218492397288094501891869779299184827094840139564833172087903571967921686516126432066448415859585710657651942649647716968509385215516583042381790535623498363843627226827395725613060455900587749849603666638153892159007371683634348699794973679319366601360807599091742206556174760733605079076714717429984987389845022807864026638883821465055071508547669335730542169161542641921108020680051842156155111616200970134125465446288225707426544307334585628686868699416556782324256552534705548568570244932589037074821830589023041764300199675315462398428642790499906786490271164305197517479909611739808773925393111841338718350506634008336920927737468065236640885914891784256848768291333315025200523835810598317744154541847196657747991065268277858031578749776293410760908542989884295371377229762041790487568189357095913238851462086549784256256870936756185231837671616080492199067002372163233568233264843585991548105001119226192625160509878339071489247865391514967116701632502012756416857003119455461577887070797823886850443546786866857827556838237006802448694428441115171962769276329476196851522262145422930481121670174337114721062850169977243084708379697066153991059305544691011282509341900755979990411563681012991291991832257512353834149153693644894965502579873984611179988614826863843334364277443628441690739213434321809698067561418731396934090318142269370646626223436858030124506836755097002316396859174077835257088336043633664754687580504806714037413248844122718229802631417477082841789092278027745521017285787996209106359121090151744052784877400564012812405807904945847683631753109156085104149132429503612701703529701923518798599221636024540992258520446696596858352072271064798844928363438476678370314308033016752267420643275413170706996937857031753470353578125929622497677716420039529552033487916490208286844365493058930209888061757644816346709290369800721285681190205565228571045814064676642454411121700513493568241360232526617217090678583868271882013473210779088078757974679028127306127489425231855206280593798677050486995138645380023960589421022261830683677194374777336267408258970235552679348847553930012556971181449103570843887876666221854913408197507460679744391701397784459428905364256646400310749312951180533776725937583552680476864319084440473816877636919629018407724947841064938493419223061096862361364975655571700641936775778508071637217457089356472111693452222821751535220323041712164887393838974318128388316228644228763777994026276372644426431975379305373095452090777267816723631052631528628548587049407421639494077250093798088749865010630340498326418382688514925548847859788817125344158705070768133552021108694217050273531429159993179555096360486407272366620285608568129063410401112896911738863338918639044427054225129057943196491572449930229675836360064388294364132297649076500014683464884698799373901573610485844827136986922585721774412559242566829649854146002882377293663119909324098450529871603425392017428699493092742488426177115757840384645786627957770931967281601870423429126619163818746298153537179702171519454914170890228152413569280912915934384288273234718154866572624739683923884240894753535317974544104942868795180174977563732071477269477179830347349107973138781714283878490687827264840834137264066802410411711212495315384129121016542298442652126932322002088584208582420531313296787705627165611984086578922255977269128186372803298247559201600372726394720728639229329139492903054333671125342398852903276217491796126382736610983816643313070603460837396519376352729677203334814088755864842181906187264025603713341719947268592814010575593853846456181745474965002659489711883775668972909754424256714271157683421735850041879150113645637164115118646459114317060151688312939390786222161930357610668848565293042696017451973403224491570652108888508938862185742559309321436412696170908887923894958201048995712367291633633957574874487213781906653880213036945913299236470863252733843900293168401327568775796468002993898477890041398731645713450459741412650354608377306695824611860888184471125798105949015623568503783147478774369962593792777416099617467027185785946951427887253739331770127263352513899033992570256776495166511091391931782265316513760790318248208617315254027022376853912142651108010891042684035906579387080700913420784512488529801273178275398274175900054955533822658607824436826149508731796769967098455141017636548654014340133485957997456531942100744658521054762894059039168568471453944807976194647168529668406799727438825498587558564126963483246004607529054037817164573161771512719321858663820600547988216036421110270508838996611561600458066437125368751550659729609479573072258448366612607110755038910340442277336269256685333671476640736155902819340803303622832366451475168764803524066410947990961865817164047011307807924213728855813079376753208043946957049801939794785455177790578598029301989525406855378276243253887621019479605949982591760177051037105422420025600949378011548913417030750588225210127974882923416031812330235420007038457198387839236123123650299993238918209494773504055781022764038874968695839520805124715441776001682414059529252813644420852990800775679965892900211896766291473843538368748828996083068632846096986165267329825510918028603795248931978941155326867925916499256715350070321429473545203274269362787073511327536054837607126315293871077519178863893081500612387001731396453653620854070445406535753478685582764053410051707282208031064548707168053583401878822195118541146715625762675869306180678620149157265161441110571784668477713829400035901696404601429523831686123063246635647024668475306581159206878895196527907340901780162274408680855741608426085485936398236956353664589043637924570404716204671039876105690758519059105969044482801688080961694630831172428107014249504241311592523288168384781424371942775117622615943520248658758805352915693366378729389731363302782706580270471980553571585883726408866561525755656752761622023481419405315459710967620696392853936342031953361170089099502979176205391357537192933731438163668493123921170921811524164593847569390160458596080695545479543297710046820691360560587613260990611765278508902593027157575474821496557715916676592703427228287433394933908735230673832392536165337255514402025305227384258297799314826357132605089837536958340742461764737332103630262681362654045014874178780981381483941604651518681174013363780595469798288201682255502237327802013117282515276978780751715058611206802134216944523905552859086042226186767051250488077343968402236469575012998035090947836545519485459068548444002668121404557548117826335952019177650733093114060502106303574669060723635733441685382426681936421806090730572568674270941028832399614202774590313422267519440724302203870642784365754771396773098951481261962043946423971574054218081738225692367392427047663703608177137248140990599483661948000506978924971609994695734004039467011850608312385046391446164558895079311923355792883603710461276284504081775201396754455570858640199425750784544487874361810571931265624738123519112074570808907390420093804690503509757506228026139606323752553182753184377013234606538345210499719548286993162916163544371475342740472883323918997832259796486349120283270240015730171513761301211973227055425018050505840327868355220499472408345208812285725926161156311544292835676730725117387580157007471132706300769274477268031642256533338048837482827294348318857092808808160503688356044708344388293943272235156677740661241813923398652046602172482424396833170787237326515598780068397615960399092725077139622377374486878434577887447184359816049703871894854048292649527970241482166261218620435493286887149882880198356774198741885772479263466527679133413633348137223639005137417622499633754395893609823302241618886861557074559444138521948627234368653041923192571210696514755083459083813741927960228820573573157188770196617913467452258297312626856424010461485471105640287690723410031683279320021891747562756546799117151881318486388391717328258679513274453323428728446700723052999859351561605688972175650881240146697888438689423003144659743677427297495153334578160878493092138043691850998715942565915279584061308714498167957488737815779099093277665667075492885254514728419065446670571543305707117500842419498240406503348571560487195836210707651589993866824540959607351430111587482033588639010091216050376809442464942507835112282485996184750674841681198106375209377211190220518637961609244926299074848629205428175631995905646664345092154290436661080987113238517021079776369155048534475488980997867523865210628600010657148006764202099414199265683290424281991452085482789445585337459187212853772349541531500356971398474627460996841286429350034237255414315259269731130238709955430644707990836966265202927215537551541366920793246081714362794880020351806376163036838148172767340653245876949852781098409136682797519158123267569869929569570518252790209343448189865046182478733997450036125165805923938404291352157483183553421938680854105804358569084140217287671823170564921866400848217668998572225690141469215182390667681608490844876686677683615218582228184288805136722348569094050198674905050886458152811495998445670142190788377819212884818118145048642694490235753706837551628738759958393612253489713436511428194009648611661921502695212415710446949934527421157001741709252090315098851029678870921616857914149713671449041691074248209860226464388868336204374550908538932511399514588883504447523931100902620761225495750669173408930962652763369896754079384019542325316598410406403555840756172657084556700490919795571344735100167128484172485178725709117347593006837991174304625158671154834043292599410487871423955411497844636526068593814163335774649421499985874726666247852143320350171889529109911880594076501529447041859733746614361162413312903621338953018380379531589330104630681770149824804998621462200526854107258542479445463493769656965899819908110073448119948352451552067026343623088319824062449092186358841021170957339460919574543709698820983756254904374969641530599856599313202156633952216854876547897094993716889665772111227861735667897454803530045997361222100559276886882294057447770990728492254262448120170971323482630571287036901002231729846982133342943386963916118180471685094404295923110013811238419732127301714602514728527741891953579517749754817882774718637431726787592732508153946015709547670020730645972247760118850323281148813476611179800761461205200895365399806830827942082345540171483093369765108516659432518613622876029102681420550708605955374832946296935991724577680874791727089161873113969662670411188233996294494498196411351096175488963477581759504476229149033927028377323807087369664425967378060439443211401701798807557148975794233381320698871131717666267427323270203961309931781128775002722618390092428740549967036423117209607056788463100036379043230120364429066809856743556029022001964539165857537412548503516240812915410111335404426168913125408594261751122390489058854350112101156429403169779526661305008828667094478576257773343460485774045820707201102865402633222766440141968810329016423719468449884337167549818019159603928141822899422924188231581305160319492918383769769448125324950981701477136070477195770116283048920462276690376004588992758890833024751336422145024517527631083156832469117934701997789438118732139590651007681615352135888664072616996501488412211191168862165652689322276833786183303600837529932252068344016243459338356755091759135675096096912443196399870859541901155053014711538339679283044665665705651009347684368218584495824234918117442675438221708204731674624420557818868885362485858126635471237419286972529109735712462332423902432323715707701345717891455088810940556949668861832265987310525794387005465906042735879522318947296374800984619208336178313131577300085193473479386339774451599958797979710652629251598485700133927614464151337036638794016254156392512116323455920800967855810172696817553962316297714048230044417581002702525314597026156805591450048621706217672531957496057891188697033260203888435221517773016647228761044455760396017667685877244829441257500175408823520915567959747163482477377303979501158377333841866640982655994713125909549673472417647379728365421610178763347807085979023967062591047489258918692571349746662556697071331857075061517011438208196990169281623981336208595796475777861228824640995800285118651538082996690137563314171927378601908262502111195617586334324669976621268739148834568095997037105943470497388962122726504911927074802319539186748540457194293155444562863530508526551217904946088476360110103828297045408153320295405153635151561960787119518990903921633393734996785200467665836310745554069706434267348035321669827953027916520641530236778253139399623914248650640320069032407184350640473603986185295666117487266887102418902323751253738860012946717463384839220415776600363296125571375824347200579591655981723886122339435188573503195863373711173154455686656275081192745120764125696922167203882769821811980064043948359141142543968911764163581284046839118867647876619663955275642437364107106275988913015714689544435663274012831821606874049470597102714714022387177426988596980280018095050085750134326936357511292423443584757926749948084439108772295788783186051691778671511738436008886546114404629455408541996869830467050410315732510492119254061059493207258289318150417014137247206060467960104061191797465251410705780602886205780955218369396078125057186187350153158518485366623309835617073459573404816585558272080470981985497196307118992990846917508729793241082834301782466343369397645852275723161642307288186481101538829725891717403388754218986848835361587880740193593346476296625316354029808662369217881508569304617401624593283846567712621931807832554008696615331369807798364922523627349279258704196399299601926673294127268736796688552474062267961068883444160885288482798593989811375141122043365226029716489434199564769819951081508796071051223987472370398648247895347553210900998490907543315724852944085629844552190491649299945294348930511282388076256277397108647435774314642839886664477246200279630604894380015677106003517532193069722084707202459189292629257421886423011982176166769536015179228751569763415185229617900582022632047904204686665164327364635166387012003760322060686427228265548986577849076591307588394053242402996954663236174398818146355925154724999253052132577776751116188265474206820584052669995942598919836847788726025933713567406688865692023612992605204794549812518575790292895198485909992135190421021900871015169012487840913521418580943123070066447447126656487981296712761209561540716069386776362357197885693570563676522933965803070393511352356062757204809831503281079467395886697118150477928828389134526148037566552060502758650074330294927011719874429806907149469972559398741164953528326213005064947128352390175100121964213520628744004372165985917626051496879887742966257505590013903568208820063077401716132961817652752050832794064949861910935963407037504476616685526844320590165402777067474999608539546074742830312362322698916794077180624072748741477046247488076461604329708966354631994028823059241203893167055336508126611507252338766356839773834004366779387222944807755866704799648175588794208653142812844354826908887756152136977481476512938050487499015605445901885189764378898808560100077714410901341738736158403927047086884985504915750982404021927720403633451449231416750288529439021495340363907533020516209233247840357475208602928481076113349458284808406871367045471813087897339863428993225970639191998421793485083206595861711366336143024627651967809652784937383672519545290387052151083644900923463433284293167080825384013797523463182072328060894579570071710747584219076393829882299625438079765697412653245259331696652123115023510588562432273291043127682676544559905749307224945145559959333023660953343483156672684916237430307987836459511889506105929253763014861886489878216218961079674302001917737054593646601137625575989532674294774282144175912247327067096976022740061972950797357527423781513180223778698671932127712499869508329624247864342082822692189184150998374614448349105993840845124659068395760652283697436286879206240789024173858825573746447008845601900478509484127800361061361354298159805900815537983708612091649985208735364082617364163623754334807623710756407499171912635802488895347420842768688904942305866213192580225097584508679258766364709743450963508003823737323806247222619206600205196747992733966343397342687613375354486653290635930326334778548663273079882505243548871267335259813493156697160478531412666966546037690383727526865281591387516299719388678187484679488889462951825154999983398134783141962408014320338807689771236250386961169470583371199787373795042244119810128190895083081276080744999798347332485721866833411828116905032130715941567579151431783193464331275954692420811693948198175897891691510453507956119339702172775027572363283680020713719535340388918293308647585278038717377241926750458782048171638099738047974810881823475738608974580498042380213608326169178000410420907080108836578106370782633162815906277941716884528211426175007638463554463344223880820886098098674623734295853831747456185018342619088338463425257867768915882222552985576797990710871694178079386290804232033885270572153500590378937029510023444083300440038397331467164341330758296544521129490811856180691063134338214429032232077230947116698460075720905083889554581757271663893980935037667017825693249684059031765000321812730584411524653099031518944468580742776683286165089772583422280436556519273862930640947718761790659933195582408863974147502398299551869647680731447989952925164872167209777955621754347901775359155773548401700885316536726408279252251898640777976548921596901003225088221898373863498779217038186051086511633806488810597154626336324147881051083016315493564306963033784904595713632833886185504680334840369957487051440256335571886512087613163329694863907595715117157005345319583401231949216481514044379320896474653706350102079899150528101684818179180245960651343535944511556699610991759339590920489432002929995999486611154721853139576426309161544255917370668567746693016340858552064037389735899016217460274703449189144432488681751099836931730784772405076646501585226588520126824081391843663091401890724295585391213626499064200714017936242739336414434865882818038774661268256323141426899347205795187399713442524175017576585274888210093729095620432239306999467259358237297024057567770777932797027437130851214174105946834821054136082762941548650436757008478118941740371138470736686475709238547806023698282119334202715760113153397780397758154779773261546792705842849087496819785725810770289241393655496892628610003287853800261161679631948343946607249489160490098399461692744855044114633082254416262386998614441964063617974250461160873107210621269172915976451737729176838434114744457040430939729317426796662029808414817642884374665214852908722910324460803312067895606406789613955219443326823922949104185374867068126970830272001201677544722365321811989525022758361241713455571020683629003559376793233330228021031072909163549094040120265251556911994453210723075840066946363394082485277108357050350853534664288788736585071572528230078926543278716937996512893003762307731649591941565090857635756799381542354081223468374012196577060428068443340884475977554091463227669913918753701739319785042591242534223271431528209175193942623708861663146081496355260458786885862755335559032243749754523195631540710624528935640070878684218323849957760027750207031850903879568724723013418528091629102136988959221109533192665318376573603994947670509205347152246554061725468160530715769538870735636818027535570388688761513554913195338810458706544735010148333236663758385661931236248120552075431058137768975901695807686590723676306693897993938219682176540435426692217188097756364160234640022667683578569587084772605253346008479157603796148185086776387505456758764595126592765414591158465427557255072852933097179712220509418741852658043577797696273565129452168880383973218737695220222772805924617264936763710500743308747440622274576734065594378977474738682100660183778594816666412079122642035642475542510223537291175250407996344916726253630385406775533493505279260783188559395120198822177441565904525720881334270862161616378122953654735411985329011698901664829805627413291200070015315255009301475482768175088198034850607682019576392374941016329105733601864235907573547731000789655368500010419374217133098532558026280056853179765483225617296109863192040229822112648895071442719874473900269111650010622102003647790031315878781402869312301569906466054209705241919018137920250085871448313260309167548754611680201825478455797750690024086551270324906150082270300018898029536600318053160545681020862134962922151010314966571427477348322871832294150054433773057257114906572733394013299578716057607640496023500790045945427042472630998157020008768783403218853545436678395641995211218298835943215031937522050261190252155540582116368907487776032202455614432203902659364534313091056144441294240266826279726622720377838506709189884802714595854695321764594616026278647155647989284263386252006660675575607684641056141640888619770940948850512786857444760323314775272211936550526109504394553576956883790681346739138409946201396585621801913501099843102352803267118389362808538552723467666574963906742526670571408808685348860038817305680235477137539797660552521111383039448783415223519974293147553878407161237066186354220153718844076410820236465338719072575570356954426925556745643986968229055610607943726079755134322972279866271737450391650927721503828684434807882463862566167923851182290009087331387217046879355298475007623640006964950595041427847589071218107858591116772786254631109042665609008916967078316631191705348988376373187334514135134932336731531814450489967768309478407835517389030948602101789072133027517151894012089279505776506033326868038882735089805572610835680308149873856336690311528828100082616744654281703757400640799530167233563326578719097810455840990222639132056697187203035470506749210472292469754806095274594850666088874902753131988254281114366348741204938583957373066545998376617428991623415540984531522947408411515973081859658700561889170000481234079940225921747741407156669944022549912486905628338993701727485942870478727416448732299262643264185924739627327740163159716263795155957132865629382244539073145171916270215641447745188554801261005293684584798325710233558713093410340422421271086027012879325946286520746271665373902990505071329524878179780066537993624014552106645820163292557898942602110410036008106724173926980278134544087168820390518920135835215754462878215322434447431044173785589496620951948911541509003115840353372860589902476001459094310208592124477005377896637237731512846473327921101471579974555017960845543042153155855233728983534817646069806585030145642673682169606101092276988350115011539699191343417727191778227911808251425433507844994381297810473369401164361454939122363113078224338282286845446735460461931806075146191378480957246065822443363209107195357515034382938727456220124903102714730866219139907505744376868472477197012115117232104056683070429220163869980136308524263727433170280940086674818802219325781798576570461113736922912427648434628452917019312542588487290403209876701990474074471078938232344109132359776332784216527544817648840672411733090418879531114991799002632763018892930207373150331648228333958826758779793353307858409261222077487516313961894650291631705678801630077137799405083794592215893547913178106287166386815245586510977435558417530196640330730117781834542002698632738552475533941995766080784248010479365025881400979137908993744640385933340019614564023645773918898062357472464191426465075439654965630318996166788996087032501865750120614761670688904883775121826120082920713622750685838351849286321775528577189755034156731355906485077935857402894874125416235360053171319063793329864739151953675692620979870458426463327053717850072583141456373359523521993354557577664287431844482401090854124129087550371956782184112311213826670963794212969173426797014293384290018965685336816914394153936187048628876870979811849046650779227837949422039614170720329495572402508441816927797391264897570114215994652731914538380220734117803523537596380250071152811212435265844095177771715521673860805055127255682659884146456549047533566412369313134618541582372142408938887522453257964399110482079089668459260713207650742967929062452832950877008041958390445868458996022651822297486033161898847983026962945653111400284070304576852263642793287238846603539454220019097086093995674129645322040597389456568860821885206011403222570721724303691132406148415714858858265805574806975615150172531318934297274891263728262339510928275373376001972537005827904601260066533877091599082042131651569013530155076920957514762758014860718862407410727543840150671898537514367570480309825192495733562598390997149610780004597510358985633819984874921700982347115811981837935701559955670920953983556446091667384638707207588282783568580807880971831039030827482231252316631886041928845559471574263319248310407475851641813940399691011446643469373982311966359178943177517618900245201723567535132473515318926434191002788363292881851808845377371585275303178506104544520599662014098465400089233059345832892010782910136746786706222707525411874417285293500650247742911809262184549768350546596141813882297142150118563067900216450393560924316081272356169343694302579472611568570095939839145321335933134052875627832150219192260054895614465833001306576995480159251680875528054382248715700131683523460063950693696347810877181234162772515660012715635592686557208457156057041788682896520294812699298279861758515269499238758227871643476229924305898981551772899049764706614669593871875170059281133790401642351630587900911323753600191766086235622101764119668913192565163488350978217843669185011410693617882220263548072424585425170487074021122900769109248846595822162433856249059696586961921777892524118247832818429692557066805710385375766813236367115939199221336198308533577924594626088396385254400062597305462582977409582982824130809206135523245342373095415270119328086052578259826077871611598398248481062024987510803279193564235682367335693593758102802550968059890065700186486425713301926738722909669095176255014143054223892138759140521737933734040004261425353115172404934670572029415412467612985569831162730215716427151072535367865493903265609418999394866005801157522958546314202609046668863796166185753734227667548092147953791767561860816312839438900403277514435688045771464735721384716499978107610360084796996884085927425414993771878248277167533835381381035222951357881128087628412788764084674030512182840548277781620919529590172869903757960118471736494637264762197483674493374297141051939496747323790624519224383379966101295577556331939410287146103223637564118174078311596549894976033289857379233632019821198403049323119722308006284866509803158309577950837291970627376580559108858500514796458439486735748322057380413317714156151987629810359072958651741856244305393172375913820539718081686320838846453391917004956292600662571146055569493601928315516691038572414003151168449117276436252195626910714600885031491855374916300452648915635602123431557352945536206646263773652551401606600962597341211698668921140297368344023443253102749540858671301344906390954780250249900884101076409106382374714129939278628567608097964092368875544053929252367157129269540874194527583244915566258500244529238935899969814120006087874751454453151890862027774465527300465411513495985173704591719293438350368513907248783834301874383268003993544800203772581468850453446063504511678570419311278729989915932429865008604223834637363184156245709844021315856559816568441305169614564558120697583847034766882721412111431647765563315051847618754542177405502249612629924941489323173671069051989988199541957309298611558601766111204378996114678080205726052214072352887771613405891247061713278784967306843466767338448309922126496685494516214237208592114490493264040024134954038295533165023154747980072948114022967817555747631565725334471188493999059976906061799243273912609456458639817135491037650579720812465883796141947367581698675543328215591787750255013667555119044650861650064057523889155944197320599795681670769650154524158857849442912765556699524093800812088112167990876482676465345808431122331120893918122086490412056089030700702098996133431483695448972714721340477022273625831897816701030372097279269501587965573928085011804643334606311806268353806167466187677388110591809152734394213822165524217016523345760267417955534522344166629596294248292976016632459916782074507335160102303939718044253728754705210193856500619930519097937260670544645492669896244917075069564531897293362821537378852818015455244451788193237210201749310621993575821534633155220208212185131920477128631031337966178825134414312474776981904397480332157440060224220447543035269114860230088558003800577981059992781207079315723393768548973656015767527913975615553894854364643952497203555759580499116199775719354905513038875029280260663538608697967416015384936686003689701812175830079433118182695152228627348881754657848721679008233003614563407993777224469615994899420133913250952361048384373349134143567758005492926245354453710234399097734000074343881192919798030218501632271385001286570406633501143301943806230454316568082881978549676213864072075480648769853013990185145250251896552457279785320578310983928031093315598723636601780029086901778396597129026504317673378902256153938865390320499401292462014952098168757762269533183920507673723799651034014667638103781500952361829916656023803816426038546104250660879250125088230620194430460271872590985175758765035425293260659213895376722574944845859678544809223543155861303504398639164010058770582695314612050698140715963013284139904056433348970954728118081770496054700164711792951353272039492089569020981470613020124084853043176486435338769719922866262852768928016817378313909512465756625136467158847432646640653236083650237984125118376037468276458984118006741008228345152911189877916712708471114209614124202077165264049598931379721539330317750605769211162314612221637374450438127960531150087090343074149698673869567984037684635747208364998557602741793969439114353906237831718610183824694859107702038179248318087923145798832919054424524453452255824022332756787478663542685443904819177905122333283223340188366186257068383756253163992008068801024438978074310906509291876056225710339192115199772217505397584423726659051258268195986679672843576810439972701788062383734097327229010752114860921570443396663712896664476463609658774096257573178753323080158002337396510920390478317784201253893305436893563158998387778381714154374946244775957950642672321150767714775167853445566007595987959253974098517531957758323469036397067888621837205012470694316071807107548830200763628899940099897168295397978308325821303014950587200953909559698891213724228707625463005702473629138834276977924733455293198858722267957099017500363306245609434263606079703094191158088976024839270720256659419513124398828342478297533710469247200438293546640169542317382020500023116566972403305644018672890519553255353599891877332376701282621011964174809767809411159059761185889554014600687790960252438637214461703571971258672414379969543952331627198085370357844933867071497161201400470503887825882468597088060974705282837568929629774260869421345166950146123268326029770899163314414755428202839052414045196947590039018059504504169053850803455017591513861259977385160982427848086762492571527940664071417424342145410136134149230521628795238265717122894177065035793325603972847928015788020287929370697302981538764470375946324018547016697395961204401006497658100128007898473167478874470301472774669936300576336167530479652624981312830845845288003008695397601594163895494345493838676262092673238294098036861846704523792489420042248677692777648322071679044063937791391483058353185545082251757774133214163916075430241709388804655750010500639181758824017602524357818211365753612849749182942922197642345371235091761425386486796929270387936408415666635934632828114785890123504841123964485278776382958466073284543185223077776452704412669913740224769990199294239291510688839478324112570772814692370211185631408497962305413040190028805349785510180769337338113653668401807279285310020198654477609205926463379737649937798915673416340830732677600993958141339306572028439905981286670669809951259047541238600508697370807650313039973865458056496900436474061128623270437977485140960002457086675027507903353575781766948742349155568985855451608044226143659892379498043494674075790712412106911770097722489666311638240002585705588262167257796427477698102977123299815871994088108577542059768947851432071159122510298888850519077758093950524071042365529243661474428249507985187903837449707259882546249113940141618855276975057189396927803051570412093836512328801990729038343146495808071601410639060243871721904548575995236010353411265720208998932761582442561039453305206906980706688102696672928401219393484492049777514969496652125943025187622437514601062949231613283838520205543197040529446095727249872643385039144472410326518072061235299505920003776261608545511879173980780018115938596982217681507992356988933215698415525935602072410276656193749124780485637354665935844083323476248442408967415301524234429279157033978123368462043831496964450432510282379576093584350839870407189611853161735365374121705265231126537732664009131199140911815858754719195418495938179452221379852170230576307028160569699765422412678696839305665576894595950683164333520033618057635053101102023836573810367153208144586791227360191626782644117357231954679655382552273323621374568513015035355596574025159640563969687490837833496859571118204857489490156088410386264297534854232787230363521632919313148059787816056569988435101735916816915125984822267143731851071042290088874191726195675749515281273789785403116757346291247980527396798472720000475829631582581255112963264652513301050743545569403762655267858621781433505366728923411233052482106505568126792548716924038623432083932579220793053901366503970048913611686166812559938658708326871240426698611341503059523408892677990226567987455695425450674915990760232726371195307767436058046851611219772403203067410174104338693064322690004861239237951086218093226907997994146517406894739430692062543492248444309594045808886294136133638833896572493113623440818960383552640404950831385864987463115208797270083343697342457537138503066609790107366638421847128274021386970369899182077543762462324081455084043151239386273736027732201738216117134095910317372697808784261564609728130964440801005356803732133865111117051394481948539760444205185567529840516659667051820055439885579218665021864387133305246629783272994230675371298907286838037633355667256851153570579918203738445276628146006393896160903920882794075528393713732915036570271975056646742747512249451078046257789852516364995074120023008404240928624160272101401766761568075465158668254696484817052350126412310888540390113514889677785424260261535111172820951689794156110387653269559962701207873510089641878617642893960298085983526818613871007974107204452201171563473933855762032528241635691169822103423360947837887869981919589688036956916490358383775297668602989074492169059093945059495596905618826219693703702504837344081599686247945018837062568412347133545709059100330999103301642985856645998364427976433733896174779264656934291841528465148214587907705470362698203225899063290341817047323823893440532357529770465243812661664025470093052999677269857424612624878545125143260672397679953083078521309050683500196181860638401548824903001607978042038040245187107286708409909310976225403289275038691848276988734510903694333815770667120506600488830863726559899615340564748324083040383977124382946179042310437270138371870110650078910821985736334117220521008195010941085620328338667399660241048831831743622165554232283422637517447038415566951517113448678531546266785872264897740954239490257171119030750137461134514335788377216901045803564947576524392436730199081357703389227996336908993968514919051726162402188130240198869126644350425192030400008085981443627178949781359083413965436181937345812254293700670905177100063891558242881442303661926746386089336811314153594103535373180740266234107381329921903615547523946021781765706860719767222082870410447014299458706382082921745403573485492668914756648720031888775180525217145012100396457323575596811519127090852440302433215200625770954146469012947416913016661735743593606078481924533835812243970126432994619858964695893570079322992993481362806599294690600361161639858471419718107129679266384760135096873559437158833104879311684664039729248315029898903989663988962508365594501907480766483216082101981950019392117761269207875519710123265675671073586265695749146328786547779508742893302774826249869344747210770501270810005487243732762543702672827931893347168783433654477520539808297423639413911515420160519571295445294651520578806982924499331426757727856512699008050668879398352839597252980699979486371824343672592162741563137584183596583001372535287360056681459080251161279846168014455077946667519545073874649831445749162990363143906305577025481226552970472439294525030477393341490077960050582399429816491552400815100410148428076444815350666554430273015032380273739330225100089395349445575793212850776404722262334390546263956647045388377134267400293882724677349030085065048884030631169712277256270089000446745429307431277285031172526397087407956386065257052397952719279986524324592711594256568204684396574881264754069544399843383284050505009063249459709802749726967069695239510212049400644640304605971093007807764862435299728527595118529846039087705752355167535198649297559234903199492816826099542036211938776460407229411812984090697082318328259683006437657618802605514869761206208315329882981698300010613658160819707400907198044432769246012705479446170221814801995161992250277579914305296499220112076870925399389899224157318240156096856791990412194575633818811555815502236272688223159452001511506064100254974147000633285710951264041450298815719433147053099587161721623412351283287586579145779771026758901247510550867208541839875202092062532560542501974748249269037267384993252966899978099297920326232516392467000644946488226196435234826392290182010382473227007870287618128740206220017302550919266236069405066871722115992700966985486383475328497292741809764195241631246787899201372433077072603572806473325180560953838205484073758053863439799897453957973999617405301167265455742893763153975809727788682895173825970439139318915763200851707104175770232333752281450934688536931077123975619940254785432424166520844216767521806081073698303030621189204894120719901993599039406495160439345054807428634810772305268280826400224954922137994292201861799233172389947211274210742847487818446928115584772345350950222082282486654106868886211234049984341646094368586082018998169468142516327382558738511471257675451051980660062874576759285777235143956934623151716671652751285423276625312455585827404668123812158280745119722430018544542586388083414578650454188021183646350057696385957256181960770586061408263986571724750066291255032092155832493678556110939311383991138801630051540338943965902459383601095932030676357132067700665674993559578026649792831990790496470304007079568781559097681747970409988329943786320458769078179264695734976293784587154148545752070684048019902229561678590909122354552186519287019030484641273257722456326379432629379056723082310584989779417539703029105662140105562084677401275139123465656183497063521435440416081217838357446652185077552007864356344040494863896491046257785376992565878186058716461391371836525128951665658198995007902444582052921773345148711325685375797903424732211975905721004471050516354922060287838066582368665832179857073781084049071269069407267783181943878341197030642336609758556243300878936777928185745055385306340308444831273778342899043169802530528369522275347479744457900863677081217773255829761757865621596198025085785166967409856461708986922884767655483932927383028642009854780291424569713352301406734085359734475803466738362626302955122446857191468682324284338072836286376589966294790225181791391637128862714178976880218612153849606728212967208971768434054379966434737101673584347142914866402549985873635131370495174590232615253437588218150170936567881609868780219608393055172054278781747492392272457968643006831306813157730077893243234449762747393424526065963048606207795293748621749923917126931528564543738804604836304522551863602290253265711913384845471789921154364454266277510395147714715540133322006377457390405224132708950731698406713764121183821602754279294035157050622799931381432104947307145265236329659268421906191789585409279992113857396471289623012202746637399246280636154172259929800372112951789185302127197094195103348714720420010390994223298291518287649087591783708381910936499709482495944711252746455840363492356882050318128659152723920225492430436369494478273965744008914536596781429607400157846790656699315725605012294311103505108726985046772122964475066544336344559469298627429072570295800471444810074989251683837198916893371514308238429258432158679116363165172894943266725335707929115363962327695748607587452608577765930767680117106256508444184487794661742015612063897452918298398176695362155382125322031268094217859116163617850089661986883855004904988660894386722793364597860894347208670303718198760559134883656026626537727530391021483258961425399665504685035817414219272183210404630702326318382745439370704259091273834504726714369884237863417798598187317286229822306039372856905690385684888272578199521543011904814383501018971157351653844524541949866993888426502448314127682984760889531156751300617731775082254009515665084645607143030876763477391249570024539710583999694845469226601573875408691275453840428654798718551107941862709366642762005567723063739718525813314844534011512411440313223181818744490415057360250449327067504970296257905724218087173590808703210647967351590938333978365593624735754378456126945370390236595917181050256400998632290677465012860997471389524214286965519580987959097302319641097204264243648362254678272537169827785596392510732970818011332374199625140970530995365865013923139974726827195155710198634852422061145260090369672461534817158525657976142870872547859349168897740169993585028567911982836011743918205228960988465801943524439926046534686744104232443990703191807180811124369499719276514662192038135008944215772663601754717387385795210335982474732386325900883847096050052496547509077543440836365245166909980036851329251970394637479657401899475007817356136661755169284744803196744951562658376557950462634437488134058900057219967927606737731666002062795995918231852078377203770865149175549156412955762410749792886222415902724146830536429676369076298419834204262860764765343457530263863432751594333008656101841066243944070731162368337509005015811625791033512212352460249769810535866177873874997737758030747106671461119899980164926489489376752526213009601681656722049613502325931282181836958116361717439675780118909536484559017376266393661977613450474331664227638777716328027253181089763767518603223478412188682177203199852511249145806401053376763828142659956590433843765989986671621488575233886970363565408601670900004555920902089540353737934909167420119734742826649036581968799218352627375537672253000685336631327658282044882081439140375768786541057823041651370732551414581811552775351739911720334686339752181377913098927678959655490974453199046976443375004634080594441269246207063090338818501185847524433914921342579769461660396523361934403012621775669657999690307623646228801710070483181303500537097683242109770141014380996533986550345125008685527266266692160648602450896178882932416206170283967890331648295516417844531660776600534156011265633294097376037769554631606421490694215028935347939975752473521397522976518178279692855964003763658683261580144455673949767883751746051970206698663100665786208808070863378758508217143544297085886473376054714904091250793639055271172946996193375194312334859466916493381893266559070313539922294037961567983708022497721739880360109845910829407450672423145408758662565981411227576799909515052051407905347292335644099637326725194987110870397169311213816114408086619296478776175970451036222283574467963303486568085462310608818396893857589028058174423699488537118215951700388104180199881613455691049091722880428466761819110602083467683268467029191238524852969687781847708171100609678821120227763628397331035152492551698081944772537596657345055075906834816467330678496982727884447244706467823403664215338991757005882303929912766879903796645010469057065427784689760776909760935134924888099859114217946095556255472470180828627468468439580295141874791256971608618469304472731161162266252268268936144008467518259280364497764267375956697884135735409611804913144055511441318586784505839996962527537454727250171667371350803478708156880260233470412813827036901610805249647165034275428188512119119267836679327057697045560940899943733415703515641733321417823655588063237668153588078935458930603890268567247859109578427476937270078312889992564473944759582866860430845072703928220160770345023059431147921893064484268542410243022666737963904917149566336620689076427326305874371046117421250871485483078766366300510935854338770968957319139007008657229247983268259381116174530957101501345462596888999922739388835591426657817221095479647782464679318012442987453446605609535121346203081702237452323453284349935636705511752450001313677959379742558562270796384646247447288797303821361200561488214288906454331120484322480948401294343155267499420295021990530052980892062112445987290498238204478600871589023079381328078024930345464352171116610747430456156076622613661909771881623273834745135841369417668055753086695276190835178432795557968906898579880621393357627070707996514437471744149703080090531509175213466511374809912999298318292365403121038730990914651501240300492490685610283166829672471637471950583081806786156759757090386852537697162690485014761968665095557241323466483888542564822105041677335363668948156039341839673580170604071265938337341480735577191816124833926933974790813711018158443461877234980026804098034749513914054197805471648832145615172260113992146739483181418507034593162211984106325499904149295536512949484088726067905693748133662844380317244416321586818210578566599150672509597393915038479620504131127028339765502768182727925937845240546609438666385132629030808796720018634671276650710868071767853865600915553647004419609451428381823224759980751017855248920942996147619145726660032750647543226569057514109335469586670462051798224964355389665619967637565006775521047191892927631478108600235763453454454882761245618910908461513129643683217147120376139687719895456249477468181048613965970031518264543817539796524699623408235561591593227500109229110702553031946077351527442102329760619548833977701862085303699408494392979524441490779066852725796175819734428797055871394934654628340272841915765139503149226430690942917632028815663166799899155291413222457406738278598759669878226911514174319296130065670556354610094682586637591522601311231549933890446891300371920984618810800334103381492205625257344233930229062268560607673412370624925366837319163808669658899132905259719498517209452831296190581262902935030003127248119498248787589768730545725232501664890413098272156721347723597210432322348181866481672654677783321894962835505615593844310093952505877730605480908790308596512475030604875046507799824203663643796748074536614821206084172960482978952379249638361101367042574377058862942194312875991599708781656900200804910402634532834750374562585156996605152795108190045147091484640726239557264503845193139274556451506060449260836706700852978244646745980890501627976053591232700260509696973300550539244515698784707072342540863619133699830706011070496203805132808380863197956096682467878690806789044026583594901247551532910185379887043315487112779097936038687142170809072001466712050081330479238097088715205826593394600589967765965796846833612829238368204356964356120082748780556947038671682663055033053357080681725903929174776661285537969365792146426053161856078757340451931940983193920801512720603721094338083691750974841495514305787415296851810641155304433135409162192627433207268979809318282688452331363119923267535950360728769072756891997455230954254078000447083483856862964736225690590313099199702262182950262045870211716742200366080960358072482334600313622658611681928456499945851313031402623444945304818706238980260054605001771595352867592288907399236878230335501120980990261606477272753036607201142254439278790221707865773445696715859751568213664311827885795639880262366368786883792101876545198346883086914319776907044252469566352897458028620626121401635799082045157243179092041749949279793002749937458117592321864864493549606327047035086683218144589132820418857419618533834815032340207425979779382752557571075023891751192630291180372389634500829087219584946517978058225653570116954765304295691595965704655069683511696606431817893770943422013403227099677958703406915695256748620695785542559822580212769133953845264460845049656210725021103768861355305434880166272500951273364037513931468333101677563427964350741435291508216636326629608107981985856244354780220410856052896045737881363500243762575007225996497388113944180820932571729093468814796150455540733637961362219464876804872360409343429271691634152854466738497260992464667801075959305241375357306260718189353535452751983589783676106388587763092820939404868542688045928617765731883665140079481165624425712501810294584651701936303067071367758179627020090540218477103040380152416616274171148735067917814093584053928612757005095997757966784988393651787443610080549945860724469735246423586097829860381871954281591661077429942974807856320254592290061153249670027166662275082468467276647392769056956700518497684835573240109096242985395540409036202376143748135619133740797482847358486980875923186398578612903734371567123365649371786922253978387187568443846050308295328790973487924237660735402205433291180232409841273209671945264404702264958994679272536016262008391461172774510292895278698392623678641238419948657029798506275259376338944305393756139818114758957567598570304896594931653832230806473586308246023501297613641348116530735440787390261289738938444415313659077177187556719265891002632017928141534500733178218028124534500630424279493506217616052871804417995409368307152256453372801523628166302840393066808425390471363529550377983101454312285569843749896191975825400029718770878297678917467913776212329997205659639639154789845538159676832633523010751414364420922610564898507058580551560435279480429965856283944844172836848752713481463368884380832446194632157899870722092455860241006128355099504883951735840123565969898065348388321389750566080144914994029292509512411618608458479867664958969163864663982318544563504070933681826526263987902271809612090843573249010428353976112223541454754211789999057363550222504833308398336623267030478246140941073596692991809835273992726864185104194210638825972202544486725097818476853017846335217156710889388415820886038133040458844420340014625852679166680061442270645617431470204880873322229626007640392736258943075050380787247033618784992541617260196617152166750621298890100512264422448641869212933297318622151992504610714631002033457928981297887750157550219640163224305566863628809877742407980123951134264966291238953983943318393172991020813074709243189567928322775051843394584016045603442436708362208774860581204376038099376525715359990189706698252514056081872367749279806410026122371146609591286075406870927359635076780017656288126294468248577261841528616732266187413675007969202830698966249529870013474690318528350743914786210833624025913832791991641551986920963599648613596541391926578192797662822677020136161742153207861606904552974435861519545855903141642414748168797464973290680303470352827460790858908955991071708673990235476986510424230554978085097608835205540546510978329913059438489792750413725818939429838695494596106534368303358514882601739958212685103141190656702743451892773764433756872813661212506397193727636697632049053104572027462146542805160105661599323740136458511657619176571888934721963727851461927700848326604444774803131251925748884599814860811098035280211523921951846405414445411659703180495823410792873789959966056308318369038340127188436039681281626228473381504902223659658403481875340765917891009389561060701618533879626635965352754560042260353849322231441764195388522654590385730901659027132205932479088081634249665868167227214172978439059267406362708662288864736992971784588954796083558932327327533460527999138228189361775441397110550236451165983554585621620782905806168530849962585095493322844005552641244698076354612442974584730088296804413737606327187421410396001228767716662782650754733900666571824519747734419365590108119285784866087572657043768385055395560623889804686853483341155908807667293809913920344403808803641069844646082325223269354191219427590692818056872356670659517155103065979488976813257513483162668981759562474441061960281350728399202420687105008788172304392177316279182623914083258115695810549762643798092975758645076059286289468525705781419215638509026788670203783920088301220854330177909579675814983732265866142929032312868573324761995814396622329853118948014968348539779862105821919645357656993842921878629192494295307517131723430158845297381002148077595104493152670695651260879557419401833383654286182272569706138179888992401366042352186383557910686573526081462757241739397570813793612360406812230153876240827603043983084840250183939268353524705838679854560658139213246553845973287065939995460242785685468102161526175883880404595369268320703051460631166952317032067847567448850013240309332120975747718718109473920831546114961089414213385247869377945611486694638276787229314687534749389304757611935178929103205448994178809996367953043065713326044599544432794203773495841260080306721876233459124773922136883101260297445608501091741613741030072228525785783640857465627319805859617351936667185990055740311868071033363609488940550348961819974831790916069281403041727070370947960800762128044927598208151838841346313751086137411685892829846684859492924579437544781774967560038809837786359955522417952209417490641773216015713689029731132038789306921400699829287475149829254545196895570966217075330732250002416837839948098895284662890585374923877311559712487552507740184034968135238908276078462351401997911423440599152204667881675604596339469208425087215240690772574072280264307273769965972643252846297180968792768209793338209221146895413288380359435482119956061163122781900546967897416134146516918637303359492807791680524084696714545447881344062732285062707874007412542449247419388115893604212938048288877434187484120977354218265122541179326717246699801980208557246443641252522431401254493800450506489725417722293957830623275348398663534610728341135154397595739015684229309608009577946793025933838869908463394686212003884184628435130725335956314279179274705376000554152023536883421605574655408654959519511535886447974092078165171573392273356972529737802627603298915497687298753416915550096266964086044097053188215801446535851422049812151463370660410557209279718510574791822170319374837875184427367038194539897797687658665703041504380918683474819168343292894842778366113014117655123199804319352378210406598267402070683509532778413513151194326578279816333954177403301770042446819136005973037343596380704425726954215897080322110468696624989288704255441640282038752672166644800255752300095656848680133785087465012603350449915002717089506871422772742779405583252260091833278557624279683490819230599350562231238697951126568614910988208598810266608611983872510552419934183737227803935646508941966377606621115189457519452353986935017786576331505651183041702424461480553803067582258989837509925278568107072640538908472068632998768517497558089567005717587145563515361829376591565668108717575516952683233523294133134531853435272927652232460188810255789094746963201166120542191655679480991731740440905743625254653664220286156381612283429938130075465593579657125630781410514928636023490096788937646033162319213616840062357266094655237823138360561583475021596584534452211416338892238867821055885249061393228622235628328356688133661379257791220614985384747664267514002934405586228370936411529088496419487542876585630400349907730303498031620438960138634548150680370725897186443348941045124997857842988161924251645283745336013806743019165528113179639330881498158476678820321181662309966624285688961417848608743535030257866499602123851703599141322058973174608260890375486597258490358935903085352652912060693979705690452446003017568196936042061744086104543669255013909728598220515004430056446484441964947028534161618524681857158437163691880971665801111734911647430034581514058099688576395539968803654492834580457913682955439462268093664064270355501910008203151767473236684488244468618598044678321470115845444265851008083830094745228692237658996143701331448351757680274277327893797441862681684536863625116430719981260861174664438540874970220425270601715736275575448243310405124820683173521283276288094267210353525424935142015234215416025740614174054974963606559588178940994124722828577065720465126687260087579769617825577415545300374085923251941424766726879495941958259661868215962441633153675018894759347412219687090872368116770481173629428510619812760141555367813101458891924496472341517596946483136854791300047068788275750739708055374425535681352873525142717380654188710833725554959404909549140895850335851703649572239115036114681197599927155235445454225362806965801057983368192877818221770726865808128437821683306167628114079610908847977889762028156152810912102231535421516658664851940165685965834184201653977874651530574510009396071550147370671272457211134034995464074532891322834302842954733573519135640148524855035052689247598049173194011340150204123463754600498720449555162863964794265916647425763679435728429374818405661394698265407127518511216184340598672999374308218316630843089282829746038891134764398555770948836643063410577647978150414033892480739791277396030692863542068665494591054156868337031436197547017199307432263450962760018172767611504409441047310085941437654363914127077926288606614202329171643020606031828643695698393907255443845971155996833202451072608287872030156513667577654233322057070465490249258417826969989757375428933204289221373327342979361863421323337441669476078572294781915650034985420675436558994218700552318047376297197041133534182969471019804014814480560437123760287093853980940508180167109078874586253334936005065637502085947078873667985680012960908715960143079413251725028627335231432349237005460616894695015476660641262590238033875757407402371837521113463861975955093565547434947567443965291261147155232912586091157679055199146891550497779018967569404830079972034404762689791546679918935225123508361077902435520821436893729582700340421114397952553576350220905682911565251318305965702802212552268357482537408316319969371486872745458337778016645255928511183084155942609051508147129529481785316021218691483650142101463610892186903197980509529909491482291771798723280105954915048140539699604978629733196252906726440473351320359725161025361394912399046792784527717359043709166427873638784886078000135500547124634491605024015431550885041438405968016392966030062804354155584655538056379459702735127346257058056436828594335459772446056281940208625652376912025530870626955800826565996014367962862951591013175798167007543414979774442014286300731239087187145625679346796520347330842691421337389943978541272707457710576889074470712374519583970752689925197029687839742795328740279095891914044508256522898364745077755923444530799754115984391028717178877878098667362640671032213576837067185233142739538796851169483165313348638581621770615070792081649089709593027611891439225608788071291881503245819705104657079255923594756760164855767709790361287866544764136403549180110571082973477194499362199141039822676383054013932514810880552387413850075998258988343960662085438890222821074288964941352513930191202141098140816949742320196085589330425398121940648164397584389311902762230103895366525932852349208466560851905295875713442447879384562292417143197619281395063620166905735822927293674151572391424829438765633097961593939978998013914994342015479404680114945417332817756388194983788172789197566004256332035697118961208603035360196081293149103941183493145973662402610246717533836159364228945106799683255499137255105975064277418240667981226396343808428147294238463821732710740194090426091026915237915367770547201688341109135776895584002894928063946020978358175542455306832967245052993408095878848160992901845836758508972978654858557922910453207944318165565470371194374121596501263856532747576186971124777701975581915502870605295206736272607479559681933971586107994753470442898855841433066758982508988017477428882850474513655097968551533462695282999560788119383477336442983624197793251078631575934448526216457897158647296862970574446518264089209630486531412868185590549448172366464500735545798989825921763564762888893360633905765793146122200494691787180058300460422101362123710793958925283855679141136527255762231809439858343852266556092067917127893611468306982475839624561452040342068505846323047565557386257056806138159863901567055314593053364306959355570040521938922097436204142259488012822223438729749094439229317755585238337796094576214704308126011392604962899518132570566097938568920744237857888138767554347060538665498057073353355701897698446346638282014653331750200467325813349449311327144360064137625615230188561265355887636513056909384308677126398000741415546632251781143263875898386761897184080799401360728530517827019184535293764520595735364996065188547495309981104231373095426874862598742909049774988722881785730206801193893121927040842638961859900713887207505201630236004453833915545024033626080633670609101304986837928848726632853264495615126848174153532435380001657500481418253833494868688358891230934928037436118499029326089471154591124568700622587696765144376061273278551853779959486408377634369651465431421419351517241861451303999597905856716409238520871243038380436281200986011671870296526723680150049917329849974913581513883547442267642679006270121528691011589830611217257344963484288994126193537353748458950973130865854786407719747470494091319310637625792329290853448378963337563809478777780324901249662173806382419103637859738350927805076087966172350445778254709067780119030138002927916381634079068203005256070536143365075242939494907315979084684379980093788054189326847007638216626804349007299505949173634093307496129167688672050704209472230076392101132775776818126876997027927130103520763136628973980811883750767732450912202192504183303656618948292735648290069336449882591706546106290588102967001942904430195765179097056000675928823273880372135669759070089974132154451216858187700653759410811932158453997420994047447466132704187093013161681332438568954953316337267209816462480952833617524637580927350796605821893485487846322554346447019387827669791341764614737201039006270761385272672981404182195112585750910946702022437124217522411845740385146551229639224806456312848490340875105417600900820516773418748389869683588789661449490732707971273315958161031945789667296909301136018195211194967165264902301455752309109678374827015691895118736815315705544247529320043402565811815665826068815800933547582386203295086614557272355287654135221855257543559495821136650640143575820722996586197339019013814706054373299106505092864800770511722580444078625564327670517733916685824724389722080926927537522014835635689294010276455647373977918863217902328473288673940640687837065784937227305383534409055444531141674911002971488448428878011917480768672853927429014050766675919974550228028113136419377386779237645812176996877901003832325189276162882454290925080740291599125977185623743454202890841189193915533121832264785297352034003837092593279253733131793340209550419448722603183752459008873621601070799906186039498752139498897023996612876157037429083614361630960512960527265871445589310855706600903742945411644147859275626128022180095536220440337250325342081175290328762088978597559307643422478199011647974438606243463160115333546579323600052088859007051041378612080339333131983090124752731942962666398820280539195332388356795678925333208050000782393429872091795671596690296923115413663862453608966082304766186037016004818022038458187710198485362182454442506824024688176483642893898743129424416301697528136995292362028083349519198776205420400483654115205818712322052022227000730955774170853638876165877549969509160661652701209972891105649026727696036334372724774675287004812471086684361174949817178864377861429285667014663843981395335343722701050153821957972814804170823039128263647792455596636454300331511479781855342239416708599479525847798403165433076110242431561833288514482783415446364391216500007839614287056522888173214497786626251614799793698651147577238406397704871448923231133252034786106441983722548896362601034262584288967732241186013964199780850185065744175122577143815947374127630347672811454804686927209090903180312855317148884495314399198669089130909750597519593088176368708244542300365989649205340506685655467883779502334783263576920832172749712559145933727925828894504150806810143158088226318481915043029670547836791979777355764470803478439481757694608032866370729328394045098094147858584858154100165281018881120811870289962610065747904833915063295885469253137901723394704112206446168374449614297418332539204072749677906037040875847485512039992160673854811573511208804314445219262505473611451354467256407079461371246949088033552972862277447726267995902582486679848817306528219741471281695207068621662529859792374344462112316931643767595830286247693449489267650545329590521329342044379938400694581644884799708925000701137617418730099551795628495725156254654244117402576807767682754126068741079328055482738776176713309069270897414183967946345612482781836154983174808586783438195538942666932880205701136768781896712670793446423019437505436027833486398494482390307905251704193734983546759459916377530723917422190326635557791358244826516385277634513109559728703756805097983438060860207874358751293363105092803825103767215934008416004331828027652593227972921147179951930444081016260368216359255063544296847521627105309529769830482289411612937670356457435534693944821309958983844618601421782150846583741747453897598867738977040019809993305914404835663501637168483194403833424103390985256234329229228986794419344860145369021146320523549454528697929916359730222754605088498573086362222499123119154496611516472304806136153768942240972638812297511858491497991467316144176765947874722598146711044535226420119530242963423954797308557711187987014480169762585764643891732944955067901333072672464031932883273434136747164460986895626062333037250794241309257804429433746880119891668441847624626900742614907353382547981011784495787955577757084561903407113595757201888295858167607035729020823741703757384622008559259106643292792515144191938587874267053979575733386216460307672548654466414174032358122612907217711237944235453792046750748058557963729875597188847077624237222697322714264881524503776937012334825348399622259421219420714554675603655856076811462187533717718418990072920892896606422524310819212233206069070823729413497795757080887941457599159282800765476333990466615430906268290201524455021637575572260976939229551443850955324682174666964359596414557362133493826932054152201409914611003641858846273438384713279341830161566089958206611051765608580613678183243875659655147882308393850287473755892201340688887288491429551461167093375363504875600934256369943088511201075897732037820632576095672756774617248854542662878431324925515320535768200384878894939839530329148643409216822101855990039916647826869436844506402308350695061975192074335249062388141588658400630729230006493860506347396287263291425836705534241597229378992482777038256800835448528999570926966372230007950993051588432813512592310814375158000079133507053858928577450994609446398754510324906386574673632574915882768997948152685436471664780398254251880834326568684206107193490492854748958672794653494258731856132667226980908685580969592745849937474440525948586319603393460298849475774070709787931438129174708564555999055949149634298250040949302499019086201402276040090860379609146544380488289347495152150140355322435804331238651495429705780849262388827577209279765859831184246224259849464670680207753234238472429864035160124691985695777556128406207323724107469480354970178242596534450826429567727758721664583025722315801756260958631141934067911489706105997751183131850800157392862872226222842654475714237813691283039424905174460533080674501086991010087338397594989722888981656769811345715669340840924187244833029016299652034275569039161749742542157310379087053521874489351052199036966328432721891733405350867357769517817685178233032348088848558600252019949578203147626140760944830370587588086659986419836241993349692411259350036770004223192310112754213419512288245819325534396007349781662044650568582655682297781973721305097265749613544745721643585666505682554225176793881058547217403913391584225663823825236309615877076048984803608940531442007953151939051895458562774383444967449954286540225354360659312252572961295437677713945779115063711142379652402834190989078350291653795003893107643723201588997179007627679456218826649417671695591749599040596192062452361759923761080928093422881501559505340829597831125062997387207660237571369571905725782445751631781061765372224137400333464215723102855541710619735344054328999956600559600884328306585241244904849495518810818317193270005208370399380254892748675235616003971577539339112668474302500290781535347141139405559738016382959969467735954568808594024707193265160340643895715647689428406159837635566910266913499428560489359855660032321136869779425910498984814668279472119614321601044400035798265053528995159875507878348432490465639559944816764605012461732426456896763284162069260796765221788388191018311230173088438017674858415301930854019268530039848973016883614170840158854641429157995512350854153581704495950825239862459846418862548684564636135723231980951345462157900234311269148540226101979056001667310560758586220753202651824184580321042810288561717126919840050975196154490520706651659501098854095755403031707280012565196144346628067754627939904823395211038959200678865126438805003452848679660128618138366016671109691981879785181494688828409254275366743912717401435432790693176859159694643727607075669553664246442064246021671732390573346792471026937562921967525172876633382801722233908935495767549096630994520429130609506901522453329972363551342661472898245795411941221060714333069052117793739553515940815465668551967063379117522216345179604095316726238900606042498927143594144120897415295419254040104597932281077872714559797485455677942203636765759434521148729243367422960542662970697739389584025725469913427102108262301530875003586895894525060075992752674120081948386222233801424971795280413969118660533712988386105620067901347163363190332865920651706224315253815656790692751980297284680339565266008741720900453788247679396855148861857006553809197779649911049372656172796111204046939528089994311222537720875470197920587763968042118452390890810321655951900588663494801051807462728778545516494294485910360265072949308832356285409393113152016397366649796385329099631202910230483916099341452293785922532413353143882607626704687384427107049708806847609077480901252026050930545421004817097064222895612790298172190892285620162652374635593480023873173641523850480432711969034455598481060368968759744682400019876839101457202046769649737448225368171328776695870836280063569444281667693938864081428841157383587694656378006290339034267721622429507095315534633028619610768981151591243126229689417742719131786678900636889148182941039992827756559562833186530614352643400863723522703606095037331672092771553553597200009623180045203595545658701418007821710413449702456628276453851233833376219413241897935432055301610717533577620137142746163259757849294206931614913682413921024872137632081033888551806645695673904017669480702978034910420990067490190183625493406317665259722919090140452427055601928473136886149698996991171659374323633691223790679079907430333805423373754594517036493555529690878566014677491054936343447845828516126877748025316392145717691329057789791779503392138837251696494280058457629762142819386199821538413851810122825950990035225118455660379153720042353898925601695982691397748237100200899678750225400356022727584107367246684247663337703083174069193165603213423801129595537095338203913464168495304475981001565746678023124837276923163692010476870109578648462553793735595868986888019638686609633362183287183013546083210864573546076097451484610265893427522911788661161482594307554106212860129933070682353451544182225268285359367104727607324746366036047321948797604309759574861956114508639052745226629032327226522342706797600802873268196998901729734308932839698788957339985717256327985567861310424016943459011524049885695508034766820769378439582345939203667216661611729728952733219166667523315131063538992970629919027789042679546420637929588555442143057902580891461628466418202929497835030347781894745798336055659754264191453160586709330158282919580515043131051685949289419669053387700607347552299814525038846680369747042670684823354799832934507820938076058406179058993097715925293230801242842360513457620894168556822106631301295931813801076444804491088006167821249745158163231270487210347380561520126253564911712896222264572740342796423171581454729635793192095678132158363600652645755239542535307878167117379250273063176402388010605019571053676201883749286157286937662320686291052159227126556048673855032575774781078013470017700984789532113505793162492850851509075119555042474493388075111350672088370973316384054094986182986237127207123290667237645624885099259649802229811814607604255870584760146361296449411763838932347087323097054236930363588613065379962390484928397970579233582682132762695146278569185731566772879943913015555267453687388565864675329080356611204398253540568922267850963414177802374673312860892090604441142434526353106360184677615941341102336645243813543294972822618687870497303707044863997924046101382445075647655938204326670534727137805432972609074845874333414824194396444514581822611144260708085392880839947127093957059942618261569106389930873857937658267370680305341801105035551364054769931752102650511758787193126241675704187667080761919814593263617942141859647957528984786880497793011090062617889777689205812608440573711557840243267922817738505074086449134857440821766932580649112584093556563860770237125378938772724229674167887210867537326369968938744196312649522128881696567519030091689746130299613854431433285776075952516764306209235496063546075351113739137543952872242999453217727126831559164624044374622716721147592113650092962644822732269499473105803709346820209785193001879300987178967386134445725955314698445350113303551368797081962869248055997489747012266814123313749562813361961423767804827253423546652792107934443176703727945706487721564416184514568643884964339203424037179417433010280592538707322776105530905724773065238458942828694107542686538306741369678615554567842156899962535744000633931033155641364520655772745848426977326234925076837382464599769998872508518154358687532639647025862048168463513413336227273741082761166298398079625769526848075740230174064630001013841984028050111367986758965605447216283655939165727364883820839886397378215038571366529717891309301396730939244056914704202859739333273307736893010568373923016629949897013271919053312003545326598066721096061354095810418034897969826471816116244146363843381670047378329346482587472695007701853343674040872207210685662592334905905989917286230680304982002240726170913596303139689655105492666715164651405614969451504824077263455904870408525864886897464519609372079806972395160853048334342746944225413344956977695015401007227398124132491779062855748531869941743742831203860228946447979330175478869495981183712491110298476730750421918036019465102279072228300580443297692691798726694988467058196603630149303587979577270930373537286053155340624848988706468585035579908841844550723600359159748654051871177088749872012591946837928049244739998970262132443524188138371740649850707640295886709757266150318022041514841318347029638688233739564224265277327706941534048444897597402601626010240127983556351778025206519558586228922969409939667260426971230120007235743215305798922953175036529194547205068851950856177318811366755296472719845459699367498385955879458842265342902273970075202790916628433833514630719614690785781212163391412207667457667145528671566333783540515796715392643192915230037877429292940673007201944944985372933712430004935171098154659710360168576260644750831813566723276415096794965608274096756753190275376034101802211116777408669429810310750791965577905631601095302981617875670413748277260279037659459017847406966641265367605687325044257462767548497529683287486632109038553344190037022438977533562618651671798832953380502963007451062513100594345789165557273809900632273427108983177177430424244162267007673441502079874859097982635469232436910708466432360196158166851267585946821144998989346446974548213012588213257507060252217889947601314951843537862324055517325060840850851175255218421784216833317199351591027527718472728419695256337716961564805175679577321488269069289355112724564792946027008337147681947832972795933467696156931858228865842904069044703129508041388400783920867778151486627742171239081465914824582546152621441490428788014941527031238677534816564331758798232579771317162106097273134218832807611135049288796869656277041076534963406325456420835915558336364370584798488727218849964679651743748207819741667020961465105044894200797273569092686377357188741837625682041046941350401879017645032058765298504984940903384078027393304186366833012725815254907613700480291952458326460268332004378284028738412383574496849537705620203346800345786658514459490987322846790688791131303315943315601188792432194789654638626250817475037170555036256003491374352836267790949538894979863816000341427531136180433816194993692968988862490429293833804049507309559389419241107810959652641437770336740455786891354892732336994332252151245200145272318897883600752747267790220847170873373279852211672995890392590903180365550095181162465265203962247670762001774016656633820825477941245344391667650804505051922257149867098413721464032528748758899955141966162761381540017268671763079788121759793727313316797860675655046128564201746494201199830690969968821882276607073669755925583282496244802938777060251771238472061036699943633166790750257981145660540378938514244873436409152294646724832297760315667085375454116158347627409316724055933051288144259811625929846270688029235672484376783569858327045554230518280469808450381358792459818314071153926113159615466706401799333948073543429296143111376151486641471764920690166934983847835428515021332356906945884830503045426245295781980924291557318376902815130116161368043473947327291176436016676410891858189215243854754582783954781006611654296442939995565182862600219319784168953851832814897051226008324141760974547952982014000549972041043302378308681614414420746541069648419024851042169163677435638375183916646355010472839082451634705385904864939965633754004403040482486115845451565872448639951493902705885529097734286200088532345219729392232298413055005133227065455259394216913612009376823464633027519719468078964794660706289490632699249058273668379576021315384238058477536934427208936775265679345300107287540728112123389727060671839290556870100908228494046659293481819753417410538713849027599206065265457719707365733946703853797342907417795181366513073804721280126948653968999203026760813488215585259248438333045627844916496794709029997659250873520465477835654419801297097340886578544014201659845287096111175438330528798999837717975656771334715926392911413062963051005621599410710533172882901729366074070235970026687847064726397862111702460346161714946046434343365649473171933591332645095531122281508443207620976892651906932602456045277171779903819729167602439197167123470925888684464976095785321955200767245748779780425260581513257563960666881420237313664014358843063435679003034021990010501407352535812883924203104461634591644730782283350016300916690356639519910618839413559506553219968004052712436943309345620466326440197821628331480140641812120865800280443598464096522042027612156483618099938833509511895277407175332341283306849200217628321361418162655324287448749880784933029933542411714628475936523363932694121714318540771490572590292405020056521609846122065657340085569416089605003341898947659069643910104376664246173984903578949486981277065101361352025825205587949630367564027124220145246388425035991131553675274244641142800626743824282301834043780343357860986605395646049890614593946570856902732175275965126415798532078520439163697495914716503210323773121053022901470441433445418055593056295195795006774343233733844060338877737926528805231213618878961815241341640993608927102984048485601954789630008208937821736520863255600209811860739151600013487881173092916446937275557581663294583188132196875150428753229682775893300057638703303922066833379725014158507219591483577670883603059878338671805675749761709538436101497262782059362759414926020661390521494038982873114334770572792944375181362987328168782180490957612041175931337338055328291730206463282023216822925868155816040175258762274107054093822247402663141771676487840100383505184419176563574301550844381684410978059808987130511986455655268382355086377215037397948884435718938651822654009612137210291088666712345732027994798971849443278202206957692277587207061122135938115079747609400831318761433080331296714521364349814879843157905753154430052233808083320175233003326324918792925642302801715064571470491381923128515805539359916198622371532781403086448002559704219439436597160213145166904330769651596481914514493709527158741036532753980076900060709518427974597900313208712844550811168067141440467873834678598437327767014783758505625745880033662247202846039112219927383056227464589184867494507599673967603908692527501638223135950090578217439909076866210453811365126672997374836105979570180087214440640979283640309045126034113005891224381257832829293427306371659394429334991115405707044478426524373516019869053521339159030698005586508425761452392928536000516869597838609567598141654865943535954607695882457346154580657950325344288335830615866906746203441250213002847839504970387448394547817291188979181803629698784809805895018026446463233529236229191408561044269553958194837542223844120818243320880223334051974711808917388769029498602205297291365582989497051250749371129291018966374569773546411317519674704755218705440355485720207030955140389893048889871373173483632344252518962947581693097537339460700543863957501460465575507921835572296226965023133847196682158159676559411999607161307094615109143443443318200248478524706981922879364025297147890883176866858374243513762461227110677562023320888063630326988910466850722653054435059961329500005461479929362573375517602748386505508330154769582333709420320982829262020036669300037334293590302975233363245369773345888405004590376445993035490063907296707588029627490632392106387771290025730347068258969436933134229487037010041233156950241827755492517262949569092452470841959207734128205342290085165195909784119356745702729963451915098292267819349843180831848271237130210735317343838614958024170355888598253644487779122050471579791525818543269548974009708420281781627951173887833896105768030799291714348447403419517670372591699160979549971317420891071211749074981767406734744964722007352553884840169658240606744044150317020254265994524881615102827039049324259888631053482912783180031821123264947550765776825086474042481719501842027666384647068303253902709383557544552713397530212841279736266097272630748924726843656674895767542395190952226544374738296535140438649405344630525135964817051225745025881195237968756219331712461877182654654791694850771489115397101703732477389224415517104535017372048960229723436513998423297364169597343988405013894888562547852333954368693622743728418545801639063929057439211325881890314907293616001960302107526959706179465252209895291185932441856888709215817468465623874760883486116269183562851655232581502587578453466411734984095635001027427655817563584061550346457048807721178910516409913678547644067600189461400171020352110351536987423441216715743706000239356717297762149862395066502828468545529388993129842144717139765278377244820940877976237605597317525229452756352679395634872777295394462377443383428654288528821570091727727396289465105256911439511654888348234712655442053174488537516528313860906546615459961409388770542293096043978295699565016108139206889539476697661256120308005136977693230970972854794331122944653699801666638648504154748502647368471834888942594477675504858932048769475327495214648946683352782040343548150995553921565234096058407754004770045407378600484466206800380554776619712232971834575055969579225174312152553746379793280512075378263081396753814905525708209644139763052494324627598086631931489872953611024342522512192961164308608564334690559620595251486867225737550831627583122277194843546289524940845548053266578433062243213009526755583049585303146455927442657082370640266714160399527758758574287161563421107251987407285998569369305244686900231905161200059798190055011736844315729992052614253144409411038381420220215724144064798859510287143982626328763886802735565631001219919306925282836150602783225377260693806027454040624040074436892843404951508012178230822866417052851536276278230101747394279296324283512428199101131210227865780540212103151040581517275101819116173972057765234853113460471311591740885434643901047412417167363433181464778300996521026976912654165596402632807008795783410471572592361057935501088533601608198998043500788423868078765356429749346524376777913559455847989050893824993053374644979280225171815321277814494152035026497984520125216072966364871816699775389292076775042046842780717817950073131444016150436183645615310586228883314817054622689053187646337862607031806404092352072403640458531002389196949345252032969922177579706910559786218708152981475628792777143175855847884508428836202658013833245017027566174790264366171556943934309355631835828553561245201995301154241488459506417828746484069231329110015954524861765105314252633381963477186638954331592162463548140875522321524058484254887704488691159311706094084843029927830596076014030873021678679273274828833966968928214518980689076823261005719116817340015807859303326350024947526007986975403828929924310043797642638610386761940398199557624219439326830790663638399044698331152540202390816741870874886359809848645948750622580635917712162454826010405133422062894904079312514448284315137799043773709436781558483187608771674780484039673207779664447732273113252706995873011550178822884245728771460660161755393103150526889974007840341233935284713469435370166958215200838394323212936070414391668692882546160765492605848929819935321682468643708667091598796414865219471618003779786634784704300692444885889203382581979426193290682456166530328111608764814463961686209226497039438745793478826342348612942028938262513913082734313407577542879718301466478811082258133946244933759243006345995854655085652085817238377077311482966997781057364739986138674292455780551488227407748880036958594363993898528793795966124318014176254195266503589176842131608212260296643730671039027810262846096364013061215180085919394325629551800140181106114807130307990821281784894022999154631170020647482732203341323706073046389591344939743934205030164349712542431920689199100967123181487567216568696519923081266026008148804291985729561554685152550425234748533474182471061145049457050354248507214892289455796108416538872292330755056337570542264806259637146082394053931118832355223854962921329398277696065482458791094844634021545076877807973559960869139560357692774474747124898603097671906189439296273191660717861064760333613447967693857981756604401272845038497632958692212178850201968615992557516004046945002018564213897947149500600728565180036124111815868039976605707877388876146299019866455723818779976118392354736178842470343051493171201165942122861321593066295826696217256601933125748437740866226822976651284530106062419558257891878350799619103137370965119946128084116974977633314475777429756371239156819674868579621036811386532413303194970987244949985695984000235245433217280948935171246634383686107971980181907884924867831826433120236255336182103170162268343564130039562157424294505278407724043394119222254363596675939864750738481517491478681347660490576708581574678927942640343513304634846996110268441383472621240637328113470926399214985892280728062391986260065534362755459259407111437369519502041111977513951048311749824515227230508486989530595884877452817693443711617074896833280132484990112497804653406950190014081720719092533646642768692225739538342196406588836931086119054999072266446576678780350212003183242718480900148330645794726402430244396804121729276886745225978652819337570130966128497016067258984576932593161243661848569959648763132431679513620198712231218013272194725115301657775198585138685641502827910434534123212422444260612018112841308266730508327059160316722085270463175149839434861056158542368034297334003837646423834145317651612389204882179877138376183576354777185087203621050916567041852982270768498095312796335818481979592029722280894674503727181134883257860536680063983595277484676547302836956769912313168170128405890340367716165914290682936512408445942077431771069552152318227950317874025492883370846747125911243928003676145415703452543337939954722622400686216769065487438102194954503587050787696303993307167291253522991660690498319081462274316734084442359842460993241378642839130329108360062666763117291472458718199893972573612011783429960877944235733427880671237577047270312209279584015898333217698004797526441840844079493114632576047454870810549707320246944590918756606480882034890073262428273554266968513335191604350332340401862007628456696464651503699676495494821854631875499957979980420626900158297530647784266879724764057123113793983682581762397674868226310726526923831042753121352732253902163902703863379972468411706792407127419469903384505599324015774874995355182481467895105459509706712674944685901851849649403529264147852159238163631438715839698931658702151542628193788671107177717432845559097951371979255510969675853993642727066239444721135479680106109345141167996332867327571108107269856002633235898943616461898903847796713727180544879022456292172298213338851621511179369271048810802054541999006668482297945299763300608778781467512594617948807579249490335122335467543495899821457705988274078506945336825597148873765445518980313038117770227613600567094912934195460961407430608574761697485906681046175945231913189856042732573045301370272299073104588138527458965136081935185287567298437573793436373772519332618500568097286993103353840571672008362718582550475489075272022977097403757205817263419511351851322085480465721114476582004479025780524205820726563876616260717166466733082457917669970562591190409862733211977393540991267683042421115738689886315388858985671093825752316006682227118470745683381757991444348434930239919770619965416368239193496165158908232808426493630942590532563402804128935919782214055022525647237372679704547401351849105543821228337302711311921435226895501882523751465932680821799763340975801463835084069743428361524950550496381661065474114411692405389066700933205145048786535462685618527086759422427698685968014556691225006772580340116908581570739899320401739832726030284069871454579154328549897631831456050236932703951550800940639830865088742414042969493309172748309057483050737207883463203086181830852145319912101941322477248934007674353188555679709179801379763255816984546628047590850189596997628844517049250685103467751743478425938786623130359341897889348604765975713068939168466581388244262745577458474620905098691905680542527489258222127073379812615565577385048852663736201405270313796604332293935621542146203399046942998613608822466494138111531523396956696728562757010924862128254916955145788030209874036105035408050355886989634841667178249941568878283238760911400935738784368000452540686885015268087057744049851181214313641932558146194616874245686882162752719392132878039139987509675026921389014851501436244455523285864965492558359876236481113810192521452595278987240555152701240556946067691652139910049802569537982315244438986554462735350806084483968446996876305664035841325461353460191696670743474803359596368026353571690245681952774802430040788564575665139657976605801595125309612026924907581058253931495644567438806671170697683005021404606339967463983783215522460211227025064345970320443321307130694379923746040014170706716248465245379669390874352012121067448608884825399520341398688523218795688300106718658756042499210394796972023912318372900629529474957763725607013929704256654232769748557965024430956103684868650379038010102865303208075810763595727732776407017165340894559845951494617333336168496520609137273289939496905437377527473595991357514816794446517326560794453294690745342264887115932786423208869341134869101684274934542179615180332343643648664921399523315342290207127755505772581566293719966415529407484145664751206207276090849261852363575389464010169913234632155805347795135864694012034871400004985797240227420812052490106217387799990792142225001724087808573408673540006382522121086595320288852213278946877201917963793587788477928810938625704250793732094412158475970092792998751656588183832597746723266890792767017995337641936315464147834026395676738218554848577057288328678989055303247414393731234398427631264348925450517316316559130614847180394182192302201771643795651444268655338155870026002998920693650114177033655133144568442715055523551209542437154935939771587703022420312203270303175068257241590777737739235699385417504379611253438671412980098916064477004805118352445258674853059622258736679142984085654843614486919430585787933296228147394829745594781779400340374155692965045386995664679484135717727552313105372631983240099755211492570225763007209745231772271165765202918866681976436690383660115870961793580984340823986676008993107938733421421429813066464325067773101704406945852571319293175754005789472689052379182752611925996417302445352847634483264627250048805274874940904190350227960334989441576853509890604098153740860047802252309000744898250299525628164159357086818009300717670582916021327046190720331885619945148421547020108527558947200198463462504034403536589592576992527420591401887311394023213994639082670465219551217280004572294305801902535213147911540323761710970301238299192172967914581368855594067601825971225955988229857218091876711676170684309174243172790921375487563200747012218504581586619332927725443200265522388396112465811857953332527773141968651830825635257999146110125490818919058874925147111142922362643422050320017851847595756189875411166446501665561303454031855468682108706226262277141412776770741876288353682179560901520559173581360173801601885236469331711761479689830927050600377805525684334669817433865325651755981020060658969904525228620932904014106637428405891457206668944000534727190973396770588111849344958863715131017614751608554650051768876489636586256591603763262775381517980641436422515062077535234433169166466315852822500928191662598804337769841971955183124060381321972699211645226933000412916157735496807143389665523663232636733992634739609431159738725737098626118703510828380249109976694066869659923385699255358369217933067013847906392011317796892985637248017200881384100412774473349911578217117420665189060428010501421486111043406535284760540756610819247867496442346853512888843664257687379765665740194791441101039252898830805962821641770721455775649886094012775757476481079997943762867605084834978311892584743457204496591531195457609053467660118042037271027442179131707371398721104037764021137861083495355575202064331256215342342198305448237023655416980079595458956665059891965890908605880736085363924760361021521153274293183170317093416194549912051782814688325134893465357178715862417311840853985649368093862297969600500133105558046004362603535832790177004003022211646000529004183805834092815632874440930628569820091520598318710832770881763502572704800913055840618439811559354298701963541745178070522750626029896667170270408827223168404847596953477287744106520155073679147774391203848422835305540936684296163046954370001791493125157208891541032910959451379792649412605081153775803738005513548172051196969585181049085905932805375265969171105611563686048378695044319890070269978406943945807133793459513368887113764787567724490650892204784459844331906763717299084373141479470700646791529878340035461665432495277572995832259706876535398181432844049039716637964381479147215693278245755967716234122681893295666000578600008137048937976716349280852761050665728630432403549581720462584480732155967730565943385755039938967200742226301079846126931838653490708266456434148515698411109668161145802808013845148308575259620635267921848698929060140912369802890730131755501264811594250791976513259686837771996658049967498103442242757854192535937485655647746197058904610404631049874034395186227241156295903214115295166046167023938495391192518826719007968294701092743971190432718092201015919355353076711948782584846603533299598838328160718167176096674372779819101184770370738341075503441203277419527244095871173350710214267568370208322759424685394191656104269535684591493394579443099685673879799225195911638558446252436477646613563743163449830759977037335966068816070950172988948572249961649087280265447718971501200349631419323951072962739482713950496085774385192636167424777299255254623346559953367494972964302496197814331195187501488997465072255467769340525457547721960282350287772652370933312861208357130464598509978060781150378832615568366412040088783748983180325934633181002283211433562652259513188377230194983641725929697432100934941236328019052477935905616203483444204033244511831684985487003720033823504489451803642287937088469772329457002709577148458552879559115796563672622471175789921063605085908041207313544177124553219789502022587148860448759243067554069859702268632118838723052324998869227645445371990887752745319701477579264352624312010684179434879689032551473972265543680326983342255257188629125851588310678739931170559344041264444112766332956607333278874919305884056659748044115477689435255613657765574643015880807344593711520494195954759850087990799631925466037648701789444034235894785399500237593099983183449530761876100495095422823854547540042814058298488003785658155221319942316536287537871202199011680480906588395345201348290322452904116889909416624667190120994098884544088345349951920550841141927890911839495721881521295324147567357499167075235726890874874659554568843286468219180427719187281855667034285333063364241034595779979079427678170126327423299584405776928942178965440672567448056783008273809100678238188819459889684224514699880076581265284247774029559747527657998782362859823251725033334840853033694605617422620384663424608932281834423141725231073016266142583113346347433665101359365207638278945823516263025242123123333393321343405673288375419541574992535825776517754738839202445889815245276560577011723800015834611680218187658965907907177244132773738593343480215891334612513705530080978346128734633242695040398339729625211906110690219406295575626707906702754277339676222541177967236947316795742893660203746354033191534873793121430272966616782812582565456723020866681713742031416031331341313054976762410663072122816459047174531897423805521580731921530586880395480234610463621103410104319379763420475841627076238356275945072612116481516797877356229079655393255381703134587304153913413212234855964716032047477776407737020167006263503202785534590136666974137049618381973722224629873579628485137792891001662499018178416144704547142077386128306190501159989705816593941532270498341283340148512200729819060014679025369747289136034070032787324865448767016668720221548268929197604958974782267881831983897898221510794005624360992636330854840723875235532769345222587684862870478211353206548335007677539217095947989776601831991467701235780805299283408503914214624175844510392383622721591917593900723003483036330216119604392664681393765002831234384391583212942539628383827012580281153541099075853878235193969035862750787524471299018986183978557762958821241048101860662373708738040541927107638814804090201487755090934168434761650166559464432706689714754559133504750115617232711542433219383690652427794558662139601969741274287191311675624340957368653183956085814530778831376904291511143411849766095604408166703740050271345068565429486038062659758292218470465696805949047485597276244573486637940532396379470282408298724875366264151743051391367212078630426389534364306504265624342944698337492516892472572617015604441927876300253846534004164844791157344293710091452619267988640236574082053579240794486205308395338007408259775862711079786682465823886581529757455525901670854515652037998528949242756091654875634979502336566871258813732764486608410005897500481281910770413277844409440447784901943497043835674110293323146069586783338852151753087539896598878381472707207984839407933347926732105159534985473153875415711159203185361317089929433604297153779289249477947888629426766481116600953771893989741998458526339098871814040704194634424252980549939981444281984417935653667954713153550279352608698319039854363971423027207544713228414135790648936603052028885556109060819429416748455135947357820061650546199046946690476133930138394865988521389723770239159343568250813884435349508845979157400908621754914758432953291871195005822235073650412317184977058637613168540902449379272808660470471423274519491909278409691736929692500229126059147638983074691689545743384768230374680990343824468296953225671419733215213293521976102077142479761259697445031872517582270476746968152982425236446240605303798675617560923588172747137965151395519980388467990857020503185662744488753142017799085381053119505616371893222825599467271749256361263221981353022138271251839707476831117160992311595224129671420250468770480091158089162795197492400355222914181173030294866418433564681618747337167885904453276859323414628762030979743463891100195397522407895882446285259714216709391381216220067901683984662900977703447231290626047079061834450721591778686180596383464512296210078400745680239404695167212173341814304113925726898225600652924041439607382959919038270458793979059609550830718877527923636552568185773589877342412771027902678028224983160111566396542760576373163989311361997565640562309485810641512194253132555874882899678223465661451578234972523025747895341326446902435139709763180242480891656914979883343877747122048158865833979236131359614897648287455057191808142287357549310162075196610457144438850048694408370334992552118322239411688098237501247680600829862219706247795564484652791463350873171959942228815796275454970985661695348880517982769598625280548435383333485435581131211791312789296335214989778730935996031111011349719380434702888522245198023642115915059028412330988656708586803706177763793827055272051642938081321982430896328144979066019079691607663877757256613276913253977174482263573081716629722623252837456170651541749652573579093648854554304111693172219675134927493501769935064562423234664316628861039725255658771095919655106310010330393599699300460905725356417931313244704109939897677491451483369633044665596075007939469497026681257389903521313415800364346362023341871759435479924492170737863470502463892144115824708750227320239719302262741969592147273897553264843981931336010431070202718154007462341512082914454843854407763613883654278445736941749790257941064065344049953086538782215386027875586248103188636118222636606160438624895803440508599469716147859460952830701873488413858039261595513038478107150466045143606228520197076493292803063513727595216177377072702235484227569787879816979411964936992607395964607177651553604092541094266459283889161904029309704872327167107758478642208847572568363906284265285272971862869598952971284689945901033500401385102674998271178478460431425003193308749499381485152629220556980511815246958045830586402903048878704584255401289257186077151785640689802980752383872975601483121038879497214092968324366747611640443276915677191910024918820801157102431578357286253657598711797775917214364225101790080676249819977135621118126857959627982931892353639535087091722480485053611538761836844418226940477621607190511009170595605685892979386274362445467928623115836116095118305938568241594505047139015660865987117397970763428359384179996347244927889657519461748039940683037806185282536526971411798271405729663795311880944270352400958606293049203576452795523444476339193065106561247939692555943015454018892313784834802897070376201322254641561399496789623278118482036837927774299637372198020832253335851546006682296046342011666855912341747494874219613393563151130944234946393774474280573455422273844430321956051312812506312609904437210541914979552432205452081860910391722120163610394169977664422062258895002355533067257098898752440959473324112897194230563403680712987417369557142586625617882146667428691860755188532922432809892652558356476358705876509910224321537621263291235402462402096578177383672369310459758085284397248071205077643198516590797499245402490216628980630619212260594466555734023151682292058819885253854716148261286519976157312200502777261295714703297238339701239403427639331081673670269964851653277298858350546462768068499476568203045183082653415578762903542410390579463624721331641641168704317401049757384822233657829057200949277942123324576937250339060516922660659100468508417457438698159485011572667470237273796675361532257317916137355909151169225061033502332589794226450835696003470428280275616340161843326264480303186689898425877186666900273282863553009296507645324315209983438304941034339737181720426557866431633808460941218258390116053020279697297878433535590883946221320762556760093907307894436109579767823085084870246489434849876800029771493088234653244688617876162697773056875760466637985402258820939459628071716254122556796678185070515543711820708770128029549314474255076367054495230565088230546027090649913007316157194467185967970095564458124385973989134065433383324924730942755142386211157646757704013323411991719364990422687653169934055422987827472112566922554004185695179519942269074602609263789227304816348198429299834518178657141861025625421737501750530226476304426783842719673568992956983770981922181441440876510139610956320687218764978179283043873152711683880814929702301878572368315531868852992234922333904040472247862746920251956631453167621986511026526803608455090359209712133761585737734696393363782560005405140943264865605809645645183273555368095581328434913709136915706864714587532429938867651989314047997604360598721818867137364196699709309677121860332458050507757538277128502123794400835314466747413571637760553093313727848293386052810884483915453332031587082824694417465256771340271098623624500460331201495491769625202527619319302764454005768203064357551883572561889222770221309482550938273611356390402911308853890679995326679190222009538155374337979448306330561047072953192521303504939563343092569264164303555213466225080882410121089946543623657791219633678866328533348397335804866904284494922374631525479517491436882889355991515376724473241793569534755569863074171016110363642828912589624198751085981177590338271960521042596942044797980066072594693619132857219543798618168892616000087047868560910345778548679478884773143569899695341546453470786257870786272728579685963422235888689162532146668083890229494833289806185618942168887239735055768638280717462765785657556595473510193852626115019771927692275348929596285309054413105955865464617525515205480685879723686973636548106464883697200876133860805715989162404527177359924551762440885634637962186321003983950975705397036595832382210774771820149065017875039517314205163516581243967969208719224617267068055366989550540274914804952133597467531283730367503128283184975352216645700487392950047482359189146151831090120360657579800734256890460641080701735630702373322622270169021399213926638648850379738172271800979970634966488488729111920016712287332166669175104271454917159379739106448062985601997293313945918028614213830566800837491291559685202770522240797687092572748554525476706402755039013498484657862451142341732922884515385435372493755961956748140706839380739538520311339039966140991843468668497047154175583715989670865856685161023704546735364767816586399586035172377636591973240294394172751370026119854718733232164675482009206047996143845288145193635933382942715767871877012727594609503169590939587170035017872914873827180982333396461219323772638165820975374487429868245694061245955535160741503989539291273439443307097068910990763012199338127039589284676902024813150805104962202422897692118663597241952897547719510844580081489643923130875061867203708152729391240673954522854936301250189960717891570772683312926163511774360030152888890283437782575742077121060672454481108713021471463220149409810097215293629465900954560152165776795291044881152420947705628728323232724929542212090127894127058034286740451274591296163013527309785489392264209124371270005670534594319048035561609068505239730336985539170611759997194047693972834067369520529998496842644925135361783974693838354296070443609370137997361085410087729592606368789902638891050582069609777600482681823747417482287274088917531234817024875384374371694462653749829553676601493782551892166775511940283825190407803668726435152630534424405437617612428977557958743445546214126861304371764635076900497012654298716966908696397619852554989109685483317371548794983647087820182584863869704233918568867239329313517761913133236984338821469171122702007233644776767034184776007549547234653606622269908672163256638118894065538444084014210479288276608392425937896971280471444663558299638385482892071115592166314105749708805637859562308385903407218533338792104256509903364787459269708586709119805731308171796795462031269063317388824012106777587558470724624506482645640808492264021153964397415228379092032601033606921678383747432101113444879127497603587129491673653730406840809962115839414847660606691906773827758879664539962809845543916606313891034592684221549246901719052138562941448324121497095619762048073783931958204532384645631034819101432453602177581764765811744378958155112443042862929058905143343933074152930047002662463952260596849693902814589776871453553682449355224722796578618659098844613641901893107751571396605411062936088289427826064439304996445065430921258898143989632818263876471160512716898735708011934548689062131067307651682932670850532233099127794727510291267294735060933200191261014924802293437261219001422262170300743986744072854925075597014930777366978642214734339950158899830259789014295377857876353197281447242380320732898312341676280083855400250685294511037127756702289596279979887591751537997547012306939388857786161725474849593471385182014153130377613903488027776054665131101354892236033774236805720989733764225303712977727823552344719272424350512281159963522476376712472122118785114093040734666867673227789280042945817710257545188840859919875586878090526473187045197197027388402272968934163088283996704934002074848353803115230656131194709053529711389060286603816434015927305145088144417043324560996032578619844413169846636751518039020017386107412847615921302635278760297929547200812586028200480257532855099276608989860197752877098952111877099529339946687006443059817962914774350030713163025267124448555792103165227075888687783460245804338223009384076882916763388123279008046744090080350137624081653682656188490675715799121844936601415792575939978142465720712417971533256601099240902292396800689092274378294215730682146815056965273274469974245447152843868255585824137075052970573096046987915817143525062273752794839702036414888551791689816927298441261686513244916674487900648655145081833812722917696709465387349762975761659262967064619059400613817876887537700601935645110146291800404257428865865169223525361754084774464764598302480987359006116536083156725567348652579945480431986746414513137765097441508852958369019488622866669981443218889791460156224989693444056388589915934421069695765454072927758219685481411521443237373329503430000806027562408413289693250393772740907578069024890708911656118775462629461023218073808742892421066664429900306070262660117749454972944800994984817102465435903793665421652877468213244730035985429468870809340346354830494102603616120468641860202041167887015060354374777274248106031695584844240521069639984603712519087567930508894326192113114546045250753552925024160146074687003754545841023448456708082105057387730073730395245765141924149557249250972201637432335795898504583896173570858177049585903154356819231505912964862252738245884765090069711172942354761600128269791999348123838414824782050280846297850948571316960204859118941019958294387222323683855539823776322430451385625057120544202075128118630024858358466140989525800134186302238471020287279580790812816555636839085981247464902584149096912497434042058466240039619138177188063002867854078225030307822896157691974184151822076569467598866889682365437844357022834818705447835773614717961528963658500847363366649420803754486032747584027561696272667356859952526246062604896351788982199434014541805933897768930439376210652388310530943099029968867214083023968880485588109144151096727443104278030553129121885527243048352912481618714291409473164305178974091874451882372344439548271978742305573522744512412424923607552005637768115715116472515822865095557307549076436077163856829688125763143901426329076831178983350588643319487551925623343631425089243653308242919818781637588783913914282599348849221068801971207763786161744104334647936516039227254987147775618571236376739269194559576098825038072780851810317512647730193983295555739405147655576070269733956355628022041094138089593074766194914916825305489708401971458057054836570461787380538555865889646889544549001420666531119047233215928638464813585258857221140948553817285232519441702548667632282076809742334797520654631378189055192512137994202120367027190255841905181690385038951192034174379504172050881966539702763002018877848034775064179067774467584965281124197912919575553882883280973257262397738784109217696722656699333769629524050207843498831968085168567036910887188027604248236408307731390905139233096308278237391063851058729114439134798382182358922643979475086894054433622909923444625820547137204787034521045104987872618714932696778251124667390639682046339406822049274915294981077027601757939981496569165836499983009731555360398578439882446888700664282274614226531280277302599941857448373901004763379880801122153094395138786847045926088369730745093524598860147349420095155524251218868823856857918055101834264427887292915097267412464470261161365538171481989241092419060337622816607532943750732986938827234905040744367819579859011274520414504167135300501882505225277266032511601237064568207036400711283253344963664914125040144669547772942906176081503816051398405348551567673970735610771621593434337581466935154286460766554890323518579003812930188291714683350447306380030846955357318124710127800428067948951888509538384263474367859128339543670941117883116764078911549966122406885336271549340742858808880651310295510137284027004157590715251851300158074152708396376331256895858513881449895323136961094468114158523601571084977652791834852787929350382964646825569160639542189679762184647708493523443590431431646237598041061960824663043955980193402259205771395187494318393191770712705103179509769044030917564766133062284679270800854016540457231707914021313138596293955756369013756399946635773121845616645099352406337662482154658086897806889951265138815481006301518348185561182572069978123345970622835446965296010137837940918488293920564799033284824718210360217907025759721973508056894064655885990817136443210536220535202421246453363556646083460169929970273219719151563565811154828573855159726679585074246389009461066948313917593042318493875984772567449054788835843282107071837813529838311131036067251885473565022731064673480454386344552335699625190291493917499313053378299241473655066228026122706473281778753583591446045341581859501983328483780891284731276575565261695686426585064032864346891232605377511417571085869099581154465816915728354940285507161446891582070646520548685039362723906042656717515525297650490961870988981216212080064873795738639670520811426523535739133966742623840142582939100520566739468893985314596287960063935913453992297497343581863794133388286709184355856525403977942565520446912878033352285367460410214307368155897169585343284916895947695612839962227974882636918908527274606415801739365341654099192321441166744906440095841629233717135106743985313230075158841516570160474172295891682385880345221036072104600964678285418006181610687580729327171350587013583401167916670136947990905282246989997739567779306085468065633728971653842361019764340721023977066760852011258267214377303355082029303431278143880224525855423172794059052645982587971594818409705552112389822464161066575430570978198420857659617456883589444476859711644623186329332034950781515894159805991747991491715124537278806860483187771638763439246208991452511323210158895478580949241417932497453635218179788146405323553486183318784154187633508260669728244594102507744891047834174234469892905424991611813196569959465474484542355938159026972270167016930981521914875316158012689820654040920737454230536493527286966048143262456793271558940401894943853634098038465770029129057913590809495749393657547644585068164014012849955171258055726540961076826799500111574858339439754474259702484665971900630037644954595319953453767570473802173697979889615935516298360053302141718022682627725166521268379930145966109113720137667485660075599254037545881190207556493160553025130991759485557896310000607034675509381689765362394169812814264640306830764683462284780388724711003070355296224299120765718329308299716390607197647558941353967437940897076796146187307341983523116012259074005279795378000551324138177027963991179842576964000371931093855014359380686799725371073339629969856655807308408871918261246042734044599069247303198584492340350658309709262919961528460562219003676924814102358960612375174419014884257294320419591704149624448256670119365853007650579869835333759713797191945116790483105923113886822312260080687189839745662426776943018755359666105125413980415055912786949454112716503112066181677172082341172692516734861695865418257427150594284694788521837718737287073145255257759043216870432772482476051004140423302551318196137055990474319209001085555156328312285637538071130081210024511892576298585324570463455397738608580769869918439078102502069433360491324511477601013755387393321106023900771588887755123370100160280959804330168775118023395713080223632469751699442004851585159596460262212234523763642147577533773288086379285256224022084724492655811687021246489447129500776254790609262889589500430336465785538837321463216490819464715586118612632999024620911120457736730866211371784552440158700155575707383582402870496849094524754936476974243058527105240149501304558387723825923293517708355767206493884186878086786355340436330664000774402688489949571294157297710490095399446589731920127550967118607527706087415486908545822823769683397471699334397872760547826158237306144595464158733878186913652461660332388187799955641481462169108026267475648478452547880838182919168470730754282463958544200951787456377901466487696793482979777393325704156655979238429065590741187880792078478791649384803005715010407045094092765450114565207287568059861908845377526012862116634857688217791275697205113019266214782530908632643403579484137125130010987398892762143892546023818123332648142158231195205497688867363233906540158549958819081024972350432103688833228543540905504506584442067788495525705925961107985745570371182540216441999408704795021806022983313085742748241945734348372646437621215715577177081606383389803073876055870138467684540657684502679144539756419903641503613610919727989611238722318961308665196649332327920880776246913667523901726345381041169459007066049978830269255368335394238068225362386521247493157756751870586327947710783065176109138151268522588484438060817460202490469193474615256007818654727620608978782623019117352784315108192018407751619922394813308459995587132234253199809667332429030228087920335375864180304603686377706359705916163535595103982465938271568747703207271282003311821863230423401081308603236333176441895325921462812044929469566856515402834418167681879470406516643900724481871769782961610000843293252856957367433790487293007084838609612468972519602655668250456112842384174665117732057692593359813959125862276631244151695428176130833892070868536511584206187315635172569245379568467843228440592190498234686550860937385297699832952697329562253347258888010969828071115063252145133851900725212746201859850896165165080072136146622693845997214798375046537401958733642659498534754996577090628453607534044402366448371263413216272807332709976958345518708690093407285452837340092840929814201245964385710347521951081741253991061076066190010187646646018229202556053406290669025280636109098458913647172505657652535197603548707940499015232927476947768075549123382130970035194433626892335718613993847858801134114957891252633233069567064229807069727618146733213045692797097816114132108851940732579018342534489613660356557282678288391979725823370474543195906233182494379822840105073985664968249181952388033892554971786395588012638050737767393372357901705545750205872983517930872321920902002327156927284104762119006321855552378916949432312465698674473125708258105175772073067234421359103296910568840416704106982101947547460116897363575256790663838643321801045921481647953934925904972252835142562107470531326854862981161173369600073685056667119554762692054921439927959049634230022122260174720523279230998287922070984576381806589644309608420129207926409263492287614321742072462887749824385055684347815690996340001006530535476606904154678380430104946177424670074395756662279833146843306263942853767882856922410057389941678324004224557913751956181610001656773325566458791021263873117880990136810879232519262646804243234664478059528689665409447726748028355834288205394892155322173337845073454303829868167246926199880904207240002538225921379270312175860755073963392537970447014764754206012111083241231730570609612776316105054979879306477594604129413451402036968734801849674022963964626108673026168000370111717152731081894124900754957766367125476700207476311657100470427017797736823562656674927644909708374304239490933266338058279980531570520353112978532929089387561467813558819345805742845688457540706656460300849659212539616858783253583711800262715304181434186633103713384106711877176934567391239294573362120413024115698175258595573688894654036393422666776609372164986872926343465134321201244486958262272781013519350748802288150387107019003915683023908307216406360824060450451763959303972150169024851166700010747812773212317778980819002973041247842879542775966699819923681728070413970671421368662921770212918119803654446316962584292644675277649716406179000383753681588750076606176946258899941269590012838250540102150352743172709420339330379395966380355914187844844099907279270825732864339410283966674511573581926217459246970007894678808359635680163293657896571282351705147342735465745697514135453016196262674073369560888431669635735985073951547706305722775987011297429389141392821149997031401235905244385426547355555875745151860709512276752102406059352873062043087804175052685580370643428642518419102392706926268796646537044480636465523205261563253981259481865724877145214912087508056398719133128221682462743008132755709888443380113423460536288491257788159040664191706272029606114409063772469552210531249275146739222048254040567576098486965634365384325746358762449101213864266417178080557714671246810720321904071219621398942922957335692835901604881091879297900306802953668417249634071955658597115413443795050439710554910348374114666710563569842048941763470792435686965287845918442463708695094793522175901512084658399560832500253073451920569723167165441399546484392360392965357795160848678097971814439990426073317273747256477063930325756452038943928827577051880483419651132550669583018303897276004372245312393377921402565402668848201746570995740581818751243223203876543634552047630736621482917473414398556393601271215648122821009363156960101984987457431603200625476496213716301817480838523466601457853517551988305988734112396356426322929006401576098671368318150306238940218814811675094734528767085833521957320823952086474019385639870518715938795148854550174097640387016567442805797254346515847807757877223255139534176391703560437641899446743228100865734651910974575883904927575360108642578286234944222247734400790689359078583332404899325076376994180363898768856099721495672140226424405579393437972919405576010919492319582580628488496650796498461380332909452045069059148490642161254699653083009815118566092871804031741756538726028884065554048856472060744737335013134052580298955021925675056152240902537018812117760401244136151257337775559659223992435329757404938844945368396778804174825659144655785276999481922854459184835769875484971663631583249366380099135426384881241534483381218900217008215081926723763902030380468477188836306549060674533242272359905373298890894715306930361384102363712457102325942621675570177047892264371019229290086138235715749005870843389570388204180139358027961264911968123648084742393770496854941307348602760908734874083477962622300254933267067408829057667506625975624573429047198327546122378147925322587075476655843401045062973110536429733925306396541630360996000589860910468372414218664708087115571345085748255050418179532153234055868316708659079162955475877581442918242944690189421984822813355260996896737814022669680621199683282503950907320437271944321421971790380493116744584177429767221857355537237939142712003612918947976596682268847548252852851534774634477032207142839951981731557251555130313733838499811898122783641016293512261748950131275135025072247854424489475612348369591631827974459228497706341908093440048273753923970419293715611524707118928044109102890464119006133559173589271510947059441192794702639631586451929956316585148386215916120971475762752761242078520098573482095570546645954747266006149756655313861098431859102883935205939115498313524608640875309996146526217733502246615033940798059800280771879374375832770593154225529600565520670676093073926675120311036318724003050488083262952898918953214882563435608160435945707954704638787072859602761578925367031820680652265798952656337016818187429483640020381838571761468677475892593618425448211621591592578682555446385130149207337575153146324237703857208107514667207317160870318498905741473177064339816244302231320553883513064007912579803816251977865504556586256470726902463582828828572469013869822201383352773728321028320396062298878574447789746346418691727610566496288312496062691926481310116735814138230281453896222693786924018518923582696977375327396242865514508050860944131665708247469378375507444024989699068603667508465438763150647999930458776648462607610510771361516100385336618216988443701355958335832259727336350657317238529680371498098127692883396748919815143345920827677786022028911365730855950006747814701706150963771530778369753714329347248225965967545080171273145675054460910264885250078433556653955214640207444768765482493994825294077134096870545149643126185771850310575407833083774879671359558713895149245612151864217417566247828378353816310622300748514228097215483749961600973979482149711839682844257551244850934996588391730751518185570514207841764291545178627144117756622358234297335786295954775546955096634661356946691483202586450526172030243626012786291303799532695558193499172182837347036497705436954354297185973297775137223515582098220224272945558063533128865015914570179490631518747422113896908125088631114863401368067761369096366636077321231429335571624852801747408322826438416770431954736121601601511651809905548498311757272401975183134653942171242410235660710068631849307727979002591597596596177075717394614814622442725912734847195591093992395641068819054999159040977015983323619461407962415313488085198735868537556384542674299227328405891455535360648501515443082808881852917219558841739286317585452017992433331108151224243131063475218481299607117602097999756665549572576054996275507884986573985213995982985120887749565106990656949241200152088051236170719895020526886712559433273442823030426457523515462823617608177532845333930696495421483220121464430074527420386071891978434196466021320597478733248624071240492846933690334846256206621099815179746779567219194903430095163677281880147361549715069934730474758425931220194082917915179566927198306413826308179888029072170669788053447838318054964958226362947313772028382504955391480078105705296544684218715462853331164980452841481549141712781089506709889139426980646988844204075306174986214330394883850885088312115290442517348250773894469277942089871644995552746305800806099575347048015124314882679437858279540796290287835775324178878901366837511395916706938954076344544978884778318023434667720953950249998078580492602894735913719644387458284132395430509370252954463565701344264659205141129578108203252000055164844418422582725477405011312992171532007342687314767221412325086336648660746320937251857320335825503971833131710715751350978931373093597387173745213779596388489574510399536522732155713875440281451112998723324649812110751249686155521679435128650706645578373384860329349996960344390697918363934463247245524793319362288328030031506330359279000782978337632371252920880353166362226395576550807328835918255946551972457481985874241662375199480310745286880700528130421261626422581623584659872078200753828720532983737975131193917353366601835918620015737112984639957648412506830421771657393020134432429273699288282460284049834822817554891943251760523123212420032987350724778826652002980744159432020855354986522838290964610085027074483548101079519326396397920349398338039741444464096623579074400999318936150316749511176781815056837143442464129347520999007950893720060601408056965554112227496556023314176113098813482784522230332434324660392873582022323899957981765925926862769166696549284106807871751290490542073712907891179826386091091795875046213998608062510013364440014833834301650664337857053677838435823479705722049577558292971013090777474601740237560041317780652692254121793567663436006070663599423004472200098811762774735041716110455123343655830111690287117411710979668395021545470847897534902684289282303574213362808189503961827446846658272814496701609084391794192191974578591748388221305038229060364966030596130232952114136312600723484054911501869244618961697952151452661013080518978930910655405214357991248393829937675325102249353761587383481166550703673696949199510775753074499697245815162119013087486816290299682798340443207219518921641881745530248041406842437245268154098361337101826991546468738825716350896292546550672944804019346622688692268683430066158508571040160243934192216011373036922263806291256066142664007560377614676635167444453674270323562162118445309202070126348224477857773275841183608939663194511688057793237805782243503931623808611333657281421849836582694275195291605207782546766840840994771962990287398161887939489450044172833803039646464124052629394988922395775445208823287198721838983232775337798998008896054816305605402824017462004318197979699973588803342519438900836705078212105355935929128638902724922578585121982184963650294647859643599413811924684819721425919101811292481671241679904583744874944511805744972870830051363257338775608706775822137263369916496120314133861312040144874805231742533147379162181190431827741638291607510908927985842240376325052632974935783690466701719385943063747183016684749355580657347160029726880493188770726971252024834299965733859970558350531389548185460580339040203005436370058967287674037097543287934445045848790155767976424767709783353434483096772115857363410751582268195014283993794748616545579097196570827865018769902349956495432184735755028981362951184737098210838055196456714874021614976355068311902873980593596104991444684493221156660444819664531175980753150213707456288041960514855753833449618449573151751608405283819452724525719119893250442064512727127602196623528268093906701654268845573545402352301345149711652482444988475155486104196112586927668536293666927427186652875639811855447454742872297954742624477849818208484729436962204583090442760843975087061337964779469094904169375115233626113476948634544907470484682172165727264366244474729281275378444375831252798325660093790157175944649879125032304631757466000701982486437275082916232824817229135215355116340647142539809089497688922912443680542015055146990376976363988175704964449918474410650980550011316142903682494945723175306373638016461758218799678371517588457038355192488614514180015042128016091707633559073546622761151961703547532191485658940877141273232448052481696039012329420537078423289769118951520589433471281585972000757794236613897603712088080018464909724351533026514063388829515959564343331326419587881276940070185080903522368708752208646970483373420414245360120897990698403424947755158559794555797275234121967441850360451254281151596635263738075337201934487427554687817913554231184714605124747320000281250500767082285235180876115774918297904396675936530120718626170902531124174035505572317702078177622415653541445104590295356882897446483429096573746975489815271960053405627833542297216242386833610805193020918942869559080026306258479929150829067359748505223728895170967518173603881871284404762513436553603339986410900993175161262068132001668944614813570437330707609517826563992387454381124383787071157989888526593038452183834441937888365671856849104105825150318440563964877855084952387317780855365922106191294280261238755891720510606581513805871374963458693441354667425064788464014543314188776104189034141279028946640616161960387734897734998102720866136353011456030173270052768683628760517586495423892413572597882736354564256756728002434906584580925626009869819276003578662212929199363062010242528096603212737892463336352274829065890052029636225217677893076425239775458456674107353859694677084457688621094936862749437153437514225310191374651367804118891019210143259831473082750079165195714406481445744247296556571027232420880980429790008910035279620903618321861040138026186418665224082330403677193214518297233906116586967912290383152800699488476390987891566661065304395805998557421188977682967029957332748139726170949811581818452726199219980843150192443926099644303894039588840867373788458014082587084387673041647715326487620949112376114886131282098479197793929004879795295015545255164856146936991446710389352542412432987846667224735584663969803327371781372542038676535981118121139558691897518191546000775870712661940180399537160413319426687730029698192599563505350736143547560284354645877715967822475967038519472978387732913901658885520516061976314655634889139284455367877544624585921523379787844272921618593713865001707917739627231662267736824520372148942335743216545515801018092298883268486698670871067263345628082571037473160668094027177121141345657868744966276838027263124289355518037777201416056338374376427097287947448293132692335169357937650138311307635624400210408625101810043910387659285194616761241992467720237419682977125377860568296344911830476632775649159122573910784923461536344979277545960757152826853398521598246756755878170797399846907660350346469332658367552620746229372655070331581749359393383580247585913239383433594902430977786357444461252693102718956461972276135796664601961093303314993564150448906119798803722946638664336927830322055411504422539434468612387624867526582791385730931164623561775879998855272276491968621119577011674535667371708137287986919588393214667576311962196666360288399134519675887537811115152033020675200605661669546144366632130084957190984872363768861843799611089639177357666560671489431253151212772572303180129353929374274156718101701848331354226157713330975708200840597156870243835062322802042521528414915686144518951715087462137858685423584149282597072231086293774914535973111108910277674099754395946809472168836427731735203397248101695324032299978424714201012211857850636633449504288558815613793170620996630730158347356316040861309553795031155135502464668775828587867665675654307315747686637394884329492218422660001747123923627944513212348442946336810795894189131519400130270425155014369042846878259080239655923678372145120221675616985848118478325030190438310539325493713847429220020485496029972775495794348446907415811665419963812112192758765840800037450506100679056898745448945235960448741011193939266626038475876110657175903168030413158767269670554289954627098815718910963669208269922736050824550738279255689393645404530622133651413454992591035266524253659801165944290380028414504652622111808622230092834908537189679107779361056945749733424524191381756797032359438877408065914559535734262095168536099562492524489685641905023216637033364056105892246843498654644926302549352109234982772499132588364891147313011336634408790516271008211263133233199460485173297316862594355630524018483256532956696946373947282410166823204738460241001989320534335483550980473247396538795652616110169949437254319956089665692561110534037917475609030098262877753533241951132478698228055002230497080846685134791492576326793715761242707726289095359258082688213977900733597486493401715640465814815935759250416687007571059677354735429137749935421575983194559602361588553555414607155948158162199571266386843018871936097010554595370609758633329483554006091597135083838582953024168179043128868882953084909318262613607236223065281104125410221898909003083641351739121457365105144563551722311727704555644994674412205106296283174920135461923494123360595924405768586475404240327676538549481180110602510247030770291060767930318288496625024801847371715153684270770134572092413582070353433827647202077860649213473088257269522004469896170864185282913163648312743797038177923376235260099630404874042530895587018233478957584487058758196735591328585293168967295054803645905114888106361111066754592655383443826188823162065410557172211087205304113925203605627710727647815525719904314406844676047491098102208693718453433015832437180412436675692970770463479825580868792287384115799512113963058878352157720879103504442568060984559064459774404038205507994054051067233900105632717806729220795726415838898252836255381389315058858884352606864985890322339927360009567515327859186099552550507469837253124936593917597480719548525276766285609511166842278736793862163273276357947388702491538843018876781764355985519918321849639086090336961082373922322489902518937707619935493313851442902715441810324885022374867375355504853445435317282894806417909730407206376509088831981370087829023952424712075794548549284552044444274716584824927066047392897145594909732061042037591767932355911280099542162191133002826966913462162313454872513756721595328640736615644276064660894426332396483996593965320693069928165613913043619647623032941569706199062028641731739235989662355616028567447176412447727925025013019782483621453791869972545255008189076182937825992055875138192782966666007155039134684286088905443326229995509869404121979314676858780266661456239157863115693931795583169697069164592123164871518878994184709309904366071535040485116032158101717463878093053167717684498562732864679434314534754048185569615863428262491111339303223454265736104107665053004546251311711637320832726658289154224869685885093575389457089535574559708721561496110495091275496883635814521830271668122432050640137774663441198439316780692797828914689249243309038673767010492372178696165163217136277187630099071735059038308638530972377933823147459647713788792268468486033674340935513626951800451030172794208257958300625623267568272027926713737550088141367043568814124482027235407283153344593064866851079477204991513757556021395965126832788483185442596063679359597488519867329684875087622918153882639779753284823674736881536846778567408498362818095849063457841430760221367807025769346613636532850557656148395259095531000247031175683396935043639821238183945365532955105020077196378026570866717545026192311412315313603813697472388422778373429256097479090817299139994921576612399068661105745681847304932679714542895222808303081712957378507538345325120088685357729645133376007460474904415133513706575027284218693426777946827686722655445978627845954862350274598452867621253090449291726597482471288424850887570773302950915878573348919849354434423691908811468530156518468832767695161571269225642329553047168472159260671765673731018812829326107448624483863233974139424787226536696335871300112326253339340284436741966600077066522762890358994032808529269336403731920745674066372934698801454656615878489132422744581572743749182794441405273234836726361323047330985774014008092178397175461422616218730947485115708285417801994820729009259246523707569240974718524728031302790731550396109391150534577811690782710143987055666400045124115773413888352078047288227602072004540171050463557083515314736156532679470238925394812328630538688049716359814863542847321270186443260236949626985738023077262399347424484972492227805823684548094595361411611058840789611865381619049137433953212014209323858297108616791104913477575094290665454285053853053057618406019667721932272853748214802244797754500939991176957887922623813513348100722031827104314286121635994189850020552589569017958893332538876046098744027699075862770465764617819408539337793918855863740715426799150985323177790853977595012640082176596210766566509702454652156215629750529571731134810279499443635252608218892246949575443617802536510576190335133783884125050093076808330775352082420694558504726196720842247497897337040378580416514734591386978317356858224701024666453564440119859912728604180962361468097490876273023705250961136590749858925691615081605964816519760548153915445563249040856324294309766423539185825676086439602236198781773484019692240692956617529459499962805717556432037131353903308658371794877153662967583304480250490974467292086753295372074339878477055376593554748522789578985285591642556967285671321379003202641468243555349822376765935157563513705864677251346870937750908876556486449057657239738876690405251244988824585329168459276533354839540321373425499083013201552745388468466928079091183756737153414797416261750482738833282454961784360621830619089044836830988133966758360353940448039236268322698031964320600434391563603946055084758991053825985002737611870805355326119735319905433802290595783286882466185329759520476272940398175897622732203183434537622414468795787953226217555818814575575959946580561910130257045694322897916928526808209382444818033877262676536313307509902851505088182611411042026831737391500731919598230319918871811453827747383271746375478173476444348775742467795421776635756495536126146235671450885498324917380953303903826498069524450366432019342845294569056447778804008742439288039268017067425164693415007833356891007730241162833460084617180097306404230520567642405503798342251700784882887563895464390470827734660707538981216891628933060838014507189167903734676209872952907116019244802897257472494789771326513011674266022440295428200340487020864732838537440978278765492327843967267964581196900460112867024291385374134271220062838289952751740365674606780190886261054914660015829144350211248251294996423172819654030305912412721998748566396249166267628354406821634226176583704941794510850254092975871926352039826308962545393076443691418493851507023323972344928005251171832421789523242676315121819072282869309312835101117256399966558665376809149628166904617791137690668265457175783191856799797010270861245398766434987317658163510515623717842116604866456219057602006561116420351475930236802141912319523768869623929254901430093709161128314286667966283946513648196261725767716334970160962870455512911182669369517255763180131525469764740096490889842487499684268785258761154817457782629626593631999730177260485848731513388636665888937718977433406621978507686981287805415630919294568793312433239825513862004739819604732349957183818048069390525768110584014268638064382636841851085537965325229969458366170929784608459849127813439273187583763330485357582652663751912625101338390498063024287463503904166464738094647047169376339260994255774719571187099843295757241758026736201104444068613055766079032964011373015991714735359844270315824833098852945469094218146166745904631271187457003594431397701181862640044825429843320858719469937838566335000086782459778829774235804777766893502445151379519756864323575004457743117801252939946361396193748306168237886014660243589769581521343439765441684167414998753375178508458638575396372533519217138423057335360148672939891296871265207300505419446225096297507764571729521350988983743603688571192721916092008155397501288615150974306649414255237637713572620595629807555544543981340623636261776020631172115344624959489385455881177175635614981541124325230786992376975718184035109273250339101335690791375035046148868541640911381167250191059945929600650002816651330044125009248553705627851960497284670483414531689564011212590075603982280557126889903362778910851020434719702027357966060116322196046456285190494992640360502021570860568907077348562114525406303858134446197808372956408368258841939345467597759957679571769092847772090760527929909137725555229851202483056720190014785615445803447524606462687733544108033352190719818917353893807052536489680380994791890548748070565744885664515391715817191737549956162894755912863865068710365746383158197083940453216675653417878878963496843395596109124796585555669434332619314575439155516927745213033498665459506139335619175718227003006978436712065064453817015466905591624634093755154726508783980734662055477501544431493517931384587868129270816636353131067038671729461201551510402122110119319238512532697142118162838905868328192760997392244005145021744334496496931174243317261604190971083003876910478001607730622828270011971402136833027949816446406178436601358825163276117513493748574622419579818109662964525074255498975762933999069096543181806773238205172246205411221314019441935697608624200174585597435407881305031823615161753735183479122081214277206670696356239167152643043630053053928069077253810980718595942129541811100500714458463986477442755138487353120167013793189232207571538356171741618327781137722503155860632290203956828515762595176184314463327806264022465432421672913728889394093380473569370944818675940350206222303777556459862682742160853150891477556731451337874676043766310166061940483469285414617683260447155834477000863280540168996185733933891043494939320801878000585119560981158164821953752477439076253056235004413331797902191034211312436181773742936828263560841338509459808801609472779320471560674476061690243965603900078585279970872613007284622124591866515600647857964121228680368435198846995098494871972393701784249781188761394134863467955904144645864947806374780382783442048864481407900937587416087039013767672489896977311503251501947435384174790637487107020542882661410031285788030071729121006887751913450546813942847155981510904489097309143528706488545206951669000332326025866748287675779394195409328788693708625290824164638882619646671371081347843922490741532452229872206517274686112475017118519351176782822268006892579036780788082448344532882390143346253360531236005281763197205476311908049142452108281664545444050243553747102984743895137050042407210233944010581310788416458124628747993186494885722527553209783356140490005925339962784071071912407513969037661829038206311416614282228977266812086284760248469204058895474449640673560461341526067050309261004897067191980277089502998610290486850019453843522953848501329157570746149379760570139262295942702258521546281905579450039984227347926515558320702936452090868771312956967187417734282811610838936920811652572915584487684778685733250979638092195549846829485459306827361802147015557751156583888068710088572019838170060944960675317557059968995226328600581405722023060886057657361813255651765142333429245760234877136935084093972782500806965917460023931670465783649325732129228841430932565372587857084585485477302409273775409564803961007406243259913906983239762550171438408223604338970272733881730445416924590305679976772532770535650829459596832313612990637332855558847561623971726645319741793262435807932861188928793071734569489222928633359510571391309378996570980800390934326423253960064439514375322702040255589803401144979959939675330488186048202425423922766208788642265345195773014219719112021587949669051912803085784969399023573726058350513639352555695819203349516014798403569087309749710011000909784989797852316075423370379303454169042781488258372364870673752563419801653496280346202728372290671119654703668435611802965056858911987859642441971428916291462087188623720708368558335926070246205410511282406873508906553727898992359840712473110712679432332856230645819317493064341765910874485595029728129111071571099645610158612092446251669941938602047738227712274693637386215794770397857710520569545758616027462757616142168260522669730851068845326442063075590223919145635818259355812959317019956539375043234056034351249817136902965384686207426550186644188723953208864807853129926384993819001322277783396613859329314805654631930011375870802774671881171268134021726091682394124228123188934527746165795607091294654724941165670383583535480186913243217324203539881435649781299413702015184345242544516391919441847035850625602821234096757929085664107196163654372788065552489388884283747116933595954695857227652658954624909168884688517027807006592007540664441261489873482126741585538061244739629684043510236000884402202121434281169979378924474521780093181253157278204030696781139652063382913888548734036096329844123555668556304950862290648307876433700416519911947155948239287313463175526119109083658727592670417539169266624814588843352896157262943318655219078327985059426960246322412803308171320515515486535390692993318172136862741737068021994826233047051069703508874950560861669794098957699322987028811387841323368346967140206024818885378726468275094656285596736020825981401867379979993327511058392328718961597154821105395233629440327966477281533554267594017184367786871920368153133850074829964232726892794505833916808743339462992099047689936732271710866785954468019199093545639291066300875023694054433258504524779248410453735634776010422752124285811434942743381941582435353014404167697776417707115499626123546117393910903166139078699352155740491902611445246385010065124853895898241258567656646510229401411237074361206139523311414978562438222812116151139541686429736755213920796463563172838713580227362091326570469334475903689601100864042427313574538625649756334301949968135519320964953512325546596786202887952859651226755827323176232423249415579488291812743296862197672263253308381651833356895008639330715702375101249815786590730541949054060507471733468167611977333739346757808212480499597559395526429456316254533842402468172078302880153026642727373213778583298941108457791812197108951297522104380689328623224913169369916206713590805673630932230074319979633864286409136971105201156512411566211452315196087588344608647114081773132878021363541661913782026857108606707284845853817996197781817044120249016210621736458840886965741972376519190659805120317800369960768674529752712032977043563977637418556209759047628502807170547855511491227610728472467500570788359160197658357929582405647827131045688890796793872958515251877818038687281921679018027507140868755224233386771765256817975524689197244510172102678599732196012192854933440311937040957975654404375901555094019741865881909223305323675303993473669450464972231193566044878539449266916254450384677737445387747489896539211247395632801202380307945218286636934832603554152319170374251842588071666346872846423326778690607854867108939494998591380823926839341230126727566464276737206093076790455095445176346044968776662581008023664826513207170332262248944291679298745229572289176917498777170631563351782863447385832684471880137275862586502835318879438272901527940751235626381006015880734796872066523184441416680716216995767553560545334586470152981841945410680276921562880360869930032740326961096542002478777574451284619061482523959104635631932756418108403529205700615629107875765600151227199863590908255613990940754655068755629512134072835102232379764089498068960986867572689048926307861590737042751459333945453816642906078043208134824379318435881120822336118888534229726552430660500950937481027041579839189182459233317606918763211744904326454150124587305228253788873541120357906271305923473005359572506546586153835068298270960027467368509968307500990166613981043896948443719691885123741660751442057807943310186571452864784936407678891310340043863484273308508673795269263588347912463269638064498595181012875667030395471445851775083675484795116070685241861102639336904502068253391478025755292728708946418364392659169799887031522774063183519981095536294863528391959258314135686112023488824663295144820578718544977146153607581500921536331057499655353638181449204568122472398538649780537208603226019971125252943890050943791531019600115885863654153015030824076175178783466755590151067956578852268708898471973530688780918685379489552725423141577314960464428492470181828227791755059013541647807661391757301138831190147967673040750999257101645624047132473605650017394099489790089700597959488487073481052613371126253679546809411367348765687533058782410533963449913093908767869205400147535785616281894268671163561045686055625692506844874114828456525678138320775642735342497541986466615929896675040009941399930366185394052546635736564993744976503626023727217378036356874643781627589602709553600854683693733830484266092095304700656917884250697806314328117930473255815368529333609594432981618018201771029721512638568107988270020144673054768598590862472141207277430620415921238173395939039648424390625071999280004421955488897055000647471424715715040545166768452844025827065287829357795370589705058153245462545733271784270099322601915522932990972412560789065706442708704330716081761855877734209117983173093984358476393892068373917447376566061300789417671924390891287181930616537939276004425495200718500457954840071636541742154523743315192901237132492748528473815273721662720725868441248171262030683367370794535528252603499748657646503547745856153620557287837252470751320515482275737921709166992130616120910193805022857842028139148239645536195678051607054468782391006790036258556113027500715818530674772082428507856783068463693329163169199358251075068814520594670177583431893551602950032203426193301368132040545758805436247126488092964739125599059657280676109955875952896714123257153756606690108930814251268704959854560225014768139864627676057065441821851293012733124991936078486825682647376873348785072640012399635427152960483551863788421638964759925406142817845308782241979313845053147392659164690963799451988844870972917183583899135671389647838130325894401324526823887317193409640796284586262732413662096314207215813335373836310429977458072621338748270575696452527926070946565266859880823853372791214017534741084578492831531512508161907977436921508922696931932424981360424968141343429968016095353265882117931108272343029714335054552391294129441582824792084133721050464958030943035777304483736472075519861205221325498980575318440632050891420633814997482760513117270485301910999679772442350219400924442153243391525493339613515887375818432988050536049246223292523814114859733966104474907072634247583378747367875031048692920981087907097772842531638207095211353644721870236982851778469701806619583512918275340473773240795381097549445269211925568668313229558754043812701980138912559282095641285541949188526736130334886786663151208316273982006488872762323795705371064751102372071438866104122345662856671286963293629548882523681768860468546935104997920499224781303392985699292592079300066774220951879484355542667608452094886742499602442565230086099390191594548025606134965322121824118757205319801060551738362654905810547733487853772227693246285870381283883497983696587678503291875513377346583531735328576838472923723094099131060237246816846818196822264760443232505712806547592718383372997739320293568285989833038641545979596668494710762041921549370408889632991235905701880031288034179633838315158369336369263295241232900672740029725929495150048589819277636305806660659944745977265820803667602387645729952153433731277452582186440795251817731418622009036202929012892611538903827356651093818966077670165986150879533636000592078923079953886820331759434626069524435666439419263973881840343145905221082814496192791740669232580370240503827452757198681519018394496456396352455630346484063345315591612551505346555871618637366349220109672287985061128807557439749860809161251212620573377604141103240463620764336118513421728338400230972142546218579023942454468893569681201572115219493809385921170522874535815769577808877942274005240417395911387371107221966911613569398176272014382095552915257543785981957008861804409381024237735454166971692818304606011764102231886040838062863897078763984171422474912696757573791677975198991807487858674920367059563417334433046251658489776911627398691090197327775679462531841563796451875818093689498177150592370283024978679714184680572502335805894602307238813798944936425553560709674333786337120789585979811697972403345959935562227194557022731961907652618815144765489757625604525859417959772881028021434682859176155550861433247833584675866887865300331419961422335474018092817803677913153707418032801244960343813419623944884065372907735644024567191661438162953422422818091715194612167258829097303797701234635910213822940049038760271376652713214831685383343721944960694994825006613534898508713883938216162498225123740869417042421944889195685378294127705182824978969016672054457355270682553843897290794160285531845776470870941180463545602213826223549192831248635531406376462828265896029324399559528864926292193243786685805914654313023717395646610114714203065274218447638864219479709528582050230278717077318452837548436349704225582103960926102993726938051255456271354006484887793519032806185215718546051370050062284891670926318440017437559803504025740034161665544761720942136310291456218825954012354900585239985599509629478435292137349885944492271697798562044300668077201098209252682033890197982570697814188190540660573846832679369083770381472632307146133853513921328164395564911351302326368414248697796402122142300707512708921414252634561462713292070048370362830357591592060501933517240545591749688761245827794058127033256941255827093010859331505494951151248561555874328913029769710114760189766661565646188006134716296565030563394234368022323605289818571686346581560894031135203860256987706079518273624344095177946384347370083702709025592587229097439031917447309941613463884684546293753178307727714746996316415549536504379098608591348670225134359742917625336793922728766040730453705083827385499738261799820512942079292769258219314124287343869169003436210306551625290997916531729345629106123196113226430186790117688428416982088803009253482280924157747377832719204337875542112130038805025596268514435503732076661345766407614747124320815556053569764074229932016207617626086559630600245293201999416938756256363474128503712568527791818459530808669385048340421446491321777336983341406206867688742433902661903087493784258430577354843641364801283717257073854969633011063286257669008814497191261909087015016500270637950614864273639881726697957638127283513207077052874862700867944765815470835901755346280479304629271916625790015503379021998794927251098111034284889462434136883810357495962039906610648467804353080748589119622999087433967556391385309236732862783867651231848971539694559010814906174276887986329208610387745515150208975570845368631127830516498306893872734299807507363889671622048186411948777588852922298912091175255002388299855199089899318074453233444899129776581316512652379687642071340062518225177824675682283263161936273441959839046326049030576706568019704869639405192435516796227122591227255263148599595576712241741823199827533074782582978695559568896918491178713187687447193263840756253677310923231720966127320279299115491994217450601252333447767272062203637412405890684092393467695808284386129294272915083224192582028197576422743731574896531986487304517490601018589354194466831600450838717280647204150693557612183807592625937235973879261928755734885107546820319780245353114520901332042590064375173491444437750872241682674388548577513545815643177397165892466552197438621195814844084083970136375220102651907528297857870786946639382700850658823674956043815494763031668523890531085518950448732481727173503340639151533915166911205327124742504639854989557219690448485755427206805959867838054210717862906030273152638370714393790547036386611616779499881941851362933641946586361419903732476659761905523340340239839564478798220574365099737676087662683231853736326519853928566135178593253048425718252023015786994814637465435766705664365478250672130195563835260885566993834173762579282638031763219426845176599564514852855954411870672909169515289808540923393573448443012059453293179872976546498204906780916648294675635853820880040338034921535324309016249508094599438029758601577413286728202024783443244584131392905345350533484438966612399624876531192899338035536891961691253609224530246535980204534892772559731016082987697948623944807038872087762478223931180033308897166768447431993572935422559397656610371544354871515758895345731812479457750206547462935616662181712908292272234267111483977261049585955262017371980853932896595524333718838557511545446102767696851272229974314040612521321672889208271458757470164714333253565681732699745909112947576175248758041596948258022345442416469277450022721590344294686802653790890105190397106605445307398800468978802072750754776169884713964275873507731260107166090563018519760683477153814868708849996498475007295845183281704710780253256577793609504853537430489470923386399720396006484217190862604601545327332776103763932743764896353764652806567321251221138127572586424215110847714773313536574153101496481011634328754851739589266161099782765100651178518690069747787292002087314901176414784844824507086756643493283310130493267272074489453128880634861919480742872769659119023524342454877991140293581340805941416263112052203120656354519835203591079747032359165580977363306112197023663749783473913904966161978169304785444146766332347380448119461762088734347212578399060648446757305905794317957821518606854528176272945989972217732061940181774112975993400268799008492148332623682122267180068799515699175965633196417428349910247824846919217769189021817827313445556180356126787896978421682529408593758744455895983633083572158768388163030348227354876819415486606016503063370283549056338537703286649287214347116886797883767809190092177964016598285476561144875305864161555996658937837917062350026310805843343120400032495091862104243795807321294811853860945427876101957125188686425039289134749151398691769365975279329371984472710010265410897108445715924356659864633625843791200674602887340414670719849890283030145697122766405979619413236361061634928804121887180129439857281097434778331973523853047658928933413213231785455710427918401837904694936099045802409260930661111247786412366355960974454366051112779854657545617742870669026133500252237669835811980253614088156777809744800829353402202585626401047416538188621562633657569877050057197974622273859959631753884839030982012031029162545059146576795859679436888936340535119073764096943790116853781849010804159393756134423324783654375431500147695832393748865328845983974139667468339213756033629911724286323638718940555967001417843225051096493642138802471904419633335770035029631459280547531853188234450422952320672140633809321763076986132286448767315022649411310893247323202176329459126985702547889170069793695264918986680515714879369433409507977976949628799339404407241057780741960732879199003924146898281948712837252707787546145707960891952758054297268698788194233693957833620694568647016436460827327700980364645517162875315549283010182580817321950267781338557687550811057574226141508881182231873543191593836951834236995271599851589921932100749013008343171121098137033850907620521511426564088843350059028679204244736950696556788289052000393719856871763205334893878503243810955020232228132757765045787468159407603115265574428795512232699955314398582874757911911417725906375064125353465022227503093630690654630903044816201780766566320541188163782698918145351552785277963182038207388723705672535957799233429554719286566891213557001029064543032491896164090264582227892475963538673439212662513069310001639387964275266412783329985865351425080713159976094088581407740141132463675820070110279854585170651121088749462958690673549218305447022626938939838358107916950799723895986343828132061600505286031605630647708464150128453978828487524400939144086524686425777788125990154546495896506440726902967718465186189424979710226335363088878202002668432131477648484181851971718047577074081004036174606516197551881637590532392340439420182479269874429688026719934908787030823370955707774571241746396036100138792646459935767091152309839849288024562338853140990517020732013414824982269768302919695086517203941258185319827392044657558266148162247237914336240204403544275973795893034157604647779279558556783957509460909070150197332787767414457512314265288044428130864317871049748772064310277203751863692510171940594477787771098758769000753616785776043146827118475759604083287527791790098798996573700733098771130778938196959276496066702203099175152928946159461056640148899253300694338082601319020519255473494687985569205715602016312382441935186822047499178807186906896215222389240916520322554598172230566357817593306349860424951234708709684590761240589221749528371009639717103335514229100080624419139220949740809955473596603694700503268969373818351958777183777494995112993379106490345916575988730049468953917076531911812073277887534467788368316067368885230201135690496467376374670668627709985958147436587647832978772872577681829884866366421454672061677196737363829320625475597089934021219602267806471065370785821279423163787129436355385658614106794114625541363445850792925428717049839629147437525565777512573578929926612209857382581234270909884468293123052866415254720724559947588226817045970890932681791772053410833380502365794138814903929113357429522305946219881055244439149656247142061617581231154090544608025407038605246894066930498506439737512238714978581835439437849545618999586239736848424938536618627953733958770627750301839556994076428814748142741199152414032963513334915647825951296555042065083980805408857929909036163764553568636782823914875255170361247901753522941190864481103405550697237368485036872958564892795352920742289626916872400410980472760079649285110678363273707866165144406139706150716594511327044291740409733365945101929701640034178355295139433005017933575645112195941192627099126070773871824210343502223087283767021772961278765080571236040312488154486766139874231972887169712653912870727299525959570617318496000165908991982606461992663689567741742710281481280597853915147412312062448568583329673659779883190088545935884132516177549826812764895630684954502571742540355450830979264821246299813097923674853400582249520007959018272369967287088312389261908447150973726027896998693165393985436471263493934342302260817698525434629023999437468148398609219538681470752507498116639770645598734097262035161082173384291735626225299345298303638032661971520819809749093803870407757395480788007813850382025156242700923531513468852778383386315588960550605020581506943345865554761130720484471677120448072640914774770041560136999424602959711534050115066781952795327831335144699064271904352359967313367325628702214426658134068202752441750673534964216421684438189951038376762243122232893189691459442632690953925654221968696762113394825896485698644922697449209484872945060160891117356908912807555867393131104684474793129287054520940438802385651716256001081294768441373232891392795400650870187225988469450121514783875879302051311669890262742651979876102423364877204674012359268875129713471963087481148776980596158980379052623403947521426291984598451624784770682469929275531354471110886462537223956315225213382252903561556808923013854407464452121388732122560694869813098581085998213408526739761240013125336514127300902727694166391222263391567674075290334578794740530315915047042606845472664222613195900310850051319256873781189304646432513029685209108482180657621154720471133326279257161964069950729418236125905535864576878826215432074286096488779220848065152003379936534357372271974556039710915804180653140388374798547334385112254279755198452581768127452103180062871174551382413126283613811273472833827399912957944962148146297233937476788949458986972382433201359086152287457012974096453132207130761526286488960608701969586729141360678270515624898865287782235416143602578335498866990095414483489997865066722491993184110913168579694932895283953679099460499937834197157792903955824304396240096655873184496929735005129695272096062584710820636601759631542119648509495888303665181232916830470963108800237005443282632128081906960112529730312367907537750322220268283738070099290311873924836336859146559735471428336317866801994431542960688441584945307527338410306228705607492423896360936202139850122588177136294779315274245735750782670001642091554975303852707909389979907727781216053471680889917964359058480613223716769398563213373457111651350978882635187289264733268740394621836106767044736427754461913438515409785143831916611650117564498694012480067315551129607233451729780830769706884157513182239649136784623898692856636195142263467363628024998330558188517865902426353717249952449199871352247410599446377182480986550406029470720874418658271732356572676307035477524581611976821899620360246257661689946850515041405785043518139651262688127643508661029669058190875292702788115722349490815648308429996255901225365548813623437762535246369152438222166608488516339003152634430437850279196973512386945334107226290501025758098998169353597676521041676839144232782810598584143606021781282112577845670076277475976688090460753553110304584729180160967849224241483203403670236566420270690639439081485629340388251488162612665030354959391904450119357744350359707601984668431272980264281249520754157287069127729977844346686594213560810960149750856350892246220630164784201820663264023269887835174015594454401952194199074906801599214251530087518121673239673747947528082162921391127443777447575093568564596283285975207932040676890747433785165088032463455234183929509968790090957007563504107911418575473594389915069312566437839962889509441698968895917833333299080767567771249834925726970654163693662883284850437671586128881119831747014851865188374877499626106472230692552903404174975607707649784123144370013627250425625462019921038673222276632802030796255289424793293550805120898551846624289755792851701079245496897788965526567483911547404526152928363383710971633066951802245485098789606970151667012187495856151608716974922398128373186917152791636770307671104569293985425620740526793424497288950063218767782876291378886964212668974129318867697749367472663703684883517762283156475380402576320433688935401451565382236083776802807817458148599851647347734967679533171936488687594004927724038565468637289724643245705264122043778793585045734000377041523225595484347779145222665016574880570880564287820105520938606084246171624226179043285082375693048377687658052614960054869839632214557553697423176321492529608976097143186091018811694488508233413566246554437327574564180770576743538230913558820566074211959118747078593007575060667438902787385056945111783554591992781648250084121192067606880830412793726695268624936715961647329415955545859472640373383736422014346933037973350879733908530974119925754299857255771925777246649016570854273417673497694420765096029869705009364469443375469398851769420509367799412171127577446543176962795797817834447275317384287156093906121443473785467152279073262281890520174157719984470783248200353090821466021929936116643921286446037960531769360599888291682126877942478469983277781193726846532391641915975960461176098712881357606677554834319351419079385402774215215494873896448926091604115510003742781076185713570791952584494541867508154119077307269132268413424764608835023770529722902414049017177431376419020757438173132105573630302564550746164351611042121469651483517521851492761500917438082044125309123792639371219158436546341515947155893956601712055037699389109279485047753189272038735051220681908263029984362760054736895810340016863046218164851887069744797437638192071220070593300377787881543573034940030681452944388432009405541895329472307673113334515000098645983145833666140194469604408924724919930688903239980156018985333663291368986363876569234689150270782560733722858175265867060232726597275136188494780328370285414551588989641321403801167564518098018970310965222264604055610568880204157794864920924247711210315457403946394655472560861351314651686734576732191800658171110262908556550639970292582713827570337768814915730678166212006988933407190909590613912957380308944328732099436174567241445820334831132126227390818523322452581142372894433535893032127852501059096215793963628739217562112175238797567897168984579323636032550678852727216394082287352844433086620605177637400143879206470289970619606450590732071696290935822732125788823370175407480527312343400610168694007746266224402446086208016229795342011182810684095650582789643631728297966453083208175923610565246416586736964772878235797486546871799128590389978081065189597289200232423412460233278140395285772565939569572251699538376399772861549203566627578336243731509054446648300697890003216040406801371587260605083199431645016328173761844817527454555375944519647159062071202366834668338609417191116295020797828745128879668572095128577578598608365122107282277499301532012953205943942024660889437178039322766842703994732366588940739393211795902166775094515269913645942715485173016316926894068548568402051848896234676695735725699377535100847665875587769773964274365220843561434884705516104159780538057650561803991091989382949691754922352996969415310239209073405147572456174468849123483906170078086642156908107932132963827335266947173554144787840215925677407207655993050293216395400743347227316110504628938283871373245237891317009905135258090102212275754591499505700709305885392300720189040125456225872242926907088211299179065014216635840620181701577519837353426022148359578831720939485279422334433882554749425392192494469479886335025917997831020304350702272905669731578154407193622822656951835554651181618648028480261914472285546187578639817372638086826223735728746539894820363345637279516228154858809137174976969050752714034363604240639265167310864859362081341701789804193564597733573586858182457079602152199734734373757330708957049111352499673131364160092751879001267422309329574613554205189756437817567736906701997346865006690861467841193359507131181429564064897010628780739042337552034256799564038887531875421912181489058110046265165795807675154988836559247895752751380369842680862833327161079390055433189181258084134762094146386305481128720315092575668890760415733949843729656712521675263315619673208747125627541406628874723131823287021237752469074912417244805657979747487020114196763518797686472910306891349957394534810310458722746875374401620511121170993470320729603087536982433503617313815218500052631285827541416327332161016774075912909358372118002381231947511900507507942555724138354643644516090460888732802468589302510855988884004469538832954194743045360110135896530886488658534426335931910443987704976165254326965578642074197915309041608077712696374536590549777376095963314344195971276702949789481663201805435699490207743033891741639491453707838820746769622863028372478724003589712718526885096337181028599377154479434167159783196375910289218680037820692422845743904671195631426629302325585717630690675078792648800229745079132201825456861400541162568884798341990032231066295369669925049395120910527782339917619584463596363756301813663314649436512899950588344941140030461947157278805856501118092790708924596509418679514653888551744485545528568124845554967694575135001165352677752838739015851059513140276753330475381968990757626368061673048274640171071195173637040385245075649086260249633319978611259576220214408685651068692871551553614934522544339655244887973809600126714444371562811625208995938274604643284785881977902901192454973135430381993739959491700734116064873808533815437277429664560894192034031574692222505856008395474621068462209788704710994428709606675516770443955825186959052879642777254852571948633618881667586673010575119327462446326652674332987490127281462937828136106513180653766101999977864790866247571005669438887516764421242733582725627524379518553440719512190542766096137875086593677538164785113277982733855339260376946128860549282612223803602338244033356447973957075556112461900644477483103264879111594702008839699212206023668166063492215768858826183549199551476309744795385902995236415365239928877825321904029612272275958273218696855898210435816556152675502279141475889282265173163064529791407939350850329390544943515125561131210157531928113288919874348572481302834485078680018358436308609722617812631684931724486966317681088596703903037401620576221092325499743787179873762195797696615076028313515211170399696088785649175359132221148863445630316157274623605695177740449344310793440386880368821462926738508096684961941774820293553918923370597340975373849875453824211759519011203518116932952916336049119454955126073960282130942558003422332914521105472234570153872619524537383973537986340498228074431872794840410632987852392091204825258642944878003457990643487292851479421454153743279338021429314411540672917813614757248565044726882917071903963407716239178359507173545924522600336486934778774309450874749667836518224971495305338952351969514557663770367846841245934688079309948013282008357053898484792124014182045346766150877836895326962386925550059962507103618146097159331120219090399244736353816690331761782780486306035228067428695387290588846546397368692440662850589616707268302525928585386051858988541227247468641833553460939687072997605624654753702966481099352607362464095348908075294757572367175670655595655331535846034984118777091280598111176597397303787687045287889741762811130933116399347859470306407812871503157493877335200695271799685000202309445065332681493011246475766224538770039697241025284549157028256780050505078105333626433391301165489845309239290422101090042652221646469279461075401153144210948222338112883242182373075158061665726255013090991946894857634545679968350198829811499541267837724177112130297537093188688589188134518583394122950760674733253805323145087878672933780093297798622675426734390375737315674204114192427966655108215491286860641480040024497374736934456944450003474026986492993165492978662667014642063151559611233269792688850801283128506043618279261382902944862955376653947423935174361997360560892774355547230983394156931917847144972344137665060206013078176499845567837700102037356775817389255486492941540212050563645784337878086714495894298610696997104045050825827730756211747349225334420794701913911566558774747828159226556480075990023507247838341394865967232438191364764435067498935342052818832031996688116870399657650091586163600048234370142100274744568940950507319292545551381714709120152857430186144693674018480892220395616638376716649107549185308125950148370473276083006888439188422211913663566948520585210477660391542161822284459919816355230585489532139192766232668093566353820397061334005834095266689000765141065356584393449742045056501643024087923674692047795956275849044363321257648194888519299636697396935946542313366218595492277743667809225089372642132684568196121769085227941408743848959375258913744325235885582399368653169148887092047042939068968838502946382067106534594323471693909107342579776435727872953436244813897304872170518983287500916617445879447590345910270312449903450935740687070374296667169062833693959555963256477394610037539609058358415269209245483023438645809123166831057415044405237300712826674312590654884923651891186495184836653208122330016438667988888768573562631207104899164175415625389591183778116875499625474671030698067593037048048588257733089635618039840279966047130463430577932890423940052993916661039143267580434678805481537785099422254488711195944636405400752928097192599598652454543570606763940739741624454275236898727610897337637557605659165525667301700973122829100287016299673203175841374032129625804111428382208853801738772904156750721405563069565722207876930938535024397057955908939366521757145515416310416006379433209154593258392802554312490650247502065169955512728939777082791831692372740557417033670804666897822962869395357335531886679596194251745145383930282201555167007073076456196153340321899277626667906760370199593176601954440583565918288089619261161493689471210980819125942511302250914621171694870397788558863160089580164578690595288635428402180080055875927662078381305118564621668857102378541613935086070712675007639764550139015217051942620961179430026523780487868189489453011979798204774705339357193030040179247515705047193508032149922182122859393778998506968529740090618293759367675236547251253109499390720750318283884596395134661415648118508468156635989504811643317301715582843647249965648809457395066793813580347460965562800565146058999206383484540713831100911409041539611610568046964306721884204318344669251622981385941640569243834073605455863473853441379671305198438159740805553850375187554247886615116934377749989368377146300323917005722359248020558163259073232568486014825361641587852051618794175124312847374676624630000982038954403674742533759925005436739773302820900665599633069572079126853139128506960174533518270428137833992303790024183107868811301085037239127952440586265956252511925637744916013751450131284713106921913970128495496200395682989512394894195448590969385762466073999471986649593065849520314272439942100271312969184832938265958715659668176410564760776588666991377064432033056839214057291451613571442699801428429118176256447258737647852809145350075899193777826729962562942329655389611072016796837122863446727053400313390434240967402634312213873049963777489244616344941374316778459755737081887796279249955578133798094910475670586572979249364779700486334636500581948301761231910017247313961410467402687191751204648868585075483445239189891402841388864205921092121690915738641122134436436662268769045700160323027439567520549992706041690228943933793997860023995718506567917746980827789537790947077781790765638264521225083677939195469413079009430114498866231100682564166270565326361079341361134209341689591631322391634914540403369759822459982530710954394238091889100409893809532704555096890635154093568286778188278292640754285966721309608021354063238672898263347826580128545552578070181315007656502131893131067642272874712345917996028840332122979660385736692895097190977032339180865621571192539018106696400673253590520411099340639268457793100608447224779246521583291734176077347665744816961783522182077592163125252054522083008503522021191938323767011863948780240083533974114636622666737738503388116623021390622346410732981828868316085214359680446822978204934551215235855018850579270752893191003985612156922213540688431076110872097642677982632818675563549443388541621048330277171350838309439907521029906097547139094365415047369423552297994409636631786872430430880757201866912233722706084415666661008536992329297910449415856113258373746024876403793674374869039116906118964382461776244882277706881488989955461772164597151907385585916077123180730562679774740226546794179490909560671521713299775790020403130834729936893340142203354091123036655401211775760949014094108826153808876127128478685023730189966765726920076910968906143363771131394271013470633340618868554238239483150260818217422049730046737809254499392544174822670984930920830763628739084989911868035431232778931494688733267369196874392170315337656151754036417363112560810443189935668977974563085163236799772072803073194514115158497657587706275710653865450121194021062403494402904387382078505212930635216778740055659913270877068215076244245432629966174263649426889261319174351079884973375961854320417311385478106638532145884615764876733191092682586900942487164995626902951116521914468442350457065869111204949404011701332104841372081142310376910797866701416872008269757255747419321679162963449684194263449085483801507836881507667373450773296936819582851523000505803932844093665450804094838167098632524646781098377391471264034750565288445435971643587645097072424012493232513450774744835532299641760143951440634532303573717642133273020473052387546930604228008442906865039700461821438120700196483385360997628503897226035720181547090625589209214782919506874026790568972651865079327552866253196441913165999889846528797411168801364808748432927386140372873280985808666786868347959983819099019520099051496294455584097097199188679049998980042333779451662629326217375680944039634288841946628852676420419201215495062358829037375164573602793219456229989498088396420880804070865519717373815105198098776697212181833814758973221849397449520673904831602813578227847391553301649933054942495639604259963100288719294412065764514331823342663833982370822199516678735864826763072135145904843388472899031872482147222981098324404583428579479087889037470702684994515555223023348482936917359913672054277895852378195238453584518495698822945021223361320716533276545978465601898136893507844186828263567538279156272456671980356762290390421952299487354932655764453565274505519024279988023012295749392286065626339343776392826142705004073315097435103959505947686120822861775642001531657805920290775340353029672726685076530246251024387224669785256313232579052531638754296818415500482142530089966123389350167510158969866118752807947626251617440510999944261111752211401266219858318045011591796815325872384112507324371655326716094050749351475445076356387718244704530490866830505456134315693156782894696812370112328688139779203863498316917312788415028265668747839009835200201052962957484635982908495684369931470896137998567705842394150406485732188642160051688548899428622465830652598538232064365423137954323284836400917145782694923842246523730731609596382782430349942623481726773605391900274173680156863674752770842088698380237311851388201975341016072920606184583319247091572463112355585495900068067476903694921413152288934982683104079839499011703465667610055062431212829252787468407675993759099809749679989850701064305868125965260233983142683626361900610897427656513764130791945196693226751920561949236584265379116859181622959799552305932134887203875309118911479364949686153819172047941105228283629649707596705309505537482589439195867172977171879143252982562371143370903317718441685289704734769681498627033196633941593187466834204124657670014208963211021961151725905378148788511782082476427609875364341724084099804843490092904229500105938091050943749696121870459769650554402086076043973698007575416893639005166318564986444507880430889483358734091736010650406341144669245567942008611487580298845779398779799691410984669325952773692282754196089988741596740994646605712707824353896875822213206310960528220550996879280991362056992254094527484457979214037765156423411830571273429239822947793361790522221643281375849182149043092179925180575437469144419257484757744807001454044112336789446593407200589189770356339257471462397139990273430186591568332084734956857315295086891501139072072633261062289681538047008024854220036881038275632103432422657418971955244156247126057465307401750931012764702632384589917941351319833529852667442314263580272394986079813902034580303880407508614777223053529414890375313400687384508440810498067342174994936490606328121046167882604385195556688125668323205879486271073348617774650802231047497168906563250937639178704837672393516969598741557045615870100776567474886000685765038922458299413074565240504320550709430038445694442102853989132338995550162131743182718519971120500585900317981856298004848116573581950922293083593987175592071941851038220501175761145927638465924839020283538040018322170799269486682944821424943020076197970950989144164057040469092534345185552192936313002432620450260973960900046504461665054636905883194888741571181336779112998625830148247219040738628796385278883791571115010463314419338455790314395607971928912968295618087299171185502671032469277903535234609961713024019535011614594226188758484446803390190530781453820813333872091114625096578930029337140463938688575189370445351345817937585820566788811143180604504706286094183637151712611686491376541315190483024360661606189614282831932920131649282966935594074584259260118162590521034310717193688347668528732997568874978139695734504501498169552248344606103303929163611527479541941242309662091833844343237749822625722910268625868729469576096552379385933455735660355657187759271958030620613797096971142323715883263627805299346551803348129964084557855722934554855484947598140672836991870290527367280381746851914030739106995384332851385402903547713910175577126643243313999512998975136116219887782007937810866693940061017994413794929192867129684797002495028745950760179451828363053343854699223043580620515688879115985871232577281327102029734476312402255853633015631322845901113734651561930127090855468351516500488788383577466802296045937896191749026265535791286936922857443338653384964467844763127691764525379561541398493611313022026487153020783020291717456051407500869471432524277999098824140270486525419106877042372521697382396793580208039539259650088729106873740629798953932760500660069123026023684126849093485680170152430852806602722274047236955968697163907155120333577150823589022729030799803116021181199622512976797229264280618228031137427153526246153805945021649164389006767410388764371227115165186351827821472395142094421691827093562225611524757040658981143866506717600023284964590698372130385923950495057709947433664548870302858323926513410181117098208129655856347230107804342429830478393074979785693261563952014186813576543702314936651363411175903833463791938282748300884027110666065347375505101568388299657810258521574242899949974497096434180926521741384129753797004599332408483665245385838318975275921407884719196282224258560541304581035514438348829281138579179684960143853830647757246841236218168251575164280278945185335085478292086049624806413216890373970893126629371528757395826950750627906487036104848983106595784241121754661070913746361666280817438710955506123400263696606033542281619647512796394581614831052769331785158147175067403459992854697592025145287317553530722388775804481306173928940465540470665328699118335148754035437107021567270791988010585221191019651529900645482104133975261025894377309010900556186789752968604997883269711327689661777716513780489206689278963683265806600651260458944889509463940249937532924633889366681801525213333620442889412912192830601723544482971160449652575384172838520391936388264546890682066416366124126713517545201400616908895094472311719506704277704564395224457440549418821579554890067527808883833521939895187510365608548349013443439005001391013525340994752105590432747986721886805850482635149123405462088781584672422647012366913608596376350958941967215923130064269781659513359814545413024596871390495357279422946317859198832508355637428049405302832142667072607162841678939961483851192297848488692088739326168749784979980560350231613970155020545731584462149793008250897039226086483635547373962270744909362106936398808624501369190981331680815194058137404814062234971864774466429970505051505427988668125754845929759597585384722382828609191541834776586337867442320268508070860369011268655114913881380209783356696439412700353642090768980013279556362728254988351406660216817745302419796740757542818440727130098129301154870316723536625384432354937876768800581256848922669821703516551067382749049444752999723068806572932657474352891589241888112909749863807458427967065353396248833415625391570303397511863504837198310724509528267197163328823409315646968641310685495939590202326641286912000888770318166207025087879632805906857933510797426839509458012946839115861557501659449303629135208848665121493358819097959319771691888111771575649147133439144506980051736919031209078532662417935707095401813368301887569817520628651495503187038636555187284338380463520513681943928661846268250197805387679039474009698161027073371169155987779625231428153329622579610616733093421898405720779830060040207223689871060997097459072113898689119171246253643639247864982529864850903987950357703788315683660695829831250129770814788496399856351364205390413032187799889295595693320798102621268368686541017758749450924941032970962131156561764204086973174941539750590785272338043643137419542955496883524351715388053757101362738031572732224077106641229899386545916900884301166911960517112601150738357379105587123749323309631547138575574637854598284764702793770827712789885674776419611013026563343711380263146541045690797151228489986541048421771980984102616805705628925565845559141831043023299377770615512377989643858404709815109011028952319061574695437464881179546702089037453650040046787583635290368210944411051903744819784571414251424489432054883534928075417271629367587961783040906658826862613602563912279394324768139691312963084235069699274570367354921327363566287688887477882358158115811703300914538244872266236530054413329168912976337721785219689667209454597830565905705673987604436817580633954983671813556924953743785687690110812532326250262800333548690468842273338334116371119128309085418459540866281180143243969581158568011422473125334755990823871809686174023792634757634036251381314447387020964658810562365203046899420731543081427756849695303891892637727347848374818020075653928511699431279099265346880901954214935915582462786755957438942868876843610774425822353902555717510789164980404903432001336741933933584738098207011547491750869034799249547773737561741854238342659204812834483383143762137982312393658728232635897806391455585812660971187721197477117650366354059887449378555418709161718321674640522628395722083265763749705311985473863560298933164871457163537218042083931888655666805312640193380484992230548508109958047628682118963886818464425598395305210261408721388030068185788621962273284915050287910054243655815570788043945590304853521265149399827936356984387714211053651932280863293353165244967191348513088447823776087979211465334690077008705789777353709849425324515258908014531400887140261857285571233322954376255736919570369844722382933728486851550772130872838636276523245803107091685009480335433838369822927506712908622900619077328240417622376092217215004607338030449240936673542901948443104658554754139357192402287305911127772380687226253132631086009504973955908919487546464404790115924369528178411733240523026681656039111099477800025148299025476269939999162464882491082930298276402969509026352913814876328998250383088546112260694141059150644076456499095250073521532201891216043642590519785759308224126444594912960059712166670969021344427035796363379308271392303323486177859294454651916267473127731192640174559705266299315528930343132639652506529017874331434266330855197215478312778759128260449089607299614207099358746547157628234141253130667356527755515331014353410241764966525563710728385023288525605643979786431628839765467557086286407956940307344101942406955564978200675224710733893975323013141878901703252491921030725574635823998383874874130194973657085098598184320938963438947687923138688169111460710777115099020733924823488781228722890084025278511829337173831394073981314078975327842177229985104520627034155850105161272205305460823149032485945043769948397142153881652739878082071222570502263326006573502845015928770301964141755455618466833966866776392354346508028093362414404532582236443814400861434458746699840947984832698843627763992066173190156258010104910168937475774439578785142971562983620872945939043444704036622443724355637867311372354022894477487726030509483594867450300443388115630680306627541597958016585097604641856325507138948622849115042277809843703827435538666664879301419206951213967564276030540444550497364013672698424020459561770094438801716491639163088487174984688545335341349374661922324864666056016325036324873199954372338426301002112551816184931310513757096514438664972070117053570535410547133191014785587276337435361838575937508410003083583131000323155422199171452128135568669802639592992269133541156850860688147499262074889014079579077463877411485460482433436639118843224690303700541869964476638448896788790878307256046156832804125429736208383424387691383798895871300475635841091012749463222354251763788661429131260702912030055518783513542993069220616465508043634284541296252767964150847023896804740320119104267120327374251655014068439197838364001218647746093988227144907232868012819237034975487987036424729717020672297373494959354569269886396040534152275779292238641006756120296466803641598972917315886204236124552256323853068745735452631656371678978559790315305398413658461413668532658959175395386271556763889605993984382806156399537849557668774385894279425114078033677257429003955229840304965330391036448252414657591548983604817762254582595661249800820527240640182247023051259511123772454627800886824705829366796243012086157125039448588973102785304661842924501823385643739497084674829742417604237182236855117883760796661449482778733110203541196628831889981833284502141145477511223486388587188651501287418462645741025760655524068904382326722611127462212656196727300126590446430109721967514345110531205123041671311376705109870752303883307445480809249167493614196601087916423519193603076787216211850410364994787845835104158578683727487771471201145846857885995694119119450409229667255171539213734028114170574159829691726423304797758881154319055254225926626185351588212004190038685988689216587186429683704539989331436663766957261754367520113861840446193234663823700418461790116231703372466377955176692801381623300812147251576994547087457581532130434602955419411846429553618805976157706060738138358455972961700500237720569663283156371600506548426270110041219217670782001198704732384926456905768051013117401348011154932159249040219907613009707835550888230493020163195172486252579881236115527861751613071394540303174526319639871417165119388726806263595402819432969437193187879876222583032580947684167828503657968239229867310162363587601611149667556778598483229795427556925142660227593893458796251187905314774031714792863154749950536152512332210991257703540205974199692058480956438151785383725498130132202421212038231037867979806217609186835454173459804899914722825115197012117970498802727319105507565740282181434001613470241628297420277925375229012019994660071146997779899637632767592923521150827327175449141879224790768984378505123296594435641845568766276879948219726996952211296750202322896715272882908305699172590973644787300313248644381236020037631290155994023748312901759471656183828489643425970467695379447329365793219597261745647883247560048949875253929419380568319362685293793946657908395301789622400104364780574719852283116354884630704401088765582633151624195540182393680820290367298362659116865618967169681627835949293510747054830285808535054720425655850450527836055477706806216204098854415659088734293124861097959970837762419943300995640425322548324499953717478310723669115273323619751723044326399856536884169215759557625659600988305282131653705285696431874311410716769003579265735729269309260243630793704562600552048062314134151017879677642730774769517444406151326303370324514554268124189759447663650118082402250573727207419631746816550332251836592004876123455114990642303786126908006448179725982570263484010519608095379659478385803067099203224761144630217172368210340047992377993996105993049183355256742079799740211505498632219623456090342601625237133232264998053511173726377801960940635757929100584146481132949066032858374980592140058015814904828576438635097930295158342298879783916114771074226689926207769498123179244185893715044494891780356170572021675975131786351767879695888945960596031468766112263598987321327207036169200310408885771247823206193105564710739622861012654648839648433846376500471156861835856029194774457824740131362892147435130232426324899187577372903854977756722082763454644578824741589766786848471754837866922369625248833434511934627585436963104061798920993589413100924719716280215619024284174646271523222510844534857758774288628351583744598758512050779975474951321531996701629971425548968151898000084402050466030715980905425662934543726048468479022630476028563311178923827843807513831092037653348868494714056368923125454756078172752118593886761957913505820682491879842239894712332167860745273119912141999760931039902740914075994137629539414603485297852153938189225152600773785244329026043551200714639059227064631319963106911427405802871982642382179636597315472164611989701351707430620233328780844013031949355151038823640331957963902850441768665972703707733828757906727412715259624973735117000685882843791598204205895216001913853827885047878258472677031728709011941379821018854441281974873849014329058091314855137995302908629068718237049471754390652461640402633165706874697510948860579443009426665763381053317300658148100489886864009987987359351244272985262357192460875108697146450385616065260579466800415167953796763555887724675969508101685398503852513786003329335621234829222871668311653303412274131781959489958289788548452541642872824139820366321471940016410638046001172224784339661277785850224646293493953501266051931951490708049244686535062601252318621287805209982983368550853178074368340441859453089475288616788222741062483808669774170810494571133381259495349603083490751332225817630058395654230550611017759310419245985640467447407562713442335109196010700635186229295092134741149263816423402731453128531608722226220488603232276558595286516284462299685612736582109168755197269269702907108259511437986742782175648337003194201192795234037382586583255752929691487410547148385537660065911972259666890193985021827749861053692293055302778184803421234871101903713373374754722936977487395065290596402772468159653767125889699727220344333678906306325682476317612400448774677510360583025468449414704822395934853438969087874099842561814486788135593530143207473523723636499167764557097456557479054970068241779926705322540692356526598367018594164452348146979325137648227357963130490580002243913225108348186805464182882929404247994802070047300968687636893523146350585072147559168277043782627988238158362812802955273340842358963763606576278221668979783131437426351920577352885594191559883436746664914307549588850342186751492876859203983565123457618881469280133221606247908317229001969804460353578767946418531702795901083057248486576473982871040213707957783332958177004300934992808349396952281786014272498920025195861829095757219835035081728128671873545283163851160046636818852441383342336339946087037806069240662616642306358192078488039611306682837009914331450681178478168164728804078650084743611890890441165548964136220288289988659296983337603314752920915506864725076925723916684392695613480615896889705012381321565722694867289638041764432693371811994713320834432947845364171194427526845235509996969859357105758291455748773908521549392145591618894528783173241277530414725645585869516603333178638185927137256877106617610501279840806971783995186162480231820365853365797542598486297064674527180130157226646883315697084799971359836391943520421217965194193779794119025505135612697629689440626965034561605688220123143757476702946595057413261025749802719121356098712646397706301401366933715394166425732385647093610023946087256697898061911033995762156435223163110900385525271217433442341990608100622328655960389139230107936832117239715400298441607146193668608592581802823360839051795214613975475446830681166617461245828070083672657699197850501054115232530018423625386993181392920108438925730693860437645416253546212539470874443512936316102518409230309659825878128233213605978061587689482425226426379234478052050509353185225544995111164960724923173745386933575160879912223399125351399410404637135557014317370994635948132660527774140169595367169443876347654906956418536115540187104477562270840916949034579028939581255615126424591277919531288160574770543101815053606542137881351716710799857129862591263719784416161287399157487168523423411352678997962911591700846216709878874637728062343731717833545155494196205408811299710559307183792619664550256946442798720426047009648460097099975856534179511329532855041831196919982868404661600596462700187385842504400118111015693305433143601272813409831688149955798653893777307734067360420429128345875393290965837756985855387757924975115857080942957811862377411583061277054741491906041172759454886890409010841312837456897208323315009358188664689082256250685791309821209818208039553108911965362368474019115499851480434004434449161821755544583365118192682246158162609776401849116078870047226390556579181246428972996329309013302807226633928384711412713903772263113149092349122563606577256426744557384063430912367766309707191384183158491402811572892176072232507781044891998897363564910723508812140317568790591507027785227361106441011120664500162955282846753763928764116899915553482740265166987395967334372566007417966151301265894125744380444672467847075008018679653501242424188674902521639239810933842337163660189433360441680501714430427418255851943416616072282462558150982242033520974187452621183345640543007339735461139388183157051837572321846891561543707974977516521231517678117545730131801934578351733482107433895419822218193537926509477211383801113151903090231511362734403052919819153698703913601040100212935052149505276306766376003401256433800562680214016917194728288175937163619175387199429101025239903412945482774138223132971742892031472983721699237620291779945435928845289657457339029374080091456058912894100987512841559077077513806993205920365317469386910035414380085397790391255079307931010214450937728286755621559268048935199464086648173342422461373582170116295726334865433349854385992052869634140735751552794842682049652376633368323212037128277029611795564036116885283172183296067873340782177146634409787756471812329180337102853688307498043677247432649315029007797737446169801090842138458604836814758079072672960646109531309123623031708506445391229421371918768125542309017403471945566195312246727697211655824063318912805022066822068603104768862387521976519874369279302680309665109088865310785702933676244246441601014468769314312827850979628386809318083736052930119392866253642751159573887984939008601036550693079124540842821341826944850697766514438518902659213613678880809854814490614894346949093153163656208441114861934985456772041596140400820070327799110298895288322664534666082581147190966948770008783598861575139208707101600605636560275754046013460222332487510071669701241049082271486853277913245947343810038813346190175809565827822810215540993389609457455462058780196800991471141416655032341651560325169564112247931317845170142529205084454176052106425093702488050652013886377605951807443190644112526949503739843491715528140839833608018027185371777560377984311876665374750668878206274721284341082140947426748556701415230998539564867350496229345559708741548604701385860776914895437981319294819451466278641056329877365007853125113793786413966942308781431576966211274734256708905376711534717541053314084608516061991126013800756677201323998329995852035155527221513053283992462666888118628523785552212349862809469931531516112878026415673407553436755550147144279860469922888924227121973443517135727784633367767303063779106644877288559239977736764730909818862974745263481018938612472908244010544063534695051618842112693651643650879537999439470550518744963027635644034280467306636079198521958929948308828901072178126601695738097026277207920379962901039438287084855709762421208858112826578360127189850911981537549154903802640598632902014251323746856626983794291972910346251804405456418992848322006678087916243866543240112079933898617904821044935686674301531940990057986102433171425313792293410626285902272502874876576036306840053812682982977750641575303058142661222040000817902133069938858217000457979519520542253072992910610888787915054753965886936476818673929714579847920192847124940968778972155717789054580590034896411424461638194438953558909818331460670263539983875091339509297190661372101938557992066295601653267196517026167575077692297430910487845218949788746389453310647441821702161310704248339904317255879893255816170846808464343859802419678159241222571126555032083946221346529078071382025208781942478190371353558108815490876986998031229816348727301583014845693944020117922635088894298234748217229681872501384440216620137323083510196683681746782781792716650210461110151914525281722416162120203952333664463214973263590508646491069572831220044450542503057606781462852957949463762967944197101842877799772534761126124168842316036230227828486314448070886685463385794279267490364420559155684667997468779676414987571801702944361150351203534718767949500416996080552808457840004939467938683429400095924506439584650459698757981179887426464114177919588814125351598302927871277985367376852200724158027435277052625433533158616602819851476844099627961894962652321062804781261928848468270228843271529408743957768796088663592012264107166190629400407353767991021638039807876942398760330308161271689157875695168279299081202980445722638256157866495145163560851843049874100401610214123853895951135487546473804519321784987857972113610674956289017218635074931229124851555277025608516036131343404814874351607773479524260374929496280471603378203596705248440093788506044194932704540444269099974558034472901890528969991492504356951356985839621693707974997358016519919138337371717901330715391148233560779803936466810123802044668501523472939346176343719751980162813809400915292544028561571487852269435497349075640796964295438572039465683109565975905693816325865700798222822868924834167712287735103523542335219857339629227932989327137257652040694983546631749557654561191669204107483505488281870069872872420349343310158860176067502432070900594543526387661619217098650632722670658030150227159186342960438965509296235697796407338915381537764392372643228549091834185474901753492492465368010181481617011164471234038561430154545123974601059601283106242016915061512765247958163201119260135404682124291793373737828258118259862595845979567275372650048692930638642864093474578280952146507897988606705704022296458175503157945336881237655034622209491190932658001400540584610278024066279924424347476447337345891702595356619081249020405865190352228017116260644206669761675348372827946950583058570794175790509605228647965225586571578488202530526646180642840678501553544975674068597401339008433828903465830765546568687793362607210928125275942820514759586378092689738856527717284603347068746425615758915708048837127443732975061376168891449569867156015693478614360336687809403995550748151656218162468127599998076464791940315077249590705951942106049187262563765896743251460888273146376250032420920455392422623710988157363719966778564269965390994665934825594037250287064952247269982533312856608573663769637004489246661193408405921116752480952330875641369380910866282944579624897234473358100791285486688966555178333733180727020374943371480985455987978299044944466433997607719290890655482788304897975881306433844586293339325827166984417601134997204820196690620848559495717383107923737233747639360508228663857510078666059045297360600524809740434245640216947599086734756969257908306101237201889137755881740642872864764944950286656096034010475895518983101496500886817510621501476263891059901015638230561359202108090336726565288721863939574951773602053064737382335204487408345258330584462897411346881032159360177248379845796662304116100038569296274094332450810320032863702055364955756354214078357960635938676028100151360585658875146453362003551183090796923084136457086194423331617958696495471372713346098566241910281008234065703570726697702193982955952848587542414149007688755695209913720004345665246140848985985748023168353383612645082877179593831967849781455924893789271373558122660044553880021804323598129482923805197688879156693667061420694535015362694252628091704901039140923792605505788441419643516536016778905629109338200751370001137713848201760605104232530338398736073249555520578009846181466926387873731525800288370737704584942384435882165411349914477042094773714848040157763237687163667224276983834147387731202024027233293835695652745745194706806229817478423839819457576317093455209276476159499768956765281630977392241605722649407029698013109536241384973696465615791060802730020260767847658294686839930374082677095149528782361167453302601998257148866891883798105398272431695972246608433395221336373682682083952675072231265878489452883861313058251300244257026275236035784970409661533363365405688635202427606211620831234050687495169913672981382594093559528125647962339859509312953121497204302494221997558314918087242796188512853602865107739130691189505978090349945050272449036928140391378884190752451503465983066183497181800548888970027321562867326690626092977817473509102683000555862428577359239905381275789735561548221747506088020278863694628522149523039468540777424928999749166359427297088008745101240409778317970820147063673824184083976071965422437761979010665321359939057598508967975360897179006753384246039661790702166161599241711077799207367359052998288984384085130570103519618056027722365315994696919558981530367970127249598702031035472612848866057423694179317514743759186694769378850712860420856288939550304120323895578580494589231670693316794257864241335751063756498104792722851529108918203514056168370137426535390220663207313481060305119809046465547697947186352675838170506229651706797913134106759450134704657433586789825255610557201326124887657609487906456679755827118455462241835301575508702506649821570646538389563529219195758436016420708611102012303283658756433921835817045882464969370369060825324588407053364276404217183695613495949653384784394353586744144902179123708185350138768577459039590304569906737968458207656033166240086889167004210330404069197735099285755065334498459223290181070397408579844875257710205102650198631190085945852783189265151775633038616345660575852595823480251672587806448996872590972544217569614986561363325432825474368900803285845525244023597392645500753288856233133549236908341635424628031806966606202851685869520640591924391284080716405868011686852206264718300389402134314204757242859815094174462975668513273698570988288909821379749576838094745741092998309785583824403258546726066175979966638186992551238778080804421317188572405669084353589741672740885154344740387973203529692133097543403940512696466366283149021550447496881780172545679856870272849174871085280522732574762965011254446526097509533030751989117582700288488687136731470344540961633645184473112974573804021599765595573389011841394260565054460555636787808910980639035357059104911230073416551495085744246372361360868720618161503633849830127934365939697447805247072620126600525075797728426151059350082040838546624235917695994879933416484735336285237837787337498637284991628570721154986266532792926136276963950495083385007722005335994281626829764627957765752643744217804443776166742275516748844629839459526618396134502420105454431939237805839796109674678694451564361932385446908953928210872570537941202785407475005892107606662400526428788481098262980773637542386506499470915564245041286777018978243973808113514464859857738969747602536959034217091802312155757534086053232062802196778316261543170233543617828276806405638317702006888596730479289650516314768787173555144315975949100420027082378509520069360678054766051281024694465878851555150104842145164848527257838627533301107433719830236505168610866470878057771489075066974302388691614330818118991482416343199711592020926830038236838925861270896756030668846966699467008330875129076089322088724931813267775073458161894981914150332666757940114000350863749442997125611157020323730473422202507346125468493029836337154893065262819694951984570845411074058989960741338241016635814128556465650047205308039798856935703235567520671840940045692898171411533435283957150778133741681773083635002869976135051827005338254395776871044712631736528917690280823184856251438330910885587972237441048881705978803795060979281598481571771698414140339717911091558394825491669645557814342765546454354477482796096571441834274191875239187223029565868567227465485378954860489972389663255200156374463647888674515902606756237146427920341782356477730911813809533986537902204595465477999899387204918075733573530233895969138493348011527804051251555057921744673690790509794833230912069788081127520621738840506009685511001535548182285297101789182558896514282482844015466383106185169466607591192402031697377547796229970757798927569705636125608527201458063959460867029190471238767578421711232691939274142737248170028736604029917695203140709337205832918221901882465057026023920318726049320766839014968846797792718514182176665490565784509339623762324031803841292673466733855934604645271934284521171175737607541358654307497911409521693127902228992296677745207872349262588861262556052648931232487144914985625820961323636809773668451568349448601511624333074231616340438592367825084032402673118284896856946394100368294114861717802409730349994413126593509261516415443674557338142878609637536900302155031193012738191904965141422254772450300088925097734915630571744035903906036485252821893610722304463122156839315436154186506514618002309073263576390730126731042257663905846538382333490082735928668983474988325088313882773946246642405466691443357198263842962323144176426884927342608592223405120138418184081951944114869611816027406789105238650769937060991583017435520002994027810210206976440739086780460021657069878442659179719328962979215725838779335125436668073761564254120556723062351576278404857952593531107077821932600003833784331378722246636785032124382950382794172611985806223452904980510026403344228814864659092530518172683935718622514610599528675437504135894283212222538814629500864364669459838476364285519643619107744782561762100219149848968051990245720224204389772389555539205984761770347323477150500381151128001121855202571565193889294016126690349640818098454712033135621553953953774249970198090801637258910301221732655327304384569364464995015863945928221279975805540912536396805059325120761898814744735456003205413164688723232142846057843989868647127624416770099929057236021036195187381531441101770943928114568679580889844141667535136392534403082667563154355628672377410100511679559403512475071968780014150375593452894180744608849033567117927295178369210967478600743937514296431929536517026374900183055820940923814770288906002632789410499167621006495758809938669727342537236356745706541982406005819633047669374370444005247154845852014503844423955545849782238239107756585465076683628872411680056040019560649265757036214153469430966408765633952091620711584794329175641250374648260629016121813891920453838171955198531917788555157965929299103495570990120741894663258046996843484123943378627313464615837815204049287996658866408120514740890845548162183628258204227022456263097398163060858115690466086658395083606856690067463617126048388410189611139972831290071208521621184230376669308738667298471012905101440663779234163076599154532157904225116062860275316687049945337031518231633261279767775334579112250680028018145305549772587155071738174144390856806648067546106933667196109414140395766236660332897541513924290794608050604162067941858169645809328449089683423703385513783913694057939024571897434803591005681107204740642115792585591171584487577175070768624535230992097451787657242336194227189921263079477775208919310200162086280933171404023634115121284560720417799548407714780845808988050564645978830633543419832102993263165728035814115220015117175740219685792674812682074789403439126010636582008192430433010069740987035225813698299716376445713015694171008809169110090201534494126622342867714741400589855837827729573443263482048176875072926750669124255662141238982447037787975819800074486372225134705632960312251345304137067930642102894813445399533521961724674236797336630551780262755504908702877264269680332990640283625370533010416189328371703558831252481201526526951689210268595020371814583111092858053282447144712664684612479534067571080534265842708234972886700744633161720817128541855319416524310127157054088694342830649003700659291427635479671764080588926248923060320105882330068802311283997511418900668562730724576331454529006951364606669165368658796929801200377941571091095656438166413906508951169332312507895525096014941635641088025102604393698386812975039106112499181450085492378408718581525826592185059227845213780223938797758793076362083263547193249241639536151257251437866072037577651695306933632803349482458618448547783369708345829504523313530140661530390842277587789973752942625575286259827499816670917731027296624634087720544285124622786119029415075830472544184817790005492571071748137284710203059541752286619170109676959829347062944496302245356074033660512469342422869347358516881747057953936789727048505587578357766287134943866035183610318480088069129727720095030553683070703517677177485150770768965246142050317051803564270550105447478476827481050747830851640445671413854463211286177940434900791459794306384538922448095527210671417122255510248242849335808453064445166792973487362054942920703963225707459288476769910784764743279697238280403358748282897204898880967312783083443323482820749638177883616104193162871853263422184344632733474956488654152125087278406987559565611694711893891690955254630446510327078610559415097171466964634053577640189134415901664307962076327413901266401868617426907739190384146892446538236248492948436318732545200743625558743265698638929942533644573067431642841708799723682596952541833453398102340983531260289164959236326194150195204050267540359629313112263333726166144884256839322059042421314702099203424300899171419615059363491659082595655531951085552334503192909587767042651944667600469365531168461917416514197491649662730998770672315179522600691609666063144465418678926746035597141539578019109973866038292275642219494344501346914922667214604816068456810186424139075436286993017205208125332492754014113472254767702885597952269252202486034837415860018646949013687589759826209763237752362880630980640739830245172066127807560445157373397135881705164907717589371466478660123208640618372029137031840603624923579308312921155424419755072048852269390514000450703162594563581773740370621827755770359811393676280164376602064954319523631856154234764407396469275376101308859912139145226327528260753169664186587250860001094815488472518622738310366180238483675702603913944750297764724134395592773625366992339008923329360589816132995684347461810039168034817154050235590880814583420698448432790976442044117130971347089245164440913985197103180235178656979743799563363537613358636029050625615265272686180129375348394390142139427615109497342220627999231570980124938587481767847282741160260659311980050754309746102487725866893228364883204654631216921425670397014550682482253941266308906560181116656608879389926947303028063047377581212659792531714335982096006541001448709133419033134551920309622587350086635665955850304993863286547562162852755223251712888084369195353479316663024318472081593098223056530147455201019610355341790049260220150902863520515392648628766672984541574556577566441696399850445227305261380465392408511563938664202872604979441468255597640273269554645527753212011090995260700099609322628536477455998528165469218395541987374106259886329443421426184698293342034991904136444908408174060842398345314784955251028560634364089837668305495887605153211853469688966941280538492813079444279082072837240879377842556669302355032805193676218307587064354491546762403070993535857226008837199490662266139256665235312400065197155507236637245749866093802118549538109938620978158116012360438756460180542490130183261085990017684719544098885094811019356777315334592004147641855807545538350695800104008017636473959575152708590906535842847559324640273098288966957981708172069639197424711298233610267644195999635688963878661350158193261322514569857749067766443505065582044794020567015010465201365072774535353874080672329995114355483640647976844716144724581286208068351939824034103272744742832634479474551068149133756051413975020253171661015305363883679482749395091268594753924991656386306735127047916423187216790883305559389644528668620564743881974869369849925321396526015828954194188402229695268470182065531252181944721228051093614371349762019996161414387408242046680860648327311214412745770125392136649132959535142756779250094434848838087152423842482192537351992291808701622297612504705891746015510308269210209275150703001526824560583697396535444113624791359438760246685338883950818911708906096116675814576634138683002653935214070495901582770074062439266262178702894069167176948421003117635211346803254894009420180338410562273117752419208540123434298581857155788895867144019161204133951878045791822079912935630149414750415473138473124502575716896950365565061656996988548356071260202179758408676801799203294496525866692423439513798582127811913960718220718605136306637966071022756840098836307871761897640816207774906695687197201713716796972131372013032106838673853994461547328470078152995918953003642211851051463971305523169823614494141327178378480258020904109815661297957292087404206866715511689624746614997342752505839057399220846512143632920987172192662264915441733192277360632881866937869375595861553151893618765839101767099742713913665785183601798993715271245670518071674258938517610445225816285606230356117925726957873191211016233478416828368864606807571582195316739845605117394219736427447919007275672338225548226811838336477700539193683161443992543378892902219610574905316629108491868023404376531275625799927788597720421039910061683596407447227869363450689806737946174644155127549227147629575015632300061777457905326970865686487212780731686631905456641307866587904648415479301676077927298094154118187876596385489402856325148111284285388104697560161616791019238149044490509579713885902483968126770468441954498935397517272334324107193402778160766236116807956210083240655772390115186769904031552139645207374945135690329366306236815821103596354016976773136046536011201023449606262421403176507117783118734049591864309375747518204289709573393696114784830578468758225689724839542109253229724299174724958129530548727185786594615958645222381046767380300725895002888050267277886682826330122603797184354769231019391419194503794638113509435255475994144295801555471832729729235326892987590596450873013047409702533417890035609349209458993026410262936043276932359913332425861464546912085853229079444692873436316171657732119808364337712076807507419572557677331609047311147544236872497662260435642892946945194090982299835012180682642965049393540734535161489497194437995823026017578584736796688295573722212304240014261704421656007918444336237391975388148825558145660615372218696657515743231249646582138128247931963447414966395620136005225687577913727071223904590315156435350528335236871228747720171234650756287630394648921516867451134476577098542198671315099770054904648950998155094307090167008227451598755564364765002631247755187822692913548645311437970740494334332363700473108640653195444650032786743473814990243773532061008938017494902340518303992225998754603304523087153437304730323128080971377952789164913289850886412936924669081358579937050592155001232510260005303735912992292870552495824730603381977758031281840825485122170753755141618817397979674423229686873175909535956232917388057601452137427562777469757234789407048463607199969958703252653422219784008200279260942028019226715048579451399300230671554027952379453511902051557099844416242387968237260958701547744991277857294563421800229708319935995617659484521008874632122054361776350590884756894748461504337157183471692503206618070446419503012066792153305756497327734491748916010491972737929628689182181594320389741036298940801626376219042705223569999147348831773800797339315133106930779635102628015464195286904083102875325462837244954118324064437180194667184235705634213333287465981182545220705442784132145765548341004454966673018470965252619770687101438145498238137486314750099412860559063821218529841752910225981317027051014536459744871022076293715530438282851052620524961177208389388472190680058248896951608176205665029689897854313717685723602662533226406333575396205261835453898857175036771774963064320430690051780979602603524168130419800756240929605138648147304935957802578831770172066690487311028252766504280752839192001780686148837626349461546765198185347530480897864264479081437295456486674084976584909964682243432918228143986070435675267157550387040754650732068783796800024977823422142890493992739210833934263453492903875288459480140138851009059450952497986526125565371863561862360211575413829893934697152923629462850291544116594875475770201014385975994061608243381720797411044614047557878893232776381187476065239686381361798955317397414836950206263705539702606280761299644490219766368779580525167975368746860193021214333845323305542755516050092486589569534876636771778156145448502779387942771914087097995696479525928649025340142539152462691850296479757540544840931223721536681445983114809610668181831031464873108230893308642856444537441922630678106014066577852095935689351461353299569874078182525274174229087701900416023705206776132018287011204244319662879106153756498063946694836291243469708681178749523996143785882860493753562444041004583844799971943218568004386034592609942456515876671856758558960629566321763088544560252430331593355869271168797472767095506004847155458404585394201602699729344212008875155098097975167685629191867439048741899488076797110683611525519103487942277149328421820867799761889084406443649971469328059269248759734837494163220969330041407507290852839757999504036329147475248093119172792950721859538577091671714069150205585494745893794305739698383636234001301003321060603770803763314846961287880244440823250486476551848315792627699349546619418888537269933510166442393084027879058539422225980955651289377313869219139303895244549793796481048622167513614407633216477378393580056445695467149727646039601401894952170589836795251700889595676140196149898859131693041802700298524503381199703562996595108948813543204024814367991403962990354721203768743831054961358678407431217347398779280463205759244886996456794643711255723264816257795671131821213542136159239780651627337418310911649586064924202886057935794407917016432540235851586645657116213926505293336544958089533343899216192443683425572172860115609713644378394026446765329998046248057006123184662851757887090868727075626607160548554742541570863369713159311760372622700513193473288857385971927667241891105246489562128921746218155306943398786858549757644798940488607547883547190809016122839998098288162825698367088786972132097062968368252809912074836295434826633381366430521606387652571157434123833661181899051699031424989138246049321149744967541652104776450514775005337435027341297439161112344367070431562031251991212154108977547123199244314748098433764687999341095860761039505791596332563171629331380738185225549462930368696582301010783508887618845789224441708527698289715320157891019268346044981635234640324289670827386419857210923394889743019954249131037895524024464583250485320227794546241778149889964817238208355132766266807615319551447333661128687049410550911407023214879825614536679335604549976345939091798403020106432310837794298776580146172577488570448948258565818865044831018828018437155041232543396217263610427349687487139615028077819494581819185815009917940640885941025380735001066137485640151692309591012460845160574199767512083282532854465659391830187966546676787881189867964825643175786246551727091474988822728221281560291707669554675173181938566168639498206912894474753972399158850438847740653907620590182204602606457779938447726206778530401457276444232155053141735926760686680569591741804931196533555703919683762571330453493555466521565888294564437391467106322095931849321524905716141732249764160912525054193808447634773905676210478166479834012398577549504519257155408430300121934383588739434622486048167927776133402010071592932052806522914251105492739020947728057899740233645532252410963855478758617981521295940285324976671650458478593918413643644019781531341392873101155426413806073056046464140719708869882926262226154009055522963417508749873851648284837242633042963020330897640825687534431289617181647327548197155863684399068715543475425279220107764134163358522291844419302612743346719763534924384612902132558524890999165597342779170954818060264766164428159821474945567662625020465446736849020220301257080217122966848976716138112678499525037390888445224878913399502807802802428750199591875656205053339711736165152656948830975714079422203794987376795953637996494325633194803482588181331375221128192252170557242855769905367930332795515155807713152390286288601294295582191129402066691479527293922061625152378684187893593452901024937110698242886360850044927874232184504179816871194962017907979992724824836944458459523911828214074243847637385366487747298116085487785263854262384390371210533296238305551002247305527557483827569094062897132598804070296541742330609957122872023532090914846093576427665943608067800295895020791458747814345933984959444660069285081591034892530536596552808896718273087709038946526032918531418049692758977955172410143301738632282795408623804975287864978330874833681978647776305239330198919276287786577948823622135996558176709250528458432694137042022442913020167841032590308944014762631206919105003864471260305310894389277598725983154817626636437009849862273960897706612447136755739300633927169598668394322157351769207501891941714579593607439787017071286404437438358170092996885840312773936591581807358242961361582132485435627498345452213604777007498775690081353637117995417921616899191879767996922905144172980000644804111092963491670481462235908147745479872607180185527890893317978789286115033749367354075880032174209053587662779005374880925762422856175505651808538628002910378236896838248937307201707109632328607392384740014342056660077756451721532211036234001907128303912893899417302931644198487593377353223895112473899222906041127044129727876145587689639956849749063426995832594712230147164794777822498001825999664879194778332732845833369465384155329517171227578390099003810736596058938470124864886173221099516279185390533595774748209194105683302990400398656307656117650456066976750452452614862276668351044142971328222001323618891068184914414435682780020710366123104124791954852783275030029486367350387329266639102835488128344370917804085596673338511280594025405322840035477473769606281354881527204336465132390197303903956328556166785211085269252268677776815455256856292545770427869271837837896463908450794911128881935250691575057650379647489060520812976862200107407352175675602468139127958515593517256970487011610115897216801690961415883777307649276181683742536356322689123215832103901624406291748673186957919828811994637437739473430328695940602724291543289635029828754213277658167668311933879443946460629999629331432858602743913955752302069908253993813576811968418503372304174851239962790946039952622829617528400614935419693966079492825002427638831096127364472119790784289864385499812452622250825330958008011269723422125264700484563745892165144068886714459992809778273787565608067088232745212189544937456303861706121115342020861064384095865264545596904527573829674218320855000930526284707586713520350469592484618482120065195867959549042954024554111201220058774378043641604605714011182465698240271288728428418451067128614811564952651085486022068729032652041579184699560893879782265136108997626210077245289278377113135446264754828871583390909612301227319808399834977830873124769128668664264900937821147961101563571740240483728916042558329814896915336248830186891659572951831853938840393121326020973581067463834852945779694687682457079431843328287748354817850022638749476247789869181179235456706657662540721229021687437438540703182925091848298699744144297224033071357638051367834488217288372733163643741559352152422462650676358136908493455266379129358328385711711897862183787222625429238993516926790249791475686985456997447901099469786451937615343095392087402471261252045261701809918440655700123647449203219106033655160549515274963174037497669910249916077047539588352111756917793687450894926609990394676027567626094742250576890291561593861676888188150124848665406309792395037596070151753007797641039416387904560499966828812302175056845935608890261525349101506508314682362083593868969929884030121918766125094551533644882578982497908524891124707429714628266966168899909887640631877933535040372328610872484672309452538789521186825250232229972703500455702188587744302310723103036751017656820864980767324860323851545737941173358640158458085342763083891244296640245107147786566422765829542525121432283257720024483358848276079758810185956062461309143224623944384228467523847543600430299768421604016754735997203727067501992922480444407321230161576379769301992990287458553069290855244137558498095583701673796757327139362123749685425118474409526128460145492257509792345759417602175802939432332296524306739683006032067816515970180286065127103218722977544429208234566738215350356771735981364321040330161443304529744688438820681834992510335934699795448657793660432395052826206659876638441717992703045592995923586289566675896631011645050794951248856817837627683213083274554322264933422949379744751660613851372241438727775765433459115413757962204647990240323625715721193364345137723986859188759606118072351348639939555946988591151875639751935322346911683125032296429048049161480418169268197236837958898789015387028450887482135036432219291010769566556847255534943600729167443840106574324323000124669827388034385637492442994012286760348018365379339902579251785494772782631855955457178587301671500617692115354382262536876465937581665433800124105533529181647952231819223337582333720755063897676845024013302167351611088645074903875380891170676076101024238685421921905133234359864084984319119069465470215145000015332940614569599061310247714386843438201205528985715536120028730883451818599062967273862186543523678337415610686580479484502868573080981384427903481668798217438690264361719978325304916040247039855136850759619134521495023443086455467460108557801326909006418348451304140956149608736779470154325681287559064406495912004457053947690747610739898745796630817475184518848536303903842910878768883123763745612662916362216901202382304586110191080485280866047858791997171587262364807429391463053784792690750691459112865553481626985816321711363617613300333253765971594880859383902724305112127334684564865064020831186336063212030105176104245882143416141353016913248363630709526406010541405531290615060105964348700553171863239101366754375353030826549576798660694763959354689609144966480801591930919220296756111968578125295454072020656161211017939174992186956158245368950841246969483097120867303099660171144071061318659261649812419313871902719024313499313373886047483675405089938923657940535103882354433730944554907698633465140773345754935300699098754732751358054300851084562406922364871396294212171005823197688764393779045997159760344144757415628389021700588017803772309516753445485048150443366019813803319156104295826527129172714001821309003039846948723316463531714165875649439042901021863096737610982766651987035559951719059660331001802846505204896766293759857182889101652520592348327661315551187164703860761769559004787927498394759534121290465836142742311416325623838714404660923544518026569592539285226183805131030023480997032539326980485813038652844015646336771629743211866508646976433190268789713040345437781077078170289860976149994187766150542601249061978046338804176364726964905684879958228139871815221680103765471954826488449086285666926618866523579835180716769007783609983742705856997658252454467197120085747532153222689824940915931230864532867024789233611263983307026757087187587860835267393321898609257174226735877754831050907637107368681113946180279341915422176746623644735571727470599202279741724712753128708360311262987734259245070947634066103905742537965715295787311785680779605244336884797425063196497786505174575258546640529252539389501073955910575054553284539002669012070992838628139074547721124303925089574982802359696816172012351520615604452047555126930830141205281615522764603540578410131200319960080535891755233211471846292570146938097452565037232137313383222075147711661180561756674370909171628767613529410315946719388710188641154159468805419947280306678704016301873962759982321051610504103951742263199196207242085386659335645369475961942361521990422778936054606316711206680727561293445207616021848745676845799145065588887456124506022979572476906877202463448128556215330680647198248573850477665475921805204927394677412877931256667047297106791475268687454891291535055236704672828713129983917443974630579353866529408453162906238339593790659561480579121987454625449256934453402262456851611960253913784893931457756167422360449673661759255389668953753815931541999883699656775235611684107074871113705003962849241840283130350579683716500187855200833574648608040547509178655273900468929825767879656539154998004469979829960716448025822779346016587327700837972461658573157311941768720015667263628993768560015182995052360189682076409863331484194353956722138109704860400027516226300075238437885594845626956100463436571486805429516174031836353519609223972341467990241337566553152933295334104873574911692095884213215619274558897037524761871663331224567963769876477106391372624699076686357166519497619689194711284215816698769841094872682677199873453862898333606594491006849713515533515894216027121218579620263448607296171255306055133412233644306265586757509372855824765226286251554407105631665594702252972039816975103760277502765221899333246718802871854126649899137863194261508734585522415001443319254676429083531961854261455382181700325244131853429417284677335836501863402970884909267825258552505128759535031288439055482480470970592285301491488084504949047244187110969847727152297201663267139888287600198604302365245342679193418703711853199332025010025404047578514158260315280442544028240061445013625822962018421905703428950385048644899372879633530493751321564343337987282155774646285686983185340609592261279503613846876229330731891011878506818332565235635152106826570135300228437731481466262536975089111322933671960231827355281697838142168097576017233615529618872193676686446394015177185569056312587723146676354698945158208868095905643515097114719803231655836790011046927300545867150874146956764287422783646714387741385594786335026946427986572808719136778955738639641715372566427686475477954708350346855943976469405295702047821980828137631974924256632670786804545899237815881632547242121510041355950207072491339208441047456676082406567305652837836166899761418937086160533194000719018279209838789351386644006155113592271731236305398660503860734086448059361344471236343046556057920331136631521248398641667280145656698776035643550940722270909310175644596555729976942763137669640851173558496158105859585039311473569733966642384501371535905942790874409350284342529351601108752061732108054529919948551683949727055169318783668728484703656875714398016711637677573009229657612993682374790134736474274576078481924723021385068343228333548620792066785997440922013452508108001841799243952844916072936997964629253832461393817623066200778878028687251483841801378817287377148690150051233907361733644873062562008067242941846166537645694963893860698055191796261503169347704410636900128971651016151317268052582394508262324611616670099875384305865443216260279357410840298808226174538536282665658835457973030660116243644490039715148184782755125141791174296430927779942746049525613498360620201436324843835035201532775046870046701372257020042938789919287597791899639603834280109256189482573084812552685619035465047888842877058885049184184117927471288043555737620373363301540192043110406709421890157383591231234493257356056538216046979774912526923246007364690832207534783858266359311110825833768971232674402811860742861656778552029317540678142657725726321799548846543669770063679880178478086338631072014597458595334374256979737492431115421208821265705852822530598100642480332918844083329848336075800415808593972401433736543950347138145614419184178984277151742796508339801020275066847851869065686835264620983437892262686302132313923196562999946814187596880744700745695293650047099848457212312942119174674546971978848196571929733667721771192123108155929321754002342192949726412891971183326202768855075087743313689914519837040182081367418492335300552233137046351253562894064254100565115772435361125828673617852526171224111484192495525557772964765330635568518211475005984431995391056841620637003455379926408052164365848131238752250371711456251104719148834755365855797676860887930365954308866322375398621164854822113857598003092802923614206069710241359581142229744280972966127296830463955919318370656823286559738453873818132454609517691164025460331108833382312087094946327614953263318571514518358906184726935717961853828551534878329491901525999530966234948811489702095614041168219179689846088975893875392611962475677207287641454341676260680557060790012963993657460289441802152532058551890366048714892501190805914274008864261411535775092962745132985432078076768457387669817043819589965377909728649586010571387242204494154409749314535667517738752157873051058336614692412288300423108675058273910625717985022183742720641081561559008439560368012129817728479325797760138088562634095075943765405503717051736233997220765192722939244777694733881680590127288791603639985134555902788154405733557069097897360566900242023468404696636895429629627434270819630666270920665566929832678216281353046622726569874359407574810606565397217711647624962226297787805249997102144329067981686164398750218868399490804105820389229431233901553198518420673733852687444765162746080670214592080454459008708540197214410706174927205605042018132061270857734792418576849125439376424823580943403348188309306944057948882315699344357722538530564259686947769817229340488022844396790856489713975916141535497350875212623413811335779833849979596660615907928190003247887110351895594270089132736581239291717074607528981406146414701043406906095596157014822479465324142432723761262563811824660899209768155613767296051451635096766257131339561437103073297166991635567237049848652691654068034277386107292387096347792769470832877009845889627555853249195443144750851596321703074673456436477485244129355320204169840359690587043728353147807039507914063082599936824835803995753564000685887545800241998448788449905870949471783372386189884512541360714836599980511730171412589901141408957338172622239646485321297170692330306782579392055240537659923921726341904551656787497257674402245589577859140115717024581918481728783910710253970806278757032733832404735498399766751281020920903447438481154004627940292413692523650280187557503251853542648380758154294316407728162628385268838725691282602936817703619719502930648798550225162008042720736954390004316464049562851968536359305990928707824265358279904462992084042711579547001412474734946318971143643905145688510261804698293964777093523129251581916461306767017658341256006033315548639034595364940536423763643218341377871109734999505009001186565173800999118005732694134876723277459915144407229214414093156305625765425152745598444870544817800607880515866988448723638492123539426194754577137224742954035324107157373185481105753869919509746533224281882986362337241719469989190393116566169774155473333763942305408991995114247255726360419657273259225128078851889239080741237666898926783042249139127234351551434315826192911675468495067820207343730211349738547238936860399329111969881292305779928993286232534285258236285795176026876143603720912353324713987125383198865340634172160126635765004281112801350863748262892913705101172460879611180336340143722725597941073941054888517232119065402430161959951754871134953788677544901069030947180507303795826749313406186227156632372458239989400135524855517686224107725951399338757692946245362537660646129962515390448512455484037584897708591585872526261548819084656600479714747602545248586698490922312091711263008134731407329214063462530989295119526965108198540065738508168746438985218208883526773799582150005458933362076213929579178544766088631275064265350491037829380243473277693416449885085295843711452387293626449200858034127846499028580669151485912077271557164306082345606208759023550145699687901725966535626929972056704433514369766450891756232945755157439996345487459350457764478430760961484459439727501478194441393562731371871148548185318381459792117738440767437758160159746571977415123398899312129124347037806944202706021835180202174504100767241863662721103195481549070536044706876910011919256571442334709441055284493789383120930235929954801016312382131261315938760737887152112860152184558380994145216316357496161392870759161809520963979959223785724157896636088715862496121157055611638485681894946239923831715184517403478840299295153310737424053055283115508265262998171796670193582158810725983807350555239866950587180838465381838037541524078524055347913699305864792740824588305417304090351453012424229435285357909363381749868630840252968123286557288897387412509235436899222390495225352556104098262644900645772955345898825596690015874767080242771819157661820584119240253559721732399192024472256937762935742591348495950945393672877395831002134517810305777324988063627961356789648537606082825714012879534173154086000615645522697651454850311719828694107457622076486551088181557834036978632103124381188240114932231454726698789734307664192779280725356450349205952893846290796302553524783526186944122052467352507785013385631421640076165176088981143436336936549088288038811703658811226155181291189308960948167283139080226009002669906958801635490485052752223885367461362085049807587308978048472468864341026552662505266668606117462205063549670318684286269546302702104847788166847455760396351432624832497185715023668664039062690787738201942370134740642845704395526081290875765624430239508428457697025940725719408213880358947442044651447557788201565742264239146370415817798262491383078657698448283828712733554808395262413369983855464185902115141207830645402041179316349224065860457152374943867456556469236920971316555926665120512478055498967927342970482906034086637626119228567515672174152849817461636829042823398557741699091374905580194025625923558246904297394551268260572822998392988014884184081690141820935181276218572126875053476513590069432576745065876564696917343171482965882893757659496212214008510597569721332629034789803654532598558202505067835008386851330189267802865672628457931795010357202547034217610292429141564033588011206908745040692576797410965568388810195230961428654795663678911253945917737396287298731757991695783482166940025200885283321375236775652316021803166217343464125558644587880368483423072133413664729092354072018223188577967468809597708195135370448285192612825912888551539628528493580774812303309652638063859910709178561204082844364822638179824977347534148998119092733125359845126591449690283964045908089341812062741792220238055738151913033778941293633997374725542682614516887778749764410730659946767043366066802419857896957908958990193760187282979468207078560148020258858954350642201350821740096737324929044126346868085944572810713250186083594626592289417081195150282303932126994389041959914021851641558643804085977042397961094429568472847883451190552815127916640257446750780260018354589496625678853586278289590742442485806353725240970833089653428729078711333901152169371528713728119042759539126291769629387408626261190028155252225207959925170859150481372115818375832229599603732799605896030560274606512143443748562572920897458555744322107689192389649122249146132976225440807322659452412443220308397581172003844817164558691765149845487120907539234935373134857145875670887178373875338362125650138188446502822920990727834906827313062173656112133173708775545155645012107986669878715972785353596520478587491472452822692493001251605382705698353700465266327166764063014932105270694108641262242917314677783257647108655262875130689009765745030245108172319097622364481557301516930728497356658712102533586001571634960000389600255894330651003519294172483962805812762937131478966908374981986817692906775683075594779967284103285950382002686420976532381197086346714266923162802795772496613320956912636271633015899419320060027931877561970687742592512995713393468552437150327075405051348710927251815550572384056625197654043694790621320811733346436826620689389437631445383747027063794166807663660546619820669261395714757837996519085388719621292698916324436348847964609605586664504629957787177610629879065200597587343297084809403755408776786729519653272112073781151402451161330109936472121600895180164604913822359796903248640593782419570722999462791655767977156022752990334906869999930141888813853247766710478149451646363882127508090730471337774579870304000677907663432982858138552099268608289964486621656604326007416123478536842929475461411825235682054504230650531524466750447165034254952209868627857780016152106305470230936301653664036493685248195005680862180340998850519393164821122696963300631190164347518348582765036832094114476572143640576227726113791806392412510907358645727535485946943785315106466880193928117490644036550972880490393655793220380663321791635507155244846227748595042201718381245636114985990216550861033018295625974701331514922208089407043069699252427409180269143780076121487479100471250939138336384814443665764669053020024205343642440806975868034805317098644883318913448434912614617620792114798925884450314990230861106235582467930020319076678898446173389009957336873417863610253882869542531083510691699780076473841218842993994289885423285971697932879685385585107340788165992707804515075470214417760515662254374636312308669916926119267031117698705813852231309229945345819336082754696323942779208312294731499127929593258839589740390155688443427959738356894274987198767682813780120470644361608815384446443477078855546703810608805175290307621488224907674857288681202985158467213944675618558676902575403488060046634116438667166360746915363142435247633575555492729008203652010212448219206917164243514176089572703624275807588582313085987428628031510054590264091251296717444435688077836370888359138181701543999225552232622683801072139662025916175181026535802227108146706178072486931984408683737558527571812636083137847094757202237686592005894474797987143065407968243802776411861178582958055931126543473209653967082571632626559495601638280327792428072518323200021532931701142940991688943172541202561475329880248871473834002165718386302512074478052635656538694674153549322417255087523420758432096880778355414329928940396698279032844039656793162493599725943239970720308621550074681333040118024393729315289297640241995407489228120882631110419464432559414835972441975706449505883140190107326489970201459564414918337555986300663312127760949798049552978191748535939410478044438510733770824011442129889511905399964930051491774688995416297500842251643661442047357073395709689634524436802359612508688419117378292991667094746195396565003403873351058674898525960273190413423386789303821562992557122774460503311191619545832070565415630518657206148162361351281101978244776340754693294712740406491184043163189626918288210763859572163138956988580770664520401480552471012840557588239914454630324741700970889860737572377003626540779454924651783676614230818936843229057446667816201464595764525901474768611679116051235627179010689424561131189149289307042650122957664142873485586516096695783991572572156619283096090037446957890283890474091529101632193978850002265493484613173195216580139209089403582960361588086770380083592569697829696879093694458586192505662821778528110848959189291255064112608959148851856536712461832855850404970845197649511570248488384955797846311308979743630153577637266786172178845149897853747951557051296349985584429554358386470273459604780275854628134231204047121919958796013488700112432437411059023783033856399639923412013151008803207730517129822647985223801625351434651021247456234195666991171664022718133434717471419077584262437493325883017140666515212874540941454508636623695397675885256352124795082818757814157827479091510835273260387764695056294466864801018406542293120274769966205631886302049382048685529645402504202368094517578244141510423295810902287985843748177833711801076028871148767010692236443672748373414148720719978770953444835322274748144394567260401176290159796700802687861919392757916484487341723224465567803118439128737840343791540962672093204932506279023156301859528350003724116457496190342999028896994786992190611492185031832927799082696196839890381452475535610501957696849114740127058131819234696265015212496241170713378772872916445820269187425263268043492635009326725356915812782774250952871592073384028800181324337181306446513213541180668928179281181265936376437534284086299945380434736994318655146654486763218954319529160489592713785636521449760417839306160074257872408945734569064018010753336013494110590525003300909354125398802561146251631028113925660288596807382355281630499906862048668294094729461045678102638477731259069203579078493834592179482072552633198673064657692239973282287838112301935043038743341417062780092969827009629204630638510123515043191843856756982629028915479107430693420890862798415447539210326093528325119974485030349955956889628797692143527057349906756332815103061772900271042525038506013939853740399296957111437731358983154270812180926749561422895977189302782752231830590459132292959042459763520138337920262713966181652080905974887963298255524473915518010004665614218628996356175865052842931056192907457393966970502452612193018873762480635574629725165140262080262748077153887030964108733780819929896190325354277329287813114559651722505202183319132016484219197518850331469818945683219080609928503272982995577553211804166693155705892602294101296270206803355533643460631423513137611729555317511399164104313107508194436677587728370585416433075833234941953422359808534047432595343960796078307069617390711804915071440947660171967210163528934873161367084456452110122100256470009248613524784883688823952397679920727439873207251441245900931642441011208381492542400275752103348046581363279698728330991180853807871959776942996810119001323132260713968268176480093231311467654519645428253808228063477490531936943920162913037177601638510799116377382795647254767081997917781310189205012845635050455343752146518915096702335935584215494127594305729052858403259756575619064316280452501286014836411351709180742040631330928380634124785660142525265198823280974456038364745711209306456047431185227611744805986479735757221615432187264351557793715000625974445060021365464119659823376612968500483905907392138974627474520858846565781291531604365623189696938144862856881672771623674829059203339085769983616741428268310931143794674284815568934633054539325918770087245585316131171917063507552204656844872207698280807449585616758170501928443667056164767936525687148455897115220904925239092708293163241100410483056226055179319317095999125605167630859447163760959404580430207331518767152721512899492186526151735439097819169114084878152199595222931103953146493716101202919694833852998643836213960171661881913596120180628682831603909736668757561460936774207519672403259929199948649805104226835972914679639994162991779048886474662908544176192014884030482092600161318600678855627715578939812332430029924225568776598490759574413379045642208529596932836252476146495190412910920707704175974287005415622655371515631088797167514951958312325901384795905102340911557929788299147741619530279405293919846841636141534401537552517954500177663579172722973849730253322247674387501074137484278806204436120904405079397166159031894994967125589561007296037405239717065794324383909405483395018900384818840700299858562941373365903058763782381003060103145315620198431287532605312199486190906430988302624934441913132827428811377235801258885949268330542781833670979315596529451066624143752399926000667501209250878488544661126993044546543538566666549012632669287360969384276531943739443446706470410514067085293873988480826607136307638547274375423911585682760986812854498957769715805060990235421395250113081963025149195768245100424556826279453306839324942101414292031550072071697894960923708701297839775787213618660709244049876682424718435232507048096175764807180144591653457642876406896664835056637987509068944041076310077536216324470438006043301298142259070517150438628385313030759639013189876144876713107187539898240080006294894546245354124027046685084864272945902019188320835595375744139386454649316302013922083624145371254674227483550605824555739592837564785681353602427019536122933288127105798442061019837886888125958941788605419386714890703994297787527797634621901892904954309180844725969955244323696142489305638844812566697045006408317638931913516367830527484582894555412310046552931757700944829544191095779360780670725887981985188208284791355722557662126701286425392883588952589651913466078803864192404108061668087368731156601311479057991645298996014682574379692431221218515853582823387640553100276230568653699122984787896095606462645839271806102654768466597855853518667680412686990251783053347165282061521767504983320251387235793608465116403689399774411266791140092790574646709359695113418394395970197645632128349160977182686906995488798108147002639968401980091868390502052236976924911461508504541893064038786735934713419565648346954034802035485111235954663608468186312448678787143349457637590720779480015188068240286146433332810097264707756254514212227232191273557912846350743814649514122812697212297423641322558706613888589116110191791400543104918532141146745070299616135739951621295380847778524326488143744796632745466246507061741232002745726252994661655357930923636440579021026266450883485548164642769061256327299435631717762387667913123327514196688436915689769605816273027675926439240709858560802538593880743681112701570320438010196259972836604791604914190866044098022830228917341914255311703875588460395468198308017219344983365105446076998871054855561955033569767315957366373759431110632312813296524806096832159209091815069929365429970182825383224761674709715896256589350060169063049882613871065849765299295001822747734530765900936441490034832926547226286101721164333142163453595127768868486855577682941470883532230960361191542286408817800350576015933282292129235854044210544807904447192391532834402861335218569789797853459606643012911804511692861274608917043036477234194090378463197962709542730905022819750499790060955814338278768866311212474021994589113687378909205083640986565216048478333510221467980247798505712624514094351552441532084907728056429364390265484472362956121155813278733869733719809179199313752404997806544673692863112051102814040617916133427059191750969760166594566996630337193757557915552259053907009337177848704986841349189408487059201338190392898609906910010882084768410328090127107988314629155651989553915734950454388001937537182341023207223326765775389065189232241479382088193438561133340340241203896868259145550792540741140189672366639740183365706494570210969514286654073315691825324386519934735533187477328206318140670011569742508177477351292151356921054033408255815573643881056518484203905242963050662906259341807728927996013225928427904621363305896035135335567655054915242005408749364427315370770724101568984679688281269437228587651383624148690072460278170046896656425051342237409630504600283249121616104538935883864354532760983463605422394086471266795674648318767584070585383926318111646131865919142155660926121062395848336040126713788764264404074031395322229519964330625440323756929092718644489351902107956251603560869323913036213368094215731948198355522875527680379420659134354515573367303042947230195056464896158212125100231906028832834056175566004565160308316257119913086256978381933476880328772535271317697120058385595909457874527448436367216782021869002622969629859609336166094793857771734148605198071242355330332359597104785898887703986001959153218322210242520046479442506292762394754008213368908009822329273424934594715790056324087369671182816159684442591522450467412706889008170163015302231894348999475782447651642261791447655836934312788208645746014700396984951598218049275645565624125655667676131974041221413807889371602791329663156534863742584630583998433073040012260652745673955340543138022027999695866185217419845838732077070033736775489390507073493118148456562832266516185222125497504153916503466942200633887391615930372364149055039053847282043486279182187583927994286186594925427246129239949583368002973328367209231057703872197485973060662976531046694722154467888925006441325176749150017603363318184455696475250577606649309157851729123809662248693935524296813331452857719368765553019535505023035163185474800835102301017122800644427699885003057841601358155196203890107305715959151768681048671514831778596026863010765033138718346364409296806153035793169165361699866624503207340518767412919812322984489283761153906016839654518549078844385010984409711806597922136279764105411607877842606537836647707351395462798149785406360410529398568362649027367449685997291849760319338024954480359079218254439620665119614769486490017869556715148314925736634941339008506565309657583827528374310177240446117758315857457030152425492298204386497157946566609632725061528654649224695916686587596279282089418597840461275000329485356886072699767813715067401385116655891408173295543370529133260553354478110423834439686520063492356651070796430135810008051266851368191193373027831276890654583317378112336413806567798570654921292523320234150550033970944625057397142895828233064272589273788930370111589263896010263092146417222661142779142252787632997352839229704259413248337024613786997823563673560620524437352914557094785717479544752281933637180062474609624791596012142733323041426311541788992008339753923448729078491551741100223254387853561543274063632749358473618947423411361313837999866064423357796221489937948389272298181682201670714093022135663693022625261386509716836419697197321015964676049948111304565523377683040503984763560585560084985221781314052119911000616757003629100718929887336345258915549854133101550057737066852017104720719592607837680540956194927118745184559767661022904542363504867619822099252871389707914688668309626505094900678721792525264647265709161124904956160828653717032710100328306388982994040826533630887347369002061257960343264213791932640166888450263209170915964214508309695612297883595934466134717200437699991110656990326797027422027378513489054197000066524849565949884803637398438913657958274637737801450039643718329677317841644828900955948720004597710511536087311661116209588179309690573897855143950408996471836631781682164016192551325961425291636204102645579448456861230161480697554713081456040214027902721692983074456844530303578328443811438261850340348895575509818982516035040309777015940716612388976461002249898493659116460961771994001010303405470997314422666654493906305449532997285650781666641851807192778741657925130062053114011077638873316812063931677597750862472894584707392682528551711211353451589357830140650054124193115191520355757055994327521413550286552143719148029646232297372521181384261240885923203188421198006886792957554047051410392389809711912733508114240620263005766162994731738777013811713032910405288976561378169784877008038199299290431582769622896245200941217227436395011776248299699628208165249995817861567547305245803362538061674125847064956718451547568886219623001373947823001294706435973060558412657646629270776729266095086871088668474656324369399466197047954341979044519999810081837413064083329753950373291167918721070566500264725132233063767377591894558298976000397956741158304009380949628092816233862939528662075938795224436482120005896078260393942116029215846509933358153779856614673119405586255507671338463975788305468500648427969211330224269492002473431899570710473152973185483656853444788735728175011548182568014428253034949551707800910711437026449909800307796157446114236027029840153453293557165389292709899126946979776987804340364033278135500955949463303639054793717791588107987033090773604648710972805847464151866362949592833554166680375354692491954541614825840357976256792110987934329543618054136384842446715324979422143347448209556820428104580102868916782527822829214396467604861287153358990027930771346866157500952165266382361792093294141313695309270775696796549157109472363912535487778225507378181339135292066564130779165214596518455811029042693431858104096605469220488179341272715524543928281579006512301957639219604704235303331811084854876706809995859959926304359305546861063722708078728769206885341879228920536502106785105778020593784522194707172357898178955921875180898146897959136890450115632984399266373676872801701585129827366405171233230413870105448676117697840492848214008502759061328805843097730647594639220812103579013821102286722076931582354002938066667589260048179454807597747638393195125798521706542439389510930318225705634729767099169604274904559173322978253418753437853708887362973898956510393501743647819037290448959851384656678382180557277210370918216240997592252006386072536416193633272969975135067791367655294371072836376329429498150334398687485442275570151374803392287173058682107785197182948169227694344915274991012691086766271669211688818486803350672712592814075281053097462422642056639682948275293538295659783270214398730347669038546581460205205901431628961554231159694222626601293268984167975013647648179261610099192833518810010399202718880628677064243102297305153222761061148159376508029988606558532047419935606899149777727281743636159341061792419368381464718486012281567518378890950907967344020132565093688032725600911244775811976907859507526536295939408005612474923555565435669635936217618098122139673938796180585514611718155156026385306575787252120487862241164890531847058524366336631507152892299258924469966166477097989613136182531624406421998523524128487808208520419655104981309509040484258120138755644098243861280929517863953929713491407167272114831551992532122499856198123191787530414462040872061239385300331276068415493727378513781563389441524829683559160349521647453790382414178945566873362561298182622288079869735200638923347643044712509988991238292419659469273915768216180534955109157031410562381934191072695526420829503280253731752369608087890849510857895256108313232549318906587468511593176679592403624250300598988965509582244431021252835841170516010126054087639989397802555799933104404201979098397308766930504746932554222570473511171466312271490572082979885854698243958464727417039209547776376524353985412900473084226482326374663483462268719939383349527210431233185677568539578438243568672212287443877606383672800466124507719105852395598291573478633359539022724511804165694153840428626332520491680374847856626962394426845797181812914191957112184134980436960404402711330657856004569237871985095897126182480823336304458177586442021223150778016122778643376255823696433114823476452068655622517625999601569158853861783222939735401950939728005889841205216684830128489643421911346705297488369260131810908106553434688210798389679654367234932107156526427816140136029902221465624333939176275675214235982268162058860247469658045196730586874801191248202081521843614330911847650443461050654755687374195010362801477813247416152431981796811139084498292415332957378585659567355520278163081404889367188894115455944426635958442536034810529219789782292455545695580016148834294928683980397117725110899632377278365930789255642809914482132339509562608188055325948755052965153293981533610396696029309874301596628246062929970703290725420681291241557051708982452675969339253498667182279836385294340487439613473890374383848566230755222547568577365880248407965495329329894328263518360337456119443557882649684794861778903979836922443933505672776838406849081980753841150178444506055067100490120995962109654813003401862196913146500889106781024792529892925532588538871907504719225873640784585460173354503969464814938435080158224588854158220119386252220642751632019005150188717296311790887826181073447917585971474257230966939956886386835519051204568465904001605957490393446947419344032333316486563441922284123636319601504913732835076783099066860333921798780403894626992250668261827770359550213739239389444105145388052488731342150566364382783044885590168613430679358404555745782558692339939793170271638811298860966126734689381571410211929036030772372953717962042580956826387865668584559580691154657216077849170414559032736643273517351043615759126112164637220511735723120105632557358122466061623600282987451438787050218477150539671216306904271420148710199405587939231514000217203960409010153773059664320061683954158902643045597089458325730231532650523654391774001513561476051796903956090256609085096460567122860054731225497836528800215969367623250718269572774749063517285375726433323189153612705851179535231325708548297889320978212747056407471251390572000376427070796674578704638082107733085504481849196065953829267963703618626200645163145594245418280652243310043560159589019645539404007888652474672550275211916629458557451557917680799974699315898853970209456581739990241546880236007640612118943829409025975066415629887778015408039993054022315846839297817204591006384337387658538926582716025109094206151187106853068200415174592012316054762858496828381966115139017420481774703830188269661477260272013240526138041162595336609358626063796632828861303956340334591558832940979248423509659073548694473819321568067264067976700231579243017966277589436616028217355447210422559463553843727719186459460865263485286636801020214221463397842784336752216818580549641060600697700863679168709170783315758211048058546340364678690197839068318138890899594198175323977513138476215123217732571708147886254630085717693034578182090623353942014519888696734258531001599172336897778001946146391281494704512830693498580564890982337919702176252913880206131412249932966287811551844979460872866008752010788878333224017243573225064035617803026324533168369061627925734239849797797160159348782734484542845023096385081542695020421019456672930411181850965710817531343403184750366873986948662858148170067984269280364571984816876140370345755614169560493450185061328939975093950498664949202518551285627334069761258287126267723461119147931134625091023742359324257526255706768222418911873603086613181535822112540973048427112543058439303343656905419152094237592177568831423701888599114898433144847273616195870862814910529817903923573810711337637991863971670555910197366935255204251141890183484242208936637799185103733334367367137000023111410689328536293106059755413836429496226265164733112292233595207197168871867289499329898358485804832669208885847439233563569148608455332656132740802671949975992887780641330782265854296158218949963768673244119443369166871487580410407085967306299224273908151782918768172863785220245406644161141500621382912255407990194029018156434739508166507565870095791124699791646257922729626411780969015705615488847396352949854218048021055296343790568744432992897491081469240749746441632481993909082378950207864957777379899195415961828366364269279906159339713637969142584384650696518794889334227376518293683179823576734104135052323584926411803959678390473242367125159988399555275596584571845384188991267350853430182243119228840296695105475230793074475408973257915211587763365502708696028119018693825372549799617638378392101702573418631912903658163660568043866279574961402317318236470707577336004465782675738827026357539897860850017452466126615831919562481793375348852306101136026724015528482363560434418085799536403957776246075337983605482904741827087556993830957293043320425222290153769525663585355874000673149407419125868083876244356542416555557313611605982838566021904923015475074611761941363385455650205239930893590060531080690103023453398136647240668191065059320251345478695166613317033540152323091767682251794478537930661804003214313121151975759199835578029286144544402763720432636407248487853768734610947739316889815537439300244185020034951107174413661422946002613338353841111648021582202886683489134405561551208754934438777839432643794973149879453996933849182552226702924236888148944545453944605176900828524353216891969494000667907171464434447791733267833966759853845014435712306589060346007453626510046052335367029258674884384230206384971997551037928244085129901338011445382253123670212559389221437820620353370610827894509237479798820617958429418232391803436766655785647112181309783918632848499506041060374522827005974086360428507179465179300577782294484475629005758420759773991396254837655171768149772210776270960868407105024311130809183323202336256222962396858002294371983990374204705940157058799385218270482853397174947395090853244087702726350472324746149501497945448763652081236528532133725330663060150857986457921995133797582029246901395666854214746330112995866283677976151500108869791921798747102290512738918330092472362582510731966381246492439378186959451910551657431190085217358210898130926463981066576261066224827516115368386744295167283079928286412411944427770839340334034930766508624086312488226845255794154505209640613778646749052928887577418446595063705190546414552352883901802687130629552487675678860392249147356945733529084875187829542523535405548592048844104879656673019170824549677623234018276509339206683922539518072283654568731235713474447738666533887641990908590912243516898430775441419597303774615512520033914257743611764213662533924638489751868581767911497513290813053364360397552858598811305884216124716885660157738847522998330680395548862850019850262667451782441298236914220446290366388518030982159823504291973299178453960245110022535310614546049500383540157863902761066411636864095156844900170503827613188632045218460833881123043560426574749646638546088962766028628218719817937510804082799412019475350899225157921277818753389817824919826282679358689965021382875059256656028086981856979959931014206243587139752761774109404481650781331254548705189715122593667650898418383702750983048373822767069558309598092653429879017260550425203079668369801111444057727565850224945650886486377218328091783008620121361227731341027896906086720962564607456258600270663935397455426599164309029388164705326716463446346807965886177601352237772052082300597183619495025035571629548409327764734255875168251341396338348488750530712661496573434106272553661002960118262305379123461979038686776272280172089279018750999638306599005406874540798719479899911136580554070686552637616031772823539060971776010449940306209464899094130286270262594991476615495081871053224324555612269104176387523958436818622074183332095609475524543427014348617974057070031078916117223878045207130194526448958395732806343938096399393133173191176859044617150354843141875405804132562304509696140139983472449959368028568622797530651649312922339381693747955698524757262090547859462400726709019802591999902115534454088093698755292688729470341400794943906817740944688330712820961769999652415211126961790571565906753914620302730016695556110066240341383540974115857883114660378901250929235378602043320663548566396527356645050549786142277533461896933814813578236830699012485389128361663116523428675779598190038894424886469106480099382235977351726963995191582615388542493462839311182793885130512220704460470632192633124228626272326615819232781440043048032358122588277144667278674524908715340089695746083740563280833608548108591209174069350979656094186016667996094549092079271269174326343086050985372293898858621379155585404104075479771260965856047297761289623488284647264863575921858662300580071358675426536296596418297931767462296046773234865733088266452371958721678316996528030978680123374950338970972024191560765951626879325847127353673091934532103484567888417958327887034954248193852363599952286662377710045202796214340637214902610311114020654517902354272079312828006979525487103872538953427963300922540047177583165020014540729664225490962746335268391033440726835243738287101756123400560938562563818821785610414877465333359419979150317111629858853027428235919797087176546141799258016694041421342076894669972105493422915697576433835215303686067760192179031736583526349667819583560299952232858490741990060139074206664494830739966600315646450741275175716427828213295306695117029236129722763786773135194112870038734978682988115204922624426722331781438123715677099374196457062525013644075792384969353667669243740893832149716065388601861653534197992479392580953398138707229355187388967014077369366798200091059570868772932147300160249579667257098997025056238001057872484650158277318296063074759517137713651184836135920691583781637146648843156819414583820253945191044068515373459067450540109852899037121827343595927011972542851182365664706965551545933052165043686905838701901790840654629840448749455534115337918635504805033953950441452946863639371114352266238543866811233178661378988824306344042760569177758066805923121578395403461646336765602248892559179325829343986731144022203303989086372077106444639570075790932618048388610842372808007955603378816581614122212419830679815821208754239098566865349944219630650230968535867782146944891657267611718955692239286502106252044182223932532681866804576503760090996055548267470346589016063120051260905292952083597539066477830180050422625230219538707073366699582605165237115746725882509906130539904330828746502983638248189767946483950596840614205279738826023941034971711950282327802341170615316276410977129800272721250830608557966442153268854700802924878852264859351748663759898045691682414994789465093344957397555472905229217769525864533773759029028621012092065209420020703653276533362856389065939021855154239378102076158947891749821533635869628103856684148596311818878304255898677776863831013049572838815979784383103187805615065553100015783451745947701086271538514144322182573673797228797337812514797901540914837624875930349238301740035489748978300107692500375504323531326596886398538614157866228009751685614769860638810163952005973732077149259542492757481237255281945029785459928183813412609405508118487650515725286667949909496093302598927021898142515443608500051536688907381197499433999262602942094532604839745195731876402596482519462988614574680241476772673241238678962155195402581181006331670305047247571931999177768733701393234035414795731149840596350020759739434202124629822054229857757162803862103307992894220097979223919539671098023968461110349305698303738261420124053645072647131991502550191083578222845842083397159746128155569387854713361445479606443377704682619905929724596796227458136183688234685644287923185962432867572586914708286861197253166063518621454527775552403514334308372224860892291135808924390630727429834170009651255773280351202808440185914257319148482420079090010071193757541044354978862574857599711108185023548756137026854986050031109176796507703722546158326633723083430475076158306769720890123094441510921746055179920446319041000236731589888401376960434274543332225838942938992388255810406608939646982868804328807301220404443726488700040278334331805707607929721529455153632522868166665787463128045801993382906601656032541465035876415169770587288120000273383209909315211330678791335971216166319246657122642914413127725407670387989631612740053391834972956457280335457661363144480347040618423503262600398717809593575824540912065865841032811539879909417160080079827009462579309534234766088281790490847922421715414651703447392239059940475399895576696109616732815867176760949572049738242911672656865084715733189629393684539712314873558413920399527130577358562370973811419510875055423211072960842096930860958587560559063244495702108009716139763317414570116220395776043536724209777084774683315171283715331164706404179555695045009992937742519412565812710490393676479477123502397863205540172186988905860406283883835038422890346554468879280367699332511231707429130006326972514216399431106952886490514093122410581757843637187584286648952312284738472147003389453197454236203186690788324492877632016892474808249217226843885368477464564152397048709327544440097903172781174783015249336821094194965110154630809456681295288659635814120465990028228320960563696236545385354864550752377048213668094062892672683370587493187699489991166175454019501435470008216719694028469260035721711181397449661128725530422895585174176672628800610641641868257344016288996922130835389513553144121984885587664066432333696596083886749877416214779745960928558276521623497274313384612514394604033929131581701922329288694341404779454072248979649353388353754971642611124639388627946622666386673676244670471189926355516220568374302920958991501533970144599498478172934434385830534926570683814659950235064194810278063249311036281797738319124102675468402074955115556354383018743201815298857662030422466766777879513478493799323018230326453887827929188222549470769890579032377473461722161118849753357893701432965859586630174275146033022328436526623632800134795063242001578168846155927205773066027770739861211663748334979217259687496298386796537104207472493065663069799668782394223654239806794787772794459709524299476718482805497556501267408110987535251749787287871691741318399808885904133400924603276578901694654708502813463242622417336882692455335518192607483068285480527576495040161708441825323227996069413534495124985791034122344315143998022295552994210109716690719218825483926415605586773737032992022829451243969066727521228945365101969317609604361518531765701040715661787399273108671422079901717545670427951963210424238353085809553789460776177493074858671914471096018572543753910820698636667156546925529064432305206968631499109804292689542047808759886172757220585188659512291176705275256202041878535398697063468111638811652465558680187179789648172960397126568731772118347700207458423654331252365483444161104219744369295825589349302903164508498247480812185607358507747370373353156295205508976530053849439364616203382765224530923820094884834548992992562785271043935855102303323145682341642663394292213609890815437478627291957425215251968291845966719667763575402961186593368463527714083124189185090291618206915460558383382075280425632890835679727838855064140118618473477901443108561075000217292190355643786061720207946099287516535267273991149486462860629884775525893397676705314549510413982821371057570298244469030912849055238610508359159932639715820288017536249549531271394313893473130872260481048763833121144226444116684658782987491949498889353516322917438729881386702361186998680366082158909816880960700442516289131195108826231158552725465624488324970589477526066266677271533852116195426761147168306654775617127860890330797013510274779442558773503314439343979407685736260283350537688361280188015983613286770958427850957776074415605753305244591134355113472018619694148456788059505318900438432583760056450872193941383369190861767349961157608766484786798451717834649692073306797709631699238236147892987785112095673779648147374726735021634913441220936838733409163524566805252736486477041527256736373656505667171674002646093522402827881626917529796456168988943399605026690092719105609237984882162743391341033658952845065265971675554966970056680238256436450229895090260563027174607799891588707603153318123375644294176488484976097326828161444645515001571803205068838552781992952328872540534578901162006727985585433331773629249188543067271646438423940510192127892236607473211879009732285830362680592349346087225392619510629151020572991333437242419655469964341297249895677177062999780795695836778037904079353512783650046906544751225799729874724420900779686630793933426271925053910038112471989816326799147489718219925358605139649068616995075574023985895188479419071474327863446783434303688804301182288308739042418098011993667868543961766135337736901847058856340279262999061630692097254695468535629128766149161652483754213068941101918250470190062258084770462254473951952750590159842738674926199457184087167431976694302746481981658490978995860474480356860578489951205325887658927754653851928175792664457606032536315130280131318738873376239952741894709817787911116964296767998541781814092965142307486064173779214788884171655863223679037512339748716686992230676188959731174777507839909021739123522425239076896133694295199144908383309287106339608479861089349227823766874776986445430656042129036047597293266358725435817451346754118224586654675255270274769133796828890794255742956730552431222898235902547426273842230491445594765815996510470748163438521611144074314846431393879768836155232685537557648548648453590037036329695463702798098661394754388678935886055245387715488244497676310737454005632748351213370565582744856881422738124150460856248218452496551858101898096611706425193014212531002758551298435471104470711447296613351941171166587180609954551864554871549506624690035227364525338874453369283001371929557066874358478947606702522543827506045217397483971017893938095438311998425066985287018182206700239191632490531923998819838351378229337141996478360885961039703864210266034571196810652551899938782933713226499169925212159843392089047674028796867447870210602598096873241972221726050387841332161451105793557620566693720417085981645961411496653339481889140282688018788941836486321358185057223401963692469995327488862169040835194199732553361447731729922087262014286968536179259018180542051469706191713220958146404394642005572566421452426031855157085456207451490095655400764105452500741503677057466608902315943329154240196449677752357178592231019707785193405617261089895671340505185025227215710012361951076133649215222285607040811160519084230683470221040635509142633539867765873806223882994192870287582281714742270281863721844710140737968655177065016626042206799926569794728198213027307740213298473415541693323112120683526021061876811488253773107912629244371137678744479722496207565606603767934664061118192997949295214785333793411837098957826528791287220932192143861064004642770348794141941712807997389775836908699252875066596962521717908587411886191601351401735053141473515946861040081133579538713169701915420525628268481526617382080107900767635467443992384406910206379558331926971962565829679800316266566995671182232083588475455040124312077526843410494374439026385974014174473407007090512583235994507550719444301591380396060905587759326629597422882700570901217422313705946638663708052450943603989223910890163385099312365555188045276478117519898709910555834253033933873269467536080724736440106661109180465457747672304416532889885479119065321288803118278421867468165331348147773338601357655945730524684904391530087935228634409584647906012636241817199829344589511525526262140413869293294637435031616193624628498461717363575928948809317396073086499892906209758896186890004703490423714959620310090391691668503781711627838804261408992045189886317494630879724775053830587540571195579349446503513894298084536502980647646289015397047190070342701115537654806095526138075237604433060272423036842983442008280134041791215799650930555616962201822953208413394615856204090386922605604000255441028905397961723674399657932422170478997344868209155452099304475089283541527161616458962594508246415072980873208188212621496486727203837361833602652996822347797552001807824938088888049338633521905126310075338613218337909707411909313944261464921737900345305580528063661498053178500695068018435126301845295887280654864522222434229146258141646623891428117889632958011936550221079837393867423546281778474647716000725009204060419418586543390225941805710519870105309581269275748239165702455069100867213956150836835284748996989545775399779134541262376702261987713022825576271621724003514896848125638447315902032043460545153966510017924887930237954629930174489887252319048340264280454852788035990822880689733393789882085735739800589835651708873320346030352088823419851239339696602854307485990333887094029045994809331497310888910836135555487891815005500965245441410435064977422547619934049850391156243334342349101710231438455239673773627691668946889025218202255456815159606710268486454665227505845882212887590360825193686283330597381447535298850591292159929920240153990589408269129891127644887945898212835520290544540279248691187691433420722368668246421412829232348048305371581261840150220412449204478894465186502683977583669214502031064472584015289112722320467233873170598905577366852800705353847468341465220510676126388500378826927410574810453766701426680929782136999938992467138254246054389457782544400951256316037128396884047541001828079102781985513939950635296793281065885281606856873958955226364044371965861498458468996863867027916969167366851094111780956865111403682407815061088789311969590480028981633126716543532361706761683607788636976826963381717140862864776451461373256450444504054005718386871008271997685142624668014394962489496781600361794005568500807112317522243802907232557155049447868520338004310575007304449179266123866172409048004295706565822218782248252619446198697536560198172261048917090775711051023803333427384989437487981733314538330359128314299699237271514994099148089859832404505975459363405371527331675824313894215888118504529227811231141017684063489169923203433625530864063882141382353653950544633417938414013653581233528841505308576788273903010150439408408739366109454354086008109043641367127235604505774857686064181511055525948638590937702797254783423069952632180318335633005714968197043522313414381387218568398193798791510262124515214707395504044280520112286728554454082691467413080829402814185290379096218001402163809349810033007623109440699269360493601826278568556710606453138014610687426485572472779418806662011816552969219982253229239650559860535365411731862453244406828397322324368792438079695766869061616988369732313844848057905193921350399604559581882937740202328387353164269452603250053652743131096031038473712502908641451101266062289497730164027615478230723411570638500709177115010262031852456080825717390297175047739117796303230053520842245414803917961776250064228750902353484455964052509035122841895824860430263986015898850879630904190808871988054877157317701966360010100021492475704478119362227119736674021073481461788703248936894208081931125504338775962221427900509524035287921367035484743069039383160804138961446424720507931295251388110303080416685704986583450673469752007300722629961861407731480591343973838005447326512433444915578516272127950827338141049319504154632878926051592665045695471583774967645492950015838819067416916538203425894836186984512211998356669393504408416903283812636307766703108383311916772156178205503177596166635289397173231397218168233920598157676445243902014894580988064867839591213941166724590672150212253517601957335808152562882958485899841011301084847313260546038036751040094378495602858238167636477034286707161797529454218150471068359538303642501676347782155191536154410295055303218838896125441569432395161977160784730978700895486991378722291750247798833166128284679654955711720942600515122743258409646145464836405038530670659298709228358233756299852226335726516390747620478850112076159623935604848821755770503138792614884012138328950129057166283288442353282635813990152674928117767422913761099977900533585122980222493030102769442783970493365750291129906287220524542689921886729115948355474815497841488018291222053406839814204276205097559408759198818165194507564445963135989593933907568386984158622263982666951373841691420303619340008267792556758893397042883012280976502537475141707579429223912167880564407612345450614759741021951006297401701598210088527645123364128928572531320178953948215591404812134006202396955325540863368581088726907438143716931067481293848220660815783246066138420424398808609166191255158176883288071804365489250962245839634239381944476889463072143749580028119516543979021495532627941454366134337857646291542244179020690768670041646901443125024956747346303287695629558371863559778310696884705541768370789707588842358671663858626950614495228726051763811354449893974567186142104456456813197232954918919582958076977802379091096050992840250442647426508997246923967365014175050100064272778451436946242042180044657617367849494289971268720110717197146604074663531763726951412955759967937933150658810890924303074199164881980883637556608723959104372798820622215938419814967948422037794918049484633559396828173228310869572925438625142979840297985115659398166273891474387363659565525402293315114593689814351717397130496202632120795387737646298870381358289201671434496758668613815301254243560658442432762204829973789515358190079652523992123987959664066485534119242890502638835547246836352105305107868481338373765944717705558075725594115297247805456064225540386200156138184150210422160718961315416459216127313524961783852190743314620794586828762732536372242271104348111749408942057055351884181470991257855014060806116219873897061038940962970807138511779935398574140807408869889823293442213368669233196232897038372010871365939072653305865109013635387253007843132353505633228231934050150103237111445039297411395639700240632251307834874762013383844006439172993479864466910020043000328552803893263081169101076540420352473626274554430465403365321891137205192889474203357589300498009771123789136228549406962713794502612730534319152609764366818799335396278845933596970035882071521746826453306456338591533109227909611384890511804118695615702806942594270615178495768259703969912705676052504543409983749307667192121594732636471179804831790116947405569575489684134506670647667739661669584622561169204067919538123149009128952786534407782315622795282034658449390928652098721882980841637597039723477969513377313121445598817749689357834100207635450526331799799360110987876231307810229974902826899529176926632402768864374096756134050169307067223994680571240730991853665464482132062300208060323235347016306919044250025884898752681653669294356067384713507424652373791550947462157838445776785737302880773268868050670955643376313511621776103042185174008910176038879096733556099821183997366841750290910953485222385547290521255180891578343721543646112038270878406191220692523585638566248424698951968819507786023481238298023112680123934508182896840870696082477223327550970794591020805390696480827099102550230645652118955647848636441497770651842406301561781689732816819821346583550472083152606003105010198455745082941884520760834085512485975261151669768694183670458895361344612485387095041673827004165062873675005044772935168745551482538098364006929984006187799685550451692091169939821256763271393350015588103139484170104323063273494488615494024163269240689864014635197919859498444155206770354386160401847636603281084131378652027365606646559981504704708824484580292292261256861820857700155386492727771353596648521910837695908836854678485908405389942025990611869908159753703857064085682485425510934668425295282838623725581748405651800314168965239044866477946648401949645914130642169122991939369554775034147126676084089956063928230462745521323204242753666732296671840356124943610139177943143110363203025935858320889908699620786108410633499437556759163457805559405219717751669813378806482454632204957294856542291578394733527029027466236559372682094645995404484162919669071846058661184681476185548316237958616262715906093338553078687345542576921992057578415727352442348262414403857684077571451460320341376522008604527209253404671629008677803404976855518886403124878578633039612625594169075064206584168613140605358100762595987669171956115372683034680406124588221235963360333612180908547474418638934722938462707381794382845994449116689473420161709658293185477499077964607798861759116767862264609784454200331655601061948764473932838764972056716131731942086224166368221574789988745415756866338640242663555136676281949094891377101744097345193203274787578266853633534664857282770824198225447468616892913859843032679139206655035123901884452519384925107615202792029186009198744369816311380159210859337875915602788285105033350703450894001246653855767121830431793147966460038325151888934624351958981397704564837037348999842218213783391243022583184977523569230612213469902264847095033886196521083067471061641816543987165158162664431933226989655020866926366318588387204655510677492304546477711178504989745188955281080864167572989408095127407640444267011326676489855627092384053665685215714439911883477006463266576006124523326182229217983531710989994676642520432400098083362297892681787458004609686381828813311069203172860810989432940539475966571009492395953369439353876677877939900187806996972276988394070977509260915672338472448880030949865225218783523525453279343011069104885274474291734825295039846260128078772282293945712804023255093607948072230387365660262739340283713463282691069909244395139147271023084360046201764792448372511865692687179130065484029548672985777693875165679519510855648483669246889643881430646433802017318618241040102628855620784993040972173338128329933094852566060047126277004791878854245026491385437991818323498436980521784669203582333531859642105920420932025851000156772172012109191555646452729392873426466979744067684872980703833380960300288808139177370174309160387732645157091074105356933029980174151861336694883721609080099297429489704606375626749531556199433794880468483797692767441361491685748548229686777117933086446854482350943317058864732640568657878314435475152324200451479881496636855922432103924080787625313782184255621341572503923936289592987379791337453470287620362115282341296661889328418645093273561827235999371936887276916920699675007364691633629596171839474113333799057896446897823758905797913912084000139229518160625807773544793485702956364984996592338372106555430500975999142616500906811047097851289607786549992642004051041162174450836689671670264104397546233692298310984656118664059950186153018823504091424754446344883781458700343782081576649714779262856673167530027428056509771821513684134520802128999108663108246794787821007781453434424166078745345274032395231776785081225503288035056525074147828633242368034295355769165740796885836786918384852085737522359911046172282655589862033584047457138350662994444365983484018209078680127804160725825896900741833364823911225994601460573563293681664862078783404947915177411238232697070398837066139355122097907277435516857831649828203790828778360011419345325553118261863210437359794242176852259009755942527178049527202047924515161439914963960387836235000782791329706563110192312284839055021426488475275841567470317371545232989996835591293000571322773668734277311522397827134412149785147162435566736727277624474960427529413685992042650488045998121653636497207733507843672055573520797516090318360304936548827917120882216670933860053263737163797157182955777976995520986561264655200492895979513408734607273735650311447151282513849248299037466666324275566426480520465430958034902204573488513028579204136878280081623110428127286472324877026182868897506656868010332271379229119120235948274819349330154032973182818459236079746601634708286547958703768879249834068626304238631631318744124886928111709562765375019305134666819107183155638275200083691310286213811072197838889369045133244274940545377718835877674057956667485630724419524731060579446775547567988936933376965683679883728652934848783110798552637899517222571537835994990808297020771107268886477110563931616103146209484960800181140809062557994451982849726923550069675464679757750478557548374628755958653906975790593352338749703675989862292491106296273229987195544538101553921321217367606021573322273853522582410068022140600813358890506045763579462332884489049553272690272836577643015818760147014881425490353594341470217578659596134324550178721563050778928180204932289345882743167317444070370863703491355846014302836685028686822303698601061311271454317174512834457225015579456085567917206998675129411109904920741780555050050682179723178279315849116124236010974219885328459655147318077708150393230311385046403400214234906193791362542784045937180180579851609127949206349086889265390258139451577307922789057350554678622533482684937298986165522989133710514755320742960327779008032729104611233273833547511563758269992833953397147129194659201881107866803333778643284836349102052544917498594297082379895682165136815956164924513625511404499445576647897427096196484986484429699285160683748032496759462018659926476195165720609798465784015580213181035318372738561117595987731695403010020342149246489955352085516024307147869929823636067637707716440659108856064376457120719969443913288231921372690755129587036350942116631176074641189244487099766238907313265596654566767514158832389590631850551445065672438925431950262057090349284140672633664067563766682469235641164925963235192345480167659308240082850202173076811123061734950577736462840939165025304132897445360830347939767070788950566286751876130733158606591137404553650124613281123020995893554945267422554564921936578039081898746559505016705348070657233166749093441432403209650183423822673326012663076622337749228404180575400818317857945779353756458605480515873692665619162280574965891992244002935603660381022568796355119404271470001343509954128805239240161306107015245137432990381069675699317572098257704220766651507892205780135080913911451312670705305605674996056221060838178992580183256588128099428751841497279524288651098541235337418365582287045067967353053804719989633580458997064951579097312866160148991619696821766923650861886135902132070966554884551432255740509924315671404050124269827340645791085218080360568679461335122823319787482635885077415318167367394435839445602485906332899381780488730999631222325108531696187796326839886307451090272664272400534620835405384800902318254612752903347953512465756820441099333698396562519691945956470374163668674584538224834795848634137324802494608283956785315817720186750392658919115871968593507087085583886644042612991867714892961424806424814328018197268729212427564306658270498631812815092591622512440830216507296594112835924558019837286943864857195976109005737402538712019091968582360277430191030901367933573884164017461812235258670222510765931801231247438542405817041043088572398439408975982072571232061265997280727568278065381551549548156417303047456909114841001747536974274444066962287689247422324561777041912850509948203692509693197468468223165235871604959682879886913839142636500512331151726811512072562444519310428253938224388897057597672494148396972743621159255239929316852058100719020368897324861760538546736697326719792715822152106152888772105802192759982095530441123095932432518854877940035392888256659151451737838949404390880570772579295638002067825911144906385726596100470287354229702900999889768479520373595892007919376182876478482917722999607799222076956422578800509464037802541444496710625576222014592596801753145971506928458660226886790197444797184692193061115038588090499133131578445720249423545747909810751842685297096680768009122156940482507040100588653409810368354650579309116819703767524692978831855998444725566883059526788232472642164767247771235531634100342927862369158244650823232542233270367541327478195882559195269753364851935743555182650609081451067707967156686428448134801914127347021621323010080478107729611817978385760849450277273199210083097044512489111927727859258068470386157920781569826846650354348800707849608085831757260940592898552032589522766848252614027415811717638958182819845308617760371342663028778301371916381388716774943109825967033000211570996230199551021036614348719159463374715854000109306866922591544966684933799514377063216810792158088665542787718804148471435973429427010840011968824937860187457312647544266467254998730701313435254496715772409230215595104205771715217296007216153808454301987000756400114249958091790997356953270761399522386879977754030200772777328268274269825141295728516923872672887150824821309928517283563988577880897987902740199895197270486786416450546239196259239876564560534839096727190353905553938718795769902000998571678478391403407983986622614984633926354744433394793527719398680685928095654729009775953001263872433831486510621059450411131697761582379548500087719229463554531049272655570332516207697839193428598461518365411532112755288594892682185580588477611715767397553907664603320911618642873644473488734371970250965641582243961474985792328852884700143560740615531327056074821460569755398075162510117100758047761272817334983529454229275342732384595587197932211498881335857748896563581412698198009967458083806388548040171957631825878709872162263148396280769634134810816210673491431777194060937192438458475945863703306659608783329340880777937337424250455094665493540318982365585307997561105502969714021962602909408014058392377476558685524852110893361691728873233811315387606684577313062116930835213934260549682879621892950563385762177165358511446812011515212387653992519487864572556701243564888224664779015197792507136854060548981354896016613905219675811354440875226704433129649563873426032867982536271577164737833570962437311228565129013658427057305695085400841131610841263947925036188774790204434949457465041389884287742245196005471237990597182981779487438596379587366917284509664972353476100343909984547629917497768956358318606875995300065543169632833768178182225785125962794567230601099743613981432541918746189910773013374992091736449269577081129846253903787268975650640687937397199597777714737175367594658646364780069666856374087369764332164425897932620884716858812410574935887189489153698844330094617268974167076412080331826788387361372720735795460973018845800189925195596850141481901274768975387034846704513128629691030594893085148326729900706179307072515861998147087503386920090162601899145367739200511147099248846130628023298052947678276578243884439155307270834903507618933985283774537259040357621135835395322179835271739160193119108084466546089723203740678033984813643483717193530148567877883580519108975314265110508300890756600074481891055770084116289091018229013473705802868451109132254675003564529820335620299863823568069146214786907943199210568097909157675775275470817879209980757211854238645401392179687218894397241804003126639167745452853820286341217737833112867010107781515394171061629260556720705888778643902665977631205162528689679068198448556169613095486355338008368914696924794500545101626825311060640202345474373332668827066703972757886457278242807897254134667272520995075009145821568588886046789354477936057873127795376234788347214183402783621110825317258601896643227946057932520231777745175797157202540639569162255728571032513855725752814773834766465153231678114674649820095161993683375496322886026219540802625928920706198853079273621869374709860952363333114414886073225176261907615921152025133247014380352047280342783730353963433300792213430980517107544535269175092298146260410310768732310622383857012083493688932273224411872146124334458475341846657267681410125310024298116098273472174672888821364186876931626632683135269338662451940288528768990403042157712554705910852234914987143153407134894922068693853306568757431805046203667244087253244144490784042465445859661700981315049971985035787067501670029125183338302854362502736933941200526607678378022768133301815129405790722341683730691770320677654220337232854035330952821977195299669764823363609926466607613220243515634603592464212341199021499538248780656082404635227280748347651470885308389908310550675968552296230185237335468107210330196915777874845716104462113989625476456653155186228455701338181298638816135811091256520290070966709563508195607398760035784425079474508952609053079358342036743659697212297191979504517067053109377126211023570420005322418166069358033885791652592422756111357769999866669651365959747342643885874793193594235284116095238543067092846690163138273506145421148010519890493931952496313075050592096876992030369187046303556009088480462590212511524292015313139094312244804493442401355084860208325468690303938884979044793298749077975694191631279438294102082576442650603850240079365004912365340380269975270170845961957463886170962312395526567500465942911346096180949927142177381025803066379284673589337185760779034768469291792671587494570595317598544609428704990928717253128288962219334251698318644473852607786621407964586511405921983177410585741791841176062750371193464543920194840496726271696018236123466634803599732889317895530971104067302889965564465665589707942875488605866126405536348819830168953188523265902806296238945692092722827920184707540048150775757333635824668107717334297361297021726336620327053467239951907588649343652718889308260062035548969095737761915898699958108101375906848272491669674761961355763690535223651643838576746371345061491009602691696862815438561190369287786401329731597670410831259950437831802298037992657282027474333728859124400368016127614284106367743679211148993615623297608778246632448873162312468980155311757358658467030164091768408362190281002055406928832015843636912964197312864084034066238547626077903221495063312660375430985708068828512384665058575088984148948791181470541964130612887267874576379333022056485017667537604489579828681204440734200737492312586355632604334314734451874948124440422494842574750153560292445298575053184209620980413345418681718978586262422166252248832821778539867668851361995840146696310639541850552357736465871571988626754767731719724282941579119090722268974434123516262128545358425116236429279814151180277250810669702058589217202500755703679655012487671662563431970509617366264339178347728952261785873733016779632719134677474030825114977166476720660054113929338019682367004484074489981921009272226471758643389781001828616471028260809530046944718650202980451119142357527109249954385983353577823354568626897287582618601758667604078910088385964890109909146693626137453750601695285884863962747063853688077077913877976059454532234682924435167552749545057362891270049504063089525875371796187812882679146201628309611015023161517988362120965853867482225632207323407389130908741035692194684756448863667832400807813046494502049642208471781962688979203593638311452438388935561858103591768146962156898814077007777586186362069568821061668375703973374535163040015773490308160924354407699306895364574738297443522005126941624641851645971589957971687020884627933292960493505360173866490770619106522923257623694240370764817618074544217514424548334496402120853822059887539458573159405399412585667400504512750811799278602299118045978205820221261644923866976253566839070862267234190359225758030937951292242202004619922361048312346025733180482379943134625349317182063341804547518182144790343204704265778805574363954240589970362155433093349316032832285716071793964615816143563342334687004386401903735987793606042440321419995291096128968564400618952679366662002507087935493002590736148311851805201163631272047317906436457046994289874103525588986244786911081222830753240450930480377291748824193707032348931373802562692842263796741719466293730748349924309367792848793433213422847081176227062204337675303535861188431470897021293192025926909024255342513993401377842076200255498883571447457898685110654524240350003820965414576634246173300722795980793220059523683261494268203880592127471379916534632240429390921221130368395555581885787360266075250846901054098900676098122475047859607627151582828662847097885610641289003577160003415089387560648341061503340954230910565665665417997356098844350288254042161100240988694552787672448950589441586165439397260859745240432468629365541937943159150973879227347619162443977441513981539223414787793656158661484739342366171650870485175756344782622002348207637628665895363866733680291020777253916772179148300558713059007390632302795751040497051922992773206034178504662836922719369491728955839767877806376024141933063858725123951243847596609553937577291186074510384975043175996310324813933384256740585835580887758200098249431484933114887393100455259628091163895904819907820212185465859344751514081482716428579152427190052374320098698188172840075543213130293241334423987791019274012888921236782670389156699759401823406879875903291571386235558665020791800468293700872004862946380058039094243860545743748046740771343917408488447578157931516552382437600308728844392721562253765019382719270856455884540678402440703571158918545812523363771218650600337032662635179928562932527211086837389583467611233855783956829636300657547504921936828263703765381305114443339833248171117949588423459125573615304698203455787209209314998719061518278818549925174292846099986316940013886760963515855098478566206062863507587470684107629501636231679422909196211615552149941913094307993180471420875980635981320583940161525447904869763152361199375618584326754235028079169961201979417624166705782206057292729801362022823295360751107803158368490380635765487023066542706188385514532615626974770830961849219081456725347371746711291028947396894129353275960791346109539017276318298338096960996439891329227158980202066563780442228151186336505440000358263870874138856335932730699872583742165822996736219585158677857908929575110464510249145118955773387717742666466152443825181814826919248906865932479305824140083991334147999887387921713175085827239854866141868393311876477795485442193413357476034658625394286728123665158650292715913967806046664916897441326836531903628690080347179547172399834949784539097893126734516732472465433518693677962615497978378165885244681492668310918968093099131950184504569070626553803016083249349419819847765211221222185678752557591182162750915452730884008914599046978841912233186706336912418722692022389506604038867566904510677500453383558629083984216238617298447406426236588846572877662980813560590902560109489078530513330545824845657819026840125762938627172996394739713226923174448273594373446511456714463993134018830845213610439668410382831681345084019504837607584876960014104374551733994135779444107392059659663080292727612828816424081294078282961018022054538048468988557897971130536110116998141986075096840284037415683853772639731806201671600836183821763791760869394884354104823210943970775028835613798909207020845120745675113162782844677791689595061270800777572772369271955273478371731488801065200349662503896087523378868522078180715180199138413220271203252460660691943825506283276515355303481045585695264880467992415863040433538132715911723799158723107303671540516527573935614385609883472546462267148233396402096743616432135421231510927005939605749558739228347557411726055933856126872802703277186071971581661507962353540785868475575823347123374879899998114530949814871173559676036403476865367243152994254915492622226657345801009027743390722225331651436767219459566353026728410874885798500276358897626852951178465744660832009273500865694751118524806234837660816045554647641831649984306769098464563723227036778371684159465828744074504182785696148116942051373477780652394258263048911949438253129852833843143032348310397454024731816321086487879794998240375633088501913937342708445613481869337291543605640673961754219654547886208928579860803242102485943733943512875336114454172901906188606574751226537607625255858500680982743639339337197139622808663975158984421464668781837121634367837345789856017689609647197178141320018526605243961663176189246699125393264095518052776332169345824958740331198290127217814002994072503403547636089212540157911936534623520294101154570007910603417362414497841566494825961557145395490806712468868151954611541816890386545206452748796876849262653789999767101955357876482517310072797185479271626223924566699517817599686547016028611845079073566793659520140749325747467791198792633804848064234403508933635145322743812579789690733971293194844479737292335335513297489574251312792536193598532679101139585683726096939401637497070763990787259776044367107287558320708419268587320114821647680386067552966602338640438517727922142836545787591647586028643473559995600965404721960319437247428998398773230138040465557324664900904496965454872839257281575241497784082280885686783184154229672543915730320088842173148821950948805249817425104099154977329877495702625762054527606950771818008343484649821760272989888693735029947376128319227677362818774014983842114055637461177113684028371132809990690536510405152194475193003179699387758044672880202766438079326671720381965804421009695761617804578241267316282725601913009944600213321200361483418818078818827703869982880926761048660709184747102022244058961697859065082475030646778798462171354056390987130364493176898924305343425393775923537432151395220889380852839718823794269449000034412059321148544219543633554153272629084466495637612037387598417731768044356281708917005933005471162159177296217204998652677436444259296163205551909194329148199924258044393991938382996867836465145647834535414341851275528118995465116710041330671391298939683568695561909453776206492565186022915266218252463348097476532165328429178281514609357466018233786094994157154468116834791463189040444751096587503853781312427416698852543838764805160145833886019135104863795137101351230489793688995546019979009665483227864350448638238546345498069703129388309420553878415143738748344607209512484984808941596149425371393106880776342589448636881590634379086841104093116056783879216418816633905163327410901349998655939142543493310815683953115163229054698556967507175431312846232886679430743183903407116730273612128530676735190099053947151353287206128071643455750161498094831689794214176741673799455111574858845326502771448522278377357591964460329371399292979323316141145050587221436668616700463905026905899389116368622835126979864550602227927779338900594144048484103717720028406209253280928513008326236390312440898175288806824309630579717961618595538606130431152787687623981828388507752539296899122156691235210264668089013796829156188905871077160741722326390813173581592559221381868489902345399400787139443811815347066455743575239313867330421439561867004515992883580140760421370814004738055649604870822870172202105020793812063113894098901396368731874117475031035586939238420364031949553068100623195413504652690904853422227651522625978521284167726439219187114810475075656389527353785931601113278188338137845902596373381339093336417033534105366591373443721454905469656359238329646596482341944277504337037436372293179186229067234645745782611972634995141620932283026684986483830238171603263179926479769136797077326289409707382133664704669464833140617866421242137045823896622584522836512576564624489287485626753934475906445499994555378451050895179944921819393227448285660504083806709259398261428933178714299553139122682249183065193365896606579984246867234873918409413490579511697301115409772741349927215495750637612577661599327323323559562360896297903171000058168720673175929373829439249146727397707508786418566484772172152466347631343906417622832503907540916151394934763036799897361352694887925838515984365788270990600078564532137682125831958194361059952628801422417998075260709205462866938714980519300712901013231764753868045355947080920481426464622748998312440838678987251633338510783163618471553913219127534897089641940473755705770859467996705767629990757786652861670094303221303214193342497584431745737358954837220157089182904201209251494902093986420486391543639684022129327096203010188852760308714988606748754588830484542671870190512306070362544831205875459000673345734230662336143888709712684900617774522898015715532036722328835661294289794959519513031184250929417923170541578066830414494571766536267662995816167374390055706997733160163203974464503137798726497516442347036311152112448855493224377721076947795540143012573860198510966472727649514111801578057780736038836963917450938856133239846588728798631043422540137465875402663170248341846255282756065623037398181581767139132594947886686005718998976191231910815898278307002072742886802770715098433700508464423355719279071577724969661586105199524687104403868327818221751851292940358575407502635572855131049508571312193819557871296964904482144488186223732208454118408446886325234682399740433404096988007308916012638636356657602019700514015191102506109979217546217061116637839877095711093700657379723936576321727868536702109757369832411332382327877148504750155164048455622731270743058771041917965827147476634846129977230777823992071721911588976961301702522844968436482665677515440421510714692570443164873080976618231215167427509285228376890866578941047115267658120145685464664977775153484714974880350445284971589157399522882940481901575037585169603785055207427347673969522673713550308987680380581259973960145107655954658370811667251003097323094346232333621939340691117784360533151710956906804109523100407717412374906856357522941814030812000187694583962402800156851495052732112701309413270827504837437485029176421376582806022255773100928558924430476887494109276552763357738870124033826811419391202212418430560818409132451646155714318020433125506606148186925239398169092483082517601327942189458540303576347519302583423079936921536309316933018445868865614893813388726507864872321893432230317742726788051830656560528359733010288388283680443803236073517613062143122653734722381421036171174232657151531962267373131714516985690908506949304748306133529009387481609982818500098947368762937820168012471781881473185233928845965334160713827333812230182216190576490333275286052762668027484971096984889435337442632207702677749237772093932071117680149996565251812794047328362469787219169780987020141955204392089339367352853733816802746289274787715955714997643273063938444190453284584640117870831361225663712164989905422452977683992419336890512735999840474979695905036162081885531104846761811088175732723571869798701700839395727873728391275322745854858235591700334055224463726698311014503473397600454287137349039435982836934715086668152456262790934892851958549711585696929073973539098648634114219412020813475699847908473781586612680686147210455459356929807654651752211303414891265887071984466924446920900726719771771130056189868327622698984761039239014655396851770113712780855562856541000341277874160723774515144823240547018875016929070474583267402239319422476982295488173290055324450013407835217654147483952194072597400590247476785031950743877282803175602733154018849450273757353584625765844649165666499923145917219651825282234934041872156657003736133970751640591680513774954409147648060704667686627652473300877295598007335416933878159483997952265722650050870943034216841791743842682563595935657222628015789018613711729816753466601547077826723891266112703821211614787384328128266689422689629947236937154700776123890522446922049444319032471068720814869511772340790631911204890048538315181422632101229462933630495310100991685852191756495537081107464581328014149233876128425638129960528533101108432531198279292613212187053304878730760539425444574277332845789669318240438936231958864172409328210720133907369528785892964942381875353625744451454102838198362018868365423555300310487201909917066508114355371339248063030114213094845180830896179075424049842240061882615751662557861569298287374101973843736724727956801653913172496370242563759244583739100642706950358866817599934345756621970473101261385660408131363512461909894197025556804520417555003906056983298646701715034028627624095471479175097056047889247589512631854632091884034979208323446449246705194230300192064703798633497378275490445435192878266246547289318986210844385828325621663736732120324481198657553274229085968917183266581088724867807793143332635047142105430897823251265842680831192405020699857701388624359443994645613200506296349685841364540245396123987883327357855379382175021826641309091215813603727505399727673155796244562565083229352768328619294116899200869787075222879284128741306176568706449968728802850765135092049898095982339620119082521119944481213055613154346225605495832895365430222997334699466494924906167200503363295359059928018250045543412659443171737180049319544378170640288174701141104875792174260962998251796792977227455020194803991192903104703556604171853162662400611234451973370929342203735456965341683309391275894775352593333320424195396962287108899150146402233172896573811782986542101043278933246910973185944880863830562230672025738375089198668303481765277812208464959337179898431077825402817335799307589503190137191491445097658102238447170046264047237001410201063398716466085124281420811602266952319526052310388011705183022871542497898284005363748448925660580943295810465437217357072278425044816044934408913135649699035364215109578974444346020334001530359837189984290058361672042045146153315860392226034656548206033920751978959460508763411948096084867604653577706785939236607826548968268843173563031176571853306116902068699245343533371399364879729941025654736367661751721838982413432109132503911226410172371390956420251794852487683706976331659781314756475925240085657178578914978738524473173560122022865081906043497103442793070220111279459567705186022840740650383235026371875753321479206371783552309431919127085323613268240025623314678669815818677422662733448621674924436541991450714142181587486401267313069655719207765830256091883241978377451215856998550483473352326467534756365628205953647964611636087021595282616892997610300969596093995403529773893120820994641653936258129731196683685169997791411608368211532230343297229792738114195193647161194017651081683387248586627118596808096576846968315021435021811365776557906113236742646013287850734489824742617687161886509474206768750279638130766434531438419277635078336099363327270236042235215675829081572675200700386681533441009941968056031196508887142758148658228457034548788283534788329004858079139423078897879562801920580064399080704104114208280420158831672987198317048665375595944417351414280139103671382443790916635097607958205008492881034307850325585627000126739684688227202618745170578440685670310002177019143991396945449772638339184961479449152080076259468353611942358979343841701553606899721951316783263312056484516008955466942014231111302266048779409689845268017510574505638908459746282069150001063420440787865207467349095729972964086389822760061631262890954907819396152898528675546351645770752773970556594498241535912544809170015021974298979514402145605711508015702693366956887431807006532789014265176669299193944716597367332844029889204547551699001520860742635578817045096364211780944540804705641622702871171997855137041107902553631496096283466279663248295000714213086400621033744604096855969826604199618378154336185406355124730479773014359608531373945130497705072894872327359595463113517550899456737738283384909862423876713308990812567139529779767970641445450664137887454488391106696683438280393087249319315789316940192300810003539057613261061163203007406734052684650725614683371986041920371498856805954139556993905726162437693627030354488548660833659584386104243429956005553972423239128959045339868557373866058835892949724284751048749240379452515643770448931824102646481096022067095044225479358339693818307913117657339612119232029907017725889135039063811835112376997599278096179318298648624035533294701931631021144288948462822978281390739661372818438648991857083495539001779515075766011711411073415339801764531970000564880350136696731359915885524524739627368587947594348708078406745122195986658393761271319735813278993884800161885528737522567085006647936507446249333489373615965487417091783373097701560808744732505368524975019521940855510319896836488494866975849168819546022423156940523082575979099628079291626788510071268751258315383557493978483465089965309376716654116019436363784843353300687443577435399739363494181112395247820211627492545018978553251613071141819795540246671369788714220020676355680969929395686064368368128622698005094530177258694125489394957978567861850620106629247080246019653054404723575534657021754021812386367169795768969557162884508032081066793585868806089565174123446619685386242169046341800560603267085861784211672552071518619198280964515578530200646404700322577594216282901681049470853155025763223365237366172158654240403003795815116488270142913677352617006563706338192439606164137695284069966684448285073747737126917928667002224101914546782761364276667478452980785203348243627610803166722990312141207519586692618004431430354458728366671004607404225212561276678659422024229375700806961656124124899687624420930060701223503501055433762766038574718333834457771976685736394733889176403223406230400870533335154849217440872183560050826949886141236139864837165935348485065289014368295439482119550697800653265103185863723515754340796017947129443525798118590896835273046861571435979193600670117683845755964688281666805926709588730735540962695044098005876466586279960020247193417207567213323165676676820070857232251425529339386604580450035668265477802557004518851893487141479658262346178728735441032300387383171401643285266092977880594828961016642353901006308412637935306913417668501981345898418192253630779713573260798496998264577675666457919337607573853692830384449902699625106041617297116171567396540322978782051323453774223074375192352733156822510784024879744275945662139991892392248422298905703386823871009248227892114364495515714452779713588549158018823576916727364208548370593473427106620207290927300132842756715115153178553088600364084894681849562029364715407445427570385593940547484815872365766146916450883572072668226082231509979168256727883847655138168895380071503007064134335914797598914074679833583944132633311463469457244233506793963171659134036093691918349897173329202425549802784894798574437345762087556550466961909890572679578411367758560797917895533793507356519437864574602069038131287409033147085511233352871245212120130580091843377697423067587704569253304643644164409964409782628856071689334347450924229632714878746432851213261012239154547533711172632570041361387662521743643994439954096943897925165443713359412890351576295168095845119296331998386463723874520754437737915751178074717019758867226524204303305024327516745834831930703508088385995463888586092961696115297100841420031996639125241317236142743732358111580219734358995707143284122837669502607972693983368844721216235224597938434316275599076148802493297691053683653636391261120841622803981740846331942707756146381876417775280689763832287016744220344679693992573420695790112558434424914319702493828942080383265620780421511128940000255714718792557767189188256302567537693476316542895115318820118927256920769489878226296674038390217930467777483681132932993899876110971835766236290818979469827613135673457984777516603844935343689497612481269364978730949562400707270420665862864717176162636532739488074243748751511953219745445310935460852424714856372012529712641665541848936400678870072242399624767238279929703689452239345914961913406793029272285186196165745746153175469101051245098961980565914410586262041146724301770933454252384191779282603352024491759475341340917175350465103426155011649810087670527562241213534415943949633687542439468694746647916662522942207119007282910673657108920592853832751696607749609044464058414051510778669446101917582828132046144111758882860720786001544011399342463662901726165047242881714690829353976840927185502614407415800583187696585895930302403478342330977616894710435228939581878155708653422040912091878530291954800623762866807149058006287858910296769707396635321104156675870370011180655510097236989517827956925183651083940708906690245482712468402293372632136842128490123206549208705452332848342609727810915042710787380042422597610849809164757255150887548576233950889078954521660096031353506521702940889392872233300413418133994389007511088908670057292430877655191067878358513370110111813948809439567652511700484173593398109894026309097067691923005348915797151832876968177962709656373284434620002829510729666240691162041986951788437877309774097471541802104549230159087405648965632640971426330529314148171464637428755526462046515380423708671478159267941074561254881665376258231528077739545847938028689363892729795047168293665712734226687929958861848354139443661580625596023155294263108878763106027549330604588110621058464564077072743737330603815640886387531859081773389158640941242804156440767901652690165093710346532530296216101743632806946675116727941242869421399028881334058198077378266277379742847631238849592879350074512609735842417186045246351967098379690573190056178055660780986874349277727579708043277900473103450886407480584903049485453144855995771372962544103169909531850824479986986679122119124376802581498788566256201208883711886009255522552842850216040196874539730970054197393281364089195543043590721086340432551939903033782411894816929621802499124457903225357220628331048748928132649727589857633672366744025042622892093037401647047205913860869067657119866112325331920186074799894849411345518635779249861264682813954056480059261194978902255953951974618228350307652068243362298124515231605011535257499684151006697882345480367170387383309012410076804034936929934459553125600147243533333956254094706989523359971037950364453736703244973171704274891357637192074043248692513586131520553984351242155592021958451336600994666335260771487016709970784660577596335025527383854935925388964452233434179203701022612756923944590180553453886357880299371856478679690467163637070290750066288471421331194334245654161907848619246462785027284194351260552699822008533279442262849765062689737029372122049732972671823560153793735472380947854123186929424628167737807489574833210682012546249282713039219153251103499755874016613560315328088772671507680087294175237652784349669263799047568788922787089499848197281477950606985580970797433489293813820208377720173439888564996694216554468977350213921864229805249184842207560442628208336123367365704659051628923427190538588828076948417102957433489792810755363601254927981383736328837544316218430681633873350267415906453113358346943376979601436183945953620521131972934547636647692052640458836485523930448642882154025851311252269853643956051018222030653501582714649920428981949861637729488688725845121689677326213538663214371848279908960956242021476323083738352100068195433684075114209232043684916469065876011815039644144638542747391753444057464192727618639998759721941132525982711222353472258991458898955841170202179177689080839579142254070114645134253420292531101539962148198162792826635058458710678808253694322230879798367962858871852566988495924283032573493427475952680404949433574556446294150824642445330063253319243947792914964716973610099326474085759329809827069481114299722855847849498986868819517557973535932184785888670339607633223166274514454705830107535571643209008063958848141702553081878294281605007884530753004163571185546124908017648147987650497570150562945223039791707911352747590175852824676479298093769593721107755815278413149765703710285534781245845897955838541333720734131020578164202229834053177886110786385089663442749875293477855452637237028413140596706619839647156011391957177871623260507067733107367218104746946874688442480555424508562471441288781223778401740982195109929239709854998545719211546056942021463586583999340901766631877543524634355517960371809527950696839003165028120202187093301297102710229282955843820274555261785235947329463759540123094589514018905968206688689284708862948173726055783272428790148773725076570561610141942627431372877161810436785596843899214595840220086104726893381938701837616744202250307199760378553685143545662523023760616953244291078934885091797052343153407117918939840452074127327215208337668340799947195299272452596320836490280088764977087737806276241527112086005380904200718557021512894206766427241478893313880096929227809611298425892752274018128679827343292111608587226728240683240160044346783261543858143379651774203567047118123690473931767326528207451754019453145234692403696159002752846314321074871320281068035979739986488125110567878081013403306483553974771905715905299507821607679175061892356282424468432764137080302399459824405558993491780875173016706402606756514777137194801111670484188242702844094480852924040032815573482649287908504205119445204795687030474757224796177821759319093053104596017680289221197396347078971895212992190265667939903138763811734106382009557398720926499721499539441065463718188700670361154333902392419897686478507121084003961411413162767865147524583949046776186729270153768434536257539087181142354110019747474873314258699536369954009569215721300856037943127059013845283425311766355005765649275959537307901634322802907431332413128354202703118955199837186677641347535397373243098094797791013123314802701777419981507789210869675379791199633805080033860760258127935767793080020752942851679253525755855512437910231869598175900907574498666577422529497573045913333254854992113941160468714107903095340804029272881462928849427148229518644372554480006163242443607938798401073095036881007740836133548869813160263484058965032152822833621272947828707654871381809524863443593537531577655285626190974760462411050406070821304348537988602750937420016747399847381301348469287761852807195867282228835759806767041912694102926047462529303535952202633753873412526753114521572644254481839698322439633583170391995237076101272542124301754695335333292992510966023562550885934875543291351256854684016483908387806672145419213219558678358522871958758530072764301514311238098100439561901390991666613946924928622830779801674326926835740101648501822306846953385915599557497071015277142245464976949363501212942651118915985628807380544312423890572432284368389716092549805727031123100903405256591826102151258290712652291530794206157064713334280067956403241938141357809531746141301011268137003595972785328813675407388928622718572716384196410230357479026933650468583193780407150034056353467853620627327352320217535975599695143879007817274100859564959593813368383867256592467552124730502042079195369085835228580083372025832897945657886108198575081582572171244237239430531991175386308151127282090830923131115112763893885373639301349745566662221907076567491646828976397654576597594342632391116871499859283928777448244028390035237630519050969384055175389582888959388852813902565592554830129625370596990933937063967337652185079655309348230725930463959168474447976646268917353143034537652927164329808261222024409826747407289015240176206413264759669865673202551166355173599688167436119654267591927749827329225119911847389401669749954924976431862902185103239513567662013794005235246903312637796270101439540144703422254258496477318620809068750681934613509339652416415397689641391746333018260903259383537118772993773751530417691717274314755492047951112691797767713683662521031642936836051141452609301543243290401377620706717139029205536677373978690325800989612878736024736702182090036427063702683361519884808291305468195143167836482039734822554683443990677357265572184740578025799145922710229190179522457143516242777622102246204151285331110589492729836995720198524178279506711255346151672939008187057051026067710515180442120677443829444114424423033870425318495527771346844954039871997382726060389676679963525343682328224485986089175486511132694943824283987885736036734180542658966513411508692773524900011946767702679934213132127285490120906329666268652550352914917147413487361847469542034477037384354695352070797022088085535447212304670964133621715851479433001271033845541035165572017736101648255425202262800301413556948898202414863310218994289255243028999594605256002773014938477881207109309580949032390401707303778399448431398239818782582174238396208095241154917479817497034556643403035503893901722148935816284092983228797777001905136179209884842866569094777917067148130982831068586804614157222841316752886567645817336083902576707658491588696764072709898952064380230643353165755836387580592880017964757771810827021954196786944623847841916741792309640215407181602542704025378681838462817329713022708662769269377896728035187999307653593311041087407417789117613370703633911833269392492696038269837099320330168147364287335210256088064192113410565721029779138821023254753186658504391636946015350023642416717552438435351321297145361308619443075849567229221824234636450056648855761375755857032510664557281859117088344861401054109247934813568089266075407449338794639747836709024736686037728162679453274790503736743791912210331358272600823246339007591322959403787744633386286900545157009413792968491668026995905911913445256102131133003635685089320239919331879478645907299670317400797820095272688587490997725957128059243993354259162132726168603770136652600541495990232989272324943520111328900891712161604695644016671613932794824317977281215915696177009812597698695385670369369930972283697979334781615591398942208955801504084907575661809351429079537100309071504585127958501827218214565383777568129041337048535923432922357814458210589514797361995128433570752612325169303193345036711438123083672301161904126882601002956322508226049449811831092268970552008378470684875562620957250888697568623904768124675775502171342020238717312047394401150504308914863329998122692816605657011687573684282942031410145507669016651627183256730515545083628888320518034143667242700528917562509594498308363224277726670858210199191922105229252440750313497509364382537702168152251815442073753534094359579454721539346462677863698696124644804275951355820207792379030289437038122287199289708187589334025767342618574843291984868342035158409656561058682087803195520370150695261955408616807480084879506162594981268562739155886364290793623246856873322747068434278427264443716762175907837149138473355640538538041808956843185658122581217046356820411805737204681361790694064333262677662186727757493807005512674175677031546946395606807579147099907240157370316894797286453121394500929524195295205247735393617073445571336090617084019376901710855697866466830196720778968017388708168984717422451632981649250745580791376552323612717105542749786520432094253272997271736420363157281315707310016458488985566089211958535242194704491298783998731079540750170460656577450344145530062298084195052933484920522002414322844633061989128966645810576685559262169766776665703760688257128093676403784578301191989897777685026908559686384228087965816378995923843787576404133157748733781722933217652301816789484259241053745847429325978305989952907767419316741710992077685943978046383588059657153955771371916560342385984387439077907675495375493400365654088885077622466989927546887832055608216348182613580886413416051675824656105861178746670350707712008735250169232206555612898088914887599222505296100576600496535875876871254040494067069843689802521580200769845363572139747992854587639250944843461281064953769659495270655613864877594161249826802833750933713180911877853836793466902307969140706981327586937538408726478612659047555221347039381079435603717603620025456531550227892811649560944968868745134532069700807298988099256210373830681358523413817874973402869372819684498662609061229096759497422079645922808791700475430874714752485032256790583423110304912057997981437796268842434553710552068096047305913991617416421385545620624745255445094633550325815371960153961384742035418976766979614952120412605768513043957751504532623793966751865377743905277891508768466774372942148220733190553998241691625755844326223287460410640481047223799362218692220796296389784823148899507177061846453987547287966471741530185270471696324554987017965699450056333868400573591662882345486486720344923621578807830371005408056016561449331007491327673518983288603093797650478360247034414216698112020401051038575573751114529533140484532352762290080694781108426695256441587251168839787856941149693175929049971996841806104889783426957455854211643561039619275885938724521721837478853524481075875539395187428733141569093009158157731691134277010877311254818958196866448576021542493680576715134582628028212123412632996420294606969270048209835920409082616687914585908132473564173790477910923414024537130052971059341773012283484222884575052701238977030267957525085572484387029331127539899754186035452825609879037564142996265373048306327096571822818347045915183746246762972172504060587051330277853506669825788455010013072614563949179555938612594713797517118796813238725154143227381594638412915095148475565332195623291182187113163475809342782360462962236079040564300826830229371692315259643763741107948638665282843598875657147817568207687417382965576199462610790666337733937073001701492542157971125459868082059237772484502598371052384839231352404103296690624326529492561154823249230736819855602289630350935988234914023676331137793436305750672676438613449611129904264863076339230532878037577550863503800945708843707334076920045205507740486778137755805582562858853209729306229198666472644214107765973389565483099452812089932961379272733989496327290241611697879746611212536181263578456348330271774168104236722204824344163144515596662062336476872856751222103368235046037322489792310420545094107411924692613140195930115624374988635226796509112157109169699946252808791055192979108889064948175792796649651633291316480492121693648386152322691799933881208496515699247198539217394599116569800306211576054751973509955341740075655715658571645410172853679756913957746623274777298257879001975760063809160618767230669982428212592626327112576786317859484482817652261149471334044932772925403156402309241369589859303893599456602104627324325953139830331164658261999366222410239362176371034536839056992407768582189882199270609161001641196460782581520287340949999047242851086865017259558652227478430675964591831251866702449338058437295079262775019073101669660850810194859937581915329169830135149253036501897529173382483371871105837692325611088248436514215763378377144897576028525671081349959750836851236650669977100460790451057638753694147129861586974736635474399750348637604923888339836909968070312016530889277478399114534815269372883032617557946505666537997212717534712348771864910394010129640006050849303893077561751627871743166249292373171439232222324962622807842957945576444662858959813139740147720318441731916824912002845100400158216421947890758606561551595696487011503524624433354058741308994697906497794590517668348368940997508726795975823454174204259741934741622720794275656467665167067629764189336069724018910164396264986968518021764840401681056766403292718109528374934157631250005342286476218692213667689801885586202990557859547912695802107554568652244815574676957350835872718742784787062723809327316668123290960437659606534108718456774079851933061249235233167157568322814103628880696567043422863450481113113535753094906791638758122297657444819368952648108555014580787132466377382510494438877825193225860340034824132736108516128150495808580793921974425070014845575906125640836017524193021544410442078469809564961833415108436458104376209106203239536297627614056996424482450810713287716414885035242101531399053958508667627099703759853943908805674606298369060780803402692980320366922764501243201140642793480906027944742710759273371830425503364684529302231976616636339720202315936595125688939330744615311277402954239442276760928197766188055903043210838318456507422753722788545602866315177493988036453341755006776116558043634496114938038017176962607287882586331015160799859675508130755731555432325860199497312671694582070671228866636899909472721009696431911857007750129991743682530536228537342694184507208046515223881549185492089406773943689617213606607623825313079832480968392552838713739368643940897985706958131802971563538691038017626131354437461152769428284771941747079350004645693272248307313268565431395319854304115207664764401692189705146157670646925805020371680955006862341340855466486212414638143009109749697686254541680591317966583179945157269536176424155842479668506192252752609546291639957504376469895853553383758418824146739313493382066229658416975847238559304413409367302361870027947703072234115019284777963579654042211212388875328749177144098390142297201144742045752518792035555444301608974497898535164970701827954391429463693196128782287250979061011499553310663947398300459825070559812668650484003002919048858026232591098669449632213988376614368049273098638018404905499027683598394829364353144107087789400655257138109644276406863547395838338680347834650993009001956806065997955865229664432920579308736985067018430431161988478058240777856039672997246105683179426499317090619680902626210377515321576846478281547316262233526134234436432242612881842666233606761197528116503075579073443543299212309645932726749355716757622389646762742372120403679612228411910060109899676393123116123397679682665565093357765293985333644452737642959298456090114360488848179843469374948949675011347490453402954695716893213240972901160658989361222433346047926645575523341380425035076656322948596278945360125710109603918140688083595638108994245062523632491776741159868631429924867331997234716929913568029811100311682262257467035861434208188689873685796351265168515895979333129586331818234515127366633506716064840651347629583840467456193036007634883617908748013930648083145103834206937432126263579686054672295769850425933170622932738608747171458114050919287435411721145178035655959489337109571762986227680052291652988148463100813086207536418894521335579470157118759813625642168033695941224400582347662257958587786049291109682946629871843443815104775035599247783564476002467683444363035813897962406710754199509736307274747008034844237770616033612713688458551973026379951203769181692628200405200581406367368056719969684064518009810342835021438156556661435064071679625483475716147121947942916001516607339084842297908638791631387601798213801717625955719203501384319043144496906560683300718677246980117197711748793232707874527148915096207820637872053564620966662524925343662255853975732368229734695594323586312010174379562355949070691266046628539284560700838354284015401536940849753985354789456399040565012437301521442795204418410468260302299812711283006945715721031832088026454175811460642628662024474159033591168119336335465454084686121725234470367714695422036749257767806126400771521636548881856586347884652384837018364006611300986364221622458955843796287984861630982546504406268970332522220906033146314272848055917305873215382290113889407572239608728376331754230545533793635593274251129183478940695398255043947588509438971020434503913320866519065826950487468603597156915967065321411533663950310849975479824456652781601453884907168888081227065497729344349389220622248004537484620377748138937843060009173024003893360343801301142041690403156188405273474443684540056871653237035065701347598419487330136968350794282651790238290610446382977135035505951788777854782497056417412119229808104810093286370377148090834690156783690836469193663011644735157741506700722510693337411871999052224285056135171209732018932630900974791716748683622737401598904695214612710160521070538986192173550433057590920676700276555159150465814076091020630407047698690378645985296237189492797305591080840710201405753717347800765468734435007109396193786425009331877840216674451498694791909963509928447403422263391408391063553084653395092842437088181853160305014173758314611809615119103196852319518835402072706775162042646645303198366584913754405039152173052198092998931560406716552278085493617854771178651746728965530377842221363127651221318995240407500435128705572113531887882514425890449897776201937623728061692063499565495652936485474262456723302032266228101329855783294690415586514840495393778879178633739263112697523787757923108182468958666952139271446067506943760874550585700989836420770026538751669696277246750095960518339821129474022948011127191908369953626777116509224699980121378774334654562005032561247562540729026809904235023796811992173194776051959948786070898987573385834055685292896218468101389823917966678189877475245142731306477655050769442729194781973666035028046747997268495804048018485312856882224932072447080371799712476359269437493449553626891736375601705806423481567643356138238386882455246837501515700118723961801205111377073214769932444845783811638638885546907201284957625652359931808841707651042890189087471857552792169400884326731980719497598550773781277150906838312027307990256620712366122329437086720858032158162218029224308592388337983576933812254546531672886613930091906526588590691761464313887395223448316604550537917675726061720232027439046952319701359060185024568713812628078124554131933630438376471241413901102514186419689051003362531170263457675688983276444774485085671550146215388633476214546098763787964869711850416561400445842081211005781664697461200870026857753584681832626170244928609585483738331549559749085072822551400421165505157528298643027757529144965144863020018152273982233012509952670654154962641025834492915404821673877917177471774272266495924388893325005005717771295590092281508775850402336050599853021479764355971216117757231317788334306485556615026515402640970131005287408691762340992881661765407500639201911686712561684138391253755570038381206578583394398733743144136636869681377999802975631349074641200952013238188875181690583523578306971064523198109686345068042414467248633816846598206355172502621549664351981732453099031391073548321950820983584231231164412705668294376708810661435783395193687927060074875365437128390502403538536792239541549450843836951281636575444486624603375575391681599587194983173171316808930754511686624834794698053517784114030739260561425124589325233764145001834427738395284095647646824058386906578987659006602539577590035221050175791040746786720138558149333053913206636422574934362218233064736602283633470792609824365303796718299067559545942649786712228717380680044417766259057699654443624765772697471714177865623950497337679495691724737808636293623048127259120301361836924454036491328928533465021621026468515690308194315489234257551210295529165072953707422462113937437696629936194390377055572610421922220081030430736564100992670247894477382885892781464272465027277678569025559605585515113188896836146148530646425015731075614522668099603697518064981214615002990361778089668604270680120994930273808885401458286260829830254989912173072069222676414167248191847933766471087768818027550978154195882581253102539944169495762952739355655592330720667708082300315330037585296340699537411767611434332512876924118358532842341506043403935035059412194729848244151306026889298959211769675595800215234935829002563341024174744975290980519141753409448852121112994920885543350412453123008948191133796548320550932581830382821375547569290857159464436321023869128230029776631741413572239498606208729977208691460756366425876585078095297625110072332419982227238626221364402018655387360238599680145986352905585281943230496586552591029629960335600527594661376821596293734880800774909496745624026118642335749823560746051465785507384434078147989342547883777577696041560530797191108411442562584239517249751345255755736514819886693195492349889500112811409454951740382120128068791123154184068377595817737542895274429431983238990951498762558596614380450384875617982382928219062635002026280239497951543851456753814694965483268038283161489640043339758512647726834625594413430953720157257440728068871792407694687335488572579865987700415096149607190409137203025374373082140837033280749238628381692026663700440221402142301672967093213331145948654614244479202353580478841636679018712643959450285246218700476326555419293068371739670218981768959051932584651448956197374607966668311514749368667936174242435413257420148835102609244047640397561524391812214289645768096413753408317711575156815588303982206881014976165341476330999878399509416865636939582569629771796656322646968059810040224074224877590080850975315538922712317518920337181581194417142522445138936746317470684096955899750153762496980825004738058588220609121293370646136114576407623757331543352546170369385001817736121503079743373704292346245810160514499788920206505016538474198683107828507607588651869867495342975997698824018563077893036291785021032421009317789975714739756961901946868095866720304520597742858286233669250609164384121277296368460217950956478920389324831230982411966743592926424457246480600669674449157998514655698976806022195792509900288380469520439191037438035784192707103576206371796908302450060150824347524036294698846017710789181616482845923614263657964615598483511201501209728927168431421275054186925338257709623509962653271175392579880661833349586809783239715395225952118531843580275332295116470615017650286273247194610599562263225600093504995208715679460476186701809943658144476782756502312490274021614810694665457250434512344190284378041395011692130189687452231695273221688743621372241628093546002713619166597086075647158852747459865728165081088512395119881481820740091582545869010251517766504298728590852856218720974368276823608335442311024944458391156580449373072870711177436497848152581447523082538342413806519872598762767974082404607595727535635191305013887467190232658569485733797067806874209317485466718084513856992300007953412491738415610914036271035574153583852147965729182862093187101051603332285599671373209416268178549590662165643404283281179411542097536814652819089297219829882030972071383193378193056650268252423705280672936227685786427996561569047460246471472166482641931097753193995493960030845991441097717195280734765714760818595490735545961021051257312059958290446368722331917055181886097195905163211865862089679769450969381912124879578047984924182925932185812467869224768950120595348196104591766031565657916825515224442579952422371557360879087709051465434808709315315878957671272901658519267227818641918783201739619386810496026091468116756386651245210783350360930249404600103895659182084177940420967684156159013081948575954849704495191659356103203982608161794470292879613459338838447811954424430063959859349889742730494337592140293502313703045791594076441186154983632282657647492733091281255590208779445847102748379726731376929247948529587068375193880606592938155219382792484490015533995654099446172327680228586163273126142945736751761421113736875130034623498753534613570356604969413491126129823275429310999007726414608160357788182554227826414806185066880902495171373560122733028040222701493411921346956873400076240720268524293239339766133364396276681398508754994223892068565183125420944932209797875585852510021769322285166838508660335429719478168917691094240269491702386193404867179302978495324962914720480335057539484721639325675327662401926586914959076928756570783327032887588746881902645299703923864482663072247246183168509038632184000183233244052869676256257612125544440320337825063535242727870685505790892162613568534827403900219002459805490646361577034746273405017771626144767880849603180348314825735711191870834530155476324492261360659450079456701967825202020499400869657660924331591658547461065549344056227671507315752957665917837468111814509159241607746843090140717938881153013761370487515098651405070649126573937159191043701824018210413624314533101024544593870337161085126454928503405716396376967882326317264706193399423498449732394187463603712668099948456827510339311072918736802211902852115108543550386291804526773119471637745211377410788198229804196707205545984351261586992521760086531691300480412504211041456253488365141364258004778527852742168276946646950777072292262209880356568360828973816932456512508325178554406338287255132446206658704277246242252283466260930192127293936026784641927463935546955371000782530982440156911711389869071821901839052236852354147315578789171190266557673910648658229124349928666508236007220532992035846103483942178370299854587664897390360371382800567794837357327889622441580399448472863939129170225322838995332372877024287287104669568727095721830876388691828116031497336621711127465594522415372349083986616573745878351654591551572778477310945057442828061817843022521257869927248214830639170017812198267120084031587091138588020181767366116287353788588387742415878904055505167556955860725807227274696798254790158662319841537945768316552270771696545113000896964860634310319179743141557832165296642200458302950348487667984292546737943095055881928956460030406534803021419802109362778349073483206463376425744990432503896873347638917481047493702118026579487421343677282588008257430403017524408012609280558140669191189073770666213281298991056586428401059703337495378513535108858240926685223020430686362648428924920239207682532546567630447780190702233068202751883349049088849236064493072803231777120628992114957650329526329929364269264298353322684454837227263160069853835930208526639338251315783428042520250818314416737714389921932447014148650462863293171650861958296776813380725914178164985254630994287131782938349799549526949720253368255337645540336689120813972113221058500432475366201495130418998036098430118145964061097028906530887200840486937537679646088707317415488579501756226268712418607611361951810698459571260907444817222143497962658748539608150160210106248605133495094355077835944346584040950091341571095473624046594359144642576862651540553282789241864422207876112332563071529782721864233500727594881934127505191720223299275691591364182414165967521250330655737110960182960146057249368783311877193497033604331964312781947032614343433066348265709356997252224289214960627753939754662291199964957882870357564685879008223972375742731334234129128451105230772603347981994913803897527215743310875293458164160265795376932266334194654452056856023787096826829267208764140266713358560859490999360715946111087675244956576646526095311861062075582349516321285381625765555436846247734352086041649068945297870703266261786078012958714196121778750911050146355434064494723555102351122590296939160218695931548498891241893081731454605766388405772724829354485909005978170029707226443553057691022486278959149470738741008289515923011772629260356887634698086084149650571249119649866503039945199831379138379781247409685026614338036773899703999852295042521639524161987658997307619314211367920584698022942710680027890915652020815774538165580817599613293826119091021374486915331241719823284283647287791122123128066833519007071995074626038901198294383921247535205891383200546238389391310445552466802422090295796584193835863674123306613536972417099645960292741273855021786574157666570632517410300731573416509676058286223534416878427012718291318001071296941504757562690063719017722569240372309570889641025343791035931696858695262968549422185371318717322136439378469495059428988902848614055150507410074861528815954246538263355600757259919752803041911327790612491585127836862344252128558614597289576594010600183896307546043289882589436755847087365428732503116828362511633950696022515487237749503140061694883960088304317366144813069352192920503268368269885313759794499555006280808826820871066131169003679677912151046626750689881957642685258011566124101185571091145477065708977834639956584952629249294814186549030107828146045117049516675241906261077402859052973708452652642797701789429828248172568668258576896750594342388067336034354435511725802235832708421985449572495669851763830252815540491692041489073752928623717571645670278546463856237548125541157968510858345633910029449032651377305842979051898837541347584521913779302585986392380484140787741017654463584708400643673557441669001022050024926464276885738504135905288458654646418658958357874465404676591715441545543959980921571513215298438958092091005086860113277135469883043544876595238475681345244436364314679191704672627622198929283204758269289416214183369608879947029081352718717501042061497531277462616469435282022820740438045995469203762059500615041068432327388730973233671094053482203053095894604130708087330697006152405435874976192273818270563575728174235378970389125667355861632289152592076452169559935601276888856288071014515384149043727638064360497885215891221934174955594239359144183469828209873733367996492207505624890666736268733959586214944322753949667155282230597423096987009048104894654823359032798595809924309748538586680985697494655401978037224298792719101566884574984080903472915986498429370622981117224239616483119037702547486188455246531598801158217251897774463577969086589312104314952308355643835867417491744277126212493857817737403527929341970017951877384533750127942433688007308432489938686788684006621472056504897499085495198898902007909834806116039672565353893846251962116997361576327055475794464194344437935228531217975753365530243255556619881885558546430518349264247143875670568144097318137639731105195748162325345363289550865427623992273833650079037134230886072211181796212221851149660825966968038856845646390696286131223019490883426553354770805664512436717827732510505293454468250868788500348768066305580070253295831360402374162320318576269308462732922079566934383650404450430522858747953249848342750166383403962453796175910359011306096796659693747975220055959077969533314781951965095089922749343986734418106592701424091624964406902796020759272441901837118114824744003927595696295106798338675588520909124500098272583689326850200598031720367459649398982607573931123865008216180633544414906330036241383716197004989991110196759979071205339482052279015053710862435351770314792865410252031164461611000673776720885130948587133913016349974181996371587591799562852226999596719246610679903196233898452423606549964642689426634632367444377323026014085556435489730435118695222815140618807769728422279840990296664059369532744502346698084389157034470433758866163008976433406624866799680842774859943212144231228930766686414456848467265953142878103985637378565956197967036305403455196452472417604074353680197541358555291147368431513297525956224264626809543780973062563125884794455089847295043620080997378902720364307507629854965778614871706208335701581075494316314117234314939767861157045206061262622451495975465606983381059667891642074583781703010353299803307518412139640709936619096617457242547406269658322738017906536263609087334483341445732178137149586109511919945382540820284402344884183033762242643981014447644437625790012263568137054459481046819038774982767906668811422806869137669539065906496596320793148705330848876426151025194849030414269743561458824619327701951647153911511183633929368996674427597124104967430387035825043355789194698771566538304950937029061861866523778494151785242878775162164875242091209046967968467133920473157721769500551702573114290754379840298532570452658419999189397044697414583446504703495286359898092070303611642523890931155071891447909142365945078052686617621065740857022254492199373899976126853473873168301395915155640743324553004589346037429855916634171059137441147671204611201430658456731513448829395004759212078476594452761311461612265105608237313128522257082283047499299921732411845473795010812467221454220754801738050844574328940751011753989577673260974230715884311046229806854233061641472227350559799938794605653423002883804860705736613510225447338808184712686434589417380935120411443263046396379495175903465617340626648170243063426206979579398332073995216245523798287889322549206577700000833642563187705926976218399106706475150266202602040887437757038975735692766896891141148879346043806909267665746351377215582642169094800281853618419817102551736844168027112607980789549653704318007250961108411363695115507474319736718444278164164234495503674850723930080125624250005736615199394716867298347579259507384136377897292584382753906700488992876361410083479771128954334800493267510425141390740703746281445831837642829146697431099606584834052463216397208788852271251821298590080664618625869360595767751408435419994799522293336128522625353314590781132590514644538180685698358971166468952958814462621540483514964704306224437100090111116616105896439895828127722277006764382722861227073750252755063052155250236205210940543043486441336089161647864691202397469410783424311367354742150160371242810752832631483813236824252489050611529094454380199795244662746638913760469326546149894787204543939612426165883332542198685397975574351022118713612982092347890370285997825601935593828114029452384643943825400933693712779395436319905570741425645675179709762210970642580726582457742704878550945166311259712755019485822837392847431677498465052538879857718355902640169726273375728734754712054821514039118685302198398169907086772850890964096092243621452524533495066581315188368351756441915050113481157103218478167132340317397681287480581567545231871875033111247693175279983420649510747759858334579965821542451136334061344193990871250729135157971226633964380544341404518449497860174424392944429349285412580134384272322193025199322960560573132236872767630881702586418031364261907265011470260504644066187571088044945802869734615680666621282174682243281228605948866805191098207769808815477402387194089874563891180256743313583906963775444402651770608196489357932459928438569426610664737364331773440688864012294709924099816995129905663231513736742539646655247992922192035923100671386201906839196265457281209363312506418486960098423729432864507186693883825572278561829021693983586893885803369578214254745989332304316816163502906109031828261599235220023888134466578376961527794855644090700914513593336068583833850731704091554238137620920609391337586696340135781987661335060654500653450457325749766031238155103772508319323261212446574197943585418633570580405158546280079389588033428540654966812970869141455859335816568151567817007103114165762503078317859886720724804993948817221690094899447109092719202604704287006103876770455497524456489298403256283747473834152945899417857779317029462540412012992996013993983567246136385822114752802482325169135294276151690619435997279614495880155917399656164841046225877184651466521972484962252667284908447802498391873586724743334770367001224323748412067785537103554155387834951411483346785714361421080527424356828661051569059517950181534928757811398652608754711968836536429382752744094130415532493123305335224992443510862875414779025001660389530121254526955596533482549207684548677410015266668937222750876875941662714260814215469653901924885603205473702248153339924935046361931515073576484743361685495486307469649022205580313638977584799640904397403824709720096072157713946113400357409304712005843356549693314882328830903151959073724791814828083062981348516994428090224514590652851184823997517235971418033257233087753477776562144095509097720452059203215993650519697772326858843278144245425615557230869070006082941689092930825723514681200555922203842112106430813095873570950008389418068453024868413691812208989072525713556315466111250645017121470310188814289592716079724791171006015787615895457770846738136620677488609670876978944826878804231950388892309184188958938200893394547729519235430565143511729014250399681402155411923423982623911473915750854668150058894064312099129245999669384947326863041972190385627427185464979082433935449449389854332013601276304651121813151337155635076104842027856244515197121158129409552941236812054825751850282571638340851539173181664663842082035365059352095360110150499625059120279257224712383174981130763654857176433561751008840456052377813551597391595998463412484813524427587234064561069782521609495584505078434260737656159376784495387473380725563334753657207074120424592521585469872107421602575635905920373163377353028726638815860018518222547159394612379168086274393954028705561927234362543295878718170269323532900579617290712317054835009898432719091399771473317474755524302365808185467443281685223994361570961418361186758773062024766961684547938788983763153377979688770961218703982548417225743151458497397516789357283043244707305552594175959502484392390207846137875722489630426122610937753838430446568044178514438499157689990914418896065734167731854222375043421472546828089847914834600507724180757800218360651036994354031490901131661396975289723868344003231541206110999876869480348158831427238594394351454077491319561560428140686492948497395986327973243651361820683300509139035308294713896054132710096552102169374786778695421467764515295933630704864460546629999048546630334306414363321053147543711754480980072899587762938717320401396254222868448576156446608517325962288638484743410224362912537056957634558282801115132758864142799213933633544148114814234790128668777045793308341720106654662952842537991616802949851046314262271275242466426857213504433971093042722805532253238803416622333253807236413858578182504805797650979665278046143796531715410955711006880536234252997066798108367091214930754614363214033012104996631277473816427641051759334474206944099465697576407857140927494203770514081031814591057601991987288033660449130258635199543106878012462622569497377184648813373675742716938340933896991879526694441702166441687477364599054808568977435334462517349269407278057979514227083567636246189428231646697166118483603576420084895217281588106660937069002293812343957961477773332759292585823421868681977046792728071232705392752314675957775410372597857495798468228764139781349310964424884614595727786370003018718760060190872943206315591397389570019812098012298368042834272822124339549338890682364578918220311530321733630398800705099410868374316952968241445124467642264430926814378123741006232890479877897819573008694054211007353580130224075183551721006580473899440592625588649496038254453223252500863047758760027342777065585461840765211053793687259047151756941763677176899863477034050390260724241432605814894712904639045468272766559151086251071013383902687614730432471686169284775967173149489751974475804029693989991521232919756135940542217617845914996599487865913573005668002340169302650439015025745758463880093627019639576045265603252421883723829137630418751051060060524746739661280720838141145982704945333110195519197992817813011093090082541149873081626342949764229638302481512690190792630882133278188912416629317447154427162988012133154759016678008385448260032724488377276340430038608618217219733341159168927791448545239995582149514251914671403905214616934089668405514709004515807407038420558272257475318451591918974155052031804508153202667086933556147569277678395270945498229958148893533902317757759226967056815891249545484379008080345814673265639194877241763267274419211405047090210116389833356077944386217962170855965701721829074231058133449256624001519238407900597903860735356528765731979129969175468416804363213095223571148519241594131974069356187117502300387070635963740691333574687286592558684805449331553976403224159340275637982147331561149279230621171762811080113592995698709417628962494689683966704736979085807400149643960476453566704497347074146401207077123987682625069227529274995123445756067275249470338913360522207621354819571967507300869124099052422949200673820711093419515957750233193366133213413967708950568050435961953498405641820089951560686579196488158348214966386403839267699139061472295146023599683431122390413504670161752757259963007475046205406247474760965856160499285704973401530944704689402495284034028176927731838243196791925812366242565776469964881649283840842017400141567382350650222186337094730946857171282344610119441958745594076842790463504606202596131557690467272860106529613303772915277701199554911309190106414764693995843835183840122509391724528456195286038070674697181726634432486967026059218431524311386747354779190038017872518355473768803991726747962204941188521551410437645821987338164496267825499638826793245664053738821383480083621767507125674664930529317539790415999878808812114194751438809999295896401844010630846399887872848804536746467731906221321699990753661746541704827769197708447682707562214668231188016850203944545502101382811630303529511929597002305695513233192446953363485589301151485307159977145302402989592124726232281193162426859000354046953863909904830271506973664054964605955344352519604390177439504554093323815393058754763668182731640673072008970791024914695279493852901446014960626498543941692541860644276732073122003954280386226502724110402373541161879590390465699417083855338799237555097362748894249925849003938273282614052393614423412331879579137357279550418560222370724922897591996586902631885285540641885131279141099432831704994121655986984141057988059428188828896726936498929621318174249552056974933102974231601394611624348042684806417640025504239949917135661694115379939649385842225891104618602123402982191867549638742007938656662826726366406524186098531043074698287624186649751120962235366998459186188774662503293512429576104906144046681536739457675654402658629205935243221037748776921561005586360069250549402639802400840289171932967074085861237684138947595541755075265683593838433633473895238446293301149033508898760656349770786441726658854658514016160100873261060566727769262165441386997160545895785302394200423592576491055797915746173198074785941628343660792771602271720945192759919874967662260199817547673773189258254821707159849440583043306308457191018978315584491893252223256081431233351369429149897856523445528478783455821486368475689985051025837331135294464572199965735133616924448984653181726999172910103948323033121618081191278260580504139213458297610062671545499860673951672699883617913925032358598112817383150252557400523152259823114581920514427457126742330838491182016416814188127233975298586495197629026539035568321310116542465226975697322315318927679437079912157892276354680989162307865966706252977923418505584699073895583637293369910773920904162565025603486503997622631138565528803354131123881439242200150773859840675452574327884079762704878628127609052707342224690418511324559999290362395549206080182817656298274274829667056613873800523380948456779156043210224408334006923102747171168276974967080127816350378355024516598404052084706782367456904572783703145366380747032083886648719083941660478355539087753487409816640912033073471633553196657264066138059677659576624587493310107864065954652679382613154581511388975940725191952694783692267641269033730665319864169136480652231054034648859408143401507388559748164926837444161726449809999873234229070562933388252692729773234464770016981856122764523777896312514515900422530561616166776360888649594740772521660717979750057178361744903647224728137649411704100993487944676754635422111068755531717845149859185886901758232823392990623745959215370642311609406026589250451372685446846185878095970925246312913323742389114119254358649089971011999326467775903278667626617334142991925463105292577647669732047600283776084146829318208673170571533707192749552240917335022419997744072706486224188651897080315166913198933566407861321301535874700320786779716673337493647083644128637144903407075909439915964681577037486170458122153958788516949191972928971096002527165497504115897253735567743887613452100560612858476236328701504794368403217893419473484750877692289927021497873657427186452975023391310511700005008231044894797740470370190677264616362902194453667822566734966291985402841605313300281817768748152587753590975994570238564301508990028142197072730088639166970996135774107475258101125403664876544815863577857600747721782940716566133752790085216072993412622284562109600621834885869761075343635937202173158432706311012789448601332057429434554773552733417054498189718480143553107454086388693683113371076091077105196045333229420323735859335872294804355559913734499648192014472977326204146621097496702595113974843697773281787714365266649271356707918823647841288435068928692287148718731798430239738709894360302174079554968869904391297749689865580198049840524020902998327608378055429583054851795171878609829613361105999351511473873872446486821133268855323760941337096875709292608351566082691536609634930298557859920513807117861817918856088106733855374721689417526908948763198108135705440604642739544414616229630501171277779175397845774117972799862054007359112212634592468660270988208563298531824047074159344810671145254804398932625385807963661922415144923265146860423248716034353823420292604702912887389492544991257556728785150233708637075500519035987361955397096505149041074752577830511823359361486214746862238318976739955963691796348699832320298427395815961142513793406714008286002413851956982462313429796113424572386715759827643653533656590576308978455410315803086238171706655877511499124177090921595759735074743064891681833434168570891743773191160377666822239394363070584543040005000503609909238132826874323109254020044822927905675637731447635554495772199932792444636616070860382908900471442855138203009124168436540657092053449870201229390855774826867326994262207699136262520297744160718566813432013664957917358153475951883609389138965215396459809587486674324510738361963065956058560996448077605429212804897637686636030442593316198182061702298995482082695725474131511031518833489346890553117960044258755681320325068627144156327137686908270224062876470491485088593989506787320590037436319655475465608324311141316105768537349739787265887831584929312829297623107462388816022245054485256652811983534983970220113233054282418548803641038221116808199354753439736424407394749826099318784723967670006276051410449142374787163310012835080219712259181504645883656849259887716971019154707129698882843469195522369884723164690905805329769028775074958373986488806218079948925845362369535937898141813184338177771254638263928639029796553850417231591238492684423796846307322034416089527999839266058612004000791138126175255937971018644443817828363493751854816105157017345930125616754346623466575257347799753511510891229315341110509534809201484160716170481200934833010783355889526184927196638619122776899319608701891537040545372788341661894157142113584282312327538732658572715372180105801639592729209216144118555720971263364240216576112710271402429908224888688038583256598309406097033869020163414482587444112356172644031602343019955181980616997821063375588742682283302150858287294434694500255709724281848457229200230478404100914127238770815039823806689345289906869871294262793937865821971470088299268697856015168953404755709234495560088808031599158675587689962184625758470462960934463426658640249471837858970865898730846941635503690671996070564225709759497091569359658116748088990240847729690604714079994831629117294308290082592635363276478379673330911207112170723183273477350888634344194740680053402948474715807257448659218413791090536502740757769542165421637743063420341415271920939267425416523632539630192863466037729294640820565345330950635146160615679456041294110994955753402393678076616534468540988636145558405976359433047787199730364898333161332423513327620606213470821842329627649645962472373683181485293194246764566582753264222225917338331236908710081659977292589774844525716593104429418693714560680235032579450498732077092628463961448011794227153245081255613431360956885652129675236525371849642300354009057037098100455964295392778077324638357117084742906224829508017012642839249285969339960457040226200605697058216044617463874488920581207188356393302774109911548514113943768557767471109651894224669100966804351368969877336161392132537533380848474452957102431932635146320463925359058411672975080118087173906809442590959209880116236570554697200598066878508668489526475399688514203401726509514703497758158411820270258345894341724748754824088119048410860887691279782011922123841650635155731208273404812247893595243920985158501765266402879205801153681220739776417236750236461571722117423113794036562482365738362086011787166569825424558277972924488811002578780806800015044524776031447628092747909102090418143946515984530349471851430551528599219745653657835509522803971565408598825513882184609191229897170200657443400420112692251526503218804708017324373491802602404999216063482286338869813541227702282493585985710569140617459456851695884255137512751793549889288801517746829875352888657851453917503354639566703675448228135584824970481337866802656049162194487355011898632073445159977822561151331904968467889513730906481885253357791642945241309080141206460092501987343039253290563596505533583349292509021135115330606294026470615843566391058897596977492083859089778881999897881313372622560233498183392528004645327737894713228017736083075309492868150550975435709401124638696649731846597984552140704723584844433355033629635074117082870825238282990254724691327510846198765358213503260772784877307509865399630478182953114932044948827865803259834352964416816110454757781520649744530112097663427715176703134354160811535934753586188300191915029141681240090656326085159522802994601749027185574200493647650945574467678182057090739855574716225756560333176975795961222127793602717223441567987227601343189297649217733299838238216859640798184842401759810518422059849771798614924630183959078965677162287349720058384070728664394147763620177315133014569910802155171204843806916819889933514986596279920974460187162252010686208991707224353374525817129862986193902472597340676848202784573888548162576264558011747398774509364233778468603457019136846655075066660145465915778761403921690254484508168347698214725655995062893768527648708076893237929727308507910223069613983909313828401612678426373991445309637552525796299172514044440888101613593877912231925128266124365051380185086406697563423980966021893643934898503025434030640955854841366551481372337822411666382054574538918396096391786764745285636284387101137799187980773049062372207410135969722505254878228201312056640319411790952410404394124941887615885302059427510620856754044481790696725983516880760733570446266297954412009210108487493516112771557184516173970275759745163592576972211964111963414818217216447363485330451057263958055275788397794320726335022685740651124666500796862165076246507574079337593025554741842642916434280577194499631475157741519773212333966496240432040742901250708622914443065148036033079923397349405319232740599712572725449662088260393738381727760189483571461054372375296699304242312383594394113565111487743655092405390375282377365102279203414452254224539843104519196885327548048987800181424071812248050097334940974487364995756622305560297450590108752692157808055969330268491723196149664512817237137499129238062715120133302440610798953739060890262162569498765714249314025739570914753602068394821592482423861164911477307478129403175660004540335867614171441463096865512506841453949768874741344004648878656528265917964279775478387573966532708460885912725837527783355847365655073149911359427031436165825865562382362224469069936656249662981883771619381246970971281335094855015995401311627283015179701082678421351964217188766386983662528902446372158104347019983922649964785783833137483447970878279432824570625083861962032133528470095193547364073447820620758249286955878851108128679677842505637095300534452802630295536619783538684984382882212112117887912518599233960588009057062411750850789219585857491502069024764874659134521569996516038939635172717757648122252226085989308863037833252068643320151581514476067019180829307085646293579117576381664158256737677761248024854765967917098249151870195125695273307386973666526103694175271852832774595323272011374766136739425527756823896446320802884992264425833485182936392274320833175710309781587022546274575655357433364094523157563587024891333977523785308325817029048515237678285300865448384245596685272919707565360126199382157384461527906090590663075797242766559432540704080731847397902849778856414340736128004065071365373559789213088267460983219821126782675697890238300690590527753570678960973299322024665706043347275363566565923285567167442255417527927679252357799888632079366842241787722852529240420478090435070283193801207789672410098105995606762898426528686173394472612622418593168994809759017971921622053353924798116201525559850179815489305000547889424789621468376247894662323444464544961743507162369985374677709828595750079629355912984893017956273476237638581313055548463089154769681856805668315107280790721508709681055915665611029467154403972239766116338642705224437363412425328543647702729741596342330251176022688218337566597229142144528116512294359113921682335316090252138211639293948355975902832750006541881196618130935893815504790201315342741014801761909108721510623835708094999205001710361073045136929547276717525964849600237182293606965224394877861705710959053515222613956341971561500682358385130617177308008764069962098877706957309686158607973329090852462595937829155699104791545713004548337089885426982708219224293925455432804380138703454036756051904867353466008850015690233496935379129850950518643202691176595152299941543124673803262369915630105728505878715120670417930079041421176391159815431394531087711416227694307056857761878377051773191007543881684710353095765118165012986876531635222097183981050286851147077404554385928484851532282648633699527963121396885991627533844148298859018811466384653894536015690490899601606637933350184757997446699476777470838876360138985526087342287956264405305843327041142411760455413607004439971040458020517755653301823421190984340534693186101225305600292296101194191054999384547441041822986995151157987988469170640321176342761105450402445611453107304585425809254298817464637421651335209887860853131191034413119387523043386672616680989985450593060251183536380380439647420244800501036943618354828610766224276812722388486212583580764089949504323127598437631978929367845918353949300874788091286427941995314527216052170167382273788256501246856112550965957861036105749143394840138562286303007332030797381672213888199478806793842424797552143211405087352704412861592480649089083363388705024741577275364078854473356797571601792573134189155430490376522195431077484901307665522701261206383770337766820561793610988055059797419207789438414975168024235579688692255918935494226227344528699529002310339922895840834785198092995785659220411470041191839647801367798825944066993662206127496507454748436913130567828503584474636267285765046381171192693478621374784604464805911393206335906218097092862073450819905795150450259312188387612299481226959647441316005242540393720167685983360336054620093542807564612815728186913494048016485794307363828476526599308024243147038657889513272295938555315532948704247649834078150212753901435527817310357091099497605331634439918642165563124570000338615644560540080848606871678528142842063260703852974675360731985122724205724997796892007269850117414186271688429706415176188803660955464804799369925178166123080717559744999271085778318723355581812187205674589652793067341289038758111760160972132297268183266643437367584266413337409981818028792553811659196852628174953825065530652637896803325333331290050438177340335336534757269889358534183933006636818678518756225995361890161205128383406004893629118453841324754111084760527095703069284649229792733832496968889873240858147472659183047129965621649384672921245266907601921612789172095100785397775192986004929057431197330452556143180162858717354735888509635314858496643268241609770118456795943394095320676795105171741477524042498925020333744864525473081592654071971156898057125356710977144310722708435774279560893185108499653111686486836622429077693964987331979522725556573662579908633601156446346929127443157327118580073149738604127101200029578388662927413235698973918108353904180851322162588392961137449463710611544583256118229234441214641822253410314349663664723908963581266102139723721322478871501564128912293819173939786615142395688064502253882699332200518765467322738702281540572999409958078042131524960117477849920790751406948987268524944291248958468933414914260088487047916457929777436153410334181719150775752755184694184429968553125520116484005488525573819966367486392283261631292077333910055668031867141623536876985000911243596978684464512413883254986472337916723179182802641925798393290036661289727424025252087782102531617860632112657311058177362940890128023391509829923583961654347765380955812294529805784736320264938719005056722622402018035881478575919020184146487283448596520535852989526505135575118752509367155888771763637063302433406824689914849891412244788154300945149609603282319395908267450707460260172268556031120944818116454478455692009542371398374426145305862739142063125302538590558244504903714449815097266293267836785904546195261484089125209343450603885233554679973563958502015899964256464960708129839808010293882813592566282856728007680927169785828967563696466674926190699630744703908879430281045718039118925145741752577889501569246528423957429233446288659023149420944802052901346983282842421463343374975389653472774477241253298343617310616177650342013726449060159528857822699268251680383917294047521553555411403545244158041357737445904679918485001294112134042156798851973712441843688903192137214483395009389013816798835423113641996237649873086798446332140100706197262850779805992504176463975429509421072604715753132720221109451503271326483840826863959332666276096535395066649073078081444667505366432332144806250140405678685734772087252058872042390517824921812052099954948364339682402624153846967637342320954951317022598563505213474416253280458474871513824511046119087334770161232050055457948481118053965150352131060825371886232229610712313776353229310510639863951447329883299127613429379966291584152400655235953028660760075462181294824183192493042209668725917760396684829957103113058884079631066113624028859271160044129928379670611547628672736787420071917255743308173163019957216015928344858175671776844747087005612732058983979418429365116620423042929932372597293230310306823970384770464882893999962740111360237592156332706851963018734052766574548898211594458851513170050927020569756453809877106172257851109722378878942305568357439930143302571496441475075737480037746641812981471404384090815233391853090881336534032505775532775812025350617044044777181450095534088032501662076198047794372848379597232864745226304418646005867662092304015900649935497623118536590155630240481838896730767215542307071730682284630548133260583569587668836314356386697238778779569910720017546103495123970763188341753433433625015639764086831267340372890523557719226060796722767352443261321523584840777642459322666683579070579998152238601842330968572733219165143802891880821842890204550870065645627254863314543438030762586816119831455079299185452696044320114766195103135610529119511994495748743000935949197990371526601696381405999652154434986441368110120808227059253908347438115343078273270740242837913580805524333029076038728830872503027553228858671163509495986307556860870816128728393416871361584735217283559779121548408859788262574655299756057717053256451744744417711439860939667544132791142042826331111865746024718512883657946450266702441836638689844663931977953344175024026232632341682457951549461550633367847982633417590589466512124984496619198234878069932540128985896214966704424523508969233967610565808828245236992477964421180491784274945896147205801332513458698736745445584085527949473422372701111052649898920283766195989995585863326112411352551511010462857631245137248072505764989293496063738447116102754793765346162689423192423576102710011312387150463932161318233929725446470602505630452571907719538366886579401189055747233209692630888200287576302969548030896969215377327227489208637474953263640608306516498446801984053909053230408875387288638707403097984412483903235660297648027136301991431896905215243230843839388906077337878705643674339798151958366281613994841819068218858093751447950432606400532242460712739904918712791323123019790966291068495867239762993609772887354358442802353669375639360716327575822510003296496771848394907269748117969060185547054019341302988159562452031114148696429626157713359642345417877260651977416805331873608519180873069573854119490103224969318065382960592133521448385542936193345394941157384106231816547053868813631970004880657948156070903466032249931856512033133114702749164365777874089696026454744080764805818833885170624508409448188592926700491804021213458172544723729290321448636218245456300129172003701977171114603176426214825546751825123142594778334871984955917348414818416818365324468970760272239703204597851394883399355194370610960539387764642574818731237082924303638250122594994326144821125969038288856658382434955541359206451281717102089876196616126314650921507333405147050998798554102230655060940148495754862260721571113909034115903366051265271781482874714581235639634381392602847551117360095520188147694992632223986675517584308916197648236924653540290054800336900136213686499695744617674010484352697592013382301595070815504266106799366216868357561194855046308185688574723191627814174082860194911676234945450899221453475498423068877699460171172816371400364917851700754076338893968598705491168035086076751595216500502443334053901001566568692932736215497117222403965052591846498115849276296792039441198943488757155775745458870527966354840004367126260337789821284204620913769305931053307034721386510237899761464474749008500394635622047167985826373839650905341179327983373865901442451963134856841050825029447958793735318247234761975242306170882409757163641576936467618118172859405204155091691850411269598423398980156837417618526181261925158247931108919982635918886693256655956662037485886858334014832161070271395443935907007699602264406243687033094765897266275273751357828009118505631587817545467161124542708688265525761782100834079194774631798558362548257638259282653509594746858733313849837328616376420864163596874996473039569167739249186472989127558096604110665130799912841071070548269728732605049369069955315375801993010663327383087105873032079095495489732466384111553900427407540503751615570775931629856166332864673211527356008675312994265996316883395694981057476221737100575464684575551122756331106330344545501384282490589940706842055834290035316467149990950289595584460416585103991782447062444253696130795986553399213490902627871634418158716978736089552164079320202645446904382163777708817321415289393874029672748242945225581583010779499608296303273496246387344489559362452345907866731107927280715375126094941977765717445749327595048308780374931993064466987568472936909500655711160938582849948545555933454962223290080438100489268063443462708803190846513385755724381281500511906093060843504191522732019155687964140091363495902336338715416581692212182469770716680908048229777955206840129150986533781158305198664807182953989280517144202611338933344323109027942891769620068373312823188071784867266077766686207089938009240974768127627632066553988726769712362927401039480435878332299744310337377607689175155604243141595969333254383474903465780321117910724720030993770631925154781548962494287416399216890643883894006414870311453378028042577772809619192561998079337898628233901445389315211648538885681090919148377280871185384724212545000294193096470099488539332733016676643156302186423663797476619451655210227039062955911324087284514880812074684993480903891855567581885193067081797911012280153640145414571346578101041362238688813623519667068978214814321139530351289649293521229152764045418738982806552675731299362854804033446190141885967717774352521106327689830637412373990170729526789612150310990808920161233196432602614755173064527948909425166853529187463841562660660236325930948561969304122339173039064835417445184363335766855941066167939803663884502512660880387702790940602438487566034476423068718762084823041279565217377867028863844316484026218547085788325943158066127019779867304266671965699576681996873690190598113885905413851563796266869768347559070830187222344865947218344194935131810356378329468352686595471331130178915865556966831269464572523217205930928321539644767999661613159153856785477181056139211474964388545850379270106211635220319437285693783242473381218220703154171030284936273238753551145535772572671345739652414506341197560643103739925965664486204998896260940131873668457090318558589157925960884706266767835360195866257511864537590993046450020537208556197790333638878266325282359750507079877077346993282951009548154114621276739494924757888832523169342799768980551503935144021655311114431028650643208521664482520345987475335835444141584715356529948132225064984799417397895356329030632350617781801470228538042737520609630373046466021235524185646918399891421371947344932388620283748932173354604644744559981931365904820058974842710528099519828927040340683633217505189679952365487098095843380865719397580602339187189340220969418966105613141365308197918391242942305518253288767603493404037836821314733877457043293064221326082047426254425631203477110512777775679172389710189741593967465346693556284197022664413076122378643680833458473065948840867520933489191842692579561048324487048156971625013959586746834003087007100646372355889250833901358472228764737890313313878285723639842357368610757830084118657360094734653925736825369718932328915183935967081538459469645764917380128518376898614519149925236217164976466669065589072383235261840706433910591276964066370302063493499405535280478210866745837143636575466172941814579828404444537596507471112634796919632654572943265131929533333145156935822345075276217710112741175390586063132767355739352839160845784256865492183725686232398661379022027011870488093810214582263904822979399845071183856988116361619074111170619174581036864376507956692092063774437101423443874112836417645432502714388666841207192941539607888477025614327751181119601893382040491851689478120242333698445105016032160171030525646336528154517695873995885957586663343154601403542130766856417799919187258937282995570511691165958105805657491908466980700738044777770161842947791053299794599991959257852987049075177381248092278409719632240318878669887898005336328722727038352254988935177347333309521127079560859041651911958235171787589857011506315046079747423403781405451004152499260560542702589086392915569948489794970618704019665928475168045897498458681397157580583363472168149852181466865647141041949361809106367124761402680931508125105260324529496285367701980991665464590624943419249390431299758887651565979069567371754512809267758597368224088051479501263290831491071108614815812060524234136331949712298537642061160784927669605606729253206670461810598569284147085957182118426644093086537365805756647103343369419500660476327667504847060179782320141263943916449071345616086340351483950179431597852359097603296757243940442081908089575386962738717271066071449678618172584622904713313890658138622031957030778875278975970507401279246295279341144585320906758687613408014591903702807173177303972785833982221174254026695879097417200923309253388884777311728548537327717139176243832165145351146464887098462295505526252167069211922093498574862649119869816274016563473133746264581217043325633321504730679522979841626567428402644407552537293104039400775826060730624007632744107678499233244561830390418695870638922155878664243007645170399524279151930812735336587446593121142214542400420045901678191337388021703078656535576370904794662275860878433141064020770507879062691023246924109757382218589682960269051801820110009121707035255018170222668062209344980342931333724755456364546209927389800843418782197591935812108096215838379364681088357514348701934585579329785167228368972287549240066416682515106789814752724394856674512138773931716348016609028779488467444520681892697980785137819057819827895282525672766410258558061975711880804032823029349337731118558453681118600559166931412614841881934868133575525831383999344056548212263538647508398991616183261077951154258258747361535410522616494241576830932155631526488639962034248583891722205261720645829811387284271665201415729522612686343088709975941392505424808533767287391389162278312750085851587363948543783793077828713690761020959846670077704688390498057592565905907643327450008331648580336898917913357964305230778210848306037519924671292733074622378873697882631924631432841131275903594304508495927766874817034275934386402175892141616900915786129904496502553733507571624836210007393288735418922926480228446563492352514935501471216106079687537481211620455194613757249981053548715896548865335335450109264977835039457669976952287846207454695230495366628325637759085192311209829711713100100105847373156902731596767000142064521253614717310461545565897194601992881524472791623118262093126159483934233113372078640872157867742914769478598952301420013400710800672372705576907436733318877712993434854897208743228014330429932607262850332928957024953350431023887687560962499759449183539228221707265280779519356261101101633140762106875841302002105763509356602430523838486846940617458035375331447530949744646916145693133904098524718062495593482339312801124467385956734093184008756002519205411553144935183374748781377031421714225037308224211577640872631087978143791286812263907311236536888032569084071175490572318284881545649855823508645738216428724298571205965124058189119528657464463438445628857917941550538663552089347085021962275809898106948592904351426080860436612113862691565442115286477698491025724462739588074346981816992106073641610957871502231730207329098388418753357203974144244256819134589237209743668873368006932255473170630182508479863730244793215187558695639216663124072848841595857480267721841335126204786613150441840713126147128876622630760337919176502923348711694803930368088874272743076537044241689474755074862707948959511956678079322952990346900488362241902527511149697621493925606976287086034126137113794847197498329414618244880211220351243640328990852903712171337607079284556522589104330379876414541945364841570782972095337003797604455937227633292359170319334434668990489303117197859133091636119936625807625925577230711469085388200876197916540772727611786025043139156020894767583624352506584213804930269716969594757514127615435577324973822497642814190886117520767662205830759769950017044962839329936602826093330924550746025857115517693091375864111958380353307887811122849247407959313958640284504363599162498907434377528997518603211599994126232342775851127810973883143790546886793628761652319264679124561411427118116791260687130810268513173598772897328924256888713274003919417435856104358579888318193345671962349101071722648850246546276372672342076788909995702230421866093038597041086064386172041334893961198196094851828010752597997397947342844081539197790116289868692146034819913920189852840142459545346842772389076320578773006892956255530273747509825452037515752850769843450111899793079003887682654668324960081420419625221726913588161650745365359918188984747019605812489115469816098900352422846759984752447652955185819664818519967153107992147376697866634380881795789074083708196126307777746132156903531954569072769268651872588382308333242951271155987628836796293119478864653809327713057405470080498044179874907735566763418412342626177613739260298748178998590332671061547869556818720931212826086650319966553271312902440977255726389904290367504160322121796819414251914174834026457515957117346617994120752948675703651443416315325481714701859224623872222071074246592548209088993969975186536544466591386749225704131935760886492359597730553606407938648978589871715015992998902423662146546471390232519110404381109952640236678893580194232377751690641427390091490139095768948160820301772162538387760927068999340100178183411155653492830456517467217866359538158425962782996274900965931106801057594175184934734714280056271172012055703009996945588738269496966329769916228526809978347849787989751512734654684142601728589544397481249807877624812575684905796473436369942328877247482075677228768823364735606596641104183467451990975210085823798860017293664745917248732769510387294921490309512962124033198311895353345721591643646256227864070119698084139305629899951615644213339060744146100839171920335969858353450695952480483965648488965083020629413620985912607875244383304604633839863932849033384758873081779865983110677873973447694582645014130528097926761548683882394209908035208546325222246939449958306323642284381865035567430242428491416447896595513269955589577590061529196928088668587775702329320504846689606779129180565907073683452672936127241212497760618847831625422986917294995868054132970402869973853962807480539916767385943854017630041415551058466685713373358116100943649316348089398147730533410253302329793433905817414923433581823941878922562716637512162559958640263215263397614037542500679407101966871281080633690038562778977065244234264571873049431487209740003641836082998250688547955138686500072463520940975868257931540570819318033569287655932494760060355096990472149154971786114336868369879140255722192681188440035892770793196683679047632173588383462174398196297382318498410195481329311824343691992504303746880098008057890458572394921563104638643937998713947586329161603705262809454517486167497828867713092853312659024427447840369227598405564591876590495500400714096638544809486404557411908444840198487754260520567736977218928810044872269261213960441851265606202353805455398456104297587722029210097812641218747786769420625454960209311474060037287774802340314692075618732509313901094311952018647673628125105985657216233443185242879888887943213341618993838336097745480634133055359646865342170988003883565284201143266749964744888278281486353761316240578475255046711294174717774670476645207495750661188229967960763187347513077996700146563264011716677375759504747496996901926834379277543352851712336360360038630232865267219261731686256429080074257423639215396810185048162645233972739298522211221145891043879151745318063886955211082451284210252270205733446055021327806700608932554942667392275461241233710588177145605927970148310995576366282425800584639218428719774833884030026999446374353756275825654298208187336327786481097119041604822981480769273288820481189573117123425550528059719461208848618451501712825841891855407167626507780475761310617707443488370676143406665577334280344524701674579852469274420747271085091323092825719437442289186367381100962802569390765413127343900973672108684198584388333099578851504262786751873079362417495590390202588394651988281806645858168484858432319884738969606381125929820747332930718344487635215412014579619446807554411385838818952033546292630825220958918344321922638338675240411029891028272170778901366998993746445803786080654204023376354527369792673962418528102529814413712618532245729080089174788457895584721082281549514998972899873981493918414330973780259413406189113262579447085728183920359915546257030065379666329993194439698867480177702278558340214683043755647460370412256768787214987756159886202505331216710355396859401878548700022738032711706656212323014346718488080951999898774031029203074932703033275665532692438759643688784335412983769506977695759827925824491428224645044784750461668407483704306441702615858082670945536709552964999905014514938470964637434341171306956591313037384327300182968400982353806115570046223607420886509345701685132892620787844845072292375361101264800420692961490302361411137047595457074122645720556677095372849248526695361481276857987508999942805368147290434398984596779565488022057895516048297670784972988751714872997123417025594834214533951544990201796683174439622348075210133499656151406363999862925614064633278219176455386855339692289319565929104624034735107119355894883635193318474532606445677432895596489420928762702923944016967377944518287172078512789557491797364544682900892651522308891878979272790878681558571887782794551578338566652190370590616770090870981971287529524060109791224626008931653818302065173414026381432969698826645060225704682021936268320661756562423031194436115135478109049514704426081703631322344397420893568281982778816716766418813969408545418028307409344256529162037168501948156331670244763228665237950518112280299373585792543307787842756956088478551720589653289612244541673035200946405192518159776895451028010048319230748845045156826429662342845660385367478979910082994611486410175115987983353871297940245657626146855357435479561231643192688761907826495811118786209111427314748191349529393263860967072813673433049534364001676061928029921756786492436715424272162742255677879123603821740564167584147289141785846201972524881378890402452173954688846634489819842382157097201161489970530573425685730596347564819372150827593259207454371053393444995073874841318758944709483048895856239221979771031013207014248218450275078952681063662432066186903289138124886631266357221764941170146811167873740545815245272612392221304569449053780106252725216533909464422537086590230160464047932098625983637971252352997373038407581164415580591824728828151981725377448271827185393099048789849493637053314482951260836542434384827759705115632718517742154936971784577648574500760964801781633284932021459042477015190247850944270461304217526071405781819199344523488237482033333550583844108868229635158064696365802861077194423760497658368447680138293863582452608527042403771764517331881755246089863647733233445009009352790394929122647668755292094954875854686884422027938538254396780398180118573142709686282123799940208903300319584436027496951970622620807220294025132450228680712434957830024320374712019495789562430428671590102848958476384937796390643578917048818189635322476624412016505182709410922000053948766184080570983824417640850689274601777896317482957076981198424672277702893568155914674958824737695466706298781481272545448781394142184964403897967654352580165148873206630554559228174069894506065407418209224405793312478845429194211188458045450298447676502880942427474562500130680161126013986675901719660275510489546722563555472288412451306151018401276299906300799451074089836335213673717333150844436511863671581978443816835405580330632304966306691736334696354967777637124594676135680815369676199024979925395730665429853197261966262254176946507633642091947429192684225500845203571400076948397757369341548410224208899441285226463589892481757598524170697047363786642016546463366243729429656424742709190435580272065058287180349399178342218856947480561137250108519668717258130055989174583716643577921922857300798182441202193286060877819442016406258891714255240569262681913780420378232805147237936001743744573979804424720214900788627396925814622477406310368905313029639967899837441049048267059334348902948171045985477325570811645859525786796505612238826548366531001267124667603359662226366202520765177769035293497075814936434445725299333813950983871884387692830802375388430323999243626240767448540335153864112436589121315935053428182552946248366034465096794567592469595312813457062728477358464040928748346006136924328624560757589772290689374038228476688563402649880600785148827757873141212213119556994411918954863230128731682073376601105051151886711507004583389790795793245807281501498335826358134686610756620879451438069623340492723610726256256263254048195034840942068036914414586039547708511220138824846789437588324826293644302208644415431729055099651408347702028787742764989130123490678376668765384760155822365951431165543802048824302454145658202744537154875021316982691892041939154644867742132795877467032153334275798805911408938820210312170332438769371174732206680675764734108453055974713945050087756287366844778107614070649858925951611385396440294109509338527519850661898168393150354703445105538070307039843956819347515735808848620521605301675896624157715181146119866591136228129906870164139670146792455304790168804134517688336371626576664871003939023610887567195817917340875182186152986728821307249235884564676051808210064491946869322917259070629176298770975959048473915118395968931175829094755319493435896410122295143433605108649017699019607405740540207772408838797349625114687069188890194523202188204997618883169619007723498507035293842126111689057875410543253648418256671541142826586720146875086333214119443377011135143058477197148137180791281890768301497954514737345078074525928581449957922799092338044347630834396975462595886591348477866321654203988408796622569799928794183947131432025261336034211712128517130178239183176383106048374395370410320736060368611424614706519859552562185886047518550771253607495559205735823315329018850367105499155188757121470562725720711079170039162896576701062705944279399827786807062672840651708719504999505401944944692826791396703285476232644768309981881205212536849789297978209790272968113269309569840733312722744832910289585054173313952663936531707743017648000206181743642078467985081082665943488182460156064199421890965100112648096256732452826475672225049538294463152119276963692787181767075698739974787205220384026866118280576338666641658226731781752830695081133363668414854057642734931114831905031199047309992347249419085986742545877846072541424577670976909883592530249882993780222365861564589133639663428019983990949956735080482790480073140641721402804542081237312199113859224991304853786155191089876989902691363272436668146088208884225762711534948421307616247701677451554356682548681102836256154950581329190146417130778898190612583866089646470904130561867493797461223013974780089889103123125730192879344726202355963123568568824073698062249839536436185653095929473937452066206940331183474101297979811489507120082719025434142868903247458731990675919244249524475833992150631506600515697530690016977976082179457419415312765342008775716539709230895769098593757133549556280778653286676689388627462489142788363755326026608712423860518202102968582727624910020878926581817280418796958670269286816954467563141915464425533820137542582406942340034248878442696145078883620592703722058386885665654747220404709306002391296433339994903558411861323649589061008061469663930212494453462866239861420473456018954108904337824988604735781927838339280993858842722229309955987883439303260715905375384606904459666556030844509989281224774600078579960532950465317018116875873795523959470209767346405110594192874528867717713530363762172304002484697041749908643521320648378295537532911095471833969757508312519125544206124318018466963810950624178833212698868401527197463837677060938144663398003155116634290622988092085372893426813438609936470534449869261206656523299504810980044166158423854102139781716313119090619030911786415021407025271255015871656004261562199428344417394264757129543736502626402749125661569234240719165582433629128268250902106069303353968856849237589866647809418749982129718386012427568930940227089416165121704348662773044454535615106109984564369146515568103217809512783714579344760147547916972972551945204532833579479362713151918707538029478237303199541787399196326406472098185321869812570290894050278646643007343939327756714603959534040029434249755760317140921851252185890817573785967887361855568820782619592728488017868044410278009178762413367144240973796055961942480476525525559044712042336404603497864174649284008730261631187389988977915849053447636869752915271512087432842731805573354131752112188835710300389464850336266562927670617124612588383359964747692133917596204778943511718471833407660859896519053143814337535450059506610951903758708761879303084199339316878229443336991253276068804485714380628041150341648022549491934049073107560130139616355193425895525632299176464850474511237000533150805961967440455433749231294543821996398717959636381349840909054470863083708216566606805961245785502652999343188668979230597025137299664383936270328414259402714325293600802038428958397454562619618561839399101571941848542416789131606786921778224383369569101879227428516641093727853029401381262200185299817831471241522167683006659698889250271500149373814602965394877599129497837328542123412094138214545843686910197302169207836080797007572616111731079113608488323302723793245156546799128782819231381014422416833113957285932411396089238918822673188575582872450944855762063227577180008112007459150628484318305735529764847635725077454683007678965248309060663517386381253367476715893925089665184831738336255856455819811077790020209548237622639660884488377625269361201101828473476886071379306734608414982908315158983333649011729717328509376839733551530289340390996273665222598676720608734194482409826727072803039504228365334492558574817348188618596081680739398012176335712944582575028572826369516466822455987761935522483431630718514756908933510430616325970916236116141129718297421066908004655547697510915364968214445601295828476228256946143905829651190028552604610209084934264098814781394621987755097241357551319332044441060142995358800689330749129761189277141528080989433818167791098389664055679959051607704044921407230829425596884883928646648344806398634885821451857399347140603838156838800270877251186248672893917322972055981550484879281633455847515731857152021578747506824377500779216684225129651338447696213441241224662182622941797083286319761050530894507003134325974219143476138283750300958709453183307153920252632596451383850159378114618794015586157848653233417079910306170524878977231007371540187072056896329728206348345815261695813146554471497887137511162293947736424919453264953105916907228916346218785915320927117947366274353575226113852615790779577276180771593028088410481222394214339645304023610203823847248625290802406049727647418710306382857389404360532579531148112768562185640062983297762075688293689337281231294495789691940086650059335036241245564861433598695768206626123179810188635551718071343250950569158484434280543075347713567172087600680931176322762635698643105159516948337178959122562588112635165920893723084775557858380639948827131059127752538782498429079193810411101006211773916114157247880435389542432066544032166815672180097722627344315599156970440282365528364992989989648582547152093282243986412528300042557594648743448043480595398028606320194336151826214092731921158859001404831923708932825954363565518286139979104660909991651132501600221904131086519509635715598392548984989339700713669090602108209356207582554706378651198510274568945557389963354953591958325251031193735414398337866704863990499309288994321608993202819401702751633231455009237129191350544689729768623948554917403647512580868374910985478161105397429001728528256426046990027997015707606192862581425418271635873675000353742087373614810242612434854440550601435160578180003284989769695751197990296546635925765339565480973393641923149189161884265377465113045914765123645882100191432793365037929654553731082872428680760423462102704105247623654232500721830242023013094758761826317823453908878421652969569275366420465941986412763404071247203800543739628269006166569922244452152632739394179371103364181369664437983451103835336890363943203797710528817994258298658873675085663176661439367352293960589020072138723612147525995014962168796893280074970079928316201687058103842145224030523983187859537757485271351260916401709372136154065680906580600396331736208339664150318416270178616404908130289482701763354311056335801756736136310879232150050635936411629841711279469924573011773766529777454370889259945257271797701074917727654882335093219111171833060380958900096172076370829632315437441816221296374440745746144745523988638745610878860856105755486527497939398247098913577700418523954482467692076156959762929946301756185388401290358381642746113368290889741182676369043928036792156467124798483311493305467920232837690842190360997886024232745927332593634147552305862511088813365442678114649741009642485256585173345067657375265397958240721972777035775740735021131674151503578669254105260631160207543660106956293575828768541934034790856349487349003382923736450989082609186726732858000020575129770810405422035816865450256493341440408245707822478136945116860263177574916239102712022037505498956719314575933086957599757178803352423801930761097377606229321576029081938421277131496117866033094211470235692851658665166449919277910602441065846189144343902856827773741024476823248813485821204212236099995024816219176647314402440252185733905801514935189426309925124352815053593792463656368864348448713442523907136803236069026663733496113687195358218511391288628457391178481329069470715004353325283543069108989888450863356319522797866507081369935225602913607294266220177636513778212578485909602687667809454166236049809604588833327632995496522000776506476923332866938946548373342921515396315732162941712943739928404868348324902430381365838824253095377317189613312158730143808765112292293972554862506417486490153586815810107899227715544479521450582245396371187080092216307086209297864327851991109693169224293401549574649450341312642598162684404614267298801584466571717401025026567596701865551504292514955965574713599024903517723635309326468648009887330326003275220438971711036810263634570889880044521495237005167318540258020503243554519411233364676573331205893185263708984983083431202225501582464045390925063982431473831856162858298964158638843440786830067190124967622704597985646247648271729819616902869439655923053543506130622553176259115134600927364768674161787776739049394244688175774090878815423382795971858966645520006121223170645106462362879984324581576201930467209503267105107032247437376313351285882514880216802198851238898296187881174243156651792254193418438244094299690906855838380727372503473358941170016662289603771115640357966901754350591256535580436076699782926815227662031310863362315452369195315621234524176842078917576882116439242378214038258728987128566505600912831868823521399433166738363743137373318521939128573724874299853237710186748511536897546650534830835581415167976925062386530954972286329787953666058291215595012859395159014740957554797185341164679746375887148371367929348843424181413998123153390799180005517200705397434940472782030116191883664517142840069634667615822390863984717568322079898571440474978078234965097300157592702637440274326400954168421240818528142895404732332840957039643916556622525132878272637116697639036790676297724103201500111796808258766485712420594355810595487298775116076810359200375600091499748636139376906072473599144648910190699266135118862717820404465465186103095558110868366291265899252964375131998559451964202647526121239682665512755681111443289692306024689366234131283201967317751703746718684439414684004471384098674601760309621325864435138985304299413696762609958453086351384478363751596956555404427516750721174950302501386415700715969880232807007171541586625953525131567371698190585254869300471826220312365497708531220309754335399288481569827545200329024155570860108920193145863503963210591687101201119226420390479969820995729062656164485474744006230874428382523343371911386180624357111655012564631590350570097044290161812649923798474165474796768776409232017028449749954386824432467071397723396231488482116293527930509054073210170048548352525522092899030612684311759052144761109245827709785440146494508485695273942832218052365992951294345892847978833735290053435916048357365677112812618372987806942548306689914899932441531339779441701534673000847192817241455506555275035522963481936069851014599814221139738082697526205937884430920484597254225838396220013515609174327276332885308828586050086130041084613758224303108618618877506149142249563327499875811231045899996779006940330866808656235929840558473549180436913887510688255513047912677800919723294332897773413639669583314023481121256161243137221669660165767191775106504637106851173076174785343683180286793576534878690564110397378217170445198001312582415274812869385680931544202998679112536734214218067493282221458430115919855369366100784738886255806927116882463193277392908986180993934096914893302313124435195025931817178584201416784018957282312534135002782465120661742433155211191699507198662389921333473395665772762405698186891762665178610374745582572183453840776462879546433371332708856498113281015350148581994930056688798313411517691202840159515490431726075727342161367098944760976276679166289199537478357131562477437562664882340460112517990470792600084071059057211469652768685702266602152895953710754085156560102131295663918986467657477004951174288250900064915835000932463171886557384283965751707506946944937639401179997532105183577546110922880340249941892698132858426540733248510837376040382224719734475923531278645878542499859372138751777825827743808945310178234615899279980198090354134436049349869525984665679250202403232355282937930659406647542034397490473383073266068953530928605412260380630969176090208739726769902328573119696371259254474351012830295783338683378092319841296157923318982071058677432852923139367725990143672936932923814271503854589946729124995757060121249517668956081395605342588615576735079302216744151856143099508722261941380425776757034317485338536218603865150283722613016548360700007720306959835909026300298128098600809457441541881189837084782388964886061394253965104543714571993993002294942208103041529278604991099415374284468558375296985770791445963226821401785763680622811891900321412060565177037978324946167510514751040030404615255832362091950946634042016648197310892551194155330700789226695253523321762198865949070544750932861566827497874637245052896058695965635693549829163321021608947892992964875921985687393245626431031062203976663133522577295078408659797722298401844916149967671867358467106808424473985912843558094089247429951203806474541703662595682397566798384379281353305889934784099653851643035781548652575462017739192021749346188612256459501648402603032630191182440677392611354169520389772369491051369631770838532591564686394684373697672151322407448984485867434121323383841252128847079137029699360682174688339818782611518012763051932331687973396637481604403075092056908029510700746775909209341960159021964192442449850206490787054705917554669319867415392217763126918949248934798148730852339684856412910273701250450012287788838745701712851118622163402578666283399198191951540532326583248961504391930848510255643175728257764579063754625246849750637636222884555794644663277533980767352583379786844677229574436779521091052473680876105220183253560287706999857132298054045245020941497472118310948494332677836768973113308738461873238471471503151063405824169121092672684280697534956783209680182982032218663208592203836987408505128621783705084757441654183395602963284126049794284815874196317867682716377637622459317575170236158865512424976850942701108992771715539711549637208020087098210974527079402385007904666127909463312738186067244547135134686390556816499486132135354634738240275268481895471456072291604426815857859850336710602213405249152953219556122039607432094557406320566685580696956939010674427205053898500252682317927669771639693662393291273039196223665373452581752796607240861583800054220968421997076993133716956719398936485482142363078124958464729287534668314943243621555814302539048684062331151158962797006295496812029921201661001249424290777390555259293761945404574964388430104957544795368771131340726328025907094097320807621766324750810349467563360359657016421226721953741918647360132127732827182661989978999281476983757067643196498385103454045675104544290436677256503481405257851615878425792644427391152561310545123570432751972631828738023085437188986487827475016749302241993553409884710912415475548359565512572858538173155346717554684340542995614485674833867215248144955860495105513256429866432026968588774932991288001874662217818877580650086953365013059103805292454351307928467402095699980952242724730499486642999709089249001258295805835864171970158448370146083219143740854583443426990795053884744375649828596409043809575312729190860371058720122375205484714745893434355343021177973004745854647306444041822506506401589948010822847690947119329523227173657797809531142126877237791193533245792923387167668650691419137197476754824758861411303968462774398018100229350400492421555390962311740683803665783944958417268263234171389666325760621513360180009680172294946128992139503648217051241792495420421631881734675600286654650118577116271100232693058789959684282912026593435773838533554196355013930807328698901337674663329163064426000028687542425566471172926123775485598754154347902240711576732451235071586562104731420570196156520145693459331339294332160654641790653877150065796105265619638628670713398002202199473020149895012126682027848795460410290969467061032073762202960073703926264496261723203393444550543696784191270284418712628923008157847621475013481179433844535655505000811560175156393259841657298043034332422888826158754772568005200702090585421528077717716338962897248550738042260130915583038986442927066020546560033291087838261130564279421351355983154583663198323868493248914772944684061995636085241167771741345606157934293743841748545194811234783851790120992839019048345656641697419716457547731847177189825954300255134693093011283799292586293054836657546265624019299004860898713641195978086814180788856129955037416641377568868252671173032801908343291091318175272209223198678559867556030039927246951535563972796981337811119816329274098262442176799026476132851229762333120085639475109957765459197251324438636105124840668693268207410621602250230925832822537799085645853990924594052189534689339021141636841753839630429520326384709985426250470966504993492384672856258725730599386185961997280669364675104613631812602248374033655864767977493231922057500448572976546430529184009094026885213145075695754705525346804931121578544976210308837500924935240636708561358068077804283319290790757677291726622696228311943076043820185835628869554544919843530999655199925751858773322955464647991828219057361082936110304775639996290748053330406912782387381273473737819164058906016190889024945130993273766167863242151724887654778103100980905297186951108637935311238760203213898200703223682703262909320100777201967817085557432440634391559296875551334366523139645057882044504232979925477414039414342042173366584893058606255879833353228492540812961329298444228229452062325954941461717966782158047581036385303203930499213302770273582694476079986635125160236704771039736121456804042877901698347524139387368869926325623367919559812678853350411563943549256656441159165375985456771215547683941066487081502614081288319709466570912966262204412986949663027489905002659446644613482540747454707872715957924075709692087098427694000568139557073473020534085843067498367894498132219310168400713447188011164861699716018160594193486978295760557168356879331384058912225625259224918031310208025121319620039131983826367294341754187331051632312386696956978104559198031235464364638608736744656020997466988194521603656687333877130232689110397348370448964817843946121048995994230367339746991331980300249781248727988610775759729779796342564579038627419073298420607460555300562991246949188296364556606824990993383440919209435620391535310231261986133561018861587072838044380947873881736847499365192094568793896977795990116160187152041725772987360597918872453880013904203100792423554886208902599172268950121729431366210721147900517977714576757348087623406651639459211219867523996228503285772138690583162140155088304216530301983190497575889796573895119183653204269646924780224988612385502815363624550052092670992903988074708782374639439915720931042993225860093937803181568385954469231513465813444899602586706101642564260438044877035530342510888344029626641923489703813775946317799130714712459880186990501543023992155075976858605386216904248422755013817911634273926402387841023849754111932703971838911160707839141754621065613712591969235352267651112800321126325376829925863277378959449402209334308889781075571216316520836491088288724143996946183206203540390892845122369967546051943601671034371180232675740291259919808263751814263869121551172110288090475721721213550226606112095056612192709794339834206749146356763237693520441457462032552728705683363581863954191451670504217095749326759520540447350892249829685922176655180868159164079556388314527927534535813147617098263655130641953170124107431600843938859123567738639138543220769804592323321758241018541718910886094960713965296033469277646153904530161343025212829140816030971897698234976969428335948175073040117907786608703678589305958036118965205868032137581192365044577652821261719549586296413051074005257530968617766013164754322969887914572298206521333921367621829922466272922819939369072625514962730004200821198254653648963333078740101159975626641794611262674550273140058908889005519583614412342820557988575886454010092169618663360610978891357160847841911842552236577802814135142370015260779804762293108477671054437047018938617473357294481813852261748842002214988822923872057879350360796331576066034531868677349993455777825281440566201806538359537962795010759045775010861026402966460815073882043165548884037673522437305604150985986881012496420040530560035837798204898382954067627347196622133176369990829231080843690548366809787633302673303921402581360447887710975824742505150566659321411433356985379535155723079441118829498756525461912055722769342556164000035988922841838982381600270997127975567292689388866771290929099957739163521757418054128912792366425301660107105376287644850014051323279673981422410858440365896336241195158125828159054244471320510659845581597438118386117488084129635302860205211809379264965447767347545805751042418217693087719058149426965077577330937152462262923889465635860639677387538714147283900993947407170468926031589495864937033104987265963613346653055522956979427656361232709302947949862403348726096128864903325677041818909965580763400071549373404664157002382116372298088354887101820146010885087112686265452523665937107534897200237547470804602226535926804810571402066715658951099502295066141370456370072065678050356707763875720838014796024344818921972852174498593392227004136580653589487206248153372054286319142510964090744943073402452350540103741126800495066348513331848569478319968691697248146396092739265804964424236929862142092069456547499246146831642186256673369399691563446379429004315011836866499471568212278357328793221287957299820689660577978652200564677654681044634447044717647861116846834508146942047816510017981288824946072266694790077623850460674924279122734942534130300652742843938969095103938219316353888723477161784378054955231371502508475069947280128608270367405171771589072142444470617569703621296708485600413703146786879952380241213532065281756228619751037847095540310506844156687749591335022196329130536951988645763690673313247977258469244945675134408132793605290168063195110325981381077959540413844282659168913873470033309693810464752536413397666447191083050793299066395426869471858482896156115807585956030185222517855764279653429346746635058537088956537329044471919072452721441381182540123406401305027124398059105718616442211496207200281951677005044823808083578177096470637798959980378097150068131543575003541618318136815724874664161841297161877218578108543325416294995095939013293162103860211995910732556386525251180675197367537684492327984522943354566530206309469977909007284144903456851254195324215323262960939191496367739854205307947588077765133949401192615043907762734828936655718953479894873082953900036965941604810994380035003425157539869244616623273595213731868457067443037177788528823945000446027283962314940568898365481288212579549670876704899829928197328756706763337219572555639944342882249394849470070635103156990475605189020774277283165183663830084880476963796800563155364800322640791874642482512976055151440052713020449699196222056590702263948628774247091792250398449021183624292553856149959131297743681833858841823255283421687475142108026159351602549432602844473471627706331934712303828002519636494448277953567591321734564426098056364152902349331412784991556904955396075019515882444616332959135638965706520908199296132674830409641672508485631380684545990724573360155182986225771727588874938681622067735280859202227863644935686735319249050424171486530210741181074282672700176797696656299299455320660422420561541538422075641772102081130192018727834596104892929309928743978649059468779135165129813788215175266624732519301631105150324727820279170991217242151280589082298547919812113396641367001026153946356879196639946194080109900320010972009521544258482448718616322832453383892057795388719388839514866928378125907492993970909928580973215036348279773503654234283974636082115395432706445359002111102563658993496122312083795423851618856981204578225591126305508732534767213883927783169267636349692265851006133967716474653540743913005158376620050604984074941799716565020512310234438297307389976211536289213172746542327726734961192487223666540735890724856759170884575163186496951121089095659700943508555270660141727122373735565800234853919002073103866067193172537176442331068631238116902577315547191847237157326084123853936476618077782519392317308316370462836996919284017035898870999573445377972792530248883161541620498095066437122218159514958305232527479119954773734831406719371260880943552951208431182811950887016532141244924507418552687420705226025648197690463925680524202712741155783802059124753085439592557766861524112503611681897290790083041519479944890722830374353990752504001298130444619704471302300354169385670417817832190320336661308048941210717757653051122365315824200186707131813211107781117955377034281394937268527436068645016885905764890569815776397048227830058319379025751284707782049361330266173713457811993020118426010364941149411745207462581319535438369662688303565835527643666786796620986538189838023479354204816668904453866198146698097687640241643498402996328172822682837374734840300815955017172780167810416279223379698063405945298244741298114733236700408897149056612146291669645069774195962066531762485899702391082466873293988175475184529446982144206909247585013875687975243580834475393073197528608154023879664109057766201925757420422177190679524170354823196190902208465857404956469005831952435754046789644454028805778074914388056661269885602804528625050159287988915464074764954083222141825555479974753103629313277424314081740057816124849757599369264198273171558080339914502120150625121525120667820707607697328095135701259508023641259463900537281681962022327833206634328984479221372411824239361735953345638379801255848032982816333393412828296058666326128849241794451699668608803000077456566769990234738110952918732176643235890313137563931709980587354393892194102100968325641657866446069446730084735223480030705441762927589716289538518044215058845524607534936795642681611267510186798043359347319825653278988760236084073723322699097942959872872156981489488421989929487640742627838215362785454526954491663231973721329148119859799054416865458379869328231066175958140525493963631475422293277348492727625335611935874948270730870988440257585799847124750783376691003399805470584074358427295900265125019109740713327113605625535862994524270584720958252078931043174923878467697326894316549100241711712466521238736813879813826978363795543595011487475620082426430316942679535872611846159222923142158154996187479303905565115318541515835156610662187646373299971374445750676636812279156679242801058615745289993003888321436082171061452611356405715272144979019060204198486769643860299557912911538695008928549853501324106022696781353627169442372268578102009590446409154681865094276390309958713097777030233577636405029103237932185896391143316994951951623160352034080694331266848645100227184465620422512660402965216307221771777821245157356331641389986816378183986428963186866285718328620561575994484305842206186231334996422663573587826104812488576624254348120366721896362644210030335176802345606823508833587173054950074859814494907234385786283750587003394933450140263099550585773650233001062478153049036127273982538663337525900506815898061048036915350032369737836169012758159097986213742502704023864426022061840020539260844814838386973359733324953246994749888086712824301837963369716682334117781408346500520947876714803422717186034049687440762116094394401506020930477256174158553825584947950691705821351279785938424772961667570077743200617229874612788210858034735654206983326566447166169041652378504734488699741431530111183469365450269928613001521889933586538712002031516766760318956461843190104947315746087052938505395788686474859910736237761788256781140258599816866868287536380763731345719596518896705325793977855925285265148616017629300398895428868617512685685862894983247135681550300711219913286291569133293430447251631320935833236104799238162643399920298261205613102517848583291637996348371339548789729512521803814975956743749642786660701753853993985490239246309770364916028290924350551777368287548025808867141926607240532290080066453769024623567907799671535128120590150220967742310904124786547907974717015343768143377089361914627827066370546545935711407553990705139053915811191530031662533636863487969570795358380922328904438498363828853447281774494735451093720522597865146250683682680150671256293684173626475649191366477527045809066094375498246879180230594596547008693782647444437883429461122035647902622047203456941959977853963736741748293135625615801922263795932745978693426648673449971413580111095208217248824908094654969937262079937900342913772735059013024053168395457179639663462717406290775161584329520629921776021447856020310335018355259930452050096587010188666462021746524463294711121018702454035077458570273332581315899329618729205533188532829485174841287555132021799804302703734091597527714953812714505489717353819739123618129543023828922819220921257712639978878901086232143638199027626658854673731655057273857316694837398145597109708619864790471996750384254935758859583399989389611503782725506878729244160421576047094774674817145294813090211937575602037876485344099287834327182632991434817256697212244236049189198209193588128428863275406023523852220204202861855687753674898795689666640699758242928078361592136681409636899060392368218089895832235026160887033467336124198792407634859606557970978411759419872064864605562244024540829748799041952181972249623064004449751383135457923699566635711764775975640168659573577561827105117096592347001672708977590360910009984588612058409712149649834171781589810177050035246049598247335838261634220368726447463710439228460263548545395681246777924883227971088985832454528759049564986011000408820371005290167261490084471695917295422959218683524834119310913950138713987218477674917659568576577726739635064748369334466695953410260856756978980563475808737146445851816561156343889617631452567644726082143100172086023521267378749636504412761406004883272750370233211843224377379395666757588292444549074320991798736302164831625041105286615972917186460407159562405304410624035371671275151235115966272634875335898006111835339278784309570919280165530852536033226379385575326751126475402083437250839615532762527877276598179682945569527305593794623886526392469612581685863620551515803592214921716354102265403402697211276017678550678757830844843045614377331453323827537197484407114548737327077556491226752927841050798797132275226028115854089117551041309292142723968138272773183694810558797105544604155723853534510873245636131166613651153970558018344683631647897081178976395846468367109816418463703840765923448803119769201776822710422193057495426152485029379881566483705345959829780255860490581265774746731019822654554962257319094167107010624441410638643855027183322226458550029442609078201714844295712601561660138012564669580167524156708394299705586096149131543030282875081879012021542518559281000639946929372502182142528155806796548213018928818568294009288241750800694132302927715069107814366749811904266491885827882448061266744859763553500276846205652918054343687837859379998346350926665398240290157719445809985265160730512705004047684379838188910334688641739936836014625723581732926792002126914343845875851260938851843183295302112738205530704181851648115558575323939833190041073915079579819937926909577204312450200440458153549310894383455432294499910042922251125255710068960457532389893800326328547763282178071845777238906941748498993060768122816658189722249970946797434988673757978396805742968184782422766321059703644270087706375600833293019729378977363622867599846705248393827014967220606428743278315923605535062869346587083291036010975721923042975271227019397467923160413073968129222583772331737121527427711939322202529904798558343558515189891887927521177928930270414011649839934754945688424829986943060340969541866163903496129138888412476424592250492470705646069719077004571306353747251003897143164195694860899809051210155282492119448630176404103416801732027706907501357805868818196557822858515849281316470318882038367776108066924357607185401176923718997959724399658335437429326661353462461307618943098644210158673259579731326578249607392215579216529006962496858596001417448506017633451952722319267956512500860396300426304473164523480463107192688408792657870840144936916098759624442448813325864136736115813251974881569903922671395048259293018203390897037113423110048677019006911602814347076941655369236801629268082206004110095703034937329409783671450712521985812152288904772557240204423986539119485852252785676574036674778273305009140733916145556306471880584366266072347387915648646733765264150639354310357899310537068522673893506182801375405720542867346826842614803750596750138295000160618424642358546552680609395680112702704121353149440834099241782495406543725738822813795977340220588213190738280980724391572701116091650587248002485033073713842775669040092110106615414615869239069915003312165642410123291026309784314872971797600513795376280961208988773619619211269248965645642864157341310850655226411674059109957206410825941488206208009111059210989518768504140457064891115697450465919226970594074990427536284674354561048126235499950778164457458003728802046173006985741631731485097912902815693175339510031345756304932961124297170965831252760508353320527460999843796302025438521390056415013833411222715067295618474845995866049288124871828114587531006379262771442101941096182523996830593563666583439581869770446898436894873558574193607642009717341695689257582716839546844232977089594173262148117059130059551369410478243358268264636484913842540214308571554569565339006204379159672339525441957424195290412164347254079450803823863113837092648714084741563815603494819028823952827078630677513624457685022095782455226962851605349324426228027539452266511055020738240597325157299145559115759914403415561369268280458109806200116947446949249431812904154019953902142599262720684424767054750333280618629435558179543303956310732250491057307771137798140358297026072901989526473895678832939626659658526920820937437259658488872052295649265380453917099694655442976590986495502754611762526977949522546948132133975630003987972627841842195699829752781301830833373751208184735026576004210783022561588116593088544410055083208391648813865153641454409818883164241185469410376728232368932730783924990006829865925515300774924570588887807627664801790882186301815529626935114584059321795962309233466793789243053391735397764503313367670131726568022437908735536966324584381453275656932162519155692087691684871800117053772811498317660859132337153364589363595384626375899067750975470746006107415813897292644398061106833512846577826916558772911830657720774656863475944637815583357677037722109314435341297711662135682601175692410890561509472253170112873339134533292865219440021275878498922581986418047639821571962965193667765751728953377962257134086312286209308994586743095465147898870160221422700566984276274523909231950946419829982270980508743839728595207588282384544856521376416205027149204693459643855539550618934955549205091584008422849041427289861843828839076288974003085637076437571079804842296155982453911118758864739542646230725432413267295235258678033533948716703420375867814991140908527761046789655368901220940775078400750398750585932486124046517091558431499386493844128915026289369931422638650346948564225789823009768931744848903817540104744349710009417969556008115904304537411104701720871297495962183490405699291951023076262177392756018996979518719844894408209344607787779817560724438659647196416475997317021346174652730478391185922792952222643054119069730652965746204754660423621482487965565230309583854094770821904435441922905258147689596632472638409628254267377646748434481204178911697564811992654439220827682103710613392305204969914439275777706011277948013996547847884566841289632078703979235510938016306190954322201306887641968126718534932599044974015297239244898030528325806525773229240119366465899791640672036547164761376807530917632592186249039511210504362252636199532669116407156587568937311887584860206991665435525449361568075365245162111219308108077102807698468671524848658958966443504964672717370217534171359108225179460084834664667556697795749905446474291238712836467999551183048670683168922762308975411124774589676839049123711581784354261665679576723364105499207676094627392932462752142490353899965740931653217701017138795934028629113480654529260537025374409044252949175110572708514907368598191352978801586846450181612136024925655206303769321877977078133768167421322183946748794680758074569110394597057812274990398946019748313733165823905473535573733069235211589811901353456260667377964311448232530445982704109074056717985801570976059781447816964592312136780338129701642901230806887948445188532965462772125931462227668304046480029321338749426559108988700569465695971266390317690828373181375842709357062524067232427030231475780733607366075440594022719731136428753109507864673248144688566769828904782585708261308803550899576139092566174854796757456188770359817603985216519349772018225863136089900334716362357333783328578148084707836366036595740440473466175751424909543110745221178463964008325309177897020115982484780671596723102751040685828220062287377988801174800903190351024352234948823280597889716161140945569889086815364022508019189634623445587740398214424531089839056012640153010960356203162853383970066343872381087437667236142118393290318347554086362404220757135805933049232377412652848528373516928912243960441233643944075308970824893321464015834435031343641590235337200285874658465967476162702136902691826037503086229667244562623570782861445900522895071065561348263659665918696674570728125338031464061016434920853679843524522071707455132822200298839048084506023415983756699463941177107922027183764468459739737317721477181173290064307034892691021702600525144285869302430183698661614361189381724690489202442748344905823955668099936858623728298206854048099790152383909068047680718637396350389839370885504205252536934179465208916967090145214044238775569840114765805619484504019002541544870082342847313881807548695081771082470831339746567451232510085621409812979339992936069008298370434614930986448037911163680246626604941521288482324229915806160146824313753560971389213672752576228629944591255104373043772944250254940450460306668253542627005162831369604505438317388881105985178421617029863095124647439416990633228795811449931268168389250573738174245747234471806808528157377531590459116824772566701394093232772154213848373273644213543474777249728798511894258265559981639269087582986389601977391363986056988064574893964685377263892651318653191330491951854089183515596056894875680703728755737409653856354449338968383195785601327790913553832227878042744981862445083242356888522034342095363572393955072027362938377940353119232763040751962333800850208077386066907177955210275310796977223861973826431299648524078857754643328815603964224929282676961828043726101362410468542326070467165764779461284456665706703960850817949324089366989279320565587759797413181346055965272952373781930102767902245402716861432020487576081854322401157901197543403398472626528362485638939399784878025153983022789809820067246145324897957825378647132799351642283185770336375468948412502058987712908451142599931284670020417299256540985915003663340621489455018751749874343242397303037142890489265480189547919669520392902414315249830824517533230801244423897839452076567438088712163613912373978729447242703115082192637506981870543379950832368977477937668464395925458221587449273898542821538008309967107687338046032412298580008699569678448905035431103908833958369366516859273279046775242888246841383281272216138782417887734400524154240772295914220616383961883476509806621871098715436248981686262068529288764502536552205980541121669319498746899614430493882214964587517622617088086283573531809028331068272755195569360401955145217694382314802754994575035021311704721407106948255130793724727620202730014522207507933943459285081901739995365382592851907058355385136248434059264366045290279831268029207619646838009340910097546184783583217601129890665302245863472061656022248282632880144775371245224639726096687431371075938407740409162649016007094795124864256126900469018376397633952864525423779629227968020930425495418126386624368567028710419723517776670500819197413783253450077271834178508758901738050033090276520677422707580418393412526106711172756338989004959263093524483997235972265625744594022734883614955893721193359305598005494402330234273817729027230531391829690871983779434221901594463774883919831760534205007032034280363438200994120799149873311593537528189223287184717786198271481493963220042987625698908275028566266026829911396997891381425418140541527031914789734975246621218472619013167430427781739853527878034994871170267137209855924243832334547076044445249456547751522045484803173807768088385167392574142592797247792479975092068762265097941269200775533456812939906208070979664138503242190853120740086535357988842943570586574782389397103413378220923405929305462029965071618234446891205049515483388060738431521453368088397474951482337029243573691100167668700806107029376514211853518200044225975819193790396861026892002282038317084082004315093544731245480888133485111488285183028966386282576349218195417171548581489041094354610720026271924930286172060393570653763690505891628524042725538908993359606681060946687834317254474102082377580048788515154733350750154366508143779599992812882567022673265831030233212688844101356673859858283624257572265367378493801345049623946869140389119346918790495205536052572424933727713268971499790492072104873142285189802520347155588429288368910478470358550399652974164344875948351914279840859510652402036363611822117430411778924731759692577139282554625856764281463033627124641754571273830628770630267974409915701851047179129739588609533011329718226319784516684407639093885035234395485380492213470143218450962898938718096791480338275838197530694270902478389000080711241197576276926054070368679793878321541455884737343879952030292209366650271303747432893954842607690111330511000686363254112367995428521776002759269535825419305028742896224032932561082184122628116655029678665416692737124380496510577084895934275382856660519850115002999422376436416107935682759936886960860587978670560584961428199882412531909175816838097314107938478583878785030337226947574808655414162408084801919867127572820230292634329909100220292873643867115980816163105894930269654716174371209082707154796916782961422754467432142555135309018663822329043796151145100489539953694107950262117227387907620187826785760518317058488285316435128325125203982263784138093168579604939483404300786896468345989445967782604562552307901842543381025322923520475367811862221505922958733397974049227230190708827178416874358956553337014456375780893471172659427022598375868555979172004399537506304666260258162145344707808165786121911021331503129361830128740931743010275402619647749707220521490589454108404431378851086713020080406496047537529846362133704421366460826990894200505104332081157048044799583030331146596084050904114670263957242738560453017826195949919037233626478349041723819120495909322431623819459122546672360240524685900582902217750452601901845165215923844469634566928969852821174253705305455975324188385770877416723299448962654461733532256957967595348023196923587782388526263831008939820340089931485334339489743952305974985680116295975677827684562152964967552651138558327215692529764125859269416607186149029389986092938832208910995882643869129444287327851566928749488738570406122955222136911301557616827675035427493507294434032916361467773346128444638726128038087501880380904351125006900950506573396951184007801582255989917783476602242299115445473631977281797715606237419133618568589668683656587718266155966025342941876836875607805350558940786933248880287197287876825332828667126821702277087059147521297915630946033944704134987396512746951895441791336625182148937313106103795329174289873697010738430104875681771827046721984900339925382196555482878154556594907205900479673066396320637686234775914019164681184786089005353377508730882945407701894943817788686911962715092871702002471044927465656513756745270630853811484616209265136465932959768636791880972732583003955769274618359341455121246493263874240004617905606717509983260721133505403741325797001855178523700351451157236421012357119460872742886012737105516463876079833162200855762874871556759375957233609087519171292394280104278136354773863939202718301131144551064549881301334709812769107676655279651745488128939469396879283498027168873252752251523346449901457286989590218857145797220451935413671148791397239004667982056307282635587385967814773659462119678523020613765279518469100347918962582781269685089441577486081524527524395612069337289032151791613006313691966263992410308165766176765048973044859002493680822970576502754921810501236180356042509266742337074598038859578034100842113918654940917882008087042934097006662980879902915234686347816044167404551997884643940728286367933260369642240118868997711507859400696673891065141009475167369066474823360050750898325396774069460986002312224998415100387771190080994405652525212051730473016872906635400081253626661864586177241550177419919974099519723234041397800418700356231236659076799488529102383152361336975292999268262172296434597589745589331599990831360284387971764851096272638895904873287476634521502947882388400730413276181011244317329095981862033936338130958294977144792950758885865385745857233342857188042972958075793019015248310516016270362879426593407708999784359933776699424221679778199663494485799988561953760675448897587140678372478239457371347424946990402792279734465765620771431121879546126782660667648398248562043492171902596752506470567308169670619131547861282034334500752242275352620848697408468250624844467177520003988096564593048871432885041088718222049550178536529612587277004874915008278909987667414527378986856471428354843544303545474616954380959145108168819941079537310471076314729526204539975492046618761596502979196257092669598704373961543481558584814639564665910511639577788375858776663425647908357664275991650061019335469337350978560762976772001467628920169079596295978178812054904298885726229071701990522085441737668094145940451620243081779002996712060301373337047381188555775337921871013082743946175924505251182752984909334534493525857566077712148204636984230628675285367118530402337802685341055544356029690204756015130723650863171949935763494089879459413836585093735973605704743291849052837631374939751092516066177664505869670301406722663508087793879967213508192613921622482458854916986223929597852984378502630319364971753672878876918014698577691342254006579332117214314280709434670267918698544258732244461010913869705975272016240964106727971729403733588597405632805318052104818080808197212903548476155011877476646229250491733638243942364254020082109428151574372998345982402704812984106078786170207627468272047048659885799620351169404885050957598524144585227920096928478640718177670412452052010157144733247526656580462424008633561038697751402424326503202394088095103423649727626999374250786731226013253439362049364427469962320234865669135571480953465189954622516534981827718483375622960804372651007837715735122509474902713239263369965410479075644341846212555368380934900985670110627446095871833938018459658712730409176462146661378686738393692252994414735145757790528308157285422503695852054720906906462239623885586838203845319017372663460422507886020986840973240728649773042765376010389190001086294588225915584486921916398273934750494760162608269780730070929763445276239786290858171160559098476853626311323956305542879700019539792920029268190900825660867456810491846995495665633882646254384854334557362496115376864176461867751817505389027083938984849741258604109421781373332275692706926927371612515504187595553833372826240716939977990016006905303001791311673493404357366898444826116079628083031134463274622149371428043608969508388459952233538019909924885705977959372000598194187543929242819976062489497694406676269154513881958981285800035471196625501116717162052907244350453079287689124152259399503229759819371198624343147275985715164201212326006577158795149982388754749623307092491288910788308702134175349149659302834364848191052286622786784950509987891243620448084390925468804970698538863327379746241740904031719133561893166474797079938750957000630465007283484916075038640627232534718420137948329412812060139710779874807551355416940821954223763593784725280328645713022549910596465553128266252152935029880605234305333711206603159995326730151989738503844888844706497434014926653359851151677482919392310567808289502872955585940791149433801387471369920100123789439243653652921885649827204385088888039138925157263333073926704262177216893213165510214507871836924864087308764774585058878787616782586207718230170921017816563488262008390166783593129630753132113890772320734065132153372486379625926288323584110626220333376307972598754134446557671988804658443712857475491640425543875001615987022904471729874041002902720791210986889953776178271882027355931358086664872693180744510839255728473590691603472174920996701627133081565782021610130050916613972825359439157943540700272853600051852344928596505633593685280202039166253550994508017102732934706888867319212793092193163770709110425636794389500192531258247183607445812852124107552088845812459630788304248678830986024411704579928168335671624411568044264042948068507902856045598983099632074225678245991499962315460675290239243515937296691703406322139858362458411792803533866045303221653781794826751535219699135147471989722009480571975837860521624635947670347435806175993643578338061196391715435739123836183212857841903764263224090664816866108708804808049098020589162239325361891772569557079852370889672410872501761528040114325385446657447810949494309781682624387798167790436763829984716360130034628088780698816422965783934582182521918846124686468470681695757441322973242230162759051122658614252087477936099805087745408993828282088541218454390446351316892929843853317583153229956369894467821414554390717809705047332941940995304588573628404306219625861351274580515403020023686497953678902694265995912057411755309060030017390786802822250286162990913529013257417527849025118999323462939756333445220384518764518155226084600731767454197510520615398807999847490461273128840085759799380651834009180253394592904489407606354261313696975663955713891941592123669229770212645479083891961478266191936013358445786282142569030862330621088225813332163498858856433872256910867133880792569735218097583013409583450707871900471102703663778154267776207974276327682425610271247163239779936207923099688528012908192580459549252690087808134232561994675844076695181761964663712953397152471667336472070108474705489539889565245171634033458327319713212009630206353348252509556398130252243045780169619128686905232541742094630284664218583023652268470391614378941771751837487966492810882643679054715998567177879072833785448234488018388913811899053010039126753109779062916179567848163520823415173985013008624908091491223834440434284118833759791906133308821132558990379556366186244716320957540890625460099021254084998717949889646754233553685038598943140740113948912001603790745572024634215780342651982738393409064317509148173417830315260275129011954869448003565814323270829529408571152164849201416381220553836700549273713287775707594421901607223717479597947366314664994173375565251581013391841666108318304262992678885539684922835222821322007380192458048279720754483850216320337875345221501808805910929957385230094007075128925595758877845582757404985130025071580655071946063079247518453806859343181572520308552835823145283431493879978148935641148620327350478241726640429755664269034918326820337911761914044157093292102590857579369392102092553502759321937730698502987212213484818865451480153136300128467273503119154558440966014134899221188771225433592108830714790901392337685043675214717050743914455970386402625760489970450852627216654391829621244986168392184940600651566983861325732496935948258235833632262763038847290935293896607398002003697338157598433938775187977128221044028880464320670900078596038060016310262275401036033285675816155945219976515267929891668084192818727139338692680183634419487056667987334012519938288930150353126973348708208431985635986939411621997637986794986347638831279966918642057274800733547812561368837937710121557257652132164123448766675857124497944769996773960725209287316781046644574878370968350025639781022840808742521213815746812519784653530173453040548850469226329093368866059475270339949958384008634378880154728775753450866508927870579626537005208677204772944482234425363626186915103902561738044579478682301056708560318284925630235440885453711596801258467632176853862890324427148405442297031851761784557455402709133949237192382851824216539156201136662126195355156367927620825455915158536869232180872213341197642295128475105371962836764743911152817204223177174753116546034692973033319421155807305373081711301863213101063426163936317993387279992028258614438173626345366857705850597528420419489882078703194120554704431876903375381443840521829800295376054940258037245870664209760954867160137300665443758051910769101529033408026886461332112974823468531823922896975405582101060606844404520087674706223686395543481654307589744884063738147448540470623250028263609550091329189202931879134696253271785659834793326718946792119736590240485755902730368493441793815694998929597851970437238973299210392571862859202275154807984880022105440666116760998667977414012052110675370659290331529570836714917826057202140055859657602154743720527031370060604865578293926684789234086914082910548197079494480250660123666798252633866729443705695414500432856556827732303884686423756433343447197321004975745393341314654729720205198659668919228687881565289881756693793937724465906874813644537845326070781097344718165467471401324660615401280470039064544224321169357160690150988889801104950261400935622602898744787580336968995660679653345820202873315385607918163733009929931424947826180345140041984341766925820631782022113613113101411185147224696737178900376613068246296947125365268957585348837988749583578806878628459611752705290477016508699290318478393808412669457525057348932186973091636883270478313760036446953669529227023979301653644185596979906096215965418558896863044014738288911825148546490210512238751773598897244779171789312652180842469521115911578017318708874834114383761036943521665057529825567157778306622978696923136969201554293183185098488997032508415098664310909636094137797665563002304352276871279276250232469593962407496983307026288969274292292666767926722197947873135503839167483681707274511115051844796781366634569870818650269111366381338404463108569218231202854154820411938176129223518820998463923877783802733974107398407291693685374569920957187241662791492851469678276412237597978070123792047775263062489122799843823383628786050267218623632663347255184267398699313473336084352936126474856207018787655922117310971494865243221114255126876280384903983677245041703122919443520527145802179992907367007302075540726880092602533643678648506848130519304736601007472948563622955613103085259465681104030982889114121162677967742868840619765519937029619722147907001201828962228792674379403926232774187979254549549950403273667232076663350371984537991805003259713906429746914404319313715786716253330745539048335644165399970030102388446379060573584221190048946142877666734122312274473174650005847315899641156793794361475759953702971363390209866511104210631265697532902001128789910659108023966743412194995855564598879323206650954644497197008492261695659062773196634727728955398794271757645634825462622721965090163717198796857941890677586521539382205898018138524692526430140007573302891466713562252592523916381471061263602479559279457780270006930685718207950004040318233456221025560399373991519224636655081228166221226580022048559482189081710930514249683103899938403788237495155854209079190164601718614550623716494307122479379821250766576387201639191493802220669078360713113517925216281570774763876901164913717334592568966949400805000335018400804893674300123817728046566011709192019669221769392401932946282631784721001684817826051246213122553684406917196695564020895917683296072277198272752364615519072487814298539932195545247849183045539625461663022814600959174422390277519448622970021410967934825321860295258967019124371816268761641565930917817566702651085601229045809508705458100119485009988422322824040770269891469387451088668463941466149488541056280243894010463904562006740011106558706728902248971340826779429568494768579175586143755490922194241835043351930680561716748094825383496402850558888796864278670578748660526743306259483733281404713824887829088836519186840961845872619942267256387506311365482508477362966534110747224111506559831486003049274408375278000812843796335646953607123034300477549515502485496557127524724182983330418525787668374435221918094491041057260221268628346005700155296029222188770575139021801882024908418026833815289897260624086987405328962808516777098622185678670454074664234136242487147471021581500988901342270845359750981932378712303392079095880064871418475777328245962811926318543307419700290082215802000267996262523329199426414195224913049248836297136384052271094668565783953416638208379686362687538988806131849250325363476115326742661024056633400263732695724540051640812151195621598003236759023712497782052647054335560542967154605947451893023224645534454622515461073046203139994878358851881226257996226066147220193192947865680381486399879242338624584521145809528645545569646403492631086482944967216979327859703074000203528025446938922689128282107272757912492120341501135126308464083384267744560215898365137350441080834769093278157326122642869123533083097871631358623410169564177042756472512351141626760663905295661825861766028311626005777169876737948117349595193181198769415370243643986045559753424597621231958060886423051249166865704409764737471805467678338699800353491920747747267453034613483618159157216713673706430135976833777730231055675145209564282377357842521118491333081399360532827925584273110340623459128752547927388702041481895255705088526318866964584511212401377150635071491429475983190526111965986866843003657921659565210930860146126757291697450890160595395077868293881689026287688905869084644195881453285799837429034181281176894460772397542525359295568971414869860628170349822523072407763434555960865059308818697864617890231065436361600007590833223345875764853951524964571777723698592474741376638071758757193333967422013933062576192041154599112167093661132853640429028057293748185019271279423571531030110028826410191297811821069619757917735668648683535119893191412174082856008962055729552490260139366996139345823581774408765950921301960312247663962853041695946320651969212245517828284673045632374772224079641250531724692461684199031365771433062932212122574262973429144499389546429953044831145269222986639425278669118500608057052928631504894703079327474649645290274435180816371543716576889962450318120218064615296227882316764768744421927960330032493465152792985258467066850112479142866411611781443031422425476090766681867221239532662830187554576688506933396981157685843186257562451234907785846430320554131293520086132914511859696777635417204151597489762042921548476208182709957449669744284887703566695061655384934864173445409964829147417335947610989511828592350951521685211786866877067759540800162069736018981537198882146023155258030166466604525244888828814111235900321918234837471018554192732836853221989685734370476903916724573270824708838434924543617083578702929314187878578810663154710676413784513495004223281748514834399963728726599798272265245781027454897992614537764726259042165802195668932184477019361413444004720124058052013873645823859452551792953785355595535227833362986481795274135015025239553950450533800199480430921215870915868560561657087948006664175582300281057668926911559712838902252587156111415761399243954630621863767775467628358086018552093639204782298508164233135579999199173555696896470675874619357580568738286730904411271628285793879891854515796991638131483383891186036417291539826552934081603886247206519798548602619985955696994194558762719442084882495365402716595595924090475575966882543625604126367133895773111900412614592960224231454736245254590160324110763887719297525799485149558121342297340420424784411633731756987727706817321609941474434628008669676833573604444881998704391320781590360083640053920491677117303021275222042609036381854082782610101772548258943332930972643933311708944467731667464941359047071395790544192165187619711671152702204686779516850209363124903180357421623891124522578183906506309643335011138036995685870017642756087709100951420963357123506391194603410347020016324300358814268568553026244847700674438801010657353438945803997860344217583980169497638335830799655047581826350484591983602317390093449502838284226327904065891588185483697821599444905154044699195443778162325789822015817400565510459104182571348591579521891687542428439658217866906782717542943326682305541203234505016767984723738770624973802028472860908793040858717891849226283624502954462768703213931351353241076343181192562397520692260740928244264668044056280434462466423981745050816903485206505883015413519402906617783092974484418233876529600567349825060746021219189025835402420179285636331209411367379569538802435260887697982548686816789303085411184491954843264975184543626964219780758578924692791663600540339359935371425028714016391823426669922939435751089752425599693868144315478694057114604825686509294825597185740307861927461210494495036680039613607890236056854508624272491240285844196290113594113526111875912121857207713741068183184851371297237233199727948297134377494604981704473443915973820746807291819536903874450519902963468937979339005690694842085407389404369531296938242345864726407926469442879085048780970776043286231482485354681101647497557312060590275518199575987263469409607429171741399283551908791145134367686110874480421962498282212598863128952119983309400439707284078941697919379301575563864603349607092870010563642271838431250044317731743867405323014442341211555868796164660495625932312744845811972576861040515233699933742199869020921729652490336169805176029733751176950890244197719541532050647285019969192560044850723011432128125812509522027181758038757108711789700109246988787277949480835090862415692379650960640693610575512917109705104640028144236006465678279890963923482666066808294324287847875158400000866346929131042444715954689201237533679908571667112013753922170403414148322667701528048355427925992939656449930685895910112496549974664848252981656875994396864886299193355044310881446014882234664433235115630192651260797355141258530097811007518285442999320956797661191680953631806501984964652025311673108927425052116480096830344907194474739090103864104376911126987936159828725315503868788319605762800445410516153988238361231318581759450495536084842031817790226629891568381399786852485269117200983013504634454377876082673278178435918171633582270670082845990626468152529704419800535581581365596433607470484490620254909081692253523751562204300945144285095980413337987337203249205205820213386549575302366068506609417486638764680193320903281322008178433182391575372465933341207966814592194750332975789193580855146663541137635203027398952302865937441911686167149426642091389654323982286554392385040685421323974737896672771273257083492907991419900084237375453505518074372486441906401192014028040263074979724226599087889701186083420630974343995978935372404842259693261581810201062546378254895210185674882104470717285181734312830116130315388382489320863246065424906224935240215577044319282973369410863638900492146100303998119777933601498096360689484736542137415476177491484078995388296156867529273370979778553647589964305504167524191328139827900452600786222893088025656248727210945799737907130547501319168199023947114188033533451324621938399393739148971031929911340391316905882649891570056768728158105795466192603882609591308731848723619506213431213080324694106000798859313557801835390359169765614170175759136491792186871586020379695896413508494657678415297994452190936754419427352632253223257768108731699185485579118054966986275881246918764088457757318938919485873972046318352037875744761495539298587610153601722859623703028297722858379195646100123931807584802787938502103905029198815478494536381358727900759691723407027638372513513728369875489214583887902020481332553413063021814151959215511552747545866500456749722066474421572679549247542835483275789569235546632433339263630914101118044219727080559619569863966950869605730932120542906329901501292173192352878813982369551965694145983633019198626603809837837611940278567826236992917028436990990620845037332473551501024028187420396799312182423316511300717974996861892031202023995862774158093817029509774352771780148682787845199229106268349503007044807501102413217068334536726996929467763889256931641361121079617969113209967406064991592490882878093110679175870819454882290508347708989077517974430984902316854028427641969873117162938097204752815555812861213073407727948934739112240752989730615111360582331814117597124586651443600099108052924196361844874408996015903564684915681982826656190450125197676759703846682013862813530202987028065051565496176178433588532256452241310577422108224578680714825677720686541840013137145366210741029349210164289253523340995242008973743473727681160956924641586672156609717349892971487017787740373337336714293692917068296207717117585950677310140924797453836445730968517636335348330399970291252698157882419590290923288277840181251510263123805111586172725471031367930435529295740372024735103560460318092498204522911330933082620084997858528987431358182438686139476747812232169119914639492164867155374728595895958843737964825898202941068699328778418582677898020232355383441142849644743490171613380799409255825663327221482604869064238847839597806456167144642587323296065245838110510549398013254666609002615849365833956605694892647056516374747664188164991476847264379523384142276391342775751855764145031330670046445529151072757487006496051247370430559130956151870602371512212498261695316592736428298866711419098528416188286270827426353938886368477960634868487345975973107953559830561989769053787853536124624438210781619944961468037669122426238118706806356400031413760744159233605285286855645348784749159132843130600194681879761371520591541666937959607449881183753573167551402653553671289288592716129120469729482561313877201905128268318219415164105042317028006285187579261178649075317317417384443776290044161589995694745258494431553120180324407038363721730066175524388343699182345551232995774389258420036641470417497656435814958121479828777407666918012195778987352168348620413707862394724339578091975991521297859733110954709881122406964007322836073851782377081286750826059347413617526545009884680172469079511530507002087724564396843294922082082678810210658167092043228783894789764061764048296606261937282188208259464818780168061223550415165582622656495297441598603213549827766213995652286783994707860380462857165276697445281285300451516359923886208296484737713223858462422231671680545579637451515588999849894295864481185509792861512706827352703696622213167980364239881458108903073679174442311951462128715916986177368449071139525035898501780022251280293935207445460921699566291227449665176515807584085688664794996261269333243424060683930202071821302141210251195726011955155553728482196235220946660668281017813650404948571094171811150233549453393439214828790878500357416132178966191377189097023766754158830312756943346110518858779869545665056039079189708374701477520676041225365625501222249651442257790705242258243808709533567470269820743192949977850623859755763024067047772204510528061964395916861749678743361163588951958380885317181155459543472801363526009364352682801520956399872957698951315975498363344255127595842313721191398315180560114934037276789124736115626199450367662519120126033608940096092112160863899162052087345618197935885336180604422488465364912636503799849361724745635281748080947866643115830523200156077636209714972686052652087986342971158547245513476933432882243882263380038103865510025714479077362798541031214939432216959135609887715469035228320835325378679934180874204510551343113840569700664074136296594118543108486617257101226186542320031570031147848620460474634006656101593048485692178679166063305554707009111029236499155515635813387885846372319230069724425076467705077681825894079928043702991173928305096023538187796507923050599338802902913148667296362987981519975457405809079850306506418259090639788449813136609843792786707254531787900992487676802569591088800522639542040912368225960857818800590985682647245311869160618001163291396189348597071220082764957453025412178820897497101938043799753207438533898265447366402112462734360532160640769977373011046406876820979263830134842124312479370757740993011100964316865010078671042501893191605804159124562486515164459285435680905272132177782553862784571322018418168170784632786199171887370067960940332073880112434219832087559214587775201169058049586592272921007734235607567475027797830802256922415694232937828479146407618938194280764608391638006164334240299102317179240463806518227339759535553474635919482727890605418572914379218984821024729870568794491745858488721491874928614685352849876877793797581092046025217113935690998095988612777406200200034460273787523900649295884840183930980072461043422397428549010391447079385115717882337745170587836454276294814617140718105098513878124653797048472435800592917184334016595188234023825365499799602672799708288957494117626615498153069323623183866750484691221189580776493934012569017468766383788164568902507027047265737876078168375547107192403256692980584719564735128290012468206892243023641294932489514901569346503037720098665457451908623624182045762493285832727579083356695121005174680621847206799255192756130447998263963778943945211940306021759430023112821220097593830050645817906205775711899093590649313702676486638916647002613476492722851294913474445842643359781747769123216669271173467920746143058600128693963914982707407571124335168397603542219657756521390647019648036522800038619675788287386207999855104494196236844493507906613414368231513447345917961698408194474642705662214912808063152363348600879913763873585770198938835023338132289981236484478827413380859760939317788140592526490976937672480644682440503748155793238548888390106391364925849576044216582134270236177750270563154746868230322374065034934343745437332881716750766939534864802758567646714532984928985505792513517477113095138742754770059752190096615412957472653371981451629197568073788931417047461825856792291761100348886687168165262128829685329612845232633652077882839701412077556457218183490033220579615727679996433328877857860918970221607863168876051895426538432640203151747072007347174875413884284737690192448856835669046528552381634792901942988753028875289156044493908843694328595220699816545209969973698826781240198142391124032944027245498603476970105435883765577566791759000518341096672523581548446387939575318804296342667283948448421574137589247346312543429018688897457411001308242312839391945162041435080932691036218621203568579709073783767647883908012116585131273621242883625885418653493703246623226531595902274662627758448184523480470740559837989660204310495962879083299125184349715089695069647012569264356089972479091247026808277549922669117485544038337943912728037057829143624427823168732716392487231150462353714552697953894311463369941896207659888475610680326648165824988376355879302400449078936305347354854481383606800758411765463279252610341360395033319039015542569771499669317538860907493390784206954180241757174185457945802839105389609331667547329112527195006348342544502483590537950870895480754411949855612279930320109271334809313136915702069796003912750680377802901012975352573496199904588465238257387725395563643383851914211163423188975586104310062704892238738878451557954292416030168017747031387660077922002032377022202523782338389753844140297643657622967246697847723201101724437381890147379054196352679748719685762525901811405199342159452693734404031037694725907760849534639391104122900478585466866698850005553052710560375690462580604731051382704606269643616748253611045316601771253537119403905699299116876069404636072017772686786782713125372376832586624628859884935110206812132840392153980306756138411727385009970088860770051922189715660394129681150505235919501200233626795624259521258830583725428853404582375732243313735765372572040850576897638895180576497324965506137628219556642967069321480454882078491342312033724925845311971462241857428608413617398724978842714006747368176891329688958978458718610913221387026437632073812770261310931075684969138733374179040881530486127466711830953128093470618096208456770629121078579542820425583829042824802425184964829950313545377827558534265627683651315895518268646435498239111044691298343739934486252145605707366392053310967660179670295868318762913337398801538747283755031367408900023656317344278238689613368759654928841490353150548451828912233929295642303458908529077823851592906407322310798379607398614504682277096101601039918184453464659194126100446995050167325733705767351340732011130139340978482512409349689963924799047948620066167815692497930335218461285978723269731100130058597859503546415636924743923859472757860189258395495160450328680816158400551890143848722119501654086855951983015863404115627222343495143111358410286138585671454026817533955519211305365638315305696429486474405451459738104722724124469745836641923009357255464624640299763476957616627564686956927019435497093958762860471962703714467654618435344551976089888979527075981813975798287634081020899078079200202429798252881296083414969469218435708423013413999764883592528695643525051810262758532355411000652110908334056528562974384554437058341493405566659821773618216762135374596335676127183747764176682819082795840405065231114619420629960242001396348406029741209821469926240675480252366507192819477487689952254966463082717496994824243622260130402532959763786908267931233531630928046743968598205587488319011322520314673283815474995101920758641068080709894071747179758230150777121452732308498930546574201586167408666723646568770753562687585876371268507478737728115713250122152124024591804403804107101149919227161212616388106054737890855177165996934909935449365046074516921173172811645639609730260471242938932866935739993296198871634928079935914461676292810886594063037731595391920077381019700556757851941596309634783638934164031921012316021094234240226622965709938273529154044404576095368350097405479686510117111355794861241686866307228474828154281209653592400667099078728454973550441102189120330859807523883918419705045262009700709272585873075626270478502269397388441530912736554203881333327052082059885940824197217930223482037022658677817184645837654569254044001533882653518691936389124120623456605468316138640288785757950989549675665800083980707694948856827156553248902825065088428599873287054111132140020159307707314078383734362603952014999003195441634740110253176435666423912894462586464440550344292084218322629331096964933803418729707816904731623109616294468267405841297788550840828973802447119429969384481227763724652284598184262390047258617347721705231600705652129014804864524985406251903712493993610382362664388726593713386109313077628891057260515478726935447025646234474187909799234070345902416685529682977931942758677652089036113194954487750521889399762426812247628158877938220268397110925761852848829108958117241177347193385392452438049895083059148825081939826184846418047281572479831262783520642323302642962453000458719318191992835430874970445514525965842507835590111898226776782646876993043008945745113052235620488387649779804828578520160656424474686788162023324050000017958946723822913707586711376589380421951031312273839926882823221506027480173351909419532591527151531080941266459823933109711534437013072026693298578810143965820447239801804594955298550240843708567515212513015956857389257060746363543093588013470926195953098175986055854956147122852718198964254322047388682113060767332068294230490761222270196299895938300385117729538229719639847041016776040925416985836894971714361935531359692839106729765062645540511024503529676987585987611980108924642148093620303090733353184875307711989598018576556248240010335759349589238000087001432870955965195630484588176273995245632037581243783713556191001540857663010309288790508521338458226724705263088104728653586093599553163191233922448254584689325411378324425524961142428385873328264316810471017609088244067220784847865975831600479855315069272462423395658577247393159696455544346396103937498841957994214864660495585652911215131237444667817686686946706540333920600483632353284799997728368078892338084303903707686280181329521766228302069148995608808702231149524124874591671101900061583893250786498839227580840711945278481619627360934771365893905273638143880706095654905534911905223551016522098662833236635105135293199284094919767878245584327337981711178159793926004863671756487684072982236322541010010283547778351836245326076416959023199461396834945241509474782964927763801979604923222269749727993459775446167755167111399267913075715651492646527977130187760449713826624447233567424178725049986645190049524474820518992977908462173040981461222649787042552181453697900030736298467339674911476039188364465923627988021819623841739311598015696113478378556186151581659836224566676714268514699077826401745757276807034964350412045253824932217780597699239747474914703685532308396716265613297457758355432552641857280797540377007052120956019566361293806054200126087403336891451173214717065325392603385060996475071301645788641485367911441575110174445124116006754044907249887784529579856187148401201962643751819189950360955837162544522673787827872552686526954489149268312779843266500957621354686227306146518132431160999903245997701708848556597454587118060637856819083204970406364282844498401699117866237662710617434191643540772621726433937937499936489175172117016246037751165884813831664364206814234317023809403674686963290532486716235027396527873150955071174094622430857588559452338940671099113334069671992876104143117180628173102817513635000002658965685410684725631213958695658914613452199251242258775328999539100279610764059981161266565961479986768663957876530375810841868652192234997016656803922321036541869386655609596579921212349364837527310918145844572597506560047183315566859046652652437141379995888814511753757902796248994579923029823127423297932207392931830924480889206952089914057055335847735710223154341218326291853559414456831432323477951771911046610110905060253366315513510256033853158892661619160762435979758946431164430117880361582698698143280841793465159356251438713899412474960684236311310006425517638921589112523467439365934535798745366984561702457864506899462659038088059207094576842281292317532448432507346606509584551948607065380906876650807157444201938018349399051467966878053262589405749194719771946238077266563258260692512065079779160474933364210902910278588560780219310185723459338181547795273770793495050086344784868460125276392457211419189787913932869816817659400279284606631813535851299015484927644294313819010250414859785501197689755689852136606156939972017055825088655254037240068426254370657110792886659936889139119809965165652056901162853324682735739745080829285776645611209126031943719159069381465502616425937146482190792469611849605730396061254773505999198348981075485030682027608525165656884389593574439081131891757237515681712883023140590097956171089469583688496397924518796348753834815955155008361582465851969575453320136347017300710546219917658115074749884902046785806212342847145549091422874913994481222706884627806295393459983819552475608031849758061244206219924629096074515009498371299596910143540779164871457633946773897938877516566275328231215390075222412138993779277748133026282167428796709241949425710444748555385707774195978477027638537997819808434220804542426381566604338989749455848156946825348548863723918964242353818601859836543167059920323014157637416402930992685300694314821001770781635103479854346951183075743419975685990913078386857186616176524870869635846068391527116016803919890937626850539377986320722458868131941228646115443695484888212466194893573943316032185956278195750806684546419644411779405512793968870156519098503454976097168276048407052804819527556299075291845442483735087992849668806226905135288908178547058523325401479606938849124857320601286452456931928779341917149747983489781111477777283344937372078393671193370498683023008366111789600135797505308010079672081440109370947160617683646738678507733537641659106530136501335841602201366763101246605871918814727118483178138656037127894168347906319486996708460602306970435248546904162396461852559823294825754002392569954814700729122502295160876038565671670730788791417273612144122314679617512149822911204219805037802472933726514603312860051373275931923645625023347424332604140763021422533137946273918329042405577185239283147276188512987166363072298809758734058802308010289397103095616604089906513615816252436751136745494256921669238557326489462031274128794979398679750266327863457807602104583285497877539472527633487467947301491684902976263819376457165634304411470100029614003595237645028446848377230090219568880210271307476571795026043246522836062893459175530181078333925633658744325892313261581122098283492255152688600156782550225853849393799791275750578459193031135732089806193552595514105346613265112575299996994538746062825001494009173513365883855939655768230198847813880061834603839003054372830951249552774660063127645768139971865952899394117772923887808389879098227614193710734525072552454995333891049254488323676886918999784743417692109286368201044664540931813049851694697179179606991644853188397014378642482647794127213557226143151259439025580829415546925067023298063859142318006761392758970623239606833399592534952799881938075273749855544943068756705977808502754462199959794955344982582081657887148820450213887935905751781720246812031047669103371322084713180204912198281211341058228617925319655963786325878060324251687928202471016994026393239570818558029533150818827058213880369243645981239827371842343923870769730918834227848677989157526938163310653356457367285533221799436444791568608444844004272830318049673117641295808271620705621370187503524019961714360528867467323344843243746535509139797440342137781673372143286480300498792536422560567471227170379219310735847014030489003141410832261582667882747828466443974341203898884894459063632901991876757121921912663595230913773342543336218260009922939205794920637488567823057933729095772710574321204552030903728357769500993271326621983819394785741716227006472604294665342191516667314188525206871593352654258860111511718729205932029062959700546223998053807356225895693531166362044212781901176874433601517224603784981169524403765013519796544708674789788990782233119680116704677748713195011015647137141499375041423233456179216583903057098849805525478481564235160657983889530707106347693402008185060537789119822249515578202868786165643473650747521937420770685514544858969449347037322114797502861008070182544746110910852589493506619230364440308708791539281006481476588688155955627212898282836992654312078518033279931410399112821939216461035586975683895541001800636118859658810508945352146007095908255615891296938496113456498737265985256008493933473394749766589363835823038289137110050912433903122184568579083477084241959530535638223703398386077985320334580251612449133994263886844043792470082215615077532407554375750306398160753046790235492599877556576923703293917208891237438212943432382998050079413802055408855430830266897964381835445892623133427811668944672491284208173454482958187064854601767529068939312733069233484312647255454371758084579486611469227969979351733315607096010422369990918975909450261611329355316114225560189495676892620353162478290493796834091271494351002963745237406276412905914830769773309015403888076858066572113189582818352562440781355339185442064810996015420379119357391988148825813140388432672030168363739248090101516833317496075376074354464188179341003498437346138429794413895929056584737076187773577412227436077345556220047300267544969171449240301356802925818650391513611605506958193502511855649603494705817130477993590844313399759674521980589303816292550917386816333136409821103512271871520378578403022606751629561571344448109324268987183826929395546609817308764626433400308332442850393649445784892098923294318390645608416432509646663895567900052043225538101140426360432468432033012020858721375496379214932030758258220812235733399948132633143941059391543990331225478933330533206950839322492566643096574849820557579077305877697374569554100735592775902955454458214715246065724952827253839880376613115757806901223880609580076366474115567148795868005211107945489308480850920574207267549884178889331724108961175228035793614993054755964022252012598854299662904230715314567933237292419920379008548426580236015298729646342942455537467866934138615133556704206601868668133920511868446503791127032784108290172445122638290014981163035299999825666955286363208781449063446971806259318568533849123085908543809606581892516425171417085877793464905927553126518736530623593677818726516852060735175669202151295718705031694025271184996441665510095282675139499443664179503940415472642642837477616768192917192114155981748986413878952015050769127209172463707221152068570288635860432089103856664968416366973898707417599252662396289329861698733178521018236643178158218326248622350213237257416053466400053164732012573905861387257452196181461677892057614929628695130952919869850513273056486066072677267420539722653772686899534403671627181142778690809643123538740535692266018601333101051940268562240434121092333957052732131725103413215138262148250268665961478663133796856682153061362549325212244272559796068382808132627603611350698098643338261678563941545795090838068978483722685593210313456762605873784600119984287673601435907387130364473708791562820599084222141949615321136955161377925367455418519072032711991260928632378581219659335298189792713414806899595576090545247484617684172976966280384493958493311059843426827835773905163474204864540624495873436351124888988938497697300706588846121179239637444104282800468498656530277307210503627673243479874267915679691099109523305788589170757974644303401326042783022553924430346364501714262048721320255130043285999944513943691329000684621938037633184753054978759760694635309646634725119104244765507183757055487930743935449025496467481237777306309187150033817931299274665314778475113469116314836247391911034552280419179260722415605300047003644336474573098906262122302452106130903388166083053891022043745625729756079584017321757843083442324290138044094436074380184920762907159566458546467557813255910880870891422387195523448105505278069348775024214916497751888754167555107735036322713613021779520887127921136419679759572126489509852651268484955091294661377775239526528589153976291232388617268746696158979183186698999411665651078625105800244850252266710067282342397360256705197129025620722335139009467797254122570274804101418266968843101230368149271489932567099918389324219497709963363625471033330341492279643130837216063974220595332400285801648906633276738394531281112020471524490629137022668823408484224271127285997572482233888595458432607839893344687236055765203589760005480771924832164253616880628723425577064500369359673301811802940621435409257704586739672395235931978289731501777576815499382295385326308081417346991499280611382196055062022957677526066891325767600422978619338216793883142178463278775850280845372046116173893651499462248406519786114248326756402761466262713999446174768854597929741500072768972036243860338911228288021759371085219463682045040620227733434981633594057058750501030333539815340385616238495149774934394250642268704435098693837289661500466167383423527544119635526314955709119024789154091494185166511957679066778557064161478710253131721867559710108807498789833219318168067825576267879783635865330683280494213732558089929884360604358632101341649461514443064142972452571264178506893778222955532966914873090502477907756559228844098044177999888457269245386605749413465500533302253489727291725943485261784807073649010238827165246298299892324220813812748798560772764438045936991861054794248596660766219716654127277356447537475008005104384048175035937420935155212979914855772500344222331413717104796506743786491310797682413534931117686158927145467466355077360097096856413856879743898453442464292851176047851285937580539448578496066362226253060726002255612018877358341382652290443478909395117309551194682697572846879872793893190930118009178328438702280167256551910112951222730096412587788265230743318225692596470302471588425800813376615186111260407018819585599687626548077966418806227582314398287561973188495263746648715511535049808810506123787465832504010613864969056909032709500660000787016743290702451609810765301279339660547136763059421467147953984329374109846331588866953240279222055494515292146525237764626884117909276015820261643857420824495537585679500101985670184077639175022491818533939101350939989905120806063876427900829605962942457442008116725808049989879756586498358154830211322028929334655150090991867994740350488833146582936152694939862537088293136474707025573394277571150441668186474400263321477234181891067173394032975664131090105773042624656483694010308018087073501363809823204046477985528120854144541592683594832824767796290948653464008712911473900813537536460367072331757369132188813375873077384297134226938664047501183914815005789535324877180643179178169637734268425447761127923293554467763815926364198219024245755158348517556073293195348818721068139968659715085242224722185464341064982356364364058080082794335127627844782744649401281538794689130134337720500788392794912531946023954180617520981744113601681739476518389755136015938215906059440212124330475853863490187136620749115342994732336203606434550178269668737073466122433328821519696719539619614417891182863857703811659123736576168971294786143538517136309758759198357593174881268134871302467821111354243102268928741940701121840610895675888765575780606600798307394842767661874142644475745984687952026777967107070126274957281067645779284332900154861179451709718205014363859940539624357439952719456543797638672817898281543601327692333603760644845972912046743556315112897354557028523690981244871559617910428674261522791307291850345385444003007003134628394620883820747203447923784545213204241802406439689501068064215541446017664675323353004297492599611664327218864916951896051199365054335019543221879444318517798373399908469032514299778370867623804549395096404517197023434839704753939647178494235667641493695981200438614769311167883900463205212562957287416210580370913651824054549009222156655878846007152538350459250522419129287386129169538314785222850458841370031292621760577973697655095200829158766065223218793592305076748762065736860936892573534739469671272732754726044169367112885589629203769772199384217278125527377922937286015626254314956967546931820910204928807813403948569378282881422462915914018568742854050773829805775021321869565517845919895327274256557485569853914526350768324139039938246696881734707288960614603000001593871061997772137537692857881053551724530915273381575934301260495594918007318890484580032116933330872707020336643692853547531966371074549424593543604848875090255464718738733514156914960751550069680478734740982097519172919459658203845764993679252229852283969796653090421567055305482260820825847828608366419463576781834492887312506999192279318528911432562161232364804183286767558395512799905149672653528722512905404556460550535746328984276908652365113099203878998784176643760354124740574853179368025694821940524130859604839676543472005413829416141202268233172383467126106971297865468669559770439454567076184130459730617245058794745863379568118481566261468545280913478139230037897178560199240471460510687035429840102133429947541041497307820440930867082381657064372802127741036178691555747140805778709664341446421728373357775542972502485686517072533913436556162998683688773585825184308007867752593058487956016285382218196364183979597901711460322501219532567814371197551243068511254327004533025540178250951119437088629911942715034754881603380310088043599859358525117254764276293227000258687060411441679048749111226056422277200547221533499295812563211858673407911883649479428854277285263681379929171845840883429839716698585007265176750581132268442976648747391074928696747996289342737407926088125508650308756236872624531214914615302715467052641232364601863249471379329060160649572873110046809628849691817219589637427616839515552393910140169784889486023714547534459396516387160323132947283274066665301757553198886990988787767689812432349087394309116190543502535382096803365707564857499703030267832632524413753982432425353778274255721273786149319332924246681874980702467267447212173541765273151415792924698097462644205390560658933955972041967188171649041335549400640480725800669933939046439033721804527448433375293167098113770109823090312023663964710374424668389953205334679801536701169955863109388558832551400750778672229543571985497243187584989546816759697395923432677956824989567456067542819356219461984839408352762544690461219034378926342953715837388155492271274931201390368335082869164808198000723546822165955879968897569246334840843386284124108789684159453738638557212169599766602881215027758980028615767013872418510815031297421886822941896990919201797289994681774395711865533061132649053564491348232025440407164023109239890058539347095861463284078009671300624845242277509981369072381303520326132672423828278558688268900800877655539572052907053664611722278885561065038772491409029649367297228535987865922890004457048353129499656952337801566910190470774773105073704091868548900822577433652390027913600933431965220500961837760168481129824751203147585687874452940239295091506361589646758165006332273388709648256434319013735769355892127304045918500895657543312969437996492582175739948848416389824672872660469932902163218944457706854715582381272803639977858812505246230387349619461667712627017883291070140651937613189508366840257437393101799210572294849101607837251864821099144134912493597571681792753834952356384693014142016652391296485668672637134382633384016960251255691708187448067294008268095234886994009055906379608455112375450583781070136964735092216757147263689207262047308150173250640842573441810506364871948531317317739013643710763152025432298390258545947482160167173356735246617044133826778204276896766219594062753325021037767701546443527270193721261217582290942563964473548036042403434582481892439994111543757423531745942838060416488318923374302552693646369356819049039775788620762790362656100578899245276492257895937813229938296131157258761776622001648636043627757657163549250663989018862839768027108029862084613225944847505848760299491892987326799259151231096961461064874939823541514215155355805184917279938680119230651410353711780953615011987669833835074323812148884364316253263509707849790812823737383937096968140165698479881329644570698489825665947286682301298481693284978164883194259320879473764240991722468196322771997815811004079888209294809238239588961277598581029951185320356147780615832010529479892645968322233278062227783469234766946949761372070087123735093677626550940160634919033555720650965060436330069049797012016138746171626903118711831316373333967883608877260548460622870162172729889172338879558155363386483869779940154876615693549872101714355152182742334394472693948584062344453769298511022733297560563758963352227757572498105881707471861996916107398840350816892376938931903051673337841359256838511926947969458751078995727146243476637220308812587410726468975574541443774980725327907510336994900373489169551581378551056923586055716526863474784112671520830194417944645704212374178055585293196025545432042054617722446059283170670029159833927446821518854798163226898030605573144689688533754223060895411851790263244513761853429191293989605591369815084697375872649595420954160582418320550817639696183445825382985438967965802323328883053811272559353351522572193261442452156432016587057709361794630038171663842072718436756728065168142627954804518197791455216503022045244342453537613007739682321576674773622199053691598404370600424812786277250738028981890552427514916240603303005280239769036965135706457278615572676927728388243404034883016276453051886090860503486075896828705123680552485015252591766085108180608252432265218906042684436923118836726969111304729197230281180401932138134224663618097878247185931328349518111535146223897220640547495875235420529501513540344019787487468731649596896052709213095689390237227722328358563752112501422476469282550208493755615581364527170767734992162363979371675084981971753663270101195512032004638986016275943894125496817410994110976689836771352087171090880603305808958312487417762501398868618326194656962320537705438042196286525195404753027926807005456330892984927882177892496582340532154564666853767939554712234382439115357037674806524217653396701782208014718625988125781135320876839387952253915422655444433469048029295538431420171461552409032462030751479554178582072824013009921215489025879954624499783998774637948618056450282343502807009901193091484198102240432167384786610302571223756402357081186750052380863990678388224138475808439689497219657396475874785426810304258653504430390440769610034390776131346957864100963317588511006657110268518112129420116906153161279969182492628657702152804139706080091164854888919652485151364906173515421058048981893416568129233623568222914416546761349259994319501149242112147177556691077520660550176830384557509341380273492378907430871687660848646956417173003358697482461071005066846114981350269839796525360353184454024047017447586075320870847145771769953256819324625235244386980695149450551351424064635013482782584136868484891277650651344698807834199968994609898043702910656449439708877168115331451904209903308273909177030277176150390179667231629847767903567168107248425472520440888345167040909453112483927256790198833391277966081265552330741940510912880015663265602868206690639480658815135784019493543193532298639702490751773338439160650272783142768012009340810133776281992019433623804460013392477340319719864448029248344799298728690123205361770847663636009841963384996242234635961193484551239140808186162661040243634171930289674075595092159682465662623472220822724786257829967362966130612260660167250016348576044949332307109738576054292832586628736793224619196340463032832874431744767932082820580993481696079363274777179883764373878560915700657840458432451232880468040952579534420350838517711989291675819319318089090613388459246834533566420980240106302789537888099533090043014856503570333893057500536833087798841834181888890772806848699910258038810882238201693246713484548001466094292902446786221247118022930592635606737056853757093867671151035040787214431308896388567058324098632786359787859250535705414565062160037030935943798678078741716566910778880844655335389595714919650315321951210700834231271622760232855209026348493197772838759872204714662007977926047662447491840403733893618770137891200157512689584153209705935706459847526929922498136140176245134598039548128250867902105588331223580760602615436291635722910487901038494962451027571901183870321632870638130981192992291029366086210008801020665202865771828495983998080785130262724805272232859516141052541473357459223283097213043937562299428578221346896035321753539440333062244412153015064785087569352347899716323662223819036109985243030210823022341113653484822036202986015940283138945374187942742199541992402441963576650273382705893827364179519682375697074198363367987903157168117675835900539070838777087395663528979354575271723019777405379072025629914898046584579113477704731722630801461269185839624059656420756509904296757567455700656870007121589567067477006256313603607360445901300593992417250082073395922431044252480615897663006535435240331348989205402478448563117859476963307479297036030663860902781457893106619159766252849535785445922480838430753156189931675465918418633444145471742710608361469909269014004378690753429811981524606553377820656895231504118953214244718858937411127772682179151881560578043606080176914777254663148702919008697676360274584604995211395628611048891177467436426604367915202969465745234127457057347370746315611931924743193997535085758877839075621025388713248341675164317050756587858921336557543854184203844930214471328931837703464675145100106077333148454025716057531740340773402551784249049989914849902018100409729113799247502714572878600891347299720594431406523179386864152292055741371001171279915191210253970070910470353086629039753104484055711896686033127110760132289472878439164603662492788938001542576491633493610460956126907938082449548570081427014451958487443581292488462743586212924468480075121409750985393224230982471817142605212656834133040524032338433507338819983038529300405201122140108755035025298944391756654163739461906022082190178453906407972292392166227948775417514313392752687846334428097129720695474579285844616147294961381969454630153759482604363383526103894335937275192355675211214859448026628601842313788484782442055727399744982964587146959583942435542899394064377188503348771130071328023684148801540149709587462571258668821991305769569285513633986423644522852528949016538911030299653756666062079014228537779751299472489283606600011722619027755369962130083291591886061944831486531777525310075132510083405745756323393669710081385866644499498416206680814880267628754459931188563670180871847623190693940179319952318201786606814428429012955450076833879964985602600756966403818192177932942382902834043299839722385509864595737529022798765488997855870361059376268522139753554931863656470591402662297052445375442758984612986519384596984794702563554228014813121655234363479985936326654904347077733626009693804592083545598215203388932112534552721371832059326088978470539397682340627271273552559955705100894721745660925395962360891860503210379637300409183429133087925432440076374856968629568494549460389217135038006317956506860924947312023337943203161243373316759058509130621861308524620045222320975691598527961850367662118086762553577852594044480864190490882294970230107111292679291079749520110419093960364321004744609184498880593657175142786676044090605689286333100430495341236227756044507196583903601276962837704301885343382322392055486877318527147517278073191351292974179825890318675371352122701163317032690507321705363091857625393152055650449008470161215449441596300398694863991846606910782829729206705238804018281389954576472731696607379791596111298006609686587047263576021249518178513278980116352912337521245110820391276144954344554192208285659318751473741447415655242084916796104193350813593072149259798976275079323662645805599166422355627413649384632630308801962253532169273074399039005055305391278691902478367725109757378347733951075564348576253602099952687643238100894043695405280956590365770478458179257423483242823684138668331292497801810195034308325238044476309272742109643308367242688985161194875045277528039485571799790651609417982339997242777019497533958518576164235069148469805848928689869529109824929696114386212397724808854533023142993817311252994033488624221646113539567355290340648233129913689945699848620675575215196925019555084434468685755059925221648592754429195169620355082207962609897688150472061483887339408886679650573287759595238932737749516156432771801044616912744379757945378183233980917055316354896483145957783410279759798135930303870855836382647041944930427616635128279526330159193594623135959209592351647389669602649640782397387497265232688921785618242214025630961350357444623619241006413740560846359061167038010715495707504104752703487464234684548832772144802191138842288333622986406961229426837741797962564976906118452776083862800949811445356783917948193997133831851404663835938127258476584916927177339741475109396434164438037883704418179848192630438912419818571438687044002284206137064489837169955886949082096231860438604810210598254476403691502655121404294883838917534360016567270096554571205489785409421194776553469093220985642362233543813750299644597515889354987778161998306656799628771563514427657096276112130475390212460617567824080351641135595544393202472492902292449251335115516684134785728805246929159171437009541678295139306852912034506234611307117998212072971757344684729974985036134276515111016187431288817611623523618433701492205885027966514919052420536729703690267845987715633562584305775564370183581851195599975232631395123789810549524664355566731603490640837631497346539595996638812527167830825830406950146417291562388575768250847976948460303794183059828975507716493774374407386466131084493844154356791488686090218892055627535607799648203759407519139412620668391845328672261381135907296300521678624201432642057815184691384324680919877624521385709752685497622234545187577452708229641996515734293800394624594508478958398885089988626567950425546797675185969279581274949342851017267345293071582150160237137981124439511478636454973780292272510368534155561069131050600778510310297207489404339598546196983796282177159700800968587296139187209050819175080980788842537811806661165011982724409054849464492734412533536942373988962904497603452824374909050820755004650798843840733102367310946460650695155667313867603376974796178073069767083139687943507193988630478144445098166936634626719422471702634739399533281530775373652039080802053476767997103106283999279656956145512600945656813088729105711542831800013340778420898081570685671298716597617096620333206759134300483713663403884881037822370863754410430360243642003500443417469165684851243688805673332862707539688467895666867916558365166704831259671512391788017163322494961922641067827581076448529492466958686809187011114184330029337685753261732727436171129236024298057090286461247293220697780251016194031930197688805578623508006422673989371627000002893437959206790852541285610418286876594890643557340567259325758002594083488580179349615975355213771166308818949233657744265497251007682721692178225440236942235030984560722875354860890162905611968721341105389082498542825329605144677171009643473530192038579612902855780587997867079564082410299634814819977408087454369876092782191382747243534287846127221210654220973218156981165414944838644183666798464344442737624020280528005041350548794283550960438128653667688948134975079978407723104883684834285716397481952432609989192678898778755048485693053754561247572641778430103420449498434120975246587370160635910231278861672115731955481902954598253808555327363077357632913084983049593708779238793329777873903044451949666419906509766408357525506367172696475353415465786167116058536573647579561490664816082632529854809721369444806278879716833588841444253770663587176262661782865865625359122122632872869808474087097233244576350360758816372791573028643022380436564974625476349656877755558641608548091567142575120479912167292314868566071270237527033199318692413260599197676071589312907400400210001692681800747956918546542475001096685763679471096990099317358833828183240492563410116762654017836596134517058345315203784742812919247019970798352271541395612988242489672503190737025832622760202542145483816866935138034188039167013702361918818042242579333923526453416451572238065159728579375361133256804453094143331223631822180593001735215606219569510328213392072352633178948462096561431596523203370753126976529885685548337565551761247990687620708590353713120743666998155077568589088973431186816850291700328252738407898627379654099265678109700118808112457395297390635700306265485975560254767808546298892613601118366297054996957249675235438191622433867560156417430965232223460616208316437325123598886754188606215520578102606618268921918783144935885645887269819349621902116465551232414039325650608721470786829243969433666635002230983250265008756504060102547012339066816908018970891228145216607375819713272278113469988450918943657269301437396080660659194969121900479862992525675344206827034347741319468024551795393165424624134943095485008254683214194573611804234750329467255315165670061042359268855942795698389381850357552464212053691583064513339904384652806583052010270862053089043894303135112499469420847987947928416863192933386141923402906066936278538296087455425726437147605154034407619558894419955947895989030174105585948436156662207232155632414351836616818351542145259618937014621147335918317979365128923240740998036665729465546052440684938876169843989999644145837033906510115572323367173419604180936638289563188434960403498929204355310420829736883047890279237231078382528189699178261362306248791732734667911977155663815599874527052382310815734541224629474765789281231420028210771105278016108932385551588571243323898235705679957861142524811390475898058234246291749053309976809115814849140540539191841279297299601713313022645796751891986688107171197994370672310155521516213018593140059100676733505031063108624988146790228375372437535052576990517799288282515250538884142409399436394941078102654615963917673643523467896944015668558474464793092264028169993879325756309135480188804983262042260422782922994451982360943032051981335519082436827129897132243653618125821744968166009686179037467864684333022170644931047371227949174247812253759258991083043065193847170341675270186369538726096667255983211650060520230076215569896337460980495432201907120570295444469481600428797515177978440503099440345645694645991730084778213664420129567225377721450286188319229918453428143751715924574314216048750596945494532542386749980642648566832305321953094880275366182033743158212560981902835495655448449964447495123967311701254318933458882646666675635647756331001827165042417358743715333232609865763937745409370822946064053123334507078431404117926917548048368842494636165106707816806249784455521734196103880636806088160619544325253481113029816172457677244151426340610424496932382308766180320329660054472511458661700670806462226412772116114222669179469298616307745442361600579404962344683720553035402009347370765360604186013425853953331815837636116723639053243464847225737730663875371382118398382363425971228410316403389865603745230491330260650988309422181252149744493067017736791386710564530207213604535098316825514939721598258368056645527276608418144239979840825561314327967306835169335511966400112465026961467482257916880887114294807987466444454820620900243598861134475632747753304191710421978436626804986479757021283934306926905996199793951729503272962974768823135638955453297055217363560718500291361854360151709905725346471182799576685323386991322744213851459310579879526030936139536530406320949958196197598848294795919678368202535300745055188533568421274391849080146458922672009263410356202710978564415088796463839266059391988541476487037058652437232888527813820073687874393400328251037058918413068120601070667499870891314332129901256514053189151251255511817614116004901221644208080108711430477107352609499519187547494800289640627361735092693062584266073556186030301442343022376091046818867582093995549336796975080716443292816396740076452654559570272888645591682640455604602753469734809140486457779783002414387782912587729819283207098149374634348418358854947649414433426291057014188017751657958026829047456953775745329094266872249867719921389066688471368539843326363617625530199997846739587657597656039424864360426801786405750659835327396461147122959161244544825974024966949123270156127299713831163247060164086538762657780567004398615252263146158635777750733482097724071074274079875105104203407167042942037977094829145629012449472961430314770768891560512192710360476956827843026360828619013615787891025582427158890634612780343968515640625408203339778672064579389724381136497268402514231826343095959430070246062926827718639654278419988602582517358493102805734305595934494815635286697126534298664479963438307405571767181474427109017165605904408272951261575865456581400916759067775012430117109922839033523109584548389440079784479788681059713061551140754581084067689543838571961722420289278362086214188586765048370772623473883958813605818953338251632572912536238710356686185216908953564285146237080169068020048970626985615068861670180614480374553213085432654960664472671602533102270594253724373540629924444874014831734757511787942756394290872382639503542378703273563876219659708184721083632933660244499233732224425203643705542272403481938542771919916840349668061939944901381583898505499115137919992400663985157934105736690774220119365066113372774381136738918145785802666107344871478337143031749970285073575197247409610817127143933731496115778021211827953473653989432512334549781718573761521605157368869623349742316470396204282586914157437509918353213711663245968969411687553705643871932297330795955221731623558454274028307565977415555906020759191733002321346380435004344742255864506927871171973842757097705077841337170446040036120644202576282121380605755937594004401928025238673039379140091192756464434366176102116454334592430900835274626384777383777783084227491863868553370731963882712813729731229059137657183043136280625251046711883583634260041336783618049825435718598104615622952127891115602065724219251917028819535436458277839337334528066759366138588307180444533376178618827562638768178431696944172034802926616978372127715727120567731463119940372700394490915211792906121341162634706897054764393118999835500943118977365204926913598762290120547754937117782139636662185807673777930463955528765172168154411132004197039131648290117633627170170761027291586777222810863471144822766044024059289356960647155931939543896614187160166059711641295279363650207822712127394354965208202782873822618222831273361872019633971981242642656039588150557890831451607984864593876847961883168955254701952290203019115124372746576633600657405890518083165151209541460754970326523076301451493520374575836739291049277599478833858189629261076276163184139221037726341423996065833257417565108869296204172346878835907117151083755098336882561204562663368205238404149597379654104193125898542341712792636280492316801569148647979796447400150747045459086988211433641651098888631212712357052037455850328891149300240761864340320223953393094465383268544448649564555032781798318922993226848009450481472338642682097782779968049616224573454099433068673061953616800732082755616735854933279530295456453076854911953019396119109298821208141970845198811315882348188811252392251004124894338465394457811711441083036581032941669876588051229035012647171597899368156851749765864768535537589906124846902775803865714833592194774490256435671406041474064737697252615347352120216755516321054099091155584284585526859943732001127485460856009549477674499411559486209868094025995994229612343469653474151301671381208693611352657108253792694446511032461157898580053747189096054713083354336485547274406085010151184405951660291732748244982568958641689063189006376320358569621032324059693008188636075944594416839283259664175097655079732724467953659704519516577256702828978344442179167212768786691849432232347041394605912894932460994862925851369764822224432449038554706745785136795577868954075462290433123966787129679597644360552732105808897414891904113909623929452356118571998348609943250417195596489505918886826176644197743028397827582018692061494210294655162705302787378983364224102444721176488147258820644696062984707081090323983842992310314239247649406069509710331749072720157168865788668945317187421643688184915329386378362064666193954056942812631670802023598136376555899339675926688401537971817010499105071080901907332299414855230695888382857225331577606634039838704848965103287081079898654905517013782555112344701576958468656821444489517634990697463589434031725143492139085506471194824277195849803832904409906095270406096501353681693156176293903102992657280723438034913114900788889518214235799098182494459122086737519907956173152813017885756942750757748447268694306588351092563232294110509877261434928137504031647982893608744478338576083906825824795905256799854795860850751296333684389428612816853941657483735663680204938589588731443250004260213154891394274235283199556930601130792895937543274420329322548820431059003792458212698954951200962459419569028628522790728363376924684826627576360480856970907213564690299687755503473622756395960904362030195531695974648674522427896257338022574276441737452528047477158402713373593463359027856022519560405767734326911733873167090589102097004627896118671036079124929584134490022886170179494539615661596211166155554651797111586004100463405880304883383283459104546182366069224247193558976015929300758576314434263987604600113927774089403860386225274225992735236074776063584271483194845437905442125665143171592352420266552089548830929278235262034214717464997412247542876380626943758932075907351120638980777782255223411884245543549435707930521355872039954937710688276175879122720281127386745979649001700233604109149548138482154343165425016900570168125212240970210002141987896849567712434580896691287637187594465183495509638525281810663785115760244244405964715137409145875660128186497432606706995095981118692174030211174725900311345548351503533604775118046982155697968702872134188137272637729578179845133336083392059309510554711443960111268080606210674008736935098231405898598289695908081621560132161891272949200981564838380651906786675630509576295284219207847965929017680405561834109014633312514290272859242835185000472784311786180277762652375509434642414772672182663532863198235580415422968238282526628104742744190330336445665045094323228541802897433267324485274835609737506081528271492636091359975849879570886658769455571625518237952272794610437056574652209244806880819754758894493739548216214576843533339067977090410537181254720727753455116840581538955175391901333476538470259400846502750424158207895481291475161645879432078397416194144212068595839755828751715695437465463825153038501135254046319019852143961362537018633536963759647595535665738918789900678978729802698289902607945004501820287658386494146533481856271874389205944400584725147863408217960786393222616727029948397471947152736964646811607696076799658835610285166660722611301547679891309747112959617094327255543688192523841192524933421685511749847548721048154147863460024826097693478909059607282383887049069117915727722235526361523509732334002524677388216595957494640208789706111080718237870813623966833745507376072689147208747463876173448430901611177432836122506845613131415673496694017565225951104884260430135148173581103834243129390121525763375529198646560332478607867488618406111485789449409973461613265867522729174791440392640816868201537813308724502649500902680722476080908770668000513321436251982295610206707385778753400625541055675454344721102548761889887211016829465406054564178180737342257682879255099597410515798480941361074485998347374821738244492147481323253627932134481694978714130827981253569813637055187679754781591082265404470166151761907823938949765571848199954675562795500529075148012649202932677821189438142271648552705365585968538469194070138599817157368043569550287748877325722196996978821006828643743858575224017986531239458465246195837359428194027776540894379560799049372233531885644038911234559127790008986495597139743104217370035506328180604273599870311678859500538445989195328500852878866427250308943568543605836703636204301226059411527513824278888700228116608119478077528742243326994968886678148676797682072142113466074872847861032253141532100574305389285236090878741559218635357686144314324831041925807583089375065991207338452464145846105594286487061656330190415364520924013403346053266667445627387598925563812404226792526782371597055481110234778640296031482289801815188327473304466603111376892417496724303394005370734838756422613236525823213865323918526791908130154949456396190887188219241461563157509470381218982274949145625877475934152344827232550783957423259322009439379742193012063400361984860691390523408492131729697268248892151984252711965127080376072293246336152447971977974120171520073678353491786327893234041233422160263744240770634500644113109810981906766350372913793782986664966481514327905116263742686987061081543678467150473976920669462547130225190991763195700619134622184316702898001602029795490938029623845835772823866899981405472628296262610307569462030707957301218049804155255705187516450987882865256077614715102065166338561375502115532986576495100452968515421051490156999193282508952569786276046575403062346297423392409098150369538364108330503428503909660247977657528180534657594219671872454790553145496164534689434382616143271584164484715823743397159506112017884084889596672085514305459686189867927962260223032918047324611173720507734512070766954503168734793169730020349586722037776011065558459875289869786090593509081513055237281151795831201512194022473710400132609070291798571014244122778295437859209774458045247875285425212318334949959309418603269072582174443214618922577512895443620812878592223355095224470954550771504455571231949467247494413887495567351441139530728481613644758517806584314239070955913122112924492783937485228469338299831556962762974007290829712075922719723224992206824824517853941730045719059501460992277966966624290268788542249445952275119226321055873705486720851448429231834850623330457627854088401893210157391396059866694045485483958805027052728612780050433472770201319404220968681281789460176844401798087426841251770445310392984801210641028044023173394833445162630365804322227287879081490218731306879100846651310679619168212288905973900042454475460311960052963452686732369382281512608060489655097018097675351879636301911091624516065216967983537528503921756344946412691180209264421883878801817484767916425258956501485448283116958004186399324912621023190535278554266413618432877738490940261912645392327788201286170456787110676491579185375615464194455744885011500170801226017721604798490579714325424569316228421258265181594203145611006611439828699108246264532228120731224366791965042659518260345687559402762444875539906063307650567956431491312354351372497952699505508881851825285633206595336125074538054987632956094343160093341216307141319430967052390873134674871568661521404821562712931002150081574918321309999460654956700276065047840552851554124443413243164886416773262449024952209319573716342370779661814698896853409845378624121465189188382688944699886888484971541578854432715212873523537870512539563583038124060232743041785916998968361773700991051239225210928006119531530847660647185484654566750341398503748112271575715162643446757024712239679158079617760640180115689845784549930313383312606664675795659961248154298173751690687546207097038872739499801627833626237371163439884797950237326036574392371464315924792735060384972848609144332501222272919764965840157088658857938253409717539239670197221313947073270607721872516356668067092834049187298787278255303112746179720696579114602782268549963118325901802695146010251021726419672018385973274178747793625841632826742468636643623928663000498233079207625772960904494477369238360703177363444639542346644650227351310830323987473952508038126291739393696336602621019745926844935549758574835353623165352051016707252999725468013085396177177248795792645416739332849837206030287237683011281811761300781587766623034120412050416610040077960913718397145720172798549758298239860443932194333022672288243026340228815388070827504206511833877463124781094460035381818421862931855402395785222219966252812439377636902583079425157322964677428989481992346270280580052995746610982453256938020978230016733257824803705754999508370665174942906031525989115049410004443417144605614016113522830809267550370559924024450389190803043252030936289494831269469526546233579139990534655652363275340478848775218502575920298564007745711879236979595266910821566970319944006990298429788856346255493185313959661900857446866035305953601330218673303400970574357629282345357143072464671189680892066722749531172996050365105049659999820765205803227076938670659334171593380303147542632754769444260792661499731426488485411372784208891178374832180869110392021515053535717466495891456510929793894768791821719463242962511348974147868756845102024003441040333586060271077445437311940706284968213285537345344608935882679495310838360230787643010938858874832427124581829505036109929081787321481592393470834056696570955750782941266044165755099922780662621963888725314891649768254149802643930269637938518434650616614684408226324789249164931708049286947477766820162336135597059861605794974709219490892868717766221226095741561452354448080582403930495879211404257106613488528119154258960928691822886390748315956955390244415653328331173885842463009142887966122600948747553592579814386380511807404033815124058416806899639635438001716176980575895896760692868457659899194233804932058659729804579729472669934831054704991761918304953296931950167981378259598065286161400400693016634306763476775198878095725859634976403435256190411333899501614146515504220030610275768330936135399935791411213257298908719566462696675821667649283500839749095829457365425569304953391297408699762180377272292657681642015093088512505142571137879891080708340238784474415043942103757432503773478086031138383191680388142658758408583502307186323363828788574804490829570770642493737878229684237928905519938809550770506291073568076128442491888242483542544349027469411027585377194398050150564555497357810119323561126342800712304007614814863363197586892382462741587284501100626508264128007467623278167933706786419401968614078190213396914351862677570542000670440892278112459507215292627927149236452189215359815043510060980154537569761598815110426955963028273131818073354262993541697753271843078049613957487240435594888259374763985443665571199295717184047677586199174988860006308482613529974474397361841328423278447092082633991883682165541524322086728716447638573353533188172301202973053818378406577042680638137716403976590747643407971620799296913821418425201447615895469720409312534333157844784394980660194964851645220959342472230739401286255127684478746756804890652251997397089558309046843141448157580076000492390508061940915539257781755269013236577502764834639299102171682573409543944882726055095100540876337719255218897847318615192007730083463794470603650014132865876277579274272963145686699508425758958842282267515548846908659572730158886163022093778640314492321311745355453492105337105380536805488308148261685297079693692284636521565624321922499774322131781299241599335322698219113587977755730793121749582467403479196932313377120030994028785599118727568907237460244877088345267654162937704977540964733448245841169186356783076044331236969860698442390858998901268071076527602556224607179773103544637134156009621651215061754016278042054673841548346060653212410429735714270165594850257842187932486564709326449534840793165100670379410364286161570851910947284524651896096378798116473536931536925649641789880002418618730928493885006925626624736489858501298790229357856261551666032458315156914980892570080537587652998771671485849785441822901775781770930686673732075091567036132220083056576692583967865542211280708203143581375738828755991168187860786205069005435042250096570433259003571247747858550882779751994643988996873462741801898014218595508870650435253560663380380558291726661721633887052011363834932602558431239325349554101087857962225373883197400554199489322233637705787225246091926277881539844075728444095502517622704979766630541151000603496618402953044795678487246132942660216643850472047602729605869016683959661723647199256715123008838400892941579669607634731368611363042304356653725382323703985118581060648874773576624543724322709871918729991245781089971748752801343503474788745062911107612355359274913348344663418006287307963721923710742318687592840289607885011177342729730936103695084908852402068013725847821544574172857740190952834649554439968730265530347623403700675893123209977206049176490266451442321476790324633513964247180949546168711950908192627969688544337278566818025225932672537867610648006810882687630288120565062794244559944113243225104482112154179674219198054775943052546541320591044527772547459714558690910426972016354279173750904092855704324979438374379519955504778504311079924033918848267242289795012503352319788182941609404865798104361224774349600662107083362794794490181552530475564141058931265319668097516469360898521074025130716048556466354032494468152668487546328448871022926560315190860137498183872170041223692614010914416454116764725701231509641924621181743213054720859073692328591259784203898583808065132832533455003271830643108460639143850377547113447639982457213026188476730337180156566488075117695891159427807383338257613143302359893015425940071956879312510507151591181207035836146887325009063260429242174884698796751498602099393875726256434573905687986914804847848287214094552745738414353458851426816186992306835760075292028104130461804415407386728182039918958210971910842847477272501885746042618213669127388253929903991173377428026224141718158727976758072025722375218450103965453115220333168344136125811370730716196787384966450230041295183943905659641314814957082426343035907547808600667403095509273945979047503365175304777015039327242441805197792953734272628243962263660628432934040191840396215735744523576355465764532446301681637203310871594628380551334977012259262077797646881201977374337305869054788514395303380446100292440390949487772493925085271295623439102760629773805416360151230433571121996300254564863057587903137475798289462697847655280327204124853722263189186452092508243314773920832517023529429218308329264778906426729746948050733408910292966079975128566136435537478789173930950007760950289685189102642382317126860942780660061539704082550276142126248161477807412348824847307805224622910081495854467716298746138753944002727396955741936585537278946619913367001953316354415072071472170706965453897469437499301006809758594123037247057362694798668276780667298648416502818433533997421310958585517666885052477908935295283770363641478385913181077525022665371137808982842337726492479628045085234813825307409924363412443132721821300458284170403164480434669223321651246644769707454038401569871724919770242012086943448788376963537669322647652722804547970291840667897786981950829132794270513926376393539127585676292213805562914788349799626701177464512401262814567757518729762154584780935514624894079578560679725520745058269222122094019354841335915486451943921445032168269690273742916271667350414443510174618817827457252852365192569647085391599313775010876004511124560657365234450140406826194344587465987303812261626320043817673812302624021170760891888365293533000663759144140508983920042406969936489396345916975789314073227926244214274168546219922371139833346808606273272577014773702968710864342479368544246016200764012275466380830529112233521949062524269638966405907674054848375193143177698465792273977722740933075807778003172022573597543322859232621322974805982212823605983004394730401657359698286474101195507730081613480077328466170933574045350910278674935583710554309712696732927115961378486224801836215731641455511656588230164534395797828175252533270405044730317972604004220667932568843857682386290647249480420808972164856795551030459458763277711522042363788628717673002250864072254739766783376080908375831283639726853019458592638709389879625815249489948451858935991026875187366014126083235597949423064974008821102428165647237066428091163940886861894344618496029143518593667010534483842187238442411271319924515116482049999884596041661444548154105723603473510334809544844986486737818136122684955547237693055880829568921687577392911770457350810363791851535966516145600735949366795727899851084724476610324307642059186332764583472875212514997668679224689812734624428326648073086689504372010261949214214938634518966755533140801702122520398883946755149544754238855222210624695295772188354627152377559838511001440544165138230712167533615223601720237562344195545467197137039684846041731815768944887194849194647056665423372289983703798862816284660711687405399322738775900015473827018603682479942331268488308899198126324755110658107898045724202009733353640531860276946040644418941634907228897252166775444931578974677826896815092300732454255627444866914001049257346757377343182534144077411140846530110098741972896474121909052216471555572293311166058578859611042022697968321142787346712939833314196649134185658471176102044198086767204282359670928099930632082429679735229463964959343235534043641018869208939976557514604172551739328421068037061185830105330656451045501313844821392715484948483788443144894387117195661709769376948816539088908317450292837661277659020050349959802291314059009860871696517314709905531825242569383329960466519441507431980477101390745168279288449641164275543758380383623666864006800212746479602789265683188807804853104689717940511447222709345237683953939923306252352856961474126955426275209047432985389614052738455527979283878714830853483135650497003972939170964528158311607436112534901651761002188921507649915714255763589508887845903695236613053349862113977943115144891102974086716499018986988558918768746048836089750415993846397099437185722130699875212383098705060837671257933704833096262489984772199879102578633743026586537222405391215699380291279364104666836307939004511753462119003448092343398454436424679629608265879396124093030060082299859023416460294157739879795295878867073502834711147584615367637594108645647929914654095382385363537198201232289095423731470998751289677368446224539241121097359947782170090821274024531793244858623470664172159709899921623406502510606219686937773266659459234649916376306496540892882880871010005755573548083847846568390274320820307518303595324710489183667354138018238722479293190158902924841204565688668605549545239012447820968446648145654097186753060588549440595276236276013975324708732396765004742742258262871344389686355121403785608404501860302770771164933238400412605508187049983013650193043448767486424734946867762711680025365758019349137384783305582146984595735770685781044793048532906001767062460215588595039230495585274529387865641941481289231908234328534824591253591268087260113834638672037545425186450429130262990408954392473105116402172507455973249713908676802563246145381828123859125268033593886549208024255286420412178334911349927622350979523663718910429375204389090576142201092909995606133443665419841421089540144808903891448471541375832611194168441814294367047996330154055536755845107876732802862732167697672936801727328909317040024434735411900037569295413207713230942283255096247639964852021224765062749737248727454226181246095719337265474761721979412774623783528837240798212226882206887960066676312922465635536544036569699480240012402674864257254200492024506543247817440240439557182556075219910588796994980746092890389465890633751334838829764924815001413697808927384250057972513167083264426622799984910482077843016579364741112804821596716875035941592638666871086514562338558008693616049800352549175473297214985969227025490323012933803532884564094376026293509785170803669215211123438711706105098688516799767932678694539171847537963054605897975151475332194321535247490927815489667800911889608198733429550130858839896101237029398270286526395009912440738068683827468911068859709131805032890186121720722696289978225628727113032213769259513433862783041419788743167370907871202140740233137439254667112830780701981570056782381704424104331884235471721979783563845668928366788724607362167744287177332268419949448306381562674726953983646403811115498306716714003794936663845609630995776990513450555053070065537269791063832505953918973336190002239494701302265699455688258341864009262425138599829113295683607985521300037089289814587122664612069188566762283895573653061373092124105045599291661201865780706718650130448918170512723405834848093588174047301408541228845608200360413724498170010457605682808773021382798349044156932392117663231007846190212607727604402478774366709302208069825594273309543551664240945521220659715412899870125420921844302533781307332369114868726785640939806603179108025979221526308124374677007714880526392065339512968965957234620357307775815762397676220308947784676708252835755989398826157217756937917850813419316648487660237496956654120286823105732547389847261721883489119406793923358231361401193281622670663470999180502853000554222551015067529712257241805451268032865395204668424118730237812642059721134077777261136598639713117430957894634662694142980492355898451523873396246403858599878092496354127728900563311280166308816528216105934594687228501689739906848504746217163194540766578487215701516221057831880751520313965885844768514899252181082580779179878007832388585607594554223256618032488778696088287812138647816920588271710308823739697969858002917218159023293097667130543144174556759848757873725470337604730341895709614733650229153116680975509911010771200362034541424669308698891840345868951661844495419298110934772530208205493109317295575717844180189311824883203974932408332262517700175573495800775878606175116271950052562586163894423040763293807298630819014121435202886023183150851890918081538874978732791151715967652236161499572389346559889089500015591242205307778662821437240382951112089805264215655410901586427872073608970294578279349167996661186919688862764971972360075026583360602119912791984538100304150804229552880368891164653488269154942985618594643947908596708160140690777487199788917730901818840425682996314866930932176851763353856593394364592917578482951923239655368666622539319395367457061848789481211368994611684513264915017617352170230108824557445945208579614205017367710676895526743891531253350024908533126351705189126980327679391504618415725990051714743250061216739390034798459350248126092779400017736834307958361809127808616712757358344131756256952861131351957299006612880475059381602863775348091852818049195797729962303733476747376733684357030050170062929989400160523865843134428595495045330331750024854265447439384247596291686146338538814244065280021963589776976198540051782731372694157494442453107845548355732580017590131203869829564191817416967320039963092163349163146983714834022624445899250109588149922627164496558295261742177887220837864021443953801363470156238150034139735024677824888429081108278145159267558190182660182180375826986531120922824702698283202513017793915856251386815244045614288980608583764663044896182504055999660323201714565535759935413737777801912066304924228573914752917179856839413000000586957417562290213596538151227140155019599852795494751194792206526125377636740596204614227075328510336979276977202791731801586091961948428259051930279555070630892590903196173275851584110930290886873501501296213413784953135567514070390066729290347625792564622428711476367110914909537198999502232837274158544370278836621090354274637363485187334065273935261497675605096455659137576825799809558508615478725227759792702281702884850779184145757907398480603296138018190519722521153004275149827862176553500347943137589728876225514343445140082888524691102623089411840936011295998420056528469421686247272069144617476981008236469449228723804623844726017469015151206681654554985455490528424074979120920620695776212510133742922877745946495052925819404071561255845472334878742802531094093810528750195217844295600789248791270479578992373795239095558569911699929533589337001473446661934312197886150032602633360607030846118674950676881219995690255686027765265774668289228278912101942190849027009085609056069743269188901310816731396119456940654795651625108250191970075903698306442232179865939818480320964714993209793263807328831640296874065380532589312278768495677839826269619475925002512647931759442793960947371473880181776342704984215825647967190877356661741059197107253860437866914844472491022858127347299318774844829858389435094264116986054708273696945001287518805750566339232438755206880731135808038334970187467666161338064286159821582847366140322400791765207224100188947354619937037351997711124500205343361087495836378011399026855879531651816807625396207233488819805978957766485883119074564155607831078703761141572586020458182558303494153210333862702388838388636150451258619369341434586076437282150475718220330053801145089209675364659932051627602780155560014475290269324645769391561490543741581981097027589917963965925491275998621397476406460383560826422691591302441642092898326857809357794632596670594471977461585408231438614542797241637106237026526973214734942605400734517357265286257087744947083664471653591127381119430170071448525298497661127861340328036078281692143515222942089888881237171427488112788692156539766998163016849258062001821474039029192065828279329424393297571925424532568416953969998248859054352573052720935974700989556114977767618138771217295447797150653861408033691556592090853344847418140903085014274877444861607795901108270186505831668724930992161455524813715438375708976746591986645053116531714613024527382796129877995250007628309584843096455501746721741469658992367461653439194124487442949343901060937106884051953038121942540190649258682473494577558236563933516509453885434438429705141437189259850756086928177770328552042622032573006137818467366077497921513790900691109056530373673905241789342268306249008002852325696349914091092784674049638934412384004775681181961367079207470832135268607352983791634082195855983771539027263942498542834902980862111235033334435383190184382380984853671686441223594575423233237190643131735676784390680750987430031157051790362645832220269791054687513739255203518417777910730512722035956285866683045620264517746538316514000306869704630039829563744694671225459716607636359382269183620524707841990182454607346968732711254949845453455847198348288781620663866918352170751061120114669299030094256295207408572657997954889057688276128362242289217530650526577466161622418014929028816521810736412898243163513801807358084799573837160322423989351432836510894624983506048230314521151820588838093958457611872836853414274233376753778651526577082258776601617579259329645545098109661515701491178852401775253925339328480611303189152176077041606979657232619619834422112355272909162916146834779348413503463357393151417616559292157390197990610158776499586064685027459219390924029541981512998902045341004107411903295383881067194741082111574888055383313277596999344176591247736863788341770929432555081414581268052963644668711878880350623028683211323347109839913542049341019066058623276789383433083012154887010564743097639164337101451999680724955601947427710580319153171866235311660090847953123404407011513449940382324250364895548680930660715698796266737837184117757531283944783060645910631760780461717936346661303494115419256840084514680646104034505248360023750434874678501899310134920259653071571143140612703562870494816924883214623722914628937463016187200823646646702841517277161419200577722440446445783202417122254707847170845916312048378716713382005340955311170860849033594544500843305790282464400072823533022447879828592859226190025727426862643366568004381941249555440190731843506028435779903157735529644256748080997314824750700353595367997776943042121571360693037311696332199570053835448368167664202473507418626353142984781378529010645673517628892614389040531902883990419421998423368042096374320068093107645303328053897856458510538820924257800419730448159851562317297004267984347495547799796027977046349870554302444106247127436484031106714940371699911363192111988666116819186169823072092229651357048080761108788856686011935064045574158226532442630023730877098523286479269638559012273441569035388179065243440368097122956227503301021757093816687066532885130601932499665560415298011690060353580835251977873400137231508224473166325584441504509323342679716996649325234921768348774425399121447381031918265498134234065956420804806988839062250814284764349359733774991235281134556597622532375786908535105745976226001030581728007478952031266327991342988060925988023454785669915111007596628752469730971519501799455019653855175833764573511977822024215416513075800377389759833548028359983225093003084141480214319350899978266786429994694644487360950342570165991841542209036178064169575945489019473744029720113735121576667202745418103807579881732948876932384317262801893909878081834147054732423671677382273725532661544989545289255382404029124147738716427958924716092737626257890550205297040945006425131713200404196711849448457954367876474930574144746484725956007738317509986923537651265294768406074506231662771444434030156204820397135737560421877607311302125847950479741782898247085491389684396060946098971814290880425417584287876902785927033994398363383183745577229446694660402013618325562307096438648214091508724921549625702352895787408863167806653497280013111977365697414119434776559179732403047048097947599149014363228658835143203669580238866672230093890021423670080121312674585769497039424172640504321419469962645170699143003624635355444577963135856086833824448004650886733136660309973383210287380073946511836624462445643116076279477849725622454294237805208879490400498761790802181367964355401394965641388260969008619177759488829199009627440592821027718120086583228340995543154295674279637411674738117420496945766995463930431332024132731153878722994101329579029931581979459917622323235985109612961467416222892292927459446762326415405642620787102650613488064434244299717130211356367336286010109682438233307063504784111666512645333808059230316233786566439762890052227052841339068134764654800138819438853042094099612173414138889045167415113489661072379927658361744192333327650007897123155694410657831705505958258459113731157831294617423364574387760251303013010706372148535886546798367241263740807692131591250773979843969771428806092724931334112460292899053175003230693517436799628561615162727087920925402826963841359655245431709325129947358742894847510110197103891019833647313021092506412186527145875068679607624872214831257745427605117673320028713627785778672550981813069244380361680681137356046796806996991549152242352267463740476842517916360162979273719591687663893858959174141380210363374157778813592828265879266311622002432288304334749608257926429348242646571296369390523244608440455714272093074810201687481752099672848363942585375730646867281608215388749433379929301714925255728592813066079942595067488425273499645863465998147779508799271524919831338855236726235522899977814393414460285440577904093233371810181218518269775317045842275176852171376495705899506476307310958475066439013896464717788922177516423452914039443938447324605814678772519340602439369287210322085989723817598597672248653728711462070848957431093633298130050794553828076873231751532794306790314573460311611765135945762350572946548595000232480287135220125563752031934700150897579817748232609663753761454762262158107371759359760755695703593632772069702570506478843353120969671328316645956091425446502494613104474743005575925702074361032015159956799815865926478372110723069066392470852747533442828141212426636295414065290033983350996396639011902775628103278570666322087885410608448984165048950926724289954822286007046537996792164632502874297811083390791797964353476444872124528241517239047535464558745789375428710508903167338514216542939607600158784968147487065849472573877473143580694994733812313790603502130058186282319941244192872876279184202757419425622280355647533114950684667497376157109866586028174721498308834213803609527436664654543908278821927770992883415457155332776577279349176098325417788248110477194374747876948689774578741960886920108559362941570391467984176886469247280782168255149523146878046255331192396214233926125848278052913578940779686307703841790022635994481309258446926326681747771397695958777551153948049462506283358423229903983326467292556204696546575465384850219184332066976311340888402174525372521148182114023550532000251431719880500663963975626908981675325023311781717548626176870280508183703358837739241472697473477327790226626306582698204253742494870799004718758105010289747665258817226429659957965714212303498259324133365770997042825228035957531229130719943016864658818636545006470132666300522244991418373583379884808803751478327481886729044980090851157561155380579149308796628354354754929323075279971434241066729169008415893805432571036863095789664308403235856012461749824701689451130874853013020430258958825899065252916352943927577687328679573418991184287385992782323480904551733992594336007693897174594711919873147399359370176736820821700950266050762275790584405168739399741800440988036031776748442020943727086419554134142422090093327639325202942145708357133005892659114350400664344835341581887899662539300434442503381519441411552767996711192570539550503357791622801523928127816980287919097706320241137588738375740543434784112222989042508039836051547392137839903270123031545440092967641913349352755486384298175309397732775920469563320044551238943673529932339494386592738185834005872160003440144893980524702074775592221284283052569369773789396292822528239950037220674929676359618864439023063009348683090266436276692868952400161642797099598424580508923429717345070334334655315124278214864489010133590104781216539446901962764170304315731474316611486816940348353504265206949750804515397971535682102217524013798791525535806278259260410953272102552905352867308961723663288325630813499529157502704796307767421551445729938680295438250954101537777027960350720653992569145153838553205572052070862025907077385057516980450581817223736366167579652365755285498260299946943057299992246223517073115274461591125007161020445993507276841107685159316008858428427781248468134870014039198503166760053310015071785482887052207070420626384839596512700235102235735818081847306452365835095571769549684811165432697726309969709671051863607720912173134039589606073670422738598870785054660092327474603443181920455342220851826296964069871017987824357417388338696122532196971085779323557652284480390937467008168951691584576184831731894192451279753079779554819878400746776816342905596412091192432248410231909895816658753996765601664722209929801571364085770674567694276616825500018023694970109281666692491293706073758997869725667942957416200462145200297773969715933352105963733829035524481321581583247302638690961617741443475115855352785356089910906806631835186711172894331879727587372664594142617431463638742743107282537351319271818737569795241019395101998869015178194614086244046936242094587078830746809616452666288276552260203495892249937458998320226634539571711146943069126702870098792369356584751727546642112945446888662829227180312151347331898740531113312080501012984651351252006693881324591924792536400622197984306481833163895190227241421716310429604245704935661431858175798769807861528322473507080761756001971301124922324118728642693194706789981852838304402025600261080425667675298737798513962625719538009856463194322135513083569570026680948590011836468624851381056133089094306841927830891615654253875518283200879514145256993459845972075030611188643816184125260482103017893911994027032321096827612843518680033323684148563246163768737450396789472039009416728047922437005467740692674364427544826232003530485727873362556407746732731967887624548954399470726416967421061408444643916141868352298012365068687423840581623025541586055981131217079418497766399152961505724622743042003531944453423589696924517766544762567486908391516052394137575132092953693365114420436757742308424098000403551499047644477460430657810385659343753326927331994702507476457046297124073222786266583727359316567497331903194371007351658141714573945626335519253878746006366064106114238768079438563693128526228464087179015939151273648667289462049581611896837711138598498050651236813395110993758777534245162928031734885408603067309310482671038767320479825404732921019217625560020297386059970347406046177549690445487738174850064223068604981731595703314229170331949077750405461180432313033033974513317121284980893660076530477433076603616924713634135380265320510990826114400068069054629583978975921229407575790976048482412383800380622064715336514836768561245248636710754147202800301851179142822491620919722645134502803242913015465960832433655236894533157074456726256779594605230786132594460817083941841703641835786233547079999251717719074271011856585042644088583125250042395893657292012723675978452108799638159994992848409136528170027476352126417354883774114378885248813387376605609955941585642188563848834826806474892840701362808960541078530710632380423809841999235104935814312191151912332191725285501943974296952071916473390971361915147566992164995864248844583263304224839714298349193812147548437433267993091710912772396098872545430622606988736767745193293102480622120753435263403372948262147567632320067197382505844556351489932789094293343861853699398963380329369727202777845413525381809512464325549766748925672214750606644479207267045370443244017910659322179462806818813488220730312627022955037328652093399379350782619557059839748768092134373329718874690023055562024678374423390494344428022126388861274814233416963652960906368090303311853229118555757161666863064054455386709818506743643591683945803762615873552370239234295548257217636569704544866239848143469464297375507862493149796753257053616885425114564021789268481780622548162379190279166376164188935246362513069572279917155977374846986786664720143622455112867518761824492311303302539755456688247144159923388160729991222717125533562172449711732829196780339738564747577545852323686248985871211672296600148704763634215432841504841154687210220910298107118505687389205316247410878986697149788338914551604047932552899278908682968272075282673695326568029283027013503014222564319641369062823361299861614650420303899794923825403620511058401253303169725031857014108634417852063815653127842106663180983757462447395858374448740491626327427793581657406778165128320202934548662792120165508595250438229168491373787296586518433007267752817226748718990497975809015215827688541261606576236612458312281375219081627291002127194136841683390435740300910760815580950701095009230713797471858934479048936696954373945052068147739181736587901195215335154977242452677192574742275418984228176706316042700581714973609503456871917410531270256724020407089297869262105116757052245971369701632906109198409477915531158813218454188349100206611976722068501609058868206776250471803748588553308280467622345934170478008237810310948233875544045187410498709305145263286239238635032451375672292169782384984252378200042781670271610152554087803286634932434055377212484464124602309927613606248941311074504794892766789074327654169291761548926602496491492166635698587776419491810927099734308630130390080611807711916521317168249457586872571180564266273438940175572542867998320303294284338709187902445560960376392362493574320632742999745839076250974715641508922282023002758738768941699846161137663511789706703464762914530088274379904330768538409800325324199940002442502944992852684843321259783322497134169785077313141978800673264174548291585984932454120687034047822475848711445461494564604053549331070118866282525247685056082798884540852187897064169434662624207243198756284179176599313669695008068038289014223636124251351310010449451118265865712907447638056336531503226672446550545274911240321118427506026516372527477216262701056187722410799286027066953289709972448276738543988375467447042275726963093099384878541414461229184493584800807567772234207044014174905572103318725631499226144870715050159824388763020072129039181790064973554890193950420119624680435918533312200282572612690513919241184410036382232853937931158775708588504077265948077002457508894119578562040219442371892035920959768669358490408288608518899445849709361332209091764267124389595647665928810936134574419502829888867069043399709298373022459090226230174962984165822769972368203878165220696117735342005671243608030222389683527297509433015740090869560862931871516478181812702329651451005981867712819551044482410837870801427093124278124780100036675932499726139316147862923414613823391052904341342828978881761920508544853964769030729324828433891077635176156532363359374503927388060544048133580193088574181263116891460789020607500140273874982561292472346690480187350767781425935880781683282006091709964980250816127515029116474080450061983934140842565387716302690633772281710944334273283851863833908778569333717458086258978476421337831301100262425955498913164020979116236450971437952964390019655965047643176289649516848629120617086141106723529339107093406520043249949045947534737316767833695640997411622684125248693624258649724809695955985270489122026422395661524629580229418672218333793804172788837464179682592826148625263387953936788778048332837178011804139522396189470926081346124153682032727680239581262443039676273558887036735741971665860024695227910785583805077293300374134736036749081611030042764149359180077180359555361657514117984721204476936246094399880158797849104692582558741379802858856399081287992328506518712831999264513711400188587159512548744900798248684513252629200022929425984480557536908569161189090794964188272156695483734320230147545369043721652084176641501493980186960560600074526459470570172422214949045487556491352585239390570796839344761089226147740470943403415081677235015226133586594583749081337217756523751592173871987724793929445855421710326027979909488800666261171439794361606423986861111156430368331375160481605251100405777415229949655474582736066628920600608111554297231481165517294940440741745601160769429763815915444204593511930235258592150999450269527330101603196624638811860876874158785023629235388075153499438500085907541151959672431679784719189813362631985606508874240449125896711451136449164847156474090523453319048051297728680032344038410257738053163806029195358319363536863822874333005223422790982148862443651929554473744001101947217658586130266252831648612196576616252810363713288349080749383332397497148944768676673676116760659394727366583503741849160114926163646416089561249590151312992989983338960716072318253881525272274052280544968221551096612932219365339327190301528376831211393950292042644136123248552430899338719736782413492726688833104959866172551808482088603147742771216440159883277234818930082053419718718008654468950635675106835388794915143382882063977920405172474474190724601999262028141025884555269193457919558848428044669214449238147265287198788543176023195525580804610062048854164821103268524761893531118525591844449264207323290489136967792264031615387144550393274605751617429775079440503916950768016654405426077060940039013773994693708514131363587302443731215323889975132108958117464388268248931582839097418416046709010530180692926061136570800447276939229306843903299421592349288852455404742336715502945409288043147402855083677393605817983610327079247884271517244074106486436881424459827765203948613002232139255118187435037535000083967495117893228718597833257635359649638830897113916003564188965436539423501129854161448330807086287049856864047373833327808933267432198171301223078687395025836495899597935311514352534179849110312758393824364540278435490985215317618628813147819410688998441361357770331312586495286797763150723766227241439238506282251619632844725373675393785186649175944799238658181236843495422392032599656207344094172311139630454059609779561843611301281462294027820596811716320251579203039283563438272086997935081327269813938602977499016306118534200161296768781281660421245164734555091491645025575959373854207888135281023696570531348647698925107264916246392976060416808139622988396619466741460634606973570385933547522986764213473653883956442138015445529440229979585357763952225775439471453842231902894324295846144257757404375185895634815069568907409252930506855496414799001467253846314920594265525671607371180549075012548689050857787383994230970526918070797077639087916390676506086082022018142913552975575419638868066116943185832273754409083411612735640202993084708745872323048086572750337908271654303430270186005141945937313530015622735043865718647348605265749748267109140492522323027155368881188021425179670697340707504131975369535342191265514490560562887372932765168475967253219876177852044245301293501389540204185575946846175450632534418483454360707260524148811846855567428985340015672010164378927534097126693754062130394142074839919544139605378500869060193431588670714210061526564364528536717431758612814004638907939578836433138951056685518367491684602020439471871172326792981971753648602114484867703505591582816993508062432806077776794166101141237938855211780392045563775980792862548720816785855834409560865175519424265143254904407829457340015624086370904302811581471436661698056400183112589714792225243424041284844990103053233578313341283785772479772899096734812884755486579440074742915876114991951509089877674112966018830795769434037773489744526442648282032645749521750381799222953944802237624985201477922953066955335606634836285889960520678482834420769216447528311154808768341920795587736568303552185546950265597453244340450935841920930378792678172118942834934932029804535363571345980830417190352901827252317616216062873779513331606685094268456207095834230804607338742810952719680981810209126924920030478625003868008577530179591661992835879195103079715759626476060846149347736769751519871315577724222131177077267417135840146686763249988708203280716422304473879798141278881931657922667930619027542282245608895651070355545262322214142949834082239969838408627474457132012148691891532006381816509678802469313587595423344211213376516248277301581861478187305764350499366554665210629050628615075032287979038107346279924226014988910311306097064140940872799573762225095976893364029257170800554943978274468578258815712878085277811148191828837927855366338414783076481724441064301204765527762753412957396926657016687560898985620768864874713247664317380912455048921766180211275893146799676343420397188600616639620881778190665463213837463451082375109740121676766667064496069152970651892268394135081468877716713350499990111986987218541162294874930038649220554344980135404577376593086979793940561008685003936589413183496837477438728323832005400776092621093590240159503775511979029464815026571476988469255313295966045226460056094767141510509740514386258878000573210027396229620541007773326642977945404195045606698366925350880713265776690349351948636981028909060049769412139120844470290926971459848044740043320392950834819878801067640989788595769329094040220084230196977544293663474831890752770523905880217612067521450172207157275950844492388933020948495540010064597589898934279434950382343222365809620311521318411068253511527966355558440755901599002250421805983862554652690392360502948380154868790474798074177730335890541630085787007475498489986428436853405417867494624123457710981941368674735276341473139828133344238987129685547822101990070166196173403872885213005343750204184902285260663976789539763731787124972961771999501327262088165941528815639792142513511928416228139032120416935534775805371475997774678311781073568711093769203386342813478768369481644884252620387460008128574769452580235548160011007566136644640489278386775430204532525849838672000035973917289355200076639481480492324081281004465710241299245959359000238619158776328669561290660477432222568845069680538050139782171516135203143215335304023204940551836622898756536374081423186126484370841617895699607119878819954575838306666917837600024291448256174406844088383241981365748386717720998064919451603726544207380574509230589605805923416806419325291662012147642137642894202407859261951738981371713261709361252895354591102031412604794089137373073000906722435767370641571361322011542327710502264402838652523863884668195408154705497575442675218380729061558441118114818985034618279172053850594747619632279622130466011544549856691294839767242596815844179647065931318102772528218667793437297256018676153384836217127771298390013006277119260683780072038760198557516532711173638040272661224502283247339368721306487331562126586047915289931267778080086231010239228263834364526108336775676918814073937881736585732332019651008371314773890111903952038940816624926986173509166909642373477343968940081148675272697167181092203394326056734482629623745884772587788982931459788425910415540097634911804050867203818315775155500930357623354342377329816896292150825611624935656388817558083208526698550975376164888993631358737288968430917244724791718276835818682622335813359567636867084378900670165201072924859268311196525434453501967320537069606118621240533073219902201647670128174751438118627455164431505872612608086360132362365813081893330252537802864970728787273399204856048665049678358405954246289163808849662157642799865563608719889764667739880232872644065895587049491081858115078772288362511611772577311803268999808648113220456597925036560811489282142209618925666331568627941908728875854165364687130411359777981791304597971735531094668226010590258841285646744891615433530979995008857963836835022378930489616645145309835607249947487606222604097362086748371056729371535065856302522350688293479821868510026179811560476655528521954013999385807630146943153614399234106649736754530391782464611776568689676371403057110963765992873821523546658160074043044423054426820223659256747233931878516067275492345332566102919871068441909184746420196390125076042503648431882897898436519444671091062942102116670724768115521605498472587875176939155319184435937156181630495052156321797268048326836215444808525925234874309976888147972014531449337422831162065792419764127664063590120187822866767189004051991564964104387262130201829704359974833365477240015664130249661658732083361199174767510659336024900080628875939433886845156487172391729799643508102423208588931618304145912582115810781471691613885219240439962250594516390981130079285161361594551549504707639822123672635548681010423344169648608949583084427231996846759825818611887458165639094066127414774278854989390517984523360229849427633741094396202677147132198160356858745617426789139130207919768289311878592646186252268482626157819377296627014630300885676908916187608684568060477319267900734173061972187941898626984246413730608623479047149399342739262370675458336226818431884704362716685649339375038691108634657058422558763050917683093101512500563414414350786468493172063852153992251386802964631732409093058113365229235098183554683059183934737129433273074197548117857471612795899147416497050247988571444673594145990039798074272443125551593037087124999051371091172001221471593741246139857000971515579249290578495656422080972518238691331898301348603431138551958833990890693274247771159959883541361433299333285081011049517803840493983432570006886977566580979110242737921396018727992738080367480107486579833844427115233120335713106586470460434984731013175278482878366230141981377023377484508864290421520134498348140826620261769384512423036745932829235409887035480654260168608159161921874081509389229414764709120127959581276104847295569881503530891874884903289875551023087264868729821989677087512346581079268496258784202248031230110018223130490639808497160916598526343524396197999420014673555696538972569117621378547291997798375742368927631029641803715541313719516422966021286462819210874286013738813535971058833670571422498580611222556922117941201045309443348450441329420860047851104629133053725288887354914828863918381057254700987446748876326731268609894049238637046583263951551528563820557398400204309738633933335590583197095140737398087481645864348115058375092412261042798982328797711744398149577700993023199747121217085223178051275284415055024522705385312420091684659734888939531907196023127295981402429603328817024254666135571453911374772839577440859356528081655966989355028340538901006899085391276343289615631675879700593612448618840767432452510472918336062503374850067770850734535085354988713231429433492062076743289768089064335915224096188255883754055253593444846316422539574951125855993974787281532805961142084402972852912827241478010999105013924502166974415501266069698443830108198158400525205943460844609204345686202155629810119414076940347661868889699811944302596744412386828392206010583504740331992159121323276005316266448946117712725219832566794123217571398710148825010062853032762373400581821568143277423645430854200912747440473034690763175032358055175899628219110555344680280231195161543069440961934641116373376594005268545047133315745635172555291304748731752245771255346133852095027327669777176851775442538273399989353341763678158273797540538556019744161393260567037376854498249272194471899618432648882836613463827258644598242029570916662922900907738375962508286494849340059492671656101707802352693248443395829453034252192699608134333632709578599037109202348294173549525961574178909761383587106285480633896524612980528048594619638516723038279832869514860485593367922618334819033197254642452679785857735742027071101735960554355412084486808093790648846432558879937458724957646610754340820138365521604308901633277262766959137698141477656074690784929618556380479327742617893981104764243164102752760008619190815828646798021399934129951762847193393251886408657822784160219444081133286791559804015308842014591296514683810519748255452340348164513728541172174328310350382385058808892799096028394125464003907057514098552592044222786924292971910644278990717747266949179441851766069686214380638115486011518207080705693596659289122495185302722429687943737529068020155732131166278681883631702895710189027743425885246583091254477787365953525371661696144321345962277127116834833782757442601176720284826086582363283874205292109214735988733261235771240016776512113080955901321102577394546194748093399949370312667413444219759605811056003363896066358834265326733034974750344034625090276812721648841977063712167835432580728219182598304587935937060855000176726944186991924390459733365491723162143546610677639983446182313148181033356348402159743547687357956041702328630008821426553686735957617552478004731355348139562268458836015612406387430177186879866179665224323604480831160649641909749739878628642943372316806059055576605199855563048999207444335414008995948879143327720112383191213749466534586253690812676202669012607771520727652759340230840040506352868269556828735163107675402958626491652514158155458789830579657775438399947442141307678506794838987171599493641661419181511987705217188002358474568996619271562714217149311023235597301789891713217295266884035257390146320998269653273470032941643373323715704313397379456303741738151504719357334073262578018717564373334888778604068297561222052644505359437550559151619363283101256781073264409157213879564477941630382661976965436548263158338211016647472785559777055595495605595143292976091041279652237227264093254506809328396883288574811682943324224265354326740020257719366836762470767382401328770492076383794681650028103067039671664788110353039619886349385674876216678984501365272889431372551390324608835040295240308991252700141746874931061086660679687398336581007037426855497088837393150253408201243041690602135326005828583555001372235912526793797205444223569257487575731718752765433015316747976625870480283016491694599045439521363013508629689030979601832139030188822514916546896686710701942241879127490448946719684807464578845302045408421314876446069526830604222122446542587696694926662500238412243531604480582160443348827848961662542754673126009411324280487853678448442903348294400017049793379038515089690880954748664852075769387959468222263784061323281319361154717703755444108805457505308071454182037308535851204427542587629357881490703689939314032988347724082486897455979065516791362191288024483407446744798251831038064187006911841354035816097370115286784017688184388811986677353860700652555148773338195936383661156455495904288581707372494900500305843686892272711788476618989493157860095285770603129535301054524939865743634516847699521604265194618107796484569307937692618155421978953672286338537812973742815335829107960830710804810339538557550128913922703053564473931611062365999882799531296901217642012019955553385008246461727629468517366515495148318878145353985058260392664711693199648393005091731367835016593057288044839885038020864773778535988934318343297836197418919821387672217441794292665801492477097261838274491659809320360704134939174620742686200907881691688555577017899761320117547230112952211427717216587964677275949844582646084886115148745563188154810101152431205486804126785729592164681392549926419172976386973895535845325614277369144827774119279280469664893449982971882379301624136263267664661942570260132273394443516160438267415395688472879991515454138351954338792231856225301630405192510222013554277947365993070269124095830885988814941170063011601284287046536582372627069828973032465159028938507715434237595159598149538723394000208385238666372008411254263451277857378889841648203712084580743480638489988394236394652257536798466494534740485625646031963786329632394299767205657930113775513574080175947301307626326914378118114990398717233093187310137238039275202344248279684341844914570571880133998725288279769148339096526638040619956622879887602162564517608495696705738220361657389837041961836416500752730132709892972988544582197931391688624215581499561777310849933932839506513195546473360650882808171547667886294066972097721294503407804247303156753836640512852400085046751932737014950235409033009095239927933633016067443247078934429129218599516986765587773453884924549056922861971082931290035530662012974920020078698802363353894871112181839080914605529436879585987461447392943265081111726856471675002265792264591113663080628550148603727370851386638754697876194590619724001170702802993497326522809788076401275472642182658366079931884585401365437767595657464858258430942944725318198747573793586936153642939050463145559661478660533624964344577045225317519457416305789918382772205635767616882225158908802352527854930199747761043063815191251967228698632848147851081398102662232732177062928581201830975865106989261345093516659109726419948357414454508294729636016744483538700659045041839499305442996391488309693844686752571003186692207975350961711460189908091949429551182940448844438871229752936000248649241597755042157739047015838767456665859592357967318744180815671070233350034057099801934094670898714272865683846954662203248258255153624953428242798256116660218890082532523337112642568756922282046154644254050919438593889097644081025769699828611823099515878346808181945034860399609645500894806134610334316225416016643407862872635882725887686791765845252005319000945611552813954889359697693715821039421560555749791843937798553730153289097105787495319983736375914756749574974654109717926151364068257095426889136430854089867511965194779658947444040863377867767777911946152091136945958780330341428081217180000508595491210225157744603954539880082082260280406376931423888944969599438955719494985767521160339131896097668157546073415121634147952260847978635552444467987360758170868169189115881389203520800648305203106540177626802377323651226047374046414936053578732833088625016108384099188266608501835583506465095760537214074128225831618377296866221811337487254559825562559591864465567179116755670931535657420380770552394764489374469382092986444913309550621393503774463735126872332608159409425407200167646880508165471669971417279842603062253703285841554690035716368846222528367303611759029171283832330708768177728573257611055128433554259018046292446121222996576811204645632389729031086913323281456536318880986431151422061604501340505191663571662454163975664025857129868408128180877448085530018238162190925809636071675290146002500994105907708586625392914013348767991490345359109947582705839478772691284944119233925845039275896650551363960780375668239338147402517590518113005150793364475060846109704381823628083820380185285754248384264238488496160404845947774063729020420371464798130058695108857900985184432413589664195867562298509934481899452200039885953086299145935828433821650828816358318199978491662021826774320520853496776615875013113733391963776971299977564613580340622580108981816860150715438720591052132021519700788000284907499961504621938357409192510305959970629545515962116075642220129459583015876180195199078987460109878097204192842631709670434032905078249242962211521447699101220674193075259871839116982337488147550807317317856257664935283376881574458125365884196785596854389575945706028013623956870955241874655227325164206037916491679268682810891475058233479407240018463616747697822121971672901170790492659360327303438851288022181222936732063715597295039902566318745533039924310415427319763003253976702103478786406428859486772250371518643842127328436581791806200828715908327964455552168168449771339931557672377093320483793343229368761712272125761320031653586076412876251051057756719349922026084954847265793711331624629370695589866268349347086005168072087498202421186960376839451202914157516165308790999501234714838932999132750423127366000518365019342203638378749102611128768972110178201753241939472114394755441260724207652530694471788060131147366689587281086335266609637155237683237744606572765846954282963087126621823735713164346872099797683354870685646228048770825254051184356925136332602174563281246339881304400062270696116148067221299107430187631309068766844074254035572892836077187722361319091217499282868922356817658359938590624738695436955137462193544877464662758600215193678979426274618329132894570389323584661619118995079064613955835149420537159040433654796218583122667683311332074752943026727521193702041652176677553766152511318771110898186176636494308101172099071738295459906950157946466579283815569429374494557898373968854337228978991435261387652579448721651506005118788176887252531985072674699416987524058452171183198982768081272419137080215972915227156642157328516286155414284490544192178007568743953075663525192341118980263433980404760957657152374879221549219178002670714403683487917825762845995644171607628998731089083961335771954215685658536198782776205829468650427564211288671151593922591420477346441308238186673564079054606547207378755968497637856163903449692870346084176530718018618513344232494400601832937784406844815566282005603631835755117387469997594316625105260333998528969445858133923006373154081332977831617156386555040803133816236794166325017905219178515287852869173541891923520769943042230121568501654375835343133740533357165386881808624641212280616414848977811632978270695075914633346240506593659212210769451442963871976897398655562097498824748284355213752539261624697770966060737769527685059298652094694360679712726407510081883717398295393480554759995293494910076079830442074544513069005468599209943281077556251488297914791667169812055266119995910052748279540370740155316230715321943059213144683528612643199730525515623386628628866366762967387533459634438352910000082808428401924635771770260788022633021619008723448281745065889209445893218974445198308391355355163847818692170028565587946417922933937175563662066940081231591043397909516556025667242186296136437071441294150542450565468839691132486426850419082358453174099120560051843886638813857269286236525067691323653210370755780103329147362775754254093996606187325902534383472822111594512980117147684035890054629094001118068086354853954673529516184844764192197581648938060584975009109806600303115517089106166279323626851766468647813638455205250819364201662876573383437358249298781418897963148194552549282920997750919648903743688733080795519710637406662931942634622660283023089867177318867238020689036766698133460944418511980628502050778584122624108515582268788256810488943621767643224450387448266410447709926695748708743395653290371887385011496967657242514683193533677204201264582950107723418614429887454162408400727904209266402630259591225783195738632888638306534399127177933652802118800613156221718346499556222980763954723599080951296862509597988689463245140780278404121242085372577509632793171567244494056055034482361186139830728269954754752409779648990999653634677401825752615472289103051586064891688659784368935161548393252066783024993339899189368092753995768828399243384451142534046549279392815069971618335572880746103100083817171528654141544494704711821897366895190721155139223028804747453358586792104552995037064921036076482055229077611484898787420503494410176091552423700745608776619281707455464988762417054510464761954080170044001448158240497536419711239445402091312538334865538923704009791844170061932420631002399338082068271775353662366639155595736078185035386045621774022075526440184533135973792370744904312534459529537066701558111688428420756509726581208854088812905755088242755906252502035551261444301549749053198379282861924973771487067258957811828510444453755182673484774161563731689786420897528666556959697403884806351630574831901182110323752970071658639190083583059777421124842069869248556754393693100322585984925597572840431819396244381487403857378174962266733946822044118075572359887211299330230806242097402865141821274488125136704395349791027974322952120589473693539887840928343193259541658588471997707489955009112812786856783750817684223846024062376603935244263121433485587372513461773187953191171253940345732228929836578165421159868631790532845251166697825066045148900569414675377447356756751746672758054475492128960085967398556398782679575395652406584698237491817752470993971744574083346324341760484598788698401147992398282578709737502016895522052752715912018734518196590400315117574802695075678966611370915554738908967198122194827645046503417775341806164165428907634859701299045041056875151585319535391658893221827491287653539118865184734843087971632656169711208328280486927732412758709669338566703277300532188588361270972445955137179633313694845774503753668838099613854368460963898630674151126883603223118901055763517057249141835781190659679512704556089967780415246047341880033342786165083807955241483644684721411350500333853371495874381413962313836158311946687085731099103510213453240987828223480627563703519758730313377742980689775312570070116284001490389109337132031147365620785473422291538709336547342625199859616594616211883903301958159568837237507259924962351375956056323508298448829579622769644953674154006255257000868074438217627727319455280338535985501056250671336243419831290069301364669027493157797521164386438129894645120792205594608649493963348742513134229217833132892273556014212639434344829289887754456691900830559176804261491186877912882360955637458361889710198646083121949116467536581397076756766945273611905931042817262213065685394072348417788977062272659324608354890892492798320830619413625521761170388048556159510855037187376032291432815963408090802525181100001208204816663781964257975164261941075645126960701780725842066497407013900242731352867536367661805098535382391597496222478176740558608419431955528594591785555235179614010645548857426756680472125920719910153070402183362146008568165282074009922942371759983852793701035236217299107525081222362345539629631516120530297458583270598581561936623532483462756970377783246071506879645032909070492637164243246895977213919519091612229457205923919554819128963996969564738407692943406431131025796530800795951579545445873408408514469623980105082836161116973987823699906217476278247088408958927491716181645804679308573669930347981395103782518262346327624022997541876162491842431874976670006716383499234813637549966949557911771290434272067052574882263327575245401269363688274016122694885880135363050337621667502575214458660563929314264048810013874814801200529588679572720146128784450085953229441212472473748803306195007518713775821575174131322674458274937762801255907504014027658510436256247612530945859989428872606882353427762824436730570753920638020746439930172637829009522261822313342114238427709451703525495143265845726901705481937151425491591523288198544974014109358819577602450108675891733851545419637235331636791157465017648061937816198886862776223062232892910465995242520050173998884572874286439299513057301673002710682462299343034099985449483092619518476945805232632853658392143032151051698195035456566382049474313430613607030415357857749805815416831302578293720979958150539232357652619562542836460493899225955978942546294283316268495952151697288204010657767062059479956981771283612166201863227363954679411718443934129043611995374647427465785239382422182457990529406338494049512711331685230108189490450477562983025785982984735306226807987842012388332614411715434026269221552235364422558164450904514090500114595751852407640929985731886558702464539165225079623993776668026757155682353004518284457604152327425145121146384077688659001495900859062283130009857392679849357573725927582274353990777875763961402723424813504718264720044750292170667693517901363370580522892489114818325683073394281234937410456008302425434166338641897628328447710880230080793818266810275348052743063004888023665680277476976484126493150296533744983698666997179673082793419106621742304754659983727739473112133583857310218791710927511856692813770308059972795781723465946411713313899051025429077059783432294038735918647119076262458727597135609019150913259171157028516548354828580047567220253722761002762280031456764509285668296512136047558801187160539755236734979661166034294375274389043716146098979869165055306139587450631038938404820989207459648870965603189052600853232277734745036786965535481692948611860899151536961252508559493822254536568426552438310410768962467856491380162188777368516961187075975594489633138021324022865940767369321929002417202624613554649316243048753873950804702001950218863751735040798669508843816850221499462374792395277914300705813782553548969584355594665394581010038562358077767951966160175157765939311786337450041656968368341085681819289903975059684552065499818950662008930092071570717997816050736094738470990389747065621539363148311714757142607775791583704354813531076485104915924406541042771103442263333673596969574552296444305300517648850316034202188874386815725150813979390885711015192882576275712130263375789417913624637712854799297177505179631289139302824576819736570253622778994794435308448188024953831455916198218447433150338361606941598958562677779409345377023841116381429683731873547938853945119720564187326569677210582359136474397503573115272012180370250983422475161782558032924897185326080272439413364334172821771007748733665554515284392508214079885350779727193592499044341429316043378800684420820670563881113824071308521330886249721306547552451270942828318463236931148001581967648190936776787287375974126835550892674282146808479199456487424980590763238788136416968703464968595231707589644078981870501488636033410349039299923949671259376092896263937535577304610268598907234118510050147519564325859975255996049600712228920895060872177835515411765939680973683419134413857913639193899103975346542935522730497961588962601398032143616823766724116290626915262135117742874929836936148480395296970570860246802456618481778718853296058207795075258029883885935165684128095066674582707928754591094834986027594032048978819278070315957583120031718307896595750782670472243929790046040746507547475033337199608919560185943060974411494698105335069230102212201971146558487028090625906568997246810915871544254864834703498974038942062961759789662927338559410880853863144045014889828404956668551212974760884319874301149432783827391143916003321960286806280936169366780469160903711968263720605488627269771695042223422294581350079425287225068081654520279762670317133025921660934816515654294514037592683723969942723609547167934446199965754804342819140008280537923381579158660656405950614474774441405889049655540039390749708068774970760838063973345191668294258475853336522892121039909219868458990583384034952757444825293064441202501955684810837946512708619613630145077199023165089944996318680012304047344233955532067889760810767063449143522828993153636298885999198267170309692067993720810661156868687967600401912261614484722053655784541127102079434837779924216704565302380022016624281818972798283080328397415691844337882231929379340440616058012004284498549618059036227173845197132777940820077286507454320457188607021336511069444780270069600641052657237810915873908208998273005326171681267315968241777549945477404620188709643731003128555645146699620632893395185121691751605413566373668351892245372836997423624077715235001106437198002718631570018447475114794404042767222926691439543288127193894271517370902576079194599352433670013938938789395222345712507804460705650961680520268739595425823460714481259867909477818048411352112287900242946591290144400309933144655454026093683011977641612976889242075465548738062570458758002020748532476044346426215150910674848616917103236053469470586163425652653063181306291720334766986595249359134723282891808242915786580804229552254819011138544102523055658200705560519322684141062103457342513960423487540003942228214025693874793193240252029606970019650534471932022828330211113416595827576200405116363615098972006124490995913270348391522441096770884277795234990172351989123790419613988638953155011034584850385444365807061714479663255346313757959333496112398919500222758346971332337795484432007679541928947924744652340676813560756623351245035308504771203578854165583204908173661186988990653181021931037531064286525386032173678504423922010469203609418900495253361450841151119134609508922141208251114272251252465289929148198124803597073097504730744583567192851583677916674079509280679706285157190211919908886805203681545909025813835787667467326783336858462711524380773814554528006005874904228442367612917238956801649271498433686199129789989242172073960574488416272246477562734867088448885912321388953671544896478781616160819458938225588172003788832259511635645381082924992760471453953569882138193821783482537403529705468585778566836300938023006568912359011806065281253307123836083741036642195915980211878444709679591160992295723390989989659859172656201149965900813571768939547073410368201330177025299051862080951138472456752397260495809592419699372173835133094050103849365538611543381282833407872606346992847614789280629103239144344014888552555650545467183146975964136707763145563345647340355605351511833582363570030538815374573850780231887758825819038538798916027816724572020153389182083383299697344649104863168322571082306845944253734738171124362416096554975750175429653969079404098498076165666770500492211430341144179781310110477281071797960115669545202864528196785802731984349918901395044018216310234475697610148543075907367357580712226437179310036966463591735672209605249618881342846733576402916686652613226983909534917191813603533978993116663736494212413635041138020879449978034858814401683888774995203512700658635278413132502409330615383085173255107167758323234909362523251652454942361658351653892691566761076319093582577068387312810320419487761915794064990341787582400000305456682163908489260422333450733101311244233456778003586576627458359992087596432103342137119641144224567108174754338753751967051975103730769983646782032254442628348470594311997829338702830012959298371987832531038061875596398963994628250892744420472307587404589096775756046597982686383867998273725529007033752882303411188971620614199303415924929881655605674411949853914936124551056731158372182741778932318627214296810424590636669085124162724540537438540711672868254054913072227459207115864720591479750866582675483415585989991602001447263031118914505135032538950472076693852804267892078264560488295494776808122200140851073197925870746302924214693179701792288497018497474392383060208136863276534809464047721456853640649962792924251523446325212733536956223523516021428599155262087545938530156693384852413384284851274513090734546605278645810660834726550090069545608742395752274107493460980752872434770803595353218430019557887683112774071217564130203966834712592625786160289563908347789399457541195518273655076850416924811835049919170688569458145934348786157594199247852256766046268816590686095235782482019899219916561632774629922727156831854412139525384305781688062371253904516205116492165113949941599532702785116078026154208601558476336057882313109074930668762256590141237696026296003129767451470876867582975127185399504861724091113978182235288772530389249731864166525580111316012368633812671629780646114326543147156297871846810852378459825106747674066348057058831246209861751525743831122244754754666882728448597115775837589867483040406117886973980504780546780678172329414824278528326140586919459210886481251667993727080608233512744518522785289188242435612107712430973735781292786850289196782133378508641182459056818445568508367728604258775656962446482158148123411917136932546779624265378739953582177901902817503012306131372680439214515895772197315407795722944648724776959437358713802777416175433288068517833273172315386792135732787657903587542021349667516989678077012132120815345932798436259113684363150682269628342473129682592927686338571982914165159041415264277222917734812694396791110247925277065604663136881213954832577467299305351208957494315061439784059670443465123591981051143503045282417681278876470245567105319547745691982299358543249461388106666963163102174771084926019572892200259451766023134945798477838292765315929925660515342007726740860676746154378164085036095746367407635309458110506965309987523013859573280996667192935861623305148166773709444921933783112526830319845265202443750324582594609944086579677835084036310269244141116501674921530024418608154695278488404365138257662651705042258772623167352890774424293134848234233809772606815480527920340616925448388875065071881204593900886311949170085412993478908231997568527345000264354687863151666568035653751434522449846786108311316987922570066552151533732959646263231153714828319157166354883254554499381155790245590446618471211238611961508593762533916124691898406469780779901216703372808380579723168073318864090418250472736463156583349119146459179580098516212734617503944709339597832781468049549523728695597561404048439937466089872896801879264019541548178315374163030311644283591600659652774557659922761525478547294204369594028511936371095614560897936898339418779324105259560244877216962704382440356116159251802291222456225701117504705363949869880311456724743418061982391884747465349584013346037176040566893614182361236100499933524320462028652794777376183175695353948148617604107725055378487724027704066968143521347181578568700933419978485106083286699813585806022669978391935508422744803065140556526726599968301589513477592104608083466447294814605732891491874156281795648254524446366155155128472601952470846334227233469590815251056761326862144101581523304629232769076576187814567298851455155942971612394199493655241636427187970225835001174697695811500477216599367258402776195658976454602436444280822365030893693042905890043497665000738012698470979818142460798589787454027010439729241691987879869826815600679926396070727021648357723706669435411137392194387638603752981186871996501644883140782948781288050370596165086775260425283372980817100550714531175190605272441525564963229197989780848942753682336196953777750010804616186710363161232309967228817227015800530416411232880486889978630226496643954264511503971954358538089843430097778381453509121049228392784533950221779164446783445485050802411407686626868079289718577661605761631205048697771527764222325096760647576534974563417602003380682041552170158951692353239982988285561045283088025599276364110088999428816297249815562370507673222563236106023532555390814156172180298842942471415468447780116317865686527099354199364486468919802982329470364193303864082658399157146298907047850681410563395232386345444756763149628657245764670997627485440881519227085123614188255070174436024700088376210277536421146206009101575599998959938231734606182700469843334004185930859322327922958251762208011739813277376145852131909730374409770281454597915825193752857243991380580383012484293401239990689757573919332086159629026295021156975275644826058540994000932208023026134855260589011294985739133242161116641880242396763105902710972224913838401232096252238173838798176837712299362757769611641285959204615165814873037268733459087523739166903863303007081771518901327049410086341961818075807176731736866642060582937640989682623733872322170374580972820878302960359098436554727229558729725965353984893845494389199783261778646970409708513338898421345785892724625512333643067262140324198259333379610755989603787761313212896127901687889812842118218414624556915540775209935688922123099878624347545869995973077716600814831027126050054934807110481734467171334060201942819617976945187081679349112643376775347270329280015710195960635526692428851379857049048310590184983526900640810270387638458635739680951957751729681373431134833792528330884260799724937296377302264871936402784500394789024108932065679826115532023467579328337700733947096776307081833870007344025936710770242157504728051622438956556434884787913475250969106991654823466518015239816619618010968211736865709145292796613131214269578691554133946401813758035319359066316544883717460855286552661555386157898148037614817451502565647283214352858419485994252836177891358007090743844713809355552023721299242579764700476388855658612396599126284224276371453349982281074630419050520068771751601406946083703258756490755803115367313800186249025241203940523519193173537348121064162407321682523028795717347204667647364992058308557466427669712886918147034105465632652888917976606877823677976394432365900655441970648804078923668091189208496251436518396353560247844603788398292197983612023378445589334972399346901197470477075363683312371956952464377053709274655067276571491791606469696336866291119170287760708901885504412923241826132027684291285114741523713177540068617432662858828039738684252083589716262011961483250928092710476024027625114873481041706636675770164240519897322511726863305393133533006969218096028369190405521543152199637365422332878009567740224387079471395142473890161045094420165488646010722507542116685398363539039502540804433509628788011020699553503282984024945261490995693867490577083064875483024927852145038971481567381624496843253397005110773685678564400869592030375278640442811719758446539005214402605364724141478692910148045236904877917907744928791256191064153039926245890075971635627555823526418012746894086458810889807565660501076995630740426969404934340972915770904988320847682177945819656587700021444583829291134663159087086292742378333315107017152375208918123576966412592566644984306323584175891913675106822831460892051775127736873723297279738512397170247103748781370526013102993829377850799511792405046307290665910095257772687911504192396177986200887571717095982006420794892314225159410436039058861075801371862128811891537466561253829452577466489388693223657800054165705823479607019810231958811698819623129913820742188562210007853710477140966220092232797638166066279103234828038846528885772206072438457694984140367857911041222820560368887385396846175043355934115440560391301826099406403709028520689302917047636765561078225396422655271005031957041025978116773287182031098143955702524491501775437558885301040636962478660074508672260220137333058877165765293389974221856109621442214538538809630812185781893232200452428910184225017874268086306301139268116367617924127680458450027511637545610037684906604194948638039281082314291317184014316328999743132732201458313061267843726016072053404434021012148486137917240013016475201758357564185549608631434305160780269134678992357685646168379296362829372618878111410411104466292807823299666724987645237816852584175761568973229012824366667933598890250603869854662989157149852580650833309126076844993161181336213869301048791050019158152260518002234653467301109943006990152093758726850504185166619929465338895600400639408180789656400831006517543239541790156047369321637741205122226168254956754686747399123208905251590956390782963358066384946834629520161551571859035680953400243097998500752713993896709551525123879496122038787830410389352627644408383264293539858611333020018544358784879252510716215914531626252330993176175895860853635405215408404121428776558874290198364387806092158033529348561708067612347829256203180794833972627275895155591176985605257646498361130056391179880180320126554919788692576715518137748351923815557450342875796459019322062195849245725972867531234309068105530532124101452313589344756289365797498485706854341522088537964885510964175248883473729411010627714460006758866550513813526073553591531066004196899693153203989696747610573474685727644550680942243368436757513822958093416158604929973656884840124891418961145524195356893438716378635244532226786516716774568806640334098121308069939607394821958279264837407711272494401923373143431678827334339603464929789135154978814642897212439825957936468449887304261860634436636134741081573146037703430800777135881893946790813714095863308749906920657601584043604270076046955300316307056239133665895940826175671216601462645263938574411554316351509656972461121172215603026017175629310175299224966868551025746670067809059030750873223588220512131203514895298804439560475336595957830725246896633272469481874451412177426091233940557359727489181490429843767164552316428341744634094729893032579237784391966189112016088097869827906161310920353183263506091871714064118417419397133412614205190505977881201792977097352582270658225710495495931066585875573674171327432655743826682990572488790751544711123381754451777636225929575956372595046057768364493363370791506156081816094757927861511306948206525488868578871968490894838488963422377212037896006562472958196815150376302324650035932793910322074302059798128544613577668710269421193788751895083934367568347778842415793623449123079252053064114705780404580592884214174148704612733932589297349499778042601631023956623518539962287149452385899816769088145049206304467045633647841091577250284826121266754150792834219340045741871082215512223449352509413035063425601071873621902322409426602250539538242461019652214245785794640170794692055954412386770206299817053714479971884563732577561316061217502447275504825878221529558941239346094313329166872167594344293540828941406665871617740022455005758706469639860267872704531244229716820650421858967664329364863358168714037243526902049648666976036664516479507233573674540643754308478338116309056848232369208606267622426936072885660525739758471447077958752724535197331974793156606487176843157960004217587324983665084011746225017535524368113043944084514053915656927632416611703025166125771744734198172717893347396212357083723227509576782502464813128097820951898533249427003298853973896791816250818055149664826420687721308386584867408370632415707351960476361845778817940996910908155655335131018224459272474533293732545912799958498097127254822504409730292323258901561065912676441566362428789607635011983769930876521139777320248498289637859029401391300750208465902607678284701786600142473455337949550966929518947721102214336264944198878431510922354743791055901511471709565298600501069988481441797818644177618049749812093702993701246728147471884294646265791475561046577071145624259993014825984567988032308868268972206262952721277674842106769610630924993991059817012001330011741736781061583043236071830848960840809266458230809016763071801851742145216405625165115054641384248474068993032948855054984763436939576843225248923926277185429427543920709639599544809206289149982550889476064871828976676101969998154428433711870852325360832559664628925190323360878690033495758172032107579972178875585302572811182679793481473022402574687830699358577753535501456290894401183391202735571816698773968032646081340181050293523848200565184482945485727413671496817536582943165992636694828477216766327059791097553495914759222758161206255676327405320948948776088453891557137993234838296705438197625724815353274922293121998233164694140537356408969906017919901246497508019332394071661633178941877731166699376136813063082673037988487707977441911597217803182099973847398178854850487702616769913176489058927808934369064074279399638204385750805003868227069808195001627865530045307083106897045456206858147470447144607754349422945155336388871653892432155343595771141067443801519239150739043134338632485240722110813202931585542349938604109224832297660258968497879137966265761722747523265745942869982041397717273618956674204620926093458587880005868566499923564087579753558740889993946108876056905350016760950745924525512568643206550589087985911239135962829042668575200977472949640242293073544273248044697716171262767875919603584136042417172424046603281187326725062865885774548940409614106629997268002442982365240543027466515418553733497809509433554579686876658521536927390156340175767980313855983711696316328343253063650263422721651343387067223317158173069221179347153445876406129530526074792663434154605352699329708128543210492554516304610597537874952526433740828042776361462951726968654791374173803454849848249572151867326119728363862919883014151034214247999781351342062265776338255007519465408888901708390336286437427447591754326260524221818716054845639085746669264490747521560606093436290443174890647325933205302358841850672355729307919145837063224148625984909743434395692470116480447481413067608557446342406497537763051230491110140245218951388347254478173522075004414037456996026263301094444744813733053270859329366428884809687787047734410553326205633161013236296082676940165056525962459092814067777687584712780121566163470329562180477407688691383941915871708419004706067549813596284746825766888256499031291889813948362943946680960175792257931245617677947426506558746830614418921231124416369030969844601876483927272518766874156002814276927993689632183919229052631408746117350348723666872436388743260225494742209258100768688830141369258217037680450895427048350219897750457656917108071283555697993915405251223844416591473618044498294131665706777842966781571587085218229783959408666074626159265182881305794147207875899182909578584691458484934398704187643182611766934017772866504940550570562274929566457925647993110418773243153566650663262687280753483707237828282765526995817075002852592069145076128330248704311978793739590451076095755541563807158258273277764474362210261597783312029793998638300642826637877343997260415467606441120116288425054973684880427555444984444902465539475052145841347822278823702627768400374747916239202251611186514398209099177049498403430056121459517504051513124808808304927846004803449461386410872921880618484659048293284075345140856493469467312504002336544999931374412822756010200133895113481141330049286666099334749695929028906897395505289798558344389121369410613942819870572691756525061001184788284917344357730599695075112328307703001483688357024314591362889703250650421886613167139964172685397165603747470577130787087637965114027104698514586093230275340998508390383710774929154215184510502953483178051513282261407872171508505588203516933564229824887620225228715450498486357275892360971243764529324603150502823105685822268797894197203095612632185156727560390563068552767289805685502234136670082942051327881667048409915309315957380694987751214133274504607987191060397785798681437680805900350538696327554161043829413136543222036531729662377162981002236872381750762037776778814132152201727600295548165209506789041374599650988584430455147876832258319168793819386545523162377603304744593644039823663190118912660177208546946270859802642518803726647128333451272126304486642311232542750409754066141186216288061828161795925061259713285851616419525916452760423533570170714842106704515585513177424729250695529460133282238753032504336851046890439626146905224364505194628980355297391533596076235517343553568474644593808497783300298546672383818078817037434452105105944075585085550369760163106182192234347071546651443711521381851008267397558483539743639919677855411927440878408705453810809372426068620520030790746836940155099949691876764808192559289439597627945410894589209699664008122058458520836544128022865335111389621974617304003932052761019256278383340607360344791300320051156239931910994302188486529495137156332279028660813977307368835659079923340851071484973276137756016372395969285302569961456135233669807393578391842542106347915865298515846198919654808582533798052487694681312971409472465997337518075502068222843599138936834331639127299353315419698229563036624110988192356822347286521259956296939189991612513484131807483749686783264704096363445289451251151505954637385128494710789012916443338541071458749989920886550621291151753945792996689363207528089095920179550872048020023997484437956879550585644706898894526727705330847609706763405824670948708064525633616000835266969786439286828960856786564287582129447893430241238828944706763051014266207301473919548089161901920178503680340294656293378921415347744188717081723868938203818460444547552290984559323886749152522754897921153136827094264828406577642248319024794959771711323502208968673987498250321279620358684101126061025130758997404734130892106242630423000452160435325645613137206083768398023497721099858256637411973691358482826279460798868870654222219579521504504054497717436272551957356885095556875960824010432609704147814532494936272516724475733394314940412399793535000257759205802750853435381299416446447676263772518793327278412347381666260285165793772884180891390754779586410336090675138685084449931361082375285302932534275727962768909002338913576723322118992704782360918096394877001254580142838204964261970897729429229878636744987820521818084656060625607659135872828035261712173046530930794714168031824295200962065094635372918072362124388516228883456104480629240765369000210038670071650155898344256171061865445659422857812521204886241164880623867949306944306370997419530500458403176836757630455005684447543503628258018380123173315504308597420904930990110332506748789541412743369374621455040584228994648159049551469978813839661273378153635491506653853292585325562710916169039957722455719173726663786636469933386311508129100758393254909519956758900536172025815826852703336831334333331304392781800495441002289616600108680069141165479313856007637462829371724572456676143905273574352631328585312542105026219201522566131471925152287976150979128712874804471800562456194241942996921775400589195533732067393112653558923396274664086979099566885209603084682781626929837757732196587086804465055248368738845185901338324999598213261052642486384343850359904858215446849785942281801860747362947298106782839050168669998204511089698215784731009118619014037616828531062836577920363502082153676859872864775438350989487726402668293130780416467561599258497333056262488909496865272078481940030623942988529824041075779891169040552108300488451663615050417150470481285439000176148302611459608077910544964367671859132204106948468177967774664220573847792021883964460162553525692148055312059293655717631459000240113220564495595427203979371318431607029334051624592551103101373848571665415444617708374936725072395043116616859239602603624770492555214264282696205338178917862135045245143421875542689446881265157348788962205218982197791859873813306910654702091147996983255301800812989893899173405579832920932661085259577856552634628439723314134148164177297134524300123514154752256863910021727051171494411317417764402201414194249213226948132760381260295939189928965658252586729261351708269362647266023701290723598879215353991494227591694370979627444535203826812086657002181874099050492512476827976373639039808370153367444242974541650762564182920823190648052650494846078972528161072562944009510391154101191250157198033566714862718800875159771154149717565478552185237040605691851725864605255170781306218045546544913907912287875589794537009973080305810875031823853229414573991831419115011099960225551762403498574320097261881010539013973462988495331418149040892579388856425324667378817659582181118496522278515587863776652946719319013574054035637055354642347530286791834561448486545860516399302501091251912091162615142423675798114081187520498630408437072347668699190481691661486069544278131209646584211673085967780198354293954912161983583513982015867060888001061850880854576532812822616263648808114166355641827604288760337225060742692601149604408628707929387708410900861248212916494103868770895741730115144949147514259918051548365077460691938556510456765066566291055792171492253104500607327987394277907051653906434229157210222938596979239029495392136186625432715894845399327439992914160104291949706852079268965100557105809462556216927686131344896251304061310489399671807443211118134267023941060556948093904581411868793531901877181842874756746114952632599824112183731846835203675050699300849965236645998647212556541431412838420450232928351197320909168090521931819848833067192155194880874193547743134991948719590522531370898013666352756798784284605335196859986387716408138644132363549421802455324585903671482715216405362969221603719970341309348740178515919248663703803187123283067118451861187707272315247251775681477266694524875269484206095707027036949661528011715411770911178743792737574534273950405094912377641095248962196116870934852184278213875545042385038848135870847255241511138508913321372653885342530383949194276697899642801136759140009925550668132357675527558559863699343326831250320037100923317267654820881241702147318242099025950606668521370024452778813122530210897954353944263266583860417283620283503171273269340390799529525609449193114726409682140551033825314101582760007343277490748084616884880292568689453114836292570933426904470038725081922773553110715598019678812331854206737010122555274141479814267180477764493712497094853021569061638759308891173369600226052834503199282337666239840483641434912537396979109717026928494985862654477623535616712521218720489161212336420143916343345346097702801081805859456466922762885039742923371142057594062709352490451901916642525062010815117108048051985559348704756866433412869430832433384570834821060205335697193506562694107359113154882015206949606023840561125573891580006915975567531552519503554690667582387409531396286007817265809324064527560596632555502271041869257908368998709681839153042536886595279411018891099578459008435686274570742162321471013065046715274790031054893062209545196139354324925872239702681765586556033982474379412645919509877942115059194432461382760425276123362362415236339446136572222675617518146781804132393496562272513594454275190397928292030647454125617756291078964311698488056188024440243203129714085874890303292664922424032545228349718686764523346202196288810232778851352340606621991479238772836945784163732206560304500156940148187165328838959034125037670616894972792036292252935141630099457344019654375251486268260384825557933499940504628647183685324979598512951708264692539120069401231563428716785806560061673209846386912408013766011944939659317140470555363865689328408584177395829003699608840060646137161007469600592851175266774214535223876393125686600307051107937471652726247812071860561976273593728647915871155824081351294070511580385563856268656534546615125025279025623505507660463332716189626632504922627083164763550296657111896998602869227027134599230643246522326892844439771231347345898830641001692708233922337861683990392906313471034390180629606974357002393606875957234090112593883379881468092418061085366698827913332175065911209211744378157360756623142086257306041043818304240510410966209068879386130028601324754344171340168149049118077948745659548865683988488547105183202402406708552038807825513678836983135996050366540839872286728603957115472773430205638010502324077381138621055554244819856386202330673336105494612903046811199626472982929056946923618277372761283724551819410926803613830422529837494231803595572392044655478406146004748664870204172285075281667901368336733041796813649289903890368297254390735297389321722829587571949301932597111829129176712029705903252545118053869638828416511057256416848027217204379795635572727387318625292722300351621360868607882228343342397584683062843057930802991693962641710816657987227221557301532770801494877732765567440193314443966185704414359968085609411483105451111277450269515861859222799212275128469178415823219952655442161200215618771801227582964833525908353188239153856635677211933829225220194392377200973049760307312105698840830286996259977717828845160870704004226738759946182415871736851778156446484065742496454024757885411865416668912615794788487318674782698312424017031102608644309195961804488223635741882786276343353741469172316072167738929301429763397801522452999910613968735310102183417198625471831098973357598222716014763192564908444211417475562802741456138610389874007965812009856399122895061446721133741871803663264417573641275051206125836268986685846862480115891208452805361966072288195651867319208342761698428069430729777945775721414990420160862656027018027165558687424108254195369340641621908164088659327133672438153848591688874666285323284242640925851686902896823915294384790779219040821836998141427053631102656464186999574462056503698926778416109388886878600983968737346853286641999082348018101204978300263538275372127840577357756199203382733121380857757725680733976106671532386356109719425448258299945054164419182281207210055650630323152006988896401415632683154674197987210035598726391254928094787585723422021577619396912590299554772081176333562244090014674871422100875943562434603591110102628845142305719459363366712445268368780654772502115054430935783451023800544234311402399711577944284578294078891812738793831907500689029249078829729208035549556914956315529736658847516337268029372319499318183320738493904653746250603954968220209638145211156932954168481894676972006319102916741283170346397632441152479074452943437014692379423516937556626040973723652287511438895633310927454577693816609148746738552242359701904493720895038285991189896708215232743770381286324527366444998788213076946661038643405510127395653337041837355207943626205321243584486579828641458754555417145984940632726435778146198394478372064015196373121070577550149677512297757663289619216290766907246578557963553371470825993905829826694613691498097526650627824548212488785652388202047841528119014816938604344313316055065535052887382919775618168415571315584965215590467657957634198888517774944945769573965529878845617713583503067738321185601635706720825989404915726114795261160754360063592281530430531325212236849671332306403524572427961880188584157804553269992714697448875105053533952238385003150012129314868539857694591886054951014148118298005062410561527062681923383427469568440462786131347132560106897282227803453539013440268718920729317061208959516832005269313773052320327078387787017452035052899947266777924329470559500994720045900629779168642362505256885823481541782550267548314807086917097820084013141815996338882680835217194760068275589386408888338849906059053646503024331772561518119332717432863077817061699523591945687776934531366842144312151524535842695934404978413300904634109812585097857468418958802366684056293889689850499007799517811281837126584570809482610062049119780988548137906815725706190126359743584704157984261289625666145526987961294163345112686607265801288432387253820442298474612914301420552653720047020877539727540140183451205287915993682007567813536007056547359644047687603118388050581263762600128974067992615192068276633233647043815928507180999715619514091596174796169535244291055574901760435496714141153010538050698537728509511848437896341618714211299515682972443912948112494704348758219305331608523650851916471434619681785824158579491901720282349735108862115237768263140807835529168474328495182051910852269684940131834590459503646477385155255087478123181474978744886783497296327174194453790752724779351091354789196120521531437680983717467564988315343063001338049670309056176528888110154431435772943345613780996320347483470404759665235009518136860890625080504337184511757808803636904882634467707984029388747700920615501468345332127956693647927578109725994665382071337278830712053117397282805910242900270528964177656934972884685862291452453893141519133196688701877421045621171568482126500157947813386607461398323617357021457275630632900706099435554171608024398619769094824261506705483588914577254872429195103410184452604981681007211757207452213214639476959780813039120211040722463326050998850674740826083537177240963585851523884288859293212922232409433457600280381604387843642543855077658669688721679058467609860319531077355194909090411386311646636736373458376578093919629581194409370306538330085525421540033499368917240495167449447699231086888992637153228591682021329407197342780593186340272501110661146981076215541308099797405206528416409861417278132673494993306319169277648585372936406164478544767947271101918067367755201276112408467607736011831271125819210333385969723796192473253006745295427776241264623510443755821792534566346977973266351414930410187785253895942242168408166545984131508501280701428647513819574807011865101686669248446037570505402186518772590198960299122748660145611376803313525406499599014471430098040184230938786281005477928827856690372173155599871051333628394121509493076544898590536122697703419716742189158150695399492439051570341633886197281455053642143348323466392146725002936741200713629725344413584908961613252192978556269220412775830066867630466814481286306536672741986731976740077137485020681992909273859751383558357089367240851489443012349071141116241073603774720115487396664935505221746722258930127490743673194587773232868517208905022843466625927087192601882356734740183267548211969022834048468181931301901011111372421266234706898890664943154679868864530073874129155352496071010087262238694473338661469243111549532520979150677434475601974835725931226842792693950407474814493875690727069889137667135362136858038565455155555390670026638361390405916227272850844375204220795930957451291375279520676379969851641139537707057700727958797272442603698223317176555495627227217123181527007390220294080776519286450643616622634068118514549792034336195378497569679017316364582478397329919594120418887704256941028844458435822292580211727985544336904177110485067702365660786120090150066930691217086451224903082518460736333007309697525376176748814426632605379255220383126499785254812172218857806865086888162269443766120749671000774798203177431040093775534978089870955409666573512961429654067823133520406254984564809477446017717600668784441466040917402094227431011554234140042352496992693810921943487942344591387158801978664686780593501236745300929790292327338716886379056185925279622366855070912774847558892187438762973159515420708347137980251449949437086573626064481285161234118150628490053812389500126419696162452778147313185496314484256940649913847225813799825591166773017666050572045192333090841623870139322338588313844091353609039734654224991393792551705970612627274917772771043667447779288951448199611919571172947341271015468597595917739793021653856102690231218168135075511453216939637057226124760021899277852984597278402774186574434640249617944344116343787372076554376485325667622054898949554425767649483526210208902461212825417651544127819158842344641386638415346542155562882302361326535490402110548596475447077416761609992219240546777253962764331142381001639467553048613309885728645894781588526672481012027662766091423659140453590183393227982239029124026940959741579337669318710691538678597355638940746394027497081774516096688861362074220905557188888807207832196427617242039058872626533165570659292770519922256006570161804941808964982688706992499684032932672366211947010404256995033483757029999680283071485042915622814297629848695577011003872761650045273427916729496197763580441550528316833703240739745426850811221170458837734126694661225210390077869006703210758717571684222772259746415597131463054286555528602044807825513859646239952111149620515029178534262975226154996617587249676491977252307882344645843135899322683254389814885378233793445787192336839513127196483855108896677006810295503948915698622188437931465259238666965571412674069563405337778723708996578099889420652507745584886424503348607184750861804810618527669493976282275298966599174720970028755941624940279940273218032166470348138237793897742083796449776085781907871619224849980339230150752182386353120176214214396493036332714106656311164923057003404408554887662859958104267029740750345153975604585931309066330029427307017008492064742939546243302953305909711370223849920979927431710620022742384576655482657219838311110587280860397509017801649524059872101256265275325553287532749869754970030287579177944945124188004254237481886142646019961756464318430564451183850766390484638706626725663580298891794987113128291823554235746133448539705977310249141605559904033329999492120881326893595480766353423108186261736488738594505582843005914807865550454569059734736488187447178468475408593262774587998192480195872802124747848927249999776199436783377589602773433688757410948330356937301512080655635821847871356639406266704805460744701042552716785339739761760419141059754566880874772425625544060237626827759612667246091372205521779765837642268337118330613801236042177758853067823395879244648535292220165553192177975023770593471436878176945951858282566262794175943292990426886632942999088245138939634390013618140388052156161481885326730285624267299481395747435451591880949922085414332363092023200209713114775151725369146418362744044791549330587348461567278229387834747377594848649724951016786097128541250119454192734400108553152187182716631471615503707840943955781104689654851743993267283713837803081997241901363901701246414800562638011992325143599276162792308640819982417434022761841342777471364921053088853922877343170633236086850430336066992832138024086198200894066567487224482421526980780777562999599623717893591129669262658210315737955583837955111992498744759123588233596940947843293354765407239317397513915751713937944643046872747073245132360614942108052896439429909291413106110004730394665736254840381120444768577151597319793074842406156224401242915098861809782123291467000040380602308568125149982173290056475833377575209969368980486058654288284601717662151132204671153914077593262880066472447034077045091010979877754961242415417044903959513754045628655347168136080372379899329479453331893134052831905487847829140825932188177769138807506530900318162374880381947058862003090974229133386104930333055223386056351938048182306017431484307253901313243658486671660749662732698155134844591383733533949896786270713724918742726917284099283976821174346959667121512486746210883021157113903786288317197909363467288055522906322043168550647255113246020447763923175678091316618159100402950755070937846004288842016301330510340960678893292139939794756347443997210733780711264074835218721796303082596205181784351819821037199185119213492572731771532043534454665017372080782065388681361211908868615835567115893827089262303572223337574310945982970116186999255555404526959103474400735793336545642634602825432264611884900229943060681973451149342204773838133321725208933165558996015817946975507124097050297634219480514973216462505777041764722759002071101128525545405331102372455550994579851914918730359488509194011270220602172476719695631926329854273757516377974764258307902763517639385984326935430286267247005390237031869144419886387989383761428832798107212412121162609847595688821294387351326219401527066483643267495598666335020386600565522878980929798859329659018913012375230976037373197005905400409697507081240922455693504085181410854920130178854562919832575590912652832311000852036507945688110991350969675698756229975321168052946429109970761835781919280209264558946351530527668379730070719687542666491932420831696205903432916952951537742064639716475339879144620879756068721074240999654140527509698451262989692540470759032738182604112220580172909478545694393924028897905519735870980100879967035652964851663341313943087624800917447044268075899128264976682291211613449543638657914884295838257580841671123444234816103332842519900408535677908493943702143193854774965970538615296962953636401974460395242411347781256525096910978334205242409341017701931380868530929277273807542449637184597979154974326896307799874836056453879412130488890223166539554205890669815334010499552996054282657209890836198758073898768002723596328266902259813327085335421178100935804256384707693534145855742271312846715980379777005033267391486447676570605518221418355364081752823043188935033997829921872945304504952177735948832508032470740064647627926461015887968716310001317756673785126757762244971587839047533913319010300300214909389535624182712745217986822808110026335706109558979686889413461014025326777234567971024700894807533744609058066918641218391722846854800858262587331886172997314781227354209679196993455148882194485248716322867682659330979335090934664957870520751379925505671081093734296472176800384006426422218985828326153211953147340524714319969692407506024359615517555259836364860664582612255055660890242176610986068935790525898648774852810322933007977450662445527513635797831550769533960552329134624696819470023469816188660007644463381112865400871891814284121686541502689679370858939760097470974385304845357306326611408252229008282385149026362130298300893282388996979787458710848135783213292752178977975913040006845388427290700512614059029100928316517474100010226439316708844164171150232469369528739946906208543736548007576605047221316381622635769766817631942357889285751715459145272040227544786625219420016414258068072790239377541638256070500098939304545458773417128898086908870010445454413366773617451043694110865867086294361457889099690324312417167117426677618189330128965683009591168557846989697473534374261597147759285543168507843668893860757250853073076540584160778581063696576009295200428199111618962769277633916820750183266528701371478683936549521592374973341499010786364786554219193377689601963280009572456316016564820547963469746701695492445550049185945912152460968241960996803795998859190541241483193574506179443740021375384297232866361600790576486098562963248759525875200529687897108730544879983418028040582413182917445598836338541622724424017508797738204608058640015535474917905286876375868015701103710562432307234085159780748612197253164671487008920997707058374623573843380142890845031159428016531744794530817693268859150505230440021532553238698326146007847679434079693995667264187921421084697355950945526836586901209112044406946487111569801194874852805888989400706192698650798139409235083366723666370341747625194255032068918197530201890436360453167989862479309674711574126194815354278967337877782584204482741423698461818148599858960498705793368433824855746746177481567652077702108394578175967870596553822071876824922566016285272692751499388068146605610116749432366718902035224574754006586281508791093261950434320265799477168084203551553811048899050705717754658165914820132299070869909224758386185749996860753615819537934392386805885365780646659167431968887844876668548126460482661788565931738625172110405125366396048294230767505337609021659989881597203585186543504336115689020012588226823710867902008565221025014231775629945235603745541063488458969033262243917577627635235919569841326985748296808337031450870632671350727351288845151664400996420172179759854850336282323204566397199167249481047634011397498921501297558608514880848646245575098528179945512077888125949700513485729100819449374203048967987873685408940841012551627340308433330893496815965584717896029315011175097700124266590889747929548647013379407228155246546587566595880749766985712510323665655580269117260568821050487604493213458321249132634069461763517504335117728108667772757272149074114666396854272854722150838470915654967024543456894370281438555419952819455969320514620670095724202830848130245213110153897986273618485279936799340259779507366431176853003630845868619938271025319375694753342202786580371491607129381525506937876008520291957070739992897269453113710376214860978606241854456975475652156418830128079753099803878954913991601933305321034395636893580949208421341332727509932032696950469822158411705084293635410170649207615488567104976525199035574704946464085628893378173598081201824466118273045369984996431508796917259387883045372350658242707419277710370688850400131558661222382363930058076319368117314970181433623233663497360967915604397347479062714208411773954070876910728182588705488130429088584887671876225767390520174086306882036837738199822328156933380508646022117597484474756247554673721142236245067065581111936552819515350001619447552922726096519779566858568028353110763409719348875749794591589090034813027304836459023611333164663590730500456294199750124441139836861541127382256345852702423907891050791835147626921799760721879379672871068768103645543451192199422746305910826551459555246591639874904449363378872240796065663918961107461644307427532521636351370784432599310791479879551618449565500113364481667737877973739507317721725810609765194307117639041736765788417008818132036986202558108630055937415229063213917201627250179296751447969156076236386758529367844354845829439454260432348412578941077933089609770775154617634237700047961700177860089095353871397166579634879973430834705733685489538189428571702221760842166328131872629768490245506129298423629605197153415716063064554638035558537793086328644160443044322866791186759534588674304176646483581250628169221775060856666265004579533933840202298571863993961162636136282387394250373600890927710485778043695631331948838125528663616872822541727585811752162011547343259865667628871342343403457893355969403124056097566606441715304660597441829142893189267210053810222402665808611291265453555972733132132122463399172125820387058277955119997402537759444661027081057728210143533238923637997145478504991553192713635783089757598973139961689291871002004195040135552782789295402330401444861922456284500901142092429876691400960334398872110260995812929122422538249526226091925553761315820792006457445571008910844236773359421439991660560556116511863166622085543305401196537486688127619608996745184883998895844675461666196975246011265008091157926911811736146437594788474771368219119448343791430558996773301618429870855873023960131363720750195776010011008662388957999257803283449655957241600714380300898300831620273166956461136992814960629731833360226294101867069681807024774635448621815503521570774329748566521786249938614356570969007486691197081124564126705952755768295227169816013689430305019187993243685129486980757996294491800822137103795618711265103708125544154537150302735351534500266123599063570783584619486300428237249077878733501696692143403713870874531312166794899953439773901720924873666819491384511661795691293023233438658494130851383977042089753380606672940944573372303674045834827427759845800179216275999171852757759251435381268775686200473771115199067193254804461637814585672840933197958286175981042058141799229550320250323993260062238432824050103541817572532523196801309766658915576497257174476751688612794630640886816356777832720922447429483696673474210747435449477233816756713062609183796800188529270347499580953339100554307011918339703087994970793461979996931571732177889714776758144453339003595753460564931547630623225822783998550098371297927363342680742055427681983588403390938189286321454829810388914217544871978573269198591833615110318658363004149823885590114713224792092022127055752367752718801499051630873046144173691683064382580144164987504826037646735448751653098500411467726934616552464670636122644539646993963996603519859336047853603390759606748020953640791243716673092255379322751560233756883531184886576376477830480911597504841020493900384226140466223689088566088438643285677184450351450014639703122485425756192709146377677216053991320800497830298898097384200740231096975143201033055653253014314460322705361500542785809392452840731239403047498373633331012117478956768641578042572701189264761823937851303211096760114264161126047557815290477087605997869475731766557135481896074920841315370451696987016628951136303690667744080191780257008114377835743588295422139047941968549894784232646337795638101657391693321437360019421197985459691538642300370439847832203450698958583717547509546359145959231518567840450092352648296398825916180673753258210637228530469482975613884783041942716278177680436627115598736656609428420941225764162418415308324297155279600813647570558083675576459766087391576687780865530664713660454994908194837888189788485885256653336508877960840514039700185410354076254347595297534997219195845537145143870596250642007417712197663172947726126933544000651576497293865253021727413503150621784061950717916117431701252286290898289703489154332483589343420838351862105107864820993689442817133723667047828108947463135734053415873374295855216344690405076900500939341079281751440002476640997787449838937184311862860453988752500891189072149066027951212144714452594285957568320870467752822450370103584849251136235311286972165161373912320566801390590628822887774509040442843485852220596195019274230316475137723459620070570117264032807506477138485174293463874470323602064169225113731347961301012848813634179316448061511298785501935692113092506770182045435065114410215884667650074747758737047129293309183725519428243469143593641765376341571123918126715064395311699986436830022152720650348101710136276567626805175714370736649670849261371388665631867766358921373412074880045472975923851020558633495410147355138989851361036628970803297820305708197469885986921391568594073587787717574679786288413758824402883429536765333002300000346601212565398299795327330324611147353976609101103353888839700143947056366703962423602327778155701794250552610265667882268610139789415802948851804124131175968320453540004291867950142145829570355487575586010217856787526983068696726769056444930332222181299149385365220737606254694245507445703035702083826227322661368209951108522459583852286473143354807262348282133411523917078932877816054226383344506509023862374203202900573022361238228563261279775027590024080743657059741914797411345512715106142989346690850782859894966132074723720140137697432537182463613878162449587598525184987294536077402781094381590460926643304161909140575951909401406880838299306440723704339821100288275749560692527581610353126893736733007419025289311638061213877031019290374746442548476812666084778707088272116696343213011742009143778676156768718316278803150628651464983745905031774830790206798687683434419560765522082198976128401454174610142579769243744757644018982574750037730168942899665226473460765295852305184255977497414718076149982744121710919297762797796382322829717461791882521830912843681708336353674521271766577370922651973821038702319284879007897816261170223913468544553990477744360523773663032274681238695659191541100298411045244805286575931992738724258766414987369662719474426276745641616281446895493157382160283239439607163537417003274619635774101678965040612618116639689331474379188811919037077612905404788072412071672324231630784083316610282337783570784935498780918448881403814138928578664923463075430298823240965471409721787655458705705371464282309206891345049316696574743660155806775953370270485127238712472160247894897303198386986310036777476025785374501533235883526668846601996816295464676454167862519020397532230973139102059300231659286076032024874747683307101915967147480381903615087621538944775585625507432048672447224293521566866079056589857975993170823852242274235408870582504893031192691725136908877146819791795960168307775745717248181013164743916997051975841036501660764361122423566931555726102780721499114020923218248106038949902497031995072375130211421914142621619793841581164186533272401989919602877202383308648874831590070467732722509973742223362723551758902898194671758594468531201050153231472943647853220887587050609448141788909013903995959277654271191437172881453197924451579576190617514584892434422972486018361540018035818548942845630698197946389838849602234211963681487147258268056859879354445018273681594046659014465398002136574990435159020691517089951947140842983030810463418100171419941326465863114711953175021809920032828701338808717501088369571962911624495469318342107777247513585429429752110811827545809151985832667431749841229740393734586139181820206392342012388842574199944761625457112315909532759105079348738634161533604643429465780561357469937177953937910599239098214390943102998950280073089577325232745709595338404884254595891304561778654310533684252043667297796602149643843382803606840311066241276974529007453571604363332706810262443531695828769853955590777522734125310061366347381919498470617316970588719662551760985825048115860332017164130398540713683685167171514839742091807200070360959910241372911882466262285100553195353122881345732565951290374761207584268111174326688792966310088912458186242121035831093340647142527672844247449404751085086318810566899016543226327487575182856185687597135217319022350603165504047068221647897620559337319261867368088159214825014096763390518874198559616511861216903211740127623658122956634997535153644464917563502910124395117220651745709153964843385914657634353568638439399718293841884896175769864044045426247656013588129784883063553235605855952192557984554333359201527763138033763424628437710834050970687634478179916273437054929750161735277260868433702488831748110286713628928802670321736777077888868405722369122826809695498004410939801213000629900722038360728851030417638724476344595949980663100121949904776824198868870491910463246704504049984828368982161494562732001254029180621671603244565934448833251918133456768638738123312027875165586544617140557393344135788012320072684505409924317697017825610898505515788592491787046066628779800216139269762612307025960876082052684668890974558955777027206171138536716364932931408870226944770873509904775559774414515258596783735634711888412723302515094780649799885314940412065739412822647698522777050722243978733430880025521114325724561348027585582757137516514102446658480927685565276319137393236879630112258135728064457386909309644872922946552429399070046055780484805911817809203445045843178237699261984182525762497104535601503840757999616758613905424360193097279892541901415279230120730932386193011263287636311179759039295628282790617552434378057104495446106973187975698960663516882434060333235267977229621565961862839363124303260387019007934257378180937107039156259593014518783357027604874368622902715500016105110332121784001471569227866369258083046242132961431617635122107670389560964238022856817219414781936988705505200823162054533225899754478757942992170896807846061164724837688566558462336997074108495818397544871898801293387709338992963781113525200927652842109870520169080172495524906467730609422673251175096622252319762745089415212463007484579272230469924465781065433199206518094356689603123502829341583745111485263482516604139460733378105904986152500520937078391177093141518788546212465269188130669777507726120589742629072299896918493702153510950262481237088116395100926910706029276878881298558818694713037432812385994246465940262647817010680245257711477363305809078059570215281700833113608950343789695104050051555697984180243887355648300581505350070760703675833513540347937253009054757252304246945924838999928113743803176427811196663263349858786704137835399687718713944958623584539507861666215535167265653628289291892664543249731839984705473421126680985873454006971392538296668068133826645003177549125333601698252773017120560085091473965060156360978129661234732961848348153528597329552413807287611254803772406653841177068244787432333764496265070541687054769006150504008846087602318426398782110544575600279352678071097052855750309754384345122114485588567742730033329058463383764573930760994594718048414004898005163347193457622724552120548442317361199731483148421383091958917942639512625316435873053410681696319845742773679059133775712178562487263618707312324017431517430260234388425425419635366514142551525597034033927673051630862797139477361497399341306396851201886827288138234680811814651062504571678167256963817901272432824252650773842903744835036249922011912870239503639880058615151685546462587015988761857934865987975053818318816151015158223454177866153635864823255701632153936868529423223293241099162465483323798137386273554810702047504645978409602728776981121936130493070412016569066815675449557448936580945306221563502242781419857704918518372624175813116019952521215311109301053121609404675270239351898448131113946374073102358868211557377676795908782617529370261702560346092497110960022055983239395177386166129861482434799764155817211933738455030087000245855308004747098018558297336025825454531123556659696559899949480336275286901670610047376414379389875097100179860494296368830519158031055999479150752798990620582783306267735680614355580529577651245873778482959765437101061290785488623598346954013064523583232996059915478761486578183856564181495668973827431714544322128664118599921302205523576736889731854021338540250665889307768653481642730048181904933940403729838784098110828614221771161258606235847892184532884518099413753903530404791546956845209643694511518005754266056260929664720107845259453205511095121703981956470874759357913558943361926573044562761516540387623936162210714979124303740815620604409567405310651794652083297942727552527979573280940577197604869274582743924232338784500770364444114486762748575500347093441348152294063514710085588553258077542426441786465775767646329379634797201594995040232863911832640305975508301327601307404873590419672719046846767694127416668011147791743591459604925383901187935396551369944242903991897471299640424899216168103582659309662145671763159306687335802422332199255975258450944136781772936704400933464880902353359090642653922318363322452704865814107105218165998496523766431827468083535857306188936735077124905848760719896458149794959713414744814232946464498036140115663670806767826954550977968441169871349207774850872306221058347805722531778902135061757377518013424817923544832882436046384890284556314695503394402103221495584203264249739343689589621799460847201243572426960676384161634671919259475896593730451880782971990477937035382312647122289848300294049962503451150330229868060621126486795234350764936550738412759115907938219984711045699867025224897487520065858349926309433650819186079563154817202747820263101991579227439353605397971657759803590431655366599964066903286766003068967494930255144407136181876820741282414581912910543525456856765867790749702950816897480629637672105047698207133468753775200459728155584873411869560576899605085135855919578523937884405751834236214447928251708786957129686551998391591798886690627018686081609983761177013867519075630198779869210442083872272979153298549114806109341068282475292119439202541099190119036598098235551732306375615623869647856529220492055066824676555175655486608201813356594116396825297625643507892380373995883632280174326468126607893436553500146655538227101731923017370536559690842993181177632315651564347360292282606366862803004375559020573490953182920573129524882880964687969328612325561513445931055295916487177534378633655455993713422815417865650346332693207829721474966914639865998411369760827971832354706779457229536760702314343742941326885421798437950505317641281957103982868059239665947893072755571948812774484043684857105492346786446874690975243678043515783457993707397358347482054930510314667192950813791363946382522736102325255465440175432566326413112971458025564795059853235147752539866604972236429313865270596803359476790039967360870482240837586358408763141567834334948372555692637144721973449678135975458839829278261466127993333433263917536385218646816271219076749244118908696308662995752482715820456235850048881274687237014571618696717797188152468767907073082107196569024594809325775072867161039733829197112541985918571113445712117266967266609657168752697743612252810837953187745857737393674625005759637322741993259499668098679518493952170979778683190181644475444301160053518230102252327147247147704119398296693266814763929353114405231254588522610529840820530841298085401643376512161063679708018807694622453754825137925622830065795953408267143574709486226363518477350617082667389417782001382569666806424091673363235692349616546778448703722336858183586348839360754344845719771177807064524515168708362130546060373154078786351391085684095471356117843137804901162981749129697826983308684364989826145524646932428251033990982933861748023357269929364734644952408126603616968287562408216246510228645737531392725597932396429946081024546178000593944764533645262849701260165738636297082186087589193904374596332313328089021843200996701714909434420243034537562343854387601277834399083022504143369376297111930555597603971284733256395279978126024375954743420837528319151220392330282498713769253723891724064899788594230864234898153917971958206158356316909955425133072318568222163452814193724536392009859027556263058912087712487492579529928015101563829396011509582619669989136760081236680957110048502482391532669587315113558655762126026879406542647821718213876551227626640007243336912075601023511147754219669437156993595728394652856582115784830560909852152933621841123390884675605241303142356510809586521376383922421363971788187008716846028663562396992580597139064942971587558535021279590114047386030279343288088220025749062138896654557579311972584198757656156942320745840527550159749456845787899886859049714939282169375134661625411447042373605375064311969614840413058375758771039560161495558758677887033030402979157085762800687625705941475508622152877424222806638629904084093456028234907075119267979148648223904920573909218379976824327826981446071823121945545989888163711898579588019284853154124049778503667478107474719651421216283330050555179265547473598248005592084739410825336179932911492101479210325191960257719570862944557109048565939933996921779308582182742115479631709989118632146286409616542546965481851193023457341451402156577140710183213367615514519521688627392275364412315420813011451856324764928256154705083764322953189562997018562064153479117900990145908532332853375026755863267204041638755504194813033175139601652332915768007817104487084404514127381400716274155335232044203548030494269136014878316881958099192477776055398786567313224097355266938172580880023164762644647583565190157534761647005438318297545827731089850139550238915618071301849042337980273726549935100917605296282174837053096970982374882148329681996435368817519876062897710142165135849872691692344208939832777878172792597029750033542319720392884500690936188532397388948002818218520234497579822438724773565740309394548252358522586662682806742943148561453099518507828717019699825569628148969886389183876524322557960677882312656977774278405608237969037989891285050477660893388192273458767504829871053638095926594015780979977326348135664418711641848331100888167408525413450080722849461273530295229395159620133580575629273089764148435331180761482559835766835636644787859277249912029929094572099622715271820070016292359179892555368272177235225945834554381085652699336538754619682466905287608450970418800591792504107633224267683859873897587829087967014158080085913393614054745412981872423869174863070196088566285897049534382131288211681002182633779896152430468944411931992604519096524299561514052904321570203960329623271500525524128352138824943962316708453452387230042775502112804511864259182926165020659544163183984479104684488450923824243580333105060263297340811967766875144081959393387453568461207892265247730628978135492398298645913049881186626222395869801856061109957114977055635222305623491727620738916909783206592552216797185391545881771579990699713719072860883563139938105862430469111374051865578909897737975823275121082897766688542055015283222436987094928809776942791593736200630111319934723103545234859697677603146518595534261184620376068130416701554499829037072281969165276052497103024454905122880182100450012721919760655337166869824508936737241498915110246270033415047261844847875051983030422820686584283782337683740378626764603601421869799809372706226786886487078653096116081578702700687584622593893653305087358015440047548473970958341608681178930621690776492769782778013949779213296770568029578258734612956170492394084024421633145972297050003069980774812350873498763832057566568675040184326761089001346958406456373482043761309405672925560833072435402123876140596686789819757476717584356491602592528483902632235697880381135204213040669754156354321575219742447760449586288215343877105631162136728222108544112628778228726581137864478198354092489707599560099250860301509161352487448336224225689311638258730076028984396814809832674047572159702221876269133369619002585035655616388052010193296021512831839840433707765474391365089301401603300535884488996058840966345235876993543628613992584832338122628769924485522387475813422091392879458120517332502055858023006765025954628923577865079309236520543980976326833610932286355588004298881182976932023665169975428946029265730257977765437628092030840101913801712923154899175058466027329679874473461363053319550542246458375798718359851374004271437198105237720755887243830180047407282406751102216826137867431790736098066816764040778895502172395626477465331095269125086156429749388179920571658803836339072875912839897226047330065612447722337956312834523087561907721574536452922809957165122151630113659519463130098234491085132147375065257512230286604048004160376861155714370671624615704557698579403059007996665170631033658581739222920207278715223888419278164733223639419303386036218025365294683459643847549403162976610075296511637962415990995299762123616459380645135714659931101002720950696337584989461251853293950269690549927753127318747477456520218444652815245801261040330979818491082669567785370215486305196799195873331305904586324515221360120704284002675451832819173655427267843512826629006547773064747469329033695138646470227166658781884211571360980974119707428173086840422592496989536529990071634063315455821944775510707047073578987804388889903156423681147295874553487583196884344927538712030735433878870081289424620440215490994276449108521995113846449485084420008110904442696457114829256140950270664125359399080566896180326376024413595494118760814375404300834446029285624034720005859865980876433040677900977964439689803674146803203082881632078856217090524710798063545161374736800116462823474687045738093530496072244275545585655515522415793688389186790276314910328220824347810833598456375435978809081115053264741689996087946605370309253255240385146555948632262718221396929667476479833521160419201059352675934233191863259324095949861697494114419650168833311576329197436060318493230682069458579579489176001918891528076752990465554013608225029208015172442881247286450370587853357578552831482584398027120692258521040335372108517994033156037737581284468206753173619407808204710739460602308108203825022152277906206548893428190064859290804290920934730617165701061138815621363883848944495791574878211537298180985910655320522136511079247029677272906320267277940699845560241004039522085578679615324949880385349016605676934555829455925436031382385637224038729302813979403566397092597693195200874141382007129487944576819069386555633144913240575758140093437510809496011211199109708405787068059672225425956851699101581956029703700469027110130310540928331313096504327876737464988388445959905915422728649094531918975800116726007738434265020577528646710907358106431239721214346388068642553271850142340748818484502805773493199882298750687040529266143297228163623726274042954006971316534226901435794896369144198575301783909306624741355012278977238982510329845790134432959120737855037609848605860561648268828409513912544295094306247807793163658783117036606073663881298540476226360191656118752450009360086880212709442059983169144422851643843553790550113838546785975394767900878027182538332486447467850355643141526250270863316906643985733252970211232829281790927544061346652762992524954110116428608435040345136776338625841455215781002151084156075851066969709384166856064744435547033528705718513559451263988581700263664366044637768930607952713490674374460725192544649258746918717950891589113735501135750596179301540194262578596914076492021010982095878033981811208195278734728615729177486578337879915929476011656846029052914855356295759681676217165247311936089183183634769784924099403556537629652314836383821018679329433782117597457019480227591190580018997007679819406348417423008121574015429086014588600407077310967238206028655304626818440764004359553783792365620259189952644276626045216362549871605792216532348185114440237509194037551920207428113415668605821109452646934897253823152514188873666192388635895798587257442010814095336785606508222780133958287970539460440669816472274961492557148218395419444206302192294491663406690748912481217105010353376727432326196525202746363970034608097406189083357413558793512874188585994786148349186753475677186644486779837797264201830859696356679232418370289834108004972882172766347146961699766260442494349796512475061691176189808525909168668512600541854623265989947438628342214920580324064670049985493869402686649762117260657788008433872851195096883793213482476127929588848242403207409555446196166751183113755322428903503266440813303694967011379152715204900812754822075719927433303322837209240232997637349177269633335571221911971929596746838021177258246854688789059111337341635490416568558779678171624936222842943709448497837262314804742314432127447232850129344943405362912588882098478387242011082942612817734163561620160994496930099613411193435970949723464211808423671509799952512858839477619723778848584824917417038962873459858700647867997487846243770419778940005699282945783251602050279237744249795567306064356484170392710184477051379433735593420533300290792771770076928832625342850446181775789319734168558775795950486573697421978078670891089888365284979708833959731234909036315379858758170334887149316931662902032702651136726460457369145849490918927254265742048603101579560538463205376311336243539826188205977712965487040285391375167087940910534045173985167625958001561089445249224814538884786328025391214175219431180723923014800078146044381347268693474571042646312986090042915006629670757964874351729419885411397044870945727641587106654104832968939396238315981239753565151767885759768826643294781461762343841764556321632498935857856896844187091506447103478000837342186395736389439784549401898388694039063792404181032892387730397622503578571913582900525196124602262945831587067960513762791017008478615268624694383939006328506518206185503876928558948042096126619530309853551370324720469715785362805445044930255833223810385042331371469035993991788963635490443525883297375829220725444641932489209868838255377043293939124114190447166832317696633782895430582834093694617111521929882197941985778825437164918467397924871673490850412442120114543511956531689785959214906292830535632250150134410898258900206110987708504038104819542811717712232153159768146192758671417460889776058073672223594552823480826049983290548233895185617767595280023838654885214275484318075000860008096103351022535719825766009828892481898816214189193638898191455055564198928291582880187295732671689845198119237954660347070967341099486711504579093771781233059352711296939853628406383205677935203102089047414069952431349908032522232613379895321460348550366332472147211630013251005052889060345296196446598431615489303621570679317435006584195420261769288684744683846138629817990836025344674561082811678592674817121940505285299323373751650817567953857228343697799035242017569532742582936822695761328408972026873173568932445839943778576120824460363751225832828386238788401621101114201154450565370497591566766317722590129264919744738662039823075029040009896759539062636215629630714610871674979822247749989663680042014413732369221401806464959421061774910575504681477716428170885891632614209099772855193535831891923580760460987106813557630552092484487351198384191204007558725495061714928268809963374528979462618796953305120676517460237561062861203416123429036993533755155770415457279834784763249731466780287059713215422886787957188967979622786426438312023807590914075700488510172577797284308631259547174891040344097170524819115778610171429520714341004046133750426717129887408054524199034754066273479931828529984672022741937745006415579630621988130233614111777980687218826147647942928864229573497947246080132937650150333697286596729481971529449239268907191567967505257204058280926644258001044549039639419464955917310264062566451234296788320351405450953641771999723769444124248113163552774936895150918352972104037719935122816681869261974801122995253493160784241114583049774384786113822305682878691950950334751299240524487825694695419761662341837196566295636738858254394587714275899836805973135102352277080020259710062818926694663422474768752128713401015307222403138294846345011513721486866702396438162363507920480096830434680655015772128687657428612925263218234740438860623492384967903552936436525615413828077073338346837557401005384785700562303978467785305028791345134313257622341767133945083041013735672157925971719594051869921628492356200450806297024458037162704471694785070638638559786186380087196278477795524140336316099922677964098460347072692087534518447367320889768192281908716354531724951078778264207878989751257271579970169073457128826709420552719525318559771345214870377739213646240112095304118923581539259904366472055272577910816852883354880585742480380534321039702247210146890817842786924171092093895660370825196527218525419974965050061127198774182867250370560342896070676095460813508617703347465749348588768231494893875928783622924610680567249820869236424571109009142797930635571678345727534541244268595713261566455035965034999474518870551775320087784758017463888862571903661872098568904085827859216155859937452670427332356805239921794867434891974474283284137278631268521719916365273544919845151683799418639845507169296934374881916865475842199524778240789249436712708124564044871839513111531297204803707455288881826364980369880001074367874087279863605563720919931892955085977621310905062618059358583882524254717050102581791353164265563299446116068949257876360877204484435168168168098849046654163322068656429900343098107653552992141571231312259871622643437261916972241255284047366115416459775592775668931071617292532720262888613632477443714201167373128016604993510316726566861565955060067974350318709528686792208312425304930142723435739342502273262881657480288287087102561861404910765352875130954471639067937638731291215966431081924506304973585282344011090718230316046778541777108286320913772451575723422839407654739153151059711373989380902549865012941082157041434232757770494783229561616531680266480932325070415532336362577132838254226040211904095998503954136470371575108561158027153340403908820838525007017567775095996740661476949140069291665823533952424210247813327767898434550059275558228839488719648642308111063183624080441656907774703422119538647584719369626417554453320728499420854281674307271654436634532510397118341373999294002667895816860788406696756514730783059747573947570045961798519142696103337770923717566854339725061542499648556620863965458154027335659087040647454835065318520664699647261263993449499389619650394851692904518947158764417583426804863389747592098037082672954917357399872780347826940692051359803006539437388646865921669823617208839501435120760437420754824638877779499162023109736952487133692301849875601398905483650167793574841546382717883217107596255882144979782491561255222511877111025832663156697067945866028167121184058472942422551217890054693617768097940724150720965513745152223337666852352490130325396179051230344621812199575755673936236717369202033567475513409988223859952901909992879029882831428115947624263309572488878055635721663117037976811563902781691586206628592729457010050795208492439935940677946581064257758278790946381098519643098438341971233324064575859040583711276817245005649238248832245539342453061820705809059950406039499159928768447516519443584269554121922572923313124434323939569087191977068764532489020768791292969013105870751816826913717915482545086162572903959861769679449763297619577501531534954786030871176191823843609796317067166868663303894448773217913000035587382740720431903075128317876386057696655944888710079433624386586871756663594142734608235139053157359772155885643357670862905713063340484069196495217275630059850052666854989996846149142123517822567203416375948671641593977388402157193267876169052238730980818652604814472194655630992543145299835999526881461256562554551336793376185581349906538096949627296871734001746562534879332471297579112142550610105862488309814274536276000040590622777276836106282857156701744120293448422695743159123445765639713459005097415995323284759708553344771543908639690485019886092765297765484125638646736298005058005937779321690433005316797568994821991431433843514347736515621244156637191654413909299840944980932787758982152547256484247702698138767091086749587862148872513936993364349756735126045490121177082153722878895468038536207607260389242519820826968479493826242759435960983822643193907489986914672247089309872273636602442514739070202662683826319840819909093980700775216635732559211080363287430463931898006790544733360241283668181273638825760938471188702501780431489821466179298166766108934018678101743840934992741633086627042055870731205108551395374904651974100474896168404007536551588951275861363614005766060126966468856500081421769422255262583220814727522207922182927059883670730728424220519153505963981646304803545320150897369425684503303084504026195970898781215745303283448037366608971512647798652211117393649480040782173916677147634534457493396632113167009551882463734529200997500181616618794102227855938685766918660015961779438947735239116985803362468117806220960514150275259435932912774870570629461577401798065974925496879601429193922489582252855457218194563170730637301338079503244088544318957102404753856860735393073021903321138881459179374755657722115148501918707439589308197634710434388184460209247387532609413217888447783797778277437408354824342264976692573534288807499639368540625862853714766671995146023670265131486534277503612630328242231927668533668803201367963596893337930831280607698230581419014611351309642757026743237263538373475372555617548617518709118417556334163811368709336350796137770071186379916747959850493974130014854549915363217489915954559284007017374986451333551687208410264923684225545212011374204378268508127501387874831299981735954627790840514735914161692130589215694428406795553303499925898331500301775733724058445494954223511342099164203745656497937801094638985304780673671804891655125918712052685619216690206324974744234559518043536526706292746009731400928912441196125953082275577899066510179140982378464634684393492524558434018201823393071424817707066625765983047979485870312931757715353459879071396556512259164753382913245260234730403307030947185445911020281431011363039740737665383749452634722212369458858582649291622822923997454696708186664228883440697115443410854576196065598481361404362030102984861789818066448516550886107111694664335691873814306937966690399222064987977832790528302592707458995697884017319336374258772180835966747471085879899056310817104824960178514595736165368981201721493881541721733521063172872435698193506407478120177876332379482059257207929788609371157943428695585321335532284588647973667350922014609823392881652355956014925750350166081427856901184663364094202988653396003781052136811097805571191965778920634480422507308365100199603285254813004127544254446077499347126560953244812170517303754809140652632364192371366456843692674200116544630121385173465542935366146165559728559999580229517079491914623110819054519928966546079947934803288109319915912118378893781363347673119332700388130150106854402131128477826678780044439178873426347208483676154978589567717195057535579090221106397018999210850216350136704947568416830631518099051211063784517230732285175206762281012920797847499481349615697430036220185267272299953959042911444453113140373418349040014670827995003177757403480660572297781673888818572881372870697698380946155604331428545318359691204659130198370722822193039496978878692393495125200223924554812789676657256738737740812686920220390920469792898541196228222739602914509421809079636353019779846906922011668599506819670878218927707897204292613804178097447451840073755552926750535387492165532918705393334601487511656494033237604642235395077768607400169595601672393430890588732109792094933578354689583109061470003951757353744168592496127407599072774235617137189454359311166490817756138319610764930580866366922897872269122757678744276219447662776513729918096234652420868061373665083902516017609028492724478803604225089796143270427726981111680790335048597171899868145617706389302139138643365937218928499421772976666095305555497765822396819645593999365897861439916306644441916218671523614539204851700521996845312984243891684621913351799126005519106005324856613843728785657029686593786687644020564708089114596231839655009867104537747226164131342467449791763499589058013597241796037366170225921409241688357169214888487793065087896251369745204376782819965701144730865733722045557745426115956287428664504564533213726214672209844519314084596033088510750644214005311799876014830279460329429370380352217359691429906822294341920710798177601371241399196207436161372957808409135097362189047385205671434764779623528188287816101698262089877985448475412491329661056808694254003328700981508839426103277827218697956528712513200866774958397099343417624134479127907195686756501741169978476375553884547027164818044124442887195849242044701097020006704937043733148925762237740163251632006427100670238883924305169398027390333711764704816010724092099339815931564866414575185220088084890771675689405447113498125681355382066320448997829029871580703790626650314218669838569959769690885193536485830714295234604888200671013272198856862202373988712232574080495384381464574577563500376873000671030855231980849031805801157972250286755140229047017085486372361773851426968219098810546304814652174406034625268035258892658109635721166751953685800582021450593808468205656516775193668523154161655368940041711688200726573405346727086282618644347072799271531581162547602500258863675768547665651710076270043958941215953219257735290102500819269555778062372741533145848022171375210348452793998431143967724590439723373279364815590227619848290627680143521076717730072651478020671697098100586590478760571637460590054180669815251178801037348712154534896412394696983517946277736031957489757725414340190874347421128732257105669955705555664232895837505567044876724534049174951000264245869925785194012527081395511382987947087678207239256244695400295390184513253457975523338128888278915226615821515142302410554538810081168978087099358190997612599647551529269570044696592761178268185260335579773017201728616324581066591917269986021685609569732309157952035027966034651231990615218373156568143872663684653922374520199461198804111212860058296646352888233681416364379756948594090686800829299293307064133136439496567283866639595225087641271950533373583477829450235473444829388859755065441501316413682733808530003319925390774447369041205826628067151608146103319206210045098067162907788032536393690651731628732707522419679428077942682972959064905289683851486836100173509928642423325453333482943359719896314899949764922774899894371690540695601916421429852253154670117768545635119188689187710051672103609972746183885846901849872508746659607149546712249033171956419073073663464682512894960833690512594073745175449349589176589235718238976778986915721126283424336212366068436294116475063675205627819879298004140765161294627816930874158479843379579701910565579771996701893314150941652704164709149038001792376045759564170362544859186190278356122425181835924932052067860952623726189598462476431372382471828642305423648706986294819170311644103520846963322698465981394609698565603789333777902041138435011185018127775628258471129851412589525820680554850003379135896130416267978670980415872833418598439042928621069889967678944303215740568362165925629052559113145135385980557843100415949820528313876572238491811409102839350958778282704119497477696958092142446945454722733807951427707555772330689148053782717411881448382187421239320065991134438007429202190253820054909174289449444686095589028639976100877091930187378817321954345187286102639063470805156542448155394498731841845590432306029649309992106066344894661123925099666708325522150550003160063446540876703822354646029734425559189894953500246135530360310787037110033540422689710199070736414162243177738910942841389756068261314532903258535286575856738170386790880435602190641014852767994644486592514270841136482621427044502470231882672408722921857379688746847322608999768967174667010574959594019696646608102685321982718973382547271312556365823398023285536539215051894217100303114222907303426310031666789224135127796944859671156232293000470100412144055832816504702327955068997043754926971834664148398472754652652315699670202669054965617409606104190658143877433961884673161393700964955248431293888842018860287511514978642333154409158069445060776642128188597903425722953930852206436109740959110362303245517286085449424329419538950005151759094495071153344432974242650741366880123700488009891756485819719711051222349355416024756440678276609216738666267382355963207850116884043953450363546207877153866178831277800063636253542029422095698515811876979135337625143505919137793668089097826464857879072364031675212061624925033422010520895262807327461705714323835599027792984626861458486441320971092001393563501880629668455231690277230742398730089869120839126418019597023274832703828279936500657307811855752717084046441204166762178766584090443151279274953684810608638817656387817828737495925329613867715932297482263970961458096249723825958506492789329086602564158606806516369043722862589394555281855477733408246009242522923490601211170910956710157805109368915439270075099898582096669646622341420894425199115720958503976556887748303208635905791698326130227413590930618048707216314097381676153367450696608123150931758989749436391355315697530791681170533506595441616577636391931774899194337879367951567205973106685012033133827668235073668916628671096264202259127305503212734504002040346674838259292820422558157551826105046020832108547477193657393766942543695508498950868484846591496039996268821404625133541986884425304949281004073143121578029130468074953496126124024665035314259915775563170105058270135915123431982894864066270299377977735246647923104086687704968360193867564765751860327332232704359792346488294843506786206091065898522087558068600516040975102583432202067687253472923251965135695953365342413885051720526399548431975570708571521622707013183036349269706481005620034399420734960929862298806545939993635594711859725374977262205387777840736915225489066384016458026133620055798149534275699761494380876782838363836309564160560496438398536280293314650546273744866452681638720512089901987147905108047662594340093096647255153658546243076857944558719738054145109372721204616312296521188760617909085166778847899623098614928164244118119441588949393952114464688471034035706935033886185357312098754133915769801843856089052457934870356230017035332038562076158998509729459557648499434021549998517019277167309158532326016659140782289239586726210773330764857552488075702076831291231316273795538596955060431965726369819819664433455636001293532449760275004855486867709824705834109656366132179562839714685216060160870574195455310059433150064845396574281189893198148281616453266354789145342388285228376838288196582264292594979998147001852784298996573016622649310002584910126717980037648525559931979026151131679741726127586350606589035907268891869288529053268862075108879989395493544725537939889950023696329814665282470997081665460642123340276742874084950488845387730174693137409802917453380985654122898257254623789448163355365422204128315483692356712286108807814108606635038905999223078768034203310285402051593808511729556780160675913136095801200352781194259717414946932233020383946959515469053881720202410629980493378261240477095187893820546755493630178818343907635280964502879848630384075673959165710329804079440964365460753439637316630132708414825888301922282134287456056681318344813839438935898094813261587693623866001672566634016431384016916439111896890376835215238469983730791966626800261898006185957959465319058606513467315163466401361531276815040841818512044602546987742384874517956239739882427599902330600375727473846577040077625944433258239483478486974810276275273445648804569012183435981629765510796477138761021453789672462573074161275902520624323809691674746530643761096922306904106968390216916450791390694977639804011694948964004477717085327014320581650905663758704026915498282788542764403199636287184622577435098785200060770331879717102509635268634873204491182129957936591188795014324135890224234193104463159915569201494147391275671643109742682749235781619293275972925357324861460994631468553317273663062145544160871915950896880852774508254685708408212717488681439221832985736996018925154546819194100596192863010628091286486189950628002674754122384516909371144935175853897511860072455898317512481746750424144509967826067069164849637412018471140095585048689106347532328338013090199071516185487772107318203577488692581893273211761014993446352758400264013409426185826717439959554694172008566575739546769705501922077407251936357783946683473705649997394594164423085075051967887379317280064195829484524531802719502470254729779874592545357344594311644659757322142457033425921839251466665185276602796352012460008975224693881737878952245208272301943996859314097295921455202593721971016832914147505237976437026619700628806696432955827609887173231503551657323356154975516610676470446417820639006101013060914965089256119546585066110765372041505570322568246453336581549029101795778481150660220634530665914292246647713939294840763246458880954286768846523663600964857673277070050181025743812891435746357138319083946908750142465229221256487761792325903006342917756124229991545649732405277974812262785071452236592709225157913539945415717034607323873421491690627833222280865113910148524515750890100157255896360960160708991513578535728372408818566312755628917200310761198953837200448978437624468386100120630762829460029232137924075907816877977477325837089910095943594227840978248828108489549027924359384423034281840052138479249576983398515374480385920564556529278404989414862816010291995788935758420713234877902790002630294769117912817354554075403137331279897514311437746592598453596911740671283427117879427373403438560367045336757411374944104848716535801743208262122035398545451148688837151522053065658947167900636651009547811975039868668039039115827509885717834456476310751543007091254065426700369900792357424706960097988698572118170212596114151330904850230692139875327591340259868461908345386400866423347574340327805120943062763008632045687718254019037770428246394899659139660450591566584789055552371674820855301248971840151911835857069329863817111108692822959290668016534882127523252539602069889405525735813679106516065988356444876480669301112193383385933444479761157757576109845801885826442034032019899759489079617782868082273585348041719461853627488626096282677877872810883780764931903180825142293842281901911414026134724116573456011731286621044422646197965065841413632588756174427494069148475019725337037220980000571866027232604787838211111244578055662868837887575743811984679141069199213362907476481293646330322268036203664018809050033416613030568050776446503497698259171256451457917313370973844229580411734836996133091283711360872399687063419136190222744784584989740972430517045780709435518249907167370387787418218434378850383724670874580146986189476827946679665922587713433755021359027627632503724961528726378729287609717642996422289766900256633212543074082671638891453460230284940089664277389536358045107195485427351718421602274012766356752823655670608995843420368983272773284210840180736499410503942557753504677833965108270097855785024847183489535080518489775935773607207965881935938767131635097657999407085047942219928522113189308481180940103511588240739707026603048608555822481823240456224472427684320554198691041024324863737309326036605638817918269739505363149990872529224921218064040842618301008265417239982915603277651594839688962063395262815453237880080979115885472426972167844521605819126037569186520966348166136258864792420456401934298479191313295962301919151390684627792629771565405278661665363165727427074085202873621445263363249528596520956575036840551295388791960302692527828973583657740443849717867459140877362235510904623700222569751526839089976878738256452522500184470497734248912061210401952723172568014242239682794037372050779487983481978294333109064186188639337906267135428523793915541977872480146420949323282827639948032141665708934971167914264596526046797464837738674993987518573371855771235540403328570828032577920244536198038130343272101174115793926562300886449851265455653994923221542537890916204071951464539207220369130738891044892027914407275965142133905272720317400537722900424591844117203591337287914241632581524292268706423861760870483334811234050820764701373315105723461271807921897614198644526287317395926716462321168983090717238157042365966250114661840693796896894729131572092286791895082622283569051026692111357271754871122874378697817773559163695563217079006861458209017171662215631943280570189313985920557437317275297992487474375354450620197587686679894791002204043112837666816459014594702610226402027470611170490293711692425212086100631434386485521670795907529152162339302419763973827800230132998342678513882779433687611162337076787709537304958827391087067561116958497744569676362903376014702247577758155102671832781019043931077980201728985889536360370493131176686798009214566555196721923741239151593324012995634329929669299949182852556500495315525678431151730912226488506661670019537357513311080069653101589747548124482309199936071549136701118548435859661355078767040403858613187949051564497856487695006932813685436298407440621088871529785529701523545512912375045342218322762924065784897494300225589803845346729549936173608518844449713461304703390195615350340745767196929492698464119222705802535675815658231244064239111113825567991476310090683647802279582365829083280223519582146141370233187265635050773826989589381567430538456760114037018755406882839938576897754376191967846074100417019768562491906862622376745231577863396249762462886837447802246702116248118737150908351349314824219303758483106140834085850019582240325826939020757772578259748648588132178690752844876364406729516608457601524911050929021934811262789548492105597803857028966109464299857404514672666923302950662304111847335021419983031660822356916404442320269002787278411610536565254441790801843370337844959894913111562434537328005878754705391314221951281543470305784538755237259751793851325154835149981571090872152294884469502911770030663190277569567672019870729193563612709950791151550487773081194689915305240631469856743333568010919890352208479363381140147634849940205349112759387443251009171982128380589086153782725646886381470169563406883465857274135250595070662332117063688698546265229787117637937618363848682309113646511665790316983377203376266254526912770962225354837599098772307336938325548643331358367902477785977746352544751994647744585459198982598446056575923895671746991318719451269424182387710532308402712912072378566839520563072144070989228750864665391670492056696008142507829509951715920531882769538626331213699511147133180058553313969384736359467638148815495147817334715451584590690210233565178540532284786760575910993328283287879986521760572332783404803428285876893687665247285428116652753020544332988199411236501292086659695531490169910979519172927203297950580992693057093880879671344524921192904704261112081167527942950914641780309214638417660149965118512136887215769073185671740806578083683381610042803810051058498996567981362432055647014525639393461833296312706928982231329718393636212364002452794329515118245516161270226540984986555305264737651799084970904386493855941519140129219880923515587559099497434011137940185037817971055703712663214027340805952542587225243095506931828884192821712738722915080253445559122959223207387236100146408871981216012407450641128617597013992643352238984761226048463528958751065164077788494725613886830078251756492489580602901914258737006854178817959775692638282057407064589535293170402105083851096084179865616776900005032869384986403233497588436482252169387510656097023649581264476556164177662692733270766905023810292013687133240974792593173940005616340961908503409526949024115747825997585124215166560754038677213506181957013422621257327930386997556536911132070364611542911852640467409214739743101931492307244678343135675844734222893096174681747440551081935954298053253473692214600110082275941121660341608736977018703152763986977920367418334690481011499691211979297274735058115071512766964217399623442608435347927090657615662255903481955217903829000659963601297852984477506211265338608965837287763466022612763519596511366705549637676138723761553134960075533657624142440153460732927972030707475436644887474022069014660067522373570567807446866377209248280471464983859575794482294076902129753514228936865879298216258961807403236759060689021507629157170494526841219405096860382275254621500840499315958371043520177145624352809323371385661258391758349810934832837147686719896207619244996949832307258852945808406891516280355315646080487904767988537281108212960662368906409623884869964761752425309360042513938817630982077294670110722474775042700142702894060369740575956871240838925897807410432561696105413575610148317158249510204221398042447812610029650725600059028225792962864788655918229314310566898754264586805441972012054337369533443921952992024439816391490615173625893251562627995418795136835223195153071180211668046087855425997558930213653732917376969719031277771269181639541201415092342561450587461322800104311040934094971546945028755309048721194145353039926788974136996385900971898836587353618470291468820973999721345227580821249747216623591353648939872228057774570509111691944212176912442059187169528436049444370896898738335892148875234155859029702691093419666868920077920636397963023076121099631045685347686786273841972986368001380804067527450244839692075104444116274391518495641983413722160782622902795227589555807976922200751086831735857783025729756118069197303610368613814789426027817576128361337851471161208349603821645190834819048266402832566077289616221532833605168140071767294527740744630764103213604739265344676068167778819072588557209265406445332526550058207012952822052056965375348072059345979029897194743391077083127204108544162076378992883198905071181726952957587621739755978485223910837646433091415302792757506480562846746009447386203970716342837707916711765732567039949298317577660324407586696047493562554050826389450143517903495932215183957733795638351891621506648790229896793076092361850688616134412312647251668383233005540613302238060437891753389311112673482555964491140796028802786312962131844599473719138671955172299510197521986456080093545819373844645763771685543550806682644221700833493866143813159950126467726071707336016353762992431700035252230239757293088686631821635423972440785041560594311372548111695839855761648102235330790961607858082425065173718572556746317486427054848693469905429486323691533104585850666248421128018934247129354232587541307563594748380800103997705617078125274564569740989679091389103646476982545922652349129392482592536795230450910238891329263093588498301567075251853846518799905040781371265224382160720920673567952460626817506276323455764014840582216949078541513538362683148577383534943361552839763271441603641718266244728626769228228067518449841179271352967638058538774109710604425047387555120555917119781657134517673772962970537938079131669869147908818043545914862997039330764087284055161808070828578947336790749030819032320998887765287332697797392359658458112611522389885540859038503395685550481462651823073572172847438347261342093639288365511637800371698955823846398573149410413521487937998867972995461378058084682653684278070508036413290373283955848545565780015883040080394149868966659289631282696165226380775622011454369851244327330074599314131733855100849644946976726613848180923603192480074078386488660010767063905192909885071559755939511728263815362174768129136569937732295641565087633978252847445328802329214426309145760996608076789041791364651655793354708434459001425901277436628636985699739730727274734395112083244564629477539614639697728629275681382989513283676453555720754023868266073587401314894392476768969567480622213304568762958117264784937249037806454472230914122123081248938154146537837826406325397318543530971233843832150404575565434378166533729771326289105410932230537627999223979042669221984717488066025035958600719610461683049262599257473530155253813494208604681308295398389328699372579228076659218201093375318132949923930459394804642883435610836453998464742975839843672970991691104109648790962197776147394451764963966412872541921324664194124706915305732503610224720485590376666749952607795739036609167305025033950067997989856812990673578225437883581016143167982742268993304395706068091987021170999026193099042017238874262449830851846287991648747038689722216016224844308892705069892916554781214943017095214939592965730679068189487153175322248790122194643314061376552582282453134217922807865337838388770054074100467126870979912691761947871023025084721164413904259380660586864256047458963894476341694655188796028449492302604637530642285069963074982095657258362140319541832161871692516935739050553197454991996023183709902420089647095525045689287211599962512682743831807720972020400150820434510265969714926584306233170394646234761224142234060268429307042113406332661063938924356616322449033207099824365289968743624695802167455402750483429375466810720448659315267835559624361236177996147490330423922952617449186719769870273279388816470190281461896300726725028177652816413618565380366274651717945839170600552786665344959224545537928730658925309649291360640213331404608934360660464388899383682565507948000110455128512869922236355943115842966498893648468326354008032800389107567948419592929071103006964103163888354988986056039450773150745783212353931539688271153525302250955146895704080461994082912981974078457978413590782187997089735438292088626081649342488153432713163509842134522952980085536407297198045643047055196067960260877689565636503985927451169443112675276741842038767463159221802099878818834180739038483260974515340604218344828093242595327314472352212850581699722933740002560556261968553093184965781484861067501394411542574774556830778487783699433160517654874339224017864636145753107824207914110051872761565146934244859545283096058841357617522541333003382331648348729169862716096601861599146329733934840367900355341444020309497222192395044585160786427911878827109959812383827338435921917669527743035125873193273252963654400682957156852590725146074721024088593282403416091520426279419355066789903757643160203690100896857422696869920524688569918775248762445738922921585095649252563421233267954660607378528698089681160973601928162294280008139793023251729733435249515219336132112535793580239191097900947638619119241587694386151497057476127043309266312888160043611265300240494564631246452870601401367720240622572406503933870819604270285614052102893863527163806471369426278682123671703346695102922757547682450595825796406678302934281657184241411855300283958104657210981233715588178660666948262507663870282100087857778041373686314904185363039910530819939848519112721429989985751055718417368148061511777261314946570508369806477661821839122449850866336803466095375966907667161765679433187630164711308884471279969154131150540152600430034075895652221305385836156008587249164138445998945590261369582754376806627278167892687255884366149287033943741559045574595152535496926468062357636807631823026164364954137049081859940593720912925397658653598191621143371500575131630741385107182373285313137556788684855141125812225332521892694891811535329815992507155551160161021256489191849649242215901624256525187266183224519696982525739288852679212482062463681635558865230339218134736661759978493604184103416730094948528801307105690116662500614012785887743368648006184556771861191752927381267267007302929744037539720667506595834954800931402264306085848863025578951772953658317605004134412900891151161532454061423327868498947983325888026382212795994076517790252093085704494292658198093480324333105310841670667166162921849216416409056546858439422095275371026564341853764584085455230638374634695036678319274205595602654944717216385670714504642625488718801362974316598294209207040282263305395443491134864753916563430268172819386255522019900643420958167208932558496812194679789955395007485068868549912287747442004821896724778416787273202111864148635312527903070948849883171759637167609417887791483755352994503186388251939119279373653503604369094968266560009997780121787894050035252806719541013740048279558161564324930329101885195796310299070882411264909063470976403378323263868986822302047953601301587273887807160558183985939058948003437836212859626984272644583180110689188766432609826244619431996447291421729693906557252237089937894285682537865556445382682598080678539807715993483715026931126878647807565918684011472366461320067016241224926699913137741231802379953754884358619733829067403188915418749015989903217364009233584768329450881415996925697830528577581218740680772017342592562270672740714399076535423660779311831991448449834853424464002068311579560228983718037286868123108700923511537253500365755894127055492174284014529456526526761359385296787216114849984313118363145492348229972850181789213925654634118847686098335853446279841268856472307013892450182926661721524891687905709506154203394271795417755345729406360668062248676561603574629134355972626744965118111919360982304000703965439666264281490266610898862125626137736710161501613991878364587496324535301571267597331706478261469403814819607443888911033451712451985727264641660728058832212715098989089516075983507835622925761374957493266386617598355036425728324127549228000275114472249840393394804697527883879684400161623781943621839528949760987707910066200127464614285156807834592589645881014083027445766372159398300472244714886310120441232965129362335033938491623868411560193845202199226834633253157463630445595578354910896262229920163232227398078809939944849627071157738455423952910708817624739619115326747655585647477157894330483398594068718354366517538249410905666068543467145841866675865825910170838320632907109813604792489047425144388593018186034659790552049502827120703491702652259043666314974093720439481250906826576876572337979249109862847583201115576648285449357294560624955858151572859844682482486963998837870199705813765111121350426403074375916954146246822695520535720602757185673781927271926122458087803635643975181200261902252286359756529780994734640626769199545906761245723665553640823229317085083147575822914907430048994560151131948871841682008728050456590956744045302804845232951325084331414661548962944930284415207622631817163941201495796409008018833797310788124520308296390162259962161894123471658087947082029721558664051552596769484244689150080125696867525711997751838071528146676478989866679721464706388427050633952649151472571246284997677409158485549478335696344305323585644372003594114380623061782903678944006382876208577694017496620297083132100851841753553448101995090607728162753275454847942491662995867944005224260614148751479002987764073935510478015886198006336827891761628934655648926646947818897332683134176593588181371674551154081908245190622326551928700080685896387987252724700931410923830534150202849125174287520888108534433706351054905793769532107253448470567413336783022478450131536105525129568191016163484708573745096842703231039631729758720347322852142794858196754010885362628250366706494116435394080634776713461510763787831621967561207273525927412663969551208963301235838738760495987221316280369886133779593304975420279800508875241189722967723442228480366803659604621889442016818213408625729466256054808388482570556892172368237286581763132412078539328155695492694596138583023682818033562935561316952348513574023870419959668715579996282619393584594113873217121262454506886267336284328612934805673198660028986429324329151598852483745490932078654567675156019194671621743090934022521651202458972122620276907713658479137964076970555285970046298875205493246462755947251940558199455136843303253315707578092012605285195975745666711494979165030279124374465975674915268275043696814163469690286479035326339596341521549012373322489509264101249664040304387346275539107155453271160613228985177449674119534064032710372167191111951689674536330178181475096724863065290195977573182889891411721889622474074641654590814955446561072519556504802674517034028040734933548638829355584272547435070256808397544087959951441455463596795284785665163417620045873779414468770301570216618739014942323245701262095857279466121751548612709204789948567566329276501813718028826137370985438807373570837001776317901656758246356397119731657169320133802540857215905162520586658751486440353931084900118231298803859958691184882480599175102528792495043784448623741087907645147804429220004451854251322998364921220785257515403684558495377064618510981991409608921553183623285466683763690138649910270144652584157819107220520573782916818116532659599903295221022564710771620104169490122569437230292675525267674324900279256770344162555399761363705724549101852432773652851615995327969236596392931340104544827266593011512819708647535398346282767027850870195581456477113928951917122733847944050655551680160049477450098019892550852808972378012933363667657777955810494425162360435190940626346390828230230516995972717655779850464435439385900916187292690660320041454863551920442405935599588120143948197239707353995784152671985973827392003667582879135520392557060971917077752081525665697874652614583128409332459737049225929107569715289949771559323638809283198797328366451334022574475766808113615924523203251449599892085623122725166865261812627701304951757367646179440756611967981096836321992146300098422348115612908923788563240121359484581754774039916616952506728156843531700082707596386164391908488007621013869603310512933920545671209505632551723715329708023185233685331799798692402357413177439119732423704048985695015965651308896343666663475620260534142853137685179797654222525995209062550618441259082187369231571303719928229548010569418600262590889460732769100657894472093133482293457886749757924914210816041664133216006555398615522501574255801495758750154246164461827327378481738937186751381708033596102028033494298193292758728992189957928864632269499597595961174323921040804312493382069794958661780825768827882722468758689465861491121445812234078064205079610808009240754416700345167395910367862273199009066399686413036960996428119901434838742457188980172785914964154901642095051928355971081418727892694278524584880502754058804069193310830243639519290267828678021344320030150008634866203871737439441886398747141705052475602830080761131926197162248722024468540906794561084792737098211985804835522384659010559795695150659531847855339280720110702735204095063283884754230477325731777921688916717715523460652361419956673066572682078746314537493724668660692024870728927035810332983266126430556291117600859294759504990985346925146399046635371092472295294908531183665138222537756717275187323943131163773428683224825931784220945344096275141821267611027744655159121836582733178445857485018654706763832163737253361755218204635406422329629627703447934738678517041398958727567658571421859149374470809300807404605699288617086188693755709481830913549519763740904997124501206298267635605703503858094238428799149229963988067424812792832382207988194468303509266247561493225357478596753070137105986478496022530499297862258077998535998157745951434276744986608830376482517526592248244593416206339029780253549529825463776674378598434802539490889931763579038829530705288288958647154864723419693426735133985773044039248209925472141521039386070292725800663976463091788074467480293672165097173134973628550427550052105233619021821654671313974588697198852331016024890913908491190807820208096275056322378990164311322242195261787274797951268739852778446161279006249034746166961907075547077163003536995508628259079781267601600740141972070062248954701056431460299218349571687063597555544403860873448015957416455118803066399768960236862144701735426817717433852962992356439785989772557487998507607143993264463349253056088943207690273669047100523908181398225304826946445796048270267815823302883732177225014173719757582012042431308425860192825729735476166114403956693443843361552184465111120963559089726771023140768565788459560027991979555760027948205070074058075275108889559485295915677067664965143501232174781537092727335296251711797348030178717287635755028994764314297298418922195047002220662547042331681944368388473878904273837385949693403346246792983505198901283154310917547091557671208722615633123387439016296023217521598540735675711291416571424270169956725105266447401970609480072786970585864363945979276589768320870408493546936681252180707867229934280521185482946355962921571081927470158732837021624355669061124145635946479996649594679629573042008666840493614906394714174322678314360463323089390269005437754482447278436784465081890981993545907198257247709841535268262868912791208286311763706631852644321642937024579443815079772557995212227637383268201953648495526831113682897293563991319345122335226664984885359903083354751323423334757033630482460582405323153260700808011943317637180164620913084469331427770595961276603523035241898157377134370542851634248986113565525592756018548599783501109829024743409432158406714844334021612810211021814904577970395956116641803957100983976961388531912033799001904758839927866632886993580697488975652190375232386695338418979600306990279497185934822906596982492898515754783839549581647784327898458765418980109084183153178760855053489086971549219239894841859984961710098591624159769446429132394755267536287133892513333916381953479331717226749236810013937896521555913573099715682708993791375044164543522619835247142438529098628198698099635219219184348375932456237001461392305053238724080951180957774910522896745301868605002934058575531901132241133919108015967672110403988552928469754820401070517973337215339906340640731650724238551151230339451641653335602062455643696472766147718588100610889880681252425589416812024541681684115745145144874670785466119636462666898308741337224843670908822257561663788286733734471398334742470850428170040093091079168225006568019247397304340130407490567649965417837313813688721061956516642343361692167142296741672109790440689914060126676893510890803578171047681136797410340685850986653982164274114903993722687068314840585844194933888525510188340865681207039378635184405460824295529494072874552763428504441524643993897056880183829272264982754257380618440217368395227479300679236893224055433753077863298779702931645100680759685496936290171180283896588290423119104029392103332914542148120324113496317890919374824883134121969279923649564789051896077332420387029791719900711915585233755355604455693614399049064872953885005745397842865280297069910422414003677348933165376022331549875706373686965411268487150128440705988617770077227477527153469469069902671485099504598811918223810295968172518868612207652810744151487615683672253008181931664093082044306901308772673850932209844537663806662346934280751264262248599169497242870655413080973834243438477205314722017591884836580393930186745611714554338961871731132854055055255612048886995176038790993364517562476012870479253364589822995684808135764066582495749897714914571450519066995468663035234290820925346495865654300096875267549800521359868940159404064858527392133990749766839782802480002359089807597819120811579163342797385305460123916859193699224210823496007974840655481802787838895863059850589902641019134856673201426356765274009701270111542048760252268861306632917805773109949586002352726060893606768698760208831912968484867511132948615969228940837265215789049367511404258884920646368670250230996266840284560089671915836252074969942463466589884466081951460105972518946677272486601068750821966190304850611982672146144817134305683153949798520621022192132004507915920513368734023817542753068048618551674961585523729791033445341279162379621385764229663300471019196987220958874147705390916384742669931512315817065105392488507836913938254805607482641376703876221397287015283167876364828129488507392043876681116577001433238609895875166540589945048156631135146081842745900485783176162631305025671925630343991395377562586417789156205799816620092446103730093266697520887282991470185004954217960942904964488002626107802556295293785893407579436407134735036466912103249069435220825983521710076979011686566724470056061932427756929068053621970940445697214007532215167136303628534326509174837370835694057304957296851978630410118790225924835731683315714376475471676847623859661388159589221895257701840044013404423715531066812996275373690592772878685573939040084107004609181442681995314150357401750790254659334157816903316087703502078346104502767686647478735499556698810878783948901404937695926221322069135611698935447991264592974709442334677511094086716883185587866999478370958282084394964614692525750327426688997779424904855777187518374790314437165282489319096375614300752700515789424117869046597269810252992781191858525068729823441351165863004991922642911793798595125540176908876602578577702206420092938500680368601254385619903401213392156026944249858766939990503989534549040807201848938190898318606360410722171916969939896286346061586271297263911479155502502556192873011017311226072762373147756362987355990179640744147143741118177702480445498816563538132988373493298990997349806046922018324987591676654843561978174387731638989531973967150043832475509307629290184848904745633966955009715029774661353381860079174104963510317326287077757978075455271172503456008488560518603502166924436966293241586954879485021259088872868826035276407192046653138528605358793411727189288919747786984002341242433269866063063041055810709232929689055811945301466486127816825842330307433347641777565127467255318369208444875636876922652532723695050218594308978667553233975123998854449528551057364036794127125110490411630673428096920249906643209094404167703501488562288462277838679583032725713599696702958852751529187456342828503642991580377963359234258737539863615268626562355367110343065945557971522764486802866024885403320981903176904613477708566126632986753729968821088344296989135786120267257167366397574569401516227161804212579238942900958303522957245456264371482508106083870154358937572498211041503409942923039006202198215796279997350314296303364882668398697289535082798828175436609874471605142629996854778542123126582618783130718478592884786439823104945274423404351987576253976262573435355699557945670551492070210368995371302179807032514450541938717285215782526943955640489312452378048951701315826141048177829163654932044611514036812078522735051393457664441690381644298537727430535401661711769487423820511834986075778540952561420675268731538286865726943651470934648031614759855698157779447163158238319360760097256725068337303157387126918339841031958735396752374095495264432866654807818658207378419255564104247962972308093881432316638376084653350210056736628355618312376242917994194594329462151022288264688133564042103058200080878731208131506141601804290295250693061130597142560706050581598289496130881555143372327252222429395517486588798710575488644159896187487944594740348752808035321241361507616625044875591270502968568915334625313646760369320839612526490531033909676016037772623180177690888470149557781088244329576092784394055491768375871696877288045210804724308964682465688293217510070423848389537691914308405059701138007595817729881740109750667627161084680482052796734170143723044747991673932558811423750042564158751091238822566911985980602791278509072971601776638117924624934462402212354626859955265431485528609676486849418423982485642734383821224047686125008795699720016428090559629798537549635064999164185616665379709392464267310518096559795211625244055662223973961350328764087650181466878210250979192331803085144363194079133438611405223281246144321845563037158836404233694800252840243558871740653587852068387834851248000681826708292504146747457718463038019721970100362734151312996012138083226456952928005993010552706286487855328514565891568384278402401405552269022276483075268573115061189449036632194382790096621252016330115893362181012317434184957450505331693979578818186911579447387161745865782711510327473422792910834117587562403063631236923389887452542281803704717903958306619392273021679029260718941251166811250077174387440401269650169033045479332473089982761619455449275586387198569599062688621426097710744373537976907769017011001639804554078951278047484900645333572330528101087474759471119498244753698763396149842969903310986861336823873624209949892117352948386104419969838112859569025404129690435909546743325344714943799586842086012421723515140288381581485194204767057368137544448266511772996693503198952675606292399844324094855208704540276844675528409676685712172532533638377069966324955645873928062058220904746404972755791132859400023046584735386368671699722349608626159505841314257172440068846261747539078472506804677406241816891956461309190884991360510486386735185344106437775848510817504545831017549581794402819827097444239859611156172540487145859034614326758789777818546872192335960484755432696078520963429836053716269393299697353065067192720881141813617142876149940012150997320284040582186455054409912303410936451103976293709386572165601475161695225630548721057838279813390051895855533129071057252893354703047581870441324217679594807703583954507890383797760503432489763009188591882350085958480722639889696200926845872205674385338679421032304953606330550492131713197484455286677452759778049703320712091725461542112575037297848641296626140461774037004783539882759066902056098178749395181414527838590708291117304408934254763302836553996449864591344068575849156539988375458589501408167936124309766159196996715420490405914977978393431469889546816320145031812474931113843589816936674151970774990130274512041454225190581916854128411904632880257154297632097798706109457690735696322752223683868080334156218471991632554292706354502834005192603176805170364964386251997296629054460758924688991341671109033933608645221549661130983618560434566091989186498613713673304067913446910728549091666642013106180753856412324772437174384019182233415784719474577543128684962465361507522854877973058202699869367407758594082068281078747186234483502971467479872756411187454555922236402036287098944694210783187826506620501685682115548655924277815972134348721453406513423450276813174807639688825875865738809219007865339120268837377473754456421092385521128655001280189132487230336045651226811394454161691022810368862377714244856811674505611405084792050409402499509682654933966471996831049935126170326727132244291332124942068022705848431871222999068494751254186770420261753246925907723308388288758338237703564746784390301051870708111510626584297429902533399717432237587510061868969160967656294669904757617042548196515131111262053542481984561676285982640789663722880471557963386704877263671120674122566898417017939412810055840094879921876996138992812009803908085068911776974777599062548619709951868578984013621343624360317189459259154739069862427339656700304306856475436077424211109205482907839489644477880458192736062240087025484984695459961644186290944943331493876818490719303970720343399188568202693480690156525039714004356194876960490880469496300590404805567800670251767795831178339931355612288139421059483170417208358564788527940634937979189125393443154014768333432943194123312705697081216990033493767607008106303481129091343564109862664986490080653994306293886292777089602485944836889546901530163890244784075472313614074271520013693632472959184972295092256641844931752573637516379915659190823978936929848618940416974170787538051951181736536113607140487785942583642420916425564173791162698667337366836086006919895591703949826512240776384267251016284681403490001471160449820007044025547768177488923681469175067161730982522091708592565618048987850644965552782108220261341728850244170148030690842996391622389779839262963630769417373488943944048756296949935978004122479531792320814472778025607938978649646902458252612314056260271609552979759687616856649681170979895946449018090655763375344309001051561466678807649438814161429181857058525379164806337052221520874882175478882853869225936286707988693755506643177531943173375041112385061398472492920507004617239764233358074980905735678713584101989699451123174826925997930742784172869320723874266651725078604086070426191320695919225427437054634066780676564007506433617784607566369233567501129119705796492269738150045821978989718200809351562670657140629733646355092114067363084271761199676373452793830105721324328250440103682546026612256465965842186351452580823791682616452886082585949877093990337840021798338117844826924984592187328025125463499622170027932846047355560934790246123511011252833269769163998229551358785620090443309324235224547179848280989474332055530873054425875551701478718869544312130903578088035485673484492048926379006602105635499714204740174127783663065326019350906459144296008110083757700198425764455722495041745886339694470879983242925323212053156916576975448266538445881560425070617829379772305913664672583339499284047617000776200574645582005560155249403722936348917993733092702357237424803752087975710086851574902631439042030117317743074642318314891076395442113977073140720775933993868480643973509594649857934190693908039324617661364102501054579042439761975609510767075364215906098496331947630356925001774863532880979323603717875775851764768463760085898175320598634181737804279268111561573748527722241517966129008772758280794823515729947574129419427154276224476084044808617552854023388713132529959167460348169147525825539323275863582595078555299259399933735545115598195650908205741584089040274401658415047970486081793865363959791110181262203618655269488645529377718431639431473851811186130763813200410885199777320980224983428083528682905982658386332369192598337182653606938681437913929950291363012905316403002715814896575289730880090607361683330632439113539625197213120025415976904267909426873742778010302020612019956074650086553752182779152165962805950798210872562631885529018898069925118357574204100600667417577457559802808362247467414178752943463096644138949972452038262401867787889712614142664330764504611981627968628835870824389056764294824661462296887919402671576194200822074590077647303009702878555925858809468486829363476379879129406010804480118692028629934112310199276115653745333376813961420042934391609744319700405466982882371542159100381867730798122701578574245685080785788787060292746812498934450445516193210671863946822691202286672487678794817153886049137948926600879263777547460297363044727277838031890884733346245207405380797972524797035782460582305673405668046078001790282192986010301685870859069720751341015873370369583950645678884250405736581642787481331027657905121156766166972649694808396733143980781621171446537291016810632084209811215387585704252194727068616373947166498200365288705780269613112629227408269633440741807611032219472139310936706093108566322895762070036376572420551724731170961637571133022130222502191327605270658382088630638894999136014313878732997003230856718076790111479429219020886626855821730482908058976675889650800133241876962803570899308156498267817417217540023389852616705822686316228835769736531853538879844294719279117465359990809302369470333786392017531622373365180067978865622429463178068669501076763230235213117685667977461386165741808782283044610148717768381607830304494277210428436124975348494290173110169150889561805313856590303351564626544674302715521842107252786561317319772402267504117224398184075483756256362061757490346289305498968170508396468853669030659602336060578748661408810480134613011080131911020277329841874357110425094541554227049849570063915594576372480767249679474098240369391735644859907773700986432820209436072214180755201350858441979142116393120381616970775698381942571233391065930818243508440161988156458005039841532041857177065994070709327255649727813473670871140995786714875536985115194042889728293709204868003881631724443432593735405218897302576834343885466278184461330158597006839575696830309002903265245865587241270555890485171650841171187267215469708965954234702548996660460816665698072249521059620660757321127887932753774095759858574411838994919778708772286757626956805165310444984705532127051591949600207280410680935240312639773302035944815985756361132625213368133970393117171344924603017398635034040428832793498372500400202907578547284986471683826812071742146679655287999811743053342522585723171493550217855486710352504517713435004962566221608042546112911491993514356539166172405977331528930423444489562541538021054258350077576804078770283874354947328882301659080898125323074368881823826406417020177979299591456021314052318218482366626088142966049568156822060288976379870084567315662343894043687127535534850906316673841676811425735630604051387244786269984242634260587523521691930910129657399197051364247938390943877658240437540045458209273402034277504650978815879910754329095371497291564700928007859524696172240652203314416423541961158355844545369849129972749062126154893646971677746485024362460691990387075037029199712819305175052313791727154655387621925524397040865683577745747373872199665843307551634591922118436952310340005897491911131347387120544604762821601179010650587942925494592099614068926053262989172994051443480723788801180672749492225730966777617813643269230609242523921524861076960543306597449397572056674887935152220914867632125329476138151414172499680879824657520289220663286935801488277961988970554606998890724068324776429493875406426330193068315251884417728215730332595703635187466482552393562451058123705735997608940849888591652592145630080888263717925924231104437674457058145498020397905276803860747651535372910855457707893832444357208056748834940238436797891443919406168415633783828063637486019106481183697337218567847973474313688641154292471395657688986730996323989946856027310694098903645321993477831616684040303573237646293834128728871003826073944955147182746131350502943018491540864544916365593746777932294639291360056792819448181939762489544562715552335281942543776388108704694583132385956744733144394713852134874184707677145353872902622995492650421454437982221860356895484793028424325825082468190267334487506089245689466726595413099866864579906138637628150345448193218300399445859830994303763403119973814741366558029236585719579853581361925219958102348831393186168805303011893680667880429775728957403950905398096066565356428914832591604085245659057460898334022082032551237152080165927441378623762815384548074270144873695725459485465589628684724353566607895264417731825736838792426552443821542593535474780814341595805898041663114386615470257657862563450213115539584286160439133685808177919289295718177815426644019608263174128693808395553630910694071617497692099293497826080833223018847389609745935837151893883046876692783657553269577174797315596928437380730736081845656845129447177209505979428919659478706787663762147611517219307774323868160543829499959878095499739073432604325979278479631967063653975834320474975994823647483710645391278374581965503232951720745576031941131536191457696011328205623666939552669237746285781137867750514782421506981067179610087564556117353070691479198935056724148796520874945498274843018306964525379465390886658552356207139407738443352058643727744203683073719041273320000425922071697919907917438763619576869483959454281497158235415920258352492285095178882401262744222167564669064897990820557437457526249156568287270785339225447929639623658803415217705432578095235148594888115053740400637140270871611920197916832651654075345543825179163311785385214154783150233888115780677112814596552035243415456482374095780166339493864963061391267428990277055491026310003726174300308914098184516151781623550010154373253786427803841302536849464584277646801123223666892672484927584173744086589587091688424797398272382789072126317322814522065356137075383084905414757036337312347116602518721505181903667403561509447187979676389837574387486259759435366326083622561190838532372304990962747447617821579680327522867485994093171306314979723488841021211548220055711464928587970359089075321844552284192241548687087961999364904777032885419687684892351248525263535588532025330109485154247445123387151472852347914194591062142762852723125303452027485705504482149406843724026009381028105022786566678990188569186021942302286424838191696812653265623585892654399757802945713214285547175223592118916951390533339134573947583983196054332592431609193353436030178996243255966522247000511496491512565565471881992394581997242684124491822189874604238153349607679881416967763427064697406989184669904926047872914837849999497528735991191681102876428888149881753071027953662288621544710623450822777673656212466327278484039687645044391919138129400938147883818335229738572331757734465873599345467485567441356337293341158854159078366318959569939484872257896273263939251362125774431056259323809764560347145301014162506573447089201346434576468479550693319121182089675104436384942925413046837985138068219599470186722647666109436831402275553262628391576962101102975331039147644149713829044595024882943833778273463439166411749986632564700375042151980578133887856124694710823896693768545809499526765912701678285648750709896635982185496110332190252541867175875276516576839076019893697629658747782647141177917099163894363479347706063652005736348467821447692816177814416863156283529980771252723052746909368420332266210786534835285167989120686093412382064302198577221608612819888015527017366390839826484960109494744055433709600443899700202885340047892766414905629923759597103159117869229466208719888574057735417137122073849041278352982193575734937957054722601745421677500327951058295495700899736808961214023378661415741973529263410559022194063717947510992254784948689124943650554126579980423558815472407439864684507961287615302830513803697533920218401064794961577734129974344811531851980618453864516065515398881595160694034335104487093927483602193817811970561886528964421801988794023185191756761934442790532394511060016637599226625983040768703305232069330215206849979563390635877806832335379952048367862089006072361416926694927141242193702497985604833823275741609999170198264263757358754193651681630623553399826446798225237192389701773552568709518069218540237640926996809899622877047539026897103219314152146750421014185374662844990274375203770255221237370771716611556561312969897653030148323510679551222511830143929704939778037283161960428432229578684612231792101935158988622808985845444524559450237304354584912841703943227056997494108129045577895542048568941501829376270115606362710800941942504143146007846920597403904637250068466269246556176480145195755048673870068621649210670591551799800676014532460581831844515366274816308804636375419400762186525348396674482357514622101832697281485525727717151813501812963817846554858291668452890190192153413104936211144015410525290896172096293563146115321437868537234096666316833357951977421073326183060434253404046659632651931673503731217678318551127193754410147537371234624855311110184232312238305910165971905008125933734395832373183995945758437457790419754930488228218121900632612614206585800718039446264047824316335517700021280532256807508950324492008914985260174895821805037094322295338758435631887908086317181215768549458058460810435079768617708317223992280266178523513037186062959738406536974570282075840747180372925052903012495010733609808582149370681235121636259543328791259881817029509450459579498505511666161257035792861028114875839214011283209080337189895304068359887507954074790318016790628407207820081335527680547416056071565454714031827994442156352287832004678560553598163439590143587321632383525002558459194093281781949580262621406170492888735499561764485480766647346359724369562833668218136741968028103249816295751967129711412020342857133357903963745680019507165689693160967355431957919408206687888277787357075872363948634917270251606040499360303586661460109308731574707572288839877350882975154901078532410047373172227023823711141396018960511955713981575989000122222109762037219287863772311426104051860029147540204179384984590801507092286390449929595415840626184039518767139530044561962411512097853040705272024192765442197927598734510438703956838964232616226296732852002602278675508486393960885848948078722024339479960210123240462019917086868993151605735407009792577114270011789097982516663513769465617424939124730371081081112751880966063700852037961266789464764913902518181255808703112498201844442055816674877370298981188213698364598165538115732121876753079155440430569685031169198576384149584848179896711721120327116512193692472286822599819330947634770757787440081126423367147410769981659208306487901491721696901939440443600046012299392740345493224481177152666511228993242013276933792537663324330465821887833394650061374963285486345714463442652969676761766562633721001805199195600240869461791123652066467528353489156366807277720849262358128501007558070770991718845327759341356183099878247205541552161666152056011870054485792544238319622063264133405943566932851973318282894421887127732397328577851682471271582887171565389853342212809313378218921050036357500090698557490101880018431985710181101003598932720885874399177142399747816585391076524819610892271834608258730370130848341401580906651801248101204950984779092843682440759412209402068324461921104071454365392643190735720410104480199906313424948075570860463238057181779956553293906552864513468541891960536023439941613919043654670012449181698039312190540843247488870389564818852097040724981533684364833282783717271086100778680275507059125438778901442860691331930968146672139458501131712994419059527008101933448658672711036577144633548771252623570688237714507589226590544426806527631885406496715653513095172685892992085123493559614793368849865437035004695981230619235924617675465637528209047062129267206961914351167652274229460167940228111375924759904738064794890492241477475763805456553887422729281085310530979800979775129575772443641476493144049991978902309793774857115365152620020153857924371093916577630578735206413960755851255972038530524298020500589154867441137869254174366955467295322160004199228956785291047514442810338540856618725177435831909822964220468220964801186456522371143652580397997813294971506959745922621129411622915545089085132170080109845579014628022513477511576351683437243573798052993112581722212761203870101818961818965909825505505972837231837651843742315736617103138411753239492747381515939844631471488747716571670009918982821752252549454808171058540082060535076084269254519048765179698180986254037208830534758327981235925865344915494033105057381980344771446291111365886832844447181239881626532078101894037298544362108589295363642708005807414357952878328142080268698522509988853184351797570187675698172702615350971825243310759756316322970908600239320187806913461573650247870441753484218608460233174908444368461466943253933880193149247493113428806225976860560663476543499487767685933530982953511428953797066379874392971998969564299678317283697116545250616878775394073141660765953774124363303007486215185886312575368449882696515506494147348883440028417686477644882751909785788768371397155761869677858558669265397220452689859011758053206959916234565023403139573479497695611008659113851566511147394543713821822713476516688936039361211052027212513194306109225025148264321287037941243809351538488585723002441895532672406342829817197604655492208529565435400245193931603591251379577358097872748921467628926374819326954581288011637205112899452623701835065691362175225572699247666493241313459959924116661969440073631249150028036417870574901398773474544822769671735588156489470729712701226968783031705484396857480572886687643498984849814850816534264546343313937235156150555683683049634638987495855807676862090781705347523594810500312034003349340251853057346484323308270940080974500429966816342580577506834834861574881496692646942524848842796085516134995847823507540352616041704546410917870690407046732144013700900763164294390105500980971617001623410455968712166632480420294364526256645616802831215193211759811261074865805079496663834245608896923605534262620580847173231473206374328187469163497864871743521332471873565004813697363647990337661867468124205191403660423491892137595693781169886708139283357760652570218871764889421205523821901220931420757424659365138535124629317544077784258339288698559229176597262227670129169413291927408806854672959224041324855576818335186560082070356399887587123825782736793928292273776030604898804145595491348147931147178079584410449413806156202276400399282288947898256020611420505399997114839717715639291531985355909562700392065793614329168210315395083229032846157708025668952133591452428507683249916575568078913799543234280414264961227062518560310222736409350372549466383945643729943818085013895367068746286126724246707007903680019265634176735092276482102661858887817309043763351645804992492314036209359286205509871907633209420718959995214020915939952516217524191495545789650882304830132578320038099960875591665069206887580717793490480852391440526293474425142620660887079612770743382298676890248298437343701985428635281430634435333618185314497963682308870068275925841994865245425235859863279871496860904263410153925191212821736960400795012324215811292463262458332737860756205004869625557709843055726728916859348258891571550207442199738269851890050457026735643532033594223270524796120851345558680679520239261713395871867684710527755484894519246399017153310571888578713452494628761952625466611301824692140890601689626672969626296885584063016070699722414966550296086285870928922512099548546869515451015934131140891979055583576118119695704677468529121565693470334487830148323203251526274848462059186323952601578703079599333783916144333875500741297341836913733792326308197894179461691861354540775562490417290534318072185737512983278791055058478109171126152805269991977496917702836300422264310435288364509507198032883545534142151884206525284571283606094158057641166236242537052651788000556766459760508592941965054461687833880985589149596696253423167927355568188788107506258615909504465949305405494541773545896051995653550028456360128938709914742612769085992196984598647308754374696081096507274406169478415352267630332242089112114258213978606985108446962319829064626296362155188679069028162994450902161843979660163251033900813997405676900753411486662710092111379559637011414910396386179974215423153376856510998426010154176651196617674112582612979962611189061312022632272429126925908783553908820147445235817781718927621581581200258599197569477365787808233043540385744914956929480303355680743688010919691104286776005780496237533833583992681168560537173024801243163093413070873971713697988495605868790812514469793736404801756891955558589462208875282979404176416595676662065005893719623573221987434429583983488130656238793659020195750380093214824596465321038977105807148157352568688521351294354433802002366881126039341208425409267775760084658983315445263067480563395308914244571053601122231079328635628668665511795869752482815308931112294148703079278536680770823937299796037595285817585293300261956102978797778288799050849826737188847928759857023638747999446146552713728125759534031423520028986287464461813923425899789587511595830480507751198349448652298780280314683526606528906466999268937526355324959092499080794036576765503282293931752933250390534931034559664505763059803611823582442383641472403549021108981229587981427769758992763007485954632149576376079484179809834826302381196631901148464490057747185727429375000565594719818069570248492947792367026331980700926360576377046061377006505168838419113503825769263625679736839674332041692637185487066283973317292817365913224994577271762006669948319128169868525454325533783351073615025324932267231970602603523127625695356215426548186512971295559339044658509470171363641867298116215997417271143612670743383783526239854152633411896695293384587660583569131905259788145818748886910226461119791940353849785700846910925258272821746575982564987071920354473070308711664540477210626485809111680259584014269435530192298659814222497726574188948324082795422989886457924079747520795712110194918062321776637372000787064793808764193387869484163197975926224821815672407530319704205280038138027345984818604408238046558589273278237775923206399082342870644426774012268538570173886219171021148141511364212596614519534113449105403713701223860117496695859424355728162224880266025790670442856988861517161554426893766201639918949976293534924406102077446810552812704476491806860989123351984741947981002378042349934187001237211652858277922096122006143277703952903653759375296906622469057236554138377144963977292293256416524524393816503852781152051898613944389971997148159530026573045725216277445276981581251973560202663575395672031611659197019292591932752449883756688822924818955783840078816269953101757361606852295660941776106620036391554812947794257950025798659541396582037117982722082237709659412515598962729874703084541908870224714745181090308774592365039753282510740680591926053567796050405032395790988217970109172228546436689574800641747837362637311294594376705234647834258062407415870180276945348159939491541784022441590390532944825143176660240252329730640361147972295331841989252017172611711437954133256325529779175015859119716836925721692019199800351939670830199152078870731634154655590483870894902924172050432057164700347251190980553426409614982608924896316399119314052798986879327739964514536032636171383770687075289104007290860670576850784195177499006286766944919837141431574473345408714408025535637960270527084679003487033839884474129751056966687610245870323603216132425440242441868228574763123173440473590283173512610153562922790220202209552567276819897801785437544269838707253699663897278623663312226107193377676416766201118949206849308028123454005826553189829168870110864399828295480893663108306295525542468737584332071396312381655477473562426788261438020873132131016786379588110826102135952897797220796706146569317226629185771403448071792269107137154612524143893748086482468728601026303654893947273072267959504486198180045014538058427499540392877476704968489927911541959923600735907484352851867855010819758680164817510618517829352657304970200498525257375829404772068497014793471449124108356355349539767164668254627356299615647913522495933627500641552675261941282571365855653597441137725626998707037316353709972504010745015773835274154232507753245561098972085471984291421254968885319770650335682888993877955044130960158710865633463647779631209951747492048180531405434540072199514861992337952302638825056222305779453166451277485825774453983611833294078304096148947683816333519427283151421082331862888731036095153872944366993184947099353752173707655462455995314752772904639207904303585671487097453911381786880069941839084674034511769529171879889401259313094330656305396345585515291227455320339920847314671991205118953969733463670636615164849880356627342367555564492482831237828022811069597639902666629622548511051201676311204908097077899039135259172230330418873926942426719664010806498593895571125805163681191589110560853181479766124399576177628341697568947788009763392325444154996024535766697703426580685390313843033613443742897597868291005946867462439062477675147084977669700537397534365430438285951622599545535169977223433242281436007553438709440675931883068219520894585885143663814778325574363754575150707892653241497231594102789725718770637269321679637392428489414110769456747575931478481771971038983819273436449262451956153383459724111704295609202089748102247220969039511817757049054874051784109263839826270981306825812204049304649115699895003837692003491294592347002379108937716148993733937236260206022554122733765203075274399234230183886499397576346941108555772507405373122657852019102733946126642616695170766883134472394971246991670909735987353194497965814733213395813107662594097428036643072453606111360623265312835047853782689530097846710440705547031164690236268286857381283733740627159720144481617282897712071731160946099265919027260025731970897638487784002949897760454231286118925857166704678253079900773429577672025902678512652784350004977401475862739460861941001080356959481777330550768200380029576815437174273311634385934236089320408358307765667168629595216079535085019119885965980473080365625574412104705166109840409060400386116817511678570994496461282608625844426292752710111601804554601890914311593809256578149150674051745456097412822402342299317640173558007432936900328094934967903238124173724624009086016430064179638174459717528015731387972500317879086285595098143623779684409630094516470755312249730502836419017021609126522965151140402425726543881665985427306515076345808742286650031003991924011107582575451794243539428150912054765708905060584293661756785282103514764948567993841984423839610998545203726031172685877793261114072397960978031558846278344052243815781958876879704487694247588280738982744587041112161219381495233803432025213872126141066984727659307401226796634192762482676482681122210073629556657724758657292612280726265840177519489380153754653705402790844035642797193838709255762990105014741002100101295839250963587692809685730563938446400867975536436586153903083483861953022884220940368419645177102208084324214034260308960071489078409759364637031630289328661991883494470542150181095497638868621518924161627554514191616391178341754116598787280400540508203293311506282967358396311354352275522988628807551487452010686450822594402639229665517391640847838299488611473130061180003124036792678152962533490438774263687528165936544936694367457447931598612808553954416857649852377066356376416486018792435977811727035789408236175101047256119538649535140679830971757899063598796670614011442888901237138829491579629670536748642033932279137030037259895130617678386441279183345708691678246237527395661115002766885371739599993573177119617213077149247259969906267836783576878157507546124870011473533772338198733781398936273780312309913702843181044853673806919099234680579103013697960653189977487793321836524149076747895402664965927266918539507580305963611736606071653653076099532481944066309023475114072025347277852862092157818222456845273403849715657231589765793085542107799420734037185033438666919633224752005494915442333873502574234734947557320245077105913939612523019354442168789425884667727858449824314568152722826205796226429269117643020632623173572089076246706519072712972976772663579596380992317152918458238931237271230058878026704470521142025043097750725331040156080861141508889720418290693336860674301420605321883953759136852368370055515346234125713227471361975476319254956984768525493700230388262984197214404995721933922484120747003310893075247078589141472053593943884750456614302412707955111582579622809874755178699829853478942693677869244334509476549070544210602104957925438203148719100814924490529613465418787005815179538960393266329272322463904150654506409202223707464152226571701709310131988569894446626189822214000171141609738219293074041199717558721940453750658654411152804185376871652247187520578677632465907574750823068263535002463265356076744766907780502928276464225877354851121105467076899097220526082797730093840173563349416037582387410755951498082751622862928570446910603584916627743159810250282833609360565670738290011040755399223776222854064240819044325635508468129517287202819502028634725812954975657676071163602655166565247848932772920254582877512317574502337898017692946525682804375543955349253902757042178564185905563577428736540706115975641388157963715090007832371404918553476369026130452272187013180216397584170393277837539565901885675100591884117846067010035225016047361183398668624373016453988602270502589750834758175031312557950130095119782731434544962321384537267714843229585126583842956175988458062660905844616856107068710792068355945649727284007211495548843940692113760680161999791930471796677592232756907101668153200516235462647857506669378088642608680442745044248844199528335957278935203288150894317771240085001886350467911547881051605058921979762858581878352070513367189768005697918632302284799063305769222100200893737430400271542215211479510472221313555996960015679845097134889954731891536091971183292890722141684557344705272809865747487985813408735567193441944743530919846490122944037826129204458892400230850862742617893078081980132622092490130590704199166235822233514853297891762678074641177313284054411085295670080585766724495581228485750619484181599306823781920973049048111359696932968729508961326574663576903584412360286923645343579433872745918006534880868986332521276316917882284379354692841776060471306648592268798084847162414294766222202303755675286922140214908682715128675528976198098038217878240458969733544021121595037830960444864175370992852807141214849151033158152956908751098205254786740180244887546102289938810945852459831483407184841867281545230167574718014960797918007571098147426305666309133430264038088260348163221316244084073297289480971641180272248713647544519678592237063257078826316458425505394046295298641673303868540345609121237470238858619084534817613642385076629448962470040673595616292468875507318508510190494546955564638960798515915051291215552544806837628124033796032631090877800441678233233573108397406732449256144998901670692981473143344605867185387456019106366623086862387747439129214340794291840028446061766717140592791380168777588308127117419760714558312404356008731723377463911526628223995964877192293904002849785577152722162643023480863669916295983624477160364358871896555814848531578244157770684774314196297198556270577117713893970695709301005392263721574648084674714803758929822035509577631137146857469223741944922661562504051234028415034131530593020114772111770271458269457210926499410104017441843562437636110490461403356056728790431747499504276902010170278688053056886631806224894809868474116933916301708246096402297159099188426624036013375558828939097398469786027971698751542567663933346651211468300125717132059338919761462150906787615444611411403922612591461092644417524835615468983183234607792441671994576615052809074174826703174731631144987551573409435460930193586616245380926056377423889065556547335777212763841602794316188123162798740789474278167862799332603764808624072115156958959036399951324644042812596517171995894054976909976630774692332625603710581485620649146056884752598539782053400748844719951567082817557145159653546612707989951945428938846806504325126070509330285493719801290796764705832652801522490234748342187762963358791409390446163655270331253288760368475800206175654928173870974811263906559689875016592554023741852952318814415802947662692851669338633763854848059850851402482134332329694141598443356626004571349995538801683130959771774055091701355978669099023537793323487289968541391529981031013715679930266810606646788517130002262686675822614875288054710051400423797467272308571804635437595991491129094719632916180990453591866507277871589248487767261134201426087413749198017936413532287442401450057812494257444999428462481509328126086281464515278511575218941355326999909580058881211071824798797177463232238538480601225787415289150210531827556178481340654705090183963736786130362949376830571894782460911262239527468308918223891101196237178541228797077078495541793879655110750427053509627021755992397934918862153379714118539444377157121530745320210883583052538008716014473134289953755142906113363766756787275167919940689492245323294347878885462373142761522550322163716839040536924635450386609918685357310935608381826567615578300612501021524226171743642027227472284167889108409179212232858529722463111774692672009748257053304831503327239445278209155694738563554846276351375850465186211211102783484162020927335486743467853250776201789428603317572303269856955230245380708240475716674890455653694629787800380118853656880377646326392897317590005157112211141448336449519901348294999588823662193230429363792955606069551243743324838816872522444652955886846403325237108029678087370372339641429895754974835237598963747557773165049807257370555308950368806065719131967921384837255269826462609903802633693595820498928832669601265531979455553616620150891912297140351295524281029216536283361550797836894184688795548435249662917772670290797707441379097692247223106012795379184517006637021772687485757384394470522093897263142598358278477797259291966529179961327647369764258054235532168419387562436608146780456040290786465400229856640585295353540795817191152979628303284165422709257511872914459299611398676200122116331299910801042672501481118822175359702327557340609663754385064928958341707471565990670854115155645296335001483368722329558952899524140129766938387271856664447750168598472656982425464909937431167943870454545685671245250753716439640415248649432465219840184845298023124809666354536861210811471261627116815981652975420745401962665977475906784702891356370255084223018878113141360907316886448664078478007912200050967276518150703107323337817291940752890633854249908649399537860905412058797786417087110486606154862969105592341268064598282964640423928624567264500197946092796935156258708844513594833028840753223150273292515673522037968593823089647059754052467172434691026316105221417113914089945895034525735114163566475477547223194822550586549443309242210372662373569097048917638647658454284285231342754186983921008580366976646462699417814374832616638175689121558423589894135081400849203616330392189897127873923130855040841864827071554449517681899537253599260150488255605664333694578531591624691766358302372046284402937871784503992390322500738162206457703543006032339358133179537794731908419201513270134118661731193303177855293581980749209384795519463189047458996743527672287390654099779789965308792169424708961779824190507447324847111582534089171285386280765150516967125387038477722296091972551254724609602082063996960537270621411933703509818996647189296078276889998130924783675943284760555296836922534781575519393312769554801757130274060868611756520779083622787740862074853572850888921460298824317569334848063170646561909562992327725855732258354821114364080107883458349526213270238455890368484024847663323436232405057775470232487135248909928223366171421338888056982008662995066693790021440512753592576614522839340447300785924559814452233710766487760016140390068205756144583306186637254752046966132830566950815113135790896725211913742906573833573750673611262905324799771281619850101926276780006061342246170871521800575145233421731825313580451038979391320228194525418793151543851640254387847046747760326945599405523358762922728232086513810825524103589731061105120065685874323662224681417556589196335940601234626153597745815024614477708378228088801293925574395751436716897745664270064301349539220414733470660947946829033059036794539645075101570780412519105583664801006470683550512393745366234684549522999597159967876022101097067515834845315722493554748165122654863632845188565616783001656020887204876803209729976924934910902553022627792256723392730747263225040856700369572723797220911891466754856674232620121594878489105924550217119522290284675127010917430310642401892002090226118366318609688410684612164007384926502939737497027560719265214229310157006974892081467474978810047700216191199947515215528962225246215133796764282548975730361405228329990706402642476268119976097761911417312677770639670005984036741965995871466181092848026105302052738793290223439652529779003788805063767486553519768073892218835668944787563426178519528910943469149643452940439742942736674125770256062566747354482575740809722517943296253015492645539044070642896568156513292523785929669687034043484033104569159545250184842962737514314037759630650426999183914803713365715082279097877852958924716172258476341501178059332627610305378965015094451682566014157665907409164238001860783260752743477087109999225243109985339347252593586828806600742928898525268867962401216025945970204355044287499086906353618467399782442667772146848957895345621990815237891298104652794886313845752930749587030029031098923886161644812970036316937068466889820760107377307203824827790443948995280968475302611176215969964899489195164553395393928478975336286523700334120506189641186559412320842579656325619728614045014377488803810032449447160293039649812794090809038471065451149820906018078118902227730660947588637480850897450162397735296387620565071558223486247913923737526283051397350377200821390993584315167799708258797917804410775770081233874175178628329957675809791799574133413614934879518823796537678804669712545047102712878682114120135595541402273725329960564653003087004566492215072708435313297709591780693592203771841574093233833363529152461299034019105738430807645379212680909180487125393914320121545440696639634294724922510126509461923545583168068173106676655423328051232695272126189029123371791101491870014809086497455350074413210748438575856645485412313197408743808240281718225959928434778729008024468402715068085744190988679656744630507732595080745213212215093934068376327857504080416646424902813581246064005737086265365790963146173513315470322452383111317383864289500527064328026455690347447617744188665427866434852985747740320508168533682810252895886116184566796219492556117547578449983218451695943708026047724495393996737002522494736268179805110780314392622033419133517907908380263395840107927641238534085555888121665270121298318214940200925258097350563012559707243588631840055383813912389838077057277614906346074414676562137972320630987460278180095366757229439370878728153346573446314999822247471729426102276468303115784535078444786681721082392320935559360479970815958541603126416840976035740781722347274700880765411411012604133495613046802187676910110383489448707505211335798113591577315286954584683751318954164404289540940008561895714326640886511728448617961405660539481639101205125207102297181109801201642326142019324226207012633528459604224777253141340587527135185155517209091397432475210716501683296484073238496151370453853526474032854576801409921287358545243326544799057039238426628041105168819083382017020287338308953394253175424254230323841291377424168436973323049636937117236362616721876409351764893793916863704592169997266149038093662132393104649397673020949470255570264520360650389220772604372385093320110623424827585020938207762911700114507795975987479599853610039089361949181540652936003239468927192561303083152170034218472430592766428453005833754432591197072375223043374196666404390783294095704604444545008007153289600182980200660233252383249662470682533954875700875732623094475293988806713791758498364953297877596198404665325845459549229646001727195255157106673869316283050366727544136985064624737013091592988489678514000766264265337369251936185424236721373312986991727324631340247662153454809770046998348879358520600377391538064000195984127433778457540123632759477643536829674632981977807446793770013811337655195990999725117805770247420181530733941254326062752269473976999061326194600111381495168310518353396240270235012190073845857390947385672316978569488805298002837719080072606371781425435066734882590204061358024591665069227182204406490474915534272959612351753416390756495189684299067478502929559028322475718523427357227474695695955314944787766621617786563619765779933870768866840875893369984497759143952956352072442531367635177298102044192823720782181586919741422469418912143124206920444201722707096725082326570008986833371876501300008794681688103405615612096622990169909302741225693878906729972930679054186098736618871111326963902729417810257731221958084288810643319196012599414950374862793254471803111010259136012561631703481188736400592066810255237021315473920490852538116791905193786574022588591072277088002493824325835391614892722866284421299161892982781201818978760338439972988247242278633360846615840491648521900019901429440415581651936617279095592034327420263360924255925002614540608699084475983442301290703781756511703376273449484201536533103123921064436347724458133680285233295844186757873823368262661361736358609725364152915329071479952220231605277083646840107441015644150037930508736021768602462750022560364227283735316423831673667038484187213660926817283267878599469083125637035824455164399196882392394395433802915460443973853173951085347003680618634862832223953042957491386355292895444070231879625510383495706639999370178253408399685984909478548022376138356840490735897302618141028663503096125773992636076060595876209706582281249292698806128967002626644761724457216486517317740050452738261693332089524192189253927457648069084020167555521166229720138970568964174092580289103982815403677267032413715290032700944228549092296623988475689538285246948074932671060807693406892634493367046992078702119293222357448257245106601453596490805064078228465473697146365688316157762397664263316130132081769561902648759394731511908215874281880297883505477315264009989667556002934335535582886898741458894264028143045341319458716724863221174296120390110337355320845707145626636405735397900918277972410500996433330579469368388886888790760946107180802515296332253786914817413150476761017020134801108698540073654487499710487102210523104367055484619121019475589221482961249557642018302481943055539276007717733908582086672551483624473583379150940799728556970074140828823413911428313448404549974671237176146149629854363369195624195724619519912734350690540973839888733253303063414544138845203738926288865118249493320719961097259744608458408663412698205953464590541343611838598841808674770482090097024480455630503787458377635058713775201630348312145942511166265959079706576541298096171331025507818101875991197654454604483851059277659684599342483235492353940946225640975761506643910334908353482520293204645643843025170434284651269989714191607280276528074769091040070533268518096414575911386700943360162456500257706480178207881538057840852499798854256279624616260452227915313979343770534744662938958681810446133428559716664123963330775949000032185150000474338061079162377917945914564007867075849263988387835699106833451056269701319455942852744772779245973474523605958142408612356773738464844743400708619008480903491296044891290571335833896036795966709875522001081146521028321949434710806080490089461088892219122948534669746434479920831905114589918495361166092297324400741122316502006265601584945139342676402867755563459399775372591521820291468491921951031229183343183944989142339740191560957854405146278892199007520792782673095946657030972515372794109996067668224458687183440067387147009489378296972596958207047997579333173071926589625470095586791918960523417886800726930285925349303333781180445907997877164622682557910323993285060838682183560042021982514851256146098345506899756391042326302594334245557490663904997584927233610381251811072345045201588276213816401205084209593931313497885968610223178989568131077089942174316716832875001633143712271389817796162699120959622539145017370557351698072691563044417174118689671045285009891707276527669311810339202347255509530031060247212077708920261185819905303160137950016123900615808087938674781665565353571092117023418031227620916160326687440186778593525503617401461919472520674874488410886977502627025315820123106048230767029897429993273825462310449689286071536600844336648640081448238741565185996694822759413300812610923722686227113130307901959710435087296626765426171923490953173727185056240996775708436270619974250102141460802607569514356850800050783233596056014077646307191959344810173753367842828849417728763002242823097548807143353251559486760432826371942768175131072752857787047601407771534949863042815448294217456149236525408198196312957512488884992476069567602176780947432245145694125986781197928312688216814671753191713372653972118183112109044793483444579741816150463581327280549376754245974966093856394810171958503802144750106495574546583944024868560837941419416562221955111041530104353530504799857222390371532006301165903253400365769684895953966758674510299037378415124080488857018102889047661932793787225392162489928396917581977604806644069418784730330066734858282240333258340620457100928549596633818820754256627238654716702335694541016843181533479632753182495077519747304653618144196745620832707673172900072736077363967393909915754393634541802314042904506679988302730823168826882795373539202476500146130248794465608498378744090802863798386040887577635144360900246359450345021815773277869988659943433423346699436846734619917278125042870782596265963160457131681360693403892678115135004274355029981429571017390065135892345815640092954100238561188748790474363032259362515802661760418348384953750478004772931742267283944935583379320991363141391144334014325944308654166943576951854833536260325272704750107985739567796690543171567066724298231855042538678869106305199041528230942242488507803143328561934572388024038095319552587348333733613407153226893203110505097434783108489525000130880825554755270429393074493806787433355554870869422924413770170469583540866796434152574939299092788948860271267976823762720026133821553301397670525505213242315720654234380645062418169035079402414270829901016664881236368359163495727489274842213060576178688613401061621484901760447839049470113461476995119301037516766424526308772620730185592948040638743528418952614202444278498089694947872646847780033903091808529837206948812340630405850320895646479633627063486061432813537546946376076605454513251016985131428687496036191286645033326072899819133044731331131832203842517075297658483271732796411002379927378953363642623225030039882157099897247188524704530991508606209083823143366127250398017637053540617494946701762175451454158096308367084786224874084295005333375506051933240570174385236760644489036622191347317469419931559961112829863055325346700525467228656123699868206970105853467876461273490597874886478367560481943955821491479048164060260709996895846575512289158001880369935040543643300015656390679557724696768084787922760885264993889038835585363639963654400619220403368800826616646764618908362533010503829372283252259614172123875000003807090944083834576859697420735423544536612812220655549401570849256689918315370550219405919535854064769778404870038193705853895568907112925312719506055222515793218257920152410456688375192546056824138118104412755259106472327151676827944809201098275865438438793767370152960213237221379860563194564607575539577530882385633575100496842640101805439012608241834496494711107924082007012368405224999892777747370079975393432327597667687680072373295619964133702562308910949706437765302866512762787303691857703717975624875223178296601519732744694521115662005540030313218167703079919981056041548959632360323459927673627192941960896858652998944995006532429692228916724319680974335530111092171483049837126893594121579824966529761113853226196818681881277254255640564955864184898733256107924779454449511705970785362975155800283561524326712536268615481676521263045586570889283670369310357195417922577163137377078753214815292154835795310709187533619694738624238132102697620732975314226606777218605462811032231332996405989447283298980651720881605169945330020005668837112151910187428344752797502026454191829124534941846006084633867891202425419043603242202634231111108555418042057794507769836662983525035064198509812788883995064950839053153492301094347130820783851162145808914766681626813764001793735545609388354369453242183617639788101418885913563545381752385121474735177405829642907280735603030363944648248388799271779442766274821922460153690561097241201695735596408212702241187563205973256941758489837298297030026715076052231421288363717767151672023399158901762622483469120408037914705033270365624932868901104038275080688717431616160718485858296146216078435214512269753327192748478697255977362627046805454182082304301753715836456895144326136791264723260724744426647065852725013757585389584028475438658750571893105034406422466634815550915804049657361141223925353944654931034644461012879122351733720673128884022367565796058623742596705871603891041103100484470851798827784923011909898608124945917939667719038914000077425214699691565858819547591171887915674529255675854333159155388618750169009984819801694293537341333046788385750278210959654617139362875635095513928355250029018251757447361180786567972710848472144316426862427464790297124071179647910272621726160196290943854089939782996562768089974003659188003742985462439160830286572419747736408129744249068866577657866396440074214608373046035296139364664294152388024085409886927389838285339482343756341980859777431729264391291933390902597469275085561828606123682353643092938506138523290750041320099985414227233501646250193818915779863021282315657787477160028243996278260999121881340910010793427160140139944282853607555596241757887618264405116302296936423647494613514506468467003646527082551232884727989527023886411003326991415117733249538466586258641437889925241498159505615701933040692366574462968891773248787358207829703171915055117337653426699865940434042578465965584313255836918954986794550236170181034999967454042524292190763862451405247543373062781130758220927950197004039358583732442943675054113722935942790500338582009420617720007350074273795795549407612430597408980073085211487496948540831025069759191493917012637632008974917660117075490790708051258682828958376277900561632470294696426908380688516830812754068585165233956662785737839710282309329636470495146230250773989779045879117270537216952028588852358637886461766832874212411793842858959150157542785135525620274992387986008558681229580253389501548818357524570084492156825605893698168042021116884773924384311960393279594237891363849814363408961797840633265163307484579296152639353381226288114028291923747994022309875597659892555565651032035346403197378192186294685947459909288259734319804405568734574232945420989648709176266074701289085478411554872544997720262448615748980074941731718177569642877508859784643025157122967988648330301759598736378370975448169561281039396167971542953798826118394406850257987044011165079669910898631856619533844087372798965112810758827973065988872832543787960313524758849048465459810023799534858393307850437044149121556503708108192472906931683718477614438022616637492728474642541911589904787915138309063944230859735449316275143564145452160939799512198742230430651021951637156142845977082127750764402748292982738558923932110377496142552516033395871427801455960873124708550576703163553659129778433785561509391139683133583901847524095259784524994688211571168407611650537456552515031183094519768808196440011215152413532612921155940551724053402099464707620109077755802564730465092294212714415798612559427721049285550416537259221842503716635171922987055864583881651079301532299918898213073850584339687262635258461172042840968918169015791407789006188769032562842859454280562764659068951795390524074458749137727996167891801928356826784851111211856445364578669231129549151074244672374216119489036820904405177159510595784412634931640230718359138457313220798669511938773472584113777710716129587040105825633971232052674698242427602855059525960842048552496800357279437167083777005208340314942457273692146494350504400905336316013201897248714434190148443712829400809367447042453102894850068596409931026367738040986330703538142901685016244755773592636667522815589452341007499314179121909851027739337871977546958088295481383521491393189954481021131974579448623302239249103835642433591854027170650008591151791964043810666287365376863754141523638572194091274976643446445489310362038794581968755435171667246817920189148489732443062947035869255523434648728635836794261920182620757301976406520344316174953156790631257741570082408307089411117554324348242085340241093525232126164069021080285435605402068503002352506840392714251038537299547973046056596343469052394864246846168613059250443795063396424064091783949587080211290515648932160099113532502498762407616833596514191132778770228025052681519640884187668069453695881863854349309525754044773677708428715470744135451683226502867432017831777252264747452074593125796724876059424515997859817199648579717229466608771633427101067135498413487446172763840103291424171812713319837419929280816695281172069342934252107206008752291579676891088838252062234827501167201852797971924814169374606364128349482885218589426356550461917571743462438654155169879317982428209157429661150255718565089317941435467251342650805013767056342922600183395655425812564018177174505414886102826262664518565144405506585368479276405135418841694717578229466082512752318411958276631101739766349569383148516352860453145028496197725528487495583424595091572490582852335921200293778679286162223276367818413976171112163528252367818327053918083874384413792193967223912470428150568000753526732429248705355988325004424952154525220473352378858918841795120563911832727699451582955082271871105377850896097839950506650648566935143751238469954670136702439683268422257964524387654517441489272086115567155447684400263819791758147376783958067204068081474542162744913622317860880106278823860993408330169178408183871295208063706015100140201699735383496613637158250160210018570518174440618055653965771273490261087126172682676163407890717513212219382543545708421808373011811172746263853113351919021593451831347924000681016568008275038331492358316412068698795523579220953615749540751030184252249474361389606258951132953860141175604405263576091965801174394101264854766347066758110627789331832946570091174907462913370547776670000163845313762118697691626917674795103847930887364452247716945460960961609240569513529340001361399764179934641210774662037786623754175902929517749042129894005129614625939721073185599104461883620761169706889076702298256919384429106953479750311940751505753936652420917609426747114735815372976396993055396219815901178932246581368699797135724811998114933273613878217147622015313862565167168041171348267106075966546537327984961947630020045350119491316782899052324416462845756440017803273545128586215430512244690471675800083914894109936864252950148098307593427577400422095228639181504433184458646761259254094787328997979087832666128096969831124065933828415822862336163733323422524477518625341974153068415484354088812290980137410690078201476166221019419606823198899397563778273024534683995330967592012244774702278995578859532383499747241755568311336799341423397778512476527643440196987764212483528228802131145006699820122802773757146905837025876465798385115736325497990612140784233861417529037460579411400939479493776731224993034292179713901983703444406066565175076842423893582812132166918353624197832866587458867892850462774403817828180341094896420519676925470640744564645407304111009548917437730561598740754705884745874801235678136168843702543941690234589691206075911733788624338504419759152657020668514396777581159045896874241817333287376713866416180441566953071630962162292977281132269390060666840619043827238560142524638547881378779479353324969172470864660197308060157044100806190119112638788048112860061242854966826782205470916121843082228801542514223125098408075873374482796829067823178855936300444589654152875665428199733159735359690537858373440988676818435866491860545176910729363226535192207235419525249412706279467140339563394606361357517417141193911546660148983454487638145405538126749997422111441439599802667499181851158256189275974950339285223461102013929908961542738397172929738027751355581547119016864102207240950463124080381121148144212831692382088064093078681896130811847752174395495342598309896996630105258961983969640107700437021058375588165554642613289593465587960913091671571178272730864856864424401181723643969057646671176210433160961005470317071176394145205701607258123042980450895337303266243230944968348227450781695051875958983979127877692622984344223900026695563348163000850195801588002506737693953271362812516729430245000683511422773183136294858083445245958000060546405837607119058494936175214778175465264347976362617038276607269103838283923857286550865121564073408556599831047884915969652994795025078730841462506672862313065950312762996347832725101428923433418103019699172885205146656963313425764940662615104672351271095509841696905679102801004209767327316657351947689780100084524412044121060474222939403400927620822824146985221993472983346636814888870700123418902923050915395426782705644358445731129374067449898153670649998910243665159207113674572797175634250086614255302329508893425530197770495643038097959505119748297477018989079567529372784868970604550583637712967999750466600951460049660007786965446884412326043878130113163485720430923347716140566747390819368818752407260242659856650892646298534462825141325966106778319913852701972531219522802757365302890460599723614992857154532059185788326165762694479232848575979603713796339152575046037051684319880394419865536591341656119219535279484305146429406885285314441777553650281104027778733117137880361938732929049137311164781766946675780304059108755279861986400040146052749893962614529008124541518245781150425156652207780157004113585557865693877254588427759658503023026900683780606232094956151293589229676799330816870379732394388781430624351513650828006350776833502837270638101585176918832162819501567868875039078968149497749144005218125805656467157857097343260861136173293209618972595171854299448964535672357638418764624135559826031238167515503745424687624449020768651419024284108161695988263561272134501279250931856384506530015901485273019137376517088161154963366088930860987803601400345675959623098430001608012121161849200207486345332787240381008842337445947818118358372152331738439568055426492199481227361306589901923852535809828726305498309546750640770030840719922964489390894109003095050310111067818933484688232629440855365322614524901816515452754892293215150444342065625407774039073985880644149331189534374884201989738046446473780005490170454927124501966455406410921094163671544641673319592210363278588226103409450020277769597711473577233813890838592690749120261071888257218370140700529630043321173760681814020482068730619788082815249385536265226545830297519527667701954229200606340373454363291921000723498048094487801386393780778172752291468640992850028195674594415191788268305422904173059003253517117451410091340469958277304314039663989363583279941883703557925187073128976087514531823960314861066744289325081480402069450494413254893919305422140628342977586188176741782452046886837796628227439155502308576912470182846764620964577020127167355423326978973764110921829004631760399398822803127000394216752187445850334040519083312064112377704921841936480020706085820820759482546951446237566861804345862473434563998767291134159710466453649963687154154682328515919056973888190715156200372070167955546707728072719854216095714567127825955484297102938359912497445954998000303225545669088262183380841859792351284047840026113170350039091655908148516689157573064724332400529952961927094414567561718160942028544588222134216177537575621274088396494451709572903839520026874030630310456630249460984318328422709361652627195152008655485716209499325524631993953223019206858899920916488143173730806856549465522921257606667481203138884987114085463013356654830689027997961873543718155150781898611667017494448438627335044990695218568962831358170834335686250582408690328726481953008111303268041367913663920595364414704574477346570587183583546448633743041879375908337738092668056512309887562413440637414968405125368857811281504710408305417615354314607499907121407105436971138899069253239014047112327041259177363430682439251260786523829126404502768491754396335836351665005611014334510594777545195934358540037835985035632026018515437121110376808674337325897172351488100260869031470632302053412031784396177832697897543277610414878098217848824545328430823903919250483669282986414473911626817106870850493940047483223894243381166627305053057961103343232552808891983857938752377262030718226583657779706488887943926952120189042524314036770161917695455215446640844541884835954000660217785056264721392061592653037013802012642805909138233155682733325087033573714499797335969102744480451954842002475968126755669718525406803469690690891519850634426766926252843442065259254299944677787950825545476613800809708776813282036024683852663309416431353162846519269128285284570301542955540709773584078415273104715994763309425395984678160630950952429409533801388849512052525444288377251855495981558728359378454921069614438211997976125209164862611299183521799324978213371893213980818813644441603180761396324011555744739473098977120887343700693743023989424147789838982467739879713745497699571026736243971454947966840439598401566563740166671110183783519701061561355444518348548138058023439984530792144163902782744690836760618689473049211634078029213991318280776282754485655308112267715056529866903468542467782693502304164898498262801467946457566051709761299936886474398998300331453919079745567340621568373308189932229544850268924389948429642546657840555749098739334443878530897917107661887584642516738627873304515577387858710927769648729253539637347233670052333741265619640829756714928027397475975945054248172305373571860036528691703837581354278281308770244846745452085289701965816954669857194584837145412111973600876981361937993420571657066719232085101813496800761406587873438430098309485177448902120262821435686485800745257875343113859632696818879449471688105702899804400342326085225652795947920225932411946466871039796435495102606235820323222842514636509082298725354253305813251568976549484076247245911060587542445100079583221636859073867001109931314587866894479895682783530452020619956688679751789967511370476213485430477996209971993891340592694244122212899060617112842487654207719545258016554657498400481407575640535675194260745709960024962227217390726538191015707072921865325405810985845821690740641566926043490001607595193001544738315349109561656042870013533663198077158142252697678351830053427528935827239327594153652035892105201710304780581935770590589110659559918509200015360782704092530307818360976442622134505426529183490964234190753279723496688878935065327563024594032323257830835239809544288077825739811846459535325801934179378808455732432704450838768264154523483495380395718466464286118948406899811058885358564589595268214562849831759293643099246118047743286141138485087355202288537072133243677846513708567135785225771667732044525512057330093138685018824536416692595661585078121717758463184256120150164335956395560498951569871901956906610630601717703664386641240929263749675746271064611043627406300738849413925851247259990207549122283848983821198373765180323417402726022995973942779457492917086431759806584278511507266224972630476754916080466117642401096688367354041609672780679298136651290119652698070918650344089856692736256603054093249613487405119261809972337268688709917630288742565681800838870869492746835166991862598103130416781402635443927993890757617194020481919110938749666191754608500438698739667031585115354644059453931844780536415953028167553842589195498446983224663605744480252583889661473926209347921015096403646271786287645870573987028177229568346753807279696327430016114215431418564157607310715220636407790060149024853267776192501787757878110861331740873310754315580265243437190023180030896140672586260061735560412466232993151429271492979699207815273314338951557299033820772659898811271065883599947381312722012374581035633689881253420246749311440666285628611293068821383470814310463505501479110545754636997274024906837512080368818348847832732163239338702083482143136476547340071173548407777657613644855336645325614240639267805364716795940676820890816635329353303819221540057989652273469095689201882041561247328136832635958233662407428749195517918929802703104907353670530240148363299816392328417807728342836828146263594423746071997089695601392969207741676321444257886741900295067708277768437275094748929809663677866773203431124477797527710700123072131219633611098628189662492181736609241282215330427580896483348240854486253629814546879812658550433126524496537573241787668578953708769573504379050108538403143434751975563826306732156627965264084291709435336761060031456610648142059356936264222936201740644112523930733276278304069184711066776288161730628150439869503996367642322300778682589524001578879753083919632028152782098337571491212154955449980059052893252384106229279492077689771812007214793575007151639323569826717288840382486484928503080419530021932524409061707518934974175575719372365627014664902570708549288261843438608797926504170734937566709405546361920005670256476771214966231327295792935624348422463348904580351146772920268674743300829967029648530850730601483767139733307062925795278754989876918556119342470497218469035935464075794332601646970722867774190219322382007420888450098487184665349058100613564966018583714399171156226631451330148506382516646309076806043785417697852584091600650938022024097986447142052162390115881122864905019869574621553333348228994087174580740897223925187825413775752541214773685787795618293356825898687571674946144841397129085011235541371716319465188489758300895006994384883259067435578074916170181702177767526860238856449508186424188490859671193813564515526015356844403259073077640764945366939959939931056575877038699039542724691489962454768566449765422638911700526433059617236042146362571666496704299171358981468242608239542933342971723147049807622543251564708424826047054080084411098794697357111573659782494711868916580764842910195083731728340575310560818687425225892649352207498403129085612868972276147888504768428196693542876453234141657963896503274122197277812292232297386835422088949281947050655746890871431677137020849964532469998181503675189163458326749646927689289459569451719226907590806497829724272889445514346565273915523952084556891064481934935016116537344086768412058746461958169415084405026777827589410193412885331738153338160633360685196623756498844455380622162758068894078544908564569632926570147050334506030308006334077406113929359978039573881611942233820873084729792345332618071695212415945404967081242277477816301821389098100215967027828617024644841710524035767005154147135103242531313648635118860966250024051037804605283077306817734576947274538294623324843756127724690098977766361222916078727720193631475410445186361484111298559883475767632977899146037295814577779560730902386065910504405899030207944265547733962893546142812350217291395758148087317952708408829153820574526212656278251818235828457121574572260435177943485618828312107290582716951175220890315266123450805725103781079734319023176255359228023177468535784081963500954928072131234457769904588054413624767370724332683340154301506113614775553616768279686111585458007802981900731675751214659123333254334649037019888760045568056963333688970842289698592181927540878415330122470852407077416552394372490928491219770729864943357306750186001764032569696656368119181251970733925910739594382926087741431920345083157375209044429452105308033917852986352790893780346920001119708015403573693802147533092382794136868160344857938288219653850318066776357965518674955618879111223792792136375027088667209404409428252163178853927104534536206871076418184072487924040454993762915735869565811163949519455855632466464533160333962322348671090223801582237263368013438955145990868372956038900486991622131395197314423522414326395892738572059455426656532628213388716211351538435317266995223138586236426166097893971875800639829606860003235667230055399698607244070546330118419075533695130021159410353373082738265483613524516689649656362187084439258674932612758485550294060963271640706228120658933231384614258564932358106121412850027729490436054104149869835805927486649658537128187543113972809949078985780815457733847971381286671714739845583684787722747501653316942747142580110132581201033148141045012023852390419178464380782315179061120575191120519352288251414058536577811565028601644473514735864871507337974233401182069266491780933250180343740254278219543012613800807464608597450859644957111716215502936739471609914154582127476170692508075774252756037979212509267434765191037414094081850648740765686711980794439248463858051443403517855418059815817338324644251177908934924578618249642129300887726374305956759229091154795172463998558972413959410352286265522307692219372704641141534843498022607610620667791592970528826679276741736330760476041900897949621174432435673477199647286130343831893432103797834043281650332262414413819785250667803018931424393188890491867015982945186125058301539000169968888730050159309435001991339506505959885094937031875317239176246072315715043937704582876845531427905406738614317977414098027715659746623157007730217931551658749933137216114075505617326654373619949196942918897607352406959422423233219764047055082787632688598731389144835234583061707236827425101974542433870777755372178678251982219621551986331536924984732892970449992043388505455358085055487423445716580592922409505469983164480055814927342953076032517996193258492297464448773302031823894122772524127816667204141743528574111462248895516477064101024053755069737771177274936070814129242405640707297505569338787423403525424695593244291966144778560729768840858707193375569898222940944358356687086721645984012415960048338422909888965018873637393664306468226731562463670884559684018826096985687558325067053036430592312518235363659652473831960513407593651294191092648879119814131378703705325613968816647363499020829129934407376809309320468921634933208677596108879468245240608919085978036555767197344383481531962826044092822940295790292101297722347734477632182296489751835194587967935903087198590427240356604798127640227572373377699767891153246117050204532486480446911905047147849861571620174090608772774847262151294674041689010981400526605230357601372261617523057550536928551951140450904468665939578423906570208106627569812183736756655808457554382727457912477157600122767961006789325534013257389148712924217320776218521814016436600604533403270692710922328803097364518618470881102404622461240184238096490107199300077386873308049069497819257229050114976287344630301337971204404303077690545737240435553943139558085536361342319801241564525056023378085561482539398555483300186187703085728949627020290034249801042209837636711182630122375216056083818899923965081552875564830342833545820498502913506604382357634717972513439177308469048671734771117279692909001392656163788438928433252638891845467138298679912717793946221096386843858042983590974905263067041858338120082095468374942671594322787911516148771484041213746907757828152914832161028931448980057556312817894671644969424286877348699489011004115201822650626386817465960012195423046780826763248346758565475377683067716315977081997490801350696194586113234111418763851482772199589820166859849738405413382300024027214135278215640091743008601869849717076155537010434349632624502670642773618846702880054886063338216073427700045983745669253761241345924710221607056531638450521897640042982315807592372516614580134427166359388872642769277676558373830667918521594747054446490812483012511815823294632318318091125107995251943866683145427082798848937487064300248257933422820903436948010028443991855478866456967586071313890657920043146572068449967563623331982889115271973843049356622535691022837307045510114590447408030433167598076797589827654656882496184163359855251032858415127916396967475507499399084596689839370164573822650822355211372070894501447694175582276029509367622576815831334835743707108213173847759132518382200466184600683074408428867642404473902796656903248881971243337785941996462185128674859681454594970078005470920629965459452313110155518993971589999971448213383833662842062849643616937878539447542052493327288868285574898216490357986145950629623272291405315533951047267696557847032123204759242062315228822311694002718966911600728197940387048441436774710358339982344978585008485466453847407953100196062056881134825498179282267934040763628855366540291807100609719986686143605061645954240165448487175112026399666759936661591335995436364597000943084880002994852456396565239649275849126748068029468173856736896613036515545585883309945265009676604341918848330635860620776314738239325918342350880185675877885027887924109601104488906484114667341126409943856077724283626327537893010716906710408451737345257400753441450988284098020824669156185130282976703468060070360851501220293899064754421122421381595264019572911173104070045124194993035234015107442189533147633893183268854716692083173071153257078338462423705253841609022654514392947344680340856908735502628606049464559266600036566765346742967106466683611260720952469850668867725996522436738776816532788752124333409729153050621405789711931456252949464188542530091058344903566848012682165468199589359521089040307864179184369606018081070673269405777097720946009400333563520384855410569016263797055765699401117651062622181056271265545130037545732434780060950311415886429878876830419135794540976645991458066271128551234621240848513408106037975855382495604352248830549403126221417398231223046136759074780771193771930223656756832973036082406363159659185444319771768794615444076970307830947246306172289358419738446616455506583142580494680479742702515016911004043849293566346345226856993271407298279343713329298857876389206023752007667158582353289278483502068864712001044690532426855707186693085491161255624473699060189668743938988187748440272906127220771283352274783840725399653092592614622764243000364004734514593252709725257867482307146885461910100968870001920610484755426274609881627462415031719830228228417985653961650465651090065719757080474320547408993680246181506041248715894278425843502041805477365128167108823107540586103265975454020623710496769598998116555694447240725189570165430779581986553288297096218674198159120619301175821656766646729051361229637865815405825659691474077578368413845898703913140194032408584037639984557979364715367874377702112683427433355315134267106514370300157446443531740340653292958919566161176366713857797136598538733733661969808738603875318935867572040112361980922086465988919578756132109585860349952435993821291319751700201498314384961198554950385767660797206255196683135226053984569620112856169880609318767594284446138814168386339417020022689571095667504345059435830149008346366153825405480366514171111383962481155641937411090088676026442047985457963419586917086784943928139908837001914074736360312182280070469992504067069570486043622206931682631157588971504531529792966917356474765583462115736912573845713241244433092081877197146744901630435402013891286621659760509050774604008264520038164097429599961961422635806735331692228989477973555227022789326920687766058321063905114417699310763528295369255972838482311996217690103350888925736754673406202703918217320825201968036144130724795296354688073284487966940100538815790473947021020417919874592685342407138087599002613918439933503583422881021903680981510914221983050002653139704958697175715205427949796856464696513271011597725695072441052454723970267114750760019453096924153090446427032167554455893394958496015725305288019925804751283376058964525977470601043494443568645010322262107929543220844507163108943502048102401927545961016903750699079230480080840426629014075025378723228379143884278162293467928833694084452022456337932459196917901047419232126375674526410630389619588568695879155056005839981297568441314225713813598012508247366066011842698570597646354287557422348897283150137178876983379444532782843784908426674104308979457547290979201082205635921719334264271597769035121536073165907183802727416208710032022966767914908662192485484852918227917757749191754345234298637150645234785026956492754352078809177317500682386996770647006193938601915146294626990111374109113999827511932915718308694120181632912605203685077743554629967826661615381246269644447133222211805948082562546544518851470742984315497794341770339957025011011128301179174762095580269163944603257861493812728029362620380752061777802315833250928113465639626409976278442075036066742636118243347598093681372986320061727341446089903276642383979785903241998542342958075672190896913575597461120116719223063535455998487363531209244713505112877134300933366644857515014831709757965397275351886738958301280922779492768359347585497222509827950288311327399361280100376810029748710143454371224805292861995676563158547523834045776336965600719492076706768665249801387622893797477089709156938971132243358331553540246702825687352409736185316807599478392751651351886444471943481374312505349453489516265452520189825472248718693839621627098226012099728694149575605366719005401560751663549203136390579795382500003341568844706681828983049593062663590974758945994446911300936440501193286805969528942966347148217298606291524274292151791980666313338027809870350666418186919212987173707826428010660876381140809496755358632421587815787397707309831378498348178342759662572157727491423393727491359918825259644666444623912009980758851628254968454338498248512895740029800343168906432812079096805274171110691539640772133555502212983821974664466352013200658496326115648811732767052500904697620971692748372313736929217469203508061576116888793905629052639466927572058864558929504207124397751629617758796852897861803693757135721437903925042579219539922882159096428589335235789325547271923237412118662157528689020705557773180504892875731977538948583432341191434571658097372850455451151686172032576156053901671911262184852972464481281804585029349832404210537282401094721602889548164025805363573045569086503475948543106132635132231097218049210186391335744999009826239979359073130631361123917703592048151118323621939916725206393301483152430026099823291309263426820084222138189707112477750551233078367183005069366595148431552157298836331509371507389555104766023606449320877751005465256926260963027155459539864654207992637193616271907588484908179924338341216660652566000443847158268478952464387874099536824580007039321336690001966994853599625104716100283383929632625205665572878747923938608739354999327775435812278330822171046206865831846021287617942657974715249758214198352189289918187666293790184577275317995815518845960535057245731709947210348240485394549801844181107518121754914649886893392961555317689375314432370129032130655639941133282208536768163001398368130479394148358353734030244737687580468500702518202903777140570412175164553378270304766451580903200168005484084384161046690444344845810614409507197479450469764457961295946934648314419779413143029950603928370728273501503036361806294327974122881110846933782736331745575634560456027095858032645030165828577899178686044527406642564326166556169122291842119210808059331592017449975828887347277736580437255627569649009189651290562718570732494946008043543709333987933277508949778009646824383552087014856329878769730150248249652210821644907947752517316978339325927085679617403287599252628912505137129226258482903965290556760384460454102405839727146786051800005972688759493426595831110834449586701753450039358848610504795274957256391392428793909197326767401509948926258890559655470938740511969810060798118881510782676646994360902523843348731049897374920178409962088513181894065780572344446908010937458640401953045045971003757087480501326727989719631160447780951434951813145599472280927634152718780612019922798418706606087417896789711493181470813804424845915293728355049919971113464467984547377730255236828406169617385189345057826022883767396999644882804804121090693288835620055781595279821819360631515991363260066263594085699067037855222171703155918095110158967202529572935502674225195767009944830374647272587144061841185197522302968777698345786515863800271777814648122477288158168129880576130640660829852186630434324009926678305267672275814934252374697181336480716144415258034996554931793068443737262529041653844161965726796091035480207916934213341441218710863496662838668634350399079895514661018902504368967745317093443252451869306960799595342530747545952155665698621569407760276969496204404439349109349431544857589329048021732571226994650465672388252251753844981679717856779911396712707987708999815185487968091880794809643799788887254333559979588010238833175047636805296083289781221005282846748287366206791209621920396724991153925413149684653951969505586396985464994933440370281525912853165441984163194949067905975138791945110508871445735710884038716886305421613096617766746428092285058995104342564997033994749616519024684769097365098827971518827612945165731900280583504910241525796330520289652472444328918105795727015438153718610209868535407054690491288796033927984284719791349925181732544506817422442240835157432923016065011024233929343458581579972842822535357769044207407259468563190518117494054587328254809316285033669969906501136994751646309409427123105484815396633016593033313060632194079912746892204089562164894991291399238903343963368782703605311317075622156003782396746771962681108762805943601454569441285532339938591766365718092569298064043297595760195325170557914029026933342986281766065789365384155418439575150431526910628383851438476105256288859624282361446524523661264271314771059364575532813062123177622020825376612067573705042840890209606880923530724825544776890022293769833259919011546311723189290187743750381571726298768313396627203379722564895016778955053102038491242155654466282243466029644981801552185251203923313322305595784774145165665027557099814146365759793668680155742365940099404791649951448967699281568192745184423481956834180375398856273940622258759998842806677869000179977192783359676202183900603284536393305870299994861755223913649400779583917589309435580469549284779729224797364294779699875502025700148454838119078644682576223330057805778989431522388657905879136378315899677016288264929765761086525847472581885095010554253857618772351638577581863267519313882939099898649804538518348819225996194843650399983618598956272322141554460623535697331410661795712770620104123341344707088628587891660644540232552108190313942981304415748869547301720614184709294299254829583332186547551096171161153716662652564523043944301381416211330587110664608493946673969695523919029957810392566668154885775577016038573665936087988754111856313559394484177019919721205200722487270726236625576325154757959477968202324374631172647174112274425966062032434163839704002724965906680953936312330170507672285944576144168112803171075778725308766822845157938965577607640950315289025126119218453009979001900922774506948316934165775738068567770630788987691116794004734461221900213206464910326657700902115334193010439850730392869468851517546291751146220359865209080830051509293075466966749099141577334901560482167377844557430723989574378386632281289554147017094579415132412680443515789519641692185391431797776719474924563299306710762407925716664480187297737094149586846550955360431833861176697104538607800129376101252325873770008561473639966204224940075963476563310836382156723925800909557693856115206055316998091041083363668735933571178977350287009151574737658789378117987300793160246041947174622140919799497102905682159847603905955158166329328343724191483272879638018070380659132006938611619871188411882165937162025548968819598454399875870712943268582832966433140013324843546297778088969864629121888240585804314230760066202968456860278586961741045708835105636529843573515560340751157806540927514185787130894715085655783193502509671239030864250262918106132368140786848921485720984856867828219564017953324322722947022796313337276694803833248512961182375718937836724928342240420643672045152254992230177287802969885311297550549585918221530347171599102593406517375408863515331374925105352500287138392390027990546265051018786800664755426903938020295506071884524787607791537613124424359235497692420957925667175508955814348063405496520541967060751650341256457557810252033262892706449611154275264952564629100270053456957560911957172948723415732120695995327452757950650187587093779487930527604065381509915341215047605320163769159833808785835892314421261320880983878952030567979862704319587157536349116378413426401791956656674881365392819996714060181854272355259188608124237353667614572884238128157473402052796564765150358677245969278363838922664905631712152780858574574681282220100338194666340599406281669961824565478948183792995390852260252513159503527748398719261145342093152013612204425611773307122573617454812702217566100306271614903255904324622718025514394352375271920154020390222663533233217393836113707418039852180201863999164274042146182498481664354242694490205668055715488126900494455889915796368192121051599727631629739686308968024791731289659219722921273112203112799170170261396792682175155408354175151476705148728459755880788648119298268234695746852202733270802353152010703162567839797636207696941818625611452117851316322827646411747875493633813686324399533465517626767687593015014689939061921551466431694616518890085444175048236321893979204799794343121428098691814973922318547033529836838218379347505259241189724679811588266478698030605285023313471224565568787798001890577565874658681271409547889070379957609260326719529755903566848718247610726318014910605757332238595655228874249140083849282835338848841614260930222009870012756277479227382085067595028079665370342546135394402748574647941707643089367645513024372618723872531108386629198921432400405988440539909693688300865980874750946399158083327770421441706975159753216019668463789892988710703593975068938188112066777939000733851856121798495465492746598237200749050636373875238179947372620939884231411618464271254543631169986399779975169456581007589239750685353798935609923277880597169451651793408853963419535931529095964433432601457732863657008713021717220722449587021198515425424085806173722670988461952284633986626918527687600152164118720768136592566441772637512802346939004053113738836747498406092120951369154921411310371216142099658425651061997595122550026543337699247545900284440271057115152305984891451365986329841041170957240021647406442019851864787485865099564051976426472905419279291819219213813974702204378749177316731520655572441237550047117227653578179684115273674327389449872565989762793229201608157982323621376813948921868769765102362371315618803283686685776457912303815556610867494026278000493518988237323435539417423359936942999735240642025637809110900850308274873405728514540770941165603758219352230269859212561753901366306908484163013910546604372753487191302858299878577970608560110980980309545599139532745628397039430259646530032664863749627870289608148635642573709735326525257668858965227313735891962507041646931566754491539999567695228652918503800894555104007835342155306295832904354614155283475819806053473671011844156537095833467174376303025629730483026538418347212282259502353142200154468206388521327018098865933554060577200655051718838517852827082613194745088140627336477038712666847717308083833907234955624443220535318707692657229335948931169993010085637892255304177234783954157933310425369656806236478918425078449164330372863511970203902865382819373257463487682251929436377524993472986211043762728600050290974296572552122588398484242226012305567408706563022840059186462789857768449918388510894108616757228245731263153493826976638605064135473372805117391211206588168528316181752548579603726820733037223298142141899048456687648555837569703152767894100120670021855018650441319736206879946408221852962708777366414511334249034485739034369516253439627099032018607025378985669793035941261236594725946831313770432752285975351682110809685485922580953029151093145365634810317428346228478194902368218212148799044122504039722272217820635201868800641280641902826295427053561555301867880982099682157600252753139171028354562431937059633227712494156868300431462949716242501748399561603430450007785574828810051909725474070178009741299613648027986512052236966288438997056815292760367064760344828466927771311112384308989731256368035142127898125938213623921460499022831654096516406635185913630111035954041595717065346861143781417193580051914044081766958982994847020916613167156916931948587694081482176228218264991910029836025670130890960022180957689649856645272415286701633752445494718866908125368367935642187115735097541644708890577960871358694531486743582331078868467710112023683687353808766687095798384377830488347528767321259435466452251749442312003549017022586065245514585377501136607527903383828306772363778632242638687191364300000300700328162317377937902679613229750569172519506587926349884408682181531291363383942771393400520417550200722994022660706061433620834908879904633169241601577664841760906300381750347599884763278395061322930293559733029392130764469037312298514469288578752672350200648087554527372738222342769173317938726162534858739343428063719361491206264987593013148905943374152126328648590526805312715936824055795034827090846290802562808160422202528094800465662126090110499741305623871993762304399909405965951516402268736916620943296340631069477444577012773783561503608569847294902018831111649819362712911088751328360762069033154838930424559778436240753002877729283943530831000990858796167299078844177971898296477133191489973652049901347196500659589727459647336129055624682651990494077741848324625309885136950931616805982347671380307213116324589744984350535372273330445630168306203196525257831194222046545896513898291900034023967402520723115393880748876168215309363215728825389641609299956226068949666260133843445017474502441465412936986814428214685818945671630337859468102510717121630026632509019994248323048690821376530961374566910117951519378852367870809509323188994639063867939544207893615934601719687781826670032405628277933351853236929860200016383562407768281686236117050280535065016147705536744635252140557878634907067273307861450387465399014326969230774383095200542471425466231902366750818492771907501768389142837605122846980633777537885356232085276312967342544008268389233211604771305145131044345404523423822748956262459345697797180953296845615028358424304395152986771251240147159938224258239683895811201092036155005666830959062398535536074233946951107982337805576078723417951305573984839742786055303875209930639734005541643779097268921540034448043297148279080040739008233089205955488813861546370785784028941846356439753742672070941882935388084231259048577864380153088407717283285968367238105266381606336647170930969566180585877519786574008501036729266175232219483179388480224760640011445425325115741130422040473520387546396171755689342258183873125328671002610940579556370061116181896560281405292867396110299818734215158836865175150711802468894601373404092395644201605400793805230040543735400935333618447184558648698084720788338286887643286135865709708926731420109262387987057786746295705806497642280554697625700672030045606386437946971453864894523381043483646836981719777492690046279107541461492348300182892431716725343008186854114853930140991891373275474477537868899443381000639712349524484186723380976942369069297025447269549497989644526219620302012096661091413490744297420732102198218092442298806858260317853609507724557507521546073433544094698372280340403774209062897649385188938403469666049716472820375678682835916644915678376961618467912635916286060774792573181233656743397196391665584522136603017034915692692003342575721915396846465737665892166573639893168613407969140895319719182328267754732157717160233952168557471455841604765320613353672495366608877955697381062758329458953906150412042999393120380175048606574811236902861623426796504037475830090857474447918902276719215234808766874532840759438042294518068179001067839912781085514333163969414179520463306417230203453525054906064911501790366968659423233399720852557475738641992937041512554029442243004667120429473406546414962854191369250866684536252297038035738390539967258364388268791482496851660592469946165035751802352198437939197823141786968080761346452008907450519994151038904636711627563056903951127891826209236177981749856787189312740680392544726044695274537501519806389304841341674271103126214713945536516127907456191614614705498803635013756603290670854697351436069484921030995961396166426383805367981654457689914590233985716696142818566794983229348636045256933664499868713236406954033145052477625809474001416711649032952326106243498876999509550442576413197612375205723088498318001313734959830592789113585075464146120073879515550423086103562706514385832647248371310943529799106720831361447838934597557986246177673015875135550837342725101448896392739545347458240860028380072841293148599604616217166049161132166107262875171066430414588270192647353112524718161783323333007665296800952541287759717594531434895249479508474808279853708852028837275728581886119944003198807374911912457177572191466792998236239456040371882717747605495086905556056069690039184602515089657514199143743590099441391013838591003770988899198156443619244067077946604701261420239868568225123108493887356763889854496817217453149528646024513863087906788219135207879438720197558185055544311490337758004505720276304609939694014922170065393879747026902368437140559325188644875709975135911362623270240655609199870054607229090178417064012407042847862424508357144839292981779626362025424580961016373504589303845435017141874363590419376009489079898432455364407279319707771414355693900639538213105986584502889258873754700910349155091481588791223527404556802427803283470392006052690689415931606646044147351926214180718575721291379191942041428960831057269488822375036186245543127255703553448235235303432901525498404789956219410031935763264452119485726718020409005790414436724535975745956369705765915542695060381023169213944107233737193655717810530251295681495265398748687964674980222810716049455785452324583153372144136802699407184568547636047025027466471921547456439968911220425756238529592663429659152438009372550268533785061895953842563494991390611370027054715869256048659861374798864968934774283995098581832148136205270508051746992081028595009639311578558539225789749533796200054927837213427764067433797288986808553721892346505653231184254039168032672310560556271870021249859033887629124015095381677939403551464129974315234748013368061748748750097715309108639079961439576161081419616697757910340036193892833733302030964105257612289313574792259178765006494238079891260843138045272268512670263945666512624246408764572213516902759795238056795313933264931261096646068728862934435139528465740666591800043566108259189118348711530105957340509465765016618861396768649788399610576892537385402352805553565136636618963709040546159525252136442258842303556199360988290140837897015358736733766857802710043309329046857388317616291028458411814384599667716736067476044457004058280518809423252012982504898247390233751685011766602222024905950993653416089959277294217716453876393943715847073838376260430417435413192398450066908966223343109023928764542130948319191546977826652963855677858142850672458724325329247460677155226949962773136997834571982537429118083023402914543679957681320137833644119231422050731461013418629979123671687883999529693272788114524046562089601407396438343524178623241089898832372310924274722557665803890087276292376409436528176016990042975564421625601768496586187550681171980820998195956704524974527539989231627722662852850408445569459899855824657741065275536736905538934627258216440645950958109382247326368084196617560732141802203807719937079746396880080839548432169776223036606069503336129465002277087682148973818554224779631386995918407132154457419414820952762645492896084202466098453549374659326043881918992828736287519365185627996319552564840903007496949367598704320110303042223222755069284554132754786814317995398783816059205277538109848491966183489620973403546522166207114429504353358270850173871222428590048622395473557681304926143540523086983529731769363607455868040068762833335310419596027852817073722918749267748241095048348577552561227707105410492362103276431287322432190049418932512000199256518262274556837517409247496129771995569817360104468776743090205252572303872033716917930914878577497541964922533325781758437349740959144551327668658010208244228553396890070561650790388521022529360811867651840001531114494257444991935172398416670110719617627967119313022602180716243604175621945785645578970604410783684989948908058160963843467825072420679414958825149553215506445237346001108059780627693284460013017847602081062613601631246943785360084299598173972237959264498165601181887446351439464756793701205793582468838818180265564141819340316111257869368781379089465543660828659701715676974878773636733282772869717419863408970441782708381982753809970378067006549048380210199358682300390130817653479831753541533246640979588179501271326063553374148170868793504561307547288067552993783424137961144615332681374427029878781477320247040675448736477808827639991587689568729291939418155232380390742718957698877529166418891753414634555206111571951662011358835124310968716822678945679116235267776705302600836905785782104785785205225278570371969034079848982204751851221339590945860576630299234495184842732262588602321959913469024816503430963248955773545196573720978083272397893529013401322768437694234451684189150335720414278716037837024709450883019931244876211670818484163967298617874428240572470585983996525350604609536750406980253299542072343435728557472924087063017847174834124560130058424064576452841035111991507649610434532553998375903571785209994781957785728416349582690080159715056517689055579127123413026373631070231117226453411640842963818881604319720132195529270986344298955250415836507888079657386957025362984248570936328496929350686701268109463659580888743891399047041571233675373382290820930692905065721723472826702782900933813270524319694420983308196901612545650711773932592140403786195252893492625075103608093620568939825601118203773604634694489351882121578582036898532392833804268095142039391711302390098242356901410697836968873305475253012265491335206748509734029274203390827887519412203751507299461128020071688105551252899310131038079994981908662685154338848486598786431459314926904001352912718256987475098594399990974903523759777108255366698509284530062507079555211886782937494688073208432930374426206528596850001503821702288512879110759057883177173554705213215718535380521856324964397041342225102588507032157753226893622021806470795998968134230926878895141519301766120462824948088621613631958115918354531048720688896307355411605023765226092398979168205797929209826618289240244258094947321239225684323236773592843872051620584701031015977372034079343558045698114770933163353369651788835279979313160683502679770650303906407970422281696206182593105860602837759884339398732584655082223872593988153450597645200279623421698104776145081978308832843511387632732249461236152677866177054417509876538649782266517289476230304156615642549886447111618747486135772199713434587033699728657395904200081462392856965288894517445099631893581403610362121825361089821200766944092352869562013802312999083743551148987187455949148156220209961605201771903006256286448724393071863362922471764533577575698654373995119594776376065024913618024743476416070503101690630167453126233380024307103528822918610629673192287176600127657120650349251877861729255273895479443060481054464111568090967062836493592100096751521219847924671187147145620551862737515143111209680647273545332194802920525703229838515950320296458455420149001148088311499261817883425904911053129203375965508709474416628135841009118693743367596348881686129031916380515093382512592217385316108764273999232220131419206397612239966178314907914547128182731273630338406368263269745675904239521572930335438947683376502347565812061840127277092638685111637096217335706460962864853743763604371180063416941100429259624692369726141476235703449624426195634354868785834493036923711519257182907793048534988069835131082257166276834618058044312434826469336767744565212943205999089114466646303648504735532773986165077199714914469459061544268162113595088153300052992964737433116228888069186202139633954968083238394817688036667385858560717333438236542220570266645297991635930541894852912402510716667513364810149402634604331506017556301740562697288080167575744675349966471155994907938434623978217359400756499494067963368649511211266433854379444186098408338710836664066790179919497094318863555098090941941056316432125932644525571255311398968746744825067849251544785117134982281562805344550386351967497743237955494077052762740477484554029340097370787890396792457000402002190695728584551527477128790259821048974194775819496130020185050990340078518278853658152430189660475604569133231028811381135876751411566984420352612202201694812535601381040784627712551486661550936050479572491534814608192983458993457330582017801323671195753131677022513510905746330351765446829730258952578100200675711160064311906304603483377916483456502726992023019638611813188046152507268520306354495238510765998674304626367858435317909214363772030506318585646067251978406776290600233295823294940680878853577381837245192311932792903793834537689168982338760619497008199250576298843666143726916969025789149824568086343940874554605027157241152266318929434937814948924508534814819433856383670510617152388351460928681383407179699116017320653307674736175064563094973272307168315937028508516266956610514741432510865030393335772658524762841389474982796580424117710590847862634979170110343317152816894915942013823620897254973842778512820363663826022582746174756997978039400325308129888454012387386199174313407229260997514372975093739854153836915637054520588820750831294108342083681074929338053446624221245641232080905134222912195900351540467786563526707206254684437791405619731180171833965925034603489629733800481806836505019498742436028785898166111564191331087066333774330736848783506833652872908692422315713136182766579013250053601519207140496418601097335849829814653297662785873535211924198827634574703489201705309060850845665078792402248528431401388639526434253838263001007428485634355348211092844999697182532903388100610954209275243226624091017553419840376830577754709172948420862340218329998392823584064899673955979218059517696969089844632971519784934295371774435253349590278445760528756827618970839850514053740442042356448548190954285672322435333588179269886157384389953189981122975385770373799656446995934277318061903106710963326758980933024122098742276550645228076721123837079580926966506352774444103373021680951356867288164988277378636682843962398985576870478284200120847250065038740795783843892802584223709827224260195051023833399435788239855763076136656342452238520510726014675019218782763882997724332933652749446167531976075377932144220593791459185688420021068951087159299870529106030946236649573076299274266091015637618939903794645328784510730089821133433176056983932235393857660794820942904833658072265528755355426657132832553564042245200292536213265817053587343971093638161653272334029639573336248379058255026475649265941383692310633245694767963968755877112917493690757236117358076300709629339746966182791903361497727524253264149473625719368776613896986520684587321926977047604689197576009211442120718384087157483796666473726290071863107428570788919597952302041577296692320705762612064336634816229620569241232902595582693003408677143135395336044117505925480582363254875352053357335527122434741731666773244553784883819697890013688552902302839159462186784079568028598893146121389740584093068406384204287838797815587366344780857569223046164434077130293047524574776053978849255897537643418995212086386887988404430459975814677052392328992406578839707533884032956239645931134265540162997052731113618478110287298810607407745988669728181552876792307826874132667528721389116355637943626568011422865856399259111976381524452595174173155706698607467942816842767050118685725071683953304173813928519147012087896922608550500216722840910357645962267885950673978929796484049442725615506593022450401199397490403829591343506014432062399269527377076987227544143303627513818776019266827144855519641109024232265245320609789647292858270109065803304404716224480921525890252096657222456959689857609693809395233873202418439857271453591769849977323704212377955123285788179281692483203141067933384715069296175044940117224167828709434545394145319804426565463362589464902509858600768529496018887563271180776251115290669195493755516948875977349004592987401694150773851123177536122472322374446051553170132959622623218741204687837686936531994542431782772413330755702112123101268563002522493836230549418803215704162850843195657395005215286254438422741244586867783856202101748302821404984725026756248009154298756302900092221454073141367535534290324337184936224004744110943257664802552481141446920809200987192555072698904227326550406287904527767329461924975434381148757942659605221360497343599797312496586020761378952510239425591553556012372595730610520514533257388517268826031576590522797249973204483928663508235377615864186810128420576751531021319378759030229173986062364875451430783680169405546955073093190299030590537467157236943224048389413010740267609644004979498364077357536061991910634045201985799835243267600551086024241992219693055661382281438639571249704769352641219563418313230275362137743784993374036085295214201945246407421142049862830024030949408908182352201482759368266389400703793136952431649409520743409959671210500456435567778513468998175525102902413304183627559476158171051786652969203793828159959365636536475622835077347165490853116540794077829270342727253973312934748889860787803987140288485465362931593325656704168105882189226062844459922433083421571117308390562944705802562914152823813478436216408993610176797086408898835435419140769057782104101114982871691187714936902407586954540908473360385971106370382682655255233978456399181948492892903665485311984144946225245212069495247920664630263363272496070013896775004551615834808639302157066232278703214343363245404059803904039009364771728113224793048404831407426133963139249147651014759200018171894120647855311151451871880289157281947967211719754045770973940163705208810296035204726759378894327783213569602831992227287388380613092697819391391746784537814992929529737003715160382542221944972522120812654988085133651635147451105979215725643887426594944495006903536235395891627875700423194754641008254300233744490394996376353547520118458902031429931288407704041893814519391799471889670621601840488687522029477029111007198100040479037054466310647679587845912290389694966314740826046793428455918441041318308356445704667269788691045701530223975235170685077284138563012053543424563808690500884742930475508891776527235041461235785955227917242717080341613375500071313521190031774032979239459157357651456214352320837451213621114475712026476741464119879150309874815585605478189235474066188070209727317183414914605343792939884489325348899545185737250819939939422059648670008327193644492497682852069657361858455099117202269743977337082753698772837883592001162318383194190576397987676604515492589331530476618166020766343514059088209782220556532082009962688162260612445195312657609198754475118488152355014600000998593415731097669559512030671874168444866372189531113395388323460530474961195879953762954941005862356506617957976244468916517926014219939278553295085296296934085633428511123118728061762880126714229083970257573223466988204020049122422813495849561955595962710494355786404183327261824533408546611364158213582764683830754331811660973607710592795258737653305032305359474609178396069564150157586167595526839164001985402627755428172780012884476524960839763714222495102727802961768737453929413557593701444768063775367534684164292231799439260536954280188911415663000836288893028508779019642184123068823630339901522966741277491584303892005106078376888944134665572825351296464908849945437032575638871434001819356807745051211273790990228280519113308315161636930277402059778978730290176305170327592017388150516790452987736109191681421507073810515785499977363279419446835927094276194937967318327147020987476125006845782013233891165309907632823098854604732591382621146746361401142320185208218122447698033152369371489912529643297334721694663084654425601140833375314897961309949254171695482979080921858326995477589940259379546636410342912889233885578221538791514217291716895717360958071104973131333329090142271092434323620171325097207284561063804529705196813236000598221264417262876037447416886293374332552200934184097783576902004928618080447764577781906572127514934486960651872796594072664274807824183282746126921051368629524154759232734763689571301821947181857659678661638610384975631156083006008266978598632355423048227593338179625721740032918013079603063524404503316443042409491651870140335814929775359446391756256070479949180234016251172646954657444407672420781999255364347473123959998312324105295645035657232674647550298703522204034836003227481590773709098479473264079813611038635970255419760375396812041201595731248487724668326463286672726584154802246125342804708472099366933127020609128136760914199300216284751675146109279545366704479149902041523286231888221645992267520440996941290120744824992465976328580883655477664541241694525079764165866767772092771849316964498696336631883197619012825186689285499585859892636796257196234362835325360920113184777356381650863465699152710730010878062639835459770093667968546591197635965435592192696878861303149807543151936808973683482857068854123860843532854252912774099559526799758547831069588446558926106492163902614172650409844850499096156749115054176858349033214083050990046406042255532937069389541272268464567713858653986657267871152272921709810145765261880489509701497253254698479033393495135920129748733000068891001441595911957483012739712473315784830954178194658072500689319205840793869850588805448479488292960084428342091066785402878030106936826998861904511922737250749144318966827868270212246636184090484797867377586850656215377232385729782946237151509447081569913172500736759114386042444347337577225429644620030414202514119273391657498374162021571263270032912858964760215123721201530961110619356987034593905828190092049929107369913112260863316178246129617288545138940265272107381336766666485224374492042322002911306712314182168774949309344295342290913542172775475305838380158098301535515601052458392135557604198386376064775073795592932842538365317454578312011927751439358579990894508650995943724775644897697318174451721374373238644814805857026052018102716208607048656635002085933081756166937541038421852705690621991446652901009041622708069788642551016623018160136876006026450107161200175749724397390655719745865837186642907624626688563345146885555324368250661874055648445333359137441267179051564699499672004710454883794552735631338883139109197128812575414524442266965718012425427252622243226881898654221366102512023455922049348207242983153456318944552730153362613842752015822209567155715702872486165108677766043363865234862835857810995829262614294892911904947105238931292181460921295529348559281457726431335033427332728904538772383788946104580954060241905620825375289682976620128318641477920252385886298149592617032713700610135729345423074852371624442775903216683065105070288577765762734886241174451580514756354996339879274528106642593046949358735494578946026661544933370751303275883160075172314454042380361995119499982410293787862187961856153724325047702084156764359559698286950982755576455007556722129815863709604324099647104389736820988119195601363989737107026320675385833438794574742621457703105536605859570738047650794110131403265685063096521998758595695400259351443949424721485091729088644701361726104333187724554707837684543414182865588231939007998663427521218079172804568730100853061352597989436974047266183850895890881283108181531502260201302453720115081813635354986170614154977719235829068784874773942670576430944434906123086969423581852088320284891817176352326663426402364612727930218579106410882770680984337782297089081449170046336251577154257907975049317991734220979148354691285856028607971695925607904461520876671854665391669446802899294285334921913871712400074309509627056924095189621477785002376932921759424273579972338349985473090030298504171130739786133836018216424477143992103682935264899728525897554845933771173394487302257616863570937778972531898821671136457968311722564566954939056286982991035510501081315887819648281114882379565460590675456790199864847640015401254342349463237509662945850576135285605266423305749522140169725332837848680062077044546087292841447819828924859120976586072532730700878004309914046645411682718328665767651692862674166561778139082640472188147204131353498118545715405680957584299348108183476504923173655380466401101054663273401424370220903013235109685467102036381730176948547670566198402299405516157136394759758014557405650890157941357552901573800374036027362186715886196086127419733413411419392699433682888111229551419918074086497176670771560685308873552397151389549427903465446418250951370229679243361441783913754725654655756592389895830116296159974745174002539249362211963686867835839440380873849339386713501041547331000076826039439069410998152583626413577174451556775215129852674613024128266253870158428081937205412422001099948450558403419522498553364668291802173449597370679693036658829687346514610918550019035864414419489911944935421926298654378058285763838773251698847058046113010612019724909507828052196414719604400140436957263296068824498885434524899178843895261393367686143727260054246839171334356286630201434666383815248729758664325271302495426201215549191330203146312512096793557718520986585740596782390895123302646989901459204737752564293521832619141731872105190439888583688441410619214346192059454491820305458443895900951978207392682675897915902356527801796869248759475834520545497103624279921698213983359054466567398607559673521641927700152330956983415070643707744773992516537028810163452356090668679531902828583427739483129282043328973987364189400320186144840214683734699412476036166237460643721024645292803029375359090802851471024692248655420303720635215310175673660675718300447237219126188382074594693890059408523978771182912564744360884970160138680520065862853722122365112887858795158525455610323827975074610468624615153055372111136387468518056257230664020456719089528401966296445458551446107155671572496286425745413981884889913052600086388666158283969302791071945553016248518426879472781152921589365396064413990453429212341167060136567922003420168168021779224631167299218505265601949860142226771483309317632237283315297992756979272032702063458129402018458563433847691944303009815717861036243214910625122349376056685921872431131539582342860022622434045811999078776216751290554125563150578187760932779107544056637470373041943706200338216965115413170797272424131872324765261498531085309961063387342452927897712456557301301930342701096458819348228366392161634491132352251025451770550217661448186762693528145161078087539339346551868257375877306534199511381953479220691128529432993264110959521569343403035564303701388165497478720437211819246994330971113093882915681823488720473070357905211490980188689545104638759471881838200436862635368410773702291541127056423280428335416056729419537524456603169771598250745143538877233314620896489852090836626861515628520769899460061541696336851564480817645149023093619419455467482847358304410472631831002271325023947947997066898507853581800288348087078246489309128568212379607333714815025926995642517797604926628156385387223564372099843603239034833548616535593294129183206706216909640045531540684841616022836111256243446917151208322751369773341940898297442505444584818446314197231100420000384678362815306459220432961783442953383151545968436952279978991383353313990955604815025134867879617762305488387830665996426790737460445473247203241587473913986544486670890345677855813109632450334101674767267239559609472812933074035899112839773546442897380967553793803318150368825112945000772196891218367234389246864580152870241351069503040542566672627449416830737356066321260608698216324055476749580223697124584793542041631830276418991227181762739069127454903048345639960745464364284135619821995755134598353998737361812555640028350952815532136834978904144057296340294432697785377894983517244477095561133792997252579300787657025732158500558528348613824716691807140983856864077986456231079233599332073137107751166765475412523246463791564646308138003625251439934132827004036298867046804188092048648055141847061429230913549375000303126676083974727903490744970886187677562037715439786133965234419527783830609116871428321810083324535477746130906027531461668661848176363436248208628543771707466311234031013721981684280985475818030777824678351008715347429122876295655984337792530243782403181569150411429925640824923793254056002377360082107304643629874243966129412436437491579591881872805197016147647381919862532541846401928600571100842305670538985082650387504399491161692399245124904745914293961788620417536071998158277338075444162999631893681106555566532383852644483873514295253305184656644455908049188058215545250472353447265401411345692396393337238002381726959160175717118233607666484958385460735827981798803862219560111722958407235727230506883985954101276600672716248299012539539761526015193595455351401999035336566764234230784798666546886397599882705372301413079570687190493813238784149137953199029138464453381585886577598253373231691800565485992097691945173845670263945544921180187659132881671588540365098993336881950625836887213940732788087499272737953939008992387066054641627290272345939674387656279366589168307123640715710972206444702907720217922106309953470885276850817299915661872896033621749418383785697694982505806846399124069607037980725745270208574196111265031154164872933542319867347384567134229532848903551015284022165232194130640858836071263203384678662812108895167915403777955507793744757529499313668796180462368388565851667521514572813154858043607043929268434419502012473157985169175535585304801270523341738271660908721150272120735370479168470788545875439646944167335722326572500187728566043398633625632012568065870291610130214850695638779452211014505987544275622371312742244105024288722597137516904815253267229689198879596923548264614743645838913462821750440324704745104003871793595740219272926967496497284236715339546405961871589740014323998089767156831337139435410982568599466045135570416145218432947212405559038723606849604879766704755922772364914324335668756083464837070548984425689754895583373819135425423793727968199749685784950469538463503727176441023834853392263027397125186743276327989150983001288799269140211275242965766670378018281056524272114108004181739748485434195790505464147308943434572170409985844157717890506550967064538421059256189707689866538416184578189610328416458981311439365299412544315508538374531759778629045150317551107967031493392982523153098924677500304088610698223469885939054609394869103038054464549060505027349550952418823397564098663341130833676032126992220898063764105923991636365455410315503388177758226045601678763909042243057394545019478041831776326885318950121859998493188120026029092312098998162986233770035948078995895127396304983014479043865272830157141420268288996078834801294604933939399674602084857472713003195364284579518723105251062669606610922564746881512258329257502388740972880556544559195928659884227899377008405713821070985175574063728613017204399522401591879913499238208865823805008195115837737434080724183976149409737710357124429004919824023773117139902746918617076926315820952945996790087447690022306333074280140704280344098627650755513047708189244347403915372937048699697295943624310633366522172400366465049744331884757956850712914086310229395213398812470118356944239921339082759394729291993131624135941435478647071326463998535403117506700129906662832462411880013978619485602660999306573184893489049413394530039644087431413092415842774897722216399992446709907221440730167512576796346496318647930146108894238685409525936470796915449814748898445374076183749715786883368397764503916768489134647712163419610571319237619589233241859049975160773315870192542093849257225395443398472459587490645296785810063681103897291247049624954858216028947594269747910757881611622104045714318043196399187255754169155887540171291840137392281384107123960458205717151643131477190681100422459331253632875582821601024934493716996072619156058385110648900513466087772295439462131437213798665257869968820879275754543107659310531864197624702065513215500915160536640044912439975814563564618514735655409179185282165619692354442112023324569738878696284530263401563205524033212051758607119312409906268421832925166181894341006021645079287036606981581028888108395660566531385058912556270230847231850038774819674721036475016689989237673176238486137259509528321570976059530924069127086804723313896441318911184182934889484754320797936839149601656192845861556388785538227348721382423111985747099603873417654901440867268918837803584230257121676782509555880920918793204178625841632579288128261760303346219740169011020239594758250504437812937593860242702876629639376525477222347600358276088484894918248106678083563742962812217420574324324335827341945457845415122666657203005338369002384758297399534251036861388839759931979402213426471622764716319105775755260023142053714665687963814918831176181145278322002996595252965213672690627560506929315059701202129367170621565464449937929349579877551895924509178861580438865947246048245617403476602718463183054271278011070601228047679906759293878109674278215763284251409708412462172566358172794034009107480657039563966099982696571946239418513783165591518491000132751855642279494840735191314437963011215233660709521349334008694795336773896217765857400038991407047300483078906495173846932072041962937376273795343013297936236551588479541732700972441937964875283394285729381671817234488887980430462779838546988508206141179337265341242478455696517714162082638770248613445923393283501057020424845559764250828741353491309471485889073459022969535437319051612418798422728193937612118641142465143417565829710626056526897242745583003090905601441685348975353719243490307767900431931209540055945800956948675648360841285294381817688362603094843862608575619496095208466460530481702005018602105377724534141278139689472013325408352983323618133251009765654980875254637878232365132926285566882949475994902737681382537289568082132811246193531323668673117439648307416406450565292650557693407154579822928166595777169963843693476096982078764437352720094819559674782278715585309777596052445989940824788919947867738241417312550665377883678264129781986597512579032111201887166924217491235545003208926455988037630078189565354634031217381554833651173010741183196459411428511361511831067430472030299374891316699470257306113867671786169659439547045024047568380053213220244083786305451634797427578157420486426851414818569048372040568243436804221729425314931028540134405081345645885946988971414092148677788015126440977289701645417319910866228486150983982046764908956686542008152835749926513780444338348258982757266535678104458998863527850394724466882084381130677159679169893260920035596387354899382877776120295896829051645180677138577700033587202306889596525760124297298348498608872459814765321083224779352260089106701434036171641137569976815074101522933625503472838473486607016800510835391732900476860048785769535941382870168681374070747739243229256142434322066644452868780817631958847971781083735720211005747772264775493754090307131598549360686186435648897945107902317207617080323388116067535816687045496867090476295313951755355265223894550225479973906137064918038268758303216199858638484268227168349446401178110099763406504840063040758527346519813642566978885684979974085736348119937533890285352333241239635646570246851997088950298164196259105368111694066458559755025118378159671803480050752775940819722199361784086717024954546912047099048255925791222567055578338361773343686234212704566947051691285074397616254341183373791862504751929570655476709877485152423676029788777150273268029811020547895187548859961809004245221970511865203400632422593749690200982233285317423161224880134600784243464888527728318914738832054698443487022778553984327241670667514076100097823992340466006149585608982644152595761289655479819070110146443986600397978144941172203364293201041586665988271093889047357729552474844911307182437519625840078539494231674704823385102366764471526838157701601971645319630452017987601191775084508321310421951131784183339250751617669508173025517976365612248379045999587807581001773374949288778170842320531668774130394633021387549452709560893000180997474577402723044032313972215391104755202568551888862054779872690314846622031095376314472498059147971399739387731282883469535907968427488059898782037116996103096470663729552572260107870248227356856868296475425501349996749203451370227389461932146018138608095487874888399660512924028216021624564462234367602020942335569328144540186085951508244903155042687222275211486348706572589587166315869675805592290140174167921260493705544819843122513821866528062002659683614263289828738757209207769216693010574821583065782259393389147952299803615814079328822634342767775609171764773967565083034246912011807738946196168998883427945333218045312361220796558693510261251243990873203021837220978214200906893827361604007988778581965555952362805109242781908196348850354502166069881828988868788627499224073491602623148171708747069724277141933021191918419442475493340634506131087474534946402108657466353367112872114146589975828370466158613534904169770388766499008023632487530193261518972402570042839602656565063722856392702194101998751987551005945175298871520796994458756018175566858830893491336941534505532764369328789656135518416733408336835008291633437482458132834144882881155085503100691914068613661501276297341240060275344291930299701092471676147673652385432405066727450154374143104096602590845023068456631874454809151478957045448910066453968042479471945259670327850741209322849670684446377072078129773791851613067635728452826856433757710484351397581258132856970360903890494598064753987422513748965214235258993307420760709206793878916470792881991784790716843996136968004324802194991975213384853194352853174009915215912312280180917744091793060826640550570040915240239291301478456894168942032369261766262175467670565729250927079336932391421271556976159779327297959723167041459590131368579925077826760776657291161164206848761874869567985947918039602665283931991939524813775432618110599715367381610091330019891439472978380183527720124195524665546010328979869632844613974682453282474789815701707492354306245882289586395771746853937053129006570115625458914814505072683402446489877844496480578067657725585942961975701900226250960033255670989165097433656478971954860301980105446650650769329740104657863548678166654243336011971833125625493848148077680933406517329264131599513886331088372019163631871504441416940573908757337420098259095878401456419548761023635562724248872487358376127105590529644540223440719818682062217522997673101003023377478751659784374707872788168843106141071434940846299308994246634850845159465501992049319328375550773174440568139510301867770845859827517155295671594545126017085407154707803930868088913524259053929855742596896179883238867609968174187980897149732653073535323091305732679187022455618005598415006449251446993445897431696809134492630665511935093936716096287804796582138780808479012589886648672345353121411958223148245047425532129676696082037517032992985145897661265545706088907419904116076934066581974760185103998379424141856106882522211076637495635849567995425955894586384809032467958290852806844374437223720579698218985440352474857368652296711926217391420602380725779634968399713460509855217132268196953580912200117471813254630196230894379935740202718490412687069878846310299399947998728569814569095353361108731724609216122667994733020183577553361161393694148893856191965208657867156334389568512261796399629353732141415145909808348851807249649942027373691917218609540913590882816204109364743532493755861853442314947757232203127772095894715881249024086594805921128329059087422472469519798314206286364213399998315561059462724989469399960342606099391427925949682524809967074774219452232050832373320664191486787498203013485910854722693877210419494729731135848329813580154907624461438373740275242336844133818360228932795155955521201180887051041410764503178323084048678714561745797462071955709146981367975930544341562668929071137010697990249442545863954476173376619047671080853667722481701711982031353161809015784356637954219957758263299950221651554506485355944142232957131734798587340290158761256908722788569542037077255348384209071752814664841165796673700295170322281001518688991427538371712556315840480549815175612486610089223999615474669942450558917508108206381100314510205208790198626925262626119306891662052923928370055895202540083031226510803034995334876149500046004488741919101786017872924037689054141762701692506134588933338355406900613678246222185536931186994998005839841186837133716167636347323595452652520482786774873645012517014035542242237559112165068263738298789132495581568688094328429524268716622647146929143119572298224415169489685467582000122223153390767885669681804283377293391421522556170916222127253401147332020142360837707726247528926311066044126478374075451573038130048313969009997574238823448125969817289182754060357722314832296546855069599118023024185325734622804896017431691912718951684151316980676507363782476485448485866566689637823222665693314923679784023880094097092015256131785603994233353182485991718557570246852591181924162880047293288314787118359012660502333708935258782731147731444221891993802822296046327081990515175487457023068346747597723699878672297693260360678106758818000390287219659853143751261898838073094444168421776644835291900873048654048062854419457846631842807025493260193687278983128546261262473875438606334782960282081793419064785731075180725220878051065205825699444684388328171820651439979390059561084056900532347976958771021312196944447699334190930724431145583134896643427274713582286851726011344391804488418564053300772306425916935440803142900444435611974957824372191811917606541136565343384979706095641244571369296260829933616940896431444966416864023484830794929316100292553917895966670734664899029750242708382656861763745322064039536198358570504891163133272944100882908943201041217648287600618226811732901177185958682903219670425112601123522035673371788366363645886438171433362602122083892640527514821618953423097862816168398199288306002871713052999889071625849259255664886696782146216636891358544459890033660673086805560265589679419253257467127865014732898699438772040400359823797921357963441971503610783409463669551699549317888477448194116064819844896319798796414019967030868696614994296130764690816894438001522160430463730901391845807425752103906599982018107523454772378898527099474591452714412963565350001884201004146147599393374595367579463660249683887904657676317523415982144464439095106209950995884090246778627816316827643715855634477644962675765986061196638690726851043536425365696764407859084412150107208454061237506445498608455955497786827711121784181870086676426125832390705374448275974078020110849872826173720930787508522259558017041922813308206710766035976298283885467535946005874314959010510245265348617456436317590653947826806307657012287698412174835950684666470897481148740995794084526479224833017017765932812393018147393459634005614302553919788724191666085349904057052188088733527009387165562325912582275297058571697399697389147001771719602965368493847628775655340948157812646639904771618423420117457522731975387760685127355711754161023213692414628497161033136658549490130893486386242941633612018449696204123943640934162669211895156315418985599198208882239430003753960025370673463519767308071998741304832988100792690184985025741467156925232615266681585372632996473028088471322810217423698084732548320976865001976737118821430287236985633363225527970538428898337161876897406096287445962462043720153865658274713562920280549415428813022900519808999156565458007071833149110304275124603311091410245446713699961930209013879524811487710691807980353284566768265961437319683399428390018662103170213839943684029187685036411757457307425016031500305175345997180006032185557107583436381785435937704331986993464415664942066661334824404689907826403216942217848741353852662232425013486870978955143718005146350782535221229851013444067798089986453143394957487753546553205205236810580125983041939807278583229242277475791626887315226285422548284580086819950784289153126219921645264039250259477107489880954480162363348973201949300251714105678687690678900564967788832633327357230142450307284133574588509354230941672803505351367528421768044896198715773517273565272202337619106300590157549384201171971572806241111494281920922327745098397935690629703578327222043208097922670698630971038587506605976814690607364323245742726939436953689335319815899880443263072640327009903296963237814519226062012902398429865819721026045973303925244212923032503725870941039397494497623142147064151955922562612381540802963535519185927043866164986599444044853607005588095743966681154884309556166965140737266080999426221778548159663546813581871475058073373809207634835291929544099583304933494483326203896183302867596003072036975780016596426599374643163207186978844146530879716474892671611323277309993207707410668688908923447843756493360713194285269383619159592815209553953151062173119204103898558784437616893848394600041486654293710439151179274796684618172866418225704214515366994479258939843307977225828459391545790669686655596288709537270294707304545793656401574896287591739321088286361364121562519017335521297856077714285852097442725861039878874231080954410498552032061466209034244259023090239404646002761022722660740152407678964547536055303936478847581590763905308807637531960808641706016807491407967705136889158885048259913922662692261312671268231800873827716095070476450271546006079738461783968008049752712164089070666936590682958394056376593544744896401711867518103006613178360506399223572736822051901695999998900619315025251320157211382425035163786511857168329777496381841019241013140817561078266147184475212152020852062665938206406546265409918219350765314516696120233689360316088509418711384562429434482942156265378225790878416781278893363619334633378787889050566107294541574509839172271880977313156444636492236642153771827105938672697183823239804670563244524705415596392502487726671622884644815864358528425394478673438652148508729958128365534161791876558650056994704557795666561465694276176770139434600733469084828067204885473448929914712266402879256624355904034668759547455837683712139043724513898584093477055624507877578257068125004638908105028461020751490125912969714417970073011473950647121435010730746992883544861219934023744453353371675993127165896210818420196809640557006772661555065215345997050016254953093586457315823741718270492329095663359430311786717546196402029407327305439266977068451886686407498687582507341597188687420611580648868416895448619275156570708682961212345903820932485374381742246415977718801296805553991455588307446924549102272172961445987855531298898346484735557568131262319605764321923472774041762627699304620082273085013348690919603080227014064595728285948148595455585310420838724275926276144029038646465204144881401632038582918593808870687846828310128841559890188882863789563245632200703358335375591337065134423472842367437565014700994145500267984055300530411045540861035816812698178248012432261176404668988734748151062992827985608364292865074205214071894433436727720740577805507659113430904793061299628601782805538386078562475801742525145734733368652291848141426627595749288384442167694521940709795469519544805200937744453597851589608672327413272222111326966535160526804229344436693698496047656553870570998846316302091671540588589163683131776521467042939157209366620567251534006840205900306342647398473698906659358019135534305770910161931365247536397818495525290156742190990989491886152550713348328083692748400781739129072841620262142763986238950657449151576346881542848225315535251708374164556254949399406054998629857163822735112126180573396615137111005639806836569321526275175257202005538718603018362981200101219630435439611058816365013249726619484845483530754052148614909812027343187976868526926444910549730148901268479758820222251418340371195800682670614399463742863599416865197352221907243724644061201028659710152462592569587287952806805680877193697135500985198772134401015748006703588648247046563708420324014741702329434778314187294873530056336838984474227231227507884342228199251360572739796929788028699018534286379442364615956024330456071941553481901703960541016167762434914389587670535665249401780246121928058053032359188918593966112628992794272460976662337485421647154523518278673800960317915798711258024944466667602604852966966944701031201981683379820915754078894769463042736429222041059890185483647915694258536024618277772764163504997077920174302116360687062073216488579855654113992510503385817213721897732607952310449874197754556301907449618210877129994740172396223320972360534865435132044102764282013935253792541024360993072732411939763804435484502618500623637739762677051357503669817927559798042731987356725588372492250790563820180950284996180331194024098039500541066061980373836067236293917132387969286563926152167810573877378757677462682658362510119053223494168886698603675650739916247196788647473430942686406919142166729143786529761696349058038119190697274828741372470038468421434656671297891783310898714295118292860779292505969265285748394202196698855876863134643112204467068593950273767641070834855871123227693071473084194372155053569103368439237667514515570575747676097923110499694716879486695400304965756797731042762176223045826698887684347211319670721744691738189439204273985190982882514793225103271001293434645490071018347650153070256178439358499920342033332266265519954991727077415184340985031667954195987763617638558992806765193889616471722382760713285172082209523194259847465059625379720726752740876577850235781345980701614947282151683188545600597879558494335617342786789261543681944103940838036222386290893821764337189437764027834167376755844848007187209211800196459815477267737135040802208234605652603620046262737747745032530027181480268808864050066179926851836270773094730532489616302771447604461842971680435919370195395594668841409372640023854935304083076509827795069172895747634035236454731472125603674834241593980907712176613267904372345074928981445839195308769675291790703611377134385137157332203224115781217382821317382313456884136169213359212859021531002611428260920781644041363134692903197812534748241092350846726178394383086380112069081982398798287734617994765966312156976373218528802710569346049517899920782481376294413668312482961884063541855547093542057062237955042693502916731892321746497733145991873141358440388921779111198781010950250246053681282989421277535082033987728945968056723015370118838936865426205332629969968651185640306418668406811587304325975843380451697380749078488539518875857985779647893200474055705790602014006003760901793502691721310285800997383297137289327882720617403880196895102277705534501096932616058435954347111335958292879188678835033526568254652336078836291882641124246423263470876381322762831420302209238796126062402976274875206854715835669380125096878587334667190976851419735339685587646946095063376083373799681265254921981514816217077155444429691610318786237136625783908636866927223299024956729349758496677185453288797249988606578692112717782036037691596754885152629124276794194286817312616155809068070290325063161239746144070015299684705898776862778004044142285134392780604304877653438674769424460772139724399785666026132527480779291271807713061043755549092852651360526002410013857391601533816219610972713915157462354905394171013182201028150229777524093863239414442309820008691592969557269118495158024948962727827434931538775081191900857269168392417144179689003662078788443736511740990244351178226799804195988744929021222901703371556172838604797098441432345530677543444286866803862097877294232128305624075042621088646615794849122653839574806191435802576761006650795140954006923737301486746572871219176876687279268894047065873994416346818582425585170811845618028261621203887137617459941287282269236674224608984346688594911745736958760721268660498610155368372269578651264511327678179318732517493335173268620234895580739906997996711318508026260285449720914591869801260992764897741866989198795725156324499148428528877180458304513756843476707304483609525522394807591506257969695671834630728035836399318584527632115163899968454168528642965488444761888602633206626207314406539519506138353055951964926699307351279603214008439220745635244780245412772363261173003546140275020788054213690317741337437990402663714667446412412262988616115194903996409895003593910391451903280672273608576577470045237184560836796502277487924001905057966696149122684405103375685293073141577687935014957484126071818105025529646180992414372182010962547762966119820657784334647188585855559782786033694780650216785199122436121950369105323030892542664525096516802243974209446975131538751780039127661180444617610674852454248609382750148537484180638307319126662111334660367668980497304010355123223009417189863369101145585125865729807783869277972421092815813182058328689590874637431917192250927991477077585606954036129213952503596081851029341199993035290403929347563904296715093289061079197258165329831648226932069079532991945482942230508492936036838316597443198380879393245006018413069996065951223891912808879028612112993604356035570916227156587731420803698267819936841183542886397513931365828068864643064487148974330914920190476190890276004572682300081522828874852180374858050930415559021279460060297635418157944643745570157915431907400736242877083189768968628587738840383657245737748261366797801153400696842928100771559072828785626144751814090408537221487771148224099415383641307382764076525605041820216521503747688291545962944258006506676894919295239929729678828794078410189868012613483473037585324996787822654482820829588337766847065870240493114988652293849829362300100293105141681463759220474798728490397967886020172932094431103210071587252338424230225920091314679097874773552765497879743486094619032745224526484134052023520020041068088594696004576147749631445027388619726400120124320175640127486271344911580101752048763040130357818457669881471962540840677009747976029318309539466697468855083555994647595973191255115490633948590342206803782339263177125961732055825220299266860489591600103876050323471504500892446803719239463289696311341779552112420012572180965723860046065335814116916772502016338092231446017213147120493159744404622480986176096768493605530466078720135922112035125262614607746739467259703743097652337056257831685783081941429792764964489882629555876543552851309374865101676236196451722457508084636850773315267000364964624183187532672442276740957277205784857219821254041007362432397602968765327631113663943923108795260309732814093803462204686146453163757176868796854744722005561895966006677440690482199413863754637276253271024729598600539735404301670449084635809773202657295638413038068157267669636047318845362691764994734140503531656081083229345866895654681709005310088985542645828293611791016474013958155719968619959344937864851553587648045472981552497197129598931044815376813047140601017596728724893382504272160288111449556408303865361499467504154960869583306147526488218256765721858314448647939924892303031489226811032090662382731383754052186858740042363101060197126926182146880003872241855240803477964530840240039919738577663234169641041701703485385117528533194861785160792732971553250295151302464928481351670810976123384343423847664754956111733151368077721449656621253843310595741273195062263324064593381219244332864504161578715805717811958642117885778591572409902076522019179786255055384873430594099163310623083313515933141526538217267326922762207038713870849721845354655491364420368136185545061306670431566582574120165023442657623302229120075213801839269815550728322030035553264621047815482120831019770508261747308296468385825641463374426011245781553997975378100196032490320239512788866504006001254628162572856487309669544308580859735081519675535135131326405959025558372248302980861644594155133636782267217483996396526976109395322423849084447499286448342424073269338434414844954575204696364388108837614485333968907142800181893013898617687398436069678369474555379686968675521901855917780618881404060495956684550966816672690840933071161782079110849425511346648970011479429195056762669164188642409769623793400187988965293694102500366360921857754062248190218837315203619265627763892448147128838934372075246768814402853124644254497142619633249699515150118403978287255815499194939712614812881288564910974883678690273460871987096124175874774035836829949069231473036795473649278524805905006667437945568419809636462394135917114642623736545449439555657810044487178268260086400761438825163507767191884294866650960637675368186541825815769987586218623615028611880675741153159924522411546030939118779921461244668581261729412358741946257882741700971328614198901121369634728434815836398133357313592919943757053711120367866898090125883075304319532870856247999234580721527344555353467140452273117911417197195103709669035512739633440977702675491775574161331633094294904042540927953638790647909950789400941605374701720175965613395883174079276969672038676411650551598699850693034256326977935259780677835033339783586434754226645384496396111099677002223512205533731702392728788784484088023194461458537137680781232553286178450372952076824184175495385351518154482032728875533721115582077678370268070825969119769763152550273385323191505368850961232019956477597864874254743999436152129625795699474436097516994832909025382474890995472919088703510116336270036213095620991924693184522129798767891020472848526584126303557824539463874593383799926302255080711692080692751539408532095061206012707276974011211334913192180970388277003141849668062347000417649704415486491471057706031937198464684558809484102957196071403255490766496661962452666354202569853836213337363207230400784738078042339082435202681939174897098400970379318765733875679700819615977267769485081916397160242309069843126710408047871508849370147888059435637968693741063003493582241627230198349840718882923129708061661070881957118292143835191451809178542632189158705716610492188820969268720533977105541053667763436684044601217751008265691739925286936299396214574188931380990946602589804897537738396638425761513071259354021634859655639540738404832041312482453110300947308638717755854808620164238058361268877307869141704260847727378559365944684392504967419909048995103852515512237958450917724563611343903681521835400928910559317330730838957490946546252191268868317653176346164951572817068623385874132890060073247011664476344941005186720188799124304004030146448206161091074434959780675549732127896123353663918579664418203205814839508580728949698115781956054781141968174977395950602219798119966327523651879500129671788068480311666038915739723494859554560755625315927080858348946102719137844121159755010536022721865638245688918229272997158535862040566660222290459067290541990804165621056268502167721868703651613294440167607898922338077540699684601034846251380118235988293799967030787464683438231906994683440817969380651896137984570770432589687984230353253249576568213882928832339719061620898384881272317528524040150097790956871067185194197025978927616788790548026862098247670054980308170247747021476639787795855833528451923953081871904265973316884596954539321222859782736195650329361492157725545384073976753132480363511260410007410551041852985631335219292562023863085680516018889859922738859841102415233283201428408405372431356620031288754542717962592029227545945563586588480183658174328213364813859806716207120751057646515968664684305351920823683989216671134994334092377887367707682093582871217469245630460107802939881399905506180668726266501172957823948453181493124405727466085476193091224060585631243092365817475733599224168318494918812910483955565799452871522827597893817477136999584279810931016619590167694930488063448694055065072254295473898521404566550049415066880259072583106434897294891502170021498089802421048490589676328989693930722885100742005792321110113696252248758187607466399509909446914302248681493530868071887204603190856237976086315570342274741206483457492022008039860190070460293703637792465934021076131100915767003183250184324216954306573164297440106121019049774549721128627738180621316228711310487772888912674858317957707306654598607443090955564567647572363627314265937756258093141196334566695137675147077565150946563109287653908267388454370346371954585807235125345246870588385082837316195744800641773723707410247985886339913373870660594504434176730237570178352935735894175325540012659560127946739256498864827157009944627186822190374574867616747661895893176698303720106382142032532398604517236895406386723671399572211031855214210573748867292811298327051744971207105929776965685452075107531112295046156138072868113605485721508453623262699320154413621473284934315976143619112768539360310554268108022640418898952562267871183945990854829480970220870512965902885694675186560350986782568192572309074808977549021544729540897791820289587812102153789192220336274699051586185241283300563589701470699912618591317878085445384427773630017248905520533131808386710160198068142653392013337171062574702839123831130626999895695889648759579024370773871723647801928848612785343470123036120327542813444071649908515964194182281648403999403892351879162200986357829185742891184360954347392495480931582115712973608109607220356554079676049063171748639743863180469663596931294324740217126793806424808261637352806266229454437566260146554685801914342803183793487729403379658523874262154415009203236873154984144927384201313661180702376028675710393696856136503524316908379321477543545055990548135673104591305315270104515334043605834802478421372330179694671764147314745260899545571415924831865345663136046092171176153750930836900645703688253021341866800556152402738593222805622290500509422454962454592621714832305289436518872859695296303095824234503566756406898275390922635154635086087980708061108714894720625498073704344635182665920923326047372292152768822086907402474158911983004447050696895329703822516880258774487983722996335433168578944160238090887628694265883949176147159442047585397122124432127512053002872959052616314193664892289204283534356358945710723213875176289735399769748276957422926941453433737713630184430927897522488792174663071105442243662062474821234375993473063781674450788268960509815609994155047859846947382740398898534855406637032868397252800813433066814260216082849604420324505384661338497580404295889294172922151211352192797715034485283586840888774067329616427095771210489452378297356811779332658323038081433889482450609025584805931288580018206901036538605374492860115351977985761600689344065610232815413397338056634726765843280117651531462437267395564664204910216049639668496228754247431667112796732692874063034493329499445944241667777726744157120757788048336316960824992354617408857433063805584407720776002736938208430352912283434590554438559102421811937073626832101798480727345217545575484399149126142284074189700628086558690029393506535015603662493932144387383474528720835907793963337713149478548552280361912287604782781224240027718112919257916062383016864006264670428191252280398032021309681528925177062453614858340928124727351300070260922010942366952940408595901401082896792816097264548308658188145996943868248855676917769186722717551686256449841653611255832914793502912140309567980529507028487115768438379990807177289490568179418802949311514413796478399481361213891230894337245438925013524653601907775109107572465886221944908726796673397905463602339420948453958176955203142229360044710146761502470385024313703073828998889511054247695407806098652667525718140584580395447896023006508984090865652230950589939012151580295285187822244330115750441519350093577770163976185690367906280004442322101651132596225410232198546046926305190657818348381241340228279736189268160769894915454324853347298088912559628981907310890085396121571836068469226790752792299229781452889034996547484419518128898105816679377897369420426309344627714497225694214615721457838861025523039045301125976782952781439122031937856106368280408566876987519029813303581168843426012278439668859675378284917074393834689705933670493509862663724579366121888843064433589319116120235211669537844419262643746545590797861232182708257906397315116878444133811856229791206586109361454936011524689371297249537680011584587919424655873631847638430499317052889209207585010157103641050672940952913490827632425010238866434078718748013688423066115398973980653181111292533435517149679563685334064908638006387322084531638637893581190690744945039788657447521594270817200072204374197208194171037668643948755860448597407809082574352733458595179592205616080023868704331017658649555468005483086831702629690466889206357204973487719696910292789369847111378762432722780555708373940974696436171724600685491280822182769890777240206194375855572915351170995712161134122432678788557274445714201339853248365331777669988733881594919570732531788057458649658820890596148785115699347837305064944272466772015347738326908174610698353668232693109895125632513293080359462865424443422986968437981467670766613550873654472703312231271686959258051840870984321377655281439080065804768320180626321490893146878712854459801243097673646352158218773935970237708574513175103542214556937537186412265915023224309606084188139192385914454530197977886883792942817262613106399382639222793113083883836881410628802561606421294672604647493944499759417239353703740712079808106630223402869992710517324692782028935988084347527873578353121613212037769427189160252025905522070890805866553253151052081415694397932495022988708342369089967067891668848788927344668284207948712702675831401080085290048407782141436070475682797474074678578298987477828216761972677212659477057244997067447182860123834017617805535789664254640871440294610278674676813927870971609297739486256784091026881502092172249447067014590373725033632161871002069769450960324074836313213820480982634879200335368309353846036616688023684622196290712196574708375489323684163221771527213758611363651238564989351421968534451242699757751536757004506154892560946006319535011982476365490988443596486323153191059275853607818870765906205914673229232424934359589547707691230654641968681857922310184027685682734997564225364071098351866040451770982802788770835072024486416861100360176651576164648814503630263166426677231480750268002125605474597890015982350675181969521797458889914982518660987384143786918258766305161098801010386848168589096079352558987324834107947234850074488520233542017178629691960442517854979338548017416202989234748615982222791244831135659113625951154900605914405590595739068399437151947333429238451670946499461244646247938144794265372570582895292575914831625560037168047837016718569528243154069250872383320882904562851129303207564031104561283643527500900101532695409066457454571076757886205917917194389083900928003966143447284065209864275743980640558711916663355508109441341243399891794188377439988589659209784228815028843769436531873622913012308234668265437257675231297324185806941134592190365838898634669472089545723406859695118502985018028725989678266087389815402483214106630167845437952069271719019796945437945625530760207056346170791411040803052065233540861798854382686632098485250865425379666400841782301718536885618528410604885795526314830906908595302123052482566559530565985460780882811029753711084748038517422575328949470762213924215759173165528177894253161592542651771029034107770055383667800990342648706561336243124438711198766387456085503822137822905497743060699148641312776388249465054726005207227247730787071486455432715877435954060757291427908503866371494104524418369662810871896985012787525712399131228577345717196221686663776243163580206476663522359895646413976745613754252693234493561197451605577363528849121214950312310207917386776821377618815759173845954165674723814696250148522356358668494836682415773303873638837734887234224787389262042165356414022265092360318600019433574275647073531140297162956426272156306165505740331820765618389656053594964490152524595546567817991174075287013265850820025169667593143280027666487734794577781261038554499165729822227612608822452220795964541028150246599345244352281063745034277773584982414033321563914345721949555322499603327910235879262273432522930886611621577240604085120701529245189727465582939556003936266086655068477525260296349759229842463085382309298649023440839365474024393220337780619122851678718410610344824291414393311646229233457498392376049527954276744802519783164667065254490897064373930364825924513443995181423515897571289719737390148330708476431229931144063265451970505882940364395492544338744284273246603639218142571252866665741060658864036542268078292278511082529358799392523384970170126029737343271315230817179161604572593779151955773603058018153158862178612649597407730334085356369071772554420671708541842461021641209923735477977246933464904813443002594012638938084668114884872681479470591075214356619656670329579417267167869358872713940434339708115493181516662007439586577072480036730065633730752300556155733316341376969076134876320893675649721257672447182064313697634203443644976668302628180134760912492480236397510558135646794949330913078861423413391696138367812996749485347965967225734570486287534559911166592210504786367901686087713312732873583458405141434826051896734892356904771213067019426191683577485559855366024266576033059678639196693552162458112601016706146573057704002403796508791860432976146992089492942186936253760935489785702409330997627789684490020634319644614046088760963452649154104792131131955785686216700669710069222256836903964523607633523796096035981082829317965757996300168501327425219761866805812166375612616438965137651774908685258943144788420789945471106458586443464895471352648733014428874769439600573075074968081437344934892345245610238920674328959180208218837425363758081429412401835028911390525471655191822332568578992235434965743444654640099117374936578387476928894750589125219593807412314091482776155806501354681696069404309335590924278532630823792062395735665407612291824453086908575542347657301601192752218656137001420101219198860157370833814873253016779091808457740997214064138166519526745885298645379115747151598370161164298094799420703607363598497095797026404989618803143239584112511904832230713877087998823277951041740564299585738286629938870098559576628640641568678046475479284794785585550183348867582387539638973238472092124476808874604781160081388867666480338265850943969286666273921061248503940939333065013496742378088378625606995269672970595425161902657418114691582692561639353989194387923925303612982297012248741380502392961854398963658907121187532596555952899546076213307935584146190192361904412950921833072469864544688243156586143397510215436636228994323907487682403276681735669857208641870193775276938646291802407658521783957519925679468631202786013120738168272756779890110183754310689617211870118901186888548188552303080453659835066633860847942273614055106125704971883246050136582282242209638367912502806307645250756373013510767294835982885428826285477003180820819443603761906844189556061694343469366950075788571856532258141268293092005754321140373020862350463347519097216504044702832236179710437284276977378249567162263412738307960813506855426156087282375585869749089281790686911662804942017903316170847936817134119935840947559201007855775928165954787838990016751516818202135512174479648303054581972731473296284170930469409446166021880620176137115029566819163736528576241575501567485875722852734807955409411518207519634422039006140529307048116122959098961694113814479038997311796913111752138462039288710378829573673738706664181145188115140042980534484955214886841920562415392146318015555265847178751671895247685368323185237076868267853031729344918681023335251083158263790128232442423350284036393623392682069693598102770751282918548144486812013584944962268491872422882685803286820312888320943124737251184163410714699190619112811915757737573258638914005346487613068186752447208099739947967883317235253738269877914807199696980825763360168673193599015234845454000266020942842514150478945344488596496121642227712202142066490555767096760787622436775374727031359643859678245231180545608966834715497469938577223803314827482322952982193180353838510535485020450166468196961575650741835066170872425448018860662529201625749095634842267985338453938116766690159080030061258725708527747930729856128140896787839440280750235905286426357968911739987531410847446634718717546872852635404804155258848415156078284740488315611710594929698410675652648432082823889282825783351560484730853308126797530327528174533889800497399128967546596489782477358057622414394219951389884895429837328648488556752096367147878964790327356038714985252422947636400655616910597850746473892939556925102785627387369283008500035759848963486285834529430019584862760933494923210076806518179316580870948515811930660822763869232907503809697861705032335505379292531666395174621392078355698752065174377859731679944006156307610282324108528746863224816541500729560465345283895141240534028745442542047721933810083238169254343700894905916938049538345694540520630518375101509652759425344903128570622467882061636993168615925488851267828767421259174919227638677371422092238112930950733085200671097798784135240857264006521228871558926782650719282752156082794412303605610911461765476039395929512478301944146350477539140295718233300266111694982822718995243982818344003067328986660498056774426117334372852940670172453553070955838707639642766138208549875961066259830009684699816224803314824373576631872019133725609425073638250386964922630082378555644043193261121309307047241708624338364980982121168922039474945890647700608592841458032760167657421261584308351054792239005553060978202605734181456348800068098015035398871048355690367853252313654009126313522235537233634033723154501169372128625714702808170783195440043680919382002476090236970681321814928181667437568400463695368046852374715396163014678322133313541951104781996490721658587259797890497890379397679026436074574596034844675792995268271300571525649005696790145632608795947204841287421884047044855892204191897571903728665155325924618755347952331001165290155916677978264135569961096856906213658529796725197375843801289580097331091798507135572550944699846703726123583801932428244756982383198374518999340112201038138155790483618869767182245493256432300235629953976631601864636911675940282337893612238185653761968348751094857044822085973545977433816511762614019441158265492535909577383504086644039928908756661592824485934354628316445485921428893970718361449835386640981822298369233756413683676432715251918919954170284996219359205430809156317358996696433636220759709580179994612515561846363050531812234284750090921338394994523273645826827724919354479690652676832111574854262258322820567276188748597208658224722136504434143745598217074211257358972472493096364831041380362749624095153880731054748359268988203166385969298261175236976293317182507471322252709798088182687116335158499747884041023026930019594967315412498523936396779822032925343477101056801913247865536364920312120865387885246711925406305011604871343031705987470038627623541445686824137701716414654075392674435608255529129493730536247656333516974433479592650386894211960933370563917052748953820340329230171316568260583251449804574652578306864399477554139825288295709263968335080912372575999444974278693993014320639919279290357053690903087561117154515894316760001540299945626695569980949127285096466688929706511334528349917121817577107861204309376346050833986312513389825704495986079819492333710548214993009504530182334233445687966158784277223643844000833675226988287409226746010804096615617272132069029129609905743925871619792229195074459867036360611141626033783556254068005770500245296182433590899680842124948345445927593426093482102796351941122521035129966769482904001691288770020266387144579508957900902846459245527242021712859382586232499194771617015557580544646628013719850572112455689222139480288501157560851029223034878261759436527086887167894260533939658087506392443347371794131767938878614268433523470107435384315351322262988378268738124539557358111849086683993237007709556530240655326900307379026990773522454762093481827177031974708420766221363037750937918337235399932211649460066549760454176629655709755879225583778369370279386496164324857431235099616994974598581856743296478245479367292133729232123875195720183417699929332334818981833104658368049409420816528667692467721448900362984673998097163668703005581807783067260853583817175802800913635242524907614249063009732813140764394586495352192613052958986994049137112829006079662847424700981857823579049718060761678202741039763649124011615347879480327319215164371066332377661109185001290021584067075632049188642726617014396769833689235083348129993398767699531080519104831885459563108938662327868595003660187530603656154931022596263963965991757904470329956606857330389976009196047497279042581377768090217032986616645739192617399696928901332569113695767665006095597717181508938505856733379910008626173915514882218582228405349934261372678260293874135736958338858644076897050266767118234643258734120762770653726771956370214695632933665966262218464236781470212801139515486537891140120020107110714347830640718622495536031054627714239973806889245001093377236629828521317893178148619285139491365671657934109538343433446297594204763375081421785309909893872577854115409241890228401786521652737633715235625241190410720789468031025229741469361580783395612801899479228854408693544923244004092677521530386021809108931876032431238353480693820233374765911360912778273648052523910538515382830017033410278270342736937070706269139014377725754028024366195150332561417717942265523200345023220260059231718987424495356239274991722761705633199163515337504950000071097731135824896660282607759012722176197427184965646798773432075649209289099296163936514642035497854192299073347341491224509599967967491727682032622844273928953149370478312101424489277450981871820207399940328749838389269432983891085318324609121531024674065494494580907783331011971841003672810409365052182781212312485588533514760323182408957845076404825522388309796659240485251899260326679924537241652225817967094060196891687155609042639047872728228066301917918838277053287780283212351636189409013216306978695708886826130154267513580076437134739397859796105244014738115353596125318749129545044163739736247193567759316018933792680619276022646403630259247996870908135182904280912830531376046767117277886014443698582511654270549117530419097628145569309128538007420093521538919358624277922434889889473216060955947873953262894977448140742609952166502076637434459662952400523245410814757906093132595754275412207740845736916710800388648206547757654014896179612886073508013935675079592348790565511480611158783537229452451471399443049832036583082337382073688286582734877849591091053619303289447052209248657956299791723649712096112378859269056669527539336340614713598185081013277031776843780261789372299779403771730849509183390405399469508022778681957536759451851783032641144899094577532886612057286775663101121090787460511001426403378474401306602054547505390246646394395587009519102751043622380588318892355665526018086107525015848938935721760381668473499797082538477257073377543474604864748189988827174879984646834586522291677461260686521241538890955414961298961893161078276187210919173706302948229357861982973377671406850112467802284950188774607892925117326377992098906680885882008468914869490068678593572992655869825693255367075805344100498798387939867369385700480768592900895896716090458896414979258370539515682489234660522954953639090017495572778078497529231079744639131685473386992211814589309586061278268205374174864915348197962766890078396905322313924574735762305012861642945833367971269694733198013242786053078448228281313612878368653133202776813992439697002163521349756065045555320587140912810146475360365061397046121830809966520017336089523486878947524400923805342405184850937089366797068924619137973289843419028515565031045169089186413216014651670660568870489564455366017086048559325409767332424163109089994751860863184182221003781771031071931604212758843965372298148078097528517069988767171274457232277237805637189052149473627287549425078503408026742665826326031774522452087041485214461263056771985511952601499596091190812317496197836950118482923872553550456386339894900208067448236871472678769764821669242295997280144621854399157372916888881675674760069588858636201896845463884330801552797628964098050014884013563901911585405665127357046387342523525836878795701439343106344819059417756188311145786096873805070624671229169602885524353679431573629973253688629845263415543622570555985615230786743804213326225553417989073008212739263524260707300545531966320632581199002825677639835660373842193581222312569999857564539695863118353697293702448633070314519783054369997493349246707196361511986700853387317808248552367130674603257049700648796425999353587579325959030614231103294157408478722225172200432925489074821798161565773016494836847600428725237995171187751405728322497221618427613255526253806690261830898617650056764119857068221100864092346602402826780579002722027520759647487641931807602564116735964071682667767201193218767663942111669433902270854599392315147512999624273920188967028730086673143139354237482126731829756959154567814833260081883681653028546723218845842334703657873823137322816955443900555347604282325251525955290557722010513848992356726077420359266478970913893423340614262030635693230617831098276028960677621983282339808114998799674228341068002721511584850100386026100199263653917387832009099333905830695848490919662936932998763231582701070298791819467634455370245545404337845022662694416891327046924600137014671950291739305470052068576667248142477585326101790382056971200994640982016667471395771054252213655614022297480685377252712169805255985809923481695658966460767659548716885090479864721342090401795542893167859987589093281589034406395652651187809041043757356009273189919522109461921210088652827379428829656499364515281187216837347662604052879932718207814324015467325825689378027830216789783006942095830935025298213298896065611609377267630246694366258117361540728363327722677168640998682986379934652526989442406187749207020928757380022133433381411923728925037547645607932171474998715444353549811835656933165274875850717450251887197559503246621380003305817001541957818032459489534668762596998196681276705721723980588219387912894484345784727867004667558896328173329714714009103072899727932651582695852221154167280944047345575096200844342948892644838951271820052837388955701740599817408838662983426455549792776575949440061294952684698721067784875524366680174623901710071235895269997887345671019147946364815279029063528197611832403211708942253403063949015731033594374136174091316218118818911526594701149735195013517739828675242160567437908529851884071188823698164178187339167082309312864233713596046186910794762548808212839333460969138123581171475498745496863391401064348225895402666299680687321229652918812352824422047812853712185574556145725793279873645779968224793729338923546008141448804244137067773814199695809355505987587479366984438371263875360338397864243134439100799146380055851478906176263798199207652220127682388985818511190168725764928822364692605570542360874903673585709124721678498123439460003907124904357540624435298397631046863164391739753074482843108133088764478564359378285180753889651667236666127784766564065560202149524580981688852625160496385199349856300749164278231123850698617083376975517161404936359989587216858951957623200865645740607148117558906326946180969971347206483771821781591305330856523738067380176190989414998498750201898207787255888131502078056251646923333749469274905363884193414734894598248362376189317138105892436598508900731926593129027006888847742295866602504751784349846349678009696713514333423889998565871369580257782859265832453022830908689572433138437334050448004052922884630488306570112649702612432909752394028040689333151741485902688361944757162226060015596113541816507459159183582470423012417438008986370066780426344490663216146914575550747007301884677112112267772552637017044487802893499872122645655073460870108729808176215467488081662668536431437886864701465281951334630342192740199701990630678147819753488269878735701322196384635821263011836036976262668011301714098979793725543003255890393916594874132711243153639961317540316805260027335825759692996884674815664700617256750912689193874217020340230522212355156577873511706819351685611124139187502334308394351362135743175620269241403094182425552846019471564856136958575883435042268493262050373493588646903973171491653652040400306781510176578601623061401154111243095543765461539318193285504007765073298183967780571353679713853561798630050481345494344891277225714757300562910540077067247248792506504083439383642697825161174279681248930430526785859246538262422424951605185673671186215180492076630914247704696600129873129481158849101737943847318417310193185868429357330425913732974412487851392526701713216998674446913285914289481598943825180603874734500921591910627041080960821521626954550464685704411450220888393208866621882442330527203225899953903391920395065869483891246786682668551024047832522947412741712994307725883114818938931482071057462804900904210568106012201190793279382907876874954070679355634114915507021444998425648973708009476431986319230896063611363576169855170364180357699274813651571672328871373301716221057213430197381794472026981616104374111251900836606067893537321425576466238767469340767790104039866358607814828198895827356093189647035039679458726296819531965411547872095801224796966705938960056280214227498244673043362865089895429148245030014351554832253619391811719084385240084084706724529010790408552533408860342788568412472860119054480608133794075138712941700937374959688099364919253273163388416603354155157809377945096840776510013654172266325471343181181629285236429294201156455194666093322768859584593432919081318297022902451413528303641394020656035419973834748171684462334664365945745772843708502434888410338089911442505983173491641788600409040745721594545988548850384126407033568100995968266325480208693616847753424947829558915479442209052098595008438702788957441677064855471602061925868039389451770535181305116358528599664318931137060137839353479202000613794989766388145052297265558849037709056565020493650142879382433846005513733673930964968676846133512809222136193284240570535017903088861233945202815550799045176693338648695724181406285601075382682392671147837525204203678530575728705975109942895070716653386106283037874522821925172854652572606560156321581229271280878040768924455292256239657842368418067007684216574905124485378386649100411036188469404923278209224281649595529181480599466701273446559762503906728285236283013339700088607217232846781429768885466702237670176241309294150331473530943615500605610591309310623530579901312600345511336293597547302242137562713698943251566597086651370024898314464675902893108325509839073695334483893634921108779766620526298197751735315846572431507570057035111858261498052876802123796387078840210945488228022401426341923361970320932405640488158589148180970548985137484431721324066867707184278437286645090468003593049896579465180566805781832361910240634035376902646907465644550570887811176335813137575748510433763323962490165415584328975647332948291425156594333794097778454913473293201497179258132945321877322668651956542876049445105996976086751554867519156440305764829330977870503745534414104019622360384009580278415072595724408109616476067342132509367173642615632911874317225326229744156947863290463679563525444085373083589480483121832498322574610472671811859911799882413844531659489499943826578780342918046763447560762900564400283755436651182272073443452967243735715451764201294584848589646218800412071567629949667644341479826190236297510370292817101269849664132840229977483862194062416818518938326012477852843235615708060816981984175948236920032834742672064000430442286861032432060627800838305218620794325594263684067938301629707035746618383180114497747557635362243985794530215123547645977875506164272213554339247261844242657032852274320546074361460515280315584892560009492949806918089091705760738255232230576193244996221651677472606248434208553997159267047364386232137552167187763996843205622843031685986458257892757930583854686749905044558110724471213617760707790202424093509356431126415000741700156780519872768965939523205005647921195921195545404814682784260109043867735893911762084764494157100616529859980994904642202130814415360835029381279718568956420854128053879158915743323587479086780288312022362781076810116062201208920156308738067521269297746176425071951925219089144605944061350755974623177298413092748308376470821179995474928053930534922842040778357722650126531542527982003716529552485502545722143179128755745034754574684373127633364979285122937601168981719342865266480485540277953460782556273225137744884833927883486233148167152290972989809767327298292456363688740150774119212999678428487166004257251185744862899883112291358444632150105255412908942236767281745510135767947483547713692008592884893339544082050935788027392875331526709333925928020354429356903903548861567752495359294409180338331347870055419634302235671127613959728906627033031911972066691277604122313962612250992949302739935845646311468384697012218018285590015478185693204320808549243941328173902499693458762173649370769192585215699570711753457096938661055503847673313882291546225194270458340442254656387136115599409410824750070483468216704965729690937601545889107794800725532215134371382376129297826315814416291598778132869216336447645490184504091274583159870845380266032740109921855943041323898674415281739175942359312909480008860170455309573604890968520954684436899330434161061808227251678586023977851672179531196871540794056996745750568450256131834400354469866819976700895639432104027472888479461338081306323930166996055002572646700721816925955980128275634039522755775038819319537702355055389597530576473155363558026627294136763036351999289735027859242133987188970014229229952988999042428368201445994932979110395141884100163149764132741375988946728081332024788991937468424046213729180670754367992973901621628176697365029623021544949335150867567088135086113694523784887582786252188223961915348900714509661075716071197932179730409382357330335763397517999355591083726949964003139406248258372858132148907293141542468788831170636280522844287431991177104336078174738468922248148063058315349396182573057044306844801760077475169810381476682019636670426817644119445196078548175143859211467436715925848939872352817243788927521910286796001072431981192675173187506639804048395105047059990366572329757808191092406844944490128831891989162186430366714601574579711852224260341800368525052993909056675970863332580138996113820189713268125558401676857516480712085660027753797560774112564488435712712778823378733842824764868897445630488348667710417819049383506905126024596328513615244528920855825195612842111823143362117148537882495489621693593435364558007818808102554977270101721401512852206172470730818386199517028084545991566564467531920850861999261531014704389880085416686428901806137138464085908349240546999433912963461872073132736066322125190270170118325699996098756196157785132942447236638900359824605464069043781844467256542527802735332805938960439831370416543809677914071324287788301984449227879743458684927288244896008476027897325418101148690952085791218638456377367448080398366457988770486128668197189259137825491968937933012309354598548203160454113094897776669097732292893206334579399114616143332179757916207550045564514189891354534416859608380837727316017109959524292728790337699099199694948146443734370996304571647039317207121675882274767151365980427239100367434102206537631268669871117064658700655547938836651722309329411151330607658117262421685017059276567054204313470793484700796839267098226317752413400762286658028041425159628321181236843474438103458129585306179415423877987654472794819209836027183171033310760484794231467113900019922100242398639118114250488078788988865937418829105725120305693160160747560193349518321415558766401776077864287070130334774784550633841108329499291796822291751039329125144039013609989994234811917957194749745718542784382880725284059325479484112846820687903248844474547957048476597231894411542683994686027581065086920417907653317841664329243808866589537018455326573655347580530323447748178172512615710783595746662913728040361889987067438688768624420257830866481129560488060062504057273442940770832554409186721187022723868146775451854738868704853140510722163182290492977192620992156553319257776598362761356769308161918220363052901459180167393469398482282589184580360380763074151212827242238393713563925822933949374432118236801182363436485959734477796771938516381240630228100208227714951252103978098168416220542125648753267009883606942412472532215573531809378637488328660734674974859726008851234727074219993949921117872474507981629999028177483332503936762575211309005019700883182682577225545938368856053120238231620909199468307327856801169206323188099201485139107119996272551287859388150548429958292091271611238668303527614149693352174962575065940217289883486604931672677711025597131584671033461189037159062618518908068676463931275435237159603834480665014996584206127764989703400914940968087077603781064488502158012775660025632675353436867506683791910772471873857812686064041570568367811172332247953783821475745352394438779960983191845382430595587372996502872230427614924624315837043971422940758726112117684469596365567092742987231361670567506228212527735307619431786899322335011507437716430048258316261410131296233981852660649974757113699872377355170448799983764902004796886553259934437571517063344644824800117953265505900911379130939436013666469926792020571508122978589530451352567298764254904663732003391742508197238516976802793763951912932599142393574195178906921499734457782684532238625181088889552312605838773963969769349685246566021906796719199733117769175848089557306952834479970310052869222155227970941968384728898761433049913374422440171236111354476286185976857354479673143161163381122472085909808478398165942881391387165254362641124315090020071528969653895272807539898184407236902530459505947206345394775066149016050860220304484220482508463946404308483626575125250899632552894252018914582644408650019762624825278492675750216165438618183909157753449294392746172026613726724703287161053486667501418921828747894897611656636709180244802359707930954489805073990920709652871942879264329035179972630073305042421286841765314175912995160276991237649878251022463783078949464583833616454786117317082854046034243232565344838136937495615717685446939628732052272335366368070426829738873813433146724541460108312021802398923762371093779469106422351348244380060629173545444929180791077474298615341296763980807563076756811899878827948064736498695846019042346696741835300593760636929069843369808423468022581788176760240596161267566837942644344951011175595236726601869460070317350848839505452162945652143382997142264974845630951450308895318814276974464303052474693284127346778029448658317689738073686771197083876156678097223301598304502113066037909209932840852851292944194091076250016286085346714386236758184579672028639926538677890864066173996445681563805318203034224884420962824201492848978646332255795780658617990346604507829019484106911403907798529101930126679046368999078064523529931283180514995612903319193625862705093785768748250219409975526568391725614197747529157098917944724309119144240728078787982953748153341775558430516160081061926623948814825052878070187048705683552235537091572612347377476198106365789289835220492781399403366050654735800837965325241538243801130618931067105073548104929826700501041328304019571833491664124984669063579200503102144560574636527753290071466583189071852158521924706519898587573672094428830630178559617245621289148394967687697327816364173346594672870238406640391023596416722226785640980982189506621390697496663522442496851541416801394899164460679853218906847852413810839683518489959368629302270674332277612347485973083903288895462302204967367312181977096197424805143915167201254973369553086829782338380578532519587705842682068996071420269114074009776585878138713958747051374859156934111476917289532771039914950624910194032052780603671702516842401557541253193210041448602978774500015022672075412884118384843114902974583951091584807290733859416766932166130577938692824720917812416012065067073386047612721582358304692808894905400939014859770503101542207014079137859305293590371967008455707099606753588559285507675988098617223859000947526945391860574138908797314752834795908329195901093410364513424114673698417468116230774024438587297186460019934363208338153481510025021905461354573010856851849543166089846408817607362264914018200108978995478946686482824987946220305287225382936863560135553730256784275971870954612700652616541965263804883208953472344649795695800495041945456453196230007635091360768648719010211435721118772715627276985454947089453179968908048157232320336684753404373188882309046222791578753099041010319560512592155472688222569860526145180267230450513243995609041435541479405855454957711250510092248265726059690011428724503774129934354194496681658226479752960446999796262734410038056949067522147890749003079993725524001373380032327803145319235024932932465551645872011086894538892427713206254881532716857901701735816291261464368108763825766876554615667748680650203083768912054702395414910358827638766472288562309653646698365933249422230756728801899530284873236546255592527562794097047507255533354712914816880665558056071483354066631617060645971979387473889445984850403249409268033608162292100616322596865384492994089281942793344553339422663217972757296637136267859595302198333247549485185417522297296372655290840296839270069217913755603743420433639530376743947696305216658230315353804447593411445805998310648934636917352874104296798313510029767743094722474083011406455297248893053026238451848417833427003099042543471239297216994020804227538519317600785615038573741988951964365581300115552838535775815858074628077688361204891433225829533066945074018816615570906891674071821702139323530397799969306760031435877283524419008377040435431098917854995311727071848844563285261990423607286951830411924093831758673503817877891551104705098641885307588579839922843544916450722599155609966938960320949857101401171799259949219790316628672178345665183721104405940727293357725954665934070034556009811002527538321713379186928223830686782285985180300177972278320973718195557822312846794876416336044677846241894107870941064916491025427432209016001061602064571326584490603377377772425595696137425951798099055595506074384902028574214853609414033313116291257835808883150842381171056727417953143065338910382055125348856582387410982442575410848969839063582572810158150404899299235290197573205831993948438044262524546537671294675231866415093187652161293745401534320349773897211035310168230825030914209869340779078312965362714474380267958427741694710987651473659071487215127929242833321913363384259686336258842821228778685922958486850222987991607584601434359488850313915927720859963562460525069921902144338589615406324255099560478041642950687157473336368946781603855966119647934525029920572516916832941213675589765088850839472790103836501592102503074336922122606675345452205091365104609429435822461776056925978778524573412967438844104780538150098927848473497513012898032139141936467733245407264878148787777514452745883941480729926068250192318779777462708998300087127124299759910430146980122363591314794178506681314636488629742319975471854926253220866928814012072047209477378266095980535000594499295129236618328177859950805091770919533413389727491372211411986702750598316836647772067969741183905651798360030736924411305761942985494302081214797087579443288816694169665190142223745776930227535144065465680717716823266116239198441027741686535599133138646380383661133057783776101296268656641684981127441397314667481068847574093451417500698209726670400249076844742479088151080278415543225196281615283139594832317234294782979107224486445280169727261134461199344343568317217616332230378825155753749593708376452810677720370718447374074352935042174343229556605689622694874718583326592313466448382067156722554006059403154410466089718992197895284615750455741113476619566319153463573826190229551546262301451013664866060744637900644042220818619412059441786826444803981159933185312876783693060336846889549991871697152854072487450985938716867843842083224675168649859851731535301255849916530673940213573736819225302299918336872565889937311330901853956376043817696831128750920479358365491329409990039164076187411972786160089642125877243169105362310115871835273054388129711301433564649919940906298755250485721937481244914588520869468253551101594718970966239622731186462719298364570501928957373604633958866971273320395272588240319631703690757241649651062333282190372959114907893679504163777787847140934789517915202264328932709074791041023940014553223951857288971130114982872489224025290275158798273461626730397331557174058066999943594534620604391865935242024662449944241836837999990566964552699515181752035310397861880286897974592671990852324142787174364475889367971712934964764880763324911292998513623472581729456497190262822837902644429394673763691976165072857303915008567180102557426365393478261373305314410091489107262295742148079926614767894851223392257474690200550710564982229570620670866857225434996693864796453825456344585926251262082062836347803238993106348597949106664411557074948460063641265881165702735829287743651114887475440466879481029598649364702188519783745724275108374472912043673072146239791157083112204948979825359063609649946058445998070910792690694138248416567791723881116391344338622049600705999165208306804530736975276992810672285257071865625816988916287374600107359672216937163340153961722037509869010771893644895699324142281922964755115341090162118067246574559804787022340718736271568840144957787016994631254485822910116194809742842472119702964976217338689055593314684728526381412533189949275340699748973919944005155616172678477621091616089320846378805198093384358888270448648439010180744827522052628878318015477321812788103418462068543302090041542282865011644391637647577840536164212221495953362633432714207526298135640427574593241107138142201448094531829431410371982611120979966759352147990356833392348470202918230000467964324483294600776793393144533349254058910618988462730762625256795883012908512319745381516371357809263620165946848327858489786158917460236475055747546043217936690094765612447327633183428689229580196839083688500119657266819436097433152055726255210977005839065099309340310873145183120544471462958926596583375646602652259427620842023904840508837068098200383555320378938129972071688567592187498164262492182542373237952835839823542915675514352315469032089343643325505932820864637403455652881354688558785520637472117537274084991888820519131010419937026149773754946145597763387172834906097651318377576635181956944429314065032394304356136894295057630015243149218353919401028563603357608849162972905412970422014125786970514954667838275034424088232888013268614347644469064417745457409623915463024543755891257288183062424731020603852162806786243311523192919047540839908068920194316395478340549966581011037911366302386923414588043557213502144452097277996351952219813600814196130824131123353154046764165459935426364803399580153259396146965486245109012912305637667091087738725981503835037643841218189899738764281372710628054446810317204791302622491074361500481055974326020603305988972358387871531625174380819522950696699866680186339251206941090650261916070787471202137033433750728433304379825812616205927030523136313705152860337908243401571870094074982669715671014118116678127427456300596576737278747354207514987573787293479890687508508459508980368994421383178047377365880126306573851726526305322393588358285002240897237956973751845100019254155760511700922198191826693602902784266838349784281188699986595582697975843685485036848509965587376588733881494206773181050860381196901814772650442958875444268781789433746557126122900958357514438557960416074553046431458690813746959851110747577320246689372309391180498841071768149080913054957760601451845599514318669084048584750106424868440808821116218457630918927868701096610205920852113236289954677939389034744486035162007883654647421677728313678217760036264649936017327206469948668810870323379280166924998489003530740220930094428253969804582312578659846254555415638937663865759190470032094765721220561150945882699516728199308353488217366574617067524158392203790638558944335649657425371809589342222295264825243765466202671028638061759336835393780798515729915854111682190822198582985102514389851442609734487857542907295685651470759236567919487578012270472519824735119562728329775818918710728151918466614019256799051915878131518302616495779732498621608035386496726355396193634021101658999079267032950145191291705918805060327029898104734948576814788461466823627442094675314397377839328365836140867403986115196270951305442114093662512350801503518953266942126787180055237960342534062203799565166900654688182122197567705148496007541297089002583657327766055693622844249122210697003312137257482980578467422208260069323049205724836664265130642441620735696669592443331138332800470898588152022887665573833117648128949066779883057908286541926706925123721977724601271623968544108956873946088013569480466206499431413282399178998956523192769362826947966126654280215561599689308497340929492509181192138315263459672372517800294811192557708878548248017839559351434717438645777384933353092952174391922012497193029648624248573338452233963852231758147064523300523495099359766905321116146259609679167996374133174418882866316942780047617528285786202995056243266151574625238589881922451417514528114890161865931168028275683707822501038731381413865158693937255078457437761653560092592376386932306407588692185436831501530706955997925557713615649321144264187163111872631813974942757107444124231309865333472787188503096117261303596487310068462196418159621473402308927389084686659645109626190574726013773383025769721116589880860364973831487404589113889919299932493572240253664644896749912881476108992625905502324073035409317709645117644865374093342376293876142613665644199401760809432927035720620739151310674414432655913004061609477430975850045805950817792743275036876015091827790118440834793576030816789298638158197563334926471666909003929820554509812573920018087516549753701077643335174966527723882034539183242363332912319807328868899389649686203021611537254427737212011310386141809942078308740912617769668881418177854095155805915144831829690761331686311902541190110054969025736760349788782591636103351449689094785763475026763099564252991929712552395632094215492991821755776986408953706895598232994797365465933188271671659178439533690465902024709991517790130790002682815870516076356539906396025083007075659705077307413013655453348443395834683228920637016596897948001163378639458289258186880273105292323516153519896208958009291338286999319427986247162473556632860288928619510223230923681085416275689243413663095207243678073566280640479825691667227733506745951402757501317843122257477239079812576074571662820494688791074313285184039139070463152064164433138866147504445862858402387855208622110505453922907930239643879906196423529544672592293213033271215333707281282079113699420554643449800326959836170153365055023354417299618288151752035631792709433239057134727104539809515359272048868991474012201335093662740119998262770088224851125099043324800211061488145389660336754495771264576497277568332166636747872585351419011341982237991824099920428094936203126364702038952554541826136675484482157625767627397919362175591781223432860580331632357083895347994469284761525175981732187526841589114776719053671788965254329010803787199061657245354041305751820031101910419558017372203171006384806505525632433750685290839285373706818647990488083474839326108346086712459707473188319871678044089065027069267960707081132459930649047689007870985451590030933842478899736310732848895547135774615423518644858681043457928481835598638627951808868086659323080329220813699232645222523337103496989130973003575134978178676843140981431203785849012099224490613145918500372446078975291666884173617559493750800633777024064525604176634957042773037489202641059182744958818102185270936255983968549665112256461590859872770387505325355779948541788818493817183714134625980630632873955704788979749918789041459648442256005105125840337925994158263438703345007207401008219058207886900000229867997512841890509695408053201065264384307279743746081813153249772440371936655859484636043242918069364176300231675832866362924497460296148459018712201131029379301769000224345268770755330880073810855349588757982722521400441327134282854869605166245045842005945440992157949685500753820383494860342278350115340802920243250067179156967455468631511846676035656109540405693047199479520057184114653949860841519131801376960804936328463488017106325249411234295364490561550953509576993390767231402355117579377664383355753623143406994070266768740990710856448090688575255007386464379045204653398509436268581947409239938730165210029645040977518181670705223592843045428905962401688568098475296203756678040129118484467730137186341596160375429112494058331746075336220590989603727748978950540916251158858202613124034476462878282432439585404578123600411951804222174778365811621917265865626793047392348966181039922966991431445677566017959725940488445697039707035995694228202270803374293966964540296186341114097042296645191401231153206173651918961767815157351087230127505788020389272425207505522421799650055026668959286930731173646564330930606119896181443301485311564477388487816822039597192212373583889191568713374671192470472951621173231865348032016042688721147244789950619935494160359558071667286188685906282923608475152094660116684413003524404880757081114434626491958408248328477349993638995312733141221413804274136173176719410802747950129407536877618844498099240764431119331441890339988983621577511508184521711726004426411350566988595098164894521205963384303804325790682083933770355864467114374813823271041785632530013718038683075627804549515290777888769880156921635103195471590042336654110507211872311153206454965451527144840454864603494916944796534186054905477251131537207231931312413161080706763986775105462106891682255198486424782671908430371550035385721332242570504689058866983395172657459474938561934401965255316068389338854197116852268041039347266025562573795690845707011055736028871082506340154768986090902974456474379395731325018991580647359811195719294941660212792050825121579640231482114432094602962877635748070010370058852015032672900040682091907452740870660318611036998299507137035157574925551560174640665174788649336024332079410799796633394421252719831160614542651322436842056933653872953803358863507851557587506939004314494381333717098009381702955847582502766898872329600618296863736768174874244104417012587629935338216442488657065993857511037927720845661893304410326157117641427912846654686364338864034801492240125742157737232541832292564531099406608759444136691919970372066534743982018021125288418372324431333926464641130206539426433518354499109277658453259883254628737905842223261833191707043348280625436309406714808332405109735571673637252863816870368199926693512111532951427985182987085710291781318137001237450399895659788716197140710939586752225070048779118372212448298027176924770724689936919606848354069991382707812509846326421341447185303621720827749895774821259804720205774112850273887637203094579129204626604955509782903677373204175167216432605758750394095704133983393097206603027026932029421092166050442092770516645062369243383630072229010435624146942000019097554471898055918141276145637995376881416050833668628302593643902042211387452087484025868351754697976717570251896185073020077341045466591284180245341709449369732246450747744749586366472412140666854107358985140045300524681268869961644121503221286126877763739093358978904952754609037179320466556573818017837745302568026263685743714591399398902815524135897173184110879305296798281546201054674887682451661533272992779212023792962421063901244701962465891950270292606805934045319474187414720119422212309900754648651749271499295908876217182023536549743059685832698649045596588141497869988731948928606221139627981328796447634553860909714336185481793626486155040749591162246826359575550857259588014463464950151153067518319902427151087214904551098558592045602388682027326318680195065148074807754593400594833632443084401570036573538902382303669923766226924960999875747792163795187147220044030685912855953532938148974281629637886071088952112229788744034783344150153580165216514630237319451280843427064341836100147311397708997780125519166556221641209734778239430066025972261243783832543021212812614843631574581955144861919960692344652953210564029469024994889537909855865444037258732421361756342835567000579400833763401201876675993677981432941665125557173630036901289439714707661901518073812600350711534118688338649976525035472235302550973705542570645239374497375374563585824640890812723887849860576653204528943374912706786397590574298223197597084455250500133944445732649590326795511060419823000016705297897233410015673634227790925742402661250235566091968849185947349710740888813129246085638593754741787709946073991029365473760650760529495488103174621903124912885579556822453464780948848732415864743545985831993657671972892967951777546584711800720293437646198208866678296496331593625827617801752471868799205192231574008825296815273226755286733062920384408029599730421395364431547220294336613926828079846150117765699385193740053627613796360846330613890836172808963695714475441565142872645890346199442373082108368734236755382878904024393559221557626083329685724094480597654271792986120194674521833323305306791931681455217177075078120260682485766189122438373585385224501124723957238916862514682834645896614338429930414011493380442418391842696915311939585570523889228730793848631596562684533429246223730029226738956341686669707562515515949531639788237490170615596689327725400051557451093741572506601721642890709207786062946343265695427018726838856739489937904832809747297749628829571022627292579752374106741647247452950483397884310708304577465767928671542631212041327114695982355470296664573243400872010056716987475339591067557958178946462943419734774471603945159727789714898699370110089613151544025721485539414992464799194658772094559649241312961273909866485879082755030884900946180034264894382644567640262376396297599833291199271050177417589306026462074210950205700506398379420803193066637231322030835069012521973375595088181494014297474078813831667124908593662546135575331872362575788983612964065297508129596364680053121254729100657582865309914771926677910765692591140397501304694733773085437564335218195347682988744659708450780699930064500113160501368367110090311139230246976276374015160168522479735817323062415837037605806977316263865243410568106441326976732836652244362114482979140695731346435078476018893048883677120993514220847977400148095153379302127868430736676575349917627190241640693106027231700854197455609697414138240857446246740112103459221609579898701956254455595368410213963824982140260115525982813191971716497973836850835751111311391379604258481706229337898759792561613285875959324120331606198184423379573690946257028432227328975722699972171980950057320425062758016957182029113368901438539312106799051602694745684389778340878694595130638874746379690876753846410939593275393025360107096050940372322460593204172719709700821169202305553611659205634609009484585703704921428835131225143256039004786608068358706355258385324376495011426824419144941823576438250551662913753446225426299277151331173292699306629062090247670188717839271369552105926155339395102432845363243983484957086730033023100421100655400675061333924213314596771932557901611044416989050237286340332700228118375950538681139622908971018907393158965164916682346821692267508950215654292111230341174379938688440992859110619775009291891169141198358133962101525342475360539133907907831657698707063780897547828784842766649461972638365499627076781352713013028475206955767241006044647403217332909621536611852983590751257652539173231511738048040768970761127575396194041129940112543527510014104485337010454480948076380021156064398752177549523940094813110169722711815084967179738792291906971120921186724469869313290325948605258563646285296145055820118192290924439551029206455501022272992161741414675801363149271870999046606886143813500755062815172653876652716816774392147347838104421475107742915350805184162077609019477860382042535356103167794960611032678481073432161485896583946306333417431253232436428091698512983134105089642953695676525221903057246808702022857214510307862887938701728863508803663702088829387292656433526054073367314110848450086057154881769895341373723004398167072427302567662083159280632882425146863686108013139599872295388156265131654746421736960724632051373164467783444183569938418584561326971287771452425969869615370981447306857270571649777024572781622542753921346904738122158133416275313467797061117298089026720395383311352055214839496457751417828181482174300186174201688967575343536087695777259009897167852856954762055119566721384391749802702776260689846136891873502015416649802300855286840413873501359498428230475679344812902767287111325944258703930994106465810168016135783586674078777442923859080066393497612525207958016620858465581600994265063075899150676275900201643190420534962177822646384527879870975276217127038368617657920482217540490566314008658661400979517652912011499383835256545764391828315167245961037001577659381653922887774797981267085647445917859132417425575166661760097416021490490890443448319590228890993853227128320961526067815390599513602723235048207498786123556842686571489555499535986357425677153584548572421655692173695412345527184513971767908653818215202070803091442334469936728282042374333821101007546112495186296385424943577377207962904073465285376257787060469471156936832700664601947410318023921984041904439135676541875150401193998791417640090782506471137820864313131161030825368673818475392115728306382799818610253784680487598623567494292957029998746635963921976735275769547174561337578077955487564838614912788276975958495500412154687639695464054934802843588052015247185971655962320612569402891861805605130062626171543035265739526551610043463247178838644411577615694466680972462530869617771044893737373409957637530831777254479811448320869078328298585667554508465911361013131519468197058253321624726744907100677486708456526511810494715925825783755417262909444142191176587066324890108835630943334967740102928991777390985804908624381915149069963927187552463401026679139973073123544722126531454168191229590088687991045795807020015347608333808903868910219406684694681456063826849607404685515405716384501813523413270854356087543317652338815901402470400278654866097253679421273702300969143683009459248754854210882905575498115109977375505837092347606826570100487585183774838972584421148918560112040318620363598005772384130927337399618320230552924396523481603123048986139530913841013377618244993434460747367953026667352879596629800121593037986383397963676237309628391237785094294833185179469007128051691548232919436649991371730268741103955483450516733306375153976929541208113457643780931159817732573491803793444327436223733997037705619038670778163550240041146259086528012240700763917703423712746996806142308483368120786311345221809086375678292983743601024579331181551341907618543981761454481970620653213562293866245218668207469078774235270320010516427466789008780771973630760107852590945243174997488119560384963738850349493510345262486245810980339122396098745001010674540995767592308267234767818076512210687505006654202929126596924399224014789157554954611590657087783172177638837386907098334283303766762832406669220735339182512042900196215779853720595497653446496980098268597897301589434984877543164413278191241919478159130273285601564780714178494955976108218302735979202422384543294542330086697405114338768646549941788560985212576739907163718781479862783794139249571357860425927619051055618900973847426450364153610280872961215291221227996129587488530653733120219490624410013286600266865564563491311378105502440536815362392202839495350115668959948767236786968756031911162150792983695128983598086781231004837045177999213971206795563684559831863599106906586595468696706876976481792391807322594897383221635750629502993485171157947683888104870484277570391204817866051636602044812938296264600152053095221379180014318026598195797590039618638419767330887027529727037961211794963363314312575115764731730972803251877307611625257793191381453648354386375244821073485629220352648979421911551257666661140057009390211968286730398331964965213314150841396392426910265762479924396742142151497302672239757979760644155410924912685977931346052290371499525924586481790818732365906374533697400667893891639531278792636856165478901694595734921719013264734682829598188756739763478453054877016844264753951692563303389507180498731151347210885928881024224604473118142220442599815916237848783411221505198362728209653747888048967713307308928529115899359603883641941371679542470072936510475871255898210524525482564325353131176104639541465853291019741164193754142425701426916845202102422448549936842637023498458751509568628012605787349893643098175595929900558257327002764839093670423015101876169641053051772307720754373413701495488073246005268118885673987298470118570072409151887861093310916524076915926730883379338181328792858458712373530094556406847694524375596892019436194133892759924503036150035189517551898640715987188604544287132900961128311120169186066183282978757326537749056000554907151099619845976924674968164943868524000046511961775982315840044048491680976130534047293492166376362090478953085160148560063125109552327578419131383541621141314331393268560196381918440181360561356996964172381966132024022054073296521361169326418252079285363559358314078026807655646137349186645600593428197844882565377379022470810049521251676282453072138758343799158367667834327999060786462179925820118532697609141401633134673886546850265607736357073010834459718277089945371648823652284000849796662306842325935154576469275800193239109112390882750607602111399864677931811504900261983527007500472826152158556373469896815329566411559109200665916629413344277860243324003493044085703051600409654100009182043873410830475658216631963003521173805456337411468264989636106536734938462966892279705300803986900948183696262510347918164560830901513730660760847476460330570845901989476541977830110879144582882353151786604578839793009182834137473869928731025885035196953312083423208202475575518861289574957056325620462882667106125453230550652254724683331691251271543839275768655187845201654338928837109555973008782809573034110660506080561177041768529677502807185345882315492877201713918775115842230729454476896415945488375395306986835824652181990102483836576075189031455495546390751098713527224784801675650308276865018006461346592614052747391162047343670010364516041982765438234067722828059147437801923115795385889047862301559257027946460734991603046727614905549323256840288384665196318657915021136047805747801074045077235932336939133813088972718546146425751323888497689845363180576673888734504179346135829117279123032341282814362427640019568853882082046279547201343563523505213844951335018879057947437984812115917323340561162044238052922783974772915308263285470083369905004523678969651520592750093730831644249927412824483701768675294859552922128234605313976483620910613707268268589470631635487652029762179578937453543500742428305801542189405275343234074089552890759603050826364295938725890892785101048752810728336626532114069769434739324682450972079952003249869003104981894945901948907323612810755151828067594308545430717642523149200015224934736200686958939194735820246514610682076638761243733859635485511931424059810444585342912291667451745602453118471610557472726544021531601231287098421804142186483725517914653559416076197769752682542203015462183595925776299578403453116175030499107147222452448560690189721074315109032263425129091456737335090043539925548162303056557709349114688198029463397446012976433398326394703086312282147378477185054846611123972487932618847056732249426932372794823792536611647986813278858594673295070077916465473126178464154216300106759286854448365817035038605484621688345593678397388777265415196520384583803343620001825218185008070894214893956322447562553080006971889064394138160120285692435057224833847227807095569298460680843524958025708208659709578145385922034905396903411160956799951687708399027361118680345311789821029542844022977311129388690166928236816873061708722867667058830577185083878255441380603461601944633929604192328503333678893947048773443384237956775359991288537630439734842944351981226092060604506945965414855904004941164772910923878156027946734654585768037950362355425428572351146896064591420718084547406873985630689447409805182060260831388452728516749884082146092573861480602375794531109924398412846663601830957457357893368748244106149051920646518552905525993562112942639726378234476803379834643606687127834817069714209485601814657859227179270991720319381370695162865790298090253486531444857683838091222606460816938869573313378370110819206553529774375362955659602603494770627669517612881672575026674003339065528250975404504919200260996183937653691238152874135554282906199024375858033754206641177039404648908612069057906192397840599029435430085497835612967914007005497619024158366416205962314184664474673234550426714657573361315064410571973677781627256472656841072676214628309345994895905022244937175669954257750751076261458618841128733043388756908177684992257354094125264152945268977853990917447165082824566862650476185104417472312963323576827802478646096837450085014117893925380298234826639539214549616128933484411002277234841317998754063986923003063569893832152138155266451711486158748915244939677758856824951746700282388426293643112324827138684792708798968300176271817148321005623338368616709322347293976937976922553110342645196345453448489321309414587984684567507151477948498719741299163667422023128922664136795453378102763017124855670810983806570024490665823587071892282231202810783241359899935549830146138196125905142440816243841024684449376695098350089483046016176465883744284210461437382770982580082569135557229917640642321369204786818511390006017411392431175517154017106102724457447664389122715894945564302783353629306294706931807617541751748042303806013466037100112772862072316779882383731322024868703694549969659038526111749458676436503611050045712367708396970352307964505643539011024385528031090285923648785686957799906500125110702962776130326114056713199535198907505803988401601850133036449172855842062539576075309956904243109313939262100091168581079970981532448992323798828380966004971460079797292605956435991524624953333624383803509578424016573730555214813715155568071519096748203585940887823567880174748685327291014033025032309837028624125257337164591825925333552224968266851847145280593491388935018534500018585730202354286921157291006164284348721291781683290981847908320598640299325785686019139627843895622602892702303772643893013785551817660920435775031026867348640241925955511475158379029884523134175988106164918024955063914992791571403665933704597513215738929263590664892036274066906522945809844638526044012249790829471351912787895152322599174362451899060110311930629119977935925694460731266119977264401415147427772630795380216915573265074708902265437423001434423188513296510940528982880345308848966570325807170683828677069651604517523639898326714431828936409982589070634438900096920263765837925961425806843013055740768074435222506622350563789127310356218728303318032468472348701858437535275294418518167195673519703031775766509219311483992752393331700631591973154195484329157760061261446920139509666164416381038987874941888928974398525610906507558046576013842923917075664886652658757309101389535801123627083598742961093246204582966242218532413115135884914690340577071071939020674847061346620803677364297271370255176587953159874048281228032906551703149111725924544966801535569875027558732684140139539668911121098738836160585524453904039282393637580385636450871773270803937369710864096990235814439403289100117199816408988087066780764352289384304490689321101761831730142409178617808817564612553638691888206807881723596697567368607340948501554464612755884352466172081102747295491322916457181418379847489335311270634930320318435619766439388780759560361604073399674885883921689735272447277110471401186649712121666829148685643342476708575507667840795893126822242912878161386839349551442184431277282252303475035740321286713542957164049487292336402119512434643741937365938966185360596370583575422853834408410833982028642634811887786170616200006132568035855233572961689690354491347598604227191658022988633328287213435841806325270793252894167181456149813577434674806356838173743531729776854214972470180062981541060158087054606389014999182541387859283443158935739791448558161437060744659972880842645922674654649603000801024033132334663400266202651668455334029872000935295564864551297947683628409326854790712911758287800009725758838844680596881957246486642338810377391824048965483252688810134927115146124270156821040029338540643664755097470636425452770927939134125769250678387674638296687548183900138154124429543662910374944392575185854682055258998915726238349084330313728929647532864614846566798666997146639649446550777272621907954546061577346244605698355415115154924948734797652453037285000288806450118368782746908461881156423537125720044408659058175414951638447903059442854695087396269796134843968836292019718952225455302786812548700337668904761386959115916015782093594502264909215388717186168894323545002814277666302209120404266937204850635520303556453460442555750574986547724341350327680081751523068854571070198816863251522387798238825831868040043040551728068122065713936204830354694594350490014342771822962561184749683620625719252831783934218533394790092913580701871328780296036990525974528686818419312932315102479137462953510732346981893225557316698065820272271927285756934126555356120993921959862911918044012790586712373940965093011011023438507560858519648993804194095851896078472308795531289123043233863466306177409959617063052020492322842880840121073981757086087614198333811705198818041285690818735028486343087123917570056652587795509408581794814382502711709391581244563808099791682748872959446464085061031801859349625977587455039116348653133618592207107504242312190285750782692317768324914053938869885647708611627350306886428163548460302382925083398713856246845206564309311758080448958795466603042748592230391430115762179202990586811674774487398601778393741266527486054828649091256409921879128087832495479895446246909918802110985520744081797304073469000269834393248081343682336545670097208688650543856689560233894972096520122806857456154046712071090255631662327078783834791935535094062458924361746412907669113177145919758598839219765072280311771519147449956992055196025276481319443891845645089785309700282415593448244459546356565295769573270715263356232032106669714171847325356872417353822248133782958407780004545529259057716995673504988936097072215078658079907391215865843438054472697898291624545943174831817431507144171884905254183196473705295993577522047098326878166237839577488558026006982574404883987863976806185513508903267521832435417264578739268868548284987197693052675309418682917148342435082131154664290006968015031823220222724671419735093365648725720262406627669632480262634640361629425441869354757812440502519096657835384910486209176785584800837515074419138594361123576560487557628446393312916583165795454594736353278171257775087536846309069594098060746861930351138516598393096702150720508162849051769398774032849920302478909328701450606250106723005968875751866322479472099084417198843323643725225522204686160411415942366265371640625589732673933641472440763779288951229182862504539762503178776905309856721145078647184704021785150502998030001336023555963692525746420139330940558580155101173333153437001506379947440943949997534269679425250984298738708396674862044943832118890784886382833846928436162191040339853828865035541396155092112067703841413251410840521188359421487376949209754764343902774197333097378536062527567052036587524176534784978418243210957017603294986302992787907194747055788904565354789314211118241650594999415988916626724455526162334369723063355516142967120642217051771004720199653464738149295035708853101043004274149674840708243933954094111789095152292703259106173923301960189421926247660041051684234568924422988591296830566395811808957697230442690642092169353684744472301909497196179382208534281455538498802342864526989050382342336427467011589884716847885101584938589521308091417550741825209637169386396425958012289292517525229972526425403792955421088914973058803251358506733011671516159825921650361320216641446294195474153653366172105491390784632479355494599867335348508804157294093498590881207192740361431401064072838536510474998168068636792055205103425766220912173720240224630661336201981531977551458058932896701056576932909720952024739310430715736039241348246197560894275156084850819477964651274287874617845788062160477187845113028050170151516963972087087748881301925807644204107166488565930591161218053287014791132631673431106189941322652929407899916237533933818220881824385559179021978916593656571297122179245862712432345911511651461785440788409503673136729902597685789974389539316158388515422654310798795151399532638371486860852251037933340362941300705373962026043894947830862993064098546647759055255038477378604942835934898492545276368143135013401177415902012411772741214613082739427314693385123480965600455604507121088240260861205059229262324390157164606955317008361920386192179491824151409496155564058530993288275859613634063852805830339816181086328727941973706940137084676982810339349302050110992711842416130530601391074830070196957961446544653532443706244059953640451579143653925892256119200619272259028304187521050134157965494224250649308191398143377563305212561822823259584062136841707310361031946919738687488514401183454509467132083453458690090324099766442633176056468908658963384852836810800313415821622951086871816675315303675217611219908681398735107006168168297334559960812277395822850517713027955241094026334556323390597589739519937654986242873032571307654540937041258502978673338936822419452438151815522363525620514545062048623253278322512903198119402466456952994256604251538825625289257697442269859208169824115932077532515350598061919482094104372650310266229514210663313291183805331685589713171796855099337522056929091501147758788771505182347139910877026246830943018772036030015963803374143874169632583465175896396633472994398247715257232052980852873886671779967750556614731878001406609616470912748246131884460669046053528013859542774145304079973931414817035895568188614944146501520948925083337854851992889303939083294012283080012899372564173002217100793433519275676091339666858011521947237476642708523289376757463455392737885705284659998674805004385211083775926704294062564602840205094938651560726653447791158072265526515133739159418671354462677407249723104907761078461436412222525073321028254551437059366592114021225652876705283404859896850189536615114054136622705240497221389666363198307587235424926417245938130484791934254398307516798258434455847334409655897785449191686841957971437028148471781010141812681626002166258784603456590199602730653473692227894416314247489193954005828441353295601853292713400706695133351424320093859624572373930047161874358179071822483343166476972088051329802032977946701600758499561733961400986742942408534016442820163669745674456564816345168409661421810685233952276187791077609610176021517772430553267301501741169188540230912963870353919920730257217561726739969737833239605570205187340421510048892414719504996731194472500206491276048099133552396607227857340311501766311868112455376168548132313404500015530819277628290446318293015515678861090433272709554010646316201000236673857791762815766635933010667369239905671713438434214823447468186490728060359358675897032956120114721218280923316864141369792772500898973708970015341127186227107399934105612433743366394332173373231311540730830723270176961826573857616316085777863822761380172167349871643440856925867311163492672041593050126885561194330446435295746943870360520274148499344563217392490078737729547629861546011713247796651557687085490201351623475247967597173042271067337885702967622816020046233788048326056208057351790002455533753218203170511402941137850125995428584511007131089924409841787055074667591036049296784725899550934552055332064644390762613599449653388410542395597489855930124147863939377641466768575908406987200472102529179110821054487165492521095389732098440013074189564232862048378411525003463016572747438109210390118158927449444006694948758394997087156649033958210260221415284541862183075922074008598148212899475672320758017561176753117882290001424761762345417260873210175766432978073743410660137021046882880798552630583911312481917391200848609071086724266294084498588971165394684119194162883405478665406137447988120500399998859265639949104435164680001898451539177956539653365743529615146582944175728275488592824303966731416708657556009872231753937441843824645253540523817650384223494900213231327631773601550244810554913690558686391395372877569265536632207737155653353183586100308779977479281687290541786942010908663590716706407707135263462913027967355023887637332319067621372877409945860301475235745973013189579340250814187328700798014737042565089767598737255037390344479253641617405974207401755989460205792851343901089225335517506606390548220561940835979309731925837114886416951868171781722260206517208692415505953277798939723097401959139401953072860897420936239391298728562133087972765853347493917770846176188050321449565029075352876249579871344637293646537949632778863847117871814093648616358909914039405102431559560223575700698996200122299167082399946086235123550137137979926548828961359414562563752381508716956034981655365526724927094934635171720027485025879362530428202271837696170320866288463094838662563978579625191027463570846328956695866667927411530367519902256657600791788295218772719330025446097300084197263691068015183661853493653800986839167478455068996315869634359049246210707950402371595534363425082487342617568670288936241404105719323384147065303974710126512474599907705642259186405696125352015870572549116030519780772454150447991535097705295526033655778559361863341719473706862526200343856859070158280775006934216958704306117630387670128779049126119230098476010450056157843960323389151688887512664445197057192557257626716198498513717863657252712776655752157749672478674308864453334543462803285616763344058715834989187597983926039157300567099932082437330899243558050197624569517153884795552594633653735289778814981596168107232472467831965357535674728795119816991277394611560097295784230919010898130748503817819420426284004818016492251118640942323613215557396465384870486616551035651635416218870699102202630149612975474931482919057756929945911839508323549139309338027028454616706798725089627184303641913889487202255838670593466483299769238258965500596483411973446009284004988599010910951174267982543685883454242617442271332182155770397684814890833836184222316145042609544659554021203186774221695616811625585140524815853248552533175165276376823577862676034676643920261245125080629306875023573325397117782955907230716490315775782088654430082824948564151762865350941043272633190563529189737082327113091697598373147474081065132032591214765359275810184578318320921499284237407153896204279253185281743686159304443631219227402293903995388760706440942486363390131838024880179956429053355409721119741072108991604199501141489054039260958459120988396816250738093241625796039046834190508445101184969293902403702207526662219724018903452981042890257856107579352008418793550687068356255101981073766273833377333919839070206181605300724229564474143912803538925813856679487242081773823711149780956471028861201782590041983092333754780661295599421436979368492875116684249906066781036921160182726782851241375237779372946888602063974327540952757711807290352958623832684805397751652901109965971922659423316959893602184978313513684272345777007387062534974457545855756631743697738391462776350564430027712172973625634844971873382011817262892390123345997460557365163181373642460592424580435973978393657326543526757951044517310892203167194766507524921627027503285838706045606445669134808345163826430942947247813312264466326370701328041902536823391651819630805937055520196526961299841024312403495996244452793691577183197400712738142788782919860787211410612667142845006645656644541952775095474404480485031813593313734379428031595991141545059139833884135563426977377290544690029757978345797501255472646226447387846645703885450153267309705934011704344320500953698180582356766597777893272823505346581997506861128021111874385192448672569442735286947854996983502345725352077687203089350136671055125962371912630876446310990853556163092844094686604107075284823733737282534304716146362291651475520624316062938188343289060004264005019015702593036694870667547861649707153579299294794195574300791786197580336815836651769072026821103185905717046070048116399692494048301116445220965031624202010241868831981900318305938606139516807771471450126797611528126605838890910594218694230552838940770636487688417363470738446528374874588354222305660505284312502419825047200527212822389473224490123967916002971471256644874169390982489265942938759094203489088189536387218113752308230689971059602529778898322826272112809215872225213223949853506318642544901964231934401762379434041756253335185216026013598994649750966902433468152434817710339226475120123332622440723754534720095806557624719169087647490474520704195552131020919185032412303601402760043554441593481240339871574902032576846992828622528375886249056131634142844321320590944450383258849372702493737268920893789183849633303460517496158369507882991254656247051568070761635440499389374958716078221029008190727226446815911727570056611360133794482914467202037480414067362294364522406831607709056368767233168971783684719128985305733036005377764458244746201086364208759260367719305709467903516244501163333093172143233107256116047476715789349980868298190884734560986480979514203269312454865428299928182713498006045034309270066746549122340413680284735539021268628024704911783636286902477818771685517199676452982822898143772920161972485376943713934562340488626746023227416765340966454534756164860547171007781057553021193244805407918408716245256026934994000532824260272909674666098782420466469763586288926351977994371758292485597889950823964532286283789197509829812104539532194317230373693311982768883972495764574330446191089559397845472427538797411093796782808152878906875277480689889800201997699884261847805679336092481694184042290885646400019805123085597578573630139678467082498731765434510740713053597286118631094273574686346258389426469041102283660738045345662284654680216111778325589788773939849274336453805801382047146110386236720895338975323803328945957240250568042543533159586167798683176269501156277291076559724232917344665102573413242995525489270915634103816563918702471842065323975359693856113789632615553323579475050152956704006772626566404616133200955181701448498583047232941877090170768318195178603371342410811776901725822092453651585280143308411994895270775874649872862964729184768463827548751907757449873449514074280766438969429788111251461568529626839177672657567916287967781125801391841540563019911617590181524343457551518549549185251379036219993351854841876650559629632367213225598363778234611355586713019390449342612575083770972585348084940656787382874059035826189680783056216411582271741264342512731149839988993178385421127830367592673683665281072518062437347057280223291689970609296376327062181894742153762357382361739877662230377675776872221974660246800614793336414005013747678776278284572312724574329779784162359819698017997139343544853643058710809332252765398044384804658880969854483280879747333736706181364120307400394045127738824637627160915207606266607625763784457246948548200261896739006129929443890197632743518473190743326416481499184244381442136403631041518528036618169507429287487905293041387346556808521790057458404170938204561484152208515779943189593212121588961464319386102888374762066128551929556455882818027339083634405320218749916167294674571626758131935527605992296291410303693731838827923489769990992774906330640007578497491142129879123857254150568812363809064646716067972623820183535387827579494813973660624325414460469420043110793314515563877942065019003863393605795015331149900830933082737935695554688171394470063442671288971506035671420358957294193595966244144273697855627715104811814644734377524958034060533992722345555469474427872888743704169754928972359339202760339233561255258004787999939853911380881967006848257650135765364368048573455655871730102226038462565538499079894122256221335315875599649435022619951841989265280944679271736202773495790822331080455346923616501806491572156745625633832834034586583634995076641336864520160788327996035171389571907160802296405704087088020579944246417430235496051869598985279729328071745929962805071893015828127848996862606504420007441552745687408404654868811799893169000281849818802573103435673240028243819744665220277424491700428833396006983050097738363034858404656554174502638922032365030159649620872243608132744775342773022686830358504492139541184951061570268781383056754110264750723683196282763889893434046559037270167474120494157125014398835818988722657945988483422279892723403710588563800068547684708057615663019740165908768665395062457470785536782893377539798183705544070837347692142738847117089184241359878052494235536136799610578952760898788877506925249012419636264259724187923599228813117680487671306285043273567187685253988944231514816763769467785931810949998823796867923744505736226674510194704916477616173920459607238099558816451883542304730698162486039720216655243298967337879814014008712811085631278283018635852831572930927184764149824137079035043212794520891954688248932591930017257163329821460767021587285696864737474978157671785581836805718304390146047170243409652317594001353444829020812833495196095476244599830123141826213997764372902925737019383063102038365378383695157197469827528070465222026860078921887155409419489100297809802851180629819413868440183638345183486960784797898039824818658937956326498177026397550579409097972483599272914332843943434521128448183830717323792137673479048651984323656680221584600098440664626872913420354014238844623389144936242221519810900979634775803980202488062148682628130406694473094942646928494506672303838886791278647784284852015800787859817135800092217747533184756325498026253428086212997341544910712134986372660045322862939844116138839506184150634892005578199453810558902618674656671296363589587337785831482281937733314645101104870719738092217131155457917489404255223891728032980089648514019313815824433896801359279420567978023794985747511451124271972844640709918717311922137904314389104165395867006895881803107751612060153397702144887001112282279414020497333834324412084110925449005314520133189792946407788409167505205927365380570350298240031535752542329090819450792731006826145589887619300093637643281244260252392106359078029834956384550125063495695877867230955911148127043144381591760245425790771633909804440377279445067228730481806475933349288705331547454375713735277481248852086627729928463257038177424891491069671751702929016963045149123883331553532337951953939066339267461610962791403538855475765142252966010604412312506095974043639094132423680488466757153242398513545241744442771282713049637681384721442747207371407499251618070909034466958150300526545012486634804138721174055364965934877073025488782066317793248358009212110928028700345971858994184386580367794938049261756585753443795607954042529806871519335298595775892681770528498023671153689793482544941585181559730661316206848616632513567658006787925578324079034969608286282709199856034738301394730832025887612749850774047689131022515717772931850582009794047571728039224512283923434748457045340552313471604480798843418973428507469796068850009797785154311145097924957982699027101293496893222497278729663151491968348537924957809857687489214002706652383166892189157147664275161784413438543152334231560755490125660738030328809524942903566306648732961993729884001774155096987923747563865995964789732406720281379262461396462389091096667186245235861286990275657527827153674866186747845798565469937275015299292051882027439489600283785018524945619878269072650705385087457560382370790652447629799078255893813841932179610615414798253513813942261734518038313652730712140268598192349119851838910608259853917029099274532110122477368994304732840552537423880766791706575388751885092537810745539524621659105795314174429108865438460582046827574680839620086226261550404521129952157003220679449857196160614658948598099107486285651618608803766716915416110394027457362169881867087642277693230414972812241902042616270647079240586865343238393392638344240515011015012674029786724304924198226533818580294560147232248925566036683794935272651612109085374250939160490446564322027036617687013541847949659515942100438557717087132488931582526783136679346980540559967646788855136357500144420765800915880129925044953213899541260864007209404255500955354092831749363717462495123697275756476924994737512480754063472147450486885311064133046394926818351695441879451238753195236730708074423637744944098157674207254588930549646217804353808067952591665882173023001483096254369644210126893019142170866685159560170253974696312449749332427729605996628425028498437268172020159330831549630906749362663274796285650070608623933638642855055922848803209673955847547845021880851787412255712133397142560557922474605806846353443258479809436031873623258000145245969597400121490472305306506586558767010910197584419092821910516297374221422662138520330706597140237076300569867370193760860726351517716637075418294952220115356517761695669172067189345152585740860297090999286281278000191051335734693850214521870871480785577617766118815312161556117272281637338093818693807504080494583828129529625691470213371166353587224879312377173851083291643057635927379758215922334333371134056316444159911709112301279187577970252459527055283693526494810138254368409289063986538101310249297262152679298436019752755141290057528811067904865999395505060455482071589418741994710667631340563103468811741719933083828216909316890948035950977152155435007128400185730445697352475595457235685181186725432887336877334345290053255000287825636731922790042812199392433088216690449093814546139929716361285865963624463728274625484274543789260883475602356214382010495489837198569931257277622881635658162325999039460509517133329078274857647003756507487069941231247829146452979225567943212559599156828508050365091476229405288155098098396547253756787277426731685514628497891156676922232380547750773321004697102543902983912124735060651826528256079800654517112439458259813079453178285216971291651613613879739038436092827776623155061843831456135312037253214455637336050292603077932979019767848835443368998631728369996549344070157101558219992780506646540753269857650094377487846796412008403353900024722764998745280289989684543132300124594004005956074458982126474079871345426633895461542780773273577080355884929303178492690527802736763886202245626091254739823301152348012319290779404699954878839717072815988438285115904506977282928708017771446901874345604036435758713147706058464455403538029153708502685979255428789863072446334992653960853116263829328705530099286751823725097381019716917423181697320116982348485855996400949628480485585003896418227666222080224767992688284725705428644975416713458444313813715460603763205715283555230956514059136214221692506912400467185037936257816903187994853200695382511888285061574094640960086615145177633007862087435379520235564966333156983789425304574189191238904491433298383814106497660266416122376480518986724809017840409442407342289636548997339164412914682179356934428773001578718308290022102432473110912476701964225430662345154298727125429115005517656194044589463229394317778197153843283083533300638235773757900867680959662198052794774755216467748549206801064709778355260891089098110318605748218959760080384203555775918753472487427404127510744846957631805878578621721462915414332041126647635027063617254632026898871522770474352761136573589176310848171104615983933230953144307716965980294496418051426083856829237923252268393386152377593543501866530213268714574987003070327142252313992972717296844880116326305495093882564451983005130761460579447835151267127547417159573084268557252323702640692886642583133611413956817661167853121828945502503564703776898047265619833550605258805362587491064111971064240320672270225893243348191173619077005737155924658191064517043211116728053366092109853367128839480356830860987205110135605245071033775480193318340970120103508199905232622807111794479898254727648428749998373394135939006270122745207175963979081010975995293322424488654618813521812690485355675836068876418667793765423964872822117870981052983033136300145599518142032523702184693157816978551743676295113116956460395757754435252306218757809284272788380491884645272369569433222784499864179689891639831974810733994043094150055649553643638011122226790161506708768439743994046097815405962086335882567446874836041420833619207447106193889488485952469009171412449652493228611602435924626775859041854170190226955877402101814199069250375000933248811704608089584473721148321978864535096226223872539505242533754622361724806732451720673943033247462016874739511120440570233956178364729544230025692022290785797427648440388543175354633262662900382502107235398760637022124205511539600989602481260151360340405365864262774705509427651481632481798430777015534567931114353911861685370446076787177871931888699064605971387315928497880736789171910005354233854209026244519947502036074961741299404149979865868490185839097850540115292597233230900310027766660723424390125596604520001193314121506453119133253194626283309459238260305676041059363937747213718370033691459083719645127941375339605863141578920304393980258331786248388376900105103696158727854975817643508784884772996696719477440559623198929570982064629927817761598672635332612121581601105705734758237371714281394471396936873042637555017717957947904155513272188348088394869599450758243859056264894247123573768360025071194226020652235916789360182925452548595321220748727843912608414461521711950248454594266081637057838134997444259908790304599601814288906429061776812500985110323337639469894299715747580984145397704912955950811127897123097068782712044282182642743265106788357562819470015850538648217575998600372278077201424131092055460681034477765876848139952320349164446276341835842132342035873373002745317635677048018688438288354919909946925462107474861172937836018291748179628453896569070205353167167018389659445119889823227653057271914514396347902779174902756619044691607373924730056274665665736022421535591196836733087336040474848370396787322229136069958700152900028777102891765724904977476669058056571299811150464789677806755867379080729738636485554355776736854587628942966140788814253349108710021555283793711402119099767242019020115671474244721167159472278314276035366156428721952808791192468137586536605470118225952270811808076194651723521871853408944331276380448129764371362840710867927045418400056132570503980645285418913436014549479298071419191158662396802905844160589994641658908852635872086923343358046774887657707320368188852228556421441634721718141353165674884598177285995679645535815770743612122604141290734769422072445543928134107250400618442698727785384696230376026745156099711970993678992736012117013478566114072164637775681355907280137481049985362178589672996136330112228512556466848771340266739760012645127378388559803599873508002734013463699549964922448162432177880316741282405715640538104831253630731353477472256493637628046818394732785845681013792036765346449017958614690347143671802821018598196530477203851868465931272687673706590868983400348482507886325957430178667544368078733383271825996502286383280285432407744754199483615792940435534932972197044687466024221088012886803420051108384237035781370207074124065642006224609649711632544391285720843844721664691062653490322568319396738725806909862631711529534656347836280620915525315092804650349623389774419827962197261165494121240304482230594072059755554943619179322002402765834729853267992660259705025255539681594824467637796755289374932159773967108498961739656261608650562124201933811620013607141852954271178974764171308075191570731790562501622624850622712142487465967484979940675002767619571930972022218385902153686215848330351579603142700139203037102422731519246056922519327083861783127693057420681109585634777666108505411544504860282318605201979010397213676103510749121907018997560958494844632772375055319992633938635356994588982275973021926495334780191374045182358452852291238003189335251540771953730146516952539706176522090091046244057599141809051777700891724411008655269218892933423885326267437604511377185617568574304601241397798326852069259751562295681691462741778407470375484619739424241753155985296687679107361632537346467012427844816984132623897047083405241711000666950204070638319603620723198792205702979583362658527102944410836926068618492239496866647378958598804385337615372974474511484188111683475478171130202960894526247998151786078191871359007032371735656370717808921402189205251992379553225349390600370133559778078735746502159366049600578875576362111387261015067391008883475552367538773795901346501394892939813902991952501412442376259702270533385263521363647748427434392639349912394986167210719379935447262713617768563244107760871565413162079526143062056813873116301801422012408879031571312697166374031760634160674535501492275229518447158610578885623648166114353954568192956970482879144291080713165473379393491806247336086447959619616847544694831655278435273838465994427805902263644045030350727379103008889371921526158138788141072522500838203158265088419933766585406472209659679929287709280471615248921816637069011882337843905276946423645494070902326557890467877409837534867735805375449189601089753673135129026414905259887606662564078094390655684408936178426423652572929661042510915372547316216544809348024954751596137927271691106307147013786394745499854410642655437496076358869370017136401927744789509646154445745092984182337476676003712322170985751056536417076474733134299502387562634508525701275082800904686992582225355930808360195543248921079164826687913334589820681113147619188174184821550747781607428314267871127359587582773016894866058431726383386779201061546356422654166723010061131071444745250597844194049613909005074689662832789554262008991533969612297658409530549025056213486434401506596474056128038558059924924138209927097862864150097800239815792541851115556932419019007594162099342972085159381998250196915208543312309021828751603558042601660855487387819536320218467156678843173622566283576197683819117520659243006028782290430163260160511119467764346458006947862248917999686090771967905287124325678764307762741723905364944530053533149047060819310699379083581729103041347805620133112586349636211968140650018977228724675668604086541766311898552157645713091188885835688421013165821546678720184014144040814372243706699212157285556387083680871624220943831067178096446721630099496412012503476623209661203184035482849392784164358956173168019395107110311700372981286660159679224337028474602323361046471993297385652882267837667067555278918866067643081473880556522952258595180112309498454488777699750580492258112850838916792559931294357601831268353965247155341717335945290422015936934602485195658090006275657706817095447762645443023613200013225847178921220685761366726213585088919143546741674285437665873564445972321018493403678150301113663383809015648889535096232389618448392309886301544414296336748940069211449988117916280602672238148585362990376096035589998922929716234541545514162309743744355858994669903321233413816338783875986629119045196653008283044066154403673567500576974621179588834144420705581875811916941543039501148302028702689958937246062754476678113128026939080973283281596727905596990181736748771578764237005531067345085663228533829229296064841350405525354014334919110985515220485187569601624262987912863575330426260797831560637598508226788495488201421259736602215384158941784557929645141065439243697986314571025198313046676978560090073994040476624844133478570856709135322189689512120144024204117915744026720433768241552353871289243348842560692425323288886949299519407675651389527797040954721711523174888527501291250495342895975547840288354134409057963101009178800204305761336683819889984531848714142638624065045578657939586016984239882990512039856938945344318101407786222248967531131248774487789606381852744558830130035946934606817035970550299285020928719836738326143745064124781232149013697339927536737724524927655725318660290926595193928822947912538562826800016469815684268838190360973320676721056351675196757349826378122555197741916769249130819704524547573223551451906873313557870413331102700942823076192276722736639688538346798628187273174945520089006953295558482015937920499567442396564649106280000315176155266924189676467595331608133933389324598934971541372536166059594037835522642132403615076015243845191569834098153559544940929706684204050858040299234858917303963228642212291913475637336610884058219131740349108257143721513407026594327418265558409554320487944029932739522457655483975270051019769935308145183241845850863161328125796665793570888796120098014266983373148827123889601007986457440076433563492254686519160277028971336407891869037072388964445503294659393541516388171976668343339966134635979336487660694850402772668629560882302943346277106253853374350725908333992353346813072445237349546848348179832277548612895905230801572442313854087261104156982746884580337198088480961295978250457920336099162521166746497703339241193473828175729288543841766171557707110961829938445837390799190775901357356207524367379007903235360780655034967745519076026863161151097327443916551103476762609861865526946390899419749937059811802979674045988762647907560039818370894108819582633538894039598144917319667192951058461112240166359631310856008709518138917973057489736252063182772101937130079045688598604968687671682763776967235981156973603406269911456622111446168813454421502666973772515830630400316610663635608441027434442872487996295667161241784308754377742396156848323762812614827619325104166244631755662950881635512738257496125240387402669348039098278704746345681239982181656769226491110870065728772868527111453461589815999155810872483375566175638424856102989262416617183196692090975279529340883692522432069583960111986818852411265207289791835115598295536375184095772907445037182483011653261558505271543464856488189296785594878534698450122009631095907843418474852295205691261983997261990062307397328666618664963933541098744577546258852360200473413580058335290049434347162185655103553835596060951403969095144194432223075251105601108610258999410860079777760614018887715714556919797577553187515352599046153392843631974957540257943437931159567124294163696394489798856885253349903625508587579990891606986479418431018801009496231159639597967275942991135156757556594456435022522187955349319362608169405276910055054668731412894962548510281316445169368206384389806266628071138938520942085314411972694036344313750202217491914164934916593302359875597114935733040139835863963524280241558548200344394036433163502892643589401231895656361726829941978648505047221140873565677626135971903907825376916159804390422431385606156990173911811131877033277619174979146966974234415364126857061798807982895323999033596532792428437326454020418284605486573576448943912690362053846959382686530987037675321660943782095685549931888967257523626837582304726218537727092608766374252182174617045850716812030785831669380428679690032842337720290110447262458571705600917011998510957384722706159962682493239937000143355759832496647146097464122776459388659390141425323626045154561561013107399401451484641282252730366279370106325167369640153052689679218982461401912411146066019325459367485372469366212784614072161474746811946865257843741793781443533671836986745243595595496634213533860825222618419114330091385246300014439132934627311984791487589771057877521177655611884605827129847537915664416579537944277480118562181673511571206330642277833134331379526502857832004187902942969893046182313479508917928216630884726052855540548932993571288195212993860398179799742991281045005261678514106589493648161780598127790478838750921755701308798622953880496421508227591294686796652948565961554316266505116227253849559387698480450816811368823919437592093427137563989403115589676357410575147013768958670765426559421159096405074110523564166994314370259482247936449548560966337905049738291103168439068513776416900138361518636077943324119191292930241221164952234196154344291320136714419764928568037373140596918879158809261592815116936761217716938198037323784374325332896901308882049207369253684909178778690984173853818228095089712977621962730977527173833146381722194967204887335501424307289589332491795803322425677367499150636819159018446323458525201006249782999830301747526635394485200841080158870424500794346141350520470102339180852562665500949720794761034716217131295741165747453697689123919984730273029591289780094710535270316367426431169053629385636565583837095968730966212616491501589575705365347125516569390089441374973875976361052934939701756877113409402810167157066349749606168738896260863496598751069379349401027651349967230395407483084501376412575510819919834215624966419387743985801083690210276868356118016461284726796581693345270363441845683140752639536271141524505442450011858377679302828250639693602849499958237333342319715832674308999034868559014359385569790603000004560397707784417485646463411421459048079171235418276718924485352377446372624026384063762707321359753063705720745812571479885416814240620295478821358938070670118094572948689234069512805295571648606145095784902338636774231099993352624924612475606610673220567499544228124050918866006171437671693852697558417101398685842822380926619832222080256257102247274583615405925432260174387835010858151583095016729882837519612882924248482153959596597584640154974367274881575950930559662659079946373888078994963359140258719093393445152150330826176050174033500706288380839005434931276445590376681692839249185520659687562576811852635918078541900578194567722917330940114578460892266549313937014644055529258668176124031057038196587219617089912486562053204746670558459132834321312678928434264833668547132402855151048902379090952169781079520928498854363078874746618759275643122019947268953692455908359642949064023197379213289889723339649140487304311776710442817655892263553429784759220193038187180488790870905956265680572054658461420674964142057757898084707968248936967044198930465506870479667667219124586278260806452311796667197353790249548047958932564888826022565409044534598046944407427178648383919463870561654177561070068169485055627648911837461023480257462292506857866535324141051084537987834117174211074874556660906368704735469098049485812206839591733702853997235018743019835976657544088718734826004730067425652607006971535740235508303049797703044591492062411129538529409663694120596465432562707505730919714796347613521211838231121959163862039305142181835772307832123820312329112662645702758861716901583613673985843098710112899016420638605787174144155950891417196273297601451600045216026661626922857548766337335430634706222833736969049356050893713073527366550250732767442656729677090304615395080256178343303315817447312077256671799611168536382120595127129473261893421029119256022152888182159204918706778563301525708105935873674162441939608714118222364585560912378963564379156110591582232623089513509530186904294200932869848683068534876585882360307571316584523817697768962594906982794459831630189077877699505829351112862688257506476771951389785489988843062539443320076244403059661962806122449551816766170026641389029193543457967865551045399185472719964522661397521538057979512056430271674634115328540850723120217847287303942177684215757609453864357731250303475503787912073525990163919137194821349223215136990833218131161154767134524312310633091711550180052184103238043164959869743092553423223188208115387716472943213151937298990830314682440648081892129800394228760822546573390938508291509398142139068684901533196862670952295698374615114049080253156992746482914981855718006351736376486163035957429362252549630881562564548116697926137664467088414301762125406408006137260071010214336755712480419296496678769863757786673567335323586737571071862287942536361592607892862510549507101527849492782243661132457651838358198161245897677509809603144430603662725900054427223793267088601708110545919102637282500583884041516630802869713566604709579099500875091112096415876539513639682131703337222371593870722994198648977330303086734867978885837066220059768029944025958455772436690787584004575574076644544122185408309890709403671464973369199702993975122596826329803600982881503965964026686719699772783635678702547609723687225417720782294573433598257505481532216878909256729290759024081263799155605190793312926486374984428356588307453436360346331130066449448325926136656256769001752906230769192566483913578548179270393819021087658617164585355551626784942823961701724084260511374806404719433579599302449165580701562225137036516037693147991025272632760738811041864366120049164674878387325640259397535881302011445349274821007805893734402371971157068491468535118611280160039806355522228060377544599486917868770615780029447259271731484836856626133442637669884771612438341611606367077775868553257714187224226165630520218106078407463829586320461852288986185606609194107824516594194294314816578927787637276292915005583036174403394515718382849814584450591911914112398802600844524192654587860746220558651249076438274992648925802573316859513739345588069419415416096205909763935689712530848077512140110629820037522834434332847888777057724550684606735426237327555571807603179161650056944471131175367947271774986917851139540038210293337017940208942251962658159595655986009216427366140018005580009457976594992851272969973437952297608112626879693671508023010911708113212838204486043426432096770930956073424842128188617542189058301275721928270831679576568576941309855388157575017725870414711189078944362870708744125804134273802142056144800099718271145935699397416047485332744409683541631345807828588089129405622507697998526427155339301710549326967632767482295421240156051599352231963124381429876848568445224336486832622898101676293306114357258547582716150523311133536996166941065321128655547217182832952444683473854163304825514396767250594416625322200879286343615687276587638356805987989746460876990696881196450562006794183723794391988787181235343831482861244712200982871796268679158360654608840867800603791252200076808390518045865829258558395620905374098115133540360764788639595671046020532919316645928279994998350295664746555841119865444809177125309051068107063379249095963666928029978123697283896774321269093753147532587512953274508721948226701311892424297741237686582834547808818300884951329035376401854483395732804299243574118052577921950117354464766185277994045045274479881561793171638536281428705497585242013876043596510212742018869954699016185761901625395715194108904062928993238843611024537592256552869758214667890806037657411279466484920968997059134093249276349274007671645143606829026577046489140196862347591242391025709176711732884079762284450973259875884346929115425617847376151409547007995860066501713559328894603500443338063627359054379918915521590044664611288943193278501127714738961350379435837017168780142439814076396579233675437296020873220722573479632049915090010247285093223541546057069665102807904491000100614625404386791717288270770530134437858578529250418170013396336343278551588525080077092289197923843494084077277315282268229876922521956313658394555655746808067325693730557673763151527211342760084667816287064837906616670994555709860181931950936764265045633024256843581050427930741951870258906659494715528841176245350505326312597151872797874991057255082691026421723827020035127814446307417241607629055386972478087324475475871376927839680995279141542866590303152030170153674122047418405191665503736982804638183191570092212484932023350362869016958297145952704020392653130180755081496905609967744281244949815516732093510970599752810910836561402564709799516544481451502375153694475001307862319197758180598736701987235643453826374779192922719205774036649439263862737740343911481224687689959774664305553533276100150266603987770486768379527770371213479980827096451457235097492667109282142847058904695521067206942746069466151458363288721043043741426295717189957095449855585104652924548444498678129005744014766613941482575559760063993744151575463056193862473989201581222860242610589503041002552715701017805193944690808863925323298344192871893774081351055551774476777496600406154047935160914543677831894579013765780225714767570565879064613071400607762220652268060600125782277089575221111680702147073800231755114403325671091398762808599194938737994927615230928153294016640920650284084475589740977161804865421830340900428689687005565014713591613498566498966198298965783971556072991512322367939569650004873334885479919326164964347443349175051266398654802003860403935594432588230553694846888656281538209096483860255598794159141150280074873373424821056455934198479442346148306575835419807437616058274457320067978007055563085457764743042566818882222142549617061073571995769711779771292743237806538189020784211286519170706219762328569121799011639982735194320844862107945140618931520529726358134431024640049856257789019538175851328106121410526880843827127714640233188852345621910374999776443634961251182617543910634235089615177619701843597929955013241828333932274844789500069710472914516381786587008507665000491858534229325308134933813598801489065415129117134859034019508717298130602491254016527552320836203364239776919010144803724478477530812149057600288732347473284778731604505596585315867184266044062622042950207556394956146281787480775936750818779339012420642355203366078156631849633483620994053380651774997973245520206519193678845900211859472688160094345994830525664363291184406991453229908180294344449807769036783748852200146175244930633859642151072724831714508266658277070374755696755998531558934630687128871009842709545863736446689533638286650249524387293863660151913493634039004562816729366324432062119929877302663522124413049051744988783859335356022877477531092270711897378119147320709799593981149097355526585229899627340746436444118011438199641620367351918832920303223541144688701943109822200862104049406532998266267026416476750870424143009248982714150498079273985290490281158736031028715914546300552774696040293446371696800670623387490375513210127683231384869538672314053391820665541440104836072862403281282389588681997071167436229980847609822886097495695916187633661717869137414148933158777274280268044326209451505195864585985422692625984546582975906438779177348469574982705894113042376232774991544944269293086611642094245556885107967965263924542023118648348768874490686725612914170706412937540384687869066896269157648033111319658415086386532251728347539675636666465354497938260549676410622930083913026442405827130607680037834123526274813543787892598675606539683285029498151451178541693436454797945976497249791440906508546777339059687377353771749875522207587259757245644154652757093177330166501323648423157264426954299776334771446497404691896589931444439901863761765303821628022632092160780020827218335865744325199421095693560809256368633175345726561343103671762606308989573272418037843028999768741527857518164726547183384634169816358296882460188890217762794605693394787426326686059330665592687438195549364961621481280369221498185479079032858466905385637808375577838351404865101522517180855235570690128610376283480437398266477338168787918920389086957065515853575716396016760155304262346028618840426801855440817387617732458849543944385859582568272632527415778604024079282770630128738249423380177024805719600952976862839369411610776068917619856327392181215536920762869520558382071908870226465847876894159970800458315758761397200126127151447919420317528663273387074842660587997572065405260926923322437687112769224620708032717823810287595081472141798812596962244556977110313639126078793991526841833369189343491877900256485562220663654925353637332703826249922591109360360902891485466601572754389575651658433433363763489872282978444031422881669332076264024744135982568855084887912922683430044597919804965321673643860445424411200576168225111914145443504756416123260835930964838296754265579941140139507938690601745271858959428286320697568016127398764380643304544222101463080241724737978209605140047991109943044875950512856647459436386309588904633816474728198966904711891289376783484515940626702088636993094726237136643635972134316281590374892177148179273121850922378438549953785410828504107715730482288196320407603439175519145635473207896150237771857704980031259775172500749959061513422660615383827037732156645292838855335424397635779758217780663680887113475477496395217860463314636481754311971557954305475809229696099091161627600285102649833464411119143689918406018060419382359649432724142012520960106783277406340307747846454582070824830531556480766103686504212480482043996205974330055223886716062499025543205616127635258995347625782304240247946909855043882654496969385321487610807167263376527108309360454080694052106448346699184424656437325728379118912687701415999564598137291921667652790032951198146521594327962859325943502699778419787217947351035487092859273434105702374297562568731850699196088801420150906960038219868728814507328922296256670721350921264469349478589053844324154327809674664544137076459321891278003511700096772766523947189934384267509575052536600336595311002730410551197687136338369120863398562994059425608045337745924022613729350049228779409106924399468562067387275985249595034144337452656486551611875751460792906214738078643512787041809001458512503519864966902083512213157848930873481549706359903587457819370194860810347099008301373189409185646533941642131884215150238664655897671763728017745668253695584300087009725175430879583210570346717944921585265581654391716275487331643105664534827384784537708488592038130631299036189244506548073646481207956264547598540346697097263961463103515607188602614010127862474290945728335535230268020408622720192803720645295179324984321295948066734090539556243516769642068073514026798724517339851742258260592900401469548346604561089315720860611340400621062137213259676201567426376579429732438027364844665678045823307892788866092322488436845765649644528430024875066860029623810690018347689718744770452711582490593316808167184013973828171604690026024940087089371188232964780727224940167512515071745867911349258569656958054432660200432762615824191577671675545707577520324797180417284513944213287291744992135888410260153944994541968171149921225261209315310686433433022484176088022266088627318874489707929517771738241552224603096591839686046221422024725988085101047598665672423331908445274356865989157665570923776865299198823229701941889686522862393454194012566507913264615461854046519504511245435380482237956488003421299207865555067312741939712572194639641972968026800676724255034607381802900985765629974996922416039045400291295016423244840909714630575284441199398686294277741330973063996528469457477321555716677920109055859711642615292774181652556257904098665181958208233356472772433448446829509835402335063290560944207649958953552632868639463184014714612326480766441283969971148157449561992196726203651581373388943624442342314529276476566888767106195404275208765849954789137147351665776359526318705907620117962201285184599549260772304183976895963950522465474502075847190854390711267311359455276134084180340712990299364417042658147450325538867928640745824435986978149580019433012689787971180239249894351070165557529629278341651031953592342242962277868946219258891266470713481588177755840127171651419225961275649636837303768826964047219631303592465024411094288485905687118200682749516569259132640615243016542056479679942921591812189040502756463120367210279873879092830613264423953923624668685371706927653326847952211572299627727387387032672128952294010211351917379145111917858017443997955126621311171181337142104733079259012416455325166708930519560159667142573627116078198506001491993184821959499946432456221398791009868775355610988580914599380217251930572372964165495530736489170244133585087840357228253024891890843084173382315126362401981097471347430686486093845135483938120357034878606165043571164654081673951450054841887273533187109455922954729958786645256550261293639585159538738524251475518992582762662285707313179994701174739015210499650005886567850500171837306503678511411020607233247723583693982642514418341875376533935717363500763915364727307089458007296305028870934177268895758983013295599612204630039613732445275820573094775404474122659171827327684577400300622502968623915159534120457740115621765047890130346366985232062665711537808399867442147772025045722233947666935800480279946991964084723837286391228836123346387735649549004552179697453126722636849066417378483178665402809949389514920468757516976742054494680282036693902014362072350031056354659457176074203961944612080599290712781900463045536985165450480030019090012205696942842399174115514626899996669442443029702112947508568843398277601081415981400267420965429832776159786093901846766841220972457778793877086755444696876158933155798498954919191479673936320704983084578539802368503127625085551151518937005330960186691099138091651424264681030331393063045817967115988440107101534361211426892797565656201977937736118942307140239222063088438702781924243059610473735026877154518789375304166625532344784026394930128652035010519615311941223149654278378514336148651953222420095168679723554193821372199007478772119283147813184016962657504098195132982130758299865351873046427683013436089991107589402434197844461019138581410632122427885507046179017062464044969085735403020529402621464205587011705598129564065475121121186436781777841720754807289480635189637816100432443214203896772267317932131183327271149029450402940400214894861287916300742818453010904001532265319383955719306571629639605466716348551909315291203696175909743325016056197663119421100097407893302812121548621391085528929188372302639552958212320977307883838462114653768538258496663684163193080012963503018021289573796177158452990243649492153723662569412898832143103415682210617431824338535073917092408019746362791678876166221339909495194375107231997137017387012277129551021412135318264242401995033058973526250038260621514188543956958259448087434115376942009287814081160552909482642121193851597386771654404174797781426251298942939043909263852747541225333089228874211199924158387955172652335232129513271691703787664340743928836328360952914237565074089943346387833316221378019207286362870401555566616178349694606572768214161230477574207659513380191586843412006014277991907933103753447347090732990961799942882550694327962409697913117795940464926195603466374660569066106134033154671051656057912429147338512836756032463781377892366620137327836953674316290024749545904987584384545374482835355677459781373529155159037583724616167933987708707567706006683200108278710154657045376482875809134440377852972646792004994475339457996463923899325464091189532382169424239801291649472251168432325263166090377127618291186937247821865892515307549423119496286023648146223837849155508257199627736812559481813200262888492267969739968234398236800892382017960545894571598028361422529072347433670163288332751286120615924594275012911298993677004142593239679751318533878523870744970231086976778157477307421913075224963898764550343355214737694642670590013831494341631560537306819611066046168040183770041325708029213063641235411299267996919202299454323786019327617574756002003757546235370669442426925421784955686892395702968271112864851002190750208930381830054385364888293366652791288495904618025431729478399730925163661742720464975957362858204925570386193308395046053767781349438244595931583154489362743278341217285725094180231011437827957601928505230843908627087534844135293836076848020639038781575116886015185348010960005034175128428772033808822710585756625305842334979042883172287844494817902381027125454718718431374374155030563198405980274693263014822985572447301065300844045114441094491131866080445791141276204485112664533864856744550174354419706729956445450275630917079917721385880054225171989367612538061600017843546780100201361944683851705225755947211062869816800789347525494578208075875771457039516645685839062935717626756148421569194880148263348110247731185815276319335498602461083056226207721945523112942408477235039911803088932940112740388668537115453444082690342323927229619225807175325301746764309813470434844178144052390160639064068060892840230218530905367265218549842880468663596664755645953558624423751312413824419840373194792762465442465422780377735796544393496639045659984335344427281176549243745716095386216943130565483925998786969425276883304250487635372419318708215179049433632053510683040520367998668600752313606485130265053052896594435331288047986475743739530692813358771430668493980962055984177784602572158710395411462408696532240490934273313934724604911760037637912177661464099372122987158047704847632446403714397148388223236177313096533822701428659161982013104235039181512114298648727083041904474693774367133191029528040530373358054159218358298234396780547969599587304106093270878358485012686610960983427262530265353635394066432836917117992649305826382102775677908689138536943167186282191497915827639285809720981883798927206579548476317906790873369951967674596435357009994967879354789019714001035299716656986511026796634185836652613527508654481239458518638716228692242545259033426032587220146803373304090401783743416857829870094641768533507904281410366795536084863948598046890921924335724389577872897202955784012121787034823249427711908858609519287053131670691693553256667166166383893423770498402804438127463317673248005639319230037456808884316935859546021133937444836145768733175816351687533494252710430503012779650978147959245427867444177260292906449214772865261805988293315541919393890070241898591662894675113918797150792583558542878268295808138431482953784647218775958877445567704623141483601081448995050422465195171593777500549803717244724611901390601987428925577743126376249085231417772756129603040650811615401452533412960714528182378686039237264515208679206842750465168131233848336866524249438368967794584645475383298488377684901829305740235077390567319555752951795973167727098813024406516984503750856704517692748181035222160656601183225247839841747687410900146618312990065105291125210054293889484884553476536796971092734252322707383620304560986503014282200345505129354840155145161422988886368122407814789213139012031376698118545334792177716276227353980011228197795931047514044477843946007582390010095943926556130876688436646824547666973185222237355387415716871564381510081767370791220926461006626565519411011546421566236275449959103319138709334176224940356504642902242665592290775073775816304143828049403324986388629161464734224203144317310248005269881038173903847382817079983276042405035761653040043836372517218645409052916585852973041303764708245603975946497694364291157405275143418161783595827333844359015996910450452945738155484064461223576756925605558521219414872603198267024514674208922581211894792587270583139838663857616945642385345627236160699031353169108669694967410602588152084364819742848934855914103882917863288306068233347785538461941306336075405812896008624591325417267440338315651820071424329680539728556392458779713364005927535813235362226675107444844372708736378830565646761545102277622313903168615460337511276048096781603534111457659764243066173578180242040079997641025738780615663087606959596354235637380617381532376580106180340909992676983592079018472306823934520317743186492986658755570563325601591274387718439808018745807013255484187759644358295481329740359935401080557832452933230959236159617877119954021446991242107819309264818586367545511875380320723490224359770890291716935675123814159758128187295169610416146442464152805184127893532849603698007320787636081249699815278893497536418877229260641130907165774112884050060711344547148758669913813112743607957808034973744820180825939938299133503312700832765433182341878915047111934073645635640332697042600599230390769263575302077073695472195104755093275114514863769926864140121144517999469824449444778960428826985192899152807628780190315867282785555755514028470524180914328358619424531763383392589396177338160612645389662686030786229138550686795023879177846425373408124136079130737745004922563646438957369382906218119647207403295694295090520504203926218491051335568890654762303426207223459790746057477031834805333981282589141576693239404748398514868157896455777729736667316335889757873741554627377525266390794745257813065663635407000220775924255683821970885017114822833663693010779447756000364948149652097316231602828903540274862441873790369748375944844483325054506064101903648656331693402808436212305891053830444366509018068835972214038254730756967913132849649657610804349762310557907842579270268106922372659268299459493186732450871692083976485518557707283563631294294190504598769113289858775153651260249576019943771840287472490728080537287359550949042264661373912637296088469185194746834842569835102072097394560715319988688855145135342398996267242267778550010133322371235729504795492380872313269440436337250595052056532952234301620523111008034819106357523142339691894680571166761145962012066718843844747358015876633389872689024863584250971101389719381474946177348763926642311623078537335260551063017715033071347147726920924089635751726711064706590431786176204791668585349069535066419800422562417271224036701852176634579916377373519745851534506050370729419428698878596153908469203480037277087774987246059429407450353893711807161055157550121782663088046604192607545866143820685048271936690736900017584308938172786879083368018574510817090134398922840885238256040972627267894140227118518867183863773867009227970620417438021719720408768958505591693622763335057873162657440130532794032100293509691902697035671609487634704133731868183194703532790253972645382953715626162100854335485050177470304354314070600312149251829164372039056979649619117182916070471463504722174954754031238847983237280938544223045408825345598952545576676297377604421253692979638527624593112904335143068295146351157975753411867426613445090930806471690610031242202793133147607660882064971483593849773782512655057326481313638335085878172673950736943359176009669135008350181045323576148349080195038188980278302909707474243213837548891118321430003120604588569273949938086124824805404610648589323394631109222708752773195144024979529431424058260222594258329051746742636197006790881930309961387408968991717881569593620195193198439007356967676077758789409071001826228963795263340219287842789100231286759322082365262177787937364567016806845573897116615442202448821953779107607120795542878315405424428513348129537826921942058676055308271363856151801906078022522326134522320859693542924911128649051746216323282212894054963073309736011465251662824627926767672080319365280799216710928499518024251047523241781144757687910148882550807766284617130544671747863272959928199489215085192805277374191387241143933156592011091598628051664809477956111594664739850927264133172794799070032605881943865114172753667974344015289797458664334809702496523229255166291704992674181777281012467612192133306424321113282788691448948642650572175209493402933120404316782011812997038207777132514749936138344024121012918223879331527924054235619324666630130916252010277550387546586545315065693690881309068058234110120211666813436738226342512880863298058165062109105329078355409383557841310495186033552694302350607308042786781742562083782028525952845366229018637892237935249909119222911643427693638885366262503173228334791607077263888419514808977550330122648566099408375976625246212118958480781515558133706916772011149689095666418121893372103277255431939514544076834001139311664154598023448304439314186292743100919712160775153564730771646637422059256557825005184173799495826585593837664336096043135891204008315544668769582517363928108034061744810160018461735834406004622848624211153720470627281154467441443810092903717158011609174576732563818298774797161919985934503473904639493974963243020049535875848279677934825454853064259915843333697550186317004255249425811206221480742126231785255449829108310291596446841897711332182926119912766567207443241975688673936377321271827294890399407267242949807032560036453593720807482006633661666367670112624656664972097463334238369647244514495023848194742161694815001762867870650586561802294898002949470661792050806354263394713290335799764237970267963523296779951568127772749251554267222932399183286295629588553323862060659837183116139252538059489531394675464027375470942559640509305011123572885194506034655025608614492009346352200541316188970247243595596004287974612438098047948731833784407459765062588334199322409138597612271000889576148692603786461165083209088735541693248228617855315841280080227438440368934866434105160964587081322693192086587783583774789370033255545022345890874882123926761918540847110059542831103602100841626426520131857524330384138715051278635523167899976022370455456944468556256266508683571531979541590816554380425503499881473586413768579534169231654573475574409066872362614455346030876054988544926058995464043616144596987463088594746885952744843197312257547116243629744123679491428343889974102269752347167592320779179668787901399728750198745749451545760791184197822747921701354620046839099647238270769866092318243129783794403617186956618983231563192422379446978983258992245921021523892033696657717722512380646457120098794902748951659125672524800758293910931454450464459239077972523197630003979517130641131506513844034224610222818216159041436747356482542255930510589226986377784694217104748836278719345496375795036086090170285946944942370018563245427396314697913953878229074233192525482992230776858477155473845923584226713506167584078166174138689458723371806163624754076072731139594073398796437740493914570429475342853286791728587572608340576645405909628843018139939241374457973132878953786942039675341162050056565918271092647384677251351361320487670840695918986215558760031731427368981213856748349501526364815673346445870495840869696464031676388597711173126735731298795708400429836306112026154753359235509901221504140301359019014353602224695497204937282916996003772639048107139049702900952966352171513349073987253440848316437263408464221643196633467593121850464716215869925140990874116427242138755852805037691533332041844799817609472527924112634800755571463859253724205750809166059788709271876907962639952437739286735810642032255126321415289575011410888521983236964908716842212046011831852474454695308518834098883841736624660753437149909268732045230368004779378588437261569176396956974935339072329706111589785765064723635699467008633522852311754905479139205536364931374530616949831252740540820221885018021458983693398295000289712218240573861268069540178774590652779992444237873523701456799146988837750125214020211982932499141307978953394026323000068830460105752444708163973519985946208419142805126434347494927893500809640413620635449999862019087698564352408592802746710966706646038510599306634580839019642812750434475934743880488225779753634557708029524518529311980271978700571234612490351224625229873582262744501657185719195878375823596708621020159264487063137591478982172214267253590276397117166627072899598098438205210519636827202161163888772824335031881058391320890505331831148352399500532095428822152177717806265490664332762120534353481174727426204075871590910854527599759538029610711926170268110431757379287988771971870541370010986468440293902111242110413571824765935984306449386126136471449894787541156748035517210000406194293960577357507267879832292378371178906612239671263497238108361233916262084848258740063283302183291479598793933797697793601929241796044821927184392992881930074824458945638664712591276716083696877577886760713222104453471060231693812843061949230806966733885970375738158171790849635796593469433003217542559290177938211280436686737721597958891380396288588752593355366733285579312886093421141675772462887527741535181052793188728875389598905273380864167661158622140027366204131698828608023428651745095194175553310032452424651747181667960174382344600564567073557562022175320539486546372177535679244481150104455850027829986296942254183207238021654646411393599538321485177775612666017867843912819411849391167827833821300149739109775960815402948982467926243921674750278492854079844823409276867967417638116990928060309449364054230513479542547523312409049294854241901857386699089543184293635322633654310872305695487461281728095291076018887425077195280864834625999727578466353235090476062555514857754769935568657968676874171060508235846371007838364435059765376576881025287651795981163162884890339524229707975336952770068530597386108266688142172919168079710281723114824446661902270416200726719534306418211094987113206546012631784508559662237021971191891579331686240867756143214147305596124473734805122730554529861263949737025522646979711314990016122917161887198616912114699905143604412851385013681667660049150950875001555143528092491782025942647472842347198809589681663367948202953709045510195366867879322741028291998262242020750990098153800587389919209502433864185647843149717832225673153016720572252746995611010122669211938940635689859317000339961822551993584719132350862563870405111061293542102548747820403164065958131440326595316224777762919869482494980551053962096153249729481760081278987044362955440607618992431714586347481103549773083089868654840638120259910975808532446979260897462711149805380700078399842059911561688232719006012377362634261838783691787684064682209455510302414579201310522960777595646609245012525224586409170650902954717767786615798687317407913829148691861455825129676697402015170516928747991382519650828447022898474626626958023859802030716690285908283859506632491526990767133257196191621602120225569766105224693572813831358636379495660185867372423175460226785238158064737384372129786102963035626412482437838649010848896243785146572912326017199323163134417339901655854980676975053765510022834787290622224020677558319946458769683918729324718806171866530841122961953614289574820370978867343782091954784180405822391375490478136686495790247372239289792473242137144024681404386498389913848509730808285230346181032393970303985258550968651189190887249912168179791546276811972927575230380953514218240271101172508076131302029629135237595265836011458877438830231173500805452584456434329073263941570471915405198555010340970240251051402776921594137345992507946793828668320973173605701341582099749934263318623400582870104794801019530479110639543632795550340456421732699240833391884317971504981714030643033813172659741135401344931881222968754354674613206159962318340133482225614995479038764278629730478996464915486389041814432579130942693761883498199039523872469204861544300000396580364976278999025118098098608670560551602852902918790165925610790224657648723943605085452810715007812420377543173903808866635212720319185932605741081645936572881891667959291988696594081125308359807703761843791761029373618349591030081957503219433534299588661364928318972149847613436023561866598606289486954504883212386283090261734413679548206347876698715201389717474663051855926955910170163751854226686354409746029880936875493354966437773202756157624321662498493475492195363327509333311101605090631713960700406107048084863525932835511319749198312638084394204113036746569909822875116021851191524087795788480295166650005226015624380527528663347632308765401573058252305903386593810659129215793257447453978061791442043040427703460867092796021180132012523647859041447505119715217950203373433702189422910415687450756599032227276112449479264135572494322178134580168993216307861597768052730343399003885434998692705744190211352007625293543755354599276940640869299608573801759258482323400604803837800892595453965410363629292052842394027812042209120810395408402691523795449337951469745020069873878262490313527485862992687915381763783471034155833104853806755685449060194072279349507043977068772083752443655438189580571535124403596915737020731962887969631778657870458054256209026261861314688084873502495373888107447121014277619541311067138607084758630550803737962846117752763401210660142707446228253590031052558658044705658879413298634178703779922788629333602867947167599852516177825011585450753964559213967744137855409537149577199539769436335495222103767895005809427387221686882321325327236291608192341461642269435885470557152587518144709543790107143683668018106190736086032142243436139867428443233974283380869550772827275746963201186420794202446440216298264884723346229582716556090361662821007228546710611237151229609453013755992897860921160845171230563817599044054234511242350516284108013066014977273663233073962816824019994172350018989159228009960177462063258829953473792215959875441956597212235976177370524531787377060337907130954098022915496767428188777276261254755090453377717353270141520076151864679015849620923429989191703021665332310892633505851669166443287933930190968377257379158729845689106049764051995394012531309862941247762055582153376548115591012388215573585846200023250479232575656275327967599318106767418213897494004490631111846787303164384555824124391984385818866933640137652383945015860742452460176147713652523287516367126161129197350941641920450361410171498726193271840097880598475938201809185436286840824124004193488911092104332320638655353520216002940377855625323237171537506473837376665863159545965739190520673221940059893278479588061359627105203090281799712359794216678856097118685879782278902322726168018158331001378934134328493344148653630023587209561873276594394563969523347802503429640288767517690902275066624228752071790190336944896457760951896097896954066690859473273733963749880157863877231576778848589902645029259999444706566496774736678097552769819087913373483130579905858280812047831170279261037855563863484081245344947158016766930455359900847537608073729081088353640745213496479263504202511095905193111918616014301017882594073508146800149890837226034630909275863480497776604647420385924991997592541458476613364398888663394097092075767138626332333959051924072203665001458734142637327878630392265901363474696440415200019865677533336999705684077378227517660290028950506829800099179371901233106615902043054405411112426377058308169818449659301386025049050307747763899557758080650288602533192160468600676161952856559721176432053541735991700074609699216755717572540189463138442445349057227358808191009322372613454170928103179032955573197390627132771191053775191421321229726543626413882848331279503462355746764480052276723015140650042575884587222631582265891321979267177924536784822401556739461467106378621080299847816700877333711761141034237506676070927443424427848009093983923605580098568225853054716978996137801078114700280493016086156168777275036689717817894724773446166777744977730230205209101911612570044385364290681681407627018446425702277096701147198909886176052214200775040157109110469614473976275072643538198703523233817999652443339660530181457630725485337644613721312531538116712805935135830001244111528028647045910556924865321887526372998310985344074003387888390674867471721259239165881706992491715715491310012409318028171598116298322360221637059825209274876410362313285809487108617474453198584292239034463234661616752969170408096386986317779584632910437111277394753244415961260621082607472125815912621143361853689756204195990416985557759968210086421742046429776310551124960967015304577876128476339846825160136793272752936612317095750166964491238050147663865159430094668372473023859204008551125721200675115983372151942876509429951221062733952756959060442545572543305476424600311146117173918835233477466912875218357422076060164752246174017229249359394476110476293095562437356859478330115468097572999109653966656617899861221722977760881795196005065701801563589139234984822846293987526538025108924784645546611768105701673490158311984974856849482113703426880462545824352311376588441980062227258609545639002003883541769980887322243127133783503187331152696332593655856137705458063981928426988273182278516654853572035143597220674649988705878637961457184662141791315435216370291683949051774622139281342429139886131060083113062677492054074041008295767060566719121743644205545849443958614815428344466174590863159516193882120062703415316294399111400408351016170264551038511997233433381266448413161818342438698393644719049921342460365032590500015991822656419575867354611704140128285381340308547462124236415275700372798562243282591400528620654837581266460033458164065971509369559550975847681121230632141484203453079076524901873848244230723689427736692697898273863846690325020427313183656895385121191651885098477325779788721244955407309877750922412200984051148099567830232366650209090450494730000845312450131559611258293341582626728983392211970897976935659765796900638196927900250754402822066795821759389228049140311255738125593849961474215050116935496594427853437596293859456593981929361672015586316007796979915487231590405161982687577151012396855953416716583690377211216671525342136472602726983839477844712150807047525119248006392007715030797232593622707611643250416266124764673054547936946294002025283719344999652970915737171824726231018809608331787141627017643092404130583696843363736510753006934914468270018188402408473927212469165056390895132487097274734673776555988444286394796942916123755367661919736164031330534615666765404034116365761145496474446688487013256110427883815441553369960178599835943576320426155342397136161602183986038826966302729846617366304908541052535634176208282277064345946090209805152466225392002618865774610456188125084557966537202574023896353731374273507981696676555157526155074781773124494380211990922753589096687000083249018652012587713019773936423824622071976109248934089768582520510834758782260798659568985436290128017641522937718805625718611303652058620241432912341059134202505119643001707488551107894226290161899864016248644930095027717132208554699393640333155092705114941385771223681543132089365962316928323474955348324465588735348777856852665294214347162793721072908664554315236381442343606628699958334924005895744017722387580274925693225453482389484814436504111346470757765831804857937734529588370288989986608861512310910275877935706691918022592824948120995723947689015292006054488640511749549675908676171236157930361343830165097395949011476501077847763601173995679344517876531242039209850916713197068086300667374394584005880163757658546153452253634580235961137171438580891541456930473002884360486066409805615421569828481851525648686662216995686128136437215660884710038843709019778498385271039416164469550814941617516987753005525725462364506130385343947383635460174381711072237294291397393399516925646414403593374960907148206239305880633939414743399347471492734957253860534305132563131970592340117634983845493131167499866881181889056893808746249478563491930997972317914811198803852936880964261669340441462832720922448438154215488780414299919207123621337845804864856070155439280540136324662043969923702001784911880770897114784002558799585179858375707137270076725527451309703707431644816653815899864232206551323864211786621534377374948840537691937579906671388213337522745770094960891892501090543033565000338002258564009597001446255644306740600906983020232330982198465128658389588894176110528707435985866612428543558972678921223006164013295957941856944821762816115831434162248677931161388598902491503717925089503293706240432210943675537890226425525753974925186928061447330169951111319092979758110959222230401587767810741943675533414575625469114136847746745998144614931678694243404937678652241479332505024218776042448717181373570758179829552920197165707028101376503580464861039793547093478424314601667679243629306774132268787133545851947557192817741133615702406219182723296021365674644829432055765833774304916114996157750031808094671513066352631418258488010313565265616407643551619796828755161504450072936916354629991853333974589262585863993719391109741691939663117835991756688281586822841050392944658721231282413040896107289226692658426677230667768343837026449511765408306950444659217970850542686184979396829569551810233067772712677143395670209551030997723816330041332450748779079903644350073462015139338880614162014234684967594670997011383719668422964523640640160220371286688671925082788095774048427402119114723224626334623028894681478113253863718227146405928604861709390166004827136373511391882678987348822909378648010855727686655733651889505432842455495313696733359748744914496707972880235058315418378956519680416296936331622544562260081444949704189042395656196693697014688928746202431233182974111699289647418207956181877884820215703928460753778569610930606153413532811476100677445773893337429411190055426979792939177562209278522564742632176886731887853014243392754896782831735892778313471710734189365989618655769526177800540289128598683600097739689531930821804319442649256387454020289859777065828200759799859916556253436446744897246448189310143282268350475163139390566592423445957939832882524380560993389846322004152938166805600336454921122176160896703585884213844099434035744110993412365129619490847847333519913374916933792303406319083915065130785258667200468385868166192457561865342757866311739971757199137522269554529785653574666070671987450883068928574708797339280624941447530218903706678742537346727536501818834605045440718875350423970982360140325936327721713030258634521816187017193090043143825389645587687777597904991481929933319707796405869921172554526953305784535058452399040050382843206700815403709632897651246342199722147447177171819706605638357924149921746273898016715154979021071108642277310430326470187162741505732942211100089034020994717688993880821479008317060291800937059267858389737623689778192741908072830752733188745082039422122279001433137173436598973084125541654470729794468212383340303916313275903694905843605321728802324294748862471679044533336638102433003075596937793735272985172809757309395894823877202557704914554945901080756040970464630553874582329452937867745687557329793848103064068833353133095275708508072702421624828038902949139001972946525442120468231434290797779192799068664199469206682750600685449667977306048840923267344496472754679844471445666454716537230914142006058284837495579652734440789616847814407576851523887102009218961334593659507330839932602456030443010556795333628768936992386915672966448442758592289135898680982447757826930537201180301692344487254297834149510680636537688960589545454329725826846127141200679109459517974676827942841200799703426810679884521261969280959705457698505256936912445598606391041973003922779340479546035048284216919295344206108438747266707644157497964149646332250344765828881832646543651519558313853892100384976088907286102056209857157707255495396783913106187528588310694087324423553112392484137769699085506818752175712768947901496040869297401232054394064906582531098211621979539482526979876953405274358759372525978837250132457520407632305151191381276652710651072645058148179696558010770340778186381272290451042145032180789830886544548125779793759047805282403022293978005443941898609368727278587491446949420138903804490824937381845907510685494629833751920886640131068407670826469304763756803700612162999949312016087341274469893173481281761920995008815145676920851357042701197690161131740557977273956768673559406171184948699328151486819470813466049230697721870353570875872354830127057819481926500480770564832150109270621565134018454748466823213697842544683171053884361885852960634944043428776204329214448788898306348401908661926300852950462591795018094043547465394103118219518530526265029144586816730197102224519809578554268175157624755094836275793065544733197161841292829727478213944145051778218904522349207448306403725486734507920518931150334664973067841698292342981448538687797174498737019007996181665727449606439703200470135054637060613999984528276363954283761282956046528568546099382581501451213663484045283422694499897303012120703815589147575465601372888202733794720463105039877019217566259199804868999577708993690206223904116134948244122289657528695455047069545835346429460974513569331470954633457730257560870068799543932388543725884743321456245575580024939459942865517859174548386903700487945197767367163008101571162107319426658181644534651202834346477884995829621934948059139403450991830694553332728835589252859527487033588713005319433345566749913607044105729473209136456403735618542018537200565230896018425388925336871887547954772198884997757294943775591823700727806003055244165394017369271049676989027507371996422039836160941544784228138755213366981274510936915187304005889025500124358935582580269212508558312807733241350500142143799269954766639763979980722179603734058626501337362004535437180953158303424239078421812276208461569740749174574865625591836854181368103508333991499448213093264161162283262520884680065033682787760609917430839061723632877153409771831902951281325014380952936841892209727788763122555711076871514779628368242840191453245216776945881530277901068868777160152204194685505550145423320237528135232720172711930674743456352863806841993283036949875868343498439600029967584825883481212718102685801305315145083703051710566740698026045010159568757403707918869006411447902999627991368270690382859448380108553565488354705214840128139836463283489789874386062995028787153201778923348957230520940267599339902490908099725437731984328359466766683892495348898078865258758003511299690670882940797792262449540118842712570635947944701442261783275279294804046401046801660694152135791609786713792338679700489364300108094767919693772668411240863273821964313132519092130424136104723096627877919766143540497157968864226277471530124784911754255195317848134770840742096348855999111545471614700704741709763068825517224003042810930092969455988084598316156290803905441916159164729101748011851705104867703462329914267886133328297676973979652123234819920375014163611190806356390685949830746643252801614080440550319799647582328427915801160466376694449880299348504330786418446873056378996926368919594181742947491888284684791102394167185669245761816770105463204721629002604207214576350719015237499008634623130592362680471089302222621778008390987744328090787273882790097546237249593522457528763091323353415781642451341380318495402163050902882510692979292654723507076369707698033769081336700115931771330749405807460925596321126722328857433108241478343869253300247258183002379359190853266412223023570808248968021658520254091581578033504385972482081980251124291502052901175962780912441197474123271977321563808483371870734447015089207058537830695110142397212382922279924569350753298711985787747628106333758236820465533763933740212444536661525551671507185544380310822177444480186681250419908151926487683551692103256504385387464210882891512521412041368914270585818744997344276375256421289958735307857226000618266832131110927126013922822822224757010012289751358153763348545822945088354358731732834066607369481451961345846281469684996375368469257679292803609244465770493105656406468966526416590704441778048787956015285851164898076240943415696459085672248092869350750894499644265732638776010802065207804897860613842412358676233422213229586623480439071846430564970749481105990206979955089288931570161707969288744744467004896294911732635319822063993042753459183214885205771425087612135496587382380122979336602673539683757202962028753496309355255873855350653533477652533229090964621212468132053578436169390841402875423998481865903857831623252768114501299209047893894664773563337050883157118348613831983156300339542542007741666908894095480733614942861601580120690776942056692300037810254225069497553623244871765613676018980546217531126093742303611372837843532931712698362973735995543608852610828128646044026348516943211289835681778537101361109399875899348962181219831044556566587943371480855228912502342353415359552054913207825112582306742685097840076693070269152623942261733459986941239808344366465481953494732496314963235466477571095659507145786263926753571343732096935513421295739129721916324971098127623519367034223778499575417837081709287331088088300500281063128565783064641027386267944186839224162810025057701686938666403532939357089045934221277304285328369431523209777609137832770731144108326369084568205945558917964234120264744016066084077051922883159027038680108357387483560790255881143783676503781991620683843966686932338777949643088126357191193817750190201189168962737380582475651052484191370367350865531691595983748719965941279884559807564423376508235265956251975342805282811550552071141447947677860794151533244069393841210747468830003888682352434641750914040199985730733181213426578897209052318504624768180525856933235919461937361470598437983864353195481081893641970333319055187199501747317449214408621583896355021903790608235578785750097190953439264348768233084544624114103380908443855259358777537880178009218577855291294629866234264555846853313340760532833909182746681244150580000958840063194245734329669750954221735254985530735137952238184887432992783863418112347336514566843272109518333218155046568435239232530437420018187304513513357610005700580834848921155048478041045748342019822316182584205567553738891021961648866811139104624638824718237666376190378041578090495262728683953644471811128669250449030654523566385598117536782276521869478979236983102650382037147932701444762888028969097015888285451810739325673292574709461574639694746731956740322470084983419595697659031665604365201358163038225397376452784415484431737602540980258190669905308908553875076695600804140712801492390182836679237944903503170582449731743392789153863549435645152166435484764732686030064028531106970578046926903592958063586189360626155795984631357976409379203183789387434771498038539607771155243998857791300694517824188805237928665493249146695505301634976699807995328818571827079206643915453090859857749568573817547883130544371043044318985383597492747351804050938798591125527883795843554492088723299068897790609453897200917395605218444951013287568355432182695772715881164859233604245427167841207963072700666414853222095808166197842214825543040302480441449381394539795944725506684839829761813930319336326320923983801420559831691453720695533704495941796218744606800291726087575731210217458119993454076043260361744982542562343288533770193024333276646013610456382008080181871422262634711710914657250167226349757248473172303136319946419737707180482585359240661954476655662012036900306302237714420411434982873765692786102358008062388193025263986086854060043051536715150893991462381145836446276736714175946571245040820395628641936491457689780434457443732915569446351616435191796212492528529504792083555107974595994674634529205792979797828617385730087420786085779801182070289640096815138033415703204617477884450130721651827240205515074348605851299636497539133046320463042701123992270708234476744159899556307997816195896973108502233433296327184438351053359549572278827911243262042204699251621224050854406551894411936409846474405440115020215118779922759327080179695277350192741818816586383235296808817044109255223899434597339704947765061306108484938074962500192371609655398988017995130623364029771350608620145007968962713108338205844327843926190156651306333720446551160228770858005130831860087795135725497486288273056301594915430035896532737267641841715571468054397629088326905143332273028095638127149569676406190186518359379539114711195668000399896918205559969621120227142534144312373336937897029320336717473708146048495958575452468580028279838141786557633409274839277205555504790630225217144301757518820046387713969330032726054641339268055922805760786398849189329074290677971910029111899325980984006381667862655548049177752429740471566014340077627606977218150238627252800870896330449827870929719681268079316418292797503915848240795465684342290249732221068103368723961318545324848551952020494036445344445743384995326244403199798756432215433064057240288700831828888819018848994076462053529197771936338556161813527778784748391896725330260305713455388943440259301792434395721825920045035968440909083010911046201576896155865340162513549164941958860382328994313238648754681155360052847233598107796797663514492721958376505883318587944455083435064421211724474953866290436586716479253114319559132962052672411590461020028633514547122850501439725541764267126969568373331340546908843424330573172890026267672937149483094445406085657710591463307528416412751228974820410361568631531610358408803279740238396563999084344033328317086730055128756788621780708564907491296849420717928059693339595165503787437205814306098196977985926209007556185581170901727173885050657602936258955064858082735550201712749011845419279425900224305401241831762653644752666912479787171680734948953066488978761020245168348629402165696562623584783616618114622050765571975013696569378870044608792580906898317378989721304516543760873085326595702733486873983067600397103661471156397132634076401413342183184101290628883107749783658778015803437970553793300773685969220478667632592932992750054996078290695438964015025549786069044822198322098812259027980647764975347874808402415712228058827252330990325316521239396939152777949038693531770171575516053697572498573076377575111457938521145484996509021384585682286853460258711644510492780418345706649265071104281778094849349669892904351775092964921461577551412287139346325426907295923040508420169491001786367934499430817334384032928573487134420939520340926218388744281448906047316820300188815728930124466249620710718953107636643111390052241777030482251826113964172401795077114890434144162837679289375663591047567135838877612037726553917776595549668646722110000655654085227923956795839487715680854703985167232658598000922766040957807033110182020048990701561278319673297834235490100144823634332165877735391334536056115883197616670228249730482119718391009342909838497571667802187127578615616691174704073459652038678810113263391232064821376091202521662243013169267621161241957639101600926484108572526122374187066001243641282187167729197898133415833350193272995702534277055065462562029324375570248129708036766875115352614611245894142318149884836450964590650314282691145620036420582617346703631667391665674209158127179197714878019449367024101901501474640384831323132310148522832207508999002638100709672518306417882978664913323145593979816139284049427910027190349644020467681308521321548725962920589576817036838794975688205894037803650164308557453820116297355110240493180360215661400753165179568783854903758167419699239137695694021836198381778754278185059753987247186260609031658945703536003244445225651091126026048494582506344446649998315492969136344799953683008509218596021790709682554489113972182089925515627422001631913516541588895615033580632782810892592026734333317033797655792716405148787086799456130543607004427763905191736298247200024915513342050780831566047817625220210215336828529932107379277511013975063446404668693683290437449350857899312620458191858492643949401314181297796485636710359781440990448846341895877793605449327697953045031391622764267420372337411130688092339933203934131039225274347235035724897014136911277586348581306327280597677114208838612282182534837787232245270841541977539011012015560511213825003337916051460406844849304004761661110236988546378719712818286890881825515409006800706088949437153040236650040080728231564887520586160653461694039380306346191229195457409790703033423773160225653996868761184658421015301119140979905578300786267174629206843959298038848551539827274896019128599313635261615021395625097541031356065404568951972640127090327018793070676381607542378844067938040695490081862426802934235989789455062617248143558313876087843719363241227703235649531006794097078547834717787798237038296717973360794011483587301853919487598645237884006631086259252683972530188939214680651208792599439063300409911308959318836335273044018103446808874796666989290809874165315006458921256418875909366839250618772660634380511987351848035210038383650061709597552838010980741842680693932954252176990047244143388500191668990525326892103363279799299189050771516724357577582324138083940176149578452622780363767946387859711570548529936714334525714358419653438919113711611095102036103917344029518622874965964803368610071316802168178744441041601348701658807319850201512362617564162199528796002617602716546281711693111049111771240214424180807805199253647416154536397042649153615302016030823338231048897870085037051992748718541199696538014840598157989873566299552063942446541479051885178675237749207953211096498058365677701732547895559545358692617955937869990687271530153121401242270764391225199483460136891396424907136239174011457730352755772915386904096540240259178647791245292637084776122579889875588684155945559367121747347927346293153196100148450812940018482008134071901724451896804577054223861136540365995675215030355881940602457953088506269242706451608666549086434030596848750456202402835699531810985324415682815326142484315333788874012141803675865655027155642430229129916337987568151482817176133137317902813198952348848702305621436452719708668787294237458438899341706901220085911902934239151758937051245925425074058408548236031139221593682790263044474895286613971603343029896598465939900161663797337032122198959882835247936650471321096184028178199419444871836814501357703390467716916758279038795631976127638983254929984965097287769776535110924487027775010714497195187955935375790490168028572682323806763245885770523051572010036895813112902927851678865266975767257647003387883257016356062672466349715869206106787126053475371452590236430888994987176423748008445246874473476316997446194081577894512582425575642198804676239139057089801339640458742175657088599836915946777780854969666019775991599275079779701695701541302656917886149934888151898744600819341997341223021634449822297124818477022083469129163916903116922048635552824795310787857301102007601347702201035554298451124900953846092131069960117437776932671601804115313770311623694699479095637944188572965303719794234706589711369674321533642332178711492277994197371066655877749082288024733619182915489967071007362997763590378498216532683672331829560748551125092067912573668618326705974335389386390983369263120859449344100542002661933087047924887742424922987282295177324863394864198590502994026163526292397845782765276025783518466053680808436281824351958606802142689837906992407360219407771061314189232322963076645963232103367846565652953391776225193533700467202341816857373587653461045107882555042654368710790646943497218256224372400267415558981196872364031823925575599991170067643734384493482618169235585250174577335341690723077130559049374558917637649798042688983959978830364654400649696436427761192730242142651036396015190938192155078487381565336801052823931767886248146040926193406364092994216469302235939436026878801836326296591907108067456564013643443764709589817038889687911098086917719362074158966649547655285613842463293381013984579979731123338234530221791632744303953426589016669719653398094106908274341243628126522472333104437126463506332866503132533617137319023012608425467042783635325125991337861964843183665709380223904714005318320179754647412291070660556477716764851982991539742097827292841371918227349660831992988516554754883963923221788960834509210490662057074929177621242764627002289031348070004966101214575767835700994939411576460545889736046209950967003615621291364177689033571424858164582796103116092050727085428224093154519465385382652952606394227401161145739677649488599995705245313636455179794823784495828703182672126054667983409051093426892805272146296721998132706941405462830611106179566362886559180022840958911681134636708796650584006713561136431115199909174928477877668499914456626417653940998493080770880852846281043896471305936719220144035274623286247431522502772811783357148217328679049434617652194431858003608911703635991267748918729323316337467208524366745786377039430876284481357805839461796448589015092825247846228703565590251132622224526783723519747079556045666546601361833067489201018509327331275908406563466308866532143571162482499051702547108787471877433682146616109800432622026677465216342302657288779747170876991609216205016406565831598377571108503399546518105712859981542415159158579931335917534922304789039759504757389603377300361179893653825261283319330807650078967906527498000682815042598185874966684341045959499658495825170298153611587428125085911126623440234884081082469555112845749801393477039545419451559320450538016543635669860376615830734244361262565914052929963561013198586394729723994415752810664825635416396010620631608917680148431270742068910061569224514748185835327206708734034053595974623295016045467377936408133546868598423534225952206500064029425383112196272266945076264401190407340459967517142432946322900270691925563071466720228835554377337682011992120133611120129912056498046133319351359718155724451392619112553816508405428635722170105954689773947996712900611993150657519210194726107421086674470153844807620451922730214291366297230862489200114144550019611231840932821621472587110954856970418302948730401143463827575525529825920940545932356383534846585200705696742531560722762964096770990912986550834935862330814989909269670416671755941891597762792298435790835575999146217867410149501194760820824367601185421679058715171051123881901156701541334133193876575852685956203601890101879197251771058031451927638640916926633793626048542584904424596008644824270949392925046238598396718201770645143284744143454147066960340734438440773056230235566188322674480936352201812118177754303354821914893014824397623687390703189852508657968890168714800063778072004115356775914162465521223084839947895466404425013641994742609109386663778367140837845386444210298299645633251054840722265769724421339297444445647608520366930813975285566661976537945830608362702716267263306937604726641573018538047251232043684076464166691457510095792034399947035833908456475881885985944493694610891315154266707864901200094759114520559234111976946855436460806998458745871203832059236800519551982942581078100229257275339663408183098731162367307807600968802269425623077238835808220313159533283882844369351512421308723138328051858606326877797049185061421521046944872325390533389308932799132682629550994275942140445416429240446382911092746799398990282258731838749628842417355263790785626510145796782219159938365590661412047542458588505279239338157756602461992268690016085328734771886278746961080941110989447164799633850800837872591145891816695480770453318780907963002424601272389523287122301936949595831951298250667672292629260557316196777911233735564522877140072354192211574238404771852318424413770008628369620055877364405236193216757901160361550678743843233511269046280320294329516931467668910402194610385721370422784288327638947930198957060392277074690620552710813033975524353012474357878931443945253701167097626270472450982507588407601295013171068699069126402684041322655104052949692858028446239005269631308352761338655598842081734927352966808834509588444260969505055239609262536947630494948214543087318465752778888572100288856138535381134437925432301609501404906870873148012981534113160514806298920842601764806551000424261484292741233581122139644436156870585113791870983810243570327900409638724510232797870400287402856392621642769330411783642270652390181048257769924694672300722990359500386142351277355406331023454046680138705021811969691446354759402713286903515313138684272940040888325563622165389060216891483165770700329808516307472839489735333344118856430967372889090731305573736399960711875809813587450392722587842286705197102371577845180980332822510022251378345009785341188927165751544613582728267484870874766078950510519890002387503922638699475870928783341289412817503123903761138811201788056334923232146011018054221277232730537015492361322794004843421588814654752909757527352138674116731070967233799510688715313264403766937510506689831926242992413848447672320420497856214497413383999155834003694810800680471873754913260092294008131335989524576879622050002726772455238552673168127237141965296750343245793967440058312924727485816579813669480174885948525353712808258251965708233275791741918795045622893174608344948350111620366117356494362701577305222310824040643008965939440727620605964240355099514077335223023513310979549540118457276562375025671145889798588019031330071689312838405480442121650394289627079939396589684727491787678933550744284785069713649600211885513228941093392929385898518635982852156247061497818120775627833833441127178059249988798087722017506937098353545247457848197706725611261729894646784675742605239020297917951248375627721239622561965120812884871849331001991120162958928385877585055141655777548083742010665433983323985546828780304691234189175868685217950446317104205811146380584160061231516210826277445956255465315927137270247308668528004813317521834280400030111303221380385843648027399120933487344895191289110690956409601349582272212209227641693949864548103637246807865721956658084073286631494492875325556845004021650113435188971188243390937872028684313553508976530406214349372849644132529445987370472334005512419218642605626583977034373619315194472794671546479034154496769859037325581709825940703491020672991821796184206810676605665348468293467472004514964046880849680511309796186963206647020992301204667967932072713724920530269300927073514723251555968643929857085545678319374403696234633759022259158120741882235852346830650537980880798833332471001222558803679412037198319683025699328930165194811287780150637529062327877716545264605350870318092726793177227176631162377839577449815560448829231934546585060914704631385042398675113358145983175521481947069340763746927818586817324636776906392429830198102557563212353043189411530652383889394152826243766041698513021141932142916058471404404724179813531727352596830876056604085788422896127915087712187282204072942576027199187361818737104172559992305469759812759075305044902036633573231062926681633644835295457465264918210093299547534734463066245797162774917532984768476866214507065035048081848869894471177927618047075729803099072964582492198837159596802708163057558229515381303747454691515421226562240736999246006151785158293167536206586625103314938691372619976745442065123533641369356242921681001132157566014672333911644344218210029889457480099283250783623742037326353549584029445423046572700950608305797215430616797184639408407751856454894693143073549810156508174236111980603759068986548168828219993859620161978285583861282223951834709682117002872328941581961832666341675710859511909342226189237115544890518207243327252319085913669366798647294533191410015967625336478517146143098112950224453467827557130238266254543456610030552851670210896822100023859916792895340693268477846314253433199560980998532834585151695288107880057318957198718898323160610273579452604584844042103636909486480632298528839545807497173660120400889256720072932279536139243741418472825228752527540783576887043752352758761614799412546326076098000926454777948517797721640696670557556574860290461496255682990814787081851110947883852008018593354079130064565799836959907541963575490754539736408695887930899246585552020361178610369160977697404678869705927036701572339388931253772448171039108968445678935129527562394985697269446472739891911704235900323019622406684147668504696245389214092473877345049960860161447460939721489999477682034081096415074464226779212583326968267958444335416405387142767915641052379060278558831166090358837438806071724381750117267171422854984778270722717683077646353993209699239763240093946416163050431561416132421630635130882493252558770371621305580035503961858078383216847537188438320254216813595874851889759238257997136636605020764131287623993060432675550829549347885753764136567106708602072271544984205823416252243312370458572435621450229687051533091728153016571545176554605565544510240458482943433443670338014728689565352368406572325944065123855444330120864083694142223754216664467233485030314607715028044918981543930280001437255027386840012473443299456964741688767917787668521511779552131045453431461992028448471001339225895289004324137007982016134063635672489742411441722424564637155954952358715599639710763981496488623764169074949177000566282409120983365765582423646015177753178168770493619270881487341401131798503811249126875410657201887183219929329652982520452868457020381298674115427405163369587171068373455476142980888430380276542066784174670623568611579594513667430115529394585171705155822625297870553120563050360655832038273258489254846275535815032441674194872331137278720462722058143512019483969220796612064692966744126591406465208485438946148412097135226021308261230794927498290524303825177068065890530796068889618629945233067602903559579586202614154502173489679605776587202306712563434223623174601953012713993904304133520518975919035951203768961963410244443992565078930131541966382177137384531843108747561566794843415326969631973519236542074514497851108768083478331601523511557887249699215476888449373953756622378727676367574892554850227055154055811563358909319039884453314782050857320820562963219482678864536306908015086407383151011249728914187094485417776575127973978710414560375118153161828211118257110311820915690083550647586363939909988014279736764459910229561052083989732843535027368039240286420761277562917206869981334046328477537664486124714594427495298308461689522842238663172681020503685669157996431800277277069427635692273045980751442378907121652520016553523894033246881821793988744604277156725687502023569231360099647422801807263575666058404192826347705242936042172618928489607575859586893818375351140522523036755946546192239570979909701320845539551529041057553283726581592518654568725792070748977454402996870554814687422985527115063404190100513083400225581091106326235274196110028518429949289042509137993839923368532947003320647188588547923408148306219195391845718689887431794298819660966070423396654059154561490239591984919860322438298475629484949768820655709687691189396462757684404261398726289977156692104368106505836322713638504064483177591255997378317995461962100850699265475503613600689406715053342870890839316388503796444092398987654836006550911968385306192304670143645938373685970760100261926474314930331530485839311917771978281157672835097382320546072842811803365963599086915137802470459822373214382554326348717170416450564588222253078543604960609529327296810755720126283439645015761260163807666709965348434065909744478178762351217215734284190044029489736753427254325463737816109384441101202361780958987542815114539261567080454035020874196453008953659765041453872536875379949341885405975345658733718493057143012445728805739098065589510650828166978263338309157295027160427232370289107777936767961106051251771578342465373302855288675689239169511989846225753630791030008350691033580819383681770890952776403357168438601575996762343860680475131279909883387700040258082546484937752694022823778400926070493994009923431605748297804402256849680685058230460461382335028266880527362065310047187838026969870258386404499420655362021671624189330876553038757723099821321777989568705948279276650447065368193388110148419228825569945938013290168711581892375553891496141889246591073878998103872540348747452399012517844716306586556406375802477237792937923720981802434724087233943707760819394534465013675730451851790527250993031221099373643510160316102683269480131360818389610805885268841895116111299481187876797609221849991781068131239946889307008895794660313355120716734406340253283092375260275455974204133004419416395257926618487075932671286654787953426068341084452856123179304038166037142351842484712487481318606511646448644069705465769633607486103886159280290805013432244099906301840847740367665177735759054405885908456062590859283181202196709001462084912359564202824760299753409501645100149561504627162864696280715292277615600162479600890142701327164130246502825538477215715723210861496584527106521335458188679521896946959530182082523272003696208224214756887426812924648407948870611188288128748177714022678674862727961420611784461302713792142637344439980569167290019736442188927388842265860945264024488872938977566514187556342361851448996589676282144543628357152260079476634561136701564645903339118413588696113077253088348803403991459556773011110076334501745425712208152304334944165179133893198368966439593311700876331604866223017925224633020232558859204799117092713396395186149227026660216672273520119736352639575031303438644780081368568772125558368456065494139608790693644550662159566214903123956423436323674456208932739088895102700244025711252106690863520498081311733464228756759076455711748252125285346864506848513246001509553233952173280937129312119131737514158062108089064993310317198600299687549485479630127731631415399512814087745463705522164657220734113086012814070982935616272627035976385501747080146311785209704592464663301566230032405924694439393147332121203663254899298381841245913662298161563679810264759982364613431934067683353101481488742013344477273075515115513905688902568729485125889069147266494645436307327416376782564728108158301274210172211845141375583714016114932970382594238309220706867581746007265829634293563096011030621903978636415858324588743325930673513240489750895677735085213373989191646233210834421938313266445183844415326264888414671003805404060889798102461678923296894726448361114201657595589050364705656954525468143186989986782553186999526992418702840592312011543756660785442333755682649170017591423058064276717930800964471188359631556770208755161669545842675120856248133789820799359753703015707178981991653851927160657904885693178982784482386789116719470845442918291709109957328651037722591801451612907998443461551976359235268292443771918665782138782952802654839567284513974839300926350898921755514791290145866766726215034668712696802158623818569175873331062868158145070093874685278896859663208363438502083763803046005468404879394744495254010235412036148374306630181677508234497878565902650929293955637123145598063671046979869489502686757999917934833572633806628185772927188092004361533989115748326432610484010926794575451940499782781583285484996923153110201979591323955555400439040820978782517987468266850462647341413779021258343040121735616285752378827380683301884536260930815864485887370081539367526439791602689632146877861689670905641230349331333273384105106196501263916968524509195707348985018774087714141912888732440366125412936143757976353177995209075353594597013413643182092436828852703302242946846961352382743037369315006097848628143614199303674023414372077181075494016193027510439779957947806772749322600209311505332801937094482457916370973950744210964436602273027142611772533347169366054269504491529543826852696418508071430129974848997179387998716496197515588938794406489973011475636538443709574594416395328393963623123443572188885004511795617742546173340019347870013559433918835126525756549548102561213671312763485592846791092331405304511089786924576048023216875832702985026435505045947397383089817862172357239551805761250115182583941898536185679137981825780263379864891159000896960236570881077115512161637396064676856567292708378000703496116208824405938413118078552478569074924740077347351076589259022386609612920713311664505853126569581021261564424248804387270347536694633251964547775851636526149333542615862471657180320427080190507835680377581931528090628887114897093598242475575861612938573371423986207848267475139500921016230128839826022239035285148181583212302852885937668718194004897978814728346152858533082697381069047972942670939004931372926417485005187788607217957512425394608079056474316474258067130642658161510203129721633274768522154449349932208767661372859738046574562323429933716442122402040469590807780828724592857987459619613841551253101281080124259623335633641290341623841988952207748218744735513628323943468565305523278884599268216250346476022437143104357522144722843034816178096902276014791633084806501148758272520514041670931377576810462460358132859422222309892737162019199238007320199314594760233958634928698923458690748908053621075048109697714238820659982046572206662482256917584255748013613274261198779514601105435543320970267043446571290211024608201407292246295509631065007144484609545687421420514156985468603999616839542105513760636277696563456434354117693490081703427059097274947074183175755334950213467372674963635914106186632596252814801363782368282264574743917918211405512890268668629257101730891070586490815174415170277749542405273949453784771734835854438276392809240912284873563117516000607036791187658128250911168761927646429900200402042449648213328210212713616697142398744585638113901163441378325117685369732861164650439856165450782174332508683261234169375449805685152125376567680790372681815607445991583794628754215699682462823689790174531353923662898227522304024438106268158925396142272947604488775491252917099381273291820950685378499438740520009696118972626562417857716475811633473267888438997524456717582486912430323738124272251389528815595459441947831711260408883067784193513463312637442701690459002470844777606588266355848157106920933508192416545804534632103433417976465286969847258393370068000457994601719202619987396800654225675295309611837935899439199708401403930928350875229899291634330053294405960125897551948806173388445418228310422177439740506410278235593663806232632426624213250483245092294314332995587358388657018509730363212289085379365135825941243045108409695320511043248803571476715277689179691887616948951728841554447638806174556829536193342613348345965340147027995170599552350852016166654414652573490968005728237410679675459042942993370205586807016912849404587726189389417119779577335835919372531294043122948519387326997169857479757846976602261653025165342352136691106580858699222442130856565576199192037800267866863779427435948256025152743402384851193725256524035653725220023255615647255666049112441555908452942041877518737019264414621885682966542970493003627846874370368699382652381990560988919466680148956823140194043960572259923364608298849316452679517554519777650216107384971648330504712561485560143720544881540907947945438782628896416093369295530723014937146773080662035464631987183928903348264889290077467450330766006046537591172861430988763251181756397111329044877095083108597571377126860836622745172998370655462002414405296561875306616332489803483226567410165644193815079407737422835750524070438671518500843447945422845150508154511768038785362300649781874830864830274827083069024258948234282717605234410902527458531504176645709605099189743431226005465628089538808990933207917450143421126162481173402395540088463280843992433744823196043028291109460081395006650613525213455479226273985228887387526632230310973295685369402561715256521012784563460746590731989488908361940469444378644879032168608482951476693190372115267268225743721031234857262773584376204906936161477376571028130335857895827533056118431079800824176663603868707569674694265409656891281476066316616830227569582485054504532308572530549417790249584755428440117024002030182646399512488778487463327461092330792928974396712971885694270035854721298165560354036352098067983129524321847675474561465555725805990431773542872029137639914653294021861260103118864880637883375889053848412985357224175108142923710521702537116323175220186334033346735844829545070437646982119771203728086213345682966405280257139794662190668722055733558027460734086665680899558776354896089664880437908818651952940604456404388393314767578795324747859712727244521782617065292791539120958910285619459776769236312766775554024063309354466517192343406486199422220822363928174864586923107726356371623584495103841336452517269947726030733935444039646520575576274551902884202658351284492338017681795323398599898221906958038997297865732148973621620181583744261004823181342047201896813307459020532688799951352487755327995819197153278747216454005088916197466690695908342178171293001376350451545678529420932257200488036180936184206906398415080701433197196716373187157416352548429231766203915159069075014836325924082854486428270638358804929614278445747412846576208588289904988016716770426423834293114785252312356464639657367084037966583876045569055876670441703438879835777169819893365684390821499032004399610282627751873487125476487224502463264332920440334299823519942179811276505603575064947985550032444244238602431125943460444964825521113157658845792256453529898681648336450139105328553125296959855266851728782803972173071068911440318854941850600317025582324164874282915752606472541481267666771986624024449403003235952240525371657202967197085158083700558538909031033709507684529787312271531866995155762457045584674307587193956061019384635660759410291348784604500823719168427232722045237848624551255221672162410340822005608358283969497222157866046700544653382984211028868914205209468710299230836895949402749413816169788102398890607947659617045205726052912550324071632632128003979049446515396921650803998430061577505255262781226984225218278769250813659933649949502269222172207373623071284202538186974930236987814656861663765687361988967639241606845295944094635982833559364453548340279566553586728793402902324139730254548409250384408579204325597171959790725641014998882301952334114118821083656524508428905857337344348653814201965799776740716511277701025844941544107130291931368205711260206488847183007505057237433804459624244532346741063461568778758702204254923144615069516188093036438767233465245174975012181494292088422765907695884567857214952304564374237664179798242221705576003870209893993216716668659269519409757858218346346381333168212050464281656718554410342029191533039869061604251230212720968983839033092726912528794315297270827663584427041706218375868111696462971417080823591681511684249622648565800905881680639163473379948375631727938655983573244543039044673197976855558862902585030796100634121561513327820198420877481103874418902267238321432344397612338584328924140192921014153029788241392688993381015031172311207837434136604598950592443480011482319109688159414557665498648533856237016151046434639961344681656790564066347161299368526323681394375715387249117381970585381881352829870421509760546155971082667178897951941674564153481821421230852505880211033334728994684385691151973745776516447021565441522743700116519002505899959310993821149571193057538622353146912723572630879513810245586940759860427222638633109947514209875378046139694064500196914578599648148832372774690095050829035181099826683159646024206409017278804256540027488606363348972818230268696842031662670402236598728691581812032249233165948438776892008553429483725341744180139510764850296616795092366802557424368747779326541382220302634752149868501021251989980030135538496528551339914170860818027325758218483445376991194444611815401054528046781559164867017668526366635953603342364232169608027788613111815647102201619271262668113583898060368244694362150896650865194392178625933876259437738179925721643370492827130400903047911697023022233826308457805747694230792445041525904966522421433016568567309473185441227453815689164263081750333310634809797669321427363738900831906730297357032629861876703670005794789000279979651374243132893592711663989460061635584199549382448840553009409041888671796701389115789036326919835164632495885570336714569104241631240828357877523604523735743675042293505374187345436017410388409117139405636761971589912325137251705088565885610027848031477389500981862787175211545247119505574810991181129322508865415499793880620181346831148715282076668327344338543604041020781108094106123664993055867692793190130593141373987320028489975186097653140595336430680664806445708965686798332699643033605520463492802855845124954321170041489136334171942383944031968030131082706555845849161451524874817046373478719208222284983941602590000885446263781881143781320039921549912603411880237878841990978207234752966995044130751573947169098330042471092478279441824921425162730093521827134803023650692341856513304669062861308576614798315611464070405537188926761304545341000400217101023308183643660962006362440631710447554854259771637711298056896175786617132979101684147904214354206785767274907179021082292437722501888910008387692864380601464005010867177421527708828506320230333895939179179433012118195392571322161408323669430869021994702157594409639648107926210535867739533039185186496276646451826606683577378890428763940021019125166422252267905271429455589236977687312523290280142861036100992444359648055069888792495971932419759908371822200944975514594090256625009053357963626526023654223730942537142346335505425499421766223564725951534717383836834622076759809265411970944300759876845549312688832691899878870717049293052836978926364584788172452082786166422545468515942011065350678671755203771699655494180957435903034741013216966829884639232102933327179985052037566654770728090954336335842866813004737738637575020888768622434084400298868164501474710051635053450543601521660182245344879100812761061053959107601100515479997067447160021655922118179176726009382550121045626835913139774208403918385814340531231117268424821703387430644424862511389137836505158922822926161668384126713431866713562752239151550053782210938858773818870295595034296992341389510456241101677415962516788628199394570885952319686245305379835848569412407928184389880916451739032678259370448153890377028563823011428625128857367363596960117758360860610106990203109371579158091304932913768076256111890516123994953299601471924252675329866677124948050386157980860787943416721480170286089522137799949938862256366143988819422020355738402281490964292749454033209340752530606217243385199825661336740550169704890939574834578937815108310505106303048935149530152900560397816944726805421966656879826023738126517047064602190779095489698935638237918215193375187092762052214491773744100467523030380786857983831861048097830892985319268094432694050564318531812668238036372390793272110433314619214581664833401412559531378521570862244483416096562367248576734495368666166394534733327795274543473743124805179840232110219251658402575766903724148704853749722500656818895671521816839181174211985354836202448506975333234397486101079135589518118843705613694236167710520493225026235212196958042248870287101599233769330241098450753847624499244429565084593766769236942857787976738519720814288354031206279102908355924795521759712160276638127018302729150938458996296929371686561335458255638302123489707266430639357244411891554858514270977372494862359542457176346924394762876948977493889806962769733523970984774190175036785072051093277728889912868029099189073862793585939972359092563011612402402221827907485623405119722919241641878754747463757795908543739395566907600052248620518303438337450413923987822393826974549341310375274658476776238944448816518936618508744516468806906526427888803882844368743827982133968823966083051757054990151121467524381680382913192338371662655713052272112017018483688913249746764126784453579901015387638476463012973682852030002758820341436062063935242986988807594933780506507273265339476598275382147178312104863173272542115821039714072335343018097274499406497640658776894743266672844036060450156516827446589418141303987318942736245688213607292593105781288826639553055302417730281100576912451796903920243476813094219496866310090905387165321205313761498746419192199977024048983320183431907223023157097165033642901644383686226039158652706145559233399829081940093255147143417575408827301787401307642545962625132344610586904241855933541158733698733691767946842265850870052232167627715732934664184657438965269249430791171963247669579449916874823238582675710890993772927816344115375395975553975867755252829473056579676811788613112077920641979469364257872241717398999997578309316872176616423620555923710571472339859351246953019016736843968728250642301550429464197399225875949864349302118520543337294450113603838041943781889490259697915577914355487900998259565270777940149445199568578139556580476088246116369623790394919851061692958181840223630213977850583484955105886303850172810424486418132489705183691803285079301335526096070075631956893494515306789448688845871539584319966198724885126066203692084483373945649862428831559732052080124931402568769086304501030959505486112555071372098958723245921907383780715227582191094974067362858329246274962283904159598048567829800070389621279288652438920394297369315377943903749380012277730539712198181102676768707241415187339502127238212653612074761469015430430834621325610351769660682498994651274819624011915114718504160299322161961774161602617906391284482750296920978171413958854545511470077138512562125872653769446035351961785170403595365468453966012277154329141657728528864694103419970708684506109337831187326629892091378385714304675779814156871949676928645112753297443155155961926288081230056775347641150833797645121378070103050460015977612444324011752281480970503583470471166806743406316818811662330761290152300121112840091315062226691083685268710895867939693622770819961629981821428148959212021907166562303993389191468529386050964054905512161254208686652677861266134209055955048364517511990497007460353958705670218943258019914876207670440056365027246227654883373102058570644087831006920065735396430775250799811856176000713253914344591513673443907300726192678762360615934211034855957904666187946362365600972981755378592811416304237442168074925573502722991750303408539847064281942516576187244813329881685635233004307382248341816431739304861417828921501005685642759974515454399531675135338899950299361392078104144638147728992714259907044283310357927728229193168938913970707536165134358410895677058669939999474883030501508604584918622117488963634594014953644019537591742002830897001471756280290572280029634480845219211592421608276013151976428836595388191020007161359706461910127045893169592174423738609318083483741822393339856208656617012322591452753351259482499869050801902656609861515300409355519005337131060948068629261507313279538472873096334210492869800045586918630944591611164216312555004002891545430231646945781848953309264056077995426606509107682645515539689077441854100062650584027684582098847992352585618233522306390164619607998847516192894265275632826086869335215246722374254495616952970360130681940378730081699140344686110654957575188915479040692426945236736661985882068903673326849138892656657802607276501434339276096402480505959853864593649319114291958959269226128557629951614729228708710232957599636127130125093948995064379834534401024779953689353501351364788740836467223932950714654692608218218453431397055398256498433878850572919263613865216818839910241044416545834389887950710204814379862340802670776383481900592202962093896801908804149834068089910025823928958735760490433347543698104915347123810907555487586916875202877434367230626201261818173840286686756773503903202029648243993076697808444274731257752703941331256966108172048326826497504405567114475151756598615823744028565259575291329899958399579004230765433456981694377142843843650831735535243128797601414504260818738316296954070282960621825765215083344796830140324497817436465285265599606974905310097860577738233364889873057721619836793771848625589505715896507480766203529666399900749734748363504759288908384474482214385929412920565523722873335266027810713905443551506149813370522629841675868591415283231119388038905897596743479643086790033382354463773239956706820303123256037851738796111521926056570344825384924734275344492453208609244206672177317511640530602645861968254352831775618781139750122003683485547198251016269886410184948435512344309114431813292330030065457866379696931605451324430212614965128171572764552034323256600579199881804546724075287621554635863453209825972622749555732630801162459633282554002098401263799239181739301456287731810575024960632234067203975180491902955929298212495209665500521880230674919857417512971120048974005912171772631787679384817867371101110543033183605898457715855153510116238741809220803111955006900301671566577475774279964186557152942461767284496488701150387848848002161672034503326609856054837251718411963453264093968707047349553371875742224680037330147519813146143766636480265525230432431475816071475992687745179365476566007280564726241973974278628288681522472849543776696659454942395635579383676875620268677947189595315714865865213305812171855117755676537003517872535973134405453273346472535077574860911270711168400609775004837861957816777469253473739565530406586735336891904737611356638061032352725176849526129839629784189236549833789869243933448732679577126979041980223695970159351842194913193415947085058738773987660710966916093864043076717861549537916412373341571561977672120449774845236570252122894123730046392641094111269990804559831467145147883075955409569599293027460184174345255540905179655204359820773922561613411166704409174550045075771813324086485055569929222772227073015502755538672644674323184748098396796328682177929052645344363921272071202713075068043221372318192299328606157132679518217525302410323063247038669751808702058175721796774275043141232504897719976143580725082440705187756209519225967602204858486286680220039943134514640850015322336644927520808923525905785127337661830202331095174613190251807180293337124283250846443388211136641063108864584869000368866685737048982520183373102268282378696838371032886983779691952003672456000349603704859518163667585375119040229056477212869815336006782578427215192052459939573596385811958010299076791578248999140120765723005970970936784194587430357457134211836860445635021313775819568122922999445569279828174172399019962267265460889633248643869374002283485975262328233080276862007779616906219858899763591529020909084516608579355673158649251539355264519297930262517504600571707150365294093241440208382803055151237465149288008398531382767384531107460650665496821405821750970546464145038385228292207826039907260359320130493391268144167933372899292849137838059227304001084221074375549228243730304195177551490130408232854863750650268707313728311006272306696665513585087270719978639043110961162286765322815406228948681867485324574707705499052364423808873056522267255554511331759622742324547289088289930022692349685828998204483460760510901943257669690170843615550621205758948964963941689677102053488781328821734833626508064799684200897408162801539998436942308127741455008672737282102188232108296973284150031776903632259228236314592619077964394038590651496772154026151433713229120401882722202991394489531134364685490576862446251545578542386285166370145936728529301844363655132249244914609688438383705960550205152478896115444637657141905579255756127296409179065703586408271676048444150628756235049823379241451203239710646759305668832834429225237517712565176875341725336422174917219257711754998193428365109599467129304126749368415318853439068095351288569948369031105612934193211458949727982366137577564049406337385811521711535729031981224816092403938708393644337781696900240355857305725094125514063902152686660280811067303966964738121352684413939530041098332154047768195778507612132079424977196374533493680503553700099980963911106679004791959809791574753734114853676538199288129528720436476459307010403416287326868369915801493482000615161518328465591455480368250585459865630113934417440768355951358378248279328087346613133123416603381314050835928985967957827106241436598442264884797936283577326491577594564906739167725904417566490371285852612081814581247005295551915029158756495137917444870859097202879523639269978284048150192216718695596432298292701525037841450806127824897730323718276811062792633090882747708335972580506487018210405178982132381926899779790149011550051505302575013778719409708970196214181022841582039259747837772234544780483788095165224236693399934825478047757987724653179505501970859118674978406466634151675322553034666689690945702394418894516005356745950294689464243904541385145519511906856822042960312163194773189249586991245848457022342577287170800316252648379252358898156797991899145530255648039041870740154467213167313549713031638329852489817062287336078046413383985596834844636640356046578763497435318932832356753216927005137211096635514974347239992914936215193551544060575213069283040674406606965350299199715881825176023152441479526749255741844910874153838636059186034130870490694858822020179767978284781790362324496573223833235220601642677423261414151475477058786746702356014826096368526898570778473633544705098060824324781277973062808165307169041917382894705493371801184774190371218961352081668682951946296287114789671685982331334119033343369152162982420208927054261896836481935803976795508114729689504184875916934378227007140996134447597085758021829695305830307329837379850151461850049088413380890649345388241119695264936770779449554512652897811803419043828015767229633223560428435686478626117476561044483582201923045157038445495484853927917089099323167057985906478069189260202378588633523367492655154702636944514819762537914214216006876548923019515394708809142926271251794206105851287374403646145844213108737216419385301490530277104849970903237049058697160129505052537744443777832518613498630547282199205584468062083634254846388179649045016977717916864513646043910273062034228075515612834418604191905322664283865229282317736987974130121364181531675194255328515252421818886777838270591045761769564582783387051821849717280664066364047448453252158181613062133719492025369218059179932258998056378598788662457431199699341068477489475382131628405032103586255754657939288282685751956475757406932556795537969198580731988218924724572375654754577188223110624195355196103073716328681723372753718147219055400522900059158590307747394087397118151133622166148768319787976538574724559865499043491769779614863460501717919831943189104401991752465468373291417318623129220714271887260629509123050206135464817471705385270319796548612204358535493177466291815023060847894286721451114543002300603754446647484493864612009515777319908423215532591539913369928829048390453514059173609671366597352203923300672073901838308888366779206431129463986606571421309733838293559801953893707384046022669560957134497999659553626036155840202494133377656566751493479786406582928188726318315428343115107171840975342477340326455497176225663939722826173967154075004087808792404113348015676496702021793167023548030610553696658354745019247273561661130523668662541226345570113883258826372843688620531848265301720741258769274248559783895371699526617969134577111071795701770193033999036239753197585898188931779747217748361453221271524002014070636805482106615618542153376803449137841045260680321277044164483302371781916495613227742541411942606308453902071626392038962761240047190872168979757900334917115717107525804991280471810859944811773569956749712461891706112057015842962693479884542017287258696854200502225326531064139815963983320842655084493928181154880997006203304605189187425645448820235630857818917930659305917151983743242869803955740958386526846681400900539648806068800984025947864226746427714851017085707092171884404528335467826899054682185953459209419577502426382289914091536486748854772724936680889977898898427725639247380696717481007383232999426135842224127112614327886327599500678481678407353581123312240706796792254276430000534024580638470740374028768436885138227517501141228534308958477463685373987120693980106413064679479434436012738557877278310254802418605823090176117374766596516783379370050220573990576660657879368661105305870969727857332916286694193794498146063339603917917796324051232557066115212949851685436013164971352412847048980752579632562439424379853051438020134788554267140685267226442122377592360026034243592234382614716291388426675714995210109407020194515080541194668256578107061783219674830964549553995322392566361433503368725130131451795664115791453985715782425255412688046040818956817073146677048181265505321954185472108201025961807475582416120690232713972488012025591176791826018800651369263727763991907928096360353043646936726574241092964739616220898446122912415528595173796657845709776442036869338673951341566766098797010819841214185407309425717924145337670874450755973769892580594926236797057767845081466368227360477452470945209499381331851080471844627638697833999979319375062789405116853742225794768950480269451184392567046034608782668218601672303259613137303105223641445288797251005889202621495376959780320481635771388039889587224348650463008154026182220256009644268382630869123954689042515668617158027857461399914448354875751512755449910580099510604519278878966289498823823827154981220767883683254129579347075740091643396399093966786649515030603231175803629481778640387450551296185051569898876985294897937931877876884001600095044317545242829696935522856479607155284032410800718905175117044945062179024842534141288963033069743899933090442412541550598544900026794772930784706426450404818475505370541501231176392594968021901166659329867401892836999354692622993223068899613657031626327018306013678329829789523386914962252889661275039912168935770108154244218797279659512593576713905366545743593409586004280375973504702429021925100674741557721419931923615953497973171473449393020075826549218646849888176558542245397797127251349675362407485317769646029125326188556441526869531821266891567738586651382647891629422714619900210333608025933024000221454994310972614886270838991331215964425739961817218428818452768231309494239284232322111572265509351860003944724947737292317662168793301590230884861581449137555164249641404797548522008616040269468352622048027045656793314362409100427197890833664600255347652673759732527812219732618088319924118047935192625144852115562193614294249180538948614377981962918539706751196898790989513126437152223274934938649652344317765032607810793425542840509818939395505651530751376924501889430126680578512531222787234879851789554906052653899502527719425755835281947268368469823355956167522393372448484653586971617317598861401147089331763783833418111299367627547666448082440730761987384465154071726732033412527189273959654212109749712804198300895255483682924627757626192640508118119835874024336985915215791492685375042475831985192479606907162532898330436371407647659424564454166093208126471110747650336728723432868106381731574279424736314598451429168544562550226191155183186477034252088154430833877879262866936994170257723480999449475630530327165647725712110132528301257932049231529379560286943231204819161718732619783534832019061632448333654749141736180840693900314966748633342249768404929004408831984850899672752698372501504563070821955029131804717957055876561973428591323717592674147469770919056305608182907451342270465783885981577271584641487150448588011551553124623894659158589220727784712632845478212770029151615606715194742394591199004785990751763916303780144286543666183829000512299473476627002733715374623293752304581375314852401141710390959936985466360639853733624522766508099869746688663022204513427048981205860867577995956504035088044323077726733156138530046298254393847849916224558566295761995458096687063449660712893547584777179239974156570367623406012125394250499934367282040301339830704097823669943566524651716481154802664948052249808851177288879913133116810569824620687879102819445847490260256997133582833187775720967462541778788636129607771498583749958934970773800491567655845875083278382049861034810853211847474614646085774336187735660135075168237819403829374264096491175743733488617573204366863106927272804142221174549830489122847148899556630191266460295176543717307518034786192219972718949691860201466845964500578115869460038940868192008615249021568013058630950760251399935426060789774148169360709712934891550460972076162577944675599176522610657274659790231936900970540210429272544165692804032047446294755052701638829916125189726061270858325494528315278119090097582531131532949449657683764786647899696618266464778505380606644621820431837506089213120931411080068840768524484458661760653750488511758764729312177820569769433911038757307637990887160581010175926753633156843778282173196098088341821988607270319491450991503867255897021641618412128610732599933089609285825992086237870432372888413959326218023438928223625919215776125870638369001349679151411427350221197959443347071910018780581514935415913867242829705124399148864737217792937146530831309659329557742974365304695686668793162434486372907663199487658022893071396403012589513560702631254441431416175063766223489397187392059463380199982939209664778971772406391939347960346915141376559121211876788312072061521135043778588348632131358701581257366624991434371565181931048650898908729799542904554823684541430067118654205092218781471789709032901645172544623309107914950550422441088996994940562121805736317409519682040835922370936857906335172541271951922904074277411403049987149286336498389596345112397239511652146326246690520381720662551229949784718778995873472642257572364350299253819323879447476613930959020799733736233120974310924989034799312535819324031412540024540890735649606886903948557767259549006784522556885265894367291070228572019732835197841022227427143148156661070664163330972975964370341607947417477949082337009477996250912345239915517981391347394556276247001158598939573131431074533965103890803900051531938718201549034504592290990294341088860224654204296638186979913359149371560010327491072991871971475525693847916144060076191092799506274715310451290753598176964927776689273267910197249144634346021296160161686062012522774831722889760409290665990643818498418758306667875224386333500296335527855652771967579996215921885574074997015328643120712207256063490394754953191775928097213663232567688754030262296938625944525018396070426425691103572055103339984594098932518344848799584255158217592107086414140838418428772921670044025614838858437911812906982794993415771076701295741488790818102336569672082618726875501144731279619976846997534463419232059486848974686830485283272553910840262494917420822273884879359534062537170966648587786751706114275856312853962988494310143393197045659575307906196738648781820368042464823082774021049073024060079802884882620020456432155186070589688753701792623330711630438241220502274660483710623667981730201409704171962371149523957168752280466257970738910430715452649308584535065295389781756832531315028079616371146998252416503094426838067595973250700988976589910929992672304925556476814461445651080637984107103837508776927176468611687516329796494625913776461707668354197089890147861108419681824791344321907229215022704495748818634730030449971274003240131309854270756525807417459807212014653663823072605805757653592854735880828203344670751323768179332499070725200498652377812884498629106922750413767700159852907813414565647148585040246892026335740863909826779589602903167856851416007124582450312908945027307514921959102743577717426922670226349055704738948036836067361348634804422623238739113963714754793900932550590374263159366282009760660288016316446302735676079426625325353422388699759594644510092923715096194804431909927221104443340916421656264310810965939816829999713580983211095493087957596494049628495293597714555689297275129625654468991178659357009678387710831374131641476771753595646420796509694811867479750471411571085688113735728568920051177843571317087309966319640119557821305546474673805360660823976782982538739040698315415812451025932009498875072257582819058321301953773799102737113698840957994706404823752260210777236324616447471538809001023638582528789067452478524115673296678651570554639808337107518302294214319126498333743867724389682191469863831087954713521407568543249407646012344863006454220189051179004747462098894539157436673967567828032299397354203485077043168179614970384415393751592284375174484477580930027635959368420910090810640492208598454243621977635516032448575342252270738098738211538601447692322386023638250236797875742043743301029584505920817950352590898124652283180445131633173132923551148640936782387450358548540255884413452759608308057582595792830714903632565412556840352500521202682042496010398324138563039291774644487149887610259221844121109420501122738619126357451892980111810824846225938861746222192179568648504208629515780965717503905084725465387244301354789528843927257386832523451629168740546112403409312069593483986736219882013040382425512104592973608284810931184182373983731498632896516759026529306271027483541586642948041420950266978065894746094531097006330638513923477538808692727533790571653354684801752393908450546750110010197302259746546310849265195321546587636518570752673159925316617679360163369973601672960908160953770076505737541378521178355097199549509204684264847279647250216228318404593279832497272804639611092040054301320680902504086736265642541220770090876515352139928325982284046037315848444275180322145691286733596911138378102958638001960139617259004988857901266139920711598057379219505461239963626163632846186682664603524551373569320797164730219185862130236999624437894250023548346819043192566982518165109263301355255161660481704972849620642157968092084132121001964529290632690725235646814164113662988205720756221410774497270124399223911297128150863941368133613060184658327752372219088050231850675598952103290917721086682185774449663705276969584248477334634263795613873646581271137996442931102247463602386765846814907895967631608196479945382853978423251962589652779818345639124752756890513197318864699863660516874093972501497459654046101270648841304425443449909390935383114556464014560035126110237653092621058453707449766871080481016567328992974291355849625517928292144469192666101037742001311212242763114656574690479650527670482501166123344329716272291436428418175876774816260575112413485014807449188429272549107857003247477790684284238716776518830765948963443338778821714394288213007798459477319119259814043157072076625590719591163086205176957569765195421792201131462487330254393905239515529261081858118198905474354241316716733072552319879051182523568427721095970120514084027488467573274071453859309775718491033235021577235507015444417919830068208322965598893914916806704590841571294991565458350237283100509152196520900504573953222743228846406406073181894609754831451506723301832816698919564365208757385154200723006831762823452435830210428855049591478585316424360293381134585366379973652716133280151756611153749448957794210052299792013814964492471468651208884885363170141854317349993005062946926516771408935588833010254027225209605491790370209927942670907084596615961967174081454212641669832160163976171540207443996265250798279815380065336891964704717629129059940437142369286982484563597489870159497317229169502696978392880380648454626357314083991249914000756411622360400714779196645435673266941811476279536259864741515881747632411708675003275519141812371239892709025441443674457766711834357441522591972884089913865016499706199103322953602017059831697080075651826948709726897344023299265719552726682933066506640566358183719326387341506673340774908552372790894201418511679396298479507916561313694096647249550403652970364856673632538924674199404712229263064669420518614937508227627727822304627265039228841277438166839138181403258635533999606869737324921242233873653844415524928931556386731417493623764734772613153985935368049206663536569475121007508632713776630755153325186409145790981587012441339158177134029545523388498935115014841405009686240952449023747893418670354803392603413977527965607359932938792999177970385226937609136010902859146947606886891098585080353211925670578910579032429359395092423024622068080375704001428476986960125474260024110520021780707773183671250657431444639375860520285275340265906583096084135917164421527695604894968971879394839329947079015851975007097897482318238141539157261740084552289800975252852751361995006955503890254110302730315061188218113459932833763933252261609292121460218396493692820998230754634584092830063794933608891996296846719060167202025868231282379544060713865369891850551209537886185633044603556298176201185461199745095106895772422820831405645609525029568797620728449342670209112697271802711838832492184547035293416762696709245566043339051327774669242992072789167454010410881198495206292796112540332401765677576565845261480410257087699505849159232714832269537645139248612633388186385045603329065213727817830150754450392755033497986858594552587844170011783935602913695832727367824487679316269034100462672102019734550127842610886079180393526954141700667212755121820223429276477556817649197096443904969313537362611818600885124702225357794616825453054218783100715095742929293654452160676140083558376292898828155294598973275703735893266605136207666910647954215927974674471818710616899024035799492347269533035313007785799263028780291103120495753186205641169471570792892430999291189235049084825628977486917834270872365635926847975193313511166602833999743530425285243489468566821283197717234001762372429103349194637792982951714171224389774533584992139607112884412498020856680576456892596301955916096491037771422675464100502918142374740264766802615131110120566578781124718088927064609879340981378308867975276418786554735878075229567732753489976738337336778590180294244501576791301524128244498410766428200997612240517835822272895782146946909052867124740363681365523956193456907060494716484678733627465342676508330488629599263131467528943758901052668112308197676137655150958015923377174828617564413127266639058745855776498090908881238671498523340004205631450903055388162465910659782593971263091010826424649831624788702961259228117084769741174535665528587255647861799370189129443963486068554949045529339072232742348065804612956622062825629870782406307354518478014731272085661216846809889929947637729882231015657467952822320144295003388189137064337632185846219539227615110122285129106849250315251311556160648866315086980318627988402244293446035228122848319983603474680196304181696536351888232486421959197646659867311717939068382415721897491255030202342812237673075544439897286947751111313493283162018985026645897434675477115286899926267676703356556089416055551178170181841641968223338477382359238964700502448656312269782389085602630118492085037957397835315961089903676287030472540959276275069172962208681664869132600754553049516242580505489295255985659229445368077772473494934688153180688918799961900377605855219558571450364242717778258739446937179248125014794176858100781693804453638119008568555197217707567761190030653507269373044082145906869648572279929933650630829124666691295159582064960955105990155053885840469066538692521001455443599225148051718883783160576211442603321738552731487284096859191262344986076412804929882850237849335395466073887409162132880845242874340141571569364338088811397898893482799531898461995686603424426263037703606886722176321047742934708244050561131473093620123069088054768090169333475187667132661576018755079326049350626647451165202867287947616588010532094225234462620100829856049880505600889212296654129812504888634103850196468779776473698287566197329456623019095808934060729462560439082354318534710095923517746437593660111742666167558508293109514218212868934664362101964087642395449138134444125730767935307517282231059023822506314259532355754823207034054865585122122986617806746998251949304282677530631887682638102849585764048901408338553753319339409537000296845217499261145468160760734232840333465881787129612579107696499475741223735207486275765761992847689897255121895591385333570175059045956324210931727053992739330257863884337978412431868843835182191986806432891488163093425605567514929323385573088955127127951564523158070725914222344453371177056011964583905664548243153464543009813855675227514302999350188161475745919986578679437909795561576851452277652712616481952739909427671684427146837437393374316048850715226477954064583655730954688546990865866782372243559981174913259588390636710238729772765482940456918556379179172494401891341966401086664673801753049820320727609623171434642712630355603827678704894427422857274885428518716120629996136821467165638449491004088048586235531897004873488986434567639941658174383858955851918092766854171254891143923216893214174768106573883636984846164321454436476100615763034603844127598847484742782711565840157154834314563769146466316421794152903489895843513224786733918133040744772783634102066363740297155277165652008892752285243567543764011367113805353809022305500923836253201993183760722213112511913196037053343389514736009306180105577103510923635358634116856320948220478651888551608797239212885685025946340820595165791802634727391194083314411302529644236715042356525777311961647140951285723098518414580236166247719413839400815570796081067470540521116913239201028692706070162411958588968216052032692286230083485415806957235099882760443005870778225690129729694339984606398394876943952189677060490277851220677001488613890792713263886212463552374618947871011532913761784841124978423582013746522652729829337333148081404860595210470394538256285285878249920907280910639874124586949745543515367175685858229935728512511431548439647508396074848056663246444997926519560359101124085109787018652759807010919719174712111556426030651549208031770219127071906394569952496168217477636343146919187849740773066795955015269701490186686565024572163737166316087273249753535046065818140103894091390964106720700592508410972843483645354378794314789563415659813361408605090687464374294441697847848217749440861401151553438507029985413419146045453885785696089284684661688613260056041765017834130847896261443391244074507585049357919030157881522047443471316792878627144532542251040737122642271508482278652641264071040128704464501728011057920989595325505386885813409730046533376602889394586750214599423472691968806681569032516156432799758466542148127307092150463357370977552147229356974681805512806149794484222065520668528183225756504000246134597547757464277227183153507343840629522058228864790257376802725016111446580109621962135684966149430402517109366088796460610810045080471284139164856321549331694664644654332186457849934815138429416581957394834521773849336004615287848944082846177440690440665448901852421034251094336008377447420076776727470430052043097678426149407096108710130493825464419960307172244488456559225861898121478438711887368692568093613349784857193060174072094375890691080286187108934940373211973929735352446419219277686062611372786550827906239916781120356156367441550853111891783698394227727646601553882044614352787054548076135933376137712098535091920607722340391516427580108652036938935844825295755777585955783590094216847434909738439462026315877711050342322891649693849136268795538860272369266992041632150923667147280004197110185884018130460133961514776161988756602091768555987854368788695961650716953252099947862268018924175589145878061934717587762555136388366358883047877989483657496398035107805695367330609003214419330623902947349389376184843098126415919866905142660401476809198649894362988189902347788307798689085894049766770830895654561122994636436021042984705472257538497012882759231638931828413565070248046257170919009538746939421444360201397646645897893175680394209872759880031131669944801070672846101416520438106776882456505975114929484384989115427434529811522115396144872573021261210490718116222075292208275863344725526400202502334509800503740640736180418207308086907396386182478606603235359955847522558793665667835404394188158331649711452873842031053358680144917516305388139408716710627365451717068466218967695017562555600902461451571286909472740005865186080962372569094158118000087397079904709239473064652866608562894366715221345450584342856301311436852047177395570842055785356313439713068020780000047197203263554221927669360549152887409286006471358758341644178564401962597450042867036830734958389098375656734943546011731101128653078896975347014208218220769979345141338392822869777338056243634643303865060254522512652255152801497451187224495165028072448156338969185109115429208221776264244355190073538122408367253037080290761902711988457861719284681383443089638633839700301301658730113527050034638822151133866546384542056764644582892105802298252722062860641745310352621223105534298206889519532444006392152240089783246996285614451058813336553646723787709745830265769831608070654505149463947241788069139546671052366724361753971165529850488087237027115444558700877926749365588928239065391448451863942445821387031101313133865371840579060892985280955783930733422607999184727135607252700425916052345968387901537453030335970473324224400539980666243960897177624239567727134905880341926810409070846888470653446151819054169949175735408963078057744335710070135038364599266963520509169143478333074012327602371715040185079151595949389301063036472019589238877908882108864940455220902713428929421935276069330235288826204808071545956934217284422350039826140572002810572300163134904023495733333561387536582459046534261402675642420425489192340045231832618089904609304325032113183224387211594810721425070923297644327955497588176894081910995041824901776061663136554108690793860656213684706143540514589191310674967821168067648627131623256078332179114854311894267265939875556674819791463893218449749260823867117283359385280664998792807895969889024862615856455747513037587511569486515186039463936077597002720446698755041202505932534856771948652258962595722811634613422128641121012503468241355161112110402797030424009788884480386074928772217295571099809985005552410265660102305994241113744997082519906752163506245795631250722841359131515045576348489825478994936783927795277792805377710566118926188262074929861406538482627340008231222443375742214464360845667952173442987813631884740504242890921275696916168242183668363202087032169390930924986779155447658473296005610346059693834384229204495851965432382016498505427564143235426148930745457525089785422781975082681304393091510185907673250329993148009310999274958288452602393368418982183390762365661294367728938446322206520433168976683133849940933704951384531678602654412402116623593164813527569731830793657844884265401426382963339461421152120021592475706058567075266072102317603307119811889691942623145798699756764973105005897996352394167116746241517312357524730838534454164455304401455677993956897075859502639493480179829340778645975859624369437826883226616460231744137683955541530479022722446689712164058623802775942766050262021771623159526496873318610182857204301629960908211164318064826063727547144708091582763969485120411118607018830245688534283934190694258543026683144634401341324064647121747569155920865137205297675693083842943953266569994346768966577769657837129684965631349977155668669357903604992484356221419224769116661293859098744493821331290535141707790946440708246756776836716949887744959516655154544697299186813002220686682848886005655346383524726684117886954103569119858826314371396991257123613607929388477994279659613099642698709279645840714602219886825264740660796086291176645620720074414812569587918366476799720536788245589593917712172712837526880517723881178071770546718368067739682573217428179322860503309270208414367632163988007798659435571969070227394961059219684965398233811352101231395472940244937700405016637246093875981021558626558661955645175793822776650318040222876088060756503923680218586359985337873849502038737487411764205007989426640880785050304088457789442608842492528192807484321666456979238324244540018484908685964046591562060680373195666830058282250914693937620670965503434205607259172693415461318484041402699685715488112576714910892889096752918137846112898955306462365783440995049137646798649046599669197540078488587105166122050645802922112774141134987503208924903060337607309697286668496758666090899083605211400917221888343447757401902142835632474998571702818295233182603666391011906479107372474179540972937850382836866910835643257901786184084467922297793013754297123672788981372838350197692313993975217643544862224739334474862660130895395697954263784037895037891587328177144124346135678149170957606078575679254166325129824964085645813778099230263182420306936009835857938457804314776810778784059270460331832438714214191142348250748880456839339581729098045163840631759476258377834467712855651037305255746707691055259224214517860154735367507886407238600631130226191765523041171719931388982683158433487739869662310791249494669735671777459816588314837317944101432691851006609122644665817642489708024229032520302268326767096436828899562016417249454556866459083005859547719838025905239021412833641178269061630912378880567202363624673065676545317431502636155066415662337990268245567165381496856371607996753744633606498975843796942268889281901721781026740275207019278339270703587907240967752542605180326754925731327177654047697574338099069794319413024965393570071835721872725800542997760292762127905077105217549422189160782495231278515633206358425255118264082273603381060868365372809852408483016076933792309908494853362161713147547665783169810323818870939391271100702761597563964660798839351452819356584209813856213739904115250946854015524359035471470337942316061505165577808370858210637333106810065299660628776130927816859596580232950122134122563432599502694651924210566103418396606005005350462253643389414866298504279624030736983640161314556482407728014846416876758170120539651433286740212169207549755894789887755814914741290703687077285105180333769689560841068208769151602528619218292561298023362322762850472372402208871628458447545145255700302000112316215485185686183078921384780058142579082026384022612616223640843382694656586223625377266911511280640719028479078254279515909269282986972540022293572201473159307479464186673531198462205097757022281968434547100454986736135586887673731524484285869795469388714370313446139659100136381317969202537256790086648657198202516630710740989304573157322666462091231243616151615119566566335370767479541335538671434550786863267674650715043662988312772221196851036413665493577142936046313518775395814260813849160894757177738075989428809071397007743904541201310405906391481041314179149729151692446003519283309379563265405725349860299264627903489693169310132422655235080025399382656728720831622222250610312659314802040495286885697446468505285558371445882621748208982279107128905085134901886773479037637712968325899523586735247821854052959807363063782707860930591665819396556435628238390168767392737277219114822220204579893588547470392702118953734912457045941638546469217380142462139961668840957190183933801279515099556855060133793852850457534165726589260074071800272495147963408143038718548272692699067744187836457265394375120359672351814294108185816148790212600017244224070893868139505311391045966590030668665723935334096428395623647995860921044180965722119856334135656913045278537046540354169522454881027398123036320535914485353058565133713426276682420783155846157553828322313663990317773665204912270017413805183939114995453611168699520361187431291558694739229231256472054513717705812591996774155699216098317880070533956090509045313033936018871105697944174309494700292063072627725763654225968893881482310491767749092475108434337119922387886074281084249941469843800114279977717261974760779613623203473697727948782133860755131610893784791020610888885758094716827284327246401616356813921766987857987981532872139064818697850444718036428332645107808326187171687350436146477764069440811307470100860971698073304361939728019067910361162488873715199373185823130518433508004504168834614974420324058273269451828345162239068084531503685538766431288697753444457555185786997189349087594022671020121814762709466415282277774925692356061160937950740912280255232235986844168846965598301619662337353484188078127361193426314372042692213304913532886067033350162871545674209609995549484007931646004370338339360994969620836067295762240585527637748803005965257922327628874833803672763625908313616523678965917536099125606755870288220158157256952354152093588566230823290537052037724919054730773279779425950522870235150960052002732812812637249492294728641593917107201288591159171599592729124512636444264721854262472097408207107190896516217109326463026101678260430271121760093786574430707892327628361800244469240262299125541269414971986528296290830105722971301963644013609134707974675739335294868983977315386920743273964743263894072333628253149504373280748791510972113691782917246587482234468526563970755733673080175993149103996944969715502554182028027191751004925929105617860226836037395551832952569821352658803105194332722590897435456783467779637045633226369283651852865356380895894064347086922962706845873817505296961248397071335095967072277912986012561946830917730007320939413024381558599135518795271378848709006522545723559420213659932004037075756286571895312543290509651586801588084085096470367192045642038274494634900570338787442195588893693656272612259401826159332273562423150415026730503200092699641009986373663961986020593405232627425303035674838084534874957083076352258564831276014485621729731376413364377422875097955697233080374095524441451921333287347146613275267655943993665742792007387238521327937549879574176120868736675350410749605599249095913240757768760766763570083600146555247742362213242245581829569862982671902324064232996414253691103041610808271641453439831922296490502681328073512418396180954646125382183935992803472052753144738237517020504122236100834542229936408786978209987435288649702027274992417720765518796684549459617160410521286080860871893597315015608018079224729391807601279010604073144337472646188993809952305845493624280997936762896547643202273684855270132860138149665305063904032459665805174150298195985909847488335282222275248312080928875577509804218930795804529302504714622939767779173345059370833860090403871132064246188802905042953174299554111100445314797530403223901590765736317134895222314919355430811495444654194536236256412435877639762044696715698826437953481148726456668915579443482787899722357659720837419278167547302387343102395305365310083994475616904419426276277048556314483782834829638752236331926397003636089097789863598316845853847775940985345464327105041301905310427903650022292222952046214283306717350837517866376084619999603431797296635419839598760936866403005524138837893553512576721360149207874749340496267789529846412105438457239615293159854708549121862634107044000556445639933341917565173282912858548930351798118138366239461445513105812678081819666467357894811365636653577356633205501829738499880173921600884445709373492222608084082831425375796717232919771133669818806086278368914206898702378345387282073161931860213839022988028135012513437884770181366781912518085089280879079713047157476968553244253782038815271683370420036193589736423476153093883846022978777655417370431764091302431031652593948398745518242480845230507216458095167061581429895346528470680598700607184690394090898282873280563973706804755054981894481142222840547880254560318808253532321493803643153619592670379125908438373652784857981845943409313138521939108271697710898629997623389866492223734232788792029266039319647000108285920727994135799710605276395284320220079280168781048055274523487759250220512929104985990117240853635865058017472846730314740153179638038888497702797860782261007911528444865018373461937965904121435508266808968206657894561702862910045043622668535286662628334067740319659169070822930659639982495225074776533341012342568290013294351467908507153528201162258912010864572301078721087572347639269453593102867474833924862025747715133370918086611595928012614784759622746204693677796654590759036616524605376350940764486797215584444418882450999162714003063743785246047207461171999896081486751790724578460257482434028107549747251221376915036929960864489480400030561835079130651386722996709724723867928865182031953942366287748731532997024061530551021745971094548997100097689936137847456289955785326597532148549353966912684122917045216722440478425297209321280764719425156142311228650674514229502849587319964472596251053240788920272238737211493784149536998863616321027700647978706323064357558381687134160532463879968414751746444566315321369677705789620306109038704268971570459140015676314585113665979863568274132795970690200419393342229580538179868643077931107249238484985926726520605526181600935119812761028279451790304575345957277883795768994832192254595133414282184143854066208257742427321713992225273209490692951619302918079319150445588473244887639573515663318756286543449535572033680510215652520093125673698889478119857791888530193671424118568086663134705001128581102832665184474549393219773649841987774007081975358010270356875910573135158243501134052915957100877250485105783543089567869242977549403418194764870933524270928187316760214950268189779588717008883738300534659686345496539118965052102295168158340194936980042693049235751557754508690001694272813506964377062426720644291110042619347716410686318331944977718922602587997413722865275860383843094048393919867343559317314136238447542691054004626268979279325701858783906694589545784446021684144366068340131865063965161276054984226622708466041428247417641285016189729305405157306110220344674015800170367624852508253618659526980111715200047332607186618507275895000482648197527803274601749075927463834304665948918246555754305073254252331152866369782174327018076293632043312512591408856028676772088760246114239566384252601033072419742052482420546030347798980473168234767345466814685397224612324290705964248762802266749108637599656601455606337277261543656707965980944974423928655512778244252699296947600324232799928305760579869736881778648038738905222665898435755519285233960881980115920447943488798784642699585368208995197301063379544776734896065894001085703702413172858817299018870995963982349307181682514546485153696379445379256577092587359937707376336799974319183069250134064489471110839875826669214303764224669275252417826410388361133350851042072222277624867583028090218290120524035908222006724671600214533801018979863790831461699481758746744736598500576447456942027431361765485197093102914956230842175330366977572758884694995370972602625669670388059213273840441603812736293354192127766516527802112195429972037873417823413606908657447176594681991564556934907097470282142156576908916769092384065425921666397555935597528806754979303652079659644484208024948860592083424187101639889547024260477883038800082205010750170366690203685783261368587859453147448199148799881512838137779574788723676130627819277832250931577705516593590488096549221089542370930471563653854086244845850087023454223931174224117274472022051173422634434936472022594413547139562334208378743595110531774286534715651414827474752615393721027230544445567157195695526044253543815115746563299594373320373042693312869239155318778619958826498894142171738557660852731323469027237466190262606461863123628122474487449875047165325118461426886598146809035728125294522787956757806229559606864784340871350278996632469369202589647100325776318323983327564666054047449299290304585885347088700892827096198336628735505875363950557924402592737338776129242012236990667643457452311178999395907936729523151020567121807162713775450352049922108257973000486390847138039754608900722137399682782971033906548779950890786515123951397187474911439390916186473518490608003350860428847762292370801742071593758939068574713499510827493488232630062709261694098791329652820635438797511011782181861286193425658415636281088805392245905874368983535626015101258246133475844603247646447732095363753117613927703454271514785179227409293515579184998075313532423218805645147190079736242230282115090459694114536207810304282948232441309203036210511077340192446283473067937895754105888736867702945916988832371651783837441199526387313592759648123284509872638345548000813133628793532349935918605327031912283742995152801599174652432925103293355365311734432152428480368806233929934701383644823926563047240064281369436270146277956678589968219670074043271049202604255447474404000945825876972436865793813901088132320584129507824902918141490821476237901781154544977748609009656129749691727635935572485038404347298897315865454816171996678837597083813112354250439704975644322889782858165588926081935696386203634697527155598810646054794957534006132009126817530545497041420585270015973319167969187625945037928407343643148509610746324158731928846298062531450952028156750935725098868541144236866967634311959632919580243841343773718546877775029451152731449972368164652394935491340434472635663346997401483316279264805926339102667187295279195545515536122903091469415429659312451130646155588246347810175302868295270087554258252325444191061396552483223844477895789347719018572812470748134071009866420926595791709744722314376546916767777994739930174885611539931327783779774900137043535697995749971732910445252487439099848365346340332410724813384503415414007277339342696387352016335829907192889304084826225383591921419584626858683305408515341398836437398874755574437161235135945783746103438333065936529451227658544223000197064618857835988781884204340003886554383441499891843807978449268901349967867991322733387658702005680606776937523668021527883090391453861366247014629854770396020773046647554752438862133994206435266688062418379200754862965926626029870094387500446494295455313247389639964824759774280418839113346523170621156588599405834696423970671538873575034980935932950868453959469542007529282011306933635027398106077873241683745680318049444266633885489108978729521224243567886145621775895416345692094086775870013900607926980527565069224151815480741424044699574314123595020434142189811864991906101015924053237460320232412839076145502061073690178671809577122197683428716009710608842068108197914760970047680668391364391392278661734563398681667403396173497392728400788650298584461003853280692465055826758294019213259791361832872128592648594150671532857559942861732401562865525951349061024420889553945839633101781897976643909696980318136889684987432801456598544676881442985015354523228131628320384833392932709430409757928543327504574768144037054205636093904987346015957833308435594930979125421345464655657504722809125764047036114224362118253039373534266982420138105181728604865239176559061253088454184803030684142737090007892199396746518127520516050705034829614059560667157074383402595972791584006164235130188115781642637498259555986311322644269542285793637108455510429890005310405950311137327560465688347730012274529978429001806018084302783022622967481622575025662109799405662486030154977219643980447701737593607511434786643881219198323262418935854250181427347815987408361580232996922340498018846800146248533057706723572125037371836184114183854207984620052941052664954035172885095792969917671908491909552291212701368745833025516641737305061009286855839166747768428827839906008698909024110466964324451768732318025356250674423846015594602695676003927993888101786112847109673861370491840436971988542859584143716807877407947925310507283286010330617673630384113099028514617657475015551303010866423383483503349317197618246874726445591476672935924391420399687836237792553589210163247873927082759105497528795011003248933301624262930603317714344784959223830279401002066072679057631826987438696937420872170613436455416101755194446317833115855498683154798758664711408805500033154493831301500161680545716084751982266468945700903619173674674708707817862544449134715035090046557174830349267614282433425610009601540766454000588180673799901799511084973563867943613012235210794407782231551832353459784492010008760899120884264246847041303131362758649676341402391523795863331403706763033242049368278316119895734973077887367572855109383105435031813738610669809126781608916546983207177641026867067699219886495616914890184144709515605392219365295529116475859164111339168694152020056468716902317921615109467764497615487144997527978960321186063698440870534465555647890860141152023935660366646785418854063182621754106899493949003517486977746540138240575704830994071716295363565536022755419468658409707685662651969787997281756888625402439558244888935791290619488889131463713985308311268202652692184522489006621778713399313698062151489489137463702545803902791403819106313689961305033710296435129179497369277142303440751194632592329361284377197825867831342583162557051318493565831156945363852587977718744071421621756513009677881851796425218731211763808790907050281802526914223982870926151658103526881876892835891482723189210485658258810984899642714693171365263737681576747583301350259317924953883383972935210887533925999026985616480365225129009304652224735265481431747325439638431267567641180443222908129973836072218660991616646508764373071548396400583665471317068805478759421663705175896383164693019390401405039458546972464147910350859748882593962171683247102625203234532245147031957341545784443933225108581693901853791048569558165161124804939487436399823557708075424349834675228405935597085188912301370895139998126743298556716137395367476062440916196147433209794540797905917146124825750841080502543648304846279460025488592402321757287419818471539581983785148864645172475256482711699212065648470999557424752133394768401344831636732571499283972666387505059145447572534853165530597617485002561401390883685843423872726627307498149836828183385682505318461851059302635013191426438453793478288805378482601319031800481288668150925723451210590746665313941433932232132831638517540635197851819924377365791849170339627797682722734395807720784118923969419486670584587609370192680782814095214567124168190515817047484256563474735538197585033161068506074559189243051997203924566913146016126852847073556916483812168188285298932679870065757603947874920241404795436732642375875714017393950226291447327416578850404571827522054122330031478706355130999832646403060307961516800007229238589356510883307279352985063196243446253455001922946306319006753217672417491085617628070106153133865469100900226653260804460170847868116789412736419567382661116189706493820618113811708677347611648733753918872994543987725108354504676719152913599917703336707480399430400141681183089652699803291678691352675170490938845232157768078806410357616821794720672384300603460074043331328722397002536869928438509166793363746437192394918646978099843784809832078717437032491059001476368653777033507871882811478671061463940514341150294846789508342983977868690639812967140984043332023584563302649046781701723578379573233334378029864604417620566965182151403840843503746643108240055086172957715753151204229465880897474749609264337371930092456755758564867834840891774357243323598743221083264184682018767127048061169745882123624145695804996784180050909037293639183409080596463879152355294039063125827608281757476022221715331859597831322242039191854682608022577934137844780126635177381788995867271246049167731983648672676799881077656127371550385690858895201842883860198073870827703403764523236026793375898753702113456143169483042360587612406159449809522093159304045783489051002634241717628062046104163380077976297636961477783703924555494923112344222237244596066610872556029053972759859022855609755848671354279495626478932937371181338062240950367607097681709635447441678654209319818079282722230123214235094143057248232539467273003008518226479521555745746189042436811706894069207340993456057427730415586475087318806853479617840338070650590157312568675171178974827994079402855622697567815719242143837039826234168231402946568389689400953682787841355317617928541457404863136927240558361213488227922587460793400439695146269355056661263933169776604459335166783008471108822813062304004445944490371608532845366959597706268721738395064223603283119125166648341366849148107296356821231006968086000635369488903382210351625197133451713497746798899148754704484719331750255051604404991987678844506583146178941980558225671702033465122982232966277888432899973852433250127804202738777527244695376904246992422067490353857130734434374856166014020587410569507053889125391561137108219836293020221543004883371524262639104661083980870015915350508388650914776199141871641682866646161911903825898028530227060437905572345674717769352248461263271923776666972917782142804966168196545481771125937575861214556096100129547119903072474833289986641423028925642796089845887586689195034422739823001535141284523851413030623301632232848490019797765550080690472226661133687378854446230090805620974826453021639145374685749060141191486377996995706245651120069006421044762085351947659817344840717424445788564524409967501126286508917690458793108761929449650527790102589637263364667049534645019358779315004965184252623541540034468710268891190116832683769036309917596235207790365652268900783863193443667824932873448047530647159704666196624843283291186273317149882280295169137899397463487924658877214596973503156700897126851202030596955555618746081684411652227914974653481070208982152139298412236087859566882888088522947462212369254247498908316492431753574383374405284678681672451449935581039136350704563729766500621280341474077597687121651983783964080401186919197961311457348154405773202202543082535090614470324972243801578724445192287730949771180261039196068067167008507609677484125746744055750435796720438775620131977867178207411216691314533556710445021664034361113631293211878495997570678405851880249905302215786605205351721663754459127287921725328745768882509337668843405134739030432844767889861596141480854248618071101167011817462965305350339227023425586083103111352682090111969998055516377980076121434718774727927816166067684136488290223886025557704927365880501653161376721633205452277270698811907973522190458725498233448608779845106566125223583389871234601591588524645830210523652592816211271053708173750735596730003473632151147486741200804738019081917716604620072450763677539507283103127030350074664198088524786450109980104501532516834870765568135558438082331679746677570796736126970043294500518734483605661230291081568031247420791254962251313377661768885284822211777557021237335581851132241780441630702880959239077687944601993130910716501602290595775490007445380275633359567239642494792253648742222889336812070686378561952059119226054451878408499913318076730864305721604465891453678588757475708208794933637304339745913166301901301545239138516425112635284709336236168790437887957161729418478841588829673656485131408379297724127487326673031308540939417385277082989310732604454802540760532148452427486391466733882510905552669658870570953023122829094214724454590860449727744783950315562703485363064400001592123056914373692398408033225267477226053931007580361951660579241310648204767927687634689411450654721345705272373088198098492877120467634954304706274745933873092847780677004717527245976704609337932242336619249057139062178768990341195936063241185033203252493025218991850281225554336418275589149772067240321168694929017731556021522491164329076254762865433583501447146565676256305980664107873203813011435530896176807303565385733958224376326653670715298351807383346000990549728219195068363593742253132054895079445237583869088832182945001653511471979594265343056871777207278385659536214272569336479493692448458451875870802371439307473578521474894616597042281104690571236849882735475274581398731118003289120732454686407455111023961869080382360834637847337698213180016606508842241921770911876153510166786249602975063379122303519549934365713682014044800040706569424966209213473063688756464659629576509840334316800963153294393423157513932439558925016411109587945909968369490612955489982418510401567481710753928062202277607886225534810048100981571071598920642916434765135824816323815413347913839041281567280591698452650141469561823343556368217300014214268670614939547668240004996608132461900653247914236682097665368290193833989218859260504338028033752773946629816859296682340339867208657854241467013017557787561408706845682007995931267322246262450870120726554405559104635425667441195272079491368530560589255826956895477522519948333699165118115613384113573622564064213853030743271707696482374789568289114496784828067058125541441725202485711801374045946879556312482092244839844938189740896547286855664413069383074010644438198022980775222224827086754785015346842284999607503555509882455137643762357742318835810135244786198342120583632069389370970679030955564844024639614441576601174138853886930228219860074603649901151920988839212637691326998661242788276983242305660827038706755788085825455993750858693771402975534671872372627709527159841707990745044168455739732264783986328504717657802969049653623444786615340226898919358230225595461297153941392359881185332746032352365951781948405307437300220394536636849094121563801180179211799474553400948892342468019228870827761560308808196731801088706165062802940626663413539289265548206301769678509545864444236549108362158818344170567606807849194520969545672746088028888699156967103218875698659375378764681206524122636479602194293361882894353469786398022528677494581456274712701889302040962484214981604742207484451789243861530384461192119073603027811102014309052626679735603851277405310547965799959254501569108972184948042411829076236598003026109038737177639370734737052171238606524494194754746007819646538719467233293457558117033666211461688642224203044511220059905597819393524651866484227172526263930671339732472835813038619118524499758805532333136853630773755053096571171478605467626991658429058172673832745332708454564929445769339589455615548196312524520090085353292219553251326707037921735916529430872744012499913730635626391100604692977568884441942468591035468962539244012579685595029363232215225726171604607042496135341352193521168350897619336632349166486972414855694613598215567603103460644222317897669933377893149254189411479832176672850079045207028191261951298183831701025455852421271006365672686467909966969959191829786942160097154089063154702362993905576758887544013518705777908966261183896199893625686957770137316052641355374251512973296419727084054981861532461954787191063239632347283661376376929914404586300719512701521093101926611759549120658095933141668554470510054138287618766914393337125758469481473550745860473000786464654297140853210909218392587846356423569090349488171439191830715230492102427936171532022348249900237388511431170626265808123861358143995446047080045537780204462254122303539941494970798822286305156817187907280800556252832102226862423789513668256614711872196884406268393318272810834318994081692009440060933995540722418446663315532819486933185823998701767279263397427642161658951946566365487782120131293999094251106827354336477158139220392488801739098428230718260000150435758507512214199678769328809323263706106675745935927618676403954059785973031779730927382237907717320865910128479848953455286807684000360900420811870991580225121684490101438125840322979637828300878233493463320091251027904168759000140572451288224884193689986586085344016779858226201157268059732570392673478226305703729953782065963603080878035006801201250747388962465794734873506993250164535934617228879524463459946102201143934163511001127490667174435320934066072284384868733897440976827370754238431002249533890001772788383911882398004983084425674600599923631369306405157961601906608431706882252622575269600228595472632900207995963797748383367318671438137235363914237411485125524178465840062294154016523206363324891384858091569764542932840639585213895413223278500194709516272698453869933816705370105071845083297608172801341720047804457863161879829006781335449598875289172553897920723874770511363720048364921548714271470767991985142449710364447339317835214386959235853370676115056108743582816036169040146378720852564194719741536489615385093160454949870637853392276843967484852355214631050642448915240034903900466901224016521333431676288044982355433875517876338305723943467477205234223753870368374561685265062062744833328593337492410357733805649186385205379844487189300714188061153602178971312535743848126468325524461733705837627645451872115059544468901175767499536540698133173997033190609823169667429511273787627633153276181665446930139731955266639847284909831669861638040430676484688227683862431516007853014527948442354827993104978771159714200820489657427099692357493559602527709341336703173421788051587804863319371581318635158814457054697891483428019029267288469337098174166394345623436107393990598887195625078657642605443963589726575126394697887203946727687375052718245010841417625480064330851650895214885485333492138375126246460296538074740540151762293267271674065485752113729679634102569162875349485493144016649761017737055528223019017414167894939581581669235690046262467174903309020258161982449914703972756295925670168973501389564473605734603787061919736853837237380536876630625305167303347082746965737364529354282556057224923709615545712139673532097237811172326070594759832329484219676283869379107711008764141334282033706753187107393861546511280508248551461994397121906777699869223181149151524454759656438926063489295666741843557991110111505577490648748432040143262867679488082542890378053625539012434367755652155956643923604040005658984433539523948735613149080465844863529997691311765900694011730492619929677488948782266236895679877694101553548684181099666041713085920540302936044747166096443424658501673063209890173991368003802446952631683560086099445277445383482580893957081340887604733114190250222500060434143779692043907435659986880461708389317344524849492658179245369025434512391211503511918925271204983443284479122176773373440492894673488895193396790842844258089240260679728696978126337099874041656646243226046102178501071988980420394805717359326492064363631412861332171826756431498220812124460213853703126372924423526642882704774917720350284014980343113722819853458432231587535495219102539824715954437389635111694709442215095905648805385984568796302227458325129362419370511844531948926044638694770497585962387011273057932481181518726805803166274951741476047787022272293643956249964134984828805966800269929738934147590786300760839790444755340332567553152487601662383178803158347180040958916530971386362890405723808347174922902741090833268714395313768185507121996208987262024578123555497677787322041132721092738977820430524346673334925054133046443767267881123905347304533330529659027082880433041867508141036442199516426023745491958184775242537634423920872980552467954320330465424117091694542125253011695406677623883652396633332840406582961713020607291094565124523700947350430521319403093494019263537979397745274123800312665141966406434184724884022070404787261213586580456407585945467942415527423010695274598985960490595423174055853065735787480390726962165115546433505567708597877357305055367121268191676651389492004335845550222959235071041200321881022702021513648590293495431330484796402710888503615324675584294937684936964715869589826184400662681570271291333064891415808298347556094398099339421305610057753229532699521293507160902844118830916505394700756982430770799303181681292629134197389083528177796632863324325477033877185230413735312678194545535949265917655072370910396649376485205123868242525238740595746353656140443684590184382727911275656500794964616451684779657303866179591858761688915609800494632388370348164519901042702496708183410337339066234711928362398147212495436512176871767834504340420681988828322326041498271257289029183690930940369682898714424103878373062851813991041878012233773885627665955396672965564258915379079577245143854549914958210781087755432533114258308686419049593179950450164793867210118196075135118858286000839881043186717158249415041083351400905497080965718357533664857111289101822132750365623985564689572701378764746064187559044290985874232382966514102116683706555990293525512088111591458703558061716269179802254858314063335454054268916491901056883494427022178404327318432300045623860175384644709278296262357763172043927066872389248682081430349234146360893212796589408811430058850298957379818156296753937698644216608720986699674740399133028271987115644695614260921159205336019433188101734721665559513863540889571540383528650018834799616083753279731363997692273575490015684407699787849684290585495651158772144501499548899309415914789885661825872311866433133974120211013840069945757683667974289284500493292449809742730448592166515114344888793962698929643325251764807151174521132321992837593231781824519640027539854471307875717680278720883657920323158699073158156109023605688341307810942817532436738978147355040273407507823170434432385582498185206600958928794139858111616874658917613336071885419368838244295938385387021344477818183958157800209734240149822953767505688871250927686851612250988703969033789102834942799052938603837737837927336230381958367266749512203315386975052451326369007105503937283636603216097226988499689565416705784256719484156462167264187441188350007345033708259698521525592108746188493168863371069912564279016461030092771659390703105182354671761287298196642723035850312612010547244915028328784203556474384900772456774978882876662547992527285797840181353367736250929289204901043456278852799107340163792159612051930408063631511054071188968898437597064461046738060693276905569238004763813703666428630419833495635147144159782903226357778177596361072699706429908232801608422411910891933913280629857456650727420201439933651089894842855917936378121160919819640860870012940218608362715221321369210069952394335325608390636412122522639713469123063159027141246051674882229462621658316633749559850303840100709346976198081074017241174935675304040844131239489665699476425593788533326541526415309904741384596121910380114451548858064496977641355710091625886418516072123012774419477752390995201583643804928955639898971509788302787179193537688429191104388831290519366350084496224263467400615464100175381128252402996065340580642482191038137834907277523905555719812939210070289492672906198239500207134797537460893396472434914818202601569872364475018595610177134839839870795494326818566231665736850465961680837926187704597250839953397831341352984986792213280555373540043366562129200203327433651089818675246429995838084706403240708128628138950858640289055256007082961634958081867960967164662450791938127527078314989451538157673842570908877933487438289309580831737679150893625758457255518272027026238870364239078785945146604815174500459330183191787228506737154420692934754102583876155056613065386638583713308647971802432479192931218231792365589424910221529345750188377455470070292485102974158716759890936691987644710407547253451125418420431879495522097353891270229972402651527595738059281910896471153137090993613998174881416032770969456116374619265788863335683946665810396750145884160102274668785966020247384649260601536996620630750667023604302026753286612170562497296680506000594688135291167641331729630828254050513018237256037945714939350201172975819504641104917329395850411813995338419567874605567812073770754546982104815290091196110781767220994804454362973034171357715020104026104063728242145214968372730306745179948853075375219054317000049009274784363854182314112511072715970809443531069616622448870757993158609156683686325051271797210961801096906620912049222959880782716038493039425866430281991186238526055118496787358026210636310299967912017014214529175677606464598162662215713984204199310503682225877362962370766639823110988125001374168452358898449587248948240901613384145939637811121439341586126173482964245178971913439253942986459670650824622570106130446047242018118837701444853260738977265008943167403788038520375877636546540290579864802044529199465314480209491741605712480069977442932638629623647231900479516752011795075918140194946946708140263774141014222314301164828409994441042846793958099321430061357754938892748637424600282984116751826453130981470355910039760532341688964306827340034593955797404054348208018788623856732117855391741704956297778405348700133523196785484245793329099083224861761855647425367928158792303793012512598417279468431709896510766391675557553116275372739939786055100427578531781206381845554459636389834702494314630180854613104743628522353179443958233960963158517893591247905683292403280978894308043390312493541397461086879406748624200341314704242075796662632777139998961076683714484323468564081840498228589043141827554491899589447917926415389865528113431389041952522437466168407052629445092617854124553547200759022964809902227393370249004220194173626241003836177338558174123261039554239462746763941446057671208080229026531822697711947200559968465503813833706362441410136177786517363938664348064999682577575301585680673282611408655525699438915535587583050138680889680717764878486922379387064595365049417755955159733831499696165629673903971080560665145286302983408572489231731181262166514230192987832531940147523544217391133723560433080773135927345696315078395287346640614321721109612454263772275316237805872905279807381626733119583461707421518608925222333537972642229660211175302922104824341790797345064984608440659077992596175917147370216301386138402883534060763505378120498752126183654273755070800826248038949278554923891026201954889967728152926414934912056340448220602618200112639269831660416637150699201151409527153134767145346196746854376778891114494141971624822418218691147606279765595473752910028386167309834311823022692438644287813020834743306577701970877956905570252727371013972195943083856080289549299805838118326329804382032849950939762288022331541188220595287466528202365309034220399860005707653485130832542759912323659878215435405614350359577426525327782533792695490644855179567599712217289590926774752505112316018334228980611304584921684565755921540465332647248239927486498682304389716437558914622617162622632578838768959053324420859964229587736941266759802814004875110826696581657126381521497719079430971701525535656449772913563358464055923927062664692226030057213936741470981404228935031739448277849749532114112916592423360601926464430139072133785362913115693956248300697933912615960482126114173071411697305585927084174272727451591232052012058885651342976693286088287648690160841012404083123873517087380369958158694797457999743643447272308902994201905835084281635409739578200823744708663662705417906468667600105421949929986138893971265046158605943749225963585977420508166963797175819684229487019093412291963826630736765520405212509205969621071240706847175800209469760225719217581881544165802598533544995754087474012773703217307610494031295737831870439056485134468136024083171708055138833244325862064000460058624747144690077900401690577068196601197405087630997912101559537299201395134283168478466198602265392876715542029825812129159953640452881020589237445895038180131683155294870507175931101782741236236030718426398680266742882064096530985594279499222387677303899118146390921184307736254975591726159359942776803114226350215901653846314778626773116777207890067921230779931504321245971152383519832614901611345949469408566399692931931740728803200439475710139646613743648768386542786303294488894589506363375274166858876016702390342279020374417229203233570778845241685108160061628313990946168705589339105852741512346681799830722535713934330005204200012912051794743475156007412236084244754744643225970962562192082619079344285714141500375148932924517356049155175895765061271960945277700604718827525442753070933225982171862058646812548084621697700325222293002821056319864466350725754013847246466852734975413358332957911413525243217307694824227548240219011532710792332740818488466115117800457808613485583077476897522757167821958791492000333433682363970984725987518854645447094240148324963983386764553726100176449614054853219152141307813540955363831932305195032818667251742923405428779553431961564572624247990611199534736684945245929229908566389487580161217265402183791055337154885181629428565367470925218673185443729711533044218358331816628644478677979273307831991902945611892547624431718814201824607729917702123138939056742840613472009994527233374253456635722305439051014913916722144486777008173912460396023655240861024745683517314186983935104195820718292234732481882586166277203566870673213326253718692625479361544105595658465432752876102699544215296689596642027252939211955942246895406801291736529442784991883978210765175021022174851480058520189874636938824577485963934007486701613999893970504511433809170021457519622208140161324821503917433115671975556214379461795194163584228453735074301304386589346454317432751477411136739960617024377703547961891493717783545541918655078230581654098418267204719106826725179573826512086852077035425757406687896073210328457492891877777220499811354757670799363777231734706990037511839511992177713592354010751347723706178045742781892280437106308645249200492564715779094551958361750521215372696686812773400631585798269778211853269007282068761367081392169729812024321029981787264728155936484235330396657176380639341322542570426534517972096279736958032862938494979899141188168221817809050251073333324093303697107565148084360414025735719941238061259632686695100882187829240034291545076994636617497644244896427761275391286471110411315158956736371865177405997471803643817155097734577515457231765838606198983601511065301946766043380568769537653966586728804242919655611269060630616222468623582863507564596583154471400253887836923671305409498452357082336404597738632907456889265832519629731682937836745442980866091427963727216893359402700731869917610519733452775210410644860524295538305730096956838962211205542433079192518469594736947494887829403040403597489875428122038127504476495468817206969798005516143698339789898200290212818361289574735315744720720131583336603191886605931403844559751754774984543531659183481753408497388137362287451225156282664359223823919200773837689218531228198030315207385429690162592358067164404517159229949546561969662467341178981235011917789077716152021437519708424036309548540615518302899861279444352883416164693093059881620865255742369921357517325483090490723188444476623814490101413736520716751906778369958973680542071920043009742841858854762160193679562187841281102810391132501609932691283468859373015736733802646152521318676404207661389393591909698166831150274377432431498458816268094011592294530497778128960067487038833148443674192233744634863005374848714642372663393898623085327247901067580567020664586938406862019250603105670381345793529790306421175237012360300784735035162874519854337155753991103250679703920010372926452979093314496172732606970776245752237415729673098112610931510698839617191335016921244617009263359864438037607233038939945137698514007831759188329000549042044174944938057660417920361712630922958979609417217035734233436255747021220377792426043900769284322440898579404340173468371403488100708757150701365762582957742480768961837924632820493233140675776554125380790877414702936298081108654601275912860745014009714948415499645673252638676607231239159976860746696112395710372868467698408941760606665039039438979472465831891073637049887052448224710912432525064362854052925090205461121874775658052982902972491114356863612401512015559300845185234080839384346004221047165775421041698857906833677052110408775992862562753134987590213009452212972051951601463257586136761757527444066912705478514911548595132989274111490569457741128052590558609797944798851359157308382835627962718332588575063551052798985856955707881841720798623695963015736581924388291542638880173130235123795233132925666770462321664174805528538242125436355846093658191702088673251589861952581979682616623342089517580510721387103923344008956882982951878454219326169376198675402561387406398845555319782920773568793504053661964227841927386446418536124540598100379436777636157960589834434400568571961525456695398150623584589711281606104775470598536558575214287655096708285194804799670206576795159196094714977969369296442865983907722475658282157176825167856041151756187562923230574914767881199808077365004050733273973393823479230561783364257028341445175184240597410811355611990027177478854134510689253806306045064549556437255757757513369981468429915772831096561803531170997258158556250937837751642978682551073421214192283095887414994206066033918655701200356723308313001819709656869196233475436193917438037211804363543566275301090640818130054169964843511126179178041803739460234109673774576903725447233364381248006622925049734106710546934301754953187074418056648164105431426176526798945055293258061541656648139057189719271071250593616670932409621854387689955763608481339935545989084167550013677539452174070879091657532080950839774027475057736253207198712339265239078967348952201334957480504547184383375685279914117105179753328270258665842586913115940965993556435576934905878278704973533376388130776407337882399041221661041431589893211489581180162147486310510160485063631287423992728113850192009511312793484986214598230419283727819204389840231009041446437966088599694243348159246304254038818732032986078118840931714726040800119422207670866968787867571229081456977306192072407969556116611477629706986872472150073529283613354422053171562864362589254531912092770495371664544145090590592891717759352609851986901260776830588739088731954553311556786291964821640766375211050977429975038438252830777669085839535031495526466613524047077422574630349431571175760005784350787358231121308495260277215202723929112255654058198821838923259275985648305062681522811993070136603031989642461604252306222170717656962345054810264261227390187940249268921606275958557064150693425016531106142406103701592949987793887255846238206815372458733699995591683908576659178996573272296507627904783775507345550261449981992430702651745625699879946802845962964465024664888317372767337261543968445770836447880656356997862121495051633208906346859151724291083243402939827872149113271689114937108321335675250678944072927611371071958208183230242910825843450884837544632065536592902917104341560550767768224400054148608513489770573369652202959994376200912715682518358143265902718283274473422653768726887430177791476944316426049453676058993410988811179565636883339286589715564109924082493697654547230770141300110911532660880750910290195377139287325077971791958150772574029935986370097290598499452451932681472110600457920995517453533570789858571482892077805226628150974035276121539100923259190599077279340346178706469962323809818756464951251299974602591880748741446608809404459051021287903285196261664561679599219707029500032576419197189614370057379642765967811092071954713299473984929718810969136918815345177147072073256588196906023914382786173358110510477921074808711664091683220440951896477743594553261686016916166291557950753405289643556958394253777662827253447102489551617108319059331232096672166285718968883360530682588488601899549859436421891002887078486456142999188603445276659072444850233427136385612695454336103448898667663075979343783202418232162001397854186123381458352283702552142275177350479249028246816751416443624302766007376927552588296647634939892379963826225331358127222086996279541639719013237935232141493939311797974489609882432070540708631607942684196693567450549284300005183740388962924774328576393818224329427879342326534702881285575558701838132745766798230875547304894998888038470534170783834733926944245659918673547950769338652078249512561889840695227521085920644953105130945011414968367109685443384980897040591379623734867718493714671368079679644322629829110492401300816505633529316029538079647160798466741143697947336747385152100474759055094095800517014047188027069886408654682659657679475961462878515239285951040449061434421354359130693244971532454261166864340360970282228857886096957786624773378439004250828738574007703154899190090769059679801252372101811987242063837769398801422576256683544871289470430589256545953741078596573757835270011107805455135555971428526434579715664128348460076109947489401155033504458353773060593852907045347962630482801913331798743759870044908655985222311754057622199283124790125085677699151022972295677758128286675395716219769144280911310555303738407835931242977629868076807480037733444393347568534344616170866247859958242512454163835730352503782018537909935439931288688630243663110973856541282731091281034185479692689955724013712181117043731068133827484823379653331857847221497881669419245288454539861888347244007665081370101953604117172429669234542999458425200827650088864471314370059454398879497339266495662597721302552281550948661782139660964470699799718182902905402831276783533111298096612606515620008734091159753335849115764215201763869058469226987408305763578679127698178505513905975878706431701223523221156175006548788335556777811061007097392636854834308389087503635905736115074193715999629164785569374666914849126947582884641393031017718697978333719528946249329550252183296940969072375839474323436895912544332932308357231525021535892118109414957866700834459645214701529275449705012180367430133892558000525059322840392809478687100956401000163384815597297736604509692316229244829722143826798652528624334447819319387513417269055844036868421855961521857273349714822851898971909805986775780003610481739679650773297434238828704856538242960853939039091397842483157268761934173612813239045769510245731712164295262471140557448493328589988310062640460568743014597709027767791165971167062530599172371478830113372749584739870893316033663609859340321658967004276359514206752575978879799831707782228429099185536156707279135372344693568244291878723471384136157960534410178355579040927827737747410877524018650629234569085910973730747916280105267434951428694401982847777521266576261147570626957554667300832449440356543399910585931757447341766990053978814411566925833854557117114289478866501560328076300531215602784551800748242849523936756821123172298388128661955251372463752516677194883673952318118178886994456609785072289433228820200409920408973525550150471844860228197976999155700105268099776114853345838276364272503990224063122569882824571338844657433326358565002695706088254937688878431232636080455009188456360682261378233323225295416904073075250773801559943564649362033457088062129657658207659991839494753016870684339701474856137028981446886781408296075274391072255772943357432092925969989722815940387575688171973790734878863643154936616871106974078622276132468521819340991172095129294964184435095681573373524594681817814438767639188664410710926934811859135791467246505413110507163534744743508089486298346127806603266921789702098117199034161975001242958149616690186363196520117341582651618113420282973370408827551764368720634825017635184991422661881409213601695775390868172046331072933479218264930961657514338664714940650430123453292318179620565290088268787811824374404158137167433473884497725536066018893453272169437752509145424850984078886974441594224120287129905734540124197237577915608182642668503006280833155310469867674814692032768541593820653850594114400955808696465570765596765954245215517345704455164604411456198859095177933531070016563018516344585627717289862266302509000487225137894108645829762122648606029020328161489208445902693230829511188635299591905982848684727572941470252850218176922386704033191969878995699482137476820122219411734966410070107952208355925167427761321351772717217681591797180514511714803242396541947198725092947756971677789950739487840394647611368926288359034579250803602608042824949062357668822447184066622647421672142937596265228885833881839694615831613747987242895229199865176814564912519124511393601733899567837883944287239355459503544033846736476741865804819011648499180876317124376904761683653328666808638920164616086609788878522605270237936091578192006981570400058482731139749033124632770619010070460739288274226206954980492487040156722201287318717554105794214258517391908489884245532867979091031408656319639353102435963650078200643055608929316830712104528525950428774457388805252261731588995409884509371028649551774350985499494244441091486996165946262003282771679527641031560003285746953358597720089016886474137044095364617691849589960716087372253720421901139965658745123649052836890208126430598979441498690168965151027784058406557057067664899491764183571062988604934252439855595156188474640723605073979866811155328516833233301223315029584977592327201096421779004758066525452746688233968765012273329134940718405981804594757702740451923615282302727723467139382781389283273493545407985076457336678302986477214157175050562142754112470634152474859176737458223418490646723692956523129037168721604649944826239468567688836223321250152848722007194468715744517945414504700250209239591056225711980351853050304680669591226400558222281814650947272624968444525866498830204893529466708440488727770554166858176630818413382066068286327271772432091001149622866644594364639909235890576399292890479310045596007265374946202338525258379015771637166015619531610695790383134930661349972900997382041786640444995812962605354493201766106887969774351748874941586030788058892954126258616448219863444571102109381399118946068133589662916025982225017188157820069336076836982663927313168988189205558903637790923396794739529796141415103533006434410040397889363825005760856453296082675636382130344203783801313211585462645809652863727142892243039519985644970270581112030224417917196029805705881853416055685239874026389105601489912356855069557648937906963834669879893909514072843601410173561171115608676894014210643908803749510981049469812266559155245963549896572905047473474454060682524897921964660967531158418228352842700337072171100042644902990371415951906940759207175264563623326980127295199158914905083127765925000673263920383656511093482754718236009366286677724952597799822161881922248183035558620847929496456408043510742121412289433124584735596831542208037161857961645825744117944570767810769923502139140835432636665448387700443142944517436590055975207580255846691950027695688603251176658906844342020003176611784685155684129209284110166568261150909046126434332438588710892589564897228258138209034917687113514261844372921091280302741997637975862848867778457763743542964123288957448546590291694727040350998485445245957056036932876479493008808513083251070690477345827652147443197139190176714982236822311147126985486069633266758296189149966866936513019938900807555530018640252827542190464925789696639848661617656579672895960854251347562812430586007066858543331521392029043212204259393551666170816491180912385399781976326241403012527713714385474367759270986227519171305222009679881454944788642946139239629845469941058795068793695017747491649801296431930042444481693943790423378188736985961879372600450454518419574962195356566669714629313790556318900699710419358127075232912438247939084411134862970515290824871442236729501314268755976403436636185585961487761062239009883816242495375077168895950320942192994393614718040888275795916358783474106253494136536314837427960164288243299101518954364699666269540074706933438174636030625946893328354670705585996679096753264339406356092396765575195432702592798370855377268193830645664991781000478437541911141292358295077864635229239897913117736218260175387630203114624888830181857072079100716596048866019406266702852060012374184560586467206349129439398714532343047235167301430727165328483785021868705623894179166036928072742244518628917192921394392532608113079841055659851918827140127648317545384913825988654736010295405675743321901950528655507980079960068244345159188770374542196989892415878385019965346678602244930267359732424033746463434071109377477846307434170726147918353817489381128333312403067617222491672087581823475686969232333386346541703755199402523766530187683069898323263096939273484512049993016849252393287330434224484464271789065835294369172316219972207447342466103539376710561261826042856160866607274590484978676996355826314478543273555882753918262428090705316140562484305617411857104911847161377343958779306319866402776322036946993053573749569140163632842651210336699732341015816777453574880268579473159046375605089371781850994090678092537749515781147565009367793947958305739216433157802320771819743231003084640028683238463800461266908122067273625366705459252869208346204954524489848115928470887591461470508980581293737695757318595773885229691108017148769118696661482485570859609543770278871023425306681765465138334813808116491947790841432471058476277435400386294420092969111266754610103994653251845154119962202407252437218838290627188782770952007239715736403655705627762975117952651787525952145331893264476864972124904772676363651681543282749874710599473748105958883607111663594207364207096534586238599740381947771506270490153129330437777038093896171319852570523436236734681009625590291788014738796163029030483154002018139178075335800164362650069733683380663714494957764498122526567976759550479646276606256470380763361758199049734856601783222584284228205469277578990595343019260938983234777913390482317900762872927392612300094622220146568218972243176182940820274642781669993348549059204699475520093222766445907155286742542807237190129577676318119729261176863412572733100736618542844622946609895328944951357158491271243465511979278162731198054050717247520059117810227277892718713934881054295851043000291497270899975968017116887683387105042368679520361442023300840263254932901639059734320875109472795518294203829809816961900930884486028308636491348673846451748080847319287080492569919008857747858875374245896282056570860256894589307488186535746858770436109733598469260129944461060575733614620690973108397038610924916956401968590483378132105891081524239400290877050512055739561292748679034408455528940685429342429125739578843556305671568355474452269516658651599789005342575134122745449926352569552891767909241081183944294020051819441565959762861250585144354172420798373375657997928729226975775156851835229194647765337988776078982072217110414243902949906548320766927224235147231505199092552670384043785698253331755209174344904268556144262511088447411731872141438870072207942568850199362089918306948062900989402415741966417455066751382161577707906459253844710673921749142496204422363769746321872448347271781115806215950344158540637452679682654415843861002273976166156522677061017079523088519528913691793417313822561533505046117610919100043745775747297688198655635012999609037943512931048942258196031877014484299254322228387984604598570241869328849443483436605895492414977778776290431681515276614017171459575647687424744299321090204302836644627561783117500340629323391583354662086074652858154048587755002743738373288846680321714300633224341605254624267217564085717890428011044307043490540404476254956213885220504087409826754833555035192961126315334493359497563940321203391398437430355827132187405649510434482722795428004078310422151182403288463008404464915382931750924811577821448777110235816083484540628894786131509518031289139277853692414505062876331739232988085945596073977680390507160791951123036694177965778852208718837549949298473716849093577449071760468387455519999242017594124369508082587642299436920587916774803747654507578417469295587094340783574988946700920586275240773101788452765840785055198864776560090686158937214092104112499014512832575813201415057741355889935932356869601978799526207012737532289951226159311158906706551456406493191299818349005056318774009643063093348638206960823204302132765375349890758582814571218824358755480894158534210936707132719659294402038318754117823630341250571727495432099201305593604710108467930051865103917553791270093615815887014508872352283214294631450090521764984881830280008775478314439181165899997019888752845114951405018798240552802382664670823038731780899878247588022408813551828003106264250086942632044103765225358784828866180464825481922248973531290746375105730491722582219298058433321023626466414586184771409056824838755826803505575046084645741004154881938889782570237746451982920919402114119409878335156775387420196975843884496621736483537170563135860660053813503772634517306307561472969076911811278878870543307545496550730368095227747425456129321460489847764773708452060992641767533179992108767713607586431078346428677920833985310196601478466962941120593912356472250359374834283921343131011918612219902242534648589082141709917178295532175994666701451723297013444225104998951427073447050519038896130877359388713412613363448625192252224041343596127075426519112946443179771831344363129254604437056472955053695373771670930046777575877713864490602193344203887551314825316427509754940826826774811466853605124025393572418277931873362253743530464717580068211197325227988589733957746594785462541192233459246936133414656330209803454156088203845047247372929902640969516250314101602370743414676729278438849375727481624538900710729871681470640666946881945099870584571917530958383337752787763769537271041228165124664908993126943932121814250298935493940329234420959454820277031517746301705013174727451811512320069110257078621516996366740364222328494192281856964956475204508523536107319422167989414271287510826750386991729527685564943392918528351766401867251473525945392336155616438039447906450884754274862741563555159568617108105452801433811561951461819714307320892958997064445696532217778529488773491007311577188798239917258738755857811899522559286607165527824499402719848550200392095720643676908250270560609833694283461268530900317991084545510023808958282060503908982296522848649623070891140694510893342016172143167488229397891635061780913414851425721704353351056772962338345227090526324245320123784513949075573973215711673785655144595322681177710115194507520622150241110030705197600667095026797907183060448838758819436530316182784010466538120010351344106784305622799729756676851355128397390884611877832943968824269628321085864901198779056619319135979694557482226439159629768693841897481617497831315113644743771793331683739458881975922874360115973745164824656768437989911379189950181729361020864684131110641894218834581715120000428986396371404303369828652892074865374547798740874848606225039856798173902898243657794632628556190645156993095435442599014160185725631949725797692374992667866362854064160105496267816631941488728623167485963232576002814415413631659684765453278506137866923170820648048320311948946877411967706793855723160202493227096679032046274123450333169851452384624223619147596373003886694350227076969013306941055134177786002226193696660005156358360704136757127262165587103596175269388716392932426440021193726044866957653603870941679017449115168803448022551279661819117552094475805196686321109902597188288298051641439800395038755683444812098262146174053246061028395457021965234486276419775655714492343503029648832020676646946669828110122805181295025130808800916848105528359265014395580945722669682415197450061802312515885141976151131096047699610973134659084882565694384597642262030394721234293167839505875762212913242083707207143362398793309152948099621280350753573261567180299477050894179851686012944098475344028580128799957686187302570075774573185477918947981061783847608739614048580428525601929772295729017795130265940584617745474974002023681441041041262959410589727654032488951447214798641400476952542393588945795012534319869989803245449009636682825833379380721690346729402500047252144730560987379893246881597618439667901980471333445811090205866886883658086857211071696422394517255510031596848844425207232652543169423662529659181905761005791703176620712055719179123046897882913057496558108564333063567733062269919603515195378241670230126227976598395404721960487463951881598718090702490650543922600769443780244106371334383603500441855038045309535987669376965304866756206030854258120319143985638092812616012854211043622035198936660684571154984596516481116156716014406652071633376346867239169208155914054098395224765111270833782338035622048206513717541056161590043869832259938365677752404609107127362641563330159486041050619477321667135084701076395789878649600382655108814892359962802886732136724130251460657375684279189393509455173306751611305454557341580819407454662659411058237980700266015174914235140914178291494063496037419473026440734097544171483983344883900966051314596055424977704860542099349171000284354736574463393372898944182426231719395678373841980588708132701741695061913121005741714465036944372346438739833288321389721351311602862305200543228367444293649762866689723489203012927615086700413536600712987410078715936237857235320283543236487498833257930342613251946740205002500891266877338418742259471672829069467834931057221421511460599031400255806078372865671498969770644577506268887546414639351363713657798242744937289433392800150493350442873429983535907767804350398622038633694911831906040534890189827474241668136461235740481283984195588514963870408108102391862990746533871375146127496609195913741072526190522224675367971263970481199634650260439184609678843291120238536898651974179715808432965626394983155093382932985426669117765038672404389906302488702486453950235661080974431288747342671994586148263865718967813372737483612900537392105828099148811227255922461393480429675203715729714740555298622208202341970249984050947276666633708691067728562125768946440571747591176485659151639074195300532269669478736768971787379536519481075104769229711459695010874126950982315554782441101448626219383914650048158566002597354227372932883081570695215779704030044538648760046834013483052192948803039574937009015778994522505510406199632032681021166610217744283614650500872061974541023500631483073875512434724562280239576921837541808548591232301453872521105712332618933315417923309351801537448938517312120015446122286421536087638711655107922006244040269347441604164136076481159586755545148122381462397137071473206435395490511555456059959792890052802559724732155753582814802604463431748448683899988874203563536502854972871332560388319567759347471078950686622121609498582821594053167613850423108938976504691216335032583718382493706263132332430383644584964957211886321591640340290460138226927593906497275298271483019358512993048664759688700030308535116955996977585665344548096812602837397929412626674344540222107186849757290209796587273166096217664577622355714090664520610248197097597508800787268350886344155965713173315109273413167625513693774269090617316082914122039438480415026733587268196011449677669006458180645554310954394973833978592574204363218241975892353185308357752142962929768415531941033458045383290390728751990389863448449323702241530078592344024137029049980890142103655721893092277592809885016723345266994292548405824613124155552964117513733789221785744794364059798754049633921432331834849510280459828398572717390929567688714168076745043908487814476842739440988211521531791812002419277154647068457555312151982673142591563019664992472080422476922201749104081283327867415120993091784830117335058030408356382215123823765332088928772890169237439234739534780281820744151161830531178248282469458808598257534885286715836224699239331870435682242792120416182325793238303646114198557158600644674352795456069861150254320790299649703253947309682248561892436866651289288780153958892436811276904400799576270766659867927657665563210509345561819308482517972862868506457489270919429589575324556933072052878314811672626178609633891682399996181795476123271992034022803224006887395436590274301421020269274099069700788445218040926340237956129999699521333009311745868403334130266326027155343942437241288935464346625844778996972973969900659068227166466024875783719365274411632784350924737428594868638693649563475253055204477508982935553878649224877567158771878126115565210334844440508167140519284858460931298833531922729064626198344000674672320157779737038716093138928984391549322163650443344591642457033308637111768286457991269703547450652385302413016294133944095907095080558780477220315570690570814602340393703365355507017804553593680321457781212945531465309197188165043049783097941244402240677764198355780361936507115551788492097777473563072612591959491698737152717701561772571407090719786113666508245759299784089044947161429119869172043745733462949482206440121233798076617741544037323183835705849026648500109234901549336116772141274913980150684366236819065003453951178266072086647255536651406551324193450936406637793740502293998316067201738842995219518052457229970410825556943231689007783644405703566830015540161102718365094331475332205806277454999841269210668802747116225915197853496285215245167194032021528864851503626242817939818759332196467581535862804221158257271381864871933189878385646786761663625024021964151778157308483904530927650907965345166320857411189257766765714935672505542618595684673573147878415992653737987919082244420131935293649691495968369727518341178600021841633642488785038400357589128796194753845477133665922564166955517396863669226084264176126356837427443385875794243722572488643882785297018007295153727959849778373172265005820603170978774753470201229952710087557497722692348703054654345567606511163595682203340586894907322421959577792418587293606506893895331365787383876029964028274511821365398885901813891298046026240154069304626171404093336860098811282953569868748592676274765979533168060991873116880399446831939993582875697132726275546886320162574503131238449277898014033457016302478964977944812187235890722851277846335583761304535020083078304553035616193534301642975579959971304639121227930085924042671265922202490139420815812281508533708320446648615684899738373628994910498399204229553083008178467396907787486477715062281344041948053832030098283098795412858406620881142547420787561909575150720764366886673510344855069592505852703401512709845711869943874964814867679036668130206819696170466975169296909744716837889363016376589230117967511840345805903473110395239118030534785334664690313623482843761170463710629366919979802431547065365779957710903478712748272208985366432430096419192613167757531636105429954823937426613015305922465477671889527366115197678760538503919935079114851472621361425034975921060156624615693692763530830593819034040461992932746100666263248116169882989736826614029303737803111139607855802133817800714711852354806592477069224589522090271185961336425094139667265494249910855309066594258543655461972019609117770396435188771687039329260367439805049050822516841590072606059767789376086031545980873033723922594844591336237117401885182703703177082821729050336037369282270936655620470404711127917843399150971935109812799603708288735788184510773732257586540420020277991105814478038379112575122560957465061488983931082854221296387038960649181125233019682703618530928307344329988963256370616353020070739470401603046887509258440587158222990055178606425444073279127542463677694236377132251002937386186214049836627247797674699165827336800976156591243966469255782767789263794997427638519886234823531481482916519457988591756137093886239572990045671389864799354356088454204641280403160076358773840720302827224007087349502973071145400059600027910436022664719661664789359372771701849816729433355874808288117996706024732891251850703834818879256461335570637742580591691947575260388041209060758943497624191256213818058701661489887420569967516176201782839294827009512676127093596206650436043146427338979896151889306005261335254857806212870666507344620813555615336379809918965243000914255614126522886469469042846268109146464992357130179933544559970073261486583777011386514979320708651197203202385316220757606399405055140953329708111152897709475237598348753000960901865826971843521229385063172185892837273735940068827837821965806630771406800772231229559766862400855690731167211080987839174826467900296346402242927639040433351851386798520674319043761100221054106714232380789260907739856023045499806388180473436607867183483381815859146689078608613143645889215796576287476890462904456292244635564337433379657675040109031467025072003272228115940835206347691624438208534659069765898948278912697394022749112233751707245401700922722696819156153477179750937330752416424714912945331826456869962984196694996916516153101372153211187929732350239527917657780100101183678121203082748642217780380746331270685392563325229645304280184697149774978574323553140125235921393490109660267596388558064861432718794585127571224186319932356019387318809623685107333457489517589675371380037976203278750025105136339599325026869499411214505552106856522415108105809036932090158718863096120763363891855039911330488070804619808218875089910659563418407417361594261001690049749752845125291705594762427267927958233666543529162527281063476706120041189191175825699685548582288537299225744482314719307433835531406257031759948167960927025148234329511573270614361810234028459053687163433398806690905553052501119109713736003233265479218236118038747683458091162036972624659075689701728186680220852063299190485776356903558886859195202645771381874712076515760465904794186647954237798254822942827434666148408863239317664503856697873365791510162232345871681332748786996370453489406105630578998733265615565582500907792931155527096415903608638918973504078311082331934711287842994713455018633489370421912451104510778437725210338219496629475090528511356638163214738104836541837940818260276778409396335235875743819826232535954667335850240497474436469759169451712385034990067296807156048193446821088086316146513851821180433540831728113333154537493571982990358714609096783048656223183401296813775548693247580481454914621417988978922452438389653759171839503329258776944905522172306153560746402318740959370857912612450700756060780902678012090562857147947478612164936281795996182366574834029461301132540472812960785800388483084674806658995345532451512746151532249990960605974665213281929493438838468529899482543766671619047203364954713808644577062549181136056323191548239983484422934014554269637375644986069790742481545007810112888651377007339218799837117487219407473114401890095738715096254133817829719958406834275893116890979067842085000915621412690716722337277291814682541237730413271719553827235291967799032580333918026031103885582972619863024738222963739046116702594448421470104282284897320733846292362718705335683574695854867512433197493090778065992232843544795465473336271448337272653944395668489268355479054233202412892477542680421701357963324652581730905135702611103440918127650708689713296141816450430780760783702938431647898284411427546169565364142228463689006932447716049612626180292033434691408450423306531720039185267036168359816222472951805357145645110474699006962540149360452500680229471463599694557866692122519110030760345268179561883464992530521189321815359693813104003674570448298494907634330306109580754721680314121388657304885067090848238179509326783070464462154307946057311732527691756593804480374884044538550179178657607426260473488851415981912540543803086108149745553952252200021777959798691537092096934261201893457487046775131034564974974473748285824471171856435964532505724780135135872720528896209033715438750457901183079276116492080382900706805381679517054917930559904920390391542969456060342172249205510883379091548131779875979658258220237168939374145098054489756541339926631864050330460995214275900708252851785104728792601339299478909524557314514821979732850147805398765271242751112854626110657731775839461846131493902962754453850283170186331393564500963607261542809259378143974634465805180890511903796463368089580308624337596047250284241651814217775020144777181547981181799948333238908190510104060714448497491367251132123035149466826495794637122859577658364238207946942639895479913784743280606577254685148656091813906414186227137223577514305604662102984530538466573979332515363953839052135215293881187232219991537013949286189142346010081352362762247718906539338450720828864307240688754077694257563781569044061817399796096957577816467043908111259487542390496418791068307691307623431484290242229791674906859946199282817120835340090534673477777145969259641772719908574444397132585984690509329746552634426894383386975450086152574770926436247712989567095973027071627617339782283793916564432983815823530892626822357135125839031352205145724247418912253899664365053235995087344260572768464089678766872730745456733277540809742401593640586053239948868087398966298180536317871297104246179888334547707537670049164154675303858429211943868419368841406591864352929310050460076615604083822297241864794477083379258552550753640333305230774430971894626222023151493814294046576556900996043404700622341642499451824537604459521417234969894148880723301889269002878495985734877878427144342442899511707940566840875923101895764112643708743374966972640192264600389886153127352429296089970490769768927925088901292657367930293311217713240701194067391963026182743655271163726705916829664680063695757036014535748876911673833559145610407301058904815368364152382492395963775889751670522633804927656605893409361862158786609231552120960173843515227174615074968858251268389357863541000614724278447533236621027913467587118546718609448214070358808848275875731221373657542663682709025202455413744493803522719654142012334375147593845127619800772424015595235022406333632380730670696193470802426208038869116988391342846039782540400351484950714162586015842475935046758175882550621897337226984508274954732804740496579481185965689951391410649455360576258456346910232609388819657653762087537228446669177073056357770855608195459832538917528386540219442819627749758892295317298334804522709793327982942134759948773085635046120511272939201405511277452885748236549171829035827797706434692277854670342958116991212645044394979844518077292452255678135057280192063396621208523928309340738583522558183726757354812175656158028673221368533766004968671289062942708443730259830735106818282132519328496862203056180277166191324765113257024784652424164853659816287457684050079625626999494411644649001416064947177543244962178375229068916545206256026137262296372647873064344668566074090577011436917446652383843029357595600852124773202704797249296222440777515605931770157175167148106728041431525516299451999547004812409385265949011554439849816507603348164697952108916427034407228780495421619691689573149011056338327188082935723909113996866997111871910177133995679671616327090300716339613943179464547761354107383629996882032670155644711492169553925705244580624560130574758494871017815840681551598777142104901315806193880454807160892121941534638122177528291745672304584738615771056897443137794652455646391833552758316412679609279064775222296438545317285523301596483601349670564147614337148652583214037478994568166592281639776673967323770193653611755785618908996020186850234299616753672103250649235129680243888414648388399974019875162000730745679428438572960776268334554108780932548072082621262789087694751028063312048256265513374080028609023344896271435892343693674150996353023530173429349362654094515942824176981633749740613316165741916002364258881972851800257929924363796287236596225982819262285254236103782751275444139786439552812057191626871681207274566750348701405241731047766696736647398296752349380723244315142485531557891744875242720735563809479733921507074342905439014824378000062746302606052901338851224910233894599499472532112236283908156989327532398026455463908501789165322177802703605435920737611765391107890180414906863080667499191559003189831610412388993376914680668354144437778858311718542738816589284319205507364118214648083659763252384974573852646638447338290962145073032298236588434564986427214504746419597398670653408220378177043850592164190644500936320723830808146818661419744480167546885740669385781938662060525769094311873471136634855653932249809078117553590035763573338622940644374173440583173617968986045201047878455496541102516557370827884429121483733129376559956063479717361653269595931517037411729038218381568292315048387088469776640571911413985614222005860078351821953505067617917018770778153646820977244699433416259958519390956522633003417614829154711426377057425251861379451927395597059108546510339407946315809770528654701944228858149713763941097805040524254972438604421386706000658068569930607203435792550634767335317365222540415348625470808710894077943536334247511540642141078443180832944065379781863281613723606019120606789831031124248748399857260105176826948725159818464202797238631944845765959944051797935406835338499964946030745098529057983318826124067024631081220547510092882429981995900673939462269170786058331502263381293865692504323447375627206703502131950539702404285236704012814300704865347528594090074606776926695197153489075989039046845187472848008247550389345627535527861121002931161457854188747044489897681856470449385624461199960368020125366045883473562641059599417387724802266873436841754498507389154474574592005011800241511826670482211695214950181939891015688451835451471440127055156401532300886844588458633344611288900688736321759334811834811076603029887755874551439816333546594506337204259995070044978347224816066615354995155887321194053673542311153046499269191014302817845776230672508206745014869455850063355979669383838363064163910933257322976055624455403279302378030905164325995930749118958453261365449916157812501577499179947798319578273613033483015002938967281154513249969769158599443446307295743799337043669997133539120111991516822959792631498680372267514909854212181263036252221622416281899806949065258326975196716841596005594435402584255785760789661381466413964952199266547153356295965408318647579469094608184499899254077448058031028845384613879687478023708641040744452406449377333267259955510721929133313133979480120544081968054702442584170195224648650789039388321649138149749964678698969896755789842995464927244539083905453208609023179836005218121414224331328322581311268915394521136050824959302116854282579643537274108187646789819184109958205613358708491086888239701642117535630919287998070303739327429347428913268313450888132804208548203348630781104477283791842936737181218665836593075743272940306695045279083482354297459745520585393245011743714951122745754114155868581214358782398768804721692896321228967584724430086579616664800688164990709621820503180103926737895621588244236414372800690355215546505007802263751670365625201919942740254910412461795592587005215808074612545401142173858502263769694169263927144844840859930310158154790574252746421586977456557140509783894268734416332248603970667346016298669064449979173941121868566617664933178127430537208061142724851638313426168246818175341424355132007695819597068461842532620252213462861350700560115710244845194575434648121299635509227309023330880319157864581709700706746469709560882740205433543558786574881270951361080651290199359971442554398317359747958818769645672902308020124068152307456337632158978165199613128409811305259812998173345273036259151206520802801502575288222224243702443035871940974051094243378643034613460193673173003919544607244218360467137992606158864232715111295338800495830311142686052383965316047164666714822118134184138594676278005988742672476856582189156331725036049549958978600887841650934960148602128730589966385809865291713274529614359532401298684328282035665626340342990707112978276495804462663529639307874981922022616164272148700212590603796565878909035960969852573634534733006086285935485421477901716013612982070381835687517236860854678835141914270992450101776212674065600779886797384152138864178515419503867957335198554016424455729015928959554627225553701847686032901165638950376022939242632474316895281487718016733926447992188875081766976286147542017648234240182526632515946026423946102188331875107350318496537735663527951775631394859986819636531659089296040966640975594971066958143559037931085166888430940002984325763606891120358296931482916088410883279232334678561099211020014400973937657819525273001095308993971399642556473900332501651435422885779096614169788537775398469793138497514069921972627256285987998243208494489698489152545469001681336656650730818968693438299455754886751877824863086399880987053411614676442484958647077169333577677495808213833099501716148900042393051013317237745215964333556672407277733739084511938538385804393870737668561872031330769046582769275272759534324344265940772183040093611055185858579348836575384964507804007650528815903252903256381959106050853045901915626937807750818911306398067905560031439579885637505266445663160439750051105472921675146147645442884750472824627486586362368378026623505420584478137876485633733626239009144882026152852788697346981429353109935957378942870860428062806867240506125405186328573445391333567848762309390004422582394278633693238078227263653343915732565886161499940459714922202814977913422601481331883008323977411706532431101390367748260282849405710888656769731320583571865468428429205736132302252099167638794356901395439657591526072106327754255852178611128588756015900788398840589419537391459431443858844907174323789020751467672479684615222463434796640256919571438743807982389778583810989225625703869387066450332837056675934657482351308425653515051547426711590038254604772356657399326435127126427705311697288260483864351204648167811805298171161419132168914042440663395839285637038994981882080625153811734541169130538970203367324520489602770966699769834195412874028689507769480116928075960275037257210500257035793361547223449753638668284049923619772354768800297671305014394606776287093901607756813363138957322932282101640300499408749976639880624588338420354793090067422369525370424404712034503931152854084448127615321763695661479715248107926324432538408064069787175180528271900201013583599271239129459978319247839910556117531489970148731889350598657655997905191833862754919592718555189408996870466363522016122450636827789735827679856824105967267740401039168159664001911810661939109824583658266973305678518556584614648514164204104268875949581804979390750451773876362030836282107360858914315660814063020196833876743461261097017811390566202362992800628669874272238001674056593865227703119646734614265879723277536198860076947658253450573521214319258791350318542896002711670945194611883020598438577599417534470360838906699377162782685719041932280899800131721866173891516997809055279360333625986108481774024800277270013840115059320801806465570976415825850902818873519965097265074660883485222112287369447833292830045855304878113277134202269401982041011011246916545439359850056782795978488710526833437889591970553286897380091149311077632831349444292585083487388107513120283707072337980082227839864385068672871498414999638836660156890633156545522388942303744424955633233710367774337015028833215550510351163751698274755557056226247154460263833546473975060943728603680430199652952029586867460665895457611294659626524801150730927642333559038194918332432537963215807676779282542210109426667690359788169000169160633864150948816390033305294858647895668338771646569870317960419616053868066822767729934982714347039561489486611225098757514345266970704088798445850375511858756603775084746030641841897075907238480056019115479567763232243150080340590790029582319951341842052603048718072149861850268099942020730404872463302676110641680087936291798347609364694308805965726229238293728160860382260893276594402081980296158392112368705504981987407759074424009033830460485381696969181225932416447514473753879832763939584585217753929607610422146189866121383259128432333245207592414827174005134113072591723137780770616181732297508188973487869239678575776574418548534370834110277382442621014390639992599002100252530812480044532173135010704916214562481832712224671588244720084579679754820679797260448632584457427339375487029726474645927282957587017538983048901702708322103140803336082475683180761098363948056727913665960113610436734367350260064954563694469217739320108928269254679622509662215054507486369887621346094597207512742462286631402280946880335334620622458962534055434179585751417434856287796182740768682543419772665099830756361609878570852976634852563714079660254237026081163996058542608016011516925250622255273675227084849371747178668600217681057102816036196722878046967068167170730937765967206124308521779061075337335296368096437333374727970327045098771113815681279118552790322997564337806313749312207288106714295173234902038966701183804893306459533901506531948391259756325679151020017688040720386362317121386370376385748658955503735559985503801162846586344732630846971087409671790179486622657727005374242900635642826603020596942810899510106031458800053132789083875286039171987005107212989947309348960598039839250958963364829693108535294123264215192609870849151498052519826323173619628444353445637062553271984733392807971719197652561281936351679551727830674436162852348071157167821222105403027879693509639840432385395618038335885116799889541513665291312062256056671282806200738076163024240447126972795627048150910985465962049385928198997532521056221960063947367080963860830737798085116294648442545988985921865179959972837879644606967187028276283928209961335167210894523308228916597999940330801203418337544594940794131591111829995169959928609861245482189827663438152305348735247409522832410555480592251418032172262582102755166912242276519370786296816848876782021306583030410336535526203107475988415272297148593444911801660897341458559281235015503709553454772235622548597764492406439416440095801430305402235944686977945558006006561900003558462987527441875085942310677267727741008388449826689706974735438198114658586700961749751827447748753916916400454433039276946512156658816780506308148464259586118680190045020764110794115681202323260274275680092173233231956611905216732571945880884432050224148594078336015530336932129179229095312578520207454995219361083313784281658148932584802249556873433260195681018476653357377286627739176291779477597845928124868550151961084681058113800486554150771275473479609447811291444030606206787137710107469657297492403455135355299179609480143844722909838950707933204324162223021675376960269800945349863348100924688194421368031153929559635810912173592840245180002332763702499487970769789750561176496217860716160694384927900169836883463997488678772827886300233273660109921370936609608415965019846676719184910075502573795074960298264772208657307061040675381493966175212151552726781399549249900879037936544094495040762998281444581992429257375880543304518130732411476399024160374957465712760900282633582030466230800620891518895551994898167128542898668270087753957119949018290305023097765196249588241654708124704282377278232747643010113789081944604226756691946998548929873430801301165450314441737202005538330791845210271870200973678986285432363726995510927834878745534563948320070077778475380860665514746671327805607992745802988965153885593681414743728717466135936405897230199177927914856525948842790371710983313053789387463930461397371877932018877787890428306052534943420589170500469694979463044385249443771701000353153307577970738500983019404301442512238050325557100513185655920416787074072546141925987125454979148078998672978121504968199954133644829655810544934807282361667835147776985086883246431465276304934884753035254782037098493499430407010099494027659625363952989543430607922409416097267477558155454367990029486088311576682774633351383302952932873902896539371034714635773623681220175555849825506043691958223883247213547235237558602396735503267524435226337587954719472356776348373020610963909042946177310548080804495210658591195780307496804043106693287239710255149676611802002447855654773784947715021499405504981753088403219488839021188069781144509362770951804863831819041279900297004573070087099043294613233312772461702907759164800045845797928525649679784120823993649997578349853584683010425442112373147644155045043746768087340359035718879664111146454525081693706492820688641735895708624159083366565746298641506446278025142107850167423136062253825171815320192562192912564929142732453372938613600547973740543652962522326012359486524971983219051631180154745989457763071308181703545775180324389981653714881073542024601929918959367500476509044934833779974358131348153934909494924822293091265891104007976839183517886442406979030042780514925978646858130303028679008170056578616900953784978901048393018061016710215053457259974352568592591789365026177909256290819762368064815080103856659729906952241368884482297860226651621604746514077687907203002994497290994122437056062520043067398703412435755089362463993599057508782500752945629803851355593233695307380953913117288746349991570615821122090364334584706285560580948385265692106266012172929193862763620614857335605116659825864458814085807162038059513859436614188799039184706585907835915355053492934401754558437663875966657722350967701677127956722985751517923732905661979649031154791006908942476488489912494853887997320333033693949305840165708468585973746917050951636630800145177131631312399615678731632096394951898503497188942216941723327420300514175336525522423951013679485470504427613802599563407905834755496703394503308653963856352055966966709679594630434935911871439342910038848122298134111799711777508227796444919143137260486481328212701746587628276213903285562082339360218149504958472114782417080573372615429293444037129490392437782315130587928305814162089637786827759352944299719706257186267905516984750524294579515775820865209789364279388663001455167862690205730243688145330023603920463294997048062465513358009043328747322793982149711222551563222033109081760847187430320374462093917917427247322889510600008647698347445182735610646101573632693766370881855376742817640803178631045878610977117372793282178144510662586181017922723055611962514422230917433511240614559249630955121266586768395612326989179750105088689553308116389018810336147117805404212053209699401896457478150110145051389960542053437491207865178110410777818540627284714339935976558947562639649903085027578402761516488825592099429679060910270909600858205822111615449096498704604450232587560220014452762018674824288906811818747687409846089041417525160039515395255759859601785748818774753349797873381438072890742938720375224762572486635809540859911278211103773809495783862388842248367324602732991974127682474042788970390349653556931439581283475947146139728403852243913158365004054908789991147037069218774914637838413714001898287628611177018403200526066472234063951819064511635369927007871275657962689156932588168147574003253543291966506499587977443108410663422910741069520764006958540759151319549054862580259903620093387103862461644843078280557061685605811390904185083638660181597329154057347012132547938087958811124816782275883157429708261677242406753938303420969479447292683314928449594112099805683681576981894456395078423198774637251795244745374674619709377597961519327794134409958945554857290724648494055766937200621029795211193517732127030896544020843827330659524104677684168685034004939181464403139170212529877185667204317000077784193077159977260334611183791538884763331652317021250399973554016891211056015712509712513323803358357349937794755198726741887927157989518775778831204944305263684571725926958638700810708758293901531985948932196035083884848229373218901898440335695504606707436387238659819651708588280801651245153358278682159583051673255890298218254998024842328249219234018045007502962237417318057096786496635553494142828990672490072809609644471292385767683581837066860590788371721071386036469904864362069991841243474394756255791005878814646152529055970870475386380405090323382928131522965839924799751072996193447958569207077606339457782732161945596278910285635096867452236274147686077832532380261910554509040700821499654957432585466116030910029591246020461340864615736805143458719456835757532821357096407464620558452307449111080742930014714245369904022515036113272748759820399955874614287865765529131832527745996248898390654619365344015101414539940748203441860902681120810205515288216858699210926698728632807126916003684224978473495226905290527961463210159720198022087640048467881070582684758591762633381687197469884343440548669503881504058936039696206198321550777595068905887763750623416457405924131600704441314875651271667504416427827637547329844022803646533430070509591820557180285180918008395584307239040062144047363146957478977936058521203990581598817335171340253550823774627027853206351201451188357115644771266857531552554329760642818498281353819761186592223669178373122009419182371849384114589299054431939122332350471372722210716203466130757584703153933204515337846972368597058544454006621192975519312378330718506353944193719996593277658877750889589792221655702106303077664077009970399611976562656102293220863150216854523372469928077468788257872540463568875263601643054049177202622015752110296520205757319337530255684984488405630186579337626949330484230928353586481503133085233471843612493352185737325102145695612921703640627295441702168132927815867899331869998697799482799825614269585375911452043563854927080548671128860514048212620507705533701941275789428251547408715974595798895941233392643863692900161186883641589158851315107361768038385333073985263068831466136480213369613123563955610199548571511450993128940009199408360575204283914441573758905177040268125261833086596497249263810863495569447563030733582102785891062842514074654603817308768910902507175173670145720844166606183689472853981875289825304725513951238568529170672551875920620981154047973104844478847418349931116733966161918686228731924743753618008689603797656019871827034614307975966138455612088079249911164865028180446365337732385961713799270370902786045711644497255872856257978450847407522242165743613865607575251846347562780800550615317560268391874683546195947250973966062315265587587783585640309077204043660938406862677699846388400589768141953897696501349347325252026345789867183648308548646973581289783237924698882366468751025130868443712930889540821023294294441363542408370947074948956089128129024652558774894270225618104419072690018176348474351927241560834648171344388961392122802959101101094945285246697825483365951687946383277614995818744331457030991624406216088926416426673525743054164076122303094353253525566983542829127470933768123244306690335679814749067951443782880295598770666575524491770696947508657275591709419859556346208373782428957256850689940566286557592743393878310525041532820572839562802193712817620549916498351217310609865628178166143450927487152616177127873284280395885440763212804085537956791122750439198094490368993365633530021403740923749823727611527397136002339896004791600630176176132446454127494985928865134989842926284672546004043026088513642557786984825453713275267852067922562080513654879777609469076519214202796102897135372845391706037574411997267043450407616578102038752308187456090258802329477973579346585036725291993083093116464151622487541668190735049601529756077792396522090462003791918254137525106083609073089838156348422009567956699540830709609637949086142895458732040111536509000282099324368556288455041701632785289988671680170792444224210931280034773152395199429090129975153249638436425851437876503107391997068350356783044554488979927610186476552976187644871955918901041008317822864438218911042098235902939018879999012717746504249735916957335090282770502071492652653628842352549986142755300123073855985551074162899194380148916593865740255475076140476347936021130514070052593583399583219792346825237060936470024107673574880217379821020625847674672717127336236023344608521173212383386561157457745779772207920905557258077061771605222234108188048215203605217594103876848103140355121846321976762415008994285528867657627377098322985932253744050405762438846609371732339320867629561197264017017500968846730968692322679161031746120868066374937726448034879841359213559758134933075671722622159106584630102964403173513690063186510643433678109240813662573764048702482886817539272797718288550692367440351130499114365683376974090840696454550753161977644148187451868414148774111994695236642525789257156399710297846135893006464905732035958921924762976062526632592178994009730314411431303920982232548889934868966692499315589525700524953521356644230161206512979500998558494768970179017447452415316156937816167490154308988695375388176440729645850863910839165530675420787374400852696114579055150152676988794766704950026064126144368913966663915202855802404086563275557592504098501602549914280095578005639116125941161058334665416078928368291048278432436925015153483140941840342101754549292117762665973499793096520796689193587550169250587075238424159725658411731830121535479418518324063054295581324333785094494555626459213113828336170573561173720323514461072641013112286679828833518028425113294061335099454195080156404483812219477136472458850593056390947718145286418029517293575463236907632644506180915510244915780966714205953313578425871965189576063549211675345505289289613014287838499381761828050490099657713459186385837379088828230065022708444219586812595584057778941210858734739285627259576377440539076030680845501736325235126053677085283902437924064050608972784992345815892257578996509156883963999809275699601500403949568234050629793228802165076831985310183882620004451142834356947326715774806140521760853054839360424534502505099364876850647735996746689576975048790677029046378060547167253997243965587952775724048277728274620893472691384132921841933433254192286388975382878904754769573854113125883334154848630951290372646224692582712025807086089288920725347233513602363568301037764161849855097842116267687993189921605339648507530865503272291024327031203097950063789656998873620976842186582916238120004454451196530774821556294877646532543234430139029799629866069360274673122676863825777044809371949059845618568715388864051994734393866208809999047498463614882639330504919078395241121601884630523415534974498670626834393339978207377241280863458731204067600315523141046022253817797260010706940963631833909270519925915465606479514502260414254062666560408862617157712851559540281723155453237802628167634669266031687360270923965900230685302461567411097146890431718493432736155652697879897393547041433519136610576138290162556559133000599264839626020883834766991663567051611115790126491251010900407631199861286726435586460183830970235421864485596541928353420384239440652109697325296104187241213190606501755465673939663621980265857027790966127598171712087404300826561815333324450095233322049781381230595702151750348843109166703745260941650421377297717410703182592461808322792762471260178620084011925348970105641383335314996751209858162416669366221863208217446027219504022597910115017368699396226864711544338339096699144590001019645846475433613332389297443560618994180516981410331644187751040510992774406067766984999798696156757998297524823177136865716012099672321674580835403347033965848863074573376563496309413467743976075840360330183996808802150826334850397833349803559898727048497393750467895765648056765040086381607797393964720271466644000739388113596278788058408518772638957304548730419637078562953402238664643343855873812198552077423816447452954860336763639268218437220905859354121014940356116628219824764903278879187211598458223973289692230954550266622511783473773887810441148479996547396847252193603720735068628807631332957661625165509117643355776751313826147391578580814543105628828597178000906506548595384596332081024494597406743742740908610194758642118575984201624511642391364437346112214761515522919363536387343189488505582314700541764674309950325219204290262714515875313732467646386401146586023762705130280084425576332876965110369478577952757781544295153791042899537408461642808871008996128307043424918928293537442971916800656728320249511677943421046504176931866104448317536343520954304529736652943534400921542018395790742662333618292906646229141420012016769894299169707457620073358826079689186424904108574036667086764477863689449942006011121330293344671289451776331735699287857755934840390283728012349262533598028875766680243130981424563662660927484458999228800805285870683773484363872166800083590681992583750520755196010335552213637866807358607436233094749312609596583061068732025406297010610137370289207793324052903813274084633137489799983955961379477002204119408277307278520319018665895048707486989388214478367670641831911765779347026784073756144469566158052795543570226763960544650617508884739341825846556281118240099757146553929485512920757042327529799033781391503525300556296829991477218794568501046783297104881341951889646041484697426572605244760571452751531281701957162272898472666825524731985817619288791218099943813481298484854102749162863892069028278117568812006372272556945890716361749287155570540807025445155750842159697600436508591447596529024151681862102924598133860367314881445039788859801713398537722706422010705243262864380784836677930812121185495578486131095838063560722651262265086254125716770547916583137679588409233986576540790388424561738346708689207874848474883931787479375866210924662932676349094156949503904640444181723664858889584669102841918369445166345711641411582164268778611211601534606339629822056703725368198249961836220846964999289059838081794075225982770840249613948162568779951926668264660400711681387537441775801829127646555009950634248315018326956360445424906279468157426302651796780222458569450200776483091081814445613334786811473576052879211404274007956229144478354357629654754817981851515385289546879614537370368302434854246051579298064200908101422815135819040826451621123191431015781258841948646897403705827766461783011313532218383147143938714054337082770137550157084019816795560034819990759016987623925235950187701854222022179875671199099336625002371127152720263482531893457903978341279410597848336764423010833785298376834798627958937507160831653757513300964727967842415571446948823873022674707424838755700575107631548118942531253031199228515614120903460517941213263561734064619430548589459758217087246179623003652882750071740571307153334199755677979873321403515745490131958012224620470721246850608270984411360820976928375216497625428184059632896592652374526979378713525487025398591446927686416985905041804183589273209297248963223881486417076017754105529367272354195012320524756191387668361650369363385360354490260015747644397533315745154609545126042008911582074013405415441063314902261802347868408140015250507864152030081618795871381920812365179718241152093124830287780046033404884352771657204763000821307081205928104016853055267608076678951759720131981965561151217690983832168308018214297601215448232510015342085357312678264027619624803024156246993630735358738959187908507841681258365518306216053847040421936008024697626790613173773846268073615576318596447853868226753640657956983988186180080428182626856654197906096070215119079360829097282715735723931207724354759572010761785540936378156475908946738212248883281760870802443913804204353592318926024933301233635879800308948590316151030096960433137821876304046827757811197562461116604025913317354886057056934911256333722137673426587367521223357657567700936769251975636109694159096806814058968312642357758779321302485439805999710156428614701925397246146607867575997080061856360348971163840964964367701030797410055644864798662593121073168247866907899792340866695424647178379701853182178787331013080696725641510751247760309625201381271610379646028605554629468769343973346965186074451523138353151619663447089932678356468697236373167862415390476621279811673082466293336039678664662548754260841935347545514756420632957430349316235252356526527529079067508369813482944758627031047094206867151569065988969594274866972764058020306854783722821693121016655893010376701725411702742467376452747318488812527299712518850666261246173580514210903475195021064578757147266245387237546224787638147467278304510124862111136345701142006422090564290728430463770874743908798034141006609056898773406974137374513899872692860116340164123606554742062466970453656447169036501556709136155726624337800937604369481795104568089112763393820615806815804136283228073872751633869481549394316619853799159517626052776767182521832500656810430396924549879715861252797718317720786142403879340419103720547000807282138922185372244216460256224550823495430224166162106128886512730044368815743532548264975626195182806344046139937405371799344141160149345669507199934196761760712949330615620602983871131120257274654752611462661854592035644353917011524701824491949164117089482516345807245315048958949275557635960602712963912401938305576413950970145453982319920004173361227188758042717504213826611222623718816202927286097986520191397008984241126793558364482473784975543518562076701148305215135111124716117153891046730854060716133128006253115552497869040208307447344780755900959154836679017359709414625020595743655691999393542318320153733917701796238436533404773467407949296617388432792789704023145437934708769725022175417140309353299141517769993786988635012939224646719126573669090608046052738206861356126414194889955541854293895487208252533579639514188991633656901445174790816444428661832080395424433845521854748755176519315199041742208618490647686214278131689340232217152108207444919013422429995229315523631716800775582270263856696153547913531684052097275958655224620537934036313656300567091147181703321166069741380469247157903029408655911758377192758258864629704554877322685757037091265961549565273433169103309894603018099815750849820435061061368988251261888368050681949105242614905190123951081446861978961731370497587190783547849761119906636826245713583103303997523146608932144298968354907661784247863283840983814981465025012495849236219008052360425682116866377238976729181961028264401354763329213929765311876751907113030559528979121733441824856205534380364188909083416079676845992304196995126008424099032278539393056428935744838396952051039271055573726192191630700046970541156267535869431803861194938013847742543692856008243030639961343846390733028686661504736411668003833121970724628145457469016878643897777356427895733155133646935757857004585702931151653892797489196620252820335239252187437184105155023673203834188663392197560711205974019133063710966669664346822484492186003800579883547089587007400140907688708907891193862725171715292906399456100783245243829611095271492347574149413500457676991642192391784337555514549014488113034521444531491106477297802936724637389416769364160959588417884131970897021109164038551733400742355579072760917557354463345567531736506081798250040042260394733884493153089630337992076213685465849936298982859867121210465476755914536771890424891875686969631143124533342596827871533228218270329683621638945309376216313334236028607311020923668848758877025598236786020892474799597191300721264168191675455086265524311486575290927272807003004835201051379062750646378696503338094019346393454947362641522670083904784838116646342467932079882882135706176163982822228272739847453991070625834314079258634927940967624553630084191971811308370097594050852864467767110365301574866948744380991325070413041805901370176348790540506570586869850808651391677163592883646707253654953799991239172521166761547780410740901649844950279944967976134286751985627633285195452172208376778383796881691819837940948413022735850799471592735972352210409356404457963331359207048458967040499420498766199807561528854547427913065135464607839880229824726121909781513186193131758010543201958118583537542897291077584853907085074855003978672342687746690352013197662890581993114704280492594634231122319350536453582628691754744933814266860100615931721782414437898299402728363493945322809344378832850497932961908801499150795974781804538787324732992799631982425861272371461183142661899189719565630457712978107122000872898637304264395011215675215988624240082629913983303361383676204008842221111922093294877165327913667739642674533138878544607922801170882761852673540779472046611482148745248805159476711424645550166167293236829715423195162027825610285241941316440092801734629749680987072108258442995520681587679827446802166398730899852441864814153120406003517724021837604231032870820623530070913463336405495624830114579196814892031691437753344907926832485170056229452967625343536676142800346481407160746874453928748993576856857373554622266449403311666142881853310117940134123017307932012463647079736158146013587866515921228950023781792706647025161976000950474038923201999498022870046151431583009773529415216263253196544642539508544402164996396632898707025861646579998566555564917771565282086023574944236446527645566202799383828152900503566850771141920632019990998430439282861309903423571420238897926908039230488142198956888435332875572397273341217926072157779438220118411265930063397155352292408240133374802582832783923222290393895020228593347558877339634435965258671321063034241773209241662933643121151841487894261919068834444086935241420503020055563613225241224844398039774909550855820335598280047420986429006053711376606397444390555065730755322399155219699459046101069867747839204723329899026349380758958123424394941380149656142945448702120678003835447431392667954172562036578834487744171270889744205805152198962469245934006774345939689539333211331843653970062531924329466423617300859519853869479718447137009956723029497345891504617912382010084911518429246230187949905152966439605269487037280965101055143003821175928975437711327891673217853977320904144347752582990782455092214132416273244818662923907579338521063007004050514768559050338712419606718792649041169912990728378010598742008611937090602780719026045333977359712458075988000078755193209317780155886622768228416902131858527481975653387819966070156766442570281814120060702729623486599317872022704163591044545117836568680546074831592769458611991380838992677411723587740449856496664877083271509717582152555302626533922081924697234793841237015254672073121315727515225273079265453881985833634807048290794435927285655669040320242846438083618439775955762221259046727282440166750749369991779378471627278086569110506778661255564482075710915019310460283114501613476579283975339352431476723169484157843021163232422738340265608662915252631528926629494948883167990412245306838497810811242102370985145715122426986654645671948901961733358993141486608725455224256657667509861251867263439273714900463361910314017308941026524191329318592497614097970895025328979990757620956953785148013977745055692645374290576529029146115079647364778168581320154037742626159732769812300980182422636605784766415279362190503911729381607825315233549674619809515973121184694830346499481524102646537835455148663510883764207307346218289710878501483848756684887399807363425573592926626563367319481268942439595783134591526460322138100524919559349690742671083417322692219071338284674982366129997862251808376436366819249260391779764945118928868066909530343303500998219028340861304281654075503325405342105990129084201892051729360482504153536969403903096267279063096211118541861666492013775935232463710488064042185846657925364442844208252911468754075346792601217685991513034876851168967256704651761831487781402995799810899892124795452350745205896145651193731359208631371915807826128401285604179689294037818126428763714233470921777705823831202200442364872762493758855270625437852463830714579875188885747174116705550355663124664042459672625115507067280875362291093452171702426208543948932435019559110652601018952034184638581965219908177317511182398118520611951469854132338114461694764979089001792515218422555211479337719433473280578457421802032818200687729857054347654964345009861804398072692035357073116978731784135625532637125740391370554714717830843546096427265143367186967030042277077328848709112648245104363834721704916114168290873605223386515002780022571164118151635038253225180940896611889709792537427244926822821990073733330237238064253216119596406634251104144402808880936447499224274325214856844903646225985301819853666331643933327577509674265118799594001663784583025812021178404010480622967293038512648116371103713376443131863772162883319900174013760811863023826023971279466622283807586464932388728141749429562273603705206419578488978169799301457428187562622072559357615703938289445029190153834366810136173967403919400208455563522860539313491962453737246956300349699303262382676139664572369445356579999712884854440347174143469738099268326353307719062661257384396109723984314383360117089916673728320126645979531725188530193148354031245108381723984039061380720153447339332997347999312427169953267492939211743444111560610518178273205485418290950277867759505170097805044085042377937401482473371650869651917937045760715826603632172533678166094291279183185749034834210173122320198276017863653886108925785525248149061122048451592712014330330206486191675230158051080265253939434914865644944491794847795481608327707007807222281345101419756012620371503723679954250923640761495336368336251958450007439398280155281546393058171895788214134118052618887522978770478752572072760905082280708410651329378258432248759312776839685826400413182565360749943614576826717098146219185341108208398063314417208057917726293198176649881847719266109898129716399250229226398515008379412907649332876209305791038461025416297645160793987141723010999966940314398980414050811431886770124022854848397831066437949101425428089784572285872454390968912086614458842762419886314444122553610689488274611583269707030099401942522684159110751157532210717579975249731442685876905971732449266407748484212469685097894691773730047606477857500346620037737814915306520223652981314435677696899305953251091410935509285056303653086197837526779206105022829947622484675578491824125075070820621064831762506115682583641184644855169620745814728968622288442133042062013175588069731737923914716894239117306273770118271427024929269827209072804022506637350282972956127260714126250982545887545657070876188420405924645591487169681684522238505667673978258468262385960921088925249595730689084449750864623976383226230745576544929869193422161910777847539610905420516698738713517027110912771389585406191395748138075661648935276358636510259895320199967853768105863106830295988347668208755234523435964187604580243481015426034941928842466165435888896545339177161663655439467356461671331583812001806657854915455661913589745801790431820514516155773683478112938026683654481351921909964402446203181694529764612716813980907616003072882051582898616550557350339841821005956865777125221059218712703811094907061528306880749824494447707944916149093228981065336068968646430162558387225684654117153053265866461541229161467655367555496960553860693082442588916906695422353897221522826227955034838047275522684227658140433086132698964939102608343209333967524933049342830458144448714221709928231911126383908646588433918114353781607451532186427280448262991783792466168133709283710131807010530640755948921753700701278931487455129855002015037267312264323900396028977391543888961462254701983881373991335195925557421660234540207931418073723133493629593426527284255715381658327020716636110823397453788836144904118008812059181468706397092345644731539339230971511995549658323050871567957292904856362814769257443262813099819513273474761218273794559998884931397186337836174019202443042449444371169892016939949666018596959663948130239989545207810093291643016926866557089604504231073706190146300236314377734884895580584143571039524168211478133793287160701125966199723558874490677235954215802462846402555369960192079373364181749755225786829736764137705257644556879988846039537417582294808762742549947777588444661431907934628231418257871525497474931612162465062794742225716677884262601279115586272514406739953616298664564400199823274775900949398888239049658173919333187700617946906588365852402170143456713008841375203407907305965890630035371118328645074176564027130911266147392078829242638786397440428665750398431654306778331095845828000381735649342578400262866147232409431368876424438594375044850193252394008605999530425758669205723740037192445147189160916334616797239238001650360284589108966160251211223431431610940357920169074367054051530326300526517330419818106053478595618951307398534669190500554968127641088708859432034565572482447290037102422095371547564575373553506788193931038217153124967365359963179072415993916405736525019428649582801549192607511444360685742448304058264758049943959786595649939825451032549518929577367970375427479343576225349204463039343291862414862616672517111229180408383955233394325261740856666918120996024864782802349828017756298885981616083736883891781309098350390716302499653245085326201256719551667157643677139328811064234816039994488088358214478193257332359677437170341443342777079743981798959841279066252053098001806807637681457011749482165094417040658203302442154097956099440174430214382426300146809081968876456809165033481356437185685011757160407990457034798312151185297201934492856938849334487311717501576387269921570737425602890658816032268768631879802372950817982140958277854518483670927917908349534114918017833290301547684693511776373061156053443958736569944214581009059847470862541002602160904957006496130341724483664535957113806255249816684392167519422932933262065133358071153716400985604318022291837009720139362821333690622228161246367214869741235316918769326657128393561718544972319826147235166226886216699618356302019582835094911903397339795675878182055566894575232857069311313570716687268549285903470817276789541934189421293164031618402284778660256360048075749155704108026472679744410430765284574897516496041354959601581949283873901075015994267701673909867109312820882840514624202749932149239824122040591032314854244110046079841688052276332328791373671164070297912709671202551608510730463625476524336604591342219335106648712797164958642636866864764275060189299855747332488883965926962890080055293979516244407290677923202165362540734103677041833658171000268777518945496078529950360639944927879460944678265660995449866323446845399045234607450634321144224444569896474448135890157450797967135120640397558388357778194042424576826046115493574960961929509227630734499897146777260995076509654728271968511378714995759700460563613381283615392852119964710238058875816541516489102833005755293075388157699271715540627722341405578871934528887807810064033252132292788403915370322835320791542390341944110755026965432616533690470069349059243950611802481228093111286589798588925216255616914722687808849140216804343067695690126847701594749655646264873518894167593582538880764659948590836591878676172674321842825697677608791548989857901708154711322896073120487416824722350385531644001705224007446372524025117113808474703311328444844038241632937235828747514051419972848621648368070768468596150164201372449993159100070362547261075403055376523960383599333740069986486874937774225271483686567073617680289503436040281930138206480448502378571500708827630030720836695789568956933378698193105234923857124580225887950869290749091542518947796405072205532948601866631423677765264947559058225090594007356235434303769872196061978318950502833986159245906887269111078922437817240899964947972482894484483476314190830125474000901462746150611375187426014152510423225817916391566507201464628596182966855174313944650085299353589818084164342392373165353548444983391557152777911232059174372173217318870438893030322425917825513990140942957338449087063591948908147007748118791875385755959758135962061627279981817914871863073156744497327018372046164906824180533948332321277018454752462087818356239546520080599780072010755150310725565945822202974542547179896911445869095995101418628866462725372945442314705067065123616000970454954775779107347854304218015882324868811788877830797360446744463759761707513455462667522888796738759159456982767233169304698851312833878343252946559857574641628112643285604279561192830245898316409789366995974268247710800658414297051243933530994825896853519511667993080186931173386266931644939878230874068599972586014128450300625710126060792098469949515017411678164454356746235575210273384816585827090320014024090201730567685368029863907517039114475456959301355283149054998293310160908955771736741780604196908859158542231450246437097850340215377797829652979110190576739088508939048964864129831644949577362498131791586018790217705794143747315591519654308175857421965653387229653655649937719118178712882859674158405910642533715009128444882602775349181920514095141414664990394199828503298934292932845304299540940026026251934922308185375769090774213555544870728727428764164850411783814583041164650302663077319645610008236594072021954410548487078394115821659181004201408500605984798311097943304134646639267925700061773751028707756116461445912608035380982064685781859416794623161473151695814345422344157486931318805016788520505698591774211057766733686945656912095348604732820235176406039786084608557557226291697497662284728016600819877075485685173364564571957494764152083609877264081480294712046886681613877402825838152370359778078828000236959285539287401958319358291519600502059621150190539105584580654960092100448735652969502603653642739648045451423767873903984510064172980808058916049653262121992097217574505361354308831663413999610606929645032587122677163774624806657633133321347159048624505548215361470133957582266003164324884410273150259134854057130930939816230135697543456429957583008405449305736757440524195484802196322197434518354431835915270731847024342241877875667230494175520854952015950099516810383902195246663148467192621258462432783651494142169874227387704533605370244166479668369309025536295759972181659007585353864427662809016771091967240148925152274004904232834638005273821428453235467910704333600629060613948008138208876439205454164420490285888101714678806663438063182031009140268888866955389370638669551138809809656079804547141457688822221931478552362246758911779137000748821804861501890656380463983231788645017451480764542352531220550406786377739269305200783129621228904325778329164818179368825796039281375522954323489700553681473352306671277297763244085095369553083871767433308362850218668915159657693398239695154383463840783822778886554869621775283734008856789594461711848272925496623881310257930634879103091204615111741087544176273491685170847584607695314446091236257036028016451722724023665949589041449651975915342036171073562715071859548107811767582242640830563914312505596805424472392437253062478006341748946701404663583781995864497615375190135238514728346524364480015829889584316185866351549021770432965124481084473265265886190357027029451672157834834894690845911279792944151309091945299721911281383456662784712777192124962784086437906975885474123089745081684157956722755327885910850682458378424583136867213812564920927808158094105816279431065968337473127812221528248466540926262552523913190527133488137633079720741580036683920878941968505403841564777575668005024486009957826414788181816720627343411903954118977710105699948795738121073037664424256305569595990568055714165117741595081867879822566653507583496361876962949933766306050344398590411654775807771336556875315386779982851113019713504166303044080614569338270710016362341463628091747983461886377379197379830923659890406479489515603559918972518264585471919455963232785603936786644955564091701251646006016699468243501805119182596715107602374336670669838350088895921007424279196289656698297993992774844702314981173816497012335970464689757014388967925564124266283269921996532943238262169939086657771485702262489795306144495588372330300273375584115151374499750523344046728765814557132229152412886199063910070183611443561696026679524247467949390734638210212836356990183062796806369716477306699420450362288740320756041281235577634061985265532672817566220081571215186654221547345147829217413759238856954052534435591382606933222011547510790679704538072843224749981639734683103113740423711543186492217403507367040872001892287700993566017714635570017529615217063393769953551241439654933619753647565411513117481056133346594252909215452063567560462303185217727451883480345700835153596881957697712526140247161328111096421241792437897231971534743765348580726762349821393758785628415698010610651614675630529712109934797290951527019456074830985062124906359567600248901489310473103414573826241285770579383047976420912999812097743491459780371509007442797565651647046314809691717374152701734150139649762145912698608179046175984444603309759264209733946456734328118180352686197699528483938724283654751420137643632954848699857174751549013144460276846621927197468618583834965815772833507525151493107238853909942057769568500662077387859341014561933940390814411274886195157671764229554097582881002598390209968446062561448827198359521178367074168321655238241056689576267081748579274777925050630431461079896181962071320914217669689364064042251254811004357002088955468799619251326889371949709923909096924561697057055120170661978321838448936192995485368742621342486914355058526759944055675015531685653384488292638017331923033032823125595799914639897131950187780535898089232928117184031552067763446844309134344553573953400440336426792299400990962124112552481010025362723912917135705389652370533545072505594357403797879311330848958145117028497805075125572082642599994641968302773225237519741784802111518575053028658358250708760753469787852763950023594828387306050155811015189042570914359998047294135811606411421758358081347350823328358381814389898437771683859979146319033052423799941470675564763610454928713925839639526293447595941930719925487874788958343477011816442580385314057355816942108016471579802467995781379568308737629456294407464756124701097857749336697908167320505250283580479171773410078420004537793251556491908332635869135143629019144524748214060585850581299177306357927994486811317055201245280430869038647672610129475904578256238232821140153901057472537444006282136974408311244331545707978718279850302043620237820399335996230010295008949685029621708435759894214882019002165473214124361402647134783401862920925367124161760542972608056688447292886574454394799639477179842234109768067239968161838681029606747751201387935889518459788720002070704857641945557135969358837920739642134414386464110958470016277681944868270857887157315667107208875576484958226635770790095876718182570031513272739374861628868897515515015733170310507458583786373407575513026609720433065629376309955386237195882034790499640634271230422828904655384413496435460384122356230217560501488574804365180417176948094916213021427058985309998038853761822717292058137026877261569437515343375152267610194306875166923254664565796093067115051607577517949125786948842401245056839989160525412890542271036555922727701967956283462625800201991657445122819657486788479767539363570616077466039568072006729918743204118199149483357168593904480212269834775855420239582207685726208283340812581142767219294605512419316004979326176645272541272834675051050388292634829921133926213736198538176943158434949328926697757419672602173807554796588619308364344173489046692948045074602114020147026086681403736194594072125076746311698501975913631778211385311173817657640233724312544875489018939237725598207393667151989844119502240959928627264130906935330778455099995812476548860396596032494799526369635685666504336358420893482078499598422802582335513914732721733385762909742843885374368529141953039040654772039937693282075986910210938251585012512179844446214492095222154627541732326222382613975600705227539018057107243827271030720060348567081843231740767947367628175052124309393321375885530974918043224180757231076020769982015893657681842870367207155810154449689364812680338032785745351274866482665993993297988068616929630299580693298511801149622688596924157209238510030397563767679665078744536674625012554582799059691569941011035028725028130639104087114989505498992828438475672207268375374828225784441928158992783970056162316489289248671238692846227905084201696639041881118200069911734246714713556620680918172968611331269208091249240665023166262384841202640959615615854007425278973731230484098634014778556335783656423857514376442161016971386470371572757770038114264418413976806601174456606081666602189081969197872282453424865639413864619854177039864306993088618820725953980111384120018027595933636137414694572404702551788507531919796864239902024048526253370279397552912836548197254699541219112939453789762717814883565101105804228554744312170607384721546119790265236347691114218573309632225976622621892749581926122175413213745872203702097316634480501763787062909030678500518712694356968733288324287972641453195204910061083841978518481378104426928735579106052298733795323195358584472492572959435800548822816580293570267176933781356078164102068553381580193766101559862342831537435407966301560922787021747096340739433748727638214386466931717538060258880219208636028196392346169831670575034588696242746264376579143842144453324967846548968738869426306179102888111623239176116327821567718171513567196295672890136043802888852280395130466863665425704425085195839239646122936942952577146812570221485612139613775401093959469643407497021666070820164837733869086188808911150682447308457413889566902298370905290683345080728662733248066028211913064617772812016624080145217040833399860850700137675239242656516875934298591395546208340335919628386448858907734238904453820070050903604345487613415470604832334785397544154283102296646289705631991631223833613754507451403839863255670491749911173548992296420528806683073536552080577261706270452760454600525994240125572081110500265403295607880420838428870159606887772697395168338586305681766230284091589253439719941040659595264931107274498521200625727253719700370698859770784297844395344657240487931529305333435387708627826806175692873292046133437002357692845606860191431901593324765984796044827436592934444742852203298603079801029011309202426790385927660008636364052969559619029506004380463315224535153016646579928088005130384030961602987651362565612805257893755981628833138412690951371926171690620620864575558780221867812938242953644996255110844315259052358270994766643293878440047150474712273380941823737089702038787278289475433791223855803410447992879684791188105020329945639934716540949379572617655850890469898325916213178093924702203235362117835808142074546065573843406847150144422737423883833276722732335942565591284649911694299392572488084253001773955400638272710179289737186101348011829618839777353535785521917631486362479215876012713807505113394090540966952111684576496613998110639175556776715069685557160204815724745479006907790597045648215683446325832955199553481121796438498924521662592880134842277164696199499709920828511245493338755029620332196786891381094712233217272464194630330324756370672009437545573559929638259438593604337206281817856608988261310181474302681214651697435672053937899233958425039237706559904453552823832464479724573869947809837722008764523758684995652847325135638050244174279530015694499368460086734076881621828337918774898774599193399433695550755392800086574001386973464398884440883221388722567169009568884943353670705732256688366038832371049182170037946037822215220783735906167722235465467442363127537736086194988319095316997257172567506698799661736740833063477952353192475200958802258377354159447664980078233653860287389877614601089106980972750672922740082958907582832037364371142617113084040569618538687364130286198112823412986186417873399894301683108238464603095024741032663016645815025249439084007767266063517951699951604042839571579385677924293189083082873358575829469775615867659496026103112967549190940770900137418947405833545615071685395735555540384027893096200741123031525803191777369354970050691852931098308302642641252322202142948620065470693770384944020633206721571419477480670219905883634464698520730479678979885256708710290597612423683395477413650348622757953623099816569223537477914675254999705083317645394565351912283622875681990498441869380310241851044409300625802279831538666770989338629260524442543619938720303379189163700147391260544102606722193225109603459240701703667421707200076237846157675430034005165151253147918533207362367066474756815672344366616116149465173761842912933421715628332389369155059298416136632611724641108537255920110181243048954584680769553668164209858117511229817432986729622831422382968013173503467023099048767963256580348898920171619916335123608302443350267303484301914397473367276663730901823361178535527878906242442408842836760522725838859856074232051216988309126725087178525899878876481325771673210694552007165306725520526820112118069831371077856828876594874070319897822996941375168060712317794375221652908932801061338053870616092118249283070021729484565143189242624689614447094969586453295306497763375616844708597531440702504612315047114112071948217759492234001866001488236091428581813345968574929168388075596295808008762306054117235272679031723901959442041892781019276129132247423423288774971123331329571781292521495558479125008161923158275698428679505991316719196805799631701509593825528117423568168116234183145339661700091244884472946395093667190121077012997643856445132069179298448726847319541490936366778402786741957552698316644347208196037541697244415745824585984448511375921356245025651872991758413710594511201204231179565631129352916645161906175626676365507109406730362720639837708905833992189112266710709610807513000006730770847796032566462630916178917601901746310385330099219417922853078636724294330850510207055273865811329827063434604342153991161533372122676348966910517625374857650831019138912448737442393717994800647095418092048488334051564648263067474331321126468593257623033185714836982614177200872004243647276246265856564330482142100500609956780785951690556897149436222182600860217633774662481728748173177019710473552598142891174525621372511765568626067372763349640896839507066217133158499629699582746758385393338593790446756021688919855748853606756169982386902138999767297226924527726200910840119635833834707565932960492012077775599117517338806592958803243032554593084638085474115518727416869649026550748074570928485438867601736407224058202652916766104587187197218032265477243993146235662904403631199585701863377909112678818697927542759749513592391230496666859592480427394139250385583545137317007471545198954920922076737188361411590629499628811979717258393475632989823597531361410926037791814526665850453912062691821868734073311894949119209404798798514134294473186687717630278701427562025994651581455034147108745373812226425646285539870290514201237988389616722150933480767272300374661806060013638082426579748051173122295447809368968310935666465579374190613123809063476736307251132707870769161295071394721456096904878620357836397856493342880040479624876851783823747081349941905996292484591488701804984098960481680528946938629018943582447557004475819539258073152754088014488803021706964217804694329217867955537029115480136101926388658360770092719670111107545131691687689392303005107033209159626161109934804011085238020132622383780858592735354018119572262237554198462138598625713146796027975819152757737824013010679349180012564700331976555562520642802580829269212058147607798197073637664644297574243470060119045815917334669384592946623073170492863143870176012098172538553333598704011301995684395741663445710975333030274151824278922965201470112299726427696961554864755820748022042835951650412883458159172181676095403597050556043353281753773071078725583557887921197096496416394375429856828834490072156450410211772964939698282005480672853005654608037258576618715657192670069706949981245235622791822508987473392537575823240675811421942014715596679956329886124713610911148617891792687066464861002016825695141991868688694344840481386943652560122630030140676939512547981221246563662772650009999453413378621440654042603394167862330028130815653336008623574057042923462172498875101031845000653715784410354041253435153576964085735712734575376907191485385410768818703314774253908481243397422601068692903202303339074758550656899674815098779351332175861199418547274412237685343294254317235165324839132922781615622192569360040002769256460023760110929290147474889174202362062305327494647313602635364452290411110409126372998448499169268517363657544630288541021161932894398033307740861273860001254514957750882754487749804917772188877067046703162073302229412184076867367450014739976662693258038153514253211320846531420811272954046193311184822955355627342532161786804200987691363708940094044245814128731581703374331717243611707094609923714617604196715277022048423731165537958810169355632860017896493410453253637601594776696821154794370163125296835190541859054880297562036081166709606287799042923640363504536364786115839001886657873101142655137944513890419109047728270324363539257703479961143251438541717898332824624942430584444828030636673992208423946673538328413613969192060560033666866500605989307983223403125045975384363134741153102173322280183610204489933362454126631941565243994888007704057675312742148804970774166744078268454402390378550988657924122706679246246955968609010907790876128651261673982807305634306348177570289302876717038481561756892559731757400821414956362427963195591421349873124911450614166532097176419767021295149569397720212823687072771166610944653565724975008485128486756675307097663134232628696568347047521651451796711811426101873622893562833442213078286537720213007362725966232669248090984230695448624258932803664242436863026196737038085006739982618735148619900346103139855839973866659035464402097402299504945794005407734053178657549542424806755862436633147170723516070268266312612444505192384675992980593432721767137017728129939686849429081579316551309073557810970010498711230880598914697796776172866276506039765637424417786945340535804666296720527255955417983986773701247694137934302968357909952607372379282033835943982203020926067285074487120228760101545754882890219195608733867836177480523600590417036484711804831486486304728887567996973866691802745526542031877243149892758730555743566852248291161098496163016375819891162996547934733767266107736028280803587046816146886840671556916330855201544670450636224232460391847733641661455884879124632958523016077474760761202100970627530490372969583062929541546828287354245678894891161097426003676789659339963747541826381470681060950665437948481430708007969592659148157861619666174567132934483613123626630668551211347573431285287286543605191563266601250709938132657693663686503928226371099811117433770980704122581258039699927661664984142729809206051917227845647799391045470616619438600307222405002788995710862057995414724845500747554691823738524988311048769675758959674182794428621267791132738211726454305127168649131543494398745278597704171839016014147682007670767401161330855413762427288578801899490836767590735785701361826801042311062419590130585679901484261300689542589270075372993469985819302465387986564010352297849137125660137609644685704302701632557663495548998278575512717442247401895101095541140272381191178964805478154148035417329795118548230138345248274986437161669079899197086366666240712341195002427817923381345377623604251132653536930552005465006191616323873526907809761410018853230445516510134620130244524341143490782381264916341759577225909551276112008329570053482599510202650508182598565090950567559099274362142941360015665383652948352858360605116093347491284089421202957828711886630018396927935150769152493274911015787834862747248106574273021993643710398468056567742849910814000433034404814369716826723791798892108189941354681099588713233373280929951147379934558598054379911016226408456987262073171949240852265720174859743349424696001074763643721997189460515379099645983107866800830766613514160409264094999347556500171253642826200675678297041638987718408223555251717200126103562812923896353973508668659762795818509672857003908168289516343134126543245112805964412492845554133594935365010397933724933418138471900421262893410380488282919530821970585006723842382429227502863373832919369967353763871214017419452048121861394238522827119133541443556008507063123390800688127583560138467614646508048791596575710698431873709169363795812261931881198775812391956440157493238597905101878297924237484440717352345624804237384272611122576582399992126976555435979046934286291309388949212193313406410732656280865648918210900001012082060332679806446862340575660153450640189138184117589153110850033605587787001385018002764727593516272895745663931615257157664626217677310168372087744058460272323080538142462421662724291641488171366614794916572150250738146873265124186963797119819521571331723005893779640765307865733883261249123076838298718510754129639568808824560912113178568068536033372010600860610170076107857446819400986277560851598635786931865609454671118338143550807016050398376936402001615293485464206033831921430272180823623193574846128473041182695653446066460446584474467530684243717969117954645431458278150220879350144063904876796374314384039951758406957550605095021749927985883274278678178159765038269889419396450680286439064103625386192712854555320916190525375625834551439484529890633183539812578641200432131260909036395623086182177754995746398665679698964867817195783012137304720239494060209586798933637557341407474202708702809312314310030035425739302093498423486856158793836956083227469486506088335892954397536608951434317251904927242390788108467025957121171812789671608685905122720793402046235447131071879153374100866024828281840156822417335795429501998491804649402171005020615976832315200412109967566449348298878845281390208321478368813309130034016533293155398674744558198214936135979184717732779469637075424402980490879747649555199718213149344936348048537493685873013879559758542264457094420040556201199729742857402791700292412426894558747723283100268003653473743804515535539877032654731519726705445099966467516803933208698881518669930175088223770798980656490278891922504314750333331226323039853095929188930617380778863325658938500852255631016288709569510352800198988290795914359841466443409291820993620871813669953615660925744104677286175213847852517653857704151895816058315839324564418839813233528448762392912865753685484500143476267043932043428424127554567075821730290692971250268877712393892161861856678174089268198975300638433774948743834329899748859939866411010165836393164050638615440681357784994273957797154362519407406637432518082258228347597889322475639337213734916186015178528362040997868163477396249602266539606895297739165419962656781136867596781861544714494765060662668742045715492691957283213600200245175256216042865834146592201344130322497857526170960283471710058179386897069978802449569954354434140704028971029594445953911566077603581915451230440088873869657910839779454403033632161013060369016256524734026804984090423260888892394853095093154535657387770642183691271020431973230750574125479281124752536282315073075502121563095626281421191829065576769636124706782823382209183169422850185073568548553101564401591885568471734817908258624240793444054432762971471166517419757690698220470373714758016648164228437383270640977210747876510493681801297061745699153523677716403241328187514252935536388083486421630078829467773947547080452378704045574926065003672369772636819802985595459065318813818976444283716912049347531808168687197842901800609486837775230983485655480202498190730862681841593694870059484006659529036317444699176348949447504203522760198595042034382138902523659454393307055783020509228614951765010559387417568683628842535817697162853864579405631833362300144876121750788806801495416751597634428521486545516930121085462449174034007036886007504677338242277135093572094906354829257245113956184773154303356092950702013809010592409345142194761269701723009334782455829164764840106940770589968606153886390636338664625451296856297822315823412957875265893074440345797664828534645514368794027032592653671413695143962602261834977558500371824346206307649556069773472182039516986954085104920307462560673465193753357216377386566245146542718465300752294136518422483970436904966344195892810820269122246995380937251335239177772921570444154661175407738739123218622126196569002987743793004960088395603127732094756286624477362899390076709040881117023296188577860230470462494183410810492247165552210512050827988331521406991615370028023775216476673624472748267342050448325261877788397582475765381535852023980096515157267118690973448138223338700425733983524580056105211600773277884629791279124085045636622750025880505082784569504674645424432544121521608511768822465473341110034463188290965426000831631558670837300358805311354946454975369606853130786923339386882599738210943703061820806354128601784360931994705661483061208454871427151442735117422534173879916403550150912016549777462237766341500975816926064856211654597298623477670039896235612997411479993136688088833313015172440639449954714324984611140783423471544137525080738133570463738674249410139155158317382301784801316656952306020061822315280264686866382692148099640873349004522610662967175958019543836025442264563574342125558013912792451646002837491235851408425160847392857945933161677968614800442835542107465652031341554205524210367986703294363622127520839362240164708663792639289961377143417843000911485050925357548011935642497901529773307879110113052269614992866975540375976114493439163467502163600406723504067149884458563717218157784638469167756181639120438524814993808555212921131489181132128524872303496494789554093763616025731756474095208401007750187848439354872475042361370237396081140050922803105151610122505643234201119268675722969241339072197250090423778544851698099487422945972700628457787650842680094019437071809451418948262310107509866704766329504245409279590860207283111011422215169077113090835214839755071365452739493012368406001527810061458048803949117924830632165621165186543033476652897169323699600582650998774147651531094449233022803931356558726289420854649144663973521220333025198569730775340624976397337093811140756377804042405012930736310119680178452300763210395346521643442734670760107951681394105440331709098874244396974448873054810637907484493554569860462422789053376115565639894747781223330586908266198085198032889713479948787189845099431516612044654547861239241678233899535105034377082583866771788297791184831195174666929810062148320573569552020225869386384724222997576346429621198680879966446000366337691425678167545039574793894199018725533138110577948195938049833391061326329640704694495508861868486442482595778090927529822187162555846535417040425582412657652961587647017131511949452545605885450818800696742836696994270250966974634700130658800059469418093960077099422911006119695165885600126370464332859892083293088815889590766089158846766366133457672730986101249560893369376330743454642491883059312792386505855493736240892865480688136741109610981409438909470316981268865292549269079840478237063732538729795163341214521847839341848751524304992481634185861205925906139356376613454056833411842488300318400271337463490560095172209707747049131950693073597947792325205957336629007154310497341177067587853214679103711605555821539337797426250537235752131030916765408783620889625975486849111830440437289541276401316418567247677747033654147432348224726270239212372393917225914149756453587467250862074695948830479150648947838812239893280650445667669916717472821135578715003607282522357843141378153266449395697745375236728146012543742162226149268101826434016745923399352766551710143728416718738755746967229564782144707996998574393683667236691902871105536976632715404968780723862316951287588563012976817870202002210718399827160010092744984038707846319892352460739377079556002698673975947299520143011462704044518255215203250155989847251225445476568933509315771838326307593450621518099104290519048747134139652577818995657233886879051609880204464782678667095291595004824745806417213908225490959599678765124850251844497062995578030301614088401454260877684696316318828744221919617208837944461795163657620998729393419829413094765157681352771500028368509390114265309267066635368985122699768013408653388722309751813994240180042188533506167585125064607805384740547566772230413896804376131347621804628451549923368517356774621651949535127001945361644113648097843022118165170416862484835374700395850287143490540101505210995977651003473973105184874205531232629044366843748143601209031478875528121813768890893064669834935058590854260743314111055584717570632305847473110487606357020162380869782401485862318593591903012238963891738638677086733329620277066883229650911620720249584965109151242026245615222570665646190417337999101483070293717179777235459058967855979209884078032070829642124276521279502213678861384918899141597376087262107389547233179277098055220158669804058537129664364701881826830110202593827134316781890742536230127345211302558379438448992477535655986486989415631104525307630203890725700937452084565801180402160999656129764757515964905489244182816113128361545044271809714880532528109858214638758061021278519160207595656522961337303651499113939957393106052011756999889758629686812498709945811614106253921450872201861799326448329781111890561688357912384806896280916141400947418661315922574315142110407792742654515496183810480691087875821160033314619269953359873342162482927337337707840704836840670950362544899697115538951078093705791838964740522134847606773646873531802438930253668911756510688451071548812236558751238802536795287703570081713642855985509127674989841744870954732187430341572033934018508360783890095635846417469848216186303069002353844808404082904425164662510505811261976524258473820735635927008433960094829630007200169089691095908691753393134973012273638647830734626563618891812650137945685987847863974997338846218634732842900197376996561302186550500377535277964646311378229326890811319836391223733628144698915489018516834000816376227666978417659044687110081470759512001662037402408529983047128302968766709782000953754554286440173456563195760929637752241714298481783050949701764690368283129635567963785013415354096827701108505710285065102201268039604784665366017661740114192250891012449021483769521475005002348825492502843901321528908034438372656171495466559432779598235086292395202977838961618300057022021576913431683594585929230797397097240623526338623733628057047427271033097604182493421812954002340513153292230315869518257986286298777456207776325573274091323288910779485213632759900968720962468283132091005357206030478242632940567264577785232767715121381125587335166550502396956886808783860430543253303911107051606226171651775899040337266524177121381502659612118876586883459335402323653310965144335324444730429650098996855990661195194372579129457543622833300968162267536857383577346642638996100296079741181296818453787124321161746321001524995392917090184672003846290437649689890209756470652450440555987357925260286104479149867729600402496246050419042767114949524986596870166886322576842459170324490485089714563021063508817474487305740159843942902692403604305574254113002638485074310896584896660313717680629483020274252217580196592980669020690370249867790394312307325526190587268381255014552265215862005088300190237812622175456274200374273313286915100984352203694584317881112109806262047653644142792637608679321798481650552847500513103200513029048030346709596938134988589466025393145767336722473991672043188256240664250370518203935165812029004741985768704658307052630017868506401195864504387705354455007512084898091637355415850635257552054956397075986960419899050258700649574762345865235294878108055393276738937171238212391933734791631420255276550112033335879261675613159615722138579230614704786702719230628047906523388304927507409577031788673388148783348254901382066227445026489340456261530497496565869348971885237380019748949132866135168673236485405002407314628702828116862475306988755378873965629097091263298517036461312417418992880813468174425908238257272013885498547814874929661573358505995417593337846923141828122226848105951264823874830527505682149199994762977400610388766581901173794181345393573281302344205523503430820430463848340668291549736685744748433372498266356545155717654588559195975258971859998704310473573875815739208794809578299494380482019826214295403629866000630706804046798458076871754319211257573007565800336772879771115856334175841973413472547581474008808908982020241112657438841622355215388315536160974434330179531994214895855162998675587585755810869208887979812304942679604941968376937923330255035137618847418269060605071609953936766615070243577429040373283233890271561826623990734627736307583218213473109463826978857768551822375139308834153699321046299091293870814186749137521165495221449429698234985158466134062572397245271645960577161880880532094197895568721312194905975293042013852492614361682251894496762286594224747807418192899750589534673322448465947747216410012849538765650217954719334167892318846748530059874808596252649854262650100481217381433421972722384221494224010974812243650752346190320373183231125993579106278343373407338506658663362770771122342103236538989964375975162198096814861012203937227404855254928804248944334771395424188038688169453526298320062202418561734929854805723786074891979886065973381539168257109102172320965535470054207432873219496094502723188559581046923502050505849712513869687570875698688617380018279988091798584896560863052597970342079561901601342230767000262090197915160037229192940401523385661408821851497122081291488644621512988484299557954350514445299043840793225628916481281393935775046568799734115628897542378497267999181415878366599269139154031958635245381082944816936759913555840070583198531650263046928409918222491118434290362729223334026601337624003055582819455750964647790066527653637527072667067093741491099898306100723155428393985907232368662531560433039427972554089467945367536984924322608390491510071473007133981697882287748991724770320168181219446837188663418521808097432240902479776945519270258102632481480868266285058616438420358033818400518994944200937501963389889605776937147705332634074448154682904711026775036748097611938955788927889898878427544553744331145188684280591086443391177887190451188524301769288496255039906233247080372647450220923450373154281645826384172787091181663487496291396867281796333177922971918424804112498411549077265734239603262817825828571291679819633294714824938865241054307980521346233409485155566998164898177380210007996628945139431746981619014273435857202914629438362087726033129147492464321718400426930742799760046209414028416879607889093043897117154146943848817263632448973272438624862122735384246298101292280013025429037104208407248034226690526871387056783150446888513396413291638305378140516785025944941508949397290007540509089500959543720847098192967567755074514708411791855903263462570620159286220784551543249529006381447808932771000037887502470877631380901586418127258215929748926204718955155396355627797879856247669119286479135941250400972203446848249343865012907082121654366242550943699788701602795258616637261432660700829770369159453221550329047097767827232716105362049197523666348039825191249583657787632095162839136369869108043291185183576860013122625611677994192594809568617352156539480240794664477741182473534034408411448592978988042355020071625860031791324671112705433219656776360061046591497670108149829787060173764372241665671706018826953917906098313116130532884918804769766751616413825536255557749771743602609168668912093658708264874972270068432842313205348642512240464575018718115949240097413604227490066541246156424346501949804276914492313757008500582423646435614618630258589294151708726239318682249477427903504532293296682036067324190640446804237574206876945674503784709328102845802597866852256681589266579637241202791434614483561860297118357198051114523026229626277810628230992469243060289882340405443861202970849537198461457909470231189891857162572073121435805473510556407631547097695341997636955550650426223980110590346023146383321415254927517455592627292927040890793570515057387461185090309993190653626839399736231140775801026672684104684802237480747160525145073828803391097767531890890628093675480096319475331173880641511802896775602449312249672899218919742148029535685857575096868252113387974983917280951175276946336359314248382785304777006522303917840234678324866181383054562418443246591758351055166561654240761042693220765341808268468311043748678726518201463162478871635131512038981238190763076088719676334241821215426832656136149292504400637316765690031724808497807496292232283853072055110150531463226279630080473194899991929765020898998643662838113464767902480824826556558933316682140537477437420157585408909346795978909764371482810491071944992427931981484002044152855122423587571179738211671725640648103511809115860014167738276516117623239604697494917466391538149835207105727585501152793198743802654662772261214410279855296758800116488493096137288796893176474953844806380127661502680507259455245380133712141212695462710545731638336697907326750553110953885296426829035471966181896117208072684504411644303754741308252977922567446030305527920841931739378032591234684166553594316628470220771894467994174622726871432051499649015188160598672045429194107183277877989126365278486410651860446335281149627651836357032593253794310102326612419727979873339693352303011747970287007245875607155458782713869530745740225379533299949805774840878959399556065812465839390103820696752147839535955158777667161956598502099572734377235258609069695880818524785402244110248837451153387821084873270502590024424265899752581704980493954584870001733501354432924352083152969712432964679804659849522577759370052232865255240646362796723560286529871294589663194893373911073524688013310455206125273002838588313326663741122480579828995029174947014444635843320625058074688665591166022967227318758253366387460636161750608586324653383619431172883218445075626803981695007549961786394037373994004881997450493657347892300180343082370617611434910234923033482060453371906404395888773752347757683834503796660040556311177030789499403587646665562532409575639719906418553767488906855136681489792111957408366529425058967294468245620367961705647355193228190060003547835962767083428158662958454182656678818648568525586654777253842595507932305566700624461461705964038521967054977651454958190206446459672894664776342459562378887571212292780036758281657375020523528653787901905607878423558260982116858166758624004618839933755403322677604737373800701987963184748336417108950093938045326484267643751639449116280663838398123804519986199717977858330698174079050177263490871528285621491955897323307122120882357379266976276090681190102020253336185296303898568969441688122436316192746192388625262091761735111706765211431626362418345655206267936857482193254675623723782742642731738415750277217740712362815355474909126088322608168643113857116125395497663960552882587537808666855456161838036953649901858980543306811397832420591978263710463053908526075055924942828537573955742485752171759786803374668460471141610311517326748113093815022527386953587542901299068997676569035592271346605487676166623216923782333846322399492114263491101091924499564409061775187990848662922281465597200354618862077042848914590301935737765606743328055863546567929543801881903703002300034881925086627845551687420917054221131652873912172691329441097612762432764869294781643631686510051346496061464714300954568056083162456541512830088839874328145351779160973550753172511131018320192718180695277244380163931660969408479773617543706650296706134712326244759990744745074299145970495366877966118373664873513696771868465150694121665084079717918701669577954032879165185373844509295766254181858371837052323035586982895752087024736296391902137721219817111122964143878819465906338363643946339387779115631976837074879841314885346205502950821762550024358222040069238074681312756854315151780276215953387698279377678667108972587865722782840537698767755937308403403324358130853761167951607379426765657711786933385681136615356488161764057680115090234036989245964980660802449065286638451778617173862845612404718782868879008496575646791194749113220541416119307798474394939069625874803115309765458383117243044298696206052117691266927388578191609474723999208524789561497722212964705934621779678773253688954641817449680789595469363468443128963362976580705758882587098839580129729981803811886938269083676486620948095145404532835281574989774357982227759131342568439534524389811905875253101832089556627489619618314806769955901375816051856758728596397332052867527864682777955130145192823186686927745210776923623747151543005499760638169495681873576125290486498563138545562742261263715501148965987554991813130775939610766296218039386710492571725918267523846381365799140389257592716730849478895170540749297818863461227571237560550253287960771659288955903740580091667010349814034569690409016549527762619856020790763064947614136940200602780677917894007750272974787852554806732655904047745227324953179508091909855740759803814346852225784004199794575226563849600437395748481407168780093145289398788444354643240063913260780983960714288214043780530188818478531549209589239857179141602723602778111205473522147529248129609434786187473074535982584274881355360500437496743985004740821455508673950874235625990491624971140210259230823157585147479219990800149468841211595268255637008729527739742069175793583991545273188165228809134164465050922155528161889709792436924188721790593723465353443608048904523274583873745149013862230680019234565297254372969733965741565603079926385925110505828462855371412220975678845685254137716258308465609521154002688912043067604140198553832182632989092051650529685327274761349363221345838034426335138197239432034503003886151951558934938620881008216210181630184232332079317419416829303692474531982549473289106920842911251940828677977060713636836293955498419432344014713389076857062297508744121063516078263540395283791957645083356859950787952452903027465512328905360951887274952805372088662590938352701638634899857893552874808995097374321244892151581801682224248638309423904332254697373553443694539339539008173552755346693337254843409476318173575676038008281851708108503568537140771817261445705342767061371791836500524651113067713561102065133593877795944465256022995246669710945632595837964146140741008724325396382845390468628203830666126133968278076423326330965827259303009322754278951888198138902582283442302497426920427438686610530976656450499276707329974048351747918314837048055057024522244079557568487783043851189094057960867865548695984157531447238919416271344137650671237319699530198805657738735656076667317477729521856482082018970370676782768571298755326897939498948177519212242188541818550376237415644572384931530222480651397248881172628630871716976546042603785565174073973179247004415297566026223167102646717125681375628032462292435248620093488574060233727577363290324770765539694086827543991472079268494447691280329898050569988642440597292279715794299941554806172220201859929907390815782053314861033958441070252066409883233215599096352695277336157237196730187081237068613130126058615413464810176938281954285955889749039884650207487633880515989878537620899384038380379822584287350051340213246348151543683101412932689785451370958190198944808949365614829109060471266648677639368245979137901075957019566877603933949591947193483833569437822269277295537445293326956328410816626727257695358320119049310015614624524820870114802749335810877669580832693845183462785504097845112015352734442448426388205567584111659775556097132819969011663924931581814315978695968110332472710127909749500129813583916854277446843918153324589930801173938360811027190424934101705139494229328891701044029407048044346985357315649668386987887890858044487805817419410014710368173464139231842786085829634017310278301662138765144492288223584701491508967177346801685212360860376738345567106778450875757207979133514790068850646701062724894324710304144858482648317400858761737745392314382386579238169604031223000755766980061073269559800435816445839305589963941543326776550859678740542450130133831497519613674367727265384625306019664389673326715611315709024019022184943557556442158347220864950067721716579922645879760738890819902027868231486469914197961595059038556288707062787669193592671660925778581543869784419750058153062613277437204334139417210923297190671313243215651403681888749954831625395029089803903510410653806511642062603328263198444904773235999233970129592347514136716991795615146373805795354944889874058578857825345633536642268588831063906829171978550644265242207980786699900522379108532703630715349509822300962595123760291135487935536411279388896502175348608087722839496711998517952850470539375149927919814036173224857742947832381426965362571117050133632393626805098717276689321309723706978218791610569086322168761953309480490028894944393379808643535094298354581149438608267485508122055927491717437025179614493065015085055457832713306069364583828170540319534647723797462772100410805002268584511051745057321857587160519570591497373081937020766825065555099093624717154401988445850719283605784061338124535117985185819954344866527613511333021935110231340089164672687684493154792631271780987909755811232891441330814267641652097211931264271058177307981088334569370772645213526157866180941040024958345549777516581820761286182551585334893505772598628180690618929993888665132782758570163653634772245983328289822664738023447019806724608047610004204679252230323937554622932870800103787100065443079616459486516382715282376723557147561916603748727873717533845002498912535783302621281318001717190668721958761242512724378669233390372650637012636051940188919026380022336776537776720778253121290276169391593912725698324091927049772826903668015643176644306036792513293272551732457732828915541394301151025210287542902915139591921957238353406005947737554523849680162088756288514979600796769713453595194518292238421857750296551695528676373013202199659408731879149206141074418776180650364561287183517912279177756367073056061175059434629792298519301158085825217385451190538573565772175851913972622545069041392286267385026837768059426945942318481874678353651528310117708599375211998349052146196288130661928131746170155170866016661822502009320022948531336313704899040375912877228044955744833084058758199671392258575662543998322564242315889665283802744412203200050596465481698602529194153830319446826304635532131946793491707009644544384552341002098169365171139003269525592256584565999212796890484334778004636890309267857813813443395802156341419230688972843235810427949433287329950357731485405953714713913357980332737184277357881886421953115702744267295913095115802071804284263642773720927514348981885306000126893131594243535353436035248151782979468206494304892989575047820045617116668016998601780426005021846292484765791632935384397442040448924170934694003259732309996059919963649982847388340856717590005404179213958450355168380209584832155749493063221974287838144497369293107363965857836210184310562843909686254264902312394237754264953509736042729612273158447079457478101614186576543471747630241962759812568456833668204908284374005031555123504223910613314847326000901553640998736779650162965830276839995294917748672623532370152258954992474708101158997084052229926894322846074622348374935447761909340173841095842197533704669152772982927223340360638845941561140304829269845886770540411617345600889477881161500439655774221535687933105839700474949949288471255511350962701709768870225536477820628326482400908968274353540223534793540785788280928268211945568495390142490423800013370647005190087710474149701790992635939301549436834008830474313312314738994290293782094268198869698294000813504748865433993765954198930251492759851787847590002761756695035224702047578706295833287275798613486317723003187378026072369401777309305461039413213882554319510929244452980197349255393996960514694688701402637733688885886612937428160431557500655041537363736210426376994667761550618250258119125580869291465559842560575920231180660573209774712344413494468155696753622084786238767778973911636565890798655360627743890672467589235271620362906347488026515165449910069232962362567510649401858267551923412306509524947309002011106197630693864773344959993063716816108698270548238437362908252880806505378889198274700724582415110138947023610522769837699724955259060733071480674061500399579780837157220361005219744099434119708800144520087135762361482436113524903854955181076119871823024622083078929993602459848896702916519605787181099552953540796999321071579959734780303675755269870675304373266600067973179159428763102571002946284905047501170992479214478618641167873878825570872774431901211764414966184735980781156188680212487472618165899913721961071286693411564835562099837653115932782992834766830592809405647932856870573479868594471229242370582617398333506071541257845353813371782175839933125393170829664162991693514761975170916921974423699178108075500031398918403518205297741443207416244427431641948982423863747239194918539999671207598204450953754201824798579310696526848515513694775132366377569632080715293663950585401924112997431264317270906244465214765148762369755231606836989340048047106561476567343355128597497390721927615539220895093032580025856721254901249410944959369470780249512288969954765475090236080957097895021947289197196724206682354727416045533588714117628629326519499688417267383873365606303344392177621391655564007842869895307851481546334513780257487032822800890515533465858825525136867197894462837758361012515145864782563912405253719668605932295370144945622602225601254760901187991647760730005708391796497760194548411969573078145715218313050674031609731365636534926136078002669274554049833388312282500717574561294592734131637780141924223223381879379151028154177814963627375371220783431552265637817970822759036919779922964829399696038686067797871898950809675872618129694806593165902734923978522271887148838360565790575227657028155521415364946114492341773780265333306115945139536254282284649419862165738347303475202006796867993350548266714441718388917421741482818106974331562837267655298477728347748333988244794657635059002460416463006619754427483212884402735552803424227009945370296497358782532444320697112480836708807920385438878655234207899918745245121850884318121510229937575590632952011049063225570816391778800601218840260734155670826114733069302183321461791363841584974910176135766207031575575501798930280381742162114262450582821544644868345502460414095251812090370533027300245154894363604395030957787819005241421990093907464321831022209589645284760610724203787117894233133075610802593632663313473154387702887053887370028742722258431972267501649340846027318723394793967281694985091749167719832934408423128810807720560839847183307222451063767120743260775271396295569170904639772795570738133023557664907967935346471418109551930130230670045113466766948480418562300288953625579390643213878230286078492629504442667934611243749876917860142847079912245837399250520927843262175187755545644825961661081724879124448729782642721300012298062561008653762211356403092093425648814098035886849458733715392028578541483597117845492110637686678897026701260279031343087506492536370399597003241341889933160001843875126140916111801154662410319008778345008893551262328823941407317914946476116487599196440252766014377908426505485009354946297832184995810200904901845996472627821907160177928509099713439360634635381075148710066149270698234407483567655668055093615422775448386786093689191163194891187407522725224981064708107397048351867916547213105451123298390546050181645449700468215571900198941287599959492070942298350412161176840371340937881948263187906390053281595713515104262020070712620692495818401747008364080797287567905644045521812132211167801124225878564077440708216640930035939876951996969421298506144976792961067568520160164396982532172123130467621404111181659417887192026234895970854267375694314383998060775811510135987132125764059569641339399070276562701763080821688858459159811714294073333232671375743487909870790565997500455628160412529997674685138755384997174511801074580702527163555337744898023011166924255543024526366622296534915045122063042322067925620927339259683720052805522537720537756231089024673717731890032220559927595301711180522119824697195215360974900601335288112521077570692392103312237940464235365642820134078883139752425746784984798759909651992141157951513840228121970719103372803992666644678717292657794494933472019499341535608107074405434446530855719187058839556388799983428448351548980065690125334328463868965483500110698456400464892950609507789794716769744438950705872243231704431618824782898434451003305467369459564319039627358666063759627329431478933901601697105601307605672940968769198872153712431931702429658873918924033128769188966321445539965669545597862113374898452427913976850536704201639147898081986736938661363063765244812673810667839462495284954897003332327134363309495488407212005413882460597340708047225900291378705340668959636782083436142429304946442126296421658660268999816686641434031061835385043791016649625857893297132124140883871832207543123129853394714517754434579064694787768803409629443870877715662972973809011920418485498763660563801726655776761366997724621872967143139524451084708629101161069470886666524939206523994514891693429387688458647719388059135020051549754165505220976550740679784987653941914515199360967793738875694109565298596316369529376261918546111510636775040544312762023927156903211698312668429888733254231672109917956894982492139235123159751475927178930545452513319878719242544867058297630631870741235667593807433312934085224846658821299306537279312799564571230369100855606505392188300714790813957897429809435338492375600113857726527893474211240505347532637565243023212885938401121578038317204221747359357733056545141059976424703449922839551646403919727731109019888740027766959222224392762860192741363711301436708326439123517835052129361912524724569051123519371479582435112139715238932011707782745604200518376362084358450411295654958465004507085452379342106738028135303590407381008924077844544606481219313417202941729147659551244584778374580409690151469180579896203875224968849475085387864646946152229095735064720290978937497522245485869652803543909880288477964278886690099277226146518374851908835700146755891516474049694383492085598373810520652273736803157142180413638066510820956390315559583250968352343194660716194124232936822961080043231727276922688375231115000519662852378067046724482219161284035911911773652609854729090876543524733429560462640919204868350095681752376401178829271039393328866563299135143768856890290388189217955114193072937213758585817563448991230136264942608691070175831190865251729744169606390272329093890846270754207895607095180396715754030812802539935230738232605662525638919595688693471207379297312223078241795914130338596900563533630486375941689632066445954617690211815611580357407783728785524966736066072854659836973065209859693795495541891365411952127602606391425244646957152148147923133262261925925370486895230480305200344174287338224264313019069770007968140610454212849013875206439357443249720155929726892078377546380383164306429354507856175910461894692582669782680254536612771221351684439472320811159901988530461114408968208718683292658565734437559328647042618117284312728127706352413925168339563020751072964362493739189563608826152370612683364404193364013126113804747893175271140493531006912789727101613547028352892371237610194179477618589280239980495461870010685414342111440442821904935345227231099894228417433496051034586334267336843041149782471814465804543880325992661613652572442601238392680380887258672233650428100504650681172447756469861881975109167297969209415365084664488550496121393889678414292816511355224428735844129366616423951271672561322017789906144927961822160328872137335808184939253063718188075504933911246969831954770629564990703992982873318607924624587887746295871261918158907802058252165576387473849355191933740586812657528573640911763864178896202235501129995195273308276020740532879181269670523265550595931646221470452314925429375315400801400608741198884442470461393690134081804668413727240938130148038638805438982633775683439367687816316587535776230023262948357242377056551120170304581140158590752693755090346322307644217264108453952652785572277294897533974689669936173363893340756137064648601178757403284462767059158469224086037741258197994567432621929603198364765811631425301444564617057052399770567354703868871756047309670016300362358974134023173677770074340421924343375066040416572172079719132328617755697023227359763713120054512703284147560916074361756987472277598280723755603148338676536246614502443256786180262369511221481122159843306028201500061815604799845948992196059596262810306785049846834510462033993873242011228774616620892337963848987478440383024219555400326679572309161753696374835027421454752883077907407506184586508568689442520406850922066543989480088366125352971729229093672096367079262798278100597903771886012555747385500207374303081708227015560037215709319403272599596501691147176175455801166198935561055780709990108364731360431073505220574496855634625468158415011620685091913052233574262886534896342891270343944955888691979878660776634775673890582766664393136346154363236496369895335378651351387682334433884232626887858379446665533574993770915414527434310202931627909017892306184454306874240104088307344789644206972651632211554457654461323946249385858927928186038337556637816809351884091856181427810741853679016043155401752944523399909274062928132277153097924174866132313735480244613058264779818573338956194948782261131476294951564084442397496558022830454892440364141303122493158132488181498408263381804907970683756979741888742114876980931295820848423176712734505399509956929960875663476479752544543379385852419145751115448522895787932125231342344079030684519722919060337512475501246280452628554088343960945755470389291032306274531540342525800684647764055908124093792649069168605722618317445916213405566858470254196319753600822835508502621794932678052385924554874959183619304381684058291504445401953850517244721686355948762013210641447940917156045026846441473432682906735810419876505889998310539173257990213829248010312002858434159443531204903988715764618838816598342838548516457718297006781021623572267628709392699583695302187659796476801385544223980800945684220203784605196771294484918436329890291262258041302880318980594211294072505237004903280022489376865949295138414074652663615372351053960582165735698071075159388815672079186243597782756061931934812851869887690023157914020210848362266005458214370064039984740007197562620396437891589599399063831890956447730507606244792921117984653880991606265539058020316071164403875030892335920227853137004112031053556114396830048968305851337888840851648953038090354217727059987004847666888780180473972878477759318347622864198135403431226288638677941187449685296816712639902759261557622317605820532034760813041167808511609149478077017981821016330775638905601490137743030333004616134037644273451615553722729957855982003056598227285196433603332738182814360412930628693926014692757442610957892972302912978006610522216869240352861188266368096774136557983454971649301673900595406563484532573110332156004725474837303104166986267056747167520693174255632960508161249511525663421323191194799126814181884562997964737730110572619676740570779688173985969031369440756070415986013127103317145608872679865020757353868260835646367344867484767560490441955435080932257879340134990675064723668297512823573241831130169153692045266462092204892931105606347243912107684361955741634487197757881264146586193538190483318426226931811626649723178794636987943402050313791245675788886318097389596994927442154872846763834741074919708489734303729783634634854488740361594945217018793724522081695957477425644747830793857109599604479533613019097720156006555627857690362560249862033054612190389957135710270187723672413979782140341060025310957502782712080060933277066539405416810461508975464816915234453031107712789136368992435425950680448443440170660540589125929253088725720764409033245030404488773016983247089622192439501947776465743891422846773930566080171270383017072137397163498768135032297036968378348026494552373325736832137793071662281080342725415553498892579403343603434296327738637122693969597244921924343273986588065410593134100839543797651434027653670344737782799803262077244228695869259250400570392000913130760501450192180407724577075495334620604003738527244476793409731008954869592243640741412048069720686011653329240398538980236158836165126618936184064802710684392438916653659988712405399660222416684744732020339539606632493192489144514505736621111398013611737481882050112407213402972001520644214933638164324341212655738263261645149826176303362030747212997764937685257871739537017664295481652730900341206478222687223667795435850455495474245298571595058171569460765803811711098223031970738915441813395160468151752245885199599668788063904503338533377203005607770918977607655151182845684937706531169079060126072602139188080241923521571685631344377385592300851542375732879349270602045312424435153669275622296163980790979883817417494386490801187419074971851260337035453607322235943285665031284997142796905934508125748636666712261385768098524741516568460640315329820310659030540239335623706145699820053548887815529145287281753672016573581157053799541154500728561539556006768920572246611060547888702303311236269418163256961936570751754800542812934572779057351555728652877944831660682382470811733813255119163918601818338835476337395133195361241386573590954915853401257061552820373563325646467950375927148349311355603857821637090678180731539583962340857023513060924825629871385237666063738318318913828839691735061451637450660574689154664824711755935997303229312289389855524999713079437577449538722710496846145309337816396785501119635214003985866897803232424491623837338454641362782155400345610891771797716399630404584179072755250216218869019708508231567629109871202039874666157817277265472496197821554051357209566083692287258032388581249454680106838817927067507467023997698041812749132612417480455636612749019989894235771204549740736271178991824746831144990392601997088630865263949136912639141222843726748870582645286061929268693758634775050704096306456163990074388801434422389960765076285681984206895076195071763483128433468986584803981929678654390193444219888438526115144858882353589409944156904212875866293039363056773753328921346440282314122905442390093044966295756249323187772952855637263502464428897683247211510395224942889168721356781881222323745811230136896445012956347316787957152606212521444346557209755930223097679796911367976137927708294560955428242577841258581941355988707614352327348664069653206161384597822029918052200268220793821479495820125212525311205670127665151575535784296904408889350291249882084153397723085634780115164533589510742877988074768782530961950713324072988749745016099802551924450539154341135938576982960225601798572279156346998373392860192475280159957690314323501633225353499358347405423309137496930475705660365833262482604411144682051533249601377069471025661600983947836462859775044848670597122766113135137800510477425918109339573929006802278064144095100425242133634789742325032908544185237710723266516369884882083220131875954593620262054886359782411247220397602036296482500739964944815022282442633689251520184514895526054337565845052972536630028801691617684489852645271156043341679422083171208560094644390600088025023582522602543418746480664891987971689762483016340994835339631220308346772727650508565205987425883597164140795415764769217608307010893372597948576677212455181411418642234913801417860761220140400436348190832267745543686437842879524041193654835686911711801096177820936339778662029040239804712432435896754212742630895817223855045092949835241735328796608811798511577975519409711297733245142628076465377812650799384356585907442584228936224079252236232338524848747479139837060140876586265994460913893233706536142242562563506112518315368216616680498849950216240370207767784607626327646465974553630939074289209550498988260291519746163267164933753483443585464826256675164766140048227174795621694827942960732495231293513536255104166756418500852480287400495689019184736755243397379944434438968532903668601317155894075900483238754648997008912962228841767184286257234417389264473308434679867544056671255784722146976033268380549744628219765782823163850538841832029600090340550803794043690163434143336381356163195489685290215626028690068615320287515462164191645920727076791845616932141495123338962209531491402711108102822978484305809222463084752294804733411385553010750358092918507742037362455172349110976279811005592036316477939265121989738252581977797605557838441969434677254872928638041060996298592089148704616350897874813580462243502170692630668267029318605096000450275730847975642434316649789585213276779898918294194532214815656463168599048357391955687150549919283336545078249002504174279552457074996353151355038148376510656040832600865769672364697653745582199088460878618258007781463904551274650926220474547212910208779281744530219949876429286209739126213768219397801160924204965031182434125053382183943606848129360551951119029260553839845355024777784931865771147418673245927128664216116024310341392972587925055279958344526558296657786131298551193762227536797216908953369786608858072704310213029232748372940320218030120726060444448497329330809055204397580885061954952185219216001506245750454981631464977640447787038666971443637680014536343108685918751202959487054051610833882731215226690289012879284278373182036599110530850617514147951860546215542567885003044348904706041935501744243014425542138886579355327528803292788059142873002314960402719448693302213316399813620208582818514103394292357375036064918195040463437938528805775293259882807781691440683191363871427589967955247692910584196529668450050903799523453195803667032865629659559678551172456290853144856789230474160745013580033345659717240229213187120767573514233337857261360428866251761357627398881389885152543271687030686879566922058202154106966090039394729394944718227929865183214767817646122051901655305197928049544661534716329638222750888651296908119602567821640548906423722911458786627592270384472753415155813037313925091772823087841434767618326650002822540138736420275765634313570251733292126615792466980814546799856782613763087953761743515729750734553200491494313481383749345883775351508516032903376509494577168831976607661126168022359695831398803090025222422258695822020444254025895447267743669221842285171146650648333620783576989539887396300641962715128460127171851473353384731691693325012895963951326814115992613888240963510769124197303031047092205247171241807059534110145497789543509673938827814236876621642035760517848547310624602696127918352683077749531368028700942383641623688355815210457235860624287819742513675626061983616796780047843222178040949792000227624567225049968222499058391048936810574548697573734081679198435171952249337244688214285616689889589640153452272924215458080980594686970922579324557362349455564354130046018708334704446458369885658716879284868762581913727530420857014062175720021270674284339311446522023679825545038747064005338503656056439018040263057897252072100852036465474595579260776604506012266866980011494375339918766244201284825546676692542666162905739877609728467980528755821579278430483805023162179587713365600843417979161111746704066562212888210514894395326479517812449285180292130606968830598236158690651829744926919381816248926943389380855965634257621132990207731598822236420374754156286673220237512616278517794486926995782903104297125368991727531758090380324996795125088183254747725369665972667497102719543448445063032724332050509735815806224373409748184896762390942037990138458892046198850344586193370188259406224708436166405824516083459849045997994830004511090144046552771010751115832955626138312458578880304495317619078577450690236053095056503969870534563914150974383211807530459284782021941184445551817926786034614065040724965462562691096109461436392711384272133099375690826805223528704062239579051618664226667258788729536049716326076662802764733308794784369166428018963432141650904606646574755680004846983940436411851180798700434672112144459509930805304245842367247219576602176818925324077648837377765552439059844660185310793301522233900077065048156179438511029582520456106431869478953806341356069609013913562518253811069738898482250449492726099860031508331498985789861104188750723880253335966329816733870501564283852258666416375248262942715975578972084447996976189590401414075794043271215230790954788041359593689327330028656218363402788953744995466322887371953089660164772824895516040314333299736774017201707543809097298648143979467312934545827948244425979436002954830590439464491643741679865600627687903895595953032230005310391423833556316576488505659570889037022602824645887015037844903339097247516382893775155965915956750414954540505973983568791706874173268784147862372679616689417112261216734761554968049001016994577798891499267400050999297987107598105868040787920248781053112284202139918756236980933724401248355356588207430814453318233985142452116898931860413752114036537891411696876220532526073934500356357686080532567390610948456929729246771626607597330121550859482223909727827576934964354141571913717955658459106221100494614576183516819358361383459598660865294410631475522606434410354755082135250758150784369273043843398017238290730485229868160398914384887609534205394268650398216070786721507463734324061093862463229057490182888318858798651050152443724233353368405779434230343643200454091642452716488548201413483939888632009196078531239100781516756491332395337585014255663873706435787019566523733838150874225346548587570073483390312434394012604162224647350671711327005011996132873789083758742695450710380923657391870442800205790605362164251144170835835080152479576242629449130956467072643866540620295186912631961988409363929637158892360830044933362107598973475272258827579838259152236950000063486061121146653985124313487774348841551914964062613887749070210826496377965992588685983586167645349659632534827950318449854118795493686382404967376813265830072247592495787368532019029603518489433608310383502641068200810502611711171470185510056760167658664817698956178646998002744144781550661039521912579250589466307302199988098538860429426125534434022042804417451245252492048986961089619948259556151354289630835981917584320856188881176128973187905818479189979228447912252349133765038606040101000405743758320791520172406985849037049042219881394078666817030567170547841764873167387247152754263714205285022853941108226124670510654540694707772204880523027442181722252746553556782307161814448049391358404553853065386487457274357680885627167140240163446994722055296762348807797410882627959026836789206589726738514701090669510877076254262086102481100025720206338943876409149667474724293301595858846924952113148176650261350860120846821468222204619922176476495910394694689422698549761898431860069117457053629538899164421582065174891962259524713153394574977333501277654787607542787617078981600813468095269510872081141528814323248299743094439519836565972142825768954585824809148514174939422444615216245532247177811031094655219922144097069997416331035287952674506815646069963578831385878988812898183365012017808120435630683911351674988004489336302050932476254253717706324517458758098056491295020914207145931613042136865121430837148169953329123882280030347276013363340160149992091445421772871724431168653772783604090278865286965025665149682249969948147717704193402190646565292411377026206831389431069575584404965312776730889486433083692418930866737785743132829849608120862943723722091116096255063647708840805739956541572548171289076043166297675500791473251142344554212310398772634494167600214778416359243131919325384723867089844434341873105728169147788779896278479781112953771849915107461119943908268254025554983655806196902503296399668460953688742262276132351676285873950619071910401194504628493700639559551079710348383999696307536199232813529591131600422764894207205092423387976175630894249987554833077091465691040090370603791960046848113093477148167972037183065955052615351658026871631295453939566065014794454875957301424304544140253931565286384243691001832097173883610005204739085500948572172310498419897765150085525764469710364262771218473734257185439973216953390640604317972073108735298801904753735410228847403189149791691634451522821839511712269794150061830429803197783971194230502918463624743171503182620034342240306929473573172170776760133175044189287160571844208385225742970136671358980918979811027156639356759979814373256532202147377103857064872945088181616269072530466241442906426017828913360454579594568994588362260067553982556857600841404903007350957284256565097223386352526302424936530057491059250544064249874462960742701995931565999257078375051939378368680700980626989878441149223651822570010356203055752639474967547054410438922887424815717416392857820286949112137236212738175605508707298387255815675774559483832814858460343696251937624423897252471934310441203571702679240302408182967345626338967254584989986455379054687065082799445053706299278192736788436421352527517377090340233264723504400858664029781875932928025319498156635383712145087674137458103702520517213629932003681520655987139716191909294533560670959837434472130320182808139783680863681202074685995121239444950471694535054654806369192469461415163048096904671274445683682750983116605124396698789965561657205716837517803679362299981844108240069616712292790679588149439914021434794066071110545670928536699336337488251919601139498684618443244023721727451671356764028233777189343537261647861002189350872868384586693022361409693067624297552850780137531162276622598323443523012853999095528373054333917274440694372035114791137666716020116243637979479308741894338035703272933665267675452412061475303350390783426372024925066071835669757503150010303419750495379300621863586429632447856582850955346389882558438903760600001139726993612199745617986747344201885327615655805310787060902189636443566953253826186592351474925156715699248300556642036746126012445574655326166799147515091222905506057050544573144998612741429887309850431973778026101166666010631204578545396159747794103195137422943218545251368996929169938762989652037446499280254623439783637365874832776248701823585872424291134866415610110316462825078825964223539283529700290426730729302095691904611183568323055604012236552481885614687874655725242422567870069656584132023966106646464637656366349993518315834156191639785086974050331939790098695350382937584655417458850796060356032222289756072989242985111632989276955135451378846668417454136745285208492828798729586567277293771278662783938551621306415648507804985054285652599400514056646754645279367118934649115938977749938626833699870795706865875908412504772046867058805446243472020303505949745823319098300400271737235803022009410585210913858608697761279007636806266415302834619455248780193653000799441833848799151928351685350953190293019544980302941037188762368794014722852475207666072182829796230673113430552668559231724541333127340483599918328347024190078271395043061019232340943104872875410811338219815694326286231674167445713475975220823716295105801380233599728162408541381466080838142256255246849273458646189987407598079203651989031265765087606103810587926264471229569569428009648333168079703134671752836090117761526547299463380983922642886065666757637013660788421677249958142390734756327397779832877148847104659500525305401136335251583709522114344066760413884610179898258735654428149333148856703721821345373692068341206760193467873801692739793519354516284921178575998658665683393539766839734587761979777155079770047015854251904623983031585693416361108779777963076841630304849216625590832332134544093669731541486132355375837807085962663784362025742425393748211636859100463081083148033049391210624082425072863888779925962339179290941809903579524565528248885430402450463281736564483893604921159599420817093621843396724076344946937049228830236903278138897561344155537861824811544168667665148192608570550494846814088180575596520573291741639525853953772447787118670600496037260533949377004213384701747614280718043336907113352348174723945825751126046868683249952060355294443884072912785981084387735324689939988885836139145360263342978068196600388989545973354045144022981995569941780155833264422422248465458086954100377991504780117696735570869691961903273974142678461106646997890670352183106468487157475023166656751400346379777593175672430016995868956133125508816752948088349473663230331085191090469520470830546561186568262077347195286393636045310415163282011477575242372458891292085508702636397118959683548848352039716446218866334893787316737831434359504588147289262806201003185862434547949381917117248922016121239132230942856735473320878676854109078429184690987706652349866880799749502109901252792302418679054161008545311613749538812048644647515332680799546347817820934460440996214986822342187977381366335137924134574788319622384613981697204118673143087590676754189671661643332166513996060286477148278198274473745891190234750145556713118799055011699230646361953222430293576724532272699758384468107783676009054439924987943529023286236318310066501737418286993042474026521639686641645078089865354237441948170344087897934976245267740370903303194737472955055108524253766714210269738038514772683838668980393995583997350010257161138192627172060813218348139681393722773750971197125325899898978319819576928989785214402504388072788688806266806797412864990979907115698705912172278200748623401397505336551779020153429197864962823677195596935395137854000394502329094298526798086411860871470475946540739323752413122747897526620457853076441023318833085067285584845300425283556194180626816834067636687764562372232383888233248346750609072906757786136396116187006626314970201463652874309176307854088990928733171913730898788088448285254160884214210043106304492585965706865434291524157065945381262057272888997482608154997742085146288988544840826299168674861105888374990160484249234303738734727122005616384757926807172314155521268214851326499695447126512166788036888925620593094536895305143949513370185596193900394249411691041401638521555722456970487223390776770485853753002725816932247111712873344592373961743600438704120285644009234515241541094003478043649371475311549555962767258158366684492013013230289908573055449190674817874811961192535521492143043311112056262702409816533556748660912715371234055849202700476234173813437460741906942014443639585380412428269098307187988596869732064367258296160012549985326088686076570387464257264609924364024303468581273654771373460958074854626649111691714266710208101357206406010001698171205150803337978212680612874615762695393240181103249218772050979349712939070787232383740417560692617496243834407020758454273757550674000989927341880229093114146675695713399392899658112451503176043771302254719479627098342391284691393789355471443825301144946621224317486223672621183505512087596963920031460994122117491636260596758406333110710214043495903626426588568397145124964231202018396947870419593671390487081586300250496417407190104095316975075943416643950854949011705239404742160054480827009809810713016402849426381001718170431851061499487218376155356557840162482609619841717506850864587994440411035315845099330741367201713727948022055312654857452661139038369514289582905499932417457477759371773549190626255310392071329675412269558088758657082215935101919905611313411900463906159433094855536641809611763631894818633011758817281900466202235677771233810288898185272813104629442267059156953046772972060609747941303488223753761017406635472829786686139064440722597807537487728616683870538085252931210905279327577178763825311577949102142237092376330370364993569956979481749332608773177520233456856319264862712255793274692794841654257782962181168111445657182516661225215138788176668138383849933492429698058048116948196904653161233276045402590137655310404194206580798361216174699431364753658046764989077457990948186852271782184936313998578063123623051732683308582308476423678370076597026801963314726653371410355066637876454656088008593967429751977213737906517037722969223012040080662664109756903522773476460141373896737730755328212718677990910826809874480891836196242914627866183076470019637365867044010964086789685067811620842258185655253385673685561828632121159564486850187320781246279271241614057340135404908207474409338476541237235176622299790588069160271799124210561790960946045840251475126674461268797828023602494022586371516627956874365013852892390061841990229744642501474282564038268940189687187546519095393674474754235123716865112142094748629764378472454795815900343367227804261619881733253130831752730876599185186578936988034701856698493609732910365557483260491056842816273728012116525572160939524808045921984744257213575064626914926994867858275365555143103720725462933791278454384262667217245943907408135487634260273407516555952329602943892943123295925618905094121888846747098292285900816789324442632756991962693651362250212767994118950340669026015294474779417357824463121190264203871482130215893139134918720723244438939444023055807888073926212124166664598463997239990010399119625773278415121610951416872961997060489235823340432791075079822017483901109916889704780750742454643555865422047203375826706491143413294982643180804107048727322199125478171365626255993588855881700166553901730369174931072156897382336131825672867195279786151414300974175931665256784569029609578114888561829650910045369155175804114416208383035360472436320240019266037479650464583351470411093884111405157795343854786647576482081443319879123864676524220582838361333091722933448351774122294615488798009788380592052411980964179868495996140372947410693150166061272136749436597406214234205658175476587885434553518800440682591204524265874033764148285192026586636520374290729233649674436319961357478076582894860066713537170114403702142689105589468976487035588009735141738079784406787001023440232356117222951808724882527596952909511719661548974617275506866771923681193500010878109934702649406538553384655031896598677371518388926970863043390890682143956706395592294485619356116751324248023206875260624602550622620704424437630628105921431181023389025614358653679723994246942513852040568160678926729925592154405632047312803610167882720453365378371056519181162098398618404078499709492491899865746630767868235816059256974080152642560897204617759800319450045262559104937635766366025406032327429593394668583291472262739215852834082670127248758485952720602632562122448482043088582680751998247263276582538426783907320823898223519916347379826115676875132680285420223507384219378998045717956245009584344533182115865719433784928320239259375694007718096937972924020592572611123281162707405603050762626831328436001807030556121063690844933368616977183747238514449155798309747014762802214648735999065218982975108045340770252735035606846536509271259671337318377759682539569459856051801023159777917757940570586412488362638237905372922080319957746247857080396065561168615981073809805184588776095388279626817804877492668627806835723579725138058567942543654732656705411580441991058579926544597860386704917629251767053010659865122768148629755041263396307857876855395666417299889930049697297466710310369050851804092351306390282809604951294924653759781703221478974894798559426293554454633632062663682207399862852886059888178492244454238526402939966088526571870809621774704650197875692651125247702744278721576348388867361780493926954777502551252306121970468604730133764781604982164458564677693853148492705661882143365394079041738963449141511878889602478459368612191104464364859258457572612551633314947316541985482148651871186352862617032490135126730995704597259514154754248808333913558899997789688138954185042836648959962164985303459329260041968545338413425045308611857783135063988245632590561683116307091410884879539226451547889220221702708987002848086870460843946675474429475805118132372605091512172554068006923549151559913591966078244033138969286111221284305845054308890207476628567879547009611105243144784219187107604257433662750785317504101832913562744453540315041400740993201998860058613163042475346432057494832439658904773250767571260025514088825044308719854917934077124220539352010542923643512732197554647186815734055183197293843663726635302569969310301782715656029051289442003552835994673995387435420429863153127373360012202117530177627894794288026658370113291849969164984378664576192563842834111154506807492569798474561200301254968868984782922514342177923534573716005438458174553180641168673145107684739935703860811497867826368217447128374941766720955171715726854125386421320945141117933535040474985292720404190480199106915305862762288953126452080979975034760066455490264417685253350474916464122940935161093002400141924750475875619164816969746606425411204720133801584235862488129904758784351416740481954940321968377504166757446067357777708713970861366654455362245236411129234968166475723274799127048461422551847943839076465561071323594978358270404046004167414957540803901162463752155868493046550718687800953942377289038105504097761470701183319914701151306337995637896117823107985571453671642903755124608929889151754221407367060866048156248487741108096719730929057651475538524859897710293358771345810928010799893703505010968421906335790005683328157193615330151376115184017171474682463995694402327928885133059339459408776128642904640709517979843943675359792234676572069998873784836336341618181859743033196507825895839266433536681032343490878165159365362013152954721791023773424619308555671409331449963105845059162755836333743091699928911987538955239365763120353600027499057548852284127945828559775689142693970681048786372482087071987251618207272668298687906287658209670990974138860915281052947260085298742327929077492057988357751411609611878721883900284971420961198261289223636128523351758330741415900658934259508352080093108292990982247678299744279838469030669414022267796218178937528533111075545402798660055661380282588092485716870754769359466062657700667070190171170838527794606916550444737380802028865683910540505437063434874011359692804539543012383549422988778577449441358146933223921958418780166107539320921762077210627997554979398695845687404858905096810834084171738817764106942060481140190894269004118495909878964902610042562324078993193428496511154545650835516695736345066048983180396556831823156587895060580188337346396836776030713974270379621907522299647416058442734634350934569958583765453191922719887790873672785531149024284678442919732308262540274052476040373290904308892672567119749030782466471754051844982726607966697930589377940456393982273588988740744954058564856699740630185056701281607901395836827906452105792375262670330754383785317800400592954622755532310052810826934884114010601329143118800397541714189173626556519250187460554064972035259568404485577889077870554888933134714610987904429213955309372649417265776985526311647939868740639668870686839038194923063771991703169372308537357020038660565231151819380949702583546231926169359646410217759345405646647903473863230751412128640812530346194650762334091486826588699485899371749931309096818624139562881536634112403464679095470119670577540521294150407096907945560538387600860702421047638910441995401735683668965384661228620605984894132563137442890714794098461221845276759335659940027609170283926758260575879348504486060011283009692399711780362285424513339850916997735462298402924986336334137097759149668586032549042864752768440521974194180075378972151027058670244383657057208870236105088814345333093205547856076096431631105727075446057877220391236823821466171751063005866723738860574621285458155911257964349754786257984813458293735097559530078869122653667800720054990240946474463995194584284058411352268296373571098536764231452730555718766916904968889240983181247270946367397453473160678267466961852624282672497543354408635430567749585202934126059447533110591726936971064977614827599065992952498949390017926830770420439393970357813244518941584326161125165016887115632898794692147366531196614227819765411706727718798919352005392265358161803404864807477491500196687967797409905225100199160200354234549523102903027313899795769059482872118956916570380172837896597336214960431715038531077851251570540796522723889982368148574182858402533464108135371483304117592271912587771835440607022191946173280365427112292579864580396923791635627904285924523812271226105061604598886882066019850411264603958918761910760123809232550854513408129858978724704964433860124013696920855720645525191138883548695148459106010194308919782272619993865209970283334780491474527440613165166870278731113148564803996699917153441246863030197537762330808072627488645339607467789272761438138578356341211493925362800943239419429241771152826668855849960843785915991474384107056465555193437862200903545871636095275977520337617626901792656790293786823557324289591469523119042056502941145122521929528559802860368494436527393245497305515361495542453913363200831378681318864283429448271632758445580629389716365082323707783031035194801691585127901479306333805283533701726776057675273395350870918193961200036262428001336172519050328129714688952725946604403245939398621643810126956324699063667507606729298242275387105501759336796718281772842622417851230119638745898925702920555284816220329734755641996293734874681893352329780933269382944065373726867440326384590032130607931072778684408595206228429211858707408315004117052515254812815111968428085729702706088116321099600057457321745493217166712111662738157477701049926366225659019385034519987758636378884571067581535792686805364461179801581000004309516165736326127409198881663507411056509011249723825510642021434366077645322312055186456072959392944010152073864829214077296002043748049913041524959127276401967396812336222969039012279622695108932251442202208894957013250015513169720388858634458072311165280882019234960607569046059465159949910160700517967771343842962685669828322507904417201827062249685814207309847459711699141571946227154905757291367685793197206011789621316519932730788599404594180628749131124673538816900177005270708548744789399946517770949860373408748751717582172202382235447025690766839189598939917183551642188779273686498437382018090865111828058458499934350790238348239732453105215319136590277397493653186894995547924610785073546335742357724788784574375765439581515875958398160686208440037306671603194855717818403001312966767000050678316108979987642741151863206796146823093200116778138765281045344893766576201137090110693148357751660671355136500117933490569365447582277135791189322878224212552591131081924556188028539047984018693745202951739261938050244672428402092661654382088057029756751321833557590442048893200658627240333494006867257462000836359325839262629455862519275581852408194012987966730789934017381801305444086735462043218227341650075980828766889229672889679379147459559585743209740018152157173117025906876639499244580847228286437291208643475447044445767001142789737337986797422743355442613777648724852415541019146736700076134129161981102330173629483178161035200125070239295721062654440500703361420934450527432627431857669533560272495514080761956827679840589257194817088554293187967395349713405866257145141278052875672830810866926476314133866449949059758846830856468589970585953299626387562376631218457591475256552774122188423514123720308403912656099823775157543099104358848010947393245703206278788177393020920594630353274406739209144627795417905405437933206985443411559702925045100045607290590077897657519335630796320671323697232123240970102018124512464827269354521185607769375543728862504011548227692430883283607834862894449246451583533071054905498049870859507220353900420816590001240571188243241342941076891578333058793044271170754225524678922634458290211412723936444032284845356952832134504549021918885483374124504140977697476297158833639653539800007359431752870514075050139615145053533034220809215392612060032421134542429110786749938386214815800593302381932931555979682484190112223243855895359858078481883704394723439765452203194214498571928328247116626566197582002544178261340841356607844656990613647971288333422653754512593648011388512657947599062895335938557754489547328778879813074924370755885996849458940012981832455590629631295023532801845361666425425493339770930657314076806358682791123695891813137035977721561918298945887516626247579102389026577091783850096342327007372388281932457296096710740852082944537158667084066187030011884247160844847930835169120436171684410885515300177016072811345498745404265595362164058765595533412283333903752334701442963376047042047811161097819918460967006198085614437714571366892713066666962527672213370729368013016505040548984295394913720417479434772628202575898042483590061992018999198149253711509409494832155725924799251063753252519243986700697246439939809744746182607678154388144093218430772468478849518907908976336195069498212974997172375904002617103137129713894681578900046339245784824245075612259686788032392907944919039460889956007283507349363455633826100385567284327019614252282636594001420020801566443071766644449000649205956512122072695601459417927311932162006863443215452287100731787121620976079939867958880235642798919957540803863601083882696337132150240121176044004067325701896833436550924488331738938609662506319527791538468057701418703547982369619286486715999021547808523695509172316151207100933070135353575526557421056269914775010384335365570471147847892779330057613597973663198783562895850608278820266259900142339807432147494676281360554692213621726556862128439379846430967338438885823768138270077975791248938629296284880218697877458754504181848501889782676854511191303498455378768985307886098522849438462448993260131364087260184080310835255050006927863678419204866024878112526541776213293891564557866001092321970759967242267151074110566851257374489120228303940041550361626718305367420245101551896633062960836800261606742614035766671147730606604065071960696847085112508077607467187133360718679185930124251001484704263152609996830482249778825112392192607394037083810910320332593479467569277318507601192601749464869976154162604922587704760164957304777318167708239422627094347958229722184500324468365253916118116843542033606883177625267054071357477876497170083840924046032611819524804313384500794712999841142681346815696952564582022417883041179206944203142825070905968991985456095777535384519043726556792923108983867949937297597553739456184331652410103574100973736189469028893510617078371815515930318842278586462646961539902985219180842690074830203336693881178872845799508456725461784143429049145623516619019542144270478351813218685734650075278788929837955491015716332369491629757448671819116815914255388787323043060884629047922505709213275755833395859164927912712226423483369313802494842149381863674435441865275445008981244955329390450655585865799234526397839862073404102119223354825342143190953500282158687822352610152559415255379917617867679263775277473285528382421702912567593661565387176281278910724646977728509205375473678913902090027693309493044834287310026321810213624641138213376819750470043946841634807552536899797789911914659449202978679871089122784431048378493496132763404838144730237807981699866082841862459270460989415974077257208533607483193635112734067572010587885176415644671729438437821937446308868988366189238879771758050548860817860317338187427495331196737748891852629483820013122101718829837859473506891108300356845635522657229722882171843247454240645246279580169395307173964665819969122907715199765658584061018985264722132704329330642506683795700613571571520060315373822498804478434849998093147772403600927793765109090357398917673598006416186414572653950709728025834011983167521005982657284170605782039646834757425188192640441008805432274471142024321281849186333178614783851159541645891609365399070271045679911376423688765209167095557176261314937306407916969497638870844661983216509463115587782713420963751169481279103409970392480780888981722973604215176001734261359513692905931516624762945163894104028073834043122277785266029538969141757626050861540913660380699952537752284717252132389506173076305577214826754507309057895784033559470581332510303896459088237607474868078227379485399044299470053612879357463804804399226852614573963517073436213197804700096391868602014838878047743316679981099549333939732318361110741097633769847659186527122690382065410846063336179485762425910628294989543084256280132612771303220595717489182782573915323024042451013095247710906085547451257533827172473220550700261696006166746346327458943696603622081952918366545854211971229378483460786383482561654986469457491287349601795394546290651875215436231146536297893805576802574982391218986675675486545293110926931892943266869323312723310515286003706417969303861533911233616827614429811451889990225796792914391248644747608746898364198098406036411293269689359117461962911549902389603993716649926811936511938905330005958558611018285766074414992219014588362906549386295154895557426209886092748597765541716110462519657383131240426862892504528650765632251775640230778761850892438264886234118297619109131666542810398691940103046836834660091886527149934454568541009069176022709998636387797912934877504168313211343523628861377445976559511448809368993368894850424214452123929925138526110207398557015386186135837220098325231076946582997458109632834553202608356478650603061625494336273541850543558928498935116212110923086594296736454496387191962649073970906055311582413919233151138251245588913705374244221396478120031600146162192729214924602074087705133425410002198202388922624657672006663247492292954397186353308947645720821707352904359562215402617258507099118261392462564482873930292312533789726189645389011546973768422513142266830157121740128791709566571639442561059843648856798173427977533425768206862620982701070456118748928786005475910351515869638998147469206931907638491381222266227746991296831889403612966274314361911474182730317574568048871912060352395231210847887700423991977359616655594902653707448276821338797234045530407247448075329638800561477820438430941143720310616606642651784657803814541842725009868551732293128208916321354942936551689422716946083345361521881194712719493836137279987462544638135601822571741726259774538415130333826674925188485493635059297516458621914354337976455550913265336065295432893671628118781051227568287643757004054396921097641251616234957202598430917699004315503641847137253412364986559116209903846298732665213275785175877918750459399256672583750781788215787647228517912613415042741840697057409584124081698516393844655835223613271553300131389795987906026420709015138649803064378374950894937539299238838805993240268740656857521266398514649441397466223182604965254299093563819890160588098698469791147085693920494418903050534375117060426448472034545623138875197019037144986192044038190366775100157266503472689637292905081057714736566109864718803711465543684059591104147038512791279358509364558861649738333804311900062699862986376031475137611187214585570312279786313601861969580828226530314923265655780308518229907802080818115512118628085746175579483564279171386904703929826842876794775722623521768013077597342184673120703008827547554159228847766914796989881991240784871429486859244484298424816735894359993229940358319071013946918341542376923216216245335352760815370863523823936857538717807520388164029699735222476182551997354014875722788988969796434437184027929702405892078812333962558908683340778348737811760756425782404939336626555961923993159641289558352989823507069861972082243796012257539220432146886339364006528949195504095235916727347015758591195765122603461196616373462858673045051674073167707520568706178637847008801005157415259856671777147454092799308547174727822395759764060397930316940372714524513334561020196274775170635185889489326099108595143835007078432488157083672104676200382798001226644997569533701573803638109331492444238359426006041707370825627295457082713196767113917143578496224713735402370328960928996833696638246314691919399824777265792609979751095077905318909540291892475179858162790408516778285792861171928829923922505627984538045881201948836193638650712611534062250451071486314773552396561260301769225314031322584020029266425985057532455870798096842631417661601520344012705170073724043581984854927440465279190231262662975092960295505320264318147427346667338467243358920082619864575644263815158827217711075773186624360492870753848671385403921795910864968432663123344983071166803481200210664502773058818284399112521492200370827976055789574385334473694240472439599223162340848538039152087999890723713707805183069237029164917439931149531384581434158739594084143197108933838807220455985448812065236410091927894708290382770114904406174935207535597017677674783304828433712229326142858156375259199506943978494309629605792036565122383951873309781524575731009790984027220416722234728419763005147680192152618526397295019690445060576046179186020629488984404863392825517708679041915895434355753616532518922327829116216239723415602813825124400342960568645136725901153650746269126127303429317687381449983068893870680176159415437260287078899297061835456421408860630822779706465085787329902386481133070110385973219987405627697132184572055657928474879284890429066323856003853480774250468067173438123489464702575553459156631059643292154354470178387342108052530070775809884897251136076235983879713987550599598525962308218506829563346259272967939934006144866951224405432493507854780696267010443544112307037739517467210551317248995028345397650663927823164321647822333879165369329355939891551231716367815259919547462211165987778764678575597976021121377621803102718682552674388977763477350659068398997643927254527788818043572263384295903306670868999762701096893924307962775825256973666359719698497343473149069038797645990887123617636033125717835743708351311259422742716622637402690815371777369900910115559527346417587343303455407422687053706730032998982110809520274004995567095175855392123456286721954569067846112591161821724579153730475450778296904194978907670973567829805919226659450983547005453286110253801579046328471553410263184133062385808049354482946275289290228872108973719018990881449772687360084076014265607788379228551776843509392983512897994647513956401200004810767731104257071171330456643220890769621899101105525403007813309850564454278147990760720644730530660266442246320174454544872768824392502570657881368492451745802127036537713081022208402635814391800394512880043351181374204127581759855022301564951290395545772023316183740974673407643386072495474866246501172833288564501048197144711258148581482783190377772759298564783746068507208258243399095556287953967786580438740449881004628959067908771585094564236025678376392172076809213729021719931904751386890120864968770012798429283118531335543332899122253442737571334163027922141698036332938203754062930012132835374071052456187126134051347507996081800491486553794829789519521379040223360300891794301747454837650425488970748534830065983486232782364508579045554784411577472960092092639332386372711486121038792915607937765979776450834339039653052832558268203501255333244143365220155584682494711695392787080671534139669562242223799786562728265379914068068583212599329705714402029278218946931979526853730028702226027646574915643163627360336287362064461143695511905862598093192120248951572090985795035106776196302643735457069946041083409206018648229416439839745256936302220287261476177749528313135625266353474279356786842267875006950997857273100973826177026568707580203051447795646337827350715096625911763275317420992033055036050565820137163202824332360933741648416765392639872640725750015953131246444641326717348164416673995357944175774638764236337310520693433794077083791398896981536983057047017282140960865869978099886415076259022156156480498958615978956711830451010861199572220794557007180325891965591119487682798605741886024721089685240647878373625028748940466282750869800914642952133000754078066480904500377075395102354568541343652776170681203282124172622891326371242090079864951880527009105846246172184730228954492960917922513077654375043303389516757991707802037141652658359434971858432504195293117038094618778943148965372162666837681082041092760588107047148915762427606513483060650349272567693193011597457150652043735935650754965262843629106538076673767224487382435026412320618965019364403851745851343591849436531905080868356558450733214741366531976473899050177988998942453271945060491402760774400092121805598930565428334321688071427060500120674591287411897745166237896467620367259117058193934854615372483172533185017624179139951752469813640576549902752102999174129283870598703414859877129371179073957194468346347078768065536761762636213456693794243079918639097551716927825341176788514463148947449667094717368459892296806844924524084155651668256140552498068819967550800184893528838110996063664335636678566321390399585769514720648218994857207029847548378338034867954027754511399349272910136392713775838483508328790764352317749489943326170203117863843711820079157312997782860651405064231156135278061755869062207658169311453258859262212237240168404202325565980686890142892532023612068662351800622871852568217943730096657006902108734795556918500964162195673615306181147044571682618833976223792149662555877399360476317831851059676131487694814959113271038722133775415146735894687461336418648895590375976139696601347297122611535985324866547468592018527662853021408569203328833573136785235881484454363472507352566838642765023046051925597988617548630962830002613269314459707459814704666522881433349254246095995984798894545899052035977304364228123663355596235701372329049645031797663551865877548872138855248887197502980939701553868558745097599012561714685678910510435581626819540565752006734417716159110607257915462543250401717021713237222308461189801933480967666835401929761366248714763579192649777109292879880970790236155087644134789873271781858933559839369962125070045422420426643621677009878452179682947852105741576396378835639065873390222798923521077280046414237148830843353651994062787573566929294590792140394201621765231957754802872262639138004500828970057677171338211396557098811453092785787015013076768771217118645672433344358678798675962605057175895254840871698972712895075110604925938976728267359577539819283457643028632409710204433188071590254203812496188572236565937919510361178524022006105154827245593914538073950142342385430962043763620516274684054639378671143904109013212649233118176857915762366307783159055887870755093994730113929563162926348463650834483354306286622242868681935408676712269184300889723639031706796540354341991332030228578409936830792586806469649143064566989255256640776547707560118792975703246338141952471784475845936861731762676236862727880680974616847191265188793635418219286866379865696860090231405661036314097792067478783408284040526503038861063994662942135100147743805286471759900900071167177787170927303020108110267243649816656917076889326159166162283370019932083288415675700663124783963710821648895722978736583145760644836563336495928185033089292723446997282602723403413705469223282934719937501657571128681496218273698478551738884207576942815588362273240637162938755190718689364064466064541407274279474288390374572110796031631833428821218434918148812920439450068967210276189731397179049510472202525044638474338901863319855728820218952597146637237631219525071758669956980257813007229238494271293033553651845529876174996713760780467228858382481092833940004210903300978408655076223867362645252782422981707244319885265751578352519488337401916233084836844093341189552531654665530819590123749049179272658072770980971260649027650998309943205540019212845445717286877518649332639839987089713980211805274098862553516745722418967340882657409813432945493491342710860929842001902497159509784433052770554909302963360065829983186853938951387069623270172119101087712586688800311605559347892966079485882839785517352822541173875859017362002616081970764393395183339736967249217026267464101396566326309399281803450216156829558566405022683676184201279440517389161560529957838371260738567595711689136953562535438664489096041222359972290871361580698571406790035618790944334956570352880604012159069914881807633130975846191720755840351242582518325991865024350526503259257395227004037881922031875691572819079410287254586215922486974296129854694681515621617101268945359170859341172907563650851263406585846967044079759269808257221797290253990333341596728207588106196781125619760663814040432309568711916792358991956662722189936168301574764600361122164222091081375594373521675285197075960783647229055262280938778847417982059726203386620655678566890583813271653246290582080092783180999348456106678687324423664874582164071810962078262584581184695994642315802461305772744232886888736956059447655333316281049584384032427405280730273775333330793942893304845738897304372180384112743107719277933356484486921202458249446489004995375087442643107483361944590241227109745654110446979967465322811591898233176086314701560728017178600657026728633250379114764298314965194120072925982529292227733662445479099490336660181827107515632547444589677688273814203832882715074294557648948020120473071534724258429470392667473155863654031357557297379673657159131641215786989696215630825679238657378349975591783049421264810574651196379183280863400789124202671005929133268740940036003264195824172532249373238159670213804033068432348789406380342160425270914892377065517183884358986972081104318207490727653434085930239829131347872320586057038320921135231721237667587313883022012576874177138971733098840814949929345364674641249146156955164282059177829479140802223219505057174819921268885427851546233505948484181057186399222246343683065372981941688510799354276254228664678719488600635535537561309231052806398371314489356573971446886815320058619364344697695530563171014427313684501171830370074980931296085172430357470906551518369126346305764855759394760153052378799991735758756534603012257247338288665821536797952447000659711385237269520583090492711328813770522941136659473107533885451091329470509835536428758213824394710639257268098001487479223009084265080661558868699724011206981353700104099938213765427940771065682501703330529660386547380825033712088386068581620725494788049938915243885285473258943707801257287092431857751178839561003892362859439447277539091056844119092654923650303417773345038796382316142475737663366609520515682529194097747647016856213433773911859384213880295037917337574604788709952454335313122712965426229178145005295411597711661463926194444155809230068057739009678521453999888273798538761124447641181117751379491563044463721441051665484108905475906980683643565673627686133843037613495884297796873588414416871314347770476809603928657781526280995552803875087865140567821140237294504964390304508177016220638490648293018108590276210100096600755377802767451765185339306921398003971079342461386324394941203365770567920631631516436733281258411646652906328195920819226030397531917161044475480775311649726200639531334727851623088323785106589527433384666318217822142175180705002748921107413098077998162521032976205960022053222264347558328702662296651190681874159555729105740913810171350016642240499640749463387825956129142726876822520968204366113559814119109407337311885413182313873295542557109573791679043535975315097326109808288775356373159523598953079741971961820351358063755311427217023244043351781815354136562239797884297443023338629747774346710890438341971391937795621359242463579563008064189347214465446977423512145523127368722393273635710816946804034768816496880402015850556453684885095641469065762185844356786584494682759611361232712613451142378343646167191273271204349275521728403984362262135858182975846263713557888991158620748997737423030087619660146442082966828029812583340832731285191597056789345085317499009079956426002571341379678918390172142084277864760687950232315102149788149325655898069052719737687529362530126344628846401293834036427034929555562443619584758099702574358894744792231577172975003541363051137885318164159033070465983779687521365017226025403737995447119459578211778148586886607195243178178686649296225878175521091781337747245987965425033426412890781938820041928588620784231615582469860906156329043087436275152702465757908818782661974252913064336441049442496851458486197333727874838907769600205461993279485706435001262477890424999346382493577763416570115874262231405057897616139118560813999821175411437553029982520817808835646705822801770885663226772046257462945910619927825585456825175674525278462084051049547144512268773999880069639497941307402152406926529416871822930207097383951173119366774282298079300068795770249206333627813503947953222847825052053159276742082194211204527416094084389295504960349289776705895539390923755793672433229473039342739903571815013980333009580820537760636556041306294280165925151654073192521364419749828519051327527953373689828375601888757489350684816167704162561653847332076013402250186491515841370613188088994265098676409242255950499038145999433323659570975793473560015202654445871333865181655259476580501477366480587018341101954654398718538373152965798746575677987840071879964715500611359128967430578158636587117875663210754615418186347130490167378296446314975259002278961607316988957148381423837621296416872924385528513798002541694043275326958251743370518918127523312187829077211248539437297425224625576088917545851756743031367881825377544674390825795025753273167687003010282753102077519680340307146500394752957714315331370823205423842833985759099210602187702164770423628509633150518635990038830878490900231922551253307293090542572595360476227129833200146096353599895680232580938855403356454452585404403272787700987890004635371139066142266020820504624720528394017462272976259049308214860836217616956684473218594609116871114966114077672215766879569305306958098776566830130700353475744980240005962600022860798703666166554554112728150915126480052865080576046319696358672482181299514545222415885784029844438106401865907058566778007884438045337419460029449626240172565963345353755290994689428769484907115461163514028747115076801256696412388470480110249084001724295372339896962092158434065998334834865878041579829886346548741893764747087375653010530048805573814816575028347325624965387541520249304732489071446184686160923027339493772447696530410946576551598650945315193846903188878164904234566925972358112786669293933357856874733743968537599875130882948637940707969765102275046781637499879360879002709317078036379239120779093216442875045692453015959558002399920670769253703894689308108815775978806627007796285646777181445040130062875968098339768504813392114825915822368310325557252558714732972525374402492715812155794453459819276386438316677006814843601446254179770381406743677732741079266293219329058582776109358826766878634444745794699890701550235496233632691942032660728468799062919888461540387626849775126347521485892998901011696054975803125530558186165605515668627026234579904851622252955140940105004000563113333586212323686595882732371870435290092671047921676365985535580886449803584189344938361992445021608998617129690564156822901214997745602507347252346173723208889167501574333912705786285402923198574400457850014421712912839818953973001439811524884375564104767176592658889085303701183926550442642050340619806705573149236507465163878223535168500166814892333204914329116033132517196718598657243222547843549878286289554457112486813532172023002741347814090854776723907351675964760577534543572890340559917579017331546763278150158801170314963172563081911904055107761068507238333089486813276717247816088677308215514933051214272553641328365111949625336588739157299368263310317613299552414884257218512438246987889914654527124114270076973165920157456454236897401741072898367605617725555042091355453212823538337281727989857744550082247010470090530699312021373357864281078601985569698002598145064692842235998953019777416602885372187555084162744241291711803141028608661207138382123539948530661157499410917169564729227371643649446266744554270674565901222238519301131683924338129495895139569513624987768356006434728886059631327841283851165010642278125327177204759372696894189348737781091155500320495299612212984861265681254018458280939984498773846808788362573202536831360949604148635322211338589788982134086837700888359852864714078264462080734590489720815927471889942472870322850312576181847715901049524937129789980993185663888414462970921730116994659625899746072450427400672360244583087053953313446924783226090966355610414108146602733799878534264133186431023395894900572176180040724196005557210616767693937066379872669919945398342893286355973493411901598608234186838868773408296727424769742943995012744266366840839501884741567875686919325431882220167985322469892411839465828896689780135751774588081138050927096195423939235715952174269847743892937305936242384018368611407041612698091141603262918060986934126025067241329486140393626733803098634161211348281283856351250070122753284164900119866320178389086763772052657853571630327605736639416749665324328731664045000194477849656662917730567484160284704844941895475530503202573735149967036224825302940710107070839024356560131690658427319364417057457467030599278263913973032105834929387329291288291896815748918141952429169026274661056379959936930329969812237030157864551568252047208425300761886732684642711394449464168495548372522326502570344521720999725522360126592474304294487477628059755244346109827393559698771241241130832900308956886578055237869091832144043675019659754002341807974875710078985804805211037680726373086777723257810841813074687939964580921510407737625756266569235749299084958851761445913271629017753068057865285713758963909868571929162465992569882092969894695090066238938010334756768699543000652789602090059357500483673735529250126889523719802033295711402363479912208989552871111547412312635169858193539516349190622549121346088747729008633791153664653315416874523358914687984381758994877096659041512382898262596683307995688972106952079027179414456361577302472547264097144451731833374619648410364420760366296251136879064205248808483989772887192377624300825111187641886584139385572265837735489241928777642618641682362559714579026636399915486094144717779240532877447971122781139219867305107321422398218881900856850792672304165930679232593892493878923865782997565675057902138418993006427543708512103405908251256042862812218233750370218335269862111581714948411285501251078123194536285621165576023445914344812333447154602607856414062601032762669101041904694692275042099510379605181936729742398150926331654191495642823413759141077865043823890496917000429102698438320236126100207173588680949196926944095110150241728473232507980432089027905499121202265894451942203072494095473035100447406479514042018195469066884322697935098640476994771882785746462150860598202653930626432442468643212209364078052966061586579435519978408007940015956541661861519601025273383598545925636507849959349704149884757728547408898508612634467153954807807099156108645611512383899488585983967946804154051601144354511752110442667390014136045286635705961287694085031655785080431931606157450589877783914201408588489116128737775104531288707581088737797691394836537254890036203701081671733374351393907379405016613768297015137088915556849805682606379215949236245124480209127411496557943210302770973238913526170887922092780382209737921172307560405403466019728013889489888633264709715631431108082244179764232329047440012760190414616684535042470623897274341854540801437908117462985257213733558125309250552953073660833822048570805613336773426251982437850494895182295254161524025435208632752875537139224986431031914521427311815509768643282423427740696603657883982759839005279880360145268391588048337815609192606440705097264096694173684758393201885496127787447400070531817478675705503374204947780483905251045824293592745670934259622207297154868538284091433268948349880175276584077704569163112735744654816793126789523335592822008010369908990079849091293917384069912665891985973082506688629228227698773358397869885861438202567470784581056712974014984345464771048259059373565036349642951882905813787105827391940845845083576183124363657452343827148977146268404824948977515085474691634784045815761190227308056546946017619668981971615855344283579692995102722928636514684274409697615256906239120563540720025047066017330700500944740468886575876913645334819692416934494025724721030231917286399344001972712837033718625959423666393825971275228305364833925783203884614476665136800567333657644617230603160521409529913692379826397989704019298863391420735267867024130765538405765772937281288396742898662608848957122987554551253167252746713131383688098953669359841480014560000218735105277702983388222045027632750531486121339627240199626139707716398496765780487842094840119907215410075605860690228901347632358406787952111803347847387760008871317757239582450792568634547799717788288773686457671496963532381017790687370698041259781581936102961165069318767452472727282393816848950420946752160238923549836656396831859744925060580153533884212117717476899708189276258734007625003170995335184009936612948736557502689594055801685235976987515512209593860919013731815658201558362235992748980559741536130777247926270165700933423080487755686619750752404749341968562768638820497497484365679513751743792077000078929735765186117410992199886877043985341788397246553900861336789719566839893064568858085880966377314742254392794323179455624701295643912358114978660366786298075085164541794821530422470649634852456810991496833116730938522295124348172835624720946262051813442893529138774344724196610138755007352423748787483840493070848865881861039329570334474909313415015524607021155240957099823690377864224836083773434015657198215297820319412827040939068646121804382389926948363496695238863770003645991053186908094217691139299181799760534413466576759853382903183549329689227426907935093758302553906294287917139908892018494889824710093507075979230163740925269461082551083798459676959964001550766784256041853921235914875330462916229921516844470921297031598393996719344876563587379814179718275997115359678998208238872103838208621246359920781275666699832273162913766859878026435150891180190832276332042169038629298691580787870279377393048133050579576544954130971643426953675561281358484397026297553262337992952889157833301382974813684980910159398225786721149411665087413888062303879707198988167596586724064617095664346929757693575035858170988017995046633317217224024577388117198772982291425527589202841337271000686857481573716886312986059733795929412695083192734951300681072105559747788514621036829867290330355872418295102433166786750005169538152034474801555488475882334557002363354387445660830115444305930439497782667880835846929141013690086551387128910536795818600724203780091769172817243911936496407184275792496377863535001286256706549045931869112306464573674097277685741721003360328482057030256743230940604160776572662970181846354542302604929655856841860887438101056779422282388758065181333686700413823449838291275162039713185107769261188591917825318794877950883055447793626523592264638714100944341665693787540979667608061012225019798047228166912184092669987087870294449035141999384344932658823378112475386337960037562437706654993772908569775955549395051559749159457044325603388986674832354996806525129590858466371230411841794032307699137960117937046623105117083421383314134807021815637911816235656835229408974583388519687520818214732280258544860528066832004436560021354454427203639383764845338575494409265065176711502607175162445019596975929068237826655704334428124736296776390783931835633997178843500397815459258039129220241065059511498797973415761271464612823109428800720991700844642271121408646935360837392368862717017724892743419009429149778407963132212827258042469999242452428374806137197753504891814213267536339987533076785471643464977924274878728814743229951125744767889199453409563972665517352989406846261481688353421660076918490770267334354475477384402296945061339540570431851220041110783058532282983178821567711844690463763128523189954869203712799079506739838167334524468889092914814785235399612736886098813282689368980670385938067182173023248344672410538824279524954772260215261277595650763270725786302832438359377710166040581298747422377645047331026249737659700393665651679360939849411975679836015015222463837301386426603250240321280303650089195888464503176067971538969397655878619746754328863175232345002065098328594811827229345827446462090555170053258885101592752029719709683450370981792008777353183340187279334921527755961886273732709423662740125260019615021172947771346960724198421819653445920248833827477755181213824630873515915213133788189761595275555212148300932647316275070901399490996840622688530053772930625697294787989177220113492404545279615905340010280175198627022980419211913804231761106214747173911147718168828538524672713889230117853656203727594124695776298920098586473433793363774899755654866542004700923612172445374105044707785992623813194902597550562349624502549072179346969714945955841182078142035465642050224594754287912583176046435921156275487122244173701180328152987379411284797249959852093568793111595712678726548458263399161204586813881305753043204686609364690531921235343860980638598306555672899342469446865554403281103623938877613003560489479925235976666328657351290592450295237077932045563628972752726783922680574563888810381355247776645479109989700484012634962205463916743011464601643614064724843538495736304841505097823870219412296433879332467856918016679581972014686337569211544454312716465909101785456773673125533800568545768658448122671860914292665495526139719392037512312443734342944148134201260684379671520312584959026255673448908233256402744829772734426424508112108646178665323845224630702695928578329595742535197254159336645989933729613148295336562712110530724433932949356563891765579004213321883581671793039455352517307211351433325717372086942623171374561073169609069087115500997787328318355863120803518277051012050149120053789157869052878017070084020105069123431950330637241328834907561565043725291279591647475591840082878062090577464456225266695244474309704105759433321592635433682497357895743928213210922449589048873545575801625911060429580951260879541440144061789142490534216077191194609637739166053806981894455543403970902319984451038471458773517031745702346612305649586351239065040810042268676489622312833833345290774417612790707111699993526603191132773325432985579429104500431129300881997640238293509210512480498524831520493036317136897333755271485129869061642444232423661837647006579018514907308318816582143392522671074257728545650685174477741104401662425425643908077951540693405462506474695068705464640860984414475826004779369272664816084644908131739793574964240182173799874052272336589428716985182156770249123576113243165002028595822230452297717420507962977274527901055830798029629746806699423886882178768663167791755750370210439575650250364015813208443837398710732361126674857222954516443917372294118432591105124609125761990229090104488784233012853612453119235913128237314958697145216443963345799216680869131512646746590329167221307993014515091410604736105951286776057478284083839943535822487507706045880272615977094684326347131705604420740408560102524488840252705743913170922441543976719906884372392173809822238665911014968889620968229370842209692581870666575389705372355530633733126992069127752695172912150020719852665226578119520057173208365413726503599702216507907021774125815938142640483964019755140834058084725907160380780811764446671509445171381746360580069708142046128844640800205958320957733068015175342064259562314721177314530280491630561294280547935775981355828510004125301643302807511528016217773593040682102518480414029301077160595651712340570035014516059221723280872974981147382943684597630765554576625810679763542323985880560786045294196710150120123351287800749042351286958588186909989843798664884729627097797198656239590142274228886937363305086564158466211789621903611468998986606815979611808129441441821839226008053535215897619213390620241519183414023212612471769936383252152100917897569985233353814127597836389762990761846167877420453097521169062947769341859093675289313575721265347494933111693025464522281747842310938909071409996659708089951090550734032498967331168773489483050318183676831376699592140428607789534194956504486818175338307086365029040727869112202320576149513333052985670374118051299972710230174059323703080736731817023302221668863879606913823377924424463654548029824051184692988310184907438048710797830296138964039687367263089377600353541090140907353124191659011746502819943691749309085234846334351372843578689028562267833392698962998919077687327996700443585415448465155602290080748571771857916779639430920672009986675254442249547255587583828345439903648567296092219652116444388664444770096308909431533380385523613106533656950490792352089126190372159921423429364823396431936542547023497490821216233547348607662420068138118433864329887536668528164246614597481768961900113781139497106777301409232733214078971090438592852451479106914573239092723377602136743292292233515251044408285486439375072499829030463755614680855698896284738443710216448032099160951062756725102093123172205383941383721595024615017511691537949888564046298522142085096595988172711650815774038097392114755002723085990950307249740624929627637555854839355604088223130867465956716368904927107499214303522664235002729736489262943574711714996379645529976438576999575194144903846519726650469769965422317967234901666367200678352838443759674813026946351965265189540789148543181100489389778270496414690478321722417585692922828531295907906073839830171210097101023538400325119429142907958085427106209294367649479188715095013291319727250805364182980607297152663318005434309406140169727696524587866663750372779361246739041796384920953199309320640307993209101070921314812136019366849447162790739411734511159700525002311566492385758023670999153725928068460662205483070310756558557099604906872585396885920334411773993069787219997396078156265689220536282311411165931868184207629683627719233574050588225216109853816226333685328355631372029218504850934106736391090217502957622615328501202546594539944745301987899033240925646455904125310749761460467891306292919178654881766941672606999410714096250416161058883126913630433478433723190388384436420856235951383186978156336465205056631778056086482007932329637512462947665815725994157110179008502096062339142013339187467126561828374288132961064209400241827375545337762566762305869382521097799969306292939036399221046442728251295655500371709474418444278157615701848726070105256493036287511438343107332491246119311153758541246548141743770015577023922030843709652620494796833492102815738321222279709263965460095448313698157158608315819239955132868608943265902136914403502294042572344476388789201882370747278496232824663374056033874765450776547111007487017745740802918643469312042190476156334207717326534787897479765009299836031012191244023066174412365560589399109649437342390618703745445820774011610614179365908723112549751772512162786667338253672020490682189818896343900499594406589291477753460110206477623732054867181582569236838301816465849811333527593182702736846756612322432962182718870422993667082260222277364835662678127540308858140609925162353671619303891341236799554628890925714498960517844429345538881743483268421842207100907693154900326047563628912010996698172498535706703168322714724027968891161342029088917801022581902509917916214500800391183822125367026919068831480253235171449023537489653659090729637186984542837666374614345225740224150985945826221477098552471541332831239527512698960590709787745698371877341137490006094937698726393945044668118171628243021187722044435334677334398174621162917047065838212461940169485503320198637631321733522012109767652549891322351448007420865818949101549460925024818216367807551454504647600297888184198488788636439510619375984712717811236939935205086848272117644746376974867837513023798279054213220868866132785674716143714395255518295965684766534731048245327711063123127162117968237056026262232365462520410134726655600638041540997046811140975638650995456694508313886436915152799707657354857876755360739120343417504620794615804210276812708984061342152894499334965232051014544055802914515078402191211520150004709776326356304758584230773441106572602068757089980355206209413204012610828235627427093264915701201197350012174432081102834712855224905677287010939433226854624718697384235352637950471059730324390785525920410320545546419342568687459503144516046396581953223807951883017589394063299273016946408197415754126700490573867901711612791242185164895961733710413525017322231175556795340231954337028976631384581259799177875263939661505016279119271676218281577939260653519319360321108693099083119261871269360871660489749844802593616081121655936345665936396115657771010048250219418508365089289618178037681344470933061993496701952435759368967408871228752105634147072512232999431030061424594844674618445165766160490224728247972344742938017362769084143473785100568933525516214252562462010917741588583987797064321918170053395523899461618111717319235363463436037344105205007074895895189624013712095674584200842755052077897555801633521869194683747888236286280738835837847632316081565163904032093535820412319313053514403059102829871530877009433515786638009783439460066042942447923364837350286912944971932349577033839837566218384320878668765735743858253810783574123398472520830844438213582726019375974502527330580813862610537095213816377399297379175952401491037492487598989109840763517009481755465903602328698893848878962386068550083167749652715947146388556313541697570869576611412382643439069353199896103027306470936815411503051477066463701147655793278737438953890180145950199790706586550276959797247843637666126941838016573090381817840798457072822092823121410591985325445368892809330109996316326718930368102001782574531051902749203248790945930614397143204833433036434713753848370383455283695261627762424128111744259609134523302545149097642413670336266730500590540599561269295374244347975530697608911717187107728361314105998069530940807850210511166694497802110203643081323704469438550488290504738264226083347966918348557675859029714976596769811967242066480372976683259905314448786025794287572896587586506470136020758636363161846848584959212689230675329546273799445001794374005563580826807292157237021202413539842069923344859116060060319876659964182402176114193462058585696635743160611092356934565735779365531962245506582987265930392081410750850437209782648622489280666155639124000535326306698013734930733368610087130970557381360642807500490072426608207398751524988727492220747785555245963335756018765803015166344464845825029181834205596167913298380207995300481126893218709361121333836816953897917876134440474878795543331576452916931085194178829425090345230441509881881166224839613113827360556333030533181194191807302273302864138326438290071451698492452441713822179496780783081068140909016322953996978937413015361621736023281197604903876351882592045857053158374714347697212415975509203021429685608175393398721322304433405327860353717335225444966356883799134952292052072455419478977816218133980191208456489825671187371104360539212661676315337535905779170321960535034488132720366904436956402800700386470813955366902735002893274564624694507809477526214882475910413640322322661203639830857543416911479268569363870560403695597164291478888670151038615707214914102911443908514737017689433258253889801472236811597042063724313089011245446392175949041745329182771114574947313621703093401322060692797497649185606133584696110529676595373726950295774524151052166751941706214884647945822362114153905120922150758900050408179034653879569706320276833581873862425223544707763652701781431333580600197743110294125764841313387625308324281318066243243023412439976714400692938783502493265312245133192951115841200970664034918804839099678943788037797073130579849323069490801826929947378791249719961207541859259702138529734644713980175057130112586224098472061104574281169902708591388169073046278223720943801604882920589003054470879040643526940632944164113834834191825475185776739633738720152876258428954979314289041643646057044305432152493430555189916848941832081133021807784207138263875877567191021535473651624718152071145743579436950614165124022982370364864259394606192398760449063191098576093847765826712915149488708342742272880482385955966278816686725121489400491165218689858198507735499053852181069395627324768448799600365598348734280383496984457995217276428078724656981590173105919608072149007857390729970734324460310782608960278230331539965587623291645994374605395556555414205056738249604400481395233630221500335170546267441233928995465669050042967065365048740675137422809349060482019180055600485049074250273655636702539153163847705700647529762765610474382253276723555437180276069671980289705529033292160746771388115847190152806446619196299257494880238693059453448105274086471933951642350545735938142861924304732482668115470122969888278347090767425659028343705832904261565651996727371565535255754778269736084569766056014637088137597208193483984835843506622337887092389534069677617724901293286728766032450462512070593614283275027841701823592490008758798225401100453764532163873750669506803618892289244134800258824975803762270103442313189429876603669880385300267816012613088948666657852695131712075698601446160706487866683768736137505093111104385488506620457023728101586179055573311362095619102522916104029050076910162765879156609551595522402920782856297764275528116670026931032537005594896834546471600178965242195346252470983108150413894240692173314234717553446577234256870890324555401581358672025746581329774898405312775546399722435329003615673439926389133097732125940196479733906970114466299710617469716910952500263506075366566033648077805583397364541276221974434020156975186955750031863636595886257317301063244588947055529551392409886877460259049164547610663499458771345932962424221643561805474026922228987675457163910077548991299385478416797484989337880257880022822448377224495271707068684179109940545776193731758932763251894892606772018207266140773111639522565277197424804997681611416747385349744897640492680143271316043686808190365161523081858366506019539647570819376436345706201842426178851696820357731688775083186754697970742317282607648642555662063651879304129995352009199785532023759317709276854488682853916370992771702527605884347664349622621322542459436119373187014821812924439263702702837838928409095914157466253089497227476277948619880570172975318566214591262967058751936734722491003073059023481444658537454427107671142401891119026741836832687686394079540248832416197076847534351983121306965768937638487434995883588304236769085070610271835493719613003490367713625716351938805419357552947502300346408768097377651303859304988546826343234924185143809267634549482064946427354254479930483718077489758860562957738725258479360508717997366626696360693983580115685448224690950780833018157735524895627827165588060742999908390557666754667661071476607166368892471675093642980186658578554870685628404894174932412975898582497831029273424304170831239320667730704749906074275017441664594607936241583711155584827306628444874412781481565414114064916453067024029431493435764495086291199538662311959922348622572423373664521227827463209655591121491617174034880425454916329893139696629355756883786405901759399823900753834188004026902178542324070109072914487874107492157507925860271807276623347152405949967672334935790589931304740877838657713825455393408183391486758582547644416639313449806052259187268293956698891645579956383673186100417897703516294706770152132720736802884068509071444634768843051125101399659363230572544550630597021194376231019913768233039620785905441813291651481270561073897026353161657491012539596360342647996924031799324986643845720693099869533503329379019812028875931111228045547194041508382797886073795859955335920071573389503856378331132862507234767482218690546654352608479668351397212075514515254922029787091954138529788682232626972804537882948688868294191320510664741437673826401096018648085237720383253151404331226307404794469059786737969585342759824642911686523938331365408914835868206534918053406054079769596657017056235543924464447145377129552879103762681217180384070325087358924771731105109344427771609678339208788572188101063927394511643375438095312637155218160416723039640514684125938211103124673166103321222400284768669581064497393929771976156737269908264481515740205677077188164072075417981504634098362261377684043552064274883189399810645123619033798223443746623459841792536302811246761496733258660525766254412990400752082398774083618281142599623512293643006770240130548456576417991354933593287646696913216636354487703099892237474972373202873106043203990601619475324297413067520476281411180176848637558383557230801324910893312663621583705180922049602375563134053524928674962920704598018615066081155057671786877023166320001674581936842262103194567494151958488945063777880221908301074971290075283233087649411665022867346370555864507771873815039337510364812529518848953712718687983604191197873794991109543688522117952255169568907100208864954267812542794757729753618519149363120605748809857782743159248146194953886493203952289050952427833775839262317392402930643898090260460249093533277462856307789505818102047795955563112436428711522396218888083666985566459331086853020930070735773862971074931299072660799234674743882562276697288199145993842378673010647363502165784160725385982275828592647101413209868581322821367823843963041714455969966702488390229883415953928269999365352574556644414027157188056127371975285206176993345889976055969614810578291076871794876157189620468630856347595552580731217859160853829183406118240456560684723896494979285148176804494492007046927073601590527394463073512691983533940344713984806821889166647295890851860127038775623099100500835469929071747216652625247315089009112833775449593612950408198683351946571609606652887719519447720223370562948194577993918110242513180686983672268303697148831139692340045852893262656568510850888895102551116023170019200290079051190751648735860432499136635200918492103354258582102082497581299804302263934332038897736979200521343752618552842886285036467523798259568655845497617738843626866135511839706725297115345584284546786032329560761323619758433071381481716758207043543072681254329161514833482706820440825121503457124251843462418999339393363342521204276737251716024840026007555636688728307659616680087213175963535114789807647897680931455695400073783092646276109413362517385740783613751151848697725238692101331079175795686569538769323194612510819577685653298474365565780394451900830342095536106547173981693266198327412994636954141160353151325147772210109277488906299574104296312308103570505345254515009282881871656745151605006690712682692707566809854567845344404191991380253143045825772969983558268203067549507094818999901577878077828966641450405689019116563169088909367775469499665204724023505626185641484924716888425927460588637029752042267231274607499635384420317023166901394171404507202257409029680101982189721619211073016541572931607343339479322269613438207556904508945884453559808128103135934592760192597302333293825204297336487904164752615441138075034012732864165314986392108291208816801361099329016498585763680460190574007655799823311512905742670301703868534873460897427512181989461687110066432435875723795051520134315241651004789260740358796765057381674783118298104440364769846430681878038823596673582139086178342336664412006663080845508285996576850533259444252869567197889205944186560551433493229214592121870979200762482609829208854220288762060874307899447854112927157877084274508176368303335701902638601487468177304179277331078809239953863489624345185660116439959368800419764418635647889897307363814359228152004081726908868873184663020116157626010181854115011909472374869264690262670094640058879138382816077636941842419471442926514994031691188415827532927230337419342524016012766438608615703310369501030708623464009415282941493169073625849565437654356648816116942350106747925445600299223012821431243120075655958084051608735582936531201622986836831539518870621385796261122133137896587366835918513118103031609773493719895052891152177381922199475529808480353185427937269581031538210909629121968889226568276834395259084979764405088064372263082983275615063611051753877366651596511568293082626885099635559894160217355810784115051384673240173978581553463635210592625571283653034647718404326247073662252231828342747704436153775445815380683888079324032030484115513232801376827990399760165386574113086626375668303773199530290284384314487027014650100547036507721183524385417875193593389892519241892751763286119011610816731020230236433148243524130442579775208971926419407136135563789520909239453525641044484329987861302011162924676411432111402432683954275494547108772264000280090700022006885027402126974836180777302199363691741540879204979048339197587763863369576567406187956753043051354844870051222511282004667463628325335761632807244518961614181983464890544120756560000888182656780728453328136825339658877798104557442151473508400442256322347273513203976416245687759507030761514149125532574078735300691238763744088902433773955615693156990647666869311471066873976951330858939641338909336145841884285327009740622415552444798737828325300133016334680062865977820410771609126129888930500956993017895397029098677589054788248810590746832325082153575315106107299449287373098895800182365243408917081449131121668172724926884413012066254969050234970845064193891057072354755379032585095686613201273049993941000217392709772418579981826671140339394747394891102097651441758211906703305467188115001881636172178034783551488687554749746175280748632705567233482020884142110314950002332596199780655878290331774126916561009905849734334034552009914287056016980548271112220438235618941244392050117979296358436756631948791874182720711351734616628028373997914948966060522362883370820108276358666687518747273356848227134319816317995218101614454804388049400560859180670228809607968955197317205191553511825988124268263856710098598628416462753256333184309238949456958206272038471921522636621537435280280390299839706908540062825617588654365319194664459619184803558300434493958933135005680501830472189742866578383193964673146369489896959364101692147965520913897929757276312861075439930734662464082111808965874321292636316490399756295913149478745596495201336025616288731617909051653937002330440071663934253071403692218535445541436041360233958307883085851547198575980902045204662913540610478263483695486109516819628442329363011862812543048622063664425188159466007925803307330991362899462682731046994067051398001191804060166293729653840356128880511076589539803290912403226003442155478148695348602925229429920311557041472269233607426735019932317254162231496093582648285634837147640878318519777120824036658431901558677127264028800568616998315237123409321585238126909282291249998498333973162205171248306954850415304839118313002220665907288924641020338421591846569267152283067838323013346360888660492007814499603213037393602987332825761861734323753165702883465667321396556235639610145599646281478217169692378625450342477095996743793399450984020985356293998760533593907945793299988431533937386254694271215045784580238890529611561678551104229366659912229432856001847900911029771519695136424212753803320726458345232619856666863424712604430659492195394842099282796225921206220609049005138436339906574639257550144894883586932430469172705143552646742780781286671251861463296725264086720911960080434319327322809524149103817449866302099361530354990115705362429312910732288252398888376000429387313254379085799106483061528867637655767172852285507313285003127270229676117864687337699046471891463799264016834484951403170247138774980399897805390223486112927174439152242596259984303990370415965433353539636107685092614069111610385661606965934838128730765239132046935923905223091355961036560796672500721035997281683679646123106205861130523471316505255136642142420740511686003107758972102461205256343647675775579179386366707011663829879899391415141278632896924762816186231504771341704078389282314751785106459689154492261058287785953466842052844332040770235048126694297458884610949692279386436273900843667436767305743988226187802190934724448783414849592166965494796113866700500570387115396155243095484216201014652945980102271161930471218011541904856352991196511539937126102415384342463278219235172599404427029121901357957015102847785010428616720621749151424535366189557537821423038825408785911616875686464217875455870468058585895051534702028953959225388781164243221948266186921531801578697672790639772350812234350515704080468676016634537483568506932010815761783838850388420848074098807726507688674126689428611532746466072416619640384716075555341795030761732435064001233074606492189077214856338490403249902270741687244390590136971259109914072616698132660849289288160992947208326988948178569206463960674354248519889821845783047267132242776112538404415186093749330382303742162900956484384425253998499600441013733353380456768135593959691989235700659539288533802632128318250659100263031150635865528030861630821995439719313585565995515144491056587191402771717602461832026153475686646597858367725554215440835212207980836604705850412227644053286033528579298719976348020107180206127936714616677114114950718336062192957846018576428276185015174498160440913511244439003984651033690189149367772469180247126976475858158816628548110423129596355925550853669838326901606897024061152056913684605359564056681163870403959923807122150226241457879316128540381418233475224767135972204288974652576264232905955949929917284922887511214807063987362676256512068536470962498152663120314643531494449571898450949657341012251657292484531206961010456109465125163774022221958910876972310651660001306819343793947949768696349141534437226608327481008762695676672735928981723782604334762151953152210193267296823780310482008969331151499106152816357218677947036254122028005728086211255405630058914329812763971231346437286880751154935516160888636992006460602774943016350176856873866372008224951197268228705464707829311251730799540362366237832376746355609474370003874683341071064066156943620457272096132875115219351440164867572386688945686609362895537551596684932217284256291628345639606587955707291866391662255596311459002866139567644021419154093503942637595400847104875459590004115807052496140801546486290289656136374256883282386553324992853283894843387175771138993992756143301053084320519849816649142632276329397666962208490860372566571420560416388401551264874343025845562562728596478191255765005331246023960302319486997008833821236342449755434466153343540413957844795648954711179632969585231378841208183693677423705157589595934919716679606998285176961948421689665635578631709301232122638379702074419970868897559345025111372816804141143500036188394688845715476924025543764587708653285427918994864108119246935766948258622823925451093990047291108400320909694984051673831377086040425192346349578229404734234996923269529406570252693108328624165735060330628739925573893392723227484131297984470199959865269957379394360258008249347849213311708164562391406754815758214767345813515803720422815285953881669569759771976808687559827889769499044219323989844872766968891322156037190672638379197541354269978636510615367743023532099903962563193902937697213179779724157405074367963802257903557596430582365610668137409456153905236430836975875871010593624354831054491795741241786538165309509637954836886718219417846608704529571847483982611777253598135204113613967079200124210679163120688082882778643997016275143230642276763013291673785296875642448249189379092699485121636357425602090158600104571796208616666484571653739184450896038587843495724506677136121370729048266152652307396485294265199596095718022605691347661947242638970241824548466672207524831141799717404588703971748464345133258998123083614562263269501139102343134466312640993611971801519632104793464360168941791987940842349511930390505416764661250120691010422203751842124354218778381843913169819319015353926483360169601010653500848637900631811373172704559339402946827187042136302315517563896964302729537334377467250024144026233926413844360112140556410272350918680728658286027918794495317482035616939746662221042848261865564181084547297791657660696458808008262385966868191561732358794835498717709885190221579061551004247762240489566241690615718663073142494692623464042305177108765990120565085136219642060878482384197082282698871153618125327194952072759583397925780935223916816393633474570835813450911853267117952638428711883606526709592597764352158811488644836526674522784243465865059479625115230245141633391461779182439174763750763698955349513120356885885936114387914959834252602919983303380435237729925240544102898746106891580934571161307558845822255672607615182696210858721664106284229628473937835832785552527002630691647509421248375779720056831706435668839818757488544256290722425059843212353508062507096806069928883025564844117456602771946593711461456992515737684933274253089748625972131941666953179245206912480880860257486161727800238210131367045200767342793056539975553194453199635863591141665713510230770186388719170295081556973045712890611817206215671833352162872249603678466472152332030686958936766902038052456379782983497961707735922516856809952246915682183040834978593973710230536641948857593061780837310952723602862492657042991308891228140013673135691561236096903957167702556408395546215737798519156287610363943717318827103053076416553457591819155688064761300145725367409086851308777123827289989773986707026206715113604188107751211492225352004224030756925011425803454161437660123554505037277837820167435989227877688908791926453463122535343759151737996965921227115206058191468886495031555372149963782469456509808109575488829518179989869736894353826211136011250846156509511173804790702442194451964305186538831677049740418034549642703274211753395124690509302695451932086452448836228571076469972889800757229088885542106325481484772319957649826431708725313235065012506213242411703638684351154953463109910954700838926599158477531915914515608501604605291739220542240975534642739279503189969692199151849267123793091461751551182744021902438667718047701872502898857902927090125471425902029790036509468597882392213572288512729377316028179077784032742358819813035571842210315913936061822460669434463631224353260095919816526252677228485641776792546956162511705058766667536522681612779339613684524230524714870909577848488298995091365240148899271669948837665424766882103262719089333347879185475349447601751174575908595385498049180317967963078979230750761011292388979423865740872586160313333671677105950776578405325665703268927269788469432046450229149927428322600707246777489624031364741014019075700978565386010382180736703080114159805201207044097230371328854159551544249108886066136740542211908401929833642821670851049812086828460806278633049646375550796302729651918705937096289125630320783447738118140823956659837332452230492263552332050635487654589856161112067900372306548558163385039533054271475030855780177642997258795419933221080129347190322159589602247199754656900216652804646901607485762067078588621179644230296330999715231661532882104371630252475581622732596752068895934216092068415463585891686017858093307350077890495838179734318353576377283659291045679793540077740173060969644469793154977368169918010980641042609462604508825309630074898348208096339002178236935560111505035216723058751305414694497271422311882405886594420089028403968929322986925415045404700628321639365115041091663002780456511414416043517073117675372389404246632277325062973632494903486395094459727778874577991307280111004079096163292013870761418964128434995090821833076408611877686431924619022484612937631820386162549332586108674423785988052526935959202015294245450618935894399668023485886737435294562114651060630990401317994770387454227139027310802852688503098393520949225016190391666975743162457250092250187333242522001792394722421486310083914077984175644243085385261557566749442512304105712498397556503803214145185082430617108611033432260505974903009389537192831046126942541793130136532151596207619308288938049788777930314451887551361438146981672795908026730044804501742927811688601132747548676947261908808241897968431271091320867905315967900822470654314701076538278155146844646713167304529827007475122963046133254507763847997276551494250555954818345765638800632269686094436583939382321107978842787840176794964721353659296363719248662573807986105765969030752357842249099314717572569078009381011192941640836335295074657859764250490574847829452508879172406227296823262542802789951086718757469892263273670666797516146819458613420765410758876496518924033625928888390992050004424938964517302278308528581066772227658701287375351862960692732854027963260731682851655488640801924829152233095831946105128682170604991007936746652536627834007169947471036059547812311763468590410645727757805242330190795398140383112317647976565263966242764367200433004237090645225574168598372328881635359165523777792601734626968628836140323047326793003961827440330423929285514938903964585898169392401693575280027212403057818170176227387727757656738505071148155182511135585103884595482750667267164397674367848976898651991280120273514061980522214956792102256990220065819621636476427201625851967657373346869596859044833630745907733324631905050610160619112506433459962807265429214896740176628235201893625706045363268860688594391755102211944897588803332840768151256464952953134915667752413754325681093740810265215807826738759352173676529936852168960405276768924365639923630647655488389409592392493344551368534430862873807092691384733113013505800995647809710194773775417592373634296054685080862796500491972457343900764467208658800181210572520051729068355750441708997637972498123870447332187292271837414155510711015644296563830873575799718837567651847519758888146008712732748371512458749973781298643075178492208279418477702477103509307426183234108735716377305495445679842103496610586375161455505015513544394551500214025843434933512008192092881368886493339879191109869778429198937921723892756731310923195440731827994008258579048202882757155849332241502447859892803256070188874172192896781541426664823879109120150737493330939465814862063252277191453679642220298913432054962527655060736646581965194718663926072498063687703746280024240429804031085952037172027640061943399757419760522962684186130815311828104886086913193124471544962096017848065275926136879293136491672702139554949749263251152562805652574516379611925379546221638289258226167806340240676583456834465013937438375213187491471932721657903967089624104172201342467957495495149978921619010262747308802336037992887678127715531840819802769890345011077280030613328843595245698657359766520700892043792890692682349466879758553696363586188636094286206028212919186274429030427153274387078537131594720392898031702001349854737751646920252613764167062924030090243222720485721905699202622657296682963998281872897636775445481035609729083071023079779822811375432855309864564612555734170629355005946588164541644556861888518698806158341394110149440156908283032981693723074269492905207732753387542425289428476482647203745107196860740458717767681292962602194440116844307827749068435473661023510459248518352584618410184539933762265795213741441791248067186093833025516452783756358248482632494747432870693770369658572052542096177456993046882460743609390219929788442146944963631353345715168952432459630255540578764972001751204152035303030947790588782920335076687019163551156446140659044298967210988113236515185079673487197537731841132244715616714911858012826573623048760359250027051610503755004123565675272785156324820309354862930383141145701440091231867427747118715247295853006321063287653201711739233986408642314646685920961471451722546830305893934013295840168009991253403596539874332503473867903192576152349684485857663589177896246351760954009301926326255590153209311259069346949909482045674734871740246436451070905769725003472919239754152768471666549782145173475459406218062627699163638704313155579218562744275238718104724139152282221414035188377024820555001116722466045243722576107739478866945352097778985364083961071215382651934470809431305578873453897633951840254323010780264939287787156946969662557584171346918426853918109634058286996293512664960726955204594048441130587042237968251382488621066894885643395550140611997819964079788774989992921693606966396776837157239897858525593381200777877568143002970971649697194151016280993790283997759574492492911459832302423830216446433122435362512343866889461349920364697457937312196383407594590188076319847417813750781816360927214911725929530731576720021622853026078406973840944766503784290578843756183605511193790814093017766645089942504867617612043709047171002618444159076283247508764135928978154489164192503085327958426576441950118460197777852921027547813418458319497962172676802996545839754222377039689020433071179892634737901150304435820866757318314338031703624383517591610222425946870918041769131118552870035232630760317008727192890512464215573117783515790430383252044976220279078827139187932712416193684418164365982885871403147022567845274322127743530225450758713458786764511511062407354499846585483457928436778860784533015787633820898165885853458879916448365059882567555842636608388127280957707372161679273921365564852919192823008690424712279471647804232589554088878715780442867274296249932284043940200113660924542718780481715702109259485838737988144180892749841271119277770623401081322687599742816958599363357738505029853898761058317137873273797988011093229217328250654447735782696708448080815233053585473437650477356961717982341024479344680149615179268934947396142253794846411693022285704446964297999385894441987910257696024859282931224156882051470743633772104208012464373131415514922694902092043507614558284828012140704341226530394906551803251567627790837696078525026648257685024877064442160458717089666878385819283472953773410585813932310901905361739250356077758721537194254119600798605296666054786322009046089280293812425708435257063715662808686496515713157748663371262719511546481700135565892299194757955228606295932855109707013068257616746035178158520440773065592642053078932127809437872898090001792297949862630018826128113869518201930303499641982719015262124511996136238386206559900561701041532505995179771809237873029805076409851188835076895504822387036112091669538565048693039878187501134727660973497806504694650079625634208833404450613068414878545425153481166055016187666661210936734291649448174523182791724024704254948231247093999005262181944415029012617882613799055560345305845415235672476584010441677095243943589027796513752128165595648832175675198061900968187182499406421676787666997893881714249266272722964146550090401826075329638105781489205626287970913023767593164557232312519533141235691486493007655450010951971245472680114584219142849157857856077351225728960173962897536876405609336423358016026520903689144824403070521932322756593523984714403521346895952220456898727908582035408713486650231378969293059964158844591993145309820603565423667845653786499634015336607405703478478283134372104412709399342345948839027739221911437016895883725447182878289617995214515010432779169697587200207955580788484111607111921157205353769993815254974426770142733783432251455418702557585793292381067677143970673361280724677966924879847585320749321302774727371572978566808675691085198320349988503823246643298091646412118546703917411643828682596154931508744624451208200280401284188704635263701342321943476264119393752051463777646939849982630367618672007899561004592666956183544755189461072803365662793469634176295070785188203369581868343422968652844271034896620911788916625786835283098806588248075243423256099792865239870619539469811045336782559174009191065466208605945999317154414126863575682968923123402390393247872168362628737020744921395519674824375827483821223282275801935924271842580677665607668750703236626000300885623320410729702083487140336019431302668754935659553627962748441101397524042845571438973977129103593259314895240908768451180199512218565192421178967608268351508241682735213632316339890219912910033711631767180624854079083163026211233997448375538562536985289002429828225714561326265277444757590303477230440548844069504852624209896085139810751818631369517975433414092048617191343303393758947651703846343221631637518192119384990760519139319544133483359137944129494690318236098073808051312354611544912872099964443200881109123112517244417475566618542754395080619331832056816271171838427150980488270950425717947755283853685332448837725474296204529926990853726093618790589165264167080269284812659835966558879711667099808877812712372205204258505827960964217650752755317744235717558560640813004493466685878732171257017286280849186431069720981718262473447132982481941177524600776315803353804179017861559228972880509176436191010516175670734853648296973767738554978886661493111062443261539120003954520678201797403693864841504775759620594305286753563295962114460701565228513484544331070427671733430120118103998969370836230035625945764017483772197341058246509115303333522328042664851209392688699886826739086591212499529279508774385850012067896536845788033242803154251191491896497047630760516000300612759391408575031368292517876425537338019755547823709224086299797069219726759345598099538683011999078864157602827928188259166954375552990447135187528202097398465047494602415936594481341833815442306914042145291881414000424482275947119847935625009477446659957001333729249873756457145491177984967315644556063338583441100384823202458884435714737639990834819082388548088265867146631212265543879016472351009985338533778900797330254610353151211232872131775135885038228972023798296764084171153314743216094150669370092682903129353149543406425201540377718465606912218177246038010324568509860982314853394464792964999136855593332021004530968370461703169351836708634702158255496356771872098821584065711888435021935732548084375177066010813839569525080512074713657690138485026745374189144301812378690931097409846071910755640971387874761831430560700957743296091238221131831783118003992483384743686021330237507367937185327730715244155044185969589791396406501829762348283798338413504900610718957019745052216364093371018769053809601336246294888258728336469786088081144595089513364583479867406871225847643049147115230972748930486373602412043641921398138938977132482323523763877661177644383676625405257100182655889936964299650410537936126808688541047751199588917596572135555998059461363159541882554480016915156555895312092231541359657753635099779290679086142271811323635136913464676717170352131921088670491530231743901302178810179967003005941682824326111778456391377497574842876653077252277282317870563604495582932671059778509971388612994857934944975933272052452091055254240819956722718720294894729757375370442325737889525600319808335734607477490509955775491934949545222323779126004326603399878089887474549784415645066448953626362531895915229940353147269803864940295678572066584808324940964568326423848537742491320572922692247156343230472708613196667494219381559665075457996213231298873047970665384068884750209701512595865485878310868482746897888890095762444687536902283123632949491024870208032168094740770092913735282980269051524856867136714055069498091812596781771055851877432778915252526826983520273416332291536914688623456551724913619347665210437410209580586238187714720764327240588214734396060289476711386490415281006118855790999615692507775639430932192770950352419024100828535255769361642835622103438196807013549187314443484769709089945714902262985391147447741515721764961042199933662903491621356094685986276889402310841239207234678152591126567368962962032703247671295892643625993453859171303932638344254570034555919360505696938503134631190423191626753778606914860629213858143352643767640235616571242747714662410696980133544507687368394119880489085764609852881322027182906588581231797493784829163680633229935376223295007717080094012980713164759601219105153595958474132249550852790468784855157642457368659728585466731664313131817087342530795887543161910160919632351186404289448679463227942607436704719724847933130739212003497746438139425801757496847337593179688116567556781639385973664847235370971144975239951467360472552388947217605047215345707576410117785459350921301399214351764514634796566946840559256711635255435052543293069232940107997441951663311344009081414043625102669305742920424128516382701681409651501830813107991392698839294674717803331063679000910118767748421302799396282178856351136746059548757366665572587748905682920337155073044531870022992032950673252952201656657377050866128717699857071017156165533596171804978783639719847765695028580812059729039806708490030277434144891867748046347523683491706645633803459181713586029028780281910065491136058387375025453621627713234758081742173470838537562869517886799228141923622961728467275714417648186588967586986256600953726500090109260215029263157318880356294651889818908204439119969640665912165161603229823289294329613321190637346359747954815025533247936771900001377442101121559502218375929419039449239729807559508297950896582856374778539020616241024752126636005764848451841541030116366651214288023570742012476246580763164213478313507272510004959532585707709039672563876316086668553648117572628335456094812769591437117879654728432286022626976947067721204602623381787869566969979414814778668834804835530005540752447855178549772556298163331490274118140541362231528244356235766165737922654308512862921002596252801394878810451977777516174536940140340264849842803879791262935040669974359839730388111539245404039077364663965459562367386558332179076536368441389801834367045328628221787208789270093972560081014932537033673108681034712758300813503723752372138209638267439378197211969964642020176797228478852820902133623682006560983598193902057242479131511403259955011883214647151283800852586141052309168002620630677490686578130602595198562234194323791968199007035402087466701126388344994853175341735773867598135583440672995103875796977139224033331655251325041705863442498415967106930421254479571071498132638943966882923360907094113180091744833641187883280440607641539132871499641194948767779207154032520777772804874581119940752643267674550941888983929411251575674516995864938635026740885300111478200429820286472030871881108456685815366210586048094290132871391039603919221158504618883878921612152541855300180729138693184015185478500682061286140476676386460475250333368856241067799444728788516489753214048791799179619394824117366701615453602073115255005553562144213825658751758879886036792782958141660535774185092009520000585817804856485137195223930454183725392607920386501235270773825991052186615365976556163402368296150862663689018490559206554422695770900203467961828353693856450393879320382032844835763931894933655024493726326206773033075120702622205258701901215190483061755924171712554129643193037555432627280181238834606288551535857694628831393994963330641934267212977172126099761546665726574110592635862504548739311257186324655407629322608628121826170395032368223565268781461525926265660472086177943092983763572235548590128377770248686478400907734540768363637410950879545700899425906080132607041629645219475180358487649371890435240173781522709600116106098591910977527097005214288588461180565510567842055157732534078563574497338160063522626786967012283492746650238787743535757215358208513983898970886420882132533460990147487950050014921423167437179356630619118103692643898012157993844859810228240581095111330867202526312031338530254406527989974116455998549335202929429780834769660975149888508963782263484966028544003380018876981388052104500464064847924820691589313929374146976275446470300484722540867695269695926158274951925640298180479338767328218252108525176818710827391751582513259253527846413081170039625674384211124374953159787466965477719976775750726139222548197165649697307883009350126954079560831058215512924993494611955756364874067887348940670046685569101077088969652847332202230296260749522418519443170870542747723109344839699159172078442050160961320491631886943246918330388698136993268507980474176715311920577255278285407558702095218789101904785396805466178948960451692694117903961175279234035465005752916071383701399545170171608414011958250294292046360554267804925316876839113379929229065644681802217443101320813567259852273753074327316113739003885601588803686586063258606459699492386844379953648494491880936017290306853648937341424278709694256607039279077179118693967468156866092352387986441996296102756025568454738394312725215144407298141939119994323253258482371284390900062010067371740606889946936874331411508092765187083219107852601641233501879722877183883869315838063316650576989886948255938356286518854393890665638733298175811978399687272616365498851629815204568269824253987843127671397189000845493985552757886504759382647123255900416897485033227894295587980220906801970499647040888227342477613746037570728739553138663793593563831023391894067849175096319634291935132343464895373899417462289623053100044236611919660236762320671268282456251311558032656147512072498459421858017789210481611699285454835720680577135487136601236802225818532103664871448473961329928792975242302572571473248761504448825319586366568665416445717211691569866568865642014719804248260036817234399606836611814514267037113604643992106895736489026208376492229383364205945241183264867234348522047269223367200006573166479315376812685353262105888282291183439015007119182694408511477500373668603989807974081711539300532119232758771296618937618862252027788800125662580245527783587194717297810082114299467910873717184888806306122594065712411962482423375667061722633548986567520263221952181970407489515391117280914666290951840120125361145697348240784864141130718246325153938815935846957260531565765229549399844131618069243653673922352909251793750307429704450383214167050251499426345468355115203278890030999902987692324073399435427059373435950768831290737203596054605825498780919549517904551645252677679722141878554356465781827082934683686068981209952857348996418829847320781546430174342271046259712550138066502932900901973583608596435419695284735474189123242975623144857293347965730862541976039451230672445770916209036563961340807048190308997732435607093261209690120030491781179616731290324234761616269141441246690928608436313078336698517560513203239850274359685838243260438767747931017282531564465419650159763710988983872253423883710565891338934859774830417396888760195047977761476090065560257225040704052828268717639921889867971831632010879886888819013743666957061661259031684153153105534176800986313457131937339698364582570049450009080206260212914779007151330491443848868462041863789172745950236402908088630804182822400048699452552777856319072531800497924889277639429396211891473146474387459020293474862274265922497766729175740985643336440105667319424337669904685515072694757490428121487412310120434585301106736107505169789762552433681214067401563771803908247030732963405221283683730682647048557987496468651341986415300742112882618968124825094742557280482987508949477612947367382297938751229893357249664955300834443265077529230805786458915205608561172871270896395927781903570066491414349586335425353398776248049356897493817754278690165976867400268583728410869021381423700504799744588505569310866817845032182517139312491858160400072246943950883181626110112830727840595352445969147139527815217562121287744714548925194139388974894529236503734360959625674741273890092465148834899876588890449858223968797252556819450526418452919691009884397088403514167165044301552054027828064080889161195410350881882111260451409542366706780498745254567053187218378719438981992603542224119151400250265097806238818374811337529521066635812852623161700872230383598761183050950653626924248421063867732283769287914172155672052151439483132476073166604265713328444149498133311822906091370462284204749714005115053871331712484001337928027665080956171562003090258034799103396572894481217215012758928049806159126734569779610257919810019798294138958787778973814703828988217726414840957753193064902222328273080637818556164681619724331384101975365500365534485904186353642557135356026920494609967388522045551293442682125923328361921095612508558833235061912263823301551308497146333767636055094018863008866942915041679430702169022363375851364381615246343331981992751745554652907806830921846867489000993194666355953699764896935079228707547776793970047888474888184355658783883363075353678070057883151105231240406507485863319537011293984275062881478568039298122502817976717866912650149258938075900888520993933463993089871024261068988699111592774558002854159446421845343884293163864998101400483980328276251572663686570444889722060825928066572936031736016335274686278110924029595180450704571391563099236087774238355476707933117924519774303705631006263052401277001288214760018432669925263142517089617771315011768862445963183121214813799498210446654944905898319547459248144306193378110569999390581979283999271578505621888551032268882298153250437066531963505693276214537189323732060578907771077794215507721912590857942875898053324673624033584194136569202460283844152955066278207133430382608015060121179846121027830783241613230508977981500410081041866770727291744814217424764096732712526633275616606972669572081253185855520941008867384895920884719685138014143753181234739527630036648183800749628119550501721029052123512975034225496897043148356336090301290025225027882742198406298512426173640444322474285468298206330340966002626760169749736979549507523796670489621352741592021089492539514486773072833730405346468456077049507698250557834219889613071136000901988922694128180514028919017669150863728194878067687852458866264158089281712871140682371138313510419779776916676721077461181094630526204629160807516180447751100186268283865694952129430667107002733987494271136705792190620486638244077114428744132279378128579259730118363523242548005563531175524141374457547006557512887138370843432661729123033696851623466796891060000448974977146993809357991021833781201110910764953911364520724383169864824266094124762821594047630585913083584957073971043162319703016958653337612538334022599636689831247103650339299580561976503269445954475227920616307345913655598815673399963937073459519045329847103167753543985349981927162499208786284678168820775614010691244698843271719195485057170672486319769825850463828092568800491924603957757718446527456207620432224628587546225440990403158941489112484513625061985010422565878958939283054541313256579783790449739126128682675279599385528299335819200571276303906901793606407542007065989477709607743014140043300829238866163827611903944592248995912346221215757399194022563905924232349265425775001560062304384804211202902073796832367203684228236345776353845398794018306771014475594549214314656776797112995485494275094459956530805390690573551075002785208914509194569345455721668672608295855476971954527570658970577969091024157783553715400414346469097720215221052441336124487622677834058427279703718331634003104080289943960119583847159635612516762105299892185707624064375841992068011730688865950975140142550802700149872236135939210762083832128282750329160368140475236817356537206140114615032435242147591202731501758064285046923060708779554740229241789896774314850445690055463120387913827978845710415977455431768179991958251585009423157766882742926719538006247451896072442768574648108066533011333439034535985412121273096266689560824746022790033728359977456616961721377115113195828476436945406504639165794155002134517490651310820250980670621993605410816526180312366865547976229677210263767471943449582344698982086473305449070724509833406872620495639131016081782434155752272201128917832218282110924242340328189248993058166766717812003543275327568769228286466439815928003487852326771139392079029707817839810490568414992424127943710978527837549551772699729158526693266229518162989807055896430649921052236575591301856581045253574329563683919728430300387604655458130157585395949490656179353811303770058162538884053209188719946760361000879649545437270250681235689794290278025034368032599194697237991282355237102183538103611583534164981580181350263774306507819509243843090385559776054306341488827068017763007766197693430988554467194345565761817013692265735353628939461875183358870378241592806812763889742538974425366187974323149161166122949135752837972651040403850976456520951794623184774129809769371748775084348493661468841097453024312334204961242058755443978662414153523887752027155895347513788055576692849785100910127010273622837855437589829847010266754801629820953271067311671646511315416501127504063401284537506302811879098902405278035446314981819323554868266415183891754478687286328120914471812955589909030863911652897162461212072805266291691815748381885138578747963269869355652131301189124399198103826245481894967004464184521538330154059361618282097425698011249915148201274069576391569681027976132554771898661178550639315393131456712606332734640333995330409543970895582215052339494740536809995818566876856572102636691442194207105283756163406011620777267464884879145907153302953452332243604075700052208172378003789183967498012856733529113334062409830209607406705356916167462243608765614126916921516984339405238059157212325045846438628996738278147276414440731131348447476176865791490276206982413081334560234100676507609143497554456995576328616291305503465292016578739205173783125938701378186944797709193458970585408688619052486687183960892348476982974929288784350152421352670999886314453866222214903013422204817418047927141469492635789567729080464467253234782879796520157003793181720812215444897886858301922114719065460682367361359702636240309279735944880442550923640954878428341627655990457489230160804169280696477490663342571493001721189079350034534788148868239754268422679254504302702266281120252305552348017047556501062973543310285292694264932991053522221160670117286397913240392538044184454853070525540978610656567022124651262650957434199363405988433018751273123866881601492985868194562421835168132929502500493783281434732661063169105565520217912954555079701841247085699151425905856684282288764176033651744477156867562090919523247712787494231720569691703803460715263160437432798534489622739690563649881943627512827224132788560630421096158728673511365545331699525471872079697950643484858494755088720012723604490883728495870401851532429576812524912792156323599351266622779730126923512929244471389544140582053967701753658924383871828703092347284085146679137439781950056030820786968360120920989117017917533256591594067615525810924752955840535429737768419880217224004679052857729887646900696307790572657397109822115415719176828235335571742252657354958741232253264111157734029801080388976699685364953844334220748050109916021452966697071753377585675488075208066734067482130259080932964824717785424696080625655860922318359818215040846724562508867511027184460436723854627404827862259211557439052763525093595349556770870831704712485429011405700724446713245235180594395249552040576032031681872645256073041978595323571217694674664297273942685624794030631883743902028817549395724527237601102898922122448768037612731436916418154827134214566497096681678747124351978485529167233454762420637160929368656292169776613719588694641906744620822970729386009384362338511061729413869149586989252513064829333310934770912411717492455108158604837497930085285731282022966909791680452859725145871633283996399180225186470137438078497869057469710581439901658510984494948389894366573492814585928064046997885142902522431803437058916509432306680815441729173366727945977185456542139655359425333165836381870565268987096326290175581754155103943552135939276827534830724000854839880109215069607036006286854069168173328013591475689735795571532822551400467691144554560747969624974191755369578249309498832890811185162681598700240530709683608014884463351836185036130075300848580089468670145225940959048107795115711593278380511322557901753106082490199979997943771935901385474946647039186033620083621502120272282033379763971442900080210645408865254840649849667936490646123921238952772746577633489811350901792784693749302120975758504703293886960893177614603768172775895713955945811851800786010124628866701589287263105051653928220921845902812532229512237447830068130343665735218718550709886913635994845155757717620695839643885625413605281222800481038259547574238565862522626411901855485267721727083901002906750919925206999236002562031391747265615127949507618106269579607207354495601758819687367030730149469176653813102025904916696988804730188584585955477042914563793252200694060160766777300345047226459936128065155033774774310588760076567399119159876509951169522239959246894439269207527642776967182883974095266514822942566453647186433891881316218256936080141259114655669432385038394509035451735740530107308189242486659215466628232218050636349792558133380258171615563332100374549178508048028093331848689953014913594926698319678741660319786196738542460855741043284467258049061164964044128941804813848410455278558154872902293270266852502064643656393126419326902155888912927583348313233046197832970330240726163405489698165844779775774540014015160693470738282068960657109524408019620393746881447288902647974318989735234049195944347603232824107541942245067057330973733910555457764374205971799652061720777066200902016931047356605915922168089378775498899708964137401172624016746743996841690148783508669004167568045987532566657259588529645422874208327670845842336842048587056710961972487893500316198453185700169425406061558175432805286723362925598645666262641613727131117476043996355515433766198759515361815377185619237226692987334980034223165289536120413636599096514281427912530274111040456826616423634586051354207309001255405049645508248571980498075460959455480443490703519044133936218771451339015073475134034281723802062612671209883684142914005872548653379207736141577582466943857702105593515793989379912865861979608304315162389739633144811774139502134939254406506266018491420947356567115723841399200419677652222604021882947674493267257244962277337153162007987766456194204062840545841631578975242952249261546125492994680693893739469228800961962541200290990965247808300757171012796766168594732351888903305083300479135125134915437516359356616971201742752010985792581954616496753031204391244768528195378271198406707941856733362911375619038777077372470964188666522008256917122937626407609328152447941474046311141398281087157081961949006452097937993365022463442398056254185411855991512829708481996010104110104488452757668498525409143938296152045683963676291863947213559050596805913986456772886921738281964012046618410923476551823167520235546132912049080774641591127730659289421532914793039752007580242460008316897650180522685958400011976788091735921680967025288737684561946376486870842235685510936207637576875077418057602264106142768910838033302476028305244905074593773589975580663659912234464695191170177206442140890398086627735522019260471448574348249187898260634191569269169487629641142330671488876276701544451456787876386018383509220042386905690361234154144596899937447770756674400893377114183485090119019349104389980166103442105900081062776996867008144963579014364898160618598514677350310609754989376561146466224858787676762783555652468186231999745297244744206116743074424043126431438882746682877154552424255871440611222796917887338079271808776338618842124092758411693651017201381840986556397883659176463178759097944384069230391540223596597056004815412490299228279623702191696093039862206574758282656672866801142695900172074548007464418171195190828631616815554156917434936526872280736110040524374701939676802714082872881047560966417821501095765458542089781742545247371897239288005643282412198427988079632949957642149757387342651194681230963085946994476199495231581351177068902240818168044737807343541638300918439440827809905053349566633305908434310593020730116928586361015975297754851405977648328537419998744280273621839629417114037025154193767390104132145898933918209535077296994025103234475230084727402692049688247573711293633761464849111239168424354698383542217317658201701695664317331482116594732825540179849139117664822424429634937046552912712286657955253810134254055612094570219997766196350079497630947670093828072578637482388594899385440146445677213215782413925794089512413455190681904416478943292478355957409391729874162426038412212110717226339649873729086989015424426269527347981069313880286227783793705404265535875606879086702772120398893264995005886095335367350976134557589223506412574581122592445892300129829889561732792052992395195365557994759835818158561521842959847261852423843055324233211489763495286128982353838134157525589081539764119259269677044732638854285993366477965389348895372433922865294725429236427350289191508852489371309846383255340328487382066659598663884083287201361204082178327051297862180926848960427951504708596543871658210891061757823172951957058734817657797608868715479864818424057973348736130109985086315968255386171387855764686099363487426316411862688140042878617254806528689153106641280364326585158369683808809186916504299515419678505487815726543507255382026500908042864459423902109044341018581714547726792842434835864484008668808492936930444395358088179250903860055402579383934840551088527091578508345708987452124815643781443660764123760213856450043536572862913001582658687829716518329575683157091127884769277846076803279965085975844207890181566452853812789945547661596938769513367263142962417373943071874710694741345251629677200642534072269740434660137033008393470597770146373693487953168390977399461100398550004003812027218371140443372786366714449876899659226069487620876418660550110080413322075364983362147455029271037545610494109796793543990767392558486354359353454079868088954757409774712264607713842239022170207434813979464647732274613852016061484535256855276532280035487080054151725266124095295547397395492637887658200966434648054671853418943590009520921597392498120576543893854907167487291556057467390739397562752908688766610172779154898966138153591805255371737202526055531295919839829370756838584405384436937460975005512454482994647350969582133606292336467859665974094656705200915119844768167837625876269293477941126537052583747288971552805173609919480577920694762595771252201682675695944836226455466808127525806350942516523591985915834790526469951548259973590053139387419742410755957345062912620441317246819908289027700421278427346572393006291362986500432845855478283932891696646441312781923701587991048429231746997079246526825518103066524470331565674141411801297421478569806576157059399276143703386585717972356239752063841750652216977364175735053683920907440009798291848566450542677869792256092127862731321030492149654035994890796046331717377507955345474219603537486280427992370823847372703836325381441289800084607746633634573468038822443020924763412217086604473791064577719338547723870232681628577920734047812248272118511763803610991523917263391032896491353365123216143988688772718149505304290314543921199382658868877472056089136616014365903797855792069041451921881477562178094696551721734474316950237960381406688461526473746290438788031778201423589551908757281565879785575333768300207462895586039608371946131701194730848722930195802356394383294813282514339407808798203971216211002441676904715585972283421594513375476748510588577937808680170177594862882916837486154348269455467171054722911919181089123879345566119761345972060594384041727837710469641016810746079373938268964165937930147945277297854911929823616137209539539089505598518682775257103823567327867018523195638037807775413616173673354173262656594625540935794222224485763261571709754223830628551489519144078385258871461203203672124905774836590368521835620488071214164048170803403081554005039360403501284990854183130116877978083180307224465578663660923382377014036189139138004298910879041093357053776065528235255867425524436688357056262737675689267084289218587038399502983702892496067031116158432069437684843157763132745010769265766604739109778686155823283757485700200737192555010980639359841124694082180056209134915909136664565524308750945669218742651181052343266547263635184669072186461108118651270813592390237011923291886343604675597584579524537249581877610831214992749698936296743817555799415759837126174181923238073930624547537141478223365041922079398860920622354253488231763769694632280029498101222720207555077512257243594002030374370896881715433126051728543068539546893447674562161867449496442390137160876681132385375361506929248379890538697036264091923081556675216432534896643233837795559276341429389372005406768999793392508744045091455021093352430116831824927979414246211395331745001591894160109737183073638960774782341312228690171441210413481814131280246985389256900465217274601727428208183302969209373040674024559635654162391153893975645674257141496382497314114933438389078912504830137447525021442160707657495307873289988056178487848218225229024525453987185292446478587507483769217950165565769359675639261839466889733933621905928053098785989950634792272264562093433955038526842651941820611884017337768882039203301595745438273308324531392394951847918944346550609077560838797537378835662219664900105866298986387255705880134126851782180518957604504396376097052508882178123883290024613660797071491449109843165945301871110590956928541821222266908470613500370852642100054135324426927797163144259221901216522935457234127389331061073856789523168779082106063412755861000610554357916016979866891969740335698360021049178004427929917462342619669254598182503194500763770541094909894315235618615075258867207211403465708846490967961264341850488903926781528826215503018815259566810712138055231833377188513616668400206526314476996802168397599803793677706725141886090419501253747691797993103620903200598406014300137813205438522511904708189924912861338202801691035723451988158340755052790315099399194353599754273955797580722324530715754017976118723587134514032861804100229614990614536700904586952307422848737379840510813258960141075222137589296484264092641322081855062805917820287648496613510281028330055017196949488750885509141212130606838574504151010739631399480192631190951818764223639438446953782247359940994953046702457945234930680392842040557764140453918442931615206908047141996959033923860596364188716435154048540737019282028563674444334608739901347561148594868164238094164627690471993612571751693319632744610353270417071467488929678421673383811456949914671382760502087071090813826467821331709863058153402840036566915678855524538041183074747823728541371145293824189284172290888028821824935221809300766834701652411090324302891158496908835007068125832098553445650306158253192613126717855697254494547936894473700648365591315707494133234858364471386190389670399490438968900517688931122137675648620973380151129106606641270985656165397390385639887908951438726003167483194403886329670209123568789256243935103708307225838991619838021310942352199204886747363403192836393555615359364708670006880698412777996482796493993341500025534220861394693077203100692161412572353609419960130889145885863012140443602036099391337201844817066776334981835715279843493242026247402467218673099812529626723190969542950920135249271508576391441692582934039058237437267989190864992947862254850617837257841814030458262903189874512274174752419183004025954497331562041800813803631491887421326805410974493091830699174240064293253359703119443743868509888588434150366357543842285201077355127195210127949711185407888870584462057429697745013281624585602126213394190855594587826389933249141255291359519906927423376889377152954083799739713844765883642966387197559853708624575334483561398651377289812918635153545357534956434832936491284841733025190056071844820599460655038997873088238340613528787490844361219769904782283162570374459453523259633903808554469584460584663771857021192555434882394921410217029403222443194834288744091532771261413024750929038615148489917622904292420949714283716753833725750136094006600272987545652702860712897238160771409617608500165192609011196335142571488706428200216599681162158069981558907680449391063296001241770284829943560435143121281178034845041190043910765560183156004539960377856100847721537325574481897340373500489976177722616389053021198651850797500940697122199371832515399096052088997288295224681139172983615995688388689844542783984571132544371694499531994921534450117051043618421732066530865744812940919726808277855387175942920745807612671133628452055986828200688530178289754150850050208038631899532606992022757482677577584122546992820906053097830214427158115693857763204982702607799295337173515522976941989617500813228277143542540909953546042128933224464793077137325818946042883755969196663151223620134418515930983898414880023823392914325274733036891709882079918858089993588651479623620785391333303634750711692413180306487862181608895012351560642143137355298112667592324198478283704363006352816077289872281512396488961831716307249469030095989388498901115834091091999916311389160868308131807435929570287301306840016475744304340851137827280792270508344468622235706410666522247588280121483037534922168762694953188246307892951770174147353219052661746319981164055383762509595873120797249198878491176624277888210490587184276676015930587817575437857177416614491075690756277807344015816279680435407212636388045712358551296041630810416338441307388465144724323272684759912091168873785770693105548299082764118246246921970783477428695363954035613575515042596235611188631989708467969400516454746033771974532337090604606414910374572651308746886222791430113803370888535228535675606055318325664261801247489615193359867600835704105168608475731768144151370399989639260534810656426949509857610321210980764962506613671417895177833757724865444710451358132137503948477275559168885725649445828730668388788839214096214611219510254373706697454717538917883462336892665128497315791530081196609540664382923519109902696252234835323007462192144462589535722115641880064841663536070464183020696664607743954419211474683385723471998725430274462518167320858672742020938919605266383358156362022581757241833492722846490538791411195518488469398968941055056538260612960675713741402977723789318743144782942675429670319634458715937640455068728391165738266534582485376988577200540132919584335336632951320658778215694816904052214209188814141924979410768385618232066673553598375158934917573079796508069724198736946636829640739705475246421608692493534805835695423465069769065508048246909917630660114432523585582036964803544951037974121259781037079667061284928242052525048019372534879013246673447060958787285010510819372041989847991920736984559490907265235150641398623642381976442478239271512096338024720760496816864465886060721092045224154081572290412737483102796263050041984029399272352607628506380740935833198381645429758973636969190799339674630029860988961632491474195654761441946181895351203612571574152716348631435019569160216042970217090189929423101174386557857332392861740818592678277798777730467929734148680055482930218278658092296603064355208522242273523190914110311761927386914967555574300672588795031050782821395176686108612445975003426413502688356872101116501629718586417198746609384125164042976967822637598624100825090801285422845271479699722624440479290043912031928147115169529926004944044529363881343943990889745876362086052214969606834438882475887659224890991639656940983187002625452456875920394552422462057637309788906947127908235767174459086515442031972149406406743778006530876725606757184997593551903113088481455034546759561555881120613175906305453503568799076728643838893356538370285844796217764844991439630031420196168942025596485465267332790464408476942924691840226453407932351630908544486852055300130248814120910009558670635557728824582882844537063131899486209755124777980742359732249511657528353066049510218572663004381089264672106240282820671605200567502028738752870271213701108644216048367963293983810732324209301753270129651651734713821626110994409798230046729649742753590464112261955623094134923309122099519121564960744593541131356656064837832788707455971415781225043309828923923692594031758445173166834409131589815723451796476422904654191483437312350815398461785491996167491258233839647324276741466078428826834258570560806866379188019212267954699759533620949573624308948173364519474178090182814545609539754923695212953062698423216512798206453852589197532655954657861451470765788371431503451214213861834042790176460531581549742512947351344535745534447880656050286750675408243466451701627566747205642507910589230296631197640690509156245088535472173543513095058130240767745857393601650066591272887420001546236406883018742621975847388139481193026065228017216841980442930541156316882386197885650120000731097662264358961999089274475357442798319639773638624847668096075517431442394693017010176111041105761459666667736627813356165408957735736230303330379871626694951151507027523741505240562954654761254591112475025855791076570841339847344559356432479669940051591462362662013293491100980648690909952357140983479515545674366960251615263939803460081668706812416494270312423924859380526661066906797863076456962757937080971969021348647395001680689720510455527357125351220565018333941661409214014337187375352569994149957051122323910084648874989973553751053221256552195619500568443637740395259305311129044328207523653754076873194189818364981976677731474133479546078130004711711050898308077787460508977632411386424977887337095166410960864298695047931473290159930286407691106701267259997599524622532050332032649992898077314280485730489071611208264156122501004682464482528893032040967899078007612859648256412712840746464777529400044625965452655316450077228074271308047616445343460232418264147238923587744215548041034556829119468594602800409088308078054086101987908165507228222871082140112805139429154166981808847907877416596868506898616374315655074242754990929080428993647765487314866389022199449930395584051399618011354077209706485397746612768366722095719039186954040594056893184138086791306702830827265678549064145040741967735916099706936055465102965948916844968139145746425959548815324995403410985246026185819901213133617486858309408618701773588426933025039579875018786638218557225493580890755438531910318233094328071764547092557964137338213056885187658149062180348359493525661627781588060951136422634329313688904484177656355797727004677040478364097759627012404599237807261006901120052628107937980777195672274550303405484729262255283140507787628722587242602944540687494126278785608049928589631847728092918441456168872956431711465269617345119112201755999810872768514760559195765706404303148897644087649622644848544333901311958022694155365254033350409493227033597457462941129043778049469361673710358045798697053894435501348573998241983833554836590664129207561872980521766865690767837846940942774194387855675221813092544632631186612527481370425778490963052651902929926251980545360949550996986552140365292878744447255922873963245598459576369048556119047384705146092470758581175539976094243894062021875327701471974830817786965260483242946809605736748486827732378864260089476983694590450391587457909914250633315967598340055041415352168886233093579529687893551748326906350360911435535042861383661322795821423292676179750378873203276186896849411634785951603633462434187727442110653347901246462673760223793475054087830887174022809067880318516337146477761206898657919738340096296994926932350474359411971028048502409489738384549646564056520931714677792326489235263393638219263358677886935239894372489967657051280360482290511136170041184665135415570023980028866585779806549976732844577079619863445480336212314368435140272816219351188371729649280627934298171837470667960171352200155230699357386380764891518286032174443823175406727971789972170368099607335698720806145372722593725380065698089974505551436108592674456821589924571606752650170918126612466150148529798339385785066268140044725471700969740143291194289561542871423865758199269039138540782729343936762141165653930562473653989256178887061328684406330246746164051598871901887959775140610045331709000569722803965863581364578654759738609564038005288951623913494110695268834661150276480867948013803241000259416015314488705870967405190124211130170088643891246138038657907078228191873161913288571882989172220904370867683230952229269516141477081063131849692859866664342548989070847371229527959587455870575319336622584439826675565409871603505887058332204299562083705518635302555598781970570508223460475969948072720759836037950311626056083118480295351523246210902475309617631808393845508888711849664096465032044043819896368825613968672238773663964759973174987913675594304118100183319939433607792768329946395495756269281145668977214458998121806904864560206985398713638211100952980302259462037910549166392075764903684670311763998205538044417995057931259986762325027836154193688692166144932937923417944767764857862143066726881756018197013865994194178298249453389231741218155726761324313872941956602355561537958127098614714514734507759885832697480122250681780281587646151077666107156144324881465532364985426711751349503648973240687706431459574623670460604376117850580544022113672754470121653551943973172142176249866820058974396840548162504577496530284573142814391365648461930965073488699127167298992305317886156091508242145964051498306559594318361581933671222260546356672527755391812154102131306716249077227579156364264047508737279119467768202844210287374773639286550541159500650658730714549083778866262516038996843245962100574522540206865634062796414503811877887664023680991905564182622673808639237872919683564156517809920459917841897600893213631938004816246264665943246945860373490662579127234214566198108193569305487053677944353151698461227758687771031527647117543645339986196999018135386461701901193752205188559416234130166888620438664781160157787023259433105535374587734975057859071700476185272644543644241925712537581431770098064316057578114651004923307415740630836619846260812223895387640075241119144847827395270158831188654963902993162533417109451389768675073087811542711133450705734675605799158009468074063744362240443540489628730974269240607793197859606456819524533123236469107556014269054759799804188049299526103248416639281523194633187112087794059596369168857738264695119693947022498556434829440025336423031556746853351399776437227026302372593471523992465887568471450398996475694121105294559692435663564322862466937435371077241723089736945360974670985240898811924681541933809820090813356541538680348002503413949793112654085326087663357696565225767627953211083384882858767447521270214617510808732344295086848666923871432787078444486475967045443145113679414627843141237243658097775149762823105608510096047314669283255590796834234433365468160811614814109942401790279412905969934204796311026723210017902102820819067287380714817492017307365725862609594808585420204203235421897557405574525882443730825216936809926755229212659448921480222933677585135425040562049324529338342143791128189259207669980606902572097408456965282872568226112663817793897824862187097875018473509406976055558231612545650592695264416715642483568575178936788739692004420677911097727414088748293627546555015739122142410733718216349008784946868059582529724147148610405307484077847730455718756101031176468322650091661226477552753491943831447193318131677234973767307899920105460106665483062761229296783954918205831359240205288280886362983841293088191902500929805455034864315906377294047891980007562070051068771237536560185053357088155807107535466856219928044144689730629305395457781685850729281324443321601639794587188006828136991321955506511528984112845002741629012395673857004197959832520621051489826615191302728741760231323938606534290388415897608579799964234038081774310321500518397945961708599633512334470861260007977616720498727774378560228934035473181194461990699722976166420017310719447191176186467086580264163686190178365928291294946824106209651688808441527515724315951832316804642325318795385673231265511080678076202280884502427462676499152152137439453810451142546952640302528189036441880889631935091632970657607162115427743561427524759867174593984199334332430350880749506718487468813118285882757908429312253847441743785877834829738653594467135595203942154793035864438180438500416516427382245541230349329932271211797057957106336464511964299694361405225067238014748372917014563281233190129876841492043502637036566154585342306182320028898713796318789225709781262505945650155140641660509791179675461035673616831763780108490822527544890660751985495699115618896816952530940877935296512761163640962313028829254719647927461709207637925330798192957087476737611269423003812217836018568282559865263041513632967199922099809258810666926157133363295680331880271683005280203635580987323049890512350422449362358933279528465468189321948708759579464281173030688551458741877744756990443931256568961419099265852239167735377263002606407788948314028165234518379232516486437745564772804385243390694439223895235115204045713820826910398637761475737767795037811230931097266948162649467037729601206149733581009736430633226462416932365840674136989430868046597665279052167037928098367358644593384912445236765612918498613998440032126932490208447044254400185405300743468515142503777651621542642825049085987680759375293820205184772809617915329668286721905046027254482087349114773827013981304816281508807527391653071053431085675504925313580925230427783665737590229806305940795438820986089963693858023877471062937312479257367017540081796856247873744083247309722793505065858705852419876393338534558864851239391704013488770176639644828733819252607692238896746460256910737558764462522660477604733911430833441848185852999216036913874639122712358719415376551090293454150473206918101871559128631505982376663056000131590315426895768644344293475593387717619325059029751255721586078766138682323078281105109358172868080553841238398792505950676432522943498737475412639521278803157779685740356681155319579988681567234349405856636751305121511600514451340176178494539079034958188567580216134302877895790779362886240657459237470835867529588142563626049858826062058256188408047629503811990587917599671648354321275251881345907235282186613336513298496983185165460541350573399119983205080384033879290652100979422216030906274521310470054686243805490789627605888384790641919038565183665926175433039124172232004105699637363570652951100852530433953573433573386437971986621384019084679795975114826707170201187413390575205327505464097055749418713858331738779375751583505279041106859009487617944961834859424511249827836831975128812084143676750332759156575902225679695810069848437312516155522706769540347213398444933203343249306330346431951028962801048105598492405382359056592490708674991031678109385148850333548615825084196464111224032419258255861132909033851956084295088353706905070238016484698928752317824576421257699466627223839122001468177271957712836771643214340837125569651271902107257995945267578486115059290293799838579300631868276378165655712096624642636637621229949312993965139171759045438647448601025368359559479289979835945790123678788462042989394607715162183987430680262460043242668781518642730697173228241189246103524617083105925528500260055513756017835134136179973944451403902245652988457184452114477426390314094336935282883500390974610146890602365494885663971103338177566764630105191201213739694402189623950034512173364756518107565565285865921748331036976485334471507785161095840856668300852305733961804635045479093707940086240944905948193808872886324502418592748529634446221562944131677216171481791787868543764478846070819148813996313535150475080420823156438521778516425139076297867559723592246570059348864847218064014117480647821670190085932006374153731355104363688617821136991135950514623172213736879707918748254386349553335009267897672575797555701257749321309072547467023167799830034968508984632036270855532168300604449646434017983539594110700951809568867199991938710946439020278341062975504774880737947547158611195333900993811883190902106047863485671073988678205554511547817836591924989788747936269914899209324733080581291887132551482226382263098480281431975894760287978383956702993135574591567826714177149464399125985763367916949300233237956805270607632417077581863276746468162701307833495888052168719575468747981578365601195624699042568799407515281334992984878819365336275600428137204555783081395856541089236362462196933476131542677824721833802006801606294054946331548946431510189333684364916207096121605414128265624776926006560188918376594625747888778967291901062836664441451407918923924103035262797319049836839028008661294047185612170813885133569153667650117823617274226807198503393780268794897518816315996959099980365467967784210991437119271368714459268666451068238043093330921040318341176045129806139112372690591983133112227964785085066051271569877665284708247107919190745874713721037546725808042233734536287881234863367475364587465651439125638491236392149490963079195637952556752573064147490622058981182911643609442003702640050471031291462060098373556539496101715453360702285614980161723358683791201122061169037909029289596905987883226806195568859957443631780188555399830662976988623203404645838800696126329312881564207358477436761964659630959058548075649259175810232051212700703940498582829620974843523639674718756978370816222828799320579035854261165387782346183827798826648509101529888334915264558194396457649557694580027292459342738711356681861739492183218242291681063254386223774504756791468115677085027124852064391682007728222977697404910811520387075810702096217786491841220455819546570154373394550328140931438941362923006822776010078967737261082919725192908113805495493060054463043702493680843207791791921968748115098582644498046904067756549222246459005908395610815063326316125137065570641508997267898266851047798915881715559760682065827329267013061433139071866575968842956845888067827459410094843592036984657282585507538981618514144144112990160865322180335312695035831973294563951969581732749926489719614982798743762681079979160495958551020216128553930083544769516611287890070648395467937871983948440528563772940953230791101703049585918505907656804551824019252948693905638823789481192416863784310982858874601400359241066585890022682292423549044784431460291480420006584609623854953747726425784881841480789725121644366310489726086058370103464690157576930359311943570405825757340648756357993811484940561917363958137952885460112216695304304040685799906291722915807842485536356680005271251513342776472293639435247201438271313042565309312911528670070248627787065430171104230768724206546367138722297397019113782462312957280556339921167221651045965911448360965134148639141276236264879947915691511211507336976121180878903366833863713238916882724698369717935164061217566033062153704107644646474686733506480623729698743695217386305449400202681383324181556477189078464237116425839383498136096390134001214853333415786712827494121054566156210610914051732518066167309497340938389466387503989824968479555975377353351126134804586320274539474150007012418001810693960637536255514108071923075836335213135805387815929466910193721668468573590546547745108207639894486200888642447837912866751289931820912987520964256095154582395682229449676417629709319092243409383602933287497063154339681991097985386842202156177852325111541731316333959015092407307834166070744017582717098129870861850211494070167704410849608925736790215482222871379472098460361970468151128146207764471360838617672159810261898473783229736099005629745957464106638402980976472139170999270923310093875632903212827436380182743296377670045457415505237295174782614464511721757371442533763437454091762995937449924015531149387611159565208335144762746823948158293876498583465469276040556640898142442240579477595829379403787535761648589800011047167972509351643911235757356180193701867763445121717872957365088156627214845636264767784272925208066641968663082923778788566239145058919629694408320297180471564251748310306529449516286478571971893009252824084317891915369596216749130469055959659302807980966872838749205485766327687851656988020836528587537045038647866604107763030278313629654305884916710902323656025067117590112609598679653204380372539438907779990162906514895276593683033619370765273177799646863583345877221223907148376290668373357572571924698367809704185385851070214584875710805914759930062289721968241044383329088709466128753057422186511184615465629552402342915799152034608328922396842981378034432060365075320396719026394014947045579006122044305131467930803306174713524805562132231640152296499117097111173401229644861823924604986686128660384288963305136794560292878848002918491306708253644362891278026091556126226174166299644639536158902645681881954372966144956304575519250145096484163288668584121761848499501056849051250725831799636231506942158264596731350137339575440409915232584533938540150604176269597398078960755643225320041346027563188290066857969998982452147910195920652766077280914331593847625678271334620914438450836163493576743064754426997565288611518726240439652944900699728771618670609471468705116000189187843999673935241290212351756714707171795520281734029442731659315966133496904637792511284115504761512620351809748776954240293680669417200493631173781494177337364745881691912602656946915206423981917456862728595335051975044157711091957202005252675106758601275562805086861491892690662572861367857587099361762279136620671587650877014785466783968741821280075210976762904761424024668944970800151028350041907749277180076290650138413676980302955433222890165362545931850205209075218683690718114897740571496141367098435750506305485815897230388455249617453435664904858278366157115706133303260460999137308625235449446626061025132677659096840799575953255691351933777465020921423536722461813849526945272106055720600133511531479003358959480736405802637773729329444847823148482787112318352882650164047793858311538446491067853801122113266701356269716065265359764414370280658876825920521626861334435013076419078662690303145118226501383427481936196734307430427679371974197748672387999329727423892047857644717318437012991021104651573269413844388921187084468276008168783488689260485605114531238560346009477067869044660143404711173013238967772534559410604413742220608049085653234869603994476090738740292421985531084378081387884703294347236716104830212868157880509325368455826180323879588697130192420515674197874351920036710538077503071647751960849886272884252920965755826657974750265531900565077354605159492874135880817022916762632360549027494960378176066222376783956947861051147543892182545441879927236857939428467822005488893837529208690114603120130515172078797563889831617881111480098023820679319931509686392210269172154980936342629184525558104267637218471281212992905942013680696304107610260151943538644398662029620429236247066402995750516258604673329769475085003716253171213228627874937903155533942413058347757512464590531261266026071720530913667580465834416613454316885568420074896360676691557741212108309528173980566874258925171702859989064053811632804147112098532620631249783600812180589663765951289091493634599498114456989006997566569255323741115571693079046570922157510846595569054313067010537627309056982904394985077280054162384608277407627785562872301655731680500700840678565617863481039361178112249791881993350368589289971693881342144055533222658082283126585084924808556979086823112194436846602020372449659669631766858323403923335040686810773343095359565318522025044339269562739430519816903908481896573749031983228366762701662793301142593442345192888766056834551982819085341153235444891328120799383883670573923424616494172973820102422974697394851013162758806929080160375946931237590151344146155760359875639213710088418734227793166886066799976699211702864008940084275304417614378777151319070583823401015684972529542298816919812358873287814407674743734460636722227973938442417866916841755407125697235979662909859835815126854667721914995529432307562473383046062025464209793098255786369204230665929567181397629906331540739380706225840524904659828362768831830529224654070038861699916227469423839604960947245207403466491946368606742467628101632054442441620311426132308935411875845474520789264650147346234442670156541932744899487611255168105456879190817210863312432584328201257050899742613640563980179109351939167000685711317706305659269704637462407507157311008329103442786582200566917485037261722332557397155962478716270251919351229600157929805006029259299892828215142893174983097879932466149836252308692410889203436989587771599059890677997607665722560508230020040677103762795588661445522216009723253871044868801546293650735075787289779753889269362669088358375338192534145696681959288198762477567856801775096860269278522868951034104724625424262491970753416451016421754765771408803521996314556034946895007018986397736845413328446781400306062134877952827629428578343624405342639471027124698865906883846735041428787848979174328843763303528538063674544234380606351595744069618311881565467848530092258506294690249882538810283890305620751404381753797432756312551665488159928504298275600990221901736824515073738542169030839938832574790033382355484330034175180017693213445449180342621704316748235109594968871590001154132076526442509263499208621892314912373324430150905287016970423031887723068762493793393085406913666288556998753542364578835740463163263897966576465565181737496758882003125183187091166714054173573393293466375467086589950058960393400538361488312952527884521968912043334946342576967267670299616811232051313783325913465773054603832233770761269288150272888041833018665342691691268694495065689832073427995003473767358618660875554448473896432956755539816046365863926748548364073354081097112529779578201468252645060533531088466952821033686418869889816707245949302049334800401845116711534946254839408330948261139121019966813345701770168353201890904142292967279717036389662597930756496582563822110851577635177355432967802350559562669209863865968430887029214053775593809456344455291364575285270729583704840392993475042068009803702120887203830074942895432028058747950530317172517406633114275741056146256783776536452530118625650117927766749479130825359314688397672155721989991794596820519291714414439378933178731829613352653336121796489839910718598083804652958517822965838955801381211723207060910160899416885222528261931516020770394079907154448101042949419177164848825782981852754186063164295067689074694963839347618310330397506057625631754874664978347890692052037515429253164640732660778487126495667043387267603337909863695714568806030113797977572622795808973286433642398540824270251945303349059242236645605883062191373971252807164919511730015956165919892993299828491892208143461450816816937771149003182251689910165276295578133002973672045806788133985023497156892467458840784442935922759609595995457031540884015010175138431821631537709419474621986409256666255435211175385571225585613430348916661918464737505504971361274361729753982306601305445145025808023442967421655180736249172441345241825335426558159462722647849092623032404194965378683484636956604164307174525724229700733251771533728689194312749761928148515335449635461965110888160051276095957213401629136430378993679496227547168157817318029324786800637503070380489001445999703585171187997346733585851015613506885587793122967027948125468459302605390616463785518625269967346242353803228177713048146635034915525236665033542538021644566226685753402176547838329342781733057151612141029068308389160829526899501024703753489056917071922276378058623177277560317147531959161950117223055982756313965830947058749262108982491352321619619757255165566639120415718757069533780703859271271815126635211480870856583253329166820243528933511459679470828512005117920536109873625860883462575299268575544873952280770804538315537681026665539594554417699896594375973910357190308628134244037317037204569645467815625593825875790931431176136371772223048750092700221229133747174617864812926889062613583028370091539946431767170578925140459329835341287990055369700469203558270741025760662353015564834575178917583069343222245986962127835463517033509258168781345509799410771868738528879590946154205108383221637418065278045738940526199277272090965248784969223146266706067334932614596046507758764212527017794679351610419910742575352051865329548705315050919381415166398423133791696459634542730930638247571505548378900985677927454268064244635080732572652939404942290216909515748333013624083818369650661052588035157466778450504603626034547948367150887664289329976188636735841011878781199845579925044251198139690020462073816358370379772968333525330474355238974365929291946251041492222040778204836168687361036197179352579219340544726153520086720135220733026580343225862210912185973704609130056901805131390780747172820648186750032291616467714627399781539959686093732138261050590572721382756866749755297336933097461313931304610543164583200818181126906100249365651905452650699366326938111603248410832072195806773257973895955810507532871799729325321106029633298188010006712161627379990419339304698406042002699073705383517565562247282864202510851645973057137202118061399707795353849091044682720480129284064402370998502401005530521015845945459994475191714497832695665613157336007639775653516301652342402628819999649410690289355585296038361900240167249900910969523273594748794897114333678310711190946870004655766217584352334538044122801623809925634553027874987158614607344878233615553050137995675593350417623815697741078977965815447451057002732162635735595532420139799605918591991965849721272980274004637862361360238845191732213986158197005909060512974738831145611021694753291345522543577716259125137864264346027347774117925603170703143611966485879840650684512469282274413167364323833466139895518701168317223139633004462722091788083747383305319002790434879329283920553367975307060368550975984714400237484579792588489927893343632910997335309358479741138326161183266886188946733703286154095498636851660041905130458009841817286462555058125224836097714117500415522161213642863092248692386848466893526682680988009714706594805420890301425809887224762714343261245966267725652556848814175041826622716693816851795326195652231763928850088932101608856694904247030651627200855952678300829515505734769375142558561332559136945588763048150085943371215897334072545454131093985305742303083586061074630804765974324915628944718862672187280972140077514120769969674657781865061495329807061083350334576859672625614863945930377082971477847542821333711852427440714884557487036906435535826468730975259595657252398596755778988588442572486380732790566747894914858675030061302581869950585547069971558607281832519870997890826852220976205678016630014291369277592883949706539110638057354824332599875992613458895064866371123493215889764916712784416886795976396290367967988655186708716762082671489392157130345095511693524397075700030077326450439373882667639310729812893930476112278828811636115463187367404243599865542929770412441778554116309523967458286491906529821492723646082141577611381418358291997286650957759580037162778066187010062293588994327814141824831855535694181371208187462599335285509751958547310059506436185597032505569441371235038112799969532934379473964501218679655858882230352859405747706249525707752974977615001685704833478245043256640756440247942528658218920651838995187483550356680751389379685446939524747946716374286987750739307612547173292921489511558477503732785714286484124203643970360203994756994734096074822364536472267191432204339410420012874427928433057886892205312251826443202090805404097549250615459825902153196914983421720641071321701667224509337324383307529156340822584019268995966478801017959794968324400508700641091982220805499362633758813729051937468475921724980653131725098791849625287873049144130116298298264597827070065742891778752631472410081656258112005483193556614200536742792461433361103916451474109668070526079662275545059552444282495046331262060787106094440671422052027239268892803786363598942075330644038936489922880056578156547302347131255612566454626849173574371341037464549784935505873332970338039567493164732128521720473698516161433005638173870709653501979038270887888516071049803498477193189468928113140024705212144168040166193833239153960418446706409800103987264533140864563562004968245206479223080291810339356931223217292466249445078029026785924592932363943781412950039443550972955646761256686655514457092584764642371631266332933029325314130809944694370221699610366171931382891021054769478019741946035007403383919371347694648500882765347598502221608904396842427953195085003299718065488947018642889745129774448707413188293784160793806707221471518409835289316409047374313770315327040656919231660490306659806956568143950250440713051644380088681923964734821270990381539364323881935750816828985360321608120553118042891853773355343062342443907650674633450154620747466984858935106421416641433113675304731497205736218933129710453699012030574833151669963300047162428190650176341166508983808991974513606581898140805895329767151508593445218887499609426133011785543727915235491097604199343894188695949039830485136282247159941029527697575779192399145683599455355630810162976327180604466169718496955927658218200811570556294161024367058384555320400365238795332515887542943873318354796760531125753650555829120324058360439933076952131041679429952398716387014630170081257524339041978478476213420239009483669083590043803862164309622737647599973491938514499794222251500542641719920456061576586570668430523169697312825811240481887224749835670262108338384698204020077786618956818154324522185259303194279151912414696878304109561990240117571446933450765709326579425703398755173335936642142277891016190624199022004603303751077941813532376036007633947487749234936035658193513496015407596173609905487043734879231242315610733678870418253621431157955530654203097208580315247492939225717531534079988102389106802848055543582986583652361415341846213051280959445729366442108535562102705029325828747967028379397973070886856464199281317242210718665444851985364665058346762714359645538230004685175809828056005059148835381829522319232715413831260235746786731228813367192110095214466710545731752126715228337988549576285316658172254385962305175470557645784183971382283586343821618070465039663076135832607020144606170993307335073086838942742305262085770591695441230955558491234860950624801663902052484103049999121934556081840016435983193155911518169733071715456040551909458524333683717319979076613428169563652253246542176069813676953859262826697059740411983639613809502108454882225813905523007206567556867239052468815891400140807784114184921796916762921426382264105439736069689258933294312931803264363659690768068716847070104144847369374216002104630924164139655318151683558634679951040776792285799719775728891161561734151092930321445680183758082164120087999778589322916568718161707238455416084015750058637960955320334891651399547988537687927287186213053793051863433939505162710675483682821822815078507787019420248407392755625025757633512419826515469289767076371805954382793195896609941417917691968180854025172434378295550221078116342369843527007020941190539205280926184428324926291687769692677712118402012269942774525931364048321980547172307303071798421204041428190133159344828785316000407532212563528581533788346780113598869977083388951606611270693410549091466221954705643666047644333052351248513235823679409488253534528721697006131195017801872965501136048282093790356231537978079722556784632824471707335427808546636413985680888360519885328463036082535364054384205485876851943273214610017079626057907872446251169131306153906804612782350910579591161057910692910709010152722015916585663329375772405397752622040032077168133531426084031453559546554563659699643170682071359280273503194612472501154629816646494922546377687514536773583892411085172549844424981947807684280156669860426343147057538896992440846610911071842117826396204252289857348773176355686448675731945782656115685006378488150399447859668787384135001391813583940874585713275295824085246099947825444964462605125978029507259438331215076507194282384748985284287535848347147893267447911755155567084571063130962569728448383050450583907506518665103927882919203698189713462416715057205547610665752983619827643224534834253327564013291099982450967837882194140529808628868967092264109549735649073919648854313908657035601569929106796400384551994386308844018351634966291997312982064961049214619038357462827109214058215934995290340193180866138994239090520778088925717552238663473417546167111188652130376824942808462752038274963758309620029073278295628808713080955609204191562481714282289459120227866408010290237262004975856911382675714798027255777057327373459451128343433964351413741947603427105055328008440353982210966981004118872698134565518477725128603997252337165698280833661519538106693878014009607894761590813010755343383656956706490022205140272641684613431287109219081909406913804054274581055451853916924186779598923488673736082608623871792022705884443366031198190021518611074494091432057523063004152192910394860508304944728311586689720837621210964230719804959089120390501708513252167884438880206379316543379785778002602935012390919464391501222895744783500419493027282740258380282953454506702365052056987558067573259426041843404842844283473577124242659716905742797194713409452658190521442955842069578857823569307688983302923725302335520897307509872411687923140846068806934451218375215176518668286999559047524084583303214013185153748522291185131701338863240178907097689293532943613927767564885710210095159028829411672417941313319550462818847163361597722894754821615689674841628509468333440536220547189099762541993538778479262298692230756716861687075388090580410046249315187423687166125775522138917118544098145909985326906852612288704285739956562539773717567836500580715692784164100094650235392867182152973709308584511107117920597338212573398707142128531394066969824500811483873213400109885794785833799322890032827576971843336499844391868544606843137603886607190527210468841490123218953437229571487120825713914260340083800096249482775673425156983835000558659922541809996606823841543071533960992446447331829934352180347447657156872746471147497858185247342831620034639080960634044452680091644729524559139892330011379099712882870972031631997414670575996905492087856008168222391806894388561476476328492079727764867278156979511630633590143513529453320517152403524717985142127675034628800096546780377726558838819655840490035057895613658046716361083564638663394049872484774416092090111447249474110752350715107380456811534382268706294167640494787998990950735767754929963745364443059199877616776951569077861123020795256012479808521339631979581341748663903115571491890840125368721226722883269542224440080900711916156075608677668603132170046958665501813034031391225039876994351233377755052549486565620974525383091239009117827675783594610384864709714214779665013329502601540984297705286663986917821382645165609682743748986965254094448134155175607765285176414316387516745542344515315951332697474545576027948253272411810706993691218410601402643753089967622894289152625255199867348675920019327452632874122668399343395488592483509285643731399922515755750989337025662852763095068943805055852399034709998195863211336793918733753161726718498223465884945292280235560189037122056143908871720861607370785729234470875876830805505369235783377129939348711889116477257209117857216740812926466853802869737348750456506521236776457064919609896779477213930365996782424690588080045726907163286647387049930460827273366934772260548826084348283743075574422537609502960493662327921002991005610025097259068241441135049651191187717510503229065642293479369203474394631313021164249533684614176682437691740570837003253041865925307693054379984268018472510803492640532280519914558447800528242864558094926187936637263324557657718780303598271142854223040657199738975868317305996602333234321194752706408342267535901443561922403839258666004358185864056167722836474586769644988098125123837049850401922594449539208799788001174106704169863616468163341262193139969160058907972234904206449868408344752312275288082074001325156531769855104731639566674204457723984990613786965254398409687048569550863429909328222091966166504060241310701013647059775111366603108915904677315945180908949745300904676504143745959783713984783684688022337590904057698085771446586921867801862399129861114362696187391439877756852028008950290176822729653393249918635895662265888215090225664688225412109997611591067116312957539845049713111400174461682372421745479364287623912507093791373311071991105639613028370279881908822266287999464819759838144925646764922980195732221574005691983846576460146140785482274016113364769527453162424765214385860918229712067330031872753130990351732179088179927833984436221933775898972674149303469686357888219479533505690446769654350712703275253695119497372434944079869319071630404052587705122401507517058734290705014672516047614171307259452925112342309651339067822791481850639292495309608746242629629720849639624925104426901800603887898411510334414662029353386914326557175489430885602434947160679051141129225370226335189316172153171392874651391230733362885278294366276831956106370467905693449689754553239645258221391815031600781915975836941404464126801791399824834556808310473370575521382229804778027116301529904201792448861354287742390462309220125609069808871159377379054799128849268675431047520894047954865680556451574038449602649188305777238723799542699562463301713479251377960670402609840472494671063247732892936146532052554602179696211653372344957967963669319443788512784793821160304690533887943328634283822102638395093522765210097785615092388704246419472185674483440954987052937916113516433033058106781061541567660954248174124635779682218647156200964581221512691954574034107362259525320720020421305908072084578736328608208948761374597927990790379726571656781101622369828750370772274625351237146758666445628086745581154218768413707907062296580730480991186880326750298654994769036860621452133453379716900196246862643883559240693814111272430954990463457861231613420814938982349302332117083602219602594206529115918328661473174158791257879151529065992202873826820378138111806111578598091919960800762329326561802877356152544893391272860719139005874601789867028718449617042180383782861163157695188673161000036390015181166368050639441085633791489632682153516297672241122622109442351575469527411968826554191757394882279984332136420068643616518058607675489813912507033955644986064719072222923619870918383065910415210346240163586031110411919640430274924418812650170729668573896052818366330777270120380318541903137776861831543119464667627791676656614137384850630061214207294045101503628893866785539809968923091916435889402504461142505338504847179183513870766915310472802906298856091538828253094325864857469263309214926824643366531870808575111982149899798033539161437082523755994777353931438188390112693488567880872518932315876789458873812830394130043789744398581617150191182207642603041966255664465851246018430638382829059163705870347364010621501102568432791362652867559244521529589329517347568575174780925580649849524019278909008930795929746974651821219323560970776010528071235455436390658852192565102978026554834691593543525725499826525754046764291832575395685514905108793429483930906788529100285837506953378946341335789454813732955250364897868466831115139946924211845378098132989572885085592142924676870822965907864669998360100705320145522257354833591003330866929215918039406228568653951589671589170869176229293017991860775520332462648666853567113845617635511769012821577357955529014375117644891370098647502696242505485344322083351299299164041079319182613992589727283678689899467609695855738729812015323620738416696745440941544370239758964845766814815858728291369279404316420485912079905511562065255509729959828069157661642990462599600515864529519971614358881156536658988005810402916840713654554609494436914410393159449272831056042408575840187909224439784041773333178222161589380764520856310463387479627331246095657071208284171510628232713557943992140890344239723559449955810972000583097005399725379707673211361937833335931167231782221278603360268934075705123463990361503901437792217313946298399051502657522563558558256404881560165642605709275001505405975814923190420184690035538803173680965299368586643945433285400052135340757691410554065795856542499064464376865397121037298775061703922063409349679176079944403009208715959237867963052543500995306383628171392354420077988245705369298054913269161174186271939394301217217639496151842791264269177509246191661436021641703120598442462750691395829727700572107681138525769279605148230798872525874088114679698019596332351170066793902301414022397425128360951300747382773666835301733177456130093258506193562117997336769885117972715036013491185627536682167258755920623888400007512393576186357894441599624656397790356008150882194201142619881710177900765733094168718903115428577426169830061137755158754190606089973412124904322905731069498979971995643103759465081592842413389435776979890931898112850338911360483591936409014030697680827257555072223744826324209591760016372381477959787493179389066468149328161992054675840036035642182393692084587338815004662136403014912574339051475543790615783054813370064329600577319546311691741967123731504174700255032360560638029951794162995120320374831859285338340380732761699322933152453004462767005970659143671663764919822497420966870409313927119398620847537110282030164971448194633541837845075109724768004578598517809850361170429507005073171188249577566872754611994085884008089097604398109883721784840038658049248065746005341198343339937368260251767248192261860918191183402338847338509391695770048192565592272404118475600549859397879622761458421571017026200385154449131727807267256023490828563721057023618105790077548396930151941786733861424018910553832836296773967117801139672560172591604507071954666836059379512425922123542473660487641167201566507987500788003386729029267828405310324371155400247300757859359035133884829168722930360832697936648912191862887784507354855075226201028029571596226806094186389519800314394709715785121710128622117696834885114543015037678924333884864739238604909213711368726635215187509813688856123395173532571704474210742573155984678916259460939208844066111164647326561606964566969297127930294718921380476800621876413664982146758926560192602835035047840914714246199849489533852943640836292326336515457638500634475384543061810913279320065782018912565738904024847182881969946210075854807482689527654327149305509115729059248653066200003442585484219194280603663105488079962466953858086538714177821694691946598299094351717462655374534541506550315195720243546302508719386652722770423318032055208589874837738420098148085665391508697891282065373089088690374160976858440265880254615785375622954085374671333703501475044636104922290290088987283137454713714733752399149486244698983676905293758782494645258107575463709012507955068361579674066398754416942468832340318381347821870417043471282622800814439388470272635376371749376124027657657422901798015245267234807481419442105876245365755304722553884097507003104047637562880555202043238500150891021188282318625308724812910977556521158468108694300214366016751571912430950082532770209874522885738620618153965925132386452191371959690798039329875473054774598170925519100609799942052142726521923532664661946888725426466502021556861110033779799104077962389983285043079769017806310442383754296893836192555959575931712014729835427365244367091672910054436214825533666392038787320244671001117130774461353258316683973387653761552279819503853392462039980245962013868025389100187521420724227944841275127445230286747547127163993098310746866659830779680777073370181384188511364681069699599513207216044469354736900886955084128753481892228564317646982803048312893862145071521438729601182885341714649469342037519535307585821393634941863562763164750668922702123290476001009627772765211675047629593418685346283132479383987789678128883232392595812525279514049549518880047897661243160620999385270906017698553152055466757410049316474720616659625059435004523251607457920667952846136281638162212273341673528610854822820568375523485955776989046056776241250610154862009244379672067902451044654354192587610608408693857664651656090521815834311788294770795952893773032512774344677360715158167791540979555928196812329239664033165973786753328366366542852932757005429879088765514650819842287956918164217438346679338751225889632310226383409869129918298155168241893995622904111586121554421279540662410946668107410805122065631506076881770937620169872068632169808834623439788537546343098111590512759907922042803873207285390695272817865611358504690494170265811418728718460862322593360291893419520469652008469179391519860458622912550419570967277752091311686607761441193212968107645123180038013615888280994571299484721043479646429432029056335215105548266092373412979156823447716913644399193223573131893078711211558353702560633017245528230189817019389672393518653778213975273929149732966676456446175445375206215310613100667447184558510076439695898661435876035337335941182346661053819026895269844018649259072940452997800531824551489211617491268076249021492965379066318696162057724090616643793354082871522902946491509665227320712217388708332144553989626560577902018438197792272258873146162339815357492983740691905822241541547926222183989549172196902604073497693207622076683335959717118516670431995300899370163079173082881178091683758643816907611800181428496184915721810050819854855051526600719787136751475430764636197469204692301115205966718933066287397026267713374365768170215268477148329933797536489644253884305566173907671841510076449694033690196794652481345795381980260497200209551776698795301437936177410409705108016043628516222952763693718581500849237885584209895430183028647337566290909682380590098116946886996983775032267472492026534548425622407286201598884610914723886935900196151751766167740446520502254851025703205426569308630978956896370115671130941655378833760725624746204822473622966016205934003417138588476119235306480246436396978444911096637634924447613202492437972545771379048921665475637550108333553709928146274531546117242300405982519822716902387748263019610251174336403356057394912285953486934665908802199002403161121507109961047180991245268924476626159671620312435023798638302678532866016255852713818130122230603382261750176980746711285443857190241772118966109803594815880540596261171524092300046274475640193112196768579132880122560901526823225834784959658174971117229329175129571867159079882527062304355138039880422011231919814926640161795115455918339424684511250225556302058428296274906888684461848627108624034461030739176024078372514739159891713212699846862755830254736230810901149565298734129333063632434006710964924489890508805826935927072388861393817489982379793781800460994438618725767511049413669428394169361888230079995985478305666790350454876850695568485704198676727223864490383063599240647796457379426617226239533474160644039488439650796478556092673599553197752657432052096208999431091062646797853454414629812987445439305726878222246462071922621806703438983353205376002494669481121998934866244211423711239470275671757403123861905906445813904205600786187523729798192569807348948343787677959762916909144864888009531001482294883873041117999827640097181553563929554693646076487009079303939653317295476093696401268183669697161537724828624276309894124439544602767512110032644117294733679978765453535442180254436851341854217520953124442045360478377214431635143513486543847208817791803061608651172589776163105365965458161223696227502224150401975171794403425255207643278727400652774652967500855657800785147026486883314629310282351009324695523228684553424516940080239656379722070929756646807704248679702933282142399701331465902894696514534511662343487226653700102124275803817398242630428138174056592587908292675432064861717460855572198784195610881199206719700559942079770911532624760251256593393653679203180806516744821924450352048108404190836501369855504448307489684570216088230381098005460407224895524818777555487681628835200093031737627444189926268989124183865235448774480893037880151230103914510206079727392651704921707131758955331239681123881674063996164505313816717127724445716002440491969122177658769668132468112964210147613764043851224112289888228999011873165702803298095236810542616993946977836435953146794144517431832849989391017419970581711342497646640347648612996784492532451658507300900791340484952198669689078086209862763394127052858932821755828689204237280129211464709062328946361555258308946206428752734500164972207778360011236412557734126988817804141573726509284754893826167488216296992398849331400192845693898285986100062978186375304924163967556498894684682082924387124602766142935641631211763276407680016229569585966815157766454207123113473136977011678233802054422948260842553289390727506975854774413239134182705771109522268171061828541439357822430357634256355437274540727124926662444911432477394048682246132796380512539840054510482272110016261980655915180172797876412987251649167752097706184349150153480660501322124711962360200499397722678031023666536283180672015200246857948188630256065370443242094549750539954297196341865955699459610791582628675220683172705484708905427888388953740653355285178024065028135596904784148299857834572501268312740319856915778920914786968011035820771057109565026938079049837649337251487054766563655083481493985216002182351246944695941559049114045972370302823753831067858067552450014236251968453552629282292420392912223556502673154115765628024547500266625585844271782542353788978951001022390252565666696055402225248738141764034892001275856689906251023085985562821991076333961471697788478273604362284176878039130819584206273202497784613972698076187161203469390450794253506036542438453414864745730353574796343024297783318047754651550675762612678151211747914780879805523904935218156340311041701765977905962777494565258935821088278929370174910751923174751442322995433170922222670713754980606222657813062327826356238992159470667122812019975493868941509199642425363315601865799447321463314185812273139076643662778471132926235767030942022030596952299608457004761546371344416252795057144713717228176990635597866160058830348751775968435195483687271436958458366833026823312299521554320326548323603233624384097530044950848830703894271395403174324910569987253303228874887549390239839874892023243773774186749898267615543483604350135659597991454395394618012534692840819125650441470886494329691486872675528188042734122685030829611065986940809881864252601639923605661631595699536388406298201854015964251881805949569029863894375097210551335662754387931031790422551178051858803302712064130366427570486896781867859809724604365536721779055610533156784044925446097606064947653718456076783659170635667647929211584363837638218753286921295906975691496503101325547258115547322325823982645676330200259943432858503689833023472461670788872890508164553296783666110396235831692108582866097070562096387829536357704682271291787304365688768171510165630070712101639504978876801715307465222249381141189722962195566502387072856692042043806582810492944452086048252140448230218527802148932997686665549552753442202858202020437248241456283216870608546330404424574500144943326010437742532681884205191814236587762316101892828108902915406860612490317644740740862889350396063851927238556196190388482601279029202554395114220081271697885154268289269784279266877967036453322605827664965019318031522941912715134582353801323309799946219953241343794373680904076465413798564888137924749945665331840803501137083874776904271422096595303717598349435030215965510534187138088292895174221447666599586856805872101051471853674216063104458761059966318940334216185883472745523949064180633198258884728776640272183414383654190523971441595122053838280490641902981593631177327169599099862347600159024926428075804504103212367000284522300333605643803375747538118522579373959641778649017850899409095047700621090225009295132924971500586444943091414523905798230509800833722094435996979618286391364489771834298604566018768478966851860124404005887891243113259390035991407655002839687479092012668361831665183119285449746053332146784440167380889596899874305657391058081558595371287962828317174578541115378993296915776308101028536619850527164131244742055186188388325457387608102255192474830044843847667899750676489112609375468750005051820323512947075201119334976153470457739640126518962351752251413562075024434695000465694612838396567593417575649973206123676894757083468669646017327466538393422427942680938753531705837282762763253963058482937268619535811824896212163930713974673779598248433104631781854779895682073025406082333431175431445359985510080404954453413976836512544208226712663259804064457066954729432993515717257463218207235526328502071401997371260837567222295529623935616567699638924955835151502248117381941183596536145877657449929422551981865860182204792477433846218983202792671381059700920009626807295194679389410656068276585484583022339404174046398421262420134405225664352430961692493372166361744880361355702720684835457533248519531575975016621586206542138200963311452833952885709071366208652402660866019722448531846179947512220240510675819690177153219752923431563358435969680369306390519793642992359847739550769695895316344762809829973788265821800919197955250556288487159875873399164032112336612540059144604728482405594899090575601093533738271499047287025213208061051300284043022370903115641578593748782995932900187664325974991382809135533702387564596034344014868403271058844039582995675529981345199345904686291543619301400123384300432397963020128170696202047815499298829310236325944355725206231287864082812378298826241954909293662654210981067720276355661597757190549812801952210357106616792124887051778903457080423542517789343357411224111997881278811651947543385451158760104318133451166564509915770747170448674931316059784155050244642429828870465288637105693165041753315303802429659200202456722644981940274383906229373612437123155523565306289401811064344127663610418401442709264909083037237056378771744173535527533938083390398566153834152371771486897116614196890356125277736606610611681353484914011577300375452797238286090159964736257151105234440353359042029079550236232398930436511586377615203253481016347447073089879245941003868004123608208465825354409464870315604777366890798549288599921757366577316700797417687276626730398845803648702412053719017832816520874934249736216030402334768414819053663013762343253053182414622148750523689292437301016287965091875852200551298803644177400421397058001231026705343317227518547374614832126409240513123616160336471166371499513610132591974358392692588494431938547099962540932959056934301126554531328485105921161842825873228537069899617290174395293744665101926047589886268641541453175520614299485652980933339561708522106348608227017359447382958326713166870553785723967905573283378183713893948363805916066385906614443616171728651275710206940425728992891316252797492773131478128796290670980532459472268517920863371784009323572253464874225588965128870105465287315928546050475043852660368271373674071490147170807170518814616451882428245463673209869190277487503686622518943998645374868281531715015397007223836594552382087242196086851892029134997187063283193018995934969354897857816204705019877927994868839532649799641981777543330864788660422506104033915507479913217474745480935552745424061808113981736678306650436287082336835640108186836012764949087648851446855324673382704465412692391616859318104742960500866596606176938693653194963078265707420484476976766229942316135071868330457329590433609887633115391420685005989650421838939743763791026275023885798039680261435548455279579236776679634577028254636421693000073321751526961562164311450859854841602624709286615608143852841073482177703013023765591659528219154068126834183428754235499597913755146070195960349604494370569645394049662714902369771794005899518279067414425998603207315973351906789981764877886386444387276038227542868094439703731574745493098357359046527603445441798048736491879218885842240264384299894959261424408094119326530884648333228693187162551242511942727747328387450382470007016719966657274968949253900513395487037732264881889574171082952504644409357533432887153873576370359627263266055495220801300523365643233102765063948786146662426097343219374627884653838035241828918931018468435941983677306174837555487076963215364982238537143301456097487056982174819887914940658574592130404051181356137282297483586739343404949007579084036194748159881908840737022165615175743411353691359390267083431885785741005610045124168479062578617102906249248385266200775395417185477610698197554697578364403994697165787346723341169554715926447101271284992967559390683536188176195081602469584812144410795416771805729460068812772009991589098816981866767664362142683214420055918040345097857257573643018007834510299049173027408166799836968021609505946318712890516975819160682427081992742216094238245248208142222108853910878741480210977934568395127685491329458887394837095555974175895977395345365816300257362083656854975131829737433068644069078981631212098950410501525050908387973212801236627001862228945029733444267517720901594249529900389291868374210649510538625677822698112888795301988123454649559259740193466881098457934785028156202537500454851181391101134628234616760958379647160919041443138748174475299219220298671518328865530810816845684550812095313071347865134672004608987516186169149209456356631419404033389350029381102788994131453270871322450135849075491132076088772081601632368357917574333823122074535213989028095620002110947157056883343555445486085176816873788909864145848857652026281390328175803739142050353437752223515396632445259670192492379296112436664099735454253654959454394986748763252017801477451199015018408641371046184143370392073285876101918565341102591729231750513993942427709241442019069246269539036705481283840576812154817398127760053324539422886394141145168619254249233488466553568738795116392680269298956685138183021338247642589227916721883924266696836394819746758684435897830769796238616336963349512233448437781036505966237800077408127439312825705184123436281042658394430057296945893802760854122241764827346579410170569918898645545976684716000543446107659262794889723874117960122085225522138988291732177015095018294061907006152600275594025947969091313068044716936334762435039587691939110771205503155621228281652273727530456548373384924855535785107476770330143197363621560956517154165930663809568246782696716340671924925091453576520262724344466938893673640866242213293576465486890130883225186297550953883413657749229907558072872548764389274200304373862871497910116219068432684100074028465694030402236275427676465540693159238899899764949723693470349001072497352042133529651464536924834587650564148882266588545126428645206637979535273516242728610653948722889882227894328158873703921889822087434252867659746618551705103799796337174500448435450538911357398718206880808700959733774179929615072722090562642931741298753867322652937645747508323669587984912004607891095977870587490155485899460342577459548449262868428682225482586194904870485840257000228777766472472713552293779682996267618125825753747481665276306848195227797568204701703838509963809774517239761081235412253756073581530528860640142726743540444066905005327374197041440184276775419362550725244170663548946502912018834816531220707569252946862307294134942068381875198792092492979230333145406243481013652550193730480925743432263458394443822459026583450776849162386317063395245232691459796952057856026104685253302933853504706177253554432320471185389246551512364208784769596063359721228555717381092666825414615301599201283997370674314750912883509916687960560348001057301461621734727370250824859625570394974980628381723131274983032500867764332745464075810555705260979731859723656674369596393583718317190763921185628318427203983879289631051835093857081641119589379419612467396582951565906293514409230474200903925424414098244199495176589947109676191689739681678836590295970838851731449454373224737529842752954105444575783439719766662162863934552307790818912487769540769624768237435057433264931716194110827060227271827568052537634018966450303481715618707974011242858996253057742129062715660616942342931960397593051078089016792002442221615429855458734851385807580558773742865101309604458391179675512502544810649414983704489510122371404187454035778785812517325478071621662686794424957221506289138392450388775548975101335847660560792918458739677983395060260084066470821080731274365485987282591406634676474024175096083555267745123687878426690621422377742722387556170984462598878665521051455637270821121405996637193321468039005190219231970570833188944408938267527795472230303691670194612516873332702987126197874153789467418187250399452592872591587908447780186073565675181985232478529889638481570716191678443362163708420026463101751193667877414937225618833050642824964532124173992649986181492002134575669839520802182719580928212933695429143762340726078730234319708157129621493481942641420903391215440358072484171833553767693822987839517070494113446923155349371153454501967300827075226517320831218003153453186282012474836168153560615626935656755632742824987655353162985721895487946053551420258535467930752835919417044183886388318704923305312216811409742093827772303538198832853130948112581552365258920066078111080426539946172658025028636444630325958594425439027712175064869127905059702094739606275722379962759263145395006804618247323815748821592283076186181473678083968678278470727971107513980855324999503076784154596055097803504806482979656115279197502642471060778572714737638963054297645754959923225009156533779349493580144461913201219571463071007257720021963779809872196217712802234860828252884424961323337688523360983547244763744028931475122155434465896037081920218651337550020655794507328348495063922280005383591996723616815879754321026719054271879477704865828301811781653883848081989147049411482631635231899437846303988705194085910559040899829313633336149008303365621457590786063775420079598659589903889941940842247524407444061775193556407444666606604228044641672527504702699344280195092587521403533973153014707708846232671678892797948046257812002741881831403426256437155076331525607165435063132204003457525439071640583444804025608231115631579812232022673216801678340742991927503367803772433674809592385983574568966702878038737850618951813931314681005236585005060134895173656286370313801528599884942135714158070158922675540040498940167087325566094089558480275330866992421918090293052355454160950710626635687201926901432735450352950539411746189928574487002568304333599311672493017516357996081025381092454898544397723973353074203841456356081778356166879259887391595974249311657249764665549355900291872983167822034656518887031859796241042337140294382275400577988970608947376361562724205612309243795953665036196542091429005977034728589852951653108959062490212494787786966629882947294822266069643139318688515404523328661227372613275135712833474011046398915541171025302182363906208680420936441288842679184595015791254612143362164590208682481576647771922248936730246720481878199106696556543060317113487925779267998662103385033611418065344620995866442313330928040345306587062672501746383986612605804021454865249350652311211127368163166746855497949537400139299537573348480550189029858055943833154996977357852622211970806010965031926036351281426383776112224051162096521355482506467312687334400502231711048011480075759218444000368026611424978161169699801199258645219902263797281271814624309693001470755463300913551220286361488203610265127621139319820142658737381177928272471279613109722662320658571168688209391077001334947284863665036732488730074596229709404154566034120765695649553975279967630752010676224710989997164405641832757880954568363396751568213693195630669052465788383686859671771913406289105887798428110478167596193988228251087678927932678298121621917134745042781088005299860371904275248906819511356115865031005495123124949923434681108930245666483126133778644134411402813231403710486772736318294285898980428969356693260349939336304995414693975400166043446898963946736308837950701231680236242921747394431364563153972596661371110672718606199844878046914127222581725921659152197496696694208237712428945691870347064871750837767015219076257925249988551317280074616352611662571146173340362121095855523307820910746586442716054469947759396064879459640026322302015762130522544460433899898643046275976311546291602660461128861533793477659907667258176869003313060088656084473368436410348276561837861797900343070773070164709609539616520927860138621986553403794101664917791668117055120577964047342809874594206354565750284353086284842892047640992378575426998583804472496375563381695302525215377625276808632674428824912140597870092429496082200293359723745000356815258151390875610235877914700329774805709576374130761870467871910526147546582344520395437270996267392349488634242603414288828841069834392866942063068067974681920303634935026549777374357354364466802204389275875803617703684346060458061260267081760458835573293263784733492474081430381540452060554969725041553896591554577212475172709985197853675450171515997807918986224865229528949918982990303554424245330121639248765638253049788834787400331258704478680119981623212101662476872905921559393255790856592542804133027671401833424441229588191242845975848306923815498865629753989802107905943839024234863750553054671554662974660977830159728318177831434835486839804207715763334315355930684190315948589034791299798696548027497100260717485738006250851673200236494268169078647921112089348244652791466526043288250161510502467176255277858917258448511654038421062929243410824612039247966496432398629955623803923260473328653745081163804117564667560383055541382439283674119712047501581769611335316634928144590964754650769658661027053647085914241301063909490868657853256019203171422535733347498594039352982117250973443771414248472549186999104710733346149261379929459465038673490301477446694062990336396336667194023235537689845801982505073993214712996893653469737761212797359299413406843204120845715716375517374734807231694708244971069965913596932646340663557361357135887635927029357630049920925051350261777171696246674211570697071316200673820507456454272073075139493759410840183817311068813688760710444262168944689013322645233264021271427948629265026068961317140219076210365073004990899709972438279436893753615137519413430859481214440705365306831297486405392346948841253527333785824532883418386247379138682885045988457281517453980966514684169281544742921635480691694231523727304235444785848569315023198018361622451544265460477988733743763822213932270746141244118418015400099929452175425909798343662756479871679228076457717620006391868224720909738759232589752349574575116962821631940628439448757908012936350303690347171831866025931572304109336534429142463259899805387440790387467735408805180189110814008805417016477120963087013168395951060896970680195457464016856975396143638272207506614394846148340871069009342595592158800011507162750138910932517461493724876254903267982775002125211642727386655417083804484593154371316233105760172346368916287609988243905545945749278033555800183021757995333239910546141305987727073918692871062899009986405959647962758003597375901131461139256539713334727566256226385842835189200323696729358914587657127612189887166920634390484957710457971677249178017209947681549968958519383989377801179074785075838301893283195820527664380431779557914395689710157982680325644451011230598592999601441474268548775378708282289841306104087304040062252655083037285297274824168717250770353133111027718820756437904435331350846640780402820193005634937568776378028764093661868364977968039884211166903678907131292599556045672550060424169291044986635856234977965063034335947437050383419719912245509017277111786870401259736171555341361719711095695157857069115580213686036688443065333074362811166755633736182631735442904466973072219227932376843776053467114971397446427686348782316272144814325451521050757080954807926049541536642010166859175470601452986872369705983830203569763665329578659953627706825790243219206238572401738955671942112401497585850812843246834019409311696083038437550962787882706554711780782763665930461864692835800815419966413045291361264176245308468367311491917057465175485330694586168351676485417126574416234316106455873821431796239136804455957589719237139761119549340414373843180172918358682671831833477082142067986459293534708649096330324715750777402144567714232511137124016990802248447933292534383092598933003317037277584114851347299507364640175022203084358196829880486580858607815144849181490855658609081081290563203699134170762641050604244093168184392917051010758673884896440616603470541847499836083944182704426155864352762083838213459084297771202139534078252936809308801185753792044621312167137066684019786960798768926749040891080285041206878631604916972460438941686084385673956906564661297403935775873047661703230991636434595295962379477198868406773574070410211427385298333713516751246372818270440682382688285052681021365176976388231256985444335373701413323657437393846241567221699460359929837260806456441708620028468729099844589305150884298571917075316843270009967360595998959866620790112596033271926915652586054915754078321101831812810816951725311334503120721342630210499105967645048555859948348636150330570886996256866178383264850850842195181289376203884575722043966687512210598970397125203952062455756391544375915571159418030583287381109253716510468656467865515817301966283742495770373095626942995637529161895581509371191997384311819047349439611184632719206474460050654851238954776194291982607969308883638608509076499213524345623881652622012190353930994188811431937125991736346447332770130110071899650003829920089714536471269512132668949935713201519784066548715767930353016733844065383952988343209784618328252911265335901085653226096664616654393617794541952541185383125250651156521776532513216323539844347367419362769238194468868872161637251085614425778306947324622917798110999969989532848582879526177613194322089971694299223912470004943012526041478167877870104328458707228515753135221555410193704256163449372438949746649320923865165249929686488153591902106428572657563885026966623633587319833564164777691753294590549372318963954496501555346264843822279590925883347260446343521655673630513176647098999651413974294015078271397700304144234374101376487030884835136651939214772133349620203531563266144977888898128473720669654144345520281879393366205855628163693818433477440406208086938949289561790131346571479902052538843998511168741419009581121492576504002919291583028113095502142495436322140902107421433797319071791715818059975711307185164645758061364855927492384389308795337102496113395074431104355549922503187173541944023501558997474061528365971877540610709477498694762028463311211829660972593470759024178434677221214466953006493744276369868753057152835706062301942764228421715325998026191255104316752382519444627783154426956415540264429905722147181663477132471498225919258211503280388390967788337445339324584253660388145403968471856480735347214505218136599426871831744061953083172134626088786087119287885919529636731991674936836915031121903626966441698854837575173213352694750863993758628922524724742752333113050032164754333248575607413958910467904927826784938361879305874349737768923658015182838352194641697067525168142994446968017222139003126549833385591120124081434302682573657588229153248120331681554854434838492114891042859633010879329541182795022285425414924675790559599525799612675786882825388929767972431689899711579484284625827159177974635917307597639927290039208515674277449496019357806471263064754213564802050641355768970825931673409875261883498460426961492287374515027568882453978339794087297615752172694400085335758086947393423820106004102524170383132072176152678384884001473208965553085020086032322038717250260061989924556047143983621951568935678832961111729964040743776739000522254694803619569431369614185256420713588317959492643881211351573430329564814559262187965921670173008359927429487363334813709736609151902963427856081460547431833174369336815876875205437917842673932170539180665467820155783012965460271586906118618295304891643595324860100237570598489223670487509520869961507653851117975822774840148578956576755966003541702721209519453702645925794582374929183598294356454647369340617527460282069107328027544510478940885137475201670725456758966443882601054960670451527090138674138743006785357322378275549750675957779544285299913056303923265499358279179019366987376480662279738312213293470907187593552184185386072432532442328038134913143963628362148219775766075896775890829575653197554096936822964175534445620326342978453905936990238857395906668912754053590921845585657106273369864078457087106729178939530758882454934380866148084981241614925447938737173870269394127258360733014168544353644967685722637964583677719095037005656137466011606540034002853427036129985076164375959500761165288333204188624591385832792983401920991835397187472352502135506800939500042693497701022739090867572213773818222953772803411055882656378974827696858643460315268109998829380787505836969875207992837888245331359651558822437645785090118604677737648395620103059897640831382820128965828916674726601614673860561332903113191520726034342901644280590281421238211101724030661020037110046108756993080536195886587916557093399119611043055882340619586151695686737766163840104989046527372601402630924483681829607025230876456322060139732688025512721797389272620191673081787841381207659166493929767739265628401700956705927696229609325381339520532174081213471881226837939750731399810050501408317876294906767639430852971819143523566222583776669466663585402292753514364351100737200442850244294198194905410570053856337947254527540984940511023074103627659671023753152027838927667309500163032988384003395029375685484510270580115714710965056882026736132278303298010764843413762732481637619712785990274224322631559246241248056374590039957304060861763899293655816977959464356266023941157645736863703695853436164131875004107717775892040181732303631098174281285545307015315679824716152614703031119116239213112406070675648792277318689281725510908863945881153093613946767542319764490091645909375761129906336294552849558593462151157897083118805699215140516723870256321246069960632678236031735041023018870137192236897911374451448583141874954660217438084530581869908185278326998121501322208816213169489266787059906745558623787802013263632742434267806305974257978982872304189766243570836720242661327922501223160352527054048242305078833585935026356059682462591946609917886496937958221024505838211907610206457290883779493420997084376662916879360477408795170581964366714084165724500017979472950909842396753033319062849531874786052733701289154538587955528691650039728523141343984276004405011709262172637621351541140302302203325901591659912921769722043444199314355581719961413228576704478647448783227815024880777421206028407707346468196953548680849879417887833039052703283623866486057589403589740507289399970492040372785090054957624199292460222596799784736704280736405562711344491071990125296477208947429823231621650008027731060646134971656495317174801294636663641660060122374641940126809739025135760583410516615240464175569686549122157833261638647508837627908408443802597647435722360889466475537189468091021370141647078599418817550254274979223202720240132588455170036916066108828091003483331558237485642571759898456875528205343802674497457729347313024541846956192321184888263119354223096610310323998140451781651079653718205400070641830342155800493119422690353068162798557314170594424597334475952800117973033886613406398029741760226703141655630678595558146437153334165356629093035109512477305371983748798408829406564449456247328636257910241743197375520544264860153029851410353243929412563908253591834202624456766768942075303139408867142396659029669674148821532036356316720702146821473881871377011230988720770380036523843092519456719453719967243144653287383740372424979941341893271085321793090644158846462169599025699923996612515197202554572370082095049372014240140224228697445692536142708425202984021355685452474135948632543071686420916555999191987372082071066148417081876726029451124641044896833567635910131487550584546883088996386921218519909962973960755015664108396390883428829719774060831331304796055900428346726064741833201743118980128681948402348622591313875728107548128426457436202202475219807280412753712564894483186634940515321750878842740240552857114788193950692252041574391720297144601660395461360773429158979936545173443804251433208936543526543687715486619178862274731192752216229727175023213515934759112731169054521950562485039222483992802707677082675169137039429234103355584856510348902704306114312191416386051741252358408078137723037460691455966630800941424066099649397330452681140291037559109399670644656142132588746471761849490394501793601200198319666304318134810490251199603147989285646395666919068505333250238447282635510277982761260900759894601122854427468355102686761067175659649677222416004342939561070142761865169736896429052316056512632107028481085525586430275430592400355909179879138276752579266459109456478602273738779406035217486994558614897591631624590946767621694470888172639120207125327197403676319516205237952372917584293680823717655674444688014749969898840045603842227221106179283631627089639479814199539793038797500827379130783080218004813791255472227284034827725899376472872352274942091819466666937612863984310212552854755709644652632019101217061252152259032989201667619481565003506584956311431821351138955074515248177793528502883796883564493143479566115678687659240537473341703048515472044877174557032282000695745273085829593030319979508676745864635710327950757339226676654625120970672577503203252278922262263324835936272573535232243897502772694428744485844298633007370786546198327379604152663310293256306042126547397200294027960322983135795877862873964988490908004147440413819508326102580305537665769698389212267729700027113403585900109759170299716291643120467901820384690327441386263856135547741359167323039763991039871984939627759777562652970346595772153063359588044955859793397161110189355668686300104647277536251020744451129592011816601177714240465918919785593303577031440221728679970702678615722882165198334630950348233668164333045589669427215608171445915407893222429450670802877696668614661822623874181658586137839556901375084083502542152368378501434649254771257806199223001146795202640422232292231130387371406006867745935333699863869243504635460510023806492045472466783346990851223913603120772214454449179125051615753985809023397062409408106044953032739188570238488409465262016661159836844676296760972104057644042603214983546110956166638130489348091227879103855277629514848798173382973917234427775922769110934412652320334272902757055908586309253883447434552336401623209123398394275622971715139512583717611427166771498311898013466882448373881892917079669510754408914891995221981336860436316464069272175148840497997616656516744972775777584125955567227256382184670809575436620406221871692822493182603658062388466351504093847164716264835752637281797016738922338136296819115780924484119199038919915861318580981900319418893012257635038869712650978371621586130021632184497616711002278947398364508683646804506650809778422646281546050404308018330767541448314326576526786153897946242038780655175915156722257436358932873980893338527703074156116568446287802744205693309409627798381278077816087158289473222411636665944145697337094669835663547966466171194528484469120750038989886014664298878698691643952682324695753462477213545023920122399532559846785082781935615335999836069814165811412286562494698452468718071593209927372408013999421244995864814006730433633259849124074090947954961051545296351584814896249438965057098939126740991253111775764617133227098470192881824131983600441265399746512264972136192934908789618646380480686278746098359332860570933969525937126905506205503141680087510739063228461916070348924615193365658675341678252541271921412593999158805260398087996420203838407676430577998590547052998859289823733666401424866888671739949278559955225049085136578618854377095305646398492565482772997464552464865261341958900493775737217210615137124706921862371638905882349345941882292733942492146347665275445582665530753491757794218801790843581356975313233110565505224077139971130953418142548892510622152107730615452826569022325919315065834635988363637931480835871801456059258747042752684800406015020957229919950920418217836989497547264083122060662158986641701346253460570482838009098486173183415010685436175933337853789235744301754473068299135260876563543191972261397280032051839452187827714594974027002420815681566723005800129010434099117129057226199453846225644403439648522569442497937653137782283205951251924128861878545854811737644506105900725322137242265734965864659399158017057176949145098762854483733481679646433917574513109313195114916921025674601876301628347347404415324918276188311604788620172613553229300758510544696389097496504515863548359107995911734803690927960600317579524269841437754413853268680774830377656634430295636864652444755004659596129833161208554086470857908470578828238950755348655218068948738092916633641688520849412371616410128003946286425839380889012746216635766470055227570565993421351784860882592645016438296234350965062437384765811365829429310010853988554848291882720087013872532331898618340870467053366434700814603002865773380249517336073929014175544152564135524117492513120838653621527188694845934717723291910692126943769212670147871920343906804586241039039194939326705278560637144789646451832687294759920243639753178735068530741843901678722965197798651484140175659158689764430975128636646502826291677379722828882570370685991357862379778618836264682288790992631508082729011960728076956874838879920353664224750930754640840958491472614554389303127778875743784135403913745526331940539691743517654977699157554818031723007652057595114175587648395297399521625567812911504211771816690837134189286923548377800676960507973317897571989714553294288480662670959339270060442729323881627537540412280059350505116063945129402977682194597524498742611686127833032426244232690136191565065458969871700468025495760991751331848706848729445815888892994299696154508883940583041316118255507279333345521358540983059990444164398692687400289386114779445936761052093022457646757246279695601991698810433429088261569150297602896458358856218309085308078879470677565378388549599968361652867885245260255409954866334893871522357052411761708542845132450213960045865521059861822916240255503990877423544407136150409111289756249108105735690656694414184890261525956289546436443542046167498269321949701354101480841157558742446010939070704224487902703117272827257926321599826525356343658668221431145141145267709659810265957935390060395483943079123209430053652971415947678403012756758057280066047304421941851193242361692438083944509666980645134507573893385834961183126582791310453421544498639420525494537034482585466231808446529000668129971011220692680692052144682393143821098016595773627047727029392146881032953660522051198129122677075219478829175879339889905713524220345301491479655537636086461069137920995605587859038192054315543546870498792687033967532231783755722264202081666189851814378206824391919473347633197354450791987640824264332687691518458186169571178547253546209852694013078438089179424034398455814496414279426970290343861860712601037400348464694959819097414736567810920086825601057797684688305133247265031637902480565311901946316772824351719175410110339736718890176206132613653955260823587729105631960954535074124083703409484211062054366910770739839372231563414948600716691227076403556725166994512823743476322049425559263783439684947118339633723982400397866878082176443963209527027356306001304706995810320565252704448665037333847742024554315188092658373576677941451621546153126443979635592900606745854100657170358581291850339726437912830130726151334252099904256143455825795698896794820146336574921717116077305991548714560186260435634681462439058586753274529777737620088349878226090315876640771144786918896093771852571832987170048027843691080422659483594289970738721912811004630758570768104647705984303482998398358972583068034289593978633787741206330133597424595309189169826001557167337925646621269439051437161065021240844147806312783234320027644393290311980369855419779028349856307952885945351986387237940034313264339854128902399207141991109437281526397080773407244950010604162392345645703018543366384336740211304011441682090963885710862171996732755653789721616385786801547092055761885047025909869204932558328839807294752661696292750136640225501223665847026006222922352594106163548421860496346069077876933890207696335618453961952571875100973292161525591483552362884394784514143033750074855445149227870571651006103006771097536097327830323961210899881876998597786961658973417315527022103818535823295619338287563040634946952023029242850843824122206435595779070430596056968559423252981689476997813592370876780072068864805555278521596117242845721458490033120848500662996824942086985113751008686737263523099170447123155168467548125928351647333068342832159010190981793212982900545597283064097004216613240483942369479294129138693800492483120058670729139985779896741109552530603698399084295979119932377690606438084117506810795179112808152264873000897394044147868083877014114958012316454149777522339617925346443339869008813984305105113420292876697142691371847993376977142697238582457775663925698422023094104867404571311729247407352688267928723776332687597306839459230384307708175597696748875851145274489612893181553606198154209595876047655487858923901749779592421921946165675527669169293923889389644266545510437151407882161591262130230687278629191228634078315764534037831742244110561197270563745999161665373945184302981270857499532378433682258094439784006097521264890277596568991948300981129200034449406881736549023191746535581353263145454346135004412702053559901945535152566762816482272843616045840507623831613724401355939662850961300876609341740996395819913098513949531453336524724657552390874494566620512273337355785716071181152377929001972896683135241314508409269870358147497486703801461020203804842045947080098558725597636156145926117576235980665971469753487079841766592203729795552040262408644841949966179778953113773578510344553786244250409345233897204477196350175985898024298664654853830500932650241434713996407107716871439985582353247257483229908669131516368958376714554116624055682646249044125222551380145824707364684320123648466403242105879486612562648295208765334688622603331005379729418877444977662572392614042192474904069089839275075542800674432674845257164189838119595543021126893504184284055666949967472696562436303285409955424516078555343719751852028983256716063570645482655242247142941851747163111744868068053459256205001046629013148762222061330065267561484053516401207264916325963391845459105212334493249384421045172267072987281759645212874800074373068992914342170928123633076506066911842189698954193183219179544746561546528644984202656332598599027215129775113654956746991837259934279874639861303756085428832629843940406591784395062490723115135095154640101460771752027779384366195819233646846232754172674319089649066987467223819729198797992985043039112189952728934426658954728470884653377839177546791257567013501618710243223852464825697545276940691442143383077411747062417801524928180874090518348557106919205090221990617560367737895864258700740671957921551512196084622790855595323840187855351733066092236173516841322960950179656992644361722340025110107161897127235395162321685725570283431658488268105406751141086124854006823158075110017414321991726774416094119524452482593557276250984958282861197071563541042898776522156969511939217304260298938313935860158519012875383688908031363653839278850137216978081406002684893966689835225172203040099764206460485479838802284903567827042094951411415350419544183282129594179514657517841602656766077760317473919898408173661944258278606095333824683532244880060823939226826922163015811808377942522854475487945492501709582330598202124365074668181322029334009272564228792693229403741733244789290235412428853596056396534441574451562445308578813159560552600648045219716988079357845572696381084556300689185252257360843547660413868692029259077223015461527370612659337764330853520734830971783398970184145792147418136355823665801860080503487302176966985263550964617476203467045584048387332809043417429393531306367879932775676811857426339829374900891746129294875389867539326131488636549820049278186388659256747654161540373740477453623117473131856615939884365376977299167677842093298529749553807623310608315565388374925389870324371642983959912303839354036266630258119279935138498504146865296233613622625560336344424233126450811775264547896163792744918207443465836898859499751944158416724009065973824556545027651425455032392907755174822330431584178016036025549742494277113350699635348712756083554673033029516065276780120793690210912141532389990335345605649649857314298924184705143108002776132963885282541413517250859186495742729981220709188547817799914309629421374509395960302018757243313227128152107532968095020165471322482909535735221549820275945874116992749683446751376031897958670904919408358640064161431646708605279162456797785635630321201191392476297699381586573515104723617687773425862053932913003654859769359686275975717224874788014240568269180130729026254744186499232294858617258713111437927593557304241922401953668049690770221590475050530462442112929808087321879201887038233587146575740175069043823076735327886830907470198760250311772760293744255898053444958509326886990692441650984133754114770434362796976300054483833940242621030006723619874006690860899219663055538218464113648933237190655638210282219180729768459456151449603369104955948084880380525303693697301787056769337814998014947498396083193143482274680243065127216317760963356789115077922261823032518998775913992346601337139219783943352626790973224113329960789002059201606608907878791137792274315510048576142654575499837895299613593658478816918623135634179127231538558177855246503301986817373998141136283684989562604734081644828496464454107343821686869724679889881186622696631986846091757588609519337062119752016427556836314586615966468803277002336984496911065581826167692259331595150843214996902584949444701335338626228681911637683180649030559492140142956105206198627809975973089394294315819493731957549996663122864415145152428514615834392936302585621677129929603242009961548216903851472062499109622975159821093640170937631007071666380007448812299731297310453502800308393382825501028827650738240845411341466732504815379585739027787817880313490899461185321531142604016560057778990830931886063619305108699810259897563221576346704296245947940134954560376046035130881980377560533492700313178881793264264714192054940419350009584027679330304408057943962315223517707359762619432562986618838740454652455457423479900285584745314460231795956501838943981885650581183852073346199338392599638664548407695429184405749327236977758274530681752435332401152045134028927210543623441060470152523104487055250699828296481104571835917905659219951548939514436717989474836480731616315179426717209140298305374186484120095331193655342006246179756514352442550096143568113599417353311684037975792890775422042679720379629271823267834435502039668965693010206079434458170941360502861284338549042163715562255614624951083039821186266479890460591735329103603737378345458691033988903262299934676172118326834041680392377059330324027047419880717970725320829212540587550315292527541731851866152681019498206257836344901300764348668130995451323677747557737888736385718515504604961401418560740663470919278548428381565876789735466205524791778624778724979923579996419478671519898955520872773455040780649731263335694163960419305265843421748119176905819273468324659867255908940807187782768238757175610666806350978217354060932240665649896539236148424063296563229503243330617379324481112325586324649050564916099605709512871333461897427951845509929911366362756820252258941885342269447109411827030334295014180405010134389804294054200383781168295206054452905478761844980413478462898892546372031539207209586962830078330619744884146378425188419652360668231791704385573583503601004505197051696187103671966616625223741361865655376427839951130145177074011745189945808256310459033503794007413356317352847952418451911377546281555294576449251352365390114961185551403139728637158942000713941939347941295362892151444305232715030409231824284586030582207431778339035919602842086194214736182190459039755001190722356052783574801548676870825447235171757350845405050790084546163112911205505622678416521527088512105622655194468821006577870535923205527302514096696188566785181317191923575794290666418972273032671230248437790465979456855218928909240567102697623353207449028995270598207485099753853458814389610835980277095436620112352101515604523647357511423804480691720845364328140483371059897839575530483723424190016432801351169730189851519038084802043470786068764856638819645150955968633331307822676417255171026544916957053159489445753428838895568797892594361635993729042124401590414968396430874240660343839035083628223313670383210343187334745681652162148983972383606894804882221857947989858098613158624556001414018393758314044562892234876727258437717061396363162158464120501333651907276920125357610123932169788894927831638915677354495235644616307747118542602721579954018081896130514274382012162898038710612602710066966426909249937319942109760810565412528016244652539743585464078069207820309584273778442570472363576782706827622131594020414019124319649658428945019872433499085405560743866657233057630508748487381037862755561596324246437310952006128566831327496906394161250876900753611788165472378280137103578802623012635692458191293609307987417016873693693986550508807018349127471545486363672570894084251513446752504994131090348306162845104397836803744567664365424513860378106827681629213681130150913682987971065139034865899765360900699073978506040056176989701020332428776877287595390798663821135642374087586374209329412737672639569812857289636813862963800937082390171271414715253763057177699523559369684317646298565235329095933293188188392533741879846805658353094225683469313520947055028568877910005093383898704401797248523120090603891812069380223338841008835223567452518271663303668649253542698157641921035830627108552122941419591689945604186140199289417815742157459187045479707273751749283386362594514086292948717982932063998803524941749994961303483639536852889531382076845642300822010318349039925259488576864951740613388604919409305872033579953713346542264195812342004138759448026938794949012243939023606978105487779557253952295045248394793606927354370159754069126743158821803043196848647467340283763507278404715242811843214070541641389411038132635778007669781548688954609393917259115640701810823022824156887677355098998681414011127758136037777327272762794950033328165727145825403944108252290547817824144766106306153783593768736423540625260429978864149132269104278484152716855515797050678271260106829326409348674711182339071517333546068818427406003658556119304755751922976532298568052253389851117645863119638290179850659296748819872000183316932223615559622553831087827192828123527929910235812828225945390372746061089409768102476386269023663837238704907409504455470609763991715067214670445544814208587203137032205035119310360202567840179261565202682015770539499812845021776480226939746974538981071973286205678475981357363236371197534281551353190685155569431092089667607724893745632086172726575952641269119497763532579543703095317082980171755836004139368602586920725984646499491015931926752210734660939415898114632214512522854222198597674138954778161081450161441528377173508914622410401578595929534015569918196586885924461725149727781741436586838420259929165277667331764530149011260019242076470682378244965543590308458432170052210177801809381075571286339500110945346689095965244943087259681749058649412554587849564421651009391480779830657959136410275377298968615592098287044530874085351905584483901815160198770675477602427005832182125423088784858331856469581881902464804673342165072445462267545082831738628627270773426739515857311904535974085921363443249295663538950462629009910747721492982288105018869268667175865958289055831067195871329393881843725455375481754769322042297952985380016095354398367187252982528296962217869656492072117367063301573376174619966707533114039744149871789996145482292395425991409559687359911500840783177814972727329926578263047172965628723057521907597770861096147510449452034658590744474791450145468317311400370130443664465998640674446132343244171204885230129122877944413196566520537193404659636673766863602111791893819678549210470717355842817919089885042181718267331292726751476304638869005354447192704915660026884562741374510516892870415668893053938158421992749692156851443832442927965429494986407243466503110253483729491789657465130137992738721285378490709067205769091085475330721156763274105804177466165675859543388822510344847965235889418232130475360953928457749727622966385583657448043538897776707030806885040932379744108209986358251984850782240569066339244875753821056484289599504032214555376412383719887569797422007939616339177345558753142835981916364849629576618990335899400180193991829683638411731965604128608067665425239262113160235244394559514075962964361103574379975112498753490364656807430157281523284383263606362867465663282019212937246387004902720089671698126703032808576911588660677530677266859282008036061176622475056916765956861977488900338224049336768458588047184053998605783013055092462765713586664493313500989118855143261292915298106361503926735116696896073413307220283844640928221583984196873155396907274109148991984889512242964242430624440817019656469715278809876041937555527597981906341150505862406739633874131779823341820709384198956073671191373773551552987547490696730497152509826916287078409397450722217790739969032090247778003367729954102165432069064302916621375823543913935353514338121965607484623021303216588632669884647041226112686898255558517214936087096036760401564660345678172386821605222133633846274384411950338531122879171727470533362468247489257459807370023804350838690774542237056845899102614992768222689068635861486784440098639037329777580057703930410655173520763751732374612913985601234972030491349407489506346994466211029061676141670694592950242714297664112334591511781564905555599817225610553706415596009275967144717405241991770603389926919476811281244984656023254333592093483623507561337339061438581865099772617747604018380758610487773844512017985083157339970766818092447123594463892401923778441363410240392820245342264488242253920570801786203789816189936672968676780902198460246674150884135616198095449458564907300906880888531391624968253260180457378366744527445162353036621795717728009429736386745200890060978361875374315058993736484726068222444946897678107984126598632318977584967701984604049785040891912330950768765067233136560083104978610472045118033976598857915698196932208460268869664449326846950960153697097741330565448607010679108363263529973254022050244063371203433363092076525693964181555279858078465649110836856384856787457420055364280960696882416932005511685848810699471720301635283127188284435365682036448692333585459912952172263468063905562752351927133922297637376242344482933466000788863598974316712827731132645319579474996200647340501978628390173199091377366742669932460796921416238210093668519906691514299272164454235156137672084470976229172348655574365016720826761772084325062247797249722415289364626713129396421199698344153181666240332702045423371973302962145930526876004544256759826379337282125630896399112576396194743405655022279029334033789147298360017956668336032139399332248109954778612965584232066491853957969557464421981483831138157306517820155260840975392556950718506663704507722395331199855596492436466057608361140007502136762261953186206944780098851130147599828108739695080368701888057933586002937597765879452929803153651130660165056028596613281005601607863738523287092748570540499860171854297087531842324700774965832122531812134684682225003514173648485629956619468303330308786490226309227387579953573558235707545738582341523574338644362566678496071163253676664949131869502286266197353363883424873131069109813881603045654172530087805670588552401359165846683424501579751668051315713961941337260785289199273693965299938165306852643187109530629692516543189461528363399716063226905604704972928388928605260601211105713361853229135402492963626401137441633024896282147215686364283274293566807110211398952452109401106119776936734728920588843334211392638659703131676971356887829143912303038612557367156378178384472137653909968579362076763324454986780051817772423117246329519850355631655982785404955384627457527972970771880509443043528406859505848918639242429932856755045321296861733182494275153207607179997571480899103699412839460894611612631891396286930550309781860331541366188796588345405696209009837184786259153259654173841665853714391161528953658293985462099884479847623270104131601932616801365212576139376007859247999908042206181147462916065864645292542669988962025736338701867489777861782256135062041528143634680843255603909669180139097222662564264615590957928985075305791938091437378079792018948962351316083781857774153023538272221066023004083816460078614845223001738051951886961904677273820491387931492974116313501727818563013616999233648854794582994382663633839570719756509251852521607710550259841124984333103393263483489680017067371290677682690733352403501878622540710143698429010347189671426258012507009708574526353164461802201959982139300835382839114238803595457904513472737586706337424108930623660533939877089316637424718041517556303078860849692741094387129719533278198030846498245028263738803969909879162502987423939913467179146783369308629458633132211760035636052946028121301616336670850822392871641286241351590668095050238396800454224900035313278358671983833898735233523880694849095388683981713224639427421573485185961059653798708287927517539966592520811549355679612528417271789318604421685531291926924486603605247182110624143377202865763999333694953384238424679229494205428266134404281909517953222585194960919617963932960015290498579267009989945046899416600093223888799389690250749918912633812548761898390029801303059030812032942644334832308247650880781607216799991296702475174119090998176810000566463611984472344463805791235585722499042625340544897675228144905163439674998449782256873235530160853730077190906233470080307350233209297183392729102133839291131185382941335648572238518548059467090143596353430437902880324064638455267939278760389541853965556089623413639406360668220742152513220136057979004477694641836816385086831553800555837073710119690780997220470953356561926878147644689254285420340399165871667302872347150021952417787786694090362085383534230624483800391820412015933518640701244451183681026871853344583919524436982586115028403293361062438771589498706140356335159331863635802670818992161675149570060448762066537694521880998684322760848172128251041618970476918902152461277426356568029725788442470291561792425350371184060171376636368238752467506375569627742505638574273417389615407865701527142689261570277565083850145455743736803502888928291201874969142635033265343281722676876497805593680192332213468347249561517242529597833114170057893845718132950706718643439659038698649775375036801644908379427880516998325518484643596515288374347722146492612165336169366903345450531170951481700412236780253526962402792322917170038386181518393996965434129202226427389203241673363153054862281442345660185137432037700978862988335375029867435632990754180746000674903316857751530646623437813864719630550809704824827086276566125690096079559679923924932421431137844950770015653837917136752960578715305892124356647272896072750698883486028877817210952902340047793079654776670472870384724079509698433118487556480912518049999877514779994757755213370235877326467848718502502649571612497495379976394323719190667492780502567571573594687803132403617766524855523938289987732072862019171097364498944847437718840451774547407879686338410954709051176815984254804848362712284568483801489195650184594101940091640502522062041815721585126604816823467764568637316082417394537595259335857356966839330329780586539391488975190748016156143567925423132386146915561235662838799026393091731445566812393577009114547811807647643403956957820404552815797631027293268543804179100070309672182101109955826537557110848343964482573915254257765699473651729113941766861256602683225018280483437194073683375741553930242829913807959522244055898276190456133081846962515424220204915637759676417853007521041687132927152324772026545965024863866018700892565664495910423721762866009835134404766412847922440286856262371407818715736332947725353172682272215847892776532784857973917890000734980906118289601122075450763437887436605993186079414007160446145584442342044985375729109797037086786457389910462620937296916834012306056530072793144918018183219523817995802849673344988748430266123226108589373146668154190047238430773719841926691690890470658387351509482897238778122068429499575114266702740558906793902700960706341627802979672775277453102059412510425920608817629996344352434723899865626106472394191558362046492871749471116800288468669205026017508509736573453881314012018859204271921021817313109165356693181416751465852908685989973482470822722054810019040101513647638792833908456427245655037578521756034727830373930114729478432337383708378649009779783164076167413670494193457847600085830310404191332693222585978811205776354885966686633975115806758838826222769856482467096562855889783041256369199523899046049996710016163247767839984368058608948988209862160264108012249767016083029348446375879673346293224538093394062751392696266789575385004045867671723204451000959551584937953461820134017894808833157755678379729722971744748139371797253532857105318513013467784050320543563936587366705105253729769208526221619629641153875662963777063410348143945615694602559674223437487120907780122083324851601840935046159927355565761682592605967843337572567795271676152669865480310655277423329654508559499363213875867215457682540898133743890500153518977813183568910839412875538571426713145211434236159878008610651287077313345618341211230136880597656898211949512767114655379115070200536652872638349969517831724954059226639048675583074156970377112569144173088043887167943554346921706171845961922336968899246528227629481407462119684930101767305291255936191752355530937662863404910498641043876008932209030000608766176228239898208617280197687528044252839150949678924723106391588153227553398103724196677505972279334143808137857055229419825807848007057252076983509133551555953070958383718526615888548991774314706737731835672490414758997762066813132696174461806684373903416181831450870834825238680837441953245317638342794894124257560923914036054953511047201496640411324583656815474721618019506985458459629987778346369411618432713457686997277107512583569611396102018068671034755456955816706362926538445769774117785802655824791659990112124450402882246711463972782830237395909299732109170733313202822118870737571227758968889037142199575749406396537145059185897235320449690285491846288985858678924875015985086323842959300919719794824892208607264910601886105925991740031678615031255770598655922177787855681429674170397607456295558856762460052944532285416885071632018447892301166795171649037376142570359920403629463691024078477734511351020678460597798864167079147809916973828705803827979384653821647481077332718066860860022829150128349261456203281802589938690210882030394341313023298716060972600020905823142619845767555913095612051029054461454771558368952438309619796273989899926793868333470880109471345319513618217506815743174781026577697551123007571858751012682591280872243539012019385027875048551187726080090981235878870526323617453145581506788457575425204743888147288194129951131822895289710006680849897696192539511368626681094902613026011398496437636694665425718326232857910522693305320255036922979146711131962391501257936051213055457095461155466038889926301160848276035618873502661142532211678845258598219298492077801729586464180391094627463595871128930037375815479255589011920107499176307204095589244348015626198728959828108375115271572887056513218300987399664273022640431259067098433089130992283429908029698830577036385428530986096570063392082151360917912787561601373857602037212415485241869343696058073139524308689863190091145243501764453119253432086413201480770399548519929742994083697688983641132817615891547683635495619186784490607516865066925001558954334094597917886715940842784057983473584447350413413011881404965974437285082983137289952841211341695148284728083164558222480615330872126636912573983162206531937128159561351310654973983145627920647371854327026767700439714513354378600262466881573751376256554076980836314500154119492996045435738525030659280384229507929411063114561962693371901235219920459079429924976883196791119134967974239833321621686012775415411138585429470355395402856541137769324599278678104843375684319737083961961024794304049785262552823835582865563295782414954273769999838176921879570883527647787993192547168025628819468663866343021820413244952859809216487396363308536817742271914189000749282941345078921293333586643999071023604422765232868843122669976494433799989160288359009486219905147889101691186029574920280307827155994818114456006438746705730070969047048087015929575033146506062223322515497822682403455836449613435474734747887733697811031212591062507223234398665291262276354595155925508491566434376234868462721148517276040989634089155573983110277910853300345425546332789228748869177328246905692209814890108223063487889268201019190885030694036718658769825468480606707230436828792654174422976439527417193184065910023044927631632860632193443977483326087204819371980317486622261998167068830149606395084062495039813286114303520499239420892239230263061995401132567550767076034142014100829270633173324381258260442803041273657554334511925935510089347683493328250284847402698199979284358666626478684639557497440737556737828523201698667520253380118620453771569377743526819388368099166896990542122096593983186827141413537336613279976297025827130332515798509490030387502783866952874840529486916481456153145101481266773779159927050987043352041357141478276984489384379254478825357812544293896477073256281206201025068096583108437426184041670064724325924349757160122037546724498868839797615815529316698514618451791017598067127939709196971731914835663420803473991010879519782967585120500581316738504239040602188853360701174678783564195136773155556471032697325554692941894292810029669825118521966512125505193704209788482161541840987221392022430945728046767246269678317202203181184123875779125242912885016455740873323811832526556144808984624583756334754777722517597508101935451185365914177569358497032514993100725564127867704157908196092949234464228490254740804119743995342216865532959350110228929261024079477610606681225282599329345883039081293395212302647809608520142052863587334601115246899476378111992830907419226954168938063915563039643451024645371673871390144814524323780377635280285579665977023240396387175294809977021978699913527940109824156198466498019837740815582979146284042003557223846628400638185462173167757720127571961161289248725711658645137375213086205531424915459090928750377291308350858325809500750683682278711699254464756797881025874325935790364241407613180221867096705016304259248634997151654812489961377511664225352216135206211360316340471727745038147831238739725710443088543044819737765404710145370102143026662216419831655524254708579971262507160627849323221143784778000099684012823493359786401235823908072389140973670756481191257504568549417395408619681707136891926396993152050634999294180132074477432170633584354347312091306605280113550400117237641363560768708324190625066076644431663777230487587692454764813754634350308408472867169801590850987030538334029209486351690396252998960475408827237331316206024209120366330053327650520648659555398456723888558595590312937065072714909041933453646672204977427557020350084128637647224587316910245070862650485407678994655296503823315603065678243054229366541825844036514950789735839755149404052265120468863786782712962336299770208755372468111299549173851080237783434800214911953403660898503615777337626232682417804077957358565622141484174719468446082566549713828761801968535590895956243918418381919558420931379614233672291256880742315489548809674641938110436281053309286677627951074492247751150536249032439160281955497218528405137984444662218649562647463981050560280625795098969069245442010906103537708555877018704750564164010353061183153068046977516588473960229223242172373224837831631498896481015836043556066729088428636193741742717022724924606601386236100545712286772866519149214156983132763216658404957949981856167110057472522000506416567924453144578557019642817905841093639173242079611839309470145777356894016410652462624662444943155454424093760849123823350338854689050788201188250378751988227312115740625396869484514589305230157625782083026008614124212790491398791930140542721158838451854064955995055318325480130000573878049374081644854937208566102338920827196366964437436882521065353814011555540052373019996136535629483061985802452068828102169295387502160622262244111035395649915103202941406074904308261826569528054313673727710545906199581436872973227750559915380887726240979528764729934272886999333688982945375706507442161335691358408237986527214691695363737640057999071677386364722713019523847123049258334323986268580286053736666404106064698852224662339112273754824583323633089334584111301930053478930212743776735874228511050052764964031451492192291880291511754404185704791262319339915695079261965051741452085966963258303279703989445108217859988552575026459089710707521358664012393669007430609571493641656001484951219490311756518067941484492971909862660209847031088920853957046652125919678974819030543826509041791469656783172763556430193936743133427546064581293321672585904911589277982648644004030970922924122973717708323809608821881446264641072216093588009699828882455582914604149872970575740442767303091129111113519049536655690641787183919035203148416955463065176652932719129429105332297830550584913708625768978626433339824653163034386311121965058263338793126032736163207104615312825147088786730487738655721024445490085140948106524303934637116954928513466552462827293655116809772753817230900527717372220048646888973686888311214659392275633266175195790992926139752594202930631345329582108247770069156730129827499807340018624363390935217653444416767094598079591020809998198637230377978570851649678363086017581268153821324887237071984926287389128645991244970410554734486804022327002628498194383984591678198115673010396521736689824048165784131395338537584208851552989358477795776731258724480350163314851732721214635980898784313080175025291085558405312235820126166129923914396173770265588928467228359404689068975136132035248166153219719859317762596174998206128417963338021290965096265130685726673050581022431114076922526233856371518275248954698205086556140085100155166855179873698824259119528136394643389208981240554337817281334861444387792489734034705281451393158597878673941095067615741925052171467504139694495925886027882760120830986798239933846290395540259054345301339462186187542265437667071128940074113147905682209776864195875022288541121961152275140766536813399956714149730550555259053628552403612760800382626754294925473218678570791788174829254303280481560550988311854563934670943573860374951664992545134807648155231932607267069233366833978613098941158491495555369458891801131756869946679006756819880004535339032528538940975350458631280135872024215024370575670125367461150204965134286851503441981641170259298341421371353025641727176650763277671875631940109206738834852853774669952544232661430054694681676996118349326377397972003355009371576369522522976200576141427221100892203517101661879446889013215504952441612122093903833355661479559988106522013367410294620378600790927267051444718029738359456653793413634715631667254632026604225545910109226498025457556169080117624351389267657889958858922226175314733878651973969895476142475320714596194691256832290204458060123078491621929264384121295424068175189480683393916664100521401796358034620642784104487132774172230402674762522100725487111117512815582603858247706036818340178361598684999377975382419621146806129778365369141048054684789028325840540819671080149084537911879583136896945214515385871184210836147403218474599613772008536830426816603485231377283799054251913630209924232669470313073945698396498987322558038119521122224918522278538869448620086984210823854078905527934826410659343485420103496487852419502022545600050407901244789779407522350961549102245399582681148462447328077372575699364670842198525679662000413926625542789957967125756901863425397947313451296444435785514196534644236134356766387252814084260016624216834169110646488574715938924868967517910005220384982197395292606359651532915100091193850198872482373951080308265570713626197135599026666727057863862361884552621585864014809041799351881805495363391380176007564037528295987359321075945282284082399378081323127159803787659477235262156766278633241302773713351589648677014339763162189381134044506610048013699153044476023781069630289818118524017322721940674297697651150737376517005406563456510404825510206196069100302514822368179217302508644228141037271664040664120701663149574684498315056790938409330779252068857946834044241312529771477852385721952083849477213990132823029773028923422123173278719859995395103261739200779349734275503845825875184104514424324368842154125469306328698802383115883904969925575174010612996466667938238821011760156740673409253342091309049450390655146920442497366455521792268530288434101153593210962115084729577061816278251264223947423679701520222998314314824685616215338039352986475309571780292083656482882500352803636139711252482355643091518580925421228160635768774391242200894660570095741680870349667626618266569976091284755230045959352349658745952886080565581491302812424324447182886901464586849820555907539353361393031866749486130059592162834107474212162941047441748539677520976975880795816160740907993760096234788760108910523932915191719395092776936029066596687806858105633892430379182518875703700637799816931022588964842214838993643854351950420814733960916774199181095200103061467893647503557295035894108861293544582452902953205069095088477801421566425870331441850947460171031330383478640029475676294335730985895519066726151367514821664426105337316800323310223506876090697134617775893686749769792969310597459239308341504043107551657053253666834861325208170918246780833330044879590294668778072226409317015427828873962710278777535865755603584160765670832946746656526714622046784404701052407103941315774080650803281675519998090696702238198519422307848012878557783271515970544084407143873950742935705744664281079818239903930817455728364411844083156060113519402923913868400782158692321394749324771152433416003879701853623956814287663844603273287044070357831141344868948032623980987745481492107370160340437867954429467577432607334126605436212842920813728720987072365523414243574838908846739397338340367568343495195276411081270607534641812541316587097486052645171386523758146487871621619816983349475583467859398337705887648266851312843705340170849257369318284482766850703855138147240137904907555735689731981079942716263512795163782033412332628318930137482680798165083693025461667699585107178210473458618273871179123664405219770467523564396202540820324017541808535333244385711685403404395208356152546891732834398042168727156623850285726496478243789612980629028466821463887256339110815308209616220949838521784969192441453708023262720494499236450397125300679656425311495523852775736193463209436129482492804341905874016150021329455134224853464419480322922929157748300618254345545739670687237722247583203819885504627082624949050118588793702971285680325870394268638636011502468226489508285097185111771917196953597997536908991479095696154377049598100746446401518532887026569508156312615789047289437915954351773715263801303035042090888610016126951557428451395444804332176055213632338874153372938781184478057478189371789882139581107590205505215009139848932387034942708092352574221242959795931826493790732954364172213684423820130614833540874594902929270042128943657194551915855131300948908430214120574938086646169251600799710760780529364300904194913959293971225883440870127160010351443733272611209053425999388836264077680269236109722034537223117615506050087824974323068826708191070911857644707819252548870502847893317245219282622553476661720460043025554528379811857773481778068276562909288197595613509981655652757334755833254359097704139344342866748838526737806555890367925081524091482577897087243585737111449873233771873940462947159385905597914095647985634078826830368574621018815740126417850738561837457478596771372248043536740636689077395180878133386727970106442275624336045412874876605081369518443868196110534014951752991712534602844289298356606125030901023250383296407801120266948248502348369895486105183658701598551281100350074029149939711011655856961242448667415434257043220103799159116651220919651217424931726213334086709520449552674478830318033541086423283468343353847999004570981376508518281512209097747932013633650658852963084823466207332160245634329892433703303199633290741326009795145965032899463994195725501530868738287617113309432910814192423324406372505529867959616356185927745501848816578525597713402323697191690940405265908714278433003532351736133072369142919961060564483899718284129912305255408849336879622080986692650601431743186812406932721169873574369995265853749455689916377550371656159293745914988323477594499216666951408920128041068922790359033195321183748653692783993490515338286506393233538656319630718593211941093692550941857217446500229320621171177164224943027215317847052600105630817937307596901402623441583731825877106063226326128301912792239989311971781274252917966357241508140309364706295142486944815572119658708546798713177787170361471080835806183204376926684024777316607658003861081632927516265310871939515810361352592269337515116645126282195801596513345148187617767305323934575232658424030207593979761557074046530080230187274365779771943435103638554295002187069191946606803250218379514026876673553662166019105669265991676064772915337016277758124772891013263851068351667906927971541172849628477821641904310992298349417358971914594790159401413975618252930705237161846230760624002491833670442338061002286634395631345112496785705298048542051248441638763625035153560778153440867329023241390930975935154056047591372390630833015850044006386235780367061865356330460022472406072325909276326883558215029997858768583025474300177060812427397380048170274394221457472071553596831747499453231699024963710748946386467206962572993134482526360979170715519157644756888914774721579293029726427026218153242946292593164367502824340934392652403030282208542821931619121494546687417477441847808009125445267103473631812764297478204586708369022821900842566940142367210486588774431062904366105657448280402228348469278162152356204175451410909807440167487008719229653746630405070527167938175004429720797338546192936973599725116484217973149519696560938145770579221907373657216387369874031113477152918665627297018023353303655325941101310391866887864474744196785959763537197939159699217770942104619847915106537722794600351307136458805691588930000575216101544781999399083027422640620497521014784554309391309448846742916134129773485452349248410866246243750471700499003525094040301249115803255418024345242282236957246106310451616296709707719526696087100297241161092223135981097724497296035067508983810190499927069202524723045426703488957345621819910164301136240024334744429775132498633056958165693118322261645971322460726692792285400952278819829927339184075153914317874431020325253863172330131351933161129101417683837810087895022977253992332338806549214368949287761592848701507773370120762037423402390065613694162290717941322001943951942563991857710471843502721881085688064614289268000908867033807380036885636474828199029418380083345892444677208518488705812777673444282417835594020681912052616341497592421036733367970154161480312611876864046612279589417752252397337153431288478810731772263114630923407723441871665313919932180978523388222612466461171380003412227888309872759589601904239784390474545529120080070068475183708712610885298854683064801683043320753965546403883240572389334361583587778160131512759052857058217913015518701486105461705154382874759900850811273967842306328667752226803275460041002040589112348449817850879402532127237696810666527600801469701397345046463416609918240068256605422211896118159598322287563246138081005080389121427949459968087021507853012679634455242939956640736391173740309009126734780638642357257694785361871828836066254992187960205765924976923438271377755782754767911997630524878635306064693231981425436779253730464869455914233118707745172769538159053512684932887098625888942225088837057748756182831004841827787561712342781019158747426360627485879222797666416572235314244753045983877183764099273487357198419722190695018420329634006647953612540908627742448504095598455756475848362744593819732928723489762972920334189782134593729674019197001918470061774401988230969142076913987939401117897184600997276200435689266786648476651298304356989369758021012031937502114725168868948730897619561831846347512218378377624829523117830921505702450140565990290836747331056770468266109846629696334544437103276243785180944300226021259204201134658071075968938301691014935112297466303477906164550025355952202391910391303021946199793871869512477432721082500904593508533251399006742786870065829124758819060124902540821047588620386442907042785855212635987663484760639703240234762464952331471121837052212882946474114773154263667674632387226409918096272254673783227413062654582221003030195711559266472386471552227275345253792710909847474890240531513972900069481083811210515163122064379230557157986094025963310839920711341314739101567438727492764279445151702108169846408853122514268199786372142301519327109395054399434865596715474968295294649089697074722593120903015121026334934967713920949389466936016334263742572187125090962057169462584157405349182064717442229734687994417870289257529312661033973546309607746261911545460613222969070795420099643840326879538676861513907055095416955805879107627822646673715277563834065093105233599106158076390184393407914677120922271640192401005503331605090750687428077022538625127239921886916602792486210361332755805939645487860139096642489379103519081348817883555364545345627183919387822229992305036948627021914180640617878401820029486687506820102096140441746840583218819052072242624149425974052214342974872001143731378162792993193402096604351459504367367905085785471756683707955147666680904067416263361280112565006468426604773919586056853622322383432651462773740054865493458191737904662914236400064167940121923463812140050824830278598377224755133797384359934484682746962496068052563826461336653762942540058909685365634553173029101723475547567817082322315340258267537573628373678625191478330945195398119808604728677405700179788577745657094709831865732527101528919345905798220157309297210844234981731717016496714628125965236021133669939129323641006048071853611460809236893756655847860990306872259430586594706814062365768154397342510246096688087401345669270682834416655947912786433533466017548365848595323733245549621813311703477572818852366629842982026941593333207976735357497324504545940684195398872074275595109478791814034462035414245133054439654433724811571343875213060946477879788926046951008079525182788676627529616606528745542163323984373259178705673206374895462905617774434163432384343262796143616845600966617540408464508778087709804256687781980985180585537227768599334332103698197529012468207780164286755759245793002361173632904056504944250885394139938840754091414689077288519239229566454611489376843939009409463388062755726828534755362211569679343000670122058676899921836476357248048957386432335088227903038347139264007899970436933355182977759106739789356582240639016024841327458368505963242855976457149672886595826948868842202557243180252446952535411899674248724153115390703103811091244684306793949648991139339807118116113006748500412035569144912750491275698425424505729206611869848624247785217209668806028726945735432804887930415165043793895421480098910774129849726050804675740035609951966871273223327382851774075873456807839647287235763753312566787126171652922080927774711115936074706739860835828262330249309215634810297965047369782160656066101115952288675194339501049891274481399313248674640806139719000131309091897720388605975734158334040182731968849086833111974018605983293623370682570354316304242109893587391394651843053316410193490474268080058436528530343922441337952901774736147788611630542975230404003482914558839259883496240539306224001229137270005933739385795256261062828735377551707635036318451622052097793774289448735404135452259343608345745897038873835241753068715631408480486274835627982908068000768345873593615627844268623656255200868847983365125008336654027797026367809578392806242113332134626862427696086729672214845651879308009885405315129564465120082952459500196553815352352476120034524945893567758825719866287723232199672267238433664345562447917622222832993421561918338880105721781125742294989611477158345259140344760082372869678779919156805865730077731364386665053063383371761984898452892359626355463728124465390559640472604525553489710322042743234947391314058399035783495688246180375526529734226175689242241628337719328693725823648783383542699767232280561453137750248853045426821792533632559548166279416912919542146389741127000230871012579122691448475639456694127285615880461021726232927320556881731841045040548999127029389141464184885231542029829401225158254138062874321396885180168986815622385969951855826301050152061565262124693676784173531556479580004977041467004698577047489022226702064156598203354253928063344912898357737005699739262925017308376422986165703163233671388277372930159055003207205185982648566394431432757154884205582170362778987877669242448332649852144708014335677513497564211269217286289102832133043349720757264406374362936628781647644676059345958704995719838738814520461266845311799674059907176426286924105433353498624314692813054363254581136061579912510917037208396769949110881209702672994600158201071696240466906955549694166008167300392101349530625192393511711372641817315556576160424645344672161200561414876935025924735920855144112149893195545569866155592211510382759442033630950301192984678538886738431667851463018484312130688775437651957603745637236538508039442443840199787254062923427162380885954670850377886764429685041481176028045431892275086253275822882471298457159895562026928491798037898365009494984653421034192501583371715750395072618286285735691558468845813123414240142065338160092154816698359030609554254520179597124983223995378024391480962892679135481036860910512898184198853099441862105407551026583609917218111422455009767018989396573817260198411687577836484162875878685191186576958471431494325576228127037243799389887086055766428751305290496789735921419966171483951778605633274358981236300952828709323990317666877346770000241836401522361584590112754471312568386605884020249674079915176098739059248131339375264865592768127784252498090773640312254466777711241635305689318667331923642861226487686076891046326283882211201158409561390708735759658509883537735472069982695865289817146029592426416006952612536250166019429579466632217857035232743546386338007426984077470838588550810569771578133216565991660955979117156139797622214107699541785832572160170833350922684864244880428231818146603395134851307661570985009683518934172525444588691069509587852762399734655671029251343672196360956747640289163757255041384533162169375224293011294745137535241249895921034151042605391438336146503660044150638585428531837377609948738461493088978297097246491393034557183065528352078046126458031046513052501649850892919607537903360832237673710285551586917354906261414184185240802171047149223976847003569026144076893939692472939129775127108876746117929344247589019303241681504897999812450703268096201342901648620701649956310983966968587003264453977956017067644742361771984101823655416738336735470840203505261031268733545838395522458260874366573476362023835790282919599741537546081296092800851176583469089073600359117756491269784694102310302569289040274199344180965457830208677675053698117848331318272206521767507680679512773776056729107394316586424560441787510039837695842415770890100067792341160496393050572406793903406459904489577784550373667907320948316235494472819588680930293020916295411513449234244245936267880061016941157828499335829955901747273571642573158887879336580396935009680200195046276047394919836519404865787843019770024853013737681616438360823620283105297871375669451758604393432164829668094215768908413140345676360193422283178458767536977072851456176644157369358876071158224215268139974129432939603856022939589424555695440410702899160854184881558042932261443537285598727888663537848711954624748192789078098075718244059145711119340519388695359462177734622765073499953052462101078761952731761248923642224038920560795400386553532902187361255294585149920505240896846919912765451485706118710659052826677547229439974824881658045964942345790827447513488396989019438753811578099124745823013901032003041503360855206462435796578736238372425302752205273934584631391070874970110517909330224992611733508713995393008116362182453973847681524459402657592510061289960867794891368480790814784012265199787896723196099799036908632662670813725004655608244728766256914689025080851064171361151831050940072437834349835077083239395361218554314398875860182783576357562600183485497221228950930287193270800793492035707756757223109664223866656898172213793190629902298863467450226944780843751166043594961555752890665991504812094118316877121481629994480760252808796736612635482830982435958629212522142247812546391800377409341260480677183837378760150304903263450047943404275268682117387351164376029743416124138270888204774534935029692405593822215209554162410606834266001237018182741413192959922330600439340723103451152934216436125722828160895501728089640119673840464953512298066915519382419205018317019016198386485650629663833556499502555559963056157831333841415298296170867480692059624613432428654117832430835916399627860458304508513445494581320231622757746300808599329732724846246390736501638775656711796446445258535212507608111453597964863644968257141225711526200600034821245684378389676444762234046633522814858745187922348537198746196663153100518519643414518259111413075615531572809934025975330127747987621745675352476873532396118995335734546598258673395740705974801306385109478271222717100186907288025884232136128652232335603939443470042595717397183600300623827573745502242824116745877262905982533428589270472226754996273528606070574980082510204026775563486971778847072825514256864144860585910200494479515681382878719338499589250761905305702879690595274790717958486608934353042556030448987508951652934095807113612754150272817294438309596632053354533352885911361224183460531671240902553542150703485836632525643653431995077651814376995772424888733328376202546021812994187645589812367248627540638608789376945630799183650294155125135972738542819522590813999380730687012346843755334039816774654528149045856939987168705379109399654805712850304047734264841747867737290360655204636262499218195296525942647361777311178665163100930940088396866184289057403934003204030053477452876901552889556494918435912796943606923234095427016717605408615686372024706356734199066940352743435208713134926393904317238874522284310588963727796299688040610600104271398080849921329416728235720296989117661215975821771008533666309954879191077620083080280548373932869418184708291154289576771729046660610494430562063048490032573854175705785780351152572417327119926344048654783626542419578934558966503032369579231879565973170867015614226767657535447341351513571724084463268355444819390104170129062958105822806816636819678847898221539034453479969911789029084286363556816157658884062704104751226569211748501169769228723847089012035343851651681906622007817599209422851599341926768315359921555153532657638862249163591332172587393602462964331007771531735717808625801017656226017529968139858981150573240466746105068994830412133757329514284473497246466878159992405625454041474497094221430722453375753900909026551888278266666055688530760226241573472250083960759028558104264854406584308064384084932247245074652355107171390186626697751615839223716704136862099090290908461537954466828722305509285177662038924926437581032061219436403281382437937730902565777430275161707403995822388559498620521982559800503047371519082483221969568524216054948743697612524472128905289791571425609102666397146909915379941358600816475091650148228070086091503125932701889754834414463604418623254601764076569484275798846136763178506675551125234500168925320183869532834467966859844541043315633307537700852645916665520592639008711359207239274017962412924425405699666307068762253252116590920065301841888158658803285211890985272566029756907309900523754448918120740853845486907077846399928728075190579097540624551257110672763968482417910759116511396584458052975136348375698517263966134828512869847481028149846261673706328488680163441940325936876554773953915058228767194342688853425644696199291561138744983717041830853907552356863634426410878062346421486715601265773400608860253628908960560695430604356661535659101968944484614564072884101303195849747711573856746169320214655719158118244428529759044282907781304788695142034941584086203061861345524560298154205249388127049043395760903971245919716010428255806688673598104786346868865451067166388689992631366614274127358901511977316725391019469426645096985327161175300433874853123611240387024177924354331434220048580825506286404270876214064020016850609407051443461942967019397459206540026756322539099835094199781965273675367888133965812375864499753208926120020566983720418155430415011783617117331145311225260055332644242658976909959565405557407579531186707855409481991623480251577884008207455374669482048542432875398348338248521628611679549207368821477043843777163585459413357518607767860702823801476961410498677077245928492724988812988172775183087377986263425267100108165584972243473062934787104287535633088328913424225922583895341997616365875975628185488147839936225409119927008873308647274520594914196867460527144038559246518921390536465907071397764156127292558109415332731584271646604633285612186762253926838487308262141249697086814403951536140298140979883029574470097603541164665813869667924718759735530599021773110260924969498634576269895817599694807299097911218903353261356115177340565987623631514322603180792392582350668750655453006883230113131857100839247476687519246682704613781029328630751846390813686897817614274650640607876700466234230837394458666729403705702581603407696941247721129680202360226758326919250307600694515907095675527787535906258221444695340596008925804734314985554351389213961446110274735724982308855818376996940072219253133226833428101793087546238125902059107163848617062742854317414398001437263929607761711127327506831106500433950949855008563881927652447576596489719771030278389845801927879898186818030880503241501135924618217346349495652567704031686547766676564420341014739273776180330594512797207948425058567944382630541333482542650538999239821236258405345316222734317042947643861736662506558510532168049338654696458847776832092343966512231308133411376444669746743408191769706725360682424075132004299726982537283042616345140815841912910342639910951628555348755727820949165837032631445847224725876864398655737137378468268873065102539857325981994226037748964398411432839778978924113412584600179267694902967029169722460626248092280466731410094086445011449366778374624431674369381864075475242204238359394342753201341328121123815553820647978510413811549333293844796712692840795472758097478294492195130015572204394861088207239447138637559464071437948162967538631648728338460975701986471515556610357614673512124610591997551483019337426015957271885382369497838542744755145384450341532846959430752223532323283925685211003618814307595169979101871839855617321518512422141395238625355899705503204435514683286966452298024339235614737420065334459456676503507524509025458952537256097677283151764774475546483002299136370007990634254926481622275881946311849055446147684014651475001756744868500440785372425256605215411648813106347353270832598692260187177031601272428300862686631463764221696735455533827693156370160653958236983529453655784311781115408156797734746876812251594812876883499634035526669231740274483948064804146303764037402274336711847628971976722810452242369336951439452263110216661826052870022248786076115665857929390074781286732270255487964903761112982773825483732074869418043059963566198787778255266246800371726202231754033447182489680990902070202641526654922263417410231031367170629746392923873887110674890128997969532402397344823010732097737928375627242115301548153222488075963804656747222339786838390317043325034873612084919062199271698365601337494102799580015659684040668262136057974519273347579441266379883758577564167626134280343642654395094531107012442082960142653262888462840408221942394062088683744323829886711630503932603817116236064576881597584475908275573040977106235088870528264764903626593342793313226458138766143142748179639783343469298633314151324927960089335101883942449123877620399881059905980398005095342598074468870155009397091692159284254037908521324362944682338487195721609615879811144208584753782941803440457023019335389077654537917511940800531313464732961648495012926294159585121358372233393664559888116574000539299441743999239656256875589114643976175509181987324185188994941796486065441832403195755589495593662310076898393734109805011708289503173318060571416967239195536442885000583987486353571425833110233930206243632402668232073027324523905630433414931425658229838927995334349548476985279201616594443742422686290695990748710186023633790111974223945177085262321576195797491141147022761199096579228855912380013237291594165042549389609073537031557081836190216976608488198340068495597837023812679403250139901684497893322035770243171098508815705640786401506484636120962922351560051458360729937811909852046296261898499626433324275256835478078753142045388578498555008252358676437926340090737756106578287905865074019431562911999893646601167595470812585899774703603484632029676442213709484564534876437633090939178112518217373768960505986758946761338183145839005335132514360071117960657238658194432927715892198414321422343293150819953042706029497237088014938537851449854161757625025250399503211005582725910994952367253575096889900120554922393234922490348440651548971754796475391651483177379555406284048696717432865027565186221335330380414880448543763518525663031747273603897559446835594381746924371995221735412523636674919422915174658701634443307132735360694949357982644302028472237552131551319496574639118378382066844314644883269542382072797840335705495326476371486890428034680951459442986098145270677280567382674985280981400699009025419762951160929516532861803957024256687813797650158536768653808743655725987510132885256997088499893789677626218155016648094463402899511803194345611972000359221807102803227210174223050205354904307961268801431398085813414823391887684288588912749376071758752666609348621541486170713977465900380118207530973537074128831757408586921204146009243629871985967369058413856506900640007411536027696102449136230262719366594915073821201370230494802316002610797466254302572954106112794496561906406730081463370780712349606879380608715335394686853051985715020638280318816072655332383329895068367445752996670445558214412943606948249448425967970321874154903721989119083108802635734923033698427563795201846205468082691120458624206322602914689389666266239095094892573141587844749617130435715782046839025760672104081311274482307146850200378849401793838847547706963315495317014579733300615918819548614002607083521812361516565314908269981819484176131688041960517545629549090420673167592897772282994843378194660219156365234594902637800957322578185949433505849805820947702235615110278631899995527508020816571133256564791999019417726115534616901227266043017961862310726225187964593255164047877519902566541079073044041030865130363669457595943126312385319690331553989331930253024245971024246680791383837298282689622696024353127094764966045914990627032179695839435220006863076615725594999257446716351813463005510731442635005025737183458926872355029066858261720514923587528087403728096515630656305130000880157987534954143169095967278035638862454956280935185585915158605139051869709678338404826862368554848865904764188343923098196934555031052614892564085256823155333845404352065426503001188122378965171339584586469084026551572571188927507393896938842917660738481063758279117078612193630103819941606941698977298012468817281425092941630535206623304787885550822190184441843810146864118066614604154515685931255242418660480175946411489866423969486299499279214565336240749278482425172800825938524840267861843764229654715953591726968305268641367294084278203957496352541475150929276103272893709501481059768441387253154026571163989392026723781600381210749275694299542388017813555504750524430856737419722591962876248316475041051529521015528848597216316077894848364666698399965838358347610371623289298524469083962672618723099379716065118046885270400040656989889905313619956927539752290020207220580672679198408924468847135059646506483119788874107164210483540222936789324254537633855630028371529725870588399990712665576130964862858397633067815354420130934960979324345787910685468793716215992865633409568828961379851288498833944775982102199531234865664096603913384288453191299776588434425927409064333058776021299027614850038163415247741230057516988688405061919880644714259636268877526380966954511987595156531026096119577575919818341350799370319302688685390777056533808632786609178995140191702142638162898152371015872993861546735218629243279691821405259871767986987122322918955508146760239112593902076152978493318248423890452596100634266981918637221662220662261661551757365056485159307024290507342025236367585738562347147865375463520704296645606591115707969778652554722184205796142419309834588133554079351558789885171266829183479668468679591323992422318143943088701627479442527932828507981568316643224199003276123892240803072917401070298238381082014525977856068084333457766489669460766840730335160541174632349500930400261491960296324072378396847913397995250863551659498194867371504540683431896642801114427281362244835874644733719211269222604643580512628837482581553325404705979903068997671974264455996934313089215500161164086295969047820736716967751508405274862964226137615820492448420774141959706607776841724252391192850886824434460892354603337135703365809268282455584321116384201324385651104841070285233346224039792920559332113433915848960770984058190145890649194633617046945252362076148472512410123967320074532106000638092034649207805964906448281202332202566566395821370305180307632938944193516395430838799544223109799446514340391419140144557523457470627304043552544163474647474464739519743143756352569479071405981022347185812849971097042493590984843530375059277766435258677596988912305863823318638011298295093999340479891590451908087993764762484483368580639796459006077274164373519427780952820461966919016410615837872264469361146589621847892446800584980585683193593793669217416514351331479140397515780547965312034111835434526391076623783579248823279749996234579681276560172980472098157194751089966352333181977122990276523366572784026166070491074709517820917126428313244891340035063249064100946600605198656891607342502331801695174226519712387403562443000061919839142352631642498352308412942957399825926592792948576961655459588865471054583838357983311201121770856082134423069091522122626031095420036871721824296980881561941169993227524235933940462345404210521865821460128190622956779632505072726799692949355878834628935112324778566059888418535869947727565898425094226049158310479251160630481584457265842370442623284096963103879627446462823584273595650252452310986001251928215555924601758888319849727178789079503251666326498116820598805369316130008064616408284469940320081155394508540826660781124652482155815520980335407742128932380066504861604352797645576580239702636675103196138992364171194990707496543782114353318857013096724691768942540122378958295275501591663046794447163247807123689177029454490427646330096720916706936903543234228828548705133205724437091020098344959545072707041976919240990254382442166750824314723707237254872867605369682550338774275716051578706860863761521679589251947947382554877174522149329986215729200977531028300520866973889410852735220020845865894298526369212750388086860561814730022433817755046772715856887895423178485878785117365529580668608632432693805091073231249194233578277248208036579737272727993794730121692739860263215221536980902867747821015171530049920266226224472618719673476379713010370239287671104010418864267039932472451884645457976686935080239552047058283116800810937071576350797321237275772204708493617370049047819724535074424433346800781983227325350771027411682205635270539272133600661530787729850260230989281832197920800477311356853582365524302285209330922121067229021936177302236979235554078633972028424277073607298246895404202903554656597516271711020595214704214990234293132618109565024334574188763718349486347917444198077291216902376720235080780495029073243391500032567612933049439099747897742020003808584581708834165514742201116199166240787097521334144340897920163400073124031646841333948122077781090747161252189889414685689855824783553685395860458709034540147271959043253881318503229794280837494341975526203904960610960936146657556358496752305435607948148671926257540813790628402683937008695810945713341843832974985646583616085438582740376594927614242212912416148442907952547017676852423393384692391507375825769110702741956209776760666298261304899765012771733408116821984394980664755764368347983968000254164199351909555115403861052488864647914225399940219083662331469951093820694833362720434671785114944845425324339799361756143108418527093966890023511230351529710682677496484208385608186624396075486922543853695041230963254475870013537596110992148210552211422014977216850093383160309328757350532911298559374436435394065491640976666182941303191117936404068619476264413873383937625123734814437072338589259484559559616224643614622770698309243865161604415171399935392521391716569038826733779275849703959573970969038768753048262215881548665328522914690249159988442976623450212590519582011461549805444639182576411203661956227901753553586315346905264499036707646439490987851095322253616775058298574153886681221653959343631055887037360223411538824709169770866822945433708135266437271172551704502975754607910215173501835986685031194392515058787077066921378389827602785955820883132792307448176168035383334606419471855356476261849988900183501481523787987946363613031097448180946208521451361083496527483059782662422234720406508218419807279138228786577293303936372991777746466009900412373445968129588741593648048091601744580383956120348503786439736775367425456334785837934923740068947856851609620592958491848947589419807775921362015864792511525817961280420676974667435327190987845174887272952917475958215149344603725378148060846029873311755006357753537803040428538258745976741267833600451017403756844810191683095410772523658427224827504691206534596304836969792040943744842937798168172716559901032840945768740129114797112868349557088409139877216862127602310971841368519413239687730336096954165959260176424998426632729403512533288446286291870428874749803066706648060951401072734361590439593958925504594159039610807385823596732792474979793108477557400426424522773285669009758801191614612160020538397104689483168730764836072367479654849485783631171221191393287321556209845743624731017283312884486771149622927861989245089537079690112077685956532910991339002155519865161307989232408287553782217129946739183497827483164223439919407239323012369417662982564472057804422978612809556991736009339453545055045843864986315522202447146625261906823415707115238969273700308476372524091321420401035606897976393105807419710570136821142243378690751221946096905499652572404399018694222225576545703387350263202350839850472562414952897232956207607534287534047445761701793019498587899243103356213294711182996388196925138243662190081761480599894746857534415855508991577595202051226249477401076878000949249916415415254779012756867425019646323767614301240828503835938747758209624650237912958943529890023985113268013882089830290352997500800079154652016031991754443057205252779004494201786444632651701085603110829515841202488267354821167538744517117426690739463200256270261655569804187758902725564502037622599942597925605610232601420216436485841247807307755335076934107966869502048000745218791681444799872478287709242857945067723459566335396371476371072251914293381138883199531570937982679852010452593881419889633698655131048951552841956480918184919096994031928388738258036424200426551347481709292270818663327378304756864592901817605537679482625081317083187260211575886551979830319077473234178828118852193673832531977545796496603549123510935407420672861253579865244771780063601344068149778567939829628336349784278328904667646306639901074580552608084583357976990855531521703385033847352260398349619482179182807993905513366967632549386442417213369434653109565884452739388102545244698763176849851230150793006077674953554909064250676968440992727140700219067568717405354458406160536924598053236273912967600543110924874221570670548841199756592187011160636106084747375548330739981839024750511984616197224593209185776146492301080230219212069313505089794852868817740575422859044519877944819426485886862708162877927776941270586337885295363215225611178788841794102298618206435366291509973962345924545038013467712062205394011641767016112876108445011873645453832875863793460514378860642324244661938388149754643420237822958736326247972090503812233955517759679241056102116920957758426805102227660999163769539836863839164383383971147621650816441842570833952381313787066856866420479098343016523046630648409825887454297576739561222585589087892337469223863156640742801979349046918560736886190796444667749991427012196310106706903871123188175607510317207550177094962907826669608857008126155349150488820921780773755288721916076410892702948748358221966568041629445333673717231657866741388406123779148506397438776633471221252522296033136810568866359495661864863050738810955648732404781255373582151915535844888382111337178312497930626503624948315744289786052709801716075713666406168143191272201191187934600924945152899547004400363299091745292307129056151392080756397903664697511686901165374148284930666414915103788762218513925845556102645794874736407134239495753530826768743120776316647170496823878329877627226090574109695940194931443943221855945397021723014772770277262179042290374058541729442912367781569025043063130365383010335474453754191049036813204564053176720839092631402423127690033796871342397696885199896735527753395713646942090123299971653378397428674175641371808306039569896361186475201452485573844349849928904041435422463243664479456622351518551384922547956566119794174907654515939482510705141575034152223582349365961360244096874866944195001373295313651342010817374185247816967277864021106312873577940976586818767184618843691603423805346593236813975630696661868417317118632071775701464784743177499451486722646142500149498423990682087514879684756135653568215170759868713368425608554796080786683915685203427058022674563890182088413189854450611441215064536903513616871376162196684974565428739139003546034411592684942824704088899717102299244808309538175406486992519725561744948223739957436007102539321582393343287675826795019073166336611212626880617179819237316276494422702443286940274329897229254336740703488781710246201097110037616112782871000597513661369408393616982115497796528232280225058934892902619816879531192572862826530248571141748558224438312574313749793527324005715247730692861076305082697205684776226643891342239463286995452326611502748816085738537379750600039583823595102562113126117839986725586667062014455366948775991734005090296844261669105026549565172984482526925573654686064372493424452792821361939485626254828390488398494954656279773482814976168579138183519899748572841600306726999722351522925683312081336250859280271414280605653750486960460576844333765673386920819013440356211913593682801316937233748178635414462205557588434198530539492786124708247745351293703386369941768257884557306962550695018044987293799129831518201670675643521554367256456110689112091421028440607044308603533978075457276927441246049876594034987485544502062676560061353813275567770397495138972643810400731996220120461971412437300284625770826153151646437629788849231823589588161229306779337021964030471036060997750400856861588327940929756688011477736999196836319033329680223938982537917886834503549051393319119599369755466090149199809755768357824106552404236899003941731272036078319221343251388878230207091381295258070208032821696480250917655997103495402013990728304952142772787336215716846134656412712881982311777309785735280191769434736159281409772852995807570161413875418267512175279639000216939723297029352910250658137525382839418546584425868988737416417986480472095994149051110697543824566522236662250681799081624641668670649216788311682661381960545054872887043225015152614283199662224858686721557799504556123420575857279787228359029791277431226211793768035642627281109669179887089733600384935630678998408492870593054845411594394024816252757109197972070164446186019535309199022470363567854259238065391035727981182563000250429441555315093767182540705727340126251775820514151175595164824651786542376156498006740215142588015403125044584400121880202732543340939411607462199856340911381336105726137932305419528832559092181048277427741593611574308882206470137839124205738405664499326118610823708227042432526697492570284151654812217080440025059465414521155780634683217893823279014418368847091938915905909310834410342319734763712308216114528296470613073204961641459489175717948923010992283147667313723109649372657365558165164293692999867682689576943441751280484959014532975683978154951874850149547181814339041723299869655463395162934232950771172652580071565488799405098707692395108358750565647582518479014560091131237944056111449132375780325130630572999281210483441198897722370806432530938074261727565363139766823000871841526151690217996730672499202958756184933196979456480824917358880012749337647181733212048874256012356137847185036548234637528024997777185069006339129315116960050110319097482922290621641440964447968434860904731878120751453259874794493256791577931994438939264134310602522972787868272835519132174860931172292919840048938738519855400512553138160147232846934968642531993348557510654237990961501583245647535367513097922482573549033942664876073214808957674505415606132036073641362856053190766095639701984448609384839947978168320770517598065042202696620753086929812754196153403711450362480742606476710347710619808547362385895891899010141757589852906543725808922612356314594504223610790482904621480907615667383228894300681427249247725309555695101645754910534828093695730394205159529956144694780040165676140385602837354980067180769233353051459101003774014319180017302737451577140171814370910863067527002638468253862757049350494126011068186376847857362110148017960484274114420389948982599935772431021573010992322730197982719723129107179201555267182544296389898772994302920086267125543062873335264862702756314023160167010808626076724392540091522180812729209210975971115228866833282794385481790426772523298323356838443242171600116953139617139466865158846202459190012549453264537921685728547851266077851938724894494970173194351267440434701395285816356314937560859570022620302355765657039036942957540640228682990051829260135748933683017524510414035951564327516678076019517951393651504876605795308700686804132829077024419011612721815567426765632061435697432353673772661039104078332692329352175882410925680843158801655456638317725459180404168319281574987397936539084529298796927245474588483987847759141406831240695202364131198295801978366111798350865979360203728704181445797488446755605886302692474371391242925707248966036652396802380267245129764236454322023093786456221541764703123031242653404164167171247407461182133271102517257981620457209397092005527399747055257177424432052840352044964580138227389376201250295534085242668906762832172049741179559013134393844179412070681402151653711317212114136421750259368854378732274794366291955080665198145561832362501505070887239477594463952585425134289982105685732636657381065517461708590097634159015506973597319761917744494682879328614511572075082064595669203558837482371113952408913835973217838115361723100995663099034156308140280478538033323216912264887308659783154030565213659766963789547373887474582654995328093700889107894073220717467628627546121679448159919101102143209765242848116607587331574404889693738704606322194358077413129488867939887633404388799375662464554968133840240100904515421693734861837411452710285323959762997826880420306738896353703462496472222961526691775873763775912121517954795575398816231245647113047079075750921786338122248492508609435410081429607407770058785086673070303067353030308413856340935640989413004914205436632949345877329657220692289315198319581063363678246581437349584521442484202684805136480168652485445611847789090758666870301243997383852015741254230065377916429082321091483381460046649714757686768424919863442594030331338553191859588737651863743373505150211890329027206422778949988042742691301517327019959169145769261322309857646554063356612893870891086673577401756049644243380579346357762991855160667654469883104898447895414845360926714743240115106559107789493535338262878285151311841733534395143763479991521765533577311713632950954082064377271922770388140185932751291373332594855652440276369408008784289874064425190328938970465181525051538571013758900554913581429942083844145613230628991760866310939857863250936378625812125815488703344857143154580763793553639392704175198107830962836281899726186678350458573432945361005120071441564579909034265736080242104389372476585480681192928962768931349589583175485148431516698338970834848056754428168267794826319315748251861254037649397138144983040805066612353486534519768829134216139018170662056628391426743678983921161528183262937531878056171932894856349025279692975484283995946740253715144697999772113891145770387373623700673966211728497571673695481577380411021219093942605258658584150680860415055672727241665101314311283723544464340766562972819430798261643227216030436744408942470948470414203200015052964241588912526137986121769146545367207200526889506618997863544959057077574085803852858577288052429793514039565919660064489561530486830298827019163586478428396643402301395965582725818505402907126754849884229610356268857547838657450428065385930172770329772706539824258814720559348397514721414222961257219828426991003314812346098904181814863270253901460358258436242310910565425508931748269089167435512812451781972098241773225454362744961360812891154148228737206168291175763322819827094631771839728199374721444949216603966003610813019588220854581914859119534429814109872416307168986466361018433030503509530164723074941690461942130460509757642916231397326104116504537729820464031926548436390233096896990685920420221806540400313236698956156546406234270858936212775291884007147480259482698418780483423701505832016074720427883913032204590027402304579983918722889179461291331313516705776834376416457894891227941008243085829812121295914141246315153834258306168895136469050107018168992097334895105496879047704339036009422950866747097257432433530158979945542471397104987257711998880299330027927614161820260721750996952616430975603490754125730043211765028018278773639445668816811799660227489260686039867918768677873736278963832865092829776067298555456189076915421550026707641067812126607391787766965757496948258498569738521218557003581208408534696423863843739207217037293794979162234918347873173487934673764433271050262790399693147083312866844989388018810493212063377187192329077515421386389371584841095477590288627304233828760943948021832567910807815148328729212438034224022611996122530332143231577789432477082647627439038839589104685422955143772317127318205738119132997996048966344552872241632984524467420472132985527114731869066829806264289249949789964968756132459705646162009412338987060889012719576515331356890093856623054587954739783136208399344437688780935738213339033744395939642001792525238136681719899904213552459403893956543709613830234616690697791968993328475846963549594080151845910496500738948263286815419878881220262927774721284340204638035896950295219825619817503455808227857218408801840173036093734256416352975778447825710083437942988471752795041290163205917762074650396310795698394058563670630859327785254288063871279004467654515501163043240390874285979317340425211203814996603669401649940529236541387788105530036738026847202041473712949943760174630000783718513489847751933486641141426250214806014537785360987572431762843421860279620094301530070740731973636787796890358907233543698510989311140440674690581867462308532649705934908645866431149711544298712701675157798722482324076428178449216147295770393160917166414197804555777032533226372174514028082494585405252478717063239752879696132700114140156796718329935471259062700839355413660653563093968445571488695714321435593044613037382412686886007780585311717912331370814589205156339855601364002395650530577028192894861961044517602046228471675177367710637482960872118245487793569179345516199154662088224248094935705723590980851491084914865048218627723292140707946033019298933872528157712452643984565166547628969044552845718550552862258686280973735391551023447137280926688371602311125136829885856482001559204436703970540666965548489409606896910744562555942097468751154495942217160521481983535608531737883953617391507349379503637553015859309233562002318476731490636482223837769065209930436501191916971419663612328694718619378896540756066317554851380838241669846696399739533111418121287939461869830514605842938199353130788053192954852553234261227896711571838600021209932810053797539852752150714311329349240454845798255240820231110062954584943285663051848401082537045886160034245566388206315756923094624748700715026373051815189723182066033047762546196293701607406542672615843060180953521377476876685104737841484474589882834800203201466780680687473370879073151431698463757002367881033706021212679622176937596397395060301819777920606562478784313309601957116223129065490401710832118043783828422955505029392554138497923245197748173662023897175692545101408801059740020099990604790274313164793492503363957585678348169328253580966473371149760698532117492938166073154634571650704745270079715667132160579127559849203240454178524655201936488289550630428777194106856718397224513902144486958639809339231748965670562483032898497732171100688369498845093584672628514486585471590008678665565131973122935656423862444696716513053915019675234594145138247904965001271957830241479407665088940580626400536162455091047898865415440797466057682817832334565997455127436767545106667245482362688500242693263969954262694333531057771123314752866832550550592609937394629019913886678174356221907558165151609025379458953736597048418314142112424592797464445622447723909849473362022206365699963822156246758925886089944984321931521874577779015692835157690452016452744275434505294425811630687690057028395481202197677357284006535482353115509313933820385326113044689986229414560176182797955849415298561255242784804274018842512640611382456388874658119399859096027826240576201863654675911332480492148803306106675309432738005788537094187414396548965137269417944064160417356260026225638671672225762607446938173030623268965663234352332761625270968390334383877456029412200717988985828002269584587021028394175062311315120242113872360792219377158547009090652565841969968286325670455775276189714743572346777412881542715394902826944097278325198035399874376694750925218244077159265568480026405887171733684938962395237439002667869777255641949229258541498570569766642863603283326562149420989521981581017961340034156650937335624675666746719486251279904504308033026645396346960879697299020134816095950677219191609519267280101960460581316845017898276785547924173599358511914421631724894765238547587633397964620586839083470913962962932402362754584400412479178393710845229157811474978538919691129693913877733690195787471916763223154244477001590289443695699861039582699636185056425189789517898460849667824343221185324519628269618501065056763811276092558053399786281350771159809859098762738072355426741203889294904118153740409418516756725870946968285264206204515878378243319521502492817504561895237383007398959175925641648417334931152094927618306542093264668586002193594716288302653265193130756455276938051849923199515133246141670921089745296005322615106637817301383625118879058348275827241124597668249781443973806656580400479813823160998768558934841757530393917859294780015442639282315892598308088195265477170118600423507169865533619635187296999127571411921355032860503934539166858223034421342320152198108936380175822488820187847045820567148150342382946044560884453493473426890446168753098144049976961818078768711335741087677979493645904435144746134869323012708952195010135845989147710765981869948467665608529368838882424798409788269739999633326542379863980350670195583918948711889957522025726753533670943185983831532274869786637510303476317186651542517378772320516862086338913285445306575092670390004490492908391978438482858543931277924558402092150608049887610275007415604482664818922709880360084216165177720680738242892382117413079721883469985562377499484397728346202627034301380386386077118895531642437869358354236382592962357484330045474261190546524892198734113966049859067002278856582844870979116549298876696335513798649974241166984517972512664131601613970948362880714689595586807735046583590145583701348615992105685018244724945935058428908841673781545004800622474871397521405277600927854476990045255704613669231681623265961587637864000500999565629739960973353176847897140357229584195838836981880388121566657738149821807207842847502675825205710916876115812323996723760098822579695780174863418049605328052038023245067122444969850282229317860829040798989430339860401281054843487719810614743320550697165298188901148716375677065417240542843044367286282531357648074702000753735295900326250382065446993153522603371817571496372852568546352051399723616738350204930969221869526011736847678168491270479999868770829041026576504239689698670600502972246948085991294358902549940865736727101965301710692013903679939006369384121593209421608317420947944673036222655320444211260947716711431560766323342890252343474830861611683127183409298765967106335703351082159518828998045273805019924152742660516478148853125539732942936271077248063837963769136969492686862603482691895682147460840467086902839840949453982210837327469340912001049029910074464323034971064666244312309634121201097607079748142067300543765192328917573055696546682207919457011071360657496342724633594719895221637542704241447879652130658318620444953267282716556679409386157627716164037850376829497358404251811848449102711806499068352926002497048378469109015459078264405175417625041107160532849363738279369899778371602293797086737558554767182956109142836155443454315539418213249940854538817696011528885982924960187829627242189681486356106026890622372679784547070419006057092624487349544793187569651184294516213854515514987551302818533164772487212179073557762676039238118432985401971779375007189501438679071146196883032040824181492026788943438963994318439654156353812783916782725960053199004365721702274638362812743532648767978496738067284373804625648538418033880306638493645441770704764144411744588908165460758678791203511350029742183970870794991310273019245606161197561149033910141501017162913187876785347977033924582730733697110971999889577188799128014208758226090912257142609213141879943495656444492165620931744286749272295742267806703854469388803574996310659351956559988828109107554652234166991153326550996266517922285814987723102976909231777499145280789385085054671984243857869182018526111104441617403542727990718660451590868849544560063902355776429754126618245762177042985954793618807849249584536632322457254396041867775349250291255637774967903681217479410202006380178395860436856055001976879023067589136417359672245220352802131575399283651800336721513265541938150827615314250502259942793180567866588624518888640922684797843382872690783919611094264052869699612733583337627868174155986943596756646696905611042185645650174568656536565122538340233291512958369516195636053895816076791482441106530550245536896325707959397576266965688297181186158703473571229772818505951746256153718233003659699142373660589525251828283587772534444743200705055338734342689618795267089987949746215701681673227925577244996740004261006311562293256896962969947930492937960917816508113231830925315315988629222476361860581126534192711778641234571231755932595469590710116185714006316803142062118940353037767931477018724791721822595588057874930823787344559790426308401237388322548884064791710126666699000065763226778594247458031566741098387139051100861970403566260325331159099223706605532738785062525008627518564567746203879274403767918852929113692388113383537129138229124435277983671443820632892658897666122049429608324862332130117665902773882604005408238119935898853069484807034767250975995851990825136189606396228135504025622945640694227136170355067639442152946591680890441841769398583137821033216018089704100075629746834315619132856217298881074382215135091283962521383962905873240371722535290517280281061471338654037557318358699724644916400046209098189146552537694877427620712481047985787038819178958812381839711993436180680170297680877999909354291891170752638185664215435393526877764144175139494112134718319526252947385466603347581876372763789558904638302922044790790530082696122896244002792191931840907756248160232007230961622398848598726703960714954628681067525940023829922581445419204262358137644037117676942303148270772217010425720957327276044724810373957394780280062791947398432737800939848243339927256087080804623427261408319132745953198015706711510217081481125302095158980057409495774400002613327794968245301425122900305641234972640468178821034205896939220442226741967092053577336289065742320429150276144576194111469821804210242999432285780682899900218646558694603923963796518861588305527341765755897411297376257337025801714350677101819625500457095171008623973121437042288954075697565000763310143659495285422726170880223815427555852754673791618019450899433613872471621853680493450843887166009674487377614205427556283167489303157888127848587041497557174715291422841204112086234694010246924230461483463224972549566391165066780215832163386962243156324344161872505523948800634153100669509158068288414388885210957066874829282565834576148597524669235137942357009753154657913164433667073511660214693427308135350065009586005919517383532661472316307856319110264271017616228744504097354144832972850286430142080039127566850457335218695649007722796320795428233752760158493927780330843648542756043144051690956048529942215217709056833888043448037752859876697951020329116881917409452823925682692003786500575328979660677976692633304744030891270880021022218681002923163205571663545311945837891067099863216831324777449070983121550869647737807727123699814664611885677644951329057779994353522973215956270946871506448815937282854005104301784274271807146418348830615760822302038474087044915559110590003477287830195005762092850347419953099833075918449079076368855356525030340347353815354613984440193685556007573101944191223777685907983130412780629920063779340866254731857292484813326352679050647228999923916061043896213103092823997559073201315747432247815091809120398158631011174496361195435505081930375077293118692238171167435836643754345849562048123756405214815515198362429423089488026996616149596094750035157370725140058547711396757232691241929741202381471901340356031994303618328242870282296675428757613226270403675747860656517579109972841865433630729986226171318141582236607140354717885088308962922453485609928766104503182794958558984149773482764336613669517500268926736472666720853415346167151255467042061571316256447283568557398690094130084968436391258884569291634391472638615483446906397127262467435743132292630302588312093215116031733737889840763620929259327474933022975354739845440250009787154347758166230239142981914638906166795253279418127310545568307206022511980598326550296644403423020664830858540222720859908176341510331574959225696666756988607292190297572508490791437507602601381712330619611414587254113032392290384013576159366050416690255985011425497870692999637313799437273633694052134842457587591357710910428866363073965736283004962698823795825442162353255436475295149943350437444877562413344142382159965111112964713134853099739597057080623584031296190645437982868607277485961664244870567597186354902297845601768370593350427314174622074284738491144456942405433134924127651968315520978544294234910892128852147379640007721717928316558697421549678972153375947209301863133189558161550184508085586548996411585853576801153963576111453865769769344271094786093576677546967538322681719113632115845932427294900652603706373553205785557312733548701479578319035634734964615488245442476458400642483103187712684787956938051587691252836725253760682197581580959508415160627308810055254037819030554768022851905471058117836483695777296890857210247072206805409475657119935085839243621463948170764750894090531992601315496954009691949063057263352801509427884918993436637101984059962319212799779764069903018950349917657835590462842319773432619905799112456490285914619373156555320245667345624975416045246720840565828632593185197477847053902688342158725618429195897366870059804814570022660895381133554846532051258030924557483173369192049917934653429118075470322448577257539725963609192529920196244721839762098763413833518619450821933375826178867716077005633636537982014425247452015902361299637958058716643248739882486873006012984847168880682871916745931046600618969456682209075844418225419562121684595005317764444991732549919305910440412322642129996893329591720088308694169716625686058631256553135356536269431733059523487533568061588941268561911090875596649215699404376257614406967441791321986030161450066893919606557760601749300952432272435725216537952973310836603246102282601356698607988067452282284190892376649405732443603612326714070154797122416665495898852394541264824960708492657301229033244093625695066807918538526246070112347756229101296638153368856347095666614769243453965988417042959417864732816413191860003238180305760524087734389984902558424535883947076250620134648646382102408281204541154336478857152819487571896752349379850224883118705943794785725660080317697029526290438399697011083781846674842575799434453952218846148951831672449591026699038540375996273287096414384445406791950746619450385051491536512658427158833065012164976380898294556399915230057138655478542685600605740441433631258532795874332191613329802142299941264125451335470297885157843175626218614151993884620601117840592561633777507784104111461766240580783738764586777278832029332190843251634229478884466677627535035143851912137418599622190638890068123663587905638576681102167830313174465849886326734711683576269279577685129983148947767505975266864185569723486647208237228687603908082473434461187133049653268815647793899572319928186252409041392249805445673879879832241556148595146589230647529410997756721123887198952972346803868651319629019812981316987027214100917420507850180976411095339867570045907793186329168619384342068495008414508177862110411386328905336241418771301525423393600608234662307446309193782485789076289963452718163953427178314047761169969791089666244923530104640411998610760342246157042028425835059860356493077420562458767164368976894824322231327319194828779239431183090550001035460006522007736954902073583076070985846290465891185138201833176125792154021332301755273902901585122495990247734597404307788037463110982251901041914804668207998373662957707995789819789839916914259926369225835045158649429891119759238483806049740901283277098597924169747637214975329643551020950227189064179498462900183964896461920497078708454759446025855955889642023859996403482818255152531198023709039401225660065285527351039279248817634261980252073315739375560509066661289531496397501177547379386208367743090557978023587118943597025201606930468079859307093702667252385982926420059805975897660416582499208625300258926105067688954838963137981715374700801741218572284136007488810780777338342823786854849443924997743190040236306974720724425226967751328718905553223798050414498946473470394257949315944782222035647570844558683694250457031482683007376753888392518617309947704053077414210790347144324431696786194639460557276437745295944981694574416646266239525041166717453644505565812164967990112690987463495895664606378171044844062369246794526412922442115768501054131857590807701223366793094832131652717788342008481141102275027399097315998208068907143170603043561349402286693325516451075796837891776325208092710609451439097465204093605070857578094957050436614785576088958758650444401191583068749136376204160882402405643496427129917390102357631271041778567098443987113316445778275866816393300448338604978921714495154556297599888157875417812353732184624289449749589926282649179911333326757027706643416055632980707378117246656299104249837181200807600607264371849839766118599252648912008109631747200761539510102537026470389836618890608928801327861010866568918033571344321949284204968262543508599571039767714226393751130886848216958738401934258212951925079708939644480708520080460868461036153682604480567955182341013335812816685093118223348729682265811327951489512901255741851182210205506482316777275948248156094595068014467584776830009949282808571871543591183936413758667616669914571655869477372602008284244592378077526760475001488770829095946707640293424336950997227532809196187186141967671157362061114354286001031223230511269410009489592473531867321979693550364719475022282886397111655937024081777042201462728374853374025731220339444104272826678490488902315946356362436148218866660732539254981400967853084538376140903470075367764672364774126359725255543380251532815199982445338812028360788605677136591313053317709491075425341027850590322568292984189230323090518289521067497067346253591332101338667404325235615164576138144080477824093966171645858617916256101438534058835077924496372216012168201735792797821349183540852748587724207267968493739457536466407119940962541342680400110051864055123932409575889536099872635304827866605464380660447318735629214124572288349196774631281364296867720927529445640995910627782924652768044509742451026579270646750278193389437842228672967962583093501399039616048329552184731921227790764627083066695046589754059613330153049770273477450387398744992849839304018666110428075916247309262831630111418212009308921817769797338950985685438022033422582161961941139818305169111298406689266641222696971013333648753034572673114246460414283344639121246771441974110273025461167712052609250689375693212103173936245371995350258537500410743236773903750678389605184347781230529537606909921167890934341836516321893913566939491694219143950938477739069752285918008081321896347461705601769510746915974697580098855143088777907279034364045142311671509758638292780899132103880226579844709626065131535750597154866607870669828972747760189617089367201088152553491409689758209618034447380104304040623764379228756131573629974041021622839944915918263762180221983203688974309014478618386540835165303443762461649260953558915811742445509312138175645944070949898090471543862181699959682205632003266421301533605490740833702995195124461125347166298077916748564868176015454295820983377696484320473735485196068560494055707203959903770541045313628896606956515642307965384873546267015696069977676636528653009860047570673446847239958099436622552456098865136923096353401537286558998107812220529208291463295959890473713953692800609578564069593674661628453404826819658015175279150737758418562505946581483297374230806953155076813875356945521404455913762631819645219729209945460242869330386072400959744755480492262269903658512079578651601765454765521302089801062329703475076583617359392996709380477293492970450496747719366996815382667844972359078719600589118831086080911243504567345957206763523115360006324803285605206000067701060045889593934478444178639180440846508942637988916443563515584420409336271193701106218885327308415639011736186168915094740949393718289151564956162042489625744333043937431085227616685806534280183148171057796543575803125663527804464556440653964030590423242056841708010851064800151894229689436530812315775658261910203060596495863094296165449049003228186621365159770290232077495336726349286702910985704442587061543235904638438928987821225283083200739069498783450390201966395040592263512888503605972821916141847926898146474662825988785669886870933286026956438721049491706934051316844964230181135643906565471855490438073297502301546911426205173177248444073907055635054530588443730049637744077165226781832617391026115894704445860373354777767390425984655923574197037304769970493616505492391769245646165848133319754084627501634666946859575075411668497159021561102332836914676283327170929117076120575962154921129259120360144338401400556243381942780654948160728149111730609301537768907257173295857913635476399462409865723488711909421972610452462741497253822741561873007571767441700277859244136808444429631983398595251495682998496127853867965396947458605007550188288634184714459931137113950649680777731413968481347039609346706766661575751292650832413632957088283438153894941364214513312810594451017719437790330076712075928443294446846809720389402461259258252783350619059773350374009726624106873943968458360439031066235177311317473585890261484302564130048316338876109801155045571480721809741293158871621920964409243827361635571579554551002706860309738342519270003796027148350831412388464634842405450470630676757629116549974451895541037008764345175241202924074708408743198717748630750813594897900108271037559586148138289174020526541885189378887560397280212165367640357865644262381096274639084320232336659607983608085900132877650011266267255499271356962998687928022460280371659181224639522825612955818054566307101606355777692152933106298791376128448100830637436965920962730190551629343170714447263830712781281889628401873864636821123712016533328792295037282590748428205217035800445832347287982393838339402625468540907597955000202773871002342168530878416169080598794215126400515580885328667634649388169529889789124175497349034936861300884538647530943651787235745581841173373249513871316747728470017654482362037306913655154970225291667018954505439883591940411650757168769545934660811328583497530907211311947184463164519201074846371260932104496938152189402242405954170106712607645611204087998259089486692851592111469122989011806591616128241056808636229582654858899128840479766205011741806161449375947843678862081240506520824587262821460428873319211993026790606562867709996142278685716289758874517043637237323648647585824440315954969798333711988676800254548490207012290922298604323364303177138015431402398160327043529256549028855230447679653207057043566788525024300648314433126024176720227847773642806300152208525121654223665306407535816082807345988579844376253434605980290844478498602295818453315466138508250987856025276012578115048738171397432107204556892776656313065741737236769706445426714503705111525757094590943626448307399577783265021570892072815039478989812831383494289736094710836373254954974946278792467514368724210543537207501807578927057126434629696660777041496672714774112479270658701176074718873498587468107516949991477677725452165937039148417713033840020439371126559708401620833104699977470304850010568203032738654415412267044428707919251884259877716463629525880599397455486336875928066794185481684198267956616594271784966491234294952152931656944677244623350836046302583389884243687135991475707682292822471393756001592254800778012822287881979802861797699732492011116313381426146372281529436093332443867586660715317712984928849140212592542752992358815189851808702600997934633242171456863040742102917926910622088740291957580376626889505622656935718966695088485140657266757751175040030674957032154189247531832675703092588948341497952861764190411787558844188082961650500871649179178134512138237203354671649754207174390425650741625041438932436410327119889966823936572484484096396495618334435207876716222337005197750514443314746014738210368568906435783778555728792840624879408252482038275937938532707799154024601878688094850994562333978149701275726983815502227458658080520658073132754617899901226565575968693467082750371264718929502704807637070883263263146894781154265502155310785827321905004408306039540080580262530285010408606807615358649454014842937838202461100899059760595321932596286287153007054371938008634146325227447315010116158096643801782293107972396336409557262561499531889281701753401753534563496395340242046189783619307761101814986953468643411456449563787090930132065640307161226240994906026169890529802252409322035779423255306949954148036687416544926937872916375466346036404038944478266205287961408448016128297091558629457563239859959689020810850933390349788462346193684454230373189349044195767255842156734349919538534155109831033245824605825464579270741553389736291801383562482813651774070847032862881621589920882118254329496580456726089638762507062723529046286339560758077879543429487328637671263120916672711900618888510903263233977555734566000273506144714844095446963911692728851901748199453288738022996536146639138856747943314223891133976354290915548156240392755318158008737557727437789895840832955427447736202388772477837824864001842146471876984869385890861578742883630986071013985479869957220834512554864885437767716799296331657260984159467889163744926091247019086448392794448819624736416147334916633470942510460470033057806226732211283658929563261278747040553519345528086713998162906105419746030729633616346288097181922055792387426446446374176212232421353228147739481739132971953167363710387658554544074198537582456167087457353812384498284953540032701443655881281732354906636482616547216114473671949533285317494208366803403407779577183876778483213699624112126740623098835159624833079037836025135856404369154901316217774291789623488892148864055927547338891042445981015460948903297066277361216857810503196400555152560023823741170218463128753387307464709362481209813863964086398520308639265434238230225818792221357935632061602199088034489108631177183303044781571304531198757220326437072551857985999267818264715773113965148212876446272698106508381212621336875152697540629655244761078479889206944986479473079486089095414180506306291816229529644281121667824811752167363290626119064721952216661957083604301274630490451130642744085860327729347162310869124180636525240803705043083750946300589225313225542607025036402042081766578424666347828561962248292489514144606777511347726296327631670280574946852328980835930826081753968691546223210176742122543439241139520290079000207410541889763787975564602431075329305152404156253577944504292803957470382704201260507097922928422793507247924287657915608552983907652257482677631206061437725165659711896168884663091714934097403541831866028406745071553866207256100010530742148496978271566030130757192098411461667991242204469727052481304244066376447223359320942059618249868762008753651924186363698949743279840166005881276919510504826439357516246398565036967843326808186591902641118975037012566305123488867314872881992026685304269281606715052479181199534081568549141104365584909048745530194271595087151563956717553041308974881229637025048563872412512884609601700509749216770871862643170299061294131403873511533910891118948982611089723627486102598943913828967930583389791181197640930773754574045863915384995330488866962318845842991828237058837909050057865575893880608565406163235924950546290894324795338323399969972205274977154056951334119324946625483888244002101109083921639533019538184928303527942049604926805191155822356152579325244631041230005708405265604807706727217394071984067636725587294957167541331809270385706331175410352687196426171577723240592782070517852581794169676024987023915271138414385744609258583458851804737061368072209100206443796574128403349396843301943763969101906960742656350456985798833151708050654415395688858581835480682207386296382445421330669583617953157183613827942593243970072039491737531752464992614942945914240657359180757573173846327099534608726242773719055357165941389814531329698242384064092895603404588705749134359566980853185771157860182069160920348427017265808546773546629174555776305741551651591029421289796896060872872769702251191591622334119702186723515859062070498989534268389048508646255675600806820318414710969887551544465876470618694587005138606181924355247714931739962734446218475884518100244940000135767606045367764790499754238009582547750990328088590001486410615989613932443516316581104390211610664868971408118392187318257251707963199591797131482688631128286709211693152818047592888671759531661607636291010730157055676235826971303620485195143043302553226054256268187357769895527956953056320361208815256222781680308942108101530570755051712851744332715097566344379437057070569818835315572573804246540672541751288933411266717697485287394344121153136526907194716895022604095746614331022287233194220384106124337816757322900327401919919562237263525539707742306694404757283100739084459849238344502171498853224674699569871098451895700005616761238703053440958039883647277696639710856195339105389838197108310384406410715395128131447369857456309234460905275707606857573637114691153953940654138901914077462047167444264379493089760219009986182842922209637711194376160548671097105324180499491385376528088251577332028154556573893217064909308792523239452564244408765057792777065993146018092598523645710789130978821066671720775217501481471428566268425813059533961432782789578558531727057179713198139168829319434485654727491784868035610804436678304820817319488717230266044067394258762650814962507168108746529320960157016764624998462737306821834451966829394547729241069856468297864356257964689369641001380585971015011620146241125432171726508068919705172804829348386131527131080472390179364293527364109146519512835243271297075696806562221857794433695143331530041086995367190089780728704657486781262212926445311474520689720866835525724225873059038688865650218667769404816139984361893065476029529121545768013423594187169432229475226838211280359129528529904983636661296386005373207967203543735968002553027235808977744094723007838049170653048205914813089493046934775178789094185280916929641132627493617819778224964604070065124293006533181922299611449298126825240851598208467494303756642389160064060427213945988718504419654138735566558315045746539654094245783202284729894443747572742631148231949937637391416644389101144031087921009079534897070161440419440804266837764019580686240780037833499653674904764271062094942444405084036110245858577642056981628695415429834328830541669566222329933228719599432120239306941099795555627250112904031925741829327055510585979566544594249246434853605594415586128522403739801762331307405341189121930094999814243246137865227793042311978021026604507101530047767470826580898418405729286505625052938891511226442476038580280037665477445798852165713327443743912472227333338006762185887729837578042038027560779808255009993856264502055392532321383406175918444387576518630524016607014570704672769974695157894408488365207611594007718730794549448252223980238747432885827801774461204650878186947680713788621705990401131229115429582558033788946071712715998738834512523271728608970046607536845511820409325065205254679913391833628611827227242286652052195479249714110975161728201228720482112986325388936787044403628357318027507245539279883602136659365975386544588669020738294683733610519729064156014374408619898772291142779983174652534060611063660224216352617743281986777780106512222961312130490467474377912405880798987087566691078391415581061685251897567099322427261441749365963039679093412024386666819148687190519311941394637650224110977788531213276462353411644851231012624016531351483675641493246656817174517833686518743954947755684110959484597591591673371727677920870742586261739719926047590497396382011971865830488074064198869768981363462040576245504199754508089323376098963826910526668843019502488520571152808469505282732401987119014944122076774453635884252981442995270196471561054089608145003610827834787050925595090293230727630293580604697094271360906522190777390669482434817689569083656980518838602530549791697207392759184716597574897599446635926619201851377316892818565839277536470342745220544571678595081154724945677221234648476100831915704001027597587523461512109891312404974168483805887661726969032716324301492778214673093061949983466721868511072293654346614755927705794977204316440825333903798618343586035015835932346179565580807498266740886088051853841881272127756558015470891824239461975329323208736611549649401526797740314683065810746046412498883505762038848088631796877680638533107970055527245278721818629263210906774838142637636907955159927287118016506765965797338056119076148232962129714968662124095971262374876936292498397758053199910773302496026212914984622194757617830406351543796124284304916126625813507811513056415417366399999125143693788775939324988981019339455637162510009415452843844734720002052971728937979311572243320990996492687590034831903382869093936162472225986258896252352206785353337782076355864011346959224562928687858792893126457703249634535430340864631721139197228885959733106472372343778628043287961345549403896580583704837481909621257372748931158288619638597820632938838045259816300698589563150256733726818690789356101971937506018564665740453150714824788149781729199612316675201383026036132383449152636125823658436026660113247178428814162665694167545443388404249735096734678060904846613005024430810735658366283458380124426494938669038531828534821722157889832308913160281740522560124636103743846684022884266871776982832117090904273120799410361783705067948019718516278460959465621989207585175330786941276666689830335265531951908440860442037224175015623139307028739929362384200111740966276660934475146563198887410687352529672527125727836883157702968283900908216566723249013649897252348517413221852012462906938931569020612366798241933384607612261193107653038075685087211504680171852359507781287762438658873223369627687952498829889048651835549655884018757307194127086901967596404408727168024522620854174562708296262560035880289108542502023582089351171227409605926918931093074368470209333777392411035893027501186533023012117965174517206810984654338287551752184072956060259139581162792226260828308542457236575588317242722143673937192298383502996944564333130968137849131799418986814534486214119806903611242534529078985315446725133533879816877720005554111145075794833052502606634924163156540695301615669569668851920017223758676413429779613722043058398394912554751446305370971946189378215759209936953791244358602158683751834303315876515055165518357535730535397569871032811643229238308902746067676300118053746684489192649598456169644971392483950199824344377562766061837774674648811573869928275895900263605939861964921286955410004461211302306647404169040150038647183450180573719550009218901709007464879453591388583809508354461953895102931766016035651682372357655168208428083777644782600979809301483419547220507544627371771905585458617173828733944778460304791085462526495841584228824779561493248393527938786903839290207181543883338013046700769228880301381740246408723601465616584987347826941305541878650497513218698766716749278306100639720362073025554599232611347160463335450046874550606254674783027804290671806725427115047990658776601108582641381523752191938330972473897339858081035023193638076847528647592447878616134715537955830494809787477176869977518424291781928687233552412867659110023787420261221726072192975158036505966164969996900445119673832028568480645797421911078411967323535662010229722925003762644209491927673365177467267638351383089759610907220084827429756375197581623830552502453016222165919238355232537240964952565241430234444642562586932965712304347663599076992650248613341071954246913881855873863588345395943549722417415856335955570475207228216109984876930522848815919751003576517703307992898410117367305368328542620926922546043378459735957435781152409690809189146141713794678848612345752028596171098147387110241266501912356716836562537449331005261207602188949372040021249209418634806083031352290064377673979046348916592845500460753063044248294033290281924994165782164293778969990229294281092371896420822107225187157486499331957282611033134007555773923406976091697214044465295084118828476895539101076000402411788584384744265947411845823985134114159869872310950365648497819872997953524240017125172868346965281367353545887134458527323147690803837317235525655963080581872687621578954032657604312782180750148123254570104953143640647507158338429323739322748736649313628056314522152310216310230589364647499684913170087067733109217460591120314468892182497432875802570309975361030625870726484539001174876164648766911154897236080361251331980779380997033023761200290316272830629610207495004945617107820225515023786096684285467879934803874863937821340271375529003877545190329610599341446774102815527974080181978540633040290666886237896740573670693299017403724493671798741190239305915408889253177143198288181399296309986835471493030254814320594227411248961889925815404226584925417366634856793670526160122067509158583397102816978091101246726940671547783517114793764370150731799851534151400734696049068632827221265477933330662486217903222035073044083985298392714869365581072866102641923395491170089726420960370615603934474393045389476546737831314898801762492877246433288460546431585821044371880014386329253193717187869375103982075392360129731160565898866782294689962678005686033001448516188705248523249449256247058997433917908149527237198522000262023195942787593536684456879125715174337224666939288859083765084542521846523397698493476896291487075008765355068376654678829451457623987084123700786677411070515265760570334506724097608506739705188943758623839354357179510052953468460737878495462866767257148303339520229554466028068505672551535547814580102674796707270657970744861147304856999469658537570688949278239461085009628639546452417336251684001993616315963498465062869617207040286964110625619997302820657621374963882250950341788487079328330134911367381033177557895186652139385549501461143516891662468166575336148355382107989424864082361067543222005565958147660050560489388474027809462078097228962954586317081337530759585850641980373028281636243148985860385945984650973584764076167998541694926601273646252854988790042596987369966795331736643518943716092385701192928478917383573720232861404666453774832938216313223786318831572925290642259794154319381201065814513893215835494938903682465088766995119908529848911812372182987931404813586515257743192160999506983456754487647930634240968232126152633988368637102898684009465227196069818910984985685053058960774204175857288148550962321225248589250677687916083342816770500058224992965939592228717065652022347386750756719031170661875906376429965943423147732017481246581465861965446923396486323463420020444206055741019308770845461024197306812152201184377241650961987265292818371449615083182263836947095902748306083544708941146792037728107195680009425480153640859004104061955081898461520787040368374742744318559518909524982842764824780620930196881832187878983495334754802984383135113170323134929782454696856299556925283879611104476447179552951156240428302600676345518240805954775624617675151087759849589571390820267203949708884322996995767996505630149786033863218467739303493241971368684706712852295505961295847714209566192474197818889132126825374439131313853602126812064520238257138364614528245963671716049492437410173356364694320815511517615264700679954045814523865910100794368449131531174726780710405541078246612741091981311666630527992160478141416551784672816296310479423320411410588898517774330822491888798630750683436801256093015064594019488818333031431235539829417447872981364195307799732203568471188452822989644860440551031806004286399719575319592175438539906700093913879098836471263494139492273455391742593556525693300515746531998441920031354797645303576691438162365657643566536383004462773176662913825226078674919828125393297584182091718927340381942697579757921296798128904230768821524486326711396988659551512445833366325486935449064801331093862719796018303918499424759611778958557979460742328341336884447681613588284063892360018774357661678704262695789057594226289180476463047713795694273904720270061761602848205414669556978548289448895091504834885790018549569538453611164772200442296237816710863462384820062955276292531307741470154070074785571987783316846000330701634264063902884373037987019325029555358918623869970697858732068427819088414775933844025884672243665576127806035952029421654584819108942152534377284987861145564035019070072533406132175184456541821865821817689040765753138330737737881853781272539421030036669915102303318916727393121379026691119966538604537193256461792489098653543070614208482173002350736485867431077564355656979176897507197921897410582017344974950194149901799563655306464142013526315918933057503682907805985991354458533649427604790980872595801811088064570068091603248252676033034360216571598469391213670628636055070613993280593556081120308232409790571397783251605880626652219050346480160813138398802619024055785750901485516508724343737870772466352334951612479565347912143517931325471790083473531420649932421557804662070887192205282982146031881278224864866475425599737134752443250233651406250062430752022601231003831366245354275751890779365123614585998513211197245978331831339103719048179112791358369300621386272345617197472407837006507554615925657878961485115715943368987412762933667312343232534118058119605369299418451692111271454669616550680410963776530020478445720617816998345314419417061715129042311254723806996563933601111214948347746349222179778663131465617278468456180034645598500473614760592797708409511639390640570922239321108772829649603938756183772267790807683442472582821947544609542910895426600681653434731804170810574942908750864197106607413459208050318739510925576516214767048873031051350282311369426371602945381329623347770773712744339371795843347901306097242903400983554777496996996946199374150447832488464033058727774910226898618000257671150643381411653355550890485033194208509563764289693063410983890012340311115284625465112884286465070483253738683460320538744132507983607743620381119150665825062697128708237587944289983925347312260896357513407426268171083062909869013620727772736358465864313659801925571997130190249271311219544842316779901147721049022886238204179296014829404429920798206135426670784435250157548583011263068474203430566838095427791413110077027943413343004214213618557015090475327973705500029943222072041785673490824479040480355185076795100194456262985001403060238018855798440692655464741366984374326257124116332154639073534440359286086808790539049381952219229302567961201567659483912288603066482161369192370854635609351761504190488687182894137157707227307965176958917882580391185143001383348718501052352791319750851481614870571969445630272311378172234846264809775318674865533819522194561814187593713343228693208511822852667641235898172360000685420329814660057337666625824031024825566204073568600629273019862762786780949297730130372225641882046225566587559519562947619838797345505795167552910583442295127275898964528936347683986300631268698490090487646894242527162046862981955602741144389692944091635799962544091630497289137759870437822086422541982447813436051652728600546774735206814584475177101926236641444309940209140155112630525470276910345971021898766878508126630605775821462697162427865703082973889868309679666567886940206805456687419804759279778163500138594013760265363332676285298543280242581733848677415515393191030148213732553636023527922318312310616463038547021462278400225624752481951454039608894128650243600660588679242994059160423918810669499395187854738271189019559318485824499411779492631601552512663361006164582111460981908336497392409696658337329518619602653357415143354867096469098557772347624113177083755787549839185338163639911494123177935889262655236579071425305708905061218896510994684563064144162557411258877528014745609850416421011548185211122773357880018609073748156213798244982708891662843961208910998619029199556149665396459560424803015277031489912656625547162085582788684209232880581179437159791078696675864078127650444611818775655746366150077541384958985967760622280224010714676255277048889354524299117744354548960282304490170818601090074896929689345745159197000422971222656741057922549615923917095152008349061548799316968461516059123415932473846748372687306602755911527992035379024884906694468074969829024071656958578585743832426144371081418975746756612461943214200617836500156134404072206172561362287934698157686491616646634727107330802341350474556887396959380006591641121752864661927740661864265505521000751364484753345916593378297648618780055294470281302756450867124182852465910932566745242999033097786856972923489085479994857348826155452956436716579574983022940924784257102225140219110151824369035184266560946862088084874456042522703587375052191408984931828660211504572038532730172945362907658067866422905519864687657792828890012880295490537029632791474425706513722245791030562547791482966733455013623418576278882663333051082473247588117181007135338889017215806141251465156814636275963986563476822768564184444092326506122079834579848697575658118740487448157581844398049378393030124524161808281881442851877568928943919154958258918932829945311658604482158682613866161857743217445705077206273560350885852241426071446226287299498602560097023779381797033634447533493618603027442451469677865444722173094909263270737750109990992467076010170547503600605789616918780735158365008883869078007371021603909542123237396759713545841367271412628340898317947785813114831115005708052881785653179938860830457622292314689222684360024247977049979885165962831954905729946007291893450485324980211247058187302335126783953659924690207979684937122605871383551051930934674468680034781735877348882861117526091565737044692671138233212562575861614203530118044479679951928976013648309861283137098766727951346099062817779423624696483570238882578750391463092290967727098994215442695839490542116707642933287832467534653827930507537601191711675769102629836736715894152315952841994891421301059295424460946839958653030270779362538587733386054821853408054365660772035987463412839554028073283197011444890559129707639854867816930357296135182009993740679654168660689329252034211916632612004826605124123528498451278531912751280664866942774083697749471286107876092836387150666235760940412890656221610921859406524373376127173393318821963352236724065613084934545503986322134543735476181213001651284859833658991171085786396606111451538032539666579314181604267253619322266922413146298494340188418864753291450904601381458657430179033532908665873471070473717010444187562045151776421968822189381264726014503352748138911208536270187546809777217923224394189605108326820789527129880490623276697631198569084968816850410967726927201815501048768848501998365101568512858654410213385358533017250107717688372569007133946132284068345065994663729062207290607641014686197812678076275753841255665930299676292285984981467486392628245452502632878146747443347639901147239996790329933908098790689593305389550448511181932691204198880767322706853931614823510526995556475778513531735419125593555041596436969449366301999181168621498751973225110472688987504808748528314243946195749298639383248644686964191436232354770963990992649934630558435591576939282616253209360100552788816024240230234460322570663949202347180682642351731608977246417235583494293029138081376541193200357110392947611318378022494051906171684317326501524846628482964588832601130530762995382067454869300107887166847090316547124679215906075648417921277879143429784063574485466196010900745767378422121274549925777616123914413265665959178743473129923121846849475875237029318687220130367983235829841506059498050971993706550263498326965143151444245781497592689227227389053523816086651719844067959752576144647348452296579516019963089962924759686311281800086967644911645629603294422650304233017516503209961020628499838913653071033209645881758357387166127251712178993082012008314115727771482243330951039271044426800481731344160064975227150370254618512570965525837677806574317208397794440160502313052240033066393574918059913016973100694550348615740329280567202368991441936834949746710610963666473441222929197982583583337031965291173856683395737904127884019322054838935076480999391847456720761928893937839008346584673655637655163678708947855323916597785037221467656975144095832553363492065317184872078929383385910160231418598683243590396342450474083745182662337993633949929465153239082563178546984257002987629570478301886132337495765375052184197824806508320107650275565657271141948235068841738215733556797849354768467547786782618111323320446938229358211862961699021440041827178190823907509086083991089347620589461321482844616808271043289663091034373538700366346512786994557761947002359777725086487143050814350271327599362654181702395807056032949963902311997352761163016679246059998954236020640459383662033141800040881546920472110037032357525933653244952353482583042018066690075543708192477778998014524291578133545581329460695429976143037938068229436171008404148404544212184913524601462059556227670036101931777966707541737483551022431299479971571975653224134891168827323029826866840708441263803417892556866209489100084510354984654435386393126249741675186059465854529265518061368211073957509172009842045431869526474653885217286986147340713123597662373342170835903852068056814334452850552938893761342922066116646958115950444611528724745273382506934326766497522843845764597795663121215292737138346695420068999818717393227254241705413414762513951399974309257448342768019092996611647692546389507617126626396583717266629370445333607933914991028623026560328083222490503707461185308151621070767441243561178093871221069625857369708429475353333578016948136851830346336287717848575336706541178251964313117855650065682497668029673507565614716726610704469793817557688567076360620329106452804943132334050203233660145503805548055909982137021805910096240109282258731780178240104197075549533875323582269749024806478126098948634735634176487351454485758180607747665911715604244477453488249223743229799438543129902460220325944785858374944141336655511783321986893124319327618713729912545522188703049035086754542071582013799580053812192335450104431422434477859286923252813363813099655367073673858749334505799571885197840839088917895492838632530735850590463821315988338312886730302816809844221307293882118392943934997057956062885260224251422121763829448838134103664836679391385650729735909861326365042352789939773147929368960951842333721693674382971775874903239812546964734659822973917015079786891519780085168143329988924528014141248309221384721140502153890512074189894352392966045014435819315564427713090587681172149652159838801800674274486849457002182517255751132576738338681868997550414843682971270823408341210340178066582903970194842420171790313616996880949026960548054839303627294625802319948694995889084020315287111891523454542772251698613732474335299138283293134704826788564244242641264521298315235216940562305117338472409922684189553234045400117224597479696284083549963094218003626355770324875870603259488575506291345131973140784584532262175735308009250647051206918810568198624131961939438792668253978830373296131422769189079291024870929199126669849005979733245224847720091060199003333723186955386332425999505668753305441021449612423506215766573322026808626547855474391790058752035683221794069567341983204521917450273844704912879905390589593285409322960682944261822800978341856819251012255668760049703851950272153531046581595100478482576074605820358099462097580015802057919603918900169254590443440679570139602508058893322122605504687948589433554052585715107246539263213471699149912645366424746195528900316716428654801444026675893289449628818250947587431260291251162508232756732942559319034302019692189891877249084083520434151442424619925390206894391574765790089647460759183783671270523932915651354017416146271059819105309390995251139394872622361232119289708643916811450193591055680337551657080401899742558546281687874650415645344863099025672586164775892893806214801687601402258797050337723930849599875204450449545117523023553029049742043083239400451404120962765807198349710949274616831334130224903137653827998459087151416514016138829908548345919253392814572772076544607229446886761332316782288464527437915067919530334075466691550532948693354990155610420995688976765420492631363810752777898145133873575721856767258834327933017954000669933624541218444251127865309671493423597143776225491788883469349377112870776258322883068888371094507919975350667202620558215802310391006286111134050634044142350946155229604381112174215282593880913041890321853527206354272337864176459696575067929546843400404521650861517120856503700246379994978077599073641299631706811646205885003750026687271939033096271718682494957343334941669127864079266534688631394778692894673337311472769933756321155959564687844138248908944775135409985218392899797767199929451840814730786548821276905230991249450964609929697050749203792966592256086486293301838474345228468174943145268227906316251617705205315180001833291486066303247941671671536368635824691126241098463867965887350192715125740655626799046100095593990320486240054346782487135044850910300069140688254856165627866033197679647016894059751333289332290076167195976977474657363578890817095752231191311055761890402783095539056930600099918530124319080779712600942998296064428417747764159529519874672174036786487529640361633935099288762594826580351053188739535711610467207124194571691612800649447264607912855367330654960138303109302652544433426429444040187229214617260626581054861094169303995357032509771942339018471364401854299608672697677550536579725043098742103535301946936310128528712789219446021862315119057447510678086168699789669242637923002726079342854653258377374391256822510183694603998907102133024881611527286315311099570773854701124122374414273531641170653384317697780637342826871271790390510091453886514362793331439097121189719885642021804503683681338856806065093196878140332198687854518281297837576101112080735012170091046435082801816204849536873339162653149215376352655191348470556215672774662192598276967648368324034331758259741745851663192438357085708719703902735459437268664327803709111768750988401606696635608544452440291857689877764970952556315266002788706946438781611186542459237457911111998771413313256408671421540557553298146071444573464205823330709750251678138724237099708081458211837352318478203209343654316204361980553626660771247399095174737429718920252541583539180992869794033184027348063820486855562400237060561491553831537521078129851741258301486675912289882575606585553923034183735401136608242556006184206106033266898647803454926637778388294002461981472075517133179643783056208697824946050480824466834536602960788501615338169951848778166498537853658285427564129794873376640142092133395069331799433703238133979656395288040216363588199126022852125410292146495488442720612383612147542898753904590786399470143399493553311631493311327901444766786628352634010903752228566100567482286666562211787232439612213571444521823494857295059107968822864209945217312424362103423584938324503003410761734729834946693155949695855077238897794424327785145697423608076935238271478859660242754676121768290563109446286814165837313019117385722849871116291165010113333508630505322995314361336403020322411765434206724288117171220337675531579382048858306364885380296545941133305457916520657062690219292255590779944541033099047550215500815312852491385140105123553464491983302054603714829875619348188608294148847476680656575150957894803266355038690208761939955143058286880828556184306756500627410343769118716850475823426464216862319577961754353038881814984251768480100358097177431440717647256037144482863112888299340834225157832473153454477846091012281018738422859733506530683274842557634630761716271180437734740769346248940979748526194220850987330298605666788823836782167270314812292798662303774918444984065022072811901944173784893087636397663922908285514980219499604185672024018926239093062669847581127804957180373238617909131143299874426508563921525884667633151850853851728570040061039838183225431505373218240785929267990192975740715519714722104789173700612229065910053344549030809959551253465803911828595959933028363407438283930039849426238227730343134258049381194424112534432190388883935134775180163678352882555445728346044822032651889594647790937696738602608128714599200033614885526928198750261548836478869533118942455541082999277337766554185796873141621556469504905403762514492324161845192877584788212359086935705905624455654440595156712220728740471584052622832145860622197306331544699628668681465893342125747141122075703784809163974732819734396853403188377253870062817717259758883054064091584697829296425943086718622141632873525161890994410627137537661904366457053624802712588144161697943354597369964347965010265395846770121580354409602515806927087464769498909599350152975580294639047734970586786149775334412933150680109273301965009948968450186631828345790973318853919742956693568305254802421395499762311811711998140761115356429887487917097224796321292192757449139296527418170458528829532715581125887469734670392324813644388610137323918204594915005677182342312166565904922662692589149912804725137842199308596766548152417696914684780200216371515254014381133939430151334667558226370005573485511391577354725970860157284486563577219823065160352267011587302445865305015232443328410217569092679535435054340934479682184839471741608420601771870633689498344531139367562580944122121133848434628816486599142520451018222734722354156356416200816242038401073525603140971160653766040945402509012100678251535956092348368091859068092320908588107033002453310910288551793598759420389156321441958446380426803037244339771462913228952703710170408112792484606898211232129531576574722117427388277463256701847724341967391873583847966141443614920102263576523368522232475500784337060037043053227566373336363507618460689236614166074223286155749736850189530425088816150574479260694280612117268505268399372298135246353251481371330472507330515034183357829031662598666505779428277384269678197274000010161310993921139912409234016553507429923054618578949415383104012521339460941066362033020024452466107051083679855675771082154028960316837213594569402241284177722008588521887290767814798653816567597449325184998481737793767768998510182410460345556904828705295060157969045379767066566357360782349039968093350134154072931662641504558495805545163039929435852978329362044688577498077820625159685358312086593170947410341621205832602786296563769770324112240122908986956168374923838348136852823861164636983968064722905364866255848349824313275610368120100178070114098799180314898183552047680765519296758859673354338591997185166166478916306212320723199236168120575385121245048991339417297991557947925639935324028144520630126954753065987358150980489113816444512923487257191167018894943813538811744157131384864755989210175427880012290954710785641228164329422101201471933497188904861797388056786557641849401521417283198745179637460044320136835530346281240862929527372186721281418723079228481416530654276986554972152038690148073657915254526349397020002380044183240298398347746144484887811197651167602373153881836063954758243735370809303122791256371260889237689223621227107926375551261270899163985534590861380322147644324706679165296106038804643010475762839818877850700084050232059196945504763265591343020635975002159181106733056526041946676954844353756782829970955370255840227124201491304805334718768137932605718032902783812072499792147505974915671055498465632931126484294155412303491959916007743502231090480987096219597810729873880808710065060657313262600581098327096712432538624590195023739981714938988946651021815819533319971614043105807409108675166056637609406042736538210755909354053070424015109200095437023639577299798860025700378098578145709933595305104387246355639102333116783931315575931660733199111776046692374561287904178333658794735227380294699388191360790938271701003688308159991840355375461464076509051032256805045450238460537334992676760981412966920469656945568206150574685709864574031426317143973985318927105582286226185969976273616940609976055622441776743492733816870665572913893249320787034075551288379736689075915441597257730034678778201701261135066032739450362045087967203769400134614003751257423665586930311769375337746987043097136903446009674043327319296417867681813444293484022564164938109054802010538889652669020341950495629964402261779569825435909240570944291590971166656303104505458803316401033906807417186409818100613116734264156046290445220244670573286314847009608982386617817930463388821659208876181479248087710193505287461510456638187925949013712388957538777665224616943002035476622565361898507481932634659384992064990558847956518589317029405529353869013985575532017385115695862262211554945781911844828551425235351475250348380661724155459264253730793111318576864910481010321551150682826891000552057128657302949074435269865482233322202901845282956163496447411030553899197990627542544890928052140712327104451370350959914025689944518505814302240388200877631368028091198787411793680691924475092630581503580774653496283051136192946942416117104256494312344864801977963166771627797253746208670001659085251690170488918297330168749622295576796093988237246247979466503916923099092819835316205775179681116875460093523279289787114733082374897429284057878346348681695748986145533543625390649160664036755479308060794041684669693492648209871474408031783305832375347880245734978252409675221926842610247994571019215449971009480871753928110108945761667248473352597337696827717738907039108617352274298583119126549935647062462284344652859337224633005143136759725619514945633868678909300589408286411785800333134840593049532194127375190058643414627543583627855254930051894014980215514480879179718358918916229036591561146300027091879631968731496608881880824782718055834561396698273473597588211999158573489821285658793962691939246393208232100936339075839965155733087619340268043350636073035366370929591760773528731490690861515870534830483636321536295430959434989560194413235627237080245165735422635747376944212722782552181202886646131198701124102671022004814534395682674002117772046894639538476439076020735144117409131035889570985698503712747947297808249813759549174530629791529981376960195438418418193231132000205128068012232258974989815642852515566772333055814380571594207857188934026705087104321156169501263827802466144394064530529775407420040418266789418432651411505261824558214382538497609481611119518285777842072256390861024277555823185318687697245112215979191531833911705044708115210374964650286674456794625023939846057507448068632572059375036570430870733402837257958258194030414018989804132193235426391230418488634037031459633455861568430966755823071700054999287362707538630857624874167600696132976973826785405963844713817770235795524865958502401517938984302568374487542185386165149046429887731478483207888241857243554106011359741680982158187000447299412594704647883274629419716211116305518813920664587066129104194616488077719495823158776346588415949263222585067683082462788924803565641854171839024314052062047799081814197937897204289225806462011913924693798477276829176738211993313660690434095998817926096442686647553760831267421690206484017776692620399403151867197479631971885031017537659832646733232475326423817664178400171932389545476374886568075591842019144896252436795435189956240511227776930377270221203514699911165985626309583310216498521744348319442773628478504764632097999983961812099660316903291554530665514909611430266455988800874679060244098367406819677019965483686131254195025843468687727917940756601173433676369522051701344767633383905631270686701411867491943689260238073686143786903257222966275371372428355349147246719068746795088133361636227467297060591844540379652586119561071444258295281456116733184156154999173063833323562993437754253358217603963418811858392289419367699728513253392944227181825046776523576627432506284122390190747782288528016208807074942106065204499639142575444705168185116749271761609160148202207737431281233840662371828376811667504153751316721433202862755651783317835457526507300066366857338468446207003504906357387027710136790057646358597037770988518189684828793650048530942801479889180016962770590041263451513378909492429084927007036792624960016840332764536541613477425749549896971604188816992908471396545715911835953713611846448720599335742559854826797179575838356365417538452660185200767046266484424199525427087621634146178350359530320584118196146677631273059019256600868854433115068811310388337286779427364312282590041738333154053595390332893120137197752560229361205024417772434977558511227115038924605726798799745070441304983212506337290183404011464934483663790131316810951952624889404018670325436520264356652818412160914403015969557212723159324369712551096558844573309262268052790307157040761314256815070387038877040781673143778863493668968580450054289212904684720374526187569485302654046975367910927564522472365541765110590478073165258888386869163458515293994184840325903139767709165963829971144813903187750147676876607398065753424758651937133609990598970044076071656415869743263818335521351825802169737687799638630633156984986475454479973564669393223027864703444765487814348092605223335437900270652518404355094586542650052379994103400164444870386342606379792858271726584809176727562478269535352174036298684215916220943197846073315482039990321185974315841134081242474425558694475110103541452308950236616696432796697147947388068017402672116058480967729674010326058897261661022522453691729585334505186763983097276866887019366135160740758810195835276690098266795102595216989906582648132416873552229159087147393768981697657340367880831531939417363843158197540965203995907061732657726635121054211636860788847248028305273425461675766443884437467653595360572928282343569993601687177944711533735828826899636948461174402833541573653090365470451141484099552925678673487112785176107246498023490103915086899309743047256118551776891746493500014419947509406612824594941082095513166460407464586444191044056492406973754472189139582387868403758726412070539816784739598293643648411024944252777467410732062250193836716577201756665940653063174055561294118126567977099830311064172755743239442457206477433236930073814193729496835165513149239155660950125372690638641735864731094402721213547103197691223773046772884034163193712874368917315210444094368984472331226975115512542284881844640271753267181092898485808956223066203693605273649310913304243764219903510924222348019767339343983508506260435120373137676279148521934413832759132560927809999975678367196643942944433173629859234261002951440281282454092100326306466572354693607677271794799131338261573350504503446195820250826951160181241714360523864391865611804905815680966083638916802199499402637780609400660013255249900008431890070333571348152439802704238246875965727901074171860237666017106205597076070057964809349013715949869946620808566368343353421070330901262752463447390598399028385292674345750527393464992743430439003234049448927399082317330563062269782174762647422643706965771179513415845913175653274826423749898010586151108032727807910283376841420149317011967899941748625745732437419891668797751790138309011500306532042364160617924721759337273264864846366371607403955951864893152618931123972515677600771644995152241323266492614528432532527111413216654730120672263141791480672657690029543123865274899222940282968140057984707883043097966127268589632055938256786140424848937623326163530325921621854736418864292355603964003392769491127435804801989162084147603550469727659884108112887299957767599058729426750067548451539255449194065464817688697288773365462571593452658975070149894135420240294661712334292941177393215433191431869504238169539928207951190898450087123042296317836559660659152612958810804415025956271929654071130660444092939191770647892336603012952663352956827481393650676913632416338312418455147182268713432150304156219280965175573183831568522556297648010744416595662605154800528412387081211146262294092205976683913065953968175218890605392175901164608933540588654997901698536084326970668316804528812694544755761545828154527670531435189431456006917452797306319604864983272461108026449373327210939431389891082078823314663042038755574301681067613314539445634547776270126704605572367858347027444633652591523550966514809516161791660520461678772462451644007097426618137668095491123184230063793779801969291572509593007201903303709418175037263232935193934028104360607565420404530030709615066630323868811084466012201401738416582258549524066653886563231429582461813666062881059382055233555286944604165263488567464379906184569056523978728799974977602208014119239661701051469633338786886268821095426306012136963151596703586054381974023116810894075281665463203883363376330211733674048143328218127696513244842067981974561154046684205244072766600968752563846902736778281274626214557512616033051685419261442284221801496370878896960154108692712671740076747937558845432450013831198792130930805265984295929712607995631120947305184686943251547292028141605520657343022582463027281792386278644039500696287258458173001191671783453754176124826732545186324642969070940547118598714693044252099358933593673288700127265724550376143457814848848284462496749599146974706965254184674532983442128960618518226746499437006659795440112830147086334768727104740531315600432426168348802801093213839937274791302339071989770625263754115058873039493468342136874109218825927480080471147285165571739812922066147945349037759494801796080022902593203247225155301004554047675148512296671746350071163620618925403145776380453962933808239939533387153764925682113569191805903895782857859793839431202715355723294490736720739168898651374220385804241004436375610193687443625623468081019327607601060226364364876099269789329002346936293083886524012775422700542674333981825438245393198154893764471734627927418644481778398337186803018807314687875857443649707486520547920372934486222435820388332452494840922194292288601526000225465084100925390449268814286564562365968771397033940028858970903661416542401620349806674149031019940343118366132955078071977999333912987630855079326859965218370368090185507706729093346183914504867280484392604085648266618344919772721521663770659795325003158083112859620078866543324952591814894857092903822472971202101203086712777182425317561481953333633678351153600619531406108095922214750693853474663068823434829927825349155983443190731350339745727589174066603593469990240721496692570590224478234893346387362602969725654402769634961930874918559284128837066829900496521726053921341751085717361221763172476559653307981757624277838279894810857810248085952016930760958339594766105581816446976771324245277720997761332129245488768818845612479523263967708397569945365784130055905873284176084860030787654509784567200643663315475193827979961939891113719418969657812957842371638922078019419477772998192436972972023422682147853339635873759722109593020628229606172990298831290667558126407629369132870940805974759108952511468313162521107065772625054573998288357095012711777440174756660352930785450292723249274893176968730673357059531056767690587433257033148895945516627222289675253794984471780342764087216921629929248968393922810248635780268156608469754961017302346318409295422893010661854035751894278927883757011218141167041539666561063376083269521313659209914748703162423389664512484441162978540430400826353288902211783708450863992489145742879442361314705971452082646320213575884629425703549396032134239594344558102485355256678498510150707041558855406612573497180371873666442290050706890741710452619317389251947373177437637775981797543747538506096424877452852307651599519008542449033041842642154275175211476730784967102870533872029178577857328850945915257534348563871712439139453612048039573355150973375007348045321796042735525746490905028077598179536035632903639907577238736597080631377496433000133025078744926708412728578573583438954562358353621445193344875492563583159142935223444013443727850402773666226073711643941138757044250258202259730346778851843623927387745103192562827696225546679157757270380917770134756855680409821753698617179473032268120014001114541675077332339181798461608299222052537484940619866879822149175925841738155865298596048129042920799382701138833311156641922852354017853416060588378094732112595344236498450419575774822487713387441601775440373919878974974659012428195916356012692738706900502572486142237310747645107170500178566255098169509060681970730196588024975410282972390406115249608832496137096362534227220402115921615398696594338362096626364291679024871381075760622753444761822906233522146732232172909080285831293815192427026832041876271430900030185278090830701446594021198735542916724679462241646429273150356291743718561901920987498060886812158672148853666019286340671946383225867352779507254006435826546975708442113285797075909594104408040181615465891455698578272937328081427053753597903643932668633487124308937484709110472520612195245429985362169452157872927204245548534327377502933740385468515612962517756701822551019065132442654625798936604002295014492392193546669958422571046448041950373034244067260668490058178986374416778520682696806120806552111642148353359746104965239225078947930671107585393071340179832405451580707248799486892690884031950272460368304487434985307237951219600183052122003767077548415015050361587995924273120483604795427948691095464661806885523066420510597128740276751580777050588923639858494813780211730619276373743282894449995525560361636401521909684166755161177431688343377103659734668638861930961880701332672433953647090243291361049108906506303605347230353646818079758545439607338357386762974635091821196838662792512313641079737534354547415667903749167023564293507699393050214343690120637725911282449972901087358168237680505746932188383193179504443569674347087046156357577204436412338810963493976120258367813939856254400338822544876708447296809019048662360929544635310618907229987329947771866758246440612329063595087868015500564667113564520068113179006636228668913117065473597982138516458471864049544328940964560673073377780353062827959548508324743024126895589443733341446780844681397002390512991296491944242606295062413295813400536583463917075460859296531823765326201825425844140288958526001034984483869859283625225084016953509586580165741899659206472642994643346837868381350408289770070796682794290032367030904445657395165238466209738552809784054227883137838245164135836272174875514780425803681144813007199627497688598820393489979581374732070932013528341333693028414390198674161697484831838450901768440897073386308296206277402101218672946256962809488633042238074608470959285251423530191974347432442732017245137466768408305025479541990471020405563711974870772412509602078618954227561716671163397465125212015318293577865790376465174372875763605921151110595073689759868673109885023154212330077669265225764680227276570824018866130655392205686228430396107896824553658822979215131291228490056028207609228698106285474974016559005405466185213763366671674242627080267446851577475478388951530575097180270864313120427962785041264531095292129826387792256258890409227269532586133880531754513023027455491437207384659853585742322294042856625726494432364666570652023142853654868113458996291031361013230474795538190162390300777340508626501744139251473541796331707220372713320832088185892130384561619479766495666925180369929809938451962473447241279973499064978038795212151120341917585097830031037658937356253664799849311141639582031510011053662121256965444271014217321715126141740087564343991364050508864089158365129028570302446862596084841850205427625933293151226868179190382950112854965211430806763717620134309986219003490903145089057261875246131202206581345955507349530697035424600784418013364311732485948837498453209749002421683707252921654535356624537555867174633391734907096648913045622295540228995817412937302347526113139755176597749068175937895972790403549092576149319010092592751849201329923736393852652831365884062487854229510239742903384519493816689146339564607374253180099063255464584306643445297161779218944303928504897035000853666364053553085365120654569580208936430322926103948918513954073858765834193500540226859257779255146062484408016232131793398645099801707278122603772374570665044987114395905823350201475116742293898534909954937571684211554641514812317323469733678695435863915111230018075409406517327049628002932666555992133051199629812395358506776223704870217574850829915997026026674047111251978631991471451264598595916132701161752777697009377376821133943439371662665290981369715241027102015600706058629202270419431582759000751523307101818870465785378712825497150448497294387284148526335018670491003160513577970690972642733593705117393332857183257404266869452921261962305394828251355951220818948086526602390649202359500151465899281055995079658080235063523465459113501808615496498517542717506716541297899987692365404056906572757390714007876858030189005341103276805210749362966004576487374703181247212882015205080872325182071932727167726172020222033605237089480771271454077574739844732046771882272817047182189266178065401319390132562632062170952782522033627450961033599748068827503810006089544768400722432412875463757437158078933773640991925544842054447129619563886171315851777698131743082594285353615733420200552319607465345099728921611121336033626953969966993815032331877669476684942450563319928239477370428281124291426190908548130627085957419919753200117654930323931904000154097824922480667798469296419044469489650985994953022928918641206944375108124130139564570373394990773155325909071259331565308079033627486159795017992109973845856735981463182098789987335305214122971034086450856156667819021743158959263150714103571908215049006274128562613591975152327824170854197822508971848775352240339416417460701160487525185141584070667338973291486488797138613470315814481958762039134052739335505544451178439664889918693730015143064820986984303643209889139373318621577759600067480561724339739975283181594901267571155241459012362507154486109726433814789139207635293995408429279031190808191261506009572885495345190632654780803032297328382088015383104678989375648854927494953362518352933844444824170281194358648024121458670366618197719969171407983920395634020183202739087861674831832772468323532549424714824090458325628302014765497851609694216753017158822711319863450500493961031488895905400528113385011366362165041868192212989914314288663184819719537056055020222913768476686098380123943197165388981978533818599392865964472889963603121510225990816991957383349912345848262241974019019081753215918515319070727856572163582300609507813416024671695693203833679625547368844736388049173425226724085862678721394699964215941797743026396060829471284965391188560501311430204930441136744434578225425818458002622792139722513655131219529597976719442668387412893098107842138523501711023841661689112083163661607815778454210929858029657411814906276758759907501218000153545876284046458180489848180603889527397088633372867053672291273393662144065715551462510885390385310779020381575903341470926783234559277785775755638981918337019732027605693827393926282369285344554213302889922151085688894777231838420276076512922567263071239014654026446588576258385656166586832100070136362312725226368789446176848821268174325564956275883503682873102508349699433705515841604719839218612416504528844852233071627549665718839941031960931127045167543618462660066814234977449820924578252799544011346694560724116857287280808447103889741694864915575922217301363207257332702536381919669588863408181671283418740956667129059646047208102720249937978630815147864191087980499885539801978654518818295172150763490018613141458042817905074452932771453301229568896059189986955132946776871920834143353024794690365740389096165306799380862801105046441110684500101059063781593305971849324493741266868697898178663367643269191848076699702198046978542696597572595265126021952864271568392608527058012999191587842649845517163222546206253347813719011693524163532297448604654554130362607344329943349223907540977781874230632749210461843759861065056660666165071735745018222111142878378766344587230923667329168362485486766630067569211040961802406781497628809408807479714508687393170996886082293046563659279042783398728381380899451665027760331081053477352433349031215143641682207041110736574294284559813678370450831334364009268083996445926684602838291393238936671075110638492191586283514474562755716585809827509455742198073250428785657806174957636391597144013731931146213155174797925921870932889770969411519968800983329675058650508763302349662909203025349748173181225004240595241681941974327858798843531785087492171895074006215420037002626089782123340916078006698209336794606574275895313731864522592196477908464082214449544541081058128348434465151894174549654651705939379307522697655815503531000032773599761515608306636123944173798617728972831289071739632939669604826398612682100470589107084645138197513386418014755138815373910031535371683945148597758578088260679862773236799308647810908085459755271982627866903324649888388957899549734736185909090002072149696376958561864849448350577956372215781109678413189553981183573802257372790494711101184494115009301661097969707799269602333555053341976960752799947770567226643641096205768661630388705708016521669525669022400141121461088915301417403493717701497080228994442789897719459465906498277206475364098592704256663294473621792406121018587058122540412597024392337261243359528259544310003549389686918502389909351615235139935504487782467581745120654747699376507937022679584702743006141216873579335409585539845418892135415837252289075999710786300529469249747372983433259071523822934666074610139018410951385357704631099887530126294042739900593611183848737641469743701550102788431736499958939122017548003945528692081401502635986319362252135899051249123117072899785131152622246258521163308754829595153728152195988848520995487859641233269348395860459777853820460775589378503750465320484906411724217772023243358560647521803864160751126709546156857749995894001080063748956686416408961212780160790941339729269715871619776906023370452746112560659679125153041638362264455592360700759061636386898167259623543813547955819182419751789676284458695948675592972301840587157088554220729089528420459348713745235445601657608328345286797014662856090229299449371467398904481428608401150943261563334572080583650635100749256741730573795625344431180791746581832325277965471791365491824206428698179450721279181571634541344927415555120061097009196202195972947539286016226846849400054644169540972036890130894842037512639062075574659267278131484853070651527236478074208794991043493206776119013209869291854854516708301380392716647519223382667702437375864178309491470473727938930803867027080549771910058004864655825957101291882063938602977193253518808656506752516854943922078040640530180833928271223379125675793983837737145203706116006776751327157736047520753354008181419011553812708263631075070956671116211003794650296213196123971168565223094028372959791084363432303504942746182614573066799112484793659236128694635054079213869398349807862739248119730359512948194817942777395625192030367869588893372781012235854730753901045105714924376477525489279683720737225477449412318328188549928867838368464238011177867216295623275814632170443531171943335538873451302978656048380040206270688802397327603389962415265736582665806947766177338537668022952934630000943567147130309305267323030415736881460377108849264487398213220832217680215073068144137901849711844245417287818738167602807354067777241217350394687429073421162807311289807222250407257307561452490627005980159762265704790769553028823213999112021713211353845916677279745784382783787129020666460447694986191064679973159650304912538980751836776771123651718984321954127596601192043417368811965525025405808678905483590520780245928798468012822245016915222517794383005739296043369294682314892378215252759635115209761004885248877765642359171903472567644852511138482127712122098114569674966785812761100248246996994413782365783591185272137025490972534748359814167521752114392510252272747962053775360179295739024694352467296580553700138418282143770153115921288544041503062937426604695705102156160323559659250658807571308013766131698158961843896532989070476963695151518492470657734250069502203461350653374561052642036363378917748978766084526879844707288314463743034476482573662268430931997384008272768674813436677753430553710913500169104513170329779242016591741503931467659610908062703142431281165243752494255287748597962102112279083408997550395035808925924033100493748695594614056141534547474430304174222354185278935099394415337284735984641601290990253977834074797322854034201211062729808414493007807590673913946507162711148466879861113025833976311133480658364802395147275234602484424331402678894518939252740453039414770085861819554187011246449839943985059913273719439004178091660611685161408209624473175516430416248046226224220311735275431911281701642193174550092215927526343381631717388631172977539455800014763038734390006239997620941902140547259582629151823658411493034239765551785088405873252878202643048510335306510076483161606103980680309308054165339307140044855861351831881830778591078335188750665087133596587724935434839272142948760897050571918480429672200239009865640139536929372606002136302941818890147865568407703970003672862471982140231895981060014086138803102232637637035293715000352997375608235635511561398136866155365996262786474235037506264157092257742078553286489298945268142003093589991353656452408179213852044592805322777956072224776824474650908138304894330758417001050669535818153644035456736527998771007003455501525513576634682914810004252091547363144157172147679080562823724866411811207175157164562584259753968790985730455634703234154846538170362024107930955957748350230046201820438523353026337731594747612097271700851172755595505521784911540031037921324639219371401249030598147475150697722943567238770204051849577587724553634603666675929612548695234593237788737669928158603617479278887433639243205094100030511001621860310156782718746363856448472195757720741967960202192356697757119291365092365571865722348198123067007430195114215940646221469270459027095356894783015051169551657696061971467598693127801348300195702521972893480254003264253261005297792884239942287461586049538806327065824888602958829862885682094785909955971193444788575190015130660702884183609101337796709569936491079440441310658626936889713378920896288354707526556859463300142191431038236684614354909937266362316500990716727485995752004452500667097259625870551741335654172993677353105013836714613183273588665769753980813655553905971212171692750473961698794457802270813048445888777401016090434726609256981457124803152679771290022452944219413544778228047098460027624983544461683561511632044079231519571161852236762997836163280966803661168363974086070687899094513864890388456221466484899103691095258550008807217316536133957609158519839002468079193990268776811648896457310391091413841443088502764499694387028802269530047177810501916080499930780297359570456863831648950952586833992561699874549193173472752547489780266625313879839023292266857238587381254388832374519855402830870865216596587772702730424747004015532271999619652542131823770693333109246130178463508584323781658257881350420419700344777619987301892195202670844445080530834045166273167752780645179186701845277599089812224557844324884991121546482180061623081156243637463931874621036238901244976112803009320628575214288620567809261085494640620088351764394007217686427294628693641780738140464598111752905731482472289394542599580371918792661608486234613422117969257424298554330336382805157769927460159305395953055161858019072993996465798889624760846856259726425655997348794835311817956276065444481704167428053667119710274289620328455393484227273358330056131387940241818669802445179456152190040016398348504029482726231600031964513317033572784250627541910567046154439100985037981836048478925972362731942793939319068911638401422565436356212186684711076649136795965367003259503183979190705192954496105915204117049608466855143443846761860431159912999444183170478793376752728729137080981974610597772950200424314098280556781177218067718758405165081518565839493682609442318979513111972792920586705976303503770784169474820172469112697265929816169374827551764695909568592117230351879821376053088331218554147064800875834268084869337872779155905472952544464153048603549294592315271675022258685869328560002613337196825564785397025402235702493985216954991989885235962077421778253561528127602980979835672437237032247408587482286688906158499610493252447040852375222426903808443025917594080525456001523634861808779406964560813326157223665881587439472786589020728063807416396157419622089454949750126268508871176720708355801148582819499329632969976365029293381473110452063259972198793668193294785767874798494567173661753874647165369634894335909706767810512432279122730863824676876563264221909773938598335630831655917571416194648606644857915921692774195029959905178112294480923416398903637587837434922152293860211982008172746942687007014261645002899885179276794315944243998366496500190263278024825720805755302383526236962887554097400030920710173079363590731820712832299294120243204944378803091327938442470838683553342354275413632486106901109287356563556333294696917242748661750588768645114597729409323629470065032541653098133338921181453523642767575193585624634287754368626856182413632702650524211753021557464996968235035143055119170523338026286657523735760444364901326610981770303351596127477073289336042509126004629015938825724721303498091786041748769115660427818947352079995565318452079773569364166580762771458837046772527448218337192721791050160218463453724275349411412110798291719213376284716251168622402271069191255974189262159670017518449209839013955989579837514120225456705369365541580644201774523804845105266136109775246095353371899208769093084064036178654656451507562757981885439291471722084526320998885273066768491433720424690794208889649746850530493850919510597699469794319083763112296742874388342591928662950979926570178597310206151123928937889513675901696298763419401815223416322524223918201082413196662015051312068880873824900695980114165642253746760863232409744696898915416067429500821225111458852973805319016321079201866200701386867522776297263985303557544059593144231129525944154955016415655734085419390902196229829204548931811651437009307007880883990245428087780901025269314589360010094244907767902464781137849418316487275423633148527663289378999479593780257238031964219972096467952376198056008740596978408901367081564611214758553688871142349982107922029098818036876145658190584630137383495899781309915029276419070756942443941925953279132113244100893679892522251984377204469477384178679668967230872439438664397477157311451199984232550171369110317493728959689704358659081857889584664263295611602779955035222727561643588908408193281962013719427908530826744267164240773686163957217356904326365307988779243909863987365408097742383545802480435971985934535416043319754096846162527075933012041773508525125406108744009236794082506999693764561271941896025039845709090250925211512772662724751997088834559615773083635223343838789284307253025134950174170008121260290087873687574746481178952505790403686634630935663435515501770019390411018433765332454063810971258151362983530338988048274871741445830369993490879882989393704250813185503271081510348923304954678226295032578705424076024546274366476236544345402611337653624905295696485169769794583341479083249471783260958668370897601402663688378078857720372741627475892735540415432398009930263024029307547812014072594955411244185354283907169475258144957164230419297147311404097774977317111748548662921645822099185006829378720498106950846633080218366334249727742946724938494944076665160118340420871290377480507879591845747731832717006581866239111632998582736276116288854873041757374930751541104475175847543307015428966140978025449742179378602029622115961927014791398431024046172290748311595354219582507398073693415004995832093308323830374258177250197652099077656312982628823241619939581463994868116279451070196030704311952985128173504675829072916718743821674669323677566718774794101736314824757393767036042649026632317667292538075512689893524236182308914950950486576791489949269993784528972714420377005304799000462480231557210988678596393317223681365575226657441614504348334775690574774022182315943303861334593178325350951192757099839352047837530727980507223557784019506623941768958598692440480810112932015020331509669413867493261992936722034689071035984191421005778267310770042949750301377771478401527211430829018930600532481571177121306502688538551251457981204653377938237380473233827642059107180989280466062613213531209427489850411817529313853942211780868918699618998442229265430636584133329120668239265878574865320610235257411303310524326282623239772114510404842866119033339354641750248064612071410685535340699728804074330961336150168382423603587906602658224546976607440001285073409639889807323270584943282761221077071878803466663970978592563339418736767797519451689270059952583964787915699633082327380773030757244908466187659962717069430524318407693041274393841264172830068874054923479820251503359817048344142640627106864999844266482436626802840728686376692825006475950795829095864777618776041118499863596812030423273067129599686996137065409932068875449005392491734734894413492957917080567827651768025855508669888348477659005702249079193597923920399113215391691322057605154994617262830933237427977119833396521604832568445314313357846988752285033682319060686560608395051352030855997114615645648080543475076679174368197330225976721437838996487437324045269459871167815577591097115553132254169627282556070006601228393424220887752679921448612863295938743671598441379017226214897423988849365966773523411192787965080561261098980636211676579857855638022727586806306619245342046282204739539990792616038527757096394196886736829809741122859183290702495438902592057206300950132893604800377038930395154579422387660784256665604661904263414415643532365506266985110399609547436031210858447795673257736582578157011182406345182514262451139332394897140747479000914486528803281966536945931401199210375894514663023319895105662128985187028725864039064257123558922606248600844964538391286209871826938246975524873840635029765771056565270773591145913890930428429486180353665285407551746128458688714175032207464278938693762739216897187802319819578129625117596348998226286626634252599336995182943313018530003297157339740529979288610740530054087542297347370951907371569116520036774312448338378615978166214602265742070211755558492168999705798901445656189684717528750681743724531199665025986129203685236912787551097865986574464654419788868842307989580311449770666183275521760066785024806634126960989171680464862966269516939019006848469361493660125687456933233609967027942049552639722234133609670650660581865808608744566497484621899383837491582915845281952932345010930131599992543019902308672388575110790300102613847735592153737309499549157200389065688426576656375431499097365626253437585506896093704290603786080658832063215597925368287325042607602561129068017522581048474902628527776581338974549052742134485965435375704307944935257686703059866200151123593152654925159692923257561093927072916667460448834098950206182739191334171424616039797521868128877013760433345918475029363929240229370355089724269764517289460890660160193650087959484412256367347745475527100652658065195295868870997726183941964850577671282544057727541724892751651512503052245689156753848326357133184151281206609235872645532841046053661516671090618803454683852341214488419255368016840409634958716579677285821703091597506056511270317079950395841032532131570052684220010121224389760584134536636202139505605422209488651708321871974062427100016295226844795145166036946058657223915801243209992052103502619689771555728082157621154840860881849349708008597784343411257428091048978703219992748881788097164446665798952646027354834914603406108441768889874618186616664174008745428925234687698395225331125867144795481467471326593831897280786533976013897212160129757338495877238812843083737130505606415530044864201786980520659810164555238563967973917521724971264871501511634471191002511009838203226466339717715546465617959663502671183502494845939844917476710154182811723110406659262229251637494508859056944835585439942204562591582591074454095288342192815662209305518445365634572270413205952007893896317798126992582008440199570497716363511834957371190605393373177291416374302649308777527961431123394485181278566947705903864638165004141107075746976038635940058360626905891014546956360278524271210602045064034325629555694010690192412463689467006168046019508169131232845108086882332801732028401264212991985480317200178333210243378576378166129593898860103111181779155020312680075773132366075883477500189966183511283951871656985913330684446961802519985334931661493078215295963243720637677231665773618386221055602000292021293117380207465875753330164421885630178644559525787096163028161774962322382622200658293322912029808020753303535756231127637367582631335542181978292522968835990464218290087867029912828326303323965129524827551827587857918478576027331463703477885162208982866549072960660867342279487127718681775289769197459875174714331987400086109236923025948778045441866370009517153954400506987624110449895494116288701688379774926846832987591087235636380215783763792325615324385007420755589682317027560485437854733044205438684257367082931043133220407784831258824731707749125808620224277513234022489207589402480466259182438264903495494102846574860993275993408558341772759176626914258561676286492260564614049484707613901256189520266500441866707737966702845443656416469043741829397572220191935388449812021877938076225802673096586536203277838992628826454962452565503990540440264595746326765065173978274898444554083962313099653002291167840620049697247467406465527617389311198115948674980124795993676268863383582395699008093658552001736546793334824532861680329351926805811335479230900278669159085490829929733276966578397703551404934005482890229858210566466944732472176411207391645390099891276946094613717681545640690664822707226009723106613669119101683030063458586607496390299736056283751406004911811736721633754233550322453318746051211352457195455973947383918373937666031671946220594988454681189512295477091484051909337277097464666370595935766791456888437248171263648749703688195075759801316793172319296733756655377823649299339576960419334442866402349932985677725719007201181701071815107830227134340367120884032474377448691971575796029446296010859656578600615957200832467121215855787618055303230415012310666753597950468006990149725948178750257429354139526988821073955740658202694437733927679138927717361955496405156516131699134337803453397929537579048756523244435670668885830447388386467889347436429648647946176982575361509495583596603848485955681476674584217646218016472527749362970622769380672028209776978496590657654299306813398637384845261415340017612193349355689559429641103294364544999560520902059826305768633967688031453063336993977005187368621091817834930077734192885609787006895737886750261010255588269691091427003980561351137373469760946897589967042219036466256732609067024728522777838396071647512881940529350179043154459084928652276011028901924938484447739353665861101949004202026781215928816383651791216283406769027074891680734755485083283169995990004882462265910288489725473325089432596172422389270465189576863567232688671336079348600234416477768435466505168368667964504774312968316469363407847556816692291647421936772850296299195430690967742296512094022046714779649992628392606501044114138127084278794048962037397429098052576262258805496437916727220220629541356016767903573876958809136090724362365413810778841449985575603448817932730820353690194864864643839738212258271691728115340652717806647023115615530758810653536748299979583607444908685622388076131840514495247001922193742425352315554568680502836658991986354643721314530390310123943468497960588177488369547961478184259899689933248690186164018262716668542159799168236891724536097915219319565312760915727018033178316193693854560666914426862195792024478922524454919634848137741685334665298963867082122916046299480682334651232358052697418825748716899963795597079249990580975705725245666884138958055788134861570917201635366459367070779793370597149551562457236987751754423519859541238450807897617112183383816346261703708295122054804940251715575968911052047139317842496561734735696130782051216601976055868921279993485865172451062385401786755016154416317395160588238733851029191117820584929969888505260737128641787857544678244339436891605426098344469032058682093608176389027262502776290477563847752119816669697426284970012193471525198086386841597209987778331863656819153135477898399735509185558339553547251708056937106043966953347391360078019823755097144025575387325251106613105315081190322733830245065163758809602659557268569742044105330795169332541793685779010543461388078069875956676096070061546234368951922851198774677108770805574329861241067226853652715480515942126877968938256507042643014444896874157289391025981684760751887259785340001517953376402733111019480697143420808305687555167056801679778606108106182633845380080692115698761170782791281955073013601280899339019080618990208147643478016022570853445633400373783654562027017961426428889739851654281324176666447983889805996229471816570604208377099867026391236877061086371304300207235156809460705567074406229228689194126971848674029914054337574610924067034508932425862717849065198862922912777953874053245999066418486956862559986478710487864887130010343990466640635302411485936342455328327375131172950790991507972487307950002667278972043235193164783909353616096504065244335766811933812706736162442952443135357807167051963901266825685396696768980034405532099900965848177569357521231950302549119110299355871669656523992223831163695280746659509005277252069133472064425619002818258612669484232908276959094867570912842155133754293154665415684412618465247695586272189224817829833776622832207448993670453842262364499421565586351834996285469267346823858158968765793352319889187417696725519781438992948360191742808652948061291409658391912968702139528783823894958824976941470662027765147114552525782215837951500911243179282407294373405737643334201550131627921442326761909578088200593106217029519872936879192808815587126509376640510101268233743510935151402031560866910141579699484301466663945773221789744838413755423280481404438738312411632869459713515909986510267981310502786618772865472161035455979990142276085541355279974025710604192278647738639454805763176290551291627510939759562453862073574309982849465752220763745434610545583565718319285270995038518170444669835935625978289064398243159848165147028570719785447665927989495683489077686192046032151577601550609513504505817249797253037658919286938895360060141766235592309178538160584452825071596500231639781989961317860363965418771823506038407334048458851098137946090574132196822723749832878574593550971325853954094636040663928317731018025815392020693033743512461171894086119120926250803075215417514004670123701237043668825970824618904519542352094994783472418428847158070769484981279864789628336517295269306202770562142061237487116802401040404826914674405279186206547173718840484427786687644361159586733687096909460309651460076154295975097857980189320846311615213443477421489857053094760604078194964371102399201162346437312754008811406783495856038175804121797366556206831240685461906106239901346544734308817006790965023047482352135248046118171783182599775638485418237410497602787995979646444723784846562510729711727011037332432710329512912502327204474348374135579501134032766383670331230432854020676055427977167022294541324645637697769959264092910604504398975919694909518220546675519026436329548488507293406071528984883302620681387299887734647621309044084911609975461948969547380851962608109432841521754975487683605770713668732548963066963411760871922883490896419518489631122256245763511255109339726320692262938526228434996959428607578893039211518201558561552103764344762184223667622925264084638390182362865599313526804547304952068607419227524283019612206268110365127451088209263707871396787197337661531998648658968609883303749994066610903518850989388519483147074743572933974514902694984734131693732398776823766160867184376172071873098824035654523005819032707313275339556746679927123698824924494141745105893529372908218410940699359741507749860203601226160746493963823304972554396466997640236876177313849478838808301991336140145061760862804912653925582120224009819583927754746524025831789088865108938537962259626907719393531361669659376050539295592060117504157054211247427389953626809637243023438359762172966569864799601251832219614427077393660547064332865948827172868077000544382824822253060322936600922529372315514862843551820014644164687455057629224618129397065068780038117389151252548673093880341309181499356312703602997836914826424980346641779349199270842764084967462184800868119223255524712940979768756442352447212941871284578703725131696814243050896663876763957020361065068032509111180743546004003253283277427902345383760511377943134805115107259575892991013074756917777826734780306760962644262937498649680352975994676669764249005123937282777499204530149196063326672666060901251271557108601963669827374189339815323645042080374967017464198370466849483072797577049631168923195899791398483236368363376224455697984866126587621481325993326255136861102914925239004423532705893060314979161334179085162578039331533920076226209332694428387841474097800013262068868229148986037048865309689732973616818974838756593515886620509493390406770867027183891452912467563801906189936543019042985158312418727929495954589734955987180617601346452874367620245405507604079975120768829112203444994886808182836185827959938874973641006683441434000137545612792832241830017607973955662472691612442341695590018602827657295168127780381991881546965650477752269447452819915286424979800910888078541809550573013958353425831475569823968701272042571579390821845999747013319272357823608793535323029393089308870984785078057021993323760456563101950352546738713126330599357648617503231243589686605221884542594371257314311328573589473181916716079059985823139462405239495812461941896914471166988671912933021310704568865301287237905803098734515452526395981145878508162474564560940193521924970667663276749385447216311131451682270496038234280635329260597267904563071564095666007774894100913025847195936059399316272116913586501960658724871333280065315984059748235428612234144484932207470690559253669897825645977699163793980191580761786920608896455480300919537084490554538941165692700839235592722820658137089773693187817712830831512100901030289189808350644184525742066595096947726525591783892953534203049537962265312253793040010088676499100439247573232978276377542020257071539748469248955475764410145292309774310053726140330070465352770828907937209052016381448392174257001339756020478439437522081431443278687446809921760700462856553154660373332498365995777052878572529047723985575672390717015896604948890997451203700767041072283189146727211369724865165327336788285477321308425359362173106457548015507290541034122914321981128489911686784157215032517833573992873080113840012789935425111858787194755452447338957266084235829657140869585034099673695675746251708752271226081983912436731288469086882000188942146372993046386120682694654283590562491002028180454507479129530039402775807402821240958896771170542451817457880807996913721191183418560784321101717749885211546857569717436476013581475508753703632201170074981887786134532191992784052660526761198813968198311310592867423292749201885755293576850596118610207762914804415558145505295529227591092150783574005170271581991375550160997869711019571490504370819748584647439509926916006638850621271605852436585204838723942733837723099264156608419285582622294336098404539639774158568413841292903189207026254429920021485083686420546531874920485512007686965385683635816533820921526423969832212878073001003961496750430115240421879889646569589984505704327527506384093867071241776486849732713888397660879011443547580290895711728634658443276885990775298482515094201416818572174691083943689098893808074602873850757086306578886323608501670654234162899033116222601061863069180990447045927243817473952366843783633667068834705298492450650832051147920512941995592527126852858995193368432922087883749003728119414387989848970995027564582024773433186305494370165180634316615563406129992095357019735658596768797090587422165294421122847903192876483621174520231889300699298422801155345864646176941563904055358436594246273261768909382891880523050432067839694435178839513395928489370821256030177781294460955599595178682350368198925237416965661028130120985500953158923319111021902144395366128768761351547268265432194970639111470291738836703863355641075939716696544203514713847239429491415073004139579442520351084597966400971062892080582652790937504930230415033824961022739122412547315557304948932715731648184523901365620334692703958617507218369125805048988185744554671425914305758933995953683031683807314059137700097090212528190065388846205719363728403531854178295807925267882901966075927114730867607442769193798579593520539918133063432794903727447250526090254376663556608237015464357641920782656693996469733518085960046816165733268585653502520413696140780937106072878747127299636742110976571510394075720454609381421282354930020880764745671274205576416213052862917360015638261494043050753322395417129694629534867517732198981201996356896767654978402797703918899480796890716859194536274089380586649960907978975913703314873901980170653142816333432860340526519698414406793709695093838846485027043754033934776327269027634034436730536563999790616859293772870178391907786742816858682782915969873239080553269336566325456345828206676758186594936394816429962091646743534234036455656509061129164797958564701591991072430812861325582369382095142605863730655872361486847337718545093336926098208077355304442242796756017828879237713007384873579126962036356976190354255529251063363114042619463721300342184853288496863326750771787558181397661096997680634848570309161156388149805217005064728479597106462253522025437452949491310065529662892805196441770008330525802710747857031807343251490367802154201723440543847331165546867732366459826427663467711681761839733917040459212233060711836005439765664384753980907560974511048015308671618364036130227755764649117124463796437788250939576413349135229838219859750056683922327856269591677141766984878054152062776641336044086878775048289590109480338617875212377810765324923485120208889485799281297586986548661154194086223421965828294679891990977913110382844111009116872720548264746246778740365119873139288922043897169174824027418219143321213575647207558843717171198753146220598712964123095085976712794968705280773211868722673952663132131819014976774003178101165861061602489577773335876283012944848495311499332608403171346505860719701321453958931862222623577030649253334615271776895640202330899472634868635543993798173716571983480654613347325073249330629580278434779947742199860543460582364866790664336444922176819880945036793201940619572143405388992100409935927915658967383475554297484189611643683510340552703994044428297445800238950247591596414632767086895596027702124679744558251707460968961513372047723089358760115577254853940814185925709326566811340709880672959949851380763055863563600092951194808687309886469080435369360756739309869363010563585633417950680426531907006277740277647158678797302572341002998990315276847016926678135566059542765807040460459410162038127979692999088228077269616347760484752430541754266405794292834858048546041047751131132299259277042564271488859773388644757568694767843355205846201112578709380674522412494113659628510416238468375023224656261541697299303061291259612497406047170538991259365452340636592284399045631213576396725804820439974891332305064256896865319497022418204803618933929360610350757702585653252557807907053598388835731976318234021908945569279135819978824774795625470737453234659455263897008138329029035262842617079305263098980388893528175316235934848893175747898939401277606475170008592047482719842274449615676045668996481343606071174813534351224929626044568230469720864967197652480498340360980739694150777630434654633949809482810794776120786190327154431962481998650461724562184802262051738038394625586369783425810972975798898924444466368529653010254812842259051655359689459080399326094005524433286684931525743529733749819644869411378605137857773714776841142185087789905063427166494092183581957101765645930706492592023335445392256865350475519664620036760400103830167649307573282829965147977618078845076175161757646783462745700408746169338832066455989019724256343344013940616264748752148825882674362974040965863300994474745332275437293481934662453517795362767677876593909140024603181862833302261374649980788660981131218911855247160740333185558771236431043989393810779644698471583301056734757458793118312468603602698677703307643723601115032996479026474223999132861749031582283475103323767834443759782652425727342236985981257284950143024689273375851282149586811893231597065569729304479711946467668066711145882815814538106220171897714955219358274166204302062771931926931816695961258550375693452425167479798650846118833875604351265260630958727804987944632706084978872077800495792177686253648678286929923288532064054187427952156809854050800980190965985210693063870391630695579062297449034449560981709304288459038255781654237330056122184324631515600518166072220753245065363120092033007344648629349366076333094697236350753185919087432998518236906865914771757743470132380448505449218241362732070801965493392324229634732708268737633292402909305190430290073769362192294756050962636381910481136213376961935758348079550475855641824373540658332672001064099535803738123714226394119183942019041875234339639037781004650011313598389258669646117801514714494773016722855909084736761528865595124199370125512697932566546933600700007445260974341696048103339029045025224239892871522549088145387826738055634058902669469387483557618179510317344625787686564069545355230647565537855539696023163328040414487614772829050012465314360718173986536510854887829357613321170902844083779480013042501683733583562642905590093005012650516790452109234057023677601907055900610865922275198256785114304564457360439721741494043786955989354156459857375298149784126370089513869046130545300222408916366082872050399338094005484868475279214577482720989723663926852628591284730090321136137004472200712515947440373991802571411263548892171247600754480772189553781550531880060273645753696812511578110630007759143654959849906394956674344944047258614341824954235427822072013423099497344061017699279698017180488189271796599589602624367426846008172079543067983127443208864895026405213239338450192387985510544910557770152999289950528726750972645818488544119776784846289181030726888549863866765316086638288366388137819129450937757138355896458331976912033118782257488449443296331133098699296384281590701450283463239924411374535976729646499129058801332428489898657058912448834503302337956809880216383756415863665239685336286851722362280619222429100414689920523363856235299781598362271518107493224426975205513410009433850618243355478554605934465342670714575238267827521472337051888021526812591185008546920458637510877886556408535126480519844052307243545110209534198922170169811489261301874138718728788469079739561318644673118929525010274877840887719067871787797850236387869864530382412639702015418961867459921154871174801733052382797243788430910078973423083113314954206183178728286081030908408734580852207006213600725851249193771094545107227543178421133102642222454518837999365405983128849724077448419248405348764030886861819126351027133702466803710336120809537647444745115657053073053362374306725588700557131828771145410508404993993084730110817976567460571065242141748121805914842537174694881637900604367847811565740476771865595861495385485690601592142193923188079852439216839988113375039296992173932350029188021777689595872604533804689703825677829863814660385390581072724588896977430481122021925332970567890017420459014198132396564774235806720929560958340054168156956802319673687898765717844372993819797170697950007476895386731853554716250290943359928208537783227151777704742305779248278043015010312581292451853415780500315669712904245280552368320109032120978461254891880031679759066554566831015957942664240551346613335416893768955373207694217982040967209192887688526096928888522662525595802914145906640272096942231771830204509900981187594586230656312607421744024872587384620008029167604394587734088753043464586751567074577853837930703402868254014115141814304358697527131082552339966694903151676410982288832768808484825550370568051926810766304080982432727268506459496706759639658113679413954506766093961091986388737206215262239687499563693033288205409139460820070915265240421331872389359026162035383739084621495830346002122606978440541460836894864531155637739998581185126901079010346161782896581350050574419697770773449801744506546061809931273722139074542429005572476543273088524758399118632253678760205006720361387536189755208329624071904231228923915888763236895935415967806853192465011813497315762415759807664124285068274473513767272445164287131613982802014472391132978057310712035457362734124740169582284318751890132921596536384224688225056327254851234369520981973724348944518298887301253879318919684797103047223377565593801583803932801945162139509427061503491156073634283510054598695313549211471466613822433778930795323415689233607237245047036080358783835237255397267522009033441471664037580436291225406101358350364253028108297182505536352763148600184625562693245699094882133510956826805828432468523732198221581231732960367716267234336278865378114604130368956106844767147557611122705909120358064343260147579093579897904449512353926877469749008727654280253048996301889043474508765042759943458353530630561152954306083023031542217853642701996585029400308339992833403522552081549954151829955577197864514876738925334895351221088871217827475971356002769526736419097800076544286744192845824828242583100641138713660896038806101467733773210317818227926649157611671970251231974511414146600167547099261032615974357829041074420684665646723083813993027144119282959091525441652338581167742084277239273719346385720645252192883479712514024327385117118493269404817079898076187875979457290414197767079336637238926709250362018514659529646411582594434751530039336494335979381548784789430588086782723579526659977655437136293543076500205631296852907314455858042867354313499058688689347614578735431250676743431499430124437830268809777402003948472120094619091659297181860022861698610409372081206400195618664511597162479265033956546980327977007739114368717123211401408160701466255251875718260737563401537476773857554525359670771775300965547680142119287243306793065089268569693593281960807229548129403460587829048705619664913650363085873650537789630158535933224654285194253592547968123165546634243250793968914624155146571098986661996848430738709705912607309416925720976458961349712734025763500906356254909599796666424293803895796615944727273710685446587788633180669599069684278323108310906060641837147313659153133964803332636539471459270380076063084011242221109571169047356577897583920084462104671732692307276206828575667910743960521355304176997460667365245973585386085039847619445506466751708949670661016443026456963709042726900496379467584122917385532693873414372609405426669212527930745810757960115574850108580025177977110871233981974379119303850795563451322018845617794306203361700063825126795312073542431530197583567360317720881176012247363725971884795276271525844203600618262143885763005302478925996756964345011041593893822601265961761735497098953631311679634711519348600505679280135076762236568814180567929735458430633080726370227223118096776400879235024824064198945851097990181968010778403747902867163628905600183456606998733884448546989505959908429468330647656532902797647086183204892376372419114755346186947134448110167128310411667773839816290345977441056385906900457138707582399442853096038809151824698369177567372709464735357363608501868289719748939818386406678458517100468110136064395693296087330339484298162787118238109439158648399519290574861406030054441533052128981620085642999799736909115972527509976944582562416404637417777387246998165273015459396680966934874571156638269273157717953887011059617972299453899517753353278876670631319808562878493480781848935904290888445984881582819336447843440672765557523357581269426855534215463568173066225719945891179127032270521280237869174892905424352245859486174198487252186655150176942405342889645481658919080851346495144640083336478033994033534255590053718548460795992466530180725147131329655964006294082009764383365696149987719012614690741534331777202357199145088601280711356770766238966113946261971735609980587330652206532681096402865539750059323541564761142564736896358321909027023332361422722484914605948124855301734150751214725135065438702153078493384371839712926293520620332902089127944229079450400330536046397035888389005080532819682653418732740356209461123570419437108329129655837790052617438819925020976997473237079416546842037405433206495671946369340526409500521968130342929043854948097461996922032775267324599987010035868889987670618977973884569868904535704395164805115301744022182944941537197579299797217343281299849240319411339208061893172701149299949395327152050994484069301382400638257471910713710486640127527139354670770519401168345465210058217614932048691419106511618771284694639279422785046356330899760987413298670378037141013674813394739536390461343365821678209556568656931829429523218246614335525342694420993432285175500561169664295742465648217078096614260933284783224010996958636085598231780418428786449937410370611380736934711093119948026156177242488354135546803754593502815016017515991814258882842411074400566417368010492413225414598690129932970397223294122065002129927126976093563429536436365975826533498793636161846605742769097927676141254720214029513797095736451888349719056124253167430269246173772402601413510445922649257511596755688560150508110903319415260341349702595736651505099315531348782939289810446895169691224491549179658995419465767799134337726387259872964553593936306813211479211827898615105481177042196611822801802691599470958940584679737615921708298087029976165624090740512797455549799088946623810086973351624575111311113617733207067525577874355736740905507735235133929430341761365247291109635537547371359734665453073177887858750330445525737036473256065506839048478222941603008195106096472269501441202300471360235965268040225009776885454861602204495412099214631703883454015296910298764103945703961988142951748566934172239939094766330050717608124931201136350413747638304599995667979307610816305917505437033151368176115373762597099029130560444524861419554944647670408436793882008363167803907336261205093115088034001422443200924037138633810458755509120572006640844642305005104525460850405643455900115095535564592702451730128266621803670268471732969183837007572142741659424611714798011063441741287556327426124705535640070650493592191296847905386093173903974825507595984702554768071821325664576925215924377086202185869780206968353083082115299555512013242006667621865817272455172329334505623939035120699034103658907464523376986937845329824063333264747011460786018728868482895373883210101531403994278021544252647378625442602522258663848585342847874115405888252374538978807712033667428797265486160652292046451833266567450162851793387131529048653420142495309341569447460714420523749569861245649399388444581496977867634258125097568782678530720818631626619590958126511077221709922658784327182227850666059057980515768442814699462200403238015776559674869469198202041827704232699021157862457821979502663142093376440162817643608005734659259044537899435731852616946396651466886873956363543160004668780261876731143344913901467421269869014247786267316842976504686249018969026436883047416397924858939172075780132725520563307361517380364646491455958493781639129482852765232347972648591876348349437769647774011525045626282610836274961611054225828358053180892935587615385793494563600141520899334869294821962041247104021467923765283148944639845737143152211787423765712778251995776511171948865586205840016769744083336252100332818993239330051107616458454561113896291187975828840438740474480777807653059284125884268758571191619262208897395777175912922792295397679248411119544949867730656163777745125697836227379061926376971501224175212914245445572685349771348637259011686010924258719762597993769287598830868697097250210288093218402635455562269692385658203515575637192547147089661450783206188926084975234157740032197026454513527481585087694647029572608479151708822342804529403191892125899286410679308947538207621430304823403454330157175216017719783977770629386372348863758767777153993321378181160636831724043673822902470357290014161288970503705233489891727914295247808745864177167395105714364838692867548332977353773058067347955556759543166870578761497008591780320529581566288657718721067464348740583878025000087047066322598162722765353912260377493472662021970548024252717483992932925792045292707219809775990670444051069182526169042905306555445196346549248041146649539850620323458460949030927328487409212309807375088425834102234777792867619501306429018811574643832680521502562935762183138216059887472804719856243604749278708953258266543725712737529566758697995940141319389640594383844236867371049508684679349585606902517510917210002399480473976783041214856766754538868903581859796580535931084382265440274120808884437389181611614023042349441979989843379966533068108420253276582630409362937868899668438155302194642029217690310784688337000886809091262140254414847462287487474595297232417347171919356918177763590495978672302107731845430348316731530597679040347623950709044252721788996938196668427375161513082117342078798128509073572513862680562014764015980437844169813426638352309622083465520752936258061806587613079943227573653315593373471121089239986276021573463142512544495495330492429121854633354038887997899645776073954896687073411623970460641560381513505507904531748191412094684115802147781571185492125669284461583796655691861485420621557706212291214682080926110713378477870628880296291732117297040266611198675496769798336208972888260515308515030288663189766180605150912856089954845301022594316141499303380424118833941224522065491402314187404640565623070737405545430751547084937491759584687562007509110717604239406466108641687130163103749902073581575587976435671653497721473767147891275995926938656573465725644067465967582566637405431104926870592019948612793842157810074473114596877036171197588392429088597045939372508656561960600601301466912112327689245313756552799496484976298907054914205644291107682308241328703099956486855077829487700122714004296380363033594324489850963433481239839036289300429467064950927487810951614217880290279090079815163435158442213540463396246332853051262982555333441126070146911363877981829801217121644588182758621674032611225786580692366317730531765534804942748160224617128095413542364104280519328560574769203983508164876594864779446305567408132190326330123148282006856260757273056048757913497538556520910449902761208054584815632217652872524793457637474703534483798654960344735096435604241102631589483598926101017400624787491183618849304379976208345662705236457767276802143839435810411093759461875637490875012403110467897536343830430939063604393644762024928687293065893915030480310023951852666893283941635968021426143007538913493006020048027933002543051115883478614657961015281126842563681174300224262433458219536124593121581556163283755095041015059590384151971011032537897123065033723566848953935873862114829104768811787853474177657324071756177160493427898002805562542201056883877185922145693489257117666439797080694663585601113027288543928098177093701175043697853314054560733726601447283852047263069862698642598091671663333777338310226892281766552250950751438927385699349916727829649284004062448858198699482759034777397027171617795092649032951589568759952724754647993806755829258298984364363369978349420711823142680001657987024669638405713749884495720534985039041764226949895871868689048462977612196256921303561098177194530109345336027723766588458563408942886788475374021070028271856352465337283737788970053642922574082481077655321375304810237398778955142479090972288678551469549520546320269019777924994995681833249510009944956959661722255410489517599489805195182364678247591193738879995412744009330191106283810879562820588907767780295215278968262229206591482031409158206021224950867151411052645591310470856709636992524648333597534778596635245954611003062522067699428885676640910292630432974921007867181111848638498892978516341842758631495617194645540383450582740712778420572075505377344746198011056205178067549674050539703820415966145912625672011593251946063447454439528868520214286687785667939280117352146161685931112657058773464266533470047344129141017959761872774691237060744409287851353271538897253054333550387191294170305353733458928157703997967470363059629355594131415954359195954645295319410956759212312077178980080103701921097092015514800987942214135514453404346586343020634551495232916884534017762650597554491150645605281981430008760536101284032713156484459509478736491513242777912182270520134816853510326024302847598724662655647150748518704425838372405449837907323696915745761956146114652658346351680467725369874362201658553901412923252173640550557489257650601491220661818952889797070631138456529197984875202693191086736905076083304773287625631525547089669514744664860879689599436797207702408721352391264129011574301531660562946561071262017414768824477375981336191300919912429919378380531716516270919106197316650458574078645576493168498154101897949375024714959400302307295549741054929534607214687894966641719712075512373942293118612039121382034408399213672526960388835379467930076179751677558083567349378587653540350722740131344715844712895848967945512972447244067255820237504852757558602719875869243868483233866846395460660987265996000947817721998823452337071294824221347398154970888622417160427375161907754515860438327284042862385799867763189140443619497960219862647920715253610586433120949250778270756139796418551835456749870811217661624893315693758567894115957639536947557368911275316266182516774208490085709909344908922042795628970114705735088196979802897809538324044630215012101468673994200342189615667371736981100692492388796722716649699144085254866910524303366488108703198431257087573142183490820119959154152185614837517052720108176033070864579519308859869556038497056719491808756845067123655370423493403557976831861535931356335785165909648269863980846381671300353400551425477565767301416328953564809797877306501054952307974701764318735520243788170980428029551184888376626298285053178502757337030510559766931254518243723514378166306581221853344174832275934575405928497117589878688502717228210509016019197588824820716436213855717099610208133294848974232361054897414690563422048257036027183490925941530464186415463044477501763440614212843307455708037424480853440966655186984682693343905986766723609686434208247324471820863314494905434790293232319035399786284285915886358834708269119208923112649676937807675420069339586508760302806371594658624260045383778588344109221485769238338561071971794694939405367386333735266825804242313691454138984458009720647530381415199273235451071636686748953383853462159397512860562257359260551409757316573820098257789592492781385690956090675535741582115625680288756652875969595903218640106534153379857070468859183506212037281460512350292698171776172708329234812254503771161244124225791007883292653032112503702657442635131956633421582835526997794997520460930549747812664088848825323415240117901706656259707131554338453286387173861335446096679267659317418091180400311459956885157316184236221260153126758008540297801688319802369643040918582634838806206527973507488276493860795886571987028244817393673440458239030802778892283849434303040022392878033182056524429820853679354030591673725642891647261480289892856558502460106360625808324140749663246594275709866326785736789816376642927972016389219892350912879293224853676681571151133960212465555452359384868330800588011407822276412990843654638821790444296192828467640566228415643097754123652349557127618780977512525953071916814952617132585138963876287933986913710653653678122407876713841414850008499486204375309748115670984061755652949241903293948442962656772823586149709076626881476249515711675837076619136057259761566175243880214768439491361550543392114464775868089395429110537985325785180549125828525169499589043259460493569442679327473352833652190047082782727240178963000394461522683277678914371330424656090731291694175446231406548636626987168445380611867619216719322431107101889102954714453735872382448754665178069800712977748257427874670378199325762729646221770088364979791270650899468947908019820513781753368195278012258637994811423961492964124679938900416501209689350344825250146451878906642228301400101810909451823062732725281486598923021743563965926744739898139167417508267593349394089076837513875703164556592016454164659682409479808483331900826690697601097089482328001450194986676856659993227625883630288284147106881335727653062192616087130975153962271560269139166950014080701685809681304984468905884768205229808663154875404089056625800947996902844992261438086850270699315863083841449632733254778941137150105336040533336220265176774172762068613912519531302603300824004462365877373321710100381818095371654551362273883331054492584767685001611519016712020829323520399207239922936304218490659854065641495745350771003783359820363645614724034983535035579350701947002719416440913073800607737979635321855924624420800113789237042039551285890736899268286084257511886423479418253001827327585406330670730875268027285527493196492313746778835057895031894154237324125966551768984225220625612476802833075208467868659500596696559960972075014891799913088198738261262489559512875625592594198859640137724223587177794786705076797633967500750018401040561762102289270815026413912349234147788039097027946045559300793168628894762856469206979130074775313805084929449650622398983245289025727139095409100510024088269127362037246286692634941471361091829978429658829078297425219933253647823640243931492186519738470021518989078434538143021278778977651210465724427951229512392505080682290348143695420533745552804502919649773616206952691283295686007826637300509581516026894140454160239354485029654665439994885485189815791777377425163203937640976857396830008119061498528844220278568795820711564894232139010724295285531188553462596851412864934654851852463169221853197221013331679209863021667889134932567137326427643961702838510088775180511268651639186262189356208407528779748740197495532003517927704267443644963673386636288765074519918592931429805823277597005904918405905161481122581843664342963328402961023268379652034419092358592050397551083730580733730836321716691813802238972637230512539241430109253390338347279746776583803896489267182364645247317757185997576806505456543637665978174589369445164845490921107366751349643725749184717030297711658779733563945520021798596643700129648900538946338878903518341559933451246764268966839746692876974005080187156700389290925457095405098271774190782944756804592159155298353867632623956431102280411892614050727965754910745197364516248328800536620751876141381390383721637341068381746043306893065001044585754363534338793644309610626034453435800349480866983110547072098152601781130802703757770204559653936556795914817418873875112974096481758478610314913268873032915872733228547969049135516231820784977925210313639647947516953023365135330255918432531438476782944884035175745307904464769424225714088758997512988559399830223811979661380998758399232068293272731133504468095376486903281985853598178424192039645080129314707238511285689511545186135910364291555021896791942461748832049642403502149665154778155419082319186585334257080059374262411677868144714611585852860325690812461133988524667003762934531359597871517470021095162576502900135177255158191376559632901812989584474670397171235533588691244934354686544598676957683630535652919445914347048064389708734004146999202624017407865209465986781320740131335210850734604320778847288646264090340552910658419350892620075829271032860308897483179024053022386595928913566479495685480953562155323694677676060224630992276383273393860494924119154879862527771965453813015230690991315058413883906810335835542047878995808223334668973936146431173503933195635320996943222805875414798732739676005562386570490355395545513524136153574551388961261821778809973274479251565837411922078105612561964837699752868705624260020877954193536664077818027645948993094201748012583758932291176168080987051154324852005578059803906966654996390113660940522904118111544816527673216341583178614732404586052962337050621671475905475453746234473263897529822641665215595244276581582057640479211575566208653926494600842734958804812476387225534233111271882153989227100760390241458786937187665181906292030212055101800342750107415757344795381047317726337904164990000728508972015039474420193133737063631464825578881927806185171027407789618299658022383329643969414609734611841969916580039039915717766311435713862981834663516594943064411085401594330683044319827573129163545212263431848819524293019957812813614718104114993942064525671566217783558687616161707383280084663256438697534884297957683397911193009443500395103076916532763057632253201971325578516459583279037093321199806862090540382229085162829669863110527022738923887245167828147501135574067917502475656235826442682126569440292837175719690600903714795189565336601033972036860420006310368221245790791045590280113052912584437185255818940999168037263286137173753629235696354128424348866408128822131253782010416519260656292672619194713346063025585401854328361204976803215670681358611669205052235029065017025497181173134870479289933940956184043822864578108816113416834631898175083511779813783849498643225945607335520394173518368882520101970126648019912280633118349924347648657567708200523391375089811720565202961417314247544620761670894527683827245118471005517032057987741596182019650159274684443306463650070097588292998309966763982180271549976458440924766137606960789107418312425211144656838598547584173520122036558065579549898797130590807320001309052820885134322113518814141668859818292571198018648937944392012978176635466977027841421312346770675745539158061004563157431014296679730818348917737589385128998223640349700249515121869896656695884453016383962296882585371119576381049840999270548275118382766686672777541563104741847087533200053348980407854940763485082036258965454747883264041004263272435911399277941520336347896817357236324002493321547802816490336041064758384887774382240523907854432125727692134321780871866027979800229351470184350471031300391235117965134288538106105044934030146274213898119633557128264628562152042497091371423492108414533815850259652290555724081461782233904119342347127766785827042793548622571237049558191969423635957448684277407264349089570471454370129001486118276329680469969202474871678877514207110924478127127380903564196310137232424177229509665668146861405473087879073094033883542370406172958592187331814401828323059892004825724560933193202689109695533616501840905491156487590609100448846938027508045700219606388191700573785095574391996667519960009425584964316439281288091919116175700430855986929426515841279816682365850618275349824396069782838485628389107574296813602793319597542764575344029926521666485750702441589578440546287860170645140200665141823374551990552537523777059808746729898109677442075192577208668637538271173613662690096559146929981925082469454516956161169277208903414053940221873980617827905451771918877998462153256126522873179812487563224821111660946347420061610200067017160671492740956487458964842080392474472231450347821185164828258713508284974714969950369711601130267845263900523904241946465675045222360001004843505991994551271335148856944466692814651665412089996029859572217796710834976060076377375481681936992873639800641462612131032600849458477467245557376240306660202429635555275253165698738866148444825452935436964510623306071357634374447404426646227138011413222463725063967784158749476609883106537689412176630792469484582927071397502190598263884859396570514618220797916644193854294060401482707403452835959675338264184987674730235190292704116401762870623597404012401704623255715969596378651991172422592100394011052110428230429756733734009118151081463549300650083880096256826347461057163579978510200748089134844442541286776314644392633804840411416296988788625133839695644884235309676025717264500730763948472174885349944121295630467136431703551837289768215360935235060865211909355469484068333458891082027978115672648477382148960871470653172240776374267821905735248286124105056645120813118760538420448444486866538931758482872757623807968153849347237042138197387844548819862961504289207061290203315831580774082364336618136176020508984200257705802373081236721446529916052018431400407137602541573698348083398559955317327753258313864716369046532062604481953757462186328854625852512538507199965049316406046863966016177513800978265909706639314165001106245669175767889559064964372873451343395712904940537022412204067432831136913670024290195548495962068364928740249375082174549665735554474222882412027373589429764334055408166758058536107237977712815243619569811188937571461697126936619992627674021659208637295162059187366402311033010709474058114856923152526874386631078024501897386552029215900058422451366143301561669680192081887392925910196832920408297215982149281893366813535047972799761827497950619654014355155149317190243036327530990881840693687788573419099804493888688038764603459658007985694231884679437490588947412715221525204428635341498843345412152957401212340415200701796893737236823094376309957465927025056750471795928821704865037312584635906471034813591959812337839573905145133916449829254668116802175617370403008730329462510866542592428350367896304490366263289043362969289882983606700041019890246567772303031267720109367829565672985228343980942698180389807539251667348419320549475631264831857259746400163975659341421136175916593964628386294176131484151289567575012128039561220892722288579112434085817934614762477770731738484012487243987191154974282312008224041333860739190298961623734596459287308227588401764187384567244320626560669735866955979324037993693476710912111948345050276380799824497304395696578702961191649720880581419732033458829674886614060903348213940318488487832458218172371460274304202189719690697435968963500843175851649979277442165374595113716123444584806510703897916146404259515259917082386827618120416586283094615780588092018106186228121770622711897596227500523228555067305616037041451699753296751387647544569428985394707429071896170043018089694616772465916484003653435500061395197425497660521688273169088671154576493385187057205254298738478934544400476038717666310630949905032712383557634843618184506772763587399305017324096483143154237829297188667500491285104809109234304481139034422440427608164717363362060067090354665466713421598977173714118276272931654442014103179339677472198174500964418240732456930585055502654557204645739738775912614886599291867486479382511447864421398008395254761786333679690765925755175346908097077700654198875566952509404018579873048903550844525850876639308584957946829789279218648606545233686628310502764694412202232992879113471418428384318643715945680412435167010710675850957810401358377650073203936644627474279604410879958723031569422539991983104581488641266816706300305618231073895920935122749343216690461844813792909920398872023338801830199318284616949209490511406158858289264262873065858374549967430106217988096639791167257711612747889368519775460858773135919372331014763029367300435749697388122522207096470044824161164900779917138474968574169732403468641234680140122186995962517071134503752502025829607220976719954432838782898399351436332816167019998115310608381781072007426634340812676195679456693967889107877905573769444907164715175489322548505934723716144467285442781334082341445169451758718686221838489003987299628626536775285406618384005046000779633445242828359003411638803708105766845127380935695241206487676729448729581158806533676059513096430863854499846686888011142210834930931714338691063937788902937821039611291307333565286013781179591669691910799906419715758384897652673512524100082488907553795267508320154958064879900880379777600812513094971881753096591198052578891001492786076181339844384156596142010168471930627831252408659022341413257375172579038764782678361965958735674747291174330588975819865811801841868168300904210650935820588617734727857433528894314285068269613801809765391576367243409058728431599112298157095636819584858827782794968043369204957755538053969790315088428901576786267486629928097866692495897613492255306316675851467832435182649099754529425394752705598069226599925014187380113368035220614615786359841260079804414548496706772763916318048397979625833279962071752292778328990704447458001969560969339329693124650224764033236498907233932305265396203140848236590439081627995829435963292829959497063665595861690805071222644704036168504993074009500398684019528476000625214072707605435962488159823661770862984819668214928259128896725040373153108382924607071771205233761959122036921874126804616273429563132562784867589781832215333026966633796110479188530532944917065024104037387935035694329538284617437403966114511920883081091647608497797012290504407314226170530243919961046301665094933222905430482664651058186335021378223439848212353218591397646492951844094710301455542418431857365046866516131330319690576151295690441668330925938572363186608283551701326327368911284195893065453975904365919699956158485763263914565823925454187063498824858505691052030858420880484491738455792347454832981898664923033658429388253940291062282252953300264792361140430278601148584500853370637999125164471587605384718940036512395429768070152822075398015937395243008996444475853642140639464628954947527409860812705349491609958843645990286025313807856810733667064502487531032992502544261874890069525553965288669606085990380492386705972339648371868689280722145437736303755467048795227461422927049004346479258617522480381991931183449212560985105434307488227911653626678247570404653384797438414789531865162318272096186873214736709080858787989566296770480945012945293470759690074284337701887778608699285110803998985580725346333312340159886960202679730199331727739476435626273157334374082454946418039947511861425439939859912402905414948587970119523488737175217033526859167116760115810959681938455987198996348427998749510701969325183302788718273965015003598070883420698989848040193721314880217960582838309154578632450769789092998980683202897689019725394891137775587474972816167446365565138621352883858007777106776929865742227980923837915687522486208749069136436745809909111625896168300669298237241232052015605648496103992573452176511689210128718401540086454487380316694798577231132312268861126052134863445494303623393055134229476428206262505399894606885807315129206457859865560683659669460805835689707930580884991884780443132582392332417709670725000681304417634895480058871596471088194961294056914625881538150047057641472398825395611527413273410447822352526726566425510668513800422326318228715274746463319014975303577851169754265192384507792530629462191946544776009827660645404287078812016798855472979010405749040944997008597311122015142339478440417465812764898395435082636140479091401697026791251927518110311169055741684845406744290465041534293182692250557605802623779195179183353358262291201095785685688500283196574561945562001456211818390418656317944660121920233860142121719909672321122445119220904276787245848038111914206991700942365188967235689741672952102932873892514256438750674103326608133463839485636415272833359329698345531044216705952518582654791156292949426445483435647479214915826027840215307000047733811645752468347888145035440985595108457286019486598737198066697454920276224093883526587327052394401767133402618094743150310328003888884097407984945629778735511938298606350267966542669896052592430386962688799848246541592180602540416324621303177676569628846886633083105030564215596217154710694759313753431113231941851682899759828649266008458106876621435417172537337393054780959359366774810920044691731418349628144408977529000707944769377565897467687091360555822630719910959039861575107580714926228608807360746440745853944399266596313841483672124093165943275604998037358512583343520967911017527732806015054369256092453600488106986683291529489544080506040753264095553957116354157881020001434988076606140351246277815360852116545942356445069459017210836135576295488820334487594810476438146062184987699796255629781238155090259890984638390238941374168033766421203343040946336005082258479689169587204770761631961136246182813967813737851640615770625755414975936479896223139746714486408031594674533824235202164462594846941944819143765994895428405569942363535586217422505384920788369757830536923442061117460833468527622475400889476725276777382656025524731201265670194249086488668377060793485814727787943895555147393048835067724205254221158081152845961297600973277353250218900182563391150654514551860467083878483615222453906449689103990999161633632091051080476896889804590485781499293322332409427821609106967811353741455634419235395400108100061737537908269108027734250973062999610748156044828212171372750256350933186875540693792882278456814673329498418395209749784831905509978136436577146870752632361746238944609818302843555935563340604500594127093153143594403518451115085020296493783839093290125670407272657832812280418085174096877332112768006362354338474691615237412616905182901901327622593469538781078173410600521850099015827205135107566445042670988067811970271719761024224047235697100752730872041774992227588050211762229161350972485430423777206516461990071738872293967746923174251962914473466637994837642421817188474385986965905876592575619105930971018084207789248628444434964878510954632454421151244080684374649442684224485351606031691183471279976516889289487399022007201059890261732802194178570481005777378477763271744319389782204759873356358587203895785160398240149396050228520156755786881931304557670230345839238932171076226211412809038145297971267402024978913619877940212296245743926924014211766199223956396422215206037805700564087372240135851422102441120713078360420655811198144377790297981703206682347625416891855020230105715426487260091550094524380565649903190345935205507618048786610186547676711203462135380616235087344133755799740590078327894252053529826320521721844514960090668357918155715752049434665701005435590596035457863906845035396295328092092851587449934375555999738801246484829278760283874289233362801717644516035059193705988275402061470298506702036768167851484131010025238170167818311572542590434740229582168884513195962648301974293866436808568173231616831314524537192919259554660192010786601990153666715990802158734064480788900472533581145087542959724286868647004662203359547510400699471623951888254178510216616034233569312155214537676531037350715908929690238384696735301419256822327403624979878376074963498023021632950439201286196239422998461443671916854612696702831462133300092417810737792681510206141291232753056415254375214426461885825171758589547193729997220773164454016977642529283180540033834205840362450591427162838317474836589447991596758784196194198201782212408201347249806760334483858041976789991436084038642262379133622354498087410519876229549524448663525789484830801623014383252563247114794143823812900245828609350525001233966795745465327021384979769342211944869067357648739852958917799181146579989410352086486701823114207240075391151565050854285731275125486143017197921583428958844791112371912321458416091742516508872478418395421624023698631903479500309063219357732191868844917096535884247759520310409336176424085473677066481867165134880211296126441715929192466584760424971513075616520191370991260170293379717886416797581310505764278431215225050010325767365996258901839607630645260308803459059394063710240006285413596221127609101525298767454331711352556352032711813346341914917993348859473234238759422102695022848875355299557797681604647236829162704478590118634568321903859902286836696643077135591720512609655717301275264620764707490491006401107564104602443223470092669393588228645640023839466716076868672314761518529502796154471975162156877654693981554916580182222246911327302439956436315833503506823769126491977656151372472642301419317335551278570127624059079974193665936112466862094457278103721579764948026019169266623063430670761376255389982617610100558703229138628069396736915521085660192239093221983123090699376036222180830991716169472615057915953818680604151864483132642980929515378841149199526883819204608659386611244164707419651093922882316339968768621921547411638990493540967112844195687847968346920016016787648505018049509251150916362983412797852417700739471646170277539192259246559972652628294077264926005180259771162889391401304117261575646372704907211633214832165224481514485352057705083449446363435203640763101363881807488370745480385349798760141620839399143828435289101212350119353047900432135666513629621361351295589215526918186599996439333340443411498976637404869597726934063595454796775157584393434820197302930873129535159921930905748125396454635728864652262673743447907232895153045398752554285591375010389092306230063815553799397590880699957750312147968312906286389437132186611315555702989513556245259232734286811411081368558221609287948726929910025448188591092769986240803027477173803964638269722004031028296621071645756474242786289638248744414963045533861434786191712318066918253694854363341625804495444270160328105910481951047181698857337333257461916601223223604333091273765468999856552921997793034425143418835591980925732507002472802619268437230883304640628291882141871696867544917879181927708111775529014669326588444287185668096179805712871599643877554730117699754311707283539980212744379997484691924224163984072848383355698700203125801985824560348924610254276815741712112917056355272697415024270275937913650533985284879604875982567180375163635352689319239064888250344916168740828911551727235531845164662947171065108703712799900692223844228386998224063329480112226075154123613445675958529644296476893726075088354409240732458444399543600789791127145211168031946299956788561608089197193640103771768913934968873714399836532837261987719128984674793652065503688317451267366790579710419526244760048743567959120501257008805213168772493984005102779717877101523847451365172028218126400284866523550650510412438134163737547202790178204366951018054931939483527389993209224741312949164447696382307215080171328148463311904615883524888147052266720238195043609168557590751359173715003806368314989103399885032797259499378275786914937606234798043451835195094357313235052490947415382904856557016123983995747324516509232770445409869802789979440617846867823072747595774770500042008969664832395808315185670423823936726515154197854167525112949238389562021195906240088630445741321911334441836394831659548688733344987959588188588289053502405232860594852081914690827306730351745663378410641326673073978364073059658746141650755622107187050535512044121578464962670922376353707462524854810213971961135647310657768671089460681946288298852962845663867305817158936093415033824030053361885700216401076465695442799375501802224882422873724698653888515146176058830659085926589869022012202788476977409660762172304159610234369538477053935079892676167891754166664982959256157324060805940446327403092712612223861625312836683550901903090756296115676799331247600251538186916060356809664525733054694476658964625859961290376734328693318366163449457907371584859576364381393080526701846180946685353690678658035713354431854803876581363608958034998159021875796438242503411896016666260003216927699104305262634070574307791542791597184759988582921348815417749587974282768509791341903206314893809324587582045273824500389979157659010237585372362293275977792274553312974246490155779839434601576590147119441268481604646050374820333430914797804710503211103463178624062162876369577134496506762375434559360894518193677603641700262496779345936414799414157559012891568322408678319952400613447630035465823945410949485627006425636354478019899744920926758074126383176922047180572769494546582105724433894849993623826293163812962044127592453452274554183894253894026921279533677658114653127310558012069885722816957664196270252904285430032178814351651889833355984873297009163721717034738194983874689894260104269401370965159226030155303393449209478382244349578524157082514962771988681547218368501699930824415326722110561195057029570939174522363461437154865133019489430871886826436060338528237040912272568896073479885460879996184032151586437857543350038567327522573515615281500311867726609803195415618323322543999156168194822698816018491986507527378652312823515529539138599946430472996820724605525127153789832685716890864265111285443040306457127949822544103040415683985842121247714701545162339917178385152996572054831593874700175820614950312171389074450700832140576562411681229195078157725043496977503475283354369483966775937997547526004760194322113629832550174349160900367219659213391913293710672801764557048732003482052111161094481682575560584624430179787003205773812492481716275322829708394781924230062484149167801803851770156304834134219409181778171925856044739073563357634438741874877030890118946639177107408479399162682987678821065244714001447053059996058663932812396407126370417572178589072336693133947239932441863946020278519142001214463965218922270741228850768230394941115457105398859653823869856590731081337276744102206018326883236156437295595635017591940343880554545842716459273159443220446394221618792994778707465861913910079991324897229315399698212034895313532937770908767740142061215243365851748779125250144197352763708882218107782394729417259686421705406192199177637982967797892070109580762785374604653232276947747168589431020438848826428940062723556804220623638243163335766266279378204337203768830568255450501886670343545196121064385350567246458198273617860969775976780119214255191503329872622389455834618790119363977755131580869818168032416135787518337498302219624934382691893685540008103228467442845204795584536804135837904355221221970692741271517686638535416500331837564729176214239661201784938000084390275928267910252644618458825521368704192627146320976165358411111974074633471190629533861489731179106533471458245136807301747125905238768982481232992807111752200026818239710061237685615835032958459597568537174654934251078345772759939763607803901568573529343234948191913492926195485588818563931226298365638322129666879082280526175560555780374398873948466668385917427064558661320288108651994565804966278446616884128303066587708955946062138302029444613184309494828340490423890222502689348927116434275938094081858299443012320907402562514944079146430720342729011701074662128289678199568376460142234924568726136814095114777313819548137216735581285095599192553878209305989563014910030466498471289856068229664840576153407835914783436714221535825648620315083026848600777086407295315211003808466559169894903438530331136990343212851940153153427299363259419609509628422079502127793212688471635955540666313786470933019596654583181142286142587736797420464114040420027975726188004166637325614068020606184651796836645566481339917042126717679887069335404565805794665401070647494974166858317457462129259127698058628326514584566400766214734911754352661827007076141305837536700245440900367386693171997563097856291598460803195712338703426656387809550405027581911369252383642085008553553800358430042260787810243516904424617008563546558735332181880715277693474313033631918970842519256243678648216929194927378234614076498029316072129980388938758880623198272477362283707546855962842925372102156197381812970554891082188583889231844027066917049597466410726871094030583508089686957139389113643223311269634162165030562433707212234278693683953646017323712280618708838740696624489645833766930524238797430913873102508753117043529151518992344526688114115402547416111309280094156941441101900375747899351880986045300715460037352831661198993374987278817313779732076418191537182025667877415406124768176015115633506849337080116463952394516465619420750755145257775121479268069826006770941725516745472897765591121840009370618550809649361949393719996162962026264496449468416384390609040723440388851322316463595666979148003015361983891150894770620642653062343341581812636516959787509802523155411252422189484716992400585356921052475933297953246116103302043835583302913812624488301180947145235989220364173372252243444985350926544161016481407912373008762271777584414064325482944261548416635703996918746328682525711820217588546746454609678239346102877939604241518019214622080320545817501526495002277125853856858965455402600206277757147272628522776177912978528364852994543147215401010769483415517234252552736884918040520438783388771568018497316194710314877547728291157833143778981439815677928894890951930707975133388215795825927460332482365479005284293766491101953210419277553793491218382206312871337376728554242662654835255458081081977394723288978708013015009519378504209273233245013940454713872868060348764644683208803025583828633316809724356874993074253658432273841123150741839434957916078302150004173896248869267679150150038247124521422742881810796138618557729067057077248143890859101460288102337939744145240091992291729626358374286218174853366297112483829390556889368951329703978260902627505689165943218249065577445760863968656438277421584297468508379539153213260870244400401088867194071263868091367676081035750494858948315350979689632020125780417397061387761385876742829049644709763036236883208740967682502681707508900422740030151696449536646472454078348931820162492686989512960080622082679812661398565881278028725479819997817082437070780073400598682857765914839459879741729023641929069393956977039021819317110793813327520248746261611606532142576696595797426380920847547944866103337507075561229647720765838753823575104332484909372451458528546481159636263472969203599433422137277818419025741268783073833193639568163137593029418648995592514606395326546032787813226970119419110407636262174554650232699515021437312650437119548500922112929997818682021127743017809464274546388600353464431066589347974645594643145309535767100637794920386501917972922490832448392324782663101469212793237072181900201823160769633996999451266887277907108646419380582810762726291722496923086283809296905345137196066352733965697224657292391519402394049485047032714419190027594006816547691117326838674054435145702764357830484235278783734332474774686368880334356944658992093393728458404273849712696195205329758072976641395291095526678223726479162861668120594825480397491098829188620968244743102043546216356623883703903944510781711462848075188340272148357239295447778990125218168481912082293925810217506501496548024172097941414434886956894893218821791119384585910042301308623866788636916615385962054332854301274127876491464556002317479207422593843210687061983829277109236428527112916632244452420352793123923385882860222861596909764707188201391698910535130783212624607129201297217677130232510048113778790620304606116478482534476074066879657084161959777721221575797989601642794840180639595137940563115132167071042373750470064491747645843738312905545282943375832500266317327417381637008115581590016900501962694029053668195912781813088907242767756791556416219015871742529980212554244481802402399358261901578294147895887280877201576451743539183049573497333508108235598024357451904270789268769401923579616811655522447288682790298960437008079786297486445389210724619608190412987680469671785820177489182243206292200986860792066546779352549876515120285926339558332038250486285872925357388912204772226024764278780810189861353656776247894149164333225402241585067274480751185870593896615151295681947190089473348592246163528737526535113198720855820305698527944621076669365914465569952059394449657621793938390066196648799417042324949814409534294397112134437031980350760161087350998926034214365532451046958041604385367829481671537898874346997837820135811155473940981268965285213557789788004803969439131178122245971117022348736702575182620432446788326785017387271431442698264227115482529796374475030884021895102326924356747127700984459818906642889313201670657270304646618128393795041796877127179454484441114929011704709133213190316098926944201531775150164763493747695052316051435000237739915100146303170517004771998924745823744982856117762961687572708440114593291527498409653407101625253763326949397405150079775491813742596044002276164038896333751270749710349444039287256101333705007615631748308682134363180716312470264118329260993012179946631764714970059853488378109548924564858935469194826866613091130389792423103410814315925150525605841086211187909288252825019935177501514354151911989504058695053932754836655869765163792754669118352530960857406751906870516257288950799062402566946238274479776520287776126254314446349667644600300264384768121432479991466792797911122339850862258070206321320104099353757075253854718774226125305026622969309030025203594539568289441485740817708013318730658406572145645900224052280413253087850687954383490863452815139064523301196644869414699825181041087818043455854451152712041690285343820785360456404893042078149704468755214611915384320225547268226707043454749178782215890152330200327021357980116353915063992070856061113454479424590786403493550724947038846568149173357117869147246382186749796905367589060578447397053652774052383190550720185423670966790904171221554628766661873262855247852210058827069175672340167641967986300278976897688409261339014548542850737124697114224978878299127207060992828163901250012848330869215628451515794618992171947114692873117642392648712277631187844075025846137582762472103809950951289418250981374269269634274862877057708362104374438779849363440288150329525649679974286380229040206177091620130057073546363955264463169594919033073254656230352004160142788103945922050337167407400230075395869156115649436291122975022134765642832952397090553973333821067498247467934479282072377054188334124204825789629120956099817068296606596070685635304819990187886952422596315923090160762967083976525298173743238660363182815403376189765344959258223282986895924125781233873213136548353344798288369482973981011551709973232687047804139830060081931549357237510022020170583461496827373460164711512595839174130560281587263244952266032361223783524285464852705993670710279662476570636457766752600492153977017717790774691026640363254021376326790582524432526989637306198381638871639251670085484144768490977851338056517915833530680568639907083433821489660439301146542544411412529668034138054009823342091976311665173461536847310587061986172712924095970746100348562320247687318955104500496489070400221917623832393066191789838692132948488280863464657142805651160685945736335151817798125772561349101954880284096942247599322353249092225518427383294187742811793468122596245682537341253863954360486012541289656303787498242776462489174007558821134865824920065915154982847485762286538399921612015541408320271433677988999593408075507358518588276185022842226748508193883147358786344451498218701011721979347827119526937962740152721950628492937567144800547545009844927142369239928114149012865269608326322617383481215964632380810112843478488048126482513754356736157522771687191285267513932226551137535750326978508805716969330262789348226725450706510016502157572714462042361434510256179751587161698489250762571000189583309177453719350897555819075115468084052075676902629193366186278356524299654836473489098176786931649468640473969285437100289508227734781679629790402475099511046044542577977216713000757380954661505868606491022290136198032249767275519278725837683287905208259904925491876432715988162971233418857059464114323088994090932169944582264938843021165127501778170752551026965571821675735818846900422324412163985860108259661258516451799755518861809403846973857433566209319353095684493031395120858665127063268593993110938063070540599219671885732619585810270757390403270410081487607688650621434558131744033302435020365569058509045147429699947016136624041166874382478194641624263831873037245280239324386009312136009367659286188166113792157995099582343952305743405458936836276329448735026813518464969636859928693902537857554956337920431747971400841736891201271150019522192427868833756019959067786228234957550957940953481459769174600528502452588143904239217961321142271950317757508487607798392448679464000724904233045035198451154223715017224442244777843887139713447209078984742182523104416795210371227908178085576702037721537313677803652982250871249918900794823773202238110854025180058212067847647508408530334191742029250207601171727832822709783313284026495414937274578230675323815685731202299076473133742781851876765221238451699913526746979366724390257801955941750549795720047310870949453837765527479992884745522023393743702330096737426575668264625272212259055721302360018854416435604418137913960583218083709855507601251162645994586223819116458437358004411303852790218351544010874352213762039918606367151814472249169623362105897808468193762030386453528251360215723331019623825869277155268066209813634487276229210447559929444460158427331776084134131455786072820491703207421148585482149131243699610724741249082356525712328233478626935925701588317691382349974371673092300029709048480729118207820005523809395018241004623268142152957109802551762095465560754755195839497323791219813603946430503245662289315438837494145017630887292403896836863784190260627007531522046624231144356412168631831731357474764492669428468065881118896136274786910829905819655885934272018158423233025759053983298500049219356503485214475041563583110224623445750331327775021339644382759742838214535608591677193628946058696341891075113702473639753362847037666685049847893930582220484285365468240389292031264991801716437509454038013804581452536935536225260309807893715130115160162514046535625894603573497444382782620914506765648980023395743749799603059312402382499404372321266190123420448840955817260833381218904629425794411019296910862931736003180953742726441464360775007194323101925663719316922904126993923594059222703494317908838239222960943224006713238534834113382409306222293907162897250147523615577707671179050078335760460726484942396332605176956382709257039635411217515476145984281680205532463975552994885910397737771133468750078528315269606791289304953841222474213006244906143828735792492381117846980626367029716552834747800328548906747672067009870881684802796616108163737822041813678181395912563784961553380049712665244610872729137983530578605120345717714594628633150143136872329058427819522446725634606064325014271166134450182350928640819735381328674738876745793307898127465400030478618252520878941783867903621568293177861160675634127382067803489770876602708152894556123322419356728190011662597383445936496023515200468079376735305359361868072343072564254152156004355033053627116852696632220362572614804685602579459793400302307310121556766327310349163261838300518124557761491545431386746358890125243262538395406510762756795044800358406416250528061939152913979835459472398788243869140417067306015899723899411645590266836458961183858037645047830948611901884731659045018320629581908456796787729199903199234320818905830593111786917426119495943137726398135978671274721135991525674306764534607064943326607294745576292004653282730445242612856263844173185284745900959899957012740645109656314508801874166038742108548589260204623382071329099686834740990389261948887340756451188450040990492842740825508317491865996253940186877327472683264608777449902190589553988980920679595665264714178935726626309714874530603845758930621602852990553082268104738178587149898116939604117011968629194675455066805349994832552799792593569837286852253578382317478628364700172119095462661308807783336504550345152423622855518402927638161736178078897465720188387319947491310681043135533607990661983745899668428112344691028667114664003746274733223492475025755769678315615237288934239501334194743671273045556647636950996514640131393760149446629625520152846573984343441395105831861478748546582398161516578560931581903880177752219083983476018929415621912889791567417208204753612008491799904853698312336782045284072516972661077238503732117384137409049952686523455204620027652991587430079542868414238255175729558209960246989751379491748281211127631491474697986757111584328447882968793388921856935010122338271479827263704051960697334525650085569170626478501966155305932374645047553182823772777040926219205496950877047326649907415222322010779504315886960760713384940460379152051182978525839377657681777267190752386030098997827734916326592537878366203606568393002457734464476177199268364521629597430812081818660809846410748848180595998997988836030587088558611049644088807610355030561520447560662699883206388935851745703726864911270093265447444089874584826235921694716644664443121804409928112873400686577924170656792909484882971536343207467979042390011303742626641240528220418264422312194902887299867605229182994435174141349988155908740214384510661436734482768118430723265019358315461355531410125020499599634108802689001546839957569223527786509298155942006750881690374206957546612584886481145627174181786171543366570549167337650318564770272243400996994153349011615727220516212074828156390086569156885822504470771563284236406188736508435038905375690920013176309605888982779917017973668947078486553195690996127346795116673498485908105237581128341952998048289493357361493567361854375151221334833247598720933736809063675033674624672854239938293117747920112356776921022684109465609359191896568499287019937532819583779988348497168265013204951176683906267402360033383681197536511950706585821087893255287839682111394396653357929158221371593167278704836681568710030747387784453198753854224639856681474172802799177200474125795473978151979133528491267564868627225938030827132172703300716025697396624090175698309903644632037426819307454632299894717680822218918217321259813626914091365279704176478804167772518216391164338215524047014098101619486051369537080334002001779765456905125104425532098859369389208371406627294061500794871389608292416422977676900344343817799781405844529329987475622057127753425125747590571753002688491138881226100195472434306132149285858009479250631789051589230669085433366624683809477355220514655842323710520188123777874741326382281612670829072634284891730789747802795433284554612975243080192725596495850769255715598778158682453373378018876429191358684346652158808499270347023040958860937309190079127513136628519766830084927252412224577960531141678534091078145719879470190075797907309605553726791493132712421444024734295189067156024032162354601332424004637630427090377564352589429730072102378506786135570180628069994595555366953946201690038943253350176880595751175094147899287696152851951939403998462309144227462881153328828642049902652284445473393965779765209904931715907988540292334761208481684417466313113401285605657568472638342291940528674463621645167974054850087525597770357841496768800612171093424269786995117446514784689529131159530564862284652439317167799163410399476016412768162807182391885619756269286627322253705514973915161250175900569163513200837084560279378968170724942796879236325109764021725068243926261011370347481252560756550276856209763872506634628160331793215541747007894952628652770844138963809154991207169409114624166846374516786114658837924682656277582181090397141025063389606696939532640796673714635698044029709230995295914641798817272764839488301664733402564072899926390817961501672239626074083739633839832755337502733220126043761307080996766834833403677500264378145821626332117999271307846814019029886217339373833145522486089402932931105983063239308161623390279608887043293865558435953685012689452694818800531503963815771852088019609391546294529691908292333816612106099522017003131654385868156552053167602290074999542606883300441848995350632728167243025114822314153711352575873094619173628723205600961993059834015887400690290246448985517510025365686310246597726460924548145247069699633611283834026416591233929413234609670130730056287925153629423074037874843656939012087750822643695297255878253444206049994812725543245162890231154712839343809237697474625354539043496261906775182677136540039878455778486649463980830446848838958922894768822847079791327540856714507088930212610768339061896479431905391221953832269917736306763155433344469321326842284145489171672574651362671574552261917610319618657201941170254864201710714946317685592934230924538197835609087295473579276710433505820620746933365177097061703192664932882148118296757217643343653891899855801928453647056619752881505824009551105678144034854711301389352889437194624607880234276004513455993444109592703953003253254400079497191921133048170295372598827468980399072053931306013285911093958692383916002871481078156823439983526703287056287514693098142352844412445624061438195941344520173649258030677738625282667311434070462861168302024019765526227809065796338148047101931187983305968762941122295711826920580017298642896466122837878892911238536544886191567655567743079893398635411028520984453347912792700084538528335375295078551057574353929218487875712028862443971796857686816815866767510802179764861959596694268538350800278842822808955183035748543852688989821126157030078551489675611894888881009135457634746597944858844255301444783772809979327882846005295170117565184410955223859529624670660442245096949616717005070718271494635348996709413891372570206609668531237469816479713925653141889188077780128735956632285166377754842573129882391368143765312573557120348270418364754934280137108355002125541018362291305380744697519977033742332305638406234924299759177202638837244020935047654181110689549539187887183274006492268453925471318399798351309617000880410249582075428339094273485679307667254857775365477899770295652812832435498805970084378704481373326793861646918745692022816107446112156313505609416699818680212524128076593645508367972657879663063970820208873703638363815715281738823322219425930844266468114683968169639112759213340931491986222624432331967668540285059942807079366752938184093904134070604064971960053050122853469413208581851187046079820553826560761818463168967896670505463019640362808047621910930523740694462101755097856534558148936090402529186186150520053012774730559701092628936860071318098859664574833162938765886545516738095411591759015535520534997278584377558116642262230519706953566744452630610150431857317855727340290273863523278853095167562683099816231809976360321949383182629330460565357920406026510236011313882089855239035162112682967360695818274689954087668702902944311166022267072962255626133386125330054851946619415854731212278042020063595080674196554389194510317630762541375006621648644111779434047918382263498073387381513208032224300639783589005217393016228352176143372653551525415971071044427576317920382170849763504570436229149276882664120552321925316338508347066151805802514273589929981708820423065241774057239256226061975888190909298104385508533732758781258425202722615530190491524412472323233140418222071658920965147507737562957259624432455674583847822196797530238698672955931112104247422776693605673473675489112688717471167319250798974315286798513964154966792316474829800967859424559700735697388815759683915627883675641517092916371887100310064791695020613119019841385183741612417770853528931520655594429565541870779118424310781433197156250193520777404837227535415727417570233599080557422871965725532193954372450054008880403992084354621478994604505363100719303342856247199287156641582832862655075512364280317944996637345875768380119781811336232618578711786890757292774350224537823526197136723552275535871033335193724594137393827491293190799070213241305256553952945064345279867927465204628472505129160270602359022520349961038123247972477257148312631296177826113837328352588228290759878078922067177290102856682416134035300831404900503522522721494312669267851663187389966828452777073718732838314325343982960653208115771164084152805253149152977714648827916170220243799552148409608171891968033731170385360712475631512173428339769017436493363296570654685394636757275156736137893301935282839777336351767920228451626149142960106433363064416927228068625662796542174527944282458464419964855920279958374450799749173994329944294277327242022101000041443719580337388235338499469064341218501948532008539174133671147697527747785969673596610069634081339947472641368089367113059042566270303322646798763242353082969908419186495902017054509614021257579192241428703312791671944846274828352418684794004418146138659219562865822781660411595999537929032882191249449655786260559539339384309660053654812382028329382719758986955421211549776372969893696050951582149932790117376654364545775619535073985147001636567094371232950634992582323609161005166651730600667617563201273703024362896123533354363064971872063998895037014495484450005993573338533314228359813941155059595903407204284398645552946693602531331812311201712530213936599166642470468707318260962064389457021311408913351684335108040350003983513843140436247397540155160820437949502057836663447594623125708479113281666662560080107349800242442205239993534903705471431834952098451413270673590797776881370620638757694800333865663711448590213620273156068123176427311847331642723985818222809027931462899050330706159608660560809800197610082854173642897461403851994045252186907284303199416164999755503638425570027447056280405462034185549121118931230217627058103605695310242172034832757634986976680227175482908128813232522036715896407208758092096576553123386225461321630743543373868482686335213366415685872513623132327016647558311563355742887269639267154777568948387837686564384960420121804904902356004539921278028394645759109913814161768687025608797806517512129383059635141450225261319517240139876243441797759725639849212088559592544397840477933910659060641731206116101990670670395782042675568191509924434130608662745970489017577668465942459522825164953877181172161557140538878036299924010081917671753461399371988579158573476189025535716271145712469348343031442776127840812286187848200060696703390362313639782931770823475663764102159050236652234234312562866158079366079960286874088812334522925252205419298297676180057581912888791755547187680912065382491744150282508052398774870961840029234227686467251115872476553027981639342634454883035139779695587555573534400032140938888191123558904952919663660890618407485752635926333639564443033978244572776736831787224653445795390906199880369945304183124322903839787418860097034303410558537023235378521188505222102924485779863554078113154856173593599683728107106472760669256755359245059361878941226262498393725377308145811702593799731806857589142769575215101244272071471647079819288045945697851152604184089382706906267729091378609070697806847673681203118802824500810111857648102848141136329823973587737932399094705127936026970277055448341789685378603648667773439782273452321046157003445952695188553521936101588882473083483940754953003584464374419303146366474041244923232326160848645866706831536317122837493097681674766115408105023522207579334364843315897173587922810911952310540144715535979014738381503130221461385577451796946227528558342938932682357413100717697532321739220726478894719062322094686579711456054797936287375657359441927606610780021080256596956309885756738439436004588715557624379723167104924876269155896799203336939391851215655295052238483413902182189865073888268583856143961111140846036655296058634304146632017401768936335143084052427153597988252289569846377358683636882121279394340341550043028074723218376806399726989322125815187547674140284858953748356194285695615756292958740308508803935213894859630529929873409346118476138551050221494521926886215630105086123977423041347188618215026064579074185979358323240749673611303319319251486008364340536464896723509998301006533642233348010698071969399392555319060165489821875345458825171164187849126389840867347324308040353141048921243465942535062911763523221245221557558030012853610211075677107230446297233884031746014741789693692767413288823677251970650392891544954891814860725620974602743031527694106168188688659230113435706860806391223329274064039903618417069594622234357218011570628175435205663072371964678019721374989305417745409667569087220511747666096246593909952891814319619795514378478730899496700166252906152181387629925273343710628091484510961247474257710436601187819324876817376867188556917709526538827079170674776480011299913445513719302654392383210708941671617989501112769027431180098733631854688427252040355826766746487049104146625363946022796747941049880837220373783356709861397659506831924532604850101770075326860201050937847994945313548409946464032936569365677015547827593183610891659102445945859007788723421743547468624899987496386154295526938423564349779578486227706639109374671406697741119394075053643081788494194343915423577542138831870460017842105988665135350790159607597143653606140235626702143183629947965519651353303035111334962289592148276562028111662041085295432151387924829068355611607523621527536894454077089319185912852547932556820933697891024214362877544276091294970063040619875961975434256960050404563318472005423995493669980903838389245172151995581034569059189134930729941972932559376657079528954612601160771107516862266916278515278131350392900599629006415160765571058728244555246526315587980462422705951001558961819101127413335115316340352199842737828214693337993598861846675655138446744860304671215527440693062572581022335466299358433683159177085791663390493006737308182831161929227396138004277916593906783187213789989075477866979185437168645723267338282309921432078671473596794743947383340063212502447844433492752854241714836566662521047375214463566165391381013937019241649763913762729572302526060770530360744622454593110120818077579174273913703134608030741332033055800690588184801473511761148671359176087433585230353748712542579784918348513108477807984936611631330956140127261670741355652139139368886488296101602355300590820306650194383801035618979522364908607406493503176650401484879595086510950293354818648328330935716760771844439116161488365228856531595027689284607832137992196354715309984025968378816787808393653984412731174666957953526469469562958833017390435894779857229630737663367495940389202263474019095414264824684157667733711596644394962484250386281357961794385532977120646442150909133587181079522147983360887077165848253803744595344703515257719918859546241584350431848205939641720968532646255917072373659722581607090001465807072878695884475682676573647721883582928947075743762863597387744195103133899554187739935622993134009320531727838614521422472079965000876523997486007719896477357820995498834094685330021362887310646201146269498259210431185860748710873368087900243929234188581314434714628069597045159763274035325026396812076860134702807674653682425609193490512207579058881017274029691807078900231948674128489936249802876276606157507213227525802427281270013956167108831455171466544156851690658808960507944902646571858451839238501819070553618569313264653183070528101071300947334423076038179309363246945786468423630043797413975653514303767253468090758181933864966088011449157552359522696012926403735135568324960149761750759035454018335863179659124188361427853602900377900951099857674771268509576778778995024511609267873477681831468565559440632410046978138313176387529744037846735816168738727993138204726678637388227005857091025109782408960921981509980505521650758920111330739719382170052316002782069895845546472722617450940205434566506036019822741970399423239960082960955746801791543659026310406808919208869778430566252877436234157591924943008752888820070100176064418267101177026490063674166302749798858870292367641634024953737553968129501865334119603049907793691337023773035693975916303175585050147978702987135947770822108624799149042160480357696809795819985164545298311179907978026013651474834667560304429105503576370808044672208563123098690254589865443073253313655094985922867407841194416424291811963704343345222666738463180541550097341808957025213503411765116895980472482214909077740986507929196473012860779156855094479075576646574428675893290007235623160202553655264962704066772217932555900968346288832531439325266368866092360979208791809679971701748268545626676256957576448576575179399369409528888543187796934364887595027963549442860938175985542528145897370476811905171824828115228690696014116132668153456218254630644397467037515849523182313882529535231512723719834110920556454603143049607595914336882179470181273279875688765365705952246676525673604644633352539130069987963683577452978435656341349186103156227748934466331672358173148777864129723383246588506317509562683291307665422615611839813337088150600637453952372471978443008569661773863859783453714941554671688408748629318543900782926621812802983364636415233787603926271567928896150347084550868614353189503055269860585553476180161863108195260523086461398787765737338045618295094750072025865885633514869431317437063225555896263212453972719061589707547151102979940155386602420074525405514215963029214707566214156845887623891217435715997726549749207594278139091570339019931104702123521860263138105264949749786858649828454253208081487133121872000627504780322142670345679228063799376106906636118044999220363508096377042654333975394310721914509345540522957774554856446891275671317451644027646295470865665331005881219938977989322312332731760788170619268329192367021732789723012481852573019384887320370560948076476214396277652370374934984583163797145754747004899695477476003574265616686278300492785248439739270554153766819974074716110826104010113141602003929609242004008669763282174721972851290287841373378764436194176463765968376864149669464246502498988393653727995491160625640564652364242878125286668026826821715050768562806916403638536664049397121104358222823107557521231805471665490050040671048330969759620549893183191898145409004759405014139966127684189226578824403579197505671200107622820884153766003122002796762421919931064561064912881585669201966090490232673709833311163598093008410587896944335431799221825349923455758856344786156610310653295999885311261110820858948949656326371772194206673201671700125752325664893365441036473255292200545958610678684000280026330124998418431643741430461590002922703087143115014378135510090431933725376058871113761738126897792352275833568791269310914524866041674487391829885327148566341654952658782961410101330004525322539498045214664199532993977696818910446361395971964049738744225337213681843448605169542189547767675291957053028901853300553645650158401970230416362327680414772623197110515393707905122465525100883183164800846450997203155911767336627464291897999497131415167996347689672043132456568705927343957022460531437729285740131956442884902137139672186929233007251297277619543652820151278807689759762112048123378326052386819674576790813759199875479345765705720779305894020646416469056359780914607087976645590125428699922958254965861590797019515501327563905096848092888409984945459281082685420579186899274059163727577751004638515297530332622472872262752320080383277542013727068082427213789567436118924674668400867284565350925603261411284433951995657178654213433803809434154606334036599706168739060258880922463467104446825896164552261683549721494902145749901764831609988687425622222360165042973096661193626322599092979080066311696079082657056817214387272248846561686744957964443710659644064919180487201618123932852378861981851977197827420471723917904261509898787333219794004943797598225546106394388075803420530981457452815810703226631225538592840848480178712709302418476327187188487282930737450449243420935243788993664359388375365623457551309233243741966136240330754612171967105251296341452517253004762946872217302692910749843931099944371282127287413164645521160314131531166792456963225971814263413871197789397045500173991571299738072399481025747845956878729737928582765755151491755288236932377982424191068297386842786813440862900011989512018645515913266238370445212528525232894545839502420653687080998590851537902500380991207559451416640942185866733961182813071543871778384944271897400750984218010997151462468569269212385801144314256226518020027981075566318298240003069342274914267588250679648202826003338473211261392812252368371141563741782498938516882390341751097570274668321182604011154731625229317507896953898733203162365513186143365319952961504745999489893240528348433214601773417220544266099346624363363936288723618711349163141555252638357609549377690222883414697884308144213526063877809323048014630977071244977029757845573379377852779667066686630987952690623724477130893838017327386600233250308238142655269024665909513130409497325580822210799023637949874714936699594478588091459403347904921106025995239295323922757030953979736205814940454300290204539060972572831149354877104498810865510495461760590518595964067261374269742332605435960491292630112664168599957879296420350867033491176847099671864474011341752870083314012686111912532593835845505901698678368309133929003712704716670697780786941863885399443408356241361781697708673074120605338692346451662382682284258649858351101702456270746633911780662623906787945242068744252165477432337594388465067708006933369037848624157108629945804790275118486402833357299297245186058557302333367026317128212331426166116197231371005519487216259080356298151121559869328918600044550723506484382451466984272786994356235933751213859066244678033291160583795341235959200708803381575488627129633176997925984709397845499593428150996252081608518423982564552171296629201682840079781939098216662756217992708687248676335132885774230947168100536908551417067671900317100091734382861812462630865405318331777561854727388210924089540892480642385474634338120422022781920651358941211331030979704443292787747795631758101481780966353076465692822126775283702163432691659857932524655160160053614490907367253991716016555416792690622915053959722350766487137296844526548547809743489710761275065811861781366718105057554537288161088543878625867810785600739864488719165288427668805284491713716438182452594370519778910888299286570401937832811699554453051603926490750001596715605196894575073793236384699914104427216679151163022645219387379685579318900283075718045535332386794206704756495225122453026981041367055802015569975147055903960970589346331971242105125363609577130569559486928799224521031203409781967430357412135202114571472856014046912322464326778453838416450482808293254456335529382679881230502833109583505922867170053312831794718649531840005082127227604811560990337819209396450616723870061335370752491830367655471224181334698498082948705414204989647382174967018610665039154877427005304412589735593417453215708316480262342864299187788599967424587280678582794504306596713447537227418818718868671219524833941849301807206761118622353968800853462596546349128245010185951980828434167456946948860533394472983926044354302770742254441889679238618910654179183976507954474435163565882079201530432287462872645667984834421851739461341817018618480092733703746218260873867478419032996398682162143854914013554885612913526942074113170713009625518965412894044033393035802788506727289943367865015674949169283017555464509459609756304430950803142458630976538901856330258891874728271914223302732135291417475769474085479627891929563982088401576244201723894613698281942467888251812673806504014293611852121068166044377255319223780384201859532426705006093970274197044127460597497272631566726180719706369435674185495272812587525695549204116367228231523496417151179025050536429031109351280461589582969315141773236650867883126794428079113300546310775082159005616510887486107239548381850614241107570699091845058046290116089851875893916382905856628536004782788269572327475913135871220173832412266291995537806529019287722357729014965107775877017480695939972935092212139386344630551290137414811472934556302102365534861344200280659819456878386457498057385570234504908735652255950375083665462631195655548490489098112638924385891748499202778264473300393268735273554752937384106294536808780242815385356892692024252540916565604214677765473277127151361861335201952841969623330084159341875458038513142491755872520953781603991940144389061335849489861136173417621092020783374172961540649733619969493512882618930100240597112624234723957360778245464789288510063997239849974875230940885770142977826224236690902737409345649448694188473722360767089669075578020661228192168265248063661105666711771265813471186107437596992107536831158710292265994472365075726450198850527915139296196497837697914769715548549567874652307652215960978946817057276183564278892407955183777765629753236898494050978413643815179981986615524293571747928420076296454069598756021724281279424392912170939118215405977191896108679154502782119824917915945149299452481405964092648088859164210398140923685903327373403658806695558703551134941089485486261975770215744631275413788107466254447426922272921094951044241026118362082613936220233347863927924196995237163035148807006652286861011768137812168570661743627467892661239809145270123758683688308331535141898952731174516251643321569045701564697512522496049239258244638405966451584491710656861750573659162382456982176817343069637315447878751440958557438267483419289176509230050072728254867572478380411756260757487618168037299826748953000084349273273164813153229111957373199536220877177576287140663484501557932557644160269359020579583440458728967920605774730123133555415189133932654512255407993799597720441913853343793155084585811725798670300372109224063664328998968728995799250838380988511887031838958076974236676073879235333995853639091053589601235513065183825964372381658290916627085183314001871739182960218659557302624243805796790816825176768262354080486139131548975181033344900796421114648490695118139902999531536088796023516544611838895984486770007221061075994466514503585852250714136552387142176821842261715816023475256707624191751546788030852452337287709632817586039360851453460169972879413153540536969099136246594693846744496705677191216222264422023244621536413146387013232586281531971790645895445981532971767464386955765707469020993914362123043034162334060731819921703728683914008827711367232806647964274277956538657888599017889757213947442402134278635793223173407635478832361944400777607521615280522141107173343326075875900926545485348014837272428429518008531748753432031585431292193517389516471428276108978708857482626578314318113746508229146986314554353083705785838567040759151480843610743002098617656630712385008521575879228743205640621943226785582242841384577419208800876809164945579856251423168444070743596674900821657086488044491281372391293843838143376557651581294291032294706164710538480021337504816802778463090257379323766108993230494393686261458256328426993301878679738475330984989253328760809159814659551298926081892774051387929432347143410353797518093728418817384740479516054211710744341106096690016867798885284705426303154319369167219216049429818460250332645952949349946924530051526583527403769953964229635615952588533587107044938731573500217963354670494029833970500692663402789614045197281806836215296920094129477591895452202723060084168915868445334615906235782546241168492410422701977583587281134323927170892371483834105423234150518673754461079310305255743034456334960243639461469585484459366003989400784207274587093628144144447632250786424476042734521238531764061595816519188549454664159817424862237244023319824151612815740026774163479142905163887995451264367907952604340334138017032239687392244186278329710387717435577029000879297681819513217837792593798248445299492614299914653269792974118989885326657214586451241786419512511438610362717040524662900268428897668388020745539269792876966265373112874582880308628319341677714852232297749605425373552673735271485228378503047070755573590495291917548505289991998549742889012940389748631876029049694126983353305656911833563212683488940971173828959063591921567873329426603347236981786401175449589202647624773514437634714969207532654233993723955749445477580720672899147756377717609856535925735398226366030053631505522132681798305921076695092889044456488297868812310721813370576433102437510460868251630648696470714726120731379558797675502428630353419576284453358064730836867626735514217311689178921853258605517750262354775580843212279278534896332628523899442634797347551466094823017162210379858566924778486263905492184949093027967578074307068422009634558217078186245853852105870837755251517158191702974037400977487647431370170812473481429851556786340689667512331348322927198191773553771709619105157554640417730616660624923228103166882484230839556912212154394536719366065086192459442661603574228046099597547983140715637706074549991550187904561331438454112449196104016329404059019829509618784311724211920014017194456224204752155884245267712500129593422062549634701527125579184717699485392314400729937794225720540172371157421474567624849794850358158814594033171937650386791540450784981462022822956529779755387192013305160155642378870763696147163267607936008018727925158420953495239223764002807425823384495420853655624644913894747139664873195814152582054137414350983209791207305819341943173414669176883221970463649248363279492154553835988721487797986612025357158813071291067547902023770723517509126302762299561385233086841429798350271603686807842713554589743007777607618974407803025065256417164078318978999491697066206751555342813799260933080873385600500112529043388662029070444159342316642044226353747003053695622822926629424482311424816554779854830461982547895525775551483899185018749275398473125850999282684182284725371986091981416009388023088873794741469834730881617188935579610385255775355557294104337726823365041052019284906380495838355993782954884895291619428632513809291457186842844041505585367745733691073113381113654957888369467155054378017809438982348367505190857614714462050916586856826779371934544716786880976350704958529830990579560041819785672251309424255928389213545121551049893071561262995312015494968830681448743881819875476192221243189251286495992141290016661406307038971799848255815140130943701728476239928469123970448759298799560107798119188105738525470412880748070633732715304671003014235152179799511211862328950394959647849544479135044441803045455121166943664810894362749243788877527330329598810464725914394355030837495066946116015913574672774710058574273424497494303151044868006648904188780232496898593726079594287752591242142098709379170649846330764366667667337633352233223455103871555085744337373734947142652845915729647417404408009763276437685112849376538517099314123023450393788483307741235381258527255692699763829714647827543631345392240833674111076354920156183288914676507069646507534436141176425559327080499462477935988984604969559876119364577675226448344207401622904715880913320641106702235747197595664706568770052617267760961004338476333078937518583631048191822072761203416577491609337502079804082503946390462147653366711099030189561593850573116310021708044504964648920430369148691799807139069864754973369851180489705442899524304885121813116435390588148778319314361709424834421763656890352566628620333566387161859271037430149308743508381167984236504497537570237338531041286727412552819100928599746701572556908411977259439537219486283086832316534905453536432531642852518567858555538827273677284957448250246577274843651694342364458409239969256700231473555211348224934251285906452369663635829600880645172405829717137406960549568566491494948170229316164144319363824854252654140129198451286931464837822423420740549419420829838072612505061876691563734408615561113354996083831420736594815860626110283852841093862923480263848505850693553060663824906001306497723954558969860755982152801952866767411448916787894339656795765596148353612578297412771035166370818477452955987004537445545813813418534333615346037077130888168372798618364419278353526752970926708738946051699154456986862435188279226981632833351718034682090986558968521848861967475582539961543923204850030156057198263855255226007229189452935428789981817269625651037896369853656204090705843700599939699454377988633063587127088933280401005016741503401041261179256839513269399031925329211870842421830024658677219363287208532165124315664156501544163554853917757692710665104064458687116076173198735788823704257831978656758280635958473464857283399396432456383361339560091530511832282156383503380534588866679752308561559441829327184690280156972239336309020689470990489595985215977639327047409077494874992101715068043351922637709068140571582292412646362022236723734207815962497079397440104366332124454824357679444068132290869790624644890865534221905131762431878114589254289124005591880234307148019741305305630955522692161486194953333352307358883609294465474231774330802408248401032572222257977667700592517736161191618243315956912897705269858645756266183010591686997401096135345829536771376235593476956307566553945315364003699174973400012241705624348427760311079598427906244765028696377061742134016440012931923572462794780866004337441910219807429025129683435799093890171258567736600238702235825710619170586517674463726869415972188396850253707559010566096608963159328217837680914958090670906116059369882285527411903307037682810889055550128051371618660734593305388409976369341685929072288498342021521161032660383686271499394073385087749259245187570562182327244997187390672072261358240988580485135533736474137995886648889824322389474537752217313332364490586872551575727256345410041287007245419104255838928118549564902423594276643547252109949320383975859665398545201511111683625804701506109917307272324220231812070224602519004398095398163735039830743666429731138634728075751036134515949124396221015965538633021385923280342090540731588912628758663100646781570302191889413775472886577971645773305177845177447041688916638359508106219025485095362109650141178917650706689024035651456456845816882505542843043973641404723852529975226527453388584761741988129813118848443490614513428700706897527459022007989144984750700946813173842734317221199702555304330968594381432674278023091504148363439346670373856216967506797452444807075076687278062108863817008798761538638719434358496415119841663385217154758058783739621190418565533467099065203518237205111089504870647766303955825634585953660199978768837293270810420370765376904747675938653104612849174367995363283076673798582500672548913404784067497504549540302303137542221512401433720139174880245046308132418993530601242662855193088419775984851035395463206378586689486246416779445233972489015247854707988364272253192313175201168831186811156861022285821426365006252381412848403601245957378524305669627109375353599687871659792527355800176697256477912564016287944718256797694716412447434083000153615181198474130226444951781490531258828892848464022705724646410315236560284611211933898234124833029409960977789928236899409663493467508038645434645774924094395742596081093575801563099613751894879919944839778590403299537516020574512536083600719664671850691584075573572171275410174658723610060330327002581398593656529429995995368414255373367807619514918845097346241909650277738401438256330714811399048324290464320896304840856570321529102846843312055812334435905785148232208453208464987540762503704780275188697571216774307621369324027831420536206961480859187205170048252252440652852475306941097840188191457090919747525614085683922745770349780742149778182396268520544472179816031986497953534449604919198992081521143911219913288288242276741330710385848263818111123927915700625860280522749373066692727432176914222098930577617672626082036266553574099850760788077783336314562713801997170532129192838491240679036303570562365195933474817091933401305032019806819395961962022038994877129770347711487967048200121506768486540575213783711582397939280652136413736827415745251066054275807095687148307040729335954761698345322170448752445655280311484817439991048164415250437858516802353536260443749441235004224364391447323087098755437082785965049310936906492590581847580942752415738766092103604782944016036112313963022848868956241933566171680158970950344764254586598034001559471014159716422591522113003842934643422183095917764320729209191400691292981554149050550756075911919432238842216902853898645822910168994106249921679471488216936681966473134006701456680070576455427406595324518840040513231532045241838078827920499094652519101162672500370744457599481755212540891583770226485669945654719833576526294215588015754417087171348676204773501645775486712159620024153975286200705103588626850920877450664805714577974956595565254038194249560124599963558884689951275388492984653474372928486089016098751179537635977327121166962297645249047748959373262484724537051143775474667206362073720185175893043809778271988965983023319408291830137509561741475444033813520873098272005317805379655450344882531312835007355655165239667904540715013608179614430203270423947401496063110556156424299692631024598522020171527738697910903843009034284646619687917520168912110426439289315996963664064703888777233988590528808264600012398208707055464912728720067374009507185135331899829549599732042827659401959905247238145219997724343583264521044653198320577645318179763854970595544573201858529785678938254079406374849126031971404467586118863600719213486351447103102719426106796928510449258645558025765701791106909376731766828907181426515074492938000881107577913565049788215649807195064569844519515246702387895804856867911980102314974452191313233984005677132087645160931487200914934485075246418298948681809364717926409781165799098881208332820400008237706078600242469611352376137582238684652382244936048935952281014048160615389802302039259133089405061470755079526194656828446519096435125571821002259140669619440103795301629597872953066499624659436362524569909785288266968849436612938008436514149852710925483789788967720098447690321368404347205260439634832347807032309837752869618513700757557129000160876179503974175089939246307211971616415370476470515021596053470432574392559912394933729623208346014540646915177160982237786134132308483291254187847927448784297220160601134024407490598942511532175881260402162986641636033584287819240639987590342418542384733197780195578354441818913011855986570367321115665426650112684601342817117935270056612350004368263737090550838330708891953209663846165818327733126386797257668255093538859761532593373879445209141279708972184546822480659372026988649295891302079898824079078182752605877007046130063992093951457014739579213845585151099593841208853944795643192366594856745509586962226002307824988829329469273062644618542308676870045439029515189649205458024160618625513959157533665354757498742353138730319309026999857691233293661946488676448017356497860568875397260610654288373536775269520684995838312352278867795206322822055559366986765047266228230907438172722934933644346838420419542238798980898006528969663824514756918013860580027778508756972160595768524753116711261759013209355995744643486055596410877162745120905861929232152140114424479214166689250718284255371042445007166427777359893598846815325201308469284463089328949601270239244565398404380923411691862814572106293424670027013666330471623098609867601686796861001704286845437556489455608188889024652895432701895718676846463506455823563792979805618019909210346138291875622891925491481743949507873478578844976580136173279363711615154104537435197814301954442262622609985778006328207500298329786418150477648887714475964515340248227299954844070058215001390967706535253368912194690850422947094401915117447796999750366661837069765593130135215841925497997484649497061399560769600435126104969254391170234100357580677531254950288329735872369761303654082899865601893967167696395638756730434624930515320563193883760408256303695309017874650147352668102151729794519807295824776775079782498799852403364716251922552912927932894654281695851805900871417949057666856703722343930555240689060123291523578665839824641845208524014974416897065534036263854501119130698990974519676774579145165398666612315679672459876537810984258419598431847778064266956702843432852205211295646982739362413947865618396484985024278238496390826874407022739595667127043169099766270694717368497619514239897460074672589151583511076411060159942910446151102458484718802472436394700135296286738225727590593539190187236581217318105348844206377716480338208232786290489463173954024238144662400204553941309219389256060222437700486025256056305296984661388459543461641153548557124953718251385259266493773041150833200940420319711725968583309438414824470737370431107773992472613888510946491879342628077787106232700504186237845632551333189211369304202077330445065923822690237037012548539463516137610017809912138999099522695276657122511509869001514713917935952006834663030565183106905804048766404385183999425836693190767137486250569064518153297926306851259013526952606869728628108764067192912811985423884058081330435390381993901393089342170081581812010648423606262908881286781955027222204027078994743934206606304670241000872130408132856445471110116570991008596854199065820188136112868596846406506431984408051251064195736160957362801410440080692611331729725253784745901545239715135976928815655408153618617551265128503755051347957560553295913199297466813264790543879963011818228064865287878640442693151298675227742097308061628631000464010116339169081208080621848332121904228065976731443791590922384809314354439467830451639280354603334854604406061788869861466355283315946302905564274186801143396514549972961484604692464893724668133523109464456454880882675062926369610090919364889503367027637668574699360928699515857695573459101844384495825046532588406590525410485627153900731121745170307320006694340719623838262288789669515438296102434736674128452478268521779869877458654704087244269351091578602410601604216062737584258003355032177205974884363343295223822995069539931882098882449769965343558083895675145627920120850676758700184190524383750931240447164923973288893519156871690888037072640614096065051824800950247550212624099457016403025414651349251507732048116576249803536580362455767418625627083501080715182519557498570323369915746581864422843805205983533519653064583464082151864246662920709969661478511335451152837614772694454816245820092249435895602857433896310802612642510954264320679214388329124493301958699787785985621912047183197703811223144082175701647549469356686385365917638398973388015797363767927931921368953272329205566553830790214978500222375029516082130032090065178213302416148745399642777600690729227192434592031305509845253269405143146700214629218705061272978766467460245799098110577724701614678714767772413613168699934351883280104708730201504938865428670203361506910284037274194398764149256782266325052506522046270927598598741310765004589793242378207934747287307319152734716717971356189983317622564934422187359786940517470833096367972443889753038887398418046248338454142317200977032438090981458634275026877090702394417525332531401417499079369580616558264728082543463821157350255039086349878850554168064812834905430644692050819679611824661605540443045910518607416465896805491364077199892147201664496958724507125736270608491637149022248333081557655461538843158413885853925976067926215985281026666350933864975058910303868327169154147844313790854157611518501989277096997522068061396684791779121980689763563828388979526325474533068204804711274504212260341099495183507044378712581894431856935344881769985335214890347846184326153716887182408850345368045859369355058119464421144977517823713043038165326973929137483048307296045318876468439809989014083217278309840647360795770270352071693168204767265011227587347508927497296500453941839687028544376612908752367401954868381809309797907670075423519427103368657992796079129315234683760273259479309275280950121470984739723628807076313202657430212422142069896133348511087670244322818560005934311592860950904805583376620031879300402451279933838452028148430926605631979102770739612556436754825411207483077582145174589458593372475356534457184209682403735130872053087272334920134696879366605780907181877018677151232250962631990359693873215183006118478868909901736914786880888799822145979597129245927421536693204260437857050148882226004556900477575598867329480653435185298129736088679976933806474654463682581743991980674648769890326061916755182038801761027813655284113442020142096865935638254373018976873506242095611523971874760472245522053470206812490057119115472042144633813152761351122856745321939113476263634017810382872318756110280950250772867348285533929762169453850779562739390983001092808849277050085264820831027067860210279842980189306434223830601032183920365986966665297280996097239262437224416443813182994530317655501391622930290024215359699800585573006991666111442106999375033659362734640517719983129383881921787766409166145232444112651473172812732445482574880492512087963750280174528226826560523335695498812642703862221231044851211722141775318013007954130418293910822180226929452129102701339642163974227988089268279022703057338524934937912947218895338956269265872676888771579954736356494444191229819432544175632834764658437004705362204958064637891545501364216505297729380835962483871612198250895054849459117251112638342362830104090799111620693235574282446980726828589573524060993670062071277766092774449544618122428860975599280841956346727341108343331681402385869421376287053900410126442067946211693596067228050071899476575858966117323918952785229297182697152286349500624994342601767148937556069930821596423031246861825063512354192216712987350002799966201663363226723583143982677327089451930530745155657922977266240054588234745303861217506685081999687303875047107749292963641043364705924321377344947810052651099174853349793437875779272487116138994738424788865754336022117646103739468686883132970542686877263094000314111492995674284649306023328858575476386338512196284853076244991961486129950709241737425025065378931103748892394165677253191973013400756047099257814768456263191955799711704660644729220039417923369868951313401153139285259211433524541789789708153014460311738291395295436335944337374445749773151678832081412019666186750050962282015371416683258849075507421457333859787085313926512098081166849293701270687493293280906723869419042675370213964289493037296053226241556193304410083148414429871880877275985608484619303707095937661582538425171647809690228936165287279821583297346749678077296503241022090182657314896031901216760877886199919570965382426829363591452941796763562362591935935491656182207436479463517186683498399057248016633783297777665956152921948033952577508367795349381356547356424523679474637774063444117997927088921658254781816864717885487613895204647450765629628833567927071542832222217045207776423929412406909033747646032826381507445212489277003402093644354638367015884990447855848979145134573084109270189758292322965885958355090409703220132636641578843117654700168983577454304446527349823850565531564160672127527106600900037309224311236413246294071203504617785011786468693320141457685321178816180523520189655341256995107679384226028230727184092765997049325016408820185626057744951610702785393782734523615731230476924731280486792993634814825514135050306473053791630325819326701314286808865291315379965320100763263913366944397975231433903003921887323863817289486547930021604792165192234604887152165256725886161008405211420488903641652649215000125549783472096957103740354388726817126391685162370257899015744858452520331999031420182059269998424673697873893211658484987538463555390974063217951503142619197524145071558502969885492395019885984164111534294038922865182458691840364196037848806585178699334539598403480935177281461041808680759136792535910259362531245903082347853091041114410758068210301010755607062118132941415302664882521435900681402281164095300642613017217051285761331631313096096285644761559742001102763985649665838901747524959586124810401597167369400452767462706319662257142630914802271796210823946910381284451437067986857186229325730849240650237517995880740087719933476028994967042678411415112026186363196963618118709708243899553804394673275685112245664827260906313494094373459347939524060656214121038371617121054229988869042386233101080455927414881637707268163132575048268912346769762896584322765367799820296786529034953581486003654388582465757249154977801662305779520620352314752196669373461125722003611823600091030037707158819818340545741648294617982487771004630185110965461672195294694193190907278427182417764689980928639595077611038817241175534136443389199108635503412630780275316675654113706332469308527620747361555295344469520073498737126976892701250088608050637900832617584691451113836513775423603890533013255195568861106855732825815537673386619116526084073758518236007343220834876740005642439147069147072937114330086237171168874898437154747259593093515936483142170756424894548589090515912450126407392144485630478629202826179337284090987283085796712919943796563769403020826114727494391869000442784674211781609530036521146782822742823676700735203530416813470388747026473046112187439612760428126337729814013548397749428480847187501312946177039828005367652321495092467564152088118234549251167018424824687101294913685005314960304649248876727733779936744672395124301453083549256137750500291540084916798794002584031327604730981250068089182247085121773320462608101872674535703692970657393880317585642765869391439317876169169576741475771893828744568694399650152790447690629719696346814155844635971087951311894168783005619923115374692372050768634896382329529420911510111135451054014637021400352932562075043161079441631734378428963496215705011171846291054776957988377165588266961983796564309501256621639235283378571136092754005017000152455819555456315273772041563287530323527983164618593327242824602075248744633833031684651615174677870698795358858948902805179252352468654805389683606105903982196108790693287615866713403118297747604889578926312143386272877124691188450488322823442153759111587399667353045259054164756842791811504954421143431698066412710274754276021209949159356144150281414593358705732590872443016308138502112763733365506930706426639901393850520958196948056727770289921981765245725010728605383842955813742152343101250594450028531524064152745916251599035793395032218898941768513430941799472872845283931162355943661598012534295438284167097249627070847217564045711450957722212713391034302592860398963718508906061880022699242382487115574244714903109587010311081692209986201381856592157262768650631892817159121866266360238687395099061368612958555330250116408111906339254762969825544619503697629349424813947657956996309127192410349319652805625272920991148314545841114613507965967403565780877247544876486469780329558237622969825393535422544217780958618712487329542017030816710325151965066025935381236596898056336666151582160710839357654630518382095216642543874087530267169003733196720474833631507682584124058888205236835281983367558588828985256706764903627385096287743459276898997238134149532930276917087133963442159699540601409032585736230472244588873887699759579505765310242074641471865502278469588815420102961013209829804217187844675559487896927406454612051183804071348106025717773419670445838894525334281572401042070880326571947862341771925630766460595967116851912462602136728905516953014832832466516012089818056183947785833317083540395219380175290748407495356221391987620579406954582822794815514443840958282182002771373122831819000813194109654000666856363509282632522618033204759454924530115423309198830126894342707209675603311384689482729928104586101300706097811688409611415615321623052574972102986183355809382491746752223070368133644313530951217255210215162373642302006983536046655650950544205254720445724906577446984590984736536810543086750781714680273471560490677131529092607954791686524082859463562865539306075934865605541026966153432127381636813419720511292537456885792592256189726735690172239746844623659110401604992795167151501145203169982382025571758597328997130681986173858654608480826086584300804402847729658940409203045394561623726214153216760029595384957216591754259414120127195999478648830202831176806011194553634360600557151423030397215007571989393745317098778382880349618665225732389584007996036536075569892388067396861024210065385249034713485867664880477444043162161119539805431215158698882788122976509472267303248898413185431844482326580350876902573232342969990816486721626815423966488490855596922001253001258875692515970856155807068761740058860633678157542137086898963458384526826995260287833776160629373189123680888872289849457989737588675909887160966761155644971714309823110136666670267472834381599449557536635449196794501167431205370299293004483389874787929656208810131757657232781349311532323805215530162878698189152735107191543524319236452477912615604797711707508617138027915153706909449246389667436280372214665469322974763793669754994401018188782946337098378815377427894646846728721668651619209924994886969276449334984515657248932990641269851465359053506182159637418228783292551451322570523921174758944432117874925348702567878641957587269604672386361755141365804989478787480815157411837995224242975375487430762527388346705862131455080789173361679032589454757828952110578331548614521208689684325804668324099916637256910264216841444599107966486265723618505118989105872226588731925729892982874209650498766790754858292702615505157669344965046762121360417606528503817518252424959024922634885410046454863197142868559664847642110277487070521009335340159008886105856802119313243612702232838449928376224179843264093829627369595974292139229401588668833761148443685166784228099109375702643434172934902836707392880499382057161734393715390732746016975424224479367313621145236965068416995626923520838608820787186139091625581858623053202334594665047666102581669837430873251459901835924385491778845494228430809600025313965369054404371418102360331345859757653136970120468707712764682211176238126438677613070397680509617464611833058167250781523354652080648035231844738619697166731771800128599093496301687236092268974447084024507051624750222448834013781023577581337921151893808748032083666923021478212995023013377983254723508940564106657240796141865577497612896697179808340798567229984599306693410773365770266005904398823692040134662641451582176759324347166307339183188334180010109248583920403851825009557024115788053368636673567670872590168840692213281338825889021175615642583166991840389413028717053688565146582638498751309339804819158549932635763107371600542751374063402839830716336801055820830632356354572515094615788646884620727641818750622923005982929458460691819950379550705491251081266255621302764973989154611172904614224098765963167079200990401640472887970626089279228508929203571967937453375851603501999261950958071539677080399293979413312706247458279541107351839479650349428274155080201969251479606807424589421563004285836710759060099913277256331154700540602635447213330031575444286646273063036936360198564273116141302028292329232839284450272244285478569308758828776668669043073814228214431491615449766832545184429829683886945260039764055822032303198062650431778032827264085451124274409274745130079222025675692506772941419261927383697982390825081415056447408164439742309446395754004955551242415429485817692608036130590054923213082597570405040174389679558252088517380329949144428439113667460386096222278288399068685576998237849673148537705288020324734712785336082830692648108928177047302979212778453650895445798582300537482661829093535792300007837600382542652984707061558847290287229831387786658522442333947259049217830867403392022123292310769431078700002362833462842184803923859033190574182467578896583556894053763761181330839312108987417417614698218405028347745909047071445606732243566183156515397121671099489322721447540745759141407212945972362004440191737487541491265240814662510478352426114918834502681403572407925207080469319742923436169891383058284651083211813190090321060735157832168254422943588274428670585334527325609350250772120128312154220440918759515089100092598814867213644252538996379988547464265069187669506297191356027932306987143705825123765362057274165115381578778321920402114155420827467427498470244090428893577513707798219508292406253389279257673759444566762546780115552382750846921278142015836622370073297477285783361557876213106467054860312865491170452758569708058530441864584373814988630890680433193691540145598111703297803551916291442505719152867647174157397225190513523558068308355130306016474108163819057873201143494551208107228530343795918675455997957739694976654204729442134770031909738722282720716832906779317894646070458845047658126639430813143406186941646432967302758908562216624278410121659895884828914168471947879868293003474272957834152062854214433099275706692333850670333934332089055326779149405281656995791529402619891532710615078584373482313808666210138722860972237396087442490354735883841371447841273390821174186505225249144602038501373841779611495591778288830376617717959819787087620273819084771467587322972064509796890138602567681919281360420693378051541432006833489663356718002182197852277167266764995958325968659142747878736759120010407690196237342225098494620256936791089105682923435408372395624121269040997915368713402736544109395856292755445624331780018944182752263498567917238699690701731247890775849560984706052342882024958635469168164872013802607519995045334487520126769903551195960459420213439269606547310699504929551391841932611316141909078767938214083791891077514409548218165335902381275117065837259089337737310798453969220767422865397054240153878845512695157923215693125960056014692350837728860576002156655620332051811154019743190809784392812899810549458749899631096872027545533472777349040037478063909614315360800848039975540603259442825147666986253273556329766889131516264958230385881873078425911579844230247927799026296924911384792383272735451234430905720943179435160314667501606654105755460742249032311919242762872123242245018598656801237657729973271681379185742196943235430000862682627333430089609232730617392732484100436278373278282681699546448369573726693171059535764803051379293532795730237057969574840399311017728395292132576830668254891783995389706949084332562714466596852589062305811273365449250633269873417131106885090183680162556959814577033104164721547636950063666121283821256085426701460819289748909899037767119252933216945898961562623711893604557378744832800929127804298040761571647506993297677792451948367967494519174332442477385457237692119637568088464620910930124553527803322126319796862637435251578725370461719412615743149201927662382189927150173619215434719289377377319195866303638313473464929711685340367708806948484758172228646303814411456293360570456008242387592376657603331336729516178401645480185833182832733367020481195993661729393486792730010363176776939233273525064925967774648102514940296658591627729648801857832626584960372823146017629961722684917245450526518041455009288506599981601439641673168490732896366307578463031792626199409892706928035467912742407208657291929077011350821080577477634092531502067491225020728991496574257352993783666439208956250850014150742380260272138083048463538735020121757843040994556325301036872559379016053781116850692607530631487686661021254098746473442190667292567343582169411163117604975192195008891965768599587203152138530661366082129064665575045793635735271066568809114325011464694087064027091373068468335276654318249785713650042452940404324039289212048098870753919627290991716984938588489823689519032602507770495772095673406870668545871651009936288170421610965476751369617708808099432128788485758247441995789501871326546332521674193649182525492349820663969477461590938117969690572839067390095864496610899314123850980083672303858013518894601584791682216629190354679587207770759913950689270009787899330089856341182944508256885516883813851890509234974925504610301521109871374223238047333046953386587905636112226870944644226005848925076239073057100741241773323567229911100093622483627019679958313676355377528484722581493175644956148605541314318262653148849606947730037227636843796857570956418983829795117724476095845977095555177320194303792716327296456712841580323719850096588846888199712012539153158517467876045930517205553990193538335690812432729248924364146678789206764918271511363916650795808484329736433300661764788570247323703500336385092229006866442432679364092939646308996429630658536769754091988952991666134070562517545731306422286084579132168138790908160032048887947707023021521199424555929278744265224684163970888306714071696433862025891655549334889404240805410412246718019745445607233140489454544498614870060252001820510502532594590427379984072542402469426295296617372497666335436545851185615869983514427796517625110653070974082554956636752111942606365904117082965373641958022953029580023122135207681828250182619230913482937205515622552601822170293941172812364731305928600597296222615446048265094091528400244272193019233733975041944768797118708567617847787452447325262747069010136832854469204305856493102023842712173497395382721503309555047709875731655717446514852371759719918941783635796248211268854771568903925151482763281010970244488185900824347510041599543202623105511142064784209714682761672451929923816701742640875726000428048464852888822905233305466438767393750270338060056825980826547476004994246624931536230474808465113567514530014483963464435579208263301687597478667753892568587562273838247493987683937483282422890899098421686888634645542050685472022487721925969441897543841620693267405531084209220042190103301889011958480842684592207739712104315574152841956612030524837332936796739044309316546821831129951402448442558975061692960736608657861834042355394340302278757278289744395388092906768351037799699291965165208124904009388496709433337023031210831372213098882984389141305528246107361356665769498078646355050030685638773826350220732072022996065301274931794504165401743657144870116713651431955709769155249762261019279367081099570929355706528716524852892237124172185325046903213665471581207527837761068253800559055039977082846881298642344326724940259057644718577530903455066918426575104036179791346655100489862225728807192980182306147296575082258627021081269612459325225930319699200024957995537744449821781070359453086195410681316875319042767351947379470457989165475996326679504206104590239388098082137591340823668218320094414932631495919817494807083559839338657367042302874268826967243529826388309467913996267456659184580406412335695006144377564232486165698065371947978523391684701073813021605226634621625048738626322167350475287184036528292165727306018604733632072269653610604519710447475227249512366559247714790759120945365499391004732434742550020083652682282469650624954413841019648254086439628872498813865446765504800744341646841290163016999132217985219614106049373346241286432627036739131359124905525213052680505523474136381773741743844309762757559159194391205001569469260705066742804675192319099576914229078706453105478094631401453006319742756666888410667784580254792261840989946189688020973497372123294964706199748341895430357002064551413138513858806084017870520555027382889834556675870253903329214660428544080346053057280778072363668739418686101329687162207843991772732607036552555115970971308920932761079902443574326692692982072024019117612683844300831990220611986372792329161021551832318219612869979862673538284310272383238021618800636723420385634831561789638074290047073488542520026013256641540928704590606451091954179656776087262524972518636261450025081427973216004028847627370744324282899876791801499751425690881543442023972579198167135664378725817566054087239046322912489928003439961019256516675662414730242971014475910832942145871333852232977205758288376638695791457926768354702693129611150094024454119846184163669856876229377921807475418915527196252808372489059472502635539224654572322406608669210857209151679336043444669874556614922163723111230894231654280462768219242060346558629940086954444009767823459335824282513565563188982724565403561979388689192618191178230563409003437325345218951048720083385228126423775132075770791655100302670047398540617065449893196886765649552125745604798691185398141616834279870625370713527320058082005877191539388855259899577792683519507240220276740098521881492784241355708955351700277045129404776938616170187721947925282533897699453578701931499851956382304366294120314904480110894857187238988794315671646555885237276604202470224449054104580218799769611338913276224416134079474722269415815102364330575256937713483291659363205598366385877420965046057588449043242971262909409711452291618668788542366266915853618775420724791929881356988031546654944311483934234814064055427710682999682496820558195040076234329418693259723260993258970746034248362427641255484300230775259548765496015195850487283053518208477059626418952626215380769399827300220337066274084864941352754216603550812560027489852980215587742833723818407546114845695039920000726414694636937909393040587289357295706322251925308328630501323421453743632272577068641219119105584569892187781544966208226443833707039354017569252064499473035635645540367539760066080148719853608275664183617882383929655855392523983857827064495292832115106946908900930572068229835544745847496050801330101277483381123003297576951094623968257463601730338789184504029898106537528605295114458577017597460251518163405664027346982993785342894120610842653250868115412457710519218298193998598080282745953751821608850748514239943525080139366350404517649630591586742049041909007342795743462290715999166170745042338389429404692748465872169169791852746012272673467062560712754266737709046010803856682396671481773413120757097997427351313483226560356258075266071453049921475368812674160819018267530597562592895014799670121851372999933075515225001932476551813508667510443699943670385979640701338088367112910494639147654624863504059002037230640413440567006575206210394986791060548511194980222318919770677745480526462231940921833614539017990305925211310363587447169260496606224416941498009407612613721668794529513474238532331994594681415085558812321494300770357883027250947831798177171176251439538672421842165671347164306438761699227183605832369205595662305822318734957882374491426839035540420470052660026748347943156231173295466157545545069083221332978890538635615563112043278034215533433082351241885958915325308378024677347319533527970937338303109756202175363014960058716898815467936146285359830764013060007448854165260925959333413477036876920429758973378880559050676174000064125717966441080627082780411308113917872529127775301549913454547525779621204408302719982427098777470158540335382165226947448119962565746398574326957653859951708492775775490785746597846684576860496311114788120086465363627136342102530658266325253440327549404424200778581906256566804373599065271022378955591861162525730600262418237894788353735234056401004666233083341398523865764103525497020475743468561420003138499505600801210882759715041068311037883223977298104020816225127533092591832287159994437580436756330425993857204679478982059227818091148243039913132304607011697342228507551771093542093278419501954638785927995631616298896911114736039104526396458413756271544737190443876172533933246782334360998769804095372854477471275917955727847854107621449749664211157879239176259199703965082466895096702306523657671835617426070417519924895964430580134823496247765785828241173864414296210071370388397957412522723495167337325303827344971468377190411945212495273421452886757487754628137691907231448005250741548303877288145875246483470809572585395883047113725414099328565563083059780409740868248170076346994983694011038038611995167981613993173315706575489320881895198308864116526636449670302885942086095613755141243709185431396061735532046638358104144204290898144025990011456087566948262917194621621054035650955581762441593956938886605033550247842257654340164108935607524609427035426944177124172917111717368931368633834942582017243736192371917865438569697517498781770676780471005274365895013105159812286273557114022744568507028524142979266054634888233772456304744011356385812473519297065371706994377538069215670925619068581512664751496878779349466482066912868118042120389293988952474916090210781965436105781583548371441187668558489861951783347927798414233223572682683477219757195045234762609295833346251631850519274603766949011478132164383198462794380798919946413486026802131659855549871616921712649163801379783277460965745477568961822194832499139605539271314588281972275316525883848901463437245014616176113428881078019138222906505531008365811327322899312041120133711417805875296294513130348797480064141422322950067447153987796989513908835727032346614015640346834983221296297022997316428406606523825492210206041781819463111247644510520595854821617006877350002710314844841877764704779015467394156236056115664386816978055029693522056522844341383565068589467197859186959444158002559924722600123145540531287218212849143281547451378236641169992744482955111123528324150212599676570505077273884575818586322547517629864527626199989756039870782705042093325958812781628912655543185457120880676063684106932436886468304944564231908891297454833408456485037441474077124308264684242167240976022979650872819155164753851252992046699427849135801429169142976193165950578989079634216782479815150964760361977752170801322286220301469528811391277919230203349422716639986801913290719740754771189983274535090648119292407911468485706856201493688415599999816171425363457817530795733030077326784863904680408799700691660578150599409962702016993786106339123355063299258341581508301800915293190428062512625467940978436699537748675988624293608804379596561597361369816814836896415147457536183505715671093406538838109141750215439125473893842519834098334372515315341673803458234484079327869491564157758666950399670501202811920106183040593163457789149777090420936241070390130794899238108852168441686081833033615486869417502518690462346081519177104772202730359554298595209799020295780214639456855552749196653880048059395953549012133085518878564013660079005375827276797425442567956834957065867804100193849519170955461198586921943151051832426972947940611031441819548353923809859701714220176535669328139894227864875415065053788626823087309442296551628877069369495383606859255597362820946285474665732050478144301847281230298795081405541046677153083404320498393077520178292660683130225215923460495188134524217840949882631122872778349333739658368095148435829978228516759679381490156558871935001837817035100106141106906924886766199183155048108666753020185828591724113349643597445324542739020860820544396846216815925614515727212240314525592738558447002506423445620544436096748093360157128291471620865539097932645351740397198869884062052747717845528288984473189761238442419407414954166148553352862625616809497463532180282088369595259792467863730921408268463528591147163015757071780300888540402474356573334465125672318656163397940110295811186626982121466600172016188758661017927349883666890599748808074272891455832698147305815922911714495918247547932676398439112642560590636314243162492059876661804227513408282576894772488649367236675562732774367223816640029400444654335497560422606532736889809041971877108499352326021186121577209599425388609001445097700826853966845138942476819810693465173380715358650036103010166182667123258501557923727246218388469818081674507411287980983013306718848304508774465367023944223326125906402688814738934696709215458665662247508109975315914898399290189550407897157239186668915357472925172577280332695929444693032107073916863639885077630403488437802382185126025608786839355119677652462910583903630626371181418270661609579781697207195700951060191547233873780212494259999696870239764560245657229379035912369529501764628252753906456800508077871045945546792334218240843940389696766082827994371717588149196201727152093414092229036117261653882198743934901709797708191823344575635681567701423279386109311869622046910389345503107873705262218996128111922235168856473127439671022271524891238394024230428680242739585776303190856455490727684101362480948309974054571235853076461039233592639335588131082010401337986525498761310121326436997751100213642939086257596137571176266880389360270539028606842092829517502877118945871881036086882767511285799778478422108066393444746414259797992248215439880666922588303413236905176564084205312635583399156189510494357450739931884258149974631859593876243742518569615831917265254904487898437966911378001083878452036129444131097354773419978798170233901136821218323236652501060517093085446591746241048036742032626091339029755685789934190980088967824030727851766949361209885702313328554426300514716898967600477187683359769098203313463318182886849977860002075298588691960459520529069346103623022422608093774259292462969777589213095250013607773842059966795581546092954072098600657282060192884989548870616926916213148128458850143403232105977991309870594925186690959025759971902597731824205140911172874732921671293702974517822891219078647233147950625498477359498198513479201652113903609615667446960639199069820974371879351280082865461695479427460110323669765717790298826856294261321823949000265087672970573840096277994551459591699973688888128156563922128067562834670764704674531904219777318610748563896467782456206498394494627366636936599868566979813996635529385394615364772351530101357816048620600217064401937300873292529320360878310612241833114379406289962535212783491542223478866805486066218076813526181759116338878910848147246124255551774549442765008027207805657212227337598663533209042600260277706798326567402781838514348338833660792444522784728322595234131671573706708566669907275930403957769433267311890484046932391830747901696748090085995806732831483548277965612078259562694863570107672598962559915238072349689971624004652594056499610610636582459456705930985378087058399704052962955741151007848806139332638960891070208318034256929407639113408472041402520851097266020513973035569450861116769683894046034268342920646287114606246902407713754204428029261712603697433895307808690009907105998722157697769620909343090520252419327699369330054034650055321417514946812670393765638613051478612197319007565453244673729616593306338007521537910121560426635355690948243354611480350081362395899068219131960219313974155846763288736571834155724621000811226655942125221465480200946253693126038853111562534706358523007830800349042314808455819129905646205268026946968897624116737089785719469011400828792972924351342214442999325650409019765915982203517163237036039200600355134051648194813232874078062419345655122840844193178762745745408845105880749623000378927972628505845769391231104973437402348737304582715570408854029807447370706109573768221262979403495504264804228231251491629979866719769041426869471911789509616765214855559395897499808767626867570122391163490709531674346002326555442259054062906654056593826809486574287470051493589242236934414329842683769402331261646916331134865011902649089975328194162422958234882340643019902947040251117409007240094305722712427286858383280820250460030917420740765154121659307469179970404393878098655323578464518632470693595648033788817451568239908879593065271441454673743606435694729026084741341209209723641790120508827180786534934861304507571816221255955083646118419131676694250382239210196672341933715991923229360890347561956852797151110499799846912231245908623820093062896193020664034574079764908050133083487759256451164871273417426154571236702292970411614614893999785368957549620059361077967576921094716626424931842907423745814668194626363617735165535208871970137592236455831128846989144581389329207150140503061035607237277205284523940420680267212577738236494736516353492157384669036466488566701897041016807810929087427095337561326732089490379934977268726928228074834300122210152981573612712093712937066927684162553171903027505809982331446996736178683012101388416135536826711415141322547340980443167310160237351759354801433560238700958156897680885525893931466143337885615481127317980141745112370785562101599688015903730233715368488842647274115490533691948041731866308545667191138264403546722759463981054989142656670067676798543130160258677039126265515636394028765005920076249939265120909617107449296938348770299883226951362692495778608158816966438782690654154612442687471846243380795194698922235352341611622977825010783213964026397124482932669473633818101749443563031700305532760616905425163382220306420004349565007607270183182763320372681720123042268868805541935108441027130971874205837866986271036513949885743626539479943766578466012732117113401678032514934304697516522497626717319725256781857107118334376485507145481218311819322825054577545491296150901277523155204263302377411643297323674487723197974206923464889927670405705261471128551372091536836048535922755106503588543590084186086248978973133132973708908555732873707627477001937388186976190902151661319946642386238458856140478683861023958996682028937142631721359262068056689482781422261730113931966273498358479088585850074498087295228024976876266677805164261973698021935276674431880340017054086572817104440619891519210778595325405565032268796984458110555621372563864147477306852539527093220013536812346836129880385066965957955888818641731835488014895642334715039540165443919677530237313956993154137175078598389282502396562886953802881196025001821957462045087818578087743633031046007149958425078791593097404912287052118884139187288844312276449351428469008188255514395662572701744262576904989273782314746427804097344242105932428984090633862455232648005656503862800904985743163719082186063891347133637522698592219349111970534763818706241700097431666619508577984690197135437804930731354073892721995852917212899927179414650046295183184755494125879867761915914327713565815455758675603792171697753423645183587041767117265023712121205141298417684028457285556367079490152211325387924805817635939085173294878502684765819689944599715648658450451754851197400717627447106225900970742003186033761592224918626955063435419040675522159132617010320749973643034808893904493288683803987166550027038631947949190660627219275597862895780611719396580323034239913182650078237140429495575977760564258203219564049332139686679746209442904995640606778486448690148530984401259997430446065931037410958536859748810662153117718289556960381483454903901179303580375075696156204569316804029115859063670034822651079202028447203140048048677669046427481102726072669681711320040779426412847332275158693492521964058555358650196576989302801773186489321022153731148652831027020525110268483819443350179606320838557037173356313306896376192520156917653631846078079465525922755433689324660541906793349837250215293404856601382737376942444609503942771835974142767622719554761985047401366082353199907253072326363208270424781289836897206398449252966690982262090600414096945671549835142189184809381055443253961137854336873975268673604708188705307132505631796697150316114339974023192969971287969920266561635738536204655488700813945641895110964043031588123812230672485679949007415417456772602100430718781678405040797726533954106229805254473869813188567462134378897835045844665426422756642757721101045256220595859482055918745556644116165328088284674490017857404739035575316757684150888904628762340230502778687519861890781966751729028514775503183756174384408528156820143987383748164123898288744674924368885497087406806493425360884006011322191445825962684373276784554789863065371031669418601793715092279077661716181783942311055180417070771272774458037821018792112819779654895247253095930959234958556619008497584150079693401445826328520005482625566079799392535422861168883064309725481606561590498339278997877011472533187560976101332048049606927273372873823379258279981520096497149328579253066883127279575840074514751931699346682659318571796186373208256592580439304538216624368562044760910618121339640066973357717714489325756202991912311346418793563780217956813584183727876747028478819054149713240484278281499089087576867992165589675672084095396871806124806186553435968035765498260561259045610898701026286314306835750937418438240972335879165297515845626412040075700708477521537220303282322031366035848045896637551188113719804188656043309176298030721090341617414535025871496583667121469783738572006499571656946404841090335279861303323491011321119510870306866570596855360853394233279387329466118484338351416109914264899283723729235079170281337457582630858973362238628976034337016033795107918654799287604557181440016376516380565499412126649900541464905530233945544981006705665936807973086680904934832041100281744367518908511577207418213845666967327617682121523033508341129872547385415554518777147697584421526774687282232650106007096942531018941165245896634111419465786421754790045325206051852984449425581760648902345868376104137877593095525343813443576166891042739707256278859354557957694915032631660031211117658768281854249494529795209865585157546899000912111514053624827513273945398370102416744130797494419013075294047981208531980670112977272028394265274045914538928719564643051936081010213453060438042973641961863003635839828605073049440781959487930456713805233511849342459924174330004722980244751407139808566561825860738003991351281938489800509346541072372279440863479805773349174279278567970367457939653355235260588116172184441204256402131543403706299368296339247863308252067564309331245825463736576669151552409231119933789120570547834896476926333340910134606539005337623693283875233561339682786600580922025786005904234420899852935501608944367219241171036262592862855657288022005340466885895789446748798961775048236240156364783440350129511108149661375864261016359856616978445172529082784267999688454805782798404476702845206233963968945712301666829940154289656410767230815091758820495966766045483321510992518601152453656374177270770267584081135701326637040091042331115873113263708811783165990488582864057019150254077779370767532106050667138131710948727093195977674119098804726662247307484984575220806522496811609270038233452110569152812910690550482300794870175877351091653271023922373739082431880978117521722039605221633899181722593377407043479190692103274090222860266294064527889647841710197961768280359647791137898345579604290059056349542953975612884423957156189968742621817655207403241405195541587401164781879973411520843532948227274043216326922629523856636231004851150537419596678257219052629946393908680516810630746059327508898700721245800637937433814472273203634285938162265124571036433112628937108881649405164489740943175926260793286949740057679227123766892198602529220761771741727693958437711436898995682941145095166555577621158981162006304722626613037015835120373759206157755046988405726456231849069610481065739371385548202234955041897586916876733728474873269474822010770356962099749268299501409959970694621266464800033436111346816458010388677153586164316824089461869234514108617463653014487966089096350203480102826208896284118486037205090173848134020551195906104621137822805456427895153449369588572326409518243774921502530989311722550397726063945969290662460840947998411168540528381890052694384457598604257621871011149396097139445820154683089906428132966161332580579703173828280502557400594375318084795911036583885267039619722373276314863400851349268171273612612834118581517970812943713289394166908546845130321254245492898901200482116950698212931512973454008149358937413953766416944694261447271167575693860977117994102452696997653142243852303625104795065603270620264521511327090632669502297519119738548941512308781781093620752681296844496860683689820206126702568588662001096790609131723500248895895703870419694359075195920798766013206999665035737176402111564828935567175092031911764413988668593530686664060265621690899993337084882277763935391736464322963675427668184809976553223803032473339319212223689161134038361884345458715939130463888596849324313788263522356065990118776802831676789962096714452925827554992132674780391433382043468662639269560505360127265139249475048725625155321318163111097020518005142335975084027967077518632785079573026427300467187570587073105476071997821943920163681281530797459257876257705957754782269384835102872933321117357268030394166819795919547542058377275261651593204681052279720331621343437789018933818323554264741608573300655757744261951368611959867315787482842551579997570782179958208667411077442983356311509089185356650885341031255087048958595487461180473939738834272372935086665629434785810467394195014634545730451807349696142672280637203885960317768809753255140450149060662987597451652901043996349402097839212057680541541970472341279904188580407346014882455503075279862208900444710066595326149060627064260916396341645835503870046572738841696156711772942768801071934760363635089546381938621470977101315961082614196965376493855408545586187478767993385484051788467552622178150713889424315148301515743105242978314994052685225712942058597493176467551125225486352748844409876957706549224855806049822114173013953266949841298514826036429111238484252826106481996133351062847782682168393196475435178137808214209146000653349056883030583403705502042201614226960823496840231276052037010175475401031255805401740898224163116436506733382136227984608177057737084621004558609412693564647413738656311320301918184060462595130025058884162012809190210534123542345439080324840644313354067833388565767974636430674824720498787688985181559482498966827319309331627879888368262500670166132877043319974404358474152879276006683953163583389761367847943151700241186696059658421940132081776313664730962130912702193677128776367595603944057556854485863853504251331263109823577336907310576118660628084606280186405030769010464207471275071881763776168805756960982904718554012100813537035117108310145763012936303044807293475406251937860208958786042598426418885610172513036121320336158769014494691010231702402645940714424040488640661201681826949343134144558505561348786779583032239525647045701336209106675027552452512116934588618505717472383780033262978773175510299819768961183023621576802835565317099885500872156650688882620984326014468337076332760244980145111737750011814775581123626702226823343102154410216608577447272859568101355643104255932963850733377300384268380813097985777579019510531294938375733940876970215577289878592848591441880185193734111531302430096324710042735245214769309482503490611876660736411214000868971606324308178668504207794975670433473891679670718005331667697978360748059767476227421581716265315284212443641756531951001809622628152553388390755921142159782131501556926825155730936140686842666889512467831491130436704519368122041869606242197095485614216038876624854388310560352594610082400990767486267972978287594794799213940611735104523130550035711191165846623085674195496471638037441822503743251250428771385788147178023098602199258880539514906261453171832727015330634238892600417576281756112441807021032577050865382854629538030793878998119343343216105924400652513522177047781976779653563200394248431678894582539499441607485184607893057721902614683083309885443216906868491904148370041302351473475905304918840954906738015884113713637984523340945046854704374935656032519936886578867947608196528689663883591544374613855633918149254193902960361893364760334443827570670756901633141433386051563322647756264306363886011886322087938801598688150154347087836219284518600738252198568887949197179084091964891320318682768958345502379446633927338340430413096960527063019136097405980357462939860376733409417164756257687108222569961556483203615589558790314010620878877323787653694860967064942625607167579636586081822423414120459772121603550125338947639749729257143541083081558984588580529527892565069521771077524322767617939016778805645375475367319054001079256573553700939531229285569274950967291226032035311914771336129406720162181795513277672528854189393327294123199799061960900282026131637692887812909459472742667175120863617027446578128621754005012706113354931666284537776848571906109196150508267367451537835555515569039272442302505296172385539288546768688159733084289928275311257151025391502099795373326436600222934466808236329076616299530658936841733046833643486776860375640086336630781076284375504147033726980710975167457536691862095541371601018003275619879513583390953657125062408656495768616357003311948310270609013775351054842677562013667538488903633999724441613053986679945538894341786666125353232549029141989846863683844771474526521080581161040556501389735419058126901716361233185861957423714195813320610787508968450508056699217937845504611413170658601684648406020727155682713989377979506834123749630095976539824977593295519342211679041880098299042554277149627918729989038910337867738242182571710644326920862162190470582989883184748995634901550447284643494198154430616664610082409033518093722481407602602324762834528994638671977859930325990657836376956568326908790604364666608208006368611128676025308958634006244979629236566586390915068888528516973681867974087595327440643076581366181196753527700714225930737771370396323379668238701735496227716825107839702255679305505037087890925522215810759669027179811051150799668519724394341473161003004164717731324261750604292623633048005937806541538396161567449198796799482773799754195252729638848245254322554559021283433968355196723622238350888889267891490550197509432443638342343227653297882857288488890213798584419382213339664558452278923922347425260732051463134299878596986595873595988486218703029221015785270492235347423019529245084594709474635180611443589063403223399445676371564440571907669657811464389203286710158048658744169755235739758426272051538996293049164413294201909573823754373365650159739861695504237981902389845698685977959666579039973898617515293622016439469905670420209074210509940152456518887989887568860838032261807353371175629123029205735811600186685421911333881694837466253600876008970807514011695295448313284290620817805088690067026780845592297401109624880043335982804130223558276666132379184845777145925122036813012793975578480603784982310568848183029528771457499672044836803898037251201825384225863478243262245987549589059150212650085980838200158508036583468588113521358799018250867076213945977109607086132159808761367622813256938751368826702169139676705152787183622003813711539133915434512360817005942841739129919971799885580466075263352197825415908749912447114441680376623707944298235019784436086994016864737469360978493121217208284940871323101425669525040954866989294699738698314130825251242546496825232039012052526871651635352567334949780529401757797531627860944885593304049755808658186112283818036290491594376158810184498345386644826692631248339245722173128234227737166629887278796456095280313324190111519406173647722439499821903601594744843703432525433378189713545497109171694764104488700322634658689105263466017147324235060088693937660898126062938629240845838571357418445999322291243951480110986659574767101002684075475563935263305104662269872613509845257182089034180148326756776599836458267692960788873228093810354537960149099312607463493146856693819720282356425668767257767575731266885492992976244269471533986652180334259749806678195194133654433827093010039047417908633612489263596238438866555996559393913856408757439614839869297691841740603972921629539509544784749567638681447808801810304849012581190302578061896595752253772326128135634974209432336486880916973399497433850424013208340435356364228781470012249241160567771562754788946164395030741655494505377713592002279017614069293379461136316836033139169638823900169593084321521518387375064669290959046282289439811487900558195183275352184525998939100253866358385383033406321111309227571098467237941139357153837879581975143158860896387413020003966533947393240245365384768766812136536997047102500039433146448829135811321177022229908983327747989335698397649123623178911787958815134708994097065969124304781201994454391771737461004296271757129741068535268800503212637577815081183562212518127823503055411302372507448237214009780087836830717217234190595381607633567205274068678109860892505689144551465602074584113305410061620087590485119076699327686281042262956510632974216398030330779522738580179819982104615098365730436079488101367078499040363495081521549148500821867817785202924105108291710904178725484740425680305937732229002048397608830194626724823908023575398258457790622726358143559823678275514975445267979485318787188837183965726768271548797357691206157153099210865914090147038854726505418818768248525179464919135414202091967706294173436795163445283548849029947362269683261927197013463291520635953976030103383086062106585991388962041871678088173829964411992986236969499318220868866425584013901456944967636080733433935988473935269714245324932447140693211400370385219609078655573779606027454859875331066757585908572038011726214159890502330886790288445603551033948422221120313470441393415772870785824474098459032985902042018097076504338355189130196382660358501422318603984468999935519014868436185841335877250481367242220911914995623242839043993646822311465779933589310512914243073384960623372706579887211977384002927673670640872603738673072440381162919762617170181593951218750736792100000198139483905417454098315628022728641771203102125665573904182229670765833818483817440363257531382193612498930075056115857847968937987171989949371744400552491533442035470546983943960889336088753767954015055604857141682894646084112518493756006945059471233638065768013780143635942945686978441690404256516401187359633362978188967199650328332386188946894795993632829446985706705452649960576973769882777044807157862114582070710477349746108303191425032840455522193357625789170031667721391492707678305169152627247656034871159524074490106180559029057998267554984908814968804360691943923712317901697490082305337175286990866859954041038313346006241920677738397179575011875063095892426831163505115754985907164745118739698716313269366993935552053877277461937558495670363121693869153909917537201031108493315730537346263531948801833489573036030241657059321508481056223287690715341429886837984930728729233574178759225377933964873847336916738446813999292381614780468174440117738383251049134895371994062743987195858422181381703940303802956649228834276142412648740350260847532477561274230981785283336266747340172435949316545812187371904349440571059231724787595655324779829424134577194823017116176341349020378568292100389622204263139954066434072195075969628461128381634847608665288249650373584389572003822425180214870864753042786585744623700418621450322259246522131954156127791489037922443700939785920297498798527434902510748867655191939245515795979962391663591374276972936085161489586610799639582082791560579399057572782789350672068287840940460383078031462021672494126741575958448700514050268766697131907509782457357251843497723361845452427698336262140038113161460371577357048067481807320471794777624089809139521991641825921754106499534588038680211728248587355838310819961155507918890022945901560178849176631166814691657559001149715726187608513994737532782746096347064116902078829509566866052129173094937940068665914173256879114484786761336053081585768651445867640994144202012495971054150564975013967850593636232822277604512900358388374459208542421993490065643640946311566359493738080229069320214557919148210061347634423709608573038802631779097804698714324967862359022405621725350502060796853244941602255132945810354254984950202338754350214848972304431384204494584217512492435232676099922560979006475693116028071051603865553333824494249882572939150569713745461826387642375969482905649998092112591908372309006974964531409476010136283987342474006164803955346871587937062983272514265657499147786855148976243295892137046553062171355336178914365857296625296767240169742122012277196778731027801591359683321366704617470312604991509047434388829720703570980399060767665784439053212339325558691818624480194023456121765710856325157205119456844625540194700271259198455166711073288120724305443602788338866500653282751157017524473030454685743311212745106061109189896607827387530378079447234133902242022599451392740362049533356267104241727652037656890290583738234027472209431318252708415860666079928640024828332166706179480611235620763158393631413943292777827982949504492973284834448374635792695327153345579812441532274811179337529524912594502953519103422079049543590161887893622444319430505031583852420107318409997076849786201856332896135127188721885131576482282202209746627085900525563944313334999897761975696001983022032128670974605092552469927415514425312022386955065540854964120235624367283810146212845783875282828425506750965841248402482769242468856771030128322756603356470582865768612362932893804096427691335864534802204409934379638716823695202968282872348299519246141796993562288586812791949195905783887394485484775184934156541293808441900263157915662741777899118122377882218460996291317769242019030414361531850204808106566447611949377513767709755673271918384009847904304302578034089464604058960845926796544625720682450213269520749854316195072059440718424873233844904552754649062804626383819030018983390315364475492909433201887751991135415600684391890996335173105733998962069737220143391917561824180732204130657505752831947292769240234861023589326952861632744141584642922124421078127788599199992797165778301770184658552792860551314588805129175195499324319115819267732803773059517698776469495850661907767739990643007033436859295316619497499283859033450150017796944024638632465890831027898273514377374486313536656012619952467597687367189548162357071369794511199875825624223179880814605651385172977170092060716766426473856864842880941171939638260949608119598856407943723395213734456255418627607555970248246298824528185653901611450133832469432115225391149578724660736773907577020189792919627274786251192443361009696801623832865982992137292709921837174923315000066096784446176931362733669876271160826107896044181995700922308135309122481243727734363109843133122193375596966569605821979678557477651210603291962505492513553298457742477591079269550807078371368025509555128364293061652448240455851081911162088371966298434082977408255047502867960826320921311793650648084982452530332328744239409110314628314663908982109637787638382872066473222447789923522172224041968347750373215893077948910967377257879239846792715108459561981427467856590551103173659688432790355583210387172471138462682573716360741618443382087110456607090168218799740949869951682739488081692110021352518655577718162323551816662373034150524907912863374819375138241969636969699862274711658883780084596490000957854109239984553632696971651303054833526565600685816567514055152865590637516081532448262607509800239529345189379464290779965375051289975384683670929109047344758669067233599277727261994048983317780840370043665285677606289361349859625455588877240269709048742508045329879722208401015133407380777901051471883637993893384976795135220115521265466615370516440858651204871256081360833313757071732644442337320570122074875952791057479403457046591539458438756170778582681864709286314228080235196989862119472995967813572418190010475039131050716483736747113064878605939675453291790485981875893686552029543984736725103110746652280424040476475890492383674903120252947567652566334039815452952130634099925180003889888069995129773261140031944166426334029083044663307438438539936705415516898364522777063699657410777522675240547121271911337632098231599048310138445393398436235786689849872163232906812300836420981254102530228416252743544655695860742368781731846052970601669629419525218430564002194919358970204422634257640916726754865482212839903484395865699225616887688721170768803121823711103643537249789237648367744837417707391942526859840926604856179109330729702760102791885800092240071368802967176542109057412620944134207461922865584299654903338959952982521227943291198113579344203934996214877339730701421297942364954962256901740752756438012101084919346120150706862384440263497433028545409676029968310528388156317631127094727078612248903908109894799922305967100809386965597240583871248737755234429951045866858434417692319242708343699240329928166915639077042734679555327938810320707894121500413374423997576181736970847769731937129464939298335958956004523540034205216412681501571390474493337799852846287015406877761896464810163200166463795286833284349327437846348733054699003744496923849444886508191723970010536471930776988774242618751816748825739298707553414404077887361599383261072926364108108677782134516877357458598689569904217892524042967531559743306118593320879270746753396148783116243079881718152282103170526903607165614932665019600637206835492724482655463922556016542176398845008255967787728504234322905713383179135634652770547886387708345806927605849311104407639655425227520659765532865352786007011312987578677699004997946231362098773888894952515165505853624997059735267748793485603131460989177728560539440085388754150915024875165511734403967712083191286213878084066111096260433664871405493389596676569717270158794556438159330264553953688310875104815364806726570691732851667755837463777317913889527302661440985611852261461162468533556461753037902593270039954799154232925507075847938039627316478438123514809243796893441683467189156400518597036014458835112114606078541849822442984322758006659888712655926859347832707191731986190908260737831294448596121268778669781398608745464357208687750564996592110326604520986050922080971633328207749192790565810570968591379093490999506146092114326872439669791915736135289310401435653310306091263002528198546118608727376790277132548738613722860486991562838026949693039079508497654139044654539395044437693918954672843247355703458254673158702431634715358630559179782046829290243255454208046650632607235082132800553225653501099056809805944116516313953880383682375893114041570245507744125226509952948331359764213676651441235389016729357765240994016397510949574475969526293967099916598604340839362969927018570721124644402843394231729478910791516542546644148820928822247777668007950137258069089491281813451713042227988801284231983344772983522112650893847095507541668155059224354659347989319261228976862788534984285842745403068899176841368633627870084791762070358220134829671776774641776403280187683830571977784220747708937203026992864369195828756041458829675307231355833184455906002885254530027443767026221181679307909468674160393126747092280286754728699214375541944956757490324945962268549541606302934708928682565914145941843693076728824600527701728099221446082015692831927081216116270163502079026912890225761002135493750244665659634803908267667880085991413876323692898005340515365077044349506271279913655641610499917231350724568496064111278416153464471521234493469996470479338941658528568518235489861458648183808784661252342249625809209990784466640193113508085904175728217670009156730206931586853254838868549735639544757422009260311188095524112681514793583729467133474896837355071458126845817308231304583831065280800527516338688105796611929571504486984956550344256154216139640421996877018658655998789878966299764431815270956245848536987710343949722779849446683240793861036366773673979592659235756967046878019626056450976976589009246609370602177745526195087002815989558820215980423243463068836307684787328152931552086400297055053905359177793912911465065740481388102870296955603085583609686011512209468339793101772168952189203777827844145355494534410449531247712628944900541493612951085014857672939559646525675804870621261423778359059653819818782245235950332503229810880888690861565171371654145718200124018620119533081206591654541751153055115624949797283461336500544284435563066188365200349976691988906883672014735324344170193444882396943138757679146767994471005605323179516475750719135011097392490081965140214882506347333060102715387286761208941782869852506050011551411214251863167322801164012965493150608663755261701016288515805258798667544321879429860489101900102913066134107957781775237768745230459702098146934781244031965527086938556145137264394100708195978027005068547293632113960377792498690642139669093156489032477717289161962764598356889474928820579035761301092056698348134421800188011703771109919060210894434369002020841617136188463622739276266928225412063602322987503514011371982696088351706276396009128101062721571022979922841313235892891465830697019386310195832266534819828199699287285535875582456326708492848312030134596545883967763215699168606204334486893974735951727746633260577583615919156983887456384628506598149954023540614114021380098212344813318943165920693551446163514678093881839223432636637875522586080855383223335512321425187624264150271712939298717986569432335854178206768873172909995450190240523933146694179454992482542469111748238588895798849372651171434978042364561973859688721764807813540252985281384131731876794776816636401851224454306278573458105752713730806714426979408836975026736783018022286782051019527111009027327145216726752067833192103780411800386345781020871751560662291369293098976470780170824692231366623897689379113490103821359498614785634559714007200469884457677117137683461711601303264569562128178840460658263328647333509258960019514844927161430605016127352643689733024980502911673389966129315558808879634858154099887017392705493931773576393518952331647152289046043440313588181776143875088129337374365291817182534094178221162498212027290242518883659571793502761272213025690804809361198829329369126856025563296478724796551103288401710495455266607121804418575248312900771717357930216974439675127671835520801908788315680038107591803486612373045165452223367839441906246893759025539721104035713491344882353673045578194489128175356984483360288566941394784349362277429541192706580833576089690973696818191553230058275882195570976764639213260526762142819081233453186931926206150991299781121280118711464890288314816523448004003747574384204188220652846940136023042737379307694289264759683906540622520737061868242154077550921885305330374721862721960407081891138376933169177880152902683316598322602740633561131796446720846805118500368964927740735455397656787600888107338690048029200982224680573320510629811390218044154838575831124865978831551949400564193766602887563323725991677620373326999741749353486145099320302187641353074610542601594386579407071845735442843541251048347172176808520193313848749873271358786253326227667588076651431643572898703859694273370117882675118154636265954277690825510223856254661142321096610831389694488983883975233091278165448438769374393010104370561665443333333398405619088488424480372275613847651258694019841721026071920607886744550481129271123600842112954071429202762574906675059197663043688913941534197168334251862300127625619158162903624917810361726733538045924765788458688843460117799243744057623229401053974139768501298717418278155045310173101392121490475040316604569137596371050407360242845372793319342353954079752333433340159536138770322831430173819529706600911259073494455433387185882441368692239456185428823494315430207216035387541945482143549861036526410897100179353692863367734438460007156628822983314560779862271409089838023020565159934953383816601647793703050519000258030761912981914220502024665889250349827161599297105793784384391759192684541584355475564037051681591491300514038800969035333777047342338434257671856641700076160554381544735925329337975969127049602949762464598331282537991352354243065730476147388060725043002594807576794563757892719015898941875243564852671199580798440101665251962146384328175103442279646379157565540093718384819964064467220673179036934629862542580388352814000158357146746526882274717342724283366225712240773291405929958084702492119600261346562561286717632706560847314020227652715909045054910048080092916800576197525995213199761925193223321508203228568243026577099724655915235026982248842116269753653750645756699992309976313681503802916563569299882489202175982508654412586001303697473798908965075494648468150154448885571045773711304461350889427782960406670439741188170087626975156769675505401281633840837586713713741578039793510065017551617179632000729942897613572557201072371322086213115903684561886147994516071118034459994944516788305850836420987199352476439605196987924569163477608512626705958888357553332555889717786519943499946694338462496399271903965757863134016792455103512663447877008364468748050200555984552490557257998863861855957075363681227855802992743502829769090331900260552763167302099567079191704617778665822036168720554423296259812898691757300097175742219538440163623412198656256940578714275289485341641870115176590790215797039185104078247546968054738970544812806703152557363023266445323606840549514029438219350715872094161414961507464118765611983966860210756415383970218330081140261043604051989674453243369754673604631020692046938968391699790469081496936749439827774985912761115335720378030039950980673774655729811359256381277245471090632812648044287470332090384452130062433300992470896503311661062217334190851165144980252998540591414623916678893333338863799919792504023373203486549446228836586954617702533267056168689290428161808128056087692008172696909038071687937287453113601999095513717867673220022972289955788934262419869327772883754970364195191342747025377567856369890217482806041201265627455152889675459150991982120410115372649537630326271621782457034102627254756117034954969741081992896457759271664416526736967640013629212840549160756339837677685092911697879579740835760942504492755535474788394592739758888187238408544158203209139122379814949684526217079778474481719822946559409971434057330349396309556078875806550759769926269157118900357453643363061653297546896081246552807773402615427720672509530028867186725018112207569336679280167100591641526665234159102951247538355594829452536046758844161419243449968075786648945436144616128591215218873855877252279501976158996703512724352884067154462140626670756190163422636626194366127582169762643059238471631469968105084513826899241175989259662606356703333435517625530564052917545213085914407773225567889966559663367332778772173439375173965142327224920387228387439232695543495482497041873031361471525170584191513371602002438113896745258143721189634154983607358060373845321181266932664589238223022318515473285398962102004914186695328994828717957038980209805534104275986781385207147051533998867604140866690952012529972472362496580852079917553248671111791536176428427171744339262937130689434670717612010321345683818503994310191673092856967713847057925067201123565119786088121774541003199109777168457661620377099168524038157470067232906101174299701888505053486428783171166017574557812515805353238049702689693976044357031048829035017968980914276858177219359259603607848743750047867994628014419161096374462362233180507774174227864636921324498247898912539471265532774960475710666743208497558083890313980948402897139195088636051865131136770369087933443941353958272085478655969499462315234093173630187794260839656808850062284140618753457691738898732911416810911536101673219522347391755051203369216213686985982082707041454354179057780219205947211067175653636241569361982429724077612570860043639258316780426287646693107463945091994028227846646920904639756191208758573525439966129828422944568020058036395195106862655278964585357652832227293845818178847730734984572945681614901028587263151636762961887265004862354880046902747218236755590008874721791362977647543694802139101725823665696712613754389372600787828672633192831773694185279788287420139643222778143066879570374305680001931517259449277926669569186870467152240385341880904037544850544911591568709679201265521721164960730287979237123100498068865486511884216550290370272211721171402911427806431608262049262507227733397599747107457938460220792570530571937015099930585192802731573685899978374170513249635520626784292133708360435432366660286348512826134397214535688328881780452159341768580586451437784135290577759846847386051294288860118334725571909752054726340746401928245205342154484176048238248449273364786251375125503509734733359207669756686803100454362884086640318769740533199564042568325174795450229591560769036451751402448086805830958622209246851490520671094348407731516962760602228519688341974199368791406033387200455992317713483324655489278747865762217955496220507182762755947185111830009857344385023467818461433857119525581182632265430978967319939298348903897112041022689125502753624916779534153426959414402755039051476778619007813443279454136990415772163541931538198742949925249970410125630816946840123808143517165846913625065155618843709361951526712355386829937246750640585504672595331989153934852976856343427050019239043343795640194654903482063381396740435310358855624506632295938992109768999884791971270709752364474048225880895365783377256525186787273508128458488175578020768960448885387314633764169014310680662169199601956161647134638912124743334712814199354167423537760558371592875633976316711223352779499192796509759631102104434481885514709093570704942448837014942007983811160967451999166045894389931861337927611357809186514701535901320174744936406516733019920390213770795938152461507730750606960584958488802319390219016032554462555559689967428877970870885179812457551195928648661308032873883014787499834331593884567850133268030038295298291249068401463495585346990469165765817685493631023757597803635903373415733186940373690779838703900909921224054528641011990533218232909952974110227785559161873157902044549985945861262764013240826569504094332907433420421516613403665483116423103316978805295909533641961970153087692301181860928269966081569791713375922365130332801837160877434839352532668264135944275305413799433549553114041848702513212240889578682800041389097093006074798254154154786570650996466438498414779733725346505888079733780892326128956411609170207071212953858225806939640109739612898160718141065864600271645167993428051983070622697751586792077228716299194488021232130115436967857958112436655906529097499446412961993604935567518818696889407552848660747642733199366914638418189795679834613211100142886159451131665358519207643803215851458703777894080756947411365335027929442298668044642437885153498351480534477172847211337274205879750769778923461084470370243678702073881142270414061724178012319603535585773253679845846193602969358530106878501162574609700525166125278424593876420801806520098596774927255933214141941496558382231857551349351549394446002619220435685603431949174759701811571002557815252485057446983416462320320115241951903987381230767561477618982171382093548989813527564976381936592033250937385822392134805861318971253484696933766028419728827386776626970523544306428047248890691930994279048236741333451904462053675351306726876589305116206829880140411732850822510162950065729253746684158373656327060552666356818166556978274446357985546565730479087492071130304410482233997203192190185507870009702260906290392251527757998112179815581883973375074537082064939319425500526127382198197756945697242102589309595827750430988532803050532937404302408304747291820646363275848012666060303671698452205755869573944513370427377367757148550125164876341539714546501878080590727787666081642286482932676313141210510141821159586971259050240769767722642854903150605832296644262066679149256748090361456696906556268542519971541305133985592773360740762785208218927079212202288673761291023666345726816380014663781136280614516315437139403208463420581651478744685114445557658329039614533528579554246037973945491689350857878385687803755613588517727140295113503921021198020041579992858947239578025646581070204385223783917995179197990375086736808464241704311737334051210702581740938951688357395125713011508281950267801648757326754588516153506166286179009029942389289160073077621693272652673538193698805082935398743317285237677604351486442866137374933361788802289710759921290838192908856183946894284248831096558903216805372517355258113170132721225921187468845790338399304649431853163166546490087547930120587139582299436899304687885025857005810516667525440932648208161246791289967081772244705288363054510071523318181534729399595678952268034598606277584143032744597218751955554748308114098522918696281908872124484862663445032022819911650775849405697046161459869029975634684689542302083876186117984843164686252221690282653830003483524053608430847566369723160144844980191405616741355489136068230061674956994241342331904001020489655211647284341852362372634845812484295124215888300122957734036205662530884081673347823294478548341595826611096464055090966686738860921653247908496363119746942760124629012873918588649821406058015783470869468220299699498460422163203945845440265934007103480618845262448202908476396825626816704750687662387052012340238220927908507830484876860097878982814635929565572663017222461197289607730415272599655621518876713312132034707694476062399488731694648021456752766806699599781920787359898715149489768686815008780965323780893463635132357017390946117951036488866686727568138610614686252991652231787397594437461138873912963343602761067498681445925887056511677919578292949341326428144063253430141054026155589511538976345591778108877635048082993044006640427380864936531970994047069005253581071264424788947805332443998239593109137372156105271930299916969033298425136112053822314922785004047542318808138970093106981556038805306719068754060613495445066745186152630946872366916348522183412598435337689753664314239164681696103763990320795266118846025193896653095156629024068812030032973746396412940425701923526826503052997441315905614284835045572251972693010879369508258408779342047376124600450685167275761006300095814499348795687835909892059553495703003869541855180963604535921768412003289752413517794556531513393652105140504213866199758939480340824289364056771061067725172416600923161930023867329764388623062839123754594695201984890170324601756146951434132754554451719902223836792885901015646406299570417030031598312816849224057144093244071333244425761437120357996599413414105377232525705787706290665561283367689855783577364520631793162144042294014682453185033492985696161054266873112228995401334711003720375316534734688833030952429577367957404661227496838779272512829972896659977695008975816617361244130843493932722265984206884070254618888807084801567051847425231551597865326880194088227726099656269763651719616118338104402386118890193196865122897326705565159246943450876229533710917735044742581737921995286197459522290182774873339193442122869508848816359896144939786921111908303710196490861226503498076406018842147170771999335762198836135059242592744909688891166123404184202416695943664247739108663786608613636992400255187912732114365851533127074507369468680933584317113529376133833892192849438699681219896854270105358335669166205497989997683131226399746958065001120980090442864075390609703875521426765308613871265456881746363607578725318002617923875361535902890726075039723276672041134658554056021750111974179770205480134065140308589700918203228224853043809909125541938363676940056964935474999153891715592728974307756201395259061743187808828888622702527453868202699302430170522310507891868731138798890513318582478107963358731573949221219152114465269932362772031493130642457137748483730653601161060221921099118285082538590107213447262989205090935733874209594303067799427525264802153504748841912771774967179474839596097844636821503585354818938845146902357363094265988096316518620239329849624202635377845644243481159902957752256057920392875169625143571183352189479279362580021535364755569714257418850805634413167466866653774906561949918506585718297482535633255985555438198828841404878425150927001159734161406603819259712027986009451538512365269912155813174898165271664166687677581354876953240941584581220658292374075216781341330574734761295345859972270184855005216676801786101631546644017882502523550237838576756025298876782186874377971576183240166011645202477299197258104299088291375309023493491793057525484490098747433009807895887846300530748099598912440945165804521674704715946086898149795677884372229493546379256139109261849095874916325818689139242441574127081318778718914664045544098993633143977909728970766453900948697113953421140831861291748787999801792941119281793402547158367110067970817739500842014024078382723388639400855096285326320590009660496359643278740292505657618410880396338435758997923448800682380004689203664455118487961715918003486985590742015438536825607382310481207699546663660198074878159894470829762504577573703747804019272678868005167952036170910472641227424495061459855454264650730105757611265170528850978939653535857005030293731939015141398321189918361220789570578441325575705812435143670672289739263282778022591957556021770455055888292143983916240089191243716903020767284872385566797995322142780074724594551378693733319711434791991138674687084261125745716468039876449766991465855672812789662224122318937218087236003550797986808897387841073585971351929561791629416865932744296097430731524031836612329918670575345065532577674440233649692410713823317055361056721832353204843841187224507779544824237235915054447419526977817806925356027027382901574214934943003969850641313072111639638514263509262348987198238316970878294505340691431273420396257136161427467713682510516072806217461030022289442054005350059247125195444426288164825528347517981311071281879759260413740803058500275386268738744699016722608839484152394667124069420200386177886482667189898568420509415779037833788343967675612396693688433363095613424156134742791541312251053474947006811807521027203597855467450581075256503644934260437001341760767240839614008757720621178014485993057150057439103059821902909829000812164007437529514393748138055537141812915806146144653394937306455395354493803924091662508293300151394068436519604245982853958364100098354830621948067732803151478053787714680718975518890201591750443625440253949509057243583529352960948315662170876265715704729650678144430961750925834038800818192126616203276176455591254176376623484964773351137200425738866848239542308047420273979445293880869365048720431958883295758860198770852534175792811068661475227851981819835884750615227538235278830016861842338818605760530929616761916713085894354074314358663616573948001541528943588379580278222783028771304856726465156621490901483261228637827978150980924137755911864650238963290257711097651272020487765660244627118223460969621943197347772320795785446217369067399885886106565709514471044417942752754161300458065360916004804187831625517551006115781026960442951018132146773907945837530147962513756325113488635618914493919695359218481938393659441128423567699251136864224784092915284430505967479051200512822994467912856245952917699720810570095874997895466874022686166008262874870111440908804782985121364617372048579522731399076258988694445855408141153075652027987244066640628551491897426492962286912388437968854376169137974064851784053716173010333428069819284784138417310787761003961398506657169423491900516075533441114661941172302946261587551086236699408063086128803203068974613426335842353237244683734560458723174721819696499408492628675497772814785178669634224866347016112713065904063928283732687572267006365784996949285296598530564499862458939962335047926950716397592835626760661919880432128625250603488944054702237172021027814749602719264048102575041845177943251978685572947627777142616864549906804146788111276320239415334178193981941752058648376055190049488951079477762360936071984033814636965979202592155629238007373082269795168355205343414470354390469234443487564532033800543353783327829703159172293262666155530893824493230266145745122041946864724603622037610395009324519165489704532216987941413477001346782095446624194165881213866201460024373535682237463078073833736296677210495483353574157559729293199322507185345027108218479155792467121085117182869479226597556169974349808110206317386580511152848753234883192225613568413167623710498966499929828915860503968986579119847526739452784485235213611543014824805369623417292083944802013014406158868341785560998634753752562033904148649339943724394025234478669897021741604618075991039912287138873710844252505995677753366023414990211851105492949504665803575425543020898756401291691700826654662311836297138207527990247663202089421918470792622638982278806198643414931468388899844580681191906375421884765228624409116214978519412722380367340784147362639918653590467534303700516090427662122920396436184145470421681487433688710961134916670866961156930063547910571805811685292026511044653060778849270302398119892750010238335864252244879059865029471407977177179061091296168993941320173475180543887140056703803656292413874532589919433679549820312308012322546178223611799009492089890385590543068647889464558417092343717234082511245521260863180126429818315394157853843865807117201388283042068929921032633303012423620403067972730293212317095941414824183751247835400505118251610274124654988018402094190190167824190814840621518845138753983645592684210050350527994395140833399129879805020871163352306258299840666628254283462691241240176934914141567029676973060126181333346842570775385932769592507131363552096433410461311414494078974765968733991126559650462611771287104778860877710903914437096497410026539216842019557158209826809293750106756009678152707577756558756637944081650192855116191132668432823664379326588945314881906824665905246401188950551517713110915062365257577512257911446599219687993404055385652066300085668687444844963849747476958931796218822191064936351307014929296418665628644884676350876364266346676518586057390737601980524770620556224650119825851184908870250828049037926363565587464747821769535338671927999923963660132928117465967152757110668774351782829419908433324788950396075253961973668849607765900210674406096987389574384518672614333700649264297709865474311605425676722133395391525594554447677488608172136975469333322227234127169481819538635391433122151800249075419068706733406812378617257980016909593646623794480486657433116687133976102843540966375144464020793840856308875357801888572362264618527854661111058217134061019353769085070176725134974562389838717036675076166358504325569775023063124274033049603324810210250560814805547616383320748455579280682891155385478613367884411466880226356618897079505420275351124361452981066725004158242740845779844245504426650281959996523369860430274192170445331534579514887064151545446630532354622090038283225666223054920639025933703990122881168135429667805597687923794263529376577183392743866596408590947731675504694139423515171623069875123061970184271397752072124181521127294567271971861829315417906894269941126711900965333511020510456425387819810981484411487333335392520357723275811823818827962811685414952750777835556482753486543254846385548890303547932673835479912966820433209992823311666037760086215118585859350321274954146384726330549537711608100362780361022735392786766833053065548342266788996524612342392492777023609046307531532027635429966053177665559826625736948811521847139134281658199728358657344134982943992423686029554969342554818464017514356939942300879106411970058979747858239642733971269452636644051972217202638286514180898764750526182366810404743005695076884461282870112516837760717864143190717459046114317167189441990461218923996167973915268647670970258347387452559016655696731882689933381207819302229755293560549763098498185811504149710073479797648925634389887547096532514993514719673417768334929292748256446716258747001558228501932337179959318881806262220687912393814022829951219351188195187110089473047495311167296587890254718022986026127362125566068507314244079966880344046520340112309942078400072274901298888026162045253734042816299416795853339315408556976491714412772296948927340232833728113922132573611673527244682591668598802200430180301247070245018751571061197920144300907566180730071716652877505432165938303898964795723872752277798310823530163807890076982893995177355163721746352621139242241197908166853079125914647276311696846793576431429456611141778247833992691082981133373122589119260813703315561396869159483597055161145386398573479554420474727500012107975197849292173711868632932293840623419832659182304978368827710515043635507631687779983621272362405373188115705578861870365967127296549587574997620388491799176316615726078041078536914105945715731475494298887045008096343785254224778859717039425509711684382289867421699260233644732170729287580952500290948556128102368005339310178967416697640198161545373076304759559563410487038222075351343521893277809813394078522430830647763391716850139972820973834181509019196412558134581644326563871268349669173278849913956286493779240940028356093439949410866525439042476339956739129690131588983127198369690634925821685266160120252149701900921147496864563990959562630956966693559631709492991918148483896835419360995907164151031022068484602488628201237120411553219866145964391482235263793335512996621943785510905121526065861322185841256427070947151378065939762954043926185372003973966227095686453083999080687554699292333492485411062024786759613209238510334757314524606751051382354783030473549425305052611615307119552571981834603957438546475483949945253871926267969103808796942263255515554650946980943915783386101027781059618733581306979713486312800735134105058568819614735724382752108290741136471087384455217428754074708297819426277303380724580383993683828075501898083107529641892013456549052405356079369843891068764360141051758605636001746255649384622799372474184558772241691385783643243920834132405396912552315819951102642901099528646848280539353886515618042293591774694677188918859487444314353526020365194320754309029020190666232657466900541154941975281218189160671209769275436369160381607062874869916887209623529864692408211270901578052369119687098712039480285753344812305615386989510588918868929872527290758563403423390498934490865475846202837606568149514782138345474024989577514963652319803430110114666396352533179785380211637011295074440942883686107260513619150694093670060853373422281640974205538350007085471081696762325544398379540739508936718244770094271005590544680946657319236526755152201275733418206815623110616091718540038154903653259357612499873227556611269709467949143642216187307557529907706499495568000977697729170313966699600711049766127195410552909822874139076527336566851305415903131959637627440906151378260322565803168512942502780980867545262649475254300514959088747918214403811499568058726016679987360427132289666842554819936445311113727529487599879702100990709610667256408512621156008162648488612312383159004277712024676436159185307011890606040591691438021724363855639582349756691188003911948645739023307657097679825666221282941443162591881629417983679994487889959352016199573616829035455530384692292850423028319285766943777311253791266950941628455648756086377488831570853419489273879534444863015931314590455925610421235603978164124603803644698042542428960517440130641312070800211663493812128457107474053824228405687610082522298800025782576958087723493973945637132870325708994792449523646695619818946057096613051083570824097042362870439129676541914400509469289650865755817134148798087458109244657475745270886963992901719079955826798453023566544448777972072836685405955044272089010986814058263952418992408390249605774434646497141866836648782198492345906415683027632157253827388069871564930887940580779627404652507870154057415474421627133851547158011971054191826579850023810646754640821661900514675020524453510794169893711493645331578095886613490895556201926741168547982460056281964446111253579600204622710562919351393048528096999282200925595944173110430298751284249196804047594884603674327758139114776658584947855214044988335623963682735645871413439829657610506802874046160326618466159773301625162848487053326360493468663787600620900172739166688896787795168144268148102152884399767029004538390661801659098273016881163237991155846800410590958679105412848819582387725510419843660520669359386113684748424966465913864302338504975126154631367487447593341311307966275588771419515695261698674640380428794191973242436572408882906037873801572130357447441567700874777611831828712887751651637199908419858940735719653024404020155989239395926004580067145774072134878911841505363357659440538259924761214983413974554152809220704683887040653190797530122398293309711277198199645123327380305660525856053549612837476496368221120077432120241075119030487041803270076010342027429836527885443764063795839060816505150427523930546454619997509694972899066612979434872507118328344653606567415895368954405332030410137797243906908959328838181707720619403992586065354294280100887457695728435474755349596126179000035918202938604605481170518736826980545686430405947218792394223276675185645225926178492620730839205573909029228450005022078252453114140431212983913817699314307110524908673626038854756823115122356394602410400340387212455263611273642367023006373601445499233721165595052351893521759619252952270061069955425598155130181195514451670519473240365585610948569370539078612778250434261850687957854878684736052713565073190236581954146066238265157715813993561415831179790556432011387443595538727894049658274218309804875838381169383242503350468073275160588567849586933492279351388639880440298017917419113070299710385057298149770702696958979751764264298964434627980104921590320905996558701841645436705147218460176749863879889825261885724642799399866077672758665919078049589830734001736356518819194936762412181120728135936930622526958499721397766733810364185319166646154608181366099549843324749401460508635439679367519930869572443373953243821285975378091779995064904605129443047783407146578276352766268668411184063596790983786010407997933610741041362917794294810070073283265530037751265258299306232694056669289494287617908735602154271528373069888086813313873380718338725630949926486731023368516546476069365490676244554173730063071578887320080805117069347268835703256973198884942244496701655075872931381110201272982864266885725034468627005166057803975823256676504218391385375707477023056464581603804583217097915759310546350241126831335602449925770409660555336956391774323354361717891867082531457240966210195874954195872378769266934587494553852467326550839440195424732234807251234596400841854047462508991971030114577173027407027586810337281051322425015270572845961657612572679067024422934795059198095624400280070167524779377444803475316870234681365776902676867196743976383486027358815394208499253201413884166615932329683936648421414819371062301985436346398302646482265173988110565484871426575045879552278996191211822075298431936453553763908639303063956712509381427183465170744449845134627070440781381913670081978325774288684294505243545382872099456133294432221664449203654832629254632669828498244189555375115087946044340720361817483168772041406816321594180407606777096690416016483029606997633097970268451830735435266813727861033045371263600828095476877948694378055359155427679650424635337365526987374878274604867969622875540356646976914467337336898937503264375303657243351035162408346124058521367087536872501119347108105563671969423812500586369669080686108637532045361188411659542237385854651806950172040426989568085140244009561450323295822743807839153531267303131557185098415203983788578289561057303822873291326010020104650184499358611033869311098277540044815697407543836125959733530981223451075678336751942128639870198593608274015862992976114431164462549583792239825434481244225917426458680511150229917514824065044513619990376843016074650026225345519569425114311577455711010118950143389731596449796769961727324414245063555588935215255274227232134037705043334101398192986533065204124254682116045980555327735063594367393251554109568911304329617339315330200027812747292029713906450591118459764287754044146714157010400246499127666267429098223537032374237422590867226747323223585986360485788976349825350954077597743982553351885136626005500027442950613087557764511253806455646473629413102090720895500763856759507182610269441076421144738902108429933494186276384030272077940213311201058632940312287891943588631392641184173516592647658001703605114385132878234223291798387722956860955228977772719494372239228565035818745005365734659256151363422934170877497420047101665631809368555375461410973690999014690420255836192694679988204044324103426719141266180030607525938031421099658690499536982098616128478453194152294179601775366543735372602072883289101408608162332908983870966107798451318902697437845548673809204631386952232795365294345430851548356720667594680687822742163463180454838635779693393469815192215460413568377051206354319664540553235719687441750108410920549047018488988550364770444375626932799122084642677483151932314950934367382459327186012352902687221806917823597656321282333620070932759261517645642736366605193652964927087878983260943023393523167011439306948495560386452637417612554475361989711177315057467064435878064911099459327126491987612753548476316116590527440412175647620765147887671530713541475813521955266987319493118055775356468545381719163694779305921648362379721052458271133442606604892428197279410878125969716917547785068474946295327899640758091299399722538632271056942918306743716669044832880939347851179487444112327598920819392561890796642105335904436536136665195793566766147419339379960353949310221264870099595304812722348388873076778513531967720582908967444206196347270619622310557862694543496132786633941132995044630882195221074610107696715067623080740015764205548608803359299770641543446796885569215017494938356990461784898175975901441619516061209985491515155166784188548947420693033277655358753064300260809476710582709842027475184232166320451381174260289743301783935187686817194100472284944383991528202875432581989413377063190045078791217092620619733457259010773484010954220656688582761140094614524403907409449745774523942562770800609426932714933101210115488293975273654608994903369755275216903340961144447687331276827554794020154374458169131814884684481552266005398448526130261779502078413654795073375090958495169217092543151031566631115589066914908834587938736437215260406042649456985693685460832764738629126320414215155453526865481701898553363953052463286110536245025715481823921134086751380507747121595766980146286521109156942148979858966948146616501103502232035861885890610212575158191461624975510857567883244733461413810112094005127750884045077202704245275024155548557957498524731444616404262028504224200342392575865167731520864791884027873498601719154858887144572082324390924087449520503025607170705939217225234666712230128134205503902014762400094444750198944217674700310475768219198920279440754844168121803477728337630658906564019479171344232366342542869437653064291895750790892788433890129148084760553187956010099712566307339886228856122465313959327666622768525722871109245158363134039471269571311947833249581029241575950551602847555823946838497039758149138368576951997005709806868484038692915459533034317721139544420202944554751952163015287557217483554147585484414349357807064242069085770658197081412177786129810954027804628384203791824564240376466374004593230826672862249515859816904146814261225330590551806381077098696048486846225030951822810341291572470863871988658703575120110579605882226893240136973159440073069863845639324415019660314124539931848530580043476782780708119375139390499408181968875254051987642768691079445229064521641526591982627945244911419469284696886292094266872700947903717053470162024511912677316796002131272733289308065072753976338048935377966898902695142542903407353850593373112882076529767318941401535340379042831171206252410919286860387631271528723019256048059379558569684262374105713812415216543877709840733690256972017779223158749383664803314069141267502923493714204844812217485801554642582571088357608496879571648153826801578957899052668575547945277951125786991052224038664933210243695070584881034933710970344057045920548835376056840290503981017450485252730930608361152203842103744503676774245499504523175969166490855425346968982075480077067162848380484669519450002697585199920237690889800485584946398455186602617584766162475984741272879904306914271752298062236055907983972970124909444457679690297993672669332080962521342436124179702696095483079672840154108766029190370451046364707528232013113131021281237679389826950223564383261273962707240586448189719496976133023232484220951988170901984978422786172479684850449182054990353542806098269456545534961914687837112799609378892468415408377374413956922647456748807835813148433134707613695407398103876617017405166304931973974647125259405559635901872195341702916702430002651647708213888720680571587231328120463994997208269242178867556001194234025516221433244470012395190931632218359218671120807901789415314792323474569419113216575710285126386312431629072986025607820255451009117821889331720726198388581613087490758269075381428993437072036619233490004560362316464381361342880209386679450443655411223254227068093478078755944284621163737700954386636550931832550489732205783608062192200419738925962725057033282591236368251958601091931968768421703563254668412014891492078860668144185129717196940902065344127293420791072237776676228082027766862950858193186555378621669306007914675796135382824848969330781383632275501752060553964226657800793257610087634846555796214986136875944551561129101308922109962488594205174554505803888832067235345278352755869496191651414396918044833810642550360304460251930463391614661104734226807900220613103209094165714142028546186139947497551958285538168536206027623104843399230596544974048532699618778830801512818460980127219233072499543111587902013371656810681620744437724391062130477949768933149389417365727408990523324617492545670884662811062283408181663875913806788290807097842873230121474828122569959827741851295583797529150486502897268586986805458287875792056781984881812595750896236042479065716283468713707085978070547005799594574311517199154631356834962552800433954311102877694143085870423510485916060312555627636231777837204210486019486584174008257838378949099850224095348443694282643578508406916698271546859925164984021203272664280680696869943363462882474517250030387808655461991341635770345189021549085414562625894221557717981781936636085307497033488615113951289762227105667370210958177958217553322027917241422029535708285689393459583575735700291967014911360512937408501650099980038368842612903960720287294671406781552553169621945554694640946345078258435006831891592711810421397239868032912718652606507175323489737240359535783477109140029591087255202390596220068143748643115728364587371683815138670876614813208725828533624232265365830733120689458514759395403516356353284518598805241895878630783888269756320165416629173836744248563694535697135352813098404773843186320238919277746195371799584553048457657481382298660013167771457326772733275243250687839878036049525256161096137826430908133920977296465648686796636218232120722509018085227667531135033461198560697860324878246652269603731978671719630014672048804022724453402859315345515820415586364392525013760471057506539802405522942715090666474578356882596530351731958582063274098485024482344810708327760719221435207145792527278248602012743450817313374167663984140311506644632611124379321219232735383814552551495689316172561194305926585231093380645675093730319621429471997760670234117982728796565729054896355441734796347578879570008848535635324070883574028449966696147146404544030012235186896278627686129017022424117455717820760900573524067286953441981848100749721235435357029509794776875121532308916368138026978017972230072432022756882182626180929819952549471052141348848793469283095800667690706854983475090443972100121289007016951934099967825542639799427704667995272757167895813115539280503622827147243402197615639034601522736615053415407896805875597844837676409334285046729670244122704833238910480191322641426395133462312281343147294771842416554178723646957317390621314442501797078736120527945798709875916290549914079881419737731315237045753712560705933748382403094988117142992029737713361511749310066356160099849320476343115363083282245008535011424335071850068148706031953241175261634517604231176874133112163550324554296044611195456742001274474010964155571963655347035633047711344904946412430015455566478065176995142317430113626181151287537340990315775670503733664304981033002659357650524898407479694453253541625304307288537157083775016093103990402571842952700724657580419366282072727297486098018189319140527351906872962986278193137589311534940712762980151952533660756872544434686917273182442781817976156273209977881167323986659321292719036522019196763226819593865599438498948892611908000901374346260051015195928980130662584575133275805361886919171746144506745961425357813768516065136616330049739640550284069732100748300437442043549902921692522231852227637258625453660905696528222779058342626878086320937997147916987622527615505995489330178639256117898368112426297967735249625976370135629913385279223574839496707710002277184366793806996969115934054387503454841354692135433403512436640158234944133122175338650419317317705960125305952132420101439275495675000338535921052013000974738343179518826607268007563881249691874276796628528488712228906829524089642119303938779554769186106754150448228849373572113778184893774329077629961435064497759158184240695013499831978449381872509867262744205104863298181632550777966901942722047906418747334077855217632478685947692160413312751820473178986972698052766000181138383705304900583812265126688725411846689858877378975150272841731205680151157118870459206382411030613013103242325619640462466026920946348081022782106474547582611899279283231028190032469250339167710861828956999621608265207499881967521582653271835530452679488916317339488464179700890968967763272818187331723752294285672940211195527378694736258366583297459394722135801336893706103060816557929393388758116031729576489198011045287216049364942391819681844977282241479901243021880130806939244337404001847821301966267722931814153870160552376712937631864517370085404534596737411798300555807197644725408910211506219855612980543387042963241648868735180660390047004879198505428200609758722750111321773985650784092416066709881128700588798480068728859399237010320673027550335646190692439161749345777338926008399728392481916463817806037760895786510229722001984742255342013273269177735189494304594213701592010710381181227763730762687060126759369605632045474934016257823703471896449229619967223497718131550148290079273093740811657980675104404638672151508017817721225076613183415866190893295539713760461823271944840617128616275603808324312462180337252845938522991940951482726286732444693179018359738688440483893400089576352109307503577904623569863222111187199360940500485180526319536329792269827521951324172028841991189611643950319837221180588943465207862751225429992911077449245238279568112303693985555681730345188325638515222832533237147421121382707861936007215574996496346178301931553361895987210535373079118897734315118556997466795355610860878828845314645405001347302555633002379611471870538035540445506252399426479433690268781987282960309985942264037189550800230682027083108221532220103016778404570301312399354774197021178108215869199056880733571726268403038769596961624682800920060390517152982401446773903802627640915521071853813078290443945101178800791777492682204876541468472386756403823310238222860639486205826088709389088511288325011888049561727625776760264649506145265074128793993907984896453655729597589771513704274958804759141892129261304877270963040604146845725989643099150411884555217303422725116380665638054995512377037419694606623758855885122211912205230495654889522071254169343908529635570128404066224423023617676189677030795579664234871804923523074268029434233294337906709333607957951891549747219503182196431450146632199915026397234319773900698560550463584028283703380240041260060041382951675648723884167359168610383317980434455536634227648715575464237216920194648704880279354271262080030743361596362812113731168506837821265653140011537714175571913635034101711242989340068092940419026490699114754693256739578791184326134408843624582538726394639929044850228667550345558262651166205878031768977999410466921362289455671657112947961788294062009748660980193853483557461140102421349672856658446692100114073877702631614613803978241893406420906541368250773139496135498728123892179597199053290279077310204096021710695780604819329094441400159881605838058697266383661633523470759176278738169740006394269618031403487993499774166792041616169469278942495113416895410861809723723702472958633336627473184364740036346479720698421592763621822712050765514390555974098172483245557826408125785721808065117144319556391610850876872867250303099142674388226766361048098208304811485373959083812604041235611369192241490177698863505215132884332168380510580947356961685460713345132173255422192663865356387753672123359777999745055318533836951115582959531582821992561049687691961753327764980923354532686041743737066308968625220250770473944613320796730296758520430633413006475339354549238646267590387041636282618679228327961014217174380167838721888883091893357041265157583309590603930019591880665495489330349680313393707538053643264069252815998224312992703752015801180809314519921097785112402086400344997860526950447246780356769128591002057310152873376641193192633366200278148417130131093004481267021153559103179886520876385326324069316629574030429258600520611939317954960075435180220909779060640851572796001007519570306111783042296620315296664578376311753352599576877109447535325989714049205102492889271888130771427206959309389163392343739453458373062517188217927982146714375043819058350991966860422166300687675833311366306935855291722281126790729492591578548941729962547135254901740971078216296087849440095416267090016740656830499520379195471143777599689309580396403047934841054136725695375760723437872389903136494338935066206319829542116637852196044695305647597943013813535532099567700410024869091566255006343484053417809484568962384551018314056675683153626103217002441517793639138916076733958716463191947091223377703994895319352325248114863613909538689164548170070159986840829839056688531302732643086704505664453544447411635059946665973724807494959046244505373514147214113368730718370131048392594871525276752943794537289544008028150772506739052482669883201911321017169656872532706009353649240958570965657161141366697780403830419272146126632125502221051596542224547960326739158954956824128933905102604772584020244480807120210014091990616349860242564932909014715153553806770533764639454274880461769658233553224103843193427633040005458432918916591497437808537797898449835230796048711794488532953784314477031789000418494699237845688308328906520816016327575823137099547288741982855514515176899598051413242181503071718075770035222665247746641724733215799468182174267486493959754745212616755498895526898747363325377301631702557878514027713931873011117416797252203837156090649688927947597315312833783472842102421439046208743513885337335899626882458746125258146320282072819636908987610308052086250609435203224663647981776294991241540481502150940052937272308683430503767510478453785818095674322113183795624295178184688260107240580715292620044861743443511724005225970774635655985817933715584719504882352862238695205484532537781715655435375479585047622025431718719162087820066180580621307600240528437993176999535071503130032059654864075005844621697479629687103382778473535517807408985984784720427540159388975680682617355773820423449420883410276987634583090003210107596367593336756327810992769050633293683157166450871840274675650008663214519927990670836757558402239544368907867269927812489272391027275048914823487696923388738922720763489575857512392985652064404773813270275222970336855757840204500885053752867146408296596940424040665153992890852860279043348839661047773415561809178228611568507390629891862964695676943515251020948065411653337039211477427778196775954975933732399081044003024665904407862006000851565292788187371740987174410386723543250021979864823699326826111141637051938470919721967776527713471326145155359532297259722256482849893056311111774544944508034316154357972637114120387018896731942263959525583923961789701662201403280182819372790252641944668480042387159649913806698279148481520177923888794371431853530547567521448254962786288777548861983070588381983047023643785755701276707387224645740188996450217786141961049525843813401059200553121876983257244536619248407056688899343754259743667351200219797606469976130530265416410665594017505610608243175258830086805487827707482692768524123031394950924309403272449672763712455913826471502789877717471284970884769689429205174288714729518592652921766142656907404573187159285655648783713466239919466406454770115436327205889996226793197331074788921308356954604780623543200345715299898770949988764862987398676400512710950146445396786273574660668770807571634767972711634354713675327372970456299672399503982879359384170063581428349809218924262530927695850951821351111392116942297333477173634560387732326530066159431115028081910176626685825544196744164588988486691979122974395589295145464544859034197579764599383982594405411650021173281376547174168794556160893499337671679314188023104930393744784312236730121837272395395894218670911368941391139886251760083722689754428693057614255508747699996409524330858350052126308370562837145708752799523778038044045485650127306702630149015188232159240904119548009490310393299627463676513773450471399358275723968485141952044722263289578760453464596525702202894371882691633266395369125445608068626669857907650057266715309972161963908625526743707927889423387904928756104590136765100653946912741592239906299046183064315961669052095728124999517086734335333756292068840403805454848047691209231711154619186003723493986897704584858922110348517282956461520426953197301589455021238423709456443007462756414786250631026810179526000607383703423290452869390677642560481070485094703653319204263489236412375205703547740969627309474439361621725402792044275324773130120038462879498710904846503403512427337216770282577042112030767419915033790262760193996947260039537101691961949311666139998228174507255901285078486627139241449561440554413077175640150465689649602825260396798260808203980432611189145763500227426544714622330243572862109951614740045269689480883729178373862649204842082284385984796152060507973035820578831891867447812361413217645911258319791374355235622798682414942972818154874343296132038688240050273884077840561249376710710024475676136853335886200518574121484406617170566731914016404605778295985908130183574995267518083923381361956933380354753829388260698356946617487000609899142057401627407529438872754264299640001543843564261795881858187585679058628813183895685845290576899655562716542330551262711212612221432015896557934484116159513555628294985093966542534354188461198045858291762941731019567842252655380336547070914562877401642987263077647405472400121207611115699715238862097605821519033496623256564200236954275390376142210562302161916933764709213957746587727443141207623731122062261609046522215300375780803676309199117816130488628603152053269743538313246490896961335612358364385297513452546540484218768186334164765868763889524478131935873890089703154725712966457272041075290038967842071285680063925885575363332512560527723601331677490492916406534337717887725320976085635280138011150414660871280425052000638176709755133787712294795761069557145173136959233309969595582540731259266846749232644725667705895241701074181937223413750704046839251162050219117231605125802956467254215338728231006085564420077708942503052550516229412006100307355762145020730530549748468589193982838725219521757027338497970545668218123547975451761906944922545270528598668082322483800223984064435377030808870940965996835156192524131190655135417528388331542664488173092657307998013363466217398440118053656098176198396601495280932630149464563052828134492647438328557115050539631669366920102946425171045332852945067040514692333174810285716757283968235706680435195045788553757103371615639736057591855630800077010273146694633805868497385633406023768768774994254904245956715837770501408781904220613072741190496066443319293155976055165358576754399431663418717902802428429763030281940353209336601886635208091991354756937229643318305560320687839590222923003875427562706487667052726295355932329070070418279107023132184194324118969579364498127682528495255501357339868048512283389885863814537163019060508578910794928327426957969999094544386574202117402126366152128351478843558503609336532302848585676272479603944874691121322929496891264981170112097372594101475990770453059638701787165516246605725916863374457691910374550170629237182110271516831285640706774079166614059361094795614926340298161858717079494978701433364295146451982630672922093400257309650158220075496370881182060892537686157389236301567636147876478806938502643430969255536562730919156846907438347269563509029544682053196318327260427134963193884197080222837762469365028984439396205858002384761238318299699130438999427385653908866718580871107797717491997659608513189170385028854816511549787041949649068432090332789989167344447024469048870111381144175984662150356387569334175554607452587391006759636303365694625552517312098998979256086259371137386380397137542409565218730332551111666620109801763403889468674065299549499811112164100122401595739751652266190230154137697240231537854916352306175082292891878000175712077492270407710206666030444929033227504529150537152434732540250751598371438696046413872507695031523085327414754775394106918843952452736584715750652755600447915799535929353854560572025037994358699263151551328086629947595973360458712686293039925493280567178456459832076849392299114916789011133429413906687177738383181984905772160118313740881805961555612065059793346204618117223032084644904075676427891181149176180093191836863190393647495877672529139482658446196784757773576161874718286261537293987655470702185237715109401019622638801202587592129186026532662785981672652236101080037210693351863401585086127605747307227829061238128139214241620586948047762267694741286322397958271864109816940318159282553608104799428528040198124298232755349889281490503308012822482982118934990051982153121654428438016788885855704053572300038699341382599950082344382407054093414539287454304781365436058493056389232287181799886285485572478331528768098147340713975002350482440678355777750130413271097473751352166314263431792430341075840952850217036723705549827509499711158411144677235544386763489473198761435680674927068265170386853738528201518624312934780995781115823248016845427263546139952387890972710449861651848938775196097723547756768778699111506401801012284547828087836134994374852975335571469428200911022351889930635807799687527441392027685103440812602744593049952216900352676421783630555939611271603345420195604198326403713415987220779427864832391378262604960692468779390963244411319770159769470295414305752249986553476078661034037446266683442000012707472951093038431777739599762489670187204349556018864851889346724930522150026420040640458612094065466661878876240562511930627260842213972335015422914333360460250815815765249632253150498716798799835974363049088059542249094385038219615393962342707666317538602498370774878831015153067230754722681884461486522963501512638668908496698260788514877050817850127517875961562085579157614260230873009268606006546616898331142335492519811775286940053586152131379331398263921899791496208454915339970354504393873248724432162858509904305336185047294794694935632373432701542770308736272203523431960883859314804771937359324744721441758201487279421671270790349028364276828918917735428558155858473805371820670382648154943722288255844137960908928107886723448212098569142473697156890621135210984082645909065114965858324497161924727481336015816992655847784377594286051930681905378368812682637062198441964882917855963152516647591541466094363988029935327773306513012007301101930222253977248279445928039991483114157362672848548515599916743043512159435981542253437934723819784322052207198160316690100724353928902254153263382350110649489455476704605965410613209465067693299531838298634950679590823877719386433446923398927562269832305113386928888473570808446959268600031287491796239135021901312930696763323321936093370127896333996062903664764841213279585441202074919732244884834559702595234841446749636598426573617289013785188131951170609714265318648981707717802418343958559108913394424737302608926459455249457605067583614349376338325733567992473695459349268222616001313477187600488660936426907549991674795892220145416722967597504833147418660948022241151193131970904236433046277465912063701939399964570521589848638192659350305608402306562689517614392287439226979926774918343113604105658157164142648261823150693073977425708360920873069633756589923003268836318674805983974574256897745630136544441078048022731597458082899157583520382562723182653260013647839788798074152468369375377905797506108678641133358121972788583784994803693006531348824943442072570849157452309846814474546718665812503524653691996804260855659404231128839066976306950125265119273571125007252969267664359917385691501662662457168349072715080363701525943152605659529923843774309625101755397683719362192694629966286697726300922585791067889762303376426854845417975282256674949594197673388551924938235269425245599060162796770843524040389424291502500858550664782268880940220590192376682460321692751686251612500278787359582920189219734082073916560625000028122850862056897331855802232392981768089744376234250063391305237227131460970362640671550765030094906926156644539687363679088462479666834507160075483841391894544659298919828091546860554028964929091516089922815769336614134398879125395884942303229025349065193791965323570759648657230621544081245574011418941893522636656044711928552556668436790906873516498724427978886937299312929710690488904911852309960188903876792035168266979198349533852961457829761721046368234438108530961387718023227601588565967177876848726240943584343400207031290349656807203048311161210716672534394254900231885476950978859048541471941018119048798399671941388334337122225609983541359159536115923222823657054775667449331237113992170219811652672248541584641827305493170335543659650800054046692587962199489698850052306899546166753340045652352460665499470432996832660219703183922228709523150436868922423278137756219690300719838259103317666451723627082766210973486460924883207610337616459888599643957374856357371707232588466135769301225628168484837484027177296875352905323229675633470736859204919807420254001059472085682238581955912408427738103989080996880622607079999463442332017397454352403662369081698240034087559940321083474777665054122409483866863884639603975570509021815215644678975508598535869986958910268673934900180213177783833836800292304217801893900286027915467421610401776973406772846751777210382381880684233798752975312519084847402989566613674490988518470872333373152912193341995082216328332337168203598743232770839207081301997504236229769014976367168791270537715932820634530305583201719470104444999681927988173585429467500918412667468497478060956059619282475375290024717899064988292130617204494064936570609411005402286864965120743466678117989920232293301195738651095944006546996235819164917278457768690603352644976438014810328838077996230514814033440527775490942136942426307165655525857124054180360993846228736651581876613682266567721686657196580804311794448211736089611082834462923737958727432309378162919070826615512103003482615469969216683328786444931112937767734632238835434552507763121764926719859496809879569952529185471028227243077532143280569461583881588012559310665828577582628212387559007411782563460664161990477825710212265331609379754358967298537329204609923793356131095048343887280276830332273649605483612890205250088301773482039211640105738657165210778522949050682873354235318744794352179167451583566116506032031353409854496076193688223193069246053942717519440699044288420653868786320238977205700618110576637497504309722417966109861941014956701353313417347800352418990312369358939124912997190874980220510137980175356573489429721371455036854141983460660482660747866602603095558464140279127123025378734565433174043525018647595789014623688121400918159395524533985008922596033979597992959260414018381973758727814520197113199927680791137369107256450682959875603063264718864525067900048918795455114159488582254866963603527391843276599835305698376289914710876015665245361327016906987407633259407280306886090359896152824337587946190510002438573471874771999873313565417422003884373577043983873522497198471659998699453390439186708879905842430843329631616320302707850016321087322076303005909072333688673677693017935995565093164167826824507323262363352272172509867936816207663659605014519704113052076386301278887099211192669684949111455950092289513556019200712399026983935108441801550488538472651340233016613170679470556825113327948761292861440515912322067965856678179983590143224876525540648530332354654276799909707626925886895260968620370394840985541668664457180397325160303028212180024052543406819844236460747011022436471466142697571705690722825750992552652094163593951993736883266393899160701560234832471819110566169459586506415940921291605309826684671509887804337236848248871937727228121987997559279291361720114236739508489758048830292625791759960387339398469439896626958715379708670087483030120443597041361495299352833215824254452634101885262267023215496368578243364060752687992582102981792168358916695394896556648532205724767957643938147771851925661327131809176056827671405730797681639815397988307912533324105085470577231693247944866644779215649061539102563824389049318952351769433078300517461829219363698432794601690052708057558639205957809078097195847762288952606682832170518890126755300002453478348132464664484728630838038626856432850729140324550891558457141892788237972172265608418521713932571268507944461757029579809849019230789568303905638368443928389708159616754403550783125825353057211167083911895512011217412510999023961861063885067562292360274050488018495592360351181752096471733756970000996508019135756722637302871883443488799536790714550764235176972495718831294882625153073184790339890544178411002726417447359244550387061772841938949067440460617678478373639680012083145835856602701695899578154616244148572102794378398951260069308000033125115272511861500383691688608030208749743492957197911492975242681810568043972747539371878728847708617063634755554497170834464600370423628603343259787011967253740208526705088843545361511205023016193775194921064922497871166702355890925575159978496712920670636335492595515374873331469471979293413212795987627585722364250038307110332715568815177166031485167120817075471943649304034512470178462248766102662768769748159327084031663585942854023801205449643269032371089949401955991288241728717099972955506834280984791966891843495635356022514724747978175164006604633483359411150904837851634654164921128158255229758581440658593353585067617254771950745352957176981749542012081309139497972480053951726369378396174898324927188784021116161429742557317643449331741909269062039574465012197635566619517396291629563825448842363060481877447472229451312925650333021467683606864851996528581753937547903693835016264243589576700759278607767306580198930044296293314916773294825462668105650788002055498195160483067650388405632966033190634933826694543337610688076076632290787731221501037690450809183010743783523245879185685282543693158348873477225359408476139701701404765630514144242729060900014284151110286746639174057503737464013643988794888425041755820992610329630518525165507924316698131412150373508019575444704099078810092770388999151967996294895598700113889559514048387928908981197956507416428189453850525909541650691141890203667828588171886444689519654152490838376991386325451416241862809272323816922160286898206345559844516234582374069498121537233319998589443618740118804965720173739792967376177773073595625516268545033938617689426489086589939959684234411028734381363592645354953390993482018704432650807622557014206323086740627651446504605703194075715567965852509711741326740473036776605809797748380640291368896846602159679197122986022902006224411131319200653245070345649073329869852196106999385823939688284463551547833433942086761682620609921648012222727975535856414937275874580823322645601002410640195620809830757292007948409783907431623620594890163772289223135410237989077750899034228698024348464306213981802211722491652466825191763580049614012060317344489644162834879794614857038255237088551837775768981667152467126242179901889321668612058752853428308458980326897475009382215027989161204030740966054955914255383912867713008840128837386938082373580189556916604414037886473077872168408992447667297349202979365351788403443907396170907611905814182523619966198360470981916921885191007081549802955309123035355885411699234209687001580696931146775694499981749387557791309420414772993071749108111263696819627701678216628482816278785036373150130540885138751583489382166385165250199260493849592376864134949350863960773289397078671422152216554906175429310886143387797361309621838712501327275836647445925480782995197436455563375534879617326350800704940678861652620703383037058304652940190068955840162064969500334043633765519122400722183935831718885010634880344909130038720746300312014697516446286820241576407293143520743812553083227306565411399309810753208879448563423618183408935917624410206927719769626109971911257520249849348008776499584321794154327027307614895805553116711246329187791342627153956687949211522039299073621676167700465041914601513113144970526815844892546443785132682874975512228661124930881680119522232101626583028219457454140090673859348461419274193429278681755777269934484252921787333077467847843351204584897408454072228641667924740757161110363596990225205968429609274872669954726175251038369487555896488935654854933320273081213672569264296043755749724856469685157481823494273491869291968819020852550016634976825170267996925282235824283900676180145580551100919041473985390779319362205436266629386759072531129585275714701789886171602752149398593372552975008373658049241021214666281017381160161037538055907059758056537910434698192119656383776304438290541545356980761561603933035124980851109465334772463575549239626531756733325229651757803858188286589030562816757478515223201829778311849571143307194943406616785774305122224534118429668592818493396692390050287014072717151064212805769562493217301321590854007790499215359744992897236785301109640316639843687687454085599654942236610930687847661918565540765354572528656679448872385714396467903699236126725176670874476348725342435522117161013521373557778045691896651369547513259259879980998013649280385129312276835993741151924290199615625389433432233240441939599523127624070280551297570871075651686384072433116436723877819605014567747765811485330740750451838995432830348851470400141406709567228185487829333524364168839219313105933195558770919363388337966534428358302683432466184341120226432109014920394130708891727791218387128918557985620033794831143433973316919531990148806092911798349071530156390265977963010105269241231550539727495391871906241101875522182952033367469118654175426374190685437435053330165630951217382689171380180981162164129383173931876586182821940785391065975962213602894439542544849298736721087337918760963791630227662500845601433149539957888068804441175453679444507231503074748969157131718971065128976672365344568686633005722619693888307194929505691934863513991612398519326324430891205370517171616117891683920983112787359544471012709430596214509580237176472486676192710829473468423893748764914849475763409862975756700337694368963079323386347720286215876009327899179158464482149260481209113025009085416948895878964774277577238558972521426685759322022223056084897840309016509173704683619689240948974554679852016641683403170872399700152516892788636256046371433997252662770492940780312981734325062890308125471579012245764855652521021171282047356246156087096108089858817164032726688525901558484565314841586888872996254040944287100436483981348109353787200507420914362065110779169778164966493821519310257569934304964463604211627124827429048186619705889007031249582480008552705748229276274174421702438979142467510383967497771637919408067305192694901082890565701209467511653241009432852474284034017180088084707610492037523045371724561618172213436905084318076562476012725495466319731662328818855543433110973052125983693392469341230735399117766899272509245937034400073445570014398797685943574560731049118840040049965347286667616872370055023492787061128943947878071708952568589839173667705892186665081686251042838305895686386836731690362448409608208153859532113906224696709047017695869222313338270783690184685993484856265549987829173509528900580783111171475079714007563706712866991845685640322997234603574533924101018264442248156418469729836025793246645397589406428591353708978774895610154390728165098944736189937557433012214109162088322320703281083574353872148137778373349096483878597863619455808401411995800728704539098501585889437382789084018796931086184121532525739185003611743143904320295556229737844883978398752106854579218571759719008417643758785976148163626894341214006154768397293739008462948079382147662796696592447263513748126358631592992145921260011682756404525766103490654453781473403856593767591770110553671221150970647771032335823844041370230919661665925971255098104293174129810906200648572284299597583019407188937014562570745911188680376775457809090719353260687117081564463535098792996895704307761887244823331993220809289352585319921747169769969571926584967457482045359476618907747253785399869786484686238353653925834938600187865326962901115480693275639638622785881613868048282107189603398989065880017723159587285361674960320982615213844286313178817688735834805228866391156414183699074759917411228440262147433470457406112066614302311853357685100664236536536363452927921920574790299412699526641406814066885591151640803699796978790006071120074709753051309930053510892029319436957680917220297870242249859559054535080345892693829621189532376451802509431045434754434057741231221553486503474934306887606483398322051458674895517472358257792061197783032019546618545173490524700369818728714187209206344010136684813026558208996031551090631043571416891062705464686494798947532897736705911568349645559547572774690901111280858295696239317894504193241579684687275357851537884206671409742945997715216368732190188059106917987816390675937347092544113427955282004466255959531347892889619343076958322708526019966185416515519203709631310897361294752519658398005433783258473592746220126062102622433507603182902418638000308326190906262314168356040032093999482555167784351180685797947088557879021144370957406683500499540084664742553949845102640608741725806697532527495707210385791346250615257402971274626887524618323409804081586462742587413993694239783856383952234463541216776092658912074644751847211029312444226773056424785754264817615322527045267085339173080595224429216808423447480391725626790955528325208552174436657474929127510845596882977278821315836107969591986333476637616842681721375773755683380296935946299001679586584033242098938417444825635488934525156099795476624117239905906103970621428532349248192815388661464383062773560592674028786144828844104328276768536435477374951069962908012824464164335609378714860148988103240967997972337006608443810701094361286996290550041283301866097209704059159949656594633012401278038196859982007243979119726163646883936395063845507417881177148253482262109894133641756839831286592962654236618655285542320137007840373830914370141007244280628717713158874367726236911881568562533138733309305852219787416705619947909054908753130862403219994171150747761626093293213295047776527735973062484214139417659202460047562752754876774074550825639004043172640578893452718581664441022069590576411562881814470240795445240291825234927913411871307309501311623365846240838919514463503736868577230550188102041436308620161342588011638410023338884695112405549733215314324058535777614687483506060784491374708956396272734087248137511185836569390417280102469660475285047172982851496347051860861230524283621260446514762318325207883294451231064836439829478781229174342563568317445691580298993846179532935427925111335121656769860370646413462784276330347539662995693367648936149855942181101610627434230325371410247012879741133139175494047053795023673817527178249152798080482070175515746467010857693895718550587426758827896679283445360964894542384154843536738890053153301920994152305520851168565442164776431469835115145594361937635929951400481237558188282664404065082126819845480214326169587998366815351324320393050999575354385359246169075846720364775287604717584648704053482637956045791957809174966417213578219731203700467100548813511547919446958532870204778960384831336639828194280380538542537963675486060154733085211325417727665827830879407461514927634425883292483334021546454145603761381381242159922504938480348628040676751463026759776542534675027224871727519030529202632319941063070162038679265676047457452347549815438741896030434346804117239330144526194108468579561357555271636722373277466172294923749269534621513479485173036258056814197965693620495386737353540896835338549147229478542091084891215329415286303988787749180558498654821308339653113381856382737917498046156665975345840142185883632490733493674200189908048244732589592981211656005659243364163076732757307017133801407619861391082550248275802067734942752483367341363314016831119539380360913696819416789964138972590378380567695270860662486698605876425336367985820995977920833721208426579882642407617070598193351853051973614743980852539087555370625993485545907505364206930451240015627162514871118132294816196487230016169016388817049894091017588952427030969767999488911820616507876409191612988774481463209556946655973421308964717728225437127843593292007866055778605493195031431391961651687185532908418578553706081979515718823875124158314931239429099583389264623478739333168183732652167007632924883920667646936798956974819586796176063971483799067044007603827381394819469277785213784302993018724868932071813617227546991529700166960223430040152199923513122902472204480653309029875611242461902458143697686123860018639614908843540240195134765224788333294102576539196942733223946938377354332724901275622341912223308483588816716093289194746038968299779294517843051568251067129178922720292760130002651088755745538176724280677168380538928340392527067799950723599766935617436662699933053338363908953050037999058372677637814692645666306323539366181303669403253424153967032704516312209821034419021921272411631417324226292336473330573948892642361977926244503780374286887133749077239161343152739761417522653698848479293701291027138352709582360477308243851046904538743798117617060769497417224807915759685165992655536120337013603420104793612606153826420249804890875279934029016132770356891507286862735853220486521779613925770372040143141339979921297345330256681821200001255026266280187200275033703802659254733583876562369961670102037636493275905151467031644838886014165322187851881999293780791148551861196676157299869408243826499016538957308923550740420860344667945058806937726298829949809281008195346707806611512982031034555367919982746447891537258817101230390351383251618862852711288872931695456979368450547520657625314419360934435786193774985529896068617660222867779607014065187170836251392463519527921823748856151798770301792766022854119448684085923576823291846841597611728465423726689344947560172680063365539845871164962106656119098562411228053684592276056610097009386505877951888641673291217807439967022614142214197605818341122152099303110245637868237790508667987077251977176565580684852724661517998349048238319028698730278899089263104581036227525127769976042368511241933586257004589597532815797493994171900769333842850739774676362950644214717591670007654114045448563919565244908463927223282829981283698024863924364892056220138933371115365673461589760931443184333957905090058345175805928453209884931320446098228702520824590251255793321262237140766417685220778021568738271301708931396025474120794566302247859397701773219466144644045915527534398694322399773108494013849116798133496938421574745813077649205129239967783822320791183876944752646234657311718469428017524632864473461251282758515717389160465045300229521303622782927638255265473192610648171622611014014132218050270262534381670915891927568871190540623465340076041780540174441982382961356817100875291654027161956546543832289980298253106651364838347031826873066693791534749588061682640007878262663125175558578831474574619581092066874976785666947056390773513975757002252149461892805489352455019679555158253175172833537782174093473093717188549189483584354826209966408116395793050580614816017055969445178563414863143979282182370728674898042213341585333111238143958483529503115216989601661440241154598704775304922406780616727164645595823533950099914658147066629440198481041714655195288351134678915081999383801590748904924097669180896719458683379887374512391382853825055806547170562856642906579980535474784181535373572191701226917534789772877989105005744940366959888072754166529945314505408097747911836926480880262990924526672850660636532739702208706244902475740466423059925079586446116888303120376939255578534924925134014201560252636701981397147894168084142753605513004465046852347830066000795727691544599706288568076787928713419277440162923131206344041857275077071589581024094186383092400417084285082277792686098936285058759639747107088230385209824863445695855489296617217538047687807690166292018482884435658834362447554103622445249854450670334667274785394019982490267245155609467495735293194805979178598988969817857390998626112878570974980719669272638856352736541851238055796564256096713231439405237382571913205611543625599995625507374388277384893456810875105920930754145759043503746334569012633991233808919352028028259941401139815238314279696466634277551313334249606614882971358133176997489550350990354942882389265925277477659635121496415897699949633638963942789340576270979728977574342630065321028049784809009897503821256080192802089182052071713953264015758575127271762566006347616665922515128303361352477238018711423868707990856717032026658955463126888151730402142650598217292988608182526835404568589929490910745366358337795346701806330358913207188810776116130003643330258375073412864228252497686236699322492361022750333250680218984767335191074540613144167972213272377632095133474570590642704032343139034938421359328838499670600193410370888178621830412580624134626972803746150569677555791382402940823016720273504134315948933277039261449370356191355602465778349554517781863747839254105169246397713039859078024713700442931363517974382365295741785448091996903722033679436469047637218087546368569320126927705006458231958532402748114800551860782488976946569628310045780339133364437912921678336052112723568454058166992326343518438386668566630930172523579598399160357345330542358910393367504535747863672732226692630541054235080989760448491671154955793131526729740190090411151072899395191086263383185380046484931588024375070597842597559110789705171096485511997919499663976981463039056087214289117372290139295510380969592877855393645469449704091191572806925946718530037701156319667037560877295620294749101995813503096304770322310107079246689716896908742575011550918088784822085059404093231550871072772877016982667177039453862717109854125123685516185800951482336202018888028009338852178732348094752380377411598538110805667894055817421097504286763780230993783495720492784863645572661687807703188912206088490459241726572105922923726702178977092651511770742560260614426142889683993414537676652192827245596409605960509805051148387071795358819784245112859444928222828925242044588080881925611442286338632885839556919455906373951715654444297648775780390015775916456348990116139519938071766563150406422730664311448857965080727757978311897918070236563108747242981274288350416039724359016560240404025370581915064636375201420168306431945494550620643449300022952430352222395265151897561244478965011699282151118363715806592440229134438082807301748384977559947119685705123975134545745071358639641669115318086955453457393920633820375983026898962619397324835772039426125584154232059968649965368967404635695333742964167441941043427998370303077166487463110397695869063486069557554795610480877306824313079816779810206798672965344126227674495088268866588076165271734582256292002032899925768527815821439180449503461154486549454242468485289919037820815843228806961243567803948167113618975713690907523672846467937787824989813317945585926174143564694278337374698900287267485605070515404246274501610438328009287653151309325180379666334702491681322079354556859793794402150616758659015753255919887080684687004349828212432188418265520309028395318871418514126295898893055687001444563126450515624208475432764484552768210126927405035578889738483238022412798342103796597303140170992263191229247276676449965188958046700692077775723276359036239240277804440605891836408752296483650574485477702698801125010367659770255947205397120238548911184183766449901561958947533901614444831228982162044800946657173321794387716443042401149384035247032019447375598411434125316626006315859270323117728474810747307425855322103792142407045483352552023042278695182337253719307099044539589606067435742158797692971938082661265079680233422794039193984272392289507459355069310062468704098336297103043871176556336145814154288037650591837373198419558701297694928367162552951760068094808765640838716433634343016964669826063533358789136286581676916268736026251480182109450842431348157374665901033607406331287718101755862167568357380602336297470224622167632386690074048704997247791631235024959551993457365186440649538948674728231543612223444452808828101974489241140381051435150640651734801178787770442199205818260362515304394897322314774736042661671438940646176213328816184748151825065814352346172227371812376273064641715995986796348628829151919127120220716963215053117176908597078354881301754505017136429345929198631808593541142306005665748800704387807361054810134911301794494827344370597244923178455458876987463108962943402477204252015381069243027244159200555123429045552631323228083580037860772561804652257267117398398879267549254391733432657930563853900032698848617428505926105629524612665690832190108190843956800452730629798563047733293402675856461531175480200578519527834102275838746250780823644655917840447274608527529887001254617145438287496668819987115958370777784234434792023694778194352820072660462336293641429101569964079110181895749589375796125917174419600323812627074326789673223640175640827434161944277430530515307182879237487659828432028091332928508327936584770265996770390132554340050979533069518472022541223068440510813160648978852653933257764744713636184903031731823902621393957985047449795782158097086404225813496000759346170044241348138069390009045789132202608499167330273164613449102456476495457881497629891010619631830581851135541952338646032251511682560630281742356488959295277910371801100492571567166970582528528885247701675175344310874438392810941976694963178154437414608962348085240969233933780613811565567544072144245335288704799164522818260168949104208184784515680237843481497478397134971508197731489583504233298603618472858227414756240702856351611092925122197248760388929060848924359716906641088229824294879122959186397731826636724911813762437546174419350211501640516338862480076133250898655708592100587248039552082990378962071217612467583696083268568451717388753257298382023235978783264436400780974842815575933528053594754298997878059781811607599880272190717995117560101418175137482289918485794341837526980970507863403868862488104021262676217121940089493646331381085048578557954539745597132119067353347318087335172989924765105128555743172181743712590029665384541606699570223394056506084399573936986008670625839272901299906288515675923527215640077921377265751217640035187057432906294523882190081150384622973122587291698252139550680587584074233913471150818857755875452983610462289206047853601575642053858638951790121469828527607840163270894344849821497153783520807980069120291147717445640846602331693491865462127369408599040012691642857539221706135976008874138009169096854224033295617033572173687600052335274985114394704142990427231694510180906494252211531496570010455297392185371917044334402443153119099905593427534927936708403031766829974130652656079291447646123563961341132549247771239619944572827357654868583154676805909566110510267174810000230414884412959245461918394235296198600612192878446242707329883370080386203384776332352389303692540190709760413116364869676275698831843724046669827209510171598234592783824685108375800272756567220544650604714714978198163763578771788984613874056558106628554161292392793320078640134315992060705495739781819052630766850853011593130393326755535906178008283670381206452532538410191582409591340881570544124931466891454972177981387192069729890572491044253091874942702038634736456033001640445675875460477756672088944731206646260378713320766585233378649996881644939373930084843524771999367115336600146533739290398247201882313594428174655826677799492823588799863642432121802319500013571804288683792997332902394767417782085025380951203108341290277990063665037196438659364444811043844129725001682606284089588868505629602809975390476873037183177281656480999510086570873079709430928584610103049358904874291511853317713534044710284453754410684534893070895636437570106937583492315712649813710565164602499308567095624748309768240772864765155445160306665216418775668696407935850944260963530631230901775224856363657457819149569983908902301966245619973983793186636304219713899839174876750231654251204240908589468213722796205808258184979572653331737922763775485904848459141932061106272618651795492646865042818343931820414814047403764280448423749853108711772688421835850254079212908255229852978899777523507715503276527615961540441738218766566492825125255309169948825313571069431368965724753118181175888940169259231458143988462130960502617747014366827666988004330952338179092158512375598135891512723555958246670379693978996803163705432781409807477506933429687638384344216060975445682709025014082740115641320147034740321078988180661549619048542462955000626645408981284170771367549326582511680613355471759278536189933143521535947607905105627080123356790200234032162102893774909610019935026573820207353608420462615120070671387200769375535680163994657245723928601737613150401363373783797141064629777493671773605767921933674803236434131075425742531904844212499531994445510080514172841938133960909051678915511746773245370016933172135171729513184833802541238008463909792965708747370085268601510145848811510002318616557612742602510746164307530059788999526450128730640160375487844558997514471618231999299037479583339756120095095855706467161729810548332018882656030770671421954286118267467477281022847985863899434118527871446727562651915876141556613596281531307323653419143722008952132157965289145852925430859705365453493867286195475976528995284353631315400990461862829979129689083355332081630458146046054185183873150419451257396171419453195258739229810638489783762684759430422746536651979659323019657230807362811494496365126036634037645131261338962785753488684574889291839956232488738660939681240178400477833911044511880625042629938856802253209695095309004486084212513017749510018111229970425285451796599342135423316856826569028936036990742938506795680117515737377778813951146204328550295541157938522713477325603441907567474250976007834234720310518872451578573167757407786165907595452284972076780222919091544100404630043532856824677000317477648202128843819556442095162248148592912232771142494878764485052012626473216131211539174118094907731250090196252620179843372981525914484950792509030293320808161314769300823269116426200388261064782688383179193395666608488405609576605280290576172500630859894105441835180832215546477807523745205231060250091302924079660974686504731520876702520696277079204327376443992896862971704507427751229963677742666956263022142487809205383705092485071972472077729317913654408584451723146873729706272284466626807960091023845298812902182449096633525164130486019403486134304529417249179350427219219421352831111107318390536675981154545886546402373918683175477250205504554925861486499503723438670419951294819035178291204227281027222041581833868220238611938511778275473684287031325503716660705803794907609699755262821653648392413515860220045359457227972263641697363722590559367304543433820847473746438647673455592010453226067974743334440678961880590995771521850155884893522187414426004546762240525127855266917519526130157098740446008545048736581995452627859399418609157714181573846643106107525276797296814765433628949482423333420945417014890374989900438653304721302669844644047692742787279528163324694757439117174091212007535161877469307886975679083221576239207849266724255000097681929693201400952591271889523957930194659159007449147770175813381007518805999333314564478088019306489135982110338583250239170412291581816435851139184985804335316275736615834317709948052416448093199310583610862575025108693554591476743234302278698913828263375092246463235585444041186657496408800115036814326445313758375310398672631388616869052815324733096037383477588918046929140643016755037943101152568983550879261231971193692244553709249559146333939329781745048728739992080121089928777302114999081021294089688960330654812677421150563028406147110623733088718488972127973629113921281525279330206712753199799352969670633526487340527249864088641748798388345153577721607750054330349368135524856662142373616545592356056492760806855404142642337418358267412475329467482887477612438797798115273942655041721248327551285671324553145217444530523104649165585813611406371729444852392095035650996140373590686731043269877609127059319799963470815055543177782309918699601059217986139222730848918655310632475172698565764777783351508369860778104623141190913858809516599522125766951498115611106075267664172369026576706658266107967182690815404245694565677751243212930630227856574351177764512726916204126151117237284920269312335189253263584950097893473978483725640076123760482968843340952069808937902185761749717993543705131906169203369539212772384989279959598412781160558187815339422805765448441193871401736517256189181730470639865624896904641595018351931137392281405741703768550383185947220322944675555293184327997330544852880690326256743358542574446589277990255216985582545468408315088942845349962562740841674078677640113724984982192436203129408571805721714068614225583761703641100049515878344352552249394199565851052144513487753241460336070209334700773467754830894944224760858507605731168914230412783415230759855729682575833434325230876058304064338862506497977315335032192432430863555175626308114839215986157854673791230102495427492727269948654215873433718985723332932768310086140443895457410957879078303118075675625822420902311932863694079233925492161621494181342680636387182330184714688524584702996976821488242993711082111555333236808197310818082924119529482961842772153170377279781949003348523078909026707824479354101036547790805415678970344249833059951429177435557000460814903493384428745513277418947957877811657735144620860263999873774594724009260261818122481271256857098703981515469203385786864825532496311583764644530986986419566822154871772747010173408169778050140126690927547645814710992035477751499812099539908680704910226627413629521665882806555256906246148110202636757887975133491762596034493936774500064522780969279366656001164872852019060334516390954161453258784979246287216548907201018946073584694918200617854012753961984901019340909794336903950225357141594613713425050700518092877405974051841614792315095808470778316091677114568731066763079685442137206801595647759894106298718071437595501666229580902711132047785520436879652297301123248799201341332475093504854106937968988826568757359502017479070224721904227815314919692055128817417344237304683398725309489042598596862001565505846729138895176975510757353010377231922152410289078425805615007548600399537951877845442604854857702102291487793276329579088734580940824262812896200358600190619084907670095484635285207285463387464789488465883222219770238924634966521439739931014690921064871526333324650498010967589465993508176153864324999737729594597440866508978534362352634388990364461812427986405497916294503527219144733212109985704614439025954259241282390833948306207273056211505028322612883467334790889068362704621292358578539289626412453786448411525835556676680542472790552487084128079140374015583243429212427646147170568397958267840645412472301437966532215125832911003203560064104110265608196476210236322646778347551599356832744141606902859512027630014583203809578591667526061733253706445380619582929286279613560212955406064499584674442105566034885044074269709229547244691550580871730360258653739082487065163352598722455280635804508234936532080133343484767628063246947599349506839504583537645838367776848831147986653639714770410026163399425129319455301890652536521274649168320672494231604507544907743226971213480944539430860896439537986287448264990960767974939217522644754726052188974207608111280382794560590792006312848804614109257357689604817470238146614532519997118704859966618806218751406766524308419912952831921826709758116501763888439689324968878776082719749061088786330412422251120306178319954601833292116088808295487132293629176697152818774223140551877625074597556507879757439172888309095429301237350090402323962824797973310519552082592372036774038691602440395291398289038646289342637967887273652466807593836965083917011415850939705926655170228939391419217596253619005541219391612476770494537411657846839887924595323764207860619106884521876946674193269073092986708840639375938879450704250520915047950049094956894571118175464247014809274475385170421829986211182105597777752569785987207673545513195294179137310735076250176722176311041242934006865740271520793870369796210375550214745426046616741923577805685611465259678112272151206336406997184454036362525006637461777133776414633078509750462199200764093211683083265710006292166891676996429614420523192786043555838972419342016575549234530396818321465351130154824548277302124076223270824258516583361237291520773512910863771470843615428592994786915171732370548412871034181528560338045911280117951781927695294908674562281070134602974761188268343945086623101714727454334656195550086752282000518951680855768075163571468366290704437397164151252576692755282314505859950060154518162042004176485254699772795863156621067754534714633580788124932386037948372445616694808932394999836608078924263996862647056550554570409760075864177820649341045608712664249937209290251907132914825743567033788463851882330422498951916230336375417772108596732783873785678434557716839613272305377800645212613981151881791555029418101785365508599893328860732552618025666515696711228754654540190771473506421767294050752953460611143006245510354837694391878384010059077526641976468235618074482173173791155421162774040174184259973494171197947717424930838280352896558863421221978844324802216552878120656895230514526769045763603079968284029566083879563470725969291068759609878145709342134542250170582890941878666449156175617669503446016148351326521574003897317868207289764536087089394116337469273082742545384651829967397297709706276984129363920322862400340264405120988215095475539222878650017409409586868271333902704569156894378407122808823637625202520865113059723449109996064669526828818470709355490993222009616631508105451643667832061964607409886799708630113926212477139328454743212973181096663445352580434518433975062001456278410310156237735959431044256871485268397962881477491224837975425117146599858091150133412259441750353593310621411626122719600495501758518126625451562249090293117908126087277614714078653291042713029244806179784852441116566980662652495949021378622038641437505861677803342803498161264290850801486123145494690591756837951592728455041724707375053451525960098967414008318623381980922599737242682347669920957277616969828326663130151557872551855575190967160578158381535003039947920840323742973061822563984228626078029027184843256078420300276624018818677546402246877877533642577032075210894103320710824201050722216262222571662995826303185450631774654413474426687411420454116462731006792775858810995700791209063819667924295898412549663287158411507794652511783404288423536711101657723728329165450244378355578573866762773045346253362071885446695728274352203414774910292638726819937674056290009304633477878098693387624121535250930409003690187857674120099175942565864543682624925342745678603097624375628887122653521353038217729781489087276287355025472349626537349704754843057014394365827237038021019947488466761779707213418702322382213137147742351876603678059433960851835639160156995126502786571703075551392900078065052657665624940202324109760805088160760716196597114902930456438444615600973899332197975584554244565259067933607014901701696347589297986239315079289731146841653559906346641916288162834203525980533860859230732044568789652342426411466582732821775028071826299583639651671258511548551916248872566342496476618723379756834279534260401362719122577426487052746234706130688596616142945369960804023672579494964686347594135229448682131409181374020400811042586199701492080083554271073880953597265208184586548352090613056643252353725851566547487303260332409901047560187003326881364714390177206859512636795349766959253394446004394808645505168311168597744613576625785490581740183220438307776020011777790035501916330531425590544105853814002544210075219665319974127376418068226617557640373661068507382523370370738422835367888591960334013587264772178708445151192690429149158434567574655813978696614077675901528197980272475697357449019427268216406088637495726981030988984963012850889978752182184354221525688758009581082657910957934442273181817367129750259887853493282807587669438721670475629912360184140231185351691018868023610487749240079018354235721523880614310164339624012169600500069102032679129385373959230535151586542760027487434661720465850872038030979842303821664860089692225929011362910569864625805201993210882064971074717147615743442126097396889444395160239562452440228560315736606659434928602199586229238999107098436545722362483611358826861130426810630169744382329696149810997346305023941115115169375291042496397932827233630741459835533991601917135604303791762078139327972718462214763534962397726361499458335281929957992056154861082057259564092979608438555233527779113413456083056576907918454618597128612716009103080610863033942782296673605791325258352288606992063999813454456617287838478944582230901359428206295757193124110947321570880400054686067012564064669035376388799645364720050086687661923300354224140004155357087093874724187331728494729622853216610938411822728642876369207490567246969102241995188505436571719432875027497010021134009603374236479523880286877783168212281567138872561031310750016589047189499769106739184663880185604426024125335625504106402882782866973423423307338780146363781660208115475168394907608017732899643814732952569498262021089091477634162454477588027382961240675306422893943135992379498945482379929229257207354431000672787626672693327433075158399136850209232110225803332228392989439772802380369976587672726565220727571337711900241884347039013299804909332153450635471288148501815978948961917289064687427589314928403982581839533979618822391891121798938593745578403679584079157506293762396397116562623542311898672717752044713894120865376426798460483715952781799035378775866163429186164637611397245263929265991658750276662386032323339769238722153607806438989359730835084768700249368192919238989883316129147635906756617361875830193074121534263244617113930111462438599635596545099073852679967038337567302882554614838070585033823714059367850022741036504558374335204277924173745787937866373811127816172631108732791258163590491013083677152153934311371052881973683329358504183971237195338787169578822877815766349380777257971206795659246477053269491401711820765357785733093801020099468862889066360858359458293446545247158047574181749512630120864845215749246752993817727945655934272449480147739194483694563677261298833283691196241552263317756160123927471370019372772192317764392761429037412472503760420408458906441518100181394920522614498858723594993744529139241588428775216924944251056913744519677610192195915167310965589179106498039022157516015726721060336756013600791001112818744077675187887497600307396430887440977559261641930329649995473217377536491749909830121747149067857513596413647420988639958882623082033209658915946151141943137842718479402358912372128425233872042732578823365327568714701255441082085444068613924746421237970254383937889326622433562119779261496324128228095945825210184213294930316968277890477619401512863827220993337804314971526378496695933313713749674291200206873744643394772277774862059337591407158509960614510637488639466474001626515937707700619608089839938919280519715880327494353500950642877084232847586862015878466675284278107216422975131052736520086530581512095125206621772267718469721884791321429509140512336450398735424049633587513077542397110384810921058193612891121736474951729198554320674853018824304522471051267874367265057512355315099411918814782971362172415815344951331859333151875144284931532532052802782516386663483625831833344907659733040289651529965723510661173060756529570013421466701327638729394341783320118392145342924470697541260528358926517563050477498223713230370013440826927087568585035540035358620449980759102978231513193559244532897665037852230944412279882531917993006644107730321550278781107812391491669483597642478328415736842975652313032494552903223045444870258098894889526629507893277117876425530947485823537516235212276789277703896098533593660090214810959784521864111730998590673301355005256765847924403891589744144191798900354476188560760973155089885570512212353313823411938116111208026927652879227619898252725245455371423817207620421744628323934589581126209271649104650841672154976470910655920680724282149267700768719976696316920016882031376590601965954949727021788589126157743431834143151949511569165071283997750617189166565177701444780010466637096471891458886506672305056123493395540673762846844465279932377669986064953463736599970917979574129617758081788728612490134229385927549561880805212781954278428501541856127235372346847887153317296240415045195883586812082707128021314471704789307469284288132023766329705428970382867185048715551572695098434759439737747630820905346268210751633123995164688393915963609381651357542083980833916679828464101299169257828338378632629258853374589578055271086538010179354805735062211428202175500387686909245556998862378533498372860199634873990664402564166946745291345865228734966510052854849152342980492684178909117047295752531426460447809337935212752302934834840363538953693768392114304185683109891688192135534792418014624012577207555740733849887470418327620668039991027304657845700246983556498303051121268520457628857546817590023702851844354116521961671982971918346314409095772452434419958972599906759041700724520284370056740343979949405773092504830458886759675228743551871882871959307134965276738765990945242951289763766929983314015106879870118173287484708123930016714073478363531504105129713444124169916276863168584980594901725489971574374499952423746699727427049941987740197828263961671948418056435337246865481749515919636590992451059321459263819985036676017815769594261309566116015179664684459295829438194479626362996293432961348893000006638461668358124777591711407656349770974591967213650199740017303512507499335835934236664554268114051491052047728045911853727869309772354082352892764565363316323328909309232656708881546495274715201296889116644143646820499526499452960787820727935711152930689871997163823590042775555678518907421692336402200037010840461479273000832590086015700697995280242447756157066489916110238957101208652627078597260250425252315954979696999478713173245555287566295364291654232220976867587579813021187404819348910479266966016141917413175553470763275133304314549348415715690845440718615936588397788030626607659316988508340393639946857889531147238728499783067721480032343271513977777036157024928351273902965337260007100384923021710335192801493887752116621316307072049427200960330807481858478383870782691275679354226309890454155895882340149913835571655505627974102561977945681095487645060728753181726066286410310923196940791986718977816255909145246589130946901551253818387735385784300504020389754355279730546055636866153041378985001710966862013791090274087958838161642987510305537060877508493432777518223523220588619785316301719292125419059187385150679152178806032838260811632453868508741591643185145260502385800889562488149319705513331653643994701318579734423619953735989390683307626322129783705036552308530233216275735442911691420704267757107899721058359077281265845593625053338720971482945189013829317280532869591608736960938003658081353039802194912785515204352385814010225360632778378491167775752290913393578083922278367886998851293523555692323048039453814279250345089756381702877235527131298090322666170841100242904098610415791324397328389433946764077070701311724895788631108709801726194058726238070432926394585152233964449874687148029798894276960151582712988317159910657974476672495356296007764844768818027104685847837965105781622376994847095646488446253560333992675311861802379852670305824822897838763448357873210309940175671911306381001224777867639949280962047198690812825551932400467521812140168288910470481108214472111092074927165203085793968640696513505285469703502409724301500095519662470376839888405556799508894141105995787677729547505299571823415422510000854876400554343237606388344594234807795925786945735589870193863714427287503195740413922840651482043060212581611465611360621960642253038840546873038732305750628029024395228898284126763526258592884861105400542357713786535557587133016361878150720990610759502884142680305461943593263219393088980615642903056275020187327152310311196274233091914210260707699180898700299254825092450633902856366984094481289799210867430661791930640905387277300279164107520315190879622174419855887411050410480824139786525724439944838922412125954293235253566631190856823401592699373412425790571181682948507877009105484623949655444086485981456790831459981153780524885014423150879702167248933346928395274515629132030206551134059510172149605599392918909114800335727517954702112650296155107274389616938528273191470541318629840043681206105928726156109986447350610937870537239063779211499633758430123469692669932792812383034024816299234189793258440119155318608477799874148569702817402781484238593364727987580812078778079586404428851572644494554633139356210229767273609043434642686904809203824131668288659160831984724539106365608267031242388641517302396538674440071059211422293035260376274423810131062985436726731069952435962654601352976262620283771689990244055903045989598534153069554356654875580488903028515910820185072034172056304599081004108083079803337763923938789777280386213831549088099401843689128624127982675565279179565461218855079139992094432071990682399202840739904311762851384840363520971063325231084102288033894859817752699430554614368651054579578361596771588112069987292113350326452077973627550091621954357058799802231086128089618722147603357829506099480424522402606869556276396694020865298359272324801981556393960997960400375064676127719355785495210006039975053218431227908805476316932042883191553555039114029172966133980183410692442679247876486519487972461721788812337000225340718612715804656968593449163265720626307481428870955059123030384781205040813192744257970833478391161463859696204421118594944828678060577752764869085812334516250496826202978191571237116876320687289019500310009095698243140644451947220590687531806435361235321790754865470501232643048937987324636373075718243623212006899009278238501121075248574156469995386101520301526744870979904427346183766784711580748626831329099235452562264167683142143537819341541438129956774288121025556250723902122824551885122065568328587590781201438871156937623739030830430442115989550771206500286365439862120573502117987683184403480399860487294344546007680074749083017835616040362870674096469588845814742963513569365654745311700436089511687367679173966068336192256134426848487704713647708226484615353464045841840303009453128832951217967027821239199296186198922336141553659465095592718919496040946724136572339059487139347640109804654007907156493080250011925151128631489837364757191166310711731203870938800890544200892924270939160874629896237542923469140654842483265776706112232008684934135695775589640297673645745209200509210144166765423639572185565817168707077138434642044164276110324876557274944353866797535135952567116674375892236470855350137348774449404199912383448278342590139961260404278068945195628673232448882801508328916042046845752730105103924013650290977499205565294717132636945497523156036275322777158755550370784662483874025855013221535649866081764245673814209839143081420523105965028736037073822140697384903454926674903440840931781832463492046113946559855165963549296428207317625217655523403552907885255565771960890342240437068182606888630056763512537802622495753504437064571855144442563824983394514032094023783133915997485008168263083547382600633531258446676942322508586592926857102108912809571727927501969937021488145088704796532961481398341028273003678515123384045314738176163277109334275829386034675633430747477522501243070585773009058713743859702723850255926571130055441365112808464091709176184477641978764522459451446321612149664162633698844261097309539114969530022969236667609139183916963410189068541010452089031357377760082385986098129765825232410308832939999916884752875577168366703330218570006978544862341287235181407698610840589987655114724706179513544590029617809004210555331882403481376565122050400824834945838281880765308627690400487325021781917889651039370768805786799505263609943269794551863499682381610703202600547138403825832177783643217112884047271197830163045829203395328226007535326934649947838318732459398947277087676671553092890076693935967759858701004072163947631917277189593779811620089738772362648529391770639755071880340197054050990341124988072399441431160362422012837687743013358665057138994173984054969475636259686824667053837894687512731014521291049186787263525561972652943552810056010549395239724658347442466406947325512168182171478772621691528945416298539819471266041633718338378943789212677028174049131627820419502328407582478431826371617690943794174153498119442071230763077733761690746191728918416157288130168030623096971252474078108464256966444454657462377053963713739374019606245085086710003390831244996229888312971919456960847719890154167861077639589294562331155956657812491283078753555414075557110465078285063099637448283842494944912013626743354865802276510681373341522450652909358803183547665115811270719058392944475413644927305282892136684417856454687723878610483403360283361068626144513150893433764760268432742114457267327752763575245897373968626932662058552478159381436313540886364590364889508950895193498250779172304012516848479121169637390023860897816421634285776429509642651809626126284142156126610623701719835850795920276021246821050303060859676871269935093277080170301761072981973147626117465840980272674696933775767906159060144119884576798859970474507077764358402257548746284947469179700179983885760093540960347354958182893499440156545513330967711437796635816673382678950913641058783964728277879951322646765823554348295027482757705433873363049369459154294524229629849196906065581342314904738765229861752810972977031235894712598127051876825828893867209359260963246110015740250748523306696120849817409471422886959018156626061778413346932468577377373402345022854943800978293798998138369051320104733877119806275213415618228440114626899862338620617485774837556178557003052135152721252015656048958880820667709265114860068347215539023166996255013339103743123464597014213621812128824502297008028427175570606038282620566859079261763822790571698821462233799252662309371506994713672135944583919102950045542282134050071571263700316037026271064921545486588685590001397121096485702784366103923547861880211233913396560965800551114312559384534827819442027001181720698987208364974757135907377749388386390655133856454919375964665863276171592295349816324779843706049862356086474614817683240450442905957035726506630190877096313931367134415788007182700424399324944296061736230960781385392328005784051103251956116850934531050534908599143675002031964214742896906063757322764087788937053658881220047481497409125609839798209507860912845742197213999404303896823940907636152346269510192358169356750161213220614322245915592659050790407832842789227692426167108924079589767424781857336735828071791433382199884587850426398146714467888538100237237233181661402448665045195971599732381612902444249353499527398563701974014412973837232614135554392858475364363867075313618124422886779016214301587445175939097947500565164335784836395662799921621518452482730441367503622154011872523122551312074526746502362731022706798164131620855745997568246766862771168055357792341226519103589153846372681149575033339741348099379500692221517340981478532054010304092203089682651116191664342776861012102179658927580071992113117542033014889802968218047982163283128362808940252404142795682603215276770111155995020729824110173831045622319367993234884156343452525099630738753964979127377396469891739187962260909409301036047724424630743583760563258969311371090836715441774831525940792996027936564047749075751294125888267613133784356612727382739134703685358858889620870279533979140151038488749167931801169523760568551391277564637483158563957171629776643578055179440171108975652437587786604579900278942135474228212918602919258509318346979605310178491386476795032243518526622102953077663791751559318352305967678888890545509297021449280849443918479770892229685740007130037380314476650609082070010371180422803960949916327629695942428017880584402927042913284983230178550189346276049122713322858651479610377031701355743600353705064712095911858741457831545416551183757213307775775160830037156150611308612610775762113468757077557585099770996120658544411651530600011266689414342220759105417593563205772058351917082245277253779392023061973621034077344053221637996623695598784080823123331893236673936902631902298975794784848524468101866316629015550875410288655911561799910904071292266205783958912909924048972363801795285699156829273530411928075412595737889848283859030051032952420956978016999971219090132892851303549205150736995575605611617252176019302505771490275215425661283241767284447135575216192058696302250173108421449552719294908897757215257792597675250735434103281892118250580989729281212664407945259587175316318830504042381913526589936395471525042515673343223909827683014017603442907767479348574201032348432238784453875467134878775160784414215793973056278148072717586136809975615876820021286783668325508988269640082754153927883369732656418780358028974581690074543910261806908382882822910530633303218962745233248449320883108122794964011082557816504867143364270715182220257980302268759392257719755627661861832912674077451251630176821246394958348421922190240967229395524035146971427607241444377949701912095623407577810807916438571202625608696472934820207887581306310331891380231148444132393516033515015009403318806231342221870116895113046777521652800316376251766358648461643000146423240100516668631328138319979465994499011364136041467951305550288204170997677252795452811839045876596889597684954468072121950459406226197784234475415897645318623309251328198939016352174374992844642654960123946393344054096951617521792140133795932182937982181131450116102968165411954913024659003695314859992626299357137983756115189562857118889098141452592321726719803755778953199679709575669092268686165696494442392931817480901785776992238637482707298199392867777357841618875742415137583745590894545758691061978253030860833464445226180377009779854043946618471320891851478751743166006486624972974030127387100823972336814856522236675335759602742867374364244327610556307655425511745164405605114995062189060841462058765231096412901044452313110062786982835970388101554499866736797412205881259741463962066274480271258577914409002742333085721643795283173491360494299258981933068612349308861419303529108948646800728033398332877648609496015965158160737052851882089428043877587366360422268764616917794285642196579093408293765847070942816845939542344559861740508091635905482887208390931012282147340774376503431925731636744277609710484954943964670241414062666369573185204726630101857688265492717659524268358583432494660644514705470515507500293113568701813939298557126682794265808112376988046915367968370447138973066893864617854508119169025433374085359956500780307477742147424107125987520089327328171169490492050824442835436443604393157484259096662358203795715697484370596449364846992709069641278462446292291377073841714123860072524622463426203639803263532165328560839520566275480302746274374554243057943681029029666811728667351455692938583918488408932082202784735670031365170636351043789169709808219670045940944356101849446014381155482581976534041910276327148754057425923049326450884312050014666570394766160658563939065556902258288806216905926260584843070192230289985677743836836274385605000222850827573305128322770917483818747026460444503371443997690744897685395826407447828994036991393886516086628625424683465356113675775407617529857037829823372804378466765551532123701118052894872299242737198261969184611118873266250242246767783728819451935199829333295534509951346668658987032543282431377876445772807406516655477238863830544743662821885384986193581460379629314539253796641226248723130668718175536746215398811071953480419083641985413125422907011991335770050534036305473404516157939447423094042037132367476053894600009819433057006837532650006922841427147751320972596042834838559277527507774920763149192008436184740180911672258658094612893657169952400658597476662119324889446366679562887260886177572413343008725715737475522477074739297493315984589417790499170459569726838955669801481307095928703449760568435496074570641868535363704141953158074570860192854890865088424419564156546012406594841588043648384511929609707056498627907300315515943861709074692839947735837349062347255704072302490587877676450156582068855880666128487476264924741561972950025094567444448903367291991572196791715662485725902460484797188139008155058939260634355328330557851249645724759411434148109313462257282787784604666351771226544132427950293217442767592655156728447056475286470640418279579500169667284777618982931065238808991210457611115157805994763123799397635914231030813545485901112016481931128978641732574798489934776380677271983738234619802662384898978213803374730708064746397889826555789126136821104918862434207670329315990950642105326806731705596307314505491428502263128100434644313571224104232798309547427973393732677404569812476978742046154548691010191629822689660014113958986125461747619057313000684263313936852520409838922215720744589053451356105906818568599665498805145978416845723976517226785835057920875743875434809467120420664431176295684684688872875265414587558235772088930391742730099912695047828617326859385873020184247933824428865102590729135254512253055749197745117899176203394796127339333589629561522535736804384491479132599590394000956996054009626528900229510346125945432620669832794860822273466358464689839620540848143784145909278407989389721509296798421470726632849556861241399700676683816725750238590461685874463186170497564124935300234505081186967856850400428005928163737495465922961739257184351444705417407688717502626393094825624476470557139953173018793498407708507159553384260930197726942417213359238373993987815810376883344596018421943383083506463166129001327951857609236762109880506738855813311426356465430729604401513820057213323403512158661382829752494970943584767230677065241373922802892261729058752392310541852949233882032361016026106922894032146358713921956724572086226353361792943656249860168344305874750195709185316613901413902813554320081003080469885007995603471238430363238175763066188020011617154635669886622882955995025881598175421753451148992331361113817522133552559357980849464762835999609416266477980750931352034502456707331194282842900948435661312991545489036577915455508431027833011042479916736274748134658696256815145943141302424061631104262056034066648537840683750352088680176844145407020149618273839899386220854802752108160053639798228057973468314648092795315721143154842695537154649628059771889507882027848140547271238298092742613031244667981150739967109722980314664595758272171604212314170683284770172467787108928564899736236445844979568407517180223678973258683920346939621372433775986426515047922226891685664952047556983097928175112260877563351190879829697371885068615601043627076302529790542391640621352030075038899510490957225918207636102774050208264934589401003737167241956811199851652110035015867416456453005532732253866226166274746861106539968287692793564916090736559114358520786407615037889967520816995117778597907099482373876658908889362747109884097200355460958840481635479086427220875282970204899614388115923482184313887828863536327854827360662721508026584353861994596969863031527427385707527165417995916271569921005688413022155597418982303770643550944576707818173315619154548015899616619974835594519659396988654921556812044631972114905790959966979224270030792212041158292657293836984912877396046517317225714091766454458259204619460158460388182847996098309035293620426099069279813535373227119494108882226860532744599224676984177946558357542285057976753678395050566329995654120238523918775717162475508402923072320746219280785238565109411171135930995902759903857987332298089450527848870304492140203152275807393741590629459337704170148691510959335573046875505275456572679397299827239098965999235278887668581238548168547720019845912471427405240600095480500396920554083699825524638959695144522405716426687341095197059698041403740652332754601167024285896203153751783364914494220911691531331795922811125269165875438861341988185054660851829709094356467116806758872346317114948362097071686943423879044088153315922703529805857823503109607523905950613655816701282327340426836975957079624329870852248639900286552117806913954614620413539859654830560528355151107988438590261324940404105091463829415680905943165321583487045749608668593178131253002021273040391190947906865298182737730444027330906926177469076478854433325570886488084155956626584991918459475034775198365838601151977175844815571695471317704156221478760146034917017152155993693373592726201005232559917967581640490577367260839771582167093245781443957000934022544159208811979235869443056792806927541147672848800159348493394885738180164555412682380328129864515649303125631482555412409712490304383451778976798274663120599543086805686559665854854966907959687454401372075637410965454769309560802592388646222208846352190512089225495952171641245429912995310284336551686025029966531725681909778061271808994235790825184256530996179313246341320075860325882207380536277859728160446999913067832680275128794504082717345614735514918502732572645078538264567989585567181155448435280007650506330465636716052929333998817446527684850504142459039828605093031049672126743102972234170430856707781261291152685156025190157800978395662659462671357657794741064730979441834527824213737951440101748971294386961922413751433302238452045253689857093210663425643783029001613782430761014508650213433906907527713021077437401838658881572232712206373420961365418937771446056179611292098475665228759416366583208006139907104708996915600843952248672750313652964659814851932478559554904320283341480400125821311722845148783035509060455269497942899843645557288286980287199324090451010620461132964255473997821072028961251696168538302000457581653279512121720879353911235028539036324713360474804393635621145949498360620986110466638846416516877908452121664842492628066582566393664226520995982513231984801356535987255018488062355967927514795633244737963368389632940212712801125919525736131199920040381560180439387640407475115941688065030711944966679845504255535629451407018103042034364474335686158049195558273461299447536555138074283153718949099788739669769233991708746707466413009338276430195464904232788191955478355095369345747010945031792340685838829552211484609706882532952148396636598825041305282727429859673135999665281174410055902420342655093281326100117401601675759135577532119071479240825146500289579832907315920091403003088905252217427102249585563299233361409296359460328848159755938954992174459943029593962974204019698452639932026883509846442345441461480896831452766800369362990401906339294778047820010289091057681854619159043112015860790422491047273431098383381372524567535802242070775282831259385054796806093743953905397733622629746950285206913980296944604297195328738665351501664250533117147947751271568521661076379593829729012532961022941189254320834901038599129419926011783376764108630091757222060668646951908482436141966938382265639638550798802436988367904904883600688679865091755764019156535511369758605370914739785138229154846304512250996928145899454392970667815172888228261674724640869439451389825336821967341157689956430169885981343613894745431255588368111677909415478986860726756949712625689125150372097446804194349033433000012075080132752392163842342718214877730309844338724680567796597641053953141364853268631263790329157354868895786248005019612391556476031001182681882042727710915969438662067803883744903872723659153064125260986530079237288793868116470435373990122922007176648619052400786716966925728824042495390297041213984540591537521126913783565635490899203794292845458228219008736964504605869661855633391700474745002759295813922915198544979573175110268218383685297022006172127221999417568439892856946121104237817745782993494871607173623712581748873085040367305744844205708934675043890004004047974136841456926035297600261713755312605891848757391139190339395429455384908965955061000691868593581038032800935905297731213735318937149250638184461146623562413300188338791693223740814307988910086370572811317218330821110825874619112151076514698595790010783417253812682822416978132213808123724964211023093527193728405085117792669482041706962130225836131905814008260940087311912780231639523982090658070541307545366954642753059549379021605772792573195957799599780308740636045217189647006015215664257619597173745072188399830239342798332727395326389125236144205541827559010791737641726151556376622098004709250022470057808677548664029281954211382120940134890179020274880408219434076971172251104248600396337313954729818109104990463094747163544660437541696703355535913648041227126563497790194734719269146610286036594112826031137671987155436755466371967461196146389220145665629489084617863008584641826913536122144917616654426417892972280268857229651218098108920334664738357700468927231714888245117224671032479223916138365471192393406493033539512712018764996276250009948078968013571562971565383527503097375278345518127794345303126341996541705981924474868934370616806456632834576638131970899456993566515705226466585980094711026843276520668225813396159767104669212686180917121337203412815958861117283770940503216196151065871782424141827687661609947644589825553846737522690162646267181535291610206516788060910377456923725273654448422770801290114690897223528307666872836428179478777277388860101962961876419410804459972996228552305120858193673833319714732293950978605146537579536424275158657140204515350622479997527968227676647365804607076161363891025790668908050255893040140229312790261389173025927339073948892885802574540431702256229209199479450043783758939614063235343966830187639793230236035234900181487004431130491102462030240093843405300711071760816808394927858965348836219150868339827673890000504916444127682319562910710649677928850352021280428517376855078408091681989445805212614655250141170969747575086038672180178809539606958476522675983147467212752914408039429661095306152218367273398398275002659746556168924823677209721835105479721647732656372877845335052839237384674776533651973734353656694566630536517723957182994108354095181609106780835289913026132528498790998415829093673696883787880800927838341467662218616102452235902358340691939960027766006066673842385747976046804390419888028528844607128174164434041801180469698750796003183108421214334591807125407362256812532621838523038415074720511757846695326129399963053771415117240350602870627690472062456773694876871986288147794799559873031490944761426558300141128362765937726474169100237846738980034282778841793572211583238071632852460171054554271786697255002613425477186366053566605284373373123758638912523701906174472867413840225308454552295841304632411480436153551097398194848642803906589290595903138600641885478069410356124451686733962648718071357824572897818883793672597590652070133093307636948818540823106105118454754880947867062671876120524911980223587707768700270934461629416097211657582513521055416115113643911833308857288218589877657541480898565264631992366184720598766255371957667376531861360273579015758386247153525543765612530315120698184986692438259448128617507570469178304211859025300546331883387237332227574924407104890523977686743484208963177338547987246305226786428978764172748711939880392362868937236659084396026874088925203811430057118096000297612804363040245612220305920283507032662252189591377074150182617492505119908351075871447339037855012622010141815016504242298173339803888127109434669829160367656548737467098720721798919263070898006177300316340592298279852241783203380033145786061259612731932510212028832755324295034050144480938335017334205676127964242257198517719906090702657931330606584666149337726881142287647642842916990891417333690985727183272419634308120875045024732139509700229211563254748489561377752126406242711998846317452907586303371195243331628599641402984682653726379744567649520524729599821037588755275695880910540664935762656383232101050480886630010799130749434468768358507603589918399093605761444902309323436478849021206753668784890892030206035169105518281172899030672269928121755032803680649569956182772334200513480781257609208496835817684759047733280082971649358235198602714906480586329568357446171267820453764924978148697345190810580677798549599700707268332338432543109366216032888476277366969784616826243503725569571807037065846549678245421096699134408914053594102196860962047489803600379810380777058520842768807252844002499373411482087693050271991575226883662291066121443716218207205786267471197603282262091732316277898540402461759893479567903219328187529748360092192745894216361890269872867738868733641591111398177867512118792672206678762144647509813966613544119635398215749518412313342205678492586155974526134880465193610888030354494677861268046080403693059348799839048262558502453931410702370908641938744266459270246203665215146798380571447073514627317258399382763881060322202401129393479566479979242792056919565364320997158980947383819392600919601474923032759446584929611098331613153207988260847113786813779902396838539405971463542539404958168706204408056892314954620544838922311373259478053288634861535519600125162613948244587437144228046146647455571315938871774880408390139660749365597189225507900008625004580185629114674108284641071768324869198576039170541304510394402912376621287723114537228354995199511182562541366263035986646134172557299655289298189272748383195539571776669819298660242559113670881655878021036838236140696258599939141267567551579997938186508141888029166323712748691807274519211313483501514247289413456051917967047817835346221931809569304769783790073614547199454016537089265708391969394253879806787676608120318837755271546488976678677224403331700442938354194365934026204369019337289139478795095176569408824538857847282740774245470516181942580398538397896400116429071750478864206197233881318790893703891739196168626863763257858071237939597765654960282563427677541533872971085194810526437589995639006092764277815954137519305231925908936183442070722617057070857439426105889714716481740640859724205122195782819454294201357386745925828365058044428595499135927398804384876735187797432320918708478536725144537707163170704308783985988602305500641782920049249515220461871586721130394029004540447834783665545252291162106747977889713135565770769164123472262948442502817370773392004835585760504668844093055593451014421016500562425539095237108611926410531444536928927438887974922255112225288011387525660536472456057681742886943680686736867094669175569324397169160102994499318694869023865883265366733421013765801190435972341207685273911857223340627226472876717879376195304870177712584217801717596192370370988987759154578611355244187878947154369958737078867266791814725936376246922567832243931380506978283203117746086385420932649219595251211571168640594200721926059034153011179350420778614557244077447416646841953598913026830601091101311824083729051444472449842484986400875817270919613511336480143467034026256189808225127727529206587165440530385490505668079121117982191382604608336822416677092262578689381134662203296232192997297476153884446950544620925846341732180544396135891460052468928098761094489710756918259269031788903378892001749463000691955235162348856595423604345737717742012022059494154586321158029226269593594567978995229887314430840137399962241189029952993450387830292977538877580716879546911807410163272515164983711985155985656400348360748342159303573030111763886494142988640302979983766836610192705784906942829699766092354450234910922410821724358168698834399596364970534459755061523661327603665185533538062234277018176020190643048358287610167029716574371624887274664634269529322267627914446122509532695369451113272327987769297231660457111735122478737205367859211877913303353499351954925311626818260802795111736872888662866547873319021138500239217471578793155523583389213721996929929393243356043426935574184093626154467267191914641605269513045469505481271969868844110480714640392219404760729334948502884811195319081137532113754254396185014830208734681103124814555491226891825069035775245278080966789282074883896972842422671627607021101053030592998355653674927568938436526600770566528108475657890315772165839497240180869488201675110442670177076574486953703981149317142776262597864251001972965715273575936015813568009386544255240876256921598680684063089174351705384531227070453925984205245233257825730784637227032350456466295459980570145265066709866816204910480479788091326182926098533717024695069323165777594359515861800730370125403388940583248670762002389101272673673398464521459606931460650065554633806375211482664964163601628033971016887918549531108494288445879102333607645003830050952665417993900133963375714849925013988482593392032814986816157551866182781834235442091618519115493480121231642068228020231915750912639226217124727618894804807973759663245313051504833873373834703980175509410289293614809892980222000601126193916880862733997306885070397429726604683322403996792753026083683900427929308440683616394685773852454569156976548832453718311676333107791943001954667998041775448534006483209669838278261369601616784921172632215667385056682691742630975544558433974073809655002507347603982697104388029294514731722777254926266286660947005302409552766281432767748479298929476867558389931221202946973627541574355874319394525105494362667741407653229189274517196037519844291394787539789337966101082087128131585265722427591332131006898277177580734769614111454396389438626873654193044759177738305873405932956805461897960482554605056501192660107528099163797813151776001469307180307491786103703611670590625853632197011319795622086416034600238911996086216194920587180935367115429666455796546306217165489859352867375597435281569850731717696415690676171906648854457946873440765901741720615000524541683024931647237912837423259736629271821544793429710389418027959602257714001079374694924648608820552861983124682874597324975792133364041071095356184003069928721218938933297589178831069653660436082442310447802623533063018252622385642542809370368720582689102273765159157788579380341134643208274555760691954937661240149270464197177426139136512584343740946826130168717824321351658611645485153027353309312143357032983537350298685044051161881818960507383136046639269294183406066236696153193744980755035035272423939405937879882999084745811492241973644116783542113754300251490942228632633505613123611347623234106142703924139039476598320981516350389672533543346588861738348331570619513940006287593672360605403953455075337475403312068608375627916397702413025613320904544054432307554590618614866124764713667391903270769003031424980678034001120586081002445854161483344282150717872661689578430226728210377732327630624288500102637198399386050497218781173765800270425611287554498860946606761994334155318193710107197241958621053884542345493816771277857650535288046837244197116800650215237795546597822517485724090200569474907297844363539361273628386441762919718022627177640423745144778320371276911399343789941471435446721325493958242557899735021280111753883866621023905372810375962458401896206692810263777555885056413790161729245600435836188676097951744025183895071567438288536372119133914698881402393956231624295554918851936999721602634099563665547650546648426781310919564561937071617103044862860510674176449030126491624816963617516046135665721140496702199706264773486197800000922348281949013110120382270295745302944866956746093947933446670794177303229984628935066525363641929281055995241315567299716318946522675419810954100187415378522644137222283197589383136894429611578017892643728027365658778231658279484537030866617478913424997018305246374371605888246769272336317445909481995515157024162239407738952285816166808971819140754548707727426186719465811443874058055193688057082678048605623595819071574321561547750605160040277599813508461818391370473345213999440603797633246341419925820588271567860252713220827253028331627427349120304817539436496441864477234355008113211374021751304853548021763174186002000502682000426936703624566246106503195422403090200836761422029536175052004418191694393378577834330984471779826151864537250649848763575063254128590067964809232773540575406796353793815003005781864649294363239247463913717049959709194412112255192363264873895471504181277476640395288813626264612687808425711892617507297612893112656595434813409183765751957209391191797730462228445637289497444041465535564888928246097167746923173457064857553587458587929643752834998667713252720867727443935069024175008705274915451265370995502556522670864711298735560565950833454862839528561278200086910131638908056148435957597237094384357754714254401526734840944438989884780805430529011239355262893739118303969314769182119650732134442252181822442896361203663493527310462716332098911861626037841729364604455562162572562785648989024395709300526558548812011473150460949138354989256103873557204746604332718864402475650759340293202253614767641278345530639336856264432054923580051674134229631446589208568283492608528676210687299547598412045579836379275662264970616789088020644283206161854394904545282966273172828621432066475455259494531210577463311523569083498466234454899403594124037171984583023099297961579443154810935644683825964899660917567219374599828027156979772470959989104656431471414666119430026471165546867093939303764320486920312227724280730839303055947452805163423089986204554575285309273514496714239561692219379855273160125766385766816183660881936397964152032294819486490100728728304311739162234044569013999488867714349328356738813225121813892140626358992093299183814977159533732398047219788127570025760248508656319778413561170910621750810318048964681676071168649113659398372167456622106533819713322431125927405838718510293133276031734711721797466209638027193392590751349843870901830961465373636815303727274698336474534526261404674973853269740248330766587881841943302389625626278913220651938328174773150434775391328808280321439860922336212584038720448005951893363908779581791872544723396548552438105356800915434625220925759477025123832470696452986744311852029276884297037024257103635064027135269759085649343254083793095758900282935828793033528852952180612639697537159381470045672311288175706546676116992930489362959136371665898261619376905372326691296397176393462881495608286361760764410296114183853754599800740619615940915814504389312360893383976373773359379635849583757606580618740282995631610439315800447628580702381939095093223063564074772306972903309048335867188459614018437254519998898341876417254269002998495623056970685288516257262562159854993704312968969701975130839055484524296976192357485866130599859035557916917768491999631493792827034294020280677342231801452803312218476515886665663357044748340646945077824097598398709323879566004911219240942962754473296556714155787135172089158549973550555377254740495207910786610641924635138419731414834313356165092933955883051637000398841805785488184580663205801922630759881461272772668181008992914447938436668527585771114532932028364162165423867519565841222759195248237938170123657078534672512151985814839355508212557316651289247966557585246810323286783929822600829319978111717454425694089405934636342427678072307266832047543974406026744381366020110952388586424524112706237753908463833889602007982334474002865719447483504405594593148168951160339930238416686885544034976535146871480434210006820267925828595234403614938624638482280672940316595015506964844204148737599168568479823089323531558783588920675690003926957073052124693514581016893817652688097959170602717079761377966611625622953834439518038380080338395203956688367496829592201856239599142467288942952849221836529472218685263041547671954420957452730389419228081574207753613935746948642381046828846984186069370642344480478888317772222324118242741588613951643232848358256071450457161751105749996895434457679329754362768672179734904933491308244067845269980206798173482569339967343334509668176556230808289015801281580077560804181600086980007629782379140568402254849698824033773434901796200299223352456364851188538008875420660382675400182737026974465736305806023268229475793197469820860406588275417819091500407853278160556943649199345032256724243950799216786701039518207680431442054368933718875454321893105897243497671692781199361929869675318706377904408620652668357781098409649226939886004297574724747555441402813929371152216939722280316302946542905619532223641304493620676471990841448052827303037719989151924105098905963761966759432107269822051058534587277494600663241976762150759134706436992583535882406342645758255355703758839314802170649319761112853948146824652791810290622599878024069777754224739173461675439053909497472294912104931513755830360312998714571910681335501166135968913355984719389926683005086622238293065235992529261274164210691573890630000458649778481339538697010104897764633790280832560065546493016396378776003297735199369562049537554744169213022297109188852173613198013830287673914514137742748706916274156542482914259457024896367187798833774061046789279197238031433718022515993252067504981558940839418038501866897120322021604962463616171383193434079531949024526582607959448326566652433412004663993058187324336299280499499016768887139147247126566984049155648799354647592418989847580616297391522805467808377941063028203716651842409503178094845498453634259495232641951373894749331866701344643518295417171299479384440172628045679837781972197148994293002289167501413738114517848012138431042205259171877129534514401209414256832472402805931726295941268224348121033983260963360477974312657652692381566263542765788340093322445632619421826857426378445415635539712882097210640228130364904123239218044928230875400575471541717419063462570009023326974554629311694147984026540708243871088890528160966787148832998010092827800435105363720679030769056792136436901845906569475881668266402485757775619141099239226934075298498484556887363698650771549756705423766891243732230136245444227151715090430212094442194091885574593927641414182289593754774387430638539996450810247812764861675300232299894681820605033848541948495163720621987151895003652470815987510235545176567454379703680085006372153334688148606418143411417029556418762036981687072141074532303145817919003219867776656301237950498356745682525380856795344341424894082062462785871865166079896715886898516917713352748083989092833343295177337386946775124415704741045138152453302435055883723361773978208939384432868203870955548972692764173869036082359024494787887086915787500034103747712754195973778058388752863490293848874850867058254267751049589126462729169965118594858548255443232144717765300429393697004338417743025563496629423909128445730554666348418507427435301482771832615263403681212361635785764502939636203677237690415556586894724189329847627090769846179343661551688288598122261990967253030882964678141876018500489234806327683684140527621977394803693002985222759759776280163070622229373838640400972945552448644160604905390759980819897618797449775988361584700089614332624582596543094167068287195732200455317768437603408990805103357014660703193898520224933105819787466696932453786543466862177670479397044475233724272972221069119917925036855316187039101256202633391140219837132368481911425371734334619375982635059069149523765478697781664686246939210072748663601673395239679216043607306466563958080064116822845354511172404562827593112268067555932098934450508878340281672485664914171641073491692703407244656093936524468187779591491801863496167313154084077794163189925943120273549124388066230102106974234995280327895048174221177510990594123504918108771923075896725060973682514859380165565255041661366894879227794592134563912966500171436603620096633734959895448026486533995620020389462761949430899317891051141918370765442830284396545490317416006203347811491358795537103924073149428406935490007367999305605223583118384809286011362833565001458142957844098271668561740344526127391665195909144329845305619034868270499752712070851427007575399072677876500605964238532870130235047045020792554453412469560603804510082913377334078198313922249190806530440738117487540447795740889622256701174228226572651213161592150736143411237801126699216952068998632368043184039746147357088672471582514020412245027016074035187443312069559444923619037058284741470160792795645900084882388045718530815606384003317635569461455141558667969521531567610717818034659035817846054420358526333299682097763765572393858706380384553306592045646852926339789825930150864567528953478812464525546035758596955223929914092738432649567410909947268613864635409639944537684632592855862132403341600191454971448268445443121104699738119962579964322693453294262239734890900782146845925999681587166509286550152232544152571781272888358471635182738367975217875922454050484929146609951551598902921545854575484978728969147811851920168339953730464438794098600556479149613806046333665092945326696622368929186270654686823389832642355934862073600553188426248904943348435830712339882952401276197073522133966242899247894387974708763149034576599652590754694264803629393525188336557085832314579217560942189464478277495679938442465614729387406574170986513857441418122322470493848161154853633029998470523257228605782897276331351175133256983983412476980348345669319347992514331679316736103166451352764448042138945598172126543917963548882827326122983926344579380473617203796657477247724276511533210123186569721758628333626562581845564979350218348925045838102769955349265395130491692416103214559177535590909952739615129862335844752230962903225228155727979495394438671986791175185390143993833458579804085787455812546005382903507787436357743225692321423802298987469358938891911201101662798884683345754880164626634636453383660660058572651639418338892138609781959589145111113435128497998934486672983930658207214030095207306970993637898404411166231409958803758385287113894704662945766583216532196667397049539277695985214519483311112965123502830857735230985981923180744454752189872838308572774427500893539168611162377669162233288956914847600292731687276028512415346271108926444537745658647630728311383679327766230835800757449795752640955201161463866462161257797817962752236435760196318769080285561963715931335145052164173884084113179365955820474133234572093869516850831355145436389672420354453000365354124226937929665260162669721931517079907248391734929763748426520563769265819152917407707467192183421654412062751692681319075153367320320485539900653776686840127743729514654245582410731335132480448841371008074846377095122176961590561833641424810749525632854460352546385276427677311262893056129552747350380753344852465721753560977763142620489566176024501001258853805562957746654130604103479967987930018276230646508590491513366212578927094229208534508444352104848642800983327809843423881696498449255626413144164724433362441718239383787704881871239613584839827298410276474323564336807199432071277286173834599247206299101243553850523390663710011142442931965658195753102143183594170222186531100500074549693927549191439100374248443244460196839056666258667293981565204390896505063381586694694302539416360485420227374109195813669425690865722903777607232748284295208590230092334924909637146994409484919010003034340586034155052812377231307274339693753976809243324684793919246050067898701766770198898743288209057970192497032630300241744742336044230243500135228376072986962505176959282370760195069236813316376125740519660683741669636554808821009705090481580930136294779990437563342523140223897885116428834146638170042878766595484711046675918919163531753468650635885754291046590383028344898722769301124190633331737888550301935574191961121869729912528606543304826591957635369616683381108556077471520311053135717042715506396191756844604519218114806146916620025231220328197745791072595493606468174361761809979433992534435830427608603641949588426186542439691660300529316776530078962307645916977673232548225932064230491195306323982270537356327734666110611441715394385702721550748663510598537598025708524653218692828305977261887450558628624201827622224190804992623030045710690001302744197057208265244138705214114726977433804355321696636573388836215838233539147071257663022926726923928832297468315839433168320246398670006390027780408969323756500764247901040415801730167294330346290536941174030756812961345083727934934822766434167085678953089172637914862538871995686235154939875120540419453054329248822528579216116202472858541517311306220100199932809022203182392035417119713066235668348750664269785890639863445725054036610456114555279425385266038483158490858395578756889477578545201895864845275726344747213449630429836421029514507790693053101245772589424510100191248128744038272399190340538319582253784863063574730612583219963528840859931038964866034183624020048862383854143876682482995406120194760071785209605363920157090626693047681005448525906175237820071627676777510871879407356383826944115503333707832907971147035199000487286217550147798232635483202076369775146578230885435013574780182150932230683013534050119937131662052149500457017585365579619292649407184425316352369232615272448944475880802106893494668391770274052715827115524694103384234152959527211105457883164019009864516795543026671612209159648270146284874726140943607313139126546783652625976994027341890034948588932729890631501001917852632735286182133324933642841410154801525077461618914087305696672199320551019883057814657474407943794251743267611143141274897751257994804716342673537497273684866883639803251830498668819289511479846369428194480874193360807865937613845570291038508780129835677742170582366905454011815681675123126335423922235693281750105755419184091429185198806816004440511461787550098407717842704692658899499381957344565654746097437489817198180723495575684691096589540234448347973734240868216049565684182100458141232950189229959514749873335199510687100231787318069184858855838961862454683735200904426630858303418375184398963906595449639565566773100118525229359890562213329598757414440948584235459377529533910419594516375257268032122277599127425872669472401255331064045846783268259403084583093623388333558881068338577987381661940878194100665281493558637255641941149249541608064612360227578744429111428826343528837589720712141461735174985529869718793300547485551646994503859590276352530284999137252958101133786406440781761813624656473200759839625648240841688263290111487690847764912518571734464962347565245628821605510148530618733948162880315432194469920411223754547167165454560856415485015493994178611117170370780346700465162716299523179744905942973350646557092032314227110471463242019509826355164720081733431414692000055986478938919477201460646054406104612218884640894930127518289853251642623279018833960422900623179841119024271551659312986863052441143189681775020817896505210188098803761618966728654203900411440566440875415256606584949205034300531169552694889732392057144299639674459639601545568492162522423263736641504978681385561668900218973631314940045762910613339456633710412868084718738913332977633700566580316084743005018927306184874989662999248186673143230054470339396532432880359162035705894568199649510931663076099981306276877129524766766144760245484584538264923325960925289202613778707069854728617487934627756987166902548534478278275782633490387020747703763298425418905584973767746619969423225052260088622749878434283606691232797632409701347331700571470882415509315683176691334867067066594601437175046552389845454258368022933842532009252479853305248529376967528268037386432243686373987369720066598323406367537965213142838926289125429713380483740916788218432583382628512997441785971708975766613866261733468294829377176023372790713624074240390249651497563849204432084140651464002736894122742753864895684636491345854806771259599466246255593186378181241317061497948526622686801780994010838564105113858317261811390202133243257168675437383767897772128921956244099152097489832780336943764896391440501819036847439143985573638030218783441562922032151330311029959733278055384350749283963773452442273177636811123106194102523850708923549128668511599512264499519395263467082282420179435307750068460038141899831743039865119388079945790100212618838025717619126588765119956710164309740284370253836248095697775787672064311082868343912631052503943024641430095363964260884346855180170914293448954637332977603866215223333101156952269392896783931245028848069789628727573385902878056658653360092944893749153939242964939912356208598681404796537497823406233673580032611532398011316474918719942678973815684170479880350030250813090879669230846024221034347005811882212578953287376575095637944053760970776025876017242755486782736003719462528711172956233640069214846847629262384002572767000584094805567650412744905407010697190835496409544513368094300717536160767077879954855914415585871128508304971519537064500436742614039872276587785828126806357889530351280427297059396250255347028063543526336475817046565547366970965266895897407437053348789697369346785732690353144328356993916763018196470845999123675506560500099850494104780425093684132670214826752885479383415771047506699798429182349625104587473840644913521687040328434442076735582814222910656341780229349887162592545589884315899004704806481846566299749851773610995465223572754396993996285779103377009035041375932792655739037889767598962609471653529550091195305385550452182910015362660585942794274114897556823675073365119540850019525275980788921158547667800040516773397695776380055540202955503083990714716835384488775960183139894693477422372311195328411190703418260871935488109369969961670846167099086028944699146824987154129439757138332252119956399019717859679591839049354902712762755080071275247703911251082170626317631122182715870792776995190117467753805187329810330092563857338231156204757714870406658783391116078903934949595143289304770520215053478945129364395361106025980065588619926610378279297327691901220103304252565199446829520752381197519250518361863416307435013449103186334727527869433511819080734673439692279269391639211430064954651372688132864238310927445573050632630155917836953530435478503219040031423598837134519226767645598777985607831106058593909177214438916905261589107723911738984594230290979958999841893640005120037490184414984140791225459591838191853041752782020712222604718454534878377418220977692852548381707242300031573103628908028976295925943438584610462582512176879199913399630807877418081639165992818667147742306118086205299210039343931989156733580122532158092032240031409042543027793141882700536921497492840648981420707494360433088334749266322741843927535616282065216794767321304703155496192939542924781262970314049908102209194156496608807164811597086901812210374122945119641163718437965885653126807773533274444945017586192908812393820873832190357990046026554980527733377090991380096883551835637409777116507879659194082762401739736473300727510067610086276331774653819203383305164999795291959980000662089890154909175841563858121333153797374718064748367612054105958662153654509051673248001319175996026787560003611406611523266899733718684917733376852793966208552091478946729300868604666071588060475151457084842914849023045768833669393095385282964707199909082122058880651597497952219182821792367084150539481475371890450981411197084003127083997063039205967794878460359342345459265350754700193671424645551734613933122558999137978149858635296736739832089628103100191718463286906201422557155390569975081328441676272409710357803076204906801222329300243399976453760342082613378334286241827449353184733306778501213079562906939676349408726452914890647873372904548394120162051791438390405492411413957585606788189329935999187654349781406358825669191046762766235261549386651440087213010661584326856889874846763287653281772285131692739631607171940488128516390693891101545712796771483770835703720834526552730975302280285067080450411866830487185752023538166219212093097768723142772122643811383256638673873092412342033036456578879752873777508956019769895290900012578555001989256504725569406785297689811094897650538485551189759125450091192993424365544238581917947175853023613207774271250941031109497518492625052229079000700778541658940606712503894327192591662655261087612634813753303304189697932762625994205705775871031067455598504295424049876288419937394096185563494196626301398699145472410790106919765574836064797887271776867845633257796806887941592550507480710398564269641144463705178251450725120128075982428618378835313086924665252561549126642028299025338702004256851516878626288495143147331009725284510592312824287803362297152971459273634686910059086743998691472930493304007409535802044109035904053074048147459290253038602015509308950823646040465497488641242130150659353491352394098521635894193005446495300028051604412540033644889654343416981907264277251295759916287040426910462850539357345397066208038980979569651473319135572370223916544648965651862707425930982545258153984051508939639040174443282157949632734213593971756022179563473775625804132293881119761874674191928720353317606125433400527202147253386931942672751063134531597212366100521430429999538157525116743031937925959453830818693329619505864960280168361787121450712661784161537237679103796036646778937112433733590907225631640953281778234691244972266968017631649508224224687073910948335410666900985690942462757615936415623463673350898328541701598474901686998381459285684264896261379523451471584751554593578787132025445670867305543563744085300993021706983577023859279617270820599887517031130197170551823067676244337763924508868793979760203911214544264824354853517326024016809092254143462412626935112406948258823091696866541297681576988043790027095281228948511241258427867279276464476922128265464387412799052032090860351611780939632675335532802358068312096839484701250075985902957310040139077364010501004785474661611021042389834586362779099404211688116738388496194598575151831307479784620144043289850181603119843174517925335302130752140325228208271757986507562197828638406444989406562029578010863128286831988663984896431708617495318735324946575914158074418767324872762425976539146619299454432070577932466795017154386313364636139715679085111305779024853925248978228192851754541665411797035755070807600924057885765393943223985777902666593471360705406935365990684881210906715300238434833329814475711630922340064209127767049882420867716362048568092509462293608496171922122767449888332726762431827364536573221129351526347494957004367525835953525273845649169583943408860700108182224838584068594370731636149344743263496858736908713837608120870076674710951522471250970105748598041506033426626630089648250936263161847481041786778458186366351308476244176032130111962941417617680865484526085827557932013262537819890934975731301412875409940925739829256495817623226803290417405298923110877881743789877086498621000134066860119976822106315095886544142080362835368307395596733453962634778907778742082435231411948052078539947906261848339763890505902124065853489596735801802772472537730946395611770780269293650525827364928765429321974004361247649302975437755389969104302855928684577279044710329377753887504110618233828060417243672846443044149424610107436124248374484433793502201678145647241570780142517538450741363124998261664929174366128400129388849230064174950936562222368258241947843019641814790362054619598140312463537547837407814671133483846990838634047551740918055934044421312533642780509785027015706498796616599260984420481989725222316697542179990239573286401811447411237753084516843603979174908277604256378711544585296103936984152941221971842950174096788099469261369556783365798355612904553784347020279061289786739714974364065644661366169764023222663254081783513596873306770583027989148259879285080362831538400128238938597304676771838635530276279847584281792956712303973153391139625744944845789516937230733274995038593666947383325262728151405840533475444848758176747696485114356810656792476927714723187511524509939737792566107718956024377719206648010176536791249911037399526327189057551117095790671591375890708918825656930467470249251432708214360584776119145351804608702954984287154537648241866417187342476217916957300343231237314965432782394484661036560867914369547743031565472168974143144259103080702200265092096338558696700219087245233317642416293658236861857638525955134374221897639665047475716665697831121716763306438507921524324446313509489178538732327663066340639622480644508244774224164706113581710599167752048907099820104746576036559598289952384353495767923815471529604506538217409324029322712328095649777852939650959327936636042349822018938555183852813514432342829466834023450617922640721940430761139399145400818092380600297399971326274882344316671185398344009147738812531856802725805001277734180750367033045600922039336927503739048179255652198116228589833686989329448133237800175239091022270031929455222971709434342083952374155926212265401774082983310326659372369734383716538130406895094855093347473541614247606793577145089152168928417704734716456148653683738501399362830937738717477813144823889134992015250364805340474865568417714954400547288583542754906292398570860684003902753789119150753076820093351608760506687042393719269784931853546492022663070600084447576184645765342003284805573589224170951351985576195260439534135576499872156062845801727978709550981890248189616676708506246056545536487552133684941424396960138298881731439418266157389228754928554113893763877690127032731283537126282099130289578090154827160633970903666542365705066297088629278080043699169502621567230141063605933616474850213206305218237139370274507877088300811086484684951562591839271900136968883979640486000217361619827883208649442774502148408436276699591890825151414323850901676999556959619196501782219403036021039341403032083313654869603569496584402488301049442515898990540332615714438703117014620038587833421408394716786976676273814905078456049871262203936881455860937743265927942325919639541370526207571130233033875424409856259533993025145628080481294012767587520826747085007726279471894551182148805973387771774047184258171579051922693549055782676932982558465532551857397937504513845641247257084465824947823275677668097457943770434765939112155255340893681097641929635225662367486697093685398330824946314300055777609583582369850437484062731940752918196192630573856628495030937723635189247688217980128935540906986632301849187239799906706491086292289858375702220189647869208905231295215214888620551821528215475539856656630927226287331808975263059604200056384894215411923443596229105861866647937629741064466313928396345651915558887275872083334517002033562426639381052796213910452650172656069629105150991112024867417899704460340032117727045201873919588764314779280445655454203585204558646119820881518665704535272066717195187078297866088685089689004060910260551528303678373633741781655669758521953973757480353180124034943703209275581654656403475995271412360474048896838269938520864818557729197819156483298119632312074512003525608318381516371731019297321639496322058814626251321431769550312052352641241745239747640510318719365128056416517859075911688406689550665721754765677006547288359890933653940841269707166299569253336558447723445556397497992602716429061724901897405276201156649125701972026095816756556173624115066419702610277854944854971084343074564101545401405027861614031716437732472139660806890912226106998965935797041242896820475766161500252161678092813934955341645081358483280370071235252604250262056730427199434196221279244798345983825740433477390094443417812958659382016342775422643506239396696211813690275729006558833669964676994161573770727274362477573873925705421481336799017861034230840071846120996651903368420862173292645158204008405114702381727123356369494827179383496484736787887273822631644423050246614888082680219856959625856387739255532617515153272367271808444852956777554399568919171944974022128861738369306492972347207468172781034350803433625495502840527814102296543072357418315714721998620853076359749604908155274387391530358449402861020249021309194974456834419136284432392148708424697485494885934145884261245543394246449034653361778385793590573548832041853819930263260068593890241007491861685884788776559839299662584409728861429920995169450795985818595316210681010900393210332825535113931007478173519206506756627543309111313861422886289043357641380330553612338092868372011321959280945228054829127553961823129013955739481851361721292283661848757295118973923693799658182239711458917209277857375828266399081079609856910838640152337996971938902820883279183513659305045845127143010321556162873662183974398225008221894927002396501572696309250057469338432648201575342215413805693426053359073258763621511741236938935378291486374679896787395803425922713553186444297000190367024720099493458109207978988593877505047388323312210098271345057359730846417814090337931493578490253149862209998961414317997096676481025846853576303634249279215031902279465627591228376248645313173652113190887356004952671919492774111963424966026158237741897661989952036779284416311516590852646538843068042654439395032303555110041601540674535384063857307331092090091021849259809424966258807038675840520375663802220895010698878693261414833250165136869801680450815568037918470268536766769489734244627337111330919531990389367282410384853193022231317098370929109937957925784940713608934195869930588716779479885166122446210459280874296701761308368701228198622877776807072621123849874471167651203497286891480045117533172630553718246311534514981730621300183983285427993062519415923808359768576101740137433946286380664029607636085675471313268476300182182552301852823221416128957827307441692559687938959061305673231325779926438459194622620332417953159384767613921259204913601563487810522247410676029731521321630020468829873276639079723284627468151650925354333824054686868312739048076341719792371025961129254497848449648656927465337314036056450963429527867377486243712674249914473241844878630461595030950235838135308455558451029287030306238479869909848030048142715076077791475179574954793072340401438699286527157714709099319048782190552891892012759365480095402024011176931135466924585031864105399411633246032085517084824952357447066963668157777747512937029853528811020681006993100756465552984552879932626716965141328207692848539960255189742453721690325975455718366752395961784960600041607522380103331722817505497153449924544800526990877108570154424202985408512426587346902340638759330149491048361875349325319899391973076387791486039510529888794055514798923723456778570168103924103311188577661317880050149626819955890677826895688580284471584477306530085880041529863505771898875591311539666393529571543504501159169305488198000273570691807189086459545012407310135773545018842863403309433527026090241074629436410094769169874265369880683505102282032794108226619810895302559554696795536232206198869908730669804765815617417760173824172545697833252770897278939166499928529320143998012460196952663214581149551714555839494710904502286190669441642837575005945864350742579124486297971210166327680617673697695847433250342072701689194363027637164762643562417317463601570456523634197915326753922613951201023643462774991387293401447736679525723868834708690094219235845322364303966715381320677527506227804233617050457347721221913201356243457137090799434313747653950489595657874020149782894331498365665037819841739817502134193876620212106180703526239718709962997846425545461814487070385297354717059117287165580463996917369007753834919485163139347110833501867285483806245064484903534108561929572749413895431324837720173501905135649238596796669886967862312039809449260048985185037565112053641187943730492491683850141464620798668867314727414677269840220690690769342698630904363745548433525389144785152014561518545894770075339256429515416088326875644000175365126262651081736426474009566540500215017812819544180434793188313170988168666800272565430983378828441616179625287036018841135308672248810785355022562424810712404493618063830300466104705237686299533850832904336266600132120329830876789005060084044313342124104484232550910908336441364940781570077267723915641870337381405063027481771342040282479051851467374653504383640981214001160910685422609931370393321054973743389658342522231349516579555061968446003010542806576072759677041874503316663476488093672613747392321373205931750899979271501109830952874088841529930079257553064690588781218023698122846825956003419177714679586991865094548891883429346071523489082447260080400985305472976959954924858215347447177191460839889027136971170678110489513906008707401403759544689178756803497674891753291311587045662416055885091547587063207525568184799089715101602661803521631922522822361640846735978023871802308108730001251475619440694234904911575717568797699013612937607475723583758497787113616685289250899756832437848705039482242264878116757507797505123019015048028842020645240965061973662883826210534112297730297651770044883326010484366287445143539675881332440749638834906276203647224171829050154260812340195572861067655509835275881965850603739762382463640444958964153394542342299947547846510575126283725128899642391688278699294850853206672717921338983632250984431606643270367876755373653736557094883936606665152567673640276124565951740966440113792517229334152146230143549017253294174909187113776811545442902873220458046460113045174664873262377876378434930383324627539860649042064921537690290354752194350388640839451287376332706864209074740170913235238760834846416138180597209176744704431323294236519555922822096850200974278210526610867719007048501885797072082354080323753169672624132713912132836851387994473829394257975731237590150103192422473113493895579803061169325292224466728495084982396770354213336575649064160627869189862536312769955444392525492328735345799023770012438590183184920029473104613923650589890767188398280420367425323718512054238825038697064341861951891140032816199861066425741060677788500838609194009093685673677932956568190456231490523193168208278913208801610611837014827146494372908016340662554152282034250746938248140143954203845126179815519723264727687064628963588743587364926036439757832127269407763138082823157022956563687479164847114957166194706765665996688327100836995137989207548325088363640324308480689710598075041337634434481073367060344198369816280955575155132432643933003601908654583449238223898218503716707644184278132848189020777473075021422465344525910984793443680011485054573012503917494873925767471547012069078636199949640438984030959091245695366546266456632192505950775217521906300407306318682043357935218065580451037634960828881948098180774977027305433098927726326341875657244730687333374561706732261070559045888814232732294266686339684075310577748253861061409319625154952867747798651485018063461454129187371674255240254381543031139308948620013500012406180800237988320481744213240414755201210383939410577489004672159610431970161597835224560776990472742455561481887274313300129344692813008255695763904217378311204754343963811689854294590913357177920292268455395709976136690668621680085697474478979629297978487821197614722315047846393142491462189012774107154509128257678733199458918539242710883092109662561600861325494206600872348286847588074356547730108093911765108880278237650488752825399346678389589061954585211572714554664108768607540887820119252930309617704341185259097624071626075616607804482727101691233141893081853063245622236398363653325810029948268476562439193692325804053356268603528179089663362282003945151867587815694518683654140321444875936188065306651892837674584060297005851679499416217647488350541074419737969673941244102427538150825846525324182428746311011218887853630480341902750412923492716378419360366508296229183774200977016548885864627731962912768868783309354910712055967892033011931712419239072701962145030418906488393133833254420135048673526472937136156977623418515098374150215657799591339779278476102810937260719886701992130353203997881033304125321712337961788756974000903001883887808755151237631432604501652508939706675444926260953620741918939248961300529540305736901156846730039331226130739974204469231590783464131692054023671881184778810821416436324071728521747449387293044227766392865526031335692764503485200351306042156725186735025565671967865913709336882267754336977366513325630947751956094353189946435367413361343937901340659392110937443085749202645992643986194120691398081079952019542775792452720097463105225340432471638792939665759870773568372974598243729481812263918221299635993478140075473812895965519764017839146918183123071446015448153158406149477744764111994890532953330432382048761316855578924449922118590189181200908130754975233872995080260079213017276607904500955618642312540080663771221205985798379783658891206404914820257796188194641667878019606133156333844492229868697847599958120851440056504405496497573275016939112008440947430064241248464115118760743084692585416885804849203987674615538717806012617374689647418285222858712237994421690969338971398329546876734329605961865083633179886061550016069978081275855651305279322836234305858238965655445106543286147675753547481609211305768655857042227603412143046161927129730474411222205188900552856178000972168448377120961811852938540075199602153362659518914448986068708519085686318786260999759283704992968005136480776602886145247953604245238530876032375230584961323149888435085039342369826212022748385832123774404321398863760410583562016308758784996752021882843864210426152857627112998847897289231896335734114010868654415846333125924716835115824841157851432177711233710089605969842615814947765418079015150834455209584743136339767691350577095358799310497840071106644831142625314441642625920453531238652893350584601659741238079113510477119828302121514919677623141750297787764777714681044908423598480761789988949241133469497446916559388881808287128775625200212554668076266569687391290707536974223237818493662731381700395720711701657947819925251245533974214442394387032593673304773553915079369199545101027432239793687628548655940138290285104432525717250351571504649436566290565920416997290575769592879147975404682889151564733994630070398881563304763925689250122463483372878982865318189353222917205884113075770245219133639144253142460745360696704846146476840659358957780179312075846016899176444857757103565912955177350856338029874913009640255241889023919062917880457243304180807893378961187455950222256707563809650939105774722726723362529118515590338073613857946853611453224296744929826539439204330885379906851108120077828608075797700351689131202535105436717134744257872763656441227357591501643070192946837607759112637402958756549339291917486909697709008084112581500435031027265741056899516833027663806815798516832384725577759486009388453006009516497649649752529046137953496285287324739198469191174862664692610142934706503808509894848287058020780249490741683030121210864691002974181082260191813352985363221028126886107405459307546689146851018506453470016900103281916943202968046748641811658090322036022592739291111620106403479420942417891976858678032574873080474864411395747666502043274701183417427383885924488234519857909049131294644412920680937938892521638142847331250896877097762675475174485542875210408097389316020075745624775534950498815070208855446900245708894331875940309729683292898352245261584153487036109876175513436362534650214575930207614547244227294140062149308609162143963621226174519809698978740710474928555147171001308662972968072708408227297418999667371443575661379095325685588338620479905763155686196461252547480082589326246137807569186700582632779566111591221288651855777186167160368512673566124138162290741245655032001060426399919311143366331155047965345251318774218687704058971428976022123665595347845107179570123132726616921286737312582717584873022787966919398624626542659664979585966292958095627686619743017060629111760817039726045490407709587674176820282088110784253440990880504881027159334295592279848648817084488724226097698382086421454186184602308338908195198239464133078661352830472410391650114797700573536907224387590691876746353699933502182630919395433062525879844013432771816559858413447821272950260064462751470072935054831145496634008215861208606490265747871893630085568081690381453493042528854207656097271602164873405596624572471386587580222908842576261933220034446467826227953211245100277363414426901449139544059708731473013846804880531979357688731825451079305855032582422269836855910809463289782973847542917921279803287833396682085557251414508272911662030917275056723118143848575709604021028325487628547176969825009309913707766432415348691933094213494324228061507943505504276982155596612959213969052770124101929385778772556492230328887306119704500023418867601246145184807249673962942680653517860316246528920134619199013847350900145328189876703204589027068822142846179339492995393170455892630047228802837290026920813368141435809280592544807475190024651860556402393230125477918142488627414956280676300384332378113530304897446020108357779816447274649775040006839671032022111164763556320132982284369367955100996838711832290148662665792224559396541154206152854101534345496073171515267956146523094245022399445788899045746895815288618243386766584358985769251292777012781253584378864479748054805871352520807982324946188735410792914242022374533346034598293233104675951071659859248865492668923692243542264538725959917038616285183819234611396423346785565756683804787494920811131563812471396493008260019451398298562874223073402830260785171058862129494200477185879399096067533617320045859800541782265472368455583531033250450996059282679969585463106803462310727850578661512278400699695003359161279719615371210436503731145432639761973719397342777849599512555006035744367488042474507047703888581325939467364548870224547360564845692215601020637095207240345403103152257825246421760562052973172956776611841616337830122981128205513589144234932086417088679183570383899328736674997525627960660792516773835740376568767497348787445069931324572268958962118185496036582673147945521314741417325279368626028799433174304659962071010576024721907723718296948206165121009616420532926281179779067646859058935276952954857601587900641285825932812813131403813719233751617252402485006879294487000647847886501654926001228713301387476656830953285768121580542714586311194949381746790775189224643657633493485856612970221879941711958588963460633161857511825244164294273490417561070526914435058735621761556804652394838768581577223457637364976003522666785262895143473681215367660453727612434581032529146318583251307255390491597329722367620287621858502079079863451059275879240605753387344034417915685456791139905196254647681916692835131317717341663030405779300992913886468432048846566119177988203745301796518111707199990013952064358682357450173446312982499746898296598804298881974152612512128599533964085485065858814651106419756567592132916738391254685650316398964869936766506288895794012702946473287706724024184504894377269290328398110499521610917940367755896750348538621129774619531618407960590733678337434485287226719793532273487264152403772320524250709707534942951114194997929658723425093309148414515455981246875754105768250944741193584487408302016902091444275655859412804519170522637177149212315352368835137212072035374956866558774526556655033530555623667379825348745729914430282945652535460998388425693969685047392121354013923006972361613353384429439844133141917296443539572313601555186380871198468274661821524908939437199346206303793713433344916798860450256487399924119374098533929667447766924590876847623208163432438077283724477355017006453941235836410462393107015784820718206671771105697697256501120833814283260072034712033441304914643787427871921509615512086779197607504544310840577931781515970752379754612675127490200647315440475038022558253278364630218290456010977144140316127637647765557584961696666479033388996842980713385211515202992513303651472139816348445990456188057547685547026982651747368151755203974472536516825528385915912486924529161359186336032822769627514317076974915258985234192947425892553775129078203305969984721383589160913450409893314228239795158261422731710054186839218436181968607472028493342263852174567264048402444077313977114563731478124193979015781946268732719433089358969602146174801305092621156357871250191124512231859680892795338533375767059542165329466438593759591860510716780782603048383869022827623301385094135902386354277467227026845344218953585099636015807519526425542726650174498580158316990068755451121245602153646464440819534009546546290402352233910655682239922749883449538996045263229992448109820704622385482263186861329021831395170358485546479229549151307023604302216493185222801800767207333252710121146876749589968719123751788699814508899956929437578341390741954267865994678018499231939493062566605855618898847352267342548922544567493610129399104106265030232846334131795352894709133730827844088229062834477644571509457233231353572837371203982220418550726679727614676544975652017161645093652663873504067647121641055629623136518589135999903433951357993151485966307958170773100761861038599079986062072289154336243934880824583464250392514847549295352645536369703843130897113302995470816047029554165949858344303447971431825171919034191446641114643620825620230845082855456143900545862704883553625543223078812917254849892549393692607361474935679360733727547706744849181522340296376978219094048906807903658687421901632199017638109233867829512598075824467048994881298263043904011475339743637072967308020604203624307160881604214168438135588103970895808234913281232803346181392157520568562631542549613300873151192473302319272064139687366549485866081086795606962526630067611373370368140454156252533335102082429091286612522913510309695410875852821491704045866015009493243211921500808432334265304100199635314998193753511126472201202252118247758225205187739942866765051895752686473807512399299969673677408986099275249471816876849142142891810333548399448025688532413425151585889770283014479554986539068585961635329466016342432461198826419775867566133040078764790810689286901203625056579543286577310966287417251493555608875427370504281910973369905199283478671661907115310731607153432760021929048148641043275894848253617522850551192420333699117085089561151220723777490067721834619924339682806769892674018579928902503925497922979949213742096449332863033501494138480218546237201502263039634645892676259063904178205718718659322187892928643127823861126227025666519807204319295541303670049894675705948374512715731462739699354739670954089324649489692099542157582684408016475557194787593951871796411475089814478557247295516411182446101358768729060809418823535326087335095649876726111871359496760564944890465019400455625137575294980306529347833692406306622259514900139725094423233002621799417282608423299647517354828685636462299789408853859246407268812124334978567769569229420466085852593175924921700261703821771370090979595899919945523298579232719281108812431678824857028659852119545017436023851447764024225133837472281346279603689920075832341485257954790791583256468399655317838018693831496010822494346067990212974249504097121402633622190573252272429599358728718597317682733659187642470665915329421736364598211847757640289412983575981527806000658356372710919042748147595677925052934477151244788225496538677909587016993553293472036709040473839252584481408730325389973728548510348472166550289101625518400519003635320589384834682991497763407785231980706888064610250294258424766924119443707739271270152760441502080467091144020427741727068137426545257451128673867755442023978453820605787677754903293867277147099636423777205896393239590687874897467533518372502383472776330222380806847308669679855622836716400944841918736884026492057711478081621899711896672879979525621469638895223301317481738160169714872425220101099125071869486196319519160581024432703321629829009334552195979796583599869376289439057977896237746270502205885999558868518645538577622303282710713004506947423825352651482732425125163992927306439304428440426949040137289864868193038176962442642340233511453956318517304974410755206692049746483904625973329818149687621095491678017996145471701721759978308541215874704439238667341566060299253614074053099418084254464740425238523148034900721653249685736376667076496989509455384902940853626588253724066161051235479883539140843522438348958718947633501335354301714540283851196886359874388839062066006171660475994155836828431110749167033389132625017334677696039120528116823076800170440120732545169992877042998247158272008112309706243672216319696011766510935811048709786091582783045379235929783605464160811544858044159790523933200850352702996147346063070212013003715598937654219783728688422516817437338508361577759977526280297148988055272046834897090441848268374434192977534773855243705539381758847721648987267489360724211811680408618542396189520998707808292332205853508992304326414614729341297910486373482310199519444778301456508887185702023804565837373873036479727145810758667404041455939380644538667362650297487643253919104865463232380906296205265935057057877005875542239897615583498902103970787031996635479366720714516738452857081914571247241337821232159844840731571804592363917558514553116992107925586370000966096891714443864660319792023523140453778739362740035563660738252684890339162040743190808804703793651953531936569211822608444789400706385426346757836234406545335679525339144985304449260511709623400383766869877684746218349621622973808675302215625512538168709319719098337392234111242626509029568332532497995033438794746759962264270562054319276806177596868173238696736618882591254905589365935407765075406852987106035592652664766089816338824116912925404076583521604518013641974146543156787079353542986592904605925894142792684779730374941283235941149910689442493145791490701105191192651928708031354627982519647567454469550470985124039664398560834128655383955610108275037647979026408754967770130219346055452089617528397432923979815377208643648616416119463322940093597687562483549379767093653102007780437529949068134081507106846677811338122982561046584986772543054231230500023077082000132931778338178830189797875688808895065694564750667448894724127000095646964386180575497823760789563387352547329353847594897631220530257740351220269186985391286027509696088589097598931927424355817952457584149020173261833364651206045789038928598281038039699286413758279933974491884335626121927940035755262763920784315424530686502697123939341959212107529590317452521543497989800504881057993358286485884444863421935018847751134451580526120633245155479468547301655386968552792496094537346258151588437859615019825322576364123698035276528132577790066670518618609186449818308676229510069329110958395414143440218815369644597934411215640188298372259996792880797392651744123639988088213233165165871394144018509177365581387668719151926645177312561190024588784856915289566894392028025149915928711429798005973676325624835463897350490066857203353660931334083210381405472893440428770301797329688231354230415838737486808899025468821842740839154550736802602928901345033127471005359128961459259874547472792387683428136914038735762547959506440808241482726511964355677210223901755906957884619789594088433761711997784038595437648133402971207234915239181052893465581651158752560917167324679401607187021648475504156125825547750010942059527362590192164391061349290298408820228620813125225064414306560542083522208378493080055085603316294148941283804147299703215876033560082989533455900179824322532252753311911893760336933045388103199461877361460174114969069620512283352747766036818570740243643234625383779274746012315585668222985055632858976136914222679814047493771796944723831597944559036808801808935028544709419917222827421766813635621172471164520185699269820298529081626155078422865019786456067419607294832629480758871672077981793010225731381595962589554362802692856185690805808962343460459847804599227873910658926079064951650831081781495167122549985656745505441718266894442751055596013239278004516460881643031915341918047977884012580886383321651057042761667039763641151081517932472824166296885318823790988320946387072471523387441633841368810093937696333871191004717391859616382978649041316806106876829921301000508049330576635299561820425630567927113074051500128387615155671521007574208093618331410667101345627269629806444348773211815182509761707696874814650866257681987820681069594319142419412207374634781904728404806531798277577266053051544121846813190702765536234530609649284034076767330955036797683329683962126146643568611053297860509704673841467340590787912006176138822451968637928257609243163329195638364603085499836902134894170495853464024887591726760161926853415153824590860028748766723484750321908220761674752269744570485673514145594631038340351337390656984562688944270031436899321786017761888741903701459595100762099907705166569586893625625726426475169380080205190436160733251743486129935132445503661265816730753950647592728824280716004676049122196344475977064289628091589579622335836394642532929056415190029648255221478365816618558456286269938564285311283586473186204456533029525722718973646587782517802501247588690626293784617677866982263350119575441098496748283894916741546244267314190656787271306024246320141760623613488515988794581011704035641825559196707416700692642647596830517900717484799375410671119955387780434558262817794614152035636209327579192671511683087442503814682817778959273674514508702022304031139656219846032147707784234329991250167957637729971122769567596243666442386042313484059205755056242884110006977468949568184794758000532522919071728170128432361364775737537605730858512915318359039039900354292437148852550926094193806008794575712261919369788654310783617035833501921684165546320271239294198800358781754179677864107816084043330297038592586416973488877602812112529326766710363572602704083524538293648528470385892591399135492048199927843390509020554269766906753760238733301223003474297206891091589920903227510466091010159427838759832931924609147591057117462422577599191058620332225757795264841418351682136434432578754546670517477298703797730922600578929072507833242518088481023653240925909617262582758997749054079264516294694548263806277186309356798778914809633446696412011006975121484059787229014677502811954482926505593786528689220648257268423403582798924559677378108437453046844855245730302065736852848752153769636826925970724510634256305915343586393622411929499696638107458468187436409543753034307286601681080439557818389994947219900485039366753077325287042106691340802826644797723666854780653066692121892811111255617110838534265158026827570576161352341270558978163367023056153233166668242137230861448499949266458649186253530270872746643378372483584367146051567369135796714144113048365224017664114868521112593497149305775648930637178230788755749197740873298048674861162833393388932820567895719017208111621884597135233011344227403190719114719696006411955366629677519247387635347832118701734342125269786735741436792324237635938943069448508736972669464292853659564320071995025199876958000943381976304396435747977319094657144166981969296470525633216425164299804265873116746658104796708641269992417317114682350089289112388845530708216581354216120133955911107535422026233969544596406099281715311095837495152029774899899649679653637729612985882116426184058647005561972867075860412249100155115788204091248650556578263404692511083476153513709948229547855986234710256166349245596765767058672383967157239051034895433603494018293470204687528299042191306191545616947983344345071278422197598054114882122688136769007478936903758769792481649025213454840105081306195280442367305195134355612040016688867995357576954527240882646629410707455445605979418341061689218370691916609691865369329860125871366493491980794155764829768989707684961032963645868541319829093542195638570552617549998903348907831085820386922422954792989320077746439683792595868859662784100081803044260788284514568070500928743267040245927259858475193741211941459252624632971388466337509129729024806672452588605568223643218611680403261996336660850229451569465817228840066595816146523887585227736625278768894572234661093031865826442029155827855834659540103405755200409516825921240672965479976951910849122500252126877128143053906610690741190488587110784323261215832529007237983771832446018069642754545675909518244738498808406616676761459094414616545703023432031703929663969617768279414486220386345067158582144347418483651118142805021020955847928299306452640632543679186910493852797572322908915211376705865538143760238925101107621206227747164533418440204387051886998739124209653109312236442227880139680414618416718921528682595135472173578212938206449233356857222699226775214686412798100578563269564917064048725800291296925530076296774372473954237492914948340573646730304453267898749830222063759840756322929718280736277467149402999836166262020603505670718768607400519932852489125439864915952181074460285493518861321343490754487932373171183027278456310378808189481560570790199906085982346666302656341207874642265589839032475087643048772970336878832717067239524357827765081595090164009359834113522016608916221369031628610196421291646103115147282659934410544144481683160895459621005258251550981382455302217615682129534802240910631890041591191594718501288911497855630795592839302941480743763129549761527466880795219937375152630944683189185821746946515351705121016940642422650967410295634047715982391029276643306755166084155099351527058951302236365742715684769236130478570861976712529636345170310152854287354374436039008836263622630633357416174499851111559081356017440588911750407633470934212334718113874235913479496409747278806546728931007697370395144974231077308880916279927326885046681449800317834143800398921106521505376575862659222129090020863437212257908733936514947107504331541391495199430197545308750114529152884780503253180413607586992102424279500480583641993117189754683799521931190644563213171441094422825753229365153857757536704943158120895708976064793885213312919089885470505080756098265616461442109953418476163765009115687391849514276274551116322534247353670255837262586226930711474470180049995310671317461386687553290100847312023672560696422856568342544374586757909619342719772240457536385615378239024136329426928203853156019399267629845621369538527940537909782174613493482463269859422331593337214007536336129177295202607151746158596672394630289549918254696874360140287456222835494428477470399133860619335865165749476511861618726575934285105729660122187041754664347145218642493350993683356765939405058783624020561653386281515133699433196168610380681226445836448210730190091540886421503503924498093782528364090853249890107032673498026576249432855503255284361880671687119612173935818725084621843166312224937005297706872907080549797411700718352383832596538209432264244808207951930436579729035615981745959905421543532317671580966615125636453084582074829259055592119081712720737201864718927161430795872176623090419300787624439902617127298950419252472665800894900338446975106819764473899662593621349310083749510315335727743921648899399552484658680342555543198030476424106282034350765027217691416199554861213800603297894308084950777356156988681353488233420091498456923747830163814224506198275271906658062909182713964004558214773175285538204656526658394514288196226146157401705487028890882878934160478368835371898305521806178370198951688188015899855391558038832184487234179022669872106354499760014402967755267742198467768189776009259530800068195936985742102415101882368481881385233461256903888589770435675546731000499927571647559513941943705666991347274443514982274972147068140286982389687752642214626110186621869241900377422873570256977648672353630738020130510910508273785905531519670708353164525784987965304299103994214316446092208025499190263205712105060466213514122279509325818913038671416928343070834840869825567725558949577805950218883194533004632124983215792360125319887809636152101787431214872092298333151544148537357454866598946893940210479954113521575462800390939500067206792379286467189215375897374036570507371714968569591746096332493191373609721521790881819258940134868430037314956434927693692773426718965877096515685083369199128529333951902093858863730172157701583094655085092667917868892282416337584387572754997596304577970624778539807667886964386571581739091275311484504774849752828085421099995227051796850953155179374203999870740325908278786526292554303867392690381889841829605105625526031313102808342253697993628738061861829987271832652983338788802943943033002930937217722485939960843684252371403209135738906066962329282535135096322083066562371212660108104183833687104155759768832875958626820558444305818522202855164502315536868990450829592035436715973138354846125564845770885031760319451537077980331289587240917745227869131333007383101004117676874379632093763353194460078707921822992662121845783186825462827841576028087417692689244797487270759534737470328640657603911646953451643914276011649947672579687914983347533600788580798747595993832484694616965822156438531690054365212711908005860841165568985873559673649920676402390612691634763512126776011629747603922271466368401128814655520433307068449660540765629293238881221115361609522047089792899660895254061201338008125721622065671626805233999047306736792609457471008260486233759210042678707214126098168567200330260144099912150305251923100793620574888058915241957007271540404985379506177929330411124930995866475429783746110002628480605170331666759336353120660124757456871281214249600469208595188915432574738990983565390321939574423801845821499123234335583098483673165050447254861361276397856994422329812267347671371788163414425769985406786128787186108412870046706947833317415221295468988959760707202107977828638083909754180282508398792628206227763464734206047653691612221182040538463238651158493650967400722582774486268343163755742315318876455071611285277980570675704116579266855090918452566321715172248719566012578811180434498530305805493055332255935255330768329068109855854480916377692439106562827930703795992296609149581899828482438451534558559931507487522570337318898031358204019244141450903467915696872626242406512092506013457701447961994893956508815858235119518755494832573422167104357850617313540228078313706612977125427755699616105913426103055086670048244365235229580394807859442537238377259913569535241024125197307865493902199236515559013460322803497931739185079313446583870175665530273967992156001674635090781268172146133209728829074845364424862691871674225351372658903979501304769871254599854719409257221112354098212233345233176437944733481653997701856202444597819969837575515568023831019386032667521328481094311116598912789833297459885580489447557903986347015307836470708831331572485395563822439376285677784062922309453237652395066799393506136554160146489065184717279508232338835963672104018177335028133500482281798610414584371440992303735107298447218913975213021374463034688800312597184800083411021591725003180846053494712752539480546695911598636561205248618623839318087215294689862541626787230885556092751386282346106852355006259476876450207168719675638452878050514510755326138192966788075660712516306721338970489077284281143391368317333936227712561141944304529025321843870156185852600097200624937525317633764088479259010905301027146720040636378277060939269314129060330875461282399668500956892990441193130257388932381323342128313420546378422429152273307896098641988600511256802365779629718643298771251535683279380673233381970839353072710294098790518420818914739688616653372025048087960341911703470754100202515481594023170320965493377655434713596439467779288023488682214216798776373850238472773902071186760719231832700391316996499876844921748087568658421392846487197683637765857477932375951507729541197214203957238276844596987114607138424194009132831794568150454259402439488239217197461239873839959363708323879718521159956505718685255112573234623491526962219756717274035572865988714106929457180797688427676060023377371427559286094699889666861330919517705328227029941031025804443041195794969991152544616948772681696982202287932287976637203708908302494526692517209914216543906305224898850426071906982527247493612481032042647600042244275504633983384842357641412667199355856106714543232763328369618487577658619812985489382985231088990422656019029340760145736622553153147057063988602148110582265434856502721160253288299440046653119776693308054596038063690472234024363548581640015584548523318734122998916492719890103295969457614391605889651687083131260489879627981098686644439558117772215555243286069836673405011791225070362909516351098855274828908549027151413445047839372093806233655597751682066451939560401220033816473111413405273423911223628510858172922224945363954680232357244343016434174512089322237320870705196061624709802605489113619358220156066341639911183951736032225015432729783795126785900232419901713653919827774747602411465781289913281643596324851627014785098877558554300838172410050800629262912296575973672893401452423582966579456320810718757152622038323704672488446972866771497092659413706719292952215608469686565856982996034174386055754648852289226548315606460677135675891988325685957061242350651834805496621876914372085285184245252560575400352380400932979723440385963600204559260212205012833506332845354595750149586089082663268148717123913671565450422425415608070534423356990698901024083909731138588777203547437461775252836546526522762402490056508401388879293863754120261366147112837532694579313044141884024118508779094554230075081584927111650145592832852492228329926375126395027065709211636823467221920115370422297689772050986135904544374647874091171408824816958721685892967306876070754072044580167286738699220348552949489359327355339377405634105153362541288614725706519357717678752404964633519397352106755963316831907445971338887289002250913224083629765283434564674905972884383607696627845024363591884662788276625672454766208659519461459584497027793097723975339057476907600914348778915665980484673028962823873838006992298393952298782962427256544897920639279873213004994694154728994535363984998588311723534878515251988562781418219863148256694248595830312215011835979812875650323850831491165145736339956968792644429606025562533570881805668275645717128621251908702818760784453230767853498618515771961081881394815475635810211648477579811469969116060511658643519024640445577586423142219231133466443522825965526348336239874391164197282537765259617077310750997317018663822070222642733563814240793797656573205859276966712497826290672608261443761503566443657642630607107333857870640630161690762423088945348148230536426674579246692123088603254042294976267763460788991362453079264690450074105771283789443344784672196033536801469087874879997698576655186263960294695210585380606280712211327224744313966380723209666504632124266948848994462265817298060809808950336613094640659778495209273216866203795689474519497355428435701773183607651853417666308783270061480601639253488667958381052610922932398856942955953076424942063077532090193745337499151268008755843087019740664701720831228604086570270451464031350485938359486152686131680858352070310949223335959187116445392603878119742612699705842349293427273998751053004398904778980193224972264971399681428647579210078337908226421805103875912769787776619710295074669036620833406195864867848491599774048801446615489953760744993282773015152793312144644014051867773705229379076484938688888119040464096900689817646757323593911939933315770023173024024443966389974192076759943164718082667428948323408069109241250297726287786030636972666990303015530393898186111269811520685344784324045441438514372900759899165362375749666727730518010647982525677323278290512094398991004113262086223320697909864689804807034623109929396390884237957919982054575354379019509332030753980555313055777647509645191249816618281178670925456576774317626438882568556130248937176039758005447865821959784974939246379541705133665446992238781094505079589805346558639372162273372058290734434193691828192833303758229273965646303728010840368950756783679006150515636207008761069553645447938288684804421003959846495675541212366210951100479113589771965137736396860026539292063766544946679204417839357875983474774214982680427429517235950292070669216550424324988848275695716993909504194870809373770477546319210574791212092117869857622312440995055248134459610528960589536269783337469821002923665378298202731436752870256606826292201389695043715700278459919352621938329326445651017467921870726020480265563909715929676253773245172039098851387418437083298754007499237348024703459961515848632589171689104496449916127011985560520679934538785292465630933814150251945183319315439580327138765460826350780884123502925079201023995565733869108690385495110793544099828639018252229286249704005160144417012587147749422496365990438659192855600769650420957917263595694379122279319742496263478417382360412041624604501766088002083090282399125377028280093026407969233018050761540724117382184566039938278612035357658534324665619340462317970364507883356657208345111122378027861989050769008223871054926365792796374037068802664948776747746369568907344884098906129418151923365068833965537769215824768353804318004548318134387510466142030966917231911589225091965990749499367879437113530203871961174999743045985983714927813475936983294684704222301087184605892687293216364912666532772895158425043320532212132792369660698655998402532823697540617870809368890260955561897340196823647833236738991582834607983763803766151895097690429233887012571870988235141198011194917776439991271991775893806969120157986819698136473481350750179663910698698862401027366329787523781420599418287106210722121887679559226382194028888301696970570084219664879596999283144938711731945116812150570957619343392214912629664537983078590038959675734432593860037679772416789289610236728258266717531578306183943267042022727519954820636475737416622219246818677322200077539111880377392740480472238199948885521671415309806350208182110787364104263742095577297787523431591683609748863640541337424539459871208915290619734513633568879379766642426562942430311981241113069762620142141092863143419599022201217963518266132846376975006197721235532765558498826270297875398867685146517525930090464892772623066473416920409151977011081248075078736892523980028198955926785305660379640985617327147374194661241545275949259488669989839380572417542652853947357746095539276578904014503722767846472794480497774702993684113704061177699472896206531126613260872700611795629003370765060042220828669265696345569743475894300307697630066224395369958697043918621589088798073009368787444182332709937940857078877236320955580633067504072967603248093193681476147627106328833761576762229935147177542244782649322805872257490511995964375838667580681177614440742160138107671117764620666042752510573271230536663758494679768342371543177697759704887831554850561787563129649601052340436438872442999449660616885269257455021440548107022907202114695701774158970163149653581682977855488754222760142556738676583761204134328698364579002036702015373138268107374511047326539980165184817022960820105792337267294318876911258405526373589626086378281537799460090635901833861971881032540280192276307027941605732940821017371665657062227766482995454978670127750056851120765762875921105793701093181383090582931625058308730554749993916625583039247864705407574032034699114282692822997843053285231997150772070865295121169677234760817056269773523078645358543635828533280460607922787469525879188818631643631604330625045290086491910906923828823416083938859711448463974651240364437197878016666080707131058698667001100451789599801388840865603618291191104737478647043836675386906346848004214199080819727048198710386206303499697069586145920440270321158843288675205263780184186795487464904905211090675773784182378042151453909132395269407274121831165342012928422680367138110095276309140580264998272758576654820657180277226587553267247917032939047739169226676443293389634391651852536094504165973020149556591980194847655909055056168678552184724384028506209402678380332302694679964987118540890237888494018835849659057603453422377829232594825888670166417119269841076797119126302342799770889487743573316766804824238672625163922692256572669283473701033770413441563091205568675508567153634020098358860606536797061808812875066215115074075045773077674432190046006149460747193225679475709383366950380861513532621461845839271774932899990980318441487092325860422485403215827570725844410034801347062108270469892172962748726979717325218934832373926069784784382569748974976916237133030002950761526005388130287992325025314291342313228621349377508658934894365394971411831121662398001316256399466416647723314257091400015563049344861259487876198983666057175199860980922272190149856451347976162547661654541677699450460692744055420443879564958126669815388846327445015232903034698138542299931019039274263870003032398271614941826848387644191959789315943397132392971351941910711246716723095704320687328275149221171021773591046917466390792107785930441360337658930122363161133460102054327148158044736955910788827116746903735403085518996958680709420487470393786811135568554109744240325787404577575207131837653097503003243351785036472864610053774368938220730716666294554346275512477473245455316831412869441615415198298796744141409731006640262352619589700807407297676239248439826633531248848045913717914438003344419256271712104080568408749552646006807055692259168191983760508260748567668582091150000394555512771693286197010679316022352927493005537350018948769412613201462138803401979231147762030058634899226795323070157740199518311175343512944540900553556196714989106532008016768387440018450791420219460357952706716709915692553376421122010296853979242815522029814133420404099417188675718376860790951341469370139786513869762824650043312541823719602650619151194574896208174843262253645795907795882722977182486008742367799149941972687067145350480315485868552030614033988193523984423421149366536729276577827949184039719687329591737395348205057683901073632556899213703037590367229160836601883001998426923756021503152496734845126511591353989268909292727958768798823948862748892231669079935945393256139856099028750323202320855333515337057789066478340895278461086942785549883389596043138617378456582353729776753935578170529723330807389093255770482071708678737145225807339192031591196034410912591048077999552728263981113905579684355495546041924272198480233264378516424083206380360471840967740959012820202873172929283068692314781439543517986154733263631796260352652098360580967296658767406163279584196333449263622604803538583062509758285498689459830899802561208730302197354499416723975406044874326667612573771314218688806805730370782326348183855917332843030730147112533647550595169135999805241001495282738275266638867488823807520297452783178063692995217634625916860820317679555269847734178787032401865956776222913397868719491415856622707024428733192652778331809732933826065992638823669030431001236762534615160757357925811615956464237338891151874566782461181049698391242984781527141035551879705412789103048822115582336269967791855841616261935593855088194524031604656708094139498042661046743499142617235084695844280942861236711684343412809652269081559462085946579090833767426863623634090277748639993854675284304180303635489432416692827872985820473376532534818469204439820388134673597955246914324749843333793915410692674837060102156789993252506729882515620562636315441494510992507070734169568587006618535915067752938550653163174698878350008176423663559177925154539804741238191690234600844962329389343941942426368035890289085186251336038394042751971069278145807861552539265365085608694674239657291631090883484560125358529894196197895287462187787863122069094943774337066778371499645474398969269309808960054440649691976210563751679124133102032310977990359938621372808597548775815291079657986951294111401949802690105148031313230070854891945185533175391545206809849814704517503981879920985887990948730314822208192217420905551992556393539266015383860788523601594867589517336133706968355647829510495418165876224123066503138540202033253129581987404166620125785710667779566707479265881047337783266012704243544565016422327211252163728173993359390958869282277782473454107539813669388286695463957959471640838049620769464832794415978220906942639646653272303091017472719368522651657742783901728705849365680309706815520071491126413302223719104440335960165658992793687807290637817439404412199363078523725479079839184728482918442899971537307028345094861402656515967089129983856652565030834681830946307759117445360085466717103146672872203378573306188219308130839932375821346481553758801679964855917966029675995894467868240546437742449854339229617917446752663421627804960612942712234210896454760387482198076737807402889291814557946500358708816293131909516683037090539100408772999462866800506321444885977476610637845239171788326973825517945184138974016267659565812418372928906877895398183791807595949165882706756391317433532412164798159414667523283672653731867224519154065490949964312324943114156520453839610740139162935473726149941712940057735462660564641025215376380769571684212906524498418770456467093874112769726008601357507015018385111494059060964430925979839688794946510683604474720291066416585171231510903817987672315144157124917474030165349011787263113244661445155935953711668959083296705827778509619809910350122653733813857532333062578723924926474542841909575025230674422811554192288575678762874726209077883301142645778561443589143002134433840496507771935331940488223653317562901924173668134266615992716486371379948456919073545296471360864112413953514887638685871302285971949360710638885691715586313783379369934610328483646090195783764099647126461969139945819538454108254312005539763048930933860289041731764864244676788147865806351122385077201170785497327726103923133644424490664541831935304997977931700451790567699273225605715175885507786083427262967741823641529454001489562667223746635034557626997218727676571690398354802675682897704597505114329812079161443009779735870728373890621470061863763266752540525197715505602929719712526264258232407338927100406305142692003090966482848266615754330391217752568862782125352732708413997246929472430305751422094587512115435730842080904618285709671841862850644075602327141574074776779811392011596968432219684419307671793738645085615755653309969536587632891295351531855129579508390350468836974557139132173557838602841693856185448631035641478787450357997738962507107301609021802779069957161631741347255709706744298687425037381785616126315948699107270119057630987302571202230512686287865147931080713553326836687326172870727472625418924191373531874272575982661976426551706142353896650194234382203895778541771070634443031008309773251838055708415856665177772730319064247565691769595170322618429594801560734329437064776595293626592215979759398395795510865334244779475050469354033439748737027446671494929648282100905028444003071929166324368717007430680369031733999536977552981163988841990139908176859726142510957304117984824394704888753858173786460013764448377833211405151463186360195457331355256930071783710577954002871249992809707579154258986067732939399004693654381291632376022948499713730560516662780028033012217455840897755303155149206890702183061269743718585366934050869868947466473374813543258741311707294835521550290623071412738334263866620180484732817122077692394180134715785173900446183548282222299310032469828432257650880609902682139785165520250913151820545887746949576268541490928603211879959798220890413936501586709429277393697364565435362770826323826600418189483505326121188081859440139110804075201016970195181224786443828837485078460432099153210438821962944270171898562976090550656590528383866931744845335454089120935465528032124910243774570342088695495868200037748944753232876991923175276943586554788907999939961950263314474595149155631707291802799323013879127761524461534117678595028691581865403863862874559314870279746284280964420498133200852400005532792627580294970569607434264623436779648703271859706630057727304877459186185813491568495334443494859597489839122955156662913268869744538439136240657670404478041222701616552215938054756456808843112504025411673976849410483660196069541317344647932423272065111970626675607145377113176081502792064433687400665303488569634987039114504637172083439075673845297815089109583882900112479012846057619112578645149033347986705680048576998835991131842952737417013054246057503270467103036826692945671352463483692821735262328732593953754697464922374166303214183497923185988377809342898026038693171789132766099337935956175798615465691989497872331586467310148180390464889514573621718162396609096808513320614278635044091872387281955059109862025844525930773027594468050211613092054889405781015222487691656297948509585380669424475119388476947584489175486516609283219633470131978629292120005904963487877773071002611555869336960382422428967067061301000661906193775926942594077030071422054046449203295454478929532838113435427719289148932517017960731638491402290055739672503723581916302551504921310563594601597979759091988972035190235695221603154299587644729073304624781635757431046748320781484568447483782925099675344677143052663719097386292680246477426565645770814824882400660222611991721391590526032290094355696045266247600234666373056773244989787104252126861148522379286788460967156325011412951189703605417316705856108653398858879178908100172352952994666063783487873507354600978526733108417839431669215492818574068978957090612199087553616340810376149720905902673030962862634954123401555620963027693359253679909541400508955668943231715044185830826615996074031527408573617181093508630367120286486660958934454169763281370345781796003548444171490448025051031371222444729477143614916691149657872472913512405231195272866102180278388692014891387030654572061671815493221209611294103563033348198057295446016633003621189574776580887773594354816232839924211475275349425136176509970289396502702246666545956085626425419953179445387403896427492301947459750188976944615081975403818734852714113819712226337109971787750978066995701718356571145036533724519521721636657189355622198687148749176325550999190224895274071950396206007714947917895731497045281479587166654640885059167504168870880019541385968416782354961492917099540436721181536865528307693063001594349491952319993289804362016477950818694878381557119548798416137754576237241424574915042465593450787264048619708196499274108272481540654712877214170313855657403541736330774837986742171818426826759756818318055106855499728575706506596004614387065984788939833007215463026127338729600658025038987135725963811972581608354466011838142982326963725715319327917795369640463755246155919220304181048122305621557893284260008244523872898109771689001105644093141329710581674954335354950211916737374906890945302892138618117710721794931278009711055408606734525284860115971794441518751805318575534566012138497417329089720053443621813218618878580479059890859392569945073320265461174503372173437413646831146803514565117102603578552746920404110048267569165969264736140648498446558290234701679700640180210367608554025960547910223861498109703920226596638365609081457317075144859121357588616078090266453949712547504777071669088502282830376892737278387155443568033889462785645150236353116815493327569588009826502926118226474772475040793033870038336526195769849423713313978114552308596869714870770306986376780334985087742138500422260105582629896162643662643267988323371802411258676892520873302450028532742808150701398021954387681434470867560237152546083409397765276905692683430870813173160048507068477087799843228123880985290146002063745252923443782762200387299910305664105461607164099095409313215997332348425461296244925214194573787831106681865895428769690558536994007870963984699897391583690533569525194869576132937791863319120543543213738495149956385403603006414603545247981174248612044217050942324849859011980695143498206665360291300295057129020612944149824189072606395884352825642579818940859593715703923180289145605096946455157945434577417867882176434132941872816486514419073550866793809558293885166648053126709589209957171377560733456451973107688874728859033663896060718090110678469566404702714096365755955494019235104546229650255838087406486776878162567015923956504691420793917000007368007159950715806497427902595755642187189632090595342685609791351022396504066058329552267254098669113719843990385162485387979923587547012754440979643974553465514314034676651430154224921639204610263037513016292188180573493423280177216842539051315537265385846311415430836378852417278594545999195382616747694476811932346126910116617375003402866077305912119728553195731664479081607662406576368735989598850683694759520606852628452231318496403690365825768305784301486888938027864866826278650706500456397698170294422707611077106898883353756854132920498388860707710496340985695657273034785637075396785321540903094818939553126023020629388369148412017766752406718111865666326647335848248251155096915746966866754253619771667492454015645466739180549781608717670669608708540292079025303874554799637279819666459116649767258467760141006288497719581095562809490168084504832408648681833936865305750204113495439632341159530046991595245091049189357613649853928921227528895417494620042638914633713593366268465532764668010827036317782656594773175357610741128095916379405379690328985747678836392318394946774756595370019311011840019995730153009399634644207531401867767144218886586335673414153623555799218349013086714559142002624396514306402639625192564897745747160259060102214271277681771185999698410881042051445282382233232757721747569355667649425444551659916008493141878136041726046309522251535516795331339960865214268057347679961163801852430363240217317462224769886517931014424295521306400292433786115871913001515802824043079620524831642527506845441557342318337474830730123778051185382776086286750517939795876796484059677331432323973918312397403940929622036569786537523162213764945344373255105031333273296420841100933807607590878685225495584004600398672016944523979283947535073898957041275139137952920760096516700390898291537059613106526294125050205023896001869475260165010670411445398726104402467305437242007532954150615377945230814480910587863742648197513918684341829543717740726291318104796205225207836393689618232905794283580224728307598181935610618495249087683093383494488664444332094063537203505146412008890921034264169150521019932829511390903782729928202993995678631967627841565136044150389937695910535477234853932696118807552586549648900566200166621704706372491290237722045601861434940235733314231898626889306664934479177035084062815442281049633556876883068541292131372566229230615536564930037138505799139549041999591206294031352775308533044705038476534317420058190846721798967177974123172688714657521201370208638553504347664784685398865785736893349502068378894360626097074709517227597527084110568816185387136284889917748948452182241351543073402102631087392870287992106355787620679517862061283482945701229029743469648770052123532657461499060666723065601058928631914790569712153726167086951175922679878184542706188900921093678972634524731305849310385504740762283155076091208052909500230018689151283086958628208074915811076556218148495381608956405848778210537514453908331194215699606714209906447944713680251461756914884345066797359422127927030036835022567553082701987746412059953014610822277744008902337159014918692783856753396535473882916869634914355190634765455686841900397110395229453034529453243683256740127531082263558790885370102305371348124786218777779722150644881854598742167200530629793827964931583415485242814603870789311860760575979438464914708969405017246384181048039011235126919029532759800682831129096267632474317925143512962340205605883225714101008667782805258881611267696411193682174040072995073559740556588872697787193125513000188021146789882601731942076155054263965054008216416268290030976715253527392011562759978127809380213380496087219460693801687548654740052651210868006851519438313151980276328356515820264789246199306668816532978828318155500714877734860642545533805053138938384373187352228828692819452438371846933251240500541057698367401643687620902420692819980731764801607775736848243945945503373782957088940977429879049503560267198748494102254046064066263836705498016164664453242148652972342013075419494516506077526141326847387289118896716364681329995748698437902220553575926344394091630371884108984056684818355321951735743893720835354629452641043994604699432101981705399224179112237293508751729045458435142321034567641474524830549864691449298973884131405481120449367720770773814721150460812311790233520746411892348742163312428578957782382962446298315518559466051385707753653681353688283399085866802765676602158110834031419107832778565374933667975081714640670593877013318669097981303628165597307987425924594129919602857091212684588351048759654166108553847252287356380686026178320999877917273621567504162681936509590499647879993456023428782183216569827170423059172383886770949673519950757790474775492684223874490942384074166220746652236063246447763485093666382327010957054741512289014426032435334415004498224574632843807225464773592167976931437041464274125824877743104608997868531624369244100036369354530788560625768108186202078349968611411745298832225598574135376636851169754257725526679915818903738024389394087975947790053004316917083434885125635591602028208752295464145518966719809523956759660290133789391215776887800490199144548051784505970559316742312756496368100650046312686625889113418974270501097484364695890745997231604641913039667401326864833003341896045045076998317652502618009573503310874827527464516215687661857339625043175549340640424027523393853645004576234784884235255045804651511618558019685142077940498809292157978539053252578085058268806553522139666816040060942011128776923231845770257967803092448697284933735815094826372555046812160183661501162840544922153538134924845808511734722330584134136177023141132662547005200779368530407474569594861365483207511166386709389312084739370537598946527862108379347090060846041366732784865814419246330386255545368706197822675546235518139341218979885545858546602077629044007882108915861602135286119512574549398036556110757047744992879557786529755053261597175841083794079914386711319085433466088793296685299123620014161143275727274158995269233669588994621226440538117636137227212628021213357252613387345428592137300945129814995637390994637229587991823297845748275578354132070663609836725025461893968423314401123970173820260412668959137665052004446027775835859847092810313585759081977034999139231422481365171007176912542616988946290173091938828164241645134437093646934701449545649704729668318827800321561417563568818288378991541610857422970837843586338162255201050171324167926474797015914951155345497171262555227510129736737636384983791296990154441747501465201455190360386402219464432275881466336299996787403594722362301842240560491321858795756576929638932081585266316626978259432652141947163708626199630934257596348080808799609063967191950221192239151635255636558943397881797760599823683353031421018070419611898671439253156108031521526148245173429475047477379751005059442853477882591647918223711929492177462907630991311508869478948278367800276469757223241010877158666589049462425668465792838794965256437793448907061238719596160374630759493673206980005383859951871304910623122123491488637289242784705957076851770366422113016775376088330712103755735455948566077428801342236106805867639588934778491647359220065477887605162971119932128774430265474782197427287811602098543868990871374090736915257224995202701546140926856796484096885774799395509043890493347276460762207875966056476294042406935218141370337905871861610364114633163600965892345891286048301631244118643925935487361314051223487664566980717770216447569008236754500138782631169198924813961567899920670685953327618138818725067900058773299878331440362584811421145883964749478960800088916086847224050307247131583486637705963838035860631562767259945723167805773696295081102943972783886724568618844724971734867769429871568125017884484246041712178440636939416899071504589168042798087746462792282577484062236077281884049017313463738469578811759490854497220271821643125968503734674054099063080393778036648345588128504921500893803255770517852295291512998818095192636056202621817101625237910132693152205958731390654794698680374437632720428088371149567247966923031164013378142770032063725469091656671035668496839243913287761233793999082018558468659409987496625585040834940467603479367529861220859298180741790651947918549892494177362406493481951608679376618490513751052699805015086754091890355583393831964409428577241452486388429010048482625042997956200336271104107142119803163573509778263783725067695948407994774853015642504705267140379927327714062227205242294977167126470063498383357032778203723768927058484940464367146477107519245024055965583966412366727927903404831738649261352472124361345571365702529145323788777832825214670447775601308897657931460691904346997861278977326197157775425281545496304195768572942187614412557556724046398024427531486795156509213621231764466500627981934966130890508492533901277481807748099589037452869709301303557638671217988742955245149264762966196809687614179233960442325844983903983186259617502166556147800460790713364157286928767486651233627637406634716794512165650775619512860436053124835475149574889311895429933245682198418592638286793149600263366645963478323615973287087357311894730105707617197933162834043245400180537432533017008028592994676016378556909501786954650887291952436434563974960478280879760978067207231050452301507186899829842252117866361175959342571455900522989501145969577387728381052500606834930400166094098696233590533436830014514326782497972044001174031787961831133690437910283872479021494296688344338610682241537071847190214222039166638333101549651252603999544579948626044687618006137086257189665513489871586926523136828399086422280409380865734518733643303988026815902341306143647380766089228102856170720196942866619699974182146181860530231928296313747094675476440692047441964684468497697485153812847451585146846379977559811535944201651133380578721920946268083059554378097552337004134271491401730585393009279701063453672258875394000809317650668601519371575313283233537902602513101470985854212416808401805318244750036968347165254733430839951013487297708089520871028297481080851999445116863469161640013010968881858837378656929866339566541246604856333662472752157995797996323965063005164903969323071045981510266435139234932857033314122112528693598419465922089362599836405258398979558463476192723357214933548332722334531640262780837112531715896221789332439945819802315591463098877958258903917125536681608922420086209651244309487337220555256166677245234823180286619297257782855772908518603446679370167313241943677222819805178089267105730327742655716425778765726567019342831073319588378684414676405724826736466308137124143262293492142397866303419256178195898795922369571406798096698384082121006886705973677887123575536532321619905722265024252065129991765237156606978152761823993151042263624386575509235994502034878833540052934886466159300190902379442445396387500007049799134703841677041108041030834634443130140777766811485423183629621596855373963493364377434608423497991186054729093117760449498752391524654229556802214529647470421683555491450641315662400060824481919090718877631387170643914964424286962372920510851971075343938894267385722417180339180414849901275704664940487614511798622588145404185928645680314652401544358320460434559086500009213841837508814857820860537468156708866084108360138093579795180237505743630776582277050946275557392004738880372289533209609626034400825763846379243759852039117795500365666096443044718345914721091254008319639310571388531164714597284415657900343373868934638574781665461563233066196609979915871622868809874870798091039753113482736873841170816124339525986217100579148183990468122273149734980207382793380970569408270261492380684657965030695251337853883907284036255590033309447127594793976505012464393558807976651641073997606929105205157757931451453736857675934924745678873494141215512935896935842397291172653068406795961129349466194080277110818735166952455389850284365891041513234057489303997715693312137655603681524200849513683458658321975488387930110017200948496126263372304146230131977241757543312815251689227023556655386449329197337927352840588249741759271372578447667264459460107620297811175357903149006471432108411835090711655583375794074232557369752168323758624514869139951211972807370763423710167172666649014273721460071957723570659416654699879538908669910582426244942787541179176587218593989409768932848627446023881129156441205427609843679853120174497371362399383281211451614201657706691862745335780044749866896360818394664549032592593707481118902745534553458341989537605370244531474748130276954800614178481048574942675158926876748636889777421569355872650031980550994278428233026665728789015571613976098129070178722638912468632551881215805411449957184452250359227577840725774159954029846532054251238759821547688321791812165686773237528186075102584589549980405281265466363822005908845255126932188622223133841215574824306508866207263455384666966283917672137964920147820323299765296854482660103759625984377559714737612561516920570157008328295762501501446774195340670478014197349762737845429422333354311224666015878035399634857365998932493213484625877925534602635878367104383121013784120273494291884172255433840242628096338306735809245378382876479072603293832170434600155010682570295390052105178451217883172193398509046197602926709251945079675539090124121466325253403847782428647466490891580513953450551110137358111281707843270888736138948049066913090146853088256892470599930623793396557047729794058411657427221355560778827051526073225116530777065817982107810058133186339986219182364806108322700328400243014339164192552857479064857562508536501815485444252058535655298704568407872828948401476324559455696864478865055465356224763171927328828521370388181197378624882013859576815235874254622295981455603990548905539218646572324277391602078206467298449705225829301255247997903667614825449300438952042067344316571621046220527100529717009449505005768175111870253908805679387455295406361316091451827865251639397609149412214540701720003362432158084193118838553943767002281540899870913109578561469780334800559208800027525842040033375844814951335820500521988749638780474421181768889404445701700583041345434867965903311459032143949625199355552226842710284362964128939651279324333173616193299562016805893820079483748603178204485932634910197093028499069602481089702673687106607419420898638920725208892966601580715117131988313732190864406018726907482716252964483735143217126802239152984834053086050836228261328160615758157097317235622475498779788400533375886967087961817758307668214579466705801099093981520237597704375943481953142195989903689827008657571324022858380961428182606550320648086389543604833139776954098130673239996409573986775013998309708852371004545813106444940912300834890744957250521810792144531867427497602578209956940515229774313819705556242950655795742847583803929790999765779429768876538141096943033169060993000779457216151922232670170112908678962280494705283946592754056701402481679564298445755072604372072548436030430168275458314325428751179262004423315916768549692234351423900376333013793117453552473356996354656729565275731438592489234786390789613018691985198424416620547234986114950303816097697430852802012565202385264650334606941465829204507805721840304001059163423085444880479865044965648768541535934108470168337230584819010973698657681989571513529379439274115335649062959538948269014217853248521660551650908493034469325844752713885381809439877280167946551552333493627107234719648443369957546240293547548060436898688393426147318105685880289622778167012893622505012044365781742503762275393576290378099799179900625153020157478806225340364057597584793282030000618753969390329603328004957872580759687428769652839231673636371276253267387474641004598684530591939644563426154378452473837026598008421826936222383904599800789524706258730600880332500136012332444934277218438813192584594814829652645046233805372097058555064864744819995208328685369290479650051828172707404789155272954265966034490308685272427886324328732708100788550770612038410939515059199100393187808456490112150477690971742615035327628756738401094911912033395348890949646276335741123223265515166586988342900477118384026415969919561206577538940572120962317037872502977332782778036907991286466827667368618197747668884308934229387239449511682398080952164184613737758181277832216847956834638947160388867504208181769279547395489866140342377551441593047034219134209034129129267351853870053546210363573263694659825504948203176657287646642194284969231255833436579163865027035320566020031662644156102378935376090345217157904230990413081405535432252167636699033615405369730993859567539492600018618786035401608656051712726490392978759862939216614494954911097627374404782648893928237198124370669442000685752804039675085167122893898481719189920206660712179031047562600018345008486904968419492034493018550838942575190078025990590105617416439396250247935595258060638385850028253799385507194912935672868041690966357007635136938090831317114007140993109461706842073308406561357398275299247819259613612756396893360659046524718728269419735200651451530250546768369779722532984799072047644479231816448113555992950449676174523723862210472755702186085280304466272374319791867123194716003230857281702282860072393613981068588005463145639349521815364745371113698762499357029507148585756375302396411772143808422743731080370279984835006127623169411209395657713913924779068167585026208203307729731500959607377377510384159400554093738853687929906842479618655867589964339176632878607124777437886161942558665273695914456489180998171508229168445677037115235891009945432728435307772770394200065407643798687471154022682959772720117926997348596670914409501361612812894408851128316908049739423684614434191393267914885515060633891955342742598170168314954011849635880885567948491302731296871002144683248267930351069933124797704584691431253780122984140066113401149679257298596207501948810718498005567689935302612732575611625383485071156815816948542160144404310615812344881557108867459702882088676387401692996570271682384220300004425279458459401949583957198089411575887805978486022620919188110132767208007466129410516956865287943091000691288371422653013543244954530593158943237550027669713221025414337501643137610988039644860118782974828241541732797724594236357866390330686663507337970607400544341948430376699996057967421856353960366573809209719614297660833712122984988909464880305664319639245229220562618332833191642959370388165230831998728232768767421541739540294755487557552960222260564069588604549779777975116580235007410038877087434604606307950965292123034569748026457859305250944580958763607004754201685453416260438462594297632404318337851113898724171779649837714478532564948217196520447944241391805177981106310681473864811367414627461495907979008282704994313146093935066506415223671730138640838937476753566148972776692240473312952236775792985054574721061247201773859249093849392232518070862949037320019305148702706907592759563744599829082522085659430892982022143008447087796109045675447894651765901388579770280727109905238463262103590972267589206419653541035744418726211640877810180539547076278868097529027702914138915418036261610213260696605619624344209182403021196575242761503959144664557347453550989744502931860284050073855023294539620839165188214810873457059614683218921756007343041481893123454991388060792791199235598864180773510771491763190751203397488861472604172456321723608937139838892326688686843514139388792442532502310730875471954437046825627484193320078081701500217034179009751066817371943154750212509626103401438269215974024591946962182033048032338825077588752577786073247484976990540756315283720108294576209732745858999476071162975868883945121450964583392195654457258957924852900538461668745909104564779162938577988287186812746315796142283187169788926195116434729170892447463610657685468692183119353417926696521934986500851321402099707826108182419790410704800748635791712537942642652748394443313295264763933559846068414954296834778221221633432917314839106610671669764660907676488472907300268554492100748901259872198585314443454185258827984028270113347135181451383114383729796581698421601666083958832385784332308793494168820096470439976135914093700644163545961601303163100316563328175130493532171008474617175902762368061067438318896345624095706140013646998423259737662217395935100552592690140390603064758041515882076706487062710613020885367939439883931316905552229487697518721234273683437592532933760560875150748696604223225784880345790037031906288791865089189991663386054463339530477769407880142566835190026498952046161992781033971456459982873173242488557134653317858657861662207892805504407514045769930265226160914532686602493383719087457871173656883848516398630604074503868712453917064577472663615067083668916705786112250336710264847321058118341467866457508932289572538107849981287845023248375984895803921672494729934371331827944452029233901688500989740316202176267977680081510614499626094730599431641882238029773231115852708230319652486345195422558870265873007650311818001587359111931251557864186393531663875628198230767264273088954334541311463017717782910644294921084933133420117712050025607442050077522245695691248331935284344708370959038371410057271130422772192692926281733632286040195969716581373475318620870977380468673959776387320871668290268120327374173765868948705103941421096182532302055814816986137628925703984587754050948916231807496458113400691539016049908877730886326056786987923793719473057350693699682792471804045476397462120476158039776778445290298553011212911322348464164543366434611238369902337702047605230541157715695883720279443098164873577012115160621680068208175396336276321238198517241317729744248457105806935027638514779643516188694700039126127816881426561519037823068814831071312391257423156249939659324790323490004436104105688787697254549617116338865587786592662565854058984620171752074388659940235615916094181724564849951807474742658909370994530257375517154080703140053634685097087591309963065287544755566252060340584398045109249498297510620410708751213413308306716862860190446312289699791183313673681167716900497443522589612464673378236963233394546489211542064666227414286069055963415787807718009746297306210095159916286690014681557349570412098716910033573800923650255407532359456184163048377614250320577663258319363605695202692175889225528418976754048366143828753272119688986654741592738571060239409672971442094615776609691342085693439906849258287598238065018657597063068961879672587331257112528672110277895549582117329316836374093429256290772526846543784530790992402900013644513491778291032916930427121596594940524040370333086675659901981945905702893741607889915667084762189744415463051176346056884878577926047417964692455437685005552717961792487030799210628756816141995974375186671458894419792631960169511181712607669479352236765982610589872551033641408323237666512886458399490795880072354134832854910031300136759155245466170244559833879228761677248182813222980033497731117605914833015368598454357987927378859083956617428408776896017189934999890775467035436515707462024453623240127342619927376290049564042703653541980505867183516800119624113118480202617626352710596108228876040681222765135133621225394869645205825287595116214604394796771068412622123106609167355663360078999566967630930044831327986603292150983752024624820804868319724606414731824007049017964690024984211320591419916885231411583279966367777709600726851335985430092080521853590418069227153350980636129368333965585683444762665205058790626518672373645212670392634263625996860432049128158447976045321709858347560282403899454411481183962179814045592025804970904170051581931868356243534398199312054500675835431673204338378993399327156590585325881220067689925397203253044428620473249461327320438433527747622484418909018406717909946964649635107032039713115311508703066583487637991044866349661343111964596404314860387158630883200361520791084314300812948343732959503548206536999272904100476687756762562359745338221732988347248597518801484205750951467810940679219810195045819950721719098934335300646361572443792340465971336564283476227018033942086081224034564674160373450733650542789536147589358454702302210845860626614785926182287216607774451892803593527961927466208942144525881204886323755393150746246022447902396067258834721329718368582830079845251648255267399884186522484088499066665989603164744597818344749054293803169292475909437087627579642146547928894884370016669265912858496576422370760377529544998400881943257284965363222540341814636089474533786700131806915785183203991278082441549837246670132004498534233884045944725311708665022904569793297241631438447909727217189458246188846465661001906669806782250384119229621028425097895327450354337117913485035192867997241680988404055356739999264412171947930322015056784117944349092805980718816035095627424778480899947645607977969437108149893247775520745290271160656862053739521139197664943749194896721829684692596113599752646879017664708740882959777200622563210556330365615102202882425210049149875266624788869224238410360345511637151478161708451832270887464617950608231053664056087101868638507236959895495081911678323679785761757960664908882228268796319880532788503398533616922977645908999221816035568751766375095517024998866038725455804535262404735698786732441937360953776253853689290693671386068700338690138647635782144359175285124706687933548829033217865084915103015033723156896731275321003005627535161516189450041572824351209605770018704930061929691457270902427829007960442155911374714180030123201258481772027767365608982436408882496778241867554358411494368951730195577681223682824060526947216820958697922180880183534356020540657328141249213337833038590823220332772114568113559824476709241780692738423796482020978122001649979628105958446143858645356466774464086606639289960528484302959406991971407854266579942096009863053855258701532807249147262910604411759007359975988618780545722828507313335371487488507527607414255177610611092189714071860557936674205179471201226830240169075487877289005594483689491997117689156111349547974557050911354595755137588050097448516947791642704752984196473133745675961698324985923616392540093955510114609349522927925583842795168969164480610096807716692127965444987247524589698266638605546272248773412363437380113028792196217283700621315810794331543154645978925428792994998986664741751255107897505588528023870581832277580825162530485875167623335145442063218523650520386009252154510498566232930879947808017245679037650473687934501130403830455765993879122244070055258323901100768739257810452370011547834696324133189634221375182108916889740342623168465529867610612109652406332045245148353211639161185185768681034013272299040641736752877683438887098408295456267771950894789268355255774819129317572314295097056473875658372955953258028784015252730054606260987496392243310977377679402841364428852586140797053956133361681716919903557594600891009863259445098774013042987875929222287541322930792561376038711781963115129828819242673018679203641955684287338709886727233494753555716703710267849493234194034925991333583525509256424100403068352173451173949328595306355885756708978221386048376895251114414825821058212497433484982694523818463969175461455964222259584408760709578413825947338317147570383471999753736820824393515600646751287966703465631868344945151718938886047544752546120881658186671471381528966543325275968238767229232766444261310378533461870501678141807863752465409102973244939279417047019252594250224011713565020288026846391155879377904603187103688820339353671416886840869050293431682137470067766335874337278563566370004114247826374006158767869993909744206664180079266027001918599996730512452520218677940010223332757107826953531581118059639637336571027945104695916283596792201173085827791206640084516413767106380981794478263291037794444534199482125205542659264509317381356800577773978630193788526483185676293684000882768218591986272194090772220630387986465467327042536435077509037956794956323996691430200381524281340389983022941272733939238134804274407286118396627919160648785771239097480964016507987110911793891583910535550034475575543145673717583159341988727561719662648029405956968200076375631555792835613126904074212293680242234305038884575415678164147617465448460408223562108194715638603339036137379471188540927385162893653270555961341782922098767116603794447267280395680120202466652591920219679049002679849403526711590868337797765995131226669733183845300456784642569972757751581229255527489450003007273356875885193280287824545702886947367621271689300603606335845024101924415024903451005042829829310761348426871357004935617777344857775588423702122196892134762817107156684649440619340725493032341652512343263509181554019057004171775112968178434567597546074149143493620801007157027185857669419465823533944086491987141994510945504857758572462522570101873426289409587805254658715831347031871348134171414027491614899118536654834143104436776125044476410896571294021110628677155368469254970106567255453643655660456838952105622830520637815310277292940037867604259558112909897771526612856399141767153630500688244369733270701140404238464550796883878937719494969021703463172579671259288433051578181831978946779959576253301480824571639688309813485109077091632389445165550792652980503816090940092115077465884520428592630373772932659024586823608999580284400957685714912156897440983272205422212333584898572954738557674820121535081474878586075969043382607236865747351546332668355366765629154216784995953725669055759852330121929622583109614138038504961715585905635511201894095404102295301560070591083706302484499218474250057010376784112887348298828130890969676059534614393155255924373844139801840261029935287247427244302596011484444624936295290468349034532921646346610219112626984269401327947302672915910116864840600272815767306627850420677770959775721142026626618211606572386983629399330859555010887328128919184494342677880874907010806745223696793411648366432003660465470673315146789340315189657260252080209053083884088536015993104372721505623159075909936621267055387797102659277541953970675729016293390291553313882860359032105558283729161525010222723769300134666729897074105021989910450369631960771854420946192188514915393940762972513703280138011053153786553372515082003551085331194641900931482792184247295285218392236386598226014782328794106605750018614678465352360006058292026817578306048420692739775639188173567770116533629586844258302480655617160883697234204319890244448698898424923878055297688115390230257823567514986461126396413159119234398549270980180303345846259869222170255320340450413288979057156232174882477656009790764688165622667886810136023983013954723868005352717826373032098925419790318746896084856052247886741255920059169044169713959003973692125062651825561903171053195163935795585266036285341766623907514783069254122395058399806783206242215334038613496788227951841913349374937144568580123351031301195857257389232154911490985348514000267513669013144735831663100622798139790057923194283024269987601101186248274263425399110066838107465326833049943365275615441174353240890026961717799370846298768590927643476266497596205808220896339954717714736718432741934434826895874349064629196674608224360388124262801151568075687507754068527866351939739329438605396994140826802376811977252824864992757355734179588474893255176530600163113915955042765025816747169720481754951050810475036815974399968217637644927941594424066355085936414876372554071489076935628285813681645461214422305118149008435927700972949134897124943934090687694380061390895364178997842307662360361913679287124672999477169791055516914293874964652668362499856099255609476939053992194715841633984275124485262883014811172741514769588041664824131417030451831691479106986880138749897864627398416458888809726459727159465641249407927827003846098712967951151258626463369034014893418242212290876832028209054937562618678278904029734071888777931502923001358367212554927425307564737070759797509743958835025622872855609083373555801387658111976387218130514394500802530785567741877524581507677151134383068773036271140533144388642480500642510405378366180943835685778497132995105773821495276232611897020935854169041678629522213241947654505785733602454277728568827459679668967697377014282807707594355552068756303664143571397438651818594786523027692864488445225973742847625617531313401963839213577859959892891201978498373763794425638334765955744239514912384415851807466286977407654670943498411772576487397416040676497508020885052284370007409149921374416510309095591146209200688677140242976469616481606342683469679828669395858877648701402513852737880353571492937308977317017082051788536672631665976909547068362139788066670619794523542384540782499648641022052706794864062114951267930799910964337003963182888327819920709021874020347338782257266440184163775216240890656258071023654353461864537400442470752543789526870838190773859848642547031427879215166407866388679231478629395883354267379913166889764731147530395357250933016987952957737465403137451034824218775594776230233678650218016854326665849869861048548082356565362276505751574140986313375240985441067341039909766929938790258419890758812905229945807371069022534280609354850874305875550875879455245612791868177087992752833844905055099680171481870465150531428561737264397983813954869464522700427015687041055741294456333807996850171029052168272783829897828756509828862598822452040988682779986047964120678000324677041681054256928474204240490462373483854089226899371577414888105882826550915387294123902897255403330704903039717505332546025744632748708366511731529096107257272849632771775772745447984362723887209369607782959013368606388376718711852110335649195187253998996859425456278008364661387176290768795252830124706959180833215580406799728984054538016111825117529336060628583837362699587215104824608420587799628781428035996899636209478486379200146790135952292394573263354061804413617931385103234982476280279445183796448148154853367545317438559440841493781708559626573123518876502181355681004668915200206761698230774322301212452037121859933754691014056402045814388801183820651825261113528336534015857363858028365004062461675802628101705170787912492424454694279736939675643436177416438745278544656754498711446671957691959965554562304594515916889696251031682421474047757946079654934053743967608912137352472787841143802597348115812424383364161425475617588490914526538918488597024171351550308240805006574228924603793028683767413604446795465935487416531878437053946335033784587818440631373943394132755324290969366327871387006474404475694564889381660146332516798934294077848393603740317569039095175189401264662270417002806432823775034013921622678674839873895384808598858055416246896678997152684722942234390891693975358733137905973405618550502760500867005845330755798279442822804030463910412283480543935816614574928987486335962503157302584649673752260310765362269932234272630847064769975801263760308906748631165196500603046608046082388218057366783160588819747404853572638161084571556036079358121449172715463385154954817429679236876781753409480570302617867834901204813345299214728716149623269373192335049516728062310777164859620844057111490606413406561367173699376018693714002481734538223826846139966574702652080343617460595155812005715763384216882794668142230765022809237135772998635145713575260296090375070692067274788835969990114312896504772373148189196773530412294868087132366514599018927535180815041600991024423293724030991625255624642275249848037512141085299294997483694653936603956484109958069667490257931175284328193926296637986472581877358320653832362769423027929410814695216369441995935614212793138474574368183681564280878405882357658084108715173473056447290386614834377178728443781751105416139140900084460460051665180655812466744227503073250853739861084021940602785887862991127069546540010965615068133215580878931460682311209880723730528526356913352649546796092337270650010493325872681305306784700812074320693407469616288497727053202650947669163267708920947944046142189550016156405217639888984529942880813978861197600653197081161471235820674058788169631146815895549659575001722404797414359262217364090168077784388292345214666830790431889249263149999261758483745351842995396488408980051941382489281296553620987425092629954268331415456373816377227500604034977507985376017809870781982268519301830796279568184759643545146515858813347558334802084519296502485390682478555525899558783543134862162268645012605041985542086437865043482289022376132034313339215946910002372254423615769796846657533289554456528975983017829196922269331368889662656998328301525764745355523929795404878343066904240074668427774813027819698551184566054032720557716373389960688211041504010005665919338632474551495742671444412093010080456027323373785966263789513904532749381099815044769182157261146223484876993085509221962106259753682977870592054778978596541341858737439007569572184985922589193586366017434492613635047258477804326356865007485466624284252630256632863681359788949114541764252548751933170603790328266939997061739669133475739923126739240631654849663991919587766132843395811196719831898466306429908879955473539115710018087283365436543531205661705729870602959473178279577942523892061277555267246204375889246208724910994460043563151856019295460507197316592393124634164534253315526623997560492077202113709335109243668191332858700276666589997597879072422961053923074028944034268468786027741297924028971217182461945533089126730105519931649754301077987782217428615363334190819043840810413891308392562334222479493864773309437931421273270732214085179994686525062849422305961054171930963722907287728229897936998343214830077012335627900009852653239689486204915705843157540052824836633659145595401293093782140725085569813736559699932875278473839260697876429339243035338065990957767331155352742959694382554655094128142555082824524955146902654970760956806691340299870534412830172285949315988061206856738217160120013845764056768883646623103360722949335970730370777432047204136799293336857095650837731531447737467465098653356593745219873125926011058769678823398780873407285579115183433262701563353402451199448845009872182377343795738645500081176556773489397507036692859605408534062565911479665724131528113027273872650158108226533180182618163473705206498856558879497955245235493145829455736321625655061035102930541153949828087073288357767701702125869885152632112403937704564734110353492833688687729024876559005799140782606990241047246617233663102499457149210876569595135920775828814636566515899934056166759819793204745826441689841825896913198127744128657577674603007787665831094499174371091601421562239982494816707447376251589022871191222792445141152846739768597844970313414941116008813412742203317745690574648541193001019675905419957230931340886535051203934816786646548169866239117677830952665348237859925057595407878149129548129240741510974234235055618873287612931474011783447846029892583703957482592343114920723409194559588745429167503728823368725851534417908441535514779578851653948484591869140800233428286383516924324187432400516814948989073773150315810193376042764100749289678076956513664584788967587568250789371612306325877810295894752925538432253086023397528836319846841287525542058624765446167806707145134515138130106025631654785459058112377747024360046257649905556485618069481634079468585714538048579080765404530157714503944672367039545993110649402220520409726786104342122771409090871187866700418260860359141308246934353824989234295386120898510076523661097258393477625859978607085129969527819989269670340896817439911460912069662210847147132078109999008617970589253012981076056475258907631352294971119113893899754976641509153816025817177511027539516664693940004111236327209358417893875659499956366026288558158119722679301525091584122821163702380329987628656439701946192262607017566274614229065008028555825976673427019968311107378951950602470022839979349098419583670213544941321736278355138298224486142266047140408626147309934677524960657668783796803656730046038579963946625531197023489135646171141772057758382561712314991651581925644926650937179346413756813209102631257928293049472547825356034228310906929813954103260501277507862795676782845427782045110381803818049787473359201683171021732119174887034303466198894736766484638580484633928546089262367523562611385751188640831438149210008253065832621087295771347902081660971452208915861717991282560352021744734221570501466983349905029953092070904386377856400925159454740652325925822158169593974271632608010816680946226368794040059649382233585696545166450668334746125575794223859167113965949257606069669279117621160531177543789599468196085594874683034117324762419016311205522715412618159553976718890831152985984224008121679075782031484002904992122884349302435079634608558234672454035152556636880714514555027139190217894531218045484567826474340253688313548372827762184181285768084708249034789677524306053364038688141335675332550438965836993610205265623237730397776379653176835269291297334918813131696620843775531407933004123951166760526565603364916753720353448169927245895217150475491841708901997218552597180520378524348661901064383508695685476297864740470192958539292845735609041557374673381896800678422522703068396884511732584559368455915744759844378836475430005956351329223525622830986681427772320605537710328522837463272080343325494378188039756769075673189668328175741970989968269368159624489869293678436169292250751225534074789594632310991984193957941622349626764179096643175948246764478269318579775492655951872970884217927567331186529826515946858325087684690281840758264000389616979445680123766825690693390862110366939479659626929731579502429236250379775997257912848324668182075446030068350165414357349966654081269742499997177916526068469708320947396313201307803631052893239174099899970864073885977382681453649680742799535069198038470539688022791755800561150857626598507399626524838712809779646583635000437530376929178750036335032594650748090262337369368275686046125790120951476502373948078635389395406631936563532984646033417618412974141570780405303918208051630306050825743724267408828347541473117876140038518840139492583274627077444886991880120382407398696807351299702247333186016731329643733504909679520141796767149076684781440242594602152305303218240990345252656903360986192703693625332686597575742536205908185407842018087622927374925836066417186107449602579180345322927551380285463820458426337203536762448571175372703496347249575852927677252799982403588442741191684700999392353662173114842857062012896326668975851285794064788962056305945618695320741882666018901769063608042963985133141012613523102092178467742332335364932392690267357697652519720467897999473008718816573995257399756978756088964470240129755605079672622206411473594265477471036143693849602095047678686311369876548193335778467098118676298191881316070423457007631937480854564895750275225702504742407946281391478862831635771334069482616655724018200538164881127220152157045549648297880167194813426663156778680164644207869231848417280103416012471994700512048851969507730550051052502260346508595111448693127736230227142620171987157643425414227442790153923682600429530413167466811966425437581174401283024593327863471160298990058886228868617090581944860581590438107384505262500706063244610703408423108428304187652931157182953834500948190241607667896586362647977135728293905986550810866603857170210441648325489126760330405484825078448884978174971095903386334375236883725082208088725454736551896074768129716837880961989052204759758655758283651735852136515966797930813667231282758697992488493591161199266315136211529863049043069667877133337547845771046650794355094756183118560999782825943029390478269773202549262690139426073684361934913756713770487684443940874991644753464445986027958944940431694624657285135246594774656737395543340163405233562916272852540798528768053668606431910782932701756927503631759696872070248461355162621040547795779032410811745110432950836137165947318467309376395587221805221410289143600491163684383089525917584427401789727613840968717846146319284310434166159664562180319059183759172083777976854496856372792888532850535563916583114166921287711678241629615741272604236796045506482989870347526816917498495329233343890409293391256497793663945049521123294297920227968634862304061098212803874448100440988434324079906645716409416369799665900330647473139483408833168796878043117662265429667119832416984954754139780281204715418650963073379330284682134369110510426135542879578251736734950284085281663701782018062739503308164019835482575073921717726634308606797364107209365413330105038998604609669459679076869598861597747324691200385430453961792993723873076604629223418346808005684894891983861054387237381128051790714081724156196593031065119210121362001027456605649269591784776446903186469192674786677024606579831185009478677633864091253607924254955516158565467740782458676547258108205518701689475715151683777213330455684022824524510848610708373399276770679999725278313429425424177032199126731131793415705011167743525000914257167193335618240867745851890867721624572477081069051292350652806425093427392395907930050599125026260260395389078924920299470432467822350419603707982529284595081374401929858794263751212528739233789303994235202133928204562851169425593777838905397424842120690326649529772696448693361666978408262373326277936613068863169271500328353129017121008510401640336821766711572529949197702329639884757336469154497917741793697345054260602071429068888225788047812037307907230074417333660932707751464363377169222310039848640843145346095207831857386636839929493011915756507634686717453853985661262078521250116910097659148686569907935909456103937207222692653999114871837670381977127481485579819779635187202017289107743111866152265844938691504160489884818086414945729238467825207980915151511700336571049656413809577905526316201408888385245138788399815861420685427184145441917087394152384433151010367675714885973987763841552658142031297166197494190859207465587137184194789210017108466665984906955483490927577652705419497344488632515160343045826454218311955947296738681053216034327759303262882998977179902339835601963577709487298658601076064867773722345572967312948363993455926119098293375677503777500923384723624383494080173876326837174897934435323036223464580130112626455604800666220267273718136007202020808666307895623101735820036686475190060970104394435724264377713763160599761508169621833751433087659938117490984749031771473286033370800779266915548506642168205905679931859915148282977776421550918833111672768789290761928050889217481620479865569365219160670196212866256779884932207794865571012907598177645094768125466014642836030014767605562556907968574666027197896069663539761865187433863166567160668002905239742558077453397186222041159547515287914782275003664826613288341363145268868745756773822611408805944299793949691938735981577574298714882936480725940419721170346178667337729856292211152149695115845481138938899763720555196483092670027615552945174001958388741732612881141520141752964469986220057036646344256994353509301598856070566311979507044982771952617899002825662461697395791452809090979252858885112442209693685483775460202885733379543429379914597581437052020869105674688035072729992722327510959327706522617938417576918845259761524868062702288342805059985171005885808758529904619445005772208923699276941500483033932141544240670777350812129078894198772548207328567461730181368257432723521723447217756377287618328657566543199729955145925396400011542186558759240168687503545002564787412784627438497346475073363775041180021253273123997310530243312540732064323122552657744412768030492197897602509557426239734708471493673255085940530065538694531700059689287691011646508155462354395174586898388349162846220844977708604112262755061226282955461778842745933653946609034206932146541223511903075576818885091517622830929457897241701937273407403008022571330470245401309505393121304092142349596779774428286616320632890892015486409541969768376742769545916192804806836931366129307638839875106047596868611309538593679237068467062376472677327822068133552033066657963800101901360701784516162852239894686760620664414379268961274743530877481186511612374825244028754817377357602592563701606659861279828956523058368980428992535282723336442265632316851587178962633217428787507186487675534879430508136864702457547931378777797597067792597324920113495908326208236386216843087384051900470668283947272415951059216117288353192055631915360667913882896091658206331744454720251820258292768299427846942904343446383040443971785282961035886790676798705476715879744239669067640906013671125085486424058917881969589115278932629292163524009788320926020261030647916186277565159101304721320848419175470567096286851832162027700189911992776081586983703970171334715920280229494111082460493034657549186088776667612212721332899096391036919599500558626545197827444122920225334786773900862739175118872961927417070056534027162403923456126284934930139183895724276826088676149975083213014980646270663984993764331002794153270242700526020487693499308260431838619043562700347105804929823591226253516115791510100957345675064888865090272782603636792932054528145389861059605484755869700820428806725553195431274768696225076943391042164882385845921554044322067153504098851794085409904904468490313998815253568081467041905723882404706995548061049699627765600281799824510565365605996644238686843387938715192485080527663734513109142703418597952934991941273028497942965127804030453822042834811543737499148465765345123430595168465099497667987346491001872972944520835050748195151221913495876823261432250608078287819678363262212611761753770439708480504582871894195595898437506217584630980952811620349238483473625022854170711601576512005680828870333737248650246876639653363317352469681268292412052783392344092514686139486774670085604150534938528828108989698510247583254003855758588737011976595628462455418477885373476344237019742430865591998856165180032719628229910864446370919277432901096705782190915407086682466975346830158371242843086513136080818358120749427707495436372123701280053881764343449273707383535828687522620209278440942720513951694625940119765269554405223400830668856974229627798119628412539133336885773315589074349326390959958022769949156889758491817509891184699407253868419638614919908103554877426722672345826802321471445702582471506641777472897197933186308663243005709672614456071899834063740167210181792445143110495036314620994043815323748755819797784915483023974318071564401214998256826678955247224039808517851339329311522167645759731618641438191764142481716871289895928112757553468106542054341898143541050114699507802782724897437082461434060385139828502036260616527481674759048166379366372305547341005903274025866664075289254740308835231085365229207514272728613549456014748628884130245496793429156294351011501334609841779011077587734150561537704217362396697718280127470681146418206085911630535198762629647184004831804769139463871381560698335854598961229776054886205036955994021760678748473882385494516261194929003225084167720912651475066189144434523016793363911465042295974356785898374334951545341300894175851648499242901207925248071927767491393196618197150537692403005814167044460262401181394831078226285687273288550909204559287490308091623126348612785013600344458816630979682414173988470138932666374883777479763373378061833030658015355029907625164919877802938956782891557826377474366810174195451468747524364228818276221371078811187136437793623374281300482094683276478122917384921028290281527403957560151301956922278677434574629303435923969537022906362869222412195941539730501091396395661580474293550315202155060437483780178558036582462769541534761311094391330606624709000795074908205511895548853260788598611251543083419089945352780114065656862413906220873050942170963336219932629321584673646875453063827671584574310905012937958750622080661272970444810156784709132987676866683043826477328241806557979616595716984998650280017249326484569554107823949521291526123737741451965122767249331487055522780703625895680477241811453189769522864277529637313573855793078299532481490001931289207267254845125303596113887626480090198699140338654106808438373646196328521623734727471707102506473387027891767600506490133697968630759776321503068058089239535935840902581491408967175987238019135872928364243127409087897259713295062802609194383832308521766339032183054078645286665708270263740105116184077553053505584900007137266372076564621830517471926610477920408729886029117402263168248498571868247827036070391928416473042923590251656916642243187339992303418436668179648586731466201939080013898524818422013232370523936855757627240273634630001067057865136057673995848574034368241534170756025861461564348347671437548097538288887290138366722257899722526353798589699549181397342590788056126711270293520071557732566952526502655095897244248588991825072504295263142679820431989062389418890425833884879183545665113708295483657280519786357527159223258470091523912000090870201501256783902012531322781326492539394845393867868709153666195429354845393652230288475380494985027944251827503042432479870548869243945954499793616116580978529568930692138327386871413104499607127548316767253510730009279695602067662637684307102584069429386218229690231458400539957893281943804558583514280657108011699621374422162576472051916182310837654786380918402575023337590536179502664794838085679436619160086424336146337653214263603058572467581954705488369923765412911577059483002952010376199208955402236287540288665581071074145872390493967022076151368881745737430192486940745621138819919095361058405760906182279604666029945596777166597739158453219614664236332645742769795548307118001723651302267069400255137968200282714110559383020564702426937930316493595602562167899106294413295863817838330210427550074910228196183996334212589793407978921407674062797015633987687050226051586864276428289996863645537748385668486163833555557855811708479452112895912299049898353087265107166984374363352734861565497846249233250694374561217536151967963546851434284521312194307833249129901722769296127758934724290548461269539929798651711562690563432666270583563679299085417937947624434223479582124893500017624543456804149168458597695606160056387431308825334269418607343723528303514526441633289139137713962441693056933575227390394005148334678078498177918019239741503835049886836034233464078128422327711093278003460494826906870032318484218990005091886129600224118493187467299144501184517184216376504011260470240271189190252255790364973418244270661948981119376609536698798147031074927212702650287442797015133695922476005448239200997602346393092202373186628262126171429506840605616348676016372750584033547921905514450531643243282031619003700634823073859649103797223518838479160392807214709682023945756682945699183812777082469636096272424045042420444465151223119753337736170919370450425461434723452020339901728609491955129057447614198924885561501863249598306630303761396453096404539462623069982027823048311855732770890231762219714303643265684780982851440476233253876487119757907919436505776106493705276820963019913123889547372744973812304617171270845961952766499602762859910091733393454596289424841893960723767640973855532360501637167410711710129411126181398253964718286498775019670365905904933907230608501641646184743110325107649631710591244746357127441108920082769131726324957865256428512976599831779963724423393476673837806463348972235019141514096448421417104322711326674024439480329367014387617969690568366648566199282476036616026707201475301161656649684998615468103352602740032498314966880778675960534515770797119921364602975873654411801649367735479791623019387709504103031288084807281915746914124642855773092459579005019004797735701237653203994193731690914258128973103667861216866979923815565190370145726795077121253599974489297623174373298945661626923639965520542885646679239146824220987740547599545235523279073426877990704011508900993145688204884767781884854401136212810780561441108492459144508014040480680745131947604455556080204625438973981062366915657061570502428305816766637475519051918900927033576287598745103266825400343397341006980087571490771684067168383044205348171041549271919626461244258909580864464402771392709290266693107535316261918658306946921205892778535157322323333880941270113440547651449548350310873318403777261488127629015345346821361032240397760536696252866908961325239346454428034374335414116814166157671741068827205400628068490105152173053911819700776909185763420713371295779810329394246250395146995636671018974927328814595162807656138534098089958555371895310169016027772656158809227037337353515128166808581025640957633185916906976461533093402341378642165203041473049214457571654515072577427197809760276533041122829199741059623036558539179678318736647080195791137456659516749765921350363323881657207545156321439182497329760779540148179099715799236967232144740642384359754418079044172464310152252765983403356788770841499174021615017244110202035366355815424001459016062138033846887272695997457703218369327658087749340035764756541565471984878277114218398408985397276812250050816359219342162412505399654333411629970418956037443379610987042147950572001507950060137375655278286421863442147101560435291692093018914283806590174316710233390206150873910354299207795992992704475773269801194850474438599142081559534606923629604136722960913322254493316825612345493414477706781879808788766721398500264905116152862246307646287156293780307245399626873917412420835309304327075065397966620240943521951665336079428304735983461797923690176741947080764290812799242389060669956328803590158429821971821991667075901334984624383724870602069898391537165381187521106251931939510286704025523011311847202369078930334404179357869733385134184000741820134471196752975295283982973147127189533684575863657888766177937978912262394551430525272105576711318504152727204555347979121198738011639260793041900210493476267286062368560967744742640763253341785728761286301794976871193267095013860219734289719648309743981551341597525059830071837095309099642125198212126115146367574536154831224635560145528036664596828531441914965774866579924635103352520529163754803002447054592556697254095349212452143801015848886289244612188494244538039028592616549227111432813114462640398393644531809961319087683355301527761927786612873084424956586900944603868233524118711509898359711182132778930451599189961329050222470018233974614416193912674180448047418068728862459174913294974158821690558672935865031827024515737141017322296308292570850234727294040103807333054879433680763402132873387333261975707169975761695693256161394564042537831678537497372751002120489132921318426269167398427449296910953948933874369804424891565857368593111269198008241477088043555921009781891995818467308858243656122919631758440562533123077304854812906478592777906670332484062607925449537853990711884676653954617902247096708851703925100978167845692077416855395793340603627266976276447424939706363511515090877339907633121794402904545287478439500615276641858906912459505080554891668711151909670157376038773473222300506023824368315447623702418348419570722276575058977836953192044231516479431013671020090355849943021489188626764377658321148929845951286204659580886253590330937301624771163216557364281976453296576383557296355817256195142016962310425217439706486226644216125305807865202137775277816731340535480834096738925906178382307464837290722901120652075257659358033513230184395704617120839613148650418890224322564224113639057311468809505139325585887837955734623242600948705869016026796652111776447773266744048108341955483068658295804580729290283175564582604355838189359879915392780834286532853552241595889469822244986035792149614755515457965247370324447708825844445134237683912941033889725128850003247258262872924555526471738701468106354638998555464222092572877768514961267159141076870723567538410350617914039229816098232804507196019155438239070484938829290796180208647579325574077512628641916068796558766255599571151792306404643382806597466250590104264709592630660818379233063507187801263075373065456973029719573637829853504175240049316998663640917768558770606317607082537636325588850195764151154154869682895634816993875401781444534683639896906855340291281640144449762482739156062390515807166383726456344758980610487213993421713997176044078856388033478925724362460071712841326595696425015476141114334315496813640275345771762328327374275363727893781658354618785806372329631351851325614881744278716804611986990007796366786772154387286729993398324892163512881886038654063403131215751272965895787996081762271837384581965962104410599953274911022237859135303057310503004070332060830796965852853521348801708521289956164186729385366841721913834146160411753434808339070547879281852504450237556189637990756155747143765589636098564814559321126659797720222524923243223830398248819575940872253416439839834150158777536053596774838229898541836268762029715166732723223174597522181305636112539917405126470009912305519592396006546367112903696167035871666204386338149279614749820673212906918831794394784943386842071426785564617075549627958468913201180561837847460709294382415612554893408173661100020976619840442026158113091842657260253027776221098362046996166217791774381086004102424011659149876524105372472464016866529020988440971318290503185960535829551722370284933075950628497643069483394367299302897598056784630296493011800493213546452424169269681868482043592702559868607909457450447212750159243552414161393906168188600719354232239022549447897118907073310398669730079895945011102575041843488335426584659716839042618015841623724434779040822298657006224118297077182977075163494812333378551702991364478985814657680816202256705489514040365018856413284085841245070568129895045738149354852999597186593995394561652188624635646296035467479392737992499408854069355780521929163306156713460581487144745053086345544413206765718015448067563257689720233386395844155220326358395777653906543158109737950334548916627131363981421450494035876620623769385333337638599104540290140997449652591518200977551504196580732271029117759948705671950915838760334167269390024421235221798748777632080532204822632717858209357471452327078599673653843021790251087403880006454429841220212192154378078677659566859534428810411718879523704998982593914221034374795732564309813780091818253514473590729569082446140106941575480768301894891486059415483806813683968779418408214323288048946395390227105539530123071959912020279508870601466405394316313358305300641984650998080241638230019210621798390306031373497930088050306659286921815086188453156457378382250752759260461835344761910552499220621083812856299985191975564423349469276350070181758272670848772563961476092256880137751506045648761452161965912030805417443440629166201720818047236170479141027467793200627076211999200453493162170537299850681754204826731721945729125063061097265543611245252363473686190893833980699204936171629422279684722786765993201905228572014579444221705165172535949894766227820461309911502333890869303916344935789690249757806659563953657327265588653659722501467974243443575890956510669871770980174771331664845287702787734330330206999446303001985321501275731426754390636520136320812977250614998918814270340208258292867173021245108461992780732676895021390469816730992888031108069724258631840374622910363078170483044645505537458469312917396259682739955304319522646138558393350802613458237608235574200102620527854434947956738873237064403046650225397301487317313796380699409594368133043765366711033046422131560096248070414706659115242970430478468450426059923405217919421402905546373107140789713105612187611925963862037359117494062323729161844290558879847552219562434922869168398752911783003140687515272436828169677298027835440961890674842876082111286882270695625176693177573439960140026469416711755690323978944278238918769346690162539886037770294903451736659534935573393726410959798504774819306239661917101878361154360009622195558854765357464701604089523692835613622186971879273505250222342766380440669562315333029516971709792509647184626747560632212450465319224082745516050075084378757505182485024685192477361525396718053569740659577423445649789294137020175425995739106459313880386874015865989322944040513132441501565350188898527825460652895178751881175427587443218268982197858159695568571010995894177300555608054077776505562131956147880807467195105349703561960706156800212775951412393408299027908603813000382604299792923499145353447946593823616468012710635281711546607588214866383369984807459484754537183667481517599598868837897122548393883870239733278161640119148387555448335349910966352546646152662371716793438196144814314284872292084279928658186415729879275978893498092288216015984487531262107440833522334048146466591260399395299934089768726896951513569466712558219124841807524788004703269284228003677395441492764719227192561673069873739485646190909581265520660761624303014222659526643524035729510257158573078705695620856148686788998655718571265485246013719418188127234604931672621619641733874024264329106286840834904078276688178456121622925192025296980154730325834266640083784175269284115615275763304114000103025851039830567322625464086048924723429852644725094460478152072193269060217809094816476376506687053337405742989357311041631543468896218896736609028980599963611270053553218236900945282753310750342031301608756393874224863687318759256745548716386281271409653187945706451605931857679241471282219447535684447886145719162321528198436449899987489913141830876935314933221064457591961902976454547423412730990964018331759336986457755726919669880431829756593717542260848810449384445238793382996280037373345737803392725235522638384925987953014351275823413862956722517608922674913112715607038398954582206342388488608779957991481430647129369540938268144404305347107974196075026612303831026202896664625663064795132094951147756289072728620414100846776932317731598442156153190428304701731024672341419775842389973233777491973561288309033084122249471932485200735748312395026740875242097148945422450323767159211176799697930951328188465909931637632417437050099129453806194738857480363822157493404301482089489592593815080527201037891471277268868867373698809024597891026475649097059599412787827753130425372629845154919312905304975426127916468931690346961415301563739381469648644284190224286229857300615918251544349850365512056698220413189347816346266986900650120865706980514406980480757898299194223942637400673071361669739067628181127014256647001326601768989247848066058321975782157729680580138685875455197825227104578140891595388302132578258389073546339906228389765619573545081404541480800571661702369599787292282903391175026247191046638309391261229095308847411126247169008009518783461560092293831670200571794487570407843068120315226766157122646606932373390016277847177807970449098576764023044171539285415080122945516659179749713017660012863502699642045784557033901493919023430496918829382075333570481705053523136367872353829441863441461650700582858396211582492773511555868509931895618147489592670565888525642702122074899157288018635245988919895327600349767249456169545564515806574030828991599723301025549326400755972929023786253981481561656047279234787487922384088387427731091078660370664091848818878737702071920082752735444528947405201467600786155884076461301243440264935025808788508088042710045031526883360595632804775535709537402801254651746605948639900450696182854085836106026494885432205694631728051494719101782907383959376243801390009412490820910216972642632640976357861856922581595241659745812707676779913672465907876737498880569955008687363288295954209830803255192271822578618613861626078978939774639283885326879608317027812108971775499459492654060536870673235480175695309675619299220470840409822018361609115823464927799536485648828550430235473948208044170776060636231217916291825698625324166179522821822632155323788399240288080504426230488600209621307597347424321520843396283644847981806473452244700855399880603584672506542725585959059672786506222488855179764055398444900791926597438143619704701368407245681374008058876946571427321380379932965851384882252062935061212049573583670617452218880689997047406385303431088642729565197597074570277241248873452404415126254711965826172409883648686962508534552353625094273846651299762075074502796262373443498710910730630537882972615630141638607476019930722732277214037912353829359897116111064366835746545312868118813493020397175390891862024783954529157906303453857877591088188810548190110137364859201132709214459594734333210026849919345622223093856563503804439187983072782042543848451238549830315085274311230650921899140618583887670525808738624067244953587723784548216845272748051780262694325219037065730837597094788439163186944955157118474655904386263821978832304631890444629247696935225752480389925126411622332746103003617798499209079640561415134105698829279687461579751834440123032781699468384781049814479569134692228467075212655372875371270575303976954486882999786497102460273474742989668883261500147769520184356229778771766180101289194955097025043358428740123908226640031609611300232219132447467267669808288756813118493691747334037237247314912813253986730833409866450603296410473761813101022496200603681105496053602848488509176930675872338379964365895958895808445272695289206274687384505090924360650459878903923521299004357666936277596237070807858375571184643393407713815892404391245011090075123593612941048021093556464011054518943072172166901450842680869850411086021850722910477273044781422766552103391994020673699260209706130602903885846850242603689556537661325505649110613109590319279452638602556510805382816046788343667667675560386097964357175986149298742222903229908761822924403060942520613686730193959748398003018037029178536515554178694458778671087005218000135985788404455443922016360146235683222460022036682470766136535739986040408916769197544926226946708137365015139027993520320061672945025732640531943866369317485479003859907707305133419065122567831127093110943388898601214125244688843169967603585859404016682177732353948043581858096642044906129858985161696462630468193252080707233372567293162428529106595259599231238091692564351298857496165152867427450303835224155527783622701504442379323249271742066964324296844737976521170377091885720246150994900479283828413719198688982690907332337354355828871438074977172841018073142224197415603661572350084720219148968257240739443331802177446054669933458756978912526407326467523722000801540269344602526629011029684277088457335112870487098468435858179296166137417268131584770045414621231972234817705767356211516053149135271787356944822211503844248829881035786060919021361521843076531926505730921198146484001476215282558310482534750304243823279443426252181498345014107528762877989279013905088033332557864970653736429800382406748148374181958953847973200000764619557505210179196914043191435087555484956890036603740044369524440895624046857847733046892667340360634385760909657508227058488699746272653662014008735161475332464078462371346902227931417889564253239413769382683724539696923690441363287560566826433455310319124696851926617352896904358574096753437066859625909684068342282212510311842252901790924640708533117029870603732626623508638944013830596827414048414475919804135302900135593223453289591833679080604032112158608159992252542035826284838972574309229948154770020015208479207282038275203321476465830460956633750228704926996505048435480893994879551179534766246046131762325400645197047754157026127740361075166260658253728204547195252055280670845485005454518214290016139399922175941640087539548732167673039115080381047728847855978087966171013430146710393721811784380157140998561800306727092894894555969939666323329558370005477682252285754279999768319719784613999924695328099640902661354800345955935276522134072712789527644006378140894516001563243017321449060429184069116011339338685738516533313097769718022946899179982419014298051601384540863596104037443830842509704999493044205388868191886529504564090797164559539970192415447213027427745629217348408763069851043605429681176026064175611844418455727299951390574889061119085871933827682048710834342930056076354342643239813158808675470293561517876762003982097012738597696926959805318029760279952026207544365107037680886567247401717164423703034441319757444248221794688875791172750957079189288888071461416793118550438207677039359005402355174145231069866159419338657650861566802423682387629016869546447755925609020184667705696247710107375528841769419357061379090725001947750169313642601979215341873237879156223709936879728243976505067819787929085496739823651968015631321782630629437726625600618558399161081511858061415155675000770407469603345149730303741185340305738747588548265739179955713976973555822480345511941226903292533455662531086772413414829124143662915902632070073037483686171134878588092114972616072612744010672073124350086314085361794058262081311290529932651787717880331766810757931845928510531889683863877037261249201621948433056338396209785334979350343762869394092634377925257519242176294235911912359926743959302428240493069600528429212607253353455601679751910773826559590835120435899246983586799989114117037334835903325133266435683167357928373121240898850859528309480053247348641233801594066379317372389489701805596807876539144878121461484347389307894390435266288078361093388339737403924168728331036254378418076142224908216385940312737187321055664581786101891977880585800392580772309575852034222450863816031786991032926590128992783824135619730559500500134771443445291564187240266662379384779490075471276285529678604122913335928381106402317031087536219661753895956299797497609257020709390945679203352162694892653651422606071458843849585224684412291834996664507466002324100368649835967314753385016456878996934165533157448107231066194686777245738599460062839272926029671897706436893393764335937671362096092182528261476935275048245923912992373875918756094482294444080071166422559579361720486575600371863117281465561929802020051676281868440857627879083003906216564462578667726343830661329094593047849629977577627327583368942232722234689457687797891502829567011398338183066027097946395703880772460437345391689596030467542649824723760613918122347589864106252282855276822160317296555435868906685419922821149454684514779701996786102101942994399717163917426590605263964523401762585380600173833901261539328510187258241937418455204846854602492382404289077031305127813247018971472150556095904643408597215698328496438662063400856124298235870516456463761394531382933167060795574626977928224071035687311238943910739180859333733500072546404845032004313151462659571803903123182001697186063485687678528369091944019086550406878723773018300185820835209554825223749593778339526347623404048539995330060465636323549758285782799361971458149285937703150470763757952937746239904954358866817219128351859553022086624719848728931936195602687170977058075002617578273787901882661086456799234097393495573717717187092027374676846142125358268638070375035730577312998749784085277855258309349483042233423719520012802257966447458342901447768813718872268845938549235862221983721096454554071362533297237549092696113320602173247354661004330704257234194029008271701256206207435752873837993576571750206859770693372325864806698845166396338081431191531083554081729827201215729541129648208242310347069232150028098689096070845102057365177250760507306331342641635553733755538252991222651111974819943179526258434580395982856116305723602969004940046679282171092986086839794394528819893286978472387814002813039045913013725073356241200298810758764953148042390151026321362253075924210681012192139591384867957054568475889257457904637065278297093620274614362368067838338472477215034761760878316629176680537939039453702494620462599131749132352372509634068235300617648487127231305899532898637153787136670077156603137506293533472610529170446923216826172537786108347094712360811429142554007166393907368311188522484021209078260229151108586726694116704365884917753359866814173600361080466633486182290008370108322782922069579536364595083305853464325817183926288228880901755164980953940761993361893059347850709217424567557450208049840324102816746669415468942096919011253671913507966918782631585203034295815292184710657763892488357234970356254421117333966653379118970841410655100303752928136871369877489518337603183465419965546182183541328935302539962830690834338304330656756222197779914802777696274085367936300068486207956475185708623934032583856818503695323231405819480358914537875234058828978211310577442593042576932680043057323219398531031024059867221256671340866832345412873080748294663965566600461701849711435698441176372905079062296508032782052263803552209968403032282838901887581267280497295202322306075063095302146065828976761334858341553588681991840457849284729179007886693383680363526081133227700259449754896355438694480394082948780762594790805984488427980946110685313213877463148882567924970632262745220681518499762888352629511255913993955478134517988784541935333472108837179038874122127514981079922580367729849044267790250899555982935141323239210298505342443382142883535588715202003027274701772030705027892573918652307369867632720099102526478570133363775447664974519845199452699071267611318356581572993991123892810519493126394045893460919492660586659279280040997156738878259230864376988944297376969482868707244571306830520620936495414298930159540591381953200350962004892253626799725645739853350139857209848513219152929971108130741417112726651794628275405404640305778313673101546659042936581351447531618726177656434107667496888282273375655427555349339808079879041267214162969118203557294408836295983998445200147378642979998295184794320491855486148587590112124348793234522956067274114591618000367249564169098871717797199263900463018751397623757495979111388141604978157796764410343312958773733979518183572380561265416901463377904289925241751705543224925058721837269603359099365495593994457793636233167885085633536828471695596893015824259797922047567707648632013430238083455860471748742519777812607055893177964036570473826152503519706290046368512011648388920647712756229069780895872086873573667592077625013662195700860395855582269154429102946216594595769076316078524480282889275803791124361361943629899615283191510016775139519081830155022126778774165143915946501399048173322184541704093274468674893349420929614722528681919930506218996655582450455489695305364907505658625434970963334611857429624630859107003291074938123825004123341011856540962372192295614671858058962781469281687809311349448600400209805057595784753650166050464040170772197223626770899533307432113136495811828652246973674708274893564872096983820745915330615360306387490211777489334369942097547599752387456005401578448257366977890767019502602082273708145766482652123710484040380868506704898771159334584914710232042500876647114879396242558862405326239089580595075786887897467805829342526542009622157185432160306710986404813084844725274944881704880046069861006422048532801830504813670618162555129284766093511634404166308588969765863424228347333573256787760289719169609974030053251730698011769925933374992032084070542642809142936300978597621697397865583547448685074778214230113436562469455230617957212166311467691268161396900424318096663686615682083084830435276155888349024943689583160245283803641657123800024607930791390512798873817698369501857586045359399761219868854377895306409192751214793073611395285604175536202808805620449231445342820526272796959128453997317109786540792459440658458934335056918351133817422823581790744217179908602937339214820945158201965692673603321464489541203270490999745944581922304974608171960179656335871700532077697191260032142534107515204129233583555577602911899318196133413241575516553094086621623760924713064370130609022251081183993547989460389992562731374014975185667715323084923870291375139226863900813532261179399762538289606008893202615129168598561720100570371644297136390981094125979909786318669909267336068719122323741929106469533282547774039888126902651805773908168410070732451914206849865405680213569697420770491023397470687565069402561388949885848314126947462138124091243706388769738261537616974518164612194685360712649917865139950019776580308780549468745561917232229716426109050564865658074413513269288698497745649834137827260454158062687393335726492823236900999390253710896690161194477177852045447768321702156342472330159916328523946996625331140495258568143844172459026470960755311763073787445977830501916623645564633526458126152060754321071655197306285303477296310529170403851086391448364768096975364928668271157119277382959187492540020767434186455527349748416060706747349446163384467908116777732735609030230439600418547011722695949254267970616105468330063526167092367246281880337270073126365921875214307769227356574077297112930753227427189951457072448638280977406993337101396550264945017648832140157317461700036919487538331032119109756612863525913124754492913330960762650911969975242067781499278614547845070975855364936480895681404832159566505101951644200363659802124017243041091767236790616260712612113025038004277324785720754306819651297421224866459799221611564736287095876371844766979077766305282653918656269145034698991856575137459433155028627522083107405770353036931701984440555490820880499207434316744253818654010992564087412223342565316762996267278281569701986090741663461915912627382868196826040524276964074195934227718581451508143692548551246369362681109219689576255871419945121145683487012374497794406300313780887296035755368309363177438360121372581830918349876063906557313460337592098418026978701969251832749122352245127416816224060986930680706705899777712149615814601649086024797247818997057730961078906769959010930347969752434800033265433743817188535122724234237729638852101957370038997997138031136063938089766928082201377678971227765314865971765183435552874484821706561741872892429358145274893129128494597819742764607546692184918241465420297116299438198629285316676830093380316508463483336062468140630211125662604178021832628634709428016065373545504836252670008600896405874441567053217916810165655137871546249621784998879031938126459418154966962122865363908737124455590123331043587082401348288324330114346313032329769915750339832864882898041261068810373901986884678571321656610334925928641443970081202592224116963115185630495365728701998739821043053721954369334386804817293714306501032015835264620713084817447924319521351666748983908365169879817244274839438602284699156262650426713223031551673789207416848429097367336247250713541908195144263285522133777353743328697950603094377556464619758469912318726354130465036574318946920939509267578391935048289660697648044167004872901559317608014193970000747831134555753528526231232261678706192934614862497136021654676426029238625366169762193551147045357966429513871286317804191587653511277792681746210967423457502080669383918580966078947545347354597993935197034718550573368801717103117000515409869845651557129437536828559658842597585846625449704784136900948385588181107373117442380229003262164681309140139023321474287633766350157197838160862519563195871537793990054426900352690847469276086833926942590834207050546300108008454278831069688443323764417810420494181865829556499638009904191850000440849812927979080959312612479151031742715182294096486648058949130506467500370981575077016089169570438981558004151682894768873801787718242443545241502083905321870630974581620853519962131712469934052295089688240130016115066255744828221213531523937500073827545909229867482611172283334243546601271390698392182904552474695709600455621622976775132054148191909337461002477786825762443944228933928542581025670715985661336902699461659116585410468256781069566883590943736663737349154026995316298610749019256716291994551833164236496293107694118599843806563664381520707952727293501255927995896432925060023436730506610951117741282965875143566042742604706066718271592457161864095257577656132598936749869297483746507550289089464271990873783456154876704268341858893667225403697598083090565570461992083793065420044512740731775442116847103005696034060972529092646149422507252800495719044091139808563413454374627632970344601793988408366648300092671370938390547449361679950846260177982704447956217000950023379262171653616473094318883012157264358077315755159281461834216880775941789630773677898578374083505469860147881731120037386869807125881967427227837967930545223304025459361487612806295374578197969136585353767792639742577508303084977237187237861196768146742288783953157091243274793515501571777741850031967290226395757988041029581325546776064210166879344330683529051426379545116872332136398670633592863081034361716859445906952538538852635661934690181425221601705912808820651040296097684089568714138931461716570233143453346859177456212826281602938654682129324311394251168880540366427365906320107299329243853346693468213833735419994560871470332574920847567842708859437707189959228328609101326194427745800793648363026246415103055218827865948041073661240169335240861516360631039453961968301393082592782623636320906097972138568705100461835501523841082396562722233343208247609293060008836343707050799385158668748096480073389176528283583194287745883341505068454264313595234303463836433066077370617653883118845209051055844469571131677675619624958160734557263606966603865339305010731960839468803494188105901709252438085691889144283609373163958753355613735778222909240036279017597871492194798477806427528177272408801872822325254478768110831792448362018415376695591112961712350323591197926632613922515643402027435781191895453543452540851388482247799999691828009973723140159155889628546750919679463376122278267052852853724666708473284605830809163541063135020497058233856485508015224453177359790282428569958623863862093182315094750295126211569914964188652393393248822939222477699844635408927024510670639661604341958907831429178219743116143866528430562728070880637259749302819343702207121227699273151843258274489345076540671789797318458553713567460267694296798490192396510246718857525041557337813037021454041627064940110571873602023888082756609255357243968514751734851747268868035904480926888008253182596582204874738824277682148342011427834473231153766086987409285136359329334496914565299465047907228176987653332641474659674656617204269321698221108855074347076764382758928077985876895935412021447190662711858769680010825640821475836839410533332886600985482967065721348698320638072784647983818100321686575926464597997770094506408322075132882854779050121226615432303640303234726105135484711800740392126971935258706032461735841979281607405646460207074528372517580535571845659724057535525768480138705807226855284561941136494514927130628544357313481252746202329120150052894442119963113981644640966367483254652344942652036082355977428107431353518895134739363935204473647308661263807665013125468774752929468810347300646790626088865551513916457057387615122194739948526618511343531597848961849132993976278215030397708402181429623184859689776633703172844567348753864667994728033688286506400704152598512508839643178173008053325318870400092705049241301247200854846534577348598774282452532625371384242313598785929236232805288864891265511524765351553734715986153367722014068778815694167136236314317765104474795615077523035760053728242921228151883652235184456702128602566917063308068102187533869776327768303939400067545689613371139055632818807121365122481149259727646958130841262284709077395098021494636290425812896067339787418144504804819584309828766285924400385183259212752088245169860514828951231286553690822069584308170021362204358132901009685454863328891099052019422074420314735131089915511016632728728229275187997907166263382227438339971294290715436534993482857545257597911095574225228031657180045950592267950077336382246035092672594415534997216423130191011039032884371826175409057485842907212308156161026969539534432466846206519402936918254520164744756303069145948861550819499825746030394642444643518630040452617225122221535691791004441922493117833432311813009732371249707312987849305082917290569390328111049178199887372776265747986074964496808004081685358572866165095199286690689956808221213817300368478829764184532544428121262399920618690223531490903958138952604791875255133594351320847807134732640521002803874103555601602756607103322594141225442668905510699436622292241906347230485486776584826245382859238871666058736817773710173395867830862319799092461403328135117390879284091233185346185383699734385914574882681748546324242997475680805424839936814523122329314877271557130804775733140493280535329102128330125622604268785902790223971721455501572364384733972550574974829552720813645375095888446524148725063444451276956137281854745895865647811275568724494938098122750179305797347514264328583229664089134468897543536595447438027855128538053939302235766099361458758181496820026652150249161402107301004964733092882534125708545085275055882228711530027386673450630955900984854163353763330831661653239278151674901294062767356668599797985093427518182724150182125891280872360263577731413056179923755727916899393858425957296599636381957365856192466679405082704594633379365838897094131472135276866289328428647889503204152572661951994110756910275985989060226675784573766168891262474891216149063327086241123274039311388063690296561120856390768993397732960274678963519500753592516200760108133765197888551281999164190184219561841024171231683317613985414919818559071664998345560037447264365882358278255917688790306430475157384665064783776924049237711083921986480972911984031487477770839534109872392056210529882931337738715549615182565171183874098724013766264262714259382223979841500708084581408101297050826625616442303701124269517306477867959254466592976991048172423432772954936430248036718679039644224972013402419584867172958365816203665033716706321395098224414395847694001105549325473497146718317460278926755380380323901038537105470620433211520277957075806190435289022086327577364404418244024746084300044287166089761430680334320867907625748229593387551317237083546873996374142607834958888968218473427060651191823127336549375609066148733237102981013277738467553568783377341319968286615938910700160991040476993571995809769346762236139362685609076561239101071379920613220205890580472812949212526928825937842671438101845184645338811610856598156071677010726787024835028263242092725933311609192586281372032416959256551043168143274835072878603743862934577955295554079256436130100149083563097218258799773464840335228521857708135476385663786341683649031871981548031265126551576747358410185829477805848111885704785953135802233138467705814806338267007499610111895380102555389818596849533544783805861621124238253504800350108636674445722029147631292965213183675292207705180492215714985928475789279180013576645531692925216954212357152253887330603277393402714500887529444475052161983360377598868005181569291061177821377164906446322549080109808971200941004123441053986673010939627600663091930326172807342597768933962308399360142466011895432376600502700683639149938218675181441472846869607262104784424723066884879191819939458348577217730797544798377008746557884108111688177120708466818435225872153976838186524739863252924947977538132107122754540776896180738532876436213297320653411969512963035300872649229473781235668352872337107874421008075659541223699390331752676187374438441343519385819200406164364041276103406054798439677429560066979085077386653609404668958811771647936557397979118088842051380095374366424259667839754308410748537342037195413187324673903623898368025232724914847758818857299381490157804319316617705709394471493835209296152367657616568313387119683201541794189176130400686955251070331761711085564389891145320963335444622891802855098092359717950976808987295861932498599673108569438533440990735161977402004219718391155187717738967410154213685684834030479609686364855972027706797165336794319343743235398550146271105187228849828850235275022408985603880283727322981219752554713758030509149142474113655010986951741993597489741790512700852717368763423706623588996123687485729361235947347953759178528417471634761341065577577819360789209154371719849560596087185464875969080813776105643564709527812151499890102808135780755680427120575818323660565098857846192080607324051872555023583665079779937231056845813186970492642364547352774734597488487834191758700676984358086027049764456021853227342457323778242472694379022077342234276797974561532314029608214405803035886581689068508103684759839265794127304007662011463818426749778703801871020637289475528358670860447429397225497924115151544697214121610848551785281524305951301766514815902806009970009132965113076611853810848231348156141315571215467355982286301232382383997975971049981071607418587500456461881266527442964725933393795835747165077273753427818964288335815075311112286378719308204321418546250694855446106450067518739857177023890265617089866435275769610571467569443353359964630263025436711877833742092542792041735313360806619987301368051734468846014509194179059632023093967318563961638766376833650696701744178869777311104347894959540606906256955602903679190529755415454920875013968640388079181190616625948973551864454634018445719583251961005843520907906406719136991220914226205389222733207303315264410101087434082853596547741030577200097902247805770428502261937795984411637050809761030694421664728288878939083367621021396223923245727467629971282589827513942687062240426701931778132847037494665007409760699189514096716355076456608049294583350418902206491384328195111516934107838086158403212505472723873790698559937867683175090387394179139610471598159332606818769526183498233684246935252320687445804692995606849022850113449569175181182143261299285561907130007635089002585274518838048023899559501458298991792670422867046219084123171112778259663461026972136518533427067485674638072991095306257989810932180875845798424371808668196637957801435720603577839849508327229707742503368951437230545083860181129382097950824997275471884076367246175759859862586361253630292047361471573766172952077269157071358398658227215043569218387160364076093637785921244871016823003000488260995857720178307061700292556298201152054083326814885772249477286901374832778660555308598109555498782787263289938187982029494848093941769373705382549171107354774984757003863404867343993968769490728454122235870044615063064397329618324832244911260193850143981129389150942533497122191243147637477683074567453255602902512259364671162425159377348208924106579069958420613759527834231700370034154781116959746496229032534764547591776196103561761746434823854183956375442849539622318252339566286323939783302830893976761374387260977188895415940975070208841478213306275265010200471369754945608872676547685052658260310001613579854347654658311601121901888602071391786369075605842285443032035611280375846872975543777287814599764240768268301845707069552324867045859073265001123993524410406771931900233440308520182460267296626352557072702177210055037562544351649947955646428821045194576654243827518885267996159397634208839023044735960747558275554086915469585634741590700680489848998942781712563159794536335749029015194657269923556784058726411136371266250795890161007064690672532592255279121556954882337159178574805039592565952036415730735266989435910199783783939509093584135790325593619460108122367713241750340988099901799625865310044342136556386069743625005730030280067306241961105165523286656670452305347117948356245843122178230227158736214580505625719446679230740814556346766612853032464184030959493634637885527408451280207285408204397550989588837733629603796541987333833766671073729547126689407274773376299999857784963450477479109414015586139928890185565944831909005034570696501202705583342369974020159822294533044374097294356959071608540129879518199066391430662463238436217064660855722490239670727749563557836805467795535915078994125637010013236315334249665950704484052477585127499989154592426571704624305787919348294313159940497133532961148023487572665123433364876050887632126457766528140283223918220117064106705228743515786903710149686344706831297733784059316782231955937987577204774782647675658225195101395597254186690474198201902687508886019312282691777089648485238763933283810373307130664330577786819352326674220342621376292944920665846945891941931593079718022782705516962959011298325090221379015329452788408974054206390530107420482794814896138217887606046462590756195221556238733218916984212311243513016810665223979288632166604544654810924138269593699505156172809307458511217902757815633213820488013803790916497742412296938171995319307775344688275293759384839681119608354694252632148327621928659580759422612196386753749876783008863761442320195337340552445841119994354242315468253189131532874964719961173572404639687326228748268482590199418789352291560690642559788390685787090976287621347236433377599641755396430433603117676449124709647991540602261551938314525179646849630784728732260803016441397097656097612780428946566624293798621231585858141777673785568669697658677082916056745561772196131398566118578924464211906400757607849653010666007167316414547573594374154997224307224765563391242589381361766611301036146253111943802680270913213406466591488425483993017678175939814012823530913145187199338445747257698647805655892048777978874654528419481832111321529548538316913438142638320008104618830154884020996678593260605652997375625119598795241548129735232047004972620325111948902972634952573271083698789163107896127115992446578145927985259653278532923208199019014631735648777747605820212093297410086841321899214524689532345090407561796071204581119308304040586160921172777795623490837175653839461905099993309465804721698563438089964263885263819979281389259673105920766723349169859441777810609672549347506325805307282607033961563064395833530510221853976025335324867394675347839517393734130759412633464543294516078134232864781880717066832549045014113174551774308919079186711482846260467565473955890912459351893598044663875655964920887338544033951977147108802259243747598481363797598093070483629059640071201308636037167534217441684004167751462355268594261202688601230504438880269738422627419897284006285510192125265494027743696321324887789848156800810854350450549816297606205460382369579705388201600624242197335360707229520640021217977777002220828384770245855509382509315349288259390361305942869971689117084030007333740438669023690133500677306287882579162668199191497194750569177086580115232939605963125732388920835505365606473050228035915823358405447471012034892210350740843665168327090209737859670174225927217626054786975393945052965880808709178052193215936316885051562343478474955893853570191187610405770237841916841732738663992550596477798226755008250708176949579069109411633103560771341479469147486002104682122339299354162096724720504074314164262800535427314520042707780233300705900171808136377972612117518894512824154014027329019877652229425229503531287919639135526900723800970987185839803949452813908236174108871802657369431410913949081651867775953135519926268786575723465954330936534772436753559651932081261643008860501040151993171947491226815398818259586675260394925638561898695737763876902802427423950948847245001964132777068848324766790934677544833774300219134203534982309197944847981477695964054977125834915386055557175811174273806162441182026031069266819563456086848513725699168766296682700657099646406138768943380269860794690389220611326429034570663924884564144568323474353836602348196960765966089184483596038724667072147569275232793278351310731719048790495522668934839385413687485839528849360485525637638516218325075633551335450756930484222391172183927865111035135764217654870072616483136006998859603404749645103254455952780802447940582226020222377113142045911287399903531744661814387676305029463482869302253746226364743793709472815601150997602239674951490517145592850347683890797528381534508120142555510452178281122870233334294945671142105713508535643793344972234869079463094238033623255503045090598599773290216392298222537054290259703541396412975686135926016879917206582167949994567653268790792788288878379185000211199444464583006040129888037094998210207237262505904241363135839480838670205511458673392853178181727813239222488693601081885828297194298058818338076692902976844828628020086421462827112721294278671573973714764457069427055022775962515671881809726394404683098230219207955334935197443745973464738029971891799287366174965180699065685258994269211320433545611753413621875878782826164305693955896280904779140555452308838247174481174946096587766651640279647400299393380497861775670066608392709271201834096892413595780674692019147436776187763825478019696364285300152539805584610473017567112459234071946207092294377794462676169058342171929768754236285954114028532542407567228209442380856304967834402048894619318441432125838925716145228006698808819931865934613444946310285390378666660712403673043366194578320471853618979161612793859073170168422341204829281061083034820522620514280559419512811306983041523395828195258115632896849490120811346730128530806473992587386374325960547469347591092233880958131698958923435570204215816692045245029543895149711535430854875172577677254567721295419470000931596045732980400779880824886001178457947158001217110904034872733786948462178167240469665709847037998494989565387463456189816884138311494189877151106941364299579535160841944627222259269664357165433154568660950979245314441509778918625083417397490831519123324626428805576003242036403716486670004386916244102462485311032959903877580655189619756833819063484549220507107869746237995772633273997163610900951588624166673683433881979415049381167044093003557418996687490833561607678610708027434882820173328754113981310042253609113118312387457280057158212881952747277820996109123239403402852344584557224686254515849150302736304490690739462433203086692479304022889940055621104525064807842563734853091001750872362680748181987210520563217663598492474375618099169435524684373292593896656298533387857999155965371720859534157337810247086360205313515961120585227830713050925759629733564956456763116797973364812092695871056470747978734870730788930311824377057290616503806447360223727764061648963137618754858382859936581458705362614495759579849914367091778246699919986429419721147666213044564642928737588337586579574808117661089335126290283079481423386265584611047006912968291854956544839168698285464272821687732666205148092506326624854195244816664925094753977780636920412848179151756438598193051797785312963692665640453946474675210469810574454813266034638256738932461267646465033257162491662624055623080988313797956226126278565229054549607117339800902729446198517688497825320310682636195674573645009278864236060724483038978160461907695405614627794613166587613046734677936212555156124095880006993808197064167611952397181166291457237934595691323044595293541642014861103126035277935742613679713376857582362614154085758768011681699376151903651597031274157483262460251922050792594163235400413370934257733874422676178734689487451846474303693440571343895556587000124138094366670414748380580842271027449078848277490320025993015714502694553031123795451711691137139400201048731551763246507755492071503727230717660640717391896192025565450566361246650590727997655857880447936987201725925933584871669991752047947057127850050704066575228227943487734601736877815581524841913399039486234009451669957758675959894308706766007074587737806429732725472577236643057161904428388610212952454102736954243335520407279677415867108703260190965694013340556044860005084912625063611317594166845776618906227306235813647775044644489394437864908978856160619722815316479692287294722337957895748327469755840052171999811413234174683665934746262524712804864525073742119317594470872921122136133437094881537708272228853576872917489632917834402498565470363251620423002103338721022723009763012017267285466197982648858472121078837472228722596510071416073470141000362299291418722454141265987056839194125841026007812782757498417530905197805149684397982370019586914636708436606110832834077114151355918552837399591281038478119823556143142318208103291435082477444273934928410243218921252216963950501769971476863129047270224397686604207167889734031399140790114131514008344874198768020477832761721045746950930433998896535250040323246417075489167584521346572025202542836882447984155883015345472861419713595620638221294228353050375278956236080413160164218128988326848477637841266148819759681788108380095092094735859108405248045961433851765282235490128274831863680908909642243470674280820069107746518383002938769407441927527149672119676361366117472578116982720353754132908819027461894217035927832879705134833356132065362272417207644458093071533526380601232358630426116141126719226991170394403911963545047851357296551564761791614697469636669722912146065171276911238595764970954899348898936787814254835413077738793726436394334478361108419039981652072549616380266525343191188820120820825462680545109283822202699707073333131881169627156088675520985936044297364203764643249356831048282943576775560167543723595187427461193675444724278102414668439949558855557435319772027518892304261958227090426634071022575350604252780036105699878349977048799949313617649275251756071937393340021804795804774459737139144197188620211905344268425708285915856121301929847356864795917022047285332798487110115561104456559283626571742349227869833196300646150047526705924392568897087781669386952531447744388111208748358998676236488337017978513232099959995316942349898850315568073892013370587829297899314948378548530074238291459420468533062103846937266161839435989755829753929891186703894420726607599576648669179207077276571288962086848153702244788782884685204493773075221969190931472085420358494065237147811945957005730285630853932635856349801860768768403202721152345592707683341428179448869109607086003635537110769433253324636847606082195934784930626946318086402987985694505188060364337288934895108274843421476905210610900185769432836513332096024417616597081428101356256688462761512310947099728738627847839560294984564111888989234575556994459619386114531353951196709847645085856666615298510554127546264163300744316360870444905709253868909322274465082580636427892900460030196998207994194570370033387731423649724469803041845378116062208398259592499605162406225311282458166649784498073143229572078742079635845723539300142326156156017834029566163212482245962133260873617639448563767859315236016930548745395050754199045552301684510879613533920361133062549975132396089499718376831077827176501391298806320053153867056127783170511346614507002568569346107963994458468416793203384984157055826362163260603436445815414944723285417876757176746140283173862313196076246545381577700096529338162243005405691629583347333512844495706622882730501221506355818071647938769474007840941880683041898352920931913895301600970014064613400757797945390277243903029120333260455046651640261211005256480585591547981075633518635611495990031897925403426102785976369685905519713605007126325388513449685493073327853622005654634052486171417024661131044114930974459335924727847149572441729317222575937244067295511863938461772533976227117046050209047063322245729727545071496685707118268208094143338485151026387047480016043199556322816623183535646215844339764515705394205500846124931469308980665951416384334543938259611045126666272066692097504898383455628739726193995012969954902176285111116628254863458123380937532076857879529522984279679812426087017955586459689682077057605404207424002560464300854430343141011404192864674066480873769744191233257369355731093119979864613223427791415942968251310037459004118199466982447881270009510669656529731383509181920353091793703042867971419369590110047775574100289801251382496128242012678867695744661275420458979856277073357158580167013545418275122489285858305067660008468385621530205719997616893035885129747529571286202673965655595962043536838969792278939021322277478918311971508778262780968368027221065171012676119965627735146251330354740373771737901780161296333538112542159405266095498252375450944778892374992435200824058561407976835073262105233330133745673487903142555541438921701649096926629126733785850659095355485575446617272396004297042120700878190895742549784567222470316468274077571555389836595975189576388854056668566290095415341815943211006038960694119356179470192190853037296377725110073621323329181475560478515041058359729462062546673938732752748106187386329828997123707021543536816031395413300841150380033088510287933411445966140133698662197691164886087438583588861377408745150401677232483686797913746166434652089933673051254711181546108390819665697823204525639887778749064815775907130562190753444009821542047166085946958592794764792937982221307423506939426636660579149114896730844379813222341889028801841592323404460043107568832153630138398756987794062862286250030154720157986770696887578388065414600982624068202383360794652825649109484158818332251918502187299899525432992700078333210101010771389317283609103683796398498741880967401373562401379275558330905792795490968145408626207214848230332845520795630856597238088157288149383007175290190012338921505163185842173741753724915377320190290041781924188873159346434676897261538429070459501511812831342884345105489503467188892684684728839246734448282629994031820517354333236014062593364988257750801699623285299753737379534342621315040809519973708283167233876888342234334197888169774310132916043937667365690299524912732627380339655572915162453009246814100042810236345977809543282944216357596729111443087766766234636835614194767225601361453849240280507991068900974748377074098034773107276743871715381703422313737612060092037381011569402939197926684004222183338452946742693104370862830955259551632874850079436171590194516615429816655161950546980930008156601185423785362826041091529526282844722781528049187849381038294554191065700277774210265334320410462515102094077119810663229344759204917489718930233277265012550509223304503627515770919137969427297959009519108635884579707009145124025350737248877627922063805241895874214248923039465989758784255654942703558778259780459435796636395906427961423520870644490987598546508055985184021799024641718178297672337781291402241303533383683512754133859702058946168967728560493222029917507900155865445605484407318429826258856894968973513475652089759449773588458815404162091202921188081169371903088949382363425226923918347711430655514909496896652652767927225878706016957273176410518326993972488164917521759186797358932200103361302277462182712802742437596260280172680475305221809921319014044679686589310522095082493968241445803348957607935902076785945921239621378079328053368201916571738562407236741323321455913521834612526395303777854363635931520159750797370765305072380938106276773377807428247848667943479506450845783172268627659338076196147672086715835536213805882863767088357681685066288980777362160837188791554870121523079083405090145311942735000834860916708575176044976277201991636643924008320522168848763927581379982635530037244510676299888793807578296745114665107304401255837022563880567671309063841085915595511518003559426563308478791489453887362290361441195408328989429842331732815336288177038157773785189763331060994099695864115284016368172843605699103729950143503946934939193035297807112894100167198924757436411614430880267794384790687331838930279713458314291292071921567903183879891516580030767815890004644260362807477576932821792453452110676506044931563523385545709251245895131194166234131071360652955815139598441190135634139337128787037090458152257618716724600644795879211266619287891821228971370966144434584741802104838676165291985167959978807244934868648656627883353463373370375699115279514461086986602965725202067534005475041518110663349332675538719322746390833288623948022668876745791951793665852637624984702924164693538613871543949829623028001925008446883333614328963215884916160271427811721597080562258278233096193297677980816058046133511237614513316628578500529226292352260957297987496508696720016510468736559671749849449448437181059841510374871547409330437017494063091216375905553363381855636024876875052372597537086769362028131366341808658565742629498195189636389594651628226398468492051709907739466569094140428669436790726662347008759094618731664898558133925055731485266284136380240143483672355786160655812875162840297616445871152952905960155312865564031970198570909424077105894308295665337156874957711563213998253736537302287736489352765039926934615841672429611551900815409120019009914614050628725085985450470967505801767978341330042241612576637072065503071301322126283611535531108838507300781274322808841685922057829259620629783504456469372771446250403106296496116070851714639053601879273673660825904494603551777526632759019153121999960038983650380011219128186632071341218263034677854213287362713389938715016209054681270603042745386704995568609854488369748752264680935454503134397714331111147094723220063535058487674619257255329459308877449308209223693141159606088571389636090358970813401551548913372320778754983382117580392772851982700467506244016996971643971883126432224727848175108522328806082090981803036419859620915319107990057802712650611305890940159615142814469948145708787108432437521949673354013055927070352861167367495244164404495345719309175238752805108554381659216620119713383651841059759498590876522359978401191020291616288368931548812119904248644864301973518458689394449855355340054412297629498534232069596285819781774815056711367986128394943538508539612361113199137709820249239478141397457753212743692437873523785625756025924046618103776887431440753757666253282378972602419760286334389912399049335609277597712549850026163736257400045966687801482028619738129991778390220590548722539282007443380408573226803823058979980886762026664238468797465110659124057409909560834107754436175752589812182399257281847184750382449163379363797475895897990673577632841722705647750700109655251471090042012348739030406109823425918619507344715624253876577235937642798348559106702444581907035526974779604744484997129359920710069889679696304304854977319753346338698530816058090322791350523517671545129228804536795955161059383759246070309258178189526746684428221519117325539229472706158957544412311634253054800576090872018921375718359433367670477750549160556243540900582871925824647278250060676992170001311098633814440097326227429092101449294827161998259104050006172809569899071207126391070530419352369455972645687639508757701473269863966619377427042096164642959171311141658298393910204177206497021598510336562319463555106223900412851394182249252786880268801476502207683040026457153327882345401057469589410947676450871991223001841141220469580935446167874773045442574331733560591248330903118066608453100029290980065462679809442356304211142300763885961442513730224691409327991425372302201811372790963012020685033362294489203870950599752833612000242669930460688087314060816170024237650013919546321529883711015425574689100268826781119430594325169415549835071440396266497402540513997753375880039152284997731917416462541314992572219894837584093798057103622535902763140551217306130185211982844462289644638219375556702628928794077642645339330728439275159149104646946766327553591557200920531537335675695560807514550914996409063035693826428357544770191388949407450358057028630565399046343223086561182338372323597552259879349907275633652542631535228959583758397062863310749037090591951447059330946982562182095611751951902696531997208751937941114562688568286212930800174561311528165564380904323524679348542471891179570012943879537917768867116665576989269802514227235508066417438009735834258627140434818052827847898691254266719238631712935237277450679716639276126623488862413379505183911566929310726332783692440815415482985974555572649303608902306281259322842044593205217356418924691156689089207159981890420456566828847605343957742047768783038695490013303283304443534731647987506156658548500047842245202776792237283345913193623227519760492627696319797379521292833290153755806016119124809349554994289314744970603357594596608303829057636964578453605183719273985661200378673933039638759110717885364106022039359768651332745212932918021601790405627355527380301211845029733568045585537123615398059532128739727277740153741227897423994856926956891755569342435147712221433514117113454305224896044675386441311113493489145855683170434044737587359568883250411312700402570414621636923420568169186219763807991526569845420260142235356828357697975780540210917427949548899111781305159253183887639912575844546484376529356802773279879993344808978850446454722180353695104866599852312181671831365547366434751626900236807776093636773717055763797894867131522533477313228957518636451948754943299382565423254541894598123717361763118999769505507037974586118857953367388300020272537077555019958470443004292538787627979189313323229992488356340843116011877278835766096665362849040703553665307863469453406262922287601053784302436527408240124051659769998681563633949147884148201544181112993292508606932180431803833131139302278194056879512587254580750522010037440691223904582523981621397802751678208966226704744823574150430362091556589185954097988562644555038135087985038550962658867313088868953109957852817726366550988644882966133155868870035682711702306197653645009760568645745893874945096095892444527965296646804982545012287759970178470677540207645613556234206269117318360587139546793602484868293807692597068642357113948698163939296974108442185620151389213853982193509550718747659243728039848994267620640130964777431845359058510849753197052463301482088411688743200182781761949129112967539834235676048041736243929599141653167782020313169879078368615405759786753571751913347394677789916282122386813615685590701015669363631466042071614030999074655772962237875253903466997671352990643918962868875699759999742963492400495019629003940930946770539322425104581386013346486075795391772566967251996178195705834447434568739352903745258327048877457678316662238148376354669925088306741218974969826536427353983715330518105778816499303066207479909109566931560998277015713224737252630334072698352400811540070314047839240437894470210719557220820863982931232994703863336309192144449107817615098330190157036303897327776992467146226238301823875947825546232200852481118299641955289576603362839023521471525689760267768551885899245434974325718079129526337837680330947252927844297088888878688521672066239719620979915766846039444417442201868838486487136465608889607211030386237990398064587605957499783897151187139517380599698130163848636214985443889236512714168586523084726863245859971848631908084909581799737918136835694276521799664206533538198398410167388616677102908208920283273573908912569976504301018520972869637559489030717968741434937119559107793328968156496996469481823399894243416280220948440752978676120089374990514073782272333668814875786060870545923631740847132603599989577672867971532568037694993531610060934081830915174348896007686431109670440625257951645877883471371003576039541107614601878289034870214495180167284936897193064320217494912765656617607320506980709651296222240911561049249540425037185174982970716539904344058669427683707699492821421328702770457989593880621063946962962526352278925913219624975912055240565635370968475893157110138943605738221638910899814293770933611048559071937161979587987770446077297360228653182338110480604857770383244315258997208597698178934889439138803173373891006754912031101742419818722488792000746624997627004817465136959828383872576463963921397015102905975886963214214698192491393636939381490869383568829475860533903960175007593856240019905429770801548306908589247653348486811474925253790187061042449011385954360717172482379878086922643008732242675120735775253877424494149115311359015378787314677451700015237358546948327844717433199566886615623714697219808958445131014780044693671270552033236907611092556619360498495555267925637839084801912160010882753367876863675368493199589444143760824743374427148004903634940157761484011998005722977113806103950466836691510369753883842785442565709454960402407601169029459517127355866071141142555917680048810784966163138562145557500657699042032250109869044949063592863466612430775453870691427393384913988076571983422849661079386359752423775565794468810980104426022703711744835253049049506917821204552105697217326542933695535211666269233426434882162227096397322337926723963895322445628932275812695916136583746978586428770123525387980875774032740320542632151475726967884208132734505885277979807612994298497116700997165930544232643063046083130051500375291890096364845875964829493414168691007413677050453445342627160861069279131393709303723519584030596317255160903166345757411143220252678211443792744589343993673122258362232982373909547341095463680060252205148894924147863407790611591543497424976781255343952082176538790635621723875665289808155822464417843429986584116027771182727171363788289219812530407981000256157971463038937116322021877918469858940900770345953238557194210898179569853976762857482964487047568251729097138370809909941041125803768624525730111054497795246973471766832204328456403388040146476144018030926997531175449501167857106738503044641020553242621777383069734747831100920044150423840906796666185571811460579295611672272593311572753290199776834921891563081281182701290300588824653441674177497630489857378757883435385502923093918276988266364583582726714663128362287695145489849955549315327170540470669833402907979605828579339852227631870895041408320809080234766429492868817210623444132357300316864440453777344898321682311777699784718737868843370349638287622667020517245843273079285655802384602128803180537198764955824957680933665489620979610190427880207831571460169279079132649639067660573585256708610741088022182537049256968325074444110191252602662928594046584694340536248430044818367393104739092215083570381768498224768664556846150877976486694642577535629611038336989179034157464016606316399069906733705905249480944256170782592437106041328808178471079149798260102910546195567221673315737175472459012408207647852437245134302867630848301946711812854201415997832910597365885779825999069632769684872001381771583749731495253257605611553582393054019138762464203515093075109514846465572166248349904991201485861866390868837719571812569396038440393821092462487255169361126016220647560333548449900563935927077144693612935629745311400460649485431157394280899010671670967257558586733659730964807907169342922508382776340951532244833404106308325767184898518375517555656706477013758601454402142408319429664355895812972872626023482318259082993749452735452568494929640851939286138870901074093454561381570118206905924807762540322168538273704947476375666935034195072954809892087489014437006492510117153090360014787217066745410287546728271901181994679260003702321382049263112237339505385968400089551689807225192538743634532396155240671684860729456481325007249757008170523328024974765094356566759062860889943350709513392894185522789697559376298055857418410783916577692358485703108110298078088034519338915533648632750725755737406829132546062745184487526364942780716775203056082729673782151657111148908920363889057257871591548286367685430315775572096983248137062970191921435306872932382219620637825900247247295728795308455134414443110248093556880485430956192270079010062110354062359686686714413435503505311603598981859889266661479703691041722889911001001602912921375249110789923792456841197672299984376511236927345167785233573730399454176230496725893974030820925233332906282229093659405278030361264327347585700576986483031068460593838297238165115699324954073568436199558082608247658929083424235846097348904408228390413803611317892857393987944335124668940986638220699540197317596054403839853403223385020248025588265149916711902992762407168580266857076900339214121549289842886260811413397132206523855825887086820639902430899923541589940875053140097988399244428018629437578399284063477508829373994022321941046893191481406971350777147447102895576630666429884860515907978311962187846201344687704345525551713489083273330410808595362456533066040800491962312586500169348428456692828743382540903813611577719461899275319520429215465636230552594974394356681202819520904187494843697195775760130974847004105911920795770209190740056195254796850341429579440786255646789630489534669068033584612051079854815218886998306204204136960507360514599542023359251016510748077422621847382735533139348973054798413459065538516112694440298960846293079160163592690286584514007977013752935583921323454268490518107734971498317106348089328813151427375275930247865631408222946702626930149775258158098010929697327052407792908158821820326938308903035379192621304458360072898426816472647711249511910640515723365420706659158885079984603355138889919936195079396169458322309523947364217586929579304295752001874407095029040154796172618741537496587347049897667390751069115635233034162659154182183378783027299470394323256974330781508531136498918874883037879464803260169081470586471449934601136151049521271749539363468865213409904560513094696086798353896028897720935046330968232457678578669847878350209795467918974600869529086155195878730095141599748980833295843163304225577419980439126362247146786283191606694290699409596819998291196145149728842750421948854648983534783094562858302877123314003689743432729455633531139513399926345733599896757883121240689247126638706141539089421398898292683842861116262911393813914063906848795908935268483596890839264996773927083331103137448127609633443982338505313835942123376411860980931865879629338790764448817872019977946916904718286062011667097933480837605701470667576649444880021569470095235336734400830954979583510489351699350047570404388803014973898253147960592964295613152650106563920970919613862124365879277702536715010105378571089163519964187349157091135338693457313287533991699333833894938547333004725906513844717880793886354391158691041185347472009229801210811589228575900934498426326363456586046346139256203272453681620335917279001436380065126392443829664574491966665506443079246018992248476979827576701329759558496157298618037906126105905460958406802290719600146812624465996729684684063366859463493126994458042709180200644111349502801142601823364632650245402336152091283144460110355590986614069585818675643029247820805025008725408078953617828840492815973746283959066933225166046575840024271687183485915859572082742510329252162778156605727728527308502518167971171889920099641128428256292789340399225725285217894820029981166683894383965065315436953718968956036116131040489901923619921889360447980484609341322546073325772314996376270010070188808012746488721429389064204475213437183723626804410455538055987958355513598017818517999951207850050987527158289359390726768744431057917607492545513275298281878568870740139536605096701499011682709467873516169842156275657216340826849043716815714208317240399335823487769083846949237560226184499459827397214048589201668648756101609091204505643645988826994271627094498552837678073934192198805466786096591803466038470709947730830374284357764780200539645655574123503489212627292022351047417194129071691899258717533560699502767392699538366124741971528316056435304004154595813738723200013741482131053478001606064471269508978078835598592944411654587574300493543798711403777318572763807914660246550105902580424678907282930846466411460444176616010200091949939506180599531170843341900484426296124837569665262894926140682370400045259750081515684890999722426935121775687515196843863012341545215204608875132533288823350638207213404496405148992839193945001692695618773134513891656287228604919762173229517575463350821819101020954639283226806440545941884895865923965231025355751554074904382406139071556398243309876508157066338313713925901649330231515701782511096171654874951042612039023926661390893405313198483525349971860269545413131194468193837233940313371037761727298837714223915856094197491379130712958591485341453982499383106253409610138216161088820742048059791735693121485127770908625806068595975410257998149941638018838650806728789081179300412087006756186365437485463030531399570917681604126955304080823821499948139179378849248190010041153446662476642662212934247006810723695720540739691024101855200271019444898346087329072952461946735898453229159708933423660992173297434646064116907581623591221553708342218218387185060511850817439594112886194682049171701899193501341613132519396325050680563226645758493459042645591664061622354056038912639429509490567420396244477619940390539033200083969031232099959160523453707192339309980407231470499317697996764048702789281002850806948058600584365114298479602635190667962345347568548832032382019903372059449834166472955861169187743469663676226469490619896367899753183497011223156270063149125450069037008947879371248837683560700401042128187006938006102513545021934332682952266316774254760490236736519034275316652728239586697314033983698538339422368677443701132161183940704824304282635047993160445010111124773348107639974578625554337629713431885484271596677087287957824266050532694162481258969742585499823567348650164459857302660937812515203866817215945666000722453916745227267657523687380586644380592143261728634063639520463545174864565603995234134680612607700241882778305573586199358652320218992907248244108840568173065408296871223585197919096127271064218798288744532519533142575450407068620165086946099795619485697683297723329243281664449624082835482970923165680471769144329127610348227884173675430330486294476731328196619834241684877571787997155842630180346578200759770243287293414802009050127862950875897609561180754236592699276376210836516407263067239572628551717894807201581404160962024845896129207136291244031778134129314967532022162060939373224918928798929521038625485717517910692726590596376321806856218396635224901601309081540107462583394902526594757348956319484458740389282763273162412710779593379467142351253767623867935075093067309460176958887546646054110562523748698837197456069319330307371486802050837220320252954829698427422139024552366318264436372310283696076654152233759427805043054600568004889430017376605524059820473570462631727360823204251401389037452058686376900625001514376670279293719237424984418179436487582071946546586290594321143307573498910838983779127235335226992444253007286565676579059593390656267496112137844894466363376922977984759192910737174079632765559280791966814551059886223732069360376007583617991448111029446938411944201475512658073821838328902029921928549110721147536133006351573823014827975731453984255683659141011338355009478726152420563975874232706742832158040880266068357746064693431559895421435917282247521328136695121469007948099977431858851708786887184095148172588674219366696442578622868241393613295723412873197400227105110781552803389490553707040559339309235892066902554755126475116325320415705614053864706011656313458114571046484421380047900936480775570778101381921400824168874989594769172306008498919854231435339028603253666304716848699541434779983111100279559797393493401589645474714877006824854504012572050361519854643015517622313841222864704788385421603110009203826047472792502841769450963738621902909742226386353851757258821742853464307117654727972853225586641818924316780264911999291530038797538655835886513809744369507453292304131033024065090905357220259911856901394203999848641315002641006424838451278005427214067617509987020998337955247283339456704083125953295238719289024504001841195047937337901917590955949432836819257565078479482386073063629913504485618665964729009386365245326342794391004173660530869815580761069911243100457686076299980412548100758244623898740078282409391164164799316564921031729698738961339724220190050794816702432191765991397981066804850292025828755327800215417485431517759855651201967192751039145253715008634300968632812190574984723556169466022333504281949977142492564002413761007414706790579110302516715990422369140371905069106571950704657008454995701655394571792468659963610369651081788464169900748147053494511509697759385971240705981792905773630921270620497652242050363705775618378368154153316402753402790829170240039931445684314639450592811065245730053709104576649952325243662890386479959181750781708060160231463374587631979869193263081944115713575498588045841390179931273097989173380924972172547037948997165689085449510243072370685375267422678770343221995641650955493215327371207215200115805448722543613222818386005771701893043387582829395994944591710846140767055986217495378537964229084944969090482122142986077727354835932775562295244651181424524406804378744472249278911570144565065272220816018030851916481215216488510473912429473964892899317673029701261602507639246771682695547169768111177317004250072241386079293836136116033895255669031203922642866969340259405046764142919705885716801931891721516750363081789155153939313782877828269401193516359451982179987980615029283224139830814558075747662419233730736339969082482514945715214766936950625698377239418139233623468231507766926128537961384119270373526719516610589799528254509027034612384731899041689548153078938052460020241537575884993388738354655456481520294994188106169063575912628566814783056417120644706716814678694881576713974972814604515445822877904919564254350104911014931024872431076685187544690420383435742412265732685768779760478276561824496278457805432234982228772063743388792072132362041035049432895056159021315329731901663451391857571552098995673597001958209445648632863106685538222057136955340167406295165341950898448832148912851295307618152259109684848252743578149875728361984516796412712664757942209032260403291141261778067588605471055404928076446238071067054625343652657571066524245375429328522670811714233118365911454452674092971448594478169538773077905538712607609462677989521009540804424045212427913803543257409108540441626334126686533313448612164159295544958083049501825944888956576104135334354383421464332219884121010878587594799169822793668808580844162010256368894437691160227265409474331731012798044658864311506290994021398942598883948908822734910678384467243094017239335894037961997920542294706709659248004666950814316451121865777362842969897751725178114705415200574937718665711985754445891885799696972769254789153659603798956131654702790179623207118101360540927461112729446642053052653808746564461812604239234829696911096149236074879286101539981783861864305315628541798199429979339473182882889564946268345639230764583985411431145358956766356596476736884120910878312684975441583511507813642013057641784679405317449750687251621202136021300469279500920704104139295487805190289464332387131778378937005864039077713178065767448646856551158459967978904833557210633928478831550698860200811258292274166708766726674164656689916261590053307993082492058922111076536670311773761317740683809451232020874462644749530827354518826657956075448986435008920230689412492909271866962156807317639744167422243631212746031289977288526611692149236463082479312009275299183349471134735266638525378974506212286833540118366811452770193153884421585539812873128132962923343982688300100932051457902758754458276613493610748167278667269318971876754383606316564082083489866727643599457081483991022469133231521660951909999391544526057748108975410717281907657039828865032026363268634788575487457176108980897607786190161416812108586764287967642369398223157700127409470572154241904518304599500509988784462231346062134217059618055620092122317598999738949818120384384268899201142031691464208913345139269843482232544161560607246952648900105486202066762937354343653198559846292223680406648780010733567804810689486296203902063967618384344880465603563089315809168782173645943758559866132601983423043274922097110448669884532306077031488756232525909805415170392503615534273368404683907907457159907120449012304713229830912778061886546300839639960612726636105802321306804074350698676459034803434410526565728188010546792259313493864049112590866762818395936994410444389417636058995890972706697579536156335181737119600346634029607331618391188903640749592547493025574129670239113729951545880726091446524804388643852982953050691138577879898631009200336161437759680915265448209307126338202277544454636669469737226962773894849013985047281905368505015438942424423431851851866286983703263523942056615352533130377379132004987297434651278546247152009775659509578578167498219801069332522477100604998905831249464549998432858698057630822254510536498519489649827595553493711384264519321322528525910896736404427492369907029378283799713189051129840483912443868313133271870894710813439497553022471108063439795055196816016253524233132705007464201404486779088406609790860251358212204943951468217281669717823528415497626125453252387133151722136712209618620076825569239857264002129804473340538753743923438831357233112783246255559782673748312437413691217236157227487458673784057120324075357794259681299019944216137833640868799954560031343506483275319907662917163712185393407628185571214363019929428707918715061933541510891837118347579576456813948605073426203869082447453196434580403273009934756735770701019835324094234739598254958262138538114412258127472980657845647541181369447720460764477250184076934809816319457593031301611693587046846173310740306409909945501990113834369688481274788171550359753795449268509258901135333501481769904238527685022014435570341369506351170737830165157115928191040044201923161932397719714026652504292595311512403427733682785807190500326576832617349101218445832904230413249700213680546634248425509696083227568293329342441637704382446382980653065582165357809787525701641482976404532552587753156689767109044270502878106468375567873205579015400317795371196808346840528631289014399121231889027318605384535837521028016514071142555922525835273803635917160219845688103262197407662505960654744768897618437507815682756643667235083101348872802701501624169540870447776262816786275468377165163633589387008770639776214448759392365168863477597654542355737209419864206747003553949959583412237025521947712666925486999592631616626248765914095124299039330428205934113587484646835536418549886202210398398070942445823721286388326031712891027427099267887975209848163784109189287645347356794565087761561644007407264274956112111067075571657735609735061016480717692499702609000629550934748732887600915835960177236410331660076044579091599862872321852538259902902137277068616647606361893978339394985189489346309874365933019774224641376910991778905351236373314193183880358144872112385212514409425604369598447854216163438996140090703103152791874538617492009644878227319176698354556316056361734442994944493518219487368287184733289906160037424564064914850887088256230342847457873466812130427379444703109254985407869933752961083885906824027907020281607574375555236844677144090939230055038490522205011578327485838870105436473510671361696904480577050739707033477364498799304318491328508946762625862772814259368209029168272309504636180951155396271422318212833834853848193183181252044387061843945416507007184108069200454724826184829683408205236229835417476869190694304406400437860038839313704896239967465504311168623762771005165858365351929845665045334008467531268291842782474352406028412914726687328592100632661700514558698578751087090419508134052696315880922894696021661643100729307706061979511550962070712811971948841933817392810895857908316697982473766041188384499763386412593414665762541556448872854894281890157330726538089730446495769287156097662335114339232728441441966636984537800078854271736457301988239588533863814098889712306543694944457259035737865579879949845529013747020400557394463982872287443067778282337121749610865809715194921031960066398513843463696472210754012918069494713163344238195899252902194658092317429916820000207422226782717264545422091320760806465166342559951923893343947232659963420946953318134385109781772051409286165567624721682999882342353863619583661893904477122500064722106360291853767166500977439445832118438274065091170945607525817890988427888681865515501868375249655649384025545815884513129610752304789596248017028888910503899263046807722049037901782028382450434100993964904050115910316392914547430334291841330505968801440766612341217694141595550501275905445787904899415822970874002179411051055411781629363753644127924110010710359950177246627924020129321058844886385638145036454122110536295217854851941244142226300834466926361491389784006105045175310189963157929043284754421620541957564009849172515345269422238244557678917347341047307602262033315571418852619863140929894570240167124048590147749053010909801142224141372762780541989201292147151675687050666736590162137458087517415532609328294899240059348388057575108629075512193762428492390331187456531256260337016313891152483878862690880950348895791182969727629874573883604613477655573984232612907329137548250980307233881994169187860291861568845438998198964613515264705920797999803804938477149434744223306604666746634635245465422746946103207045915044828056320167122951470234873419321583802339247787993048554898700780678982852929965636040737482406864034109014608899152039015863688366022261950778779995819036461221376218302652957292086225089836864126036858715936873475476305184072372924758209690273267716964933375462323646941263340564499526515778538261004410283395946975606086420721903123642510615438295375435404916087290229478446467242914721563775373803285778951960678181886193579320511041745658189917063381745659347616605511877413354546407747242789904081276791482812555832596944107233067215979663092518995122844749211320546236348860734473083827674163205919079750865836289385670389669467987644126448803912154789535710129067329247484070583496826997379435883607819576371042781533274497939946040683014707613501809272516782128099469947807141657357905939559669585050112514551679188733375066552823563385404259723475611352781629439724270111180213733350976764306448723268648022267743014298575632386832140928848650893241923235547617800172734946607030199291957174782625732342293600468962885901686472373930032560529106257661483598682857406004602177053974392431548026467214405690449520418401888410092553328091741699972076283215061345756351909446009929810246095324335315057985491383671540249755661407837949627631918471439482325272487737469856094821236617271353010182128896781458114122737636620484249523620159650781592379703612977140575812677239173996983048440155916219729446909966650089431071971552090706410631589807287441790573683485566301820958356346941563807861555975782066896436206551447340263146661044040664807516125960956138663153239930685019270883372410878614725283695566299480786660511486179508952533220100465340373169493326843391762443411618689260493414494427494499262223235181355813046651968034702394756661067121289058389247930151634775119573449664743034853659560378861472984585424482279030553917772238458249621556358951445619982087157962128448465107308101295601773747726017955033466926610843626154740047531412549387380997491516583427173800274495754285006236929372724099765590761320288808836904022031205434262007717024646581036789144576411406011470005572742181720659079536152089827091936218131172532031581266657269934684641564185459772148286072876743233014507591591883876968200409744809017081600923735122069326234820141660479235378573828912264591141106903174763413919006374735230420185149812510119679447585068042633529445438235061963348051501286063050908713949704552731642222648107829264086755252550232510729247165980146736549776897576216123496858924616911501835528895724374605803429552994367275013195894609658671063804920748021093467431949181038275032103920460094492384640056839663511071657874579772485822570968591640387486545990464395953858182094327848884503279042046246326549064006890586806146569283640390892480708298639224001488344762927616692148140846463578538006304380190597915951918156152687712144198430498457576392617177991437316269647943948047280039505393137139204609525824666563952624588129624294963549956638042743397627113528695838332549082285154531281530544780911270943125456562049148851757812130648662202849224042998346149850695586108279916716723036503193714857499048879769853044789582036620283475467222011646034214242023079367990133193512608737126025014527146015771814306193443216922552925670285252129570521804483770079186635439351447006302450088802453442696266231195325408269146271211847321753307273412939080782064174389365654736046960740192810263973587920265378423435202032083300410451496423162901824312749994417186283954264672628519645327651140498342996269589148617142762005059340382061257633496624550548111172083201451010189440012607807035667152170930602065089092208735046618557205459390951866958146163220732483427900566014607200316806248367278322645123236565049029753202092713003296853221581226833059242919996927919082545228673240159140191397323686479831512794765650260334769228947497872896027568889961289242810252676580474966877726008142757478946693027724538563466514062518077386176916057169631889911767793601033754940722315098024848840279728042802044495789050500634639441464400375656185170100503421653146631320082300313031864849233993716192590701936389967935453781569409580605699942477960746859382432269629024129545196099285718885381492825764331169229617535962082226259362072164507127051451289494197022796454087687193117737743998489977449317030187877407378237962449341984487244418921352828714595738099179908711222040259962072769555041472143801216908386398181432807305934327068107353570855648120209339401151121773727640252200989230614356192390918079129230703508217393404436104885522985600014341231236221801337449326448189714215236767028470797453181789351352856411693165075900919811783877585515480311693741921335029300496228226643352075765409926903462481279559428759420654791652440558801737100391912426227012261122734909036507176952500095758953297616244345097445652969027272022742266699766875813878691607470451503379458563429013529229828809974717804133986197713562981973212269622830567134256224036258578608949128871223387383225383510278731503266954887497552596645860566838440508725628828795782243255329299965392204546621588662670469833765448198493612455423584931408879415632163967944323855168909860554954347256676319566748795247670077607635396158637434104634840241072699011009126042294530328982748990289107159016909379626602847371695611348005321203680230027557270171393946455112962304735418205321411990843832450992801006548298820085036815758734662291083011582622948817341386373702664017066123490822485026720957091955728163857530654497751288315626432375447285760950609548821153550501016997670933326946256003207291311565954339699795443690304704254509674872011612391528060724313710222525072712030402453258061378817697660207676474864518047753467511223371182593376806346575119248612546586685471874815640761754652479800886666415946723883756655092204665718085295298343425510936520117107086197493718180219166362525835878672135922563615562526387287640239253633706772390750866100944319967411698141591349649782802969617385488260173228863623554454049075548286722951601511470852084556236911875577998808707656133497897665584604181913211786135242986973966247305937060783409522469688709952121192712605715214175518217818187327719513484476684522750266752737948162144122683628105664741365342721930396809949718566950743669148382927793900642718927594729092484182117371698123662352289396017424975850969809492422398216864781655335232864468146944211286201903204631747486603631767936334416588147941949788799118725712206634890157161555630032993309021540334145334469189040220822670888032319521912781734978938046188094692580951285367382673066934499932409210389794865182436240489931595695246519334856843101976536421572863391650624644126796584199020590886853204115609284978708339060561315357298992800931758410825077216612986508912455870834027238464004947419825873838980278370248972585091783457780275929071360024143697430460140692059499965331505801698283126054354899314800804680358388094380214384626867036789409719838796821129573256511307467740376822847877741208743857984942335253365342295873551880789346748203727844689283875897832868388884980668310616899462709941357764349654741755175421844347282853922797021093531484169660909723407357808045525029335115968204795176922002020081260202844155366063951375851150544737872546602852576543652907710064381180141332650728149689762934964391475984180475689677331113503991129400787030957427380521379189991535410494293328676390501464746136270685839684877638711421290902247620061246741817655912425192565572399784595987417172811294728591610519460629166225921259394096061462568507542378767102378361982503419756818875388935882578200610318134711090033242525067758390982137466072413319375154726415752146351916624805530934219540089065206875844298374844291272517522986528040808122674993445528113159934803698419930553311348218799654432723022892540615464072059167884481480680730671774840516811702630137167382274040076895267773903338309928479491362620331682183288690176663348611540608923327985295697251471527158259709567461744975730930481277000175024818321472113386484329226974773289907498420601166539055907107370564386583262369105918406790590096528061431453301718529763109083028432981642741266107381163393961887100616767757646822342982073204733181715163692152040387519056956099669256508217097871323742991048549320302510615688305038371401179100096277167886113513730820711569743743982552830666038629796641372633157020296399090584330710250045972497910576740285237547359566300004041850749960773690434255433325315249399714110196664679604088696982427973149752852712202528232357390488250333186319052792652101291884225690961011241705442472939764890920392591799480116157456916399740616187433605322704460515108704170300678677026573741964838932023555047015616612398071298015825764208602229464435343455597933736735348635487631146559457015486891834691986043884491688352377649928472735030956023818166278621942998569606352607003676460980393371424115206703488839553391916272509089488006354284762674004553940161499653619457316942102613677880938895110120678241202211044748670750464992381277794471714643700643935997636095922689071740360241968530968892581976047252517458830075570971162375759932191354140470481223330594252000512047809513932667273292196261483521224271737447894926152223477446796825134570783653323353675138697041141320286294502911158917167263584663888331384571769396555938283350635311737460903452792621608388141539722326393692004863479156255520943860533483352726030359933171498279588705154974983751522301790232871683513007648349473904191925273322397121557294703573889048988952073748027074798555506254196562657018732149544602133316630675502091629127591176569780740983695702024836997187964645713485107826555710950572441138964112745532104260592848610419656538144791898031229586053012208032908608541506080172673359231302781714528740297061131659090265265253864506232815440379156548890440607360041188464892030445213068441184212626275726691391581104897186317869151904886785359600833606882792274180836758017022556679023568018049273960816310377459828530966745141026634598388021499730134318705594434138226594053729527099728026295211140597980347306054692493110223434349422400067023504329402815316558935610705916555102583866212028104586308378298704688731499863801758526671009078138587333006273948603527241524516496310643507366187972566333558589643692039156669381329697552247373633594557920437019595060403718290685379249208152805287178634938087779061166292939726236187913792144324149207330542853872490059263061044456053765455595609519848372136812383035458624477856879334934032288719729865372202714383493800383489394580712384734716948611705162401919536562180816620102563473976079140553941803436543312306331516664586560288658724601061922948733975543530559916663407503422632343300817408462582498044110390746780957185693370305728490754723929755017419864973084268929491988864157793671352661798396092165637628481381756296555083862662174173365251045699995583698152701942611562261634687585507685634994690205772623647715532166821614737251732452240782307516831805731672892339147114880305912661932479959797533375055465706809164192287001556209980301447138112726662217287114480561507288121024436666000818021820450759904908508067500440287066963074753078676340305197877267279219745149157757874275984799647999684653912705529343702658809906131434298460365284032488953187834214592628632595456337098391890171169430843705641904721139915608632749872500394209071908942351260239414998627934542401368816059627808951035689387554339932371659107789342114505913751248857441605876570131372235243439139911136008550233431176214670342156297703856661583117205418373371666399558295485916057274425485181166790144847474028966783412998852014810792494507814900628919659251518204758172966526529174023568067815288762976373544507809093492407787492693177527803021360367608426218610099845040891634737052795569583153025990998733490249392611423637098473305404490098250373104733146529301658523583954792000543917294678615035559777193510300032412725561837559965211027014381172716439418347806070563022530152277971819330876628620177742593441869842896904191322445459677445420331159396389838833505546337322927551492721641646071934486958351777503074213286653940234075957220922288576173148879519048011238875499940286212155368277578431801502039703316971471771966746116358237315068679037523068484730857764557239989320745282886846638808097938226694316624561650013541144899733253143869236518160999175488210561330217651492822661275344704117700172501605857529519995073580347958476670572744432850911685539947868006605640289418477840361800656302374316706772430169406915336882769706001787249799590549272171645448177081436702263568143155594606149027791908628567761587924228033485676412756045033197170908287629578172770395445692391572266615405801036407462499139855419036533248575761529252455651876899504239157802260139873402567680002879922309974601607790589035828395925037265334437797691658596686342597463713833896569172132286114767363375154780689467857866767460873796427410218041151439316109263750979627839070609432738093694094858595698434641361355478270489280509207058238779396299382000750782175903139859683903131975241101859995190158640303435739652416942127613821644090638122051407015981402690537736523492790247479570800131893522843832619995003806041694974711646196750551385993295221657738491280783683873385538946823218694250620606726096050926750858261211916176109700217810491833081493359662097051546324548817309892694344582256148280029706883076172166987875075931619466106425704074128383561467478026513175105049425454801933969002462280980440377126727440020728169421263709506063310295442965840378927975861876421827980219946587069511716830049444988331236194672100153365223116889941831582433437424981825012921723036197048311195154500502299551407094709101806691754388605106635979090009934431402106211990587924671826708316892075471197003104948021803360019491305512851668086174360841150015743068859756673554920301007426259841604443128307641589921138814036176254346478903756950280040947930951309423808154255916263484202783233981054529621712686532497903355512318487796176099021798367728674327853566104861011883067615424845916119298986266413714409466013134428497374231848489333889475485042008374191175599540802896394027818474772494016350596096741852995563626681159531285487383673273886705911369848911316060237925728701538897647897539182614088605793082294655791191217824847534205042578134814609467944503140213025139896382659162507473309194704501697616161536461404864439781915934487516402809525216284509097549828021244589873724235666717093879316601843620062454696837214235445195312189739333833626924110927454732975508172878805546314834816087741555228856636054320617387339686083537831206494825926724437966191423927602321057956237717702667589304508221463915627490646711352685575807217329109410964471533502212437586056851418210415142910666711544445295890838552968520960214230556815260565551050792099076874355294776465785208835013180771539743435323034568220636578970917275529213338932943378547401554946608531871935687636932455828157888356821801155894068773166742998831244719621792589143441329351873830925638072687607804441882294077747383124364289081022994399615610221726043240475440912030563547218049498917664017730176573538313829113490834269417767592547560061156731814928902485392238126793569331558577070083322122983145803583610995775593272380653157869393227262982265973079827862180905708010837843896874152564277589800259745354175076921884904710163700725853331937923107109975580956089576494492036736492521756085264439344026973318967936797615219630568221138273128159442969217214250359083005185236757662374528879217435187774392532772251905013119088922527419320906254826508606403832959609712637370045860615163983918782548050502111181162621319292774179543117235808029557657364166907694966759338345563045414797569871375599374954763241937887876611207049345612625318344779573613451356327816586135123504601969844107730369553494109816347977183223113208280837229814656275157809787810211684944302080608992656699452147817234788863436419091662883112347759922091414096002120263891179115270574638234412588177430613527718710574844645619748306780612398434056190384820188159404707903754762326959872699041684952892280053123660546545123635943374336903779371783773609991601482023629050237552377129998172950556832024875597878709665097129415311852286359823568828914061340689783550048376118225637161370093875799166982421410650008597084385175801463901404809578768339782618991622716722475268247769982826734622648727160285310898911393402621565807992191125157804994152680992441653610010640226593826222187728280621433749008925960993869832201538050653928412403535947119064591236333251537558363443510950772157650213997209937749966505631640360080908616718359840830482880152919872074078012669152492584172134371473429153295030272894903282023391804713232736309691625685466656096812742081841228412599297474310596733218789309397577527278370576742885643151494350956497714090812888946063691371084179919508588053653825142848813487284339883714187821550403212576559287622080816498502266899562356384320425823741075346563632029842607858542357288091189893224550872975162371326658877162697249574919610157523251139773726595112469022383053904724260588676033579421316668327383933901127247949635117566977431590880843764500145205912481060651152429064293095961517544731300590847260262086190134465337984060843176402225337187798581699884500167962556377031417537507824268756009397907295961170278924322252582063599253176014472798601862086724303381603828489684748020271363470326420759646744190724633909054386470443706388628792196384836246530596149446123647034585969176866378428524191823309958137718296284350387980431367850611224612393386090599535324529023711453304240363674847042824529113198867053082873295844333240285447508643939496318584749594141253320283959873901299798144002649221348231789603499430097546631835432312249824868133624713201772227494179180432442582251738547587443757248873334481042447499729282079678056657087661954134310303493266944353405288440732746959810629608570724473522274268428293078860740764687109090148042307237365397479698877055390159962680834302381222410454451249101427522212918139458454594522427658870568633118849502091411279199411205888981506117959127197613569522313132116888070270681440642854247713653233962730692784509907486163620041345515341859284376167352621135254630425949197013443554154893109333786729185725051890233293040010493731559653689831958207184511350610269331387716979699923508090359549095611813190389933392160096038969717717496005305909958822700044712687707365674393688204507797454715186137718343683429555485760049102832953501134403295083561422112619095357152676981445917631726269986779653403323833353482221094859198758987516223980224797657642244520859903417406919686109737663311763505780020288822614847269829812817045868148585622517075476532615499356429931937073928477410361510726634307331631334014674925092152815532840864509004180504666297708080165056166036384040407780678784142580605384994502880901196046247801356100119931875552327138852960171044940069688427082575870400212697989865081905451930947360210237620934338906330512472142621287496071018749379362083250974437519098849558066426466874599035173200244278617870307449904792190797711351073590903133614481194551264542949649313363541411168469619062520525395844221156821829558453451516034652138928673764386687769914470933577522238807912286850428509094479377102859988687350680871301911106703714000240951879960709651485661734384422322882417702552637968872105781366892578327630414715068092004606695129311809378900930165859125940349601978888320867512032465864739547876525830111466809053507572250868736346577701448188478613639271714560196138738197468916753392876272162571594754327042694011249574816640747684302394153641653817884212850367740989529537664403875856981730752541750907637976849496245240011878999702244726991292513118965335412093979907014923248625095961226345487857231541791246939279165886810963504046808889738456553864024732141306783853132394193800448379151870992419866899245423903842619980510528945528001188856211956769289260941701625999260381361198587774296353789511096823637409271049892793649587624847429854184846677776661583386334167953643616685039585358413348829934387758062115394159167434964189872042770723484560395835691437553022093286779299163854923361807553908178426137648530381016397192384542082793304610672613257308882748545677416737260808677640384648677874200394673404459412301218106148057398724835352784518250028783772566347638087740928856724194350344969347418542381485306289380644652478942313033687480827399149658767475916257586042520455108683873362121605494731069688365431708059084391746069491441705639308325443357953260684640656407916784169539981309834070760295712695358393763246318203426387670127708999677969289200287571543910758976120587457062049593655002356885483824732564787604745889457969528298464148632260497641522325173325112457665542682527592106904659778530371729141099495343432379389387388819987431399544387526182650707164039573070423787014364279831822364288937632260011381836612184215063949711691397385518046097767244344816919853346259012353752187496760760295926708306126212519620528347302028529189693089357838648884173883160875712822695403598059889743134403110055937714800164024397053751862978543892692155332989872602064810518388454475349190350802977737160368289529392466702042167083184282598309622160435205670088623536738067483753773007962282773376620753617677443543127648325213368410686444482115756723340116150742009432355836395306798391456061904855856835958245387999678333543902021823032833900717599378706993569746346730955567555865981608666524482089375030196497790677422774451356255087312008744099508616022714261802917422545012787024721597328663469338807438781600878672138069490801502560678331054268846003816805575954538811907940302188761634608508815679494972746585310731912400935849287273421983738092573771679973008318373145675722253274329532221661865989204203133094126512626235577231042153194663278352195943187055348610103249934959732481688327145157128182475684961526568273833118988722609759545258201468569158743578778300391823223495385684679665843198226637615084626747857494689484802140754038115758291179978879463103538106909349861439877356800090884728291780146079918315246395928886802433936918188090619439858358697316983064836078417576949536871066852558011767707270459664678361199969467650655489175967523002457949652681753835282226612482799420798878816074656303249286812581373134864641740969281031101918337317837424466036993365062128247100366252036905103920193159081436687169016738694735339756318488279363508602823483615469130041676557495742755139965123814099139277267665138774158888893860258795202731635974943427418876809241778684770273374823778251891241888221938619928299009856175700086244605932512425188054032072406253688013297461568465453440713080441812542914165541565767627672468381706263540336645465823590200915249130211016898737513867050189041839123893461436574351535457928906282695549661931946754330976448749165080161557516446342679389619508881577102579181989657228099820415588049318771673604518946564993270205802967026463618326917121381114536671952225905444790686605057504356045872656690605526247795423255619859757974228047417642583899963369454022381206471531781875164236029435037356001776662595899198437298633006876120850667562063211228416542764291014262163508726766056991842468787287651252192669367447057150617344874267549280479889102970784967341813694376926744167436783202211801638539950615513335768396487062494517426583189677167707414268306009235519007418118408827669452885055619742051104003485374162261585299681151576364162314132108830226535713692024462356323541956561349529686677823987067160242239885549459267940193234210667056561540010120377343414963151486450482431850821378226311888096750534601922940535773077784910233720663648178852603784856035949873257410993337570772470463135254698511135779180492404754417490532149800770652003387043417654213895085103107471480750861789917188186360734016599884118844685848752368004840095494058692549765317965453249500617774546110862197103255417785700189980593853644827619174325032800305048089048991092570194319859042634450428782433734044819619265074963537409880556308420907876489642698358459768360660049928694330469237644750080691023139796721678949252197421878873741192580568716196032385345051878547877642418578228363689592403800373517697616887580955318265550728769496074662806958843737897119356376289665312080353725283782297713179416308452132001928420652963258269705916804245175620362454999415117714725848542069755936038538026526135076331024800543791442430501443853212816564340724610391750919314020601622556696824313013188543785244733402875203943068823788823420546897592975739897122951915143741830413366271188911721475090366640005966615335110240940770007691630812897786932660348230149252797128937460779937195446784540578579542744059595759599996371434653232230043638569902034692883375558194178579223773558099281240659993148643189841073919024992688147997166315815771639269896315021385175741349038896121963715878367813954750056950171893653437463412870664942460465419877848491189858467386901817171009817669796070031699310259264541025694540099265891911403481273934661007933123317981354749231554890145176265796017623196863667377712777016453778964206531523120970058451366801281082512335800426599609541815549488183222603315433135479025947900795371653917287611522183762559997307203312846279328679962282883343291028076067275009926390431408220164642368604457139130259559578398273181152457672225566848222812879996294471391583072238911872988141393979941379372410702973076259349601049399190565220806032375478572617194490538836418994522895979459945904647925299575414161750034201413624080070464259592385688784513788719538882280959450428200873025398955153761051239924965264230828492202178898196421352249350313810082326756428711341901006254659664247831524691091988715288033658853687952668472342035220880195161336515262682583929918025982476922756365953603402101740210055771846888230698240509368452976022745787547208348769346961514214585963223871010106902519279564338743933902007027685430275428112199977371702709494011814763420713955885671051542150892232693678264580946341935296330899653568486598567543095387824387361548693058501151573564869473236358115541840882910836136576412079023994364791692659315095803005255483672422311799992700422581218498852666410813888533969915514929618375783491154599248494591512168359940272342533127585858819034680756387883300732844018068391042350677596184157229309293188994332804723931289932832632334272750951096917455086196636807099969072799054504069141012149057290120604583545818492972403893444649416689978535932452388004576548141554524336413488767482566532887014550855604601520528678386226319055596570713592139058972680615812544935689867432410546902603073238912847752868195039579725319650645047060930268533363490375425014685362517348639923725078128391834127989211959831582140651542234861355902953698070802652532607842669868493229495982895283761022573792482965055113200787083211749635873653946996426125330558143994060836729465563804156649349640533089533157871383086056820934488615859109461005244291699996345350339884457926997818220416130299210452600354892002390099940479157756519339953601504613939646961535981089002526130004559713596622791423609874447814647475155147025201655979428609667917147965359825801763393879833853955766520262466756790441297406496573192453587275018627859075973455051221310219749435371141448099328116764530982249898675061415472646644562037565808567746924703640973393512791441306113822689740158423617254653558208322801914854046307666046804827941173916953639609086873233908735365457714405280839666481820619123022165008055648866520139854738511905938101059791455654637994446434187796129639515780485182432821060946980338985657524092346709487602442480543597019469233048254666452855411554308192730720572985045066150962021776874674159391767966892627205047708817715474939868348809806546748136257026051139822640368431133756293964621968202380307480948896332207641813710177214513963517531952891472594513287463850576418645804695966001621234405873249469499364876031037402867812679814894770575508092096666781556892631299132673295519537885498296780048672028963401391826043431953993401713554887173488731448355331464979389143278435734185887995444792857338957243743633725980703860760389766162097473019316241847834066020773659483296272467940104729051077119422084279187062525259422447051633723350573752552048558022562948026744782604962214804794328018556507653376219333414550782588772088360914111543090498898081802741647166197632517617899944072990127575724125692867996462574151105347727230935129628734457081423067780233741039819412907838078418919407243106742712575602819685627308451317905860765592125273980991463234740945289088779261448776146309587836474871268674177300914256655419894076876876793645314671963748606178960930209201653735384187672431692641866212057769663116712976152844200923440644060333209542871130803983764860458047559622971502036642549127320480816232578588139816007561189705443511038813129783710765220043381400091210224864396514275191108511690281527409592348240451909351179819085178802945812155713514642467885262450910602467823546488548372293641242854354270874766199621050526124822016630975208870090791998102993922134049538998383522046769059616070047861400189068222255644713221705593565675613954302739157918829670839227190904777838734339815679507630000114067363096944998591438594981881253546130576005037572831899235354802994892895320046117975898591403949397801064298440638272668121301944455893108315892929239002973287907242064547980402685996826657955559530448108229719123603873615202537788210398693904205893858027188921174381576049026317559483591905860163131637199037883517707029256116238405194207294101265196792075023259566659479974462708971412550696264641856125596604146502505567408146472934355627893983947005979039165218260815465667695141139466507049141938240422424140630567322636021253658536961050221070852352678206736994619252721098068263291472726952844620819633334871106760621383057583858083225789531424744050935467337795915349592151417839945973104213671496215687860609876619624530488788566302783498045489868807824834276005143425680630680097039675670799267050646335643608991587580570371116668596487741620369798633398679512142463509196256164723169705614113750868402245297237107087159119674649057531428093516254957027839822414281925524899417696043042486767373053556770904945781782550879548199095221744866192367585504196557203140057860999748840073267002433794319643504848932922585333541137559675479779805945154412224319098909594681440591733961461353586556781749331174914667684358664328088355614458475780419577353957588678036431716205192068239279182358721698624619172865717439604214596282732431831608472321540527670220281577693965295334920698260934246570324620614398344537362954206237101648489602591651751868889591036192665052482543512360187912689196691091193074827428574941868596501608090333732605284108899711059427765987947472348479314102600425166572252520613050153273149051725493648298336884762583185290058864333754903087829192463666663392043526995015614134762711949140960332838815160154065196041488427884399748127212885950548782959241504668903165638383620550510350537170457786391054616899191724885222308192823570630802920252878534950876110079857274222920210427764812197209728156730935548544403464269345925554766283897528091375265352251039648636829822984273818313964621828776400910097106190797358478393301879235143940958412581135232133909037935194044566005968159929143046789955247562928161623542376401618399207905459221535768899047860956705096315057005480417722735487582704856330247355030523887421824957807022846877539033035881401008995400186739801928712524651136371257144788634712391542342313045015717544307657752874207624370642898155052769323219965758209744759220560113408313839387131978846749781995638733644383373073473048317151247125594978852367844403290996049764709219017231610831148975863644771495626135379775381153891175558179133492261421971060614027165223842599234622605724204948967523517142363633877080480073905438379316025614609414024415170300953758449102349616315732094610446747649276264273056307519431222793252942574355097931359251709006394352790972959110705845808930496037747114784599082859689287633080536897414413699970834196713899485878085012715023925194536344733915813620694738481415544127018492264423110775297604251828705826081692639944443902889111654335458059619084815525288044163688050429463259793058333388339903269274362405844941483943144571950354406531776096289215444183408373154043923618634248911810945902857221979676816409464487146637319246092623024410564140803636957698573328207455727536233521880480252265426263040491275460344217230664494838337218922227922863086687109259901677719040964085078218590806359891034705357079146533269710902001328521433664723031260839219431790135389942957272634676148827203194523480664355212085030733496443475404395061177764342911111672428861665488950070054785015393090193539729418134846522166245500459637946729312860693561036030345852277941272126147948080647724265949521558424813112182469516060579728106128186955382272406311703653513369117810198295672330549658098971922771393337160732500243402662013324496178129950860412264012290284298039549111100346165499992822961675735313330293088485100010041880686065720330702062341506546313924523091818443657965551296051331868331355245444553020065813830383224453773347126480408113245146545884442838690299362569665433321359053702286945591680122429538051962740609122187634347393241095721955378610463921143739181678529331326652140711020056306782200088594999034573581980768244016131033794747727185227382985658693989760157357644711265402942831618024110326825829732858704994879265446013251347399311071196934198771173866015227811761517047015209778970109755422782911836143889068615651965358469862841954688386544076948777667460375818008912851294008195668846556007324991154858664503892761943289307344901341703419853582855261304159226893323644709723730217752989295436651561909886807419027506876830778106809729011150788214567364666375925598619145496550802765872646260151443870676823226384519519253931672048722455201344702105815441468704506401511921264886361791254355024239559887264872452212374710495427035432064776915997658472012282815853209692022324945261655643741281835580194884007186553730176572387944542460965829825435702015799345329340240216315261575249290293967850681893285651850870876917554513431629166766455189339211411670438438444981163306875507757018474558450975244386335207422860802046906146224684838783071551306738833758214337291338747604317963532514729605441407885323892026181884496943481619639705406287168773538419868088010912004954811792655417199732312236869656514447981210300485263587882390751069313927933942353590333117796270381314966949738708067658963201419790019147774297635132617912266123492229027996333403178539053334359409798357137782309859216788530134482160643988896648477152125416287958012697525420013980844351500212866042835678343753932013425436176212785333738264873292636717356741172623651333260026424751856569990509420128962448398957919926629580420832575195605348914347637130039496602268621290236058465133594236744215153297223503033212096715233718942455789765564205489091897626155775300001876760556489046961543175341226512937400823417589993950702374889253885226848452599754473278369191086368766101471132003866599702056239714996363191462885597953724597299946218692189567300254614678929662799100462316202032303109002338004467090826811206651069151741726100690956578813811367436133543536257465021610507553781349820942778549794991104590269434864745828356218523580828618062875202734094858096048606753504814108468467646041364431681638822130807021457008241780150593819012310808124541133928462241511257623618248147343405297907631893384919915963195311721042661393625660653171572653522418930865885455459193578812197314496050982337051556916319297980212487844193673942918367973065771195259564014013583650926183182793762273374126713794291426191323107645508192976484800017142894623209649618364444023292471790652424177609818913892743025470689914318045359372606894858970626219485862832562539271293295293951543241531709968327805783028613143638065591448139472547693934658472770049573591590124222466011323868155282748918738442946914701583939527241666358864142073097227083732511601525903891606282309289891648716655970255060437645118596339882364968517683368002063924975394184695139158068607993859355814630967765956639701906402780803926794503549093062821566879136771569058809445050125162855984902244358228080790191866957102159775077052309646272324336099937668949094208161035999989245812243284561244447710456774808848654721649316821524170964168030884711027351496025674653321300713086499908157745791927490238747994169775579175211569973227641072989782652894176108573120727175583043177346763259571563388162525006269116515618319140822636292289971242367196906840166614134005100789098565244226462176598314167275616687116723244883709292155377012149528735175191435897059272049799551090708438762139458555598238110249228611268689640903179031128537729867374754200211409466067230092830685120820738086253185642376144334071275111866220200495121656867255100685593626792374136803729344176653536170171872525246786431502044851240712548206490992216193444553018250196992895379230777941571847638770616884722815628452582432953424776779777868898032721155904101373422010041500485898813965051656598492936731325946087321316379859507766625646980172993389044702224450863212591101572074727934475111849393664839307171263298210872996404843870824251016178140533169595531298618902654872428468599492980261854592883354602216218035921762532525846069659225199468327407270506333726376243799195731983780877263946307583622214694375697719308452204518717605968282439080762033138270202287793189506773449447575801245927836521659882456854348915948335542203400614050999928734808347457638788316557964886016824011478306137634669125935162978044688321898633162978510109410473239784968125880776334011320460453591881832713815589736764080518845607054828668734287789542211214729862362970512873310548115609178399735792900055045199729526169331043836465971528950392001592735692129223991145574793506407676232131306252237629453407462464790756028271291833130999851961164324576766089057951197357939573524055812535148764764925223278111286527463069633246336859312777759077536803636615075642257979165102220750605134089256229275987455288249313642301064399739139845842383405548221329003938883052973417496994143412191679864656086427888219827895219767225786804119315117624441797389848345458889149562761650519801737410648335849886837195796303690134849218676481507137600779779377493747525567596654668666322007162584642252624228353321518153363425020562013426107431906296328816910610156657776007738728768769190489353364054701385831352743316813903045093786659214403293430177423478748078479681745136002210719301529199241184225446872611978840455736156149081312890072926119798358749513653282606186352739552131024605965290195005226488742526128154468833179348226133151111022055929637834562203187052617070128649590484700433167204839949134996595487511895991886039768488906330410432655151495565154791557209788328707997324949857941743541515045800209129939686085878037858591844523251427610564649472336243952137752481958414698647017094032422842633113236127416971672997138049367135275987537306420257954091418485851283544843880835196323605469356755529796978716474343267075838983317303883302892678893969554628074420313513867036222055734180645267135855765756588740519824188791118063465967843900110028296626414152376073499419540727077435040308156879215517113153221399466406897824688739749172277842867395237723298891639005856800347796158902413278878828609368348938265172852794802594372614818307542850777008151646457098190566516271266146017941907281080470401130832813264632684558585780489703682815751411921120266941270600967071230668603296629544801031774084660421171435666562067180399529454055568583785349790600293903449372193985290170549630376523463771851609426320512934295558420822463302974843678461493763751204787076750641250835062918563849385979254019586107948222522931850998725580923938404433676121146040837785810741975725878336527015980026283714019063769560183796565533100006107194716865233254095407146046410030145661412543493620957684118805367358934717712578104122520656382731071925899156778396074480423843296373572839484013254817650515912241500715729558719337856611343068111026224098471254974160276883165969586829077641224077699818922878778351772371341239061879354184969446507540017089712974942053285318037852703525534805713476146459708522772937290206143760198903871442253342769856142725427811960089834229183781008604351040637191143797068144844143424179736563946584823852972505588202780973033785457698214767605481002001104780151845626014799768760611073679547959728151011595205145582937383316815122797759307899409995054273794048619258468935955680472929312845110952771672970106948826673462692950915606504786277841921427703754498673425264707261283425616966466835597100077957254016771463302279778469073752699647035376603721590450194912990573851832030140861193151466833786859973724431406765109799846992772740531195595798597845104429644444754709806345175989510689332961750259846806918433026369872869064659053338656436314011391734900792159177586906858864192976414188077189573964147333955554723446731570432101349656153261148154243339375373624818998853359181364067134391005103637123025620384441990588158794513433613743037661181846211514249088354248371096128870666888514269379534482348070121005339888646101180964705846980011475724361707138654459074161789305425379828587250737153620558376206815953819762011598310975785436016714384607701119289329482731484323949340718346765841587066726910679579324105108263245659113626679348672416249504760725968467864208497932573150903880522356321960173883339403580278045595252809276300560777100312630525076850621829749172465889537408381346180663905501464087618129910513000350375981938263869768923606135767928860483877513560023472049617150830432532399676601725541788952489043202754630825535916410571622225089340312646927284983736509965885005992758039052715977745197676821859659486615077573894978654810783784008152820481698667630221347085207329963244815123417422786390440797153359545381281019276948640973457988323281223432924708560773189586844399736759341389928156812471030771447531455687868487448577929487130587279151366721752148539079311221792772020211063134554256415970916263355598647674188520379841755453356532489177990669432839086877481721397325917738418860968971867972947623776921892726782589675023043623022141115890841728756593331838535003596234016167773592476690479087651219301091017087890727651577496736101911067217477292416917254928964370193698605816872468950700767340153582192148564450106890584191408624098432749182255614488192914881668799978836906052045269150056631245207132288763530587754586091945702770146177380138798134266651005852924135735223892707714673192556586431429240323834194706710310323738344042347740591857202789417126701776006256620911515937287761859735291023688121572864011730482895685003085704579666863110323826215976172466831422670320681357165823720601275081632424535408069208577445763936487649841249453972959910143032683358441435991063509606796146911284095101636291307168463968353691637367686985396482908458492743478782785506522562881105997691735129755229371830047451969921366666221424254489174364724432737681787228706898958615285560304291324370894137493929771967937686530276724301493829142836800532350986994804517530957627803289248954062950475787966557264420718756329667301587232365767799554582986820477648152256755406084447605871753117587042418414863478550918951453860033118794757202488406969831569087808989629795999484965258717187965745394630993648124387294111965356829514526404418522339516290645985931515531485290330165501268429647020656486495924585556320078575177111624859873556903829023393166741388511533880008787638828953711889863295212502229874113466192559021119914673889419205895428559233592613988259522910152386166815203331319986603789836448295630461372630719731224925391557201051230020939173675928068437465127890962887813457456095379402379552561155624094738093583530209883625932068130033107838712043109587134614215398930721114385663528726713504513607881909967545018737934975197635890734664603260261571364520759122042755564644451422270406281702452947363003999935861690465037897986320080718411668138469570563000871508744175980389212688132017118292825384495274250528390727823963840014725944269665007643026083889814700054888224345596489937294665446671965156758429058380157549143476411531147204553725285175875256256620470091881693392872953983759659194810820102864096091445299702858238023801811688475393159889740076499204585870001231223267940407928222645426573566497288519390277029650273574905692916179291686792646589834285236154488673631431209088079074140801126634944673773242108633546772738296630280564009957846690830061290753796560843560422981331083658709652838509258020177282992222066724224987703362779998372045573797282355257140607893256175753523024792671523874482749762575688429701866114253321424959177778427384333924769621543189360201539421791613355812563586965455537532318349916863426800048328585115371263311863082572450462276496983958812676377145965160480907707583103371412010430394568549388246654564561292616214491314631686537244974197697742667174515736607464416705433813766697320459419551240404322530546039778742292206031681183040435236914757934134513367367181709382554161972058212142658346060507227112674498234408250859065867150672201519026404667960352793122607899850376333258050023814847660878909435326980248563714283466113403017797934848344834588927738548475182575202831030413087726638659185718348436456691562487367127117028446305695270720414990445242954104038819860338957653041403980545640897159004381979589681197602095411202420329893520694878061917499766439311447904736168754789745343177698179098503706542107342890163646611490110790640201841536111189946945509944871252591835053578654982236044666399352067589395604627586719876649258687459780925151379601131546472403524703723704406651679210425995989346245350158111093945338479760763108006066125855125736731387989083793984001155901930018132979561230739784078368883540011227779740224713173164983560440226745482217637160136874306807870762746492312729474230099662210839400389006330765531994888837813217463755993769516821530839047130361728629434760644503855574975295469309485109445761602844429907160855508563071684234437955217915125547093963585532752496909892184697302455877677877527690476013160378050305287610457226620159512980476473630464147734412843098795662043601233891393147900676309546915308810556549094154974610456970693838365604732534562023131454485689951047325651950395165738018761307757800239389222650672007160070682096621546147051944885771995696991005592632705129922138243370538712513744668493989956844675972355637592639415566016384433904560060714192512134861161244863847823854183716199337898614475618729142466513317233587145317582311595282030224625478594668162569572125681612490612591945813815668060015004203729108922188989689337129645539137766738738775715637926539666195538842150320141937190418845359412268782033484441272046774588771974517467420827927254702734876968685943767411887240998977973906424089106559277590489490410481025254382558151070476273501120398301660705822203062048907687989800359764328065522752031058766664939442578500156550186611266944021628891128154424709833491012972254145073741539009928385549239771940981863874125746871287102441081280059956506529316098134803263590332543313638252066741389596383980553480432569194210358000240609338051240203827193032629639617058012472825842190095288207484110832296391783707238962323005124486416145290750462789958140264191174204541276783413560781546616159261497597782517442276826131980141365815781685382650674295687203432285651848423220496429723982436031433408607873985820642754673024697291656769142177765948858987932470342578224166545244733379734491743477450290903269694629630152873045706505578486171025916180095448562314807010775443639651716014764313412988699631415319127924879695882867691248207366214469576093270454359207286857187539722296945058664007934943724695257973170498613675328098860992838590115347638280694151981774423704994230582726468156307207686415644774980111843842719783791601609187544646727477662973075730834285123280158692797256149424000450181237618050778228787246981803572307795384266772853234887105066672679549174294736919573882778339278268686595972791927276994089546129027239156231527731615651466625702323619484203081047306130851118323066494365535148905179903088746160695749155656718475308038331413459461747738121712050479623589451873024863368578503571871954525576295328875391857607771466965831116613737176539632835440281419659967389274173310833369048364777490430506195488125266128503657478943007079273997426600371873636211614219234624750308489958406166812923824574651265936468662013503341801743901700634719274450145835212995730998760427079236418833805904808117376221767547467350936801472506721715375501291641731618236801187654266823942305111198013911655905432136388076607562831033700425805720973223703951544909210190045513420223870717481036599793505408084963129142448999613371753816358506354460801844786677406676398028550670857765159734034578409501017075005912600982649431783670525273403282561006491501323970839670877091962973377545370071240270178900638432003750811766680463228292197934685060058185430764134389187147485191492206576946875308272861443902430805543818602437326547134199032232540404234532751878671540385301025364129614088758785107354624854449346665554164698750498507617175582388940959032229312890552348859796175154395648313100699997006626321328324722189959911386800975837132145761062595289381877379045539212425396953630110262546303079225950249306929640427249047099301176146248609664237277382539445824402948106862866345977462879679956733513779615198967526932703699901891624377127680749744079139277914994182120857265630450453344544509898968720436718513342979077821306546771594827093400578552548179245429403157389735945867212085281410570359935537724142032467547065758255157728980543979282647171977145532160083356446475558343045169104770595627722161182440981012887954041349400883751612106877147089165873014638823454132351194364618386592387644394591894926926499451081009486525619141472990339390723561592181969146889486086278744249147236016005794041407691592227925270664783199690956631209953085223336963505735390739050098896722269694804165405269171236082287171605673040073684626961886884480819988456042789994754008482994671722923455966748863690174563313756109360530907483662595963707106274086988693278614028469597844424368944989286130255413175780186175453933872871142921314439517377249445872933438240320731620458276808525812504296488415164342757244316747166205183312223335758137562736701917088457386941306652093997139085002437025113946564813607828189926711699309074478538879799459872138639573999528840043178050904320504849695713014248647759422156197846584899787336349006458471847348257577841661089296345319627293978749653810462661380395010081627628814091030661276223568283721506611736924753534442540348008340851777374018127933638357302222488479438990491878676566897527958097466064275359553299717878643175550869003081379939067927551345949041140212383252799244666179663931526606881342330908648814670260637670542138215690388978649578453985192489690766050162117273245096054094389861957510771914740720877791912919429899577988152982203495288309410794170276015327194931486538440957103159503321136254585453173807630612016657929643776024424514718033954222633058178406880206495836740021541758467416784649782254317670714875746831627153532508944469713354903814233729860368961679769673355428685817139571525852370825409554422341902028642721067890273765609549412523877269550816241770294490599124033630366073531243645288853017572606887927618294648033799497916659417223609763943713427348690338563424632542635433227332490909670269368880779917167193591616475209456698775909487069700917884920397545420655923514582747741752155602364345916163560627363904978388413272505683588836271123908128756744364111448194116562620544333123540797667096719994920045910717412921269560106242366768391236661579904741708020018940003920364825979728636790021011212181069038599426681590529301605059154305878037487568477421371371456978790789784055788875953953818156865464979835103231333825258082854637267445283280878473526122266495559290139775028102176097411975990250879482011214220932200381043510098059762158113359413878190961695920207928583385143759962012172480429489546150851598476755945431306929879743584914499081265258294421052551604147680766513404338894767599944827165988219324053800117717956353847648269875349950650784263389891743604251215963585291764202638997506405423063911513235764529102186516537692936680445604050150777900009603942132742950118842979109671199072599571365885727096185096582609606984807121721255947384244922914416433314692364932750830862341838241687495663694007764640745877481492623078390583119807004637457606864159979807282254697460125682388804238701033444862322886171629434479716612572985496099565924815285719279992240132624941872091337358272313992107663588811574172558071714962246476066109882886875681461397910958408097572339546806769470878874856336731606499812160241022756359283131026876576351854933641412720780144063568664609857393066995119286426536630761199095755805196288293213431114717435743205787385393100473923041755033846857596497905848556387872641032063299600976718274010207590790831401895805280533730485509808575202533220503983553996548742678832535922277412869835138287606177762236664425170243424515642198032995978638286406453346573319178568017568637125268856444286771261860789611903734518660017343977792267756571553527842587420641620173847156201646947122427329158888113967566476268500063430373773513303717509223818904268684612156022005318265981884333303484646316540226266573305554845983951848202059450140133644705565886174789056493426120017407088454880500853034775288177186446604269083543413401486229200701942855629855247343112152686057896369627954417061579412437675748986259684083057243805813984258158138204535869910402613183155076241907672706121416792947765568748417176782021875923854488444943977367554811731086927749187312103062877122937625924610479312979679444701365856886516593905674819358854127184267229206955571512673309492407945944416281550687484799271222966339963484186033923111293267869846221515689160093127379526897634825502966111192422286455759831363134544260303858893849441172847384639387748320851235530022287572327235657386756130354337985037991084577853230243437153263892288218581747763219746114452018941978620041749825037463328021518119679412073205113473679522609708169077467093709577813510346622198183566614131185227984781464322066306131228667971190573638858953838878614833924587091253704535132849034388007079080840602688515396186480522853433670148832383052628544125734792803065564654366619059035964139250008245356110123657088308068712120710165653886922977185839326978976142047784886203010849526528247697269439585694260056264723679602289281779232947808620022903190693608415494793579187784547435098360669477988964276203130316156156715041450028689859294000050260267176624625925120389896193764254252397285962687022390893934213716170826495988631355431876843331682469728031159720796839467072477399073816793455293603044302592757940712719571675559467666526280149839637465392200590176320166722422094633534059050757341272503556073607434213466813332241127469619673574585432256394720806816824712259228345876772112906972184904070700721278756328176127643499432990771696986675209298415479973523465615558076293480873430838637349929127895677275036412011896992291043600027748141207077380160726256514270276075510664979465770083871990743871292831443875815328778094883310222563520378289969815821755297432749062822154189181313226729741963720288505509148317051469992111680950215395963997141817151235753020014705859277054180236678953921210205783982745937631926490492604163771499009732460637430151493207732964219761110989519833054784156541477373806113540024049639015051501022280063135597426115250495240641601262276884847829180174668533204678803258936065147242324726239996024210721414183882195535947438455835978189323594709301725879280877421957015559723868940407417568734522343359184557434501929227794388898766150324126647335957117666371512983974494101257278946023931122126131501894105930308721425903541575382671889299228300755462906390314159352351893275454190157011024679333566989548850095829528264059010600621536810476090550588955613825223795425362190101914868310750012682243169092835161228026024188428379040188700532272653126176529601417551458219707108751474593606869976516160068617482957952291725110806189912307547744862372768111424383600112556667385338328563526477658440499561357751320943917882448895197231603930051891065791779756653313467799413104495595978873166819201305712896402167002184739086837936720658471186943084383959817392865103584062997723487780285252007239198308640811300769035764513888649415680780253732413127983568187309426787370742206704780738535810945209050795184281273798087912359003245088074364010320092871505121527501327419552969051532870838841134127765038129641531092996584536828516916234721545071957957164244795647460260757603793275307466505449173019190989005824452559910151317804522594289252110501788373949148800622223317276576368242903148911113208944733962746267489826601160668341058210276531980451940567778469965166809435835676233439171569801665042578656574164538408882417028040454491087567258527236191705735290201510549658626910937869741520377957790387402726737787573535718025759614687674412911339751107645405171085350695762494594920364535248468444329566921366500098189568010068497933262839882749234668987244228373567240520684176909382281968212782997881523481831319553312630218978095635558250297904665840237691564861061384377645275854317889293678114181763995101166472435111895355260711353268816095844279564223220350578396266100562075656532904468140143435159211263110150181203370754515015886323918650053391550017682870209373800830879821898916192993672456876737898614078411737841335457463588441255406889152567544340991004179893135577385852514233443526861260797437756458360917584289283601659453097814894129577188650966149102652810705392904258068061859313155426988432124771103123443457157233609883740829888749627762571340787095763262498416434025905605900332789130372701277689558641758685463120984423349799267550155843141548736015161255382634542288822248579436450326446369511719805092518733203860013732979476570442621362089989707560151446868425320411007072077003653000831464847353362599596690310539569862422045694712698920626459881756713958549137953865863600583874727554122394044543134963880438214962424387705105923577047571545393462192842375537467269721520978348549371487867081326421689540503657037168992431618457204918875723729743541569027499523459627588235819675319071778570869729933291945995723167139960858946395826412090188245549866914294356664391708332541029779952117160205383631940550166238422733372396753244360340011936907570475612278531339862479333589063322265265066243347782715451468295203871154100800606958965486037507711658798282646776966318435469120046418748358345577378635498922094309306377773215846599733401612387256818894596419228499466980303411253454731762348321017579888267499449403100953044438083486559209832600506278544137904752108561822707188131576652560327794664650585111382561021055240509666248414745872693926410039269385673862763919966276220746915446960708408687929249779086770694370324908302879509304426515118569601149230879685826947578055543191802754822722256498326255821277683095948637905766293787408597968784775864941558560486926500512065505002270499236570994149343508278533082134357082050587193570029315684735168768435316664059865804496885664952921937545143083656629798419705518167906121803298884901562930760237490641736042599916951793396999024746757357838129731114302651436331669320693538740354223282439862017215210402828981158069349725636481242641759596737626494445578269530137670074901086523187234380492174060356902752353198555366530842448777507085454316653327737864324114529623932781555542291976901867917327980451524207440991457976754895756224538670116836282637197968945548836754610097383873789994067960380378674411025856745693918139914351770357554327971407645327727087722577507720856866534455349665331095166729481707729508924579430487128754290997576757938930446017012968393014966926999619953022597051355915078453301494975678336652393065596471369443366876802814351716592703465644415645690597278175040562364708372505254094649325204845957293145629713049950708641311874295888080986001393791513216049241854296716640509515690263242516270645640506223093062672877534643408549149868928505143958981177163351779272405748471851091020467796664338766743352206543794014137093756835200721817572248584329580748178914421254281352940002656285991067076142525390394331888461720252513594017308503732470325655369126756185245154689711970781378833939047212884528758574528196615046427895113972894775169568050191564770658578163314227360508120673089073742217984302729343169020617630740936984085375743138576539942734343181815347118664576684097497405424626082928905602601753887501828205112752546231311617270235961885558883093960042532419469915432343099565597055024149749811812976172751369934207235048259704640873339194020728828441131233170631689502238137316936907852955326243993218071187662996679310620731439891336321737561300627633228344471792380116042321275596629507045792132408971025267902016591065470898115465448459383554111040386416375292120970143041514078999914448686795670369083104744150602924169548417225810337937332121907931933118997783793631304917838041222465379992025927772643073894401784305354482654550526251181302977349275026999466650134761298053008933132705202176907518347433444701694978047347647945795166392114873543443931437388822849661465021496227255751289488517210870314808734829128521456436251996439204645894576291995090761495528541313226130957604233897440982579920837522531059171590693087909256235672414404383355114295953055371426870793282399674381428910218238891778800643689117065084373755062927208864762592504835114791731230140229450517495934821638822772171382919919174840838043827637567414112420423966821686319117337381486799400718722563259871503951414475227013378967627972845911641605531739602291403590920672766641037816824384641409937342153274740695008039365733472830481853112275529932692087852269559630485272932734349631979287236835761995395389038927992149094891188252857728555646980690981412178334002852692862339971387219713035338363575513768133196076498508900867548043667191780981677703301287321929744519366302774676632024279298762844058649242474552899221636031878066138924146314369847065319308319731858892679568948352175372456535707146090223529260562473768132547992943461062853346421814708100504298134153741716471478351481870297445408008310138619200201662746832778307570897678930830823387323636808016531886872198368913743309802905259834913800343874302918006357823769056658525677842640129651894608378638111774831641083825431230808043852394793892969951914935335780962192637038295956740751383686418996685908402122448813748830136865014719973487321145048049187548268859243759249149114480118144700307223060400042362076951451974439589223899703187564942118921453897869858157592426339513692045567402946488979144242469153017579475447273815999700296072307694397846022986498803843400270884394089902125827272912555426159599962291795883468440049109760861391549920027478113842281409711848594956202898790101936939918158328984624275026021729847731832056346137248564022878678318132297629715189651794987274328803760394358158741329314107126660367594354783298400840946043762459004257349088431875631716517395970219567447016858682941738576883553955196658912705473740339100290505756826626612513249890914299590220829825943843055286968873543787370687334930457268524473976302476258576300660980590426796116768394211698981229388897081954216405582822308833305064891785635430379958336162233160267444664201174713318241686363851043567715828332361283659539610205234848962488055072342365165116955975593051384607842944443482627707940497603470145439942068166266076623869485624762894306461364930983278129658058792134715180001748198309105303710976797604035369306780044212574988880575762647152857872278935412130244288572572546546480256181906372698786229170504948341396589500178202367967978263785785553934696702637618197107285397638095193215828698643642719902507312443371658337229978925145720763532826888893139407023535484422351680300457488769068425443289691445599714206669444421509709087224885881293753992859416060092609560772464158152580226276898233834990834010842851088755613581918408375111683113091213890456343918987557803941018474793860351725881404806994955862249714811124837956058943252088065042298544891117337530715304377495837268967975131436498280200251137248326758439366289832786266270588012398032037630754003859892887331420365859586456311585788756286271463990852239958307870913049545171126943857044901493447782891721200238452330573769578245595830317899662533692816822978822933254646001651298356219224483115466671098098666330426641510744183259212489881549150684919116761583846684348440324049182057914653336231846211332210098452109857776332333345992450280889045542575087377520851614906017092514979141481857871443754250628434615217985629916401481012186104433248855627286557493347627736020526489214278086091332955425509089807120488663032602460086238715699724259620302783956598481347598671507218370603499048561738679160144856828897912280232191773718226233874058858235830218456294971288402297414977393417030874382465315832257488045268007184724286805243512701905591096475672159747893058320193608951967378665917249019753228509728857526258454914701218411861723173910153805984654014305899212782567415310259889761375343207508527036453164408630226473357468104500377450284352232691678939470526720067626787794171989275566147063693837196558444055461467821288386077576842151160473391923816469883662238511016261398601083222209737582040427709004816511837695076364067483788966212040076016761311477232022342732939335330404745705857348563048257209757026585927988238314802435413352868732447230859086848853844154620069021894888224575753092360428469001069558934296303034729125886792817807733586251947358211323396707535881066280566804208338407382480604253543130045576762187676096588088996417789329426998218646902260816068293584729971418820246194319309080393615641205569402516666398409581028476045261532089842936093919135831965162315160053927435744514455070832975772207092399408661618875924831233233853189093327446119161109003306731514434023713809986455961022143244472097879292749847724653090029788980978311239492351647493379490118347050281904656180435721101005679176813904707107795241680314956827591287240216211944937516043693863245891139212387165032749746463280675740154992194250046884504520822515883478365935597036601105693773925772841773266875573205949687049567568121705175019472428246241076715646901281124970634543023226446091846055990301219640330044129011131967496552959091632749083220483820292834235895482814920214203345414214841051875804032518589774569100304943643913166033363424139621657286890138721985993310236927626260665797328657967375948738356818291763597279411216199350886595627444436715022011911215822249688715113842184000232441688313415702094549142825325625274589707765183798778325744451318618169161642522232195648978218432728562336411334933872399504987351968943957469711172247024601752652858777604345240921818454181279427815061537437807549672775568636607502871256246862008365762174670779022550868013540888586542256120527234087665160952167512623682533425598653132830284520219748613195413137354367498761304476224528466778663087502875797074706303323316901144002035510990104109412229617610123707627829334795947290301675373171403049323265968479781096856808350174246361747948568581534150860034010854718832421572845329429752423365330797164110205826982103652910930056576158575319474276170033082283676170746435644232157432885398466070572794651445929355811125670654357369203259616714630349318977870024656836698170321863277025863615776898207048825317966158474839055966286904430338816883492489571334050307116135913195208506559371330694284340283827519696071272699285046916974232803645657260198304398005207921540557623144634377675352823694092006792464295883007403164095949158986401576552265588225848532612825630258797595888024369086687513278112025663739558888486900392680821997121266513107967695931783505357710493208790439795745524160598915255505642452139434020808627525661169585144902407496025929191738293843554393722448428878294457202513874369691148549559669080828762758919909532046019448231420226006063764716740465115805345014293193370609933586102544946171880203676699736870080534093219306198925338830333737273029519979919079426515196479745023264454803149529079440666200201899404876064884848604753933348706175429223943152644840816935037793975348510915468183985995720239234781952088414154425464357164021561490874205563153441090847599931314214129125189519403222683251044222411256860558743149281932491624184786108214891962078956896669753981006729067840080271066197599963534849330341910619486891459151620484258921143088270347532681934841067198900433415414578202218046710379162051838228124176756098134390807218419327896576085961882989960021902096219605749480000107395297656417563945800221842585842548441736427417538239606411904589159865231698141358710602984613960669750162109029707361604748084733565082271687586680622034699637750652628547478405025365978067012608409788489560863617648037074759328741386351032370473559102834640725847097475192891541062227467887303596572288022306946858364366021009447181665321179585253950027371665080954265422819058559956694990474566938573015655012621176563713011255725179815787207929012680051034080588034803868287869317651535052551290393763098421355145556628906257423094723441915300195034206161904411770747779310896132977583437989848992332584197680165165023376680731144966208038895611295564352278483447539453587678459517168262331328669553999583491446970994842432041150905781175695068514410028869154380794211603818204461757421784022359914685520422133270006796330933405238939283883285195466513622523008477943325932846366480007619838142882157391942420535416380590048122806119569639137436626693128515329201880015386597021066574895414020311592447864477857532980132585402924853969339898015352449623665450292890688708858966618346129449228651451491983557204374107232915420527613123526170524352138119360803353955636385815218443450162754612104160127153286570203500318667112597629201904908346678061185462949929316315511902645417672189073822250777100753482322897248865518278149291289969916956632417717704112026948337504817267344057331683305758971687029516978586602026101753087954185865633931980269489034645578748528028783989850098237911977937380324729097007552371400475173101677763776860649106534558256118585207429616375083325855216879697040870344367434681974480893454318035000749730445380589188943600847069542596202504437547192167517791656344186230837508561590005440290572526985322585445725574755156304276361683299284914276976786940751118894572658502010812799188467675011934734293524527665288150410530413556812293991977022986379231206137112221083737044255842727842885248031042453446273983197989648494454634546544699566787254932396663692234282419986679930826247719045921656090498352056438486651022254882986143968940971339093269905706223940261619444885192732053086824537511451208916990137407595263807649429541606802111808818865102715347413937400175033603712839412479763554537510562984604931846264904821279629594443903637448930983758409238811042112306820352202873104567122051716179220925508468234536791256090897206424699654172238016722198617061028426176408095511718550483502238463502770378881174517167538047855146672181215076239497856751289840993241202375910003300104587378113383662714016476640879517031467238940346798838034292595866214642225849975673639540516562182367769822433296537314807482318657820769154446885049285526643446034233743380073709716903600411649757859685449278321886059018384732007798269406893978906945355850156385269194991692208242473707223118329310326348872464013858570645846007578408612271456849629933774674683108413283127982795480738213676345262424944892574027413970924609070492251964396792382076055581127833060568327807629523626167165077240317720946649885701610981896545859337576503264482269934414399897626088533114013146054437842907815176781625858502831392986858436902539930977133286343422658494446056027765354881882553718392127344414393176852426201287133520958939584855204089172346970371786567299334251865185627272109716039514184768762298755419932577786195109546832305867778768637995608741599561247963036847956968408349080891293709248476373770908338723542428118077174459946666461005104187245346356268069868603878009313094239505475488643185047817981573229566932619853455665502523133980484903426739276692970921773628172305134685151418337646249878938445443226153999666361079848411769315653445642655072974410368349461861391843332018144112094670870381631786089503410504726935224067099165113270738369451850088441482162769938130163690279649087337420583429225972133943853039706788508645614433522176836868242517644997571556732360781132998041977054668410980858540337988563249912372769220544370226100143021520732508070818303821039274806202615693724484858044861717021050855997018101019856206426268879391425218283848106738006260942116421375507166838596689384833478316523354596826555669734303747796156644842156463850493296197594267816909014425307359294861927205031742414841114234701057530347532415529654459701803065990123501354068011282710036920796685677510489569789605730453862149531565106198486208017407288954630756833196401905958728198271728620052429864620184472382802451136356000244745317975592887342815452435219264962487814892557555247892176033027261599470746598539904012639119469187203943821820307179464286569281025083786377635772389031944988131970493551274175647991000577807307742778428467468810852979009845170400846970147024115857418893395339298893346063545742435451082949787568379793403056480410740741479648939751090878771686330128748464390853477285467091819286306937915367696940206730081292547516850593663356897027623822996224215154747943886201944098132430111814003105275677139110355420963145094921683116953593843986908960627049397351193925379118975734972429413668789034567522119454756171140293358707383345313620436761726936863479718442818124889929492750658137976563377236687847258050586694825443101755828783874765367275421732621290704649594218858902602895077139678323321870367485618513324188152149090950182371478755764873705130168532225600505605126223866087470559882242307502089201921428430464376548072520805074526835464402694228590365037530514999904798908565130894277593061413275467628542268241716656362881258894680157155925060123524324435222676327324723438812490685884911351849599342900942289485238448441900062854659566259572580730946168954703043994693470033064694461761727461747832550682487227840394153039975849865035307894756951779144974324010681577422355039573709050941744896673783301731938606610002377052865955756693306801029470650129443824257849049455730449997387069063590862718718399757151750562754064814374772663824399986889790201306376177919466000264874066396481888455610948961045825576121829797783646626465594951876941082921003311246695171901012769706741707794749345199241826991241455625034752812015441426817851385494738349735976061651738319882592542848954473755398011175104294512305755890061667171504119015426935435718535644337745349660510001629013196335893244966396443937685784110644072948863656274235073163239916178855099532818996758413260180011387506391264359062410894229445039819808359487798360214230659517370589969085796516973445451221662015020720236474388067633332316876569662921876013154875765689405231190829049739615167375861764579450516243480987652028136655445725918849899092674350529775066186950997996525746250058161549952357000505259989354642467713210492135267627371615753067362891157479905791487998761608651961345462524759169274833582715417197808067707656306941316962476398219609908127390028738211173143294034139898610107427918548798121432368238745293630582176502659001421352120925098132504898378904996610102360302248451859852423101858244263048286448146328905365580270829695837860842516373496633345764383194851778620231764501629198863272624065860533725696091657616617815657967188449764965858997580494828599047607982877639790601056606404747520476120790568305897743206584267245458888712613405951316412128007126338329572590999740016351550918396861318648491674930097099451652968983223262622714989041377890023206486524865710835977437533312254365162172884621585134760367516038740641890658933217857037269090242391834545595032652503204577068188895421344928112087028847657485087634363127314533529659952513834914312686781641231783168066913411625936539930976040649932067191289525045337533981612150688577314740136001833543920965776201841588156732007502910597591364686703534042268062145136630163309404303219450488582909264086832672245279747633042123761699215183403993376547305611835946774308339049354640952195397652958463039626589463649245889413387593378294319501183238626999416827944549676375005015738731122859253508658648084558763942002572293041529739831673359095532013544208669672831991896405237002726047624098463739474540063776069143427510003965130024779961783978662536209831302618332732900017161181250777064791221860034752302830276917269023493934094218413042707190884230249458859094785303054067988146865861827173110169890881322475569729521635925145081606163759152672344865625033245816339167074979958914975108636282051355774233970461811237800464299109339290219241338562842860898440779349645095052835321977019526140061381099750496446028322006454306213133493561176547341296595770423408949576719405997200670341444696252540394824341904155715989834979336357803350069760817420610227213806570700235260919378295444783126405664191556441197154404668046766079990204136700379669867065093355676912666659445212300108127615971437763175322808077862611150819866218703603245240391650873245042359521798378784552653399604446782206008351096873959567579375348192176502363796803766811050704752211226268278649064043411227854116521876969694306904862046887730949863915961695131203770828576437335101995630477862476994280302916451092735056202709358351087598854205474731133228979184567066587545752732537728959112987229223957278744931850901646132099900433601485441281417869971141296529072386288848656506962515130734718226990006545739257394855817686615152455570883195519432263745224308313268551115046468722841515816414558364164573335466010456879245581875637809752643121670369236850053719570496522414658732269351401352498850636682320171410649690776875722893716543602548063548597555815004495164781636722127716913588670351970088304123235430492537250263831602690005605265319244623237304480158341627295200050581326448781493493614057913743075947175690760972648011821478951975235585934527821104031692857350760289453669478685700082256479533574426379007315440644794081727305827442462799093220122625070722631641722013923259730318919010841768213591984571873701733004537055235803598034126637569790745751381635981563150051073578006278236539477496780854240932699800226206998862502342929546674523075846964498340588284791735757727104149579741706912810193126354494511991673496428569322692488389161922506623224009227250040547611420434383910006328052487009010844017299172355565882363910889090633808052802372082630150453050397715667046159549772260597827111342767300129731518411921325764514294240586963367597706628753787550458916208091590269432523859170147954970096441442050850552543276187600667688293031158555567096293309961036789951132650793039217498010331166260466034291202619844379233903048167488896464752465539281301044103731624467821519088382548164877742553045379103586859396248495001769568675151438605521524745714823798200464337373430849136405333485186257268556981865975745004509586043176277224030569997975183410466580473743142298254402561912721343155574105116576743376961741511888602802191660934105610619986486537508215749088937568977352998721870181260045271188564961112780207684896176796951933420845953743347604942737583188654483108845244193100559711205546613866060752896122134811602587358421953144377590016976422595128565234071641306017301453607472000939506896803319814735461627615871715537612892186652457175873244361187481289933208270369165298700480930816624209663097493832706545639133992056261349269053841329444461418512271527543765927050051329944097762847236385937852720987164046832216946442365616463895077712478279006936047994323182842941360103818843163062913970385048554829228359027569231418037744517769254733486009589692735749243817687802047662723486026415426144424855874794751343531837531159190316291511531434469655319265380828720784928936474113188703080908027074733666616612855234889582315063437293642056489806296724143237950659104299146562360142300004959696910314820577208466219904087837844977593835142804251789990195303394513180349975252954884722250718634572436355801944496199288537727539301951821699408287849115952998578137090397832609653775212232435113250306759715280476761731838854331496551922245939642687052028998634886931616260630099666511873378903405428183478587458113197518779473945381844205032701306815230338208011216129587666058767035034474065617054910942181280587982696078908680657209809361327639165672550150919901745660827863905541220534884327042826149652336616565554498870908137020003162713338737766875167360239535354379656988049885605088661108968845993792851681536653907606886551057994541165681803121205516919155334632797161400075836744954115661969585649528722251024693170631288024675210402513083643224435292667883803781846124578900983467923639582770517798467057504097403655853402491227733530129197661730613363613874517509502736872037314190857480904485716982824248360819913897557029564135957912002374565516714735170687709524912865627209614725756374761446579408463114941392969918999821992819122566064945634882671660407722972298474646330175747469408048908908589563516724182858354801850393705393877744965821648237744013810087387766136300814038186817228721577644644838667411146297700075986495126227496334142273462215414021546133791747481119621522849268812797739740661466470136713128288929559885209080119598405117839518826820135855121171439180992640187994649598948235334547540464451478039119326540078259369363794751787989229517006446147719522888942201418681367418974213641590415281225030947159740342227093772115666912213028701446635487349445054574723724497459237488397068609261721052860763570919237455507154135974320400253776609881646752810824592589014419546522188635078882990268395702811225027451975318623917312140841698926565796574277558265516035895103503215326059079453153027558283566172996797546620694933105772097127453432813995223475068218656717131597173744866531068101854500963802746586713243197744077630343798035072018473417170813086569041380210151406928693519622832210547863805356217128572031471143584339086395673461135118391933998212095628309234953520059797401099144659031126689513595814492902806705925207641850867375660866346104639837914134277294673818127664956291113954183854670683302537462731679490934607288684498796595457716712730182915301635819016505753023507383564316811625333208319656532699595324614727625592637166753728381422660561125451402896001374635196033122292301699886579126516970166187719332659221769620362544199704328131779677332373159770151556727482598774740553232615539215089630844698700666760212054763260163153874823297371002974714332431768389421748490569010267113201327828032724839551708100757038162425034389405091370613255416633803230213037453070386530628823523295211154043330915703573236598933405153889677570524347830425367378741615265622807795276117402585335082434364145593757515952596608860873638780243692563742364389433430489065472872619447593898914793211838593298688471190887631897277123815130267010307469918199387485429316511464891740390398711730282366178862921959076909922399835402903024523212653523687555472079647718291956910472164279474203110313380906520530652030323910477069006928378409887248190066108591499252798051510452801546110406900869504235098042778326915806829752743303848348794454548648361679578052889025335569654492735687464389615329229749436354215545434123154988856671781155369068345613682937934009463101981825690813052782273570632679443971237227752293872187327930398681213163921829048456128259359070463528310820107700870743647718482774824172175381220448484957327041404374752406765642752255626578903802613204736470049913052233374651020884566990566145403515511695795820607324787346907036358835105643474644937795006932889361822075031817135301210324555418651254215051588982173089725112361798197430097706488836522145410416694774922406368240925615264807744377647478567354302639844648612770328221285020900830287945542524053686082049715345508598715951032798004381062511443186542972125634882446638163424679343808825133460168648364450390530962224148643920583195561880531864580829320792289467729787031628471128093784527023804533735714911916370989902736948257431631105959252666342645840505426175598011614294712214375019210790343267426123138149626636289650120250629291197176428659868646729891656300908990189413877324119089294628867708811406361340004756233231170458636402346672150839245532079253624650909604342876829096966037905172276123448438239471301961204031731435526064132610377274200954910202136156552734003884325648793750825560208453964990027526639751376035620982240933920301680918622964241697281825578017084390379698319615385375346212049311597034412224283244105515919180216179140930465137510497853200410122032347243841640582376357027772031976829743482124278175399298042149552549403278531629846940609436240809830105960637411138641283764821832124321227741535146160984650712433436385974020293769314798996721001439605051860146478809358808043726359742329871484058699114679200643216680005703906533619626283678730800496815919975522702999030401499282302058537680959759199444289201834736946277894030178592207769269410810279335262593083386253792119387643573251948668735000556050978545231296864133810858407962241031012687973433292090382962452830365626780877635529823594694630998076263344685225038817710932169672345625913540058961601911750339946605612416955278654614189842504237023787774428456560137873706401563604067182950149974825484662634991379776094763774354416136246580768121482213347900388221666136866615768845283329716076930572087688570907105954387184320568224154966134596988164673764062280217554732566509396061189730094958801550722109885472324109480262695462416820325937047503548665847811708754862236343606805245809864106372843301184772969387229437170859193015625815565516678818713828368998010139296221669730095481087300232015499379245858344948901417653199036375964323171009081102320170487060364118844320167820213559574166345676069129901782455669554504645907743705487966858280632207248684049050004747162391013819417387633405758572602395806131642478514001539620517415177872028485317151815387652754283569456465579567301463583401271418635683241137425668990966806038083941491533858424825430321402188334887317242570216488682266729794624797842177828141720014143559938533092497348706195700712477602781203534834196749920675854768012107810595111875286359519120593218641586736515949074182376346044805485356864685635543833155973823803507216059260608944102098527442687965954309379189633163236814914850566514636172786089316509774625553447538783177727553795094467124716964491676299206705834503831704431609786164153071303833313740942691984427596867083529557128289337353468805043928483952805393255639722463532579192388344480325371736895117227903028027868579980406204335655983287674468429385213035229870931021490116179269781043892243484675533660045265384816645252692305382224194309344835839351025391655581938016260777272225472185546406530669651452155276007984162471982170576711131975221431846079724056067992275102266809792942139787411997181286668600442192257943149793046667726220485246438848005380091390691190548731426582783454681958545714558386011475062071722434070776947718117969685934538359541245842199819505844239126202900742887193334821232036829192914486647304206920076540269652181553706876997179913185983213338783452738272168760824574184145214331284259831597987429289072756478775670047614152673610964039509094973358526149284042565188779386782329980005867541872626814466323746978075302200296885709290240301050781881454207857117867636004238513121509450356254247425017671149220015157586824990458585979563332568116042810497992797145581410841933104544387329040236903797001937059360520933365950524022371966981814810256010489257308712197433893592154932112720886405169795609743710155905314901087651724732494400793090666307070737851068769794643127790184892321967280436173522715705486906306661128812225933847855910673348210154800737193763898594360236165756056352139694732246004101742093363028439505861292469615508698388465216214216562260397466325907977191929081408591684181712990355141453261923158979679502659151808692319588269013330039803892303853988932020244815243062068259403657553501818578279144169696762449555470647145803425232448531365690512595605368390601656652585603353747305730571746284450997436402678810923677060116903167438434507385278143271788285427161038726874073728747990870570579595088430807182235644139940667264494611757323674361959831704519841605727409621288931287568185506173251678771692302145867524495291425175520690246510905398656688719210023982005553356646613001584707863003843956642978237996312510766301452523398101435443398988887447034791143089589344803504978242891681387450375230288103729475856333818206977333351836554475815272212844495948814149523883560961914097460546433007032624141544539764069087554429253053955003220342123923429003423900776851479549389392195014716117024362006843010599160992037139729116389784711310194884314431440271396998582318242254711847016592772301617820570438027645597951239619145113287155191978535889394912067264833059694057381701946968161221944388447330304334808437123269671658558289186579613949792354696251364480035747148722387597399917095634974096634748664275223497073116362935227373475858008869802297755892673944468584793755482697516257694835070207261062184238308819229081878119945267552960833909718171942679101351398084044358169638863043459735077938610590570971703386315547308108751200743219464805481355262096715196805749416920220126275771502238955339152897431765736242095486193329873489641668731701145066702192117745455169094415834408990357389899903383410843981981719274732708452558453343249602362586305663001953790105876156468899130081694260737734862316904330820996260263046242063562840548532664031774381983886569779713544643825979963129660159942104938252927200056066315431793992032165790617108150968137945905118199109249198191746750828153603848676409837272593653745727375798728339825439141103365977096808443284099995108099696493141701898901364994590752254439439253164084160885155429995831774755221017432628094400014951946157247600896762779325414306436249150402070343502837787330210385607743346388803732718231273267416011976721997501059141567824532720532879121997936711170566452557864002241549668771349026037414153154927057021922111241058688519543949115498961585753196359781251144091390453582855174045185832097369895546059221320233671622576878579531561744491368222526007012125701690745078237841459787338683715114408460742117509223202558280237550087173582185006278956381440393920516386936055241804783779654406049315545511245945066797231142849071550469588733889921089531560640378474161645556527342287104931814813769282280835164884256213816567024966166604761250720801989428683438597759457033199299000498072627603398575022514770112688170246057643282201901474150561627247796890348854902033101583281923856806449180365111023492444448058840024909339441533754730305126332993827773137790484220077215060197364905600439315881991014701875951185860838835419148336348034827730378207788928141885975011848712312011782117342510206456589988018759799761736979914873361561183910441090599501631008372516084217493748196811329125000744139427238521126629122614217439987607953631520545870463817463648128006575055893115922658299507562191818772447102403370618312695201675469909068209327879471880924412660025014098084204165253999807165354804531153292766425873986006999090766965667927353924509867856096059297841635608061399010990905254363566466888589389185861639769709858357035883872567376420761675499055228812608419011910631713079187810822865043047411609068149806839428944298144196022351139059744737240737675983300984331504359870491420057774300256990934706977946212441739740374466022279654558107612546464530735706614605295501659092912017291392157918770719105943179253977273159580328416825199771817764117429741184550877475049142968788065724060900201379839116618859296325586700237755790091131202514085151141843469948362514167541067594424597467911135237001062451903785929809438663565363650313403627364819582045523166722372195876862371087393301251411947513287391565747947506470462160440911122263360338399733249072404501538037061440419332614049604379607135682450044299782403938842084653642279316487986047905964620920090127159079326145503861680794353878462596506088666501653007120289913891301248404463414386410643791309466119811596478459147854162343133901008736321323117032573609346180372925403031999648349080743187317524023838400615828283702967449143082277826256719578726790434061097693668120254199500360165450051225395884224535926467439479225293514212571866408593513871091825015644988569613997748504802156715401901483483288090415742861489644281677631083502614677752493010240048034170277340546344883534741087113625161704441524141522098436658013625635108220454432053038085953025316084465160185881140032636672523351852578552517434837755581151134024866858971174299324663094564358456465854724842192256237785624356876709390600582215407619723821868895931182050711744178018033428501268765635631772799630231593333213951539843536826260835996405529968595282725383981249645303870907563773246066439454308619927122124153435100563594445826485496375143568982122663516955969908904639910639097570329842226614577912180329419094980937324105144622560964376211443124465174470028418356424292251925846064089529802528559340497452484286603323132467003640708728507432935470618338395349232773812901132564254740350392638717953931983169706547510494492393704845149657147194231020939900240838070628515511981656902168820990055626279500618389178024325718123464050696208896669045108307291032545873025092615881616832766697815389920312767712936014004793455055459529949716591455008274688048305296232261125233513189853188665479653719695635848808998527056308444074832886274659102381746590467807297258624877235325836332002905990672955048641765010615676927727240411004736539692155994166544880749290051608120864999462966743351799818499641786932162752749971760387995110477745865824662772806608015091426925807772941551795814073324517817026551750747374668027456923553961369889314389428074509915686765696362531176775713038781339772321442042908948115202257454255738051965796010403755951541808031909800087022542877030920495372256451019305147509585466922334002152711352374827656869664872304190394809422050232361716885464561262486421062089285172402758424658593987353820873881782996028433283188825765010698380751457904027305982017503023017848308137122504116199157487485771421586066986695732390807135479060614188391870978849703501545668211959426504828294306009381870754143537280428641112799317405000342016801260584412925074670586910939200636062219771313915094376564487367256584286096919456761736304635023631298039925641608650410382509518179237143919232665868897205352423414889954945271924668084117816488256964814517367682509620055412852653131991861514554021497019244579568312069256144093607845570452023411521829629867905339352382637501931557682987414463477238221063311218958362945884964085686710782497311099275904608399839676718671910612666610723407863732250047063607463054514356551608755370687494702323590689855232969766154812851509409168097445360254134944404547142180826068596344594453614689521968297833454909545796571142223440120432035295239220156663985115641213645140305383367491836164715503938639962069646216630189038871863878521364911138825984861360715448551248320240685321143380821535091058191100207908144981485551719066498201336003107236427990126796046085654358844388017722747459013120372136165101364243449620802808227155274200848516177037952736456114099315431118216442105061851859685638658511406856531100255917912792787235619425811410888605480412173277123814236251433099165847705692562162321424080337931406329791876640628839364780315360211897871606457620279470488210602843936057022528983177270069545447193517508314277996038767941328617133093176697522532197636369065669766689543423062899323417134892990039131917700800127807302761348739874697689220231938070236947998906792307851102120727061490886081911068645466575476671219904446014082130232373611271464428633750084224812305098472165866637949723543089606481492359250683409431245133362742154469244714471586897557308784357190872815901442408242200592098904429251827671834325918408943481448268257106803923296713637918952101838566746861615440072125329117701558305032733302324988160602053663222935110944392378041978737579870856288771124900458741351489601359553713490850322682318202262751581364963150743632315298261620813731236946899957273935860618981066847503837778683239641863593324790084062166446223905097883512950083561731940753247522134030757015651238571215845992330564482171566060524172158924656300176469138532961876378972054386582067723020386538252024470088210765713396933230484212739643566451627332205341011866444573876562205849492503677356051128471942955884472486623830453342650681848699238182549835491513581284611238344978192968401359584052579800104581418282797496617137733948497737815192531682385528867620506158788310227461841638925740489550913394303696839091592888867495089591384426875304866869530539011112423726847400408081777051359664471361057226979784048741825411192730865857263216502319704932610722609294789236125619827316243810245173628597316550087818881182663694641101944485795768531384070796422691693756781469022171373982427388757152013583808812855450246326237314294363038740106147200297899548597894968370410641472147158485550100128779202723445056807233902639239743692395909034226504788025840849530355910418812327640131414003435126256512692476745785441528901248087548743642383530001059341926640234910423304584940706657340162348910463267663004575575683808378977526150149914142465456744921770078632071206034731866584218072230528320214782850511759550079957087077065167095982465433325881453708208466694739178937466709161996181174463945706213373140368977237081205347635791342933748156240987223727108294108313739829774429483622556025522585491800018160135374994417531660554903688364406155083494318344294342963622562605962206006539269105011322465477080168357455104675939786022967159241395473748963651955333689142284344443512075083247399869378959125726419447889689158388288822427974313835643071530001157905474869571620408236291449114916251227680233160854214976771985677297323239198119184892654337010154004170201586312849442961936225028113423385038620784871490157162441721250846607088037350304391181770680489209088228353500266744745797812223472995370444157128670577597530797381479709379061769733899457570307763381883229277953124159723230529227800080958351847914730189455634444015925083013150690888581125209239516469761171563146778630549998509487101482805391236620792218531761181298353998967983656491590131909300481824141301193404026427667474305689891050851161132910707134302112605648904868310265990949069848380404551790426483517389593392094437290555978591148489946147112942241813915767491551873916463105257899571470675198055247334776884170884920735364497643574106293859747230104436582588869489644741384053266068441174135118027653159981543143218903586799338033495425600465424193643266769583003562740037380974819991140674109267263925572841924517371054088104243807515296269293743726693333237293157852087280207776784549790621553287099950445623097688135896180997408151316856883138745461257076428826184735666288988990469615346606802852365215180249008253107320585232957716246929355484014077932742153667764062793002754158163655917117167096568293530137792111272874547668469278310348395041675157516304735967267448624340130037070576481664655684065858987294399094431581187937510405626489166804389561603784451449168474799084427937104486988871027558567606913210301851978733151341279852313383987733136020564940131265223323790751317880886629049968664300778231264622011662876166520060366759656044294512782185979834726998125589991101240915617811482956534504255613817691639009029682211029024017693903181261579380324533116480005960626525150192583181922708905323193325314834103441813680700482826731591665131576398128650333202031214776622895137324428813683448192467856185581713892060760181290750433603702455835465847298100211271770262648037378241892329569706480292371485005590225746396745190416863054061028456435643632971222999564359995412427574633793102202383252336558856710403123596672768529798819473637798561299029060743687420244691518248829715019069600753585965397375628319122923183441340745552527161742717068808820335190727460096587544166949806136978622531279676420665419646941110531624508979207855614717191685022726642189762933783740465036008926310964170903723920655919673039805236570383294585111078879197903550088790432829686266971597436832244803621935719277789096176852636930275976359945957988091402862142703002247823172967983218754844164192512496111098790069233136444883848412445048795944600480003537865520097653980998409557608560668647233606902637046829659206860637342349584432287120929175783698088289459488963239524018167168221912902114066354531251490248076312416779297889586801913284103570058593203293763583476528533181883613977287980352549654566767275476590337716279529863761296829851815958337692182063723212695345198908958372925501503832399697453637598264555531809278969216922135177810434043333951412016096338605345247987329604378153415934293397928932689388147357483186772887365475734039726249153058796777443270484537307809144296406752401410444282467400561463370142101698099101098189978084773198126643663315223735395753210586956652669457792020143936242659369643481738653900159614310814795969093246676805814809640184600635672494515886924657312215784622155658218088316429465738819527926161418185671584379905470474250740310452139974046897816358436061286123248790493280653903883945751625533615709330418144052269030086074334347535704382746410538333210975721771538528054974157031763030693886832493861805336462007556346139183061665691734899864897035946751931325625520792151673740723947440169326018014755279279370758911370756858123820701715579936603366574226544905422643681948811139151560248337643482510029958124549278376974157839405119992570574587306625746773261431789422636378602733129714443737893423799360627931431870443928592407980611823899720424927256791056912738377889717890200832689084238914306914688188955661777558523279651479455563624222072960251089129203600227858518017989304069719534087806330651766888566518692989900775269419096035515701900503649450601829113208056538631884090549332177244601725716699008647472029948065359121203073409890138481558557883369654211544155608825534228119408803060817049108522457324609048465696064219581721161636849769021022538275403525639045500834834534839492867904387868355539561201706349455304206086151278226314810261980638463827767092649504537524003576550710405909407698437170893323985418172529856332921431299748604467281042920700221446009278575471422782301026222003759540029000883828087953128891703149305970814031129603809032420586506533854286112804715992595103176221092010427306219971049337948660982854713238883378076802931662987086664606918199422204573920951731616100897311183877637196087620193407603009173147879495872599636835526462983412732616372808744320777440205385192706347457571979988986649370614983133002201939038917565831780742077115664748917055858933927311724432957002007268513220623632961986303011190384111198042088816361188558506311755611122169834514291509377074907922525824377586162514843891737490177537383525409403043646692548190016941952060596462246379035701944536192938279059356821596096683846816468069789417765417719527212892913414961902586694028990928860540242502586504949176462111389217182244177569963110308927006942339117977389830254615392935040197992569683016975410643532886399197695573494492309342059058780331885159857641854290107290130009185491812788130324400174248291783960083610008199263855128996543975902650101340641038468789315106985505017390988286424568414532333449003797325188425618994482189588156417584604823219885971619151059828748556626791357814312498216708149248742382147922810663218576368470426165604603664666777115655013604284182234690584917546795340294324583305450177057955139536635762329079605160985602452700250942733160488722429120431861218251801030950829794628453611830909319494931776535791849988340813384467493782460907126321070768670619024113385290817523048500428602853708069358281950655234371096366339660509456971501421915201554715324867056759250747177794124545125914698304267591810355833497237916364411463466639920557934958635413652715841408746891564536643979739195935105581710657269967374657125073188996016478544410407656809214355991234338776459149829769630822465352950011746843254830512984174074595252940415289421548376833263665455198467822743456110379412914576324059747902622405911650358707132153281495825989988307249729436487357184526998381898784384010861925094352874428015344125435151476643708865028069447027865350443903781903261276189392191403494816131104135992674958567550282198608415937332992335123486958722110059117300131665660764068886327454637362029504123504143916048890712915715988217192258064309148053714084589208302076124757441232820599746613726618463798719151108050196847741225505274171556932984876736158127513700514176694523897726012470429477045076487364862161016558724556212691908565290500560876175384456242256214026545185233345342397071006258265223178786898825054739169332380922459008681239565293472789861909778082250064899831272827284585810052177167300959652643304653033711186138543597018882449556303150640517325553186588046068311782042687527039947774331136157856314572874364752875361164607393459124598651642107918571391310669051393160882085164821094643017361862211553173880695705774217489965404503604037711782586526701252150873038705482602580348891237348183928150234734007262357599662893064230920417468119794352255423847149090795953144153437059971078834730670570469872706006974832335659925523814066312069266951216430537388075005027368367353173961970200573328440631437112423593661110341024922521390812625358235008244208713849735324091639528976926115023618179263469375606173549213508314671963066415281317869082944066856031026700303746196221469220664298701270627761561190292379365544408965259638370841153354228290928047843490107801304993021696727556318869476490894726614932929522616561573989566557139686187797040221880310340264017079154142845759934297045569903229769354879121414055049229072352352478725258849998878950432649583175743699709722986980379957022738657304913749948186500072023305924545340382397921681443625141893700360106072776162412771590309552312674629203484281350086015472140461382552418614481472191799047727265715276276254649861959345256006521801439482094371466978909717502050989096394583368973078677332906672778192535156882139792256262189818191058048493641318604747746800665229137881235686060307539939881316047200822061764317472878271199444745395437971411247999456573720221751327977546368607297472874030669882026506737244914345267662985106626906863833475239111508883279640426484916151367500398283889626561031922412570685863700898226298346396970701822138931216641097747919467691152811500696351387529729275992432728106743728188766117367573705294509794575692180883745232600115503956853722563528729902831566476128596458253342115289196036152982005174176118736796022796125776528304989285982657597706408577892905162217817004783585561995183619029168583610851210651102199491841308532627712270862761459004229070627714524037111975974919821563893942013091578813304151213810287540860112050334766516020462310387299222037628973677710367594377155641086191514101766277965485575603855729198851243146961188931196791469977497807453753255968177476369681588785391396031889309541811294609540080356289816662544816664818051395889569561739901311330270749291533563536509967054767136234859594013395167641111386296727554514828325294445767650529586693114645082133226047705277407739279239467022738474559352746946288756140493879547130032121583716932015093046662617975007287909112148391241113615929511914776968266992998189206298746943749063862880607716388325171359917628400210756137629059747277627735620750952491660665873128203311597258398541640178808898385597518356767908998035748288559829995979542908569829605135860423837280752918414802987890617426939641393598371341883616480653902753819408292911352362387840756000152016641411234806604645368095411918463368558518764094990426530595525957645411327266493214334016940197624408104844096010967229218918956175094169075678773054356564366154426816935664319007254541486134175625296727621255783063305682140189537704131762516290107146767248584400433226103917673195880993688602298533293925329086885599733913045134072023782601630236626281228718229108135616146848154752856269840769646500627680544405997708335045063085727046829915504345172253453833479269868831179458709633303086250066665519893897977062599252235177534372775402064918498647314456313405185732020390009696314791173141257290730671095090508128241396871951699310150821673022746663569080276699214330675510548078171276040976308606408710448348887638782634987389831693781912438979931164833848395136248772752330963339882890595611935038888624450343272734126249372159402486074365100162367132733236036947975290932498510057150004213679133182226055235868877489918197729695709059321698966947231955300148087824139143728656606427763625231428960582568761544745776515615399495804173413482522816839759895717079083675639703749938971230047866460362647987499219144202609003790861406564768790097678097454329755652287466723235351702819082590346374796816353848369231257968821787945482922693981076764559234604378638707738581921464312187870580157039492758019596485558305502644544297743795506750196501097694868741442730400112200961083597428621513351589805262391790063841967663031054844273069894289660400721047839124557767495220009033582521870214103957366971749468230441903033364472483945765757568636745076670858120874003420106759297382545639849696732669261192624665583331278313008225466421877104141115587432230821303236809757602116012761276451076284732445262397258577814591486608904320823365949430798230362807640827157439134756882525697891541638015063969336527485219939042608328064231727369870638604748026993801196433426442503195443069502223960132657258017883085172103816518718099994623011385239898595826664871109280833402859271032660162429595910648391801600877222102752667147796698688894623245858095110719464486132318403716649227649267487834842222291850863934075748178023222609327235755262341838851760819527695083203561412151277617025555060547063384350554025465193793804090658183977185296435897612370735100668005713216264804108092457791391519243207210870628512180707656180994457753100959453539432382531247352560737937768118998807688086238046857271511948617148457971025719782061157680227369342183900144780860452004195984953820557695310530172729025081772476745425930016425551164854716118137238708391214735054456308696360030291532296907816330923017161853435859357751748461711417917173306653587281890014098464315973471389826736794406431618853273569136624216264048966595913748340926710590677873089950141096535726882380283557127667152138789044221163539667724637955401119283169313887985003130895191136230189691605830825652024194486077760237216205096426270134858709871713642004734580895586123776784393005755188782392024179359236339634059858707788128498181857469147306423992194266468912092819673131870313187161625526475577950200427659990300190101611551032769670105766747801140898011240581540896912977647126292115805182195554800439242009805231008246268272105613549410925547723139877369411530667793530136923219298203010134971074235033452404428567108067789102870998452716260365286381469298009123895451489779026861596261771010463795274476106157776860756046572350074871190521074629698449378213610691633095173076768388608133736654306748219349659162538836931027061799898822326270890875094425205680177402191608046840302140697991405293423378042116680552731244577583306699698415473394474391013917630251581638210081636657237189313088888714207755775218977235913779481455275409539855072538030179624646989592224643264618800453559616706229320180943082848445990166884530057727266035986313870829577537157775477500060144682549261641115951693431058353922011951745862546861159247086043023154219832052896252822747225660014953706520860422035988156736675854814620607700560083938889613279831767527065496254333403176740742504281508352019925886972880833206127735189821428940107149005430717300936398958284568705297473905354943029372159901365525127151722591350417062865027055724166447107174910695798695257742753253377168620257185679008780963261277399712420359326540518537215612995020982280046675517629154347324717496126754598930003680369608485023181906000422112655431783443932381571384277166090816140664355189425600213066519827313160703344054476781624276543819523474463079951959665833494287799860831997265378037015660924263867002568717041810126751166460061310262270656444461583465244738789940230307609457120916227660582969989907156607245375736166463308714996178016165449304639640513221439639209725109685015588977809834607441803866688674615421156115725418156711751732189792764870547519860205556626339472731164219351474108167733404333756614407797185540111666300643589811415657533422029184012529020726222369040376568473823324599709385105160220321322745410919040079457770546983268081432411923201001433339733246924263678368330979487230827381333765229326391425715245801087371540660528846195753526814048200462121140795041398135166318832662454735087430058876957216875109852896617697999497058363445050170348919119671239529118722378948250780505742605585806353237628268878224589134322660240688335405613766028817506175117226534920837167532351135120340940866175530341321200921389612905682074187329603367381262172543951652688663649210107839033308614395684181939364140663630492344040312801354619309770214815621393031082453089888654058866616082017341115300428512672477989987339841509783259504608116778097467957867887631539648109324097134200831192935100071201559869749304598049360555855202838809829701195063908081508219880250449777664971848449268627639316404752075970267281270097336653481060202383081659616388499635997975354212514794486986714639061490923881465106566393155969616557182056744799145690219412610546406513921854331047404913356867877621908283299187090975655858894788076058011850849092904415369036358096257157973891773925678440510669820483534718689639524934695703087505333960845822929277500869912972435697459476014690825540174181330935073523393082584345804856532226873735462562052040360776283111117457963058226258497443211731511036001766560746364490969377749442460431685883857618587116865274567321463527652531323611847474449622583779441872981458306552834147893187116221390229450423880286588058776023657774948488775314368202381051846749534639603506746546369979228627654178327043327107172814543840968144639877599658047469842956594326943844952812957999380463529116332766323295533591730312697665740409516561487139690528713566655293883996527708957123309392329242676790885804855882582086261872280120493387944419888817851629408768990406211485698523761272000162721765802734799127906982027368281643099239420055575876440347236891124741688534891067559831794752120081738805930357035017670175315127222626884226189717677628771594472956474510541364186912421850043795268981493465426289881034319930562305214428707330420607509938000389838240672343318685795596725281772566907205329535020322114500917498013297360295585462891818406128739288344594131006450189472743103800175555567621458846370957404301456824993965836910197588450943057214910295235768129530618706332300253434347488288047908241249644380533668442477052680778857536925988522022053106077867451772570017003189652552387270422711703382323123040129141604279263198755179920781759967084458439336789184212971301075023446191509752618062658429976181936275278244905429344305620172741739028131763860315159983770595570291269887689905369698515163617521333738955433432929379080780999544292962761631577725743308941908033682610410017080444400281050256333373253954624875901618098476800171794158813653059969781419291897794716905598219716748979108846706827149007717220595380366387166312763599788683366658267164295940526839711805396152847935723361786729780730932783374209795891026322252782730515990143751936111194664545212285217935792460539466263169107549267473987622781410511476052914716681811270113492486825437507374862979160364926209510197531739625148549463946277796565717886012622253394238171644494794719586630528815620742058538581656322307924203382188129180954147223238600454405376689159268849219788512216668093137529405260468525971791962108170016599815802198285915663980675975547475006427102341263677395328703272785854673114499347428857151386935737958008207463479562042008280472393818634940421370453213021152633586525047317921833699137554057758151949989750442446364724682340591320483510225859121964243977594595567342146832858869377078575350039894630204680353653407542443402188457394878664891385297927014359384633716410321206374690245258999295677004906923064679045433340428866372800173724427418227589132556176744345722172201133120983057456357499538951989520996533798622930230339031431147341522176839485327701525029356422935038853984566272963741025174314685666816276043652349879264960072722587870154108959579292040573512814004741344589832164440121184270182981381116343459667093014552017232030191161263265423491314567731759141135165568534012807211881469276110551004097220221434580688034340124757543650685784303525845709790251634239963283117466176742494973559805983424362419497259766091675161827520835605305159707958302702291846677037162404944361916170279943324680229479224485482912501118159202402939678945310913859885748507840574999259353551894256811090392864274835086299227064029745467876144073805036878067661572401920115187918725596947777563455639208148383437205224463090941288449481307618967983190425055177410754251183743952195921409686361725871685148086902905082097281915756196917294100719484117100411258987816432887458063700663491856867574164456787974005607601574325686548273101431065213342905825576232185972709364736568141490415298422395158963172093472663130303500517808598249496211547243826588256692273154813553093281357216315888705584658677323363474303368961555094273929869836095523523427024839436322481357538144033711459383886000389342720398326432929071068108135203016272146271063773434442580075606583261080884432498388248609550821653495913194431225897044748869782259157644380505857479701347668979821893489436079978844508739076424029117703232059616602638553576728638715732368564749198640565078312002741977676353236074908821355677892564822442128921113025951208959447649935061793391544264332233212809946000507447846098426987508917460374279870057385442882666799006242272934235989168668694059102963815844448618135025519639513781777858475431374674651821921504877721907952549502035633861287264928258466218583090641202307570230761708635652522630457529594432836789590447936962192778662965420413439232990620459947970504573352923598185732092666985481225580150130018864275368781453688666495318317968398802943065838407441076762492532231806655799882573871638465341473092706194935217096186801876053975900037787077972299568428693563139605379404798214528021333393878420710041624394699319380150281708974371525872895632713890111604019170824444334274450951674893900959565596292059046860853373989277534999868872549724584228107967229647347715171222335783782916820372640790301938549387658422767850839650849830202522850079493373960437293151029148054079184055078929422358347865475492486421210424029267615451305357362159526354980881601818982564129299060007092547354104972810653601859402820229875805599996487555183790755366969289864921017177761497121914629876761795977511170801082624128051577099149642616225535495555946958902722524377137965619185382644338166251099858241690901640399960748234228966847139362344069417917689660193905891826807701918000291424257214751655949053600639160950390615977253605130202311377480412645254316215311870956885485479257363465508553103239211856526070491386549119024853529708964214404794430338291743774163063528371652006650535792715603821378248646583417429333036987605489115299251407794656608187561013083245369394157301131156472588447576907285893570327838384483181709166532596261123528589943163133509118388744775926132346898011489752645566530838991648195646986866939451265051055353046261672638608695981780886525564713285137120846805336055036296691401961642055001481040270625946709489384355866257924714567726127007436870322650974484774237088646732076722236277269381783246064746444184714154039566383560306690767096410148288181762885815881084122854122996094243669675575828310477602240697706692578997579346175615757412860482018234134817922040293762916266075880430734630255763619715310051517311457484594397839040400176009518008756045979816220031956830775333022632093516750024714060990479089658084726381522419448293603211171883665348647851612175829717043375700241263695904815911646378644700387968745996110493699567434142725574595527886849102584388153595073951337412045238848865277747451049438594235163295965952955635747099065885520917600587103929145273496115082065339696771432144260225480935133067540320867967128802940389998847368387088641172093888795701475735117288709037237270629406912407448051874909391218335463203252533218654127527154559624907720459175756090430435319187703655483244228050301444576105580338343120264243680310444825512673688611768917046296177276129428602251051806372471083252826065013998321850036430361368256021499635834304207723115964048631050671262017586880075690185651794083973951646488923603705581065174872029642489709588329385512556043732664118051748925519771520558020705240959587493888585743638064545837993779389639521502060733663354742665961172977404593311068721248569199344541879452680451672107065437201935844288187863024903775251493662837474683281793886785529649352408454548945180576475139943938469334414681084669829227512443258188223516563113459327637270975074668327782473245410266645318125674921815857358343300366826781119092390172798910407970648388300423534454749202913405318121363826690793103444419555661047064371105630844730515976945069515935923704640351817901247609978496876911429916283813681462061758985531733463683855116878690147268651137816834691100164525289432938569751596372742911989405022900293261788183777654874749994565330298419506489895947855030092400750860610428934064859187826777757489632768978687544256017837903992579183411456130889980255703253137391579462591813029025598528067040477604876890043400874181147876985683700877422847724629684362220329542340570020944675017062586293576831451332866992978212088654346542631995802879084833496779090930389702730640834705219438010879771523775899488129163111129072805433306669647076974289660675936923033536484224599947323351466007955108934785843222379378559833234536574228264856289009169183769020979870696375153860181740092223408774592943422453702755872528233852244463119293154419283786505030356326378748664977298832371755174167652977796727067245273872186752022100166144981202994723860056431342988347013661920313521429060402930833520741115252908751178130687956205505467000155718193023692372211209056866522789960183347192316882522494437498907510326859422339946316361257911575749360610612952978321903000323736191436535733461968696519364018225433477729996524612504353018357985123365116052060026507267855905293345010987420887077621381257040614202573153136588259044321974914513467006935116770191592413073852587225965812311557221387534546546170402278325592718882478579799923580736597091122017375137061649621336338891866018991804113872830831831018771868603596197009902044527823765553741605466204521671489642358148986712892395861932996801410619407539370379372135654069999335155117892072773327626565099798108307579597870936937723949916472526844039844728877098051528982051440475219805022565887919866469197210989169310831704560511152524002661858382654774413725153863619578958195930863583518721968101348156114981346549119913160191695177023922703089309845863386173169284242829949176944352954356088056383646184581309606174361278775108286633971570442307831655294504558656358390735624238384907376726048509090697991582858881506573012239451474637532534896051346407804468090659651541062538046082917887365114219080331051806334666000202173824248545511362153563248721994369542167143329271669202118504685157808840406642497766958072639129214573331653956125698950379624348882795075156058074427057180525315872166733262662130419592147871432622841341586490900069770997562247282184031718963635541226441967540060162885374924666391485432814921004868108988347360015366028550968777818017336763492951193043186441907290106379170444711516600418572248550643830079909244702245401754792285456263305678436906374010526345992719901469410970579326940471103083783781357621937532915542158054776158974996201056019210199216440397582378396566306720151625739254818290658195352339800913185245621793852737763248340647384522042545315894256999747955632482810358435912248237510891664695997656473384886764326551915233046330121619703404522974604810417339356356577153230726267100707386392446079710790180697929891721428464876443514614484110304084605744427118863738804639626391168186864888129091482262243778340664906037238441011118072872908552292813058336935595575353188449453766847981530287905234206093434039238418715374688219373554545245060953502737275010729366956336468664607886961811952184998063938950470606048397100740764366139541628124313398377133884935275157856074124255162826065093806871245075138275349180698902660264465780289754423789321651841979540778800320479544133910865876187276096128187211776535978484656692606860117498066326840776763226700782579500679927241164250334594245920788247031861275401265840805252720461230778305637143862874401218412006998242137714090345548658813730707716447260852869184305362951438737513454300427259637251394097667285719300002931011824000363789999917034858978692821041953017772052657018842128351507621828767001983797742963144125519178304943961636761193046538406509511763528125753939244253257381594888898636747389601734684716403785405865761012210622502421856233601140625117877934476861236957742796930252352698541374971897686265940970727668728661388752023552421071475184935870923081041945979020696646590854711972896100948043980716121957346010071991672293224573625284855212165816928026664690420166952729292493198941284371639591333132712977051210047646677628460697009321786057220113168761560429437534099195477315277330138991657518760925383306430091658687505021873696943915269670257932540667211564581491784738699446138493009200229529079990107517514108254011127746651381984727058964950899914148837216227512836925561675562279801457330310372034300294843029354432834997481554009818106093182140925843605647737429948496292378664866586337189061717132120601729684924753958838067318248924368694651603640057307190613498565358060197363329193969689147608532172944194938535980262241021544316557844540781886268794192628116774985608909316204092739217137551289085293568923596567367244290063963235202227665679915979050658460067214204090121637772556929162390120719917118046937361433485583546361893588772136186988610082268249201860652847752136175931913666021025821866460686473215517213278475860725533453022989133649078969558675350345231499604408661741855137317926265023910656449336693606688916968224146300817303416020380560449315549989167696926724985528607814563826079178085388990690539942464985682051729983234581659499296115902121111593407546557183223862876469113714785264238239598780938171747637850865121395609729097623875149402942901214903857353257423826506134529000236612570138058164652435056865497653189934850673905534661185284300426590927677672278085358077122429581930191714476010739678421154601611930532105615968569116505500105272896852139341090533928877000937727483153051486306397128714371545634409104742231169228984233135832125154896006864283759224156976183311809506950125711423754662104219964160714103390739855475963731982965238738525240418567258173180730893528061542692366541937771429590588526553135210032590780586053433108903411434498780023315947286795017035621112625486511612002840603143333162934723221638761642357277880139807286820680626811791298268930645571674286468724153084018080074695870144217878825515825165896880632180546828063181281752682934716742318529091930648976322740467579001577497232871489855714578870561332461111189946735442571259824602262986093593826367523843364904175634955681829155621340082270095454620356011016981982644394407173983910439549656709413262706820306267345617598334033028953090887043925649926544636149761083905324780132562255474300998077470258235258901092224100912177139091553208384563570210248555256594922700231433693863856948273676211564727926106135806047571772747848224092768961811148565803851664203452623546410368624609250564706519430332727246545395410140872826087616385094724494452192465737255325856450547101218808464307586597282320603778280643402265649809571246229807806841640811821626503483946019248356471068113491887477685320630591738883887105326403452594920964414181017460921619675445522122103776401896476612790255748322538107903409019275502831688482270462294379390337708106804170401327903078543309226390051430895138434929980104458897570143390235044729196336430295447949634928229461945013682343376822956230125885371485579936347195036751811543911586359715010447241184144069897025676907638303525870101086578365837098476049048954217271579699664016045773503101725747784230892950651810099748580128756467075291260494435610432013110587808710562153163615005446983657807453303737568656032107167641326374436634412531442565676423847110734415031686292609540206274770153203737531775299764004220627209022401033516631843595298711719365937165122736708065008108347077679584401707822245160706816321671378393910887928582699655767799736946286848737794960165220369329614893860922444812024534940675447069498225235650218356475832404911131249561393464097599086048144757927595073326778681792066087425361029254036851462635730001456951589547321960420583319024558931865241129014986009150583829596704228940927391522642175759261305638884982891551304844665027906708208679166086831094072609249955532037109646080979694789498094032550435096641143454419067449704432408570413397812269553243921376320687604974709750594029079485595992404194164117224972418322849868798049327968553952354800573678487003959716191116273476103330066347671535777769242851966090409073809997386603396770793975803839216508039296952523693629138697470596489774964689955228858733686665105398003145795573977831570186622558654909408065029913901497153880353303537787650109426419672651837006647037095978897377719402995415490741054051322538138601686400655140925931208646420955836736295023819368441551462744377650160408109353078505432362791665604604790217281630243101150781638437163650259606693713188584875145378610916900956071262886609552061204947152940975354299441467916067066721078741534239249565192118926642309825341835821864854527326181898887659802763314413392492060229357143730933856811332615207881801171867176894617645460011961242423945085790036922271396785719410946638213789811806963108755602184269323186705199359529955905467567354245073125668645230473944399388186431617681968861656750922210510749692254806953095516363525844990136041747803861692741411096225013027320349763326246944176507608388422274095409726157407046318919417483646947653715306153300617782537772293063079954151810673603547180026276497184332569029522887442424199108512111137249342144425147766277536840709926023664220634977381906744756663577444250640373094583798826501421282523276219783692581903659389954395409581288457605673606603766993510614323361636204311975923442419375886353545181365915535229793654411173530128041227285806333220342401414511286475206462733326965221726771483140344966390066139531520791512183092671632382499788098111541103973831193945602425613050919709272718982036467742076046788616497785601801421523524825422024020928960263122310784679736869539049364728400133381323530037409978463095899808406127371209828960300718259967767307341076008180086631336683136206930531738168329356226204756267551551317381318921246862551766503223928578680021427058007660585615332851024754370633761131568108657087498355265354874461228412124979664644343465994279135601893329374426651564553962786070102361946561480287919963171257788052683472985391774411030553962109253039905787727727953468438344429377869261897871175824255000278379934445647860468323395933726794873175157298767338141592031608918452906172815177941364889565853396717437131005269374694557260196516030753230744637266161958957334880622332716764750257663313165069496643229945035242928564850960023011929155628634372891441087976502671720935641260437220118598468749440920392389134226468170562821934700444483975829358760512814834964464563621176313455203628612547419630920510652148967940754637620330855194389446423751571003351656029306897648317933951778125151169939813589644585728707986108792516894490476279398290920383666223933042300190321288715546248107723345698616988777932916332350377807725513263144025781309669471043753663557508814332515267885559449602250455771026538535123927085516032263875304775753188046373378670454044024517845604826894875992881799952667355001463900349039845909922685980107215162578406817713218992750663498168232158064058222612725275127444437116388215457007404937540047747371338117719454902038516233248334024787880497359800057948731094286831224801815416240099689080559733804580162348503448448625138225287305033968477239688313000597381807712269585944094153877887478027427670367795529338378466181071484637384354783556584245181284229023274290495311696918111432525724807155397057721916198542358196735217285338605408254674576347967793973645006350666383913101652944387503638162899610777892162815723387683685762882201478102280266775749920169922361587844746366576066733790481966519537979902983049962377022596010309204559295369809094834537181382940174511571222316764598277302080915222381155678394702663359669247006616898535613929172191609815085241925169293632661843115761451181408147732926629462145112061227023833460382287544291368981453197490556070714946122521434222640569748643835158504133166724971015876812172519260812388226070709693646557801912398679980176766668613110649700805048491813602330758092784183985085942357194670005340596868165385014147738318340172070674514391452794610963812745342055550092198032701181651738571587821647452460258782842944562411990203754406962013346106654003266121124331138726809908859269290272298855315180103932737218986439547945869919636735951413201439861324910959171932179135338338048061503629581243684065913712477943471994761392188275739633015560008272403954483320607877442086475630408482927510358130305833193386303453782639393309470724556231982726071822514633247620880961523463001879950921980073873568639694651537739612508156442397811671020324167442294373206942405156543109341774315962857176183483148752172265352683574895286782179434723941837033070289203390616242305390849183566129216072270693446973141943163759725056486052453876662586311354391464326715629858040457745407865243084723650297735573274040442522397557382143383599893671022164174570459571706871523383734177064946722984575126057925771872044107597290739583429735425396072601611294610927818625699465797685775207368974945036140992418218634095009044227866858824662672611607518214493732208787006654077130211960105692536159112120835735374030694917922839935223409421589820149675018339456912934923613466696774858352458971898976572140678829163102518768299545776105064340281342027217413346790022634672343207680855808775981307226506108011107166754094085823601100477282330065701550217403437699962677770489593058187100043154627609776766385600027993745716481981528104222970347099944293485904062569128034653024430928477169289209873597105846667821950607236114029519675329334594853410136104253191581531536657434092653792570848435697949712942970805960569473505032322698255310254655745727340566121856837304719645007857488012188774147585973600918862520482702769037576253990807081577795754250731219479665806791818709467014302683752760512679566107957346897987148030287667709283105639952338877227087185783783791608592907115554275498020320651986935490721561724481595481493709755557880657035087768058214874514350329626832404512454563686385847312746701078113714388497067117912736772384081033231419213104245779816006294304372557385121276979950671827268773830473838109607457795195737635900515435145696417844561046611148238125447391740017986055096094978714141369758216483155264669203136435371059344704511044298648590991767814970664555161534026826050497767981004215446991826043341371374277141651772908122998496433276120002157159841758708191081954647282220439011188401719346983895330653377305135755117803182872232804819740656117177324298140883666347881343024062676798508427485150633367475819176477889147302031814685229993475199772851622287566537120815890998478618090509400665143498614458115794521582239604362103906353932216679587538830487614471814048226303998864335237210583255382761587934926506775063125125101618160223576353064836679774155293206471973597484714622990627074451733138704043077098642354913850646318062517883046241873065677496055816005503412863923761374542094050674797577756606009504064984768174837951486377645801639249896346638533073842896765308356870128509431460941751302533473276348031719329761118105930920807693692647797973165417046993129377709141113513710147416499760845861997850950708671504166042816074175998111436151073506758050613934052457231375782263245323409798885331912100351012743575906665086007329950491139230141892146162921025935170568081127919251858868790286578761959362452355207539666439147045850017983398640376934058292488964923003974978646865631181018468545764212214441193518980582996888806154968564176893787458493515240522236290578790839038372147801767785382199322009541708543712010655037395407634265719117630113753355228791401074301927041219472371830913682042754019577447311187651996414075942026203932295388228326403282441342726318622920363042737572100826269878740164455140951543992316967659566406007142994775839964013525912656380978107995225682275122949943179489633628105471629184826306171148808965001426779582341253239640507281795060750917329035305454207397634240107721415171788526146220680228282023035729391550721346277373806699766567995617534242040686192140908043954509152954788349960671201315655161208232402366773877094013274544522049490050190142025946181071400557064238510582154112846218431101963552260880585419514456825231533264974341355720394032860953059657531119423993096930924750921185498718718273454775325206789354754905610192001844050604395762769578276532619322662503520459298436480577706895962909089359406689973014127336626790982737609732967106779896302764419599139803968183493796331008665909496421990215417230950511337211000906473888653833208086578820257531178097035042945123586375465931782890610618316361948433641693470917346245891645190090719914936196058363875412977739940220467502964683520542810622557878166035286708796088567147999225359160218248278121601334990464675995069105825938324932752508398092683037877849573749471482747613396298443693353005446053319083810815608365268182019111263442268448717709464396865554315319015461156962491901119222826145817158968811207857716810669288399406719496794568740608705560337489405825080374690559324258112610058527968720652146778209012852556383573760526222567809523450392141202296207272298791490552660380604974182520476919937146847558843137666997462147069213912841839006138378538732797008399083513451583242227267695668055110186118384039522497612396497729726375291315304172945834271852048729167874285701844246810654114111434916791907137283959149726245463256697365455411011487849983089127623987950891873185044156952705360506035559737581174380827043769709413444482672732630350586069819319677680530010497424605180712674269714683803296824082817411062148769973094902342376234092454831229310373919295727577777333391398929388279657514915648354555537548916535667067927488539452938184472130688759974005579643924686306710487746508508923033019064713992158375303844916182674836062446552604828523172464833987921689095928910208456625728816968032284005751732009109384900934367100286017331760368021401366079365338391268518259259037598756145466608543950210326936075149035165914306024988949830029058843087811384397391101878871528343018049668214431493954862868294576608607225241842623926915610636848430598432850341525993019300199009883518527533335324596168474721515924098747745016668991697159302533419479728242090298454104778085416974054571741984437573256679650773281578608622468885375101129269417065679361223082358996838142206840719037295940942799342994966811551503703985099230666406130774001391411938941866232954034002823255899669726081075381377005884538765016235141111509832094577245637585360357511776953368212827579641584739864296257438958502867016389399360016297857146845937087521495482752714999357959608031816886264957308190301188167695630340113505808988190283564557278785177252911436529379291997999465954555300634660365628405928535405707781400785021725029467002912217615859082975482629437615800978914703544965749525733144564402319841429262126781768498189098752431398399051127423743736741581320800013311305162057702265553884237151290989455117391441884999629616148807974428831050127486908243510807522227091493725666392232907492732151322328088495914080186855760356583183732754681923178578473959099160433169483282498543429433133492330936529616107285004191291540858449516339698745955652054038671425684618115041771408694937053649323742199151258587135731177419859986882571579755130832750666769584504825509580883651571371395591616685601166751401005955979608692061856932498447283889378491609471539435456504407411270237283834221673939868378300174759058233916084971281122315955443455401691854581015114823448552647580785609997574614362161465817105139157608323589621185621519710216612431915020397545523016988192593472043438672290790750475013166225377496614064431346736387772127923891007648343310673263579468188706599294340251192960635410548768705187724967926553549969290300132994019781058763037434958218918005866553101022465483157258827757212414292088778259014650143325851367896485450365540707787625347023191881103169241484268622219643633772492857025084900644486943732010423565799886040415415492564811990370103478827425994677028386159335775312399600340504338625603424314985198976897518796442044176594304177708112299754735502101295678876723646767741760650640747060575696281029933200147848798551267512997848649347086673825136867786757553302124718778677753561315842247136167521918801715232941149485332292344593843961687652254207812397012652965743363003653228133269690835205269277316661223988876501262821609359279374847915547251057148357403440625879786679856089023743504146073662504357151924911046172815267835663666994038132977303451640111717972572242318624676526554371769142156831913778330430369108801054197555994131439438794686738288823009907895633778913731222039074066232712154852697786464772532585392930499734912640081622269564695957366691764600810556995493689990870665538747896484375621177230946907401711375634352724587366481185527853658455941826994055630217697065347582764465413236948196470303005930003742091981498813539628897123912607480535122302849684766469625608759867567807132931077974108825659786699640544711740647572816373317223069531575634191690952661193948227203324604798097108983534956157743975356539081460618883035547410510989723933950434749347468549729247550857156188654735669440515157885113612122776558123926794655535495112605322545376728764178505155036547010415851792466437586679486938775040291972505906063576117228507098632424521376151387134801837767978181222357663445580416384394844606330211901519373429781081045691194602506199686809408360053474989209624159027530442376171459074759957751493218882201027772355757757538900481180183766149895739008121804470184032436978841012848962014290316874773696321522085592536322474084590575169272251549136947092631602957028983066670722070884899110407057127859630726713644902631303690574018338958685504190865527706099768163968002288164563071241018492646381995821385096976659076647729046872507412271242710299597616349076662939550272385268826933135598243085917073165682098615945812811233122370610377391415908685488870548493507163983273014959216617106848078093052760688177779763711594428872994205797289542904777652514581396211663858169316377675884750006241121164831786504811504772133773615103838117195128174349181457860942575690351348259522929881558589075731672652265928405600364771214514139623041228625652995656308649150849819621302964018787355107097845248759584369090355032788993778871543973183809051600002407728829373668814306940321306069016024523323857437770192723123146590699634766943070584101451034784206112102564908598541968374405369784591591940897086915879138146004730787467793106485729300105772784727289968394487622496582177412904216341558557415792259351545698783940260327020703319014083017043568205965274373940012556630565177065212235803143073708169362726294711124969293340989731507243872697928177726946111114716140990505850171764128637154437957316959792730609812289761598224414718460471101464603232286801355705849031819243167560635671958458961029065638721114191223860583149846314502283662243461753900595617239554538528725990577045968867311213645192022874044438507914797978917097899163480235114591784966876517789509899629765326060672136812297022737793858653472490807518483524721431042742206839546307862715268321962699351825332249916510272663614062789834836127914947142772276158728422343500071830438480022068095360199902747738536102505790242797244157162190590266722575363416437530436033970534688752011120437307962085420944888846971627326532251106275338644593888218859093899599024590484159047093172618329438988411770836769936005237678118265969902853654460157993872125890179291588105730950974659238331871695317639461509818168060183833324315235397861034004418361981056943380488356845351531964111896808122603228323893832612054114387989212125690106393908053659137712533678868104496289124048624719907313564336448961853584234019956459024671746179236454594787667362750160777103837709262692205810249697224989086317755835057647323558135650202489694077406536444137767433665799599281387602848359793960102559954169060261436233933311230546980742046048251800377249908307513918775794016655026118788800134547429522876850189128841316552929553033560476290977799285457731795577238059505155415561467355763695237969430985937429376049807441437664089099985268216183883730793403160643403760393584021536473883495527954176779009460352355017654473715964980402165767402357018089020803783248018048243082194507654644855897851625909046977819013828763650507215562686104100468482382899701855951015477641140549305672160724687174225010115418710702578832602806723153755244867887638164525559570388812053518483151640289469298177855933522866177313099898050761844323495409865178655023766281063807601968546482162985491302013308073061040916714131243444708478101103034155610429562600613789729967680223824115216496140620315478302691418334770889674604513959447370905797955446142400386342959726089700424879568599663938069325160703041510695321046595445419413527928898093844110008632998077220202685563958109554462179712813343741974635564898809205892043170268100066479113231489808481215247437347588550372114553249652414122115127481820421022359734442984487414588203824133366714239286612698136389470000133527745452141791877259962204603895699597365386235965313424383754965459923674522585758818390564124873467802926234706763395693830370050014783684028894924182088323917254539346329192157277925667380532544085340451515097625022190026817006995652080015554916524656125939534294119967043550466024130079605751949054619490218227559396129809097066942480344658458898533298629887103189406654569663795881202781435472279009530291940549204849525910976056512032132220097589887293195688781893617419460383504018494517873313001649939761037556636224568443019695806963076005357934862989669748236118239319468691355297683139659963401463132530911994783263335721099225546547909393912358221196231477529730046892313591487122552345907618756710676802437547428428646245441906197637061920700295548790298824287730971382742128991469800327091766415371861930993339695992712452444341630668207850771065414578072536001339505232220100917357916374605631645410638444260203161365570103031381839876741125495582773439196968497863717983222409030891338871616468160356117965025857427089199787074875874956231606378365395304525059517562529206919227156884412529310184692213810726757717561767826429754358087133701443811293621818171385764003907002064181163164027099523076823954138797478993267410718971706019275152348256577212295667256854369495790006003741791535839685853002117156367521423900168460560911630224089675841630058385814115845428018399462886427549030901896342797619175041978942931212207226504515142357323866823933831797591868877502944676091345402803564297130151242269581233433852577812152508913739560486814293829366457404273298615719388731548791162378868383110065303218153376615717673672506020394092112429244616838974611552834570838857271066663280987128565496850486121457937657758020354176621606787931596038106789593285719113591745562229929067496367678452351411839914651339741853751004759402192930379882615556903341109899103019278754540482120878059617650356785672079129731917926778848950108658124181100028636913355875657311473860669348193062572463725920822183706646086368647955488474246268073003734831236742998830794347300891708366572434197530420890600373682005002210839450534440205775171876493830324219759544291239602807809781636932339262664169892003215553898757256864745323028623401394722781126050918196333435208455982955995480290812354736219908715969621691107660098630833603626484742355439933949730114974393665275118267156154783545385682491782208035517468468752462872652534315057704290359282999603797873368869554217007988739671919252253800509664785333781588914194883036479477223729067873748515536686825235066771256310522316329127582260464744664739084308138019087855869564848033937531544200103544184364472270163165449708761794583040415594036610119896921732001585377870921209068104497668340143792281055746341019514388409327602363388695335027910470183271687519610643146224815937367925668450374151553129060649477310418939427514286727809401746370170435100639508394111527777394345936142529357430021724827342575749181088694269936320902601859379330490536110970320078747899644905224113941145193068416456709986667152316275672026068203998036361783083089960590762800262994694351777674880600027183484366391319841618674473267839851573960911003288456829374637793578166373127980747714841432879808200150200507343340000732760746949165378890931685896325723994217433330641476365478064626813519262226648576635543534568184806069631309467179585078749608091946692998002148116644734105827304182770468142308472170909391008783780034847860092926612312666326517866995854727824483619085338659312374033022309995484779108392866349559073002106166315303017938580423904628450126771173879295867270945561749143127093555544310998649702919718286729836990177762549772971964027782768279875946427143786811313706633068111184587224628883635796562692638170745057435348660084211305372922699393844147471274524132711358632141913149274138498902773400042591008745613682847072396262630687430606363183970496600486229684743717384424758850305198736567103231689585259822214140646263278159401978156132617175644327071987123820514473667596294345033435073181068677173684519893109469270083967678079699794201821584386470110905007411636826416393366807373888879483662864106743281177824401689246460660823408415614279294138406724955944154605997600051698918653830036986188524932869235714028856504010346251148769595565744457388706510012679718121384683349991504014152468872667991034148582831890957760179792397064917827934182237021666942619437493244931999919808984899462564696793210555029162881298599299572036736535888906259230713179945280575553789328809349458546947599794053877809426255762789576662697042484548595041229188603187667752111676829604972970958995953185094291821131192671898331752617625561312760993536241305709652303361684304889393843788239808439712838101193824445625455570303937118293935888157654534132944444176332376006764245338786195063818517253927328490557105284615676012625094824971265900866898860650985224029981219094218254961110932644461777348428245550801440097988468528388671029758374504818765159338034870565686794442142690201447876261925169762880822113710236631184670743791893295430501630315314044526926039590240756675515173425326315922161302984930294581057687132520618669003416157921807814022169542681000279399025371847864329892689363933582239404477690822766724311901050510694121560088805960279891657807774365398326710595271446783348990093807359927641958704632207553356758952324159092862317275423090664498919219442207858320040161862909017052255859453684854626335970677257262996456160861908502718817764536186465448638445961249677503950331385681266377203976031493377955594442576410763610084551391593844839767381431944668231822251274879756087442531644892251247379203189454752644726545770600122161940607914441772807029674377892259674436789275979885600232492009379261200778718880972697257533911323969210887988726422799069744911050012266146180805249824451838196962371919235409688524102537637478828288760140513625140066671126105916009849139839501426180225189629649688479625387853021361584818662532986769565029851027301162854408381455991006374876133204020101840468818541910084824885168693565486494411083249104935400588872378298012158767727544451166600090613498124857724470573170760833545014493018408950319677864934881978850685103643922125787525018152971922612244349911588753887734458817000485224954038494697863978082876130039269294531288003626263087327808390382570674596904510998366475286644282571586744814819086418482867419627312523316043634441753091965149768464170180222049966834458864517411509125821474535399998107227640804627522361735589554760045470950966540954851095984452596321473836189343677786554194165948277537022367790283143670696807337348051965452379998746959418332501722017784037972051965514088109431066440382959806656757956024940563715802951130070477734027748989829349501193571718863388735303395379315750481937674299009946561216159425662383092243886507029796337593258255968143102006241328634277367859529679148773652866475008228035043994160897020192829976605900479683977294645861893291737342080697867171874227743808363882626607482947031903236280201740621297627129349912128691671796905117725860218974802561774243141688458468626919515489306603068524239709832254545571729629987931488482708338108590158350054385272401326292462905122484875771392166171553926700177818355645524210250678768881801114005535802277000688531902382462092590018960585435328441952418015599554179151650128138129774706278448680177282309310768118348414727062200561190990346886212069079402197374608532775965776619256565029549959491245422773037093052625772276872617669492021365946898189203341549993243216933797460697954952567981943564898294518213250636465576393116676925919891887949019112787414512171076082502323147923819631721039547017328076880831542774164276757553808223732008916865466175676145446096259726808664689415891220869639689895172082564698410184115810137729125673603532707055134275499708666044841474996310678655991317065514448337077838727860842424911934992327598617946920358515216051613019690540613403077048829346263787401083695162599528358075154138703135692458707149974705025226010351900624534815332663818223320593804395538337475097341440659019843364687073689324554845561902650927195717434958593545673670005009744516155556295743310469028015146247399900686250504863189588419685535734652662756920445293362685130045974242915314196639310233118639595315026937066666747326755218570478735946589414918003305000101678223511111119176054205805813690235342656802429655719227316380428462008641752575597017423033158263169699057004178810239319578700695547088692198747772564932386083615926328635131745464247201109369962839153040568601324787752277627481005672259401104369269967872854043545649802381302392899346600190119446659860545971548270678017385145818956214720813002287386042439994001542217944626628611627437007758497858693113011716719925356241084427016537434719778066394255601084320272770416332805077392005302322202865971740899459922612958378365954446453520077427802481580251579974557330778065054856698833105875798218788116096472824108048697823558102129961949187782236819402700995890382140612174607636322711143508199444690169513903344999138086711330299679400775822299767132062449947559613574947701342663395549508685170340184928737002986314414049265115969403497167074887396049508197075193164398456578856458227324895327633543410727814331482393013291085085970690097717002132873612750678899874218518577460760100067339490932696439747833648787812235797051115789486983259217304133026656178048409572599810782856978696661291654089087974997779531356003819134322310170867824858326325124735732370915708485495371610555115751372930957120800385745290629891219279281734478402827429889228932638556817440938690475873752942568894865342963449921931274985020497556099125678270983692377005467373576165635288444463518604802634137480527265147402540345897105644733893921217294419427622473992809409429455209118374340230015320295883696657598958459327190856218416473703257322717232638853492479575232271165155659898353755877123932976046753387325356650161145067101562123174189199391955965642371109534100094559391318102676516181491013429007120365645373074092935077690521381431927775606437109598901541147480048175349356431231125351850298207559765791151925717571828009699698776820875389155032429785024852365315507861853016300121369391402270783447945701255851083537796940425741294186221220230275104104657627928855591052695543525775233143674430432554146270479397428339121491903269594897948149600485832064598127605591134025129404786724093726473245163643930237834999696278403766529210226837362671708911937086128975855106529965631928334597980839304641093927006929991693687049830628079847029949144075268021454757585807849926737722180058108388055871724092593563920539154627294995911620071923551107529158376101205947126592259110342494069655076839184021487142566571220442707892167054805075880881199210366207038075020123036979920238383859846421030109643994436653680157516658034210409671560123949908254316776716682964268684575691864972936696695404741855220319666061555534631223815507930587018695315624601325652299840970872896667127012902397455686013747011734442573732315308648675737319854999413574687204347568375204694109824222235771014405925113627622138500859956726875548678129455211449168177857823393901447125433648767653257832891580974892746430057133600618977416222288653760150378060636788273740625904878450455681534833296140383888708780797029925419401023517515793306412047573416922773458952877075132692303134179457237720828027410903348350764180281112806950853016773903995725386685459333690617864328120215288875722713534461264526048250192871370300745312837727824089198442526136860680307577595285843542236474989710369890431045435664334382972508124983689647965392268514818762603019941180333568351612545369685519601219026863758350688838899683441859803502407349561758001086005034764246141165800909985630379658973569589446434901836716137326867915264554607110653042408201817439863584660701571083649796331446122951784759648707496391630668886524528195480151375869068860572481198232383626230074948572842383177791631003888388501755114507971593689184100694021611230176340021276023840544021967540628093385947887443941572231010223921938928214682614574544046353308012671303553358666103320761832890423749942475677196403814206115308263813475330514353937725640845578337445412166778449121359488155893380659401705955655930657743174177885175474633154344051509750167853490013926409860605421764308880735692068611448513759037217204943123641537722089845241450206421919525370915629220186970677690847623760034362172902715090043538471460823814934076962067133585626310949659652869458449894448118027588911779645504592226357009870373602199239578193703584225159995429442207712023038741627758957804485043929114318870490960512969695361155051625542450284362300894342151635684142424435882051983475254962734024768223097411408230630251060061161479152467276208359342420849821241359265759576650749345678550681586683357896751089754355878349959084523018407049088290553238413549117764244899294313159161864223102923757247796151230730105267704509481004004080526004991673705032422733101713637073185956813588882678569193187621200057200995666225221464979038503331977034486797798111681521326710473321956931704089207995248629608289443084698779268301692009265150702453020883047601932024956824186662152540126120297904762427950583164266180162230721200045173471866131480255246507596698122646167183641979877037223453551385687865062849754859020827697996983047242767956880649106566135206147733409655358962740860458615257780631357909710279785206145453952988200113362936856525154099428049528326725459910241244028022295802491728848824513531566394122599721469976977042458979243175668685344171119947246770664575666122687933093295354313261298356560261277775618325335828718659852325689354169757128541400902748395987368719331264003294298916551037466879864715841685461379473777569923446766986402606766908827813319851777276558038201256357668486769121065717022084091496150035059446344295304160957745895271200192359628106913660097022239270751823069319422365956270937127354399681256476001516363203139688150323249858932184858326787735992273480883156763155319995219878357356669059886406671219955487987843938238217031536544051667036728402696506830934951074159782463039545231521053551901632027222308507763028435163982201261745499969726808558529502501269784234153962302756208638566377032020282085049502454118353054871844052016491088951218112899782371858995581592866733517476294035528833005034800155803079597585108338183848379389304530813735577242973481865035797082339464070807021328889764734960980912059149231704284977904692235971365854865725355939908770056322750839488815990045191077049934487087663922823534157364214204815059694973908975606227039046840560060167034404062940620913257546781131144793210951980821521574747947045269814099960839591377897162671011180714667261561413161581112766026310606969154859942212575991740892135286313305706530173674394909812391098034554581671832674533059184348540295472921591342721985340878827419360439028459175506318067005709535020619544947075215030201394733800514249676761456093987485511466613953228324890200309915897125038249903785117949276309559848464706367607593982998596066948233794532496413571521897560501244983948304440776374776397533782140485993717606683440396854116459785578728328941401030660636952181377535823392821034619525454470184350072006283474306182142018016677852393399680902263770126364365912639521005769865795061083226435833793450899858703940650766188396429080352397491299527331275492494915533514131326061657642061521723787069658323881832068151255989231847972593347555643782126504516583444387054424887667197575699365633901482913078468687468611194308118742630176056556541262104033668959029320221147812437005790767778256136154752300890756473601150891008171346031948324667353642917454924114776800986091762637675387085356128207354508377373027457002169384809285052437625187497102412505438211638329813963027399166512370468626218190017820452973421828876002861591041818823990451739023080477625838592396093560949905247699416163088464309425551760222653920098234472033368054759907806665129260209528229350144945017732871919740733855408024286238123459898586198331577949639284664772858520197047074221816035293767023264418949883121372752080316717891360005892830541549477938138582737222223300872159874689753988096388017010814770436733451886295824752954503089747115259971736816754885588118150161344107294443883815783354921241704981191626439580608790049346681064573315442550384682223516480519854055061459869557953157070985016048121089009077194850659944032969534317524682134588075185354162750052501241073720627804336371912445790405428543490380133460657017265442049728920889117448692022356305659164283814115593513287687688227426679304348376959678563566206680456792424763116311990677235816270588578401266670860911402289276363484351432962012541025614855286964682710580912858283299924703702085044290165949538753318193552430334151821877857615531067910025078736612165645991351929748397761497434106474411411886925627902602015034904058352668501003816747807874273051110385883619348883040520388050248436479654674835272461430845740152843204314272881948039398153437682684962653448952487262119779710629392085258160635596343306589131344393674809490059190063932205899104623063629209937411010546858251377657953576254575964788679921607256151932967144062918496031978284868949931762283818114232330286720027362643114488645966136054808002055812912041717807997692693964125816462972052693490276634898128905732817313097814363315250412228562986653848550703662337850038638116266573451448426846608643466975736984876375441488704952101137379761846106915532668525821207707224292921699898578081714639555849212185017202807777503476089780345589528618568903929747263165147873333809476866462232865626378155197798041846884628064878672580561875530974742521483824470277346165001351743700521835285371425843574996492621029922536582875532905160390394754830077792642709683943498708482964752030372951778097815892396123083675945595770618351570597810730949706948728071526251375464513927706613072961823772050013487387044263751384443031013913819210036406186255190820429130397846973109447620823676600808797479175762813625314021854017080358446759979979836172911174678708281622504658110973728618897470483528773317444730316197756452447454758040667456255570175652705418487397512582818633832877522357076280838546074580778630519230100722890428411792105196374133014238925745749719148329162399001315318659045751744681030877737432144343450835321680790848558716983309275249184196869319896509654413875816052490525055350744800130034469567432648987454032174956429092121732662636643445039039384218239081070743594523589033135962139428463315234853924004244413523633463855620907143684542844879503550107475194333191587642515401463776035253120632911665043804161253029306029252369601608225751896972435441038893709516000278947338287385111694446362282520953384179394068710138275006197468112387018632820349622926965916074855100975029560053627546207251553501502676974786359583626467158265184673513860241024845445984227330106902397408185506034761204026224600863633864000704198273189832990742754356847520287949632373936214104277238006048133060959993855441790773800426335379292235565799037118824014677855489227566799622720720272718760761631730532411064723724674526855320097114457876149088439609803102730481494312210974423468555696163440906393277128733929468643543159539675511827621327452589509852536584397111557264646919033626997322310738188000118179844528301252726187545731601620416686673208183727729526169598837885754934915630496987455749523123539196125166360168125897001719556449351624872394753695347576031526785964753009790625065072406899572238537372526745581936297384723432994289476803615783414046765750050947877516992594512896315611876994640868225826530421075245745380560983492391533935233500071630646711348571193602616428682972263674582102462032439784874982401066309227376574774589418085064827922698008680497519710692880910810257229432980310496240114492270987511253347328966742642338958850782140605583103759582982392164624881396853003092084699592553046092552341730433129054630371338751111058180511704545600192240272246237627075950311833343591436219541611107426224153981135194998993521298432730568706223676154987354240001841060589193226649768146524534572486110268212188755533008852235842995718518808710953029703273249987428151236884927685814633943401887659058560962047495028740489432245691451874802267148400937193592950100738607313427535053117834113720094099164647581869563917030642113575701926046111097953256259941311145059018129823129284223769590532994985095540007996496552280586165753566676114875658784386867550020751566321446353796280709798812934898044076366224538084552558058843155243200960472324855866056248309670612849528407343940500653778036030471482910513807806219462971028155047723820594684139883849041731561064049108929631014990099886640554860755417895912531725321480667234584955485325070255837699240950427632236555010308537532275221411650570261011391236392498040912238237567123745800723319540231428752328090201125689283992293337622550557985360050697675067948155581054871499324153882680152711966270430002233355796273852734707820496951506585017020048609905657666380639071996622241839339917677079773219385255578885796658686948683714263135689791586530351974969476695019955907451803478662206558417393820654329044623785375924221382419753963306255355581650683905899852522655588854018252703696004215588907359557815879332690169796301307206942772029885065779633681999128865123239740633638612267890907534880283055934305857210784214873138979429465230487150232181579084379820173348124903982389029854170499289038749564097267525978999743842608317178786134655726855221369058544546359137192292943657480142921169964854595078315396097774449579157186445482926390982284467694193437565965822367430394074199597214100966875411181961002611610183889976061151846038404889475982052527082010071417812165242499272226358974004925932049354958542420797224539120346233417266123056800180979943209425206023639431901563577191248281416830596973220247438928041374886948365772585277840850094917922801042576497051467038926011202658513446417431151294723497336573225560742520880031094004639628541727821786995974290080104479434702270459682913989210058428180759332124493469073723141643674407008083298843749272444246262505112854934657043175135045438770088984312835610511413401679574519822851898595670743017604467439913334752299632164465631045824932533785983517389526810241262502555343550337052517126703390786492993992398599727653297224617993849043130672110976236335794293364421884016006439519955780881462699200416577441407377283287813248037360497223432808136457929156642879441424327894597491667082866582984307067761720762963309634181637907717277814867721121133087295648861044445797136754040911396070606179812731166973459893321001971874020434787651531619469896878665633837292825140715993260497967746319809280645409163765814365670690051987551943833112483748014599045319954111097076012112827248573998714270494017821258388313382643332264634059847629726052791731402212278549725403051894862720154144644986157578826672617409459121610412205906429316563864486101286084959911489338966045456339612119479185882396147269086460406854215008248971088984813755949770668517799317001405495715789071203907108497192865409229941395221169872451090850856095250648656693331630255703542362859274499409161881847551744951428812947399479526023648951284497035021384379900077157745615575547540109724209005775827895173317383462503888968737502940477390102560027087536102120527390508406777262477278388066898635927159121388272160561509224491830071963082909043586997227399620978384009785797301885122331442702902030375293576435130048726113218426923289682169043916417099317838226480110793325642781200280951569506370923692148705040680153228389683136785587089933856693910248917757216441527700234641741768233793154440507516541766329285710254038073212271457278654763899868260295236075529180052159232371850635107466751670911736586673781550217102994559201308746186803121620385969244903034134908387601626849311590289115145998149371307438712313749528370034487730344091934576647575002377102926539552734308057625121610694027467141090059263057407931869754406689982836312435506108536429943956158892934220288329838845093666821309593302418892402724291026182162565241522638353181983210920244652111772904212767401999035299252708270151028491840871347166727973957793557556468400218001033592944438076657688355724591134623135038508028264795446420612457345558210409998843088308755753697872471525403571132229955688748624528384329384235390747668369669355267102172371008903739239133084177181295859177224218458227463023389884647604185615231305869012983849966949238802140425113847686298024469747766508684045131846367327304461884573822674350188177977853719154397338289005859181257213748816236281194863024728218768308456310638358308440400742090950368939782102692119574024934033719497655398584470766165863522913031035947284731202209906799726519752958902173066864675817619232311204301196829689840029938973392312649543227984090642443061410402961798914802110899706489508781566432272355425934351303696988091200484744895155672983273407410194032846248373055003486812264612337720510445357566545902128786289047918166788897126517795939145735415758529663974379912429355574861487416905888736075074347753476892667767332689685239887584007587246500048575720787201961499385901188768462080179601588822069898866700966849449077898681553119626687265200388538312426207227479060043918386547080466787343426754493894531021001563974407581186096169841008334200108933993816454690869021153938511249663277349220087068219729082010452065040789759253373178750668847297321194169960807939148149514171303096934713942819276935888571430287899694934699090900104387098749850716796472905140746520853431314692355612394242718426036486899928807993481596035971927080511673729017210127912984857067659455890668891982301748690192592100822022132951383543592501443794901556182397448048527864589252533227568163187508711318196293162888648386480657089210578223996849364898881241033965122895406640499333956926402670898938378863966712511220640857444839495651091545945928964895621640818692043115594090796295422101770479211197244155547897206551922349237125903367924530915539469566865030661362144084858798860010774420359424439338078597641490347702223613249069370527894092642794674707109372410072025152488622087409143875085997455340334127327651153770563095374196135443710357372427754297000820955805031555856349021244682344250422826185793413907980040969110665290322983184557798656856533973148275439629584626014801852570780483688357592744457398020362909971931564782239611382651922038900484398930001454170617100180138636286577019148837899472206653860613022842468451709152365519500106486273593398836213640733483339714584296583625627991695674645422906634657205182795982999477346926457562707201207640906655785981796134173005128380831908661653622145396953160868392664694568411748299128594156047086404135821618588527079581544745113267221790634141383601530289392792233754236102636477241215404590617703140347902627119217554879840030332819845726375090696540871198028844383564423546872647223155083767947496424101619105882512579429175278163384063113736069326375225704682832440188990401353853228700018090137562394931651970452801410883319429504498946796736179711492359126980104995837164051510275749310238211952894964456913882212345864386777925215253345374248725092929952283031729065340953424107384402606694376695332026528078803171253035961572585493815344276615824527995033586466701970732785149542888305750414583531683430383573425796925885186328568173386080280822449805610809371169681957245560466898491660009982858201949351701122036028708866389548343052168974262118197020049919758406318902891099531767717872922527141948590961729737306379993392991133492632400367453178261917015022002908436495075628415510693294433593389351832775396043173175567933873672991671123905424042209672808396261819757555908430768641446252617692700980185022993489147043239320023674412746741607776472790975528999259927264980697869690604507675135388932437319897561065262277699336972012141374035582815092923804069562188952693920342522557595984115234629459874177402243263709888355784307461190483733898975915165176961650999434273244911547248557892986136838795213269785423656576355638588960511636931582164287406543059416255156045700257875982801869413548392747458462727231113633962421840967371094541242148341438793285396455294266124043891570989962432628565932510372300693242565659962080990386865895440527517255384718999631113659401622802195990344890076362653297860431295279804451560449882482631858337275094909932382919561442038422597894261932547483360218131566958023287818797277172200742295941209637367410977578945085089910686974117604830371246715233782746104741439286872338086003086866000725303327157275325135519078026044366141559259127774827624526894863526952534304059242422976980724685867916662409622992610323668696026727135334573392288628284536867816679642163463495746394942942342194365744853553692771418503824110864441619978162339771377524115273363465926798493785429224699687845770584886500678142381398476981008336198739006104327712447832624816302172038708683787742767950015075702506448591751901521974378087048013707299136915309766258195293774755456731989354382219484810095247849480525253823685772904298546006230789451254278778674139208172282035703008160818157347948802559687661738931240441658706206965973608740690780267758202010635638334950049793829373034784956925511581374137746592723405146621778243100493352372826206086640294171414037819693423014642731220209578256569314196199123614754009377148968024054800958687410597544737067775754213780574906610898075744123018210644472984779769811557823051812899866194633333477233638321158790305568793084217101281366993810312424100278494688749115777673009412620009533360629431649402568908664569731879028836765889472210483479083885332967976600420051775897457195983351888408938645654031063954522644305185104503924231575339987088616559925332577959779004599156090581740252344785455150056427767539516452163342070344578575029369286781513359328000488687204731852910104163200722925409979200316111446506203912420277408338904878700944006766416561572203499494431658136856665625620083018849914025100306496954395230742336627659061896128276416953720687021596180620971578166429529231323224929866060944935184529939245112810003168426040925264227895437665121754384454667741156761442618372226759415903478668575808993233555163393162011530891353514043218134058854927075785534763296463994071750538199056833524531010089286526085425677354433498491574511630825024556802357199860630854381377779981721070854928932617044583968600091266878300211160122257166296879975271144512260181275761510399894162988572688909225636512826435711536218915494843950503519963047472121981321565496915572562568533285379810293378191318594798821742906861996445250980273346117369432633040256658930084104306926156586231285712719583629843379563294266255750086652754785235459833151136213663201370974693831665801136524547389138281561582702352172267275766095812728679469927140230793395060027141178660592337318658313347555100538303696288779348057728962328161042065702974488651645634385878848117671967483016615343120421555080765942104496817418196382691055023285369501981029107197267302138791746624517765710374498409932095110709328487156059790519278831458891066166311284220844751554862923623503502155976316799752902349248136112411441237544924103477124629555161814559158277679042107063623640042523775749735575924110412571041686345446640776187871974483555352331383615681795646928893125114810547195217202859213143397475790316252332770834973794711951286388667845239767913344261015060836247750846111151247192317842959946601762895729327181148181299415446600811637076522741814316474927745395145517604407897011892140972355171335199408645781035852169366538385234900785915795515552086233272360212353080486142523940454390085645382937013341770037246196204160292020356547544709755907756324849884605915711885738499354920003158664612898685032283871092669923549254037747207070503597117249837759347281649637929033122043969028701483420078514966105928420592007886886937172971402542162162179586216464450255965478835657469106889367389052768913793725732491204825066919284129073462902112514198589564446968590907212788201861701304699601259131802078774320112816016272445984736834856117850545395735943131650857187006194876393851655222164779257495002743305925062594863033930243764534693362159144570636293377956515090485782816625098409416106883935259131900641563637210993413802196380231251706298905823839128296044967980631723273112874930810220775080898667187816651405941256334180966308341463717616249143126434331621428687215168517463123360320159127471414841069032399567195571662234484903524723552800808181500499261461211309124728368850504303393562973190782616056489252081413863617248540766661712232223709205526199622414355865221430488742524180474154855608145393578791760694212517095982694548245440094376367585155881428199594126647297267807019883855593105031225806037196675803210246376392310425192701013663061617668374744379519057542296483037759282806451152202191632223112013202478390635445659517403734836885630451873046819007696085013929066969131509403708407408082578526067093188525618329153464686037725819844425328896757607943045830330928278223076438281466320783443869660393337244596883715167806723482518453072108681306409948493851210225650322246376323076500783822498708398164708691221277545672385227845859019418181678673782506561797927480772867124244394843336184358625839288593444794375051196413463964934431499859960561691602777093968713156345938884700618052187064653013976294989872761148188085477430116155988614216867693475314936548336000357020960014468551596723086619093926419199886864418296887269368410499511746376587924049549302687131203230814086780176719971944744123969786715051259714994748300561445138602891760007075477625159302476434410007269749791622268617412168457171255412519557078563781726593169027831542211098959628432099249685800057802931428851393886958926448994445665408713626482061704113949403722727178749661933817735593988872958106870070736677808952131335013624970260426269444117066735743938791506701773289780789223575715063830014859372068162909021784819053949383077084490855499236644241452164054301272518535818029482876680847787666188477779719743643667116676803708674691973843904281335450202050556542528275613685039852394273385157575633874292460756223065875253321186381828556685311883053450863842162883750833470299099359683291412610719506783669618432841389285828532400594332614038920890617875482682774229411501899473902185215565535008486567722715521631766647869200027320529850236117287834381609006671145874712573715558371776047163194255062552881510383244091188537584431913101736193071241586674547516519703220729435862415669608998091940599096353919876513205499113519787093663137708661025978940203756478005378042048407669366470946109917562540208111608403710121529645030975199035169932761455794037266029395727100814388762466448925223502301437506659381639624258708471016002533692960416502409242920302001270936032051592726032618067391866507458892080020808708774511064846371903959172162642260590014924946120826623960228690443117570972784172114287824931644061823412882629940818967576769461259309310538903917521439059006131835236929822013131076274479913672770870263966348998640558834198715303446249361846994197645028515890631922217339124701268314132180808348164646613678823862781029697425741366030429042527348704044483441037818469143436201905138348048792914268673421182972731629031698063933575181571994495853767978293490771199718695229279090900692414679733737761255387975965085499377982140316335771837922421529583547162806485705678087037646855899655072820631435017009524701462432569861136008783201568745655441650416733887681619586313200483390688747305842998180759121281971191658633806416697801588123337255722491417674350527530864021812077881526556306567564024364333696526669271743634919978670381770184378580366352148514477071253785240528036718699151482616130713114984305825145330851274101176563168220000501366255334730610789617032009025673725011649809969714101957419444421990525197077938049794950725523193976094970759994079562855644655032132758188961217207362672354620730361995295962445580366368047986807497775953704405353687204250964573846888407702096277562012682898795731598693779750420212667716383788693473482529670043159165710731494442256930437046068407089428106887187951866586941408593357067365210548236834327565402926945824820250462369442603401279711745973664296949816967322566392961294960058636861469135017978560969713741603964710577041090870327917182330513235841556584220684260995257667310166880021175812440402783882577738889139222152313658586403667014886951940063645559236721576670527062398895020202061492679370185499429174079636274798517905940740400009919545121291652621853434467439539882541468824591192463919372707966448767550119014307695041651139377348807499009921128777388226705344783278187465014112187119636990220357469207633791256969840196939537100993530625451377299889261671779336134038848705895935651577607571329558587816285572289530726276390091347148509172022301282503756514706870384149702562205566132495250496438371800562346013235859764685901704956928365225234038828133604071648893381174739326258453109300500622384273142336265926092983465095204825983219717360177367343269922526873853805024446126611644635685411352215546764956966097704438498274615824079179441771859159235154959106308585662504529707032915200860271031950556159691367556838448030047946160444706599299646096739402520444914157014385199922734231136866478831490634654421252169776017025014131913115428104609776597125622673963047833307840567492767476125116212557020228332832919588115067370439441542219563182048424457400169118486165047518857199358035629401624602353111174449541486665157307895420963684285855528447218676078444374597559640299532426413007794382366051532898803596814609402514527865955510655416768325029723141457066024719991218487929030883705768031874740369298173933089565304874066014731358350489756307754534442289376305607493030689583861449069634396201859832208042361206566807034814154988358073967201394707700375605494874708299179818039848440605982840755539691500529702230333778760434493305264882807187502127754235155623294967781408546450677269494399837143529438117449777647194522110629625064871598874436595247114787190114765699978500843683902559106725498583373652372613986542289367866817331690285718158969045699665884370809849513715385120228702456051821256764594269527297842345428889765063549390732332777204048712871552949966500201763560573294946426409102266786219518403134175979148393183402908768698359667406676211050212440822902288511752980662566030442572305103908566873715754342706651533863212058839605875374872654221269357033367628587459568978104482977437639735667014223452000184537747640512827403713747356820645578265668331657267286454974209655042022520547307710719996447755973404621058784164259377524840568680074789212099188508609921938340454018253271885821520304270615894160626147300776252527509058598159930743999481269835447187219472707979759266235807976410525871971239841797712928374388140313179316864760482763140817785752869483201149697484402181413624183722028695031678889387737815369943732814529050465061170251531627395297217210433987018126291790106848560113639359583996373322341765126705498409022547815327920509461795088957341463753038620797999040074659364802763125323214468961225923993825849295191937675084833010729363079655355055203624668636403035070965272708845341672885179544271816038853689164987057752983005480402907787927017444537663532291495350628132283160474532936541194005796412170690311992446737987426899740785968669137108829084861159601757754084608585927853462771614802431221187090370374152497663718919941600146208202228141926087156631012568612276507993690720691184089481709719089376825930656516525534139315657527410302442940771388218140337936379623843426763092522967265124221097984856661518202523527177678362049221649093353446976782879635627648725436261293289492285488797469065229343867834854565976199467103786185110238400682082611212018157871578429276801446533257488492183576454443443059928793931436804445544223796007548913223171775221702028438226983652716924145129037029444741742582408532420763599552698881119279762722790674487881235395730723441129546494059622484121079196578440344631451910757211105754671572741442415817208811255561808406987748115066928870710395614358937455359041498170919041794150413875452595385850285652559425831086735525366608575968965656576010962612154208856761849391727804320575831738087933633718334073803922348192603528942613509544269312517985673908466946298629357484184797303535010401575352168384485969207160789049030149658180441085547130879971968150023439831461314502694176748078329600445702005217917724081083833909941849036184138255859860471527591454966263160911425739494033909329233754369055294000194048284464631198326502976311215793557033810236185851904866528257086280821732198741840297242761821509872091816295263104496279564834968207628938099005417509717714851875716881485914734807463657738884439527779795320493707506982474030462918620473623371872247821996945770589364375323568677245706898584250073061556538262364181116704196279030824448194378944994509481279808598182458149739450065593655650090604565496986470237311250191033414692107392105346680304912928707779272169905695028800996380510355360462203849258386743234742330302750895694609702788357560655219038984228551502797588843584867231852883467145185039379908652125931891921845851872766927724380846731741656883862830580279666749990122105414666366495719031289145458577356222691462684307572145160610926296895950786826920919263609685514544054157179236386663858895009129986178556473170363695918123352047744309564108667472870899074299759758811094985337556538295556488425821961425359436436919710663485621335319083400352695371359081797732321207688170387975086521056808647191130853427836983684909862934948094553203034382782373740748858885609684904972831780553433002842987599922856255559100311032214143777442315657585444775814483117732951373760532348872563452719616084908276156446222279494011960878376904792429989341011708933338567041178886800732225462681686210928364075573892245000800038215163027872866799327373189889277525981376661322506535043248189396981272850158371975693546546571587269800079830595319552786656528042282571440723140019072179831381083847783819503005667452013232023594094436913434060009612079768622534529179556550807516724956847803140439006471982859642355430340744102340607406538119291580417412393340493036804695469389706053947402974669407316261552383506774804333888523890082892642039735615907054664007469720897826767081733740223330343418415455269451153178506387790090522074592070353406042744897920176720337686968381474286481772942056233653244464395245856666964861842298381118642993311442616347057929549562627596829568779034402941777385836338465613125837920800169787336962225711388383042173317679531971436624784019579774864237518927395667757018681942433434702735071410387111767123433741855311540978766740697270005171813052907577443495791698980821128583114857692176929129859888658975011549786150342044335627794758884897351152366151236600492695701622164840780513221023987513981000126965887714277830985880779081355151025015420914317135595293155046325432751791447819266935298336247956766890687693534892398475830367017674052427326334563927044834871899777835550854960914185886675885039213787874571151865468457453878544552774637818230026692969189075041074389532037005158163615024116111050762503623590103367931470017398736245902043597552895208185950145576491017111287633666929665036166529293370463846968925812853184019938739109560230209684004324304472522518700094696529515730953787473664359488411510141086980222827779147199362951203413319171855086970866448547552906621937629201112967516383405046809537969251475796475233473113591347969221901763108774871277227825183921744077564419901702032468003794750130735712034566328767413667591825013170283064159404729906417556167807862559035561644564238479732062905637629711671937550565765071459389011156918546118627129725896556713145412656121987780860583022407036649084047970018403591850528022298222641597413213358043730135177532279532086900367631113960290554713749120246875457130998257243570594415228710751108458507985090657672103273706643007885688482678477855292318757827487412616221594138746955824146019323440353276101005731615520554439004172753459688348197491096062608794716089509772440047830018168271501935180702891042597446240325572977413060173078330804647382004194276536140060848872098032768313909915103057087340745169817865931846276733072357110530536110044631707663200701574751615349838722404317455840663395679774134204034092336874387963136646199321600305691609398619568574946850048648298871161329757449570613095497551031197442916908023852403514185612432205462539841361455401661604022799170091419562656729236350074167863976605039805902100917509924480043522578693783417691211078943689557639831088122812684700358091000729093148255811947804815572992374691887844534732424232294302834212017573370642523122529394536193458298106017644271265692742710999976480473051995942072094602239950654796005478673625924298772429116829051059010877357637168862499093374275047550584211002401698815654186851345671531055799815687945631839329025193266983321932825672790047869880891119693755620000056561157517867040341859305336036991404298808170534619922753898297937286700502839158783505327288089313434746184504339746631159542002222617956792061981515397897105771691541523548634528253986899377060266255212315703930380525492883852931590034621200504881640939861442005231216800838204456255151530850695718650495773892578733113248315042865939776618596574011136957610682917801104961353695378736460907744766868370728567085910648256639152489301857249223898808567646723870674456566514678593833488043774237498302956258541309075530884385471426548444714082495843017702144923630133697346603889967301702976582493057757650648741500611917186319407333436603747822058421461503288940923620988531003429729696892834622610782914634710539209700471935766454856476316027778863937646791526711477019180323469503474689180957042459848536566736455829002443742961871866825603548897448756465433402360731509710388775200295664515480178766078493234023197113688823421807455628054640290007546185789327631635877871129417220153730729522959883201330650451941803900967275843313620212198600697552088428407130883673761733864511984080531882464149432856014945346327415548991178829533117517954512646378714921044363237836745656738878958154161856392856509436542590829281228393171602145765953695305768920490111945806121189880547658981845938520653376873856140807262677419591406614241581985090570224262592891070360230711995948554775890550920497748541444422974212261897262423025485823293017372408103855817753717560048391219889170346560591346345633451352487949207849377121337731244741562897831428955369962231085685543265077437494060828427224814543291098304175013865370967115445562963360020044730394902725476377737867201676740858322392962796475580856215851469997257824513421313614810217190320400334793004851542145883487395314872198465308649952085622306702747082059856974749630289643942024284995527357270553338706951103851943793115999924695918055435385987002879806227261808559365229078526930629187478243258659734828172880911454228512076934874404707288618065162358641895698534705206050618155632489322144428098779251694032186171991726664217845376948641726310784825844231481822712014610719066811533340298776938033546889655043777711395275315855845363039488059199961306926817782048320942639914996098672013415020315056925704854077541693727948080535451761348339417226473728275573865313853468775789472813805741489142233974157429762531686879000191887564350149099972942552059766634295725749918758468227602155331121985168120556827986646985412982253347515367440783082759082508950152320053510229207925995157663410728519139309141214081207169306416815650612835528808320394984663530877271006455478771851810517132704293823695166255735164724468868330848689761807765952436061253808172836319796971835030102752430568301547511099803544497344877553926559082293281978149256793412131553261688500023965618970171182646585785062166692640027905096408160156886601373745880745012114565066990920085374639137666625639336390677834716918035118243719988338581276420546665939077001540710515397281840421219672897198929573770560278597919373879152152801584029426629699295239375965576632064944761908901890965706086873050084915551453442433636484706173407021044894629081228395328643731699150545493153099542409033152287243607497093561676747096094940790340371303278880565671150999158283489447844144206693022730199561438233023130052451603368895099816053499975091192696831091057197635023797456350978103906830480245889831369648158097278774127748785343214976114340906352068707330204188474042486855325147111201183809216105330359826970256944784161010863611499496054737967606470138216602994739038391624687174764492295381100328469089622869065274008356611675688580017527307143390753860512185190624526591073962596230336171589618528154925909516879523546843942803901503877083190718610479041451308704120227856873425595136628536187001570739488299941812972434289741925203533769868098331223069861826642082623007764827706915657415698951679116780499624544068565189602638142181983572292038039463668718967268350899106302500011794187372862087867611127835343371004818007361907432826034146966438002800771099761125330839539110304592604887042381097039223603859439063518505514235867185080758074986809668982077956784607659098085264075336641014022320871327581505419195125016668412434962505300293440914014525894976792605103224154401819120197225152449828642055683127760188693097702402301439126327660820121113649023188604310203947449883106954346194730842180280026947174155745854804833108486025805238007590154749774635606427794753195222192597572802927938942829098525941292139418383085450368926761481660957566467607416248628335249913840703388059559156761738856415876011504870074655804235944387317940791622081902067295760175305468479569396910662701711351289548575723767526591564803089714214239672986161129902412317015752234500130548672020536519558625120433339824649753986243876900672001985527572646332713827510626957597596252923462303967562286675014316255939506613830316508694186059064898778705344142773735341444819705591084480645645158174789831413871670674599997592241408715749069076610395351946387542762288844638522282737487400424463055452829906633899539539540834701205784483836892966201974563093269814319314664502799574065797764461823822620200355424328375814987100248875481469680653916801996387639089179228700920489274796884438605894595945100113154111358048708506674854231259395365620317457350687990209778129808782501083858898446245440961803328278999629474258003514473316500296874463059100567378241926461622278318665553711047705478191220850886248822703226573601273970553217359078127502848222714601400108464157751298603468971646668007784863675746294752022375340639433059142301017443668388597540778683141120487586729264059624482593441208612228270380202208505964454139177900236528264955355562692000012921251640249119959669581583945987743708715923710481655105668300563838894071730830915447869488957213871588402077471868318670652498597799986407485053728804034321156142092266274170815462099229989579286946190648806830058528013830197685634911891226169688174738279028946254735571485836710536908584824329987882918533022737436073588983701091259780206702037508512677755253201768191352162573697306993832738875583885230524714155769532650657056902605963048794570770580001642811039187162331839078888486300078973882097018574769518073636364430701898248871347125422616035800962734853875469356546384074222205186888560519091354963623403500958359024376906186480451652292501161377104906564616385267636012536632267556410775605854530951764530625326204900925678130000283931268402884689139294690235584283518970297734168166248312106757697796938888130427055059170040612685576025150305740628307987108105859326919342644271185053670202911120576175542037868088449849910006629037044429882308360474480413952037263665647218269960313910340264573537414808836232045787408690245334392031012881262153492071038740687097693720091055123706022846513106536154811997913776256851848668293080153564896816878767589358170585576095147493051234017986669084458684055106734222932040211915497963148444738243730859601283785407654723213745963086738259120808946693454031062517156341290596315532639944599066795715975923403279803044090939171763815185072786963852992217802467894247084715807694595002582036397838062131292187522920130841240975183979340592122293243063045212937428800867597355958934940518585334990962028005886508990314990750512808309724343790236090462946740737603347771925626727155360356178511297791561184831931931366143258151638587218547339301405886543960758159884147910358844799384608848663929264478672509293074961866848346801849348471762648938981327347282124724632739869452928153946179000379763154211698962050455487586028810400174145850758656548478119959845369340164043961771635527896927345396652634660996176507961426192144985751358517020887018926977831358017377868445820784277262694512396397132328145614576399710195735820782417278294817426126020033814821821190921440590228266071536711257571315350061891332262883188403119518158342387510357624545309516788762811023551048563381415877162834059779464328965572416091967909662315438579600293820029891845643845657317405291739733239736983511400654878927578638726670328105015247346826080182742081148064809764386147037561845672791703615905758790633734164738138376605385622604185298938903656359467515838996613012772174562784097711683592574091970648296821969923294441347198304144919329065528539797650995341812171903322645191283477168491946082569107026540841426947387258334458683426977185131264644620279009469683647998594404204716923581959228815223093443179517068484522831668540824848514546799885262216348337972039448787290823863124140458962651650023229452207518670737749314533708787421669913399174391388059100190919860719257253367352709138159402935780861499614380501299361395814841992371031653599793044464030068705218217927496315826825325636074116137898503752076649331061678331533788045342001101552401933893618741969203285963887617284348469182813259240066540782633558587874521141977786870524321018588604687314084106723656439049108404212310390328670653890591839884751685387680967899268784160364221441243614677788945361208320295020080458248725386010566264943080253098945956317624836979689522108644642039853498723350518600453664789394999856575008344765523327139379507877253025850922149382436283905421906030566301992510405023837235229735958943163014051870467712876987145452041754432626739660203263514406729451179924977279365698829672361981603500085956171535600368243404080042893635394338751276352653431699365164207477371157352131930300644339849789743097442599664225918185907480492024642208633580480472419885456050557968147507375880807203103999962054106369528157749006489867981285961314009023794905463906039869655218317948062077613682788583744359517596957509034142476640879786310135813950222723757712963627945117703318545111076503157570535877065505661351905062188977485345751296276504102896835356767238076163910783411356771868660571836650215213349667775508029024759917090928347615335185006409941944863277627730971168145651844416258917771528447378141140243644311933738658266304273710180710055824634610651970690969040649962024407878840513280345477144117300520198174032611882533174517500910117650356368102647003359609010206109742421124843783302873200109026037378247267598879643173914024740978040314379246901499984875341792441711483018678645820810373730343611473281123797175145827353297848689717578237397701401057844643414251640241604452027454900515538826568014342759636004815453135165555586326476572619318819372861965511713728670381336119012526408120973323227249224284530002644364461996266673360259854779829211256081336878863141848042314802351305244023515533928317266910085231818193570135648008027855230069389324418469835383144224345145733339693972833562395803100166632741963741537798060924740373581847665264288180632899661094748444425507707106184638450140033003705042446731243080431743048653810226383805728532090524229856205725253449720743191209382600769917592423225636302363637270347427432392306482520698905403019373899318113846904836076005396497860530500352948972680827344455249537327271917115760700262041282755941304517824736134551338114393294581924796954633483928082306143144491160285700221318579787757606554491343790200235694471875347169181945557922162192424209901573803149945063218179410994529222511294759837673488771613188587582589570168648308823743083964663610342724739443903895661811810676567744422652046755602435918809636324483311035968989677172476065189699514463412110756079682384976930511922314800031175158469860725910103529385299320795882059622836233775575617918808235183136226442033490999143810574139250858819804845330392997080359928336085404991779506988367964183370292737957181283090338703614334570027600949022695685937655682630632844845196894209223922433963433398810863739680317149432441142305569440215982603808243158433506079372812387225230709595209423016451829761248008773370627302175353284602824883779161656602785859837508529586614657136154431032917589333560009082603907314449462277213052550074256066511252208176295418330623502414615291961944229912668404158230628679757751129316373054538089427168279811875558191007706674319047248575542358005090824520652301751845854758693590804830430758099140081127861283697342742359713251639860638155200071682164192535163924456987757754312424303601462221338014040806497185455998476348861550209847940313723937277820977618302630312733341040057134162940691462990243222446943503573912589503902145142510950010475972763550721177686439166766349684499818204037370922252139022959910626491471410728567313768526421007041772046905823515236578952798001266806615808748597620679457442947049412739645253814729977952350547260265888627825086345537319986395595836247973051805073843708282091486030152324853844600319619037125125911361461078676476752268875182274897457579491341278741947648213322165821371265443652417171216360908040325012617932889680975685740903442714710018557473373655694235354701491012199138408236077762467947394534608063779423175141435741159353522187217700624447459754427875565460577588728303290527525407129434391411712892237072031299011892914940462817638783720148010991817866534507573257966605021980859959037105538700939770496779570646406185831840957426536503717791295890502991941662714318660127666371567333549806937478733578203618290941472821192825640877851256279564641462444793410811018328757448214648026407018424351514094675287399325450458623235407261563428005347245870716585775895635228766643034365146601662198133530058473471697112414988550185639781585519675578604847360611734030188743435186236198760296893359666902426251959152038880593450054599306399266443420816832697136191606144242860517324740991215929643904177482096321969352769956238643154379716792237708778207103444719784351900779832922819437335442653397811980648926435593204739499383516987497197347891493123362593920094721131606153312185294249997596456010641568469439275789906043460395541857639108720739909254382250448564380761831135914399462131236248217859431085958685873235619566336716218241948287140099035699366134115875398041871802991811208802913828280418522962159853166037867471617073218730323054465928460848802658583901327393145434538774281151635260006722746310233365436405023298048046072258876148128779174008999795411881123777629331208067690014331153100747777529436280306530457476280181997704475969623659566554563425347591157254579210304042579741733357159181797289733689909739210354755364996382804504318393922718755093730108270683264939490825969517743781088844619661317915459220009986418977430890834940621521251455987299672678391512546386252094259143028484036646730419291457453857787332519825241407215063445143038836675948553908452544820076652739005847571274501899335514192854780115889715403894671235942300044054142479344200985483359661622482227991722081638026489266882521073755762808366109493822631635325060161840524604144503878065878188078791410043319161081164600517880011849036104344296887647441322046321049057946077030618596586928918706771106385234929885644454820260207200985715023822112236339349335640269661260340905527759330090367127542166813066950668849846007005939820409733395126149181682214037035080159032177561488232424210631952853593719312868028550136147291931089773789804948967303155615789397662086946233565130716191118663965331719692861362024682616936834110314032522681745646168956566008364731130881076746530295958164285166973899961019002778379637637517779280833446017567512022985299027562445083377868852695458343362037096619192314869734543241293227837622593320887263320427221415323098318887524118408835761098910203204800901645971756503913605967450389431006814723812505746924966363880616444293920535874216750774350313906366541629318260637214749900254033502288221540335483425525072333263594845537948673086506379029540968847494587109886822808856264115319199964340825186795035584582074060469678807892331132176758251135523703836331290232688639704576367574727434291016532763739076841259446964781254867551137293759426539458516028899610798454819108788032421955478697437660522720097984793267083207151365560715514242369701638620755212454313642645822727557688167943167177263675899706503372736755703328564923768566938382687197531092014227857431195859534396871023595787349331293497045172060054134320035842400254840403480394865596595675159572481079335049419417154220877698713600879921261296522373919606855361053872105521999854148113944482233113344688925214405673420665972280724161477268389883649458600851874446612094417026579511327601131259991022158325470450050715417164471733969611384325297312117192881312453814411708102065447226311075049563113438264052453664945823634026097174801310019804656943045690020737631238494494678777879834841319401476763874738624268999320187759322506547440773403143310380864020850340957186865886217253680542916017365256986140679925794569332131093571759439671511251133344962303245439528564476265925659265966971994533911639847118054540074439405036527256526354659154079187479290997919983327574091547526173643826544034630544297192334196998908568914330914224873171050910125856820967855996961026025804586701829100741470657851681395663702779934666479559366806336814789550864295794414836243944278216013630243331550418935390285599861827400567321614090480398938561252021973616190165946183060919632046000721837041728193284135104367322915541177345427055821265213533290997148432025191050669017551442693492366240443383886118635969108006527529131613245488118139296437484871261825544426502703474639394181080244629494847141975038237079164320842905151820784380966078580328093127811857922381329868226595044293508471253123854509737829367795185953256514826223381493576275795244544828299856140310262516160471391840868448648586178779477256832559674916307450971351875224616339131219393701156507649432964769236050414524244181839130556416230811693778430584735305981060210980306554550212487486874304559457927567315004959154846996748016288422643757771501563932806612519205777703453938395170850334556871073726869626843896695997677826356628506179596874395732758258007146825863076625156189438376148391844983498830208735485825280430102023128400070268733473283699324649415591117920533839253656140246843835142510574308268179848171761324470636237056549900775617017586912418164539151459461125320770294139528783774442422811906354138038721905598214924035299392584029156404642282809195386664369215779962056763770701573041772617317518789941760227562646498519062608687829189937703676740739707010610393152117605802605441151048329188569859544354061677621669659528817118571167956495224736734325342316611571694458862349223992093433530784052541839845254669702807243592174363488085229038402769872140456619302718436514204226323393358654578466722435755788074777014052720196257503131824438618514820740803940964332109218909825252073745004087085509943045816049727977389316835927003609062245915958191515502279788379513720435098251328494045579744366377840145513018552357773901708697454892445617076671200601108572642485582030386450498598579350741596934240567226833417461005565751667938123064452109178917000767203380902754002654848632606225223908882640733684532604530883634146986209753249870152005398758342915539347068681282337360397940610350786081846715917406386917822061345331844685678364709911415727666394005148753786591730299728291333657760088162781020660671435697321196485102970265044114086693049200831624508268994250218764545031395851043067363116810829695899609102563485759032561298704585504879985508065074506922488347477031850869305349179227995898104323229412935747573778969851542332071459604734406588360619415948983793578042190070902755583144913801753541285135831721566392396573551031690821137102162036861999684139981008602132450265669035114626251160792554055949718753727626943881060799170009335671839894022687937519677839539750692442124614565114991419552283619996093669602716407336204952820295237697386158692928150212862727093580440216803793604323494859981906702223900850534603898711041056374676361255100972327162861033352326502447119968843902973322845441070273455082262478675002261430467162330563575048867230903092211242325353146518272216523820995070629630088033873941926469449540901304880858177894827347733410157814310753176523298105050602380297499616237108807302471978659159519544014808737775611639058507217019681343244765927931383164338734963957993688251660618018686909518976990891024454938951144397193485584150729928194296478140248708724441053112279943207659281699917517312421152875267737489644909138403110062925747328853417767431050763421767116714877968653344037308174718908749297505339202946263231655755612686695753284901265535806302901311832196199105282873379603523245490947271167623254057230034810958480395348331768095097668723791328044275147124443572172787577045154273541871820879878344399486133532302007197625149486547266871928483252541017819336478048069314789487244125701738402680002632691986161940132013427358301092434483319946262797282414900902817241094388079352221344545884517105159727456269837986792304435424279435696433861249234219846229420130017687768468363216976172282017890109114558136344923535651476453857374011642439520162861948197000683357993300908307255600754402327782559834445470432682787130370876848760522983800309144654302367858453340523335730344715733699446896527771249924380136112008687764423052646074952360097754637872574265186255551667656179555475534471928989967570813323234878351920040546453046155357229548197954931875031028994824939901967383722769111831679280149425044210744378740633487638769842920479480069925367663449261755226116115164947616380715396035420923298934489014688755202618074053848649974913803183392927763582226249248447126874697951137732547845724677206819295707275659025520141790235100683316702498377521888874318959406823753587096036675041711481397789281473637688019270477841549305364588208719622868832757347712679091414610831560706663036730733942026221410604716177294314338226825501399056516201564215677599558294763192368235655280406630716846756218465831465039380284221653897885575521288470329358827123867419704044509807691324956895760183272147015721592202479115419921117046081072329676128453665153717674849170578605856609066350548573409730876030188524539666009206617926191083656205383973471651387769918241225757453620176142165901696664819790769597080626313786075324261388439327085669789675968467367215690557736376372861304915493035319887022454335452424386701844471259721794915286525026515649195774610935438805470283211051779609901277321137120513607625057513584036126121040454175353628360375112099632864637160726314538005400347996358726351297095239532028121015843037343133511482876258187138546203924985808985150943372610253436344631510330011640849970085625812819915666700778006187435167392426986478535797157661630621684398848471485951144736178635204942240925731070783048604735854243738685808047620516793670013287964709523759740002493047921357804909899143761231328439984654671419427763118618539432923052190216428974786521205378846827393410733095576781585015900421107229543044865155044739722283468134607859753754457486318543968161736125772302500817753961967432093440372032647731043394262742835291915007696412228805857102757131630667943401114990490656148347418666212248425526747986743169938319337570450401410949606544432380936957558867908686653195586884373660706141040425537621529725914766499762762687344341960871016385685648642309828344694288220481498688935074307847657087057789020263830522723659547350553141612145303286425293031801578471373481193510833090665841774596504021661483174677211572542735517541224886321103783547480282617834688248794590021214227966199813582365058591882361365472355106841303245231864254844661863164859906484699970565022274353021423963216282858158511091753227849955234892264430761967055825428058493191362983033221060955175402757754589970509425565530364492146078685368274587337219099586440073424130548755757238215992492141641234322141130446904475690268364126972727544741822646700954736482779130161708634028671390025386439458571463204718423599220257497720318151230831100123766241311575130265327612818493889664500876560084229609151303585968757119418246873207595996077356753301430107647643641351443031190760375014791531365796273215125022334981831106249075367652290295282383168269348427094525590920267042753026723645502890033578367798467459375646316440181514601030391910220016402213549607377276629615794201222611379557131403414779002325745262981268807660750506564426551844064540913141335241631421980449541291133839384751914091066388784763892509506989714926598336888181904403773542602872574705382170743036581836197462893271039802866621909084930517481660954228877064936842700227475898486161623882242212841319799098753873184368891005923797498475321802813504764646590674661697279976499327497604718718689586111567900160871139445380984386829848877645094234933508108944225646858187439833388800157398366144054982736556702535731009491591570297763716328256385436856629003245767675793796912332469749128844936192255892146286874250845732805095210152952683528848981631651625154197011840696173615072227829037495617045147981394077746526536731311953702660094189484075727033709058912537558733455853103889482812092095275307551303230978864757482374791808816053264589201053847767359734397633264809461270523280659838011757628950708533648344044265581069633194393977413373393992352643707722634583791268331163110809725992388464248317578870383251214446769318194259331603457650273826631871436291311230304817649407042600342517888649693628417257153898842363194653267302835724390297438983975329605991739775135463854349294800788853920116888882548496212033509025964666824882275657492987387293181253930476709878623385307089837860060349055017480290622339460741623595760909899615490336413493629527563145374665900872475383278377682660289139027000239075467320776189870622336918148486074959608116162255423184717787496728325209118046384048142592530284446119216960204553327050197000005920313292391981779353886350409270175648312139743026518375951275802027033305544425327828931197862443642946078623193495305566527039743748750459086419941492600260601872423530698024171274372895684341214212499276438307602306302570849906133533649397608912579917258128635381819837334584799248785670180368186530458228625010201370308636760243183930032554506492376940784075119883939282180853341629041192283883815607422860014702415047551837566427479473943360394172825663063625142591855190404510021149456051830392863122856669125650030008884277243870589989795737407452867824074795560282451452671796968056667405012665475735483771417852494035006871320665716142315340642008452529892061780189358788371917654946574164625194439846181638119566268554992229312309178153833911315417985966292796446192287832237311452895347783277820283276737247301191168933395024983041345606504720715961591460866225869826894719228314062414475429224380647829046378557531528154036241064938759836251737222378331322992044150536478069533879764655375658512545326866233161033415501806538703453061020725975758419905018263064745870767444953962531265174118414101769478314437820107449810425169641434482563645544209879377974203668229076733956064650853668623302341835974166826268772301673301338377710483786810786389039096890200333135534028494692628557521611987748556797702465559245076239700003083370313313032249907980896823133267871787515423072635790552362035378009313731677408397412811863741241455125075450044421766115199476306946920084720987227115698144767172954369577052952269861422234091647415974828895418885233357743163625230807983095000534294398225304261160928122314136684436894171060676421517615581026278653654170124942333427104860252399236670540254308897411122804391766588186753947368478357553965050747297950926452892497161687552797225613534080222974259213332446782073067664964925644242473672811958437383536571921404623651484526389731674391978647827060793772629767380179829815062324388620230171422294143035850955872871843683592889325394898870831798718496983463955680148846687854219743863871870042099769226694701416744901799344167701567705326203024445421260506869254334198776077782648819677899993381881538930174273221406271435277833536173924058879186004066302332680100153441438730292783080584452574815983137900666743444258819660739966566597563964463163171553580054138394903413031093356740019611629917584692206053453397248753649384881013387742943906934883284612037692522438031685906906152460619055968088559588703928503413684470570856253843051829074746619341274821942178847679596185300914129100072914270331633892352084277551957400392137843214225412166898501559941685911390293215305556091270844375180898934659530660584356811450451203128713829326431429070223487039040466416127138612924319286208268188641455324282141403014875986130016139107051018632250515858739155764643091165554307837452526044750350089357466132374573502295410222176194041925827257079840862727713850028350862088084883196223162345521039502986012627934210861890970276996879476647978833653324922224393945765933713257513580383024906327809406823892786831537298734356722813298631744704499457051771668817559256608779199232534933925771608620299817340964552123669273633105402417619921087540488275082047868228481894964357788472813608197749826396576792894730801101090156537650547272122427519019228251670128365430382273114922611826732348721585914329307350505914859298769498367881066171408952361774940369263977002340000807277950577366470685633290878117357544182161927851612421996183461411945966330971248894925377458976702168806477618529159264709714073877908152146631361532542668796727691591188978670582912067099021756249572344202054570631541233844148490047012274970375141465634811162574723449982930292529583203230874842917012451847058152880853792420584599120402152895780947911935745027656818713386893056077041732615756888422874790597651460343923623551989887964599958470680303633691898423377787480795953808431141117958976614887125258246996532599600744266415772802253338576327953329245217547592392664697619347150322154750763952302587355343390119530488177330491078450821091917461052702503887136997456305793132984183103385309640251020523346283476614717033407074636199486023467258472627323980907631952503257037813917215272938767741509924545932803872517639534597031851902436658693292251196330278911473556064206350501999496925493848886502743630356517824064154287820294051101347328869642287888540326957477178144066900035811231078929800958405167967561299689965787352409585929254370094576597921602370949067295989235115411288727353201350026118892928861236453749588379499343303267863403494368535418968572744350763060205696791972846045762374949096138340758617281237222459274560312532054543294843929743367919102513009504006399610620127209571382588012078750297129462448808521215711105991686142782488431239772359926854455238982413565829354552014561852343997575698452362983750708077388743306390984796376417229089430021369345138608009225466177816651074494669320104261595366396367590433686647715655625412431258461113911235387521554098296756668308155556633918605366713911693228758963388001415636009184557346678326738762864593136114170977773832188130467639195868023512720950977362766369745535206185883610790777530723367555685810172772845245337135903506999445669708977323693992620611107243874671063984917755706619560658881446651233960632663939835904667000067253753658363348115766770298164646567096533549607098304020701027812194194646450150877503639350380296512453867502668290730007422856972856325570694999598024087687194758750774380792560623940379386306279800746477659857991613224893727297479814072312802260662225745896688056164779403383330466930683115058048673907727679008003605299501006294072017352500885150500624096514156155586102389406680931113464844772668098947654627025773639495097113180896902936782753218971292152024862846694933176669115139539673208760796616478660496350574012450180172394113450336996377588563816367964651468696001210936706112225200719742065333202894943407482540941788984099102879471165609293963509436138170947135033214335730561922107423960447103100024601620085097452494217540585938045824145667948650348182152176938383648142494640076572629803956027735426252446890520139672082695694277163808028185662454045403808373047169713032618016926071079789984705283753061776347100566335558510987551466777540494115277486364140978661954414823437033146532790172560894494322832494357621356353353878260821567613283889158561724068858205409337276707348942973547182419312495499659251015586051770344526097187578944064516125191881293601715665831906575090758648403141653547508297850519762067267164815204119071101138094471343921715918638451286655485488514238351058247969870534785699255711560236524378837644511997451928627859539731465613148294514568421434529025081668633558712997055160264531075303620166451376595578418159433231598628543630262655177511331694773587292734417672699323618392939391163305720853075243625043134406784144012576875182745213475978028608838442563857474136836225036865245507263282535421029583559830033233654833728193227279899371262499981490908869660025214673480473371301016638002322112379314682508444201186380903489054950637654360314614436244153706563622917035082817129834309183935645918606411746120388889968892511482490502219338962374163046153284003159191880987339420292758661569915197816420094858815606944951132755356175471348198010271508132252453775024455675732012032966423899838820269910341144342804063437721243357031112294129524603734433650395937608379368074356669970801213758522450287244964140686137568879800282550369569729453898190753460070274541970244275421213476600150727241507543629332663147682627965963959112899301029379528052520794726877557545274842410856826966868373221001351144900139781423223916305119648912635378413883326690522800955312229741884684686459173391480548007455077713475556571599215515827471764612626690298572911923323987748218443630236088626660924810812014165463061683159564930826570234455393110997599717138711369715602134792709690232171443861191919065492008127330342486641102794600887204509262906419696328855380195431425518133762611966210694767077600480309309634451436771887598903590400402546252753103060977543828430528491664219146018659564867837547254106632523204765014211151227613597268652689547845065499095928428794096738740267080140803019643725647790113881535248659979232675916169898041460526717747472374443855604847694826636906491045438081612114904257426676898828775576347688549507847611424262958859240329979317029179517188254647223674278221158782930562740573848433817139788424556111314664281962233785993042620597783392608181731244546270110993510636481368410340549735332617370510009651705831064580050252140162936326548385557324485062490765520218593913720956769010934106807928571157589937169928527403921025703393558251440408904397178325803007738779314296627217829468354344201075058039073511723134360098711097644031391733483927655590897237159574367493717147861521209544110200279271963643090988842179066986667153282857661566669276319329697177333533623815081107167482854900508993562822750514592478014070105698684590593060614469236194792460387571243254839113361020242928062245989887877652243416873313302119699458010210081673231104911508065488381106544714843051820297961497905156285781516864042135202631543403634586611980723294114338275110343743875992662721746658033724580538430018109643088239758581419494238658674240067122635204820857945696954338572531676982647684091466961928655890777126827134053218414343162058766765663882023907857937740734290468799812398701652097172525002099071607297279084680051162740648077012770144383235770620738360771553398025745657988594183740858497317903722792783126352129245838935016932433934459642219432739285126389346747958604360374811836032434599701936403751096097137310983191119028972185482129294292857215325831603224041595383568734869205431953519249505663936765790779625353553468332678574173985492118029609954011197163425799552811980261626361436917502422284977053798811421672124098906807791264176137722448048588121636290621269350256982343245616168712327402508290628953087211214384548888309032870844788956900553217418021450211876945323427219534255803338387212951878436449866573090925447994451635990610862199475444764831468871101485548658103443295495428138144637553160108687725672529870123974609304461595909737689667914389564053764280372208774096078645564291227444979639790237276928344644444438640758915393248201731443311851113347462656867968117450786754810002907384241533507228459454728011894128865508438126227402850009279048130548305537947123516717506389902905610380726594279100408764253319257074702897253823991525468956414619082316350083783601191095067118376705770529751587969830066934441230609177100983458491084720400305381713372674343463857029359769193882839915460912360801050315988180296095883752559437950572958115817279995554473274560181432395638394759025485915858137418516686379216531266811956006540327765604544447469248367458636406592412234847424618093935942829359535626684599798062354312505494105698467747180209659594526080436813003890489274753381938759071366733793188843925287697966626196948721421829305477863230917373270724205517514235881453480922745051643230139199192817399310039805043813020620220202986995822986748512238181001825750969101666763213567764220518446329952447742066735495670990930616043953605047635362997034170960550350647219100859576879086232120384802836584973124934365304342266697933429599482639052358487255248190181046423923518901494181762343102540530793472225331376231185625237892502668224362623897132737635502884408313515705018579966105312202109754729240841534613592316311224404504873397516101704307031327873350907962460041209651556776742509706180222972170109304233382346382977115750590122018208763001804272669892109343595532313357309494864547875506399677994411118756905551717421110474116039487143116330075310639681979954821592069565337649333504099739708293600053535593016895234644838507060538712664377551671947286883086215537154125319736970041401275974467719438142732788646666886178359051746455008160118466310407244665304080980632267385273592301265526031810064403669381918501610211466163796975926665155859082066804845536323538397449571911615770713815032339654375799682633735992472701388023781197388978997304886397789877051471725772833304487769136963844030776316896420141452265273982288860768608464239039583257434919014065744893670214802964670706902931535761804650326733311668352366890890528874389188285230353302091114498283273255657400710742227516667369276705270467812731923118408564724926254081491059554623611151060383471981277001783765865230795684589622945308000063015770192532069940669658706395328596207069588169827714685983608113747042488456434090284448601247556398194064587115742916325246068848576923668190671926824899890772993012108553665782292749381541100658351554670995241833648859877515260389765566894617204233819103982355687965272540808155055390219617129367784483131603086925848489477766102344430349895620578710034120294113023435053907415738659988286427234981055233610710538089851387392146275127077885497356333656690381753533195486011590681810651473180744974479206361318879832640314998936142807848981737105052624835567522209078902965350752582118395684587268534622939813484585465038506622403404222660978263184443532684219770568422875232255106996638559830616643166072868121967204021511004616900402974931194126708587690901122407773233566876524582493284365463444556942648737773605435908580415383609831153323905751370744329066000817743105006844355253341957425752741813245668867897037103389653337303181149791828428618383789903085181813437407893695711090404777646364172385494961535114998608493238711614857575639575137530852892188562335275855989471337498784813470669260951766187188018962513032763233005444266789181928711755878749582458639528055225850057352038500270038210842108869114371684986136051266573614446337511781215049687571274831427987525206848598117217668532026185074472493543551770278560115254989538794135412071706614904027971471351791399202970816506263665788107431267615803111326549969320595381659895679369904560657608839799513011731009862765044386162157434302117905878911006661546048496915501410853294758076331062124364657965349566600892303120322639555941276109684631255142984087077703806557750258209350109666809066290689475625680386039484176982600100861875042539394178891331978429492611602383357797526496949373836067744523652689917715180254773840493187996728012781079980520992036955468888805555594122953591944593964881186224350355028779120553502275995104113773832622393630359563403354343803384258925709913699765529645250018311159765543829774664905329541171286048122416025625895748309104788282498577861966378496963728351217840783101557093958478288028531982488091959712672219999919067129743955259857721384539500668132974072913826643749251150161989560174771760579687179299758106046652962408495508822919118155361690381586116217901563773069246128088383950242691394177086183794606715619055337352214411228124754237547480050026173700208310606501896285063489443609085192104640393299314991656197685673183858859807493535390181394260726683094747656465009697215655171580066435341098502687188048982700837249522531012055506111279024336309382545015208486487971259862220661033264170504230727666875082805058696451552605525324591308158523229225849140449068176477446378713880104564811663483643238175276610653833681460401616651259113095884510039810370773722531624199944953498884935135624084310786093266277802988588314826275493077445784382633440671376581526395870380410373833939754279162154642999923193280160373727807700224028961368490585643656510690468697153727843024426898602109274779774763646443758712179277896666862447855786820336056649249586495330444664587571648468873513739682951938478142098390406744871623693641374911564304557860804286863355027856557495286800581666262177924682724652445304203727019117752133822845240590296673996219867670965895629467154805479997632470015601489454097224454147273799720443948604691459684122775039958520053796817158989713111242943459821809825476276611626459933026254169265617712983201268377816076673979208855175416254492871905427138294507153552445352963408091533460920414931186629746719623889562547796472439598662417460563320650680991193660738640096001430535950840431628153440390086691426723071228466709560764206057226189301766277760146642626197825351134135660388371934507492787932713659650503935498458568357963170966680371742509991081465019177962632762009922327717442381948402197006586373101880099831069792053998515902230316107759191085029685175613666683815568908396458850991152185479173079963111712141893854433912981102600381372241582400844328156948378481727774547837082838405958860469671844276380814042540281672725491953525318802058324216963398721649986244905442500893057524197097555852756199670410715281263186575327863238010131527732234387790012941140244422501656673973082079597604389555871911196250070145158342644755594640458282460893344992838805863549293383340294719960681432878020613894284708397315324509293263676473606838358393413220572790389298085020802421554765825259373187830483558470592816279346313531505541689742873774512665469427435287102452842767766674487602061545646598712058813014516484600236693567409900248965728319055780567563363558792554858745637170791596611893005052058839561276093148368304428074253330392964254387959913231202070875221629742139142735360824073274642674111167709202912016357063167331381780823710764487937186745919087958242033076145092877095292081761780822777782109755493425000983040257021976217143040574594702064841597132952733377975491909398473961778630187556333303504935419413282991001674293884952731845339418321197196223673744831038239975016380712098217742396494478263320477595985211697875712750360160806752817722018873565156499342299878421914850575047871699484851082436331988845401505522416789971599902319840921989934075503189439365354951728221038027192552550256123006974832553828530568749926568354108278819784500493313383714230329506366524051760537691339913893913522390542767827878176268858585435325805581663210637488168329504754588516589089849836877495173054505964699899169129122736318608837790375887131934995280930325493393612258922978069031470917148466303598467594099859463895614536054858452145027201529101065796354087767353287721193786477580771188147764493547790050484389445290595162096632516698103720581669338864635341411589563055094447411155161498386913459802217946472884171239773223591207522023170820965107054343116407121746756530767439562142182831197500476342245265820161524525792454957260911152319088660440501285096339381760502958854934128659493541069404780779156795324287049290110482035968055318071696767524360851810977058313968277241940676762434911573864520293527574160982567168810696700997661450996905993746878912759660664915990933657633073035008968620467456630339293729640007325676869338905753265807966098585182151348030642878882197535212085451950499009165510307211707707463197221903341180485392882941343064318971428756982780677251894044741043052535549591595569810646084390985132238205471558903355188603387386786066851174960566871671583116579742702221994699416714244346508441283971649778207417343137568631942997594056015069001892870549734298759081967885096265843126997746079702402124262638647673684154298613176468970999524302993033608166486903992257361572404346161744468683304364682618043933827743681590896564117795370172111350268760920695232891941122431378904411000899452364771744781799026266598695923324756550560369450125527554920107090355157183474240223968081293864914060966680417562469608637047031866374870512200847757684951244870579996097670668335022145750931584086217923395150576661912970558311610412079578395059813247593980129769798583563491884537557516353504409465412910363977026594980365177106945377845163686647301403639477754503100701650428686063001203373262765368146470456740279690091176547560048926134634653616624601526999652975052028173795412921877512138552406965704721328777219111223962058506432026088687121211103363417509607214399240763064322484005262100137001541799597870390720552807598239170218965515581990767688101995691130030290600483578350396232981070974458746138809653391293861203847055338939522206443249960241293760745173417561163702604338766637549694440772374433221922061035002318986395477226844612294649210710779011339344849936998816707704774443572541956480148631310746494292303536844239530300405134965692077389427873682078093041534998306541279503794056348150628197377551310787082426914358719220268867147604363079539742987275400432550434348595849719149346224583864505104256023810801289593538011251058319155176356254328072073273997701185315229215722319962977160292648928096892627795277674077593046669484671832416075819942910457056568558506596797269529797783412153050989219832086722747642065658543775704572107440117681248016370917446500964683383333574601069606957985960929479217214322840427179689397453763684502670935073238422253514308387650399400033291500902469939062415237320635059151684228564534586991036001184135978871686806264988097626762434778075265643860272552080128587692496088985473784868122283906109213690739944051763990771504056696322527295926693054270213376280929251411574964489728786912655837365651245778212884412198982826695651060061772980395546396485173389687085608549368008360626660734589848989865678175507638230027610699742669499386834621840906502674313511665085393883342240192859013396779063012595495728266431790041645069392787476129785646017632485675718712982477561862050738978458001443540686386750180510554024884828753441259617508020116521664191938078307731562512873492209775336817548646216389865007633742579884053856066935796668773299395918810193395908903987028240149181972585273513875998910005058340305868183371572835704641812851296177158584953413190492948270563951955948517752102880358582950208932392948409803739319391992109973389539365851364693834031754100414171673762382485417654630832396965844154900975516722132738188034335522895929190046792776582369157920085576844514810710775336904708174431287902206809097143217826259164134058250513587002643215749578070852505973021224269972013425099988479311724684024442043400660661980697831318285211725217102191730127292301724239773352247215582141946243130977127687763490083732038318863238080527697499814192757154743210122185695447750908277757458183966083708023504582855097984694875265924502581140242120992714202547740830512701212479567552674006340970140658688047398666437439828214425871423487286607727052858124262228412973233512785065536334586139761045136696489721287313734460561241355221611994325749386627520763619369621533681317419784653404092537966718589512485503095343034406757187812707120505060148672685274547076074352241896532963237965029870730713031917104724652976615309651691316313235723715825345893217583608280924922138590333452637841779204206785078993615374716645674082436984366197095033346862590350383052291821961190264325824484477740719200755396723028426647824466155658156255993513930913350914710124669746784753951128210952357243300128887278664053253814599518557991937312505805164653696162678027629631371631315588322064129767700941252017971615957503553098887915682078798308715670920552012885485483054688607805516345708162519557807317230329080034828540593195875159622652429919810215307261768080188561744771014819601908580830863781746423246576445118648046474221089700079608244749168505427721393868164058016907328545442312642490046565401368267987035175428693146467328980501931909431499380681495111934212727300736733765117959780286152427459358631158131249393238715032751320955020435820356350188828379478073508461472281358527253281072092904185941873044397600636275474816731791568940359529205337856925657072926324109568763616374172628918545838019868246465673114736894550169303614436498328038116452343398869885782192039298855296913153646399981108272216673057587137899264284742175098987874055620686218282045179092188591601613644987663892542875980306543036821976430968110007964251166923315209254026907326772112312943572210690155910736599517176619825924942634426618483446654099980320178532125610121186295801752092434245856310099573097196413138500152812016661167067924871993300883366720748394377096599099582816751074685205866843930896120857868507184657024979729569888155269901720504633573833747989559820555765161929192278986306721179773582335581874065109882489746673298559517827894173650759909575632384351243084720975605627823672182413400704821265218002423383853704262557853291394407215981335976861370231791971433757833206045063209134783429768562728696969566197025299346563655710004579420133102252803937908563464390873453463204761795056662630487851360600203854768570376710432444912511968555868957799198593128036036517857458923000314704075685944181794678651894907524935866204860408877496255754429872485523613196400967747231964910629273435706752935522866109679193422784041679430907612537683319592324053525167443474955860506920296189761910402552718742337915605490149510073356893275038797611951694473054652815697506600927596948984674937928280316783103682544881727889476004790899902118239314878502432242927984535115541760530697281369415161020739029189615458854791351974218506312117427558136050273209879000042754330425861387088746965254776372614361844808639541698026204133538545000604058024126978092200000776593302133203642018734826407128743692032668697069366916111138239479757317640301449205471594234359770290864333102938207056311504575901116824257866346983436646233471502617718683476586349705332612037617907594758642100052083217229867518629100838478847393792159485818981810833194461821772369879992038769687520058529512745322695302642081159090341918529696995620029682793897365850980993631686397679849089778663528313984063817312751766593327387393529039120316887686884173028015544259019342889732897527088321827620177889151228015804463000122274279041546764521765997945789228880819425052417769801324383205025466739453412398634948735771458248776439236681290270023571747824943000147666557996215911582588455567826296833041555271863371833488620614541786005196917064626998385227666438166773073615970243899435315327723127553960227050620187368583027027566808138952072734071045787698157601528004588940344431657594017454806509264397086466298879091948967080704682034446131224441912152218604663714236181421056850033054175494079398442967517194651750882594022109834244767939852145757878259580532125030836501976884916042486394328509327714913834072146677519863749350011176225712338050835529382324615044964100514447693323866443188954113945627544161633655938523494354762764111377116502181548776759108043575680533939634318577814547349597935311971227127120456919615927595342868180785061005469790453898746948445057063234997109785086128826255171209720126482786355133368835267356410396005431084789473372515344672000199071845806065570417573684959708736443418820373979549237518074774064531858078048827793915035040474599291665803663086622689534789587657042128877160955449785591908796332298353661904115813910393523427559137725362879348659347167595910750807394477636621912811619884887222597333190070052780283218810000846262626867606200087268771851635618813246089805459508395268252475171392216099791509922831506222090783344360954166227738318866094944521341990105550420124500537905950587264056554434324520377333825796683357162716614455918170059684537661637066875778302697931648754957398051933336585412524153627380583496529791966349256245578680594759141720521881492900091676134384684911598861670434052371788052675357419964377542233464042962343801017574094306660804911230559330684939056452915128652714049285544370016272782279020225216019280787232637269853120703235792609411934536056917003591399450465551029726223798628027352639178051796329379372010884194010016722895591883768120553654037447225526112548689208086211548028059315375801655042353542946874851802908632647385643695315943199971765559368748588396549250358702304338995819489308019921309926836334273623946359072048868362143617009930352717895868440523754265877879222978911830902252657588062414001863228286477944760317828657250229595151971522990953726446985960899335019521784580576328785513572306459946183961516620639446889677180304020866810803038710704762771339140326516624851800195602830281309874419053681892498019507068488620097528373711107444230424241971180285238911711216404396151780274813247637192982612395503171700889877817528701217880110082221692701209842308522656292204090799063387831070271268196874197626161071736837681157216164859486779739374325383273812114864701459751770152302812848842343077452288267504061248698136874935081998807906419737722809546476692266396500974024095220618095302353016362843796377139010363138074291229548366838571533035976882362410780844464832868628856330949052837919080754995917597444293773790898516040224043409663717308353107948449093168206433916142326981638104583542522261339506995872225541045169975494012764071178942183344572072865026494884003385831661010044983083046339179454510154128730757783645116977965887782059312943242233354582996024338136530735356592871692168729292332591240953440867045597351304911729409576958722838604168026083707964938518092904877663963530777992206929768247030602607785256907080296420301734348091392284090463353489770041980853180235367625297519825757422758947528623701764646823428679722668456854999171680711225066507863716667258848297132100116384467979316696585931643880247052793667051468177451929492936900069756696175456144129402277340228221016930854673263522267789677561246968361513631823951514431686635350861982980597902784626395192211369136248698097443216022708558291111298764368860090166092075396350255878472912954499186691422539409478475687479017442567518031015600008991448820124635599041202335339868393287042021216022542268677618917193994501337164985267345583923968790065022453027511341759937014624658672175402478992564938807436148228243090755764970282241460212290844679942277982637042940027794430827924741816623044366744306625314681738498444867538523706683154168018629318660231918997059764076463906271584634219917925678634517852676924767843537528085502595613522546929483755052067976250273560964263759252217877811986654871630215157271989213877529436841822511319770183730447655982267105559384128946681194548304540714597236383717317389421513693226910443661993725259786490368136227700388596624548865767872950689823181435910956776733590785303207130537138143136191655987575380523565969095307563477525814531930557083191860587773925900562044179190709378596226731948616939678820524495754698522365596663585078949505321471796771955905823820861785901824269435828130260889688959718986901423310484002951990574757230184342579616923304553320275238821504082454355204621127435941530126846305778935871149928590302329828388269293822555116135204822191082492568261073462059297735440800241493463567851286311286466773376955764809036334484724084077572524632392425098760150083503319573593470350571288401437499147259720666876222856207822457103934188375450804704093390432767397011039314598050466625640981013928302775760220387919969831710661160200174735511224391585077560621232181299558587216831456469485879495903168898547682972046680298361170098423322558734502451771668208638030771640855379057990952406971122302928439924215951464310459675015952242410503142690036374199811142155854687878717449292294343340651018261726144957873569230459263845479901405012510942436209262912108107408422682294160323730279961047260186684244240147638845035062020234283633854946910608526440618710630601666757819348487717641630955788853127855501469381878244921993107349152838747045232138875279665668646504908722411344904551659867936755827414182296189043974889927691374066760125727416925306516386811078388978957325324477466090019606687718907644223643136012020191846465537695170397794062529238454941231787501542975593308261878875563575546978648081237073722155866303202618254573434123945996457864079155849452137673047198971151076050236299982973226227239755632195513743400588925658229835373857022887838666016517172943872429253061459030264966756372681933458580221343775016176423526382496280827633672163139332200054178668136769356163585442055432663700318359539301363581602279989910815702699279609953817862374940651733139239844667247207747589951893320132631424861997983431695556566471666063786382341141869010942244808737119562591501166671805261292764637431623509060188159763856595501102416952379579596651956320978511590489648218720961983808169414734975774917075517773788898494996881536394211036649352537806789103687749144448601088997648057419041548063658586661094630779392486503291235614445899555287990513923971426402318702774455981575117920286509875555493938134456748374242026987389896877075743807981785966885527894902609113121564740992627700168720904619380956297983527112634364402333916370885801377517508941199016377042169716397977376044767294609224045903048148505652622658510534355686527170209236580849427332768275600763496981468583797451019640770910298458801620704104912261308069761547921385559527599258046664782984516849495909244004172052674232963254640543974165343830241503629149776670420969804800681905685959105073487772308734239752657442205713465193740231754853260198811098314532242320286599221975088125002714687814467856650183717351026156631343486700020205598628527169477251697549576435669612356124890301457560336431656397403242571662212063730877938110929445156514424556928027673168012919047173696704646611511546048778731920802937412898132644916845068739946981963797217640541373842523665334491811610943063553481552499718520875976861919231262827295010817751896166490645448949406854831751387115634379594956635322731252031050363664861513464678739521334225247430114984710045930249752675099914854367988066880376400257464601457262251915138520319047336169842663003473256498890621365903152164330866857379775792448404420943399573646953091253579090131844622968900005839621015697927023916988539832385266316129687021341213175767572582544502535916809599679309617053035351580930038081889786915076465481685220837743161107783562083059972239840766065742065361218489691221090936773551359866128280256559243278974348873652414912531771497362155779589587792422065624574335403884143760420258698204365500052186475673172383728808548824709745390359155190332519778946015333347707300065322595205006332070480710835606027473793473700147999539373439311000314159715714399366789969227847581792133573321090161821830773251291450995142778248284284254630631282502491523958448460282147243955070735772743451214932869806901042112167556506923661501883746646544630150885762472152030307441196139934433509031905738461274586598353222191550525688004253480693126649828211928446353436781830352937036588471101531961917226613421075820772226043073554877659568879532291587483231018461854560969307472591400042521561774173459208823753030341952546097899783026712271221027327371287163083231438823706658907992993800359525125871646538437704476803001389279047260746213097316488909121231840079155822672664255341683562649873684679385007194317654221531333143121319504864604084042022027760374344225419590134751372933081394916435382473076313524957166035930706691058788228847646226193950361171000444346943815601286256599570819705133178344473716430714740302494033649907529841300541557890359207050402276776791332525814584669726497021099820931431662786332970460298584824036960222755803532340172687753456047225274531753056463880231617477006881669466896553495737183096371306676192105145905892086323429348744483633310357414770382485812598671235619091734689658915896194948200440441537318985161836608950208115903779188888244899131784541877243391627417349530861027453305076283030869789942615839023371635458931934715023037085320897439705507717495396890355602468398164406246662203824838732694636972840384010901240160049271042391537241161304926019262748150063444881773823078144513796085442799177361809806043552487826528273077508026135786794260023845154340555269357585324851921680861471367434143329907699580595018657795350488251890432289826359294728178759810160143550248826757689414101285319781611055293126201820373831019585271714451447406447150971198031097963272432700531203170840295952765116153051159633842547525287601333914976104332053034860063204499716268923859102497358870933141975476416348185600845727562931301996845299565473644318406975381138834869231035662901640561522079648897053734348364808262229352289053724837966092831649075318021037307079936338435237507707147627893922946693976518156197266986223074813461058350304859402476592455261088097380724852492186316698398111131202650313982514628930197352482066835131179146344192965663930554816673242324242206625787561533186659358129952661860599344857399023956366216256012650239099721821374129718924406555553748720379172284924848478520417472208367606859156556643271413913615585510572597030666332499707354272862488938493493646343301481830222652099169440955329816843211390073235074367504479702442526747996203005935769797823586016659696212070650363140494086311159801760762406035472095845688785496653807924923653100157291931067282962979002898431997365031253066949789457493500692419576182201130395253982267079665734210159719183345210991206220624033106410402954568517328435791348049032494216371948401805662188309413644178204723760306714772850031604589993385676138198036319546418381112835657012794465105897168704951418401178785453081167934549280890831695026619991621812774688749383128141125112073183307150850863802264193237745864409129361802750352223252147767720125147723687030941812580709583126460425647827291025643996726669551845700769974571378709534264590484651573738961821991783849210926379482893195846130971163609078660581457071063795361631461628323561669260442930582339024587202802456151338949561826498530315305532170809681724063076453893186822188850904493480250084128235298483575822779346724893169730069320317696842270400160564711873655093166710164564023759354348094933347824830794810765632846173212884537731985794815427134445526833571851674853022959664305146664052396276564494786072798483840154657673550430574086307257194539091071161291845372277934026938796979025456620355436913298215944355750108255308112768048786511383736535996490623613999416308561018954291940515242477053062155597311736220972199074189516305947003200643978792512349700760165701957019905115802355621318427204003053549794083641770436472562635725168833021504434772452443281238867476354163370912195754654486609123869216488030939055945617833510862816638977734742037983096773774038317216727341204386702252735730852044828115569788766645980216166466279763524590245092335511591584675685066035044364651623261799491769958281722405965962070982908834907783721926293731867652940566194896673222740770204623614012777251234499885067463941874087531906348788204749895986415814034202991359235153225238715506273407316754681881044241895722898637960281832116625468321417298632144452563810451961593646047771637892289232604611252144802035293936916566436427102577205456901558890786619900729052410905945634078242790662192813849237397509314605142248892771652343752414838969335816697949556319004598313498366513278321709713101806608021394615904637745034881072865091683963427493395184702675827961754262173998302824183990121543090501856254250201510313661920914548735440194965429466338307491600820844945024910406759701920996872748016955904542712266755984331814038538107824813088861021087308642500603443098714698542105612657102703873514064749888980851336553503699582109984275829281184811208018867961607562262022311026758086661289874478937882210943363554286431261560487190085115059607758746203144725523678946637989362440255141496076479945387799935369801089538159636622600894659118066225813418830114820632054156149331504479073146830248687337104150834892904384059300605402278948057054600497208535546552352942435130268381119137359261252764005594689180220635692916229358394171323615173497887638893345727792287943145602206226321040107451930933419434883658089156910505212013983319244797005100921198393375628476001382582484330976302205467282569439512556535437384525716117832050155005522354813123197430125631772518898971101522819614393191964876877080703648986883392843770173410630320507050571321691576574821439748487004323450030676978567757348218316405761185063455671547484294182332052051283133601467216536407647049397966574153784461534670092964819443139985280391442038272757699018704127377286707559718987432519251596593414576944873879350979892539299265998830421509621135089190855907497755470957010836827921011235398963998023445316249304252938072786053831019560054792319801441017308212577902510519109227865459110041606273634036294835202757088682218984919226928841475380279116764010174116178848654476197671542620059629452679879574769448782194778114569724366885506331560261706889628800081744601084786494072594244984097130226557875763436609763715624101638228653327771762008294884756928120688380675756159036259472461487465720986570626656851748352578595997058365487610372418135514843188117042819887436366373092546651926429455820031817257789602395356706714258264011963820860433787673300338226818013750493185181346961911529194836565849645057324042449314431875562409000845812405921136730602166072987354938566746720065536162218154362034844660911558265779104127983765273375668935203863833358206119050239390710280183585168281547634856499565053543185411382264888310444944262901603933325578877303092068997331843255991748146771365746731300837096146347282263288540891289805694222971555212212938062932479797878185451093168304954770519309676025957781164850049339711795705050297356063515893280379560187254429759297877155055855206618127179607807217397218766005144742327641038696833073965700741390729011667358875276501838901112339851556652584306141460328780153517670595966444628247218160872599125661818404062442882392255106180823286356139612521085629911455451056596351175080589118109645481516204026994582011492786651585123925081690502344096301333080910065839254853108123360048153983196065277719346268898780333372862357971106060681802906185384996912111799205556357421513695194018027217561081653728619687915584180055252545374943467157837303417026937003424328222629567086711613533813436463519580454913766543978368540288937882174016703474265828948519416428808699850636360310733861412818593991107708961791474478841223423483357485253582133632041782128182296317143491979802786367553280813727291340474252698757377193978387905241758640865981754452531756246204495202209071011256336121321819673333797128329225687589279064138596816265985013939894581067221285961141091457006163467794329440567486406312786465885869629640061355718019258836429611682111298887973394301987611389765934743185578294895883362938319483072210075249577578396364865309555937859288980302411476572385546840773509842352084805581366010154340444452578831745536961896308408010582109104803751402785091200693639402800383503511519486027515457054858263615409761327392041546861550679399091292724121664624225102540439331240186910694508382105641139407564969520973289995672696286576120998826112247925167540601721185384535031184046454307728370061471447559892457891852730372812413857394728075247335245501024264941968163106917742670441906446099593284658609595457586465174704201787149669727896094204599161279019206262249717723625292476555567852004620639864857766976318558852128655095299684962250573997840303134067430098527031930992934333860017088804056857866494501884139883105083409480178053134086204748305903865645905944766034121240081583921770809182234235017617327987197649650909698762475383302756729278196892346919756766561917479244606107638613203078374809504360223826858819625028003945041006985701164546741979075184393546094509763312005299635425668322373940084104066566985026633245326135957895117919688927098205681001338332144529554762839321914145988516039108805114718067744831248356325168449486202020018542013555421971036651900812624835613891905764865990723714136174461501319173909907526945542115567168616605465490146896807106381969102321025501708828735421642385096611767165082409496059048501533762567326767550589143234896151176557255489998388243572321276816670840779104592320404615387359663629675700883114708806895537909623280655748363830509174326668572543806325150850520808087682307174776144872123539544722816203324057218034769218437178395846455160057501183750506864969836859879885191522431326735919110987612986256266228818164936343671849950795678500150236024435739161998756425140342749137772996813912975825712742842022996468072508682354381836646176490875454027299433161106214130788434802163276312534746880018936772919016885735286453744510421237711826081637001034269672633146980247511234738784442443452664329727941422007440047322862304996347351184692793199473216023265352594998114615448679653711986216040268165033979241902826328946757030770295869084600522460221930196343881565836406117624128701147518320819665171011687789405972776724979412803727282426870310384364786653269326834226673809951686507838314469914405749324108504923774309893625223937367614005984122516063853142462225772708821476998649303299501595381568287859521885085613947963210446876525307579018542970358816275137084537891420341381637095323785562588148533759037076212370406674717068929244178502760735224550324401438312469424567616038566877148202284217616224289407782954225651681434644432275394909949150235586934227032323071490686286187430263179705860756094829036697311865083237388215537932173356733424443197406020555742344540294000422248541490495005935856244550696865935202548519903248026556929700456271389263916418492579552007581605627065406326779690464466275004761553059726771000412382042078636781783396212383739982773974860853009464847867116412515910835118321111655053784345167698520647930382663266600983034012898468109662934745679379673058104253871702578621951624230468088013600508332623094624488429457763706382802434686190881635156538536738737617862281015756738694226224196500199012226790537888687692396574085816131553228334297942377657196389474885359535923192087844970383411158333998315098208089846528503998438770638891496503907232263487559569194974711622823591882802577257325315525710445733712958324605312287174438476299233080788472858749299100917634197007175448824172055915389787670398295771793422537786118777831138370364293515836040218704307099702565356066344965943327353109899592089410717216481705333375030769844779772448190492928982490644390200005162879723116709083243945853530837339499792462875178450929604079674896153479693557626733200064120952358580153376739838177664294048486952701601958231429210091909802751730936839552001724109442528578754893205993085202309105462166563919665597531699708346413182805476188372728308640294023611939175870488139324138727877266717862407080938241224680271663434709098904000536216135318514884520414633798453117960690418694922684554969119705445093125703894565436432379309155872425025651158512556992002191215085904215810018771850185906887886133479024954397658068794874077080931759846012112456002629025732908387698674175346038420436072577964756150530488623820342021060782822651221428778772390992476968999359850045948037093849511244569712362468311482531138965475493987689197291386408761690083943479243074174657398850156745034737357948093553188460356437275233446171863501312873519352757059863604984805615649110033057811912406499301913132493535515334070961476041884734784528624383268042974204093320937841163757606629280443793601191163727108784411516656271364450610537076735639329525290057940197751624937362468920964296759767845299774604287591812676772367642223022965125393377678733981573898650947962543648759205879784705056238149425587705253148827427442378125562224512744038082401816794507008831754113595466868098120014972720970712584868769350406735005910072126618744241432050946526274937009390330070740185662485234592988636215987221379345907544493240575710437104480766909155453647128475823982124997861151246246585389159820635162887020953345848990138357329735302605810131779528257685229400548741440108878284883210809803880080208523177405277740409683689344004727528991289926206100711183936814421237611156953511207076269197355169025038113237140803377042046361345976920534136106686639532311374313589495321272567337753165395741881641852439284004988291663572847973418891557078301622316710489863041496343898020223740134916093913084138825162147951532476057440371254225373510145454793567148511606664644160709120070691895557701177258328649356369660997445131648965060031487216758224858275970435071077270488401773892818605023564473858523468153461305932498522410287085570732022154993017983917448876117905422496653912930917882425557019252455873918666306819140053707331302681492350079255176659481917754614951750594950308597880714179552508187398450299871437253705055635151642813508685287301931890639218075198318055020626606437062062650187061932326965225941542021192755092904695726296826697286395834298485513538974911936192250503745480014474413821224635819986441593451220253601415815303764090992403053372888519753915711775948873696260597341693399814504772428121665681234039241744065628239258220402301334089665888742178583295383314440454497026117413431826884999638095224937418718080129970903108735639611682583128084465496095538857871434123986589934255390346601264817620979242432945166313867893547704986859207996547184474740816902936936418856157985941192455841836758508982254050820220225642048277391641578452740976198770834667741268092755769771358514051585461261951149789709589941609010809594788011309178697978455763107998637841669913027776338379437093372667072248331071197738525461064964978571539119344983812942949956707180447036149540727997794798588973191154438213361299191317382044618783489215155165050021757474709232745754664536814320187679900102100707829873212492413069169035621586686027986126780352039276396605267356715261229617266568886911259061092475636444461804600922685762893802393267789090628157705697958474854474200943672517322622785074443136980776211150574769644287428372887126025519068551384678162542046346135346319213030441775108685678568170445456736101715681629393841820458470508558551484530614467873548590517675279282014869043335739485745619819603007855470558727321413900406955513534623515117796353447666863280754315994622493850643576914036263868776952323984544437164042186417992564848046257690788313703965936540962891105648939087442948778041216925242998579472911647615036146350947942572345372397804327165987631847169590886470934936565701559349638900497487666994773495711179283132444143202766520236734397553221381805302609153685965444883854078963874577443179217108635040405879658479644746908487624161568161424520926371308015155873386343530205071943384194023420391123460939889319279798898194435982371527244172689144731121772936103182902870070424713106494654384703578121861190731682532847998063881445506581293633287328181223238341435897185482241463162169338024404502389717064461473310317573388683209328224845727444433848100157751360082344937491620324714092067842987297414061222230150189139624572714018154437733961811613484441599994996457336462047457592430210024212310022886581760222556328654552397338172617455095909279374653341876911792458878627934718228124414464622397510021358833178147754338946681717453217216622720204372332337790591683411279915304070362364307378044872078643031388106781053645592456851310712487924262319698992333958931338547454627375463011538734333939543937068452239157993347059088821520259947092244015668249847787181738078772205499640811569215728393234714407429427666361163070376798480568527710023709269485311982663226958261846628491017757958963930189205997487193916049784115474364085852216126843332199850889221786398965446545449961322546718434771999379684014552518369652866198632833360878874478436274484522908677685178713251700005876686841971252113707277702370743952392486125143932308561205649020943870856328598059399781340087843153821795738287439994386618157911269558713158513587499788143882918064991385945688197190831662918459354969009677436330427361502885774493908695474995802067061131456392522960419925704186897585372453806184107404843488382749607705614004767647706101545196714221105727177202923767158652415952081358998290832573765076030024054694005090884755270426209862627377578501025776061098758721982756810176296823589780083268890848426216792247216806757826598510879675248094515598208464994783885572477220843122433641201060244115433455166780469637404739384733662710395723206486260250689140805426992848038068295951490480233746490031326965737014986410622762333989537217922278212108437545300959521453193578025863499796910028765714163589335996211470575342126434245007455834868167206504573916000715227866620500485197300860853152354942359971415113607787730574402657932167454592702923183162352273049101731841722709156400151355753683456368117422895036798471835370799251326282104008862062315047241326411339689429969173076097580353905889903329025876259839584562015892669078425466897924448805652462029611107573794195256748375509870962021192260377576648863089322278676597270388143092518785650127429813435310630004434296407912788938089887422389089265319522139954349700583449861100814678348787767494851183689582038399217832087611728746691510940217821606133170692296138148426944950424136450107821625761332664277377856927184513862971930663323410358132891203263075545130890901260237314053277794775241924634957700455342727891052719685404387246825242969666822397015684314817025609664345937878634839574335540375703857361825337327452789795432683277635610120639557458481697976991913104045090370974687167330382496778139835268090743705681991485834179573018418338413059190200160743222717622568007213193042023187883756524528283834297119816129517554181048742074704572048492647623531183234496670664551040022350330749270205148561692645365895788457958507468396225303074028560025945102860729493029375115594454447656907927713070186384344975999184489712961648627282501221241262480571831481153765546888901280552299099618145504769930055891928464316274919523854526501446605145397494430748589778040272589321119688651461121460915737801044886258272853201106723748735023455998174128137809360678546240488497531538155023421462299965167909610046445731156892699626514710664536446519755609395430060559282246589759146169841503156289920790420948203788404848350000845979885543455565272097622743122288016717668663140100126411054597981167089186057036008381120930356081740604912185935576473949465618467611021901289494421543816609401687766690083996150435900972727634379218357227567090474167933855322123669635301499886278817318687200860578588065484825342739686978603424072996288829688339458307699459708167642094926990082410153041457342413848371181686578179919676095291075546542128542894736423893494651706448208248584937269771474129665729156264136999549298049614791688802322760299820500735499697495928240553355645340146316982344013043249496128182941844372114371646798288430076012436136631307008183036469553614209105701259381539693326303636393580271481725127094464626033160264844462728729957863443630280448832699278312187979637534415449008490752099031126489954486737998272294975120884848184710206381705292449711086793578746728190943021072029202505958490758572622771852185696814246567188747826741580824830325858229486893272374018478722786385797390355927005550417267102372697720826909505357989124075875673470704281982282366768795795281223569167551844856461409405711386649561969485083794718664873514344821056152427438798875890498467864668818422508136891111255267310808442281835580668141156067995410645333909549065338877438765816347289788588644493292265717606554161023860456857290410478888620403856141747021096215982792105488002623399849584055828736089343207134135405847804701263917971118858984402150133442851242916177137674462461033243311764812745797982539585412198860824930631297980988446141136783183481204747275043442288156206278758566171230977677241741572364288302414503278662190970107142210913055651012140098974578400297906225230750761122147035232380970793482406998305117163981467944652925610660937135688125769912694786463905127909965172154773092740812353479774132178402776279016225801015837698588100075129169821319056791480609922643803402671176884687599096616717333341323732075285971218434246463349208037767789331676904180670704325864789091119640759439209482037010406925582360446745564114309449541820640152467880721466741562815271373885544958143415383890681532525650570542414066002859716845232958419306124653926768925119480978878940024383038475385986787102456026153744578355360786047560230141645767026054685684549834187137276983229874195891828141923860464206013122688708840037878275220234383901713008669983582699792798794720032300514723729404970236290384886350782600683260401047856360765791123852947611433456436794048922490836886086719987829229443417860297169793709662781748703235580164555183891667702140388156204110893886668348406793694929526944298936868318554374529391337002832063813333655715797427549625588625818507967963681133213767792168194744883223532631933689360173855545269333487299201205539989544052611563146349207342566701561320772543279143713724100106963510561390181698368679691031322786228928883792794379064762344815902635851388774346726622355278883180730693605145627426614673790200444404343388962502494627024936594298601254267911952688412202601052461705594770082973426207918226504317163952701194091204826733644916653685558539006414867671173604914081323687967897878387048023688635380890916044006853101960466164467455550570664426427251926427812419200439346497397317595616511074739972654526295914758661883564136152470652585095605804359074522476220209168279836342260992003432901791943483790355716633847046299300736132215879924951112569920688844438608733980712363925134988317957211324771852943042199401382300407592772435995420482214865869079181724954605943008336070510747702026494096145265533787188738058204191291985933837262876454634776899006714301967863543856611515217223709854131981001213141999571383008092740212259464615526049744482541291266123255813134839163642242367578770784573010623821650841375760961487715038928892610913207996700373037694714450884637958190165000435209325265176891779285168839189358985550154384433287639357055112074056127007151235871851024835366541934443610420972385114365576892841984588426575065584437347102179593726526409624260477790260198596724295564273360791893688658293645999312201386733838760999752155089981697567931019402985046509556272201301480476509830448717584911916053772717160561402043038989713737310565158714433197497314628684036928063969349368462319773261571405335966928039404794233919351731596212269470637070006145349965762720913852140743680562114443490611867796560725231380138412385978667562478041492197911007399639194544500805234553246549711214425714489687823744451465858835999840902591931646529059271221325628310491297699393000261482585367565230319840203828552353048758866580194037976202424821910404174062946729567805665412774312183482940776483036672033879683774629758659421172547514132469494498281991330921951219634620556589534825555608465526593920276577251655780395968301395435131387240890961669422388689313013941259271151432337287565190638541462713144409646691727119240964055156057991329540763886085269279655219042387291710915833851048632108423632711504611694885293956382365721949155594737323024079072420841160930665991752752527684117685052942375913774619208901910647022314189956083389621366222522794650816928141679526935669843303785683576093859484838539850820680951987600737812219333820205559623337381383317706697320683548535021547427310112412854154675095977436278643226854949712150203826089780673796109100909239291134764831207562462498830977098334462955254707929622618000825293429785749747874543432781729756643439573018051875483921199044395154509613330610469970971194650737351839579094609674943243555326685346636584693765811594708203226138218009569704426048358023974020404151047834004774499485540987008310154344525160640328101041828065552009969829565950307842995206155590832454051751348941178154810569548854685513462276892521496312093136719152940670376479915429811718063929084635803983139882673780803620988903760267629453494002696591576374011148411536315265999655593519536150569364872124672327797215757386921181702718116500216181445422124883825144308319873402488204894937178916912569095103480505689357758249916265785204919041483117514303993473460339959903661135781429918969546121210711745421419877005009904356835895803673124044801031374736528766907152698950213278235296159372270350607021991734714067620810590101174363117792178095168964733915172054304536380351810729573796349797957775212950105727724586908259609905306938739420378489976705146826545967178354332539873002486932739269900804465379969332544706938863042868767261927776367338387711384223275294113544204745378853082240728119984793956981236529067223708802502688381709883954004276242171543512404827255763483547936405287202416380552780824876698371081527487422156801154997679811145856871965362112548134190854616034058859575664936420255794513789328858198469013406618956246904364494867494128168530530930797532069714997740399454165988730505888618967790423028613001593847381237127333038380642604601335423283294280498578281294790353616122650866268719379406127994311080869315862056327638468476438009599376677072479808757584730426621314830132298174286230612606304258970754085803281117021287664528906441526177812945707542469934779555592973558726449932424632238629709613814632207560889729263732474602956924422347889330727474286489851643402732579023608593143425575134467859031454432711433317940770069935688697789120381864077626437521694343175504249180893607686230057204489774948746763379476980011785320619226456898463682484452385949584775258749512252262460137410250316787829967511429430161434780303599536413999846390011915936589166178031928683894176698077672554717671888571032175103469249125982108367888392593751260082552656413679907452611973478477277333749396535131168277675759789851327287782137696533574926447527805865838966229432329021006304163097083056401551169414168879860917605974042458164557066103091130935648811660166497856047734621563132190775918184443194165317963063365237460107234745046216893692116754227961146892710203550470977448356367475052116387962949213484899653851272232458964144789390155645751087837492221491595448043746949732937448588253392329122206098488339682558196001009103164784228496528815050747878121071154973475642237272790906564495404176424648682174409833021786478734795906037130743052489806432113550271062124868740485225168136804290986731994411140991097806419751244961821381800098506667076334931935771568875995814205593359962382811971572199445063889202713299961409589520112854945682279998885991527131884546327993739053394156309788243993392286626324558121985212293240394221302153117766948853940985962146878942518125063468212981961877730388242463022251073313051805420087354017485217154225192532437260922101642761687980184164743045876714442098100846765580974355776069229905587157408083370963639071071357349507084885522738597911908837443804832030251234337485858350814263246266167495839434429582096336688170170665341765857332338596246480916439447793808968910424604173330730998074004001205892613701380681844026682495862740756127869234850529438959924321520993027481134508836401755208795307162800138373363536431037142115472865656838014090405888016428120489081567778615542681239206631576509200045529925443234981371278355160284272041168927032131216743445111321095594890186830189074206930671458770450800123487823139827608694595840332094486781530283845848171529226697147797242068390411463447993030617600541770308903159935793914467740315246834627012854625069925826412473299619625800727899641975206909745328800863049641494891734360488269060644623425238921909819696198815659291286560467405401825864092148080464053020704640529732917049086868123360860038464257759061915343799264752651843248148123635676785758170044748471249718523603982417245876037757110384997949245666871701971942688107118473179605309873820391128564870511854473293378384723921244915539203189916615710210389701834797694808420339344124292296614233243778888285769632062835665636784149337889314431240740756036306056860940045596578850463741297259836899341940767010030515332219917650084250436546113927112468155781006840195829995544267377482248549563566188980514734891024143256137909211957438479866585638957719061999129944353384299584905486144324841725932135262157272572817260133707827325122804651803711573002866747173252230942411782634367790634483564130777807534305497138431027297975957156012598310655395390618584998184553162264630049924874791960918368838894809610196336379742389240020211665219750883889679655375056119677664673040354690167044693206325522895318979461622195513291159205228800763724903830665006357867865088298082991200991984564003457431702595979336570699355595018578520805792611354949803376246000685826744388294853524312388577261576123777038591242398188061539110904137322684490756883366367225425098581473917200216621120847525736403264853008945015695479762853350022419998702797272675301129892511600815400339259187280005109332073249732500848136262098321717827192812517965341873268879414334308317396947010499236722732524250159956723158602350695267494079881159110007534809398340113350277904534694132989679182050944496031445721538375656566297449499190687633243423829661762572248543191595515235451134081026256520678904546046806768346258867812042304297243948692330522249699032818158248082574361961381335241514093175279982617630955887505397987625188707728611452696488831832410359226951134353260428457617460198799112929910453274086668694472687740354655983382991333064952132105984411334470966076346501907117537399791572715111936678664178701830260239069809465205532177134774672664422293197247414048542975570134150050094071548544817500539305248964694241343658889208183831176842700699660960485714284525678062614147260641487477888867131574202152616610499591705491926786913808980848875195422328752845746897547550523274748316664228863021256110172782092438509934349570882372739328807253498031631141920800205847431497396243499552818389491390818424475291488714207781308109720973696687887755796368607531042201540025374077782785578695158099640315419232131458169475344714361229086682509824520740823386270516934040422628558726014990596196410467692768611760774235953306095076526823453454537021827069828525010608307916683605767839109555178835151208418510284069827475477263327103411698980452347856119533474973336407659897376000442261882523354345598174072961415273856228028497004863708831013664500344431996636767411224275930402818921366365436911872644272295934421590882144072275640268883029326588663350920057476213076862693336057177513607666987041787227883470194288243578861132815361772406547367940064698788139525112828878797046632496344049301152419946136983217143431064862764912392870421415839778489409764116335867157960408748138707862689613463637554362638827960562173571318261618658123692548699660423994195392014096700625895851400991382865006458352157992075752839598472081585409692282919639717242978283693698994473869991609606775673408562095804376627384298673482175053024331788217777325346957899244102403676397278848074172701287108636150879217445433876920078873785925919892350524088716714008456213042987792680476652501439435751192425803275418070991535677085941603441637827590976309564957061169705731637786831015238146924457271511412495074482499290561738618535509975019710825370760180448572948285097661416089922660793035730253945731295663604201569901327886116465288905750806055587910291869248806031601447835269942506310836235041219663326861007045998407437808799315392726789025799920380788948598532617223061691892312923114734506594663780482620228350511531659423440856474648177372407752733444502799158602143209933276727337572606499185287742433350189590114275949365237806124402608635104881450494066397622288340206025774808819420272470490265643873696982525958221619959360285602548430440900176309478419156548073985522311302039146868160308943301698274832533449165374508676523265443455164160260398153044373966634553887987306557150294153446647620318087065492756927968386688114287495678034228909499475136952102964765508932922591574784242009772515231702894315253992594316158442304647918670167588923803872476201468248034364778356316615462490782620530165842505980889514666479036371552307340034559888918207467726273595279430662339852174381824351192047607019437658344942877083514666539400302922981892885523921778888106723702423070247525619483271424751955077345374882167096306010966393753659290318033298155704065248164164099676488868063748071366159447025636633185384457893311582078027730278509929877812519491548867743207478774656754563648179867260374923707142175538053905867332829198339691868095564946795748634186281741429240738957694412239864387024320357999612901718768299367395300756912381056709573847833861314163935201554855706050697634968706036580488144970640953497361753034110977886150137245688137257818038359754023250750572659642460390149184309321521114853323210221263110934618031310063542359891831646140441468301670646891194468447356546613552607707345952820576425100772000373314936409799566235349850774059948380092902376390292334707608634439546814252746806469733341950245963548950069463923962289597383268032482485122133178440430867417883061051821054047752384995766236363031804588386456794023637710631195241229790038267836984606175011685748749025113596371102859063742004419147969875058748318248973518185593061497719625283098881510418782937530039442195299531307914347133727986247317613804215697795351282213498710428969844538100237276230955579534295831590600352075843341800023441238582909575752682749105901531668115490776060781790855593530964532857508943842556793855132705614735371930483918459810216819456934614995291373905325449436008293317345249793945950440421212205713684755287883640454298382535207531700981073956348868520937038519741101440001049404979860407043804773508140318984224270036823261035979345308649996285933493548090181249592377821292844627896289388562674014054142620749213715265947851140506912771193199936606818944717235065795734443150598855368521520300848601203061213785778026812782684583992921682715778167942033131059029955883550939498646963439014273904288554393658074994437514375039201519897094005696272796218203653435051661218130552414045641396785156990648342556772226166436041052435693605881421260095564504175822617114155245255056362707915726340438190048795374135026357072881922766686212526781324304915272831720146865321421997220915296853475463484324050215276481475796847069325249379309483767153677022619231278696530613855797561702418157123811131030815593455606843570430610031558494471203953456553867717644109817750685356742298321696479618453565471536642748870811703822849549941641625548205956623239648700054324369873308066180558574961447544910658088249733710017954818487194318063868246716150993951374380818348509712968661019534966065079701671765945901109007373064888754178166360908224460909423477794120345602696504033998452283477463486913937527702876736562005173499127572689684079312195015550580840486802215138871218338650882259633159025046621159512248148604942068307644694633788640283418757909937850601662345945919455026067413401384973248698230582655682722374979022688205564429430427522044010159310799785414884411296623335927387417283969513887327732954775751969415023619796971367293658631232567669197867096443827336888718587716281543845498357791754661243485773022982200977499773329161467947476896990822793293118581626849135182677018534881319120711613976128873028774716982756958572901417761192705565092718846744113455418077866352710869237949685239219395240820339768399080302907703678575230258644254482832442150982317732549588883110273986257359371727648605778088938683421917564549898564854072675691933512535281340741743031293401444569254636422837149241854510009619605343609372827102446061772535457376959953252016910165590082217368318827265265418717154143469463127331433502346653638638585832277198522003934224972768189909594554366885244065726589559982183615761938051209373930776440794584535217550236939228989713073599197177669433024985729452407085982872891391524192473571520704725310780211619819550331941032047557708553511576847149972525872580641500083132347998638920488528762862678958787229479449300350224939642929909342920198700570009259841290550344425595296155172097175476950943471630224019583796789535600617931338204895698824499423071417287010779338131705890577920906739758282789459976450520642216386490531708324824821687629748423729302392977154244721123266728258799650246425544919332572008797413331602068338832756090213925507257530367370850048212273593947239083528806152897392163466713873837741456543075555774324726258843608878418957314838313640749044656331304591172806306643908278341072875243126245799938218836216007408784349047710100666699111420289244735927110070353628101794571598323398767144129912739245600462365985806988910992576817864942741841896556964174971034189526790394821907052737432234955982527825752886592680866322359749411537906252373827328665838892409658469542671926419921409533574616619225885222414962069604473991040432912118420489064937242044087814403396844254508927372752554830011724146825985305195635102994850419992974709143119442426492243223567979042549267467152455590181384401794795966390135499702369411798404121557845060018758889441091674242996695986665995743446946827545699981398895929577746149008420901337397293636718185406878844587527811131455293238780544516261797655517872192813968718860373550662684933637014591342321594415126067050219586101610947371065235890627713267494035636181113552376393733661432264055769263799005322200431042811547051010134002192076855876743144436011862166975810666204391456014225338649695568876532108379478118362223821419566063871117030031896298386457426299870798628063064141871023734330224609157957401352642468809613990180120167602330969654098367358816787784515216195073147705407482154978702487640904301433914412545574354092129284104837904803324060052161940331695968363226408258843380855260422377295476078977687589636248711900956079889018862850439812621412162661533329047572546212134021188045013015208288671654066621000419772922914741711190392713470058134037596439525489730753530339318778614797545855756862185739422512458575742457888883926057850563932847859547148373342683626764435580373066841241815111458552370279174491692980255626080895379849014039782443560686626711479798827993789497782492841323624104097601012029927500659663636261831137824816559980486465007381498302296750218468451478617442340436844011353185569425711511986192949904222917941576610848528838000529540930425126039998246374885065099645734216082901107542727108171723548288917879010001566067124696934419373579541231549845895443020743021280564671572030655904303354287929810056408515700030710771010408102825078602917985552725590706068937305126926656987096512885386017123709197042022153517097178239323138539637699266322642047027188929434857175018967587724013100893284003630424596221708620139887871788883265676840477334049024091795996168461398248832585646978918477691854298390703645249206546710519127654605451265982410119374318133144348725011129567196764239431068362023521175338019927867471956109924196932384389930721501001209367682756876463076463450155580674733974520354626422086535710957589961241409193789317979649196013469974596693882850373951656051775320493868503718105235666941209720882536499614262095760472935587500207232638724551070735151174254691203374028516149290146407392355485303458258266953629050876351611485795622446794046534086853446899018758945369481933573878095281604864553177835695185470687622319355050970224936616589854788804317477883174200082703573677671308729962897890234202115782062088145285282152916851596517763436040378588972102103335923936576139338205997633564841008206605864889002771443048563415299870910330086555852091632225472263212574287077171382610628830965249284675743823377376479886520219623912665353281489304731628103194219060683305897737725916716506568646756881170583035888073783088936567024711139267491579900854833745261419333639192645850856753139296632640187233487698299372647101851218201794676375665722838140684097162588771309862393464776593217609567397057590848780826445463659504158833712665743847916073353782718739274367028821817799202959745342912695325495549695650370568924288559219149793530638755034714245019391165927270800700346756431624327166647533605094133418649647455643681228086222980357735588077270531289062086990028894677534089298542223888901004202938528491054716981668815364095382608625245473470228783099729323359214848588322838458460896630222097614191783482203811657893993703012330341399457807047846313619601126852074997740421392239023799382737230805597039267117329639365865623725625176889384436427150476116268669311045660373758913898326971369442621432349246151077190863474054904589057561610928392455599525206457723159557846208615218758151744256921583837511767951148104673959119806965924834598390579296063926175522889543782166544264190976551933173802292330733057690154284238056839626231063186390881897677154994895679600578677154865307918024989928463727166068245005130094580681097990068250611896332305201909303120463949520141296475186557862956435580116926320403500091259584689650930833770224513064033292399455777990351270970141671574201576261898888801734370786004790503156400967530730424747314247022406129706630824819417882088735870189170155442940598849109634524194927758250237858765961681871143588158130534164779613011058424374184454031550304168726934046201353764911314936842996763571753908699044095254128536715694205527482437772077092225064925840556510060089265737280649779933956341717925293528700758478565554616447196527088622640096104949647360184516788033056651284338610560990415159743950574841437094523081307817557624770576443449851204078046924765337036226694253070481247432387832117466530638658350398508991826068099728119186554158372589353267706772719600777169916227437736839581735323673808075043157951784200523648525767329113561239805157572625359490616057309105342494236088408294020710123235475976785780598380025707057060834430990610469878504930001057879741819174099260437604720810438285917203512329057367106611879261229071270013680898972238361401300102698079352092054332954274156680131819189719330416831056162889158794233761934638916127012303426053577872606423587395904302076579430150527840395252957372011644268407254518171783349141468207885376773478138954919958555942793394340455859754737707502027683377902917723025841007568949534845550197582919444568080044029273472479475928090422643581614591279965793017888453179963905004926102655614709634279340963928768910510799251609548981973946267866059273411161772300869307204742645763584576909950661413285096419263530927531825946547868652840345035566105485362993927375939822139461950509645113286183848140616180003528175792108577817285920976687651841610082668571662701426620851459833916790756973039381308659050181726606756682458265621280863214738816518035482729442724760958204716150191512050204477976924298456592358439844197559184714226019492993754794712045595991302365615242019837044838251982345900468508194209983839100002094523476331362019509496049856672810677020062566930543177267951648615183961494275364075362182076357817482809660374479147006420641504464689658038714373436271012198908325680426100127788732874346967021924256180413240264284693597218458299468824047541702106978329901097234574174375612688831286807400020978102676203685673982109189670636629105442993300616678071599542267258387931194084049197651992051028280049349165474150371950800413389101854976527566002316902880739130499225488531679489355663617397111399241254006477770840949396735682852286513721614004899610851829874365582987510209851623321964197307381916675144006062846128647843436278306601126363553793782201942773158033580112099938922918837289612359030569064585228941302269456060179568970179889028219308765419564877751925870431119978650010835624712294793693852500001003476168120841390339931458858050178375218566110163733849996153466301496187317153332779563379921225656119853827349237255011104030620712842280973943162328017596175816766130856176112841159772679443316128333749173202420883297600381128298682769850702005560476637916270600429164534955011191319828466309043871150049451187110472289009533682634959487308863716803116627524261673746653110168067335647512628015865539254519065652932830526575018921861984957004605620093139506312857958643741826655431564190358247882398980217149139190078086189313631422246033908437030624907689399942875118115388772211846390990803470857128144844971668428639320123859683870798527073251346207266420922177659211920619362669913762958815936262243249435005680360820882141291013675511650219169839800814608791332990819695927615180316955246084998418896531141980915095219212037007476909832401697592627709778795269702781648491702987319161916385659700131533893842868457442180049437223768390170397606218265348279281763833884412760354916128632952405568850623551002804753103235645814434792657418326375249774659386926775531590148176343855462362353889722424879791205086418472459963265023325924962389958294248795885732258878544086312914955235645853003364301325153690212483422856727818525309694463130938977910524720119439748685823507090605731791110488079058480778241128704872746002918617481065298165500889792161635706105344296335136566553674568129889662719931038080859468393451612997820424375541908112355233387807494506467788137447813373660841897233044292334914935398959294672049921713585966035569993770596881092543991340802256566655413584042022934739624248191522189586463435186283503635665932422874347510361253604940425692329531874425108892043738562100548559612459926132839081861609446370550065078994585270658940084672131748522375021830293284962621765673682759661835798135110378987701160846125270738276818834461080822343133786533071096274928147923833103599996973805424759891393501820814267526804136124120513674560608921697546169963038321274392413251141646479741148414151181792427786453390604050627744120181136288622970634610173651094405596802306309227138507412233691652621287750017045500236815467653657440525044880330137945153229419734881452007769685956838023244141442697686704676822011231924444454964044270261916858424124134999296136899994810678353219771537926718557103442194768258440194405454124547066066398390918259378800681536083486548082975089524733052586090604466945371984041447685803490995241747804521461306708287011579767111571033167067905925832890143574243347868315077796028213493714549584223336009566477816238784532623599647184448260086518936100452062700248694401980458298784871868835798848712822436660793800891047148793523943352684460942052863994400188162564946204868229501152648491932464667793674172001721038170224882823598759613182710035135574572127018291027529447726224306633072261805044500658191548848197633531025549855026615921660223772509360054408600295224419172233084431332123364490270177737460497792312370995933237531175927672042548788060658141692962234064665375642470008721924353847054719679160855537643151283143912968043608778694772312518391303401310149223571634176776610673037007530316292055608700109278585274762793206498594471074768819090505509222174706808867891849387678568047846971516868688782529355984863442187272348065150980551855915619384014011811300221191189029565645841011408619502149444318978076391432232709403326324452702955195063131969863514318080902092932684290765844703214068478186217537044424561862825136975482134211016132901172713427134824265042165818490873657491876300475297671904714065391156424089238939662005515133474230524716546337963840211296901556831091578637268940387626052190332906764295338432446644248988442442424091909540518512406780066129835491384429077924500881076809328811602096695016782284949662437038764466187957019460538459688855590262290167472688838687246920923351636490516940655532131757986301351655109735912636786474623566870702512137405054759452084413774737592385011322465258273960518422050669112621073253500345271910569032902623975374395620667745906750394916109988740583013175201044232946513164065916521113752874884071513729733138664665250801755166082301180681630289831108927918874427579117567950449523293818647808595274490655849870918367557364851958146359531450951734280595432364842887277265033296229790206126261819678003796808803962638869738611902011273603029151931987722778380583016430233585408968448955578364492430897322477719298618682065491435091748018129646053666752487640403376826281521000724555461468516803945517803699918312198691002513415341147039824479159057887524709451861952724565958676563705344455576231335864182466056991009594447252722735573354881196846399644889087284345560868994244870169413710550870076401184067559233020741053824459604691094899687538728888456145238300527047111337013986211822496912373107951687794495422563831958837444896928407799848411077376109195211858980908238693112096045847992906205183140613054552413315241118459040945940311429434609472831402277517157140659261639359208068327650386174805170834236429388874825987028847540794281554548714204674815121255427490107905539873160297152664914385039059912146718592986521503780771703604055455923203408978235307567323980273649962619650476114876984202436889984792681170333082764918755094665307549422626835467739809727954226399407645413591293780544585389836779476947610647910585245200237347603615768225496511800227458787881966583757022045569339500336647684968067241272133454283608149775371761288274570188346108169772762798537682361461820507928733757532976826883338617096620184440980479657072331773940500831029145973265351005236766846718741477854210235477303348666917952529508887919198653212002986267881551123350900457233488067997989766853650230018915802749112616679390787253648452915665499382501866760136408735398581504618995016729576414966387123069708416343963849637583886145931337472364401467421150550659541366684205738398973855384461045838339188659669445983112908341568245515545909673209597693831432431134834291140170493652893086160446040970860984424909843492739877505093969602208349387053992423183760608209276354219162107494253007613476562631817222779703983816163379159397570183247205646344488982285986878481293499990515280561084635794462285765242257935097422832366217346303425378624873499054986935840177248758154412155303017704171609259073330049397321786324311592445472432937370175264711111708125606602586348196758009973556449269504322641171406458577447394799525920274338757814588849213172992719509963129984461060592513645619718670545035205517198808355617947874950864280576572936207750262381600214948047249184019941563380868627774026465007775533550633535674270198944951830113324973988392789308537751827142962282438665132076127230208795119459427572777682708616624533206517797523512586133014188582863631677464621611095783745494837480342987510823168508934806898610487660673360360704666421242136762522726873118865146226938111270246317727309247183719432914294286956280952698953745043821617252752613141955263185512636361944152169975662507140271468546935745788199374383095408928231096743574069080508357324111002209799767097990138992858198635079358470581206872699365745008825748518718115935695810656667708994246850565736086875382572155471213001121965388476503601847335340942851341124187858665560481431052955424621337887695107125077912168168380281049949979849981288375568731220284666334836681445305179533812382895098248719613958087530089512563591334944465026638841810688871223867885723347373832728304959931002949043864596510198779663228426790893584033867334072859097530880661725299515481913143634190301797403046424959518644404814759160289428649312628819356747805210449193429105010008979611761352642660148394277470594360050282363499016204509552219216886093113899173523974980856479389954152031869981132607144430369271241744679689469180805709878569532898766111363762231922249769771512882297695350408748293023450729317716247164249639660684673984438911582422486843040187266195911966462249552584186639441397822492323572444694768670323733823794617866904502448216088182969101915623189175289411386145538468785048396796998579811757479695101336875815280486579927773845007305902788795054859134545380443331859403092408281308355094133398838629509897241920778850436254207262637815345850708147895735245694838662574216645771306085183605518197753489320942438534945073358656327946286187265390652595417786369263901328204667526120056414585386436734809837755054853815659222151621638860757105971123990979577662645453052130470162330324252839291515192927269426204199816557984025917078991562904042253126570005464066186951264137612581302930446816037813895911301616130312877904821017728528936431014437824415776764352028816188205000644115433506783241294194364740295791914959571102801181090726668083783872154643370857364898350864979800004098727298622252400809272709836666115416212540702488658183025218767689374206207617333297245989809296480356414307549509657541844835534908838329456897968632819024270659351994741501327898562824936376732138222707149456946987261619987509682211687207133095763317353275182420247214769446696539211616605897765252600110557724154271843041703666952422808646053554950453977041038482753746044147164968271595705050720406929911202073156509662840954022154342694859372698415009169902558719605208799636228194698905824225472348697478840861592124879349240886124568298291921579004989548486630571586617355062401835966245921060633888044998328977896322775704805889166844434295348181845250561429330039566476304514158975985890204190054111033459410480569520748951532287988650757537312065458000466984640026876736152457476004059223497431651146997542637745440539862033259501519911351615892768148138230338602159679820210304906303206309377543704807462411575265323509774951557469560241948809764004756039720150080990826629117064021300898858553670542544605450069700727511781646437792832300954132887976570799434952074432098919038741939871173783542704542272511116260591195573824292332663447523680012797565346180430837847378941904663934776779020268069430884907565480951303743146505867011509408558675603884426214606691050811389544260126583444756624525247553382606304552623549247141582598533532282499847278438514154814534377763802775095982592187865967870340628528103482280690416761045409348710979345119125800849835355946323213936469262430029031314236517267624954917292317233545547121413010379628446163212936518337953804310535904239285661877122708048104381175692956925220060558630574286907301816724237029152412617402200765823933245370462331762853030440706090299503838219430215908192498269996539904960109775880276848564716682877885344135128558788381488255179269533474260622027299428719405526114491297747080662278252701818448147791185607893121555989198704589541267013422073546926060337287107552946888168843479152832768792898277651229053557065525492268160740062776141446738126119916579706145959462664254549662304345609223967471052256087952307157908986260055952447312424950646703332803235179306196380725166594758462176366991167398004251316769341859427345841965823791705005204225865713151991831711448343157001559298860591982872613665730315271801326291999863000182888938651813561396127599447960333090442525822369640361008495158157522608564134885861821070445093107820086311572728001038126909706343617653303210127896958713414337209999411319126845074327414255989285106409619976439704948178231457400795366706573506379974959856567715958234492425719413972938153176348206340891690270126688615772166088614361865281352270873820304772508628716516091114545980906364803307408901597271801922693872517641767178795762778322762288225335117536088397067991289746562888365504705116392080205206898490649886009058072123068868447119004024555698913780504426648574090947327000937852569695738089952781046100997907822330161720898635576270782927137715309919307480812060583324776730427581341187024664379443854481082231505293367042137227696911598315818740283907171488424014897232182228515910226583875621757779084774390221770679889844475699307882274799056238348596765056494385267544412845690038522797772102526776618841415723845363228572445760208196965247881243218688669732296095954038610099226688683698697032282201394521271010943037772791816637306033070454453400715838867208206794207478867787951016605459349025251986291518360235101608554532736313904449693594937567350009507216918918231885195407083970431526018963229256320058769287945233928269504381487533411760185925909874449527457288793405657383013140469261962426466372655892103527490118183973660884532474361736172155005320325840930565557697219160014117446680760405062845953136965827210753121376047681753922377608289437269105334943924640498294167116371013046248017614471177559627106778897258634552492563358619606834342351897951736451633524178222862978197063223634248551633809538254474355969926002383229994453191857197067441311927810804420358455032421283067827665906817843319955284620953098564276747336582328441363852096364489981774869287553575341012254311488882720259434008406288074035345298546172984542169454909255052284022296369899889009244596411027659872851497568345845935939078902154069156585171711220745627600159116650902508542205726164015328176442864963896400262652572214895801339811741127688141280726005196306633839846799728158991043988039098765781794295208619195739187282235817467499589180897830229596615078406412329596636987534092428340512852141156221303082104719137402847208766990035639524734717137190107615302444373940175294150293836990019788424529790649342868705664117364526826197773547694780241686684753467361758126622851267846225816065480197863952361976803555675688541839207526989001390235092157594859910617779254285172167480438318758677225280839789117658958964579581398971605386988168925283809177385607937004793026218516110673918894732361021593702835340194601664733784981562851061985780106853886813359135773511557341871621737879488547841685312000812638177972792308114620334908185422710099202529400149835856508051216012100237964759066666837322328156351708975298182453902232998446090224854367729327826319829776897648879638643543800534990533818732901739437819135923638503636893719456713813286885188398816094488538566950021493594636495206105384806689682918083154542709041678481662055726875397966495454895137492080076309789248538407190726302868429444153227741999965478743322209230676542789186823719354277709742757101024062382045217378449961924514754723443914104699829471089566048196688022979034919267109101117033370589074965191942882019885955899017159370136849816756384819720383520179743265589295355395006092698819600843480499456920134866430339098415509899842673667205033488664278964931679583841917954346834660016333611657404507211099149264992941377815763387357687025777694582316480810998534005816455919542603742981926083561831357131469508047899625272311663524043425376022323211813761413640418875112382286231448909974525489615034717850176789244679017692820916001334961581338733890301550870603636088897573259936350996456553402308231753309573447533402645062157579461550121886476884356608028590351864417420956273316377999615192783580085518455222287749154375726273951922003176702627058047566613250774014337333043216591943522318276675030076410490176243993364080364983076921449509577093407826714788477356587264768457878288060616908981385063448419142510735642033608491707298840313596714538978015823913430139639658951443887899068614351879201869114287210585693647331494180954661564195304693438011378049480378742055633753657521971503478589902236250760198768641369463985559863281471213654595763877296245281542593075941718185428467027812786303865416910389143329698332397198678091908407041498263950981297661312508412510060251521087589116465329759165798827883640276707937481147940131136949363878088590769060133459860017390921532033924969310099758170799291229710743129744736383802036990557109303923625318360526733078099945519964998978650022388812058760083312574269369464602296289823215836430650699457798011866015132355121509005263475973227178554808802244297013902599379213950404860161052588645420411550976515476878345284982674201781098126184634780213507524550897755267410012426232263078340357696067883004840423082349984233244882116320300711714731847542422105728965667281219441200109446309821493733054490449931686801033682675550510759309535855503061295798777114961000766034388382790222333925488184005566538791482727225409893901402621146796171064590197049933043988156685306714728582927965897530022867504835933759909440785478644140475418628530366561684604767408548001940946115879885392165848280719298334247931139220317298138715732994302587333235788352009391998871632407192061382632358419823963745481490486289107360640494978505996813131906424887427411480143670721497367911609224311554474458533726221546498320631240391925440063398493969279268568168888250036618401385633157146241502064858319106621324049073748795485809645205937585534092691208159639961233146104680681139043860953152234454242147804974532261882232611746524478254886816250132037405695148416039898689061222929853429193296628584233936175468609705880572148506242209675800076072910919293186305469783209788801101468091536593382714004780472988631509772127350463293266012034711361352315636011424288545194487101566650370358432174696007675703679553298175575752056192753662063199467644657547760747632125504686950577975217898372098369859478845365094097089597823436717088920358088431961292708215428325623944717532545188753159362971893133115736818138653666387122639475600771633871449796868127814054549107339719648042797925555026116773414828527236781042432805399049220233509076431089667855316777273431648047334485564708499621254704376185900004587610547762091276108081981934392343081598824157278022072876003105354409933081319645601725065572312387860250927499348864936362020954633196661548586509326576796947124716522514702319103713156473075371633351551093528066698139599653210132092933242243553606109490517605988310234478523810743619642507546055727640891194247835664593389520743875133335033244934543578915833859931119358793250468693262460358148883366670704703981972248537668299221085705805731047168310111186688014458876610729367177627585155597278829580967803175956248530524015041122270521403407751585542394199300570059922521428712409553725088258256509102908443757404076677647549579281161212823779518695357585684724565302952345534747735943296894701457423269533321401528095290747627752853001918401231119253240478100981256338098311997898996443145640447171329621278103687686825205502229887414491339060297548795280790528912270898707487236551540916075420022009347765203093815184558332408315215692048059059726749813004417923496141757923055526514113286421702726606233946649948554232541122060631520720382242655484160152872983122177506244231557474375538695374751302331112375932619591860358948293133147974955365646430828816275253397860746364699570147037681692774939254034052823404513304738498907358955924617650708602590677000748456268825536595619964973176475148667583189655318409061057874722989589355997674096443545943800651523253066419826382376995097834789063621146431127254329747824714848451355654504977083396533178417666382476710121531178520183116508295952544428733509916396759401763654131016895951974912776995790112601624384792750393194872489238467359223310009025413931916902314686600642118249248778287602935738559792676112599676032017283569361078090279355044531419014954382644592740677625250245220346341063984658376983144344190794049645122148703717433139737018810774245339728984620661452329217445065756672237713303420212985554199971070038725157919235865734299180913081802654121787545711527311778796735787474678851668277365288910961354836948864167000750913498727871873058768362676976804241941291985780918150158981854876353218874228195395801425857152421566060033132839856728385790638367760365837591193970945617971562471932127367369125811327716895521093244585336680722486225159397044619323004494523016718967388515997597938907712741533036675353493678561930571191031222933519233814889349242191266191950815127709231067164907836806650574523924723512323603360648608380143341371944578819984587087187119829183270055206900142696374195059295853760646005976868766484083724506056414025913559747688897149785912686832860768339732453312228764850859108950343745417192610928161855894182193823403032251159442597433290261218680607984156475724341234050413119221948764382495279804781849064832895983657194566510875004829960748637834506838631768848888745651104440089996348750680757688107673395304699372098632481896014027511294376135026011198161345231649012330665287975674407152103411830178036560668462798863323483327622631677513449044717993362653851735138170143741575694442443862712039944638257399607465518404250413554023645830556704052654759583512007083645495523337602771580916238172673380498690747457509295974778859660445066772852443065411310883774541768656522372034059677418761020292360685478630249392727114404955613136028859066870643251196692453014972578981196295695513508444431552209665112814316599374557689521524493599144578200190725147942441492005504542784934678679606711827398056925273526858365041764258508573486932861841856455430109976302325422331180937998274722346981520556897897901676820968768722935885084975685937966285980975246425237330616332362670318412527793065693947975462316270248005460390697125559473703893250414667879453803201445395185895248663048977968197677466668038257369349367034031364727284523644435744358439761632832133524469088268508495565506531260922637364486350230834751185298399653648763633373012515974903088402951454647242215682023513464581497586847974043102415456451408525434404644920999540122716931850857804356245141111118686851352911732728327470639582677561767882376179465142731706956171290867079388430379755661768412860865652426893747379028346177472783158357303194613125465545119551220587971617509887448825712673094893356052345846206923913729704337614594806957961468188966695799427533974400167099472925676143454146187775138449108072312404076933614722800958807023101238297487007472807117580374110694253382340474906440944354044970342474825869359181712317000158397324182437215570935218382221570725693831366072170199326060895517616236846237789941025057050110188257483467561910917954973556992728990724534764347662155086512768011018244812831387943278331594447540966739525376619020842416786543270630344774295287278138229900801140156334883291402573397393136271938519261221976859353723960156560823607622980591171966882486035999725737358873976780793494566047524193670102289208585657953101350862950715511137562986311310129404514893049188024065779838203696000698439405495336775526430577471024998760866590904393328841508271326199207838518016463393145217208416975077982059937379464591284337337289893078366113528917217397472891417763408411059646741326324624676232129029462768902033356155237026081576925593509384937730829927401357977045675271663374993529854252510832605760914157539384674936565150799069375584267735967569884631880440337950697137425084083743154277367247579405732999411027551888090279725857517256425038819008715094557739582937985059807612621767693755435366244636149763993458491609714568928749458104779581902883594139510717516270227795070741368643859752739902296965727759852101410052325657966031947496296864987136964436352280033051292966145427915168865037051960172123276744954180948443064588943784850696796604287322071155377634427702226517700942413452989741631925299663228409818096204871220151282548018813882462595778472867173656736077250391466261487722433815379303335729882429120198969680193244579046219829209479769205835286293236877909192213282363709635572371470520614909999634650642673739127052118749601043658931931788191001445418553238193191949611682158689558623331038147374916336106100334859119912208545777973865243600567849882108085224561335343512492361341831557045911725948991731285585258602411959336273691198890614981945142716960412631682116984549425116006133044949181900767672311693773783526739431203147077025539160531149143083346343559957173439973648356351108465457304928907443351912326049131848300746125054258346294641465571617922530296640423797017273502234831836954639478124924994344829699360313946034304514647967698421284262570983992066272856751934760462097190632234822747184588185892102404889652907132171663816644297945166966834791364846850216346076452778552720090995172794663276804913803658140339229916848386034995200529089447740959398831376247170918790071509850832351374095107827505545711377378762251422804993916454255524856700606367893093574889734859684176755950827436821883825545154489460817635148038297288908770866670796023598666901678603581370059098267181865850701199743930548052030330490790360674717162309124135357681339823616851603902943632190152301650797059858968065342006080222076902493336650158580909804240731240263356410180599040874531481994847974155614431185721433175338984589084615623199606184240293384274964043370919454017901866996333003894040049804416551196631563440764464189190079655955630878738777524428750805738829093273523753620721424202732323661432474085666473488649244831762594951638307307861224291682038327360646713990877263213349794621539202640485653456784986400015070740715461641454873704661282548212477222993379687573593675400378590594699774116615600408570854184142241016498164052189442722251821662821419649970136250291222844330827156882563640331763044136098920089929935990500094520805502302744058526632881741298143672087558509028561837782929377772969982415362318855376804632700237675487053197737185276483395843008656269796808367248709631251990176597054026192923411496464348157128570829443250321437265398270103407893175275252821977180868682833623507002848197077670779873233166084360279703969640584643248657491210623184402965594531620537995258454205075398779920093720959651579315010308928249911874440240509925073938973119797618037361398501456008372611345036837373375037250707438197533339168391592550706737848531058671496181333117308428256282839894905568944142277386662287144531404275964755916793013086584217189535993908902170296017930786681031902954192232667014192456699362481231731341948906793979974477767090840854147390730734965719165465258345300110048296566855045863741358766568213905439402002559255876593007748278307619688586666812237537850564290265831179773811429305213614126388009493637128304544092878891577721114329944172571101837562925427843658580105522585343159019408290235751509342099973812690415502607659883820046097420652085203427617095147093529519568042675584870038868189868590069487511498572034618976070950352772884985989174569312330814687780755028608526138437592245042687932875134440752401455487481293975332488442848862002522076756160953564638568649598417965024152225284942026597813850492498654092886750122318560674480860284425863214875128056373049663670094904568192812164826493098395230857757711958884218673411715459114480679174291888770334741402962356864221447562006363971251220327455659015256098750814939627375516351588402870833976112104630106190988002932151937884466967320923464058901456431374745926543411232254007568315416380128533992278327265464300931191428281133756287510710756994608122972689991142334237035789225335175027080742606137778784364375467784911410608728575254947507733748110898093034057689392535492039866100062295855667491816155388955055526309060412493273746125651449631286293254106158515877879849325151653786009168062667472186486081862868542998940788512839403346778043781935872584077183056848655165281846164170306214593789040962148777420607839629046441886966584023126133686821908086040774860207041384521182964199884993796565310392278587099572894807688388618889573510987220661069749523463519596305339077176191930418058023875733064408544682770298567636493423008164022040005588796969909190044087246995685665206735754755469848274297174403564101295149814523751670146706104670728387254788782306174104059900567085824687307235266882556070532842235109747058630201263423429670411333145190277095410488562211255968888797124074076302325064232538731411705534148276620327766958125591765778457007314088223319998297893605891723963586131882013001946509282653739223004947465009371936771611682235136412815114068556621043127931193759595923944902740535598697244253762218179311809997114681427417281836144558824056490324250556929908199948229594812041263116668689138230099987273914381398816423718772323985475820106933068028245111995227841307597177425068465256666679988915866721328980643953571906876997154220884811380582637392721034583100194645893871708601943218945260143799433467865688159098515129689902928119728275576014183065217208163847996018877740215763633721310056405023044045760936849976882673323903115623332073321146813910083982417646245402866384640641477594718066091595396071295857094856974581360383569694304989901204333914206211873890692775324740472362110648244899391397688766934701095685570633688215904969599593738918537345958889196520523221256489855794679828668200955322442048791922720610803004066627650737747998126132152935565260982887483231627932092487845980900330027425801019810986380749214243543742308771760985202653301949946394201035614884986676385570488530115959305964521514366202940928351094946774674444801404462397366446518342093954443774204700281774547123790898101550884341069613036036711088333243650076907806213775066172662601095229491338283626577848557474749567960485475915436771043062628968483205100758167055624337954866742070302003947862808271263299578707528494748898844444022741767823729191478449187811007214275436832255713103174914945357173540221638569183227175700274428682502413485876406236773967604067010911201168414614611545879651051305763309436206391171205625367716100552714041421894426269541277719660242273522556594050170836473226781465095966986115776496740920588462711678560749518544122542012332058645705663714527182007780750036980768813672033984131966487378471717595431767517633978115804108241884928866341126061347828758407646778308321302815538243771359715847618476341909361562222689156510637478773540082899373717354342251149273473230859389177805034445384991900554866463732081045312271917039690710890657312733126098357774216814556526620917776136417978133527982519763679307048016094435549338240115280269904056284783099601114906019647523490465596970974097272342745313449856836402631695651009799809191992198600277496467430891581703006222716939197657617530293086222310303965695997511972177540578681017379749559898964503034902715178930144532551547867467337248210314759987297056650077341435445530834641430905610812305373773850753760522682929372847432201278003961379710906442278585288627787629746475452016233833709057738983888226678783805314084215007211850356205289545063281186577813321006062720633930594838229983377166366279190294080164622773779225075331288239260081055960898869002459339740505038052852780382812677982536340723850579927093763748829089702005018276740860653212276153901097366058114437247701116019948900800829632189244125718572815234154243841369529536597450115125339682124520953027088652236114639388659663223357133973966322895823199568599364160126853822049368692678608008104736723922799713627487265940730806683931687392895026021006773325452230959914422569065195622599469732005889665652359790844820767651661517339995561262932692956707314520235404134908096324599724635491011460033647955827595468214026335337818419035039047841022191428239625241909054835485233354862977994689677164746605484982796529208341470087218263623721713872163498333725154470784600546609571680877014045068213025813689122651026320916979507829940060793070689319705154237062694598205202175639073343765582005119652271870044809432637997903733761835784675259622527576194134512726808882124451828850271465442531123222834214255887592206870841504390230076233407498597389370598466484200111014659524238989072449986624506174299258666196187413421584157923123077106695783878305621753358348533421824349906058750373541996569496013497332515418352161656493146472971780296690041439065131668990864017597359821316219551550217158554489546781863236103122186705153108902617077374505745603232321879663882602124315581977553255718417995154842026778505601148512387881540839826018783765294907053868747496888629743887034677011916906090794018087673032010292104862724430778628885360558362560001833633934139304504338560958737908247426563332366240711109591734413064014480012532908360347275173410594856676445289755502454413419754403032624044487817386980523944254802729668283093216771436604223458443442952179018124851405260967490199477605382639197859740721588985223985648383446595455981800029285052168592555095884546220462280328693190690945794597081068081393743310766887652502431179627329003690806230106039661297562672393263863776032051079586791064162098683092076352939761307200019317171783379714151417284664659790339061188842194286139671109073509416031786157608621110244091810388371623384068875810225715347836440883910493578798411443393767412361615073808946988700272927098530891933219605825860258390365111797332335595941525569536224985162814789557278372502448211602957333472439576609213617175806867116644190098394112095116800654241537091682652059610797280342265331988577861259184829469865476309018604940123930848167489771135448849010043447439924698378806470802939762253587845891211613499113823522535116784142798074638621855456703774004860975223169005929015569572415062661268296764886303528134653284610922331407331497927164758908575468551008617389147574295686718436007210449647741779406457464572290734621067552587285640856260346850855428936719582410993014272454781561773964805506185777908823642441081636856085126139171128663054002979761008800380888394321567379514248640046384063611878091955019690062057321884462778290048976068772064505048650078784749638227569658492808182851760388033390572311795509017859209352622132711357687338123536461936444205023851127058290877428303441768483772614553894024274902683052725126491780212859152361538677035070082446596847471103176644247306363441917368026435983793286392876461815403051106645973240277972668334718226112431765421798858031560727131392148457692603619540577707451490327091890146870725926775207612061878999948465319919990219613146215690133878392741414561258142338190452057705398756552019017806498969946355607371882342692256904020521545020409792853868843718031398666428244670174120292365860700443431114877273849653903681954568131302794247783340364980747476724465959530266551941016895762209316111416997340627711934099757260069894948872122780067298122889299010073724650725774728667636107450280649745268629646645135607354108425758112462889471076467076557729487344014773564165709784839663027239736091524763007339971039142979838867897546801972691882956628573718389684699586400773231543458683315026564216941478865458018611370929590353471759231676359789490667852945791628582979683651629443981643957548643126030435976962011586337599918609648020622928283653631242479704687110567993822426631136113588361413093005944359595181959052290922423205674479238205489318171043416948411737005402160441083016918424426240520069816526216474854951087174740023328667524964906609816570276278607798568030857410508645168223106885450562571483008186259659500224390792785638820229517929078315179825947438819107055121447043627024324105700321025167239222447751941900759462204706790625418538821953850226047899414770501297946004261108070579597389855959065092306278060959610317550395280283894830662247891063640620966733380085791927395277958191951272760952417006910161882136697025348422812075087546944496405987657707269454042903625708435931194364696991183518326157018483782606641734801697840153746549375062173988166505664316003233821918150614602436810623850603210556683789519865013451410492673684382721289878769561238063819488899154574336949334350835245456975837447457278618479366816020199424351549982398951925657126138944669109062718550598774590640834934437536347585190950855743505773105811074141991608224880080867749575877656484468218778354108398811209208517385749545098783356622104957695528957252959467890538056508439200703995531088380950924529751077140975864786212153508210726936723989193307907530871749874374108227906907049785513826654650007778740483541449096293854819849793466339894065564916371917158846597986648869700383583796511658400333836498759364755717719676188316491325495919716674439143247659478308923768945530176228209640086645487658800361240006757990292604610823639597306132980209023153993813301343094091349332757837790800996481731357690090986995686542121090125713022604153713847776388208447485378388922235323341352317342268259751956584644919932311917735348451232336582480435459637816552181155107692471067093941322491277836353805056951080240742111184732406561883546261979985085131767391472631993461958195139256263384267719136057650636491290635250386453820765298057263525240776153853899818892131877030191865673394826115678659192654325657187672687460633698941818847570372057185830266596325505678859086209105197181791004226230904035183769116062560012400211080084811886839129148349793888815051958237561294312331129049728022229733701629861871506230734816784257439498292309309310913330224453689279033006170616160708439203397720167853565977715066633344600754799270390414895839581704064553701228983679395945244899751955856022481018820665176795808671825921649280654910412050629668421322461479720684807481039357083388170146304730856781976037789890599819919758877756985119052583430182637176891870138443465484154579739167458411114511316756076155948423155205412151201308746901328287542894134013997716083161269229691908226775922189313196319403923346790051602650993430941058558383133518505249461676038656812060768559608189781888378673216215563995183363675259527551498498453643252000049989495533594419049790025558233028165817322270484206120094184903440823272617920163001943163466061403537451569523623921552843749969841358782428927084996390330911212176655462775385735570131334357387796351234996741127029871612382352971376962217832553445441536304084615997395932863282976069400882603379028329220118247234366498467348463887161613280193031375661940853908087466355474550848562377805856974315331908467342356165298641141442984809804105250056248844812221092091695358438379416744656328865869932698542609919325068228017672737880670995584958446293831413620545360358026326965503101681089336616344212416135738679585406694563796133458368145388836651540784106417065355413982374261547857966383659252697464453261514092748759405555817620698847617195067349139460367947248423888666624108960771789813741971807380385788935206295480805832537941254930967628111127370769052937655457290330787219128991351183260457066114693632363043485433887002131394851998576651372160233656952609343936334406554260268746099831922431115309463844440966763528829031305461349671838542071281996134794993951509381748625430568528164967709086315534024222990092078895962261987656194537010872661102981946378892752348909256994014983875619104469462446907370114666248539356606660614905757816728146312063022742599893734260829037181699049934318522895649709119443949899970751349986585482681280666904901579828687166093426844059278761390195020850621162573988881477350700285991637532168935547273519282368083256372393885190225116685227847994930475451640965259071058304039328637290533762703865225240545196577547344810304832170766227611554471029803456378596112494800974425819014350367800218783191548024413730769665447007513300145567184780741024775190863606928040931462593743490792506163341464177838820739496519338442078035017173633728403274295394790970472298599342774683504378027483034216623792567841407474780908590670029556081351204598090573514122445117461035884075749424126590113156519778967941562458207800025307902053585199134709631330419817250626482311606329605568526534731193307533162087754374150945296771790343266179554968031985073486385693401845486583200911941814989591228094348999196995832905528993677838351921130005194638418982967775471438771013554811880359522723639024182668765812769988255713928739180240300073830659837104807389457953941361689837742544647004409266873280003908362180469758695507473649556476356540909456820319012701991152589063190878763979493042557436337499954619410336145170564099968078115424979927326544702237733729791960352914871564729375227506601335160915761753237692416060129451025091855374439615198532090413885573677340312445906095613269579513885369971328269387599292850562859239764917136834387407252937725747176090545637002284318530463075884363801234583895319742135336736676637244081604447328408417060828969180891776499355057819926079304657091046606000565835005423670404286527841292642641846550056887724166242266022616623953898818183771294438219511223333269490827580136311977012004814801279075595657655478540416381541754641172586938910447527415050653177284279826660628761053424859517951156353742370972138291056271773901808984185713344478010704862320764357649753873546722949463434684693939124292538440821055632992429870474486076393185326728149486096751645401812450572535050076578437276342698280042015144349251805609806889350291881685313778199229515278625744522958394295978752721280131940329069257852028245050147442233615567064395477688245662717854053762245793684093119603290704294022795959463084513615138301221604276822573240164231385275958155871545691327966069686447228477158384047895332500386920675083467396529265857866131448828881637001164502309709377899864105223798066269283385698672424560157957441461227350698051330082109290903549097624871332683111510655122597154029473191794927471974225990953384329376438999938367134720993535725747280357557677778435808279764527415596755324229258496925746857342207516393919938442048543408929398353839847085372853207415736931705053810907520997125114917038090832265127421827580025383000653701303541623230930441494445248530184650027123894474545612861568423458285454656936183892608111569819649446596683584013420815869452261782031591908469176403105306794496689836747825243900675379654241410226292089845123153712384185251640684835004864841529250497115126987844988020355023867628667585432072763952299596906995217038044620006052064446263007578213432775728106011589975647945962274905126676197985666224527049818539870010815589103424381736940921278731217303710088873185700168036028202372519912103208073006944589356830289733351445484023888642025925417782584038755369430615628566108089821823336397663401604475750292955591041898579784237268780443324395531749713901140983438062999477291108802435847985004672241071075297675392620683573360645313138507747946323898286149975319448215818947500496514694179171085675673010616125369879530808391572832795881888888824014732069507024183183142549933179760479338913197954235332013439164350413203377984161307926912839685354442522279825846779711829216341140548638183822014445640320771780269799305186058083425937388266301967606185398896461009124537556028694697926820922309399741286168928732033135265250633608231820934411902613094940695855863852273082056102870375574409338707081629720989733795176639982614812070281721876699754000065699590927086423099467083623319251956268576213442727366085954471254401703981168411480708618546835439183723783182237208985576551387676579176601470952744514875560252218300661809869889987516614529472488046433530381260880780843087291370071787734976151113171332958467115471718399356394579006691525730969931261473564037453184680639692922174186150341675236846284715543828646203817149311181733443363653581709007558867749319312214476601462294764894723257702001289704582542393159244239769327668091921396076896867622431430936652451989486482194840263575439473026175614892116407360425843062339576418386620896978912888511657227411139184755240693321348583127502205386457088333916948958523316383128679378668073756694117199311086945227267783476678067106628279479152554147536015439000915689750804822992160133919760761658965161040131018567885235523538683107803535017101272485163068693823782483381402203775516873634812953804274975866270507691142111710932132362297425654080605162650846015451585884655110748462282673203067073218038241068222650920002408412680664121315905613032714567153184383148731929883287851730846900624509772782353421718018798575428982114560208263569276870999614146524540054314425509076685476399844006412466882890697860106077969485284972618889346862743269499485284312716702913579634433364423995064748184835816564890402907787666024462185652114176756191856964227733634244842847356518777225734854743324451192006303101414488327093163609385252424600828188498123014016169043310581795254903384427490565563551238690430829150991586117267632402430495076543128887261364387909329502581234595938654802761927009700353978001959858045104054988947513309627659273608602815236071347133661825608603936013395044501309732891848336456895685939535211336938670276628244110042814790622805206858740618886709301737756844994082660066888295991792151444529495870600941544355521885396899515207390560271511753600684659285800111095381880673832770974715596394099983127023537657455939405665834224883209061709321635564752876361386870624286870921849285965012544168768544500926617211764515198177189710178668920022296467877488430662779895714069430994447233343574712801689705357948931836342632137773956071180892023636017920393609300128815497475317262402808665432204580545507239728058271565629882853833039166344091054112005171904898622443655514076770766764152962165962936402072059971997638859587616569515047547549133354780746969981852512296909651810248731288686336940023332697572530431030046768974131718758368815323804539258810859455211097854024998477639774909340272863007520318066817023599656379701992637294367015926423704942434778484630139183025717608443212505802272712657412951540654557994591915327380192756804939743077343228034349591823784107578908347889279131796313469252764095065735729397476293239308542839937958729567847178542900754647679848282978641694065535625539940416547513268089939546361643112365184278118100778307383505455242234036471347746389907615327026255031276852987292360241825611803839251988298845657367445193966046045732137213989085610949226388836283725975541455528273034091824562571041254488280026325549004448635216858366022816510418287864997121015826027407204086197263607436481873848899522131418673887066699156326126600436006516589944618374642761822401454838089887690853709783168140488533900427921614348848171161687050095359629792354913403963256477340100686068912100812206963470836514823475749290377187166075235105702388815385311858445468422763261961279820463013335637731076538800824278354468672402715523379672549411759458044629412684994300420999435969409058436352573719592948843956886735345125212764690401134902248639213858600004183769160030514866345227606644353221773290613645581086462498139947728343330696429929000817365236820786747711216287114549822391408710375164889813072739239520445944913333780294350677233755836265826586270779856801054384294382042921469906632018697904100641022515068685167019817240670250572209022627600885678070433082491653782545736630659202470870463491021633220928785464145690920561561470154758929068804026667267024172045005418807137811827021643623336933325750708230157078905443591272771161872929988416487357693952007084256806635270504875468119369335076956254827458263703934132263208195155833756682017331726813912574478967724891303881128379482976596181132444692137300918171651141794923287087294192310254308549223068512300614351841801855231783481473651831310365738557469923982342126730878589509794719678915998844321422060124666857650509448460986692497925999395974870667719006879158086354475487803724551539172712482096361772406652552745607526338737777463401681760854347448413025371194844384889693288196551860289084138835697787420138214514577223195457387869284698994014917813770790536020760484572172856656974254810272946594209510569463164455133344833546424875034338768400444283683222360080065876947709972737628208417156428132299543799334748370198893292550660526410873822010995652272596778476222544995953776010579508146492921382839472174885997078527342673791381082299382190030671064795808943305119044412096871989853245058768944164065187047681353353209126853065569859516889975756922449009621036474517211371782560863194230921658926193144341334235051685424268531985485551895026874642371177105813818513922595058931828176953161988367690566026980092154122112203743162665612355592946757783266633601530020542147358033218557082176790717683849019559041583000446748724275356749900481063707473164982322211686610156228369340577079637133661805742885730563603742496062608130167020411293897972765443957966159390682373669365472678246522793709734083927812301374631327046754956275686807497721924313686996441490118553949043810984804292635838843431406139797867436989616346359684303761032961815516820079654811052099800131693443112882100441444794317881022620599071661650051903193924298154659410671833348417705593760958710449862284653858374600403000596094930144727431523981646435261153684734522811210444877292006887038598045902889040903874542171786635731674059892088522739306883938385652814498268788778630889967548442322430444412237894212940103207393690401898925340704171697391117429371636649107178146667542770570375396307772315306125843898723460592601350087996351969207576586524701089347827797845111020185187717771125207599340136147761743255021779287681573508867551509620540768834746738777176893950786814297932986484113816857789033278320906441708588507590222967121439772348774986392437175261413360635266365393586664471468797240428575811107689557099134413890659158263802549092068898521217288782566547635894913736032230514251909169866851749094297411708732195939727217748493359949965682124882058445078380719858621380324707217809530336505888517091904343303723005989114763935562613023189865681416354744556728441750723055655839134985011805655285369030571384832569201172911434351448761714890350445432986261485038026913159349587177747518048463646663814693822234968902343264807879218027014170810830609925620181454437706631677733119779967584248725252362165591699177112221766418197307681391039853563171199122343349390515111756881865294487967008796185528439036500954609207599838468652297050435701877192108289340884795382733682398301140358555039694276438740921904249166822492124012881276828913138856027016062399380400212255640872063689230912206384374364264759359094294229068653674453601416452245137317939081438976365075892361680304649724175287389552728459356471523085769488317614373146584040588387321389072770031973158543315377804260282527811200946525700900747948239759326442211792423268763409984909404210727891510047624958536991245910628067459717713612996312327043520885014747697985337982132757465170563373321700594756872743572125930208030269215847203183013762083277752188695563035236688766146792248964306199886923407616757184326893376933793503580501772196513985447532899713312598745311214393289498754442833676089218703943031567050842575543286915384853765223866767742261479596443550449059837832425517780627146239387078065147040392376335710986382715734243123449160241638466307433969649653360996867915823206530647648169167740792896345279672026669439474775649423473202486239855919217505751400362107445345819154141222260143972206152150271355387313611285109730620653515784453907660997769276715043458391546154270009368222088930620084543072845517930630272941813159473247745331988072370196535608944370081318844670870963289346064498350539091187940224127296555617220294652264066951919919976532434749916256240563210560778090497119419347560530294597221974456235276528393069044880120534549330011177219085776045210083065350508304541280047715675607609873261196493402453838309742194226531802897469959999883758626194576862063280608213270460836638406754755090019987194407995535573794417589574565915923098970895641574247194803746745769443158211046181938629621682793468187514432105196935695494336470129011138319739489898411602101151386674961522349314977223002385048673602382106976628571711829871645530273650722307960467236862135217976549183552961266811103703665067295760479481559686147929376357106849526770731906357596509086690260513201772486012834437679224067798237202403969988160615836542669893139359331250754865662774777841101204892781302543174476515090995763817795097823791805230490698661592260571153965312865610076798332220629146698408470127612759094030791686293751592183245480976323861659573017091016770797335343418021093276609579993246905528720011102818147128159860240914204965605478246986346744426066351378695948272111179476643243138099226207184939824135158502661137237965544286529174661021295793204250930222924469020070834690763301153373452917640891854991255790477343969822737960687621195189153121222322064706994473455262656573451904748987876832778790627060513506106850777833786851908205358727147128331145132617282612517073752382140953886445330969061239091840902794775022889483294456122355949313812456198694115029576699449306275907615446567781975829862953255046912721551342627720559332168665874783483263590945601401545073740270788397994524130352546093121855629869710393671430372136440255407678788750112119286556365825070842133520238363137223879774891091440522468424296314268635268450156855828833253634877769248698897710142365464994491199079348992349945507922885417390521785734146747948155714298642181952865961144871564115902885575778383277135044843103514249158684900682653398762031441848094416076803979532137569341666091961922573979650094447380826357302614965872314648386107395760268257761091488448064577461266221876061239110161439160518106839033970074119589924963258829312780862725048440841209880410925112236988886183665201185336714451761318688130271083016333845722068100580369901924247662523958083150471692365440366714433875779528446559203382739604651285825135568776409872487493124526019982684914489961057633327189089331146075259493510289784668450122267712215028059996840021158044105057490891361216738515618301128400122782562898699184257425563995226330514140693646131847845833729335678167349784837160316997983139933841907646397814211135987758418982343100191793524715064486516208249555397287876933153674706391093190781622280616226135920315331223743366935404284323156180309989872331835376578471799366239927767575119426103889910304561139754188447017530918848776083021907204565372718720037029661890642910394692471093277930622773780825329791500043269076154259973323369039799041556910886369570458554251332005180924038157855201590094342961574253017181938232220295676297521470208458924205190932842510350382775036541553231346495913206709705867665454035813043296718804081968578311040326457575397667817934047820090093569877624676445514958117692584253055470941413719902090658896050885512578383484676211928241350247974712520731145245062335916583074375238963376405497641048900144847334609465060313128664330368130657979085639439853955713414374435554956212532867988163831655865219703437948793233403014874778283675372834272189143112215279915708920038903551615051773046449423682785704433391629348805148738608480637512358379462836766896295054216938802918076178721674985765093691591452905991390866774646224868078031683874076206234291336205810923043333281316470660616204170456772133670234607747023062656844561731412688552740067986706440035231806543685807951666047020487653297692390220902161453308262110229750393042484143563303324158042968068093518370142625744381579980412866790811377786107023967088011402255580785175458743559827585165537784879754825188330694911871528865101895720435866109855153859963048130491715693428252139620335990949445494846436733443975093698254117727742779271059516888548360369089187785637019039126031164607909879388813494685252473414176025492060375464212136970478145436010166672752910290331042319398593270958206613927625352065809896819907849591816668332897068186962854067666270404907428262216309302379782340739999282894063945439928593956812964065621861666788170435896581067732142243648422871940121520771354549737614446648639842744191934262166098214539942751229660195933506359271831042038637579017706594303544429429183785641550053618157163426629141460054261771076108108743465676718872791525401772473386597553416444566577090134271940945852855499014664743799974013191282943446053066189458009145515259128876930316950968020014909456944694431759482495176900609437580897857144236435933013156306744627427233394482736382973890332872157442585455766712594637538529363731439591911712026793517328647500060216316670617870544601021427917006042220763928686500617947019818473798339794268966372585805850823501330362494293185478281687751324763140787791705313068964852335077575965014122561442348924103411151469649901635055842952286718113315470793123852973840510259362505664197550248905720102948555193899366556350389330469240760900736876433866201431694602862692967092620390223570436684955681822609834281559718645586862951519706808617340230140279184135395302847548910674945053953676753222649573773473441316591333744810339233070501519138896845451702609414008557623789763600935361287676932049495972517793763675259712685714460439608626258503417871473473881004047352222271495769263280516076256025810352209262466544563713933019635302971395667013534825584352560004383029869024998822600517627965289724742998962870580743274024305577311770273617924674088732613473694278333134155936698565373599881379103296805419405488511393442333401168278732855344971235484981122740307810591372671577432855242016581520936308919010562428195147350820368583781009001717730009151180742006309814767836309265685720982034409543360313773881237302508134794607813160707171919497439116184010464056003391260286385823313573632530297031657960697853897253484476008879131649815874350900816688579239453068485243594199410924162170921169540536929116321828214269198457109071546641255199548303849743255865523177093164534660688717219062075631093333687766426153181745724404747383470126180576352682192153206570616416739921221360357094226587341578948396116956718146197089602766280738814616868132251712909426552032739568626848619645383734848559363374277678862915354964004774227746012554242499891954325382313206160697297542339805480960316390366338282157092807782511328700507335752700426286123024353783092613289959302020758029471804647117042564634768173796519700522550309921393935696125481152397905312434132712357064607899198528816322950130311529240139619023547982950799518940081124038870602594581614092435702928677609260551531539976056133287984843520922194297496060413170615130149698110124832300079303839191734071528133267558961445120440210272526640990806073113403628149762846733140146172649718508015973189099049613963059251616366003615044030402786758159028351827934745584654140861497798236602229582330104303640040722254237700800317418555480157997778579747346332835973413355220532463724231728725372500795126494976265742357268533664418072122046541177964105530722773710533925801381764884096764448068638342284078218893816814162218756402706431675254253317596394023489969108772751376565323060026043024285218403359938934153126953761472235879017612954378419629563559690502798578707317316304070388914547877683742075344557704554937102912835243267532219128793120423633674539868907392355567120672036357841046060518459924878626865980862757057589052333058544248271954351873879744385201641939767960024183019622233900189147380412075347574906373748387243368053674378647967793336192522900890876439015208210238470303664536301064153067536310909705049288392402288006300844113799813731863275409816114877185342488357086670806400461727400890004661046495094993692960527068357184397781260203401441554124818997274716313410150370625904933105836223278904541583816387383266434158009290916320343601067705191747051447752222149623836543717958388648219478634038370930771253196087877255422684444454581683591384690199648667816147724791524610525102552193249855233321542946643742461596088772158003750141160391047628965359488644651898560792652144840711172580782208913689411561829387942417139893345719691573424897520235415813180090018397209197068497298408801052431911376631853204682015627501875239828001742357240677440147701955417297710766633011654796973643759233416350744198854757861785823338670448945446729735696509587939398871781699770155186079159248814747879425446834296024702127942480005460824795924964289111979024491312818287537185672355675057969517269170759611059409197777270644483584485075174946965885319555728840203342516169224802338005539863044045696884548417305008029361240375884145231113590096823942960224728542470298644872370476834292155910355356790484647693953959527826784827254802921355043803541756039125203559035462221987282635260578806202822107596909190008678918084343201976730285147965556526837110915125501883075181841391381093645839775973583953875704961474306199969777275218965992269169097438145863635621367887733556516748805357578495677659734466082140106975633307227612989266032479298620369843110392533336106790626116743730638452536067276586369542866402462514454083339862311587674191795188970370519888313702681301055464812860728666830493362591029166187487831784999226833107301184146171766542032648360841491820978439771067683366915926620751909863575926598172972202337809977722899961261513574011548735450302588751939320389577956345900246532232384194950275774654480102096386567948907043434998096400056187594047493549927051364050388206587269923239293723927216559578026685805417799514663955076164955692116137284089326870897418808244217532415591153129594942288268555655052929217334043521436836243239690117561260196878735023685019541342012399372032375666169055396809194065543222789575498782068674307658306877481011626525751341469561881828703010218928902440916161929261002736360720978298270869442357505060586826038695936704709076586359325561947451968098736873755562772415324156023189522787612335287990602224618424609494773790213534511066703396726461668882557801377816653674155754314904924180779360407770931136102019087495072763980791364821450007845024220393043212596605488678149271134839876045812679169117594670856111910731303242479740866711391439273584678534665977305712608966436312808578695639401696487853864900928637457626998868817391538767024308458566914055404192294464990225657365883892419618142285233966781832878115923458334209428473871478452693681453436257381731584005423341340343307568310851477002437347872872819226103514392835698541408237807835216683737748087965654090161571502506704215257501583323114090754606785688521009163476447011846283663778122255023364188939488663819546602367077939372012505966283815417758037027247115830361332620166644330239563924967476441726173051428747201456761501950876597981030844326311304545974775881852833372162628053044784059137031761802347446911415356257245823021791280062743770111465093901554864626108793623113748866598933386700639019736127608550352505745926991862475787168033680424538088285980167020984771743719924993239721521748324072636389996360934654858887596616079392745962753631334286202615203320532519883962886606283339573739560884839999255471637730260262244870297923101130660893229700016272043965686527654240526597575033871140227329438285867882491898686401641712451152375796892289786823098384532441774631161745861710421775798451935259287467773169682310544297568376803907864977327869894723846684962798651850655048716421405812412626716778840227005406112289665542712153408716493566949863879808026171747862376781040890265204793548619618170142820735258372699368241446724172478838898892135790338588985723559700664720915200421862690445361145094389656693169250617254923398059767933395553816351076166538560056000891102109362043164202041687843286976171440261123011548434613918621991045762405661752134699078261179206716450476458973128388020567091690526863343986267119876983758424391706513459941478332788258652774827957451849637737912927448686521836029900972959956539849458317479763935137981539226385215465302880945452259455666642742191127795051868736878211890484042354787466337588251188994989727562875912531639179940591406629769963306160513975549019057276398290121767717933842566670115558774373112182384749840920798674786689049605506081930084496983891503647313907377094760101572818445318299910770434905183534752583331046967139165668623833675842761247865373144652641399348950125960049110192467928244018906733497879545410112510648635445352892613579324811121137220326603339011223781517774364392875507127140972059251438161800842553035291218571390601126335850127227925108440727278244066758064781253620293027748226014558781623701805377595813966351500593210199913299910182371085365688096920170049312423894328276321098197074568883359768125589132608547007546051262151966364496408208668686868087123045637740810176173915146540256986373518795725398174513853944619342883174369766706700473654955241414646047664759105350990894300634056216903260473194205013706815335554056582357751704065358732458511795811449948865141609940328070161543505940373901038997241112091875943698001603214487618665315880790044414814386252667174316883670817320065830515009844685907974992726520496719024099940107527670197790950998603821927661280791501689963186709484987581264525467020513345297865833060642218352015372150568988211734620369189719163520898271891668683786066411926804980402413847051951315645892677330908323866077475033454112437977294857113826456696539298017373688368537125348654952847152891932691630196331144023792806649827086672509235040129657888752471826949641653850396566372156910309963152224895953994769795748618346713604389927531315106842112489370988540511796230597959934450657339744662604128266156122525421117206611018817173972065919258952875017974807887182652818993256069227958443889427724537435091620413730120850393538957216638967931645589746694983227298232015404862657764674668752734553936749887884416705751313476305118124121634034961556540502418762421386613716885037984204100989092149231309382461193728132591283870874038731128908658612279265054685765600667415975930724259195938925994372082180430657625183081151673770858127298210052717425877906501251255636508095904320045654235893276995856420028444964169493864996780363553902423476894585715998511139122420459046411394851380385050793097133637336113638972923551187757193290846838832898308901559646847905795782690916767914047850614140191940191645211222756587743176671000411412113094821173975029980375192172191817200411511291902434776545211108989949503793906864384530263796651727473511518447459964674387154887540733591177215549001174068389495187929026059627804334373910605040180345160369965866617846823798669288007922571496517627241699111747994939436301911986487507365909865582635768967285607279027919364815992519087951883322006975506052567446696127748352930524124733300258625925956935048582726202385411874001669802926734397276687268827929090289454978781810918642806450851347787659281725554428476522563992407070339903008294749438575785745851352326273692379521281378038980708459774114585741042103504989246958396521653148695497641040419603094166742326960323869813923652054350754672384395638433981671971346900156795141090055960033190093988094283694806241440378065327134745920185621445759531464380485025933883262755438333407120647015963337121245992610490126757222176721432495875778599390527412507199867346125743420283315992575259464170180666777163686424868616472908310573978323224590904278407972706719537814392299838378076733314598760325733789752553896932038057189876824372073352272812140215917772956955839086608033020481664003491829155041923639921658677608623882944824338311899593473003567294211287899863387159832700479590384101522079574274554161439899097564256393667013385010933620042408933806600136998609239252693711269594758759501663444933810326198639622890683171128619061765374544539257979856823685815894528932249514982192644134389319946842949882616080560781463128259357617646740567154599790095993809368310396482945550573238417551119636416139158616311971215878395432003391944862997972681544245071780156997814918464905203850001870612852109509438144155826367034563132334249604649018967001208849173104141442067337109114221451691899783834902876795336505333093742675188927308166948493934487913795748247233775398608446508911043910682978443300319602887545334979799754431231927457977514946853408346499217870163799153094261661012565934530325402297969974285731441352455896193681162728124780298798896057241123447778385456294648864704011509339935564581266034186253375857754929775355452672188869632681700140648776675414576423049714505335170811280552329334375654992652038820058994940761330249346130078699994554593740877097826786093712085140496468057889066327737328593921952751381344266210724790871449978790152340361498202874321138991313938766386792813349573241487260968658013989248028591253460021794973677370262715021154686020130556258663201709199640092007859688812415380634685068609378839372723374749015831990186656933512472828272211451659555712759081933119435001169479353962759197945550213671327220964133770806327268507286098341930257716437523172508296998713921806763022076923446497126587070104904622872667042070908403410223591317689766000506277152681195638020135127155694735380179110635443989623582789305013040685092729921008882629007140022634926790297869680495654657322593878344000851344387160672324171864447140863693039537739024789804237309169456676643809297072365886980897348512089239440342434121436784341955824565380605332229234697379769527946710915979327805266274320497937281704591317698671860229287518691911623428482844398726607231021834912251024865828175429449922605735128430565885733825208998127606329405541466905063235916540438741987580149649491618263399654515777802067444728929013967304713749960328869173995127279695863396663161300073124199773478442970643266580995504096269298206294734427958200188468316787047097398067319379258873386135803328921504217663775487607145387292679161352218440478213877763891360236545103265429226252859339344662830736247622381190628431998101753305277450104363208749660566808665014206996907039428535344473920581476550050523429073218151595622387872248419106224782405592531652922569800204649171285283143451941766044641280543208422410740820669337315813449968188378929741166654344617191574817453989861507367520769346649934459637769489584855226297559170934672688518599987652539974230939396706431002601156010394627349839629336295427799790535687495140510219419603892721072290035304069819518336136418348450248791557900355501031715015945674419306823878784394715593034071580373283026342619872904949694414125277238148412921042737302643994423911819807536335689601727297650407264384635430360699919884432790924669908099751400121698683062028366783094816282766337069988829491635529863975700193248640690710606751498299402016214987760430585084145463729841591156827588471975801561603205461878704321896219161936070957633946517814078085026263234465032795727300266680458743720107850360557772920596086519625795434983744454882324179967599333917489701532051896176501753560776180370148882815209320526452004227640694367259313329998099534721613663216140357224742237471064814983267754826232635678720091392697341740881882839634861648451829465445814232208574075273881663386191303455645286428597088796969123807935369173055937319078096106081903918363415509731269759335044474482437701257742023251767649900857294866607392487011633662104514714991229763073185978198793623089061965777591772653111678640917282255131242737493571338135023207922637937859136548695276415601436397231486979901801452927180256288835031539619957758453891208429019418519535067732812731175754694217076062927692422634394697643477714770991380159634558766512045106924692165357845226499005988791386931121029693458129002945059753228760366528690341971272214893445599174614190843693563364495514371005856387891680336294437773231546271553168148538867066140581162599826170278654461096247797573201510499823189519477384089551628887874795030164586192586857252145226682541403364678278162557480892190144189478769034724327193368911624176793288550566536806042796079524748951950676785145155100403198735665335470048696372898190933113107710653012524837191543129813342526651808132713265484812917380411614961638302808920641867440267098261286427182957375397370687441805461515060914480586624538669135697112728344475269417261304158005894692533322348257112415937841718634669026465294853680130082929158998453233944108896615006143498896109571100150747572170502875127576494724366962573220702513865349033885073362342631246962579010638925772227001900768135872499337353171076015974919290603047016527354227637216971740455689124797338155793602615583441312177479043856103353310961191433336039376254615319414217069036825626364215736602651944966209189472128983276367269145010019806237057887064717281193056871231603774757451108146896739502114833591167689419638856888156201788987457727078297759715883140685341754636800246443022381704532603760414705734550426804305290526162118835450543123695750052116269865673129634777020287600150765532013638994428691508449078043207148233755900482548433234433375367687001272932264791814725501770318042944297392163567702914656360664534672835828716335766342483999263087277341355530613587119138453235657829375322404626103053163447100958919912932225075164806120078773314493006725581999019203316642917812345559520014139208944137443801326691117926672622027271227164222316671836076303741428121542024570735356987648930471916025474549793275021860113842986534114033891870462614526849655259590677238942100913682626104629769904658085688224133013554022549588067871851904920565303921817986999509883736151628504292261331162244059235183772094941616408337803925557655009922186594080885887349717111630275391074593555869574866584219339896646087725592033266598486032835336116843345476146301168146341060533056362369025916726412618462310438844888425754403578368603542365045342115146464953438528591553022094451695981724162275634611779017876402535867378108650512959235431499777958516150611891491303407283659548363034567542874232072867212181095358338965682982715813042522278704631353296339378742910287388269284879566774144912815037066797387198307720072761110266030291434403247655431970653120817090110322050971147085953450740634547906806359862395948842388980553502833927485339310566070700409863028405034167065746071016708974601163328468933322302460203300438904429843648447514832441295554396123983296229253827028558511857230396754347761528025600480286824247852218470839752480295294230243599501364101706453096103501272070250729054602255474284676707075569918013527600700752673304329645063261174180848066412581541036188512987906454961601275809407487886924052689236550118538378842883329614655744551932029148990071631394507514944414938407073929844453078779578124329969777300451416550803096688630979714811256149125437553393668110671868425279248080294806667185603202451755324890201074805242830749399607602810281238272637850055049488564251045582703371892075940423714016711782256254532488001795857904463195836826031070534501172578934264371683491651771041881425132947131976621424334648855712566810713034306680228000837886926187861611709051556322328128117744857763922243756219846740003147717352933213885505417576829157533070910277937243972932846743694396253759757259186263904945575067625042969094810851510532797917597576719315712883391402136241222333245111768088486609044298561561938763207165217066863323404783420640167283461505661790410814679146199077265636484812673404191084536590772023332317008775539596477203702913639338899285804876947957907166585734932269929768168780121449772057147299994599070379009822196134633279838697036103346479881345007092827882372242818014865700347644935411173895806434731276630045538242543618623232158430072339451058667654062885828135678536537649362363260629262073049550638930437056373291651771334499279307279408392668957236354447045926814424043306149197511691844926640541149981781258734839330348696245366829577816269311260971110007192303441175159303296623434308211645441752287727834712438753954331235516865106700594939949228590375910280749969096533530643756149614245258562565694325801230384938056903501832138229050483075638413368097254494508812750576744198171602233436109431459046454910334496042873801929294321350699644805474546230098392444481573032923103098597405220410637408253622888664058378856975685991413491885596222559059710849341488059281537674673689626125826764175500763807641276327498978878117064200015336437401568336454356040453661728859775992209786333057994264546773643196659318754735235250274339769284542791117617105602474155762905928779020766685340723358512447339657722626855263766556608255979386334760838582903032774808376596786628006925446599387253098950086911239975424480928562816815323003272702361883885469934460441262263046919483302054652274285669468010769126312997470526032343762177559004026745500554031841991481853018566728940688377702358488496691985707321748266587873646463325942023317292369860844904016226477188781726298151243245485258101022135276287264383686066394466974016673673804526396220454098777159961313184678567927298891412346487048433293400841547775535788622237940570417694979507108039827038016564501159511873657286455545443852182434207184021949888541433568551882356044759413681608120120100432235051278380964372378483397349521107179205241934341624449043992702290080157033348495050008359365789037211658192370133068413355610469311950426411976246055787254087593256461099304594505411454152360170945672428416058828380267040974761936700398409743752779485087122739288904845633319599400520983921430708419538563525614308985759303993603175515550418391747480721663517264079109120275564554212106284639845752318195490516652538114101581015388534641212618628472673098688129391860147588699415449720545850158791528734119954641447478316542057083856564653272379715657145675107680738708067654110473183955945346249096141111544584717230645263370756014580706637540277860022022756975058183153277617913957902279160109337420493514210386624201426709971187741620666667829396548299605376957548861746500339801697037728454061051852345763215591266124052008799709393070878984310141341953440856496098547803378472398403411275477659249945873129637763310395564969637124087137289148387415221127533064969958168203176978585301795575955088116938638607001499837935931685285319828846153763728490115464979216033693725929947145122048153792397154787098489014182197264238867905795507521383698441893691189683342970809332208982948734237285606476401050408440358854144223220905368222273101940620106950720561394039343123606657178697256378941340218972235311553298101926814347941736633575966275845186867515640424502703717748786375074583466386357756887505563542073788343740322412396117998300822606674350144315448090557751663960871233819612371183688807286016832362115066934182944748140047000960917570525434461659374768730147810348318244417695305671430161195600667229365578068713611333624188636231008076077914025780871446553500220147694054753456608975282331626345663146397403609327243735233759076261944054074012306322836953588600003630067498302505310301295086527785156392248856507545296990035754061210142093536939221995417196878848000546698116468290908014223413021229806385984203998307109102793154639696431539480907701037879070306231014824317653711720322581840434343628130638736179245765996414178618325833874570438614000118856855555228646116842369154735021317856421222019524612519783098116096000866098776613466567842043410587369571476641117351484305654970722058224638760753363389065974764279550526361760754001803677042277719037954969027765898801598774466773440596423810411508071495532802205332614364297812493805639770394467591581757470125139891020362419579519844107689530395193153534410478446469800064112445207698101421894402783400365252723114293980462737804814017520705132819874265770621387115741213384373784614585749213246840476263014769254117453737025221448735590702063367713454575401055810585066184969020372401178860059436446415630387667758130151426548097347369948171333162657724492218981779980088974456935931410416539817313418168214095125826874160642018131206265791692252470015404938375368040201938415391940325513780995250018487448932066319160069489369170150761414373463538856557544832654278144555365353164613343796981347570147758461156417389376167582218563081285032314153867827810894787239376198579277707929272262789824956271443628568487866110830939666620240628450486572534401453350591041863236132681230183138855015231825287724117387023596200863528079117812080321258012037245103181670128927394823621301295604474533612961839245059382495812285173385734219199608196180651517225991994756177722723407354628419381586476329602432415662055543041332623710991715181576992719997160330195660336768941583779579432905012774871288561704509920727716707481109055495345209470287152184942826655406013765067974608129407455241840191460177709668062688588117371980824036918275946618279039337086175572394674273056845018013373921033549890003886950504808943668039385282213633821573780928399801568368039429887243094041966378457997876168609622506330958487026625202537666026755278592455873230581309615626836086909230572171685846539527755951447230229366923772580925801892258413450544550805634503741740949281887436018876779666840890706837500814479274380643233260681142111238614644484868412350193846775847369562404927162738087557247046227779318369469872308629294577460746601450314671527956614749801048897144623734969689568717384783838204397740646463164227517948481306162816245667295906246656314308074244806179291906964236317871054601297470624680471863193446248410306079927604762158217248825484112950117238062362528946803508420478998464999574885698336933620115451578333026781249200045525069886176279983558474627345281020789888049318924045764548417240549635473276938666987982651390276355762411865479717626234454775548311805392369124998002075721062730478338439104990050168832604291600072754444807337100433855766702723570462762843424626650559573446033627426038789515120742711347576135788028719479581381148485434181331331531678223374515159202052567136971082296751562357535802201113287502786777164499531374322447019380967166717700697199065916090726794122681446934189158110647399505010384349197652045518633226335031411683327103579356246222054367979617513303199320521896155802408686943223193240704878326515868172384488610405008958371841459742042272031353066893697587242826025839211767766038963157269715287343479548270430162199514932808052695288349689827234224830392489988978632178753606620622633593065805593705489632742057123011420914555233323600241324588730256351090111656159431240909680203095124880513965170196841429649194106445542864389265412170666258657485106920026221973081275112213158698542172523545175549405795326597667856586735595520841259393722339888275325820169291562685604983324113984799911266552647385169415805575263340056517542327304094444326933606118297128648154441750873740390488398676805855979853257524587005795217067013024303662153135039393773388093990546323784171604459803381073096088495495171226347480957042814712196256650556841439995838852116210748448609209442094527043991855990595412460788857463167939784804815329200723710118293800572200961470930122446749669761434086341414549824401105293237877936141914859841782701761846939938247204728588956124389199990197273287425647324759402208178952065802090549058025117044622890161130703691726125620590265856326962498972103865318312958336232207576347614998930047200525670758553454218652075989108560306370558651256374544068006812319435633784274588770440463630170210852928520876080050062600204728570324401588594005044853108138818379812140820374138098600573094756127046857243501255250047971244983217694149989032112707940441612526807850009484542428672667616500856304592805299692791311840750226155462569043015936451654826771871507709460677095549606202678515227756472009088420834519405102544017055295675423123852323388092619271273689535196631489688036750967309710177312384227481426095661983739638535810201968843103584892890184501805589086446984680742614466418958584765558590630008209926826848534387647108571158441392360551667383325899142893501583959376073419589947956923098355866697996997041451757050306651562446377731777099722900903843548113528124671219297207675530124283484877906750994445415196028428255411653172743384795843380834371644024996467317730030899579142112872065582823426902037180346706145806923370279910673333599375247769487234128644740947538010264458543514478245738044868098428251296374141754245214985360585154401081041228917482002369683480601064087633280908700673436732427095256839278114469815989202134690976520692920530431047856919697758473325312480988548267510729814564536308684030990222252105823077775837893466755311648445282965111158869386488607382081242525109520549210797441932998559493629178409048399943841405859859257612981836664969072176514913333030369854083919138898898254663355922573938781997641605166904971862139452290789042866120090587630708837966740244052383808978805369853555757613740599551472848864480765429321163883726321511118449716384827873586136802611265862237303525017190478040134306182337506417029286743786982339647682473716656230102985013732776046198691872414665959763840993243008077316342838563786228200929458189313003128381259709487266869567534513483672550765974555690708650685491750844596038437785544544424876160001363516273619371827827079154286125607435665902465225154376150155313780762445156958590498560773161037909044143649219515408390325517093179056797360966462066737955507522885239627946419406184130336693630993650420258172879946940704255627243317636888693337922568616097329030193499517518088235221892614588389789208916733402776125796040499925952244989465032549956946240425727666759977138484966822605899291335451756389667461411522338789388716720972728157720053529948378883742565850484359347503427920680272121658403591166377031447887062367563560570855681081591343139012298859723719466888257994892035693111588164398785970985243979992404105891343087103784123293752726156346735781714305560464568242785245550167652861465828589632934722560663385150940254962620244461060476270494856560829602104504594027154138404985773377860943810874148636206272446133733014741489517317693240046821315099498241496270894860850629860836497103999508518109734069835096301449202318224638183063760291271562700110856407014579713866937179302476617499727236220258905014665768313107912982431997993972504409370055514828162600809344543823295305684605479548976871503428831901632167829065621406186777682522851035340504377751498854414841120976054526235523242687533601681827908268955090477242845935704550465134784689565325605045878772640405041191233769980717105142405156016668624933364038521094614343894104813245765704996032729773585880350775573328655613547420652803560129616710496786215379982931715735602149574931139791963551060912278557598265832114044797551289217912024099782907811802503106819985994028872514475676798242949341955994727205628189679847103985782100486571458144267304068452886736953750504009169079867676101378462522466807703409296712893220452146375274141174629774689707302130136613249833132598045706170358822172852787465019442368545564290944497909411758595265715671986838589432150763326282192774024278996840975189567000492854486729020970761957128412186865820353165270892362343068070588312938844078529342684732441786722783442429579031554587844201384575156521943289590752261081037041040383088090765520429672163822370987243014616595633602256239158821855242976245777894747158399509309864871138621449565286040496637065613774057339895896781145959202207596327242467967073673037518955557074019034811030149531215780658269657396514719564454138844738352394967462661652681374951817981919761855485363391955934302415588156356922843944752171249378286291903880102981016322435369259348378327493416244326270786566215287779566760703289676515693728216338026067235331243007556554436997180283882821682465914954779901871427343760951539521897327589377054273247889508977344348798288530248674595539086094498198460481462089244110361292171525605500385287969361678526213365287646344437077976693127249074805627029867074813385042525064520868057477962329275230475390614373996017018258177052646981126804377774085449326702547375313404787574988901767629136759145340242936748195273429457681239349291794576384152513369073761667521267867454780972804181180278981150623405388951640276469638433413969398587381053351689014209317238027783847726599687280816192492954574884161679574561839316728954328555227831766130130719693219321867852378858617781999895935493990866331422404222183863590425890741640982962399665569057835352528119773954466034192214142044343807953534591175033069124965019097583042032611717817774277535992437017314259537181989225557608987374963393366426398341380519476152028151504261526479829474609666971775999093648467769350647750055521866676115793937498342492939185327377118774490183928948188416633257455980027253014847164881546052147715051370608821557421092822241436328329023904281070645331459863306707227473909340665638811099037810047449805844001915342696000486535091750729842814331605142276352760964153870346452684182879977794339244252018954654572703890384358242355791114432022885168006998966534428133049685132696358743093320557038384158238828175694055558942256279713955847604617516728580803535425092497639425090574455275086045631501778325091171222167860418529013317648396944819855612773784416618131413994893142883398487208010594835518749972365832866355114606486746297570407385889366802549831933402116021795173480657698918872806399244609641989128181359930790824218530784777640860476292810768503957432487293752646404389834621085685604073567955422889393864013666165471222062220484034735061160528346718593077874513615312898465737621183589553389142613716264765273574955134513539629598035034660811274555360212337240015251809089390480105467040071764014307209556678266431896808941902543618227044327713546638119374875419455701525372106719498160713719785933852656890708176093325041169763066797051314261165352222642639310034629181941340973453876179857878735810902181293728942464521551388554078260606845655896338120513338251370447511098091929559559077593896332745304883796018404830661857035259990452415078749218462318145691943011916059445237296685109614934192062948875808331234411547680183557275252875578230563207013287240061668994202809462556969730762116009404806999479111212837874856284123666657872474486953124527803052764407460993070406836080699657496049229606801409502285559607878844490903843612922328148574021195594990725337009973113523388049423316579579358958689577591693173976433764441666640469303973339559912091387408721481093135824666272261437478447296704683321795597813722116248813391097810592540133549394487117653473216926589456255562645802527019107085027311615314608128901539246036997794053333747702788048888818761726570171091486001565987579712844713917186035736817649126999013154919207941802525555994888332295125904953232717554131432873690567553446946091823815481095514856902402162523396348704198678448287693281434921740717635043208821927968256761605298850177683929638712759582488268150683393174975029984315561481199767919726938980498421131683636561110451453203946569702117347269609276956178951947977610502139435898748630677824440290422575782481508630567382861423158096727662199928357093363066258683952779617238866937069176564147634839052088620649351733303385056039517609201734709515111038767348837454667177958443103471569573843127865394020928536226033261401745004762424541416340383100709312973395619241949038185172622239410799594326593613586093984859080180730937190527229130405988321734757922498664497880119942805533259729948983680762081151996848202765134894270706322846803225965809507583523491183185807481112568698587442793975658842181129609691259024654427632207321709371603088902326684736851684647646260226135444907852904468042159684728733561196637966794121780501670188094085615210793206530678234275623691861920827088621890910239330255078821289821755676545873274952271003487898082476980871088723655201134867200624209502478601301693186006675318873962475805833661131514970449576375552670199436151324482670294608373910127599489908683609745010962201698020651588002866427384030740551193891081492695801747966697933670800609030608367450885850383095472099998514861084476117269600478447384787908590620803238813364679490795576052896913573177080074783506256195929731042579940892981634164089929322533509247992465246297152935023403745855718983143935450342967174657580379347356546894884498049187235741665956060144238898028489444377866097399529074184305213690529249972020351951376383851460797963883833262284914031658533251793132405731358627067440390840140727855509882303067843505903583571999812404775272108561220187592459885684078507091077162781162504362989066029387709772099813711478198973740456449355390580315622094327020256989921849873576777728052831443696911657633384427715000451301535193804231971805581840685379781198148254009506003133637648589330377330992600327039679272952369950565429301037948407736407270542780723174876144274819306785040086153025753266100919593648827055570069532795228116776748913698649309833686504961836416536935017285188864259414504122574996133981636783940363350273568286209211756614955706860910142252779780857059857020950085514560216859760669876034724084878197269774385607713064554053140908462586700036999414665495354045805040522032157394695648376500672072984225590516356275794188803181312076288007058662240923235291405060490653992249090591837598855997285324771251791510548463007417799190277639810458753372989228797986725172226468860834381353077946947697391591655661742072542852911990963541048918501174808895830079540753909629080179794289767122279401333218470464086654224151996052880692246847476881428759419161508786542192081327441067891968083614433189067112297182556964624745033328624451772455245711604276334631795848447415449117553635828237500364032276557992788906949609719822150294041839820287142389472731704156744286608846368026143624766696613920814732327762418477080916289716474288154004274539613738541867516627623247432328123495759286051695794477641396961952831414100861244227020060660643094483819389458499808414308529890309583726533225861472322453971220096765420429322088445717031482186325204627550725010502366541101542163337285518277504009192517017906243679181152605716024378933808509878512516701471790570851674445450108003721078619234002183930789697934183157031532014671151234955201890657648280557748177345063446171101332632802459273121329708738972733683114805891823782534272702169213719068676893219718797913843432719266255981401086631678500494770715647673710571631261655819121577946177441099344866830230602716862161984556579468499064042617217711131807940724949498173830330045425065181721179389643210542051997816197833846942738572301970689846743172422142280927941986435508021596213534992560140466115822481692324261392909183584428199118926957385567575742883646288835233703785116709810586371547945636946501463888183369783181453036630715658417379237569192935036902202831125766906147775466277039125100361592914962581741395830462381158491891346351568191871421789540180295053584987232550250092991466601124492137748899651064328766370351042209265689610288614876295691306425516781425591608848125722489989785150255861782284539093232860461121532791783063212947830995816595468930009957716318703066837557232596567738278384366689513624747858206861283162062923537815768401196792480545311659318676732543760432911603221463756365364355608154456990896744905158985131982320340654246105026141397279819634561242712041945288220654805471717237703770185791249734002423263980608789716194257217220649400735297324645858500457247944871210281237359071877493096316685706047329281322005984574253485407423015874313859312037931008414222318483595072485862934711195950354283944278824251986611777166029493919671673345409189216338640625878454912930646351394040649399142387380932822891832361295065463822649981757169520729449490353764394096369547764905820238574882012515781351450997256821845541010254856643681458218131514134131536684399367232786525727094687464849724594195286841874706903883358222840814417499752121658229329006268418064289204581862353838496500639833184598670472297802210859203386604804949182730079663116793591201955108725911582360840127362855570860959146981782469354290074188468595251684318815977303626033762955004576208330572162149773145366990258634884152407073466197071139555331074019838971938050070972012287448951096402005449691853129222490297249858487990271067557543967964242071181293815529478078058864500780255832667471272725435681597706582002207117643308558573387560511300252139609121658207079649439598370106991616353043711695351057584765599178117103646010518744298233669611672487351072885238129131935118211441486912351094605025700900559907030913620475451063975250899650729800711726768431558860299236389540376244785225513698340788329090248391862797714907441188221056154055900898983166968229402966848731587772401652207813486589567531428115315503576793400588856914326630064568852683277732014684290972708088100703234213572519957328775898012770522807799311001006668105937567847264547566821597103398222204120121512904825042162935449791352264505888305248567853540601794011041246282482624524524808719326418035917086730923123035175502001174793984047294063681892020924707015950692275149968716080713503200454662848541985495023510666134032493940622595013419584951332354640930632885969377305444833779140195816457052456339856544494304906456632193172974161841226960161689515932022816355555529381559383501975097087224008987525105164619849876309196610763313645359836921925045267031428587527991907834905521741084106138218270478058487153112314875175371114084315855940469656075846152932629102611621707118557442972052020323326875879076805020335853099822933553614378743697218979491758749722145409903448260883218024962659810443734930233601822562978833635547213121653506012327814528871314788441736282177740892675290509182614101594176958925774174959299858806734541570447753566717721254045242972059641303422472618865041231969472831208605897099948232922628145980288624454587926489915254327024248844266121551859772348423137819684165592338882900005088614813489406780643324148689805733626573272312475804945725488094761600540554714664612358456897048429012099318979341013252101697286298238028286775643601234785564763193528562859584007707817016527650631104563105758950300705205769693441145994229362502124422964225641470350081081323840344540012561900260692029199067215659577650578094611132792275656528179577220451599243484588531610966099564588305274004459455814072536940349904734137740070448546940661928055323884750437698176768118987779981159412134928750661468300725259347671178129720221706317026647869075075067210474215671847228534815916106083753390188420928987433982101836151948087663489669966809513754831274475053742112399547773372584180144399934934861045159374745460022264116490898034929139705382864518023177474060969915908758104451383609354308465810650876501933677531133465361872527703347745342168267347621355515399070356429765860201405625112863468303771597048309297170588907660208547566997557468009085747427630556213415996592438206728600804506306132193192835167518002464407450090925648250634098325360989275020484532558070780840658415009187242896012932378677567533685619535522634335950437505418128854537862659616406421522538614349948370131435647328491271493949807768686043182012739590544108718342188145629688451346156093387254046454893475423133392721738654882290004516337910893730871257922446945961217293265070970428291235494959569679233570504135071662074299914216849009104993000320915534530873213047553540973723902375975094613127238034502492947060498731876871714366409221024371345572607231068215688533453760787918840718846841073759449711594149719033526023449860888713058978868800109042918313999477846609276992045188132465530564565111889210085795911986727287671507317912424756274645128581336072573302764931562805323522969383178794315044257362738971983082046120411650439625167663243433824284068086827910101902170991828226668116044255480428907940992020484195211356286873723446119821201044397589843206668140676178330573519755348902378388738020436012619394793076692312309647661274464783327164186725395675993643928347588877225959705769014993456018635919970023193645181887126068381349848332470250872610697577396591910389237532266550188195359187747916170373595739174207137333131987199608634241869511357779831222050316688269066375412734022336018999502118589281949309316246107213655341578668589702815071143957729412338354623596131325660710243382313538580574733601607129836470090403959802844821562669013832220448779008488766385231674791243725733512801963991607789983143344955125437741624174170929633924949074586155398172985142879610282210369523972350911522519690296689727374045858440397237585760217476626163263434527572063205798483730662836442583159765893924805142417869754169751212747547732339858924838278240394131717491860399123691806022944333407336114400166811116945825675025080212112689750786586050007039745150338796986122765564017366720177204581471259207174207267376438156031528990119304909192072409543443231470304713258577273450455884821804235527116277125143270548284284005520001498574167509705602056931728826032363397141270318777484557330055761535925811664287564682199827935293921751579602224788314658788768838666795423569281088257732842729332802301964202178665441438712042633133026592164651888619594003286631450364786127638571177953089137439320628080283760644569614888114041906140740747036639938003731591857029786867445008259916571446998622790902030706539514258893732264178423686282764500893649747776395899395863742737699858602492892254890031406882392972301560279801225133217107467768764111520732568621903602588201345405482376002515815741347201595233303921945779577052865335622040420031801992716067252763669203861205412314703833947773904933054083600152186602814461490637067450419750405502092002036008338974680025997412890186577634498185171126245060712184179892036911956045235821770936689956399739756561344843874262947044708859301391241164145412835484691526019842141236325816595704013654050095758264806739173430213265786425677483056486981412270867321892953289442668479280018271923802405106069819001665279552223386365441824346632750934328602278710034499210275038617131383262861452606847633610553041023517424400334024113989792880141275455493978148138016168625815999062168306267012953589667826143094997412062464541863481379982221949422227219740470326322215924781256777928029032867917270609590948461595989118084865603055831570895832608226901928594194830821813196773763494991565953610984003992227172595785563635467165195481199721721181584278245864077719153342685003982697233727132503140663739718717000837596340025518899496300328797053406485663070983037676341826300164245822461676291635927085133931763107471531516573234965203770272727699926449627795357336392742792994600504097553179309813743828218762514818521867586494118778438023658757486134141884878630092630428353519109474762605553609571670420164994035627613739068270736525739659335338241063686016882678215308578412376538024611197946521906146810499832166651313334684084506515712914730917599897458261102986111773045510131840459327996326205688800844049904576826323277696642713522379278588137089625968904849489487599986409054626967756825815306618856562705797683669031647157910942493559545351074134185975642017488139622265539370194007211732970183224252665745223077721053119741267205168409024426345262272188840122200807260446237475362438311675525809623616567403467198726254608651060818286503065816042026369244981259831573659221004341945789442504070376855648032447125774249435131248525434077924772917683711976670053516768349927984267593936747239493947903392090496068195284112284140167213266067696549951268781720339390702745769859386651783878190586734099524027878303609347954161701030169159249022030260887455068643478251560237268600695261442038438373246088811605536797620736902215508899583872141530058562257497195470171110950352103025660876074272866042435959170164627566134115608222000075870768530890101086943168694013741298921121242528449327137889415452523958745072664299126726874794219721702891438493179868181409067083267490441074217055955104717547600438913810860590534475472931402050090254230121857005266646202203445764569184264861948607290997043143026904164534798646729237062203888996549636659314071581625286420467563798365139126728478890576140060483881417267861106905825723379009357815470338453262985820080792815797406884000367877733153752428936216305830824071818754385511411317235491153648411396506273014596154644841893470225605922420882947599598671972774152493525583492197460433987676601912203598122648360824636782591390371340057037092581225691194254675031230343430348704661497404393658437312316053697308875881819632188793327605936867051330031116632725809412380729872396944046523268934402881833965350521821887375708117911111412653002193272348280498679726374771195200253033510022798239304158871556464530038968387176555092754988180508436131862602577393742057937768703946244727516053016384487722709682111152199705955584876160634422536093629738879221288734727553652379593568643611408410410232690922644661636807117344176295338595253006521909389065876379580186199140724655836006966094885411512081414700946472750645273720783334793326414155857562588866858111712586839787490278456068361059986784252816388271882298918917059558485491046801145928872370546772633036473090562736689797671759713145741569655681211410865145226962786228309752428459733206176206774962015959990873130719895468152685417566140728974444134046123144048677282373498787730061835491950263791866083884258864763671838775571935383434099189541639578616702556619842502271494249488733523173071904822267556469809136466997718893057440525505297623263340935109285008555513255400193015191041738125098818687765432218515349527845262733426133077254127161006939057120623009973206146713785581917344773153672240606614092838873866034903966954067749558275170458751372895451472514867718681813981106078081593459399940462212504841709851832297698308608968492275951933077276208906478477457041886863833527801690136021465366805866505969902630267320469873763587813197463499938942268653893759383919265628517362811793321213411250180749230174118966495186376448168190838037500817725176232046635568769844507963980487287057129611098558697732539130098956006787361654727069852166213979485729525891687064733544211047885803934990431301712223100871407517891666834170454818839538991907512802814554602789926633401321943356121795550308536834290961025859383506037284080730657762514570290897638254387555591810626654312449119173336595326272673057317753607597738353072255065932825605753263536804371227834552506978797607333946184426541419788100333295841935745851015779328491772316150561521494094309000930446506459282898315991081204282032508306336593389484935604283961608114180973872517483343908763635068781104071843259719397765145601739915734475473562574343935025768304853226485570756749365575571748557457588926674662158825505167623159030852976017573244890144191167575740101079839652057323398859204288515215460698729113171862770176429611188723792222409865600566630809003798354176803774623472420469620638459688957977178273370065059979623945153954270595490670012531240139843188415406724304136974562986860361891282167331483814305985460866326591682960540079866443405859393907590030539082643877755762683055817315021111649804578652334557143918237197041610023061872956311384900569749658492375608642820339479023261877734735134877764445825722699042331926929221284413907913080170638093391865444450400596112473577455635757761912069953949823139344161859388809792189734393245744589924097296795889139868893958358099780036985752255300910565052950092628754325055927239648303171313793417352927343461092453769028834100173325664524705589161019312007916342598323461007152414928857026134949410019474443861707114352223795318051227921089010925243413767816410259875381303764086515905331700896625828142636638841817610342949790046203005839891385114713212929073552201459012136341291815615784624048974321802891048930491418661030691306959086899105366361121791228912612955080676824291802304607276244322466306876640339728530733151216573883068754899653620667596641166931220972835687431066758236753262023372726993823618639839027076827857716356798645794788744170224078521492872269575638235439483004789336035522220430300753844923656748883243084077219476378494270728325192596043172648411339643665030922662901803824163639825974901750081089340695820982322001800609840498159711873033341475198992781071199906454403683875473238595477785457305023378428222068119099074937143307518118088852958545041766693045923994717929984440640207560039703179487782031225299115520394991019088710228224096935113519862635742886476098294990303515987568647183225824487705180994352470338696575249633031974464579390155306691974613301866144855012820742077648648610418197511351962494385826634223939515574003403924138136718938370527345076206432333160220125029901029163105119072624595007893214925669218817347576315391944482249804218393348244636710330215519210100775619054255950694055984058999760238016557314038588622888454217136854024053357868811066732794387800654875830182559663921518552367671435992547276480836887831158097417553871722218290458167207965994624288585795550239797728298024077174654381583430685781812210731551919787731827292012881415401695337503616141347107976970957454492022953011688232242353388523230709799528262514446328691767485377232109196594840025024950909359104739012184781845358128415432119779341734626641892982602590696859034884964409323072865816024482850487899932269962983376862149739352784088354088524547190964052559387928812607119630309103402925448076498916524772366371461041516515546812214615297886192319780327392643683293776178941262066833804642270610593696342871860350675194003531926563348236909300431391431360054197337949528260214161029328219508044524512514454071803733207475195234733085520241633124468833311609732739310767147369149983621024822060545077265639787726718927787363877072769624697494590261279953392636790521619168841380369390216215881922621861478121190045763356465706449961988639888171107195600550735065192693308541899638840316174140203183843609759561518207809980993774319617387498984313339057375792853237827320202845950208282633530028154367339672625093416141597625470362251498623176348458561478890935791142900189241544900840733398724134516101250297996221827567901524961897893042441883601303584563667745855008174152999287475115619367590026547870868253483568491641422746327518170847900226819489048728824093849183678427402761024667816263951598011985643470303620907862143720991986143962950678269483187335128555447920413627838693365378797624342628364935650203465183187598877250663749040757191881059066496362913973185576721910516482156960453759981115794462654624625204133168075399771269420090515821808869582105182708631997702841039604209724357361869449372579933799816757544317363135484922275057193276336329092748257003932999850614630128071916920182317949479784651947658788229022114131232513120743617069639321392325690787859496179321272673692438644183836658988775796732353061503407779066120125789360157792780045406628074838778125096330888251415436251454203739534865454647618239538934556647595979342248843506782831045050925320994471805482823724361354467171939333574797323760171620598297632454086154889951058634425809181500286306310342429038680648610864572369057042742812840033406652724506342781955460432722314152387753513031104275970306591634098187845926901167716186146679301513224002077015505434875086631553273900831666438709967963954182234219631918924229111259505664938626763622791327705387455405769910263187129455800171093379243763859760609125617254930921428381862463141453861674365855432897819702152291554596747028162975198096371389113227868205443696341153706864439280834171092936981939622895348233715506787699476360897248921358183307823068382596046183193477517752885936251406242403105575781044956129611130953432630337030604387654534199139902890473900628426991209597150282374119463928637555108370635686383424918508350796435808920316398203093099821407452920513636623094868068524665189089772919115856045806203090159362576113725773132391123785701045119381764099358881592694989467352761923788507590453265966590291686694547456436492083577694012201530484775764779999262236045162878334338438254212995540635856821744779538390287125631430180318271017380518022710562142676427603797858295647811266878575253262505534408912175520127862407586316741724048807779544493663829830078440168504482424244322969550664111880137048719305119134238459544165977023465098123405580313794834564855360604491979011630812888603880480534052821042705166720766558623251443157670931431232382451744046280115785014686559994604015314609650707484496556590639104670039006731024364159464331437105575875373589084707930175289686726939263365251319180291475956621845193329072999992598996272978122006248292488548079414997551629612650048137557425204915528188575919500656126339400138098784848503284740680571581861155302198907433715142449243442144772740640160597721464040975047361968503206493001952259875669588246349023801626041794436348842488155597989973686259074318348104324699248185236046871514724527326897522267285243617392850119798954477540195626373676523935590830079396667424268183148642552859776368290681831701783436390187019005992099437748689003777622628763723744740804739004198901481591332880862313757315070593907949547480144437887949921267813307841996577603158731911945826395187778647262257585651362870072176455694193477861447547776196665541325800625675647530703085391331443592573239367629270480909862515523803395421027864752232015928845509414821157113174736202816291181396819061332114357065907753506477421517443538611346540782673800472313980939191726461381679307972797955807116069063782072575334134845132540507097552101270469330740638302960954626234679267906541382079186920152247580705307534510580890554734584249674090294687285252220938430577059760336430592775290530988439930660695159434249515092844326129588014945342098028846540679464857920372730023874299673694099610694749702188336644383113766143994937614045278315332769497106530575847656746918154822248136526352120624569226884184395340945477235299093508845821203928605824959948436777983664164703785221085207201840865610949403083463695317262401679656540888689580030746329202813767682508232881077451086583630766379414307767044634673225845333505828220677719616228654312792699784390880435729313845550013976473773265035467497542850249964346262189765959189960459309121200177892994465275354234002007861969531371556286593021024013405682241852331496702746677709367077870354364745649135358505425402259630710668285322928121412261816503814649266253588808077573275822114040855914100601798049303927678569106317859937039063717169256545860195711410501749696012208497696623291332456756029169250785115591064399530529495403960214915762008410675830568464045864029581153003503967385387586963729597108676847002656859411384567992168774453492307664532050278510858358827876586938092764198237290945451314654926940453340622418826274603005411249235858664464331666490890113856393059910560666353120542692669909113727946370469898110977829912484175976496541105579220267727877894976037260057526652501362591796940807535731587373598808390136468763653902520417416846918957880024093351430875130580955391828658081993646545532609970199941761752925300862401059558518072717135652241776702493402545101680285284700222527206532079052579368070636978518437373342663060588274060967738857858741290917337088238353725719026105505633227256634483526871499533932514231647688157363840017089580796744862809105579930358850900354830932365767452554769337681224989880217609787026343838376715441411988083675140799775155769696784115446057924081514749152787895277074320994141922285843921851589322360599286145430429529809969420317629917404059904904899626590904157497964891541078280442283602260601500039119515677968893197497684345690879894023736069370386948179071562579563908459425070718746818950466595735542431210149336070116119723397040765196503773722230821825092739251172811713859833966453234851817446397131754624885940324413599893328251309619450897702740694343672547846245336622737277614575959809794190614343357970530400524075472096022384265919190681355508779739691181698340848321953282604732065639518216092702820406396440667543792017110973837693639723833448623466121989211496646115284359679070727554380940055207056338125559736298704485769633076542779031819187168224661715610036289493101951522402629505163822097510242107691690903469995443643294264975172322041785336105832884570650479265412218552149749569917694261421523962434361605239961772495926959748844071650053553301440128013236646904379680655249895129945683484899316492253117273421804158217890989063437081540404743001544377030029646798300211380980006738224426111520923089288202897485199054295657268047788833854118486280826550294517835264282276669894789017894115050861906022543409194833465655876853532397093675863092306382369862179177935277156831114142099064851707939772059845001341550986168488547699142276936116472459703543608000735547647599923791633463100208281544709506506387168292979489741460600910509899746383568733002182327498006010003952985814231336304482840367849512187525405924540460441946662448074498449691949645036836778464015939691411559278842780697120396834454363450552066505960639392680217269166076815299430373325600666105184369234318112949269239645950813173298939153766339699508725334209287865309697646401040017621695203775702697001287513266498786816999675831559042335465924343447723709496342243484317911831807391844133827651151093721292661548876742651467563693415100880890725119028792675978093497099599082106791282426086618369725354417905446310262584578727462761627456629338633760925928613510217463842641240996929343801709944925141462228961428331198224116358079774796169809989535492488226262810638621629618924258636643286506269691572213841935985111421249982639142568636040137891128802129438679359691727197380227388731749249146530188630808040252853646335302667767991177300908196876103561206835082100379008493751216813870029067177544310701772103329926059511911385703934589734218750211847467708040502854763850158308018316159472883434799726897897542329771038628517165707781076411965779627808376079016717128373746895426183462419433627058264076322568667144983649141395852745244318370265397069166117567319577182011091621458818400466897940475205892229492267919199901541279717254888450600196367700079635569148855530716774710115339293360405361861993280740981904330167717441109785957340317627948853194542655670917476021261950412934108790042667800518934905839665006016279391313933234741914853665381610197250543662609720729118653686299809452287180096484252031483912172594659582875194690190467030467584973536394508028509848477271065747718045790974496482884429703763869888207882688738908356462369414290033131924756281605191263393385251385131570881014048445791131439432997489656867426510004454527243671679771311957821150121868624037322403963402831174485984922362476413184707264426961789613811701681937347423414140567511299454323553054300799417583960654253981448804607383603632297312231774747533082056509458564357645200858476494033108951751096090040222086016545476426220003857064720316588306007986865808570941511626018600154992089733621647926773082613250583205385290952136888709946843796774491893075592086423209251563003579499077627711147379509392907711791606409885503360379434228987149039603987613526018807138961050952041556416417167629565136942492842274825358485123134247663502398704684931577642878854195871399485197339852351166962613332682116741494736081112057142549998626028923548860646254341460723075946563869608574460285876004570056985682859016589957636884590412681650441778753731083748147694567690473700388518334806209620961711380700611377706134699979817142213215584934793658669982210820662674808848186185407531779955821044307721956314758398736432756963265257712286957426286545646774654416591675894068791940284069995948129033593446632509117322121880249765482772912422009776091131134284284862891665742718949842048586528632158240072391303782921561592630076678778524363872429162989523820294252190101801234825042869243605203809956106625188258431268119946618063683077094951483464829644382921661938451386099753398204083543217105277640720108341782958412041016102562963739982700496284494233707944867907580638299970006901636869193399001816898252276284139949815119000121700886439300779614631382798408749784037022483723999152288050127280406699857029879679680440422032499062102130575255086864084961801897910166631886463438209175639182052599206562680775869817839819612873138621792883299131093782794310916842986583361851860531478808540630441054231280618179882681234869432549349135726528894967309223227733906074712903706436021821901484758717188942686553524755470176296306942588707504765687008046213662879327076982924423181409243000290275381602109269771486992256530868419769104865576588243468159175621457422306104062285784236487730157768664335632167990620248061776635152788462478579534559766848506109230607758354432351822743146971890830446296735239912463092406963122162094456700706516086191810024380029741244742787901175490892469556314456018677847221768735607314878563863353704680530951978157073337173247210647553170562252211342235926129559660469713882007665759194605973192340548298723985629833534161909128328237628839737812293602375115943412831193584510338013998439260386953737959142883872683808366786574115748061069854194214237771385955105100840727878946541347695870178243278332028147909770491259340330965251888406028998877599459299698970126089828518016076478213593875612213621543743661796287106078232455324882123030536268759546431820351132047615049913921260788628589470270714498862623177441404529121549415292671255768542851920048697360940996638298661668889015845836760366564031701269888752955164379757457327097439128553734826553815165537653858138850596096448099230350909623337800046528587800517947217127903068692250163531681536737615252725491291303002292227740960162117921820841595666902756895148513496039808594484877698184397196568627671036375104465136636002167353179785839989110643829320762170453606267661319099487968883620369394150848315433844616387405586614235337811830243803352057948341802001238486368557153242858745658293241800957773283129711120037362416486091318051591787929233212927253045151886667587074573125185695518185971366575866887362340691434188423732023657736085672955847555062726893198453323223855147581101242506551666009990647553155534475479458828507781559913424116136813138205976874402013927305841982390572951804772082989893225163107482872926317057190854984658368227161970041774655694845979780209653952775248290098440150317035521171295089624320697151802877346939336834084964171880895218440665457852369822849896931468786356702582338926160330177840223334265804048455312647794027166063140192938526996729762762170432944936004559832746006683661529500707099282739406167649465517780044293934353892893176925869474397870111232193930236127725718146984344505375996516776796966452609296288127877500241548620869903831364392542085054250226138486990343448262398834860437940865223715416166387362180700660259175255661001715098564711747715259001889549227906483479721952294728990772150518629296483528282390114920591284108321331955798896515149059491322785837277438199949936444322094174395895383860156660721741401698926172002796397272224189821366485437753209128946745821541254442757803414771700885325178059899811281887389377863218372847164825058079578194397335130531264369628959795134452620633211890251721114380979079613218427967917855717698296672858269612645362005770688890305465612255260822345985207371481586171423240500223026424875788882078151809344841736512790447732880624616684983786261882367302024173339109416770854506183036396285627836997497691725164853025095385965117986269679615933111121770601941417867133670271071523028040777682100863157442425159722880994387759562394881364535242112078262036154727534461905556584134023921280015182454335115341667988343867230479308807984520700707107439003642011828854041386995570244298031958908627835780061110172091182105478929263587416555265966597038707930805911903675298417398683444831183786830977544174536728096244476924999592392018030427537395521446096745800616337841709726525889542517076857876871235766837103509780259923025527402575614331268350677983180416614744130047363099622990679614440937878194816734596772360830216058750360604157606837015487828718622302929650061444900371525267082300673340486611678793688780265228852073277883858769945527545391143264011715648895480345514605668987441426268853761823834387496931333941379161716918408946182982493514455718904357105857310306364209177161609912187566285840635120090276822556394142285434915789270329878863546351007821130685751715479959039584740967591554391245896722835677217153375797380765038718345888409575913466550183491956855716746148263381990686742228245000738493888927388027000414758176713560945669105409957592831348296508544275341962903554787745006512303000010317206027085211109325163971749570789330717563217012216584128262481452435068706882766515401319929632884294639778044861120533180584282812511000248029678282202592247053230775387425271596073970736693429303861064781900421189614652070603997722090916334249731476207797116637633369000490262656125837368729132598473790946701478612607628266135805939255387282788801065334660101965892383364322138878985962524465066428886995200903725870962174374676897725220486204818360865169621480000673333369734257154990508989432925957151262749600188565782599079227056781319635974658732948311869655795524676953928988752845807592966217122426854267600028461452896933048984433894342526508878946205267848799389976291853982127942908041744918486667518223941398029816933279610966098286684668909066267684499663967197824439646683609597250920661575860689381161801847528583580334481439367282134146391432770514855503938680021901330099147980073777573929015197971966558085666791646350465863267048647313567607796599802879216653714068021590442296463566579860122548616025741954938039822030751625517047979439188724930995288173568139683102666904152091965125281138286989058040822385714860341312757587624461951669206812118507545345909543583715265562264129726143093789523397390206048607807650958891621801279083580089615101094658468781159591589148334838386449516414473160949467737815695863489897734829450158754958014432877543170049910504853115378446757794058271118719496273340861531122282086483629245294416443312250487926836731421534898829684732479288628426922473297965956578050122657009445006683473610271224146244261385863013411246229059401465139281533549494568932548487796707768267007871044615791864289241902495320457770325806312300245736601494127510779911054367483998270223145743913429552675175852761594078122550487430161805807174467519687472930652016056163725009250727680134467119038210345144625056823034259964502439545862284009344875981984750721268963734765223119687223226063542456975048741897398709747482677880600006028645683460908013844852043790225160556155051310801799950292200028208138674477487130513264785675772186589074385809842554519725122249171195075115261339329181799883935106649821429606218250451393429464764320276451612129502240373520163130256440997091489765716434268931120890534885988284478919273880688621389059965565983473426180519748532836528039255775398505823601454307339738803025511400175728749602599331604426469022242087850213076656407758464667703743586745035973610229019594143919946524052435538227873662375172742468620759727618236344701058559211437971882867049283389055032447533589577931805221544718200548037617885643144602914571345916085443306391237839907407399418776850649547873712562071088973780114300783678312671549047601905017487242044360164037568257717802941081990315006154563343054893492747812628101723898673899807227877887200387109295140686249757932945950546655416655530943922065890147659876879903073820437231119870635452306964066041842672151861572966722740599857337374137669908315592227571839001106283056759420498049450376637215635720044003236717972108902561454525154906207371778244599978144396009758961708886741550691656504507452825294642637936833851884728857116939385194429560732221902452646823958281703752920908243674049876745421161271903400953628932135996848181503285482753669629762146328210789350321814193767248851289219698228150008940878283230929769434371243303138075065329721158477994517640425594082554061896454264354765992856391983282355074838546693803770598086732923130830859629221101023173848146684723399512158455901225834942310420399481825779386971663255453217982176495357061373227198330460414916948747379115446335871180449597831678831343250454679730869435092584309046212804710007547230574934889179442997258821889137945816728744151411999081144908596234553746077727941586251602750453455319709709543880116793412808982186860806588363168377882608937732672932920045712058932113954802496684106737506064504197272258868500902645419348021280149100272984563925011686421953631097528234318207674402689086439963140688760062717759615021956217563731891023352617135590044569043634949011081406126456726635707763122098001620038903418211802429378907034070801614312830176132430628683501004983819852877943416874821846511226640277591661292610066394923408634515926636757666054537093894416147238835751591472584230741863988389885634776254501922789154794926641710751211498176030204607406984369940413148383248381663121944666106695286062602448211745129452818925877806878571598607066626346996527483245071430610693294157506688123731260584175666829189372615913612372776188283148435741174790406517213267249315057919204619598167404394500659212804070736019032056261266146843358038144289323292468221917337455314770883048865246477733347122363067644807510272072122192369552848926214667867401467779936335586210714641000295116293415766761498553898849773060520741009870772384846109120056533977570963850971583901720550627115191374330962256259474175161919565284710317677647339663388036735169783136707219111471903219500290273988265239848283424160214993385358464609566757066930111271189479031469050870678800000358639779034722776651983670153459134530113020280175822330121026620078422512992085516656880283902368207673040576509134815473560101266482734630658968817077634197971485803287143072484577099824391233904641951096215808048027583162547640141937858000175200922097558051319209919849916224122146797040726916259672147603093792246599103283474633946397291670168401315515691955405774221884935679797147413113129053049056435405780827597963218712265880205332817795621013829588775742290998108284641661046830373198107521411143152898323167495710262890185667098492470980186853041158567944776248085506212657303985802436187537452962529190107734886307540476547831433267411210109624523589778541774356759254676510398379758994578100631758084639789373411565384045137458670308376609657806386113264266628547282061972862556226153912136143814807510788772457721550831184421053951571660923664192921837510645418473795446476581735321095142413224696238616955572145627633371677128881171404415831862119743147359791835954664794543732744100309098986499145663251441613212022301938070752507173808281842946964379192040415109894269246315060931790237672888793132987900811332545272134119933349651342608281512414556840469062912876920552828378860718513347731816847341407916919819207426903736636481000559811601922634331371404036283664267070885885006833924619262159713329541764405731005281294290398839729191952967640762032612996630750986224143520845038681231862770772750121239751660362567357023386032749776067064600673879536913629680115152315635531737781902176400730611966598715316822080746762701039853088622829737099447396456746939373041528326833856522157130775046021255009934357983273319816594307812692008787646004640757577077385111038188320261393758935432000913762676333075432713458622059914935034870163222270001338210899432001735604779915129982791487275640348644442322945247405173278666257202163267668385815903598774498286606489137647091644914803584042026765776993772429237509377787521779367037532647768322001981957670351964783034793920631170469335611249048807486217232481745854071505723417189856535554364731321641495275324858074020650486310111310988886500778804449546829571545392878731755343629247111874376379067956191219415947029331047001585263195402503109269189622161800748647145254499891685039019458750865394389070041132902697858252041469781615068102971243990559402960210797133352356608809811791043897612375116438076278276302640076724391391939807477478402709180632170994457509226065314722945349990910524885573832998898484304962077637789619964171071157249781789445892221412927678034258556348406875552564162831657170086879951132409677741392792242657734693571944754428885735881436727506586585426186678107779371564010684862373944438096666842486937503794900587792327766298363912612181130268125466777146730301363910104827638286602570673532752674521601173055558513297119775427579441763688664340090294323770500373782506913925621085423394627082600770383530007296330547431113254804300017464516655055264364735715657143289117654757352235634894534342820467958773956021676455236828123225911450029040471507294941066760050232952140089008005585087359594003493164953689988349590419075851702852735500179746013412064305291442888314838001803582894422432062144113234199122233723663863147331554290383109315194840253470207480293158004210810237370937853788351365774003841839962265431515117329772643219978909741238627431564645469641736365599340020019124151008688000282331591310946524789618217581850864448408930823009101848028736430874865186053871242353907731647016197183328688855499100759043555333917832955272620006945611670131481505938355861139626085384367532607055810739605500179185780208331350842597553962816177259338083508170119865824269627677335006349476715595222563170516190648221269674251585604202321588688562231293308213998355237633299790303968690027247800647028965483319711651319873887451403575199888383570578528359456082919227792704969512567102373519825362021650716942583785241484656002060154395827425259935862450876427205865457319975165435020798626006979662614938060399724835541950348834172869866976292259909944311564792344532418402443824448166120040199170672037850529243453355299797788012316810755713548530213230649831909759778159404895656197661123565432834056193560813836324121044560993478035646660054283920350758417720806161065075331110365675264822492395493308695924171358948088673329995778744368765371866615178382479992731936045393638941694883941299294796188154704169019958918934477533613226618853805059357913363913279594466702174981039611122815951583028682221748059775378093008857266079919929340355858862020226594056867766674112606899131204435459721157721330711299415849165596081300472518890439038670341943188784952856506940682841298683261298297394057416118971712969352619456783527632215470919056368678857341510015208832446907570807088360780536702236774526965128863642502661029491148210414688949897343854187535159548594764884234235442450367654807943054833323814457201225518892853654886451728970865231794020078376794960354747301213824967567689555476656377379900020508244139833697258333963090066521563545580575917032756148571704034674958467623138078776346152626047203071562572087291821499326956453528748273158684316151791564505503169931125386555913477790180283289318683114018307705315698218670834415102610492398799403057674090815011985942632719243759833404288942014439631981514863024610201633411263722028613222686243435438160447159247099760989241393138384624079776941102720394351884604488592580801598131531196632925326622686016856765067327007096211763695691120916796960443790747030574149713806692985934962128890819575796795523641040489605242594578619525584678878388165925923042876116046600718170823120689171601863939106442073374961509235922829522993717927873911919755573796135427502787231676267593125989631213320467456878866439856060493299600454062158249845137500470695728560850602845669533498865940290699208505392160765478650361792905858762467395274192655043846827105318836837269295634956370963439328942158268650166326513427606814246798009285369451181863430555494417270428268732042751974804752480830828525645655845000442683916349774161996275910879588579418313654214884975817785509038318857621945225898665756840406106803497854062418581838127613599397086728796118639175330511482893933623966976876024753722381700400714839524525349011882208277177126547708955464689252674819701934002193236878975177296701658896616371640450972282217282717771005849903818091719470209282237453340716837810652943964634281973230367696184023211254526805615296033878155480358361217676725006083986851072731405222108130794649181444224641461463185591048125589944464858469248804145991624899443993765053994956967553550348948133994073027253678459342528525774405479859907549959037342529822157019635163472342564976241439560183882969631894587351846120167004067378965905338070391094873337645590375708081561976121759116612599625678031594064290839270863263736241686600519473670535102593067980024216272008103681709736803540089692595430192673873139119088299881301600805596968646558071143076468060903689286074805330498164050417518416469225082212487397676395333373869899515117873086382173758928598709628129340668888282386772488197875290650730715066407841127627037736216200883381708932292613588769568172730048243159981622516502144879423779908482513882609264505459915765551480239888672676587541719965848457775312729314123871676443560701808695070613566857361519943065920368209373117519640136475649215971444235014507299719851449992861619499772187352849085633644737018417196496432834461094775610813223587739129789969290379367590281120777339993604452802502971457290416415976789522507103512201149728576261498388850498511561861997899469790916554331174102183238266206881987257652282993894594015909132151980492445721545257151416811865586939945587086259520496234974993685980109646802648970767021363023777895678913485620929095347964830367672836246843233101061346923224130980489228358105237803772524111478541021118216462614987212368268450851958845581565756147797196494417596360336813671532478821213059644211944928662220491030733458799225196205048477973071112965211650955443079619432053311175040141754812062095989724054345586911127266886591730892689632234426265036358066437886551978479906101517251118813103937107513714736894472538823305335650971825047042841048753757257527410717222154660478157512485867239611047265709072806023827919742191074825260096909975028311648460675040199514434822845893125543034118728633360721503521637618443797485132838453978709341811280094790307376464220366741736314493812256599711558989079891761428304645332713881844269195982185522839905880443846532713351095779550963123565279280409436885698720664421623605108602952892855878458400593151817090822072042321833347559192095248880309787856246990820513282806361676252078893362143804729776078284847067370414492207524223246390390135667933802176129864126162027805267703600572510909855131629604848262737652835328772554031487444601694781934541556783322936512847043295672581178688706577531448877755320735274798884966680896853836939208916861835986864072587965159605037995369710334771274603450528578973634133414147150095092252297892515380850448084397909506995174796726084753197939757628693048461965426573823267972170436774342178079948473408846818861221354045020474115749648939796824318884062623334665291729873271228252342373310360327051020013427496184164778783122741372038121955328916152419555222672018724385539949964789915782013671513496173617483557771509927041857860111981376913519564986632744822487285496646693200384083079953906566660267956354342419561873393790869729077841990112480019666223649337177912175097777015228037292219715000237326912059238621911857964815229166037079105162903732845599720855899420581509815357798966980373434749142549611680828223593764066891657688707974627430186023996971028029717473573673334875289225728465706324364336887864903645735226216726763709713965934570667919580843215719758950670432919207423047436212748623922272011893823279851910102985723782847432360055436755199186144767943908185292257724070222826855553872198316592695962366765648897752180373710617115073420481584648159740764320055315312291225090874621052042878482795744118162110697186390045219639628572302218628450704427477809231613833440947499450967564400739799752993158820637616364990108176620162846730661673309246395302863702902207046554066260915523874811678125858928643903842858550052235487121679770723352275251817088079918165222887877223770898598963370210479478886672398318276141507705198508017249745716821542266900488377786992229951657349991741029330345461530429629985781173928952587319278427565925251591078571994066560342599535774394721068324461205690481577704063853952312704359908082007087220137900822296274434244066078913751529448852332316832131876662819644047333493767819852294997286866034116616740382362306720090762954753220724527460047323211102050868370204607852884388680291051690430353419453497768671773682395899214200306315968637760380282693244030025907488510107519847965948295514833608502132058401729895071689166284467762178140599295213460650519407771529689887146550335140473915236084859881828211527621319148916573616333615289313692682183956781454661918583910243318564357740102812546185309878513476822097246863702384022583436532899848742606556472505558667936748195617359884042607329113616361961299200977972340934593441227250449777336375684355459292264501850659949013003142857196701190362271429822451127428318054564345212326265677156176430024487101558424238473553251866153810675945920548287869501029792053350506572999134292297630423090170110661043907728956890186149269308122194944130691619866800193610045726515653226185985735238051137513346193758691112757684896519989954808450604964682449252054452800674453842763404628661376022099850008000658014651269182767848699444195177597951767374454819191390537624726882304967182458883822878668014706679461403376524152767157242285323884425589866894786196807787508470415114374971382052056718056906360167960944454957412274330252597235660402260063201730885368395685655429451010759252909489807997491327530332757071750037482983545084179162661601710809658806242502849452041318330310620896274676453108608475192840373915174892866606568326271398189402660484453048127464512854069525008198919355606798197706418401862444613820498447389353087831784494583035924968208676217574020011514476082941988443871902372889848088722542924600274637159745413145025543115569400645163797899801484824820419543540664203308737885049564133557002052590877663296440439413594560360227223305399863692074311953133051970955631224053632474844134309045944178923547988523847268073690165078035258058726476474442816332210121389469784815326616547148947225509236616135615485530702711404611008852780430063751776060037501453595595165235919018453912774352643491978911523206444078182971603924057490710303996108343864633108481618208603355767161106499743715038703329683348491615475525530055000262148889323874166555992946186541640291460040540521138911348942688758971832516872269920898101895532997351371029842643834481651753854675489712088684930454359750901118033396156113547583373233839595660247740858054695241851625989058545682857855105151435709335349946971357996070068919508633425818455634377029991128074443931912406732364389254195717300610558467728595589945643309260444212484631551181701643715099365408668621690642151794532654746387369420741768272343985558219664135606110086231626101133484596601558987556489672696391885471568488757351046354087373276226676294337258835656243214501525145421510032655049923881356604287585538866776396233371454336145908055565456385267772878794971998895338711342019579873258876368696240259924564947271946451989505369346905157443510150384125284975678397365208575684268603056855259348189745853959989880494966604659278288792094499264126962021937610022281205503740682399105500479364185267395559202693878182736200095084931123105051721821384999670601980851485157616913804265556979751859173909859193301793494713794932794690662908243517772733722787699372547680972589582795932714756025514040108249253540403263298969387219383029823381885390573410599386682205256498454504171609331189058613923401639375863405340669994213529492842806600441055299145635436550296934285331148162914221685921515090703180064603248951777771738104420809726722663366246909389138411500409049961193004367167064641477727150931877269900190215313533213231515283394392739082846159632315477222180591668609467963313262853426537294694247668232185030419833389818231070297768600370070069652055520313374350310976197958243257963909531857248137604807175275084823575820734353601384574515319760779110314572815321499384102195024664232644786689863774622383171151477428988230216831743115507623451872203644352793388569795179897273234828882328351462849407404609746361715807330041802658180473780497591362750543254897495877892438818595682030513458939907700038918483862083450168917858300059321532367703787927909652343082148077674458173969263792217343834773699790646636177078252156588885709183036083662461031982050508690252690031232986107919972714048769093304244898207571280053730887483364695229606365303859929521223395645931037279777556149195793661776787922097076449602032165925743069122926273789518191517326816576618887231433335900642178548581673415270776313342138328091950317798817489807146041389382221100004275940928659366379716362192987882319915953374136280203406688936671628156839641203712883837092002115158928605751457593422965296964126540821849889692732967649155023324153300783705650161649926102692588432578144142369787085567448305513035354651496949633167551260494601119487528030438063956086974449931505599553816501519365259424454664201458577907378948142151436067754460972522630440961108944900026365981737522281843819213178658550068908421967539462782046325230007838473471973833688353827076032455259578806472870373755582814324352541525232442529178600218317022156294234725056838128487221433443735996019734426883719693428016146388453020820303926005695143673147883814051826239788644575433172137750986546894097799649985875340569834819172687784928798789083269721598501062483746228434943220845361927528852778170738989775649478233493377050836800503598457201248856708955976599399900065706634195242984959285198113066314873600778890437393169738841221841597507034398069433279246827985530223231649170562036954138266651427361165601467922802101747374230650661652552634745806208406442718468415579074822945937033485516868873778717347171986086979133439880306990077175599604259593127958204941365833574427933945306060619045795323904799463083116402784613527944646903034696612312756053319372917586355585005000627807517014373332735797671148218528500564319704790371887400250867591528137566632471942674824321058209395554959459440243166800018622331164311453896199281308122890937411662198605801889115421079025330651536663854547010237917442630600470834594002358007741926421228469958928483234815078218296228267576637312070475191743074790947162102143184068192506626570211859115474693183650677127233790778405205781122449976398768725879919959885923694379794125243095306743599960869720414499812111437981544600674684592744303223268291276352764334619586249470697878419180028957266773406065280635520264933134422695846962832626033598210309579868474772705865449777318726750409496132701245818966458377652924790363807588711118887594246609706621235440381176921100040832154963854567694289472248163925635557705498594007303404242039386933573189145870181499549938354910813928838069794645619926053987949684129447740381492603416009542444981797764366610501552069368550197051941347730132609397700974757984359047137272331022466692905642855794223245913162967585063099455361023238859381932021590675193169179786351985982540411760327566788810729229893532422279287709673043557904674393269761572872104255180966682390720898151195378456975809788707950870779136306302512359127236194054765504029953860914673234413097592943353892791043296383829174739144877690594952034343582527397332631100935972208605460293244229454967593374478127253130760962998882694825471379693426947708584287770517926771682439835356819122142753358137782411881482446298367694677347738638410247157061705461124191234940511035395438471785344019675888309735572840095400204231669626309310686769235405427711494736702467671984344925601816543580112706183522660155197861661903850126915843022664399093789220174677807647870407784383792593876144088660861649491620312637922205111040110076512435146146467975477799755883527471223989739177651958186004605319858925692679293061400272747993527637003494408090351924154779224455923315999495261522311284968472911712676654215733810380574236153035455674801555813743695547972378018649706953712649164985038131631172088815184955256331615799592296877900051834126015635177924610103597907750457587075165527955393641142939186562476499823977560599141616698617539922330157917836896609184108440017567595309577822271611341982952149307472932230328711261284942872438584698707920372862627773385596075961986664365974575627825068989892058590224089512564791677543189182767729437677778387461672862621574509169303303392996372554228731303061000247713308696528113511380887139782380553101119257032481095327079425368770877496399486024599197227313230279755960997486890663676760159352957517377879951262219873632560335859258459379610474937046593190636844532276032314580466566148607396632304964030924172524455734641274479907923805676978596496926564772044210645945434287540952954872204476466192860146295860801684018973256388431140176621932789173768252943695246514511130617991780014862403406982948048690723378482052483382689693571271646724922951732015336226600156052460033655444825498361256205605576250647926312075659293892199409816369209714873952022131322666333421407223448117734268605073201644922903363736731612470750674610569175532078005796841510723433313491051283699237050662185869313033430335857217167563128809275350281576621193637495661149404623349054996118853518411541894581202670273674797121226829704737309900128543699888654552528715401708515635591102763005282912845151812502938930401390650024099107739038809672182017216050751564054603630412235063415370441630588801580745585694070388174893830091931515760207355522857142988325484463600489903577618143571516775345959837496742284527988982320086559367014987504668451083801214234892718183662167260652186047657737564146101913429655796109601125007297580942408153957402044152525630890671137798744697274018385102061737207256819320328518579469548478786715670877601813312403026769833146464621818713133978488534344793953355904483472035234618582407613638850144416197844827054585262717487383767116038301717082320148025609747554988281444640861817542770140094029669305054335969883940553287462891193799034727102788530411848812817839404458056212208202461771718492938525280601843774191058553662358258583736774156043362123274697961449770510274940688087101491023050575033585614337408090993597318839914307141674307066173518256840258331212587233095475185160558686963124139609013549358903719241852485853635296832550170205087821025631379582477637922259892106369421289681828331814481186594880372020663209929625247849083609108880158283469555114955084529568926506972296567455369918864248463207752182795624928270581275099435440506328531731125388153359608714016778097046355291273941500901314827925431169417412296457745282953082785321174216225185371224647669300469584046590499793370141629284401566633415138807747905822663784975797796143130215700861167284262733385717484641266889856721809700260521707968647429939508498692038633659518028042211187811119567684283715401081325815736028532624023765133625856778472433909640872153538903384721700787472573777345870495477209409951947214481412960226041862991296378079399883731340084613234540360461997363855529202556543139269077584247830105814402051255098753036054554205268373795895361905068277859378140060368816215601769204949475214559890784047460886467985360367569777787320528022909159978253870901606621897912602280123709556120461793127883682139666221869998135899375493400778095285350987978369212857068632619358805323698859873231520135506740081690317775456815062696072921806334073398781938268739008297608850458141465001614218768035229341074490790938034345839706184056344740037108224224282622203426430526264653267909098358732839121196255719650034141805964655285754709181163466809434228408561511001337262191589810873637476427984084469973476915978608258150975265202975004061015836556802368781309719315056808230594539111039447416475368947314321422467614531317683779199008477968464459935956610581220148117843579801375294775761607391097792387494856729057046429603970890664305612238393107660184245974029409818211325672198816608607184754268474535787680245357020709810133519433670062294740180932933283823563108867719452077685940560085229104574062729442017015267448861697085259656145383941366025058642545526164600068955583581720386483807302449288070155546885071961248779028453860487709624156643444854126022153848905721029099580889131156462890504270557344451876860515694397821454295608159198633898574226713449040803409581925756037342798613351363512201434935996359573872089699963505174347348175434771545436729388950562062209388505806648109465223948572678636445181550643461481957961525852643360294135715349382877018545253753092152629198517839761319028215900389322308950808369432782169106395659731877496462752391197953814487743141381068264161573827266270029087264976099688254637314573499647054105332548541024832907579198265287822655163313590036038564029795239547942969579976215320433003142907118725479770923147458322811294136564832208918865839234576414217385478119317590959758647090723508286744899359772863424110327914057706808015883435066273568865091108728809177818029034169205859681387448228840610445693939501040383560268041071436536917654338236342384698130005003717061499741046663315142394717062598976984623825932079650850089818894738923401409193011898767874420677096361362614886102191224643910174034021192267984286396242445555722140347692412071023476012814208840172142848842986163797262507100184985838640863485172466656881036533734634271541442136935013666669548024866592891116414677623936454131243655431396709864698283781637084704911822632665664549315767537817921153001298077881605267024339410123699105703130494707839557857116945204801948002578025586994753476613398261350406289045492672114856653700506017891026249444937198947023530516850655185199067552002987878605641173589259160989259687266738880794409820798348937030349412325192025971892033028275372804752078872749842970316974473841555347655782172912307991779748600298083147192833432764859312625838055227173619932612397540777439158111044961191245066018776834085102460964571244852145719166400291773780469940010309588311114792305921095942240701876911058969236668777603830693588343003906574089449942824880220087981743163559057269196583705714390436302428648716395281685310451100991964314384481612844158565071941126261450848795657479571702441874782951902884524873520649027934882751997259798495485207551572839276666322471466466187130364501288282548511668597571981331785885060857349101857465048574759715333750134061248225331471227787150843592889690158355415590268499886928051612319558379363711904810275295629507966021468546459842104602481686744074967982446149632820499747740612902314974826420396461842388172546485494867041218825134784038305327034074230062899324467059755578983046990908599483023976687673928774888093653021534112979131649067889320927087895533671355134014937043294268509053554790977700675764828264162662151294118200099280498263277674590841818909179183815904822470254552677143914377488814204242372249843113287223900767670320225113430399095626445166452885038761164391180136774901911809376427657118265758869124537483048966591444524778511300548967438219139380145680182271751246145090545477040569630190145858051105241340187178278777197939182087971804441059392688179180118430281996638915046003492575461814009646530717809170924189755033780998255015646926697353691236813980796670168836509574493371539606342727439263514680732632258692687545837000883928808630091388826211038612000766777581320795027727136385996005354778624346286254517682549513917762981738473322981819358673800383879624374268195097017918511900557024739882473901855664637741418091769766976570949359040597910001493659927689984844004294660049877089705324316750468547612258026772277485732056081061053015437347409892813887660157552220401672758248823891620330518004915652782663093476074071900471903091795957528917782232959502349125855527476827344198368266910025605152353793866178438616016564127419482357411724263454909679691652849731113785332952662119643496273443486228732177731574548510413554709321022932392269422555493060501670279647504220230892720891516364021844185039823210318589903386802644365861793186352688779099188205622375586477306329878487599457290879939142724142903628095530420777722395275652027818348550007967893993430100697934534603027825958095857495435722910567036029126255968915040411050562311745192059533067142471228848671337689276252182159706266262827840110413656335656059912394737755964506492820175440994559936272440348690870453902185195625932262847347685832374062609331690566877372725457710153968191252868285406878325783906719221942642829141687499263202582836090406430596898263700229087383814715026720713550644786821378289210219826312826829112990888639926004087663322108071106469644799469617325152178830921790052068516304360633781511547065264095353153500189587532293996416723430350516491922793385616913805103570780077672150408290963093616922753874981842906133327645152027347668160249306121423342784209706468158458466138099977337420851656780830962828426507276520089183050054823705130295055716132029533761491954329423722364634880216212955182075406172886212337074229633555423299564066555951190478516834536968477001725258330366231923703437150535475938978631873196608963025130939217794878027456141772412255995628149406380056484061402439843701796964239239976031967191302212797401721976771332074807922156710294539956100506356445802397700741599980357956286599375737627205514917011574199167306989664744915780848522381844771206710818858158913343231341094547228544433360200749084012978050666150522458669567792985462653455703668433366547781699672298507503664906204453116747188691627900316474812201330976414047161438347087610921961932142801587864256822278185670525810420549155288097166207664012307247342469504217230192274105069230502322598582325705878014179977835041315176602739808797440773575969832664588616657853289322873261269816635376684318359397033491101555078799849877123693073370090648007842289689394078419712247495369949142248359887638353570338393867589206500223051403961779115374118801467250299186273531405594896544936160245868700432738528219770348142178347912084638002796252431604500997544946383946803453172698235284117115602461880808731441604864032986926104956896824020342919767450627240052413775429641784256374457324944526722354821442082883571055252180256098662015639563264672527258496248291913322978293433451453201458958738354063295865058910668772812447102068688023750758818768895728521107615458287343050766483795436884930670327631884725170478310716903493747530920803072906309206622800958618015353712972372397560974160296044183927059533864597629672770695869184848263556292466550910550974489185475678000455744225982627688613028820263424736645052711318205255094912599720184650435889420995634680367939872091391788367554961125577819384823585816016224438992467352800377988019361975108142630632696189843011737390645581991341123246212964514311641116796900172149531027888077958604378826503815042340104484683145499212635278528062335095185595258621501238684351723433458412195967988256173891979779971215590831913592903101603104250698324258584844314445292678902173080262237928849499811590602108777400889977427180196363163268638251638071342035493312756255186631343471337049223336933774366130459826383573626021336445761768415385421523217339469795936568675518947449819999669496609522466588179518083689246267485720509928549829710306928299840637388467564166834115297198736536947826199487363371857776634644734543533508435497633486335941121499366217859802926696846643442442369750809446372509907478638194230542391108310811775159780056714871718824176930679175123577248868233156729797280977906498181163333202166742931910292390649589879680688933633353093420819021146930096041560017879308104543566434636488734830328983356764145988406278341347722164195755078724817574841608383333427801525769588541417215727868111779505239278827632826195753737478560996257375383908292943810959096174320619306389892157058148576603978157001481588552504168205677495069244695028505077761752498312450879003284871865872703849246890946679383928196852172199487140416571941244638250252472108466051304504164556826664795642519549611951233804998524608408296986636996700288716311878210958231917411215858270978735649064488158726230530447975353854948945570099594680355244429544216670699874816322464596293412358484082306340717878631184885796711978699089666470511702220153368680714068440856897786718803659636912455195207771944639114646460907106636498330675080102260467474921203630156597574352264168788832649253796128823467750674345505981520980705137074234783112744676866212979669412535563819744505004547388811537953509163463184977512544355749241885583511942161537879272214099782717435336778633038285147002009194507579127521014890359096086050133405714942271887835301516761082037121441003932591942512728342240522026662617474764710167779614831672270665324870704004177901124801330739028012881331569861110898670377302239733982870913559790861286755425904898919421258162964478288483608473906337027957047339474985969743036606200541544248443022529901301812667798633092531586217539846849968512360097135034735257936106889961567112603781622045661774856030528117274425916744868297966629893032257186198435027162047919516911701765153648425482742041686574587402999554256491263605801724189378736866458408719067893022816237761481240137448273877163082880011453885802183098804517262695546516907913263218644292303241110512039056411358971906408439310533463383326940774193325784507241562485767161755306941381906775440157551822965278474994081681231445922226608400968293898879906477648430799743928865054151172629819500815526161080181114762857870706563112829344183488409530921738660450925325151779280694932410206616137085047747950772135941613562972126314882624877400502861678926568631542621109783407310858443161698289974308949900525808612266647019101342384416920862170123817169974088582530124729813527788325477886742757697067448387194628449103977294887976646951631943281159174401335592310014830326580947589954244265792139609695764773346712561895151698461014531206801536438814843675318230549655823292552791149499945902256092754950731247914292120841125016677326371910556184284050603906614382450982990371681420323815549732792359893129845714459062555355144909041881356118524415055960320858716047871530919919743643144450978623703979374628158738414995884143308664015633824146065016394038053855432027806257105701164791843385314480623079386100979849179305618487827798747516815028910461553048918944063718369664704918153168004836597357574708172540601191468134989921882008827065484008680849440644826568782616115271829764819221486099553680106446604040464860411461974582227692056663478657335396711177344382012680933635093640842665247528450320631526213704206633804450886221011645100192404144385715678933568755710773833227783301827086563045247495676664720936537995521736307669769709029544000223138240127947368081247202112143523695939197132973759232992958440667043479139900842960424040294870056449980198870412831449329055828285420131756570493473848198139320573635505260264641908419392358099704729390850385575795526239326020271594884265841620027689393847095507528039614689881025242212140017709034224735226074903833184388615550411490107092733230191131314441876124104251119007007027739543858225528492551949774885785562425458837910024158383522288962450255352862570000599212692451518122786664929567635622015434909842461400131893559267504051592199646607750671934714375700956081284150955075573468599958508287228959448728331152074304030098927672313856441551043491977860359126191154666270934042063698854241027076063795537778665096781108781121329878844564145932454909963411213722851340837465829209254035071157342847008744313294800513322553133509335134765863117316725619890855176863301244244632550380669087737451738973987003514780989138077009635932151107385893232004472649294852946356994039110284873923971700848768932548010131540163875416223700629409564873885329847714008698462268647292394676729958912464910068059554508746306230377300406061457891472394704299467574842725900954363422870176257632584954076844004478949275341126544061734417420532664625889371655363071843236541968592124305504809366957570708417984574204345110149711523228306562406389963560116382071335249808601360794562746995187968373120986255559540689175001720406237491686476077862335178107480051942264509053360570010086823938353994671666189796362005614975653683499155568762188782251493623891734949996033433682667762455727257137061566403131017832624956694092745528779906309589560672468699972699809883267299011484502286553407181221445908326662444859434481666436663473408983289995458767032591954260624283116674027553681117249836495481191325421131455287227524196381708428861218781402721582366477755709283387032774961592379335223549196155758025724937382311585873288610823294699034270386401463327998832458128007248879446607243155774557767083452919570099498639311412759834225824748741372707103761140465557175871067457652629768485688354916308112577808660496639629962135942410198870955814107913386846001320904070995429424508317083618184933472339886141493633844352668894112889598306594198607828569615116615126674839321185952528875581500374726378324139471315247989961762419415513524507897414520278581742313616700682467905810886526376223119854307217573753600459734797121463183751154129966953183377595565914950896527572961182199604520465304786404519968298486014928674539501659219210809493449677290164796155138114874914594255741034828340961806376326418852938364147095011115446086436789303928793939619120976590643949942749851615793819130559360285976437108621651509865205316290624043916521645922736689395596685409744030452293457948452165603303159008980291288384089889817700590594668428627959534079929739993231629218011912908057416591567280145707985268741568459156615541901364464727363741332354076064389021690958703911234459539374001481555063074673791329588831887458406408912313345794010226506251031986258638559364940467436734617113191510437552175363187735823635365498823302444964831955674156838301879842871876296304081885518892424078482647461642604568816916421540473710988375858437684203523465292248705438183285122522416025158730372122722496164900459640800418289855691580912611423831223768911440106148713011184016409882061233485602551369544090540778227023615274730087162425551282891507088203122246982348150557323499418245616240938131520213901849873301076443092802680650698994487494611165455830247937499780926292166145749444287603984718616221104084937653983996312367123412042771147569996626039772452984585788814706713156280436298400009433778907773884750086270489594683080254231944081013595857642829973082827461560655762648564153550646078465760357745814135518164840604342109030366183768810837720175519196686916587073520539852638870037014521735953961366426471939951126346148968845643668498734699859185134604747374662419128387240121615885714303518656216113808991797469931565886440019853093027775590711566012536482368856689328038047122149264981766346786845623980482140024150387866351546724083712326745882669867754377868924126855548639264756751152905429998988971203400353229527999229496525913148180781297529111311025517174033696478584634657822122862274248521012466949059236181977675830725177571324946643309964587322638982428568459348685087260355294457407280547225001776077425452408606285207667204750004755407663862335276826591486663597063209508988559502819210709664599292917321521555550106484331716902765013837892483109382592755654523323805030224874501093282525829645959651729159665170539675104687820879371188286179255769301421445970253720373221725565302034446944141075037646588425706314152959470001609223923108235758046320103052380773318318821542707148318766285250176082390652537515287616644727020271214871345673865616825201188333938034791625595332471168643103365484140904053364022393429099172544281147981911702634885134741341507813555961970974172753356314907020130519227247325343773881298116728888959155289314887542628229945809429013588940484240677792203098720471581436109229474455422797095234227285062792523040061335340479767684801366950381227528298859772599460778595103775239859176886452760507684566382893773741398684290227299205567367918369741500107300978631186093193210295908858503426505270311780994598055622529311487901978902553493723179510950557398912140782556980755623859626514944752497336205162232460917190828217649769728255947749378822564956121103383877688093453842995840717677819908050175536082126084673803753718904069349049431479130886056330614809512152611845755341735793425424606211038912273501542605114176192269653537024463541561327909410294913296354658546019273696763250019168435489873882608943973290628967526612098530268639464903819941688524989050180911719972073281159628465291724666622511757529082919949669437106656029897112186666002364106882639509719890658127865010511701533525992447307077848568556737447635840225426451915350923086370974389662606813277086949129892056225454805194486686915759883851902057070635804656625779617723290444998342150961119840499668481817082343586677805183683631014655480667464216508537366384181661291555446193894458888965011252353911861810903052131230596160964874181883917710637220774799090927601237076780895267259308283467212686351715025811139707152672342573193185947508008206044422053885016418706478176537490730547310814872551337725843181912061475445479372266419768967575013691792291398592936296237640409184566740913835701231310874677453686468897115625541542717919005877874453961639873298483770846207791011780977344959706202841885084395786245678041295666284751719303647686763624550742740627437314241222536695864326766503917750478317193846025801651481016111452948517102723453095345299986414213907814903902611878288974223764399576614626667329948810298271241526481490936906511211583052500103618004187900077887137426224408083723967956423103391893311480603813452886292261534952731482436953589645285644684174970016970692383018369305772915046040438775973713765845122383246441555508067488858193216506616476025480194224557273957764414162783939030721089382618118426462745614935351857329413282967319446086166989041323524495260959423391880795695179044464276493908360533013732900021587100219979710453009625521951255763275505332160577126736663582319397106786076944882188931314844340363776876424444246373829766186020990061663160740489737627449442240793247032107357560024628294224350976844937729388914733048686767704930291775764059807816506609132588146093068989004714219884072964948479349614836640369533087228797541156797285784275776417768261871724242408204942684235750264955539657782239748586637890002914602435495562688811316482390850958779865146691192468538709953282152546861187860849731148491584763017090739953183285624633962968960167650899937351344280892107976992820445102958508997050883692562738541452874175687469440396463208864006074515233261209428350422709406258665753115872919672600732045683095263272702988376097660793019494302603006107722937014449461602783114820462077354827569886750218711820393919644707580463209189064863244109415291913965590184086993485947526509299520499765915775534503001518611934880502976317849837057950216758696285067652424450495439418842447192374291451335907553418918469359199907549410725848039131118889235251432656590996472948818352337325285506344636068504754804854634389148025941170561158602528771446943296568519876626617021307086070740589718931562650867773226006203270086248789771621133974977384973133036544521787208214405849638372845876935530732061230931128889030373271115391581010444671343673431437819295719648635561978814187463508635863971491928601515438748178891622824453969865928065487718568400806460536843071168214528784514070299170527786064098307333912029565137183324101406839423800474461108648590961710855685285738959430890108144437341215145784630288145777298719516238138740864575625668989049442351994165063905845981480915910908608778596005233213657254785998026647488094767205471976178225046718557737579057545349598344983545965773385374198970874363569917368352434787457515429639795418058265687253605260204561725977021244441742032285637744602835013524430407411007639185398295102688582541263722041480930272515691978547727284061755600130423391540295035934967191058024364262486266844760824052875673777761706594550558630563949151148542022966353666204215092944899185598822350296262576777203607954843444062775708693126725619528080724134214288811215824258818049141308227726157967910814319152481673454546415408016580060122747450254861581680145047273657812632079525240267126972670596008868230390018109447676951769850933667624920101565546037426435748164296585839317988878005460153465172017047859256512400878307025202114091809855319129395559860288054007862604825051394037272612002317733184970962465252064486966641191337239421314105746574157911910258583640108307707928497148577755161522984795823520264765573235918980182893635860402423471571450352215505361774240821983165545409966508245168814599077760067418557775198314352374690279506794520686079397931022912598612948253045811662901515138357949842580448045408747392920041728627168328185720941878228778858753006862028326999846640912494371432642285881397981882199702668863049166140624043733830085057196171498419197458273133915420868553942424484794238492836978526498837351397311033491455181125404046519305309744232642232600911658001325829515899126545549231600702287277579213224372032766648026515530000519303356866565066372244333678223538543966465008253190090463421129901952826372519517276218281415096092237053055283799101538593668777352730285222244576867797546163930192679273582933754732588893134203176158903340426777874954423795156058611727348819327292617605592815057637532405597171248084823694151822325199526122196160369540249048262664691943037104414950692335008518016364336151526174910349165877148338568472308311286939046737988216167094543972589333207471627099975391522643721469024181945584151295857396529806479766881684734658094125650109049509999457685841602949585110395595031331285974953211266328615613779261314248818654978197324786958723059808530228168876523650113942875893236902860549903404247100019625293552137754404374652295759878903216921638319745270093028857091328604578090155006569982121296091978302106409562775261831975450571401152164857772083818611477118106096459139898640211327959613569870389973240312932057485989679846199107897022257856595585849290612677034996982905861670699147386259075696456401126284355672196281687442601212805161727240756736191350462827126619606357965305822288177564118800461813843834310892801248147143537553501228464909532807243727853653460981294639705366231148481046088307382076956285117568378870117273661646683237769878942614351027299026093646385055157387366094636395360062717554238697575915171486609387899919177327762332253924925791842310868018811796045742955207740561223588525403561152633683109117898390501533322615601740016756935931590385658377215295922243284157102111094241451034756398350170790233367110902781619062556775062366142368310033521834761228058704204823146532343034160449851444595637684991009815535718053899705201703080923095392551216203222150691210622644897683747684947235239215403534856101377382522649514953863090281423254064063667775319610286394775525022160417637269071780349478576743868696119059883026632234811221323274439404212222606749929889977736646538012833537960288449185912986081021413952669709073030192220529879874717124441653247788446786739337741836083578039449231431558147475090672050396991290648527308998700622434788602233437026606325241675318533361439261688349624008832056244837353793924644566506498574960471563204346696879769045259453705718160485137785740389421320993424604139133488482661170881210977185152156123233428143797549711292443260183123946998732981487319448600295968596660936506720965128777698345765022187356659833127584746383472815954734067332408316691327687884465746992176622578462446043219435449871852708366081584275138108012803725813251781911437114417313802578897009416987516620592827649021528376608922204532773395629395683281915511280520149288515635625206191277530818780707508647189181165916896180585789339846438888128867281391452640353634356910691692489157689964671352122024433287676706619244463979468125174842583175991994223126935227702019664375704250538895617002032308676851998611291211531441083516051313072666665186190682469563755873257556115586987270743850115960180561499085487345190391258519025212257203715813753252519948174352459728931864455047803984659528773777887109990080067764412765939906709150874195613582439909079954038745331822512799659817394421406737090490036865190206971533539870227756673357184647924828520654649573003148755093210880617877532311512574705989906924641513328046527905089151181766525025648307866365848685782977472592457198927473739856086479232337255242067711837467047564819561227798859382757581656976176862627496725291925419920367503908813906283349649829873640232562939986984584359609360483700780969458567611350179940176863776321212028181524580033013913908695520695682640603767216142425388350930859134377016685605330083092170250436576435468488520744310705438572990387197158299087958909789457888149373757817202374837808852809475527936180540187268482859552893314112576867521002116308323166736460563219133277403147953575080822255920094818833272211352958316016635573240420179602826383844241616745613714460062638262979582391661194637255961299061101941714080978555327986010713937181276621904529209802998911722367445891418291890532089100783145369314922935491709372561922592375351421688813481495283779781062980739203673612869469372777875125108666892168547960401189398995612152590442945895941256612101386351054882872214991505237303942016884659627172553333028828563922238986094542362063047242636121224651154811032538992354378402701721624362356193161146806416022403375962178913754306639028016303462405783963416722551991430122059003076600976389725633466704490605647312445248864130479969925182455182033410701155141456348491051171618242478601667907372474033377937135015231618638253107343875571624542659671530509366432725911226460733293182835105970043781019875646445587625664132522458352944905419072951865941054946077702234911709008891220277159169228850650538554117633510163971584168444316278429706762659134720993086562617476316062194911592663700467843390458025106924407008303587011696458720636043431580093909058651787897207851434509483866649353103671474892157958175095247236487790774123684038421061453680281232906768275813002087717755790245363859169221436664494985671020236924426963596611512747700886436147562220487819334536918459548239584605940560288624226920340995847339907292087732446329096816590405340264348926116136448257641758088717271717888099918657041700346342361621577783095862944895387879960014696242741320013435571186631697973801913478926462598263717504896101570111277130270720817004387096568088551944682500207657466141763081621999977399157157958292065561797290756321273386868145200520327730382910066184805032969116070832064016737163178044350083655286110570258981733460237872158447266070538100420317113152692267545696196040265217873870628801849283396252631562840560696148764271537372341323413638787472182986360267765691031069313699506127309048390593757839902872166963644656090859415655499188641160127414634042437158186710819941169919084282402838532173317655735424186761563858141466696608551041962244113955752751935451544857586797485051507819832573402292513051774949850018416371196439804996001996677231302053568173262721612205087651073664878963700610785951218127658312252141742122642619148186409780138805186688492260193088870434183933015191908417492290972465498025855240357199571256163851204960369227604930974366148779688188083553063965263775406580736911690491910976675788396195952798193908326235346951208016971454634033063026044427148028338207850119075003345005262679101886573334693715098569171044821990075928514789773351847445597992026841693009006666800360830847351588663216688031471070347241604497185097896645342684165630892545628106711918187502607486823085759812955282414092445077010354640727328747797928640728090807202551133799436656927067433974375583380453758861724092988167559381179904034814615166781571206448504239339031951283737857375528874719525824061937687307979850574493872795701770540243737337253828728735086790307846547126534050860119069098992574039427087611334550935906288635724490995753175717440410559987239762379402155859286252029620843040595061377101547344298183214557023373353984516923165277315690181998798521356378611203311416637026925740935341813051553377043097972926886018878248764073885771966196709729888410297738312253290097043907264306488196526596422439638443613333897797694852136662994424644896869412564037864272361422396240056867472253637868239501547177967706898456817972809449785207124985411722265327132593604144241895390044092301745864727883465507990932548944694128759338561554958725890961423320950530999277787231230166849112239547460461175825872941310064110858134245980353585819336763654256235744457481469141112876706346747068168893779359388373889912767718427914015580380224978413566990567637444516702024320915375458986838288843258278918798836415631314744074846311656356096996045593047097796627634131291212926041112588412390532783418213615233351071179134199448711716940363087825002434262613022346851351558034340227805417011868664639782824373709640746598071905384117930390490052226013012215790393127981649614366448712738825430349855761898983803048718313988687952047959194895350822787593357722117619959713459189021527444666343400957945024794065052410127117366425127249482788056044739593484434927595132819855107518831431681025493238652353118897054874378706280699562836452844825765797236319407769560299230403427325625696722059143434850994513097227670433090755836587055337971543642000141746072418848212803058989560781158697799168444269180951280065460650755251716385933360386849149137986561311077256281323950749885876068180179147709252380689816920374304964119548566912702853194485333224020082840712834345729269123854156771671664521581543622657115358671661990429406480004070047262347016724452486336689916977666720125564459902560614975321811682882507504294277449032346109429980481569446416859791826869656229781037827613262964184482271420858632750290932206271035887089323836745179914878219083088775544420191214518587310539362710746289604347473007931932027575323876769379176882469399805046582844434040690603799591534129572109517186258695411001208628297991758352161796424112046577527182316104986363057942473696348602667159421973951730501810442988252507719262313947528003914448731687458644661455638075047633356214309086793190837744521487399674265862458839687680000087058096611920012771967103317822111661810048008237563020956711518480474198765990350469679501218035874626916635829893098503112466512277761382353864016190079409975281490363175003753994170569363537220415022851764019016874309596330320508045046660115545996282304984946448393156719116330600492593027812819062732483179810007719234098637647444668049112182393277214290769370983909111712481904734540155006749474588176923556404576209074230877581708070662027569097012410162892438658863194639958769195103712057537836429808547284891648802489016038032981406906751331400849924092039938924642699386681142478301223420253545252640662252668930171601140547153143655337464891772493674166522583120107004312545056128874713960750691122162851972460631968717251866158742551867573915335712043644242500932597684697068430203776376847729399613065338423889759181356283328278936604189469194020276928160440520105732899156235487287699661620760786706612058964767908369367985687042712816248268532096734675553280162235999667311169579567273971454484302096901061979845772385708502494532342147691538786717118323195151657112003191797599567825096600202921503097909696520047096896479628302790056248199930410110803207557061524312472901055250362468912562867215641289367979523020799708421542533863154212664210136913838744802477146935503937891344354222896249106609190377131635883584470601991952046649542525941472526218335481775831726958394596932364332145160892068819921930223113947624507972970925434582981069942897996944798025925117732132307094399440833951048228632027694582095720635797823685261301151516921498972872724928846733830884834670028337316013858725192188864211283331820717629024449975461829846262381203176266110486518233941575827247074422103320198908616352561854330590787437952446763252966946159897844080033600975179437648343291032651269142090784597345471086128327174658056834960989037892168906212468418967417788453015758505464857721843760873791939106276220442252190568578281646037159022182616406992109988778773672022394012541336955737668154683386385702472572961925561905578391707078980369759837078269541568379416059468418115243852363437993826888930499991739601982658569494671673776180665937833104639925094312330546427048648877592549938131969662988942253202427361110225978418277163633484651400254922435631292784129355583484097475030657196553009869996333469896879089642622943250571374949093779355562866060955533855964186175412024621952329805247165730380102561914807496877990840432637269825559161971389419379042540247007441700050076991974610114883420290596627443168671956207332109748884071682301287672480614793257960083682652927357768709292151373930057331669179763789701803619854193943335268043241776868084542763605928007697910070412294292274881777572903375936061517302357133282676868502294326375078347020337031170305635717863595031911168009609639048427294195758928833098062693591226197536986520959106860583935686821889893492892996431798242098978071652746568449639378730419344221990532190842654330700301894140059150054879152101878645703987087665844602069662244970615942954086925852114500319354779628843096950665613260337872546640968439509724697081650049404284080141512543971860709488265888578968840380012719210581597225587626345707397706203699621055327115859316062687464207248291396844391686491522527321554560510227849825956341748305714782144152973055285034439406686372079457966415038348359393627033625913800921996825953197623368230193791027579202373661210712414726712906290781999044263381275602872125908912790919888849530281111713920807113315165297118009329152909116445717028802650754536478395969583746180728021319381853630928078003590397949197947363518356898002844665247522779013265527917072175068459917920569850607332441600527534351293105689825730515586156883208609428596068066225673964670656554940910970144947905106021903453691494652212501736992009302171235314709331908027839522109857641731996369422232842067103752280907117186056537854670451868750729839199438183499585112948273750342488733858142478320486377824414007467064878601227528475142769352508157900456109803210484937585098369505664778038017615136286716243192804628007002513570020990993209992923953829754286510829677736606094894866617461531112926847908520851618542490079119263030158787842094344904994459922504538205054762636556788862532865445687088631267619407892573739694471201159136275285479465190829686521840967428798607283156229164448230939808053046093459615818627975308312417912310845002807085443792837713918697296482108755630704910227666180089752475251443821040951137482481307863610472793771499400104271620413604707037650650237134895941826270111725971471361857355168565798346883091805959802430279244840013513445560885038448701623445144226611943054454424132553197149048661963640578263007103143404850276039336101390914803951474289400782547667526799063913709899412531165255767271976600612984814310951080845460715273072219317626852633357902614278318673620709432618028434410324833951838399274401399816487138067388087357959783658211355729696333776088697830187840685528137059419850919454778745239477118758643143784829289725628911944588494755922809141846871244151614319304529476472325481306775076319839235785787151594333326514240101791313088151532662095009592909904622307347845407636617017324748316755517997200623286970069367647259443046089676854619690119878916264219608378636475514912045747391852927464815910266596166207929033546486234354696258054833468253162851041437707024482949252201697906193027931450138131731457892702982818150024053514595249652212724769261632944635949061935174082524770128135300531613937718055949716895690531722977001599482947837446344364078357170737851526035443042188413238122521577924753208956365900571076862742340470691219756658828532493336605464033371683540578103956007039951730982369569796738656072393289485909276774059047119073906596840791749164401705300767331316754684844471182878728831669565439119144142420181126801287698454593477692228159457082136025288003972558633580117425021741065559480281463895381011520376928145557153838028833553764904826662765771076553821715101116924219404668846342232088529927492308329644454736015331868970036769438146832496212404723399335173981924303479069879851043879104541148620862043610551010328845700047426059055996600794498396934590712847574890535759496105671368765413854451211701403396894317636581293076941534746784458519526200096505235175028819817515352802074454062724646478126348380994296699314356828985137882018311670434744812609610870592379927632266064933174639938487272020349924257645339994218654125066497666509933990987066915114193994860400627662465908002945048254100073172831738788178247342782014017601919620254427929053210522104989584920932202138691505085905323162366279170826954690592194470950821179622441305671237484318964827974014906549356303312513523637587972477188487630238106284140831620467116078596857169014420894864896003601630231688590887208568527027939716669523370829427725318524646558994399569760966758665094629907285466036479437675293458079340150100010923796311871123048544704493176238541583376992045130359749332159010118022227741681705659034831928875084846243897624042673571530024379356203075733227422750080603248783936475626334775748902036119432120614870504727663783609402084754598587791115508726524489455741143689585950344911228964585450979195682768913372763706860358910232259753169618492683510479045435076566462516370199966623384695285582321595699725656869281117638036518191293121847213871760820876726496257723082807056942981910960582769678787848489051662384428545500413331546625875025655476332954756567448039864434435684153373708920250923844056249950956952392890837210393183754588467956461635509360717418918485011127973232993792385367030207541512788602327902027284103339237687461085997892853990444207485915143689581153499973881894919932874690458502933685763981137714282274297661233809965387933240203626717173494698392928310459903916786249493508199858614820631493169901086059344829343437149051103904885961315323485757149450417029760747415040471588087556461057378875180872923558884071484580591470926595826263469849318220971891636868803232472139558648771100663734334246564935288526121692646323426922272133091120934405109999254976341329885111295955335485718020201737496550144457278178779661267656360127141464716921115115380144766004641051187372743434222118068839225256127768978136073335013477219845030571862471340470614939739484207891455434094289845005838190304089950295147077433972070999534254019643862292930595141733004201821155816413445044698578606621038706539017973034266277358347561748266148912350287663245645198347272217855627829688400835602147934252780882011147822617978433559554510653893839112216716971350153735423830338891909847935350088823019391668921936435384401527748278786517089365238566102828560445681599822050145083764070839122947852622609560902196709987064770451346159908023299049305878468409582601449066803587501823997415158779965697872471511156698255879170641459166040726490037345488931977177036436305204221621793149223366323300661340905144158327818499205897662788376865489883138999705121154258613545309104848424177274515009764510054952649173855197964095069793006867375590993290002390977174446513229322846816358215925430465488554840999340628602617441942698108266482311082520186720624116258335271848937476967947997147742512008534770903935960577123658813249089162056816888863452732398928004273428589090410473822365732493204815065839666215350795871478462714051849659104920222918623104372902876255894137774060097647103210056908029650719023168856910180711248722237563853641864901291273130012442994248677239071906633754085520410834976624630538000336440689826305151469461019244358020503167587449638063935083174242988429494627740715675113255880622425289943989981912955807173218331128687160341776450882009821790541680654833224138909523085798757294507494448801804902803853670659519934752840227052749609872885132912679128965624856066299674950017555126107397407508693236596260433066744632040590768997996147139044756849041987473660561585991139930789277258006899995701840786721144708074716757507753596793678720455364010199010465794175016876593014992897984206183481110417195961635916552095358723964534890771393322391584749775359002185364937635624324970806891591999162121628235261385399045857012066556653333751613964460466299300436578708873195220586511832309651060793713088285363685577920506186238261280384327975958064560131338870900628485698598236116027112685811190334598039349046206240299295384651815434713148714795209143252870434139068343424659456272444541897978541468059161601051958820550981480510668261016450754226794461036755778512666000239695759933496727949210144429550190684792429497639149502798512750789563646284431517234872311320179317736496212741013275479301803575824308352056799581511392524950784725271568945139061821971887841913751656989990394020266578728796455862482876652011147201515424082840088597805717826549129436144728524614631296742202525414449916080699277862749600064400146498547813692164756892370551480252611589091030263364102742666280049828379372805344272223496940207457266119720405370663643159763454780832400518265509673285153681980421138807588016215453306794581573919663820899181887884910952498480201120688652465474634472499582193701952161382854203933387372756534639277757899829981958229330717123215116179330691847055927901095180379277927712783643744391186740378042073281850351150621103426872586568680050010924185413083219916693247935126433739561901289144060391467295600545093037046043743241251264624763923102099273562128400994254832310666371857035909400305051652220392553255956079543637973785468924662363669960780523358858988951189037116238496828945471903942859961012591932891527482138728971924785063913517555950389413554104186046125717899054901775755106068964007892106746294337031895076337429453427180479350080953016580394611892241251897308419868841821489296737486476018510852396062661042866614816153960857164547871986190430193102318279875470679797735370590247957667838365552302034673959088937826812789459283541854923514358270108019631237339593113867135327404135816889261889519505407457842452440469149444300711878473221165588390733330192886564380813968769323335069716287913214973933714119211793264095255104247307242928036974450438744200751382681135803493863776221381801322937983331441719343365358585059647639231324340310912707300867019853014220913438677620250022669191145700728384887299431579858898290443755063410709493374312526400209568672440812043148210240989364163822831105512236088629715910455193202637848489007624741062585477839619642912474393565109700794361246281100311767418708368107465965942708047160149733525865210523120676332907097658092595244189076440121396416741782408454104205309408450458005184863512964458980668568859060737193974446743194081194362834590726066372305141250329312322728786807492120978274282088000700413350849572111187589705155592276239834888188681631628613902651376524659326485050602262801152713120895266954395595899407847501108367887666502658604387752873177647346859504871396072319853622494776432882074328506867935351314367023554842781537965280096333275430404500605973228472078976684341057393187801954185426742507743861473809224712644331479947142030788850109082239088222461057531178250000841943920265068778329406241657239177345919911226619611441375037651110080717357200746557823089032850309640119461256582782292338812221254739677390853479120593585333911532838796383102865731583246228795062159135920999196557443402103129076034436196175986792048963660189944080528003963618081620907374742281754486727128379040147173224651452988036227086365911475795122487733365385240114871159058563168434021413947529259506215921869824008573539599001192852324481528862026600309360321340148985986795585544128420647028963459977845393807778291545288007186990937455159481302849585137033672258455012441393166496531176182755430562879206110612500248587022194142133841235037240756839347273936488582166245853738463403280710002355107286840311785416169710389087204014192137092156577499541337051436827522298171825749760803693978311926205694609952627822635797128068425061573591962898168314578941249946996825353079104923601755483796186998944591984233214078480902972455265380274372499243023385571467675619478271196502688652921439572094425596315863960765504796471530101606381585470459562283462985949249988093509534360793263941024370597099800259447130472883874812424400331399130558522600703108200555444813432017558569928721545258537986052166415915733997506834845323663731762813148731877418628857068796049027522793723769179593723403236444406315025326065722556289270032841356764802294336791917751073996043930008790485063020785154536706971761328594843710081769369802716238769033384951577735705453454514836709751067733780386010941206378199642433616150173960943486004147872937883174124646885802631152441388441159257966242623315491835419112046027864393226678011514893255531265633233163913991202639879907572360606498925011910008256090720508117500502795645950494574355164853156457748885026048469670897760189135635030607652996279939291867999687300924688816838969665907075484049712122238863723641846647462624864643740497197582508991085764645802585115943784325406342987022342467636179412505246882291853136263029857655311158715957217174024516352071147965960295844828506742499574250453262123125842197184953436027230497345452095253087170613635935176385933053687165604848735038649062862633478797605754828817303321069271743585828996378316235978762934996147871808588178042911019374231974277952144828060691551831405669695276882518662778286210568632740849993512381816972004054094938424566343924996277599588472776968016045588945628843861833329854600692998138570214648908791840465034277338322003618893423273703042795945403635659399230197235156510909755271191142807743293643238306053478467418982415366134075979664401898658852790135649382575669164405197360768672950175368946994024502081311188285202271177376006119002749348553521014740734757201177294713904988605315330768239433948396237140640062285702458264406507942829896307753027148143166940368224695292149343770817140736813432772057318485997889084205355853862644369103223233685805166917458076862638811304030203091556572849030723206394249960513796165627247138133009080017912492834099870957137261725886649573461959779359033371913401302313049452398509614518928749613075631485044350846701138378315305552361351562130332453872037846343023381056516865685131840734106054788306269504680900755874707629830341169805177451306573168703736344853699418034357118166783774170198716551167672816776352476960078205291037538648180885934916935698500113831531905456315819379413996223236709729993238116123887221880533932744808035774975457804609787075544892290720018043093671112757686882721862692318053469954439564682682669410473059279756170286773428112161855364282247690153311648813161076484841282561635304898115453747287731148620863039675688942588139268097204438577608200291640497372961072939629623323478934978253987771468552220489257015828526168807074469750658362879154777755085675767166581000296531248454672537807872817399935429832797612038324192537869300840732938027218786750709624616440940416354593091486560386212556996358025858730640585794912496604451876495472349351481352788182928368540926558577270183629945264349388154762050996227125398399766987783790667866921458001113307571190183760920440661219506443370576027577869594791024731857407858152472565592254582676907683213809091590604939937137640122094638795875686806184420908485133447127422149913859511489670541142312885362848927702562440055619254346171329158951867332412281965046791303687449177253182390958466133614521929246500984376837222745941898905074362554274695585523902471272327159002267800952866100780597394246905796152736127447928470708510239146620683913109009288313711962091332449315826870973629493503588732290679251181499354682515309872154506055319163437738067065360985794341105678491351904421636110742743816885123604046996187708127363841302949418091730222474356856793318426684633731963703732327222198699395477146352064605779779643668543110602823810739088841269938982481426325210623830802197742217396708449678875307488737934486060913861347756574349943276405389309654320695393151404147239145778907961198129384204061604203279383105682090350939539426027518573435984545112729196330891954529420752060487379861391177975098511112180028570982389882193239119171397734552596963729750047266680929259937475877268006862266361918287273893570629310429022260035001953731317540422930166746866855535912411044059392757799809989807276195134577093333089643621229382075679440784516763040539998725703370752847135290754843353264879583146453466240177716715223880247889668573071338360085924818513657260208536412927704090009029523709881070337369941079767447169604031972043921217372722072963048085409450271219212720021697737327478310702175391173900546453934846157153300404394420860837521829283416313640791709415101042515881895483299718442668668101532087633605857765197229164304250164959600707886830020277726108782983755300207218707085119875978990717539440409450686075485762776362969465498095575987611449431394032847511208640445100229831032252000902605969254878204436006733057615815003747634518496434036610480136716003639713135896634943727818141452798019588557235144069371210939067328567442179378568211173692914748377114407708664367362947658721454506029198687803870007229892955825547966919604642185081248048410799450780815179457643360486613002963382675467471364785978928393420892304603528682393426928730590925492091758448195371335931798735077142763569788305516388776157036302037443010676558776807050507747019867233234712290461441155429167777147833143445609491961502961685573612921963249409743628307391309527982085160364084369363244480671283846598161649504775838807801760881228278266024677272578123038213920650749838727159811613489307874669458741108375624923527560559491032088299100506268388239633001304218239816458177538844195162878257930619258041978376390238316043538871821436965913178736462652992223172653420007434226290165378807196293899009360974557706712860616523425678789768139038217048482300543919393956140581788868830123023143048591024216033066103795454865915220757740554061130945356348122271721124193873287662431984098805493856138170225209570445253811819214291478525406295884430779501668450928290693802038002267704770988140838540923066145142989416056364525843060958480285673866948106292070282804706812148740397277670757755511514227786325758942471855998011905632436403858528198487189960164893115908393412094616264900378278637149016572832951139653765232416861082823070671018986223525703669291606885311167283840538467101728937634808959175418055418803038841762820470281685123273198404362972016110013266032154755855667050024046180323337245514253340854784755224693428950305882796634613401679075029592941993610761688045673047870486845090791519591824957236102156899324869095776506941271653769514481170988263289313788356413546080844841186469565284488432570032591220844495051509064571567008826642168330721510810177835068494776281698821114417527449197240777192140647888850827368020676300977917879640124175896218025165701032926601540699297501823369183000341364070405412239280118957521862824257393268368095715584640185128080536609619384769369974652098591908458312155198536918874473849356269204842927610343935414679788883832038010682945543507635000619485207752198787530441721013287147703847568630465440943705433155334906355090445401724341214481934090310985810540368837920766777274289324288967322785359444086203976992207746772512264925739141299266171678564056926841507751587523719875274264451477338644640296069236000842106227158779704924402182902273270364039249536610091527944686069687667135685209565824772064469876937421346235339259456007001808424536412493555334550353115081301887892716381682903923673157278969501539326147399873249461872982407765122447399643139539871192460099507832054943560281268126604235098064810700290713187917397520587129798869179539737143278272867274908247763979026526638126716605862440453498110595731960433640394709808771920931608318850158034454591238968045352617813002668142457199776104848942941666171283387057373226418281491733561642364344757319311786169145793921309766121793349496173859650751908945272939811086601796199044765375771937686340696657666613838837223017829738324438214266618620749224746818644278495222638108438000262457043985787057093629059531415548477212792524743173155243530134069211120273684257248668025515634078180401255874703619815360813452504438448036257786190071209976132039678207958384187862277954521858044777254878639604439524722488713834392774307787164604905543585574130171766448270661994029212778168640346719340306330512471913148351990392244851845034976672575440736266412134028412324471876285555898654884531104317350395891099511684005607318565052726006890284337774143771228480356222699058111756458558446890653848340537861776215476689565221590060657176760255455904846395189849577476549452376329446015860682601727154721888468091365795577811322139830660613419723490173467655815832116485597971593091292644428686478147096631435640046759884651327076384918406873257807018291507662033574662494657118614567871320194202582948239762260829493528720473657270108780381671574692977957929358780151677995022172756815003590201061052569825455168411797646862169611720496433442678100749165495888282092088990834649758813087356454623724548588011006096167067297459019906596062572154576156650744705837205584804170771672298965503780735089720865393164100103091785328080458568150670756111621981283398571581485714462964309094054012202977170808404440575254127493497139223096834036168015325566319405422007217062968736844200092477124762475564148490718637132652647796988487827628330428267455965477305033556715851825843044557056363475627682806823522696487293259829169152371549151397983870417664754415645848674912789918569002250990941393155124087781943092810547641949757506030372434613554825323845143212798699348020657851303359092986034492066759076914333425286384669886000908794835995407948322448234898570930498203975644859056733280103446646174945414077686235235452027151652058398475794632165246728031023598114596948573511416651075101845395739514321397218843913819112024616030687623695134555696760230436587975104668473174991669907353290631160951731369914583973426871445838925262605711358072125695308983263120738175579035152729372964552009638822671124475540163681417683360987151336980095642018979865659483924686163639876503603938994975477929720669205462805001372329567313691768840373074422736278778370800942689341014951697023982259027277888821412583733075653004520110399401840242354157899172608288950930496031045063578414664232257615015908817427366410735468783487649286487687109367842701463934283027659582596419110561680322225691524086950119468174352911497108000874448330620534197203159332740594322243013927801298259314882191202124204563495160312778561743185344872671541417377818867446070444192566791256578756240217307067914897653053941749071730418312155963147377097464818274010212910467909069173896025823960136061872595805925899856823806946171698580098625873600508826566812517239543310094952203414918984010675430553975100689161665197732752714963571097074619699212588667881010727632196486288588190805598341201711506644408391741605766419996262441029709930232002201491088864242336268243767430118933724661417839109521175550322288963738105093333656245075569657594510295097786968816461617962253038370330270734178567001107018655273963032593197605342067918731782492971170425715781648712865251706268275694102391430479431329015292464357819110955048985134262580369094957324148300488598988595427921675835981732575432882331752898628936698879906566066723570833843290750788093276061154065975451198357591400689834140446971770718563512896766453406139060883090715422880625675007356537968927316141236124984487133150905198649950251935861790026439420069252246787555774363352247310264448318853819220376087797624558586154258985544102098695919655050393703428652581841015770329028706349956993646316723441526449959740791027600230738872924479431100557389127818553629198991243888193174830892102496876388073404939837555910690093488856898211159371875017179907803399809048159850301060774920793590363117715470765617675895867628534341865068206621408200766342074831577522594822122616057402813975492454687899680243560829255412807168496918709207994670670849285765238610917799070482110582608530252593908006874962369737189743264821344688483654633792576421768263401794799923004297612860499602920818516512749352835757892012003648335419628146318746350445541067192467391544761574235433396222153538515205441852429234230568199197718668244994331225722685942835469367515259095654018293063792909257573752845418472429686710282734360904964933439182995349787900984935226496476346080450065541464624198714821274890549296716991572155541762241484592746424958560752510321045294539801414066118040683432186174339820458115309649512026730041905132612448437401649979385656803404162808890362737033951041529956366761859588893719495782693571359475068785505756877201997795969124803679130720273822761731283714920094133439404530009645917087464291014451778211354192957718849900725219676327155085099448061763587118600320325120865373730743752978475854842242860431501364390552393552214590362621945674407520016859757200937202226891554553699676046457458283146826337917180241484653283571413772528903369003603325154915594750294927601633647058655403141970040022266021873422338320992514195737121670968407843089602980811869974452466092688487130985344902561120408368113885611771875315947637781289360017722428330893362130292870875361373038585943470909036362162226754308957478600667326553812939209671044927417072124452772600429526532985095272043426533235991648197043670786561512391307603045936469259020484794865753619547177513589032956455141611937990372906410005667069156465636403904497150635282863929451140780737291138668130711325938324995227033643326509686294018381465192930060499164819188874733309175545851496897241640520062920377873870721756361330438463448447003336927117056519388511099383600143465798860805888416229000605004161051241810200545736274511952069969369683984742746517713519884494675059664308561968590379230248986987668685490160865281007604991504531554027151431334378753065375157683205522855716269090355636250805316084789243181973720437195618423932489886089796773572671423248905820041007266413240969938450092196140811369009023564811379663050933399817071320510603312852261539659470275914979435690693854549829707090841593686006800653917142216439628512893751458556721800107303994561146263379539085885123981920164719641192762050953874537644702396620719801739693876415160732536630322689903995568661645309466679656325953196738506613171877881767566049681908611937531597208510098207519694924525186856905406420724211846279713855438518838028984671828929246928994004498150241939935482443493350360967141170919245436056164830628383025302443961769734590931310153848573217323951135939113831652329803021379588829479785765980433983340909479750079724797460699758999408700893427373150489306337917497128494174508805852692326363977819923668346809784932059010732559837685533377426564434405993492444977158238235843383011226431238371430856895366349614766680423861902032645136569999444601869826318971531231557023537771500852769425913659497725608971236319908830356973946293079267989137825616831119541931293553090319564506333770447538488839470223212971745368596459113265961777451301552487176211047785316916884354957763909221582558911587970041963599968549539501442987898584916730575860370218099344207241733468602266249792016907592886612830137135096014950703431187112694893564305894627880690650946007928303901520254835451698407994602365720389397391172420517397944495635523374782428398351229714796376856341935875850238837807592792695357974007997704478705005365952220713445542285379004086756738948468035096584466635765665767891570695779608690834027913579472042475305516204989875804678693436545485523168036122985113571380488631613019572061272527646129299366206848431498747214941893360319261292442106024856441852279224787977305273469660289760810604230263916469527430623525744724923547337089700904651774996569989671021351683006870104940646523595033038433726564066526076015383164410431102011104550529014170645534339637584676835065949450259865991620751591130294524580829372080860165516401455680761093107409207889463351316987090155213815300563230312067284348947247372289570340256398669076653109543951795527980467377178369133038814282153704334988398660127163933776938168620935751113626511741048659790001222712383988979497315707686876887664812883162701525266022656435459790672553928169376381334529522644104779850835208568777112888617299657452594403735021300971013227884992683679625936024943300496300362518147403588735941356634303062442750767692352588329581219994514693301668609558203397748875394852141678367187190852129260683992165113779203312188617392347973469350884632604667502060804294658032912919265836074740729638328205081752386762408673565425654782236632508783845880532565836680611208053601601452802096015971792372781263716139100836600384650001232073728277819348923789251156151699685375731553854062836261240380702144777860634728490099096403977536108852852253973856023336455491658408265269677814983251499956446518418514046211357936230021647222867669195486019245126968102429236002287200329919883953797658532353758303231636545243018563984855360283281033372746526039609412935475257372854439812270547224758121926322042323121309089864571098549970434708668300936625090588697340971166357809768512360046059755849050334642822204776241321025605372038329373167466074629635806387147673956303466400196932682734281978813262543107613841407074237450781158848675337584966471824727192105843757533914438485319434749026037406187599659661769524673503995593112483358911324995508324298416848388033419729598789689950286376886804187382898083749122231074144543855163463232112089452713085799073456175928280853340923703670698349675977302258998295293929527378939281235125668542785408102209094807095266297046102288740707762640713255167881962454434078085036630149511723996044221558355813632091820379837603435773384418393344032452776593366303379972094145827492856631037577446644217815275892094307619507232059470750479297654239198680759699283626493924111551883669319217973629597215029190903019971376224849685611874382092231180631510854880312334365414164059097260820854717376298988188064961058172493491548872525175636819461919411197177105117385966783986224076038474833172956865616613612295139323710710357776259046728128710584143401426062207340249749566167607168359843041389968617284027478490898124620887486658069973998535198108684007612061213292483852372575096173096808143299164985943806333775751397334402954377281047920451887345142277595184031299764662570102176579908514214459187442078220326648595145201191786440099345745484498624920630595688854113479771800677452790742157765786581927664023407002183970026128766145234440274543550494524986861795331996912967808204718194802986207774762005348374028739532499535938031168733471729375758061756768851103935986446191726916821015998086859068662198711462512800855635854890646448538764816373164736167489593509787257816987814812980094000159654083855384820796869024649858119909378042907847432907727875664438413602884734346514847472446253820756976174002924390522596236402100800316087878373123739701285015211583901914765253497177648840723675379065378704046206559678906981931605403979485269747272379468951227526492583458662582164837014827766217611202376513499555172045380320583794730852512422113946716318378136604042080192849747402007129361246626308611932230727377319897824742303145592252742621189310538090188275843504547650628177929404012054399085707139221790805421778732923776220958279081820756514089779221528904757325892745444448379444919790527326374627020457041808186270814087849545388177773002590921491562065010655607525220870787146213994984295736610512622816087532010218913012976370543162783440396528830939547338699689700239857391769998027551680898451672768693295038480553958701255773059534532222989569639819951203932118322750869891800819729905762582196641787135035335943906577178444420390355699722019184970837424554065379367344633540681919300052409041106855533937269935435957106275630121148182872184997068194912131266484454087397446283416161367157180223350155902484214284876512843020176780174210352764750838326656053552434964249886198207726470993637573521254480734422668709255939197512923967402966543890452372156532881602586640778311025574087215759007471328354579473437785373028852542663911004806386263634702901128149981635189977843420503678847442497898992570119032503279211940216610275120305996474661786981374193987457029258613341693691836574674626405134809883955292994074818400099706858338390658381071162369979230933262064576758461617381103571822885523700196834451645273011809126755207511704955671158574409503367969678782293879926859073178276639184879902045445651136908866704485066107247572765326405622306276947035016366681446990963910308375651785657123117356789645449466284304925075303796253887964033489344975799400797042241314161529756089206759498659748901877864715041367416793208551423477905227081872733950897083744712851344946232244844636102779318105134585978398621219555130262854818787422722762862778701659232459061609347684695228294620909587232025327550629838591723262271660742415282639740943435132471268743076432852848606170669519914226100695603173309113649616602589323476042759300612830452258681500228313055967088915922249855252518766502916396201771087384349390976407090515219679509758364990024394698993694795599104980756288879378807615363403940213020558398808732565389929732436902528563724928815073159857362551758397659361481877393405749035652706398382215017440984826569509938662156968095755110738273424660794086935674301856302404443897977875285958255572456393588574737842531553921657466880111677501641858848067608767571803691576077327819685767017275211172188670710506256421060881129350195687567428999390700847973925715337011828514217847484174022738044335029627147675416539455905774849599515963092251915991536695823760816792399010055342044507136622311818501469952278710698053772368937300987366994586926830915638684946386738522057726823310277581070770083685425312579583902702275223349082788793136848771329831824716254348637221726476570230060412168060952255050439311957397636178896759241226794416567307525911956968752992764817581867912656990351519201959388334585861163602017166297810991596239914647348726054090274227305689143200373937953409869316427861936021148227716377843958133084568373998482122322681302880097277699747030118397065526738462432280627674934739012715501175232235341661611337929230628059189125016980157155229597176645639402491366980649647620590604531686498058669875490762939884071847084353146296776370636215842440542993162468484604940961659177714994774836681016388826341357101279823912321098421112469871437966105308838706758212892996540065701917004634220663820648136201033017017980137282377033426909576804030687903381729154053883463410694735514083662163876655172653535950504225833354772241269345139703431123343176052404420669829180126546272480479620004399789914747715406935257421415810293156297080349938595227467236647850950610520051951241861624483948360590364752725437967888902240554409047963418472264995139603741833978488262008965543542627212356858163664193815743567483389529177765944731665185819640287119029269679174737923031049386167584596312365390591417748504095349560632779625697047668029442345342879891309346673054656208653289261415779895830366878432093134197288982422311793155974780754585750320189025282632323162602312538902773643163677597715208934760493658051682494920895854787255903825960917918409651582717023502859579453423042979240667099740755124982514043830755230146632875178023547694350556122072943617807598999730066456985526891167737331367219290390445126678528939749343674291824668904557859011335926119229429461210486131259057966780006739077663305587540822184434352309524041115008668398173419117252746979479094804478151141005044920037621009505709789445928812023202336029503435366247590073321863351347369508741619448345858694428044507993640452218708300487157007847224094256678905299862420983916849413157557066006901336318543110857581646825090229150269455835048440117715286259644894745246529583072844522226732009005984791726569600117675751508022591347829103848318990113835889286335463960488814869884650320425655617104010134981424127165496470494732364117347006498422262691523425556985777083161935993526414956915446220105316300456747187747499709408972712230220429328228417912147455955147318316352594025795845221734005588399687192774261330693919805184432722145849649771520288461009563593288493937730911928281733647639781110834124422425504997249660791361251001563998197026401468410757700049121367500462501565819615275777623579156653628178498712963351999453765977166524893567043589633679766553510168121092941687232133867814104158793435690265301628556707244146186655583256689800536831606970459697058120426068623287662503056990414854018487902372377882810832048232780410836717624904571887949708864238150040999481548537243752403746607203884554958071887021292182864662518268813902357707372270799091233367147027476469676131182600354334500262611638391180300403379665203279393497245560227720850887484852373790163103808261361467634200459354137108616609142982369334929366223221089538988647360264537904471465590678260327302575520338687952591681887813221351986842131683718672945354966185984156256557885095512389736867009930209549970933396502931753115782342170936834081982068120180194436384234800523193055541839776127208417465239351900704546738121406018856473944770034939530860474146825363796206091384739619232004851797780898785096736020490363086118087723603301087423801542251941552567221758394346974459631702790638789879510994076204084594569718919836616624741646327913233271037817647459745424226487692587670863602661859355498551723405424348435051387444856026431895429031276755608206409219145308194719630522980773566654400965350960526865532213840116275245267657807155288247610916532194220455376948283773137695745449555629069961767229736097478668413532719072911639003385402800694074983633197954499604867501210149532909254968250659541206603566836602864537533964420693339448961315771325021921646011858849352824705725541777302699192523580603799505599081674104677561025720494787454832792033568453387556185780243077346995272453522312563390874876519257867998129747601841453526377040992162906916090211446209295680675468506324277932600560641666811006621249329362779405856836695493257509347522372692809836436183145525270423168466953954226470311537218487944352812573084215328361203490957943837471352946367959865393353151274029523707279222726990776225303921634757750231191530984006339914698824317262224232462987623304398727689943632925016804493617112057408481180935319514568712410640886831869987552718417292501556711608711453918341835155375920347269456802191324804048545282741713413857829841223719712314989556657045619188275867083555856605639940880414814969928902275464804142192391670908144493561929386041872239598404846446899544231153069422322538677838105970646130309139859848430401656197483161165159778813358346632648581099294194843322740156460138776275732834322616010656817395137669017065858929600074383845205177107912533325112933863289022764374395817129216966538103443059986955046285730736491139968085851973843510004578465903383214964451733054423306816272728846329775848244827043590736841445955729111542720882302236971540467774079811806935100645501615330411219778891306145226683454291488588328516339855155301325480062822575440996009226133069408573155565999179738887490296186828833008578840662627875669571102593008871471655966858786909357485588266411362249316867432317786064804433878815434510141900985701817273665411596925982884238260952613639488025021164133035698783466725809157794965598090511403534627757348710704163665696017656443584588746922449595934313779521304867006430892850852584819120861308515104949770676790469970527841708290031291381738867155268369465798954205683255048539378972006257767186912449233660145253963946873651063047387539974755956121005312253992599096354596319129896132515634937020524340783899444873474692660637936983573609090146546645205935516832750615673802770200082013419725687461629847082605647065146485272823949026811441032421484069923277153401560758210705115046162655862238422398381467290043261242663954421784435294535869591969028257095030290927869412889090107857419991991085662505962982677156741738194893321837470835271866379952472786941734190105963004854122299894060919505987722596926406908822588394729011019848730593027544704325786655685545484907607727155724453816927906694282592224064205132915942350500185516699370812000827267392088121443903670809055788378459801640464460172158781438356106426089767647111087811479149085359331842009132868702220427110325019200573357887893509365825870223838099053411019709564287899293859709896689580786328292364142709025828875498894634463987335954885476328235584347936968302854340242840493713260498651876788142587395569151761254116290439656376399160127047499657317482335597752083649323019310007787308762274216501295202416628935717974344116624777331669855162512057585061364050011697533584569623620294622384496720817422053674276321919425251014569508388831311744391984086879252478152039957501464805815505600316125874663795175016698736905346605278381142980359902195504571815683532894106948716098641226847910552040152332231201288973176208684968742994699319182589120864984892775802351195113871002186169578204640856876032459575328758821159855506132689124654527949697458958969440582625956137399908642435609490588700081688225642448676190863121118720313437224226596389112286989684901215104301178506104362219140194049218080915283809157636678477054191763892516970247893380606142320817067836537602308820329650498107150740556108601647132359356584817871846051223336275256535492923936868282045058590638566704545368692777816422322792238111602237837985707040024425167667969201858319860218244925831380716139584921732936271614013182586568928104667826611384027146598491710666173127051260273132807199161232397224848208683123641147528697921428887036762917078770603142341130563529812866005610426584022196885520948753394179300249984410752702925047029782863306369602033415362876092768806638716200275967896361652473965636903054548463971360293741468961825280911056293914859885070860375008264703601930700403111649844611426663701045216196190847447453069175163856868060212922861627279525169221098670236347675746691047155249882831622495947492785661842877823631554421941598746122541828739517240604494320188430246836606438622364585231224502920696394674263665221362356713433068717177056455482667602223945991954489759934031317462256058935802937127449164415052553688513106610410103373437128466887042369550140300531486015459911509037340261833958981129503126638011728853664818926713879818701789654633621999078628211579844835514888459539354341767958042946698535989025383644619799187834262484885024996140364878527236355386488573778177529489171670667308737807965454895832061355458571699234343589119764956532336515238982959730602695698789425347538603014432050700291392077351622003933662059726643795198226099754449078946589776545414748059880851151282832405935616270151344295666639830232545912810760886724199612637837328908676362840527688971961406277676646724042691568316008049081764421313309381081312248856263953846901229248722207913227955486081190998761298804499415268686010533285936097285704369031518175476418111254562690517881253278032994994503368817695862308737145385158812155270011949766861305191150319926565046555467209837843972199109851087778878375508975744926111579200106622103861549190859933709181113532509704554979058094286386103786814761845809702259267521961167658910320337746569129549909501157452390798665886470642031292052092089745389204639325694750649435786777604787250875106276897011500273918104356719666651085582386255122268380907693523175062412981348126500148329613938202090010890235168765804893337426775120509821852989140624118894369846995366844310811408832194461699365593596729711152190324383754284307030097135931597863284167474493254458421644721850204931445063089898904344901364003174641011602066783021235621991623156636445273718335524800642150002691711487290081769028954649100553129327659017002791618074935893548578450366808815756861230837737956663248226770998374913105410528584404153880179271172049528058919942645724785917661736807437850841467203265436305927239564811122844632661462574798362261028235334462894291533059707919406443747531262912136668226611705165825712400889483059648996587966594393130069992615602600097151987463586212196794245207918489416519535607889821903575538554804361525281140108070551033343265705017203125230948237515724122725309616592681387121802227260010799412859331841111355503603794392926209772083483777358085223953148094121669042393608828633600236488568283230770527533082533702618355330478166229246364087499110011055017846520477006549634610161134173218990430169264099304004961519340767611516079751812774680216686989930975200704626319993642372240719379835390490230666182870753905598819993920832200937640059811089658235305550060307042857481629013110401439479688211361843890894972473170200455262543292481940789338538228970327775853330992986006294785068823854681921431231531551138148401260312322220160408189075731322624268474074706787867918085405390320264748427015686835892799452805674447476904288177120439349311607392442087177396897028772871049200534125708368164299731438954021586442671229126126801239796493923192117430720822303421973391646549784803410397554939592288090506262136651676638632199028207404275140123229499965124499653572527108995610302268072937441095885587625619705795882753094428302210077174883519915980212028059781011781497247777773068835376337805344100465634906792571833519306821384508901524044021643901183697334889243797440372955004092490694437852232950559341162129913256232582865326297453952054854409363766710734329241590663485116951929862248120246417987292777556904472649945844398505645592850591570856300025794641521668006868743916712480013954042716180377259453281089385917203924274417313201180398471408844193735094787564209249968935523971266354727864998785647676599759578478190386256896050885446471194891698922715801716716035370229288236053220073991242321324039451624732227049029800292449689902083275329969678271685220420501134394775687514506181262375665924248542522197813252238333658539302424009101112124413145586016170255383312837868529464911276381028275277302014132159131084173374049466475479341647233693953365869644512762555688992492848024640430052896901124189984768440673215009847837650356742555938774664114037707082048542356671582669811071939244428425452606194061798514644743681938329893194237990894391006937019064596302481623389794813459498673718594059197425331462355679336467958026712776269749192832359567573581836925177207982607770228764647209043488209233352450578740823165671371570573626430497403653903746873174143825600678114275806583059402967541395339633842518998658100308407187081929467238860175032736831945344930347881315963038177427734413292411008806927168686937409961705866295277482590223506551453011711184098964676105933171982909974421082138936602936642562508590092841979192877099053262962083009520285397883379336683846004609806808414071186406394862778172724211396583943564414214913632878866120933972292887615543129522367478993768344343017593913971490262703498902943655385993870064212438046219753419299135329198046591644350709582414647320287112118147150613981729695003891208182425006350908499973381234352012446511303059370653763933130517265759168276172827857774233882020671735245812242220251242012903815306047742919338190423345826278569674648318699271765603562386984498926141998611865458280210970203257030839669729152192608262338521925707257295954062681286423965343192101841658220573905134128980907558764471003733134647140345366524583598674671153861207473694732962080161762267335407061613345086927710492711791111851902633602607060165781037312243810270817895432414599912811886253809031724472211375454804653118564195256103524886903885311801698146634212344274329407756120385740561492782375652236032999128982635191360338984670323255444506470902646640070644125528109438525550333097402956261098808591479559344640545740417604872215987386334696812941195333745864108022891585554639311585350423403803783203574657207923045521926880894564487886639516730067773617902009066178471737800131430272945216817361780005589839423467508185175794971719156791569593133924747430826997442116032078272552914927289443490760931307412401627491732548520183794767338109967977163154296152300074194034756965042577837713363183254101126765734199962268184192417527526881265393701126935078394099765331487925609436576107508190883233146081270080204337873026486743734071288544270236171798482795747835271942200243067234319703879680642925824707620525283835350771189923587548963112966635452789328626994066300531906095548408738619277808641120170616535790370902017008511427262582616593643951132953222974511787142269391947726909386839450144016143687925574986947578792468343229370141908431389208461154344648374285903401114160262022869915634054190171239429674547594111505383754394471491385708508719791205197014546724291097477923458082734723621619428171425823760367368918337647111812454861105265754664265527888645008024380984383602435700955326271523522519207334910458636612923170583946679337881689774324599768863526275567754987067312869635963951467028323913050675088132514232186613439129253078027344343087791882787712724795571764371998765600693553167092360771317561753911321552998552061450633276208467247812196795014190373106836405975959615641735502025743152274042538127043981636106860936867267930271258637524466574402820519129706920806375734205127314031833543077825125397180267836571540253745057334597214505683744911930165252585515969901704633508016556367648867434466350138186078217157587155362188127094463312089846325298716541108549009766191758545186278400205212094976208331613505700569165671409843603453626317013919063560925947421119775081704040311901086724782584619046493547847458742640259836466493372170862005481907994179227519499928063293108101060918283741474325182661269690420413626595659148421337559027558268790369549789377089432329794327711264976821479235544953826161817412094985815848719218557371046983513939961720149214818182497314976883649338748458822192575956547747358730487974917744333395165997569496728182557411298619631211843164056054382714082853335419178915002806138945946558010707027249498988662086180641563261509284971692733753998706056755797546304307433686347967013998270739369006318078499078325053196579313669483073795387830479379217017397995944614448286339525828236112839118847291280982975081585473650607136113332876617146009478671253492491544797066969600086652138510789499112507328371998458629421964365300154543067890739289699634944059621992942904474058742113429436626638648440220010811208652556295025738370436207933739528059938192956863772149222986374987952241889848008692814581476669549706266742209156305081694583378144155494578956034486603677852677458854748330560090394814882143999273126086585692280630967705457864022371875725105593900817372371761715447913710546125051924325222029390003603643860030000868559173025556404209180443342449883908348297219834304043497897528974586467663301035982965972220186567212221046628442425681062857078311556198125017559981291221098821994279500283696545345875648524665983329653677220491529381933987667699758183065447590468971117690954272499948368102788122033724922652170226002608816303588705212905066516274541490156831921200543229584612486575076938208174966412170134497085676994570050056991680647297843491861691613055218034373166919415042040510577789713493050399523893047378220963245444178520089471321091973029375198294150173172658713674235449327854910267284904674223749913271917402209321972162899617063956480993113348027020453245821763023835245313576604820735324572423097797228499410875545191476316557969401908421488948500037861976429470960806859318530517931432315277476155470634729306694369803153606436685160781620092255246175101228917687390201531400440798185122523466446126064580811985641425553855295691276446069729035609158569872266557325521935744240622915390556420957432441935500823009193283669278981615125033770740976096229123820950755509391317507992654107935894122437078003138249237794823271016146228529000107037982528039265156011328067861456487258334310988943282929607512234140095451540196702229200351230004186340652297469446371158168845912994678544176977567673314799718914282585437561239049127810785508905746970031709074994650410106780347897992214190931546252678182201565661084080687304338361892166878380603762885316283651952295870798437033436173892833253905198317139501734012980192454253998587666333995558135616679646484212525204812078844961303631424653129981230250716668523938911341669174297565949226575024043451913908330333046483636175967498797925054338403013745037496921021730871728282257417938099192688283364939790378207167854271613863585610171331080926541571538937375141659172960178218619234869299621490507339199810397723527934982347574774204195864297407501518211168541411280425420432633278244438601443957820280129897686621950434725126074818958374064237605837908854260570814816742798505830760561169823327409095139890433670657595705698542360446189324292201191846624968708927977113615759589819760939475998938028456592730994217963804868293440481821588977343925494759792858770228710432726499467400544390227975523582787531531216136747302174641139242439321131563399256220073399502857687121570663281710105966451622054979070346403621917166253008893517901452871560349701854992983280805889248938929985993235546303446168153862041162773971308039626017366170061007492697178472825659696955851874744432514314936783800837170555276339881090504186319229286017022951644000919236401083576080366860341572114123365816558116281799541694812679769386593063572377536408575004901400576856487218865420519507019075039718120325866366734521487620880194587081084275792162752598148707174399603431099618681654022235077228376229971054818813593397901446467040305064965561967107523309906894748932749002434910851598723108895037903675315491075963658129367948317272196534424609070121335271582178203872381754736680180239859669924342673003814208976384517101231442983520012089389715140013379215882323492692833320931308966400433027834445896111291125083353570678344218114052152399451236309989118186683461042015366467544142734733812064437082271958112381626731007394762623824636925463367793525130308175393246717597036017616212490220307163474370904461504858221620459590189741057940887178019766779663444408312167178715527607808031833706267063089686517640432227991874838909347442236913340465760135734289619424402976806220751982318989509235315952543131932822969696788882750079474577536133379764395317032556347349893210258169527778510781875669761537443298249153334147247986123939397605213704872886303923332486425573031988698966189926322368016116983949051688069028372831446748792940103291562381053621197878994443667953973467421794987241247535771458094129032103384021857483334823850224724856511081903803125407993199855138780831836210243409841697752690807739937606504834872666009522486969665659839692408478370594378882655493440564514529293419930440113142464399607649872187743403871303192685502692721115360611288753189067898351823920187378362284899771185846063467867015085669022713988326616744022549824779357155070215099795501837186275842163542455864966039464180678910095842023706378048131849547663800239197667607842974931972934040808062393669742530829488918258607373270898355745493388736230001767142867641093208524367383330169928322462871082806059975862387364227249013222595529711276811932874552995711696949522305950519933610372474826091963161568299905843526801105942178645489387861475958233425039352902123161844994201810444887278484837850271591064230404046207462739017202266269799287372788375456645919462912144837807729233951565873729438785804995926025579875790381494377496518247016747582691113651351921710800861050591248288382659982360971897741785865348364571690567097733569397291579590712463194124123936598698347968429066240238531815993407887683544121366295812073364692914034461250784420661327552365443802410544891667514113553464231189394032188695711744071558808512295711834845807166274704515656337523303035803615861372778035714513410886653299894276656172783031821773645155130615569003072631715916540087072015312313880654402617705355956887888051244719169937118902937224854177088885748105006707773221798241274052620005433751194978134410650639447444497807438119494503814953976882924016924991630927776236760678614652729193127509698052848721561320419693341877607770544928809215084832897935425377003928498016042906812184394645055104612555842099291367772165535934426362132681517973017081678070128567577819846571501751836810667623988166318819291502095116701865047828510446309809842634730733986641566482192178182940116911284539931431795728965067139924095322282219086435443283388297536455179939269356025118623930538061065132195353634174374978941981459575621238949002217877659568957434360212233414289115773848339764459888588463999394623762209588844584311232001163802828806530851862949199953118115464457733479686953928912776877289929560533215137157580550638377560599145598147921121611903129097595301672329707546765107421927109675400669358158913188036657075814278958593524408142953274996692238885843767923752028197429274662223492812765487560726139845929323126140067187644735359038543197228886115971251681219983335049209099861214975452964672181893315322609720351398601314505357385794935090381901229587572194852439808239725388684421484330567840205233929447308129270966451256589943363054721231284899510342074208358610168587778480869900724201095463698947294405510706169370141502007830154543236822497614698917342881240483507913974647049921208995797631945675482827765364431019748290288080006130857379355639758526917676565413910755745056998421871094589841295067734229103746973617071570287317338456968380402318552303555198026114084174186366431419063211938608181964516016406580972918763008487408429621773355272704295368872418309686387636977336059350499427901856063159582641258026443559648203018162672307753169935003555333458315975769591058771012261473952370634617918348327947283570682211899104058668956042860694808079524908023050183945076674251067388166283902962056084470956192302370403411514194580500825669625690129664105354934789820262164016851577800594074945031044507038584309234063759145390593597000789242939531959739215173614994685046615387886387972989394343820901561547542845057837252756945630769212942287213989169692004715825951664709913806809507424333328834762808819070118397868737986533244368630259102123982881295608318137361911346468756567782751800062942112614536120375315425651600289120138765532491122682526458277894507236263006554970101848703979388226337707421770314632052366082074877688314110393897139454321089240648353666683396139451516002495885713488862704869922870375129764060162881905219419731406461072036827912573509988530157146819534054472089947941902108886574424338832785637539389402847285739968500033904687875009441150858190655935985826927614763536195198427992834210575665527898232033665877551010388380946155793562645699942282147870569215962654515890676362809779727868621336420035821796587575788748183218451718836015575916671014751905429056993621608008602310765659068945762218483728776990548786058782326487875274169604612189284339432165114641964791723359249033156701362196139088273208766597663422846931112991097582507144193701145821624691594568449237772840406695967025439770477222522601614296981732471248651999449289227011698100333656353105484640323680948002616770046436382060423003413688864962471876087554855403722187246323906395155446202668409323322766688667577158214837832532683152367561827712806037973246978936702573138396314843596238018681397329330170033103449746455405488475395601378181413510276456034844502210341439515584465406280836824230032880626990870404140264692029543905802799776703365994549394730972796820595935969055086937665423086364385103400308314001639241565508251047297570644971940549079148286047493228096996181669640334806712698554647025231514734187523722873559990207306087952488578549301789332421302426721001266204982309089425773837343947929584714078381059554343941451263180141797075573222881375796680821443915854870468659764849684743196258650182091582182710646263398156624468375394180734757226205872732316197020755207824278820087381641276859201613447845274219055756637151688177431412920924126535305385247515784752800643750443369297143739314912311356900086157185824800786615963091361773777813825590947475477933346768633801834728457995866615473111286374137270399537608257008230204157637025107084352837772508988569489875686500955720684555678684543848188691087404210495676271563152460748350900838946036774487481328269091143750497346255519512088483303847126898565571909534837410195794439357104759676752702952337281826996147666357137198199001359700009106543490588632217778748013780928403786456066542865556079241844849961562146851839826524717729237498167201839799302644533146070424198223129013435098772717707127413715402586903649805570851352053634623364580426818720326280896175505013035185386329196531635497363918100353828457392132376530896984053055101387996614725982499547836804160867364777176704133695668484213662958884177527146474926398972576126072673547816163315368877347852253851795602827363920116469217310905343738761182934261856940505295355129575549281476915773250122682254204697666290962077896648646675625124660132231480738671518273250801214333942530321056076960061576582643915026133027243816055584773306547107432606327665378850688490691453330347362329228837497712110496246955723204685790638869024113953849697773671624106501974763456577616703332662848597466608157404198407859369431555711844448962849115037615476615992087061322197834483276976684656259541402255877722866476190580373100804072415616102968702214973494677344603627830068821379144289299217837187242912880619585518074259718413769647542292060526874777095036736138834777575957862770372313893909191280022253038513520354751183659656522867650834825103687116179318096576886039837859488316788038530555695479747652089682057326718154244545532865258595620334101189710566867957287850131551324921477663077197788604902965749272666427027877405560374026602382660159325933287727210777006918062965509668981559665120819179601757991885673957708476207317198721900319226470345815807455312243562578263504623579467332513726485862622983070893255121040427136447759614984951416916365326058123470887113143705500939201308920953829124158365498611725131028004611228967750765037416403083494821485175671234201749916650397256601449223796314466971722540320530350798372867166692214254896053295120015043712397778109012306280905022244144078778870114808138658069863066659666365604211654661460456642249198420667504693892081155173928778012619490972791614479545005889771924442151377200788136182599622584413053505762561534310703716827529260583366264472254290059338298647423643705154735803314477399800555529787419059094131364600055940305973777744883626816667491869061211114572162264386850630992503873794261858188437066582893699237880794057291181344813941674918172891371166344334770595771573106389332311656711161254306361926337002705878099922292032840966441120802356145001040273083409230476098272773931050123109243853872080378746801028777662552748541704566741085802768358097577813937302371962085033031845195590432011904833224891586746876556208635640451298872296290339628890169548882504408089627750122940252827113054817680482630449794298674730722259054386937509718611008013384695484206743217790228481870790856544799437367536448617014213784590614292076175761118657582390301291551065811623506892289397594674410393781321537236493782779851769492488350323918130512520463444788184406535373701437173031872942178601922345124907742015266502204467434126338546128586178263199082935297992634857210257358844068716623653184135736197039337779441530908789424708735883634245954044504379650416379725586372287782904877055732255548208709621749749167645192768217865663395020766502098772809314713463679625649311693914737368998998643835805317694342754984818802437617647229256372643851530920744759860440357114951365222016194432498711307606338084935823974777130378653830756726141567015457064167999657590331028532344640600863193645007029656784658884670359762709228528397886996867927752069978653274452961972001262248291146157474342093760117156423299570334153324030461229771760486268790984227432749522618723779138742001638539937969914887484423884009797268155612866057623725824324935252234661721932791076940779187867398837791163191080817935969149955963567908268433332804216873771564721917086169739020400628413262528594726779630468150984957607312478891712430684242617850051721729452905878898609155414765245686555634245445733696718142820195786771778122264356292829166734001356089126142052425661794327047238300935538743084680328176792426602246078571876793830279690080815587890479906655078172103158293775435789076076707597517305300951319460531170382415200869088385601108795695527724374364527939217264754758043238966886916611355734239779885796022412542567277924192591043795398827919405324423328341686724674684171376172518585717365008176786627664623968749330165326548918965795892762847587193537229972400508712411651446745747202351206701837068559868141497887192904368040833530985879784242272744312583619036247951114267263528402294399778328805157755013006395039713644371897506908472637706036600839517615358685061320984803096916078770016390544841201132632845267466383664358525253384087228022197416506316901521204894582562007886229577172509944450166845148681860902046747933295317270395647424686125454594850131417324337767318204275804009398845094561886090732710337670032513499931934355998652611251114135732238122605274976938468859715128671524328061888198605138456787145936940696742189494805874152538772609741389026159533269072615463452928263299837665511350272826696921910547120983007483894192257752730164313968585189240966696030094759741961498560898285058050255173059096406810327498528466425665949755648634906807688224262667200906401880905574597895220432141346231620420666975664969664485915983572917487707387412836823420971080468324523744772690890716986485924075293728631624537511202918304457826453221925596775998437327572645096760834086848534929032812014908351923905709068317113028569275847947931963612227818875127240981872358713191388851488652418033592633950680997844218289260784383860196345632957711035498441874143154250350658052613382089186433982053689433659248810792335870540060295736511434281694593991545395940855443233355491093587147709518320461430424238800958188839385123648799784761774080083012260793515312766554601448415529745698654459605755561220264043434151960264949949120623926550757120768403813928665718298103443829527006375088508358037446614114042479025225568524222161952347406254210804233086532541503099999936097200926130568757396335939342678169892865494611130670102700921507744992132374644080939454307229205280244500652699148801989672610316351409322014980368749573629614981709122444733611456102110861424028253309966741915345984159994396973711993779425434823521517926558602238319081684486661512053426976784146360062594569304282335770428091001449527435417144463531219481799011058068467156284032136663709438053913710750197049859598083423749668219085128759574862714641442664718002020195502639907425115757590748516071120649648370860692239453535905902142016902827899639130888851192740413065891715137476260662763853187591652355345704968625865797730994425464797087634953037296338456276147728350652444968325306653886131538232749036170587539953753272182027391553641409923844070344154417822025149853763181437321998617300301049347405766163342075805575540764674795675937327055712045237543810662277066865291718159477503396754099098385075643146728436812073453450358548225784332508404602534033760741956647329601030628625072190994896643048541924530958957807767263846227130030006579530965711708691938906892034396414575191584897001863797991839265247037587125459860540698472395184397310054951497653051207984158003022773217281017654460504217754742127655782235325340648241753186160480706315750564607262986990607091389269419755734825408467610236230343028651380555270379448533472885255651727868822984549640624814675529397113171945554797700255589359473724170118857632331578526340946315579464324781094233070951762246417360191316306274093413409976262025073572026203111353766060941457317754203895615389989002124938411551678771328058913481400403955724117273168973415920563509275611482619566479498064472621033594507013170763137126612619995784126275948610106183594974586497647447008474413675179143191132418309853125130567749158296615252210568553713714967923388414155912096715365524516113007869184031390186790768393273170259949083590307399520815571924297900140933407249860062808102341480034834560983297109894413130010961734341801027160514108980390394598139991050507895824918842447534406129961330200054622092982224262417838439752720379066316492886535063242130950309377441146558647026382816459595968149975373628545164732715787296842141557975255986347121082737866402582047825110519121669343384732691708465826444102614302315482156669577803329478474340159349246040342209872233320359070450218524004208852047350893540287491480253951175979731653428790761706144153900047377284300647083427340226299856064450892917257950598398737745182531664642189827950233556444388774000859898540925753638415861401130754584497810112668070029382503534608113515863397657403690165667366531962768414635948006974076824377405969166713243552057106738198647802667903892688740097624506293627760016696426830075582093598147405351552931722779289708320264997669384411000389366375741693693222333896274986754031683440611758938342278413901130993843117475973618792619127020894288085892397692673977375550593287533651484902169920454573573874981342297789788957369469630602517581684648579407727677716799014747274604177113209077791736979755628372385002381001880734074794907808653607630111602746412077602232735171252728604612514447952705645967175814185517512575748172016103397235849722675427523161656432584271082360025918253070950740048678643190598672773745144072304016932612546981716221555094777139557339456701343004235719457396656335447664529804367703348719381904473053517594301862241683083515291572916821797348964568098778484386224471543597945984358646818587332732295166312422363556106429916796637955139703618035721890839849645046951957922472167014251632752163464951195766441572890983164397592459809081099836058575626796321711457750767523707302148795086501662577763704221314094564637762224992591603943071996248636125194501856771336274647592191088282735174284207766307548299847263752839088853578673601807267409464606369255457828216264368299590604604717626395417543135067206643325522006731483447088791042911372467289417486274743876076327191654967588511637572342977359250701728144956656201895475005486596408507918534118247138335388405714497910262351088066784835396211462757390054590688537111425481226164098882989367299669424957090323186923419355712293308029344272033765957381209769812459701080876274659393461376265108711291818462580955776229687189199200248097146694904864782704783380172679020784841279943930186300663458223766700443973372938705877937378527358553933955382675756757675179333467384253617262769118303995091273398695805009332996046875576535586371032135825861869641904604511847171522091419542926551792768915960760529403848613450792973141763591995849409613387746225775353605481431748435760625729822092424638765219223199684354228578548101667829596784235647475371285748618673813549392122110322059674576135513618268428877383073050034757518087374184545319121178049121514878300402125430119941515960407406256449849755098104428384663181855269548247318021995487840114888916868526686598841294197259622008867611655884691276979084122764952306931710447991788805784523436013462157193896013434143161754466888405530375457393117165619115973966688797547108271396915575286969056351032629362603186159006649051324352165905762515266996918087074974359101396812366179297211018515510602658436111388877703109783784957661076646389751134376416435839158177715378921927444209191428703133033160511737702374723629145003728786700420990943451381226965851748395957038066483313348053975775926422564720537510940515655687847152448101259407761292729630931465790344606260337112301666374481625765900921178561565957380008307287790761394417218620953396441057018583695339358645903691995701731941773463061484334622377798110330134341796962666931949280897963285782965892194387948030124075292617132161778501245498299375575194485684969004147809602658509141451657566244302110412335650873348479768907283944733804747380424973740663015800324056557389698593309179750478417557894952882877266518483734998462629102146775688858488597725536653571227774055240776391960991308498150417676785283479269737102803852962312307463606865555770147843769005615655909660336202748885482483559403776712545242512764263577458816941972771524326839077423263456169066827617109636077761412869789951743082950421322426154683405677162170328451464899512066734250140477717576387358690372826205921281751811119863137877559967432205384327239157626641449747634591518210957304924147600930921383466556519629880499478081972466093511133860577200778975094238834529545553937277468444850061620066327075941143933551003704359629078673531462761030033361395438328531017438728341084435045921680212475037726662193069181382339557353941769886396929187518281388647892656913275883156741017512861271903079071960613933615748291202616564464583331254450734800127066050235649608596523308024597710444778587342938843762155721621433378509655128709594722635343162456631735370675144120005076891837162048866070583452749673672152338156165100170612860301436414709310744310444851492565950050988732991426047951653139651459513523508619452848123501887945292160423626844068649597161631479438223637846739231206991318450496804594512058464502955936252887537582477101120608014430899528138347121299203038754213175154143626650850024688628494894412892820304376637163035545812444143528050272513905914649236622620072204313666912166293896244969539937023988851223494264692712795863511500511742366332664478312743883554153157647812201499426828161805367558773837620816199899093897882985428201646423853375485636542855957525698281148056171124257949464083858983252619607531545661499770700246274026538320518276542905182116325649699663340789431978009565852864239171943912607818612194525165514595866811685828025565285374046596579981095838098130368309683159262562979586388035492637857343925544594921070059202619599292639352316119846422826358637990375415253096680909230165654322404683315400040621987274073223008783426584144910546956856105824229540528923170589999587475268156457290046480964004328478581102608251133331073953714913503972163212861837519772416685681919643322918815187333166749042033395972339329005802094903659996335628297953790749958881627454146050188788697857599192950217774916236111188192862949208578402606352162022650465981785746908941535203591751803246830126934295944281372789782919067641154130469437473903656492125437237087658870104438775764727254951648960028341020132766463984862901217715958769644653530444468647849419964878472801467682364325170758298133988080737652861651349063861898348192983787884870632549788566849672769442007316358314253598926661085985023689408311326156144625265323673884709978146176476768216581096173064881295295581751345648143814600373849423299915817640268350250928682329380043818707011493606918316168248385521129851110277743021575133229106302833025703693667362911544643312599467940050303297606467993682644990309822630900075886726025704808821070500128410709081758640736748808736105400531726269824477563308464464133868320860412728679634021956652220606473183631289804185904546861571140011718705991330131250164190097318546164585127119615532735125710330643669293230054536954327052437173636231682061949608637146475409485638544845239399930472794343389303074463502285878999944838248111638455343884295028343139733523185346916594392938786413482950433038667809199756358057834568256508420892604898037665345495725037112388509381038288547979278039981812509618251862378991835129931953569733372711243276875518214820402540966931027420232531506794233092426566212457884922768535590700661640175979609882383328133173911107317436120985832533204267237988801243597417812035969472186756575762031404931114520597484122508833028137854929953585827606889006317006217292334797700377620313625913868733624497037623464735843351785630431854062728198178778002745866989004460771374162584938093892947363786936488344313474101219709335882320598824695158171068399962576472687534334898632824272058249327584951602933939330822661161352135934093355649979611330227772235345406449447007475702479385435139764981976913527835212627306607663907458339074487839699343813495944772742826646910094156889150901974484345171009146690390709972978199838669103420109038227641936263505462112353163270785781544426335743473037037691932891740661433766585637219736936675941438608594772599780517830545311580562004158230882323572684585468957674875659831937638583952448428104282712956674367848788457382716168104095053039917178866785325286172878906989577483362326466351672254153135166164654021736678997600642890710859669763498958250681345784247512479508410631218509382590324576611224251244091031019440228863029606629208086125164391491663153982088021515213584819215134835050416832011110729901928644686858661446286689711684056872034400200771452140647968956354928146408358221294705653143987940679593727360757141789796919365420238409121299127461274101649195836601316156689396091579819122211986517756232381063391677330776941053385992297963742057341729837782261747391194929801475710302755767282756356461673254208279628233802196068330531497473928489031816888018257131076775788699849992585839708996984642246579242880173453964206630461734221214431140194704622075172452377656987618035810572207467827860306981259681661342641711641857962061356083881713675520961273042716754308643045075437876000494529854599207349183665111398385884063382054983138371992367486616881533073003410077204527738163667501810307485651531332676672942653321785035420800516568396383338119834961992312075707633508701913849691162779454989045199574788486637971057110408481874597026832822160186721927972308637341599990235415046007927736582024565259500596604658442970342725814753172007789422757588487520660099306927794359207814138100104290351556024396600129913011738650908897961028114540430571686199192875815269939959202816229821199579103264483226468545702810682972646437094646916368854957653496751582888132861372409867213996186462483157447755629427070602292344888360140503907229242519661945627849881105044266934355548064031987372297504184121777127970571770834266630989914981093251575959102698932762654080931289391625426989137214576386783312301281045021241537922712484700715814001959883388384888800967930234199390330999443295069344074977796490028412758772673707137994326380755659685343248420305743017872768838687095497102427557323105323977651531397890476458925838513893156188272629430330151662737861856736132248333469902332420671816548332880124998653513287781270782626142761303755507884381242004805865242286171266132796251938035805880792742194282773351752241413400324027916462467317858534729899600952652836035856357843076598046019366689521592593114216440698402653924660096100702476780255598694283184860130191063048002398269221890308288965048382058856190115444426846014636407050455338922690922733543367524678219863093943986162954155286916872167797458756491828828685307564056866622724053737209389562121967588091486742748808327270554768809166359222589339391039201876751135168586853593802408725436693725921661613207053907329225781584404553172135431597290191103515215823105292205252695849994213191161651152291098798375242659305886998304741515250887963815352005947377003902177078069511810604358776085491464631915085393007409897508491635205325326494717804947500252451809112681397521828514365798815722459825829146038776925459020726363811425674595211619792807801838498760237636649348011731952999179962914144934323955329823383677720248994799597510196372929177378710929109046651112198571171822937320854959575546861733718281340989329085324724342044811726964847169629806037057695761864957474864980196214561914072941542537749816661732444613394509835509858449710285108038629469805962034801071369579732129409904955489082112552004047418997962577961276598560985913644698864497813957362550447018759482630216582308426672544568502561172242783179786080866684659613739933605398919277263803948987513972132958095684309556489272981273498126971120578798389295877726012579167724179855237152487165579474889709583419067330946057417463335658881539769493248379015216241395889153082851209416611069678363392813851287924860424971955563763439299149297432639859124718099930483501314297923183364837253607961597410212938856790444683316166533946961156008732279827732084880424161764313056511065995461656415733456882708784571783623318096268044074961934162474114954075299802913813852366714430851769754379553460873490213482707152460370198217947524468407651583119983721243560325318626017938146415059651195003807956977335470716702234752362392507380859505131292282993414902090906340560596988467498429018682940570935809020797560526157808831907368193535920490465004571638196726904361802792256293518605364043583412910322814380440019910435887623132555455246908818899708410622802808435517899250205193901611912005076157291954984903503655040032562553140216200409484302561327495056371704506154134371777461972518620761209826891117042602859882368741924006079289323601571905239148926482422855074555030296066526384920428155120229036877659397059619670485541735291660988251344619954527200245338630165437808640164750994569467719572993770072286474152152938342308080380025025917919241539259225735257706164246750774492412868227865839660750860685318655643525349396228671609935068069207397514481260891415823220861466895393202640364026673709746642740650536112489888265421348913300218719964814498598458956181141825157899039358684667394208031617676047295842290323689616273880906239360032827981179773792622285834929025266269998681493126133033427169132795111327363555663520474996301246844740295544309262706872745744784947498278886681543187446303207936635963851617654309590463328530496232082170393116640504049365803955540581700656334015345668824231092382593314442907201525126283087011150270472234590752348603353294475441785671523836528378084292985850844566491754896656732562631273740646039086868683298840642853879581388528498446583895334488366266860759420435725073910545244772205929597621518141386593565271868906683624710893264311209587896783475755093005051749673591935296097538319002044456177200888308624817029862534373892594318761358735844291357933947879886426802982942727942047106144601910595298224662201538847099804972465211697348919174921177306656894448886229208132446598201971606714600034039048970396122726095425385268693128076823323927847071108438027286024181010200834589093996939911611783283281418731853806972492405942847633837670487262998331909892770609142024365926148090410985775260166440016353517370252661331858540578638428288568503654831299246656070455138733933349912220103433105815634773621719165014774462676184563929487669703316024189283316825323668470083794215789095352116208344817770910720904827680508624943881070852560018585002224307979767509965720428180009187916873610689346864218256872871215146482708431969231744432962995728336895840362658883662518739837039272102610691016874808360613766447294619770346726553167586281110540702569848589731336122594343438726901271051544468982830222264474560607244163451289502931906135475692039782158819125861140869320259080087133305979880120788724153435136251469955487384478674445781250261261354459970026907531252883683259401105729159658494399013766441789004194252468815854186697176943337693574436155810080003545608988750532411380102344420869722173512013633189310122974151559881618368212688846449258109975035432903395904080832332003040470102203958391315162130434549527770527624534769053010560024395904911865421604681937897747863225491438464283901255590285677451898815155638245372771707841794757143710989672096174509300767452648324341042613701689881703223166956071745755902071700028113695244469527676942936784143963853598220617553334055788599237349125049108721246039725682466365931847405003466486853416648625478533018369092557987568454801774675167008593200787371702034161016800638508957676934928393257892545474209770351427811978212597439138865305730242670626321457948917608454716996654207259876567907326847512422399243942379115537272163236346358873410990510850853734228111265510214846750847490553046782077103506329662423176478480353038164692038024057972376507722700771180312601488832605415389768928559359967701328869557405047778490353929382685794882914603341902544492747074618802631950257715413059184401134120116597090162257143844574723730370094573286938360384035640399930334400003173296345527796193089396126264449662961833053511174608770202926605369497121323300455215813114952605730910996778367288480021141644771081269536728427886138051193471337146692462289041268883782491352652841368414160799692450564253542735172317566152543457147128028538031022911807648430823286905596729898414603816089736008258644520174658554270503890417144802938802744071065280853071448086816516001736398307529628354778130136092881790466350248444275269701420778182883997935174783800940750991466323339146730182933171202113807886026568601747521720208456755922672605156135367597290439970982192255305266763383016284612385132768849949280498418355100396268369101762450233442248526567460337763971536886481714962164641531791326626048754891514213434149987865042390729759057753442440887635778920027923357849428189699795479678183508991782977212917778857416700634870163635922094199956501228870084103598070296455614532601407611878526511231801783081685034586877962095294068555795884973633115465975187230382461094867367698684868121970646502415782342068397509462136863758959941710310543333768807627210760246618814371834366641698938145348390416388352821901139305312706417244874615186357318324969556174432075529752252888001194425472356300422858314821825745871986990794405360936263471334152831281934965627356834705237367243384992372654717646752647581127483844473712391876972409839009428172941450847146036338494995295980996800225793228241031642130253083851686435687468599061766049744001761729067543537335222664780244346637111565255101137242866445483983531167743294858062107069904700900519075171337814406684522894505969358045585326915399897158650498492110165449341951108261345800139633383871527871430234565545909086576229808913094038021411886089618824594637885366570245962584659064296729312330930376541404436140020968364039892482734632899563375655500870890700841352489301986026200655485852857076854034142591635945216329265020961666016516290735261973265283262263679013785150983436515610026486786279228732364274409073627503430084671097794151077747609386308331569160055001829307165618667970803283216436659917624760542430850177213076804717809187010366771761837972554024508967299902070974150327081128256437903996808261206882694497509348090643368449131858638142957463255865221477976570085706414678082835638447791065016705648444871636630554978189355699155395872305523105730194561540850236095035156650890454108104845681306097145567468326412299558898456270681476111049274664917020092658818030815764672684004574603613039750283505491351788560350200924165983927557731673194032730741423919831040505057210912855235415493644716046718327066588958554220605156891891432874466170620852991177944609869381732302724761227413736608616039310789274688334145967879682354499128388578713617120938885913979541856494086631519444235962948259292713572192165776219806409114962654160343826040480659050432581010479029130280740360681066764526471264859844364533188114714594068118163865683459076194914093078193998568949983115158878989023755441593286585796522599412553056470565545747381507764968930164259518363817429626053951269452106291259825065210095373075654927745440351571814233972870629917116203673550289567743760881356726017150627121769356809403436152150494701411055564966639710218992196739800006041046547120307076049021458925168680535348267572533157064188014515530058426063372417226220932050622095399166474136800159644799592245081912330212942494529829971570723814738846971818795920554745548238277367565419242107930035898387861286445841599191685614627388674781114686184219194236871459393667613845207137673870822178573540094816606947408734605331366508459985967863129197753435094082021365278954973683408488440288627320489601642861978096337942182833922803326021909075458009725238664609037177868624018094303029340368639975284183395715622347745498083207223774707493976453724136945848180077606037787211223126523454599681432583162832555638127373998385384473630414295778961942192707246583823290181779188448758078792057368695258940325968466292273662197447713642386147718027768120948411753867439873594178370789520940049058844515104717734029903758046435848649104280894347994897564171946685977707347369191351443779450850212924437099335187970752224201358274171835567720126625842115783988721368006577165358994797832740551211558436813903109766224683008287301083208616361920544131251936699278972052768420054676856941717513041385953999061088197195787849523470101198467454769720480509045869275193672990789989787173917508635433281837114359889796750601037592564178900084124683249345337469499927525879902467198756310364167658413781620254967554860875381090238231671296901104185882554542713065431939052185061643538282110438625963283380794303960412199763183844650464438810566516073655093634920859774600587435142233648777597832358213145720682890815151699614230489387121588268266313225232440681213082186585233081599134123472716572882099365246959761701350772248354465283237116373371635244347132492671986589976134285917129684056281260782084912409532773535897412937928031797689374535258216727505459753858316981807129467226051575141945489026117248076539065012776883330550356306073683125379789284016051874098433217289397022086392459919638844012159413234325950184290509870368683084927910054014591870806915069484910247958150888228709578992356081234686374843473801720438198688817087998044503472156980982568700565327215491322631658650633803326904655343735783889270199054895311619300796715203526830247651027876742384759293114523308281122581316110009444615543960239447871991060362030427457713763129755346046343967892243899766647457083124623576805133437606702097160380355929931408686381214229703892246743110343444508149221057073980647081879007689421352418265953413220219514607580377478356280181307231079889884663505012739949418843218542681098965696177633847753394420969103234274207986539200395831769636584669578633912264434071848616831175300311510120139347968716868303371891494899125300205529716364907015982553943147344595339882766594627366210286012401987955911944568914078171303395901289708766510531760462240680070295278142177342914621410982319476426546943302015581587956252916054752444490514877960565786768115797086662223655044348620131069186127088366813902561342164305489419910514203254829750558101447470809847378915908173088185892645717235376036446817036417482615500160643503650936026929027303515147747178244680090290339471438462341822133898823158966146250222196757199985599538338976509758950236833699190836692779524203863488472806426791544431231203313539945585191728450080471023177687443116249514328606743615509065473558376705101799297720584818070468203402636592347992164230271787334729567448024104514972106712431032518612411716570968984970799811292444129848902681891488091472201097627257880040179706323848633981797814442584104742911990305801750214966767267113876186291126014801826784261868581123348917551112281944263003792150014910276778123064374178888742204892407279160340945577699383379102034550806007898626497591863351247462252260159840601126640975926525960536726752225037571833822374792196659166673651669744980495095589801368346831468642048740503294835478460948021439488194770716981243817198702131690759777065163240702017944054436642124914802866267523005959529284678387143831970966433639249213323689295605843111948396786810598602662283715030782972268096280378126113795676112192328626382720049782237211784878005220568547805682291375612609395455083423099100421872068102601171898863594535094916802828810426837995168947499565421225158420366387976946823642334310340329968249769403007429099720643829987946860323714027402677456499619647578212444451933676280826522082924791438843616083798577594096157679349807490640052655023466204104000711815991366788681062924037698193414216464877419063556209619901923583444578284712780525480736576764851534751785378246337185839924476914834995913573469806922481303767907829244877657747173998320295491844601971314546241183164618745198145599736606970915478994863138526805667305563895573494876558198365231045049504625355139243706950509272860692515991977723825275602826582692596304570745417156976290117451353076256409428177917983554091014104959866114490443161179907285123297613228828621614248550001137140111686060512181370809361987816805701049850564845431415834480543628401588584413314398635408167942661707763708877070790308320884239112687762078853404571431234934703340343801497619013286306079949006712896664863994952837741867244903923776251904680777448144037064995700181531138360113426095478070784131036786927730871312732871627948731385309836053389886043772285788339067589317414272233332677510562371034051270678159617307017308458196232921151902530827511657204811595854919825984524544449540710090954820510037725037426916833892353038865315216470518023538729666609661772724679182852823479690186621586534629758228177631129906333180761275745285500536021190414137532382191139628367048030326581743464932220253280055799705769450815849851307962028548691573694570882052809518496940996661788552986597558941515486899493060962511840278214970637957354565764741268702527675071422171897058989074164206115024353290555823622734682690888179853354017185005037611775656197760334221160072363674535429140583649518654017273653054892650548448591801664196104024624814611749173262447342023307014075201184980987393884820595121851409892854516395466794385155738178108300809119418156150734115178273118994719440973682521859833536018426266083582460183073772052095815328971914560301177240809308767453976437985832291855959415313643308557297952537924922754950651281886563244511684838014235546126541209254552351353576272263545655190374368588274040005558594725263047738959434238944051483822724782154430321055373215826903271572420023605866684863114423489010464248211768812266119212155917753362796487003126862321651404524259938578502871097812913250860487726861496493176638421746272287750555269154496573352899609151787292216469591742458789965688272295385924711960740203425815700029450901351874954861293819336093099084190268940990391058185101755826587925975520544401320103402698748651209653180039351415254464249423610707473964986932588117657766374574874857291861430467388494833475396169824985328961727768619295813253665306895043228065216028373427424651805421919124978759386043401066655435504782481966638813799149909029457629241014311362297683321167917100068839961809029340546349382208578071522982337138404115678089608684041997824600095917104555699549355003046647464766975377284530510403916057967284729186524066782340384677720270678319039842058728961483725129928407205154581489468404465752751411744969192089846764338497108925176644464830634626653621718255279378801114986187899062794244255453656206908088195567898100327422465060217570172988924556800917617838514641158972107834904788854093211151686070981177602380554291037591928850322342507871476528280300674999215133720656401151435662202712855281030581242847275777608657948801269593891066779616012172480416494737816660995402214130493466713909167289660764815790626820497302166664557290429210054117095013013059024227985123905851035609853453810508374763985848808510475772333222238561726420121349392076246253102422494973194946857584873539889575631611599186463881836905885129594788113876650351574079692682122861869980358766691671380112748694923280632985898629471063056718543856647555194995090322374938006489527174948487177366111755523750607883143728663910406122267867725128827161716432648709925596625425703727055151641994701010148057641936077253818030683934622186502005526212352906694217485472269970102231833918552167575175549493694640585948692774261754650365447145028496979692663635881903200224296761747300592284266560521343673024025903721258865449860741974993965227911989312548259741498571699995870811879463634375137661972882250499500032706894295597209360396434416587543007397960287376058112640508226723091872002954555817264486775228641878618280146651576143250120765759515434105056686318238367897616482886532277898876548259004808244023927804319806922539669717365311775084966857533552466568244562357134022008014466457508589991249065195595006887702690222765043331763154399731259091226531983911791038780139672327199988066547479445045060940994192169464693656173955034345747013662978009156888170595560349745045626669571308125278555832409296823055728111763036444125145250025037451099584419590504702634478120771684415305889496216456706580836805261385619076126796091342894996235344978357445035502721480895647061628484416477610905275476451872006367050915282244825338501154693368932354815934227198442386666148008693540438399787714640096738566391908768300945182935927259350839394904608866724454000414971371922814008751408270796491712084660171399852593681708121999913901899561969931800673501758736494662375337448415631796613804827820759970380480289893850405323985919172369337010041498337417460449441941999117765053537576568506703680080869128897006325523659139071737884999620137582439022017425742186483735648338718364331026235716428579533680708893414549645814577960242163329782460234732978588136390521238976402021255753765590580630392281356168498568412401187982430332456230701606579786584858537398388511081671726296085179333518737547804725605588959096461166210837396654495706148260103945771504339869476335599506685937346257540345981190295180816121256307933901122097848524777973549208878762599256223728757071554555266931486960204875942716156130506916148719540353333416634481246261563203108743459712873788794397647666050547125512139355982588634023956180640582874212417261665912271907078470159904911698874721065181585434396887631775203700486832727186653248984899573383651884693673209033636027969775715439333873546630124291699144542306531228541804863860406928420597446465799358860812343857840966489352265767567981375963271744155487663417182356110233956460074096701070010429405848441588908676085918183310662137692975037629028344108682270586887655859237949991773905335059586818480224643919274952101437660089511561445283870202721183892344143228498970206427339281945569470976675965839716181111745700711611846265417242702178233826819856037784742484247949741028739208375134971273805743095944895247816855466031527946907644399513673931897413833117171184970210768168112047736867205038262382500440896387906351139064050710096332379064919229055861421844264345895418520430129643998399555733659059694418899335767362082748638941447543411773309239381150482031277569235195247701006105410437597674116824989877831844074228035198224157276613836068449418659800618226754040508625672003139393197273238706411920102457278641029120743789584030048624991344944564202007386368268886091376548708111256428396573530053316624729134670622078888244194590281104425591445968600143206251834237016663159212484422812597491748835028109684825207160164850227443608366517525884238674020025883090723212393105601200178436941458019957554533179660118448021680177110176389973882837191030947466757286151700133952584003863720253436061569245172929105035405534573981896547561964236308413973336435205666043993035516533919760326226902904828310622897580735409496786303536052997288334906749444652557020551085693353263186440369421910231024504589842889510725004181278896258989967562717210733315069375281474582708693859366824357092474876156396037372052442479045471946552160083873350090969872191623173955615582918248101558433980227978580192619327664472462428391753381095629346179689172402779592089869829190311364081004380877978720212704274842748741517087532569472085994269668583577992513112958528750259572787592557463276893182981337009496975058238228803613388053898181556796992843021268978694525900836508538558166002875094902148267401633924157167997997306416208304119705455888180979730749488712304731007343270054363477469284444612700302732062865256934610193545419727837221339724514587638312862439851307469580358958190484035744995684397444743914337676750730442154630864150791540994715706968154437716666329762354728549825229977790646622099235169895758656997492319288868646484886429304456907169733692102988567295402186806484336828467948983185208239954947101463600246405613883049552639507463518038927028634371856922648341774994738783150931109130391933616908323439573826522211689335980596335249750021039841122379277932841416760083600022819030355068569352034095311783289094916205576634857129805695944162939991082904787789954684646233817461059181480259471472975049079045074975442763460173700546337141697399423841564931058757196764808934970451646187900164569545529873002112226572778372642918281289206150301562796143065291803166787128644400661207913456604001410385342272207952554324283873647430552736889822459186285189450600520398735015364981280551881551375547162053527377370618571983634494043792344633471944979667926419706859335331538203438843390887929660679282544209828880950393220352907912171787738698102755170802661782716036778739820035720760959662994690048676862758990185674321918446825641902000057765063721048763592174106652754957228347815130552912842540848824152441509203834226259122540647626538266479018292460336193846929268335435171698655206660831613772236234613422245931391221606568303966911691728446767783716727224614581380209720069614802964802273290963152308337064170689567568784917368382742279071274326097431815610146580555446845093171802225827303166295917710161644969799532503000953995955758528557529210944307657149891279336414509319536795381019540416677845518061611161526995605386894416291661680538655215369134501124779627309101756325618987766484568613408417145324378324855003458388499017102295773432116898661450861083955581178444535837401899767178989362314156396779475851548669524507309363742191422392082814727777053259285451615643905642582707175599550238009681214647493912112790423303739945189049089649156322319690954435953249821414917347916231236319804781979622333805412895060144786517244986790507647253539318735160499740065792295419634943582836874330777950904089673822524745859504397254674399072809581993920077614319948410442279986080012622620278981838696268296378302788680593986762599223034305211760651827192152900231143084193902357528654527198740899200584341889732982997735954817055433157734819911597838992900666601785005897838382267341012405135133557684751256410846897453362266428420225765513770865887719170682370776107653526771632652144682865625361885049223777311607325715138448964510440275522515523050713255186221611445524105373565861329907575979159546765101857103299214536035767094280846410851143439487267228140752723766340022826518708111612169172576007742489039959704247636092173361769090409466178966225904923869026881559812713922278764391595755379980630128791727121636957445496268841822083918685934622963345860425365367892930809864277872377354038505806916785471455198210206783149579767711488391059615032578354437333598294654248712080253023110719565874568278948557226093074426682617587430409560177621041388979756644589034599264222930111957418749592212279418068806159126174725673007788120648018752544094487403746319231819183699751926619516991498638803432182174566225464795569757399579665375339268595806931884978233464898126007534732488403818846197588801996973137976668215965340576271999386368146154061311550450795291648227172166526271863318067800235594307383389180126735684163129629866122601924179778787527073901738008069443630807185197641098350364787050283698439259638044022614811980113747448108743488265533101209795346391899383362768541152171493651211179457580828942596121002466371762327840764420820350421511365255018099764706022526607047721095359938782179918873643134923049693731903345435176407305717952004928878539822572516521651701896519261562252184394511825583084236711027182946977701003300540274286196646504562518721264076078297143836099449089049192299167130962277353764102661630723763983706663983611612892628852383310735872049572974954954118413130880595204008734565983639927328009942021942393137674603060387459075866003481560172497741442179067138794982584222197951035504034006898629933831614616048252461941665453431246626706674766334210898156136845599836767412250462525746098183353881623275703744146326173050330563602943608137538292107544355581073442038701877226722822227571390636999362215144739535331283344936506143762953176260227471002330857437312493841435903263137626516355534231287300023537185448648768236915795337439913670462520639104540347956378521352151865029309971459155412832496757941713641415791368672942636100731580985207214282804899070186394456601108693214022357959464391396416257085175088504583006070090039670651225583212675610182474487864611314150421343874453145386899703238706119527178954695097325325648268035662772143793700162030754319406185242371498403840121304328809609257716375782450471477289313542900115133593077102750314648057913800879656547404127186001734275492930617952349479575235312970730848703265144488106376479196844310521498243093111554723078069785816950774651058775148275763301532807997696109327846231788210464851376224565572928950129832889328083562998785393401426956772767977239731794875629255229659924451835884041940073511359023454966120804628707613265797144581472042462080375941201769044121094380053554019295485040161989942701084531015893240362471006166144385800094058780907280905004800363075783301250579040016547094569628092685121597713944865085811084989453593669530408879327768271944828712873206736249419544821954057240937533590657301723814436083272691713516078144584880165245490297760075516628969315972398146004578717291479731685788150812473524098389856760692825192103029566912146518478167698832062242046697887011064194765974586595556443673961422679688089462709848570696849568251958917089528842584118739043276611070154279217483611824216031409054317685765779663533039740013271412564779824840884955830236673508093503214223787337196181228792392780185081126981860274993833126273015893539016080177325157947033328058086699590356608829368935121127524984978773309128758092266005780064463664246025260162787331488850266509154328413534208376871147790975001677897019131660575808905167810671702497899424732459793206916712681330214887635266484516617460604041171520322189431690846485673609319474224902618455899926193325659214302207943643021266319154213458704566192673600030907323180658796332693923961646813742855154568938140824791304676937803350495633993541070638005361567728417310779994023359626953582297833908355409985975752639550987538732762546025253781253373800381494991486138599297365164885146411861589211992166542607162502811771752911213631691944325950954663253376780385277199228599230136334463762407654134519632045750794872317000533207040059566644218007793937089752673385733938211192220030997612640294014640489965631557979568898820652396964717480309340305494151671793652601946980751288399816260712661692626438353438501293714163594352183410060024353518111099083562132747976623395411274180026949922454708854091251365207463150029713740480936154797906458346787748700701462559160459844335510543305814176177252925220449561676933413943178602925333904980097019371948496862179837337820615239384069335808334333284677020348920328139469850352087513535408902943159775348117818562279460780724367679498659505953448626640814555488383695890412293942299554596979259304560553218082957658578179316694679625632404798749918464561253567828517473464990801718713258390467442181783760548186389492307920925959726031148867970862328885144594346252400263434093577295089689672466827685400420335849414411676337436467463991146016119755230135551877748774128902730599882135847345876166030504014103902160924584693816332193025361770829319930535711081863223789815238431015931542544747996959708502241230190417072357283035482258221676790051180569526950066141679676947011885907541283242632100097974964679355192589218345279945212128515911270119638037352608699910293984836703798639337142037225392586770028513036305469106269819725314021445011320159775723912038487143315152383017272956642726974364235525965355902876002405665239934125969040257224861312441080514206790256947763766186523636517072802229507692572265957820596938546551439458292952681199127264681679388340312099977147808568106890414840941524416648233551498190882895307687691495653753358804115093868107336342439679057292794775612610680450560194121834907322728563172828926312107785008308201896650297160099951253500845772015815419669186866695364807189768718157776174447598922941785900060992331244487871589766174499011848083934078396460508154134216401645829854104036682641194300987619975272902227774600182543919299900787641223333661363686138204939542600844366404987742235083493733698887203400811391288806445571138663814368445849814836101872109813049680525661677962322928984926228657784510604000614442320651717813076880872063378872896079546794523935337131447665493344894448626382868222861978168034490427692611151706156373125401299212988608105890627582406895123656278552749261257899503318046729416030563595560912939249729088384161937252160433633941603841677624737669388334173574935885590939023297844746808688884180971683636445740018040655385418219641496454235309978673101308642301920502751938489121906832854449656402810180311155629835521367527330066466525733321613715465688300432917990373129218709082094994975735350036545006856178554720682042705133367809243701648264103614946781240302092570799172144618121403311971219456679016216797989248120835888118894365259156354546470955835400104887503784201595909226424577494883922070306150564546293174345625087232717358061745552860578316619004356501191452731244908753102656121606091093524133105745290838728880935058748319781800765965175080575486938022568318671297849530440947791663911478115800051442322462129941961442128423258291147065487342780515413709053633426975937530193377905148464595902296584739141058485729628904578048289945550193869387393567327466898719781767007835002189461357315400724299778496787446895467102063035061618059625333016263069751136396584988843704594555699450476922914344401657688891305572156867967988013473399389410596374460043715632067655100757195899447951558218549289245218578401041132804082624906111002016449822548061725090459374015540250857577849647576159192266745494062028296785100956246996768799258904078589770716741722716075708758818115881917911049263075100646173642332408168434724891422154012217278838090653203143454627170431088729615155960825113149244961120514557303492160044896834508618899964409472261733173405817828687139564561234074757245517453691827016664654805268916081206300447218389151689576145511023889273669370904653501740706191163735121312722348989998335698137513867858858850623153774143293208709990663789413142597577668885501009920849132138989323941819810491785052047907461551945394526181360504071217268883534031898890849316354065401271149389404591350781573722022527608436473435036936004842688555364065153867461116852540544143024902036576454654455669244280825343833635835183516136665892823894968396943678928966999220217515814869952843092791346247747309555185218559114481871501685340272566196563329800921998128697664039980204025375099588796071067878085886732134361981082706275062285902777230211573854306676127055631703562883740587953245954821635756611671799575679467615407708564637617821917182519742956722978319281744887552075427521365189860192446999796099206984871252928059014239779850280810731534307257530373765501384376044290033121218368300351017285158463561785134949725902561614707522801569274485483132791575242259860551223394806771595460055160330841800608530206368136865137722577249136122967339469471995008737902483152711002198630027606555414001773564542655946744425662892581117050038408927886087198691713364760966131113889556090531782731676151957171877417154796720374525591187495425803383794953951960171512135348417795513338370842784934135828216811131828059273462175637502734057529330484879394063459596891654864267043573963994450840904241881114732818611936607322120735524781300956651554399846076818879086278827488666914345990860372342543369171424464046108906358197241430485912748528677249194360970656219721963251559495889758544817959001823367135257833988405646781255352385050306676746898429455997962864180932178144125689308836042724348297399749484490306554022497272942061423223634045733051646206001575397327013381583406256168908783198888972880406474559558678977581115544215010489283635572719847144680430246436592492263982264882968096192031194854040327876243462615240787344618797673183588482131293180029469546784001323511150363433126694284359543571805883470762273609899603108505139861064098783538471703120860687947401405544442436340249416747407555437666130313203573208592614450755466036282782338062061701834492885007550812696757668071723636179842287638103605674129064162822271410077443080811490033950444169657458448034808870824685719157130023405942926338943643748038411034788282157795648112256758040718512577316524950854733760264853695655369552831369132314645296672822042620973039786650296674197141690390743525725640068079723612922752421835810145673085373194941251468451585276902961704957388858928095061699072395170543020302817611344181418597902200009793342536418046622365103258177241021703229311943716961150020838981486635290505692161680435920696519702177988939881537167393226341317562346080022638349351085769389628599239367464923555088144887366522520547606796091442297998197497492502058013227921696540800618766311608126461987602831485346699498696473748823238526510944983542200571054137799089381564977370406771622601577144215073331229905384931922737905626198447078112677417652140260823467930632522949570022155945357252510287425226918103488625963408577983625260416151821271949434100463103049899097330183176434974402520615274140170249993053206030057943426443550737788745356621102094557579049217428189367887284460979780260508797014678918090948943594718138895905117160601478461928230055955756556079432875150114318786161357295209519130000857676247519417115153072438295239057418518312906319018800797292546620286537078315415371419194055330382287240183422056285467470427370598544772711266817612748909991533935154986908157860765297572270582805297472482239484460944747534467248968447492786846006524614750867102493338288857840308102488580552850443020797557198275429931753211194359473278706576858382576528124984987745084696964066051684032742237498765216140373892900409487444803071137702628961467241998711753873303157460560756785238895974182895112433311395275002970001707422310904956229650283290612035328652632427922460429125856324713284512445900228340756666061274945881100616781353164044418242048045254476594731293330540729118656781029532914036747994847512946446370431192030983300680288362426649489378351374806473510034227156086316356736970620911701757846421993430599790335701455050773331706352653711545245204340774904951701021541447762854833246613212626872231697186494991030931733914441760066748290086873947838625762306363022703428995528207864716819222559421469805406583456586707613390812506770064814278482176868368702132768102351090144743712168843793090768279202199578404666290114724418330079888210557575711018772627455821034896002480943872501276013900491319262968408152954299230760835852102520641046561016186906376097582748538034144479072412626597008638719575705262861272232520906108511619547467542304727222884118987842816135458289527922040532684483059840084026752703456132523799054503554520623058399854513115257292755030095595032532580263897381169953777059555504591448203680643585033409909508798560527450385814159480327137969282607627610155395179871087246985801273624843556656947214563510203283734941289538569114435164464755034292608308452092739452140350237306946897389535610912438679379956723303695788733955401877363887476420504706726279730005474249106619964347112125125606291171389107719826412874237328363248794541289880650109544647289766078670766650343173942396187507945074241032129054727768377795708744531426394387169830908926728376320081703120522338576025162938683971170221368722282954615491967680598676453566031033530794423068363531815401188302131851279258403053197356597253962782700160714900100716007262602996016710810701176677243413671863279677191463926563022650400559217744581552095016868697997209981351938248203534624963967471211233165182068098966484661050474112320781587325696152528034614570361545421055061081710316343472320721612448147253963870917321088358982868779574870677365486192447595542107303872143577837440085028614670502485241642098195154439995925155531322909113677030533766422300435873736044201760919311896294167872529702965178655348368475086681827683885089903298140121831277535588042534679459267292362710065852452154978891648128647605822728607389028249536451159304060444563841837539649669213101260084187919005718110796577416982910337939766333355980430105297697678076848389354759144494146798066668159992848574187596033243680593353438267776095216189344658184570369432821540123871592282835950963738900615139532481280376878662843443038867300911951175639973231567332409499757822782783494723800999182643280992823539542380039980359610329800815362094670727653038076952954552215155417521707228227252334734367208075588986265638895273898571877107881047655838274463632157431932215534245160946610141302492734850740192565415789275034271434997833303973562234466761841046025050240140810011518720385694747403694009543364523472328276554771956492947147020160178002764102100126231050785219358867053966648043361112719319656303363679724139399510242515896796509638429044544845703094134761622378441159719754611882103574600776666186242068090961873407325368633978897322637431128558546477634444710168373921404713869750986864672391430077597979199240403384554831731505006444654304513449012559394052335723705880896781858410380631777747608894390440656150191046324496123267450095804970657985476255378208749436935409685276994411822316444377542204227449753988428617924018078799223017421853556898378352545542853581414785010807282792602236903039451040277079313334854886863916182555533874950959457868758543740355478596812300771221910706346085535308007565373208176077633432162575010215951121044373181033430117108109796048700759018651781610563437294052884380285430516060164019410094443653956435110302389235252143972813694965349896336612378728902691615335478454444262426736516102789173240893257825173690147105506514647920215880309527813255547668946458010666466601750917003698075245082587436942243148634810713170499630213516571662878058476719774517661934046409506239831375088502350778527238548269228230264119731779150339525183486455213416245373107109224047085636167814302275109307671695255966562864710847278643646353224780993202240745986206061595375122638987206661430558450018106577426262635956143263837800014604503912574695284739680406199599690195677444239913213633238570023403145669541876214995229414673105740076863825875656970394768743175738043654247932472653253461697790566520206170779878793445782870558917041910506231982696198938727028442769487900779726016899324061075515219290939022013821900196926881195198208697920511033574746554312134174866906153108355553892106626733498157477965001079162590003339674369716742261333418474323509164054288310630296623195051996651447629267332948858358865214236132332573075684900623753550257037065870020858654747037287424097208520663076231389322916400995150599368534034732708510682327231167581457727388472697909734845403172065115016344963708408097793569136381040968884050949125651623338503770376593318944450815239110973914256730923055704265768942827159786361412249837963608483429484558335322272076053313532687603280899372497971009728872536019918847610132329486247499335906898411405938293129908370516117158911573910314261044894617587546331542597202992423617054337290349964590777749603297715062048452315999925162018121648736130230789016294363531406567536493011141519842848895615055901467058170594145842661236140623807613177613094769805854106764953885276836306881982727577379190232689971760400579334341387495861941290676525662029526235865784915289563824856450548540684165343997264048214368555835023534443687581934724129742703388856176565334210159586854885445976684792479390119949973867934107235268957112992606733594948667587886121271613652234306749567415984680788656188199795059915229302014291221313714111323591001243494418233815334218167015965811086618919372787354103713762057748887365907657184467977348967003395989626642445280733223321266006623329435393254605475131146848161842589750526106687499087395439996787415450287697511161044517615278079377221659703372382088613232826118337485988432667228122106333637824333860136258051408951234330520498481869119208253074501910049293287247202263680862509621286960512098412795058956002952821149805996612376216990338954994666823209751222946168710582682951126883889944162131139363024412403216337400098599627456097194438201600020691574659827030197862522857428677533424604222896323014810186639124837646106652091180166773041560361354444200145007505075198748541970673614719184504742590796014656902262648790191016848611369494575046336928132258787002052180197125271544119704095763819397115445021233826054781826097756603689228568008985652195417277432658906403824313757160499419905231208007872894096208106652058835371541162493463720968559947871737074268598021472527036705039683312778057807796969649032675003791253024868449655363106648312158678884527579010230893276881554406129709511203314097176951308097142339293801170216685945777673052185418812241358534897495762937454992842357171471340959600596802996508835059708779459810406034594327970851474206717814213205318969027644697534146503813243593901292551347658418273595636678802241664355477159229731545134693354642489154408313761132635945618637604027067641534026475967174422223862231006329672613178403142918987819591830212334541728260515380001952801516486037664549720200606724118158895639741000484023148298232694989989228105376165839450187118112963327120308159422372091730060368295831406623345206864185439293807751662872012850363885702432240005155242359964210567890293388566793728657855150514017540968174884635818214538590354044807294960560246760290652871551090704773679533009430039281065351708893748488023357652304092841092490700489865982583918978930919733000145754691159163570663826485437070815166918322222937606751312944007408529479821253728062978656897321974108404202372032125052895781663882521903896686927089361684810639852984819085951423581085321047925052840193861205662037849495404721327201918645891772490572753828850093034863644937948383195447085839678636668453582500870972844480175818725967901246220168356313425648030993845767105813971980661862986633179961981604715548705337948722427810737505906759106562945250995782003688248010696284655133727928948521160526104796472276318859109401342590954063659831608928040344672705035229223967947170562469397957985794766232149220247544686375136805538897153418678374917347424574675999775484311200949540012356851601898323555055692933228059256608079477789582499271931976904896265894267055317283590361196323552309076132146049226620197378763807502538393196112919188605437656623235788793669582955918793002716220267452974075249488787095767789706019348216527759129552883678281751860064987465240420709369662062151951846194372516323291506143400514295811699055454055848925758189568274305796484692002329067171800965242231975137271179776011031721977642454528778989832969757805863871926832898019736199139335970121463013527882751522408171096369572586791248798226858222957776624526013167123204583976604846380126724362954760444207004148737426659676849139239511568196534455011930405479300303994014983276653442232852079676672639504779241633317306768489914936049181193405522892784331506179825512280827678001897646476780451556242298205275033073045721111619559058089443241511336753248333031906162311568081024972994350945040006189102569583198968000836054456414753052152989737606753931573753310971051266604050147379624382978630035531205574785368476323143784738845770582542291733484460036204201949914280904091044169847361748893217461636510753281868488569946166313902700604843599944731507600105319523509245111917402582524208891987088168390416167624464025192899178736062411316285267250580365274551945516216175780065286560467980557082535836728468078055959450261914169115033549274275532453498808924132838035779690649465226061090657946653817359485345059165252027818320691761484917103719151971247891787676533998538929190962547807902013019310943743479058883488515457073834171525060881159737888697718523648616740516558379562430002519209462400781848688639202921376416168302761632446442273784737574198908226765002267463185174392366513264017443587556529683867966275457314510317277996091073438075806739871384674883265777361475690660792293770748076218000614123497133046669357348728451856320311510895617113409402544155018558047043195307448767701280580196846838896911721822225483105366115079164038094466071489636641401970935166435362214670536412047751416280058685646487598136401596697345696543759806310470896729745622078684530377127671671997679224230138098005854346339181417123712331207006703741980992746054011342547302383385622420135566419777904153552246968667325667425453167881837127578952408573944075047581350761511576261760261581700703348027359634925147141444569311813022706367641385124187743364466308122768996965000844938315617817207773419504231008763163343358250921194743438792224086090884032091977453998491832341304207331599786450795242912421140926234919473632571213177618825518207439656327529664273487403783413589499256426224703377799038023284917692044708548709065957233993784578250238465304921322051356922676382074894856623562750395697432994707111455479450290691510448777170590376402422415599729396795518928026378150214734754603073147279974236857168464704314374667414379188311039722609786066021697264707742297397821936691994233580572056569850106437770751807770286671953709713063887798137664251942936417344588752098626744716740495562866046671844013389664354493032570147559430955254085996007593260215246384167682449524949942620470118532972390774988461668102774854529934133176797630666327068684123104942612732596897902935732431779769465700847234652379209491638710777051175875408317964422075678788379454822703761689738613012787041295169226562066948882358022379060230563587679334353060077633600365730104714425086658530943050635504560165073697437360691948877910363567048634493533723278194690727510901931587210431114805139009963125569827357906990095280546817271026823492058360581370110262279581073112754049195436533033874685701547822273422527891015461704953727555665493966825354826490102916633290127808082742107532699281688060063168619124310729469498914813040645179095080553017284592444629101236051036959333266402504243212171612606819086171387204814638213069562115832611956940670907719608984500488156098428270391446793789606714609592813178005848076503807267008783718261554179359317076812198080290911718633935742130620300970512144977141661067251827833462149486372685275078785112418924869188263649300223178574497205248268847834619445715604145482538729695341357031538059304972036805010431273639919445114244230075106011787899397882621548615936575773239550982927548675054989202317863419749335385998967337035417155365556964458560358119028536260217242651236085670909590608832624047120082890720789859856968720584749682934195700704193894272741375549113269338413790701216298137121130533974486156659528493085964403523384991199502213801118409190877719002028397822624081049433285052465812156258958333161220412224390409318285576894144628764437006630373300299769695599554099295883571113263070316344317708365451212788043389539894411442456309958394111784964403671313978546356917945752962283351369504772678392433951449515400008941695762141827606346724075282188672016438636701312231574521445307040102790610018302151666489424556238578349876740533593612252846765429091657690997246069143295328297119675581495770881208894819249423859086291253368504716684010719118220992388836765492129958439350368206436331951750075517448032764158159703585915347709615278381885326398454138991261942977495867331325080497609224617652992889081415880507622317632998934361231852612643283137859240850817423537291996466702900209613729811280543537470725920024575895334661232803584443763093955968644470236595138497810976125838947499541460462468764743398618725406661508470741282706877912426599164307199265943337429913501762435479584611861960676603192791805868402590771725708314047582259115816258948356635698758063298417471633254984497580822757920362980930559325367431308860080280224205058000496924468857210217172061694818727442052518667644799561802574742770083711521732111464843068886017246690114659444783397086961564437100406431167425837944126020676233201453035130387211608115991978139943581335934600626936010532971665802837994399334938592455089531235390918351901218647513447791187733873819477488756910984748601285807843522665265384379406957794037839795047102544779668910987514287830595978383079245537395255655527936628190144149375165951325751460003600946598183795418784293151662706890771567153167792312157626658964353978222477494443042740410790811264651286381876038215876378630983460810173429422116628354935273876826393773969316950176549534310916046405532897993427302014926114623845570679490167070819142938046817356528726333195770181152589578026872815017470180908557370164662163545683590560156878060436240215571639141887959728723013304339593121131253679005639794598597884470700355231963659187579915401266582985015694911891553203275991612810463026658686584830274628215137770660173363909086546834637789292785672132773068254223979409003958624069624922369977643311595024936775643769433538305586570127035767534923601768741470456982955978664079114625899604028441980827596236293853089405812227025999508109226652476893199803972714218567205750986827808422905890606319810289705917079144565946694337239790311524439441059202062860062664640568002651640718563301460384790219045919689693740863620431442249379447499463806210071014421447751987586127181865811691940476567912716084548706324696122653525852542509010192757954730255381801265889221114096194727285647915792754175056891056565583768227591936019678413585435357291882781538421805591238333240616210853918554256454784779223161938292289695657277587764859445755285227428675722826400390036374120886026130570945713684505536023137607432230656114608296194699010021764725901152209041041979775857071804444173983165369070048382690123758642807823116809015637142005804543141508669038045922154467333122919124434917934693951887030921541793604546270805356726446970253254433542834157508270692173317510016536406438274203888186268954783199596634609898859282380783708203150890277275810131613777029151122081042616656045484645540012997469469967628388766165535312496757693741441380930967709961959702261568330612816671680952311517651854911985361671301229036326118808332983812453181756863830219889855688117103700954259208164174377689308727695145717328148665896798521260365622914595843397739433308012277823049705133866728332758884743819831500690981889514844459201140622072617856153982248515315083305071876817090888337788129467982888136882253168978507525163986509473984007115390755140445758935677757684737030626070902765141717590427234500314302365633265702773825076817550091673940731200164646983099478642052362189023645847144142532853054985779110009438636210388739494626320634096623773239029741308602600239310066586026474716236758870994367831974125260423768591320807830699270351176918163427761289633019799413804370718239586108522067598785743724871256591560680669245347674818245103171290149073152048242165365830064626386653477131003981737967849507576286577946388603333374227768530110821657845321860356602895654673012385108248623203455103136791063544455807524999283848130194665727751214461898315149890742014907364874332706566715874044560236457549572436413491222941743204450307480107383291148198057376109405907074670023770505533803619906169401978673355040238456766796183042818610829090525906662424425036109653373027132227897900032324069639773217324690824147457559229511472525402718930749942847322557389918221481954414937287639887091381494246083400007863622142693439549581401675701265589848777382885528588219720900380877091061226101372147936674173571510040088177498084212645520444503541107864555142524217565019283104171679291482923068137083019229278917633693425727302241053951685023880384661926902153649702917507167438916432065599020553956789279530146065443493168694335125505354629142041527045874969918427292483699218436865292578789876085520385245296172454240021385494372102807507398577745705580404563583057161012060472376917395402270577822016796324655370911544365088092102123203697151915923920702898532357339032354955171826534350292359137444843908529144312249882847353905431915530338071430313969082825822239851965617827217462588173096391828911897559217505667381748651311199948387117967152038120566980285570264428140603275357910391786844599574852301479622317738888548325860779495800936821808044136634302495626670383636642608729060523760226465392920580712675205404660478357032818429860396637680370294197638488204049272720125287493644416174577699194594862058612121117878464114250189087531439020272701172021824709718350648978795927176409124888367668360624680665694534554494582904988012334543086345546670883983183299950959751858751809610768111194226204409989985865685050011265699242437982155686739553630414741235012351392218853811393399955867275133162073744979291705358512886672169364013611628838141035703309684967760208003312813920372115675736850826297489859870667495672005085638319961783852993499345997405746069069771968292267957318252664867272426835420147618259920893676859165880443680537870526554263663294800665408651909235755736445952529012382636870737935522458361424403126391915310419021671392093794727746262176602110636697694473868091520000738600649834591220923886903268362556733000553849350555745563545704222181086476878591609467727370670370663313638973397958553883788776314373850450707806855639579270550502850713233719530305013096696218374552455139103471072689266037187928719211927162091056303774606393593763591707704842877929501033717286271523892720532362036644791251347371607188723433649125606353112995877798203151548618340825191675152727059947650414930917142112269524652319787622027108654350203102625777758327829617942681315853748220080394324018631426275360558397959902344501868870862774734594511256720645204191191209692173631644090029863344374928457967500322918380446607918930607770819055093781747161037545335380956254712016101997197818188845939109902103519655616042991340436439081714508045507011003567973095745623644644084952158856654471767260239438055939331274292803113966937888588159263961347046250069870187343549217087635034666996313670231230915000440037918857990714898820165065976673615019382985989104197104581847645954857102614483841633359897232487936055864405030883499748172368445572841185573824503301950506917824904836698889078926457094064518959038585309829306110677205111244133946918128164885996010711495716474210332991520757102371088304587292521265719486572091641210704919337793401110262347458555025964860229160897442481421822449085316965314419149383277069290010334354096381131763246265500209557323172530557744658446787963137972638457069830714566513753997592778263043580653844410454331845928073930400323053696004636220962928565678117958648303999049465693408009176525500461581469285334553235608776034755465185525262941181636491646875492927675687375380774488109741017429417391392464563618564786011713063462919310588867497723670532510508436790594158935190494774200384477141728712897103761899142887026335473897188628259232566088087586870603551150786901935862866913080283303058753048347248631965308977319706953608863726928693832076850276051313571697471904044260537354202023108211681323006037957273866730256909809752156636436145594133012194805000277070772479906300029874624261683596781029973487167158882808711393995678163945110073263439307952314796114812345476124130796500770113802128579763181886558152103543828871719379108043173230292491942655634845625887808054380379624567568049675111380097905270425744045158693214633769070805727222474111220033948828425595037958739891065643253000157672360983375740121044814366911748847800511256064390671684830892214558017420399357344831585755453697052737150090015571664059815207575848941901110493290017249477871806176457687189482347521192734584877455898159460070623780404500777099240089976187199053616268065429114920185676031495134105024474302258106203413789390756816870574861188472320791670982151895985533222679640283348607287065171850490101282300987895137091196397303179128212061626529603711052498112351282815315632264206443322812688585680183735409604519805439468734155311343843762330530173992863494843760607289127081334864293669449964664713168829682706659709334109637210420090747604566889401517971726529582907767335136682517636694022412666831078953943856048378583237914588821281836792607915456719191732170236873977467641078210446194385330590251347325766134915055198589641164900258056538823420489841286900005025410132165832410968412178551312461276501402281702798942586821392327915451808933797159425879082691064097998439701941102135738727003604985914652867461376846420048939718149558730821962642774177375057368398168816285701489061739537483779956019531131006310287783729815477581826536761735799879351057659615334358674171368247734414329098508151135297129005475712407913105518942432060909998066439713797974425339922490864089988469748395365849533791869645867946312007554516325835627843713702651004056344188769720637570919122742532139018478355924014040573854583322554586463385112643126732142118171232480815391931804580158831927516168277927270307515719948309712079974771996099495650279843722199066318751752515182667113079085729110170863422681147700239254986439915632655757984024967259818126557893277105092746557398489911932968135966835536737133696598141100098597279408109389813281529510732039789277620194208891222228726584665844610938947422362913641385813157353444183340307325689135339409519203032076146700722247869783787996431478402601776939089521917698395044911210268421875287295848934907534195022207986646396518579858749696992594834436875011104465510338184799286631794028937852489612146701859464053486516264225052643482229917201143008158961992424105537801340573334346706999790215227647728095996289322606162229551967507441431808261106245145738934285465849255869450320676258634024968137849795491196856674868147334331559451620984397167160225689547731100919449322717385576624043281452356954675860092875619708807808769076314953863424823860942551816535649225358737741718112201036396607522972251646417839209456027962040266780394072115928390112309130321802093163759521284568822399647481715803166307625526466549985148037086703361136507957434007194215166124200847378083191423745418962848715659389744474957658021785095001083875998458749917038916803952549319281832817883422824774537555787519563820380013283449775952152333314682055978106532478164885506706644518103734500763858271422238253713412545562747146798357597278410085425698317804407758310902005953413726998973348694928181477533668750796722485893831584496352028342913890979887285245890442789445266493171152970205922745369778035539662301975596822317212921444612124334092491272239524701677356528344312341793670443708761703577117259702761845555797275313401675693057573251497181255747175575378341714821866953507466518676181281460554601889908112022201741869047676774858653324716212694084602816615128991379851515009582246908150962689466655937255166486661970898159843663416144571893270847476319767969892922285757997809437411169009208188134277653367617563433662583663051641873325374069438985206137409818175177238975513769221181675833105347922022147106284604917442661297822822488197370902503592403196174131657279998853321754611682863787369697955190545244175751576592001296743300083031988219922210157074491180012734187393766062688577950048457551919407881606933415236559175394050088032330142350154440287195854102149346823364121020352194548084368884770637084783255334570195768078993315713673184590892337597583729108459267474613928541618023390803405804073431742497084675468215785768873865563963781909168954747428103171213505864724128379860922756523685371200231925014793412008242531581751646104329390124802519958495952197802408595124677684033021326650926551818066459098419134020797073034233542710078665731632035434339896056295535164948716364198418688595000866978418139731348598624486754718820013444708172049146917539588482683672008568185888265641920619968545728522940139282710324252681925478130101090069685155705825735848442690189629056123518130234608998476988032607177654177215370077125236948334599844132236677254707053318455308467778708539026219096954312359602530520745203962384832300168780918102012270315431285174131814403488706215418008198290706935432445623417430576005085240949408270686548513490077325921398900246149115473431002172044266822496412534059065522782602469638191957264452767134189988837807990722553349127323573980031857235972351176649773055691821419221752020220780089386615125528324512282140514157663078319820299571197944193233182721716261978322186648564983165778182054377864642113798542357137226551348017861513273296796061897139610595911256250743448834883916736336122046688570355429439380380080459273117829804068757362055264160274764858376872976070500182867524035939087973898111401182134732646815386869186192540796261014449724470952338332517751690344685443269479354554422785216110687371295817353270524749977925591353052752172981353655062479911358761844541160086915723161879379987722561461192533494375210422827079988048457654017257560129700362103151208169785540422772573871245867644241823070005959302432622631529488557176073673368227408006051624117665712739383869028817001677794036905741376065972691445202558068080325737858874046678381558938171912493552893418216188579069547153783267933959327057235043608896120357015309081927938245592258425783276689532779144305187793108052158124082841730700564482152373652120613552311399324529395625664574869339854321399106821605484077622114356107132458193056834419122517024871267015110610645393041436745883416357162887730202517197054871786092907548457700420106581056869283440260822880095960142786585671266294950976110657466777726100163308456074270305100806007285391037713191139726161985213669828252401872485799721606542928084872907139597823854994491821718466261658657316783212928777830389380378905782655765508872762895968699267399502773454093779998497989265816317513058122265337620471296040282080552346173050265327023836180066082019391089188033011937370902052698528418238608894151803640448194508466931552895824981897612565971604570222143595584591410177338458538769830752765552543305029044567124819606785290881501479295426312647603971430138971612226265102515652359723259400400225066514602151681507709968371480006218918607494690752378109284022198735488136270259274384839948593372349337931166185021371914596447428001419428375739630991735490646879777424474226375313858911576463265922504963758014720406413089781961272729501355359042544540737296369208806065442094696363150857129220411070446531118662514840423806137574187320567830019988256373481988989684585177388267154057196055205425281999665139829432138388718718703494428027792850817515123501759310287893700652550841054153323159042287812816725397969473943015802399829653315407655011595345024569598562342844774261356820417943426815496835878988503768463797513775437702477329418513881569111949597982334246238967770767945934939735546754396667635891620741317065763353608674828907331630387898338240609747805428460477663850413794912027652143118509249488777556048547309541966217788431293998850676551647116566554839405636783436093861927897718795329110078707912479119215865284083611702218640424231162498416144521070135162965162810652938188375740615772907006948777620278118076105070262364188386271705704968109564474916908116680869282487106297075135177985809719061475969617604672618504891064019380957929064522407991690013678390581108099085120767643899149869626194159271776153465102386841649215668356627554079177605814013086276865630066524838997541162223012366971110912895030105366328047186786560636206549401996426869591171986529638385737959685288761416141664668423652835812118731773031390819249820526397298453933813450828795596757390547107127022400515375330379200346077657004340038865902025515857527504176448503153929614434613943072727600916573523723666195608256748353158791962734276904878345506083180753063712818129528527917245875169267108918984780447288445979610475719834456213923364037296168631033729172348442489038463119274342675895290655749782701828537139618683703726154998728494589771619995143324268725236122152753510192434398465985285313611251906974136432368714595608915370255385325534373788186196981121024314761384577141129983814663724300385926262088723984013719181301701665106680277091274584395049958089569444577804158937903067177890797481975533507174204639180102560449367755319850020142298720484871812568804605185242746718294184602504520144913276235435632075866774893167386214714251475013715894694058554994844637294380151544968168418322831839048260544658370935231212081004614936701664679563325894721274905729722200159324749458091176697683429789151781910544040773696254965511788026650763322651628542550897109358394753491801510429154963705354766086891591780791388350301875833102494389858484139310843000495331190758801217515686937650426173450085429950276142662070724181012484232138502114567911156193309249578100804680255788947709977091913836222172274231628383533480006988957373002162945844421579417155548904292431624712712813016558306335909154023095406213791037658778417716006895006720732577509785684165104420156055722174330233213733583478172339891194254966949734566871031631925667858089302026090414798841492051316271810457515554029042977342498896437373238241055544816879759212134296651910763601972230591827891543879868014589168505470873436190004928110682848105167064896424795400019187964292307161458929143400360063649883715822154577809320791336384508809247558662467608957792996846588549928462478061689150795874412322268604790800176028243756070739313607551609111287577283165859121497203074977255731165353437620036815193475558863917326180077481527628735210458959874491876180507471854472138239792077963476412155339344884887648268740179356819147073247629556163664595395043652584504526945920994382531824385124208896048055725465095846854915847161912267840743995794371582247145650124091112674117207720069925556507041000166619680705536061283017444014467690668451981380722312933203329516493119009220232440721474539691813060050577814017940472427154327139120224165507095191486958888923833212458011159839162548957739787476708697939978540701328391181636555921490659464582800020548931829647473403185377404651086999196854295951754340360216606238677202526996090168033685479850149235618575615761335909154772986712555391128145442088775289871229363943578616856555981167069238276081724659906710577562011253678685131708821462727626619152314654331280803700848201169677476502113880753665633339622488300259566821551378413200818003900540308782753474281582990603608416270308728889275214737564687326351397967216436640962338703458530597208638695946473663081647140225690749301239340343027516674550399381264303792386216441731133662880256480011965128959448238728159365281735790641225930884410912774640325005620109705137636181094150760086884616265577647298031278536313030810047422634726847560596261360491689920543025959946653949853452287318407089754174885401407456372588483744564686720459488696068606485959118269290550998834417212269078147050925829908995854627002647890349852437029872108735491647380235792246674469683691477135687902642149660450390565488981336497406019181302582666604792311463950034228372130291850108798767641084957085402273361701986598713771735286916634159809221095109925242353933774663526771848827807101166124278837957230357971560080679821365040667819828638179335575430725299771160126686030605250540276746734926119711245161889084196236130469801508356764564641906096617969434763607233616732003158051043741990760544739017087061800612221548707196650879656776667680426873705518289979555678196453802277617643070725267528062750104502166721310031723852834004383698482505038333660954704073554675156399345776528803086539496449513219876489023854401962157430476277228562150888778481681017044031256517576811026735313114347084828069665639051632910872990531885310870997048047833221370918079175707651847566075375821067600914168116891336486219568936994632879045269312905947992743163778110180687626585118699233932456724342036495292226953166373895185169684374311619193248402347561653926278586740644770259323237836650027561342181115018609377262362906749747747280009380972332025250873987190891430962693465061842535509690943991487813775277153933154284417492242500206076662236797995157320218310773016278273763215980278880472742640476959315306517021564279891366922271845902200457711617161997033185517369093460563870800623392852185404459125170022937392170641466307433182832973819641897548232941093193954800920165468117476802888493442528204017186822251956640048485807807324182038243844377645812993451242454657911285171848812457799160275096039634186325425233795245887565675435934326540283766855624249520695946459964663020760535040269029324711711968045450340378623685707964484260876655952457915764158347952292708552952825635304654012644941827123064110801728255673700571838061306998105372189629962897187470911548245457598021543447658566365183942354911526083721656289084351562468422880399981855515855778722073287923997386156869335572551825030293237515799716009913490502226346974501930479623014837885379490223775719822079291490713664882982939963227234313023332900660402866433623654756465852991660308733466358336904575452473125288379471993540162956097141908616651006410312316977541529559061916172762871898453861929005356647956401843081307193835665466875957835779382311841982058825926183022262000731978966307026931482102187151463035403052454294373449051335930924777237267082516993988745846226601286683767539285560411232404654690618353666491384129532801792408556698419683646455082781707855667098033807166175780807044019741278617865129528423725723509158676346799965725749616412590981956244901209634612128467246725635249802471821543207356940061743071915965656642223410157864473477347667188550680535592667304941759300445287463578154265006885607295250468549187696458680895311466036033651558441788794649353997569482950313581941785348433810072670802143584686725373698198684749447447691026602881957927908151333536519851295880597195998085694571429954874272229671590294731917272396323600685343884078057943050544178694717292240555064016086400713576219996961447746166474589897157841120897273548163885372469302150954285061962106532869755980722803413131958634850842404540303318758961856619820410450089104248125357193616554379823544111269414159313819006500111647183093220057303013915000835950091594202366271748635171977176184073329756222180671890605115885128505011654019293731781087892999619429418950141264269851149745521603193507596055027184083887675144247228113843786127906154431208440832990915556638861280461016527107007451704801093830253255273507940949747674239789446654684642966576541566762885019987636322106830025105568360879654304140007113712921899892436054528524625476660765802731066726185418367207157513833889991938313795634069526525854690053271570456723669437201583191465087250454889485600106882209532336463330528703371728218519628994608427704393639542960322012142214811620005284521096764440667632594388891292469574238331159112945100199037762959183584403251457565324823505043021272698079100710854406612516806772533029615197155354865524341753931833185096099204564664282768021704967740922403012804050706897836721263125742273935772322101294139838884833448649622349646256859328641186613494472251194352028165660704354580084838849070645808701750366867959587544897220309506527956998423056683127440855695202771790728215507481520763664224420082829527170085780288563597106391112967056155310366972294529953122560177521683557813980419886530590358056662814922255816443852524115319934715739999097284904936215608358119484017810454297962964850568837579385855508947928316182904237282862554646032916937932797059281015897582405483304583961990233652536448965665285354308896283427965536579807352443897515431504326852133508184329020196960619616195332774823631576715709772361392487924169724371701784989479596546475704901980944161800633144899835232560001794401818193011535591083636295070167604808004250509176486523963522903849406283033796115035389610348789336966565012402191316092780440037125854114747271823186902664042115591781103079249370882952028123243184674147754756314102659081256290845115350442292278833521583017415074625472706680240123434006050315041800246201393569874390433734289017066166343384820164013976440566888259570022392682237566450286792714141431592649674454299084148138777622576461682428514362972039909509945523860647415185189761348979913512446234275336647996630924109085155969299997248434848439943706853008901778630840964284142736951853770615366968497893598913327050290633413917275098880382019609159239757895273558377289341293576490093455886650076469089294048655650995919860470528160728852702073780479827692491056340062493640097706136084423698986588479492598675111994501183348763764686888086366635772663732589696662889388945015776303344555467619948034649694252408154271095601774381652647543703587229509133399358232921104662553657020063925517276606438299301643431341492188654962145171883089110399414200601577855781261032744857792030026953838858146215658144532742386101851828064231893691107203020348533344698303088512319024397324575255757602423362172386742237179508890126546448032923148267945449501039977818534020171901821985512273856506719179947863495504282571399766761184824837515903774753196314910998811406643495352091224968737223200805855152849851445440709049914583332611861536394029992304551407687006207236709021512694895746953457785507945476018801366261763073625207198740164132860164570978305941069936779799489553279823685608825292497557810333281952509857654445748081764138747650272672023219596184610587933883510009331435186495236991846939219988522466436556157807309707143848694829129651920762612103098228441819126517125797756864621328779896531935534681357465161184412451724473951557885364556018927050736556569103533961322353018444128248383651322461142295939941859882717322872814795593871242595325840585889752921867454357325114803312828952347821530652477719408532306978718557851718475421650649505630391129190423333892718104119102654260418262562802199412890733414768322731835211031291877920164821142442718614629219034070625512495456278082595569672275134117060467040720320859861896283777301087934861358894766274827945790087569765037189982295576513420241598337978256253326442884357416443697242563254603775979419948936573262471154786464430089690223135058798601602480955610804616747216672086409503610820628316352964619094875000577614077580295217825328623999352995493572888772437813192400235229002091149197036104369954220354680973500629568280489352464947674851146616033578461871413916386519976786849023278663956014995156151637146175635564740247483997459808227464538953686104472672544931774782130674464732362610612848129706271331894549205029876521237831102063710420861876833487183755037884816671473888325259864682053499158242524062395399124978017194286058669682959405779793316420081628549527587650518516772336820221944220521415108809653988997136079650585332303897023529218796712298957186981728365838887300216018839073847496553396302033315070526483854620967722969102578313431047830746853780872384797579279619682366068399689789717242628111057799265017491294813453091641885663592602149504513413765322397030337043683513924874011280644903895695230250433075645420439119969261900406442649530393826138281413532770967023887888970555256790669588401977054019656319934129840080208850009684680526010969204085481341062660090940739439936415389257901882419744257174387509258896867288982521769679409109679106613334259577045629562728634314591370936120581567436228453060843338972538495883561105032185036565567051728473586111531311492226280760771682871436678995260080593110496954965646506436979836830238774635473504569294847209864081999264829260473625278014807246473983594209096488819808781763649963391549372355141248308801022313321372066497629125242515189548568002543629753699838363671030658175003506235449288276048426429643686298388668826209078806544731154307382942214024348161331519235660609549429999360869396083530850041344010638885580489304791356160655381724710841211570724434711582346531174860421150940214149304019966342822817011544484107934541172791611803635719580871628411809597167822546609739980018752943911271811972155293772195931760273672817935576203769085293301330782975495108544401603397671617408396108006171299971356297586347555299083264952077925207510959925594557781485153508513246264746937990339016598187931007081368734646476192626479985744022533396241072560412606269259678509058132931848704626063102235062294272380385273200693259641807985209232606848159461299375135595476148824578472886254134640518109351714585108956198667849457507477575102097294116950312924714268245954202364856232644859910935697866811677784307460625225866024890367851738958741919690845709075827890451135183788177590780343094826905875467493151010909534609247048013745185308896454228692733460117490905071815879922631355224424058020069257159786269421199438374898752844505376151595084360074463591361537892809313397382558544979365228440838089290018446724854260016315209652539759190934751240905777359550844867707692933458261962526395572313925099911218339200257344540322846597557219726233265367493122127863666658995823298508575860931414002365727437214234728622513574406744503327476031470781216937463552366401999172238523800572506638846881685074770701908218537306541521785254026944430747941091621431942158017790586869360120939064654781364457350263416622071312105505462234621861436642163982593870874613191472756825551929188871178898395941062818829802262798415935606558180307524936272420362913508628932380422139051472546191414012555463738308752647585239702489560338430979903863099364278717570174715590247206696917514745179318955644660265967125814818842756336991631954114466621604882226581166147122566412113988996477335516237492743671364531117726911905076860159640227501739900390524508584635773069334998371931056211569293773709245201952893631482308069572891707480773057076562121563868699795335630042795381063682844113473330432853789370127521618240413980876489069317829076069562309887532171524768772778032974743040336254312860304082964162370885707911038063758845157083272208597830256317167069417930076692145807649573434959872398634929694167258929717065807059784015133334068084441987636893860475019613981127749266686718040255767984183697673880152284846860883472228044062522364902301135446983373696304911517698110180217216833852964404039438883056029272033472773958597465319273914411257627941629461563470964911654862583856506961447906906243852092432287348649211270502849201846132897445282792315344783354337492769892482146418028764927645415157355585137163850343236644270791830769885871005456014660789756477930753748010971737262535009485472782530491625220834051434388705983039152200615140991048592957795471620783922199228517221890095116568495638305598312421400246383226143967443567190457891901516795039345949393617113689239960397112646536957873828800807029024412327701934956844645412161262199299136499260501749813586078675673538728927542981307077669682652061659362182791891352628887381575486359484172927849482485296930720207383783687005377688080889559508671343770382264450420071124089236927671109396766953191649973573198058599985430190524886581006443586143109182885742695007459583988448825286817987111776980077720163542017191961700869280047686069217699284645497201379772730072830463124498039893867901379202576445866802464038937651792643939762410032471745383554196068527448257423010601352023635286883935865066112158436412665791005050448828363688687900970290935774859718018951613103684295078016626673001359319789614666065205188771190945866639058413582951445849834935982147325078527087192816961973498054715305917336862854259261476624004121581084123111380541340495835432808295545889556219005293994840505326443016666468690952490222879696485107110358099906157715857901084749349254798247800280698540134768736355001282484409126104249293744102400128232134931377574193736492878109121974622402434271165151517837980141201334677382937957224187347660041675982499302402078172477731670422779684900281010298659650371717302408383930693881165312330848898866506312181341499243427167845054724624148393178197605440053980035326060489341565412925657011240258377073264624472826950808695317158468087161809740741829003728064037158201925762322993113131763764879024033219603879363917623721097377911700582177989437767901824096207501348067028467146187214900418572187236342695875565435063242130272087543164017374455411400608600204734567852523913147519696530491560232934129633195758966400272883335292993360651769067515094576500848893449163814150790119645887911524924025604708356510850525718281018575895893239151738726065119772183800719380768724019997622387538491322616940142827054061864264411816032362363332479578913204186474606393367152408918700957600698743843875277596075150543419769881593590734990261391965898188847545656614536395303964747451767611992851566525673968663787996600967062891550364005413110235815443510266522831567874000351510781011366632650185025308157905707816576270806201789745302226031736208875951632064565731557202049134289559520011097263655046440862050077851351159501749555910790062833723672956465964356408968473333416013792297330556728238894190552532704813722367588376365394030975281726944030609150809435846956048173782813887593794163093823618603221398219103055060968262795313331967078643145797129159630800552195598788764771997287793559389322690712813663487302275162312247327898600256182457964592274259312441206061556419321747955292836033414087893150223205012390051949315942860608024212310268440127493317370050180720369386786204618010739892355485132611258655300738262907032588577899214837090550504922462660252389002919170505798698273514382608751790954876431456597567298896131197970662430386804686928562648036050059393268258175607075668628776483676637051702333204753358673119716237504391134646783381348299940965637835914674961280032406897958937087611820180070113508724072808207085878292734133633909917152684202562066489539308882577967499287131955995442605265148383988051459661247950212922139499553758869942402412534602999295817844823001746057721500172225067273264917880020011948837380246390104181983099367319315225674019401457144409630582133162413193138926444070140457173385850937011143064241710608956484149598234778738568166137952297643424672390831066142191557825095274057955139661785562695551012124229501745243190773084624033965928264177767670304656648257061968868112629277897874412080860426697267293095643092248439506082620330711164763016893576978787465383193423046567922280358342532988034600138154069494115286917594391321294917318948514179674143931512649844436329653647857544655874605096913137538372650540782080789267103448137201860365466978790998786746728296228320310315032721847472633674401045174667835993939904089084827443764596462289002568613807388493677671080129013827309331296397217914430733455016568512547348372745859623527642683699022989810196436952916442988323276469580785161491891516543989622783163972001575621093570958062168550513909935586536986937178624969639437423467790214032292723349024689635659922043543025528689276987817858608942017634191655988580735385411160781477357712931449262469373047178515917995823117411556689108040991424640325788351412823046657123041599600615718192314454597157319910657260725012790281665955150156417640184618816619564650229825499629671554970914480281600231090779450619657841560646288301102464081952142131375748116912678721341329806325711145068447493774637900124745063626207806707015712351505651078971190564054082982621751692170010842639875101190792392007053132308500866811638349413723309011095754502052990501910027532395474538333663770661844967401669181959419050831659456368494539533992409934780336140197939442161596224113823317559178112671748363022250572023027996398694002949117448962190859513494338028273105026502466829581831435791378936333404399119166209870454463419268845426282091250489568137804049228916761890365294309811472798308061653106089086833255613045693789620661122324424923701658093813816961427892194532711683396943889062464293311995831049706189727145247397232649348507906370640237189367111385931832928915319588144723227656940794237285135331865886303114894162754033967766165104518024572672881256300772755792043932975332563947635371882616360970823836776458141257174507106158266662087348760444553053527757265128115355929914974289884236776783890739750226917785670200770655884435204978614336470732262978759770907561838081491609487911334341085546738276985726367538228947402015627537304488687341474515589001927714244577826149199962037877485608685705904972832471843586057179219080472387803975764665838449184753961940106750697818271124887015756044520931963957847111039693400469706959789214125413311734211695907690481102122811041070968360663516466319928252214788513398298594951397412674160892946050576708095316222272053649653031453663865987008857872862859569957990009313918730139324376038958512087970937298024952564466828557752747276229741004467921862641727554406007797949555506054625570477966022301804464030329054788254414453321625452195828194221955782601799657214327841804171575728909468629031298999010044932400461394641318542681126227835709645794923095963807379090197664400218131963376746707154972367679831146836838453274213227463466483442413796866392319338116155016420201620296172653644948395459224199814677307669153290582660766580322635208258599098725378107286480455828212293773741783049631217961344898623202659648139564189411912017713646331164584817235378875123643649842665752176638215411182996148548023105652039212271702315419081492726258902201274675481292491009520018069331703556116092828994656208717678045162895977640029849789087975999434223215286496667852632833580092343004767015830096398548904255251400843490091983364250208091033672860725010724194724112264735738354137701970676873837358573591442849373640470858085711632696527607505076360763755428346933838687185732919043186016443602103490017025779806156166318453973302801654338819739919502791066052302524475376556787627979123876767840182701914714112787874112906901042170342110733880376839729897457005827385121950568275462843838114327907490043601215041327752514676379363052103403647096311035045977034946797975829075317025484912517072196839494372227134335789703302052780232852545060940460977535881471592932517244367316059529855675914539088858075384299911911079345942194294962829706182502702915745157121081413533194188978983098865912050704599801560381005095969216732606033999835521388628504431589214744747940655073876396107895610982334124889102866549725044405221294176141926093544947896616319560670561660108608189757056299690967685856879712347368459899829719775035497825901114667652340479363194209720057982797293797223302567422753284169817472798218549390624482571060802927386281621250867047690339210259406171379208743940847669575240155876113880491729956317946975910387398369933035647126547740256148888384752049497514720549067603971406241777463558386016435756624498206196130548609368559489366952271381517940210758573283746080218345956894574720417257311723591371439855960127008785284394348128502073210178833655046461797128872619131554297448794119408821963385923811561758685292958422990933359937236450562095983521441422681472930495205622148739364243835622916003960872378303749087961322918109183482260929476360055293297320644566490288963089154022300867868038739428051324707258876675292035331830397027534809330808996327548296205120699938270088614296800417109865004519070924449333160728354688132066114429227057759828275856950766211162489113261353744625898220200296205872369040742822047125513638609251318320728243567106403073718078005586630159220826947360323737357502014068359108682513356936444057824459133559042166383768243973737696169286776341695331013949309352871577800434250465229289618874106294320130155912876940551174321583705757221434838826932765832634678110877492132467446637815688344149229324150130930813823108679281434805614389371231076200301816577690677166508971098785684623368374954773803792676500626895771485655510077197935292279249478662755316153923636287546399665210696609961250719948466942419823434728375434700209993219700348335099177954831823082824900683265609532195117143799705831756307792240697125017357465442131306155047077109535851713413499250361340319250287480781542457114059599560537468337615767336321591633222091305796380574442833952234211781695762802218616352722646872544741923666323380729678506778838492336817752299267638740661895073559307216797520134389126299616197435676978428487381548486522049562902413586084336894673203327816757321916519950948684253880031043217548697853881495604623513849147152332695754978020497472956647426725112738594686241138652910274434646107183202747328772081239590831825001241901447591836547376020097667547920653322038434636912856197703925506278404093628585538117911494994260130842477813764836757699021205368063356243924263138754732592717520160042620363877960744049055595832406993938511424424748547595762312422519888619209162800413634501895759260604545022665069452718238259942431932168375545425803080387413960575547604732856398034727124923313965618723047444099842778349797323353356407176935070513801146863490644326111420705243196817672366594090529080207716696470988314873385369298169518958179849686978226470232936086129815883790406757158393482959608208034811458068932143878478603799084564087216230886876444890327391616823099109397318104264720465988662878425736191250846740494021222611622200624758791849302974227522556768558865183364645020940868894751318055608691018515584621362524751499140585216582438640398663095946915943023961171051654646536869774837486175857410595766386746931689863120672378871113219761243847132238244023744776095294574950148774400522805229930435699177951411186318771418120320039604729388777869546633579733446588050549948307281816176007986032858417756306424740521609315094090728702037317045679706351178982723833249874979813385049896544627279087964619026220594565565998923394207617176451617980468314306775027433756361408762319941621905734376300001062736958132637260030749265075254127389417553720492082109722361744001624306819509582986419119926454364495895066325586238743658282872853798362300406468656138526472885567023025253895524782700282831492043818113006348274539444507631858163475504908305681013711790568468861283690940528486995292391431837494434454309558349578645164480675322544374192125443157863652764437479439624910993804906658664454492987434737389496675352237664782515817010141312738095143700545786204426177823490519190978662849411017599902591648420891600008089637149803489816185893161311859677272044329686450921638262309838569198805752852100920130566084787875564267062181546539701830457677617421373665544929845586638983847366103973120597630419376378489537790675927052760088843779407124991068254686767236820060568971022483919161066331078715571340603274904735649584662733033500215598728549415388492471457952702265123477257610955853708880395347321623087104113344458577777424923263418280501058485968625577287927060341155948033726147765991048184218061731178236564872050885592453071363027770511077058208175910648032531339322560699913731403684311441384620219155157649831611095987060889762829605762695396614157456054948783712204841356880539865880185035378810332515399690859977132473762609948863901280598776274520755451045868788320706762690991038974166657974349395600145792512695601666128747694957823829580681009817258950397904475036614285930883665092835743663110688096711901995707230468101803632783394634933198687977954978319690086448851392280699715774090769863744927010612156158557825787555681100462609958976563161086719369420766070738839772975401788628606703874454382592584415085148460908413740503879373112309894465555228629785504774324760142532304075201558095083197325750550014208456423061376642754103610122231038029383969509245412073111271774590265770316090387957201115645201430942598031236431716963180183124879515417018290708545436146715463119059306229239718741016907204579083373062595830484303141090026548528833818297959320592128983309180580765180810933248541982421646165380843224435321256029730484572955559604977692497567186358638420063641525143199404510358139809076342065283619217804435435497769605908543063769366797118128946154774530918131681082898839924368898652136022894497936956202714243764973098141928028396262837010463481416177358325412229961896276742600200864978466633365570679060889504016124569514146333004590713207279861634459291931482116020042175308828040015582902397388168175866978510828306497643168821093724231323400557784424499270197260817199219780171909807227334328058585502042965690197921474087142851371866910477786851942244294318198636282924494943474350527471612190701380451611973163054885540325583990161764829068556531106201744714561478484368659532347405393462964081727670986099728587927819593570552385293634608838683787577189833310885937861823139362122163160142768567177552043283723953524597451301957127465777216711782228680853029508214424820122698299833393217554159717541538654599864747380664257475765914471103844551792394137503898397822901066603791056137778333970241343991861894375333026635466994162280803941031476030627270045866557765223641861855840941054483153158241076747607779171078215305515144002721862405112312157809527012660563121581301221077423369984943317473860653981661409577030672745756164053795983075028927384462141116101643771090267222007926223970972142914369391864017603881635321017953443888385110270767403393438179573540971999580252455518235381932641386817467273219974532550402994418159660689503137258182902787270619813198676774762480844054966939366559850030280113937029553618698047575479982753431896829649326960953312244115681211441596225320843363934832374047591105248183761521832989485265522652992002271966518951403470162213394020889639331098108953493732775198885514807541275072768107642544964603667362373002159172613449486809816302060886761938661909567795765510912760707859449915398901478072137203840305176440004107328958754654800588805257550277558110328467585056613221772197489798551474930894061047057836267607884178579728154939121088076045039777174887683335768185228841250732536797944695979853818546957187195030105406553717707664269994629774447489332911188793529634369847165502279397915986987908210079548527963356127368677481477053369747782874791488497590093198049844784923547698470597759175257732321073520463993123583333777451926914873844956479538547365168364557062137019080452734217012242649851360931680784646212009622474366929332736075033452146940705076367476002063366555287205630355185609381066755286330656727740526909235139119696644302039504330311089922701576571836843141109383802841121348585781239236128443991435767479795672626939818808394281551283676068561530205944628499505779085729678073568592242120904308544915671191499328666889282053225939966871169113433945314881638161793611842737092112062671421630787155814809065697126908351674699973470984422901192106245256469589524858357680325912735489553823996594497619845278053113042753365500928120362043009177428675359304036347463981541787079960040779019604027347069782826147373591102735404882914888439006633627060455614981751283244396510897884062056822524126246691251187334377073248212211087096271931159353119516091020068920168843301959210462118380900484323967653513267689625420497427459076101831886058404163123123574751573307515606582930562610041532041196050974066604712911304127996388577983359552252221247864357403051893431605987653273399460077936426078744723800809454172479822853763161263958747389778500273915636941370958236965314978916558430988986074416484018749833110018168051399114076875636280272685720602013103925644851987876754891282538000956540975346285474639286597327092452914114007301174153586511263072631362147949769064651288371381801098782331055672612527986034194110190867849939398254069351752629307984530604793328460804745224670712687608311769943018609958246043152593406167130825697875763153774476767098892786459978017751598943599871778417037492490331724290296976862358916004952844851839863342492754320407254205559911300893647538176306707108977259362497981744144448405247097597171594616164323385620843382958958532758878311963010711714784347943032716631304271209477728181732179198828070844020641830990064067001431469523546516318601471192045046598132667880173666287165801514073211173030679981594577303523388941654491291932326774332183446028296722382978615144522947101286679338217595610780329486450332045273653067136218812309454194659418566314177995374227734832286582650339348560103808549926869430143453587152954556976620887948742030858240913365745907535422466038349259726974007893918588996523585478085708970906232551712093922699143523871913833862773676962609038153518270345046663075118315265306328312491123241138318393574333843239748540968505604019139263894910106198092178918997781062355039055329194846638864437466107586103985798790853361269403213365467740204908741807945940545200414646579289980310323573086425221097048534142987866932776225406958103547721195396284906679582487142043697425271510291178459892956441305071268617445349130106379306011628924118683451053383682469750419330155771062011328812438844799061087851409000049864504956923584689935348936065710433211183346909921179528013422595731057931052284921771124483062483763774554497552956203865847469666820965851028431163484850617830271073070291997654763840403326013960103139359781807969917063113468157423676264272175162326513735588434942506690099132147724451550591165078729437953645923131298558082175403750578637814026755703958036908673126059008297155936334626924248319620075141302684527218459044730192057602051328175044590677504692587041209931650929566681997325228384589577017818646812345842101417347498545804643712233990329376183850349307702184254992439502424393589185063008041505434104325339298838111442533942379790777236722212575899018992792564287625808166877019920725662449890158985684235674371004926300067470734262761558398079216067637101515510349939847872822711101358346659235361172894680819325942536659368029699368748259311879255201094695235070202070364662992804160782341559085618549370332080794838533822166953128001296284099718277210904621010951907367681171048449663622840586478887198430326371139001049623871507946802029590482286507691730988266996333544756116991087926666541541113849388880950164804526464521218321638566878664248013155272952744186521625382939054444950097622704978504175064950101422608078969010080091757708824000820994053641231849853408240578340088093158436074739816441547749303400084611907149438755636892745696467087945914308619330518491858887291654901284332676979600614108984107938298925151879620061704329344751265443478847785124579325520100914073440547449872222642880843764604339066533836562192305520553822126552401813451488661297080847899370849148179974820823638015165625655786127365701924341554265010296492074041252308811646500414194405326358543770959160129590320377154144369500413706183147530742598872542076482973237764474556629962578575930329426702603079056222230991849503560737301514149251466280036202911584572018072185790694269125541089937925601589135776121616135764303449187600610960363759942224132680757340920043386375814604297968366782418183386850971921365048796659445817049315152469495965543575900093020496559733462401283166760143797944873550841090082427287877855958283001583298728897520358885713112431991022176465428463869268949959559182730211424471619858000132211992184800011540993339587909235856812107131143504676014495396964496962095684512407823211602622163726813300437164620930341446489088370040755538750200591002974318821641014393204393468152926689974418109763180810205698587509526444393276709891830709665954375163662119030856933410770311766992754321548514359984151857721501175134185829681152231418705137387262330770485425422994133420960779399079305982341985856394455243085141840708572947503277679152110830591975150002340734082115249689407436383922345317042609588707939775540222849259346074449211460108121280497603680013307002832559731435968090512987734601494899996486519552976106660798320166107616442603618939783725090012063172695522862269060090014784467304094757403677800732594832534161912544279616979210593823147892013092542286269794360309906788673935504120610672036309777125061801663927801745490074939758087192687926412114311229130680370510931015112617550630567278905375395127552268943236935968953373672151360324851562660711926446142159828235146127547464314553663014391389674717899335423401070155861207127262037404256367526816023842528512086080625154150920395903233007275518594840745236415747897752122699232707748782758464952279868733513956482590776823450035534263167307252218788095498819487621570836166374435445230856750396388722221170639153554204773619139874083508102437074966914974868218447558699992409954880859583185763496373256108134991765439199087005281736508074949111246068092898405982330078450528312338397538631147691336771941477267570465162724059325017977697854538883277033736761440949360433448604774572412697521960133932409513797420320046223782429905819009028352872028435666561719715056180951079939190328292219478060672559550223130043628773194738053095577310393689086089095635513045209084394716671854199157937651694094039082815629384897064158090425478139323709956731160462480131497188455747225426101334863799969884157312202945917673386077893108954593093635189042843962671611678111389689599068633994248914220299245761305483349202473452438569457309194946346488446857127856612111888036388874852708772902536463735255763408545681652964249274724307036519780031841734841816704157474728487914326229667748701035320518382013011298417110565879102373989429749724165415844030958712721478813411595511917730006873043852192403359519792879783535020133950717444892678436691801972234693431994047386128966880030541982428917170873175369477909140718916972578844564241490016318711394714004403625285563803811307007535522271663963583264771167928542985749139629385979532462384539850245573068956919624048985934493560976134417433346901584609081101658315517767225521134520574248262208081613445010089226189707008821995352138222816988314114014539383369287670299172472887101879251352778935669693967877155699121589343615221570300503858948756400434539631588929010790592984579786756366907340111251419383586532344597135001407974760964734231681324064965401784573214384412992540191514519752970616161950050687875137595265767539030935917171880143041808252718593282520029714077668138622021426050740337723999144043483369745793146991469184994341799855597680657381247106488943217961266221916628412598296697140808788899680122675802709342355063964881309427341160055763928509185515712846003659322902993432938514241401684571736683568221246136248740759393447340077927997812899292808220734997831715623066940036484421002994195168278111667842521958126217082496904692701443952992754362901494604927913228589900596736604339356323516820825333483328658811602997877438303950608099261110489806888937684924325016442658010404979791965056956155021138084375280179541915732488776609557419710920227348678300324427812067195317296977056796443274370565185361781352705943432695522564013506755814609204705809340284487043615647787819242450633112039801368599812810023053116039384130187066995199987112073115749707312791928018623757865293083464107522352441990171586913808535226766731527932381451503048013355002105819073055110232714550548054046747337117727874724958747691516463459029435163253925755112545877244137695876818328283385331527186090659887561928119470875059167195292076906879531898377459637396447819600961966936352663971688121121976562672195356164129580791407678995862176153166098999523989121813796826742252778892937635275731671757333440741192170181575661782935448297639507310424933134001098930976250130745786330692603047860157624406032748950391632133383705925557062747389454718398447940919748552247654688339982653263740516493022340657819761058556775493671574326103658659971823416271117744050930127246890860448535924138275902413223548050302703671294810343268277550654241548964758368635818752145550883505665231006051078265816479464533893149145764864024927294804128390252866015351061255065901855544382536985206370523534070345035995783096258601062582382777427656491804174882408004579986192735859319186595426399746950859127449454107331133939815683585319428381298403354020096010210948841496793445631608337450679613619706733644296490865604500182179717609405879240838903486920545715431157220480535775021026123424132042614527633161165199107297181830547188579295784199568393255887108273238352159215882984837674771078881147246199452290791813157197886546990570302527247634910687483035498592538325894616884855077259503621898118812446629598185719489384459406461510254454668319615791698021180148322963281744456113450133632527820315991474992890749658365207335853405535781757274458107941875782456251385687852719924178670842719387810845785403298812189163541330931678298604854022870495956620746484169443706389460751900391341589453831665219330751986749783262092056177505951714314681057263119760194003762732177051141494399858646197529020485096810377010535993945098488128690778185237980325706638271420623594641053287950383762611966918180748148203485243675930821914486162088318811449259457831080120741891591749759961545411697812046596000793326339568414923601950461146891065275993981928887618118519090684738765250232592988581929833538209450616230654831051301811219229222825933115547635460666388251852655796083114384735793049868192794132309207073840286486780594888900907128021333108560371800455382598260697179889201407224163509745766740753211485385916339675787768628322543157466403034196248131928856090219228130365496480907334625472657372358225658801559665774470223241244580837991297162045552066858410593453718080188286837579847278639135148501025994980608454493910918017566136779333528684717903821860024867783768591965363182035978022753498925759581842876464717019328212296281398760753400681757379023439985617718755925950246017333296545527001893588386979503546638692083800800992425541824620233515947048216019554278363560868728032861532545537145816520793207454176479887271964773726494050173995544729031373092903147460365792706013267975497410245208963937708388414009294093596594237353642591590705658048272865596618101560768387280648881433186851380149217154092906989078441778662128204895919952082261489866763580414271852066657117947470126053065672188243463241367313281442325878196266067259746693191827998709336878054231296993447158176444989322306654554877910434812605077158197419753273053669261069075279810261800357970783963822272802249888401863103814596880291592369664072417982672302115338787293141995174295175267403423484905839171085502939854818427200775961179994402979303405550380250583849940869086701054047947997602160341383593634421941112888143398523148329039787541349635737329703281532730243890142982189827842091473545044912261126696957444168835941689195626022913922571440983809163620647747348849370033252458693608434119882898882814601233730873398289575683553149908968833252334501771435788774010982415211001086053973630442838491207312068197374572215850739808428380649719022470060220488128770020341642457887156268835952911971938741703727378313098881155823597086668424829983084938234516796034036978399790266682872249862361321735146962138939642518588464223906037645636663886610556561379262479138094857887061802926713589859562365781652953401202711272327729123488491633198395281967788487355223577512231224879562444499219004260012471874697136148402720488315767639384250064941848349830039351019657069561491806667706279281005925883211339934196047361067070904512655531689201718114570425875047190384738037150533909726793325130548736721081516517502157454471455726275397473670097622562288432689504175711783841649457928045225253744503648264720260448492116786815867227299051794230030645275912417345509761626920205128908748570888037775776115874825794178094354771642256128270982825790838845460174166752377244954899240555164866938483285557817762382312843406094109404833780552972558373212367176279190906169691187420924346004759449484173900815615882318907953874580124184241541510856032234017337121711392643768659725732028931762827295750128792807956488929202670919587120196497058622046437519582371109246639119374586436675338496313630451055485072477703769263136399463226749147949561777322091459366227431770940364535938128330410244486394048810488168758094514535007988913559180000201672547723586551909255994839628172911413327753139528137324463502292895226909810762323110847320826040928967988907912447153787370342753516042516141469182751346459700752283727116966571222970973303417002007425410030064021832449857053689259349460924976265460646879498338723356011049974196552678711180295038825185371822176240447994612843172207207295948629284339189316252087699388186972176400373089420763423558246821208383296617085091632907963523074888716596972009084692152624515127739878447220842115426253255151658864614696481916636420996336979510877530506620277892955543152951795877084012765511885662863900567081006098452076820850148178770486617671238375973731705799832579762958807788224103466072104106478695900212023387270416544581945475078102148964576677920662979385607876327053832580223271339158944073957137512741169541330806195076597845840840653951755271068068396071508308567934608677380681433122267359888669703439652185793590949477938721208114618323313847612880603572919683613239543628486548809045402207938087913525997360535500810687058400553415280280909626892154138512995808142553249613889302566062261672495174170679046524547164954656785169170937348363697986495126831640894206567270091965794294301441132814806947509560334959315110852924639198840149023381392991712472092861827829327929757277254082772797377633167234212521837148006444728210080360523655872740858034878716672845377188669517563403176366461206727880962303861390098140459338530942144262208898221606796998145088484444809511431537689394558300095421869342391305892310406999277356860021810171097271364903358261865786440138958607762950303924529195786529028134265754955689327959389443979488447087900737056150669418370045966374635481382230260540947341550402871373562234136060877422916606555346134576391392398159149029276492530633498984497778870351315846542267214274357965086984801612739480721551259190547536867643747797880583435436816693926353164533165801839638663274244054126183655464391694155899880258069722434837822409188238923878660512088215075811154846926314376931869099456554260990379059958366640272597078088835703746014288187896377211236623058709155926722274422935177102890914894778818074502255513803204941500493973914818961093750062391944702887359544730258205305210250244884230306022390695133707033728672090818073953989758787454220903610783105486521068357289882399790292841641432291506745475435266371613767152125530373651418826451040505400826095125328708110218568916633784219666305583847621247865722888275659109409368867668570820967133284825248918849863508211440324411139038427894210754731799783023876976626737073137149606045640027344810326792629450552965454294508134678683438451725878671469257089261183550727096357633311940712689344685518273818551924470469463888727009009772358211213932104238493241434528306340252218871343867758705387339165384427753970148563852807602062101496565327072188397231721825471728165398787367808393672384110531371944091540355151773818889702926557539969923861932633854292693516642808683315225292240164602194511093181066585691738663322573685329083261028547986215388354458763332577774208341186869572379658898046486842730791697637729367294830876968033969369182357238703679845027604073566131080702417102199419032932522995456347844216193659819333080477544466836597664145305299758947247954482838492492332787792457811862982752268480001235118478841563330271663573288512812391600941491688354789438710121016542465538684234799083437551538913247439039699943671216503026591796662624048578683989231400277331679161878618885717975071601936198125401302392163014058077797672794824384430156343808842458493910408425130509885615961944288116864929475724445935860885430138421198668918257349852494060061454576523288355655865559301549463359076186253562813869288013247039799819607816369937545702324200645374313859435898059242870098271436251874346058031293657928000211817363779068896440822267719511587953532700077301404907040011295349225522682776173549610179800455499268401382769732617571170874288828617261570149660785548349477504570811687313381083680874183165244583938861440675216160719690649983593838177582657126848323216412550767397671485121999648150795641148672751244385793574899091779917629328652439827053420937363487123034519626081827366152756591025381357825538067181002336524281847292886714018509417210829981465654638628536736490042891779794707856927856896361900171905000370571919175442304051159236615662464414476865936503517516789754942158441010779333726382105498296298280926795202603187793047369232254381284983077847497250729274151237578093887925406463294074333556129539186856591569312551492821521863561249024935080760351591642460670896173390726656687760127562211753204403414777291097565368442498731096830279147767786726118459217693547785280230100142611867756977118127764568971456055812728361582815810543538516447650954224774823545113711580175743242480303992735596066621129203346800240422507944257641279551569278773091472034239822706963744900783887464340976106282123745209518616591433633710864241235293174345776026525714148969212255358469550961345383090488103140390193595191544425050800021322243331308131645525940306232543724073212087282627487853015127999756213423043468135755420479343291035341366096455628730012293901476817554494595620874942255600879830437105895202766425067465038438246219188699625145919455961439575509162219357398164896353969395048738757963743368026863266173431542363134362304462003326847900966218628216794450770317495623582725797928392574361604120723788494586627296025994713281610030422135532968180705812977643681008320578446780810746493733452825358420459469343276559926425443105172623527813449224024075099191767963838943545175574562980691236162117614951288154310464909658936119350446440709574703252377578233727324954128400603737925367154762113548615911664693241185208304724750821379432342393004236494795230548769204144145191181556664535671850085447868407671642498746150472062873486429161637437185093367802285677753517353941680123974705902380832075537711112545502224837072529411497337430686434185454214031725385230269952220487050420564265606662494067865933032502706542003609739775525380628226025126259268199901761722307335466946981835011057996516139056832953960746855341933966580985933385979931567673197469752302628044346655755499270329612104528880042239918631787978220225583308094730568448785344365616615895452211899530078293030267014160384799940723959013158638109628639043403148597889328697055668500847861410624198672369308051785289573521283383220636275591074008089565808005887440631581457464407615422026910692717883509795722689639848609456900124092966929048759217081547165602151977932030768186423490174388054698372318978582105847316185256723254906247346646768294715245593240071618274950959049475958687252759044602649234959606610090261093019247674693202018538421577639784502309793062079001509206495607655712442609429558640290583796490931014600364765770341081423827169850886278228118823841184224698558941289887934848362482821058721777990361845038560810566884875016474403407826923522513907319497541677716904885005408536568032458171704257870747227409322658436335404587985001118226167175332016264861481329547157153900156122268910122265522273895724508111923313410222131262760038699498900948413822792741966006625451622179134487674615806413045086658313906550822141515729811204789698757049908736603784405516106897535754975458702007862920205654543298708010076262531826575580197023330311895682812133255263779762963534542529657835812648063080110567323282327223758640656622382452383738339600701026761192795455885521092532704037532539971179397340625354101372431011861465979673561897242788908337456117152243053388908700767718060885682011376661508218096665320794397780991909882527344314524365342785205703177038951170007470377797139913128665613324902755903776839718507742790178927959448829718609408956972294786721241040450978240670111991346131071967618640937314024316631433362226679769682584754711748578750080466649166161574857345075850004550827533148698786684440625499209897185109485985356229559199435412807081822356141355707669703704860493694003492716908955652209369448042985111773895001438609331257835602676292508171749132112707906882800007443884040003179926632861439778506737942530291187684593444221049855103990511039648256922815531501267021629355048790827925479685807565043430289174166576798995638579825045844563606109565910372923590301061176249438734876090036037594068221727839900054593231511550984045364757497771944015022148840489233639450547315059337619396452026608871582281247864757207516830821072174355378565215056070408346148005009506913962962913842986808217090292661376816435979212411429510238028974314824089139670568386425293339237329672932440284684813782122144317597467028131227733347403116773209367678003092315374193515064762607931218095200218427438134555748658765222046509832624429705664859919711299933822409228657312445015147356839306678664775826482856465983703205858567904778024308770709793337097422530415443018975168637815720151267872954788856837684436341843717969070052977284127877304345493170106546825475308609716090873232716879272414494984298384655412683886880871365302960678055120033712945827000835118963199434716101087383601574909259184518492586550231854383454041609663755172086284142299544314736101409554814230138920997669708748197280306342815332088748178194934317358289607983962821597978855309876608803123122430452931494994626482801117421655115564734271925561891381177666317318390636914714821916879616352238491740921521614246189782434172209414020785005111305183176498347719430246316200365676694015062262674879393622157308623577250217471729409804337717066929730972415346578045436627262978465165014061680531290182974843499560706986755301038744535794393379333142011861102643195775181969952561135058226215474705694607574267333971344969854679449836959142745482158051493479631404053592929003671078698424280168317425714402616643384662740472404785801303638655639373851916027309131242911290079480938428762405850416445170990181733742264347450075723485357899615974801533752180483435814918624832076402451332972117975299326946049725711445607821669383706558343466784030083822895140854858852319921287323217107862489002728779820359782664493214779898063260062230621625280089216876208191273634929317104302609327088133623584100997113043243747383020608729026651591676653668183519542920670923443046937449940840747160736669229301460491111923488375915823041509459717712361377143741351296041148456275313892684905594312141918731467563076400319886470497454683612953671238955870318998799013224194999643353021384215651904520980003293943450454208037364538682056131517370006837967126362528967091765957835291521416761655433241980660955428079018784202548293135985332664552224614273243904715588963242840856787308554800913062871200137167886010199892987479417030802227971581069754199442866469942032357618167816626367072189114347145719190657228426556726693952479359791807808233007073000721373929242560439076477377119293827237252994123402253410126448688058363794943480025732408000167508988453681970609094186712972989764407793891668858516190641282148758175584844159955397910780908735163881748078789788319028480291523971287853388786447944237503068062631303995065484471462478432800877823610878304247246351619727678562735805278942332366301500954024243033038744442994608788668851387166998996968541847773468253724021853053719903941859671781277438497161236846735184581460652300330325879974145636680088107332787500594344395668861723016241267007956709384673057833344244305466505887159253094646039383212194652939460909926694691688509843262773204142744721927630272153169002879009852998320060208183700023786078649796145497569374741308383437273506987389511524467276229905454012839487876203307683398293687925712812129995685338262706067830373819337644606427136728560664082732716475187242820847610076542423685175369137497623363709606846933092254962106018414622457461783387292739740052424426676588177992415154416959326748618156239360389875582753317502748680107927004485502453095757380438299149352598626598367017090172732349735834806983876239994799378118404563728386043817225398501108096911270150820401572040786796780097464668238416835511890439353196604559141096462191486443262102325887726497585117924761754523265821751083521335676399292411801964468256185970852051073429202054800135772318423522608448880317756447858692467877353893654965481344542631714678392439767822397426822556429727479277626395970363427957763075105522214820785341188145855728084357633459244554984078541881821044695899712284466644503978290704247074882184963304389506286213689912304017057645055036391440148004212965729298795614129023118272515747103813927746603046627751646884675921780977500300445799974310672747520022768441791488614648774383921766452151282711377896254667747177840733697130375497811472803288189889329265166290514523159670569764121113729903567448968977531533210910543501004831182245245513708167637701940230997845233592045979036147711322204460734704863168609093112075647076131398409907284897954424276172643375034453900982763143948135932607607253332206191937778101633194114965543940899545044021394693159066282736909808847383484668547840680333339686854532084454412118884407911542495028040864925621264344738966892433249988367601115263043819095803662246040418166689360178488045369273835380081962624138871151259535137702088263279959960406619631022345221393612168741977233577167613560870337583409439542744849039910362047487290859894743737278824751365639522621340971003640453856639550627062212637514668504500936845364682947842005670371914654874281294253334643718471559494192070224092109447052988163654952140216577484692334143843137329326395884385331807161349536615449106235079865714715505048034078530497140125676292212714419081340561589001723376176235033184043485985835677481576424415582039113830701794421801855441567752045088824435923217923840875824438289659491379291012579261593665017879785556160491528869135887263693643220428935535572620310319799603589874925602062436500461330198360395989970013161706863330445811790033166122155633546430993249937011794030760220338089719752583386922630858426796563965469300485950937177551266992567202293969395283693221998037233219311033551228855978813612994975454065974064221714797715918771929311459365537357081491512314299444216151233601444231021484459326975260464399019562465647679551863196464764598647586378847447665798995275034277959101332298353313557893439270814145643274994565616081072379196696655207540886412205204632093973106032386513171255718021264196949598224013699605814805229073807905650505954900922711309849593749509706952430806499999263314743560225289462131492507324055111171042361706426810524633464041513519978867874313250979882015371660072036614600578507073023484661276923455694934679203959591511729372968430968814489625591791690750097846601837054182647834377890117311025296747137524703797620682172008711221398679926694466234652577718316391060619262051917908136931430345060390240006310277222222714526863324551102302249877575424977776483845632305312285137224503876567372125537387954878768449600289665062964264895083376972040324243337129507582960081997573325695079597740505553017440332466349967334529837691317023489591089430618809046731142805797807984031315662588984249836734842031845965965499706191902219654457328321245023620483996342115582075129281017678139474605683679294943528309158937667688985045440047389264972232084324513102558406226879874842194490895988609019198165605609974922896400949676416182751544929133611696463060103988039286613098244258942079052262789844883705880476914382027381263214132134592244766707231963191428488091418574828978661511624636539376766270919941304949686951030831128534136750245305627809773665056070075264851922990762075080189031154409841994184801699718326925905505234661880151923161632702327547988189956593656540613107012114054747440286338681251567446241695445200200065404772168461177061285002731516729182561005727531382549665126330872417221143588031348617162264881143198533731893301639517048164494616815769061786907593999497944333551534394058123592733780156921404340339961698080709191060019620189399802939845438911196911097132458636396161251429445118091018359403439194205770550680242757285511513434785571608022985840767013187114425796648273816507272496797715259218836167483752039552022814475387200309266434374638126054525658820130050674429195802819488184718559638474387343534254554668070270774714842526919945256048389441189193596609335853033079205523178337374538530301537603918797405692212229651285299435165797744518143057112959485084968567969961667425723341128633692907251465974164999283305692139769583979555934870276831168446674182307911767552474619095958519436449041574318309362353565889301824081927239114275260663869151898995200531254999295177932601858112815765237118525800016388696328697678922218884170935489800528828354290364596529420489331946830361747906424759217061930243821055700466340387268167802750806884035060824989840834554666846738823394469757674315374283181300029491848567069761623366570861958864825997459015913974593146783829814448084915148600141586234982300122416019788291869530967354086448130719760789048469998626820755773726233947546515891006730094743982772379885417428981013027542928457632787190769016780234933178134884428438533412616507192500482291787850238111132185957437446880631923571178338571697645589129407809162222983297752740217302729575854397361083589715718313330743207810628488038049610200898750174399681489199573501026073029901922891470144971537257753312429575577891617140008290712237971796131920605104279822285651979350196885536469772710136860540550760827102578097450728680894269909930888717343145566537528395086582756613332709551724571170996878342101397150866964807324542403783411729452447025650300018890221210308808565117164676621263935256608897389604518827390670055524637090218169092882450945789679990854780519806595526137667649402365732612515514399962071330511515834246326502672654927908960193123611064909254562325537524396331261596859749748281652265027023484181273965305086113736266157898478648603351643402480005087042869283184151836937087812718993933895546082284429871354160311625461552304779483215566735954152950484951486224768799159427578471320400578380087010827130999777415194016247534957064786747016064829868637032550852748437543923060366522163480665504709092608009519902414988621088928772687777066573025739147161224476309031245409888259067999981516023831340369336828191465615492724678788095401333176695110076901576079638388151297488810967099767153360715392024177136553451251961664384178549591445605491380125598534534321448616435518129313036931407184443850653142464655876307183072004483800423544123532677648051581664234617168481187379514167278632210914018721938959483861421109983211936199279417406368154995178943294427710203814854095432930055585105707667614730365661444035431329967692704414618787204178788142317994568865618385951789549410596721462421121566979524877216506854882656435149509301745411198810680715684132960257388312788849404311187127508911953765687459232206656065027607595595033887469557289103089415020201853325246034408793209153209640900673731749495365516845625196098636770011803276978464824261370655665952663839704732759828454014278024076295681075933490414172208901546630989288893463469495096587714586716836567665204217529573973576973702307472957615716455593696065435551007429691621901368221280945172569084507685261468145686978770834336880092125739967094950541119408910542766982612518417889013357961053019743270074070404993872980584950798625863109924499768742280501842377198099113904370491377053048115287542123993925166030642164896663793833560810599468595082743544538448466624782594356032665120278336767952478617387266490128413192253912594527207608435352687663457934597660379158288210123150284358568933391171958158339743485746452949665885292530247351599655007944977709800398156107301198155158024960641292642969887363790299454153510124721663864264880402922076622944143335500673845149504710489011634254751825809294983587125337306352950630116774719070254952020760188781613080047654447517779513453265182311405951822391749434486059027581740282385969513382479601452558519947568880698377654552211831041171492338526277880089673008009492562376313728916708208708039779207567557247998613890285588369294563235270444762761677167585638679808328281534533465012625695090374808607215308238493309733200729092096749715419182351443387030561151669170888310874974592387726806288093059719112657697910472201123232945452099095596412218996330981833103179809134556258106468417729172710462087921187344171554654617340658904413015960322623516459453211534771596481446534333845727234916980148099861308714342935868073048335260996202644604528238935536066530812236319244783688724370676284667567447218133766615855502080082038295596635739752639568839309915805626298410935673364805141162546452599081702454222953250562375296016749744176110304138682970592668907324054232808235832632968319841278548615129126789985337563557599241949897996354067450796369583871600679090416834644352230368629217022954725551243721057754243858743471783243165192666255293353268722365978894923418398097596530285664820570705598415040286096270477512947583844030508753559871258196105348658564428267039539116716082955879545483469036224866805421813774958512919237721043773415992255137881317031638556984343106004157778280850772510460213937939254483216264960030876136109050981296621165014795417041133859000369726590161534351908899581872448396923218009174807310492235577671598063719169409966857021566750672280051567115336986884307530605802672640015079067485111001727118217848890110634689405957511544141433483135518986819806381569208673836614671353263040496791135474752249327591867585840993034999757627898840195504106584662945146965775769905121242983920818573330359351235229937102470949130379686654079988727403649219565163663265037032819091836625794672995301638483480496282292154955056939299725148572174565751722404017395146765680609397987457746930092514900211574525649181691400147510055271010112368481723838730246573860351317367019906137208083998713180586247551824699583514337511070551826854156643270146518984733691402532469718377180448897389963094295434821799121853916574101856249226396556911724664104457967353753951999642720317213824393632201353007393598107952232173873754588811822962806473001344861962912334729324977770593976569563425414715962377971765107408897428136406094255444247091570562919368688651154662873843354576806482074412458886053286427350635361686819970300816401182639123438667005570770224489327020723802125850081245269113353463112396330778404906382513418617123721368298276688050953651712220046114367217911425068955702263666866244633647860061018084756711945486232348696923137624011592716904953572852656874548585861877495151111840842264412691568763858486826762318900860904519151668965013617626887351479251126109019759430165738828175543032881290669601790775002306886575595595113425684503261956178038647326327896772597523045990753208270986548372405623949193229965684658523637721000798046146725487182948035174365785746327307669568222669791893586331137515296757517855390131446936340492653347037391847569215675169920543394861984646541643931621296246119303198220914568198556463225977301344990364552444763858430892257577820914310344516066791079054412615751808423932511566752758454298907592774275466993498755164347960077162709685965779435337894083326619746047412302546228016495992668681592468362901358319788578719987684232383432562564068259770866952863452440429919104574599382671187080634908063785398549388713405345184005956912209229053452346122461869072882821157558528389360032922098577436757997531349385356918311556706740072425491661011698900366705952449744688719963670532592320743346620703107401271058162965330610080212029225880952762230710598833345276227976534439826759232597287357683868034041543769508421041123486562293732502516357421515567467839986051138278861635130440249560548197981552878001400724049833616373076538624191565392706855500884900702279760465652507353972747330036752637200259869408591162838344175021895236271347163650366432047610936413944379578862918367776652783193315667376085054477881818859190979612936708418860163400902661017710099117526861088513022033405705019752820188395365349438553585588066152518176857239120004763400408707901275069688476576621109032772969307491048444184603185124119117100809955245788009505586435610862517407800720506783343088384559560186180738435968415385236739168791934940241960611476771013893319231034742460064326863177009277175113583883706843965466624294088433152186362253956313120920018051005700482291430672316952718103285305434675538098066773284306571681951685255470959444710519293111190163059988413104202585626265899913721775467615729626853836888691253484481520435636939035434883428692030485731609182321640387270912343506241342218627614038510349672198793690466012058698390022857343847892409718272172854229534936510692018676163694557061268657682332013302884608665628489304281721048416033018260926092136967229338948939138532971782351876906343657921003310088893772357166544338590709032811757244153707057991937579868425484251619449290539774126364870519879102896003213345282134615242804803859964909801514364544039852508895411379137305856154379045265539490391493241763576282771218628219383656026929604083412024930103885216133707248581308969966919868687164561209262824567018521924551711526509910628879709118922108728289171159646564080024471159705654559255970727247609975667556231821937426589494090755073910428080766349436977241125034456138303688259225964681017362451741073897447698129171839862931875453595613363095111035934962017652089170696679998176216325939272672483653530693116776435231481246762663441834378816629967235110633555240469808830112228800887034643983269606682782612155601610841428508513940946035287103670926293441867017795783733847538090653339161553800848632147399140001860149144972637837234231381408566490508240110554006173181343962072382911608809108799377235553888324707240901943702479882278575106412773257861253536263985163004258002318888097040995955170698689769454641655107240785108664099511716165855698525807057510381552651956653491240948419980848207790768442477973594198884203844450635716156633745376754001735936461577297955167503590222332747821748086866087251921382940700024756054769082901168100617166216994112822347080852884948964178637173047546909702496602029325464776919164775742103338975979628121033479238199698393007147685063196419290476690310251162859692743744877049556936599818476641674473391059408869215939922333029514985578551828080858168423308114846175965703963088124090233172448904674882990843459007593245169584167555164953095942001326205867113884390774883220177665365168798549644750814363311961391223090192104915989506094856825206407076911930979137727881884187982186187714864065032173127299873307357058494585304350736164737087838686255834374318959197834284942214031155198665078220558729909326236912960323683321802411857385841390867417613258085670028136983504872661082657096729067473718634038907448570700547755608398890401516425067898258745624601009427965871967491831253301393157893822969054472586880499266771735405500599923930791205755399545141383981990668230348027788648089584396246526569099756766396236999067657581937570131079484835795103546083903654040371098782468754373255830649217629277164455132080661713508779357085221745957637238705746338075483096420938748453161411658092283656176055780030586981640617299108992334511912715030150250836630722792015106604592052465201813670311385419630079973705908405447510519824524829002417605963588410097999268512074972669225818408259173021952745765341246478112388098660712775584805732490319524700766912057846779011494677819416316299254313805019618224984288292008754256489787696835799705168690442958304913029330475302174984336440431198271884069624495431171908179332290972915919454280876876780322089382519746300186967830924931964721778215191234630602428350112395971867385792604321354425309400595521593413663404910584347463521257944562448173137812842072543075018469284176213235252076637695547745371307742140697364321271579455967718355551751916290699352072760009344402671950741464774085477453616214556269594136955309745834227899810294438675080697612889043348639219511637929808517613827459972881438376260055244281779686330697088534659349755928200468276477446705697599592506907592201147154742151316885572830180600868689555729726081186371026764968214652160681156923438452473802675857647113186713794533518497613015644198841774899309683181644729573837403930653395598251048062462605144415350047921989050012858751926479236653590015367863791757363911222252796435687837626568538499339544665766265093169140901621375973100736284109415185294220686618221781652674273061705751190015297556690804473884583252027617593418481402385249699240992297589162982997619122400009308219825909304487929718000300688591668511760631742633314053642351269909910461035162442583138602010741769508801805235636832270594624405343101726392508927849118994902163144382228283864768677757678373088279763507651020267163173020913582878325547632854348414499866437247882714846518646244456295695770746837549962363703281635140751713336073608423437703138412843906253373241688609393672408834326596517185011377326390324560214374371698555720715656464926196674204502078753200724400113498609935579274879314987731965283093187376079025619456546648615041601069192706203594402534582617917820487440838067524543414649804010835228029940004505042988976129355683870151215411428540421410545519016967960088992081967512085055308286122634913304191973416899238740307902370053927830497631581968585021786472384834324720434978607320266042295762475223727628659809752314720839156806443146132442710873965304184932418048086127955474600733437128944788985572446095976723256986564916785775075711883652949048635444090277399419998699586539136769577879642239192800150868605218336954864124068582008093149858511136142391449019357686521432725975098917723350817533679183910110616090871928848221226163020271184562776585948277938708272169424639378520398358593175144202856647919693609462966992408335217614852533352483674837355573110274742311209433623292593206025571998709991550239825928703213856882704157636227865669621639407544617817188766234701433294418608422189575894179275064493425672881779066263794182100342029030879729882608657999226205759884683025906117313034156524381030341293138075531229157459883178840329205561254614125881673465489346519160235915463911581746975438532520377963985125622758578978505418660318348467926290661907436422817566127245479703984403158173928479741305223239440642526762707047176940387405866640045180841168516877086764855720431637368543054903836506933130362738437512670709785402007954716974567889304565601634821932477661394289503114777763836119676043233319337769047880567393784670056283615709534375178416859072329487552049610819428917920284286691776691751812402431231442153775524437817254487674047145404990889684083791875926851618694208853232404066970691778371002126089841888167740759319052371179708879688351129744666579117150434887778696612253617660823712813305753109438226902724516573175319934859327393546098152252333959650372146185937388681416925842108450197463339217150950752520734252326227161961082065669999321954752654822113249117492719937291378435128513429084539371590322011112540471640228381216764441655271941464849105193459534692940585015448505769987910923006588356045214018462764414132792079630306559696723300511045062215560523842877969645491368378392446881479955965937643826360673361158722156681124155500027281658985327614981271610630979723600159581350182465575039626161167773510746732577246933782366612309208767445900793201127644959812439153274067082033974698755229866406344792278669771072142558649347580053118841382482463108406418887845375875353840032870499818215907384148042180129613829577438265974912578627143979228442069162626561823851850731378783476197235067476469339041017904629169028265974625478277658247872722817057198067666658649190177396988018316723801411457750663137769779004885270875658438341597704591585956303415147838322268902163366920162651579330522537395033649638093465630184327985002222721229203613849361351308484618320099512836209552322010367650602921245154110173397996594147600326900380118245299547959267587740138924293991487164113299047647125285619772815562138143097222914227652681781070487018707314894920393196229571390932926473253022354115927875322534722982280283669223992546372479957453996910788947450526042009304791545701146928118864305033780267467973605947867413956541866127420228410283301749590147121097771764853095847471406390015091360144346890488466465855564347288642706925621086050836674998460599192660376587363737049051466699193916468655086387199892922746328478617301971597260962008560508037905972651553992941730167301720124692118477620637430732560875382050862565381238881361587963231956530594359872952770382442557408943314286247599424702106917401482834211455153744394793948578152609105255384005498764309790121405040107136344150702158388647264341287428188923157661310787827488331418787257047283196204500140263118251967203059695652452157440090520454667698976951637491360994431862480883702473067144970844624549082915112128174143255439049265017053731464971745157534237338628475259822120781591803988901106242044379902070034720756696026767462285328211546805585203003942715368942620081235107856505769814726915790449689961149968042622749181999268058540587296244912330379516816242045033229544995390808880776650996680371249038361903983835189945046545187690507304731745836227062611888380954624912893589226664488403430340083431256192762978911237054604401585760796060943567456115847582445003049139572466289677890630259583764342305222331049645450643822390668472787443355391235732712937724214363434769503891247457326816780560902944522492038991571654319270997185437126025923100535544599121353479427712044179893047930818001675284020108482516242971954840133957443811848282521127227138094658986728222798686460466529630775402903568388993709980500527608130063126178473636680122483415645964390215243057680007668469221403835576016700295084375195591340135073865544304242064616527325505882418637475137489884569754121562685581586777709190129543669624613282281049689867139367093892722848741649018673919692073887048106118092479350054323879071734241769718838103168789230901452241100305297518467722294339250101691451062417113178832996588511946308519621549289432268108801714161322271379305091984893655801907349236514977379887783099808076792849418034221764768805286055549128306364275953904386322060931596489162012061769423763827951246533405333509151104620521644361367120129566335073419769173727997261304631527336453643154686707580885310674678129551283354752254837570011763344883049911416716793733619308430792072053794736691092495927174035271209866297359790675024785415710382018713723030984677728488378083513604601855513983647541277369307975801033136656694440221937750458499027975932795403566655579082985595848837061866926036797930463731725706316989783748342284927827482263948147019913716495292756549531529422532080698017776661677122688924091943234609389388208425268942408664142492097945374399051972686652745682258371019877692391292703891954709061711486259636108945309692873873178399763684815265552391644171854605931693914037476403981729230550129505390764097925877684534520997045802980657873669020950218165227337300423590607319839149339319519812593170809814058218135167485080293109210484250130886428984284714272376601071110561606654113574213544390062309021897080010971809708953951072278139055392172566362759263464199224324571782049032336888332087764057101172164163052560331413268069843617173513559766799224649466118505768702495598120078784720033146350489204735146399615596896987226071029779016943602833012349914454970788496455889828808055217129472301725173585843700762211551208846942445875663465486288227664382217906969737331442078088792879255354105747118425793363931819460045735628345417318306903459434540016431311392816609132699484035975821761367516224517976415355201529559616729436010080520161878189709256664377818801065130572936281390867618334203079133078679684781673888494774697061229244757544941356775579503146162535829619314643719364736140449912191819308162213356844527541065021058833037458312751743727583777090645758341548555769104730545711951707767786866654927944440645927204674942519107415376156131809769010151138067574903668062387382990223110181081919213733108956551755366670355286223179396253391835956942722350969231027375882634171638177429799822513133598386196856072214125135889702786278085132463062516916927594223520925574670589825584859837570757067981671959884634538436089416576856165205363559252180995140196028645503156847370094147062174353984772349959979785345028584699492322404695211149740476785959750427787958649620140341957544393650620583981624125373099659731596825650045316672273725900669907686407777308837810197631849679684715022750874446584776514762895623318250919414846758088244258456502782761141806509673563253484962312010373045826921361715807294592577664290590207050386824894855761626096431346365922397558653408824076836627439871888114930704655519833113115475805124782872522732469719197644301908292683082231414783625672765192761584640521321883648942752767949617428576537328341464222116688607644251913167716517240404734200888442275090238366143884864180247703047281347659586483969977738164378338047342803092273348613272286216445413802226891578185581974172239604255699941758945577632222274132850017103491573874223554220597202283254578384432063118448628431610359322055823642969383483200396215796034061503712227203319784611759007162178820064261805083820064842091218354222814037109654075327972288332058309228895861436890652650758690762428777952738112899634012871261240011210393243292399427016306893921533261287753050854039742344246952532936516191801219909848950048328610695019602229038539316354305287073132778400539833328509218817374044928770785912860545537390821434328685197289143007111023458486611234762171862825917452135601319971451319769112919003649062181172692840442717510975504373406584708618360123080974349650071034990079577365134833361024974117453285668439331292641195145893887897054617344717973788721277316434431135933192570179271992948894559826203362284602499318722542448926464966573567997144948748417010023645919914999493187611163498070698607994873431500688696581839198526052201219885068278998542509402128383704279551400226406171623567613629649833242258557964065411659688489031216037329248591544873561038695147799738578752360918176384001426375192032379867974319565656930687262921909522627648547580952524967553476408223207745231365790262353478155976888785212806558610113701090224139046129332760629605876591389135594080310362690914128793131532634238666717936673125389226030488504800994157740814758901031900593144531352890705723467583410194039780674254862418783361370347300436302253142636182177092513953785273451681633764277795091214436684766900766359477747923930980415753708343427129879380413283677104224226019367628044966403892157219082966954257015649633605874686127775887373752063396841579532490159662048623624220353331203753561443914341830052548844444904877372024633403223551049083635298653704955148997090241663354323362296289776118104724303815220617291684535782976741666855238354790278289455369338405424703088288743350250150804017878341637485423169823549605361659364782920228154809690346486964330722436129640718631734375948910374781582685923393246656281026605065046168951037917225667952806875381067070236974951880376007842898889726423562131393285441357928638779283868060209097779407838882866946739914261194709307057441832692947121520892542853735461576057531599490906898086817774496599607576214923355943406702845276377067814545682332829681232829556214424042625514406044586789130677060626731028656992607622043723234946953407698031642486936592294415565539044073231776183471810540756252306722037606028320155374132050425487309407850695343923544413469972714696199547282452564483412517536617979757577691936264252870956641310329271227884723536865707827214830766947135130887544180897715424618070089534981091687080819755491537241643560391073837099547074337467077733424114110725908041662948300644697257931368929753577016805424324475994125839494204812118714959897446965019993221976218562531492432213563187263406625875671869436487819756375346450724481854710443786323618529019160108575661138793936407847017585458061554671120125770706155770580265622762910227451445962208524237975176368584334429849477796742068853197634180807840091772198718600953692610061419969161840365954378268052605458149551010761130131456727251326425443260796677416423196859064200567095711995972943745368443672514468623723361704074971454399526261513014752968778414274198961609730982755211977117086055733532338172231825906084247092580572674387354315912262064878617864656419324806823423233223231662852424498812502218190360287986169932251410115386657696648530968100735831785081833656968210255317312518804428003640405018735004756126765889182936442458696667129016733382396903189110277224533924716517882489768461793131986071944139382117110526587246272343619099651313709285218553248673561243352244408614311739022532568045214547041020987045282358792934997033944317998683278486178509060292061523857204544288678361125385925395274366181713081275483001611500666158137060441876958375392669724996242813032692593827090717539869568110773284197024559494344465286821280882150468481140093240690230076385516103918463091397223232734362562230616699931889758427924204256893196395727050851151533283432904734106425098343997689966589131375720949627616751335592263725351990264896346882735000947634017228277964328685723148595898687185638122372589489141859364841539537161685483030161079624682332039442437594553257813781283564605334331952601559370389633993738551942619742825933858590634505963804236917560647579898086467294250425928208393357203977564829833384964763799089079731664258222593428174475386903081569734610720740332763756346578216513285826163517687920820016081817256889409401416125081047684301494752804921116342293273113222653541810280528403324626484667097424339264184790816207386851779643232277798465281177321257982355851698668543951144674887220807252376687727316813877768531322020421066335148575223036038300662702889059278412066453666348087141898568272643264272696322317447698625419796331657900449555295937831990494975571883379551999717563626580748839508114191990729298137860234615534932020012257578143988990444953677716096886385880599416380254264408572934441733731031845683472524833350005932983652973209982307899601042983745217645897021478046599980289546952852716223588697684041330709055997623647809444229334472644758096279264462601079153617750309512998248094661030983969440858295611250889708261087289971617871099737148631426295522926842605481007894619024419671903455212709419928974937762147416841102302017610252778040389518225675675246381803288751235338354176767918522490563806534399920311720954709252961873145896620419559354932446830160085910176617310957536740327042189142928447950460504395070762389317706981778668248802297821977652673396963915846570407348487818562089638410760737033685172441435862668289772960212321794755627390773992241493181003329722888859629254132853560608099679715138640863873523416290724127252847712046234577502507760930537271767008709492311595282209914623063223478882002277075151970829596331980840173732216828934028859542166085211046679656121507713119097969546125108421027858539611441795791592125276325084674135888604833249611766115166370850384983369281985381292533171991146922516106267232490175896075407374063511470478313643303407447810868245631799997980579332884583044559392012830638725151894696977071291447932568396527301914208477715622491553566069419382551303661313869517136285058234761523436121566700845342902286355567156608684410535238639116807634677434401875018975137607711603108594802019402826473742332839185508409401116479960551935601495764996548166228993248350975630981647001792637391635478161565823194050493354996704298436890698014966234746461199052210163263910685706049914295248969618734375042863066114102303628058014314592882345751422850827688973117008523001056532055455849712804157031988253511086420027946185610248037939153133309931922421978201146003271857044742960542690239076482015425740650995031627347029509199480494988299648753465476250829097193247356049740102215300914944758355678829019068685668463786507356730790662997110188507833216283572199212239552179690101932002510299624357516773322648893766096863090808314018071836663415330182782521850480154316104632815290768355521449840541679613808135671752495456336444276015082927490120547972182531265800094665864915035348854010079146135136986688074740016206243580459060068224040102583501586324822363810500044502197129054719673365602090517406166983001040266422307175449044954890738298232207245256053306179132877082184157957135853374324100976379569326223669273600882893756576737145209540692491011918839985884906093270942231387051626444105408781145314256581956723627020400294549363992295455329192429658687699636368309345033520940565018705626951974655545868878038632530665551369513920228398487622941031741756271805740956745401215850303922751441848389932808534649012699150412373978898079990716222750862427905904355083519992692910799544598695685051013364109834978544652398726551390604403668752061610704869692511031402737260100985848129923431844831734455795804032435864264353936381280242487229734991039229964454496266943710182609121989926729910240298736450016266126559604246796248778726602104973387231563553151116376598634402485238809703057779871907971834674482112362581443148871054021165367565262096130788079941941647604100852434363914921648169820518464676262681900852714156031326939022163049329974165004469929704040132726883561557481384891049264634132683822750762046678828302664350935980561148725851597779053119612770572216895641643227123166153144188542686086614516759436025554248773836380006306824445238011798128853487527506333525138269211070145621322062091449956270819738805983259421293991933383962792827970956555902678903683617960383620244234285264084554356776915807607665431138258479485528184553007468743575538574261425327095061639634369950274734350916656962744555376117287747281030610339855895016837864333433012551930561172086244209182673365488583792622037503025019971393532764960881259895307785536744186788585160731783556435538086032199793778774954699849427747365240207520362535521629609315611218166817260660665641543727862681895284418659869167385443175553392533019103908600111103807985633876494914582217286728722527735220357884499368440727411046178929340353516784962987443774823816798450525442231117159115439848142743655850156648298112084709890652623631155578746930646675698816782840174466827857832644125001114462419611104952645452527263963037220554404628840944856898015935417079139675351722921267660112035263170200653146428119807552674384863633233426289878664270115136818849764620609431222493968864407885994667063136941927241562750783485644040329137264613183816270746143328821604144949985902641511621142226604630473126961476616047991761753729129902384470286286966392635885622578328728886357949450287447792015856795808369742696284914434912070895191155395010965004689640172494672496965576439664732241529656827637261897237725907368400599129101964946518070299417401923259757004603750270256368278625949101922798426717091276354563767757927100558921743136906207638886567589636247652350027363945813628069064259768952461496691774431206210829118368196272293818532780889499306464860478261518284730825579440848210543468899090504671332097748411336607392922834002980121145680837405329322818454548725808748867399796820520511925491710293742180852972857447031252064322083432790113133008287005264508654550745999936999327994947112885966523939236000963074478083296129599248519246487198562368859503215202700862588032287417301183718215275949642128994049963938567188762983646442314191327947364022969059173909295722741749133994421834363543589109049498585548442066522311862662649407652601341859427084029865609931498891969770715603436737699016686325785659876964992143353021299090806418312921335751688895054941885566629564009987059220993147655083956367551447002067951923134649383586785672984679792240267153379099509182842484163643425255004343150734024520993189607743563808960908099693478084971950183182439839903927172961572354618639977283160886942140556615982340270621484588882073647724336755514124114492919851769705584949704528712434571653707038287926320448233497563156009355339834816187946933866759273360457234159415990353095378621203223705967901783975510622138919750239385365384996137716038960820681377097472886845799943278392131696184030636389514834532160853718014289729854132644971764081086306410769521511876714613786048284273713326820582441231167044415359396793557732197163809360111252931229917915316937487180077464022466287363773269934360087621035708701751237127338341779104677877304868812357682872674605039568048198394284253043591467036387570696667647626859023615304461516496801676955001271962694467898424992576492128565351966340133059209762664740329411633511525034849919656150636879897758224845453065984229950778240150616501151146633721365500332886613519156055436922788989555133215642717811218116794751580379660641254188009717971371889041019540836520204844953817037576437964573084872884667563983499048997454328928912411228810145739632651702073851964141359397967643653402435336596686762259189150788013663154154029562631473507567934318805534128437346765987251364549988178554501861320808869155690864685585318963707776256423107044548198945692174561427762716847807451276247001061409836943299415835481006696773422905359912534923012516476980763783814678144124310952976256052324682509498918978441653514963082183429460694144959749498945653514279066728408260022122186460657128456057037118031461150664760775203642352889648913722140448082955676015439007043873692578118874407085619302708846076782570623429995693341095392016573186844426787325097197601588790898805529319526194343297997785687072306133227178652442816714781494857018913338090157394025977044599694792064503140747613702872418714306950996767051676996934686197053710422850339952932519357484080220705903536114743173541654392012687367180712899580387456500628130775385254878358854809527716261873584660597026908071892754466270848276047025162636433340763402328966173773312277144322419014839506946304067576380238232247975619225883700007733975979705245039011146358568821675978248348452393267274182027745975134733713519497158891552258078876965854892806413811973168103418689387707484358372193429632957322291304524989936900883159767690404682271160021690052499107823564574175252757022500900726816314922584711882731357576828126656957663652748734480373530037620305592695768309935603062033491832421401091350473068715269063648125659008422391714067987213821764984605466202504433963814759889245790818273016579712236072614015433139433510892748805687680323213191602445243453372961757406833277582348441542884155973816156219242520287737695859043926370715279448903475635902809778633562249975588457010471065228331942222973934527716362712383987654482204561787481443146081230555917472831334152569751369529536234282227581916740285843281073141186079815670516341171339316755461896449036347893909530147355562893062163206795155588598051930028079882682548293162868837292449936693778291828978931759241264581089393607776851700069739033735831141664386876409157354131382688904546809369406166601657536185361448133119492771157477015043416771522885729157051247558272224482907543141543171051984595236773914906823385313731619220392313213909062372202290687678342728389174346535071325651533554867213283721029546896839294027679588276827996841111794321699097699207549388326566397643314510451884754736862690958114243522983702156331457369026076530851025753544651566864914577824350215829726080034623539700204591488091512408423766119834199696981742106373365982548614045970079102944339794136170740974985533727537115202902706573546138337503712583158533897244801204458542380073183383927908076831646468412050425269682511496433037930281524585665724880170541384033091649103017564459947177910383005415964805052095515199475033276127604971120581973740421490908206578654760656112061599517330629401102209390304782584650432395024145085241247664605092218139324556628306905818128881777556250437473113494245068831978949982450679201181423249770756114382962983261945078610319507765949419527578282158036966670490664836406401711263199778348990663628534811527936805796465262170824886057321639459745274870051756979386226462481233672963692401572757937915554152279187806493156573385362815488852639783414388213162867053810723446100176639606468613261679535440003295822249959078637729536179672116323870653121855238926836061235030272272778857922666394650196724072164168251660602447091534484782748400033115814268380346959040485301010990112808653765858629200094521449579133897972600389439275097197438521731764290830396826900885918769128224611814153730853641070730228243428656452841068623810876639493375066067431700577001111567599741215274759164980075360760017729006471146826587953833374495224946359690748618437045640071635806929748874909250605865267214658199341946548656750032433554777042188458536931072480547026332046489945884129649820688660692296993958043259977721134548396913704246646847447679541796885375718918688832725101615785735484422474120474393527010929550128977277800130492548946419153494638490644412319297377735779422598813872420100459546393079747686201105483393513754963375806431160639927875251716591081985859522641379737774372761202091613416327545923027909366085646896377774792215070529157397145551424276033602420382279990814331251043187652912757917059229370500878730573615295937151261240123252938449911268170439288181922969771923616735844453195469742428928386702256868704966819465875598155413064598901354632271621677838799849381817443468678056304972146315041287852810841425481496109562705896683391377084649295355093239455616764957392595195188344693429226835111146707678287388930307405964384454285053252873100579567329158955835619112087299152141711858521992690435020158972514283296091544261737579108922466433416526107971308772982351366552076280458331052637047509707758663453989596511867366031929202857481217690374983059890337147955739509947249013156964697517228377727376177126255298377869028267364147412980246173095445212164083715612218346269562535894361691059985807538212016230926323074820893335207192307716148552195167067618128378806739655284098100515723313734298389964529063775971030029549787900888529675053326157227908850597370381730196975397978843222868650025596944038805364690461605555228588475471687900473106406118046308282447611852069899283228908917846246056221905100655491135400948003011806193236958940634423021133592823722845082619891954430841681493886944744159718908783015103352565576876427074168962983523806588837836495563993190098356686233176526390933492790139511000769442853643674443596998369701748918363468606728452639004248717257459467768278791369263620929157216374127238052000021336538083337728293558663097393387132244887584274729425566087419579768636057888668889047636704414148826283056706493170672277852860028974932704409869964638084197514757829534806521481785690555287448753591540434261660999615321494483049037721417780746341262693842004540067606542967195049330898355001854357704307506544589027471886766399704399322114692107539214180376640390334326249323889677093355050206067277372448304947650951083317146192292965995086161302274062761962958225939188724849266824486611266686679211107413810776129215488832191997661430716942104924840053627078466189104648522173220466043403765472948706134840768142075044874788326952871435934477112394421466253875270068060795626025262031183528369077740244196807728649922257671920862889643703151460686015185922919291778332373155631594883206454331336838120891919747487660305919732578760447982176530613420019913093864562562342725695537308601859395251397268213886227769194583906691480398615801878276467879892337384361644649918774116714188709969429101101592500322417685181062676585258936126014098998524828926162176919707999725855434440347811302582999469477197513250886311979172237729061948799738057106323911628917605130738506065103343764485495537596786265353006728716240028575326915038515259834002766843539096010463061673099620657236585474089222924025248677207583098940345210842854622655578275179309444143852273476200444945999887205207172044569515095686419116566132377815511989682125345201027092964257872377974191347988913047478531969352973932980375911349894030567855046684109008973279885797564484450782511701544744157461423003509834385592512098750581630411023054270299039769206373887061131751416321079069461648751932101158857431360775921961979143945642010741246759645219355181552909419765785793113371115379230502962187431582688420021082271367689346434516465483922997348030107655371618923442939520345079094686353378164166389245815273316743242113203060961899766341491832587999424362470869673157297112666754914517663319503604800593357025151924959243543126703904582440590405189020723399449634157491588281418650339359075719738569254973645386141231501373606059816522670720407616315378109838861214345479863326806280719441475874730205778629141767213387394700518887271969265593675086973332790068298603575091093055002797283226727251258222823201908007859184092846016902249640163648367193398014565235623644187760986524183852026047415685516456311282594221812312678869808447973680734766657024341476734853337768779294873180461726623002868035313379472111404596609644556818355257921965741978667707162567594610508230350147553529018223981892773474757311810951295978706742648319787877167267524344156361778494685456738417254680630331169337235308321746710695759035975394292819343465529916110308222637769893336193199170416423587936243169004771380011671931575366437346566021318530813690762700891668700687311816967329854725590726449505280564821906843984164187660315082148649221818991748576444409782729123624337894865834216356895701863297178134639112942449085846196407862594694614356991973801257047762247065963619866624913796155675355140876835602793755586359123634300495196986896523162551218628442073497055054132797797310058190274395169933234980014409043847707670747564125595154741372733591037458652169792534237098421808237435086487016072637706697872595398587267970420910957342428306937932285862282504307672198088593651321007417565630291778120705651091582578717868040553072969409021023841930244440044708660540890145738647148684789712867141003823152432273696514574694127201824670859178562121048410927459077951963337579263409219300046416525077676426139956506304661844390682866129075966546322442775580552024961545910431990563775398906434865903518750125579283078810128066580372942856845014801963875987427473354062254453541456029131001502329357879605742180073999637619630036940363929854253385067641161903609721458696714560427559179800900939612104305253519149502991285143649274797178340345966896930930704838825702050016019306825853934190098137239764750014661030400088432831894630151269531680621043049142699676460021509304092119316642974842558182806374901467211787405266193054225065546612135569904092779693892005699082352884247233437495040594677323924370498818392956663012348731567523908261098472438377808524318963376396512132959869673035211523566811324441894838023698340641312467903401555022576065951799683118102466074450985999249383600950354481415302343951822623714158890271280464512265589642015805965001475108588594968174610742649081775174457294997460411808167159638842164236946136064053628609967188214452455529938241295837989397227775031806296050251566967381260039449738763421715254506554439984775380173305291745491705049851659859847281742448620763956509791402819769611382727081910690910097468527649244864767515983835278287510792457071713295419270397943259281706178779630977237567446409317177205837754569382187944949543762208779644832555916245995082305745131941085141338642571595024689766042725307190877191566978926626356267822431752931651786903581435242015203970090169220878111458207469552788263246615834268802425541375530993184181069136702068953564996262088701708131726136811325465553504136854516000899679532906063544354506405681234403916423509016812285569633134339811714121075105860002409046536907151936677401940917214257365119373325020966418632290391074402597475892094493304312523826765189495667991357160684518508008596941549093484810846992050417671528168527483832868997748462021846127720125997415598658904006432906346727558309469101821953003417221440280994071189726833887018749389756813340854902789341559469558876496333709110063720348986876223997822966206780632615829217120917638499868711354341216953683226350257935064048448137762542768365918123984219388430262899981285230260521090555022815154897593324824139897220378854908180760675477404755639659944906459843323695336280121582407469762409983199837483828454946630893448303971160605296313377157000996177475362552490897522153564797369545246369830682121382262793967894486683849898004338890510765084174466739806386661566454433975806961342634963854681904674666077771074660823749594908040497009810484345388645020815527831395910916679833538928229160225994980012155793627761572504977774611840524151660841973207144865647933442101747754718631450990522269942289497332612244080020114047720022473423018685244980769036665856427927745950990757529464794667311557975602787383588126988699794978762178708142240359666165728980419446637791988453125324992358645101403058426532019854240342911998137016173830511692956705104629891302718679528262743066496155067206091781173320145094062223495730081349387516483797323087776095329715783547081369433683786495392676843331763572024307129535858426711512392613847735162675003866332303650011734958485077751835162093220342026850804145593610586188246429925785275875339311499921420172566654582587422361704006687768336665788466484005334962940141437902455692264615471740097223334879689631604593280220244720951735227980546852408599099794208363364483401909899804811766469418422869282260251263843169490512058748881699301883536571989091935707413028264244810019915475867183098804521199918915166822078588763946152024244312342784119958154870851684067174179295696802278034762662935792688072293205641080193952494168264420107161318450331897223188625789233114803899475665618883794562682049417409127554478748446773901733623483531663305514090545025694973670513929143453569726968964804618468110331284834868213919909755681601727120339326860418955106644992686624703172462038112938971243682477230331053860039691609354522657410059680416042900624387632293471151842117496819728930104841725395164756449853803991178717199270980064652018100503225772894161105392240508950956523616618662354487598363756393886441252191826045616244660303938575850700298592275075986929335793916090256853109523584625949343971993464293118401719045145065252807342714396322523904707806235542050994564020483885483723944282886191103293743685024927549164874583249946704235578851970077679378716021838821237182094527780441469392802211549017910381037587697655158260519030737179848308589589289641026409752517661654847954482496267574132920618880666633643187466505357792589347395950840219902252406439829621116536154527154640296979450752967809368875691577296870992307611860256979990893997337712362992305561859009385098996451558499235309585426508446426185188735312691980967477465635294917873553540953702397349469906239620412460786280596251407775741564964281292731258368030911681472549162768990217703735391760769529489532100439841011606825788555528257470813260187023887567315926856178040318282056164725593406405604651247020753711287407089255619917748661841643510665356338680078416549551328959272027490334173293402621153905444937585984660394166105971335083042792082466049570027018037729282607171992745837140794397844564954607954737711440391728612322204931657784117910717369291348808861238512554366255018453060757864548931175442173198279192826840464049389582591122609620113274046009911205293570034818090892584037130153615502683066088422268875776451929819957074133377008577131777598460271042617150098894310708043925496879383859972849260877125225098749495090814500723028621861100970109027174261081967555917157056047551242471290932763937163973572323184151876429965739081439636840686874608768051910186969524649220304830240940414800301740928407398575789417389852706999653346581785077082583387223515077356348609086639061707610291149911899071282438853094276310685374361060962120297897636142345399532485122764410156978501838761161251335607421282417952535622134457515865272451409271320206168931352778514917970982189493739034949578000487293964360338284017013148133531840785409529755658750082658286824851530708970042266521352562731358186393817561522846994079345908549372457252979267646343417276800998430711529682155177027986572621441111918647646808339415390034867773473675937507891068467106257806155051711834998544931891128845882866788325490387816133695540004035482769273047965920774642594709262910088325904667084889045760890975234679275250784390864644221352702468203798209479129921817555254935437788229520626158673895056403384750134897539069897437564300255145547034178244018630811622172120818329641044605555304153875210778199025409336873464795787155790421444268898830570447065044334816804540314530389576004355363155404798065939009467193325924644738519920811272401699892783315139171608863638863208040402315633036215129631431111926637917195854626193481409066135184186742226448875862514199815975264558239327431442708129232267639902346832396972588648660852129586188388027115216974507176330809755495348393140921532664492091870142074285323048681475532168295400476617334838045571643969859900113727599838806324719814637490303153440072765112047553980270737708891655088621885802999182420456712662990731837070970528909549585249541044413451626750700274691045568481446159199715545390797179674264966893027812632603495363615731929431188546979502899377624550010854818722367301437899190809859230807206237701217101978487297384181311640929859977126529431138657147192899233313471283755426225717353056062914293872884050641909456484780196847166596241266072005369617926345784782710653638480741759706643008084033613573623532349093958498682329555750521945354836322832999412989532470790859151453384248531699743643811406575712355017333947947510581966721750729763971988214735538291125181098956315578247157793917026922356648346064485193163831753432918959237579502914346408139419234146339118566222967477365737048469565964574992805435638368467187697294116512270623643725068876050981780129917109074036074977354188134326141546576419047981230974142289855546745145332917011082221090359053908326992412224893401196331685968337679303132462529720870369944026409176856744006887718195336744316850383279647483598886778841989366140781089846561427155658670487126235651533842488053412122122634629400048553464518860257816008171518647421449471627363240641192334258603478812287715991064318416517082961607639469715186162091744026696706591826855306528473678427158418941354114742591853591110421224987004172336831464220631209787340357114514578327036561944595127878148052610210596224645221663383106975256063666124603981657230616527418884102174072817121699160077184581861678740893447215052096799365389273584384598111488658655567440315239250210143160158624442214790239158512400943347168691222441620341017218225707503001366101901803028314987770334004867748498849819937879313803733112441199047640471382070125710164260409026505947198122101442587784871556082244175980582742076341317520705666780323652844431583934105592723876325975814632614627829763483445582703965751246197557686161269766078090251904875124409894302511358191583855264627127156414830326288981950107845347875720183491600355421699192804152791709270679629020662557324188391163441720824616651176400788324021474824745814040999571480776274737484117274452321111901671237686754454512597716014327367883107568799790427284565029670121159465259785555783505575369040892041268525566998860201505224432489658400847214134950363308703549548869733408842612632923030757075809361123578676490957114023823793095551543525612453296215442439338901165456421840167614869897296691154687593048618009417276648213945937314128699022474744856028976727879473764473914668289314853671913865968801504426128225570322295830856612170714984959984181008388129330794482507661120918640051332537217397764536848469978162768610383686237002709506923457196333621606491635410677091414316292454148437742389637784522818936325968851643882961336296446942591314147617446166946744364207444091231922315996285916641950118076099560981045106106412405078787809509816017466785263182374544350066276377581273362137873942373769141551301721238771390654453217054022666527359660526882343787432191396055223531196921906107072751725205497122175547117670066193407258202281371803878261907946095023032426486292672876804505786754358716691530086052864741811102205024310855963719976803436346422008143417453309922164161020707081968326667389826444884538321804401777933437913009861359963007899434285376655623736541592379277274575318099435840417682840974785352982044792295387655468877085841296310859048076914559816745620028786979860840582938287393681057110648422596779552949403863507356119574442575755533799734441266136160340254746376728829410215367684495702800490175999306463698540482734014127912966139562796471948564161773110569126775718727223033141195126218515193922604755954530039580835442562312757507034740075932024482582041034651230183697308886886408687371282894821247898671227027011083221554132737842051190205168096169810023086901440435826984121016827954686334161563472073995215622276898955273648983528339160279683925602742803248203621896807220389755996336674456454668954960231888875139847847240843441244034747012885341226417267836089632643103364786891082979991359038827144036717381611519129630286569883811302784384715187548449097265485649251711456173184547629993713576647067860505566200435314556092972791438621658466134467303491135764929895377622541293888104076509785789169390522724400677833392322497138282288901211352807828530700939103516645764852730581593589949526363306978809989871964438728624621204069291753919046924135816200639139591221721214429847230451865921269088717198852122688903933923600075053165129374207123913579797616256824401872726822801283931518189385982562417630926803330542372712363254517833907715992381144438151025538709977005826676453645454819761186614986833426997034502956804598701866052725612331018282262248627388063500311653622097450479199971060419233305978044964992330975669105838688205503494170759153071161820535401905227446028135026696397826762600001650757920878550365221437808072522687475936912557041763968836897808534745512365088940946651112358584799883737658327351916288893689694995158524813394352306689096807804087172956635999619802662337221450055606095506558895700593861187197145991334836808550812707645183117077230639269271152051090733505562605169512981879311620753932432769191097598589003834162862638175955658406211526323266846392032210807151588143661272795343440081349035385024604334438959269127806800392126256030373701580347606593068021651827853594474224400810026697308562750830162513511140846567703713322140835778459466815031683320019953315004543518053787304897490777420412114440915373033532396602185989875472588653973214742155565174477550997912856642548210925657374235648848976435290620189125721516551001036213405711884952321961088209813089746023016243747404877830927760863944446560837417123172902276031049501375147549016247826197868847685439326274959071884205386910643760390380663021238802442746219500402051608650369056450028333076786964840522381447749652442168555424768121491796050056961469531828194532194235608705326590286841716542474475154776705262213963183709186052373945523746815309494401247367918127441037296273652287061599945405905164717172282804550132893642350704084351128371984664193000939712093122157211446978866702458316570212969243457943709550044185058901936004728989054775457291248762390193348165492559293062858557913859680761168020006328120446201069981134063489265802450589695426418205285258828004142353462357342699602178581555897793442000731581618163815376106213330405140153747796436360067603954383923110114925402941810031633931607856126298347061199062442471474460177614605583441379736897014836783812825077978820451041245458978414081018697066680895676453103499609597568217513793638991524460814933075181367048522852652545016002263856853957904254093933198350130180110872892655381055865898884159184063632291807112741088088401955696219483355316959346006557952529394658196934492840319987555701654215570920857908147368215403380813108300655422330807950197683919652718504947171205753459826027610354837295964475830040658033805876278940867029139705080718139594395312579073547822420096899992710264994532801381773950262806016129387921119183546402047726391053012780000076224959646100180795478555628867101109484190242407083822997711271628720983116615756407908827563050922565959273848829824449519373426328083845513298287280273130804656908719738949386018888185409896269385538213481621943740353413218169517720676183117452726390821415587466407654564047669684118474149881448944602366909832464324055982553699957431027548154829418492794202651879882057764003609091709850818665685080395163060663012384224713594417384109114413086709278746185222168177386092367155590915375737236855393895078116254022879638887747319462743110460891903471946326589916225074958158896122735536552499611547510372663387059487884010079050410506905386431941932571256254692969896126041249478435671268700747198783450942755111128853000353858880478114074763066223257037433448483380253042718659731094524071114383087295601414476608664312496945461404922342981990344617361425505713795230118793509659500303594446092306629521551864956178189789761906852871897986615566425628726086872066638502949173414350659546923180536013128149627943506591949785784306320808484664974871137622505967238429006419091044034652343169532542661121372000054889058953007341660979830578573874522083918835665816506478353148843159693068391713788657403406446741059431194706848785817027233992964557490324565986048373677342306640174151183017756815136903461769846016008222894060113167011581131573626450742151757476382888584552980986314344491290257660701881878533746112875416458921329949732453336677605597950692689460978074346899736782086810556705203492749238635336287633801027288719522122230023450545423091241001907544679210400749200130068792171911405957002713321864706704030727543988307382243548998241299298399144482417056134137146430179797022238103801020483025241839471803483700036477427333773502176231455416292999793257943033782931621713277220560339089405061305082555742269241423271280899366819806946218331650443842896326469078889507582892252252758272605285027493037640267416953340027851006069009635168828282304755044495909225727298666281829637702508911871542802867960760367500930472264205839904195973959105065006490379846922597874469610739625806137561727983878104948541821657022270031657126583398697581241745812271297949697277525542636191130336195309358610415438298789142287403125772942232615161681445474724298668685327373427447672765578379411772066941747838508643852852467785814651244509240573697489055834310161583686194649609940078862672940954823169648605829190961869638476431670450897710023605363707323783279118923766651682576236212512749614664401235745343622782532091802026956058111537731293151023210243552567499954965294831088037740158932524977570570684434300191054512397197001061818352952042151212868533051230956652995587564992931624193665859453058927393022832963943092319960985288010350544170558282368687903495326818781720571800026618346688395768730607031659644242758249045193444914136761650670153902433650295442696446537217875276341134134082551070922335481091656824089150943487293258675627984967380573530198601543182362054550519426046361379893652100121085359739004553290354967017168198651901487013295767882581382327901205428882095487267867517564360580954203580160821532111093551682871520615429057832697618962702929127697125754608923386894392111824627061274183520084316079345903400601474444488608777312863126198130532482132937609382840630062502378143867661833622585088330891195498510204779455895562411438941745984549108952728342701988643815962015651546835203438458345585232239245409919330787456314024332818456196738993015362845627245931271876526688907322984834608435633980395698056143954669446356874704156515384004523991020156551198576944665314821392746500580527497358909322771971055359107542768665713513302797555134280074947711132712645726346400857118430164962913449699430400701885528620802086090178671113462373231847798048582798314829604657948830488598836437052196691852980894441272481879931852761074228904342622844717997393707304684060059762392374965244321968830359626128824017253072022247161434396921628330261844430828653639588275137501528759162720411229696619454372734568425047615466799495014273910458647297635867234406020768097132299590165108919378507931682136379985840007384427040382280167684089410417460344371680613650334807959350105818329010853424244858955740908137686109415446341283629929295465452162460566590137118526558862255464907405186690364934502793307134851056393150876798003537573308387244087402308267232985538904976168215830201344126679272170944968519985000035280164485993982437197893593104198907268717446757397611821223468153777862311594566954211265996427470222274839077188520280541636932750609271058481329511537074602698778504140673120238994443934643233598129719563571286739757158320192374176642485878575870441043527208965151492492057693538778051224251224342673467377623054982551873248381098106870372440564608104446505043363933332179699221565140768412544009768920593606159358575616839849547761612512526017887462478040331889687599718944347843881995973657258782458654258814872801126803030899892813111602439073258611232780986416391402855139875742851857729270713910966026786687203390501122685971634192100919943045934044362726453682516782285769941229688616173043056495145752971670721983894660673183258234586590491793795336684141090888561883395882834355677440693866742363452234543009273708392392260745304325855097355453178335836605511617754373195958010074836393988931781040388058466054496749794074014848356129285309305797743532300538686924952434222755529576740008739983883575633241115303588573173536562481409811057617878604655933955434961277093486525910792260873988259150418696062491607805790894360768708665545073014358766304241041577416414985129597209070818841371161978979746196388017961323183141249676126071173389283845634145810580954391395407670806491528602555239431952060791318511157171536155596038111239359050068835098342415145478902391055439481904002369698134124425735668099479206309353078883957826424658911371975401749236953496809977731889045655671991521757513334579537822287399882535148034064356601021991033882419773365846228048875378838144267975234500631166376214440118483926624353961910659354715660536029574227886744306220871566850577879408441364171868938387433079946814060885529129865032540530874861950496160532395684324185124671003180422514228402946525840724755842484312468024690125942166652357306587408636193075287523613051467804975329717174869100885373435072445246094345305207150622247716885682198132950909198271532305850984897723379569321006850299856672521499159161000514482568751291779609788700376313401285415279473159845263991474957032305566533363168154221938676472790018230358027363596067583895483176974604177589641182172364036096970826829274640533245859602931544271555566526809929422553082266993186679828574988307118092109363021674965617180482723469541314126437537352643009781757195649714354504387917026849888150499069113993609036180063616367503387764152442677335442597785747617655853837919177351909293985811221954930022205657964424343836794086986011758109564184287701007601820106470902492446879207785214621295959227373814322708698249317511626269644490520215020736851856808259873952221818258890605790571225632814269920567259475132414786397141264529875154884142784013229698423305360757638700135101542335150588442133318020411801010324701499747148951113155124326481146665834976318989918436460250492717308138378022886138308357524504731691226856333612917640283441549874082531256665772632731613982595590252023952694113561974774728462786471451972029071220915207717374095686356099385742110484593740778334991204563695882332370585521114154024727610668101818232283100579960364576990342811487910236644852121091569390702341584475294240888244643683978091350618173892530228629426489762250455493547055544730420527665744961397691845608638550158778882047746974738886516194161406553715294758364953227336463927037615130644580025221563118591639997490902624947529174342510231962575046689812140068513643101595836682473731818181182192377340734729256721152854400121029344313675511854760963448734784433597510521575910709160753575704571308895618815807222412949999243140818855409379966838230302977800969514194980730618621853563830789957903215756801768570339235541525690299202142196219737085676863275916815173823851233858976992503191466091856133386886042264740287432438316610345165175117312212184862064540083956191720798965325369390661221648404768063825294697172648711488803539801048160672776123479268402522311617570791143716869535508629456089763991167088534143318927469299999395179881795065856105182695479328636262048397913059681651469839519722369988610091300969374426870951918760849498249932874813887965048922697904253033578462393746587764817667315054628542936428652012485522869340837795937381564921240406052097069248892056317143400953419626155642423533546914328074449224578024256713349944737826024417519402887874400857140736440394258907715769482918384125059997485244391557218855708256063206951650548217190667937513647563733835883276658324664077215872933429972793294066877228142749568545727333533207544361215892376430903796168574416226514112577408564086262143619654003932725804796840698576669722680279346120036995357746778410999139068952404180428723594343210922533831602462165986927103103178361607768484023728634442345620965688592339111737199658504723947674708291894264950064299886496348990565356043924348470265079240430340179799650772890308611569975157991209879293705185609282834234320502274520287359554953553203534914791819708257318468137838504627112710951872385216228911725164706203259474235720260055672910289995766933044915508490410600593844681163392395122922661571328260038884380196372953696739717713338311848953431644620346140181749794361221665819182994860173770328316748769783376262957586832228807132880362079297742155490689549956686099833906620798983757327632199346209689212327521894915703414514877170830604768237106057337066103092035440466650051874732403475992684557251395249251765010402906000624490465391632330616664018757039618212851945762454457454570347773561482027056415076485225188677434709355951119672152238048569008492540656742268426915759587229781373904286327044708346841165102232390809050706646718719989169847786774477889520690167580898892823294460180242622419148521009474362896542536191057833430751238579072741035207482129952321778261490635021112389650550383183569920529582922412223406656582614676117409817809533132043982314601532979413501852002064825539661378771211158817182769641471590243654742832330155746427969442476415296410216656293431390605514641737304030426670587107927159569942590355293595838112462839678575520717089839430202806552211261566399605149811309915496833004828306728875433563330126449619668944582904747800401711651715269440410526967721056822567525231806407915302220795416952227449482536054006896775942931929379858009939351829727589656637310206947257727801947692540386284990509506891100996735901858775374489277436089039383686435662477312134514011636530753610403588085714551702838592586240140854428738783487730311679697878408003804942842929264972658857607000151017427655846750556176644399003106562358545287738182455440650742365352826814402791823246021217272679064644823742554643341860347271447996687828788017039890238449296430014639464142214165350789149932628710380609946505184545230267127074711453457169410350471256202451727932623965742471527436438287018769497608343218441717530518768405094631237900958597350335216452927576738452948027268904464323662164761734355128055388870493986705097934187966619416189682328166158935829194387641628108080531275064345469922400380667321657213552117657129523908557526460637930197733008093137055049683326787660114075400502540565038709760724934329329972862122784121488072764960905335474019462536686628795614236011566929224242307582263119368035058307345848016920050263179505967509435942594342752064018858192616262128115397130846197026208790485416923386207811435460530448643779678281676697228342167701634911273816713784872978742109355547834277134089019113948557561487854358233638364196799438791890094778706583402891040819670634347608666156624902980142707019054640094569764715809444750949672216567626995234940109481607275686636130981818132478589068999680531696353406815713307161219755764064795422295043606783422437654151360413224645331201551264644455363793545421354077079481388587898674975594993172150369846590707141560241406425133822459849901751573236002093102416487152643096455227043332746731633758253492334222568741831766949141913087336394530961876296271623939579259599839777784092761217235913083555374549727623375753940139588281721296628200365776772077257119148972115486564539886787417798762075610024356162061554841032168379741343893850499976842758550822260167692905672339381008314032295077744515083216887542897971210071136322414587696517881854674499784726137835160156205579849086302681501630285184608880160127778439797047119514174444787422120058309794153338760846888720358091809164201715832121522368920412311326495431662886914349353070624474502184139673947800531274171894191736559604929730060317855953288522946744381712513461708506961132269072387053884931494121418342997544373231622156019487875321047709211906830053067422807605498401775344260742168218855014702392781561537087710064958387268414908003283759983104779557003661446975963453317955844311921475124360800432465486302658669162581865292370485998218826996390195376000887759425744823341576435309708501677874089428957696008637587915783043920576829251495727512992689195878763654875215061811835578886239911623197237751228818436274615419897966979819870952537635249940401710416691182723148036814657131701942559521446704173560847053497032159014731128714683200386511236718270513540667138348093219534410584523352124703462062833996284257972118892117598478431794485365662243739472038425139279829362394170806490724369857424125477837276922694882980215445491969636605823942154211156123654785471181210476205888515636134998228727603159130842270799054879894918661243741940709310275256654972376693193126592311717301861158522708027629655705431570621056146237495776793507268317499519098007649220240290998930900541427359120326723977280178522014755800744580005566610459295930461971125453212990734366135036735892786051968268159575356875127762012274898147739797375783109049523767798213763072828527405502600319519584084428305406915953869931191266490528627591773737605602634876784501285383550266078349566498958797929570353582264623314918844683596672822088044817734952237378449667482241823463560717090320476377025418776529542260143104732718364760461181205573536839040008484182039342507802660825256568715695850460303665477859514587791216152603616368809358110241533211465357444477945288338345756989941902499407065491238300862537743276147045150833357925394341378134724872440957040519534493026347791603009924354130200941187828016109901711928140068438552033372900133825677727066361356505537874696636711722133065876459166823201392490533484144526720493885594795922093560050356728196508681594526813739198114212540042630297805916955857703009052739237977337738377886453615632695425825175069302888972464756865795816387043025056907266329894639934370217499771634026583946779278984217665464704921254338913778398918708216492041752363150104154462495042390298288967506028404448364234348586832287124334104731819642611554164360182431436603190118769007505759879502521534398489017334250631859623852030683963585750420708192371203684680787212041927279292722403687979771604833919347157493340337926772606558350633381098200428902685937908520670342896033562289561690417113334690060411385771268769317103232791074854023577762715465776286115571159268312569700591417258432801200951346348478668225504248493448233574202488855333155012039271886300888606503073111921989720889810555798872329901985554403577048387923349022745346201025505712321921322963460518034002656939929595348280489049679292334739668993542122594148240510106332676957836366487462961174593378252702683533732783389665863208616700823899695803978534427605425031845880439330934232108198011427963049000914062412593669516942018246398954881859012762191799127483624068823337829943552642629272506743202183773242272900942042326945175333751118451229108038975430136937970270161385979085322694142402055495591261604651488911512714171728876734522384989302894437952739693944675527596546284686870328535559162949501057769585680467540285752836876503771555052340770089848408682598669090525966639923265750671751289224512474659846850818671253240408446951592040457458819530857443657545398576956829386485829476335185196936771628728820112847991998799161531098975779902445045482539011961309652765976764280684099588641914403876300456138963043351215394141160729866936674643613958839598329203025115508390702171332428183053125179134592069896257443921143432934504521063673690745629548624695260889315571512998492702062163617246998279565213231762345841896102697030236372994699160825829441460942498188196463257039095412634958043361635280363009840254961681261756259168400421406355625484200092595236334848453309956949566503639050969794959234950216788660613416168790216358256039779671992231212884512837679780273299153372629455711184119720378839004219942408411764604723785275246747922477383066717574367738715848007557651975326760837450513960320163355785263196145684908170572133550575329203963589644721773722872827006938777696791794615937983395108476843684356823733334981828730934051708030385351565908565542200036060965729589296172827218827945210526818221726696154898571872278099222801634096380489355409788521468126297148415459855169654451719444266652456467673130027844931225346853175669803713602044828968911045137551387047099519154139077798372785715479084932038302028398487048316628591297794229516904330939506077222144351840040344500056573404712524759583321456484252978214977838163994142286769627660018656871509586792169308996482992869056600422166883572615883922769092982421119846239271860615636551101994127375255386121615134214252483779609148055668974653159343329740373772540082910137116134506455166445875777487777646414871487920057664671233312814950619321030220837159903633762991288585508456930344514259841346236212792182545695034274875574932590671214772315743643976407544917946351929443218405679017577589831368776101136738466948554460751734262615758150562743864101225387379862921396636040738886547026889091099098787739357288653526974910703554380944842585659909867828870633055610895876365737644824241014416159245994257909299226883934760517659368952154506827812828397893769818762339394605074988812809013204492476387784939028115589167059952667827250550811697955853886037757377550421445422527887263979838297670142214375928116164326076520545402805536884843775770823494491043073310502386583186052639278848642033802228918115266340585178683114648921451997677955684578309365831476805613735618247212410702536673597562986319524582327857926502651558469245934584272045486009685667932965421630684892290094780469857404985095087109309004878789690888343707488529647322974429996992553357539226786135889976148897779790460920931537676958724127586723355346739900611451085749099148339416817753424742981836538814534260187232372272534517066873122479006518992200878957876780174228175307587292251998106639893984054830810221865719735842768605459849470494107284073736324064865642164357533604475987390345577336010232804330694271292117852780070606282786940770837033457575128298454729079009039305065022165916639454950349467995971898754876132115203587166401366169864994961783614929972068903399791818882750024123577486539072867444079295130114793744644391789095034624757893318478606982805242937900961542729733113189568810463685942682492922377593007237593876081743197341809712881421090334744536915331808313919909193391165320985399929063841337961745097190913690678990849225509112151723127316879616922041721252866716170144722958030259258223436802147165274086152910851684839787326106100901806623070682095388942268744885751783207547174211188291054788457632734781477590495224546107624805527996047038961443768693363818774693192708615914161302915732009005508645922434390087526624332366729347599306275540357124892224268300611546323378209626826445433523325967643391998784727168008834466511717160027438487471065899735348887527338999695740526566498919977782680311243142422226240839397790449175403763816130230515548228159370694359408032794135248956628394150829393468336381724442631170118168694741048373693976626909288600868142112480011180653216984477160665792921265649789524430355538015738533955055447900996024781524690084494940218040702303408740788159474803796446284765796611090980297591146329422708504050605409367560766427160080731225286074256683640162607926371556010408364245210580034400212259689530048011783431285851023228967934005703713109378710797761691327600471372751074302766075782294181431892159937067811350630047308203453379012651156272050946665021147082963517645288388863699548163460971571300735676703791582308939027335723802625655408639525210161127303793570080295351389586157214801399141316258558933792459614452042564482642775707087570596928522589189704306953076844550494377431239156036829704773039468651475117556852857300497491108731515423518379763039580312232892151863307953075275874431434949046967329535639135938504531015277444298486951341642021922584966050347639547995513149969788533070756827817576806956596183760465571644765099262023642426814925881352453262965087522121812057506649453887278829484283456396426374796715250518416647457527339330964773374499277342791166107130858586919755422905305470986897290789023187182437995027778366465886319246205494997958890842766115142097662517758239412653804479592708218225088479168754829931203144320244158254713673725264849034746228098051853046612245026230390072063895789141374380279924078365779378897787941090475160022356763745929346703768220964756623195923965567765921732737384114799780777893262376058829371295966773938636934955681726361839586376942420214379531982694455667690632670282313653214673479153279178936592478265426026541228918490865019443241882142233705872466988192914193939456289030238236904024306048279530346760216266633220254611089920923515514918537194865191359815631417701390671059986948042493717879138784461861795990525123672817192829181629233378212000792747468765711652104792721673780131588082240469096936823638339628427901292819001426521978416153466557752410694552158821208094515578433493520101279483942932858606669363940270322830350744448010594769846709322792851119529753815271071397547017289638684887495075981531357935998622620722913206222013058548124635122868694790722204592062372487697999391682724116419567461572891208238381624594139182394912910276878896642212074115618192382369231972272359296431471961884859646308840041512027913608690279163983387964639750414659665275256823762368004252662864692485456988023064073949501181314109802742169513981889726879749868769570173799880037775975999065124800087625483896552091597877892626307106677074725729810939318998888545384329901028131766171166790493111556432178894450934202210834347166394576585981888415095747983789261697607947108237039566715406357500401141502026340642986680900483381037920206961092635784339728966892662086264364445295105379062505046618165695222969913515587193778860639764384390013656514229390283634373859313439611918266762830190892351935045136659397463345430104476278366375430143536928386833190300550050312660615550920262785685586974530821445284554765476795078423081300456645850164872136078682442558578991135875442892006022262109256765019023289367220468599644637182432718573768327523263717808661192215375064243602699658565013634326615126450542461087654554033070286912371071246901685877609346077673284297255579191381948445945738236320589408400300173933653042093422180423341925867012720180094390291822000624347279200900980768680625885486980796567134941908015527256469444590079025623903971596857797688732258305434225832188330639158300462361195977631559833332107216624751628099774909991139686845701076905636671877651421749140365327813090630021962499869839065759734824042409539559683987526107042888585239415424213232114328842457149223159776838240046682451415644041456564563190091109417304334235140605631306524732640057375835582242572332843237257945696948873989291232520267349462861013120322162679183303144986529500932431124335639177889502624399755973812421869933468314186477521333763674348591388495880969754344318323914369665687141541754370001488660378644993598841465937854812739165710158030115457370874068728017999986213858132976658092475878508077831528462270091731410189654128778073819862102343855620208217377689347881863072879708488885271533417876860990645244767291253376896938428102526741685259795937620888860640283778184158799527372724070454751482075037081511195577993156016535204253730482444530056776311743795646294226661135063869494307665758880764602073013643697389808305969614732104620518232379103465033641653362812293584573223433659684228192722319527638042005702336350865582834566238194357349394714863119397733834668160998518050035695910858577297002121966369177564690156026525439709889203319854932808521789347627656556718691566208826009693657363172037567747216685044803208571948838713815561474256928857961429206321335417456382587593355068875776561949740961038685458493467424738211830941258482791239055071427381208279520910216083320212744512570621740121294135376177193281710198348205465119810015724702480948384283640606593599417184789160396454637930972021231352426067024914928008800802780541837501918580619423290086010716765260572903586962794710952153061355862722771871117714846941243769512927687787875017757548408761479061583455442519842110129922173002998322532571292940359669336787336600436581607758121364205107503710772541919704266267836033389606445090029750251822782244428761202937594788772492787256708541689610055969823186050245903606352416326768724309521700413280692152864046983998150663350819525793023272944860834621239517024676338269146165610731171358222560585320880040969957633878308797227072701673606584878630575012324131768723389883472576866812169654237732675970798398744121824205810125224916049872340133043966507638967283123844314112831392784741738688025099970283171172971828541814731978590339457866243317673669799621619052388808977867076412247046947395054432207305607498785473753662776016512871836420275397670443111942082374350954454274814153086460678936857112649563604419833070557784732990910131941902496623919308922884014146362045157092107476498367562320429569429753097594488215728152710940720954605203617065308550943964405448473893604776965801332154311972416421529964985509463626534197664260502432680047768446268366516287928577197079601821519661736910825655206985107063700125011298727559264168830584535180786717824087081741585281054904259679159946575100057460517971846374228072712623314449570186467643505031047540257827581588476488321570121893651179370536068397933332245415201770328609566228772465980812553378929780734094157162966278055009452845852124877697749077498000417167802005181158166735077881114748640462966127185767975089222172028795711403132890858017339257656973502270714519866337337135687263608409318440418387106015246350014335879890412661427674612843636774583831927395912735797547465565560892299370623709773997732517659247112921185456398994880591575977594668697241483099382029464966843834378201196203688783955663861594899113593512109791490029000182867049331942259562647501910864257225560843770820670847905263786704006803978016396678773977839313984039604353425159724453924092281514077792295189098247751472393512744237305830040828969514472573573521097204958460591897961267235495736028177117797331961360400652270199799707424814625159894957413403667736359208808737706190453531268592030985444577962257034219093571846499491937158373243506794541965402122940262480574814401089961447760675160546591629403461084213123089553139258790530798119148949814509033593617054083472338064926558139122547376438150106452457983555489103176228062151942520293280204420067859075065330463406526043648156106287254715035715041723023973333908168455944238490642354719667500649043599289696509201355744666700835909227124676050128769903031399787886062226733213173474278692295034363928462269207532423623223169906791071149116188850538623932768682576870654126653653267663308799120495287715411672251076879019851095138406442531317677574825998248972093559358557768546755863938380728173156826632118445653112908142429107130332937213415850271367263037057156677354833540823118325373263900974303764185690719515126128959256977969880106375028291381892117659197375993030652745035523740234896213725675529414633871432666734516964012155134329167889389613208183645529479324234960971081290097449175271137290129796628447601171314717009978053368538523060343788432945852913249943309627727733547806141101240172744461607606083406454481445432809083428137212462504215413634803915889060998770267477728011003088192661273913376477495663868641920665803652138709270730963939785672204670215509364731060635177445527369624491071745958317282793924974006148867048480278863680641338088620395274285162754883951034721349545682610159826507383940012768045182105208445320205093581416733976017912762145553926240260883029464354511324886124395872455041014866821932452056798088393813532630328061389874706791259267488990132063645020136671457340021486536200688536913921293805618702163199949228658808959586592098420393699034343782576324942810760360180749839649627265905522836381592266176636969028402135496234533875967024786462673551569719879702323587092699638620753352501154449708787733845069999698502850731454250492391412706232648433347348850960127987803559194231416684768021625881193224977097400918550689370708325040512738446275200827673586375292950096298133957572445411526758647506652707572848404657749509721486422487924877315735375072712688314784902646636857995978612986433891787130748701344659550447315300149147003357569416159867510701148889237184238285915017826934321995635639203253616432543544608421835240429428270312645284014934049704437678103285939727246367259713689714314810791718870271386120046964209136805157428286316753870987842533315519685669260055197988057575910457101862641153158221910485032255118819259840534382712047451084624898252657140044783667258796329822688100285989910627593451400045508984632639366948015024580805927011103661269402211722751379344307343658588581146709255395081469380317874433135646209040251544902390138578489896621299430266318832473290488250372621161388053291574612751322071677098543027302954536081001242932030092208027803340553624583879338029264340662199149179093594591111475185585488491576850624778330492469618757943300283439498022665745872631954582243902119988578759303275114773420895717708832695356257387341067623509892205022736895753344468130083951692646746416313391003224118369533114453102369368256459838176435131006545615362741020961592869407660637229468583149449272659185998040239677766283931062088327167273058142898239675191629980080730326772879900951180120718990192302201492227277804270760468047622523483777717522814151879922358508548303777880550909057590432028608512608058977791078565764763797331029529690920838740742824065325602754106493926054703660296230257735952005073117207300395319271486607994868232233588982774021554894540725952378226701793183305760951579607269174669500847033992631849215553852475272941711605602801547852368413383415526315856004136511482592681683526518703598899924139225017248832517925516234131624901481253816380879323578502233844580415444565103372268497520497954407925099107534668450883537302681546747525101205784423766002818818077412567151542257214621731936646060521299891415162002580653726869580268026086652506518297601739644387298425787413211202380710487204601192930193283540330196296609987796465096202515644043415297334193869367271184537312191355307539351142902503443651858667668176206250952678681504249371293158644155271089288290183124204682865536531867560483125875759085332736518590602029233217016551685235168601663816180544829096996198247537392215493733684805167864844704008894500845850434572015464387875937144584869116166183046149016430725655240260215964904187490313256599358160143072798971167268415450422270674558714873554307025618811552788338082481145566861990674640654450430284431911801938790178944511009898988922810455981753871129250790964615514878417400423838188816863429715798717650629660829839663258993825727633368731961852563638169757643384753892417440409421641875770961680541594691112025189694962255254979403936248740090179596613695899904430943599433608248454153753319970550369054202004482299358308777531834053561092941796127623194088794260998957554593270785615414631197421104215958762940582963092258012959182591085621933733398895445564238450772295879162104900638592606629150318254582312649566773689971721393716718763046097638753862917966216508912313979477274571866415185675500864896148551863833193023795382935311363846537470835767864375047350818029196163945137171114223966765106829582669302717224265793996044247334315960515359162703719919514099377413314157549846999919239616134357754720504650325934944768774318823254167964488586099609014475256875038098443784838082342525184383732108438448368274447860650846530978616589839835427044115775245923848884077844107954062707062692330609076646459981296076230133913150090590270082568726873051178825942231756781771033265917630963054727176080028236317069371451095044183477798370556009559210335252935863855569196768777819527539183273072664859517045769483264388184083169589862718298019519184672665312192633347265221969577037758131507175846098376255474569087992026901352842190359634565685122698297220784055990849451634895681894883585736391558010619743376841137256434300121925030784855531802770681693883178270093609664250615749166007040942432584051442219795604113499371272803976037018599111132799975786744913494039820320709054921651097705985933437371822308502672900607425034131060521782029390714771600823777530417280879360956069083751316702460862955895035612622488649271448163254690435581353906377300200086148241560825414772279745931373033041473146732451380880989173365006586964022555130559170692384088446734752217752992329533363745177167956203631036560041468473585938999790024823385119656365584627830456210410874828950016850238372161920984677136492619906455119130200841313315667042719723452437807649585317299868522584135957334204815019864602827346196834551421926705969230897694461163882723197686968939284670058819179876999783299529597624587676821658767479416500211319870403976581863747171103680270022679268950002793779296161636494814741782316988545761832856600046916742628491170726031568884836656868364621993121140974375392098418922353730202882894622374649876612133370927000390642420015703850261631075833246231340140741101271639609275670534259428900918224810052834111475081341500325548928763519936173498923152383465946378574714452562171548458461459906436616129544369544066603050106700711246271633331815426598565516515109805299443560991478000895477075277070051962297579158903201562714728627921291618712857829657473333264133175156382781386696483894012044655316930713837963875451959199911042142344325456580550892836664824734088125186439001699069675365269933950876122193338286962490938424804030208969824860152563478908998746323438014023939130555719039405023315095169101953334006369724085238869713003392904611074377270985407005061640403716422552213723611495287689392879079052006149352432386734257668840549425245967013433900771847418965562009649811719700763310243508004122665228223604808489448138917808050025560473941864019923441418300337705712593506918176199203385874221260963728183741425930241140507105928804185998770860066166876243289431543885060980863753389165589394384745931366765313207582334934546622128863803110004623174063259558840426349507881941237094662287665404621012068028871321495169215250254895475111519072693504323374194330459875065509341363834215030978106521345355721971559737321260950864323460724683033522228680653718864201787788111505739669386452992528736964518108988718077943510803143098391575663983465135278191297168772744676979215893632399766394814096035705440698033727613356576802784251031819164493285894889096251467419089569837507485570717286668799949453174230813799500754043640937688916325833470658363397324265950124071748847696245529085138849014106097607428792834695150722810543361920473781924253591601052321532758390225762310461343812043409151015225995212561741193089153909396113006623922152961192323532912644167967599138473022288294170104335928123239949847523045576906295694649276382573743069974168670223249156475720357903165456972430902292726152397968429456285280385937475826310392391033660038417284995023387112325104016385662824392118660189009430495069739063490767561410406200783104006698048979518002371521973626598334401113328273011641291131264000889187102126756725608884636550550206821448246365211483035887842705770311802300770483760019037231404516044708934807911970997878406518967701954949199460077352056685427796764951928205292367634917247428249177850904685737196504097058833645172285823101676639720457149769411388547137110410738082454941091736688244287265414889776117546838134703030165303619645580195886356124116480670497491274140582817790344406563476816439277186829085540804811302948089790726155147701369386291280615929786203661884824234294151191600202935863851367542865635641171327156333469737075911648381248538732356081928844862387433804945503437339881235361116898519138518431044733777980377018937291241617586993349312554625028692674434748103791133965177907555512703778179219769316167636637985968913202691171156081732882670141154386350198720747399296011436818956681693364390846194655644683399851212796112468321283789420613594377848508647268575788719303026281779462464235889724912869799273035061261558178405242088404996268485974097118881013295059030530242232159575718044611001738852697471457208264880744941892788642075742775000838999900706395713207544391955642782380569357248617397225745320622982863200184727936049926595446061076786420038393373458513848237018659077868715981954507755370001761610575618962624710879096697472903675259324987143047957254384673058674497643852339159729866293584915106867752837491149617325886707186911673311691434479475864781972774444813932721209915190553656843574838336033551197506662385197552686801785016622702258247596655722990556633835839496182405824832777824658353281755798216606079666162375032182740078049003113991844337700792205134820349215192255142246859968398279507345947235809268176023562299556057752473614429624832575047500001660808468349613800899902042808202766059855898061850416502271026300828209283067304076573120675648746914659303285273515017240683479817362252728803398109902605164630075234665570850337420216750122164796677949217419174531639729220454595299631986356814374726808557282393242228076866680181959020285812913551474521670865176767525781643743562038336547950668568546500065954667840336748689445542409977504364332152463447849908627546010162675866423603159348028940182703394908805634992067916581218684213414938819965058357833116242087453348673455631598719900600090280203466734638606316071540437801764991056151765979326557696952862988683581088548164873018706681648327350829940078167917768117209639001313426954007476624260796371206728670178596677345106495380956334612197690782416121902743010416071128982396523962298908764420911269797805426588632126718098359214413604189069568225713286025747801799967361046131653164931815472543545734732548373575873593410136154674208474743678253694153176781844927381135685645098661901928605611010061225903196006249160418876902825394333489830192899501696883312287566374911196520258502644105886796988758752512825764195015403853471337701455702700256588312885061129196315888526870198497147005992108394592501321383225622888035581883609227973439356326657278411050645865479259251839863206030985785883329508520787349902002464248060515047648819916998493963096746408760215248485752927336284273084088763141935153292759329873515892476073367381715284669851508664085943463929580739392457485061053889955370670453763122509239412856515560406089539669828960981181988569082281540316326725087638520931008488900853670475037639837040647136278069648983585319351993345237469901154720348132466727690864327971819589274157031927558487651975972263140582695318577163554898363480110552537206961210464405907484016735156441239556477320640228000446272871473594761893003008084098853437140096386167901123664759787373138491446845014797106001181199175263620003709156191116722997730739006149601180414566590619370070583639032428140348992326491641501807468413608814953660948131599762636144115274909859847027351128464207757927135403677762214756352929459437042518308540240089390577825372487432410364115400593517425729593060553474994981823525885107951173117088281461974383078044404905708983160341662176423970992469829744947074327050718248278081028597709664100222661291539443650489132967718443661986227323245808839259879519008720549859274056730971244221914687689923800452123879261554437845878686638277104053567047106366805050858832378996497396579914598885087228158932833629885239500249145885492966794514863691315625761180271928808609117370332660409730250954105024953926554119442536153229306849169930308093364368668992934009735126909717135147045082580304700501460795765385409235015311814956724074012778485894583179501658125907112850995023493296527559510026423256471927107570388477405738953848444490843968681888235638013725729250439492505824871312229815643982548799450172332388678197148755968096214578226347377000145693011562471466481725352670719764562061059181834263005874011840785101686294701251615198190762784855138775037211519189303636421902413008220754786514118995197472542270785419051902857361517042465048169274685247354638950441532631830087635380113120055105725741789576534486346706570526851081608326959330039613344133336041210408757810911784442605133853737700910344976075995847049205641656982849604034972678232512894587085890957090332882921856892192390960459770861707097777555707959871245131538803264338527034765201141855255809260721379410161766567520217113126937490828305010223047932387305762728103779874481624819998039295432968986391251884413365684060534282690773729286072933405756403388132242370550627050158754176705599164008535829135606622275190957974991157661182601693171238807857622741963476571616721357608495229786440216240104730510533150160579596764556701884511658572255216684215737880652475244740979334871498697028694278583367108140577048519230330912779845627902496079600209192493160772810770852547421400684418210984754480055596209829605170535461083722926289657752581887963860670916595139345687132831889425845943040527522614315475698701349076888760013861205175193539035508920896587518125093482715102324776470876560924660754270005160137839297962230805297076711461582137117030339794655911349617210336739892840035252437528582406747714199450165652958928204617829671473083428033080737460591184297792992123780558000257629253325009690452172535990833586842965844778274584775347689355520205633904424692549863098204979051337799073516378385149065982261201726074550457491952785795678939331635037310319982122792749968276364112626320775504941564280270793804534070893569861587784793962396144290879823456322233414067951524833020511971615414463985060329480845054642526245383487820295421926303700068921871382406433426942486342230064732866157313797306714928272378039495574696774948376668600285889405335997015066745391643128999221538185602420740851469731653222393923758380821058887071031107579653223562424998149831672216453550215191601470716336513020457459783575644033431163109393607270085074086372390665700763077883374338397905821937451114507840446910757290922838014775844948412030335221807480085049234633015088088309765236977577027145100457872609670481029493877744087080770468074361274036512487043151261963608712753237144747689679376673266730406084372842660569557789184445341158511843119967319612009242899547247713632496723238765880614265691531686236322483008644490639397487462856463191870037434745254531273146898891669686374231937169688188502272524904616304721775876936402664147075791736247096284903563315815877563198549072583280339850521863237874837669072320757590805928766816660630541366833648595536285222233669793620117443490726641660386308136185264634186912748788175373559827484138637597377210237685451567967023934975967812405229440123977688250349535049055088187200837459446869092109945764401231261036547255610615577024520004549430953678223515689475831898577253021509216940560620127296991326941139496340776818065304481427707885308390546240383573637313720703182560870716481797149889507544856369708632132887664330412863253375346132795325368721613485148537768167602351314456159634360286968119853054331020487436353484981591889660243997749996071792697411816809721092741478460767082611987427624302108460423618397802641090347408224524329544783450078719058339787874518383556589876246907684707837058953970018492513350912996401173981786683627867553138761828353248171329582828207722186742938820776889861113023455492334439910848844305545718050116379096540198960879731467908211141307911596068791818850933144823831039542828534839480571411660265472055658191502949875961358829191074031563997830827138960635116599422177211554212635191499403767113033475357280849619555196266415797718356600809431227452732429960520992626717284591458651983114996516614534629138916946557290841057677017162798224104782264076593073267877800401560821614310127631347340486284754809853954062514277490421655391646420101719778840708241053543233113181623053067228553178059361486779714421332487077609248230514113358014011531918960854360529968432333352168781541674154297802466614745053457333391561654049099658133156282615908434792679939380692772767843310100813020471422010075246553998964648857171809760736101635966786127467927086911978856900557823623224741510667137286045560785371882480331014837398183505091125535016557083032470840965763957971153891000158303252386307313361405635568770737468246348207502160466344730710192107495896400119907510459483622842526829474108326643066652385596757228218002389903168885274603541517242915818216488699817297118876573405781627348560514913028521366639294667700569535784324339122568222226816530452160175719406762486177860585099337968955293653588301855562614455636177723956644300734581229188598232203180158933692368795471265287942105184549514362978889327067616395830743815692951003880981476191535511150558890489054960536058033744829891678197309267923915085772568110410447191853923524836728803109812366657522421203784874461831304515219060872364000029724407956183188775285424792508139321059344556673295669143383836965064355148507957814557715626622316368125336910823494411508979141970552316201824823830054962641469795173494138054185743092376969999221863179356419836438885826529263809082380158606571724353917896739026813406974186533032390353686532594752041106466722057290766672409054429526003944456489916067484169014900224504765804629512965610901991631938816189474754294959358864568896511499275971645607387361318535002839962042091287325694331714015448466203350469052712540724617700475998579219653690326145224799719125707754176545749841711071525793183464197197869292941988745481319384387451940624941671710941080151485674219004025913336948854661918751590021471433754402072570232284077798558218098580304083858040853435868105447079184386216952473420317960318500944518066535085510352677115741598268390308889648998218812775078881598985709660780533970375433493108850474857254300549423248622223761568100695427475028975962410676775232905151998939375256704084036466196213962826277344038027420910419969623626007436753536215505369388325558113636437433869519579496061093990471980674552380943494298998011791128282310060661503843524015321733960178256334245493471562742293665196216370267290778829552679284117273147076956012746975809683925502740188195054070454313073357362546167345685407894293613950136695795858083681052577309649607547406308745142364550590186162606440105531620340268886504084332615274973816714447621793615697292562549107645533509465567119919953950221259171453704621445140019699231052287582781262274280938327702346128867743438172524164254065190844472931968439406470948155800981846884360492758161216037985152849937399012766755891180747389051306350618957582261811236422805997896588527516713804608592543299501730837400186597929444212091670206885230549546661147443957610655092636233872822859169707912866605366587902426048531968888611050771595291608626161580502471839913651783113162521093995231758005845204264784846583617669044397279071077321333556910529419350460163356824899388952705965952332305886915183739127323516494188106261021389604151748446458567429030025253039995288180814527486908784899603828940459285449038596657682640469503786373744938429442753755485660700396035515986183939195179865014720372947551009860861866588212929189799187136066369954544886789701338671326725769319064417266066782609890579476125715580095432020690339663469829315872008582261007539796758242316059129926677882164478350178892761447443642021818519322166116436782915856147070833594911963446417761819704562271710934466989642597286527084577315151410655099484692875914900100363318464575297372553399554224119366891917452161664205019333770181996949671901301274596765904598784772708537763073441038418409170535875716741729605344830977857392039535884896067433556993273112292760728577085876172295911564307530439867008512263146822360092925634322046467557520607435078505788250600181878412163808042361753681193145876074561673680859542898208472785023627045669673235193753649592067873363621024066856496542107059219664681642171138123756534133401336197998988312837123086374249026107589783888190876526514932050537715343694244699618247905439545738056691960298492508894016146164924328167651928397100296838865690539625867496791941089609904088777668617328658949950206845564138511632361953469904397722360593722214311035983429482847587284506944776728250837999512318634186901178333759763972873216666185018972502276414003326429835113052195203843066440094586766415284488928286827938884432588243827248950195473790883288841070005776163258699322055609769564011135241018251264808140829953568974531392312435842318453426476860897929380316589551516745656552406201032564413695423698811010750208311399019772862168798000955949726994364847174760948122711197776945309136215321416593120835805972678585386087690480700998644696243291861355611586828619492367497246642428780190041282592783276807374429728924047046029651541203990292725605940079988266437749442308215035455461729467816366005378035093472675905602148749872791947517425041561821030240778403018934357909572051049710031546975055289791437702166861512539146790598978820356796303462565086181525792221784495792695908000518006526391028775055122795885628247885289651611485275505573641212838815068064291989979777358987847136894524155839969557432757006164745008332939480660842003939381336862670126472444401607085789769221173085758110361897683806243073449502340209726883372432322473338514685512796168490493459393742573303925231536967031953407691886730079560080766722498859084844586460643841501624612561870645912300330630446240773131715814589217093458255774134693461830138495943835318628202336816209556635014507939620543789380419687012934722888085583554385289701999447249765476984535575937756557655285035212980360714779115469085985351345182358469010141494196544734772606159944736925003474803690406379656315420173101645028351759111365024247254570871338353053815977677683573049715455502320014650860456550416784645882867700213814834066536414293183709192359349377072290547478058139009227908817551964358103198289761933782437957002656678154742064264495215771185956719185305524764207458363253351894174680129300080513486805078873582022581078641990420127743768915268820396373517707846335668210310775197237252716074575263265822618974103373011041670058491098730819492258004282398098212703668615723684989470184724899045485977918379332718820833345266483491720961232958540593346483437189042202665461054071459050946776473485449034289961918140391871443801533107790532953729418207854845081372696732708769181363017997913658685982627366631626364615773285146872113623446206648944981578577475364537100208598721589894262891515016812719253845642359569732335521587348290842077740585395207279412677463889611500389738417787561815397719421717308369478389813871522698215111984109437443434664464709062514980822858206125485759526454825037306625679963858501622562117270814394374004301866919405965649473024798496607507300400286847159895751393108153723138872574758963753011489039388298329189161396408579436206266935039419878359898285845426307084653207919480120047702834831080803070318239583179184585111669310235914553724217409744810215280656944770597948131719046312363945700409869920656213035852262372082769310738768657433214604664285365411906128166234044038746964890839785339243738388368910504624767403803600735214415983829008804991195910280584674273273873896748438384166807580497549869362476808705183388782722826790831960874724398644752183451385731787192173909755720588813979310742293847385926791677682707723027006321771371973372502085258230485261725404561216297846332822873762667657873449105764999012733895766731625338500139412846795553831532902882184498432036385261661448264971372076111872329470098946611000646111648874136116100212842802881628455283895763746112224174586934026795701348323558982372478871201637964340376483207535035486150352837054695479329421569588158671996473068231121010297892677438736765141589888954459386266654142783327216166933889642846939175332086745861973189786193091675039530544587315436369870512136936051461267378622325987276134858071191023394898723735402015173158890725831922269691467894719043186551129060507709852001854722142359204335230570221333865012790444441175260074852550503619789831948815299266998603332903085897542760855696303638349489192229551602270294739169213503608282884456177876071206264689075347428490983047630885501692918518734351454155789004284678687160903352850333808844520575672324274215139716393917774209269516150809143070449688081974612246119927932460364732489484227942595610680180501448209809837106037060389804993224334187819702036889182433860545877075355827507297982061387471284474988421728566927267742670463205677951758706509731444119649986430630924472565694337234902342660896509969688873676128310441086249371785675250734777937864044436928290285169004635369223073488938640093145978450817491785736887381424552927581004650521893374754603458955399800121845635940101738060344408699668849455786250541194134413286149880971645210418456655565349801603903485095132500257973531116170604065426346533936915834060011936625946712333962988185583038615068846398514030643818302797369840288457991854844507655162152282655758251383349431489410589559721392667557714819168165089564506879539636734294468562369144256116142943012172024602151909250141744604546574858855147292157179561626867869958089654917551952574165088437441524834722050971147607053285129951639050001732086298261248313274410342534726501912641277545732547006505548293679166245435693287880030197513723528844236305364821564114170634025094253634983879796017128615126108256739835751941516502575675550531625033432175488498161839375326327665850973196825596805291398453345148950286706423587140177565856785495794636446330885020487896863364619363113505439080713980679622659929696854367516836198318531579326187063112475944921528163885268710023954094767849602432210465381555458111681026158863122868295064727497122569608413667041650683869113927699469825313274445457706608075405091735499096500046170620718904094262885270883692416234336519262373588203795368215408538793004744569712696601432874142447126392357023035976448103396240446329650448990513705904247685915207520544716856316013535434698032441068937083122689158001596664478079331935252674283337077039852046908189195954183625993346287387426226349863148452862740782820936065241798764482360647744627120887284077581802744976620274992353653204281628083514264449033345207029566810379171786793344423387122811167588794078671156328475444103600715940956671359908582096258592950626119354849373729587880153922920871664945578242040876281566049171916476360206851231561002246170901017621772779328939032539639739842892733444336720484985393794349408396236633203535364414582673085521801788195768248026778946386820721787927261573516573709718428989247002554383676364057051658665365892549443695993435135312417569393761729332726558550928849908652345394929553440582052246847490729068531860976123950396464546714040876363186512484974948117319998789818609265692412370195253620752590161148365211287409193310836649250662437054940357912100457205697636183351069208777775553517702052760881828633693390243472002741467278989135526336330754050010165007702898178991643765201988874527191455917981827221141229655540719959646751292962560950117619364596913977812449397313121533432835951420688333662834823216822059466884512099352932696468271748127172698000939314454293688980210441548975449700920127982160576902947892786710417497821840613814226159195949265895068903654970749655581442654184382601202234161817578171090803997185976640565102025735161267434329317910587356724525061343450643907741428785772393364111110467155372676303669447479715967940140240418379487423350556109795363253876890090605953371986499985303845797143185353427654792955877136691748844559256956375555130375937009873813236014882605978327956772692105077535929662879548251818427216805413223785052090069013713072837945493155875284713584116765778454555332659679374585370926676620718197846932223726054188404144879138312427474418828668182452295343137423743379991629418250433738017793638419064224060771658252407834111168397682307374290761632716157092819880663708762330229116357854347529605831256491305344590042429348617468763677820218730061771420154511582598456678027331987220219330439263879343467936159368178953200831683806029843954649202186077320750838438841732182377115049801074569691170989430726520785927959490172414157485547646313533910501355022635161608009684097787129166000625608458420499249536945794523005650699867712424955801033914389119838858802480731564810685260843331090990277076123426460094585597325101825442256096393449870219423089543941022761258587902384502191413617925522978013876351077774355560130660306841987437487827686877534324273962771575050346219411555121541963613160236961274903188337488250456405382442518374274349510967756517829759844088244477338056783304081608572186544393593782654785862689945346912623977220518983082603773658699831584061077291616432874435715969394399604327311938670634877290193148393003806585521519846450932228116106547382593359102147309350011565437127119786710189648774672258351040577508977888760662072600395009163981383783490003506262970483120930724201333061216297534738617374724728489647984570295047519637327112133445017409119182246895928591680721201486847603765970842533596769606304918393683068745619995416188578619904735864124287985876190242277233554175913606551715663958221494946966363825059819775280763983803799063005091162846718009880852927030061565204969956890840664395587878501831608373596786950294604411620276148505939701430740395410783811481056438072759654399721749048402258246828649703614210742165218627570079499661722441091592552213752587499093003543324678768496455175794732213877075011270605133000172564270001078886186189374096949360233793223849191510452594006886676759198668111803704254547527551611555466075541841948833781967075228877778025733193928746365900368307130197990551246921031327525106336572040214500121256488942908719155674371973378030391598033111246399635067262737622334484540401873010132014518481748259241322560572351285779563297706059005061778934451716852410450554944494505019364111449345093223840165893454741255843090596541170667183119374306679771324071543671653099294157657160193454025031713866491350907400769394299179133417165292744426389963878857600540050771987596112352312546610499773709265095426268335672928444559423116940742315016760808243213128271241349360107799477362436778912613837351550267274608679251781718905564091282237575793751270436744732480546585789771126401626596606767814116679545054797621872957884066532149506061593452988463923834441706149292727337254018220260182296546436127385538127838128460625360525247896658587618202435637468133351221529927903960235458770153677956468337231864966268815434882690835854353939181274039161717450911904183958050313703898890714392241944519023852820052647651283896734454708110234216377975549513218967489330361310204655157957926281572521345433773349515546762353228761739105701007702973130812261885032158756248157662489209386067673201923724874328595247338087387697231093445725429262854633837555490360169192958618522428399661698847514000985716711317718641110986826825714028181792890754525088403245385295477359468895055833641110335229329996474637778425145731397012492994019567953332719195833347360950048068942571575714515397957570632555330833994943532520294914925480741602822410251885140234101717511082379627913590815797842722538856464109419325545890972962648426063639282218341736550116720414665998566600760395577539159829562448637266821842960608441968374200386400816434677423908514836490641507149004363877944495841408692831707002395056137379562783997691620449307273697368992985641374311748169092711249707039298151888854036670503550051146215782235594653729532916648086598831150821200051301596966819445855375237842000931310005520131588605327378180975002538246040101846183034770333670006113408427230344235287624240940521564660635460469442243867008837174671322038937071429160278752305930375908115369904092967736296674454713679260336900333176207198150705418428666955786627532121470176399756613292562515311300682414852844065909577310393587780901292944201608830570098970634867847520387602928395749405809603020927066832215593417645392421977954465183723346776964027436123336190028830989422377330577590375031536370678242718309553311459877359373394330604657387217854650037634616625551407616854848819790995037160266725703275477962803261029435818531996976805619247780721177245849211296036957620144125239722291002535748866483220899747735743262187720603868167555374444147760909837253060885032526105496957521603843270440109667610550635426788823064714890282178864370072002857516198800675217632052756483688200327392431363132432411765389073569831772634303785485587010748936552561466997374415879173022515913332543354563061935103162948824620504487340176274957890751478025058072492644079524404890902022722186919347162365962088464118635762831945139966611741589079041182461909066737273346542015993277493287976233470823676305910424545559545314098702063715847462383668919775500631492745616063633581833008541080386484335960061039909341590530368637064797612486907837057028655857337944254376539337563143010926567003046868154395781795095196687077922320924933289218588100188828091002514602457462971463397031405733003616169362352562420761402153681813910068103487357529241636006332963453183968376860375878190206734210636108436445482088783642203209400145666098024661779381109788519034267301332180684085359431931207678477732753147872999014962787288099468249881810799098947268024757573517485659567875753771336354361535343553738290559759355254657156882724541273511267955108974798100539873674523142790284047965191305174018350828116751936627790441399989031128156572393264565915042161270694368030801440967222755451039892915222861995310604876636253544618154880246441338974235342351321488339003802235793569210971572864970181894449967670533397921219393515237704403480777866418932678133804974351850757701616616936191101356432972887689172230899050829369290885263345512310602491589336333547883380882189496309163343253807360325925408712582965310911359055293877312189953024251643562068174109969201284438212619052330258869090653528739612638212670115151782351223571773036106645219602571468246951430081005923688569702218352375008834060107282097613877167317142442925872505621204483399692965166778904195859988799740831001401080162249941584093633513423842335303009249651163731810204450672006398992990026028211746017747682708112296280629495579938221186461223054551136213477704846765721336893565533706594266256205180502865952532568499456754220664788672161879978450571470289153243600635423531631341964112356280100543092500787375924290792175811106093037893113351177568876571792484317699104204783228235297448115970587326241572888309688318870841221767911324106761112871107156488687287785839208151779318946609412994941329185163735660860054723113099544113442480521701112863645673258714942342868466716789138572251373422339744800397332558640339429245277581304272993932887672744278561551772267143891300617184087655763027315681553602544843856164497551321515472455937267668305663693978158001568378953834451012839375697360987323320131531168760788603792628335104522440492102534742318663387482467688282718331245261950237713779407244112419664771765643464373253347447976586370105275781240126838510791503519813969809868477571814509377601325750407427064501484396360780028829511188666989095526028995149026051798865612191032839569058312498252820948089431375865446631517072582093123792197054791060633805079319239545702335110181587118595085602454608773023867686594407659891533573253687174832475669919762284871961319588450260707982172583587751396667515095914650480023544981897457973783663327808588763371492539598590100798216598145173686798115926717556640323392667041212806441499861175565188551938919123636769349726158444876577352216852366466452214693756507300035227975223773273221905272866019159969337439468371665364942511193308790402009417442903882390305797803093324129648772386038873908948917506670217811396907063232008160621652299156335480966456234130805081184122289701733448368164990275387210914363716024886017782481733197906484764732399707881360586135868155069212455424101217620871010834407269262314086077632421133814330500050140557654512380440777361180197828527658093821655131260342771541950936632098475438514647481631821858067466232884285571346181549118029243534426249971431796339626806417237300374599922917660213026209583174933258222123483297355949178569472871819993055252888169707423572182781173514716189044799678277198728193142244501982355193861459150375153529385107460613887901876799690880318505259119909993485819206129732998853181998296971438257831671290997609218303807656280123484691516627883805352557065926804198937267401867455288527502959505342010648997351680066744917608868594196755609662059415298072967356132545001233104466670322853343442544929956993011989773746427944424321016538588003072918112214694296281657348081734871547030050098448589484218910249700111794559862875320719477825829557928606969178520360224230183191839507802421752599628779974434266789070311967720532907976633082604615894091206940148843394370641227144781241357762253226088379252725181015440246316383225609810080999902223517283304403299584692340224714330321095667914250367630319413864965597357752398487074291217735228275373556733167031628224694987128288308356465344083886016129558272845801806737313867725607336290340668462412854035528433318796593927758856241318740074268483357697356027748996492221210477436684798495393556752849907381232442971343603353922859941023815183071788751336731916964007068124477701290283615991366220174497952355310671604413859830458226059360513617709996945641190982310779117309909699400729295443088862236391902438030843488290128307066015745666320457237805390314341666372621052653471584520637186453790919766408977777655125067530174674571723396874740287210644703847184600241038916727750793696524889370726537186217456744035796525909190431101633858529701960824738681838503053625681130282064759056286102869941896624467123252840321894136617295881804028795279179262143601774581066204986139938671949846345852925493395382525542443995325188078349756544459000434576104401173145360255834799395990023475613744108581033548309044543118234423269603363488623653693563054154365993779208285101076640812769947813617186671274673604769452183410539628167920278794338470414751115001574898003952283199298472033290845873493953170908691377382341541103371805958045050548408144869987081431229985648511561127747081935349676047043258713416681357848631548754957328509942698481395408620570023787497271747277222134587725420488747412973698895619814886648130873302269936801835018894663083336494627394042682980622492913096737160003835044620500723525707955485970195643486743502722233889529627366730351245769489238026403436582532732389546825726560452918855910321127623141794506552756117020190851251274985063954869154133771864308086167006529071252717852788964614948369137393040685139558507514991873076159820071348237384860789231815362979228791884233600791959918327394186358901664308620032061199965948308221187161769682759749573120513732322067294305458906647160073869282354071338183182355681629255438336840589803636236669301429150468097735852731243835433011633240442956691257554326369046319095445116623602685379506247364576100129783472129289030624457670799223713812977435216370516558819773621838540775951921648710241133532096564600857397589323950005711244152860346572299189621501026108336536504821080729045132784868371478902782884281837356918266925336000056729529581700295980512829857784190010475890039819909785199451030138086526825483715244538893613012346151566850345662528806545958247731347547271269422584987586534674318105971108061283981215809494752144391399783975043237586700695883180613580870333556651879137774271749928364942616913976542592586030569570650616828966834239448053842361955679180637132438199655537454031783699727671839724668875974175617608013631989480588342426191440746792057918389663236955511576673386688146389535910689861007532117769066412995108171107108549008773636982317175950312163622377268428068757701926032460533527790745189057248898733603478983612170800683227919387114192726210249310318428417984875097215749667047101676180017545092054006284359273986945286058582448687388916344137697670940682145501792120242844016242198312725245320479573445274826324574220978769513273725368724225831773241017379976391317136425253201360304628519619256260553683479305641640995191086778272420004104035250220134574122447127246928769498137424160125872438869543365969073147298367446574038826905905379426400573965193455877360550039074779473451897177803168542478565049751804264305061201329022305127904379135654807656501669438033057734848471092685298249616328186158001959440728948857490926779102984361464388966114566931778954554359424084942325525255125877633043444357424115099879451961994923615253401031022125958570917327390040694738641052360946882405685032240711677455217540165226774755020593910347984377771344742829152738941899622116833665362990065909226565483389039627841700223026433529800509638880542402196089058294744590217415748998455683953072169113225762012999903223950626132330595158461905603409883525668423286088972334985828857250695723643885007391600530163680868826918404864018744878082820056844488302226391001720769351225251461873548349699338811262824455050771200597439735161081621636433901630358020413180969832945538684945839234285850244410735518375617018639584252079403743355213109243289794720039084914995641498637672722169239725316363683444921590347615111603014393688742032313201754960476047001095711116518885454263559084072748732248163823558543528823757249146632944513239936632815181315475349267709530428631144038790727149077581746376001809524590512216771599665788260930705497657402917481444609757423315814626378397448171683741494792726829480247992423218955763477250232445170578124886081630666184349190608754926395827183352103138703714739596630761509046893897621444676816884494638761245822001960113593128357881408651699879532586642379595006574516078355511664485348052336688497426679146109820366899144455510023091930593326212849551856418496769464853444681592483004083832293089599244914501510184266337223852048080595826558504044544409112980310969940176686730667456855126517079234930233553041146241599876692345064415512990317773853568277976489648808903746401811982759608120490639663906088781293474469311037877626552953288345256888427671775477983837606104816319957301869085298261401103761180286857786340271011129995796653468826147263660220795185445091642739841782553266273691398814663435739650101256963059386071013809129742864934960907933118131602084121943080897412479279626160979244705623696242437599367248235255516390299560826017142417575336943066311666360378256407180729019316986273484633675816995596325249945277267672552779255133625652509736313159969515839899466854456636756262181010600842315925646631346012227281392030737108492707138453362924023161005904303966115984158217073605388759673491340120770615707255160297536532391442117627136890391530342482975458894010315092962219770931574441049523981254566274982431948305297703863554935275243898830475339449868820792799265160636124822415146957840775877064541206020695708588972986269235157843328915314340809683138284023944420621692315572020935392310918054057500194050081091453540103587489349820810442396433633645278522977345455705055661622147232910359943239883306693635002185699110432981502448657625186031890362281572162562353028420189978395642277163420248204584580114503627210672039741950482164009089184109897105209960181148683628952278059478933033693891078491998270882956388473851500016621569777378281769507255593156587162082168694167103780167658112842835229768817356593832198887803406881097752319919416927127434599919981860689012130057980386707384071928537720766507816893712090477131330652480025963016771338901522782925875834496511665813746496591263445660906793343430627499465609727351803442547523568845219318150488604885523955411340769093691649057887762174895776702039609465150324895454067127221559791541894525269025242206647033360394184009584747486777578621773922146676335225922236708314250153033884861510309478586821639297699727489457383176552889783684455866630898015485915935272023327657155085174605499775689359616348508459033382408251021974192499124133409469016308651117461932145533410914841493782920217228810385069908168264583771902890565407209410992869168027462836121630652141058625826308228794422862250414891495985110500303275564846397890249943298503687974591058998451453243679685367922640070104815805271014411963363839098556280167456058131247453554488889326447748636378135587403386818030527176385314173084033018464238064152586524423779138298211968752586535888442873566769268326837646120435822295549689465709973603956652607290518485341110895805620526225228736164045804189502185172935882260526693893472038103945866164453702240160055971184653123959510330630852765852404293656975329471671537018620206730584818651148199107863001665704330341807145062732257323088248082358731514825676759148968849266984359204501945956092339856259606152098487806732923502255688560386303712505453497209053480583561624132812274113173911615219907754989826533049431512858872841133398353272685781310342616522359748630003397208152728293728128628105520905891606008077137896646384441868282346453586208020358689156662203099617696307457920457713467824855100678505822249797620903557821496572046132183320687906288693425385008370229463248281822205444195462038995126610449969346317902523603402841524454083882081768973576411675430795284485295515650407501839342061615757152060169068840675159713253516568990876536925907874667130560527748660800288491683963859517288179557782189039176954016994774608140560996773671746031811894342983921600800672907733385668979843516408985435405784834868743012700659199857526764175342503899998384376734716827098010747353410549577820824400129290904426129386567271115186263987173020289867239346184452032583875411775706818193211882117728070007869500921281790267591555835273665415110328364687971347424154978833205532662710561428914857514117522403331427004197383142338526082417782225675171265742802879001177389293107165913810052903629488326833167007433837606682632339374302717540127105493825646843357222679927837927025201973647774923955651033352271639087860796085460998696533826485478345796376406342180095895319828714939737685039086959821817533334045696130656737005393501615991190380788625014791250954198482197401616369661411326597920657453643929870484438497998003401717941819398706787933437577686928975003931505994896687222844638051172032526469644290596430267550587908287226636727147435417280572011736328626445296712462072517860197212135828386675148065771286940641217453348766097874510991719233397706603117229457843789919140072986230137321440925134766468468375686287081423770114827051183302402843247159540087227814247678055771521239708448466811064786801468009632269851796722650848329608524345050115856248804027858072559583773798889008977844642123257462592518353213612909161152198153339541989009707494195011247253544517750697158707532621143390246368953232614886519532781367714031238964529745075427022549147488700641333394108327618050677825495185704745397160462413021138649892111524266526080978017318448996334719332673021253116637475702467664350700548763425225168587948088886519086564635325512607893782704259627831853383986712114279054159783034705858619640058977223282073492478216236048349288526515637416633329543420635007413483006240855061355979332189896560246786703851675016179884130594084212158834016322971017863456970072087810830937807066066865946671199826741983152712215488782697556181643486659577536083370932325315825543709192541434223537154338776172375344268865838906309796697579094353942748975771709806897312488139145847993895577194328613847636210134223662592220698660303585982309887468443283045282098686116828657187157122083634370290825142219448435515751692925253006929226369633002715478251896929356625080146581165639841043205113391977706982617369732388321299793150616421205371372830727318814260717830699778929548449992045830051335376165617615578528218714633083662807089455104193915722552776277868551823231327127354915518611898212413570572351395167982739679694812466797877141364802173739977227095814526729893757359691707009883199033306690843042897554268232106736070982348800007269791505960339307505229188153644993819579817482916402400103929021763656944665351709213343490161476781859045788263101491447937485694770218307326570753544057321015071219696482163913423204438052953833082686556231288683915037066449896498248398620009812058987389725460631706936336162512803644428929848393273300358434081798000424755062919234529659033464351574152746594406756744684806957730358218714328642519449823475839384862516727536814886262873971346164277146205710829563669611464126102028983290766560831385961002704487314330810821789206606287993995056128844400132213584709023554330119585281260397390866566656470900439038801241954738005313794523712022660577566413123959389226119003413076207068784426463654457719929404479000211337812454847435766454507671704011936251980439377892400311270926825511791667975818318716733380310212093198784224496279224942398557206694204598730259367431429545241679412756493470202015790080326712945387259175517792545815775939608317992189113912296110677866729921405698924618032837255477740654117776350463967351172610138137500171643676476080514450074739653503930722965080160230151810545716643584083812894617868672512940584980430187901677289566076691359439072660326459493541696390590313390829155288698712476055369013638640345026890144933527851471432446391070856880983558866125068264799299452165014836609910124836954106716607602207106875390412865375749317472488568721976601373405991643239672866303470639791734405980805232855832873804257958563591932953501058730197869635072175318087645127859983150664580692975275742291735450277645733049752528666829724419351875579618151473650000705871653676580008082551563761515331275209497970528902872129804023299006704575624318976729421623382679388078558105382412535557020306493922380008031955026313348473478398633675572906689287786859701170594197486936361065100982308302637246014377072293569202472682760858560959428038218681298128277357964031384886109787226462362724139494757431186461747263849421540328440849220874538654367750854657042996433387074600644653222616397409372636785881387026947255169577803893029228154338404502561635433227831474142475540584700893189537619748535857836915199108811473301813761070848300687876566605747208891460721848629976915992597006748452122674433726260841398636515930069244634849408590594043611919803969908926121673611361472687607774728064281943410780431687366633453563412135355357425328663314109457564255581548379639956374352200319648305352242385185572765475061691901388267407836305763948343573273993638462325491052245432485587144518876455162852523633677222344660778475470615639889023481421977611078363402680421275293388772650184337588815409378258126342554283028534717516027249211423477852907829571161696665684769013251068225755062351337489280017112908368639223023568521504673313749640385074215149715550402568020618157762789731014336187165714602818267579303268857497159427240255476007014218364894409358505801917016897762961749900835601834598257965922574685034722091598154846015792696361875123720985794761837711314023382552788134731360817431195158069678762892641387121789412265218684527417693839251728142887431179517607634143050597615052132413528045365342419027788335545341742578574965300534158743294775757889055056757140662690961113997145682230895190624355556632876414717695686337915994630114091420681076875666753742447920558195670232050576724904504418152338596047258370410661613596638044030360374237341195328436613676753952052914497984078593394328875101763139197805984385611385424322961949287578777085628183001102058773263957034176552187324921634449016903269740442810470153855333972989023106774855284921468494986579542403378567973878419321198855903144665997162869016459666164529757513867113947425103132256594704624919400945291909669863161146081243056553648749687315295440773180407542781175228290852388853957666586269096927766937353752508747493503800909379815876575671210611638369651819291294972208752210841231701019324450935460074229497845145607818227980178738710196373488339388319592153697494310498158993340980182337602637058196223606988145271607786245696355885749436897332329770537435351870602120391075750827876168732051028953478119281854036907594624295568667376093264672090051096360692341985516440422291687634130230253674483999748072098731885339850781887974243001855305368625170432299210513595360204046800760895024917970157534525930710866642054804496235278403610302159243493121168277606878418727079541411364214900874185019690742566973472310158861312917590107833696450765165322267675066742439389506808825212084278209142853221003408682815569487840476491410252734716509533826355965938506015698519826616226875735968189590316013120705773074352579580881339912579492675013012206226121727284228277237457024059432719011349938312101300470705356050918752177597319834016899526375812655048482465030173500943395134204143709998856136905117940108803127511070159386285075993893000898554536771343920325245002591712079136432450608965827174630849421690236643545197175481085641565166042196592930058251215163145993227047231511572222620045012847913961091097051451557422604322672538941687616480998725199880654857452531691786490248112651179700206191208658199731998097736548409442274616812711995156429522750420156324366067513244261313450870380273289776062592652134082101748391403603664282131583573727634862149355767060405473686782748825089768476431070057656521747659233050613743962290325753809321479059363515303122173603887308841774782557269693347275600135514586985153771706285111267019391005983710754467842605364875035997591259632600637179965708758069937277882396982608488105505040866925041569282911208604097911052957270129341200902250236856967339458400264311483390985375390080050279642687391571327660111491722547208880925387085852512528330234815828491955380374480087845654329258349769155284781754607943788576970415631161093744982028274018979974368230909546918175474519617904927916015512932673028558611692522464551108672175373066856654608913674190373832731671382966059750512964059233433833200326309018334004135599204089956819266414824229405475561052783918236834635729405960520434261339650781176310521956456924553144306431630715156425638288191766314357200602547036533774274274463776830924727264931526998355836978073751583753149369090060389301653633261590545560641644076109155093767741055948681991302694067433700404927044211485412967021281066190432946302032632630512830443429702543995352301108759490699353229628943003866722880651435393794004063339592310620602762397978864642094269492155655649660096461893681870543992156595568559371459999456794594342647610349160523391070969501972923327564067665337611210746072959680368624042330621739434266996027826436132671975191172533447809755755210058300507917552466101562625136891982764745077925592097742918616514891478511005825698585070093226944523244267937087834995233896084808086723531176261944744447981695053635815458758175716060337158224323994766441555310213395557882311029723229334410021359872846845285129955892972035247696757985878482195919301669321339874404708635314933138901127180519489570803705102483061248626722588995608612300700763023188167043896337945536480776297474780012839092848395029059509920840978475565373031614493615956678556697793056338917702910954796292315639380916671245696940828073989255237429289543035496667088937100722948161079068514640322056188699892455112706743521180800676753911964284881540067202185841324475722387717778522238484791906765188677298386285344535076524040211213915193030271193245847668215185650314570286533916062019680758826695048663424377592659733455139540158575777068198605475971997252226328851923444028023869926952041809774302675922949080190488907760600519773792846345024473688566779584697659500863798248220431647225870944139547603145276397179163818869759639949914434095955408593187111800214283744035883302523234249631909923165263030228323253584275347366148027135415375787568085513759354191397651703633366573152303965126087557401753345580890577369129310385218236205377142171756786855128773060044744549074430087582603613025273434652467562927985704273061088762396333047850237584117071341724401180279967648111076799473511741001607001379088184438137047863780677635717464566011603473145120775673259809289847574816079936703525607208671911919853505421743203379970220280235578030719074980744624175990342909762876090820944473578646979166526186026228290447461610346402437352170404410315035921074856675249808909276027898939182339102110982818410671350198695271120550135847054267556429380501945113404364863095111726650624880633967697973142212049581967014929599749008872574801982508106066260770480591154767222101424452639319065744997810333630474869636902640545423517858031300800276905917355867349587455680685134937941740059683642776663289752713679941526756489944709778759247098648761423906031294208297982962029254441883753175926264532707397841358981812904190636070149300439016354981496865234001792791092536289481466984257423371794869330431583904888645722167453116834257912689685274315336068522452868106280190647957085657983225980301618593310331300621102651399577644400767767464344140964301737118890807232936248071600665698424100528793825958534715825391328716339521079570696242355983289910074778425107968739044108255377896615510692145611172770573583438362692254449094526258151776042383469375741888102430220720915589169564280841293867135938235985599178982606493997283204353778747611053968627287600103879146547012121739189277637778130637871541100636456543451356612873027868954991777144801969175042877995885886110672570982968414262830169006570809844221461290113381881608898697113995098123391990429656891763204760777583048498542556742379011071159139504907591396758009332819422951780945573275626065438336695154755613665464305315528909845265050804317534185195457145986572966815515676882583711457591877826626377754809750854397402957185030234254732530672085312613019661679264449465161482941646639874533681817513490164727965675333360182232141006807591955861958032494150085707447668686499085191372070855840258469192427747544010643125162315541960951132152533859621826937554742270791680026106838288324353038831759283962471268508108768280546317519014036932029009601600708185091046503498328094433589419078164691926822532531977309286025065630238480855469515713408700140694242552722528551496593227654630915511543164995835716997983180136051129886933275760286829720685431575164458677582086257169903156066869308069663797006000808187354443437140003049284940261040320420732754356293244369245767870679028890082597969962665414141748712088715388390182492851413315979312791753242859364002500795502600008281059974049963807846034393284476598451713293094282920986902379287947095457395831023819824549839063312680827237679322421810899877332020174403887069478725451578216984708457634967763892692268691636075379710368382621420306105052421816223537680572508091903477822568184766194019748571295323957180969055124535927656389335920701609796844584208597015560522245944669812843375763461742649999196094926844897004689671436437344654474949018250168248166768246298640662957723765717693069966058644085322181828328890009519937629428096066779756847483679244345441808260557010976986443825445455935805236539634910734468176150133565991630268855171066802141448622199612472223197915898114593696094964449074839713392393255113016332180666003326971650520545548777928011023175844210843077425576081188225658829031655216672851421072063662515364825254688788674731110775886754022879569178267339603601005333414153430689685707332378213186220304710777389057486118719119710067935387210612600163395577399211920076717579374643191013127724346674253897355521030259470370659820936560638915062078241956073968432270023556517468962374788796729540682853540189857898504502642097960198314262523172685114370131740025273808174655832315791971017109837723790257507599829006494707645077896734897390061593119947752259280217953470273321380699665155288395852877162646914370315718261752829353165364778776096694746408012828740003987602243762610244115698752376890531024640115630953182738325440841828848300496091770484371203925456354401410396556264236319754524655644483141781731336027647893112603908507155982680640765253480008361600527948366103341742032768124356418897368369359863602608843643025749520363966306276038798037214471329063934171502281118980948538344131544500197111845238343222371800156881015138991900555054747561124033231501537612559727004854020511247189936255767425115156411019452770374459006640298713408240477466501756194496252598911507804652657226572049006265999498518949061059949068691336134717168867081764397336211674956459839014492672529609228812217907496832969507854826551169407861112631616170426479680718119884642536806417923771082752641694310117919097073398799263209488001958341550820365083627042232116311372929120051356101585541441250367027447517077074694993749832065013588977345172536423457007673209153950683708016362325825506428622716440261118005454213657799848248929764308839508657005723426436341660406827930852182625028664523412601883873740860528496019012361402823091038654726576299122240244238378628172750614953382350153610480464357142081541394850505546716595536560981948721288569120274892987171483114254551142008455765370393106682204509297723626003786175270058855458333864666584929726843912753218016672276884736242750457928702699821476710211028070010152900288194465373481658331587642830286903404440791577424641472989671901004186211724746840486492828431772394971737224350104521752705643110787458950029963282881227468295530513757588232310278346847571289637209105552893384275654528574357702526387596005232282860263447597080537669691173275424268928724257276515821839641323891137347976519514502820552383996140280402692005445660564884622540364903360403794523571949528221705948156299364088388140128322879152925942678946009945208289804781653825967931283064229641448302203621898150445526265200022270411004869967163452391365144575269113017793681814201332752520731672289344243456618830702142252520117023778913855468373703913196976968825837479702479505602559629062570429277271618470549648584785132097082165397479361161554917754119443170193732985540525219015167575858412227848581647045920605127781468546105895565131907614465272802509327245280973086836667074129169428320083466787800471389782419952740296671996621838564604529805338138366550044790084962425605181028179937489584772375860601875582515347626848828636716416569008997012420086417365829262028127152799209283621315556338119915012203720313037435969460429388481246581597459944375380225158223589620302886700172344814874556799184133021442770662889430723832525042693997844848620214693322066700885805816961428380769266940550394572156256213697084567986922378943566858773424564566379173158017021996522193723451094089413977211874309443452185530094598114488156043427109298535593895399164496337725730975978953105834845259756469024718781327384563280773023214347703924424170651413481271416953712408127566223861743485182041088371745990962311214893394154500103636784402573996156869311010866088431956022433997365636622913286231995157172961026684097895381185647726589144358911387810699846889171071345241907536077452104800510945116213715750977060185103046943024182785051727891663808991405183079339655914946075245215578616036185483884904820995550547189880599681347977614462883258349568016145696277725936210483660572121585058650798877530069980258560291745080942216519115346626916763529043056810493752704175291064754453025965855079652679208968237160693657713236200983656180896678498451702969604521512051679648066285473168319179462208986834999245564693915854075496796768452244473929566574520370200406952296723966164512693419005416150075407686549803452989758288113360035198826758310912333928263039381658236781825693769043286166495390302348871859010665116048140039397696487589459025921051091686063054406354487759442241736307727726433188663604051474980623731016020123771305648941588986138376688620050305871600932525812020399210044298285694585431007065363562052227024002316721484777844446849806437540164654141771892507820132159318601618521772823630784366044499271863567583319841593761030600814822456832079444257088175285807414569012166877962226997450568969618597014846021789556604719098836313284358413497486728740682497679055744164163731404085053326347480924701394368078916212710401831553795031244341781637850763825660692290969847789430506894148360659689004730888523567949055984888814740920267637623022990894867842384877306026252027308570809829221831958996486426360511976905071471473769455289291748697125157995122477480580240682811687636474369373070307529008388916922544933675947130407932439714680872352430016434997479113209255540937232964131717395528759485888392021522525637418003905594648044825979986418780984088988027717701137353423643841132527255514470952666467842589780456333610147309915531513473972768481128412356993620504381250443382543046312718692821236402907099115593517142901105758513566963688666069037642446687188669289144159116881795646117871689476196329367751080433487309463840009230773730596255772001994090484276289480106375211843759493125074970674322472342855716792027822415543574652045345667162730725987526082858684671016524134041639317529059690097025883862852465226147793541200673355743390740699608467942264265048151032178969896630509166877926297582408411683137457555421815719944325031689695329565443947089973544637700704990637634985144699487726232307646679086833386908136360699225337005842819313468188568566766424453979203033713483973112572669202047292126658294724895465264057387794429701946385399130577537805519037991370475678615315201044436994470701830271115597077091156476719341300950639590280910384128936550997370707792699845903860904574715738139412459116475869434873134902189132166118447145284819551926494311762966082902373669026706364186438167355753656371233798858564576750618661846276737787386995445039720960924594398921798613402137732259720345613967880170137385315016610378839654410156040602137991284801521693604512058480936955275106866812184216704128443478491588700729679336071834728246756669968426953832838703644077837860041396161291647957609625071654655851041915045905233870048965881694471300879285505788074704406830583253585927672732431254144826831339848033954863744381852150692045085800216188871986208077235033033473220314331668068599453785923791810269771604931490146460454153651670484144309492103893771811748412873201975390818487409380192591247912600176101500228070321596162399282968693326052348481452993455929111477109318404555896314896657215666886835409508090071977716408021413980586794368568907593777532188361742739454528919488707561301679065347971988279720594647673441726112751912828231065413793446090905199150764143104618116418626845419484482081533806413983413334496010434460272739314678363165203449178586934246231764768335353053189262134600535110425994747608048235023186737334771418071715523391006898974691943043838235111018860743785520571383345197835566172154489646194877848330063039552668974418287707672370297999289387835204577024930070895311327444131701918677497378118972674579396904918715304490954896597916540875948779793998492295124113146019951979257730143385898506638772373222650063498250286525787073357336457374967267425804924985712967358389127223559487146006475338732791739805504339603851232256933154212870358032126223184244897796844478623321681766571349605446481678030598251748930053479198467228826556420547473711745189187480125877605735200204954718548599970630946506916421250045671722696361041839218693080608412960424769568856912442707487509189832430992115402441797095400291786284225663111333166467814612373700926574614641955636720156588439347944541595245794744188188799396692733055945145139586730461676699212890022553443780043345703872099677612264506588310284443143463794484267487245015634698182004542633474972761639951001335508912390588913632863951346457707549707875432979346504481448177235976106830544105984684547062839565790494989303390949083364579468248379242577551153974547076384233904867180921316401525574252957942840339625971380881808590058576238848363268510013347522656986132662296964553842294420629005167737884285485285321159001855988767078743311293636653725871012420179221146148672748733427469727076019977235393207923157470182838370745758602718246894949879791388699391191916659766818250385733458988762668796202842021056572858478373223203520733633538295045697127054357039182974071645193618516885611781094000906461548939513735028403598731307510567416124019516430834099711284754645899290799251623002602331206325313945114953482738260448549995139344268282783718273582319794327285190555499171238962013156073949293363014167325939827487276854387276464464410580987047060620778378888599401778101904380319112953487762595409090481622855945362174943208676825282258702609899855041229190002704507113223153812768890994777090811668455424931477863186685745392699703973202562554243504451522892226083183737869724740374039033802741846559583211899469648146206875663707819891710834806342837108740643250506623733313013076163398040752144080916637705663914625609781232855207880807978951480897603161459947900794550633494164828671556976290245151925824727431174481993004381238791422914069137867463199301748699428498104482441599321918082869422711986473154874757451458447166878659457107728828185341611141607640909824995010704586928741440023136554791590025956653387799616819717071495652386627868891833882559489242751944281370636842420198379111616741555767429601240558468801725544239937095483649576393420538331523298082786471986733584079841907385823297241881466725035138563546757106655268243161959810699592618035855215243751068383696348749632255226496695607053053213985571667019521788257586976487067637768719224624066735484224120412426175622574619557825467211865099012636362935807638860498318002026674487535981424286659900296955441029388155321090034143351287006780801280560534884278872121644881613034073655929780461154471162528496617008319538483284200825209805352119306484786563610688084851969931814954212757339307997197623042266749087505841924397411960785673017320630549834071653988618334205585184849015173405613922402018551984792582320847901393523331829623307401596530927905795081146700052380345470006618690426323331703207220744680336815759536170021306797720724970070648057016393155682160582115249807223410033269342680222535941440572552798713503919972780150216698554781586770528552106518439163958459701836323487692964051576028145858497750924499035262818624878262665269696388213147424736191133419179845273311208341240641995271665968978142187947346709105395594838580833497544555828593306187649827990601036962960280270651810929351379417941469261120206350640179792808894474784250821897455802774258658086096109480884124256382916415855134568207150280784186410716110673231646320271762059159616707588685111963365149958661325970006002002829769502282492466136699942189624926115200785110199171907596516425734611184373410133520710210580468886114523120724288359139169241050532635019520500922431315962993945270537333809301813661010592932699358392524415292026841267719905914663198350272402273311103149718255151923603309933915434069442578661303896612433318077039546628841824540135017085474350718538714351902575310986508598853996741974830668296937532118957250723651186672613284300059801095420840241036678395959093549617630849988223779089952754839966632358407982483842168262515109143567320430931689553324954179950075211906186442643907102226074147904314024092617134507189287779132457280371250801740592356629961343175273224207996919374765847460921284728765322724344014896859807919472323261852428680603276979426282146102664597589910566492393712666665660842422250524638965737673516135414820192967708222750939735880748364262049460881872723067437479023567587166620732601338123637331386743005510830781510534063324396959858488306574838421840288654014734476918302912993677724951003003961569861475079746848923484904209642840931515719029212736088216247355522651488476819451648880837659797649124681647561780335061768689988433625136812724520612674421002667131319304912422522633920005005546317212224870982950036638274498210370386616930334579554771232435264835969915059926505603649814443129996041361518850675057962675778414081177750319564020341061232418898704303347505704602966800874584373768275501169713340203734720982407759229866801580126135482543102172184516249337744033710537771516125142562877385854451893978195805710850185062104857407322840823267987254519436575325612249210923654601361572499784662077595880653329007026300402900964852571022088124025435739623074941317101780236633819906563449488879431447384481217861914718712070174967852935153537576971327495995134209983417317583641205343713117545554977814034433911989378824906718683767133485496308658876436967687339719180910855227777664432757276087501498018376853011032460243153691992588260006944104804749641874088413044314266841285811782890511853052913670092542327386754245827459093122487725815957034510528922375510545954709412289502970650842991791812050324879446516066012897123938426247596866321249371555485630537480586104503746514695217270983372973993434175028002128356481812285870187227002903467810475976152017864114747370061917204734773446302518586421739808511088585857006971461734931244854508685766399524029230614135494475317004341272076757249880729620817756383310499190555783058623467767180862035198792138107746570612993207046339634351002413938257452936249379301630721303405782956142577139884824988489892453717515916455091424365283870538903491303387175887620669553317452990714423440858891344846662073565941515013153297815556842263640112958488915407633073181466802099727668366793568223502410420916205811667227821468105746969549990654688067882630053844039545219544410967376339730060766433499435075392559137401162832518990661742373840242605385183271253957690570367248714887421897228327995303477492754274666291794890911498345074020800429499982459035788089995731315711201697393774351683758156057576903597435841681522039333038191192662493074542680515843514349322448590218398252718457259093563292762484671145605060881401229050791873908792887076059251236146313544793686443267988479498317847883754339628425134510831518447190011396707271482194674787107883352166138863810746596364608232833820836692853069870441017274315246995735258873740934921911646124603728443255941066158132011332611519946200355095543196943286418336837735949114137806426106383916325883401191215068975115009803887876397061597901273715385367326446260204770685612403765524371264227365294543658159354027431150724410152584681259810920773083627804096750459077844581809593097592971523349829215689858014475873548627562329615651842209791101191644389672759898059233591662326116948498213607335016134305600580017048108672149853252457865952620476396819955263338711134113651987088479015921824302060684645882954880502117852930580889612251270321086203876667680012010324642943366030177268646725370723067499211432230709081330349341756162074152726369477653893668242071315403177842983154927329222516092347285233661181120771636748814174047610644067237408854716461075932566878503127838577925217620315023141201998113971023878986358901226679003620444356954071344050243647521952669415982800766141200696641446709933322890610139767527111539931122474281870666742979052377195701595450296274054538016705655666353540930546069111223113624986660633249137331089088594152711639400031589430662566974349569873397824802591246697293088330992072663220893341328356974359050231353510614118888525918431444064470492069610801842588371168687344798583399861583729946980104425843289308748964005555444153141861015124949148944328744792290058334334038897466560773669960226115486188323094748473588968298303820667622019258701944221382241958841887037529213333718853812419154821795237624151411949488335208208438319376774509753731125859848273840398265419028021221244909138924322612968496648724081612045387709039142124153114552896116822015166762269127737718795199683611517474161669951808773542137462081011940148424833433282230998982296269105297149650135313558733389660110018856360891065651386481464871934378742149509493479093893138530036778739974966231007572072215106904954975945346479749995608772766592629767507413791202228316098433656180303238947850891160824799308187679993421639084546303967721694924096995206825461971210386565656638234088795723128995929208778799783278164133260726938682981077657289865659236775370268515606736409350777650691996607248370442252666461796137974913339171596813674408232184469006110091508752880425892815695542692652906566705343880575139146200369084957272901695238081422407214576815126898557364785243534443046700775023817719315730264743751014114364272569934136557941932857802634869212203750868933856215097356133305554245474376177331489180801695760676710966383543178777103141252339929735122778905241880938596813241204944399233147934145050306214387044927876470058753252193954370231562656737739829233142166859483283273891748957526238828110542685769516985394132091904114124629763934415210908314677848440573634049684823506729981875599273470405546211244795803018442890010052937900375298028972209100498259042293424169715963235800772259359761269006780434123991579582368152880474461594646725528306853743095902899082107850712160202828360352259400552137880511281881837962603235271112807055866768612380307191247473563823267463441378119763009753631512331215157508398347054314479681603156298472502777616686924051282753441908929726695745903517596870467280372346982976223406044772855233700712999516074460732609918746998720036116967273669650723595414417196534611535597558022043981416556735408489420198088928774407964964417086810090898607348158062094824945071346730160573307355419930993185403674997070967729786431171876784111044117426786297074337974929157625153702578000267725584943642965438965662178221245667427631295115492163470751239943025513125472331799260042394906459295891951068691345768671448821437316972868456239128594779235322536426719034417157879353402382978901900768035297996360481026091452164517791645695829502092382062781616803544597157589602796428406767240257432498426201215287466217368307412477853918760495023971986487058663708909904887010110235435170669410806720508434736100317062348591786329882940486386774177588728255306666539906704426130187421208505556683350259872695764177279819596537306447707648652825308287890574254600966445256342056640426937302814981638225330782862112066418192265122940370689426146819623884434050569661624377478944619685514003269648244162249884191864202217023833018163645617355444094987938879469205821226922383673031752864058037107628091784667346863080534363122272130457656192282184687856900049775004891097971019917045934038210882529721223872183926517519929070365035930042076430766942473586306523802393432047624293189050840223633346495038985888244003587028394041323306822026743591760805346589665352799036969540604434622413587349020705417653517556784073901446103154642844003940144991384818685945192462701120542914465470567843185527193519371721543600239280355826636244792077881914256995368246691685765113354302412602010301282655673619218498989109474275791581894044985080713672592999727215180474166670435504125408234692158385924802935611370551276579883517629404466764063066025624568658874355593706409305095927489006165376037952493390179773438347535154762576911201608187676445662601998299071118472067504545718635779577700596207985318963231369533001096725882924762303329784385363076877107275707156066794196073889924742062200242973428610743338031473685473723481754932688681079549027228624652212406110534748788744590026936369823425722618640767193658809542038817278409437519759407116325044574738321551040044589384309337209351721120620362616759599335192763818914044527042791852119974884704427279739547105076275452682866298231629351028667041292642618102839701545209904466633739471805483665486621140353738190916515960058999492869111531375065988700835486197701060949468958052801324189822303304603532828622900403199006909716620376989431347562819761515546160579280494410378987138910787910633821676021363789530703718261440911823895965372395879598678478101180109574610422692368701621170304016592100000829089970555321474801602842317163057431137757048129241417058289591465341120839055038012504583637482743236977073497359993454406089279815004433864262412201307206841365678351287100436993912943906941774233722785024010698642257662728961037354603254471500326813588857560683742978287024002655630152503195007336863799328374442966210140790391802953800878484833429660528105809640968904675256093009789462933960160957759805453781084615719707582696316973940104958941725436317071059549149915199603627621851730215990756983810281703667065771518830854754414279320530192837091976011835479018748139288046392213722809405871615470941297560897124869859426866931095049278702582308707850599221426316015681311981361058947387728321665980869260911318740411338681661017118789622335470627345478334200205032725311683583514603407642655403786040215507468296966329333809435495732493495954477177065572004284478623503235236520034238431608017382140587091846371293742109882265339009788278202402229578200962229439843139755868331662979999420569551893493036137479253230734296116168706013358516175132249303121367698836004743617943933366250019921913268942691449874401582542612799376925392162076036178152581967157214857354615798479837013990081713549643128014437354164651535042047318299001206539405748950070488353230004545865101368964403832898932546494433381206231334936892354480549336846362477150190261976259795987804332291449827240027915872472106283484834138498578234447901574523360579511640389824155102907823508781349884024307683621128168108409096499999692488983263318770439653330065974002297028347736737072136867285154598836683334548117005123608706890639504594856696622601614661501394478150218548878504033296841050452751059671631433042946390068212915743013625084985736796578908667112026788907786379240653669509447948430428423695689943769218843415386455163940018444790038363669298040497597757007914670925683105039917685638148552959945650270144568842145065743319446199265918061776465453532386800456928674337180337209702695177250600660864305269293926837469023204306126666789240078791926353728787470371637201688251130902717661813094016240683908477459894874972147172893706751858054141324440640885611591200133221930708363174570099489582485388343078392076711888188649713377171883845728285475643948040635277542168156104059839026506056088309579460226967929171913070286334416065126913298846198994398446504218319708133651391086493037551493456349908246675147553600455669195447445904761765538594746552741065246439419286722773098230207189794981703534260442886556563399996464901309923778086854310992243831637652144150463022185726682125654760400222470301556588259789009846497230498206096411383592764814664932083989037003834452902611892825453942440388721248812023561606485410010800122010027379563094186049999054149793943203331193847069159047313498971086314162866821738953810442640348054015284766435925518728458534495647848048550391127247829035434661930121242029572030473277506912679455674608124156553028898491402971469644272109623908477115957009617290755598548830308254852809282982811875617911286618839363718727271974039490808469727917478024334729490015453099462786529989811056104635214519433809669266785545830855914525211685536126921499644901146303566198519117850374799650688344328599569059820524113322318018993023377139550282012025151205640842388328671618155389070085155880723958364542642478885632837338391699572740507173043904664475441609101641244981947624272473314029772642006244824376384151933542776267625789331765168658715804216928127453168587626288705122021308049103981383940694633504010510448644540626258065607825066142591888095538302861742205579170003804077398632923232808959530733880660019069038809980151379572938492896883269945614688534408281578056055695857244857986982768494808014970887350766253852016257968192763405093925122600936004195430371211480917976934325534461633931201521326886155016141953748431215158631591433089437537903752849117596142530236690880915342541059052973845776503458845660520583979138761660239145523366799570223871095401718785591494755760376042887786577977620185909504246811137100447136427125452669046096253928741675317275524251258377389515138854129728780664223623735054171079416033471772937311890731177686441340131973128401426716803691915763368287676464850997198066958855177726388454635397149071418980383539518286008970485678228556442532837503802210971141051093903560823871076283159715362055605511698606727641357655890832326368828932546791098351932425307439153231882155878809731011078966774910339792957017015781838729628153644085029675655838781951047752199659886491183557738577416658248840217797589854988123686624323013211844178712214728480044036546312839614519074231352059670872636837172374776268239497258112188023792220456896503340899465347198514288107742225587913406252160776168256910432454201308548948218824716713567694628879403867876066315483912864945313222930635059551813923407859753530012100028615203255172062566739781199878738776265657445730329657869278744945470268671326815738836646925296866049884981771396068162151357707770678833754971549818294021108254657133217497836440366066047978575769892665042190196864392539628329957790820343702795493372603435993776161242580164725282289467217246576596221093834930522890250162349222132128088653155813518932666442158671075310594843934951475843530482498872376221323744797221866079117400932769726535435992478069160051856512898687805365538138199618195674193850242750487618915646708589921233930955265732754215558118504787186005591528594427760811929561381379857316086148850511887670609107031660147764400043277912551369909234168386151989038970691324033743277232403036465590984385320578880917133122917332535839883180062252182467383667703487869265368771542345235475079565187983324430634124497917677176246984158544281762358625215239956970465543356648141093494550569227287859641822638535036362596995000772014540721888895038919591444544830860507807326642874301962368706137844177595155143448480819744279268322535175491910732318863406931180735580175500480648212862822646312009989644273977243942910721091126160472717801769274125635871839412107400116118406615262351541492565849121345167194421044666752636329893992393150807063337793606567766872439829438286768254173259503901260363516596187242633346769012772534953348768113749371526971249031912101657825361808567473837415746541018318635479924593319846273383000025351783896078561376479621716772682203863957546998451808242315332968642103085137795647081807971776638364064367684318102404858180924092117066930166091580946287915287065569155730996234440917655951686054978441707136507694306443492325867768068044693523057605413260132012145115143508461868184737295323401120498207430012744408275807530091756839660219265394183801393863096113817905951181556568695648911285190900757357588951241932441629435371311506960072882966875875595823885690920896187321281607163151853761848600579310961716257182049445079581415788456329261424061344333834763461150236979700268751060254670489893168159716527046180578457965780292897469546492068957682936801679119663424320113381965912596840674502790430076443877156681535629954929888441801742060934599226022083798835681086870534928047486159613056575324779586305430296070353794254374478238164581607901151763103261615007659143668301159523627891177978206994009808268559407180845461859065597800678502909917726170115245885368310263100655652719594572183649683112641629048933515470139544193466507041365411619359009776209031126189646402813399568700165071065594627845648940156941905290720095096469346740877515450530421119969770348606756872324125435300158291094820436773873283765749053084897545819991250348818100573781177347535755557416672770499434578268548550461259093061276460874082408520850704753611372689126076247531777805073380061607759653174050855609967785649901324884032118810327798155304298475340397833833548146670520828386975424820136353516166763381337010691630454584491741017264069114627006260215798878512154355594987988030838904250600864594795678991371774138538060687757402293617491811097918047420086762725783019485401428898635338496733058006611424344000137347242318698413682355163621578985714351150310645363127660037457919435950322705675488993461088468666958987095031180340754956250073116538675970727220899932042396825133441330687414368035547563057776614759905763117186337632508035210403750491105263773765508508572678251292332128618658871796119234966781129268922030069947941553409292803909101432347500320597249752380792009467804694628143316356197680083356214966356636908936247971042782261482580070193027675016395324881205938062656713377592360323953580396080367017770561802664155561656970626771769115911568742136594725874593168282080020149190045144032942074682517890428020022875546789391407291826532666422845758289949382165591385326978640234268550240710109746890916143556025410738025597988892570985070828009640216553003333660036164457144092215933800587139981905048629102433932256852523497101325121870085194877433258431163659101378147506886312975601617762027277888513531909192989551351029308469793947595349831801058858422099567761534433758481237065919011720337527699897485993324307455170872835919282374449198061993180893605914084246754580036385946288894563635443286115763323369950990291548142107661162543017144542994126876016686921819571149458140760685638780242712522997203940958415574958970044517724596830449666876424377704139878872159990901898951089821135677268845309138926077395701333475399160394623754151640489925859813502319835348647019884370603036558969528132301183936101027419919871813269054313399077559033660085471418728322189697566466470146221338669485568561292656079026342960780385635748421686082570424200043024824417604570644624637126098915291894385726097013818460250164610187225303768340482691945012145929778074515920709425856712433708671847039353941439396210965099118420441633190350314622136050760973838565180532224173742210259125797563563785904402653886282082327436723189482194397395742474846508082887687175160851261315769738756413908554584134445687932065848731540017935229648755380062380344632538117125888812903612891749585066215661704638237609593598439967557857720637515772596914920498019472106807195398110121785896910882990961302591902342011086321712389588396822845259172596850800718140096363790560552850812976184541190397321834456417766858666417498825853045935442403938642556500834418826663971011952288548234904428769917799203539979683165727546988476322132792081018010434424424775335922733558669163193172978615906323147157456852641431127138423452692469367552070003511547243055012425940240268042945267139371214172486914386479538420145447757417927777306964999537234054903912424887646700562210393156198559873457351995214347544137939139699897741630202307251933948511272824627064940815871384184132177955352810724614654476073235096085252271455724091839705111913354091709213596875176679518782987690768894271706055824313740964056565719077712057179851962064599847076005596263213386552229082687255721848380701671087492371861074466457297856397890859466871989586354450035439485830360198749999525520572641276829748288863653271604233488953280644371359495085571370956451427580798328889293864508112478894533091124327144147317939955970455696166688778319768475623817240471701544119717431594812639264915247007060945165939518273449647684862753890670194839016213668515814764795679929709662967636004644127471019105045512699099211376139708458518898420048767861460395908813468520925311921693038665907534173952341159516666137374765262698451106567830897952502773901603852191325593705644948932806432996677116399673400316726449213796672250558486527796235958936857944781672639591930592810468588709917827492431398233445509894142670551014300670873520027771170221530552509141609398648252836626398838190311099801525407907310258929966776893367298981071241183373045225174107598317529249150189487817327927441915479666500779092845774002671569489123148549048587694247329607645324880917352701364907727305192254810245036597663976349992355326754954171123392133773718124187239404958839552515778656120771489076411025943884497794487576541650480566526230760182961557047964060594902325195055963622423738806804755777115416472047180308872174946996582418215601891718793884231763940441413322373862171461353064773387283232146996447356815426990702232986898376448754275799977863958712450561778358151317889931890375718391765198386265436316298766151901583943352262592861858658468058875580712262228571190561303809977406969253429324582024403967877719264353382273804742240019749387715471407313780193065664606704881292260305337057168184818868225284034695021492312790827310127204197161772584707329085747550619252636409381453154340227345141072086129217378788220016662843534293767295360631982400247764508672138862370725782745485526642769570769773393877550076309576906138508945711389445154626830316497040954219675796786212588708206773454202814370971635667070887894597851233493071152615235596653960812540188626100771861732332855986868051861119935162822447274117015971764819978063996186847383491504936934319129474850252832122813434087051628845809641210375543978167424018142224523712679272624995445265337718290378361324470920777956059063443496130183122656698396529263441484067503199135124705511521432305717455686643431138288377830222417056094841496511626111504625207763869945761703288542574170617145176331004584119699525927365031267894984315529430004819175145740841478785934786550967079669934463343775871986770587838207057522985333550911990549845422268797982517295110295565549917687091366443787059168179729179276983164431569916210382763286321977530662328339744258847857498666067287140513899806942158336700542535425579103035510852935350344599224477383985880623080834997925579235116198120622540184826880728634308351032275949012651599811716687752354308032522807468397464400791233370413310831666703625076827983464799758379908059632499242398649908435371583134386569565406305046418987660199274399927833420736561686337203233300735321909853237530456072010148970044272946421328067897554011138354842571617439915948566858189700703353764201324087926816986184922764401534314803257542631039271332657066431389537606039030709108314988751047443400756850950801743026766941657050896002490954217133969594645032010133916448343989029029000953507316016308981170950692351682265498170914635223696880268671537333723185456844064612387128565018195434338083831002096014166592026210817239953182003056140247187008355762294667037944677447115348203062166741054770531591031043076425657777395479607347965394283435924698409223580941196305901307887756434343676416137606401160824618015065507572590631522306498754910362533371638456415416823655379759026315386894665052706649853831972251042514481790659320668125915276423464452206748565739299048775382027510668006488490232564042323732750139789013999971185254849776314727079714328897121923790457607541332818866196775199528058843827080414822321764582896646801056812914466142970283618232700858113137584604740873047082473379074524380437990046953740689211571777539026885957451196802196204594472580494534687449698836297656283761123146822780253670649328992431377762434639479430633127478351462792574992053523641881387149431210024058381718230036917653844764995153808615233031777124140139266456204688198011581069577535531665211034837023641732348931257776665294310008543069182726086358307743118047341171680759824779660653635003044489464020753570380965289706868682695551477970401765967374778660573284333318278276010746032328074241552225322737348028146166408930678599948611212740206229096853606589230630554876775390777707750345501023970630704752757802258333443217353108507096073516534460238802908214230843897840634811086234499920812459402967036820169459339763894778985359694820414995963792631838798048756556738866210192322364572354887143875116734193760020578646639906003179560725532105861866638553317580251951314036505216627795898923555257584221180535587346453452538396486471019593793170875907869901174925239068357396163028241224927978189139622611634771148944486284584071478985923343490762672870751421107847358454340490184211494079494326685567311298551676950880789238372223599158893913172429117840927193853967333318424397937723134049274256020921614656129837463971737757660790791731858413726175049874936242831411754803994950131413840027416146350836451286146865307637824162968572361758539510856940238967173728606207955827632719177628757808496466268155420775667184349204466822790649450493400596760642732635065161427947347592857800509642147123685224355154264881080949223784403264944872630114480126776100917577800322624225959045068724950106624461485323832898771717288239404005938130734964559475890486785008712798919305926837841291266589068256399220534070194721865950196821271105261870160831243447385041537983098882593127771483190598312089648936988868980287498780401664163446026987596572243017350404637061852293287226122408544521549586419364481168208103695386038857052295078570172369500173107923984582459899571950639256975334783026326969173375359512699461950290335492292665058561950168459500928058931962625167112469132360361975546936092093078053281576464678002334945593948506324957570878016156842488922536889300362698656682767581960596418825868326965880976829355467520192869069115202666211403465385547713359553650960734188928434414389846296332342207871609400853709257788260632766676545395232332507411735385815072830874830791077937633432448656736104724072308445564991505779304581418073665787393767801673608877726507156630321754896908351956427349193945547451924731714140673077503016613444497892458779933238789879870011057337993528044116753976887692945177537887335945802442811581727211803375191447260027655904622930564716355504922315620751050340808102664064100172538055684604365184938671772153308327614047464701609623364017967863996897675413960732767010599377862715992931292092720695186424443337101159530276704619987706692824468629931188394848177883931244873542164823606464408248424830962249062783141594937062147494479841795499157353865392969092287407411867521108130361162624210168359826610632455095629414507617987142769306350838508439152382335793463658074641091950011493820682763292344302331261568826524125465789820002346012624560642280485207677428413626207810048464423756703677468927483945536509726669821555564705980969658932267624999283853893234684985208336449430222696967983799897956252582996257305584857935797214855722075873770343715129284091401588330552684068688000183503512351533569277224216647564382459988992985770715073281907182994873881632619191067198885644361206809413249865433932208243384563322443297963652449277297763012109542277345491370922874736663144636057247058560124006011592344156887571537292983215982612504361119194665353198068573759381007139731048576199888113609837505015617035869406552475303653866475623316524433825866086457472411478956549160701225544823176277286314373389226442307221851510944476316975540822541063261592517542112013963882000285832964811831493559823862900077163023629732986798556965750518615378286543607600117402878523118481670131026111842366706624468142829995087971419284888048908178826583598871400175746509703795304387158226407394154029758230624395405553808108962942710011156013584879628685661970257335307503938665113223835776041009684190729944253230266825119297781972524763309896120355550005469760633237823509001991113118730101386039713504106053006437795129401477302656218752647742186438108551540878794177486087317142365671754629309640504169593559205373545328755811144574342206795787372816739406314846022996087983259717687492653222146289270270482333805847640908421156944157071198128783008380730623455099201490634679136949343852921060522140195908937881414690398981245311112363597011559479118474398138527269978369297131299870651963811541378199798141117452731636657614662765229561854545970140759312990222152485271997425646108866811926217266632942237289120090337660982729377114943933030290646350151115157312842416280091386309832486405424773378263004480729023868841666953657412929506077370284121166093360390850619478945622760737919978180135880980511775933983757700707741701184532252573149448178003329905332011586987702734105242365220476752225287588815638033427803862247918103978280649274251944428372543692876799168372524642718084612836795742050640006790089885302439049365012234373484378415975943107652624968824852872210267908136927353589248902079251067803854498391497720446809200068100601648414515190872139088948974199613059907428716569228142195170028866227539913714223183033887955202444178993829339312791313017029197369448758803990813046646378612671970511203452167895809566316362610637040744509264678892153958632379936287277507618537678855399298295188250686251644094771980545540678643853441783633593102441117013728594324580542478695147089214027039108263502088098325674598685561832878976332046475020607437891870256160648090539865233399432911442692680265874111931305552050893569435754451723296294393412336248845689374238566581070001566907138621009819168044815720923375919738246081093381636905655144140139387875659806647472483985249972960214386809594856113930403573358325016110852749749417349935723652965087562163111563653991179174709530924799445102101198283250093972016493006138764644234680241978318903525938120366647978577156198457973641988670292954760347359944745737888066931271946074752179623251519911690732654249110224143784103529935733574775701783512977515010181586870531688081347244979618751046511516515993143346505379309222372665633677230736471703709232068211854060752253419002908237685946741813476899474449903716905828437588704831754580038526175736930343492924976540791528382041423266245123452743818258037170608122066741691205143424849410565780986391726013175077481088522106581016055745164852470584682296185466281886999723451693824752839702316803354938429303751997880471682726995051708101756729828070566204694475398728459197382133777931777661912020222916707207566542940906132816914618281302500249104058643730331853613299073360184729168160423618643560514656455447491299163408838982497829471990070323407181377117709296352175771066011643778375130685757049878171433900798687553096421621850400182017499424904686420136871244674571794628569433080704165868179349129604810414142223701038468665194201958087639493829114141227305503632103366944151294272243581090216847606721944515168357838751184441797261482790031566509767153817214669660368704598099008550037311809640695261406561001505278580848160547354565786919261170649670527614923687943223868678463658899974753953756073451745344567085948271489826786779860383210520491977084049188497723926525891689236547458011161551452772685275125870222311834952714322142841881988117439355099339326029808534068428307217358887746533480321512430237778986492572932907993084250633970897514026413424209521462351212870186238681186807132228650066571454680043904147156081263228827305475912688153695194412429945518731233766828029829864897737252958114677717510195603390702241039397131856095481354145928908497904741807828601266199810987213335320840972514116932763278496406985381795187551567771677413045665205428812200559015381430665646889591198327598955027283776647921223117183786874670488580584222408326714104145570159409232132788222572211338854404352734390635559751993943751509031340851578203336197477678434245336764607519813825179590827814107659455488443309604110439460114607710545551970145070701234498095149582959289861102911308439850485687133880874977236934313911641380035720772927702688455663809242565658118951924071950140952548550332153697045159179738097849234672756527642552879063246287323122114046001326826990599322339585975332434492437606720590615623304850669436898961185726496384406430305607310023067543255085151418669790693591248739202623187475362654452078521894181506932049811510269449122411880023271969386717979964176445937668458568566723447767559664950301688044615772138882001605641233979154420409575463689147434229526286419172736775460180433525164269914020019887726856139091947396263225124371756095931098856167797060532819370212886464499836915071013330113041160126150069385008616396960661877922738297235895002624479197617565189106650793608998026829949031365207327040652663817145774385992505936317065173108703038492752316333038532681736595134568833838188945676217958032350502182859390286722467319688871828130048094267360733149031752552589366151830810429144427600851663453196280188842201304023702742041722153712471682595299359088626799527963546329277367153577099257947467699325644947292579026213945246690653938457106790561196945611869850099701943041342556416551852603706121228801567146906731142552642252585016354897233506166841028697745925483280827227878247073748631933568255610980134662694140899255872525143446718576538831240137235540367180274475797842875419741289515079793490095254700933737853080608672950044636412562311676953661178568825987139767750992412915905415022894993266133847577834144469381158453111728727652937032847147839715947197729112157595033846608623041710770276973711466815192068264614546530753315437964797314184687642863138173288319579418423650282120306617523547972721539715826532848283838153533358929223580805345442298574054382881548941713503795485977010111339837584736515123814118517088470605753509120119564297717625325408983505586945877718394921233561705641714817339623504380572344354020471472459232895385565296675132763244496900169722462592538613859605190376362142000594878353967208708576150697981018138678838428783777385627685255362284572416644923077220154261965840109385725973773022985854818083756818718917851834179134983395841071285919932670184386359042769836763072354036739245824026531613908594913944068779248856909994837735365240239300171071317329646007972762046542288267083545554715085463291850860250371126425665871007331857210443022994354448424801549376831507538653939591681371726595313712140306883781678629109040446651397216641025851219678672063633048256896974968438933225043184579823220910640447618681982080130148482725889936579563251553846116400451669210367790219039676464309405987786002804120263580341615503469425216601827343345386757582438705094843368886803573461584285838434940289842295083808434555784692544409164265925002214190664590790918852319459699668359316819263295547763238951450922241557600879393600296625055055941168028349395083762017415733466846778592109511211140048012915099712903195067627394942384346970529099206475920220061226299144948205656080662077148623161879350393948819169252962406598294329977830211300734496558911997917547069754896939874744416733423324338963234720044138792406743051752889933372122160973834789071916631989417419500198904201562459389206718512503182981628692576236003804396058225466835686145314763447328429134521793458659275466670832113691748455095904912775231293424821157124917742589136438154894430371089679615596443030247611351205303773385343594329971506919897488567720378508112137258359951225649304447851057107032478425581186348502038409698151451738021544484330294262474505686614848147397956511385681821346573887666308984908523435974201072427281077909845573980803737241156831079632984337560707898350056891144259630436593688407455626814293237052372641977209820323463467317916788670733356662788597930677916404237226995472236563924071295683084053347394042325193451802989615459196885971312227629147760924976062293103345726343553850375022760344614155551896173532201989009350790788267253121368670710769109614276252909426406499393509932696443341029742504339218394184302882401988266568998878614092605468569048087511883975010068689698159379285952273977613817481790723200964000290520882987010263580199091494212803938047139925484033847135423191914515813954206941764955580166064314789448012203478525243241062637315097300089303103034374496987030680415755049241040463132749265691091699885305920176794618821482612173449973432848935244673954218558660033387500439034123657605275606095451516216732728122496718966954756200755073616108745993217780595461191669587899705293248252192065439519398292474345810800256711923262998788879545838455909962413703420092106366723509227853141001170350303214537823127770867063254480642037520520413663377511699331502303412748691114570425809820688563464525435275417378334311828786067865651638276354100386755428485473767553443860436994866326506593450687412732949368788982267349624857976361822203575607461696642788543616748369036816784420701119250622119809070039686790788074587081973939728858759967343303260303951233134590368409289740737509697910131244800412783790643877896633514511980852406365908301442747236053918547181522844196846561320430464454448641971140279233161546892050512432267904796799134458198190560425827976635746527219753654331422369821344494745531852444912718233676720775781671868996099030540459156628680397683738827208453739477292626735793256374775823379064814501612654357521785027606450350919996413171556089996469125529133147888974668190257921011956988513881955645773161005208561701622336285558158149019074149629800241044915188464602530073665261958588852358209826789680930353393281170011335646251730514429204153918939258075393943481199311108106398739349574756112101611416165385459084609155126753890794563891740314160407654614567468200406397521672781008529727890249200499990123486893951079941838773635711070141504096746890046802757806776732687423852934474343521239459771491735767742733886664164618030774076293270940463848792750653028960649956197434707911279642850610653066610670783180285660926697422518881637051573776954641957603340041355438754053103684021739492885728957780187628878210473639381177463149492683220593794020102785887908939252033150883557008834540416378865057743803976169512179621969801796048672130666394240098212283879246661375923049289781344751757624274423038019639948192477352919656821339464923529185220143261115904738069975712748669167870120600490799437406009578519405500736112641106522433629036859918646103186361502916550732800898999496493301252772854735214891257241183978506247618653980361049307582396088830266565178536898093523935604753770340785817730428623834953044480871977155170724405768918269045786011724742593581834953717655244439494340886415699672312095961156665649641012864181415760000661861259521293547754365125846721001915912066793726851269298088772770714219491693597023872952871041047996951067758564821276839021998218109142730859421000183652231563999442668540431008093263244147325040960591314750490188554685531608645793308480483333488165757725270790289360542965196153671150041638270990613516563188757648670984471220319184136567628975525898731894020895825309738291485022200873994574295877281411387433192865177488775266543303197926680381545432877147178858675984074204889256611907786878374400178254044519720941971244770431829839646775370771719589336918065934222218110136360820708343075430466927786881103906118437043858877821933293508307506581523504882806977090241403171365897063885349861675050471605820936256885996106706635697222733511055232408507194791344123205032987590899569380717521750189790523487470155872317687665860160713575439948222083760937802668311929170560303795299239655190573265529624592944556742732051225711509730188099403018538480285507127518198484811227332057464382542537611455152660544958157827645605178608901219844257969862034617102479006945479536285969136171519918309060407367885836343358255337086881881472168497635024188463503499595067635108413601918113409447680477942784351486809964058041977396579485702210289701125908342983152563910908477688485638595797056051346282044563715313072333219218028124679738401616743512935162690896905744246008655424999899133002423767145749930992121007945767379555240893080677026089864708099746979712292844906671235141883187794688205947765468502389309435265543154100775383565900499229482900026200417304131631672628631653598174923146917374294223926974820752331114487126569499806489608649397116375280390256599999788007702550122335561388957685306005414292450415070370073379383511413385518667321479622888775281811163367574381288826022674280458732471954267147902717681269071916433392330128357253517143244728734535307186986682035974655084322483324134383148874655359273835675376400410038246345277513011732130002788838817350575376741276383753921743635103889769985063762356053797140693563814253486700964309312036652998184215583333804821906967733021244835183109545177143926968830903278138336269394561577901657714124837751374268012150076716768359206763330954492730320998847196166378563023048933810591762486964786792278430491909249447650804507322043427778014468150029848443057193445924831550132228188746110793737408075445423390137797092127406479274941150704458515980070365259543904996318780446985934306556221260681760927877942770257106537365678018646700142795643154111492544743171894225934991537947978023266579617612719776347007109896051476550411298295853703374309167554379373622451548912680131784153014410534829984815968574346406524410960517659181682379720836108215444821265887097652651363395480644542836449296339635818475377349803168200239830856814893366149963088981453581867835414822944753743077562352241831533117222334307512804295322708694518042481037817152812573534839864951940121613380337429901205922737516921099743104743974564018334279332374465164312477466802143647345280120938382611353142547674823389241592982532815043597858937582285385918342250513260874430809872895726703336741804300629812381966317235948231501306054147675925866448337150289716944485658160155587146713365767399355101526096081735348621893880605280390686810235467206685222070197545087390714314366750570691551152246967397830650355579923716398802759930754613084029455776901134459128830654986774237819506437975101955308932550048129910252858374136140239112570195911223347739349296698117434196127661107527772560199143770480779331881155801765044086820710811752472577113135431301457495864473296488833226349673824203777360145596546666333316651435340807375864881126645090890578097021788741980796555892248361255104718302741922958931078552295604771530146230027455118643838990980254472766347632019029727461007718886792726519388467555656584494877196662600047488485642059482969760888496827803934821133078808914632773404205885320330288257349528488173385362401486972288416830776697154217729763033645505667407908330319288426989685563285022674372964509173239687335007135962793252656069927656692422730731665052344043104242042021398920180597212786756782701639293855171018857755757139554944369687115155012618588183158286113909224316204743528594073367452813089348803074311855879031831987737853114504507188424403942615193814716930640149146910991132273931112130117083321343382700314711197699374668555955852832419590777222018649544305728768530659385714269601055294485535653992482578229020311496658757895600260652555670657837394564385822325286691070478044588409234706249276662627587502163804943317966620610238922964433745511547126971448777049913744167984185577036091592271649060982368254875966380998468335816981533221724177662075811724811417777688545021990806211027438602679524529184237058481563762225666140053914796086538383525995539425368981462749681391014198373099813238476591453254083228265444300256599456107566506072675555354470444450310776240656911282969580006487359612806069091845203357694830392959183656368922123464613259693873088940495729939551633350259999141829031324095983012312834748398217455442418171974579905387665975175626047581036749738028904457063318100451574139011451862978630757425870382947492127721353029299077814368023959958394758833480930048031421464072232810842594373656997318735323027793758321959697213914850896778371827936198492990686272822065821917421784550980887931277622427081043821906093623226991331972481778753326082192635633621000327188967487475908227702274575664084196458531120682309993145890623922538602730242272491911485997157294074431253204979947972772481499625157747478774229456414036802765412906193898730726665009005413540681453998917936037689346149981629670311211684765134466464895075265610517981777865720656532563680262056320471552846021890271137716886097693839997863649079733621110646334116252179523509503211586388979711866061980146430926504628617898968093027058546945222977152703741252656587078903375468263715470702958235600586346507987104776811565137544237820934039286322634652991914785072916062058360313516848670732233497773383276417982589983525410997110713882416092428857381133211616221001509044814955576938512470359633315458388557944655837735633875971144407349035398381074640752287991491193623658466781052003651456214039887017199045941965182295805153914872908721377046900312674798138836534171277480421480967188098473129230573417259542477676245980396016744640096290996036623453859941541817363391528552080949381847095672546723243037157681623950406032645298531884703335083487847217661365531296351885696740398053503877312213045721348112175818772081193026036913824122594418291453151023148970688980978131745127974804543065599141289960442208497176608855721030798339265100532697826800818700041171568214256428825553178681556264609022887429315289429480287691166214699681624684717466598287588187544124954377613105912267807379166125535957228675425045460845684234924709412087641098366635244231091347111217179107137610605896157869437909856892963743051745735914672082728261943064479905725791729280901100042319840233964268275160903545640031524085671818026926089535455972024278914456702494278820290962064598749226293412476140796213410101556135702493088485582514665686238809324607492476797336580047202548135423028926301079269768351727818318494677558208997849869502936206560210958934213555211259021543986975780488300309046971771627420443635784750500360513023981205982142645522087669090609917036806031471613859607663939911539208058076750711304558253758346288277914125338296192117387228016277613838312153336867850956771035331296865491693310909218996586367090110402007329224019570715690475638878641118971709692554084082250279760523121928734273763489826664071422179310914911244269382243206895985600539473706285148149566372859808778483146052895309342554895226787340581048745786897369038166741420935876925195685404566191979103251868159937389154033918144391812713800999938012033572724785787929164351489939892926107300237305922899251046544696838608431812061964561396798483640060087879247890203416050704617284127399451149536914214404670004922322711959764984819210413035242612753034714799229211072656506515838127644301422557682286937142808250456064415898417838398675193524502050488699470615283341718407221003008412535233016849764074325005679136989505932318337328822136592516106833682104931440559163603069385463832412486019824071247842352499175726677154765758410791036138165235199885242706781437969566716225221964874259008736479399786246443230731329657035306676298143811268850493406207942240446688062718617503087411268473644474547195340635010801558914934364956406177119966054596939404571591023897385720812132084378658702179397007050927452158672854627764854868131733127972293090663027017150740930062066426082749955753351955698801586270169730019898191733421122728408529922205979855238694648273863877249085634656891590917727369509555492026674717524279899972838770820317895327932053769992410937932438793955043849585524786702916538307840784833594827214140587205159166362397477642322772800967979880925606358160060420526538168120454680308260874439118606478757438536093985731194515646630831207509424178198947055676337812084743761728414837296115083243126428762372674615654115840431317283915250795914452215433768541575295013744380072526999616301321052726316789806254964192970743528937185831538408055590617818405670287395561116111254412380144391693398475724146571622261342716235817880032848462254872168719348398975119533958081203547390621611534111100365533255030224575281307274646898694753722852830372751251175066080517720163439317989791358892796764376737576293027957112184719309891873358318755603187287102365275710732952934049491507612849355530644040070580547616920050794474718577680797031182540482096927687426615605262430780004389857404258257558330483664075728009131329319205505771007710840990265012308132038132954033924327242801848318734041032167630038264087988519764754252158418280157485433213508174177123861380797285946647384588869839778936064470505280415197832969733382773625477055115562286252275919217811985214201512128076686387323693204146346366715671036882288045473905845877762163578458208120574519508022798429156107276994460857787466036330411667743880610769033532687199789495361811880083530129889907613368467183258555720618325591049677561943072664523458130346271013801751684633123389223475798638387573965529769026577896287258773597797641578764764342162418678527997611363952029345486009074006057855206386432803323534241348414150523956817372517197195594343938136778726963907785953590464790746224972228034636474952657776687654249790310495282267309763858779517083866704197201678865699030313183057682993029168216795902149209392943401084162481717214701639651309751035819783578647912273240694294771973450075108915979282791640367696068723500643056458202134794918415174051396851624837861576795617651308393001935714601950396794154067772277121154070734649952544099655592577949298993303939775486606943757939355248987494417864334478045291887025951573611162951304226621001786527883475507777202559532434470516760681585417835400343736932639132907361402263245290426990156963333583880435366811497190286713000299715333094145490857870636416362360632049595423890563337286220117596592361361063730567620887604787749453853819311283061990201828628321092682619368902772150131244065885509243187166380794571020482438495168916216163195041836399484791019503362799862300809222173072947842639671766195736069545246638091923837041908074394105403935202371908629959799640334259863795168145105937075946947118475297705418429214379177435951117179465332114230137478458481796762334780651964619071881015097586726884971298818886828238589209723479039876228928611012383447689759086376662080723812508456236384567942067548518893869513045351230975825256736260412230467563316507033092659840815555613324591739861568278016506721449254771262983605289693121465028850973252697828210252959142124752879678540732270788521369082957606235397091374318664843601048470677083365083613378440072391839320983392094609641911291357371236330285986344568215529954865864822851077185370033826229302192969189787359621181277560267901169485461337112455268508679983458486705427542525605533181532393557341721649460598140986644162401179851078379414961826295078880718290916585834109696694003721372290341887178349555719405223115685312259309202026719169648448654456752502517551934916955588468050520090068943633315593268941438045382777330804717921567061975780473557905431570653010126086008986046703772480655609731010694736230001983254392038179642472691402893058264838311200388327126995218964332482898117549329243964070947590738257523850350490349539161002291231906720841249365150896669643901465170910410627244949355886818417081673125568153466083173077735524283976773309969615467146245174878513199754265750599026009752572957944787355572729246778786993031730907986595731879808597843961758040913867589627719475626332093484262364722516653656009129716487092119165657679743534175402828784021263085526767062851060184680076250803602068784654384904442931116233603320436235213865680960144102985358469820507002550722559803814816050628948491321327255937344099857310822944543441208181478499041161867085362702077834682778323696242613030737635874494034594689516421935918959502981555533090662958395876533209749883122456558617669954712561318717840356392999371418098923789923708927163208062320275229786646849324759314638451299558041115860712651137040207697335779783516094759677504196658377248835849764373970934521203605984799881638460495369758634954967753647296356138635102271023705482585590253533294208509709810895152999660172954588370219866208012646917502584570984288183447644271750177532237943958409679998734575209982892080300635006545605600256975307146254968351073267253465614847040631182728626832353180228177735404096880427597175104128204652193703771442226858442409239598460717690953914284487953307600675644284396979501161056699738676581581440136513353869512314007127053815439321360560846282751807909427125843045112903901090315011238616984519351858345262919961850322593830725716748966001629902166322963720272209076259512824098858192424370077078334169968554928581971672164646473508166031169711477919338095495046297632962298814803183352468592804324353872400660451007932893886015760024153730643301301446456223272218278359971560153358289818024193890581614316896059548707321360531532772785922913113539902991729959803392666116058340865112238403520925853371326315030538530154779701103832322600459607842843495010276256532617346446308849038456017299323174510202835455954806501687127423348128841039630607481762337628497377753549640192319678014664928467880539015088440234135111279288823807782270836126704457655292955970506689152962578551491271322153231894025047174636660046682759220813545697479593845131230580693831570566014150147160153835935007390845701563766922570593691417814987249895751703583206167057788437965799901482884027461656030871342822534542140020941542261707706277668217648630307559434327612598855943382389991556469786926062648104154100510091955737491964498249002916622631253124644165272431668664569233357397492342716621008004096577767960118527845185931388952712027692962899542094452459326860917816461482970148842680436663130426359720369440808479005025422870795593616020927142173941788040388425602669451180336998524836593520474966664797819519800717291874880822756754745549652995792106363237706552107642812080848373295888177682350405102196767759944039239756493978692540814165024205553999168473416929628204502657322244902521578667920225230380224438908351487853130479999501404620653038796973115179449945700442090852472904260839755809368922781018826122572478554898995212728149109707895599714459927542849494889059927605306342468606063330345043204319416204607146385841937891964306111882450353119095957968866996803670775549445106180794672380508565034621114006672200278930231733118194272115827293036817867334319181585061024480401351575828380301157076232113201631257025689587466959842198788243782789043526001900035265993685543227469432408792674053563149962286903638756989800984354680092807005826487085149162278636494001834481579016214506438640887206204390323814375620601072694121784336829649768573178754640582021154477925378259492284309467897636978568980872419545416299424901338283678104723756846638230832487639005504256451229227851823502929439338621851826552094638831293046912673103521043208100692445348275762973544195356646359824393122694711648605524557448027869842198572063250779015596931585989312562883147495435027154152438436998371499853512799742394817149037608487847445476063474177972019422352356107766539110618427114767357711752775000367706878293764423927434577573559773571971258872244172236715280682522671948736234970676595695127162762117768452668312489000797835765374044886317614261701479674113793503862139130733520000584239670483400838582669937573392679695395865604436816422079345853014999013411137412544193481755200921999951620559940969777737782944445589401521087972580850024939834927505294483825671742238963683965707320852878962156443515303187299133162191393192533605441549909625918126872898639698847986612197172293263929574556136621038864880045418327896134330047600529533426320301289289017726590850233402676298049336527240759225737934245445257794868244382338078307229473854407500748364672873685829052787349457246767686952923886523441202227298442769401892094600081756685598432582034636593699975814656346683067890595415878627330732530553186536582355183228708253077522951060332570873700545825769685188733198620094428199461302084571563978003541353026375468865345358661365132211331241297231265121915150990118558710584941652686206375013776243391347286442099289516422599074352725065226180812677663012251049656272800274921855447516265069601890561323039223040539955314332299595940306821619140275509375477524143550631895250077572735432654176296698890352848563381294637786186474505118526164147369973331328246544359489671556009223228633574591248428215136217992163565584851667270868458732748645106620110372388853317402887219050318228435401004706648202382710517315257309743959033120917758654307682803350117628137057510857252875016607856733882908682535396282952091301804994546511182729929594015517406854888006788189998190542920823337294373995211878707801065924321696854202122076028667500491726003759519123588598608340066078810200364369131665542042154575914293166643918158877705435990989721629163180272384822237523173444604563487777841107413871428813226003324265920381556969990500095622886025795806173889715863125362091765013883727725631273116513346735179620852931853252581592644605338306367978479133337709213283712425802424981270933462736398537002455564490663441290282452097961359995064127554265316217037890434800819449142967322919917617644713224333464675237812255155738510659937516386442210588221813808786644887699399167308005032898667352863321657321113565584808324451439098857984129963073248423341331801507821402419538204157036332005491589297991659309200482838335878989114660471411398011008180586508104752512566092348161340771172505211572864708824543760942339554725899176356930783243593225493165525095383059379896098172892449244681946783131381966474254227016683731114101365595767888885007754820631322701341230611338807927313230956656319340536165031918475240236272751630800177970730432193709454432644076250639664852463467477822913730860179718664220011844458767341246714469069390321668688705576209580666384151670058129163382873957603102089592719883848531187514180826494648879112308193330955882574139594643112589150671704883538228614994182842119579309424225152763848737126294743469817441092846188057302010467750108471180474676149147390223616211086340258622723600841664990834011082072645172950520358171176640666762666716178318672202231430468963218345407648643749871064753648259260905197409192827345646251029367853181807368723292205998202799254289884396952776024253362318785101701212290128723774781651515153013288464363744970741902899766643156616568219831846377090274597693541334339162736469668680748609500541856769696424456530782655637731949593022693933693317910884662681764594678177520516189002339772948615642904867695449815631075945696582679109702084147486770871984322587800005852080729255577601933692707013627634048555402768612956746884807051234574077002845708890717771958519485820365870487117740246870115753125405144918462154267920559120266821504008318791620455920019544589019298330496537086494012731740346813728020355732404727678707031232388265503061858057375501048515549342058186926436394408356786940860224210118969740395294503227833827948460244823916472595932185423117917186279414433920526535824191779397148154616012995880231937997985736535443208236839617552813074670924278012278425477468992650520182236609337276509198124803854637986111002181612368940792362952995761489688685137760638915938105956539647381881560952848191010494588677209418677161064218974123043582239404287090646960864137618226119982631776127430189327293771850675107654293852500995498183203171755011891638749704159736536180416060303455648095597460048643177813817751699825030299864305111963155909858930436986687513444186367517683410050356910017471011308966564146233721328150704318023891128872531953373076603065787238126916116913196304112286986647867627584056737848360674800645481583911357550474360023240227403587948597078314445762491731600504110741907916315208174421800723537813058744518689424044035377575534546739153394643219129731948389855804264402346777910834436112944023769585056441292114721128569911436493431532536017345646373072231881697881740990866983741346035909617472346147144732363917393960073996365539007319596014255015242137836477333860675901052703799046535085493361524292697072789518311591043661587632734310866317176764751137780903782754003521039487476315218707457816880938199019111117725606814391400308995429246977177303673887749925551299372972458885872731624023306268500020512407577281975645974513679203275931025933773617961208958841788545986447421240282671404374223140649030458133753881019048306894268522782060617188734790570341463530882460571125339433683432615715543289652707271702011329888536663924351935295262262703468451067733772801128915028989164909549195876850853891337920761208728414813406198359212776361013178325038119704360176324793129339024138122118957236723639713042015060586019429058153909318732752055699504717749741513286187457589348750425596891257509597063093266951676342992593062190267692741887125093670209745420672276117473173352178710170806003921678623807118423570176253158836510689153901753779530170627967607622400771609920887387209636178007560580330094987792700293951280902822551939659765309707315098972162719182202168866060331457103799260640196201954637879338925555969464070079550469251277144696179643463119593933612234750308829443692132151139339747157021861843325201460034457593042393511421023639798351339634876868032885228808010933373774737785722905049081746798497838466251167357334779379087681036513284541587508822918527060250349593965862559863443911851873741787332805523341769083936486978550178433169532735672092879333507265301999054772446141966131958488415683915215660420308823577690506882794910076194767145117177870491551103248545508797575834949025018784336133917263570536444939854816646216368200793578227202356904518181887508872322704035822355614208654482854410779443736819313249019749077223321834419668149965065930288838874711401320890738261953677229936195284092896217253156675186562581863288423994386619530719524784445118802052042553642008704917703044536951682992684844682043815368694528734116926709202722446738966313378914020731672140621721521849264298896318226963352820488199800694571504028432302905143023378585166649976672097683969375939933960348209597925187446875154713835968365035713359597107294515153696913343444579880310378066717911143918847878535272576355769302261014418097577628126736183328758151462475584922438823249503607264262270635604448805233383785062005035111271581281735335987525458285589276159823022313837814794449780054795337073676373096718516065352147338523840368692242840022484266940716175629432937391808675440383251167114779307143069759605428038975644220366663916224336122250424382807783383550935824735907422944125423337882661726218301095681825963768163206022349324119950128996127672007311406594659070939005649791434047755639054000239429536563759917963772894191949332025784506795335810122150979118462276179604824582375756509990410025538890717541643149912281980425781019654960333014008083544050211937188379792273401867609268231334855055014766152205435470003408198187305997596637601010994254689488180261765395051256941051836029299983302099279333586161005928439469013925226528582254998155659804218083566487856262716460962659752428213111184272510184892790664139196270295561455104557172422223744635190702463221613905819044284610053382751707955996671920932606424559881260168610763527148258587867191030943031679443667766888655935253880972942877532581247235192894654377120706858570806094164957674826489990329263804700695680559957886145720741923062664968566579632643570857304554313476837290611420037976241320575349036928136528352845242563733480482942924044724106613176671838278726850200378467849060553370461117674545942222880104875885510964922107669699630642625927796045753520850029513185341925069730062647518663130212130840997646152965743326481849966665472939786309205572680203697287206891815913819698845799750667684515333621032087494532359211519159131767556828924425366220849250113385295371876120357178175854535964307491494848410151868519147983199624892102493241355582101007452988355443372637512040159985825261967055946248315987955388142910749002000196938772880415254665357148187517864058653274418648017515389616577294716266898653916679015529280976237225109760210542323761175583332379250414034242658421815655506112334578614468795497964643300469059838803173915422932198872366366903867840436033728053286298416925695566032262312516468813405710714100949632414937125817327873479571065427548344354376532818031645228688060306595169452510934367254218713058363221445318427958668716695547820045850938487073612242652414591533442812538477829164212068529225064991347159958842006516675591731320866499925029028984536023627069438898628094523685803179243864794585395477400716560242623315747917482707765942600982880654843535932884468406821119923665656610506248102288550983627935334396041953604305412534491310256669294297440155534534763987020905871258536292091816699733394106280369055202699740555015990795773613545482604459605190786868021899813447740394129513513275689828713872986247039490731203250952071471520003836787464676427931263284733070708944119627554096680480534950766045847276732833572897065241527959748136065098630145609333143758787070494520146498064545807846532005233773870817687428685878954870009574227023551729946970948278202193286494574130620350182776836537261774408968751646417803217303449579984307470921449493852930312374513561907615709423280779617851044488958046360302158790507397813082804704631932433227044164286027425136860043711483824949758446351467690106423651746301020765186630828170025448856493408049209140167598801506699000034575275153180506346780416458789170117904805489928712118186751851530439490689183007400927995555303960002379784850263649973364909307564108497187848577206157619684294985931629940526086239275395076228910592332031971275105114665034582736613360889442140163638113855660457930592440098523987865464897781210235356979724671643483562607371164108971047393757924124576572776954271771079676894273893210860305732844055890547158492060056734031957857507094798926791609443848626089917061803104383469286793549005327262539376422663421152136389592085568974835241178734381540420678751849717009895465870263763502963291627258735751547584845750153445337719076655409771308262583678152198224164689437288200515296187306807266378421908190527595652942089746934201325008082456988620895868751047641794002779929517753316995114224651973135842323611305288753717360770958059631071181206797296583986867277226012605971685759630561968553456077125900188520256527379805148998441231118378108271990903688236111068796014335209759079362771858692949474836766023476081140049170924035223796400682146420525685796197229644879083596947501139640768557615418824283043738704482981056884269153670328152549237641408314725283734093585330882363331133230529918403642739480802216849905581722676512888620575851177119177263259823526264362071570198678945443202554866777612171097785508774976654860031601665966753047722706304873129847986807076160241992676238626743884559164321954153624958540513410736168988604795821613567799652482122961191965525337668886100635759726328164086182278048081435362527215366428580982070423509891440094434310434865836582396314363191646013029734495490175324249759257512929325305686574841407409192999655840143730227442869117714565796394848422139100700029573555504865512832224652625669958841896293611564579485753618335916265169410118984461007485468382047478121823708147174434643904406746183136715767449522866243482187398698336103836320628837145299434452211502240323319759551958499793359581471577523110366736272027823809816871403173220758466146019381356450192822597493467139667067128709653577374482090931403432913383849480615220958322936136441414943967121505148561474122840430879870511501677824590017515515836812454108123429937224805575182620235539067591271708226167953762752925021816062228979186877067327161364790841011013218623006511550917984630454575326511128772511146167024111242564320916562237657330253771467740549263261626039859660608214303442992182755292610328964404662005943504666829474849472225881024358332505820333097187789644326477314057119040179613951234238317184175020374112808495390541106548715512490889061272032408860066749935993949792105297340211567861259579196091478788292183899847020668573680637043810169129026498492722698964532399335778844621982740422205931941908322757283387494308096491619386911137169544731400435225844580948092429163287543318528873874340412742130010904320180085337138342487690970605255756483736010448606876043489664617170526155086979740545717684618513036498603217201193094368083579041292950570847901921197567259009198441475635571434258956016012925421812429213756156680817374430275573234016663054916693009185979236028392735847221900135729946439046250602105293651316526067696122176684913382659347813338497176373271297863489607996884278123066143062038269338102363978325589899778552926674499266961937711264955592596512831097054286683639493028376561866919621258994006725299899278289966856265073344439717646659992172443095260976220306622084017234478783771541935659643106535262048880072262069785827947540815506342390653680982581575116045628137304989901863282622841803018906972015821277856304932436193716921155114039645693325759353245672647142819993035145030159976592938720971111716607058137344883558337299358969828589715462843569380068119608415334813723044311367936550520149747231315783148063329387221416817250748087193046877192667291598474680439232876956856368066140997217904828459634544321905751454782645462967454402975513790741795580733615033127895940900131540410729567496067227709788916093458581722158368408236495966650565317540510495353485919104788859134823158408893029876863123027364678480798338925096112751926975077071643249107280882781208951611954849047065230088158693068220217591855438786475301626325032200318532519637672979875530864147328193204887398826079253345736160692085596358466928105101908810952879749024341871712455812654655614730484127679696960216935133413887767174229005485346889697177758830619609255428006824389992332528248589376438172682370898024326102571935167800313035056700738403692721543011154582942011552872832718350471534322419828226488693357450016541002071291358208200376115033677336495752375492115918622355367972479869834027431551337969388963477504631516236868162698695563216477058112141702157558176905024665722137970657180005205606182489012282280263803147757233673210418956806650129430063666739336487712464794700265424099833130742734827878907736967792093437712516585319758461342848148799101240040197655346474506557855325408045071105039492187478641576267678895567130014279018804033386346460041012458604614827957347782308668276072247180656237145372488406806706402854866492280738602916866784856408093920361942747187454296144660068380801949538646602532025695280659996226389633126904229551196613069421501933624730372033023285064903063563861714903696394265223924423132845495815509009299630661235078825285614422830920880556935609671908361361047069041933280336321290408578913385458855282931895668330773723083346196677489898047155168950558928650170176878447640981149427085454526815122347896237957775603594017855532111265017234275220295152760817430150408564111140721177304755413748589709092689228883128384239127590748900973469946874237583895313942159911551985109241602709573967598782677014874162384101237508577654758093337477140522829417895462607452215349473885785366390652129301676258982478158481638644917104478188948576172593412502957278197463526529215753791168767252968568841716431300032969255139158258726879584626131706528919390114843390602677254271736290634185752155527258080853856784703793153203393100434284824504259654736907020385491339780497615957238209223486470780213167103070839778366968270737725757648260896297524466162336539706177900907682311903241206319666196972828883392569784164782177484489470608786205823556762345603712804442935014943565600919243160968247066646221874721928585979023426474556858110173872760961858376677084310652246903609993721090545345496881569403750268539743688370918540782621929399831015773831589078815435400277819789114979276469140791282238880627879308176977461718788629190066765137392809232615763252523106713570567083951534383956133696813293613640039567946758798894180309328392755347212019240567428742856824842328372832723923537801811537499028805200570100725642213732084347250199741139292881648534888629064859065564325487448849396511663834242342246174965616445449589470855317788117746046377286158084550665067363562142910798381595666984915584733954923012174693505175703508719658213926331650332196847615064836567829956364152012163906742987369436480588138213166091127739920607113090159868166746632511508147729476636816809411918031910691824138915348766663057122180296361775182419526880216711252212674356199594439038899181696195676208564860776224052549931732112172572646166942466419818748582440315500312401638313708182607485169165201923742018368340704320971519574260226862347905367958799750662609734949749665579830740005362021182059480724177950362062428438478595535595798675006206847977598737877478289517557087404708001073301417169663182737261165912208977119851205657514565703701476927441821321734263442631539516268175301012520848572419978768631048869883945849930084392182658130414779979267997115065417128084583721797104325442740971181761326242335889618774562051798996439566088705346637423600173640983029150198044782166303651405911084321196612999843170794661596961711950105050452261176469769682350838983687573077410757383067148075065054675609903197058746952096777953853193599125233931605016559623695913760504038169245784116181605167605492573256601154053542669290790981066236130405499315756082513633626396866762926558740232029645502473273872682706558445869923605816861002258995461639303907813504216802425274853504719141606891632273783891534913343530722721274787246040978827976818938337655327191479877501767319811486118696178563199460751750339225698556355987796369747353943770973739189512355087031957910523428899968920582050634359115647003720889359021666163423020149118692031916108521211222419274210480236108041497377418849333919046662246215468936718033866032007128186180198270071820451651445799717979465325879205685465802113439735971216778557708495352481880099770468268304780260823433358291414292351968719527172342208880420788040134606111707506613137380184738507835902641202150576286056849144633429954989405975682736657874602829084461420805990785577108807968711539581178520746516515214991450031064183269869125892829417970370412233541514050047479016506863473880829392296824739663687003000237457012828524700857415183016050973285098336064666587133219444810904283350922688219270684190629964792345852221162063470406561137505869977281554850649960207063175825429313976296958771508079608141070097390224025645871435404951435051763477447235872893131624909565875634538591941374999376746728418526501527070375230315022879903641841790447347836589234278938617753939635249213486343731799757152893136593428813050035171418128074408555946390659007623532196410293244574200975720033089051068160080958832540565010497502512777863706590354233564183374076997525068324431120220484339064873138842635762618692434098033039965954244084484707010458164789866587636562199601999094241387810351510281136605968433778487384798187541763058398001618953358067428423565492316683980368101593662632802991013549605415947916767483151042611332014014911438347882638534097774646248452662993023937974222250481060462869351415424654999066468727245523195397212937235488075151867063218222407156566862002502242731197034879370889263486928919945218764507415151823160784643031231800315198314307122091740522572807876640903515075190550735457138307436727584601496525026550385251895541398082302103786967286070607369560273493276911181287896625870693405492802849464504010437547150618855006287816864467682669880049190223382243387661191183997396669327890873494277388153505729371251763227251068260275010492355343423692795968405068405438711609464293646528526500232836094559941934583639495491124961914249471307088401750667416111081285058215025000679406065730455664990857802203763628896032900526573400550712477735240952401412573826044557344461433533553329335333599774920762127568934548375484407725245116482842602937692897426722430211042602841329661568272748853120274512151020390537541773172694759868912742124862137949555129897474891248180807247834245898371897149798426656331404907073491579866155956649498444145130921732541974730352918429392500344182045305465284783582656639359701507917893353127822345045475144896947138309836898670322499146403901360218902531238459410534614928343342446240667340287079494533417342896217816685645752807985240756167012046677919149169627865277259774480416435086364073560207995364428531287059643165080528851915266956316024425684207310631631397628743034063079194402321576787708796557558560576020894170681483455919568858768033337473528824578295897646892653958992950503025145187000671107676171169558116422402970743130930833510784312397029479006850899056038887184726640282276489039863405735551427980574692410009337486661300990324277990362548783641594366377408173266972236863255748268632374975905533015164908684647020098507417097937278529846489721212943305568295410144405326231120830926907598889068478224972533188415081582595973282267678884844868351140754949688103907854580409696558415548935866560704031795962088434057589093779023524498033969124245027041331248001576035630949319927469552918053819079857588083232600193235395466661896455057727149768995119215964631206845785502713151203099823545308855446909435458738059383079937740221370931535166434985526425322283218233529761084810349925758701836188771509805208407513357620257192088244339671151722249394091660010450251079702871366727812824716198206419886714981189259334083805986909193929220725117086787243775175031657867124253796924604968167836656797805956828367585117028941612033929110002142962056369417202476362290659445452395122741590548317673716374995622801276365856795215132657338903754332011339933910258897256561058650096813722260808815578618696659574275701237549769138729482426491086647234607272955303143731824314798251020847312584589438056313147789333530920890815820867595860834338865468896596007999491272378989030674298200536568937733348495560004807182679889813942065881644277412675758518715493924593650228301909810448915586988645823269736331849163591358049997384258420315837377947420868090277758468244553485322571843836224822135769775150037099828718792202110862812781559936137203708786151773224325288801392276938321719425702302292267522882157654749081806969849132067828011942963670316338088165129109696051707620692874356717273452241088378628347304473251490343722608659430522186709127489630193211019823419725020083059440312675115596744426620680697803892336101615022610805350419383489506983861344978758522604232383987387384223643336179823733474390001512910040133697858098086567135525060175370039863508609791648589370207968903606793563648589082096986919687082840700180183255469075326290813539726384602531113964627557136742271912133562792120964722170738886149711216597907732591165880277312096357177059988515087185269483547801815603226254155910661664845111937675537041629318631039276856515681665442887252598784142805085160183542040269539292382815905639281037394171540490479115473445689412444803235310245235454637552716434613326079950645212013884479865228005505486519688038028365320212763988154640415785049557235494380643895908945022601724422423055771890290359415681064237359983695536649292195297126903250925679398261052911551911709826003851916167034358040246788701852768995133900412303769156380280117437520774062874225568172897357658315204635662026492911798904378284891214912131814669184060260319688156177318567845454494929020396262665527874901514212735432943172685909688350339951943536407730074066971541979852015985592774103496010406270086775605839749355040951953493606756027694459538989670946349743089333020871779379700069789924485635628263351069388513835548701784847597301767554064429016932188841034966433074916414896720881259442551957587351000224108292555535664142985044125541439405959458284206459852866662235865356310690270906321876300168461767329363143723973683240963786269134593098472628779846882056701449597228720994025563167801808896278740875255671088108565558233027795382750758242360733408392478317985689130017499308705859124790405092451416031799630864173777576936282364181312049407888129956139809458997084190723082972849834297502122966302135307569848382457618713474399039523553095569439316987819161169610453297475759512507729014624211043802316545068105554653420376869484729843623390187448513587100950832242670163221412473619465952281798384559703046446819474789855834999687081692479077112325081016747604143347854721553312696441368286429191416206394081802371878947091867493034259467882655091094008058920337024840114564221263674474961426362206944617023170147916311032303976844186258325734939948238196339855925507653453055521860964873399580709502912645075212357165826765205919433180994135541001818506316375164299198892370690489924787063990516250861468935587278520423583969055783917948829362123538905570834644894056493752963445488543882611653727234896951989495493565585517701052329090760096257687003845578043477434329059481559556057541091651371217560592841669869171804500614404902294380833287877723276924666596483854308789786919070976695997165443871967881503572958746430313979570161907201270914978410254150490755476646815075409424793115010694494537527853745003581823831569781622249301085997428857761206909760333042009295181171712900456403061255077833074017857630782455890417980297448619728985006640216481627258133060178105640140473888893487631661685436239324787117603575840505278417862464661109823779755911892223160054096506579900880203832674708166629723482310220340791348304335112341719841459923599903780818327030292474891426374053001470564121223674186657364176788709326067470327932092482850255895611949510892145845014308073667312621278861113174013854152964115326026928855320146273503704850981785238268304095220402594731697762552628755833048731660264900228056602594955470466334875204909579178168844153601255188100656755589892709364359662301679956601384412270105269504082907477456740184184395648581933833348674932636073475965957379252304282470466127472532393792955351692596083786110881113582992416643049111139276944137214774342556219212150141255183436325793526819471776786560682267332984054811618439912315286813580515946667944074293361099013288913906721472256958062666509833150991908985534714819399219444771287555950547863497405810022864998910433854389002921982523696926663422567594791413604279875086852836030340707605615193446337949274502596865567092722649601034861108199352385816051164918614907768881708948085768589240381625604869681598430000548607478322703492195058613729808874811258699538840207870701652935911383159029832612849632300581955680604025897549955189395141101736269130527576116288156579511720747861661964742514004492155211740571854945843001879867845257692696776466047998710282993429612916867123297215289118898635210475457101294626349108038153546381996584668879762493575618151225554278605217231946577252601734326219323882977338181831040961804039134635438774946598718522953091405822973102678135136464559030542560756514157906046262720911719686678251481663909273718734887075983366361083369888835844842140553046254256901389873944352784770319678891971383883365659189681671274456559455646986544978376244469945869018973880955890668953182263378524925249581568048390536859832321677940216902299917670887820144229485463322799433717348412914860422636155311372533836124924797844047453364507154385617758167027559359686061691862198017088769748111023689801724919571878950910843298604566793756879347970274992434278500497357765572578055170509107901771188217040098158110926566340311642402891805501254444262761277722992487470066014002749478606583057339463974046830871317045254244943196912498687431918600524893773025006330937311415394817913993552657080610298736687593720350790278315480388221246657484282489504174550354298082748341438883064523644742532247715690084533984528591588639600466569507408653781647442426226539829112069474987330221467262131376325142271940894908203300905764212921494572137476587519095062266433711071899465311945935677422987830539847683606084728772566234826330896055883741017037448028617627606832910655499706037319028500046700789740084079485645380687555503333929991916658436460086427950037163580748421960821677177385668911509678861333888636432419133308898079301926317535918512178172912759919821419902321172898372964296735508465424413963189872053207275017576029815150346989218527624436063882784891365705524355721340698737905943545558987053186794978864240032062260323866577992453201491038540389750413014871184539193344670294198503186905346688960277721536978897256620794642977085120750372815308762031703235025489173741112005112870399960097991407096587361838451481233761136358888250954611378912035881295385992153561436036485447524657834493132648920175602060170042442867042858341321313587941841355293426552629784756151707051853646790530048317371117641869789134096606120426325637213862193071119905613722161027825793899465126539259592431444613684056673550430326785408864708565948804242654004956884428692110954505824202934995525675758873665894159523359766473004161404883685884330385041451361887686718442643453359677828145623516728176039552607998703426750979216987651917035315874743879580434612554429739199927255170983152344423090373624425418359587993116333352262666674723144360139163524293447969133612424511984825863748916178204549457213112761030881840503033466049378973930290197634855721074836581823909509620341034079208505476163318426319574777138711588904547559515845512668131181289825603836981093388510662239404771755625588699551467020387829587930983945549968838403508975312699213253389243442525365956859780929614020245355994479294779031732042160357255548021801484176111310946664084984129281455745240089227309467261029926142159824704294385182786875195737943777421712145922204057706736823735451971633780539385417134875082596618875749580204672445143327471905029564719674379941473641763055194043654820507535484642910413856115168622074420026492604862008201228585564240587857585467405181260948055219421754396970994369233388677209937706716225624146312842374877441630021240003154038204320162208360657592958973975151698828221322540945762859331656329966166166487370357273151733370580216242561814690615412297863967044692392852056546918278095783038575712332356581751981450560058131767424208045085357227073416406017146107356480733550980526399673738760251299000497305425336227726810314906939851564860319029391087269205150295432588437210372135403024691251596175566817658697906215694157755801451704265035392908533877705314486108207361621595141672780486997181759160352643049689499240924440111008664486439423827877849498432846198512890340210736333924006751485775349634582615520046866271917296937151595313211913351260196935099983231974144051237785703684184109876102467883512434709132402311564081878206709171286050016333853497856188440050792183445772778322989172982282622068557142833031858884680146228074203199739073079134663582633457876193491706327319023200385683006845052356898481097344480461678096454017836741144331665017585318281789934463024954495171128849434187026164235394408362530545439560267528045024578464223112289283864736295539318001642290482059124004861000681817017541319148162128607346354285213122585456902030905475715949385225150437028571010077524244288859492015319997534048889927740262525123904551379171832361530646499296574106968564021876354943176929506980143704836233533515935253900182861479573132537103068499709729371689680029855129299436501613190325649099456272010813527155685555800830806405501810030079197030554874687181519020042320417216768015080241360351580557515686485883616959332214858788789783546987055129441802693859292381393789508968443295150840798502377774771095602644638552823224407354412709619005641269201350688365610333441915757764774142761750380451613633463093403831074560115198126954232051881466655157860126584413057008909026688927553131547581127434231243547116490997017258504733686131590761659214765539110932337238987566283068442440755792729507572631287592628442170561205388711962697047681884402556452194623663984191371521018863760511117145715808531261087146626447792264682839401163131797846815638322636992367081465177524769193165046179690861734872202975906899788240708236870160642581438236342836734462740858232207635746452195378503100871381863902714499816487687560223064954688992690927437901765156872378903902358313029373792997350666605092276922072104749798645573053627686465152499650411565600418554023927142163266197697737416164551508330402698157041407949405775997374689698483587673345385693459265829180777750895273383115049454499888139885372179586503471102269120410864297507204063511983647518991670292489627657016507128026118985820330055393205985700827912548137722556711787520342411118709599495564862498068000294431487277457543843101996785682914567962699020842457157025165550912307866625064628236386194415796380898973240203312561702725347132707919727244083264980737368981978847704347246052533940456278820916146971057822128450074262871185505851010360997294158742040756605067770360928864083529118314258269851627520009773922876426579211363245322621241621833106356816171708461741378328656138930667177546740908750604730502633398961025973160364617302383694855541634663580233538326285150116275477356253871040797723576645241086762585463160244978032021961459371928038212480921444676674937655799023768271921378906677505227616551689706739924504540434451232075462167860904301818366603920950973255557381457053553909716845316526513787271079990911092194915773226932613212614134147181936334987422200449573418890591361754078312246806763491502097853869278335221674271955694740132910486845597940342008799570961650578663200831463165765925052888588001808485764814459154999324815701494060504402810374978586524104083395033213834785056057874794973847538010496778242773136896549403946113757668645411772796325599294289284576902559927810299261184644883613125588503643003003294601065220559962039463052986555102369031976225177634433797347043549086664669095200313627472551698237386452631980165201319903105201392709295416530800418613570444295531660851085202060978782214710852693205841918482841453206555791149208551431079042628615782816856449547753100557397695219333410556894084284084276044890167710317305032069449639095268973566059740541556578332706239624193977438783273869284086523311041300895075829543539131085532002366731241810116690003237537809192377433245289035330254494092818938595245573731773497558980632514016360045977125254114135999327768384164694068560665596456179251971470678204325686353255023561362060332182286908238313376983980133214977078960236052695379040854937594534602398001424658095115320062197891896761504022766972784376605327499887688147339795814323310011216354353125634845073416724838096388072384810881349294749290693617260162515375808961640972619483024388784656562915916714362189459396129534314797434203789335802557249317747149365072133500679888381733915620572330256196002397018013618033833087032866213680373000095071330373503788808667209239138848100589668869359961920449493413146192641421898413498133241949235966671414902694792225992237089465746052597820937772586083820288715184045143117806947783962700917767543479626169305153622292879731505988682035839282848169254347047367321533337159629746771436007908877758863642235066861854367790281902946164804862145582915805861476534504861100574223412233666350640334259446701491564386336723447348535632597730378002280171175211138676558202774677378618079045235745146188052418727656127684505120028997962471914902398649353940147762170142724958742490443673809173709656029971604996975944291035281494616217252636898308772639683606370314447784006860458383763398775604899460633053064865889798470605842100484627450452768554802872255688088513266698907639239161811588130570819274519424780563847356349958382657912373014873320830728732344084108426168545725026005705389772289384951923406609798307171529251795109419384087043677766385010094136809247757577914695696120266729752473878802960301603552946109490941740005723045643638989352655743363122639788133466193710950061882214504380855340309785582894634337579987938581163459834954705605957725252555933977462642800546272632833650438205696743379786558277752161445430134886919623184068641519723484847355642439949186322840446389948549266586256045658044774000008956117778120857567310738526938270513390901850276496742072133932585495631407858430768028257573125488037312904101288165715402278195424191446811149893797901266346512661632622284203446818106532249130287730332842497885146741880608882981780503671253994791946014237450504536116141798453367324247291806213379594693985855460825741899856872869281673273177533767714218280443572280016172477287581510733808007083836424196860807673990365264803884646768987416786365618674854309982438760388449424731851325055383189349317405888204137485026477138102306286638602430201281683014180120291305286910504613627573386992254989584148750236399584757355862050701690009091572020802381769006995295685827974800853369064064161386300896984154911358059900281630387098359386635179999104413358086401809004254194441535863564341302412317692920201207776865708332861180144267996815924872886485033489168318117527512316861182467734017086777688188723068301900685805280706436363083322254230620841506370344998479640156547484153026269947919341209630859915980461076674223095449156147089080340321040793977136660787584179703236641474772315730603265029469720351836906524142429953694200792403466975983053208669251705614162690713212381501552644162138799725356505553814197790511570013832960457145844712458561868045756852912756977068805319680512244361632947938152546717975843765794553384187770861204521641477400885329626115693899391292147247033859499383500018185461381784335466946741291986065089180447141118709405173501971349678027883509970750341296320757458976446688216315480572073961296571389920256758838264738550151392167644481824903991620245695621908315588020996420159938355895825799750153090079969265151628382587740188544605112885131783238623679954982450557972195097703962378164240293900992146572697204269591545411743545201510156933493228676865142742205275910407983442601074424069785339300484510356955208132637013468084295267431385921356087538204540317460187545991614754681210032665140102033820133365730493312688185564023659161088619435804239734950994836973204190591246656400936364546459996329894356353163785124485287631794085978783454976400893141929384469437862077813135576235184499661479854052134209815307980689948587625014099504112925578620375504239018821913221541848166366106861062055200444150034455991244188917046852273911514260611948208050370821721854820196235485736369413796283086338407584462922196268656991349691776214466116803602607070756237364415977641487367973741135214429632136327203842583058846481386350246053799987968340873554184936491991783464842124655503536735471210344748817908028181725224002184619128728342583806276230196710490670771912724602070360845026757176426318444938369616190456007482203430900473793938963047276516353417630598225831354034237012336043923682939153431232617294485082977552649155040202170034690916717166132635653676934433510682263855028587347110618284451991517524535726635571439310382109064899806191808740146171739001668621085005659802877489648834694378879782427965197600816576670336560690223605242914091350811935313980795311650103773639526301154218266282945927841969071624545831089319201712529427590725561232995248402742937596850801356330717563835768315380029163656221544061596707832614770836947736144023252240562726593127300701633825043953872554572066302219859170091100710724511540343010979137634770478940403610186984641783947025505396451391433462285736639432446737382756101447387261270949230945422903580668305971184301298364815347721067846845368024390854802691189267608281324802617781443050063350649035626897578215115953943685169069766594478510712129212395008329287276991947117666201373299634163875323606361932410885558531479018229233445654913487342896031946760866930931944330104190776568296512284206930270230355389353173459404239246402464105303482983182824587085830378294794834170700273400872330342618426357746291005018658582910633468847537924205868344925273360811206675312445054298695450214468383624026110046639065904510527164597651244694162092267092979909594872865946717188736993978214899217259994657783886030125612756261514491869934817682862189298992230357634127943806633759464003840281008146283988063391618428401502578217912517629785613220819011852064043383743867888309116179592136316743138047439742339214270778165394416096205230043099491647536681993273633876100934047764555908389419211257167270956611296243293548315020244173088645974786513747607684713369336763062965716908157193054381511153625019409708370949471037652538410326837045627409304655257803362196029727260237356885795165217516278372558157667017972835994514757036215910274823223610778627654003270049647333082094096989366546383029260385536784488871267270324333225746682763503897605253843152992995790771414758063612167419119055713184470067112421022028457021455413360416962147058224270643541502634474923103211105191166770073182479599821842004940583220374041955432915921066002289319427512808638117494855445322984421933716150340611200121109609763234202140646210214476286900427759588012846454915314859700206494321412796308435338790357100332131369234373769154631838373052617349066225475138394659773131074302237131541020252389929681355820982447705539882622313783267237788233639325171132492855959619014948991687165959673096812853594826374917915838719990528971494094594324080758000762572580982132387019957232448460026463334292429319080217605246215620692853956168789184845970715390495574177288543468702049291620838158255530945804027055482616060163911847164292819648287472141112292546935230719064261968554758079799691814063261119276805078404332123087569256634863159513529573646716558962427425966312694692059709914393991383202178268510189812265689758698639827770532452184986809582280068736827591387807732985021434168440265662479605756312005414422247881245213963910651733554615661743589314686144787101858801640076381996415583844021750350196746794420017514012332653567395817832340129035928419861364458114340027655406673177145475660289219536158222439252050590484262726947811079534015597778255628958255691326328872018019515131804599817702548626698196422296764405384495686849407365131109613167605699544234035854264690127390493378173639299798314019551617439384375619887048818039084485338232003813075025826007682821834553189157970510677010071568203352795341955839605614271069910754958526413770949676161620925375886835551010254798288311131757946117614718523056500146241481486926593151020957983154237676848030344955918076109494173537930943949453247925892207296430152046461506875932253064668536140660021363885182822736926332441332512332846365581649348122592368590646656127703831249036692277217042273396956071991509363861368208476900481762815366357786744912701771515585590906667694571051305565993799924310408089781599893068318312410098951459154579458225575576325988758603943411741997414676111505151989382080487652229446148447941771219804407329486519307621428728630109660764869846227018167860791552240146080671854730561266779982310325916395032132026859846446371159226548784554399415027121633800807991628076987917032125509760249938583200820890517765532736574918983700278197255472509404225125817050371926360321832550981938863589725915989722936435785629391582672896382768189196961008480593234434919967523670703323720876263612563518650278595171929489684535506196519945562428853335602377467583899805268449650233591540288973671582566017686676538752999806156049717039662623476590768817342446318976704629902640348644534175670294266655831892563180797265950250891003542200215807825404808191485328702054007957559174645625660299055002809721224255254221659326869832044809295664988847189432480317460720621394574867010663836913636535164725139786608982960984057177840816545586739286771700725412466974089379537348713857518327512694724974744061279128912534455739376060428747891698502011113331872095552995943732616984410726621106195484940807412150064011054795224846066100151380490711881212699790154872878203667241336333030636186481732545155119611415829782470036899245363422204267322925355990262302876941495128947945114297936345921373304434402269179165389568633271617951979765225109352675842591212886173435417382966010025212084866891033661142429803971511420861591306865300338791522402775396127850546869417285844544399749446886970239557029469425120737821294963978039074585589823355658520041217782224873346963110102533600301727568247963027052859784579957219100020879812688406880179031158895703006458997008193341310124741247832353109335160331673707560699969570074067239764330967371949059645508641375008256751154838567378284358106801144919582738937052594738185015279153298947597181072920966216501348793257568558436806065316528510166783811193785646887284856254529894163646638622288464086280783822018383939462525856448649137679764445590784939981218671991823912902491810047972874975643264466459555629160363285447381358669734866770873088089546415827256162460357561606965456725040023643791580600018604518750717784808054187138593388226944138313643265301911397233435866458098325071974745290058180428709011322421058812793333231434309419137925788465035154456617612735578783617236059941374001948095537087007252024092676252434663444724362520950465776479392743971032966716053367560974514769552642173225913704044889128975161055200093139227872515230415360217057626615671437732433061654342735719172975344497982202479164823288268863094977836956780548166324194942133677220524113003324761851966233641458394236180283946848150881902629329458661581488773760710618092184758540162962971430687312812448179970300818744970276367356640866260579293884969352259252977899141524889047669931648550950373574025390277461761643053030779989683989498371055005603494817453245393253273491175780918029960196920042458775224798370836175766724399963413851592553418804891492483493337521864536956926982440384624521881752973476197475714219721819695673190352422071414521712831909083818734275879013205922893657335499582668524189693832336909796171511619358482949187570251013891201602103104859691129450889338970004348840095633391947423268939435649172112265376301115317565984759583967325900728538593991993970260641319828667014660701055079980447198168446990152447098384459334382823119547643845044278666315864880657333730723972871511945097182897965172923274663008594713156919161964444290978117253866135547527830746726049761338935477007164858471357276358029963834125204748033998222627554721883411019845478298176742578527142390496123215650449941713671409284799626037065166643524825876678067588754374326358937775191836175434970152553268645366865159560447503462995701434132103001320799845387873450297068699099502519603088557792060843315977326316574408478432666855042924199140036939789772470914490493849998998099869190179816991475224066103942025482732391352337927282679015721355105754069660098626727687864479499602560591776162906351708514882964371523532502507925180324857505100068374309285010556441562499031515214598787933597468135072921079551087258125551192865654254422658802044881068420910558386696538652645070657341612135121840098349954346092322793769442584569552055360181619757335717618809174890956869950520883723416424834715221441873948693679909268481626338006576216393699256743737469440734927182231552608893808222313365349867989830442598052161109428732354981534016322821895931368232984890475068131506147554570917518409848441554230113472691966879121447574729867074083539176732674392457155157456753397739385784294098861780347619642057786960483545046558348618609215174564325770732354691889322683092605073271568534009934431735649785384756642246866448157979690546865312903310510636011766548136469804153027266156431802134675500617666541729908264725579234763309704710040730407667447640247572784731742344778460838429096040894507178632577034955933787590026646992829548460523698415816480350188344869336834298078286685688709860040221228964135407075725043109445285894204535865488249995320746138701743618826197843713244953556421717490611018283689444010475915606481376717268579986321063010000876458135287489897045313040784147707658938647754716859313848875296457402295277931658636248467749671351580115903571276102369113776441243219095876899323404247413572364876139982931592004219403493665121815622476194043928327659005618033232231351635775705880746197333011184714588161529815584900619814872295856807315438980233520642887156477690226287444503042260001118442667440910581431637789483862789482226665125910233594270493882507278419152184597283913725452320174351809462545359433468720381705071877890897142689240966898908971465775072871102242616351928119765722739753801051621864220426328920670664311582673212753994295578536562479791490174008438350935401214126994298191415751836406667464220473655862139066679351683990325595177994507145009625926813608635348246700826346155310491707633305394521898575023925457801072971909626895108142175756063111032759083876073295662349601727417186466117502884826555944738211664041482037786078059264191540785570374617321617991434780873456063512484528279474649294662267029655804182612118602467355517542458962719938223720187308939247644456736181013498512948639741416576581087733902453265433483748737416250964182337402535203543657221932971279411831130755840648997743684664169073686851968099829656038744581811601983341719074332618247686312445538314479661651005904923843449160638468955262474744434629857061759490083304309828153080703453357971832195486376533534706629858626378613205847084294199638916306401376083189815292109117952943098356081667510298455163510662983239678040060077191688098391601924266766127875381950732990725714236773417248270389212893671998643227765109614709405862477768342464921076627288487104031784150459538371667165586282155900303204352715968507687157805724903033318822926467527932188225268126857025079318881389744763004861342147091070751660746896786434871663625882690676022288589089586239750651443333256727767995116101623609405737710753572799358634931715046749349851130678295248829083524559103681523603077601388376099737658499443971024700035362651765456616518152067015520397513271135543576273020824777555995079409621085876724252677646831677426526889015840946213587240028765508752768288600175469650321154871806342197847596319932200750543299341359547110478756582445324172164501982110729878149741758322584475313230012068017121163824916032986775645292178408436358419104436569789016533748092888061737054328098005618300254740124942480320901411650518910342632349200583591767099381374447242731930615413102831707768738839893147430650465814313358883347514384968898735088154693626758990822773986336334051772605763061188623766121050390943508791149769814065509049015345200810711132875993219323402259647830277832885119895998356145161081521798479464697015779285926805401765340879264080411073807893891026977829852099254944205348907777018443040806546017877976154476797946101156588364929518859947115958580255896832127270214618987957319553335558318089180485053655233710437866987357615671563197179849968542805678279521771039598401759432562665752815262108895839236602103886254919700339576428164839718432706096685195794423817443421013382132673347376392038394670938106537636436519725138011391550035201177167518671673980988361870962045782838645216224554921690369249493572521526825034264824688494749492036021753337925616794032326128278103805775432601073845764677778977370457760316871050558781911169301811458428182021402850504736451749041785412820398418107208570388503219904943367101145669856236237065127929321059469989191274173169217707493034193958879632901765397721747783075882988700421351706123112151887182240174862503105622889974842870796642949922753427554567288333304470738797493926082591243274372931064441125772228752340489568974146023330056596563247628891175912880412313518871133063977595211240033200671844294245761632091604735982946209999184955741399802208661655628613972330736079200511328755832871895136768585037054812382270281879997099222197958834681310117281030789828711000910001434387576328634082255291943689862041333233940994214812887282750145724922007688556326173893962413557760635234002446432342920527368956293042379324897164627619629183809575130595782969771280160091139206013275944348658134831086503924168574647045448968327169488993993020418546705380636116063755795538124876887501193447550076652180525901225181545758350752238477277913718869631305270987160004994045274768264183035984786034109460216842638644749975090047605638940102590179737662745919494916756916412835346448803478124103987792668512268439594790853371901896427225665055364482330092569697591726149817315882444009381796974995608578636964089542320335368221539700785633615380476306475222681960140310442505751994546929188184556389808910672230299609116030058814720942718886099068762977401206608960349060288559597313119921124831197248863849876947002901330291256345049988122206192976220671517168466425844776638806037430462283133978989892981984090326186961566647692487217026272539607927433750873716600175666454593898364713227342993891871355283086709080054934046737030622682043531258796861193318634319462600291060187737502984298431819047148066765388965472298191845778968947685039335403745000232738776906948561971453388486900167727429751138754960489061818859803230127930314599484340772870250882868502257765967597574698576967454372089178635270443416820376178214794810452028852099863809408208602471734847601129487711632403208477018687935935633495552527240743248544279240080189118773958348421841334983370408348908546135861770735922423565420845894237850778833170331053825291909627092624426563362219527364561974034053364651399236075356944928036271780479573335407699619089184999125509477739746594878944702725042740149819813713218745398755662386961873939694561905089029137550180005727721103685096830312364096936208037595057716475778162881493483917255777896102196689113163425743993797349944812726094900925784464563950244305300047501895428060163173461698132256173610278598332059800060727129974402382819941064682556742072974046022677879976041827689516795057893740990931954457110770451027041280627121958791935873278697853596971025300386385919510181805176207190375556692475363014644058797199667217096470486049062600019324110582132425572609110325237306167713349909411845606942588062800722805361758965083520078565075460917150957443668834634985386345539364988455356942654112024768009231732532139910089432697031783773353780038716414332966205673605626017064163613375765824893643770801362091927424626515015997312196527058528457387636029621591794465380377467524395974916911920541934997667645787730249988602121499664083864478084673264483766650206097581695443179710348705259327127502816307304235047188806663834582767464132970390564319203167551244693758728906270728043775978570999579198542807774926135547181205770064355805062199124285390353914832951672802030134536889603533024686498443488742265809610785162677752451725887681317913733804677041735125759057722780932300180788966379087464033498182526299123451702585597035891643166651474993339902863639121216549762506266144437440335092167613830344716042568970833415391897439505774008246148221740080740240574467018114674387744620712411379387457269284504700048252076885778470257603817769588772471512901904668946706623875622828283005103732271424248748293439878616156906634595672575240138501412374562147584628220081403813245472701711465679248383433352767200393764191356786771180434596620638247879639232402933204933044015358012363200636964294179337647784927253960475366451796481822671905794069069270413258908236601301000271634720911920541194622401355201090095874869646728358806951942777546952406859111856780460546485743884728086093226923351625296465429451453129872316897091405260946904869249514488397125724235825561647882426540053962918165734546553854985630080687178622758349866459900266782521955646242788764868435002191506426584675913850940353424189022893135764279167299236772862397095955529596414033629693044348269922129867762141239617553978413093259882780444471231619071761667912463360811695736654135532351894282530158666414804096785020634901324284136222880685801528132389535161634922466467154036336756682891004257716234854047502988957410605428565010805446958644554834833921171923319482983399577205688179862609955631609780372911800965844555313366786962406452526445403436631493014892381314999669012127076607719834417236866473938399843545201228693038023058252064369567810127082167443317095609826068964683066613893220573349608316359082701900146336881472152775526254019295440441011480285521852088580583081182069501772373787392539909132305568682185655567664776749390976156809267083235837098480046079547253756649288342139886572432338304118021769607637719866311478016503413250240543184024436457713925093015790482038153080521708479141816811095302370187682313321584711914098726833872061790334260580878988247959567676259313744160094150430677108114987904807130721039924818969272214637470194947623601093658011905148764167418668889278090931272862784528183932114644037810556685151481231161021702073280871007308600188823408860703599524017647280303988163630200251006925316434026366170075055921065243770420563819865008038619119513694277769088040825060824205565748141810695365502429288832378118397680628821459006681156970562807694700004218034480368986403705747804602213825863423693201631377677664079983681424237929823157455446240143522390595996283470621128966823973344940003315886139628147680905874633150986429606941086365099319732502321009043707731943480598885472992917174645951085511320210131772510110819522677337954700000812849513952924159341828734014469584494817030166716277930233856551063759413973407747209720820239318108229167594445761466798955498133810162743029814888948348085130688745706439885450948847653482912743052222114392090937133783521202067998957026586737280226278483432494536740988982198882004797636924062758798976277340778137450327563113289223203944731767646399852561166872588880026816548908233639831599734356404487783960895564245845730868993638723758104917658355917902129300663765309052754742332035957369587781035688906779329194746136972004118241370387882507584301477902556649604574288251204983292188534519940859004041501644739646541558137000592463799779827351229448394976105421533867303975225346931842071984134209584785024792028129115866451544459964535660609355916528133248395344665904467481627973683135925987073655813222503807262652729790588711044789433055396935293131358793991741366151062169552683691461719229516782370167197194137331138593704699693801008537093588669436074252318412156592865870368360491220437341374928558989758671995171121426646978831207056844030194542372543927567389586313399668380942501507053219215014960208376431812449514433887792286360845276176236464174605034643308733976383078111776879356136355430965087477086653286716068697384546446201251987232085762901405100465943917221929654857687153732204976924347780364889911804911887538899080391681907396276186042512226629284578104604548188597260009470376173470990361184045282552862855690959776073283634175538450185435146178599216871762513934392291683277571393177509826231267171502915287307554477308375567070624965742002131086742089488152151436121969580324193565254865719255930727850964200139214479018068787690994159607640598878915147831755026563339628194218202400779853310067886130403584451664098869266572902378122077481749269749147610617120543621588170350374773730280788287279202271552696348030467207186341388678366107745232320024793299589968196359183479844633736628937765105503277471299926501829495786465410310419426522510856953616773393248557082478013270231368721769490938646989757414970609358789981502553271034670158364844970367313022932290349147742574761701003472645708218651700886302532622449097108774720408277763560592178010368226145630085413887848513410749348688606148584419472143744985869509993888323969699622153947089067713804851916918081682759858931991355502788342381659433445491744658897349902344578042868750725170862838889633907608766776618809206555258467927620197434205063529592724855879530690104465615679259002069771225929894733502643444503698664887350105797878801846673200012426537457564227816488500947809304186472703145100199495839876331056863223152983500447081117472872415621334161470482757902891140115009700506961342899207161946503950420680904569449756473348684310260440044530156361747565678181020292162209411931999924690797822038700422330042128339905793291188814069084913436355355684540627175240794780916761622816491486689879084587152319690373018835126931237170864960194706881809017973909270060429575204122754500061011504813721902817110948629122907753900743373566032534262455817498157127826211775705641358813224293020015733085658632908240592416260771051926472089060306754608282839066579118663413830750484217135146552390541750985530247364873883726382697592714563956651143198810668943832457883701284613059367499173839208615806200468967321439940147292563283686641985990879876672071288335610105226133898558324751990916303188905955963507078300409020034626725840225779024458231827903231166662974082015454753066401767047679021708919585953053012703510329433732072903022770436134256708836892756132464166084746720630190852860014846702695043486487416223827953535148674934643665305068894128004453126918773230292122295794991520448408225493089854210884620542506304153110864705065242149882855002713339237109500078689642689123208409078162872015534069597661410875942375482247527547499592500971757568209532841131604867469804999973911285948089748186606971581233709363617808202329289087774961869030134598258386384541544146192100772245229863097529157102043036675485033822506363770593436320317963495200051972471085102127096396071994917706326426455023158525544462382259323956200671046275188167966036524984764061389545687085381494551366157822546632308181665698048893450748143767551623827942838320028377288686088661152796904903619550412786257253878450637693074930267056293203259567565683340709800016223300499638611691249021558379880408746642908893937975049741652067933623533112432832790816231936048075947968625921115302943501273351701824748928006066602394291538222646176737569824130874978690492471728903201402107051772910410277534561968585382221576275567640909775453827934895225829759379491065934766922720032243101676424269047645050086205854418206438625277177829280783748666616773535985036178450094827247145237541621901945127243909586302351922178247512780860474468183290736554878929116993502521739245318945589434814701875581028214101692900198550230138634043936150368561094890437409353524744953306059082271541351028091343262294756256769010514603455517148615601508643582303709945850278083474458485089353177578127577769291921169662278288170839217314600651268804874685027179476280086656573792175251216914008983543884472888746476509750919012105800521409877783164579404580758338833125325066487478027537867330662531253855689463905197197044010235986926613957757920335626562955875856382874294794468554238092746467539789294550819976686490993665472916911535859837091061672090769033599448646891527034219147789465175213670504695521559301197436052739832233509152965972996398011808847866839342821876354393566818964963730539518357780731830679081245070162510214106664852081508559871125371709302993393805774829580858941011560431729305004619132204396084719127700912472225661366184411551871843823345943876660252656273961455695505520616325933456892946482421717979654805982994393585437960545455241789337693027801002247947663159193782912352354060226273805744441539685701839825226704959985906762219658596433623874468696805607415109945027134309553874725520100763597442826785013136568078796501642708936988437603579724329563387770222139258692027613667407155562773485391909338695951156149928239132693386195083877141148039435500094245175611294925745447208040434468382468875298789151349971876416349290329479484054083464217395919022946254648004290431573909004601532207031144074930167204512233891416209074017173866617373675397569106051228456087242915624937183479218201621080092209695714444135651944344808423057798588740051774157515697212210748960436104115151199220752207949681965777614192300756187576575699447336049824375979510189929576550011729173985097277898589908912399429089007021947266568494610197953147427497512771717583747306610239079506868370420580721559162280565204234507899331907749935941734713655664367288531084928443902225685970446054282041138441042148122043371127875314116618619208012118292915337841021009243488362987015214846725159208747845083950923160357185984729018506121878187179312328011289574831564006714552684641877044276267445325171510819603216358284635522044951052707687463862450709494220571182639785782482791353492845873724730975555511741014765190414988357939535469690662815387059915014505213344294331855930557559463480294465497844551211580955350797972496613331645247194602051442726534583804177676047150140867710611590622416975497442155197025111511035423395759963513799186435524117152884726099702717988036465269686244030417402226335168165284619250303712789093906237864895245435242838802612458383257569024588023739625303830995759020045373977583350189214399053993538673841945526085345388353968393540661499822228127685848028694491688940021492639443924256710748418753803439925991494216934563239350881108066457431071021714123125812544797001020272291222263736579205747792658884948537539663195136115532755385603870128579264872320872278050882941835445003208043326145029432499846319012691524483494726856346756627399693153415119604806834900975224569173116486054461868168606721808753027722206457159928187883432353737592475177208743868756675937769887264027907669632475874028467428202354285351744605818325136118129017168167102379778878885335811376871770075940650002419479107895215884862401787788470605731387092709036012671716996122838497618876246177774698270648776495349872893631896321346641025144291021765115887845562021337623524857689924820079567342018410324684253873494163981446880321822694978519751370228317988379233400568000787779377910697096335171548175948486827679324824971410180186754277071331599124645548115112404279089093038103538641963630597454035647739182211915723583685256394540570060302369140135567910131977410545614158080938911504642521405985070497525163132059397417303839008863870881130860467463210169711684841979451553678388264716990365342272937769871336545834058057348333715995654343872825885844141512917092654683855522526265605894521493730025010173934485393013143947558577522298388443520804111868983133268386948085752317372089675024372297006511680739348344366458148719145196312970340678245884409835579857042152467100886398691068882993049743789838319565788701195007927509199493261820119515966475272536673637399559135905831490764132480524423909268787761665496942847883260266176275168104549649715241745563691632496577382609186066983465309690966232629162016191805715885976668955582362508356224281361177842381707633618628840623072103117264818515364790966489683626442406372873178577683721757475181188469939950276049609976409358056224468063146905288695753937491388433521539286126673620928662790832002410752747190220776085792433367883888908661519629039334230217772447935519681743295773051130946338170365264363193842952898595199136573362205210204552449378926445003474967969720114173805648063138555541907627393163539385031130650285749507598631645637325553565441274966468755664758915740056473501404939623569993321091844982336719355431542659025108158409684418532852082727730201263353926541769918742363250393287535884064770705945229294707985996254885001084174153170117402513837304366952616604882393219980624013336042332878817247365773269277971691308584305510493864862925501724242404418563699572178011093464722095150217430938582204915177541421449962201138458573845010522361907636989902568048725912192731291465295356318926797077345953950766370527936428176487221035303070868640737560590387232847307429031130410774068356390992869770580137263677436229304990087993346626214987417732934238247421383564749455414879327421933278751720975392419414909178527115804014347866333141604617117561461607256744364772583833241812686659243202032161543258236768279731488816879886829140928000684726660930271500268059961566152626211377242916624332891589782356558841640524797401383971458246352621378681170844856299876629595701235184229521996770427621766909535323347483395140865549966675024347341877935051148847460744518693482417150556861067695509576629462679375047788619035954214616061597145365272934677630756222618721255134492349758625201338552854628780145411717677059951752354196946134456129909053937775135505528676262716907804316374746419091189163973848284118659321885286178280949768397510800301277946301191949590237516498937716221902908047000082728660424523324015492191784209097942505785968608656337926045619931444158761636496640947639820570687901034272428511209971300885661466703185756213421653248790654933126540656711750970690023620235820383236370989246104254125797937863960334068408281504854763522180121439496683282838657411980125183406513920113795692902409537548890627956391052586368219928997783368578988402791085097569700640532483748395649267069254581019857045555124270398572448066648885368441521621615074492275037120047790263640708069789367002029632749324294984362894677209452246107758706118309498625193953269433358400223988011860058910517331498944662891488613197582483879503706489752886803420124187895311940871184547645278620196180206419746368568582042012418844137290295799220574568149212790944426157188547336966724333887045417441392930483413317770878212473538352742878752880837521953470107131319994542284425432686442520956984375155645701693367607607281196855219197613752551067886870446889492010348441194317915782129100674596959703106390819263943083901046841345921468049666687394661986752151687441533560145755100478300349794038983970542360412914874629352340649948235590696305560747533742216635305061787872694795924616375363822970454869383032925169535497753814167237047804056677742486349273396279315024997178864110406317114406971807256442574174259011807406163589457264264489889964705026848459625453745943063063091860942741468022616343492676050025196026608823036243802543555992692476679554258473259556853815405346063889092251141478121431939886070152773070136924632275603586263060534648980030544020463078273924479064283586423512390399088523428267564379047393816388993314253941320687703120488810382055724818058495789226212520777447008303278819370434413319682097120761188179742814188226791129747011212597613930033617190208053919618552112108115529800957426774757718979339151095259853263125759237945116180672164776258778800047873638765919663239574177270273413404882482748804229324985783258053456731854457102844962617782297115471837126289352336330866042273829912198813290161101871631994730698998648502296161543353831500910116904289313012507032559492365608698647586066540958243294846765335473006836569763281872819856479741779721764182205180376738696415708672852916590295129983277658703347891599913133985067343637946153425470461420312570336477004505791873875050224552513282399590386348271949723727402131671572313048033502376223518066369845890109262908247659811412412252219696138712903561044391575083328309083730530964648192826564502966663075557939001610246844489056465886428717396857740506765931770630002172718540017504683916093775328047939820962994036938304834382938176798244410359448766837888914348714982826136884302395191259017998312690597192521662274310168809530514042233516543438227515420425149389869371731180277623091999747601905493241820230011068562968677953005321567517273539756634581047242773084387378536815683400977384980941584053338446174705035078444142878941808639953182279430205774871440249592830973725554231508653666776883486575722263307447743662717471623566077816245563922586569953151735420172037407037081409058277895144556393238057827443670808844699936843642110118530354859032586707131346988383727446551845315631191502828621909656568934828097517532228126172830160419256081535693918358296874240268689078234135423615412467672071586355928291097600499195923750662294013770252061862001117725412590639874175222253694312028430237278991768084460567356551896053460517935744988848829681083983110396836894247641352794751618317050229650811244757888525741468800773160427437792959266626872197553852940046123707732600937986527030894676071895701871605986257208330238257589611360739542371191720235704947074316709976794685759270675470320375483619449517763736551454674374265861912242091010680534268858638110183842056871053603470739565413175451729635271290915009614947909251873745739900620898414607263077558847316104214860168308589519938761054425848054433292133097913457034005990317893496143714348071530498717484088429449464995494902151876897946889533575277966971514749444063879004114391829364754152381377588255515956302383741441510826206277267625424577099622939441657394979666425473397739956128101774634670475627713741894433447343477203750266448229935004778523946572039820968852970734947843264072258352405502015325385746768878022670370441212672344554188063640536996315020944859415936892772155777120418599670730164451292069856217390897456640900177408410848469679431225338924246292997938674048284424788650988693391043256038233789020654539849605371329543825197984428560769425555262381196259897564558668672922238461211736118955943331087098261077249626127362387345954225836796070883012885267681948116282767390823931199422546862220812059270426727281217814793240376318484825009926028464822877630049605344063586555858922949721554321489827932424500104494098770024498864290388575239003543398032195604579683955937386242817559811646414747810034509293449261062531750745771971929625176057392530675153424795816248009610535532648359395987385745698755859066572671443106307177914001545420387180377263668677052051584482892685240691626350775450917530723783087263585592105234155791108333353302956794819651969376451595340914407117341458369069630739315727103572660742704738456223786989217864366407632526607322672603827255780135882107551423401491472291603311954331183562346781035197326074105692412297285030528528530073269703958372727654926688904274122562223022372592185317643176145876732185263355560318031711998958543892378816096376034173583493050188293970213896821863531987982944867856518422024693092630076420110994914153662920580372935010768195943469712052109871912369584083406852235191648984407901808764594962131504583480192271770500812249363241054353918624306574008014543954447427899242937169046257041087587289764769805914257853642290876178816102172668090143840613908274606264429022030286862530544736132889279045032059547322545243891847333278529907213757845583850231647706103944773130390369399220583821266296571364626254114078880274567726437446575325552850389375023962216897277151373260635692002151569613425347447039152680723411936103070946318989252444429879553992227002434987102633648333058262587903478472800977549156328413393640737862771535523818568548311650951428468157121530466924424446644983286091852390692124869211915315523844467458914713096334465771166406364475035355145772644143587804499679409993708750581438145730529637971388078661836247701682367272446044289528516596278862358258972097623498389477564876363832812726365181426095814707093604367736627422253408993071645919889415602046353160574706298371112751104471817328020043517109128770917788156658175539303036970143034179936920637277419841916567565561771572511194588524910696512973606917381835542057598572938921258507059022306516807538237292781697801594008084897354546253100821854061983572085311689906005410249066178716252702154460258774092022091788915945841809900901838017045540054449242968777695754609919310594504995269017274330058574029131437572932113316207070555769039264577457638468816719725900337914964804468168409405075794400678451504096825760294634250115193019004958491174741083687641789596839153610542509581123145121740612046359541716860476719428454662203605047438288210923621359480160011047310333471039338008764564758410405402966163877624975915082526717210585677119912283187380775684766654691385855129474574252463516601623726301769705705830317696890374524284472091599265126619063228119460825085287069510704087544181818329779220714092064509833662961764172582924995712716320101906986470715119648935786426309574242584301586940780779285048463157816921491597232687556865124782022957996112379974801981568726101517517394311649897687651168821484445832626482914208825152565518991344574283108335209067095794792494660991626473093212439663243361230283465210340828512252087735158065180874658889736265647448017328110599154783662982144308013408525951504836157260862501419623530638460464749459337454194464453024966996846595316800174252514019021484696380178809623138291734830145804379054075924551111375742287617296384835202197852534671741975585325881709232417832054229432662660609038841422757689990494617533515489530094169474467462121570748403440239285419677512052181409747926816463600514454587231226503279517352153290608721229557207240243302112821233982594196509934784596891830282360716172907067284341783665490357033134456168918046677581277576583430372960066539212307890631915191961844094938064229066256604886307222837646192973786074559784280596352221255917200627784763599932782190201480937909431332862942377874655314687647023793714078079191366701630300801102594423841476676152811782606785438398852772064268600654620288430372119619340461751330839502569264381373677888054088816045555144556413848985816736722239281609176489320550821702830740573661600143889991400762069131668823828943526079672083267672262363588449405453013958281734388429974609119180590556821383954242269242063303079489096961985937969179286705100820055152178444631940538075671827113141648763080891204325690010062039376362633272143252505311894349822594959377093278200260655907679720266398561561023989082092782524317627781823855874680231572976258538766891095015714939448959211790696581306688501438839617798722975591428424758995464116468421194836669624476950881629142382245630589624999051605768398021989943032252482618367518728317389258613387600354145124289722920703439948803411368853665494217572080154521858567479096059025960678831285466684105496427216107932268085417692172659838334095035252955214374275717942691727195432834154418742967865206405176134045654987824920925691406160351529902382392041793671502807472442809091267208029910957715131510253710630121914493946457131204313091402129956561640673817515364512827130530113445047588438685627231764093329646994421476610606175174731130006068126319720208181200308335241567425822768463904256938290551939128055524997663774220619042143271546837842528324499759759215593651186465955752904755967293210783678109043818994750050054596878856085295432505836313495740857281711942525275660089432054245711430072285817723193515330971741227699118419499279892315354572921426637333608850157509094849736247089200804382899247257972071731929344754513010610556217851227078759827431458496115860633278193587912003665688484341964159553749710360834648946221649436193235178067059554160049687499010757631395535682428867719479849714997662808129285438441951604882117302709261613814308552089235158266635345627364554583832541138159715018312391347604524929831086046315732823407258478554566716427559933593621452709899511858064793378765122555584591120573250527888951292739623002916194868574599186437470657012019938806220652169566037302716051983603173954312960813603522375200224757070533680075790156589057221189581909758975552542890026476085422366502652063541108783050434849156405007753404291873455078235745990134696696356126773414345771041977310569381423223577560157517999050964913214068333503469710350340590395649228359504681373899336309780003836857776432886617653097352244198955709269127519252853070290978096071659204176034498412045984230811720495273578876590541261961166797126346394093402914144461620581436050070862375686681829140103359070172579742456068940239482104752577516961343799376581979345161934526833814899829408846156428563592828032858951287326449522451798414088506415233214486792731825681981880722820946794604370765734841686740952788077439711154296520582483606935058638370763746227799808904515641741365917508374156745467331537334483825139409468026163926969470927082368411364587851026142093434633348104244894598916816228251605309016136607814261013988289235425741306794797032805311926803608295807018103810027708167349763945176464559846969850356541741740412409445219929061954943891977857850466004139135345395405441793551045094027928983053367813060739480392280737426896154475090997755213757674954672458628422345399817349386727473489750571466095695277052668577774562878128604287408103185916170591383364209077487622887640576574856433627236596104521124669440099164320871053749270590001129868857910796810705878846793016795770297976481345604249485560325801809040070901971051757903115158671142590686942924886871554389176908127586317222889998782050511501588364965692433786863447696516580553668324099877683313666892934701023526081060106338704856769922161511147498469422336483902045027259209573177062150387268602004019613458611036181296752886797033546317619340527739984707805636845731682442300358568727212986871119754121264927440145061353029967707873129179738460572051053083366174212960272553640067871847402551306189975305187500202767096847700229953784687530035643532470595634917082799822969736160122664799283632661125939962700767593984004586482616570576002220847413752329249926422915469664404230105037201829717112867323369577850121197708641810426173159693208122204281343329943156296556524922430954886179488367695705491973098961745141096721864459777010546800337877659666871502971456852005051231228386404387058908436291477803262520685447441024082814025517905156872094274092462057265663626065589470271798052928481820713666859215137942047935031139138930266586095683700897343155422418295406646644726427520311961349129550726735935067263392615442317405917839894914448077485021998139948845687481690538125784004435886137441485503431717277005123155174042912827886124512883893190949817544225766805047321655413404390944120774527623008890541962462963155250207387452604145826510938948947262395376020759720286005609815606679803192335182224468763929373847381177428624489035605981632380769393060333977239334921380936146362432844672096800149227652777503581664216850949447010344337425132901080480920480222389892065744061307228333099074304379579902683629897772305112215472512890526654857697787838440377399491170587903221143689731760233543695714855588992016443826358713512758765967208444633436046369446555356090481450917841773057706412656199541501577000993248380902133957392019796137612151320366941297474103506887080281394531159775679236821931561124189046831323324987767044445811116999086536090078155685512215908795845900990702897483854466593639437936473769537565602693323747464391379448354741447041292232925470817993730877404113263616075788670151211521250782117315825515252662323151869759370981215709542898903969084084356147775502222845874139887973609844704670197909906805047432440771964672777921739588976531592516246954170565842254728587148722688706288174526309437950943130284944524954542464579372365448713598607616615874474584845181635793841292073776793199324292641477986885748526457575080976085014804831046169985106037703092018082193612737942744277740644229553220511624418870727239292983021812189030214930979530741982679236433293613709201969825046854021163815012275429613684989327895544179717156112773175007649826384117056432849861423159326775707104493629056525391002787018440505956728446904258156690778498792233150814049932247701553377135110231959195676134862679379789272692364176720543688839539721845208788707313690317000331420583002922689634360457578000645114525295008326465870993466950960146405980690213650382984811995632143808225221133987388622997544781430704906386622452017868116307374105436780137640089418716107660889936788978402574249378790048443910762883980895250948046164333624292005034749516480153737261724062731317270724699145904310168107349619754902356946923424327073216433369356274485094420000643160656225064667442106809274911845448182709780900081153730752158909699716391326125166861594722210104312097488054111450699887847560407230873821015777923052934766148192671879584056852797880327533901174528661697838987628990028931842479871114699136806919984695866123589964077030172503641104228028474945196274278860753096741488591016820923600633297605116744036756920634020855502299548640787037523851259525231528059472273175392480091381783681349464770681871262338641264989629050552376443708712738281310375526898302578953856983230761438949125281735860919306082405057341064573338282904083823745741921031139716033771802679057841476909653014189218700462296417225621814687664737164791314474670784764081274777384076764491043185826412673212867820848959831134840843918853171010048945558561103976262024951200936190269701193187726219783614250650284678761395093900751764546666484609927139419585189106424176083821899584580717057284843473448029817809371237156017405166416992411025311818608937800339919295322346981266123442923763183871093157822295876865846000470841847921555105188427180565022201050934700760265578463174892873739300392814442228638791196545084199171789868275271365911088212511580971922777654521635185088055087950699679654179616957006545752431898781853258902217645919668247502024828872371445798027532589321976938088768687205081788240754833791036094826362495941860818089512897945704644772713833484800593878232611835018157190904134508402006662435283056471419992197681111345312655048280638173239942561089671031327825798826200972655579368062972824193551654272308526128999714671076824221761900858063814371039335762095544313933733674777460827625235207781605849576080138832448345022688908508615100382539959734431185506805711128288359929035828351685892906892390015239250100987809425413564731891717205872099068170665253763839172932331973161910295117046272938891395562631457361675478410608822728979404336642939418731112517175587304234118714797878144626755532259379296751705873619915630863983088044788383970150961548803659824861298407614069524846111872701768121394466979677185835854681141067928558377118270446989119378212099475437607780964766880054204520224912531411609639580711793370443454124381256464463544091810242172052859519141745295765837383384538646773393080354993093223341266486675454658255599445262434706726307455712196419219285036042094892559600335021810481897403573805963543129476031657867507846247805859514074343921630143587849108582573995974246697890829274556758238485647575031515608220466077288303463238573691939256326901499255323568036564835952415248559649297575911879006985777740243885013278847047251720939231707433538955768391024723555326931946316215274350648158139417938489527363609209291475409270923336884367926217798175239729302678984319100347093509134648412971477992202979856406725788948569642890067698543397364262093142980897744016679624589772293800022740394634585598101007204016742479542510890391339548488472168847888008182887341494368889850598886812542163541865100073278336782227069973162489760509808852765432412264621392556188330794368621984745185340441759441395218802099973440041021585645477400863142853230064125380018243533804058963058899115332266308416196641397234278572061844238199481490767319621297876505022670124230698097001300430566569034036938397634113873680712169195721976841924999778760581261237300661049815090590311586499577771410304009134416792401344513047463058438387955858380099560849392481886859016087413253512327968654282182951214530681572027434095384686278472821855552835444734604896679841171979837677477773303802568898373969450599039958746406659012465154045294341720875515274934366999299693149045150236278297335213066050343785997262719764886188971873163060385601620976152905985313122525582984530984793252705850280925307915015801060524783137420877909944376286013697496675392223879181520940443535394251936023137602550565601677174452556279411881703340958362000945097805168891284532134556307115103439681654952693004857987751684493216812837017709731728104421465747676194249976073018602020638587173652209185983063789341812055639228108948126952824795470413878684089131618548723514140336179835426279758418095739412677939259974010104036353711238041825633282491188738904968608959540752098278506453377304542940797814648834301485330602264856206136516491754074607495121465013342258166182869106661619585490329545513669121203084437178006121812924304226666402482427765731147888641659202464102427081965235340846744864889301849408929202142254706420345903508140262901097271398393384845992285028130264796465063805867426854253553254935926572905391030351717750655268621547225740738135791386020231808954041601078466745863072320125006532038537644739300803558658421223933124937258986177698881665442009984009105317588708403268125173686640124709619331469027488696476974569647868260872208577438204026603909763216932937792189824889541932957568305891201378830885093638145013062701700482881841675324127344847504157347814961406860615022022369250115389541710847928383793018718785388705322758453037074955567188763532756026662876381150012960612107507331186355559533860193735713341109955104473687082234565079770488042400415700564415544669285587624320571251857072973168378209108220891923431429043554320651562277629081800784296223498900446378846458429325154835304976708422920922637447032678244608087729199417921027998123397231209286175423991707739267971870337461738637912983548429559847234016365816437967966514173975965666460441096475927125648723137271836899428672150778960863949412721213222195373813941624953624614493032292803567067225105822177107171102268986667268502982808880209203198916372476317731696397885463905772832429070735016087290205986456809640364763570561005617437123691088555893871351652833404055881907394033475988544554213916966202152455557698021459355190308554559941494124335161713248278312072380831710326384597363577008223646012889066314034344229721753005346117548386431562939120162368087511213260868674657995914222770142082024049299226534704985573855530989070455959661153766800300555965302364114267891846344141388580432468303653301790123980855722297130607495961232702787569300033716599261453846976364770384620333827006116334467508037247551005956760773261198474814348619008444083127695733868027206258861766806982545576254535313715131165897436063384152769350073769557484785876706644158862621581751513632987582867194092281578649408996319108791653791416850730492180002259958148732256516367662906877811046183052111504331166048723663339382987823261111673017540294003186301168407430261077194419199600976995495257767701674307493503949860922604948764774937580126235803089715558787510917329333624505730722178091329852479165951120022024552259081224867643272428675988153176370199522579793318085157609961897297280608627939453131618830179170496090155059962939355274395348610698036282159322229808458709416861132163271210279187670523626427175026256139885960559534876528978049320632328928086424911883328316760595118452584607943642316133217206267791430766079316322166279278723633831875978037199972180418516177073481780134009235057639083456857097312622605035157506733057664401708762924975887223480917399055071766620844369426381840146559908051042684821130824249078220808199551534452294527023916509556798384883983327696955119234743218400118967202354562157346150670324609580599834939384717715404648766326960451521232400006314458127646584009630460713826382986279966369193368129753564801597623371842726740190344573760481541005381047010284733363359143371606405552140437488998619685600213795683286381378358756482438398228120418456288886723143153964658172518305663518062392760580314900763399317500739698723961605401425987584256233866290829026936226200309970425518753845313704166823373909640943430103035506964052999046079359318503563606588326895434117546994781523155142188753789814515545077683387678021583247860889414295773424038509769500349293669303304082314232870485030859702620432539034991128901088060496140812077763106234794184610236721917725737140413668018444391022046061618692507180271063960956839557016563595629166610038400159480384631368556038227552235727787975056623985758634684528762775706206583622269394452798631960446077532420184439630008868959166837771597110068986425877501364577548382915674473824926688308641711335726919678678598330229475955440359076352000581752535017109859338875745141558044078789270431336878278791420922350256238714046979657083123867891925874597155196827626405032569811073939924654776047450329695075385517313112400310216863735624179363212032290886611174785051784498686389315628782769240966992789682467155167754357932634508289150346715448020559786806785151954862251722162088666996174882560972695300156081735050964165403162706563268589245345525830489021939570195500119414286681472602948558106429059204947740501838477492457722031359272315476598514340172965186404840188302693404613094242141790524630450263052522970356413793752260259162550388113680529523777173769656648237847384664942638196403161628626029464984634848082800605584005548588215910847480478490794004254422576174366350464170716597769387322951604973920892134534217922525011081307036907284960459374222507273629148929170404026982884126670000253273548852994319246197964435945701445885752423726388862625514086445720860301841498643716936188454525193806272357616789386694289543536911143178340442199616278552522246418720344156872654763573198390817447848405784448832862959037873487238379040405995746365366055655593682050322104392376202020963066397698422625647504396829484911673321767299283931635500129634188048824868952666586944387927118252303795180065564138547742650287177676428366097152566002741523386610825324101367126500239445297790363550187126462383633129726660565380408460484055822673597785213982641107430891773711069335692638577535407357572058001766777956330839682580316484575512381495628600522271611927569132427671966632938439718827581850687914391124656213014532647200662729896306462206847410961817006184134891843270609339628347768066989542395591637459449586746775230850500471927248234472212146058214419911845136388909797325763678143550479261831627462881759253082446329030825813409788671642411036203243081555584673749592926624716290657706930031889290158905784991624788940140781949158707725582400405228812719095583426833605101400874390459270163150021419687028454909201742195088023146865830290563585666221230501890017406968825643809512205818223872020853407319632367088118914939415534254138321384564851126772587040492052450429303787064896233956302588982049057578552865736899979790994332884147892387957282662765727021415949157527167982530713301144294313363451809191248501549613171408710022949521051257245804426097745858583148622902937379047573485585857105546856472230192418652813991479199496815604151287928443587516104179260885021490567527711768012433968806632730609578202979395456352111932196664463586452441738298915969653187640183053893081750163671088874471134913545903684306561785692112124739264879563355709956894783480406987996521077096932846563891969520201145244402391801340162858055693872428156963514392471357059919026149396395441540397507290219153153845287248647908288898590752321898246823661092481595910661014985351979946459577209624294143946669198221703066391271961852960156304442047599540596130484044634020840862948580953311670571879558113483989160503483143714738372605295344877559371225792600525573018370929834562660339448904948830106704487993023684606855729636238097374673761734788226009222953046452927571256092178171624196614080794416837244891831472714582168574105359528100631980904718333122954533883886096606388935570335651748795755622783218351450515477278714247078264029285014358417835531637244203651341420514182321159674796235673964883151904433854911773848473952676512737213900650486070121039192947108069572281238417026863556057828032888334942728567506057857897103652559084578233624200019697110740127020684532875008045444186413491350852955625054570429667440749567578999205872839875989098640999341940334277766431369303136494438683028174319481374372279457357128626079383066486655331819521411296937301979301950321758322913666285621209600558214399912460749126864558548628796993504687161384948896179810153924591594848114050190193348624340454210283632341119956542164174851309195588364848981496813353794461871723950048010537492692351115830237190330086468210958459108309409491578537271966228529613555297429762303041913336277248328814115375139331181435825232253481044975746871547598239959839795528700752808435691836862387720063340234704222431935486717012459355796767488589438820528580364559870342368961075020460027998330245036152842962377766914613933710290085805295976497375437056831443121249296668961068594402366218659696067046195413614298918387330862685389820439616963748450071549654826940103525312053979555538217664414292674653974545844439098491367596381286751025894880915218078923002803937230475644037232526429562392224384368495095613533140853041233480374832958226572810923188288710029555874309197205703097825362764811950593664296402286822660866226856502545991897536238472630255983753536180158825007174118803325672593079064597759420723294745565192165482466369981046358765489092025222184020542234483346505419593277073993155000669123733109125415964677155294617508075997517295038200039057495050175135500157205385790384206401841123784977572268222486412834930628263739165798162932520073140431609459005215244097592262148522497257274236925245450982074753736366739226668826786527218369473569606063409077985405111499837548447228462987365791252878610464813561863224470729269030707588777577906807593133311082346755200066076632256350796012790918952880174875078611803902359188833071356590318528393446732193381664487623609639724379706306967158694425735210874900030676652446139989168248092674821944578799991091046079476910652723022829094198916307145226377817853194471052829877587584881621604067030633487191205542715687925544555734673409105511183283882662961096116925187702419068867951155577324398327731888122624812656642911049092898642694160702445022183676097605724899718742744719183113477392350014677897453751035539583085054833470599457203639288537822158746234385076817899732033541323285675654097793576678020447414184821307166881608518748980956509170587397209165880334607064651395157803593306616795024731584019945001968627796490718446240741614086497229112450968829197100126352494429134134035856024318781708437510957851622245630197658450756829568944042652306117002900859918494624591342212508501165342335070587502631053500436314127623523737083736451718720465911128946207038702060498579598876486878237265260661811969391380543424351620835504773806698204898933744815673198259815759174079132016267894196716858306311848506025617202129000811143435214840879751443583381562625449858160465568976147366157391635278438517963584508992701450634740757223682044324199022175763020618707001672659845720504122634667479861280005425686214110450541111917677039835445733807206371366436622340711269091182259574630772015861169684861785838901219789932082166586277902364860796887480462356786068421033029266771220636074157118537431915759779413868294274074789753378946542691241745891159375014587160383237378362974625744696590082959940410622575286437399357848983533701187894797845087386312447376905755203344768733826316648495240481744341432156391822968795160920955531135985934729752588438513286711109367841496227943681640275438312694925470967856369225515446927404102418765117868994866885626118050900825538211672025952163511537467019040957419193606709557055093088738693398429477688001770903948504778264337276501691598003771803495960523612542450360878542004554861003465624902732360065566770199367653242770804976171817858059309525171212511067829538727245422464181689524261116696515505231941562689856672059346416696545426947529238358627357150118313721717238722107017795801191851095600962780037424793077511993072399939026207589856872701544839006750843430178080903248738250191549370486160856599744624611652138001871642723268986057513112881575557362597819288069670004933092908564767011131034547739238088712660625173608064218353628939155268748625727553387072124024140013329438125802307178854685218974609714094212234460489123394111827991515391253355710217693601744241612954477535613361920041160315548983430709779729903580210769133154562378744483207102862801780166751169409033477564444235516406099497556782278174579125663802460183638564538667877546712606204884175187250173271434562450036914230064065897784336439330154003665898990102617831097275781908332939512839404915451379388394884523880411427540348513316434370139035202303502600842248972414206128361937410869805193606428291540790286074243354044408523584090543891354834169026337799688046044699353939055878189714213693089848093829501506110143892460599084916351149996275641012952933841259590028836356204801576681822788631234159028210228851396507286044505197760103210842199574620463404877659708291630746917829940863753955608693464544544510367629309616891925063935410032586680990915198722378485432927625843555007658767725827214187591281699918951796013375966430365404601979542913015148846092386692740501555084359942070264604843385644997396125596915940615706174861936425272561819928143525920788742890084084107085605610391229650917106470577859511503198440792953356037743564019941542841780829852413614040042132740090881218610851365498950331450077468862505206280629449416141571267399380862644339069357401159087121655603501856781122123374619963608590337366694101166073434817296905197056398367501386415037724188854063379491207092003401181687713326081685555280681209163930582097090019846456933833543774392050278686807207339101872381148790348252590612656076035887464416280979075193627883264598707313745402939634229004881097543035678129875893637949151460678326158620035595875239627295610938842146064877396639842671068685147367767878928692053180552470567426312164411298529785436122505644953874640994608122782342402840155283411319447874348032703126922260350632100177549192263729965547211346222200137739718321905585261666149414706375235465038682824147877535147858467860056146465754617715821425405089326006019602795621509880814920759655291538093412345574581185680321080565142368695114772241407404543611029879163935396469554349094353346262925696726025246549627590206995413078360980094374545839570596835514448946464549934488542933344625579395286253089426394195020394786182857681756460767788149102110586370544737279852158760843180132338042812361673110318707461785339223777181098849714849210753982077608224098184460868449127566352651876816518657836662775493473073952553566201115425228296098584054479980143552700232098875007440711872426281273710292410580197360255976213331780499246466511512523028781366293537691985630863068868790221125755800667827266166590062284216107734860643648400513872775804112668165758083173953280249934616519235881073861954729131728897499150187694746558791293937240187438163849551252913044638488858517284840421961341690754144698371958507815126828744311132975605088629980506320717001022295616668673208658257342504708077227756945391079952965670371561175162593058927167293566857366576512134535223967643976631625527919983948212867083967723970517670749086090241229923512117209961434561116993905540183323032339407434607404125085530194748839299846994955041065598857011543416026301737301491842144767517413083977535819445677977046317329895875707750708007709481022536660314394212330790276436101977359836939397727172442482437684387686073737192416754268463274550216788403644576798872830126419372061921678273458985185230080208830549865325389039688519643836673202467000309957105933628078270969573600029695049460521352828692243750884113717473781280714356205121327936471073647284740858197486130702481533038103946405512752591530372339275504705097377873800624698344920455783734442549074476220207155094064483042325048814785951521446909941594507987207220565519886028304073402883791916352227573821843765023933635420350776786326267444272633386300623028633399999777020865059033127192386144495194468220533712867120455467232499371745989036865209882320261639131015340584577450600597096005870953002798568926833011801778077950755051849655341893448800993818357371155485045947260744907485612600373389172252886327630526763211831793366736352457327861276669911603247542701185979140665995953734987779032823962535557338105489942889290132352113667989126817891842366828677290371134596636088587276303734321615314958456757811179071375561796049155514723648600630275243692502255446402540405274735978909849785856907916819378599347795000668133156098683067496291945901145663500739012150187558092466384183113023243357761057988047506149577918837677025997755950572998402399243186000168423703855203165079477798309004659721217932420136035884786604337933965928954487079894963193327841184398207712896043423598606176934001126181375153722326972208717832631081537147559105458512996153334538553652504181955895223568279747466202158140619763502545481311042877226772127841594660486489486484285334577656835038875286842065816486490475853917601237521805887078116568518686754117628404633060352102657869830586992434089363091224771477201812817593551670149426934401269225678732173067750000753814210237312566304352325134570405903075304872816681226172722142417333874355444908293937168068441887286488183720193130422299929179641586570892857893529718497627069950617692930497214866120172927645275781814172965682643734233380312295474925199804821903174499767114350661513729100369096974068290225806942115608571692317802849199823670685850272700846592584441456047120927764779165308469237886258496315583835945720942189337594303862993853193714948393930290214628296092271243186129307083797974855296264931127034482465169194869787995586967732473155962808021177174690221994990698742168509798788035155368270079150359080747170690980429491122070460396285619838531719634267729560926605186554185367747623858371629397305027101221061967221167974114963311319964509496322257842247002352714085878853819714706885576104170639937763791412515299449753785227063643617764752528035867999877988627459255523789393168137285330674255842667118655862642846823113358831384041381918972945270110587790888155041420353176554801633153017506208140133567155581261401532540802563647543454724645396557193799176587857528301854399509012267251307442523884502259449292699176046129288173814796146209971793653935637282635602581176933701519458065210807848581679437784353443950435093273137318011983232838404535499194408920977496521344060269432922285515021814681800243069832222136521812208411047647820236193029117362380644284415544093842254114348295394800024604193092722983987863732642324403665332811908304535275122279929027606244053005576826235934559781028870086283781063741732826477906649799168324105806772454395255589311587826857704868470572410313168290722449168707742976421344888124091231389421209435170722397825352885972360691265560649489027397435773414675719629206472906857175450324478930457931315958994955907420282688533896180254329153756182614072266806001019634630616156632016018510261364168032392192718594608913704556578644133167891004635705779177101133608604165052977390684493744965542034290684635607647291007498771370217297323250902363178619253110988512493088935845187626483959029294015990322106399631267409138278455243687177601450154398924855577511437900732596557457492661912757157287490784251763817088428247981171912109682435608563787342440093396557366193366314167433550814241010008142750156717617356192481191682750474896091940178285743165480383651273561471740063993937824483617703227588881914196034398410124314415308366313928819621215482355798464929438027402044650094041942245025074765797398542797866303135456849365802862323961790030741736714572908450886158922206951787673622525460414969978602312164320584936448464988615015277753090068269860334908140433367272851021275598851898263521268175329774277001301164103189347326235948316440402813822165443979122263843840735289308862591612644025394841686818835863200330546689001824895658777449616191202021871321019666436353253573345849206230262953743785792344867326132214966213858355324109862697977737494420706342662234401163987076457862683577239309109969967503311301163591320561969524253892771769867787788264501187751039471009348670735228652901844928547178479864404922258891814464052446655016690768179313025838778652251657061225786718729616173019240825567691996351452727996887926397474463170238396167693190225012473601131633195636036156522320974098734264477210095459366764042767652390787821560714377381918427347260560814804756216141223363014472479839088875870563029259659640692329319511466647544729582755753899674874608177916275567960221190058729908320700533063088943725746684982455111475543593856583418605409332946811338950829738580995038267329134113036838355956054006937281798762123592939364241867286254307644672809381557774809526383306345852488771255745658553834363317057296939501843020536598903802231150748502071590107284492976036437126213114022820655396966676748319047872412200368630334638649753903224467957722172743580980660176289181115550002403001678375233175973560128187871239827025448826646492229607224772084904919992686161902792444091393877343432623492207551035162875410282447188072420545915337012588898254704198415134571468240557174374608139300888786945865822044841184501454570318729703740159866366225759206103982200844143598886021030437751687360060679757997834908669237777836532286909920160044565727169623517972961626994286937918040113591717279649758529642154140814202401026769522399708938922136921928785206899978306105333543666095664224018359180085114125261286979683479274821941038067936351532671518485709423552958259247898192322405700628542110916187459889630027093736445465444975112369476842510624003879910995458170900066692161870748886312779637616190822701071278328332698876227738271918000355782649421061750935500020856735841529525130259451406841795599296767437774772634033429420717340929393392491277279671126066247750382910129950812948045445350526773852061217094545937458660861590038134397901431080944561422945225387041533106801135506584433392196881861917949435412577881233449053938559743044707240668907824813578242532480551192594457189175685952524079630061617043293385307002056436185794283146623995685525798128986188280848232778290014373003660939567734553256185651858600117265097190216253162323128748564290457736174938972359110821636539065538020890202393186037857896758069935356341549730307107305735608656334317054021975021916318296577586254046696035315625879993108522999925525357333973855859828799923671156993794064905231754519635433771688492884320301009381838992107582104143299666975870280013263769209444668700947073588056220763188424867093958965046369454802845910217385611418891469855183930915942435288262857986132968452395292630044907756065925396020802486483561566143323511864845014062968823267109387522415074211287829044888785467351532423520173831156428867312591816470501190084068843346870881615088127069597700950020924521757452781161501593453137403511672217999567875037685978905294409003444074221116288859013769421456074584221338905754580482099763737299795387912972089531656586250462873609823671337765096355233273773226880931529027321157468366316320366978256141388194515391088708566967615302221303859974947168704034464004219943524359048649498695312767628409511848204459777752025548821871182147948745705619429268308646490494613542349032809955152831638683873548262970009028403291378831231044951791798626448943632086768011142376657205412507890583312109034429178421208560094650842073648880275939724230481686432176979561798105269549001442713144389418878899727898480271192690731067497469205691576749599291607363206343668172124237201840531789438663379232163008239650965377973806223277695592052375115086511530475046645341531185864382025731322491220804230359440863881866484339207163019595493242368345094262683828466533495636047008288325071357874490565114142362220869516725541226965066466779450802660954812937994019290908713752657037990650893158717286173108392017098508718844899918991792880971508247424296688588530312472319977265114061768744579664709053791859890747109270478215461160003346364091337020608635059654989107357291325608357878125352514212423792630272250604887915450447300497018218249621753148236388581537857259048812725851138745564614867251138292902047571675335056866497611831691832246380507622176150448824284445096075550990357552387228911245349964526072624928870020280154195145553424714161865814008154611831982562631628786054218426159875437800594441072785009195427319366131766793360040902080656409850251590049192370617576692783820119611443518763135377891378576898238132402153466354494598420202143780287722401838664284214897553149715535510449811942054518935895613153774433495760494830788508756125261872546309608707044672493938958229893658841861094318984311371061570806108460718341502985077486682905582251048919399768078416364753581136257703611387889855148816985067583050657808528775756316573187937710297629862250523493815871486141238925610512439587065797788065899894154634885200692959054342410380255881054963947631265676064512833814726925390952961044086123835441876178552598552909731482856812871797028960169920349611353712445004082358622669552561674533879102274052804589486067618746615129715449490740554923983851534589104618778697989200290963230244817475767000124368693349591580576522339027598954356944420361199839367332349703134311967787911329709619288013384442477612097690510059246729406046332013354591308112991661322867290876562309644567313256782967717619157002813724175803971245574666051169075374234074396455534630201730140640514216096592901795122670892642386692434906183637564847867610355809583521845483627422971311134258205780764665117689978407514269299198686402290026262396025584787174669927955028317371890713412749154139001677029957193656773179772194787952052268619571308204463899205956989970029821127872645365998016044920975622300046594069929564735221023814081699369726789217862719444879241014706898691111303962214896339021978834183739757459954106036733467543737057656443152961489256257995171026684021411153477167227241594249242571185623323084058036587443641224222326488631491388282828382800139654389710182051315822597679358049420898310271057470500187541616233172169487333060531650741343431355179242724444084302309189447684584911370724192307872879741551958598909512221573306377659501647451663767308177953556844209674155992530068467519969666697988306522527614836110135013165154002193839331267882878049680965904820576524399733494789583983902314636478217638260449439066434041474191398506198863887976265664210403072362516598620357351656286339049022035147876928942754373444076774111374467487459178230994583570309863469161119326427871333212616286376279917669189273640941794346838640863706640754038939939971159808284472506166625213655729349579041393710249513852742516293807479653355869266557322753065842675172955939167362263587240159327885939459344248080538990654830289088086574976144263635265115649012487405613666075851002550012504144071920884127956845284263016979080755801942566518023115729689985636945322775787477997840967104944760461385594228780609330452634315103372785452508356180699152168954465021239372521355655627303437519404064561731394844264123709081063687232739119423076605406123958077229279994360951896045252982194838593128766672951024128234739010680875214081619618765250785132369155820141422777096386034189319667880233321523463168088341267570558341605811003884036737277677871279337330874330935528844578315472232561648844406628579273506093919730517320023779000811828719544114836261254389982534328876273728633433838294150242614983682204925727492947858283483258243198339499273088733238771947313116078499245181586398926249459190024745016066074238612942845431879935551324733964419909718416747461919412567694646228076380536811691054261708505905136025065485270330200584482180413512742749922849567113378168648471779952374483708971232420042702317557551724584354158015712868109474453526686137194047685530684897657046544511644043596143249684729584858133252564319519852642634781803902329533330709389086126383364564790567225287836497355878489083020004484784653368260966072358961584824789229332417416068234101919593518243610387008961568021753090498456195461622317182820578821878562502160318060103623142858435138660005220573176150101636323323666823251502955315525578772778919113346798839496124720498065039969587417365667693714386825044083234960242219137297706013748870087550040230385073656486352704628723036250049679171960590068470403101743535234404057152208943908872158589436500527554882223668384927263783486994586957861284735949883921524333121317304058746037479963005334155044833954799902778037979041251288816031658677893479001574673774533708115025395410074320155360490944495685284130187335048001211882951345002068050613281253640174290979084662899659444805679190236492137605170572109825283068373753681025639740449555340035712043896088251210826394404318330769772596515738906064925202378883793746950100552537317840197994159071275329820584653197829703796738714754319220512037571503017149131308581051491818297819528512906852356079267085258077960800764200478526873764824306355185999781388825004604134202245364944639782327363474363120879039554267370975722697567553045742890303793764005531108091378367120522670722060557303273526402865589814598277478839150274490497849422884640035339840149189878709847519872807215662593508865794177751526366520354832550276544934534459506806305823364613501935425240169154975881329645096862101065628723547578424135206027868452508450763615495630237302753648603908486213385821283814546230358389133674645331288347190283047495062526703730933398038338643985097560265900961712800645768283841215151147715718351682403267032229324031987853376644003956948095184279443057178317585626740743090498019190464807196838331876072533793831026616015516988899272052994464034697352734356270236392976511605972854628622797048049342151064698533067802656734737863705159512532442793528522578952176304004872758980253947923241042536573733061824579717273693331154891481074071281841881142522563274083120829396288987604335328178904658950601011444916624138803919147915154759978312816253566030140757279544185036044008022101227286708608549593229919550062331959779664528046713912344694408288815050940705901819473518290246613506028321862235373447741654787465315143380691065236115249706725995347531809264556414240709495071829513125029393110844244707208961224763428631267373584230120089956794226023598591671060128275099884018644656440095457157971347316934156352222268335716004147557843808549630234774832224740446278091222520163740067431047747778295194935800667193038133560951562368734019166920953886832211274874184791316601399563775642618977283254581341731612691027478685891581907235229819874819231024931757620062112339413981656939073931225460866726996869939214801823710365494957653640870525523632345035776158647093987852190762170363552195081438841564334794292546670388067213115065211216329765111759602487255633403337513497540143165884615576699162013014183098195372575441823914504186684965587544417579764606312738243687576045175182522249689006320884638250716310421184276027196847798505442356595041480446085538755897403685832265962348926949618397257317396145935630968216678509920400718737066570006323977904046178099960343875183871896198182281447848583204652226421942476055038424357613718150465965825723901484176373486576926727877451131350793524226053671906491657690961380150971191756129556348717546114529247225317813921413749199520040055445507817282558625535924375555301674407599461967838484605591988370830619598428037714598985333490926753765015718535293033844396875947947759948419133944835466879296805872258061258757072373644777894004315063906905738344157269131420867525121687317514762216565240810111144910034816987422987060301617087157963239488525201589571050206354303793411013720512153991162015678265321424452674234587492309251568141375247806713256401666076463848886366277823633300808324470947046564068137508139431102307201961353908397383809450896729194329800441739954195252500787056865001670904303372516934677961466023719920125374771786157815120277313029411414935190384840638516010280981286814803709857530923565964544591395853434043863142711040358012316718209601445541872846065419043073714480438794147196024997236959673825164259493171834310774538739571821225109444099503590076359712747744588519974915676864697356228212237635465200595289481454049177682247612408234477748829207971063035782418717259268954506327347262283156564264974416807660599355210193017359278974345891229189556363303443915866804774976612240441564904084579615361784950410652856041008481860237821598474689256191232312375599554648642116991020132671290291500181661542460007390560364308389208026505348710166104234677705181034046689602428918190020473928039969020704634580645238689498168790926835535492550826849385025393591972159740270358083521090388424369622111868810785998164497869667809880093782687946386574265321195252737199255099830462898214395128919693769263914573574799703431397025128608417914791896339913898364437508098737429742983644206270333888043164512561441127993596206096376323251989028388392560020080931300970686872237381370189567415908496517828360529575896076833026054999051739360709899183974585574692741086000193701144120075322108750570941696599002414453580820489947246195531984657022172067183410831317065172331178648866851914809271650063096271205582392545984455876333428387501969393445940069311540021469694689334437386226942725978168610071953996659639546519657925716500850104782214394563910352523320466977993738954975112170283797980127843622960686943821411886364111487483419790374724829989049793607730256005130637315458692258952817205239003900864446144353113103894470814152459275821975815295704650474063887763069856933440672967498992353222188068801375911149899416373420247046226204836716997431606817444440292835672450872527104940640628605421009806410082411807125208034173116502802375416402894174997777882905811095900492237198746137139184354917956404583526253724003224147872041077391251125080649208718716327737608270005491218034837870101818312668486869344165768009731728801777765834153060131580757624424799179752969678420673829408176871905521659058963653352548845943027601465141703684050788381521571661739797406339264023439540678834414611217664809704855795843315503716848991541829639222812592463670900402068540516921311696406280262692497141970119174467278529011275971712255828505917150178627590415902674228600664881406974181030476076604007748803401647193205031229154651482333479754872306089125767070656074987555897851048789448368785169256022471906115698607308707874177168285549349516550967954014816213910126669620154513994707379728894892765725623131471439808630797721779790044834674613718771662427669098235401859066926750910113284153422369749900051255920052143654280215684255489054672151914251186410517771470231504100144930141382036370323558586204242149357220476280010303679589310297858670632165403288164047515274155612348173770703465048186786557371927245726954229066045554716837077040770222182388536169285576309299248516073148581725455908521133434155261416738263784723119133424472930551213494208772931069529729503795771097054648724160872613094256657032319305997875137442401734237203665637387693059368837631110287588273529780685885030795180933598156471504059948627197444553717731984564200862428735422917924054438536470720807874411631179933095216589999098540247331498456861367971651968537244817054456426583549827982125641823433125772455374708426071386913701581989360110950120210131523293793579565813059273382848819097510323873923941246495529159426815790520364467587519572567500455988744194211000410788473655168626395820564816685527406733878716410131802629365426367871173047555740675838329645978188099999112489518731159830960796155930045580063132353333705176882790474772559284968624250496164238306683491735642280629712765203409375575115591318675937513139728267954003951397836663348755741679487497847740200577466369657970182031257628399500364256329875386869050139449184692990504950389978765000264920254701722592283142217176940449166511878037285253104357101399432091994874208603221676104682200675766716655756046980753384358372122947116124136064379020762724238519482000987045544221612945346960598591980774704246763690511479093623775459865725309168803610204547957773663250391069868790033144138605475921295532717994322710125093348659538293932964608540758956850586637016643983500762300227199030733175380176988764300734170267260903485373382567359850027370643828897958571152189728413719684029278946247627760758494077653024921515175384834963732003059968731173366085869722570638955510674590418195335587863858768973481179131284573987376440870169738307130914122411071218317201000754982587807178969094751337710321846348359175733790644624237189425473726422838044393167650313248121193826904266671692979183346728911427607348891095858476967610869769325520147852451163167910924582111916465307731694707727425198438554110972621763774790184492706411156007442335306879803449350142489344756673146400305017591049902711381453437997024557271965401164256142981940955504948707261360677883782182637741556858889241073062392756655760041041690638332150983998264688471952536455410047139114331306721613746901727422196647165487806993751434350066341066126974443339435377882082864652272564727890140527331832358718543071671062958438330274322592377856698765641028811904329441750874120331000225129484363803849710963792954513822662447584315557199031665496281904186981719114510125840622998498935860670539472701237814599978744513209336026865002473670475578474272125265859759359583058354650750674429524742569872759094513752889914021589688018848743032808502435064790840291465233517382288826730679852807402414420187276811026348430557834408312763141510279774491674371545712989415108398271229297516772863194754945788102649913080727681676885738429678670314840013900700223731543753068725608012052773422861022674780922484646221091990425964984582061314783711238256997701590492318537789097948999806921037391522144723990890814051284463387942252245133145579731335613192642661833522827874383699282979117562189633228911530308515814545567479149649718287777377331551678476445917007529458349454615500720105742325214431331369390449913553535604098577065553385339073141663295182855706522263633117559731360340871339554358064653115420399834170932461391816545176975116901773721618386484344820060902765184805334473377373001335857207586196328370477171620939756979407021551091183428425957647740277028981141972143497613928698600174589042533281618412410871440149024064748514213882075120829797351533007928889053624524467180078829460685821013168604907201120902831506431543237909979387844862446069587789843640226562726416521784503020942926032853629592674925789672768802084008588625708031971394263281817522299419318210369183615641664561064498135867123309577275400779136291795256314450080687817875521091697350794037501972599469242112608940126528948528576974106293277743547912389969833677072784630538464259292009093377791838753444919023566195013151352948166840797536932568908307230703040141588990082470321826332219809027354744372866824092007412372195194889509345191188785532693675075626082333406596846357533664841668606158331350160731987157005949232752977834300317552254930864939062079859012297387701614199465935126357150484179434331054989882217987480286472115664780854399965025915293223619319016118138330668031514011404835290473690820694556781619855821882958591815997886747033390071447244707304432648134396487391211905049171199478957802034242384972321960203812274213285669667715673584672945658791255291066895924593294940176513292846006322922176615384291078825912771933316555620695487430880874676295605343963752602417724203311524002932658005842809695767340110400965969321922605287862082247630182035456861795703769704944260708335530423561448036528210646385095557111778186121366648829487880588234133253709826295372410184275125564327716530336507330972626939336532883472335700353968881155963450354574877705927746952336832860963357429939592047982602371300845746868468482246494975349105998860884965020502548011376304291123200407020542730002958432634578886301601215645409894317396772105695561704473547456351553574315456269392712826180923443810329175852462318378298072186341606191482541238688465330388759666761056337956796919323742973018983348905658920561718474618315092945228741403669397098213419911531774737257654026450010996212468133937239888381683270464385093022333155571737432921505242216977523105992881468071719442872076188329147685831989778446883133194337580492386178000439516014471390141784841961195681308699231412353383276382922255160527667592841895041107678293773821232725457771785118878226678882609367516325903708932407544178905361919524817534542525182313910988374967905870262572889481033244333865429354775528430982039997872955647237727118540365113204471784761623464146686374822704681702183670345581960420738544029825108638716894871010071858976683934380071387844138024691540599440228785233770742185217799114186258878527571808688903405466346216196154065398170289662904354984813256647489197694474119156201597692768152988409454721087968496064270539930742911546365813447833168183360400327309484766416700456916244787244376449154489266548224232764985299955996883779612640798483293792600787825055452394196459880364228030182860908592740047707691356244462602296735333685631823649336802857129467531827135271373866874042155955589544770328468628882530549989932117845867820647129886054612163458277127213108034058731029733728481793757602264058667725191332803361729534216039689295348669262477752069629487781103165889482225262581563337605418995369770159135460853395320580148538620256125753423904477946781710359703810727834448514606918461355789984633003253019092747489278728414538282997904966561443560829064530782945646247844735210804862089518882733674888754617876689225313117439619979701730074354925907581284122665094521908277998331820521348880722768382918242244298035728870093892841278790489312937400410936121481558218084807874687102496045764200698306039939915731463090697489881477601960545976860952947144621127688157958004710507898213897154898810391166450316999584302786253460646136340811890937502122505517148409456856503970962130063648554086127832756995682928290702977675768100452659595351409541379465923139508439186464697237543203701789172785665351412517229476593747314139683033863990497424904548289242952832264168012810960972019060830251421881077595063410757932491498789853991035000252611506841665259167999594368031918345408505685027079190917007791757789072864644121937223479325398084974844046009970494335469570018592019436797837493849821224808100068143031295225162016591040279042762684057772357350621084921423349982276900593950895964819716657307180785992961776580488000195317895884048612562927952296896820002299072238698099219944247530018177045537689951999769243033932132137084726430901080197234322508027465768111237453929801558309917861206340881852281701760035469509196595160694715113991461961170833661805463795089843468616835067691241180657953792769229253239454652053246927992978578811038438620617617183653846998111613704944471340037272224000743034439458545641242632792718359869696884932493118927717813838433926753869714903280656651356719036171996306927488154590013543201369560258965728982504543086922472169332257293118935192934177629298532934267938305793919941635033569988069198492215920921739090939583538234319936201729556422947897632337003137042609685328370412597370940657593785189361610432503663347396194757575252871483574200099522240770103372518652605646171103877486688819716868342792708308759640367856058071362685489268102139728502711759476085969579281628588967748474303274828687248429735073245741477798980022933141850755539499310369542901102289260222657740350197688343411723283672125282121156875418231978870757782617618737913739826523430532413948231023945951316004370537473095362248769205568054301031594783296626136688006024963514583908683857299723718243179453049572214496312890886579193705046862076679088205823321455606936717959807671715379000280856435961846340393937296310034441856486767904308586521042341368926943594125350524248673344144909903130718552801111810455875013125181229588339465852276206623048619506764907822841011090560631464666744228006450559884992068105767274532155330976324341440177178146562184203600933180020683036931776109886034616392539935110659920673197979604956325335652982590579430924895946723923322702972511813022700985662794450219230854605961191612114089876691838965964301671883101351389806347573551834874187475053782428304392212251568573196144070336022240050715357677660480876568741362659197240324081595636836544132987920045721304826834612989528912990684929479540492574456412561516519296417237851225748707581142828412818547293889959126094183774164461203888687667920325235306525436229253033128222364074538135428904255442064756821259427382313236306219664288277028507796680406108340053806847938187891739489550168199456510090071262707836231036909090010014834358619441887093467392829036866857655898006956809523129732245605771380154382501883453413756959541411033313544265321420767931400220776799379950128515943346164847410062492137535370209149469461524447767839187538041406025189271219346281267269222137434945360437758149729216090808947109130065832445227032830702222958422126480488932630536418835993287352440645019696309312538844358316996756344259910847642953943678553857925214123567742354634559891076756274084087915445515623904335937438270715494539089687921242857402093512316669105559393932008668719803461564087633409408735965517447627509758173563509397332266292318751379757369544478153954209961610712910206141686375127506253874111317179605370290706933021883116527239052740374034941210528424362481511271682726447606915910704600377712518076937227311689236178647086909771989786262348188399511969749215776120588872116440770007939181131672408474329065030056659147870384207063573465689268979558854999659297147444963210107443716261439797091910658929754244335856438186563670858929732084583950659321838437404373819609025358573926122533192447230887207350595351105020622348411713033313326576082906198282166019771254499150267082192899477896180819323245711287495385688248154252797243236433667128423476897199013994303448037983850536319706622749979182225907233741095000859864726236743579737335622497076405231108405740926635874971643203644440403763526993385146082749570116457790941372580118620257136809029790507902132501824851360989063127604528454384357170827426685290853486590254577783047084933363734613821644117737202881185980676270932114077841691935940803230939311831194522194559863655833367645287707189699047678243562988919222596075185116992462876430575255948301604088135512087991607610351390392570260291237024384328285261027352400818060017002416148665494181661139559563015942273459883602044913828547885339454642227387069506864539001080739040456122944797144637544219173122969629513108117877392288611992176074871317969539670952102586814475314076749591949994646300312632095825420183303662986206384839613170862562934827560189572431870339522293653341221371987159957159274703464016170560716154423284813996225885132577773529938088486355829383996186277356278286778111547517983519496478267477008710143657442191204192257054193410891469909343305598684725120470549382720933906334586896650761047665471294289511350609665074566076841178816226380108045975048858816734156404975249460164556149238097002129709588056800934560779582854457208625798345955345061987472077808062622812746764332855871508818795069574679016924219418503012235167410638339741783511410189565929111615714391007258711679882158917062224669290030656924472554162841481271215278886921311925237034252447751880492459373279210213775743153749557770543048986835671504419279891435802064825634387198174619863867378659071131893763102321801308805838373648950529600661709439658567746546144272829586379104300083166287663700742673297603762872850293612881355468746251325258318036217947535975215766359576006162779995558385251195380968774421789916695649464010937105939452335124950061787975579593381800371004886833350191678113712631069405963278737809606859388881628178356602198201389249052740429342097903441648286403376616507877544809858222583277069126066023058531514786277736538925876506491032597148640077247519254750844217944828739770752915745125906527669140700422038168925946382528088048724295350307611601863452958380259270454800267356526206758574854361561697855334524719639332264834354893197882481015151937904435049573297440860978264327049894692976219363697466040721537476678735287804715479652461403821500575440122327173706807602917464753998199664374617836454300528353471083533655494403870548880248501584050727505449599165703425912164519231946365023941482314380615183023694076512912258904428610259172777574347651218494584484457064750396651124298392724517673983279345550127739944352759579288982732360359975115260065357001149468807925769494005024196391482216449793900131807562319017961472173748219767305050711502944872104842067503846241315062281443267027903384752250527827641512509476108331817574725758102665744555698268557318702860321131118920123703232887306728757994917852190221987516307506596508615969715781734426067832245653380573753038645328565030058946222000618280299683427207128804928627086805500722603048399600769153432852248960234213826452185897673405247052983822162868180482716234004963437056882940904930398760061409368821879114683636385083217596652465038431260907679900717083117756022206961571776806511527199180683814836036120473130179041894012808288196820725000917234285274548296929607404165936511710577951744830768794729275405852723848658644790095424366044529890237795337243978293118489110270180962858379444879087691661071169844035715572737120034222210253943728297252685091017416251614118224355154690368495514452664993554058122720681181903714888922276805598986958955789412819253314816792036745608730032248414332323981802482239941955593614760394047505902116634691276282166221562641471565192945753889672495332904923601118936060995323586917706483122669556098927501135111825277058646022139767506184970241384229062409821172247992123400332533723517954206960048986675936001353655469607119960847696058859453692557088295619995929429257848311907455450839150883363055008834419757716389199295217360848785803408365937928621189065629310251362602050191209468453490650437000474708805120513591830544204435873243636550637729094848285462786309420195866680381139468796519341635361332778097330967518296079826875675930983848587607709388040485184356485306396363335785245436119765452488563200339380563652731136164316109478128002233966022002436435695175468091868759915630543895155452365648352488591460799656133833540898416333495305491917464477883763004215110534759770003748322124786586710593909214013809407867426671344011557547544039760792818549356349369524344129898093099579889586882934399337292826740350467203687444178456921515145608751017066128111128687008631596757963548663578803515807285359295953096083667776435806606370108533869776695255214944521264826211332448250765436862830987687163068292434270490216945626005666049445461847935538656269447117379386694694918309197752715782328278464096521315712477011564718282388580467224442467811688371400167605961990672517939644845009050350777436780766663552532016999025088830175609092093114037065728396914924643811376106473410250630003803010142991517213234684441331442483259490853888926207147688287625232974854591326083359318573697145525128049757726833621196479925462693685406055404744126572474592157114085128066090947962123448613824653859418575710713032724885960953293562702113763963033080978858318794320350350627383466525493031204695605241774027548579638348780797349516931004917809467319542168606853839770880128899720217079997051233386956998654348202367034940214218763252503851863009046758291619326503956234335848289298994044671140264130527577292427765785407923658039498016728238786905637920958377680237832559494469782871441500872282690650595148899498488688664020889517080430208198352582757191968374320194364245329432031573482573189775587404781420136754387464620959395241792589954367708626642117775067251170162299254055035476517954657085927674293624483284547691734114622562591309066245819161163288454398488974003619610205078937587669306492664507648835767148179324291729279636666254158627059109092123803694241706543972519469377060290476053954395517992555024872817548460922404254527064361851292870436228129499887159451398270851902762300309352126240768456485176041982331110220750929030207983986168962523334398057275434767620542255316721960323328910504921693376070525136909630001217752919336577023568885687312002566691352560527456940656761239731581479188650959332243439061798474237956051752680319398140124078656092556759794473914336978911859983870063345866795585486038945125841920013714058792078893251704032191538674665928236034733213411106010139949199349253853266571788263044522568896837425311927698496086156714657211301216180747956643521148333855424524346363855745017700030021649807029529791546413672486704631995230135973859805216476427427532668189804164193755313514313882121419376361615840018622678428567902935472556721326787285554353520668073430544726750890493773442516268282685802819639444934246532950582507739610587232560135770270575641464998901079950873590481827307439837623847653353314002267278142647021694732040887820439331011163398638108679331837208127383690623332643797295544721992540758746222251311451365233623238007809619384380014576802342802804013614328518635110456775987053788705818789426224846668885680830992451008842364191386114015545501606629088974835830518845699927524796994475856549073918545281708457949038524449170681714823114192764085421792386956977992356244793978941131902392339276082357540261059064280704942542115555938361079597390455560917412766088953599397696541042549599808665438089584269019638416670494513579194532599943519323909499512803819127681725335789140242586592880545829009322726321376254846804130650787437198792178900291232461560777739429911255253541785613445282039881986361121106668292392748335955572315719815671189353081430257335249729727328813087906439995128292706827557294154183861937566134647752853137808660227098294715703048373174454515453627215187097836083990617079472182613316708062598389086253188689789539829447977781444682575001291117647784904924006515545554203931685026419702663740759114869407833807226175508613475587599142910800495189129178786367996730658162447340114966844813381673224452061993944701685173508427333765851164940291916595832809427102484988264204487211737540737481230491990662135575599007937406194790115348190605659305234041904768775502914081997730563148787104377569675566882848269285125088719987902621077091340866152583453609376015169469381082155969065751669463903410857227245334030656787030132004870811274443334205896458970503317565886677157560233256660080371221087961756558374033795753396296279808409758561881116563876019801753185990204389729502048103944344658360984609006400984058971525882430372888609333330981456913174386960287835122140754618791373423837173016963111995583689861853105319511296260956316254180077351144029709841171236294431298666249108713302348507836271032095335481190341437654572117706263330306594531817771653800368954787021491237604063461083198135119468499225528606953225447711412488386938709240554399253720457304483698136275088158071764059910978691822536450454773127418444717538281283193126325821012823201785256859651019877325833747809929754809481912090252169759133014691104220562546544910217948317266763302688363320789725931268868371976603686554140782526413782939858045633853435895698874040159956398813617329671043718147397268222954914931828963052872327096590753529201563478678035384485991850952939013676703955729117154912746100861344799507854845290403610845970605128459430742477505558858308365068513238198216647691969162236525392768446752046372889405805689821253305606547876013393489063644749555777683110639328282783055684391364401210660132474995445895553682250003788160044650741843690179192521205021884699787440263865900513499845446128917587619683769979697090564639074710656701452176114130370770047491475990292900237266209928556639022588472426946610754668682229450857878339608246590330225048383704866565437448383071155625166232958462608890912805294900497777130703883789065407630150062876568169501248964527554760209012607810156168536894687044791067121581285395996188854783476604073205955511870459100326603782711267517530844544463388332807434774386601618533259138068087951453666657096406479167647779333393201323761992976841888448076171931323283704466530001280060926781618368732530172175689855137346683730376821181825231081910686060527638011720566125974667273844022552163066314966183354382483057976551735899647257827073241929376711549961603772898322011938473500024075765861671654777857765074369183457946997529909345760012422660374073003982603089327417728581685142448551845000457057964242572449045578939208888945018642733223741161616249826426008887661280894391314077442143474474639386511248723210869184353463483288578088617004269587397668742913119602380034846724782190709554299547180726916452917101081182402745799057332614198938400392850896443404637618598148612213334740974647293496267609080672419765413563138027044882479191845874118505722501364454296575451430767007760663655635385797385432014442417390113787700384051010269871183586797274890540321616643712564715805174799693016692362094892222591807278777006365078987471507576182356499261768703973472915481406919348719253274567410989323811577854371072708936089475435034685582214173703963205103481151424266766878384560414161853915187274528066757117911743088499128315783901740153429853723693720896064319094489431588878365172566005763521597794365362306963117384883945840508914982446590956257028233797997740550706628714087842891616103807099368392164308803234702884161069909460579691797242988673491569797981157340758312770095989620275832600214375392461076099562225653615177584106673066677062878993554997236271109138053711798083168332156282485786535536834387858564223427313334027190898953885528975519522765213870179560531857071568922038035973872316142015281955774306059640242565146375455548331309177834136301688758245285376786356090521273749783721553951368211502917281294738800010189097344814382783245271070194594938242431134141321356783907118927489099617085372221830419968789858653137161413335617407603867827738008607825578821358824670299368436039879151928701176303491482754684881969447417760799449218526023880839095443386433235498580532566250156722539165785774994038921247908967237611189207043184998924781312132779438908151546274185896833264308680679763127476059593594394959684230135032501238310457216625748204198829734586334942200828170292819984402631176878403460980608668857335458182861403526840441468246516155696271196103309786252011614026961774228504771211284700931764338551909006122201826747096747716470083698531419038962172721584628489084771064467084998634250339989218888172139846739823815700211507971126878386931445328084902306271254772788511636710030826426333487942342115387272664806608775094068643179989006227948517164384961236312083927729126542718968757713339914171211115861694189508427541688026848150761526062824899110861583100225718026294485749488349193888143672538141569134920951120684080717314277513780550188876574526312043375946420645517127904730544945762088023019945386697753343988973517494997860738080445820920992554555042437308158305377741230842667832525538485847334446036325871660590349667104483143281350328257382967775210633982373169021435688571143668928044433937442563086732215542845432591478976990945314822923733060121644386108601965045099123898229208033779455450918802929629751343847928902515320923242592490768142368268735760681802898602846875159017652283032199831118941632738065428894671769764035046087018534603467579449986230093606338141522210102851826788320812371679263308347079353479182665735103156963463230605769258803876170752549709952195365394067131931691698321283975804172782503427178159098524183094265086122403411783325578276134701052564245144683078073601617429619346082555809442732631687651949987017653824021353909618910702188062917486853938626380847801822611714546409740538043484453833337095491387921832190381744313203214011200957766388546881083714693866863514585679769383093145985193635165891963725274940481497368830351963092000832801208818450764844351237629242148869686682668536885703938855329541956949537623597870908419027621132777126673960805449155010729320463672578661234562892625827742413016653833096037281003224790001387210435093825765856851770386373610727127331375850918172079846648702056785072160091906830698138509335298634025608002748898575650696262591890716680246574277977595487455415244395688585911307823673302003241231248620913567679066526677898681849021019535598751467146635206499155543445886132434001999414808316571367209426979531048588847070689115004061030725787287846955512743263717527977637026213782113331619033791708881984047561387091116764837885179878489711777276114078749784625691785678368379060360236956100557519838653526411483477915632389703202942774982036482695444686996018161274898780868557421291108345919558350629199986276873817596100657755710801536621282473222516544533620906810662079055542682660656013788132271240214969921093570001002890263463516366755107999871497319758558598177724850038459231023331916768624198821511685906856652920257926632822609929402833898477561494211031430723043545359339462262731807659531667136196021353494695946245558503519905463926378181226116221296767616370536727437250682012688788228164942932836759326185175637271397796527599369262395962209318640710874575530119627937371741098889198042303286748482139075976250351766852226318911853793393732761461481895076661346875562674702550933777928421677939894111958188050468530721842607540950441780419754955137163827734777882386229788567059469724961104792060832756406561847621119477340762403204311543217497563620098939542179350814785475193068914398007148269127692299934084112168908344930014268589750501687111604937760437683323903343016832905019336877677135397210206152515861505237371769875193326058193742046312295565659681405908330265999881320844845024217419744154233190572303321217246314137300281068531385298144362372207861681800499178285221800809625944208164710420925320879170498492098763894985309833845832573851447154108291682223036835517249339534284164593142971534841327926048694743379855217888777959151920778006360223613846880922475251261996680017180721675742380455856957618314554457991158137739608388808273025355215031675939287341444626717601515525379172214063520832145632534037941016058695707886835032438704946194553054459447731470685075667195769261049200128660304353240766121323389746562222926284360339439337958928541655413216856062052986467350252830812179590187680819321564058204327903875203342402259530619897896453416814645024053557014066166915067528998487595618234614259078259975613109605046572427966735906931580531945706350746777855005947244492036123461307213025651884686651079490573539073381189417830426366231554189290696974740783578595723090589963884686592368183632459397485017276919057460433207652449142192487641609398135453473357006695767079977726016240025392993439215602506220052260076478441572446933028219418116242862320021787853001451476414067264238397078456980442483365657039801624197899078111849119394986691489520055685193930186151118279220995053312200326615180777139821038770826478807422821718800592102049144773901933764005720444256151670002757289101942789488757434636522758484464958595316719643520915143402365754310505101728177213240800621400912518722580396637622294339192558023450229190990253560292498874413547471452009390250339119543469038814785039970894589930380198524495178150445519286976676813756474377733808603564136447177457766979333907432966483384908508238892793148155633893702735554558576037404127426507093781598562362763912584559103224250458554536220360413310234167306741155722481324069004061003421712684256160321034903659988361778714836925273237142927999185193375089457008697149022898801394783864532830466017450719597303848598904390782154412044325729757809654010504535821168767614344968537193548207354100927571651560278046840431461556171955135424583921793476415402044197897298961732426576101977664513746149826545730968014679852716330820920692637733092750370300779994818711535755962375657415210047500687385750453058358654589568082606655194307720231673337140599102931665965810648032373710373690649066083215439710951783171764887849419387432206919015191553767007951080350845187735258692575598392441029883216720644840705704540821574783160925474249912922942975792466049651361712713002993454916591253298920386088648084844068730483802035582734400721365752814705566006216206255458584187436196200434883080605228490560728203590500199125911134758909615800351533980224195093678240749147815132518819611056415683258105418569768414901967549287284298422591015160757492683725546292638382059457710316832476256812782887745531108751968986390244432403673410271549224102543362378916551603592785801778449712895861015390935425160754319178226795781611384985824625039289842051741519867465341164451518668755266728186779208162783088282338739401554299545544189900134434793412898582355957435124824860284701697167764376034005770267705724171803344615177656153685259534360224257329221918001372853360686148670421377090757817318407161523187659683945788324072607072793819384864915526369796019427687999580040962849966073937628777006230489702804803248676973757173961907928619578328502977249484758402907076477919965713070230432464148546305486764712400565633289886499590984398232109224197354504694430690501058790686941898235580759103381108301983399246943470337019250907782219673857886436056941833706259095807878071123817831393389880586625098164991032249120171335454891021592239622647088257438633477149924946503067800701554819312877316472723131507483768327751829931514579613496728692650366110125177163989322784796968902376325255558746983585216059593880678167413948587366286277656084313921982681764276240359550486274904479585879954572773378517836922511349875996158750880724745365292744725975892796848453530402397838879295681843810181786489446920393106769223925264703924033155932934302890381874895016053771359759832817153325487030830113813784067606901063873869545871311220250917927040315419472954018987520733827297044938370837567470374149571979384046348694941828523893435701158820328573316884592053960584651793105542989816327725775924303789931936950589933518070719893683328900169461348455401699004397317562583338247761047385087624460445607027137652810982478905804823341353188488292659273909680879429765637843162770718688293931982612855106569033040872093050288687020458118599867207221304285712145243378082298503620870900865082328492984707854001965341001006066777645653166991018938635997250176910552077904078232540534767775375956042860507771141302404514505049963991091495357441065500836144639033713974697713477806197775647968005107289746786526504928618152740753202607213919630010080077398496717575189024760532854748442057146434110197907328267791609647705753976385303293405329718867450502491165505449453661972911034279236429489834505023379726401915395926984612863873985162702929593177360997828976479854514639161025277486686149963718147827361065968752549422953308520546596398728107487808886454930087565065160295442837140762155568916316943003452792215649851867045869340969055134788282590341617784547955394401577390694707275203341887224107835753488120138171464243680323981700019117204207021631275221492855555464595772631497295590329657758975916139487686666964832232135961903055396141376742064265331254615248116418353713622091182364531646603067146887944529131529608283758604761583651838006345656195166067963435502082661084125409712533655530585868876839374933935366963090597110588945239632370022196568704729699273159355188564553544402905290449432811313232717235501955828747081959464588930009783192593902582504237933015345937103076299411417471439926754183422283933200529690210624792575204280193310846501297184901806642849817069484972274234401487610943410123021306550951553023390315781736777959189560993773300238020162837575944393689239287177026932757736746690795992035432117827047081928266963842635044471522030121309999637788956787749520170331856848827290425067487110714805304243763248810660327585744446844836384400915631154541048420005500558437694100300606416476933643190426979275915453706795516273816572343119931273794050915452730719004489471274687552984109116044301513031303768878242697071680761558158064483337806692405969516616474217556037185618822609147331330808075597155438274666169056980863240009922283244676439123479836731499310190591629185761493714469165523221564320089137685563588081679324369901126382384617015219748220914016994373494316746505320382326845813888210502027322515572120333315910173785426512513004296634055519141958576871821855797553113699292718651191909339784826674793547930130723256948054757816004125750346300394840494501786136267795811919073678358060292315318381777976999706410076899225879517284184504594275841600543368299458792351026790611405583870029066980373589629329543923877186281691207229815340081339300175613659284753209531387497299979777958171652400672401080407143485742339149646634334380468704646061345017881019464623106404722548040198023518876630356299723504741641212705258632757400117200788467686750215439434106675912689733628352780241015785861394344853624127176963121659982111962514908345161350125906947580002494206056012927445284537272232876629802766699269018369483119751815461255583036420518087845235226208546221821759023268157524350265174733462276458219851847770558564041493740373957117461821186858469758526609620046767759497114242116993548416936323769333366584200483050308592009211974797875136810476039718383322508313961682906021598510205390044847265247894801216094805067378436198493665279111578063815368873218798070778844532264825722692489784681652497638971862017302855346105455477111790349740086199639963229580389978897357682237577011273160597602313722375205121175233989110331507788690233487289493110157306719962245037844370514011152619616469457847642832657746925739546743205025822124946380748726576416655505317198696300625494449079451929277229969669897045094709900349795450363894823331812452676672177981789617817884475113121176049571958371295020268129982011357712763847428005658195240694392064207643221379024666663264500230031733928612755669641144812432621851797366217334427650148828462951151213139962411821532632010770827617300351270282291186335583508581651730268954478985225982298166877518249404883358722303006403035319427454459490858531861848832904296270741538765059437166821751376337040595278069299918565699650487381829581544382824580457466601524876265221684530026946586794180610786248473004747476903630450225030242998712156260488417359616351826546971782015885270980500672062898903559182018378992250259030429565154752688755936198933366967864738843000384887427364413507524460110484413310862323023087104622145667095534142489153455774276925876348584737296044814739942695461305319341262760094693810910421383728416760078030281558384756158419261294175897915893701252679858874280225642960541116729333445585960585103464101483499531281894347847760903836505525377667423568373406877238133602320564168102709924942353315976840233947876961615706338969186837777615237270537506137825551250195217765108438075650868780180102597460583393173501680278687708330514824626033616008470634887096261092420999926206833461243643096719973925289526045901654502222297002281362224099980624072081027128293743651755981015741121752966365100960419327272090228092272232678873598262210921399765350471389198476249278763183889936391688634710540931463415232538334684975791194707306243503359679877095607182166793633152470037547301681616455601466503812572249343584727170111256669232650186143891047982698671734961547283171275147296840769471377983480231413312541154742228416149480809386218473581373863603502094618354115891629072606864818516911056208428976430479841044710572550968932924180739385264000365914508875954003125666281078763426224456268386708312670352882560214660996435946353581678171177127271797009854961824896566672294667207726613437010287406399327559270513040887888673434625464982152286862630335242002267796040513162180370322774928309042119061786205506254660880150578448806428250920468947146022248826271683688440571919477476026837629453653857261492858466607492071007331450435536982686747405704950980653793616291957576169037626503737210774245027199780509659932753738534202923013630550701251146590772077819307907733151381396896751852481425231093668588239452759856040793529962559457667577827164462140892306783576569042758768272253930514783561955139616066973352476030874632067308010554329879443438554928138649519067429379174792157886647929391375485183970433348725340300677175705958396813998730930673314677107137289733533650884646826927815650132961754443735609047914913898477984066509386257817974354222603652672603878320388221622686789618239821349783142479442945803959081958068173039514417385347549894658175075762568713488393752955152326310269361059089531826768470236659368545707652311071245251850441476490595319667829080021468236686557588753020864634175783278722331378926083858298086928210129206963418450474631936935221572521202690400306015216444830035550752305768201490454326427401649760217084386413518820409325427717027697775587227100846850977523806830745003873751804761327086711899212250875825965550135131707593650033320073902312802371612849501726846331668466474543192036600884367326102533164279745778869919318271052841878016846425582149986390692700412792893093067694496105373260809563756095533641181095502610222082060178964775380479949828683223893337028756884937655071524186530180228899489776617635960403059008598638266503595204694932892615984390266248379699323757557417009147386637746260642497062790417400803542443861662497754061172061914560500397855902898262338715556608546364425325140362098277355622645014498879366014418345105146175329748371620707220835023891079775203641534247343128024519362048590855830980973421015040378833643415391371870033084336191423613177609726316918600280543166923630698308587427968448781678663822191119994688297784828445485996785461079421073378032864206118868029883560301285546491498799001956644957451938990365069165097473386761541003231497676227166900287484355266297069882257546768848433095853026884882159597619864650617835045305180807170963790195162599862257521668166408359605396742379196567147059038999322176503807071252492903022785365558257723113987718777913255833376831767292491347679312224893412843093950766798084182681810623380296823382766144302513357742166883502141809372657341939604919958602094386675396235398840498871369405038321886703719226667561626110021305263477428127718388098196313350372161605901485919543893694597583437936424672138798142533813696505127093820064416256844820660145802910380938101615482980343593315228722982981423575421074001637889720605910080658924794652023650306344920538430488975086406478770880238942637888770078575844470931213317621635601151034931356570230147259115108676747061297199912303354874105016007399036866684210516660808491486916749289712964133116608642398260846257982016376201327981255804907865329107559621406432274080531044826656433827270884942477777175948645650613661734222359867884608185029453932690193574840923206613810296386159522719516008749482505343045935286242240736961122011839006805201706024505401784423227411097081479065797502101402133781669426737620818371168044168514371579165623802942599899033557356277879472938210982708800286129020833291606730723572311662711569649406354032812767284956481668134570858022916653227000955349022061822265465898079599416807653038941547816966997821041235585284788181953209657299794338128216609813394392789704184911167083219760829689363501782472834079275306093897588799853701215353507616153182163425797767977473336449075117479809982569241845236271600901219840146070692082576119656909067839200132884489537482607543095123841547419243130268643723130216538550529750913094195713980829948535442199641760759076453965926742273786880033926397649504608236900844095778441641729557396406409195972362503792257874049670020842996194032068693299881290943387214019924777378631589610945776020457961949162906187815071951617353634729215980633679007483694983627274589213801552021134978846959792679959263598524770650507699735689346975180281493266717547982943883602972528799376376790551042721369570536249592760897336672239530638324098790689436129847090791361467414010891716163084072113944688728113738191094233239759471091258462700618245584344562475110063898268958069796808743608960176092139930591734029529013255725926240844021687077479469808403207829876523778216499360122608413474230373944669534428788891217449140859015228792657098304155749702274130434817150966842985402757099515052162617637169741945478015181099946237543026107656378126453928013537137800078913468832987451730492488188068942108677351437277438576184763466278209241447006799124282817643275054377409119263787063732504990220815162379896059268160001617304246984693795573252456065438985534881361081718225769023351863556022369668203752694368061678590489246832180435915548825708272939371743770956975598647835229688737879254160368689162765279120245043072860049681728423609304844058201667282658911459391596582480665446677118564784742594463838090155381735702071865357750771039449931477819501061694204720363101826815605659743997954009236508483798155168048244541488686455986932269589923672180578710102352362467850684223274195474756816395455679532188879265870012832883895797754784034532276963453223168828959675647408116312941344077339716757573191383607410279831592281671437952534925557629114950537289596143815067721606486581891814206600934768699504891061456817992484279891806506664026573681583043105411583720983080008850414070441640661189547656318885699612416438662012817949729224539797453890365610429730992024569406452204266923695463862669254135517478731210743049284541709519166146739315662916263913049962294924006633977120983575744327737333835357342547355886716566967273723840986696812309755758676708845886104259706013563917580204256226813011954455286178998044495937507745424980886533350525886556440987863553482160219484065949496132969346173786513918605627596973902271656827454017351058928861108637007050730313623912033252470354740906251575456041003905461455634981652409924103187936188171817558374057120670223123004461344163380989646986591667115388314871387294203616381087300997303102011166061938845741250139286655233855609823611066172581096325243144787956568971621943179551893160219745468298243210710481763341565593696013262146162009537584863270485077821896672591296812176024421676492010742408505813405119299507761365306768185512218213465860069236801793899436976321700315831261433678661721112023003350692954224058729338616604899545156848674991433426804577747759011744651244153270030365211252509611900224744050948084333336356434167405954727360859645306169329069772450475796073522703792796484704688659228948047498190101816146745851211214448621827144843310352808614681689724092448141114604024581663457009508017487161499348898759018747746227763328453834294050899967744156573089585728797486921886584423057684516951122198572186280127456161973104391635285754040534592031372478319333887337526036252361740790529250906464413386695375587807531789554865610794134617940970168665966422193622653379648593663869363744504521570605600389066108848656238336798574914351535939996465287832497975719809292419608594385156668965189133607566771599610224152968962596420070358058560505735668621115117805038679568623639902606661041548252498215499915222640273640602830004173260468584249522308319126683159721727821479063048609013854776834622408952006104315906115882739368004897999225421226252209729087627527167458679993339053056203849955118471670677718805448754497922563454237930911611089479080558422815906813216194285900083000071133206374271142639914234866255442206069602572741005117373635788673300972966322475248250927532349621183388681709101356756158936523353976849826341837258141207926178984655554702121082943528153983885351988797985452911025115623667123555881296547249113199774885630678356178147277759117953836778786654300323079687814364612228751539041474232206543604059506247137545135517097891707034344501136770508269146661912413198394860583568507264619808090610717303022022654811744998531671048968201809235319633539637316961766959087762923724874932581539789787933048806811761258805340011557383723420477425113808405973229302521023168580926182928524277728680402193907421747954675882797126445417966103517199110926095334582017954958231720692672972302529830886112454903910125649717767055351099185949282109741876403027814778793411095769202842470675592846236215047741012921285460065254535005396916800202614869319027665929624894365414858936345222537887311131246152991920229129536069498256332267788568109207116770839291911744207263822834646618424405171157364683509196028499488446560914061655358229316191608452929792024189747625572834420705128755952761373381910450453965558341134502067516986671939772932368747730131561086579363215488747010358898547068115384266252488261830731608958368955395583716472683896087295525425872147403827387467787224200257608383414809827669213292808778109569864096164894115405909347213779740028569728390966129398046279803156924436372243296038660416213125887168725016607293677741043479830975926659320332865409835715557869456929418696750818466383873751350276175723989041555936151612710977627647188671274279885655351578931692711992417710709325342368872155938929506425889290844398919740171066056586589372043859345373573014600537454094993437911824364743222481574823590491235849350872677608199956178623262231983123851848039455432220013659191294721526174842793448991180975461812359027324244042396182421545169171158981725989249949320091820657656718100114694202404233057857235687304722208407984095319189099543258686436475028053901313035400797540437889250186413193909722414852655483121470737128674547260793411274307409145140683467425638492851049461377285746824107428884178858337388727949204789608096254921103433914758692289960320789482936825464160855528867482816517799238248818974119829448584499202377827374132453126380563879392429709835056104363672728228013656119762440177251039342245008977055632842096003440838954634382571444998315529453376094062719838589191185321513714446542356042208924071259423967052525160703317802094017878837534558344564955309519145834905604564667212659938657937522873578248787646675821664231043762847404037551088853879074355295081204878576900158455461806251384112305169552949685283993160997616598317162595882913264449255833396782752600278213830716128455697175093002721140088734649175088423639609186958735566520629716856925604618491820711670143808826710151777093314594465000023314118897108050827397170767890963519709752466827182633016697793966949062433268441691166269155415389237392787913320419249510971262076796733844512199484695119996858357581043434878644370877334568157818868783670350425861973220319056702375183982153500443092228872241192729870019334612710013274552580237674733877954258604405704733033193322202045930666272189449562629192197729952862216938381206889267575221757676413109665737696602264212008877707615283974861388174906205031560525501092286809665856504486397900393277263094107559666967595615598685263865419267876040925747029334369657377619127040266844927887303842087034275760284671972069421542514141784089790311106295830956239573758954910800422730970178532310062121928323527261881067574673970219953121210333747250530998797123754595562842309089812320501790761240680270914142928267641227997319861810665889389408394914391399435702437687621848797264897456153523782823858017642529425209781102278427301502723953314772587036613710299271814839562730640020394515545533947679251245614088835999353459032786355004554440499088505129032515249512729411900011857125184369184761704106115634375555449144734009877348960849812497804160398636319376085000667623225159207299423266628602911841029992513898588455372793251018620186620034027493677006971062575570204944000499081203583983111102371538320159766120607128670279539609427994389903966929239673116213790921428664209873713640172669240124098866136173588323190846464191978750267637199834590009568507548124679037341163857343390641328255327359077816201106799289152598913849940224670779978580328747332496217265060516253144424420367032292603244987942775924137171194997094073336874692157851019776677049447605580332648864526605233074409234111869875054062981298814194109667540776063068103252719535988087439424106345340405111757029773902320583100921027823796946473283667174727784026575975195562957810247437439956963262165035953442875273259938780572476957551996566366115334222763571536719458615210808287866618917870598105636173533925114251094507328859275628476777140094632916107267692243721121954127072601161130089449003553118195747942610224007685958912727543486344858501898981363603854562126636266906877715710598789741183094067937854711543371780866616512275347199216396112089653392044733883543767733584061038234658920341740849995755371802344355128715024862030402865812844037498002566377799300582364103159817849852318300618569689133653435077917224423340996466114304678578442951627633971577176423019189855877226675213090309822631638052642149705338503655398293252819425337357714203711505791576365976517202833626381689932909834648955132571946938795638562274165826970571739892989743178424909955331885424429546305764646459679653125043354857896580617880158967210120491220705340176123568562679044196089170261614784618953853839802262633257799636517579999139379257926839559681429334596767613817461388953655539201441238446871299337205530681615776899877343354598957432726201465194778370085806933325988963618955358684988702243640729613339949551907680778660988417603771812042239097310184125669163703168937818764800452710094425964473476667907796927837179209493061827496266540235620876699708607827188192548586081248979858352708525583490928397654470349060079281295114277194605392870736811123624751392088369525554575803290758314893370251506794856482496201458380880977431872697382153258679420743408808198420206582017975701308291294595503065731447504364021546683102178668395266264627289578307779826572494117596365208719261035740360168957439522742852951210061797444209292748490486124267866901862462489962077353063451664361984125565614021311653338566081575088289562681405857752356094364175064019795499853110516852614843270585300715799157627723879326733066244349663028894581664430090228679204466251504592633994652126343635556480919492917169735173950505515342186113910679528536152892986214330483792239004954727017906323219802019668230998748502109581203315593095292566935327429847569027810547059771726000438764265873536281453084908027709476847276986707474797513185681244583170441437599986398141800371811890497470337848054156939602982498341164999550705056776651681491839894619434463279123900269851235506355680843772118559393758335316795518285678118085594471665017283851271778043936094039651812533225375022973104480588897036591375012213476857018023887755653514986471964258848639835508131828235011294823790911665378190970898654674599975711732507314068413224979440862014540195105565439773922133823685377155207144985160601485803750547100971969736701170204504317393152388993951985479979029052682870940566151995256385671667181724777696965931779733945733019125724727485746986343247692963337673847487428887879299268052070345806688237781739263848729044721169025321109927874786796491239158120250370622008009019308144038133364891760576563153512427774491988372571693614374200382358867684742748308578629267798158122252034432602289617836323691139767321364734850129275794101075335901453231749479309235477222526776130791433081224015979570561157812963522457201812365491720469244671215985764270783501023474405861725257861335295304523980249381651993011690328236630173899317333684827499397143789033951260863829835484900859492843907608057080930756856548424667282048855261067959105378477828793991243246673937841397373742440504429124768318007681347557764576582866919324072893815383273619245352003116060058966362977206064129240654278685328296913864822931434335094870507369258525180022904506500566076477250593454596571992179621412847109161200545661604803130567393450244119168780526114810422085640476352724704763709697148581861085102635714912719324211226364238497715600257009439715988058432859974569095903413721841253069683679902638908767614523308495042654712330579921923186255509737186866999063161230973577507789287201944065368136977115750364906458874156508647765946085600876951572825259469664711315926852631050414978890262193793728562791191731111699067333761587077587961251155208340908631084070479905985611734866588696390047217533138394952611132397248137820172031621226311775401521996820452534242709869162415123780100982131143521796516346941502580056053348833898618897999609689826936503732602169004934253612076704148886527941338251495845029679227433320919932346358067179994399335224041467244853237257279285276406562494973403696624041070194477591886843037636252782060337969705715191492732964348949237872649516146819186091232103037635526609004963053640671103254388147068209192201893352478298098798206682767015801228838904202123502664303934413275746438146110343055623403125359607936001363260170469495858386771647211832947711632351917847569471981814000914801409545427060268575645014243210562554714015845036170242294881627532193593451139478935990696071895593413665799152281558455756410794230276742030194504586077843678912317571377708265323709497268543694224124764358928854304328815991079587320658227850470522169230331947973589610713465683417526160400241222940922407468955489399472516102383161871978398118857458705856894872220025478108844989485180971208338898973645846569336631462455690951845878245208304305373448974069490653486272577212416528999880456369848371437331180939335845128826624759854969918029328448162399145722056442121115922925811886935256764704142196186236328200621676279314855504834430052528196983450360038764275188608914212269763716251808563240572197431302061582826119257065695647329643844687534214759677666801493140128652102679537854543654059167576715608780821347222671825885244438517023287912972879547373687174457232129448634074754584177042156225333518292254349506893109905564384416292388850989807250934879040540568601446915105668184379332798834777972408231032470404307912051953932786363199164722431083866850299607102747286441582331692365859999646547374398166512942221429514630439179271530635400916110915650350222272497013040059906436383280671773942527692346165261813979601235400763661232199627154678106002811914927569350801309457139590623419806997138293633672403325378583607834537909689288029368170486806831851602035849886385224244656012106106400918606607878010013181041878896196633730053972197904883353985781888549987409456464315426793490050066912188539655022474209435479830913677170406860804160318778033459046610488647891996725179143011590619673898026991345018747435808711147679065262473617189865536231446428209332569994667181840083098799768349854760315025434775882828972451370023929290843850701298159448522742624199162778679907308121186826285058295226159672580490446003611683588744537817446198521300493961194013530404070943382029366942608623707970399780042768649462197486716657674759677674381354713516736754095979216328918519607845564507195706208027590265133323429959041867158840373540899696797989288249027153890008565519252639246343326324728652638797043215329416988969381022469091127254630967261823701568902961853386866907835896214587915401331428323822450467268522268162249187187178655253380552048827880441027094554579432600135684827933208581607266274888739300034731627886911989639203382904927154043870781810419147656771427341293007020344783924633289395935358329196541091244452692816452673525590870242437876358300855681805337091385615211700713934750091453744924847621196437896526998894454126025473862553770340560103090057929541142565580069269049783035412826103511219206780228695909392135721361397529755720097837112721353254216421262154090187822025835463509880059795921875525651273820223749599645910435704676719206054435482375527540052156074630760775660430830677021216322992698138498242289763344484633144970041105704239981696987894155463147355495165835088887009249738722226037501370559268132839412310957451657874035727395347243247626182225215720322400692182940555470398031011270357997191595894957545330374876892487667298138052248892959954117427693483170181605505353577392887337994369402249163748738298861082564134017417582125569461304386498359770047751860278821453875249127772173444834741043552684798460835682022907128026661846603170506594938074209964917828479605766734453834732656001469693922853182692477770887528588983446632996307301484786543660220099612416405157840512591505746877189262958914596129234103375602460836226443216511693363161118116727430176951625265245049282129531770540054910701288571053429103269190965921977395780018079579511239595979926248650137558218942650937949094107701491945212896216535285855461450058472174572471502303284306025336288096730222906074217544132941493760077169552671785001664402441346943619654807178847981450882293683368733764997310016365716398919694692757007853425198579445616062047198398068682567768745054867865010779470567388561363260676087696823095679680324144744768765543275473785288654651968871011272207776954138966019169726979436358839323478371363912808473986561148082937664945261459409319231121196217588326205294457352400832516544532284511774830812376638364890857500264193717795825916012923417738490193319568826806166468732783152455143657210633557730312469931913271507259116940450694035019553530828037775302662316586721853291747871924372822354725972632116425183109025836892947393723508621104674314272791731761962705204892232317485198405286936556875213103641707000364552013743216746376023422212340536452175952252799156678826039686237803125332143504038590719301064328786640221490323020925984678510667267048097246476490543608253711726472441328617288483319823981672637677964666442806678416412175666986138718834691579150367544924877011191379965844318120874468103895328212363346242998862539722593556232773753404026131535140661018902114923275910746744748868136800560615099211243533102089704200374156382493733435513752199496355719926247167684043697906744603250277566662000271298271997517095121645845575985934779455873132354689141067294304068383591333863008538477021929510025868205496481380026139107710229217771844735960688003280568103013524826563587544226867131813220514463457910112855413213696610987214151991381621112225270278385193794952186548185087843173112312035552022761750024968400677109207241414150445918699157190936465020226619647633569505740579945374304763966947410472124443168982568659501210226552727136507233755179755724963079160407375314834547146951240402925820885659673340469454444396092340862357231944856832362054057103282681355973596562089847817262703905315479191394675897655506084077928314393980434364839342020271606934864990283561844370988305803405167845199895070132072252368850947751623434032063716728103992496501131303013933402949300978413093835093171775493209437459527284118535362216092048214359952565769844353908709876523418320867196624626808012027005193579636994485859474278947960786148448658704202086108532963390096912880794640933705499044419215820396098746530228313741728532531959262425305275482208024436282426723329203354284253702648554789992108686309628562365884241252586921765614653380334022013650912526919267287859535799461014773435891378921153755385284750612372629362355830031619903343812896151509143903768861078259503443795748773349182525053912868745174331662435919136825546420655109677285601693280523896504691983054884747222012434922025543423459722833926686834450135584910178559867761474889269285097132410759672814259020386982511726765535404062021197693964252405419096430635489510660259422060003447623200571551992290977693203446895356658197516059266848094636992236916235476300860387871653323722093623910474681230006173921560378613540331672182809306542404048869554409231258703220444763296169512756598877000680744658550811472205960691533274682174140545782257029463820894792519966714488229258116225465105011044652891751379341453164299869398763845265008301690898195303009016483426702550821442959570056136272325001855525118693684154035004256566201438031934796600897028789938958711204713351139574637180165927577733227134666438190019784924205501049871636169090386786429743199452187702990267391181468958975814546594558105658856841966206252957641177866574898789386504311542288498638940137810050481660434095659513861773959383548968552849960346259070475310096924988969197015135419194455923265690795331107865610178557875568525739788975530134799306129230325642503413914291586128554757548615688395695724251501890431172638173738450016300041167416149372410105696504589007438206394615532741286791643755953177702399567965249253089253117423737028641342406772190519335046564879535306033748394089622227776061011984051009531218570594619976817352167534496286971604915651785553536072964855635812152509094067289979630954398764320490462729477082859387662276110084365887330035330129110610852886891179493357199126504641753614649751846344382677884391605481458553517962859860287197605823121403899782385876234643266471105345690220814447785267141188677995338260105223950673646983707834742833730607422791845767335620134516380061346127307206997242830284200439327716231830777118094048874272773056474217597680271519358313333666621292315445472556654461767441045083774349185469355089404284446968991704499916441959896094461532339175051500847801086328623730604685560378291085496865274472959809260372723852539917468206360947836997870308588021139547782419284113699617059395736217324176205438565982895247546693931273313936422219373480124746621261099541327921905320336312230336261027564039377665718157367905842942715708196131774955786640113495627413880685880853459743531760694330377538952624169067562497272919939294094908364417875926469778693287180724783643029245461527135639077101385712032537665040373215871613347978670869682522479319643891995248299284597238497216568982694613594064381362765956715890186340339987504548080814000907670669400388061627452937956435707121720180211600421856052027671095094145943698235999552090290275713720966332546216160436409626455245757755818381125591786471767185482130046443872819623509319587892156749009743102880427145423147357794345068657325718214020288577266397192256106742487881569368990726395849457461469128660704746056488812713638611841471653709150645830261492241066737244189308033432312230470673789451234129342681381359296226763628524186129284544607342144088634113439769539131314775525450658527229051388637534933608696189865180246518279953022300798961086137097123051386832994743037012671553123968060228721415888738575495848661179306036443239185046973430275971373988947915277263017368328752407475911428672233061673803228668807826000225151430111060316883745752685207943264650164614037460781939601252903587059726458413353243341509904514536116594791548670370157846173037610724497283253468356243219546163068035604593500640381736809045390222448856086339132532429536965191588036331537586942055112117040581381720229640050336141432360324590369012544039779165391040232953209418600629102791164499534815139078629172432664862238584995486021597512270495313083107200186993619833178548245035238727060976775924348219801382067920356820894710104623070123611330416902310366586113131452387929621630834436565677654300817505943495939776560612186768958973906459631032423748705145658540212891871471955000050740099241269772112119726753349173782719024880554841426435220413666361939888684632329353468455911722822208679833908486592481396403757459121875045749063158683250889947955596956320504234780944277693759367107756387109948488436041496288795482059548529047262501552873438196962102081709290966390730264863096543579256534409615682009840268044831171943022066040873078758026269882340803217228918868650518712347238703404079187663372875961531721345993856671908622361911694364478583487240947126115817520110419844519211693548788935396748859629260902377868573341848005664931230650329043483158650640198491067398707679701952674845676271714355359449566587361342878722183484693196367163991962319498921247242425708807161215472416431247157111583393981654571463733986103690154359165367911361910986574536481985810321613618587955273272952462826998431015548893688482777898691235703031407564165785540406297218482464502309229329968008220368617089289338330728652071788484892567025270682021098443018928831405867112250346845819547351286210911048149903846538793072141597769675238136202924962526414149137025329882405783059950697200777914768694737092484249382212326048676877735172527653750434320625225568684431761331755131180616877538485393583937918676272951329341560801739131688557650047741168111261833115590525456309560421058336695454768997575313607199134142293631354436805334833633409870496245319965260198290507572395980498396026653120579350649601915104956133263446648872638779087323958281572963701075530677125074362705569113254411980750353752735975826168533358906296160924692016374904923829719120811437308106529674610171666341692281356151379033905727773458420205133799328131647037913506194427171854586121678644211047599450149652311917438280809570562117314256821291790036711399816581029664370197812439400441252745649395325478533160272831191483668781691251043607383916427988581400778877844628840013899906435920826137114463961187505713467268281821178977134700292014471039241785670511301335609709118043181301573584381357726642729332828370392004624663411139049111769355778376705288461171489764113527644580681168449289144255945995229813746619533821601769556086464708294825546519880788467623336774074314411300454980424640563833618305801759062151133670625001871901200853269791058994569260282150789971079058189415808470218813885530797112517222707165677834552741339076952300689756010927194979943763779774013058699985131462076554028176558838496276402575764422465893245702009976058994042928824692133824732071479410852555832046855362631866866966688774504250568380855373359927380452191888475220827181930053840444467754759197941611870500770786757327800343728552765411014722861908832855514707106601277200910976633926568517938494875887040057856213741921822476081490033000315983112787077134547000418305230211553922490273122943572936837521512978598385544833451749793259765191877776762347955679845200457539257331129652763816983214518788130823203843241439306224366306632590079012326042596458966599536186116062855314914305221596788549092015940675433507564851247673863433741157828540812313924131121893415135167909790383980056170551808370440722964435767593816678695716763262971014869172723025811499291590104695469653000033144286959753669907660824246589694880298778560721875716829208366660506134074241408075037768844223853975527495045456757063757130396915108068497627701177198203329455611382455201003005348235178414058919582738567068345026283420550218275298819611361931122742976658338925948385959249690661630064749968492532702863164002952788063617876469142521082825571411461317191186019769761351879284433588591047868391966826023937751692363965974064428750784566114548459045140263050414580347175240552481517401518207917691049821584458496266270592412412794955442097649348159547009499216478170874163791061159700247812594480429185405429500825985195305039027994775773454861530856991620764819226888501273704306503350884161108216596196480557081336942371219106744552278503168746625344190875930305529225586681857092343064651886530067295239730765484097039858056932942791980116598816252947353100239563379407964276392210617972272070774863908946117417858122196837591291166166707668253827910291465543585655320852539114516890405076655974494540895694389568702501347969407605481524432378727847918314417271051186207820177824669068297552191045963222412812683709688485082168741223327739518648416698062560118330848021276270573415032450817241221032397411785757843012453976536351492667627753888940589240233987097135264035246545277447513070033184232151684587184406677796903032177144273956049917093572852900024759043776546598875890142852834653172581074953390120474205047297748784004746450924046864811942248524444800220301326531384227189863678994610528759652304134867398356131551985389211155275779933741046177753351873676704311565782618408523352770330993715376649808264885074398597508941654597651552037631446736305463458343199594377078245119786921740955220176306937292647081872591887037977581720570187425525999783927072814344095606931806632155917365684284692869405521355331377516312451572076617046637706448484373460205869268893136895269265619729186269837604753910767880928534680052900470287337683728512067370831188906224146868028236068044351602426860463806146530319798259728122309568221903278871784802082842804857880698500981579384508957323643048563016847198092824691389213584117558583506656962960754849391521415330743719985739785175105393998013002243642544914967139428457415922247578834269366025993606684042773372262967356492118721213638328385065669398346257607989042672758556913629473345555550180471087184807609379727989285040271104760571510025093771566463954504495878379636216252791299797319715219047943116345971387363643053707215242198665613754935526165090373985920479323054069986406911065604563934137606288261307081836760017752158558014991382350348703891943149702770077564655485487743775749163225570568481831122834286261253002194415790201507646869727742926167823434159850182933590906818214477987179991289327859587802619144129089090304255273174773479203176808041080651980155109473278963322189589313983292058277385453576285104663300540200223521041676887505206925455289330828830593037066472587177047542240957946405743249261805049207472729489545101390818537264126763065184873539498988822551793997475219893316914395126268738976329946572917226998156326813386025737051329212477466141486000348340165566209658180822352344466878643557999839072565443614174987270513843131092920012094933765297994336583558284859807358353528990954787075931119629644332332402271838276236721213410646573943526469003176670104455459125115808257856366818664500535004763709376363840127212633619475063667922518278317647149888679503700014235259535283528938315350641991461033280952736912726240320188193079736307488986629000292685609981611915650773254752892722053742262578459762757304349147744882961955728035635610845814942350974348937828419296788111739934269123400789677540579729629065447870528232510846969589410631683942929812269600978208625397313198802371159732016898391651537753007071022656142533346844299419433405407017219862800027233003563571265369942783688562115622944732578534278059420238620244620229087621231577120568971825990530881025535955284744591975550466375977691395199870914025998579506010059487001262832274653435105044624317289948398877148671514193439107874107915323982184025209128159604138764403189129176670332829387380827256652384176453390661153184068314050055815200779726779890140061810823973835690410312882367389061142418057960236240796000947779960534715500827457017365348871530149403201261579678592365674242761461671744824291478925825193641631318074124528435793271327158520541162406900095324646288318318148969143962857317508729987960528257207033502443787577103367439860396181288621362688929287966801729836557086853575905208496694337442240129358286134860526586564535023932590164976791766659882904768923194609415355559757822472872281601269890616547422472248525966339486930994360265071487661068080306049419239900586583281644617511629073467162009050086257389121926636126192180573603182199634850806567000323651097104646288211852256094971371443647038188461837752792019717646051269737608659546459070032326009969750390306006564014140527779157185755091922640429120658986778087696057631293440479919984114828758830075840384013095931448070685771195064226243317850480505470145045420091264655123299720139540965054699164070611226848851315381482417798627230576641284800359030398891497286705774799752692773743939419817849490404859665718892436915499317537136700729515618744905577407012107974476738010653925120927030163669612842243420256240679661367855185516846154278797637909098498327220653859570444426796770975198032155178881504576150677432536344095149733897889257012333554942571522705077244767669914105186516157406532968593189401631140019073626604682871588199117137902927473197149775305961308736176209298147908790307530541064159001341851537142036667074796905448075855800503636188294949399043976825008216570505524049615054003607940680726581959132197450139898208519433886511277252992858715654854589680380854186047087950392337894752827739057864210823016775576454440096603620322074025485896481430658580016478912161739070880125771393463345694516539525638756830320140488748722743205780379205404139603351640385054702087285181999986241424272582238766424007202364635449459234389913900255057100168524407637148783153706708500473655895488060512447347811353357338164418518847468559983113756527228543221738231409409594017699284926300782231351330847695675172527648856273130462969423084919409218334686414526054715515617034173272538334939130662081487963107797978732252187670919024931854813749383281317236115017656176050285594371786142626504041829094678008748897483870745749845129811989487196699644507914530317611031822056132763503838733661451024333010498791564342371118633940066445751525051379562943374425265141213831620254875454939540780490043658600271694746452578892057185298119900546482239769052264126743026290045035058346538040351169791824521378198044877533486571250807392695886031358416980899763402478832651270510885921417399425987366661270100563436042728978372552794747601155994344341319231436883701932593163272799048872080130316237663948702815221190992087753605501444907145138457535337321001577647481883814780348699762403052510615436897680259758767947773209152914792093731096611099941168129337504768784476185579139903045047171287515937658601399803826102751251980852954892265011938166707145189790909492360587171867624745841761258926994449412320467477352402485220325858752665310582523968325676227689891761400800931978834877390771708847476441760329793320248713244741867326223402008301838889256314176734616753331570696844198074497621143650353802034002329482294126367107922364297226648299490175096411617992472385778205483777197942639890815196130057293805915130474637527695129891587791588134180286405368259521109554440092987654575770108281321527473077746357953506640269767735010373542602345454245780349147350213993516052608559632287789073083319005670022720218382759087645418003148095543502985439092573902372307411647942257302809227893567194159768467911056161308887411050287937666715850616670766849834890294061158691289404619783283738504591405114270290935854533192151197314479759488195943310945389065575994035293363404640678065500354041741139540962771864465158357693782910978805644452191887859018931693277127195663374937266069817566287405597352045686302669146338751117066163495408565628625843979258815566796709095383991529321292425753560714567814998604111362330755237932724541284500046486994846082085684316625212013121027853592030179616958199137205089004427944383331935724265278101543808245837133746368471813241513242672379149999952084293297462789856448200993237594660124488116469455827694645360133450769163763196454711556795581053923592035657599140549456569481989612543041217165399797815448535279056675665184168325864890522663808396153243154360093804961028457656028806325125184552848362985972335561802659604842491739735105021607372528168595934708136364931236718709922807235634102612702764932902048119536221941209026552163480876385341242410513555024433540535390197632402394446718722704183211690411499446669752688973309988393043431102495739867960699180362184860485612854732724170626152303396266487475631446001075833278877775673510232455667345200964082269831063749219460297808375161186777562729240428041903509973930947241136680433363084597047407438712718384925601518542228948218801942630782181132394645329818357879225482511356642202193052307443134709964175326392465944863253895323207864311164092608972848865887753838769538348538238930875790325776153994748828549353471812690321703112878191840461917528382731136301481606151134698221727409145412857733116553929160941529521719017427898017915952843586540267370680839408025158134376243978152564791936789356617103691723356013776888626342963080395466290408000433281281012458227453887105113710612665550410526115576147205655136888270441509140985688509573705227595741345162376603001560225721735969904337240775225507830613412504030168315792996298783199685464919388080679112464763311056488783918219835441980487787695259784776014833879583912700945856008852528249023230583553528145485855679717316534049346279440870182595907751958338192960998157564570858720588026479043869421083270489413354274276654073273727024176772308303763450448518489810349294576605898384472634972891928732420318713421353292009025332634291857815120255110620405332019138511961273861001797009881884866341607348803795985862434228436699560013049067476985394585684510431619575652850636551677906166302547949492713950140918115092679821998419149670630564085824504615332314017468998768039935763811747391293097801991447607174951433328199106807419191274100682229815131508439448232704733932931572888002162636640553356048904517600537909677650350315261918226645547895575859341445949872994697954676751963199600952710197952732355516871753982658245104125178002694379479535091311185696267176228138616509065368905917061219725229368958854390532547987276630902334149049125183286775359695381715846374753176254512559228568587771455630036676458207756338774465248542647251232623241410146118970436342378288793829526136658396310999753408913972425330301874532982245294636421643619310588188750647145912247517341227653939287729751642327745466203202063064724158658216599984815560729175062384629851573732832865502152654209298285434248192316370348290146092832210455209456317576368467965156391797457144840996623889323523414299371527272874370808342367894653587066445449732189277319126244270923718982552319723936601162215918943855079433050292679384734369950355952081198867281729535513357583655005004998941751258874353595063271137538201384386473137676837628719631225216725438921231021869156102154800785976683758702531023561075127016586583356611136266947216066554162428245335357202738114959621537380626469963519029510287905425292504070949729503387611261370340328700789071044876677200721075350317463267409432919976523393566835793519955825325064458878713973016611069436833260695512189473700618804636240524685113032984257214900945440024799785084314655419544781088640015243169747471527941912480785770357026285170296756837875305563588681740420931113568900439487381635393039951828135461065864261895418150189089715389751262278062151199523253258583824775967956450164890512734383080586135476926302259223101928253999424661233103357067077626542763356313433073471346673770001948734059107026762189510226171036809430939381812976495382880712656301657856342486673902505775844439699386682471763495183675886446293798363905128611508596682242549448128821254118432019420453483294730914808040280708474329787759996230955418878914221391455460453233953150340286596406554111469574937630458089015952598058430368302117055637261698600561464337536993289149973429018906404054119141087099814668108523054798345415621618646776744174450590804840654261000590697157596433849921143771336835003317626713512546031883742992724513441969603416534990186686294637411190735255722480384191018248433539700780844159994848688750474169184223459618231177467661155280758906732181785520371759564856370571557551492580287080023544805341351574317614905770080659789587662547452282982867066676676183064777440086634979320657541439008316831400557959797679824504822777692784547548618686629873330222538593175720147864400725752711006622443362752201407544731929353453306315179156526051784645727888124323200211573453746327649946030513945445734713005234638285875489093341896655008573583374771507844746715791272912608481779368933088668121117161932529486577477994955905041827711187802665435112373689824849381266213736397015111646356285111612518430166735137310176723698755975238968152056643537351014367276592318220393939717871068246107661989893535768807080296311676716544548232718092564222729611459571466132409070531122023309701259199358860205348230967546842886006615680262473677368881969870545088282003568971619698494330191142633352687561714675045013996814548950367294227789526355816056919963096199736326695225408408116589923905349697535502882549260395588713139050079958143139192985842484116950176399645262410610533745250842055645884841057381411772307981743931663685320679368274743693044129341802909669455446302364909938911776033151377433289034280794817845029987413911943250967602798543863933975067051071047799765317034677864984929249195101555524828103368907958715246365058430337612827160527110863883031446185596843908569280714789475677342924626244021028872045645421708256365184429822657933969093452224419214068463935383515605902237561379759026406447071045251918845209017055409062346843506991516620547577874180328780691363508761878528760261061229400102048441648721052590116263564595635300380510660763361797327565127382268085677464630985970441492861627330328339322407363117077259433612656598202710898110819797865111682720314984223672302333382764670520316583750607503347185249256546460248956205054986339659779166237669594709352485356978543989851926224886686934893339178173892180426632170800439583441447365441656019698857458814204161282128774340298350454236769918820413817528738163982269289525381781079160646058365475850428019755201632314001751653305080853280975404194177849576457010448687639449163194433938313144808652149734631273320253776900288856374342501795556261217034888507481011610744512850630960311348148694672996962585046128489407849895234255460038389725277991116071365306801050878567001978454335968625301647090406127109888836720041612890985654960234721126338687877847582791340086410922559168523164379461710858217949625852543838555387354528069425195855722775545596067754694294357580115449676809385115525269832121798967230245277254375080689468744377336992836577466133664746172465089722823630004155504131013380560228658247007266074630013468628791323184081879044536438020675618834781232245284282328111019856570985631205592957963920651948773453301133041295109958554121345757189770160818390552825643841348595887492163731169115507246158350807870768896129106090156339645170053558083007218791544472583287828432510691300519212593240671568777549006835637295486779173047671162031038088965700584487924120579064832433328597775450718215632841432309910414960822369093356827560243593006508871153486801332571309564211676399316115414233243042221699024595068304377470721164542619030831188352191788880892675259982144173545099705335046552264910571180099666673649665381485167971984677685030198854623973166403169854862782658036270163247360605596484101965426099694193504610603173621187286091881374498298524598249091266740399779443681286871290318317931437883945326775450659862843037720498101975091206416457143363520468793939150291738304097560619776694799964142202890143481341880652552079292625282953429021825534012400838786354712357844653011146026198532200390954970800669812526193220293000723109864584547963216032891540905916847765316151390122246924912073434863368257194201705236006150517079221198042443881470336265698031187637209576746920020185574065647303439587806994562064789375700583296838013421409072597793911168520747931867172249156092116297557197992847181881357715492145362847562259243925910844912761218925265593026019492237239625021410551243105007495806319645416459521193874563406586136004990824729601123473604766502576375648204233819997698143477901546281586756483784352483238531561680967055362315057476633829223045645895666859500193124659842027146382499801271050226859843928062407826102748770110406230813135210912719420380316829091350438439430978626740693693635291989492394883603360890820769542377866905856013029526556604265486143109022161031582997026195464161160729646761514635966968383167669353904400072163629215778453130441403457759737817817648623371163295516970612938593636955014872429851044963479414961869710355248147606584569178540439461229894604662660826096778049249378184856589482090257075574780028397011737414202476951627804953185332703670412143950911244865330923147691844474679095261410062907510926556114840521140195876420217224875493127855140919461018397001394054654703613383615321331326487798261832945199534814177754459116141304914149943916771262775845022539565173305892760128901610990731526277113552116886757451094125106543454124388134946873638259127954288470595063651832385157522951541113827585034131155077896854958092664540630708186318270136242878343543313341392990395453798129037461505473158122866851611859429541936464809145200292501264736872936067914931567947678022313325764772759197348625367764594655730208469932033723443771440249922020308200804091788088998262576215297687261676414977879133143355149343122446238966793567715371956575519105406961744640993099990383437269328283884408740779050041316963087293288348688997113562924898425153253291210344834194092256591690946659101874322748518033194008872045708787870962345093652878624650921386143683213131342844245731097974965484515052142656643656514891340048118967647490086831311326382770898127918236833125968788015191156590390946798084259953247930563800785822699400864372474997250530316264340026334196544216212492906546981927775422896575916032791962890607482775153716129032156729462054422201437402494362638511023142609940008728473467911899810261755221049623440939150098742356240653097129243769892621903832435007028902535641915307422432851608436588799761576310939986333115411382866139588738947193416055091987680190481962737290082753491370453126425562290018479185058262586838818089944014470036238224216278690462952102071829650947504794147937679618600410437393504078606951144660147856099540367458546352992569973123370635963231035133843038951050773711110748456161161942499730369665122262264848115497951443616861488935503716172970817362888928469742983532305846671271955426087664688479733708105242074942923535426385958427989825256669094926887032740136658730589631333294419090231600721041636949061506738089642398692585824822253272955848999087026364362709740675000163121947262347665149947425559118578613777085416048525547574326551727736740363563256562827788180636142414574149368522902795180658975851909264085896590101989079458000655337155442891342457036574833738186907109592887856209621067035933370212420036016789097238575032082902957305205912903595324448050732391960103967638227256662373712250419052294516109121056669215238064023332771439041029102251702073954660170431313494987512772825804673990840921777013151332782496501423042008271694058162163035808400423668423908589482759197873656175238374204528840436719002360148906381473552474123269034120854924392714488738539064831461187776607191327146906280162826654111620675355990348388559819834340227431194623816329903710103790664714480605152797561672572637453091790263525754210622394454138488449311876717952594042268072985978129635966043956927648625709043219657967149252280616485094980204695374692653203248227529995280461955617020563026276879168474743458775951601529741984591819547999106316169255647294932863391028685814817243214627419192464218095002441603582461997396124502980363582797380811070457734240187934404948302807005440753921060242752321846797763401165973436315537622350807516309840552145903551355055297697538561571523583159319424146454116481195851901526625688606407953312219679536690667979123471862135674126494046655879636855030751480652763889260658112838771281747314604814783728674251201771949361691718182138745402731335534934621242505927636417022795999985508028167214637861909117078427771788950635814014337766921087412040032692206798348795091635370992370843671126211395879944181101939656308866647434033679111960373919625430513438144156068718605813632265933970813331210265865341523539510420669274070450521559117741168163004063663184560081857900462839736585890580332367152496570350947894983610311758903577378056117352396191605341904871868901305174515726365666442039196125437272752514564110137450377747430096354344487747921911966695441292180947214225534921105160219902870700082792977822002420166913654839997276789266442056705257452513580461495913327147396597280919107670307856061718734049220440954081356329955016276230587075349438638654883808538115449165596449215651957437895723562445998049740941498755720363640014853551124206770149532119425632597610932021446434428785331987387456616587811119661645441616142370248435629083475783781962470981886814724662009950722538433262310533868945907948389291420664012172312343090574129774895075081860386369910121045853630214519673927679987077865111032741270516451959031833779913301158686277814788061844188047572182609283206977321089585881734156612007785185113352076127000896660812890873202449900075671490854546781260597307149883298820379964741319900955468274511418297206506589169918013077040298335283225577138832808770679595161301979834034228570742824609563988022488104735332450372626411868499841864509065801711663506235592148871166874470250867179667722822750800065106796423727914548210988316068634923546038893161668146984456634387209154511868212236593391424533821570514003811462256674922812402198055884817810469742556181124031451192448025693287935695246314187274527190130450101259163961812709864116779759263786498830606555666018443235782683488444408292510003637054881657889595128971924025750186434138560584074028757865994921383434724798292567858191971841424609647466547473491111459994899958199712357613881660534384471047982987340804359322715118757275541725539664511365730226103737562963814504722772732138944864314242595753715244597406980387386801093019371882076551407304959776369049316312212965427487870191720351380428162983354930502043318574727875736783142740176305835348357992926232342587521620139734366965367903220247290625630098319303160729538952527091819899140348374505279600368514224854196118405760419435793021354771618285108201737582091630104744341876674378971472150130389349485900666514107026686780796514144157064137798280830392561446628549139430964850879255854289533540887341632747377902020881364027943070287259352617574443901182286477912035768385889081556319435119836092617354954124092329164151102561455644600114121523626518042207148174359369070824959005701956186669275449753074942772947274099897179959562200579995332417888912505910875321942642976090221395538659373845945065394573180181399662567797991186451324816671121822958914017320738554639312785001624232845073217168845306870351450286994973101945729767059542478610153157711515753164424436083865391083259199150779928221371668755349316141499720083075843312176134838659530841259346622474833315699599150045459961958551669022844917132071427067078707481817282842443302020949774886008011633833071773728783501441718323940169496906761976741189154357884621386107180518035595934329986696076982384678699513758904987448307312644704473622191795503128040589599883444250470034537118104727885152520885276294391047519490427533064987630536012981530214959671884056353805457465445080262146128463152298528268401668084615131580565328137300450876292126981426824231976340948509687587070998878538617695920704900890454866917707363104094567355071700901857908794361868176116900328637448022496551612329212839470151767632360296133089869467119180096015481519140560798366353823978921075679615332348979826087636118121641510210499372768320418398797033544902242631035900163523009177674253198236107696793705089399210271100944734795195771293576442711212523854087183212431200463373516384161430488574109910289017959108692379003793849753683503204974716538587809903644343657755850111730981179092287994862859466454955614539324217101600856973864026694531633665801334467671608254041168957832867144998667425647530826645564236123053163173135130667137675605496808212865306471140268644549103443440686057912243337390528127017672706069491965731145524650753509610156400425420677157861368592539572726087251205212975256680299474333913740812945302489843400916937995441281050074650119756122211238989036016793973073825342694369703429210303231757687301906968526346768490303618319970518073178228442987112750634345537533811350989885795422848390905446910862872483620069387013586052828424246430417305555483656078647680527618714242178734980074135889358277848217935913150097039785463878208438160529402288840162736270087648283526620385411393780797774497373572205366584236159533707975760096069962806009100428178925853789820668480311412530223389928319838181015236043443299931042315651956106614945994508707315076144667396562731719765914964964371287579371158705972994898346704595185830267530850829087002870177991586482414830670407072552878991128464754679421011079839049503208469125724521750896676088885897336042282365072946986849862935751978577932087158957439506059115449567402840829839962330265981764868507970967927909437008568276583974401270789254210522045594976644971483432412428269560930636525420306710009603192958689997081644683012988865173150695857245560536184063644865081094020954166046614846263696411113805189228601826017174017460455332643668819040737755884887294695050453155694122366081056179794603761773566860096856978572592243492347512729305701993978311846587698864146302928425414603779177371425725085205961354915144015437691608301291326026028295965371314613549896842043856362945515928473408159157818964473603534335605490351939736646855446285689624324982847427975948743296257182415550215865962428076610164046110297933932117215468066097187715025093527321188077982750331896475827729593389525044588028663357528734779293949088028214245895626902657610854421895407160157629547044163800358098580805814869261750433248607745162926945935256389294738983460370781413749101196241701660830423217695572123687468548066503047004465996819635476211238670036253011989060221427738280926151139011053229386669727038651991207074083548383508871615165383887824766336334849966596631989836025842914719940666498403197147403482318775571797043849613976841575562751344493245275450786525983913551917055154585007784713841861750097470105201997189916500834189108782401890650911883219692292677688631748675625098568099839666264125375201021771230340588662409284187009895583596979154714542740553480223202104623423984369272774907734388310224719933431452316030814001764955915802989350158260903267149046010885435679957843556901309916256931231803675680659094838417123023529286704982830704924826744577590120914542130585298486984478403303682158673069531251998209208789388355688755519829753038236730026832353090265258115868234310262273064505614654741116254435548062993409675838777713705069269163655019141667193183019659498219873414821817039104825770493763837609625671227378164739448413373461285790085767546581617342796965050382177060980778314940154921072764721636466444792872922036172094103594299044557926626021888906885529943995427264490283426042991279946832214767175980766757702027424948237126318684010068496527364609907550364978536687787976572090327850406697980159341834708915566934399568268670158357093441648212349757275824216650373096065242426229187804812448694646738575627518244786927266701951771641112713756219631042370967983141833783188715536670779576381885710589842119208318711218132970465190079937635698194194135139173034460759282136166090345682084639680088939496591139855408312337416815584552666173115309271210802587637457008688041749091565894475193840010039235849853796287484897580236875194248023736626285051232433149683536751364656014061755009564291116077003362952464900295678051038369674069284592339816963270815842549671676813453533513204903994818721487016343094443725168130291130565651441150688867544329070414234166649492758112775420029255107208071186541897731839154742903152699036376378753968076528928577438313820320546187741513422040826541625022029827957480846724518215289271400700091955811867429302814849489002922221944417682256673571307371043894534730407217626196478602061360059507508380164678739564380211897016751545403391500728856901222561044540282037878485805597281562765277751541924341490293565359030117108818352389751641596376584638212511088427571288860907305498415996986025857635512190813735766985992202533513733514828751091897888118673583944747935126307146274011646539828209337060395345066226835034927858214030994066348024658517674015177931141161226947387232208213156500761193753481969428848642401504386492175780892249461101756550824199472702577914770564934664516739202486547002202565013268305016333546896873423756425891747582665394427501250023577175334010102734494758992401125073882504990638854908398187426795049323627885775166467112741790627695767058282438664039384273970984479046966736974236848637309352433227117977200239047330969516615044901810610069831640666161126111500994365966267528441969599466999125592412210730859217803581173187270225167960408924493350900925323994066054949988607740558711046420880146529724681892689472325168462695210050862868257351136087012618942535819987766431278985962168570043985149101442990613521136953711092032827437613889518267485647996936834319035696775710192689001710675333645762928053740721106417701995447812715932914600502948542537171458804198597702747242843806782692574422040877033347400445293408951413042724307297055374451713311412028614758664325215652870519011581102564904289818206954876921862832480740160822484642659558217934872491430536099698361210415587631095447385970916867945044693767159728949175550464506147754158166040942114377849580454766246892471223737331547739570786827073268585116331088428967676069319126738546674933332478351390251986649916734576981508802634662099059507311457311401720723723267063017394281131027387914657033052353547966584910860108771985614816363782468996314701268025372127716290971347783777548683548814454058938524990753408434786701970972609096929032251363414935417669625447588208707879414358288788403614680194853196600097627779753655212231243268205912515128250596524181795042070858631711773011747190056382791448626298575012317477827793840527249528867977268220962796938959797689408733691446996785329622428387394685457847505048890650067437194382694646766939038619263122995868073228820902939529080749411183355254443359515464667063036601501380860031565053577106690396833078812123272949541355337330666615054023582139180241800427728198300964697037402945598028507385229215303296362595963223763752222647601980625394708307939738066949106600898774572645837262153946525579279985980871765595469150768991713008526076359429681939071676401631532714176912386747548556686900563636142708023605418077869907987276410368266236033880995302938893844718008867533765176517333639595772881895719471280636659024587330095377652403618357277471710745978737206672318927333496354762861880356708875100335232488033484197619366834999891259692788474437797500720262047223841611428675488272186712018486487216936901909860646599194762253079416316469736367340991238489580090383459080205102622729604753674741302127482339070574994131448454156669219882854444627757400947210506846433003244048717563711852530102934664414454172085610631580465120708725267192502452051620326400838854715298815414635433185777539481273704378606535529589772405082500600752602430975098441074884507670698534323178023894241637934176538186520860055043813388451933310771329954206860633572670564994560152663630435123053084191689548983946477616180892474847136099537515922454844876818032917974524973940482340861316546025984861466811480445411644748910059138996598795451075139524817251971123654438651277272483653710770358232741596431552034956560740859347419061446593451232344730800565084253844643686551778986209034175181830299632706231939275203514398257103910386366178148012922263868549937248289208242690066835890925432844420811799836657549772701724583711291689895735813210367924848099177116033924251956078936093896044135555388644225585266770632742677100952316111442883972826583557509798047472295955943184036565794951985092350917205345636480700120169957360540285960426237457857926460043146518653518358340802473677665850822899560786887822927250084680136304084663895896165335278801485969586196917164139006966629895608787957316302745316711782466426587779220086769367737124412250206658219210480977257550443402875604082939075227881342825232894690653228446688151650161244238661713844052456323541356928784509315602353951352045632580180628380628387419259588484496113615982172342523279556913201954966537357037691234291275919043641276506488277247214649281935249100242359165389137082217816518763388684670870052664487579347749590621613137214200472816687467565583352894638882378082389680032554769356598628393215411668874036665286745325035796031358310615798172160945398890793148698431131535168963694045090223875694573942475617346202193302546132980880051668422024014170742744660983756074941442007367378458059086151201228200667080132590316957755365811163093556332493217996967963707047585918412352391965184812490928411965207892304760367369287352123099251127969622290793049544285418488175165472054565153449076389849220413601924741326532504633838739332102076413327699282039605789773735020989657285425915536848778169841149825024512145723755156685147026680082900253471063061107879179980783081654090450108143058136257437430451677389999890839935777359706020387810125300185030722589079852539834879015794586185530802698142454658934156373874729764731202846383178346768309416078433080493607928725441974144136703802016451977904585942281892044936768889957653412941365887279039809271886065897418799471347459107522488249250609246270185649844557366936583117050221333480509781656356444430469674784320945433056639264448341762923251030309581985525861740618861937289276457215749076999695842734733694742198347407450180487261231596630822340563165211722360652076087473974622597619761986317751869693389891160077756150496405646961174391111195432321969195526218642320940260092525949912836297898756695917787461103192152073961311417425815132742816049597339338437715983755081175199074097347133793521242220890192104734810795452370018117472540207250423031326093763764017885436792355725444608887189548163306001979202389035531757394324857095831623634709552727841310490503765724449589647696146479880679688056015729363063746494837634739296681891105377231123778795464780567500122931785384644985965716794757947144319668054023124897263348271144850735027961703573591266342814808934433926349051051027856611811178326658392840253821181356020873050573900635658383235989920717329091470147872361853357914221415230463075004387402281423867909272157074198181363947081273129481561784387499109754272372956952267581782797520729279296147182191277361542063182425893706375013434064636614576351204749555622718333561604728121845902949565047234629585487134902746102449029956051367827386150884364295082761830917884380145511196152945877914547115854953341869587391137186176952242210366242999030996429146429913890597182249666865787616776322848560335767468799528576886799509435422225718907197201640206566415583408522903066087174180253474313699847625005325632098227475623156376933692898159109607058080373270151510453258137525791114917910900026934183240843821798977067910277354340449528073404311615924789777377644539831593485544558535765360643867107051176758697369280009680764351872998183494102882149325293403599978817141482931113707590854392889859668177824521387153751214117491298256813642944714070295460676519855683083481767453535973256244348780700411751448201399027366528689485183647232617745074592252401400837364530272739014198992739760334885566714483209371541885790423280228642797154967141191576695794940226471579011043463434996357230039779360432480159074841296741115207237918179039755173248345093248938025468635227284412077919514815986119636379581753384166676076482137154996078951025113760596368751400893308175932016515514143680451282753048149988548277927549564286711603823675796109260254669468917740221506046384122331445309879892490524711668408447690192978466180022127009519100406239444698283531092170115149434107094996057575797534224786380510610893922586746448186925846288776465383642269655722671243092943111918804164428829827632629835017725888485526428055034073543597758340029348720950466938788788090858719321873782561283702567326351066845432566446005469608282041274961547872629780549615434593474558390940898818486986747267871629761070369367853797085903942882983156551589213080596378081766142272720516066130849936069026276069318833465772416736955568066881130855777958495002757461903696457469924819779942151236689545952861016024005741507826180317203408385429039938277853193443108420796775584080480888205108417515453664531189492083436834015602758690614842661596679697267117173495416566366465970097665998310817629800674870904404609647929075162498622524219487705482335821784667562415240215061965542556562635940637346443306038956301669755161310771835881740267075138116112781950163394856891115121533184792886370532092830481690209142735145662816400751169561402895971312805923937558658099902537693738552693536441071998742972890201572241538401893652788966269557686889389969314195265257762207795155107201419921604106461279258894190793110295169061264450924862472287940350241528076431203555445993757999057653542456223230427734806352760106589478367012223705802627092386714325694123144009286396529946683853278438443315310664901325821538543582732875726774971585376751776675666359496685400576420451365025252057116093052370116495812758568678925765664642470465712441241574953545435105425286735590299125732211791209745637744840921546609998879342539322670315260834220523206560504155643452628239666112891142355796803633809895128634768946116012844189888337108895926940558310916818583272853672017491371941069587601658798688142013474440077809343157852878390709423675292690637038219360458130397840367007890895980240359304300485967129408501440396764532902407255348678724883389446115013543292372559785179012603757518319944861805203101861103913753072398375783718123881352064683454825542183617374326791152444710825063220741608146582643102943991391299178868499989856369163533796877245503575112142200962565804770283743853221698035847464761800143589949525180101833852022678302978241440871193330311401557183453570124087038822559130197178444001413054632993540493382760255046040380896775314717566590114825900948604649862443643803261945584463469041470529545773377148898559900899482838909037879208611223633559157850408969473060684700646279193202860347728340940860056942983922397178287688364328787960806899613559716990597294082308792970163124550178006664180726220938691366957818336760001447934456179956663112629274112000171836479785843692878554939004056942950059286762306081590510606249810616169955898933960803158091560488946398085503508200844237291706365051010681064343018478100484252489397969845190923032783691569011693732721796039133716235518152144330951581280010292847485010340718514355175910207864403627562425340823782135141466934860809020079239118425043998108877879837068122744902908225860439573105163706537211682740397184665405087017690450726046194527556987157839612698744288226103806420932005789265225902532869114887893025839882007592919273348174221300588913948435464814783370697958548228230970537391449020029659136678383781983343729123962278493686186875380130887782442231685725984984011031364991753093940769812788434881566599824220384399557221514462551078110938745425166677744895041957846944032456577698820110849862007542960508894941355901429025826830864084950121326880838581914925887471296848649882543426103092779009294635325816293301439107098887541944824488062627378377680215709788736400111035828504516354910040540428198037786658411419212738906124453920533473606867106215463303240389685603397234761322053233892714909260637165177199476218653635992221961238172122146402192109979086304406885170864846999775935861724880347425250504216090590219370743052335289974340207572035174828721560594896009382140645519001523347219951812642123890404042467364314791460870883544397713718538267214009081707105077662974815957258687695528929374349791377606400602154795310787929193481759183347619850555093181132981173050905611112431136248856638140270353338959201521122474144249358551419470451072531170328989941392435733302594311963282761344256665501487356109066418437329885984182992028872233684826547703048349753980321764200985949412908837836239583113750079212404236003818489264479791999486390959755318640603091997687307539666712926845643738153563302506996791215161730275486683242069431583181750181020199116027639752659845450450367649038572251904649337745736243723479767195751397696082796688416058638269035842948019769061394678388765448947073383934366538123170148532406605260357556155301125811256333046043691045629739238102413901170055930525394975473492607890503077475470365815152745673906799999882808705242503294996689630533615086348005397746598757771503640185218912560128624678211657709705282115403287593067090293369495462150573950115820212067843412318751548756548696128566974514643435720229011275576648732137651862478020304898717939905930436015487000509791308004132995914886400099004710059307479473587103734563278410829123943302373396395958659557043576302782076257695820230156458304348574724052751156247152494236510177033288174753404441544013114524270479668707619206263789466377129186911752227524255546551637797382974591904416822041853902832848992414788102784179261619122779637378138465746668240527370557813293562265395759835832841533274075375924765421793305864612424595462927607606557605364237062356248640275156857412527528052909314270391236819589845617337311121212239824248879724641229674751849257203449154862259264504337861726864626786622357519887378847685261868128969651946656971353197854227070076828492805316335946904026619861793637684712916649560357996098352721059389927285600035060871824997405324478166285871193533713545931650280743051546055345850693730552251788315021052018342655154933086042893933717348286962444569995721015935387694170533801270142633889183771896676988741613273576525073105642125629378143134638373133811612100178427170722507265548490420608135987566378493840119602189941643831208667882508564644294736941854574915595857826672989409314079103352568908086972240425984464513078426302932895599822351527589171132616310551575821840583481312003077663927554615372979632990420151954215398878236280001630504079430254267280952543156029789740729192540222121842303331028770551008530918265009559427233253780480772941359916139794015157083836780629225896952167006731273718959406930910904456121994539540981956332113418315968619373312460420899017860245353443987190625430667806262406354859001320661745734275456735522957429321716143886205267425039871330806207561466081427993611605770749590001865755820081965223384737118142809485734755888409125922894759445845364618146520326796966543909678531516449718248587902852388180236208525291907945001303439467070323431595344240140487842889583140096369529596679090208499617636385132691405425348326297373541218988703985510783559552617868146562230470747100193255583089981450906740129335404606429644776992524922653019616682181239434878321609502688045166355985242362221143595315314465248163749452053498876075793023853947772953996947717619204522100318365873786816961343486347947645832928502221403973151999111077015384650976652635756965124949665956516552905355582846375133821370696977364285808273621835426837885426398600092979149263940973440462972989213637642785473500547247574743840076996664319767207374551637071871883048395050046961365645139110259315427617700892579510617496320266948028828078746612629814981680295959609693168146805297554474398213236051111922294457256165998030538781809465082301217626811829008033969130600701969002502450074749729565621039300255775011854183273136960628180060922577422858770965494770380343564260479039037074448170190916212655131113472459683777057377611223043193075960646279042426519864563665719659454837141326824069000675646797628603346587324585911120333020698828148207334179220022586009152270077952634726556039648704581294069694870799809857358582825574078199093113718986994447179169164473652063195112140012967833924477885416944199880176792232964157420022401691835668233327021613776880665200961869463786296063830512109070289854978642673420750252518728372497655906748998514653692733046839944843311251559422681218152906163376632054434539136369902668868552031078255385071651071931155532262115057549719950007109642408165693054141324714336213165057672572492649523788067850716105427520307620387331553705960373627530281035195806669606741715674106662781821463081794816863700579120690005465603673161150563252256979349015168081454511202671301812360145757226277074587494277673644518988784901286657422825094559901605481220276554679739984008863446651555157366543185104060187499273299826474337988231748496304732096818321913903502182650808603096061510171633804861645426506436917619311401833992422948724686336962770706756449352178881543163006677102998941727468078568364137003684662089943785267621337745327354869851023288979148592213632260605260576910338003501526519337824699147821721020799487652677365941974913252183393723846150992593196889852956886704088675935043099848376727461985488352110815212091447660701550091951092684861788911681585029947571450632743653726634808872549457293769571252959115461946323940415237296244107252302896423409746077073029554436751869643951355855014050913091530088742198653490765294293402990255257839853768707866314007600026648556164977638285546827822486925321373384576916157688118956327137875677549311054796955976271932777009789331988647857035202658336469024825639003410271525497382289620242002506814932882214031646210997195552749822144782791349964717428408003754578493852655336376906200439880917367269820339642470323781715980660892304582333225712471733333543673327603570830953197890990251374097968679908275754929803500908934230538942793580274342366536075185833358272429558317911191977612860253913254095166514385184865245319964612726104866685174881051470769549941765113870370614524815071515454771041588787106659827161231188933270393864049104079915957914251032155552610989913405025336715653397674512339138031275381886860356308227002687089291190821840779542355936197655803986208880448232771945982673714321866215024490124338943505103635437763539471475969331631327556356666157991502700278571246933142793973738819788625010593653603731869855948016759962958661977409278966909982104734538333444736479147133183147717571899857431210536349820000522662025987018086445258806125522905989827977601720689492681216551967241525955006400271390151453197916483623097065473218814903638862530958830910944482109312297635862675527134373475324039444773525710419884498825163456901731148809793848700556452314145991024226011319845208789577553057668533318457560820260042023277440203535937376828073837634369821819677568852367081625978328335103157355674706072616227923947262335572475596474039858993489702150856250976918576211392069032599625815310732931473270870225097776746265134338358395979105948259005592588467330070245413384045315399853872370180838117946438715512976602487211118197822269760685485612861521992990270026344515782677521399867813453695346498837473302219244121628884322608018168805430720701780156379256045530829303295660557137541294556358534810728716242065902429342170184532771522244973304635266904317869678660174197892912411231318336300775388370847479705289042618703765265952691806434256016051609228669493382490684755069600249430743515099994422553436675928740510136892880481236388114046860007358782987277352357298207945708195172585726569704982592247643965694176597645129208071679688945074036669299060764260889169560779889927690499611847921135218836448390104084219025037623989115735558427890507530800019243004012621229734840935415558686798202241865048004624294412573546810978679487947532030378364110630714044307489610063912724842972904851010267135540289445547666431210141466667477265292698911843229948594699979119199957547656498311730938132400005122131015179816498236263691336100549974078669797412141083875187813320410688498604397619433059710269634714900430210416502115856105922260864147481018085990445258834343679388106205590212446481491587830326127663003224001732458439552496259158565091745767553004126100466835017869005483422241638330167523412221698766300634854788828185935526735746652041641194550072890982240128882002156685706320622020771374077380214503592174827173351481438677442593091679178106103750036445322078365641349401464695697840098980232157874533364269046493664774930782683979331297378711289108549989007382795951310188896562298221319900488835914323261853372347009260429335983542685546228886642642263657144757006495551977498669740650693459035886679981117374892982837628477100165618455791926313191875832637314786364498952199439734026188186553454558854785464862824539882693014014287125429269520457801771921676412335562028426132755899583698942666995512610578265762588614841759342181826232193990562247780641739774318973301429234710065637558912335562249527876787280266616150967522862780299456807461527822919754414052338548149003863337875485596256726595869523358462188252190982766891991422890429431241469969745378958516164182103551403312149487114547136127856918754467825813109899208882800256301771505765958859966972300719040078816623169179399256547832023027781389803483561339298302175995970473814197411128514685474282389437438055441014986724972881606008101152184127030326714897282189705304224469779899674348928350690969038729400922133283504247434884216387769713232023036453819686185144484080486150449785282744212678708500156125700360783980396394624692661692860247996242830238663350789210848831204392775363733754808154307982323907447090803487672852127989177508692899448952042828403581792220501531746994434778479984688283329466847359115749709455516440661570642870969743929984560682944361484914897853235031187843294692614697374994689337655907618127868989012343814465888088107686576436449626341834014235102226620060583582888211067659684229267075740437881768148201785012453571459361862549320220468426705102858528603800444407036306596667607732557484607710232270535204806792804100475861060975663959352031488493921400703432942485996264328510129954581680532152645477561570853306528026031100915164025302279044749326991477020275491171620503219522821310122525317240797152650786823780588364363419435401931532642504799430078165674432860108716377810546818100056317511335262984967216327601315136216923258770152751732416839720276354318656295019957330012104498786403315844021287636562731498744347642338513993078941014997592684111639019240495048508534295582047700961499087141812867567216122810902247896558302416939202740008455417352520164967654129923520665443414827868088262912719656226884526590218308682383413338771486797310343276642074973842048001249380121378823646750637728826428309873516662282570976053245365018927891396677142797233912033824000757585486954865398914261468743271220424263668197024109073210606747109109024138285508089073847062197359672289623543018650687700381679606712664986169329001821078876200354984977525969666136683521178098935336272360954158895079731564755977304903348789891802154240308905002771165507999470775035108752784619738406698926886127051369457757424614587276892707056147476963530556143078945584747213968091451236484130291397028448133856477075208969570825172394701819295548320898377481353624757609991892427724245638931435063378975236353410611341197692544352786303546130346176656198130080067285871511269793104456402563034308480144328899267811366129315930405751900576044720012740949661476400971221349187662311111997968856123186151027584982967313463247220977411409333664669349766703496121274550347328957246518037260907913551814838950524671158967111698133134918032540659535540155388068197354093420341290562318369576844855325283014998973341712839542814075347687553145429203625017497292710611053910157793605297667089940764506807848606248403854061483102106320663564393154782529079135922282109183902449866909138464711984676771114575552901260276338727822677393650742756824764316490625421365566528075902281183900638932678605959853303973322974256359566359098916574163957047170784289902785257263634518958056014754629316513555814555168423615921826886325929661196518225208432215299974650796832024877187330545798827452780269128613346854736898403066543782599096911015988996065673387991240091940572659556835712134268244818980098319582811266153933041699255771677444558972582613416541959335797230575694556185622999634291704500341215391996728847817645446967751006439519016312816959927748060366809691924319582449395799474722421890221042327072117863261579785846501684577528059137189504257174717411599900411661862564645591013281260547766589071039771732790981213949223465526098511926607836326189406830141711828076982482783716104349260716421020445717233859630958400714299929580259306852304680797824514812558632275640720996313564640751505658419730121349496012440995878300202106168486285145731114773382274890002885400479987811623501597510831428654524546279326563383599006055692218936238874151958021302394105669003380676794158358582957041987480986495861882495877352440143399221379448514751978307034971053608865710351568833947274198529014818908688508135061881791576085643278938225935634246637487303842600871944918757123006652197433896075086834468991594562081722142381242291448892555936216276560433901071396870160895914702157520722312316390531366846578738300509525440756097256819086058600879726050766014023915841351963121528359984004772049837654024384599803189492555219202362539429014594708909930558820866133271448350908127242179676524535792130127947374656086187439645695854785808113996086008395141182541819119377710407705764688756243259575236141821868183641071421134690020208341122238095453325534237479341598823880149722766265497821142303275242644866597147505917901204231645098341690271253867417269672691324975541970431785501519069403701372542309099184749087394778645207356058621880416630769148870399951973645015472883479849605227281339899072264467155315353973009644257534876335256434194888856011099600723935923176186149132263238088612018144936596340483592253549697001413865031770974624239473344677007342658926261239753158714066739907845602767321201988386868872186286400421295115317126087257882941636471843289309455687914549006068365601670423287893102408098983611293451158587342752364427067188861339978153176849174678588182793774590619370330038909451142352148089599083661611315750651115837306166443253156814743120319076758101442416425909771489171891035748622721778965242869604229155869477009987118197144106988904743684950516757806812304752318219857389641317053169740680941651432094180024865856995658058148872663958901849363687297137866879188569018337969994202816607526150633000737200926857281668724290829574544743011490873642052236690077012582092041562534077521751298184562866975999477748927155827987486684126574683192979960574998862671056916197864089433344276924750018344340151441544167980482885724332312587600255781351672137300255066589265265379689613226916317938197372465287725989825713465370687875897899891492045225803233027734856071979978244401902076527119573821095655821495390835177759967487130571300931032602807097143445695709584716288230675787595435826341707479970891099406113448488258603364099867089099570082286851013777384325182551776439633360402131231148759265959353629015703255160346303737969293782024190541191229904088598665785369741167013621811716991275935190147380588851717259456696666070803595477327824192287652291758846412706540759147852269460354867615354347635666210996999988140219005422314258565436819802742579406185843577720341297699480423651940705592967478937950436095503117485218575893962124554512370104137773466575888064082927348541797804157026557430606113800171274169936870668578763850149654073198997552255727552201818951471606389974173221111728703987876995684063677639705055826678070196787710768712749395335337119267646747964711057844465643932880000492043671200974049503709394371363220855521287988500352580145491939262537009722720547788510328795044834756582752669692983167667151112355459995563328499218668469051565145590879666658146958924646314962034931690210834240530485278052315384747565891336070102988173948023235433847191567766138967950597406500473558662061525926898863215270684220829284871539337427281100813133820955348909995294490407903389864491587892788543614776171350511674930475883754011287328613094976229574860547428525989927214443724065391603035937006341547917488946188820890895558940068082939056412385141135767433424284454616953062903158224913697699460136905037587425168425015851553673826249496155474922628734288838559916808290737003520064089378082600781570307533039377155872824404021594259441466726003617619030263946577965472097606466710418341255035542759881514599034299556838013046849236269506112555859259465766955021806823097615528997246002830497519466121612081975762436906948549202485132232128191783860085822304060560040614476595171624261186032768075944043880041447246084143314965578374307943301600118288192011229294470634567068103332250734704497102131580384697773493888956029732498781572429583723866939969459731247216838452777171506488137084441794652824719186021008488709934603789563950469222477749819782873963471300094162803833186792030508459885903841774755078221652082805566080173709543058890067068817163703079616534776823683261331062648513007528303868223866898263484213663225254733143119488159648244322866815507333031063642336753771104846933048782843195591383232181082458798509024190037195215965637797932034490063101072769749635887661849298554715041942785089341735528780655110427981803515486298580057942936492162747303702985615648742784543320336818209775203734430431048737619564097896529708569212468680931738856612423743769488661826837156947761536833485469265955388521759954338134941668669875154036381778107702435488405225655490568810719577191596922661506452605889383116193224202549651152719067616284486750707285468814099183296156503228511806161111429131553740499544776297339699537572128186816974176623858230976868951906431718519477961829556538510867390892685287605657230792502286272752492811266717681339209189858928971001198779295931052528948746386236118026824020469398480527789877043466800173932126679667858709170499985616978475520721085501675955454529517576367705251009123795849265512641871573170495049991603104158076327103782891792163701143137509977796405682213268554268863888765073903722051441416613840197992699347058588378295043057548088558478575046912725517561262628591228852947570461272459769918285898613119288859355030290396077805551921569356739114047094992127569305374824172418483240956884256340477648067515222703773111329528097202032655855767381499727767593569390848226316198271572806869752152476664346744209473741446900738217327382644226033534291969352661801884357341349914654838784660669804645041718075072438196919927109848055612183444112165562963200890988732115795257015544999143110373593351712606925865537758163223836603404508120208609121890079711037157088320365835956865398758496888821888135085168871851877049505018871084068116761387240022830616603476723493848111309692917711412693395552728511390874123391299545730327156754138667878064977836591568523994079800004651128626057254409883620849717084583512032865295693524596943429001159397078861968479254386881200410874644512299990623200976980078464961983146818692290867451505290722486529647630953683552530026552986458229620735001543459102371234085635309186282365431855027881035043499074297166205445595020305541125029756471239565757035175729600916461934852181537961511240561595432128635347892815128623707780691294296389994898793003377684824628757781591787306117413262880754334898090599459086535327123851962070538635503819904701743663562614166151369252391293437905491296743005035127196224971727056207011670461388407888925394459025086413433594558705388122882865510015004544380215061045135205045081771790280197311909250916254720128567613499338671693187557769217609728899822728454704202049342016891936379666740531488693205744788688503315157084946506048727428088597579437890857992918094844062142227250862213630624293899019576363383828234176292831956871660284843290631556054678983893148083793152076711254779276448781344366715427230539423103292078366803737535347191453958300671934140737746897488915659074075125641738817885658929659434793849527677339613864449093613406673470494586100444157588182709629707871319132753456481159749280834515083435490113737562731866398775400559908413535802934886301339678209740160668430228315422730120396291192352131055922831157247317103573501574516375481516815269105759855357967818509693206266151624056288856641957575026749232853343536264117965756680134804401125127118856350717272101835583553354807966805399561411464842845984948126448251015765220895951905816455286283185842204856892073003782331880312390148700171185992897159901536917430322024704666952569772270787250021258767723146388006402339548070742767111866565793690762546102025957011707206215440073185922443814804419007194245546624752205754551878984487461762381918738989988861633726688593251594171981715975267019819574830407167774524235994241984937490917810407226554784312557252551902344624004470951357724756934193183720921675907947669258696683744672487325663236231441607092163035564611079747080696524092166571292424133878102940782618118566372599415367757010993802008625380603198356103536933479700115291041935215634009093322734098379607129400948750211921873113249496415960352101357993637490537813017263587056835301564955933088837805086808829084619296241435378236914497944223012590438733601887502372113742695033114512333053760478230205546074809197807820068187215173568952396526598912332088862742785047712889530561359520065594363775276156074887499401657237793390172348976487797426960265003982389152408363512051674076480126876200239884270647562882457559405303723383278491148564454746223313656349892329694556769875857495608324868054766696745078011610155162074429944057552657990422158774744180752043659130058929571213267395981921846755748194304117642500309926396493280135596125252304659937811871341662625286323449582400042514258336197647793366972110520477523177047081192921812721238370468902550126870827653285320165509665588431207135149705573219556678043463157100868889300185203674247686592669585220529601499590115236934669746800919316321531551635736118911475054644720980250474070097050516907013969435415141717251612354546166674102599544204519329551226358921401045618191258432425524398480942662519311605274747679654818661971202609889638943416803228536948182038148256190652171977500576192858436709615180760520666876196918863578115852513590132674894873315959059617274478877136222558338925956270082205498952340445133081826165683744238504830025764594177239032228588598820835481161121791371607866277956592599353705864613469980862310793842102273647545481708159999182302890181133678865231084090151547358855444495868949405770906513146695883876084710506312915339471910478886260585419093442693142132788701425207920385404820625909343505317305660029910261719280252459775209662137476564398152438849369278149594816972726708684281983343278338429464344624852197692105080602035242853192254426790600437965619770459711756743328466277250638779393619516591692828969231096509019394564162315830582956422620384940620475652169675344480840254571663205455245763841606626621656826153667111935607169952774236376780914621236186665656805445015248259209584066780440874671913450688022395112101504759643871321064648859107521679218459304451277138035245789630013753436381446363721106817411764406783028036563000393366415558383368458060304546352170354917542867018904367716388528753283479935175094811873807088422667634515277497121035732630250743194337613873475320076245070843299668343729725587483364089831042888145580833665577740361452920771939321442277910205209184117016182045991775998126928772605468119757395559726904269070117916640540558104952148409224239073819583002806769978395791257159950627040841207744339991069284136701603243469078996095257745147666623400617224649379748912268243951756943467671372248411954176566643914245328652050652794374809409157179084819225140899896117105017940392229861431622215888997115166502227681427922309099846647235186455929651483107931500649760618306201940807804604013477113099148819589673156973289232978085138170005105392915141207786355685752181791856202212732803439117471966804302261407011013335031289185693772146498453166546381926800813578381383812001468994912572803939413893015301994892592181847073736496546430561529692761684238269117160424931869831532162877578473299710216695553607698157241861845181421740662777293634642326174736283641473322803506640206051536805768571369851004959474971917851675319801878184045165332833392459535302269183172545227150461522514956947408865423521750242812566399354286787762937722020331239126294382421715976791564356021973251196749960837805379114228767988551671134840383665280440538141572989696342748072033558732223589395035325721836896998758232788504827380033044314925729374209209162551271873771117612083079652672646325002291900191829321808944563293653419213204243573327155086100280242756531082349761296208924362037684334596114611124097550616716469903116745698228753256277052087378290757937374929248234900169132126161996397424666388698666269979267146663926098886940491919534597219474808668379287053813670801254085214626567836794873321383371642197870904041363548043421994188715694095915680367470994489669774793910189074612435594560762976116557398562560187615940365845448135432312930497258404269250174621070265585446583310439295345811313847843703375184499225664348265482353301214397377414670848678045670128292012845103725536871438734904288210322975768557256812990414182724238856448322390616095933130917998045792658528240089515392998272504357020383949529464486047491376880251115806766094513052617093053846031986520220311695441186757861742840655725597689931212689952932491680200158518107399373028386633717062769969461609814901163863839013928283140523928497810219929007374386040303964706437610910817114512581665594775638500873371981421761953053694321463424682400196331215995004635547082449694392549474954217652182545665034049475044878662988146937024793238010120970095197112979040759393932818194357607612625219537741879795060296264118113980486170257519310010562222801400258331478637517679108220581073393111078839111655010869918654124770654872378668106222583542774265644500936274159707025777671016956961640377482365779862564007187857671136568032023701747344258790132375549135505561633030257652031882024928337950449472095261502666494595898993965701500917247651174904526711742990617763728328377722694712408845072766478278658791136791309868252186743769459967692172301707314766625253173775388885077634129939509243923222976391237552046649300753091268210211977824208241433903891443380778493328788317015679054212939072117152738392425340646725774412862575108695699065640089292688878917691221313173517097936662834245535815422510813598030212678059827858824139269014693426869005911496543952152669162826180390821362038875470862578694233408580875810670025743361752763455499731232697077783467561107921932095139445504961665422989755090465015720698005938736487062810026572546792781238226639381412265811121675676325857018034311312124481391529890909957086593663236336422471364364942303462366967648506590654590830751100508111275494900589595812467288530818821306547498468507683193852140324113905686459011476268303538070744253049844293162661942221590382284507520493732455294362521779566481906498122583255689961330937751196131740942423881088026658003643585576272017699191582588521800789537836076458514589721914176907659451124415582102654312420393004709573782989269919217090811858569911884454355668529782361356688432414305741016926067251835831234714845975711860867246450050577866751275847774547809324972299303291965987583438053046851063328290070291404755442344067444821272268440524132383266701450634743318524765061485710064823933178850992539833082894495862600361047515720313548130100374666959402037988989960811861197213214689222708780147824556812973300894499145031401772202354238000866927261155324773513919244889851826310149284244347757741872787072498976083935299027807972499155836442641549923906761132265979541511681630554632481402296165561765768336659946472658688714007057884791546726202970822744568816543556043252311816681389655071484761962063105298109930226520649334156451164123056666078201116839414822561894411862106031781338028134960197338726410749364401672667791224671393567296830004396727822555468757880629874227838945054960609863418340086780844573255083799501137276290460894965001327471215637805097809041437525862325160681898792476659834532354589372463911492622704598663571556169885830940979777536208839288079596313378468868310077674155764184039086769663062476933056015705406425025485371523943756168506756170973690027723407804843908231551986630996022798950805121770808450742590305208420724786974661466365130215270195720206544180884738032774285840945927553627719664543316021545199318940328059053192533351499102316888191335757670885920172002552154693015894052395399846156217422986455283231183719987409607763856190023846177817804268042794359996791245706435623494729598301037244493063328412652756927043035699562033976086285794943558463480239204753906120867443191183951862881896338706252969989403701853030102661781061788471539675472285220756144702358781864034404254432313140193831047849597213780771295248352604109308222591222786119728251470969946849509787943945272266208834705557632156399489935227740667840249685062827195748777622964064643216799745949549931040430988510555342552956002262279827326710905943725827118011323139259773893813602238431856813370602480432636230386704391532370783546306059987241747951533657994581098324344249490912092850893052415620803527294275235621735041347363535045303699603009496471541987254106608597118802194548694952221254353412254088974394832747634650514574207147732048851271658494713528021702778767416339281692138548228634079815251380564030262176521538143277751062521671995820478076664206701913263293538652992449718921865296541927957160395876248436264653128491130118260940877033287522782123477308995760926605264602558252227985815818305059407300295920719521357231835009740117580200806062022490576693062211055883596501224752138354314209567167026659714252770383769440162699304681476475366200734962391676730556470655903736486963599130858269557769385463901888147755002300590381852791545737922573328548100345401373155957678562028908942349257987298780000311017937676402858744879708274873022442584097545751778090294537065719966697713952375694399766847647969356765784963235376250171182671679920729756224424093731318683918249466394300780573512564038799584649271721904127557009151932696840691459567053515914140517360118148605409275445294221949452650809714398621820556781918532602863158334847852909252196162389177938164376607590188609038505637251882169039410160739541287217789803190071101919144984775397386982405658730484228584863135823684049331001212511379658633563563228101708310481346700647911229282514948287908030658521493182194050199854683128899892688455011125303177545105251219536266580627485769545658651229295818725771097320784440438472686943605005042537514836492907145971512077836897150568257427576424331850050785840321975612925701037409677004050622832748962890005391722903946766714895649802715271715095548241302044660348485431466614694402530695611042107270279819339577259425571955502353001679698334736247812582864473916463702832191755231688582472165789434683768468807533998429589005624334148334055559761404994441666417109653057054543657965951350913124913612664288686474147760724698296462002213378754950936701444060525487103151911316673702798755747398942163656951832422029740907241380508965115074720020451365517416197050295593506511844531232264685402030234051483829573075610416039880954473459951811298748019299322741017861203979637084306554082397088682638811144839078111751481459907828239111893389868700915821668737013822309172154746180635075017124518577584958487767846233844894331329663646804045249866376050937426164244653007920157256619319311760251884954048626259605107801106539195497186866261956670841751462397212085971785253134865791230236841155978467489335858745603481534133280966079815487453500727106923634460801023396694668439873289953062018200850802348191359819034355230096354097994232627994356025447926894706136333999477954023182148588766230765458231295099933389238775789498227032013685429619156544858632676339501031898130367513913535222294689718525308303123062243758462853493042582315462023811904171756773181451700484959028313151177963881974406564706698961506358346765038991147763490312625910947392053479195218409614095322582680070943178735091781093260841558186430068086788034516877257066244784669359291718933236437542781430097538353543484451345253152856928213551421102917509494331702288771564607933770249537024344552599484545845016219511253546984414749805915461183139298012570667794847759740164625469946031975377473032482716651487036164321801198225074159009708686336860774160529890705090360483259893055938137703910428614565847800833265353666184874699982152478523014736272779566411412530386297512912650813048119654056926206148555632335480857625132065726324005707918919539492310850331607956793337480611064041311920584381578381820729329238050578252761995073146331259982362181402498279209929322235857604886814254263845412140104294267382184684451578300266802655003449103317668447613350241359618914282131805922835193298180302089373417852690394512290583522705357198089702454937696777863548455179446799612717134010623078500105862063300751425296445918713091254783194940769470734457986343419542844250654686566379465571591182028625336143121821317431169780717226549765052672317729726344804707520027513764152362483036309061726567481463702639720370627701826548393701086235998209665370817605180534660560105290098872115795146209256129224279429346025655952968117199482359513557271941339296612277462912259191509445486421266650573197109578850500426207455903984103161954027589429765220330515257785959579785514210517205532465057927988669251839049708175385372428695168441589846309926872620364725221378684289274437539629867527628385062021256270463871112862864882918408140199754219553995981689706831211602837745823498531220315645888112756600083217871702078460091123669343488064135485472162737138059967457213750403422883581866754671154121633575500633336276186115444238796740961861900638105214084453498338655086339826859718778833693753160269192746433286646824401189213638880585474889480837148518316309467002511206652852647941991223264017996502979940537539179771732011450425656343609328606061652980580325416614979269798581154356409927555029034896250123662130675436688891935720928123601844593517808878041761728750798225305310097922731973362332885198309469548794756607197521798886697425536546155913652067850595509918643730664272531605304660568677842264087467909807366259487480900557517194077153054060425459500654839217947326858899849036374216049643969907555529481833758390491373671497028491684084245107267075120596814978635766296604620592615804590673090325006258968671965172684042147956398949552270812378606372746346997250114616576580127196627616872051919325654091514487493345264446229801064380110606619575806658293971690548330914001186401087592308879061056259502987656782984406879912670411244065284604353444330821334218962949595065713943334692335170528828118298144200328689014603595138392957691342563896802441324256125408685207876451308909586930531010560708098910348279072443508886377668168282934158995248655015317350003226570002745492697212458270445793014549080217772332820826734897719582653333598879996916114679742450175958423766119125195204218704258187651652426919907484064320440719647020206117677940893634194901738854943880661763391758260110184347723942155194632705039000132181511220948768828993708557827827434121768344944597006177386327660833380630504518113340138878688267869570762747823584000724249204526615141185148900350011055289508572705029166256690092273392214161951590354205068487455171508913534224065917242393809978711686048362627101632480938634534886419205083444197614304023404027291923038787370198485116720758272117635457399470908951561937700195954249295922923574936377083022041248487943178889518421562741323655326696751343734426582435089488957847762142896350202083103717296489149314577375686316320630407248333482756205845744655120754018082089454566659766567400596965445010335587056345307105513388965116259877720161535324319033568760278576437538683924174562255147495739618613864463765999868731694801637302116912242179677898536761120373435879265624781562803345565018021514509015645562006994756807529978006255731217885064249760982859213257768774575023180469029143262808409704925773695009085673025444334878844961374035038561386057115725796604228130124029280472946062443678682937972388412581325360667721618692901444709213922702819425252692812383472372315804235504787214842681057005613819159454091374609350407964332838880192197885828941326734848461128586950662912215643206307870934659547131672578780553145098268833280770307479501125070573095523051414730714046713430245523514796092913804786143243099507397051266360006405492461736459185298418433959788319402575259586666161863687576697708314037760511104077331957911563387321855504886254111017167554418604647152673982401556799930909467423603316480605568785088453015054251521057914857860512078743504714560502973082417690758452177806545803598227335662225867166553560984736769519460482898862553333053084460663012633481251560416056757383924900364198850148153404795120189552932453230151970988935676763860679520711822655890246347093835777335292373234252217506014760908070199846281763434616857466371045400143268791244117851298568905178881578506288226950926634207565397300243472256029465972890821876017360340401340810408377628203104202200568014839845202392114946082365250489730638616756547903173412608331442624723372254608281345616269034103401871509534455129548198055065527868775558694048238453811648536220191624539939668529752448311267531538632015351300273064543452172253339494256169517443503960099627451605956424348990340490506547890503974777710698712557277912757210346836177624472155716220305077439761176463626766509196484187911129784757770487604112521250554197602535917692402648047087558591617364341773546048192789408997152714013049494472229887061014653609942612481199442400963316673199082858495755760329232304625761524448899285917815319475453376609750462644285946403712090983366434182288822842807811683868040967328424792990365494340622869126803120953165464900187009624738564183661819718149409605641324123077055840095769951803367435291643761617517095372119239180058448395823105293396389406703654668492888078965501775375559158472303757754867697834093097486518710184128457272487934982524943502441449772911991681667656175673695064944620344569393118813932637388773832513599762453341518134255247429801098071604784059979833311471410942457670175767896020664768413470806556244886481786804341198101747222886030964400157319090339527034569743338559786764700785290222720840016922053072489378030699331067064082126752528196511945513194163376448928631242264414710850578413469521561341414198330941054070094623678848485999742405259664656634167161443001166537777025136781758287072864600327068187345140036932701837300185603747333835411402679060581735347280242969841806580574509875124441096200015667766210512908346153416680916747382006004631425151771179168539129540636933911609473820648512677563408288505818518120415535867248957405139434688033512283487451160700699867445905928500675420302815247968083579590269276892255980531639833951541277393842532499050724434390307214033175845631645376338638101777311426365352711152158617635720375784773186043175723539450814233293989594861718943744486123672992665005614938763932846673343005977834596862598664002318094626048424755728810900933868737649690582077121722999285786086603520102894390591742464782876806448876864814122296168059569842323559768040995907252964401204938997231161533462266260473606162846274616733771187744445675683529779956510631888868917821619490766855538914514355587584376279639199915075528441517429999839017191103139018198034763296479984571370974553182172977260702904173770157165666092013816153831939708857845818194207528274030138199536970733061980718805923793315079269630252984830166473872574022011351043141434230907328830583604191283217132134361432263854318808087418229414172563943774929285250147986079836078797013714675957061848546178691242136999018567838109883702494321866763920251901043994904657540246804865386500986222218985814945657185044788238118640516949047807351370288646606392530171211396066825411094593625367392910818152828769448085413215848018945050717224453891847527597705192330084765087038449637339739074030741139304767080018487218047592499216576876688016109671837007577066984004700875590372467782145848258776616456890561203996923787839979578058236248883149892194855195554424663923048149609248444247411173948004169669185516481480100764637187143163336205478348742009624751518337818034235052267991276601051016473931166493439157156969618576336417650143334819623089973675147986404524722643082322837075360134648351475541168247071587444353423241508069381772642393228910556398934094692041266302395788897851243523112944061176118734833953346423892541981094204885447238934171478977728817554830675728852418353484691851106545847118293936403198760330123967457063305610213269299073832905546837566647871484184689286872629101318332861144262200488636398867164147561651235435475028195599324620849028335790777419775188584527599124076155935487723227996386320033477379162799933279924155442514489828784053568276110136396965041681439906689153408967390349460585880957127208147750590943276696738795543273781798163082265114357608510497393534356756871382027200992477362946281827299757496929731488168845969142773779479912752366052383005190927182692733546462536755739220667266915470701193865497403028178284636206075604857967137403940173055498656073151102195187118782465900545920999430004024255002892662573627749908660567914350389688911105807886693701380588876557524169225832468339006023106063325228929800603385942218354408586392801222228296903673904581497316646080253597150638566862970973142121054350579869440523454899559551659087916254047661673444386198234517618518145902649995935182825730268699617866993688531724890722754508006248652085398890023841246538324589478074457701693329044589925281869881638732332583843155618497328415932791005530093524713658543813101610880757583695278287306267533357203214023830976041630003154213845201402199486137860866782207702079541551510210422235304837504056233477245252161339647981815541754967489578115284318776923201105674589060545013555149034364318434536637708633999953003689918055747247773658947823273052885583768051798992865017446425112853236487586338270725751060245865222585121932839215878337336541206077859535347567807288087926776585257285426092858125445457465808454950411168299944429237667953965752423611328428571136917932591366788150108850146206555033383442292896783240902625715345434478577629857631732646907773262890105204008696176277239162104559875256430762168895121085224302799618408837975466178226192493915021879207975516412278904360803243798205057392452029396976206660934247258350584052689394836018924859976944625089974626785419225884922055767646050279105528246087463907810218342359923637087804211514727753137455336220042293236369299745084676669080048166218161253371360421988614670196633825037707334010670879692512188720810985888011912483036084515352518055929985246927550943850899660756072019341105005684474095850308470935211862407860932885837582077182304678791599844689178229591846362553542119276065502210410715460935385906999362950308529764569279557709999824455870610973176411793858236963028265325448554885363840020232366262565438416209267721389567034624897227437466469612454037930033974369114089794839232401414839142691166607618955475169956028056732728490896800596514967557994564879764859714221679118682613575835720116801237668568975455584276199731827938430051271391497298028143767856464644076190294118981553643543923901008026090189849605992312362188983327498838734448039707767290613892133620978314496672789806164614288562279195524205614399372785262791747950567795938589395885082496461597544438811485832614676322390948202110003518282698338369268639512936868218379922990928479037786117309931634661020893623371612980300283922265655714623591352043737203864180478590681989383874514886773173419298424998907906514157085347499405290282772482367721782898756233252581978517297548843162326637299581093566973069284574039577572932465835355659210804962765549041178381658411839623360927116599959907889330044710115897928610362341151391464588425401978083279386704794797086036686531089699228352330471138192617102723160852918438553142229693669259546301992885333190698217962806500574946322942451739201285386154631067556087057943445338631132232061807829475697806973455441663627972205050583252051471935725451536753931525131610497807593265808707103721256555192985201662925113028114943148255634316808289680438547306224174173149613913428317437659993052986566298709608440866999504772582798931264542534233154864441001081387220756445558531412323663040145469235283947817712292193215638603308729112167575801532978722981675961373662981932603266737816849451651162593922137580768288609447291680096621350687254297477521916457865658281391428192609339285371708359857350976863746414482636787135363873478932350041813132689665371630581249093173236249693516473856680984251632711715605065933951025210331729351483145216599543218799901854343592280364667511590838648842756075738691101558156088259261836210048720922014303746383709762079275729669635630317428717396004125081280883423509109579764748045751466879726189833393372787154832118231763736293332396579722555521583997670205301593570573153246092833782560202168670472989327545391322192256423652961258970993285944404216188885459939092528140689397714016106205307475857189839834658223584666168863716693442409483580105929387454490813881047999379911489083393707064981924547719168893249312580051881106673705558878355662294846909716685967641287334636347564937968512722790551460999401266001634128351157826793633629451200876829876150739996349433720125810868317040481716245495238648014920484404235069385697240950372779605712634903524917064930931523804124372482401449171014797210323766628998397575691325023492632486659704890832175286066697878983689028083212161626758018209499434682789496884639488018086769764812594657953576732186495448906713480079662182105434827334642469797366573890701140330668350061177175570871686465760089709529934746196709553230367809117813767168437921005266461003791631247657180221201411971375489346626324573288741916527528758042027861719224278227313162733637844237660452919591394626436088832671844921170271844683008112671854648079109541331287359468212796801369673945590792474118419874075952102817891303703349149919761582719242476201373864203100430150936780008736889847433506160087879732090868184689615566754422071376594396584455349858841404122682471178401143645235344333825177189847637391586954846642335820058328934402250883583580934072959853914181188200010167238312331007612537490564121743852352042333432344565607469526566625938908375366695571522522400178918334205918407820945131631011758088546345048229828549230719740922747346776484436461209765811401315170775440648755279269214837096978698602615443264848399831943911858712590554519944283095516487177846893115519294605680767357744170278860041219898739699634742353115813129349652112588550200680507736948701852945431954318371687229939971365484542288742159287552379656474681762968215693046115424604483902340607125036568148520602253936856563604636756829763228150085253726646123649923921265759939768125565597421220541700642702808514095382968266479864529415837208988358653426491513768543038525511123442244436503089978406312055802148379477749160421795794162918313584151542435138108074124360619409516140741931521098596463377068561565583521253804412468418143400772943126674231466893046579199006396371180782337552515124530496961860035877850353766165702580311377195691070964382144053482516183484152152159211274932826606776360431274469290972054737395227670333282860213394528686335050247834493103199894138582707103735437100845693197917918529990443672343908731611844322632191472153326097213673168927781070967310522455235936366410651485977398839741172389624409656827415758244674147872352573413777152535554161657263238660071919416226151641014376039718371957262431334504764371452675563133790007311403393210791296074390314177144343065428235481985408114351584757156451967844908239293638032938714403997226480886749826875378896234194877301877327351765379156528315118027719118647178257403386151685442316676149144558425861050318770482652752261937331849815300729358286830343331021763514454999056179342262209542069654222152215706204001057983844929885660271234751320719085039547273310037106070237566216104286041181681483723781570608977203444039332605799659261513476038417733178757923899691943803631380680559383905556264044225084228646691463349148785912380468938165907675754730459164952218777166575028206395103294580354586133531374257846780999292595683229534599238742341687891427423608058606156431992010148236006966143057084453948312426222145503559667018943762942236079109852644363290243776328352286745730343184896994561550315132197110938330779763342716664307473165741194333205732551102925810240734659744436683689770583021676276267895235274168263422292901511266581603887597073643607573372039454950557372544839599353817533000103217994752493955607595420118911661029172688317112471931051052045583078979804949996549590676519826027406622256454961743209991887754728433725530006529499733434964676366281306450697458467672630276402812036985192560997014044743859910938497270225450710376612122746097248569603378447157087491911072508741401347036769629022349483678281636795636841339314202552682765570533199298906404723891254324736606561657853689752548304940674668472247733061504107602510484616866189992442019687924313705728383221045553651713704577525174422349827877474381297605540239450218589974710171180332472772311703652201818313380787108280296786753280789448042600098147808415041739705499300014658288643340170893893399784627057295263313511941687790238856823389610971186072524864711841191554025380894346587498501123525938528097099831560361004749506127276666765641398103583069071749300036585080307933815698788370236710606825801438812294151887525112125898516013692035025290166532062614946361155185470265020753531241295406455499608320811534246898646621826067073380793806587241170958734845334868547928114899517715947523564682081497838302749347336916406314124889336316123289182470860037515450060347120207588520093746778020643620844662996546158438940178583522601340341901696998063090201484351823938475824026206022795726551517109632640863968389754562256629004018611508424242819096337286732016575628915828028520045855751402394718692126750238630608719682874060508635077448376391788128307426018507460821762468791840293488811850787939862412216096751834921666061259978776299046205347019576423934131530731086671821345664581485283981617422713136679635775289411996129228390141600314144844398156578502851670633859405440370359699045027763460682079499412755578850429980709613899054277497886723140682489830255523179122691624352160457949948200463012743601498847747188908502832428143655647278175014904824409451403716810722279813393960002595935955499658046616844990444011343626140423697854177899418540876870461464511884686150085743398121858025165507607291843782237645286359171956967920167501300679962567759981534353446702511219444296002106985646870986015827864939906843149351304341466622478456103322187041667706894448274914695717380834137651858197940552689002593218197504311885283808464860187079510380323797906795465959180679969346346988781316163187540212709705169873649686776523589993269187284939443186198264921872128718087939698433475476449412897610089492954532528965655642225678827046609063732607499473439843930261636758140201366436607809063882914119923556169224822171743980248287445432235762756382667140854809307439057799590562799688833409214084227269192368966649469408271545371284424370791298422756274967855365628851809896413104169968664916611710617432139736117739402388747064484620715049535607721944449414836627968064408483570483675158039926867155957213277126573496837399855901135404402878988855144242038920702292512298113978745476330094120896795061440482807010110678165929969099625769633910974466990132865918365172019265140467266133069500285038664991607266515553435298378157447819661194768840953743889330943156429225047539752194121298981059381364556502979044026662490285487723191720121522791607200779388652084474368682257319794486385568801047911523904513293252524211928194154498720158933088859816143354371205188268293875487940345300496129503798398197324851101544305716230868053127198713954348517427000848056822019082070490827555010523442860195702042564699633916298973719959827020309011576061160148284415246097291852165838668537267879929026177367315589353365296805182638666061969101376952149522285341984652593125593076674206982913310738139854176930527089875633168243778944009364838837694002664137551932817535988548806075726108098215321836824661434768110860174465943498404972524082140677678606826325872530849503492491577098069904892323441232991275675950029647781258596385138021928952333552459229414627498365366205873010171044291181396411610248725733926239305912314038080568581595583075609244050693767291273312857448319300185776369072123095029618314915499973758926372969081057754025262309835578534571539601642897778496008518206484286457392005910221701518165541305873420736433909800794262239028791086568490515154239036398823154374564901894674227101961531343175021317625493615349383174758805920534210704584921561450905610818248880277376056547652187427000409595553060549642125954698644816159922087770953972234866899722271251462345252662807707328814371037445268454393531085593015375859914082703791940272666201077205557181010913143655013372168016454550462303764460373563013965989579767656634032548540523036287455272998210050923728383215373545556833054145630476575990089408608761615092767581036927646965425312959169924979008710889699932971202862410929813618846865488751037599350156779897668057036963454715610637716200481346923123520287451306136802649537323601384449562242934274306549345821634035366988534142236341011732983346873220772356685977835672855909945741176694467070780449527229157768384371302321282481986880656458029948890310300087303248646428526276389820405248050969640931157923474518997362056012765194993425919800304312961801956470107268646194586592217780836977479258608287246771240296813063983647833369447636397905288350082462361982194156234028668545665948815172844547054651341705357014823663552770160136136928846141359697116210968868474259232248242086356418355169522882570764249526927566892746141836786931604146861971290329738577362284139360635897483125029223479047786747408486362002501933081058822838311321821485481601363821242691581727964502905628243005706935030816259427417158060291504601276845490985734856929960008010693337887437442682495033353132208942581503162411436526673693983174710945047706131639658439612765871137773807898414024489039239148379434840145442177844592984313084670791022624011852497708442711361587194595904703586641685073009230034553539911409563615467990502722774467121606007017660888838529214390170773322471774307519719603482234582410093248693640483680532066518912320988496090151515522306767328098890000422546016115067593009498830313123033863805835954699772886923653345883356872760566349735139265204508436937186412218428295651868057414154934792216700052228317795837815212744842274164731864123436656894742388592940757092137069496289383006913467460947482975816331130868960843309179282537474278064290932618942164282932912548062658978889903806075751154414123535860510152703153233555493463306257696938553161211842601009083722183278036501209022830089368962898222701428550626959749587521883456588836383280068490324170445345183406082126272388335770775902643548575327144833622810623071149390958425808325941122750343812737227336850045236144415241228068614769958975509019476042270991622634013644317911448681723268280887624832921895019111745603504509945841474578117463169676457323788985951963874162276701150081230692902363828951730593111978166799561886278833798783521660786824547488482437829117628395299443394167935571206197782228506286365759954489364782995162285805457230955342341490368197567851849807127315590229108911707495814523136128576174946584975202256016506686959503281062953442998537740496019818526924405832293225047226364514008577469644578470850384814738414783103846647312486078523234211036530249940246361255280587238774153488111995443994915596686214433413113325226488701167051310027717246181934420783516048572706988974359363914347255043525661755613745463676397267825695060867824240394745605472880540540828860097046280232016850956171215163590387409071841291103295355703493005049753837677329469822402397503167945700723659328797960298077019244674125801352819486026354786671769572443580440881347702552556692148026377331515191475894385124883969820056144667715208028936652293487280923072038254501468179095344615282879234780678706233799078419207873018416530816514187732234056594213511760100748958787499140512898554407532042157329005925842786527099339595695591848378350565811817869696341959530691774769602409670506691608152664261989257465946524565605983308659849331472008628305164486211570749211054342216729228020719131309363910836024833070430299576531177577318503466459582390313469152985598167044132779228369631287327238693745326812531360078931348670976844881077769932942090248404280880492593966674728675880561134809871013955218601601408745914150205445770378047497143153088745042685631060311428104557933651543305067715283226985965998107435842796567229578039010434306139826045209493814770130691065574315333151061974997428631828598326084325261188033549196647072010016303142217729786639867713731028856051309622378791448136268880912747155364025483464603846002401118675177950446710628274871111074968750461537729453530181994303954277380812663972907482041513143817101384596606291536085241304267884424511485613117983315995809730316682140576063507397206488115355976196603504787685510739966830696741308570143396342690982374484234282847148903118034154072569591316193552330595674877411855466540988641878395833774625501886610883092977706386297631409901646422438867806817488147022171381158251818270656730286619591564362232536249147459709424963115977645766285973024995164262209086181965115068228019193676913605274213525938219372038244771126136880197398612244761662089414232707775280573600544556570465474982720938355220773996714865486595836769685270298852245845127055166802172988621723696101053023208858468504616245093558593919607483615599305115499886697523210167746941730418759388599237486527946440345747046965060773402149669819299544614296341432168307505069469948693707791443367933422126452696135653508808615284942346276295757959564526142009532645334060897715120736500056448686918298453955426812680431682293510513692138587241173723886314613018590160634737939039913752295941628181320980685901075155094840399844301473158634796231999669437418563008630442999214540955522414920589312336230920227835584326927923432856227754822719773460958572464267917380280853264221327994093472164556405965629450623138117962760162863381888698057081726874410387318230878828041687703058112168057006161204644930258009819681162434837777660965083267639141731133274364829442198445815405765265895213997791799760191574856653854735136169363267706354764481160738946012279710633045107250541610611641232119430642475705156369801877318915836196787640635750931978942097890031994659305329679639318484930106619845310970582746726126257552423538463353928300210185594473879245885271861317553192629691375676150164985282475506897824079588461463190531587442815980352024918049903931915697492167033775869602276831749358929099976699622095687667727374244771857121120523761104735356814280114871376442138712180831436798728800227040312755054428451980635241696966745390897179482771322669905225426118855656854191064679132352794159120412761591569163830970506282581155554349125268147352935893599959334031019311084457207322555373877716691013028113544365342015223884220728211802043805904580313358860031842374065123851912683134253660799544175315487716400767220499846670871355218911998756736289075858640277378425083635557152189455496703207853142562983486407065653335656304129258635525578404437393097674374724725705961452042752750422674686157868330458088941303746045420835186562566475725243249244215261642741843852620662838605713446972729611195352985779993206876114514256714747400734463551577025273170270729897165825432318239258880114960501069963669600335999039575195415113287696438343885360656596677628698265918273505297199394203714207099786987936565548435895762681212324185103828235009520539488615850188908689508064405624604475345783051700348059336383077801770254899822721435678632190195729002556269205590043342353679988115878227790464650179390671772551525131261714788093498062692499877115343366927568408662306770100653032010222880411161940902326078595977487447468169782137893549529103863385271590689431167241736024190209367473897951129568365011543448961975037089125359931026233915410983850761365192860617105613168469554091219569649841223603125622430544377340703006937652154447380821046831527226246875164927958497675194928091488299059201302163317504134823580667495744345996778038163435879026672786062711191008100857285117785414259476381547175701313626609603243240889656059915781777531708811454260166405073731067139696348892397136630514696928915433530748030741788945570042901979280909173275045439882261052252834655473300816577081726745501510775745588047683459712948072646263821835673349462266936784866586877631295722802134574104824936967755212173730260680323796871290673748441680194243225839074731978778322701228118484881535364556533598712391843809352428738324879448279168262120506867315122024540690921748720412686886128670195111439916018983972792627157948596709108888595688991310491284884079983019730022381606707154030179473717611677736685561535842542180556142453459708441041758129733606633087755424641522027966065829375795162856438971865786434562570963697846640146425724131676518015378659138150441663791782330264370240752037941721942002813332732210725878992488442728896998357033358216783018721832269622942050456685667898612070376158213349004899373355281665801236261724938511885014477605105489040917903620457890045286140149453225140558877062013283585281117237176841884901445350366332814926442670538354821472756044161530286112428540514279990639123258104525652988295492011339875639260076928093029240137195420425895531985303390483253608271449536023174413923221123711351228834058873516261882570375740890195131379340302638165877416538203696400462057619430215508456126173942545598634659056546493670674669165294436666705731064755250558105267178219874284596365556354707516645041113105271444097262642957639073784083839024600268188773624046495677549948340189507627888937579668081890051011266510037292093785588843286006495624052661939508613969670655397261342862172334479272088245646577223584694219231989962900150511096701434674949281902005390091384015655195668619379714525532970238885966535237722338575026320150786640636831175365742184399020743771609067707100194023936277941972665057887049308746841504141134820497156184558095009642235667793523885783226397241939090495070001250578927540200528970597671852265941891665478464542848548538585211368658204803076826312281315358629255706245179531126486982285821506607422631725536796991454374434278867002237546999743940758714663551665480801769051406894912209338028531482009573143473008023942977209247746769480534823713531955301247819888197398132694618517243123824045129072024035468010470439170601571482082327142912427113353815948763586769641331372499751238509357680887374106050533589446239202750062508455975581504881445691717874172884055696041198516958485334379235723840182810013076381769033017958104484258489340266880051960138137086674751680223499667647358524461501966529277184452462897948571793523943075561090118439378009506556313141531281660214325253518354870343918851103252007971082461740519217480213288444882633534162883645969336429994235997104103013416142034956971730279299773212706548197450168427828401331149027189231286678380131783974532624394927340182002690699566987422200871450308638622412500181242539800793969815834455465135503039014986275801696661432163802881579188512365527631012354477189803899427949967323523230004348778820345891728148411483045022396183483754583530745159040503652034869409664285877848331884664171337321704781045627962694897571673266914173390353401072283487916845826325491228297484773903118178942286059576837499445232916432544951052288060316200750268055449242567388323094943077136485545488902449607476849615086849892367806626570197857860558427917016459487773167325898366437648793366557248237629521982886052772367605316609459243182027739132528234370451689417460361288383992501370547012356298815555570849801655720731769204846806902151613662015887996841383389335196622497866200544785946856137956556036228445150122640880612191666999352005437560932788727102717103908913682148049267166438979584837951507732521077177725842501862424841428933664620206391254763517996459413326559327103488233988511517098349612156750256253522887683745460874885240804660221352931410440181082421907031353722363745925863903561930778101093976146199151931203675157647285997688064618263036504365279826178032397424483898627595870007408107081034250414446830943516043542760213480753324828020443394164099688984351196404946290107106524048940532581980279460359281725683212619077271684136502772183491691747672953034648093676260095975846775301082427515056665715410693695588648901785783047417475941737810528316661210578272203054409169233180883991236822516881548536265219471104649750482489377000376233919080536999061262462195357434986210415846068171643828474759247614649410010192506952735278837566142110209573272597591163470724714512813803134036317836498260248660909360373828194636153279173077297617045344878209176109612321831224082249653286304789564275664360360280237242478361485584756315358182636354690337703082428666800089677688225673277514753593210210136362500959534229338164423641057853120066027616309978137846570374164555113044890204493142633443639657057731955447770763236605363797478611175035982492846558966293934709841480947279836269572365861495180986288330302799926493240985296185377924113359297551973924344385987828523160757732927295580262798090495327927155628946047168279101624353147408710058669352231943123069904322714680344672568722979869304950969866546552566184981693979860835270293773181612341323262084513685925449139082507893424894894924259668648213567348695727548567232275374587914605266172992213624313260991796769190726972484351790249155556598072419102649587849274534663429751367916216518862217879341569362630036603987987126594041777218081882837717353253626317056893872466507767568393892320713734763663590811172112262754850219414830476505992882128826013999642924499703998659879857569063733475704061112186191309368851353098102970381091240024461007652571411319887643424489809819063860830373783264791533805704288294292583131408559034286556811686851926931478925657436500607856821971318295306522615903957623606827164049101437093890573853156681338926139813753459433227460816165348321867429454546835305697566625925622074408311514013716572249746613844357701376859456511328338698629726519136269101550100867017793583847266970335871848290392110181325969976237587470712668578905611177553237459855019619528424052711429363856925534235972449859336048934159832118228256744110593920572526069147955332834491402181698222136330805964636445757651129803594927695585935128485537233849742010884853003872540651639439956612389388216321890231051459809714392875037575900442866761356725702555894608779005963608380856695334319218013825473925969790545122102162490826225017465028023535774850222748306101105951046698036682711894040862601168060905191828733699525677404398706477990114108810332207673123140152406475121641718602031236465014880720400166298942466308986702213359501046521638088448600853025427474771960758269203644184041868730581748890909905401257033587720959919280960488384392238823411347604717253724091559406522180024214453828155198240901121151155946136530132535587282280578422290232255867288099920842292308925230370994507372204964613624184148751977093173085566438678795673164081924316138579520981674548499485447566573815316018445784603618412702410754496091544259916335581809321161086030802479400775914843196228280132192218095663638753382456625128419143982587887678838038103231537316059084271414635136924588373925804240200789298997072046333486416973392597591801109838884882620318711923929454742510065136584710179558751961268916375919065913423889019321462256376718810740540092222614361796393743851817091138878599716249128272717818302847107490120877989971312203518924768843578242321165215742413712143139724475519238894942824996700884125830815672246238000364581687152258635534320270060329993126601109952707409021661092034282934684318407698456408243329356468392254063893046684028977158901179773584715670649385653829281312420000020717851120151359219495455888949363876137000810389777048061898067517938565490529524654525630174305908927403071163444554131175103485688314958810369251933953016809927608590998487587829099119295968252915695253634109853124854257184573078506836306137244842697773919591058235180591507386288545775602313303637195741011470480781801471223465011361185430106003111041470410214168848866054053038764024461880546103320490558601974804668981056635661807581148544544752139644504593010567341446959198921798113695989667598240526688530178051744120011504880574561497302125292574710149906758768166136349008806730755535355414808668964613119267986710869772941568224068315774466395882287392453867458883117944600426685399114340073508542599967095506723564103043160097337591213540740769010998356332721553616650510029196273065392324035527479956906305595016056684965280269000539625487493990936505721435049999255986128650080017923937065796764415255912898636422326187854353728044762640780029872710827560316491921135327846325468673631268458642809114952224877419399882098159086977082817344344027390847140322974262391258788446920091589706582390625558350679167120278380859030942564955753996156514631832994757469805124425590600681902575620815501569287716990428678036805007840411363827530630739258117988667553905657919689874768016749223808433761223812991923894258349851805927913456347469282054015106376843731071126340884440373356169246963000139839733911932783467835553375313688775913620845708847879024841606473111213973514863550439948281046612052790981275780061918251857748182577114488573785104022514416298807454762313969550080860007985366491620219263998891522384176141406242745428468834363328252558772249726993428595485409509831169684478167278832574228658005831557429883425186068168802155538126866815120217652807320035299419484837518721969915092180870785389715409484206372712246727454265343024533452851169395257132473055150087448744614892991380106707135488689318550784940631110652118114128062001823425097198925043951252795809426926679841937262519640934277636617925704507108928615874352661491383557731080402627677003488085038769628251505932288145653538069802046266959809089665092621706511253325491392200666402527214016460758588521658741409277855623948419796056226333266400887957576701614110567362717343737949801744562928790518725715022474303823643543059563192504607105045925150131033206916404215193494472942165120383532741362439330348618924366126867215312089360966908513818248817336600011318638243256671676159161485402524781480789979545054430508675324801180793651525413105251700782325061856910343257188564801265762739278411038561260921170060965328353745740286770680839004352495562785102471184112814590369568531967637862426709963128712239203843300451085173468209699518870905814140409270627534791131536896254731250739192728378290986826675667793760234070862680860319953505914381833749376534587071656555113678131942157710888370845228513682026647910684156300381123004191838131471814505900925803660485186995154295711207874995221939856134965747232661906582283183484082854871556279351919962345323326050929021256938305076328189737808020696452059167750397574313138678430713412681070317030305880835114762900677576804189540982019967416110608842130623297902960914127926069301790732235603600770909131661535233110920354350595174843545993165583793027127838787933514174759728027084221702764837823102176712072868557166914753922452668298964062028240454379950995031329474180807803092049992219071313426845099975271012325318998572116523844965161351580931884157816683666879429398485409934048311619430400229411658817283740483504423539029791314490205826910956761444616321904142746487421586955611868302534126916463288000018694307161905274353122546495278561763370664995670280259060724513503285294240022391155295227419868456526654847851044753573288653279374363860652182055663311062655137338085660219539594635217673092447553460600447064987284256815775854680568419098417058600067129198706565296659861709806216552388614110548084301168990948040247617045339292622135030081437569272694317068171573554788572227184469129519019526289044931517923086277350964199233766022081206195237618742660885181302024985801862300278552171516394931171289692664997594590914568150617702031968348966972366328069022380282406812780812075521766748913179976165459956524921351340522202966651158288840739341054082287469476552698742958370601288461324939940713718220586060501499781490350479112470936515651087613330488447258649276269795380870782832575019973280422138421068298720298117340079106143989498805027492697500400907436422250109209959254112342088115535952925398524213613680477416166152850017704962626339041712557892327559558761882660475361889687665425153034304089725962829204941392059108138402831259409367621238099125795338175903861063276383496341710152459012450606950357852726202893569713838910883944799488144361461134662015830771833765471152822301227831877941805523118868800956655960469126104933151236683967464087205798780985478229593812981830224740287686885294827767169860665763977363373166880353382760795587325263417630142046066137874720614728675533596642849799357254867027367674891444375640932691642616226275593465599467443787437425213649118130249773874877976638031466354344617016609890090091087794379843425073592825597512124515893982539606497691856178045289410761158235385620055798250064843165658483627547050087024410286236323140945272895617014981530760889267736362269637468034219456367886877012069683085516547396100269825549075813334308748973300706604323890557172482047117456038912840861436144855214873886632857205127023622491450801981052022723843871654849962750367796742165940752072570167784474638226152615667707898583954155346640717432921100648073313133710618851480687644753361300075656897135060031694962537624823006852920170602670333029590430343835213577505693441698302989210056563901499172925701292155821554897190603764378176177608010022765657638900199200513451850176369031331836829839278356821659877276596008678876303235613691235794842540522842078305227122600318417513268885548163246694736192696187478346617080860198343676194992855564534641737284000264991760451360895770452917850206396705408072008407810392353529372507576308187691819252920354531248552188147498874443588629400786735109994942480087948544557199645412856351808701039340398743899054713673595632784621152856391348575901782412491320982492390593500610617665419939361391411079729858030016692119279297721922410234322951052160181543386027469486456995055419786259260379315048915816957387566198221553977021815422438093404547996846608752761514080653119860254725049131243483223332087626512829528106581994465310937016937231994004885474760540147588096797033174901804536069567468860995072090882543548317759895743576545816761494636026164288260551661413648778826456083730374482450439902747027739384836029707862334910166370119625314157884026511642932812818108011242832477978519287609086596927102638734273780701954430847329968616173525534792136899904160550285859225315216568650220073599143622914210086619341304025872909341859775989207795856866838334669992035964305372258841000680896618559226797472477228385271357372352828935561268603584157619906285631744196730885535716885810458900926982845554883329980201367523833965784388217103369439998004872075465027578031022685525248286822435975696065535296736840509577175278165038899614877779523785626871988214886451237819598287931854534012257163420617069735846626576643948537230956088899150232248246257989208026019985241981387628971153078932100847512268240261540529490889605801802924729148857011278633992962431227440129868929728640055423473353098825261479704299023491322741549629935620435951699566392127673453365906301348175681000662163076387688080581602388222455841263658443458977531466749482555075260720001156076197253782002209066945274937408544866701868516016252001159512472563577177633326904675442697762482412027826405868082692579597162879098161325673202097557413022506971297794588744064467258185178392819629023579855684274529381940281114249112876739572923090813338294167402568626296655338515091910268224936767879290638486529467416747868941911661943457443132583104884096839528542709441965338770314530837895382298939454886832716205730235495416557436155352214677612593639717863104751945489207603000435059055505698570072520887344497905668419941565952687938861577090534738973760885501930534012273920740534338415409505210189704262806327334246026722486966564067343366784268215867373043043301856324706068248857336086529866300866743652633016971554222515024795038867674035251414617202017121447468881248258640398185235751773309653215381011584472612424263793319381542984115248619428653553183897598287602986154800424195428333899989758949985458383212655679772294043193125396642359323251642556342547787357961009419877030175165063012027433088715504099155327472365634624560146357979543323696787286978062959618193673019058823690333577930055286934327886936043849334276019832639437498395228806397520835445701834174630847145245518938652108599030948909555370044024998024549578197926868253269646680026603211094649829832029100542122840052499695422440184675560023025341220016463516909629666607161530245248543397369938597704542728124933130439451625315234019421115587759791329149406337497421917650471682031686626535285049413264935181242949930282547834102254641458560899298308434789822578712713444875413282455345933245969790384960924353581051642517846633224601582561212565781549181334690294490672494507851440282904624543381407848024913640516897685279520436755282100488899061504100255267092087094695766167196842484171340417456983833353434160146414546950591474299867463264629898291342237145243548847084565310973163714918788523061823784354131541913300619028271108755342906151794023151438281526890339394840706281604229257959417363968582702125279082429564402078290679553615547606540872759744895324317497705586617080598349224341676104654366250098693193107765252595564501927371876611705562719292076306208874653822561529026898997316829345090695434858770439235520985973365888746142293762913421967808746731010852784569261057518811460625715723656944598018803665234915597255527356807310342168873808008088739027900748101580056348411118329234441234082356188744471608456002876684052669137654371419966268868551470406029825437445435337919289412806122375126726884035256348479623909688072444614373002445415139177894414387774060433618004211582584756847533319574496180318912688482819982106872778149318784133823115729215105556704597519935668728057289832858346244754872550927021079550613188005507338125385428564780212411529743963611008751955337082153003883863338078724026713691972092597318717547484795641686957734602823286243791251981631989540521389981098988776328673825449264827995979937725207895117784446331010494859206674546276781972084397811172183399575127555292912804585980002492876733877226594960363110128553282539678500294210817482793523527835993728113182205301471806272482911039130593396897423067291365544162984535937868741143441668410704323381173394809304158747731609631850442998608433515798127007713442612383893214639034507341344999471901471187063324932060960278201646751545468708982794259621962912727212213679926308496287876331638882659428012483478531917682807052200775661396127630176434585968330689331030350901878371962225880741224064994861379058062933646198361240097090755364935535699555516875754106326711582646546770641715887894632057182844047499997349864080605012960992825994342369261606540652204706795142572089586632710775548884189575071048799699842985012149311591663907638745699893429186871675818725697150385736849075482897676252536649750492962533170500413224049873563855752265354032258812052726568267098804521045233853116110657290202387481665542332461476138913503106557449371339339715314662567784957173536236324267047489619611249190963627536292279013995951015443161809893398112276106218656753008730727884089327801540614553762612286229337042029543953661245610701670820693218966074798290618196745609562045725271813407013242795882879773684210611593191929840197634224317842719327410628639510197937491697488684210771513983901636946672932177835667047940941375517931742584720157604466494161571630675917974891279789674504192791038587545225404138148250912904793703029451087725468660288837195521252600493162361882701465666159440765731503389514856829192850739023455810081064052338836750600890317171668555692936307975457134619705028393671981213574092290550128335987856412226408734627210978449984276799485199947988207367870990138612435790311958621903736831907022648060003473870582815600870618956915689653405349293778191399662612577208404152104816306435300984290723239419871941951849605700850837317713888478538883578672040843598679083516948455901666537642428720252674081261147870809850954599027066191136783776943250588366187350452420298833453410443966406575998960693575055132589902233231523649870014414398700730334663065590362805059649055010997877711769970169425708853161455192953671601539376970212173603762550417043101582185164790637772133781997176610119808241994186556895342632552863263334960224580467508208685554451975001541129429536056885341545437558397395340316599867077531452329403810744338415324821845789073168239702886492370481959254182882551519609164459867911107338326104227068069445818379025052231377407281164201151525479754510478820945871520303372392561768447785989959879046552388549932871792882818184301668531690493064140485461346025479799371356738103405086900840329483840986195278502728920348144748781089655672013137451008492710457120329337387542288349241225589577743987186912061294714427505109706262738347320243799869255887929915477906575871482229391437081573878195600092291572278570581044034765738881313487868326707520692934280413412910235415306649203376439804821734316134011413630352196123668085721230835701456457557336889302276516558119675483644010344175850751822922281653964335193406246007224331762485248800309044638668529365367596493800151972202638772672673380777054681722278502248800794838004895493200784321362350363577358140537104942992520983148217420095422121098901833321677439308266245063811913865146332896544927285492377929758780403823406901122582499120642938411226512511849104257949232735408145924428438413180967977838004227898753326705503003116908578213158023191698942210967097218295777466051538331195415305563940976951485241510292622549471430167739582149183115598405228582183503864653971741836907337177777534089780355963539427572901425315706074457532084902025691588919727762693102832496732746398050015048311336143095142927799630711768043485261399962790999776969224327870832145143864412133838361311614891773958213995489593154799691195265116851036446551946448344791900370675208224990316332798143935760762843615843622539627882355481951484738524329948083549913600220612605522374068186140166763994170191750031866997966931742575590959680642940769182834723443303497262126382915075221427295997349519029251377203600144361803336936522576372431402191981778629273920235817714460532185644598653280890861491646698064555022883708629770028879725077384445552462411054804835531916396245442222084616872735464467419179847062411168520875123115292974293339132206732222557437270536987231577153993357291970797028930737801214296073843351995706396543207731181422038103261448393384082993617152193970807397704419393332078282091657969246705967136149647107128635992610856187271735276196383723186210157858180855281656416500188837337950290441342813574902931474511261733428446682858240092196446913053217743227813665491584744129110774839095525444657141980619314910763299868076168768911517226486644704296253912766921065181105895476053229799142099714488914329382318900106388967096865719251347472857926469762173978523821476300171529489953550800643384727371728288672784048797852020561875445676799521678812754829156368294660532174490788334469083643325115673956039032378192988148087632785113883732916761924438031226229568863074008799650762806534732422604338308710505627759473977755243907995718520839762281759604764729005147514903655074123767948128852775105185155888987953858254498066377099499369263246700033914616225893587921236412108553529073712673819156897550039142038195486591175033168372545189936528115861472340093944310555917271541597571445222677662504438622888923802225968800863271985851205766914703668295442686652278750871075273216847517213823179334996808242386964588893999539601440962500413554635385565256601806724981589060677455418196057763681833884390603447060034117356601751687712841442887535021274633919723321368877556953159838333421391650515250808847772047179391083789435493858324409471094685016404703663823450670427476086573277796947104165905746823467181183152492724917216820955122090647159892955380744079403235913060136790251457034377208800811499519196239303441022134633308403357829686456304054379833590979419901674309210846312319274246152015298069872509125661255294410300929071977269167804048740134671255907850414897244022095047854438184328585866483459165850252869732127951459882500262958924114769311231908737046967170755731643493375471586657519862849260445515963024611436207300048214050787448011339841919510045181321799552143063926102395208202193886561266335619541461668466006180856184991872129645966732407024174477705434501834285019669849807435304143646803183835932835680510776304884694328766081674446010775633865011925971447974448428258952222013349737163063381372610394431744715315807439092083715533729715576499578694466592932265591422113053108755670819718824194192530776998095249006722476261220838195124890078468193727276452796692893248533084208259982754656486152336914802282046962601761306772863743007265489567610816408027504770112688548487167468137471363705180502830389271744775329484671537805306317443556923280728020369793359122513508667081378688922159965729709605543814876841068287289168448024483625162847233249641636332782428867539485935390503676623244545438543656746248541603234499996321026247887013555207401207877048669848133660089923164173815326527164273203413198267635042303987906992424371075286848906248364186789059145217225114184241092175306508255551964413552773170546149588693217644054774006753846697271846366615320310354696216556760509012427609891520654102455822494172241353149461612569483609423350453739760560167991212098387426815782059689675793276900386624709428177588317993553893668868820929967649527324470436163509406427739032646955477064494940317685143734806617350851173630640903579467474934169980554705487928878236529839850391856612370937937796671911601431512864818720169542660372359340184959463192601106558206667792138178233069779648787030934461549458203013143491536963928624290712391273068149749184092517724805120608633617986079228210223136198660422578234491781703126050702650236427617387645837948221959724546558547363989819957410059295291339116573449988204236125285318466407487677852646360301201605160659948611575272269851231716558192913700434754474746478681948652712122444501803540028613072977317280236005345209482078640369843437791845920377878157685672199794282173576939347062063230995645088363264502563903383602652468841875028933764852372501219341308445371531826251133004022079526573822041334923661704656181073118309685893617544465414778532321793733607655410498022255675565492776182354024929584375952640159430650426076785808532998482219782253051359075128700838318410150558321605899735711929196630578765610114138080123891333506392571102515667551129169203492459890797674725047812236006243165678761972449322141505128188178790587647548071619973380192068377696265520544032229201366300124443358811098294828767680585822764806216546219905323439759035964160722556273521611494610373407892441330005376718781017020625413433778333410813091069881347095697714403870862329867951022442460942482187105030223992343534790877750843703595680147579473491358805611370849702044314176110226604292746669545061242322076668113760706984250363782374572101068687593761153378946597176143612838565305588992360136602051118819708852628081089304173562478944102257178917796261328689550538664352276466639406584531696034418995972760677147163586556114469134215626576584610279824886990477662316200097783938811220187420838251165953187709004775525875451412083288740004177667575127811167542901677558458854953845067865096042170482250699217791345540740548901321968351233342481720450642671491474249780457309742282487235962912906501181019189731313873425076294345370171066634941518016239333499240470486065224434739170824798216317082050353558188833526764589619885583915472955239962910239588102491831913472965009210117818258898069780887458495056657850567268935646447195527870907744381804774958278753225859881933892066595201567160234541960986841437376256388361643184708459902408851584663258763442052111007293783547544260248546251236365624862541668201406192973439760230335348057475844562437935969853512707989842925697562798391462720097871837697811723115092272617653514053616061375412130381228670383854693391209042383095482000102996673800157328963753039674955783768327565800801540035002056230390146488842924071758762911419402992481076605698821293786168897101575052726260628434032020536098809927356681390015845269285094450745254112624359311581278351163915072823010737341045550709549545384683362206255187359093540658577745538746957293425926546308143460337777138932338085042254320359993154042227852354057709840558999327633476932201510150386498029779603980252228429433626577549558369840502455065395748385645073182474717688938680117705745715164519417079362011805193874444590976118565335464022117761190308229604259724736768404941249986015044626700098808789258786112088603083836825825687210418422739069743205873144692404572251976068886097048753580040503969101190521063050129826020779633849043189511086671114487701294604229808950533539635439664255631183919988269438189948798216656073109245002804133417149396741507402475723837235449564611174840765362729053314952238619194857116292316151403798569176319511476936130353065852091204130484637384166957575896620831681070748823069640426348164443227659129253419187087677102162668517102388328433744592613826219746715343845593455593100954439400127971760598489430063366956129466758511792135376965476621553044640652089126367702174009083321835284519075338638946177037864682625468810529633322420080541089545405805193993865952811069744251636117882603132339812854437041651332687913122086784056150572791783312204286947444866114132399795250734480089403776675563504682763666119325795730400683484966775707153435264960429127333216770140552928781079252583159954871252709087413694373899368667223227299008333815984823077991840116733435713405717711295549440505651256408647817540101280588167840272681693849032035773926807359744660904569887179491953682773435616861725117395052251373126614300263959397449010520838269154244585351412789865157123296766354801188280146698190140424091157587453775380086934201247800758428259343191374947380730875349880318902190609705087109860598478462092871891837342833810566794978597813291956767995917266913740067278919254948410205300657993488122468035028689991295707047325405208819707352374459150277654464982673308592219485180707572263523072762775052830786912441446484653538823114480056134597091158330043757400574451245753660324044659492907570215777428617186551020212945541584057437767876602084833892328246962725408818617063092946499384728858721861423621585145875094490848935038849504276509207018568658194755403170353480954870706903446260704503165533828666717851055943704237706516092911867914748583906475978872669152638538082332081331813978911028840439709063829291291517020020871255215992377499075435220484893058431758098029556688254333297042674772277673395541337175175300084225397990873481494257837364312566561416241645110084332187918793427105502411944521895555269866288436129802855157944281124097354020202887167353935084415202408432918052606738289633376937714738556914865816862448458568256346694929259159518012129868334423318909404562706336582548060953159393647007352030708387706539407363072414897997124721194631037635159196959860633214267213440877892596353436165542450140950493936705959953466573936658098200283158480617508975285481193269141731088401049530613987930622291436158073659399875456413025945795372990152082383838467214169176329741264705691545472880038149589693133659115274098750853436619809301887045936569288897499551455738584694089012677592721510921656335049899734150729008977832091154555287411860508011380282830835061748388817529667639115689758790749781793507990940355234860409601951822682637188223338418718107751998528564000864914146842247273876914325656333582447914693028471095911723779364570333469198634367855407673890630753869675947209160297190083187007692451827926382293781366037370592675822339551252072759600254515898275152845014107456362496884159469557324631886747425694395794223000015315052012541111006747254934950335920718671591101629311092899377791258956243583905469101219800247911567812491118817047090040753655669185216215329932552192921865901712474580141768941302387864795388060312111104269517009656731745732559177484718281698308785172308518594513257838160716759560758173414019006749264891271629924808490989144407997218450025149900710491106659820046844880869538843179987513400248067653692260247999950493550142152274365633207578915648691592948788649428371865613071566486365842431233375265610495061274086293408970491122323352101020164665268667642655304099655364805923156727475659517866826920299008259689297672560804429422674571238584853821022183768677594661059006415377757545456634212980139004570847721598991177615908505334563311491233300394497000495091675849233593487505820202900747934970911346044257342521968134879470921000948358180424838643458857613629094219238187446728443954425078150406606878996827001936934910607344165584170347189313377054388812474380554225017361962919225184823565454448595046060257585096876608503137874147080164714961259138146542519860179050154389905717503952070782274152491609003712140510284617702642657156241961924998136367583231314550543882072599060226386399421347300404884409647268018170688701558276290247783905126079777981516164807652039616322387265543721907645405606171129994423622478248343455213604555703027728037794507615446817842991587149642685577467138917625038190610188315078286787255054956517783087750702473745029002843715742985836409269783377414840587086455285025360431138415647314012702730165646295231432410203892804376158749274309049097794498029787040685608336425559250668314520469880938211192933162092720907260150828523452859694404831861905071746260647383482886718286238789283538834875037422279360757523607388826775954757415436545956587409832626533487346925046774151279077084468927126993126952260061154881019379566246917550179159315496679083688575811178617545235956635283272597249087904545458484715597159351785855776287549880060622631178457735159195535780329510673991570704987046108441711658237282236088601708449955017331383012294365346593102602228265511878919217648599535750167980357185968904116910903312748739813810540378801344332928783539273857595332560799218501802583817607158534791147140771171779639632732516135716374339013222180718925465035133291943958819430723405460135056985975407354733873145644227327482785526808082087198148124958533435894050203338330159300817444730575731489456718207119206041173072471589150591245030447651918955700221458828081129770347107695271508538702364026428792695115669623134994365174691139981893673744060911727060944611307860486140215239734529009269135729973534592283418520400387455679471416137841333206734025450469460736242860367628492798641368458099147686598785553558120870684282117906178660336930300897355288198614130820676749283852589618053653108840059089092704934645565399582541868414889330911259047923047615705458245544782137400111159832798281761776049063820249445757720599137076344977535275432959749117051427450923523873180320314913945718831203117299047018003569199774999566705145082555733867808452383749164930943627360154031235424825271153167645533932882318980271967967510389737526674007628877370972356592048994366048409526872969556181785704036222641910105955477970123912481646134348603829474375872753641678797533997270229940814650275680723265698894525194454907776271742450405230529093391656696749111835350506435373995997203540708501561365910839476862599157412955788495748489206837200479981613538265272088074734752777639300901402415622058781861369752453014174613754125704883459013485594805417956498621236073802700935758817143142624714619519795229735641482901300185715006490208205803679612806954470386641191430239339107361721888648550785005426143720288973144686158040757738511134742488946060664064704818981658233800670582896184194315425550359437028202015908450777130184480810756942702689483248539931665503494541818996965306362786237729063631254118680825418828128207578256420896799662837585557944547783150394074845495492637275293684428785299116513738750029262811827086018482562789963763016486333034780771589618912486536444297968055658966132146148003161231110020236849023103433544015595943618813175182228142565293691976340706339311513061070117692645693782556648380222366164249961135101750363488353734976155572591419850209461088385057505581776043162962891239887247128684926314913704134329470085468951799180166707838905140467653709798430328417517969286192857553150791348786820171028642974799764106755353892711732109269425929219759769749275375649336653203441724197182323987477040232651153646662437301300503241550975028793055651655301024795835681608289855023807192338729845407437224621124303280956417791902142922273170242496309736226426190728099830107212844571947766982589333750409622574627887919375598891251798085146028057783856897860154560183970185297134471763314298225833625943094523167939336665048176837310930527544282281005196447451839896291595936632390747168905477721212666430485616811732588191163853529828553356653610774944366479975219088797932652713163188858587032112821658404708230684565336993566039570781977122605107338001051171551995900679766636030522977309412825340529705836986104985667219624605074752154942886966074849087353567232586385197666689222989762875746597588462364936851900826232008194540531685910347853370918402516466449541559055041172690249764657814569487913406025237249867269123920996596096717993163520258530718050257027815911626816770576689681831422127658979145369136411268765763171443421085083370213308632486848646246577758860377991939460959802141444994320283179343742688891107679614702014557976136894115037108631972868706342707279986085076284455178292213078159290730126470605469355559053560644961993855233060324791622923574647301117543976717100686009664803381276291519485886139687883188116302626563737949615754078548930141121532361870103445039130147807882269742427851135836434790208988176155112624757057135253997264279060994555251341509638220753085032535182672630728121309807022853834912095261079963484161297611583247983833293022767235501875712673624199343444653833462592660881589027197623413727538952432769181341754451793872052492360535573101417979504778931441362813296649445608603780096157582082991633086416456059671109090339873758406084666218744293939679076545353418961042845011309493673931945934824170531708240065024253248798743996977763171624597442168402403521251032685034563373770152322599624158833533636466428011339390841782677311769957618454366853028345232560402250577068293407141571076714355072289601791760969376638656630531595218880066477288614426136105124354291602894004639493442446942892338774966065142727405584166865314061854929194817074096327443031084445163112783120161164519593855894680992487908480817582490634691995210227649559122437204020621752935525035761320576752894206395065176611048463728089915354687296854037793716031419798117904969712678968833813784224520744171475951160100576465572049884545543009546620165143633375055251472012092115443073181929728938097526824204453701406022513834958115901643353833739528567359101790166480723431239149560996637501048157701607151599588468645733886053218123187201220383981701813460215948483103827715150720916194961223483303708846008361528206937372465431558377651218150577181656427379882348209218353943708120282242815617395549117323083151867565639571375981531587510306122811702627467415560594133373047219498240061290880818214140311722809874683717314116278906734242683687538915743032689674599672011666949238301093616298024366106100450462528179829434736527917544693578171239162394062002017585129131559274463989595276959207220539715975212163179287619941048993348604089729622976316479553317193844318707857992003175131115618593084740558950103010814551944637670118845653141316639523438028833345222390876179407067522189742141969689879289798167251555389199419599846309852077134922317388104215190209546980785407570993019877910626043961853880211492050245913612674458314960178258371584011283074565318625021669310092145198323815985025578595199423322720285691189285577211617832816955458321725956545347167977554469777209385214639554062472955217882977815957945747381793220853649515949446636825533843496950302595640517016840935178279371683146919717699818680237246295730896974782658190322071372502594718138384282264981741299099173382871699855671094714800675094048634058232778340685044634705162622113493243030228559416925941621410338899881190190167780690014188823684922220282625903853666714342027891172871195495253202782289684091170543036035999036834612138533466830575701897391055789618542310127664371442171857656331556958575628396414719581018279633121291490764298607747084282315729275773040243020972530177347938535042265634067536190620694589831699648332405442460112281894694716441360918862648151849539253303973414866115324929473125287388794752969020863543676410256076293649487728990965331296444339977471718612352432672157902953924304911680718369914500182778841520435244417149471272206035346094343848748630419191954622020504509136160178355842520928995802804168967309184063776285407139565646892669200314452676956511701232643474544275856888731007057730563431108688555806741695485661200845389614429049087181354305699331737829432712672617772649091152592215726584682129033606431395654386523401015621032192899017105927298768115626747213633841927648254828443025002771282892612669475949391471869944310970232523561361299333575921172704184713302001710912934711958598465567928234963928244225943676129604992447578500941621160159786447242656467667255060588391357868738294933638574604738627339253972826020576925055856023575870722309991101211250152833403561536920084438043155864330663539742453595723199868614102156061681768502298414253511462447043250425707790868483370813874374757845150441791678079124040062230535463349810360956519540884870669178361721781744822981342209171739964154192740015978386144980587456187088163356645824466957749941105798638297049296044535524364478806945878378095990904049727007922609167219946208516139821044216801485403948488145713060645448125748511886830499652572254459464204127836651756167760945055931295310835122300661850456741970731311603222301492163191022628742415344536810486283529225639776059879867167286269711612705122378951218235034705948935240358321347662020067263907450651848068987614419602582017587864222120739277141327875108403255491352828251086762621058006554229953798357085964850848233883579998355812148143413933098211876515408461109712396009549358804334994886008276865520188732748327090469292543438296846921972657134164291953770728410929158699820822891277438132760958963594407857437890384132438790986831051747753910390823326605642749870520591541872084526886703904941810485089680376519613015513157583737767616835941877423478259215022798552115908935581856000225963807598787621646525188083793029400137495897601339766876437894464012788116298410424300504115183953533005111816407789919558326555027313369073857022070824217740083598180882906837648791693419327383807444612625935324254835417545983082296175313659763514950791803155227399924509244900852764453613887008063250525278734703753866604665785232910592091227779724188327627248281197685115630448239525506002788851327714653582080411709731315218009714396839459459792612086442076167801602349366382062736764312195171412108777603506074633979098467858490402088032999533003995643969853036354649856435726005295865092065818395082916443943400328928263174229745272820731887494138513871040970049682118229766652734339240215771030773273577833348806964071353646544272259663680548306027781866765085599436312097089925378656546570140533466582408443383547884515247460066276767904547074289713972599686334698960709692148598522545951077086226450059419944300739588678403055450111906151223088503165791784663269280497362602860840200495808031027986708308594259391442991998314441031126597772468265383624590486616030129519095088237322694940858289485940217606315109227887270169843864237064914013075767011914850885473495152020318327105111988911941817174683054118060005046817459554744917859296685127403982009053689538556985053878380848985168665962178647323733660073363672013976233062244676515835835720369120291302977379541954569078794360453730961387022328352296132429301089127810293507177152344333058416528104819629034991355645439227893340951200754991992130342179259043306473725703501428883045073097707688245171542672686908365190019151070435760043630601063393967953755218972005675954518312956276559512371006340542208377937447737025948344787363222312997944772067451515339552203493660128878652552129017918829440561799607128905327956992738583773757885388484648296236220765383459956922670486274974347516226568524541297833979490331656261364092525165138323087913484582649181952226208734459196001070523812077224881796594014309558537643611758230500318940032610053987490393518389015086873133442847431615593655456065816779400082325188380429307673554266925099526548849297092530087286426229211515622134143856261704275371883987316156602989813682131106085472668656314252663875669654370803399915151937878786345122161373067492686355015403474146472114080806264327893078026425848511168864550833513382085568355580195610428336035885350471630176254483676916011434814227520602146954727223257832018227779065742867911726107310378819230347536533116693400127279943536266127849126662672222915070989763036236515988557085004857432360265035901926568989132337414960376611196640115734119999813951689129816243006700693778397289957473430775757303220737031408578695545872958220822167733743906494327060203656761744050609572644711328095362537723724750156621336608628954430294724216232199814011050102751102456498251101209633308911207327228962660881453886547388787721382150634693535029852925548399575287950032445264234823513142853805786194404499874168533917547336100856944090422327205359302617024856885449679171274813419420806871424900172829175803847620388944246806607813283226288664890005132449678813589662869541151882064962449510958111654091485582934101309454177314212894500172860191163665501867818744198762961095269702366259929812267920582608987951138680150317690515077129925554785820989930585709338050463796455524839597087359744359753510034107819177955191515177558020797039429148044133053482667093899960720366325406471276034646659484958207612147653444902785141006040510195714092402727009910809462409744249644317755587523196523552415382672468643330387859757176095410678975108754526871676116855033395684504160683229397846384381140145169496038118838757197594956790287926836422297061072555979990697816884306227882852992674505290587860228889657291778256597575901905723910453764037042842039056830725017619593695372908415340501428888359251613003851239165762179101080062788979043994297092523607973816503799964371583039116047888733524319943406753951403406407027804140461896444783289578974179698689176124498408803955789515926780459790595387233728751277766261367961413283997555666413219454729344668100856760466285963650964963566108710023823196354386586779281808696000445215479216518128619480416279643473073093570385683970950512027153536328334821579496603052845422637562379809904444109538581105020030756658205160038100510652131769856017006083323543490310425897773916926535896458981950738594806340047101932426438991192693766908585642141674625658874884591455431760144153243828882491789820622569419639189838835426760053680096898051991108471028544566475463681405784638106303117001195022296477614590559533605643014936184621477491117904020481042507769072930468963927380878117898695510305958043357990105941885690286435430562559897091505463551330212381672051651451268334834849471411072929595964151597850077346428112899440468563577994336723754372706511340217306880775636016661847054720917269017593635132854543438086092288954622581152125606221001785701345655430236640855338318568993547038079089576636766501108095184949511455139994126975291871189165646600144077537468008241109737250325086761785432448086704472999193078723561484625533150556482433935799589358366843882301010770760436530523213957406542720012133089255931725629058319882406094083653871473224926492933988131816623464461654945444802729830592805209015618998402354204090917902403866467899419230249838025101928021750883444283568480621688791608525172582014280274403462488688031100112794872385685412410139286580266491502859346824122785439441605009429492144473905795908416165145184420432300167750383979148497773841643521289326699614363395150171121474250128645632817748362414118303753637786186276019392639610372042201495407405248378762440411814336724663315332224681599270691951966395412745247358137990452614120543155872797114579528335589843483920103316539404260470275730750371800732154996959890282572108776777514368224378858597691978949434420210189035754606915937080289907255867140916303425830760094806764298307214929540354245416257923149914705801287867184248082473512361744332510024647779119397515530846922545561101803447551647833024275366924285840728314973802333350369086117908761497834955945592362296253431557088343592656268293314132340692473623494445776431966185253936216326846583106867818648507745886529171599601710848948938768896757570861637047978618059769949655633304638576588296914530831547487763841922191698200404938254869313449726716447974672457856287024904858085396573284418166484210036417175934377362395181646305084782228788007090518525435958836681077224089485531302242608726762174476180211390677005652059950304637040359541552980332574023112142618513396029258780753612305481421191821078721388380576714085364571015916440244594941839500907594983287782024144942014725780542240246524209697525806258887218643010100620188757261551158947593591207347369628890339109379681345896802160372901152713640809361683725171579857565063054484713660556163535908531011732783271389384369479274887764010127631102140281500457040678189399190185343361420855555158574002208289423615867073732392761252446749943811629199717186888348973050630436550673869481386600625537140998990309042706346484756947860475165666899835334267369661074225281748114736437941306562990870713200118665369247742819993794416261006446663712783446936566074904336009213084092849627055666921102618095358161171308330633358048386243041422701041863400369277255701872651714873238580285306767851498330597604480861840999421293035006339825725765133401011059811446315493113597829637762114185200461559209504304187395288223135458174564297613061113498395495406604345958102819329512831862842944356696381292565424418562128308047242371761824551176575820365601290408264212725141426489763224300300013204691009266274534909276017018507419970964641901995436000564158356044618718218836769781406815602716174644684943838707218614419577431129253022305315410810598488326643565254400492961739970351989002039224078093202464952393827340493629227980923008570186284389444664455171677857367806999930375377619822019496175436886506932777322215276063590967348484770333237748218640192666460484141120529329140755015183451598796672150838451689394963957911707072545194509145334430527320693853243448503951257856211607017784623750283909412805353620499815208533269524017265908183171000619871716185290301573328577167000890965107420865124034920288349476997568639416643636241439765105271380503361723587397864020464747449062215548156044305517402819971715744736118288833569621283279564589839456228785543141954661312430852909681703381556859515024476065594213778456962421804756043940189077707920695591443714290473401564569102450134861399005905188271569211918357292840257681475040334276826742935274299616917154497931655241385264901944238851587545958861522437941576711068431913501934594977805146363138282725111704000247548707583730371854032984409883857650326455966403311013522121138005226094794629590494090995403656998270745171536166064185201510374655635194633134063639518359276727104495317483806456208710516438735117920841310258955783784834937446567784134603739505418668033679545312428094810847605189720417783325540954293450083013172443599941917049749981376170683421121438547187422254975713512654881562050776328143634485214123655737800708075875039208260472855931134672922433810305283921837705044965084158989527954020277689141769030490402581235365212069353777788807485314413082321233940614820414947322888292040432825693963629584200847000087022444602686191005945692618458769680585597942222875285456214392514708147897476659709410835516164214747578254060863785051003283350601869429808230501857035053537460184759998252810997556921900714660713574055360373382752751890669054501309560011192626467095441536977738404925622433952337818849460913374393803831634625431235987381679994405126837990649898438489638972576281366231139884326956095993365068253107730990793523289783924051135183283379661271196035682015545446392508600482489469299548761360574349403589369252066010000310645580424799162675504394830956824556318517111881336814626231926841751323283776648199656463619340777212822170455366464449265071593049790436441867101392375223274444748092007780234118775444636260997762889064506395787800379975974374370214242685891239567660918748823937223483161871543914824431067183573315702081763204625183273806907645527931115292081003548354557129874368634279896749753080189330565604501896237972112378344389678587943928892714203849658389406399968628364047245952363026408045652939037460834859860289497092479116252439414189793646412245983145356532313715060052897701086788982573319670974152959223116279919007100811617892480594476162318949646327962760329946138659629036188189153044153586345419888429207711312969844783868114824521389643351692844329397048069223445534693866697574004877361856512147848346815722497253077998974859104320559668848249747514232502219358857933009882783649430864451699472273611932631376044367296324194516056244177573401187851974878515691179597565218520693565981033214258024499867825333750266823754273865669239086400975230647467268734468098376871115620997047626606877862534174465389217886074424845287170486514595757428723502075722221160385927168231171487645986001720527778275247597910943599450727490963072158463915951923718001552889031053759443916965507191569347501798158196435012948086253378182884030713541260444649086702273423074015845812735351044430503468951961122990305578359211110713075970524713363463343404763883106582161287182360867532431676941530200580716459228221009305755815511867506274703408551875205407134239189849849149535153334774963197636938955037052306382199406480854126421173748419736072803709730152221368527464048493170558239125042834384490720691177208295427662988419475363923242683212709513294578835760646694795920746877487858308735417913210751282217996975471137020299150325799338989923741435682250030662906677213568741357722547704369553758923070264789147070052201336505416414358294818229798027941742229379797292853992027337601800380736961568314520724156708749511708384533875453930123172012056680865484771238341055685305442968174130916948321252921533122421244297316454212782212442965913436512884372500625766067939157560350865446407927119424154969312887265169141245945604713649243318229453281240735624596997852103150561307180269864534021394836759917589743872758349309248022030200912467039210314790040913787794605187000217356674450382304953962382827760305619743911433688217429951775711287326148521339181673673361845710310032375892244635709973239098930542536353985577059714689088318530741346526295654108521533851557479426453798671721906139331559995363388003469536131640966568553946275334153950011240289923823155401292508749115108952064650996929330937409686861719192814821590300382633416912186713164396362557198834646901117254921657458303911442639117299570317792072283199434551887908961966308671687964711529469276719532055793206749140112190564744082006005063841232169481773068917871091860038691298389718435405032015313750868820037489916980754198514299800448848814564944428506064989369480934798288926905536223233343748857132878561119265754132805231177112536273036819894910358326009535188342903601646736607141702882112689235925617263623569778843279452610892993323806311819636458067759621407555247615895884756138959979632583100896955681873076838931560895749625565656951217382381131086552994016172180914458568414638913831166430966325111639412748045546906842559397717602617599956541967845180959797591190363455964057363629441957426170153495973618464757122246312595068271224750554546269000704460483929796882756940112808862222904277124708317431446413215442322221140713930060987408076241148980823959449770314983036899099984674694612463068353163602692942495785417423060214597163241192377542135513278010084958543029353482763241386562499676120203362102109138987367074450468961593158702210381944444092333077081728265491337299257704001447409849414450472054429409921490683283231174806962888201557356996365410367075571429817726397923984505268967210143726687172195625030046391110833998765552251901133783676137280281739322408228391153290038254088614766215212988427892578918137028479254965551282633479090042707702778856779731668055077635187789236957073971644020841237695443490084257677104075472982865966712279425417419575108900402577116135528839583412891065794619522753912288889316651711714230664588175884835102301533342884750746355945632417387250704155963178320461886365723390999664257793332598733053677348096442747419868314158066904611254299953054509066133260674184817529158515771604849699533024073400830886836068220627689378298417848845680227311100978036901814899259537470350943438824421031321678305775751965158891245562565784937249107551346053044727099696053757039456875496580599787653167972334618168953755198957004498063785984470102631838985057765114614687813925174087135931520117860639782394523352362144654837622089792650646542906184596515617745150063071667494673837940326451923714454343159633127678615329674035777024638407772833928660973814329964606998722369506854171976438427731352844948673626604361888560264028159093471937656128984083836534577317019199898763316611392647512969820034747270477244058948112863957202329356099486983849124678718909172447193793093558257032419258828113976603206646869390369064277708218146405752773058431713090061734417875544881740277931245148895922270762428347803969161569996444624087041346114194272578461749053065676790369787663086147973010153381363789447098787034815728477815375728070606018057288796744704061002065987011319136787892485773952469974358162877214818631886261418816116920690963214907006539451667836555773546422246521895038416655957985579393075589986462919529890461765963693390318810067486381429058181467605100291994330315688268965085681897160549591715063759998403838587468570643729674575852790170571366997897507551813684805113191338317024655726447932455773049144564783750619864165572245207008540775682038876256748292192197446756747859237394447395967571971775439895676152583886312333425448871929111589053150762449846984411152312864052520475672977778027901281807140365384282314944048540555844902612399132440260613929798112469003908319121468389291128317669609993553569348402808828817139444212085886026095979205343279853075048178111795219240038179473102736948875524743581496156338019789463182828305019676249355142062969543753291009638085844648950649151463665360645675949707260966480530975065002970505935356405969780687315537317553226965337041808178867867681013477397048871917413091881510037968822428722940945653968932253581219146190988752371440138859411370520746238261423350388150367708319838158290344574558764658451214755476426333609169845805921815631087654561739022641775197529293984229518205423908284893279426635126075175717381069386177056617872655961837940934146951787072925588937457853382747152044454468772438257332656460881442927423667308071051993281702340822377331898996343236833161706916835877895927752623070461634674475131324557827802644065030697984595986042596462180967221603494697683369550601690767257052798408322823568025650921458288346427184427448721372703834260812887255329992660102066132614486367824835740248834249050327613575881051364213928417751670237899651337057378037552455267378854428116472248974842053745827538857602333276634719889341851714012434343491458306025956548961299515708695753348005864638363376942297457118154424449748904011848873353951160337369682373318353017612242081095234948398296486350689180122963856438342819115417213426306842937297244026573946416334039342359214504123656596530155623038041452054809612652039352784505035214068142337321566917729761112950176143430473234241384480298028914439558936400133467080063021096574931701074267815432988249683669991973109477883895285879536207397915464522092299450522230309791084324628779503433703210984793026715566874225938462055830476998955523033722238685381708121625163744856510412103509090538833817985681025983722218891788680335666001807702083365916486062151718730824784464184563501742600691568651390968685292020680053197814606837232932673277713794708296444025128760806430387009375874887850081249534596320350021384512127036629472238237364001992515464443542581381003733903362577406740246992811450422523423360716561580717891032583304390122998033798126517729875193706314421173549655100594045349724986487069852466904763317855857382065846791591973529548397197151420897684610017846854616030036915077331575669641977112205929056835484104751413598311103946979740127963643006536938396131334208505697638998446684765155622666177888093800383162829820617500226927738149050422117001136838511412644719134024214671472691678634813515783156562940387196136698719596715658164829928660594424372104126681923679141912350604890853543936734122264715112476980830628251998096918494709443607826887533061011621259310418000362116706134552193629836689252613885738350010572305479437293137473652727147267053695428039121457018240956182991377570836034997631613692394373836276177265732976625386762578534164314201270769848000047479585196251574647829366116561177129871875049044149961710563756947100517539633845430744759088519869633362616211494039654923503909619483169640877350076502016603647708876997133602340784769899737069163279542010196085076808590158972441594518813186347487643976029932272109718306398778600560243569457388203836493611872780097715129668896193968819839247683681343624559397161206848613818840879381444541517350504951186534973151577925772648780614135328787845529496109763680812111715031412207328373056564811529878856154543723238952712380325640343972623791154846621285638772719485939843651164015739942864153585488023977905216766294569316977021450212789778433674396114166549296621725330690404192265220517937647081815812051481050637821603418957059676225890656891037084932932522290548672618608686547895166976097609761075995252778635177077017439274646646715178673417305493905400629577307404746716670948018491044674173182859534202979042399847257759384797999187683573346799871997377248926009599966286710916091329603188816531000887122326788611283426596870081164061108507463551321918148496081818270543984836850093493333378264347243859700660365401423908095495281749728848834912919794745195804100641677416423682369276592153741954134235821127841919937734318530023602063107319070972115247882803312421652429425769184501466847150300924909672062224104680810959201081613073149818457984817502156654458379406150147376400600642855138164241291567598092197783916075084076174374479377408884907004829586398235669025450905602461825718300087547545314008615535391404153503086661701956695882069543310213792023604081844818181409756796751662991971498769942676002368059026005018262259709351644118329315469892833263936194128778643106251480961133318143717622854514073052486312126403264951129414328191437220570267202256241249492885830208332804619710889973171682660464361324970801867850436054490065591740254124770392092073728487930384975250585058720146563072441270356691481218862653184923532994886805445402250435149411103960161696998136630501533714149158918845613839904690056772318422146361020494654551434681143564521449914472985768296745866563411122184014425846494545710279506595005086348627237557188226857683602279277971110075570191558067032591609679079590235855501125327103151835551967238430974079566212891309405294323607388852233541601261248958816895767704244457410142926193826758982739825268761182523392554305666271980832400821218930328900120508446145589844878072993713521586260438624149664768470269594106652824391767659135576676101083826045082712876596016355628848626689676783098592857797079071349621313121687175318927184852070953196889429421370051772054776619023189018757502273845998795789643789476371297181831514965086817963072010851435248534498427541496103940871258748529115392240815198340932750761692673916264321877738000545436823899246379544076091001474600240511332733638285723069367870312242544732781152091484179784664851386214419725266168374450224355412252134915278775458644101800709490094825099438620473914928945425412298693281066679620563352606745752244109588970704375716632044780406095683270272799976079938411743187978210779854814218153216727090774046923325612518881437222797647129745975723728967006521461252716112970005133350280735600024522960993803985397876497502727325071347329517792593944766593672546153905633778019689013430809817469229144637502836198747060302707838845819945290563302696633368278982863916426031909358225534205154983953338498515519863512160441895276428141633880651014413759775990710524711656970869481121034574596050079487090345817893202518071662869875781896671987333226623566165812174426713188534870173181867405191863294956108284999757895013782267196311673851129939613778908494505549161273470854350120255867972663607618486660950110198954360675539087422428248078151411796076065582784232527232427239244913850736216236496927906038960300963531187537003074253489813296917090347456731280594373768933681191197791862249384946592723387454229707739998516760651700248371435440897667194037269122983036225178984038496390146744258316778323661877546446267917167179466364544039609765325723066902505731696943088199499555668176663258229662470494869076918272502100825054270093999242350229729683383761283740632922590040068163697255948200540167655613477178069423978363779933870103494216755577286218125465813572509417079705702337865366067794374664024514556127068761674307596365702898080255209670041176832286522925265511783486411661720157661371977445060775664820845297094914706236391133083096811881457364829943122080232801589848196088403113871260512032500362509685394943547526657743419893127594351826163911528253962735863745665788053980509167068066522390858009100581695789693535252323100888957739879300281159672430951489015676159505462863454098629797803723804270174403891262541299622220812274956908140643613329212574939592787115672304887918132960205855550775248530224562824133202545177110748389176162201021054962293743086798010977535072478716889340974750331598138737093196284750975984658406754758038655012018877579800848052490018596049252401717777895611826709627006547296882319359777998133554578484167770020263464512672693106446045106369266315600646456146461831851628796186978250051394361825853279880045002997141524501847735467553688282132518417265898288840782366764541649497540940674356837759347273761968277875981364573269304648212883372679707238697623226817476512375918549810306693806563933139219120701493967601855699292635726208373262265466049149165345255021510097323985141797725207528101591384243890304181702072300335096433385497544853314351922167446865984080592931165220740211909659293215634001579074226241163976814297185842881206110395448390952163554907122213526791022401116153761864615966925471379705165215419260655429432262242049338695360272599935400725175661280284744557945527151919741406919021111394630674038056072051178209330085601494825757342190346608834398237828958771947966983456872936780401424276405755622352437515339470511093913575603635860525194039895309891491995042566438794916211837777890021168300242045564187699291350960562604639904411567715691914507316407910352084456864597690822870025619689386183360364935421359454240495582722878484185886110225331841991261017994937624449763676369623354219834056856357496708162252372950736711136745367816473084273534004850775266480515930975174876004966737133121011441027064979589979580242172243984606390746305731676063110366143946240320464532799200645553249923543867021121398690411900923201801538177021357943614452556134570514923466152156258827400988928126515586486700397115747794404646733475655666186970903523393630956145269334825613691862521910061915960145038612269588719713442133429314113036470839358817104186945834119569120545103920827980963473663278736143261023263762956829373933615330604443813981077683698255275293346566737823835957769915001349565484827287024780268307794701116520593185568717352895310748998792816315273376298340961328733454442392375252672407004445274933602970789957103572769316543721976352976758583063163311583896942207622031836264413633587204440033463176456618817081360379125556220894287111416766874677507249197101671576549275463498967448809119882808078292783723271326053449688919724479745408515046334116830731735666664415572862093168021002564131770923154276633800641889246887925707412999767640173227473659227848806772393281767048982000416259838176968005846106748647127202815862826134591796320237577198440260016375974503387551605736069603079318667430281349624888492562772095252826432134371493840720968481420620854328211513851403884032274845224967189175947668357066522931770927656337841355723345280014526550986439575006274091443498190006559139980288359998059974040856064723570433742882732736885097452895310436992011092650646458345468635574809555287300341966264315947281651073107926613557720153943386837953766633719882053618336619087479255786905299570394500669698792485919227484116050798605803138976565711462678667755559226093400473951199142677542314530375936738629154233271391884524827244942234176441773989375841639851075589591492384440922054907697857602693298794548786683527725448844266694958472219197996620381955455112497813793143749276097330970422007524522085602894439680848718813835646469187259781350489382144401759174592848827075802298186979939656838867320477123883848294365917490370336828900680604755003237190810568275742163340962238021670543181390212105945813767104918453110071717005481322613972433191379134141366195057646040970326904350390998800153405596135318697981056018655134259227680225277394762703606722123472719295875581216303978375112607653818111228904644023114487881577475030583125966372882326829609137642182748672261156365698146900918333816819560885096849256300556896742833800569231235999595297180885210405674359380027745998521494058216006274787531068197797328100505630541070482826759574586875109080044849327154422731341605324830875258745028563862737530053136116127742987894186763793071730980867290038427017495948592484858096288017327738640799703111251024114547958929905059195620000035755325647197581519009755001229408858488943923538665538281679848045327641043073901819424803696361240376055112095547713942890917207278996489721510553971742534610890987970974096978620584317433509215385011609884820822933366071032529362838552563259543101215238239777146705570581654058575631815435496807956216459719735846048004442255927274407912268149615726470993294247424932571615204962480394497547774242495449217851002462542747060241495064022056740660367331979114758267120612316663404419214804956189946194963940992960400355008387909176716908401348334883820567012712377935382977528796971345821273604907571335966555578474063735064525733931382816063414556186211385176653348741677037588833328531492550809126356970991673961508259381361264904231590704923635014161022331720433355342591128748924103072167229835448199301162648189867241202506565226199960576500432619044270685156347928023467856710170822750179049187110224568710381373766056165572250150156242557491868471213075270946186656529334888567454675153181008055989292911791229453695626637219389966916760564226067136241230362788207658643937643615894384725721169833358572319950145647134107169304743482790488141160795367867752929942177915232348886727578152062062109105998236327770408985145573558410420475827894891055674108821836189167872442230590323571320628487696661893392417395437849202611548840189235184815745828184747453658797011632184031603918727555681139293248217278710895887655212729276255589716966206010380277012697799980773848583352041688828473907108576418497872631209323978022280319859383786022292563555815594124496266801173123741654149137099060477098648170237972042794901761662721000457088350789220852360682271929298927626889811270968485987942777270777345744618843678910877267681130012722642683317354740437019710451233220184548223830723648442906870240438959159499383816266413286102235350739905497970544048842900658758145938237706804833957257404871361588809879511721695616582195332364273062936814327887025186166631591274799036103620554318264408645481930325082337035828631241483243584333758455565752122528951007756792313469867026240186475356692381457484055683385509880885393490576429011289038941263921860642883596635755865614997405601684800165904223078258753550015053622536972373325876728842160934902041702455374380477078198366423139494225715976537442618641490133527171386798056143490752128160337788159029489850285490195395596815592084386094337833067710249928666152729877022246186395997502304728370889988517605975575302224328438723360173021457917453926087586688436602923439113977319342526704419940018384218589566664955893186577342615802859308563058079194284725926789969953260178445854683069487341197521196534280056557353908508907994115750275878462695975779687324033133421147848899353358506063196992652753484756303234566551215520110820720549454802423480833873224295368494647227463947557469949394558552557481598855192057442992438392947140328196222453097472092033365473777559239511744292158264872003189198673202300598666579598947395088173320916311409940255665513706946097372318606434134122478494777310693862771352052150801464562427554077959138617091019078769752145410898698384913541969366439397272206369799870264359966800529743084684353325261531224179347671446917929916290005474578757790689563959181133339919416459301439469116817629561164250408689059436957087762403303523927003639207884346869948878600109414087600509201903800897833403995328793946528871131481564652297835389332307794944388561419408749314775609651991617520494944672786340698170923338972120652893842545344079347686014593842281847148747085986591201869702076716207770892346424075721312076714673358540985664425510532396874576531016937866573382095888848086466275254144495035119471341795376356461105793094055290885110285048706458393034635624994099330891241477062775167216444254136246298073352049488956308526884368038198218363221719070196409083656940375921283799183601657764214749265726128912527795467224203568983777025509572274336239878662447687794890624499531270322647621268964496597939043718626347056345444551824896043691507503257349659846470534006037778032312396568357622988093353841181259078004071764055714009508547066401227187125033074303876604741394500633821154680090156336165958463585570149325401624052141051222984948181621454980861423336958149069999959934457843439199124528997968521008591205332910241614281396650653375668638830162304041259810948568541869277304388992253192888083521245755620452893217607299401956564017942083972734652551044139225266998601720383240438686942425179789718463860595337750451189589193759067187187429826954414437245098899664872510896601283557864098724085965004587014654130092932684682107848319696321368576799510057655824802609548374683070566680416421287032777493699961405436108315950667992928620442602281414399826454039720898206494186763279755706833279252412146486619677038193009684644590367658790902053339718245684554322771327344027468241009866936376839906411265564434669144004719769987856025704307858002126090696411372234071096085576245843573269552954300660970048665150393519403531052864308805747061635027899939929426556507520505678915514607403574401546932367028325782224880077272132660278160567423295711805326648878245628320863468174701999726739705977613112930276926061380780945280525062701954014075259032521569697305750539963536194904534393616446018303741806890813457936376745170572813976540837054461450643675996846527838428532773225314598217637629399846275561718635311754126807390935556922542012194452331353103578938632031592376723036887982289555298986980780233654656860010346290456701728717636306357542293394916025728857508781794458954060961118632357782830676951080492378261342125199816949687322460326859967266390361515819113796667067920855446316837702608415344427899940757702210011586161582691981950871179643911935643798136063111361449101067493808958130586075016634844171658346094766546579850221234161951214816272336655408131902145217940094726577096827401758160051327767317532699431325314749615265733885081183518664006541788631467017356354844434221725274097610359712106662824058990041437008209621402375519657195971708798461505288535982955674311042964523849787490923449801114025714555255183681244588428847068650736513503881337850045704827396723694665803290341978545944003705859165623664816056124437004921796137313554378692025270066865140624166810040078256066157143441812510298888064632156283604545752664095926936068088332603032997388174352220974972682914531546345986145691686873416582498932933980180842142878787738196013848359844256696253362439214422080995182982002494415342263611146816217416896015485845973403141158427682130068395853852786730407215745261731956233854738663573648456989277672536399491442400775493214933143374717716959914554154493823189565911221145922687600885227652371844747755960326999035309912942831067895407790361169502846998357407499222139512003656879279934924967788478061541349188088432416001923815384324096104611914419779020181628978681410953252335718908871665785919772191946002596069119236540571687344753805962626022303667013160708814067123832203974660685066992554977696818108244106027778611449218719145892804074567645728919195949330105219279490511181442752995561699700285812668346508246040791235025092326993335029895014232741104815824732116514016733067890503796128459769846322321913775082243097674021354653759709154556811632109008306568808821037317971172197097421410032865593631919950573159751994358767923727836461798150685450843223129272118569348215775464095094447620476268186614598498456676588526301054233223088752836398222722284547667441138583054035948321564308071740291945966835935203510133390723238576339056804892567977849834372254969269254929166387597657149969515690117221300709269002736702517291469078173133079749373609588475854527753819418953871083194842589873876339286390639643892685279899536570712528924426204252718309817631672018235949725811933649378749003967904352032675181143276605587784315005019037827610628683029558480373898516350146579508043043884626819761019382317763066269288136050513564661131502263140690152516129681988094456588203572483266287715944491015343139476413090948990220445689967170269579782841802918250261975232566031680895909379605513959269894129397858799451612749213847356846569678310438069861438161917713391620233569163281314811386929854657514278876526939704543722939770584262027169929639356218886747920874741223020997612684165685073964958971194787007705740942918817923313006256547524331272316047009954340959515512158738276979824223226395700564424931551495485140559013210793022715377442142122643959991662803681297492523574545171492977417094496769913570193514323650418725453128524142023927046963992421274177186980052646243399825650756337755862334136529388488349719591702974031916845399366637272431017232498096001272130581064328444369389839377781665369770489804529389406524743858750970763953202359584107966780302096981463476158050711088710799452449919087486226847224305112145359285561219308547199092595595413923677269875307489560253602730198004098610391372428981800546648712031318219917358670283702590750436787950225890318256951842923170485738444133792353545241884595600044596523259711986838097639933644401955141423753094052102009334311382990167872390092747186316890036123389711954036324464653343245128805826184026970618761582669985197203659900887498062132127513933053496191597006536247187751726338865161553893752150692188482128113235640620491623146234881751414376960320249285595398081119092412177635716432751352035121547701401020239023860560571749632908937843702060191689677146760426251880293183681615091691783881214088995942879742578160260023155693257855572716205237486571472259053914100626851449200338980425829505406559761421626451608626887193726702736203610074726947306124613757501347708462535637765333656814255171447407641504024347275101715886184207545580877674787488240624946375712592779903151083019875991299286880861413094045557271792371548388619021918252724204721851133244320067690469898740893118171804021506470485753584102611002810152973361981467912133038989996987037709842148470251944059418251725728365596396262682732571795509325673733322778860669347310921545324722708906887401456564701741201417027086884449964690264833734953358862997666800738040642645039020013406248360422482864524000375537080415804871813484703766614060891238298268162758463423986717842944433355929486199064497935870832989348948582078337272324811134687123281431169877954760668452472033005594154004014382514456375258119360114326501446486372823790042642664870379062035441508285409964657677443655198971693463601061927415352210025605083515257127529084512234815771804212180240250314259954826312886574871381080622431778204292629348039514118184255114470942691601364084965857006271207112842055013890833626850219056721387152781032269457858342471707320690109985782734069925850279723444873551521160714791231879304656934791241848807259184957628087497910604426380231218425631137672859027157473041506787649095765944835849122485248816432932749613038770091059983101109971075549124056839325241968611135501474514375914587114863499519052490554800701835696132568191742898970873858235013413742391914368200602933803598178607817775122408136058859363883335830385894775057049288233833607393879026487030565590133582466852594690795747193664390547073506026076854144622750511026741423025335665054203771080944653370121080178437776904910956576341209150518587641667248261471642017270634759113631993072681646608972590854976518612030887505735620411073638595247415187846547324693459478793677306505190433998926923167768247989072579692873170164875936200903672491984691077438567829361638745849119669586448559828221540172134781751709301630771943959061934007561877163239044677320526769079251798403521204155639050300010962098088210510223369681657661451338470826517905378949464876287016986383111354058228488131026915690507225388654342722763779423400454607858457941875983950827145908108930057924061617437819360202388945674459258053691263471317032909553907546410990355956171301007664865816769261316213983119450596509981863186168287246119522500285397151247559787505406928582333493357036107523079118470367064566295349272281084312682111809097457300752146378195050491892588196923199421245040227922793765859739915387532995689093032407465934407717392752355755119817400719173291655581556999551751685465650028035983282925629859734395011854409636814476427249624030639748175193216063180272444557065740263497633595518549128122717418559155803843014954414681037150278890894391116883154011274369807056377949415752743240163421380201221299793239022685799823882891902486303138865747791488045084919164551328058887385375190008378358334072213790340118622523621047200214156817615052135825214661801516716190482523820253832822953725047263803208321670646990911146936425924194172527001092272682183037410084466051875502944161078599289862065511753121917098957416156335612308008787525350261276845808106568980405959400261972516557279336860124953620851919039556557882762540294973267390515522856351016806115760033200998741320378420243118050431692501990238017965106149480040406686985601890542570622074404035286393070948367267648108218520715646425170893086281858841112875774635182655663204204129536758773009763920540248249672954913837581020837944923502452899510020114024893668142176550077191914068538451153413075836566140267926223384421478582005139180897439906570082619507376045462542795426498663594551431892690332255563851601122399252062587685935002674062566272826865861497213663600207392348673544351975173641522276578405087788154027391748120211163529583451172355806631334645203173472296443756850761067845237253878525266982528882755772830247097066996548966820431643219669926872656223544669201976023524364425249210696579253748067094397693068409711268081850968176084743660188441731032822820159466683546216351450496317219451952519032907353845959996332914256042975375428371236783647340626751563284484888848170611049126975880092357703692435785698037724989758211235321493371888922831505980071941708034820824003880763917273540273800918144027596575319954067692315169992199804912123342736386908053828263888660142086679012868380818074417560369730369400841673138480345746319274678827763160483723740354783710810195124404588127006807468830560147960750655277163892672063765523934060490106681572049188143191466863992402924422103442254499735790979240155315633589428152972610247528155625991752086055060195620705962261769120911499994154130217685179750635958001255665482105593537515552473666185530857644449095156998627311392212448541013954060204498096017301734255465712043133637515528190031150233956934672752203583794962499580360872872092243244705588940362278627280437069653362463361269336333479354451855329057485483818833119204461703241923566670287169700569990989630970939824544311856567613906376588555790802098515660987222480709314434752009564607357742723340574903994063050285481377714373800755713762787797901434351701771748795168944606109539190556253351979515603437356539693907513733301370577465105727551986339513810712302466245933774875242911172167186239361883270502540147560809094933749811253598908535797767114516545907625472701846432759888175284508494720087301320055433981126643569161419565375053081662445678668420970957240662087025428615310767920245861909501657587340659297995673296946751411773165314107812754628123643948768559372382576500052357956554293001194118575828087233826524297289172178944818173886288599361118046309004168386188282962268623477888882009536975256455297496080234164314256282959786300694635457849665310496620594210392322925621693972532045833071103168273516499763017016943905044553669304479366971577572242183855489157097321618358381490348953946144777775046789399788352176614760241067185458474840874060854683269858941516550597702965850998789616401239987193467140637681242322982823679555875938749466437674176298073195951459601005271608875979569054779388851663242782624804149815487105102557588196546341129778927743096856131344236323531124661360077846775418507935235789340153888792188156121813320783827150554797807209882076712801763942695835584900781607705973967589381330762242572318695130842661923487330056743402169788391092917126572986769273653223384411360991859723876220330856540791890439341549345953294630835992711300917336362082659147584608286405805997213828179288984879218673000412345572998081994953106879729900890556631487236297351169196848027989168324211697445257940377073934698979661122843606682655504301359364632113538883937729869567855788113868388231032408897464280837304407314728428929320767749055400427599084893421668496098081431211855989482617425266381282006970193853227782370934260368475330623871178644153543558151046050564943793631634503681653514364530968665670517537463803079236048796858394802630209560938785420024815210427347374294362079891649101232476277552604643440681173202779462272212283370751410702029921754898542179703073323127774317556590159722994392058938086241438427868841444001447889182142341142817031161495870481669234583155709275403431248772707765682334721524048788068534016131527210705767685864425310642272564203630686806623021407425088822345274982159824431691795922757487010949454747616207051597321648102186016980727264484981077828521074957258894687680618978663790178112843321699698255710539270060029670411883904354783159711721297555641408029644830882400328924901923036103030803254199114770374568695919312684127464242877485691662472819390216225175020780244507877583893416102913949515050421617573056274963608362905669518189274020927267502967112451255717283697261201965925663269396652810206703878355802725822952831923957010864953285048589815383616642996856727896853806070625221009018330641917552815745668260023070505476619003636456950242674246404195047608428946464873360846022441816597009515274065207852530203462830090512885939619950605175647155293594718372116751993211532753614859756115347072422233997677302878784186391046423294011921140108481990660629677530986203208556346221315112525625643427539249675878576199302887174880472240563156066634384534935078599146607094271464612333672359322630990506305590308112743342523042534415423081754607360131706006275449166595929184601433540963455537543351000996853265141506042724869507287147685850325682830031801620692308002740235407697183550746793849430061684897071065663536150060418677883130434878002938997153884431639006727473472718387946336494205916166560225813205828245266046177007767556261118227470988235622471229002225286912744617951593459169887097084528591228321108412672362139771379834688755744539898931185231514690457993596706184374312847661148241750003311754987216184599412382931872180968382453704950836317440494366552876741340314543184073038533779404640357587022920938900947583039003150636782364536422305052362643266773024594918416226111206137632125595541375230970022192470018128077480881360327597293044331328216658880646872485972284089180229139321276677494024580480532477205013520634630818407727969097192523167698613632902584539818330473483198933524282359749215170454268788667635463621318441080585691549324309128551397741557921635420133572302475673937923795558127970016039889445851950149333365793031179266799350860392577437690377206710986772017032552546788253318117174994914069810428164797627107920761368137755661216769981583826039770153701179109307383508824404575302959517100299506195315157859667039043309481836157324284410610457399289622177452484637011329246750138623773654204323203897623663856234300571724359611343274064192584670630119640528733717482829268582636419978167471684423805037329994113782412504741537386874587377412137877137145576421837474909537958316420781525437076025678309718756900836359744746493748693917104381015309037904000198425152453329800582351621949959137495196294944083748202757499104790589469622310552824310298443110079004083764019130471499871585977672474681551813926462110890074943458938915182807388025893525943188192859420294698079345784552250278151526019445491426866013738246431799152343350312276274943490472284126109078846537079468818083157701609369423013478694123593774005536507484351355870873037762563188504436325623158957770364041092407592271412576500763902646257387479164413517896207431268250569253856859109306455731020810523066779488714425416322181899312643875188842105773793263061901064805729710095215084494732897437194960131827941502731826005961603755260265828337662295299070977533509949286766228083587965888864441629092592670959569476713268983648836195073461245053360658085597441853713584624946848893048422038825489551281073425365778966030095664384982656435820897690625442370724606680161849909847955852285992503300839369833256894548189811047113449677948777662698208649694665820520933225941429472855873965510445956968797420555924648995767459208204515761461527767985046357398055677404566871105180826869343608385856744041393543672990068561008753594991688798127905699131100519324988487340468953620934082484251538784708582984327822542938499731389307735067576379609238298688622386924078074270108204868298050434761464998367316167510718833349839264196079972434160415270014598732547145836642171116040595958939957333724854613822800791736008512586089815980717813864582820589069999194367073685272346194696023783199142368447398855975572215382604089545938126256278143201018008214290063569342782104406612095590484844412123334410405356254753387269505214555639813234414694208825999158520549410491730556591206572353079761714522099043109815574911552821925619644807230093897938980062010549036899169540253693842511277263691908126986312160182482524809844619313557043074536975652412543245250444876156590765958226863329176589672853969588228435868326077905203744194999748320005459067722208823447683912361463685472182158260576460069143261143733025993721102824317798419646920026987516175604358973941330998800244125623270560103632902911579914452363975848803099146594663485550166876555104347763747567822578297155834723231532382084325107331923020925723596857220246947464171458683986390104033253494693572741738740118457422595122877150643660987310263245682879504312817998821077530141662546443688933278319995054146531862961817008606388670343826432463344093038766236807250028370121847270834877953987081115795611917476669180492883499016728709706243129115212084508856207250683435254299875450159935461130584598105280916937252639236303563607693525021077369133714491939642084004149976298093803588616904179314515495810264958638628467833172272189628354376549582266987282314940927710228913258353276791123180685366162037289377054731157622420878032773461810091278020668017867930445975849055076106866423569502913702562598934682846168724362342651783488703801293477817811368795401345830974405786579279171390914278213430021276424612855309348989528340097168220927319307782413936077437624483014311604612611252942703374168102262919313299083610005802143645952846743911445170813054576485184565455025995590231277025811714913715349390526835943477670716197491076506621112246252234656473909435060749585304270968976205974973790760027408227293243494646259653763696150659115524229722396441350198267378728984102634735860820268895003675870034488786302370731123250353610364364165481516160609817111592326436802553225905410342437845942937387881236164752784047122714473490675935322291006921477214703516701202467555396095158319681969246906806450643262606839394358586929917463930442995801139370949327781881875087821597523363037936226369940876654457915299670730378098495361868025612805194915740200506625195823853921834424308860432062656952513876424719811847709236577781254879568423043861239008837968122682320005158278334290477718121859395224464852756571884387762590580984283903743750939224472117179555543797610976630230855675164259660847841356794463293234345145292360015181598594117743303916564872980120065395010476771525908297402076401899139800352280327527084414319254083815460647321749590199778618466620241591631566787415660158589108146242110209748722403257987752995651908779799184410379327462907886497973713508599269858771017326206437651325842605193809305076799669209471991770901339784774879832678555986021702750734616560944054357482947557611147281154485235388639037667062553886784911289821245901642171541799643042821305392998864309622007788896089389219584135045025838275332283351074080252906960800796586038120628091127273005199906282875342487166296841879485690624755396467202719319355948280001813246619970309867467630122386204022591641702276871783052875473261169449691590113290173040732280527990057771767708890632292145453139173506882758768242261627458203159172399805021230578280137472125055130365897526188756149118233086644147668623954175669539865822079854689576802404057766997671604023456517316008291768718184941644074168547249420084425265718551772154055848437215450819263221003473133672069424301732777968305286071440421458324684708234704553077910313047438573654776093846817860706049048937184106208105715376315783934042608544400997224432660686339945380517366775132512046312636708368714804872873904719036310690034066551956293059500125197465430505260244112161850340999583370872574967441246037282399830369015429434219921773417687029780837531027278792668947317371655535241187700342267616695953493819638843771998310788336204277010228353970754458490824310445010660232054981428996869977975876902534999732817093208381640421752999208418318332263857660454367299121187573507695358810240889004067751705788195649907746536251662143504731935717710167265269274628462746562648650305430893942863879741267339611221697991895866929258343323004559022475315502863939199931677554106651162532938761353465500088094421792913116858110952712778662639039981988064847935021696297523968292064841098223785754946470079720270453635547439753355721109393560047030231695354361337180933298249914707170470475509907181641629629506410873620901345821230252718215597999328311696295575076206724255568268130178675450313407011640562265179185829772128774656655823524876518938823077482410267302711736056313038012662607958722188128745521919732159777105831847613732046436724547418786767233152211429250335823883842409399026750610149500352769553366126143497589650042226482556888334825105564507439415154523752619099817566037085459430479664138429551967230055717974849443976860163004339295747201839238931126233147426378808914618911279628547482985726922551910667757165251406265009974748186258942370332938091297401290389627222266722077795573292012753566033399718783865260638823307015409923138706646904664254873574051221669954980352947029789467311362937937202105808155286262499246712043895651878584122146665845719272900087796590513496426648705084303172411354771191490804729189558270184625272444196365301923448175615433558595438305935109246880974877896024003095133349936144616987300566759707018839211664706192433839227732783265381709683086259546946099068490170473825364602347099594964771566447101410150268615283441053156246697416436583054268069321385787589685350765726918743238898638740975029231763317829683357982402918963481631719459006722499158636961819589157229860632555873581621621123974296002829006053362087697464556142883541532595117132858994556593072176516626126591135224526915625144546865472117103053410641589651401623005672802805235389852474855518028158115429038917654392117873295931040518734412385555274863089535045054706208032194499708201340774396481291465994002306611784496505112699052396601450739515698595443318239465258638980367433522583466966518077599670307310183837922653875088045081590462595162839499473608502362478783282935730287891259865342152851750655642422439186241752055867445373904444075583973022408203044307908886794151969264458936809254243461487511185328090476885009161662540112166246851351690501567226828383316357347313003282382112225352142572585056619961008384297387375868837523282548661974796760039003255248741416470125177633092517706277238385364997210110733777939702392376525818580858861344818536524100418575290921447113989832709202245063436575528019669427466326612724471913184234614087616250277235231560553880533971203354528756638611930810275562832655421580352341279994696146084154178999011638269616358815403692283190682059758683435424421845088655219373967101508488727801118824561496524959742934216583173186427266750485392101079959969299977019814040410720613280802899557924976046830960890348678490037491030968105552716103533936946341927299911053900322646361964411947320248384895692494334415170619219443496831657274501375708830660286790011481397906646582020821197535093377960282617800003813120544480948487890158254472052280743348351188105796486828063146853400925739032626837558389090492485045251406770429555741195789715772431528812382083481360313410586408088922515894421103878390433357466944216348421677563105169653044776508637719872609243423890222545568400445672172181821459159027740402653328099104259601421322986509719357673239054368067886951543596244930214714986423891288810088889428342591950415801050368478820092584304380725374060947141400812851837719588573677621122982948225507442460688927497979901922405938541103021731886537440329927705167041314634851768001981984865330657664730927314606220436105217129981290928187022052474851223369729281274833730700506315047762827344165435606021114382739821512798454843066183302555668631821231050674168075266684669181566713938890814959735623886625216595697185449426795560347768468830584210611706625634515001321065549130924472866718157123908162584700895429390681923411348598389676267033760934406291021430579425774845939395518184977365065967448551124251783677837411121910159767109842490759235778323145663835458657865403235942808425883482036698447115026818926220279862469683694253184739161056660192090522901163124589783486011593552973716579045111147615042224216176264646742957994807098218441162193199980094557806850302938356477927581460838348982478833135980606444755029922380287025666381502993230726181700775171138521304968431256698197934283469863427018825636439188161049868545114326603054376060451016675786662941013695948600098146743476473198051620600618273976693707542350171838544275371392109366084513362897758180970006620964739736111080387163612183291762364601400695275957144284636449567021015851258969753797194873663244887118912013030340610992275361494842451738348541018795456342302342266261208536497376697478789877770060518971362045306716128681120744665823273904533802057145018748546646162946387784421615984076729122896759616491840550419060580890214015525072476210858805822428434876168196994847756823739171131941110520236214142922591968486776749819266472137345261648213936748863314640860923146824491165387784950383697316534980923963757139235731269323771314694100573328715047438167760468574659530741120900500734570901859989602861310330075919556703514500369753616376399443839544807463327981237433090033668972771186801510573706795446707884095131693107949044938614728941796213813113187855796651791946129210805777129555380626717938648846962248663928971104135717279761613443651500025786234568411711647607375517191106392876364264536122528262614551666424992712842484942557130786655450631158019076388874161919275706451332900165012612159770170068228874541800382785741901132156065573497906420498052829899086106407374332157739302666166445686638970257300278461952111659159040108788068489905338260098775075241514400581792908693950436408020263658833821992986960938604441126432736767755300269533120164956934933865808053809866770565530112932837524920354715829362823932381618747841804804229540170269912260816508651447947016813033380902052941548562619165118176641967713708854574117547927250531752184794752555119678201610214316767253135838573139463842016380740866752036061485884946494741820320378394206926688717835803568111512609567652523069910016403162494406363989732336020795417519035640164503504372336846168552657535083098667905668176209935063266689626452181652943407645590866348465441975966320482906233258563060981614809371137631326214209663492969995463648584956614767057283803572622805898384788622628020957816868727906579805854790969078691080419673991779705368251385009946019358527795178310923950371530811055794301321739895984987970342580716545896866422016698298847603615783014081980691217475532170722555053799350342343544734302617134701546837176639756803283685608343748116471907122836495609457639959294266432432857700145530708974139968300114263039044912182723037289996815019459542520478334371635511567130983727851424421155178023254540719286115362013225247505274809428134699346561878988269504604392121197626458015564841747890697940044299764907724935539319372565380007180515475986125479906082970863492622354707948371724834812343498958287403785281592595541691212951054655094216007119680893420763273211089793462995502013145946912940663943801815295961287573447012567245555992778681960644013716644130134117999032060103673079681384743610444826822426882794142223283073686083593441384983470748892237312374357354408378723351591733725159560441579804371490156484375392762907199315678163229042725844677125791238075461347824816984864203960977217441795123179888781849053547260795824809309766369762069817502180663885066512407302967235284623317906053026674616023791126776192300923814451773254036180940379486501175620903556618239077142171048434800574546763863661612170040217525410428210243896510257010688777231738736749318309583735102368613808603170459730747463778414531182420578806027380864876075997658008584204527191668466075469502340669312295747674821578107895800234069554301525700575317029831542824842684247062783153596052450549980426075199114685954001223120179002126929393489887409881925959290511349101688741888890637618811886993148521862934090260950409769057506208948500526322790930899237934189720508649928916240302852710144654432641427610643200079429319209675733883310578763929253940249992823125347789712806504988583756659558869384469108027725960175072905321513535444507400732972870602801781239303440436921269272008738277200091274352752359484055030337241074293401409524390745891296446022573894924494767143836267157681941646612255501737639609320083953372819956063109535323745365036287553576330204957206442672742056134624665501900906764581535008886880489866627766926038522978905779368009586891048879638760362078822898154334852789768166727465915054358544885667960683862187007538692474344076140813806741338943056715895204368862438895795914919245199021006711525862568247410340857277992262979779243090947944621583678919105499248377147889247601336435639732508371989210350570278236132362073567837989546292361383146974046732362327509353559222779770795511802943963709741689971953978717769470517758002316764422148643110544179106174867565716353824318021266747130450609379436098407927057201363982559496238082404410653029753280841019477365805895593555460839507170524888093702893712940790858849589010076157206652273229685559729657308813044776641814723750816171739767110458668650920262926119346253845674499679990804246069666543229217227773811184613260462745047697457401656749808164193147790072736659768493410707080725095600898877913824300166177384672840209361710010432635875013202394691698306689960077200001686467381021800431284296167756204154877432309403196545917402286269263050629554142697619137627793265025409785514008022699379497584371182968649826532955526466442063813288593596287177061333015799898900826012438516284133453175824229413674370045743438171431753264516320103925147143860215492419318742821922272697936408112746797443417813456298158667980134444366174693561331726052545192949519354588107987694044042218217643601226195510767076276952087354165200659346092251427742595478892426333779076326766401710690562881509096385002785165831851761576293324518410831565527271348737735475504459920000391278706617496838363819009547804544882907088450786992968531766335734667838186044915249518034980131210388707344898818244341300550391232539958461152464141081555320350653674163948780442862213870188036378261022369636101341078787139839355151445184575807945078381055726948064806001803173816914354303287400788398221982327984387107489891291870454124340249648062217964395744351609351340270732931429289941946630713354659401801184543920460362720542167302630520113945029170329157192044576989380224679334313243339762880101189583692727732867615672365133317909842955679112992348412974363991554243764436559098358941008858662865580606719517553463933117326123829652832954186280087982633044879414996216389430214568932589533976518360845107297949336460486924577495305195395908135924324229124081215421274020086536224425616599580066905390646230600326481797271714232738555421580038842948669128612031379656688154650748805190711267362193736653818988646191461276724382733729834327969082154315451468006840159047512212901154830696650303923221989964040644124069048176226965487607547269448236654055822195151628407955143009186180233919700146827335508434210054457238555696684442990185081225547107721942229245491476884190535501540649125008663167626664057727563534734807021411123550834458599769670345986594391157289019676233001028424416171332217278976036170566291934807576825879060099995317765723032390170661962386152528756858931477319120677992328573887603825157676340814632896279883168479516597150849959241826814223940732501429313345294492497155864703428687065798313275407956235771751462042018390588105784872621072930220478430453044114016694226967390965093553609964840958253990187418170233257208290263244639061407444210815691709264821712390530932808974217589501200875690740441383151661853941249809440462924878912217008286366294383426664147689535435406010187670489272370140962826429453609561074440798480011278018759132185079039277483384766268520401631021093863383737715966418695533888420320878302876274709308517458574739614614391965666506904862499787654596111283484086152341673106951834726519397402321312635329217189448828198717888499168044283433956528899544471398743301091097052611592462166795920410346123621096710489863377335031726803918758903529132126087458262406421360431855898748879362069995309775188506173920231429698049554588665460690075217394869757426494603863799619172380483411467834269434389992137552953796377071285567555744013822808176107951810942605606094142701351668457013351190336052947069726137250409429645244066092626879616651463414515111094261904532872612100718550055295180780349563520841757376905667205872773885050302332724828683329393821659463981465408950964106730100930977463163936533641702888436720218038260258749384669960176745284435677961061104299943714351738458462449094497855141483111994244705876321816912594976997185638489924898611981567457708141862676484727819719867749952228706341886259267925103855369562034335541885005247671564096364477805719325159653906627244436400835228782936519115442282408864729612001820242619417729684595259482590652591804098562933193947297289633544571366073564620172203089348406842828471338469802806341675205767685545311813794357615667631454975106885907855849711672848861032080413809675218783180807859503460928759351669996442252288944205556886056975161359674693581636532867469667792449495511039034778661193863318181517717116281966898695170627671851621954540624680204262179264220974301041619986072786754261455317211525887968888814490346909652385339530716986197624952342362421572232806855113773607947989679488359917842242776364984496686570872270344334651811654078795002545990808421526246555377077302403473523829280929207721018782607116710217967504487269823500972989352949144073605308509865869209442837635226222740052106141069262793358303372954703210314202354920073531959443210064276659349573176669994291332480109366204989100489131374257197376235363034764243885464798789537078329141306411133433345437848407416861969123555091090264491680940108596308926278359455503158230836192658547408823278147711317888048436327481110414851504805335740539955598405574661506769212332871847517090202955847365039428215589252660024204948428248237187369400136501585958113142231226430769568627601686055652793198752484184681795013057165810168265107601507815123342925356195391195281269634917696384062685953370382905357003308156868141158373468416864447667100327624410381535110426597240622466977153269048456689816499838920419922565963217393435791130953853510365397217193057088656546272773501771405460233384296715457236854724129667488716125026898682718353612674701715790587573220744996573263439169174264547146897029817521546104194256854136746267660244624855063253258602660801673602351861707208370377940779330242907542473965674551679305042267496172896555923367384361065825689867673904443925922872331511321436228785241113693777020936665092721095130238562119238067235621414944965670724005115042374586162753306926903499471459628122168052065380253565271925511144799390338397804419942931703410871202017805780838826882007957374389892404716882919017808802649986520897238822711691776568484609147893199396424790284203714058919469119525661738162342928362766323130266968768155824172705994801046907843297611094261429519450795600039376174160162650419704082539608040423612128372033842433325503284873698691647290646605653772214647647336675879951750186077232380667036108314890025518467892336479798923486420997382819625181811901176300550821488783761471900769470054640252225925284260938004641754136369766234501555941966758460909768359945011039780983615669340333165000898092490074003708931559703603364546445467043921243508090226731451204136518383733885083412041048300207833805681909021708584060710607686408584697632678507885747690450975549983370861176805993707337946744418556490793830146163300038355655720942899387227226091629705993184065990023013137350168999466955532205330543748894685655267430177140789266212678442951043044317831650747136169327908926301972319814337843708148733675614724271265287260270239354823929366298795446306082251620854851252212112681641413493924595925957640199064204326732416623986312535068863733395205315786077185071572357816063410823224467244475832881786593414569797440329675113849557363580652192908886290751299474883592637024577831983905820392858574422467098604406069697914681191531945092968382600752687902185083596265466478734075953866747659469194780099126147310408011647773887175474099977707708793974759680668543668782134275974384193296319733073950939640873792311666373022228221761921655283977971164054058320974289917806132468530649583563606657835326947296106389914884780295517382253885237895198556719483835568287913500810140107332267917432369243815635566870695183333954424655600242893110208226974953229364468238245251228368886897735683563539402918980096670283873891477484968001762665082459549665460420305597050563026107061081302024389233981689740777348080630524227555499225652123329508961389825125099228544365934606837239406814691820193116537462359716862885138898367191448502036899539339442753396405850235165394769149110963533505045764260484906382071353078979149139308100933239526983852626973746463490495272791367592384384531137647765764110843596282754517160494511292951528735134293255309139532433137946952774007908766799451830336145864830697104864132938027489816925605758845075816961743451739189082638771967854447734851084363326667053822315320235224474394638750371575079279840060654895949441089390928206868360293503449052503351925463855916719200110313153216820873116064294203671787039755085440587745604371295095992466745948674147440306625914331658949442677932567443026218990850927183070675750964833920538756729370934124708821436389977085292452335707109326154895185961773554366414991952684876712415633014790105771558540745443721116856845699799468759555259337982580723911427390314435161435489184359049412360422668484517196060717547356705602529307302303999440480721708043501410582640960220694179929697221341759907424111396985304641427599646439818312339941113704661950895581422892015576937892193742234532673524486715662126588980352137673796555850957901347802707372655887646330353337490978311613970582164380615125036733092946338300047168512820120889752053996483667774221801898550732096536848482203595129902067381879786060344080854925089447409947931189146071060731247128816598401522998426514830385609960137147131799927195619115837669157865074386873910605744605335213007416490159246235573246379871073841490825678580812987059157978372377782033075552409464606177619494404612521403693369973949427142877517144240919842575608616842780791038351342795868392353772530332420195598834174270067460568355154491837916378872027033550087246906780690115314729809033634357175932462158044208053743644483262883194395101042200795428683751911515130792016044436746526098517761519279562427139181174448146527913112913428358764157256982555364679856434790739965792232250945300028949238362732923718763203351099143181747971335443340257699237133643162960917540915117061225519700171442693762722704668179258643040557618283801431404189561859799350985989295935570499579066385971687593089222286318319343083851314079148696514567728975228442639112517480846809843412937884303017109730189224566949995266600615167808104556341128456479838997805067256992601964008891638228048442720220549192872823847677588519854411844049364955240908743583090348796457080251530154553561923077880570242512113641569548076098574266259642242635696872961877754207907332502838810597475067460875361715380300765549104827032052399629812302061233701974711885137310433212134360020511835802904382981653666373554922294440495562916987413857917247622790814669567659235931998379841444878150080086244629102110721995724330847481824000104381963824746639974204064488574994581140670270031156813584244768386100455111444853144607257830156583757391579789807968257004466457339727773294017429578310470407428007761418059023420841646412689372088438826744895467750896858038923759503807067682787065032419602391223529037406876391842227519366264631581528995493372600250913548226494619709659587437987436446475762826142536441884085834148084660061126392827989719517213069947702472770362394235991804501218199508720445040347864991676615561927063807449126798283498329036769579091088886740204265873708920612363789557448614359940136397022456222703875467176849717196232046615472755134083279419274148166563545708011174043449929082340166072171821435742666010333673928305987623296199642453722021722777931564873014413190691942559065959935356995110130461971543728499658613931825954681214451610260521208206581793433519590454359769300816504892264128686835202108833184324548618941049062463128039779315309900502166931264571496405085937993761687933649465304462149208874850433871792313394806050037809364823870312282325782638467736414966781601350619255033639495793421355372335964473095507255806447393807349441880169109011808614937876198571327928709036689443470294945246819398040149305340574165235087147902832073810508533278077868823530520256745689594197862307798426563513399342615068198504672343018337233474021096074951773510355679523610038245335828123957151661785097165223092511596650764350342036797937577645325599336899734517828906593987959922699469216564927342859952959777503239836519651751212533649766393126228272604722488249129436717060228600148361681146910510050315706120968063627654424605408369739641765278894979517382888705957609400067379813658034796615935527487335102400267189030041166580254897000048389371962156904828407123518292581599333996380615718908301040009129879569449459782240953988897603722596834218845367081245235451936928520565548825479617765466794281713985441504310737276987180732405328913904836802325925652765048572680960080953570239901428581420712758026783069238589998568817577132228608382007610330666035472748673933724205172856272070496453960399218394787748111793674134862121901204150377489237869793521489414746418534624217782464269895013651992426081422474477664570170786628937429848078859875555969243119287491723212463687516714019860129388072233850189868463603677323455723772730729456086014140728962240654194579514673461836844146311440464433150664542317431671887175660565676087694542507832184575014474147714804383507598015846390029151349362186081466002128469469530180867776324922317246909290658794398265346542033956377595573803630367160819726861275042011259680734498667524789374689407881716024196096199561346856939305037186934117680424086778857864759451381721103587447593585554054329109177255545212222124751476183160618815037264125326669181626807393705034797214906846627771007413778911562492536790197693898564704512909273395094334055780786230153591021782000485477263941286076868115304863068727054938297464932674090086267170415826624408426123590355003778445174516886847982385967208615761485006403285839783170765157902963774445292489726749020886786238732872357184563086705901327809999903431156969943363479976812648393172518955948970226891704189806631441015222751415602464701476935631276519863501213908297041901667920332489880776341207283121339115941592973954943232927596656737271067601402995504857938837453872175745350112916267096897980855618318273815585349118050347979058389732011705911149397233110555447820879802414446044619233246324101394586338926507977684699926730004543174264312223019548377953462959732163448330043978899637697799375031301181616081476254664502183935385705229002937271823179823696567146360582818998052551666431608695974675783419525174795339989410716273281217410780487904802050426326080998871089136039668311061009914804034236757558717213453236737816830257312162675316566121982778339424503832148863789401214209861478460640353697092361650372793649978022825664776333608797092381916674336539505943433263388073388102729782727262810846208678251955839056725212043810171749998276876118097938599553126186215346242772586509190362472962770354577014025215318751553372508912593318316735936356899096565508611691654147563604305018740364286992463932931554348825198431250258305886197953892212892643811288790032625391995555728126619655178312850115627856876743016278457615126057135402505745303849643611267446348335363969663264476404712319253850541951239765143875419223313332084724918476863403742932041371163278071403982906354448054516054686532975874637218306485238863848170054394470874770495282554627931809711086431561536624450536123319290546243938850813053686023887163437494692371111511944563314447592579137859773160485685816504272494239546588469138397633477092467020891459458558528150918533222955122519691698116931294362951691189726312755886566140594601412218213410920569763731547966665612330757587983320283590565807729176533316128116268110843900097042064328014451959813166917844242869440921085160710042546492025541878196275011075527501846419378713816333152399231990159980106294312099597121488669850085128268638311501001253291494010194076839805726352445728391120738023406295862312754184373123961924086130786256220807588388444183079619611010665169916211522756379695929576309038624157375697627715091025714041360186917378338842524920314844388338255199367334941359810709991983865060080655310183657843052461441813479415885500834300149072182981665290445309673646075806661147994516195729532607217723567865166414293843021577271660338655099973305788638424757632621070949978526539337652118161527470175138642157668888097503525016071140228135705422761645404012087437878049271997678179845334940040231494755548628776043789234407987953898978590668365554730264142292486638739321365965265709899956373506558209919473474042305006900058213129913728620430705166247653335354161606195653804934642571185954310845302225322984320630580517764205903028050612959905951419471717928717888533531201757175211701915197112428838276587441286587456315977041396846010934762628731865352741271554573821956071157004943765063037474223849161601855742355980828754983016922202831820166730920289405038485269055291476435347967427473542224738213861212397126638874421293043140569474529021040871634913731183569735739155310589929085883798998505995650899038948204303205576794079603273144784667302251952310709162705030816045505312391998952688828531722950433100792002425728944774316691115482042113335969126507699665781700520672189189297477196962204584359816010523563783358445420771629859108722526942608984585668907484062120266156519680283673131463044067469322915261220113130426052187164701190739934676177427198024928530990939957686954172877133023993518867374347175747246628292076972082553182215356001064232363428361534078606370385627207420560816563273090022671000803482837792446522588453254789659270719378360662749194863266825393285900091094734933188219307607570609531780496225057520050628804097839284316882652256013539037847212165590374250354726128866798074709924053413514743251103099070906576921193078042746805780931164334243449418962511144881526541677034135617168770914326619857080980215050385687742125237937501716746456365079970635131370394796033522582064064192285506961337012374434611824972102598751240298673398294335255257037330927168540826943641163634590069649102391506176364880684782325527800383023873934573498551422977162997800166247699487517266840584145418277148060480655926152669485922235377897154252389851821009718586568473058234536662282148893804909612269447224327601639600629858399727280026486491028745026089302040574524233159555445203008166081717953366789921112885362221385576058114842950654300639798656437897944900010646174044811807461398574886221096484133657828190770550102414120202946764352151176561276114977028029462614741196519605861476787899738640582147734973625538939355100985688004544090037116513344471193870525365194815453723707777208717687218791255431917845363201712734249047518003949823147516926033405961604838050561147639589451945397156305028813836731340207691033050332707355812131820431338722757480421818025080023773392408679692866469273969201848466658142025154765998991701806764756732549867697358997395315709738192787831386261377425413576553709202418994464784567297405627565889627669589694946206072881504145085417221062432839480944543685023460581308197040888039061118733178082498732014144162092378027276739858015107720921639324867921285850925687877441957220023615043143588572414600872264957916963751410866182246101003134018039013247038094725142394764954159003811376838117726872553370543993187192043842752232349897199765887043871169011422843282423367944477115715089342707871783624484578029889077800353217444667738373951871063675306062310736722938449491910104144154704623146748012236536901361275136486836958908617007930156973076895720549249826035491861635518174574572926510964519516122162124342398715394663836644765770641925221473360319255958503911374734471321360199311509472423400150299542984617074346362131074336128553964325203454217222057480977438939740483837596384955805731408196767039724843534961711269548205220596888436132293766258237658525017563549762671803305296499258568592238404787899578536467627288596569908342635610447009153084534644684097749704091044458841370857461336050467058287628205566265818785280953250791534910827360174022711325210765778337537646218458098262418798739311443555961083979482659964034032852713325663485493572038230559373061945159906008311612742434442991451586701118079295291640974895072187412554859456686154200225840005072930636028590738201683625839120829641176791777263665564296909231288970131970927329642362979079794902623694166687859659593566897795206551762468840415392304116081613748152494512195349014345870689780569721242540714798479407433814929666690673168856479925770060144282036045990626236322068185801275520659178778711632925995927076748258526097452761729135259924545997539959169294510894636633170638335488302437666761313726323379992107496612255899115650679749516807954651788370657407216330866637676291438841938010293147571944622349000718110164071652624657086404533461113150367249970917073312300269077488734118148331388672659246967079818650501667975549560288909611506301467043317927435550987671148102864217600375175014419883912831412642082532991280821005891144471726170563160474668543148685339107132952620160260807814220267682974471465236024676894614933631990727680195277240446720962263383960273046769542886768422750693178741009569316807118561282586894211793557680014449069409612233734916830212494107348679099649410395275929876927575457604107697918913306382099786247907706555505927267937549036180607326646035820252389904090640873124617188519513566153881799052004957548706537626326635729565783244800742246800184971522677403966393828808679250632243440250141604346093338781369084051903464970767539725630532484129238124071845947013588111800238709321506906807161747610423247906340341012162314828278722504253209963289632886756052531361665796133219469437699822793277175025644967640419146154920431222626271518603322136238027016888499926889535501701628483266043152717919523750954209441123345072718131311779863986265830992052697750538609867255923312428498828227830326021293337311754968741550014065718561808835950324238298484537993766238929686040808251660808643324700203039742464589508269289609504019725944382292094831575435343121757473967417604694473095515940116260183978947316811857903314935833365178893015986970512980126286609790284965439046264796793530560362999858157104390361200237657869275024820069146717673674288834563734583888330221819464296390570568798624537610903070809314419427955911962362227207890244920080030738722940065725577529420684024048284324298042220347438891658870877538974010401430748964522732621047802204736418464954668203609705609985934381263551482737465050927593334960019913257431718547610017398259396204367599632723646325008528372912547894549127223707469629717111145288650385116279328092903890768519157226168751328611361552386259047152079535234716330251586393426789235234750098659265654931946081962255144237123659922779618883129987266287413335008860396994646384402795072253139286000900203440102893480984032531141212239275481549688225030412636100457329720578062992919015905860259552470908478199912604595447924772874071296568675980591951725215705279423194079836231567649890597684366064764535613049263842608773682226973606019738678769284641485900230856761545227097967642052402897792621093078392718059561245658278398051018600204053260167278887345133603040256308707785503206230584700568688008251671845194271067358544373982335250991100414892941735979774274871173641448825776249798892108853586280860376254801955586752813327917234831020823618059517790237358860419915969979518427996585258820176275116582063158830126655010490168822518419178711968027402635164921324666534137275436050539249667876350893524900558982822955692897295323173605009435200108183314969362716121017503560648866577326893884411249851145229638961770136033946979678574649245442172929901489648527119570203087317462309891395061502487741373991799577529221445811406492506329053921478080501288880443192577167922791682886594882511390782092310755235923554510474486592762452685488863772463511788495241842445348324805575061133025984565116603009692416495262442984848044497287571816750690957931856252979108441165534205960883707769719062668493879171095730342753823966631123417116337066202793207471098924911950092808914459776192182116640683883117126542509488740461470429469958595055463466368518157913827077160528464208212841029009412343029126273811356220895326164978602330277806337963348453068450189450426570261108841719996535619783492735362247949254573740695504382814611754750111006795504231581156996762784271549582505448397338850036180983699196828003139148753294015849511383693010101726056070500561342557900458929404531174056887466409869687437097967145648916741829311412190599961606713539522230445811235553566101835964318782020309931275971324735498623173580845399721881255948813845077471382087409876331609160309115195509179387418997013560137367641628056870704810884814915795672909741578941292019037436787857617279423600475162267436392281855225019849664171005798215689502434792428510885172726023930999575344923803485988240463083963858033779660759414547180310879499877096116790711271342123121689812966245523647993154887456316112551292129098727484274621089319456740942417710746297275964333652659418060552196551896798610057886526499888653313854121547531922367361274198643205719124564644316929693385641575753365598482670424437562843529125346655162509151170567623129572743679614953455437174059582713253483390122893596405613577510259176171635001346354540746784188512862587381771714778029851050729554253752993243643264996915196584631180784576105000701213485312381033724771892791146400011522009811912801141069107381583348625443624549644836928111450298833202183949206557386943337731968245640767019998432718834812480615376576854654790150239978331407123264620722644963320460356356647641077128670120632273353235191391359512160989208037645149918015309232892417867592245747171933096992872220543712367637928584342907183911497372319013623640138001037526960839639846870336297255478864252624930077176032418154880087518172658394471791755584945482750628834589261382689777964161587915811306321823048627057117360506543958780209962063813268297092870626212791002499359265412488267416402376447718391220510460391235224788494220383716423357681179222036098873676983838144088042325269379246603641766212482799507840935693380614336861494122940948057137184776429438590762396370395164013899920289335503694613466263161202511879530569161354917784263780957168840687861832562938697490246439382794448268934094597206399228435612444732828953116551827574541855568540103887646749427432443866618564328077287479069997361449098838648223392598576581272664337788196376296321537932593883429486167722757006817444864719780559922673792996347340152041338018263666850339345270610537036612753202928550561654889344489632874745302215831496033194497068025214733179558619354648778389667747856694611887980929621656759726394597512965807161894937777195611230854402582071004457796061751779601186820112549263916701696851287942664378580701893940030921091218574893056101672163529032720688657636961552829382556137483129267343222512998089634615812827854024233800872450362702729567509677869331918475221469592647449107787442155927720754268675765697463591861768915908478823685626914215661941314782746196647021216264841500556964735571367119675702541978633470649370771977243507798284979066575989266627541761638504799889076948316075241860895872190254885791813783532550879774740869039840588156537011021915334586165596692935858106175590527444496939078620832791011728457982489850868926478101832609817811802036102764791986465725743800330209220780584498771339755229442636427844936625453740495468897472621275732218064207852815558408505877400113936546189006040153217873040609657570786492262082491743203048742532086704294554995197083078241570966093223551747296499849178954817656856455385241419503450625781065969198680542956152371733462942245915392108543992354744955546381171953063787552045185318179305599130648759045163927643966043917450568402623888436251105459761767044287116455798786686831398716471772628272473527264536300807082238758913323134126010500902967594149979827567939739759605610747777888898648440724854817331037123111846048475970372599983094932697249368876807472854036603283951451599408496877241313275438056274465236454514851912713795704026298103351418827719607188104684810487407381877481593511372650051967267393118827314219201750468138489424591284182441314388800108081095055337672885013611860033312101057233149400384035995376949258069600032539080609223277635238471759203755850367811613600450986201259873145497625924335612126232547923183388828673335147737690107031071814166584807544132442928637319430707326074887493668638805092999493309137241521484865005047291554332511730382950634941432835046240235233692659775691901167285026912584256381228133726461383060110968098690432591405770203116981238368219994461340785683907022031496533332643399914914010024712955775525103554929591076895937047193117515848468242690613056428481548367454976260754594071613952564436891784190481593922134439769635434702586852402899324824920856379095508872963178920788202608055252490317319576687002032681474084050380799842700444430067612095050249896258725903665210004123371136199693160659583451977323906627815441022285749021347113678237735734561587608701140193566948819116335416555387630774197108201232881965514039747651099303524738996299590790993407955350662067261575872333358255348801220543678701989435954773168697195707424063515821289517769918751415155408999589900202802866976899556870746605111970883152518242439010728837195193909705266594847124597589533819440267551840696954087448887168243728148575395000062844841629637010360662788283769337006556349843921004582378135440682438263274955168023158559478673782151573066562808870612731294382688595522578978327224888010272140858503216006407842934817896935259810205195623654758619406778162105342604572565279571258631923850318678289356060322627714959501204454965822141469560550813961773747234728604965767268005413618698033526596680063398260683600098435153261406047956645635159625965111025014265749690214163640321482574430462305790158321955912242659908565536726040926207658079606083469453197309188533658525908909641795513370969133626049099183362403465874550822311104530194233662909500891099068221995974307293419874147629660951380268088876403955778278841833711817338309156029426368418388849533957008180719539342445816504658400433585494670793845264245318187754868516877773571947348519164154117848948669290766792711319961168361183091305889035414163642487046954886040449997141141186567842869016427206627676996062290892050476733798829762662422502707747029818939484539591623767863446149431661535733779804535412463519566536800796359162665663238743207732725414036180134732191885368975599919737202193488118809577516766913542126991913452227636952968140790025937977715163964528742136352758430724336735422921627561260142892125919207505697104058303755452449809632740437479126301000989261179592172211827728121714964213217980595604236755493160890026302935677851173862276738203453554750940468658046340541441170051418584873733256367889725328333606329660701070745572150246360017563618564836165699262898650088792036887254871115691244457286983045394636678894480065656696874908602749198532990004760677277140321028903539903573294948028309286402597536527332063146738693066807737588066583817586407801990329320596111945024869367064137629618434152676714989237133550521779106034238313197924322936986050739171080999093677188217909238498158765062943139622639781828408373063711467807527242015645405831084237692541185521099489743394373986830690553845046537985325574336932633771691003542487719208990576307281544401558998296215080269984900336925549941331283572251810617024213574900997239143193802441253962442716046673373631524512768794176063300329353424992675936424095611844442337727392026602359841033424681298225378910877552110074527813722121107814055998732278144238950158121082292179775616515931865420697690986607932125428144233358392700536356613666109572437344142166529443476279889213755565057063783484201141908997164662483849716194967080891607279928892245638444092608018977575699857737056293576705094879814800591159263779734422599332912885219702192503099912557063350198819106033079167139926826417628042707716712938014937050696268902415245712963820925863503886948157669697459652877184175437789001242484832379284750659059623945024149659992876240502963171493440112983667948509358524739067737829055944191548154984632534238425942934546608908965059343775421720577331861185559576049907997225334668164579733893666690805974777198641944186446300282228185013055781485752536990970783056728841819831650080497085852000577424784496843680389689553174261070187652125163571298068404410887535224233872411535225752546996631396974470232449281942471150291586782698352010760629985787559479958180811917659148327399445919722668157975020884105058539549680910869307989588820488494622715285237397344197422512841339451694350177220760851776266752820617916575372900564191073484963955332799866363970769388494236442658500851749173536843713623315971318648777854333941717172463408703785180051262603864789223318215673363644166805755646678509756530159228829193138358645372562756777891499273185926045596038519961122675235518816621510656226218936126030276685847652615184268748265294442263211763291586903558688558989198126868378285864809644710966297206657513911324022883213681165245964341061178404101722533638882630505788523056559234517347748865955940095045084806064931699719197152181206740042052091903954706179274196351127013993881432215188374814200134604553915350451555136880694200642909422836860448754092993163654379919761413510365276502967817886756182423153923472329974027170157167450760940231149344376515820711799590845801036299094430821875319481820519843699740288411553705890004355175743336119236471254832668076302313819084950324838897007529848321025177181822079206358708012903907075786594222221314154117713900954882837673115520824748079323357329716608853090385151045978994889422427173884412968683134275740218884186411899400617266572628700731530541172394344640503568426804895130519347209718876611026214175079555270862219897983765753666684126230813040292957119026624694274017043756659155788566658812714280088962250854868158428776541993987240190165217891320510966783738255500568339687984456241993952631059195654441399537045428267467982867242885772580208338072959269011219629958958313785128722814071984484266403059994183179343159517884414636848393260359942757525391678434785482245221317759447515155910056231796656512248836318346971008504655295303314869061826680907493239369839549592016421244784226324132935131667296082230572074790690134263846955293010183830543953571365123418697395904421110574469641464594970103189254376502384166067634734102336164130999157815576591216308222380117589609712857251619710145789208533543369696914818214286928880925424533144220546544518312438777081517818061517530869837844105869140770975697718458131576470046569115385961488067061073235743963943446888079488913302198198463964507458449340530217204110859188110089351685963285171716730115792609721121732266055672590201366552100013705926446392686312794756683089092054219997819724079813355610294303408558801729293611328088128816174628868187676719229036554034885094651107644549641808519626884112519841214346339461629775379991242621205685358591555786594005266879356298743889222311694437457083958690347750253401878401211422968619403943344152656103583768868636316361434803679747430218804674759908253592620892757210101493785098120036034131179761221970027725786641763126443240483765429668017742531338738883786767109076940660870961250606560781133930232668246263083845866978369389272202904773503386686452030048734679994197559341766732560070059181752458903414310896555119508834811029576564614589125043315368975308025105810793298616879476507893497806342785240771054858402011592746612349905189684045186488382803864214183001826767961196832484355684449316212938709812979342666417580130100876681437068233775763601248721849088994898667571469920899454050386734518697919013131934068041188174482496673093696083967390858031216598753443180829851458503058848374496211946876309456609919033262393304952474282957424709721349668922414871260267559534952903372811824427734223326854620822211683624261577075862642885953639050353022077663485706774895023766424020282905980681673974299819853633957213389853244071825797339081467923852062869872999629486754192285369043262468437956042433813950386338449320328906686020325507542580382812412977428723710893880351883530797588698268505283810426088010983493012318054240680353173212502214532743407055742110117706086330405336545175035918247824087161672747010177206485258611201517617685239099963754101713136555319989817301267300808434469356773225588832940017478569338920015143863279601646988396988116308708912410133692459518632758385434410387980127485882535165551552749430137508368121538908760850750579034869306970236964558466100329195029400872807471250257931974881131678806498489544083967625598926698179353557660924311462042802302366706842153811840130194881502795702553865887620066504575947345719858425365458510009416167771494202597123550092009681531225318381434126747381464320263474830720886461532466203897793004045747472156151197998866283487508677504653928217679941587861605205314137915273446298182704316277310143504802087838321808477172293791175231705085498387289411191583167077779756626880559127499707312432087083116646344081204393326096135417301983357347796475100169488192263681661510587733642221450521678061308557030964959545261238690449149117787074977959021951564763930676174503433806453557389163967861065348069800839975125578888296739207272116180563551633326041549310615591124137815203349348262016760899453827596584767700286966307847842647067109098462416943068831178566290597068972151329990183540864689396301725598303681226562597848474130711265847741502020950340292911535474036203695569296679085913790851199175504844168286977372366792376553434876605763127329124153620811042631515234057988085832742830882075508231446639347265276605645394726157807957275050766148398827884716865035437747956335042266118757796265480618361618436056878087547749827666121779875436972742577552133282038223162346518426064179518862318049258163921993053021494131382352115175286472806668677143534310087799539915235632466414452317531001817044927540980341867092536923523151356446482477336318236456398611151402974059228768850625121189043757283909236833193832358105928599279593239104628983295449899962821392904447338435916690076271532440593540559405957836928067180085283901570481639846097636787034145805469052123611483567781159882850896625663449650542636587767602227893736793774367024126059892056922956944020643299123171867353058592318918007093724284599114419669011102139173898262836543774762231560487619642139764236743364947111728999215836172666036957984640096821618972870329379042738515274488877993948648757927133375354574565213100220790967470614850574065749880756618420725132730886776335286176117252033296194917794374071888132583016593899976242808606309890413476978376726192718429448544496299480401308960964646174014119213312438612444298263996213300344118844434332150907082223339275795782680108383985011352950307898118423475566826845019165529263244372232992869567605689642266312087291984381419124296133905670910411236510841051450049744013994280632156765129182871957380671839556405744117927782370058330607808336087212607924126970339817112469356650129314646493848949267897261455270991111965628736990512398117898982927803676331275243744255751011814685586304083942721671450393748694150715756959498379294889552924430358330410567105098677222193290460342671130200788210849022123150427617792960959218648372450401909217279242807123446807887369525520604783674840111377434004506746378473090798858519535902019313091449391049749928421056160018486942365893520750426226584869750102345359223676067587781005449160652902008777969316930272695907487481868876206782333341261180470927748280115088072861788968388316472327090133393677345386261593270062497339380065648724286021688681347216079147605642120815658863759094380809618652853714251359981029306883061497116053154034349548089562288817879651558915314623941130285319469687870197276163943707413787098992595962708314368266973119335017198405441609039526562730842801189030936006747169815514611288530327001274820765097615168155397802118682050842975712824011056064843696712575012363655169928703586847481461484684507349118720685435575320251150175724028579914277930601746421426350833418436870941437378777807303348070373633752011681991945251565318265847652220138631074242319567113897201302630945306609056322473613040473724844381451030424036809204126993263504706346302981215124797036688572297264378688599016476204266908079226660927607486807300488242204200692275294521142686293600697433525925882065398854996614952389846355379051096333988152497867975804648002885850114372444952228559235788816202477342917897827781342299983778560459001103752177585425378940127280755140700412117094814896541519862642640265048841089688203853445943728510980432549437317560798788605876346423231470472048305600052461413432796774626618046399536271586213369691270769249273958870929114738393444288686000285759892847939383674993107639091206697735334561923427896809680139441336794827044682181518891907733504818887309187473471114765670830820386660548840681232416410395212957506643332459551171630168893031462882184191552219360868326379785018174792111940172513894575291870375708121855074942318668485518583861936980441781257326829067896475826330541126373738219520356863263604775244658475777418070665850198782634786395700575101787191558351859083172888645938589987016800299061852715708750738499794452747459447765519666936616960678334276932638819252795754332982346625417645052943613198994993639320212503205145963602521567391933357234029247977577986933775534174935873249433865186126466012246110737341641122601355991450270494951836664323400486006630135909929558794199514826378046739018888945987280869437268759698286692518037741052486640135618596915681408777349609471525758898009733948749127685593763361685156967394116314688373588217214643275011252098037207511503829081601387488629073759178592545124312263371826318821414296762835649445621357632642282374333736731677252199712057289335202340549481516856145841082438574867428712307925115379947070720283942537016322318785633493427071674602228153078397806003898380053933727939525913786064688272023935716973900478689940657827039769706719102016202415921947225938610458249700586537171300399028033276442880138741743130376090361595984356196617067734700237116881057696559929385117694820621345782876623119326648121894724835629162282424687368075614263404952863518238955880963181011472350938682528455029932077251721739070253784486186650802771174081562614385723114805534899800477778574267914349327355311949611048512146197376017769645470480767675661026725198265847590598394435976156425826892909100871993633792424913920195816920092543528909917082717878989646451657925857087473641596016462670265484558126789859466034059658509207370979763680546140490044411101596251924209218603069123541400479829734887568808991262373927712286317395906530421221014758034026380168760864563365087780803951035761527365677250741694175863666535025189234782225200792392913013479730368508853222039206870888593776486678393982568636899937178198687516667490375563776354106242974420463444529136571996576519250123698463392406119696816536931490130844839791510886932107919947543386166138966527028677950549090874055293648379073007725503718367454549672315176767608618438603309175749425923043727682289392717677535039514499033784215339731627142358679356098915908533063373068939513495219034351152589987852781112210701696779902187637504179935406147766669814237570722243318418958231301282560637899717504424574771674614937071261568258257264851190736488143307242330162541323279944439847055594336167006800501522527896314774756580587994883173933834634657897928026271254608782055737011708433878128567568354816875573229543795906249990047340846393192781108649516531187304303128555679809459729364193180674108114015455339547176405200403917937989724944517214953551248009423155097807751001255526623742327381050787160754369759640183936358263122664401250275696482639873660905261040073726953108813561275690272613162763978798548681983493541227780496544468691748424457432313982241841903023814668059147503419982096650803935148243305331614054920180468129973362245253512936927167810732671905291105390064319002469374321615237708529445624401517093585106286273162076060901198134184238780323284112918505103426769580533925021462939950058624845567668614862084642928101055176947644918676338567179564429216619314489781782503238704460478629110055270547567689617845659267113163096645307986074504914344079724550800937192095525864036110836111833054717733585126180013598619137645884348036414515208383798927252164662443428378461764961222779723059548646501211017347740096352411807113649185047158618100434691387026077503312572599035883484522313955673199566905604486735090040449219666732086116777198508243929036782216665081388125640255841208082616091483843063509918906424082914271661987911524843942303775994269463432953143299171218339784951026021545241931645137612778003596312211729847854691112023600706663167211847163220110665113971192689968244389704163613854509521733765990025093417365268684259045264924402900221426830424663246971875986899652313207060343312172962366390949878658623128769255357821798506211022350053120796153009338194273522446825232208272622222023521785031903334539634331988746882560753572831919839466419874613556790350249931914544497356333117824634740399153552075256715002436873486955715743090355214202374828342421350944438315280717265857553283804530195331981626628460302483545028212048595286603678224083873505548426203269387388066629382119035705981996930773992420141572039960413061445398527984133926160689245748472851025610437556318460758348171280547725785243899286330279989169366851664217119719938869343972248468927400408537602431728526233651438689902042382191096734720141409602594947994563644579178453559780004483679708154822534579936061574628433952446215022928698298815216062851843085778473212555860396828307170681766142512111115550667340965033788274943014524930671247090325884760410976965959938236458169265405663155920975446742056454998318270186047065156331509941699828308388593091484230067083332479574914249666533958344370302185171141682694058081051648944651201439272558525025931075557946812443224338704196910850105501057579928216314324918407577055166135229264558037374673359988265677923973919215740248338851268058800219828210971406016635922517349781832645365363395113711279040453646335091576780735334879064177595068500178838125001003694928492271262710478390828595810426042093985694704735779053511073801194615280828298987069399833030181162497868317339778545333036290354510065208141771508411380633832385471462545003788447781114496748599242569837338406939465966881916420895019277246348865647803741453481173833941471468922459489421933403889614783636553596436967898748853529681303637736622060148863263579452842386279716008571597088657926053612643949507640570149478423793036893137474805003367083047517014784335725341181734703567501242549969571332733222178961634447482492387390427745563523366752540491296858839710178550727978548803881663701733002727877328434597182271475325987816369313446891650984227840797213896755851534668180954471921682217591737648400735017776672796288820705355918009027856110872174408985148941533418889780530432310739453808118243300120703375835566420627402412340810545902180590197461717927827391750559893809672643185304768247762446614546593361317653014128996260178611039802268834756993629396139546441759884028398447108747435163790408408771118758931108768794925297560912087051397480363199397112930215403238887985867956053127165241243451002946544293695917436349845048896094118747591545188484929975317780588984111833494037904995771828159515838294821850834873102426679124715046222707504408333436311181232858299161500745642114194779965647314377136348705899555540550957310917621802309348721683337911287743217588068786787327267725996133524631065603785834825853889837153332935695949234915020359173103005217325664675612237423693262945257943020300193907090614243861793883680108175224552026055741427336651257640043371724025687801281275850963282324928682968927316897259763777610563151987745406144624690384622490755736467851819386658507977930296833460011617043905516593680045568180095962623855356555901471446194094031963450423101016159342830198903701583454075872788431716179332674863125745131624365130656687477585687593321933515663524477719287910709810993757876446375416874068182787537085847191019597725479736409024207609462357408214870447585896055466180332619855612256188726872955594808493681701581486094161383652726743535713190598740249112751462812688642877555208051597985896163727367095245451739697358253666323201170634550312164952984459299871524757124357245771312955832496043746178003551715778505553521207659875867170799774823996507680953219426576350912162212174585138899758673640459543420555572078863824158627332449461309098106062787856010221474640706231984833432605807164032707438302057877771348468766858263243418838068514299671350448451631939328897800428629334161959288562414200727222433356893463437079766757375783749076778848553043748289779929511969388682767096911131338298220359889624933109784637595468645323338370400817070794987660806585333558564425970231860250784084951477176228914393684051776503824387781905507793717581525112931821608454478505462009692648952490627833435130178311977867552719691939102212139059182770506790195949370821224879849851729767810170167070085677509234174998680516044066656478565648144478103747089526569189970138097566014622487595580352728816313088890903485206181691847857636342153097411711610480198945063643758549612838751205006525945478779731829246670409493732352601995549005667008043499025388587440217084128812107563806274322493873129541830078557915162213529053813189031970516765143521627585247320128573084847155894998896979630483981429390532521177127817870569967848284131935528738033725621041274456410361440306813790013730317341830609649037847003852179598604521962326708908722908794243367694239681832223894021104584559537100027193669724300851097401631977909965921858047975592151116501388768430387644085973906867668838765202573987380984667930000214439514038600756267295989355798196454561032300194886022228723275427276147670391758593184403156663911759299276314864231652994075716752016098441932167934470635347613209613598521501622391773702833534551370247288479281740381709080420435144227891917943199422168109127634163337425775075452878168867162775185863820012861402903848738508888733600511838540565090215661682116981543786227388529352751802438625856568757220765055443867197741996251744414692119353354481607502129385414639991914657992856697238302830008990797574447738743451383103274562169754055629181828535377097734999559926021105341871181550326554460554866856067497552435802040422012368971451684835395805391169187565746432000629421471724417340684771893714685368696118226160999366569546565773542372863610960879231412958067414190583025865685205675048479500569359739735583042670232705679637312378173091462881540473489937869986278893177246806857332469529662294507267762179826651449298072663461056272068034839600595559862016832280967392144098953682008531732357519941371699147508188507371588095407721330743391849558290206882448405860926480284695615865651984185740663696559707882931549870535348105406791597799690043886619602221452319302832430908833269593371991490134523553994113058908544577837927789151604306872034881946297443180985601775422225802013212190895828384385623526102609233963160422559791362565117707897541018414772590756353000633740186643305933397334530097945432897944607640064419083698064740241362780569246277954672979108013276468423509290755655117745624059713728044214612330790943395510903182184083665005187311552548111034388439187561117756657577817752723283400227693557277890646418551575110170910025976884110151577495866369042830014514402848021167025372919208382659713211482341825751343042813797668841529983485926566122238462870824333923073655144573439057400313791014866638316228306671225340160703132298324055581485044166057392316569195174119872615611393965697931147845724765154319617309696612098344528536953733445319524719570065417917073976973526863554839310205627724160242369789784469814491243119581072472403821757209105232125108163226458643626976269844142036725060014169097181469983143084543291748191776894393214532199155360726139273277253990789042181835786348869690009797016618885015579867295868272671228220032977821687784146390904946769312166126500201806252352610333618484812802816126662543380778839887537612075092467269852994178016020127227983963472687386505839060371466715463557377293347435159763363880689031164616390903993522099589828189837991144115864652211064899877533790082596815677099440297427124463936072695221586585301867073940794259658898183303132780861622323257670312937304763664611854534855525728830594629948280219750830522011861553423531972844444601786681341507535714331112717403665126352006536747207413854501149313864732934457923273907805285999480434121980650012874730352497448789867826843205395250763084942468463009352980263036576702171695064390173153092344639544588018552268935853203084002079488305342052993011788234563415583014939654626861312674221247856002109926646957343113870472765638087501802288382980133202372351957869823362374634105170352765512027654916986574630738497020681173716165853791216110584279444107015949311711332240371563179088050175237708601944714480053578763162101882724691598775913899628353233397872237514465113408479720033405209388029950688188322496256522044479700701887484400558118127969090406412904944126323940834891776654718714473844016477871325557645111986405327035138731581296482872168361653102533596614996223275625363202562158631761523405972492341100660636724974074258065578324692426842850134142110905963054801789336000499419272233696550159265290468668024371196966428499153459697240834340528062252718929726303295915077327977018096512209135647361495773839487560370942659557798841505602896344702574721503225044596929698927030701501315208137901364384449012400519038702127323528139134498502764777802856470540829384965240724309229471270931455126247591779763229564406554863466199240498257859971697708334100377525667648768583761234807697732831089487200842191039136717175595639446698958790268638413865779644149462922469033405699365479860749008537654610799866330279224918759720811449081440621381768463450561954040703297631906892689652554642232522079255863991968882965129728452397806186239283580327406947240221673879385774957954652631335292058486509810178196511369548672892965364727428632339450910641310515489406170472769973230744262864120619863340238359525744104273083926539091952911503939578168343453978686821394108464310869774594339849580986012577940911090700250025169161076223615193754008070062657827098817867475723209350934884173117735384502052829321200751460129125840319415013843462933884395012661283503389349038641890295215685508608207097517829412823923707784904191797342320110515083012585482402058398115424036149471801296571854305435508918615026606885280419427596669882462413727133883946100461568514387133423413252877565244630927047449411991394391738395163402560493678279866413382170015204589515038059443272002825378836644503831386314177094580984892006949270131671896223492301283126023912706357874268286681991113604424454419093814530144373835356114515801421272556463611284752908451987444891463622266908443028868399627340709632380681290747422096897102110215520763610878008845346823224542704253642020551274024223886520610477116653349838619803992161147286242367283966603169022411969240719771822647692757638551579507247809331891100545290765751405414148947334713169413662062312401465146906154329905417433086354740558795056405876045884114524883442185164967019106418051227657500861182721126785596768418328960828820094716302450869441031662257860794488620521239733726209392809550550395732492359862788648494598858969055350169698461704222948321078007259744155252988681510311049255204788104383963471008147402909255922034544335929564134131156168701854845192355320483615765492485242733233954166658656363180718719266013472070715870756566969773351117853346362733866576197924835298441191551304270637062898038224853048757351355304769429405872146388732588973890241479227340157335877565113439499566680764643702719684274528630381413984304424935537423033288561668272588046801758884690205951916676406210083824202450247763488320013226583898900856700730635893316637863892812047373301343024652363139392172828414304416423258412537205540661629766958120475622209129673520015362801581265545043751233858432130457238199815550171360893146732445521402896411408400384187183405475438753081938942016999852619040846273936968515124148323767158358256022938487869438272043696139517414659649106856704364674488963336876402000533091364777410333835916862218359679365589240774132831316865745483800863912722682943211817640511301551477064828041576839273911377090015815749777534951440052419906511935705645038566104105624281671901760412003073950667892822073270644451298856415647934304265186318802774824989837116986738682253834984207308640381744783662686087238367195034862235198695627257470950030515044369074519638580251397451480578312242457564561901062647129483975685889627241403395103990315597958947829972902878481001136948542447281742473332565017072036724455646871095129697290857126006113982559796085891902738731861883145070619475706959720163392945469185447130509555659697960360404359480556893886410456456467332247189677399051194920067257277289252374699609780680245442051165144869679029443538509202469768279369636090727959704414702224001922244609849940306619834937538479146947194907358979868844051176185435064072827375320630090479917361324093623445063886344635165862925229959875891326301325376501115494738201117848644253051587597251956580451524830512468165327221560034502753759693456723120754841218572577089064211516283171122511630389460873831294498731923437680831107851405008628380505759857117511001146631701730472286090852226486901182293333330706319332474258911653801733525111550685231529828032452929032814538306259381825944114742033798771015373629403405301648837492285089211106762947478050518339809886799776221369515248277831957026993249521582517939339211065821604145047822767732387056938521691103674480927024584615821037870159503517628437362919382115123329055084010515858993915468180420863393950410313857305200680332276231912459573873081709649406308085402607720699739796838016330061660279434437363800676871633378897835097736631987066886766030102092608236445966049150978075441711951847850601121235745838219401615067072382749982307716832859469635035679165178914895329317902393056836695010137038612111002238687287895676603650594534615260096682799674746012785187894384072445624070220544828397352667085046072768719866729462834331154939595667299846402043748048270089637251296187412553909988015221280920118205486579062051416399358043889105331354821481095757509752333300918692579012778695114355806281074035895215201775579964305213793034155934999587333697374532469246462581273571882125318133367913136650990982803283727272607748754804995619508469592509365521962530913135322731826654065372025066148841550786987464123316832781864806388855741526195173405320410249908587456035311169724766371885547343650735306247891122012525246677095380571945143292991307243798957022349868184447301428782030229605375079320277871075521721857422582682350556585259954347134791457276581129460326592172533335304462829488560868880797729293075960889114174013017806739960210073467611353889793431906646841548440236825661999083370273705983919027365926050381016435521989261023830915406128590751956010716505665616606273250684417422651841356501685298813664814238751461094899038040697640484563251439995624265958262017705437680032478116129695708754454384516882538692469343254623765018346853045135823171165881992778318423266269700902593693612874140730046200922785031893947643884663708325356583954836037831738701511296500297334889820566449118145086335638366633992635658668482311723922642296367274293468572574954198676250516638585875687781838616730899832401015042189540595034798628050892000341954853447924299571922836799730134990279429282031947076661055895845790020599459469100403632934835253572327352202675243734919347929218392602131337652178764401773015050741596935169286589452020534803749495641568452325249236773270859962219336543209783215545444831867278111097803541631553734070558486568186255816391010369910240116334741813340646185013033652998034074620619888851175191435741688301303065512296240873050851131676564620156216303482599110199781701308822362288376375761169172987286775092371831617863056540943770865632935586794304363506759820899811627465088019413917195322674477573279351535985427863801255272167274719865249397394773992498552030880665569912983781803705951085751385151422010912291824226022819902614409280927908192244084509431508391441550044383394843641974775477318101121326467381531532288687436027842408662474231343045579460890222308010439417094455998933361367738588319699431978647977966953559314806660432230717314527298078380425389124726628579035076799744999941943977818113329740833614444532961607067706967566338820599308610175827283188499675900514207380187282986294757344041059699216237330786054899513296208654158956715552894958829137323881399726190139727776374378290407067452648283800582149790139337086812837278459978100343316134240661598069293005610072383578560952101795191083135501286027387847632468872760187460856285661360877010637963764773837925064862838884689235821886321465991529439536701740271957305336018168897089797546019095588704058093879044879259787256578564259010168985960203140110413825900658235379860895764480359186496469825439209123101781964739658510340331991383069127391043102692383981706518603070989961882677042141553298563614038134089377033964673819707311457058572256532587527996153864111278352922328086004453854174799663750859565845673400521361104151751493597246252854124309763270673627885880508480670768267567969710730241242690335360483939989741693084575055169520959334239588756101309158170662711886491453617546141271831092734482428600307205791446894559597259983318328942429570765336014828804985216411532680242500004277700366134807558787299542870956586202848736328550967970982280818190687134807679511061455100417239983905056816397380034129002164124956533247901200564420442733431944314748948951458623255926676910741237652710061925201404102476258520499167736164445272044586548323911024075877570130847504475676813252781114297853896757439033825968896791123402282343822304860397994732377565269486153189629869849046174653248666043483284918576948735153247006275311043178828668181087749143584346949360312033366643815745026656668381040212512108744891330193368241149989672996869492262317871452130316370617647515763626013536935164001736191742587416581432410911559091891107901383254948896982547860306909763202792948985524608972647027214995737066327463270704596273557730264238640765526977628984192218887376137039555375554908372172943738853703373207244525473435358605929688936747541070882803531376189569951547435776358993040758861690794770336424055515305570441227298894861923144371333276657145230594626533576632736251638654914640593716543060094444225032205865969332265097326962051946511391166555049582143357856071292482167234997700670860992096452360920569003130490422463411348422524567990801903200680150105518410774217497613083438357499193991822179912830319129148998107502163021266757569212414670539378426965216437181721682939288722603913131642919849653719775711933350309590664028712794588486851370490364940137471406666947683806447110477494355939544897894340133856397798381046527367560769545325478668969696143364321953550961790335046698004198454631254507251873564956366471160119018264800929472465316682499357312754990794881570626963202953183694937304494705128984756991206748808491687311537904844892915421064644477638614842396042418424307974250622724371478139028989140600217245150951379235954284027218506102445328235802295631534110236578373765206309540951738959901423418971808856830205813272875636817442529468522479947156645334808779754414119766563603167930843430477786748550386371408151903249060112940249382098596420831227951915725677359304034774625613547126550827651992677118766542476386961699162107596001415348146041783810333410566964637687871252593542649755061426411408365823671462392056149961354373055133061936570234833459550951319689859755875095485066947814103243807417101994503201226886806362401474908253376758073912825305843952291371858489634213516387177665417634141420521975786589942857128350227344769395676565379365798754652353034864197670536515445339191524191627710397329803262242624928981494730592929049812887139452717336794597535103235609430063540303059665941822081801699686791247693289072819812384615437734279505650684401630557199356433272576184483639914007924140599317039858586613593728560523687882352837093809981311310206744799007594004579879262212030324596888102227202639576625409577714277999396409615497902709224265489829413712933709957010414036237862469043799447735891762042996262488140890359053812359170351308465802202388528355339199594777749607242420502496528165149780888717386649721358018416614044360535261117027975339754383486151661741132074981462472347487589741390581894932091567329514295088622540708620103371536121470876444631769908367394456457947392794110428101280056883984834515040417375257613893715676636846249322240664115075531968235854248170604429013922112227613278775792606617931800595200789342034592059528361839790467530194726094715450687982437771180593925951312885747481543065225174193657205920460040962530775201245945891442050956434208689954033717499164044544624814785205080610147692769673280267570296650866743990491671770593207028451377528994223950307364305882011002716047933629253121323583348244246525635272841918990461428377992733276611768291870017854617551759132248354929050173340809091240349739291664964677096046350181437753713521983830870485616756435712994685861744839494343340032083812195871395898302710952915736744911496348638748656696800268860797315657283881487375125055908175432722345330370253956601944468476778323390901804079886012197138391304437560795068788992064189335410802425989943423534837799225071032589332727861410878287372874332927422271961757010330335636976066543104282687152424183472764285155968865433404164725586768639723225096491613378491647604108336738828684383482378129787263510036141784047434352467558201592169636978399813397586330436012599903825350812214382332268568069908229196715902884507970413938941598554461129092274063411638874228029189302461513989221154717086407337446092145631375680100225771068334719494834564567666813900715618781888538802063790101730632178367349436637276875410256967451726921632166835953825340930658828568890858610211563564431502405391950546867242994127106796687271829068647955504482821466263948716330120019723745291081828438946798992951249455189814401157954060372698939689096386806466096049583639734634324540389910595228018228851936874687116539717736986605176679056055944705210865138692702479405640460557410402384801247755760722517860794764764661280224704609231352429088500047463279214077102015568505323180999675666532726035011374449104945162700800910344205844591218524505387737654706474225279429368314680453512627641577278938757018452223748188354918390351301280268611614582884757599767329558278070392149137398020294120256438550062404217259906583408588060481951944395813939864296350208634832733598619224869978045178805848307629762494614064831664642364153262054137631362934293691734926216311669879054536865171669009954636826064208080681130916017734871463193717599369816918483245915549246939157682882060983587731009258219728111974809205313204149453731402894295699580433581696395853770644257633733945550852013025954007727479790576243703276830180186558984461465540479848157332916558622283170468509139936535812073608134873464949294381975487474012110034952212979309395948379022942029357642235973584465580120248817989636359585252324688118328586344887783890728182311526353502918507841548633166701189833979113358953012681049022528383370512724402360359990831686541238780973844300322892050956191560038452320514509660601453014504626986957048369366436385673634025100098329311211263049791323757794819321595016841271851616757744872450756499109803257059261810905280488978944955995881358715988850598191791753126349455088416697310865812427235270106165440305264132149124491525261957324284307941593044451486788332847828025896716992455492048590795181965095969184998086574630222861686831985134560987109328515274779554476035074845116275497824920220434980228139269969796848123896778029660667953598418271294657533600767293450493902161660875157191429097312632670249475946911021593734652792644422377268326886795883554869321604645044327251022389366230815299563381371493721973306230660822165110098035174717505493436345473816126117645399204610070766721309818591245160860843715582847171831510634220824660169650761511991963381009815336152886651300032679015048159055124725552151060808068997420665801205817052622849196759700389549489279415799264197420192466733747158417930986383564774629639527563913483085291907706394184754696606476308320420962134441359107435136484203862253395581523762284195939984370232973162797585249285327229170338335165170101548701075163079452303582035579389585122710125401582890645202588485626792554416385927361703488743240930360862842291340607085863309131118543360805147079597861068706512796761578189076452626749507193835873967579308245208385147802743285073506996867458423593220879212259100639933653342621411669257958031569151705944880459076733918498620011125950108137654513137734781523089971828509578099179099313970120089677358617171413552336319046762266739168293910545840023596328822413144918775577882440977854942400814995754901109366209288588958206988669341862449937606402064925106361123609381623893998890816979612110462832363214755287514992667438970526322753914637779563137220589972465323128022825908940350112460219594989329199921691905592542935460118057830966091666348198333937865624494692710727872960755159085839635239838731741203054449080114044934502513982742047670850350618068499360723778298582178107974688989639722404393657846086966601633705797856225433225522630517476302027407863729594918373754437660004087042538947760903677931029643396552665858376471903083799718053670702004200568084003292197774271863215708783099891894087554127023561342140510299127312058777630880318814111243620368056380688160775331055112351308751027255155125684966479500444170738968168531008457282311540883724918700536018445988556363753231197413614096967914934599334334314062985946501194162098842914308331505577798904164529684402971849413781200452216543713004577404583536821878231423112094157715073109496942760029082682891614678665013983136014882782491895893950323679394825886012695197702639773066007052538262619878434337208344484245740276953369640700613250573516193924320153295875702319002322599012304221203540127384907251877189351942435073813835428126645647786555110118910959105549661252070993849424046719192644201999159751665262592144273811111219711594130481904849804393307163099216193476599075356578319974533181725446454493031185544546519274660477161570985995971369565496754552819528414502428933385284014457373398581865173798385628876427658046408672776822248050117422204563308446980780250852210292567961858733477913726513534335250155408305564661917790950102518649449872001160606398417346196164423494280468280715197279407076306199977931367577593306172262517761969242736205830519016812501147991721146182613695773175509922439964554936950799753075139694452581144408051245131625388840737688006509237587584975576567383404815254681124582835504764962004767253306883017726089406072051818106816492463019843425281479039196960830923128761108851071669384058656814135425105041635622134676862580876250117860779233240021764519689279733466292163574413239184567107837990834973463844646163835422404191304052153442677680392437681484771204570451033463577254032325079556270208763855610943369319217375349617785901814114185240399191934728306480168254820674202924899397758492806945424200459326640849837271426341966825562713322232317572257580111455662347978829812588747001148577782100288610099044739785156185191215378130155044946941870418246311475866623424438702587633546465940814878771226008606485598645238202610581155019151388187416972628738228872790477070076176455066692744724937074154749894657994999246432362442626573143244142308601625637406369096340704398970824953088205383466155260644401084625997161854620773517905069233597361957384575471873030733308272540185501361339360952537386095598133087430599148329504954439295434579304859611560669830505683014898539764040238804116167625952562681027728731549749417380124375403875190459594541027727004465708759526519297595364634649225401682786496856925524817320101310938983622851765370167288359602612978443473315824934472506354134835798627229532236347320038326374806466682010011503616464244616127279544424631661965741757062568087477559009817416665510493068999899977351411015322497631711028084526099511850836861649217701391772508335198068237065578227727556903232892883324662587451115050047141634383112434171368073200469157262299176393268351432794549329874555903673912806797498782442831638458309423685185659042254325021063443516411957296495876168370782504684812511234730500471255697148146592765807790684944097912135361902449650046552668627013854218077745470004150863317213965463363948705382661138087236839837307375592567962484833524305164116107123385406353200635901792368380109051038935242454187100980215651855767908995342526387594111074458713976170163949168802443090318525831811203746157876817302904752753892911085696703788549861888098918939042849571403170081275927290717610771432832278243328658053920681697923640167793021199878238338386024013269404844185900958441920508641361161990373410005847436418002308505762276976196476184612230452390703112666363318186376035146086083879225201086532684634404866323948987223503267269768776733582926498705326873696476771735903532537635013059433656504203426864535588258497674517188354028766767627555001166211680943911850570076399312434122522668298749302036393614765887052369442303533690512688913085099373805002988825611039442940048674470816493180388513180440550576017952253328717712067977348633552443935126728207355299935166368507439246031930277784868656196041028347136117389655440041775379622027935827587713224747339658634965792442761988996780733583483440689924607055416685041649297059932395930138640764601667275659596135064075653462970167746623348201273365671205457207931888029064198952909851773474624973523992282824266442882475574125291301899054393946793322840707546366164681070578412285720895359397551502985775821194959839260682922187937540873232986139438076739796837744375141472260920684392113166686409455234683463592313414879987657058668966882145206754802443971604546794823423864048454337480007688122232645526827767277659448864270230584923644036526270765046463597045224231261244894108642484842493832487873453140325957335135199351347127188604936397129297446946423311191688027049866277576607269124538194187742915318241894628293976016072029858441437331059768056042660777676873103068627676746379752957083930943113198384313080251321246324534321459412481548434017669578364172151419875416894441909619756846478764207906084057607428688146838987440618520390550172439078125019009079289421955401840906884740621306658573351295438001791780990394899422311417368859142265692933631782491558547334764463520401725977227294117294841021664753225784897679297467579053095585104870121858771795409916186081303993285597063672917817499610048757545637222280183721999464887239641212870469366785964718889709488142806983640019268279926330026619013727714635866624243768337995410770006556092153356534938564580054463735382328552109197741845019062028974096729021061138883753101226227611474890931038962510489989744584484147707055902819278814952510027188307741371084664945528419617986426437041773628835248455728352647608824299737889869913002283110012008496588723121013670110162314418047557833183415424306387529543607456829564764102905139082423835414523261037314746574209356849583126781190385820699395055245432745848119157147325141973256326169605987895715306688524960838968325183935537483950639727946210374645799757152112551976433140181369159168599096063222600731484508009530989841414987734296531176593694066052573459419749352012155976733476651772759612716755249869843326335092625241356523591508394028122495844376798913971365891120915235929955745174554637714381033637776188163076042487597924161561282221742107568707983636283150439267945883058810495418562526667240442916134830827602498416395910822626098173951593787182313348596019833474804268063155387011751048018000639715981214451525146708208420934433858398744549427643853851394116436117312813838911854750387692289181844420169076447534565251559590927359297649160181880634471917297494556803812371079077202087897479590468879503224441344002858976453191367464104445061887194284518138209988831330816281431214723632070338068194689264283430238651561667240130814862672236691215415465598061194789228075931451073199955461381746829377503871024628424880968618784379450135877257176976773179949329112047511694015330810738996549966762905839079381155100102870360454239206741033686391932176583957594553924589374626576960801738596117054161385389670997126140102757893083733143155729456407423355773448213841541798828634942353899261428549593734409001528333747907890446529250543060573621806604798812282413129260686516685706250202547538300145987112645254678041563078876533631202655532590975826321715797277291156020326845173682225448067747323628350539344946007186637985392552406585273935403935810097509091784444095109738025913111703053868747754092417782682012166872888561084949321578002935783598671601695207668363141889613461676525545904075606426695817867693417741554100608940733689055758660990978558255900000413145010746739838745675873402312529546584643693708445884444841419560931015372460277177389964733427308876106630005552782508681781468684135386375786661605156187278730506066959490808618332306128194059031508757284835616599751551787528287571964917833386296690274848920288218953460555080195466046688590109852001448556099061185735025574581332320622030820795852600628224273031460762243707570282711986506784999046535707084779291318531987827616277701004239326743413867162104500723141160631218683562080660210853268692495606313320090331937152575817519445765662394874360948886493581152807173587876204675380516611138704388670096519702870243912507382557736266655487972148606447245421010503044301614550291087625204146604657850971289631755764531941890354151771584891155931318894635370080610186487505280631461604902522199265818522418114315192352806040996340949586797058903037924475103724679929377547247578218262670507085753247944759509092296133900856511392205844272806146428408562304242436012762229085353268848997468861844833757567750513142460146457275484648774628134442698217233080157925372908996741307349307491988397858477685981012158107709558604261773350599315639141359085490397721846445643353430292419902780968309738569511981047964497107576129630604400520866459510654485848141067576938850971497665398791249691867322203892935268015695586647887930585876710406812674598979779489027792331348659856652326407825573317887102980423109042548376170873683490555669595918778510314233521550547303490266602652626917509153803543310838649654556135608422550147577026597055309736548268571527460287599498888910622045820874382908061383860694839591465541792042501627964851905579748249874814775669645239697256282374829377136621135865683680131206044149171280719259054003263553762105045396290754731924546751885647597073034651111402651654581126750285535786896356604672101029173463019615350041082746921350981342320849140806119025806436557429584316439931708970038668386641197660584883114173962105637526873618578059620282009929709955058218170990931614059105611906124853862399709142102598141620926264474923304295475853676421320136028873103688578569546820106185004801858460697142721415898385207068377891641402103646281283685718315196838894560258893489638832772263567992839522041145329643218875796206810541363831220389007589620780423291546744448168502650396447980420864068360054767994665606219967907492411110911851144394651602369327652319524075613833409106946438697827811573234161878815101350360170122345320495136055094575979680073647793999786965106998905710913177108360344890125204120301909197899578813974311645119962290988026281099700920147862748607080926456088676682041996981877954317084566068021388266178416279350071308709242601970838280044604774251520381793501760679351205227957865075628150819278617120380466946003661669314050140940415938975767588525335346869199985846021606735592267392111557356485091023115292734596306068045284148512058961045472451417026759372359763785136825200783468952926191084444197408342268051497526727167320942630117422386157249188455133904297132760255612565676644886363697497253883255851165516494519967095558349040682595471682848150892317670354262025091710254789664283821830249143150340171945962327106053257513721535218320855169870648271466636556221871499388689473684885639214900690890845330610656515030264128387322070247316708351222459925307849764327996485164950432996027374724313758991819016440416094010257160040233388831992174758967040929590431982638230744533953274649164714501421398549351671131400423447789295614057398374947871810920740737873251377810738988605411923726756449978771202449248368244367694489812750530734339942280027469419669932276299702062818743790179192201873827736971983420340234113852704181914208348940512655465995005531863070744542414967490032808463013803887833985423867496365317149262010477803857668273123383232913438734368363714864978679655110037296037616864822434075764101187325630077612308783101026084207799779067909117261189348631028986604206690326385195134209019972329154132950909983759045080791085480915352683363912285995310785376267499954476590934704764990059133979516267600910308378913774696253494314936048257121114070161396432077143226004676321844629838464448639133541657854876246734135643915441317708939797008193366530549253186412524907357997464007605488585349625269832429385750473155976196577779852060005086130804135314411302072525782479522605569804569955583664468750624785150862066634721905837054697832618187729281869430453688650859676854034470944764167814127678478275967885938190083917924973822951473559448331035433576169094487010948495184523383443187960767277631857188510819765314087358196831749580215434154004171106810464787791566974627259705245322909888815545998809982134712815970111432964195219325762444599200374085472869419928952084000471356140850215828499339163565506338209847118839435248936078890894930602975151778430984976243260868254274283806309688122591185907429547487824543946600893340795426735605544190104900894741140792042944976292915366193649401351209167941817999997286757416039821236540067510915723896198435670445238301664772452132843580360333454745864306055243741355207948168730425098385335390429036691779718223924195130796262017518017413032721915309569720182897447419312383998859745745640282484373909695529679474258888098569687356581385838771021559912608454898989447592041357866733098583592096693731636174910170928622912316353055552457468486840915266879678838130487289050703334198636970312678079255067987341779440369870193523574330150059581137221791048219085114593783400329433033128211970099814813091718918777950736685815701293507983827216595121783651425262600803567139881325527546384835800763793563972384337976706474155050351798043223189178020576896815307496639447095506035898333571697285848577339192266454489631648847913244522044016629452101733456862298095053380200368467105517951902967032478887950636883188212783068091116327591835494647350762136080777274487274269789065321933493635580504296815566943682036827515568157844963448453703539868173386974399847608942028865792823925531315848310162873714864207793718898521543464670063638554127271107270015776007229127877546989776861069762433354430529465807932242406783782694254559805086391410900043838662556580373761007478479261104991710706188497752727948203746605593936700030800253244831588991215583010758477845133790192198140285994241528335885226932875065773267969578710334318248850479267713948141392638851542246014468548342616665801764692737251144227633721611345349684505941232978031254374885495915669421304602988883531933859405233205840171562409597736818513354056297013360789397773409254248456241777643176226719330143663312925158410879109053776994484941756920897266369860388751050608299467137613943983038186949391951073040256418365956697011255935379861872870029486637323741091230200558028894542951199886666726376782451489316293742326673800166157423591778955495736684020175331985936650657215217135475370473731751774278854812570306504909347791152589250332004996391158251357923961813591656874702042336666728740939118473851101523396753881774197098817250256156413902910869326737559165971770789013501843615816257517790924262584582956395893379371021802812725411477570346155761393500593340326539518680751018286957489411876682643070267863660851857393953710089041716300178092702156530748071661713553619051065629843645068961973837037980159655058544915337664676635930358913689014424022396876997058040615145147611767200308956952791887341420059607070490323935954167340438479808728191468000860802411149635844513144594744876185469630562541601867115726604983625715758058738359269415910270549141028316048672046166465974123736790727716167387787975403013777169704398910535255245403138902402465580353724215430219341275754479376018535146666642407398131620150745179045678452660102653655480179888348231928834984565614434673806447298883874955862467825196392226394191330740587493280013548226481901890356371874302342322925188039301675483363971532126163467256264185558086635715291718675245267585680680400921885343388491601839664619526410597020299572661724904426854309948799966319296986329445807398960880686779860436961696726542500873531989730198967738151833615103967538780181686575325282414652255939340413058065229864802032543005674923696326193734593897553438632236027500035517162245225603040085863205484350653833532511812501576382214538707288349004441490253462022637207623149086029292552243862219826429808114984840435444337371541623902802316987204128102577675692041886663585980976601510026177962099219440283086490264367696107011397344124985734826726623366825981008529113976308282033106014554566167070286552117277185264331379829590856531900125709340855012972569935091995638845811604155482643819415645905187008848616086680493064873378072117477827926548140979541937168659265457888427582416293794672569809533910143690897950449187791674953607026759054033257134848467443132801374116345318977365709623901810405452972357542550767505790050798882557730867852095618986947399463020453325608617959802835364493297286704104454465452146182909703968423089832713382578138651778625350617661217711919940761499783512288983063005159017596821097752874863238786100118614495701471107792186241968393788985679926758923025269500293094404937699743407061929834550840048687483489710424721172686117044384811777434605123274894228870916977400973822504066620499496490872959846694389846522458053167300629186434029948594962949136124658164270775170335552278373797155725390253654655504891526034029217547909601199383919127079978599917225393805502280506026497914565683249996824730200756064140259505284353305899048051765431770843574838323727850436162287139247334544648601859150399645886996804571799024536182291810358846772366292806473752049893576185888355381352556773638752058973530894459681644966910903631959234557448335722880834696079967105792866180870091082846484537040572367555739298456039594094840720708547482266737158902716925291294808247163205274160004381141839894701962476948535597175707679531036467640308884384643349959269621720901323364553034581558430242135286568173029841035346211537131528872647826386281621907539393061733906452413900995898972686394230701016176318953602253921569532434659892527623091744976616923692922045106423082540490626435045561624797228931978363095974476528893991022390923667636742964356660718793959791386100470269306266920257027180386586268178030839793436336128823749239515949263962975804509851299085410624426930336327972322655768781689485102578792576380286980592356916400633766168437718264668207892995749088655269350462173667478403041809838761029634486447223901705416387993444558234051347292715482989794803462629927089055733978253807842326106547446444768407263629895492713744414069930316906684848389148241052763728905245331531654869339976345886827543294144504004456975673989487751715049279323610519613269234434516951838825474943824898680688029678972346219260216370210055664132641989897796905293576769476480918422923765464692762900064375011039978419736527209312581902982437113012942451941810727420957107741223329646811279181973374408043765340373717122302084756338336668923803727074411741312059804425418370674000867615696545273695983937235898661036555545814954739516042982712836871834030077933455171030476207112770642045501376641584877388515999338868182303066043890649292668492072797646480341418530028859943246755690452265268704136783460972166770854150209028081756115563178241561527030703708060379518175228463650937152767466237064723385204323362472955878685417800744883917677584708081260532691502678744396149391793500931182192064970891031196340814605037488687302273738107963039342283778109800308176692698178889140214046200272956794698303637493277467234933137256400486419809990269600942618719177353002022828174182982572598615702244959904975589674613414764723984353552869061846937956131899279181706330660809807361752158313511896577010907711859745175466227359003872112086525568186946052659394869748481935465898575386647725116540713679190212870804693324463281547426827420152018784628617719386373946512331567415047302354565017601291500183616220043576484310224460258477058714317440772068840553416477196776051324136891139094812396395896824035875897749591928920163660576351316080490326131684880486896640458041168939320340847410989847105060773322993061077720396554618607512066130335254195177588198969824726268649893009006743939132611262903088792129380995077271789433415795349609429973823928114709150143740908581549678669087795403006630348576311115583257951659385588215236320569988114972854767587109290960988237758023903977535226905591505383780794959274159035173087487432385128644951692176130949936186475781957960218399989289141087559485238270152080326025913514913404375257452719382283565829937919735905169271500637972196696658101153324719815977327630675092331571478441906116306196743131727974500291015565794104795651900748883835722900624314722149896676995842796019115395384253952590582293801998743161092846134278943531847640951741253981713269196259047864430162735984673029749857798698909523106646144015972705875212361021150517190870157035035419426763461618169835270442272416647172474169753950458685175369331187906930573568237452024289908561064621564256879189593646273191515366469154453725168760216221473097308620080911802988744333280416397492122322666316747003206159260752460761471702280440486980549413103600582240733484430615011220895198308835132854487817311416144603248921044440437887094368323045664364724629404518492326196860432694403724816523487317946593065948012734938790266774297357397808591944609096463452588637479467370476567539417068217794858665781204965961150645595610328143492996400947757771625133279790128567701592558067542684472307006152297470078503831262620174785787345749737347240943472846105775757368380587753526375082458348277476550379492799868459355513244177987838382512473538783929953062283588625847840913757127080394500087606571851637881290906136493899994635583580107112662581755420400383942964225595227026311955361708505272425600164058909724595839012140247268613601957020253792414996534646612122378999721685121766316695699421327016260810552117097107107953722305461855081889005045350657632466550003358176649278710126363743885291617566756734992483258782579384392197037854762381044026761951286392941981326692189695547267729392435868177954253311723592329385912394787388942227138342556618165095770186863126005218065552107305408425414995389670250114296890694783276263174637338387147428406835949750679803271649810067202418141216472123387231981249539310266853705202567452307353153017202990006111019157372580354669056388953388194963035655517485171404910545121110813612152973057355961586629949058037037686163610949904254843412069846812278513214074946091833268604582705390301916757115940879828530244058947363460878359767281961717278833483722233737909018881378046466975879241577965519134266552755407091481645828973318748307486123653350472350645322183890526714039900712223949869981343570054802905343767009136007406628376858298890803634360611827125513180636529866810301996271769592858702324590431663614147553337630023391082317752462629843949328430541859946214965800717012795330292142598096750432755763306564611057628037183026606386977699917362801765116148694858237382709276625565842452718090829560656320761035363714157641253687794933706872052301800154260402188249404992690218881444141199201521332704230057907948205193039545352541981920665845846342686947141435536064280590532307212179181671886033558915780313592177879256456254194215448545368751598252978770963950822273947127606386710334161423147222764487576442230571659183630521828482767941135494545269495570082230002803899437494018659407929245384546142638276491596308619339354273640190487033742537480237818426714841789679499215576891084772476519885427058333309227625783605041426763299748480165227892672848284118940584631820365999640696531510991265429114222812025909306859648508888577522477537069449932735833492525474499269561447402761948990116218141191424436892229704057784449929222364158051647792178687646157319331199300894798961427152212862832220475377830065145324542587582099960322801266781123028877214598759598122064662280610340518107638665059906255122539306786225371017624682276866586258447868967022711551499512663663081595473525194555107054987511085364679628077383663792202498244954730023730022906749386406869906456687443867617705712254600366310075193912952225147731544225771401891959414354557458492866225662062763453439389629263204054124690311277579339805869531399566585672914862012589606917593421974753541692362336788381172189049663952957485958011332562444469300483666644534468573659041429350493376508859933698942663938596530585186522152754984624740668328037524848761724315899594056531854824604498862097264997557011980069762591036783751972775178798034239248458777362631624825480526600456441523312479463412349749526291009292913243638243973356101661373715465620519373815346533909198786345852431639902583127709521110290812458213875526071156622677139230740065663372262186662695419349751479734191108840185627103031996150423733212271120897653325885704874074767001501814627288431602930666329843062586758029769730229894674458497996868325588714763063419405055721466647436483105919051317555393609708228751809214307470452466146298887249300462539963926829987704914943510391080016066245279119814827941818765203911168039360277108792262970199461124903358198276233569899237589423954897622633142207355530823066614601132548061788400813083429647714591921675957348682477360243760708924268067410856885379590868553148065296866578052089767285691852477121530728155483905667776734323491058991059866316923878864091088676013619187238568698779472748134142255701824413844920245386756990505902574017897036684861902956867628407011120189198097325823088321110195057943343171060382096963848074758324742289394814589940350141190914955986928918355790746840408265539431516077226222556872036903815070265327593929620967028938489166609353161588962417467124151160411296837054268623195015624689891231334823615836956887233445255279343079374460856616164418274312616102348639728557534232510086673196565200156870013694167242629721228812944895560457151233879812287130655049298218858021446494614567464202929867246139839770058681369953451959647521514586832226997120153401941489717208243543594857807881857639564869979527561564623122275584723520539007263645013261071859682823698464649479482626173824765278533131314432767724767513485769317069361155004624800379933588697651581113406650052743096635963586205627525666166847849689755825786933246474615298647716613192999624719387392845400427324581754655527818284043461245804756648154991839749141652755681979915299553740433724692270386159889830071118206015247166921811066855100578212049609446333390833009686391210936891757187768602108637105455075157629823559973269332887070671661498663099784522641404342524831899513715096704123738512845379755268814933274030870950842083269619505395911316374899377740066727465891470775992957095205413856695756325659779522755044394244818248859598680870798890499235941682596150149970607127718150854570415636523722538233747788943614369719319072084568870650179106867969116971577855607904438390244741292994153641463581374721658288056381592509397950623320356442326300779640859479628059839206941788204944771070527640291230447024934402649787788616666550808901494822713113675372103887147135237305174328722214469668622022366718707606680146592399669284802932827279065069443196021172819283967282288976069292470540847750660030674574325252732898266766685246470651516372743407952671070779965290305347235710165429636586710815173338061132358896931170255607426094556706929189447152945303463835579255745403409333583815301570877996234106301192322732889656520643434779858353549584913960418927332716373872465871995980055784434994254937106038504565029975587323515139138578767297140852071957257404976224070059255160759756032399745187044503099141942835207851215548293579700191187018239809989151926714440411728386293767254219752986911889744622069258519359114012401310739276247611874482646602195838573649962118130951608507175334308243719366005359534244532040078440385896837205777625169371772269349186080796616603769220471210084777463434561798509637435346386550016106979264373580703828939829581610826383858765587390636593250340734494590335870454736574712777126038748944594202155482608340749033424595154803048952931719348595650172226060340726757894101973387770947914913406863459964224541260558879321471201113706071290237715476681816199691400434584433706036098443100116666958330146755623133766041903154762391946280352333523512119991666518894350904993015067897339942603056002654039947065736810482074907152923077825060297190134768077081487246055250217815590480014657966224546939916361480891821006205176180947171116453058580600658951754114901056226711604800352576911931066809049334313418915752775662800199078541523218338226542540816063656643764278416032441717470821464898404852042510574703323389894146549003946087441130426623124993361265074054011951812969508399239110903938098071550384001383997983204939534272466565775567119464835797484790606421936571564396274991756031438787994813921517542934276222727232563436851448517606506693651142491810301915861718044456124097574132044482595044572595160382070682000157476229652972885327945015679597856992645638792172192286119756236460315039580255185838240269876605422396459867795944263641040484826456420436130793795577669683924052298064561094623369970597804576137912785436366071099173468288512974103972475459270101989486323641695385385592684524297212941294934459093370904153325512260314137917050284226003617010278612202906545645021753981464922232235505745150011697954277491299317242836082961785554455092759998947707081286428499251578470079362231975119402936670821966601190318540493969655336051865106067202114374784381081652296102809296545927774272675047438903471565869871745110613492637397637706945449209770021451172734832472870863127384161156331627653634564318319663198758317009487806037387350014105595114795972241318662744005501935671497256932205357842347907538671878631247420306080231351283675796437242093939390963309541633668916088030305602798696861969178761735722030853569564629431300421464769232563064141771391808302948674808673003112608225690172897357300833151770305072657214511321474719606755238225707952816374361071373664800415853575463554716397965673527384313361635031540945130886974304701705754756024134371825582687859972634593019766603828693963917170732193970597210652517107585868370971450357196187700598634636788505295238564765591544119600922113403770583955004264533160931036817273200785817937281289290856071012983092487499012402750227167704016234216076565492326070543404977767965890583606533543633473645188635607820565336391034870021627651101211970934246346055121640479457575222690452843303422846649963953408932787051106423465691710356730827439378520100264166095148225354479258427765794260895119750503328154357434753462943537395621380929883651686297797316378405593425477128234375670910229685760701614710177254994828450077350084449066959575710304896077065615493857220803363531705585618154754525783162242718653526089464841373431805400502088232333086331579220421918927948965910575738069521390859121464407365497186251653524571782119782756105876443566160459676534161066116874015054212356717725146415739839916100634102524279082566877698275035417125474425309943563642418149624323988133828555478424665354342781925097465604570824451142972924743333344480607100536816762336994868801698760813904986292944337199938829487071176314479486990266903424921765032381153973221097448831293158675720663698811798838396692066154040231645962578978977479480052842129685762462756083387850745661545520122339383024044169606874189802721507722670789484949537505545057513896640187624708578861673683182876072008786060547522940760853685379300692578186630882368731740505781479638618958591480410816691103074752096982984280952942543362389500888261294103344748541788732998122881999438423239759931342103223647229886706969365227071641120533819026788531639197154363610246819485690469339857531287376516188785063745848365160330424789042577347455739767173102989298606699573442850605241649881497076069285269147463967673102689314251051452140902409944476554435051701303307169739006445490923962772448208475478257546548861952892697307384979675536748427097266524130962446980836512462075100719588424884971500690839092000127889072923889585450252677079814292513532515890028122030817306932739559751364274934765400220090183430558656688803425861823112690307407725191929588490279756723005342312009816846166810820590924323069793635907100671338753484007425087571645724895409311296696868167182464256124778864313318452801534079931274901369348665210776294012122136680201611664710772518941791556164937896387634433283879623407060769293298472628994640243426472129814552585801796774310962083706289811863756124349668646651673118202366966524666138584418830330552372927253640989761332274179309503860154881751283822380601019409522917348849741840486523664071962137334377029580257402184808504049877095715086179675965791923277457587416525514016144999329817939603581755212453445564088399879103211127189431500687547310107434820896938342612402016876828503212192494275386867789866416254664665481479356192274781075673285218100925843096130971401463885290877871045538045940976544144052288414176377402650283778133735503505801393069212071006470024073352977639810442710968425907513075708270074349479592987547064640210328388145668985445601586199498596593490657325176051139735934348649477441964416266246452388445298494622570279006699370485647884526661361613160110911522350834633198323675597971563188867436389331886186514235896010993627562852120592972550889838390380377815369551220765886565952434726063502018163810857336694027454308698850611565492477974080707013740507524725669393026043518006794399117543338949195394596222315042359286789398609296855443163851837358748087962060662650073525014549243042811939711030318110931631390057755981264015517168793793740671502199171557156201641247427756179973925797967991607890491700719163469054646238646098929657270717865450945506827064656039589656170642458139708771374850838959760664602113125309002175979494667434708284576179211599332540763223107940606780422457296609835308070085635905367407085308549786571917512740353493281314601055873947839994500253107606882909128614613709418145257007884303564359725415595412762464248429544443633159775122939976771683644494802132216844208223088931476537375525394801595455197547551373822113704290407272948568635532804401389321594931187253720520064126060815443995719272797884173783671383165599946654061740557095514022193436238710439868258443099279951144343776067911697719318207209947779292023568935432325031938971358180387039823125402431960528183060546734331937984991332183536019344062101757616628944699243650761417142557040781806480396877857966564015260654694500941595458745147570425492438758948462839824958899631294149736256990375297034219518352637720719269812660328745920637504873018584358027497720052124665122530337036937560989826916252091443449040565809583016436069003297688497303924965045996875907999122615228224900623829997062764940385331461013386939092622623118919408367683609506410574065098263971882025351601299839067599100601911357715311180752316413275272267099301745427527365557885959446897449417064693744327498761219609420059014661619172516101099200512112112244290575437459205993829944950362490241769785848027497324061932805854581506056314844487878432117138596988225855447391243499508618549777390858068032090292886244792419693335230832409612745596140887937473552339612130501259825059945829629337421372473154689781496132379043061676720575278557608331227981906007906384031012287058955190493577168802144858739217958094993005796998792993790617488690041031396670177808031501879541072334862028849415447846555497725459797703093367098559027859876012162880301310833264668908267096578307996922784275186185056056767488535115636794328329126489689871642597405227492181182887848145370674061563043434885085772233148872708723689750367914291621104595655117463223651854232537812375473521890814166617606658489369887457619266321845328299186628994400697123775497153710382319523884580231906763455789103556022262392399972697428100148972303685907084328181139908577547380617663900119116384956940258263547888636761151633051256240266078701276599350183136610026403234545989910272763575681715172091260654088232993917330225275306652678033693217946627636378366952299519573690680314778027623311402286976717489901874875632732925259361964567128020186339931217096564123039370825168989395711674469696542039713542175407341198399938593300959417737461709824305243218586473519790201388102270885285650540038622650765573230076563519499564280008621544425005632486855058206333028194317834998125149657453026749076937610937432119069809092183223834987479991854814029145512691407749571713951188034972444752206855739509510337219625111578511630903611956521318128382231048042211753615909556665519079616247820671558739915297688986269336873713463189196450715204522928462212630352317273098653362644293641259538090131563413161853150093714419837873691536185726425239354681390323206659518297583169909747409642513272480528534772506177681900146151445523169860027094515018128101999439381887040803302308007237817496387487265597850290893023091317607046207410006636948483275416341757387452256307686637648748863259976129842544302134132806339234673709475757003953123777063559710100464127979055571310659254323028568594323577344406856585426594167833626506570126067411152815748361037574258767299168324297265474401686125871924147951983952516906453132306791437507208221951206896123614318164867268104833654714734579237305487896933617718883768118069794681915646920246351954960882129112640933047469838153631741605838474144320870814485203038764814688530637101907660748649689605807146902771027185490067584266026827043335656292116809170415059714423703419084263175559268167821160033844274255014427347948042344159976115200801568232966034173423117119365080934694429538552433550697562458542591994044249081151087139012129184709572440899800293588235470569264942328442704598679029021233858061846072975822217748292682261929787150175005583848040447137612502493673031764185037999510217065704970969356944851291921830703947716844852761628038206690729882597888865634042188024892737825976047923150975378397736956066416787794145547056800861019031463166977858235338525407797846647221735025791261533595914205896978295882888209106265799143607221604323849868309108165949400646482762926161664457745737805582336421463063780803268382852340262917987788694904826034211568851714841703460752739095285917092605427119838775570423155065319130431472418759857940607028144521802174887455245323686455218457211118360385985114195708768729037055713470264361347863348962326685345889353980958387167572768191336472470000179632262010641630305373243098575432012050197581922785331452535472608357789383439482960167571851392554120201628373975918458486524723485674970582257726296795115341063010699426249936866880309177293154863035528348331944591829164794806365375027116867485755668243660267334651692059936342010471629252020242100628382348898749507493555831544020579292101821848674693024601462557758867655500387645985306318300556902224183469013708236495310847395658674791172572257391609811335778995379086701331440767278681148258402827221674946691820978763951666810150006817058871806222188906988906459639681160587319354626337726916777019918709435877428229085357150452425000352309874654665674910185904097483485420598946232098044102022892169410793233869020003769222842281001885446029133211362527437291844959208841412706655611045568037461667037266309566631710898394455168168746196154396463686138285442194125433643729221592567327913138781057253390803066443882889324196392987772935348679988329395931837971553384315140186644967903951749265490244424325812916816659591832624548620077643364565213265388574948918352874564237179600409178887014288781319876872644623050992452194593125502287342478707103477147053485622385131114831641716814676600974535054581072414059596219788441353016586851245671087397716425930471925537609748078472924390312234926728157512078155316957275206935999063796342118088305040576746631989401615067699004397562833736409580905209452205663836443200797096259348991514639033938504581484983305107704539094569637175049353266311019703002130049715602125334865479382369531994610079029335551693767795515067714596542068994862336240297863141700997407109346964482628962122382388612635022273767686771244779388537872721735225789509415407817952544228135864289086350876767707602459138066740202592058366353984194590881574984726736900679333181614782734500686223482165291760573931962882730756184664303529296554725872859253338190085886295448617639576727724926303578362879940654065744879677173446997540071112476739838283732193789496106435354882163222703628692895003264182062732342688046923180972092298596266745845863020574338797176590616438976746102141213192694811026969604226287657040232373817265688880374137717853048792529823479381870854756916969859571791617004108411142490370966230691768818845204770401324025715829352561020773370550873633808495011401628365120320565591506547101626566521221732511675255733531456501000374411536674631980277764828894895224185019821240855556004329182930343079967869815272051083389443205004403411927017066792529138366375176969344443394611592980079841994193973712996877868490550777454377084079545058570525161024666786752370669302817239538979226436927286150691586335695773685218030147113710492115282920421447650857763862769579053515800375298051137685848255221686683765299014355622633732615388695833729399791170015608438025396599047407455485733344471477260605749267434190409465175839406766722147682799806114122768519861002401191826280628532643587344821581879858605106871723354719248796288443366590475303374290092859796957121998722322285806773399818257470101635304319277050049566970893528469625875116291228567591554035171121899539138369343677715907219731947308920032654950907256602074351171688889905959706725712769048905764181049744078435937726547904338259526123522727042747853055953945830466379816320241370780351917813560200044924602372173343785665637981789579376672737198864247728147146537141744712864084343148895725033443844339069949062987775661895607370748048186125069605996033028035605878168600225613357301556424525133642275326372165970875145779315927163461155708623482111489729997668783115861872004277466744007913180308841861106989048685254151740882366435988226366444864354305221115336447078884042779271623117522119932598887187617472621643782979064358101763737124722870507797068246787291097402572471251438055788082731680297002829799266201105805502475389427205096804814442895335785376528828820428391329185994233781495252891078736824836218093588926782495425052514736322283056481458608247320300993511049144915912236748192966702919169523865257352843233279330433982454348993242757647838598152072084198816711858704500101353324258993687307954971848757511631452411860197798981303922428652126722018397334543201366736027310433277688623298177867814467272746892418360027817847204002600805194482477547760145268219763359429016249557464102585230210337272437594145512014087054098546797254542176492146858559634570434152044051305343384781565777898633862360395683941338314680079153140683197545325270243752054941021252308886876595408669290684553417754301622553905066998481245879537054889806394041464479760775298829665950752042660302274103946617114220015028714836565639129334831563296463352253967753637550021959433592980092933492313720998111460233141027877735985646871970633286731336677707634306720262334351769344609125425358870604051076094878894544799821907682743044143490381017813720181362693367393455237020134195162797172407229705028027151805427873032072704844627845372139348723744002036392097009785434327217308275254596866758590300993913236746186518331183475466131497051884161532496958863417853859979649578176006355625539337559712455666087080063422770212331623524102493812838187069028754991335242636058721134048451899715730293016040923923644774422480371806308298350988691862306364031254352301389445474882928698128059195312725724649449721566483824050504819681264610053347702743114700632182612865176914568689560085343610271978912281663713175386654039811580017105749577938608947356335848492316979777289985678288478553795271019870999619557790824324489278031552826396398624254536499860300099554745803653525207975198982089116006686296893409533441282238925687619322094820126411887710404830372255492154072678863209678169125229383585393916965023235220015853410935877291111992652308693636558079882161770533516463144113780585245725365900410357904338966657834972949559680511649998563032017191777866640220413756556581216156242140864992790216909688515049245770633174754002926562197041870887083179199305926867134049141857527456347106225310101051313525672270075280906823695008460896999080149289939760197407611605333679529047508188373382716921707611331564185358678511367742745314561170742521732382404844749731938895679727211965412039808223409961585478428338781716883318804972344271649052175586226526902605768988077520920381794626134535613459250104767572315963170429429110183407769418374533242494486402357412738602939421726676527067674240234287554023681247309615668340516524857631662818548169942937875007998249430827063941965267148095353657271335084466720311793821022848846605810680913216250926554070091402535804024515718857202004321477401578637079548435369882170023331359431250429038531021056482528141614677141091695357971634619994071168237702557144133213415055359934477140323757146148051305413312380448568834778909510318872544415159793548570275170380682563596594473091717417266497515892073702458806129323478632919567778052389732858811292784734983473517219693046695938324295457804078785621871484019951764145281785379926248851196202608041846389645121182700087314392387314758218567053616647527546246780663681024586870368518781443008881224116912432530608445324176824249188626138946165511364186946859944801387677720809094022381421912575986677996475976970198753495888878533982497600749552778981415493815930372531161424805414622845563917025746136066164925305368999232264337917388316734031742107466251179676380619738025291944364893401594143712499334363003613693598908364300384604278757798403672156416378803488212069778506851664332303786776894991815775517788188239191422445014313078898373074420098939528453455678781616419320214996650537876678169111726495077817109652987266996069307987004351745965317459566757942868520481622840879657978704551549412893680644426069678059226732093101613031671939700908451408227749340461748915009545124270812734832901389521218572210998487872690840595595354078865484789391793856074949480640891959436135143416090244761148679894369730166575864911426859854608948963172159841941352424210845858159929658090089200715577187384692996292068522207547116450241643072751185850261226687523296542271463957377191733384130251273312001176885490466550046430188527850447736511252357881568205266756970081415350396004428252056384531036168832431286656361237952874017859633325386790820252479349163321088855790072766031905305172786973099094880853989885134173005337895747033493276254205226721905647769803285785242061017054133483467780368244798829618854139968173416411894513210671263618734768126058227435958534328084739975395877672087820600162873016513959210664837350286048810021660536441260386811269123276719961791221704137253211401088235103083338834371207167465689813505387985373886922880823435588491318788985259610658125483374850094118788283844484032972934013795434453820654984588107484265643825364509828107737225463300174485941796916693699252793368457308973150565256345983243840746221088804601475390656217630998904007486745959427528703650357707159023318445356116026648627222284107072510044885857027959068961183536003982921193104544550715882201275366189774231622413302812509241451865634046442013452953339401422672668280125361751002741601051989137620175631069847932325465106865876638033881864519027604978719277596342118426595418484230565725835114339590519666823975058172282522562633895672615357764531117537897349671771394868598161015458714433403867808136785507578350391143744406014746323875935038444066607684393372438507228422059175962725741003955800830551524315919268898323181464371496573009096960158214352091574525391258929141856797963564481164698024943251529338053025039561669799303978009855717405790224443046245756561090613165894250715822911296759380050650366626161458010476726680288877627277460346597709478691076073269384863686024422718966395664839067812050517487536521266909719088894938186239931176244600476548969797393647871125328714890108630235681903101431624908474847225539635993923742168772274926729318968164858312634022218281885719803995052092230809449201315444503706921044580169006928220467859552562188723537275710662884869049306584493678767908439936286743110578853302333351249809860155179027720765383977522141638789721671718928682976035195682744896660512414268684906580668684521595283646437287635817883930941716058477922971280670717538555270609904753021901658217525184620724212326762678276518294964022671340882115201398766315838517202619482234718755413925049806611680339555676796498297042388460645965552216689249917632736236928237148530498057688605663591312942569280200835143327116656428211849308234013447392774436929300894607829635562078072012385720152658748108164061387980783120854935302640970821989196179735058038544463542708113714008129331032384689570250276807057056832839957086742667848660523658121254052755792526758653022302891453284211843617444537693071605379480650377475926677755054366949837852871689150837120361110196874183548931047889663863899171810394982692212270928679338464415528567493252557688686530092531756714807081299179472085656656302292005291945408048699528562283066964079346757461339096502550332664703906805804425516395378550971806880413935250935885893967092351949290449070594210009148283331850072610727164153336900159318222154402228805688781053961553089861813130517593633700244071343490229609046882893360993182980658079374619260910343780474171655647587087737297599084798366337608203704863818588700113559467879063847036771071415386100523255646273447539024347815578224452769885313117390586507597039836264453557005012567625433111956306131099119654645949124697763969873523680290623953014478702269221397987047668828079407017500286754030586059462798434365813560344146602728794153499800768151954490037513751520846158415248607134435297842429383456418069509385793890883383757486756447679528528857978537027412324589986792895743122631313590784669281665272929857556467358870862528437277137772789584463582390765898920717833147713125692437832396226416439708831086337301912384903479457326064352172167372463954083483780557128813173623837110441590225694256152323315049069628994760619785199850860496167603618924763316122758766658133718365750901964257737652892976247646114661687321129296696060498525897165999272778316869153935433727056645212073084989675010008610179912817176117431447074477613621789510535999586168978542976608447954648951049399026857133431734329467474352712655837840413213265323532002984839789749043066127863567465413013537948854453939515700380287914107539300367459750351496066652660214457294264634552730923719368745689140932587512787291994842871609041261374675343665079396437074888659014065471936521326496221867391362378388503356286143097982085431655471600123249680608115729909895471534208917445183399576708819017024294150676903666443131737484302890126388242191357957618937209392864552190761962125419162853942200208780481391686123004608648868571510036918402017414514565382287483625145730643297247409893847695772761470390748621069253878056582555314927970771058826019374510783080751037322462406548071568517746491568105275477350669891704074883030880618091397059061927438376194006405581320352756641217877437365315948253343701416698168391287011469224955662985915695037504991821982622117133067453700900103116604787274145472781185949179639887691012267572414675654023496775552558338893609070004291446618686238524947631156092136631013082428174803893268477839635508135649822631365688344812126288320923806746383763286953871237729661328437535013678788568025783170692077724884397587475370895296621138216972582915279637755021394829458796548282300472867815697809206087168706001161582274845209284706798941126295353113060241907862531042763502565141283310255091460475017089441088834863619937995281540659139839365369605261623450082663131729522231098638912563943179018088819229821629904132318842429223056683684500024405271831340493519548430533716303034247810243453011427107617516249243491419766983987489282918688609490026120126066401798700258423138771126471384208552832216968025518624355414708332781268031777782847888821718653319629715911599807484561036896724767984458471302572541608623927388615950848678831661273928035238098537266672980667882941294292481175950803683649953718158807792025112158268382364661967190999184611288833355591388044653822110760185080141722500344099668322670694141637681526863476546474390168713070044716471817459512791380214057646843541891701945584822770726896188987637804638165454251084017104980587575506357913795446654794732180243016554834291615461728297052546725547577671441912011123645266517251125043946751811885095986717426874342097112940022686448320070200720601589776453784377798347092622079586738313817507054165267530409227512145364006604136787528812346702066729636585171047595567917294309347863316050340587105322066351613705949949695452339408168914424144308130836896854947309679455634415724961086573478083258393705400155466492892553036963931678483352102398301126920714127628773934393032435795759581208158684643392805026154767534092033685195189591051302553064048632544516273922439538498827706569866496889140299452467562830955486266386930678963752808512656663226055801927052081853099649499895145107982050784259872522843778449003956506359315267099990976586168973435923905661643165362637263361300756346924446990935806757909323707764602112080983759553027123064189451100024832456621977342908111106028168592480680841899850031654800530423218708344658631167217520357432106913533583270138943511634917730424412739646479917885059627382618703041000384855691594628636776254773232293875507244463665853738023484344903323583817295576465354173930006442563925503478791721888333130906426163960762269735430335099038113983546477840598532300525178654561673441908263744775603880158006857452050128951393496587442153506715870804937685372186760337600251631923939916064471091503458405830475586502295602735267952966366278424545809712754479170990194557414617196590324492567695313450702929143775847340430218552481201774725601232596090907210778256452840242078856078879953968451286068838128863418883165823560465077704239654629615010899065273724201945487001066624754342194729746307791798702427938047764435650344235348501523424487552813922819293946567720620931828007873918316683565490377193781633092343438311436804992531148703180273688421915189105856670073825554523048262687656765336330491446335759850248372098717020433582891212338341558013148895658987892603763055429555634659692902000765435807980422460497823855322969130644506222122503036565638254507923110693073023132038034607015124083365617251002917307613340177285921810089928878142990282620957247354786323208381907327320275920975514438876904109727517728906177157414842542419005738171725989897293972473077916961240995727386487813013773858026576202074698113070003949143228695356086666932109356124261879728207637125910071403816431227552329957589419662891933768419727026824937060887459803225071038301640045354739149903886385320061946505350589196966332902695572015258799458832120765672340032119693485511766626629435128599733576728578116186797547878397532330725711171450255160006252783175552597681107075865234613133855702099443173868353700572443243769547707140878404955803882053497660263514753926280615843114245471408188519469912932821280716875197398549952533916422013616731930064611180573547351620724443653900950939614993856397725570196477903029486408679715201520995314889980020431390462975456512507674453018139113691518367535771542317093016105603561894857024960634767568637678598719713745484342222409358577878234835331156212312993082966746351653926025745938214127210707250207450634364599898660449618488777830280476117193089674858321587765961403158598538195092623960109612583858427731644187681683671998500128158769981247212198327807075353380930211937910977620116119876098799004758567802874128314943009871943736533518165186173817927178214364323894655612530723428294479378985040170485060834165173756534665856559284874679555875512958733377018145721311870289382235970941254184113624880009620060799126826180781400028393135259094133003082130159722217137466081736386954767944789597725682122803567084271738074918925410554523420898829666176823129455743258894629228629352046481639456153430431763406581586334730624909448948366455936986919303507137599718547113339832070367745078425306814839725391924543884278545889349275933989374858574234915402116634736080776663909410606245995687413625592159765986633906105899564886465989825474646509172865130673932170726607023357056136819908465491182746052936887783013841464765090119854523401346392591501336362685185858844065902996853136091918226058862897566625724698944646013972232835311685690304386220205404355044169921469186514495633675829353216311257791741581272758723567541210099268947527426308443513294109991647253013947046545031474537437084962285048412447730101122243651885255998406640080015156317970396392584489144993995851224070414648973836374810743113111649573043209710520729930628079985555702928516580059056486620558476747161780859027790719999813463386735230716303315420612407837465788192655247565194366206445996444469375462844513192178571140529418676511761021464413043850163248386383186176354411139477159374952489288480806489446505665023353246379352271561495553205698752956834835367450413537350674637616479012285375511377910356311888112878665683568246275364830116049042463400567815037161632243318639708025230939365424109465929595052987513821813504581881729523237574099268911856297890160786102392397377424056018299557412103122255041895968352413546242243897045674414167638151666215827162029488115410726531695391902081699250600510895671408282086894645241770512084323437722399016011866736869633728568274058852210383477177962732919300536484361129543901329228249598426432152407702758711573787619953991046315342405214214735530206525255020714091186609819213199831385708325163048453423369315753227416187324137210576295645039922829686748537645654276650432003399549203730967130240997546673141947335559420537469539167137403385304714936870136408841975030289500119170349564001899811496057298323246590914753932963285934299113076482145247668385161334668295092325546681572534083052759999095524339843257871493784642553794456241579794612986386401402939912226275706065255874527139981116496914299338815802429198506972267029611035806916083733617968899578332553684773388354895089175323441049290397332177814346044962485394943827070214090026524902795017912158370773032175066071461892511824239951352938694662403482208102737739134526818505004431214590661352731143055167268412947802440091815070547779972987129011395059252180618845940796809666861753026274906000196589516864251833124753797297622656123403181279999352382871921988851714534678927388068322680309756104005969869343544173787527979424997113306212391492554764551935813528605942338221245278228705980545130858580272308783524726730758609145724712523333664143826780703273854234334373637163517963349709567073191917595490976494411213938978419788527770279906488804741309408787472572080790516777189100082545047271889524032679885163801680022498613175589670165369785296028238785614851129169876820830072890421251490014212048013115615375966413028366022548302537025421049880223644132099025753112934941882313543233109954238405179340941902761316708405858787421724435895981666943445489982795631815815130503236196147944431686921699718426179779997489961278184911219545697353746662832264978335909164334652184879170740312356215884071621507672117240976939275778319961319948187512751088621950892938968029084423329800769412075287881310934363599978207373000813052316222429398946152130396236942936712234477482377840947840249884668101775006778421508122842211395720988154258069427845063238627202715939535769629626226777064789547563012751108789870479371511289156797355161755248504654880047698604114864711127583500685342466812034190614019000113815177177893060013384252772473998893482466001380641456040441483960210663992748685581828406914876805597626318458744490533958762362855026453143052080077329866876351609990889594421333324601999373551487347098860692892798495897119172925736991139062189389343389861590725329627252324628975057333269827537208991880938365561216904593498421666981945621840279219138531374437518426263630597402535138608553668892111741397371525441583910405028337322150530309421897533311265836452698329455469293018008782232430569818244621986945249715025947132457176581155983628662608710176902883790850136326088995840963680546183404808321080968593641116302122206393318486730493341562250179307663776726578473690866571798084565139156678344194567661207498158541031555581924024985294504274776944116003022699089701729973365917716266100950616057957375249866756440883306887738263652062518104496238156276109686950483848914117631276065891158239164366335340054565580602550621344857793413087364723676026004049665341294699383073885318567913111774002380534937703716825420181209454580530791235078281366486049623931760461218213475425532009385873376744151458943868614816739690744167285919140732274984339259171306876253886404325479115830691084054402960361162639962585132865362711335805827933349530672921457260039200214321658716667722732450325651698710680818766267480880120161669641487942801946607757857723680004360363231976064502581475131612543742936226229686976483915083756189331834363197573183079555548932907832230054284940276478210676957797222832619483365918849449365531203634003867410822764472212437555177818742368145507166773550194765553009220842011271446358703079096214025105222662224128165526803640577946649656900323635649195043239433008683377708615363419380254938808465646118230455158291779776285005636536734005563747285242310604189803183339807529393953772438272208690586113196775345889348331747654818083517708560781595521163161932553176252061893405593538747980394640463304781553979310220773376314016389740678007557509262343744062066964680402259084137608200328887776929378120468661500066537941369922956321836475830825705916812057985194602906827066449040752116814333751112211495520386782583255060050475648450909429264087674281279939342204879290106836456548980523414226869852174494396634931887658751593510497359570726472004495940153261118810650520490194428013160835750176471172668320847861612999405120713022184219292418598026528862489908199117620268769751369603088710686721243703111727939398639431117529635504257466745841219991535080712843195829214512685474333214150090387646643953944081708651095420374526287200670611721150389112091127977304017472032423315241757451675065494005365524571912991237071107758977889756096410318874004646501179243920151888488096266054523145708073893771189414334977114521484903801274162904262530256485181004099581984220082667252859611496887069173464230305250432130565291307202242164307924517251083172489822835507210692080165895469511241378153457289979344468356370933336831485558093128381160981070827208794151385009250819525268576365979287913163293857615526191477741003391464759366870887906333768831812557712615954951963392347251380198685460911213656726970640124575770219102106842577948907507326457179083172661546339492274240431267130706944907232732795878100534242696901667430899380730807483242306034049022599691378008179488813394207984524396990377803383869298722523923698859933311458336209940821506930216726919074984753405764654598104993502162442074830607190878853713016026357631718945871770254473582093286000530815240715506919655104411781785238998498300310826761879525780693182516653450477800102835003199081329065961686183461228697772179487715748652471315480946339997792100433182111033308531227394363659837546247368514009788025985469992270608346251003295318529627086664560113102102816434886650576746741001373056958560948326956139202197310757960822671596492776156971126499855092901712107059218148774698590449787864951576860959964036889188055050535855022830981725448352726565580267369329996230922131505260956176767910894243364645477556174123611277999366909597475511055573085985359076239001907322303926179101554960946258423210430090558992587077366117532064087091927234700696350148702340133654277758073730734313540260737689131826914527250352352484051918400270312134007764937966909960303790931404607775004404017145133726300912524108225179866657144459846714596604213949377667763096460136152810786596422267900206739617092107767239461228178445852072345102498909902928777771078934356659849869272250289947349351041616079387869262618922563626612350446899287281251950289206310645290462486063249531509557275289529716049268229816069390016814182400079373801997821423119070584086307740022289944675830492927236721840259866282341826640472885961490953577551165931601167860783504522552470262970218487988846523084104247716070417295252398510246125862052280727688572930446556594931301394931584526993629689460857170552817472447107734156394480183876549152866495144156278415899010660400245679621353075659644064854628180968377632495608557042909522986954125212514866064179728347433253573879753622640377634627809895019267312588153394962132808822880431211570955247497477121971422248605011820784989340818000893398901692965415778108456663748962252381630461981255818522646930665629392818847208137294952507121941703634880933658530863840720870309599267933088967775131133551332055810066037508551589258532038293265888950796373224704500446642278155025478120061636454521707809815409167326426136778410388879193503488394710595292597989797816753879870638688422051025186769222205482310768537298072995158668685146050875789130007698165283939196297622783314697960266168337201835842826475736512371048916687486990040287500050235760936519557378242108865899990601519683262980425863216587545219470895899970514883043185203410396410450389370187917849112085682251594762849399490126106754871314573047682309611808255362104456966996121097939568028774561777117730047178716153960750837414820242955437888660951800368162439108300485929548836885657488006154424362575678633660164512326997427363004125870579727067012595947320206612899540452974812050344573802314612447742652875055987166964617211728672171284129787365979642982717973512905137017674660822145906459674195585100697659791658246599805720544069497640467758182027631169116334457082037971202868992945834971198003158472765493184933002262283742503830511099000783349094875735288476941837404957701629174878561775139394369608117957932828165991673011763760630136470209457721243717199311238170541395262496079884971016713409123896128091846746643275057808396314681923452437354181988728861787547737434434202378654151894777223844916907755699812687760858053241566103778341564263739770791196588554421596582763309607052918257101375438229349781614024379609723513966105123574930304436949010130304017047763613204924413426051843578976471642565853509961650154483110331938093703214774876788614000144927146245983631885434160201180186476959953578573118995821532767187533612848214776880407838608346275926708459419240150651771209545585217064198141956762084788388859902914566117089306622479833992312083618268280147118583817256298995080963918567792023561343194590020337758093488861508415024569444698638090431612994339273746280469728985023523527475748476508413663588262993663781537755351679966768664771625043790444285557931747600406310577831063081181771348307509486266919571539196883296140392481598471907600932561416295599872434692700698925764535150164240964719109210486532264665327614037167325798619066553548390134161090740698262586778398880188835696365772814462442882241248572934795939313013199422645851290545193506993855899879698525678283376606804733278870216217008840646355234850177080409988794228022764434708186529307019972313120518620820966734823541553246040110092450234759971731889941589656026071175926898802376510039627240149346457130862473206133317757060692346274353276586894285532789405723493406211421605656459215874744362238288270561798927724763375086775843010267019780117139479207603436026346526949088482262713052993252377532323246431406704469747783174514838468869164431082475687682694529144894292498913804813402640449287474323020613396905776922826953436992226313385340220772462282435821381677593267429873771735937991335860550555222010472288963119448671103013273522287738951642791745695435774735272687467341878005874322163590923166504651093309806083378939385154433809538890888622993182882964898726853263081411300061774797504101898772236730291710285408405484972105309238789918043108128444563633729496068003026385908688358490628130126841168906649144862228275806099051476651866861617711811997070538103415630614268125154440239286890633951504074453811084634383703293297796368217520784023907469874140776819703429855865075054058390498968305156425541946731914911358414552760334629454661467897086414296796821638216273919678236860638658313138900618632266079806843298899588352647956269238078198544409730288785656454152463832711842438531313459203320330485866822024457360789015937656020712270720759009349193667301179024730762079192559378013899229908187718831196836407533909145972903184621457608996963836186613972298177483351109098091409594604796388955465617994171665875893859683695283453842443677630616870160279417302217941654155925636689706120497422322876783743677805376571704383636240607202391335723409955654991543464838808588202733135701872196358785867917668609728364881045921728276947030084433939754237959556684190763802746873346785562755512149830284521984225674403999684695748112239986789115252368360732639635827065646960563926124105913850343350899642544947359294022840013876655009812096636804111998181053244958081709515608621317317507980328599915264426993642966352233916430974205446856719110359175439401141144047256773342439446269768113557150466004543790897797982497759836880479664084967530858290098348653889428320863949598971637908306093451104750346980107909592906473659057055729787876341228748666361870079510448524766257040956604774910609232475156553156309971607520196471229688300498923012280193629046762628155785121627694133236455911299531692464555733945237526629786291709132493666826998129344267780646392546242124222694287622906615080019959264732618153563419801079821641871683438972573902905682789229471596795368854566524836318543713402684115206354840054140301338586753223912343023650286198351448825924929213356336076308556887463330009030940857221975482379046718881369191007894579917125033645489800849490162574593619153705597329213945028193257854256412730556648952571889610652716230631220681970121524349965410106604675592267610011600253821447040738707918621502423827518301662494432113178165797819429658692894822611884089163105689756639209600952356914465791079574606910149455368241464303978865782764991065916526865782943713142914632158544123862667925884565243947634457190845941614161110922400733688575226462967088698853097993125201195979251655998463002159297773444021757688714268546460139766650850381853187259150686946277302165277222237627602736653045404175689955963035849154979346532358999503222729772560499698296859847999520189132453968133872712569300705422111954203831027102393220804593629406797399151856524935106590271504482099006860541262307889561013111405418401017074527918080183890947328932327069153072720915697096132347782494440215021339256056273477743063712381717913151382024129321420260528451363551099026718688797218123942298834912331486188323821044345548637294091415347825592566523957611215787426505312259877466172206964775094896161271797955623447924069505263751982539621655494927811573085270157504985716622862782370580942215083460321709815880977648751358065778858898477171017796728379271492314083686842594207503482585336793628653953170948300999568913565546735158021283569674777748486880126894088498083706954332335173783588643897469956662545730609823019040571290559330585243967484708893526282563123897882677480144309582315903835678410884801343189629109693979547932734406634365646120293088167332699080432083222547476361940871371630425025962393180881416412001829289763627853023126088243053292201538093425310396717265021702135737767922111967321269890477793104230787087349618771016741763172061920911603691630883148143873119749778848748612025889333955806879961579015205058959312593702627979728014704259182562668796164586320890593834760266795407407843056386745480636769691176465742249660150996646256376283576884299040975347883011728103570031196864698429945538103010091102659380366092543232077924458689847944163985950084985966304663767878539019596676853609595705130753942773277808145661482385426760946673407256519694136056639008945268309152653885262942732511998240622887070608596224236862741798428061250727028216082405298358379215854450290146290752352427026858361055793805545797420070480723361713382618404636874928969834905051309394464648856635320768022729385027844692798496470561156612828629032994308201150326178875186033327565550548147800318501827917719918963957048589567920959079985915722821495304669390026971673412159372505566043392296489508854651280438012858456045217527959451528214204301158876242749114560999779584198142282227686888449155587691748327429358659182915104212112259883836201470440746652682161598169293821061935420727572950507275187903842589614623286240571459840063139993442882970555199104774631874379800116686621940701979273532175824001016963392638918806556744446628797716404881989626700920409198164023162210364241925783062744080583942933360314785925925906988510196709857406772485760505339522126070489566092933491249815365081031147692323392233531045686242464441897020564514729057382956394068901411012420331252776725155329484986113476998172175635963592530013158815262855067343906553928792620804137321990717691397853774799625139051710942522735961872063866572010820124241795099008795501849092447469516026529735982033119983976957471386471475336018023582847371107518377892982145506479663420484252603526516611105895232932835704422936253302593420406379440130956538428171287692053206814661960964741281725760649771440207185908665901243498100467449362928923709501132899612365575002470006494190253818204910618911849113989707574433695726936263447879375776141797465546526179981294524942820397577624858073163891616007713761459141291022950163419455621964745011048962387404285309911207741868251205521927952104856976037852635713263772925846568848351604346237601849950522314414046517206423086651531722579961802529590426621731499622919943494475192215507252713190531886363753852924768290395592351938568292674215586345441062567713500144866433886738624781638532577554365832739630674558099404128298280503522122699051057021671841224013101465662095788876714914547905041335271252557547651367274563755016706915383340158882113929858932806757005785290646609041167715806238723266732986909899142426489572490791371457273822374836407353939723231136669028237211600653027113825344433107370839565016970123312909555790830269677418183099369554089081690280107984204987501214905961105354199065105354179266772270784155726704244023380345987340019478842185426735535893455708873065504266145139478516195167747887574401790783727093191807718097767954917996460272056683795144268712023415123254399668163905718391380370563010235195972618229616105605599509814037005831280880086837721682468091440059825019995522293537657762398421190176041500383067632321574791223627899754918426655995372824487698773445328715433604097999727739263346664948415159833201689456213107404088514278031095963551647608374140412757705987797613347751618333051432890099892049393200062729926795708534423065774748627722995497132887742991950602038874856035120402848887882336570083626273824121841378766764241751572856925477163491618654967573326532759374393679495795268773990787679885547552633105606681734200619804319866309127812381087013433219090067032079681460521708327687256116235578940533079970781236401762888018797712697462881797961257384146971026189260715552434420784213898215071174232794382855860314870923729478924171434442260643258381868324006619576160950929747848464304028189086781932947981812298227116768729673890878764469059221771350846020123630189296723339656122372804736113270596729295270014160987548204973665797218836933614800561985322732060489142044310837887060984328079087629534782260051387880153890441318735678926634674026753963356559807474798746614924692238623674855701856021024342790002735242007115182986331047042429976539599589314709452103649342340355836004999501469513215097144341774348288281564694822919432856960674320392041602698877062167763686974339920640636341825385765496991606186165237053098064415182838944703729875931065212555370361230943449644305796923637208235185843402021845630883803451603072204844530694419150368488791659534870243896251639906093902623913056156087064851677404583993872058548586029737744577065037857329722928195359875312765032001098645178465183085809797749387301355960704347598814228915423878862325751965467205887433009870100920199712601652969495001906872330690578247644198484673903423464088892431277584046750608257884502145900416902509652378678525764377747955393673125224837425595356126284346647405318156096458074605046608071215191382207350240760714599181992749608538682781077134887240828798920416554761635561805371833768123450071400901077331673813470748170588283604233008465427548599222022482567515327561283773511977277486994816275563291993087102248283702511635690394854760104172990393503079100762716153994445850572154622878128970619805492451895715137227317303748807028105862756502813812603567307326338665933756090818468041228073944010768196448731456214217613877333575830908595137907564001440012370241896436682468676677615819297148987233580848917196813034207446591367562750045097507841934884290596233924737834060560093880192306651632576524155800860843930665558502657467657313965485743845988590222790830232395703974089649251617695659479367858561920632175702952196161546071175344230693486817527598724438424755875894794056529992327224919108456354587331784962101987424662810093689568662703044688301837437933331736175787129831122487434722650849360163594436374706886469938656463786382992099850555957530853531472342134303991921311726181872024178795849079901428759508867089720570711171966503080118693967879625407965027447669433761270233768142876564687573425513773262469646851383972969949492130567175678815451978372175058101448385821652675218678949452220448888443713030124274114566920459435266250604024268236967516314388698429914182418476087717954941198068836023711227843737141264293576266131501494991251697868672773465023193360424564613157709259189727023919736933070358989532430206236942009336204004701792963713071539140499049358700508127492388475809093624513544428736312264231956735677849164682957305940540517435029439767167357817220406793798364090004687456052357953591559305865074585317177564624840967231638882759125344753410179810991716400741666866739184469376139337820461643734844176354062619607100100125635402974147574030209857732434724605900756144755572916090609419802173007814275257884764983308984910794249646444399168459498178828246566025585667895602099679914797756720650052960636516052428797012610505896970088408682375135426630396871819939226543179582192379371183963086137148741043227210601920976489010548695743453464734544655361882452977329670230726593118698392656027306092937675190724752496392975783929108634294714660039390272385948417081255411188944976325496334604473406796114121648396881248160437035773639855519616848090942109199521838816720127771394471067482976336051066880164050090768593011216164972238508371365541973173720205783424023924389595559406810259508644215084457961418974116151125889466661190613469360311680357037178985842464358514995167620106135790452551023314018509921842711449703678007839918966660264036992277510011728811874679455660125199094979092386280581274590579724879368515558658960143534594465957002283083915939763318552091878629380791622409657536062007144208013133914068332378991716064441588749211719872868470520721492239146040573540873864495932530514749598790833084111925854141543628663809472995656254343737308547456277651595520584809916550770809337396455708743814629055479260819307089512860543535204133656812256262642920465837854803177662136693046661423311412472945284768323847414891373884384964213792498867081268668057030211638276652172186367558813481019969563118905709463929415188641458143002864509096183196263387366298309243290184940093188247995146167802738658499819360592916670328595218283167037795832438690971353214486121930725078295930871941842324954673782997044015653052984921789931777090373383345693877729007298850697918566294846790837469284461976470852296832145381979643270131702185377640670089148084348992441058228049511394076724936149375948682345457249929970110082916823859965903766193444768272061248766877460430635562716870970770058732488509637799533643409857369453929575522649005502543786886656021202708028794412366763749106088099656750629413849156652313231818552966124051758369372762988440652699027506431278055433274976746647101629705824991692637400862609652956215500794327837653435873043894272999517700815266830274716119471249959686651540696753488060442749132554839444932829787859260061688101624936405030692710199091084157221111012692334490614221446647887522048261500103136006391559425388538409713395617673424962308020901212197723032653398472612470043659483959704573874938400851336859689488962135974649789091765724458279611809925380772065735547603278414473391441844045129063767473440352937015314943131455524887245399883412643142226795767156486583947515270957125459862010614342708613681224511596417815772871978104208582027839839448899065269654296088147822059364552389123275373514700313518379572959606639985547387620542917479045172681892643784999554604718568840126226118616836327673879438347289782407780391931921841575100115121561946641996346688673782400894991761680962930340247097660746267041268079269565533080788532066343490748356926163739634771818892870537323699269409535757956916222205323057445484674994147283620704815053572036370234507412537869306635597085379163904412352415016467368216045687222456741447511558088347130754130535284702976597032177857762307157190779265011962500874224062786448542941348302526013466405065354844661438974570773489243387273085492150438739224105937134403914925159688723438672679436264784402200598537114128249959938767952947261015734565056599330645864461825038108375714183876129183797663373996793303769478730169501182058785723478010458507428575274810376613725160979253164534764412543861554692577705375773638490663491298464826758257836116988016078691228622707913785036262827639220722955383098318699969918311752309815732475956400180192299059156020304341521917069573748922215346364193178415347508351159560275131794169981143583721573863476051121468809773656529445507968801946818556907485671808046656452954535418732777486996217253526929791741730771276966797399435792015246624689804325094070222596423613308071491363891713661965983713285506068328942957907451014993309636882239842236512589239139051149026209015991294592266469924003782363242352961436498087164946607989170691961377379746102779660317247994470505101480048743016051003009571965709796498721555010559399581236899202553778761217041103365044208682239507945397285646919025283171292956358219406995699999798792416848826344046893782107170739064108203530206237717060474942965684491378551294050553347776495110477963133485281881876080665089657272905565897083298302158043107604355700245064513716431834306431365243032125142149642725869763465835096558265210966336660980105192645090138097139411589108592651317987971811892958359095875000310877068579176962249997153869276901313512836960216779607999011203298147471207167065302550490269598874970452940419505786737451046549617381143123435810331764723719968205762814354415380695833193964762165804464925686035640156903429839069903563973060514098344609638483261521212460412600099378442658675026736558057203880019589185528593972967895840787559975665395571432456247326664528730074913570879615869157519003493957892200298040617932855707714129605838638849309094952621049843792093749552234006879282773502335028380119296846644571606051236034831430713985697383190749385171422309454912026841794872499268123130099329272060347043944948686056378253978379056753802571729787385306064080874107680152596725861504702403723516421606279808844783507715686973510784513002232395866043318139144067275748659163382391243970949467322569744422268647123052634422060193506255310668367325117103935271273887452151341429981548992263985684151905419599850870486697886388286336373828261848823529828447011828225815713016315798604242389516445302412544017192824602563460062428239061297562909237865767985635989691416517685207214326107999483774669468386736898133717438749700258328825628585573027577685207155948707826340772242537925680381337451448863603608084844753147831245487624040421052361491460729249648117079654977213208676726724868378531788504469258145187014123837446381446892821371696011117776784744952520076810430984502437584499337357864280029097052131410280822975323800217364312002452864061666465241648108965073031897685102971000742571231937988590022420813594697695009474835557284494962729456066934845096658338105472593839942234837830290489047566513966022669014280220320936894525040077618610808993230024258013961230589351331676636586414217507995109565862409126749323412169090482007429786994883420139016322461018270587438959821081657056085470509446141122948979002013311802750881170632878375854511815310143694024174604537093718404482220153849122073515416440946642726096564530815770527026140654284088491591496890146661920929269997910599589977570734679702166539232289558727783678190245004646914122110874104012867476813787306806223456805298596628815828257224145604667668906778730022804222071982812159292173448625295073857514232022336500369486572535865678696661248608964569693606970584549714754835657758756524500577476659431548295334133663237989622911074314504270480627709119792400255890231723457881019626487120305051295238564639586614157935125089234621699728056323439191232368661750393326334523627180628955611926530131455631028859415790783593314327489446466277752685597005084341220859336686390432294028961801090931616365797206051093093395127268680633011579892987273032566504094924465819792095665426801896084637895771070927146678230434484637377157347139168739263769569410499733248769757470565014072301929625573156746162175265380931508618218499435627196024397608580791377485391748102987926312473882800841349934202361732232648434832718301953296381812599969327211437688945526116037997979652868961013236914246417265642566157336873561779389875050477485277909064209148089234532393611270396632781793911064020701876377520507601296395182995727981101638031996609879766151238965684317744828885888933026655883857752823822196005883974365366131481879054129079421891977072567688026080848668638652847882189185035601517216252412290100857333124460364620092966984213291262064469716758679420812410527811989687052665574189067611306392261504066622493556957313229819631828817455606124029980220642869752712717840905498579122605687609272296056795704587419927321259796146579253740323386669176634664258143896098298802479878349084386935127606502597965915802151293962543323365234213464410032222267973022669329214095737268547320543884356615090217731869620691375128506546241577545261447752690528883632393799231408246500534641615587551183388078984128966981537213839229160304715309410112592188518037052106263835172566149961674889181601264189895378563146466690001515404793992012428920583447446698900348996360544693470134520682463938755598582467516237597395741784996797460866693134661951731784401172223454941905454611727636889813881619218251635397720027655281192966544992760097639057004736904080288610033939688098216942110003911104982070897930225699032323293741867844501782076220823974644280366557111025834823666731968880435622030306396999684642752314542015295067277813429095121266196637979197839123404723206915641646278951131664233192958668651738950560812546824278755922730579656821302533376033766553263987781783489430765775383816273209772546259725806510227485909244158446421150330766863079722858083530483188115995403284159197225880266304332349515615216725309323500265359959432346994766112229552452391304412682605693737713448800494215093218039659010973179516896549841395543205643109915848655302643513422482478653529583616117231469344868168821779915029141990593242742185250522629515515170819368099726359260457465242193965937677930583096252671821530221983879784784489705944151322597833914795632171127206541083760053949125049597042066835137191555878444417848818837561533145036296632911378427857712035014229323444706224318063891713127444931482191265330128358920890670439935722245939638186939276009673309153831950757185042801255837146099404668738607428644865719756264716378050266762340297791604081054144310422105367263321839394884014083230537892944359603689043750127990549756617685684607937088948909065197346491179179167330404812288041746865379494051194892523332346872800525782617378974717150905576125420448530571519053949603673712512100581737733389244392010204935069112211695575817199995207416614981546259142338662207791910346483213809464848335465869764532527258754490732033281594783008108557293979208276774618556555187478455160977338199719893737085864096243097434170056052269873445663620201949369424845613062536205017896090423322496290702321630085573475080382165759584785121328627032097131178085583191223138896034592521150961632796908497493262396082065323399605817058481227108475616925720250958821925386241010832331232421210725970314784519476798114723593304828089014259866350007774730735743194111454049068128283881484670997352216454613873198058451018237148000241110355541649330363155900404793139165625475656993772070257964852675271050967888546793066665600622746866675211567288989079634178782056198613792667267922980590477659355200279951932404392490505222473218231179759841671677824624861562959294432658144395820160724339168272702567965010208877678679040898820448932157783599411823971791540448808405213628405805988424881413867042945981463200019472308382567564070346538506212257337892058452823010769093320358646325077755533942845535348415384688632241851896462003492033838035079071812429337485273828961157495776295613125418839278504481190842256927179601592628922716441331575967917774427174672828280643865467043269255630871458597121738072485207760258381532401840168395352193202721380720150888152566156982636644568774039262352716823802804615079370295560642605465556304565454165587139705389973558242795603841359259826430924076692103836126817704625628288513810612351849897491492209582094742925328455278339652275070898698788201201038797700950765573961320190310447640575576820224738986394149227899329450366387577830235948503819840510734548063055446221914340142691229876019335909408523693818392631903300174221362371282942433595482452879584633908351943462591170665256431975005244886333336797372852354926353402068306146913376818653253294803539719589325945496681210013717837218811429205768714417244719897836540422216835713384901367772448418591331571599654982982017678593544986145693399116132688171287034196710310453698293933131486939519581882304623411262280480248339970945597480862557873857635381369263211796853223124068673124042783925136074146537021546637032244989484455330751794017485952183498036658404288194488765236266798662646302599923101992352184192966277880346637513424242350309297839903427050874990049232287955297420666506166449049391148116499895800921834539947673078340565474547153010103709493619160484464446540098642110308470177878355413273236343303052924003174559563539684227747880323760917505378445687030818979959490063163815473709634241245497529901766637193484284763833349045488141053740465566492228428680428957061429099444651785029099722188792554031224773227093482806427144704109023393308642022503643352877523370676175572288645021089353667274490260958478187387470837241219854851312887256754725258479859742433272542858519262298691168187544780612055357864178586430848302726587611184189697995838555053448997503305162802572283859592953244839628772004218893948624251501515556899303515704346009993267011996601355723424577211510357381040882173369031027643701939957657786496681055730765129823995891960677218861477461939483335049884631207326082043974005364877151114221055159341185752558130293120242305314077753787116167154731257433876038121766043664513268410804851621925278196178875608958622614677179750144366943112836140010213022761004747892320213736456780154197186538980681918390438347558244433652099301135579647896927620652726941413250795641144141520800785545443305970737579466344078343746607705426628227426673000654499394962391570119048599790678071174559498060004180371761834164112289101272488451036705994757266394942896047339673850294616953960418544718114131063709039262514463577859783068206371782184397811371263058179353237472860459642694131775579738713285700415980599092422611394019427055683013054625288733670808498002217611409198607274883500396959883075813882087457368104676346800373916498097171418834620799060607929584942288441067482893254878485806582210943134143391588204108098217886380427119722639148064026045095789200186523855562071067575804013363773059821730079091779944595625937329994958684794913721274353402186510939839146051760832526868188960006305622521464779797526620815660894288912928727617833317416179019952068852273356812420667744433289624790039530269368095647483769662168468113090009451886255286635660447672805583471401798163744643537713884472438385096323716119994927584882655021987616258617724328196213336198120548797282841346602840025147242239185480189544094912694913329398017402748414841989970772989788585513435472295999632037903328730840878808796105674581426305305756305140899871169543354456209244221758785490945413864096096783133457896967624282519751879475319484986746248783161914676094815873159449206742518349797878269384891969910774107034622637613290489949482611360158952457757131382822598762405897629938697651068968411687674689914168596674241412888537026926546077605489368316474746458714416293307014899270700150219567369500153075066251899929060120401049950607385933663767679036094876022858052505030984727170129310432623673679537657145419622396915992516252821423869470778597426982891555991606264061313437272136123423733853120325946224027380485258157114332621066228157770125955247617392024153603446448231419737308146604044583870708006374464441736400510750669752938635527519486066103103250146434804401727082263957299109752800641871888370135312578307548213052656407271528553656459429600753147841450782327558420378009072782858286750863370073361426524242919667927715514256385695398299082490214630536422475771614821537845443291904432366427861176604009743845053628420955396568871264451446739178062121810853988191837234907347644603383098047981545138644000913495337910323040174422505300562924559928385240538356225131534285180028860199083042202599140041168427597396338391098968954285704341774698684783068076992374403770908366099708462912109954614367698593388608883683975027828400451028157966298761810169878095726817620175054316981614489523643177171230862671296576400883915764114244333621181065445206075504032479427630985585043597777181865301349268213200370153998328417476477080296608957215224283381128863362893204792708929593244656477148632777008656573074705581845525855216113048764491512838358988652250657370915753600105988464166068428628745073750444372432566326024863743207876755911234288210485585697621150096016184207639196581007583231506840010187868304790268329337671704849998101615885558924812164191782339303645796399248937646105163054422415681484026584875839404667301938606276243496709663198836671188125580284475066313127932521815515737467216004083935548010081477180314185102956960512440134180872081890533218107462370628372235853418215874163332866222858875321662972829008836386780936487935458426576217338077161122192757712714939022005422079518923042340826991660320023545117709972227629131900488424829607342659677897350529803166729401362924988806880575965001536492796800989092043986400410262813442863278072251108160114647859631400809690796487665618363329806208774009078208691329727044991263815580271047354239444817291032472219002463674736645081417445462668446765290239840679973699175202968870330845915980688338950899468675848794535915400757297259496745553903902571926245849124498648117321270291157263754680860470556243321431028036216507277617737297867767007664827389445765677931948905615513375689664458240054082755998071665622636085404890546359427639592990303712883265301954129067154103710689938914368010171631703735444682656259812093616962062532785284365669264830301315925003950467687753425266072349039850264968796280624439349910054153496373509717680949410160556290081720109642149889931457964236443287297579914164009217240899874118394554018338588772083121005219965381260310453367078338571789713520999564158762119415505553913642021478316071926960684198843059329852167931704559996235575869771258288487006916088469379746409684617558826780008987710007972170918502881136214019475636468314525754151771505627177903562031701100202610864267787544768168565296022257867868125903831465424565176747701997039735982310165844551846781513122178630526025026358405022415701536559834788799537775109710399586826276491884050928402264206233495043319276971973739393117485200092799040796444199945997045206268795919229247261365054979537259115935127039802419125651475890725790133484645812370341914356531351864899522490058311797041071371186698835969914123345052561952424271722357411090602275546401184694701741020250657033644534147151097542829502700895237209116494693678697200654965597140938652054660241370324864401029344087240102254291323921666527860515062929576251689640406907425729473646902667637762074127211538544599423996552346703024162938598902301940199551430982367925697684086368237878760195906367794438795440771040462581883302403585505121227976820880653660879379928898964011934660306265951903594964131582444663042422977722607928284140534102871235415596448477135259924894147483732303315381891134594082998865109174130640263477661784173220245917923850117008574174031976205927468779944192418437876787663049318220150934016099341377988073335523726363881440875663683953162192034404775238752061912693041853308861102752033686055460114509995815603458264652526124906620674994158428287671338997002005730610751126251152878163382183843486635862874168746100390882343069974802921233420244803160803916395339876590861292594937008968448310927064653626210583530869737398556993468498030632694274762568810537174659436979076220955222392141292323982278766164212640520575143210064731821292576141932847335984198346585479619135948287504629222866098141434547295420189589740529265142533309873806229464465860932143054446513463658526439590296448269422798800474930696159064378082260351691547637606186076474864398262263792388117280535491419807874902592782071127100036790977598725926758511836892168668438995773568390449773162392420236918630558204185632785077137718908150095891054411389439122871213971874688850496545680866805076088697546588274009234084146662817863846442441321977312761572274682739177777198280683561522738975479641762602757117292131518478798118519799456185062348362382082813616345612114682367580652975887003072417627169933236268897563945438961890565339866565591698503939406252978324420718651517253358231959112708988535530656851568039071381886910119638353098902046070780197775213676350195408859675316763953815030877376025243753127647243290201367209125320289661243102205361599375449740113600829628815605434208664743848173469050977554028274436612795719222673031817987315656174179284493827920800994835061651525706443786550832699432264934301636144106403171846000496442007248701905551719838882029837612438166543892711332447363588568927358450072219836137901881190285474316290243935051949725991558035193184860024241490376501851829785488789614784804458511331462457748568547313269848662550499036325346847209185955722113580021640532413496189108197264217702317817431614375457073708713977024517547261640855378317005629235271513577886847832612051047767371260263149012901045904095264947561224894023335175919809257779353091860585182832005699355281127983919068966342487462972702226657119208616837875663404007097185264247341992131535764907130224045161786308979524738702459131484874946326563233887529310143618024260040267713783946539621107038651148664898896631154831116438076345051289730875091019220251067408061967530879496452407046017605946917383269824452711520126693181235686321578666001601666557551753672932055781950226256138891867572263279882054672337729720687631640346795420289521252737374789958417341502637772280770610983094531889654991868987494761931217190841338951950897622463921886614442843921494870990622110493977261964996375861110771258373205208668091009252614450960482582742085788960521690728800431719065110390709554165846285208725772126663476240662135242577675759982883021262826497715807267262474395833372609537886864927628400349756170962295216633601855795436265979542324832823282696007500415553439875574284624484110725405657729387709941470988541604418123229660487949863497099400157979284264752398008972943217654631826092545431143012664113545291601675566895738545864344695107556139503303837724913344998690223376483621373845026036212850834576215431350768137780036685155432306565924809635505955076612868601907944700225601441182160701902867415732952271746046364775658989061475819053222794847344911233027226139990634042055031779820795881757113490059140689587347982356533206294318082912496624687646966733768421170419564381631375686686784666327511417780348179370410537304460631524619088401794780316199878255030875875332295216116462304752428220237055654396524514388931381964900379376092286791673351543007290379723956191798706890782635471892845348438996719429782145753003328977523954364784709847533083834476759663432449556799124877530600839603749414851382566198553120449808479095640378596309106997951774379286962486635770420660568950118618844037822430682219998736224214429228202123221599555697369005742205728836880631332841846827944555115736517829892856000305777128640204297112229644862312895812343402924257487646916247166678997508274779018606585888236047907128070579053944352129781593618491790787101131842010582619024629842091999658019586671987636706174151547137939872416351783306931617142699819509097351377745948595804761129397877848335288778916885980009497416367320274096389022523036152326266408753730542890974615474193933498917219849764390949788302114058144121907547325416800722464409712515395261162583699122437145978943154241732231188961911163536515850535403066635392405714271800125601104124715718164077087014597568012715888787932829746968620437344350846966698166252457345819561761029606061620520448408963431268819485658776512560697892089194468076817911581489478747725850127402385687667755188388951948851548560519324635875070847270176602873649751258588119276128638612262640457544628235356119946291246948266275979403539670945586740945492288933133040203051443131340510748265329683348698769820316103349910752379762442029904085462451249015817682593577528343717193685019264408346130524920598318313633456841951227661940991564636162649407586227963482673936176147321257630475879262038294236454246477876190358643465494408350062173743678417832215182616843381378577246877726491285095964888592555564999813046695210364481132765313449277872075462252669488573177647153723033695938467911414012855946944787673209973436280700123469645187856145616763272528930969139557192999669024519212913044198582157284259851750736728126935789622666750899905526800796710260775094046872914043864050939833211662579836708843032647382934242546505794575861334501993649710879597028477420644875080316247031880950485115600537449557214052741428624600833894664891782222847865767044933686900558333646673800130312962204264142629170337227178852355498301110245049688201085491370373493456449475598905944997150998230384129120888393623224757919074594255598262368697289956904190021728176449357800020119867646822820363280762802414795711876391419725505207895047011243299279510416906548680455111454335353842638944253657018297454150094225160785292880513743500914687306728915988614404901834030075714898229877478987936469835335143653561091322584485761958055401899554305028766521790932066450395741413785608737188650196517018436196361698514788612271728709334461170783686444774541488954839217474185992640422106050836259361020392274321762886873904307453460946814355803029353349966925866167813194006008360290428005018823987073541132819880914736727797984419623448504648675421235897595245489976411587422799033487184141531315521559987094799588358990150003039997349472535800328045267926409334763388027736125147948721381246556458752495030297026061842922216388417202368183692388076200509102280274012698695357235014516478760126789942510782923954271171266168169038171106968919399597850527073167378472851973510175119146398213168541755681719781438290490371885570126364806848504446839048311821759705182372578059572689280705451851248812755062938242741948514938618393414684436913964230445968041650078095806219186379029001096665954299061800836038231937808923447737654256621680575689706946047311614264861419288949260041593951722570419262900177480368896620009824572662826031727030381073465468614514692561732075996302771498511142417351048758615762462029806189589077212561704398717053987658817314290934495648893199608407467336691701614432831273408164809724684815560775260528261781433785203039220117059622659306074094564193548470102590581765895280606887172615744493064412486731266397731582114581825228831015562171237256792256684327467471712555067044791375964599126790446680463140345065399862712794009940248992710663747949478107740178168283948560350463594895729926773819689078881830101610096152578383419645732212115068346171554386960692281797544725821768163202787324825488706392318791150826696598217499175799649159245409750999330717174413713982438723657475550876352864525190535418525004416376318942438264353865167208663245671152714960436261933771892451449094425163764316256077305165156681113423606754765755791880661649790360983303139908542360742890475485469418416949787322861403885416174232681904605295082345019132523392862276776294155644877908240765631565682317802585608147907372055215093803939180969080767186668882996026016971655831976018136151453335151561814248017298359949464368583679735287563322800668172352470667856637417553238526517518641292923944330031937370445380665856659984876121252825935961518609399683933460401484920573008239643533657622232537589054226715575040377673254678600175493123253649642845738141553708330089638403623361673796127796015026064669550291512789401275852092496904409212144091319845165845033149680625376863321692498033571692943663798133328973831156699451665625450863397892635160304010176283301247510504105728697345382620319585629833152093180826922512176637596509581262268337507243761487064231731221589435792748720064493701849132000463683773525666221248430753195854857395687911277716700194348702394623034214889699049383237168265722415998186626972121035645550992649124062441843926491064387509344052899839157016081046759322699201276546092370242192976622327162293472049063167388305995099228551303893624058881649583236406599188929128621227491177448312053179919318482444721379864201657680945361113344395841185109943410801885761352721329292207641583750471290567836745267168277768813632255828843674860561221311550560237052436930173516656583559067007066967322469051148989210567989349156705558188680002619101462085065715822274630644248877324911499990697643978561470344888635713828939846436634904343747397468081415005608483261713189268472991361685822442824981234692260912099427515390640991424885582939620618841094937878904326500996729243486100052582028899802574824715050825539545770839774897942577921197268350206814581669787466507722035122920204222068887768301747931819129579269171562240609190015779614378778716230343306273006156335416621679376993844684207594651888428740004970531191757163091346809186941765664742678290261703232118190001657004424559281052611133543946269988880778694811096946094422800192430468129354844011180768507544105073251880327053208832208689189826964320172061666021771158946033275641742355594590383782999964001755290889965736577865326642083826890538281187310919873599344190355332557189326718111260041937125868657202489762383208655907500654657946126803711569953215680997800463741760760004459646861839642733909717675371718049036584258790310913760767255922899091248220916894190578121334913736770578874527574235299502833658934410519890666028402393333009114314182146757408672961597985781278254819665297680386324763967603832670667473237212791533565764496771139312980066256629615930421440762759722375195623235218262965946780900184190027984496274421183415849459577670184454411171905057929846114943320394531174112620953785244384540506398787660683115109707007535587806189615707346974023679819006700173776460900321102871572668592018069882972307528899632207330669394043188855599873711338354968187863944516521354462518261091682711966415551084094511531029615045095406064954703953306306473612775961676511473784205374139328361547381438887143996849865818820616049295570484271377350098418113629808565759695981439401336515667253022981403570148001507923355853607859919969590102713518065779585181038354447286303962065628981279615850664057462535456603294418158944669349946879057627080938614584758819329108583853416523428009476012563570543103988744020855397913945247741119600084718826836686242435729226976363754119248900200109916264069354001916654090815933283404795736335857635679060267202448451494871584072955796213326601900902882169384523784421543351429728448987946222913635428251750423692794049408628181478359555050197546373442413500044719208273288998877881466058504077100507930099727950711560401138581257252881320936227068437779978422512666863751083982419708117095072373256440089661945498860570044411475790071860900937995854805880330426837899095086496794113945951099634203561803020905108790571171174989648441204766094821767604064680147263891770844956660603171914355904277311135497940699640532806791192000328386531867640681681682067009011779632564960562823668739754276825357720826379938726494278215876562614003357457771018029138323893077823722608683739854037428609574884467926201398980627983054795431842793349955139387685109274161715631122326146047105312556931550714081202875555473526430284816460303005519962186105677502321409942923997788717230899095176959244999009751485828956544128468121365782255080489955664748830583083398634868288917342298115243206075139307334781150121369796426449345568267556531012644019593602515910500093345443254207326007290624069385258636533158718672068610162835600253106916617453315753847081853690444783093745335248075513146675139918684117132426260280404557824571909945178549860324562387867523848743834531622129478874665745786316481546205462001528565846162621312377948079229197167175201185350928519636292180229959042728685441443893164090025890498304070656594534651130994661129577215677378090663080054780951697147723957300580363702225926690016840400372058488273157949984739947840379406698785305659919538284688905152253764171783566611678120205449036381134589413080538251604356466042434083418220638098608615595962235776491727495559739472029705748924728776169856197943018107316258853831921234910386525912665416336320267040392479089878316090233310565871878065437679065720151607539242735127317843121548944704164091299651230058484286746294227395756434924221678711347576005738065550967793195915182894998493208203860719727610194389155275934687704448017435634031356326635190644136578791816976235785406894660501235937871184915461489589407355214433939576386927166677719848471647405950609303657921814812685308671658331846104794320855496250200285772842222008802604854213363455066261335011969336647296078673555884122921893651592109111720597851567438983489605286602905072488751561918732372845277644353418291524064323066236919640133633600861030520123932120262015104920113223233815808039789516942329859213900340300068421191813910342263152561328337373033683063618898628226810577961954066696773033994800080206467190889290188992467732477291193129273638008327942947368915931753750676715936996432677943161194582167716693070813152974271752260199467230361414859521698391828920288986650749971441346788748476808751236376666604582002980829619181172056648032626008433079627106124735016522487546300734462393021908128573844757591545018469559168909012085319267385483280616683890336468804845379538960203533002200474435512152964965912919012338847672719712995962504650545413656795971192056522049679484206819684336249161084192603519550409979052585917745061073542793743414238383071140250596429633096237947824757163526791852405831909636921114669684171231659344444939051184209511641356936214585823161979481129662737420858662188210401999497857836105373800240319202651510936167868340222298157479787040415534782860057856384404901302400815775196876033130739978612309209575788675786365390004810787399299661211192817573151753919268090748537872199231375173827858080630515695867137320664298511708407420060383654311135243462720245948772286038425608177624716584674497345312739327864510750691103284160907736892702776894894209141682895771077751000401006250889500412463131677142600884673597010320015598849406655139776409211400509487560171224334262284012882220929902571586737569309674530606943067752797610043874663796107089030356132741001028671949160949969999276085247684185339491945153161811947268392065333168735224068839878548025331904215632653494327666849248455635357436361565454066108665628916197627449216106347830688338079298804493186943164360868469657588449269468166219015977719943252721470265238704894798973406347228990240864132989060808250708330237148423409330591183741911159660658178105369230680359903330887805803409829112935822064423228293368218958336314535811044809435198623588365308124174411077002633274320552538931211306523930137610284988086204735427663696893441461177052290245218648480925520175756464849425967615318707937071724927124666201461579116928280742298359031457862236742391249965597158548812937535015829972149248206511359308996232288203371562059787578096482396731151211911598644818613642231116347079960599032504151277181448346538626051156449903772042420650447505158648191196953758231565551675496332319928096351405229894726822320762402752309651649603946941349362572412328096630301491122904262129936042468783482364921725673201128635689370890903574052362125868128567021603191391527327132229272505784705542682796176688490864227983673254749001952221030244308732413842713004490363755968984898168876689832567915460774007330519927492823379938387229289112675744705090416528232250565667371451057307625896067170206809893430940764290772488654232335842646158056433505233425263701254718765370975620726278281781764182449788423531453241038817050889476644109714549902537782864987861628009932667266912583141086410502938799626776914963379278931376670352271312894756889299158208268959185968232122569950270948728705711530034538923157997046226232606393309185261684204391200570265067659461816226737579864513683273837985126511884941958354858283869260917697984103805987222696411961807126340233690228695160192199772429593797102771127435196105857129539003784174423029048288980049365640187036369502350277046055490789488553669416092923959589786337909363585487741245577491494515554241767957014360227009873685093687181018249545199698724842781215784549189013078855783674978262141779723655864017945254963207958420616824284993201264686899093623926813358905162618869734002810630046614607316605320882582909597977467771184757718707777802768262578027986289862874461395379113901805749469538233686825241791045739708756244599024518664516471681680081901125372865613184280869465488066467268414451016682518952046383135159479580888155913581085145181998947465506922864780739001587367760093398638066617498440563332717007353274502201960008760367117862424393363599340794422865389358313113094404878532865872737106358317548712829690490116964285464578232799948621057004509498734991233328112982764243770778196855224991498505343704163538429580832168987238389017620082008298980630704341391359605910057731764604861812316265779451702189078244332418599228420257079211514875524021544405141688155907737235102752300589364594380544231227091372018833838808606466224863965647924773695485325225774730777627966787640892720791829090456718348295081327303024360528993932497601455698241724288085290485744483516737866051531561549245503475162560103540424292761002526923435340875698686972964485968221437898223961813925522281994824577378560977836682688756838279251079901714694257531298793611394599279360008812911629134486918945770707588676122997258898738467738116034817444095214638291910051844368791196401529840484269192461320531302853124874143146722682990059210805230885320756915687287818182742593571069953649909049110472011266874091237535048051021812980782723692545647153851091641558142984948692056303497034788902184676131670914100651613301444120071724880635969685425355201326640691243735398250217647632441690434988467453796641329906640098788271903532485002702893852310315736453312847301632905592997913646845277047391187983173014316221095270896424483810781656989144672273264469449264892783160409205388748456943555669664993020024326778992971533938036048800059927128504755812479433654236355138031071178520977619388538011470906660175579205556325097585358864095695653335233632826754737650178115040639076631480217368502279241312976610287045489133546189731525406754298610835548107411627322876293500248712320573907234288842704684167426342298815770334302330519348642652006754956414374735334476668058453381340329801540047097943482015541393302956566263540582752309479020051172650942820377351325444818336887117848630201589464490181956032967617262687384876801213680774382179946665364116559163233454028561267713311893798635650605794314179034914056489739261173489780411052656464683855366909378702704184154665492562205286389704378813457123276187645109496633665108930928732697492065252199594755479207276495818778714391031532624321810188241569123936720472081444034794537996984805928075427940071463766487200366568793813180026155006468274803140603714075054901574319361410345089541095754651398191690131539371028255696023113829390233820121679397081385986641293095424933349181169142151699942941838267707143349869912855713484471655445569955947262450374753212989404746478546236467419107462737976276927987181185074839166216649746625977347737578374880499046578684940958769288760610195206447316285911937175805054200139279182700976295855609720549402774355181472875635938268926355016284573483349092869061286734821303884704450251180637619058080350786962804815044456572032902214934642672532245384521178169591034879813436728331348603694956117347865519587734372703055241217585981224446858824978374471219724310920775341086913166617082245842176867402328665458915777948471202475180572507677818745860776614230654863678742070940602985477782045230334839504724096460960045845131702677028997608051363733965987364294634251922672383723086888484444192123253605800539400177146460153979358854038361465250961986964115838553101519426414008010916070322723075133419489480026748518480228613036970006711273054267943962156687860338292184933133966843562848795362771560027039463127480417632833207043327476021788402797609630054499796895527158865830096462805125393910161219711811851432807472710057584965015178548598025054629521905503379717649864351355941683254505406720031393162637055234147263363085051126727829189570927960739004542466768736349913403266547112247998753848518319163342347511895099971896908247280178513467120462762003294161680055814873377951551252089989980254385927175896029662337572962449926910930939543019473210556192775512759757893592971424357966820101789513368216644415760696531634357730355266915768712195238718105856663072997569638396589054171398666057714509858661929882533630052364138469190712858246646146657040756994393961729677413893566816899985969776070049005421551946469032202830970460978206713245891768280992261285822741991410897982035332733167336544936005976400498239211464424839380263271832432514680739962767734384691125317732936800775525778142411174731264515611492210328883452347435035404055794682273058290146388787330686153133655221616135996232353453333007895192314686168339073958949162913047838007122172149515478662717913629883549491519222962297629905701281247594742659672639281913182470453847354321804802862782961369038820554738472049823374430073630156345628436772498649902387028175179520004595177302141420785812782525327234269307284364302231484451345145045185097433127490565394325353882767306825515482065713918511881477672465907282129336017518744379669597439492483227129692556323017812694871204685832445808256227083802263115219822891293674951357934697741505189110493208544177788631252016239867011572800243110939624817404590292852652423917487422921062148197386058168471722612217646332778317847145419818516052403082343774375705416366658107306501272461336374774626229368264610037510686901789053207245174134345443476011415851718519680201071313431605741327249778377225736357321558860072713477653587926593647489081961208422788559639915430315443543945641936621677657856564020872251780304475954243841224877533304884795093208218823798548745772831840639777064328032189345646082420194684703127935021517517265520200697409782483032891952082953774096572208895458048567941106329546077134879294317273294022773986136147282355813404921272727428382454427127239889922364138030441902770466048427445702556005940882801646258944271906083597271153625795723093532104570589307701366862578278694317933754994761535886976366012635416231271934377429123734062533963612348086751900385776784329815887837975015952570623937714701313130770010350674180507764712512445371148798517133637916833394693648859968962875027340232073023612005151793505294053128886170983323814442701924761707163393460428382980958844492665122586750101241201450210830341344554924603198324803828421251398695648031744999905091525294697019352978929998525025891755804698192556006052438388279206837707885661021942036772129227969983084611767230955455860495048898351508047083720197475389953544684477121210740159391501971232888996741813290423469859067016832447344834393839327490673778948916676327893723805723087984099360374338358398459935846945452769936763923919923332386716139158858353318850680117745183961873840441010664445413260929466152994429849135134053374240623006959986953941239358847998378098541433288348664425026887754024806879041236677897390174892772594932692177303955397900244742103785034890136295755676481608167758932317547114493278691386912748827815934465512830430957783964776174395448495812563969669644220795762813468668822273993099078772306759747872108531063188033344788400970819018425323159939987039177745950085375466255178613191659238213168649447063069237896031190308472289678369054903351000467537613908867120607272159543585803678471604396154493169776406687063602674660408584576714154950456837942637631515594798817660905586504980926861446208712332809376923670750415407058539064473689081895404687091698558514946870337549336576048362298255750989264158525706629836302724042778551548970236819310984787464034550077232870796154435973102811438521683649812515180793232223456624017605260785567341904277115904742863452465620225311952364528805669583914322997909550769478542425181945815201679079887872088206343912227656774143681955080032517575173718381268733331475707797112653431204800697133867592702552590711911526215692568349372541618198269147647032517592491612308276130480719234182228548828843490732273371694840122307475363658830608119416385709551833821689108328090898783902964184870618518118355236632327430432806840283424170598606992664662219705310410294701861125453173008570905176494349705919053230067383193082658357466836536606480718572788172577228683495242297682066159472220467465177414997571737702485912390441985434078087502152308616897267834625390093150318534935761821509980500005808317575765112557982640426562191901295525911805384802107443181523095332150079203880984750071438357549001671680187892418566767671868829691948090441871539884492249805453704706283134607722228126178476973981460541541896165355912322132442695032168966810583137933936803796138622514932283080829008478307440989296182506846931952988241907626624668037815536437679056773759442848264438698216190801587883556855875043979935789281914163820667290160340013374475879253890399236495799458707634920367137363591075475446120958779260953159566145745617914525333607794012311311737974910468083464621626369922509977696478964994901076567122915515304172499804905230376249036746943488400896396729883920827005292663511975115391898719050079374978450088543685742207066224987803566572131429163343887331236761183415869008196339260069561006195740478320995836793068425635971167754391389282953421507808280181226452785467169477680678606467087026127805345635378034835294068467825807483009028719470545661053479875424079673103291388933541887869597089154789104681648418492280987081603565646554223532431823757308043343251522383084340022509414340711167959081616422196915118019507645653394128454568093723985284082122331907601492009727933479998889501095370259066268055986845133394067970703779538210935696334283017759758544141905382929938208906699960778447430761779508372503847715637021755980002567195286998415451475929744191644938978915364297129540627671042832617459563054047915015984892964208519300775493884713366870878010174659712665855370280320901397457461391079674330274020452177007526352635335415470347006759823798734127018191401491576017722014774210074183476814934924910838481615520563906418396402811836323827770441577358818504609625840423895112259174391619874668742980245746730516506623400306229615576755832864112366307971009070357866479452068673851897064165646903823692895242930100783637887463590287663421148734393279588283057179192423932503072268010204263748516716840985366956837547983748982630266179282031978097081080407942781252154432452308326428354926243878568807689839893558506143663527566312090647757369884431347544495192305863915845011729272409910105752023229921281122122355565179926955917040696251939144850894189313541207836045761149514991489910413462233277620319745495502028715157077731314720904755563371170190856502960436162988485509004316931042882972281831487459200232612948457896481249984168615481236618073929925789349750611868571335377367780608014896096194262332392907205749030467333621180916162389766805864811422264371033617608254580938164523234838655967068684170788963285577246254085724089925307120250627378977524319583071505398233487829462779435165902677092901232185708762979818248536258326534122431031826165284743161919551249019833263732866683167607450312488655552925559823535128442508832489766622026565494601873063058504836841972279608326696375320709667965973481305052015937000981269183691086898442093820404417788440794792844392298671595282551393266740468091814305824717091208549226623245047363937726079234619236836211526785934394577978147539403134401161320898830781696432531003686944546202687888248233837290800213018888809122796532808016549794388177869006563356947051155678036112657737480788876771649334204046079415557891990683693121984048458124487317536774842228323283615282820831256303765271589712555446366370920918264731481649167964356961701852284971335578451372152080939147075811413796548892593839800406278194985603076111252456335404952596198272911615527861510574722813104065217923019022146661523424512822716749037866017854768439705867350765576752928492628602277255207444485977155330180831658117735716866066235881464023815652679483825801801712704538094278992115601641469658659909914565144026920373435925898513073029842224330290027880809952371967251147365554170563551756533708250087341867518725210603341319558212380966805339108485634759045793668450953583294398879617317537453776551175423352932974864399578216137160240589575545254017592335723360847313204134216213335389017845573594910290843857138215625968205322757485904217333853009449314072411872002736192539310200862592339658184702431020752290305508553436174297809660730963745946997321274618547102932771947342689730142468669601629292788319743191716202975937869332354693303214694000737539185790483078752380772149117022363500601794561313468834661619369323811770055226099031640642830814736013379366994740559549664471690224764043593784601073880068416261956117009040715189066504342450206982945353141868492966469851011293723051896713424728894207555325620837548881619221658786681266085662833948376023501646128578225509699653691569929041363493368312473344753882364642313697474897569938287825118238695190536233712528477362289575677137957128953977299029909928437051568968726353867169118426882487865847831706005112885466164444319495219911824447891516609324913064334166086626015348191396411067761556526627443758043527122409162782480813928116388323421621520547177308738760927477089428486733137904940099078312167026402425722316700570974775895180037996619238890516380055575197082161086937199656824514465261070207236831275688788181375528681855648786331978673595799691840491444761400706753708695898729785414004156766426129050737673137592525178588304104492774373287262942219159628278932596326409991206320291771848856577909047069904680106111657949680950799978437220787482027111060172799098847331812875676293667961971440410071243217637679098809497066369151019253919661029685848973601351751717889835432908930751663971414947061465928691412904328973520184957171626067644479195312764287812773427022623463826113172249556646304152091813429694006691412634810619144866124122005409045294220368410504900338043068727203348640873902313686619160048295031532155905193448573533705935429635701184654538955412675219138848768793363048156625029847535707539622070278899822222985884376931462595485340011867750010737539668010989023106265106096407778922073705984927527128241023605079484368356793389388420030559328068664933313459301085592583894546314453142113556378986399531906066405297535761460587998722639766467536975713104390572768653493373628356648511292545917468051427552833956670537075962550571169467029942220409418653664906895680457983149937974235811984764303698937671547206392803012968679716663283257678979499653408586994537027378651304202880652075066527391956207307156503355768726401744972675450150233123950779680690332310391457613055407643821028385510560397623625973825958615315931559866581091349479860119219461530413130273634147835595249799600171714722435032669294854559514820010426459787754696703105786581599961831778832021415608680586516197808604868905888784990741429886794566954764442247914852989779343102622526201488188594470443810672431632860997384921122957560885086606232977901230793800684507052288294477946848631793829788238588564390123584041812923498145693278669822201619791146302247968934142682653716865434626658656891708926291330445199925209330363726977427262508294122886391404014110199794333482924739290500049563971038126623076548356727974012023884963293054969989745423960615968393339671554690692000093223146006383031868563236803288456196172200323126595422942990638744588464301618048620802622270244706700217406210896876148682913728744886675153182701444119549900529315152259044802794518918022747548395040854334737932334632149120701586379257568828811473462725501954706644088878309751934875842097534515814429667512637080205530908391406383047130223599213140356478134746913567356125449869194961433856191144197675852085132872955953016250277849268816143750074898278206561094724579194825394204021881841090483578910149738961342994559733454909174414453057138009011085590827815196306085566391030975939338224419938706192681054688324038208260767117158032819953770006004503314872590838664255269188356197155336003624309390450260865532185773818245783709357581781590359717892917311045668367620791159906213125647300800170578257526436487698217127283309150984252746167585682319395630647718735938948762007371503417362187198924257218315202960599924400307921026635190090472217341705205490946513831093956073877883900485704872492862255205838013619543247076288267582902399296492185633560904051420416749990491957882994553433216542462654186043597082142347242528957915987754078117796903079199606525608788786445786162313313149466411079392819696599530814956654732045880861253152170373376613759311329577014288469241719993467398321594041976978988979498957226653316760495055035031924432386458772490433114592293837216153864354811709921879368523179930721455378203332887960938365690447754097142925992079684397460644320077089859665187325200174007901238714562527475470285631687943210908609599915105625210668823032544212741362178036557206409830783006134622606647902977399624392161672113596791176017715911589120152286181449882033968880621718400120462305788216638493028451672117736929394271269439018372773317362730145472776009666432376619204000329858484282255989449886909829813887101569276579281732427648232687854353991270333981475482414261592107318236711748488114364846318297259198737313052555582291731000483584676729956004235734679652283958648069225653514899518005595020038638957829742456028982704636454526457246882039752442347762305972532685445599541585338204029383571900663261566483155321785135057448361231451094296165762658314130653713183528647054002909905994483440681421632957423291774996782460290760464860907002759179714954021389603059034986062458864153314765734979356152801350764298441677158194415991762664292766621634378184797702699262811162168119546374289391452507604840798067031202568408433252527127318920334335932173668609723323456552226688992088501768997789408108813067832931617836187835659508679085732672147446672854572204623075911040367704209320024770843319694307449906116089142592496249340503436434856844197966740398110241528510268296204824418529236015611595799204306531344272685574948949529001585625815421742053564325739970165639497146765319584832033140536377057035490901924344996401493734611608011007377271350640521150917652919313676746395389380853753652095293779262373825544905913132819958757980908984399902023689571242219483242405095638611052075970688652943586307455414530652870712187581395180101874406659840509716720670592935587275506169277449401420599230253627908155755898262964788528694623313880727367871649155815185593347443486035392602203396949014604211981260786616298118141805834976924007571136907554808057093877039825434630315101832931001320464845602589835189350546949377396842128072933884290516115313837668881548258623579741976615872713841954233332317295210906237074824938861985164474434886442138087742492345110782741040177020405849721241957739214609975998113062825153238978736450040461534764765446686156240786920411731198200068391009865543057533705386554016687198352832298636052595600618484415447566288526576246366440439415663383449163255711473835976452164862710161907258550458730463289557934481194406781910775392725103351330042829127191860893962006694353401162263372304436775309874010496385660615213959457516011080399776435595031857756895830758500962917061984680477032018432616728268515372838260633995374168320125263368189723057538054382043779787701265429227195060257286147438069439257508745613730030076446060516485100019562105846648903879820403091054756699396633701308925765650580231528311906956558294649619905148342055588752094530107802131710642022976772715221294868213353190933103330011346150423724521103737354246389209010905682660682628026365358458697455853728394191368269047286908785116471958244995254301917890851436541675393332084081592865972600322042754613031487855826189902996775309791222288412434573158957166212029522216931642505984640719523929623670323692830955791086061501865213028443494277619523423555645053185747179718352922060276618933854718080212401418022816964890011050537490917438802802551456686962959316708698009540043781993352144757383996656152685401859714251495744060010388207538595445150643719243929706877730304136240054477659577574706127570137250005871052763863257451343507042257948766869599753473824331946171480932473679519098080062197233245274096050257219118658865212879748449853833899318929613164634117474128956853200682074540791923155435690923132286041892396834101281870364385295743153091439868813104475515758014389507986598414398840566052212675654671910387644472370549720387980588519895127408146663256623217808124062770060089436216439734623838408122432146217426346755850595990244331025748058827443114906594574186988242794467387902193526701753048143501005561851132234890101157634053405439425359812079668432726805347708931091408597230138840873782227357098705901526106960317794667858262379994563211225461065814981742504413778091484165451608355752979800644451750327368271383578743966151365554203675330443482339543003766144244003071799843565070039955754166498193290019799399309169492354256334175532562302862380852031683507026352645637824652316399801223195275976680282613012133582336382743169343476435534419201163326951243160710120865387293535009599459926772996914461470012331333944576877393459519313410340594587221491120728398960384717759197822674708920428666985391153609449351476182518752932160296370676116033069252894211734166698354603048975424952664055911522310300905515260306780610379275844643998565049317934313738613484860935443861418026897091261798753306396186180940141127108744011810653275146495404509986410924665897903577760061144214062104349923785436831198286958230557371405759794119741713292998115463455042959050770946326158380663151683956094874774533955680698763174875641588876141253447348620896723793795264624940691564101927399407919178957264041786366330542276679063101875898424291997525130280100299363831794958661547771720594897988095052201739459978614019790025411796380124589462576075136586548428226418426399638286070590376175345226727164326407005347064896965114571690280693713878786664267909619793455164408939550598916998230890020074953095057192635735877056959620092625853390050077982501310402993763316417143969319054306108092936902518772874784582091771100327867149218048639473560868888512722895068488722430457809679067862086605824156496918916109818831129506364046019794601834614808692024383794100021189314713007557933939065282751283731525878296589570354310230277308260179554236291017802210923652776887604977674726814567295018975448317031347530884371598488836525674907992713492734830379634188588718642223765257450629639844722526199754888125122676692322633687426146279765556600395448618073172647663951299617458378116680455641261908475164954690770755821113390786336554606607797512824769324144162078217624177268975281240812403472824450811673661120878919782403641346774114592331924837413598632159345925753477190738326929561983179770511686138873526683252488644988768226169991694396133424556945368652471499550705976662025217860365306691932728734144764818463334620499781894605682831487430330178417379274894286594104853512204540462977739917892643891223628173754471835652868709965935886731854367234530545109285739569274107618292420175127421077338972624872846791614802181190353100457645715791417003040500282182366968118854146952824174981217855294051680239886462033238326883633526695495541464114790415281781805534455317440817753888797260953753565380829075583157662989625173081885394460023490306599809375020100951199853262049211389680674485078602930916123270533175466398037482463762961178726287052912937112451237130337417160726373573957629614929596039573540457925600582106394337275937594384093513995794030453150249009061030629776740583197010069779116895162170486304271376037540281465707736306332844808524644601470235530864251213104275823713501932823434062774967662829761471313832503359043327289725553792115425963402162674420443065080641893590774385178891025376179110953314254647437123079814076811466370949566050650467424891401656359448643311070492147074291360644331132193757165361173120004650534016450953216200764146494791961392219676039834243775442047326617159678055521464940305489135889601319397788534873489332813788618885809343862744655046134776732045997169768990984208672206805474877989462660297759545608007685198918620766725572454663657899189614833906053045175617433895018033071783476735651756244127493071341387537503188056046683894542096830645422034333476554743688643248434937385047623694435151725759532290304854996740377686869778462237591467459240729912994596222938188056907635940278996889354154662446168691349351183467510326038057521513343827485558358377720592726994908711719936263449268799744464096426147073573090142667970082892417894406840266813943242652110684189753981259034082242673479598258711582951014322852252842025856186532191254659372043229698844408519885593141833979590965856896887947134306936262048445677896642675043567511165748444512995206297263582725105419846483213896672648169521187963992608811980666660072182719568075025142623608031728528206961205190807427462011582483174623371551190286212803314023747204688807202757890480036064446937608689703404413201906814016493433113810129742162871361066776972193181929611807140689100153689910419953316201587562233594736614734237381613716456149824512054535079388746175256442839591125264291373023709618980458731621659138330509013572235077565708920734060126001621225516180361110304844030491135709419869584797213419188608525161812687171018404834899036277928637231236721852538127666253496312296498212102442395961891501564372943399007202868054532452306251067892043424399185002318384328335042149430213710367659672060336134292029733582402334962340245726675549148753402265945451714868684687245465098006369020191106851894752782866100962393762974992275967101297939577638495712143823490425079369038202267401957646078441232455719955229284111486315104474714089403834781887735165088017652490418116274870662139527256440623926186358203374796883682434161161489351631082879872240140426139771747401630510478485693532778686621694002683353703950194836795346552187942082353171845267908160890110293464941090103516874842437388926508051423371896996757071282967787770695854613176495726273439229987143416042929688405269511336482694656081155719733269285514778706046433839583137601647322510900267933564722553988607728360940258541184507566793080242150618851983001938441176880061787870494566722614204930476974002800987011675812503262238243715880097126017673358554696602484084041189826687452505104885434812413608296439591741682867188480766812309407462265239287903408385554726305187785880630149625646890280801882399605037535592591273476632564634996219787068290853314693085946870637798409024250475251836840875997987121146400020432223640068729979169563906663405711265285219447775577065777357885840572576023125552003039100480120805264011336366672100976526065340237769819947412547900794459721025038367218397693591547478106831813650361593770096371804925005249329462275245489248346483757963085433440277245286874221247917391519117986513482188084022581659233563683203599529839301294596325932232133001356734499213459253856852640483623286970616976760108739835679978728300103602681780552132424409692076942652393243164443511215602412752530377061633395968601905001317323559554412504076527174461217354143030321374801465223554125725126134337217832202296546799103262788649403535205034629433363617651385159990356394189388244962138779944657273052456486097762215351054162481308182339747187320740631450603828695862503017176985056970463309171304916887636295221963987422796029172055216573185739699067630194684900814033601624708874165818300697949100885329841204828934664281611991301291934505768516525545070528504775801538951235706551752129409416650372060766667574768766341594459289344746371692381940441189555386939466754273727965869846921782700241280368254852405981939982359130024021737492439879594945694356935165718621264293807115668886612031171611675488660053858908448646091167502179973520387032447630530265283589536299109462660852327322885441472163911501790190881905612675445513737047023225523525849570316292458640513836027811623409319998626025643480319337703456452263779928625665842600268379614557601477232932728780614865193125733988507071178760803433465955861747515489039983013325013574667340064039879362367602266750597027577281129499590835315159052970478804317549622920784279308885386404188376895520997184964799755474846179844352144742070435152193133915840973930459471004737746781265800918800246996615845283908184095929797198788691626335851430703806201459054547319564310902556320904534594414593437138933890691002411575916414199274061978015205434459934015370313756902243584713616959591735831650681377279131865338559657414214057041154311790691216790732870353503772454952958453455281333150965096707840147468769155349580375114014546738208894824640082076654277259748881287651502454338370766218270449629929430473006470926569579407117990826667173808554067254331722963148110843105580536975235314824510620263407298002469212318734775971718907163567766340718712977211829073055782582854835131491881930738450806267775642199984780678759416614384784118481067983082095501795493539688327720778060595702476925342659295238673179459698455333425025608200477159227866602488281521228987480180911742491327071491007564757079242136623288189270597036496477497068136162860626404233502951688007222720276716638294176375727664455446146307331185173084207732900711381466767319264023608905926215827803291860102226880045516227152975328535729459628197030957559822940118196616846220949681235058847516470041369686435280503356839341700526625439856047107781381672521259069197609353150421215242811839758615779257781282609773429132915333338329697359699313713868565834782805511635803604752648157790180430510503690614857453507766270875160989635928227160709959933887421890532085823022880043320131967372532004089266736442952309121383251117401041587007462430265414480898897701042106451024305633673892605623975647840393468164875413791952163174490711926178848470729306669716555555572830831296102064066501823923024998094113468007366630979737528684065725274210221699510098367621128368323527943579041830898677425069694920256293265449649851248276284840597646540406101836123479731656670979411663559899065050428363683298768259819371440780692273842161515164783328644621532074296679507791398870107482554707796757906028420032302991065293058546530842996659080141031962568495979816097963005007365338290515713158328484571565243935532043050157805689698192933362385554877897619817029853942204983518890870150594883877154176639265801152294338856038467601658133698847566313112197933368048165695800139035510033706158932475064708613239968379703756241315439041938613444524089192435628244617535844817835174134729970005596628891005050168084736978997681046655169359539442107390200850051769155464016021951253237321949033272023045559229632234801999171263285349491587068414825896055042250872548532754000685370375202817988431990863670030972187503685904767497926157173898390519236175104778168140829599723049478009461966689183875806942191732930801363155405420802092331270555706712255306871416748230776977109152170037524292761914963210688197900621224345848237971340484784859760913609338290609165428562273751981125675989674484880053458209580264932084504039381980050294032603698397578900416205082201604625110054445752755242521876622570366867841956473228612603561036810890930480295856178916047937939453104516736546500410921454110538853602876064538261662642452508755669825169234667450923464009819838002226604830110812750093923855543816759019663759759798997590384345195671972501655599689624224103368949962325400484518592510200898031967628818686836118238152815993614194984100917107708890685841990888993689707874076003014077622371882020612808325955766507921822976748515670961347342833092670108446729636642410953608782121256175513888476519139475326063343615106262768937848260127836555396101083784133792032420127510304657149314347024261031166206170560918422857018425617956037274693872469528534561967296828552062134262720988556821411686629593247488892245209442798106761972616573814907444055382207038825266559879114219937867679962116486114371189385548182822698834115833012042813762407338127511932705535295998756069384593795558994764766642093105444169614549037206488884940975655429687028979396667401847876180172182681458781505417189899706055963162307042063354093410094855346370788016945466248650510722764631798712771029645703750733123263933199716412601431835593135473225247149252111932823469308073327261811322609072126805562751110267420952890776529838838299880774926085421634104680561161861730704113770336494310165697843639774209128715294657361486221946557851515062362487876105223441704637966161304912066806168064171118454765723718914465991420088677168004405161263330518567355999944860926729753039888338176634573934189525665050404205246194673147557273907567907685583547376206759831339506511177688868165338510124284309379188447211413334154927575373037736641898074425509968867700164900534636009533363757242811571963432347231280207368786012611684918862415015551473665236092420099172074450087030737428086256968755277976070521349526103993145710429702315265698244429673443564882753301959661778793156206522713407084709438740712321858106844128385745787294519137366292589932151977186617989967038832821899185506451275554759035924815440251044397687080242850422577141923542199174739511850259597953190988882177228182397540609745882977938727584393854914965969394294190059831158954900873406670266391670832542333401273850739150195376471314711936579616156673094880457819136320927147143539696159721510255356035413546607155369616502726940594774834870634988371765387187243966682225078366012304193308776998117751493407389240713578100977251452017018148333270251260903390025705147046412403103134794860311082343813933418130640155139444443409727449636824751198886395222210468503958596408665178217942864508955217112067235067753219824667771733997347916484194750839379348231521427168827061834314074758119852017996888752317742473366371006498605789567761345198816140289946971117104022670209605256158060473924833051068448895018171515829937843701459546023522443208688036815705307334588879343052869404304896297042259288657622978779752250782096621074970671314247448295628602351959643948490778518934424504141713819599912508989168227765700027087919108514363997052431607567626413883618543578391363772039687791113176934952786024238429355051106410495146899096478400564548092548674640327243523234394470503848578100602526609487217548940992393172785426278839933595743952456770668328550121797631975179976331646247649741969667665301946155445107323722769488583812245179754765424630309096321243352114793302895955278325525102743024994537702806851718047752063120896672804108350309365187085446838772329949265868664121112919092122089710348270949287906702563476301606928459848069699870962420371489000976323394808295937109603124879344222110710234625170611823583637488117121469907029086978825168616075167841579297066915329893014635945712212632634243740431950480258178363374614089527506218489390665701489734454397147081306269898006237435706522957080486366868827199244502457879947841231683474243094883846915225127311102645662351621983538583136199550538500971135162029129776826869425154488761356911753152638421626636846969763755542331682364437094914109833977223110792638931992239999666448336726030622692108707220303941759151433052566597158547729429024368025231619330132992302771184284968816974207838651679267878026915453347384459137118433723945134823783317280058349617255975585417725744512034380439804324879694724125280351653520837976576659302852639368473065511596539717129852249154717623003329654578978594334883329195221326506883644333793494068107201536822096250528887132856839428368879772996455663349313548805485220217389226069180870213193349485400156848236663920824238977017624851666769578104351534717193378971889233215743665573159895525187196612038063386130861184884982519083702503623209027130121374763917412345142432394393182005930490972416770816977650995488027630647572973800320274224723998072742383459009678350731097960439320355940133644195226741693258782990220625984049777587372393750398133980776093943841075648549908699946107635878837317464192542966759710290615209431933652280453879713703917693718389144900911985456117101875212911875284036169677138469125538256311977859370998410549597021153432399908219178880659591809573212097492102005513619198349353320702210525718107662329227307130489927004928655073078538759033883434642785643119534223277223186521167752646845872037063181385766284312667772351190236648592392476097556861639744552106156549246772123924116519435257988932442517702941733508447693879244784338668142814231812474368410926893383472076715691272136126234619097927203249830672127510564228117169178668946753199113105193794077755441646226821818199937365790215600526467817998099706148139777942025853918879105471558147560729112526879551637695617686430296808872327528375850212660813220480819575093141178472532676333625403908316070224043678661604965800608329303256459838686957564280140221493437928395016219837784836020191607749423923846238021249135370568307724758624238691881844504841630217881655797202832032342732057120967930717727741579023502983171659005125368476918472546563319840650755134295340861997417221372290481814080638278374856040015962551772664364464526947708483728084828409373632506815785167627080305856218948281801797211853200918642115275152412549554390092327326651597150133486856200797741546330868928625079980943050719007742701707106818705944788328888449639929373141195134669596845478411043573521772701495077100516068072754884881834215790150350139112820177424134955432016637181921489531922474331727241752321627108456036122970255593061655190922156922507189108262248880820370683919954982845916522999984066392495580476983016581834627560703900790002117529111453727261782254632451846670672054809009898314839098534606867375022742023518791374648361831761527700557041575972609948913983061410639830574811918637843371158135520469598967314716182094658060873953266145043917640753666023281724608622228800273275631065620810383396552490627850852670295194267578712583542573771090549108154884651026909431496708611543714119068654607246238846836958754234257775879101701524990211894997748251870439366808358266851000637454872773189926815343311509396465345358413168118804714335790957667087508441508968006832858169653427590022394503624516544063584113604256086882020894438749775666700848317710121874658649337518737997194595579147930026716723786364075088193843739245274820751347334281237374795816762049601438717028063715920035631203009917562969412881993122575272921076404823653591340948335396816495562928633204178441662034629037394836380383510369647611576089046876905542678525058283573526072445064524285626456679415190636205405148646944846485515526379440052824880648895317971679902127564892507513495102471416337250494544464971482234693659527894808790344319979041217429194342096740156528845950984765107991272399726284297154558082615105075364932988059366812956065492404238977290756377479833228954532188064171066224566813932270601887993382196237987773905399427109073435529284492925492957638090588095080788523520245270320347402532297375390084135104894820249531312837163071018757226477251620456994603991060648311503261468086677281064018603264877733508046199730679538696246547898190517745391201522344721739300725378818185474813958910534849124721410535506694957120341737727381596616463138209235318420936311456181993492081597836351398001085702820882912862827287957837981769251339629018589406171757344698360146107170610166902937375602796010673403431115394447678356518825629499859794196507452131817393807050084371772221994264391763438064758679865811560816469043055739967438082661554921681302995044618656607073078345689191303360021404500277531241967231720736230744342474158352937056597386605619861547954327940427341337581768617049950069322984317257992296019467663252451026440590517932779366342916704929211485900047385768930484234370771410525879627944872954677591583498490853678682782882186329958230830338890655211884847523176353960181368811966220923501958135783600561872619068342604506562922554039564148422343855043408598109726738360964708675062935730348857081492865584308430625544815747002128443502022588956287192598856006297650352223901603683106834474546979436072264052010693038211317110256105419803283373450784694631549187699683975275599487344912273914837651012960951960056291602756041830626848553514914275942628959237431250926229218686044575247774806618062660906454544712577226507755974690619197174081853803597529718761642006530229480241684972869088091966219170577625650116292444105762133101031417947005625118074149468777518278490790369986980605264797419927867266383086836901253764187561925370506265488909636902757512548503481962513488000281697929111324348205900229228534411604615242340851003209316160909583259635818288121037327269405811007260111463739679917488899391525300547172377267716463089852528645381099531056291983289014699524086758672968637826153985228647339990761528461247411837340289260098227568065891071325741105926448309868117633380066029949998548915642269279806276576657752742944541097894544082702614886549787287746730143658437791852239600427671752469136862499072082506440291069425740903833245564737037868496086371720483608644956866352049236330483237905612224201145988575371251658475198344720979830007487249372117851030268801304213262423974469613328177843386250085673158229805743776931351048810973037858394515696046740602293482618060570103432564020033676141103207800873535366746647781624803062205020847576248960408074071644861386782604653391143453284848914752582865488223868467132388019323350320430684492724889714379105544668121354528720626498180426799637863308785821035548252785227566468803519444704743362033014515188603512544680497330882450749975222363865635663622487083169455924599592101368746534297594387498929490106516937736717087395444977289014848314091112032998312021748657835416348928588041951542817303591486807895367584845902970919501769901423291281144888963595657939462702802091500626318203781305034970449394102545857066444693715296187321937575524692486857353847743145382944456399986002813589126171039121319470719871475557167157271999351137213533972738979713169570467991914647388423212561237178762959904875814008842473245962550766203486787917038423413146273430064686966159815249391450454153294682929925499673148631930891674064258342227233051965738707274470933396043947174354867942612995874374972499195661521132370816559247418810217458327808110400161401655470132224816631525045786603028440700944208480158875657363036260546746884182031545310565366927631561317189643178465992950375709797854346584819203162484283041387148773756248803661672011597617550923071550432749210698177668057733149273278799793151462636247998846833218219766651840432596126606464438427905537139486360581488451250101000857380934170893149812550566815828475898512709955610344601698428651762842982966568920500713506464108719606306696451076647766120545932788721592535523357145117419840853161969256511253518565269049086320122152282350834615563993857127742752284211205545034799775419961581362417657442887087889640510034001039781470727808711905862675383985208836324194334185001960020616398460715184890484760020130264460435841232840022389255659451969059677506479148724319105099791833284996329672289178372959579033599806315832814389627095913768312909997489256223599771721306643271169332414816733404089945410090999150925235669898006508321482487043681265367856076294149264774768279792041228015491665979453787079493295874417415458819118626118132798225851655354055265075040041166857305129201090905683784453013254344490509073571626652383214924873557893376199231118633981306685707697275141859909518730846447019979968937993047024185262873861767198031741661227152368444746220061292617190123116026904273129797194547132513220060431792050955480228242663158678724985460460118861854528862974711569066606513574134591636898863822952454559364882768697254384841161496949200625643365448007129522122765945629446445492828826774685382440178622680725063729960716655489842827535527392357802256814470240092625497008276546828689518629510021492615988751124846302616725949780382984546138719364008336531436844145039650652638727932254333613660184117204148848475066752616698397987798434291175965934693788468977583605625699804828590433049983009546408152682239920622113838920404094359605887989645054878653905037258329414261820719745905858910201895057254571811377009480042968465472520129348007010314456232233515861328039167898348577956888798322440845347815773060366444399449311249920170273371064647578867506576532452251955385314722777499320228745002915537799936944544862538025035378433995008881365224878799215382311167248000644190218086546347256012951461645371567076228814584429588507818646202430682245952414754989424101330996639996807636923203676574299367447932526189316600460625160137098195660595671107998553005162732079852553299226783429006810379239517765624308892725808004611064238666293316047911808966223397648916385518714944431586007970023176772747748345630974647629333565961525531613895212764222770593285651560915273008567963331965159403492399274066735625213438005692303595926400229545301348645855800567125761396204207069005020297689254285937234568674615271348671355409795949109950264594392045473955992462063860278638760342857833365580307214188665950199258442840119274594689942757989834282166770942921267774940770679028481042336659484986923058542531680583291554792778116665794161826172203977930977925271627851959615430287161088989554261607311959918174248127411236141487455743773222902017864616074341720719017477869523815299765344076108144073818240448026114125959485385205464202446788352075006021123255320839718946646796978031233757421866162839548460034559135958496540137736213042695405470984446310902129793228703622938633423373964550999077540321767646131767433704381209858672102471624122534870037833747514947301339174333684333298408745596236544833761411433120409026951263560424920567691975800868515568528150697324554706390433978108170643063012425190987715487504196800832872770637184401813169187320000706970408689956592249038793515626652732530302161691015151752285120330344212589662703839380685691427938596229983866000533285632618341434139035063816298198070736674671062773660534502053400832760123221804773250128087625014482228503931182424398333522228368735884122854228723755824208054658202179870498061913432787616224709521887840712387271927948867078862482763960636448595893715529418818588833622241370198157399577924308174814312498136736734993510314262528765211559502810111592565991745957531806757773288398194445895532318506154588390801579105784694993939673555023818503507516051958332345080739853797562948547334551876227171460081034229773653761601640814376546325474881475011187826815092974581525641325857926414175879371702380929022551290176244690264018956666977082560052810622465207335956060163536023518980731037534871809694145159634027683535982715081855950466090132388875862182271935778395537178820164375115307209744084120416831218419940459883801806425770157990015995898018484873540004514833550611281049870267595018268101493486660952098255074166348672298765326436637523135462235319080237259028814997063542648110910443764331422917508690864081435345837517472905500022070067851794194263437955479634610679697714022172169677210782117683847289104470453712950836878695393976560117815934730696933828223043824868491500225678227724989373582367940802197792666230908213417170123124879900768684601240853798307374087132377260607150620831709653145648844799427074929443955819488964593337101340895149863290777247627646056507219899475336003743129410260246360696340904676817900797840373723737720990065123331628934750847896535049573260263539424562418585401065081436670236949519552231670487475867112197038224116133541090856233477709685726775596087573362778351369596336541875556363219305374137109197571070869720984337931605001301190942037522478206204574696867670740105083384282546089584484940673508711228932533494719277401101478134141164190486125159670353129665414698778863292872498240645439272968855782609783353267600388323328796594574929131198789653708961574912931179847003844327027713143675747392161823905783935238929115796802381297348245704339503245172385401270153951496400787306754765052221482239084926971831625523341077202622891203204384225023803774067210221897543435254777719653241673215390744270320004491102365149509198932954579996117949819699282849933528937563756073640908065271099970499653439171120127538924570182971659141354863413693063401200114071618641560166802129890008550274412213217838391736927570535746396069799311831389946996392601699742457091155085894100537924110110761722476781915102342695857810886246483294352950863699138334334303696194421320816847210506152950089277560330861603887878942264832833279266049862856960998653729648332897336726500614855200087046022274660943556160532403258009717367014510558680455287462703804232900044560275464387793836420360883988388121290900549424336539956789185450077350832683554868891372066542094868905555353739976159300475961822373295518547971583997575329991759828326931362626475540838374204893959612006816916023612361338134308886776018038856359655947184532561191176261522762077037190962732853576729968817043541525872443560958184128335506145665876981027116343509798778520360537441978956268537468751118275603245255148413349333474018903275663413014346307313605443233821503370336939081504456901425039424066885664047976019753505448761358310959010346787030109034398741416183205832529711079218436451339251906735220081220924769280259607136200583174933767788901194971053706756112743144941365221576318066899445705771637228379911091308938387750737860355382206573828870219553347689484853835412903946348009957484390218956876898625211264487353183391938184036877107731792511980572752765448112868911584951865681189799271123098060686256199333724397534291772380257864997549219396669130299651237881422090442856178374304782148545081867174005912312615485185485392611345805898682851283373000282127698829656283930799648393522484267785502008905831986254316052371420553898117643984790025901713004161742623693707639909625245994396568717289711833129795138896818243572723586913036166065152685797798699773828796654821301843382773702803148716422449108856741078174807175195006190822172242123352092198083787290173215252138429130775890986494386126650169901104694785361576362990083232409797332200878565530862942156372330543877953212356111951401508653318201460805175326313470588890124074096223749049521904703449262436029819051367252458598755188525045051799427136513893113963596098029613485078713754984206408292832316679841151928347180026292773323500270260915611158246245798980479064916025929497313531583672561503395266508148683456128102618231250358581053207197615845688541521768250719842774823963088813197632517344296236420029367793360095259747573959630854012745509581736613367520241710133866460788888216278412341820103782077054946272681258253237190239612094510066816515489578414441107925158798566803115766539997751776729620288447344448542025461334295002340616090540503840629386800951028362371333257707048892935983539517004989085059272219600675738575134456800062650494332135166405062495322775396370554090880517833129223449623850576285155858289623163700463904761518536793014139768122533300802703167734264371891933808136685391670999055919551991301464330665845575241458515241638914900539352930611156054614799069906567317369728241375789561163012211449508819427847323187324669427913999449317315975041960906375834296312229656843532348261181478803011369148807849976228592028704339580611624124521381379724714932509712222185650181982538291367002980125608238441867155329919721948105725366468580321667271172640011348806770699647311453352002582531512424179757752396591287525744646218234933685417524205069905119177110120251201618038471847488632599379382314946723262919933527280580429854779181441664760715603412010185140396932296280528993278397594361724980940986960515627265174475767284269819832982477712364446305412582013854841635837392451642842984297596529581403333882505197932307080859885355394312618741649499850922130880211006426216485343447422303273615783352323436572056537761640031862440123321781242512772529687651211968092350001623777299224863889266666239107240537125399116422925002661233161629665774165213744452773270935095994162785042160903108594259026826087109445864395767479352736385683056639045274689734960283807145663145253540868472447531908396303258417184218061866222762335490081067756190859582397530223272610617242662134295075997685304620509226078711655250031046764852278623675660757998704519241560045067531613015440381834299763198958587720873436442167556702965117982269499938163927736980181413930675867494430053056365997725900457738707108855509071193178881196557947003872987312776388449664433862473452173871442459003027237593927882978838000303673011675506127348268723151821834306969386744207083871903269169303059469949800343850500339521599044135161974619544666551580846743727338515158187894533432464806394290984289248880888428724488914643627854941832430973439200225129636780609201605844746410611703347994533873789543808151873115428073509285195820957520531698093586496885787627981058214812061234476719595089356160034606461163611013434031017177589181996801613176810308590390645751923521094944501210450906145583760841351894599311320567462229106322615963496888274906852549014657824003392416179142103528583547711925000901283708609702145755396457794816495795030117300067741411339805789716706695794797195570364243729115271620375448959193163785538408075574510922235777463148469211724457875958954959422468374058660515559368677382974135471692368043789104351587639496649498749150377312961277851924671815869086419432087084680901112947295087450216327764194581436897458536453365937647481219729816797967462912816203532681686871379898336408703944304587165934463813976887600408946844846895219738551449946157759350172453774916202079093074242090726708478956090017943468220792186463799914101715026108129376172889822637030892022630115715784024664671867690112651694326832144837138525539004946698827403977290243216758045906116695799249991305253683172931051469477844286044436273018230475301704067084641399949117875666235398907550114633334864031305311764863219439376082485800205272541841958953387810614000733013083600950448139894604086928042309774950876434931057368879893090117319322581264406493349640035135616855196833827093729353802413890188177572715290836758174235122581946113696767496995122179780505821093090428298021882873079780919191304661277186351174156013672167138988620295551360584080871780066585792338653251311608389862803155680118573373242696842801146434320498519726745531007013608789521299095087504878709212142588010746647073363561066926105244410889092624844682892019952997732236465068890484474273311142696618240380140960420257303292821036878328966861951233994349541886899710126484985813317040451834771171813806772976777760361349872616388973724526609105730068081381033348692286969425149781192490865505119725839498837965509193068929624663491819301242151186166122901064740970095240689368121023917080135658864339458490862805493228519130395965261264892087473768704700461201134888464643581649820193690676971094954638883381503318008181930530253394908587800328968510288140483004009312103916995041931604651039261606896581623853630128991151823101097359248081969331469525559943510438025285265840729209270399075214101547736302619815207012955033626067450601099755584862455597029167389813106413841100831501806190156573969391436018496228694955892933318259004399792151730482653538171459828887740552330398795762884918995436717682883020832072885124614970170097662280288985942101864035747725603551536740052854562327582024233208091326950450723465080896864467824354743883674550639565058542260313611096235276437067557209550028234964458136361646899920233288949597171904518764161455249467584191708692237464649485917221766358204635080453264490890110444407512516560008437023692525740080360263483344236934677397906517447657675512952020236114778594847033957710160553605903796978723524674444358335475465689549849917519065384994867933510114960038272751188708572156272770841380683786080193825683986923706891983701801557768927545917840095719689070773590279008809816778443184148076058946254067996382175308673266669235081768066795300301203662679002532610057645218222385127074771784708446766916384548888447335049718617621979399969181855854027341920598936263628667873814562604997829089247792816691088934985838571487471915345578082344259462245622045703433252850900615898405927096967911562859301016809066369717030636784018767800671869314342776863558294265606699291808082172925955948342739818542656334906609953955874107016964506701667587781862997282202232666625564656217032247693319175342987304842658052391401407443445615209212294713541527458294528544392615080600872477808056530579855061997949922222900842615817914101138044943461700856019067916087213524296330273482538292066267104612945064069708185534356083163643511980361851222623880591828873524912081200598417684943234629818613364961484983674501899083520027960411061220411267020822865641960373490519915721829310162992312894007605200683174862914577757927650597514940926448723495913223154668881841795782286449170010609905052559163584737700966292643063020456737912367201392248017613235027152471693710961550125842971215325119737911923565653093937075541860396833044288899773514329812712407239439590600740841997215931145641933148194950716411990740907621734528355838812641656343466073396431231366754710715795695790272193267585006716656856021436312017138213064971366355823994071102821055603261986580362258322251421413210886650223703599826790356583888568460732240862368438142886651471736797201465547836326668833956530264432111029740246350423181456586524638250354891750546502355363163305467173659091055507224233151228030608567954494224996952072854436351320251964086491540801924461895152540101381507814665188841075692604705594819178143254124623812047606814580687330628155308649486625878862902068219661640636774813837535177016254717426077343158873136134791435762761106973186065656170621726818011786658760398164785697127054983263200497158439937852265600990515271057814633117453994560187700141650750050447104190577439893084572211753692151062486220092436404986537699791637819442855297741459287472066325170828247511964250514458035146011613739269897297988871340275941305313599966622825359389121124251465400174686226552124093489943483271226294470125361579444956698815632790750921832202612246282618185219337763973253714826292619108642709230576011213506050460125504538651197976143051289657286497050284249340546215574768724560581887160803555961078491954551225052574871206360054429228568526072142189074621043448939348996458453804966702263964976889712164871136386719105236161006181437899115332436003009564181003999691872970414884960189347673461155378730230795587318838971418112795195043513153345441449454886064332677977081587213207249642853059459232523661397822496671733304549907921861915155334572130642339209870012671235314300251094866016427172818416413481543706321566404873767640793252745098412606926756228338380407258946011531362755665802398290132044143590064778583749424744034575502694571782616074459205570519582284027360367674993089261330713677505182804830194934312460495708421173484201233747346616253772592348696356335769404029419340731710823157893430369319015542529633129989230143637695867439125373989733533186440239824916624426051371020229376314539002501671392829497369963860132152176395165274375567741422570485438573678481722186285629416586278192600355697081852693088513361166701793484584893662395108650115315674160523437878973217557563765095772760253718042749484878206995693511724354357782978816885804758029879801301293093918362443809266037137231765285853191079369719445732488205907927180374745487303222278204753814580756341595237615501476174362282359823615729367493786548150731243300036431105417539094520642212555756324856214468803867785855398853293638693489579122899602657781190949800572463326938280681395240469591712091828036940432605454340095723709734154606628062189088692480840502189867412951270979911743374090257065370724345268359427707035610425207516530957435975158722526152499935903005048461365455915055249081922514937554048150702876288988852970185095070452221931011487620695296218344916935207834942997037966726298955061045118240364668012960395517037313988223814511210607807931357554060926348872401615288913871244810856771064724833177106244741117582501779017462774882253708121359156816230668259664788387034620257684954666064530271028556535172513293456487169515505164273493677636180550375864213020246091329425483098488530118816593347665084435280147350504628735046122732882399151881338346268753981092595855629439363218946501476180352107451401721303954714518045733283014048000813590418157809681575412583843011029509570106894625291115688690140829235848122735086736680986230477409881398010426982359757007877220372661635448613911244202908715185329315382869545854347344903176723355999286558190503642953432610279400534162176763653205579519240843487671550507263284162411935204947771637385603890443885308611371486850871066775403355188844279904383246567508402021964610530953476382881716886636420584546614400429421971200334260906911061780244336511421603102127471624737771401701957319541347610545590068802031177216782314457172754682887771222130322347486861411867768497915279993453593087818660827302013830455900574865803779677569815053514124043444434207504560139733380537984228332865054077196581669809018911925749417831165933628298537762716749792418413396754399196534603613816920622663483367264772602294481688817932983063152188648143340690569679224185523474708864067551851821258537248881113593425058394340357816437228963876977488180201240308438851107926964969210950485830760514203498205160318542071256051096117156954470576384929435662684990670312201510868047591950810390047262086735282050748396115220078415345369070959523285636462689279115202985992286595815843972737060923221721077119424211726912753056221093419231300202817924556579351096510693064966735723319092192082585416513366228988282361582441746689163291184145249522725368654626720250923139311375073225939341542642869656826201648116440611498013969899544963985351254052303542052347496968800283825368237642195953788707268247146875387049100718754263708857493532335695286806540427420542820044551744930896128078576011852263605328678595799750896003294730783139256276281096489589271768868109923051028693123049375212586507180177281081219307674689418346232372763425628186966076519279181892089105579092627217775219036689700323988411385772040146339452317362506527552617500508108084251491597231928230370012383400659505167743189453926472712551436087033948985020337519347529351572176105724247302172958465499986183096198011673014034531169878677614069751613406785325610360227600378162345920318595507785925119038970929109806669859328009561700648095679310008125578885238158340984904049899507371960967025244759663477695682482524456560817864831063741714870115376941242887266834667547700919090901757182303714565155350769016429116149496922644927002923115070142522157709024977526727857414784136180096635574395139051920781857785429863145150375589314012342442224074286058362915346065756489545403395451303351711686415422704877279045598027984070069929014653338300950961725414919536535973548651080557839871312798501828286219866121608174353353478326579923273674750307868933018341843391175295000331205449615048240071253509336409994339947030730626167395045118847285173078036909384239159864699801377458831521936876792167263706740522218014222514783963749587398758544035532447459132820595930123135988282711975813613691641221540983424176736425705363433199758097550145535150586440457634921389913743194100985504454810670386271882002695336755457900339251369833724534993303402248899776643709405663595473602217001079538854216914497226194692840729731907461950842967733133123948860631966922643151133357741013063937660368188826632374872629974534192897277143622796065561105278446010540590422679860431756636463501579118061911783866899894568404004140215995621427197659154385329743531888556648143440824227105164014331565219341316273520660839998063374854850835315517648880613187416468154570102494248962446847148941998932437017633053889076640479950844830685776873811763243208818882254206768953913426497089793771990990991604986762629316896848809549233326385350003043435913657646443943241619592956481678487466876204084213337196545779543272762385252904041554310761823065635184134938314687781267722310427616698018793168129751078942755073195352394880943319033779193246095035419237385436649773268953208477140161560474391033075471102733270642174746072665758469314609593407566212382810776110858391490767963627924359104827808298727261386522897909339274028617097435156017916909895995031238691088516639734042974849626231204200681316589525587901243434054783915910185624508372944293425607682284506406570316247616971328161196830696305208305408617367782985227093857406363003200348918765410436724015289790057943301417945296924637074692408456887756768117991723314372001904751660005663153036834485389411572674181132620465412382992003515281046629988047446095675230361510471040327974447240910377037854468029329548271552075513474347724568930675330913869044341940379628684053167051873077855315569765529631616378913570479318510068676827843531448646804762945989009013192905013635966106043033226535048520848138449081300477667239508094282583531172724084282429764541588561462142517357514921079678840671551246949285619091539720177144784891700175995705901333797991544077558739774316638801846685258761661766179788567005849802212589061962823160115564069177974657767308333368410109720855894281207602109619395693779678726351963133641477720311788056243052350619591212911863785944881698964524184451751593295862893140296134760514053516659463862047054429789507293044708633208082253323457140793298455253852353032676065134528835261173349604481845722565634234093245239617758490762020032656005163805743755070329852281619924600204515567544429430977963865930145196377826154828310186388747027275681425442250871450094823641862449529981233183528713523475669292997554561460849566212733947577204593855508650688423513460853023571328748348887738662650369093265478310495611357624752459042965132587880969457903180842211799703826882002542263228163118589806818406197190407916706837809186877982726475571347444985080800348696277405041299598206376938269164558231394305070858957250017111712384251588747641577723266256903147026128175502297256030566845162986919787410110009529138041396096002805232278975845185784628232860703852155690261372648532056725695470808381403073744056486909600620606914197011221769476830146386910367364620747114607605726666644217764845885101128895980509209712359669953696437960353360294521242349023167853326019067324143168164057346576696197927899358615424521469965256055817790519089612251812975642428312488528578656958248785513497203317215879487076968733998340508224827455272827161482037807617773514357460553096049964092004658557517132657989975913378538070492403230015450029833970933575941905333824678670120169505078791738104512778944881733431099266715398652129315945041237649153954292017298294553133368192580825251205703276003085191320648264660336471241316679353694395493194533262157916278804237464675779726413579192631722548843818415082260825581091130084312484741281431704655197260026243713580161124012294693864554411024200473352480722350283105558089009216244273087505378748309377636976957275734083988224324121577341555807020460450988174656313174177055819427836227665428238194752094527252896583818954171226519417333176046111598019266249532498015538046896830446827760429801197405330235297464663193069700339143335656206186385396679962095218506862209963957634347513624414773835008112677343324403267705458748202796105064265478310368565586435126958174396723600438017893999022792759102616315234953297313609183999856917614561101158886914956829260827496024631225107697568234776999778782795667782155000627942747438553453319237977673225556295057592302309989469196229161965567739476222951645261703465334078341033006929657283740134614505334277757955298415984147343747369107079867461405492246597984820579637913547505336534401001018105308307887373066101461846160215091059709799206192360659958399083712492137975719093263868191303574708953366649785274778523727371683602279829655776107977089869986727478082868646369476219064724419587201213600749869751108219682286560398484112118237779117219741139236886935930673835288373691747114940757190232338732611268810559624385049517009396117703351860546606485704023585123963570620436229709958467269583707397880699614793291549516791387180120742600290494410025870810878211553652006713229030771726571334748928185585140785216543771909766124373271455970824178143136882031859442270086698418091087269259143206797820976395951113891401970392910389729705406054646970943710674533491451700693110678236506530988009989852715967526941371891133783697048777516151881322071286832801463807905870674488267237132315388993528254981371508274239251603172235554596971904445257109341269169431423900298591981843121522854360059595752144246358586299884691934798728057071251150566681541710945388147161554410490989965068753446798228626715072648096102683306204746318760369173159695648218996350227141905874334903489057077837740311455400391924176656933036808977989892764086082606759463320016219493058942883929829715834213622216073501591252412357185434760258857896315521507623191292439136529052518053233706733408749659458358809011208269483838151623598008191665356397085842919524418784493486338497538115376648117096726922106863627109492016836685715752058215744010179173882206616315013469718927852891201724102572125231996391756286316644040280990621168909067273017123852340904034662717072351117282357549289419604842483799033578369637461451871450927468299407978344431752967533164405081148939369551795409257298162683019055485623512886022926948103130243712394651336440450221418141319469405639617463439439332878411584340099804681106957308202222677113159953251419199361859723631804953466631784935568288625745621591897561567502899854827454425376484943669331118110063195855124512592963109847918599325635990579439980593354882274145966634440393357769790257668469571858203873997976204885552544339562020232861305963605084154091317846576313119429274076384581183511753137443264297070209784267951718790655803385610443902823222675286234217978930713690010799439134453451331845305831961178901089644525605471125608731750322372359387042902817664151305284152487898943049614969252479314779132648791909264079259006286227070427422394492083650294970578341432384485403529489142566250442890673286340216956344916339255596386975999916416964291031181595309444800717513544763990223788425623998425893392748958368455836698586414984896134579224108754782405683955464510158108105270580122877528459360205807762130738174867554666505809265844213779991099659662780631334949203652237565580328390796042892107543613371409935264819889141499576137000049181844826079768276753998938485386620274067872194768814298001457397326416038767663143211389757571297043619058138063394852204204210614972965756253628260613905943936643342582498634312889792090941881103806089812273756635382548027008216999046241183917803522183958537271391109412406420393622266139210944563393225673557593917425265333672555158304798216166044692389154013570131012135555028745311165973106966655247233988586801828763098010390811395026978789063475077390350849101719555949497551751092035057244505733617992607845157359832532538440323751463675474913803866209080218909569291727402282770359539872307234053666076331871307619287083370926864001672962000204806753017048816638630350375105269802047805820620464867886410286976016046959086408805731813821574948357794130769064279246750905640842922193158094830762956072428693510205122206762018821180919463481159262321580262451749612950330035767549463740795802350542420849975383279993011250959262026176221211470070077204900631913457781039908309221128119188898329531462379012877608082739123537120491489113346636022940534912256754838292335883408396710575450224023493906576889678708557664233068045106538937140665196939259180316748527239123045717378946982338548784387511259795342170178280595470272454750141995765461297688595542473805194117139536021583524386725381264911958671519825648485070631627618541050154134436853517594139894036318918297185678924651467178200463955550096462354872989251916360647989243301116151877978293900447379315485518769968148713037982901744572429985221684295081391986942626171624051651125763152359485959418549746224433854298595358834245063901446048615200668931124713831229581617706147937550450167086248107285672788422456064172377455749724175138141031809515128940839605691465973163867938122942379370785520174615920630076264527959686920822879540673853975405186116572478140052815933489620524432010356032979256843228798183803656398546054588158509884477110539222460506691976258648448828320609651142989204477523278290944318130094901583118854602747280038357471796254038890001969015844046068024963028553078075597992586161944435100086057775932673964698443044003802978360621702512433036088287484839828303494400309828765374538566543999646196756693489746965722727028659597844976127016164463445658502537292811253430315205766187837008935948796623589993861055466552814847876434637697750336481808588796983985783595691633706554479858172497469918332053212443656717269081305403316826677017331162210821651453093537053846480306016401422282665257100102560507271202306725963319510009359268000536537378859350557791944890448105233724068803260736429625976558704612346999431274454124904855077232308971890095631616994390559554620377894766488983293968920113840138581143265271341818351301505273699391039580714967168518964510776430573974427400908964684412293818374334816795707040524986827142129175802919690855092873978556145263542823153848033340289649247210177136253208506598514802621828465139511692302430051073753288139179760571739371307635526000587416868785481267154530907409309037529449998545664482134868800010762789070046285658180962745216743618676907760218472689390504780389323704915128893301012310954425482497284583058744982303927086537110811429853389930872796255956951719539546276205822128528851423410074600718340072490181060627028168389276208310891184014638428418727378864586157960036731344255388714954852850757475076381262173922300981882415254878588486453516652900693960836922740725222990427061294067035428063270627120641434855977598232705600140487819842799503520910714841531226736815345865701625516074771726115655392989411950095505746018695230300705737994124993191478888261701342743444836341982921516459568633811592776871466659313401161441167721028504736705245475498871352158065101148575491509754576383850847263486468219709292516303762910327856576549242619367740132829867929186295746153508581928300034430269911200071772567654348692404992209077394857175120850761999879274655178065835779185737636775355247170924998506298425138282614849760654583134622004899073267733007322787374400847854893477275505741488140826724179555290431006104528787123233765161003431182572619179963728025449377353531072535386525723100353639479717138827930622273737324671552962287772555427263909600173747925007630235832977681072170317693305774689109777705978498506689207666677123468621867643432688695910263118526882352464478863082887340116823344570549457066416646942804974689353579708405539221957304351605581010713725489287074937135713327686036167417614195215663125736971585811822416973465613783421386050421663569147917530182891701696169453920586540224998093496551023176030045140020341523989104485591767708775318739727293570881762431341343006998572450141170590019529500166653133127255930778009500420586288147527392345829164602024913621359669800986134470263227360754892682457407344715480471520156452912283565459777535841764019701544764807334928712547603048047679338324625960381560018439333169243328625218250505012902282947225078952171095187460300153069430315520221461398324676476632336703604378596708041621739633800849812482817754584367224599723122179870622572545630310370186515463513866498823316829290373242211249257995495887986147567575569821447208429000881018832558797133097154126245163217862994304049262452636557503509647723498728214714782950775780460438326875913717334670074896298161612828683945532137070104958272613111996074886314116567176222980184468808308868254052323584341452927654727960349925422627657347229451953053595423874434750429044212385211370094141453647982477946921204795661422305038666857164084857453196596748618541420584633570092995163478001878528734663805777925398185996287157106849776693562263205819552336706946825784891412509309398225703315039037630921418553656135128018258174844976875517554005616954507514579945958868688505701299793383718691051954063704841720354893993864358557684880076197086361105879367993275406347898279889893750072177487267226550844673281973947413067449199574074321106480819971629769124030823769391004747508409916187472854472518486676182451700132205359895154666319464444116789337699249739654148586568079032823725084343192683447031088903615351881324110136076746970930623779681515159426807625846569673842570442409070115353750822893451409525478000786690935646958374159462940731091111545163000541867218235032971265613499101661767420411395183743312775521801011117700755444361907717867694820761961463773993362419259058026628523719455421975158469651762434136094519014159072942055506072577035448079609452454170258199501705625654630947882022156116008036907551547247897060701477789291027671732161625104697196921503526813062501703197632237306625799482994614376156900410828532799004306509369123440956784870610234653493504212607020567484395803405703343032624132764172560380665228451808436085445639812949891532735152858828336562436347184500673736775527299579758333014511641856205918905615287100613177285850674702017909898694772340609817956863364099432398892021577486076020185247024280113623735548331554381220134668610238522241565530863051325984810456108499632566460301787219145403440439776051495795009712778651969443566781282914430231020549961217610519531121094176072844859178609451524024515890482082105263637594378736641092921129145256066018929444460804668385034810096699353667979897138522183293382791711969690850855498846580136857048440887725213539813583968706108828837790712902223557899547917911148716571980996077414751328292188171587395729467535472914394819516879075733248200432605830038974292244320824547695197335324366385298443318094446827862018536159010028458789900212613483777551862550693936963285884813489016032047292811874958591160779928726458121276204047671123891083537757765217777463916323181494981706365655106178629554158425440899663427441009327222007338947424567664977570629807208136627945694420490338307595435709938398330696495085415896129559523533612409204740758351565635255639769414454957589816581206505660257847181337564373156926768462077671433768817141881529607650581696005711525003048228037793371436156631404596448935936916892349447511918832835551589840550836178965557511719341416512539309603533280904171202702344311171683647106433017940008784373138019170470154602091932133644966224976301413405652944689071341787549527244071130455121460269241705115802085851490174210032958902345008505536142411735022410679153674617082565695234671113283589534396796705746460198847905965834439561281634304095182787927818359412789538440197338647191591389844135602026894259244693510835624542083979983629733891311700083743595808833373031117834770884357017457101380758938105967252773120874938008422363968765160058637963653716667583960254130497293091581083531209095217405636477725226890139879428155201783357596988167871578913723697241413626889726448657721464060170634778748813519794093842609592393806178779790574186071839829129060951870083517898444090972407676264699647908329843962557169256055491689969955361938560373546792770824242576429770824352841316854921776465701835213454919226149939336837612214063176043157961162718386068389774341339472336227961739903458034799119503859737569878346493812645184323256630142748093265605272563537719410432045565263086902240306045533348664378728091459585419273815855475438684823087337540104002102027466415794829014057696355113169461516609807348661737696923204371211187735030804230181893283144583071144876205125908951009034253218265684727279112483941989371399780457181366560831579346452467424781749827241760905656386409854946718853265739590075437057304889909951791353391663398933011123229619308310873024559623019765907188245578840150226897301519168885007101198319445319759777846515967057046040910752182112815774351249411864664959948835400745920646272252837075476977133638551777068711661481825024384932998905838441666786274548831289889208273538808480104990592289160858308700747019636119359400664064042696057225499985405216118748390431177310445748658211314346431783476453794351723843960660841062340968571679647199293234887243043180797083924063166285079980275282955693699679957029977391281155692290414534208285980866972951451599391531502160444757576037230171706987131244159911341604943608965818987049817956686409675243763515507292205717583927805979378769981750096454832808900172551536533129432101556431770045745467822488268528094276188544039216707647488338881332774532094076367359582400500176660396199833649273743001678431692147336301365462786853477510450424480191644453270572916799366787681249243895693412613696103321286534916090122651719834452752144212786618570376237366620650606889243349023521047023733425456339326975926139556631408601961698930157147979975734127992412382244139715398844179847682809490061201414660392660887984391537934147670183057817872834946712667489792575694451382092588940469127063936961088882636701463932165816780011324178287182288526306286965637287714602686031467407520033376312404490021617431596759801757135774026301034179960670532088590597607364298032889275762541022550647056371861293963711271670893853046806997592258194037480571052425166419837769480899116395727609008784811674400635165179491058256461089689215498108463728456318898942735441746951433192318711919778483086945138550624850723118824856558261337429623210690117421829916327290934077827084839232800638511449282871243506302044689558496345341504632735875658381406315944059450157514948358999242700854646202956498310416998106785819140949145525738381810805754545412895342287620700502172831990866218564897744841368534370745734117082712045184959501779391648311522510121132147132735078882884089353905335983779965239774072437849889516060834075607782812433939717169402694527968501544302924468742120874328734504285998761920749753607040963017851376236027751045508716206855820553126773961126131750484344473699578681415987748181395909281229267842927257279135844802773623551637775132291772108291774811636247878714585820663382742198651591680830736552103454440397557864513065279387233466890237261446854225206782725929292138462509332453068569418062630250487148020950327802988206005032630517844318620102231371835315924161525975924245731834690389272964018323077087397479946698617554609271200526701273363844321835824335320922594930440537953019391232126445890636671075921031525967731406394638991897422546494436832889776844052754598762963153521017433087813138395275108860789109218379637225067685695275532613858864424160903210614033909984197331223020485258956197069651789923256814092755431000968183568095609155612407301167124446258125555576027544552802130930187335053737167308807348610092966551043722583420272520126729736451752072266827061652756850401109039212121637998053083508795916328457716016470950735040270260719537878428801720774907273184152728122522660388748140540665479047444021220039615128755418138937080719376991485887796463439351974806695706109887723936712213496206741790404265906115520979493092133440032514450887026736924622212569956651321647260539079475152421875335685779932735628401793233508699304457472736212698477398025761958106773824341160449697470579898873436274077861575228632477197815251289413797897091774139767540298086697618369114182148333076978535685775509240829064650659915998580896829498154419607400096953631906729052949392825709995698281510311940339162819202751764168365042002748053839773977208621823312136297253974006470844034987069013569151113256811779403832986219048114895319404406726750533776649239208389923068264884521567350250356283863065584405791629859461933011685499698177195269044808087677212103205823026847479752845076007858172887585738914183494720453726262702120640897144207454425734991821141563917909793094235029796141573947895889561904104860293339797856100809885827089532971588089375254770036220366748941154368592206231742614913328092433131095546901436945720573286461842492427485534447124537864143417599814655254395339826586542969981940235702134673955844599368476245842091091131087145648790174977764300260544419223026958841936116485272010051378769612415551470799701351485765382370576651938819658322725478651859357044746467746433474952156727599359652112975637392516037592793247518449511847984149900407726382732042714048203355897234868217596287979186076011339978347767208214261275598463368545819483681710929859398385689255770784784090218788358682251969305232974009175849271579402155612488865417007048870689993781368172505977590757548895964998455101942990480413481003838692651769728114994489108330957145711113054412954087989260635523875939393766845855015499376395999127509876563839460491370699729736193692404343284017195025928621481101971629713008813805145868493404901993040231218911578633218216455428271728263208153399794446372136427086478150513409898777813033448599977431050907398762726055875069060672174094747743815069081950117337492238694994413805346091243124772503720780026809008241149313161998232250584376138706881004858652850852017907467650393423931366027661149218035991136756418570957453903162117139243190869555628797548311023307575958763310982382948749020556674697295087149097226297123829711247213288322518745270471073599406824225756786093030906819707050935927441794987903067368253458153997462306098350241770697450738485399192765454226528268756073069957497880478224623228533939386585200927772696257451159068085579415793844703698325256150433630813800627063367813045727783142287685131259023329870156167494997328545443398153245755619171788596789041219467112801100519008068916315761608863019115322212901936411102299481737155888341794854874546763732736270537647289300019688741211146655377480696883218686102200435714915295965878000391130833535335596744002440706719681054825109287704775009864482405280915989936705289011574561643280094567009399300457295585985127807283096160684237767064471033785602539532340127243327058283132062881593478851108084435952536959108959530253773891493542861167913485431498641492964010435468264022239420525130699197422446171256832306852741183298828718058473666342554676357997710024814975308541148861098240469722838391788996265232035228418777376512028995472462952952369325000001170306281778729739718715809341439088879587683538781640993212685499686993715425736308778528250804909638594895952718921233202738823902823159076196660451395765445904757035459432436383020810124849763136134797893690143905968583471077834279539866863706458939807858433490293526772030328270127674549001990611925843555287683387905021573944076695563644737377193380319853718750785055035847814374714234929387125796501306273710859167238051700962437462250879449940073024866935036208699055843626905295596761905649099541299398468824094066303366033429836784910366513697717967099493625079534962654435134001262897783257785289916863500629459365418399789005222938281475551634139400431011074013561023768133456540237897591486766367938678451557802616867919754689804060601547647204350716130896277292277694147676113425021584953363523715489906985334794534867499609801070896323269587198820663461478505447935531018058061774857018954500941574933858873946417710269768761687799516884077489893070912124251220816205355974366641464191708254170062221472389188667307529521295399540321343818797321331188177331295353106006486317190663013536117999991599971966594958004886612754111083452486552051698309594448234194821816011703556484552955177759263288489168971962288009294139017336255657140547603661210954851489828318109244089535336325009729028625178180128640171273808608583245134464018493753682121064140039052543041134676519363161709734046202503510714356687063216013719635687379986183875175094866097584115965436051323582829387218153803439651131111802409246054951120670244246826086665189783260372885663651760629361644367944482771912545714806982946448659320880329309758974916530843299403261541211330703798807788760396641518706522546993405417166747694088388785309109798474217211796322567513626098401946654066816718818476304603147633823781683985741514712253011180024369123552737783460814827695654054815289168036942434761204557153298144647094467383516108834824711488696694119528787584722555967759213865297016841547815590108457873904739764435302644289523655645545771205077443109279650548247537176301784797910468171372792510548944243752830927393157673113785111010636558148850362508280491469474463581777122680501036454875830466507882830839606005973298179273319883984214696824251797738234905767343778107069798740836956507985446201871944361771705546929100195956217476461863580553269257814977593106248540027792822077590837466612885638431634630442478511383396632539687675197957268485823300276001291892724738138824961343808078015981875847728398391845703330420462697942653702677871843478484130113732021887880897430322351126066809449007926977872751943640793411485170828459335513377643319580934625116648128096752747009197966987297780869085995524780030249640636448677910638333169904452677385878156980820327572968499048411411368696027305585059244730686979895520648877791378824345853582034043275244819975062438471331387062922339310912151936706804218503357692761775618117108905918561698162768997632276961718934136375607911170669009485704765064331580529003465340567670166484731361602760513141884512099507744894293673043781663183599327339861971519784804900832004180745974445181879972182352649033639193740151785609965958105252401305178848034864811495514942034272052573553217842752562166375264061079561443095441010784047319607546990211354371872585528839221950555301745885234688059546909665026702356224048927916712802756720509497843032275241983343459836825648197224682168432410941010982604173539576882536960461418219964270520368628976324516590130587783776701307131371565285314647289130702668324968169729793056188487509742109495698890429602244498380807934052851107692891502291850176028701032281978374199227896207813985508493333662993278594739596092419339338442086182382498711399076011461965916443573647207290551734683693386338132833322766285855638841282418747538944754312532336733489197140330022863571279851133454434475984579213189359300087357916802214186692088900167653357075486664587237265820639496245264586633842399256770985808378314418439231782842617329353446125288660134349853276037124109378617126468880513655945823549204198216045289931788962616692501910031196875469551607741137585454617399991172840857155043319535462251087470356492111318998283512677166280613823698470456874420367051979482649929283459195683763484620580636810691888584946757073401367556239521538304653204787248591476667792829446539503482839487430684018825463377630755683814931145394414888479421317757912316500927209399030265010422663987783750918723118758413769195297018811177277448882616333480115026882497674134904586974292890112833428950667607793826116416815017690604544813867695734054957662456171321920645816211118131657991196025742502783502537794119988794518268791496511509640556172911607610914327891793471045787475985735370597739286706414189492192449858711965245794566392649621529301163431378577456632535571582898366004210962546832129717483416053849459071267600375241425788833124542910566521815961679078362717923326461050036756879333243406293392962156797648423562457182625217653515313415863074081118054188979304218368504760822011522262885350689807548806819782195100114657409900666014044921012113039234712131499408181369233818216639690082196885416319997364695142072929690230479411886999811134785577343982281639329427043155917147623079698459365129287904483097216972872462455211672700809763419549753811508749745896405936294270658518477704889407715341865316825673448358619898711488659204720160609833834955522507998923459120818775484903726338472602561557292814845179428274393690490697407026943340799175806513726616067331640121855373816995966733922371727900633769581654125236930812081064186704557593941821611992363709659240045008215819129333343965342664449222740984231076714769246670772658637965383422842915110253171378759362983747237289644621363184899937780649921134442828850809675026535146669969033299383339965998218306684485598423639048884739160594049264012833729987654362761630724581603076667395660515610611878249106437288242059811129810027201586056180278513359854354114401637290554765254945460466477050406674608928810777647569797864455842618775575528519945881376779961899453451313375675486233437263823926333495186390807983937660293057361350616467184961998967981077500214400869406399659120109109462102284973856971889101350822433833026486904791631012793052799186321099468870168339922245889952011481111238469007017702206782936841370444842215778255257578841481908555743473750251294384863676790665532432292206905644459152347635952693879282829445548484121027917063824711712292434906223518281575890979278027314391509037743703800632630028926316393178896112510782968800387977689516952717315289522325124620963491005179923691985552658626285431116232795693822944579760914537160296641961913887847913286873802428970879440527684613481311642400387691997841282554702969971038104540819039923974772694720705970425875567702328386511986888235542618408168379285707001392526363942717727212175088659043159594744650626876373297785059300266744243821841896037708425490022280681342003774068105012901191684956405335782124444141260654480393782667386714943383979896276352590241240433065925889538859422868334190268854506323125766905046726267029627185297810137053012255018336576330964972949287600571580994037885404891812725792694344106796376119305742278937037708878183400750537846699368715175660404588943886621414759294594239703995581718910267487578901256079626802589230658585745445229841102626618028338229489570599022392213245799838602759891642302697377285024988618717113950344604638003017931439090184078748585129667508784562129196698786669754974212124407446799505571162056689417659466182651870628640894921175817902604984466654719068005286460623498872746606856937770663904404330484319523491905733398132042151505014052767766692695560389895016176156073504545170554674912014772337087298652587495413348688815683893672029610928321303367026186331082023748357020824160369464974866527882795854019568160393478449517214763928783815869280066261487255031896062760860824736060751538441506627248359031677707848300840333686215153204762395079292220096949505816652260295738766112116941395582152101945754484865449352392590053492329456681367109896175077161144936886138575516110964080116877789600964393991496464308742021294755870169281770373865493515204068826580450457857063291996766922475988339801599088463237952511237213833995844956746606146891142063766137078595156375690672283333266345133238885414952821505988833113907680579063600733542305614637163926135593111200388579598102509295099940763407999518388792214823473901144741011894166792678435012530415707302068914156798974106445483756353872108490028044034414613031138970575916889220714466306419321938853738996853566465470097198298701823617273550012250277134781910265643415892351448715775239662880132820742935261283780192190683016941968799233257741481481643810984102686101900890560497830743966626330169832430118305538028814844117067480415906911412468788746324786370332185448096726830990362019578194730029761539762444604496124470983214357980414296149554160935281751448921106151399687466402338272660510752982892028001607165753209494058723447808897840668735955432887317283912084259333967189366362106001345231513577436455832627211771582407704911406907539283733087192894080201788582336388517222578306679790423304423221485027891248194557505697184160898218716390469363215320612188359465378690938753315539721946118799230653027961641186589312934052673192374312677586308363622231714223677890786124010723667825200751796014105737333950313715161800826483431237659608617968560060813413572136185420028715486098005638692610295072663374002792808678991917780735583933201314947412224905027502607654579711940253775560147082171059870117428939936405992755782803394703236721367652077837698882430113125083615821702280900072311721215768986572535101346355791164037359739406450985707941266375092983140024868512729342996783732461119736958560610005477787131889550845831298681933714008569613374361928890349302187760976934200949936378390365790386061914986231116745376258760746882151197835931259310257110896052221515592132822144567235121514621580243270310289543344491963701589745713133759123935605267262134574556306469588925812016225092703173452947010771855186287068793226590680550408513647522402212501527557646342437819206925934649516110703140016531514875780782857164757855279452500700634100256177224175330843361576741659454612083045293476648214341290018244927042990428032123573081501243479137011355242528741643782793192343322287897736649285425572979395504986395537794103044975277634636484222093404339300644840681965813028482620583066553201927981609719236009335373577381400084957084732487723487260308680168526853240464234160676438815771905892133555821718858239771193343276360175352792557553458083632012413947011004501313969386695694314394184005341555276047004604889231512752382006656072678462165149346204152473882108581044882427915997582152696873302431616067501716378663029801925918271016582962268825711970214154134173256989843560527071785455388587492781539091438502858566869669998489202433112171539940622150649883602659628023025845909681621727532862466248873530269089152774624158760453260527906323479124984892608346300656412317199294314318591379313015224433890516981834216852692132125494385367839536149184075523544904673366135866511735013653402397579274261009891652884028800070592926127798093625339893801648029391393614082376245564210496193525721922930100229304605103250723011311376211781014188560275692291215882640378441838359223330703775912110429531383533162595634228577315806671325758923901572382419423238104128852893083617680309115545956059004196958741795028725968697883124968024851927215086913438344152751381643281008816844356616962825508431598196076099357465052325761016336558893536209170221675269636898549078507992404572636565590178024699764066650301837612613881624518467756292068719649348920881692406402457497260821642212697794100197379656558625598297888650688452178472684266322841992750460708269137264011031479169702329627741752999229638879409723092471053722350007309786375524681178981005739953155551522108120876582144593653389530036493027624485414907303166523888868321540692855506181457497146415518749146676863504752625884078053363398469514230084496526632333209356570325336826009243898567089169215973567210881638113243866411725911070022754027186094696907967520432378928406999549626464652507181852997300564237345836249624233836293088942291543235441123250858678343052225673209984832853625770246352918140178924109348235340943487972280751586038567724141685191925659656023947732085768839985890588410314530164996892565653159184056686095220493918840062970570830217881451834748231426187061172517898239230975409158184915778080668675141197380442007551262437136660771455263863125914094557424377182908361710945296124837135080117414968865989837920677570002197241312844871156632382850461955517738567569397694419356825446513610354251221922956279809825821985993511857177986115605382041393826976082277964049366297810859668614618059216795255265239551729479577721330241583063457390750913283292780840475207139878154378111796379176519393392574332469473838619650404649000288940809743055009035826705140614008270799849474068821623173672111632411833691833530786362431308313338680184740681511983113876364664778397781365375882336851662079624305869068925063573356845561749024342928529990623498027476002994262459559551733772284724547174324608613229626049486391803370735819807980013786696385735269023452957589117534627783945211271460664480374368440690929577364742364561383055785711166811241061737098533364853883194252677215426623440032797348018216801639907051417562469913699929929594627444448604269040091139190588520102603323206816537543853923978615342388545834990083527839912597180335016752874985950665060350817835365012244380782668518510216821259330650706725699851936722266650732359115256684196748673371253963115543581062675560632426498413229381950137579050644921063785841459618163115430055932618331382398160778531471439257099269391523440313694069805483256110268011693354198289912682183236317019234043407541202786410991846316774056565219328487538066193026176696923085467430511369954033707490320207319171936172063144955344185168224463401400804590081905875496523038774498572441339763556234366773986967689179037575562923236723291557231399195029005139010818190714014150720695589799440416390170156287195456918462339837307467437985913283092382465527316597491969175023865685490748207628401687535795738942988575107574763592944981209524778442910479929013453491590302187633835286328115008695919163883011099408916702168168296241857883556410679748477414485541720025963136964925172044785831331263198331783518443110478323457871413018020778268979817838444277589235994023278204664178442755188355032687996413740167604565957268881504552770112156245794066291098369247130736990198225962814806215997533528236670991721280548633952708327112408229890862499095884293368637030944698251975613753554742256385322595563573474532912113002182014099891025426827535726469673750592543825774854010232019321478065805977304394954311828018032507570746108547217795352000925378719567561123255955309915505869670014560384382202373649800496731918654529801158295230794935789019664564999264640702175939119094202755253194616849740904054639067548718690856856528213973668141292977137221258194389617929206722660120720663861534242244348216232126507932034585895985820884143938715975778885817862358212820899460911010213218184959378547739949666529422183597112437303687698136061200136000657676280468253835433992802943210238254537895193031869499657072629330825275400392258768396855145894060240923361085767794810897035704263674560644634542561672647000075921471412460704041285830904218499848921604104003935254380486144976144393068541753617227434678751695066011849050728905594518152054179570466935612023524162693595170903265683151334525843603825962192652827214339944204341454062533439548910301816140554746726006328243560787142807517328710843588444004779242852920734776338116679782642974208424947197160419750762212426699740230071556621534775913600269512839376057829720732315053570464460008560711642624014705191466487979088414147171977009623203287832868837098245862678871509549814618801622957415670584214566098551860617277760300336042017185368598321162086602877257585794504083325346097135633557703462519248739684967126416532309394377675636410141298884261900974647258273796259220477007606721840514411693443473167935872232560534353891732730343203373478843805700882286477396037866070963567985715315182746374831295357965683959075008599529307132564978469231863166625915366773230169489521132594359094461016174612883973310949365801727870314887508957550328718696413916565976008127500016443004197987081214585039954023533121252379386545983838877772298885427169421300649987577539908979729355422746582685059319098845759941528134525083740572493806978103912905560293470542128680370492458674632505069030862730047143866290779286102153518811908985213985375681749241240158384261255628032904771089152116657126941156519426503808793844385005648863528587230040404332890015514051316950574291006724497105290217608832187122001158114711655377399944040536039039907277158898116422291318832232742634972764394522385548016145262562635336580914231437165879268284455033317943109492971455558483872365631451888148432638164135964028054649979354223933659702089385316077835630186257686975016448934029688460877332467716343117019628861966950856264212568009955980279922809969158438715962133929390533106176975741167983488651717082057058131006992176116609911370273512069190367347144610838520696781342592989752772459517425130036390259031399492004714616978256653303945938403007636538230817528324343057393916713131481202794186436487926824912055007405763921095458674573318205235425852286791594190708012480165828352312713871820909455257526644460201816304725964864064074078433161271552644052277782066493591778589237804610157444179919583739126649810768449246230620094697433128668832405221372398536747287038839490439448541059882564338652167102084932201355134216497866138764683124339447929976023716739887819036837309187600958740430502473627228524655822165830496619649047194568670524300857978323973073112368705454975935643847463004942006166065620381536308755410625121162753288638551972724821321037888451478133272447045359370359311916788746411436370849642844411424040930231433387459673332522142993548714340644140621711215249312971583448168481346845052314050298701893047186729445655038881625851712650702065634332614572338333153710187559306801933647261822958719059996031034812816292241057929602229847538526786782067214530789389614720091292427582990721219468812581150650687927250617616590578236327873110390141070404299748433681027044446865700951974004325056942676413622583441213790268485767879842898332620681331113729968999144719161557742281587812210872166474639488421358805484773816982208976312937252776466146774793586826125257933317220969686965176114967297111409944965227066033618418737398632917630933053522849435724340295627363964793119981735420658299440476872993408029574810785077896076577100943470299426451073400842200218581028483840754006045716902210491863743128129150609557710671862641412092478717131000596064885385087919519400567313506501287930543598605748370145087889931383129158854481969723974620783009910603753733759959458680107688816845140759132589715684854298026875930217398722895763947581877282701028081468956152935829463257452994565838779052999890908492158200008398901281236952273620512874444146422203090549677384424108087468486298958293828676230770048655036086016478698904575501847317282272527278856681053044888794548577330577211347285442749042138185833295366401659174099642418571736340541796872292670496314961763199281659587553403243261417924526127176388193707301431950775884754788712364434613675676737439229756292916777903079122018823513838029845467980402548551032561736873426353620393466993944595421263288430438442718397655804806335115493917640475036761748843607683744144943937628747316557193257320010734928225606093227654639315626444889772499656202038038221181824037714935101934733743287243287962058508745739509730517954946924979515198795873151030915537357419400004940109436016646435647476763446125250565838194682906023957984259718343670141353357685372751145819560870738242193725627833323530762203896149322345511270103837154345054362672786088473148048905772082987073644041913198452092609655988141454597319674150639360988498610344965449158461018879749997604325804389350112756426692015434751304305972904736967088653112077614467909265330253315940592924128715830210048969075468431191151061210279842504048887904055830247064688942767384394900268982928499000898479288008117298968142250322108943965188890858201644275848292637711358897049364870865267701669659303814546510430865791795922677759384048030796094518777664517259285442481920383635776714421810585478807785921261167222441888765679015271544057238680701210580436393572421796942710788293614762574478186890875405587796122679792616152256508065590410240802822691534496828027398229892441886351102367213354625402651522020842626794775213334752706779137182140917076609559197996694660835643558227822839912165365032750961475175371632222542097486152736475541954828587895488616003990911277256297079784085686918756762377127409314138937397509260875358726788964913893631245099457463227146376086331084558631115040698079573804471146525194167128385664879230193176717330022967124914443711646106512478248886992400854997140458151170934488963884478328746249713817465796584518964829104004613528560359246982280308045715183596595773696282557218715730537857120514023759048838711111968156833472650358244377195876665173025866152899694898688640655663523966051934460592993759121726508854698684505106061157683800033512503775432816885979824346922538936344380111606666232942813812433474326653579875712149822578376533511186132759634032330714929269657513758918831238065026977667796181050083175810742730282734315502450153803532168361653451706243346697332409193652060566797002373531263986438169698423439485600681132070812283736108475378941615061941746009731709894731039757142779137219396605162907802904586295927586094937932695251249993090988214187462142155826032200204912445113305440700830277663869857393480996665097512978509350005392573607398480228211063124913185894765468809676466592535576038794014198160530246403427835785313401155947315500755924505357072227078237188584451581031586058601684040549206734040848248154594672904870877264157706804301862369683315186988818023157175682199682715487762104476031007161751549442468769292249512862169621960787133088468462030897754240604030404229891612332078435439417495336600168020571145996661566817325866424205632457318724860325555776282263072055752609552599580396711150482717158284932778347185507154864921191026698678779829036802912025959455954859772646995207101808207559256964814623471479888180601722421243466953598000223754118331903378442946446344027774733663595933137919721546541035021637653818292666144704037690002545733901742253020642615769740361071422937244378593081451129389864014236196467116242382625261179014189836067222597782443110829822958169230943755474720484142309248539523141665872155325952173679154022027712240221042562264915892279372294839233340187244779572709761344426274491051605417296351236212805596578100524611586387517140578214129691089579891368670710446915543820920358234650746916671806326518913831970539993137523448163914483450638654835324096368471475174392073090353009891304763874771342849193513277597135784163132496685792641755229723560187683124447110056170739311853735944190107019825103430243925968161742198188743042164727882306348223352391643487737505310961824805896866266625341718333284712838607369425916226100052541579759140156919211425495979339306399637921136160695188033837573973593885381736085937455059513741082687390588505417095100905782828466187995807079748846941410097446597765914179932590473432208979185606223127835829202062750367353146495661930132871808374788580384051997138124542596337212165172451107364452197287464556651119099351040165774526184996709563458451755504384355683323451760545525913835464971687558451013026893103667062005347085108996969652650913083430746860760991180769117803773748972664132599831155628431967426998274657375219756425239038431530573549899205496094331081107041906549669232018142317752048778168455591351372322922592566695000739481970320388127230629590165836270319707551040332653038201647787672182071444912693239846184257565981641628014674096440424977971322046352079875416092582332705666504386131091618863202596489729957379706955075548239562824720397563475920231087131976365776006345605416482503280847623143280959818672406786324787299104752458405604522140287078401290756271843195508600602752010350110150073937482043598469292972032121809307413161183664712717708256411855499415314857424726768095556343816891010092077212933510648487739949201309932350276856932787036383239892158630791397702302666390740063922299497472312889500765784879560236652361096392303483102963797737812862483746624478847287949032220846437666091630189478678411442433834413068573652059838949853509634980000822098681949836500468859678686882528105415454425749525383785725876554884346425531859825953380488955206539178819810748541483641403627285557081586571918542219845203983242902757160220354296481827284434925495023779644596316272655218086122211654881359898615788524225002974773591001893687982785000847897635963598268347710975811496626675828713500474512966692740979397751044223695081854354620496729138423798645777595176845562088032471194589352006390566986879362157134515419557891688887137043889130580675336518381522062092725723981394945770546793587642468205213816980728547180295748994283538653627374899642800952662531484900157098073260627349820141258030970872436526676163801492513719474954522350759768239463462678954777990856652442230473043397481977329076649922515036943467525209278335154269274729636049345455026430732434812084131173041983322992539885244151743102708311898043347832220982780053832450270448721703687159671347825848864646316106734655042391394673946586063972221595144438952054311411457937599845939609233166058772503859549500298342160388893770007126546158742717294636296953490372724709513517614129362482936412022437695027897650697898152618838840967702311968615742557152668045362446587652266852662924354657937384072089508770536711671890829129634854040167485436070952597446496683401874470318411794443321874797719412153441136751334057278039359205157027374111764808071670622854650666541729758942884599147126639414231190658333345653970048334001368643158500068649231200313904593863151084102003322696824212097354132363093707195345714119153999507425690012488082658154984285748045132335885153435192527803798299988241574171241038610793182052021466293224997602250288411814602095067685352756032224218509732214770129512236373106375050870320929434883371879069010865626860750075821907257665066398845912818410755547068509414447957416667643025727073842753041751345454039437455995666208192313510875991897769424364749574954751190425002505353794937211347758712124822943466311161400238456297899493978658762291010714324260358350401521909144100527853989491170708453393013283211542948073886277784978672229953386453522466028368394203809476414984729929359030773638642560976632713919894263598650612830925138264556323255438416930326987934013639637098126182852902651062375016614085079875179474044615783845980571608743113155909562834908940800427144128432035961098891355890983044906699982996771963458132054863321827790201741368032564992723958766481802038932730808445155892223594351244754336692747281499682918081648702770482589822377928305932089725560785809752064353214911856190039783260392347767278227507651845364385093091484465292310400746533547045151587542187400711868579048346019027659010112023817822361897687991976575052626748312280099443989837939660740997794185880523821119774655322064621314315564912448866279767316096455343241091166044277582301823810026186283698553250974397387928509761402505995206942311046738378903386414810699108713065971128511867314640263469545562596954822351840306010078667053268891244603496627434288568662810259712035457780769983443354777762091499401957141756723280868601027722189995695169414945930971932120913248252232507054776216724489307001234729523696796079864778733262610724389795278493470393272195132404392269658228713665958860322848109401041929007276650183140186328369840910540535563906098651743723073193492072824095750254656725739710694697709259705928777366463224027346596588206589284871481875423595873926135284539625896010483521904875937210901269855368083232333000148163647941135249585842817175771453294299833388550688979590817536604928923140730788038539383176695024626710229870241286076097241510429012628993749551796397474054863757140389229664974370585351031562614621784490883426139598321709395845565716128421614613726095710875839811997904082844894504812378388835467221502539381452381234905128497710063773712969360061057215606071929373377756954814621849759590431018691028443335750974656629810816943425824498006667006819990544034008621076733068552013046589841247674596243496259010332874990872501034429678484237356886731684803903961089499807961929079053946548462923209309817144572381621118302995638056922699573394972546424638234754776958832185474125375416647318491874338878088955503834912506748520031151866420589182258657825902219970325665176973541145154200406660006744097310434156434244406593667571733479524398276577313823835049854743644892290204200270377185443539398262878433452063578244018464639180014719567303599849883362589650335014645556117175331688269394231937485477761988675099967884406794542798189360732491145437270955670820969401470061632714228965901343222825185152021496300517004752144659380865407347024997162538128930553737883974520226363545805057587090248024909618302178465464239586955259552682861087470038576543450853360454943873810817427290183722266822154540944396984797346504436310744239319456204626085688343792784607141088866808403834580035838501294782008325479271223679168765045082830793384528468043228516378395074940307847921568304631287657190266299196569540371210209359014404912568743174145568109477872518048215703933919591228017025383243229703440333151197623358761537848100393023552282893633043474217103073721517278113050432285507852288674034527183395007535224458676365061589778793654030064698181337734914715516161999605111190809680125095902620592907241841050709218530544936313840863465629316382321743764730485310883656682181019074352868359443745617681582724966426629252913112956517866793611248487837924283416551197732499808442247823515990372318804616120037233994609697090528231038317744061944130857394264360987265386046690572982227633485482149744391599920030444532423346023473398460671606855032907334287464703498024726997357420229208702984778180036828125734170139998550797928154662303114122343882846571138088022750231926926353187494922268737583530653966240940943187957866636865186445998978892699324939314769273205694274115887562613007831072128552704867532566194398981576308408985597596156685563864237636472164681136545622685328701538444531590336039928957523923493050549543928376249841664367383764523575671481415874651629641148092631912089500516175083094711058334941625738593811013247029784781487623654630433875554421125996759688107144224051698854551096637994922338899344850857793787910565278493163487229415085852882841058754322895283826869710933023578460580173093970853061292449675088664494815886538736424830988341792873011675122750093844837965294722566589115936562807094058957552836068594490973976802320742685595922982039441555427161847265318145547388140702761220035500705415119136625465148985188911349607273581608169120726898644236662629728057020883572101923003981517871010695652963865794821852481705488615360215715567589059871139517780892834602899814088190828193706647596535407881453010511115845312291767615605269976376898504027417559800319700561932449400976487979414848180168243106651437781014203429361841048372329102202359484880851013364417591555184120089220164394483541300166028718682975798854427821632839568659254984313234949311498807049787643181411603353005601724554864699132827234953487279538270256118817120543224554011426532114119923924358855677745121903196637365093468948081962495041472000580484044339465922771803639815973016910451715336404597886533780737237535120416949474628796773406231961907906736453378643853471500872954060831986328519883626496751088666851262092092996441097995712327856483939470959409919424143777381715038603815021855126629511988998375863758495039567265375836065498680913711883139987018060581141975041492679104147272377343069901931783136685779406518785174347960768378904549987808505662025922170992170176339416867659735996483807628626360112443737135191794391113691587904020058923434661560571741455587865892127604061874952477958412010117747882803982267994656432205397053518844718764903577536664414016230076017746264624633800919552177213535016133475568373107560265477391570157567466315864977250509812080542262510484953323084167431061142117108015268621564901062190077519063060010428892077753231821843912381527477618320369766610383554620691772166822831082794086516957219898791546294830766679734360334543459769634239966476689541431216560352452817117625958504038831941866578897580308206249719413695308409806555468348745149708260397753120674868477733924608702442973239154383943499535222557940713510184989110331097013924589467676378150553429208766630093688302703719649240437545938153547959684972263090078874027611196715565560468345524524931482931877400972228053460289535661326010637903114720495719511432147332362567434432495300162620774982421767306917950004592419273006566712791754578100899091205445862226430977739403178521382972454979679313162724111070051910940482080808734238635216299699529589015533325981211038901189867432688854841587613268732165322707204292552110096177235333560966753763526290605138269348051082547247147331761386351787109926922484681861830561464622870280751737498984162079904325477468052651874852705500493886146737940302515898691125549842934319466521984334644173490768445689684836890423281878459419941876769010528469339705994118427457181791705324378521693905339889118361988797868400566788960819064188978844968150211273869831488398350538451306046777540254399764213905696171850609373504024418645580853309628291968199922409717337233472397865342987518325936663010398212533245107578048644232101893680403697118716169988938394089349091684247443361969584908466023139647527517858636330826926229924480078887226204824679050453589278456061794942438347253843261818132215531473941413050927718994353962803751463389484219795997965326894218506836132947883352750057844330307552047872258496919388679631557431916953016965826117438108185117970706766715977407954869211231818646754520079518494524497184789973364716424278767051669802022328405090675240409491957803492073924947912881031299378232884760657737600244143608647493141199737674423263471368854517968822879667873767163217876059977077127542168628633214619906397458963715438033919333043497199248890786143032106579916058845660050082864667859179916179262450641784410697742570419792392100449300532824906166647826471022586354758614072665283974092633381378247173324632873265604912575065408230173182010860938732675506505250615113667865895271954558792192298538654366226667866196202140767368955715890114309859025536530560202862399702788646682025849043395889122568948869981134696674394173371828171044087596687476966473908521494385024967584819996844375183036787122145518541616819612955849082069847910295202013339811831909381828249923141964490208876407158520490056634164077697407129987912776971533655593298864054472039270480596071725867699985259505306284173217548774132915686466177125556356035585517450473785469456254354596274065083353041104254049034056489139090542691317737026255512743448579464135788586411514694284349997806652132258519013702676780059935110073679204836360943179261193387511274029043715853539847733129753813306275240732109703960509249028091386059450859852960431900406591081096625711778827973468924362043593363550001388534631629544630585141493140719416201092342357367758955099234700880561368096286977178353333677586308452742650314019710464691988757777332456944288929243471018528728556465864831854939107047489717111259485436652323571808505880757062731680608608479883877624199312682468492691607569921371267179560377911309235752146883906436534429005993475034124535693567069772930146915779559914546760210966208059453386001736637250783857588396041890296969709852970856128285116048242413975407642051203922294690683194187720328896370568597836633774560751303577152328462568967462428805932506941281835702691676191495186801642594447911706681258462809068717100411299276291703851200180779247540811299970385004529356889384737580864065473246073399391712991959326199894331865081913938093705964006040605716161640728735135468852420492340494346858004589207322734566366068559599937377399307586041035352474916233288768699046522584706405396284989043274844123953915734054986310849035789270641827482924299388685976886456546385220564650848198159829263764277520112867530460956806000636150321747138222632642290010948581560577915956194975918017547149126365412034948487907659498512504622084455325066088756837445027656486833464487675266907084986315714702005271616353054063023194917459029909770860820644116968441629369952955841003553858450210355872191620130165096065077231355596428771322494826610224729799982160677757315148211036512803133936258517355997671638733148475802115226467205695066459037078767386926882387347844362813481971048255754173059342338618728828320503225350486064492581644124387105116552608725567363042019241627236666851080205473541586868416275905583166258455391691813387195477578007981438079836652062600337403561995362656054229167259310858077765137057863491848171940415150152663505841054073510030276735268594351903581885021209421206444187658087366292401143047519964106045954404391079778656804248720899577460068724912252243742684968207307944762378141299730808346008505585336888951813713740412158458169959897864969820297968780474942468705103050299172782739365608655741449848227619530688862587685791723229303394831084587875726355642696956226900758094003448947751820880225940331952132386207391846101581215938833141428097185912884672311541892112691269445798692133680340883883842906654818396520720603047289809214656728416431409195909726053322010971741451632986977209334093179832787414012595822645519545480000256711792722007974634131479856198312958723120779274482058825316170303806734340999433200701561328564761810759908760168695873518952663679900369873249874063493943375715222310368351399969997805772041526997011747493027015770174410156901393242330268223057483179016170390875269955079107031294185240814162788506465247880903803748650575232653252870963072697063736067833677515513140884529015506626290225117381086490262999998709801039763417015720472746217418214648698251833430804154672057981114858546106034101883432785199918782385280752708589510809151878132526118776486383191572867176328527302913657533826154697884893305228139552485366696935613170882149001492490764582293405320230682424537069606522951099943133975084568135234156523488470223726057071513313435343535989866562501098879438085855141821455878610479157800550174727712793091455877315854927153810332531543817727974834882868156138301994961826047586267285755214598275983670909091381575362819008316685429455072033045016389539967952682840718477792230472856561897284273913315697984670672439920288340630886215913630927105315869661581098237768594408333894387677152513588048799963655840079427197979793722114805505817835066323294084670031817246829591175470389348870332795372340644841658029075708712674825522175771682106334994122597481939090338801078073431967401497136963582334252102478427886905050192779988996949057418862980512460577921803894725536993740317874632112856062314072972282530566431038290731326978488914937048647184127676374938633954633766277090483493354700999893877025213829404804172545580573199524146930495829312992716776731809871533404622440982290841147908189167577236508672648120121892469478907387515149175909385331831899238009870783386851513032474353982110130872607657326506378211285707542822180543889084421922450713069321403264076152480625370913624351665627910727608685224947871239956855916109803812960756153401330554242759572450935901579550347700127880660419376836012432526802588691362958656741371578542301454280450477129109320240003205765414127718503319973888517836281543915932495643216726157483771625279167254571431724081872419670787252471576913156961946642241561814905695196520099115135210623541349848192002388881388230248064199019758355272456143317431869079516416353643580312044402589682931053631656661979363311258785786182928618876938742269373172002803351075872868441910320955161248026976079443047728744181051671137049500352237010533703365507757220941531211646443148321269883838313937058901370317323497061300931290636189649841446992104715397439288858258612886162489470941278554128607579622202940742653172439321194787807190622143622618477829293028506855614689484180304568649458172170108512749354566029496389582696776200660413872111403796081559883706661612421769578336646952106093464121803346557682343168168633776734275879633392077642431418684708969746522080372616809845202152627335106331912450917115996099322882387198286586037830971341852817854782395649198229167705396118531511012849063305523394712841056269606418185948399493419268434814061255760097754893881683774188845974711488181493902858138716056965792550313861398945853159214230011319499783347943382407067762645282338654939154134176167494272895728405642352357303417387828026151476043627272199653095732046928403112603763052212982113033875988281508827742780951357591337210281478444804952735613591307548440958182821004998704978521523887184209106214657987744486534016948887503108037478308539462674589909290785545754431784233493495617496783212892011434581220949615819100539543312104717208496020656447512967183211805466981394881470596432998685857505666690267691788847193569760829615723872439248142837931063913502244480853161941192089225474374704085541055989256597809792283109272030198500256528405582309123999926771676429910126523668797998970245584033433529393631506157715882705808478009050753364421290751698668403934691718595143126734403961045168641980044690630314377629174215645782213700929481059658409378392461423179919341423425173079877910764671703441105540943833164376297179137711007214008512037419480919288327703198279414686914559598629984273921386131724212677631689509375475312768823411730208991825350275685525871589185841325438823892144260826638996825969839621095022190637702403660197742586119445274689205209965355832033301502447833516906898390014966241725443169389512402238472552689894976493838780940540084684391296418114800899657335887351444546286828770144477999990104817742329071001619736235701829966652008905913886641630815101085347344228551576057237687657625397497655014171522849112904439126698622113970203063594914308716867984927935993092112570281036932973310412036228078269478796353288495588687670194952247532316166375624584392544507358646674753943432238714543717925258244579334736902385066325254759486202497185823071587038478634545008598819671805152335106103239670115690093354404915053129137479966111484392622191153553708113188799748906512801505635288622841015266605943546832925326490980445627449582914225918863876569765267113536653931579832011077573564523733651695277599912610581387983081447172799908330187524143088944220898992162376149007864143695484658406465043643422847240120061156718032310192336521039760491813213470317216667052418896500663134366506786152921277648588961161345179231723649529221953915087349420878732800267551262136791846197455003208699432490670772292314033442955039911418178047882386205150431820149303412615066655408090804864749363140692512842258529968647984430192967173170402921108971428436601523801217771513001924039363026368033348659712701893258308198545042595976856161616577648063243754505663210218831849264631625041402577161161046415995753320981653852616052096924120225827518036707969119779052509190273993562250950083317154477860017438259152182148291461079277880237270843815750981467791998187338359000903522457291396490728898976062075167432611442449345386843815222883846305550649461122728862928192527259908997048732675439786065864976633883957083765843098040766937166483852887405786644257266228013769618871244631071153852973523925394272257248199714094803554066846786771452957834202217485850572998373527054656133869438941771362699597928592314962853393780880133334893912674182480385458104359157930207510528612973627262846454228421131315249435038660111609725354052787817300542432243683473776686469528976845931471403061550597612625306985328874372140962337478411763524557413192502564752633509677339157343415447748892245383148940257154324873573638963191933352640377170133116385912674124324214369088601160273700917421639952155574300437307755084054351052652683925216864206198827257753882941194634716888329686919651876263120179007187380806173321307660749618223446988375404692637112513562513983777135283068298873541299530871085892085958363766107751539574817573734333166069152146369937212801199234882426895378555226377149989448882706615420331627441830426619967767490329558315157601624656576581247518766046845068210983980241003048134570308998894241362563765733240256715149054653884468620187177138540197298511432623788352428120873515315854277766786754291492241594360023979918092780691294024843609809843991925377521953176332466627072931400420350608562099651679220159259700976582667020896945295832322686496124431170921343167187831015779120857643796747529734274359311069164158308590952905584045899357464372895355585538271338470567261998337114611155513356343891440728445319227742170941622159253638418688567824248775167253057474996835833014054795123895820037610292541766027333934274264272850825072618593061009955391890419626997244689656980996840553357972459684501252156414557403053463004547724403548810203808882043524559967424133265492702817659304816711116988272540405144632291226375670797706602072428259669902052317498204721436174059109531154756893711855840807502254035509304241983038352142989396426474945594521569866426968192931667137838900419749257426111236777685101352575711658970234240915625960297191584397314381471994995212998201195175843217993140440273072438474777260082198979679236089478706908338112458239750902536566400811876745598760883360344054435811690018542470883167338999412815145381714633520008365361984096391740795162715800148100047598567198383848703000941551763054317231344086663314029738589276913511473503780030570913329568140977579197226417229447500812073620729916541886883820888233177381373558568681684236557871243232397380754651000341580098921876587003704352989613769187714759907521146231683619733154376001223560335416247752937306275860993430831875874162931689404283522563928141473237481714958755461121540145154499856417972942403949309730530433647549473396585463985477800151858492448197941082472402368710594324387192819696137528320741279975080231220213472034428496544997006091516695764061166371130490010500681398588457352728851323987576938766988652518828000837313121548631810240425266332084299241593413617559076185988302392743079597786469843767658083482366633775742515743649613578791870651201317240604644549444667471727972538744024181088733163225310917377820891105773872046426392826769190661134627358184909832973899498534162371892313310248823807462188384789603139847258428485469439835636784442932015125574866246506999613670163450349616945731854880976586770811736644452671575761224410860151671023219474515936011574675894058624572224464413424348019405977937525739407064190500522182358520498734763944231642121337353840244609196654517634907481571605435965536711022950488903576050436158867047829658667773868500791054778681395952988738010426127059683778705984338526522171864812466426939731273619836902094820152163634899298721030527355703943943011716584914994361583162646951740657383582097423998055093425070109236440426853098100949932412001388754923885017244284981434255227320095676697155407537106725793709607023982298456522609612950830223244402500092265563744620811223470024112902641636058285067495959391302578594216968262722189372351368977890534059848487898046109358699378941818518612535427187415569384461202196809953877063709677456452653394655961497520950065228531634524684492044694071054034128777444761996369946516399617942812615667792855789387655952054122306718935618428477463582564149730232018094838194051518234035311191846250898335768259097951526076178465138849428170478773876291503662079321683316519699996244448147356527916053474813590476741882646026850915687460601513044824082936347576091828410371450563583471555878737586549412604625179157972145753348395125707718675308054218355905339326266323689575233865350483820575993548685573917305999831890359457573402655233862718520355313075851674669025556992139356889853211674984830189431098780457516278100036158450576772561586128627650301697279618586719293545361420096076636133437247515562907160392249361826213897827093624644557446176174539804630967541494033028432284159006863571051717074443051884601135530782754788443938730326681527535545067122452274693905414459030977786621739268245984461427733847169149335355764082936789561678235543980243852285760937706009817857694185141193032799473661135134519379660905274172286128101003763740368036233453637647758388986993746424326750427066640517825295245712376257178372352243847741534874344377560597395373797706245871779968706249162110334539013168145751821992610381306401212177280883685231168640781605045526994116002898578958405510473387644644644995630443698785556192318981725239120670321255201210819833200587397030406663763630494715611911702293999650644289594887971056703190551938306426166309396654148067682848272640053086042648002298604328279227306740146765521057887602395193443102192736374941513091687537155639095999720392656767500929814887374294490529971215283444782573917430778416613487305194717003755557497387331997039346372546651774786970164809143376167928830500213587503586734324985378162736145134886613753125156754938531419045938668647044282098229110861236577746699032398494690776968700218607662120716385586475641158144415173262871853056266502599830199184330746699696658573264509949998339163226419290678992570822705219299581655159708510995795106060195012696904181608678719869445282454587467991751108331460686561597769237058875835505658702166101703918326428272931629610573222774749953962851726848103780469145059856132316544305453663429196489742612516378868669049412965076202701230650636027241803542357237337027485893136690739804193408300157186153159616107838718783527553783836311286535121964090808225643584186613455905449697709976035407851866437179898027483306330221169581322949086028787592750688369351106356033461034967719990160974836178903933913188442249927744176443889545934875939269044724312031162651082964830719969385696416057392771189399904536865017260685387192486706093226696758414312893877511963370436017525537670872384203993114344514153280818172338936612528380033464199331639592843534631909813592753780456274180276481109898997653452797611361656271719194032853345405032542019614234475808836750265238734597363230731828514897398304505868099072664718490073503977061467623461848672108478822965961046288732154770993500728451327510622438851122332221668536634188088998953066902037389081077024611071298952735793522354327902750617549462102218962635924247373021446997631344243877465883080079989164566907367044256315762988804899452326339013883375087783108588910436350939528465823801780349097856923246510847078255255258979355327256186914833012389166243616697200051595829809967258030487740697514437291947811097650708308369794015186088715506166263351950282232744938709324601461679092005368489325139601958021093746267533405959333853972554608523119340863517451479559526286516025897701891522308672835815814670676301151906513736890304565725178973356423698426346470474753812763974630736219648249491932662149974785183337396604301592384789568947412735453683973469432087805811147956475124187475498331306989334548585755173412512409392013872143832381042670501025765225992556947523964867388121316777487118388920646954001465402882267745046824648173726406612989956998373930981855103549262086243570886770558315611252928886890825944019873479910387083275737534760247087641348503171609476091635657174688411738638903106821588019637978112663492036203814671355057235304785104648701815102562607496772284550516455157425447483271170761398174778371394258079395917271787857273431294369854093064836869514905837730287595871142083599173288529224699155779710199381778033870367392671339263401030891708352699713219886504932978179965927198665363137620338927676138723452762756022450551841104236005941844660393458129572096928054148978611472876962702804369519537292173686803582963706065869413725528621327306852527939335934751614390030084357851538435226473861051602681616549504907058756766070307626100977583866023414856300847461560954297523403019521161436014211315186922344043649528846123384468794977164310210749207597472867653138784673230637803578760098144231351825153970380916793901753742255984970157190433212019030348456786239203850021281591247631125304131306454872570852013875532831571121153376244876244826943774400038953312978331593422426906638563191287442124701485386804081781565989847551830535648018474825860370505620821332972633964548583477588586128761696061074212913094147397827195524356915854955437798983068079181559483035503206874612022088916909339338850154807989574382673920896323955697163739080775965364800011338312594649388549747807360141600319914197875076658250503512431957823993714426654815495044822964633501258484575615258517459048975976424111884446606239164809700388901129839657036510875905438914954056031250130062164343683046377811291427131480750629139791603784399918042255880908970378779540037104024403712555025565754510367956213102038785249893653252258712818172308850626234130430146557345298189578977497649579634372948820027355694216144283453893736678976889160159108065052803936567312917181797082372569011917652249630850701827438787055205116278566145100533300339511282347313017249571418142636778392360627423429677410808391744277199445438018487481731621549363587613201179154872577137798590920581959967119503620601640312039999645802191622818899902297131920167559769720178487746822293483355213440893856395152583910736557768141683609566857272005795804599970443335789721196856001639101154344466622086697821984823645376328362438600741085388820669474617897372994159346592468090057306666338708346548174066807654227864548058932610425404350691825874665957941829829961835497621911732111558759833250323521358815520054802698086109720048466312602556099675236928411563521958393284586394027294941571334951501575967461345911045743130307726095287171654759216179221333324978627297755312328695616141505795846646152870892444467142370914040825345120541059680703008062644311323169207695275421117684433454264688590960648292314830982688326498095894940419033036573389993265138855384338020099182426099560594396314600656649981914583031859717050489802364491985463836816361598721034769629583444439755609584384603855474961286089723660189703188566475579772888255013399966751919990044603405471355638987748974037075484571505009882029488049410763662921628214025773052269034131684312263016373687659609203737739613066946909638930640858355901040748595946950792083945393333297612976226270575138800990219869943493600642371711605333012008117457526478887396846582639498219173976816858239047126105855844025389405982069654946078125102088100800618908099971294702315458628331473549301065289246069226369860288410894022977194587870586180862437290473171797286042046580243266152107936874020908011059330951192484730011918887292268088875510826200360017966640536770523409725217838778839476261818285939327402779194259004857029882578955545517602178318611741767340452367271855359879080296074737535248467438481908720001724723594140654535915607204072879883244714269354605119883342098007075846250887865945841267167790454210106809798582403534056951338456604666640256897578660001163783992815833652533766819624177714641902702562020569220995194577009283134391322281955643487676993883666737886410434168174993876718172276970093256037562893378442757249937198417657054757862402740422514077513590240592380122684567542995326215123217715559443565542552417860491221873115738635247842605746708212249095905408565276654564605435037381546524612451569206571398620398066467609417257260039526387951610367309352626736709165774495147263939602028684026140065212938292200312649049916243528227184823530398184956108506189340481096664924297184386660619726958951514943692772894547299739447270021568405189701798910525253853575602863379519025351919859233113983492746792693803840430416098762057171000161499117076203073254607086107132667499133556942161959378703290296409626662160317144872079909915000606085548382202964885627789474003238714652980140374299047752816292018268707809265005261526248618306056538394674795800965338688847898777603491353811610777254072783016525929412823697933538511514917338955098202821197347300073634415719738193615658288667470039397999789157742626431701320760930892221169486812209355784107140891928223928196737603818412248590340959286747474785075792231862710643227474602762785789086714484960082047478655054980336559161090545885162276405123527162218456413286458910776836362064954862155428735896728637675204663757612919011036056821881637997629809981943776118158098717613631439775722698343061746755105892136899979371406101038487084520736768199942508074856231902176835360177039929792322105709984747284436890536841556737780051678820972383324969410049811330615187041497876974593425936249362174837887289128273159580276395447454211475686088412176168986649616333328724001212637804377020785740635971033954544414820076391198932199572227267447527534896580225857244704787043851156802597489257262178299143959649157954370291093423609509702981458797765933290242601372996049458612406377913323332313624548595224474164431018157788462574200189328671063342751270563723229460049904973582463405397490141455664679441655741902576971729688031294144395121383604495708090526019452901717698173860222472017303361418143502284063906336040986206269996919744989138169352678307605541823553827683757940311715254479348740879116527341082539346098150845742701112629963606877245251253226189542453834468828755537286699960253863678973349901792076164303427483387070785571677870882372646232695864116119504891970164401348212627504645113234581020371373805150593395302320428375022576217631869134010150052253319349154734717094952356325722095347744959124790511154413584923076890656994787226669862559904859675278497205702622478943705131869074151993532203942212281201221754439116302991152618769554121549136293800676861408263816324764036134550736961395663309910924713250583028486706715853191705867263883337339137058458662087323671275902322817987727828457609374622018881018225851543976340108380576495362682530542334248428976153071222721768916695131972251904478102876212783783755168627338922699218436585680224038679888135987167456446659550252022015895237956344451315135947924167007135454246598797411773771564945199451862429351937104362113308493505296241522551480723897261407000024528105385822970062152369916284171355431199503505575235475329220310194932846135033085817587293717955514100206960261731443265670219372890782867614119964484280686556870092135394720533449856571451784764495456408449473702293121013017660849200730492534661771567743023867649088091387560699527729422661030545531258525208438531152558347212280967057805201593631535402255317886259099625523243649237741724134609088546105607398202245719993310522876676713940337622018146268913451093599499178811984630818535997815471500826378591081586076322998280616231279558257895404308037276632059353068240830519258875142592985191195510196115686130675811333586012348204439959779251059306152837273681787873778421106700876290855948688838446034800267869367293517360078716466941408375479476522202062361099565837973270157221678610578744991264437405271972609247371875659144470411789294632844051266468198840809847490545925808506575605877664442263110829758077941282346676509270912430673669290911267451025278701335214690990969167531737849916584872129411564062803070523279025412622331234776835715370742457582386844933045514446893965015475000497039745090827342092912755222826250748487635944231312877216977649322410598161060774227392680779466154018710985491324346524409857982372213076903671521070613554459665675444633164800362302743379900670710834941074191481300230419338480355548518667969727613575625524778576484543024954537745719077868617592485851804667091975478309730770711523132754046545233291045754638578752325342396892468615870777300912085547448746871589585765438803543862543359694852070528975744918211350776602019443979044763920302616430637571516472988133757047087086179521217100623183066009378211801211273645741638673723989085629367246522796983971076308129449718815572852645202145938689829080428273440779829912239788901774929563190304755959393972454858865176167209063787151717141644345753779080821381809920219949743503818401446741603869002997182951523760161327411717226181988886010457394606496942902930708711810309340566315937870629620797432039816757772301639492109680279068618192407797851053641633795009633462955252806685351616137140824547476065244789379795527560465523305081035498117996973090685476147006953808188020539542397838681349947671641410978378587062276294064867725165101668258111919469797003271000686603527885473371796906014752542832943419688750867217331191065391320096253508514707475120402752416684707057275306778895104130148708830834117180320947464792851831171862454314497400511767348314962266097125197203230815816413835075875082113430732031107272156391384164782101501601238271975645162512291348150598439905189894797787454915758729117984804130162846643223367421306949056011165626420832440069751588565643972346345188580011497793925712243803850253558427860656758939431931149439411109080279646262117130997477989735533208077159555852557247417794343601772007448338735324465963015511256803150927837894692859105250514853600596962886118326020689269351512025721112633849985422677331727158552922014335394857112433529899039935462481907197742307288999133199148720475588824126629133168339547538615647815459986158674006799442180775170037808050892777201785752060332834959519753353929372502796263377377104131011998913797979056736450900173906041910294987136549089385706754788445234654744249371594733983652984361746846500326061650671895295581118578497970246728569492487743722158927750309043854616472546843642193746050299946040207401469064453810058453896795138556973189277797942709882015826936872572641580470695832657174440995285729229451031381644859198845722084450762125623968484484957864735206698294676344023074391361187669199056128606462478980841077635280734377497216558501835837645258648853001562092704620300921985552913737393919011849217224800794006418249614958829883952654079466572664278363166620432231968319372784828899684712843416368286745162735963148365068875810174555629737805174494621050716325039976778400554597349885366860042494855850951190114141889056509068352948294836178853975447243606320123778591199318010925542985442390689871212375242028696727042167450480595505797405180492819149314806565416589444806656188380257555069639458816337091242994201697408189716652554887215830291815263745146186538172697223258809598971884547251215982840165541652047908935932751525663116389660733064905694377159933504831019748921405607168302432062896649840195543864152514227111721936242718823498015031825951250444056043235966026140670414772361856249541168430613819795029247062784190393138241321621543650284540826768833900868586146552360736197145021211383735947051891214119311314723430287413795046615342467570233250611872386311741305525074253958935210424905318059133927168573700617882689183712946358846997223333641850493033309183297046825610793401029023479468640020323231263020852764854267277820505447168158733907748071139584072645264192081921208423402413261599582970901819070681140466798116834638728014427406514759530721268426500939233354133028845132575399075244223739657824282547414293581088366629233651924154192394668134866485458777192116764893830226105182961945081430640433403915138370887642406149886293392225306101798179894603445800122466205649289095561395819215112609899525186732521988037808338620846935219771324539710813591979607989514836363721406317795662163615576321733142797730735426702153965232112366824918803049690932950183701725093466729038941377957376650133090474745594446834676630112541124588278205967605691056236011793990640348508358299207702229468565231255133308081799159595113779823975243494203252743262806425678461616495012414565328300465107641184002116387134045163150920716749544205700610907957706918742164681170648704462550752776767285059356271135725055117654751770989990990154596004542538096826917545750505376993691129393626670926411933962914260532707699652440654829053719882893075255237806225695232434616937209920490395088388325346937405287918550435225753856522399901754336180942892114006070357010190647091957856544122120198077444585387035325479780311690346303566326866445356313694244086109779932956683332575343142198946298606543422499770439614726522111304635765164034881901290020288574155071499444731186813829682843400537598900916054648937735197892910368638945399015196884510741635900318889362480146544049764573480529987045678747426086749903838043263085335532665309391685232100113122368038846440600429246198643597513146505862947934477353448623065058868342348977004091562637882526414646518456675813673734334681515810491911314224421291931501242424511234743569475561169761913978355371637349501210968607563480296464353881250570984757703571154687306892894111674005159333826849980720873589114782143006284267269171059002887042364183990830683477160131967533796872969208614610855623005809350767842525892149450959676202755886644449170264304356058209580470256552605483338900512122586042752649786651483400844367050605883169769203001740708041275313157514056043503340322850238988546972863609004529051118752367621389326397603596770151896515439722593610825814755153650429531153478050331162669075720111602466352918974744378609706488742177593710518080101241448916935087795241147596331114075716533511986386853595097583333149753105675148776934486560249049952932509258405003754274591816367006192826217982997824851237074317021221297519241038274429005533938464950251923553657581008840997628829695959758492652972351109440646500915785944074881934433111707970957905486140642120497998494659679360486108102172770464070331397493784674174584214617494485909543442861056952818295166785919328388455260204597679110080350586314921479456728883427304176879126427515012292102875792323237477510100951793780489027771072310262183992233637353863558321279738018524400761789527014848062171169070258007454575358393104290543412616342846948477340166035953574977814700621396688551256510296319567015565342062031869457666406407338735191525407942977671796209231566202681887066519222799933018242111350789311697620702167398297040769790311671384254851970661123993179438406998730482129478732393707719639082416736667515077996214466665565398744717752657243619163233587652705071012894926660146342494396618815233136829374096248475748025364711644205466171662583100259586483286718058390621844767453167413742930721028774957757601470654986877312597885693015275506895377436779986982673668854119012935562431717103943694832194276374213094517105062534295239767604996975901533468366147623509825443055285719269032034277758648357076011080433243495729262150538120311432752814859712653738560151605998228565564720040482633510236339797371781022538953047065860738760657675214693034476190058582546637533037447311912150073803618799814626572642066601794974819255078830667495401000889984962644002132153230836123947221669393408316503061027172175192232021335403587274979185536088296669218837143302855962683407231058351741833907277416523159213830541236239116011939935925860889786471831870774063275025928988929955908623111222665330901005740955503561875106269715607227718456003172059971800077913149574206703409560927956090002575254959941033572048384693249852686354165690870569499858054037443826008971638956051053778379386359614094709444168797488497798372289528912039685359738600122874012464088735220997783049343675458477743677873482072631071195139805751117066369865872145068611256744935238683701633811035311888841302649491469676818314875657900839829847533624761357346609288935939933397895920528871949235511808681515644795296581645599878410023023692458291819067678173919686026086506426285874883833711450049650053383448911598511088761135273195065685401840471219935128007529462326163629588073237788837210391729728008416868017741711705958289050849051914635905428438071569732591780533586094184206670940125441282639337541965466590962150082820719107292658075364850221385200144069960982317789722871068492821187340970675266304458452862728393421257507094112160625793344365229754300299258033313081296453705990703745891523622673504906962572071076806563232042069178921319836338154236705961747094860780241814456287512822295716528652263481122575575326759763826143889529855725813550510299771295597759438125961416516163436959124838288087313724572026387394266818132979903888990948434878269629145936348854323041798976613017568651630026977721021651578862235590756936645298933145641248635184711832623162139283469187113152887427898903173413370571645916533603611905324899337598461087660430899923574348651535124237101947866952224359784426838788163266058537647510313904535613617531011982445900486135299906689932464616219222673355250344824390442660916571994241662415949728764325946240812936815415873332875404614262266064254609459295107713090366863957833685234418977986739588942980789623375505933228945094539159373170902220267559791516444817367768943508131660833887893018419085611944509298290861366911688141780238474246011677831378750499795599876206191205162480152247376726042663383923916609056646347254782386569652043378890996380617851994506078654032169022575778660994236993549635276190737887117179182593155670815377670624661114299969820652658933198984302640914101593018661992870431339002187994097846978093865171645045498035728073856802456992084711886571493161206357381699307270967639473836407721046001979700554010915880809907409351754067409410444187000388123327622318489832834637751528160881270405996438105891409403221715548200084328348772356394332057477451154684287567138029900125486485093625166769063033917169842721575870669754132026260361114298038816456538900616877655454606562498547286266775880663245559475995199794435207434121034444337932796832316564570394399237782253375414109158965514881703972066049096959692917584222501877377261565330504106455477434103020166783314000309306256996046213261631875426271107151052470459731837164656159248346774155274245897751670177024974771999670106140770443372284447051054067381160505553072978466349793295128799478310217877271490858518907744120255985175048741621296991739641150763660976169570364708129078542558008285724861732843410660248358691306201193377478848227401232824036276521899900121779229221454789805499996679252594273466131104461722682963508815563780325259149683237813208127703976200283804223521179372757048972839439562341501241004833234783181531048503420455104278169760351631893664479609237921776234779202101760966853369077778632056426866935612838774182193926163744035916523266966176552733347250724119353055456370370629215940744016822287217229570382704980687145384834691417980372613221151773569987749849066701751061906769886815579849831538486664578338662501155190304571566627265509029226989712953580075715283956922125537106920509504721134426584410567619464030874759025683049087071490002317010559368505323796610588166582659726503423820330232346575282750402253813283967927177015864376720350660530593027300986862969696805174253644585778958358673521539001615474836794204573216388721746725975545377566086230323277112444986250757636267527246082813844562114912597497207019446750626244787060785938509707475267496696251911788524465295915468815571260196932886685857746263299759617303117286603452960722492270920455366273690317421383107296025546884432698606056792729501070439532114006598174096199171291723196165188448008634582569391223601753774120521456549938516866069892061588912406852182697881438308006752673178861906623834412662147356442674280404249979117822175363513866624115316609256932674852615334536775002452590708543700302138752633459812094774863482311502682958360554674492788160295488142896699101748157309102011228972012924601508248440367369627916600853924886813462711840176634867942620905222791793013508803544567590787338400443776833221961947428127518721539105607137472627177489170849243098511015680650368612818352923918906176377159887993172805815249345845660641955642858335260338077227556506480775668407912166569579620409534060106249156103531976212291625707787784232504816946206021784789720881868441814381144334471078159139755557689472316324768036466376791089420881522772630251785827689251205810047351923684477102511784705216685937502736492896484452921455534926178973312532578753338560983191449517834552407001805525182274506758598305651022580905309364408690621191859514485981980364064313499989831337242354420575505229086606232758801962488262615023168903503037345649304119054353959050972674664275038842626831217206812435256386584998936573133735182786830163590214506443597409449439276183888730505947111789995109060971030277527661480141009528510665279181781185940469607079608587529977308889910106755111843332724643175854060916965245230925502191587912774269943501023782055559965178874297693990309963242412161384832539110520720791176799433454473748125250030648923539343252343288482757910464038682502794150929786587555720121732004042157888544182872486237466569098619069717354823833809144453343878943244727178916378826666184540602421139777083172572271562500264547081073732596272683921651089547917348209589622193243719137839752970198381236277686832108234379475011232391513359945796154426230528205721273822448198259053630715694829315024458281830495374663116941892991580080016002143409272455207286886151357977842972383759917720094177203354354472389658889385754940565169112372471607423155173170143326744964230797144779915121593101748019535185508056011211336436328894998383657623378201828761857299379367272141727701489015751608813352696791225577500985282777780290735643176356449971121093451165470286201351734322205505069677219799737584479203798529951563712042063600004617388715645902127329779022665851853862929323598088418839296952179348926006832098851528005899231882973863463767256187406839208222524555762734008379334243642413354302645843762816799524498240820980448488560464931657705886860254879226265309081932925583088680117473857876749610067763441224578720198455257562448882047708819420223589522934452716008628514269507125985102304942537879336801905597148703030615218942765559986663254898069926059983795194427724568185555994726287030306849156501556217182038359288920089946610928400217184231487627575991990197441062717617965332711681376329473390938775900015202337784380499068487411533432889290993596206145371157424192669244369957954212499786047257818676164571120105033701892343193706150089807193722310987174696570646877582404642578389209028566484181913144094946583888349140201704520268334878739858432038951208885823254217050318119668516810684727026618435925059150305955212754323989033746314161172113531285776079934045227669719187535893972004002517852446906718969991182026993648528105912016850130429007735469784011940007740631347718062052711050283861437786051126845180238694728566069998869841308799092919708791494785844293648929723596199015915431857167287241804109253403958616962253052798488734408286746015505591398576225289014006465336244369416956779770053147046079125575825372894466998872330924432620094613256585643270059102290281059035456411355236445253846402105661337026048630999327361937455437188371916281304192791783807501920249355553168307909600218779713426877104066260149016759966613919623852973506187450032934738543637756969503725552894028019469420196319600811874778563553894992381060929855846392394858413974529395101661724002529365836476705601445381394044580289931289220445075357091685186852318619526831976414580809390137911065929939228364481239773021168470792296520759178113854410253087513248522346605540548189391441552201467925435019039101694842110841519111986590476193729687068005185751128576212330196048585957785879705875640596976895060930957700255619245324223920911961925718950949396091207101605289139211425892883249962572346795980589993065012701259135094100593837743144221304471369065810402247727682458918511565330781316231515416032719365530207335905296313727635492398818928761363048803888434337232861414642959980289401196515488326170324496932447594784757509518450226974293471677707825560339475406121029979783675335212038321972437532080564139867394370192836871220523451789283686388649587164138639890400144865090523695092304040000957643396404315582151939407162420945975549304352545664880227899897339479918618203854130489362882732249479574357636192799384726018571328367592105753822158983108900795464756417265316971762319815259331348234897301638004539663392963677497151371708898233827058650888203620480045124958641694390024748986234728580355527565402554527030525679416904397697037147200484391877784107758643508856854583259094187676561610905072334167036095675414658004551605750949369560373595027991664762439414884642411618245800925591167301898863979092366335248123984913612235318290888305386007166562206139513419782723249219938406054148969030812781286246444025960559040159033123010607326129635669072755560338599897188340292636496625785626883562898095572623063984653168644497954189992389571737022742902196048240496426259592736547432206283444098686843350498457117162712050473910478706373015718198538760689790848383985918619867849684108141830820540465673621227610334777651237009078481164579384988286405325713185922948989210670356124436364219916160833425005198307259160022744719136658637996248585137603902016851714964616468217417146245906152683166981100614893370159881943807434406909706458445632807668654368573381563932488453258462221840585087452844260498351249061607254144580714586114789139798492715738582575942185543287477884332900571291883072910714221041371057787108271207103528872682813217745520454340560866826452718146612495943789880061791973499899377456840185711777852038674144704278606492962833942576542186825390388078748865626302841034630782859863550745700686720952321146477074594334234752997525687196346153190926393657763493830983702322620432397208428972883474820588717607550911250292299007534880541049646618765416271394895506205280225018361842054169746018666675782970220020830780640705835201837422784254172383951506922667056165353044626580482445704517657526013282456310955609204024086131246671512724650507542418556205994476216334059861704971235797261873300255921986427536171029907277283002552021406084457667041169757184715708843101493262423671713075924755884182572127177754848353468038834851963204682386943024729481335130954120096765849601099058269560060128867733268366649544077417632812072082207207761038572929400124671310972015435623319301705738766171201088549009693286719372307571992775411381789428636367696559391684269663685033769081056291305296109944029325550223356152808712511366099292544567022448721132682930116350915369985923923639010208933915007621585483845030699571148771521558049520982976431169270752996820050757977790348603240942265633661305796571970977688095848587430686456746084486247036507855892314186791968050092403351015456638447261905256194274903000419754219241538822347298303284197589136905362390455258358968685230610261726100318241662492167139387914622041900853926110796376078061025653642001195652187565969437558940778985145219371079006313166605381297069042377259190978568222510367445474000572874315538280966351653910176117768273903048183538500153654691477693933138376253141377344057903993603881409042033018622405851519387580076116398624877967260783443413519468006665352580371940824506025643760617331404578098091695559528027924348140559322220405981321723027723757008473903665162178954253401385947482248770561736416613249159868653722992193183730429009668998197622469080093904559795207430813005017203553784994962847825899292513078401099550719295839665345811415614940000518818746155816200961912607636341033173817174928831439508822741777664813525987709377777245437338246766220655821957775057746217855724092837471914926796380736383122047283083167468583646120676688077981940966756059985297518585208874402399838634934500768298922504448456679751354054446652812176000435473506045986687701486517200568627588356258696823362927442678195272414646075256799748726743444098451848073447698433858784922597504899319416756216290485110587503334147710471840939591050283031656401197256725949632070587673474707240539267903210199226146682773031945177549607116833819221450228555836104884753085105949237751368560868359978015606705397562342145167867681666349666250494547588684234177802914243272158696783327218519985728152808221429756265008671009645743626576068053971742082538709231664087924163349426976918070301348697659034726976305005658819351918002020905737114424580049835642438060867333422013492784405931684527977650648952169305525082506577145320427130126708119816076725405236876853138366367499023059063750706999574755923192116231239959986811484818114019435812897334269592450094229636662672829307743404108792372595123362958810080450397394623271214204759568139673507142123399778535321634495146825513043200913232770585655043025653066353789041691997303066101400803576279143358470926874178196716920044076022619916672594994798448514890998056408188356604313626351138692874298575226499247011959730420446707731984819680576071689025383894286499589573245698530197808920159132612191816104838151940472575190610783493806178003216305132697842290091800317831042291968434520611324518971205165641036275107550395930842916813363159968734946650367727805799454021526015492275370294063946162209545136998118714152650505522387200481331606255802537399060337014469078562301081844334384008854402840172036125121066506389325597110847262543524175635481857918263050779227627845070808458034239740277478594601878303063667834624266756048541018633944091366144210830412107969917469320483552610216799990271007449784625070972832009466485431234991814980977265391484798972185981834836493688206107298098447797516445092657895496591464231990714219047215576577432269678213192521212831995168229699377911049057925515032663877486739750494866097213492407383589992263352024455191748599796630423378626269296190215586233244291074931309797076148181632458955037972015228472021877005919697157949649908679308061176163103250310939457464843683375461480089942414132999104139850325916606783857064943621649386747594112916650429754342755198963271623850938380450080938632960924755637415763194307772442185418511143044074524464749904570179452631377696325221170506369385952979971003191681005804896841631271606272873162128423167578781129232738993290781558890594382459403320925711793218142306093361306071085150935716375915238396323402195418254260731775905297781141667715854534820140741681260578801409949150022350836779141524706349618415482231445097174044214170939590620263437930199529777211703731065346467210831801890399817610944698799439083756771810103254460443429144531773948869061760408792982622059518184734138591537611594177957254921304726452721198094100614445782334472049371699871689289702016263115959379958922153647309981894350485498654645123998388935545566377664308721945396966043686636256466322145091925716837996949249699290583488092766721974818186727731070753403228435853613754532923792475887260631508614628983596081139602792276696896978183275671906355544026695582963376034254581254334667079922678011754419998964056673222712652762506805558990945530642975265783320531590212430475977688703190992967793302498783959738041851224454725341384167221964242439899933100779365637865956208977794363673020672264264202843004256799018124247317132161137913402958299814553799173179758942684560330782097057033182917371218098486828384122964472701951568586249303374156574082144639828402115010659707167761323566220358444610563501314598132407108477868332463623055001612527691654530591372576391185140556624622209802473151813817814661305064554815386613164602849719385673651881407968642784192913565855249412381040372824095653898188352892999647753066286787040369054706669125962629421718751715003717134324318844338834780894797639733371588045988892856936638665089626525759783694573828251880818234513404150574459579235157092493323671017628325164352743936522361870030538381348949479957423308509328321434560996527818054737469136457178538486501258150420597720706818818972813700013563697726538222120495006664871582864406294144685478407649453214961297045806593363928466946951463470901128757345144988118111558273863541549820634070645985292409320640550732044363657209948766555293872767655204894764655031526679624745547837454913073848007771004838876597152318979497155703287583515509497615292738030735902513424746328470780231797939034499872143105845862125513545164476847996838342949444940904801050021605579149374715872809751554918691796903326104949926198195957438283167963274675179746522225828075982077490792646010078038738422014158307532374812733498821504156480404568891036810719455057972584967948514001782611523241526229255340693659217595994751590526621411078413233715709631935770355147601470447755037056874188612657446161244375707418912706895437743895250718453974434591357768727161794188474635495291898103548605616117731500125936150167637847930844111955728957611539682423690029076310230838731577684147337568017416304429595609593130717202185277722977425695007257250195224527427961649878924694302869319380562757996716842019943951720237746783097545987060236254345071509957556851499284539473497864478521892579704043342715559417807486090782131660617223368439671752409417214671399265381053850037614304071646365296621134234294373135017743344531048318299717001867587485192254803446757785847067956805856364240229263963902822144276892348017586806700766657318963369588322962908934232373711613930062429156945155681001100875531236047667323972981291646678424676963813899487261236514672093332924838910488806637083061159149808075962584985228276091479547559105075189410845386077082785877452515924416615361185887420538779316064882285804402351376484603963398561144232908063186782272544939368482774436964373434163845707391426188085875279337165244169791879281433758633990986585361379265860609724445625141257055048928521230993527321604989279924831934144004845865184982645453963288620164111107145283943223334178761639177633894852816111959044973250736724844828851674154383954609954434771364208105646458618685157321783626942580214093598871247787824698902067892709415559720406547726073252369140614393654324636207939499296527319378689727471581186294943070192247299482177728236974394185305274331614585427164526965733648874220650792733429786082262429791306222464305699898704514966448337638379178279626223715788609336702902308744844143107283058830816715702939444476050862231570955144056377693731782258402486159269305972531603347394627690769905035841441937548520752710648199211925868925397915645394291655727470559716622691743725945935184117871635504567977751007631973628829676416190911787160223943141652920005927655112502250829819941082417424107833228256023699601444636668117023476242528977194962177269676142759816916772549716640381458280115886139710396558949513717433583445880351953600138660589754138017748999912487449582687416871062021823905826595834752304408137157960888834626399044089867123895128518348885544894305401187854605941651755166945963145686684006614395098014114029383319616660564455011463731520978193057744744280163870001080413753803407616863958351459468873848901628822741004271234076761958432780472459520447787765899430329608470393252718570190545305429467173822000741889987863557998201120742829194882842407679285423941119010061906918025101148124217825993003938734523048610486365322357766470859910420912088241517310616360873617222481115656344459755948090279867690959764017819045776759407615795626882939272164318549747156062372381987012483531837701447660124232838978831540323541667931849615728910532129888179501314210319056526519843926607483257306424982899560772972878566707851173559966512632059352347341977534364127213523937225203495809922682152645870530579262381200693469763850440902635948673301509666261878878020895597906758653189947952950278391723071321556677316700079258852048240318557814080908421003011902804518447274369122673124849822089395075758753392854463391797894300750531038799527697170846421891852360993358960217150286962121779602279236008791661185378288212797486280903101342918840805391231593533206286188695758225233256708419918036839943989676379550075821947289860316384421909523856781890363006787543964591777158026718062273282858138689015341945115275879052359990768043991206960262604050416333532950772447156486401415777456637562724816752462874941211917552644995746334194787031982781468631859077421021404381160750024347081262986353495037117105936238448612671129380620148639984517887268811697075459161413860527164108433718388327526685232774005341052774266158784789756896799891653298569254947320358751812947278801142873575250756739905568523441911643123912088421291528742312464402325041337905834525523394514162786298729376205305026271930158637003678431328702557802929605715239123507192522903212078598200282024762577591787846112143892274502555082965718851343401312239036053186948458972650050638341265511989109841367532772945691788849759968840974927023926100934680577106022328770745246037515723409626458494861105823827366835032911434720507350488691732945211559898933452974829022397045591999537638129569947192920812324820090737421598700570008045125102615566736115353223780789941354819210316532311494066474210574733694342755259502549712497524042241735736638111253864308283152199964747617944764698045386737724777526203741300037423019801293293397456715619523225103884976938639542044535597225020960792903559384553209718364047842922023352982093704935064986082460153032688146543988883323036326550025124186953750130473333621022296000590359507880873336575086404552647443745411730022537076939323148506368260733596706064160020550907406731460980849699178573295611858178304913740429024161857104020226824402440126732214227983711772559612470408289257754447739702065549380012364257017733855974822593102817039320696597513424512740282073070946758183510444148552720157332332524253654204122859599624961074673541553910118805123432503038786527708204157037980397450269437155613137903545870271953215210948754666649374073602838344854557466110625568700253382270198824005064142070707746218245247211753250351497895392010438453362700916805118270082702514044505512520216918136012700839035556281114690130695250860743257577292508059278590748521771355516740214833080646207065152558234008166237979218174527585526186421851331824920865987235688501890832538434712011421904994718463613905529037817893356714820352451968684900002444811861531133837356387832165420714514435296453669230802106161323969734088436958148271721608032006698625263419640309899844797258915307640349007107514571190833271879034486096067995175678356131018178133244325792474897167816216396069037679216974404644962436941040861377178370639116917485840271046269324354067576753313188109427599382724624596184185907317898012631073981794111492640020902843950887337644406844862228234438855580647450710627905519584723815034888948251937477440610757701057763880317826174100629214669024141979413036211626485282570686935882378322372698163639562167042820305833403278456329243467470541383433285067706044823456460013998702267696683731106007043829666342193928022880238095049894025290754586990217373969322453843986396927974855705853009552749779611915356772171434236395189338236115998879348472803273712158066866009166243069584540201928026888941635716908231257172808047937378376975421432715949115324109372644414244607566342912943342705457546432508648116741525486297584901078451090984217662587433188399468420437119703434774060914920561115024122720000795342678117055738112148389648188831682517928647808455579944704296659686979538565555796757742263291633363119457234970971357283993809620243573470325696900228876994107081334148786912912874935169443218972370906245324962508353068879714297733007371293747573393666973691608441468185184282504892999129025317367627920081121944336103092747698971135156310772429970305548740405953450635082907784743794181064266265298326501449493870269298597404845247126553595776469943619655245069053761048218693747084091435336988152415468454521942192662417559709313687242940981513972650515096696798993742049187413881935016593504246456778702052818228821803331485570506791691241570650473899124402620905207684188636631763087720158771633973285311754147311103348815951915508463950161697852439890754885575150368151279803841365387272619393368721235245203563300663008549476756942686165298618065050358109208084850839393724007871851781947895459669957257475510508632505756882464274423853107072544598119169533790470223901560523928763414138811667331632190517290609870917713903043428803292793332507702578557384326297509224730743411001345061155652319982551359493292962269365200116353300008772971704251035365003431358911013315364190897014065878042691126451247504330485846177824444627569587634318498448251874096777618824285633704659347066976469069152034840768925572251642603026900679636968356544517149063598374877569147602663760087583769917668273555582119706771628571656488191962020405305132789682948953939552519256160094356524098974986769200484105774816141413632570051981752210746265752785969286001726210761025804723249556149564607632802332064118893256698051993475647413596674737811357492708229712306583093472322203095376040618752335862432386159918306893483751110971939667200796155032020602977436585317693107019132351494258644360633385592921674817750143415903467150138638680148603100733638930312162739106909357497002095593117342387556486910206478464478206357483966993279508408783190223871637799263556371000413085084140997900317316921465110508676066989676437213356498279615228417405117431324351675071592823357132841876565204905567780848889954512821825706160764941611890903600956800759290732038701914904388034931148063024463747587336393434343076635352127277247138855139450775983529704832170650634199696098004366045482336145700130185008598808945850897800743560926996935379978767847331459833368342317914855173622518434849449533684949816121790765603285830877271083722217480071749892258073197229830479117482253105097247943806085835598225759620561673465147304017280920735697949652939095371334339669970256448350660437269624544585775863091038642102044811985048507859011896677917535248629572946097946387828299755246509578374102664965945969088031506184846762996924713022559420289178782194289133906361212555870539335388782488839691747195514713679391507913119577711673092091808923508888561860752684420955496208716051001068703435560295119467961285646588508139334652697406174808446507325013135714351957507621441593422765231981434899646388881569618623484345461944781891251345657738070662401891821923935661614049195555686457735676050281866345349259201291892913403590886491613268981615483978720355347356147508349788914393571420348612885074184147020153877722074841266217141511117879700151321810591478719869656448315539565242774537443526214013236413800008982170138207728106387723223825536896365546517518933713059301967260784029848466432333207886348191090245317356060239233808355581536247771278037263103540241454353155787626398707689582599297985482321625585772855074840099414271174110592821356854833821419915056621136249092170427002952022374866693451881952095587846870665357708805192186469435468889495582027582410057148054940048290825886763614353458199812693814440223765470399071359013603216224076850108242927558202415975083644814704724869625982003344284419347323443993580885080445911789565104932688541335580623148356943873329088230365051825267356975835288170260509660959924303691302186942765928154702307673006707573820622101534807696203018308764881754468317499747512295184845803965027717049363232261330180382883355252333686981176268159523217161117193821793129914100335095015434540551280121050166193486779705272332373468903396569346768681177401130642413057544332475233426326249784522636543321970982057302918387360052182435406773239170499262063109164491219327958685191786194894997706561215348768544661747188593015555807451229681741265745859545254773875730071611068968666058192311863959867472579223034833646116440618732956367956686304105165782908518043885662511013223460627742261808954161584839721357554306327340766125972779181127630921747355969036389716007919079512608712549440093953670486971351704589973631049703833943254412881883452049693314906721142885644859637060298457145495272442288107688335545781309764455488888553712100783518528076290741159036172022485956713592814064545665904190266781390074530268365531897053653148329326332731396353783884785728890318041064418035523974901790342926979358230020378713337936557117848530643128381395734019239447007568987147961123551618139672120444238772356201492670029043710661255259149171361561467555175163902624886058189082508601164076285569531926887975714551909881292576209554841216798351653373641835159796721626860656202330038532434980284556230195583580290858615933885070419931935882939144114868830367156067889079236984982922599130447167213555325325677105986696055688918754390614780582201573893313553874572590474439400472726277153259463805389439959827532610102321737017532603207979639709390776030115863493920605186065032161594230697287806760690540259164881513300571961980254169140075983441605618367388990325446703471795482868381290215502298887335558583501571714357104108374251751433028089583299296342665072499023209526881113162543880921471965273377162471925193656950754554937187273592258703112687789315948427669851966077144764395171122927103559040473612039031654485904733698147486192994782258339735814254646766409328098437631776442987398717170865075139459435957844492685576825532768585880937221614701760758412383164351525746837207697253332707437511811392574392052928142035412498482305188519002108199092189382801560991745679785712134677629894111231351734091299462523804158412798993127869222444382635868338668342265320129244691909443101240194097435632660729188290314509535721571319263869534966919068491043720413991950565858010871997853707016943982201334259804529459480783368220858432322973643880068845573401698016048522119739673767065819451587629080021525012513805101807931050758092790978568177392298142666858302700793804686150361371293706931823329305708395478479826568103072322056723393926291573662700576950397341739605622079450230176162644434816492584349640796203103118089072112062619504239976946169126482780987436344613958462863148315425545145179000954921363846305838868179441401990215586271140857351483273660528219557713017916471823954416774298895240036556695197145048321447231736099200859735882337672879451504147168461229551987129198001936944630627827194496476330145370789050645022096570904942327678595160454245615270638522816269682572297607504420241121845614042173283035607401488911522995540324119060651547223467090582285533048635509490769169432378730237570403187165206275840398538589055706703863699319527862728547055794165118441626653236781541889064373073142273170586405503695981011309380132175857522761280274881945122325474995460943861332533421048436907378016272032283002624449923254259726762406097536575415320664534231910855558066299399103123937284799584143994603618134308517702357552529569006509000461068774700345776481780487109848300152974946135775178918973168297179368284165713163876419153322614561240423066456667855949556278905379143347052391226238024981118487653362004549331535419625408170697216508416010548207238372611132656073225941820044605929344266328187298373239082714992726635382416228555030622241557365961295703129766868396240158287187388153333590257157657615220222101328799714572930014567359242357348492755542802156882370394957666428526002959104027279113810003148856589685836095032736693236617803431923768406750017919619572660445774008155463313935360785668576709141626661058105127013541460653021915216645073512461533690988523368049297164970675998905126407683638014321648342624459242621363612179551854607644315860167428329622634353882642278824212391458971756829763912252699284530493033161456088752230468160296160200299466607006753755994043415163926782450648893910829332296048030997769880764061150774807273674881840151297058579538505287434501026598495676386740398485683625050418289681468213632900558506174667333985386750036518767144166820202784249891399723367108561238589944950977883029308642502573885620553143231996068564065783633305605735168926003457931472150202765276328850422074616327537713231109677531299646703186427221636570947188426556597243884635627240907041103966607134523726367361749292843646544235199463953386652083558382309639882486986882726984800745248926506149854790350859652568753429850585400426605510889370978176423026509736521710334105080867294329336001474779559090719128544855776437542638530932749458041195769717593033871815237181503739609976166238606827886490363144445000314771310980573024697371485418714760824900789191953847113914302124668964267101590647560386480439744931169760330794108611040137333470894540269179160509833389100495110438262333871421433258923889121918721489785832380910062019128427308318910527597497138401595184553123715262120570571221936739493683342256245414542643046399420746696293517599776509766369330768162375885912999993886557479780225533302981163912546001224543456786254448099153032219442876103397114270241545931777337025732730891436869024321261612255093979703439429884074317734245216355764372805874147197910191444648167851496120554215698445157277362085395281766158687550668706886713459133202267774937336601391625626702531459383585405282054190907284130314297494046716422642088171138786107865318643420389586487779802195659124717004629655925345363682050767780964088562318006343149640820968399549649415141397279444078182944862677536923702269230995859888694683065398913748073324442991293938802037602405258937644285739344390885345788643427169570324665744280848598424615648051308337548534595122989850962137427722385317828229505058684619792952380915947499577352054313137584863102455993739520780595395711348431464633979846897745728425561050808815152649941429457126254629110795714472019667637984865896066649226676350238226771863688094310122342767080737927057945869717930172334163521945328955316431203358153713580225965952671528910720035547515853583942614798281330310229916278923232811233089574948079636080468064335164411673816258832421973101561660262913255554790023283134109195602252907445674263975646914007962358732222644338567044721206424041707408570372052808985516877224050451871477267331412920577378200744460149315195858233596112524828304208404714889001182063608021535678809253459622040023310635450291634732256561926061371289472794271389051353638517007838316223876798960582924747396227272852560204932917963848754731168927869049364133772602053706593594782129344623122340392108669228229272555604267130885671615273373313485630948663063345935367824861014702616757946351119411373967015764934015654361881498259510619397887212775024952507558761062979065557007951518926473114177840508456493011145459903926637695675871303918455723332429797143278137749417599619216535315318563702638182348694782311173495332943584089528779249131976137483102705887473990265203907047337969626293422075158933530938777100436082399668652322655291842164025268360274585671742955355596727276185493437748487350701895122434411168371914318100132033837502783609625640552268494599973246876305294526756252463233472873813077256302203358176171694216536642199299473832955538084222499132422603307237836666690571142413446678102607137318599576124946195326722769236655004296737237264702757915877806020060242987468985651136923150427933947653375751106820660092378859241960224314206787360857672710781988843334433655987513930397033334640962016907228590765803713797117798319164054753727878992858175202771205950414606723143071385778372457859566595393806283190678744423882464482577021117938368060517082365734370377142813948159629703376816112912582896549864595088312218538512285315955776472054012086282965435705937794817767058410224022407097700894928249664713088524877454064376514372320863586849862543704647429836384335583484593533856599109748747821085850651807642664563252063291010253890971612652096687066043579989341036064291923169669008830368193001388040444465138231525799349631108641997039609396504620139167854409069357220702836326345816202640978204821818012726417115958492910070774848186773687543160419512012641345308442856702655115550531916940789237509737679819827411596715013881539845022040186847915908268266166410972508589456693779887052854636117847206170241532961063303929247341965108543732993385305931614379483953292725213215355957652181070762455665613806655930883674487404503817435326988711095734315421709093331135624319840348377310711234129656636888399067050692640204358472064742602404661853057779917691200361466241480123497699174384541686422119659421740196788576621599443155258100413374744872195582941306781515720750449846874047083224292727208308834249444183409191081851399771633721089339451456419656019455422259263485650842778833708042748845403426849647972365855671264527206204250728523318714405118538943556514750526658342052746387459951416871008598445982268062482831068981813956857412121014030981352580437183304441359153347142416593047333781893181030054555697806087761869329816721808564182488945081709793726845824726339227403836330067957840604290676409552156779727919394462717157729593821840453131356597427779531500841529160021627655534988921988516262381289422024611274496838828245420948699250646286069734187761482933873448611808793330093786741597194274436951361568069613180852843449992204087257345262990045023840256875519285654159159493338780028725340250587956835096576884605573342213797463463837533206855278104360094065564325309276446198280286003325221511086517465940486395979693710347902062835423497449504925917982951245424380412852218466776351168923596118778387925352189409113796474101805647873457353877550239229155854201814312030064981289298321023552027334077795959446007890865580911154733339641932727283782313033757282715688646506042822823464807265869206752043594466179536509434724113754868916007020636468081989146909877868191368596929589035864120671051961626210821874913450129762458554548517056272892364340841670428387327205513319070457211254192800624046433121844018266825800986490335354974498330510760459390081365825638316717054996621380266264045268647027011228823889072471024290687295323100399939278529206947738221594103671179756267114990302975294528264001651399756683222328812935296463186841786001932567646855923296904691665648516822625577316016016211244036482647507140157634067931315667296041093256615093792049729592412519307261402776287396555053172267911692908364843066478901805416829344622746495599989288639345445769623736068224831504644238512350909612106208698401222978776037009487612211534325130192057671888017416064725387565036801429151284063639831349795805123086272279619400108261206950955788953059199115720207332867099919298799611588518894776901701934103588813626960304795632516776572650308089384440124139340728893310276459423523228912405113163341581480096320220428897815106154530535342477371616649005463519508379202942758169757329526498740542120041188868883824405629170397767935556639502655068198958805474309506589054125203330064065273673294926410815647240103670706295994471731896489568905183551622289718758425205843770726417051564837733513251780730359576663340780778651370595341571433390449720288520185746968023338679286747085338490338650397624017550401926247720706167501405000092544700923958197441076824727513969587561397292878975556322095702155699421699159577674679993365522449991627302375300054510964823097982505409407623905595027049047399298471042361518254506032546750896367374595198944851901689570143063427022081810419624243798257285084750928844125231022908798857408770382019966115579316480461827558699790097284974325233898326074221831550490112079943075092883764315806271677158978682398329617219696017530410987253563501860111993453073742419943372771411533457260895382940600565015719069365074471531736773246406835388588980733597764072578241219040665440893539912348801319304921617988500454563218524102579088710857851573575281594818006182999483270645613352767005747874180770857235442291036169389140183462754740733360879272246016552009865941452248808089254733651183225009268354554044998899834627871328882901688675416135023253787512810065441899619119200824085449150033219931243724294953001638735795525773602627410730082779373767590268055587176961507490205394849726778980420729220991811087645204371995213753023853862264709951634861900537774736160117329637037447473285920940537389881474737648680913669960965645951877570645268442482360394841891168454865972302009583518467656475003340860349085979966374063042908734117478285436146015443200613541041462966614281753757084675218515658418231429372439219864591917657299353359679446850869550014285864041981054507665857044239695938878184410219288583808015480354298576368481675860899970043943541532824433557141782129887080536869817408964625624887525573891116896662822947546483606343995468020933678768042157135298455267819208831843442832221623071979700837127535090520808371992238442177064552828850735782225060745789162675310685600807909719327194333470647394307003737415345970843666090758512308224408399380841871954332695328785118053944670336968774768649737411801659507727237320477600349065738017321491532022193060175165517874322025667154450751547993477198306376411293044736322666819912169567801008836707207324630584210130523138593849528745126139494926169105560457163174134530466140278724433543247899371764030201454023227387713480940752855151203927621005496732577388092070910948538923616184081778309946776274371787214579688722876734980187361266395966473191177370087129797370463854823489228713191950334371339543660309051301064883456540278498634471009398417208713260577456599461935697544652667698834597517492766769210784963188427464655289232397368682383338245071256263152014719519466067630103329943117174747503606414641467318097503738870288597935464544375995019827773815382542497589221017246860904410375342433491151302193666736734329336615056458381489151415547543037922062677377537264761006971411472654952011167583023334288686159460132850308894910695755965446399789006445232404651180510494635437164044143170353074167590742555381942150457239900140974744203113648708732850633651977887374820939679797436975120241246120467859972816743862900691980404692806727784572622239762907201117521758138710219113812371374729946195463998959472900568076606633359844905392170820539253152074441197016723682107051046457125745115468954296436159417151030626973893142943734719327503426569024063408551603042281571823742150111638640935894733268712972315490551753423066768023298904845284622887921422940299989159625008910405603412428043587218740374571678355034961203708975984210887607806616871046423409967554407799455663485187716140148748056446287714512912816629349454489972840502834742370466652291006151806962241568615041983706810336309976730058323302103613625071823134495951113693844853547790222282727436901426393494693640525699566054903189549832379063863485875872393157709977841748897101325419227666406289464713877449764158865831769856461753042045732937119525353115483441430285828584961684619822121604861299087972148617606327838260017409021265167607486149354966465561015161476925742403754491806168897764642742220365715158676254148093102985540956662048035584303224866664647254060496912509482437578838661271455053849088134799356695672776984507224427142428797536789450049655702079253457325927948234335107444534374455975640799720799985238570430804052569378346957889591638127449830166849541809904933708640879893057103401409885048482009217469570841544774728518254626549808350390949738951138501064101844241218892495975199706600101859563679646920452463658721337651794304974720352840681957907227883640020444114205345752127989734861110601587151774471999876085172593372873471219066386096926548261047999230162463233447443710486518336030315500721190785846853950543550769210345763077110546487584648879173664525422678249811214528044791958473658256014932139138963139409856800243240549639086313416808100376565620735577976323533947967573948145830626847125336178273424436185156846801685499928948465178470878581965679374083973411913190567930543755144725894580792207447079673602448852613545251803402152842145418437964467408017121074796983863616947381883516746877974273072679939655082486617469429323735818400243806730335622532839301086679988389652218127476964660714420369528834949394286535297041888389085840570783197800517384034972390132981075454591037940638110068769028391195938689199321010873541674522001914144845442585215834705993590091681770647383818735876557085812007997449806369194519625955811688167746348908909940209945272796986712887096257821690110303611041474586300395693684444131157092706371326981750880746512691262553245488934677574604336917610306531156900986832183156040943139830344317959234034193696027055199332945592427015504514246885568278910379652435773816476427864287379383644550385195237182472146486741593042170285350476165010327825406423266962734069126941807074652144775152577573927924773376206319443531779301858260320757803825600885130960373290586148618332621640354040095056304301678024193307711161499608553108946350689570103680059620134415071803261179625519557078171297847092063348045940235162001657630540895286426993024404641088515620021709695857596451465069430987528236425184979945950650036458909378320850532628516489618780166513161763170202881180570364383042097430340798953419576437982680773736122691265617164628217506397519107272712680611732753024442589518570836685256711163995686784476525027481903452960502398881753868113718986587670351162110627336346614133208674773890552521172608408227194048940330223678151904946869410741585312052997458049681584033804056125305399747456583117016372622661741560971124098094185296749915084070306555943618461345955074153826948297855158377749600836794195568324188664576947496557506612790704600129289619117264045090887984398705084909909208027894670608009658265418488484817699982367926035960457190037303845644738150590939406262572669892331585730612942162321621641263559644994919702897557531838608307999364340194599975101345663919998079874102926268941742587089898417392667584124524459240804232849596456261680595917851909827979278163390653071914499783575697419232072517607405887121041394006484144740097132977682115260407253251854936682672984015522037890135417433511204167462551762522013937062594738895490156000130331814759921372395013288876900773511956955234692905857267016620474561844826613512230168970934592292464645557227860129833329493007437255099995373647513257309007307387215989018511463088690828354215786850285173645343505498220541265288240153440527852844608593999786849687580882688205652527855596498066674869937763107540118657883709764033574484372529972367278513957984089876137197731680765062039087588097479446110888486520948768421776706671940201655538974629606953738160451516628825986656476115476999258418633024312466298475739890936810129209546232397969505860424491766679413138074513216974632687658924806791698375160219140224062609297361089250263381786398637070547327868666750861053954507219736821337821122679598535202893672542399631467756613716565445018692772901559379816111243136562894088812772933737780524799358348082583836915030795968365964889799051342090634264510107151547198451035303000249633000393137183445358560124652534213726095250287874713444777075890260986862794316053056574192018439569022217864242343509245884387309510470194792036403098285986291131407927685512668170351474370688082994986111867653444440960614108250901240621764641607127222869002218015080376040864684983840559356759842666231246759244758691422403966150106912862039296923880298421010490349116441758369289964614699310789544326047348934751634047681292079996295008434421359656459260949852161645090838272077387169762509653457978557641203258220270977629756658262800010314597600161217604787543718939437454776862496883263886200714120057857436837623669769806829009202122813300475148561139386286314034212495328270448332154079732193737870409328086801598902585844470757305089913832495558970722195306903890014300013395384997865573844812399898904758310508849872708295220541139999942229306832088985780706958038306675699364597607036342005503767075298281970706465310123164267629906756778695159945675328247465932237567050555829739502307024353793811041985492182029670316771301649095319433094189738292428604979672491943060749904152193629610279800180810996319700287446399858629359865763210794721302349248268803271015123935355586154384406324084823149943040083706174140351229529807668429689319288047039328434377226235148448664664837169192414199492285685918804147360983278403007097107594115677727443536363827276242921910446835034020844002204008664193586859773836404517551240969231015808745344613988903686493120688650895370527638958874070194820328004928999807600589217251151794544637892174542689694929611222976828752194651954612736960235192170701941512056596278420773444602809380500754863212992518032939725501679420879710151094416222369744420008273166116255870882830917623314384383711186901933231291791605037458617317252941757858202830776229691214457631233597551483722999350345096741746983838912545480602825766518372341910379348977667002617207787335497761968568382273684980888651959825503764463552286305485295545362152571047347747185184012879286338413665099949867436895243084814757105397749984111930555893088366434320091350776424105357112656897259611808707003974693822861942127574111631847887901130133887631415406482361280325929011243221892324670973921224778377558393533889593824260255625789322266960979904414249661547141687011522793748699658141485907662547969322939163305444692617954106745780864882688331680568929067480071760341093297717174971776442810115375797252787347460751909781558691129055098052668692220882407379654531411026793479434024419737511685800503260100068709997537735596421506117823674847986872936814976748349563640477728234760813515915813391466637723085167873952951692395116370720549889850386247911513065613406321049416460186796811079300004067400482459883526371999834371522116185368438056707300637000045220014143729512906936860364815961395160963153684142373332634988023161415552338912721644325831903688566485881565221474786837904151281141132254493641864554878224959374521994982965635708461568107558467383821625935429024771908834270404066483060962610639214685354526649379108602673336511885161310500983960571398282028775203834293896477068867441328029347567011185267063953769321569118815074013698667905906732992045679579430330955327753369713722808059370364426087004318064962366737889215785170193370398090060879631662338662484187186085977675910482254272576411336712414957000525797269357969522292867096886245692175680650958140632711749660858485253572941542477658951242737268092115136424714143421309960559351101401579251912273301399233825611526840332022409631669740974330486553350610707194914235305418860574953262603881729029660444950661985192539876850281175269674299783137012932815401452922341581604539262396013786744868697667869184227754282046359949444001173192545117482212572071349022360482549976632435823729620223889785226247257171609668318445917908198711406144430576512533007833059103811218879757391776826856057778741697787099907351158013633074353619670470979164566834844647016071509588377624436125633826115585178348906281207994621008801682398308852258678172782280685676599446290172183778501508627279388577851717454106726173127228632996373253437927910602696807737830969390145074308001900101279198265682106678309609913312461879456819555952439292345919398551250105520363230783873863527821366864472736924836877346517292241957511241233752293695178816116319723135160868751812959152019139341110057118686702285207859388310716931231310494956217362532424581833266346975530951568346714253979793996815305369432458491725676509229142851219672733939458579689331897928121565571680114794996071503597120540361386575000650980168577690778883744560264725224659727526465392835600957369056913818955329789845124371773213984168608421571973851030377693643365199839821475438208900065218230541320665013322952547549890296414680636236967478388722329098517590195741307532096134976832191283525864011873269492061069677104013515377909833655736319939373621169968455902515884563448978007881362916963647112056779734782250791491384998648781491480880795646247837779844465378532445410405508206957290714256957420094438926875282551872780287227952514752097123898379290000334540722874408266956427770996305923014622894936253379125995644774028835359703659426691023769880566260629704073336375628462566231033809028755592544811847460281088076065388741012620823380606097794219243713554638217430069739347360442838612160326969178172065172042144403715621012812678029624326443982661272202297847125575538650144012570465099511339407982894304675513494777460302384278870431166946583042420384375686425209994965733807808369978723288358747323601008351428956083322121134947869463813272199198697777154751058633743375892389496139567095226025173154739112082200647800769130733652020157194034237239560334673867718006282286703963812255606379164825530510851410006616819703949482709163233791478941145306102448295857391660471119267683567344518880843472586052033749664420280388275458868004607950865129138487559765760073729757812182902211354848676501874929779856392985072146581775145398115123537656312694270861812154716337987620801732396215079095454665290166602023625153329577525184706706025751992317257754598764125046387327238894121546989669476799442928897631003555198328155543355448130061452976507263609861755553400737717912897951520820684214301558666928484712216072604891939673739516564591640269006219152533866417715558150890938731501589382059376365781239782020475478514236257695214666981562549672753897070624270265272534447809982065261624443621180392415318407878500988625189364600724867796382985839344727243799096230362976005684286527550473560171066189984735757589459931810591831502654160554118147278606212981491957791963354183215482758748784155290218630846368043145318257223469348758033314701448434409783397998124228225087165335308465967282182950769790887641413653629388440153317481132949274102184897876954200860144662694598994260124671183165634000376426098158504650337973360515882796292884398818408005393607404104537479999194295632555387499147249114028831093841979463394529799555915597402801312021864910481842970586668757156262217977896965842051900678572973126271104343634984226111656744868980793375612143327243536189701333854965410176537485538157094062443060065136868060413082068350790502942887704238295269135834605964907284888666651987989601999850659485952067357231931786416325494823422004039317685825355706268875888538252578751230457459070847527398442256137441965913307369109625473922058371540474294130922512204949171017336698832311075466582088917055886097446085451927514550800040296318089208497868721824021552699415100615826172196202933834735124497547903246002740875673958972467394479179846315163710126131723279585945434316735832347667015501606767726042502368920813734131833357126836973195957150055313927807141139608335724526343348345810419151581513839676408418672054046659038017326549577494955123021706012545412097733296568938212218859728558113804463341772398730862578720538180195164416731280636554065659969639722668992302276771186837676146312259257168580354281916106313862413821532752774733509190017812459122505716759262388053815424643311898743952470978349703113863667200384370151890056181185747771495497438707940773533839596157748869740675816393584842205969261455793951126012935270701211748329547674540305248183365542480275067283139914162259063715403011229973771711637546447905811175867061368656425405044360747818426299378296479324717022749954620423374623380956489045982782923937292697818620524126953446956833563931148761347059722800327245295743597348693619012029187233566882193635597829671799031318924552959673858993373645768364570512326442866995208884313494899092332713371313293901787356360794205957807625597718116051812351954260834211057214947561842698898007253355759184576764094864979152053729026402582606364393289118330855865649105211923072295845649546313305840584968053290826672404244201647239364522659752926250786574473658994884990654576098188392255909105043461842421161106072425143838864728657879263004785137272905294746410505212594954625992389664462514235522684364151238801806632138887647252038297176454089211401536556161792920782209858601651542310443047919696036768828763586034850428007438725755921902391594101870025255300649285100927990572495065723983744260923118460930871192923571288988017590438041556559456062111322404124361420898515504975187829450595482437313908571472156546997922830122422240413156609322769945356899004226705557734682650843715185186137020165042860485560604889440594805445195120651945224098877948185335873745773947178532061125200004722689059419029699358096055739805885549601228441349720888583598480494885839478182441106168038013010468718696236100782835384156927667305472146640289973606969108781138724327450913148078328431865359565878522175314966471108658613319035409358332090893055468711584001638666921908694457760975679633893036139986817152225147014288336386367293445591564204578327690611943077496687858073733179070306374339323415430063305402531993548281240820060586132805259073200554288734588416789611280760474977079804293325715562897388076946412574876240759158687255363192129352003058249069945354151052360458994114499624546792956111944214015638576213426669537445455681239903329524772717295921643294196624325352616330657861338886326185468346156984655611389071837113385126287576938359654720941692600857595450224758154643873823656978653951019010612392282211579264603422278350808486655660991428768972262030926966003666869927191015897513579595923604915139996019512831704146595181304787502958838826544096038784166126161107359232929230006956342311566478466148469789116371672296088089773519402648436739933409237268451041301850307002356802863788189257599164881846933168058332420706691532656486270243869638612438008070231087144692106064926081155806051637853262659639735092705290391754330746252996853420767506137021995705392730675101431412640101608518031178618037110560982275544090554725845256265857547028895261489906501772341678836793743785931925000881539848713283053842571553275644248899915038605404829152690815327942845708603461431322557535448547023119302951658189347783133125191118077052971908960877331639257270048279328888535996163601939710242820906099255051519922521344226750622508248683404379511546907104904464149924227054734959131338229436694668929027409928562330051376468364234967009226719679670193458986356795652994118355337144213441574690082979144200258608053696584045736052315105717626801420698883170518416523722548976690092034799737776134331601361529684253638736392265655860500339287163200994268141127821474260141890156311188013594994411660469809656126629119929598611796773821831648942830757624113970256470803241513799484177509327239755396874057092949179283590204280409998036731699194843807108649416931288899525741971966045696052301822542004850322321409730824952342963513991558230563805164932020087651690154688689791793060962657883494964950683738395321771560850155005399442858763967967658409121850962726840468389214060610254646506445110051431097682906319331070424624940770381674271858919474010280811407020418150527150417622163626913373445434507262376859106131131142837342454557563340089013649987500892316794499382055472759436708468260249505475483768347681273549090051221049442885257761458561645337907448016013806791787366060394978441406513543399293262352925897660252731903126842478240911806781663826698442277020689391994979493870113398279185113246748361840144010455658882183146768960989475701164415896062924154538446900511893466544230706739991148164552908173149143490890061964697622614520682107140049413053765984328745255457160189736116218301155429543949189946767079694028476981019568314735781291241229502227596466641291018740433154010892965957886810278007932616398047254588679600832653520361993234758398577337928852548016614920471471697928039292540884315446160885248380283723607261908909620916370205751298896472423491067825729254574084172057663203833981450483946387499459036502242159563155956804634389842177408614012715105933414891683368920420628868620078269393586108211430008084307877266305987436060000026235878324905974349757829473733245771121298631714396596110449756689143084968255435464972776981769940803905141514104029942371034593109114352324133781663149214897777215290667249479293372995291264221019788923147991563502297605233855069909246596046628525554329714216858631490700725278444012173408586391766802421158886435921668535099918956725825272952207498730663513716901386922090178763673663266736828907923843577828359553991663826152794237818081902526774107177589936958368230343397947538909163870217852243115689345286110961398115171965336914434984586936019769105251420247828362075469268434842155940945548927695326543101952950160491356004014494070979546380959740365308690295039581871454995952315244098920695923496746077324910730785975968173514793488501382587808162534003340930683562215325873415211241143084379112581748243282189799212697421856428590602693242957350641162999997450170901725468135802487624738563441275015983270820702687522309253509429419405117725146562133743375602761510323022293155499661649275150114777123685922152310483402415299516244107512047196193600006768684419366048595698229676177423151543061127442624930413186111560350390655507711897395592698334839938641881915796632141422537828653323047418635396867259278064512916470368838712401040388995515993020984906531773001972499857157100946383261059734631741666088251976291368021451004038332447415004980474972267295514785233917839175611325059892962223796680706118090858862276729435756874161739523193092194673290749778139866686627609203695220713770952668153505773524338131595787037362087635964442539844945420979157360860188270956774545263176241653509424146567665005263776658273099650027126231289824008642007925571257999485934781458423825815662393301050965268174625302914937435335697334590284809625710381993931277401455155929968262528519951590289934283047773292225819276066503418577145423882697702366776797725312849046408816903813579046081692059068081934883904552819155035064389169198405374202827554124342400864875323007935803191559175265769715280697005902331633734086945090393076262497071860184403258283344206147375734634381278541002936729750389983873699522685876103325653032206417671856945049517736780579840955650570335247124802622185200440156071733378427261824500560478272014430350586760021759907238557480399308678771353456145639262983654425625365691948629264384565474195605900106777738881672718016440401165825533760721694285133891181032473337719468288527064658533588966506716943404829035642248426621552272546701880884223703379837887015400217984811931000959716032712015855400606234241094689689971594951055429626203432243658713952488917549717485120402540758497351362346116239017355950353741217146007456291351991707104075489710466725827804617007730792591963817172062300501565290595151315885470944003084684129228270542570928951939424540667493821830704960825694540964309386855738877603532596436476056925371094910168906004617348006599421224653836310181869604018623879175426713314262933754303898314514883725241146374432069028551047652180838242199185000635502276621527404249330566561638050429117920935420911813847267603875279431433874425691172172674037057852037898733786310358800734364032256001099726808278242095007037291332919365394026439643644468019142846520545055342442687557440858615248713790546493435030019054519435004995469271920105188654580676247543092217693438099898722513829061030355677797463533056688009708371069234702310885390364855902158665820179169521813879814467033220320669784717227890847643412353162087751778089333883910517183035623806864257907193825717399166224432349933080118547120659420662109116249392461896458403194222165312793755257238817109037644057095144603789863141640413881772630590076468066181842876535416786527223306411418100266948663725622199534196667322601110569443920768737672849314775802760020939795120781241925796803100449076489373597442299283447082087486806682608120261756596710717234222264658769531756661735431253176822328454330683289444793466326070549531366151046506678061389825072321020731193280844919959954885152153254771219619574067435032989532962790953732083992524879619958124430498674333529921754736196802765343832249093118858126717845271124518978250114192677891487740413486669481456116869740574864265018408349312204431028235365929609852641287160019882722911611913952240931227531291880914356224542298722250798921807729266637912996265378951899843366961664320583478606761686953565789768730584945558367915894129565165279076471624832554996722752350639288874101466781882756623749439138645487575175816566935998701179170723614291214641698370695244442866063671373845543160853339723843441656274284940778405755878402725171990044131052272446499789035959781091100399932582341263196157635112406196424449570509373997507460782341040607887769416571192305674271732559064030772531556673060173513234244044179279737596555438262183428960936063907553531811203658013062011400226009336593676746792701054007127682424680193118040492561834951309394231344972397349847859292791161362408780036481973002747024241162555079715222956917716736704902420537211353262723484737349870284091716899288043797551352958110840152495985721562341003088135231177897669259972518111905957522087812326072622223194308098971421702890579510331340228303861825049475891331034093937705750029403264354030347135827958702927359667937155182148890482427932190433708369075616093472705738916123777122969373267792025946753875947124738867892958604216374898998169387523018668450832726348979619112024932414994567199869416732175731462662048704907738762875326897794115255457679879839726982835931597747426720247453645501137549898783083261365733111799928674195236281174748202067947675890030189564595791154315831420783477933618611186185618102174695277502344719944169636458715753352428711455124993140403880724515948966181821761207118542405916252258548170423778654992307481564754786671503269490203244015412887586168746844541498503137368813184813981390601974002634989068516799377365557051000770790238077574129755270094308121177937832966727634334170385604453491667143253085862589990798052556795588419693328266632348547582301260413204502369037891885975432857379254032539094437579375081202327341326008455617051156759049900931582303894184413078237504768676341055905402797098159006088346715951192528275417858926905851325680435787648158345308262523514048451436333190476498311116029471386579916045037676061434131943455381000730462467968749616251394645431132300146611427807415046810591230587214509885196545900216385196809585780898002834994199036921628425604819337461782493855185134665949180548436520541854518307037779614021760015806347639353407282342767495668147788271876386821403658856494193280632368511275114380465128182620652909985312582196209916862596573100113327021120266997206198203862396130555246784831689397218349847605504791922981094181613318484083941278618492939271998238232784009039791769855369450465543903786889222765749411575292035212880718780869979302027634343862593862135930830641647363924708571622426801981749414920357702252011066581133536495406204154173786196820617893944891070879974414445120225608995689856205056110838459370405414481864994216597574662356140488143254013122092570463676830774277891785448389959180604523081793925380446826502302097865626845009599768553968281054038034162726330899069251107754009921687122470056173477003604646418855813417428648960467995655417578298816875622092452917578936649335891334974836705130261375168409173857652997265147026870401314780232627273680138846426717267930397916609087548677663267567410807611612166627686278393452023650448180300525072543636081753613795054405257181084617576753755610849891237257518340018586721382826812210720741502477146721557718324242045668179090127615933432629708594674304683854170727102176180704585157468864303521203997813851921084755669110227242147682629143938602448013833360613781382601264387056959707224752309806869088117471259734766375352655074398917789282391279851214279048182300863395735993104533989201679103824497469121232934305170534736945259156829281473900035090818648712522077376172809410886818711135217278564677343359383981353025135558911154717214499041115363506011168759217517441270998026964562088675026839656170744574916854694599711377137157930675952151594553050958293389821504519661893238176700385588388011741563685707677543954202393647141254073660995043463216885304931212297170100088297993159106310770608835953217884778478091313075201287925174615875255506949571646458219836045548861743508147286390228564002179963961867484341811197048019857892169979963742155760142522724532852843533676479553624224272062901608135863972913910727379363361418292803160280584139915406633525363069896920725448164832709694233856599397258690535829287934747881952765794668278954114538748068465212750910080384935934802626943083897814587066662568960127716308556880417493466375689809284393186092642670980001686041994047931846880110419449732206096614202536131301881825571151877527234765761781312243246713182592886529319090111235766864603195793377110799053152102576501563097579695982775357424404553194067798534414747966077515433751256458543766354660547711233352120256439616771761938515840384977141852241459514229530145379747530972482193959659489094518155339265759697526528427868747653537972514288117318914395514897469085767692264312532808265996547262661884632842800829504193014554447490248687787130027767379491800268127796212039118029882859889491252984188294656354855596569205033098096616601733236643368895893627824850928974492965598218919835065449289133528445328004199508347875799483965331498273240271412031768748491979726287490619982848626054659961383922329829860759809698776617144185725993337242964400194229759390151266353649944239963429599570318828911419745657404660459072749274044026605290728484311429525620806392854814834143664337360892483144820640499035630868473176981948592989266480923157596834961629879769492583818662953152789295822326834570453113897059760843405291048014066881994708281746435389410112526258198903818519963956853884171300427167086483405300368070468299495142324390225404649073566158254359215864733534519147730111570614507535393998067689807309743490681299156550104848325127170153189702665487986990429049616862692817320656805667772542405138924213498058705283161001409026375882660347690859078076649883165247163591483403823635931319619555553513211054670846450107854265567149708319024490860357921255095005957107772346823045928012836004209237477304033556976626922916147670628762178644007884027940844208698545276068816426461769597826231937925933788130616553825056546435045849329775840398062157559446771637965656096725605166183968192167999484326358277690724254045516480888513101503253981076969524853008668853289014743728184964736222237009795276142920382826025949772013039894608066644586544060401709951462499597631171093599741314137002074425146145787242678656534628278227475905217112463017021472667450450325487068756141626129502008468587892317362824372927133764333348770160940666310476840620033311015897982940272666812841835286898229576919819115217096663834172950549790444517448060737551362120133851047386378400828641489891771884371130509903582854576927699995757786495003720024726023231923031252598228274108719534474323018314428999746382195184827685233585886842190651126811631991245789408945899789436652249162933663744534835633012566058863294539121288263521773569685231823185955173450274453314468147520985737445640025159916647119664654075160010400565740473679476248312302935404303917388995809896827093564312337939063970948179620586474562004868298195692193667763607606739933271143793443562814413818069395854118179223984307649168070486784770807452299060214090460871283271348748959886980177074319695894423619542050756589566547156891589502834450722081910597510642499805945092311849463391382110441096356183991988411227159422917848501472574405990628840993637745198431210712996227967781020792819124514863890066210383223542471738629164927434763544695767613260821529215141077750608752819457887575351608867786226653829501152887841830861746992557883275805005928639209772084494267144998942283162070805557096896090056845418138059005675524898705918580086138924460671057177869622648915593107539691246469191409974576425326096597825066218271287953356256204277249131661295467840089468475201766944732582316089847182288580912238806779579047504777966267255278938384741774942910993173135011500969106589367312887435530822791500788881826014243633273219939693797497813934277474537616062958028167987041233030244169848861888584123619167882396160003194834845754091801356537227708233007637856896692923599676235685873821174142812928541335383745738333930603621278128650914259358589223965622184296620948329106999076592696409609212071028971705165370689586611400776315921762726212134254142818512157548613552243278365618240645027758003006103343891481998079028229235931022985670819253652219692619669124705655243092268400277459845473564799399689785106120451707404966503516909663533146573687337739555777706291112942788595769932762363608286377473065444348333327838096774326217895754170908350660733407438132834459648934130103218948019323183190918039672596202608468557801204478741871396224851806045210396190069567758743609933942185530450247846818285720009587579372061116493868023574083657231805528662872570964411113530595976979614465823360514388355190837149825218750588970489003220830444123165141190112597464677362300711370269596328239854633463075636818986904863344638425885848109058253477807651602903506443937389303906861653415376217786934254640284402387936663050326021171182851107046758689945804780195889064476282891122738562813832965727726021825498996918192213552930651987091436128566144860915412765715678890305654350896906165509692585822728795896668133382326209666480444807310446244615471069885054120307586671159957609202462297677717578866055429876419865687410015422488819731427202510351343794810557524928393403419999365089086236446879460742127713159950130678480297424192043651869466417805082976473792223150185843552496861752683537889502682184959731528565513563526820060392264348942344091812865021444921396654208164798474365943906187646601498735808874323728584580180802935148449958103262650521229741341729854906757426658115601764439046161131451241024059002730901808504286718838224752384180685139697490340435137842000757434790606464808713087025655645342172962024861956423841753962413355213746241342471447571164701970867785533934757847674279092098326917045736795264995152149642056313028656785317985201518428732461264665407391660055398521824125776069348280677301382320264141537414710540380274626540397182209110113164100238364683864890636045625308709551243439223623866792869518101322087012207677091784685969370345067567063289440782781703265467680054426114155270783862219899465138984797779340294423380794532870507263843549815228348844938363803181144086797899041577700379765453737317833765962574142071927918477691515303603283795853239918784927023706770772765384973322546179419820211325083064326897862454720115765900474057145850614177712968141521134495927957973208955961506634932362711193213924399372115960238138923564243965627173389948995159981168532225910930600922632977834924817585586493035877337922562315838883078292687644597814614500465295376045084649326199362656463817262330767415768253380731291073015921270030603087326945639367672631192021563358936976101115923929885854597062401748300246951552627583412779012211677852506877381717829744825367973603676922673184838205241725004826274708409133778568385089565480950921560918282614195677903432723829888664624946768003874777970715440331184141903009096767728710303096296674723470569463041587842489364083574099260753232851047303770527659777351581104692998782890902990118182648496128107022876553492983941470096017632861770263600382534653062919171514900130773905469003207281660370854507122470349699970735035713953807895199359482718562134057222031110353410785305059119109395804354653563707910686419325366618240743236631772694552840996148832096449701527086131434804980946257213940901175560199731291684496257528625864502771325227978181536599961547287933180879120198671877425114309923493037193374367452257376602963297566192472402898284156205037058921207258531738041366109008418894579628350660866262402790083285972623937953977602830783238332038805399802713460049783954448547974091994764992751579828901125179762073211162534149035890184519012230124456730362361499646814732840388250041052147407551567311412314259055001515322145701200676544389062735228293204594116942026954810074040163448877235126525340267314610342984094577853982160455988677021457108177223233329310653599106010894704231433958370267645577444010803574894025104616324852826069726191044220569842635592388342048507761471445909685797875348173971094471548462709678422411664160488290357314150976026802169443520476569087301559363710214487744332904880352591663618442854793579019834566360675866932966244323012277872312126173580191470879489952656873641336277935475234041968450119105451285429851365803299198957926325443738306716211065801008357937131463224059399541374985190188669617961301069613685033309297276030829735065767792057140340075007483355381770234420317720269791037463494285649241874040403889210209546050606678842939729287123971785466694810247929454380865702945349902363551853711972927707063636441607659530645698377194828563813228719885349997774724780726860662515044090212855713852215334505465912322588443271626672334988620948728222782901111461044098108569124066312240849211328700904335085517020313739683678723607213499077614407958646628337151742578052653113246700155806206021372392327390479636240182490614447900113784063067568797110867572223195922620599278833339841267886744084807640076355447498730388788708042158358931446479747809353580967551987809012588286669592645700973884319425812689392186289512437718925150471304679221351129982990295214114922257352918275629491433985379344629400280188343284095715636123278262559611462050372992881572174942435000014439321672884293558322579559105360695052605701340451951452914615015777422806503619143167291980834878660240447005092424662780231631330938208212922055702366087490615998479427980568072865689402221670075865004651182608737937452559369700539578584216283740077107796779890639189919341255489069789042275218357373101083575760558912888301870115377949359776534876216433280640546765021682629475211326379294775770722268788874164675155698095495634226902190358171431387137945728430377650576669275274231097579042288809605747344951283552808654562840589884095697802679228998695537282737885801420559105115854524281567225875372389136413539160912407698582563214580639181922828229200674889153214110110232950847650685974313615568732522703078301491510572519754850160448521475710013099686386447288066793085345227945850410998062303206501603816376250715851456154107212803091281517393672846442124853349957236566466090380721091994892830928149389864345038281032055226250486997109297211355498631883103443383728889765341487127931182561723857683375347787523417411741935769762736369418369081645322518679211261240647942100584771492465229466226415894229396143717725132303928510496276100892005693447920430010109227449746183531401339783567114177992020995875620695359474530146354165822177239968198353788655258237036005572023205488730030973809193529206847088331081163417442384333829800751909374810992628192122038480709358344825701583374293532219539192531595167842537644553893426647461425158516326817308034441893139589548167406421364706457349487672635688730300713564008831680896985761049655048021423562809829036376699453402977712910192762133470327417242690890839778771109031618851268676157462696084049570986946078238385774043934202152038990996962905546946193695135004301747007575936175955804120672337100481111538687710976918907321451395032419417340270119551980413559566345997632765780937289812423961862692738707263049915653130809488210392946159121769968851507209475516732460071098568297560214734499877679401254859828700187439915293801482924638171030353790863534283322304886177033153279756788736854908829957565607286699979007239843471352157732647560356943615781526302599729935997023026019226769157017325410147491359787959838334244745335466094893903453734245796586521792291503754385654036750003863434070591920559176861784144325965504122287943915448300589404267628638870694611134586565098581239405262414444074911289016377139368851494793132927945430314439884324206580675244310306077467328603864614707861458836156269013480451545034389110616619783606549172497558074582117630416977007605518719569312040019140057921755051405689720975276455397617716748741323681949985226792215357787615718631182304917319312315457017427178726970104709523985286728639113644977238608860019042002052589823610870998257809382943360438627891791464932933454887304149540688729140959001425585736782439054231341194734933307081485037249179484472133080134393753424163577400753367672739403280832027642613274772717331066033717452606080871216141766298619172560531941307406583894928947473067621923000524772535190888007626273530813121267635301875638711925990565844016449430239969108033798958852070276540386943666466802748593059121762544151318762925709286532092076294841285479508909676847142248385631936124832692741643431740914211542491642867866847076958011784294407982947271450553279436160405138235195428344180214524470264531453947389262021940336030459546262159633505461587187693760612822658842527291452921182257865042534753018274838327872777489127025131693873153486331432142661171842894846153886590666789167938036558181410817609387399763623406553435182564933542313113047319466439559556743884163362499652103428382319738977649411763186812400339866494333426618897491270087761548952025656646388645207733379320876947874463896382622147158210176869418387406640825783292864373277357968436160688448217066596750676021014016125367473280498792775503823436340158180204572943814170530621214857071239073181273424476063744192385828374139747892868835896514375369512010198420437353990642589537876175938628483538139555568614152167890702369725040139453555871077743047284659846673735843849193952147832578599343163190747094052666517068963200956072362202625165976203501313729294897582161915904107632736572855664979247559731670073262903267848362597486396217298530617479801467858745275478093367958941317197458888324752596443698327502716790709038781354393051339057139767835936319371468068456968672198064687304385687966223497437909671369085820031801237042225629469982970427660542847200986390636002734825396571939132904500112571468395326561212763924952933658299303470853094136427256465185807421096174961215278009671996001420784490911000841502976077299244279238704678131939156245860980716429777552156445221680615214787757681178268931661973402916313919899825185822238634374972614013649642787385771997946190267949376202759114538934836380684866405064731420900310979157238658282590870262174996190831667091486485829952752936218676480614925269121515606232220454690930065449249727142403700087890666471276461710644183021155775744588387992569646961366805022039539942301186200241257553327428416217169082735964512931015187145864784750651044488663563115355831341241729300790453197435947322875024685105963488103764765112649347419186355406479434786529730267659477580926464265044859454630768515641694510697675553680285452683080586295220914168648024547128802729396649918275050534915620593440357295154874585336747827801444261915183017944784789992260065410055538163232975924585455768424602098876276448091506789143393204836135242566380594254914061688234568514912400303444709975122900842810669766788400361021153989446136135696284980635224584694600160142809739567750512921103465009987507478106931935500679203588722593080924471294187242999468940277483479756183593897544123545116646623046852359578784451521274265746405469900083397588436457708377742991303908743657709153531130645534910580382951763316157204705166883348888090964957688177950156234786813365060819907351761583621198609152978222404871573547918709805644450944642502669505346333586530254674480604141411461941148430662630302675680042501991080637036547687801798838477182309671484450761137464959552299988318397411645872919001655706777449929109918309506313584553779593133538477535825014426567523917872311076185667423260785438226430673462500034576563694084232064808030721943961224141415581641046293716748868999039894951933539792305064209690493595357607816258195332198150316471308029419954093797123576703871341953588187618920475561534919807450793143478176667800014567245914180094222586404838680302663880621741770306262791475761849341938019610517017113745460159910547822230138167468277611460521107325626512238540489809151790642883257501530276823322406760324783862222703170917462554338950011497956936174666185605261181989900317970552506457387241331708850603967840041402844059079408010383797756782379899698024482875206571242786959619906904140388149148405974804769202422915397631700856887107243608520665886423627524339462812112743338787609194893584958187451721509420864926109717625328921067726085118688869919571054531124279705250092448166065107892666511887014849275369170436177012838168055866038652767387493339664878926450393206776650856890439828990264845923397798672033706949434829933868716288449364129790570576733142279559083282999544797664602548298719209544738763965143826880494239318314811199436744596544380708069178533639671298896642644942819941733077300237338828755135973498297905064481143638533018082472681925693793839288772897861205768866859332631424311146478303800411317604550621644954095020890536271716566526625880756205138226747006970070558225695693596610235784000178693657118121515867142386938144060051699030257326854968709606491893335589304971837734185887645396257568250297771602007988123254276642773780735385795364237899239100489667954505919326735555152854582402722891269205986812342519824036524472437445837777347559075592958841512250791021263261058662171569285683767573128032702239794523777344109885708739865456231947976172515575369214146778356289897980032258707079799895119918350102468658562517440999633576138425738940783357423837053141143550298579545696440948313393296566868838076914337081948638031652914582362337626345437405803731034064535942625890845555998319975696985802999952426367212204833876852029142237580273458675096973349645799698184749644256914189509694873675027559766988094437216449645312796060755398946105939292636544145514559171695486883482257646466665791003712080870421770486141948949453627213865728979036960623879340273276768142717166937729646941074433402949060130731287867185480140652199153547819298136686552671802704135104408217463149504566059968281930603083543372329897016071412323913349171015475088527334469837566656362048844332206365555239989535654529738126617731584802186962626690222281846096992144447502539310452611196020091998488797884476996013271934187403378510611152489587088774757327821324830430943193912081401443024316012922660309067547037301750299723942586987309997353236524905923055905571146777384760700905076919529805664952121059284487305168826001153611728010938987477799843075500566059065801127310462920751739000045768989281957713845252566769440158236765192491182243016374383656072641404850589640417065358812165233601232794913014378427323272236211602513323611097847174643095588183678961353852332675696405924707995297548994461233847758236973870366924102230064397550007105022937728819766654163582409583468688729374792851361647426852679250399142800544364042324799036325027587609612684528515164917368688013096785073076167378296333246411392878505528665006629583032683122792102813710871578225437399654643286093595105597978478716696283813197594739110105055025544417583576012029576520061803582966283028428824374269687542335987079041110421555225174755058321869297491994224032726965391688585737106325722009079253314810077761224329191622727643778553656922398898307099056733358044925527625944447390419545177252543762082870275591560543291444102275179509083573456764580886783141227629951463866042453328566482157826234913616370937371033168498633741398119914181459720905660150794848654054273917911842319835211730671701790263649521939243854078414431733450754186043667500517543434157682434831125199168744561998500881163019527827566201365032511207235550098002367544167544027624673950385808788422136792708780368423250128748732724459943404548983439072491510294926991272207294319461895306412074675934525419228086013455944769337068839908239624336807638693930292034409058509989612027771636553743860753626367148957429526400524414443862108835299463996071409195436494629493666387348490160267219310385508231648408866810800266601129148411510314885696677262826987477024677897608493351742802275200135338711964015509854300883597713094313359924418197402408809841286260182046505320289202067330030511850192050715403525694490735778650797167757495410809023661066950891946917297110014483552524859883010963324564340900657860833794058309160437878325665950796193187871535199556313941353142487197221252418091477457340022654122126138693226353298446257917652621686593527644427119686322808672743050812939345638879240112225880103091332093508631075601488750047995456494945821162026418069007174132004734364969981572833575755522422647192966523202418286241084515590483642378610134835789150196610460189782331802882915349766235682301226424937815315046868577837567989584159523152668659653527028142237760489092069338560394595200874013237799722103547800910329870538291045208283399676251249808435250089077977473095750499335623320176007366397756033997177027420706502146680188526274740231301200389536628082932704283697881680532665523532865949896132108427311601820489451045867603067721433805193523954749314523867669181238859177457931977467125208325338435794072898050004883706429801182528082710671979608823159736930326783372846327421735119470388787349650290298053176877136162602420534733672287612636246404187880777999470416639268213465594918394867213411768236460604307338704717374718741238219148957320440034141177861829734576465600813829227921203850895851308330164930337121000607778024075351283250716132156278891179654996866870916375164065366932244925064378763457862029648743954735146741120129492370871405594140926468817472902519406808514161044762468741280831756136798358428071616724048573384049570236524607928820505596441342150207765250448144447781735714511179609495544535251024761800331074615765393815516104459383392789103429196990101868700183269849003826086688340500269168334364466314711209729816382586427354375311328030118418342819613400064825752796040820480493255164564849832640482085763388030617172279150045847743800070330598183784522220801857426794029190658837879848058056634387600631732545828368654266464367411534819962297533424500803269240896298492177221182619796299570951136234905674369939586405249260424083871218337953134618112566510972155476705520270276616897184118351259225274466082897213999244379590412220770444881160983873001808502133577044596861123848710551154078935668711940347913930764439332683860013180381424394156236567879213330144299214099723713851196247429035018941635532557360765458106497066793327500234051441815876681273715003332308317597342110635943435146878693046289640953923839894500692817087484184061456412494381897117738040496892697222112760695686196183120491226174268396730103431544503410940106612518434652148119308093361489420745688952507609694651716310785970341318721933702218182872412600990790719527735929187454651876939885430079276904116735225426349200917424219983922866876255280715165617262229798855375679314628314592451776785523506850477133577767461021739441518502122263225546017740250761021154092847125364520583443211700699591162974390621820711130113238730042117951826741529860654073813163621127434530826633672566793051189344720137123033961290213929954212380678160558845911829565741018464996629057002233444561768706344211689563993814719894875970825379475296232380959536520013973613461273111506981188667268814635360772710150976809291952443868627920570407715987848864395830708369636296396657081321949601779549475431487443232480904478648577281871714153643053081737501019364237227416925090982499793208628695734793243666010333477342357566060582840356994270800794398976680221219866881620201095501211036059128784145592411136493967866883725314677239220280038362216854796881697058933913147053906008965865428853645669528124606968245256535596364467876414281789921653066451811192076869548704730926965070091581291504830996784083923993927208672895593763995850407751183938095947529091925137095240237210203040695908960166095867080181541030096363551823723710420033884624545056200882029605357177350687184206514410542867478075051095122502733826686114568412601444544777776914763805893076372648413223376203689585842977250668563872433892128207694079739942578982146068580447690876308160237248590881191418937582099858647670775135999500580694999531806673908482528010048809879890435344003690538897148998492665097752125259451065845893373134070590115808788951779547636477383710771653535951248971585162513168341268788363935055555344398258465156170902859497548281320876569940050058162636322443547220175249996156853297381081709325560938814515532858587119723178249235983709277626553688051380718529546887945768539742531881525666952521660712434585543038516815714086301509482403969697560912228008273862899945978442647700359203371922142578850119536514569827449288088375240661554515014551470903285437874803816725668637837656759067186095911765173322957353546948307330007188631511134672568660271363956348730129133222674891032122800742376526424964700081894802259852171600540977940555481768295099118610061760716866119622659163482961156307811385540908910437219180775334417415828456099640602846742155362504041753292105012779910594875538677431654155624663234641362337549909672884442498626246738919098018258900601181572480777267677329158150217323180286521230954499083697584272766340665888470079117533935462092251765168707362452907489453584017250712622098312866569226569283068435951689152127809414085167640699585341355223693490015153547945987122207054818587273938801665621833159444762782013400523986574269634032025931374870672712558308955300664532261211361432901218824691992524142883519723086609957459521241517935214459017750485824621989496736474791754480915005310129034248816117590788741242608887797938500864640816741348683231743621142503512563821444988323919038199572162282988318170572437140079508381687771872910197819855498682962920221179280118480056735980962151261775792547194564666280093069247756373436157691949520047725920995955288406935100633058863325517317514957981378360192055906044043010521275363078193084456309918968072185697882490536469208634593013731688873068516958193620944259931234668877006948791219206632763992130072420044014429260469742772576303562513705261873753022123036729542345516233908158695169818123175099783498944177708091264277264603959355969258207950189411836680498195127948196341718930463557887736291557105772659568101701185601879045266346965239001364719374812332476463337448970830202078070533004939975194829246150013558363141693683752281728745382504751579426354651843533543349707340274357337110515410253384084623691091228511385511875983271914873765243194716757734092045944468986625990585396972021763332495032557385972434224981299965474006222349679336683416298453249207524302328499814026999544860394749944129313005323314738671495730656175683260927180229495109667433548473208967369080611938021964048782502606834872065110970503563398661046225552592477930522617318401198742562647498010074455597281032887943095010096704392265626776643565936491932880066820365604515569451068514362482285235158793496159526919403974122899040480417736036398292589455614258005883356819526238238859356024701133121352973000682143118282334507415281215787884907675970119173642722889419045826103431849681767460139375991876033255764331885536285920873437010891942952577385563227834082670607167357105005938622466148199857204702398868564074456832955452671042987746204689001107573660506007081906896741800621995654230033969307290298308576200219274264019925283366694337387599424563453273143821691070722193045664841717936104338714905251986929066297875950354064527580078434378508342925465533924771858626808851059848387093250863826498113796546241692638147329519372828736474700095067384991140854091388003162928437057534789645998014876111171274403325648911238930444344515856281424638104540740940588604357500415843038735714937277139006000155657805484898624515453069388899551698294612857203835657934677331677519745551267565463278296814422886550947359610980266312988864836981314169413664808213333870635616779057372214057059822104357849059543973414804222038431104259507425884493777606101780977312609914127383156164926674357214196310878575520521168336437564553576922366709607966623016410652107820269711150042716497218642309056613763176430266832737028071108033160827716388973684056229085214145758773621651248231156073721183002481048175975065781349425259500040603716708076665216228721109862302588081985497765339141161470447647007931765299033314641024719092309720203729370101918301217610163603023868527532196186873864915929048982770651373299452700506785113009692320593011279312128611634911130235664391153724536529299963647229131136603487616849948703014882821188877760432384454026184372681249678648910113375999400258874462082111296003901727248049304135333199202550238661396596561713976671961384147363736835791432339967748997607964075868003806754731707225723957523852484211005658528798855829482567208078036365231588110227668357188720598700526083878071999994827571079052395029872368415311939438585076564998484357717308808778566094914175511186718999146484303064616866130690206008679606367751109079043103126756370693470884119508270816551261340809953539411979200877015533567876600757200059390282394960477872198532460452225539641941737293898664465158126067120800324620707899882899570526196360212715351046437312235563625033345666042111865079095877039105176257333919430825542636299074783586520460681264962094185833599624408855906339810049031989906569932730832420506039864138311362820400448406658114934820973298240575554888697032553877170630123483438824054177420900960053639631144880732539656783302309553029110768340489470492230521735813226417852626863400487624843804002669870435066476873644684982930907303516925856737786289900446587299588315626031674636925256677477043068953672699301680373365127588029840798208701643318942161391637794123637722414934268730471173207075839147452292661468130361105347169912359160767221731679052218405638172924384151611897563837212409444561352637710449265638862519812125841444399975125615580516526994509839583098226807231066201613344063121160849629682347215801872895723209549542712309951928416027448319717717747122096138038561585762065480440274019115613592026026732929411393441676135597859986608321615285696468112543683138029230384081814319439746887796265485755883531931089442756903549927223114526035314602426051939623407595451727653796092245463849349716073879833162118035865238272360480770755664693440310143381909884620900325929891761740961949423014779444700328407535625717738569576789466255377672161129393489761099743358341388155398794480934175188481652975751986847866882629182597747913406239757408858804066429003707967405402564345724161586463723011426623263122306857497715836236827950863669755132799033997873260592355224439638141099620387308607695435038659212472315447547711495061986866439690337811143283180502888326640026575227785689791770864895751242318165514985176117604233557756347311153058638362483614211741879502836732969808597487091857617455715869914108965932997897332796351338696170625881109695905447877614194957001410828652270825937028829339794460420792650564755617362463049341522381772319536889251288935773587883698000925159706003329409583829760579377111299110850174651463621959759268963190977318824652221620857857083969569008473982690847687302486757014832367036360566397262196721560569281917148362223215958288201580848956465638741606943038746321031883511974172008229520473376292080349080341239413745213233182345276282023206155304752509914266437031528952373341546555005647009222198597645043644979461408175079166116698386619760869454266937556043791773062953133486341960659488852404586598381762586046548361846898570289321953997698613507496744067072198884724547348609201588048783073072106275139722446079736151916669784222997305322510961347614918909685465220377559820738549888880502212250314791601530388471071841335762503418746301025247604110390271751111246383092253578249370174200609060159147635762223885910053427730912298709636771239138243504829726663314409422862092481800272110207006104268431817270609796617351620256987727939970611106088798521448425119637376677074788526124231278679363574421266606970853963562617711485060947133305364068454815810597114431856784089658594139344046913782316430834373860488946313857320849851165193520381642961938781846061669419770176206408098805992216617769444542111304735830728270115407880611435833332389741039232729038794676523008874635440002882808959836708264189197894356910727158326623701417329049320665591373836180258995046567035616466790946170873192328110840707484826023829409146221600977174437567203622946050287054437844228615632325136323345238685345763120522820317402050663087819451114310014527475521456410367059091103622467045644794330096726794726617121140106795440927264120863291209164395547758959980928479787117131972511395070272389985820378275358500842506737879755542896774153658932586112400830272391883841102249311219120766332340708156176937421671798242692811489549793946726103921311610995978390328284241921045505340415041178832890327380410823091906085555047180332490069216775876029992881901828218140526298038998077454024544546592144843894877189148240958489767733742137804848273426873366814100903982532835610988019079627314431118008720365184697857504879325992197682808015947206285574031100211933606526928012879738770782320913750181739703444074791508820470992794531476593026268217185831203534178336319648098848775112778270580908439237276741732280272946254606560224617772980560570898310125663310314059167763699675073722971406362715923236598666113045746175287959300592108140413934784976664148745615629295036764242542797870693726714389153403329325434550081013004192889106764819989722177352221376407645154626142437265197655950444403325552027828029349914817734496315119449197392538282520182339349669816298518750773192357507421760184290486453337371985458987514981812572960004364208662736011857370498796990010287486797189488361172094056984781168431850095081429622516599161591564532405449942358672674700327590625400400368561239394553677295470628170633467635857032166285217099632708638115843673569161650781512749998088416303028017748694739290735460032115678129504603201499917036095011717089564154002038463865318664887746211716153868053450677752501593593416834463866373759077207718791257810933973864347531130532020953772603035724848302594477662783068954808955311967500998483029009061410449247952252442313583558424371846029179914822380923543852530786370323491567666257030755854732626223700468319663737916288902369596179188986594568027451386679410804149519401190619188237596271975489949331997398641971386887218935037538399444945208518224674520241216377792467756894948446250860305670812391388563460740721289339802153115794785630141905676078052868459588537092109587205956500632780035829770402240565481959897318997020195947452336990519060834181826942289104737681013409956996372676199062984246719838817416547870298342298176109429360762750961430294985531244577355505183992879243534190352134852500816144266891875054668406695910061540372606585136127635523815500455943634071300066072871063617958564238994149656040930590836563806530411781148491085739590273956712178194455117974690183073102353409613778423678827585975638070136543440162175628142110074070616756538874699306821368930133873397117632927559309757089388170742593901193059449139067940861369093016550937703730126218405126299575907433003984711199859805274342978355212360507844612890534559523178361239192610837341144943209247103476453458968540101353784378432870420443288690678302376462121270314824189502230606817217498547959619490069025181324059269364181367791543895062318903057226320152822137661021110765650115508464300357011358558433351918604833202908162260759970070496536157835598195390552844612318485257986931133508400176488097316291989527104646065342254914391767400085358624969886640764312323915558434651053707091305372727179153824986501842849797211269502577283409589128338666161407927262143619705166229869816420476149336617738835044181567725682838418102904723976334722414505310042887211863751018778585653770125067870288845399021177669922246795185265486329110746166418498668820428429497457163194368300109905502277780211277198909805822202294877243745656449691496785090732946455634771531732994739773923332372405367511391349365497325732938402135179022652372189267196422689789630301052107980008537433828464958862793193456131380910053503478679895025303987340709873805651349030982183868542163792412589998359773372012074430956702132112141034208894689374037859184327833035132762403147511918026064758037397967746852358217480227938533963809854631025575439325872906664587630496356292021564478450371354546857971542878121237910514164028246160046577650383283083901877907186120690066739327266685766193097819815536251134598666326463800374802350020094560785100694248338457344392125630793085608374124127891110738952984590471280982126178022467039479536180482086491605429173553472834483608062686332282374748954375062239211171739608433539843676531203860839931578473580076726102269451102792263273062252369655511931477360846553425299073584751371876903510132661107517213473565707752915657122298734765840461310801599761337963539482295567576306562748232181183541431003161872574164503781299219633906134780090385788412345095355674331615532590109657733243050443938768720418873119618990747344473760497009426929317846239036040365648080342253140911953104045526542837437087199606789896498846652810060365909206294820825786669209396535268658742321135388410479445021469672424639158211200706338050214113574832158649732401855101451946276914788611752784786546200440958798353281467408517778699957013162314789175527193609123566021389194203407938770830998733718034997293998690894440997738183981766593984891022970258097933726138320016448362669951038190941086767984591284097434609035330260414471521587866296824035089315936625140467836279792945128584033959402279783045776285561148765982616532376732811199581755812218220765432158028849124933339019058321622779842893106368360693498570017647913764027280579549141917620280714524128813374202897200375752377082572483916638979439464895366373133945007181887522104583567433305490680284817566445164148894195615494880969927954367516064716954537380908593561119470829582814258941967898369700218105820032349495706329275209482235306687300731206850592743552081185983684666426169067289016706774640940488627769187552430644663901119460939599663419448359187188290649500207673521153827786928546125749332927121047705121689520767368610176188780163067105538527438603130602913148262394460699320294245016284069492243040992055980131883308000606689301802933619080567783367162180523473719901584474791572185727162279916095476119971980239875756668729213324838934863092609543049281821889114395823744480750744667938048736832138159664485735981841233400175222078644824800394011914568498483013533672519779145669982722303587201121311702837263680056480882534369521755643391119877973123409802472315740661537818426405448789856197115968844494718569800481817752516338342302882159014427921349163749538485262147162257617134178798464477970030307254274973278402166821978902966066371894918530700188664837813070209351846008800039048269780799072147806790503021256620424614667970239303346299669800486559547721522482563991089781416268275352904273250406911915709568228898033250793063720043333746294575309707246103806184000076577213825252813023037048998969280360287554928195911889877146503752490075300543226742927777968239064201826519592896302389708075369012201286126412791771994754791442287645208480794873955934469763015775725930770925991297071343225839417297898329859373914353598666196330952724938317731071252222462001781552658036653131641367612460748486590335337185434801381207322439799694789095733692437478109187060166772146652995312275921473328510236256093372232443318127795541476211451581028781771345428809220684726553140973109214113274969215583613077031699547582307911379651059295077245568413784542164414389504494854085057613215382333585069566065920038331618274516242750259169444278335937727266044201797839839581891290388840577364598580835456202765518553642506494199268196332913951412312403891456375162835652160493997371914698929316827576984396153464017789512739031790549463118424275921222154585904033310710294620273775575771793534290617757376178609631425251327862550251022864855383313753573789572984153226680548628834928828272086298388637491079053936095501516149847638424364609929557660835416384285267051893442178011036417705919002403962893733660752099535922240262816064528882618661262235271429031734312856490853157795363494405762075943645219226508262789480494364759669875607725113319079036469430457275216595630270451189597692306349367429857336950816440503887655414430451346072809843701625748066551699481710963041077184809774356499465477958678032413086854833478491039070249334391899165910802390439430742806963041079231770758783238779448572660602107725377642011998440257725576651035222183962586819168097336635723298705584661594499243520343360834891254059810967049494271581275031160009141771854719886971693265779813340052603365802532511682393987871514080452739199117319729057269773718648056959742642048035429847015342483291537488361742364029263415478185553480947995034600705404501189735384243864611786129771265282914198226546879478051550998245791272330363533016005925604365667394648349211478705012683551783050592605316785182174810954130487933016396056872149379048992189359486036166687354343131037459107824970103073316897038554580613170255398347417269592549146200278606841314333492147335293969041287827581087665869502191259461711562707687071329875229815542996273922544042806949546071011224754413717067944580502313151091793099891202625762349137983725999925160930664966256547109846813606737600209542451078677055522631034304351129148051961994744367159275766812877721486454815585184936345392830955055730213128236626532518257112211649616686248402702449030504324821874671894170483156085306452666235579055106069088291418039357584992363917984383004201591860630193837040640307358390839822579143363107369073696597828317846938209592437881693637615884661855380202128462692665570823533718575393276383044028939507170605942985672383126597975213326770129215451132467584762425698057195525088222607980160730134161840272279773289042072214662080705856277925430035088114691143232411596565245726187423144609162275161545781914700669685938673641565585109309833966939672979275174566581962356329430493101516905129879503707748555604963811697512075749332412208003652748696264691447914018904438159692384744330208800126833940808925285090753753568939474878161821926751135720067574312044748726345647741815598618836255572316206822901043753980326734364945918466893475242991572787345993019929691795173045611722646702275928691859151006148377310798576069518755938628304577575763182508788157136899843165811052419122047991051359022604228510462107382127632669286839089171854580699798558643858391838603213100435773244236816552520622926987769918222969826466377079856866208824200529927510442901184752382347474519118627821795920496708717145423206358742216264773805445097580841363126191009941904419023029178505435755432151960702009330683399721859201123119993250506098240226359388595907086936273875504206407128577820479034093551132761977313300498741888334382022636304693149029980926145615803666915893992893387034713460864525805029489500256709770910881074377333267755930343353932284043223367451435911552820054291005543720096072365808353678879953514138970862153318779569393313952863926601195847016810275684163209975482820740707826343655406899997630896736389178027591632090047223571596834272127208460639230435699061524507826903106015014327224733679685215787007082395528104846664839832884272606477490587651375864760565887420603055684895444419099892627523108555397194274092255709314205041986855287104712592068096991973400763605972735437435021081607296906495877066946259744264716274977357615132970622783433269621344273095207205939486373826914772476833853182847978954878271104010296647468471208904049373149788098987536582922015893034944716802404569369941777783351742931861705575789633339506021175446281681016042655255906077929641137516467104684280419047929024425149922120618926076351388993191166640553578806872191380561673939694816154363555143083484709486430749235664855104151722610117944579338633482942643099113751948378563290488776258475090693517834345071320524890170564742732732187807810662909539915139729131319890691574716443813760141335474644183597185884659024553934012469847376604757713115938384778440356082795260489873063675937209676718517534377780706968515894072988512840433046848048475070898292134131714971960273025407077449089618673458964718618916441667404959945477231197551123808024507617083623719118433558069129497298532743848274566112368777134316921047369413297843175184005003366681778201410456791042584602300627309393831817292116194250040354195554235131786819120943241189621941599930446828213669467979416783916437470300892521430470177517561419691841194491956009695541524695773660535219567753171334406386982232505909485511778265122614674981331115822043151134922378367258959649946749337987625491150564401562105679115743917761562832364012935062431374062479466056913276326562969567855042708373989028214948142649873156328277136154102322540837390123205141222259072412011779241631204599366131208197563929885899806264787637630128589217973740039147924668504557419998667580971075009406638642471922158019389698980232514223584365506100955475286694762370121823277021218464542923246749140906621763840725670532664040559230241258602317010671010758379880057357589309190676462855366126182784642965727913600233522654674253892125810416772036219269843861946101710883817391247845579430433913037287232186039375082162380577524944503610266222441113428932625599502445350230229195106551106861689667294593219995766622244076504030215836790820244752822484663733826915165264412147997908633336748931160193432578562222248894817135402495999448083563165719162162796898707356092724385094289797855604707651083730128449161784489021081617558797190766197283704996226492041479746861023511105583108797284962074940374123858988808287290559930575937733595815682900487933015645213915171678634236548584261677915002678989176740160010776670526381946803217869442202307518670629686756088657572000071815268123858756545912651163319723930984213973281861774809399822922265896920803209977478275744786970037801583662341542154463793608249945513859848446080620047205801890772712319750999309145886405243406435319245812857862071527922921032323052752068991720903258731586703627152871916692683707438255308920340090184112056413919672578019660607905112870214280269545049153362062233536507407362343360136274808824262206560869802213530019622584652012456381108647163864461632690786939335406994993086183837243410535182105453432179382314112050800011104803968467061448531873596733857982016934349788509167142984291368622788077170947855473385607579806672575601879353803993544828751829226370249186301491587146784120467020096401470326430955875611156559179312503672418083127768997016792096527839268949246268800072842078816547771716046134412033042630860455536227349367083541989513605767794834388068072588205205706559730239859917611112738021037879453685156639540530650148331660374823342397766437153570180511061467460822037594079837910130565856201311391294096031417576152416353621432424783653660214533068423652274160447844706277283540099707469336072050767836409763849740659219639173510667948691575396824416596604386207088517861302843746184327694010559997589349657089266474641846423058286646158965639217994676717869158495745530326553429798497593872128984825412011702199441990900012292994210006981175742170863300924228716664256713429211404556326607104622502204399167736049078440766800713483785232198512659821535065761078589949187805992320591238797638444813598691832077035534210635636261152507477337106012355757019040740225204960085733797333247794433587864971169595373709331384756972237357826350443006333832651878348541132703249243061415867783089929937172521135599382860512239105395693632460082479512396174969531772463841171799964249726491081128816082933228764948938258864728209925972092814161848375195882715868278993770811230461764907911218459475036678899733599341016069545723181961586595095458546606934323757757309773234768430912782547658454459660816962566326912457497273873124050030240564818388921407846521078702291618953865008673837428163349170561942973486584334490115154901236601047911446636438914303651958409003931210672077564742156806441475023047993109747482586810767471386424047342383329622490766627130579471442664816939459731956377640712031645412806402995391803737821729077260212092298509194649048752767655111311992835290126701526428956234256887358410849846682536887839670532365688033503816273513027684617252840974807537421680779490354450659217799289822551056707922398508399704195739852899656500434828148390039170847168454114256809614118955323836611889890993353142380651661333473823176841933733765652154539188777140322462480181088949400397733628961978981319918656679174320705208779365476587491106653171450298440310433004203902756983398047045431103842222586175209072573959775131273910020153271567350541480781186491407326641307671413460325816688242679215946303398715148269251450931444679496114032095258158029148575327428608290157373970877229821558456449392589203617949145582022846639213879065127980411171608875734618339105057127579388679261054033831391433591530302489094911727251633725061152035207321532128202878834305486446862004542745624309035953108501378435921778655015658161799097115943531547931551030012057639720906079766249283161647654378912577334617849180922319229562831699901631902125600524213371987390898665123005132714135540011101108273201430538489516262596091518948568520510570511880262623488375206792811800120881112393507117113604217472864246730206768603048520170282430233099260796973823331344206880605852890685056682867032022321758023038707190693133602369979309049661328912509760918870305378813892942579546922463939137321167062828692164419500048351563785614137207941303086611236038206006907737029627534694676916233319171099099187274464820419822536574189972507628660018162725110649624151696079563190308679096383669635911451703030563812589276212438674137029695567436314243210727020336564847199136542229389473677510997524588181396410494464075793104376852952720918555624856435553323820078381337858034144771050770442605943253203895258104133107423045527117486965230692110196672260272736404888187373901903587552296591010333561626406965529379903474857753984344874749387132940076511740229727715299635866152817851822515518359093087952607848473097757391323105123363787918869530115299080069373059494804620363864527963301949022247302083415756204637937516204551274975891414919448364786040745358718976866915980647710356686658818230959852471631543398745671876809521810542755305510814875301419810703235982353429987726971082307972771459073463324608555684014037571989040936086690356799961680372356983450159267737562416853474323547135247416011193124319449355503614290686600706295830643694776137897593675459738362546257037471604616698219893065810838931099701406528107929846496909313771950066102507297029547413204144129685820320724720177773545759165791279666943114694044882732392155706717345405824791595942935038539312030548908394577382685489812915170532494044615997899356705141245673757158742143869279561348881678846523062872559582556535543765340625746184608132573651665254696754369939863383442683576144153389892937089687342508979459484344048724789473517837328733039785681164860773364262543861076152284407630109747271970109169584948534489138510794056354794894106457623291401395413074068910676122932854013974879155273046825217161807992075233874966639684387069075985316122841400961066999208602227895254808233019882091887930011895472163890940150598037614721459972361819148633206747209559608879018378593338659600306530446687134899587930492787998407773330850235796762681777585060129004235777811990485177915760064572041277500918044774230835349641784209724221916603757481309411843401554948942807262651490979091779068680461437496830303978833479819500874477932216979044369169347342609315081308299321828838240698547644546509853053837938084156160566823375879957234299224037309573761947509429555940385511296844300343595524831624863964253456914292171697753141268118934667107243662091748408782250727273932488270109085762789607351356451493414858412565293286954775583241166010690987750829271415200807109806548755122599197326588984555099625664863293717971005477025327522641653229347259690046610596604670276104103888109104643619157763088013629122253812667907537856649553379609539949812091164906025538324909814095402093880430203327187614256798944813075031968663984747855033035515843335068616862848475670240030014238809453428684170047820338678860297656938117432186760436524130477759560398613250188459494046605209027366562859050010656549620927648297371795913933574141052370023223569369221154109491471111355894319790231564560541789457761320274861352464508409170378159360027646920850055022223032510055389454013071919959977002821188665684909485848282932494793597686523322622081281238953926475150048475375577103604206563777226975943305489285705417854234348059441064513351883738795010502660489581624768271519620069762391242547974730067105943707118547504976726230761190021187521865237628056884789123949687495064089092651172847737476794346620127888751303968129433247034458799742598703073485875187618033994555352087625139314868231836815120150737877777426473220719387929770402421917868328781975632146241019131637113710612272708616505367005845326088375054910641175803758690131290313568739279942608529776872538343783761269497769770317589955528629964252192195880725207408333553715961973206329957974601012204546605239511761419047249358816624012635620696017944001284268345003520135626615026178188332095626537472203451477899156607952546164061637041968890365117789582294826573792716576377017054490616138115871011080251094681056715973263451547945587899825415482392364058218197997603201387047377304768327570406905441618554786696882826850121947927424545102937810853636778151080350627246969026904922589646707196565971828098137755768772609110843924394952720523888291618813940699493904595003985129468463003546396956948197628022935994193149375066534639077810643851761908909170837943700787403758248165888140925791212354384474961039138326299320477262217126153237181018911494156953928522099675282400565696149287640562536430933747723173419498370580026384253045509082198697976213966965684262803820614857449351132996534731793383282574513400776158990549890736058306542268076277458669336104197731601913728507596695642403245464950643525625493484639774160992961946085994964248986357517703576858337333569533933948114024472281293022600313003979159002516911738073445018625020045438562410563615764704470186661928312544226671457403992176923437013005843859164258624915198754321924477555540980493570226220321887167717032005633655728771874166368222546765967815232801580327126236060407371801343151549195471540387730816705708615339647776537475124346232100388488413407753418938714899573031638715282415530245190910849785427454376815379131594941540505406500570562645436782722087615112734283903573166342351114286271489900029816923868441589784478199589199949565585532138935057596276352959899012491164131451879741611523200387792515546257148330334786521886016042592124243899425595230349596788746169341814930206357773961781870319797696975942364087630259484558063497546223403896042145189781016437108189854656651479545590867401997543069725322145630893339178825858753473033161617061785306884920533389062531477138727682513526444499487220248920173267249079784772993651055326492311497941640987284469795657001358254508446788688900357902563023319896622368430744492681907431760790767500324614877409618723778610688316623333336266064128097452121015775515934029954277327596901919815816800264677501276260020896689633351803536668247906842432382122081543238918564368365880209250968076327701993165321681685743820762866905318299667489629036081532558845341279890532756006684571021723182365336809481535447152348204847719353261755054770521872572938608994736267950455072389799915693620932246960680338339019101291049092485132613084428900100825929694028367846854204879392416755926532084569337449813871200447534717491852464504842843761194648430743689289115150103522741280846313905046874897015046979838718058727123521058055426674018621261791998113201454240719836573039633006206721379332900985927592683084121946795646051923402955248205422743081656711126043619728003839373363706612289426181266328813339176062231060752472156164597976223977620225659787577473246934470945164728840798874806318311618631939860286659292978679938591622973027473306493296302555370385525472897711416334829249138996027214134184248712836786763786724528351286071361691493023752413706042753046950645081889127168112248450153059221562713825461742489332774996564674012148823056716310731834783702761739808110084600462279883217365266130090169262615375044541163471887026872095949964960859514105175162148076387913391023175792258548360282881914743043656983092302205165409740013781573744354730673822548145592289099726219185856034906075971641252351096751436541020899821461228410747747284611748431570042996092514013285098744180712346452822814652203715464094370137391639468879577929376355849311508139486136621897579107574696740559159464945668598660120330707444205608608756619085699582955711124191638715930098224163587562978059757778760796936376854681035041708135041819237729304963621218662041832278165427003026284781962474278880062966778372738551950642641803849121848329089478014191188985058507677057336929677496139372882460733111688761107443917941875562627696523161994607803630905240066316504509139693921743374560415516388583482378090648117057937910000152371157603182644974138150087890961723939384796511615749321394210067477794850437077591244458104528539983564026317765395777559471811049110902983768218354768100760787253797310103739007781780046004037680516104847378456128640800826892452357188164454128066828470819167654942645376160930241107509661313199003776059985068656221229818186503059106475288703127871157824198144927002735594797646973139510237715053425593391507663390301974940164201221880151158305873702741286048116761129483504188538169636519416431905396433941355792696507809537132336428077725556348135261351838888279119130361612466324588631524688492292562478279845557403623746855134127934366324645578790398348914487364504517446764412962373534795168743759518359195607416287331722907761728474790893870302305250299509464688972619444624677345374609556818997345539929406858290614215371732582323244969003030113747881186493098186669087202729213228292992831171770276236316931814680261945930923507750473480124243648733095103309781563721131237918594266317261686152967189519330298546276376717816709944655916374866469913864642574011512718302686559756875279666325177945530401953872715151247656767483052283770650030951113965325775800163032073047519734249539936773976671743920691645261468778142510077751183907567685215499343856645015751795590513538366239753066131615874386346866966632450455885747382340363831603704859969292793479535322288399586723254473850200326351627659399984176506776649869878206702350192801609745554427545850796417933348407387605623806332291329401470062616679486981655634006122765481529365263011689148823114626102385400114886071555189297846976561534277610875659301340292223001801323684452356203480294386159170412035014762250309488154318977058597736653375841202662966149807642890152280248592870761258859783815675633202579487546383778425054470502742985787093825591898767449104328096372592215215519002062137962730623400482103758772793945000457218493874561725334521612508021744392871257514512433803083184760392549367346400645787359128148620826086224474104811922281656511062086897613590751861673969592142009054304424934580244027442077701605209033338682506553524732055480449795773813486293401416788014824729541435940190094733047352236876420286526762678443452109119543652895350656052864661986137768296243357668738617429669383782603855193196335611303371961376525808646757976503114644982442709240471918099957283446458761673227403651547500748842025126838253770060093580331191255065182982490860074471054277399046076200568030050194328446350873613835580444192918863857924525899744685590986891759185611917156150427758260702375862301152604672015274911910558639400814323123263566653730533111554703777990220422717231906379070154792019587735136336994415734819188092367676731380181529559823295204595276717523390291618631962606433596959508957550363721555080942851445663515192911415020711444445817970359248487744402741264801156914256412858620313983199371903264419846459863194131516078143290266814689522684532322580826863716357755748053933854177700372343854409224178295704026406053216396263919867017440546968979059111280493110951542997047120254163921969340699069124552755308693928448213961646535019350916721491807467410329835651747595553802619546250459839016570870288167125389925449105420551197255911608972367275861592037461959869789404802224588424515843875244663330494108493748230084650144620080480290041416627201672019130620767635293778490833413223474802858778490607762635453768803481206364306301628620970022569463055502669360209232019126319928392068389740177659974039330228429265472260235011296380277019658118017902038607808192784433398538492779189286228819585038092617592117531604111046169945964062237784577807420457457986397585921285292099320060320420950074965082634753084543419708039398668831348144421926228805238762630183014856728590595510684846219224285143653716821834907908732284527498854043510650477147295633798256469696254297456010951801654724470582138966470741037848694578887657956256654028969656965023733902265700808413417944940003608209053389550374169199876534523216369739722616539874218973429805913691592726571391889689707634343904576764258373610574106970348275077077442025140172288215397611991607424519406997511491060185203272884573231970554251803405715533543130524349649283428578558811222799488605881968471500058992241782318721542068171359455757288865084134302328783931322525391998003937216594825734675808959674592355476620013426775615160240616142367764592790775781422474929171633022587763032311224429299250079256312846417682709078598671334105051101933828595781797148704653374071674133563311354587700580172675229698422669015222481116562536370673628193591762243247768026314102305461629096327112398010243291654610227306323796944812467016010797499896618556225741922453788589761734450891223623211814973027141856671025217605624346423785844526510830560916695668816175415081204051050090973964365804107270600132071848609579780964101397532470244357438032529337807132463202140455143707351012791632265154856676092863429457824933023942371000417104499161709009256159308220878102202732199771715899304376613700630054125570163344730588693434435344321099738178445748443289695196563748210208461082596849112832738043329706691825520252367088614019328385606565564423738714708579159229256687981032922764030075261351349369716629210774944983706643666416122249287736397204914847064720945734312906598673464424113896866091461803780038154025712335726222202934768247526648484405161139709631179668960569667682891978522219636144607532991683900861172660407948888603920813376339624800982255418353886149144652125396913111344660106956421697367366879557092472054346303269728195663729923520240337513107282700028635358862168781788291943235102558784964255482498250351345902243119664748604842938021846860827190641917748061495215694968840653512115501352481170473266886623067752505586058342846320271800048780240392992186366631681589513309121435677268364561130124082660566076871492431271787108769872251107998132485373502222748141723835137648500523178455728168538656830852229133904876262055409796729834089424761054050702969439912235461235251585214695572985970431565015937279343162656443041121634547818219250093847688280370640122986880733061049238202615084935319556608928481932973727386598105556267358861300862297231591403505948050570979850799611292854930380944832388402163384780939256437614022302543205280222618238656341456403389847051276091865912175397085308354715027785253507855126194218137436314767177265655397662240647941756164649033808402344942805169136774186921656699837091947035362248147394746035166838141154047753561728014560325136279396804519020638622591810481229206171234437035229518660180285328437492658715206901978232232073132139566931031823278142787354705434310278897293264049969186546904122104898733222860271193653846273772384514379742835854229216622224263905780404246953351611140136224291539682067625363220802154089226691953320257613213500668711810239412434797428230079427009259940393437014060379250535392649663449299577401800812004506401801334121239835561229072610055302255355193497785966580691427713288104884645531055486460073401629412626426617448764201147338647317604998534460557649992905833212153746241466509003632914687770178634851269387641553191625476409667011870844348645254132764645013932984920955980200747528881286674784341559731684027569882374284100083512790535799689912868925396443436146982178059664530965832714429102656064753722363512632222101795463225474725383012213965358724989549477970653479746655393054138628947671266787671224207817170192491096159997871007317817096947174552045773906427172425963225926989812784968505816107468556356349538727075612347610203418249174643101161303222992546520720585415284971660488550418923237315588135332893312320108955468694797025221885086344962562950279990552221751902662314258149260499377767777756723952424267866189856232461674672155006219055893187698983877742564189455865517193795224056767450451236728002773519765984038010374661056966875849915403654483489601460945666001871388454447816981083753706712736141509509773109089501706548928955142448550609199206658590506492693077825264982546442319991211220620998694054849030100702914509586564525640509927316507595844261840432293475884249610021861552696548282987469999273741858670485922135223360754828733296167835534766160786498233366969433588293917937562868640638256567862512460387909382769828900488485079683845572796939748247679034140848218714931479571958736963157359562543004159869199487486874910022125982976187393008721836574688091068112216199169145400835149331494307669286393231329244156064266592103414566822200284518407315955366283155854312890627619033401092772754851032797263281589119977650451079722058607594554714499818247021134516068137695476070392187753548908258398256370995803467299869768812699322959444328261104851747855189424818971454669359281334020378658460754852153113306029281355250433013383456052277079931581031208471429504188770341421140440026746703357888286230692800510100737184300274933727930465632905370817426935186160659296534557130563320633026323858514766269400066975989456132494883518722009890642797942662395921186416309597451789201770514320136820515937883786881797995699958830238027615866631253482828005642330646699676643992009457014347768626269009064826679209192974177804265881792716722654151645623267217241413073209040980545955531422535264288321953483023973367993124591348824047052481435201154859099258748640059913384679929743369652260146770975672265444684601234976128269495571040181061547817680501589236691838155067182511130959913798556996036589966218822702939050872749554233157148884913380150364593441247734836278964662502801160727244595822059593044407532303339904150299787952472651667302703945371741430227891623051250421032451242323607481202015350192081993310496330460832664836311706714639748273026926668311542968509573721614365424454182485178646741508948707966205875324587202757701889519744002469532369119028657720956307318662453459949712025167439471843758306090774142811353635345212763004984012132786885117480504881957863808161210896766758903729898385898529153469862791315521579233768944136441553702738713306792707633403598097443645206310962601128589917906703794952583123751656744100540702550311827851061042240318504633558630014948879199374314746970976915818416804477364757426242800537434069124257321773545953146498588993006822692696786761561834123516094376692396797775336150625343360987932095873180974512773639691913606992748167544494848052760327518731966166093431015307955362213269706954247389128276466045393592200957606871991763100467357705969170703957735784456061411336572851234666590203885389064187433915523506366001165517189995249508572597960144493867096772070451630690211412898721799788726881019055788149662029369285317724480517752420242635278863362579898810959472182728677795365965670993619901605653078150844637366327725574460018917259471022908286158719071842465504519519012971661354071826015876983321583276797229359750511007709549124000581577065101118925607850372049153358701121530724796999149301618836699185691304212942166284622912188555991987786271783856581800028892836616615929271237187467328661565521566713831456182564518342952369300825394512501700805057198904696750383580741729996941170555976119529127870604658740368397644361452139398116177668488659219267639641031607299367771405047875139229834826902972800937736365523464989339816780227347195476957663293280160136576835077928383553589297981103239037450260413494307288453016502643755018579009363713642314537103692072811677724257166219236367199048040110962598046074019145160221296836823663111140768708193317365417727805648307009612735685939733620673103416891757201563034250777212128594738848279493837258457590099002999002421012140353566330812926822353276316633028543186899480383129317225302468351095188743355896299208722463432562565117824752078364647264913148359998759675392458102016133282387333923945964245053321477609942340326907065278111976407739683355506710799842247474987408635907433972108460310878005510068536781363310636581766361415550988534202282082516123695466989252322929796073521802671876992456628312705068896882392422344120140071025772779541690209889590953675596094750324742982205546520229994088398937655290605744957522735159949558377704795295495269229828081476487768064014469085144746029299282194198046423135776188974196387560955568131888112860213965262592466376837445962436182460211517376800065977167407421698161042333533142969491298911008247233529017151443208387830892964174085330102077421773908329455278808807587527542307650357148160980016199530442740982407268238793943945139148095266256717670124185185494174589196376902274136281747157989647366840013640368287398553734423874994446400322829982958790050827454331503739483532305257416021493340118580496798143284034967032288590557189938243467363420359633618559527966140047738459279243700965610811003671149866341069521609953525655145012370822536095385368398710269800186552098604800351800998714142275082490345804205372099718787105515917270243995876053023893268506494423676558130174639271140964239347203829985875063191782663902296488036821550427797424335907355554751577678904973530675944875336753069729194845115571392920089873576614913683214835426120651765449723094460938479221800995078948262354036661848409325971688481596323928554411881112215591494679604153180980236571431409075220396628350736666566664355934374471721218328485082929302483327930105050041248372136265543932103007829700530080233089865592710301697820233447888016660359478096177581345954970633837454433127183168833750788048746558166826886451595919711226628365172612072771128562312167180566471246118274364397256933424731410763059716350111042077087539399236908256866570347025462081840499425311111138556908083223474711808987348712448194363524172022089351102116925179990291808951914508014851500845498902323652720564099855017158285531962317788169162494839230554555434302316670901348227938093189238639261466039140544617310077300495384210405811228553449930527863580729300746755332738881636354045841340351296135473398016542973928116553156671651750535818844916445106565025296240487395467272235968267379863452573606701377438562358400325762018795835279729561471058709080131891702210242934696425675551966115171353029976883147093709951646041358303792142674297356069178176580903661948401811010293759856936177546203446196150211546996611959323578929664706906565051526745298375390682044665449540084469607702294102311799233024065518922480020968222612087939093356587549050585455721216287172541518676946287462337714971135134568598992127935620384748436810824887124808218044087013036236744942398323033273241106029823684610104889932360550487287157745238147640705719086855323037523495959379384484296913787954771243404000542976211799109875989367462719346403683984096733855017783700932774441665295048625838818330509559266071054902877143893593063206539384594828364259624173222660917199321918158855045711032611587651175917710278871204172747739830596809255556845318943736256565632295231193713192806202593754503807036891062042559536630684645256584372442508658623849312470696265199990751138044375953307744941361521781050291898347399586498153550485742762832357099814209893539766620595462754684086832467991418106531983142263293998382464930037519020872606256137235506034031867900256199689060568715144095443988829830860683488546715288595474753733215046537967249655047738940526350054842505424068824857988560562379085597010932082196318612054537190482307789386722449103894742168406232318791232025558705345495629119587382486692218232747002609930114816004430546211477199015056162066869234524442830307933661363769372727534469170695272901597485874698651032956500242124699018023122580834260839287665686823612700968627034293788506019835896702034346877425305500300881984460554811475786273556895777433439859233321008261876519738434863328308434832444370013103405235759742494273834619595249731581399799753799172607897270746941082069362346221559227969961667178076489551498168443063971138566360412492540624371875813766267944259070322185813205926829747684618018478280256750141375219242709791547875086108127984701214343195935696039121138852472326879445453770077755264354291253185720615311383604398815149107564765550701018531286121316190965737427632253112324179225589929660607360246263420047438837699324080751966967391566057028900894043813397333360357691226133657986616457702647703161551022211291242338568235236364471514022736714094357670387835242427893121238484694521953714342273612135284974673367700872360639742763085023912547784511831275094872733023781943510152866367275481515595183613089991538252329098747501351998930207981761333008175447910768292696340376698464904200947529319963373573447340536358127785046516303409207039463634994346889293013413226074668406632411622015986875197752511572836732735318915220041558852319375547041076690958519607657817831060159709897247960279389430908882788122030366495108667340483763003471388920179417585120285360940037313034856730502727544490101360699627723589906770717690814696287261129397387417795086884704704621117809099061253428209107201838348384397787897736756875541341619718528512362006730958353343294413600527022439043017388531608290710788733858534078358370690421148187400717669454312488450973833894046525013585522253837467673144035147098021754583343872034124469462108648269638196105651226328816868817723910157171121788502461994757827163570908604351326148469797760761191271701164702997942771982573219840158980527984387429162896363776024626935737667905503192646678134712251781876201504426345511995315458116539800839223274420138269722300393559789756781426772105383337905573725215111590483694797351601493524698666380786745389553673924355823865991541247011517744439094401459254610643269451929373286920458609238732880949944388200602267569514186930291451321470289114942164192799479339840053758970768465269583837114710527839512007438632124971959452362206088402768508095921698548924123608280981120741548828642573533669145070407343123344558876028323023101688852138033986418947353228573308674237623924841895512124714227061296026632695293199382561448975643004729422613707608892434548772704847425061869804259275110101829891419929000994898011384460843704797581255133307479955548339318493023503824134119870506865203883587362413141250056943442188484324935272404772384449707704597399341279781855589230179809001830048458101620128305663023450036940612787340802142234098449923977421733924341918165660253944577819927899833672140663245982776004917965034152766462377975561951114784272262040847003755036139140599195254811824266449868026874789940150191502301836353646255032353651196516577549019930965021197304923774228546955544360221592327466471867128509178029478139432910259143006579801300371336858140975562662366633493638098109437332137413611280052667859903811941287688777381274562433530713481140347351096507902003566387499439017669982636080935262960952435951003726051362259521171519106462370269334318395988699991039403640708877567101990578166444023108721610794997244688286469168368846089766349919704342553247901019394009357522961937979193371564165381841357428505332915340518054885353592865919579158301890910752846388434874111683350548588698929520835365948725330219421427705851937893572651796753511709485158944123878323117779591020414955093585699413044772582504967484616895219812184153984960710639873781029044464178140361109693632866278697423161510648869457694137014324983378277808813412545206042654518386263801342551346656344547343883495018125855060318821032765859294860771517312946252016414102361916892599435674687427667665010113310146863868947970963794571822604510943589803252497956024446921197298372733957733379449494919959643607190630388450378358699711851473986873468293750660606986878401703201400297243003409101698933001555398110892587951427188724338774399607844448945374088478460688774059881516686552476481891258816261053579005902683503593422055502474488162428892798553282663832486809312615668101600236101640920614043766798398635121645900645493799567690202318299237263738364899931809989767618206558314081197859605518603827878504978549339949564725217783590131166778278283355084721833361024851416866133831551017919163464152117094646900223054424195665692413244338558816142120447590004984972946660722301568524273557844494576385612825841630096261215826341338873353590030616545279696447716754709836290183812722942118870477715377320804630140181630369188111706419329855207180024773356946602239166024609680517889735488834364227007542824363065306727648965156508739811699245967139027773909036259395712479231486494429700619768109692595633757800592631710899906480764933299928886461033638257230191365093707484111042243952729246352127340401400266790026289999777765588840599053501757160429059430897625939293547287581264761347617902955998688538567221598232989573378821742096820475947965549381987316570286136426022253928078564891004188902045904602184924745306446589144801623249083092225541667154518680328377774687817199165909489432953443137018182128249018211195573060980880707106964623909787214727776517373381126393815545674334308576058196876959085153350677525619166844530931364809902644791697800789248908879675045296619168975434929927087996286169404107971227197161258243842750211041583949946047849593905151544411046540140896603249167331546456865041970752013015270223326366185653867298429948258504637212947882981093729919745468413070113766850698057327273001124464271048486769952544809478141537982581143618616892677037570943850124703789655655736310140941382645563394470472650361107413671801444162432245502595063782605680977646158765295282642170404368051670798132813370816057693698130098576111316217337207861042965966036639732684468367908369765869670572429778099434844644902010218347612368034314299814046613126755694865921514958230264317729982954526696091449295162183356333895740374901350164100028007059947368744140720798584524497068900230172720609101069898540043016577904867307891302521205753291275146494290321496701835889248220790911382269344811908296893094717001252673670708476609477660582959085781008056102226041710563190070292058620475657153168884510215183283478627953606415566974754254391971555644453862022408674970947724083198760684590077560169935108518780975831424106070445043295135335477918726459464684184873928101205778695474582152026163409609933788957505874905372271130543651267332861264947923644182466421461509598025536658997485319897490294438616509857199047347321820209155850990877414707895115451907844225399615749244959239208740463595619307396030298360436501933315929805151078936846775364771426646482096628939370678307476146930441324795927123206107730477379586046449911042737175700769452599283860116406539613242338592143515909097638415986416919145633591574995158634187207511631135312985987385116957535688054695932377401288092174522052541021515271388539481309698725506979041874286850583069692846608950113247619728990787404474725022374172731338998769812609521090934540719520610735155262414399998886174748702493978691510032478966943737798472331175315097898373200963372655016667271622373194909648331553407902651898298251209679386227837457529487447205035675751206721722400599603250585385487326365053235513335332369234324009337578655910304807336174797917944154940052190187822763671438847199309830074452126433855464971795935709069171656438581464681479211142055617885972875805388780933571065074934942420484585511704864017424072459790996473088637273464204413729905431714368987155590553870717830070573741865879886695550759797565649992347750211424206823252273069026905908492842356759931106364589033394079434838471103237997518326845640336441323139905627886737909040394898513061650106689096846124231819110310586115090018661395445331667846948474678320172653964290765005550828864103723974023121965858229993579065714554116696529475160192225099328962678665350950920700963783925083826289385642451159392552848272956710247271424774551332193647805972611017065193978259590404082921901856553609402190058755300564674258818066864067728365184363879862479724580678292614076367946307677184822413372567229050998475685321769266285047351582794811215733929819678826485954076334175978078963959995054752331359870932889004628183928607006247306251794154018744265159115030758995244642455194256741780647519923482667423936619941354290697943370180228086023574206230475325471382149041803819619197799089144690073418354917898587473982453057046674231474396581110312281564414084241293969629711634945591548800327746858153949012255349951566846938113062598855655769870456857774103552331720048575591885846284863648627313017252515756395423824664849122384024704241545188362658703315232648256080313491192717027004902371617065879491278094925784097791315830305308744245303955935673066055454724510339750633147605286681727622750145133662406326590118755380852402881731576141013762421266724397367691019617584827581188954761294765178999985868241303724935773952582449137490066562960015314097268538283891224390485073070893279218884177651428578641525416417497451755963196855360571630202399134299877946017657936691351558189513859178612828556660853607315260467026712133572537801950179908206763500572297551369996427868366558372402109366657983006460849059429856053745522473907200310339121565024297661234003521996123250503971087404775860702019171535305250494882086067847736569391093490924207090554179348774066672115479453938621388814827944196831239754066505228635516604203943586417028321846377621764721923498473952060873749584606990871761481045735377871557321956777845945544613932393518861715422464572437141880272193476890860235933177443008703494686727246732696803426710658016175846995717434351158984491076532593425007042542546359276197462210273007212895364893219174162353468457223727451871787830894616431970791678380852731782314737405743618116689415376570974265706151795543602508584437012641942984802090134281032399812862293912354208421809120831668399155776183240738894933498963195249250250099711985564309828097336077444024985976886238913871217211129295631490873330785591515090326418608664191742026557369694863381868602341840404368368932468956249169513822221963788388760709149519708995984852949483194768827698819244947864132210727987001290787617522245863638201105715699118085713619290815682843224874485730936368766082769805555739017119632977501077275644829099175546831467261122404917798951102595885494114257374526343245158763164628571889082472667009857685442643293603815022912241405709149694653846441259859653941193133829082274523166927046289894155325835198988568061742545074308687658368071729671703594669569754354886170376205576949834136557227072610180132708148092063296130464232000738028961149958601042289190827953715776042683066281851484807231392567407692585443619234778029683481457765350831764595322111785662922897217727133687287951107592120626159187921096425207163116138976345353564766963360628515509050294460072698289926904219187406294066726306842392600054372997301635989193222548410924645522786998979134305453431317688120425591438475205329326036473089474500526491819711855493579601957670897846018811353832791767738433407674406529856507657174618409114538452255418542705617083021463975694524948339731157245775025285185522627119347655989456583831027417465789513230628851592169676281388954879402475695225941038618039893043805600308116938431923287126462794349444443751209869834264328729847672398284633020750349879763014467953224904264827147164014879323164038611817543339192437201850297019588525382022542097802351905810142826391152909910251234710160605421820860827126029382168076576496562125150439329188964435255570374699578084313368548567194585264020676205603338981772251504750146111594150165835947403600236379394288133860806591084140743396556445683263382873079287672858496428239198732218881994945185010418634700681742585961725427833035171453104531886777312526098912365877283875807105355363828394366357954953581490249429281416306323671271660621043806000685553479442295565401719624609772040243438291810713660296850320769375767845892927639208936202132394301439922109632888039043734648382305629939447263827508653969291519186476713782188396345466987871779566309569161150893699955485983098202544982252017428959088899408288770691720885415472549234551677171569271888161640961644665850359256506211250193781603509499683670565602750061508527058450454285930144133135799281681421560286466746371752334872236087956715700665831703699620827003230164591633122813452953404848948600566171135172335069298237735306560885874008664872216744768709053644307819714383569165689005408941753001375991524525602567618507305768215447792154605513002724215006931506434854179819709911631248246406656533400017447283869145571921425753803403081990148072893039051402217824289116193962355730189438889153435179434361045040482489014766420372651203878566329220662723583999123379173525086499120687322170034800774352964751218394665669417129023785860858508755073872590068943037896319701118605298363059205112968600612826509221253388053007226225241979368277238542600836553410468623333569885744024898619373120232126835959928355561609191800748204999043952251531992176026364728864190054556922225857751866092806233320841627870055464803299182251612479715576576372878990522441105619478315363985678869600850222430219786872456613947950370952233474928913049409441082110619069089413322436776615665938344508822460127903892218589969408826202093116466560060445152186592903522457951312008694446924546870452045026397692059715103210063028405171345177098758223726482291540593394279815394565558461288763315228311090891034083163909538103819701950961866622686299220710936846347439151020958836590267153433947774404222522708128829262654909417756690989372997673346583273932532989131433992554264620692242404360288078726061787770310207814262908644486969059028876496593191328816578680515764014838885502093596369630964903861967962132597467977334925001348644482902037651677636140467443426561772765387449014498606246999201665046332993567952197149558124757420479977865105274021033214695548304293758955444106591816068578670231420728377491882986023181269851047046198427871354211210361947735142200612247074872752115377096518026162789993139763689526179534548936037481762199643791270786463159132352174200875872416066608696503780665070183945045640130808829973687906396663753189472480363002329922781676857640936736233128351707804708475014854924107190017038678586921136240734533216317671418461952339476369207934888574599184936478918792191402088679070974611695449557095183576439865176162974035960368835651827346018124726478675445449597146409190238788780558467463364098196954162696790696085520557764361748937611654792934540948128069097121614809489051698262135698054112154338441353579047907877593505276186933357516732262391308677597791834774449111759634418742448916695529375997496277687624573569293118351015063425385567156471084722186715814402666259812587867477033277832429766986692231961830630852105362469617506202648691696824336295798506601530461572483133096432029132561570744707193640305453168426426240258515357268459206996830617451090604472279085295913150716835191756989837690696069324963885440858822474105812114974498499732583348666147632132142244291181442325710716914930041938869067344806589774275378706254571601791844673468278093177530174389791048399025810180926579246695033807901921969157400790538782449137187003162161451011409322973889983196505161804366473290551238779302131642349016123435112342243205998362613464398555711400027570353798778487490928459863631168713639564790993133767289356416231217477051810254566375278546542042965228936386693242220051036230267250345039165879815454864859208236496836634686181712110437123305111035020720808790312481898425656968728985304563365479851911862937729649675441023577561969544440628172544803928104259071753770543622799373759466565183002373659565106785382390252584083696096658020570755487867693692396128042403309980324004795669119226633492084880487760105513845581971272860994270975723414052180322453331341163675164625461399349088964716543615020623223602401721836967788569136837393312703481009227241986548524463107416178459291808080109777436437225333100089454250636950582464023582119114573584542830112642556196636848048661634660059376584797998278875684583670032129622868489537330391070922807596625913561960376817412079108220076753935863392340384347324991681789504120315905532855516848256774347049319053898831860103682840837237275312812660479795604437989108823869744108632071831984030689927324010044994002755908894444625547110388761800353415217854788211272829266850695522805703126566760168732692877222502807604349190868518814652080956269675574560977523888594471036199042688009860233412935907315686459154462343286222122766630960203440235544932103960898079305114099065030729718115477617528402871630019567779892189115431956546245770671035292874886526160271650637791367599780427847573887218071870281402860577699074471160038305427781746603096919856229905426170413558675866282110043291432622011171394593786709647797553641862730419374007699417654543424928430808806263228502357440978051961587057799008337081570288100612234657055681093460823394423712523525635930548409000285132679957723051574766977127220862998337362771005801903437360286999979740221778821885683529220355390842223665953443714805010629179519552283525641734578840150959567962732304198051050535359423648006687517786437362832445785135494683847195837082905055836906186320759685610152168279236856247758895603908419062513374214938479655072477616085883235961269299432589765402432622653092554790547848556676501912861950755757560727502968877616727582867225620235303790585074045320374086852519985763112443165946876402013312747769294777945912864162881993703388211462254812104568584444547187749657626262399408126744858013347886525736617088141754497137152922326878992166872101544361348729446415056214689834787279076736838492067866496948582665924584599090717568543503236030993470673810718361280267749487896056596371476168067444829167572597421798736309469362780211763434922959114710867297783478859309815692897205738080322580139499479686452951464188893770377654027922323786342903463148608013096489140790416971776652401841440421974167880672755892214336579220484014314478295629602451724334936711895828486793868852526694241015096579775571644701020073089185731706238034430041577873669131819738676988072259525496638290226036002416925626672665913794552503415168233756855606959934764484311207907534336353625761661729924369839668873029575360318201763204182974939360710612814165309601167971291632885497449707611079992406127027560756364869232350818909468353361258166986980923129411892607013270425174627887574184773426662078441811654464694655914228704901563287573401242505662900862470228844542539405811778817838247582655463793915142909970897694960554637624826352174755736881002169369722631583894462176138997311377026248681755057058326411923522289462081386752486619779226041557221714957758770735401891115233044490251344845203212015929103427124966507358652691484117683488409105465045217077887510354450013115519356066658128010971966406540891072379212677453034445826633101722896532981569582563131942819759554522353605756796146230640066871251530553977427578458066009122885286911754498305907554945633560527233015837913761538496151426183817121958076470522788384140359662403548316444027041381959893816802712844017566717760118963354878918343293148588562799593547911565606299611646108456944557942492629837750409747288395716095089096152167059058187764617428766197848628615497739349740435107559068989210324242706091801551853994066620983600817216004545495314292890668772714256267183357188903904113472690869256558787995851409758460502573184453538154606526867618819228314580155985375427683449567729119657304734032861703489349840991792849305908837155402033500215055522639778233335338771222233809319597508445467544520544352507477730719884505208292949887828694747573269200071781615260015461992620480904978483427479394914300377412051685696085371045641588590573332419130591644161255415465753570179373370027453918927201334914426504027655961424470871493748817178566298014098717438944459597154069443406866374700445578141608890612104497496031962655264287452095304547392511454810398387489577669854141643350984373450568626239956467042302461607130408273171541853501917669436459398131645893741509433480913534134376119999854195219123061677900092645268234470354661840106944824382643902483785158091995473722273348947479473589863380238049599731711007612268526153439878713943359845448704079368522305240346497221384765897041478780557820813729708571265261834391197676226053450609706226969198899568980050569424835190170323458149393612388402408146468688143396517002626807576347005624380649621512652743411084667747724436376283160228133736655875201043543310311296974354709032619029303958329141831599219558694412491748183336882049824058733182783465273621204974045681929451075404366048163266948137910173758607786892302222426845442565396102767815159400312009480337038163845635588012450271222472961329272034106953516174267743427504901644855457630003526447723774323164978444493388418617853060648590103350409652422012391532329085787635252504167085235577307658052671292083189897135017836851979460071562879523950443950170743422852535042929528144553411518208756962826307570258978313622907464759132071423763084582650287933878885492808781904361452715511435367873474304624516435283298085686040993711548716123154752099132129838156462798230462917127976505059725568031828480580041194262584225964486958633263439727206288353833911420982176493994686063272522879422949529716064121379364014625646951235577760050176754533072990259707371651730103673307263313324940770210111220545157990033613675436213580826330409982023451439655978630610624335221589906570062913793317014835188863498530016953330223741406523527179779623344234823469508057150638365781131381470498655530901542006584234650510562913989740682542773035847406014624922174279800488961031939674291231671364170356475806763109058228640267034352751387613398521743903977393192952261227386116925330573479292022379462337353975131696925114320446891072935645185516536187975561479390135782008678923079810280843613848965312113263776932300974972724058454944333605117397384962379086388256544405326862726911446590852205836072291318703503049050333042214804559075391273445053025229862090207838485691533119705221190458678555258424446444857890238541535004847919761580047754458837721005873370708741678292993607818825310028317170611106377181874679183707666646089080845075784826015340345075054255253669756437463933144528460365306011153936969190027601289841468827059758041845892529275346344156040633735196373713461364779268708990616362237479666812329785043621780393317314647279549116636578460946597330427816711841746255731514343693854209097816521171701513828515602832108725481013968341860048128626546678155989469830142662339586904791620320775747983855685632887247256748288757074142780811365953315029268744090592128828625180178800121058189951815341670557075612975331596046499240910574451647373847323320934506775291909757869055877051656045466753493066309185258379249567513308983213593205562469875557769823389373272970895835074127518539129358486946317231859088877692929570587371385361965313476100388336822171531146440622260323116661598563432021579487958972118319550932951626428635265347818583256465223140424270766719904956757904825228549552145509084606792517533844314746556836507733616456771731845231812507916044391725439662762566444790764701006138897467742905868714605369481865329748559098194255597128308006711612755232785952750423191877370725986647909102278818978038597215598791892129234215020668810805349208899735881389135516296210764478082170541160362473944176827903741705905431335732872549856942785237380163718827005584104382853185418846518157919071204337377481202842259130498943114156243684965786563706545114075145193283108263712537939251281589526213748418787508544911086753672415668085005449033249277266382672948457566962194314195798076869753860139278060714501673071636540072456337924664073945582788748258215462315328394749239809310637255885508199547704297734956793794437768879985713199118008180023913660315081801025431500493299404631402421489173641175430814184359768788692646070913163376330472987650040669515293318698379104273295927298348424358934381906648312050795429226747542613302183095693229815608973441347559425405153765576955515439827558083610773880444666541774488534351778193311525874547997955481374368232350350765075264170934826548598103332498079370851347646381982284315685562281428659682113235887615232661182879069272213277470185964213364072110136416427888188136314886357123577356434689773121783758833934708871045523485029742595975369773024084447125412202834372425969473955639950447732408069247381376741790850218626097666637823205337337435098873304914720812779329551729739246990859103987462285074434924840120100450165727078188730420154570298278104017002380197773883005878535442014553250246566863268005827455478828524968013633460237287926996724800688413674554126196930409331106315009761807556744599162009930281900792565509984712985120523017473387240645877088350391916418352351965749787451131582671688854687741428258521541634573605147556523101974968206688961923356886026015700098736729375045285443297143139501625564853234815542394577807815301734732383405489496876655251768792040105406170590320794886248910666760267410209212356679220335574517979914621699898327118571426234997715159859231271554310419216110122968331619507908757345830135109128210753828299095614076784040695847239474227907783252214616512487290439797244809296007745128926873575188671924091527183364391089170013668126865168468789659462582848093644305667279520989363168206425923771634072024220117206834955890618753970979406624106320454585199631315312014932514911603534744310320971436992015670292572391541295006012129632077190641562053388975631013358943104465101205593823433221475377357283522548964606297833268165617764768386718447912834694205009217956008875270940793334411027728651513329833776301837646272148125232914918569892819726443993670159138040029077096361793907233468790559875411717860671903854876157076203468743244037736202534190305453619585411207109872400181859193838211205005161871844082353249240984651470628728082826406863310937835363171233967493954259378465314955872806742980026861929794908588404562572941916657838984326713114817884189522531930556630189978097398190544296184588804195004051971649350338933444349764286819462009634299068809984059832917965118814684963892028068195799526742517858486170391714332945742220211959158349202053052507525254694420624649980985327487760930687039996185686987314291434995418678963741412525832832143486599762469521436060755920723639100819253525358634274665635919378919457730280970997245409720426047538868990188619345520214358271240089487160007951234056900798146831476614168538969837794329777006211420752524325586244722153775273812947637764674112497795457648724052677217215427831770055692581869097199430867539440017622997823262278369977729196647495066844326775877147593045252144732462861535944802053449477512124197955365994073276341891690795399657884284166208629547373017833614910767857077722927928559779383487320152784015564041275580054201936340115267866197513235675594118048081521310265415897964945847170987694705147081763052854534469828670837082400675590996998962867244869595783115388467698826023131600980871498957297066236199526918255980115010206992973954831955718660563366262617837078965544018651660872337519376204100292938403250680166061685236449235392476406300939042075965328328815078320757105936587726648206209018982641532672994526365763744242171089871691545164047460077698798554296199365374400450047676698173294017363787518451585812504902224769479765369005715859403383787082110655322229702582994591329686115476341403040968112136562107043282969978806325121349316243096992898625275199293425375208338517872365320477631876513572915160057306628440894187998119382527389674019515525547796981467406221882421844975718993244187192652797410689309592209364384154898252162509166651802789062495286486040147473154546825793676189620059515225315758249576305272583528568585341539423209496259777984089146158031788552750061358706042435330891109578831066688022682277996093640119993742367274262360970553496145473648411412114240686212543829638534781989551121379085758936947573192352328167040525496098083010098993156302273324223500723764358734898030026030291793062143534929898598823053410471332752303632234664295239443024708579238199045650658200456282678509276173879130196539911849940008508006006131696195939528035091497930032264480142631434346786363781510688652228391819917805570263737505206078960632576987010050842106766549654927639042071686797163111940567034586209755377964208027246082812093150498338466188428454439668348281763427616941295805055409771734998964840934947500219503069248083518374587773178483480359136572348707279399951180575643145005050881091595800845648129998207794875213540131524288518762895133504496693994273714904577018439316640047120874747187351799914978961987645953594479652456802145533188471812682513374405573532555989305646135865917906553754876094216834739322248245333359076436976467152002217943277700963732559052842092565358879438559213959177194037225064344542644483587895572569661226542132405905477377081167743739710827715008776577036288413896763392294619901743530282486413727222680077405195963271127992008165494076071665694531730560522948068539336521527274214124240527935726960919371073066125560207048952210793699261730526332339938174800082657858774242349107480355870786449496440428569210945744762265265959393277751538124367429343032237864322003796847675263389872552026899896482151455411168441232918225745393583992494614538829826582052514139751297047993963711938972210676056638287396623624752322688689461460496335558386774588416329294477510388876609016432695451536750149149144527969304969369678760218677376275630705224758237363907162289587186567360006591597047411445691362497177883035135217011231635224840544639273374754052506667107908250028945873274771682924266642001601526765681152545589469878545402997871928545543508278265042287442160066697119499259864632446955405489904680123697836831032148003626126491858599194244993998367416226844615064074075295218271553730418655761215358681413467948233066638623687134180890074723332209759384474336397398802075769896289298585008479574847535930221877528523539257066121940299983865155041916006186409725709534730994724817589553728841166943044165237992953505700271512012245417873050637874622792630451652893239484260111164648513440592552296918186340012700628488275456863744932068927620513008409293055688621821234248913310404526549339156792646050935259609536294302889165132365381977390561808604669703408832436628878272334173584318786771778457539299980537103163787691103068103045177437215587385297931835820630403729073057064225757852058526525242251678156903242233918502334440327546374043212817181325819105883381775057072205788756585232080097455729487189600242188893922639924625602580216062349082651376274333210028842296585423593453960967805174590124010606403687387344320392792250851109866646291839457954230150527862416105016685007787602709754759213897938205733155520501396086636258270140739472847420673067152639687327289045603258703766597831977279239773212388804479826343825169506178775248429909265680599152283676206033952681880247343210134472505891099816451671619145096565148869702153718192955768792080992923958701365080153348984579325239828157122613005007793034762884032844113929234188610395308633485518848673537539880964334064841531708775009027862140652874181490164613841744584089956032727611210854831745028265876655217153662005937960486971629980073525611937942915215212224695382112990986082743474082849297947411718866153030652326966367572354278138425443387877737632883048883866764985763072209446087460909323125977023903133437563577050661588716395451392323406846126263884552150537518561162943908028222405171382032854766971269565467165634234658169621757453923374579441296690826054517405311097868757305923974913105475316078415983937977578656990082872368102718045496076570874376305486235461165626426837697830327776883146079715197638940415506417988978070682302047712699835192711865689877840724641464839047748671972996262354023937295947415067687869893796407933107242090815708903008347698624071069630835901791221991840253280336007012976695245560120482287988504070557047934326999427724338313987288665150690458031427279599104001020669326258848511707176220400157167917217499479618702032054005488888664950546018346122154847347883395988961934639023936263278380708895338436595393371574227808451606910225949535438229744350196254258279134771908460208121080965217230179498818747117788997492757188680183487939757493811817926485412849096880243159893581579472057614330492696771707816253838412466038232214569049181691650592620039884758773997888167725060037003276361047980312100682953124825659146550282612928097356244987612479281599481062444903548586061978665573927966127269552056636253488756386370580035050976160323767897218289132833350526287121663485025733373900807003861103765264607181349299314614348173978437850718874943666775341963429178629311816455928847726208161436261339494072108950756427231306056245581025679647590214791061789751392510010982100906872544219290603507032408015495211145070560561201229346739380737830341264348775816911925824564123431664146112283282103965963197515944409978003644496904016196269846138908918681726325735260723920388739707682621837118898201760964896979265959610896839570517560515713667944348043636235440666871354920045607237254532160819051207935543894276654321719836338796091064018060149056040522159867282990850915144753939960307851393057694630584323526504959500995104370625000673157316631568165834867291747848424188068342458891981978942836435131032354566242840037717386215483779714492419557673641989157490250302826510946546693666371428680683030601020650008681017407734100631224841272669397997814968886703245991790983218865349700441396254285510397903799510539774243774243182319226381868018936738581764825489682822920065203655814013866485831438035770640704231224990068648364388643285862877833557864741165082631739788889129418597650604152371103879473704326143327282877841869026288874553735194355790749658720629267691653598009922432803124668401498796164185968398641427485892420968449755940882437330342706394401280014452287710620746610047246031189751740980210470946499442633023955035932481419972628746673969538124534522848095282996145014400953314654535366308182689676294933901075149443170443072843371606970125249770762993799120514493793978037946920456624276209268658536557111194015923106219728097515166337679233874007224846288364687561413677619281125786552883953901927372332669448959329668458158627029037268325435869569409455831657460274728338377964101945499039107170116215265007149337878409986636006750157741764332189512083265966822935191072338849571839832527105218280972293494500981337466385790113586959939989029176775140280274261162894621694885617203454111523102865088391238613957561731240102073769899222973484804210898772582158145107708767705141143914711371625701650055189619651876100877499820172494659216899638402095980365904845947264377892519056074286861127664507971861325579418655640861461318203832868902287991863647397438029779114979308164038289782555188270963929024148489118052061663107519637032563851688717376382413914250889714158436543397498579091976648588477230146574387517511777896416865458995234440374370877343948117598307125332011746359697112684110359170677026272931234241373737141983193586056034978142416185203052946525092273115202914739273635877971686656384315217737626628449371400385940517488672367999846197073847173217834216060542101393310449534852923293030397866633376252599653893209116054639033365456633588732662216560685715980928309876027875212393041406886676924861194010992020038709451249865558206449296140392512499328860269407222480002154869440562379383909255016066445516108777725100850998516978412847606719373165332388907989011636503746110903751684697499765994535666891705022107159189922385619674038091041179162201282365415643862467979639277967226257319595140005920534210933433859870406797519717541653991409312809987067242031648453586374761228151077922623197347372094513663130699698065794875692709951570985891396939888645165945695977272414002300514439847297830909866137568291394477632284798763991116738886323996675797633299672742493136598900313731100049489239067021552263139820079365356577363603317090791005462636904763257129923577394500339719393274393141165259418695494859569290169315703189569562332037280340921098190625759834788108904487627772877829421588175095217891696190487271490836256789707725609429306458083835634619201874751445373636924797838466624563535895217300993049873529979090828948794876346576505731012485570998888401395084646924969833001403332313165083472190147097796962210602476035589890137131884545903125706746257289197807667704661686153605032624063982854258137990177926925038469508090627851572846227003940254204708761780570025703614257236294038719164485552821515880522328048996584385342330923074869173548944420050082449629365303087543212802376517265704279234657532952398166126589008074137602002724849563007725470365632276059552293818837720255566767629723514215666079542312097093488636243184647810160978477219699556740271041611751791878280286980383800184260608071877612956036996788796450012614755775689107660304330583297968604910421447893819748434288447729107139232523716073701231890127477872784417010245211937295232661175771934532817580407756022933195214991161449812083773453187960287052273797334533550459834012681425804427527662193567437369631190367128540452190400814699094506164456702486896686367013292227849825432478389006492022252991182891369646148804235897046347113678395254079556157811278353428485797743741088667594216757768904141399054541383266511365100854172059354640461643689057831179141483001852161555089821650010216912360346842104013282044941437744951704704899074530338001979935791130602073041735214578862407710181072475532544901248887840448498935822607219393344110336717390894067566911188607882233632046613281587012648588560587658878418056976397624672981527112445333500375748140201625100416058782462337263556360400805351473401383254047672683085779715064893909173929256743211512425844793339414709202766008156182645298273487464531785019305587806326443956635615545202234290588897994618158387759963012716686728809887936011929324667592914181209926913664204988971537460799006703062601893757501480302483796034368587154414193216664004120730880419005550604057900145886024518050629665515643578305209817882806866552665453719876802509378367585447787748200305980245942323871233297209260639857264241037617460612736808980316805790942161823020401073489695295169954478911220979340547590448003763129238157088327672525754002948513294171645090648430432243271227893586346507149877879968993647901038760932759610679517694515917503654433649637975578544678666885391826613621539741204513267180393144510106004264528367624909942381947695075432750058638205741747724126950002913909890927433345109371570376767996694117909399276506523096533007654769324588400744800792844476039042284776775687290520816015450946180344424705451147813274646423155018197748225941009758120763785705711675576466838126072544100821288619095071436768855531103282133953973722194179337289237219357358998808626533198266439562688625144965183841848848826916361657530672925355613757303592547927362047525238839610278078958040000515881684781735463677480563367193172648062301516085241811828891115520384777261936624611400189503126978094618363538636514339974998940901620352336558666841056226170968276162829885672239550462042792905461214100468686328656450968278682649463445235640418231403448433502075637734129219368738024933082150392477526700545430355316714627525261940398725029942945518939738441641078233400887340852982675012344458769988981844351257422753818090695294758936578333498966424440847553234235370131278860085938554952264407034833269989920748152454323774411295627427302035288063165665213237627094155641775887535710153845363985756300855950155265444858676520373877975223410388181679127635832950260289002558820807938304938820568916513648741077013354776804756910621608227057793406523488906405287696411299732253943130581515746628331545558414021275791896611359014859865477175471943230267852780271782149553159257441646223935807706964766099184417101331570173538315629957075682911848505387178626571514419881018644955012866302911782022167064170440269844539468238416767456656231550567366821930469716017409129515216801380935050901884615643248907668764787649159198754180978878149397157362395581271195755763186575051795848569869608048614880568623521505386920009911619694383450108938512397528111610630590776020518073188955040304021094462976106126188366594128071143754521423276019776106392409826101707261920063223703290992115898245648745056961115252020079074501576870038920477847969127758619298995403697118713306998373679253976478778213361696125693746528218836333961554093406249365654126679530919279276087965331993788770925548817141212244012479258393248426592492693705068867823398013936503691837471572325795049366889909610559567420455585716099959886005598795343416633190300512732868770616345126044180336953660667797817426368652945122062285961973114686028358644283803302149668939618758572246045873728541675718575564927203823539978454702820034785077193293784730948393625473979652212567999262391015550870135942803396914252097560684882564323652766127081626613327339463620696752245713418933259822407583326208991011267874229915413766034463187045088782959658720579943337524716486005342352163512870274677721852237304154842862671519592712933122440999378256277459204542288996178460923818534577861366270932177786606698278114021917322705511762451023609531337370094334152689177814805210261279832822939746719707737971801236993083079864230565942200938404604752001250729804828020132565502084682294020990275602194011638646296086094268551174492227738645638382450131991026860317170883312279127095885234810456355386776802610996697593994012484072377778047229446823562257507562999159141302654620680254445090733666286893207092592166385956313422902331864660939471803550422217144273521157332434911475803244725435510461810916244066478935663070602243041785955910076493200207239648147426978749375095410192306207593157826590024716015755201976756518257353626916480797996769841758047293499133282465616203248240153626646213444717889397730163867200875996768085102355772820446474136859149563331111631350577636064205700591959426438881352851722932390597256583677859069144160882008601007352264930017599293679666015462379104750976449976227391428602624660466359812943914290966805883028435692780309635903063296285316731091393974376371484551734491776028401490272202794601947926710750041349477511956772943439831557094602635211954001513082183769491548684994954797065575031406451052034611885064331830254896016184307847563487566592941695145568024567963814004656493953131357109535197233836994272545527881083136537915983570415117384177820796876613527422855737264566568531798825387341289680749898836013821043251283402993465092845817926615963751733748926898471384374244697305719655238872435122257360213604959397454512791381166607957555727014103092944007414254949627838373566498008122909486808348294677625125916273637388970249086399981247495655618620211274361594418646114010009619517639388809162522181847714307876047738631365056223665571039959724423500471205589403956431577279351508173254182158862341196650025519752691317537874103148805188798855111925553335072765161135451913568554957855048672990494452520248392706850497797546025342596339445380208841581470982181466454159139414418206788885734687694686406390783248115871571287055582527096081072503420425697351532509348791489976265766770968821209484426846472653037902203993988094580378932564910181640730840530123224141732758868164008360428838167319520087159058415332858155076049905427793016180085605780511541622436697340038366383249472908469851847688040421374930142819738455121558650214947551823864719833783081611576602396901686653758225727337499273884960350507486067400657106196094580975410827026158753056427778094584407830092275938541049828045135391130712285342224142947233728362626450583532973573348706885613572378743592889848108162575720280142296845069168566558022819525958700094703787855902220381300198134460474809592994375456005763351622568273603162690256759602579235991844000346183114991413387040731746707607478574639925667392106745663699935151992219247518764668506786414718545060693669723519679410395400873009468099183215382514495069858193271234242830792433589186106477526916572039777451055915200921783001144082020973043421170099742633506940568310748633471474709617689462644107784731241846568630822345439479507098176992909502239998223166628378939563376946292271929174088485880284197461212432083393381673398142322590460765203177198830077095986535517529495681361238632561273524137670931227057171144111816535980188169251293887895106554412056581644567566776734222359670884247259267271973721820420017771323967343269188614725095173367802889696860212769650718563017898745823988551610061111159311045555498141300723181607665243577219088854510839624185340152467620623135134583040276760344352829846380878722464368432134259590098151695733883617416014973566706514990452692975161097138275702449855085720371796164952445567639379136100005057815267121578423948429662789922052738492231706606903391914450573431420745057354422004389103596835784150747889617631980910715663458191904275376614424355151911353216934860543511596752987943299134603743941342938178110687986982271214834316506661242260997306768429767499972747275147685147641709909754080434686085764775679442775228575409781231061232222306933045433993403347529104441031077019445977121219690779506655565335354673911083972585293053742892794528770254601203752587911599817423024534767139607668954967499799573678121956246107945232005445503697063231866315438037939123877862479157607619554950049470219642022612510650826637486630522535577984227322682313473831772269074160669357700505600058021631060757622906159830990875655466646048106682107928457413551303008853542569603214095375792619601491859931044983784303901448176175085981085287950505361115484486326273533768162466756757186340532566021016747423110780754064552567653423765377106172923408779121286424987793209776509906398073865883029437137518942924121649401320718171737697734925532164543474862370157945032040384544251368073082147532229921420511369806347575921862796535802317581256805411981695514440173560482761041339210973344769498407494894534156422380686663625258503168350077494917721157486451314726216902323296570889637810216503005998343876657166718166344747796307703968358050187774671391902812718832205784612370628019468070316219976123980235886536950972391810928815891749404582619947995524841708577703682330437323655342207504494159746077222190451844261347554377065577762710631427582900947330671324219417893158443932140553138312769913799866793664852703532526964808497441121129416770745425524839373524084914192082395678904905137997125688208669479607830291057025974432292068432697127879284727362517071908464326470339348350773402563867759972393859815128517057958841848474441999973188014120237454305032349899762927957650827645940774454224060240280760519701710814548562861025922121418584244207525091599419264340402149966777118165473013837910630353276865510111457661024488917536624397398400493582719015205243967664084622238620596328209647368866544355225721625976160965895611566910567245027962903480874407812754711193621731234437925166447786443286740004037327756730736921698132132670670268561649882943254683594369564557121660858709905103566944342628909061641928452572552623993937882200512205207045733256799672093802699264190590426346273355462886478366208113384237263985461829686176228831155651448498304011605431756874924387851247200285288307832410023838952975909808866702035027848082150559846088062953522382630548310825909306099958270439359524826068546512408571972531030589852463116006507131805930934246564646725035402289885995712347303700118240370907254637476230650839979518045111113914123722247435814092491788014287128460445228054720387918707072154857732245705199431674019210191623162593088422889110030144216918998608473522099118476200069893554440344276438556541978214078641911767686586972825395941278824026625034271611907482704555645525704277473487247706137405431243737862018699014894047396360000415739225323860698991391963123513141023113181933833509360929201281968748291845289109656865325879377445034489103905479214776402540433511580211465552823449976092402898311971767522768680577977892310206197635274755725273959237887302535426580497737090510778868534656793839762852658821714916120857827426402176923833388459677769864738243078368837501821959668270659259424029363526351835785985455289005878257763822829134281049252683718370877740690009849291420288968957744740660787692364187909109718750712460480273189143594743327219679063701906540545757014895299349520056204900752463702747133301907580122061999480820715836955345742754794160247226086490936114962537583687495129829122010473548057247774087506352647654204760978246497871854005078888883626085276769357485881650267222957749626289929022117696739022945720506542548043404609037403682213144951190608521441465976140656519602512977392906975217667478409055909758198724123171796648604279143985899259164431356971685383435495860981479802411024931251172080679632466836262176866361510728466386982107003584655609114098807852596884182105699173676765106443521349557300636236920528179588466521364321875418806255878327748071304945547937273785660358068578415795802412361364304971509563069418905155644938584226540383140963127993023062155961317508057078358886255681202033645157106663220860729394741828820272795429644042765918417791531987712007015815315802978860491330266763749789761909898905552254387201085512959765251361035373428249622755100183552454991485629132730796669775217461769506839100793048287671109605105724723389069915045488129793910092046248356327033932588370195383427481400651385932123977408571819178572750997262138787049293399859427177180135926557257102135831280640554819966345210603549845404113992429552233558729787990869112189756450439124114490316140060817169072727719030388820148960738430102487730982750236963110693323107450141712848721324100322625451544327515726668626364396612677910695257122724411748720328546163580766682345132559521634865910039010582369417294031643864195698985960983428763591978373340789736843785576960863956078979263961176715977094143787841329279485960386777090760403334461476477353146565390387914298941956571005237061860983137349417939020410810176967376541863613313670882780963969772034701599569451595973826116893958629007068277726586811505049509832028046819077970464266499802657666416101103913329808134174701476335790720196102663338708192904124923724729510054606499604054653009060354816856552866726036630318464405610918289790817509130452256420726256124708571454295625794809915542702549104560481707555949333166631101734108631683395229597336407953052514910855650436942815724274156949033898355627411078732013242570550927943706852786755139233519696400130439802067774040221100158546760099579826785292021124418488741754490547042158415670256444198339865097401573291372384377985160532426101272505029607826675876037901064346081541839801173235237832730669762647383302043131899940500917265131185893668178033268513942999735180618042205188056793116734371002293256382741495851848147287111709247672202368504768871485903710149948638513265907752313367164839747181716232544191501443838086444658301527935616267135393034231328835490466453441848814670433393380441600574317128522187830401456073312486892665271908755716977367764738804863739920621581589876518482572436868006892351436824217977408636386556943377523141633045384440486918838731252650761537849084970682896620452279416261393553385861377115003565149034814169674080840703101947791772195798743735665582222092192352429598152620261383144360060624027126435054744703827735305817505987875895063813445806964709265949010498404073403703860640314292968212880683267170240258322625557344227543990521464405156708276066324893145628402191174520192906150921912083785433421276073132623018623794664078852035402979150121320729367093660364712458450761636384036107426247735009775903596243035709267757015608974521894536095338365630018037305628550866039054633107075051886619990548085559067329708193422708782313201597030735806762114441346062238162278934777270137667085175942281065149959165648777861488651215010695372965520566707972493242133946923110545017650738575641335254890148721273305263811238959081055610447492580108831553987019454196360130228383048955466269039930839312740549111930056961616514677435760663468909564147058882124365496605488381040698597530423384957216708625555271721210439488911433939190423567963994797862097686296760911986501445877203072048357200517797593271594702490234540334414377583346173640785678325352109818292646734510421403361896737807081995697426621308752637112193772275659008288647206520113574138443089515758243411980569407209909580154802850245623163465762516796827623551235107035211410691720332236259911204858871820386199096329310222322749282701687954149093689320925005062470040441985262062220983688825843944434073894931328345175178857116784904946191001874908115218371620182126159699092690108909061945133332040585130328538136584362195467320059338811302537302377370568154509795890172645605812730305674072840008979346466027267854441359493756236731770684838804155132239978909586609043567548794346446583186404317823181769132317271211213875769299510455237951191739769417575450816233724837445592561999438625487799874882877804514667972664806786962624055047207202555430370504671445172678651918474464384106352197949619719612213196620954081748847139361818325819724965059846354745328121220072806933081828604374898116592345811865125202024986414991014846652763104677999206943732177877689135486313302034440655120013439050778297333577711157053658034094475954157430506934053799562773701415051618007138651456588250771686184224571289353228674608849143936285064492259132120232827265655043506437358642900738784988099179160603037319497937876114783298753592681364322376950128392794325549598619459115626952213701742233126854936516750754013937645376164734214596437101385166791786336588791123653108068233784992427919482217827673969267433947301768585536216045413028804020039917584697915992118446207785967827063167822424127309100923147137440916000096890880003225582357175905206850012005707269468714710900083020992680555985108012632237156020230776239280938171451961654958232192328712494773437518488318886591702382672562475882607402340057389268703217644128209550822449283763914114997172817619324748215030086251493451363381901984003418764256853257054055281017827901897246794368752803868588641395954980053374026111601124354344362952059885779599376039978765508976055812558554634604115362529034316134940887096770493568265247020258703065589651914405251757707125080578847281161833963399710930133974105075406273420103150127661910864570471241288770962735958328146740630622017280590039523900181411995203614646207784323323627545160392221198563072982514901200404249364870021821761785946260349469500660568475300395994077070161815534443300507529356421739160126594884106703265238951917689174476999640655240925547531642059863712999866452940654866998294353752032836333736478790288152643585198271243610586286398644642298175992146311131047057917174969953702799773930569151464816302544797050732518190075118036061614232496691284808993266180327982062463288224274446555652642005477716258146457642601058102815366932578885114499768757856557460742025705771966306717558926863538041413883816850908363809433226906670128913708219545921786045934373904773228653150994142391208294137429681112314552421203361168243152567137326903288416489537252047321503644052711176055942498929259404812561524664471312976795384636557981325615270955234618539824116856420217173821813766627282466523896365720888513205201246157899300513081949874340164795791444064467851152100082014293931527748813218610947379074535371718908098236819507104878236440213554556324233066746498955720969493392218416182462163268793190763291715246155473939232224395567940959337212312585915955778981069481690912433259473369204286137963218123827578425545686742556215540250483132588283418035486124045211803020954051688733747348504624234018882555303237587383416167027736949958044013064965378564309717133620651542758000297388761540098289200686851252731394799849958413450618268189443497042202753794154139981871053998048669192222983794185242578461500467465769485310484223282370690872600284316792085978920361380689428956768721231667817424654549579063230432245753681961374449808638476763226442640570939818449091939038921595840793507701406212724589525245889834350418465553159428452858158188505451750244387944018539692990397721422397188040494432437547050838302068848853894543425749502218559423919436713177554127765524794853007911401865779921443392362229041277614920335298853126404713825410210735160103981936483974468673722314086956914543804040337242732749346134233924624921880240255512506130565884092522188879031982797778753252923417335621645516356166755245036784977123776147726172305772885285235134405555672963657185506851542120009581834182901636259932377919934739745401089725400230123204542007591871996337636149505034416898064352342540052820377923207392647011274599087013745021330534316331246060014452056502890722811641119190451860638438901974865678536319001694235294385114238379369776208839430052536515807436940268027999701428867901202264990513402046189643633512824416420422698309320301219074364148845423923172476596235793355201717695229685657410422520771223869232374161495471510230092707717004098354168459096976319682117482077752814378776230112649890106710985523911534853004550366464816343690102326265946584165744227164800571871862123811166463483985978758614388653537272449516622588702815494505773798954753958989826620270710240010527402101518862651523634007174608898215118232602560466204979642289672601856668679455097347447806726369678556444820582911379551467547108495720953512174845701009544258152447766281257826805818759047548546986474853237366081300776533421260385236943053112364341873523656549920910737322156668841100949794406167976182786723273302086990822502310763504863010711522481297306560889027433950192646707528974443463412642008830769104025848857592358151887460072309634267291971647939677641840255051895811823026187834884863386214592232639161530817925352747296813868696895263199148000457461853564161382132542126585003369850062947081678114579791431384287373322566818010427230954065851070561572825660166134440839654394833278317380064248080679218723747791404073537461318939054356428955670565623068293085814098449374174081994548207868268874087060683705697459222246449488502863575882187627471083779049719462285062817452727983826169124869409315269204428590357515083044626779746324851761305244570606142341891303850207086804969236826212158852892153474726559861665386731225363842219670771726486048548933569138463784415805234962120941807991174104470378198843994513299229784746859434621634119055851852082210125824812932980968168160718871139123542679132486274245764491839569164868566243728168130886412887019482471175895355860534655872604966044027846262384838200496563330529861011180941346869172669946666557288016417561274173220457300216008749365322058533324495452554300553325290725768685151472607606707243095544291720516814206430572935052875762598569779451296213335770868778569556191487863298174876349669597765000012434461446819002249705961694067181736628716614245801192181297553141066829391300189421792018963159523681051019067281478979528052410382186535443569180445172878839450287700866922719732030597350167746687304708295546758060735080419423608628129713850970704338368316326133883588787249460410486072554578039148305568785864084000167429658616205459728939806450824502087932576345128724319326950402376273216617376208482059971636726208146216077881974431951830428050070774502196589909243619703122541840042156648836864238080798308732463537961794879304127255140513591172731669111819546671873478209159646601649098751532635604270809371723653048744178873289377254854915355640289832367062906804714505648748941447386777108885438633464179938134658655231749682153729081790305260568518375775996345162327134186768131380023387556447467479986817071581507174304329129480045402600451311241068812658875994310549068924258183950761971538921014959923184412364356884055455016809207125629759211437779448417283905497336097163864542765161163786279685950958236478891955634174282046463130167785218276556896382315976463557005506530856461470598485225778547099257466186783580317478476663123453586534425438700164607677313450590534331298021218354891598221547788766776508062981694360668398283814366253389550482846288072241536824387208913130877946902421216983320565684509292108257843358787313149673830125127913345839270762944670701194704626351024644610419673411393586150450087633157537405450644914312331655264536568134034195666652091559291346030659988783153852850170864088440699988294757056214386929081658397359365340401052557843966151530098708154242128692207897420456103480702761365972150236827681754849150318527426521046409079968925293082785357450835852223694807183953945222938921060826861683704112122924290448017937445193288244786495913102984621187167011169381205799529508693383267026526703876670869467612914183254093142566890416162879991166957300652939583649786068328319271426619953094234664668468509997223979765981361868770964612797466953612480980647083372764328160722928559249659329348405738792259097392133874431701338843750509999149959440618822229617209211258297958593436534604425569236146136338260445627008263905624365788782969576810225128900299022950664454888920071000024620238765877446413776037671436400284248963599718424433545217906548612479559014054054749199575604645921071178082126440079524156107966671086722233356192629823173648456740228937168145300614201487318459718583084842266032708439450669024187769404496274363179020107790034526162517116995836588445433387786577630559658339869822845758722264017370688456867677651029768820230790673953689537517327914092021192115710143666961765735116584895355874488571476378614623172959259005409602562303731954926796092189075079612407206807118132727616451262214605769583428219044861775501258999404958629759588428164371962599883596419385444670191812107021573271509752910930017870532765824785689997964880991545719790817492447430045142131451206950170894569422278358618828831786958037149876015340573571301061703316997894463760427100371995260915496266917701338266955517636865515665843468806044251460928677688313621644975884681240836423041964014458204435826933170050422565632958915680419928958697374459338491743603142070718568818933463490466255419616711301628144399690032173149610365444788479603269912622296203931999633832916818656933809565355400913514287662866077445793925758127176364386809417554659425073785443308693941455979721655544890677097233908299124959507915938307275165667031631054612642380865666125404701048308305806838658372523733162084481752468194415360959177025561191198042698273131360510960183288531400977463307578668593849549942635361399319456611680394240171518559695206597860632541770699170196832626778665767426472697170865332603407565815065652658523915932723173576265474984266689482492528487771231597179256164856071872964417771117292229344949202676451748484987454006472019481245961091297470561866166613422023100763229619997968854694601550736466715773077680146343885826511133010132322168671886193644568849558608859258069102457440262823124481267568246574075826051592525654850465216930425356613957598782452273613715609920509463264578192742752587775938640256434727723259329953008919043595788872224512868750791004314942628573362435987439813673946912701143604416781164398531413166357999834415910773239917764411746600289544502425167815648857053471528307557153156939470949091484982954674056828779030606068971454638415973798202428914914785161901715266680264421841163883072746635743062715670395978564845034910947591131749809229889862189596956980920383325703463865663426810949783099208440111962562438449645471243434248236536402450673881592430973393061879296250003328818190574960761653933404799554272676449826824994076563219692706354213644040048988420924030538439609716906253697090741846156161416495737634092126329052023002279673794420035996164767622267562374942511588204685529664253367297927514204456340748158050870173653809087630352530647510464117664395254426756865871790151073182629644779731168440270590430063780703295698742312065590031167499695708528660766293078869135445441081772592424088903671972686214013782322337667085522323819180709696403788299743684650189637773050678720961649492490124527747948071385256942861524116537035023283346063530674060592945325639852081559571850454458628680680332426758368322957471759446726945637199558045417903266842473422654939184343606294056809152270488640025830026483788199185099061662641187928406250511465678077099950320207313531740120920057492393201890884823476618601990920308036059375858768229980986227435236313393661963746781396562071810024258679841000273278428825394636775003292754156884689457147437047860127888479051589110262901660638584346991881396516591478836007040437805205451291395215907902327771021056043472933016566019105262533512756473704346318837948446368852952641070913947218270034070125588318219178749942636457286278542756493924983334168374481776937492385915438737474998358857464310568889230130837493037255186315274438098225901043408417652006306721760567995274126821934087606552811954314624298446610259651088789880128444021343456232296822978008544078499745750876508749616007254664727004677535221238487513884710108972756409385694070227322120771781665551297454187576909322025505011733202777619735182938467461997394329850653039768260489577051764313767725603013334554623477031999353264512230134277877163394544884212022838742215363512849398549456264097724682267060699370938889389396728116225596421421508297024172493353945258303753972821644642061959259774293842049161686324393823669421524574677486892332858255105623046459063641675586575635018043857240412345152023406912874752751144112350149106409517215134767728225190304490539526266742561286248220048565799062103977284839881525008377706769828379700189215277734475567887801264829967494386557532211970116682959753694567864064169881306073786364619513500564597290586203425315966841302336523404819480919532482933830906548101651471906379006675990623053667519693327523692465884796485259243592413837089548564096247524578701428451572206175761803718577518471513249452327865919992969523897776617930127663220899218473491994119889153399534160108862984879809958085481071074285179804701290739684570211035218523487932692184672344093965770356267256328064218469116384044679499765522929337925081337266141237164156638162298254099421984260430842856396941161077043263719956389229448880896546997064213353886506233567013036814681412803504539992559919317686581133997110106474862558233620582863437608366847118276792512359803221702370733296242098611940843108570404349996159887895438261114780181774766507540962720297445498855696792565927012536885819212118650493529858303867161693218889576312283767503310620141114090929579668392644473257845441347737173939923055220553085846183112655333089656099490207708553238050302039963034526212072721549058818041558898077275199223782923883896694964121783847215332655028348057054923191934650455937757519972643980601994659731035756752575863726834297900768600660386920083126370966986829898532069997135102887880598257350901892389532035225908778879982712193237596408796819196511619134479762556774798853545930476275929761188176534594491506498960951578572442015611348391737162010795740091777555014746542086961475609111566273971550365810570062733362452256141044201289119185019082447867401311098782248847359238682486595816008957043390042987958279211859655273358720239533245808189211746476634462588714893069325859646919994302650294565343236085715238287267845289011978722762392372749978437286582805054093180499232834526652906479057280249092402166116129291404166644540300125728185361653458102025579499156243177118967916984488434462326623615989875305473741103775192690572082750279138476229714710959567343953134953992060217659979950939949968045014973942604529526518618418727094500670650128814589321554513099116703011222276083274875246289611015612887533111801338595928741462552316680415445289830908166126894443005507814520543901630534737001758837230442276631554883396200785452448003937968632919292034323118175170239246578200319533047177540072493842308425809737439969928013911540863111620149932567098292779148581357710514732461653675338129135454582850242327439648528261380731274642958232341471098280496916939492494207667632709390417005444797880014675969434684092800776953497446286766048439324406909696738665043537601199579192125525678223294427703323353779403333830142120370562034239373921101507583802653276134988399512931351715461720846825401143794547945017942614029992811209060362240805750729703787069882981646460199326064393616038718992489835130701847796011056721875098665079828229459951812769755748175830986975535768523919265974122851452550093779187137978302297307165413872732459906086666141191657026925416470882167601692031755608905395501891045389304056581675457161727531110438535730683730407932236376909920735029461588655671501424902817786928948475180580151396141819968595032602875666854087068038901352931465317601357033483188287674391547805040334153405037378111184311468841589023937119625498458575017842512933087036037722238973956722150089356243187931934293599606171819200553217657593735546655208974889429060454463861738805036380512488758386044861950463635578311186474922554526079501013147504133525724279478309812720723949022392486982281159716556563519962787577783494719545045235172101179446611336572280872011578693894540978547174434789980627164510436867119121203418275278768554053907665717339680233188224669458208080738551511742118245333022200960392151617929503929173014394024860132209983180190500133794831322788771344055746168586839588188877078681934857306438514578003339835101789892338000797197536174632076623823207776842212382748735408925013494313324857551111371647995825792938449732649420877977336073244860146369080117415885311803328024046291426039583715918919226562403986419466042336907790783673684790380785016184112261344233449582477415990133872487222796830621781692316817000926351626452191161204718211191737030783617248237643877714677691128758798474771636923024735860576068587547159884811228183801785534773751357318065914709012412018238938469912681861586891294865190864577314405761606463241418295941970149780579948650131585087444914642527938678153557279554997723653733227609195577140142321130015536072567754185787134396604971190154756712647728910149681319346394009452258428520076369037308815916372811172755224843013000441684594431777306953262960053235289274171643359909768471003258266357145301288418752777326143951844993104651177449988849164148790473086198725011218957320738175897479009977999151873357290540904709009256402685421786499034755160643392818451390433271806691545322424038688859237128726201128603260373199309113376774525849299899320106503431852226380916073356174597286924144468356754047415717371696427896310636106831552350419054905957309433905609300244826303935676110450593440877154123236558969676452560819844965089079171208121767592041269633998649147504583963530517261501976718826026852290192090734004677829143750741736718753130476303011970111365097997087658175414461608740814837238586215475717981316609923209320360744712405432535582813629273673383073893742450188355426677313923583115592187930160629561823960364380193097106283851513081910036318049335736985425826636499349953409758687425355362168638312733084769020437378284896769488846760030989808500859754355810740980451410410453725880178163707391220474441336088089109363540539600212563312517282681899242815725702051375623279652009625235612090776034680423742654297154286468136518503303859944609117012570192390540998027159177782224639001038158235421132606603757317294824836092155196336462802187216172278545177595085315165567569305531424016255412445302406898714260548123210236749025194919989134489351915498755388909175500442385095620883975451908322046872759159934702430331798783453383305139995717567956033777434990294111133739951103853242516287772716450318488615510537124249666184889675796893176019799268556713165869981587700512639570576850263235363410592144379640705929129162062541622451613485499703966686458041072794888198409222357805522490265391896971175449969236672195442078231263058709547187981231280181315011167246243180039453769303381285124379869977144838440019075188727208261700984929174949376175835622844200596997616122914124571888072498506726606983407299740700410785141299038659204813426623732200660823893454051106183277323548250152291617186081429088200804743795691248646688297517868843540571639962207294220753528443675937664062673613743123291899550706675953476580583842143154494747792480070027609672696801276835867445722185595216131314557351391069189037125445242973070948530893074291034379339341058774482961916870438979961890597721905451549819530587103696963774310456784092733907864930968020996545111207289750619132763564086224356847409372395480496088158403276300003757678054403617790405947551032940750198575357030126316794712697513145805220513441012775646314700915691667985562018381791311120633344824763236261900406568381796345732132698838731000409470645514742944545158835210195044956304143083449816468332726930289363639346029681434939206888219912936726699294776748353829673451767344627736211200235406612944304422459287593167672273801019968019642842778701044024358283310310867171382208548310384326143871058329838724337322370406640521155266976332921719931446289884380157080491260585135983742617488791681074920171023403543880400746834920363889063669899131105710142610401746440937489224106992086777303763277815295422844613473976333984389711404850971112311577085189534587175208993572522814135113954182668311329484113124553433072176434352419155013593748421035917948356867324537334940884175360972114294074571531946291649462580575062563059655769959681133541576149087649914279764053017816508681039033571095061006776666722473136742333505365393271266347140127752531202258357511790191837121974031992036587793913119696795983531312627506103468487167820141889234705425032526621095272155878767932444183864046736935309709687741122430303554403315715864367823324537609746308680424201225513389020728929327374195026433805377720780168814740433611411480680714447988352189786882647822756790670297180515156401962564573913979247926244109190332952305373115763682630688920417871357983035904906104248378968547991461009213796085528565952635527598986015700261457214229105794457920178250111723304929333484007949203665859352273967948760244635887319191569813333792378625547477755371228181362581883904732857054442718885386214603626260242733888238553477199157260637341025783946107822926059642397784997740969172717660198541316116481296065252459366085032538811795769106731019338159798972047962028294029472563510200252097546923881152904523833621848768385996458148224396379429649253189770392071724129769410512312829900595628215721327722323509765168612400555326266631906933064471473991354627400775785803623225423918876345345293292777283164903687956595186240915894465544592502873491554272758469388042075115750545813962047371949427713176190638389714681566779261234772694158646685485506961744122932158807026333726257763762586099598152366648764215066498215924065995152780274938542501385286858406540260731445360379349944462934122827428756414535744228091575231217881773525858196803804793525853837917829823631121256528427808035220391367331199200540171025828973457773546124697774391888765328499377434449376446916232956386340021610633345628316399940053216075114487059127779414114627755030946708544899180816866647056471827569895284014590606957185016273539355198661093460997392937849679523714883464314298647981464802900487524861692745084732184057144039445126629215277336182767763737472210409439064995210050826400931573703650762557819707984039848713242023822670524876929854000102959232436371911738835974020241357780458517500000655763552315769771194042755976473996885393304241157600232842671404115851032930543908174364194393087587445536974231162246712225376171835377436799212410899592313227525454608763663661658427167541483844459201823770652228341685221382556757625219157638129904712971654447162678224784461670671611846664379951898309286693100553746705427218354692761123489601206550479434783487859900695061222978486636891397381248160171967993742405858071727740463066272908204127581413945159226237689901117689626870417170346758913415209932452978530064847616707050582517647743940646493982331067454055013156520056709368894042238384494630717321971291156635266962447152216755610534257815935749629187043760910687999233151416451912823161308453523986232463472650440722203384708359863056264580501840591981670493321850819363579351747100099205806843472658750987111647246627543512691978500544994462389792539654899101166313633049267722162059412621063108372150480930402967128824044637719447472727198251843842580986656402132045871781604407323303940779159288650759727766634323084843819799997085172297940645040445276784326700021186616750548746645081562594409619257387024518817429881646673632194055546022025455778439241831840997365804061224471297503477881943496482487536667493858057658832917366482641121295223133033571186542760805747886281645221554654197575588338936364781444237872315647709655455623045721521124612346156080173131979999810847115337443808490590788319409634569441601450495693459155711661845858348593647674417793788740490028533157583386970467902311072740988687104892776721156218730256528008174134120679933599844213999446590814071451317027117418750854904492073338727266380929743121046746276263681608773505011541120480724456971895511643053229314671937467863311315191592176028342048719121846936092854707618979480992640804756708252555581873037384782446689100085399661814072538468488177769664794317226406851879934797899530180048058761152283196187461051405050807131169740875596851291452808558059011564024504295631082356273378288083368602778704987090545613197579989154885637131947110093201514301042125620585026531050602770968744409741934115671533092241335090920876781907975321667516605381767054592758896630443121454100709010534235457168554923694305241575458319508475743282714714661887941003405848950422612345035898658189189632583540430762408194088891404393022300376928946163590706574854127236734891227226749823336840955588762394700773533936974291260353036178498877809727984050558337171637121691604187928081787425460840198632228147049059687654624809158799698232552695307852915235150142476354911582311488222872331811434198622732392581354726268863633561865432378017135056265176280052762940345787301362075051687071637374588123494450850219658331609683673773300372625245089105167638254114085860994355223016586016541162050795302849905863745649700365788227262112566809961761656940268107428890701783179884840497257734412922213859926948140211519949705911500841685781402983853635517769804234285674332087945377724666005507684282739543818953257253916075717831104065953689710121774839616209509359204048093070546003267147743043726351499276677535578011246797734319929971317514092399024034564689304889754475096008951449351829000452129844356051541433412818284519497295572438290172363048857892809779989016606724657173082512351393012249945636043792929556963078904370540441485804626965817953281468529120560462112167710426217357562518916833830110339617651360649442171302050903227310342603427981004899498526680132666288758266046191563567681498807693793818070936848823959625104590059632819638382547591551756622308186850276672760567044667824288660271922999862873422983510733078919142518075201508230828403845747758943912165116037003035373416413224606009271262789531818786807645494026425966835162244081679658771874623745447806177590270824277644614781647021239912716646149640395278250206007992519079599014465496957485920771494255107450428245701060438268799245520726619522356383607112763258038481496314508713914916291605925641972698349705522173071839605844831406499124276026961094196408542626655864374950706193578549035194217533685896059272602902236772415944440263892724858327550317961259766846165158514094869096520450453597564412022105682530817526132792635405602173160800648375463640947443569245951938725141945670044691112996043244505594998713230925466917618142809257361440595329459025088041621456132492349205395127101194820301009756106022857313903932782176040903473385436536784983076686394827961146426661537957115616203892680632676872464914585831651794273948345210874280613416178923918223716705073959043849068399923936878470657547299955855796009270865280794897298217968897010555659717472130377734889586068796721990398018271063017719661810573172763083402809012345873099416625787127569065400976232246632723291601719151999291988091686007622929737707877762369080510886012263850930588352335900271799366135129024510459958335319463182406535711052191135479967252580211295793530018622880897073054137355501534068751991651808317468028463785632071568149458459384217193524269829459786877910215000598346791077181472888671112885602221859323985720146001574659256659722942341482735669531155865549063458206527934427192129636196632226325807518109049298117467102888892876183961283439254656785746206953071279025927097326596623691262212711959223347791911652613779408341794473674077724654887423796664581464392407647626413968346470439062402987965404768160671550732060201080084170046601701156708523900093090851498510532211486532307023599552877640868739500047909773553761283747814273103098409552014834448684750674834796682493248125594198854716889717596590126528909317269458117795654480885349909447169832450118839709623560205593457110293099038350206395454881367147694093589045576019726313592599438902127915839790209449747091047847374044308821937774949737749148344685634702808917502202358254382543780984092441591420175264099164082375863960200413552716293776832090727369418183455204181788335297752672396496230302816840136127800146905731020878281716675922310094929164487818179357831910005662053686461395448015525005051396150488847152080108887752070440810345962782307196045734718856675539291246087863282399189352481862810627028702653542838320276413962058280127700522500995070796167740262256555730550657923246183362275286086660364933582482924729342315566390159766975123764593785654127504421314784503101845261388539491298350374748250755121041864511611490387584377592536772113561786643087413769500687256192396751058596216109782125133223228791245617444717096739730461384309239195812335242749256708448178579965174579131963349025969837013998350944291544543447354072122480031179339581012182760931303168311644296813720847918490088078612193054836944503176123800763059696340078540118124760450112634019315478730724159528134451327405101170293025223863509176649073098899663883935502070564600805932069270431100848167744159968819851047430350058396854501507677449826723288725284834855885985985350450813117094628433653629587112412412439857176328893814722157939883945987423669298877928303107313224323964387048867156059399012187779619912423308917182592641922541307439438003061578702322044377781674070709145140624819237659540089051156100349554026079853362046631835194326048852669133488519481178395814675024829696058348639993560704300675763904249984257724367041497688961362902256495675720191613080195236039019478078383507360826416922814186404613466574743524365017645740483409924799271987344895647139450469100504223227199512646899614105643616356367222303220195960264321570324519722550422354421462800721746277354702793739276884723695143240049081548161102868867005324481334988500019073852384793572614421331751614163352799208149176612443380055928249805247374057511296951644962529203311698621148497651895886143731588355705554044301590547747387397482619185960536878313818025294678294038375150062812892680688192945083981396232310780121670365190610929760349703858397622624138829410365955583932476754789301653641258050533660939476610431968318894939425357004457441622093892682904355184316276061747603231538867195843339734389968784068312004988172398924766413065758979756018006988780147083957468683559468916614774004401031739744320110821890611735265364742858573859298244534938041053875797004437893287653577028283820938087256747807409674740064988825008212178579142552704427107349679064505239287178088249485878648582799177532857755422766820392905214086998681895014047932712999600940724113671576486420514924707676726347979282329685364731752277110572761571621236069463224556967764053675607413343520410917987021214064374926373435819536642816427604640872583187282263461628956844174524518177688807598445402989670050835474047054927910496880488110981615076591458548274729763505179974817096245269194434774126275370265836728990032256842123602232165897796567667380995972479629712744065957443966962881183801179273525319186349909211789215131918816340072994325029819753461237505529444429811158295349740982804423844847977771080011919834731643082366508683942240486436413184015894242729643349690105602457132299766307909329648427892848965711021630736926268822227577599446682105178611338037424745243528267353525502910997859961784844994245117349174041250842714791709949374289607168958197645718503639974184937185942184905090685572298281101583172507981048648403706754169570284775889559274769344751767665841602982499510562643607501856486695340088844918755569884979002731921129748283723985434865302221963667348329191255213701086204394339261891962397139417682458011411834700841928190351434454016923712317714395179999347737453864523498840149076803005948373441560031714337458341844265510259315935961289779396070927501475856860257949707268039340129265222599551404274367054797676995743580941400021664304666502470792342728808613013021722837439257400945279563000784222124372746529711930601204420471253107926535761762260288549111800491876401599920750612759148936648193189730436837424675674352029798825667693107202518486674404021064715106767569406261751595466395339954499191211553987904616413935127262188620844929259088469152194101776905069317424402457551162934844959922126461295702027691830169459150149710080821378086175560890465825126971156518171196817072700226580161973009025331234231210651199893582844980026582273820763864364552362532732638332896923199811185745756996270721605269041094304877223404233153344986688544014293377216987385769892135786889161828340805797008774841773261328479909242178236961512603387164003265784916426728586177752140493888097190454921348890573019504412541350681472394464137962776297775266993991108051420257908230828407989109435181800505978094453406905620382970340706072118242744405017448803041400091727341118856951109208730022483075338619617802401875630149781419458433663191342267519370830368404084411618619101290822684865673381404183445129153380979229182775762791455412023040350813181652174408457499270474811115743327676089891716252070380478863133439511052651534217481293495515110261659546635959931372358124431639694123199115004598808630503697712856908889119169636798764991150215219934564283382459447440021800006835760961878712384727291705080525596214568643490094201734604663779736340536144217205163137364765691802890894027315923734200393528170218705744792793727198972012187932660262900780443467312459338197248300520975829264004904067535878164617496619475359306163633930428739618551493556689257393101371283181907057712832141178668093744499051425329302831136604746600080325171565364987395355136239428365172202961313839921835135551015718974442258729929283175665881238645125549540286333530507196534580541492852325307266230859744680811193776409015479353707905899255180343713423811348416420428953273390802318983344500416643523176965339214801606143704558144445289814550547975082828314292734344363756904365932753364640459606073989143782468850930871582759802728905060253441225729735608410647067928058954668287199651043035714396605883854545323242638331657633838600353646323906256298868726246489886052982595050272797018902953583476018181295412905591126062671786152578171115739133617272207719124312683210032620157924816696900653711932872255116564133231319214930920404460041713158554528516786430012262559462799782901159311773784171829095749077164222302832882939260335701608181713917628238173903059760434692061357078939006741711481300511745015328568621365636303155279774289349789315120919699246377463582408716940926478317308450100075561702307147136375477405212300865398666130448649672879408154078658929783683829136612827574700503554506890981884614288175399675763354222645349826548826423322909551293016253862352278218968141584374411178052771631525128787827553638142243852643276975646702400074928849077283730442179782778954598929273491513501632371741436259793517656162627009574194237095484476590544137424979201245837887314378604885313388544331623330692754715137679849892875792376151277832478098728483417877781284224491318889415296546326197743239505118178665921745117976143060061455383175375877765800001292273824217292010429789582840162632178071192736643987363761098329961050460923688584054484104523007491394297066220111289167583889077212425188607377027842259538481414146891415024691444138091317792578559279848576447127794962519166817449956080778646759890811786066518771628422235594833704927788329064845900535647964698762703883475934943729124510547021374321903645728304569820180729905488331598413885327798559655475646948460596336476446043691016663437789161973793919714187360145803481089712722825936901645310660109902116916866392015617898612546037349856787846572636521202177376397475176555783282084463668697572113674961662784518302867429860808482313242645159606167471869619927394221666883987700936244171117187643580125636578848201492212002062939467006140505769023188240560367915085617728933588941676219152148887431527162197352534506821287556037102035069339347125219728657144620909901552189908365641933797005315771931834789963767475578698279436461956509785053731028336573877673680610683493907411837310517174418389268466493827266226347391666405894787562762616292794037437851777247098624423212247049363572644876367612490339614219954138333706088754349283883639126430461588412661393788366946367218779744637313698445946961204662876510990631220287223593707359206974294138415879324375098393171685072358306102366898745887609131296201776810416482267110837347534704632449093636133647789694020652625905567850543576843815802069542733846453478962830015760097157520181473963199269059996628234107348194459768069153924963178273033165424848500360116527113868396649596529121952037041849449392426944111520702463545018214788367572010104619393933409711772581223592854532395805404130528634033939914054876407694097127577194951520618321938822695819506888814471905401389879983842248749160812983272814454626316933097622194331507439599810416527047080546390608928902900650475351722333958505975884314900813162462517203626706635318201406347296713293310033929062424029205449489954318974101661486508330650341209407184070084651130271556561929299977726148758770810795302881553532937971352421021255700395978564602130381600871066831494232786129643563471483991945652404778374799371115585652015944087979776713020914966231177831431240202372809362278200079800066856799178384198294098289035217160633599725824941662112401945555625028073020228119257104792757707596879417304897085630852781176153782790174833164243524778946879202464416695466633210522290776294064173328051061140152927524088868625637954345461827981535980823222027357866509321439264435932818143420437971358552293788452190816767831348982943679828552618965789565486178688679312152268664138084816015796400338780052149609858386894057697604436463592443434118476512230144847708893236746610365319908967022106762253000712994175117776073261661569677982557123138173038371101017968909531145204559712006720173016315420732534206538481874082556413575468274513696482168219012343817810063629502204983089489158258480703536548068074988808422369046783905120127927019481634885155734158445220592806060070403701945939405389596149221315197307798367567624384050781670771357968240978084675348447495627778228429984625605546992290626639530629780196055348092762707165059688608251136471838243909789438945208750752385914488765152900948951874047984317167481853050639305949409047543242273217902559581686144888938753564510788075134736782316723223753563300980624364498822947336828940910895620224280945442104019935869052290943098449457153040303545754224304711834797717354615194400060394771435884390767182544753048229415014188372935504023403537957533933580950855504053208702951984856719902465047620744664205486299042642937236125974349518947223394260406574316755507518805256685383369943739211808310218514682359069895210774799277887651805674028585518466792304302289455243518081522456829123412596247003521936811473525716923233096429188027460785088651185638368461970032465191621426499834569829952771575675229515069535591531869006994398928925448784208658085437270195625850592287814434301914555777732999122613154168977624507938865294535678817639897919162128636672173782479829099095631488048319284033959635934239906595607885428908092997626327139874127884689987665106174819015860230964228751940281350213832312948080670352883321070133884274035397636414914854756326389410581309490054303876368687000656017308408974195899499012854525535841666299590047819882791374856447840533501895374700317044063538754748583019584085738774451186873433812078735364595472440313891561737470196825291657028622516558313204434209338945980848407422889548777485464078910146966145299162384567298806577860894212121159037850480135457428972978229878099286606941875572032690507224754191714596130448074889921697211079394962769406506811054875925344862865663043460371594870392784415261183616129108639286916658307810988467202769661683934086648037707347494917541663774540846986180259142709043125862228588041496056753613284473401398631509498757280066222510475770312522176537044117499819827685369221622691501131138026581540317805727132308586334103728554913117330279550533892507205589279377918067196515403739058161966086169530203026918565607850721533319840561786288313647663986085030743701854567400452836798724684389160765819904814942885492239318451495050277702488834440994300766829221176956945458881926459813049223717835866695996795133200840806848409499139001289184310095473319110105053609508096066383079089306248030097992446093971876602119825990144906775183802903812221469119218933171593008622975338944605139707154873248698102589898179759312993261063288679959174802876838896547493503452495085534896119661135415143526439267667294992644911220691006917667355017532781543625838131902215208050331982077381847058775562206594645299467890027232398684542379905722463245948408818087461884032701516150471259038106332941190833108732849542844530991248772275741712215913915969775059078064806067765175463244972682912604015206992324786804457558928707325355131337943165917410067137028782992480973775066863990811046366088245677979296759540954796729680175935976766366556767962637829773385980763665381687148583897090640103173435717994746876047771742618069172790738000552286187384306423716372279459039761713418151518565633065800861439880376673362348492003594481713155611641585520291923173198685981007830975937682180413331419755542094639150820852232803852031692953802075079392382956868002540298954448315954385236813442532467887294755843467650742380527824262678782554754592197055203572693004528405339553150131930087470944682040061162080061484440063379758433110034215573360140173305227821356693147046215568284121508026013067852769911727499458516387023039144563137979292151039277611773850839323607588847263608484716169282962693661866806319669184298860104565628585065030006955562339609768294003460367339747330274529812777891839801916929966217695597020282501720394000272401527852021146190932780934204075880248242929642779945268940060210556745345303725922385353140989093954214499127356345307652131884205077237238758049766035733719155056568710548234630749613552099916952528511703087872353985663497703361776401372430311493151554656141348208806365138086077380804147612323572186997636906557841513443247652662779257384294496960624636196310620490681342652402963925027913270732506803666163695545317064874286610887101156932841789734475838633073266316476167759336328036389973880479723618923622721443390012708153757265539377085201942601463296389419914969575863504608274765048626165751430874610309371960148297939710526006245847829452262553644555516475727207832496167220310941792207217464563493407272859582144948916296861060126984695455999862122446693551236862498444052277774766268769711841098458042603249906871705236427285611400771136140249364915046271677335914918678797106356133743829817490902394991453730548095647625479970425954164357314384737180660350581282724554027885075064599816469283018158176837543575618688142653702313795993159097888887941957089210121197304598531209771096515606200138011408656608274784034932224301648600031200484977911894118601946922821141061312348492572964842880158470486524422561674613044842022046690352282213476494091119800772230494257177577203333968826426627561438587444540076879456386358228103358197404238682732925735155048620692714123611314432702632807449049936018190634263217277165195871148732313692014448661933299359764764255076901105698233787255286753026174309954214508520991365488284954090929588482821455125018712744509440217165309393219552725739499511083286043727938469119439635016718477995628064608424091800704671274145918578163965292240234117127264743565584421996186805171742850950585027931758542724729963530046106540798209623166147085660445287974024603676251155220035820099608179808961731808142236072522385168999990551594409307774999705927640262316053221093355405654165999291443083814504885429381129258775462505938668347530609111982599866933109891547039216027756470621032807433439784197058898943359173426347407882933311451051470307293452678327476430788874404136569930561196610188417726666103817748407449404166479047353761440938541802214318387592447303796183610808847795810242927436613359264329602397139944827173406508094550284262724515629545765714206337021356760844173079604866762211201505261599340274621597930821444319834148913113687278188747755217031948933913822040724042503089575194186893946724150747202464698082978453975435448245848286977963118869325469693363157118553540735664159252175184236738704160036508037390858932361514710832129828030024498287708300142233060631208613243004589746480661392909462194768180603624690927220777454074154165079958158284150174588846771314866965448350014132115076223324431659381361339199733790078489504527712556529218333544594945463216311875587524650854824618878998316710201429542040581268030905849042960028911519029661695376758373939021971605388236419309693529066595441303248639112462321342721569939671138935756083657166048069085635433348879012149871753049957824787558129366908246428398443474776706507280968024055418151349202720613072388922017396844913096247768616716117992379892693582545011309598008927814500175411019151712752551540466757504287718964774052811077439062262513524489146436913022019696009539638437561295267504076471650099601517731983822435270572559173606118684047887876046217683398418510748990168786915378440543475924046241554506727506709183730177209944694374813417096121496342649318866522156025311491690483565918775798065272009856079149969559508923269189337847113132266026095452937336191487410952254123198150488099879868330898081660067297356274366658078906981385618484431866215086415843394829261554735275930503042812178884567560365500161954615053234266504110333255369415974633181371134187673964699689443817766437139915624156237116217712972903535585273054082541810204393381162824830609240521805015417054038466712042148254916243170077477570628759159519689430686721081477114720049730968420290448471212236000644292845196589771346647299230806695549599120335188040523023716969306649081024961722268988065964056368117563663053973335797784224143990242230889128032062937931328016782588046505216279648792352963102638622977775677103681754985551130177793062428618512448487473471272175729137039122104443889958571163383952807705463903154623554168214231909532148519349443421261484780265253994141569521143947084925686849471218154637102326113195037834911144870255958072552406128066628351182018221553384854006178106732279573060328139366868052946383902744149005165381807582577419359050602773318786233480211149771180132716234972516381083140095145416993250363709516403728167348052718339074118304039101866647802657736208312335346532015317687527568407758683997439642647277306500055313592066839112024619452945289599528535473845982224899921539067307374154552834962040745746507006305761604103854442542342930019507902655378572150112476578296177516336107198330698514722654548454534898656547114760742558883915464741022164044637968167767993346347381733823578224765094647770044257572992217854926281922241668177228046012317980888394348480296332741818379462786988354746394443443374974043593126756069692222579851671784799365907187249865128955790259076895272286904054037043916260973545185407311805862964849363714407299534412378622213807329188817213829208411272854775069769255307148289607329351099187367627953325256572024134587596359164790735020692728698560590977422538511905123059261950110543885401053990843311840412016132009074432869089991022084432137491972061936512969840509283167365779709177815851100871685829279521993329308758600910530233530222255001567295285437695571744079422393479032693987639418993771457002196273189774566246880560118190727966699697917752728606233806511651723653944644789033788949206211447829615613458269186688536587575578478006745530137073378197333123440488945450882587229382315483643789314963592905122101701195333741418887205934520074013652637373358681422186451460211529687660962682874424802958990117225388055077675426969085187697350375091161653451044563922864061680245686990836163781602774845416430671225186678751820823538561538102083694487894746143818485304360991327273296109563472665020941853021896177714489070892400048518746311991555957287212197586683064329587876388154775594505835393529830940893918084133882989810542192638280219549608876050709720145651977526705950489555088378529405022496683463287800338708679704573316543664740389864879460207337775378421463993890314057904429199519621234350141206620164122482179796232458698688328440891307987319715980102789338429822002295944396866677615948042710576055121241483069972342691711659848289774765592440055234059488415030627057377465031018674235981927203134737393200766576556276677448210186888139510801840190290589185551235853500697966091561309535541776774903013769486798870449029823463633572537933611058481392445518049865907442301770244267866173883106728397195358466267537853935448657831897755164347760158560439886077276421174846917806937074560295510195142623969061297384317352993600453630437358680517283604641916526419302933506693299684100981647465741559697923572871391391430412384578986789296715269953581066683267926138154900536686328250449504463392969270473987482343349984779710172370635233969978369546883933474192583549180102240162736383303331364734736650208826274247760346845391361795280959662183696824212836567080313222356069723041883080030014550544395555181311203811815149028699046273518235432654496035128660836246695917066056750584050724031817440693938367977522597155709927475390826900248977668738579728572200956803392991977765595410215420931446030292660520871421300945291094315440892085912626963629794651005179505763365142815265784446845888598863105836360438687701441468766302628055680583908920586696445440908208342520416924658847877599049490896250294319083196939084113806658774980782628897922927811226621151890203936093680176160102281403763625342685835741015031669715173442672925135474076524589481684801435592393756307267909922811631604993851243810440777038941591826901544453616195492314536747122677858264668566764334580600144142638033317958881484051145957388912517457163654668242904647550757308012714483418248582066826143555444660287908388344171857971821979439513602088159704241855445085120919677322301252610638426424337743332992415808218631446209968700589087771310199257011474862746522220213092593964053354064834901604391162164849234613717392836202664946035234838441153980385675334336357187672980464490388795315555534286624672302638091892674500192232244495602651310232425196693471435049517971396274873959731846313258475184003363443654722152799685130166876373588603587491051462839815104395434036293724499900107306782624572909212523627643454502498730063847314100853621856964793437624240901719336610494198947320197885794631830864002194166146247752913551239242800782015281170891403069308415950085648305886544552476114237482878967856853286199352301202855755869236608100409777862755448069278266101521475707891468782595363412255005344200717929117273114022806214787651773302099805005620651323591191841304848653201121548454200054101575874325335925620264009086641749905854219012456851084890523544255756616409376737944996093871551806830071649834777566630153366853311283005844256453287934877674777091076053287184249519012596626498313632458985320930274045724817931240912747157078960970591182900818223111439080661056023613358559286392441548442114638037000009870113545668131895637099617991479832363071614839126700559439227003590058925561663586459509390649855733682334900186316843464429154665403909189349636743556372686283207863229691681990733356975642173717659379411672430489647429187346699242533125281956854680389605047466601087707147361121785456473486297415987662094694061161502729226433075577777221081550036975711399896978039942904196560013991927515651852401601012496105288947464994610905067390210895730933291328699660540456211162108383361338561166423823265753603430220696250073234299313645412551270630535686553526034354769076800689840211619776638356235797151281016010298315214175951356268876567382648537013500851796023924523118892647771880542024443890186513573668458879776700684373390565165042203115887350220509283623481229462882198740107894326446522258071178708709968375423978160375523584683420565866228710726943904374517382680656419550727417955425570178685223387393417923869339377296738423015470537674495674443837784487366182655334681106500551827858383628631618076072407461044358067075890224087294189774499974566313734449090751237130280081805071073132192345874031835952875235873492801718038119564083650176168385510172025819190378291071571758075332065575518499150487816279317908299191260995811129701269205835828086523209798038146007817508926140044632661653751399097336616962439818253114425698243570250668285338760038911354140460042447515042255200896182375546359501381391652185167179402631347493106697692867703498053922002516856509654818548673145388611837700428489107905501460248287970625589257262137311681727174843639638673646850998004067597103951692133371770028516212482788974281802548013141875832773937195060967517437135216969120213487202781300415715594296295007772171306217423475643359425796811124314357307122298253971978891347417044884818168857158360697164238070028561786757786387005156363633500438235297902207915098274830124874446225101899831483423979161360187297425438253528677659803480316341537407411343176555593452323053711599952632545143172186883935308093789877656104738198150878484443233202027171765499749067234470755431261397816422562441643298445224883688853064665635213264727375808759850063442227522647187516691848010554819495433413585348033532097388939545053313093602971112334819336703255898165320331301056327707386740414942454915197764298717448077790934654938128809659173634944945748316244628873784591519953913943892864546671541185583817065547981975976182426635310016926751500939587451176503867814175065544689747038229309494413388949731115598600961500937979139025990056447459093981409038079157871929240673557696323105443851106095849210704604184954111508706125499002213258022290275355131303607077503838428079675654926797079332753837938763141156674771362462867963340254465653886552933172509595541112865920983324739212750766220696715026789234718743741765048271744905901096360290666577514681537551334559429282020461483013035272784306294198559344199889509006119726640758101194454827904544929008770761159741368210380074908357120746358783940967285004687105888278813440267045379587224148584538099252803682279907268219736244832591065216371346832965002998689404770896752439855440672481877634175495367594057097183298218717199651019215914612782821378039566833823690861188779400866587725928877391247318098669852055320510331632211244774746463055736668912541076076213648768214400003240879325885396552817227445450050342267288237052213566782821858328164234813284174144843142689963233298500696159165249961446648445780986286265994504674716237593852423082413151026923095949667917408612645561133727407674398186275072203646558094889871112478929840930846344236516351503555261928687504476677315738492335051095758689832059978859582355512166581452311594113813062169757518499809683623163813852504328810712895611689572519248579222917846921980933866824129435735178476712007233172993779082962701256280054742484739084255306931009923574320246523173828111655947554969641039816536649692920852348972673621485115658645237645015739486011514041807430095787094912210307695334894933936425820892855790791092433761084400178872828553322869576412258410922711173590839327670084793500625146250063754044446410692036480546934770218160642821632718022497835556719165612289196053802939735297201362170284930613609059810716169441077574500392316746292822111817184652428457106634742869787462561967199130844654900710162051480806155775825815814251256628297113662953045700155154962821769758633918904939651621202863111382841127202380573954374569651819679044021373816415078558994932995819433566761535950058601235635081775869866382404118904644342271542353451751049028961861340057864581041572657865299747054913888936689573695350718873877948389592945600597983061164486604488069429061641274019607847538580017223482432158583803083893997290927494689630911909968760806393669259713186045511923827393845733493828046076588128030442339066487696317130515814610340144584815064163144236993137386712055847864102605296146657022872391767201039563416962016161635384697198383799533903364338802384155075153850024991444414022787603384632608873531560033366684062577721894710440761252861782691800285027633210976608868114973644207133183495128785264110882372496663371230169416301062280431189800138867027577707538264466812222778391621536977799091665635597860255246161294022375434037221433376050222090265622590337854134777291020774923499502707182416690624988141284976172257543357384375003097601134698329526588442287869999979780256419750979008756538202393685000318972328501452360203059943632287536839210880759896994690342540249420947754476136208874084727945973134858339076580094378203599575096479311401946395561773148100532613783692235950526954552897273112657661736659600854727838894979082139454781302670907659992717437254995158547132135128685559276210269094926873307558025521293421887074844340680624552589466840409862634664835733894697772446864848721283996288374460128892357690847476976125424146985781856094404428056509300734477660895444311182543322114305275705920859415367066786186938843902061135251020575910538447391027324440957498423254720165570943746771885159660300187273268282715226963777610427801482541562642860129690594404133966699036968868179668976903812460058070268060384002120227960852215480789767498210961729033463186703468315426995672887554005323417565885408096420456959243102901669240524143217656153762216477785027836247800705078899312627339109021333444160811679858264679054227965743419477830683729608364290193652700041826786752342747189388101895960334008989377262618013653580081835583970151514894389397193480095827017648687497709496005035677351540773188629431045753361549948888358278390978051087259772923498552118658588988898073033440338430494003659211005934484640847962225918475339108226584892468850823159910283101231045905874268442560889172814204870911590479326949483866839598139014244754852906474091148649920246929994251385822504941112343734864826028092057908738747158479189499924851842306303733137105293923171906407055416376259184804137494459079201097528991439096051036153916761699366734734353738463819394205086456634037366507027465270334807125733404350251983298289837495452389132593128209202215791163887443889433673781915614199672335814085130786902417930460526451145306513204014331850227284188091241426346003118832600320921220631859212249271805376981040403030671527313218804282954309800791836484977690090840015926815101476532039068155912306990555691119671680851681133781428420031883492976272295756143600066758613657079218256637782219341123974956074042248610445395243169638316054151570298249485483362270209366243209936910061026126103340164245833312391693415813998499116195968977684227528316634173008892452047652819879483449329026535768937359771443439847693940715589647646002255108544155432835932035767643275394448476165661771665389783408897054675005112163605369771682006899742083145669338347094691822157780369508621454703501293925109606468235422854114486397213016636878104135305568415078135487172422077959136268380692114119454828797246025335467361850663459993372901968960411299565744675340351825787775772802664853060204064934056759700562374079784879625484133069621493645044072989641815943890406130462405996552225324764239947092674448567790387420117240123664164235315685877034011544780254513993563656917300816440421460129764649507543471052463220952416818451396451834093596161214209539986016705478095209051187982415228565339574362796379857325305995506160156063339352436135993463894411686362542373347858934939313665892018047797964034494744721574169788238766478451074402108181090062245902484543025581059905125171599957083644958357599659184895731888997765309077385439722686424442886114741557449848432757961403625343336473072789780720058513268161549150307794483174385013963044833738366001703800275546131956067429990202552155911718450893830230482900225268974987245612701111071418101735972878488739074957247027994118424894799183240965125702096431703146134518182545494028337777234178762117439343855530842296097319742173845442634256443348667543269262995935634515878585469010112904516316173492103590626666873872963667263489680105428661091910480194283828172252308872104439468372163464917229092039750945874014521942487242274569478656883601439962651012586444011197171519599201071216369088881248548166253138214377243558313292337368457258616568503300412176159079516285174116908743551845057015561259657586930187959262148084083145535537357747690829387433244095935916862109802275740312742978936867866204606919836409181154100317869464194507262437173711559229179536865039100165234019955367471572057499550245754420603794057282254047564964520619213648283145775564977359682179176177300165880821796878869872307689270963958511168413047217914167503032879586673651862546820839224681510355701400679929683713396370731905749797156444056061453028416566169820217723418931785046198520368398762192427887834381371061583842685609631934818700667351603009374874279203232402231332239117594907494832340125833676849318379567612478606528586681521559578747163830694044413318255820578067516818434141129339446802483300174079108734189335771679767558188618044554916959818512024019855356818396515056760200938440754142380625778728033273680252160420343398613922878602755844116634954177606651031517952395773035521391986299651379873527607827529309174931890679557904345887347957051473998444545781866990420521218527757916193789516705038820121719882828989630809709880275475120490527399790781339345284380667352645813302270806655583653524084062872602788790535533154010050318518660561234963983862694277831235900362486316080454937750759210230293065028664185367294521132662234041095236450291761614349179789558923753742459034509868141337602925399060609937794768198564620525554799172236735358770134669936675915063918689778697355151046178155688886101575802367499101183199131119131284589007699983425162504445198844388472903668838716953647109554928411126556897224000507135731860690201548856640848337499563802965416055863766034842898141812950133207083233384315540540048088998574248398420706927205080688797904484042300637309062962595152863538854276130153537444239560640164353799642601861241711690783152658897743102908128530491932008148340055480107915214535714702019971576845501333790661121092119570064477178732297688192716267025386710225369577716537438969508591251978469761761158819702316021596367416890279506480381657141340426915215969892995187154413272931732781875025042495730803598426880249773521287968594941445905683833439541412081651886208867127829619568581132674946959274498765082838528111212278054086114677019549031656437520117394627431135955147729174881088231233511181054623210456925029669640460945787671653694222243065300966161669579193569285785265617663771125991786872763620278472904808005276465507794513003289848027684011369583586615112910737919771201267376686693467347580348831826404765723835130448587456326543699529534778097564388841746105341487491636743923955740697456251793055738025833996450214233157715298980186039675102078493841184467054526225404280288201185012816533002584444586599628955035473399838637913348982425131322536254208900491361957679890340602683258622752905559443339538813387624725211425622522125590501892220702009603566125789077029652918546967022768536716117204639341414391959705112582626442168563374859915025415923055128512929124617478936377217878505182913697423010125316060186771863977557515522447269838729146436993477872598142033103873480968931587969064126795995390319278859085417070694424109947958157931282915790814559357693254895238756070213540391434192551356597019994054571673086634997550404818184448137770280587523562431476505001639106891810287938609259950437818612605641069464147255970886474120380362379630836666642031828505042277658665656967815933886750679871245655043510870022058528438218031921149093084306087264035196323656196216981609346319685039078226623036013544320825996603907339309976988043309534638262960226145759857330729984249947311416590881628480917643674380630980754521602875837851971272663686849690799270193050335221266887457425125268337416565224030894542494363505503800843547421967441515606025079338296473453415278364689294274237874740235925078811795429780111565333731475760571786706544622518732849142530561370932714410973488020076293064814656030352409737502873396261179227724800635116335783341822906824498760746149072482329126501159813019348760240168634370558272668439060392844496810125528293597464701418707165585889876714562134709284463310305089267058723279146176422806459414840115054372713594661762429174774362530111558682632305830297415605655919706445294475198187715680922938379170557011166427410699126974547294302675982488641417330273184188037401117650435236640987517570763211060536555916894591265788554894367885758134451964013316179715590272166989027261175717768440819188727560723327603570512404952826009232798369309963148391153573847372762981211411308506363743862278853430130990110330915833694892983258365995982738162033808997360294236165453732084604913626337303999358818844163401785282879708602006908739286340770093635480460537367991286206315663876509323846196274100773973188820097652138100025907292017057170357871835100107974529109560702823630978661880163420155873690524273181651313042023839534518958249367853540621314630910574058204057397358301205396361026453380656407622119965821605944973732310785074264593900251885895781868831582337452751082993791388583089848237762044809592351630079843216934076178615425729426110657788834196250035141208980665204290627471751324688543195275667539577560638041425837844374464419069199659411426477630757420783713766652916593403599785714123010461862800704123819802729253488524159517206809909799994617645700654122839855072930281865070140422450588630648628734886711302397603234772176147385012102774352174515142449794049575471844463425078107507955552743947969359817935052228919600632431320070298065116792175371456093006864035798335651043121316615841248528529272841897032609495367906040719645002092293534305318605203039811431962726855515484957767520302965940375426234761774187109590953372270566270289012362440715340680888404715090993161352163518125993821579745592563330602799509374981315401975854006817968181949808528147889205526755149871158333368867912954419603384009621354077780553373130059284719865357029564540282217394358433935994604221704427831121760032165273762189042344282389009504444015593627785928822286660949279830437117739813475391289995999410518054647066661341102713296316527272852564884598692486092332219280912301849777283704150412901685068430272977007517520485278499300137076475607871510356290298082215557395722320751522272873431913885477598735686951850354327933927948745305168275854536025036928765736952175550834051981226899277311137750036274489883270585418671533449715622672481886647596697810135002542428648225803335930194950517781803712786169238646340481578772284256283900214612232211329172531628451628174780306066318649641922733934909834595125509767045698840704016884528548711594614820894707964931129568541107445774807718131532792233805006651791887805611606570331471501103741126082169968439319149105626775632240654454245491226778559893308668853959320196224509389573404044832713277527203790303108313615867337779460268505994022412461582669069684542586610650335243997851228183188622837289095932916121866739165290410520885393230643940798480231470856108740145400570341425208404101473226365461019433256865516506577224529535475886363051040023558573819322216699211571918487642986843896109266327183389778417647690847444351584307665721166217847121240486580710655053678592336338977812594220886772390213490932340307855073284090056048050059696042638291851400274880024968600099282367975877361048362544816369039781784127561584865621095595701099966619345687855692413180419889513060813472932009514262599341838267097712911070675273808408989400529593041185702582288246034295707753882992561830546623968544668247990123843023127329915763770220868327659036327294099341612000232322883488205387433947650589846812558041833350163875558173544977607772183190623405649211182973311251625097422454216064699089676973547130019010811200413536020088318007956351714962805445271285406760090205142855459603650668823734718840218610932646742068822210402811429192919473517979217251455544137193892600022581982511878703346376167518863686178056099997275762841092609075160190876296402321746772636725365833845467428224858154874770542234833184758873091866774748067822576834059045944375931299189247358321768325417635092636578747958649867626715959207208960319082285957163097243540048262301671854558000008807261104475347312310906173019218132125497988575130555755932022786768897216660034549928234922700355005865051855613639306038275061198484403830943213544959137459368578950331471361466670051731867536865017689342101950643114535593941499351871490976691225372039169513862459813146459495184833261972475232167467404820391815176829204486444664598069093798202556878938941779174251135197047922577909518866001781197473621744522042820978606450021558824362065211841519613105676785699780544203016813664999357663899336478451109782734065034600174982487893755660983103810303169678341911633373876180290267040729917447769092497477256595352829417709108081433708750534689153878315397486307013550800042683572406468773833396066032875076396196581393521188804103742185324981999599826257377759269431706358628253252418999718074950690176535129276470903334628824976994980372733255353900857728398452027700375144499202586979381373137242835454290073913549697421204972047217798407047797821119805722251747892361345672884377571491126144979942266225193168286427369755864286355225564094267867320244232395591000322065686091036993286139993314502274735922682117802083715955760530739378012797850039091258258190050706991797538881683530979220549412101471443488435116610933584559429289320249016514212117937535301083732436682121741364107073657232620762229199505654881444000299762339606513924268213777536467077485597798354939388887530350822108423576422764169659976674963148457106542068803649644659004862590432012731579668817922818290636651533693895988255848479950465123146999202675715642773781628264504704703926973506919763550987395096678563088873622678390642899675739103308437779439685985589434192466764450081393271577243016087891252882779649424605227889440218140757819382897881007527159132671093646735662367943604369661871103657420092682087665024701325980692646742079906326740273218982307734319473690791370916893635245271572423360850960695385255085458105812184015215251561803603201845597074090301762049798639196017725345985222077473793303044976713351542541421014037811968571523266699215508753572335542613101838538816702286732099886283544745633171612317160546691357191011627211586859975764706430093894745487241928053123225137841340389600452540088381478902480823767255536736059637649478415647092102883479417746261105472372346511981795534821343867627474325390841606177133711076247032449473831791853280636033299926645407225673374378596281669488722202533187254649593500314829551908705669451172924379960725898767262115103189744583548738793835531540033661633175456062606430323813035351634721600013810415719307174308412947215564404711522079203112802657292731147105661187481523513809638667365000789476738759840726888491419227063480563795219365813959615895356849877383552048526686868370922245869869826185588872508807005256596203654597613922569071604721151451912447764857184029653397308777972342149909395804586894587569479523551937592488670208974543283883884242397396434754052436716482441443649264688262695328606447223605764826312959766558830885499843425641255214774764862285487668662187498158586823250740845958783783807925923092635943924002760412298777628128628975621986396914241249994500250126047076742467136995834681436862835672266791112911574168133885458987582469463260821136156015898582684023696058259071215660487151746294512008497892779467603426542512066083451897918033474309551616027362405355593188201365001270020736761345364143589067751830752604870390418420260272092355544747657835700414619748688139694527353018664656813028650301016114569468204162707214026928727008936143373038400455079219046281598882573172351666442141104075997219445253165426142567024388548955773880764666046148406426979892913132953084057237491281832482879404665120119935213360315730445219060601963742826741291451742716505229454134296464547239967127373437495181207916626829458648840729405443059655773987040780940207948235724821530806508209648677226522538609297607023696331808628597357223928144945397240739679163133408637916270890868186428093518244839631740889033886398507872844220963350203203473857985815394299292406223717043021265574283517272761252507214171905440371368542198479314333313752157638739479620693891400237023374747973371761191617968986476994072162690865218322321561788633955658874178360366511632764084097261808981535406376133628626500697194005869436431093683752295649406531983577507507282207370443138587294774926597827322431397071834769810177578646485937184071749705659396782600714334554355340092162448074689506856117972304490595329726732250456041844286935849049484673178429793306438404047102824753914963586107712412302183796921161919349544505655266915442495524763251282449147599791113098143424950841150626901672694277594685114426674680902128635369791994962114805617514097432660760192745379650664926406660993622711170299116810584246096401046008056621300632238201980243741491996684518937024329942740644616399882771608363733519450357277055686086518470022637246298612889883399186219147754366324656396069913247802451038959984276448111998570010300003461658022099555613400098798986768193644327128824000181385749007696307612863371898055190658156539308974633783119173423088073032189492475450104224564904729125562060211088114049802232663998464234913431281727852094693761783389875469828328738861375139214852497180494548952024565249258988959550331615055735678299398957180624422432119932292014011864182337452244693172709521385033394630889552683483278263398677660810498224274888105865029728096152495998412295837355748571622701320931668950619418053763013572594645567612601281913413595389224190382870938476230053400942705406569299948522243332813542855775544696462013429474878423800146742003625325932338240099614978676414767734351992169740309230462850247553432247940833418200260602757394043410184161015697259869786563254371385903224152509037550375753953527353076550716285434935125279299019794800660685280209170407465722957873496441232992745638371513931778185700165449019742435151819302658962536127705569848747005423158580107080937107468481554428935456135670975375220122342559865870767141547421409782073167310487531750154628370377295677122434702257237086269662778270642235761000957490216258122261382296900618216911675925913610827241455949112161794169154574684593179371759958461579902242796153005979647063968934589309480572070308729025752984291707570029586819162408933211464462433715031312015560231762302534060946588428034204941677275800380182889025842249187069087803453673682187278614003226430330478305358872254732361059161830003570712575517640741611929141096235647438162448496131880788425173867916098838585556556939130613044358231103643021600041362170318553089558157914404471762139040890473424354511965936284893622444649863452618701867330322670267801649631376777740001570510804780357338585735002982485014957009380462007774400493768346996683941348886943171521531787218755497312785446547948360885839727811841252744287950459284217581666800804910101933553817517107558092909504063661847786017244012840355307182412910230917061463385387570812587055056324320531143148473988892366164748419488125446589632472612065972430124080075797637713162155943026092759652578733228870863594035840043949088149482839959711389348247110050791874365918309331381805279443855951426763176014806650558936407368097860556885699283163590695276402873506469754356774315665486949140939358943050296170629713033794350598449491929885342123251224856325655275679005023000220882685760952523045776217167531009458207957870660393753516926140157838752797381123697690545002237304973096819468344622869519345033854055941272230451169326710723733972375815002230450300114484540121053338717174679619987081636697917825120619079745439231517592335576703738454938485700415291960130952596026250964954041490500043154437627739975204039779710055716154031899843406007951205916079571596934385434827548751108957877456330292713503022696097785479218656254983370334022685210378893308766621024602418318785800655446406645910394157976552286722928361870514693644638960794662254361130504543648526761671982391455971521134281377036531800169213929092591075946710217367284196279687908117892782805415074735060775229927152633774166929616461862255571667825428687457601808225727038763303779853325122531033963178164436958662124178065086137465995310139377313537386724480316460817609502483884692348366292700539571640949987810721890943756083101523635292351408173685587407345032104022388693106161987650944408560743372595537809453201753553715371030279433604140444431819423320742450601102433429374000989926590293209465725833166642991977282143796398542266086334496178268935637717349299113631061655378474284428632028733072759301498129298694275708803958532577723261640655401482883371441013294421655028872725338197731533415500017566792061323715356968051393501588894651542976788428055298807996195178921244808406063594660907790526434802727762164189537202834669801857664588982232147042159340495210916514745449876404523172173663853614089052348454465192049518305542266140051768882157217000606089121699989996843953397968794014336211797065112863036360079859870299324047405909398727288137258803501192680627184847400555269768714192441340211421720439868176144645186259576400650999845520866967265219295261676320608554596417813655787328499824518779874293969427581909471430282897040601223644583274937629783490623642620960842071456811318416109766243517532407797241714749574901524047802979175533464044995201375144285620569604745646813857421031768586093533963647487534639789162513776451598845984806563237623293245185205907747781900971427646519211370785835352631540118713849982358449703666322600615173534883254394397686581587971206572120032618462484096266810318463502389532196987274142902989786548931885847688001331979623429178714901704650294954466899580521455106520339078207674205092099977992549502621237724448154537731045147963122198301398212823961485857808785398046704482038925807503420362458306572848130874958265954048638753858447580225569722139432462559573932239559798016402549224960608189570948881638056533320732769665076869474846533641664620769894798655749867868963821180844324225048984317208220182157468701657441780202760967164938412894237024053049042765001507825300440953578369712427398457713882300453245852054198921530384567667730755133150796872386589699223668077026895837934856665198729282584711619678369385655421117123129569071889706919608820187650968299242551031995034810314935795219943190290801694062316927211536556882108167690276729220119868598356375535692918314066008911100028608765559252300094635787790278214826390356200431700354014767783491698165621538592606905252504192348561922982297837581941741099906619884354122431487004460695222490004962981647690902084280819937541488296434421478913857839235566172309646291409039107192311715371718845065800213081497951166091082152943454136073243587285262451993207980683876941286500166730657002489781821174361821029560381614397556476957708798246807506982883090878082623749881316718891806291145975043559424721507419288378915947738453876706308009432269100710309052605928633512363565243663306805646870394602170523399539960111735335550648495318096287231789645392155583190276019180722135142640551254545655896767549869598151665429831607212154274380595258766601970089570104825729081348354118252251904570093604433441776211748989314628941981055833866973969297406844747249349000378969614091705146340508731283432466445368481022596130168559491672712706754229216819171201451013622392504769343339412482571511438853424055066840546623155422413497247084628595523660781281092030503953941069173911659239318474578235394130213018499351542083860901547787830701355401246728268996732180007425296290562883469470593669757416656124093138902679794994858333214195372109448197797446685999645882805485371253717790183452807657786006699359023507798848433982541820724168879051427791316739969894803045722074024486063223060886877001996441091154888780883838353955092255480047237311234073623711664740095878476692550599415977658786608035997041498853621247286035807322349844535354574555374932841123041565500095297386011476047502801055050758545049122073676397219204741828783210990570666145745130943514068666100430186157275321111535609276046328007234892692005381137740674110229965643703916670265663026854254077566250047120955897242569027959660986351740050276703182280671697248102617105101815568396085909127043153455102710832415639968964376046850825391460681000238866017405669159273721452973437856997476875971450442382213955800858981046877983343904161175457266646500098869402384630452177851555048919757058827841440625522906803584400757144820838194266384700502831534226974722835699977975628649654378152385194355046101841323944543933810896320066135316254706246104118238793592021545863759077317621448056357409237419101161114898304758910774025977052652579155085482048644794616879805183097330807782122895657805373208379523702769742629501062278110350815527051477906243555781151598074112780794226031530618078039773519969937094089971220860263683387221549947416425958832171347576562527242370993016821364168229010066338911621559270630235367547884891420489969671846329589888275101249494631175141607953513739200215946029978461454478561155315665065193081047245411731777154304275267795227277747069078771108954113889774354836942677643253422541915008732619683151336724252711825082519301748972962183424285500479054766829636445862679596276445603926773709206925212373069687804823309797508106135791943210733296154227607605230248004929354750031332242742251690024154254346747510134152477414280832127278107772226437685440648543098869816689178539872601576322096068837067275819828792858496186916952219089319390728879919851752425833960240507684856719029088184987476062934135072709593231576940041836493334119899456309745744967943338792784273595286394341328999317831574108101053632000425582102886116649994313241651929943830424742272456261367380536928509780485887604236700421557036967829967946817258354571336660609808389878021043641787820342042157984377038317354487610472125514520222052883944417711466794073219782165468995159954661585744796357892962961142419513803850716847556423324494958348158812106213620073174965578816789536118494722049312385234539862082197631845567645076045867213376039295776594596614306255674819751623382349345590311307888873018478180164673970154579244625002323540308734517970306840116838216903221128581526101920529227788406489906566185383137201723773932192152995741740632007795519931676783661515975440577447827536275080167649300694798456512148788992856823676501308931437364556269343248307593745256777053118918802051045521490662969966684239785130268483972075424104780461999908733937581909469274047757512793566558690645275638537910669359803299286119338621237282853435374094453787472550676405402085044110498366721305612032583611561308367962052483753532826740739181180370563039081437415865532465948496738723991164372172252047953785211817315748454101527313101957578990628243549040151843390675734746990152235482707900855959347566619144068685598938690153224969072626819264216356400863927597791203311033342533759955028667096125467753633868413965768983638725093596876480463895960708811332332701128087112744507002021203181316938930177895855268736553205660497446761063650529786915578674824246916725833755896884632612116761046137395172046269327249147441399953901487535103582415475006537019843442037960392725942101902102365326268578209702963904104438410362536408965714175778837780270616223771526893186383544921112608779563716867477261162535330127483477895432542498736306131898716238544454407920890329547028362857533737054836708427608007671194226516218622128798244862714333939941038595315320139643965424792796040100208628580435362932645036224230376669945001015611908228881285943478000420287727127921465093068113292262628663372372853702268841807602728029413167630556915343755749040493464653248890727532579610156525023679293659301421072342771180337125665802846396783930939341234104959169518991399339656742149550244750795263956601022563658127448113031933713875533578156750886440255528634436215954773324359870084890452985576266359982017771685544104453152396317174522549627146529168669460351998787164703603796123673793537827727553003488163146389417300610859811352395806710509984121213999654288539234246978434702490744341645353774704534855204246701071616457423095622807528295693539135219880765811356396274447287692147357557436751274143804462579200771542888238171950143790633566253765960379369338196224156862592492829322596248777611623056684696366418962888303108249925118450379833193645715477742578639299509181693196921368898814422880196681030488508466243602690583234463417350276544827101063109897650161723967001866793479405549790314351076389688298971342003506504938440428560696007467444668651419202324830315969928513214687495025316954733684703596818848635343664917444479715072596813484485596783608700201758071937697346431464622548813088940656977379518828774979245180311044981860887735676480523459365252903181700225422727520145090862049372865591042973686676942438829557945455353439567529069475613550712318546168476001818525046564628573031659001567518834869259551444207112560124900735584213523939797735058619767000682717023767375376492999871754599794579669668083800808204232568668792546801087115362055360936418009250584264951470201456369385707759521414287920930635492839220582347346183099851206000877310010592074902125403416297880820351586281021868886744077464170882236151560501689246727268208140150188336620025148441371245282897091338533793961955349848403846470614310413325078554665325684336903477357937771285984491084780613326296286333575464217434562053639554209707965103395943104143650983330084194826124175849070174728070741435881768199953720844253785618271715350589783028779040994366822399692928073310143849114876217269745431030734024652842971241949181554179272563211172145086302986959498508220158969907778654799738904566647499622325700015113258086190300060587998605109357957538880918992893689109891079795299826119516523284408028434783422594798222219112221084529021714298942378903657851515627352213888973720424037833751852617604246568738545265102717053527488783047332417813517648294831117085332249297003361382070631719564025682888460331111507926011270691523079601624302305229463775457157910998762355227809945133089971505689276881452825395123889328158334542573914658031144384372934813564396472384463119928207982261427780985841330645868334469125798635862352657759119844074236756768654767842593859027072010987694737581052114823344002728750148789159764167526169247498180207018299692996988725976591744318953214543198022970006362066102409939558637232665176191831344317160748522891169978542249165801881614452372490101799357085784004853210621336212822793415245251482368218353514717196533271121982491365419553386497205800837428430103842326511502235261256977895424967713137043996670306343742280144974941222421688245154675719077874988124287446166274016313376844888540590063760467955451999128386861422642694625336125834041823395645235356578851169027951942788775390284457294015588156010856890478636081592110401078261186108127501264502133172693207999070297737087030560754634848140348133043853368949647332882819094038287247208039977929489314093035038502208074965396833152501074163907369771861772096220216571380941449106738253843706868928883375409017231012828499428788731375175289844096305980090304965184731692111903492078866189956977338999434566641778561532517627681215259148493958024958871235267141841556383083315410800951303455467908760799016945086761339470628226306461398541791322939898907115022330313097571212225556078015647283350045838857175689147354291873356974352710470344672438021168951164939962414001420780390550860752131763117553936956221429263564128376938396734264379748640558838280533025450331099302021522074534782325634628895938459534437629747532627299826637863445076785138414657180773695574200466919171917850241177524365974933413654982229714530803035501492951521358046364582727803441748158409287398692838101006237247861241704068040302665676315913427870642225757714348466772834465782564013633961706714832891854009750396327389017191892103659051744222075743301529185337525676733422091670858793903221535739888546529862074611158410417812497910636860231016698604426215213303116785636948649263866019258840047011220580867506846250737191840637727932769013576951375737287555586278657643926554678759591560439500027058980954967807984545233340386939645926656743187384485324740481399588550475285091705416210420016807770223884749294701011633277234940529505146512289569812275096593285000702717530011691191175904849516144302242635941447199939552708754847978228790904451349859959437337057018140236983488882912926188008488319415619315638019219166087920068898801904027040723044092514901454214161542181155135308429651439921276282077000553743438369386554820743652639181343704949861905527488539687264620592570213828022242762806166616944558080618453087312297151628398898355952198134869081352451691054799673650702047262654543510695055536381808965056053480154633934652354798047607579150953528638628385396910275711297418903916166365318867488276957937646845625806987271663298808030428270487446805714966851971799759639185762148049340459630216302996446010399453510314453156184408181334779053201191868310381405778983392651530599955212258907609254104653315465493668302642144095537556565265234091806164130359884326324100842216274003800249392528483867714330549406089353137428866864202438431567937302387372479708892199138725429732188970292558859648301018971843611453699925730121676623796643697190837365741968810701173987627834369150666040368766807458432934546131350973833133081633300968858976194763694833716300637479283487954033603565522600785409954060860994451817451718152831473389311684764422937225485967482695139519828457474043130519400231252470592019509180741922794915578201213811214525636777836066118654294919257206389017653163267347401585975858521677801779384467714600128372299187784951560265039974676280180743810278510060712442508062163976414117060337796069366557644465008235779547952312114817923244586802111337082417101537400709273503357843054211097850331499796754153235197610598127455896774266067743775939469843255528839690827964811889628506294488019077456527886638473615559697265238795931291919541245319203056071164881506601890772896099535656616625072137915656596230942853495912889006323817551213835590273370722645946820992817912617455725333897803924025494840729184692557763563679271682347130025676445379291205701979215562914506237003201635385499310556397374820802700232657286190712792220287461296183056526444496395042762511074232236316006054184331104335658784152105814950704982514716432811920565567407294747150334994900494527004917825749412300528649365598018248794219188886134010385041849797260879340368663113709469928543008319070430534928343162785116032335944198798140049834461733344337792684343231974556368341552808634854083106113469226131648343401434193791136188662657556410660794675305599507034459657526243407407109322327339811241554123305595271855544522712718882008400405903612340270898913215071646795185126524957932570335731973717852861592379000709387384420802635345084432936277588688837202794534253287301667354278501589258412153419936396636144925137847349072108442579490613649356667890502811609781997636545729652009238250120932717707496851604276583919174468816856252245927483382659093566286322049219259033185196037523243696653895643487919127428320882985913819763847796861830215383214113692345737666668930318725151301414326626886857354711045872179031511550227549068257983626701229412951433768425202182747937593951448356554209247347785380934050960733189548594778378252125368257659067140651503056801983816885774418890319289750552149181769141995984745364209505918740146819025453979511303359555968257220965800673698830248536719081252265346002728505056503246644760729820817820588560550985849786767474656001223016132755496748894618060422506260330662522986919489987074473153374240886795606181601721123686646641408037420242872968050826494450919962488266435021463997198888481802139832967065453387894898819420083409221268291507593295332952807500427132193507407855732359919663567534544569663587384974438281557178123339205941173517282015933157149333332310892546221849676522289648202387799908530222215612020262949789792817113428684423064311087941730754390199127317528523193520247798259488316364285915596403931007760524437188716374448149903241423305996785947852557960550260579353467716213109150940733163822818504928251484525255130403661728328264155505347859342394125459657930946673482105935649554557319562488189298273346648863487761109399380432542470506208987185822705116737897079345513298726867099979713122293083587062449027417301860443613546808221373220442712577493123815755302033249656158961092074638320302918637019484938772473167022020203574009849203074669451422063782087087253212504228847848058022630509704437396148611810831560017377113368611106261371626195330570397431457595905440233206791009054250165260035791832817120768139082453017983455204755022139426972577457641703892823550838866155591724950577695356261080820626461336076991295656439633564125820115963058844314599540240748123816621168726294490882205491875862026855511506655505654629988940864850751861189164382203675919134210306106419847701321925120885288481651959784152384124248485146196994487347223018158446737082567778200732386194092356088680062977325304133601956881824067087294396310080401501200890296721549155887186480479987754543267469196739054189538677574164121684819435245805563720611702492373972226626770542872665011301220136362124439758764328066995404707158130168972845725615800180305182779824217712149047156374446338373652349283481645562842961443691389786497641208880831381450088339487791428349528328372267494431516735291804619480706932684816512532079111482440026684252409174149711077672983110301506175397339914797337221459080614793834995801755637018789645594109658121394936920222048661536520801401785801396213756130263798774674751065628519543336683161765538055676125896270073377624138930273556685257716809327155735191102223141442763826473525478105616901264879462581056912371878258708449296180787240120712382162147550590780627261655647973638645732219108535382430512900414802836994675988921759452036695151339747833466062098898838175840250778039682237947654193388256303412808965795539564035889044571514387683599027782696986380235797451324473189123091871765252732742063538496621198938165102967209536082297308707680485855236265933968027451525243180839932352750110512934591153022398724228621567964905367476210956220654131524418672990298288295286286124558998521510673383787787386160705918360347254864392279144072426642978943223356198230105305426678054529540452061717765583270384445727038018940117118485081352483043978947760973132261730954566847775150321172986407582257464637644883282279279447858738782432751186600062645189835072179807750090010433340810585731597449990656654168196989709460567423344919722459176325216509363271551114511447636446478590275936487870455782363095040915405899009120417756598176324782184136491714169218745564607478577108898599869416117424950545550252330050046737640156080950212014163009949569854995861760724904453238391916283872233171088385477222086793303540317030725013621050445190396350815660357329361217246952875243181726199759939584831360900774527509464858725255691907544410043592722258213461009969643680515322071288484550595532810613014209625847723658994664290110242823342202267815815001791777748245743603172622591530953995641738166732843789561379446961206882988037041570418685788186977316240358572312956891005978254228894852766451114159012631004292741645745649024381472825878957139691860886756812252565467425246470304233703055700527306922423416830992548859894647702476187019517803400828421295105619647254404370081784289308422962144618619776873877250142544686361777274084627851410217041137493388304789919017676964324819382967350795767484268790075470660271907038484234255152013118287412678009123835594933013686983007465054603470362716407478622415336253452338787490346586365445862047246974632103810913844298229275143373788826382656116043362746388987002517931389730945148982699665654862413006060500985276203286647855407783365469823443712254082790586940129593220413456783905975596729139884542267170933657195528470036132078756465207692759573510007774935657716666348073371050229215465804881250333082263021965524856498488484072376986331874246999848808933909626943989956334705247899759425979306279581497684089933350611447593240233924364921544632173053168605581017679381238178056249739667308020864479560318948552458759359866673629014075981302854464807878590512235179238995266693521438502721905597911269966544180456431310531358103408297050947635924670119213263526222678433815733300548858617021597389268263820981304209036508231993229457116864047563110550346837300129514182130497321453123536438859079539206108918918868841249590675833082588362425240745276669487101381980048248347464407290513544588470208763643925726119070242808857207634977015077756139298011343720716678998891307711978018261810911134685298821670653925299574325373384060994416920684860709421820208499998614773629564666584360976174825805735633487750192837334543482952673402098924328879163855103623938561082130334540980416928126919189593051974764706550399781097917102758610544917122463360515676518674715795372379231805935435838253502051546940403492713548257574590229603470491029075795044588668555603243260767179708841476547438971370851393080343552872486047629396320836212163403848052670971793698050520681308224512851292419733390145276804882474960739808290912627955173774540863175153903536181373818608161072138616000906959021247329805812699885365258427000381681771131654723347825914808623339617548724980010262475577735631101476150293104086721289155688072531269649410320815586357938104998492828715048086975151223054911541354907800490431253067562593583229343047830589823167503021389810516838690420384548602710054464203970277506172593103472372948517920545191852588139827850046694927359512426205516111812021655554141891680917889901181307285987665365526891257558155251479837858503404026284749222376532516050463148124064236863765820070797651614553023549309714477755468873014939988800832454094532566527920794519414320485452004269379717625224918090917775928755020195662572998359227937236478632542202753107336794129875269085305162198382122966262398063950563129912523313713003419578221208971255639420298337979116322467606719689662000771550547007610650083042744556360165317812445152963028770837911274701314855893269319638539476826248220755785730520803424931559676802401458960774044313909636399281650846267008900009137137648235801782113009248926893283210124119626819791279071889709584206459192119483529755515640690817476898313866133941706735510066112514781299233328176894941732097102502243330104158631681841974957897934543176238668924869909414768891486233908417539940268166516701297202587078131786567581437132590376869691577487019587088868676522718505937185741987085724674064546970154888484596959512197897530863983164624013013098050285446347555336377192593652155084899992123457181412595921383418060778232301991561502069313251683322277739885955648538975470483550033153286332126230217295977600330267230538735009318517733439727180673797791852032532830733428028746457459395636155798676814702148213765940545340574813922543613835086611065198608620867295164404016857685990412310134521101141352144780896628749276421370732308034750200932399872644112166740452479316349893126281995259206068964282680381340647904131019673946122756971960744675968180236188582731869298750167702170420723851201721366464271443531718398927777403718292656200478100533314925090245292175459896300071248658931607075056775941999283123295529564324683606607429371406942092782559614834907889982677918116566779510577982644181533923158537985337180763889010816545210949658350107389699846830485107608504502493797141163343961339162319954879128191719815792084666780606632491248055428302524822561945690574963724376080819844813592573431523789053935422191606327028463208710650794571221341597840509908880515609833788521337327971823513915029492374187537866486101659432057330826348596864466948040925829169728865095370794039974491774717122231480788866933799124212315287300087925793412518343955918267879472150232179319921100944965739344535290073907702727949006824655854904946718182728407938809664593794203721061418399866518034366282631095121378216717620625545587702933325627454859342671324966007652824854728437185563116765156568158388937127761922589864175410481616477854311109613237229119015127147110119768992228236249494619825979653598394309945213889397592017118877313058133344074724692793325442097785779580779394967397578393236048944540735635918922435245927152948007232319133024223657589267680733652582120748619364065531182889237746718184970065227693656438472765328944208212533563811575173628445675901212748450217853653189723577316182797193050499391461569668310737186037924704700202143000591059623916193953162094105771812653633587208957709272585164065351858488833480815527291187903387309611210325249821944888064881497810485426155543923457155696411641476450687141375003928188315706115115837176094068308231146588596796065319207156189846232121687430909203710737064438408375168533094511969373525286559897354551801955721199665686854520862935427690320067232534447180811761460349707675676973068616201500964473537908104092072989003338045955345493137668191002741881511254297381764514502106647695387563102982851626084929944133110353089031908322358386866662768041214151782275006019673290816011315456951263303286928743798047509485933105999031812071782838495147514974696724879239685563791463914138243603103004805779244202773388786452145300403773604737978320179445928130897716482156860530192881020548886223727049512757965671153658502422975393077024798212650183760872786734571506074512391058030282736935305883934076050955753161359727301340326112879294897896142327016558975422916606563652086794141630103528222061680142419676567759868655749525759454899734039063919471144997758168593994993856386906134446576629674637734005532987101230908072541255447917651636711569748789288376343802895997300301679775995375302823724335950124438245656831269500418095681566640995388077257000000490492864835098335702660559534806279366262157842099908452414761516924404501193069770465179302397226497765330556840446474045386302426949490453852353401971365626195477231480084977489094098673261646069560819799152711980430780919679416878135242608517605481153415882457141353425571400011988998015074673418694600243601200862519125963465880147496724501518916577058651454517447648009110549184081342041769778325378703059156078237340581615925923513584021026802902117578750412425244993349443581402698908439445939053978979973638909881144784521546477524583238233447039185187035771733317561859532627752164302316999482078939022864477269101789806184986347467039600389160713697112249077295481020959327918217736102563642366846244138140482505771144128107591515740528162233743461915181929392199923563559919828474654745501359290467650853672858667056437627901433952830120157102224993356330191690205211087776736988995776191895057126703467266635079682508977241058623117691191034320520229645315296798424855858414102913687845606478865009462436243635606193421104083765168424618991554602445392404894305160932278133110042212758212684537429150389230959268812047268849730463783887040480693505380068814091673078672787532527179938892266745286382688588767782552669369707841480097108980962598570212994514133469565326164190290349221377887548964209602365957327269968567034756570607490112844537121378907487843989884503821897592617885280604588049465795613793687045886453086165437072659152509825506555888190642092465214328575403678701935604934019302677559472178103547750783044232950180341086074096574321855270499511510683545815621664019003373365616794903687264946461330242116275804514202869053488936301897794311368061589966656247732247300056688234635682529146069002643590725440941905044528283335537540598858453128958683627527114973141145456341071473111801866726102961035445478391875131205091351881081714915719619654643538797548070253416813632353673832765139693999890160699378770158850934111636776534595956203861996741529708926848308634183858889038304834590300193133063125603500999924959981086997326028595563914048914265653393548586358186280594368732335314909380491220657767523205995487498560268300746025509354484307865955807931038459125845987353328388357163763750170931468975107716530267780458129980523249605889371402391933461892309750777115689673071996990821010755492123947815139966879672671137172720842037981963260380649826020663467335459089168710947855928621731491303843634246188554028303883390626498151865083154170239935566881382245305335905897489020887374476506032806706696106136607501747752504303639654338285363916677951286088250587003852666084590643384621405009265302095537348560330749547424095710873364086858351182405008034580254478090837783605139187930273290563169459571008148810220733940243418919533553268234891199341914077623737933424790815246236170573237538419051747260044035449764634283782706302361159653058614323690363078094759157769327904316306243206772211585873744997923972723818223846031185495624713416193870229110675687903272099476397341789419506043164869740129260433142340870361314501515765195374540385694695338903840351655425912334586214882085473631777181139681191485266909352538573323562828337206735777093205469235639518084016463436331013858346043149549594690323543294391787841111071869859592675317568295776204962564279980716341694749602024153231653783784186350684515212125879428853557567474670136595763629910927836400804951209717749426020122614287092719120886036949384134041157216178324952972438527964331220799434678295598861964885807524577209460513145869337497515601405193330117702844944768398823353353943822937767296493581299426279604522204969710216162659568184071628555052257061915275260118808211183060012241567643082289222789817774143934994981143168938957918699243977376786691633248445351290441926134053180693602403843765899372426545505203449503171330616563970458607315793519841790536450746864261799593005514045816702655432973771855605130902625248328677320341891795046575352119243067540458284482375911562616411246444524168481954495254667638806591744700915544451945111967784164279868567449411919780429209664041531995772686072569655483481704584538166111971188196299497791924514273189052680419894244186017152228927264833574526612268229504145631771317332908909852308807615366639685664409197958090257708798087016295216067063471927756203581685624325476634338277174660655796011393174745246240916497635591456734857856736660077334183934970630052597415403147528075468971675306190700690069410229258656130654011823884794990561444541745885152309573805938011017058978414042050089909520147562005084006821010458378506304842625056340848931084857851744362089378643080777642222174978477467662066045461813461945300746539365327056654115505095594662310449644356091036902257416962482552040302476538650290774022837406804920565163071327075314807663478551371392527800541575038881323340854438847969583194688986479144700863541926985060186466484131686470904183013697524407939119563034147245074248842238046937555945241976887246654877912884249600880315931798093059425633902629006980640369820821383224515942326938550679930604664095806172847198722124794735571199950641564927009235054827871383861966709516867752229843680386801733895722529074489849508931721522838137576545133260314055351871911018491721207441157022167599214148742062813955261313586485932658240243432992949083684449571770995889792067933305722955808337771258180106060453995306961375717486280123966160412234710482818443029006600024426424606501475774217032977629203815330397618537471009283476371873988340586729318873167479533650842525181143332071292310879890107417026592624050170611453381264764853731315777633742061248837293893575318591456002319902452156318738845409616144162579167950240618463878771727546679455769285877708077509830131433364791617621898335437722641269394930002730329300411910450397438122833928479582153700018162406653614990700277776985929102529698992944307758038695250026878482822403637615881134349568715106246754961338745241128912544976738716238445938791563959501717267963285501692075115172255603977869058733552339854035833154220484535569367121939187052977662738823437256456272365243496549967168218124240897356964171479827636917975567175072689153784121514173285314993572706318176881224612141575377716208735118458330750402704583859619211200280107738011394812317926334803764481332788025616130593154840325597277228002957971620567159880975768133991779275360729056147637153251155376542478001978344194061531784995181477959535426289153226578971923371093371037258841386243330050457492621534541166746866146322001502840939697393789138414913426768047510893090397813087957272326815660901653289875490625698052619928359059273358040671445930527262539021669603346227303945775572427333117828599881427378842929370181593088879695914283014676013329828573317554614932967140154301672202909208648013893947000391808709953773555306184882383811548764970863498531331378142747879647484246932918498076268789064449834601224319002137288846599821740638310260920579991306165079697206878560732141580458662585916317935140392154818119180725236341972800103190358430840964990834883677043296599116837824950001430274764587975153023709399085131607661427130289509790991075676925236340481079936443640114940451052794074860361998406925154830465117061702692040408261102377047167682182659721177244294130971865451379353837404032275813820213338936995798607136365045513679990884380607135145162816727648817669298409031820231441125876870777004565481761544631516353201988684191717473914890470077503456119248352164420876029912152168756034491571458808316604382104242163631036641495903469255008723981655845305800269378550563369445398401534175616462600181470454287377983917158817889804900556056385420401453236625812268499466026737439135205474130122587654457416082685566588496692515801676537588608291862874493333355447282092311117477339871135561881062354385570048902314300693976976401778598957677233914845478996798597659160490828762656241134109938490789849500017492742150274417202805372449629540735294521369970180664734142941349558071468466600875463880486952033750840442945915637502177483927758146528250017555114205892338612427964183963594593734485528143645716855806812190864416652531811321033007513532394685233323930488957888213761600813993791793927628105184068737714768503408511339412992045663597830431100769324575183747694430133747066510384437372563767766532087405236661927405814921839816730693810700820601638277306719504465393420170853143125897143463100314156682023027150651274482987504313778253809675279607293168132163468482641465956970578179344831792207022825828264445337499689304179408888151486673990033414801085019779412554078177481451177655710158895881335307683045644649549150411516003049315923473155179766816489565777278024139472248659868783985927419535341360933508586877294495484555737093262688074514304035268948315516983168715147307962383609085905806885322729624223682621626871231159655504841239355452883876162520995432146085023724596289684906609388447344121931667070705812646553093660022657932291351016422445335941233780775478362542756046482093275571895591606547776083531914865082322677099629474664108345324853990537312270282755838421395338631186799329450425402368994972870508749393417644801024138104762904702580507773884845419812817765966397261152864379960787199300802093354010781841457051799840408169524279426549344728259995103587227560186128636988791000162414590514855386503924970237603797987041299206754467549312475968556839760243994976499596453364647607845398981106350581134484745478161025208165417465311806725644757069870896704366043414171398381151020146705441753055308102019209971749856294156193352457894219905164293828322924574834081301310696690477668717243865540969324588436388381380227660709070122719854186570744840797454817180417517863665334206868389195279148186681295734635566705837384760084539885514389901736992623833278698766793878957900534668188160865001598894563156808859254436303249240468489681480017016425469855850570503904076966323591078910618552429627593004699229318407722239700809369773077656107003850667438264313073353341178009374375680981163964572437565324619068525941625369304909619642898859775511260436853073471092351520268532600065927470951000561546141841381638482596103995285286422493670649720482328061679050822242329875719825185954705249517193512425920476473607237335643190851464943718046956150828907689487536739421530109061878714761628849925450861417591687819033313020203465385511171227202465069942547763847918420958025225753109165068742568874470823086690371087336921328935114451677837142683181384284502790290614051885811512343015867153115921826084673610013524208201161524174653350429765161100636531575278803179906296344161481399921133216262671080157081890340544496775082260063381346912639879612683677134272392317903124269607427907264790427929042777341128852586258630522590376747099580358144595508498958004491263950772074796224482185157550122252774547354336013719433822329491767905944461418378856437269777336300956511647731870522467943063571188235882471008620482645606358500898640762246478116037718118898129756530242690425536486362394538453663942728131943503803322762493770579967346902423261596549289353504101802384058689077417598051304994186922005534363410525248865874994817075194111710858072605604282812295966737781638927881000470639374313818075935019296880506437977019344567750321041646484340648833132248382895594474995264518732077654916732482083689156045939722731037109353213417407111564655751936929464006707900000164487906764386418580511520535136291495987705259552071027776353469221439848151452465827774994680772404529051624748844980051989412404599585134227975302509795516496208142744842999560141604178850061243968419000368319445926089775470320250001707954664032793908547261130011872300376058059308740032173349728177780422615711660319771944997852397753641781528330289430089169212523483982703968996547261019616960648671420864950501380380636338820541128675238418170528642695431926853106292745324561709512832429833152314445879267988614332201802903953510971292050014052481191017627108962306577429003091623536209176960416006430860977870420583666093000026956374484492515270005348092544794760034814728205260151310623070464863940199601012088351744990583408337378641286223004907531067507466293692894504959031972793822523220791224549333541347705900505939293927942274176016408136078193237145061930387168694071535026750421050926694495044468466239551518792496432398028118767061612554686967013311946322824878168703729788426226631773519028998404228382683175850236726789277064750928017360280361293718451790348258244754274418601982952678661759809335982909191457212213177453443687329967818379743845528974244244279261375714599851073362540289054604098152137263929068241380773472360012429230326387664712432140006352344909784703664998372575989823728646005923003183875504234406853710018739245970087517260996072831500168180538218937531636073072113339002548604092702341011715145052067802606775255706637021860206511582297013247129516636765388857741628565272768263206443901949929536663450207654846205630586505358461255510096809575308898143428811639328376632889398450671057012218754862986003380451422999571586528907907634608210069739063051849674339013802303815663781468686869807513083371859318103850383842510985254907064959934545536375380749320354106099080595842409426308112136158142324723183293190504907307349186171357923286551618471437406266698703261357394736565858790113013865079930078001684960830129141484083748435793560321026530700100188201300453764523760254825484232018451886492804885096352166996620338765794939742306984541991476255965968533801162696528298194231569046727207473509064633375815348890039071878248100373939200623756927565640681908223800500241058334217867240211519923766298761959550809466429243314108077254818232362078092915866949199900919034607947960726634763681297038105733460969761866175609943297592226829154608984140437323884911826463547001462121895803641945647487879479558747755260845552162985376158045860406521098269526524402778248486581629106116001988878152443194905602593983519416440564069182243079959674339942384270301019659846542308187351609217363500367350027323328983561674326748786445429676512057825132571732667485569209541354346018817745480183529955776756818006328591032113289338646389610582682151802429473673392523470608158406223549668343970365987409935775636687866128377660119089732942546893944587707875331569986974346828326785930204248593223589843995332547624028898579508167483526486800065304289571552938702086348080411155267459484104404449947802073343395802269950160358144640949095135575937067457524408056600517831995833029389257720121382930002143869262987735042036733761618501058149716010328582383504320479366192332261869020779693970605622554781973588026629641765512802420889287096938563536546699331174297010900353860636188186494612635816970952238385042761217484534244652459603694322672120528140171342542018104467740120950923501141723118526032169251323077720227564338918376083170637411021628454023268119976091660151048535972403408441081427926841625599893557373993604514165154389304424131949337134156248934026257475589213551117124981145800519475167770050912138966409519667907700041467027401541490982414947153902066196215323105680414518589957081515278896990681027862298481045375218200165776094119279667105777029369928668236448406115209279481581485249581079263646584905294634927483226524828076522844114489865506527918901705062452664230096514888867343339375388103668232555717610172331962752704744207050014477845524832870756583686166407402291698458787978278161141738439412079124413287578180603613205199075835382749914496827078182625360304760559141550329901705399026203224443724784440889414970800120093773058860249273070419897186803708041954104251932556672077043770428916328663338188232749031810953070849668787476746448255507784512277122199650912651014360628526982765579566747936460266749123937778549385848514873452907868327186161851463565687724365852486420476163629019947231766648355249808668400608992041722464051086789468794303741808024277091717811463786047043306725532460039850235557287361055704877122930930495402429595218161489954920272522654552776605688003748588943851124882097810696935821150289803192994735765508690952466344104735099986387018385515280644030105500579960684741820481182308981959504739066287556262224794379038746470483411988203090571387488773869478141621034885015011587179025235198986196749426607522825785556830498821753304581939316941110709916163792258969832016464468201291044896791751319411544941282800988124539280667680958468879398832098503490840463715837528984445641202894033057415389815544818714939197631789298353888099392096087616146605708394584685630139819404823916643762150458889810500575125057710196466872376543700780266740675452525871262328499588101544300265509603315170032929331757608756409006330745353779054140164303391547920939771288231944646584762387625083946970771171961027033549488535017566563197301727987502738629185403673661956472863157944116328567467796565006424511243723002870711516621666501979457866089746641485090830877195890061952183099687436157690657314980269489358162508698603720431994994811171970333727778188283328668763059350584334330325871110276294765569616043493541416443771528071434644183529814824470583966742271497440287928720223672265877197900753399044065073190080982474437385701848014663250889719375521802288422742192793456991192573208397089142617985598495445422718266976645271102648066146808564908292898025055546332101652055818688815793175132118485181069334982026782251807955124585091136086528705825666871970959684613611824466080767765368845717683122402421134091411492400552205327587988302457559582559193989637858477670950432275024335937015551876470310782361667340214895141221101425080375001775597162731792683250291094946397685443330155009770494527793841275386835467431962129651709009297132820983912803018471045327630616061441150476538881119495263191664567385431484837044665350350456471383618708016959151806556558628254486845100001527273961429554329860867521942805662834359111183091673175077235501975506900122514912171299240726050238618016667570763327159692594224718862698952994199020358935175766595031304545337677563227110571801435542134049709036266919110093210653048015992748250664407515659742492433424484375710355285783717788204564922878272188249405431322824525495299875250488553854271721556012483875845642135178695250065338790278059477334434266615613151245020166676894459417976494388771140812685275654499900399397084206090085164200098655298772185872276726328667423381960876291076720981730663472066024025789136466580459092128699788644981017131995650990346787525757825561877717009934462087494283138786769471880033815068917094781858522878426690428846292580257998270626842973275836247656501650367110331768620209507907175179414871594010210148915027755494589211804447656129151029238205860880329444213466871218729828263048881508732242426085689126730785100022040854655923086838088911514136645885074150098397387998263080389650140265761533652710432375533721784488701868968812376490978550322159404001824743710526846255630578626504911908970284046523814366133276156805703502628397633344893383336008160507952199025780373075567147284198456263194438722911304976885898510744174265048172128171362837399607729972303763201907432313615982177879161868539648011422109427368751487325819215626608011434576545411242331086337684720933070161305212473935076856737980256838820964282094261736438364409126910474792572487813085786213100055045524609795541043638624615390374549356767401168938919804994159794243852421614129347166226888956214762763323048693723137894589448516785867148108063423013373286250421679435343750215578537433550638454577692393029596304880205371470666322125466719883856455530946409563269026757124697180759936089019881858833684097752758417008455759420960513497292389201238007067286221623641478879878255484968537900591734851716999902628715212185589750702645167996314603702731619148015889291529911622677120713614937401404385829200146993365688025853668098322000623462620663107642191321461426165079443399707914875105651678553413911511767460587892223473405070772209082020810340710949611960486284430296888389998911935060467595545870827512000564700013617396867484062867053723824671169629223629358677096712872913481186429680583090025428853889342806242700903040618486154574159098505445895681956427498380407657647453587806844247161929860528864610854614091515245815691121074530293660511569268044882948869697261842119035426511184151548757288719562414595767243337309841267080204083399451948778978484487439374370536701945258541902659726721063566827886646969137439935708275262415176317791996006101043050111535558297239163782474560099311067250906145087546780045435049177162266464215360365109694849044812451541913480011126815883589163786308504947480974971158007795220245695285576061982721102497148242160353962688112475568340210742711473337683331374957271060368112362835133973824500071728028099908793287538718709469372279997043262051437376011759592697869614164791833253857342904071645700025996616998947098728794361984850329417389868915947918853217228489943800178465856204252121320475563685755412013369091630822555736989727351447003197275816055283144807257646993113067452353650333054090894222239933532204741057222477005035672319213117383855868971055668585514522130954467462549745818125240346279281466930610737789559378418684745038911934751540066497152962520676541130013713563643507789746540161327247496581245686784245589618140577520064465793578425400309216404215234040869813150024660235860045454799089867404557579694828408288447710900564930995162989344115258818331649417485696578347001258529101184219721624297881989020339349711750580843557896073218926659646534444685040723567935621831695335492041662073361354882748737361685190058430343281966403444724156571656253704504641404567383847881653801137150503281770416983522489512309736539620146740047816440708294621138491800570308423118298025556784581214805117790414402997024764456085587248747599458973380496516252619479117032793241661038881677174561141372248053373349545805538450660818796767722008508420397705420083945608371861124671836774359933349817328104427478806944093937250824565833400903741006905819117265791449241654245230410152705050651449988139486890310038480794687745085806106628321990401836023033713244470812412916230621366026651127760717438438585349442934601814505487601358059435682535313426221586241781991437921731344561712753748064784779236093871960327219838702888736380660328240437101207541235011353898185732757720928155095920999943794619039511262080171117986194559690607925575694779146255299311711817319074314812249977864903241140410952201543242794972180399988385009374882548707260566715742576684158942689768821540868850946855297787271605228415160329991526524171205145876245966188225127300335268338013216323971213824968536768594593709745058049916775053763045733217115609124077273716743791856290842107500384086458640173004523477090825196829635415432096373577038518969542311436366458943942443651505092682220022388917906084795607322138249108005948875632325965211895474813736754853034563602865582989943210463960078428410431902531160277818257190881308836231133308365627186088361315158059943927679211759914826325839673169781829139739966539540109753671887696485984150192820318407262169607511957802844817610880528481601612097112865936831898440504049771087962142830574591547828771069141312969984467309591268455383817076508347720986858648975749303435441814959473145852425188749725891283637033269529189201312505990906695232475589509251029727617659088719341357562810098258163918184290396872754005544776898189228449273000210190245525239283380376689395583215818930381933622880920915496724135738379393529243665770682557023178730433096378399448155313373371821766476178399998668537716509435171925942265242353646359486754889096306033145797667343799276763751593026420977833770263237087063255298918656892683413131576658637985778889432289926714545019201448364841766415614337278079440781028889653088554372508972104634173606580842972852195274209028919358028642910086735604294070572428372509438945435357474459266773036189791624847607787084363627623520066482261159525004485235110498408562065766985492062796154053289110838021808349862903024689037059183537335344751851169620714056080019303391851809763994778015581090464382703641372701506448586425639010856377903274172833099973792210009455134856515253149360327355565995846698732149734414238182579108682751283840097751958986379182948311069165924134176555047046451823497013900191402064226838727789670247806301371049904140316399595268468443551803706873517230077064186458771612449524430613540046888312020383853276710781534788522910546142866873441060132749928052453726624403764318399510953724557230186799315947321412285181015143827328288592237130722452857419047303121047552798023070505229219766533320163913207928455067151892852138044815430366626427453808295561295283468159548274567557342046476574351277595189381548357025806497317932403309810810024325156597097087895775639769338958623422574860458381432602425069884875035248274533889754908406533836686344009020753467430803920732890803478697914329672683817887857413618378778685520647952838748602156114576394969738946521842644105839064723056846808097310870815401942559686103216124737773089385150777118165501702948279438816857048886736880051498905930232913198818728678633879490060874999900487401505694123740824888062751994200167064172089701691595940123085779283606516458706484112101724627016154025080696067952225670094297527912290058561667646424749013033678810861877135599790714203795072472484055388493259310935200920352443316368102091450851351178029767895466906496347147504527116290941152176102012840684077448465002617622478936816138461385204751842435740556089206306623167566967699881899375707433558970700656614536380216804767878674721396535582497490511839622332607568321898300328310536942297905674517265832186604015501996662764981489443455761740738996428464978549896595801763167449588257782146713096133619278065628402856926661964518768273285618569306803875572932811974439532637612636526654497371464843746374443808251042155544425857807450814207179216093411158882686608347251965530897389073051082224821792054023314040486755046882272123625718690590928868446523936112840777935119327573113118549189126049543996374145004671093449181868782452256495577771166999214693307883856177720578733418423002054901790880318203242687478893672081721611511643552085060551440050773066276292462214979726647932995943905348216232403164930729104151321978808143401078907597414751233040164477368526761469570250801742557808847293151832805928300060252127744558180878917851484535015099836132747681571946503794069468918503569269467857247882053388931514088017767815320961787338195083125071890774567426429377186203749085048084667974551294263709995884457535244658869418173605469342029026354243176906070236437568270954811599446475317532025613231066208311866149664569870657685254615972077154276698914537742237797544994743698361102470189349786606029292688073205740055091858740935711078948649928387025033549122843134175601307464665840129022833686588993535969773824375856957416661799484678110174842810072414590148881853346767612052028308696866847634777364683838045567906602379426457862649730981503053496056880738492304081504201571441824185100494770592733648785519863274788476425443243126753927158900389541377234971513232681670255127843244500675698692694687981530780430461298214861229841598022116134010469755548575373106174883831187650425510535294031845840663966082473563622324237255454904250884662220856825688824825930373103960609378392599627866753082347615419836329255244112060043510376374592837286864863429827773772754860374142234302915316145527868416987214926034666144546043299457681259335632142731192741744671806883234312980397059626973878747831231789067896960016506714932518136151061578474799117966529805325557750647241830380235264848613838499233629651749258821113535664781536217738443931703099653056207248919531630840161962834874407021937241609791527058814912369265377604584181750883977836980214258125599199227922790287414694769302868876934758307743870275020252366935469892050826935793205190391719179867026661104038788098863224401629117083774471482904811356470763576509369401672163365388171612862102754312843897234948321725857395611524834662823898031366894452031921242324192493679541690137157776559312716798770673912912811367163310172503650398662503063476557972381376132919317836975873975004446047028255307175834150839055037863430590826127958722904264289948342961819139620321890379782309853905286591198468347760008181352707151736059211127353854714567427114918305193643299723864835579913184904827910564921529747819320234928121515088605048262263592766263982718093598144280261420951749046412058629363974796267418987879533351829447486559646578193741301171934586388862082339795739098586833309741562505606209699820100144598117791067548962879034044452555477367352659160353180645813466074705535441209199551646510689861638484219402365175218746971034387538399713619108985059709574567866276496259450715250865644587767192874799945350734112009693675615964438002406326809913989723041540334818144727909603648439759334789075104983619604220253392967530962516961083811289707212237143031675900634654311026873121497484749240626589656424565310928285539087682834158580593490431693144036531685918075543602625905003263081533954263526851248355622891417151705802355208161598261658812697857922205759606834127918603983145248097312069393541709847488021257808492755268313970595852070613418471212534058453878271593273871873714479765735669449033965329262295048863849628352374948075834077111159354314197881083171949686692197743358314575597262264561752179682383319027284912500156918660944312921498178544700128675358402114877404987123708522004071444551666080488499374789041203224182346863392021330722732773704587485167092012447398251171961118273221011882596217492028204129748866883165104724972046714768153891967270895573499124663250673381616434218141009738609362740016811981085817523295831624079534330188929828015794288900441473237515234065007797096794620474297404997607377861599683488636712130434950901833825537043588206821204336640988492534198504010418572932392905461145919230333286499978434089018972460391804920437287876997574667201356219473567579485952669333982331055621185477794656495926142137551237158820089872698005160231606125656832056211272509716241328050935322410908641467193111352991613021867095261813281055811797715237608855716029400220045844589793643679453055906912478150979694940549271372006528050247748164548233785679412787875954166959373960327527803628336759717172235755810672681565977550472127877291002931747620591948299621179562252954144126356226069359497291336640621326708082022949320684511932902098384078356319722959701932867193818059006915700598638497710285828292841118372503473495999700394749371047588012726513548658076153967837882145191116970739957609056492774958357047817366376249791526917880361294441506571912230442018225739648407160041267580514550604185270513283647322233130012245210215261781525434683249358533994494426678893389329839405147431654422686703202867127464575108237066546214860029826755036969620921559502579983742656862591658120739936673991659745154090911845523492317587705758709350830631887022321218900000328199087018668606842456246170131431575730412830977466979650149551370723249956416220007846391705083827443456818089479735255786005622771272470073885319649725394761235709724973268577552308503354047206156478666641618829846745307286295582830583912707134880100781785882103799690339282555718024061926320560227551345829803223486183535795235857354018147744122910193239934132921141032682463287521726058347941149916761611687862894283977341386301807353222344750200551314075582358244342554220166962900879029677693846012667174661861510752716364739557320021356064075976876219587809698730410184961805546557773359861997674115207702542321917839355642735778099417567121096227894334607054111160903003374259173281271740361172754640825997683623961160068107415405181770317008221100143009562181165383255098114289461697661736057327473399842261875442702066647520401161048801273742006705734045038678422399645635223408834174331217704988708740168320662269446202761543357748644746500170676800813439830469381790868881993934769287999438270871609968066122055470662427753283637933386816641754146609492257668406922165805134886984842478981863288283263758026435269003538448242579941147272726082632017524973614035075837818024066555648564574754567425329116695054818842336432083183492959959433447416081250911192607554260059134001995264319667633632207492154020689519820527813605333295100849511770866744767916978986369463757135514800187624595752029139528794244035296615026563559131153005864725140083283735367552866504661207496365502362365613194139916975105634522919609239440178453605161134775359733441810090557953605404769302087383505933159918245901394524091303970944268990370523297352372055059350423349823707584106280552442607253582106220162986734000862427245489799895426467257608591098326137220610053759596529904555487369155720868170738217512137626191972122902265877950726890152099360414810908750068075843222242315514830534094869458879040106168504527871769431468017256514595174638801909786835576010282865624862379949116704870035531748801526832802439911615178277264337161910042973388937120227853898422798213912966200809532268088407677591277894116185101028565604857526592741728622967403495156348651328645027241692942313279346574761250318705798972117321396114218152117695759096231803719206755067232495470554422225781289183543768249164431965994181248954970122304587222900163899557667869200402934434917266099911413566624586415942921555422253660100408093122871945175910846218274894264260033356320265216208178466086162268290753465285484588799708895418221636336695429018112100450940826646142541466704926629282759886584066516771210714195937012527906973670596132671313591683390113552287485401628008465209548242204605229034284632326873898071375594226320356524259497511491841399634599940542280796268502786543445081385290681735564176846086785702422369256385700351541156896933189311288088501251404725193811482963633226011913115785198452673600536364875924004870983755265074989457412089983430479836260914602186820380042292203448249119160712065827884400899359580137037589372785807587300193913004937946312799019991243524453123944312460676451771754697831499471114803271389168332110455817667047444747475831688426312013979955071397062046785983893658775258600354553455027317794347903127781911093792355635011029283698416587541392727985561718775332827246485303513890219139891652595634112316748626336982260052004537382063769276386986853440993858391337058732404560619187349289105516265615268369790938823109527167606446051329987402429705998728431939806701615415070881915605388495696969858251753874927346604482806127463550495593131033142671218195890045315847758622841433132633147053679654800519556729165463947072642278633688188727272319846978562915965420265281624340992625268085054668133273779922635300925674936151583228154908967118070293525248272223028348436842586591179543591173325748003323656676235265088371208975121118585302518479836917426678076474612650170890080961962776484068928913090915954379451831726378272886848188615961374945893698081683271616896345945132003886134833411719301664389129498434392896667489773702953864963161875274029750322723405149640403725457177625979744648800849049300419099190750474252544071019049088965521512035933661139991055981721060911180707277687294443385718020355316499996588427768396694128908491915334859455762530175341745437572903377363110702569133522720678642916436658991076509690919164060174403067207399997370166319950314938369352269445348530604644189840491536747798151588085427361848019880529843638912589593717010913515905229030114092729778344590952870044133937734133258186295008844216607111798522799101573531674390310200726569798786811851156127665633219524449524382515943622539799565847114017909312007941156168093716164236451742197482100873033973876515501265577188432526714009989696159970815885393353753260927519750711326034559809877382941559346389431252479119487198379418157912018557170195028059993227983342252117769460551705496896973754079328173401269765865123654511668184484115953183169323371352097709643168178167744390224819175850642271244985201991582906121029185479681463161028941341505030726856136402919089778482228513897899981907900747879109979646124243744166698735640198374076600351001339274940867267992833992306184553444428421278868470338037550563732966702230428220764741009768350312852357552207401852106254082990291034142703873162082039640358554743559419490417452030875650294233094380537926530923153984796722566943706480884280430381621865370911281635021696932791161286588621803603978901508104865044255278724034114831602506468245538730651078420438541065458790622601508056005158033754694793704665188867097038634270008965913504901562260264027499263349506469493811797493804624046527740521281918986622702688172058108285753891469761807401346394711839279032750648971169114680990110037301571430617232753046071599955884310245948859421964849954597905624985665133344739206992323017047102554471316592335711952485774567480317643499878043890847364691094250649392732530151152836716007048947230958410136354802651784857410120453745119169402900860649245447944066038868449327646388105398106782963819438104208187908336008768254076360123720437042009583884978131799785032713971257982822201866738608109488670776687950521460890915249559814215845957272798577466600907522680425239980992724323329534917424827256057108064623673285627863203210854176600938827916369826161155006110511702898602852217376227496596852038628829193827058558053096761898913754079059687001523913528622034836263460441957848570290403929942845195291570656126204513148096332527986373979967485064011708609859806826126727749649824241851962926062539008398260017140302967073053630272694187494741343832945006852330075202222122798338270189383741873844897780107240515388417229145079786367733882230347054726347166828593193200057498669927851570211863072289020505009143959692991248984563324345867854549811848971924420194299409303504195633121861928228690386277373729426624467073768883553732293913431378066784241911845081985842903748887139781630609706593058129280979634755155728756648818068223882846427225523174724225496878790207809962640015013955235005003662790958875787186605051925310380905554929721707515461217973189203635270634296173209536476480170981918817058324729556433756592756209068585581644856038819097710598142942021426064189667732779892873198787265571683958055117749574423897217750703161854028328417303084178237999536664201679464732220888733947355532274060026311634584339648569852260438338748361499415304975935381404930727474206270927968248194223295413607780734408533794665177972862238136412855019350218321063426425244407898078182161529019916528969867753177620708959151623276153599444988009604862212387648672401967924133804166600842945971171800125735428038169393831880237313135549225352273972461417209156029427349518396000392877966259719038282759799535074039439715156490650500127540934519407519253725930515613794131632407347080207641731423160817838876367363614627006245973125820778435453594265588527075378528562760332102909692669782526935061661313681293964551726106686456391385706075246126025504220118725620952134655975557260462040478369119135361524088428307946220003288095295635984571755680364710729654761510996372355972306782424142892702690616120062828396008066142737564824899245257973987960476173530847530149712701712607758881716276389759323473401071951112271048730830782659936852413644827105634228040412662711061346526214007376130651788105595450862136188636120498840624596575540824974336219228318674405469025163106406592701047262163881138462895152433726665274083048066681866632649440377163348454117844543649395927506153214721104458154661876859070645971061326440525203910623670317308304968688086946819037372616611775844333774823681591323970020091689778958902804587590232242969760528023505864278623051050514136302439175627315411713833147846108774059888960829630070209144604291024651949509024528058980036169993087673822008443721200823166947718395147529756761438879099174459631723109582856495808397298477069586979545645384343277564664354622129976409972981605335235476940222845403612344229753280998472358652294126315644724603217091312858051750884728220376884726426152095930008042661941247387383976249208559540291624797247417856096869269590679064628555505026610093188696358654127115017974896880760525010809828303061048140281731500798996945711699748027454486338976614499658799506408620904843123761186300918908658853544342089960842360595080436900334308833614795572177932363490269087118305362455513550350138013184070828902196449272091647663876651585260836198918448162037089066488010574790258708793931645089474772309800121768453798512161523069168932009845028100173152557318862556210978591103298597596322884489830972970281876188801113906898171516024033239131308277946650510282543061229611345099833720824906043223284448595234559518586922740142334302189382068195649751806611458175767123948275195168949836297590160373356615163909925445715973775064346015410148288937548047259570530927805658210116211720528283547325471480631593097823958123921912941432145587463927967888788491097192599946098222753957849587595492457415407028202325570636800067216381533450070650885596772696505908773235670096818680188387308317050212666065705297720762784581579226361000941791950098109647347748562693941321951594334149527799646627100832548703919480228681253308732003553253258677397738231183613594467669237632322236652002010611368625842396790211601445667726869998267806187001911680921958929898512941696435333772347196222308488457749860361622857599062180194409612814844482652381487598234959731680612337419205294280838745134169103974334556190219269259234759677849377279504140016797988427249507672121435559978985381937280774376121081618401831249540977257478610862702150799463353305796305779807952356196616844681590199481962569797924315608198081663134359523584949241611167985840831174492764467122133958818529093422340428827269289138117034800992608264385387478496083771720910476479104704840875354378270500811696977578557528904883678218393880311963850636991798993589104078699020173497928748524227427794081717821955535528050197350584167307585944721724982338162306712567222414431544666608971194834197901346573579884470871275717489081185298293872719628039414579186179106435922235553120974328462452430728951422650643870115922954618973240187752119465606418528014208136500567826359666202687294890904090647337026818677333902735776871287838201130654359174902304483973654629846208445098497117203704007154955629652479288972815655153358164608147905819708424720229017604621351475184703651973967246002462746456338608735649924772197471835957494149653560659387683212289688685903463747091492355940509335791737601025054165323041843030474204581073504484097774022414442886300842638223693899348033239389852801381655658590437570264373744776994106876550024232131755825357105583470725381017860426341428104622754690932242376030933743108364805301854229593299558243135656135191924607693747300601395738702393598714738418868190152115302413055803212735566604525431738363362937483824497900258263981959853235102810794019196603938679461514753944009921245394642733021288772359706113327480477046886012560171219420349353112886141000581257979415580852864444815633677077910908350187413099564815863215951911128362807464688493189772976687447678909445026893621014320067685946530280751846481596775150368257292313473035770713231185549673628277704488229803283732300391405933581324136910152545895244903633693293719195122843424320752359532681621594420718989570823334868423461557675643783156420768526266227790565323535489507859803861935972918942359493397846917088640125385269409517364702193908298280740069635549710872162334963809512236368060772973402225376325448183011501988404539302503261712773219123476816252540702994757150993765212365213957246378607668587822265776130765643303319061394637634548055844299909653468871060996491600394506453387545291848595035728429470195411420922058121408329765223941601650975987123965199378393592547533756850845667528757133727945287526590351692345649999128045782524239156634712497258009760648905934984505653540449965441299205115140288316586236330362432255239099561566774692867914199938967816900312874986771757770118460911314603819677397735889483143514610016923129701824939061780944771989483689334199339310184948737941874566690552584112607640098915588515144922234591795900980286188783031573917835015813170702942515377066441397090008778958743912126716550627155969551404807340561819600829797211841340447908508423453842904521336651613754065050278424830662140715618132255170191838618197133153715759339405746158953898301566095410960626375843276646813492482673795742858046435801477370673155691556054564167030129670999424155657785358928812048646678082334032154495130372401309244403671982404483631276676929742584990540925705721188139986749607597484148277782206209870129089985696296832992986362221028077463278613082824768355653323419336951553658227701053977565048196314107713225527126357392306647549379345527855299876830814843866433636939536138055968808096395562287175833071138697045185438596702912359543368174166837797684056274716468614376219036312517018602749561098460224691768164026739204899129163681948300826637548201821638445306356305059090403020824123412895939632246876246549790370384012765509645292841205055861757321787561197830391518617112528168323555554596758186711244936473615935080314104106060264852970258004299334494448367537925294771586726328278121997334666647632128611386722460474110009058741632434037953614313264390819848758887760377614369182376342022534849067458503968570827933391557509936590990515801056917310213796744854866332844678032968172248632001192676975696768804772713130135802436775305629865659450107745151276435742245469324981294343333964511307293986844563560062221776912939772463144827954198479394534626450711109820181677089862545919019299318439688580352778554902650590893150411494209124290788664035923855639801568975655089684145402484485357194117428567376568993274077511505461543874063921424120930341475635494192016322635412040264275352566264076472390430905684755757946202832687379000403597760195471343461107454737356561764428426843772922955592231043122608373796689081057982207432505214960898358804418018783688285616396223332428333275763618851777640859137494334676046421562748266872568633787554483021803696716589968130001910227690045582961209991137554586491077710583149081079581244866096686620561396614586608953651127756788399175956416038460170929091244613408825651622594676787265228184879809158048094712668246110658762466662071835957307708897632733047409768237792680083602249798267777741433875925932819700773983306131812038977986658494942396675055453024121970098087653137247608244581715197758688227950380550009120818228231497438143618095588559018688149032101811411379282071496686633068892486203997749920908816614454053090570803708701500044600966010468198442851620248637741150298456579225707333842239596872927601015134222663594418501936453485044803070266083603523859844526836272084641807611077061043321347455333280467644898025692601569137296681018135500255618517770499056149952944532686296428752384237245060028600905760727938724444291302380163403800991501257933663878722593431488414895132655060250172171005158329063980675473940737220848260144834453292301395311727839594981908146294898070824879346389107711056615377391931996068149773338727158747971816276056863598021883728016371837259393004009639819823103922891420069500602753747748744649036833970828638113658729124933461356364487898935926722797244491187887255344195850626088632426655654856687805889690318955532840263875846041941217008441773682723396562676365047675622926271663568489321349544430202350016045991780785066160205363984577503927180608842674066814621572235617946488004014060660953439448265927209562489630318683812372391004827862109093314720977532189907118749519417361192620325323219184454262624814977286997814379733933283079463300154116020144127535728438612274803911616436891833278036354148430013632148628357140019927057357619791569725570416763389846607371328446150050896300422215581847000516411765348249479074522217452146073445918081045279405077017365338993809660301133296996306061639897497942579104181861271188326548044567925993003324872414983255187502069365520882070115292174090993742140577870937549879463832891181025892798839245264900859598268171231395970769514318881845197438579930516070148910018955552281347606773842602216129132333840504554529378856610390405572131046475589087889303785107371781526645450577960949208162302636994255801259545972991606123537726551985434584067890192196349324676770732685096215167535626560676976482017552829755396972637162048606215667441861871032516595370811871802257732841267877411297042273957914726648678024648766909859617481177933984097110431569656965073341042461851038174499554297690918980920604968882452550372267156935131994900330267518282152273350773005718310323604874875362789189657139869029571041219536362799059046442831758495526571330482602602419891273458239289282165786813836774593737349256667612019503559487089966439688149679955694268369855560566246467168702552448510051884697197068158772784200925892398571798608723977385281823016202010960159926662245979204766348914840535877605872055940839479033159349915757259909327764639436761115448668318350212674745474961588880164094279696599118537746924086341326493883760398820493880273382809249348443513182283175590035767935318746728757879759728790086639212355861605625307089631165470522582963947050266882026212116329269305464221083577231333004431877915449208742895055839691236039893771937372765575033337788061712118213832943259598743413582863635444395216518724543264924787041396089470198327561029431223713864562543631266952162855356916001588778955178003896192715982394560967517506353789744641998439803248260530616445423303524315604573289107631619738679188180534795786807282166688908936783514610355602616928211330025583912688615353546804189633007697274993486646348211780512975142000572194356461621057809307566258755072462666490116138687129226698983177261051316355088872476142588351579956793590929826554461321042334491603421796693246198072986570788722813165018910605390144235546832873604061324530111299941159448666923570752345482016947199426546732075725707871970084554071960660216890933968277456131006775587750725445028518188556958701340550265128358741102076416307202637042478330601672682597396443880714357568316709007282821429394020905879171496281644422191319077606904732866305739286956583660186037203526758139085190193151628683205656919224780446859119813087273640493501965020965422577498288911624019287412425464506521117418866836600874200353481585944544713827064858353646126721781617753004968519403690484870584532006027502390843588531100870940682422598895808568902570048974473888083944173547643442959324686614268085016471103032757354664295818383806010625740623256124317596171553794352669453716175275272014355539221432749588192891248737361903963592788345557355234559696814159245667103194732891754904053153170446808437181978946484471834315406847675141976170753752477239976680070497361862988465899005076222965249783039215849735056328312601805012763607101578856284413299030839380411040514431451005815866329687795423467498259514071153549578387225198006716650009683882687029421556904826989626406534138337280773237526398587198907812526598135995669502285722125236085231089619320318082426945373548759077319008830433888550737772027735323951827225533670225573827171660867826558150936014459384846523234537314771009870790845946895879603170608261259619434827180919599745752945255927385304936888889003713065308074302921784530696520030034738514003642970698747806264307715244007182356156596120028271281460180537535213474139658264179894750154548836708070213991533847820426316301461869697243854116554403622805107208888913965147396259317320380403109412868334359375491702076108308150364846172618161544722762157573591142210331797399773170318350109646439971865071447418567650537740782382163851664730585434598402070267040586242031005073995767069013630308292004885486815326203766474332365225533585265210180641562417374773192575828228317561378662266211086690584820034393512314613731600484456658877193492515897612010694963774948348704636240590436152989567300045595222017798460289544614700559257005291357440835012015698510003302996093151402227728676184799701368898575945457457301027767752454034595411304100767866010246763870334954554361023719960429298542544971982850791938616755984364314341144137595270495846142911950004715624395708251440115708255877955804829423053134012034841861827132709462700004462378869171801359524152854044850929568837001670390186953369625059111478804564707462597076182015765618950890930381640939423296924363521267166979272846716933725798423870311945556222853604783597287142009857632431225967481133237312462721958232427796959482900906538086106086675108756011584168758416022304285747101026760043242735798593224403671844342799515963739851173598265671809842167925735820340316915978015294585398400074515115949460433993478128878146192371397680779558150766487650736167189349151475714660360071107788296344696115791266247215022735861961981405800731640477242085152210931185351984146890160004225382533667510485770749958275791365951125183635964444786468200444937941740871775582521963190809365253518793182162510925260771709714606745085358734876096692419698534684169873273903184420608479972463198107389070366159892321638795122822575201031012158131012621479941253762128594793757562834864963868338480010835905858438170087549687374217861022907388482556960420649219152544377445582134468859861569866147072030322488345356453280272527849217495602232507387535826578044103047282085179568677198720010079152661206413637835966727172350538467854969031046419237141611848186421174433511090710254845583360687026874118082677200398724142962158327851858584807782582084315625485511815350942856325020229535136702442702891593398489047082615075386305073101688520897304470546635669013526851619513601576687402149555406537889134991222339741881721263472597838830894570940855435831904540093069207208413841356041972910809522988897382893342569003179808395792046954786954751133849829006375731541716935060949658842509469540591346239601520919516290532908643311125864153140720937182945215744804700033685106451747877528860003047873451127591521106296689658650614980515342049407829913155830462661512624046974196910134252242181625374661429383144017780713050642740630994918493352289036534008622620996535055584208594612072034973229804487723491051480251813131811577675781128499053512289375536953444672068393514921829895357568127995435077028887863679944784161658071285254270183409856391008199561139143166327811691454945052412353656678285261403271897060581065793145702049462417932487834951410304560090845387722325678598615995901040049783855613430058988816582060338194031741098361514697859757626167862985529315908146225459312124306970212231023783871980126863727458080022427736197011706659297139818919427578184475802662106564814570465318111886469921024735694396766111958659698142209706868764974503221878548905840557657639460042022056996381013529625665012435655517365706215606150132526362081451766458841937269671766324525224828683377996454463635817368987366268695433599792318536520274474967144491461093044062806357670792235928450215964636460411641031046815494192601438147869438355558018302803383525604041914117229630942849819065982907365919086484740058976165764998140549259900485629311336970723682886292001044505751828032747549866630402594638396484784388504712398715831914887310364316303762388099026354534322325825981121711921376339191765112389982353610424006536500218436041765713521800442254617546972450868184069285486343518141949818618503341327517945580559355587300394910661370845765726439146721487389544868283303570806693876847547423143922117928566562762668220860031046101073566519626662497945821545316418729185062298503562283853107833841315303617081723608347602750420086295932492708191982306104924478193963927129720696776411844359772566146342785927625069824794652592892288585785792658371858537826740449594993838104136409082569294237380572533543478736785130905917167609140121041789280179127586337310180384299942347943741972620810052520314173073164906928311835936764796317242051759226181463993450514174710371092680264594511957516484144981083232909751095128431423465081096741052646961468402439662299469990501853855751130730407626133624661938909291799367256021414190965775703288157481579743029445142556259851247984369626116843989672664356940145376743914812952982482525794676904317013579266885506101233362888559078879148692712640673557755212997895664666284445208796116536765221421471063059270058485579886379203086355630679618840653419519096366505982203356725514048043767171669015541117729279341896092415183043325773194922675333685164423099201869530542048350492849613316090468502392918201375190789823077902016541406997735564336933589889689978773755777546889498597428046142057462567929231285971839060059805141226469116818282242696789504559522193070013641531692503211989392972009925966960492599023168493912503175281708014137276253953154410432500710557465067273212018566595773202035815426881353292666076110373976647650136803866057765928849191079877453456527874524094414045226443979622400277726838277696972550754142286228914601173596325829109754343211233277757805589273106715634163546602614010769023482205722035716868520845432514719027969117668624402108928864375540615357958531369617293567189774820562979439317520819390642663531020380396759188376343028557323302121618675667363534458649267102419924924263276879866110223065418043010050166634311269376439552317586351269655422558556594552563003379340350942912701697296539678978124057975780095846988101481664954432638513355875947832064161484422209403874245070996999184805785155039005584938847425356472854629774382830828304574789992681082379698770861041488920741131960370398831988963980732130401007911179209141281235638986694803913715201249635962015426861672986144221372418361008211915888928953511177799421848750726782005059854745397568655373658157750651855682255576681867008016000411755662559465742348103650158754276112163245502463049926944886086529269991343988244947889635087060003535620994593786966199581787627626075267271184426350240447602999281291814062301171757644391664035544471760781303976462177066608353963500605463559622256178841139081108960134706326036058682559342049891102156174205179638810244574568877689846433568505064495595764708539727880853446215298991444574706391976497891328085953353976296165207038386583321174610736473891336237286351835758028153936008572046358180101387533896653021205879791028989863346201403101583386831420481047094876764558268284044623877063436181540752838073982729950099936338552402196974778889508136658904248094516052238295286941932853012331442901412179510086870371653698743526499647545228454639655027780232395467800393746373077348603771737428274553109066216667136543698261991430306990249652289112485400859433173817644635321595071803603338438022600737292664515401065351115658147840468290025170114611686242602860559224829948289493100657121336572377219741573463866946936182630852981701771509247525057622249005911037413634500091336356602334707165144865840620813395916874920184369337680778185695994588593014619611233879828831088757772092751992015035851237101540505872702504332692491511962694159039682567968761294628343775837648558206968992570366176597680864023855824066413426170676516097037588800709232719121190050385019699873798722613533116160746225253196914802635970205337309993278377812244440144770045502829154708693236636430812506426072249278289993300090440253022946534045031072588140343167211816986038056744645543810323898755546953032559153417975996473117860918272166355951886188563264761670180630150704116222643974273970305476169394361361654480677519888054306287044955579292999872530933366212636580092647472687461358071506448419855845749073295074853566252905722384296256088604952008858075694343576937828460806222175475568708441468047749220717449040451927496037838564656286785065355034804604329697932896741442780535326505189119596232822375267323307694329526187501131598929271044361378287832760378699437929173348403102604168246168552072566218539609405463493812908788783183370007780043144063557544749038469293414129889016584346366656143962188363150626796169536074709875604428731611493793069730309954515228603503888761238156784505772367914147572615047243159929101593645162091497066635537906270002456237552518482029092532966177165874455334820408929129201992676633425292529253352411392447626233698602288359220225761164947936105822734002537843671181094518010142796450094046776470252851324778578181813201168789303686502829745384452227494481137529664945579002760293042953082244765275384137192241410069167537056660843720323949158581715499073927678794678170942141314164692283147713092061002624163234348820477579734262687139650881674468055706275382555987306664053741435383217926802620581350481111587487060150057594433421127529037779848186161302854383253097087610666345339884484213163904423057317959251620307957700785355887876256440818896111198166021532123355971339615141478453051255295885928973624180281393944438972474753928214730288487411666159465724389481511129084900626003270139697765393761517299749282161067827852106630474721894725620300364732119032456036081269560648578159565392817102526532691023722238116107952354009978530506315390434203398951385540866400798808945837516670163212386315839804391976219421942243799988433508562356065681621975183147060567617040950344503458169834362210169777637549129421355926007158697001060924874241711364117795481797952502339109209990366364923436163230799659077801235725501475321282774220840499655884252190821418045764851705469583314012357535804061290877699580738867003483732947132518283599073805375565199809463990826216869833605421357475679031118587381221762958686164354292477303082024314484072365843823477570810483506634407741439444034904144993658412642423590061933895370258130439908746331065847702100650282503991568488374599254454057346921875719151889184547043301208883242316507515959965909833060424849339386775440907936463787091580904502381961909651412728360691825645043638340174637878596493530744344981546194899215578400650588918051908852050057887049737450868312806741681892026379275084387250705052868803444303378611390990501071378288275354090374067219381131240644841783519045948507049389831529811273761184394235696293624680949781412225895550341704253368865160291931670467241769955061231253593595165979031008925415448438615137932613164278867410869105818414178344471802685927725765695041326902163319690410552854721842109751242181630250277919520472143889983307059857563253243571913275591638229071182933498936076729566190160805892610982752479591079262951147636895128783888562392649396837255838066747735131219671422180391006850298498630410745038567107677756151435226997389300466437288549606350123838873965111623329447331531103577511690047218527429154554669599789832919423846396284740654042251465761123911081636134946670601604808878951310971615610669776333607063685947675344595298610330824979777247384787733613088731418574903036092368736460141155885104683101615395832476389443172134339756797743510751145129803724287809017394055545495454542988078527060945549694407770401387465098707159856997719593856538875334162203353092940991563115752269662695819574268130307997040554292688088384985154612585587726717407685886865127032104691803724898007739363088623374620798066667246753095847589114353065552925190819654274399977145072925013560080978201357989136323786582385922179892503470666232864883525553591131959010803184648147920557866376276465776705910485595035322575984153118455869359785433986082232989292966856978613039243808470524099387988065756997757612479899583812576594617646292717118516753916256714026102236846676442963693694536509010441877854309986678082795581601278767702067874793661391357601762469016017968493534895040209487435128155433926014008027587692419574658645283505310021508282532948644478733826530027021641099503697220345325760151493248325571860147110089290212646294206788262098389556740581472714700925143358822442190161468651932480986782438263008708075130463550394159634178342896170273116750228481059905445350727077310707163075277041474099111256570003417042402194094005348402665197081364172808653124835288164562463293517367254014810625639094872520263580641630251308073196078175534705786504625891415687853625448319931110306152682221174524458675327752356159540098663097262694100511920998578516385417238380056220656685636255207367835027331990920935490446842586529712318459402482962096178721657528782564892063440131894481082643807135713756424420153797607735246101531705648648557213617818208863166895686972302836637594952625523743097554708195695059545648536479223595419217163458354214970699398248806131879645128602151975068724241427464301418031971957853910614969682113080593385105185182615488190998182939713819997747125319886015009008281166674220190743038761445512865524949244869422115901427804508365055528181838691302216020683937297526760030172636524557401246207145807399057193911199775656300391185589896259039413473295492928897884609257652219663043849577915628101098861820664825836473162901445967121890772832537710367977569467399478693107226337033869811206082736680530957812180831508610658072620532427118464721782656472961010753361946396005650703037114088204746073221927678124409811208453365763192510619824671370966628958289622166276853871569753050024188776769073689498918908177324589814192389723437607305938759053494127952931031091050678228809263298799636750696603210079025505068481075340587875112281206424150044742916942418281856944083048382727340614219273763063468872385569369456334912320719442353988250987312136408449106350923397945974891340814453122294197691164165205059907116398539100301904267165942810730466184018880498073082670086661579738829653695454831892076391466115439370548326402262497143191775864883015444337513724752092969992894940471483852761330771179087493437314647239229044581011507942400459970320343911241848248702698172545239660668629854991710223492649869300188822608320137229955773780775296010615794228609337892698055834507422702978015940164277486647109134246658120883394479976886847400267236723337741990840977076706781903220942467263791227725003321552920707957561106304944931243439895003478996400733467239129615736737180725342087840693367543689225229649633905216163540108462448770685044868936854214921217848224584936789859921759387111556378107228304668105534738380989809899022265346615163896152350970164463313532167843000732243064970998913895775118929313871223810420243764675751540155593676218896414443474515212302165576498074195906281837028254762403944276899137169715437533506031201775495743231849297990415543039423819410813141060004665478291043675941323382934650745625000492774304899519471485046939403510511232869132419409424626397994970991409770214261765313157285292446681510318618186644276480935632408812241742625313550537501238420861461138961650102742817118308507797059323526830942433349961935940581258355626601884922908576800804266325135222626744858196526433519566177826880307313441489665223417184491927451806840846070407840312981698071955750616611582738530471262816307663709872992378697806323674422765438420596624874984407375864791878444601410092519353542257875445526450762194632368808449039655642983347329252979763620727653394215745036095447310013931592106810486648580982476059225577895468310476580699278803370136798058078056862404733527109055365500082012652761671721557344947076423877137744697798975578822633704306307086215746595279936768530851970510521695747825892815799065098342242353812376826511275277074110537047676373617264248538241934956917280630743648570079447627514063516815950765285073951288964869785663153898612907676314331754013606627548590678924641291357184727139849462373544524793680455365934675501894598441284797119118287072559566588982712804577606138921256358369045553792900969592024959717915200138872626503667740172944186555190998133226366192086028593959801660157071528721706385550308459142071227131506505758829287279584460173826454557773057906619608946477082925970695129088506456578746312454472044213712076472987828318778121718956944368966196808634040869765801577335705905867518911803459826383950125858250223432940916743939936262627849551288266881804146966847940085444673899261284787673291862179370683553962199906109067735059800537525952491796636082015012508600937539500292829618004456916617997380688455163632414261323341041317212611310929779098731261606270536304956270289235194326454478170759652739281484362816271814617330198122691960621224005820175974805717137929507221243941781351716017232583675241085224471491385609811435345404551548411487728829192920292423977149917167594141644437970663460825806714747636422131229986198120476172324787820083407691511387617082055335493600053118275224686407861191277874950475836724166117827345108817055042025928604759323550134840318125868860864740729146502870610432045937710503714188979161964456557318355387421435244004941227884803808180630615540891407339913454285468361240012801764763653270737396272785113892044957254740883548437215721413868633364287192424854261793429630079162366713520688284887643198976957174784225845535912541817297686292473908341330671463144288535920575607681113655057959074436550342507848223024035937549013358862431943289238689032712821358892395984616786117571815909731007585902505586359965571161568756819471918633885396900623398882664712721165568323051647153491049070186030529263231607239642721751499248854587242983685739009827407547239670579943210295262434349893427416008277387701124769997396924398165231537473314217053455119215079291081929713844556452477242275092522232030795568115992579892028687295531119112359260758991623168020640224494604454895742186382143877863255771358972368392557782928576782720445500788715932002292130331495011564378598655990203357328738540814555138483058975749014575642663878168065355328318655611439767070072765182158315018978774837613393471028012322124144784473976686847400164056634476810583131118922480395388330920619682418417032171094651095814458544565073464165184293579414258899208997420818427861424591705833955596180958854802889631606591752809439662696388414873029436315792777331907933455351114833961738264434601805050429274612372411022096790587435575769298845089137270747687434491157565224397343448254978651949447831062482253031746474950485653621533573564843083142901026845173036711746616547197479249860538110839777444774002852695207462635335593280037001939124497547656114525530865290991334529430853557589543394865717217621483471168605624466501504749167912860313001693682249231428879565549378480564255786522241676316721324242319178156840767236349326071099425953196677941283225325165533020283409227454904613351816037636216835661979793249645032969122671223846327231318867903154130537130724946366173400798713529463137527498131297285759740120833604578759158746493647790113858950239661117261555551390177973837385580307327135414315307652998152153720502334954984973390439471334144496493325181803114663399179845869298530982502954699282816910584820521884766735392597807896713782062343767336538815702926605290906965864855625823483211568187225165759883656149341908323909718578271304509250616470301269464073599796748634965421202942011385337755030667888513663102735526814319793510953210687277505004883145537514264898258610495406394416221394198861263205240973135677408298304093949308475967430687567322961142838605400219231161939615163996752506556487719002184677354106409194469013127821357335716680295786034729348165095361033879295316165094886722421362470960356212034208410129643665383020886172581601260304926601075458059302763009792255849649000062024826551550077581459790431459908366708387960195150266591671640995780494052693427798969417997904893393056556037732960014472243763821510828905054926600211094065265594169122518368403917799001444638444321485965670274956434319613211184502342781759183780888487904340594043564862097375917170852930307602715887373975023686282132496271608776383907624661036712872438070516978691491232019847024403238810066055719968783445848907539005458988134057643976117919036902771945824349408234025754875180381311026622173128279848234194098020315599826375829361402729943527240559951725116586275679258818608995769856090409811958995216907871242236469944597612467196177703587334755832564584078339074495848584092022619486982360271606792678611614099131948176684582575630764172746102587904375571105501724582788219722363891573431680850330094498919122753679858605499440308882566454387720247048583868018356589292423051491901398083159975291653673742094510441241889106726997173419684841710308027332671704034727971557550357393600694311475654504320753891631003750449239850460355830497731055270866652777084638513105364921821927069625099368381055350430789655895038076677743921070572983810938845475330482047303885286148217595374100191045481599312084827986498158219410819119445026827209868318496806230876256013173690937226520245989646131708302453528420064939137072379877585815102162882084898745059367208854876356057479951938888421204915632912630987223200068884474345901178785274646202384896837128204328941612634302191033453384817309568247581422912264367584002253276991561737091617486522592717734667745013522059816736175934092576692075460916927050858405481997148764748285259111168377331066921233397750349563022866779287344549937592159008132078308947331453874591126532297721315902627502812681328521844297364428022263710454235661164761914987682224603732836611898285428574514729795837631416153518975121168219813441603438761523612751558185051610393985234763935616740512594639812399098647706956100383535436694329499134974069544511434017434360317441124962289735113409281475844769078633269357670747323694899358121847231875561714929248725039832957767885233533582212153583223843319191431989386270695473158201264904908963990797668383829696277615195484343147066137609702300904822493514385070135667461871743821757536237017309824646405158607604119741042684088996185929356022745944301521926483172963779274793833848952368710843492192517320884700668593914186683942382296901984117950715406104385787758186879364085727318821599311089115498852690754806476489496455707211414919385258771192836537509098063664362232462729174607348774230213253440569477810181467591037604571312036944879204597733363222510363337832908413964915502459374630012656763242227128184802418647934113797563833870972737101732753455305944081919905986895112281955651662873731130371810469832725015447503169126404861530574135647315417696325892320759264097156940896365171426151275801275647164939590801138080004638617927712040625909880399925708878286595642466545931958516170117318932669619729446983810110765733035710288790575768355112599699889518743290126269335305756163333029624582201767995321680097228620404156320634664615497272815741028640869880593931097292183974163609338679813432978636547938675482277319055288543162007033695143823453506894507397201266030900324735433280465085376998104447453149350819131847753823247739363432360591427344210896092267382442397957333326662180247052101512776965506322486546887738084844277678655652265759563745645816208078390546483322930277897993883086222931217956253999734220303837900301832166363913786810028794630144682506632508573222823189868992538009251726070236266344795951090711341261860141780258848497839840819384033070560652682543622325474362252811474410362066098924766918956516087104029066781821125432743612546830696349123219972640691613583676648621998092579048465250503047091609418373133995237801771036704099453229861645511352452457371172382990070722803506831552987717793684660020106731268920304586614059782577026234607200586234431873183808661447761521679400056036621820081077006429052542812828873510170688275312417109248507841208869062672269325221900770523901903587280874934047410257680574042196298204269698626839228131654205680237214842584245904415914908814137756248484500171318985480470572484114525977924952482552727946875011981494151416823856822094391503076113662623523338353170086496478335470965791906395912576143322125467017765158615135325561084672747522409547916369898354980470189639237569136422823501164224889344304586531637298325245431470446733565009130589342359770019934409216161703528426110301121023121400112194638395331520639962970155879080040906176622125409892426957975091177798650522327854846879167753000962797988726269836336964151273489330296675513048728529222358422530033299413611399488437429878780730803785285355913334724215612896737004740039717060738826608212406188957304267436321771395409617465352101183647192299159054106510927190734887915053892690952847506527136987131151108843883691358251448498854660556045063721337094247124963235739227645218916902179285700641146353688699160818963089639219374760385078290154166380223953015723217274405605297966404591308975676898898996696885137367255409813515946665227514206113470489461710157913107183965913662215174295290404149551048752534170397696028009744473602833687574397323717637328097463050099476812993665287219887338124136854035544949667965452250722962859111494086402576224534477644308127779439776070770294816068931784192551660051263073239584767629228936906316683719962980070663002297031740139889154595365851751525562666025919173990776635976110892419046217896102211541429342777269540140992600044303072889711623830159466975157912838036285662626776001482385272995557574144654253655529093731687560015138695301319660185819647002736089103712113235738438723111170428945609681195798446021166412029675549030702750851527397310527338995688309230761046438016906672705583350067664277957914484634767155476909434743070829179167351352230135052541077088006028845773355403601822236981422650392636644666695007053421080048506740177385928733166181662516203258949427054100166007085387583625212727185850159035566845721602389193233498905399185441601148302052997595179724381701776397950565694325248428506096297058352921616737055037693917330713188637165503249167450988141606599806950312578931213441884542435029655811531861682432497223509237736144184834404194335185144144439251401465293466119201525933748872666844938407875739292986636807870424887835662311970105274959500618469033982314150771910600268497227239703103201183851202425190180790437566176299398594792650686698949680675551940037008976659659853367838616447183150293634836433219892628612688217700082221666459827846967383309524583571457970387998970988551172405445690822660263268213259878027568018162782445076923823018723701764253572187936177864951806009238718782857561304326588955380439147919458173206236748685769193622215363147185191961857305849990912174718346120526681166168387667035967680329937990482176745458961168161010810455114864950498015747695505670304929320335873908256196138964897529702398849139811099412812473665474921616535914156596713981083948217195023917515690681813094458254252484312523556587724706299067590397729992653779912058451723368089562341028351053586672997167541228069720992449286272586347907343206388137043574902950330968144440270588053890885218809271660420161807503124314138203507259814200796651109333324652682072896341524410523679211207876148005962371476672244011856144178075031826174282839013739052264068180717345777893260176180800395326764187914502291119498642304229574328257259955445106485518657580288126739084619595073452131192835697542376778642256005242411609620658172313950374923492751027220075083387737162730497308648638917652460943238508864181646235840234601811235903538445940533715874926301362749376954227768628091355080864168659592060579261556348366062247698228294787183303273197244165674510698607180213301170965284063014090596393493637924017258856053323201160484546929118057966084624114578298676089853953104430481877521104721734141068453068377629298461417691529949386218281603937340788037828446650135929772466807547463768732849173263738255401131847224007316051017067959504313643049117992403583695000208992719672758483560254810489474351285173917153281620193773590500348136032928028469418217141288753932877291986940883269595872993996743388561078494050693332004555037664049176495403532074262602814381193543623417447686309761049460128807238484883977179969063323603412908528455460674230764985683709050704031430890860383913822168675883679796407491512302454811900956651083073243830222003412363854987371611000995109559548938831305836588616493378824274175802239726939127426504591442694106672572492646992802053485846922279520300860698804475464092402445490894842431170832815230742434897286531889332000731565880967861672892297495772755274606033158176956360696846652823283190277517129333747036651680387464916164710794461024768488150826818313599731401185504064023088180265696598316001266773279366610134661299669611628842746712792088819831080840961147446424024183044231330990124926699840190720160347947658272824000524004615392037883024305450025133734779008417256458705530700576552640330867417347884004518951777193172814039341023871179547423950022789221881168366623933427526161375388538862006644153448996993467869877783336008976842199720110221929486357350500788492975717250154343197597068379983101386701781595560671743806717970857733637407253135647284510647097067723103963306226272168055923763328073299369849477293377657093988876106949163247532851581236774016402557349644712332170080558777501450903712469050963213310296710060789022912980635338005061246418461405100741533093730053175764022900191171573521902477238695342465854256436883589035070723125927722716067792442551929726476408947987074446564052281853950068973540575386250308493153305376150688620899064004681237192479460830658244764620620231891649749337143758023936345929691716467405374770174415437547962569876464310090342995168852374969306045559275214843958666072629856635248650808648376473786695313099911935264421245446413304042975417195980069494304660519064936220294696252219548750405736993088384092482800784983587371454577956618244983215099922765225994317665828177835177761922508382348138062422990152803275756008841986385194788053785221062811532235473657484116007538972019155779272421115198522187107726298464241533951359117779499034975514267237877700438026141446008577993642832852108389791087502625669458899862699859611868584005864092915317979835191271200612839244785626321503425794831845494084786633181651859878809804747414618295794784510227417416237810046237943669347906136794946843452071533614285055814332846488373594906348655962077484389462304723488655620080734443231169117017647364508116794836701368471410574149476731792518597942860636686406587250530921057889769271147710286033194939631889217755762840603414666749054522162773508518214242457394922422497985224452016726379621115298028748649343058368340614742504867109119553967871210905071332998241908062031356617881411596429107299954624793063649246157936586832374146437630590010762131552128952627805953510248687234163362199810641269955516482817984764726725754019904661954924021743653413562475347289078273836957750357103012385216661078239975730208276958124338294726881357782218053263067375672673997700964961363082900774422983743723579973538899294613966000600522280337966218863814931102679151212658227010532392311327954149394178512354438120797574291281505530792549853952555617896812464286709462513500972114082513549529291347966805511804619142397896028747379963497662874262343026906881430972008885009221166673398343153685930903506971163594895393414758028177586918001403212823013182727402324044466008366966018653998568931201677689329317320363133214513603195274088321621223074668189347635805846774003791518660208836409808831442011165447218583374161625650097587603946863169205422097523006824416397902159411967555398686764772985012432660982374362590682191585813300167875825325595855550096583209115850009521136311814013167355392110634538795520677288561645786078701990305934259803124686189827171585782638066309003684257334782593540926518108593122880386286552922913056437250297873198878538735720672779312740559390150524553391232132299890449903682466923399774876765133307695553578635015663622826050395021995476054484721667978554324393776856751810492800080936790108761856249932100449402839199955532232164756385344877101887829320657475197357637293581805725646352261627888273885164241311606431369313199024932120247038439688166575872822473974022291269958854549963188213777275368455868434178183946553993993063016286204642520370993826626725643920415872886748849407655490528801824192798255700659510055183225623313863331672397761862132135894075998809580878373248197938134354689641519893168076743306924269296583701144598993505929303015737268513630731034293259429991330880893605995793354357660299332062754152685471688923342298755871770875435739806689760452679642490315648318871202342990771233032889538827089325649531573718032985242754127259411551471093183663734516012713537248352537527792797268403122133398448987729535144084354174899861953091826741800566517927894529256165284204505215255932279361230673716645378772505514473305214813872249592482668583846780403522923172826727375796765833159088107049111081858283963703440341913211872806929678111172257477598270483859990878795757149737819617686473389026556893924468787658295605545345246114832501754667161355207145758402063716928421904078006294948234220197428745044477546548661966635267622177945375700305460769222465183746043269604842371144428324764193624318551536574773215742494992327434783277130237479333878212594366179648575421479057737359216044462261311272821202521647978048495936589355284809888651932087109671972838249782453786452433628830347283952740903766344690196121735214707621583978838941652158259896397588584053476713297774000418828212075051983510312574473754186494624761424219269340815087232676415031893165679856724532612912874214716547787888121300730664388228260553558655591061715006490359004805477699428833916612419585759868449066048740401632600946877124869229790740473483865404089849070167220176939245337440610848810136198874604155102036552812834139941925375057418438683108366347822797609721540418184666606528803905516904167997564133678218744801841663949763684626274224452067663797449683465940454335727232677970830983319557265711607441804941747194836615304670294764701164838190364258768737601494950606062314303288961898027932094459592828980454940113128762756457208981004105606951019428717663973527903246877714969107314867339489041259978295515223549807476282318328416417815986759122272234470865997815174274239403933956248572454504102053519192019217489233821620620233617404048405632233293138434725253540611860303749283430372065073130460326338243878351013557668997143034609050814687343515333491901773275942387422823811682317311172141351290214017682401906860810586496212312702998153233620288647559689806437525679123590203869641008650863238201035997377493522452171199627265658696530462057622474158035091578937398265013244408246686755470629577688931889391389077246449396940272057516145549149406866516662223240188674001559289071058283282577697739795342037725833025009175759733950196454655118751067950297250739659233678424377491896760848069435469791489940035720501019872398613568374791700509224672843869745865144497803443585331453751728370832829211179188217318537772156146209793482185739475611072082581148586283892436107356623991194240511060710667317336838150921763828905686304182267999617254855540390142702741007014373859569157859591535611764536814933078757004843656073057400459280752790408766618946037934452245732440631448410703039602786753884804997048899992866026521495300138922394349352783800548684393940771903121168080427418906587159316908182826546926735127218112748541815161530341132188832798260172167046480844160028302172120812451885084600568043454954116501671260013270942682445109982624945641939929601348970250926583935763923393350332588266555200621872660057004085912509642494515026926041060136576003588655292818245124094307488374430617848080928470481831042751168971625568367353420172935569636977503276356880164936246380107829621652763220842590224332168625663999248764678018132057206731191006200660157274803273004649219930214045252981906536025253293145143348447169267259609017671212714951878219114537943821447943447992049102973146582381833331394399971810085406083633660143065280494889227568568206052287829334725256661690441969971882166324697150794552689532864113169540681007607771505365719354191640777265971178050022865146107224428328073437267876539818731111679506283052150550140599155205551721780664967633136038289004715265700216783945773849617043983068600785163106977033247665806295111197011379701390107254032337945913488771139609226796942805469831818965458301358309128361231539411946654071658179601791949913128498434467004375875182219625034843200258636458638222016348127677585626698311322522251740157997901940653893193377449142224428871675412969413481708075825976592814290712517063317949058892054900164599583789004033035284933826713938639789582922582484524610754777983302058359221805492512794986604782387808619111626629461914918786990107925066810130835141127934342226929561426943370009517357372827264201439054621636074364621478366519152695407842437533327286037107004391816439908776973969822054917583114892542341099736055297327423530001868485680642836257869855917786530401875040630407767291556362721259390536801139213529673995310224320471330113157074615028846932712169835986621835562836547677713499120916145848929502511419983524969845381193098197423036669462114083824978841342983723692327912222694850037583576088655336341782610714735253021852369269601891320987218208730457539611687879012443658890118476411100803810079196187432595023705848742543090919404739682059364070025840628391273052509913799222834163635582476380138327488280034887587317347657664782852383878357719647438153247932372146643800798279405476075704077966863800700395137324436116627242402305095148909819890908696174600358099466118057694525884745774043959012875252782265626248993488634169987040300964396965445466188459138891783744440141094174004349858397743158757318421668046717850136072353767873223450926172620405585859814116634711865861747592146695878132732757510479285810080055582417480482060161522359184304255157780576233118452174058390207228843782911977301412564865625456980548241271066944916419532643381015981564232220597452940330581844410650910856134668568170430338062850568968325159873819730245029914399418018421430803780186829304373863003349906875534596100292504698410446604498155471740366178074865022432715688897838412325132450550654422287420624743043963078674892938099810336001461014288021556489234639030011607816392020917948902704357924668794642216207710827255961659298958526636435323427896300330071584082589442266613532685798535992247994589383326806553220856731322436134308879627419085234139404420692615703918343852532984326021348270852211459134937250376903260388865228104426932960632039018185550546639384616936378480127702213992656929023694732771539178377312566447399210710063858261133835107968894099669021736374067861588631796518540163446138911790223210749779044611475086457149730481440826609968792407869843127976425791556695799843534988320026849844764956918156730242899144187357262980058565003650534749233018352850688363982069579292425241979730242801801876952733785541448971048404871750893535679770389801338693483673003830033040442874937212433474819154000857444583622718864683756439283990998727884944044181889513726656058396045166007259930496790405533517388373785952158068424458195356410981592231530871887761735100058013389125386996455645871203495490364072011290994943744885711734473912643218106557563720042981093955023880585493524985793067566743252076032143375356447727128769620862085562094420683524003573015195519000758783747444885938253999710126325536719391021367935763626576827767935059591599141983458012036668938587369368101445685097723628645202081463261061823693801078832857429549292192102515651062227837854781909605262818713527187821428197559152435413596880896069527754089328327989487570301382432929613285691518145520894832370530107827082067084309584244352970238662001955620173626230634939569948959400054899232580877600908661536538448812865482119013483893192737433275767106618071768358387298374995883244032819315599664319574995754184550406980051728176879005693273447772495782268898117059367881474119339780654418995861918459283869966635642103359970908684177154132545919739067355824478643989176030131779098951307974962672632635980326533787728473285259426874851897804562274115626129862268659702595231291281648984620467293193407709324980065664505788875224299477178658728026055515904162354639881530092134923890803465911593711433807160212240194499260524371930918415476773319979734439398339347841305548793996515210840612174275039042152401957309755626344361396881616138855227966766019491328608934720207744076578599325278041006575666990916934882231598234829256672654586761825482007518544591206449131759893644244548125043039270515033127275690751055822640306318333614250570053321122493919466738179736117390064611232911190976663698700008970163410204056238038701083707570392831835822757824193877805589658337706582478119680797742161130150153684165688370907550841708639350977944220538820726475612841300001769265979181393049851030120812996774488640657578072123115753685244428246293969843939659309100338450153761095042596545094078230101488882262535935626055152705179812460878792078799965494394611183182099611222629818572505772080234044022031518205663720613404964154841828692507906017832180899584559402347992952965693035148529957757085721591236702715254813287620247389911775346751486033541841225084167928550966900391307594284018667317220737052118539352623467941499547104203469986699871113954918293927474341819204765540895213775595476215757133527901486294815894047289795857455467019761311372044844093396940969005630459764112542425502108527094338557774027685152939243559993089431438148512149449232222753038793080120420209167310648881827161255003046586804912074774676309772038592074273523721731838002189777031325293143706081428856920621540481890426915732074341484828788802543388872190523177199461835774613514535395581036338730145106269818857035121481163858831628980766762142707829619357938234114421167915793616622655415090315267813039966267098209925647580014295642399346514363485599231540404144309786064851808373377054163067347402673803836022224736995930391163106325627634416512461164634031868743774716020835260348547573139694937671989959981904366321499817641860520349336446136154682192416860703792579894525979103287677995047363452087420315382809436496260862652575870391596622204301001435567093928990228074802939082840638468678178496034510864981269772998595184675311285680178668069861952711029698072399659695302226728395156794211222695648013265969771495024865172475971553585523633817966607772983995363106720721572994613511941447962427344790210557458188306229154142949784117284467069447053261391747202231717989813973559978089862785157921430999459461379073824597679858971087423828956046965887073443867243145790155966892870568520101344742182327398898920996549756427383071261201830285852493231241141728494400168966277039644665290120855081314180967004879530403988378398921123782981341422247496642313064455849930136771942539679370351563464327700380406320471019307803820341091703508033858735929938261965017350183870474398887883284930066216470265835139969728189784516810031697613858605198569061924396985603410079646811986459011910327328593537231226763383810045762054092415163298984253995657375564899623167145455083812624876368231912467457628434007087573430566047636900256176970886799806269863071291468715780951538403964176190180525417948125517108848555719342942133380695973519654899738534895184395058675606737317907159508142290723607738160214061859296227935688392664030493107407053206247597163792586404150650529466897561760880430744625014114071555476937240311039500195745771417826031008984435471900496433165968295149721473984647724744110987141702288989218397064284165703877828506273404587500104162846043169742760998187520029451257360517343770867641608935764326504621337038819446777335999225204496036758945681422907832867392253180530295701825625340219736633912702923349046420677201677557885229406262230863022673154213432744792401459928956623150238781223449312486181427452011303821972084901922995074669252709682909801853586895239997942804524831544774573503268293601209228825968116994290686838474370234820757746616012043122651894066656481035650919816871040694374863843990018057153273052587919454447080846550138147364878863230890939557086898275784474515304459524868756268980620522787197662067709840997786324241884248373879341570266884579630169211260577278635137203757322499551423856693103961114679072352049594881291336653784351978919514809941715357494524868115197512712438260165537554654053173226412312464560059349746516470592573857073073229455516560295448384266082374457026720676825459718231638609640860238485673816706434273307107718332533098131953431206658527254820060893629670318350050868929675271815207860441692959976285379848831448610066897367816895951715914616669410082617237060903850125476321304722287225642285623021969696024445051843536178434789005372192511015378973487193895614238884884117223935410268113500749843938519377140626270883433825271764378778562895401716933684242978590133259808229252768016949201841628785009624153820759356573494222199437673152887686835115591070037351424070554037753165269272289474978685048481743419780569176480924123981931938322099561680694225592837004750315232459212125705016849631045297236995445833402867427768677243981500506685983372395114422343463217709313647276574774949022943743118061510065465316719069018814888476522857278699318377847243401344884401854454430725668611680188267292103868295444099110598346440678690493744077299833714038297440814756489846597892658852961637958412798052696936293606659536579387172281551446892097305505923121798281780835921844579364266294844522305537727806062188563047114145437775476515543449442870487624458896081727868883531848092206184716172447560940305510415994194725702309771947381747060628273336742535773069703411340961823054061902894636855230515710194815859027051857831757405594323188982336646027014052687722927468889382993786528266616946365921138044557029897160567841460977600577823431858740042894919498840286462252425993564097285729700705415698077490167787064792573589424805820889752984332658805118796442137531403602816726190500670617162613359667399517348860560598598572342811150865185687526323733535446882703261636672956951176740618248995924159718986374571070457155687498650525043889757980163317679067647407796958828113273526115013485083070721914880800352682004608189835913227340276841830844397120216824244875024161108342178887102130907265300890461709378454357878900987254211451397425342403220434992912548801493691220720593604359913216938393441920109239827411191901930879895425048138397054006659202816037205698908745187484599014383137574707007506964003405016146945429432980399396093363711169962999149008720060109663836909522120306759230986189129019341124733641040586526808212558661650253572875813632995795146621168774768398021175411400482955184288673187083386283618169749683030022347551288641798171748883880610382388323050406161641297805202840947220818716041827779140228349188072683609819701327389684003306276418211913186832302096136578717489968792008640933961839567852929574825436831530637146513163814904457357195780177885655976406095529275123777264996030076772229602307408646913284099740814175150701978972772000021776801802790240282194437762287197509651901638395889509169419063881322552684421777808452309238777206752737604390638552187893565874451037933837726283390519377327809508155469942139361684947329542164733884479065166265724712430399381638822662134293642310385204752035873316606211270079412603358518671308245525306584760106140871473459340871329466466772994304924440476495370556038414163382855907342728018542763172732905612472504409608133865638366266589567638701589080395384813180297726821848504578198336213171017961515438776107224448282898227798332350118768416175919105032506914683976926777230268740742875347956796030937275078880196520110290078836202222576676681182800302571189920237324131178544712819989357922593983822667329310316278753318910133728184744850044656176635159267888213266148551535967864598020053630649698750287912970164558249651305130296589592370645242725989575760368611258098684998191532596489715059946163261457976018844197342436479884878254262288685353484469403720089431555977267783627578718545799836494530119500993010467589271755452780591651060907528958172444317201953392700190393362356439027393321926896608502741127635955017731077212030818581442947564095323876129803227926086318082252335451367408259717114143439461824619171957530772127363864687899787935117740949639724282958465269749885793834585909816656311889707379758280340460010380988524575474919833799387071059166935177702950782864751667584769571635979542465691950329943501407999705713350261397679232581817792857098624602890528501633257412292151002231893370083729787432349103135643141422481523445389311289120177143422139654228550368672062675751253547629785255204767047306996868326964802431632914455186899233652944005691484631288654821206934394891265390767127550255341795687083328609275629715972933656332511591827161376436374308011533088627009982166638357764095798672841636170090850986710347593766222725610187294539655551785604098188455135959513273763918802615361268924718985135475712640840262859738984670796287285435777808829296356256866947734597374028284191810606056460852656289755900084378958019829308847879652575659980985761249166524284274293348244969065196620168944596146065438591775995963943158937187751182489505655084760296638345032847767296494728912996021945545894978963403068425396808090370496058655997737855893752805622505761481006221048671187455607789504544391602274180897976212608210719126495974760549519411399746368767538149642926382541268518111054361854414505684555627357373062670994747200613260644376648281513501682366093498144744617672755324524048388063792374357521653990127906817373018322778808528926836886241552189432172800834973797249088571829409214737523218978569997565637217019576323493950286397296427797062075018271985224927693214491840417461671838609860482071356596949239371140566884330373685435626042124648814451239059838393908378243788765279164075855368598451504114964491322878530775750977181916484720525440599149309087028846232412278346012180701022337359514082615967513092412169667435141163563067243039469700070372450760094548334751028699029347728371962434981908172870136235606684514153582784576137338452133727414893375685910177149081554048772866170046945142482516653082747763272054369185803720315871597679935044370731852998927800822479665588365868965907058844253330954218938937274248673780916324706786444395618035843571602463616119791782148380447656128402373490000376380243792671687243868753630008467216908654896076562586847414639521268533428225614513422272300646668951349513047426609047674343475122622104215932434326795192131491385879865164240367804178992848298275944757643883708522689911630899323160257899004144990708426020591432356729941500490456993070351430861177362152350365484023752441114554585258298316079915224995656428070782802996110889869981356798992193928674189473361888224391793489329651420996472709185590901448114783185041069609419958467620488379200736022258179764340933792585194455281206247153968320788470346181261066583870618051181263406746369327792529189478318656898725001122562804151805620423026671475542664446326234442530317790337750779518512461994380710315971737125875740805628607347147830957411432004360559317855980467269884921452697558323408189107728965586861663042156683163120617781918001110936614367550305427546863818905974666543297417641345779758575702836588479753202387506815843938774438430103369996755560272858819031408758200050489848289179675408597704426146029047646576344184972569808369185775773830005294521566305739444308669471767536618369861233598791891571396450821282475258592092545413256500810873944726849637002560864123563665862401992835412096214497989190658915425365976993491724889534401753601418629656195527109674069443815582334883344964839962530278650705898129882695831468685204572771249003084977060511706152477828970293262474294958008157899067425775032562658827207872758014851958135734988658562537312348705123772954918877281747348555550607580334722597020347759410525707185926059567386821808574196500181583294989184663000001117889157823084977809180414397374844940471356141503563603946898209466678351902218174045173008320188354335822294862300656841233954954816266889264769084383815722199831104682030928429157021079610030662587927914129615713908293034614157940434732334184483504531155848611523501765370932980821468537404164235156200909287123248233263072637058881938934236902961588364628164869711141443156560475720799778084277856807327298412165511313579925803638431475257226772953347699062111035459760463346910085955576372422309994323137099919513655672162053244994609265318785140910870449279049560236603958206165618056073255860525405783371208244809845436569022602329380485444874694322781592629246474750745077347143726064313395582357296407383208086842918534869103976805741363720433961146987020541672746685435124001146840703860725615490947470903757073882801026154914364676941109726282767150124571938891060294856948846660667292076688859165193854585466894462884975094559317382301120947210303742251322723274815562785847194169316684896111933739740704296681855116789774318761288738428741721103502771112178345662844102226066040807292464182752277578400271223962608587727078624330402829521453711513227637630048668271400620457765507154666416172363119111911475517893748645097981355829392170673434708002152497861228513232679187019390870728043284453743436830405858306652759140590963465605708143419970717526426674610151158368028520541418830466533570589049475804921715726126624454721752525766542093638968593996169441151562035074098896437166627583344862088608083195734719925739852263025858558112537921451696690435381948228596734746805069862935380591307121066566652514811285691409083386112215823945609637925681736528435734652322286130203077258097605603678872446907002843632666768627061357070760347836113196662161137204598115118487501648432393950590724695645512460570463796751215793998258760850028699724675480535148557109767561060353014199650394556205467299327448539773894892388093372448164903360481692755271158399579478335579808012208118634357950586356716552971694373817800246300971835408793249793795301487351729496614131371329588983279309507902178470445661149220116229365736930591860613150027415628425449907036252173952231669701451187392315880352739400929816028905202689139318336740719533103076157568222714653089360391479646037832193343466291284599428338672539670768219180408419075272273311647943488965619650748674890493353411243552903262226679187742466477468413007766445201923560620225687333632111795038118478272719934367715627246793078619401688973792991181817955404475131161528326615559363687040218552204719423764233346185512850821317813390636042023920349197252189817003122476705419599414982830156250152020070407220223490021944587986892145328992448407644104163683429908235713869370982546474933891146811863179699970168176084272822887672019643200906586164701895073714450514448581208823720141247334823644297473324130337850508271059565829574411598394004544304735583853849310703022456240917734505496370350223846311437468281065581726861792682892227565158953686557930343891702787912562294225241486367429496963163879082372124432422261247450545727735531529926478295505223414863609614967155769196783352492329690558560876727250463724966295584435804761667874709699057667796184243913252959512168304357910496818277493021377740706301240933770045703202505165948786338287717898971234089761237113083790183151533614967870571948407491672415680606381394617127912175674359783237917002771168845890199665158001847126147135268988346578458559694012156826670595561124287761897582638020455611044617275182345418738261876652139471406883574201983400793064945043714438566710536387894610545353674639755079795717300304731520414390762028373820247608392523102099765537645649869133791018639322751650225363062867157464539279300578126848902357734974347868843353903929175466923088764198787784276903775593895697065849525509494470174707444247295614254048525625843596171032389647507450711255979876701620093422451146001075129183777515568991718478974966953514597532013392114211983311136437355144103523302571433011679111348237704413561470799304049734006406757049835223866626225325633608683553753793082635304724462434788421786717740165700019734310779890886147244184574596456967994634146650012720885574011703851257612869295614050545203350155281671926560948110032306148616225084471798254873823063498525402896849146431140500699641550011864712508982555308685926519373724744844221795551004645672627280088526470437050879126124013614331894218515317394231541620705807889623169858189748420431074672037027230585413131205060504921970452242898646599106793592721449943532448400143610104981502610632469120448546333276844519425069418527826757840092358072165316065706559624164196131980225696942445625812563086312988859813488254140752901402285356788762881977055629487753908216627437461281942832280400532029505391437311214401776254755007604720846706045123083525272158138660658270140795764845194492131739302275707541262932610768520258882701336948865183038104115722162264939943710277743501063198660211449953068532315641308787294967889762072438247517882440793059614567529618918570229035814636577283470813155536530936769180916889565485203503329811908243204282293023560593846330923100865424533943746415013177749525712509185683997133251087270035431751370973905507699387203082468386319835174635451446397535806930307806689722649026626327821930921954525561642816146825850031293546687621349804484420617301917462174512732944019227472302179535916531631129541940619491249550715877981466959111374410330561049277093711579026632012432674701901054926174084006909396070090242557362200067494335807789610832220537735980663084414627497404152396815091101051069963226424661987422146209707090909568924341711729097782608913596642792286289074126032509814425319481021783250469590077902693337969467408253115651106721083521636263220623328276428717512907054733655726032819659077357830791697441932787082631317526034566773444331915974228537294543625148227506230216834285703947817808337141728477236368460119274990289751393221877874355567364591315854081320180492163292233495113553896562784403870818560949061051190679970413157077560220050181523575715931204136509689012605113041962492232707559123304685933484448409439506238228565593756870423621067953675570960709799679447275329529493699992455115479861084883594903490823146414648542113625632438891657515486442022974710771277774339007570381688378891630830419245918168548705973531872023663601751843710952627294190290313754629072816182833989094607856648698155805231561212301128695180488338627807891593008976999125730176842262346172963395396139109493968244022268359518023548803821195572112767169010724411091137821049307781854539399987180905085819808067218103563128908257503099726661431635465690842494414212936379402035950203508909845290229381409995723140660288035200774931356202117898148570609385472191932340547412056678971291478788613660351400272097207494605628537483569234757500081312514191956087637868157773299571104147290790146116805207306782540390662086922525826174924457163929135428080854702210779511983337979077670338293000511923837326239917038748302062703890168576685681579540562305997796337413606267205807029564456363975964752029659548239233497826786152276318049932931070664272875216749609848456914624006018623170258765974896651555264591323680782927998766977293064059772504945881021496329381209797474095913060254155888260969047425026565936068212353945720369927643573143978901421542836711744412931289013776093077148278989360202379730956231316608930808737652993819923174629899720456062360213581615535947371299200587390832370926000352960389810617836352995886304440217316360003376837405200499864733932293251788943165603117332652295522049878109553479726407916479694384406207668183048396500779513099774622049907137158328064198068313555716709511091324091832676120969088704764213539422044330559672448733925340785225205195235985295673542350201962226069516526940428028748808216251018629500918009786862793711233100628256346269171247676182738971781384309692980754049982592332121210096224519018302024730552588390678091602839441372300822995386184803949998750103669007824743958351717681502109625897810040214575593903226232123814043809764763827224835327790977652610472785810867994948614394332289459629948939405167971516016408599083645141204339491448861537420809561107626096998679265908440883489721325907814125825975109015738951473651425675194868149022646285750349681972480825934222890674434032569656343753336093166318231609139956449561058483984623788944154534807564893104889178529856537915015636047544982834831175246630979881437407036046978576300815151312981285160011194734652024178466919299078977853114683357340888184080567686434061420296232032230995935607768464294374978691846676738555895591160657751371088702443116020217784371364528433176142316882382019824470270333710143150481321310137541155810669217801988469338049475919876335392025759151278895914090959034230543071729838452098242582583846720933565684829146885059597972282026981829830610793300999573710554253475396217379424912082664343847503516152550345205772383074085940044222870483828183535717189544084682663343618076255274905413753390779707716326938014733216378757558374900911226938189929264264915571332757578866923171672506599351679248849985866086167662003498150972676686739106227152219192124606625530628615023846849390670539778278663104713734877980228627627195814165048112356639470844973279752920405084973157687910484948840388629151605385553722351588908555019868971435462343059086760983911320286584134112400854704490349206127416373269335762844397061113600777597679205094516211943070413310703656937424158175093643563728624574804069924865461883444799576448248331458479436802363974178271830420642898829181530852282564062517253067630394746695383677601782556210551292865329820128954729327434965302100918368512881737715288972917298920426581543505035870481530788102100880023602307141524895181320675559326640754090016820904648624184990859077899685992356115379832401095900967422641950369443584901593757902071166353132893904621502286844054020420448612660217079764455074919609109156173010506065926357445546900471058013247138611535342759931605638313058551461557588733111697226015188883533096291630216295652744861771152616598531279685859810587807833894683379010835932567426290041440177578329513926482435860446186353405625240978719007243151077773191120828250173545156140393003431338137201747019015928114438601700286288051033831208088602669763190808391590867846416242192865252257147105400458858085503329574400161220161257105757515013971180301920190157412378633523094721402775799918075919507705317343157171975007883124434339955940625220688777462042761917972416753660687405089108972453771539649688668871411400248209817722990435485120749203323700389581199109917875275789321923727878205796712124684747257999433894649543072579521713488911089273428294270565480803287612643092011207331544260431106262199218017055351841612193309507521899542268638710554314514280365077486429120892354836236483374029866320439712910677496466516361798041446531047546372722967684951648005312813595437219465606796076702361420365709743657579992053835295230106438335464625000083041613052518706649056988520109695914464811922514170463914752747023608824641784526971218425864818673825884005278178504955456354583869033333058867064953386398975016279829189068554691780859390057286348660379854501996285597453718455095482632026984394911659051676655575363581396963253917654772568245896009943490453195210042137977534105312252876053070700210782540317541375970955622504980759855209452938257537841052363122326006315060391737176220807958804870067031058216515192011765049750004617998389699734547887194983682899642586716055007858734072526888341665698652557100371763663698859930950415064992352827192598761019873071949534917708507645208336032673535853433307319818817661277007852834978936756345257356597706027084322748392956846006902136404407684287015259395657695490516288413484438738713897983382535685687836250410383097009562015844165249237689856340583836681323842182547328833827458865504340375047778902741779431940618086235154016079524990658211552661061333596531979449852306446914294376139716375644712392891889013602380323547500226344218020076632847906345160337226980475652905558422613194201643135008334326232517718561986411030698625599047830633022284121579167958082745124677372695740044630751343877407213069555580970127190447000489550148447435725855647599859700195736889202736222020882277279743979902736974621541328103811218020440857491330864568575328262139939004525777024400332419132240140293222435731366967426735345307216312524325373257611836524001547325780995814328368510734632215199286095128814344488271834282874079490327978522216536256272398820970766382728896478881670498795111381962583699175047373578806675113050296174703469225914675351544098721407223474029317903247216055932522781303798687213749843989929373921682869514927510246803221660823533955589610888621206966239833124436113336598451178996078095222844820956262327833767396990461639047865285658120007203221225111767591714193441007046595591409329839345032077567498690184207923697300124433226903317064346873443372012524318947206065289461099382692957926965020328311765816127108725585052357554939042252543398730630140812971953896806866838208994555950715892136255756069003187679025613244180492111853105600248330863908777836472710534494439182007934851735153742918967383801237013829820604440117044669775921496369763136181900288293530551368673224936027296746188903715917156942928877341295947984132659331651077708828703790411972298381751812205605235891324611087033181819244638344892395497633330290995965705163001237854728543023565943343586325697209832158688873548303822003296904704160688111071305805127101631578843970771708030818646953374687393868848425089920742542510817232192014587685234291006822319712384075438532609156961272422857237064038515838221071624004886810597193682699445101007231620975153258741066555767500173089629938944776433573526615430662970164277026040844066888656466554118225125621403244015519561462294706423880955728525410428957671586738984782006361455891239477491009127378289801032934914561359025774449098319554625366258271439874848486458760948432960350489340022340763878583659714334553447820796481832647401260091335189494677289015978290173879687649119998573835293884540237820447598224498669852011531799404624580694365071518419404690752906953559519621004461111466567345322310496970342931447100765397078254664389392249318049693799877498329155847898956361843858123145555819685465843334595644495412839432342644000611261677573814398161816889430517587112240849585192952813179464582421868337708035960095792734757794593071046194754691567007567595521456527233557823316711249354532504891584986526632575781975214307774142024826330038953415381977597596122762629614975813944133332337829541402126364113680525545795630447100256501532011144419892328871116788925531504436157443170407926152801885157952206783317707710429777205811799627661930648696666138459658360131616273625602095307663117840416155114796011201288277538405565188082496569000357777294701136061415705982936675331091491168341610943702244386562055599526193523142316455193790198714340000331989534385190322277618040151140220557520336326061676555424083727700935290375252558783859857039782360002182070607800503060840849914427860653820582550690679057121785068377472392920191400201365517699209218891061652212752727370086815376617815515955370209589564679030711363212713193849532614362109503385537262869433106864057055421279423040033341223648116939942099246019542251673324492512858267689897122117994057897656793760954001645814037271177067311346528089645334583134429826391054272030421839510276187818902319311770193178650536777742908011753538581239790273906458522643849091199237306299608122519139166961192931294113777299763992318669737319839616111072394437234566135125594967755191140455056202942966022974952723830367668209470528934625048339097944214232885512572016146907823832790928459402469037214674928042908583501057520964749345650596223907444586456813861301483694920383419255203833095831602336394275841710352695640263441822964217575287747458170718169661076861729185939348172772675189189068149201059029123480858961271981634762923278814450951897945397441439595851782196282764682390573673612199832897583105759399571999265895878494983192057598745814807598995490198062039227873627369888873408004978941412935209508362053057582082782320888977972033253679007715845289877193079829703526709953223172170594479519599930967465390614571181688648508899532787166041276424345074779339174415202279392279074383943988812190310676571935916512949567984688712082030555479252343037806292550117004808227186950653149249995603692886590862055623404522037964487077488103095892389114330604166869734812471584903293086262721174101396047384107836759060488999540854484769564399159348362590505775226475479069022304749754473546770889918554048253937753753409259601106654651947823359178609634063210319057333770313629596830428442018697199607712638039622224936650822380233256309287738222990250789198602805528900758531304867080186037428255527904925490661877166298668356981259513041779965936377488228713733499571567140003841658858612575323800685582340018128420481831255948149342566132542965458288398135683517227303283228693860237886549554158833252870588507905824647694491497173350819036893416482712186083491347968554795183517257390508581355506676305541448477300754608838720006167306588307953254389346215646787286180730753310428475465732404524703951872173212818975773146569016117076116970010303182818595135502469743806198880117603555231692630043977484479114598249789684954723202560784973920927492129561094090603250260461126236899700244055711013822368898613254741144447662352363954185662780842703682109496591846387013847638210741613615559573860659246743764924833181137653144569251437509727763479145676881508903839693773347162946670892550086383470181216612869337584100766351196346127521327833998818855492518985719834195556050190358855705242364065454165992892293446948494188846112983244028373468899091593457545051263321275670442561160985080942949887829586287049604340879350703101669930644662812291180581228127395728581751431834853299435441059689648144038612284936760528431767530906155394417200692607213412629579980992107327693583144107252750948084301246074662850945251804611194266268853974058280007614147433621776123877029777033442661775121255023936884464789331191632871177355622711516837739288379079401035396128689243355966205046218889673563169791112076374438567973947287494622156633055445953240376054550368141164952263959648506544591790093854792992142520273602443131102354831286677154665442370980398306806858000133159554870090102269145568249739741593912483066479833439882969255550541623437971316529244431625998930860922964114167177792582246636162804663945820879305502865070471431485129747619731110102122362484234654057584877150807480825613272730624313483770582501514428790562710579049906253853562623005467079095143027590515714828664405427023600974417296913078154188987066420201323312639021694248895121913249854960111711561146698120334119688208396196726515629793317532112152153224290757180132603771951791140017911325144740081107935183456649493428070144114607235367399890369402868471661288485687878620986413264971616303298852596886713381814458054221176636531549513561220551621626996663042636000621879819336308087422863165620208298037834742510169000104009688848786526232609578562235761190457310064486448034005443515778529925198580982302022344136104132367945279990146162851521468750016636081088399852880811372286748088388937164766554647582956887630178332429157536439975303215244641977042755788989608599591173189413033493244774793765583565269046889676261726916563863245859997322749758091839662842814653465185022063387151786044932605385248845477146038880475466139635709535368856541075416482689085844485738737580441514119184516420029550150365101836367382470631740129571632981506068535507607525840334579781981264529568214201648016440930502161141918018083616713380629319760310057868466805180908016687038364878875303989502201846632189113773432358420116758009050760739594487270424654715606872833871622801281603479870290856548009622825233183658905187820483401469389473043945014612651613330088296937562993328996739295750730224805078605902639516740329045198873369650914258640508359119639665648454199064457375698147606564665829600161945545001103447819893534736477816061399234951037706966483129274631165640762087502519124419150715661903665013701277520969046944266006973700480263948659249028741381747950298199076556681824199312686646954091233901597104659773427470370634553917860775209846578531088046280917853374726445187790210253846214929317850922551867150540773367834660955725449758139822672741453304790000328197068749572571526181321467882119925562772543386769093062317840041026202836558953984003068824848122239241171724216312128613029679945834538407269632299869459794653176681137984272137916745403913757320468285148844844202398517528363559165830964672113119205954753502144417983656977316638389488942201241415271568515055647849977550116596537814776087604644534434639471223874830456618605127396117656672282146806695868694955366818587848864595381271282374485899572741780958317389881807765708186968831058565991637778964727502425713033877115324792241821791032380466199250678323425080275338230205442714048525592193856897104017625542261599728437155119900926005524843914320711752469502952691240618237382927819685790014117590912372046997671007511016646096568018392852498877971132661620188592313694652917346846112178223112120736148788272994451607672203985758323235502206206222966327409275325357970524041258665464518974166942530750046959785713306405167179367009214925673064083540655662633865283141016824468964797025464003518518286289065909374849618571320191747291120446073921288866759667323697416529171472236355685949692981519216102964293049437621175362317738021148223156020545561898224041508078498551813630908703719188626176698585843040367747061250998653020666269257725027892166745870550416876913978570965768419246589778974867264852676997655691588317362829178225330191411514752535185805431513255447762176297476259635912916081799749435076892350416955641279956761091415511421351765889531169607081399448588418458825959126160532840501737399504155721435825171410505652056717287668051816037862000633805757668231624149290213941760010826472223243269491701414826291862846697781201221916940621838161975107410308785870595846168991198583858362186421405631940316957963186514006817322934457145641798356308802862032920293692559721021719428812878937483853133269164977885376371833246513549774354453273792945893965638417719953342357136446821257258233931349463028999748886732216909577489577935291505851694046478418517518994511526896926426058035814667882022407428704546316646023526447275689002740252772598282647100006491087665121317394040595845974957176495474645701043672714109882226740742415106927761617036466493874028308754865778957481097486932479388759732706248830110405064603501508384217943861749008255178265423470972694083220173075087937458499578455375695910695742795459182607100008326757893827460446994576713563834006382421110140403690258403698058251103399305220243859624309029478324948196843634761652930565896407773716185739527470418175759669562404528115313376917502516166911526137262277670379736817104603565299060903711077442604909767385218157133685572191802122482699284661547296851925848074118291467642373750227815828805203061930401123034887840551047473308890765012628449438356971411392523564241034503926086046092665480490386198403739265776451887710831116045439954180609420014811016510949215899263242351857724284614375004809098062327868392490039335597491621012005086488953469718046527893957128002948434634583231838379358124820701076213353024560610648880131407920260710585755922385971946513559593596185417604501178032371510363688457820953880715205173897062463248566361253348209752516777350067037638484034510752452012584454087945791703656877257642856625561404659877555909663130163760139971820874994276917135837664010789452967044150343913837245973327906815421625385792991572305589644000329801942304116790473440867405655653620675858899914475660086012255132672781948216969482867904178450267825748044702471617461469265668388947997674539354838733947629998367436312747894951090387931435084087327476211670382639116760710080948473567520243458401695199845795703454107581774790866875346663660285843931778995518286786092794760688947459679074833227028035340792022617390305277140635757316525588043277256498819508102464088102983754262591167779453456714984573504712627421647664685451230910812360533004205055307821663381463172567056390057869370981416750598827738084139979164612611734967315278613486769878737758638843601910841819158221783485793443123248157941237132605286914890436797660702177452403787182835731545894970173639139936468644906287521320143820478418119725895716495873420519068613330142267965038712648917974598859750697110071797158299737746892990061512223245289525217392273347984546061378885905799804017970841974793915750186905139963012597755618402748640254156026013188786003193416593147795478471383107813620734817192166728126189954527796319304141731758077174337677651677423081729888916776648484942624491283832170688968303088878504058773918331303153624949073486549175365112078953000017527610700574001255105427790639684660266665256245248624990342190920507335100191345295668638500102724717660044926283357219902434427233252440859367980363117511871896216711096090681305802795037083164168934302258559327063395944146846638467382323632520278236359577469163741395526718982780761227062184930499474441783530105358742634882901566479998693735637626529074163475036753085281650750856101988171041451638278881612026675865358662698891494426883522626770754575417910077879902267314041862863212060923051569882601282324660826322580964398296174058297104790589611758001613819717932218548844064735356441762925086189810783742621786332285119910808090210491008934148918610252652654673463139044805839489053276782108173655455776804919756834931463899653997814271760706057902446510993972343027119513892300155779976168931828448658606899812436645122499361626663128905575506966894063928827791889510884877539457565957119686185233433721977535082608223517061944279815663636780406307089867695709237980086026179145477464219529851633080141666665401806081579966345318792114757599100180207970719220567958476807448197968285284766319403637234527807840621255462848843182070291666625703682199744648739455222782786453262444065855617222681515396221315856873285358174245066720732032054284816271490688689084750353722744491290618392136231886508406791811841961584462239883977061154395385226030929043119873242907055317709973176257007056282958877186599776274218281699191755590709748574232513632955023026471065667907330525284381013558226927469471673729270715143413796432261185142341899054491961788033978939736224060768460413360437808015135664283160300237441868488332329575841936464893910839870992151983545245727929217423766949468831198151797241751276690862286223132390732561509997867898147903932207249781399653133668095188037821579921685985381006377997498374286235478961660870817173353639112724458971637029530756847619587786726611589544000774400103076400621827183566090542190427115807317723318608759177649313186683076028485435655658060470757068691048444674997876499155808110499013666058560112195890889564140935018226526249682519327521474879526686281810975565661140715473693156953492448296092227311933329890095910222490355465194129414190953278672265589982686301921633173104924064140129440172354505632899250148638785443305125333226336097174979329360416862736495607532376870797378411976547191939428821497774792194652145601169483029059579089787414396873028540457438974688906868427823091991906428661564942880914378713032919748660101269578572270990210390392297474498175695224405567785685414989097955057168358132231601474205967615252417360130377433262308197881303181337347491064258080732445365137615295418711512052915681317745452262746582446485768200363071620294373309652293608493296926073426864089084900222784388054113517932909978973620585259744189008196205717387839256598658797320420596899866641472206804709966411372769046084170761611227926093377724914953500602897552786522768855707047276138718557111635915200341949373148959505095882518927411611400158887355877311687823736611591010675452004262944080466738573044701438008200980145468869356306207101953923984424613077078795014609723924532572615499331371109416818008521112918752735376123740266301725479158050526116480681364741922237378237161913937124470175752611226397701054549561553819208331672669684663921963167567862377767334456700752684885992235717908956674456547177120014285619033718896202392694561394788397168462796739045258651470732720031124780722064486853464218435891231340032211805127637932582526517895901431860443772845070985774655451832437636861494367095469833065214674449508685215018807467157044775266401597825827693896966236635059766035454969212639176439409713613082877615367204837938369155847040783990643206815436230823389905954728494774526577321441075415289267390693935862270362695708281820999142513352221287495906555523292811433320768270075749272553286245640266231548617863526712704779274943978801899050419311773463287366133332176960750719211005535426399705464861401466523269918306235032828491796036647848504917245082683960320133484892283988294336783415142918335249419636247715750138839127789094111938206251295444811907593536190899529714568562571013274066367931732312883945326575403470165378574781789352622840617643724834624225883171400208462296968050957797324666811152281924462360439799367822752378010390685900525774265434706903546230080815133607162036624374709268088784366023787126077535373918418088207372983115044485068455991650218785737140941231219425294822103318365058678888473682609644226206201649880285997761495189028316781339319334979404978246269842768417013372786249029665297978639636188925369761734429077187915131876658386508818742388102860741653838916551279873722409088881506700322086528869503601039150481341210522644792187930851235082543690469519830868560254482660514794396982377666707014457109751860218500856787412925100666919776691756194659403549743505611630601903398723826128758893695738101474068698456855631089367575473092382048946869457800745817260550050920576685683739581090742732584554042211253418060912044696624350471563138306100583890529237203169074372962031873614425384556526979973665692752415381137784101103796282614123635420501858902179199096951508851561363155856578796997872902361020969792500374788241717556144570440679479689530708394867187275906714183663525885533243546748903771231675261993925839983223802465228784145075651278571256496324696997499893634560280383566420033312704065812345479351718291552224857132148668962512752194676654105543401565910966305250994150256613156947939016139590940775388866786022228108388877915298800125419013825538651299880405897120167938840500470075374069088049031545669030388195234248322760820035114634164166877356890429284585182806173641763150065610956609906798132602899794286156274820155009228004390656548960440950087064451365764864528705832857569198173483173070346947174272031398688088382326730365906542755860286541349524563388017661641243366225047243916788841449343203526692185333717478379914519473112157249398031657402616764537566882194711572313686611675651703159483086530561859055354051468302406468322733729401612304461661712098369237556708814820412778182099083304768188777550860333652507746426101714169115299133371294845266738697730099150457262699588517402934201563349135321399526196575305533145862229080034014964046528275633741730271245439519756961224354256453677490253907568286794525905706832273727995411371684956371091011121064595269745646382356132070246069120905842918481059958618630681223006558421543943056272868228453403461578095657244584515139817775038225395567660133751743491714005046323654977932959400014323649940503193574589725893559910741793005442045427624232183899079682622153769252418133985490733210664245044213261953159363200725229773992453940019162263310139762645851505755892012623945539052233663629657159495424564850099566985812311937883799003014823765334136142797623842874628716770614774793040502472870774595495219725567294401560001881444936734492166291718182118005955360159713899423696140177721661440504695712580141639866363146417912145207604906786107865783662025829166597339416674950449466966820357802583883657856161854429545465302099028622846575334995502011322977866620631204897211223687234702538283191926575647562751844567514965292595246182404704060573097433706618357788514532940559039331072673385159850746463416772641462347758127616320546698313603422971209753395430506355603317673505807373632354806313980683562390736103185939954717662220992143242188585156156287431127267250229098434984831850594192766478067760876060336826678112343141287706786939996553144873756978634788935528114693282926353766090202260293661484404788858992507797406296727653918022172176360246888970813762773974768836642537883739556570336776644077815277814044058584977254160883174123213707914759290671286020536751551089415000431608369726583857608732639034979096316363566719295332467774443003915794919234849614708103336808468463904372684737050997178434050536616940278114164437718418004314559349276465927526756322495687713845894843247355211726250924918358725439207882952053878142620604718296153967400642037215416915769344889063560535038789545352828468214464172930173784427637430827261838031827273393324625923829473358934969848030085248884987905876589098031730178218185401779118316000612814325292972815274979698860008233526085665123821221786057522963090470958361460122063523898718398500615279240953452648102761089337855528576860052101718090751129025833696546700529918109346710515824792288286136326971079523738639951549096485802319058708698978566382311737242712563465743526835117087759153682683153987487135870522139792605901979029213266631439238834498693927267607633905703831419051718470525940961458972000554703281924147733462298360505770802254994225493012384830830634284095445620792706762530791583494335291059601283105315661432184901796712261163192210944150090127955124025571623704336208041940830053110901441620333271493674542557715233088259108589977896859589990084577364576316156717955201155250118423971489174930044478171511726993979453552847530412208196150842916475875946963413270474569856793626420421814183373886809477916519667851291252338143091071783703087853721826549186753947752807591009568927944308862809440024326731701241388833934350419298283631511723559428827769261184392194169276020266924888849256782913488668183759591901489489647772121588968106721468588592610242721953394201012335423400805710451808862066971174595343410644929348393433973297378971843576160533386017214109381398794599097573558796575802535076189414540305847160122245260518614813919928716329123167790698754272014934211575992848976781138021987458965788417600104711587208309027710483073280589038858604344885919112127167359472450752813898636761508775752645162020531426021901019267766719139227323850287241485864330960881743746944597475979935238836631106120748220400775912040763734924975490520936016993110066046089823363599803933383938829653322611581625303219183268007881751930043061417105281523890226849254710134504872583543644367356704333677049453776418925972226497536308454156448815800401577888005587751702635427896718459853351021747569697788494923511077631187211465276441148821007176191366725986179730128302352098243684676167911580559168961900138725912517143781271745999099367851210332158236019183207387700180756946126098149366363796194774698295555173330024626203669764087287251182948599271895073634707985331740332239675150084804805831043431426566386681220017769443901347403933806075450948446085039947260396705467108994049619280749952494970263808997774416793068758491739224903684796350904323340052012173236933340092337531519094751652532458222784412528127628215279856590467260434810506634586224072965889333420951656684663986808572512906296628158023547354320849119275723017721603536492038873622788828480628620202693099245323592915485182799935777152358033332702282362467721865128175493247429971274293124402345855507518770225006482288824926205670948135494148870525631196469586880688957344961910157826957994149916030481240914089378781698170106181792934415912808103298338266924935490054658580528814194704083770529307900646990464843456977768925307036020602842813031894562742779661276905779432926237892109705127541447441822995329194435579433860919772910285375403776350150249966020345061020477297414045634067375063218989624579468534272524718581584810877769013648221034251563917644998433461173405434985820514042088241408390675913246045132253948950808275142306958815097258698164560434617726817635398237899156055595267546730107726663649922507095492705023323315322144825332030242408668287848517701712593891822572423585852180799498200224102257000254808832113985885209919647227487146773896604678301186364549423451351554465584705333050084128538116634439496088318975639239557281591926161501391935927496257477769784919089162212831626197060352591187911165571932721235600348681556920442815392147784424182135427166921812585090966837041886132537861207789681669924507393558840369566459889310260353981875802651782757083204032435098452100718544599618890849881272438600517926486093358427099461361014709797814876198636729713143026780774390979426424811188782094162524993942174466999538934981375129589636562283671240176230151124142674605678889705992368382325610502256807861098079513750547540605078430622805849477921464579296846967558490645978964772941914805147832054747084944272773299591580937280289394912729664265777472767127524013179354761121410465770375393930187342630281069481658791815741484817290302462094036180209524747528329729620255708130748166903728823295612375669743983173127164729291770244270240143818794906785480903503485794776205412016480883472526500499053490596041755283462280480607371564080804851773746599839608209244997088351201737787931482129311347315828078297695594085201350666628099887073228193444259990648270658947595720960193345241421074921549875089368166630558492784457183457449871014904592961221439214854776392099415530144874797333018350291572145736731147661488217727384600629330865786747505830188148929316362069507855663824954762467480226600617298709985118104795844007116435933607485331203704282743710240968422392086241629827231233135234867591222400543407013772835879946810172963207188083739321540201167661426868825019325860667167682718439942742755062103409832730150455497383154341642858486731891027909085133123799588020080142813496067762280847586058687305012761000788799504409058065312128597649999124474303239813031390663792699173593037252486921189037803870491876884712050225503303838746570974586176581059826254728909290261925440291265501275244203011346161371784339798334395301298116600577484587409643447325028344218552379312337661931473114691293978503341661750075616908248426481889219906408394856253189599328297348110014532612676014441175907990192256200596416500539332505465841007707376091200882062482571573223720099669381350984049571932049179590325617322645225077694931820244486840525185075249341118015368846914344044755462079562840198963479185281018487459340032891575736361882815770131287159340329263952196152768766672286209979473053066507475151035586899278185087682003274690521863416060980446793472385979838734624948991438267851799756348884325525844683890500063474316232159506486152033512312262415697102190684969746007258344760681908904143528945916098147976600381756392596053230524341114385996210641972704417193529916698164508402781035216324220994700598787758659249552431560006114964360653082691322685930220235772475233925744491707077738689312533347128361065032739584702975908397897554540635974114161458240257613220206875249878542912017176177865797789299635457933884351533819797770621642302767397775443700310032278304170861498976341877561718726391985150354203577992773190345852810243240423283319431758026265664159450185268350072394007619717106636362642708937064264365932537983591808447555744019039643621752707937452831851203253721820415260106638186390730703897251510767414994939600060188476215532132028102520616642296186015447711845487778224195047744024180164173186858141383467380525712092150776625896965653470180159778577760155596322927359277266212159522826928676804978864416654168578937119801850877529037989077574533609382166371729301512931319793846247199784687438679111493077739169372979030605856210557175461611905245825801893066238335212463749093501603093642204793732378480479166506434379414599809919970848485099155582948539635123311451605801870236795635895091369210755399013266714481210450793149795054345933017368913132170519879775757872719973623929359691781877667854747289633105320917004838292348297741484671361574373972636154492210712074906731017522784150258760351787854751784950197005834050727179152727016675551521442727551080335284848869296553810028083878991257717037345367303707503030403400738658159845637464445352471723915073754849316323315895752995057383913158538374894936211047883269287864803068133943699264702606929511037448003038577055296977411124708746691524385179673801375177193152123163347315525041391466650916348585329122519602762128376612698567900458946770930391432312152455750604009353856677208861451836694993590938450044967209065521805207037723699078949469338692452544706089316553396522484536009020602292536224854573849885127251296638367476560353597482458769008188943499282903561049919554650872329661918306719226760462210870984681933533564980184460000210820065827000891745159741799142483135405282750565986446553597485294917485121804747704055469800354446086680414696909872409025006932212010415121935978233898328100330323600924263683528988706178727526662732138702728997750797204161025137697009843484634058147025229387323437927365319489777956428252739573734999424280179280523341954136936539395748160906321873266022362383821001284841604909180740910316635869618896327413383849279855883032343866555090597381178611278378994749293716640354353223167114518496687459246063888216192456698032987267078951132823533884411094624156055890341510127407389956528155610938525384901217499500480324546790151293096765290943483174494535447364643128301199810557075131962355881277194478812480042904149274714768730488589755156232349750858124935959200147834543640470478624722779302216445566947303649965017752873301882272944150028761961652482999342472526146993193734185738481076620967269792519273320958192250573735001484753714457298878965190840868991352174848520510557458581911897298912234525780380938789743549014524922329919984764969146307384883932631612242732435768405790513583506576418566695132559638182659948953771002528409181963525611014095447780008194934850922246336969149602384786011092042880218600835154149593227874942418517523191556961021786683759866560428782625155610071716723391852068458867004199577915731699596166940642288004800538363564456127381332465440453851072622564932997091929024956353586545161480842958482681465467764934552998404806274155659897308614207950488113901737514600827991609815099150940909142566128778508612201070389988761204669368044963569892193513445069222688240736367949918926388531390569298421161354413335783307863909686434676338816261217483126892670271500529139049381956791542105361220539083752517115359729431514822150999435718386747201710763465658482370133091974802147864266460513706521847324391425775161598597795114247818845065644423654541334970825615214338975494282377382701421977351548050995847250680901986503292287282267699175627058850037293864516175688394688192395891704843216633770124343556027214105108092188905044951344836819436217152855047145145882538832447480331491181313789136434643611691553198711028726417553618934118223734538328739639748963119563133724582697997293502104182560878585268339278968324803243034768461325462457912215996822102252761268939177920161480918236891478599590784103355338229873796681526950889057078279477611264661565650898979739545747750318942790008395885005488783393564164765036475347960752721492352580463292387511175047252419801996163266358052833957371961572759661709655216783560125191805775379000466362344024021730226962943621308607756055051898068060509127108431969115749114671741806216524599509443517303882032345586824309496134647233083268112685105924272327846844442607315887439106587830165573667696221570407641340036207034820416389831335963507842961397847665239652387488528654628409421034367387186866515728026408934463902204112874761818529839793873721771275138602516163409199326043626898412685855921710667068009336823328241966765479438114732415444360594974265513481510776292602134490129349518573109957832632719623057885691102103481561226699504408136906727334898067324047421341410993480992390122171388089169965848212712658110360016535223338002478282243574248279339487711084925865536652355736617282959247715868080623384246063323535505933853341848810963205266082535714131508548191740603256132594379475795335123093182953152743226539878106730791069847425754109285170687997679703955279889732117055016477666036195312204366683157336767946409464520084010156727094385357126023869598935793702985195934692941729543915116161264816410791875736740834736575891816876896382747558571063402708528647924378630656771472861261123855030534177886515085247587485704722537045271796343307036647732525878668518845017961688837607767613562017307675678968435728614723983689245664625039593742390953729276959020996196031639652404153234613852675834155113780685068994864102672135186464725013882450777210361521837615079631805560031007550325671192238322812812858167393793766628064012920091696341299520170342497633747418797435667406554088021248273572881917263264790604347814714591308279408805610188275390243879949285887406477489365550785339968789914732507825191828016359375576592841294485477315033758211244522503539343677476991147438256404045794395584011928900561519974680250644059560655076238462172884596527641908475825674188859131347136413448758022639837360358197389197062469702413552663544321972098041744475879431128087828137969383301089834518148394886283233217927825588482342377734230888623855226932834727301940871561862232923080774570180504923025297971425679078906818560123960824719764289678049737168189417232082868567719411501481463802988677795826555873147319850563971883592951728261808976469263817248951234835522693435471903110605010406619643064775962866081764754842466621171768471241273986851461067144014047914632742929402319077374667010606747399964229502630342631036651113290218615882279022818795236659396691071580372257484449980599202582770657225411692732066613339636686974072174576771888599974925892586791612198985932990728574217535302402378229081511914454874048550397932207409606785947655255274763497672649725646190095192475542726483971112312542821656631659585381861158474367212580642316465586430821012324523115214259955186372435873672256670853285197137599528913560859777065145842511932102190516944942971873330423335266578182382379332510612394491941940963526002421791167487535764696913161394186982963481779270361767509960516462842804742206192989114952362955513289783385477920936150220488256887852669858921944177615325236905797387467000019604916192427861023861668621070665645555976888132675207092628640180653455723113847465049365512496383128075468118490389210629756368973447351289837137595509530446849639026066408311069828170552977434278625879649481073145864248457230887923709619575109731476187382613390853749974623440898601698513805148258441026355055008482464091741800267958455723883927082305491491613728211116889275529643355825158738286937169777922983730770822611009601763029775342447517869723726603928082956463285771741615328487128104170964113322874321497777786037507071808953545935614108824600030319765117072699139649397295482098443360277983328960121030684483566918593469190553667824845958562420281518547870322499576929612904022208206719202430043551781273342547012849641457395622604327891321176591242978737253879145504649573449131345086064470103018960511714881994583519033975589302310367085828882522748131761403524403494721537861420544560240400316988449366479725913211782324295177382956927516757811802146268370178323306453819983706355050563459800958103765920785969628262042732409341083356513531597738615932988151623763775125153880742638423928429980394715652029552177244990027446816450827833520197639747455064282814272497395248162861389845971951621168437201914032620803970450677276155194453480915833230926978853638576167257834654090675122174680448128389765797677977301785336410199470279402081864365954884402033904439454778866517222766493501615220296005333715261213373538400502084209543437184542665580398201586662003029080035971343287565685857894088532675947130642802187527122197044488051308646871629365553933692793586600913420965362826472694932916905789424298077875505426665631188482039803243221432156860667596718023388340331651155348132470708375511331712164827745693041082738851357307675524650546320919349806009517058573498790573639133252647868318793479034034289440004860341365184783776570571288725101769358846240504630959510600424579817523687231393734168276437958298462468955869356075454506154124391225449014498051590668150561803193997415731746148290020694061007878451909340250422958140740273515750879120823148565372305004571551499348903764711284403924206486747441307704865923522900133670573305440784893490937007408684844292230525657525171936740207206893211749920273107893898424151096832436967590165247890944862319753542307099073567325791403391210272753655046342139404866405324608843954598627128920021417585097368221203141307436836242959471725261699207146049393895029426032365276143066828705253482673464829600893602621951125111961091027001533243549105319125237700508672804532630420509239949866221116848707013659424035361508926138167063097395352526780390617781104180356564475585852194717696843220344979570210616311082343087575097198293612428919595416229304126073498315518337770138079585885151229333797486352616190553447089363454474171108666037890039572531206828099182305063375117336298530881417209879111925784701618496247238294888849935698401973824724665861094490737924140238940512840880967500784967923694914545224756322301475920008735699716388898481135294143301633424167777395410595166303932971787711604597491582211880940967471224098096659132542363486796955139326704834270174041292732171727725419917836601244256135077082440862200406751633632501811727820262782889886915416614226638235278940709982555899101404281816076604365790388431965690939368279949055992408828279331571608845904087565855445321397262952782766549508951810623022927589285862135198776490004893273102844151280903457588390358151712211893965570976811326383201565856147227581018137435855022115120284543494439915322774548783155193538436765841529185239935710672851105703220190818116134107332860714576275035381105056749688137296435583145187897967211510394185983652745020453209241638078588070581909907098682447604995040198261744981119917208736022381923418924369569308583139863059771403310694550629885725461435417706613839052672312831159865844476001064667965105226187405895912033122919699354114648783633782624295749403235723830385346010612662810299732669940681652227492073049516184024303444406315419596525580749228711019231887531161888373559081762922271726433504922426176746070967261442954395557229663603796879369089704726425059114367208532142130437667820335683149617212017989716118411078874010079689840222116128957154914877653571745919597353911969454754988261617234743433059470048757949485534982003537786642226545785483452312715318175759087649302862812990411120021826654024486681163820509151932807427063119634488895211507794330401938371629860667465697229262633344608026619143924730582368487663691139180822858422482331220153091624602099843381918770090857695582941132570235422267230668091265996428243357190997133553271533887393367524322139371199674266124438810680638778772819661444118387960344914857830672429705931962596520024462203830028228825499950641089101064790766931546631775545508423130709948714064681721721775507732839712397833007134657216886721227618037589001331006251314108745224310229934805775209662911519254075306820231920843157710428305460824715052411333400633316222401302955676839012712827039092710256703926489735431692505537063963842545542557976792907249076262608101296335354265769953451904673537661910090643122969233871649157854725505143279402802754955924692666998513750036049742836345010495143654774055013778327787041579566988663256001275679512931440403900345038484452124639763908620200914734119741313699351759813053829190347586630347350666109729677066415982506899764160366624182810348731485803317501320846525877699105455352359819068213927303076338330319592603489898528577152545670399087150006001091416600326662537489448748545660846347763087242559962545869428380228492990337863353191666603909758171083280260365235862424292191811039279971576378483378152082916564380438388979375528807518818998109946022668086433686379513749280478106609054318856172350885301456778188957164534229048173164478783473854527242520721137493729273334218994523670630683833087373452565429378843781119181620425491940007999900131831377717427468373296995705592460954233958933488586345502533614574538671326166694832000790785706680433890632108607268384451201104671654491485524833986867390171427981931364591641897573434801352525013344989701456086560350660058560490446444209231816672232417146420102953866598219544893719599111609819653003961520813518513519358921242147868076153332686002000263119482810394661443914521947322622002931632324241168525704928000664315438665350521317979085006493713993324372611994966242313894177679640000439083434551591363477502607490716005937580509574957281709786018896572869480931685142730713544874589386411591399969622524032710525620395417218183323249226586980180744025182128355005169423162916726350398748717169854009628524781197553734052485184320057098806749805305337925954738187204249936897829161583804121190530010026607225595703317508884050985850192854312905058604183606859177216946769190151372698833292318468991583789626095898079951752879239848064972524428967802339204111605732133091424832787284609269869236931222496954066831106844736118046657138810526512084184149050966830117593568658165275773917606822331178159631650444219259217361511125769719244435603442237193513712276271592796961684204740917621410102325603480114273323867329146091879038691892738539702095260521587540216790109053207451175401857286176130532974024552677543402478256166092155742581800206402842395976191679666682113822885671331241123129293455695998293551828522477234525489850455694806987394257561338438291244435109632129445939770663333722234155421449251425847021274678400635208521949613919127667034071835519211930582444721812901561801488571351538689888065892735247359030503852756237389565095912476013189460004348201191000805211982138238485794054967929608711605870574570392565180383344259981135641638102713016970710545944591813173055766586841367037440637916953825816098497323396870125636509082348977120147394849930391793088118352397337044210507006037154634887247500389933345655128093909293593904116513892711461347044093723358774162761815410015050246957800563908657708126875426127913083045302393872204923846437829329394798850003321750948037370893745824045304797246478155296107610692673930611153079323911233333987462197527566460667748227934928229355412111793402179830677052863669391398660627933622859994693462345744393299573393811424615166701086560687065704942277543278662088855537026790483906604826488579141449974796482779426645828740181231636357691375296224186205556690434943011852870678103187581559084721674436881733221238432385006379485874111270612204678240446624611612638838750150793072096234784119117708394419787832287971239233040783519993837063533602792344843750078752830522914680055262413417231299191877171191017930162684051790944061340068277694223352232276576877229487568362553784914310029472865485814964627418934530519188871435209321689412541874541859188008217956706058142746799863913151142853477192334832937783958765126558546385932344850212798450374332909092635032013721464196891627105504694214945748426653645299927034672394870390519250750403244444823030612586242494339374836603313146002265772280339277521955722088162196118535577616053192785792127470113803190655920963155864751901235826152169526569029041328143461281021422088334065242013146393291225628291084724903561723807097340932944526561735930964666166740651142302568214481442034808300517158666811391260760769953950168438079585447952120277175533551764886243107762037869129648477361039387040383481102844351335079132350770640068536133869950653862981957467440831967031926407155439720172627878211402038375739251790447848197044633631521527221943301694932586631767207593276512481828180086847560303111124786162736008691101527672023302000370364237857040727641247763704486097182933317996864244148327549905574532563520219114489931702732340975953098029075100386698579208027357281852458409534666305288971563189215331768549742156734598126351725452512364988780192338453387901214674869905629394072205199855407326167815857679691254256038613067597767070476887212742028596396056505997180236103894281371694491364975436057029506213614308536348606191884914381451062952287922750681083125710317561237798824860500506952241404063634706240512530663542718821120945644052618036513308332012683389450453813407678976171326303373324068130311283253627734476742847344407792740018928762784525306892725498365608842707102398447174202688400212362984112146488256255797181973866706864083032192047050616084326472717171153959274342536821781589213204127482047089418030940593233314063502707552659039246095715506553753914835108154139113308120471532220622748728051874005595394119339971167798775707066171381679087854954478445751123664926073161900656474474371335544381534180245708646542887730785483719427705911518367014688644384448986471260875195511280529722434005117280578839450235442759922170238191029041524244686413287050868100408356154300818512400103099875708419838184699026082868317435510746355211813266297935634022252423154410819445386368612798141485429271094426521837761095603313475266159317164951730653004846413629137762616830069880443783549057909087540117111312187960852594800832220994053357216769886285292209846151202919509914840142342683692933422419919738184744660292727422197358895926039392380866361283106315901987408997610171863915477339802708637640593050448469186366261404847533577278563434589208397254531755240139544111893652545139617269533110627036415876266950191397421210894000027062843785512291014312269457945127156820067437350960806947629319440392122520046136777832803053657170266241639930323992249642178654683661424868799746021715234562902269915795717278936706801534108653008696474063156579004622210058058727468100694682235926389689365765172623367059673439139778014644882877777536241981622192708089789253356387471199296685773138981345011664570602408884405441658989870980898485886222350115614728906855466731507198325843191290597929918823309055714354298809869548152924586289457194890722672575697538754442796713374531328351341957629017168746249257435496802032783109046037508482854419681282573386659761722910532875096005846415008293188359615997350343438441339205300781342330736686050631570365913681601674886092433505060690639041744036857360812930016887376540864062098719676275429750726517258585231626036899845448967428151142618361861043855615273860015698763371545709742912011627176551291794982670272995354593457837960559582778305398130688396173718565578508979986574623003786220560968596921326348280353445723312318854747774721350088776222362737725569915514412712364444592633885053568441475335049048612267271912236763128342512362967283170881708670720900961909012566780877787516000567278595858448329075627856242529322758248592345727327529017687748815774979226273065105981072844316971077670580339350280064992355545238318558569713169930115692094873059179529089713170155462719664292150274122966088841548875187474836246252053819335743313698847025571854044135293325052532835357885143610892551464940955130312999013045231858583651179196192417807598063755254891846012040061776990622051511305450733654541302883468060152151631015640810237307247120939764607091441193117985754441828559447649254043697503862967767686610315289525693541875870076314916061788421683148000811324615807005929853284020573670769738044125347363122104082367073302591360605733723301511666587928044847615776257145226935667129946916052244083669522209630597933935584121065149244437999802252373849574914912242636943184164215748831275115760797522679978839495977114257216068390196550724708243169271396845665081464355221237636443167937843467395273576788588454413456401624237493275598541249354389532682459694701093341576975270076577264072079711445719973803915168828073990678937368048076587491827914262087665011929485420262248042597937705799889342329125655731822802033954455670349310260546973761675939373338717523158976773867708583056155235474509469478773234141539781293703295447658304637184811922628131267309622477319572673603438150053827292663782550754001411959925382863711790144912492895858507312351228145642364450538109818395114681737646192143615977208659146206571522007204408193090746530055519575774850508850058810580157272535024844774205522019446579375198520138051470370333182455796490372532108520736469097766107636717578570443590208935038504067765131843335752780292732368682161362339062882521253409529185341252611522307357880932719844497360896249672582672099447526130730461257425584876737253918861787019221431576860854675927301545800792743356631390025536806920890443261189724704974187407925633531236228134015983925049281835943841168338531648024484355839535972055469233154336447469788484370124566595118269743894394424637541949607279250423380892131268395014976474603472392826389528093467909784506961440356482603155752663011869388200931516318504408309825539219439568325563727379023717681487456077167875911945349978006862855630081573199508672021805005149644626131544375717872547570329523549039114627629667203387188792944456889406931039254621953902587956689590568079625403113396991266479840676772017054391406622654777235723438323983650296848034773199589455082377916088154093885642232118839375993469903299078430562333347658313899660101034920011722495691664637390090577329712484784102003319688074868908724123773450486153234354724109709084839179872851867374621230020998357923359339586464487366654769783794581130975035713726582961910648061350039090963140781266473053477766022266487243398253965041756254928227442807680347674988029878244680375939541394418655575440270316592108435210665479872584322313159916510851810779757377327291668558718918807326412798127698068077433506326043562856513813472658126236721024504579276129435214553097955358327969274266747708303417700726628886172752381757583804146827130333151018215301277640691990254740292907774396552501923827468331251644886262157928748782808393748800234755166377082976962783504745282841961555296238994894296254005537062463763009911828611851898222676178431634016086059812473610957557018853365527013545517464579531357909690762920660732538430016921289967229543749349025700796647923760340728834514177496257797752886945834648492328558418612360601295160342516157445508377763998125378722650043421677929507919179344687650900779933953921473595405159719960243184995105524108678347981501064566583752683308707545079383919063657475114132421916998645401095618328283663954455380481696593880189710863793763665108456336542950631648601379878224292495254728754992181578532805918864021473859451845899548035755756967478489946124007185766086423538568721878231446168173526918138808602337247205782780279230654133539213150819903249851448054665146374997371402972653991700961166654554845420671540120878089764493170271836971037660313756541964384731646176857971269815836298169592719149641391474331702929717442921813602661572344923156382165293588274204107336129865680309678627882365755797885782420586431764591072798147519519086293732499736499325257058818660145290102438078785887075213250149335803704530326434931790960012872193199812884272317541316011243623431053625010281625934165654921419679233772983529241574738227302640217747978699413851523564509735022567777487418444635436577678297573177044172397792122604581498826048783625924759649667169700732881739670246934359888139359663505082577625542018348275382241367776817836576280423000640397496289619539906411701429658955040670663275614336658674861190004578097033949891102916927675636904781792594484465516062830845556593830668026217226481493314406549583574919283881128226223932950257199023472917036609952689705690878665473812079420306611574605934218021161943161374690617575425310667841467452661727048823405097342778646052208384020496169765500125207196175386600020776745803723375447343531154490504396839174427734599129321898345228090348026077769461252408703395387115582845618934678279963236788947606509100699639966570623667146635318227468096739995943217895798441816070789078845986911326615420652725696133994029072302242180240597857265655054314782654188040337208064997179052683904255200346506714688474204983946165345808341680030826443341899491360759005444522894147180067939054046532647809156702495959859699265389906868959204960679497881203874303604659156713403868347304395935048898253425295535348561043639500124370233757296562633205038026965314871998399370040593097299773857129794612801185983094095430343129262015046565826222651896225283812056122333486936224483517609521533292289196833792477474078992346018280342212874566095978405742268335627176171277304047728967843179366444732747281274978626170972706674688953669824759429800172916297672647299438875119923228454082624482784254160090211365872555214052965223400365174589565460683108451845644665751310425646526374372575698379624665478672879663759527405997422460601202964859287532443840895008790421012955442579951390741084353504456943336793907163107066266724645013570339369337199164119881145224821650472417111049491477949172229562500057113381440470522211332618447859924591311686075286803895233797816389213651663182442682749449291253246908941535289337321726480172900308165478641870643995257009132991553076405752698457530003153520695817775387778640622463246330518767745601899477850987613693948946450317346763843890169774723737049999780244648560390790076247917000038778939418992207433046448496481077618916016891598624236665736502143974624499355875756858123750798335335567075211206588426491180183670521924625826885804550952574276407523169577249241587054635333360952574661802627242421503578363771520285696073275553160339849210695614340109684539927363432124719471299972204947617311833878048091029141838659308689337352686122926409933142387317404610768802137279471098972760118697195588648827203101634115719374922630907468844982000129222457139679213680369595239944259157197411777593098553790159853245019026820208614178057152607555910536839922405754742839957339795824290603802959681682392280891487798580189075060578506020072574177612909665611265427486308041691975236545986904773953542090758283528783568562644648274271695110614184284449341421569710955396571050461533008805746407369836151904725766792999345862145688833609541228648920508574830851508683089892717647236063106570193557451207697596993227936296657790479841466302728883074330370865484256027843464919955176296641600166886951626172449447225018279954100912702273869309340710447192810126906807788194749671822505709490553803298737263073393616006118666626265359216704677619974528335319290566978335368187545082759292059818929599976178490122205561395977675112616858014066758407505314432248640064297723351354952120051266158378635663823244587763338717288794102802840723382488006849474184215645824769629287712924139306867479741737003626629105409838755023375326622196175380530820074214423156247267761999765765099337583008982358329518892131019793228717268482741615721799102636271876974143967651479653316943387136612858651589029660501833893322433725557051583939251279846049302044756908147241107779557357914518133460202314091022976633257994932516969182364631111841485917328784563845290426756275103740714211024974633766740098500870190587177866257797180853517341611889482428646966965966249709084437401949031552329112050560572727166633792843686516337490636035317944545065171821753671112090054789897833079180937279551657942359633340397586825648813393363932805081867522420850544998080744467805006246817670074768139344319906142592736687269044666964146824159496942904982161898453218481984169572409160503055567103454588338246726654771112186763277246272303573814500881235158232892967845201395559253546190237535440373955895904882380364260699294038428677796159925484712867634034521038742153430068832127182057623933144708314387858579317906513514601082054845866723922001392889673544376873294722218370795640292753745597215706033900855850702857136461988771736676896004402977915187924653324682383374286530155408199086162386794976314010147580864394550459017322218219427605838739293273365326899797219799756401250483479843037039532679579565333062585412467394539497239310293246766815823187216732513325017092849883905684587196075154956310332171317332690790565556481135919142717648824789709334613377815794775301501892055358002740307991356821837460345170646700553298653680893120443149730504919453516413687078408490955788034063271429023412590251507264122041523517502404865933310271472531744381334888697351870173135134657852317268439753116990576126328755512395360058476895085358156607498682227604206919128561382658945492782323411835955685388412373944082963133520876260486017463206481092672425213945663391521290849574181031619671231497045081613551297845026201224804675105308365419310891207945946825223946826675991552470457536614522840558226519092198299728962732646116144980674620383629451584406412386208731143779299534489168171681934817529471565764286755203992395887266194194935526979162169964736937694496226928647247279031205565283113559578832202499015724947289194142053634020174135839910456944234198658754302318082330876565202391828118225624017105113095329757414847908752009255305780419688155290296924624711985813440110822864351447603323343326622991015911864654949177085602575674303023756712850761578852926251573290050072030828396980314622586390361561315294974523444584879660014124952007581172825386375248105263520275564886542784235151317604486567403604346726118819312631719849205237585150345682974517441126090240810258953302767744080648406280189732280030839710316173839009068851951367443795403155316009560939125369053448733131785234902462255802402111587098473749856033313476077898265381690443659029460175654252403944325253396181616558083929422180239703300578932184999525271999254655156275614902969494774922225007053953397914103239434985883054006527494803406123544525955914635946222556998001373403877517566673004892447485569472209695559129687109634894039409884433211165028951774906745892838482025053602961684720964660244196874066454656329864908562281246133889258188895696378371640822429417193455156332676935187688867131356647135263831685163037318520004853936769934407676986503118868441512874302093763730115192647892630077066826622068180924906156239416366150513444305643251261614353541481855828868159444530865996952936218144578791058693539815267624831673797978641031663500814195248130513404141933840662580240451965865965572417113545404307386884406702041324075472683672955673395809044951609058370184167791739205301157985614468397743239174283147957811749765489317915871711500940121334919505574982905819950924866248060383102043981886815491691057302367203171469052663466454392031588342164911544764218945821556536296144292409057181663500553505409358208075422749729269877780184928500314355659186638848434993532762986633358432860994483240233271759521379433922688864951235390283259667107398641099285158500441959092351678983800764342495479941238996933763552775319066052472888407316538544983202889797202060987740715687261224073265992697931857150257390389277635796384875269572793843471961379099159370462689673793637542042577244547790857269291286702793339364357401584585353080414780906203439670116685437215288993313669669512116053104533447023244477524769633271952115130855758894380080393876107741622904308515791605068779827658081187776311422781521365970017070122021158229726765318869235421435326872404532197481296442837559678902403135788658874011965475573759915010934455097910717774957179747147251135952386068393227898947735174264339747308831505892778398150741087084769050965252467846666471297118381209346140620922878170118872437435516834438648435719342483048670630731210783475137099650430291299248210872428972124645028947964082800709064775837097406717724968254671899248172967898577069268418434103478600551752195254456754251875369076406337358680215759240752635341559069132522080653758384062771444802531772305017005484566699565266337024951328610352929531080139450279727740851582363476891253845998529295099340756163738565393549374998585839158430832267526789287342907724612621546270447569872389178824060625745325311074783400899541064539894974655435716851591288434518937532793278573826642697664086436018215262176017400240554731437713598108092258902669161411046216889391748744850069257336286550572101654961459275389350197753381214651278585955040395784497922881925622743772917335012146635142430674575745104259440980279849102620211822794653597998175723292979634442343446511128248207015364624814761222570103841933904288951686969910607070573805034848492550279028885709426627840882567643480636587045208601987269603364710692898585663892629797663468399668917925182836083363839702886674932536628410245605893888557701986649499208637845712746263939615684794152767369436952112786907745458167184974872325101243777047140374827496178914127291188489189075005331030964971526465338118209431647940778045933830177431697887453905482439922883944026984863548409780593295545071613775003848303036380999998513802248681090678014540617030074027354881769987917478826389029179987654860331838367949204365975668528825931543145917359188402654896431255628062161104184938704920150627687754038286010376238621842793878162924719545275948655997828190441611981014988999556444615848786061140663556908938544219341169593686068779325584031721132797812291507752405931100723125153848209351743296784161634901746825259939563315329168005683470379168653905835570299712295500158794417571143303012348557587552953236224099212083057911838204370505327396645665123686379171127016458607173195032949922261114388708613489842865015139894571664647995213550325423719071424758086296037994227245342822804288923557233342741021358766827086672342275148110734699190847376773575419805562119048233384987094743155185948214687781995899192225019022872700588295928422369400097356842355853164915168290456336614499197499637220581945884282970001292253709490573694956344325852693775775832444504254093834181217499385018442105415864573045698162931342467615079428908559296151514375001520990310920749697198709379358907892480524150956588445872428163116992409710930943277529106103704180763004084983695506169717663313133053568201183422173974969069596733597519939790043248981821213392412946533241761686583594295363280778563258868696114606668326161094776013549877058773576556221730344923626845175386478297922501460325366221852352883496506489214423517448535743601563597706906025984958921572624418657446290239964474174350914069544779801785035687691507570659117316492602563462588892711025322317814254194993235334288532179098135063031648746372044238898711594590801616690165501608305349563860229648206452769714396051436995386924093597738255095386141840708546334053613652169585517689959733399146796202600204724364787818652541498358980295642093970700992684700047676142557241174219135981329990849615730223557101159147054712149523399731218191828295795189275598307992467255735612730819055787108316325803192521955527630596771149007523017282985031689581367604054738200001654907595525451384688456314718067712893841360495932117254596223522357071939758476036155725176646954047752140810620693649642234539062258370934698417615487250858263053311032137129812049302950253300081385820808976489515120147553655957766039351544380890504714968189596693640176047209332253308028007219039574998730793395420661455543449078557514743963363538743351704563376467016508500459145181225235818879453920328470037880833383612223202584350043245115733274841372574306853898336325682337779945094275049124033211396593818114257360524527665561148290525852377205959375879332434952536031952887485028304868338580320012215914764194681252078468652408294264407426625369839411443653784395244327363249905332435199193537897095944243717906084365572382919539901238636550775745200774543194068953367049797418642034829874660133206270697771712157447011126689864744438185959583843638745719118844095260128026856028956121956375609224978215734751292671163967671811862734745893914422432631585131477014022130069429109346045671114989541813853114621073286249607885750795584499349062864284800001048820616818331975129581564249780494638460587781486941204927420894506908665788994998734539634950296466429598668645440979586820129045575825947803683877987747736885158238201744010021174506699619466855710377418368286773578800706566098495468102900637781918220661354423820182420905937515150826014719413286627632697718096806284815908025399582702072236751035363935803816132195757550691622790977630039586174549589691405241630656129353544098688531837261886553697700632440868625672418848292063445197553381644303200496453990583954398407676413668240548502448422846321671024928795032460104645630973462538018387556640066013525493088828061760180688249836657477302606481887270742932760304165170393750373380586282223325222829797641096295304686353179036135670100869496835817033938451280325112969501760926455667894302234894281125472638294668053603834829351392062282844679764549850215951414003604488468354181132756260705930890045895041537608989864769898112464499891624118054647788283090273349716231670746472990669199020417724531505533485181873775499519698469039837577836000178804547866297406265052227551218959928711931180951121008861691653374486265837548341178576455598380077898303514563096260150447705457371699799859593949771339687860038442910491851455254363573686821577247456174901171430420373103950135228886200387717924640079090982569722295674277202496605650613496220153678025531050677751422635517004879969009083021456431143258630636374208732275256358955380827874974094205933463889762589765638682803747394153617867336298394710604828477074410021626169113294540888785550025929430463937397435455024187978686558351612606895013550851396437937293959256151651000684256412063226372648225403124587165973179996214170993790225924931450268637300321919031292334804618456277181126758909252301099092984988100023427144387187292705114868259331670651124687092035482281311083492226567000239033832196995317626064137649973779711317345637603531995912139201559633005820411596286922120959343595597697388619242681955856470640154892080642055083520016971537529576814851418957813453744294124745710119979146435983282145078236310442740974242694678677812890045081280379451492033116358691477697708663511246174714926168403602243533234952621552002120804098626733841676245814485931049066127515178977115535649474026623533406614964798862887481862328564907267682014646649719053452168188612934219543724574550694701591442596774606266487569130229430243848557166560726290032121466439998836156138022131640458341412474658240433301291345672557110295932666889305623264271801637709066774028502680435619777500468113276831559808516038497190275887818326901329346278719078395523430179646450219060022031188904375111514381673881224825983661510365277280094845562245072537835125304813360464926222890574537692726920320557093388407755247562455905583344755255923312158319253955125569890972878007242675826723116138406971486250726722065439726818716771998489603207559952637760041919119093571883003672574891622008832653979125385801149828324579333147372188673512123111417421413079048928860192173760308159536656234871639913972775442782478574909579557536017990694243874860033449629931474492057394280324681135205590602856152510574564960251857700775856917876954530609126575541660552198751507948843453402459654634614089225835191604008541671409149595821329248177430134933351030210477260161337649314511987278429123671888425533218610622855630068001970841987014925910268786895462458033738796073228967708161151084684361454259111772162740426811817871637698704241279940408159532891433773441068066679208288742184219749716744831674065558657685213937513967295417620561353840457859919159228639709955421982861414989676149928049584494583606314613771195898290701836149097167503614570309182784073278974741878202166717936159701245755249547545559571096959020540881076820995278548218500659085401154326098534234178141919252880561762706963600770944039631311206206162256764218409971177825614545775511835760337792420470757758973334201405334531377304935487507585106144172854809787126989130203258987944295377894452098467831065559868279536627941082369145310126338514815630085178340848484791252582142579637749044309342958940783114566018806761573125296541197530669456310723943009349154773751672775099029355000561408873647745875701820680856604450632124181675929711689248181052799668209769926092074367093236470294198021348325960288455221897650299696576019226245190799974802776136558171829124014590324296601405069724785375143148515904829035825588840005403560362902291808025386103271950735650112409704267532343810430764015510216161798975698563791351381283406611431176052944406063197846720309849244731174735357808630493267735454689783880227496711571804713056152830216492887562098302517170122317857009911210032137952510863023054930251848830009451908588894261602961171742625436286331031931581698986754473462516752902143091816652654455945165142259855093083113121416461307297431952143487506374208597348867836831913671040585020872750847876158750091596776946060640237311435294954360348705208487648988348264286775382107594564693044496463626846224048968878285214016842622190848574679303765521467828514468467572600262098871253870366476685588816472653952512282732096750853186075769712833407147530750973100459066863162651814559312240625230958550952001678706200619204015352518728093881725856754301494266037042482489503039831980258879928206646810827893225953129576655426253668664506998231872972206669531863178968859368743371877982883257203910569478419106310583602449962811373251255309750944142190180251460648213002303103987465639210571925191339716339753573588593825489765737716333727708247186445591306098127315526487836349278841547756404913021688699038257652399763143383701135557321434650165647538172244513846622002731736948660332785342958502118630120007518564921397944896162540477943742468003852795907331884420151831408417173208103298149541625704851719301316292539048029131341934028387825824115333410201121470424560378380805091251296475347078654532933085140770661939539564892783401776926084967673471217570465300013282106967531592836936638624128309510421133039517254912097805185664084889849145003943360226483995437257305816773606773367286990817527746167539810732416256938476131877334119376530304454006298735135925796227675069507272043756676239326223070828069279972828062150421553856523869027685568227672369747868568330851732416658895331109175484074658017110540475342887932550706774553235212426158861522659760292708169735493913539929199782527008094233423743458570133294041907819073114416831350289010926661270476774852680930305496485309712175872398851946741067353211663943196532533992195680445496066070170026575046728400209680370380809215164455512812578211925497484631119252311686583053215770374358170034236453701617326708319711719698335757939672382564025698795922125899205478857229057369553728402094045260917841690173468784823766332675900838315221397757946638230960601158679498028290297831741284919595515948531039243463014107663968545544534098557387407437967071681153247885224103544029917640279056118679661987116468472131796125824286405171299135658931389327918959938350613962508069810981427579003979153612268345867714187339679453102976935306486092463188616223625292085050788695761107117166325301341013224006695503220354030859387106577309189811552443041103284849611218789426629990602377871186567923370593504940611490559546870976341388772282491821655225861555581963068404089250094435255797052765243322944509816709263909694503970390460841721177171632782390801429703598496515534119385951664716407933147661666375392421418574272286590116306690910901426195766670514065940084741197747432587777151360343368131104914983955498264363378651742971614713812156867154408259724563671308453308034986243558414193241846064489095003836300084874789641360337421825047217110223495006435958296931369012329920488467738125723795256167483619379937059977211974819701836360652027901072596852419465067723370572551345576356945857247058857960931998574845813882091145028999989439501079321421995618453858922983832753870512744273212531928334442952170963146575171247040261568590971261706277856082161899938321160955041464619019149921030181831208000453786924193558009836996298751351223630163197480506499166510303464986831943738890599381723274244226646229054359285199891138419373978581823542912327948156271988311599017409487770283245201972955174960839834270108266021832984285940926777976066784141147429042875116719116139572597711028300834754711375969183534715510489870196673259835773452555925636609889338054299638212336141248636954250281970769139625645952100458781522632619603836857633573747069272550839065432681236422159352270329639516693703681011377713972330639271918978123063493547746015797811731740113813979663872463012400038277547197605803952065471975248620326951516727147599161045959658855896775094124002826100976669422588726185573020002349242692292543981301418876927561733326524988355890217182783332438344784843226614363816406494323475586911334808535389736034500533644265215142202933790295420311797856223410135233553804243076211959903877768224344176556566804026333413608858924223199313496562191368804332487410304718260488171053244065513735309295881566874991191597998610136971732109047153096203608106628351335873527059769555221181243636566737556070999789372909775630784721014696352175946066524216373511497796111413882585327948815448288083095581690820872379100057781914828963804931896261278143157866064359810864727383389880511097197155507070061452674433700072325437114608774889855186512880205628288953585259067627206277415431824264992739213764383952906136457801086587884150261921839936631487835613637377007209490595983413417223552792773202241598474994693720519974711695481426918474703855384411690799532108284697132652304198883436062719583453374420345176006865362600323230698448495986764133050281856540265180446614728291148527729965835706705902620852229541833981099903511939183128513641431694639310891164565496836435179820129796386741697723850661975250368914829204309811746431154423515897808408756839002327621874447675461711233079628830556947652894710019484582677598011492925481508513204547643953307585044218661945732155182026299854478764186077338172945726649959588358706009077972015078489135869562590995997023205692292827680584072100596050384411163856812144473045212633803013206645092520033321699731535810218672817670154193805895969136180491501194725185202241028664837838232738663244389068024900592213493792258347141262463286814134077317572041764631667712516971359305978858480573902354347850046668799671099478136162432755424993845993797670897793475720053360978569681466880734225965109834185683237483802614080374806977537705111017073083987950014492067494607774152972845258417102783109801360301085227115984433878360263074547409504781429280661809285883211704177046332293853945920906972696715112974989369504051475600119421793817719847174136933077357039976239373117399625638277250394113943542635564569702924987021698446331768282853409020068033428438163970550029548890636710097205622882758693109339350748660511580911187167101732570201678000365519571793589136919701718069685727862210886529242705046610663440058191430539733169484294768360615901871067999320994373312378805443875379861241636529652729198792063302901973749391470190241527829828771475650364558644595877558711738486204970669651801706425067774468293971663196330557093672615775364356109883947283339636000942395626304937661997584980339562254000028282286288815270899121990213247855040494888396588796613989839997530696446340704681639959189525751675691971668840671728457425013890347304777426276276417748071089880918885126915108630402636669624196961845227387082337495740052099427617683200148556768238984295601116862780630536762382410777360572148349589700018668882890462760854112156740972570910191341879757886652552513252584915017713584184360228992484238299846433094659528453286968476019116439456472637835241695342762406304660189658295080713202503497771536163572617155340448304935301696835894522749763861734936582819019629214879327847888215098222564379625214735355913416278259891044175030461943575265430518384653573291495014994616749629025450776098611857013952681728469468987836933841397137656671325126213407533364911513162640231990650438510283333671700199091081646780360882275672319689059955300050070179886915316308430295930198653470451386281929359370532497964181912819094893006171099391346923336361987363704719659498845851605660566409141428493336830380728499914296925211574135568568618369645410528336998211286986467787461160409999985393205010477282290148973489941189431145550764943811813972152868458376193629534764251982031373642513891619367985241777833386757289175424077865233426391142612063816382239299900320486997930139864486048279483584413845775015652009029523795654938371286251900076535667573745200282084494333834935220046430192546254631345122561138319222460497301035504480867194300195783192193231042328860950425144417629958829973021488876645657187342209598060642728125010877543433970488309420892726168380615558302474106818316574896222898499922890915137448523661871042322550169671055839623553083348016796897910573550814073266492608819416437838009878770572150723907836165082407777788466440168990576554423774896318687142143870534445770912653936796544731041801821950303136591586862195981151960989266362025184555693439389342372065591495693936146898536320765652797110485213716839429580719985480459465298101792185228067622076291266870750591869233344784335081193974579371554343924069917342488308279138841653039191837470259742060786744720846315006829231728183650530881848412599975193549121948290975822067459771076511510798548665430571674634738417802744864931651226203144140555885254125895174645825722277890854064944224458113572835159987911759091822943465376180832052848237847860974444847124356078138235316843028349115918150771253598123856434359374988148802396029235693018159264462289109390476346829122882504673370333888313655770457580417824150807985559716813854579965250131836798276233198779028322893584766920266558699547258926591047772387175510162679565736665444893333481354256931949667170858281102885837196148966161573179084972928775492399060835086683386295935594311100342621529447159119786088229411647335547449768873227870360628935792942614897736450981873939765269818056129228001296486968233900079907863025724871126398513249327798170507541920118063719187796588824727765425240818228585318152908060932876876735906061082313970456015146946843659566955209368985372385086545025115561036951634667729312731238517329288921850266107970515788127234305117722695115440470233173327564743837876342782050856918372983179876519242417384399795657609398163879363381491313293535780455379038342613817581409295081364654387238314579404387523480598114141711638246629221491996361737170730772244345491540754917013402098593233131410718352669975616946404383013212962818957345026293553684952082993923735062969585852807678104620651832787785047090774026817971212377691700713431218681423485207466649021398735934608361731831171468538165248505953339014666609483107421374370469002701282832453821660749034064837009723275208260101401016785494636343363619665403426274053167204573658082180007675470090262111485814195163702731012410954759699695536703567390442365225412275367055056365350478342775885302735379482476056859578057198167460906780350570598807618993470950373423317838806514880058574223479404808676044396603819105768008423397400626034213599219031223021372291984471813779758878280312050722152538499482019506839676807525663815914433573198783021960458953496985871734769287898086304704173553561252950548891019336803123816975168348442095251060404854890539404242316919936511175318833544710452903420845286013503670012526239441204601068218119182612126869947673723156597538503704734106725172981235503141720708622729947814008655553027836985910550540019656774119510060984253612674239344891547900698518973227808567419726400304339107235973952578989353284425349850953650927517237749583727823502153913761470025134296047230214934218865167907239970698043910456324843719054352420128754421195736736236067569821849489728813696250801519017356695502254975196895738781134085751922757276069057639179704544943492417312125782718147774974235341280657893517122881090261784995750994541013774918537056010539949024912541559451556158684104330385750473229286974342399103442768996811848133747701556837216580598497875611717842983770455354328834388229616744437106385328820558192535274685280863277371455268027867943571034601409887023905552100853607033677844379526106477163131673436877077451119660476779774618301550606335209993559772698383299020945651814368653516092667820033296611125091605045412426109851580722766253737794858663977185060313372622172961677904239821549985848471670114160543206463372888994755658380053222644839324966986988164687755443909118911404262044736644903395240302984952285142428948787461316501564570840828990919525730854383034852734221274086557769641998614000941725424367732380664033796068123728418785684362783402252616021152488286669675712302171211514446696340283404842533922648055668922713964884903058909491124610394190311359587920687690442336809641150995794427114763498678341668213474167970523160978532600149241096200101907090287645204371547873778803607898402071390427427468940270316396950301040288351502667545031816369306087833867512344123835551624265201272099447199844485808709509191516139412166506634019646301407425167598389462678710331488485458210447456855200832847618102753632144128069961819826594599198201610052163435067938698073477592471374431244111736904925543458234241573640710123105252952268178572906451725000678246852010682093861269054229151259272009086080166594086026996875105637967003275572703743867712683507724812525637999223790045352937227016118026164371662089034909203032198359415061155656765646857550437911015130830942541988508307010359084610373224107504964705729959401579576100139030090564780251285545170702702104136754680029478382631731563917060865866879443570600280679061353332654690513175525534266820713701916918230201574336120867773531583451191054736290623031205930781771124174182516132337501407612586771720434852924452547737096478232383671279539153363073535868675624117387165606762800554987818335553342211077873928646007652401228805294624247412811636418891968972771471793589902976660144540598818212284852220372053235792980113679406970497378453974583815697060772715999644418618462863670236759174176446164729735270931656017442643094709541786786676691482141178989775401902421872938340564595062796448677480298339472541311728062970405349138801068035819726791146265664796620699114372331498956468988401272219340030449240475453249684668221515645358922963810706229797484508352069897149596597202887975257683646110459589162459606835483108338901263331334451730199605123350848834841504938837087170535982548417950812230124499613771560836953463972901673432518289517336346121005370583190440488776862963290545257459086868959344778717213767852310107319342573296804918897786621793538605802065293417237508976828802202203073441951745807630492610376349666633291883892445365415620693260731962036915756211374349167839183391931315760239341610919862978358694358849670474050396146373118791488856762888166342112210554125388650625734949267447746125397686550246462155947975856995891943112439308346561731282158095385043878686023321560161353282419892474623397057339436110849363098015903809905878882776474453721008572001806293637219651193515941557627736830450857085911479650002425997073968878738057483210455706801441751579269564746425276484674939456695315288984715291127179970584416271324936307992049495461171338046168008028259435829041149950923506938112167049820372982606499866639166938989908488348501216022092786644933984511718101780899458108778504743306242771002606835031855249212511576927667946236601154000389220369887206257674990341036801320733968177524885601401374478201135484393500624605266943361087279236925565923985181199632355938891760288909528383072084116483501479676649357826176198837854254307177359277699664546534271633166490688837815396659224871207025574503112812639950211432258032721934983608472893033397222649318367595730809788494970971504358235158469500669989715939359337103441761365532492823441261472778841379303829555085232255387174673820762140567807753638289878973383713057660816964861561236519655964084330439327187525110931095582235687572595677883666597415991868466366548362966105970468745588791906258858042668174232987078154518319865942269155554605325652672818058136512813831169052536287488828635747687447147502286626901382320500720790092481727657430891154696086316245857212714019177819504120784851544514979821971770174308591998644709918197836411409774409979302001716864492774099250891459606726787170994901591101225078379537302026796519623358169488169197619547974477656501582687682098633072756960126158325192508332648182654744341297903126932747968307636316525141287400675305040396676985647314708416789699042275115191817045288669369061403454570637151116795398836317027220055304020551175000388769857122540859038101705375489713077620633622616131256547465500321154852660768986716294590969189583536627473386157029328998254860414807338601003644962994295133246527543314849229547952952403617588085758443198775122126091391751788318241567121871748975632701725796021188557979267134055130365071404212914786156045804689211163719791423796695644820478271430142597288997801190606408978472288006805812035991486722176260926178648456042100871331050475023041621259816974403120255395845832595857936709531273866443334163091129803204290527832665813908318004169305320440853540356502564446662764640917607455599729117350297917166760523440429783724340212458535790750740338767067849944251031708098089905514786510587093607057060085606678217713832203478416230617095515190060065101434457669152751107292184212550057901559040546807123799965995849913068668605550056380560292500800230139241198994046219668301345830060735232252460299311452496865780734026026853603448192339094424726899020854614468479027748826779482396415023473584991255755619232176524086506032198243194146019990241167634430432478256531893976880626220640041932880203916021344260277491525601548563720301636862015714500218214988287844174097131839846903838652386199535858947306362462082366457761047413312455733205326669325926295567319926773890326105463701730221993654728256030374574829244951115541481480765950692460233560724876370214913372787244862152746067774835109873003184353548887137955410457388576129201720009801966171194493943393653443790677749140395000754356336488466846787583765567000641564119554006891304865260298883516647203312652197030778198686786921422863309916826289182676737888068647514072511134619174312244713148391175699519781903705697582230540973171564090528745298005823158942848261122212031081683599773600213712078005797611440070638018708606752751604193391072494212533866474115470751392280769334515622715529882489353892652968049927913838674179575502344165532065575895049418219916096910470464445658893071983700200279003244334573024475080350037977681367379948370166096035066991289951815765083514144009914756948885184455631734053834093265822542066554795757548463745825325529679404654439882124857723082146352026591903205580819760594672297864097558532066542645763077615190541863907212466088548010571727151339437635278621186833505867065155958378532246387003353100430768797802029176619400607849095518482776791064593666427657410133795463464816051496503677298812326038662121807406427432584852494044765859720169004657719926713253724702237730450559371525834494396079286080467058241669741337283092019042774115308611144783197330638962221185929757575863943019822441397365460858939259832436796999402467831404849705181043518626754153833420587660332753577535965856551685144591162005059745352961763904466047035727720456919800887329890460826917833024617719325392357297784619911601053722940281253171462603621212899702534604501234623329124827406960085484918893284366497296406308899116337740589401171990549558473523123110624703194000849821893736179278827599733277871101790455014316688928151243194046934459400635739798120446387117908710943710318667075913078071318184185184530797057619436708103664301856334827954735797572851583902747625943447851070682166327832743012495428399400715040643104241198354146729453232809597331920463139953902346529331307758183092329489156451641850423081842282675432812429631132415744135750550653443749402110271591727841947460928984113733085853140612952580255871769640984699125805329273866411781101454332595737818428813551259040246963555260606576893382752007697021069539293891091844698981324718006572320964635429826442893981804725076010693685762775755259354989307774816365940194676069814910163809614732883296926524262920812407979971116243342090601338591925415291596861564961923201244932865160795415639756919139632223952994119612168883774924060076585253574500799607436239966699199292730096552812002853022424444240143458762959372903173057155392047826492366949548127159385716039269075270291549887972154398766218642429612164052920833232828111140182674426412021564567838804579169535057884734056072983853859266661826115891174094189799195293289605505381781267163218992657630381097297557421751963293743138510100236098412484123072275179382756236916945188043910103817233837014602588452941243716682197289484648854259053167369763375593048694160156248020207235665790629494063590602460346924055574530099814730235830628176646200806417049978016157243182095537239054540417333407761621430224523205300980602699099883874527216478358642652832101375144500691976236493182139123082932426366526995419884256359240553973448510996038967319049895012238951766468313665201528565522355542254670891677193760432259668585573065053958657068782364539107607986448800548819130059022905744418093973481232190861920475141292764668215018344595356436780288336090642031082840507154956509199969030061061835087883244793252723645606125359497283288983479128193305269598021362534675065190706562915340944446539252943392183136348381845344004835266460671321953682430177505324531344075341339331096862271934496785392132762600484110659596505665353674938956023905804042290226658966480912797096072096401768522688496001012637942372714536306358793799373159106187651405707143505080676521758555457852273641274522860418471782203925191843634316344747315676590860020345868139835867215022472837206512686589627020854950481361769171999136604769318860983728076971174407475231297103332610765438768257966018744612491272470597925893645613922761171871925235946059019081684910298832520374961990263307756867894604286784199382939522569398234546397559769671274382075294275156008083444310274463267167368116918141983996341299303548726376988581124937643014580412333645054529469047915329512059633972337209608771362025038472315929455435717258508099478522328953554574258324222573999449485737809502081972972968940683172425167479956419945140998313920621444271441246595320526886835659000540020965733392490497068522463135439505535288991729777324441429011758710623843492646465032870872322832979116804235053326752317026689826215278836907120720903226978118915226068563167591868460766872342224125885102497861550134453679007681145587902408093810510697400987961165231977903938295074932598170849085394108064537196017477836705834982024394659074317866631510500232163822639402299567121959573174071290059078701584518540860798503998560488417733708923889243417022827018835571580574592192976109883643676878484158861195513213867353767799627133908503062278691158959273926928885876314584716527012893420486536261049914872376005325649156764620401534318549982196964362449010018557914730088150002101310585618076879949768508942853926059722478181440397342407864563221397183513600933994796890762522869234639274973267422692417542778359639712039195953666946357167190342343902820250942357353260934946463818670635302755303014911615146783310692417052658051039943764987604100090578499390095017492345580463202671270943490781410167844322152827437582055386984754642675497603116750098460415434361377588427853554481358378244608891545156805946369343078684946569412036152642471152890898296712335464540639084187573888269678695315133614521609732679426246731258483070696385726718963692306816096324816082433289400507316577893463959044497032145146804951536990538909669435636385593485446045835791199253674997851652501380307316392856510750318835346115588943744774629306372153934616311873663333961697148641619764012392616834261837613688643891023948783108869170500294966957170248171004280950031127455161264005301189291977186625107405828876797346289751755848278914526663521776277440455777902309303803862942913176234933439951669126035548077524515284708548869402063408610531965655085158006829873362510604172031870311080665725802122844568263277029198544711284272386840545793108148704041169556075669488069965325130156130398469363614758661849614911228370978399999540232343626678655029312134677979200885120755164933500418553075390686902621854424479557086854272286190179015288793313910596322285693887527237893245525933746832549914025922491494803225390951532419025689673185900246270256488329681964181044865420177311772280003336272754862823078616672126099959957838764714951815304751168309670328034656866093225166494519673675463141262816172250277845138262598405426003475666191239054653892114649238281738875530528275092600508215444438098246762356688937509440267251317454034650024000910855013067594987170532912011409670812383802855433642373483767731656167668028959892605012768189764561351850787391061433416367814105579444668637834106895749326999329769078576821230267363352132446967436669886641618627807631101468451237471234321037083926547071652043401520177940479660530880027736492296701387967240782893481544465545382705724597356955264496202669151287852377224618313293802801070014020040393221601386745177673081220215544576233530706809374269823772717768732792249716863220928488929648020617188762390024836754517153385077305350629355115876268348919254309179435335629839941618943941202875029877006303772898783737374229249764777853550348375856818248091072325230786689028547073992865555433389257111214789783382913469401415211351228975744887322922042980235786695671403407537599210149429978638352354570893989262969329332052697892047120105881152615554689980639306992512317957076916577683968599810694367658482617983924030527739403680279059414176019835064304374414840544894946612869899387065816100495971317381056090497893085824381384713286668908608632565886442614386650502060147036201173397660084626480553416977902467894415847545892015076771853879879074107680638583146746309854722219365122121699480819490540430392892399739746880936841121180929829143872740301229827484811178959284009359384121187232169592914144152955558176258366341499582310947708866061173195178150083780075693688843141092877604705270670315340534214556207268336611425976612586098002304585474635498274210904229339989857929837528183783943347952896432798049034615210771458063871852849896743951248063012858616139066760586903627668982700164375425476361309674140247556795867845650497510436271870353055425587655183101500164292748349212327738782067568047682242552458439882580810622699507328388403823541787370779572416262862730395215639030058045905467714256827544483288968363341289805000669032765746128710837966693599027458801817872646948348605322127575608577260841876522420640991658031883463260641129108880249219017219107711537389707419256568478274772336738351036199393047864447613973401810128701316152091444753521781560280000785459498822044940668966070081837164830774970868359481839288142783252516123978073694285551893022834367708008828018219335448960308119852488390949424865800764492035883588786319862097011372898417554711894329419499835868130584993484399414988705809831751461614875099030327208664938132932091038415213780394943429600568825151934468925085314403222428012348399276689710641527382312739603309379007900330891607794245560393446054075760782826626057635653693060001491974065605874433006661308250638584293975480819479963581367721978363759231837578419360387522342165668562255764328906656710451970323263377317631776808579238537482460856464711205764726450586547631987441977216189471614592707446503075687072972595010693085443749114163816067064461973775827775825921985809507420284317094184969009713844536106751207195674206544708967858507064201873834859208468875951520757035026116211163991582799384770864480886180599749905736090049104391692756474290917579622914625654627623716088329187293687058398116258213054067818645680434715705680948826392658374486779378887395460775078007123374192046970517769390154884946672064549827101014165678751363114404797318420378239179034454802291008550672442205099503340393416646131502440539498576921676572260760420280966008948099040078732370762141764052328840217793756116581114218261806956607559678496722254869798401660069697827724606332925128431928695554064113101909083864667821521813598378854062162842184070166116774105118838635603556515221800300877676220457119477382061737191793884412541660752151020330162435514158526965026483821599608676110337883949411755968746610803257316858549527453375770652633337874415289244111193237333942808247003461800844266266139128371205581563302467316316498825162840740592941719678759806009064441560338652579929485168920334113755588358403991850622489825781197634816363531292336538133972164178544012401923987018692772495599699137526627209625722351299183259203063515447099550423944151329158417155511899785769150945740529714648937766618239312028682765020264851037736795603058183992385226823816435029513201008150098535967706932975106511376042545856377200034716661506645524476364557527684404162179938532622992534647788264839349687328036062974311877541751192391014009168139688336962179109194363254177523599802354851715375117418423830894665154524285571405163672290585166586290844648404637756262521384806740812852289284066695785577852214223846977912607512423759436190214284766279397319133217321160975508996783599373557213081977852485504191013783281269915134274103807346501604016963638244776474331362405399052579130337754718001567963284864851525055902257437334826875311984589331391562591504335165750456991285946183388341654585880680441147355419072167757099400625848222956962203990144309350769631308048103863865428413172416778401386544968122794005673890924907977879314689180469340279084438329899483841217307219463713350985736249073662600462419099672794149100854105678032048600134395596729098201216397391274687158135161398722147255096846045472627268621343771037853216776120570112461727257093275353399504458317614004776936794310308464745198239819577605835795356987151473060213509093322662839102757122888014294492016061034779109427977407937035981855502639127594079305803007878284595544529992853180652183037163965523259063109290298287746904030730129217517639309844300500013250031306501311810698556903362599264010465382237205743525202735443983829978617121276575498715393404805116509885243785433316066013251040167815320830454948858305377809318161222797618571501412035446955502964886920899354712722972721009947583789498001804286500057432347705847959676745019825039262011217822083481582500027561709015129168183887129006644022013044562227294908397841958598458510521681074964861279402281244242152024092740879481605396522456071841898198002213383193255100786438053990818790656774592004010572584551429122086011452770406232074398878360221492569983461618229938749055276046541058185332565450301704799944331303754333606397667745570118908596185107037716883076029188127503284221149115080836194484498893747424315241829595228676362355691957205471451697550910927641506829286449565966571600147274335310212446204746254082391884196653207638391582302844602325717523025765758171236699699062955939015800941577337501950528411994235589694996244337137088483350905075646466129114332705885481493050999233544793397601305653714496499329285059688985148225755581573422262204320193275210139215513891566218766519862950946977405325274455606560816345184323435380535149393611840621161376077163888845891937140871386242053473684815825785943613789106082439933017947303197922311506471536707906011817686135522227618755825563180273518197417283499896998029755500430378857662920678659406780726825417315380275285311608878966307158320106370629848314222511004705699713511792564624420393712578051283465107022771763187783060013709686725708763606922583193058741587081414852926576553859822030713723527034831467313371670060533343062427395485630009237398897234017258100550267328137978368332443596577513307193206915850471063487869043870538437807367478574034213101959803936302989827427154256409107323545370224895652703092086316222499759748945993503368367882459968982939093934029594680457232840343098267390166390034550117011358770942892501661806450533782111840627479585991413384242806553880201503231341366742784782613453358498974530417201916498914058759501124954385131568708410544626525996990719026744749703189132472974670080345713682311603130848724921796446879778442227208852085580570992098572654335384381367668460693461555086585289171260231838457680300786546027763764678485212328133271063746413407648477910846917502695336768569300669880787866681764551076287599552150019986445996993250433669686007799458947456862863694032114314540048946681103182655637769899111993630178817548213126052024235737321544561370309302788437808300897413941037224080311511529852522411041126209177561538395153630983450335989273666191076132314870445342256519175090721753237810915451867475743620329368395986249797788330068673185103711245895825800163904333213293120592718930001196024442585219884980129886758844478450006058120550443301224154459102999503735614188691580059381018667931017736028811432554606362790181119367189684483530347724696064513985823194934975007410951101162611430388993744857124159017201079296542623711722255716054368334058890671461303548079002779372732126308294003699228673560351732784460827762716194908846621940928973918101964579801051639453194444429001775999278003691831960117150605310313288170099903804201247537941112822102458986875410873166524379915616263141177332913368663211077669091524375166181493670202327009624926457293115879567669445564957982762313321662583991252619160491739659427609865724162435874499874777230423168120504467344490693351521068873611683974597138475940562897865655505338853100950391375224795918354267506061809818143722044697015540654651077372597544802861877046210143632475230731115738880221225107973805542205995488088198946072625528216132194799581987927663997196319144172312019721825780094913785690436938523136915822801607653307988095941639095897925964659208825604785970261212893035869102943274826679088244273469619873666380870365302766472013036504467597870842877733403664589393917689676023175287260140114314547521858463855557831144827082044852176156874786517420303598873024799012140347966119311747153653816660630527882066377852130532174725788513337244917039474687986064676560505550620303891830151773616512923298729520585703494162359749515795067797317352078208142279820658427966043726989017662108867879874279298016273406806542418012027496191848935493669299547315708774693367896048564863984381377185927708611741969742633691955540190251457903709893452779310568200512423709226626259293001987163579805800822304936380069518337993681886496507478400505499971938071055790504561636271251286897382593168643730786558488353627045364797713964212097756178881606040946026248196208391092291592749452838275807315168727559212741853008395050658180309371890840189941162537732478715342711315415152207524161146494695625688775801264654440436787658949308862229362778661785931320807598562463121460021941412441308394610589943356549559076422830404257058082894761232743731087336370717513220041847660528515701811882669813642815839893771437254774032809372215941193828249951524249591021048820081536555459537729344581709119958546531107964150052898744086308598833557020967385033912954565010749192954526870577755599332143497437800646753619882132138770646849174073157922304283680519665211113324425188022041220366832067811314836760334274898408267842392909372380399113599405567387183547148713818720581821228658067757121145415727969623211911177017111438668807281606634345717607611204039365008026865911038509539290004480671273328257343502835396578963047361042736954319395916852973184002209448892358060835962478300212605752851408344050194825383576013390621579353888050776057939408749400613054664702056120665656798448377403811673323623832231120066560058150153042378004916840646135642265292164854122763738513989038518895707982583608353645866121873846874352250557070447577392714816866116590229045387428109924186650384006008660380678969650563490687968750410464721308650332776253803985745358357384450530494419597688304014145511250853435005280771153677475466490466998100904804716906232730354525615904446655114740922944213741629831751416300948449347276056385713374640881260727977341962665499513902954541619643483481089349477098056600150161700834563508247096139242125104810255384558423400010171089773250620061396251476688107143073034155681865797884550380593760500320077697606184397750405060333333659681713634306382679081120527320642569531759315701904309954842887207981343668634947124904272140413385853462320883623711433141929187571000469343442844437040697402145125248717670218712270938613314859633255950783261788282554857162084231611438447243153445379859261561672628125669008921691422641165252109475648205355902332077827427428702575442155031103212627164267082644878366295505304717070566917451266924514899442167897368097085698485356397599494585320892816998083783131304635562970307087389557531200583717561991786083553097614506788838866319889709823614279040774338555711662631968794352732600680936397612513972596174688129602159649601371791968379019528490991024923772808439986756165899252501846898240352338752926443802430956596369188969392815631094017103241633389952947986709431572561585968716482702581555415427663942392743694911686345537893248951170082837625227061933140172841828199014060178745224665246851167954271504346447502966095322121718721919306321479791495508581566663247730218936035555254131541893700368676091861719909323302700715023924711528557825104609078214512706328817039786955139616372193518365185027111818624447642155316203103246444960370822002735951530566239233804169705438217446638000552998618684313113371558781793736883553732551328610877258283777078978354386769911616143389704805364408063828867553862825598688561253458715810952831530522777698491925294590959834770842937425568687849594797266455273342257504483015554342198438136966390823352990596355772560254504659451173267510697737414750803510281579840193923856945395677749387889999674162226115687489256432290204999656652331758949927919131039909627773983028062775013401304450147380988991038835218382896500101972699174165683335650105311240172262688684908255937039594162408016122766214297720520668845066041558297109244630425562558266984089982517380537430841643707175308583473353260720916843062925378304499223151563986833613964625225710196790961924200664664488497909842205962174071257468225297916483244942653386845344190867769466839957930314658622265712067109919674131691893549870517799052421639014657769678650703665118625316368841527810050049688719962118435813538703438501375275814710280663596101588088745536047094493900206768128557592897235402184661237758588432265239325113319531747230848499219602931762030844317004519587267229169744755302857229780554315399921951791778427428020730918839429503835241002245846085957503052682023738637093999478352871493956470156463439895880624192444839348265828246528435379273317601318022309016058329988802937239186437232900737295690178529899847563579009100349924841743568628032877782889882172491444259472491963179537879187049349176747907707107179828143233187841732474867557374662009452462659990963337921489261579040347326418173447905059274364585486017013654391652221035897968317132670252026500372463332895272500081184663661811323610080636924432939714864712511595336721539976495842572834503895329062052409855938661777246226134251573995584487137565342883378983987081771661171645773283895013057844550854169261342831448692648242007305654045429259432957182710555589725916250855838040032707024908902196488152388043539683051513141086835533836813627596714594370724788935124945483997101555239960505919942635963539442549171490815315530060699380149960297940700840004940775019606582400782115838888870262619797655577676010060652079432394232250680739065880918401489353618079996599902024215318652488814016025312093502379819186817513856461066533682034430567082437480436760400941023902415738250916805919118280743815368279160473085323857983498608504081413016131499024409745000179857817699588373430069578148896298214227427234384381622760628363220067927453430729681635546967292099300996876272743480722551116595249436741315073979567222906788420900351309279169259874819450159077466672718465803580982682351940127533807513665130764528782757271370930060839542920889693440650801346876433554399892456407604382743300214352003507594957786629875412785070649777113034267391972214003988112778948790347186900870282717124981483312731884501610333420465546642971881515422738936594607814657363807451879327021087891227338713181643955007959603673235173652347060105221975409564927301833703884745241290080399717899224059137308640658058180028582029296057234551464596187141838374306854941763961089031846993407399345535674326618628455219216149005070838393145960927987161341439106230114079404785998198024931022400665049254886619833514913882920321679104865217107913528775397945617244708425931232580876714363067490443880077160953652493679348108821635239184136638719671688528289861438089477721384336194664700923483980278549850844786940336742633889623036460930818197806838330326341283534323151859402505644086227223704263852016187516494847642014720669175593783408041336620626950328074339555560615714719824305941159008637835596305212166913864623373480030004106615755609651272493112654101107307962749518365363894631350710132334153715605051701002693966400325160465653872495356350183750715207583013485066752868840526734868262004177842186074364167463069201563375002013710831401958440393802280590898923841983737694795676252307264906530060902519537577507622387029242241182535965072367886844708206875321822695689211094451583276804015318949714504545717158185959912246022632406693955846822314498282729269305499539985174051571184322698900842621393831978222247654010492223737714874561500192504389186899169781542483572789373178924356814294086542744964840704231963428308256700549822014209450572191252775997819769534434149529305949923837497079173154679903623110467516689537866256668578198905313159862286141881313926421942217835471852342645534556110932441770181267449685339824297465749040658458728540670262732038222958575699118893325083117393594580474392729227143667208486421234474681098958827896669817365171034403180978675458766187759577092523234045323776230299678512875701436843034312833792414708601254767861104024614572310271544547180984187150675427348048482591928537085399376053649343777985497604067795805560636195400789533847187419164194933003458672217995634871133775096395975118347012909294923790432382945318101177804725472049689013096841155840619138017187986625327562608918199501618146916078590128951606552033443248735854628878262771314212381193008747063494543933052504838086792821443212455297388203889711049883184140653662998657220335614849913804428975684593177480772284438575067651006607605039632449558047178452600404206200754051450221992670763726949916111414109689825855613954677302556596882966730421173254714842526303066057680969078711740682435722887362787325140514110451703653886257946300831699391756962102736393321517388106994898329389932253674193924019455050993096205603451154972733032637936152271412605446751120294299747813433625171711959145417598701556326150799320484824726126882835883364784353640093182367503318117995216473956772829687892785566610543013732646124861435093649079216161752050901540025411995104243017151824306212971265024609166799392779278233636806470033825341549967670649927191154422388903714372167191555595192150952275042507135979671341840165600951455370762560871127853819232882630708777683415514268930658937496453404052255901810020715921482151781679605569494625246658229139003912822490503597504264648982910139487166633311203011843214155519579693018767647386286389653586794648382030792300553811528319776693512162219980837770765991156266417568982482261870041729802226308055000121268558651709785182026094784387874946589070022134405773073081546819346503924963090758611766659015182423415545013527954567128250995710734103135235885208728288404707503501550564782732230944720276416179052517856001525202449748811703299045392837041417084902716314594751696568210846052476407116375238285370817055969798221637972873120383226251339216494250160816764742043657415558821085757958860199963754541999292247045286511534284123643862965856585198380050207839030447389740403793714701782160741009680790263616599234873446414876746597800869622530193272978173329970619466726274310602169027774955830608265310141034390238277517503281510029622262026244551664812834271884208814497584901451667924497446437661189975908436154363098462401847228550514661461502283364285336908462097107571097517254756607332996921845517841779821133878384829494816472469656543519880193227967674681649544637974583539349082954054313156726504840452713997707878887334724418065952375343725951621450237770089155135973964355235880257879568058399565276226838212932794498205492717083354621811239199461486369335848711219264160090311547856290276153303952486013319701524131364415954243413592880885764996529198987515688547006451216365166201865069607543512675301525003190117065020820940128192089219799160066878896491790218238571484925962984233421799100692028901248720022722019084781946842933599411494902879040145301097841823699270772507416233583421254333353378557722136843174405951551914878029804399975857583408057775371540665474663712897595751129110388793566584446819072997933643544106768855940328477903793675416631978610921875820900169559005157844761042279494638487795458507279519561324709398568617323981921215044125328793927904332695500403888188054563761584444206693680298152023900642894960991554935624750701782201643546977877345039917201085995345940782433513802933346039328568224347689878523489628221728068797271180938961900866471416943752245262422648159140021917198857724228005350347156471762747933256027171932053597376356188731082877191236949958658833671248834355097027430293444982915472476503542213741847664171663616797763594598008534526038442807377982545451051275014573918190575524289620094193434689314121867026809990013535439455387720745917563107752525521527622799533053578191092116268368486874151990074888383595719728924795778832820819542098491720766490286379958559311963080780538766905986563845122929955009765531412415106173786253834894586375729841922210230119820950842819611472453167000356079667895948944863706676277421814265931654077745919649215978400532877085535469379158169121416668337161654441472610528086880621857392113751159067924667038746672228528337421216201958299105663448328561631114620369995156379210566785147173951698639699577821153745554927977601742465211662609835021296187976272598661088536987061939806397839435128666454507131190790358365375189057975659813790281471824927923042391643013126048926025073165481592047951469443650497073552227578438305873614662254280100861378329993674349120623758896658237219243427805500044057236430156737898682851214645457715229583557670597810000864475017052638872898744621046268559527893587625091581511391983404714925414386503856186463520024007560675269619028603601995760257726649994910689591956315000341592865848104526907498565279504836924704468374248648246589852088191339835807146765204937189171523533788864425514471396248900736561784729670696190808847426900659085876533495576942868790392492894830142253510972913639990642218233374816927776611954239005231121781914409259828359713575775615243510723378520966219877170110150637496836815999945948488624223226186151204199155107561906207104811965023178245987124321180793202170900563369698914136769859216714895859783937237487277200115388873466928189753430081098249375277760691117336704593431528333543283198639500503326519483860322134602897267217628718010803696631243909041329591996057799766565479877960824849162551928645895538339063683256458802403515507481070755632207586464532974132759643298308554710219038301649789286974316881502330986026056115267611806874082379245809644036221689864243124238338104700035144999056387483330566591330803391659688241092485979395754334137838465055815238721477467481449306630281853131760866286001982110103259450239598998223216143076984827208279861444428072114921431064775572376066260604095725766473929464555359589535069716702918950476339060993380894558372972422442111873139764370014767035398588765181192293555685420893351209976992504603341950936686040261877805382749582144899239945266035812057716374850724335547160471318940988005133625904791096095356316453616965105241960843172506389951332702952675303780141694807575883760431490347874977673641370930684700569208782231651238445151156801581490120050298483319499058318053321264765167817545953598150243284566988734052151124834413532375960226180333690944258291307495776209998087489714885784941619127560734262511758162566557792204682453042748429416427000271532733951185950633060983341207899258068603932389833594831978876086770896564056983051491505511183238082289057487232177295109458656848896290416496625965148408675928623211045672028515520683991135043421236592663588022300138031548826802252095018972555638531283920846814395134907184991278310737116732748549475533534292503195223509080956964898686840380763957078940730679540173762506702531348458220752409828636524919410658136210439732065845149780947477033788599705138773162674214717518137661009960552804128741067394247037658093478403971399742526825289011946843032186467717228883036619660803157366300302189183833906142122463277596135125145935656829883440578528015524954349454727449848956394603585277997485540972076593283086439827060151993815015310886831388413508355506329341072586183131065655485834869421806859883296113366173952819887412014259667198966410402238361294582688667754494872984209435711052521964901098363418236431638854683121283178652806868947048496227208871944840851814301145056998551031912554664822231755771033094628877465347898100247014151967415130170053664504181040883243450499062332505425849466269666616073243618720224757667420445747277405193252350768219251246113561976462110817272352754751365216992299905839761234564675797488125139609775952807565280105065308767916504079889987589977327687862381960251873730369136288772784468581209477310826222510263703051029797439013104664363848888282356511287303951899859380781217730058107139686058050151654937595916857443383174171259901195978934867872166333282295638949345913227802550081561637488963973850093975399005421399468354122751897285308073948460608025960682741033395698974019343870744723775793401114928426231177871491274776757081941767641206994173041372624258994455998230085603596955632000952608863172002380875503912219018072093016489411617948066977598227238046751295390840189606548675621263659404952492787447375839537916224677787916401674181808306646427272595187960064631726091412418837337491787537322033225938859815417363907744017662170351684467532264959601724251976264332576373656791804919238756410281406538724582418256174135614002540737483565993607338277142847708940453041192930299124443724790218340677024169730462277936135055180331475543852761322510153804779264684646251712534268511952702316939368695356630412886603588456608112932792089132097577875051203603045357317024681840054231585812364313513093150712606391149548773813372201235694245056465965159495586527503471496836878252745985538815047582043115018065628768607592338639976872200184264270223512886442957227636078694521449309720888319763512232927003869071505897995267092996025246122105336269496635071068775115509764668652251892254333011394999777503988877456079138622183491980900738932711777232266160656736532169591288602988777880712126181341648396732189560824858060646360245138038906418473615501433492808113242728102076706126662069514485269734666436340514106603966249788349231993929639964151394822023666543802206180851441909979675209973668104089871312240232858656418687624215838589070378453866808238639203148567024288907690709828936488167268956072003585702196233412031367067825039797371435544931990751227012332699879518862690186379660756016415541825343622095146086657678882332203123632270363584040536620420454198789058914318552293946539197576137884909370851506205234818509738970325156931601613644856067632427192868748418255177010091662979100874773384934321625932089740143538065873261136433883112862593251226706241525359492291518601188440909106607875835398258325672227981954969667863460648792033706039152001882008898435067634207621498406940984141191018360325417354500118611589979135209018588569511761373508132710570832733862476358562621334923309497185513473217973008547113996710700430239790987933784546605434583325380296892253027915951632881290397192271488619691623203555487183267343030775006188681245823471014176088245034980000287942192854729392534087261367862835892512025903022863226851567382335390006028584730273235498410333177191215261102583838427129800157506380825880757424525743320250597299961256932230391795444088695588194862323006323951227451368653666163693094939198717804766575144649891047061426609785989593275542750549827980679969726106886612944512251398097306171101358908128662389468556073049136611432689367741438199774369037342555960728416963964853569720118453118831129285586085199961199687433990857655542871548746823281700194855994934083214979332874337189163788641534623037424273299023104532715691870587555957724514952903011249247243761615727804162775021349156154157173798316014541494610179237616640471951502789225884210400459010531914068018013117305927635975242147719962693363233512044016741591762966499223646787391929478705847165782591045645809004570541136790710100663478136739411976044816015445321204794589504810071270272375462384471568864647641596469156369267509141673006304755376758886725978193550893441165436571886759099323840215481602926215707301444308543493478744995340942206599050215628233513619735428866607692021258730151891881699233316280094703991090787497050041188528940469393552861657997923449597050247943241271707512076904460904894859805543735795093306339540823240635676705523297483628627105322320394582295310916704523240842874191532576211587596464313586638386164606743884667147780468708698667294975387051435968055420291797753006784704788645761418377638215435764819803962397987344669830418478631503931300996237682211176049525574985717718186202329972226313949352426706402979692408556687748880309615760358437712634450347410031305394674204803592316123774895079027035266937256716905985428905357361332135214597797986499445251310493384917428096607037938583716934446022512966462570241133694108621010260490076917058024741284329642851071263309694345211722930718196801517869856519590090461314182933395893075480300235326506867216162064105324998842114198401536280569439153549687009142829059840006931957726504377250784313156884181674535276063054080107086276075479390088489021894143804397563604774711670971176343351537864767604786517436522591299098237069742579617004551561740566264233186203745090657907858309346683692179057382746498934955055750208444657200689975752145267096336042724589361257414811131009565027404357699783933420433592628065393513960502894131934963843841162588326309317322778734526532809931497647828609236973322306412071976802858921084593950255062245067658749454014347854762565317144541544360400953980320774742109616367034243708701825749169686848421748758344028914173355114422993042828606250904045479988285751574077433293941027907265801080250722438409937772162112334762776575333635244782678362782251394697720585874140148373013400752887075528319010440475499064796878478105154838365036318026177584595688805043489275364822567226612695375819986070311749553927144533092690188726324399875279157270226087313098012002480097696141081422714571121026621965234142642291967693583193482522814259303588516410630960640982312018988330400934250181367534815955858448673749230589239513218272341839961252115273579475718138813451231916960204680538670065023124305170629600655252858870134308408394772496227096739490109022925077777401801897367115268319056316835593498472079901897385421905773568438893371580285705865925181448333132907639934325273204926392398744877519954744875329956849870095879466518683607425995249615995855327760643217678328451689929534357760474522142150066155477455728560291731067851411587182476462110320127757615399126483750114804363887845026527465525032423946688659695042725750377305723409351188930702964920067063910619848630750420402511321170401233603582644802511668372529671152204481041142778359064584476550378322365661208913782697241801470611626300209875053696102090451964606806397132012791273132996234991946887265200396766258831987807256330030807272210617680871438201041587013709244278521815963524930528069115251812313853587648184766708107342062753576823041957781909306233116792069769319143063049804325583195394375698019797316063849791772609512178638230478354123238885495445895600311160733630448280989922102265664424034921226524410250048833186933759036702061103292748443431219575044661050270874680712344881405918723815685493020095430911667747127497888977620105452688592140703683022904067473442841855820229468442933079626686072554296769746566476872367896089054398750224256143728819492950314122781472593619345493487960526433731913005942034205361747898880252402095876030096327041760158832814064164538017753291595268680316559016077527789727341049739212697633431055731180068233912503587987350911288219286879281636732314776311476759754711359055926178371731792385103732405307302487529451273291884684285137336125915420332698245565958700634861856594768576664024954836601822198466786747066678011786841740685099060578809426905326926035219185176011176462895252181925201141292104228814600036599398143624936608057556864777003601904011651990511890017832107846980123820681032958257908224999266883641639811821698045710902314090641711230721617060293786688240862445050553872335117442790415455586478599878782673386490910216967003016400697144916233888371568300356419277898753051477812168316083966782610999209758775224979870031988023459940917700926971095726829798743908339782311600441216527959047381161056535857456753420904986382861841807751281381724483246789585121462651606701756034912606252123537658056819864016661814888543377332346870278593711173792712731504388805486521594901503409843995826969006694229343287170653864935479815899777414050081289260717245520104298626603820910799965342802786261422777791666226903642884101427275567696780395851209285020575490830793553698826241479773916441668015332551128628958579384567167230984981659503318378221168797530604698108316775079894110654145629450449999366751564039112345112062876569843595427950642664142547507835188035241195269004092375875176464652038686360050711377021955495029228908761817596423860907757246318408363370655427865945794656957795363151736463846494035844755781620083847626244568793073613541957806047408672657907584377781885080878850010540839127094331729302760305910304811430000893216883344158419319436059201711425147095973455872646160683782196873742085953309351444646554181748122723181385474120449014715003549198167180549273473689720778369170121929977205452071373379334041291076353673967752685923873567280170080298829623873378969869750708981241883679439577090038428936141275592697622352113647453901448016342540023079106506392548284772139464300532052212359406635357317121556832845019883665980670478533953507390716560803636508570828991922089330801064068445987389535515843750773554204599709088027804450065390554810346612594404906830178712959504077153537226117876031165412460860692437000614993478096520618353263031318997325918852805038977880400069236829218839310330068383363439055193514887149156676744592830774380078900510619493946684156440366567869629492817176287121762763989824466205754499363004496157875623825068798891347238726601280279198775563991301741099132506248360473526683770244244748613740123371072499744363302151409803386881263588325508405381554874670686695992811100361822327548653974282873156836331765056120364827072900208172457172914497089885278884843062396356901069630725872419864145074647233238613475382334838016111054416417740963031620885014109859315582204786861735712514239882255824301534907591743388013641498834011485139905810646964067743666608460202301155047551601942081125841948811474089071725294031998886402813420202908383768973080810939292354566408870135314128929622894346184864660373965068342957711940221049074236760000604193963348985996880294609960652688259333846472590810978226766707215521020384631573613372382171103396525348589163518652846093700255294306559535844864381801009919112571783631043533641350848190425161551859955555908000573224748873331194507112989707499291794848434960684036879641344617947309549653234258419473182036693872384960410858477144637483851145806300152052250645750502222566410442004389149960975646116925726462462543942242976834633178710934602547654805047886888318241186508581497235569241595305374515838127351939847684727414650472941914737000650751376333204854767479956333608894350179328264048583684142200808996226378135266162208930428932709664243122367556037133413456805989177391229624263344755397729365900735730516240884382885152957946655445198247360959240309939805983022324416182438544782219975845790871884582493702009726119035642020254171104846894920916737831587107957615251479906324939444968257692791929149855039320763160448373699785670012344318242063646231811900903946478978225094134914594800258644983073193935050621799551269244170232728246167543280829401393395137808633693261242101543315600971230053746302383215129430346201427184911106340933175933734844123342099240143677612903933717728524112409204905032727207620429991808675173851275626943205570934645395318870463878087610214013267526114216089773788543324709336044934155393724297755451153664292894539259068679992262496717446474013079781128128788253477703642649230594869339077187335632194230122097619271210762044976219158506867095312065962535233227400783412199854924402953634766301726072443422002137041703557830506694456985240312266414233788508115415602555802507265156222034687781036391297639977723828812189912924309505717353987578362236095950792350236037461198605872561064822617400236328058197079361488612688273769532881669209138408604906099674445608016181144662123049296113107946560084597721731443898675897463255801352440643943925808323121937606593781202002098355591010481910342643026764858777430124778221375695915127113685534776231088351988262269718975792528703894883718319313772084369786143275867521478027563901418162719948554380790827112820995150931238456518133116297990610701541324741472079985644053926925614699257638985737239878694008452852425901533541278002525265642451379372623815206625691877730829248721996383978375596361755873896058896299321558188840310572320463319707328884649313026369624682363044171175143702623349962237942198675802766302850478341446559813951971632882686324888953137921705477482623797818516445473927706419311566561229678552229050815833956642877771349271300560686921610444677785104404285328728222005619939651648597871925098090562313847955172431863779528592305739975538098635602110126752876467113134315338847388495961306701291909685578753544669747026047708415475949280474165013524621478992134437117850311508128954360387835397789936650479338369671615649783321636972106097911272103997844896423928937973881641071079346276287258939666980668460105051204802687564248820647059678691499350156080858109360517392350789385525628033398432094884219694568406125380052790795662741173886597637891935651788498662429007040570199445543180258607411578021076334368232359020029787238128565161747688817662192057217400027043370121044265911762059626673561098467554777519948232971585290977953567766370676384741628148594546335923530407420442527558291380255220149651651047353213873192966491183560304495900057614869721284447298312117215180065569127555725794016037199120676461676161741987720430463279933801182612794977130395430410702063604084584405965350969286671639845871201397836436134406452477494184221618519355080687398684944800915321165405640695483186721544649152843145877459132620710019398478991688369691916769102892772403654508572782288846640930669085719734618709103363059194933143746840692112224179224664455650315750597384225203554124811384278899961712700728655953127029594431012737653147467882292402800329955995319372002276604227766333722488440412427863603844341066563094026985772300455323037143030128544562056946621659871382772567350062400069569716776468624276872727786903474575313981026134501094517207389050120757034898584784617337209570397331560967915925110322988418717693213458869577473239919900213973899463429415181845604507142529627054431069486073019497908535216195795850400544427920432796175525914429148821086437661423442545993257428694320579613304083594466694793372449563287166985553790298096538338341548681379033150739229983742331123582392071976270128221735233441779985213673416624425411493265242364551148184951411748144686716739915205060050165902334911149589675983384635965533936995541392139679801630119443816544803244649165710650041654142073794675507370959838679301243963098869250958793209476542527731172136602468619931805553389694537795364539064148700451853348064451423079881271371024742782231088758581774037254828007584569035383282551053511460383952421074609634956634904023242178438179968255814280949151957414014441815259765703731544921182262806511576613980227608996319193355884559769054847029068320641490389874656168048747941651545806922632398611851227019942431924445026767207233791604742379840330449142740786416519777446798829572979787760692579085036203341387239584400384661390396553969707226314217418112366842419475873895727898031770448052701137413466293483634999319999679544380854881491460157385884708812858257364713149931325831995023075325185479083812961002545877045021967838280425457833638753587482199243201144454649393098331804723823058261691914540653559114727793593258814417797006797673755675483979565234892762001703475186465205083327461423999364017936612420188836827467995850733539809669397467159348871526053716071328353502056759004135586056140490642648220480048563739262617043646668694752267890761810930781782436085439677443794658012062114175227762148666929730444762408024546544429727223435153449970126038043797560710561067761905241506433494809826471942611410613588708209553126552236606440091094256334601587535138523305701305305107745895546292404196014721733957671897441989982701348488929564598672927553049003511400951982562452840008626564545291825919938175289364489299364799522238749740112171668939453469321922088953394834358964657807945065051460735659625732780244001115731029385645140775975873552370204211426889229467592953752904659115001772766944412045127567455134090863277531823447594343970453159416379309702787883449472389042562619369239786293794909685972455605683972031760208994693427614334967555209742314852143402669674444038413733341167632663552553090309335526064644841843040399943516133496509192934273327192552181719797498837070865756552807951094299525590798703033257871088941580906755388139142667965782970984212120367864170045749901944312953990121488402223478752604131961302115223194648026287513088130766601712748416195230345167179419463371667037353644243130261441951802542455631112818144046012884715400979580834012757380623216693852304728340833214617166168287643927316571466581925430749508026484569868889776687147916608154345052113143564306111422497173602164780097389811371965442058496236135162544303433376444023920240557062428506560272294678071993489086569168414688674802087974628477333748352188693658829577920230291245101026884569432552438066651258422046433853889443790940391756274626814759666544565597012536450697501868986254725314605419772177083118169524984042256517868024967991114695510890459672547491309855779863209485052490491529829583668555313114145136788880850973324849793165179449596378742006592883116847388480504707493814638896066402363442158243354828956662360031165674073644143934566164741109178695799746674444851761479941360726990886858022561797907150561097094650954167299681585745528625012403924298829152694957151167274232693492274528867056215248378120419641916074989731534355317393862594566864969301744521449513394594795845854025260861179818370779704731052002390391371441583555730789193848461976064669030909885947424547959913811748540047216760925270646081872385862664036590148764274271499756122495188937729321844076430832743023137350212423794968668883808928679901251251433720215712842963709201384935563231222055494309634302263021515947136327673419582947146421905409480896238453636617944901618377138370873316291831446461507544744580822756405202702221598655796758646145956950206221777428586065423209146238912811814965392172985608098702814455131874870626093627370454590002628486559128319146592080660046305213764210322946556647607860385207798573615611923610167663595246687485270276558767643253206618051813975600274381627057027080099810084078162591669440438121382655788016002698922856577373595601395639520902889401612268333104318523335337599092439414563194453767069988245549388394056465414404343590280599804894087325395316883059779574948320553779220209395465165193044991676259460558344896023964650413428883289580238537020097035921461090450684679837294093182981116365355511005028652235313507261623770265433908220089512554613052821255957862924696729732473208885198413283642060354715604267194813099194208904096627484146188589046179485831044688437046927722346254030246293678707825709628444542024605394048303352188437642403256289186096759006178497457154201265600598627822883686168885736598696219331267192911659574309236337907000177519486330341193103145551538160590219800019445696421479723737712038337055178993440509021708252717423337492022236122575627322876074842170028383247557297165061042020419270364387376396616281032193606616753698522741955010424847908012219121063450543910031213511704636205259011946714080803278992417167459540357696279450815515178562119131243983021957978090854669239419354381927029932763457651092066891516263000287110252193258146659796979151012609121460274464193031913075657805885649987777467377615143249632493107989908358810230633417642777383869147138100071655392036300416036493414900612691933346690655161220221252313770113883460133131611080238823318063788192529283929993565901399537741703702985296780172004339741253219567464688574432609505267660847199617368806763789886029093605022248988362744866325951313008708106866878873767478670867057399210841475412805813651069985732168911448011470647678406799891339456717189787447446234418100421235930571331986130717466649664869427196816780240030603465776467657254590121590417425688093677555970341555208799707416694172776293675022269580141292243105389336195882085501477139674320066633765666463625994875384924924669150123562619314010994913594395001716369753526338614678597204356854733220446861777845092123454036326710045593511934460717748107392287383666408931785106292137643362154041534458145179168163532905362265033408065084861929755605138398520002777813769325004449508452676866086209216065290867348291576766960567937912039011360966402410444077689043582051874254871847909923965476479495364217200526464192839786621318477976287855945956854608549481340505455751835292884301490799840746057684692714598140991255691890361553103181851499607250121755831212473200138113624571240449220294194245177633581767688551153225778071145236548214241172604490412792185871185737168837918250044566035941064779255740805661720913172223025735884740234243832887540695165319488738274080650911399365279532827932838154646547103539080051508993688443951940780023667320981856492177660531086860513927161970661059516539673677018873277594290000750029313666559608053150849072390255783872758247191270880591304145237937663141700721010376706238569953867405621272734362014459598721274404070552968159870460535095745527774840672813178614185466355168798935882847593421127979862521714913252140735205958896779754979331577328289124665166562902591689615361403403324266717240262296952727516887333882178276205932887569982981243081296594588999772809430636165354688076893378149651913676519916933546907065417914187036443716910461307796003680847915937811339396348801714588647115326447591433347852888793945347091035375458733662890608375968296907486635597368970145365835240613710446614019050169113762429775244742941751184933188987712187470766596774882936220137736922286135546288525445145365618940353420529610789276207931736443785716226730211845036304801889689727215775547952555341979387255446784279948477079729178444374403000294648073543386155677290373787620164675384938374915272985209228948882052286495687697702690985521944589364974633553693963765433215497725241213310718206929458936278174741742261309971185126475145007800936473467707265555439200914451596663895246165604097644653079142340070474663287385174877685598654779284466837452781681734129769116785535526141271075247383244530773039522812009953087210483007889656386504990241714325833875435416913459691120701339923700720938142554916757384863721711659769365041083456217826936188914043310070291510117939854153728994047609920911220425506172484597116912383092146587725634207363454040603919141475616694008202344980777316754115156670844834326491088401046549034662526113290775645390262143554850302812487223491039338893337577668721257432132459221554953799112293684894600276402769920916112313346264938961620909519023692097689876005156484684666335757368941208440517853250211999418141083556376977393323356070266288180502641293518364200662734979551358339795276805141528851648876489803735668958881346008939545609574771073098723355851290949370007492115537906383788018186676800501201901367908699667752783818210789273195148460971462370592751551556818822086742058443740700179841735330376567830731670746907304557378346085315364088801427274218069836216678168509166967724084316078330637451681967102852901591529900112771862639078212613117930468560908357153655180435916740892470910241689216264274808843475256871645474665794445684367346684074994969387555685931081331174048390438303925622373975489190764545599798499538442957013032339369634253589886829584265963298225637931088156149913785887419313595638790656759072251750551034139508723996470778181764423620812925722735524968943431123812486220547685731625710794014459233599725406888716552363162566630360482167542625172880850651956729410730733867093790432414577230176385272860273050834469643815666672617530117862232695805059763632445653951311304708143665338856458422025440462709027041776164397625509740687636858959510661721572956075968645596712388935405702062048171242904149033631522243128390315496153835837505335175092555176310202436027749938021645605463413509512551715334527692424532122461412692653221275358649452815074559423363070977816748692915601325814397713454285203857688233390083690853612284699662566754991220201377840862730199323019480450977655356499354142270152781803856994416374287699575275241778990157466538885252229194061668277173376059766132260196361510660043766911924059168095722622377770556009238487760332976117472484964347690803552192949975905622677050037830949229391266849073636516295708938850320700271725442800949344939741296074111414404334314687656064514624152577240247323254111518273224575000254009247580097414378310724130607404022302383484439740849575087016670273673370409611785884157331612691107555985471887377481797084776416872962300652450727324029089529537235259462871639082422771930609783543600282204532722190013181608096734412857481718193337984602248612162881359213862355507620167556432856506880020232354176880497273487062721981207781463596437319408808756239981801106268287281518377883008822582156464186078418593998895528998408260904942261515085196022135357674131283058489397112653930126036812898769270359964921350698257436897512734989472379298574503256474437990346703945917211127172240106340742550056169227134502735266162582602027511342631171636812804545181018710552010298409736660200173603185859023330127056815014064487221210657182766236791496849010156069972152922238786918546860914861153829400673160504542002203151387953675969651634436514967183809984596355266886659826833179167245052017298169253457863319461131343424698524356182558257196223776719467842282027570584252761099655697013552387139115617491849700136631685728182948290494398959023715897125489297678786478443008018411287667870220898098753645386331231000717781479850868613569669062167402758501281679084465414916117549390912436393314343780883685925811504578808590024788587263991973996910849162555330152577512201395438958455642340556870881594739257572391582572905719456455104488052290044659132697308732572663104065043964520421978749329011925804003018819237878426138810155900848294631596907298989395984318179280412217312622194129507667765893598737132715829350045600400854370195012003519367205182819347370336743894451775131264207782247411241413032771457636830114386931181269183205009612829719536866397620859126723200298023146550652969361060213344098344361011768299906627399970616979439678154764113105301946908168733242931950401037052428191852494572756436326986060013187741544323585292934121283651724146501064150531517930981055574497310630595481846851363516206645665937313442534111791204714105556404003752200002397787335468734194680790977174236534797084118887093517857300650552057318969204197986564026128274751168743680257070926625549182793475806042251528728805093506290186387245779237453817396215796951267021566997813008436194096434358867656825705637944016219422449855330524690138122337479557303316518130265152226957646385923039031289400199235001514354016969676766231673576961481544807725513546595159943962704810526278788976344164992881810032483024176431760674278776365530180799048944245486247064777812096002964437954749907301094436416311122882743522367545499869233975095518237524304251579753808305023540222638562098974941936441869018504672056644252896409221086130249563728741146381999245240003867814542465909252324725041907299354311168709585335306015221195374355179924593883022926638027163118474227964040174992477663450519682827176993494221094069316435961278961349289878309430745397204109991332986385542219383188099935049471785878891148030589815698517782561278239480756709403050706630690517013390071737374861111333675552648315952122052869718245696391845557267529240353562438609197346655106678384235780155315528322641278559764217560388971720690553140055224967132183466718370250820168790390223453616311515863367065297758698783918682606210421874714220625180508275784695656366059127480418484205685113188708816162204039794326725257082683537493425831800575638634755127502159205666425614034608503389032006115508442537246575878346357008843623847397915627879375655532205551642349162251556902270568089023202791973384659259460353892645721450790178429983414076658066087124495081809515366877600012285512528904785196154449395617448722712474388225344987455424572848452223573293832558020269931445363151391898722789600532694877022847266014041298055841184134664626450934788002507848034728168664023224830184344708363977210769345562734077101520574679018346675637063717592651175190381977033755573390443027364168583774245304586074430663432120618964652236270315824851900226299682916904396791388526580566444620053940557042509748842768860801555982260800686568123006607850127215803178773355060654578556947276830357627102088724805198065075462128098982634493044042495999067505824621998630832532008442003823200786776314578322074114212404071339029626590011225633988721777624170837320950756741975797830364088909513531299154394225667246951518907875044635490439389975299965424700459617554102429170905461131414982263438886472419435961761964433221343892713147600990239909005030327431265300381382664109571923088358750996597293262760305274182435229986544589693795666428203494082296165952502414501019879794709683065321473457001310016181909198490862171104208325381620948077208416295240191072009289902546555555697081518107739419343187139813651558053066064731942788203936641534493166877025043059628809623053047435685049506744898237752109880413583389394088147142397858998650663663081568512799161366587847714593888567344168274359576812463731742716159783647432145720712452733739371973469043860949140063631535704539216593771785317111127794439997160737483618921568435210220039688339334997389879968800771006081696372394521781012289295159063929042766858108135167907459127160788247280593223945953785997681232411960018406661425638571037858293655330668584593199310682449177542021907308820934235777551104289197923870736365138974798477423105314774073513064094784674656951007513695617040406238986272153739673830609229172532887015598092541750053092264272619032036769244542576555355166600206040104257192422500575712897087813775540076040268079787218199036208174652507920510295405377590234731564068785459374160871287595517897343634499393056829475130582877194828691462147799455289600542198086868659073062870866491062218803476808325332999615510253502737596720732389081311204930439669626168111840947225625390374484154339621461917413603171579981630787288333911179580087795973655633929305535685592674011217593839621968237869500805783262242485802545392936558864102734483737577085316346263270738619135507055825696371445323129195138961395634643391492262882747359240558083163476006024521134554928151907333391203354791966562769387412595416020619281293981455671679451295506225760569045789189279451667041755054117539888136242724296413602932642382240410019252880029695157708121842974894948886149617839785296712752751015045746706837733251315976458117795276728524493108282617461110217569079509233197894696040407857186364263506923901890453813756437712937574089290757686380414247726572792282471048047837238673706252525123526256020859678882448320775351536149133966015652534675360629909028820001286933041617067693486727279038998176239552626219559050294493195013664254592066070480202860326444202159824048904103648591170734111693456115486703975643185170155611427231741699146874832647245003759024209636031609200944744295062179427005128034412094017951646940597916430931994999660402173266560320045935749101396718311997294043456995105590026639404560464931899859534593819138920861157547341339699103627308378415701907820627612786535814491321414445346227610524294759639442981869108576715852095148586041504532475540172215755273419646209845529107502618028998264359139783467646116216328754551683513762637161390234466112667039244309277165678759526654671860603839711874041700473151826890608560799647012845913096759285982779142325707833320471130643200403964548605025551752924502868357820005733019129431696839873452206451204244548615443092320645191002234867663921443606940069055658995728871959880748394401130518165213881484812806759993418497670534489408772304814957109351890839092194545102189487874248510770256980024776866377042866848875505716700690994021563132629169954061557131384656304888031218464748040787087719395142833497434539406519024921668593133640251155223589023518503546902331409446383317617795785200896375287660701515208915586136498346832733507914791193899350588570209657429464145150219940399129269143234002333485291691905978514324254114559275413802327582035047561481415852240279078037533240540566116851514513190299107774175408815871791626849639472614176076142286673424607774228660880933994686898559288148391995123067125060667843273120142336376728489160604200863399132168480977719365978105027615100218825097258316999595944677472635382987633349144820200464497594286644617238915972678890310591345542104854820737087493708277879394424921922651798747443303677307048616000376060579450622349191477131285944698268062820625881360578372510917002648199176080175163463242691231186465459558251568770290519479018995317096661091459203934339858712860548619061025029101154426104369580867077935907790309794454932947069749728070735520036762382106213070835932523155135709169817800086520721933136787978711382896711517337173417297837222683844141841768654192851455294882551510907776773107555289629592080678023912075485463305368691224523660734622828503004618247643945796102527239627870585324975533375475018691747049206867560405985582851591422617404611530194310940753674731327617793290539520916782588216099564789202706782510744127418827123664607222334423628516404095427521927188342198789107239512624469439762121138845115687664367940532727815262332694722345041231724440251149086895778761615095907392603347328491955575863053189190758863213788718047989110240805852059209018158432322676945047829922742574938699747155877709230880045041410407629021713525985695440843301232504897224498162307558941584087166781016843004069915458974538346045606076359142686983956158488032638950408900647072380308376372215384868945290244994889949164694101158595729876509827347981724163143417849299234103045609840082294169368851904903756523758295697174510963689494179393698413151304651270450393750946494637685744870763491480758905384781697917446919905351495237380967130525744678192427920641501282517012702801813141458140993759344497388722799729079092378350614828548181023109657123254061183718877220694372910758903253672416356526893386573243591621056382998720883879455688340288909271565581854102082343328413652744017177088646259276635075228618472226749059775448721081036843340940289056335099373180211152208762229345022264526159996763516657530390207047031634458644019388504755022534583579040797575042240710078170519757300182572578191597965769446858874496669722946012313806662254531314372830255617664697137816031519258075221752347449559291922815851599781633442772621251070993332690499541032345518618436337517407970254846076542120304807908715083135271488612675099503693589688559125065481789106128472172504250299968625074662362564231754526008988107474300165338854952176933759219572155939601773736099158646748599447008109994644486255411509208643457558927698594439055917670230711068599706721763227176383396600401149816666233032621575694190207817523224143466271933570353044224158946277037400683475013898478681566754726455758112134540140729349321941626938245085061811987544294061446193331835741059435320797384864648352742898173497806652269429826214415765787385797936632543506084662612979719302473455540485481344956126475216923477555602367637255552375813925367550391743130186496200282164939378373784038453741786629807275287927381366907387260061670375000617925345225527292328717289173776886025709049173851962810090029685227236927371171394429633875681494906073207671633388317920293405630099318454244478889282828541224439149412019612941428479775729662957052678457091687878491820007193817810860211995401851496045355831953564976138636879949681626231967973564298939233875828937689031483301869794203029251545003771612174731378073481693178481575249709232490668025272790045212528187144577519565912435376927062031398390109189963176207167246711608472955138460431629133658725318037542171031875815421720102919167726176542143739014575857624837649618753947646819832805946972153731716558112917581417855821709010621472441920495115952622275088502950532091652379153172736379478553275439652992366615974707351888457713685385705180880467820221370677405459875724444010163475781888261209119835627217953612818811938429041979223962259050934659788307092975561895304461670283494371268040889646538095033180965375496082377820723960855264522098235849562738179882237342514122429651342007350719506944665316990967789519774972435871831343959100248879519284381134533765728939627913139542277914359698121052707382465774332985532820584175045294489611349190380637832033794484100646755885344606560154944581753532436492316443307248598593700764951348608528893333130747039238407381267113522491983654732260380792299477307937257104323539181177223860330478916606792757298816523453701821513209124421853942494248472197295418663802193974319111793087716597853746095839714382607015191747497125587377456023777211263301156204942019978221891824726628660539623413282176772184530632503322677839617307787668667348273683770514116653755006371365537476635219469485733978595970541747097368616668743381780193072057047439599718821157714322162914318950981574222422393060023642504955396628424994978107598333662699105566595029789336975530195671332566878736797517058233661771566816613801957750772425639799561655456485208908143804809493068888474192845661973368601483298928730896523376528307519811970584329766633661404411566740450020054610558670434268231866180026086841933854666082152147193658517099606030050002895293163510935088565799276556861816467913553559889072172158366095265285799062988351754002261987806373502466523635958727198250818573842000212295836044530945009653912411136776868106339113605453379603746540868264016934508426984329666319487487279031632243993950691199628053300579457479150985189547978797471531960825559733710958491235912594294044291645012460344350400353415224112491315919495956852739268879615276566849196273854824633351489549771634167151810031138631709477084888980432948581636100942032890204158669980257386706841521113269628024653560918399201935358115484972190162050914561431840394110707362711516451060919761085332523036556100018997698374933776912440493006609359401597473274017232600246623792309781865688498440004751506895921767512508909757949352797825606648946669694630844330016223433591537317490742609514908305359721378113102560812689516128896918105696204057742130376300696482253812067527051654998275613349882523808877148419486855672332341989537637823178133719183631731254718514655722107479501878169443304053689062670744990203698039643833441759075897559523020833527733198521731047224096639983795247122505716103148707346239249748658513839222477145183978563227666131586194640000102535385641853626057547126202864719269561390103042846983385830777619458336528430740180357794999565018703154602057876673706803962494130130893922694996649055270191929858520658865367809957285977565987384496524162441729103661378387812242139670346025521591930207067121273747153688243224534928531163076697350983859613733310869427504554294971297888095924034415814418615268403509612272126169908763099888202938454321638389010865250139095297326295951177216853716363233348799517852953558733445102379548802521140598846446509146445208255201748949947093375351574565745120238663994554275751493395955335961829724261889352727294310953531035915028875736139174445989969596465059673483990578711530625294427930313183851974317703697924564442439215159404771279578307899077147397606654098276519756198564325737908017208742079151601802388496507739576086394489213411842942203589348557591187669879816229904539054237551627814250408005284155446392818851726893353457404769495064561982472766565208140174717749495452584652485944346074736481255829741591201291107469214306908454553390997966832806783449402148041745511531126007389976950679677696649093489040978192926646293045348924942689305767648865826337881660452299318765660546835701158368860235974417322572739163146190111269930564304723737666856173383370968641668869988283780033802653725155123569311185432868544516718512473938879903987125682429369931345193653895685867145482416094049779608589486225357262240205485102456600265543153138294270340651028114147500351413462887042462765085120612188266576186334463799971586246860160224215740827469874727221536082392498061429576126347091881013564145241766569431435720408467302267407036099719441582847170925730115029274983157032353861894405705605479678086707847733393270140684091266041632144242609655474476882600990374511726024755234486404989112491464502434279880352026578948503475349508650448781184016560139546636527122840135101963202514305061396406931374698098523015547845818994839866131168166296413385529173978450141200446493004685245142115158118959869298904164566732366853600832062477678609973503894663957672826205384406819212958930407195284758196557658567021700387215716716497324886079437154145370941030554226851489922569616981025452300198343955096610714804121523414438035055275794498800290546146887011410131159518010364434254532627335616111232822658575804246029560174836608766041927708899996053671147672350176959174066623115850329554159727343623026638427999299059598264603384124198075458057505331115901772722647481898032648110337901083252303738831262110731110901561813492807055496373281332077479913184016100899543883213370650677644347948607880186594716410281671614324042465930281812264449666156575507665491969640511016103760422414744643351862294033092194771294659275071383039471064522377091645861595210484687152672675351106871444866151246597644710893630917995877551364853082598321812962304631024343360533342305053074493428547867132851095922074001088891050674376609261963274303972061307810077397814020457459092675847185893864472960950024019795134411676677855092686644574766830905102806341153255481341531398544725727446974584712624397237685403795673963536281090119016918257360781354193679651785496057787991377800748629217190790704860946896203488671368418943849400869152745049035181428862553907995951559276737985694553081976691605182255720221433976991116836592051711750112291433762799476938506505952738738833335674511669715054368483874545252037924533331461141262449610878623925185190126797743258731559348570517500122738081107596574433997765906090082598735340093648114446220958961708409060940705191787458167606942757574139365762650432705493758102904170421517653713528910356245166769725246455450838783454966203959088820174625233497733472295826548657090613431386280359587402026788707343026332086734122374283869594884871350462868854234790551140996952162114732104457007632764947577961372487010774544620266903779483347770744918996383770474765783813646268644779732090379635673876420961728504062032897529293443464093363102256436860286672776096545984132138976422895493201788996607441044420580166022784318152862259767100012922305754969653971163887668555723917673442190796836939744890382948774425501657598632139430029054660888485926715538265992334180998118696296891708648710346721708028107530959329199826721955964217590689074613663809515846725870381171983743394057703052262061926057041163421325130650521532181703540240846247637308074768377612339371791609401928294596090928288877984314329294790468839300568499203179083274435432132989793660572216366761743797955683916386274851466738223958596933710334918987681175167260603368356937902792915159716568262507153183351265996237203790918114219996907549242091458713644947066351503108340215792359664672520888097494902932128146802017239619585256606152721777266149771341339413059029127817908548125231022593042782185103017582664114339479299561411489226608292152316154993908826835399950717089364496860116576536924574874767552919030519830399428030962652140791493128421530099492120471320389570970513970601006352452898129510870864432215196163479707603202293196903695475560915262511735669979764664659506493730348992369810268296804796320666828203746089974434112448190070755336654020426129812785872503845345022936510342688149044133059037019341977406549240035694292207259715551610294658350157745473703913956144368406457862476924678946162518239811087413868075383319756910121317267310806227390882709202401614390917307241078156681935288493164066822509498849389729172848859398830641754723627693751089124530469389534100061754197986569406498614779412712059781122079650440849349240312570188600770671977700312157495655884288602469313193387398310048792159601982587694648515697867713239637727658718454320974348600310619327438487832886258150422978628052241741946401113892574165899903812466024732609634748021059141481542887052948755878854388399067018678823462468991796499361209618413716524114245954600437960099084133286645100400659122077201391425498393192241495564194730527034648089552724724079920004663278400887775705695673223912314901572052970938930915374869533136604635800945573202365031907056280708582928067168974990461332592502532920511204365028776927888069419983033895587030226507591693531997145906106542649948165393620060964661826806597786945045345011044845683434284884938242882912648943307586220514714571401477284327590697341667786112318927569938772065983750959382223968141155888065309038591346713959033843511472655262575194759507164158319518585173329163101237579859509776150590371161699864427902957694839372590218543608452976763950276964521306852614503669176423300188849613095382752654080084613057157165460695133643077154188469571511904184242593369603953056469143859725289837789075306228581097767219133873483867593547348114170705632581979615964560539077481974109157360034937485096866241149837018601782663801376445321467350179003045665203035595831816929851421362918441888343964389313476269332768721855818767058174587837762480843759597297758720081934943300841460953215274889785626775600105226903464458297793772231620471722817548295795486598420631674211512272776730334246352082988036696717372682928449964616146361179085149492173858634409491333922462274580692549805361345123447794072485018507719455066633094405679316321016263777778975379697397043383424042880540990584289632184452917088537219219400904675747724413447683572948733830947283951787995005469762321198511571392819173273406283171037213140346330970701273394609542256537350739649564805332728516243936477850176923874700543766727637235950922376927899335830941249806300059017470050307366351197363118123806071256199406579588062119957182255865424928775990554854273634655815193521924750397234040913092746470531343754721927429151018489091463793044746095689487717493025672574373698885453219947384669615562425706017496005773118425084047740763984803409271328879091577312382670277288642085004703507188368640181163641644426327255930086552368820564306265422096374071872797659234902606293727591867288709000410998650198155916850081505380923143020842224603467272801844094687966905436576859786363228694059082537802056521947530863362492446647292661052143379703391352114463961143464399559430163099762746318047097164205713966272089356260003387054897605761102896391841073982373751205731589276719518103063440174369667617234769570015828059877490772031552499449977993314007095679077204406029805889088276417088050437178155656940660456733251063237591888660023586436938510567922568013248507429065427439225862299833917733968088027887383018586201354395067439074228046875178162615118761506096961340960962980381755665275088586446567740885122943387064469033804106596414953543553615085180857335237827937533685951211851867197826968180931063512535255271530254273959394860013835713835659094228892392228931423686124600435449774220781941922182206858339374439252182315666007033947956069089391044622222134516719864986148748301542614364560961113482073909966461700790351294334827116487691531902771286089978053858690112845233665515527603536343278937611855254323954383196614954668491402300610108269604441409998049847033417879284027680669347606232717042494759957370653484855772153450566205708390983915353146874334112510449027915744895665333458451416877004337796646548807760853325607281717386317303728426609166446034825894428093905285550436245952508639862166283070705261470826101650471484269564196593171671833712873432315241849386153161904493366538778425633527861996541893091942564703994643666391035212850359968130356668504742112930490887557201234104028801689239115974758276971448406727467588441872608110792867739358703727072221186028900643096147405740432703277371562828432289669849275375478322693372982154227931752250636688652979860566346332977481675617211119332123264319863771013277218618160352276554140444194683822315269809138032388059380033546970381054441181458128915851798102675525427267341691508459897217910555608022461433069715911675754951413924420240188679474160486026056418555105864923299022172225099321079286516408500551268372075107835362535081344250637193753275003765808901026960550215983088137689663077012070411234543728310322420800477427048750286866726182928004519883535877154929572117691967313723474229034498588744253559159988842005983756365360682669871030143691591503969366910723971872672604808686994477243091758027200779814311983970790435209520252400346170058443121235723938163092186956526040539828133054302171337951597926289458393481807243190436083597333181125552827317195763939242124119548629783286136920744583448811425392259887624129004797902114970940876145896325868681208900200591223947191200569069477754511798025394981271738997084189213902120290090896247077134460972561852027723308474568118831277362594322596308372629450476229783902280657702061037968206213336394793152945879420832063359083947577361085391874385624088780934016302609894133156539224319401944370206027755160390720453315041372621114997624935754106981127290188799156747988287336912393155912268108576274610745929655734657152826948430822339787198444273334845120537841235143239823901695365159422616851861896266220968749809022347841711214109950579176061884756327423131878243491834849995478612667444052178841911422363353749239528785061384766720101038868136777426363898173822620059755481809301189238875780880187035202932143455379334401034220272582772272997075318318983633369326012457953806691020893289882541410758007352215295505776802599536083680392191115067831132304767760849732867877103026883361485647109236511949233225722951918386362430192156563721908471291820066543740148790267334440289817048464535816558888592210026346375513311684817806474352724857214643241726840929674987240983673642049651822852845001304558867010402437010244394655542902545862974529959875043934493544539525025706151023772826109336214931979216445416488774360871740964683288715096463979539893196992313200062418554464423768370030467367651438904059749740989584905638468272178654797526668431445686812157648521339204545600112995173791230816386567736105520457907311858466264770811072837509646012767629202254108260025168667850975779906601615943082885408294662794917110640596371732295313568834384883713868969966899113538324413878837071087025247859546847905558924590643045250479823410390437536684992067200350426471486197712813801884584556836369031952164401608190849029785635835223568502067090582669914677378421065486520732662931689114933846713656074542502816110754685565961396155176865848156375854854417300371580592808143441092918493268793491805978724387154307828507481976944366324812721532394689745133356639542248942300218261859038096474719768231432324123447872714493324830267466161259864258014787425359638323061855682978963365499134735371394765583218534754433329174246248083824734917095523023658085672854605505531389620114151071471372093091874974179938083005364894985006761450035763158090715029822381590407098637716153397799449959422861862292238079965126680521253151284818230047116348882029903224810065037843522282443868687958267891657970706281728240239567786850671424179161824132168645653260760006592951231610132080129293254499957220804701029694379264008947689949492564075896647374346397237377870790013648743394459138681009745782846189736492228549265250694514845952687746184972450587966778190194440451287257476004021056965804443403165725672756930935224620131069754745910135116990281213599536394214195132850987722747303480442548334733461860150477784911338782669521632077044410963127006407928658635476416406527173827612253965281417190423612767316130432176087510179673822373118189303822020667776290765307514207670544944306041446778683745558296383604613117067846123303349704982117480570305010391664671855568262103788281933058589184985836893359121825197660553064072664065935730064291020632188651246953186023421029641315291735561940456645536867973388714010515905262451785776863853761844449196476726920119442059724895953320060822558961763322205682737787482937440630666893865065523898646973650035204935875317576332293506296776308878580738568332151511064994429953356122628766335738315072262485868074357830646267657335418473677923711743801528012483979453704179872827973733768699164486598192852822128564860323115064903178335059351024291932580192729518173116032059296678154340723362584731045716573801552970494516451904344911877223067273983813721790904100498644683228614045572350584799652878777378850974419353817324087334095018753024551848638417883907323233511676003030641896692164782453817255238384967123129782901207335494860118704272797721158078850631294951173806422657369693942177889186868340021636782558445769458095539053517180416770482671107893968119895621821800834001791782549876378673024674913746537322283996361578388754624960506044511564491901557429219855784368933919824663383837840131829515410750469211094374844203130794996093573123242724938593182605480409801967637145006300271799326032997888468892283796176110069736840168919557981058171121690851470779340717238552453729573345938224056909896205694098066515582953958513094468386021095174420844106468184835996216653775415851442492377639144008913548906988978301379691288680790572828299282266033337742482622700739829522241062868378144497928551723448437093425399513388505245512076452828608200181562916447392182186082146988554990760428463423917510355873668974957285714573739446561046451733727512460889037584822402627744518971601751355150782653880710449827598236971810654879875104866923137840132204619433573194279119887117727119165354295251206526559384441620728232033322288269051393945274174857117698564687231405697740617429193968571532131484527459383986114830839930648789512467636779281403827238998019640305973934621065027587515660882417857446873963088455575168040520325336222466856988823007696134217043093968099110437957471631323743839455241628676486024846235478377902461999459159017541843217026436630009019867427400604379626369154861410878530539578625666727458995663544649424094910578642601726375899286755066297169659523119305040532856309901643196045999372950994277044454807530050047210638764726910036948791375698828524904141170382936022518058757573623629918150160651932667442001821164993396273707578749452060683357481629147388868197529199859135411476754535991692957372863781489241685227259531849236386187054018267764664747357871454077764146651240423349982737779845983386903484833497102092441410417399414091650473850636720224753153534396024765164394168679142340185430346275809010587892199567217644153471120009801183849450671678780831997968609287716676933341177946798478208325185617774467834633230147060068260348096211207570998509210499169871835729725021264176472135583255152322100598077582558659343486811535456130106737368227433803931239819307875183183203646021681331623800434373609825070861021792329680744287708179160596499177761330650759875490058854642293230980095678891759379072601916881198975538787434972927286579308231410917090541614715302104137009395143634061433865451330900258555249259824889373309977534146760308976079957480804486453675876759076623218114269860967011849319163578361887574941213011612654964254850830217003631930680517630922691942783461425907002088414343032545229075641364030713168684889157857225491702288647626181855125186952785381026171160747030390984934196245367468660314969344331646639800133027909594654479159625820167709086292557720109161507770500261785296834322975194806739409271059031853142056940875583177036693437355997499981971972131435266016653416567331042763227445649833323199200482414574473213900188683725977194500005949057887965834151530728584205955257431443586215074294576710646865990394382324200065769234082296470678324859328227819224260594392681538598075484199393914101619210508132296879428727471829865233738223713508228015672174310065087278274610741575161073403989627511663173950365641063909036977189000360018939672427837030310010973554718469859982942161716586704803731931508580321545399264507142151731101744828194431723765159748373649313066726756331267352555906146139319455868338759605085454080607307534701254581287961929876527475923067669223233006044941120216689635014287940319913906523956700447846916970067195770311690880370633686867788597537980085254542630238091565639108005173424523646705557449846185991082274100253515604287748575393327435350117384082883146284713048139971532939659853004180073073233744873718712775504050865976771030040985638846263579502814363628163778170880367304046690246502340707195428607169179718301627730487629381513755933926075762613752819821362080149095544614709810983038532900630984283197387678784633534036632349209900189877470558098670000332251877398509336724273842220026359623347626928989104109810804190503809003442677819752008029719781803925690942512539079664695782605597030719027774662877411432424011659758199173140864355381434378094518010994934434839812186750430035788142059457802569781725252380761668354870143619936889497171442309425973031750986266218830378661858476292728333670733886113480249731240342372323919140206806085161977968544132751961299017056406479431428751791178899523497538478221340030614850730028449654729637425802486130494712949866750514428190287714738997580598210075814047711853195242804682077543604743168462684302208929670414256799534856806628031387344371589070341908634427355398687848829550643238049303677803784478251733940236114024709945310716577306255510464117527153364911303439126888692440021573810224495896413484671434579674496149031639039406903704749404092859665285520422758164831653394868244651155551208975153466363276045045280725962120627603971182494881247546583693769970191754738571598514941107598656139374093473724741975209932729958065651576369287033557069280165985796611633558409217707776894196323346845615880560444615681278249790941149496455746110716564056595198293391391039178816772377533337513371497068686707290470677781433498161040497772953661753120793016163537213992315935029714750006291829045043707690169544909570864156478719557877029368575003991758396270722892852964056535882348321580686106220467200480188907470574361571318902908986700694531683095342250641485950108943772231294751069754819337394339458448589983047774667503838889488887661281520569685411389924276434007428744871955381026283977449235034413299727218464190984488654974102334325684198435196241275501527466310056775681879448708053447996489222169070065651519553254794111624748583518304648568150513977814617883558031229637630200063731288940808798271042399077209761920233560988320178337382215940606917739474542008259257154157559438228207776733394289734492643957552408631849602287764792827082366649538165651887141514452672985983323919306289258256931147958802390734657632656609846814170579960982436455660598849846248903327679199697622227719715963477594969483262282518442673920020784807318084553124128499933114408417070245419962893953762889028648783668039313919691286074513004214348119796819163037977714951686876076257464773766527599394818751747643196446237547782367274283031150883293583220618655669375237087079520726505081834073376657650432867949267066554374591358576781010336443082325423656472385960248070161621705773812255964213349499800687718292167617307049122328482684309158195555668765187114717543322112796513465926359038680600389760583099448960854696731234716550088257018052646089791283631560873328387508778367010518013610514625039781821811899122773816960551956015144845055661486705797179329349965064097736831558567635727392564872737520855078239295245622882844762848039657857818004830700068733164799147096480333230184095531316620765393336664140412113331929166293778081249314262879900284449124916781983451212538699875242119212380304566356493722525588560032552233362109177358863177029829183837330378891130119186533936893721669968675920768288629896438850334789775139422761259878157122857297329170085062533554663747489056076918167971325298715364285668099137150490376411210230724854870342700773374097975855347240715074681973340202189862261570227414167104271353989937309768515615890263039568694347177084448116905949600799264906434528737434574421423471631943276402436901033037536904690600247218631688560707460958989664251057822433669998724425269179144313382087817949860589699851538906553422769564171697516149469369863673015092111070509770881686224369431776209007476269606047777326425976856046622014572354040890760882329257252125094660503152990115083840964172362052309966345618628161839565155678479656892569176461743855567284610879030114858044102327581120501229549479087593038091062072925344137915936068129552320547671721088318462001795216788518816690771887219915223598548827127970074744307589921518682189057665736570856727597239961855958350963081546262234600738044251449331257433979508860992323809248248209311046752668432768097197406751579311603530528931972554061709758184481666496780492176239556523586727668895857924904835878034826283223669157012437521649301765672360947747147977074755308527592086653593724878925200194541673935248242525951429907053224887109303264193139978284122595726365112570560699792524563991058153529099472141199168873479055418583485338314603740065392944994064320618355358632023668291189739973046079073253161309536366058249395370845226540740610179171997528386654260174180271213517793115460107706800457400657956487892347968071731940193904753412328908258201083456949137547199346196866925274845113407614756332748465764166704305383528942120847700805707193305070631472304596794430097485546838479007282170966578763287499550087326846577958750562356994125774950776697650227334309409519257155003296180931763764387216746371630330397592406979934749354836710181585984683796334134404685149212809088203482049268979664678471239448542144553824733357346629836568492013641710156993335717115607883551350187294485034501530365180139322249119961778870522355824255976101377776564118869325708871745048224304385278576740203569049408372060373203530731787084753942000996416781167943403269194504198762410713339831713987909532098600678252358848754829743191633189976016856889345656482363882049841001295826175980608289094740172191375561065772190758426259242870925480345857322200607232823059012313270600403418715142397950884247573246986713947930904303469893956586615608673427419099871744299136587925762637479779931866948745418664394971313924919129477782554578215631663734010804311799815335550669846494512751526022697410846126138687960179950157035462941722136958172775351352175633095085687338421916268098710237692366594671301399440760476639738362911140056821047641562024479321769095260212154588573265937352529135638973936832120310039571352792405603960804514559005371349278972202317238823115803629182075446221009697188846760289759614203416352771364588278406727480014375193572515915713820718026764138606172193158827772207613775987452366168374812567367455944963106530785603351683571676080555187085239405962359457903445188811854495202485281658534564062109093914771095783123182550212291578330025097684489808903755380290257581269932512193714315006534339186138209856718841197555860355581535986781125452411965641200643236709684996203411664106862863239641826743375112099124406445858450708200331080117855456924508343365583748130475252074332491406713846986670774359722473982969038715775945134360563362319265164039421838160934290711924113907870614277827029038365699819564892013284195094318172505320630313431145079685210220053465444224763307282445283533260561246657185519751325006009204714622211952607310709726315152308915908587684312609760688667803556065837284655672425265796048462749510019469242391695971996137584445073659270151556715832245954221955139135051438301379281638410060758189395156210207625336924760001263094702659172111388458896293090303034033266313000357855415811194955040207433785747142570444310135067323345795832392710175527683120322971481361207119911014529279660453449710255802779427682242272302500497375348909177615090659988888771606335481651787061443068831252214631735471262384111711417866431858012387969768527730904159223503349418777313219848677382396308230052309054871229537158962989932830601165704172797580730408998775122821748987104973113925905134919041352510045887862938319334200607248186942951768377808411792344274914327428766576222667826112260799499066925207179830238373019893271946120620014412862492710329113917128378615468982885043473288432176873522657041735337005631870481927120292907376138711332955842314189834433688063609153629013658233999822032093635162761933825845909142805408691161474617408049007876693588863806033376955552285162769347638311732122713631025314211100184487583951364468059368604819241080967794961946677613799210702121074316918304832618748418870283933529075986463900542318378118809986515413256186847456445926410713654728764196970228377006416675927107893259447546383073474317624564216200930349061696654796662053187423975126991217986219703252352612196296938021358549142695611479527420863276693514979376254875318034900232934589656053733306201921985232337085157948183844595181445794907763679063579616909701886790522160562064286444510597014127046646753681465749910745933730856495633431883447458280436266869077272028994105551033477760977943365660501835162416445671003512580534594965804706231092812225344063108503813757544717812172969511159020071998836356559561809298689897446972009357945623433069054382244834172470669652222487602590499406146303580917965395153904670171626703309800616938129815512412499204278065920324894125588199085910747595403395313544770585295515673970121437878842304557808275112406780946240702716133697440924636776707873093704130169357601783581973076422463038160053751028095826049392829378275847231751301322075963476284865710569198410747782797072080394739222682121941851085960906332475628983717650710678061573967658513740989259994808253582436146893274001820461481161257521641977366099817086357177087336921922739017219047733533873573996649159702748257313733988984610361399620286999509994167786256820855192989803281644197945187666073785300289132455607737805691626806237713283472100385780289272535113752736883886507431434987722342904713609023186607049547652839002666750451037731826989555860337229359562600141388043029169043957606364532455334609428876421679657078233994799945644550241019766480558920811400124214115412389907870330843211087554426620135248544837952193194676952611163007828517919821007455522135066046694352900648712937273041925872383850321945233342501069187385083443824353804593823808255031988547200895411701473269945931399943883870629192480063836302076086624089032807325337126235383951618229522757631995961275715982347723244450565333438151650839911842378261396531323422489976911832976266478841899929875780834874084373593395128388244473999043052242863312643656543703301597342617800837939523287201319577797086213707662024374406640499973727057077354982425818160453465079942438766166096970931630681285796815723357454171571359527287274388774532647454700175993096520828153782201624282696781377086784297150737359754278588254731303599669342710815500602976399448497826619581363251389581173313832035002929143833994299329526187383355944620099737222436932462169130689149130912739552045022821202147181162283574665975650092288244819882217072606591347380683916828270756696083664069085211990214179173690683324165460306244605081409800576513965284154652591767267436213112464754129807626735351690813198471063446779101830111745847094389908788623038165174862723762310242781929559055438809803787500340317646740802840441689890247730856665101201721597418327676167219014620828070607941535086796313143097148120657705989388979948706408980559047636826011964240158871225876732620620226763002170828279292562633277436497652138301919131212346451003057733937875009215145083953287633547218404519019494183583413219086311207856760479178203263152365515983981436328034755599810922613816754403341239523608395903204535100079141669685589035045591492240079465083490306891744732322097387996213150265074955192953723212952325303000108903105081827592254378446181240390364676224828242055053370431032046693785376585286185130003985101859312772965560090719599664152766989031840462414971536012453551252307207501268333402215880924781767128727481614097694248462451108463658957314125494368895273837727411053198992225568569285795345239902144585632687012867839595950280813828376985011395359962412464666245165332092017439174917874084899059082701546119441929976106416327039742325004512728354340086966240041140933683632946409946695422047997902451354332507465822911207758060085973682024415341730176327565055274386210626776021297807406876722613514537348922340160677184195826777533825395241074858502029038057021429209542797076421365506396516873556275699113719987970455209127891399091017599741394658970770957614266069498803477452753930471739243976963504955563751399838283427765247856854980858859574165547693191795823636841933536421961811045598750378766087724625058632473618852448068092702948809313414561630406359183059785175008844829570049398122543278904362622974127543996003722322653702746636035065035948095375392829255412069500506447422465960165283920369465158241843818540905729309886944148868665557769905680701213737210523348972385613387426298819658326426224082106728753533418652056401685282542799904290649885786000219083884882294048287221156232760633796456937642625301022465518270031625180544558591959850790299895872752771700787472337832774272446824509742218903131317206331281918174982721111234902335736575461490332373231544765478299844607217730303198229103880460521411819491183690058156239634495414082875502002986605985475205070515075765003796697533461835213009906843515882017580838578587458096738697278732920596735926049448206610673171908602118918389861009966686102186169952719349142850103406780290348942700137262950599016251178742335012001706787849267003794933533836729747454723336127946139455622057003727639094691531872483398646291545417709467740046552565704375151396795657638322566760875796005411223480637161787384992473898893001499281618335705405970810918162074015561243392374278420787043425819868267284135463475062431589759123846569859293626152014967697724746424944344933708532578448713118554649327684405317033698890009560641710881715933235532505204035495400809820951577770871019796007769992621472939149709703646176435562122176776424241300583946821790250557318130367574034641965160311982530860658699399800921956194421307662042915134215266760815291139630419471833121071524193291576158857907225331812960868032592853068921430822682669714958322809496073222780788029374071563193716200034512454905776410608873775380729173552794140816248180552419274562980828646972053298159764188522505744529505129278424011580152666813012347980568686772331524819593411271946320516975823204534459930236996347669835413818827808203125324169799183368259811998543870987162006295869942096371425787931494137285043401008132375906583803449635188630141357157082155619328452404840269094578421883870210604563517836200840826063162381092487743745464025319788134510624377440244342848663995325710223300151952951065904417352921628391972645634025337549022771208147889200846105931554681151992811435229693371229299050509923766092432875512069150732481151270523973148716164791176960929204923719542011155995040370304154351774584607728947509194160574298743915203478281484408624753349895230522244905838410184953813534414524395877807217793271359662654429261882851854179529751744770406927290932085089237098391272058764045092682935222598141547505210515666628670630450668767407650825587570544219976620798533344452489326613936679783656181106554155325480459546318942060020004024155805383201801724533233107155525776785210082417354256999602935097145112324750798571241634598820670931449923327118570412966883117884638155404342735032859567582233116919444529286424343077989423993812687015713277786442367356907773741724186219294785074090494065174448206586871688460621721176443916244425173961648010802886729790352850592686973486024511360693229622298907701951556534236606678197657439723471277295494727724339436690411413434656517663753594972437720893334313375410439174956870781718815894389245339747202461549888986214702430569625544939493914625127327173630564757108940784829528416291902816315550173297952945604471156945432361313054650475293126251064862026091755497519336758649665428935599762440298167533357184168834308831690146742820178475787525498126582056665937197632614775782434000093058552817808583801845090607970018581176025211347904069576250381307758821354833629147587315903003156043778265922133303517782787685010485324599092879463165896540439191313283230674767313832733809679256636314999906877962603847316090289274315089460490715713563186231255082787650417891231121866007925439869402610844980613220916010162882301961192393058719354519720839356460166504497485926672643843789129928265419729333701251690374986517921386797770727583345295092404467484576142944740913774497140482065922299479533091215790787035467189391571425427576882950218676789007764001670821281843001360196995872192767581204575728216457860583225617431573000750853708110565077313569997037300002342557546047282709503538897285185919708243961357191148357596392640499127107356550791970030036735926158687973103392184489082304448244159003481584216262464451092506288478810587766496704544852562961871684353800162511570880116568363892786388032749890554659488574380971956903167576403699855111432550954076474744111127906453169748040467982537270936453720314479723354505227405012217258634496025054090854696073809760645056254977710702505498720318412650167390822336423227079170192597485001166298770465874886377871490615712813950664135228482468027384813763354399186972203715650791367343736519904982411691026998094721608086446388651375846220812016312720748955754052385697680059609329058411443066748113914385596218742770598887235464225035814507546125796888763975673855376193681986523721830806384164952572263195772598716909441902849704515102411122693674461091935198105675060938514054575965206968369834601663826999962176536118078023959374151386572991716729478701488259422952413770111036343558493093401082417794377482835608864745911754851933377317873697102737143005831179990416321710646808642502250852965107995549091439580803812853758890870381042747304107490021242370606876776885440534016693771145930728078111822342351049620441274446748539319653606608589359671106490729984005014743026082821352451952314132124124754911696400636063724630086712555248407986954916341634882704318542986788108663375755575497691322039727688161765364991489763250174905674733955128301165089719196160856133543126679694957244264839273166866052068707981494136069959779754696744936231708125460727356570716096998170271277642836870019938677359964064503041315814065479600519827813502786770858851828102119284094775320779350877421423127329109487088425436327552504904061105876882667840357953851721246631517599361036835830168158378205744301205570985952176265930217825105255238418966134766880680533613853561885000009605131076132072426562019707222126264314905519106223160262872603842644679342252538177650773918290739854594091301693329730633768088565628524181021418185433187155239564226555054858679678890748307951234066378289002882734152302243257715552656773650985326606075474812713072110908265168525096076490422249427703911325860381999593416280747056243427617517358783377025879734460573518844352017941064902399360715113752607727455075362101638370797410391419707611716952789785765569050682613017358681705267867337114350644650247048205662469613196367620444880980956910854154599331982495936613834130599816192712229980227236769307907615883229309710309158103164663079191333962138729225178552912529156732655861454178179580743244367467231111696638139226308468802822273595821932216683599660656696236081840117286829824518575998727141108220675535678635612940073375297062190533419286756898727430372855099825562351503445184486864683318277565788271177816626296386327653092045827211413100410834400415102216158004723049695899117217237646761403579910977567891479226270646000745632423407680761258663096037602035712946851854370629960030119365667085641878968111805072987369520524678024581465396967305950149460594456521766293195432944718251307508892363359826241625638598429346993778121983851094949417525621311053309317013356834988994331669332092579418027669746925274925101321494105104324984509583110170894537304181285784091271200226143012787967526997943576379551250671694399310638592623565079326081603042493836008554568448958324893398345222589801179434124142250133663915883978257200558321780337671173160172795039575564315470982972474970788411407379806750019817427163413813351180929453002861097548894838131596390418819073520383537144383412017324777463867116404942228185631634412344023060565942647947976986456834235112122687801384927527520655853480686789956468435955551935923992063969039605495048484288669676553248310880455745973217884392491916010303937140539629125019727099045990263749226732236228612071316912967151434936402195114300280377167802250920881718399152376176218859550413997503926019536100840199019260859981597678247106340467044497735936594741539945737547692811031512735092823664734792982987003781730898027866067887869832931245731667335018260330479147042758917589856400066591045704421673245094812072741962995076716387487747549094209361252071273061648027682025980610299320068091556615171197516189592162501092863681478865106328699089139077763096267675264673488810418266156071034592390547747609874967375488097062705501514285821367535453255930035020806515654368068749693627382623043917225143331222173013942807899860436753941366818603435871070900837886884634104744569099965548400211488177826121989608936159049263044867083413173975632467109579337487865441206296300674848693718790018483301038594156717404200937918987407517880476757047994819829357305134303473788058027803580783209766579519665721240325823264100362726180060517749638520874105401951870943903017025165630938189226148979687800181560160775486032120403941698709629621250322222229933089403657113003613959822101611767525429897829160897933261361892942532469478885475842069435938959477458074072235848452859516158114307005292541997232318846770224257617082325199146555931127727457905574090130026024077755852242369214634227170545486822019158834596170665784592501588134253502369219669739626075662805363338089718210028358974215275076046481902744961986843062596107622216640437914780107355790330807202254327848216806318688946746090577380897754618884778625904670576984560773161362479374437449347434685910899952960102579623524228677090620094060694678342057526914413162528509281872141617475463999839315583597620259787785786363879406943820280515815797003911539012428879014730143199603227304765258545375384354751028932133293744277489675647520044562607053931735492348400935647497138782275909341882566985846748107193135777439388812438533437143669897012477838028675590805890370009725011508539526209252919102377306897812699460453824681964964041298664010006109922318956232680873475906493743956984568851472865083667266496483191711483053012285772527086027899053432947869645023594464309233020400230250580330155350121737666134031532952349350081702108967369751376757506372872214002568693528621535935323772640106726802448896350149332666311513220660517116061181657151133722504206542415115634898770589960418755574808677718134349790191832688449274134697290746276943949539402217540345227507614798769113929273229720158844920105363956753020543654630731919064202320050707881936247008395758798067015376398812905956862725056248932846688028469295174248501848703950855863934595205346052835856918818441392933304125371326974943548890089201655920879327462060842344402363203322920848502041136285421589854685576725131211822143652960108156401081793013727924720149625695522379792673768369069644092910057562665249733805019377338082294055268350343474915462244957880892744094918396496850847312699663374740923000899825739596550068334997742291422043355178204697162747010794159700444991542145599323977413621259043866171789115567087333440790114545224533130395470333618794676544158465872298076730152158578252311472160504199177642499138747142700384206611436806209258031730465859996648521776138671391786158532032135592002922178305199376008147163060557980417213526251582628960149414697890734051028808238982587375055524762000879630198266975331295252674249721364487921086987438209371342112935096489803529325662428517107672208767525679146125683677615226979645397866149228817491829901307015061042198650278437266299486055358983903773857457713758602350088869388607321905178520837844349784915764230803821578062773620923319603516929828821178022284243646136242859608684410478842500275691114012344136591002375011885984897836479990951256380985570184174091353324301965616401609201091012049314293785141184350949969204663290384041578029405050112638559911824007719628076926176738161331037509898778677784105472790259858682484266577246861097139157559793587656897253865150509385834413061655563964790536375596746729453852714480493334397637182438112553163324446356386932250039905952258352884917039044628588081594795415444369080451863021567837282523753002268445112342494015242033033227168285090879341244637508012935683682977162095758693975162107691645500277432547704257519095675157486955017008639800941143742788893037901082057910388205768243816059048186831140539117167126056801836144935823981407018150519346948372449608147646742328509899260065852744390991293213482313881985750823115786584699074021542359120028684035819106291158199593280430997913595948057762566149662874383151957282344091668005460122716654140596390139826900825726124793658619642512047420587326508239890446147842597917907312762984556016186256966706644560560092409905549012559574483634638939031150626113355081506168756052796275786861514826216137719733252472546957100575019812766488018706952179805630712973037217227632080494746845244329019018568327795735271581874284131943961523082740775218907724070413594602421693394423724582383946853310567587887037782304913013356532665113478505528791140294424552265257837326537531218490934007707387330817128016297666364918476705743779642164627769442973506970027138015101996945694131500860350278104442236447627075984128661932716513721633946669793837621212187227997360866523498730910153085007762223199021451924382720172580256088270865873358402504153475154332223809827398409839567182256166097076312169997882454176655142607744245726215698746356833238655074853129687156069229470134556575049463711508260231309125118026482057527795533444067605076861429975051986091973079652216020625303271111401311208311777556097934808454556264115636377962929409050544211348628477136809668151808292936048265704773708895481509849241050378517254838061961311431463342375674924546424229237949170229659215951966492826233614608800171628994421466685109362351677129992369499231824912084744071455785680016373693724924850604128168366215626963072578069117222249279371470175595732213015947959316657246302935029342205424725211692233756277176123269864104737008667154028816726029935514116824229093009255167917352611178922286041177867834666406736802845624275520874620876404274498225625025530852720926540154797413000518130181744909468258598920973010471500622367336932924208166692205998316742266148248575112783841683700641822503034267457085848335942453216565244785401880996299838206537230329464069845349411768602479887578477921918073688293030075855245161157200365702939368249059120755125218491251538287083871561797556484496853774645382403627878209952319938461315609373775649145181891258758641832227878496521522894684211302066073037898353120186145803779803704368909223183472936077924671218859798002049463191405860854643168732397940794149696021666112748748695949157590787152216736381191094871662486811986155085344605547827048960441257812540327379022974656635897139549174499786269168623133805628807856531232815773636383106385556263845757313545950141688065792848154281092861498326666795863346805662310528976367472827510544041712365623323134145918894366275760233011540332201910053900677888974239700818947742322008778106138152576129615100344938277949338852762763699627658549389612812920127397772587608995022531977979043874926482187660970292037168043527779102903645753675339250999431654356250108359301884174804802999661919187003203849955939024970216594590822399765236134653174691634539780930390887701343159154356240394879320463175173576079748974414698526359580270953257487939158052264607812434827702872366582318258397202584182759762157843362113440768946410503304669337130660572337320705501757059030754674799229458706492537254415824602886241846469249723730660908762234304540291814188517840573923638061043273835107397476109075639094769430953103257020183749487919079941597825800091635553638234701259519752127156503750798973155155156100066322297412480235303625625026876439531643135887889335610962266353089764440820503347668988742418252671103278883984119643550994266322315072235918903889298405384815126911397534629319318713648533008332079127332731370087861841462040980180318497521337501304470741605496856845852214913514975566755456602736807709532236076030005330806098517409776632154460347221798965806547760194354851259994190067666773594654466828852856715821983959139828475794218614163055411000866422675222139858765879246909718089626507491304168529114000362158756691347341022450373790348416487664735158731110869336649878079634595446820271898024377177882878979757300176360329136840692481846318982212287852787869176953575096303173126309590823656018420990534701141059537142442964759950654844797797862066587214662385697163942011719454198518185842328173298609090900247721443160167389145811585985377901370476124882315058304459879768985616249095331006204931880712557444574666891977571551413157972735013933373828467199960920604614174651604077207344007924629131426424744385369409544655348670149618450895253386759035343414641614523228792331300909374819687101380778106100693600844374476333414942474387527390361036601373251428142605455995731521763616888949319364995469657786314766591021355303694479717088701998755920760289475087952144355950801391752463420449055512794245681147910375202256496654066121185689932133280055781103820162216690442340807311205458603927082755644606914486245157794800055260708090287341575544040795336926343994398979060335452534576060317761867141097918750521107393493226584701370196468021847601282091257811228444818543839428014633102001866708662650291422854258304485681074369541888285204989712004165373860371846196618372863631534165561117186502017872493776930770681877219746649209220072666584782766977146591293277777555627018711696985367745268303536967190695413444269703095108400479652542569226948634388531245331785377864790341683854885537521310358631290657842723058253038307805689854696355189056094382994366234957931692810772158053802397891851108989717181112210596538397796672722644285378881293679751677920856852083606167326166758315742991435933281728643347409715241171037914991580564582986785493740690771440583453487786379853853461357353877269510778104616236720348280089234174222076351789634989683295250305756925781057080644639508449289919122805208030229957568880960410204576259164828998279157887393584120307570461604875032789968567648771940565601344161756627494453845458203179892400431917944474754661308363771494960768477398257512866932374882240295484177605674563295438589853883362833323065383832754654683968702911423815857217172037234967092419331160291089049583399804069546932900431959701794871153149284069696465878479610735726336806919382932631418226632224718752149159558927303672277663487831332916768678500893437280597041536885221044507015452651835756603047117318758430150788761324122449213285134883845758054599080126053087829212433291441154473867464852164588820550098823252555858602713822442050183557713461879096977597732213040477122513930236693305306998000049329054267371240353517342283132272551594199594006497914191047287474584669660245472684880773279470981568065240852262797997436333777546962736491694879581854420480493327819338314871298357971159284179664214526794215981218302827226762955771228648932281414063477350303326854598033182853021109109514096789012721111169827970842835711051914766260580282238740718815134786126739905568593624639094088551073342053966066679942467935545041016602460303057551591504232440583786342586324442098423533563746497071786215189617074257501031527299875637865010287112304736923310465105304964567662438318164277331235078560217381802896636332408792789806528424491726201934146947721628012316935079771524059299996960881375534343005175350825583962886783408139356564337918917116648662554249751360774185263620287600744201038119505646789234432614005398549353469892383329974216565033437240444013550240399954330615889071145428396735892703108714542277558193932150522604214434672086286453325200920795124694888737839710146016099049369174273986948438258349333324324324394681102843700504074634612704527658834899335211215149712324262022283120399850968508226088329704944680167475084322746615332058704094238685938144473810180699147410838610895923439817933450124420554388101009284843660453515399824109568182827922628629132307329823018186091649448032701072709565964744547580382625296614387397436752139796406727106836711206963438109545254114082063560116078346942877491792731081492757767875743676186945800334608384656854099516449514091201805620910811564979579102055427543904441988723406539293848275543564112182334895225724447831815652432478191120743914328416358814120438992833776558175585407872003410891032838729243649396188298523924418866535792523177002623971645737424368200684628913504569087461375591745968944360826106024430554137154604769013387937142863548748209318254699275299151371040722483448101797927643724672444214174640665567664079224787635127663814449289687039623346702959353272654618982892462350190926631133507608249704278903373393715361217813726717695659865724802039750595930889796155272256147755241306767958502584899148243976106826341366837856899258611070845488508414523086347710955155886668150396729375096857085548059533897878497771562920962058210745267640336077316284369616217005040900005304404114435113275711318796069386470415796318426749602490203458121434772322300277303620659080897707998683345772824293290257471356328817824942895807843682230896203389424565696079217329922210171118613084373866884384668508781835823315633221555433216835617051103978342237369279326978360346081005761643875467173719469563146886700074673601459266941328319761662498234824325731927539995549853778864070971333929698962260625068153832798600617152556879992741915186980294370687985565297664197474690277901116532316565763675731262548854589336538658268116005699851885456187171891271563965484272264461041762308531797196277822648988309613527579956093898605852514846375275567370784552095913184152888988816838170190000689405379100847837558181576893079585909666941648614503530153925906987756528287893696615698726887516268794445168444003406110034815236700403134224951037370586854159296923628114887446696435586300923755918967682093581765459757004729440115637048522764842446900715841705740022286333324828289893997221641275339886276553871093558107494300368700608655692500856155084008377961979671014437291052396975746681705674078220507262262877136109349453932443933233623458527518644471993300989031819092446429397069215811759958598053984282026596711385442668292718308203061842510715030851160525939178722408719641606979780507449101005634793102635928611361612387803671178905108597465885441217734206775578489464261284437684476542243130266957163801363915673357424121870426523906601911201958180834048356945783985708472842707546258849009155406020181928845926562506960828625433835479218180691574360205683894459587891741376570886177347330864995522977684432696237159855518833737268212507103221867338360388650910993071552705221561742529662258160376710234018765674478207401619847977635001691486003421928878797257604563483444493391990734916968046526411995991070175670678880844738015963115943395559488320406105139900145558570597087280708250133910816416859632486164688490533821639111035345463054283648001215805145939342017139702539857965853541446837753960560553311233426832175412075178721267452392707636717133494188576670908626758937622290995790167726390799650834048157470868719012708854957805496601189972691835383034186505244455596624925274872459159675397247022328159834071586143903583787485744485600296315431767514353134994636571594813331567143940451756575706355924168901396417598992750308759055458167284025061291595634568311655182564760319223654796488805497216654373706221969226418624536433934548196956455020376057483763949850298032341248829746332730134865418287664773120513825010472037113086662244576041897209608883273054419313648883644492065611165038988273320289455967772044395555050903217360313531944829163847194056725684694455926310155607111738012631212415276047834554693212417903001300947654893158029091530062275823720293606112960120316142585507188414779914117433535282574402416434168176035103431933167410292139453708830024135238059715952217140755947366214736235265599604818321548672119381407823126474800256445523209510920656963554591692109738212204729145654834038301218068184896122482941733784424342804970339223267567058166549841354955438935560432354638282428451737951052253168774213684679273850677077386114738197197204673327702336756659845526980613335579559124471822162061112179292051968855200815301120603811155538988664258632398481675327996534519688979667086349908692989939748871312652831403397549664308849958220919261469690494631667879432105781403495280375495992831466110299631999451365642887661966515714279754299298243614003238211989448822572764179271812750982258999049473781090972825554272280594632712179589594243878360934188919989117641061843058142456560503885136105486899047413238551493548679841173623602398870310354134674102535584976043470907496083292570032827053666438304753353156383870349020117464873461640637720666572962902781695340892463664469686333967172750322902846491850366387023361208541222257277904083159984459090844283950369316800508701182722135982337850341472374566008083469942799395801066551875921273317852971376843854192500696040474383805057867147089038533717685200993334389069021971813304784610123536890649301047923340411559618082945455573049904761981022243001093669520834156239064751166154861806392890234491453259092648337175553103415048669624801758248312513424245096450356132455164021747969556678394151930854067899918260962458669436889984643575749467544511402251172209721766007325063593968679808891740548646992722741766303941081226457170609597992635539823466750698738302184822429219526836070602501462149206984311715735207678244627235520373751414444954476953495154997563895432389739040326165789081599700573805778155148732626255693810103970961599270498509441126931896130172338724379208768890999661269146493765095195562632496065814116700233001490243169706005507697692240354695413339345656930975037915591135096669125123035291320477994805394778948557846896082016192699527976399616937617554303635479683431178677945304260180032465498142276746710580158681667162458172838302635323636425566522048893810108120199567194500465194463871375715659680716926195426762247694344833083373685497037937652960312701458028161014126416900395575423712793999536599636141799644203231669207157615905469974369672794156068732667083767244993211338430878233104196058979621955673471410388827722487513757681751972001425364479620376052086247649726124531095836183013234591846530262290783806111077655605180251347921016486036956382210998714882413187183016700026201539626034749455319092902056623873973506254765032035992366090315119832832594529539818331436316253325287456694244558645102795200679205994957193441856636038246862929228693129055539237173048442206523011178331975581037019263345808436179378930441774548842482105412307091310829288979668540638999987353719770331210873810615059771980586659211930326910886887777683775329143537964126899304436167596673414694741281855497373767197318986434388444032365878118617706398907330292647603652982619198476003474985852001432043916740454714171455815409852652236112271477162461801032338310107640930963077361739673859874415221151008380811214012875492388027549031173874787711929659361302145502804607531504383866657500798318765235023766390846313923772375330852543765957465700632374717116032120607016285308317011738131266862386336939662100671343620374373580538934473562177399365244055382200609914137627946621643936876775931551967194237170027504309078574362718246537351429019403939231590781951129083808782679079446137581832237292939816588485234945383084894354700400644809378345476701640030611038416819707108186324975137637108348241381947770641457562863210255490615854740861492087793631022315951784628003534264555697929712929813597675375642198780480894958791110181590270678756819647529528686741074500979504578190386580666265933942041152796370562892616344578641541652773035529635883391908299533169125003832208508266362010537345540551004152377664871747193639333046996519588046278790739451973560298187161074332484818698386274758633301784137813880621699793430112177886226751678692200471937244642169281649938139689051464730769657309402474697267827575846894235768309058427485123565842743735881800608123356824147923508597070578399631704294211754596082708773167918293677141209733931040455757905253095944663884349514735676650598067015511991031677568424466932475613712068411268642449536649404230025684396483079242345569397842504753451520654007163555752741219596660895465172247954655223429496838623883324339781684891880295444972539081574324510391083590730204551622332118739407763991421109745959581716576862009062680748362570416735306019739284336748236777893891884797379458127068516153581072176080127922598822375880784084525382122519947840887058387908046162832667150136743469303651687769659855922528733244465686854508492791995448491599292349878299197977743804005600182587431305561525804356363471859556085207025553441318457538908087028530641837555155887089042478383025934348756827151524133876085169415899308337396207706666671243785549657693875983135867631001129091398363442916905304647957279419128370629800323697884356862660162130580764469392287949919369274342165560630859846579945303470437105309598704858600408113505720809027844044486290026249841029109620825966053640313981374249360141547607239149611592025768914527113218344379686374369904023653289989645083292345285748071971656274351369336246576519877615647396259887544283689326233419081660068360284724344435778584684735587890190189811570031314084409410652767275043677162194288088472278947233382219836517902395858958580303313689518118583032815141778301742136144780337746504440866601858974077581024622563165437742345803905963219444084628281403608229880605109925778767608780590128581919328637258206756619188082904094230898627867473821722114145571076901207343924050092876201510589991576024847456105103254778704005050374414278077432510177697782619255251851687806016626668876629253681004557701241737285833593456099103307339158654022561523394717526193444877467932409139339479765910886458295437096662727349597962815794906710065994864277006825431422026779915582917603436112693000821013243423994608924531760681535371679606385560422385951562707852612861432816195875497228546340862118460142039118774300094190740942467048154472248579065003778611245276265097844543557738544314649033732196648307089147117309973916697243070664609746127701638056630846491174206313486036267904287250885474427663706942661883711261479046691982367983526151884115024786691041137497702991702813029876530265005665281782769062595872141023440585960864514727022396725745094142637687739840804303477978722292132460621695449072562106538160008508412869257829058534895208268334650555677766922289932955547846346138371517168176001041358730407149582053086901132445699699538399980932261392271192691105771941073647500658875569606648522720619767151998512718919340366946166912680153003715703530696197520504820025950795042446991933459080609909711297642567314175049989183785338181942673059244452491448679195611628018257064175871444576981641775293230629283191819544069262308368277151272190108157847335399912570136888284172772425459560912834541897288960468795917046009323283731729502395731765758467394915108407530859239623426138328943818529603357417640582555412179117059928594145502112888458997106171639299240596645288916213578928673922290912198775404979697650490105407350115687981632225637200348815486203109753286859883140198075613616075072207221884784696329641424308514597795090941438962632652243397315725191904884574938167929602309505057705667014926307810844905574447684689542414446164512385654471341128177133503936136933205584698206440670543091519057431020078185334388662814953479907770984430761885284596705322089466749123013845358963470911072626087431478451257903543812430384739407695688414933909900302359882577065255262218772712777241216622789753022023726470318655323400877918990434438004742307388123819059317053128373341933988786383208320404968999675369058244739403193854802202458746950857334228460792165987788278931273786348580711576598309020570698442836733522750214024625783694413008977768043115502027929480163798171462134288370477249772855374527504350421157657412015072835791426346622780402896844118521410671041535965017477978058853759984272456582271615091719745392836796547893686773832013216384683327690268731797426506677118714785508204603999744234825869468708742987544719378226547808066661954968306165140967049250208835957341893582810876631391826957841383317170767391282738970731471810072136900943305268582995622694282094435950577027825161675601291453483032789928846340156272664819573015936087209066836546526252451595454449731202960131191594633842685978287774527328662076268610551207120573208571656153217582551392254952802199775369732060355242683657671886724744769616407702362048947544727035431503575018973637831388033585701473123995689161544092329933600858541006026102384425446355518146644653657645404056350534671821759328152817583901401797494198578308814909251634791349325970940332988072639947065181299594110825355563937769500681437604988952331229508392393329070231168974300321536608007418119567325860450753920486905245730153922947183237605820024521019079800016736742171105709731606143622100396815774493293307113454066307248599043841337878825619804807917913006951448118252308523461568258719792678384550694482798749555343948308062451677699719192569784022424097517619172995093548361690530400624165418675163616507451980279858070040336118785013003756838523415976225252236070924363008909012459240996542365969955487494446155386436189014096251902392457306275236018480822487280968297331089817495091725181876854941340884521944003484801109010631557186139737474743636262379513166498396640739504790021495475182236003398638808661178104620415677953629045870621728476778903000712225460188599761559865764847522083991247954884491532261577592182623741464448381507330477674555191634019547327519702416208805028376135138237071398418865629187442673798651993736813247597718665758880441940924947726546463676712616539970876590687980659336013177106469482244738025185535061333322922241479501241271601067066512266903104399922298545118313049609037620633928227969233818063908672633824732215925635096532726335585591174656935476814000155704971201560272226078318055359620664202952628359627394057669227402287493328070344370304379840445250825599318427620563338358551277007118799029002629025424742088215430511511640823069548451456983574482251024523200885240594391927751994041502567459872634557569230271231638561986264325412223419905494511029334390828352384287403928801569826097633505440585428390347464461562992230366975200918786187037251672806677814588011392365622955668681168037647555927529448742158426368124209132597567237387683597950945469145163132321271141394206948081379623540267603511859133562740863270157106372218960943924764663356946119005958137257601211529763018015157106913727338857930872121504751018861869077526728936990037835692027220790532707251719494192015840380138891386445733695380979607583343787296538944871764401631922254110493148479655708414408186202821733475264705491830798327369222206266407740261715135890279647960754996795897504983290285411275070425721075229065896532392161291750962866674874271735975483992055421607416804177251143728406498639236888403649858587728072192278339725210417799047591733569890332071947489843705909053626774189649930120728480791590242321806290498284566840163235852231642261723842830880057556257920444749184195780613933103690058511671010659374151131860350541969052335566689755500648145022258204618309877729666180274529979396523493508072044236777771604927274634198705134282744776037619815777975628889866856635489487770129514101737544665497273898862114361750414408012104324016255627067077884891180791570397936423834211086849636530284446941926451014661851900111543478908601581361168643164894065753261573746956868727592042185021460054436625472956798737561255786514802215742451375959502162152004655226766206905778020400725771596032218806455240033774332944001964085973507846806778766169092411103065914594087327771603543201746340747447862080892632738400533021189078480808103786868265525422363202232215590620080485795231739908905404157668968978317477238214305416453567003809151702451854308384620126794483778159564979519779586409433380869960832872136645530854986710069923437282267032364635563783606684161164891271130758741626961323256658389276465850570300568323193054784718606859280740044328064265442687743471468261380770629140307389201725718196357212501906760365789931802575180405873165388061051727036559681104806448812030743294765765545904774632204617473009176092644128104993676982323075307722779046387935102340029008724561488785270841738179144968943808644487827196973469778996704754165433611671778348639720222109115644882491558199186296392427986483286674508175540739873520145680436977561916809589756737163387939620048586893910577874556037015194567670003460806690810523514739769309765527797795587344999702695882544683285441339657480412790001728002243294826154813158459167120059401902050977258061387296085079127932061647898976900850269224504315932824677692439033695661731704212523853142479630024406520433186597061448619552975523756646824859605697079196039972935687621920961044722262917833198919487389323612095990463080240942406828511510098702647482833231210886597881369226067797809324975994632109207241188924238073621433067106387652144122440935632333745894737948137307872157059736273890699359246700952170361618764084641588404178556260133124693359884052645845432046480977870030514039281592433087267686391578030218396309899430045017493099566125528521706646930928187528436118006022174764440493784089381661963689554890716486207167624254352707860122889800783362207556237428994786844000054893614568601311694453648138289761229081766202552649589361006723195194457080052855795893112284944004676936859503693463429863959138990742096613102164310140959386391994473760193597201175230264583122016998248313576503441774816285718192833519360698147116595682393441578314806596115535060382794825824540991860221296610649642463908287790536341726711920247924077201621898839537918178257295726992071627404058572594068631980450956758957396425581934900243971829108675897527563537380734860250449456625631999655156784790937275868663311345227026995664320773907914094363678170588039213654973637702524414247147734994176268544237520291456338987295127023882789649484045192868781316099985525140771036757009764160436683939793296364825241690862352807095864919630545169554594850840500373588573496565159820866163075346187818858712701551620816082273622151986955941778308185167254063433368604968651536727955548268252229017413436630506578842843308243784738422149373594540797911661293819779680188976665688449812327333062564090753440348976398531765025807223791245722085030169811658843369186853418069208121859073814207371464231618967432908126192771588283603251373594445059914042980871769793506453605170951507715305298343800598550350109160974253639744508949460815656354208256920414854976828290297496809836613463548938077982549319769997396168295769422974608159632108553279099900673396053200858116908321411028886242849609002221731363972452601132560665741539926413683422655243710537486709543438814009730871012430485155201290451401610098502250789267455569895044620844534815865147203914028315467053514083527010569853514151710667617241457844781580720144563568802119268326496030695604564923725541433069226057537103619649308084477927175426581343622193237304457878956369416229284500112775483456533680070964737137925517385904084011927730766087704837891521159013186969618833762318864004063091457770276821763420626890569753582920491467076852635179086466197928375893140021507125844657747127650320317557452073580581275096406635259960109530643630286730274753590249043736737205497685683472681819009010228507738606258893648910145977931205700153100119845571140937876082532670699382444289346478580871715566341564342747671245498755137009112827211400695187898035097711563166403541113257355092716943029701689481954966447766714146130779674349849800765782459286982051338936296899809703674559339011862236416393936013436767281555604689940148576029575918765435300408650679449430189104764107605245257641492186988072307373222338449068528288923979232479298476792031455310585070072965227138189444114758725924521735561545349958308880824032588920331654793913596519644730969313914243958182755069218854935633150791918944800584662737344617717794072054085891910370005131582809610602484865850875040179392508600039355169928721217714255791982243655400164529643527910176931349863424800260181285785181927554161844133879691375023472359698228848509377993987304567219534325515997021338578517229482490746415068527837554780054443076982750312961112602294519582199627505280660746741228463594230238980700306484649398470344287419582567709338731128700830657030691166420669798556739334961362479635808126805952206309362479070098052159908763508537772645838048812152160277306777351852792931980035031976002128318720250150368197046993536438341488356744036043509805194655783587061815673696803346530921459205842050280492087333573895598110192737907440621201220447164515238803648922705162374511309565107672511982988748791910122113492231165537104825722105764894379002126849156406223023863503548272280495316705708657598912713077134741136539446164084803519122384043635301947567832068901067965829047710009033057923963169847686092341757301729866984520100622971415732616677900436871078986496046411055294523736070344964680367653730112452699429353682468848047116940737248739177673281794017563245814910044690271086875117018827018987862285602011047656287300478333474816832936883099625594295352795045304149598940430592889514992440778118734279953437454747235583101865150850190891173927798901745058431836945833221719714332496326512689238509335959496415795566324357041025834639717986746894058778745146105446435491618645867605600814720425590669645454953655731139572091578954847234384899207966069745511597837486689627602048646158083592612162027844331411473035214069818430419886462278408722539962911299313979241584033301161777590691718274520239665195532552069000638589908350943806888493080689491346856540450396391797711952588668741849919016227896210840611300783047056805128193996947659087789984276793789459256417244796129210828760217383673986440852077479417365230214218376626684493188798915200366225819792146750164123163710232195737116788554654370138301266957594437900009703582531198694338378164441678779124365059458740393070234380653841501378410895705844175201304764414212310231169676525247182214877608025235927099466693187370775642699779019845787562882761270870237048857249483325103191642733462171824722843568028909495548723824591346133234108795888318823021663107261771734230159445871977975377424788522270299516080374526367783840342546917819385638737041006933275956009092837593381415571271941017409394416984634849901760578120634545486162632796626331867396415089101747056977565319402074179282949511614957125683714803840351370755704966088271664918286889562265836240506409168451277991265806427080482743580230644135089422008323414749605297926993538232069199152065159241063941282373388365948185308136955613469110038902489993747906871960571925508124083427592185225400725293703507998348243107679529286234092948418143662631382365741247149419875111394891914409429878807974431976386027537251907258244241703744586386772257890575956909893833108978208706079463935845462735917650027566271692670676353565153211084247258121544532641462406085586177489007302087158836577526683984522229760782508711349321144765271484534248406133170965088648555918863051495932912637856504748825789627148100988182411453762372455799115711524798046964888002566915967417436076492477623214486320266647295214845502897816178074967483464006347563967948733785429122586201675707305167943127442887967107879210143387518129454624980836399889029853008610192802767611119334129637258913432298034965424021260301249086880183336359876218206487452247665054329300950952131875441850276780368081494777977966376060983141475393445933283700650972217536889545619228701339000408628988978004494346631808731274801991388406473123609439521286397979316586850556091963335017985602577543195446935202897418905993125406871937065502668860866713299313251311946736226001486054448635155918843843463898354665436708646742067636344854779608107414613853352493717120598364330610405108883467718319712315036154361259858514575809110762155315649402553082557718462789069901966428586764565975156431151652019026405366673159832817581231579728386732396782228257855534883667345054131956177001423825692983917892093668138833801633523095283946190202237426191759998455273326193844022293589384094919509973908366852151965318354511718681541588742752138986568311069285473667160028436012003933347801696300354435143588266042675401656049019842687736780042448934819863284052916492683472731355343867849028882287720073986340186450192121088749675993013984254914785270332950612133576665007152379663501104302903137580234433865889841737077621741645494692967148654504855480866536866535940547992687217486233659714026518835533523406640411253759496132936470984925246988645147441193765507378450629707325514598927784489921029407133616092594757049068507763677589817055590116167442461625657200762230106527387167404972002730648266975358757746553168241958909733182667534754400962743344100499161089995761242617833450218320942074428494582548942585063611180866429060324441125822576656498976510293583354553077276438080582180068490403831356470928424499357098409611167262304380407575527194067350380192598806586576193934477197146253468749516460225026271620244942880975134365311259015492641429018495687179336461237285403240404565500108007059633814334671358530331646079810872283266024844345235839825383020951453825359804848759394316724662337795196188886894204056241864767929521644764128085178024588066001473160734699901305876023756646788713310701066820395255238175496710057381445413425025626995786521910567836594429988339063532032107854043277298738274940616877636882729034004040886807430028103693038821068278630212275924348138576420474262320851432883987199041993565402110933745877099519999721650550721293311529589512810280481571385085841185825414349260318881953209406717380267643898827673285875280833704492805047846040605211000715005098571857190953955909837560408856146836904969051054131085397954358183973955715924754288354738251023901073069386182521337409441436766665824512050511776516755026480623471497267072733865259226164702117875962769272547245324396786911174542967163964603981476676612278715693746284627579396723043647065924920625377749639514050062224367030833436891609292804764838243458590759990275902037625983985126535128761721157146970100256154571765326795280136815804240783381506672453534139267491559358154805765037338947851044166847650826029132401036635360763616055352737532467926963658816398794591985327461409663400053987408902311934486925552614596286080569810953886629793348086933157080827696478837798914631546883727409442330925176057849251878552385338716682589823468571267862975962787176507218959259774190819520656261346561093849198202886717499237192907616175036991626821407366265969860958441823799654967124742720873291170441434684626834994098609629851858939586173653736210417740760856430924820207818984247960839430950560711200805230131723415775708244400615764371837162534373710938855216309855111195513892979010594267746704390553065252513745374031114399722519343265667157259887766906278327833815116545185335591244051680147183210828178294178903333186791570931999137291808692847956496512380311999436864746531750663822589604608936163078042624547439467654500185090801190492938432334785990305578811447079387692234843488629954736215433381041928725564262575079358366794488300461972417836690698212937419834369780288562453206766480416498510698926815117858787869627669775135059654044767967511233611255419257433262898462710061566516650806648759833382830044582152163490424371825972112671937576547558727535067818740911695361629329579618423274561518592070745276556323957775002474972543016019389304318504463001930970116979602046630440952552458951174378261451308773045666855753786906975919463975888050460466164833309873580215781924304320836937404864546557107543169039693949091507705488119286927561979917923668986412159198387853170823326055349808674904071512368486167147898616939977980743857799374199851645904125003417111909993218733015307679582916482176419631562735881900523527114379523983070986382336933506976831398309703331698191122121469332507382976291816177271520244559007802260661939318374389657239848347583366790596701879598682976935808640532487914353649656311756389746023337582883870561210074756525582694394775684930871893019942334890513701287660860489167908528664822939566897181964399991271552630187729847404422196864344900136301053096144666278883600029059767897468033853359886464135944835730910993995070131258920222683360226367037172292979221410097218921784486486317468502681249794068420611301522706540478500209132461629261350712923509020838551596885164918052807889848309816120341484889632202133348912493033326607278986377771331886616794162642038850555509485078561201812089469633508977245730734038493082344267920871486727140684862405541918449583291587223275086753900250811416687619323146409458272462869226965887960724949401056382051200244630454884798862779544075443181755044208896075226685662717771692719434039366716913569873711348554930696980309995805589697016501683877094432322898356141098072776395274691878917892994650329881975210775931844642765357310273521951736433801553703475407528463259316410912243832794566120275351660306363027243714427337795931712464550913660465517265211100015222191656632316908374876432272512004029313385363020118054251016899227849365566049556019454530690646932922518095148054902400946251224848744698200632960426280808878299076484218947252981970903561264344480003470481025713507476745879220152620920630459006863009858854227436958465979722259786174009260792063331912662737783717770392324261205713269048955130329616823463568712153660491585285800457658002736466293416616842647723990463604603670051638224554962400745707826163145048831453859668226564132204260162393791982845720766458809293592585409646081960567217106469891925180264168479006375618280163083623751792727527278058622896810755110907586030194879070578034479323559343126576510440460263701365552749999783593044364712486292669648598868182630359807221829900532576500334159049416381732471944068678343157173583019103492209763823674912295706167952759256359663721620438321489146785855535696965252365528467090158140595151790654980393349252132750250976567505017313879987161072830795145665291231194193521647435304385158558778176600438962199195558405691730157528328412267558904845210670686376709396089976058981649524675659199402640252582586264430881096394998885988049005905366140981606951293039856705284565168260279811522398117613383878121172345669850209371749557653978093546384738017571304930911234921500719256268272434295979279384995823817379739071155476007852306786613792961840067798020793312101294677152796666142031959144167986573861700832049784914529258133082364898553999355049465665976279323003471576517537218941867709803620877416079558417460156921377109594665609325462846283614476475698725915937445889992281756560713041501933180841324161781900251436524792831252225776430622318019603383734742219852758940565609290145996425805810287349641284616516104607574838093242734360596519952162459317387995269105118342871431751560918856860879996671163322901907233838013672697705831295353785479051985890102531047015188210375030293570005936556856548847851049304734627744798767139021843726471693631983983192000022999881572948742762316027191397035864482611048027467401843237012328973841516226761123542376357051225331008224633759552259908391132023907448483217682943351429317279104010400368132276619961878257328106269375369616305133193258108860085659465433178129480164125421835323878710640508943088507085372542580062122336160674984842663393345803882351874091897110509806502931670394615891275699449701134746375774421919168555568802723842716059212650394502233813117535670707448742248555352000267795345471533325516759081355799877343539297548780164462315033505641432018858375209578200986172217645567316336296113002506140304020223380621569153507236269918970766115982091724921032031868984674812017613652039948751988425866695966300255355235199958630865857343903991737870193888463119111646880728151696984596229797729128640043787001607900586596431042368516230133493359634662914678791982504210669079740654967482866012268955898461685138023877996787735943653527671233969260937121795193511534207128892281638694005515474210676003780365281632009277291494534575698798258945991997878350681473926751280889578781775960011320516226457494667855652411392143375100737634649639048228103646549167845728989803736549360755012350894044995778866166948507499143741743140203694770908913520333798349540639658706225751282205045817720611742494214848868595396985431902591096383919304228485093449205831524015122247035344544324554137888804838904942787453787514548776480489059794210578270390655272761733610036087894745455233694432870839202632417324139419338344147484447598615242819803400320591579050023694714347923275254292243522941063952653725169970900171152655303754362292749397468531363672366120245353111730968874102015029433765274864975577306819935732143387850705258002597654089968751852496211555227142005750143767559502912046448388229403238631134771705736444080049214138127882670862264893636904945890464889584368943494175340052950808636332110164170594275400328814018981823077015541885688059315375770784364430146660783828083891253129915742265621221818901358092836996323526092037017105135525402764296816986419573354951709272765120995880214567426416418440015329490997482372505536213561612389374060216223619660919347378980439340087995136886708224938878862960503080316474616282196602931600848478018246859465808763930429998771812435160563064428868127217944582175514808894130568280814018718977051612798699122904962519664080997479422730533505692901628743521987071335594125487181529179457425967022589110608015274135556290865502427419520046657600418720226362275890519161448073111465498618040576091593967173988724071398924411815301491794263037311346667150433953774680206517728813789697613405520932807215670383295899733653399303575028608495407167272865428389764883318427279158441858781485947340946611251380231185325245012093828252192700385265994840199828276487442729219350315640669368350067210868367568036474555771155600867923863439464606543345325120337518357196031792350541628467594744823830199432298917848996983213070662769180091673032410659646676640193757754062111713884533892429682093005103062532486688976947012986826884816231592512938733267446243787304054534161369695820417528993986133440916020302500560174244842189205683995967534727109917314428814571141610520266382179744427829637992826187209863085575927956578700071364285674095859801179268869166473009850285932349561191225794923362784604594871868007555776517234998375201354544449265540388373864621178830560445179254080931153929756602932651995024971759709719303212184695458709939453429894365997256503944289569813603181581586469130518871130775209884266716295542731913754966691641497717192525566409229738124603020168960526673399188194497381254064754843754007957441501388279814012068135230403273839083229458532294989604198645622444725474885519300379472307526969785257770815754138266724707083535936555275854063701420643803988572538382194352951385721354587148157740632718403344820772009284884528358987702763055361777298434943288316351225910977635706613088107997562802028860471777937610202684249365796677550601940329881832664890998365738781526375535848139779647164839967539274849193066244186960710388459821781734161207911341274104683941358831610672930508420313945616333459140173659051733410646108262250292046953022663641687394394037296673023650212445792043001337028691326861542379420713545307278837785282262234469198608172554307926663536203344821682445425172317619845183376363340282367903435397905817010234186592568691129316890392244910096255426661062271379999839175244124717154966767739100856890742013083403562492045549633584058288692261142548004919342150249069141317447275750201029462990894796162523344613543922078279840388433989720854947185952874899275343874909432062492687358701607638141544254976051088252796715371789260491172916275540475058809412176512893143094360409775579615782282137536122203697075858579283768903776421309684867960264451211821834776234910145325697655632742206592129700449799919023592028875102384704829221185718517482230883765768205817234333065054383652345357935241328592519480612652978097823267073320599872987488576520546167538207361028826539615060286506141017040464420301033267305764083857313287563514477065133353913500078972496196174379062629553319995348851281616329055856422933451665055829569965855956453252848466466303886232760998896056764227011597266255775593912364385395211870913956885688818657566360516130483546742101504615904233405834814813974696873567671484482587783428392307978538198256027344847133805321943829079809268089281207907566658523746725554004896671158910822012577006399005315926128971714491144982071807138851364526129486839031906611756126063248390345973567102417675045849647209456645232075566666942439886371612883379966781999545136522450385944309421841804854808260374500767541264100719869132422430047023928790670564055408022768420449512609342245501019071786042129431109481177376546157955911684480033756524858405261306185317157708168627615754922660921730265569791417070810687502467115249383239754116228328982024207604890428128713664048334321871451763351359688175776265036321735440749043317960979482384260628126847739609838550182018264345089024218312778369830894366865147401723873954369749469312765854154480417051720031935457632411823842647536299262453562171087563617063052033760659859515308153236722470376782428155776609633609368982062605405627030884874447520603351165712353323459351920019113038939175830711899033312949676143964257630603266095563526485846851884938107579576013199801173285259881804803004885657136914473738027202849741536611127719290506478547210108000817199587955118385620977009052452047339864456392881353324278255809844155831025951649366139513130474396357185599453732493404873480328489958657714821215543295525015214662150471437621342676027504359442714635950643582453443519865912469326582200778969807603091750873835275599445110090941403758251788700413126779778921082179902112004042703021000872218372322161944888476582045256241742745439005777693799797387712290159041925308973513096491922603579389263427480545062468861838243341898292316452184013992647563046307699509913757055143959879847477557074089059826688895239306789768063300948341012780067881960223451131458169036047816884505631867932311895068430881458468495873338255767558739805289515750701734962427982622270669412887091940239840221874199235569828886969215605941092379922491773345257101321018325140190953400472377270735991245604230265050026429194328486142070733398958367081081981925566218844418080307999778968328182398002242264875001900576966156936079203376499746227474290589569464799115278086475178756778948349749057722929014002338345632993913821100980733463494493810505082439776095757005863819535730074549424685862148944891010830263252114236703673398775832148962287604937822244367908621741539670991003099895114290863017318512033533097154456313306386903584188107595801276235880134886164825608037579376883128840710086196278776487493289274244236313996372021165090757134771716249151152694877234658357545416410257531834970666109398935402712306829489987522053268789127895210363013380985085873774460990566240279564782094196047477662374014488392779988760267508683033995063047528888550138948883032531564424824728214056358980640610475892533339145903943465458426120954612954697806092589579141165317406902440557612110196793838748868868477757037140447163231892408417474839089406823412460488397595435014782679532846854510213652529175834035899752831630433244566889349169427771903060786879848510408315388425951474968647036417574672140886922291551046604186045709627875968528550416674043237949880454714993963606001455962013021869820494635806141909218555724594289665789151495887284162017529146417573609017947201723442737463400141006154524471790006716657543932218684894051375448533140230110125706429838375062705717046103232634618768922034142126714978608554119521907350338925922052791629092643314610372008380966598602181875693950798906849534782075912000276877393202737038823241468468469425542277248937103309032223429219855209549087617787271024626369434593486336558819481095793890844356756217897139791439132193570897078472782525255126159358096751345267691451744108774274249716368228757920923017550591238263863804117157392795578128725334447153115087275484471112567320908567496838064746568905708422085360554011090010259668360120899914126658666220526908687671946157452326448184758557032945996966544702489681702804325456773754459518314221884373951323797702602435383309698794772330750595610168564994762440479558047708544337701863757081522221812021045226079160513831648757203513794717404063937202928877382887418535634584446650445573139453775705674499605642554191416856531404153784455381904632174361445306467910518002315928480133089837838341403132005138531567065347203265823824762895449404504378444684765404199329300045593558985829873488022823008702761564304666001456063661731673941742250960603611183228898590955666487751177597497256433639386994841302086493586578830358900511158870898426665275366444778314699328141930776911174412796078611032674591972580191106259884644536086682908550591403663020505180385294144713465644244990565110312070509397550010160837141257558109858224996724356592255189934166714965100771614037835167114940324379649408392985024421520128183374049760650166613502995349529023764968487931292410902774672795935126966373222251975538330070124433161612740247899587615837690385209926276184518112855144837565785579967597468872092257243043378948745907025776563994380161166901890250527862435447242162195148948354580641071509256563083031158847779947851397993879561592052223066046203135189989133361915293711980519886506318521226633640009889959369641339634565043944440118134028033437416026657425095449198719146495445138139997293988158636993208150996606986060025304007859151871661060819839284266869880613017326379052823135555576125743196070758976458919872646447750413368361461839332615932612634126890811289789151188805789415986600990376087050837084098485933633826103582427919965192199501268647155630926494643864322804719373196551811568533662504201528207706500552491047921109702652332831488967909386285578767628091850429693021737293887523721089839774615012554147238136488570717263929436163134177583729344142646609335060342174613408507458265921604426603378107121250817587304864929660856339059627296519469591686872926623581858537385107544293075856247498804798733398004129152023932728137061439206794989773356668126747541981556505546519251150159744664656346446441080599671327289629942464968027640168190416358227816954745811271567236476882259580084236106436666322716352119798098682162236133623066767954413716547173568315002602115728338365332030836733189192523457431420901613448158358633866913293335410277269684213419261942259432002207773654447290027571246266519805263087786308642023020259490200730626856174402978235106339161024869209274046397181078511178420258804144297840586911211460569703027765659843189087191502102935222075001740695677736110666275659689477687684058980954736119052447574109382555208596399834628347438992396160236961548558324321229841226962191968606471094773525332118575386970218717091361777430063612084210887582372639603881466048195162401969811674600804730653129043775521573722387161504466189043640837914353897702664939915544079832388221280642937408329094969825626580531953119856741970154909450133141199828639659817404517723016956093680347438094306021232470554734269183632096422701300969855052652926761700449344711914831915565966966866743503327346120034883297232502053709074517360631687123011785615357897689343515851438262702908904460501376847747308308888947583919690187975626840233195945626085327727960615784060986647163683792776431209264793316317642798474797577283079666129191241688588204991472958562144321119508317548226811464626914267531169510987994337508035688902277613518952227681339018388645225178114969147192864197567957819178456152905869916920206096390003585329569255391973811423950965378088426625612727423278993530989429919001300349406660734322071176900188736311373224433977985063157246985282720096796038738407500176042734739014172702414071472725325540967353727440856564876110427718206916329104329984333652363007950031100615256813471164369879363421479542090481984859426287538454371047693525531779041776312770542695282036393646392855447016028029762293267223584902951639004490719453648828969898208930440669368242392013229575141997873552400809876024934279280615960347119825866269231847594202730213976533896298944431883941779790359802928263115467718308141603077019363822955539225060542632402453413034379122698630608264893801105918533997701548834633713558682629091562787905400320958352426186532853345988837918779553581696228314869912132283143118288240010607317357285132867457389834976708802952146329734463954590452469776504050660411731652671591993393794996689069392797029883847499941025943024090037774960853797454392273309565242951400125194329316826834215233610005089165275500911220541825550489639888765845624502505887671945646465659966396846096937439168265830857583631621160518974373125120470932731917147137055762496563700349532742621207746119354510439739448356663298014724156024986607879305763352566579789642044036101993771947879796832579053520579568770120953714541194538631720404337137651499247377266316277273384967811098236952612667136587337518611933271262945544512384445159634016961842487476346760678509405400816953391702782476389085954924923096263150396847623094936805022255816550300741476662524763677904032000134270707881572502766669901458793420926082964000917365614004896297066346068640109641126072264572057333100520178781195724030692040918919058613059346847715812539265917551144099452720721203366668426903815417970576913599714227337559197194166195627853201801891918643643755290489386972287389480621456682457673021444446293553207824528681565272844099418297119242588079228840484142768310983394070034932035936457457043309908590392497001944358660210764952978501041141251985197512842029724164849816098577687488974418576625279093560574217351185944659158774239229071273059552774301676290806781106659341343826297839011573314661040470726251304657446402381795053592590889267258138354295980964279297224670112462425803479591689674921022529014013781868961238787281827078980421183573690217387755391963914490185499819104985867510947264466275524569565474679979040046432111843493353007913286757128016308833929980552309427720446613576183210056888063901019508923206922654895207595224510310028462687728110617924074919224959212051354834193725143386710546671021461658710543251585234380330264267165658537757805848202704481565543341688862297747632014488274404003779225982663735989826177287817564880842702351582295567457767380832706954237016984671741972006893227702773000780841764661512352983047428186243474356683982826778891799309533978934464560928709956625752165466004505459210975962435785368412218783377985362521681284730116172897913263111343995419169481540359799686547714522831939117277864957869465932595406335684520388403709623188772967238492004915659744908132139713309625538642445947126625300793969119613125259879189436254999038483472562705212133846384955675399529471207221925546525939358951487268350192855624707381767697028292169090402431025507189698361070412623969794533661669664015079365153792880708239826209272090878438388135467177209667449352295936716593531711975359549263019531311919247677197614051753225795273095071132105913009777210109259799757043385908143014612246957420761619287133498267928828902838693253912167785790811172376803048119327011368019308916414151112191125015850317087395054514525970081315671899475728558582106054462394082339500104873852424000493254268225523285024238521737285741729290663376317247234783107198177559176532749166303006386863957391795409902472181593877256987409339491054172761242025659849169197277244283087410593850615775510080906448854012139028536490438414573699682303641772890709347381872875866367177753538644434193270007520591250463155333652100584885465296110084932250914294344529900162012205629464421237822674460723304440754532831542461671807794165922239333598428660860600172906315095856601728847970666699294551212146271529067643320868934069033299475034013611882365382344642643722869463021308798011566985977956251950802375254370358556822345679921112870734482615756646477498174115313292782443534269995516100771911886249393842884643622792091912421663112129596711333244355729236987842572883018693441599346795465258423501700238097409553788830373349842161474336558281601988124240359699493713564868350967660209184641531168289445072748970620330900776111421515235374308335686522826463093108560362933335635267266323656128265883194714936293400781906955918380930902663394854069699876529330534561206570707491334769093889352816544477362675967590001439262729635899437026962272727671825029810421517548955035250407622163856197468190759494705049586138436679414667965935784243250163105581686676488051452820962135549701910597834691838546333944722735735085388065735738323302402205717619569274028976412350336310433039492529442127931603214354318700396488804424553643924568856177470525422686031376902977810384297199396169059213747376928727673884148566725018695760658132533418850530216824805945238500160241455869698091631214758644565729664753954403603382009264985479120035420645890689169636434690296519107225120823664446623961473813624441989376007444855867382415321869536387043726203754741237079789616146680708861007211488780188258877017932603723753927768925320265467475544956874876702110850539325986346294576813513035725498131429444212491234663614183342710857873621756332429399517487578330482388091497054441446418780603468725371621749658576183502011883248227879294748447395490368135194505122372327802793631415201594968447947623805580673111662526660164269146321903059276552090800578837251772654900582752753964833063436351104491701360055740466678031607871516539708200774751762654226836276938109051410655823088659193503432664422580571517460835079568501773248616190027340658467518218707354830567219854361671070769522956015387697764798844154512865065395575141346216211264359757868809406694533109448898392850221220477430089994765084974505455263523175022888035770065040454013081015363140303914527375472325195727105427410449775067194985149544702731381707411197310137139315299509305210869445520749804740433532861590921020554019597809326217385783213286488804520382225932905037927408851935462905892978645351265632937239023750139207144413895184469693276183210733391440720691006780230463634412321974208478888318214244294026990214871191313423566174102408759814672927115036256323858495569896612771733517761736678702243367593160819512042386949981834831566498600030788811029039524347304566753543710939653955070092350533576486605091594886963074167819178989196949716227374569413591503679836348450603598546635550146783410443458815995706232043511545209385955157528837653656763474195612864420418537664943498706833735659806660069694941783056317804791741122705560744091057195706858668413269766485619815215957339736545190909837205927876073347935029063891534849746475165868721184117470689499080745843447071741412142822834802999284951245085863481356567511969552163638661233547275552452524213450502016147226005644234939670477535449666298428167566573995782752969459595189064033468946624773611107462211993726066539734944327335409622572345281203397092911701786157818978113653674078886971689865386955335004969381739201420153430316620829874886902143971737235702464745388737130602457152444177756351435147500873356144899147070612400142087235738767651042172075977525714799573887403627052858984314455309790534548505850621747559508776009079130805827876211193095140310972634747044859095686782213722843475098618489229360409276626452040346922361238183846757590955194055306374271064872632707642397845431896449587714268370125567600607873643945375001945602869511041138850979780784914985109331817016115726931389296774600210380061414324277825930274429818947298081347304844689604609485146911321973995530480580103025041903904883587363797494606989555122019776986722370140382030074827384668938934917799196479111535481176878900483092480946909992196819212387536658238010847310931424941049713710397789018634857128036804326568580851482099584665931930686673303008028956313516206361000333214163899042793861926564474520097249798113005678901097959524775916519781007904983100753065793774163147461626958760421702180490080423555470989363181851078841775312721762858093158929112921317913794695706813935764574051438871094483014531865003680178303155575361875704778855459066985784914817603398535772441088437191447845614258239295615000190082818579161713059647282297127653405331055261133177778686598466976519627421322364056664513052896487152418422967828707552801488725617583555390823346023635875412757387611703188309678673032390122646557698318389678047397675884833003601553414710202877769071508276918433864965617755494276334187529578192728624354362311199342420177910054469436265591848230704714075693881688587180842617422947553482218363467767209749531443771224810835744449573362782305178575586635400637134244448959592256820798893591623634351656268105400656624536477569781085455200609046873428331046304470881926923672407577984699200172954027833491284108542115906249939016020213914782320190618113234235749084497190618946393109243440973038782576281178807558710931818120015539009288215748188420713827755233949402446968926124935316369380726108337193713798018498870303888859142039831595283488915089283278841132259001689842575006284486889228013699792493191879468915707479287789361396242589163064089598478985350527573450042648432030313135908622931884659268024127980395777725664518318745789825043237666107537480162218005738307196405801813648107890931362505922888475667163583592445886195445676946190825658805803205403278423912876699492300282182831185792862784442244926688930194474640070054512487585236250341879726071763828619631192462814850863962473558431075643605440210716679422741367388268350036970975274433673187213927867010372255808538425777114464727280549507804513342748905945029848538400002805827627183735741112220940563313430249388159295074440310052033435001457926230836043967879347516774445752960612574963881786841645049841744403148456753302135969491700645630715992080288907409199732077023272015261806605100895997906175180920542123722109793088636529192551892428763277391763716441134448678885598318593840394527936666378181347375631135476358020558865132397902349145602949899491576512600796468062518480810951176796102039756477056978602816679264224660136098443758950833241469295475752338740857015324268810240701677566042242155527066682404214318291957451081599106945796237164364481680628549484929804670025201574341513428895693478479167760327751374800416804712381619301478621910940221678083586481210294539606952772933528427880819080644548467827155036564369901232590614084844963423662134522647076540796300442012074937495561507607567760941519750549029733611792758787274405265273279819704035383777719896915664911839517495802310473310517472105811394149884250385060470410659823318849451513619458576693341181438706879634996516329027694065349601076181630708576386511461887039295978197557883633685059740419589328443933778819049248802191292982418188461936856337420232989069271792871757477020145042222058752566748490178761603288650948272454401862402496128072672984066453149633306276887665260311456495912734560624983382931260939222982882916416998239751127879886679649208708234514531147299086810272800273622447146369255431755843030909235830619624654923356010823707664702556825894753525022118346946137320310182099575449180997577946034106292892682985372623828119710656514206780214309890083218659128520704092847005290072292249970865146623667811630825452030498386350131845679901279668417389973534123963709478558139111936015092101503106014870115677149817768415135463088582470941783927666023257956984942460624887506021122935669501122081822214416853595060164332224247758332113218475892560416075630025606559259740688108191260505765948907500040304111333187568001398686127370644240792330762682919313090441630922948454361234105144448545939333617469559131014030989971653392315667901497454286182865993571191161468083063854953135936739706753812367642694693675883478620113409242088297548175168061163673567160261456182553789005211468168436719349246947192908261538895020617458183862390180636475338853283386785851913357124854586123548036960783323253406995786555144086565782831394673599663682067395887836498503172576352570027201149733580066198904873055677514608625614654773374378782283244036820946548544551095111633129334520538000116329148969042089114340248529646016660858769112484567497435264320982540922346376186264560075603391696200605675813678669370427696587165722911105966120984519674931775628471538323330686362173766793964612559683554806238578038925255791796153996090546964353419702229553882840863804831723937117930090120077773250607753956552926373263555820090333753029362161419603557303447048583103595383262825937531688915767601469161909039030109286561428343355013628533765028670926147315211274233751418045657681985660023857407258560777600216848707333520337478841077576636726905845267275788544818646433558313290166067576421454777377280512405546426051452957454020930317351336865870588673764641218966298142018515372196628899711861509774097735287194160179665823138973312198290911247197042971929645826409225747752400139022751966930383960587697504233908832885849849758737046719146830643437354439942551284049855220768857330544956771231350140594238495293249856459009347890035851480743828587715129638241773084567752277565943319235383280249235853041533296698513621395985717741773880561656814032468174646258714443779236701413634188667571346456130460170567681517692974053628284986518644117745504550508827643027149070107857167908396277578322366740176436277209350453378335998669710783807010756850141411526849686458799351445275922097658984566564627522835308235401938805175898130436398526384593915938875719590783779142925764727095225707753610415553436635790303747800888851883072130890181148410645062853932480768830976731000078510408436556279833187014001273101532535392614661566353387942048137631941496446310616706111857322489713198690248816554782093942232769544655342860890553657838448940014287497815155622571893348267398909249264371061106409702520680108215424990141657777961081633531223697209897294303330356118715189805670083549532805959176552465462645969393105854691175792163538408366230899724797522924532493107714243359204905112545688004963385831258835107409531955990596324666291719130936259741589184382016657835441778130174883732317863195354848297311602542931450707833742893693168489435860651453127410884656328353728679743579179070201054806777941389613403466406536750970533194587764300316780882875030654169928768648176303270132187049835748689881586789309887767960969641696687400175985558455923590934748767610039474562137636653088569923652374985558915925276761352539007332731455196816055690148279791691766106480833406689440844045622309839433640627805251729223428932681303795745317314613518399174674462333547922662281289316385142142718698028529069165035476469220429149166461977171454785088176444831967662119002083375099525306762618235775773700361555987819642315873559870981351017468450458293018274253312743740657565919428771378813630473150376124103419352373699231036219633506686523105891480719596281611400362986930384063734667570751973341095837384957987121601258888415407402451338753937522181998682299855422775417039013899474648612114631601790649572802127414019784429710367671218083309646418048556934293409705675223021676099878774269626529338332259214396923297959283524427430038422094856652883159774237902496344356376972516506682743671047939161742929275962015104003414590698412977188133985003679824798381900550411110729421355026093426722806119676746745546978491147932832888056924293928455159833964945842281877612962819291432906353286064148383048674418751079560478290304018086528413307873845690212362004097345798193934832230019568754150637999567748841598857577053438492971730725404396232570669565203397510355008266401782077151628579868097275655774107067687928889917492206979144132625535635693386524145405503724376859090278054054422450924832074395726603054850036327613479273550815110594921138441201349826431959368555217773833371520723404947513280106367132464055795188767839102394590390832097218362100184240961985394902446605543417344792804659489497488304316076660398084800896999706045106161411537037995636472600960845579841902371171099452587527894785651592082291146883401331661661516453748170112861547456306653221466793480532316955076342555324465993570405071963962282430858680534252232772122675865437321815542944495738091011334507847152116434702510193661460141367923604370449404413961418855560857538097568956673711221032332019870929400530800461856971455538523097625154053885851110033042129153538282909082826618157169611947797668661496804931229556511990118837926730433234063695895791993202664376714401293816391898383502315283071515216411903587999594952537727366773386395523253912364865455661284594733604823956722899093647987792104245578676374138805134287196899604899230808447871341261214512560119993501455062753072237482421751256762342889312831856710029856112356172133160421024046450875595781967995112247137699280678684910355849742581239013191565146043423390335805451578237797049728851308523144196003668171152268286265680623758551392162605597588493593252234160996562345960254730789228205587685922935952473542069524774912093119254043378590872613418781442657456008402034259408031620366798156146502990384198073646835032017344578138709568786005649308533270119569318973166644512324744913660644669778752219708972218936674890765241095026187981105782077577851371201661956987782990066881143017584261664666370669553110409902940924250000247534863731785060858456789476089076775193368215231360457093542293336941227901886819179441420079438256970990846514535102570924216659490705966624034553202711642925644926800390421892602487645748428117640451560001114524580582893324340391281092503340950760182250943968971348039099851161278948449323259409378235216464606392754132079759174321166104126742909384100297869826254130588587016727386487168885321828405363397753524673627701096167279227294290923965374970700914811984007406016981378728238571723466268476187578910681652590526256705096622284375582647854783396822955308060229064219815554692529516710843594273085277624618778170987524989398388876722618976886997562399543559070291927381129400269309133789127151064329144901648676577433579001959069281702649599795587823591697023344961712860989424214841139204976402272142503347446174904032540138792096597931275177917940662599036429565626436645526339422871020682416960950912491802663239127081579532242587342671602774653223174201518203572301037779650582652097610888217109257953820702961230835588876264789183987751025204689502710560004852678987595480464592951470090370935483165024691206796613472822282775993825584609541316841194914619785147105253248431047623360192743856144387076940123155088626492175700370223006877547980968747480749715425685629915659297356671749692179659823735962964922047624572389095728059209486204729612382838088617162550525615708354260762558196273485062448709472066819993735660553981005834054823209404821924431920286976832719754508703226757380119898650590575128818637996444912172609132956585796079331073467774917620039092558726062995552063176285387508482500725540288899303663028085132128560278525027937737326322181761347736408187986251960762544215824204589109452642011668063140905092011699644724493381201284218827342911460615757082318045823887091663236037560622046141031935061329494960849536156559228893073629857204869566131921997987978081274968133594671866485148686130903893234678538428858086802088059694394597509449893198289551526055716648152478476397718573845035943244108993408223100141784084414608410045410280586134091125664771970660626035693875172821661492607380357447712900399451448339418010108294684560564976443079425102558153037057107259638434813969761333435798686789291443536385408733510991693937205609182582304957438327217112844497524674416253893363541535732771488484066463227075135350104030290110340934734436150948149223984047659552148018237665003697854081612071825321995218305668542714233313263108837463250362284430050296987217550340690819866408792589107179897782117162263421608101021058816178356759394955665370655367630891448983105687407033137251970804858180406536843398844293019555309086576330680486903609819277893625464430183605805139222920904634540724746752105848553979753293194047984449642234574466570076451484317593232542102660371825244015921149679107970744648959844023115416299702792409045682957865177603318545849756177856730706692001137229615368280911884558241519838681725844244280009430018836662895235361428902234824654874369763933009978219550129240618647908853831293439383095747473313197005916859737957272659172679354938387779384182657976982646793770534589471655092482626355586336228655395196262954770406029866737220136080981310865846881805122988420416214914835121304941296581453235061592931188741240048024513501931016205814757317489725754768634762632556444744050355699121855616962133647303296821917135437730316637102728078626228511053208542808832024058913821548552949837322513958462728391791170223705020766783976760579706357126415724472595595343589015774804144538066279790985309017815461120872343105325929583094934970069175727495153707553223814253634806794008779706859212387794108345122326469472775491107166678794749754451792531580912552906781679514383162273130220257293225243463950256923199079198250330950351744591772997605407334103745949965477289674844874960668365749367843833428763711664996400017232060964966453344036475701118528239991083485543662266076278066301411509647299819804296775157318799630681262641041149463120076464740134774439244694887042727265355032045754262013025075932961747246346664092081213072044685473334051459545518567042281566525335728060072341911739362323439464673238122738378786082099179060246759245323071265645996664893218738316285876514885412270377290405635351314463432605191841333088286936506028900834635627883816491198059261372686177706295705018879004559606348523095172289425486376211302217159786579689972132073396909191950520004125497155214474944344962764187275991840438306323330558193135976788292392068627299247926354485169517337722358161183662341714059312907375849204461088619377831364354981722371813024465772190944877931372158889085162266028770665099616486225826145903739070849702573643407556598143046451410386753503070924075058017229950768858290117404371705340148005336399926183749657305973205049686860609444061420781007002610333355631109564506754090195854161315387777936693941490726602876736128669492654129436435186166957534994915596299807690416657031871604485478877705788005676207955679534876702547572974673223199260901962209467904150616943559724626544495719370201736881701940343889252449364457918889846319582861961754213117973221484679646768040872193909473395725961399116460154141214152792738252487702061099911956834433267086426144884392984216154659926831420592999207519202604916979190745656188568868879501224187856687659813088217320174281242465910005997747619469058464609743154163799832515396725621801900539542582645800285822291338126140982149803861413293174333544306574414822093344934412646770078987733401806051869149675409665193496010825711812552430479804774210827301498941431944040801669953739963066795268595235053620853134157634914347502140494057014455151188303621760589971779848657821265408669327870230229449732510069214649342373961637420604727344617652687201874320752756238440453930820851210627302804196807448050097143537351205142365836870888279258054974853978079110948793114133952192313293029080868813588416501957895545596307956264829387557686895632184465027757827062425437811420631956521821961611205448792299278560062748629240944400453417943808631926405844688328026220959357459114775819424779781402732640888499015595761858714421030760631203564034803515241506101748581784596755583622847014518202435074916266935691917701193491313548886745797338581510362695938768382770714913805845580498742500864348663655385333605055655347665206419234929176749958782996376632565742298750241939551355390081135131649540483622755964124831865715389517927347857457374327760467556757839429071500430765602911585728746115998311843910385665400002766430484417662890154187547930373298484559184375783583542711545616368150206399789327906839788443685263848326383582595356951665899215286355239452556148418732507291819835451487596212660330484522706723197025272507099574796036274294381029752217537154696456992738425732248674376378052299326654033260482099832263933790784089196712938998359083638654791368290998576981062436294338861292789524169019463868292581272244801335364424139245664870552007365443839317349700401921478532053187702206850400414113580408966683586289259164946413392300623048657405923404349794211975951946553984327249518585292678926047523709948322376519829846304978930215968151396756358017564809965119671454534498604082932748084725335652616218914850250857859262810376536888042577191701697833456427176996710071279077440214099734211443484200522432610795571678720798057190121603463453925424627545051772102693653625194643329586365059750324974035649165502747206685401610291767931895810252087902796271744726161463771256232830104340071133628161799646587259633026758747518003657091740632188446812198699044441648467629743461767770461294838233052822435442065116998707980025978774015033192651328883977899487194173520776829604967406391180936152190158269348886018091730046096781019575126834633440192790179589221925631614405478446872817096287679984814488212340733885660632991194402468164917949041564561841911578126097046603395403309988800993116822639922265550749445431543518404579844640287395061384146619066109019537027516644886804382755415433761277023170411085842637916352218926762142360626220341354383593974550753286689472369514124219105248134927107822830111847775753370197805036889636266292670552579961771862713950625721863278549092844070674612957973001032636653162009269670261281417011026754428767103248188838760898114378813558388956285777124557839296179943025970374705060057238218023350733040877505342310479837552848031236970610753614029116625623577966512767470019543840404748371256858564192872566173017144132587875441255697265828272660266107477919081586820987420725959668787873790936555639101062459096095530832826920046823724212071185775185658327823433982783916336010865467837068663546071900949283251212885064995824692343704163653068716482870188580122387097896348357086223542560042782972178253946438405917514067804003975727696706158856391526082063433514062191403992215983590865039517062761139884654765162154183769493816954454652515118209539404223006822445505742753596225193017383216148189872162092312350229484415986541592400690554734802362255519452695906902171767282960293736823905599879641122619643899838688920342069602349587978164360047649529359299613682336135937566327010011456913886240826358551708956167961628511279330702501888668427913715088500109439871562932729518759660485106100589914362348048743178238358204360820650698830245216675225585303059939849793941918358064200854097061576245386577335913554200906594658101263227109232238811084361672853694613332332642139329419433745323632028193649897558744283300158346576826456935052748770908881777024655477687032241994884284972396063772944035771942352407048800108496071573880848567222793381673400077900149826967989162171994850284742354211748363163671382575859982757493539907140485647602581496460954401892864413503360163490946426384035464725010834956840814507867433123678999745482223137500732665808779845472226116717871156453974847672535870142321767915007653138428063937516298205261726232906299863226703240961743017943937620991549746080835600917181249488353077854293890442116509527951769981735237428413455988973651381335213980017087861259723855298338569004337517472564439268437103398621419489292029073240652113980829905357980732727603155976517084785132444720349539382573805740993046029183927292109153617254216290475622671167576641866293103982772519547492734666500345728180071531993364856619858223502475710531181207489515610223000070837853923234945177020766031447003370140937754855821350756670755324089528410600248233214381843402468572773061396078373470022370945366536888312258342422628776953890906471866125266341439217508038351762552167967606506950669783775439384585665344621219606296256841247347664800559754395074984107266418608135257230947659372518401442689703718629274958733526516454167944149783894307020618469951249483200300095754961496610619235448526568586151689222468233093973682972492600120957715292654954321871986280060994777897796332469919164736872479692895396964793589706142230129978721906629477933779463938781083000439615577919228659513288325218701133804691456750599560080423669003749690030251648289311593550355851822827509569306975993497745105615911065134099387822721141294210317839947940376550885522920434838111430840298391602453484881710637366307168670294284029256103465497025718029683273769937038518501386363124552173296938773893747279780442472548653569237859073855594181799866011904241281243909578698716013312281647901538041121265639207762682670242652146416672964277289048734700367921477457704218749571959866632046353030808051102031469662660954038173781410941545463228284269167986896634855347240028552266644067406451992161230001793094934167652363845321662154584883423571536707293080260222107669066628566205017958805103288593333439320321964649147140975230355771480137645291990772900099627863473191257762511424368647050705349953768683537197069458390427379193767433201657205402952450613152907798235239718347599414674441968215622685818521772888469746838867229078750352750204959366389733218395124649642985140667968740500079536770942126519112065485519002845386012313018567122813323291602765389333528109855690141001916275778841484539059400839848496301714008365232647699762388544441522307369474779591334886993271863406864965375276402088490693647431227103963007248094904115742291441289349998463431963935548585203665437532887018049893599672825300584226457912443326856936481575486066318588113492155267877034534679431429248961506305745811081541321580879618634404840513371637360045044131248595628426052586671609049221679447202016670190486495994546252052284495584499743771557810377111230835319589147702428334303688606180541983934879578367051103442876709598935224166027289516068818462420754652812947711091082499805564056457276474387728081191978510211611315556286696764040844134356826665078221112980598292018772245676400409803399342706159920705180365862074378857270055446069306874965458858929996558042213944079160642068054386062093473837763486755497304592428665806519233631355267487313877569973660790352604560921414797511059035729942786342093181522651841032829999613385586946736757536359427236069012821665015004909443835904436600126120271900253496910842671878854673432886705976583302179017822519765857654231699783598867911745954034190639401923517215001608242510584502787594864626633726242694037758384199331557615825052894652355984124784890455629564370933631459120052753430043880033417635352656897578541409652793960747580268235746276584946948503666969379978506677452693508432731417908503606871834300104819875616204729304396706835313462892343450256510356558765893985816953923429355965040856230811281781492259961336085669761916116515869417935381451413624840498149059845768804732957030959947397784190940373924278065649151839008146601926561840953979747298170108418459103321583813825915026136751826306359081715212816346734033943162457599366474626424953931640328540278033641500177310260049602245067212178686787074090913907688059575366963490905909024558286646224624680088219239052419286037851439657962629427269132557666360197977168705300029233779865157499641384900126882532842059321908784640666754067916089645719077654981238697607727840041809908759181091961535295135683667284958353992240921726443514636599873326260928439743892400260884103776656571776835254470404758339963632934338211001959353585468090925380204215009644905341884703536981110972728391554640927469189570225700935169807249094707556316688774998824033806207393613467407639273561627804899111735949114842982796854229755877268526934325695356112329667760717158612465215197615503254308330790457551333880552455981003212632247142939000584813929321698798269688183729116299837122353705965943156363466483698830113677065997671492512351365128617835557758490332918711386764207126556311088088627811579791875057997383157301993429850030146343209258844024446153865486134239176445418426882912083110466195023067479447525518793822572117601680919308825949891928495457989759517169675259672808668338316551394528087503785493126807123636351567716787696777283504866495604321583606941663981001605830158782662558491965376512014203496226666450945420425008819017307298563972521665262709090837921009801977310480031772098930146690931998108869413064541303154446179403212579348299955670375491904703657795947257829863716642565353942273664299814365327793190708684294491968030767153564378114382005392521711685855714443367187040964461537428073319514223486152716529821283639040843414063853131506492120205792933505544930266826430487178547199267098009946747577442182546889464096275604029340457653246209175795679648203113204783310636631251318201002216386839585477656558892767107325391005443222704263735457627075089000590229407950867573301887137921203820089665377161530541570751006405394574395838418481281517457522012579476401421962710764689826902079332117954641647656988652639606949766910030759772820739090727146447687669884612629924852550065406988565271768485942925768226215177396417257793061391235902779547084642690295874103058737857050185198748719548671478590396844168012899717914006950944496330151944424380371067586342346736998458272260766625363841239898474362488944141247344913204864474742333418187539571096646146371340780153685177348006027652669206082758569396088929113251549816655335345874736205236251597588693185153011529643699826090912462174244231731149377648262619570361069233791495911557332742062494891553300658097361717438269169179041812588448850284542378802216574738004525729161296617728940260136465754916689920130351169887688915793436017267630457755808680413439422147865230863155531816448974975916880930043463970293247935655005630900296090206890403134352892638149291939582966176857082193651476095090994815214524896466312094240128832147242376149886884611134495454262757934260342345872685908594760170992073260949053363581798469075946740519702459039502561579001928483839138730161872139517909870004384012041397456394756649025226440187723004219150829131247230982393684192288277849595587560010011882136349188542113059963881946821385613455845747591399194891339752026820903568717103519906824688160447290271711500139604418398217835713082705440043816342913087665821070153366686631533392725506330330306641581633758888026698069340246511033994427480120279271449729590295741717713888140339461425726330734091161890281131375462878743937496546183442234369930296067216159462020430131188631556807018127476485311981081867321954634430684440840023835666296550196219551549393092946556013154381547191076023559391118149709675161392515509442337027610311560319324582161632219794952578188705639754761569318957975645723945433185988720965578705183275789986733070587733611296326604991458324370448468714137043939051875375660386908127410923696691938063209605872809118847233950524741475610972540100144813693617671358682980365396292127868567828841323151298985045685003782810395468212960888092795919639747275268322301144389700261686662115141726171121272378363005411746833731065582024462065914263438312176223663883604787832996456708180313283620439936917084669227908915073414607585070363914141052170420201933338263601390905711558763112266036391389778649707563581261412749471961718856974014764009889313294716028462826511342301393589230634725037947014702817486413687224223924693111903308409018620380703128935989151506345022277393210771692291867364425468910026841690521198328356358495570542405006065251532910701802656601125599428711115358456937596525299863940608859609579855322645123577461002175836068542273775927390587283341236611849405049584371396869210821293037705748712036353235863882085774695221110817116829693368227618368294202562053891339426432729206664351085586096253772462748485444000124596243190666848118297923551663148289784847347140912051001939942051944268528064543203168371383569172574830930059876844801208533326553936246312564682237209837299141956136422939565090456540037428055623863408397252721430572517437499508638226541675567995887241114294933055368196362135969869329549421513192638478391113094060800392799051102859342734634488180442594375351215177236607683101569675924505539710586982215565240158576712972052271209805720240085130508657234925718716458976475682151539821472257209501357813956354284357282179041645468659809373562798279616986148760767731591119728466842837818968664910776955261687373869248318468734616090432054047876938763240042306890636462957171418635087122535546424167295458335223720215198453229949520610975109469684863433844438713911059013778072372062255634149384178009679442741547348143333542953033267412589381601647681180061712924490049674708276742462913925810401381191471580830642152649947563455336133169675841164271166444225376792568407821026541830735974945998796516478419262827820410350915560886242208816743718921929463826097564507270900857418055366959419003083270265036720575424097752017498403264299617527008833690293298488566336751590216813566642448014897322909421834867205464656651485300761079154856616282333639639524703458989842465337860479733702470360075718923578019269731119674124351115217170628441843055480454465683233995515007192485579059266656020432853050093048500280339026349271569001283751072141049608941263996951116511269104469264609259936861401063082183132205781413677555366763409379027702329105395169740238052781708527788894105882486233897413193398043675342745608592339148518202942949922479616680772403743624955964918316596104290182051430763732730883172557428358842351890513021811327949336153708933271186015775147313452722738227455146177516563106564610500538129245289093722256371869045457392223596085247887321582517254297964886441138021044829082757690028382075678411765410112220954867385541034688975759270236262934335536631159603676494117402771454864671307966410129701444757983023072025687541648802133755582224365577078188493625478747412939057701467797943914224190813208863777277526682231595342433332076665375861997525916008101629664141560234634015573416965262046883302492613070159201026915490276782195627498541495388826068370203602482307002025104892751827413258544793559633542625615655526693214013892938767679611861078965008609775009811294060406010285307962343603988689638121591605559162458844240302500559801290827676987591953826122199315975367413169411816168671876764389053186480201507955473815535936585912214182847222585129523882535152685048377853164404809869259791004635627886863010300226384629191761793700578979684833548605712477036763573929155450123183089857321274689068064469913895753471452496538779888946242632345135014894349613133844746425215119373681002216515489229008442448979103952877310744845517387749933985640159555449190335451917593241494170811005824352243117498121909307892801292284124523722667472273694015602567672381175882678050705960579658954589633987981300480615252358972981291737700102966769829558783751837014614858718153497745467859117938894434232654018431403655160110754510897470744156238206233445285777616556756386853365983577328256679016429342932261339527420929309847297890589979398327005594088971153884591627059867707473753357167184818608708856548438613825129471241005173053249315095602998844558723036496526805940225662413928011796347761595429852895886108543191053979269041969419839882717751660387755737414399064783179838524848009232051456852222288542556183863092748253912850886205584400347380501877673772589136242605358408762421992564955683377489620290201265686192276862280462875445460795417812465584661547071389510262085469079157738412239040202675845872901002904462991150750203705995475264957114102669755283833168022942473912982133912211323645173190674199355939348758224622198794242941865875443477683602725032490250896946625580874932219518287350723887392558061534402054038519421694190885099331949458402242228033149723089304754462660564128708933197703995068882485144735127595960557026677655004659530005006639038391059875827272157527083752853894569575552892550462454874462501358481578020462025758316157109774450024032410129143550473399752345994527122373987176882142050111185388499205828027265139890953062148970821490477669619753013035070207072289990736241548280603384346614700436956862263057061222953263018357186924138711487999342943719454092352501044830735850395590342576003947364718422308313241310677412399284354415209960779814860966502311935602400679628461329154300124284444157384183415924994241999926324794460931006415905543889985873841498175919890044369084123234307437273469458417959779807425761921352731736600667144155239183375514009602047977866835982383015129031470969738271534275289145512492172056169308587524258118892178260154283095309246863219973957976694763248592260423910674945407350657461536224104929931062260643172567139448775868686450555898400190611666451418272024230956475279019357494245146358843317709577610468628928817850502217255604864020198939106083082680758863646436565876197662234507889848894466056496265700819383977811543300198803539679780004723394484571906110394378205299132774492667536446985703243795426693659432092447758500913144636727791051988046892319925397980751568265278500147058616814989909322833454200685152515480452290003415377549104687104186050996987496653036183104583501386157934765485583638511240566789340795411763227873405341562167137606594492552499553882769110637488023632142465604625407992822633586198535649140529222708700734303759378448913483369159832906837446457237981502333230579767451364421960232665312196817582927749529779079635896872051487061815469845572381973313935778846413433026025329119831526788653473170788491607132463309614610599411806599254382414917690850489797569938114912123850046207983204171462075523028707079598424969879542429202702933381246875367764128858008205715364996089753651822779379097164310619537128682648409625184682400536285484304254406767025974788170604984873699832281200347422412866370429797746604839736478763779220585795030220188029959480828104821489672307694003025135114422614299654079645168192804879967778751293386181806415468531344638929849449770181871542922903925178538228609220890666257772327051310460174692002278443190644115986860692338560120615890225756696938808236522984672555997047243190833798850174582173189004783737705821982693304495691679431183713702787910412785084728510993230637212120034410337556734770696686276585050414466642875941591404186708654486420029997935342665991556036337219122098764645171317598476815802022159518624003912718845570579094021964166804678196747245115931437621740283432350662981175487496640752642743359490798249787133569991204627955498791524884265092560959423937892557635390705911972736881543365261237939911121832311855078712768395017952847861972451510673408077963462322654817226523661299384784405896379311625233779343020028228225800169856670714101993567900685750547607218462537433451351215001135850870227095883793444677589726048095615751522624726470321493928025256201560094825616977696336846534062329639348643831300742264446286763781075491364363959436939733995974961149602601276428482007371677236896909945783520249970194391914269317522097624559635909949144138309913956397815671215292401621477205489797255638016934531319487244972581728339386120974083727052954727612257999253277592066921874088361882790342209120788975233695655130567455974945043760219842466259193306669761490639908193447595978523802626756566128940525111118165655485420771319775463177011687800005646265502375061452814478742716989659432538228575614824510055675346227029386842008263196868462777693216316448700424248178897259047551131683856960791691050908799237680644480068186070440517708029315914610105457499761117163449434175653449654141595910595103055635610955587267000310657480173286390835351830633323430852951692452053522830328076182617804274398912563441676168821199925780934863962977389371616404192801174998233223622850799149742731695789908826384223957082017531390484802439395847946079316533389092087106819100082982506687782464526994286872530468161952363301010469258671787113332809894047087521049340495862619401764520929897578289323500818084752525436520675741438087748399437002117833546740032435318251205441799232576433680041348867726434307161934967144358854712519183666427521800890805754597236719789795311537860925339017276744307444763311546044551739388228164233054932331918245867918998270784577141949553568148296295017876356762410641417178366071081661183892993970528248073367814866433026072978636589794221737380962821813248485181910618676076703993140116677736841604072413877449052200358420160821668746580757205475682672184314994019785646163868535057808986535672733134841562036742708705611101028537385096109545492514603413357223715292248704920513578666779724850956798358095164810508473965091240163055872957892833533322558301861594411746162126919615281626398366064007064299620141348450843625292111695112840558418380237545296929722023237727323770851902769166016803717523693101586777540950056199525803884448750414435719997239350246716380379184833399722193867782625510839712718661774934969454157064430944951384659009926073923966098914249274635510946819310770609318913418311320660163770792872981944036584126056792280525064858204427866737586257372866608131820539769395925489370677891598211705000782805872052154379683792709580005489095225794248178475475264416096213787848877248044297079743787776291076793758249643887155976040575060141871017140602155281834347607680528503902644104061090608852324233161444131647467405269687008596049685565998031055251477915571953995103058893296722264470228764320089447887069835060792076342406270614302060471275965049629648740140973054207400439224636786483263665486744016328003404994737221587869692412625715546949844554440192024589709455098497492827816659300497377391269756046867184270163553778664169186785011420529835927514507601193138518552816494378024761248782538375547255024264281292450501422809914916903676767315276106384505968614496813972278558571955084128427076966421592256599203498416797011872806370302013472767339982374103356908901193452937176790466464146292110163424531665855558942721855439395388815682413043420065566266546031398269787770745342976299062019274721792903379407565602595112921690105065554643366822707972693870224057767066124816378477125974048568186094431721878880968123873601692520506449581978527369913640928189137910805366913380451453162535039877556512667972540869605007795359987647495923230441660014136203665266854065675948455316758936708728060965815311030970853426039820467692495817954636146830841566412166430431412260562901822674356541928364837907671647742293151118597534601479241593216671565880904597134989468583652192957487105626258518238628683890278736121590885953337051530161615476578720125588348483100003194078029229600856725078488097973404274272172476979883631166573476002476140269637604385178142821672746326451649974699244095087935616973780906452763303994231995963469624312072271818378329391862892877945639367540325277414033661326708970986471611073516226601290500459438726831276834452520585971185984610451516632404041401795880984738663846274727321377525830785801662534284460884969956431311276849141150880703490572327618183365359470576262858881731565379239814098124678013205060114880855288792549659167457641772421319532016636287542164029771544158246235502545775361072968441764612458704292282235153503826163701208353833855524233571867230481582623997548930467957079729080121625666905503850207679454508281583363122906201018929345492870410908561690427210992521561061697591609459263987240729907973378418408915615419739458030201324201715447956885928919320266358283631361245511322938304499927400095011480008154207858866211372852432266444538221487528466773998690431341661639319800929297925400249547852391967645963427121436699111450223821061302188613111442051275677253259827401262944519153003357669971526960711559238955531356939330852537410449745384446971278244898144033333996184272871190392160307150827115242659422714851903717786340273423985095165778487431149093751555109958826555836755929962139393194257117664619467505177938044110754495163977318458169916529928251916959949393866075039567844707081105711901308617968597360506823258608071914383177935200089742194541176426446520265638642033001314562329557265393352161021493938906111766460253879219958086972758335696274167491534636828996740122620242006785904054909477055056262085358388523123599629916535646159084194547596390542906331784528735928451218800512118385482981117881108490551007289282884640371930913476650852364391242387991245919017431345773731102779274356634792864416748248025551045687150952383533791889051765708883868431814073748371894935613492495641316499264927651897176176532775224942917108012455343022444806468521511522336587330499354347843828504998022197268505071909156320313425644109883266560320801199520280035513486566053509293100176557886325758238630832422111689401426911115168244879461692813778913698572452119140691415271611696330604665483176095466857310280899489069219017299881243337013631802647329107295952708467180326544948418618435906050493203671281449922799740574292378466102249317121104778285488771123352813033881716978969774361965825790380998045527875835790451240427442650583645922124492139947977390235382888611570934392179548063882139290743659023446798987517014576565986711135417546390944849460435337810383075263764052822802055425961990623668391004192107236248218250970909847813144760009077131645692336352104060285530775102040477879461101318595908815527336662806414203788374340589132956963186404841608046791352682396826286477142034304980478334954027609978905309442247796434171024493536565803650173652004284887999743529670026909951373153200738282838383805080638775532096674056533096844847070183916586177990747714576627422010217586266999105259220972913738592866619334044791544530584019792780335485154980409753634257943363173539219118909732781105244408558770488181653921740468016608478099234226302834486458263773220509607089380819959539795890651948909819746887747394824965946103400688096306636312034838692516130617024016402325618313272529327212748824057354776005774986824189039750294430923286354477135987711169483925841041582026851841771622722935753735254892824312533852418740597009776748528801072255066202088205963660721057439648811472522595649804770838896787989687281608428223171889823915674694941766881289610541373343679753330002296545841310827551840891335966906787883878220153771297428243272126491407468505118836258032309313337914943471629390883443534187680661481188559862822312703659285424951116089418134207306178034943136634819194828295582011090400386085979013800613946014779106042771450974958742711242335490609130479018929386710113969493041050094782451148803922529035030844047856545259173243475954365417174999146457828512467928553909974187954828328019394227911119922427275745444883176957074367023204205410104849884692399944189533782148136149602359104288298162991601297450715645865655091685845457927575701080783981582822683101406691672505880654867514601079368007170425933499713771943388715526698506396204509165382408350643722974285433870691392911754501555071566934877858929770995305913500239621485977048055500485442642583503943154695607068205381873557122022704118638782803199359955752647999394911698223749333463603434081209831192208573461482124348943065285052745189639987305703108217063993908235070801151490054951594868474379611377762156330669454572445177415961533194917690221761745176485792321064234511241160187554655102680586290521330246067757841459713908001860726168220734186115869390411182538520254212255122892630061215443554325924718763535949558670900528506663734437939491776456603055153404730285209745938994209419963539048449674724194756420160138407541363000584344506016638577306308873413702961077327024705455004977081424240676356100002412950556352948270858488119799006729114078156950213400192670729083878927267314681440231435901430683026363460736090861147691686072691071470587953148604082846031504869855711644886436105362168129315123868159542647829125666260543000735056070627062901866813798615387381512589842987007510811871243528579362791516323716516457691982596025441256330846996974079172297714070971313058773827598303793533805162213026070515406247607426308766782384229054675592795860559817029627234114239211946179566766831663533689389447652232665107645406612100469350456267768534767498307604250508039748241392999208072482537146932586791326970161795549595009148981815040329952594965142232536974188195518014353077035296015974883911083671454822128554797634625204760410975553881488153325425122894269406915256639939333968376945032448940182692326757987681192568546778143596613363004144090076791169039203876900546778055698103845976815958923518556719299647465077511910229150035648055429118713595519976563594889296020669411825329992939348473342490263844052088959838286126689818531489212122480957657015058677743716434339922362008004636365256782229906278245411789352559198603627292979888889422694393032236504357067652115104379152671827306548035678454631570521331096063093931791024788145565824742739948564848511440956824058796592043820963318662748294228573292353329375693371803875695408719334325269558254226514359789315436253890972659683874512868512175630107510303242423303260165393821270249434830179676065408797990373731136421306202424141893949825597597685984526173726881699535994797760823645853115360666248920939058066607666497526215857506838074094922612003528471712896647421184447555464908539929636641251262830571003529797121979673382448396020790243207502448876069491681156775958502751490503835192338099498319695813969884742618296851859588841192546602193594338741237964258361861210004886230467387177119803282643427043127923138064250911437251868101069346311157558688799449732620817420491668277254010344117844478375328731592913777510686710006835222026762269738995936248607102278275552698810449912370517908110037741938661720637399815005869227270112038329779213496685942455707296071240215853699126635283957541949559771841474570412854280980971486097786449909053745938240367818073008211858411334245320218384906827590461185966503696471040719702674829786940738792729334998864480878349797621298045821141446199553186782052248095292773922535726653238029769088992854210763850387746298924672670185738414117851686378234191705318987695297257631509314618113118551188602582624471622485383598847574113528954685666187100843060962327086521353261701090880954480761565506268158456221626898033496452280136528997929979263482786501346579224987517811864983257700112031166541964679065270825197003895108993526030021028995223681849031253231619121770127109949529251237209265063205799596455662888837091982246417619324714257347800428126097371106214531386456595795390376268970559492751932702658643058832803989215319868201524371586345432312290462091002974263327093522015697222301134260033387495892275237266839168073258062440448740334705254752043058201639912165134116772692422891366784828156013293680970818209075518542874501849193306022487833275826777520411893907073070148525378015143268505319188781277887622679727008431427633372931556363093631095765007040504051942017682590905605823489801049488738346176930904832115286722606978689663865166184624699303729334150831220835733743519111627172869432715966575145075386831028897663285072270080298625570487191798655340378294903015286511879849210274713826714007234248085060082467900197128308608449799740028477991973112809306369462058220692781630080892937945051132456195107233531666899452559379995937735906250232825019273397231929064237040337468375629812836452448823463824445331517672950997975874023249855224747843381341954433247397275768772478696023129320276427701437119397557318177423717182081745057710217384302060084963565228551029294593221032138181703176229195987484814911128104533348981154903589510893575708108501149400527624836866535398275964628985793575491985820183087209250543255428120089261089995724422064722745643081566355491592475763893959645945998172478321939110748443463783725206040626926259450960986660387070737417779290794221087526010905061273972955522715175357324032128627258322902444156454667292824277661338565167611801751859956980159254217480651563565519539591842716285029269639890884631563519821856886976111151800334665070411395769808434151362683706292991285027971911626162595779758383432076253317049549633945840912194213590631035069346124585495656826423433991795494924455373040748238628895496135305466795331994659440406531992392121842677310789490794684112726231597792105454496378148943231749861396224883095873366246975573117802808631768585436611649174126387518075091492399724607919087950188530052786883169208259156998952041017634538488481957731722405126759878957549625896580879652354271955355727515991203303307536579779849672127727933906933974151677931033008313822826182391861109720232067190562599261731262113852238352300972255301184124082338578181985057005852300168549309750304369292634097398807714633196341431135352193511406784198434599670512102452108810712795450620733720996243971534679568273695255357842797797151907927545707241204367826195060449349241465121060563050155967552368260003591739032345866911883980385495493552632717899562036811782080425726273685244428910716685740531183747282784717889180182821273594840764350328407195344182407370397067143174312832644959000455823531213851586723302541081918278518236359863248134742956356820024932895114398217434850070374010172804299845115484029900780611089494492177841478488000838454962425802868939693410268196943540902666585862763511617827446989274840876241353068258989780037962383084765710628917075424205736486046897258804757716560216413177426815006352416685889141002773223197407596747993401928454365302782416352871181282076276098271401141743299726305065998273338230779027354965647307772039915694400804826681875706692863965571367287567638847550002706866128153212980825336859853475317333564941882585095401887903405012153713887209805647263935088075984433849714702319141419166609998248806385782137375170163000016716672003293205576362595499921179088444638421281201191464933300893573277546931300670341187615557264365488396191682409887369790345737113161273951087542095897281907484172783523067176639857043903474570938443780996242663906009597774104794891010228444902139613152899185977555166831200526227577175057907443494347478719261557181458780317629645965101677590746785798554612454851698618029810023122621679282633837227346974318750851706343804830614144257744428551385862537548110235661397779570495975748129101585129006509462823339733614927800375497920362835568601682861018890805811481210484128967643731434712659948970341263421092312681998558938322992122910384171461079152770216482905493556337205982427819646177127647518681773802313928138739038187584581135815701719409653656387957212655732594222929918910084976304792009079008241806079435539544608996962199553283529929570905697318335066506542150547625533866432464529707975663908027650185295274180378945343034609189840110201837657301291004426020227589744883273718641400441739661374934474816972005288281989731445173638699168594611766321555758658696608321642115426653313229767221128679764562764505808594271244123234703144016161950354810107134265100528013826401533483997243252420882573205128882343023125182001791225400558481091869577963406243390603378680529445639587351883500306534930031722204961297824569557828622454305004723569549547381459147808062870279906758086235160752583830912109215187860286906657031354536844862086432633253584174329091767212706833631849873404306182226703282179093776264490069204486253347072273429450028453307252561058002693303323141231790378811761403122027497774870848895462584922002219861664884698606240683660007684170400644639693570288068364091112277929551056993615407032466997226315813045851104274519440533059595921552510762966038089096802676410266434511758517494659050962483288874676432894949863448610030405153064167959783080542031082736834120579837166951392338957876196165203724332792130261998749157988629905562862126014929510523181248545449835900923364789832314781809907663464952980133764506933790675496728835169855015137703728450509078509997020974781992914203612130436604412249226600676136913602285894147480562214918123160976538165247501276722275673656103910943320761145955906988110565199745814621319327806873194850576437386157641889086389702667160651981954964772466744569814462646191885073510868827780236648953314486634145218399602757622384226445591376401114222742881720060865759082875958172196699360683311310493831388431005226572419885160738148593509424640842495853468281697736096539775123980366051921119124296094540493187021091465938793493678224240717486800240276886237666259801370244774973062110547341098699318694659294991891210129388919690121939248844844909902745887400797063884181979815446567309245327759884878895269689495179480531931956430117843254972271971061173150787297538311767433066587226839413680040999102965861295013556229211578111328350938579861027049314800103366087444149483069711643435450443601848003979708142573073072703509894838753069118186553467585412760083078816126748281215350531006381192506266904542670940162616505005746610567076209186629515820052897084421792754765369994204671675293709956036038696063205121365561220035815577913371623740431194439967144283627926842030653584651176268747213128101861332707942910921454522662556355025808591654411239223454739109049105820661843655172167684606932030531899132696214271154716052476176854224800480818629455216846999386625366267840746623355099424521854481551220126042409763168525846115814645738928826519058586642227921033003338838598482467512026733975849984877717397614248400493632135178469030661738768776717215192917105956129960712328431490212340628588410804311994616077287475047208779652172177279521667646086003265378819562415671145660588481648745708556661873677263040515974379748239902343027246839716320493407427246367777354921124155207884314918355647322599676652927298517824220590956753210751121727831094599927867976778173843723587814476648606959263185390652539630208128745932226612619218422132553553986901846975343175884686297542413064280073821324387546502437963500931447150031849302167358822383500356738753441345506095374309187854276561587039037488763976393303642640910660212151339330084356783532337027290983597184381283786440666369949378902356962223384599505483954552862532649003324331968356354281592604146020271812180421869038247622583415444718842724169845899839762812907459487443926981324414633253423493676220596471100547066900998092835475967839205058411348765450649694164050083831601782618478364509002380342133626291212745761961475786363163211655117814734604508446988537377909455706185541190416973377546536382457164662061074199248475800344564320168470372662779952818397028538269983248070609593202040921134354558936028999309744239138811873167734115901020530938261505460745333511440648272747291741059118662494881159959674392069628256466742048804981304887383664864500035159005204790890795529632045481004437409501487791777645261008102946039966004176944425488949205815851523912373036825098290261439861362714763638276530930220670292294346891432681045538986840974294472029803769743908230061117022665686887929983172640828618324759171931275395054965582524747655091400793253048538082768403062919345907343660217515054949859828818111149779513096769650082852475601114595206309582734708221419419314750566169027838709035408979380213691768148975643725820346749193527368907837498744934791916111368171195246491863499715526489437838370962735149793161423133772351267352930568921949865743647903399617562662645790754923880209959724585628491556723774300233874962691689773936479216393731620784556309088353652130543231180328527670939090778027181460022498975419000706971753884009179589766997628227749636082150748008678532335290061464894025126004795807429627184055252271095981706044260837941779897674313398790585197190187545326094602510209707453598622665212596844302027100678462862542962414202348696194375368410079077855339247843338548589062170215145217400127075712173693241590005398740738557964617761101516056481626600780126866910802538094129358562788721900079224369001672043710167172419385987757534027886764695722609932284427486251222065111024077982593164568310502930485517610778996380406989064066498622741472476524830539459272211274214160414726587639279074876734167836696655297316917964206301360635881482748730741370279743578901678663366853890200672214086166209633260718676646674378309143005628389624293639380001544391453033948842972490272343504699739696914580593748050473475377071060833050710180086683537064035486495526155722375663904833932001488800879208295589081231270705584389477982697901897972223634768507686123027529013523283482932711301297653552822865155090946458253899162550715387130772930356258504841183287380714734286405707750964101598474653890556438172924186470693350523377369578167500739594966312623676263130901315960275765693840881840922291504882453289672920507032549392056295315446840519009879247606238818683624051299164568473547262208091362663542069120271942694592307174346830024028249471099188585676780354445674875637730265164598174207640117727275391653155030700553703467794489648802831710458710561951577334640139443818458546664650757999719138205116058605138814503196719664655471254914340087104102236425291214261944978973339301176541151100575918378744024504048265097154339120965276497937454299832453106519689575693133663523944185005100402756718191114542900953600251161525609707392836682052425545577653007357091169672864432319460812253095680699272348698615594375135823339043066907619052670773348486727176407378833416734738400386653323355832851247290197890197269219850294110125732856565523116825248785576477840824295239044297424469751267220001916991856630721157658963266132289510060323951910070417630653801491640785927377401854906158588789930988275848672509388095401790248748970116097356692300620337213696645324399371643617888889551631816262969947681290285115677598323538209571974751361164125182011630139783153656577964796977515371043031283186435507349120102988854093259805062770209080225946144443102651488233108777576303665060157238316510835761204510828795606268019648885213085395634231752790199255713707093065689259897294322865007904815615512267794995701242847614793427734945951217227579442483045774256164785594879655701586543862150306201775416557619313317840213778162198729752337264222063347128694574369713043703643201500174330850280478147945973955662955742427115237345985665159395315692584285619039101327235642165793617371399104763273555993566113569472041583324547145803900672531347326813264018966827550423845356041142170808674188814772014016074270519606959401416679467595005635599642647358050411347864645778128447570010016107130222828190355200592776552061576508446620864252477614538332114100706459641342845505804459218534179195990580748714726594479946973153773089937935258174151039499581041499720041226125387296818054049105441164226996534918944772464098257194102559665622431643947383823609971071004331216739853220707552890243159596822416511260487847854731878962031735120470210944879478340681382263000939935896480022620215214951303234735878450695639471347010905407379818157025392411711378981547687724476399857202592646029671196038184636140117238370969788658524188744022387797447107067229494729672781025382421272284989567511867696852519342411922669669554323338315785455804214577170948337474636245961274879835215764846402144838486088754696183291076436732703144706025481865642373467085790146215614161083842206892580128071733576849281410356095144208480198177818796879174798756987026831706412865598958377844841016882195698040479600941494156141383592763660938192068071866955537990893089241928730235435766611062831683257120988354665323899246731656363069161790152853633954942094585037850107393815160388290872331602207707058564191661679099206024803124674331874427971340515728849167387818901909151157682555050459858789791783679716610143186493992712970508807533115429065146171212885461028983458196458138518876001244651947742995184736039293025257968240313402286670953626899553250508532449354714237821850894322589774921163180004160844330496807419878650768291459645795536428474586391057989612348875066934475348560883762160877279674145236372405240755139815717650927572851159076146379253074520119045711993836176357490147238494108322535674203905027132607120309805884057145104009494950213233797253458660043098560301438855846067570070682254744321660636797338105121174387561387452311438796240886773621388512068016347634950711285660157836144069646197802764436973611125748541918508067427235952864915117702202984582969040062858069463838167617853682989317776950021368887513960609332361383595060491013837667468094855366839806128178954937178023199617218868486754643998626259852533966466338608199760680208992230042445937418866685020283086617345656884075611717378522590295847232658241964342318055547457756179975993945190356762268265502104933162531734112788623717053262429546922332420154775035168656359878677139360224441047386842505714459488057024605747952752711932562472521687118722102662786138124076376874068965076470533168765318012688144026059094224424733343475594293762294905437725871766466810515949659292958926433749778368004325066637414948451453357090793432891014305507101792547480618569320096114955741246029420495639336563487404280665603363504647466884841345447652731572992875256759841949136413637862518970046518765248499373880721463780885171412054932882824319995214568359218682439703350470647547704804198287359921638746864720703850675386412337525412769136820507006231587852134238592413700573958441259805329822229394426282637664181057843629369173010822172354731371569894105956296934087214877105665467754368197618077220079684017594476275720340399883956417563314854540996637472736129490931913794030086158129030320123829449313491139801706164757373860449848714614258568869526923151330869816344619596552197457419533039522026522852208617798193186730336122630598880389399224120008536695628423850569477243571761681949046245529716481327468656564144217211693145811535260305153471482394172099538914497669735845444991399754037051437984051541408186217647952932410687212377134153763944365002957978602694402192598214936186785290507996023845447971376131900254433443633624744999061289988033502591022661027663199407920276164469435708200075123537199330136394581220110643589966791238533552250723224620423185303438880161837438859570316123476918532943574415368406897064702389029958679766748876602840466370412382944611527022162455618062936464239887119705137832567328606785186786585108367386792906954288767218594418945849186304939043012289982043960091491321174398839735558942405026049442342097790696784472957635056363264915898160119667379142266339824592420426862677317284999335760394640709427318733131492350484558592345812879451669677536695644932307068790832004479204116422491540276314435654406183823387972430314882028398530204405266105871293034464181432137635857394328662172521234186849925433750094639877445868555845266748884151936888493267536242503223824258328507372617048586825728098918754125325903312693813776470021336196713603380427524239925138067659913932110715899954296885538724176708686943790650802934372385528880745921142322330951504750822009644188495506756721892139747220916737691786102386942458780846652830350676047394113510332131395969221196971997038820432420630715366167812096911612024473279094820493285957152458583728357118257906799102078398719107057314578876224744503240488652725793803996101657090407622125053593878210288037734327927175333547151838210843205053968850330303338002327199440347476585315936948689980244823506378147354938957388293986672393822846650337631506747859315100583266410229455992541991176331849174014663370768246932828737443038783773849792768314231310322327213249054582357747371808594693626690655719407178064928920809298804451399528673799236048375997485882020461796939726778866768697617239918730442398283349513498285639447778950355520434749443597329346654864761184973297508891511388673621688400710423095560292413631115350467192657968616903149120249195420902394468785109679159467805733118228950075491682018887687277581654360554639029459819283422118073950480145125521300789126819155413015968635819235105422624504551958632654757054467404916798393499849040650419110346757967835726241719658615905982985499559298041077798266040224296756640503551730829795023991960796825423277622652123346089821364385578758951184961303243970542164784235422217716618029280907080104482520872766740873739764251708415119095917160489208197896346195276664395686137701667309788023429415064251432472601317032917700851274444868013200864909873870107606908972466376590397407945799326354954329019811103137450309145712105939470315431786808195743584727201996342278612460551038067806863268600586571803027798742268530812213437140395615385116228080051955499317867772867410086085577209855471754302374462561401253596341650652253523928504460940920120087209055028255719304136524333481150236851660582510300640980953359432684079359236496728891727185326639980714994765968312371384761664071743410104053115448178044956069735731635383661364020250795823764840207171314435156296754379119149111109665393190344600860178751412624034562569930102200216098567051156161449505212114316111037139031433251210921697671350618728768141126595558481348611183089099423204875022145230998654089286962667497020790888582917907547156612825701956571547459698050368577754766673296972612106414496904082987669025487102768087827272688711595817174275412487628644119869984860213080085676363922362479230484752994581919050540641642017768048558534769219670107691920071708235814926307802085364449006203247241821607226231857510519969828905947352370817804965206629484239266099064748444841158598387483267089095457793215578618312634358711843272242365291260824433739806929938843331191549138553723003034954279726545945420214479040793965729977483110786915470087172841140512363788259830398450398251661711364513689684667150424646555496899333883144639251157444780782388653032463422425388829244786490514925681678457797062059665801774304568505962991178217325831297048700983040864690854732865228240768150182490053596491868648878010943942448289816273416757588547935813229659664011470145776217207512118940892107181815068237090705901415369854231883734134069452161621394122797937796097321118002911711432230411430020744961867680412173466220610838688736449837774400880449542562610443133190896238450732282203294736481656611388603906326385993845515915192276649795562210597283823191363616745639563913093635940232883847098724997377229623540032275433832131075247855550300086517868508207598323815391578826308856335333211234621693777263057421828509788172131167713941195833010689535803382667659161949021278917092784901523459731802327323442161100785211369117899169933348128083307229900368247842355106464763406138331873962215908493055912934289882357533967741669994311756425406409179907798503486868379458182225410554052019278491269743345384693027955750000698688748252945573630449637248773189160637462495592047894747248284011756062795541455593548224776376811725106427772291788127572754916361941630820550484099813051765122842165577281505660998901721315591012544357705990108585135475859703979880744614345076376476494444964770555750810486444028047618561717147091774365901469910917195798214350967222021156885518558820304730049823805532193725976360207691473708087068605915096207631760813795514741885420071550608815290226582549420337252215532186910459590559200887716474241342155381002610699072238508082772286818700660337703869506643700829200233864844184768750378871003430992300151109931953832490267433130720644092114957125069926534618640277994958766412175619562642326441964471529083229014766132833000228697964709909962348876857359625662838853540084864312608086551579098799136697068357098739732404434089547978940492001544728371589854544251375548205124557172653617908772674309690478559656179220450829855732815587288651044427422826283314921367413046141544411078554026639510890007639355158967966704322722496814702382736642410328122601692081638412161003426460862302670124446129039578123442371229072918402098734058759274122188381594841549258562654381515064469536467619974521747753078553232092277554069820022355514996553305968759583850302364474183622129462688198081563276928683085747446448634476083376641354639953746299528438814072150909160818452578790019127385253506715022546063063550326994393295107611667953038481967421522729693554398696875288641162509876248245845791629176692592030280689729487905484401421126845447488232957059787682680148468744552934148664969603700812720908157220248459047272697867345704764345799430751570092100344054401564658489523198848116272532654305948851565524342520111090344194023330188233118711158769453398527351319203006774341916153630775132889255552615917960515268948926788259972837304592409617071254649349298381047217418855478578314327359757464643484656868063020240322440386383298223585553867993670979848502761701993102235206742813544913403314291132991878542953038706752566799308767966998198385728123923083442361726967808482090396443269108700733678103734214211267976706937310904098008841573572235290513930239354012172980050716955093454179710870527978502934592034331991310894894039532520729723578955516560091530475549883612350164174412878051778289788881081631747212683429927024475346147679108702081861364546454472007563729528738084704956340021863269885904250850025648494522617260639469724682618087058557984899401572372192532189774138994830928266860230295094126466590522021592853083293883684612091184764008679014206682853442564143693244472910253704925136667729205607852898970355609750161353864820513228011530522183034248782814364512193906726681738247482730923742630389170871338770046140369165254561503348260304988558797443154146796037422079006896401773002933322024102444736101714154034081056614471137894939316986329159574146725197629719698635443672118936101068426254455425603969291301947966580708190985290257754183678833360990813615830954527554599175424625096177082871932429678664176469408818633445878590605788856751619950632031311994036495593490523695672187629955633543378106944228186199314982136707336555965140456936412409483743836752180997711523183342247503894293238493616935716655607892607601742936445764327478789107409997599226648675295835911127907973350090031818483352983964646614609842705084015372036320345797596322348801316770770016660682776913475828578456852200261864534303573804295164868629755603074425878152229762449228045666431181614813073740088247987383645683391384012741093186763542506949196187905800916099449102728949095281637680599447715983001481093927240729897446941659664814280578977758212436144031715293887895966834266345780193079292886323781044435347059006595754836826889382810596090539271716140588443519207463181057332523076330072596891669147258625871576781939395434622679691142407569769173995268568025586117402096905820497605047953614509603304969009946185884178946402387505260501163510189710581966726532486277148367112279034143317383194534751205809294084466128519305263223180682278425340102694246825587713169483297948210291066371221947010920714011790469606752431958340926385217933931223003970191096407008301813921117428604077693629746697661057046415355069640842678561459394849663006196471775163771439650035865615712225127353814922609186837660822213377388956207009138066700875013657332747954762733157653726522923054924391024806027314951097897035649446067490730451818503248631803017536076601984837435445933901109493303802952146324937223568401926298453633438430799951864444465034767982647690956190582066326679730932286974679603010078281231461815496025954958259236127348568391543899048126513917446583930781974554119246011863260929001601405989902471453243592578692556624785171926964295071984052796905007915701636091372969104445735553960661185373683448387836099831523994357793786548269237737223995596482828684259288471780531067376931246871729169238370044804979809597957952823835121861292328141058676684409719152384670416207519910957123716387418844567387266856975735786306957158450360440568694940549502606015134319101566794376089712899215955552860572106350794301990396661308204514322888032011596692840451326707232172070751828758258380182041220266504493476404381281732852754824739021858311430227295147158068327489811734431791870993117574871731196401657369387008747069548283797100410429569377704476648597946942588292292494048989601899016194300696244238279198037659227312438499980498952545491099438726193614765927777230161025358337764754547692519601615356782865880570440971619752105836291012702058483329727854119277515162712324908223359212578998171976161740872688623658218991496986048632949675198793584426767653190023180326920810967821918665140244378268650907467879141665659258293215154426827468648869545240077009447961566718224732628293568140188236618088722503479392091919715613953587870657176908920833321610651826311897637805124076540101243424281077006495790028579450428166850002005136174597512368716231131717740062706929520213392873919271050944621678266317375737888530011133144107632449849224578992709189708338705122139477534643405155771462476625693869964703374400368926617158846277095502381487208587847085043523780866190418845164914274825571310371391525808722778002422716932262282597274269855420234652684274919241927141743203040050851545451827867228020925411925306451360976656574498060757284904147823197846149735586935166232814540408856284355134163617131810867496107861996391601913137359442641909239275495738190893227380364091538271987424792568534373607284079728426218582831027312069036735493846101602899114263444763815621548007143746884648143989053623457561733618985671516723574299459551998341667027627064055098719284776569588022293348718602080515152044968684796710832542464711003832202500335683007163085374242406552235800652539315361941961630422364641116750439967734708719232214265848590865882611845644103344464860185818556005802851923814989167278261449531557391500563330750292245736801047150504346158729641806119251341215180831858835923061899307085916510744355216732656702856450183509262684338265900828780421146471267871234307474482691019703171626449263750211257212214609689366851869913902707100945103971713495349596540173533254196208031726427534108832020586181147027429113698608889630193337018110608087325438274280296446580533328893151245806199224357671676656882686432645379190228975968803578711809032610681057276535615880472009701957848389017500134684761810792692454682660835902166963078608975559848069816482824358914617150784994039688185381346263485752849508892531653992426817074460721223412999194960565862164477597136378447607441843613628484593041868502093268205838426903208030815893635898750462231792676195551161090579707795338376043326793325518373646751083044130649086958773365659820807346345678677341795043488162920927268144023829448098850245408332649856018205118504205479910423213139514413545679168455972338822041720845383400283894558465863949389618494235540962701845556833488714205460071425488165293142623828422588719353896216277429377175317468979415677089660107301371338352931757624427620457840622687536989392108084627631796521082386443427546889114986596228509851623751567362909358582581093193512618433066404473300839175024075178467021432178677535610428932764831717263344988055387861100875457643590028758464944904224835097477217949877129189850931700284778380552822261078160075365699933318017514174679467112817588082114800702426449304490411903201623843932137522727871745067178319892505403134226869347583283037826646977029515461830241024528129066727679726963032552057702821765564204778026966420973460223361727871596325163638033777590794810473198526304596807988188355244436303377124761123993092465177211956600187782461466020467296008995602075899791434582329321220669695743292496826763000268503413987943154767125320018774922442148961910597481339174474052455691351004220728696817722579683999544941468769219033044887166223378882207824828641693281025351191756641515564375186597395604165742407650754644089164868005290967370494858189547451120106822777823680812628023531699904398088015036956037092528812840461644340061832217204013719366078474290490806836814722391705834211683642689196460169439205779141440256111153537241501355443683953283031409759771009650332434829963523385226852699540617797567634196856210611723166128947780647348337793819770468910308138078686232288464312151669667412295900345838465149598324671885642418020153182875477478523904650245710998886471814738926564193908846642748983101603583182371764461696097735317377466202922535616683419881956263979453790900877728897321426906318283784517981046133003451374439976441939446261082177843974690626291301357262896484661477493235955212346116846599517179894688927225505942487396987343314077096280840145700572601746955238711149318790953264047583826596894803009894042423868036831085365865947393864439859286551620524873352899780753085071928100942203030466737469823821788801608424483640568214594697845105270186945041248721916989288749155667255275192648236084762853031016695247174183785774456231688874718500476244294395173239275907824118630750149963387016852385947000815359418108051971841261635369668588612360376442754457562411177855473547946830841062752318558210629983533138911503352458780994010979372534623989413522347916627670367428805091186213682652425152746952400546616739798755225709355764627938321107718841027856716179870552974307983614005616509217911404525409320432093146698305946055689856163226366887261700519262244277719542410358969957689577559162282109420947573442835873881216731541488656793715444050105838904717797976538917544906898938432994364794480017187793508539572804979791221604684559187023400911463715883111440553757865984039842312676594395842555978273337764036813972951272772868853966863888496129410447770344184182583817740752960286958072146788027654301059041228133459504180602059442465755975150867148618192976378115567732939576990023757184700748815046096650225061938858989569128369468796363372440781713930459828194836096876252580145119656045746091910243904446292757053102600069822440856522461568218559661008715751265641122320869415345062955305753716978816576316034407390549015764018063437892996721062029376526721876685215215643877480667035484985497986730130287764285807235594651339666513303737084091390902953950810959228390182290840476047826314584552644529385472526896100931281209523471247944531280319079747757664466811014882320558938955109016142588885591553911728066810111214731863440869068844971620044832046458727885871187498296796250329049746271337766810852386529343650381213713130532499602128520266224743599737897745872691508459735363166884358163142357713186288569585364891878042558113817028374527956751452312113153858657464900532064262928468077133154870563208868088579465626744867429186353161716974744588556200396254232028459985237145222126063074127155688983597204545519699307452664033946777223869177257490920521577912073305229237735614289483331795700600316410839237255241732367975417986866381474898447060740465518315408977440458408819464419855751010328930881992941325257794997112771638522395873011442322230646278497890443576712772099650649676090813974061988206023514581508793770757225218567102392261977084285306168142352433386676814781829382244741456044711262869209464628980116973863928962255447456976112489334763582786386245727153438727764756272805563962931312025608613848448147241481917523405955466574569943953289554832374426870837598164123329874501056578073002856240025381425908898238203052515450050155037957803802650483299281151115792859390038021999019364016136604877604657423843000263939175795573942738390163332366809663459590797452358677073947752704650119172739319759338549748867344957268214156570310867520753065702906343735033069657954802742355112773788181492930108606952797283086821536126353503097371500996999174764331802630286812625976545960354936642708809569449106585807802006542625716375992309849097326968219790820529809492791331676839023171945670302143179574187021291342942978447317581680965440363210842179985329743025579450985675533112573072365033546081340160692417339073216301060177949391224816561071864964538388858954522965249315901257841905826158668580628857990130951088548933703038530774508344437733376590115211683926650061766420097716082458053253095140893937950107160287137653863438130927864359381619610060752109241143234538650935939904799214962730798618616501607341922334404164212525692385021002548292161742160125692429219043817573571438878940552662631497133268222372439427686877416011732342367918769954954203832137863206382439636486434716631762440282869760487742218409193379481243934604192986864912133201986425923513639481506499156230871655038296786736238106838890106653312599040636773517013711372176341341310273857618314280751556536733673379695956693826241401783768198920190416456222285636046877917753421913772473175518159917651111504940729948002397588577146488027963937095387001494876703835130173953387880887486789579988508257709352125942778943130063573790363485107076089016769446771128071351395533921988502311125687934562324461751923132675564845928644530488119588971636887743525084744087117146839851187787926118422284010603360383362877796401671121292404819361430887161169635432872031189855751102186980437055348190646465865551661820010112057423425807905291180946342042837987289972235598074486238054578810279751745798336196853624799287404468107300048911250693035915260909572119622441585361755862851277309746976692542999209788625166388580188203626064886569850537759806726844543152507870684735452444000657110230544677362795875512400681355158135532426248362610221607742465673292709528415554966571787171599389380050952468288811039215957808297061787804824263256079812048405494200407853732803659750845493691969219535262931071633768735536716573599332358255291185823568776871869939601234446830572687598668246024612568552139705907136174301481559508868153638603566998497646106261307550939682241693141035484430297817829121591709786611701818023515047782470406826978437072300426257245342347145078093378179310017577217888158675843029861104821204277449131390260853201997568095381155433098380323176411740347314930095284800563958779163134783719189026017231694705299640548710867029937328582417871638044586709328990201308442784081332812245985446049502985908211261090466590150957283448745927002878010942857802252647278379628189072716987483183062971343836169473553483534444871831758767316337465451031875522046988581944837236375007343685829048774931465620292859688023110735875179440147035844422027458004769877396277094538380091802381495617649445608140720173806250425751190577393877730990361935844528820665424510317233006601188176628175324127667480858711170285932743443551182847587945098365277526410240177144588328488882454364260764742059627992657651126467097109063192666245220491348748597159434014430744436067121588398544290012433007462014327581114723481241016685331351150580488810236331754952287351154791234288894329580920628018881286888118353863822735095445453282300791463427908635782337597302881236926671600961740917184677876077330924375477559181385336876090209167263712203287789042098589336740464868681597228587341030523688932821222550265867993130605754877089578668921469479200695005917375985924548154583740378522710251913633918099021592765467355245690120307896668803583463105428361120534503209102213785754795868938220505173241535607994868322120401781085678437844683559723062540830222427978753375253710396065187978713689874172218303971207035883399163730146931592691389312061454872827867093051214712189320971289168598939629149210029314626524416273763597038378277125248681697142220389525938456101433021766809965438473169741109468945222215223656283658620614917926268465238015627038299913967680411404679110249789644991463614290969741335782514502280210291537911066554167900790128685426501768287649746830479516065793789976905705319362630210965382472218412657370103593294537233153546606635026330476768930529192359514951299059031486255434245774175940956797849871668975069922179799871304247787628249130329622781542090384118025947487410051736941723664956183714038534625161573942775315359318613221139937660079152747280443662414050943679904922476812450237070552271541894134199701562977647833975120228788548600464872171710610554387121613853020959201891633453814152023461077030497115778612430713245453978634698204722810840632544557679693261519348189277205634371118647977451039184900661068882800167950319300363117117263891953854780286488520004223670049793224446672430321086292675556522874041409301765293892057554814470146571275734722752697649599549912731507760536213534977531668360244398845885118359973078364552316234346075298886541438115532115385337359742443553133861137165460560489292042058346601019767478906071218040557908608341704036782044289472025658377879536770859866974008686322110380816864742683701342097304700380480400895925715556672966791151588872544740642869856197726159003905786475065747611741153874323840797878103853214926990735606605541484165954450795775545036734337842482280710247361491202784419798615655003444267832899575724388048940927403734288609598187043134665657330562294333586356925708621420976719693377998290004870092446559929042748128334624129734489691897894886607819186153472612040562880197858310055170978028740205274150895256136812155816623039145946748847976437013063789944380566322925551537762422785263807193630342225874310898012642327669804985538915629689580517827944936248168407709822760868026404089354480835509823151949044185854301502821224373070654799139365411358275957409923002160361601882178536849889871510918406175358319815321662989660739968458916828561317057391889963322641408747517110180137635091944138138235900524639460191269420338326845263087201954868753684774103146640825343751341060992838930924747755223025641230345045236123728096685927695094586449096377099501375783601141131340242841142218497082448008336866055073560694344577570304788920110499499314164955212617154357112353468759582637641246583815966130431966480419859889006718693933323696714196393384710054752561840368663394885100056302660524820772516235275127142399558968753029669376202244909901128591360651223799924569549140502660760452022682818466931086121479713978696745573006267986348373530701273530726457685147438229041414412084502029107709569079176604457768346691920302217651004074184494323975005797801189350455420515538617227227793810185973210782940164461512158026981911922851421359242964634065987530378748740959795557556800489079767687573843471843540915644760087875041184006367134234321423064086629438163305983455763060253596343086992474271447733591244143559190094686292993539646576640784306238725322060417557293968492980060050251056213885293940026385414645963161980905057664537713215769115099250149468911622683962323827482274260112161726397269556514150031063949663002150290503520712596227922308790369512581772167268875990911800856202448560669625448748726433807314036163694040375342959410371603504673683739424913133497536247711723604966606374779168740182135065295991257992818509080530685441946198208246160630568026436894147164911228346891289970529947740041117348300031228152144656642816200673624981392959307767184121374299569036772025717597792494601029263694222368874170497700166953533400526904426322125440928254812644577794998151781654586081542962293567527351434113747286211964448035883871844553230245939254526398665976378208495760579110843470867756047312917787109707891274037712061215901924330791735365987235070977876481078071661693889158774285297829507460848542386590449268988714470905896161127214849321099342229206374140681255196165908658715339136846844961278285883660016198463488898304226257027033155048356721270428932140132808310183898452038816425718771525010387150284592838122405852002863752289888233756785022225951789534860050483314536968011810150985982324611903370208825348035631643793573794656663491791602131364504472206802685587357612426408410733562075891665790787358455631380670575201766272131613675314942503014066919222765497117634948237846231528431583476983697350205967550887016483937222816432035825306503710082450356220797064244730594411580819070444114351400006897439763994013693817886149923168181509724418499207145920592538133057376936492081793584838791291392791802912967542716176752989688173674934927441650038009513960391691130961784504511049471367666975442105182890250429306141595416776419582192293474379737659973133378866836767703616528178852620118680948556154089524201216953404868030851172642222893179795205357911671973669188634822283325712077818951735400676311015192053113808467045625077908077827952872115127425859943137031768395201394370477034708385538270567789525897272945190723116940716666562793124065995965342384883722114324988701074611091518883058830630443670509366425388460527302434237869377494854094514235900170762585420709737868855736850959218401771239962489857859233741831129538315225023033999292651619098089948982391821300257106236499012811446094569956143395262759019092609800877651665117943929230074647616013625876093299751416978085367225832464239712845068367067648723066218930243248429538310522576652466265696149417659369388893479359528905340989118959553123230976476448514908574987277268798072995138976324623131889937324425161295071950622924445989732457425341435815110638242537679950028521420070987586148183005337913710591753312635402644409365480883279552073382824555735837002296212820943426033939925369696222590386272785358839608797095794814690735163454183057525733980724326737556725723213300351150002504890869135487096474174048274665144578856240128445093982324120683053291482197924080443674291785415311810000602904868044091389760055049764824312398165721496313821981151052148106481676636850068637383444099660793470709871057556441111981684554204360557461166747767254755396263760568673011910146071931031124630173855970766149317327473574539780795311423844925722786870410687917974232328494124230451767215867926377537261186911955053357242992833284356159844206282007957053410388626351573237632390324985104726760123143163296189881990086912018956125939554044511144496760441872662437539035194759872865047421053498671957855162921155241199057778464281378097032829387271428626863801275114747832143737338592921995427851870176261359249332586292035003205509765762537479088247289545734527949004856166750528639392088987344105626331637964766292400289877214191444765069809220749279765337093638110504927073089097493770725796960228223270188267196213995114600743787693519210278773010345755115716212419969671229193117757518335297011712330647076034020353812124583261255968962748036177177057723258760098286572083298810046798458526900960154264429157919576191370139947871184702944649498408126001654248693867863161042076790389555160816566719762107295197481448600209238339729408635108288521125579369945759651937993715251774098813140655413972857432114791374597846574436549739042095360963275061821775694362963121266669942776190200535939895577044842214963671941607123645650865561263144536891813046487744378814731792287204937200215688393786540721876103200622232800614029754776963391661465968079549419783809658405347700033765890688006259061343129414726119504697211432530879352217614719915091746841911995015761191354071522597196354143128065700570542096271208364762873842848395324420627897188731246183722026726881791607738967932969494442941645976703350521923644547514222219220745367848517728909814630740554812468388270594424341225748450989305859443946781639862701252791775597213122393481468800446882282485350001764303179959231724225354728112107957719616463648240106152143079670861042757102760916405139138193139086029399465180048430561358627364425187844023872372850873158041895532768094609634588365306724248663871708373966237587393368680072254398889076285590793084200462174668740105425591915306206628597717274156566457029420593725602585707993913744930969748162365953491228055326858211049361647753611009994754855813837820081958737394565879958351174362072368614508605210241978920724010189345651961602615593487001706172360064005522291451130064528831284224435529201353114794504591947061646379495923758726644154669389799155000442280646500705953797343652939866297989673583843228782461212431563488594050528550561501335487407262166299786220986701096533364930864913370100100772127888752512211212692130091822165427566448382334270946792642171550768380762788877874588280562978013771418801964029580434618009126793668216216298032603492290498737577836398659619619233352732485170245448311332084749017117713116761626616967789869255548166179650058657062657138158854019165418497278674308823923914058676792298754827771595758665067648616275918302384784700046246310621086579309107876677734641890557403343514058864651449788194781133647623803858305071108800172344085407015995400497399940769007160097936240749296005751114598769776738755144033104400841016722217391763713907521621409139236257796687385632560210649715065586728327929969789137330017962648250442900276218910550461009526622570180606461888519475116865969680677666039164045453342522811856186857135740056629487269629267225091680549848801144144428059185315265422539405888335624165991661400600345830435372462270623591192570109097794336466083532349315020292730291327544763788055326302313216376541225466884711814978657561194924344555651053405058857174859332527682748746082566824384162040193738938042725354170732168659395386444251424853956926769054628027067817891475940546033944290684789556290554426182708147339742259493679203514569363808157775695374981841379107252096328523328658765706353274702583605054862800239661293883147780094560706092272875629507002310569071203143336693056682019834368236445662841210017884690561446700903877194315743970326667875829280505809954731251897043734476246269103896501075546185308873982575523014561169488250784830151274869881224578196610428177866293926563546898400212085864377323712585734613816793064244963249723000952425517688026532471490014355430229290960054961167250547186266199705260985987889659629396320616318083712255829154984942278318910464783518628749873249429100197604690950713684933863855111010241734332787024678980872586101460957482738347633723580010350046926149510956055616637902609845244438284044016360213800042622994871233939417115709064754678976998733193614961501336576394845325806373701007301602489238100450635609567289024574029395179959610314221274384068656888109031976287565272591460157107642040252110022540220370128355751498420453130188331588561280369073286927315197456560152530363043682667976212872825421394756041510243991507156056957077510836200247778597440550577587508081611770971344322939007946019731565610955213486446949699943787569643404381344484462058631130038402216913038438384000882162422022152862586822070661872093490798101320233076130120670399307583564628532794237825750608322546047930421364400150217092434266529780372408645952916311627811760729097351407814846197314967436289919553612795745080623269825846136578691029712679845833467112737720989102734661118850630301991549919687431238559083475682884859324421760765897999945251956270552716790314088594277802308077927142925614188509986007021120619270130303814759946663005534988501491664379245126189715024186566001763363539320765429547971018075543897704643743455276891382099309038894599674745512082835165818328268585557347711558430451668076873516027133823192360583415880556858888187886075143838874648137183983383610179670085066239207118339924055615396115479640427840241762177971681751634055338431780537686255929951197992234904524499512624550133312374404114792879957211751614560937239983298091225736085923429371821119020238806181232771861108549128722959284946324145208538887720722218586116942111325366780190106528177312139879155126909544675759073731869603916650497383555146709485250403232713720293315818163394079652053960135638002179649607315701746271309500847339427640187184851183187215504850233215169426257423085990820463220961925598092855833810544256271849892747222607050349595848026591434734743265176685221843119629552813157608597516876519309200920393743015750730089722405079410586324105188048956662760074460724989836993285075691267513136207109109568158314627894121625372703818355498397803447458420701854730591302265369796751063957855862366717476583044236627734520935829777078219388334115391811600930738286688028086484761813743356672953130174432477749073011613376561587297424031130635834448124692947358749229419424536407184347052517214078324566695303905541385012898516348075704524444007272979295300975684845706230777681843911459919205351736954640022287915599417655279244955058496490769100145950234256561259507161584751496818594235155935842987531074259237120622818078585098504046227982321128775098236291556091452042939094027629027883359313587211064593997061102577105071716546083002168244837929909848585660154498078583086315644853506659729824534861638578302253274933730374408181053614839939906100594538578047856272995655438173649342421449044875260849621855062873964694621492095690632336688248638231869297768777469831229911900978852793852971801912526033615022107797959658520668391637703880277112970104804883671588205825535776315128195777236633632430173809640527066765059000958536754330745339729347411859338211834141482909310280191262799929673149893537565752372872251614595552060633932817965928706597731273185467749203234329167809726666245753968842756283177219440352073038735464624922874133111110089235910373440365030047551745238130297977853472224295925268444351288542283448009537427771914570488335931422430403862095389065863315637375599689370225043251386600506701903297542252171622627754032848148581686968664521362380036364223082479181280406040699788269395290288500883973307597319024384132095587767341608398602529409685657196279282465426499550495706598914719189979898621641371402727290801783904367242699363406767807624589065352814509717765809578967790263789047763516591227110705593005793790916011139776466826637119634360266323194237577327559804725652934353401360749923375057029361672941108971451487809808839068818206835203725539179383602323868856995366298424727038313589344243299198577927587231578824725041182881896463569063178838479718203562274622380723565829286070398834554997870491045455208189357810753529164199369592498890789935336471938042201188571007440012641413207420319702063673693962293299307241348618048827258369579106228858587196993505589774785911970047347214464595216173736725647746448148966596718186055023983645552139060870735680882338331946731451654263514857436498268258808152112578694466077992534022124460894291815705078757944132738374271812594616073856195577207514583184189792736214326199453075606325934205158210561946375448473026661534855757303241880179161126496201373475361043168716442166986592413954285552180057108982543223128652942745119570523299610308208169047837850177723285570168268062925174406939706834566108338789227575680232483264812689322654827249137469013620907827857702974613032371240652388113854847577971664696347541492821128869003550653013244794242259775585826154251746203536877742461131888056196899706969003428895618927968727117804874195987074928516958497997278070702446332062974474397074983582726154093280878220712102547880125468333315329207776394549007362140651692376186528796861630078845474457402961735128545650395507745600163158475503763642377414312395727927039138401712321072072906546792650724561172565170535059940037505862876496901578544004344546529535510294444051380750424842805953754191369392864693453655358632692566437032678720711973765533262423409303397412280375722588063932446273860195229782437153866504282400484563299614090209315151609082281007481216671591425764116754529376791272769586512821752543542517200034903988480128874678123216355004066772162472973604850328897172089110741077971399617142591978388436462228232189232726900193483141924560532388795057520231004479544926329544763401905964527561258135013865552786206974368713319830359025319113823573964174231261933590354849496681431797869329624893335814610882715255373193084815132557286040660757981845434386861302171408980049827653118737780383767958916620395823353378539997501563631177346219796854189210028587530077905657652161364131907562654637173710289045944796637325092548668756820441424273899790038977116128620564389991074158788847452166927066790089454194221170155979992333074689395705348289417681955102470299624222572583812340720094981855390382577195037975182242319681221659949994230492708009328211132186494884237193174144580266203724549152824357989939968185014555507203891729442956259316183213182011410393662359095703297873957374439882126026455408452079264388874210846665621514371848484592631419105205261983315371511427327648081265280411680607446589382631062340071595393854784863141431354535941251552363894919688158049093616215216348666121247934646424188599098844299174522587422177086498469202716903185606041535184298242226038040894993984747428934220319776837295069070358674270528280134798586098159846939091859328162097185072243110720211276168828052357259610122693100372429098274798038313316149770467689317231101848870063620205165603066445324677443319198191155325478891924584411866615478098391603461781333753389050398621504378082919072638036696866987080671476015082252210435416826296183628780092012160574511006010008335022475420159255206607436995729061383341873756914323820455825183187723446502124709692825663089443796895880287825451923535787315313252941067665135017311015111827572187017133105801747858551524680670619574271484422390300878469667060566476228191754356924241418428127796016996103307668213431162294825905509017189874594916430442012427110041411581478786480028556550420325761455737006496718543534013963461766056746288295682632247299231209142216674543730465353666808266860010432331343912017095281530222327384663241356109296332620787469328604594405281042854897632665309860227492065694783595879012121294841360441857508908972718532783501146219929902406824334943347017299142499787740614726181960423367327011075199762493833932799233023814593587946161937023164244500087290839017645878746524602145182527010549538139986753241307032020871943318173480698773827737958884872940584577452592038882059041973227911421644589253078629673627375083516420559007191032105979077373754677842258972217148576965517655081939339838330514545815458124986860795841577283097515496907094753932747224836208851740788415211721812215926781971822082275315250400384213818208509952433188410430537154728090457170282789931287472894800765332303969340605449830951114405908054108379261748230486122624989491236666934681074882101575389571254227170711792682153900404067124384971422195847910939422964284962814934264648054713029350678108981665481169668695414068862711103524076765427017275829624778069272202637124650700274511949864132854686752962138526167868577529310366925360749575621427488797561528374733042059834194006280444170228181469458371147282203822257447298147733928155504286510603358739833355822390161910293327081733717774578879778875784811289699624209419926338875067220731854756187616129939353060049022112758187832419523616450450514614476775196032246859376092267989547641644640388828786465968962949820957568371264389683502080628462261454498903114298636906394826863306985809502512019461716895238052372684204304478814604471909285177803203090761123483135809160606544867709678607543557475057727230440454460004344708351591286063944736851081620302094097678853632474973812826511605582875075450931577195065938421414381865544609587610593907642499540164014129218779059278671543735423903540181169420590479111897543699000552230695967404038676959998071008790409603916674783503101510796228718745712088673074042039755258450807185751164342453312912106544871205331558906408088124947061740099981983342494131096401048307210016777089283127546343101293843320356289371073612257406173070268039917613005166803194542670894316675924065821027580131168428023573614775729496917152138582079761293495981275210845504519458395088203551245642727821143464153026742387716626472266077697390984303880760585530564120323593127281641359277759448801096476342736756023550059851719909474280859623987785765530880137804074657416498141655694999460159386051713044669940304986900420676310535596014413243545025464706999965874722041220634699490909841344256825152438953809814600043533343240850417737443273187149812740865577943081461070570393994679318974572372142914573105130674370540592675479710023181913501872597663068063377578350549212477440777584123681253585404513637020796443747357537843056545834577527176553639750866960324276644614739648205059270708238116149430430843225327678769176264248456375773931816593489772239090202433282427021067390479478316459230162817171049331135421579504540408177624469550049644617690338455245035040341800503652859720475039039448812274569836385656557504605018088517716728823167786234002455601158478577057690519634962517748394775983165879902121945609836935161421916248017801233543938120260769515181765139192354312547646904204000151478550875052113369349602556667825625900827378635511956701907039754162375045894884925494462079945313211882328990874283716614358814790184429968508993012854608970907411564767932000538023759864427866454912945923833289410659886391069530948252399526526663390733300434243730710191559743052201738077129998873807179355539521475014110298746681089279980971013533649030941103120412448343724909375436562208470454669834638429230657935940006497049479850761939887272347583614315592431764890958798209359644758559271928949039921575003508665685718872389775008516587724131520316252157740322736549773198431258749428201837815566000752975502273372975353124689286461807985584845992993162190572800747819664575884506182258541216308394441083131030328275156419665410535147355250422955148617667832408764691041601303683345233422554976175848170052544907036099359125955922010222571079638534610574538889638667007135256819793289269980471657137946927574147450460257512092217464751025459717729622604987807663036826394539525013161163261646678811171235722531125218827718034693309955155135600380507868678811271981033838189514568612323749366048788596331268998273404926905791385183399866350635216546781996343707596171332045360151387411443837129566258578078176267464468057601593254342849680979930355131992819232817482991726762093575888348289325653140621700079752781772033821274756517558894430675313597144422463324720668101343467432981709447097606196931320051919083397408924361984371059742304915403784421636806101164696871911259647816116476654577059427813284099274507928617077505367306503669237692674375210368415883901501062346096990219510693577481543177356228502327819889889879568759894817681216735916744245150570156270245800211976530301729853139915424812193184908672468959759130672189825681625905465862400974019072797116872177976855049672060415113865387643704202119459991782136236258180393086557278231656379523275816613516609750278269073803032631666658139449461023934801448594528192236505661569552449582282266293102941242548614887384127590416283157092001483155297902291438558228423378168689077429499984768038075634623733039983595317473564172392827695077272298698435004561993823691127143279837737273544646362881088870489337230650333582643353534695553816994825659055769748691454200323285649454590084402230304975346389261608457895258073444626073197448594990789343709061696759860281240532456788780016378248251768542743879686371996446705834767826593505019642710442347493485983711823765158883660639074873763799835236238461650759712228203580656151166978805993355307016879657830233041370558256305488416629213277478144974936746187034525733247967207220644201345712447260595283952749873319022992167281786498445379342332908440432409602544205811916461321852894847424185833550907855468276717944193822697768266001024585237552219217950081637964264092283559362998537651581949647147427719699487472558854163962539785912935488124307334525929269475327198626848362953089404205971313637284942250001288286540199546963244839288936522129839918366744078266417643298476660581304086633432011343044147396800497829250204031800915828554066846152569137742617283785660505410965421762649039875509725187560545543570105514264107181906783466747100747354508991178182024120006949805664639450037970444908513773281608815930402011298264767590104731192282137080316237785073766055543802888987766550536193291132855527566608985386190813808080939374891322435512877386734463320574909683998670682350546928136009428014025329655225281485638610237205791396480182702203186166532807062889192616134904686132767551690378223695751075207921834596292337021871607025536710939155309230876804952017832483692407080831333144061861935361931122392176852166112352408524943241319617713287866337731962751792484349145802940790537696316031211349969646095124715355311738326741429232211496100994218403850693437969299523166634242869846758173099109170444715478582163894631329952981466493145980770369541767461048374394058797229564540983998004501381001543695136962933578480914954067243742954336657024877671167093725783464698563774019080944494745569347330098579340303099429161396439529301624932629966196626357021781657103736112234725272968519873098065142441662972828392899293400973605338193947759905066297269519642588960757335493695830398890809721650052523708259484837409131516564740341277301643268472992195723028839141495816005669599604770986387394500870509965996433806981542612096799723034406691846423257719345550418329188651053196515011733525053069387282812065919553153739765122173704515475883400164115273789028756496694116011772363244102269147946361628734606210174489984619089034609184995155243696064988942181930352275328318637429333946220914433872596999259487702829569238379053619485554038627486842393276707359720559354937991406668123521517838228785767639423760097358973188457496970596908357508227820794273031238016310025605439043729963370439971408793710868408674425692728844818794617655605844094434027564925140800295953038309530854124830885566421957401087843728788032294886119837235409557088177897720395144797199006599395824046225270264971456554594914569916282620206396103271033365995921810814851148277103819611499014223670101501565588407133757527060054593144990669012630804977212502892086326988460585869220582318455423119244111190214494472043137201597765111802633313480234097395147159474448229816105869231269692390878840988116295022090206944650023035844879787509133494780789132778974719394694188056802299559275315335123572665133715433678878033590873106259927790293737163308749154624424825663584263402157417075124924431356909414418232538687898729341991183527078905714400574967602006495439331753071336826755367970688595505789289221383851347417765453848851726648892720240982197384363926848985684329568882104005770065806502806676428401303539849780458048294513046591617178487576473608765763840328710461066075064075750553117194053118640363464580966655057944125144740257064278439635524428072212139613682930331233430714483503992117956490682317897946130971812571775414113886865887377690171767194264297047164707324449780829102400640164545103222979562030644892586205560961139416809477198792687915964827946114266251111071993889146208540080932726174302230798517643122390461908707106108638924860417839580253400336714634784225471096284666087487263500579301438528434080636655995623164956428853668396278811961146648983508974500298486677081196608579292289820338144034487867996645363581195751078361003286133073533353623795475007587538865980210550647672089015081447748086877678510802085799115727006856424683817593513975451033051129351552884479542422389941958488457007962037079352768618490627523213786978471540543400394661504174694907753047186647087006930318206002772876790242598728532438610286083586519778880594115090211993631866300125313547711270058027655588320638306656268388098333486488079754849031807350800860399983578185419714351043565217266521604282791658257680711843967357363235469621576137368985012664292071320061550101148108836134572543272276450801662437472764594913130508007167772819547291908956993707989103961454457687968620813776045238710875691444317665639789567731320552940177089439387892542763270983859058690192665546631744740410143409986881123953740470489850881412611034779445453317975809744342348916476651106872728275277878473865814461623627961321854238086746797038524916640275953513865342241200029073637510015099745873036506404479845809022286456370299558677741020476507159843036264069851139322541635595692456777944172388276550689628422277108003034390544599088408740437302648041105610361380787900280444043173722682413158508512586287931420584443839879098349977947146138077042539224296474818447080395816003721351509035042353891725598636690122529918997281586543998291037960461293716247513663644382791612057953560247566121867207435809643527840373611431065771301502677987149709625431952270238440005327711236979222656441726046583530557873404173535593643631889901439082457665959583077145652414581358366488199475497241130269345580903868828487348803525508419313600373962520045410489469806643108049396800333953662685759862934607660089573457464296913865160571795675635422545539847736055059928197314189622742934482891917941231205234319017151312024611379915644385584012264164973535912322860561215229183915153011837529809386120225032854008307359030417631353077636997962248530133425547629954760185897019254880244889005465369075671475665650487432934076957025429529908780252808280318400932149034014629995545099269558568694474280924488158423423073891185305262664857407508726475101912221808597276595537484765025168669993849312917512913667639071607770819332418329409298658252433234788120532125269563327708998977009503394484999958826631841653060079669899528820059292900188086836098140585681928169985001133231015048740314960032372925752856876716652180001455435961186596798975840837803180931268833968910014048299269410011992959691207086315522511428186176495279609474603049261960063325305414555465602075219399344300289011858076431534158650712389901824134336733993244506700814208822953867196981592478097269513292690416247207793781449694251042538502849216311636878999234769294763095934484107381395102209901532083448281614505341052555759079081065508003304542816683582398693665243948988742089946467541826524005717614527482664659013919768654290006538687205037832066607081728755647803232051988662839699442831392502753403747570656155633316430923294617681543389421729892920805147353802465116411120821124401475168896724461781581055936967583326853784368093242522166636349115021653876246023108310208339766145134461454227779550783226831641622341898248967375563733143524127530199486962397256598401601226737915918071659640883228176445790569040829300599715708088907283395351263759316999520289211348521425356012753586052327172776085616754706161670910300853864034645062193729681415831583847034570338116572860922811382069574355533222210902160490597542612082436276423645612775678934938003180370553718942008320759603335707407519186161618006718354539382133745319828899518866871152431017543140607873997465861307071232721054630747653357953567779782108059454982570259901665664374317625584126938763184309242904930044897524142022745793156303864374790500305257942311504667352033722402223973657277013324976332432643648498315859405779768854711534813537716625383101402986485497975619704081432464340341729468179075452373964714227402287004883352625482473935129595558990362855723147424167432102909550188375682286395760119448570216437355432412936400401296217217809779097383144674447611502582767797528405013141601005595191068210392027531017583133918007193866157892649012438133710254491913019764296735644967757834339179313300503070977438470424972651586184605351531752187779859363901873195228118127762342464735648328525375462311553110916974656173589730658721642053744990800274503764827513753329549727916023652782967866024832956193227249521123463080353009504493508629702259521960511311276156854846997335513472456193996674619083889504895416949155473880457040675975153394790325782012769181581693799361564903526417066288987859273680695456571520715337522302908592453429415725677321306930954123852093791154738366971123897619190787338493807225728592389537052735996849260596668941825710044076115101788853955201829583606618935521650509661215810789075037457931232086901771702143667880527222199705689393970924352044801366759240069133677208235721790808491902165729139855827795256672100977940270273940261778264454365356369592932598087906090319977876679552423605405360563274329122944009788360134870701711844243620716259046747023603179987526526735608638213348868598242448139430634464532100004033275116919462352557871728828820695600554388757401633010091662214665917266598301434319121204547525034112379651244939033925109077083879195013053919493405533899493078774497999100225865901867331212613773791902708609296638176702726255361574334241531944384893952117277337912400440856041869409090195266957737159280232349226818076442492569516031248260654034917220055547704809275537198323034348252008758423960129073424582429003715707650114282924158022208812078276573235923827746308648659853872312809410254420738467878245453420464670399358995897058053309277229051650105457164518428014222519716340945871373871116268662201650878252424123293519636980538624346652894886481865698540897028481333169071671501082383301049093990854724344304258418004243829984300010516626449927213950143051504704277394321219122713191288396011445486165930160428595678811419733453467067018080305559267009676939955030081253040056522413393532046647914580585692061887578861985189856611552677262300739480781357821398522824991372269977452696058222795840107500609255032483740349818618632567698971848758876887560902489539334069800138410404737606119511372343130680404569810354172313908860805050924849422079572746790290523589728170822058116367837183665280130122329514631519129085140071450411763163920445681050907026468030821274976502716625418623619809507557169803277218012078547632494734863217749479470928577612726701227647530049744711432294040037834060343875158868745391238181359008105758301949373852403490750930327003501923514166624257477983735560711699948797382915728517450450112786766699820450854656310807794836212257715840133514499458278115969996462821496704280000638355561100712942745936387243921401296707161784010099572515963699899181012118222824051613926938685276497680117690558925339861517584514366803351583616206830015404686425714295905010214836345237314244271563962222339560988720937106213855527140435860520360080545750797410065180342311610702662244264408369130769605217188185933668532367571494434108192842280277311523191972678703489159096498925505879707343110381565232539402329947715226249775409530346243558947727299926646769290594567425445231267710230421144213267856099559368322587489146363763732723608120551396046776050594504979677016431938559524026380879580622084744497051628805108773190313164295152208847260911349653663174626724644091806755148165645467817033265495547344152846033288035442310685835111784715594577451957365092118676015119917512276535517866392570124210961036641423567572306941911460462065399913429859698939055340806232465140056707361001608494433092914379801618119402225013685093929179255244804606688685147739443117342359361877172208381491189363950688981831893343538476813497215357973929420273065062654885868674203681746399143976592802710646873604427031873058647069394010347240668198760721022319069527953795152411982313418346301227508455171624789606963255371944186684976373440201671325972860396812995883888187742334134183713633590047219032800400138991806224549192454779958904834116223189817057828071267041157424524436203929816926418850941451351577857285255326227851470939622880882784946433106939560651591740902323350259999456718201098452791808943516748255658060306638356908833479411257425337382785322813573206167101369523953592688018042229041675675713844523197345256432735459766996323912751795463494464524307590977615571632857368922043423032561829623094903404841655130368507841604737165847741686735703416313803377023577809859717104895917518200910364889255398055909313962844750540646963700803610973290343065405345224903431817181821605749667928936802780706366800744051591498517386480671783564370143482739272026341148781442306924426358173366728526359559607987111642788809757433172122519357215601114941637789531259296485632798104446208136165818183055117416328558578499295764093764869035372808865716947013756048038087436684203219545930836033292313750598647496777441112372835744986051684464558835589291860370335739898768476860293851753535439424421332144666929279314441478527149176612195868807785624312422552959231108772205139555997978771888278648033064735382990664525924300487034084738304880823214899574225456368535726336185209622803364757555205858932817327488077553753908938747562450463921768640536914019236638559803478802930600421188685679430241999513413755206461934798570467591298430619282421237880867149063694120210507235315079010278799462742836207391871515583474056678648653823096733826610141491270533404085665978559267140453384436910749475174603587809741922067087699428086895060761609306828832090933035818379432732306028314934673792453157563205486380055393474551103017073242528101684701908972401760291995026317580822464328868996669203839491562016128127562531539050417895664646454939109384319357957286313050127929338385590257639217598087858218532815803363147674013921323110190854668378559647760957297615869192522450469699234555695558294488163698387368231414711504858921804305239589527148171285136667704720696050962890485588724973719714367979533710529569666089363352944523076808293467657105615912576766294425283722828322667724860215639121228475851538472875761241601551528968867270011027203851785035696773459021337604552505545974332597195992741768032269443531349246057977426302860312768541799515893851697866055292758381342745174457566520329395524941271548963442931795199533531671865183721388208191280542031592554103053738997493302918969526946033025112812453562870105105382498481345080011580689606459143443273621291229223103868800821080507316556181723064358294430325970001453476593410263285780693450948313711332482540889816099203293948854934789323576599998219013569850503235429414663171225102854822233813881738723689397963569609763923095764451353226795154465136369254940598668825331379279920387233817538920732556774297408671249114286913258633689653364875253950527302904129773347612482003602513029887283291130250315817474631871073644902078769374429859084001291826418973597885782228485519787240453505651647225704382780322978603475134893092721113584168463457297025770156256149084637823362717160127092925346613488140230037131974980723657198099037638050692789256719331363479117233450717377910464505327483711296060630809782285813241885266843684826273150661139020379855354254288538584564645364349126642906347678828121920288433288819045826342018207221878152496210295804477116734288090562985050643048454732812469524586305790609580713982167020970911944873340326555767972875390076523608487688179524692675581148932844420552847158398573254795742742213316457621368247788052637792154283402593934712343008160811333089555176166297133514718383279443433834248734823260120989753817247134868401384235855009413202306951938636787650805628868205646668832274533991693026255996723019919188133286485288242048459666851517275868584511371620709620155998509593369716840084503075960012347278197786678609676165481499375218441493899564702199509063830751066798303856878736436405339847106736841078839695298299888268341079099668449067231138160191783013318341218514501386323357215693868321048083005964728078750361573289974821554812610822023981859755755374359476544577117360958307122223319058683386997590111800050454479676028389196318522143018100690121090557451648032789794736457416440085553118833861640686143980368464419035908128441051044299719760737694825202286329485387684652865463770941914549828821187718090099873944422875293615172495279941283778271022029632022461780379664995064587876346507909461748778393398068171481959465903815194970881405986541243182549953150101950316703545955973475512009864931662218254659487209633823986778456035134072077325575666973972627272296489924356645673606101137873274601714217961342082729692147737889865834368904415979800586245155422697831396459235498007253493437383428140968245872860643689382433961337147282591642733368049302436698063462030014078704536054111759869658674442542330877094414926413767048238888465687394647733315898471069399613412199643845746024182333270058427603751439578453706824060980914050647736979832673920642493280479102025764225275204335249475027496148237348248225563195975312200039553133474890755956211946950631540979697012693934128114278818429410390175405861971981249502433089087232580216876083241110419490489351019266696426462700172055345288462633424653723405406528881962598411536334956391355055993873415512361948179795852767232591245996674661174086426514552325219929383775190082797996593218600187131916217211697966146136605639867025999823481644196157412001358292004496933967324797600200388815424816134164852631566224770464209482743835108857661244746633206429481176749806501162144004334594386671562611699180857990108498390830667651334958324672176335185130318827454681676036997632694260136011149295620173074742220262359977421540580485846936063240980347140917088255945966982706497115430673685916961440435591762152285767034416137725450023381161314258136358970382642995415541558490594657247530104483534960755979001667630175331546745611240755705560671781222596131867255433694657765557046763937617451593542597234891578252909018796888327852857688347981989832033245440242770496869276932865587133798010193225805581935605573178177289686064692320553256567542287760989927396323518516054256596846894179643386331683760233868564870909388690057857569415235313860148117915292411548500450292654685213669018392104718711441815319679986780021020032382486371339544154765034406840480458676555015074553280211651561209526387899098453670404618003449021624698216206010781829531264903472368534653951401212209306927253946359700509426904393745001570077359608164106017850543820775429774339313208940039212656891960956703173784998960439751693825163389472957104308268448612913445206395210254157756049891371002462308303992202426473519459374442887014797203092636870144430175883697019611679013582331186620849920457614474463853834949489075744973113550350267026856961241426234749613656716534595555046373467022259845786613004393828553546631230230237437629954652327414943194461100460864017387667083933421444614019969764168005543154298646700804363417043029636904981762351451215853833830826115446651672277025018685911113084451011918076604024446578809224120645256462710859810539919815534467975854650937461336340090361124595653757022751390309808061039302133028589007420467059489115576948205241887637976713225928860107688350701929079016275121153679171984918838826387637242230646142072407549712745241479142322087848523954748165786615814226318844853171003888857990034654331942229361405516890860370807873844427970360286686833877752892313288749521403499480956595223822788940417258011777849486760088299573027362858012551764680285863529583874200543670267619047842285150090786338356336555691157675749263630176046046039380867220149529183523023476220204545263247350984584202726505825796468859382786331456138259906029868041334069478163120655739891097186818082985818915905930215285599905816623929259844210295285005456285010204803792334936549465313426712618239612562730910921507338632342056307568551234858318124291973081462073184740919308476251173840333425446485616808603191200125797279069284819677907523306966079485223010672520157618800272205513023645358470031207520907164652909452042107897101747815639801812260000954754140633765838318196098939495561543678923707307398450708998687732738763212725319784693515376737404640278143354798559742873932279202689176889269849274137557289411330726074195847046710227860838244815528205015784011825013450332872383376482797552702004785992448633542469774257584198075574800087845620999894307588499954819917406091489771884037839292946431446763323694785514651905738844622983551158678871806227267914328873166571142416537115214787448191237461167049771195326253807477573658310952031934404819206117605716287153068033363890202784892729787147724672275804710315934322070814586344244001910356083174167693757347057390917752349607070329350604687054108787540786974425383678878382757704594131572689457138848302751461507329829934650957876079570948937631439043584801570129689591856160254362777003772323681046037423368537178426805386600730567463171534798941591950870174457116066559265801380899352335468131177731050737921134190520080716841082489519840795514710883236727070392346677794712924941375212037082292763242372154847225818712755528171872227850247824568414017436824604374561497542948842586276527111614726228943964499740939845916523881344840302551765877289837631594120234570039017206393065272963459403834545481880699759439551737077695719605973083978085736881292154370062697974121386040295935130833290212901816326448092359422908496477156424472952524644973219569215438245622545608976824556033460694013636668497022297233607609957249852801826112461281895064313871139139005389971163117205140938325593474306168238542007140338868341817041202341814916490223078036969023427788604102450839134558610495770866924599115822678834389148812997757150706210248671575166535853262087412254483618282640637010954668217077196057540085474903754769103632872627767036352365338706072601998551920074227639333116271828499170462558196332468576849027818469184006254834492002022452719017427378406903045466657996165441552657999027514819603651824268698772804199519820959459356351587582375766261422412548906914399985996389639650227718677537654274362858528984990391082430588483971453130383401210420452080250028012011260922184019824910257090863860724503806799731052298165524238892724992368746345233340019073039178728151077062656008293231248479195952993168721594872181798492229903791880942321320562522338652933422372500907664899149393311708207023336065783982648934477401123504970994106709944922167229027100068983316416578135126343713217587505774375115311176672617055242386110429138804753563782990514613723142131176335087071618419542801124960703016714354007685040958611707208864910330435490614689362663716772063573687779481972083379308466855465321689267668203266590925887540093030342375014919311908945565774159245147226691665628442316369749897305863040069775421249155754679483030644785716013316594083930509277065300500133018764883529929125219234393974721135407602459856401198434689044558921081139495748676445294503893991785597948231544264871100256768322351747577808026530194910301775225335968180933890245224982851704197737808651561224643361625717968746680124083074196207189161949696169820571591910293260255107322155849245151983114141392589432162922726054612693934825375671758975214387210369520783621225795595920335437139529001418536428750451970669581468115481750494381196663777372135337875199792468126993179785324711963666846948275929702008839542360486302041727634281400083515277343285402044961263342315092126237497810642621027877383550055283064129658973988103772992726358634791097370928946041213262881142166217325640725533538715696950356839458446709920131240625240199296081454273717053999221769141901911946177877946498210702525863001438449529465191219004672805827790364575932296254724280252567675816784059087376816499481068720363755645414818729893775885726823148799095617922254327718066792147351993749046555277963215132819342640842763317584631192836006064345365321843800465614503328295006128410652097620775903185728139179695072166125522313710540355490431377147033127881432569704175308721426315902573612015472166784502023726541936898975683954126194690723688506187521247712641128842750899048495886682419617958491205272014425279279059197328601211856635163539951887618989773230430379472094173851799922340372318160779048231190896195545919023663754637157183184081904879842868139035741852097672809460635235519965186978662503689256446030295810878584088269942477228110135975948457570696470757944130328613858576789864652992067112756729695870667664232834088375662136212269042894603307578559351509771315904832935866623915397370352716680126507174099769344006366775953873528081238777825068922888942101556436846525471947385481164124525304828337792850225610301856584989407092376227627599878975948918223978371076533443558774598792337994623780745083588466932564974608539903144709198403482358166249125253931271683726735234799332639791268723103933446124568840029544205734167752786710471707824731343629211813187466392383289389669107743451352020157534732233589835434377852433808148591621393578836416965989813976208336809529276843753773130609351174298070192706805516627784691032291388977262101512841974354162097436086744058107266807601428322171920997142894454759782284594855298016752275206950613954392338362605997765676514352805757439092427422701739504181098650531031478906499884257110959927478373787177357588682714296892071313662790842757656917674837973003883103467914496590676838863789439966172968279418266905689805604954372702313900834834098527755506090429773055970108297831513929413796271868798508722978955996242183800247311183501338212072034291467975628286365165565514623821097610293761817815747273977527226067799085551673479797585587247870514383189982497701679966849750595752193068514767268528507974630611844082814871765960941725630305054699876143014068514668521636243818358677009018037265333921434028371255646054086158210166824366054805881955872711495857172402827042606664699039918752079737829473791800013894351470470815149067408314890502041412815706139738515007481409388015973355658889278033853149906316558742207292987482918682173812232870330421151766153498137515303331270748272383338126332314785169551568764451631160522806617757792147265617306629654741907585596639472364450314591933169018714730296791465994712538177887347867198121154008471526394813875062437184800575905192514574815134696152941286423698918210963186072437051562285558150289549903711092628216933994067513326148854879897015653343858650484353867400802699459210381861362742085300996938818406873995766489628779976991139801823529267705895915334815839250911657625680094848465312036717806676303707852174167031392693078923484433447494899414715751630983092253254364160921464238883988160473804594735955827685423211282248832352932379945997361700127708332924505377301211925722293115946510926199522055256508993782663698840309816127673526304167905392191563701759217561104707844498734930421045603389325365106778652315053436033017729338825291932269330784668938723661349693665791849680692229103707258098034481903900978830843144898531618410774106396380110527736564802049296802926599165908337308932366201897214647848608108920365672155305100048707367941992891291561322672665431230777364687646196269300163956040552075461052586811880975382370572588394633638677812941737563957306641443722879068195653490804384437872463786894311003075603278188455141473588063232327688505363000702333869346181504882840541604436028420383343337586527211702569348614517384733616378896026848679852595015178830274031219415996491469768188436993243131593773561660107395896231386185710162845169438243524613804268392173172579786275392292665296145365402124374429738137400096379209591587360364406388202616449500825559401756072580500024392594832153390350321304938906429948095229443460106193112627437639396712100562892737782530872611289511210978536391169604151917212729828666216010785735838945742194162717791748182585269269132828779768186004993700410166627989551552343379712606618912424124135366196569417025412141935013460374210893763211026873153209287462175638491281750785515515300419771281688955126001935663307893715008526535551547812866924562567343677336153383439326952710545145724225723193366219065699466400546621682658399327388937780516816623860957770469436337403661976337801413748011539650796391575302588955340128270504288634753738661018189661640544130670964480744380310381107172449645322585680782927052030866501533282069699543315118681899332920187700653414906047602614817441032891051817839617408247438991132819346446890585809751714075158168192590538422145170189951722946234564831162472648511322964001281942709598030363396350556736964901829511523401936022601967454905918789772383723409204844460545283306335221842766957423512206837894490979335625686245476014774174311170114310424435749573380717195527330291585647803138826046339037135563631646122593292104952782098035717103104598917330664064472131956140222633735293962870875214739722168290535596587343755772961257649395543204677845048175186563213227006042533419266038354148851483940921370105973402069927410132503144026141993349381107305150546491038498418363818736454513655728031541522400310647285203209990568767831567565297800702711902446975966715628886285020774435756665482465220323515245925245708981916232387135533927905489757536547999062449089968158968184796167188002827580122357492199923919288630255402962135406214463996711790580689448173777585953208126557975808628991574020696406306216634543929309044635940714196458708705658281597311481554967638853956762624051358816889245839773362285507820412108344710111306015686831126525820879375010123101315917295390273073347360911630229350742665851583769309897092977319721872084174033254751284507064635581928908080281435166176569934933943333270478599459898353782776200506483784361301608829588032027233000640359083749976151722430508168692076026676230363289977994753851677714222499522037220159835971013844598178844919597813483003520123756949776760451784966442718889903073831814543945052850227628591367994026509456362036918615154049284276832446003057203439679554491725035923767552505201520987518954744567960841280726342961000359461072260951976743632726553112481829014975604576304552010433537223248490815056337667504418406775171810857665206469091203371810124889523417080298198248892179888664009071921386928111438496447070705258382513428686968797432779422093010259118271815322904238361378998082690810631052300125726363521143461382856905392167036051339627245575818743701440121765219849093267793229191894767542625165195807369987608862091130475712797165936870885675019335517233371392354119534877127241283969659006035842694960017208657452424186987126928161730273356417243471284438473366364790225921737514598640503314381013382553153977920189990458474001538222984403737768394125370174394779173897692842760751999619226299003527431261687289611404818711753846012362848676878352904477919535048599335898850836280568672016499602675606270679221939260658131512561010317431704217022296833364338016006565750052742347694334180978197254852138980407853161769933800739129503724935118057249919211823009082201685002176511525595979159379023560762519676290670399666196321964147667709829617994677749862988359577303406822777058322383889082712333574114302983839401961892574441108612584287033421302985059629440493725915513182707783940958171094958579036669902263080885346761122834416892002457410129265406462126598868356855782486356322369168164045276130811962262992228661070597207846875175905782056642406220067908298297614780687401902440508412185712629491558000262855454458983103059645130283980429921766507739392146606655312633536154007015288466669502026536120931636528756499294648332262450132907566374740163359097780644727121146729717422789045951840919718771917924175910495210713493809203866091092237227715262666150492059387280751981913538520019480470732662864163845399553540056466494262661589657078912199321928821966270608434314980753262265938691047290513791400104403769203891808431140967156440791210151813458640011285047173983373462077731729919367729315614484639279268841631394308971785497353770125342656207268592241284055259373602818533785916666746731751207551113409659631288167544717935187835495248983873269231014581257393490099608152512318165349940924474522851913491292774081397577669328067956901264447192818516492618557245518001093098058398197634713737461531916830169025917884626614277268956284762656604703137370363945493571760757092642982363865784981188768795601337441847502082798592121134515622710116092002013664137103184750620407397908269815394328413868276748421066575089926759288548569698403756820127510995140232148536435355025399981358595689626641804319243686564209222726815689890871525587366902283824872303047048306581685328058232908590284289540661284708052632330521739557737622476217485095029255600168467757488510620825077837008658076203689647603053110956046366568400846283397716048340741145063434774514656654813087779340511031336992334023613366120654376581002061396453632045130254549914633361847079040934873263893223832153974581779963117898397004752432310164810473579980549485103081162647097985916987582761926712790216252279757781274368956985801398848101863222907688298903916155329322043345350303345081341679596587065006128798507251583274441479321414590732517471315792858940632417713406934855394385123859620466537403249159629356915170833037937153132737038205535328458401741413739424332694300502605669302464820992472242480368814932944822328762210854294958044603055932994553195550260334919865038164607651195318953570171760091509759532815746104547773696203193278276315206263147789717993120096358090979235855781937190915656386615003612380812490214704116301761486093067904856860967823671985276011658939151792440301092421473069474995385473233614102162099526385193104482527841033313949890473931991078703828842259302931031759289184664226703790022457082029592161902783183098861003630731794510876219711450609702916866451276791577567179721456815401745378693606760440942021092732284902088782150323889575651230657568712173289037251844524296561647070240121280471329295765380700514384083564970246408095117857367294677257164856233001119131222159957528065057739766649570306470290032495726595737483765115587469147636431055470277003558257373065045486070129155171470827216309436069665003234017945001754507396534433093781637721128570192061349548521226615757876776544096266480460301218101379357139795497150562742280370378511903074108741577190329995103932808376576561382312803642488390751890027384832000541826256070825411625090935609547579599478128728227220444420977218417718395593581994089450953701671593680956824436309769769187506176836856434288865429226307951389260727041516181497567878247417560448149048165585790907527724453886362601923697630508549435141210764764491281299722560862899159508575220664801343922095021557124846126723056953127572536893275857501418944661278490291373498461073110142916480529691730521362701220480811721552227005183018755948209245128683385722372817103952413246983577228173647406598834869274216527880621666580064434411822453799512604994004905817145340640231158672560533405612544733993173894770711093210804686888116446027392412838088253465035340266444049150545147323721626398205140050263101075303452714477435040004353047060350990806562610516318494104143569675868405185683894287361571476640473840075146964782900068393893342371292033948704820145241762010434210227580814670084511226593758713583258175808119703984168074127561389866400265050323026396839328720806856769968693041492623592249606299116075728037418628857338331620148354795555847157000238434503541964026726954113871460719830409910523795722188822257533092969583877812133360323226172567900489085783730701120695206199042518440335607247762417237007704856838375007961815990739645529921857828535395949813923222403101397566120569462216874654744714600474639737658767944145946649392560610788464105983442292161972819448316872290487910397993423862465269079059859614424262586086945146695053975451560284001495726406151354873005370257046070730699404231128555983889497574525230846005282878296912593245055658606279792575145837786136853642138261391876513669167886025356947349236608221886023839985887366305272434974939190876808671603566658360740876244266147211723395842113127737920975941116450644763080165504570100214906046515279543057096753364662734866899200167870717167091620550253915997402200105708230267216352193175834485305970350050471273221754904384976585420377979661644716511098581087817893017916477366025561515773676949418458477517755021871401556111136115862603951868323520701658589539695106040175956869345468094477595315711102191814680647470332041779183369264252898645255697834262415023618765466755096460503468683824970540026767532022697143640906970584466429493456047221553562968923810876382739967092746240068871063046187684091377738262983113432493864821570094018953042966563094456051167346857519143382477959281528574010710912419733159572445109977417730130430016545957942778001195028937218564196078757302262785235164994285487491447181023419413270764735490885080724295397863282945014501128472105653113037603758881975942438127750562251247478404594613628261468004397982242726828664868342233616808589442939212505678776438256537192890713750425393960929093670177238033548235329899699822442774169202729126087674776235380658940017015253197574628701216697397142108015282644924959550440135583538527975979034879788741787419812075838831203802615303581114733487523625414925730822650958519368033582170360446870941512066798147641665662845116240222799719690264736471812618546590998047844102352176721162967379716764256925114839718654635158417026730223353239765658598026349526347947927370387431378831261708846326795745101458053846663220853305517692133508214398813711322248324481026806845743469239517841125375099623819273601481687742720266723588909374015079229380586094771959041132544937359242975108195909996762796340928452805849745884367529663553886385237661910067234972480857912678102858222171238217742307162399063763075185953057568939161582882345591998001713609544156874608168043353734315354602854264585936262040539093988436500365375201126205784039068832252421869142790124360761535799298468408586646294238642893195678236265818302577048519047846267764158447566264364787967782534916712950061718013060495450786655223514121527960123905048754860085549013636524287136935986833007896347174400816749242688519805123135860365472475803520089026321879642344767464282919759626237340256818460532684217752134205071612830286762334047391994206769388315435028783772212326803569890823154717511147571758693525839061486900696029590788866107404657528447061688163085121540798869914308398144940976907345542874730619429950210331926028618885961879872939590460418206697466394751824380056371729875068968013376956641749283483743231183161212437172264298852737240763462971637913848697534214054119225373450964465225884497664062541341863553398502881813478585726182161000446239523236819627881630900448083148282414530176987361841549472237023433235400812839286521327322654744306940627170919780270337037369510662409570972963002257214045361175443512360377272900600735968582536267777535057122427244025844219860369890461769029088335206975686546172172328821197391222171620937720887410971705161798236646117957588723404773261269887882032151926399670247704893965915843001055685844221008757512407339273827815395646919395570191638639678050224651498369592055747366866316834778035467945514618336163140973050086866414653711776136485524285586235286565948801709384343493909615972550253426250752645233227817773795572650179856586896844370622437683920613648874813471333943098876055810861689094585934638198217744476829773827086097524547104483946853439000441470943311070578156633553964826589187327659377773464168269432345253397012895471896252489249528043601673502142758638221342931082163782388090820579081766217090643683949938010616594414787808663189001065352759065496105700997229128084027151135094132087707605314514467414266435252193241497337823855857800953122726426174612350664567137865386359354372521296136760633123792789739814609331761848111963391263085461843078834017384244490695428251796329849428830022405972618545526172412665284223614077920414395454155756594699353569075383983621632018948041006229108987660863180070815060171986460361493553576604270064545416328622700218236794638578544700451159263895129571892183447572996403700403164113443980984180771860372685117506230901728660464652894492448611075847277871625143774000954883482540358498011822595860812545091132779900394129093971041809449167849068104015629262017700176803134919784596881491611858588950742709994529736560579135944210364080974797065281219965587966434009392248959364300627547030958284027663609338926098487385623324314504012863756460976966951558130546109212032704564472023805000148350987237017969248429815894553167425500315937004480362118813248172348972180475982367526120487538318195395918213924807518204978591725307416839493809912386922011345829350317757326807610054812062999986225573237002473887406670900588939864209452119977688909926936559531165430148871737505535660872918910535403957065158581499841273984513998009312724468039989984982068987547951790234800513661121201819034309769483088827737120148527325852406540139245640079136810749421948043721835201819783247308880166127695913125157949155795587876956046058519856463227972913392720525418529671895886349049002074119003044330201287776058327913074427167824056101070116398635269493416100654567515828505761201483191855241371451101780154354228521488128884634016406763021319642095425075383864805333724527244099445646583517960048805544781632265620095248637304849281410563858239423058343484479601672928581413025126070631225807690239484743908810487603644211064945242729568558618104394348346452334683717870394347639549942868316873238140598305318067316252947329714844646212895916616455983890367361644975322503524835907554484027725977971631806925459324072490431839846492576037677254269656570098017377031987078441280967287219272231816464851679667270951044883396452504378003877809101474678903756718473144770810811765368359732270133339979063291135643136982938652375620315583435417693293304471935470288176181470216585434780885009599078100097098160213557437253442214785739385397303504201315192709981910406196444483384334912237543689727872404549960086807338939695947016117252144796289106916997442402669589180602031621684185259475785336689393594568515321104504744591862268038849143748590102185268282926056268370908628507907658140489542432355601274062023854613489703630603764080250350963955717870889905530133004257270010910371363259316568163824515507085226955314530742575712022321012369452004770987523356578485067516602960730063157172862102322374662564007451193627357057059324664388503182848231654368536061745746651044247559540772410027826915839216252163613790712442750105911994242145426154803785367831492677655835761169220251462622447532185662280381766593751105121275258581329794588554703150358726811413953759941928790504390150061307160478996708957284614812363094730779284667154933336128351109708123371285353577664538246203642279747879435409406844746810085099895157451273475634777717244446273069051867060924635188131309399884373410903290857747534394934350946141928796509819487677891873158428782557208610742807695899794610957836558448119517255290898611065565855809770059661618681934986505617079192811055718565220026734818101106753594918204988295062060759534450518178427195481777092708014931054956271083860097923206495365486827882399944546401656208853030112668336630084771819974760309062278154329015149191512457477408841166923288525993148423903846018421625382243987030217203965465167951323291375944185209880514455461843206773708436523272441253186747128183999221935625807348971632574677772717932217140733259381434853719737526111866169010776286598680375100804499984625294961386008537446145124747960207764671825466836019553989403400711203431453339976446825752183221139802934593085400150511902314752947287187509117463245592707258360602446958683488734086039897814721147367623832700453175609203879688220817523018060605714008459721582957000985477028540882220067622856938486582148457249179809025422015374160984090008946309039605318522190915264416448477380405762497070814679380587274711970780784963418204112321814684827717156112268035201820372841812844270484260367509696765222255804392400382178005331657661537951303783258579864890972450832228174991487791786018173080851162158728862946769744546186585837811965476822291943342267000846381774175217258387977626873725971738141729986302182047540807330673673794963817349035699045895946659158980670216529225174748958192084108524875722602844152188611450935020821712521809013486833768280697134096670571241683657461589740777066114150844990325577722659276509779086139706652390751082321817719413728285971507330425801977994378493092754782862851734955152242333370107811694099512637599411188350710296566595585146411425138957039407975231369576538186797147615194088273695001916685309684292389656652366595500431086552454201333661875331782532214874818061199095994793870318715240857237622746272996069372812736924400848711355514983300984575617246619071806736033138117350968738287815230502426502964654531738482121607342017868700306700824738135700773052231172281500221531175643733488667090642776551850128166922200113114418487656644783433438675912776807051823649401054486527086600876760145561282497854264744832787412056044506325112363480354415903413894048513776903735966804623410301880347768056394118557241355004895578430733737442056723879423635658023262413714465628856991906147372757084395352870687501894827188382754395212192032267158160656632002136345438524769460982689757791048054255716990438825448900746137311666338408826742367109109820850706397553808833823859130901835413598696290500071801167407172314371371701633513081173807644508179056175201193801316102871093328254867290496014849829848162660878145097526525141498175158945797250023271037718056151438996876381558523097909282759300348168669802595588705595693986088221192077968664737067604240939290398736594164077928524993816064895818963245163452564499579120192418604019947087985897531422413651982662839252178705258060439544496707101639650741346256970444755038306180227342085537748002361604138803176527088708095031432795643263184288255695019657191624938502438815872709529223409129353973763034659616152475579443344533587458783771507441667887676527142090682400812082150953009699236029134320471235981154292458025259377037578630994473884099646504088241305749230061880947500551592459884617431262293853036552872998612977745835560387419316509512011917243372602005644425996033067346269065162444804597638427982240631821079610775009428975297496874458632482807321423838339903321227383150165560130925470423994462483439174935627719955002944030960041496048350746874580435039703507118047192466507880317349537552082304906648583184603823713280025982562652059533555556567488528529516132924522663653562271916722011392294243471086611105338892141971415484061424579694269486063678018034470021607566625341296659827375879865377448303138536047262104785610552861216021782379837981460107850503302453701489679284439369586192120040900040108784989919206596901953629011799394857151206830591126391648303169533143408449099879876545944907005078556757872653808213916009607814620635286563602751238155692534890324310289213994012315104684930254095783107062309725542066029537412255852620053310126695250096097399881424389065173581648483818635449476984964264207930279111243828531041431668150604016396954825124516681916327813846579255569103992129202040143098181199410681999113957000326582347792991305243791652906030322546783936582829233517774760149800506758777803968734885960945906140273655170300153723594806703226347442330436534892501474070184537624609654715991225584493612109208635109497086039070559152977961062370239380356857415480387208587824972374150789383452265514437179884162826046387073960475841312678857299858966392184529339069679044590353806581185317150849429643077834132501675476460216087037624243460338319015448664341877198726238214125294292824745755649627112750457027339942963359657907548987220536274574704140041579569905767942922345392686349107018697177549188780814289858067625106654157354264095037230949424860140544432011518160120212487751277143016682878838010542482601269349695409863360426481311090991134995849960759620527709789052682465755017632947974884051145806726464417062619688203269821606471349762946210390256865071675369249810257269290259631688461919819434604234384483454138501817258650985652177193010980131892034882690317315639644681238442010186402261275986000847332207643231989129348527942745393090457761758393471358774069867969926449900591392960243483602963647459610762925141082808627393036731614626841172049960424210978705558984123408492145885373939000876062753701676459173556280361366236636288222212490975732232830007537481213587544099570634407301943418528372791197215636338896890656830790806199836463956985499810967788739419885642082175714233113015537257680853674511941442199517724826956136620410889159315164566502602386448730606345227021573077652028405860058067233066379632223941999406808212299341374235964756405925854109211352149244704902503203635299841030247749271606158291756562997367146721851379457089182928864658584983925443238627103446669911134337335088085632489552548417712272155473855364279815491306728610465293525731529911113755231191392524060976435297982114795738297987573628956046349376080343789309485209079666546982124840601828279853163265614032121600573528073289581053408049978955321755818989923205037670702484159005061726850874966428551732091383576502018707575760926290980061171484975662961996167313167788918229546903030191488350370314854437720458616708556026477809745097030251227845121536042945798566200244084727750075785883906109034192469753754580598147097969615484858656209773167411866190610994415106601955988261137004806211278750568091825798643377895390004161127689676565227956156001706517864945045083997230990018239270924586301630559126613221670937579322386643398698812767445721860731301190047155530840126322243987539618313635863544513870431840262433116880150358827437935454697247594258952777055458916824226815017859054182561887895228547353662798580478097167742781121812316637883569451822509394569606802185763104792639713192598337183950420898923283185395557999042912860628625462535523980885693633974660602260851525911628530776119315664436680566382191320460104534742060133380197496835888136311177290262781804126033307926014597819510949454602890605887646497921688316087409525068672598500865048715441522365225409374869743343583640893238113655899879702976923375974713796844473310183243880238217945934568885137945057130868821880780722123203356169905743619039483673086865189506498009803504208751038401276216067456990148009767468146376623106718048677235593876899206703519395676516720754141572136538336049498923231811926609371059623968054240455726441904600914680105553332412935593289325252735973150704967246486652955913773753281328762455268665164665745491233576973569606618143274083166544538155003349431591517970439523993928930134360874043230168284733157688241646106453107033093246738783081791129305612053449364808673378465883934872308248938385347732845948111118427146723662578396653522543193779880765407628761523903010675399541475336889183569937712447480994777876746195673230652856776451026294186047895476347758303129555916131286347516942820273798730678160788255151825119366946867828227351526325746639789849100420196760229856275304372550055999095802502283053085440451156176982671139573448244917441729556965666342271834319065313166097318261690580724516751576410442951400550845563225676281612985774151020158860260052887456073207731545297680249592149116557341675000959494164772212929006928522866412671556695921898806975471435337749416415837467791585013472756951538644021252913538404620909133271885107224980150900947354194625704929771813054218730393627244003046878078903122123059535440769463497118372175576112857586498399360380694320134052597595235697021241296377519729099873880104294611236156178741787208577683789605447487842680436625271326137250302206128962845805390725614431624370162615782866690558457411180328235088874819439607197037360450960498017564743485802339738885507976691251177648502297949041218484040179100369268273126091226725875038365829022215434461806452849955393652040141462024555443734420131599501478546964292769718741216169089500834547855472497823067886989921005459678910687272125709056751038421731937503474269210814092883790257680915571215835143462180304177358664045576035173364870072900725333612732442118053591309867944202768164757956460832263422685240353845456749684632693348432327374748103015300166712899848992104554568424842517938184614923391293915280926606007892383623846771277655667779738358992882372511205394367345025385984971005179515267865474040147568148805322764055189556726535749387808409312871796552802750960184821434739847617182219934277181420346762292987239325481205747978169635506870666461099481353869010747177089245011774791058883570208475137554075264289467712237591911342584542251573635172822935168293681518396100896461022312626201012578445139904640441086710826661393621542899638577756318997057381009725990506635426505790520880201353609764767951081558415764704895341579086317040341245803097745931986273941670765110503597540349493396889621856239310243419760614143781330319483940799537212064419767131707010949386979429214448161585896463697046808123926558274779196380043787833234868051296476620704481708506193625689365289543939852769732013344763047210076258436796458918643383346451314272237753106074381002281588270296076169966427578789796355536132682039017859296582330125660725291881305414186496214978934209748457030853630498483125111614315682443615190233864606425378977447836638264636929438268746099098693587516476248989539999909659768243629128446675539449065667205123238540274519781106300195492941203811255257356103553428839554116148926708374336137364152831287891238523616820038068314147344960871377437250129204286222325921844643491462731593003605308768129010981208763141440042303183772757827562714602947617341043131378196943653144806914944240981041378277249831528854074530210623510027253276043126266930823294062670897764939971303786102084055633972805213895454886434686231332622564134850141009435806217304158486267963854734653571728279699351296209777067339574579797044458732068703738086012061885510047363469330108113583661187056135278800506480121438274231253596111849633432593317215308182490197467294170144540157821502804087400078843601386538968356336533007740435062986545284543109359187356356940659730350521917325239557298597850680391360372395043632503243044165561108951497299932095528771721662071560519675629671771925981847095064079564744482061663271201950561047345859851839174047721110409953532966876140261984548568649149810076092665721679208965009863626755570798632112202896917742211919627819556595549531058435060290333762053281287167730914390685244896700949457964379545477639342045767380086115979091957889956777681588369087854028831744592902380148573309554723386317727021811768706447397045150119412754699808743895072340088129750413416968855659258054152189366143118488929092304169295697928634987820912285123434228001522539801166714778042612116846306008573892613675023143765325265398045021670173728227253045639433733566144242996183012363328855249798307264248165225400857303609270248164352554589546579731628489323021138482334813545451168313824819531468489336965100837395502516120337936046243202497291485244249564073026431147048154474445300947874919255199345619389929640676866869666955181132880323123571673146936923070101854501707396993330215253178037751153715450320241041818496520067546736395249557374062737340333886515997596392689265837973972092011116476338793387434890132410558190342681894217014518371271809181063063456779508528734371091558543133678051459818779087433814774971088215627304398053096070478996018642625587445611640220398451537162718623911431744704831232677193565987225549862509570543825339319867202988635860555633562787025504024237149141902689952691218528345216917038042438558920953575448878064093320418092179659339974288168709059621396786293842424036854816299055246708807368395985543927250692811565108949432506576336686283264840486507027473012007379232030211402905492725177287979745961859902716686092841577330849558089988245444030623585681135617208317570146940569729415668200970464261427570845815410841361691817043107769825468891663864053796355649475890141544608767438887327668061220366280628661530288700964389771843204121006209722682181604379587500078395353237191282587532749872286561601487549143154961844560672058384807944068380812207106795015463335906681434607867269858713167382459295947196206765998120565501673328048216278112675785407655312599961556387343642539942137621192161726649209507171712529402065654172376199539925360998906006647414863327081155155132320037353261712070879094745781573534928047342434669991608621958077026034848190033095070530604338487277487791296503760271044836389413391484956427193194869141898284825544789027769790611236127237033585031023937943581716866843196800876497699855974345536774040685147815325321509574288100408913039276310436135567556381169989929248901256013407881574908247967623992115269138109331716165777441136689416984818617679943789623523952402565396429203771887490420965174859715654946182077797709873691182204763509186064845923825642537315830960342751392419447359089990769316127592599233720227978107267820372412161473702321990706179826314222233820498737423856495053556533307017999866531886251557786221788602366635940943604459493063042924707778060659414165253762302455985699379220407283664853021513175626702533334751455137596438175010742038022763717023735333962260238995359807160491042321288116148701889060652945923540295481473475093703660706349947608679848959491414447130073827342655624152220153203167690332582057501167811267854238894125562357574504865270006949829064910977635530522566210998636290440569666927371628631703315051090301863815544295385684702479092623756958482484449514508442238514972398685272895675641957070154779723805158875983941237960823958758545974801432126848463981169435977049851582088819654165557397679160503569770935128776605160775879230083970233037849245191878279644309575364982151120486615801581970699461599963259405992890017518195574679620084707127710129532794911479347605071909788431290290798094952627004213132751862131890415141525669492990575165851452277218769404699987827882948369733301060351073092860012274331437515163395544532172943176760835512658681669574898024414559947601814570035720242647433880131487518088243656428765868619573263089424844790310217460512733300001174099520540346571704723916836453856409339027980165227941133676154787841880754956824060378431870225418423990553942764430300867681224647271396328173156460454047196074169736015732550202076491896492470454711778616455090487929122922079941270876540710648828674627813020670609661699418266146138658994113290662418381611590046800003537680804967701716028160722205704330176217281120685306729773434490263500762934634349346305451726222932419417838139619169520473568563858489940861941169812935169818388403335441332067111285888778721715388952367748922170827635321970376718289739917173592043450337747037786300692240436932101020418304042064073705793905512218032873552811700322637683670548023471908373252415885083601828030763800639789368368266675460163949609296853063199364772377422453068153955655133647775999598599903067690437714519619197352988171153157863203807752666704885160388356360627432672209638768420136305338773893713934628133669177728753467694849000515575717159877396674570881130880012099251996867742166708053693580905737498556080465553939844321123317322701599792372838797979333845160552056404008111721955061650225436139397335024331161890267518716364019269960917689642547058316689423094314586506948835009572274270628825874022254354953511425138094170554752227830929559336555171171088641266003258700614232567536371924317580916699101312882844593060720676651784690431214960748719561709172652022494371501869275702379911312183022381711341579596783877305587058273551989767708808378885864227448600482091331174171611388075858472879447245265022460253021557437047543738311067218244891585025896293200446362045190460499284944926008427891130251735292523241637491535886442178273959052705020328696100575237571976909048027690585026359524239816399966342446281300470069192700978387246156775282163167853559371302022943190302215487248141980327674840938850753974440629459135238615285207679479367820308152954452232836212646777731497272273147766491599485746677500238372462316704351338692743111194764446610860082584098029163287380094388774102689763848380388366052385116770718036107231376566315236320219982365422884442444204229121523613454410257607646187537098450538490390596601640339143436221775080830657065119809558615955539526445312705107581171588734467175730043592239882181523805601769238151408013911270445137353133497681778267611701442438016593625539333121653187481343452820255580809667630537742457392423004556391780391556126600357625138343194895994071144374475612140152911759352104066141313961317032378294674424204259897803492021756479173556188247230186376988031345238682343948397305723085210241615615641212108248347159196969803135675379479622919208706579142204781075231921630845375541930439092737236415427461329226782896829217000479986324232714200870688689533723751371551300386006656188324167445169906018515021306686741884891615873937139626854129066530323243854926872877796738299107445942987197974539757329483780091086715913362292102357429156779956736318266852250611327084443172431718722250299098972171001381748206088567101245585114097500636640577469573569171046981214561890075599814398287785626868338539591146622192041204240480049894354425183527588421664740263572164438003753768733022049487222234969989140004360887758089541884527011965403827796605595260722864779421468825544130014491523733181534908054471986518479266960555712717252952569949818240551759173626091069479135042792782185683685304461830916391304587570600762300462040224857936706901855137096751817020723692625105504203406326471367540734565762745798172716057586767526396911372790867886080843945836773965388345463130796655764357815908074725901794416348617434103658021895041992744957492251867873068978670802593861712551025432249360903636515237273644842048351045336293299736143339774571649121866939640756659950630413922434827707209078980589151481897864085850701690387183649561971572958947949530800750594151788426627337829012418420312129218050490706115620307545158925658434526744765339428886519049921355151596851469694712520484131103686758400602714953817600459830785549956336949446980919506535434211486098587754242523273438906605896524829346989171651593578393486728112398879907859927305836556392843013383487130284536234191700899962339062997533878386063919839362022726510607678608381715219235344990878183363068135348429946891023824634011574304286166521170129751770598434770979295189315107081755583415034987215763160579283963101804623773998961990427553209556480271983668885690074275768012715510939068531562940367137795212480867636332900971323199102847756622702479155066035545637821033777790639104656436216538047981143393717321899651359411768881019611456227376778436300765720998309496166148761236092675364248613097053350498766080958562771150612131054500926587370128572354434422979667137880959925737199537444240317183714403229021604045405587662345064762695166505259705648340367042505409954669091954582616978375267587401070410459611132205129463475725608226867819603572995056163739116992311600129072406712607123220249374168392964834169362096670268372904819058763782412857256799054842625041568493598576993984581118063374902742143901761378335858780718525239951425516392084371030171779704613659312829336043206834089141319568065552110540815037110233464058672541100149266659902509559396134393436170761549260801866616330221725468286578379476418182467451878136128543752400184641405088031836113629659411657348077406849000272771699675846847801061716547722234023181228204333044394976017939943671760558190905617630318143236537075983631308526490522409885875697010521259237020350176549567994845626021582780334280223263253234038288129801617383001349464934919339974172597269549607468323501848249009977754365282099364471809740568844918821980656144436081701695035174243128250266402116472595680017888947344257798836048077946086434602486937476710189354648739949968350145787185923909680390457492818720810696366087465236059978672986834560004845262443690873413046763238433184003829135676106992180803795317066306518249611404475654254019217476580119850794147245267704709172024764685017185733964947860535785394047679196908379978982822066473887943481266894183974091766856116166374327480809291487732054473469921930181692239038590811684367434405455554852583819822802753352712458481364762629384679592611248461979315740620227437630794854697489771041558546918588921378207119653840187223865530367486137392660645860060139079834277371456885561222722676096809786440392555538723445344330831613548062835362182607191098065609805977392111200191534653732419719653855852846233043365084364439331480309083134782410474214731887159754363648365225922631804845280145871876388466392446440540149734186253157847405839976377643979613986853098862885924752088074964091150647362802672297749586589136218565563388199595718474370624962445416251880187220269760994488034322764453235582046577671144319471163638414638964058142800284244670565288095435552206916928872081606823606710080912006964365118259548736274220297594057057392823198115519551013059979683885341889340203231114863493921818007350449267170160781687802134517138774690969070504605140044684741761826789702040053517735616836428509700728540730414398353216381194958099885916676392786466794415297999909564623646627113311008859505416304694455356773990568748611049455085380950179981169864474789790582995716233230767748720536856363049499716056532240585282306977279360492038090250222286608560228787669997957716752326031429698094181529983734901914093743912659388870523881028238097938627482835727360807778458187547613017626369101409367252427103058196347805256223551095382594696783271838519262898188686947827780271438394966858312992770192781776000877489864405055439405895383203129630746183984757865416521458971075781007953836264856245705786580345290000254762350963201263817719646620117969489401534485890825711012067354911334622318513285475379081602139245725014444844634834920213221521253752877297873724337980637071959457063001860428460696520816181449256543637444767243240341853621553853277075197015128397776443789687261223250445406649794956266927412660900510462196398733628332019346745202484972076234838623593147495471665035399400487444198424949252502555259397115720953696087907333457894595584184278721896279530822787920640440842802389589506635474088524530653276481770270678975689796342421124110883844327216112359797584016817740785098877012048637430680771330458821501606226065597980345163325345885685279480618437898141374197583493653745255882053857040555785275542306980186685449108713870233002204971120587918642246205654497649527118764537359407246482319723329598745727542113102518385038801515388414307731678106306910541154893028662862410909415995598971597115953419730917612896151543297329074957629110414103503417626125998017583203834664744289667760004178992905174975540538846666120514375238625371894578775728248012040897787035084122236809950087836315041457849868093452658122473288240914901711989480070575317399915642806268164819766005034701529605047149467410406198643575326075238077651177486080479415798764055268830656367855825017288136502908695891134788470883056233912457445918080816061423437153085374740875659992498106071255374949529288564014050755772741065150923309141944666797193422297605463951263345138451466964288772178899875986025889482481933464888411251196013968747520121574547710026134135096439666446622934002125364124916707325678364203929436394773480663587081706016147676205452819256438737275627321547399227331794094753732407633377428348538315060472934486554152739278909866220177336462265995974876031740369439418296310778577324540545390895691516485643473589063108801333991240328900267323447337558376653355995669567474900577956713129966803232312135731524795861450265372224246991508161593411807982689284572502656444327662082976702781822565264905565943939791069704863659249965467187755729584484306015441785619543927804931662503190688214178833523071298047637063694326253377008799698430300407506451316240505489458128830038765966663501459606219861595502478971040769054515532376153146568210429522002910902466160656710458088957822661886725583053567817598771773400340666144282551369556003061093576271497504569363711060972217422642628673040208753756425468947221804950134253120629479672532676997087468837765394237180979601791996566857922309168996390664322752832161241079283887361634516552968267963107552200472633583213980802086785790646881018481000273255462529895314418971878538034316698557472887773878051641156847414890995556741427428409422259264781858530007101107234762854581865873494084846219023405276192933426569716813100028067769600403124792930222243515301100358674085640160654587999846226506943652606036005718527954859281669030071915462172754138033810289111475697015939666676018350918178638760714517245773561691321727835609046112980109589646114348254642494658137063109192292192452425874531178312981812251460289490365139940167439466664273019186586309808800376887146210352536867577588576789912752278118915733118201106213156224465707310650345758888461507798496234243522982392451005910733740860213378981446591011030373594819695841845953656377189425730727306895314525057006515229687065903040365472980801574259321491111002377146708090581726827089136269379435485570395851098094477639024249062456196484407284460249493417723001246584136034381101817720271509871682448861083617393609180549916779462285503596980436521903600370633383786012924640898106778049272460109420737375949229384234950271501282657004879526731357218729744318716583689892229537073574479684137642375574351539805815276853242737809566714486688055807925439099207316407951511727492803584759847689268260615634944360949363722090585921379421778637659154413281388865911728753081021425918628311014235473805506797071522605922536111143363139674375846502344987228728536042253745288204373678867502840061030238064947424060555717678751011273173440826996960472633205539734915118445159866795372583074259884480786621985443529286411014280094960726239163015948712041139991120470440507688415261797654059445981182449136097416760989959789196918708661241843809054055951419213401790976291273423850787015847493074857440356100262062261453528964747693320579008627542268866627055817840934638985089511835559178629315571175410908142870496768582875675421602427290598984081283119022540387104201992132667195510493084371189744299726821870681113491295069721707217780366744625983098734436452638911312107795919304829671163595002400278158056275028784592363082218181101615242571336826099994035078711525008193533728640863572330631506023225281107809393569738255055085201719947306067239744981815237688692229338319388636957664527373975144665365021598425807953876437510659449546018475113160348716560217369130271595069720158776018722221569146690777760054337036492983098514019190606785712654496236650093200220156151386812704306527013412961451128125973213794802701936651532746716882098464369424655407403056023161056606481501079603696133663998310705863189266646075358484820213786770934517986963500104248699332891658220752242691934746621975897655022030709979129009415958872715868078216051200165554615620178128913004341185178205678281178185945406582847361558911514882222994293906272228905508599868660046373314909604192789391927344947585375345358318025936351083928219420738415855334938018152150195278786360047111096222745969289550677370104135276369145941159233174283527583810403665651293593498496776656943531375684452354108294880027602990713878878117702231141517011448635076928871024617700846452920342904191514231536310833831400996015177554934191646452016775290593007015737456453445585240668517108601967264184880380962452770979116374438047636451770040740756483216610885108010689532606591285387087678657108000900134391008838009135039272874339689315813624571529632651470418753472628451787304812943808922815104026708678850020220196334855818022706611181951661308295264373400811686143722551288484099479078183428866046111812629461950909041823287109441831923858627656635325278322262077029767109042618685501961475067057495661911583326644300832062378871498606579653381436433619158749598053055351821588461853724022751689429932279120532640841644156713824493793245455933591199617398643924403529215634191173657717189445402989688685312814483123198171175793885347344564464564963541600277057981575980073457349480799360823497327163032237517772882390089130999397170485997795578430861561966577249591306324647497582550884305957559024652914818083565259232421631906576142309610217015516664277640266077839783153640228748113678445275360263638433135668795249686699088509307985041763686987750004306191781193478290191373233934374217212179052335645517282209050064044447157902037388123936670770872922724558656190844013073144198345244486557771066436443895911162405333962092390171309516970612627654199622678192102364850017621180784775225472049924891944373368422033120008908521565233712832953118941484751882128411727601950172168909172801961353121748916813278251855426318644312128851277189353206260546039555579557816017784941442921310727402924127517633205881889383934106360049380376347048361639307908555179045759225193637252360526130677347559632016240828139184085851890951149226974932204055658716820082154024713731347250676630391075837126351493501491887897716176070549573138066270353118943552592217029711334935333399870015231295742088905712597945068005290013981315370084516705278092185106447086729111498153961533930738561806025199682429344783566236294569167448561998652251604377815708295320852922635824420589042805275810529878266588337108512959452798518923627412395469297732015294828155306579798142674343050885465608651907424138613798356091558368150789772856837973434252474101679158881818201390293602279420450249045787340407942434489350758186015263070108875853837911119553508813353082937082542524742267348635135011314155414330241773762170169459373926947923231122051393990499426674096876029081255398772714315448787010066303361915860979690346334856685246210474787820123660001813942197825464196086661859075925249464253430862670011694179122537623328355249050004242899237237435491406159173624600009697728185832963026579605041403586292811186707982103685297397957312216535114570792354098737911311706341314417198212424614568602890023109018134665639956065004303674573602650088262805103379677914154192451660364321943987134792992962638830291013658246184016241883244766212178765121964493636920677439040546959470604583936080643369328409883343868854527475795679337433882366111058767435606944845458395738395800294962542428610259348036056779418178954231038577219173709682940329176591522695744889822581519196660647666630335906279161453950909577482298202375068351945672245160488140356040500903230570273394960879063316854881891590068924300662136501399756962043274770891422976359516947906372469446046014687082250477654229408503970534271694003614606922989884953356474616347136372527567171859830958620152475790338559226393828183951296247670366239600782733432662402395897135989382128516778704213422429029422181543157003245294012900572468976421525421421531529326568935626924267014943365776210984383475791631609452531707361296628848708919996544116481775922542904580747807695141845768304492478641776073220341518116331925688739416066092273496240154949585467185121041959816749069866105929592837482549845245456329929935342760410602717629267777042706200842686571978177888379234121412102617461762339685591709010000113140784934422865528561522573997986465328140572211866491442749783870123326272665964239636668837679712710693188518672195153805938325671365628795388354197511861631977996202851745495276354050818318050171768465428370105213212036892238076902264079965647110975220713534198147243653796772763562819977582678065460767680605755107943276374961997170318037461589314501947516236672588666068506406857375694174476881157546458848507900918490556406485886467480126754514699817375529630920582074978717097781665824821842268331622938053887940898597721792301406210760979697033740861492277876922084555737870647513344039009612084843109297353797299917447750296593465819511588788061152603879493699749532292157534518945844963957803866637360580928084175780531240964193573753644913626945652061039790658346952690941952283506765464376419487056209397228452948781580933834233090959586797562610300910114779919613232487287006329588142436934387442574705461870790432039075600961209848951214691634250056829722155263480532409376244028980850953121139471825000072801206790238576741753253286922543308011875849461826429600823055210584885831974816282415389957046072336134728158318444024698260880122419459908397159092905084927176578924983364256093720945736147402485200161949164266533847653152766492932651172747337912722286641506213745207021795681979328092563998743985670447618120862538255352803957719806202576898030071802297528472665839493694491401650625767043404534944050837803929540117344549647163317733340613346668727423807444352755101789327413391759283868286282831612888206313940475493817419115718356524828423945855368546133888777027813608736230440422685373580645440861972445872264379147595197859249133828881385284622419438050069918332199826062193644480416094654485868974101618880606186185659809742288643519681919261541028563850483576429928374841623804604090257210823064863292936801748017241905696181534414180760240634191585416218398032387106406808210405887131280149027101973788254782582796022273748622733439375406822831660700270501849813507866100238444929984070458521120440765455975518110014857616779916229972093638495903709269090010923719620466430185757081469734337647733294700164373501728310202196781431055006833817353982955083753866486918919475849291281718180101937269028230603589802148148023009222845671372594968117623725577619691100737237909794017352411610984061011701184502808719557408326370282686729606385206463253121643685830114329792271662120489599570235216452467293044863816956927473680271501242885345142566299865230771684834052995617568373374428284761811987275016565555848358166217773288276281791586890222104955457523506765982071118173338001358887964385746893791985256746343702683543053019660251495779017390217384426232033117065972919311542279101127491633057529628572277099924475036473207511338819469619357163324446300211254228205598573493046584462694130502034748568121450134591119283762013302719112264986937574368720685827528354902812869612221569592421020184865206586541178613273770049749020065680170280152662825116855908303811221000164051046099726086838527192854369035770126374924274010197669859487892413395201084376286316644774800156371184279997173782653965321036622422886423234248708154648080113651979559120663646110224817873826308060218977253120304740862588200594776632443088587213661489757221632888733676718861526611060501918851424205446043563070840833286674508450861498547576349167826280021690234996452549422230813438812843256250104297874562240349677849480684470760175649423558421697702752421466388654125426200281554402072849410113114392371093508921068656238871615787267843715272094668348652729445683067748516112039150977290608592135478827612890087532975319740049916212880422126653674853893280858335194756590475545634950688780888664558296749012740201262377851287392558728284105309316303188489238056874319541779139279386748974501322138783731754210496435042879743357195993655726990228149134230312996116573193278202278678262998594506927280779269959868997391493535772238718472903767247226555583352003931415224341163584195330467121361820447961537584371789363946342413310794458525151915845504011696954731786143292964073980847020324496287716410547393936772074052509618974351528876287525274095407263304881865489875443727083356352190940792707662521194934962087698388589666471676386604143979153692971286071149691430140581517198967482818268220620833703972831110762755783825691040884953549892534187594907872248031566262714386598253108233957442961754556068284029061525333683869333157122820113809808705823334067202070265673586685005557181766576898923114541075722630050575669692707235072492769203735279839759387110915869769090348472204474249892300811013240721009425512539171821729571021394274406016170411386788920637236364104043640149719708463092390936383220761392609643807618396249264275089627443216354177876083835250110644127544541477734547151477792966955656553059221567127099444693369809160867477367087073314941480607450993210560491467704865953177352371375616285223134809336078470143784631132946039594233799824252222221381588257575156965679455685030845864924565184141053428785751062702406838054299183253395903225829429071500492456383120535155636669256928625293556393159991558581946542121635218700109974851577959194105944319549932657660414043122139696218916592568453612587831735410035606351916141375363240756695235350022508521571213232244212737584456404322531300223732267831282863446975725774075368153812723268988344106074658156879478641957380712132104486891525957243991839194466346458286011855158449034927558703041668974318078785591321328138048170100399361320073182710854143698111212781953695278231783360102186863846060751326624266485749153739933922743573397072497106626671284630804588929462361744039850365954409044521218571546905344356416162794754103806183582921596368758068036873804543272606439508516535442993912022720790308063736606014615297019367999132397694885820253237471354661596383132482819902808725031515028848351598781332875621060350793827837433172612695146017373267803181107949241770577265384711416540423845714296262181087020622118867548570405377135651251538178383239844732833111575992057377769475712940486288008776504345269625397524145738352959153948490458427357196651173320269136403507314172052465274034709924922367455276119304813038730273876611227895038934806526385467056429255957314578687909076376936884464651430615132361188652373012240027496977385544970744230876824081007519576972897312722515162807158589843053919911068768567828175818654271510204293074674548923526736562577097913325999551339328701612590761906512078949545933397940014550846031681815483062946949582562599196044327480194341227636091110072390976964664352063374420198264442653712946973021906505660619759616673371429126396248573359816469419327235467133205834617154399245885497658457757992173059303559397131255882532523407761640057462695501495963293183210977036611337311090013749400618122000146270785014173685119775202728633983133428307790423116408325450753531394452531142733584886571536354069726564035455061554349117133887567529908674758027556587263922573540623795126826738441519832935392963784971551126883593526033411893159313841382687610200233493811347748107811359697646538435099450937417583897353966584425162542337201921593783850546274030519388350512923479541333255987850718340016647101576056036415161883748927706817263292034727275295194486465373607905446784334094700967672883834275973199858754498935422109512898001260931936260002442686815140553891480808084234492110238345810813096831679465200979804738147802260050743666833672583462492105922673567903966625350597424436889640532131288185566567709724676701545886546543749688167656275853359688908858128798650991549183149243853895163971260985276557350393964184676482164843408135177378900156262724224772055191356084946326865948498477156240703430700844080985820688589154359411639472973943500519754041879307362312975976038083142397386642244535872517408804700972007030729229138103385213702673604504519483328020101071018870948673760313720173923328237798113057461968264695510368974204070481667854687568428908796888362576983972193855728023279893306586872376758804355491492270578875155531960366136575525712175104652345157190687798576241699035990835879403749961705409938348659183128110037080915810341371058594504801736962253395757906719332557425251517478813161602844679170311788025944226277596625769813810584675214223800407389310962986197364462421761116429851789036718534585811211275880576323100610140730921114770850092813558245217707738182059370544053901242478514567292192271692066837429271929446194692116440805793240194841022095122306948920104284886785886783677100298663472979703859625202521305914399816887498620457079993686888025919041384691194503460393906444997459920461549883890346549172573693185191569627856645310229997596645847167637035228803463206699689037358756002607292394427157454312992673663658097505789462331084954738024074908457465958462572420329291368357245864578563691556798951129542761721302475988361703065912041854378510607890681874146109937586400631673335466050815747934110795974981389875649795872278269147064520252089987251248046177522142451546061276888262515827922835762194527498369729613922041104555284407432123662751537364679690177967496840729400774205582955191255504861844651407815120126649976118932193789096112348068664365496795391386806144587936592760760001721965119616382599176551181991448625290038883730671696763898475500904765103844637607472991570719433643976243151619928327187161951707446205109392375698906663044552325116012851183399418505493542359904481628653255193327291122034841388573133578971300489723419878960105788700866738860593562944745381279750266627286642185295239186793827016229611778257109249367966022533988516587400978854273640519299082557173161643725679235403056256745442317516940455907255036300712697571394864220172510465617664640591845472686974154527617986095589933754537758109972593695224476102246586964928198054213850470571867900104159843950569542537141660099977319046451516645993794771984683196190840983680573300987012894294938885590047912173835467004192766114814991172839031315603529994377006430133542782527361256341628659492845123082493442018225881823602408289076381453823290660055636182067087134665625122379317061105394581025002438151174254687458676078838214261217704163718586533098667366606018462628326640052753749064438293908903496403859523495051577765480482103639270375733395396943649460025442814675749214129723661296909270976209010168505157470890250182508292713235031972611902587711009921611755616932697890563380230043522540733593953766925740155252151896528926451497366738514586418849791371451311730044269443904016721902620042969386925302909748196615620114118407055648277546551403811419439828038417030077769136928487720961358552641321554221687921828540843250465264266824830127649756379313140469105098201531966920419974136328641454673479276515628115171272385169312003644773639544758598727647456855587641474124603422721237464965390236505720557943760538131262473974867600379032616644367623128635727041684489500186664939148880645939923804807425490430465912908704212290816386856763975689790330412265747760971458027362234197350483436050400966216085023550229995830376600789698213749646140785627852825854589277519680471098905180148528132118843484562145950892046848532307340820092105690692900631119041298096550194097937781479476127725434282744492923751910488897780040705574395682219480874122456970431014472911179659181785218448445900663128334291714003971734260588050037977384615631229261840431995046318200218829446291197405742450570311313485505443348098323201172321640991547674340072490472996361604561225727994527069256093831915380476581987035555122971499151908784959780560147934189772698554493460202250791362429150936864671143674669437551765939586228432701323876663979695239137331995431250588613818370556340321261828251270964335388572057520915001593263649074192309920308069675544504676465321730874342664958925454572515884605047472016268097299438683134398551809758270704625276513430372268005761845033365657690877502902143908342508083177421804665512569022361333416911607164295426059687470898167903421644807877179993661603144879791473828844298591409930867027961550075866071437067479592689142443099083269127468052219205202812460124350238332969161134866208404213626120010642551148891258530541948697927485077277368149569684840482749100359224629513087301084077579558839506505808617695445130971158522533560814433532936613653891494964161446341477476168564677153782577198782856087466946043700147523244808400063316305051189334358821520293337250612816125972511236764245632580567955513089776140133561261581758604721828940513368735713029890073864951657260076682058251350328073875302780960180178953171536290114820768713371920749950054280476886611991586792934501694297034606879263757584907517584966054346833510268281694045653237244675722257447267560750109452127725913882203578908821087810790238493904934979089080136626387913569352643349696840882802368402597786667625819028855291860021359150320326855104942947354495628800950450061322867708971587359267748578710813934326987180416520538937328985907544280565399108312538043553609368753650285893803951211487798005789849825414490245103806064544809990601352672237046961664669937194452060592488721329235718714862958396985868292393056141081780312773212859979961795825307042667591934697335679827600926090907998906058476536056456691870036839425631348423219669247064449671896428744810271900148032934169017827715174328782356813067427943586178366463036759289788792462352526819356347577409189428155100767545807439581663634056549174312019588374818457530774825855608714087605485315944577925837703930556363132712783091072186740291050612715413716625090259920305492860719741885777367553733826375716595875310635555080316787163876860799884859086932503021412420780647934979231035404766103676281248357895574603080005069943928660853986441447595384077884608018612962485078924115779014584388659382924939560570554438312672137230526115303864154411632271984470238718364444868721473102252376261758141690839501025962827622141216592159614279433750645587858454536132016053418222643069612565092258602545226087007271685926390835385107823175896632298871736131244114047560872899970944445705927735503168536906225683187221551191377927111162185968181763644246229771228994279732662704709127353408191109820139869807806893597079651990336887866866784094963238961046990211852489916317883406418773132354100188261771510729885771003153741203155110438283174740956647060805268678754725810360553891217075125818641737216391717072115287668547818500054447404320550153973969329551966338188604532585214966832245230272329339515720387048632682046012570864961493731159209590347953799900653505733115844300128827647859299726101427370691137876173238176230206716587026861215928686502664389816678509057382427278655121709525600873191869996469887010346818400654076237424965888135171546296054298146791491021134586522465344565264671502458875424171873096784668058121476529060625853224944124854372269653442581270604286608075424044229983718036406841946718505721410178019925236323038897477095900873478030525508544122593782151820311749542791055072208408734336311525553746286341219271710656227964544841113552670223388829230856536828919253566805430338638190132130270369082036317984033322254458932509537647975663456730800234094243800453434405097895214814224129953071967637086257183507283165132207166381729463219301942185513568124628760384588306027513684289874014607893151621433182524385131171662792419409811366840038942799110857754249628033652990715050398967824822130422996123669000174983314757598962012716261562324379356571046190817847514509668090872596605079186973040205552137548258364000239439619204482522366084534836447040614495479910735130649918699406710534872736346895140640104331525549629467287363923817110653999372562343612609954655621401187428110838828158969034459029983209859248170676772295572371746127760169746142189505450338579214664731024350829755015609522746993457801384994010623048252367321976650428594150428339273203880766959434914252822031152804946042244597515845107568197573525516769812957445443594689088964563945177166978476500099051789623898746686602896701846551321294474501980218173461652860607258581947296683243172313649698589493896838867511246665170497755732347110979983934743308970386774429861850505040473039491802853182103441351522443461955505898874637533169850627654443013408694698440354755098564185507688782314302290868764851369374831399601107801316894728369898587898668495728953722394134774580400972310365030589689830753788406539672370555329931157857400184783441271483053985750478249484494912546963200655175286854802187710835169661061055907936078562104304254906145601186493126399068301628505836064073639709932999842498121627221860016988961006458406767978881832279965894784308805145048117802062074015845845655997476927238456930195330661081254076015345687471715056706795123488709323628694001500251688575773844526336880628510311451563406087965943959094037043924244092026266225990232844493764406850567112428218955373581299113624352772836744719252528791824053583341525568710407794485333566654926903600984194980984237378600818897636942672908245913086662085459010126658267880994061868819767254690705934516085932871149949956709969267846424562771149478906771369114130994802693684448391991191675328608486249176816594520991197527131804507287279771221105663807374078603072127847688661168192319508357671684235979624740374586804016822614111371389353120839636666054112567181113529176523662447869124966936702794548074459241482363085629305098411788818488011716790827111004965709389585078062966304216370932801547218069268456957308250886915800891920563804632496583717054128083912310180235036707819192531663376694021203441263833545150853195424218328008597375902050532293011618250559194219207902025675302623502130454916587771686174009141530729723048770016702143639275069215448334513858342817263450407830140203057784418535383943278734064012655548395372198539093709855017212232003407787356127528781034325662928432674204923812656962535086242123692968274528628155060821490301961814709438210877109514341568272684361090805286829437626117460696381619543977022604800054728904920033537295513305044156579248156667197869352776582196864622455256025977725126754152816233214417930635545598274981002443123640388623279299676312795639691155060193319736241837420251300624381832976988739307946943155592966782509504822186372517183039132562453534404903875738443299086791910316494053316400548088661442337688515763420125081554884626017967454631341261235557530348696630895588620375462896591808777211740712156425771834557994370146523921201310695043286974843725554655803908671549029191811940603489498620174738109333276869145531466204915741087329153433897975848452269645021356217501455612079312360106757409324254535136222986225603947792252927965892583426570688112624567896984966263817845807196793347317236317804299870277374539705410693970496197357806332594389881354921870202349983707767417441143901508247326489412022395176647712547231529624469111591996547411451035267483399291680103553196227229539214951139074166355300449420580244100241872682509200169205578059872799787991306535970242115459995336818474798358049787148014787791014039527669514149024351688699553813619643655124634175506304871916765481584733112163628899380151038485733434842864154845140062018422733888626039791845849795954497590645060127309158628291903083299107645210811287337193961090064872373688457043017451599809744729227464004793552050003128800366426166745804664616593531266526462929542927014626633046339014489446586970487005663227195933881719398877150792614580228662194477422126222356521997083595573387008229731222610234859637727333282255102024112422504342593408685889537825840448113131137522308142429738770823869954143108593877539727061195162624301089727773880209910622838369691132628522502748545478413629768479033521939631744878704716741137558070453137413351434145014092358599802348059093140376380743141777437251141552631705763847936763588050697284266632823887481481147561485783090805003473515873282307369013742629710994674013987494083871622654028014640788789536521985320261777204174148383804404719113834999788391765591336627893303364941272613730346132254901390041246876339708325121571613145294773917353780602219719274268852990493861259128957226135778549031414718635054205101248813672914378051039647582250196953681577468969808109706304142949326722366262100262522117174667204455047079634920430010763946908892085963484460046434368864342101801288592854863096085008591505863969230481603647255068240613411943365214817360045020483707134353844762595449697673707308020900686782083140962898956078994085598553085331223222080167295477705273446636952104164992199457821892272862056588864963761237347157532516376427121256040838590468137304778537127819118277558097676570294322547790000925367274984201493973218616296277890512749006880137811679487025954072121145626479259489466240204642193219716314763912190459168791082688074716044172946504622085560661110799665287428911574187493489964496400745547200932070789820830403385133706065519254198402751212399068281439054679703930971168281625254892987301749488173900730305487221370928761076479468740127861615591206963170044434138436488724937832481044284617193563058477642249318415157776851137080373414670285289412846082813177022535735029825107369792185749943977871657356631306012030282978211223760540948509642474848219292157138374398456327652471629790960265381513536723985816415197789329614915123895193017085159299474802637348074617182699485674165437183551926050814721715279655369164534793545304953441165125468270960498529726777167670248907305554856479676455604177587946201735894520945237147203217119511136707275744978116698427879006220882477399717912866851340540379449496506611035309318522484530286807925476110816427666663736893545016689168819035153392222282531541394106721387514921171543066018530528464623572623647226676949631080312097704831790727692720636882278815469219557703200674025056730488295502382288167420101115098090518761983433823848200213287342698726628379887579706233765502547979741936038362930271101309142570276824603398307311351963920474160647484851159913419362566371833990648314904027124285344059375083851806703254807824926451685790887326656063396631565161865503790938988674711960675956003472990965746126193962678971823245467743429337284097401229316176923396066678743875811292790128340458281606277840109698292582976196428862984832028509792012110454888348633173917979524269134865503904807472489177593006896561180695962089453502167298657208358567069632672479856012629072203276967111052536959173721901695719375079897654756851710854666884487507793263580867763709495712298679370324310122399683779902742369703653644926683574800949968349798884390590199648105093148958293097526184392858914879224697858473508251999085219345247305149854747660075326897097099384638172719609629181622022368093995334443752404190680679642076360133888017785796282383414042222117892463183581750035684013443336990912882664557876386112259297110320889907951084730325686943421434484114992511899504573581990702066609399208272337383426635329007965845889345583794180101047394528215755631679559875259185562708502105156756592195383832544177013807369090124990315713154367980821034316979833074778430010180867835532869761659056371348193472631011011561594941092475576252327799584233704071956438073630028362183677456266459122287486467455014548761405881460414497347429080450899015373270896273159316055002476722723512912694660069660748364854738099221021000505554529400951475532502132255416211586537186012912206551660713641399834696009911337747100218441637281263817587596340034245886816909121039092829628773980736787369194024708603261864466082175491953006194424798704041284320197681627217109257798016038955099545721632864470032060247723963986674759526493167891549052880378214489561904106285280759641081440965593181515454099101935568229184640215227042753500436861164900006395822070795576657775499915186865726245765685700666109186265080386812376917175522168191296437341968304516802988165746097656725127073041820634105431334226712990795595359233788678605854745417657448871239836114232827544425313284490040377992915846808728945528992814193900290301282087587109356048447451622703135984074532648474088660615842780045493474361995753032685398609268863527222490040000557430166179027328249803255043853535353520243716042317469836454697354072010326519574309474136878694261814732234329553260023757294503156071968572153056815181244819957433874229691191348756982886973138149260177580593898028622643228661707215786659967081875890868696896182312188456918787779934743719506818913495862685662105957870042325983951331033638020320763569026650889029989362192371886012465969832774368486395087348941665901357024532065917993806309876040802146182306406917817702578673365343264185763291454272399427508578443260209183065034382092924178310792392686134075622123117329012259613382738320104114979603260579048188337497945106605179110013147468638614497701196142779053728425321846335988584949018692623809876623430706975215609306537731066792041206743566994463591173699639784579171385826709450265223636443800431280851677084118540720452314802957247689444531154687681169109268609460602738822457840602260771332186704801795116907969402017556158083126985562500005798339639030264123923693737282182281841773005992298775499122901774715773864519696370226841567149637659173563691427556823249524463046345613732936126624307532367197975056680184968282653994587529462899519392170777555293619166546751522082767054065445922928091878964006289862411611067064130532731392486757902637870571651370369860008529175138431221530506505770053720059285050854808915512501875394313221741514109054442471748031288045175021752602913272283137189204733556217938580270568047333086008901450288296021714135638306643838466271816273444320201783994370810092189247418261323736185023217959729087505918561823370459239521694272901956620335161192576263209926197628681764619818094962252304593083838559461114161044202692213737343212830168498816802499131830839543670047479094635989044499371623225984727653895716611307477851661171618657107851655474843695332164393027504995837302636024423971611897727335367505149300159483375344105595067576529123206881792666466451166972074407423519752109016879642067795131735996335068266880689026623489471789670393564813708583320397956835205455409937686934969638949604894415096127025221730684322351423161726236821736210643776360639733537524671333483078526510947341528814440152437180078814324091968918740729348708795138519581668498165854993962063946383705481500376327267843486651188091942078487229725452485138210858465436089580673454663259079867344286587317858827860619763709350523828941085689018286827624963046367282847059676427559057540365153344391560858565885397650450563288738728678163437917674723017556471746393847099307504957133996935826268223322554287868455699556244727438999775838605133035287722643031607653427869244267580800778325343142113306554599013644218479398422315872083448162198364835679459409706033953266913420298110228735740443729835909267583535573375919846196362413914067346079369358596898073629431937073984546298321366902718197603378619034228493753200976457821390586715114028614295679012161402736275635318452303531896807492715045582125347388664964184311106440415113097765427663500527114206944604280035759386680458153678910569917268033820909589486310073367584803210364840937955851508920505983524920786499929050534697970253797707329576310627283389013696674661953348005194369477258945934707001483876817314376606385462433038569223314303702864630993891868112678516825639475276309288854414529887540623109409437364124684306106843786211285703697320665232779313799596395821274471686960862014565129341809574215858559822955624133098614986198040917280726389310502567796472073448461789731449991445182787579979949066214224167572566650699782791595934043093503575629643546113480494560671671183434382704395756877454652993608723921136955214792327905545709873953099974571505533920896071657210600312374000355052026067286527103166712219685396036007859912514674246529431935609441305139625842013471677545698318434987673491778754109142198966183224671254912270383657073948642634491730049350652166701119175931677511677085462099354429109921575193875399045345055423114722799741193546531441273337749675360371151643861399129336867726643753461491522539321344905722210420175219008130023387188298302691428632436235905826664604088350126776980063571400375813179321779841460069213383430654954554634049833685931566762236036501477976407524899967371259270733841373259182565942117280783243866328948136635147153125651816342766711163495206763664224260287159429033091710712529489536334481274019984608491064348920949966715411202070542955119520464718312546688394302613147321505701080023292046132731106058945479760583103131882095529273241128086204924235169024371285890570886054089400989771850366413235822957676813688922340409401049188618825610031077004031717722679453239486945508764068311804704666871288990970342239062921487575044468489801305347174050720244714966773550850812411794173775626898045551319362633499161070890556504549179197642518274599052865256852857473084052823503108608160394618115472852737993822672735952891633470160857097378648749819329211806714596723389052965770471961574101595604102588407304236373685051209257094033359105347220120070449699953991725543326052589894191569522767699960642297120103626350049603844828397894443231093910619773620167709214104829370561913968953950312648587554094758350133657051787503357954809587910540893392434972118679400725957792630187666919360725290933543758172696173314865401741294508385093484833494478343251743292009416163810103095462596747445666759806959563507053066760146792508704812106862464667329880319993003381894400914569624137055427166683064835699924450761385103662999224948530446553608924324186789434708598690361439882036077645623315537635413714393733627507944691242528734514743473523737233537342990409303461547345397553690539913625545729511321343437281021163154389160222549927812798383871252149519344753790237127711117370086891976448194027734504115551320082593799216982588090336667176104235533062890942862275605075629656219274610378092990204139460962918396274950799383743968974710743187543594906979277128757809515427647139855550212695747799850705187623885108840834043159748624026999991229110451288260025293930870109957384336416649212418848629214049073379004102381669068490506942211123518128697601599768453920308693649857208703462429644318701576916429797391036001294462013424282962002227668119508097475328512125674730006408607832755761091887169869353712135024594820043282858697330661426533972005355319972617094400957654169718383715914157522488335325106256797680029612725422944370521974538652096048808701820984909202734528923828402455454517606710499061785463210168241930928136798786685029274083920286123946892311786087339512701552816584179286984239588091929374518932207881196896162323657935538721178463586122109656421708706757015716642540733346870306122279391664792360646414073007104602656132226439040916251649082201618700464588814418413598187088907672680359189819343737433467059993177621698318258262098782646549213190945834491447438963656863438090270595560665812742598335116069616552206096292100520582914875059162324327934486424278913247653275556622784808845591243075018170322567730341987634812255693684173041564316895074025668806746944609010819983025998969421355535281351028149377644604514179866624852612261971275540915969342233697530071103633038672182997114516298422293078571891332288039249786855793422225064854107357851326789857895157780446303976141831229889676420201751130464027021632059867748487079028047904951149235993715767516853844105244552870930597366515669919145720282085839225424910969385242338795478085183040042520761020626458699618696381773612845440432453797143273831953238131883529256679670492043581740005784494454225313700596481484678151052571430304257212037223780520957595336713605760309003226046149766374741066957567310285033551328881234220017501707126503675065156521779908786889026863287623451536467477269786355824928259797796132574803476693784472269451544482792068739014922096467441104752223408889868799258646359774709632336298840387748557238226811333762126752398757931124338529955227042142393378632786257739332166254080670715231308189214500195875192744955920183309915697228265278184753353322472125124243246856334431301307863432540471728426528946682501611188748684838086532642251267645164903698816698391094467186657606429599490991710843132997654353836576269137818647425145206515470224340239356772950145851118973236722757041943067241099080239963751327109422700585605948485980908716133391202744626955192776196268803847903331815296170676893270445756323100236012209828279844319122171858940913849916309472249105903114287514271895979577595587011927881260796853884050624070779313452323962509223730357041513165819259005805082535985614995438830870688059680629284891947514672424121002261862256116778562853442525837870424467879002816479368736125177447299693465479314535554119779327316538577389154072530911576609704154721879347940720123642250388358705960165081251708957869652505381924843534442722580180490818019484506209235018601920600152959901944563029489908249752044389469950867649075128206682747455956426328807471937065682752295591261143404388269458356361395096160064966023838584456190128601501593920327441413174804123888435635139403668724094178086401791929612412208870563968228065734647059349176301783326303350742385843748467844701227176886467192807844513699255114767499475799536435398086266713547577904103584289688917583857591935627031664568013236069392674550270755606054833354523717752744385711540794792349122743806410252942494806692755956459721588068627457250757619214265302790234246569667132287449693791229159302269971061730736525040779277201733385293088567203471709250118651749566763852184995695944573623249888759077417087183782563082157089849990340896211554764072313405245182528075243497268558457833217543805402042883214921893354029350353963100504983578731175555195441989578816346945514458373824885037418183939614450192441487979143116617971896628525088594039533276122329197250860369769801618630417812863431852735115208956899780904877969227544872685686710836624031709765169184778782358000487531180065525545137921255663077883447369390144625613062353852022587400644342325303823137812565405597014411341425590423520665903385342596650395017369032456496720394631446404671267752794964472005132523595410501721781608937341418694255616515037433585298693488360155912089395563951995778648126667243373236194632222080215563884704314690845798004690230204653296367357897195426509598328454553655469741552119209423501337577091267844676493293233825156183456571666869936086669851045909825620055149811863273655619414839523251262144101671754880401856530597576238735209706597995536250463737027130468108296117946647079513181490387265458393528900636389241924570067441078819520778547839270368214472535531147561903145496767899504736578444857092082720157773739550288380869798552552879867233606047894791610803300369648749918415723761349795799129008858604747383199282737253289541816829018500979373570104244645439157736168595816126863227569605732624585745680240289447005744512027118077812258795190018409947050197469350481472814738145220066505437866764776600149561130993534053303924364205492693708783647180605281052855318132689402384205235527441281403436078776437222687113092488921466888205748762896504516440793982016757807260398406691925170240313059926604032694359759634244220932707918838156225417550814111212717565880763265254376670714942136374337911539785114973636788889791074721633351265815550508724592134743849662310739174809014988439454308432094355819368107841820709796562363743551735136979631851207019856134113734382193136946562878381871097549334938832936058997449876405906000728065480094509346782984133601633017889709353504066559228606180683101343126373009899490770267098481634354853828622503611807213476919124970027566306954087630046906845696005140080876960388912408190571894300476128234862471944659186347199541427632128275744462763702885783870447868720035343286091745018199446112230037577841844191675916621621610569125572752340431833774473307547174696975007854982718536070586690931905266018682456976542662482275873969653050351647278219059724717530845541259415672584155729494773657989244456944977974377386574316484255416056264816103712120890606168758964532859434231320951610914818917607452445666520968262892252353271188042404311726851120198571174667744965298720963974302754339470441685515496896686005162391333494033859020710821894559919231322659673527584654055252124576502364769290576737933702087927323854264825186632040160483244994886946027283714341663088865254915303911900041931846567230629403464170856370898285047858979556861456751592235598382634241077045486912013374837116137319263215999614756174073029644634413743666640703177061553737675778365989588422865571727341122753430712057581670342775421981609948590783177604375022107497481790737009003445570647823956809344686549618314579070227934182920380404992415116151766860782544931802400479433536519069057848453434239718432478198813046945878150644356719981017265771207418380907940392700493924910166463572487898101630818382473572340376751149775370669921484432686932611234244723094637443704611199241629176490767017920039933298571893378966673174091728899152195504790795565306739001489227183378613259502229216745509641153270257698595948052373207772071712859382186118900868266332483614319287573938978571842719970052339454066549210173648987030564690416704387521903626934076131766307748150281487164974399909277965365023398322966949000593203796867110326499339911324090939548705134212424383958355529310994376326181569298732695441293578591001162201813978084153533936075223198802056967582880825044216731022736600425338576080616843850522315322616452275708973739969061775777467012369152581964546780174037809522161924165439115694613045821564510926447509849598072373219914511049612713951938593336126812980652249902487664476381739065713738640744015869032663261959673687721140449116415774705068400356694274376762066792187472980257798016127357619174999114225963797306188039674186399896871826857898402555380495991341084753756960835134034819259588128444768022582143450932277753748204913257524108926069154386631569794538268738914265520122063400550142043939230473332280906699711007383730324148556739184287043793230316022525966817598803686196630653732668231651436758845818233384483968109202698508843435574689444679998650882146895293999652140805388262121650222715807343158059135278721770606384003309008948189380396755426107903416729829451897076424831168646892750251489523349216684136693051591261333756829821631810889552975176112796445678584811363091287369232527471975044996704752219327054220663512557100527785007917972521967910769567678544436917385963974146043489096006832108250653133168624774606937149891036725230995373071704321804203510485789741755377558364304276767901823761871945365233655407396022295701087894846882772929629332954296876907621243303451642311060177234518979969725238074866185288228574586061562805656817709756018674269093263566934916857135418220300091817654256429345186546830690322696720860701781424824097163410159024954712773059411377891067134252313206175630009193287168421374898204806634188737315898529751305557770825002626090786312618739638270896586648858148728940254549202673091003400031254365346341671680586591663345362382557360811824800582688928495829247729278810092728480949174676345859326863965210631613218326418289294176375114978519794241516873412763162957588944581778723472444306567245854112270607481610429663575588120151386009202422787340641143773316691607097635458128190289762436157697065666428527239872646851917171668391133105570731904136685288767839748119155846851992023950608998208615071135329841749792575920596223771530974970344222768845980942089675042804085880687922902846886387496607949272004572432520870128068988586844280972260047451942058873001285163152343308039568046791078701630290361959777657709720052531943111784172649816343782135885094498666730453639862219816869698713300610557501928483113315051631860245336220337486996867328337311578938214406825725965823649372532731181438340115184138854587762821556841232059497970286885209131614797692276915315992834891682089450746174474519593693824588105314213157282545849201060497361716765573885278950136623424791617075527687325378645973450808072486691643299286511118552463689794566627680831314679355407987410844891375623552240922423570426643570286278056905076988738976426083496050892651704947335403466367756686371269706365486720902235163436849893708310639240665836577545582006448972001273783686530790335263425465907011853358524714764801591245601006622754365166901303378753223505966946476453319857908039847012882562037181326457512567039369935001680478344037502116369486949963788072964013688344219338554285881594053999406730657196751397309928134991153682524588039994181973525644673249148813798265874040350675264257526589733622620606264884511527649205989274085345235259173787498510956261705886432827967512641211026327039899795916129473879559882233416090788914081306392720261785491442041164602906006224855000470393889679191021371900498481418853040356074016890041972441658806973429988028764006824591695183591518559049783532659079871279995644142456476961400617167909104343788618762710660195304783435619175764666458168082731122754204868383380898967720053718279912842989759158956173810936238818813559475059572970455849093937373616727833464467272556056977665287306359191071815649430978068171279097456952679815212481799848474618991288479841094917873533013762327701045646222430020563451203462411755683294837383236998447007416127830122738625218629465845260176538392010278047053838193956183957043212512402132683087076514142407833869108103700039520869011080205305609250277953138119830950743438605395838388046806351883244973979014891409853969132471571564830127830011308424000584125168747424851079199847605803351125404760720106990261658733589767907804590182440741939452266746145480075385736302864771361644767453661483197978571145777662169877508793369819646634370367294174053253918997246638779613480718883399886581566466436646115749093232586479139963967327001059813115094101725260704603818060785801774641826785889273394904079060178513985515393809533683593036017027261948472781549743570951281922772233168731109303750856442858660888449106612109421614151358797773749397025620272170857826883474442317691587437318774873047218329747250006103332218534761063054512475857365145703637009058003811699920901568352182775324534616400683331959587594333094193962101873999827696255353320206957937441007906067911440836050480207894919888708875179470570003743899611978013589839655181532599470134138362750970731541807258809015515810649970452492482919151176502248403234550636087228023510694309332564366729677439088091471461431882912578862983172398768128987967708566553465371217086871481709418086209903723187112578111655644572319133338865577627162824836985582060639882305467641935382894828068476853910542975683935216965539091173474202878459041083346486163166185445602964274719103365595869123119105810180996463460543456586982005818496255973479973920917156049611863662476357438773097725031861038572395823576311282883838710530106175768914062616442117253155734065114987792340467765299401565080442444390231595212704593508736012790292364784289019717781877458779315840825507003728310297687009956846084908071554952024424402488460332399935765904746191934504822861354522824404614725623496315659865206702011541798392543903944637933314328787625666874067492741913041579750732597898186534457661966529860347785943004422064480092491056525714788006936039252599651110893592724269663623522734192668955982482473479282632350041670759701126279170323390115903166217552005413550806736840873578299540720536068126068451150350904942702698148005813060939701258718353190332934010079811615231355532992062068919047468191378689816391931597841044729889244058377198672464365506274367048304283702195483201612880845468870767516529907009455670583857987925664814610444407105318165509860635483743826113822429880804563536831632171644388897295325904571498298557061336422733131845585013128998178868594748745875941009209357795496109973598476584350533525841195151831780333746381234379614571416822603749296719018566756759751910842175059904387905843697217175860274810459966495868579449730376155840435115482268338569339520534342516715419848221295419761201099831498565949074647443139455152712502138505707911898055503572331537277762151333438222990282931224447871277307645253607805076420419074604806470917826565084034883489703585567868779718848989582170834622815821315648393346389205482579962945666003199416159947603459903284592893162993689898019633376337717568676047527689446444379737270120213029505491050920423837209884605078175154527098740941329162306174703454163531931792873238897117412137037388420128495507546837835428567500652735534945674254107670167389401096175160784434173637233212139433290614918358965619615284456108201863639528507244029171265820426818342834334962791661684620915166690430678344862984692667958635886137659861157729422090077919591825507728714754235470153602233728698290778382021651031872084659053678137300467094643333139470959325022358373486946390826365632812415398848044502140693292389698583062962855564630781394023651598381057863012572116951700527069851921035713772642278139192838354064923226117845486451389523680158870595841837481490714366269867461776968830028901570607312963928379750746593866257791062705869443380269111118775248662681647169968582949551984350831778762396206232638206125864526321390368268285454850403892191637721331388168730532509879515170107898871064601880256621343998399313851993743931516154606211108970684759721320745888482978122219679536399428214646345666218416043210037657611461903683398077991902027942389736392488711853051714050784344242155034539377227035934681276060974293705490136216319939158273361009613990553873919306649399825676176866606630801360075852849341353532845377314314360008451223501072039616647438612381457163903858315545854614160292624093651950809333939420522181082200574274471815232762715384695747552978753066019188614774065294102340824190367643008312401835935661622480854584936553016670362312009294950746449214281025700088726291711125759877128823519526279722195687983277255587034010283792363128962467317454545242234299896542088617018691182205846086979446296036027643027154447097575953197437299530495412082033725384642012084483763831948789979721267887746836721290081654479100903181533187959355846104109894066233378297148806509083241193226087780660108822151459295480867743682602535911300440553288873616731120043167049906061612033338773524167375589418841211941247052725563443791389643506917271078743180011294608854181528414496741148133565234575336175568327623953717605428776202048481273306731962157099872995326624207454009994005436218767914561163284749981483781455643882854724934506520894060675804737375995738579741259886275186762253208152064994557262798918892631776914343322871278210404981969768227533156946815363807293016727137271762517568167374544068897756517151660992811128132499871608189885039097814322376415211431539542367138863590741804478252255750678964167425849917851596175572462290601547909697418128980893049249528809841985557094038327929803939202552214218275910220686863729056483393454042741213005674375746933013454002020052979449288915229674783572229030261275595541070390188905153716768749892077905000056473223332885773441886909522410392751293267812462321941489015061730165793253678740290101989368438258260641555927693057320839200423055852691319830459195440144599012606031084044006807174290897106928410371368300617482126017791571683401174883721078869762639864290591972141261932862534071752326464012533481057415399324992836007564674511967464931663016597934730283049167371729022039714231738538426930603339640300379421944475681753836907397800466128269799153833407253545706905128009628769172920768746780870125120900116509794404897280420504342543608332594111705331096878578015057579455152269895796965212623317335373981689996775786628770270380943209922470640870601184167062381708272116919578011312264300057764746890209137291661305205906115650124364071730537216774936658284966938947965088091339919833856225495097782331549935890557323683644555742313836197935373076645450647127711282579751337972210077521366655134851688493787289026207137250315245476272392359257295029908673179120903003138306163611273469178411931267482105266366280360480835551214318856302687562839118076816399664446450001279609335470535001888975930034886076991697111771125501672216129882469629365773466653851129839784075750073055033646347955319883148389062987454894084744837540556898268465461381118846781127101611960797968457501653256375783497034818553673028721532200387122961389177632950865295744394953773582985683877030854947370725641507779691698028840510466345621136879479438009080718827638243325547939100689428094374058517873186960924271887081972562480866262349767292942447056446423106273873014980630233591803129168131779333038829063811174102836497508003980504201161777003885184593975935884758744603184643876179793133346566669047132177092533468663809434222784099548917148479914997205428235717066479667659137824455863728628020416446015125210519125620218177322299018288201279197123062096084634524841056955173022897410937969184602050817333785156284110008539515448042025517241178425047792781187267155207660443179672085551899905022318240125244504202276554212726885103281337168259740586796957948428032245762315942199128494734099829800905572700995331277105769869144814547363188390990132014999653640129407493050454072156911998496322835203846254629714297179716257800459889276706262791103601916230309735985771363863868398730873616451278555143124416171983703484422339369349180505601575499773060100572285772967171036937429659147281448476356217276494131714839694956745033180266336150835674538553801699200816166216785782820058666134483861961149946811291218797485447947474668169237423168277741086558053183145325315230376037056736189151022350208479412072380903574161245074635155114243755691479817058036191187613299283158338791390220234953045574609496816035066603027609126183038160099897263024583958831088880321708490121283429452761283619147732608801209293564130872258634713026500182994557148252040192160664632025979161138965892465763799683744676874029104952232986967067389760846523496731797929495719275674918047305542748413646124719841620838115442570613574796099321342493125167135748410521362640503926800986064401982584504601148087109677628999885532585153056246836974934801238979803531687439675048409683935247989613982340349020332279189202322370786968571752560903825968382867770345239298626280211143499120221600998349492270674847704656295546294563407851744643096505069255199993003267267082767938605922352336065460981986861740989736945915655363904563015883481041530439998970239313177758536720067686680597178548437446513892053446066800959139500659413705524396917630915554221746409577045638791491727187902385131606896354966429446511669534926545545821454479239818179064843019815018958147620295609089837333316363208935530746967107487366427012123050595755389425342547371415381310824497502034012585537265453851265408444130281667672066552840950943243334879116991899125558176727866038874364560179926575671899686712633455679099925727885380915692736545188373741179186441298859997299482024630179926365600554016655801577253093065307271832496469599560023698664537971149079285143066031425917691710505390898061870045814423319251945117102258954028980154073274012179668304475343407228190104885954713403800620520877920667934975299123587213067624907893541790134276022569265075360943556725464426019516655329852768593156027451093782676929388823844590065597214311453709156849958659085769209157281614443236118626897982285046506353915911773683053929117523162325514965185395321771073965621402172155196046853972147876615277107459009120961360907946026796645674156973619453280982073925050161519085902778891696743532836418411316112269333855126325628598242800574195825031401513922331325275235433758640987874508655597114156984740984528030253033837471256599249791236969708062145383413079749365279478123336110962085560678266926442263212647728075123207754684379960269352343975857572237938931066693540722951694974090278179684102044325769109275480324928617535812889043208678384294836338199069607260521909041343887896950299777329244368225202885103784116320849035051275075416742101605859099007711018397118813914791338706474460060267696710999277823617054382750639835459766525206045133973342889041325806180842300514817855354416547313714512975717953076176673661580981879191480901072305419930495825320833751583119620526063456347821302585159909506730569218488903523743566763473888568275086809210976274894990417650926127484048933482583853686732993817855478130536121748675247724736461358145337412716495072034232512089739489940682689487835339403867538860665137636170823768934554597050294049837931785098938170976218279110067912071567597638044942714446319884354649147823311363912298060824477607710032621439624042716182401662749928615567278854133200997180794655320589588591669011244121472244427610897626537868654653721031498766998645640618168250700749905042719915668648577435398166774904959508388888493701284419507988049565161100948087500164761044787917163345736051990575708688618514504952930716678347643632079323445692916842978698217518992402003342571653027731377629360570808630083698363644290629256599916771013064328933252541128820232507154708343668375762866693056117823362818102361551761577338014030556319910592116924315230123789424426544844299719622983314322306189338912231857138039115326638543909944660167556516593993400801495075568857995397334615757495751628550613320933027428927464125191264798510189730575862978598436115420506246630176813731136497235372352707637540857755463520260064452206348879006305827284485877096689253236437305607583954542443198863904427656202357697317553794179040675516076964801177567992594205136544929697951227261280999476981706666205424900590263695400093737069338157607630122755015544032835169579983269904205505420882775040843523973261510271689445108903209860743702676511076855309664275836709352840062809882299484233509044116416036816610108549913231523703430438028486721903271394068739560956861257307884395567131408271715807272973863277312386107707498921555958393112796103599612976555903809229078406563254739291275030990475418945539691210124710090697135383129182012465738825083163113178801339901341829713139485338484251699705666527661570017061007619354082520232428482086495756034700329554590682422575570865533079863568915327502206569930783809720525774610438425352190073153269369390730488753612762478900622627148832471591497907438505900172913580061535508534641383331762327494177804628341497602865835736852622737881791160857449369706161286490275875082037604462511321048777225704585332604169511832546108200283692918941938651539765444442238056372414265801134394072286939297340958471577453925937372686733904763771212816658121183093353570796820683556475213776661768866831968051258523097852759645328654432655687133977092185059494862052185799213383029484280806389538059147283269539761275834374933490074057778935529013682807207215984252962648428242221452234699339049271837161709329175302137392638091868818252304496758333187384503938899701663201658034808932598336796132852281515659629457994160485134226093525650069471402894529704690046649434818478697333115639444458643863252405241959684736724935321979070520556184003574221631031817805008967595774818124794505708828126356508187551742832731114632142403668210687916282314179806510848678882107194220442348184629318838682382835643344991249032901602659122984270446882754087629442181771325772877597621583726808835210777701294404469115170099842049817793407412782906203404402303722726891543322845604695812460557075351737699779355078341132960535011322549184363235706446251914325536402637066869391138823896035672069411055906728773290679989007889295154127491477589471067746110999417633998785199698631442969955015841921905514824397471162012724549884645833983130711608250809799961093328201425634620129334324118580600868792729488385795684960052411751820823439859984950386966176981645962325210065893150989009050470667772546414451114363565004839448996199958789573711627262723037249759894378006257375823205838390144977472695006131361395136217489402371435607298321543790675904257758932419938484751735153541848443219520535675059655519474082790524743006938485961704504395378204728232709770454523377777586161902307854919869387849903189119358391823156957306747795583962174201546149874957110540101981748473854217040365752693334946567477946442299692339215392136967663904715083910651611440017224120052027221123654929744198020094441158411754159549961899771864615615468212899814149469802963189781229466766299419415809662257249354921521830725378455614844890753037004602240817828726190564705071408624446006720656444931129315060063191115602776830317587301663736072833441570840037827675387912830221263658411772967277040552309984422001165507229718450763523821730098774061612506861818763491527490417911340489400521275992828471553399520494203050794928112605047974625156783601511921775680520198762421530793191876822934030245315811317932307376756034739500566580845193987917871333846334060377539111670952161410116324856502857275734184999736076632359157629908106703400219951011435460603097080502182895686065905991800138443946981626552423743166243108168983108340556691544818461002589360664367999811312802705698587698186955501295691318820195225561676386817175586771159740926614849962442741412029356392296857484949771482647375762487054990806439200878641598741002963285332278029522096037152953527092053871189835745398565629547161719347236767580597970459755918858407819521110587483359125173772953788357383236384071190213301195331523892783610032718924376791297689800561142659246033092577681011351575545684899068980651012703917367924871897487635964280173899293297496768319455661576325638561902788742685098802873868227574539324615625297464524813453252092245018860263198917397403299133390220182212757487834283568880031244449593397546544254529968643897046437152807367520049988001427948732168844464642469872818614009606389746189135430048313385313367675588913677676120178340007641259904544678994581621365827288048022455691378598952193663697177260667225452052106761488948978467016430649148135549090460696336380846570652383864310462373761884423323701056766229381462488861508339806144195052845139265503643979583428528072586645943380121776729398510203346232270790932476332661058460753315705432221613082056140510758714267767859951051938483656128480974093588368998599226415312211870871155181781448271626497673128945704749016642659951161884088689693634747199782017362261019391135789842054922136765529809264333464368615908828280394604618713623751393158502127384675980420573649173136497263284915379686533713041818266433542425540727090660898411585069876564244987253891175844511359513095407768671716673236577993757891531521900893426502741141777590041105563351662905538528045729400593800071636483554206550476437895509931991001582844952485487369614098107647129433015765065997616277409668319556489536785578552121776061275593429638117564192613224291854747624092315128819918256219368951539831244402685020718490601334807459264166573862707236460729972753296169818811464084890162867810796080380416643608901798507321282896419510411368488168880315377127567608617746298569852466732127313654600220090029765163592178164963547554589371816197577678724612345041120598547047258233271958570778719437007331782593150817908804585328845563365338324618565869950341443770503206422627266611085978723138942991718769613677160663118525118709958181283651181701194023999500970799582388180975498623664449695566282099800222229777958156429482031963218710797324992634160511909423788959138582030474107853926050427625081887680965151885866474584437291682586314809555423874882903288460919704525821171799614125720292206053857509246858641922290750288987854335137206419870911413407553151605068594787548168356855580995662767139095283695785997381608996734894218481380143899339753280737211831495154232469040616750512130200971721074421089891488507806212016881016098331032496547510587727497584740557626919012259375422062382264631428225742623424081116703347869266782750566758424145438126288306738147177547938603784688395251750515588873043783321375199549578064650328167155750114804143104847984814473092931100968124195024308326943397999883016935412636013796383231886952408388836660561886520681599388955130825671612700147047283799717471292837716752593544460600385275855698143410649800236335804232208981980464839226951913583625523469960400840076356670272106265698633711309467222197691714971057311933326626562218164262724503046318778176388948360094062677717944125751800703132699610440196603701072557726485981035750712595903752763089100016863883425921553346279094650607588679596938715677989495359831689959227385692045487154279276250921619910116065011961910807252742427452572458743032614824144721381459920347630766266821117091772907508571341535070668503886771300992744632138389041596601854914874842633462144403260362441762050457935284133999425527194624930187644830887050304965377520000935468597285085708063093830644563470120189001133437822278537786143877901256506239813452444749772569187695662533986865779495832272735773407852660740885132622931639252966425419608341483286751652333149940301414610919834554899997286814385025289936642422183360766585992270815566299448811576528090786271392945367249566250092360801761799731335619333930659156648506888692960923157325664744156608257179434180540241933559402375895222630222093336080959994154765559013423167508106516658286887804670863169211281370949989525975946440595291434920881815030570491784612035173829007773861182087579985702314457073958270920699523519201206200040212546565950132312530280788968319643524431060264003911222133294683582275990633285722809895938301984398264814563329122494045754622616080583764987195276131887873525368118050968765411462182187509350260820721127978432382178544371964056651568671101547871594018521952221790729548677823381836171660802931894695942671139508984176571503328940807548801520227366255373937961188488093822645641248790022636429277796213517360334680791306071200471875194850156834671306920590133287413509399451248126916696252138907809440066460277229619480443074955974382198472212344147906205174541005488105308604738510551932086940151403436779439877123336023975219646689378072894904222425717805082619199312741795414066869219777881242860757656622661139089665074891435142571612898893382849514337349689558360402249962817246232307686444604861201612408517463651848313676822584878609865702628587294199071757996782692763191150596762066295188169973261040835749776803129187159274857288091570590656369566414001776945907085063420841051266229764445278892727632975564082855697852406689591839636175642729968713700715067564409443960880271990643156826744036768642312005505679413498215945838545490261806158733322207368577490418343607129779754587508340966742058944962678190095242624287039126138670576880919429860964358495195455042654616435313632257831020839942076035190957925897009965574594131243966904275736482525655482246671211249231204520278014702407130048819422377700775443357055951840389042353068999583155433846551802306754341340087760817492499754389266020325589703282843284753536748268746355214108773016989422219665833543540412987816723951506147802387236129542333719090129080842210075824431364267611672550335057550242299707000930303542468719450633334854592289794062066046226666292266086952931363898993164127535438179164862129065472128173077033240111775769961514151478180693522324839872923870703202349363115681635184836833686282731896635773212767464650846273121210726040564667182961659163917826341553154960475098113968267041403625927023628902718666187157086356325844662103975322211225993896652507417598498929266762534414112097138505603285423293959165534971409126730133189229608090945599728135669715587043958979126959502354040694564085312685048608595078580408057884135504645331049416978042472612919101663322362102728803724545603218631971772636023002348896606595195465952399819163744895895871097220678780027703096745992404663010672205297546487153904327388820557793793983196531823083114727572121125995218573248647898416266815591771673704424113908294369845864231044315864423916926925461713420083243626746763433087368534506341258512482887539847898189526517423866134314844882832421760826418640661352842439884468572789113775778812358013444416290281157953577787560343668194717808753407461994857063902979117734365197064399193485367787744088570749904188046744089833923325956221092067258665999706927889766478860956273944939811037096993673375987915377099452620906926837003781881421892913100973685487684678818255256235156499448347399459130451013222148460040306578144594544421033727750961406369020806982078603935999377050577301276509923248943470795764366279088736289500716599490546995058182137220101043278486599184335736534501591521456620934038433979473857926191461101900065705659835349819776472750129050283453381460340694194579148145986870164386499920563652075114162013303123531702789015731239004114317531011450627643466176151817882508555754539847204174257285830072081738428128370875355554697606120747452717613129909817913468878346645749703695533306682924720905007046018705577908603142586980031201961494923094439901850857251720090176841816681580052191520617219044230698654284616559942608028409415916190686538824263723471185935667845362966131412878587971171572892807591639976301919664235216866726434212039650830577628753013906205295971644366607567007170545399528762615568222772779717050346118846031698302765149204374008360778558006149254130929219208888420089961544932569442238487071268292391393940318955486755038138961459868898803203136244723549220842413724182126493214200631579364797174554461615084718346192203452114124950580301473357334330434656534047539268399772647574373742451624650680831770812006828198613071724280480807923733806666623807098661635174580395584735539368289459104281052412229476918680169187237871648303887709181636877402534170191405950566869603933339585501875810544311301627618118025268547604179257052186291248864416544854791832020288833331604711264767734803077854731081107257836192834840081838422132980127522756736218341030897252458339831865454191836044508422731858581927300304900516498632723650132369235213126139096128699488887107743012987210237854445008179569933630982422335344012467066321951163756592826148917843591272275678780626220847968673291504203404329354145098274324276112460746944088257677782265334490862642673493643315495470301774033533272704301651381253315743703930957629722587197841489114178377648191188244740279824612889355840576727991811709191824468688780773866205033107946190389773340066090444238167140252345173409571745998216796063772035077573149758452057378250252796681781245245457992810208970427700355300993720102023617062183260384305282643532536374688499805112918463124365830508158300116857654070788829566828816500811876281642448503533382929029151824228057947856179602414241494406119845028103310347902062931409552013556598305757391050176028986393114326149784638665946096357374919221475891495521211307480310200271623350696447150624466720679854715462965993641413471468923281126395526344313610929187308297510913656793850130735294252646405647591043227593773204475064067773724930946733465766842647773606245224825922101783300499820401898006849637073898832401390047103351128614083978973802112764332130582941153786848596806082991190646973454518948009968647250311287229106427187321053423815431100152020304289955208889798963629323215027802949751618772506300461604653813353809063134140546421973951730353574433554478440597757283834636386015625877705822044565955190709426924605972654822962790584988687081424605923418252255157202888667290462427386021104211971567551632700900079535006586243890713926194294116274191560480835760362596008723831987879193908906721760767125869060363635181441108141098328926616115617201057985245358697816161100327064271892415917851956907814604311924390543568071223856228214667633131962425860120987708673368810849846397963396581702258304045012583404353518977882363359347723609489078549253579057969616053910036880963840135176279688021070146649938042935757089563758716001853480564865844428241700911196595891803753327826968386251343284460500922534703541081567034489289731999424794207123180928047226453989459595450184667294464340638803257343108511968070467560850897117789660134370993217942993725287782820904416544324338909192909565839268022672064395937947708758732816009815984471431222252758264567076421062849107120717602834297311436123882702782324222750835055421283727797053896196873395907273082926701249917571770237309049946854621898979776507507704735999672711056463002427568794769473831737557480140104430198107824517227342774001947090676766250971665795178058963580687416139002466153697143489103087335170269277925079334218734412627112856756130013846636368714468483296344884407148156483498485130678697366746351532381667824158745632281614509988804811502529469090770903656877034317281757590435146164650853631394962636408362669868105553633908409857176785910885707383144040649916883684842397722670881729319187741712760243106192367273264272866886525623962086854876275016174476044073961637982889077889091344573970491331914895281983232446507205658155127895082657817174350372281859338782259544569572797283802237700243748519814597638322748355214097414793234076110273066725404021304806262374071095946161361013167800556049812462622565422844488950376604370973252409308965876179578148457018720355283851992289529674879623126444207891845128362420051246471606412484988409346608428974168813720277256571614738443510861175374429211051455232320490964626447298918373161808736588239219787772264417689269785674764055281377889414786030487264928678354265455301521463304103048302204945297850965166695913109848065863878996481861906679631992322426614280604513959909809850634218110230034045806162200661991975721709540126426464515766942547885535295848462168912043751125634743684739526685293896160612889696800912494242889346968839191979789301693041167107633247206829434646341741598065594067821459271089370190044158388804777206549149474142853453958555545468049872843289956250871257714967278112677181574568463964966620975873714591424027855793740166694466866147479895810768524962960313939698776120489551906075773639009707422275742874939913094279269691724962967491373667503507234090425425622908871793545216555782560830544530000289241525341944218624499962718163335652477856488199512195866571422841293210340456774141054381552656754783462528010530956057754041311641449460494378796730203307368232519363776465399777805940129825011871292655071865204532831747754227875540724447360148475486697441126405673493392899648299198362972731911008470539798955733683812851218194490523461626427700689757181873037801932308129266747702360924386687639079982608896022720182043747486594323476141418512889538930849216000672434562986696860341480063220756913022247616776992024047377937365837934328000164951372129955912549670743727330534983671582262594921209927820264560824274902384730527919648885367063510119268263430560313559139346426171220899940464303135449299046740705380694449189539494079706390406501630226017012346527471424886049098978886434545244597852948964751912103202189139229663985249459858112440674946019312293013793695753486442050625651996883694733865715553732486589499836813922953842179164634034619101329883545257873398299588544359659552542565976520582009587943785942206647721649235496861946780408057765503758330930532241092707239937864789806381433046227156124807946103599538538094673386180616187492948996830441745942384744012312085650011381379747116475995714551905076124233025441675471738010238025268328408427177247336759712190808420298217400381072449829083962512789884324941383581940514893343179625015259706515601450665623878768864284647220116796270391877652519220678064384055467507191322858174749532082794263816222271889712095090114204693512580782866672903915382179828704343742621069707866548408197677458143042643336808832750762987026929172798356710324352608222145638505970090900901870691790223258620440607377466140453527605882155921818715280085906430459086033969519772217126822532419989501826129168277221777026535900705057924145284160499773740006577160331369345805434052011202513500126665802580611457342452221204044173560443158194208160427073340498184514320955795480063153401087780271707140222752113044029501015492176515023485430142059545947221003779412107479015703992632529285401579224861956212719786799155489686736208488644636591084806795167100486495309715426216852399873398436068556244582528619135466199786368176228555144470511266550523922521755334125731544821704359764829829890691016129122866779157128571213028197266650098792930895448995181108289967634272890633332576616493868139322587393665245434327279035343544899994007266293120875837971931806824201660233555236778910644367143347254191398348496716863898923260373190587378939182362165105393908409892909908554375949071725632205318761316651399447009847994420326081583772956845902336255351340895475828794134350747324882047965284309254254904600599358298138512708172168864023565339526235274646657230206585632616940533933447600495356604163992997369395847731555340029478826836847043724656874318558302811489434848200196579956616648885990757774608483911589498692118137607472084955892654505862522627486419480165090873712140046054201763279403437808048638434386654364529232651727156286423191744100275633325898219175836149519743781177514612540535630510381129514863678273051436212970278632544129553787043902399233566383397203762095353454937268025462412896108494383797404564269959945129228995437587942135447115118894407904147497260041723319076683215667617618284097088531483605444321555989137834985982826871161850613809793853065425143927249162073312984207308285212280885990633464309832231315960049974057608765551454216318066703968873699997505355322846253402968733228680634467567905175054708875617504678238190700406057731576571087656498134227433469839697442187021169273566861063806049107029652416601984981511551816506799612674543960888960185711002003179470635058404295391170553295948888413485279921492168961471674943636031744834616081983855051130565845027407410244901645127425894545760781145272719049411005517846325208877874314204160395995457263676481432281826932474301025449088717675825175883155733015772661734157374268219097089040168758062855315088816113923969900806695222720619262858382361366183798743034272111900471009366035444416418996682027496580014145389290483904146776090520448373679757813733918035194453850591705986872663145000115639875295669428573663840858574287964623035638960982343101477845538905367566816103821682709851008173341322272723067004072665369990214702291738483420854321902414383606932676727773236664171755439353010732181092922733229145713793033981814112037726479547869510993065388087507801921839810085059038484804512013278285806998408902900041521561453220885371794736067347139998596788580949396411680554896641386574571522640175851824762600727771138738723066284089253857622676245863345218908914425021907276121990650725972733887467967514856668107546972717283363656975366456707815105801508073540841019384831960447918544868779181263167304730292544357356241716868079578486009832687764338254238313085239034035206388605957168646986712752026032181681545947335176430213545047612187671855536136346181936221353408780587208209358735920559280265170320796372308000869782051769511993804197762285438384508036666509938021251950741503320754605736310484773569047665251612486793493236671285539965313288935237817660042536912788365880607869157803066500700426697218543360415357919126584795648575297924740347807124813218633598872792020732222163043702991142711473177448605097574235092482191401599827022070849860535980371520374465025578344506571155304953850400345908470859460793978008764101392424303301111005738163241200098754037502002877528473827081921364275440065187522815614460737765648172480886500762075745044103480028794602403196796434087074335471956272287413825781557913464430463406380507399469077927454316488544123842400567034597799659883388529530190542462672830657848817145261101687258633122052938176142070987896394966789162104779423802700341563709619659212001784898842426123762300832790725147507089612883690738806061390564708446672170865648142826652421335780997183267441102964866957958597897139794836396034881444401652262127013646644157774537011526907321890501993344042736382566110664258495880562059563188351620838409010016999739147359577413048596585025673814845973167813689048345789312332954445367958151803501592572338961684150213340983079154501462029558772270839936543242999502278966883512621276411587625892233780079295936332969611484830914461552278880746259393683710002836619882552734442244692814097334167704771925356859447057918949383969863232895396500766363970106407435980992155192306146476511003747177038046385122551813036100608384434302784011716632368307004218147522907413921751284564850470979781376967245599676327982173115320142912555522215359490204676906113045670375427534503287040188698614067770181441806770656512787956589151492895833990446356756920747290756557066852012800192573168763190651180055260719170284122729589002676137216836521064886643503340000667542051589518945068240444910065878676941393848760106148414157146170249514048586672524261239850709755835523801242506282760457118906171012255108724350567995462635296400884262321865826107584811130429386988229976914409903415222385397496945339096974131681571600744620872454694581656649774796028797452561001386921436427145139357729596214212973288803774710411973031896198818066650939691024906706039793098629399695199878133648867179408026120121480411246600018038232229067639867277090341336264900763156084711701864775245023208283329103024949285255050322863535095038807144850821514298904540738243893713738464813574081439321015507819880456591859447588710867908493574596849232658424782706846256762845366288317513800686736776886454688465945712091594840117862176146787610551542682872367038419224049978778770224179515517334519972706979194097719560106854040741135437968619511494702363965679997888906775939426098988476524763421326149332158430907651450479703909713186233719021161936758593400071353753644809008508432695140818159499788234036091382367452997268143962941722639267887304162827613997417527586354387435286943722682305542262254603302990597279783904001237712486893719331136806411378572071333244804380155685328371036693872019343369316693927223197087852229244024862996757480815306786650201875819951125932298024370917166558581379958295041693066859101078167904225806669884112203790883439938300411456536699526003701287925054285642693763356308773103382917431900010386987459776585380987137283811235572192194814888694411851934069643177860297310447527177288302655171663115387146124600883067675417966425717384622483239155217722752609354943550773153065147595912922322971891431599991376356767529498254718233662284436406921498855149639789332334299567787587702496108537059115581292348438877651125058948464142272195789272928494793817912148717201228473273230912938353702413793318624129628941319202942649469785433664559803377166886316945999123774589390013198544179812036453820964305093112328770873638678892856270025936881108130043884059997780491860083674850276966395344480056973864016688437942823006887336701994496749019296042136516115810418069976711827115820603645360279959334888107549751269232600373528836676758193379811478754827612837497675825283951498760502045940171180742023198292148132755501759954615904998910734106555419378234891788998788462025168243305842683483758784991661822628603806033050534354445349924198220906778891191508545413640403774562560952339782919180238697276828638090944602279128271894671098629426811227026025831393832092032374421392361988465536225862731111710291919585850126887094941867399918262064687201038802662578367952612936104434963811075415869693851940984605888720915289416650282755337562271023623289437972084173877564086282848554969450859118259765530957099073457354767292513102925707877474861290330804748033088549372438256183219884404560630762268172033606423759834596965457912839767194092189273104369564754222503577829025784651282188249881224731996285171243843882809091744397190749530880196152083008055945364646725941812639841856166158469388936601738995517439186331452491620954214346004114509375676553314810157868996623466470933561744414114969732244932358113270918013976533870851273957336689386518562478583686153139796516268633714388162429745678868297536492109436228427866389847181141497713747870279681767959453255169781413329520252905975331466188377755598446694668833125950196800688923221597556838970960535519817712546212374053788875303901144143532938675416202213009724254793120429700492566368028371166410962088299430874045857501493525506595604639360066043926056050952857559942029306924598446417271129006069467666418804770102319471355763317450362224754166785605539198915362741528894971680492365177902529592186247309090327979935941943163426247419334089503774007327794755935966316757682628943438084244781222152417524432274363036619826779925051253836091009991068499469738613304647142051135162269007553061288490631931261757499424910726241667505108950768970336136297106137293778776604854783384486033937793791165775008752280412651963154297167802348375704295763269390114688966814753899667451622186812582480168993781708078427800855755959337633936313708777823876651807415257318933321459581875456460046541678519342913210938583522247086930290926119359929156246345254217682924475881737424045610157861519284289500080044019337370347190557788573224749840304251220049704046920377331776681683323591553055372099337910196120658178746067330750132360496043354565927044334054117455326602508265269084899822180618029232765161655980318435584878552476275655932607026009992199622517787363382269344992236362958093638334126583749939016283084206208154844999886152844943446293582093628515331832888961402053915334711468220863464498859547206265795557377680258705819542236681747384980389659193817373154923051758573751912605208405554117017417888285814396279965194818191039611365657562166401721386122394563977705248267426836164462918548833376172240369659411143581435488823961779404935713305320679252328443682972524546481814966808190889288279777104068089801356579763313603650024507535527991335069819104468787235962466278292734656005080199645729496697496365763855089288507510917381889436307451067281684097039915393995705413693397780817910718733602888911719022741621101547426692730958571713963286409910664032278777009617659286789297003589869043656856687413608751763436980508261291027175907626386722819516853240997548106670414679309689940244529167330231584774392911412379030728155087303019736025732213552441114853800469769388374242308735262620010780109931830798325987669442164342292345648476777100054376471441470823525179372783554031617000822339751494636201771139039588188170060273592702772825363237175216328487571480170260148474428510924450854317902410540814436727324042313038963990569670329530045757217934586191650298636645573969202692425900043007852596916495972320606544974858834313752364073393342674015087550389320064095364065362125144943580009797255572821238948550283826361847055657888416475857689707841015793065815237123539373796543891057705966520965614516317917736337566815029640344534262383026297399717561996617361041827670258313638590092355480819734752117410586133510368131251184949722642054990104514179676189814947025306851126122381602893378969586737178825065195590813218471381105400631842332451197978347999339673465515027241020214816422055212418696033703537435427657661166284467630594137309909538579645574314202376418572026974174213065027487874993868823892212765586592774169267114591601200423263751179894733875319761238946020541497235130506773508874117097956157515631647164455141983573716330458240146217312416139283897732299934283954718454659422944612425252423768155825019911444743979478054633575173921732547076034792940606243926231073201927241003039779250579744413559650077013110252834756996176517670076720750948385420555235266072728491853809334667859179442332473825406365206478545408997486203330107245879552816905280579596818797092081398411290596725209234505723162632022323432620467570417770360723018013006451228127769726493779578569848007601919956468332724709592846863872578640400086142376007097456744056299824188483965267191205606695968539029152297463671904754664290381903902060786595261665347519650892291308793450150134273124224898633655076536353251917045977349501132718064103093845288454666986600934954703415844709740801555855153386646076129177636234403655808676354025337230215537595927313614692058143758255430627550728947008428549618321251808037305636146194276346038962014162746407008050169747440263968526348783800971692336274849923712829177466593881783291705679362205029054349282681553102125135846356046808036223302115577875544872662830929045166449133278436626208444747834168795506155838452746534387431104864063499571171048338441480403005964222567858043853934821976664368788586386369112749671377928181918089279570767220572522652661301460532385538558405042277882144226287717771792216183534625936923386006948223761649871928586083926823430466125507947651594349269244327321566239536178861328184298805074028122294769056232028552890669488085663806893868762908820772622961140652747184965783137951328559003116158755570661430865086297191725576394494172656414708496292978163826873072556018706831333996691505323256027230413616497521234164140520365765101535235765686280644436830195192748858641219857881902008798337630552596626346093708649687253794978561367902455979925058935893164207410659850910686304172213410731074154624647949754938518974785315233402115361164048560014255774969977473586011714108870901253807250648067234313751873005963709114779785912858293284376175706978407205688549503792294275129871187468326443462185606482806926045560803598368560563164842981503522284824485225594630317137691233886219222627231974134910026039585836205745004697160996212962394084619975076598781857559246494946789803633332795242209379297140209941664074037446296233567000160997274867718699693738090081824278998635512807841876530301375473816458027174939029777532369563839211191599654105812288153680904825548962906858145550165575168210255259137586777207036298238872404664332452463858436275321074543238319370791893380538711250043280805384172216286059405221672567705244873663929390542255933244663891888022891885855169473542771889985253861630191348500324107569204873325286233445925410312092030948967981155490181556432131535449812208734385614235138897707287769806080936513347629700254836982456547595556866577658767972120234944667114261319770950511026362556056218234348993306431481566194578454603558951099003285095063610991367339216163304334949166306500627763065567092453042802599053266987581302156269915214816825033611042248983345091375983283127011896919892525124886066767099684632343811328074427527628200674171270275400397259012724703060056907810947417988132024096395043437162706158257875814472208313038443563921269954943321872057947035928504115209665737655005882083940762571951034629252995568517013671701464137577734863097257880027831133441671318024650721098176788606411328153825077670358326205146500439727681964831786089864276692225474580757590952221577272240393562195866143060994656032599780628695610332299766623671819579465441679561412455962351493412933004330629639825227609088584743292804551500003353057587773518883832926225837375760636543165023311845385722044053098322892567804038954877719599574479807548805022240518331829322694518333718505036492806627558537610805697221990598170844733197472432681115258833481414966365050375272546128415877523612360934418516067741249489164783678077024440695154261024551984396876037608387084948052688962465106992904188457042825347729515439757863293500994112031089723865599849187109336446423558803244632304971097362191080462322813168798287398784140468739049111727787607443291899434487596258748086197554491810728119775352382970262802524431123246823846190856887224370788804319492266025585642320248123897878178402209563951483461935821567969272260422065836869393611779292140665826059763566344526732457712997715281892138395158870595172968020499451323983268202646225594228366370291778648451600390144134611110614948226767696298081471561074800468398487009284191821264060637967880848007993264768009987438083282361962995798741887213016214840487845735136333589072018502213368377750135635372004073674564167108032205565410298822559805231718646364818227090043502859237179605278151017930638322531850068212365134211974605745556802777884202457812073699188447828990400929350075817575148459251612452637685100285473826615284530450712349904665052421854224944061900570720161203535537613111613142898297442841780358870510060184166799914166290633443191506888137057957503521523279643634557362369895979620928628415763896382593885136939698300032750584576068679450457690451860777241390524983840176310903142304306029848609152552040149398350447886148242822170302331524870551154625683778347393371787682387467824869864307523342967521435153087382213072540229682556030507436262461495988477792233675817660344159527900656274894550795206925458682285260854656027093241401296969253300301166989382055305285182013818622334904436511603342722036279550134908686617777853005146511195376520434602375163628581694229379395409803260737506890953885402821536993402914927433937689515780194783461268571672187708412285107920643730523911632753134628509252065832700657226011777348611197786845961238574013217895372144348526863274202274920453550565953601981586082093061267689790396991866535301634335079875596292260097735523901573832998861927470354315311047126182848182713174988137364268386685953647549734289564319019571091995562482021806373390043841802756097409335370944601007549097746876189641631147068517097775331862577320090257534664230699851508851435676496407142504515494167447612031286596165929445456603434872393634372470082750130823530770939463775304199211853546027360144920415966678112967193791689903117291128130346847079580154452090513887655266221702656597311248592277077762197868260640198834654742230695607193393948005352361223446889478309980094917219817526343632141160652045469535617139553198859642855684625391877047262292610417272291277172255209954240050559363940878392394653270993009985811983910069789226369637811295999206572322336130683618271087062627178295578258062123248259044359697287590693551860918988539228282010376666011529437552902994943806911776636962597811605184863767554359680956355835578738784637669649350835084344335071782650968855455592393260649399294506703077604895713140724457420673188235514869227217540744160435716600050151551634845164512419851445428569943479423819932120614661808884983936468856816157681155024469252956751639968211703438740064762627076727947066325451654817392534962219090815734219277922561297471612311340552217964425797803805691438966565656313980944281261460295123508979968779500341073089433032520771758347873504953054270120754882137253873819587359519216271495832679870804518522949105649941170888732834194556438480964351885100585377230585703830976351826558553982893466094847157836223115889855187542019417641564355902713002949393757341640437931340979384692062063159506492553594224893539330089959277985075504768345333128052149733378531651069059618550871009725779125291051807043654028210323827105190208245969668105083348008372239013363401195679083684453286019158017159136024006605389586449033169618771822096090599100281711732047928476160915420705819349963281726128106178403884132906809735283081941455445921341846025129325762185110169597357737610310400494889708555822293279366185301076580622220564553543130739983335219847328538446123306566109699664499986097946760405180365467024736965077175069880920900421219287153627755955174939452953231198799157141350210304087740074266466342614595113968623226656689992189750913764714074101760496343348978827532690751940068272393688452603326685929905985838349354127611701236837362696230199211610751820007420355561181578946623472955381608406085580896261156427797416369301917899110776865354968267715672572137394480541671993328428435335301810696281044791906469955556697781004822389576922863341491261821587468127844366234347935631501110259459918654849778544659118890233351196702841707069562688732275175990697073113288716872101550471173726696088505064164692897322521165936168776124824422183941623926867122669910133481397029457667302608655335969301704496888060836844391668469067657684598084968879105721938903340676110347971283803152331511600638120913805339211677370207443386235387349448966257259735903426737198683478732074132988884273823341768571022297938876062458099730284105805682838134387396738870621296408702458389760808470843943457528151053216757438238187084576763229560450371365167866220903355201703525123451300225802084625414413324006873794638760695297162793708521302013093814272238944548133170244618332572450626938623632496962205409541833243204489900675516712246762011540945924687266521750803086566095123346648209592618467213793859069459930626394041656547855804722213338864304885364780816443780037822497109527146440412198617201325292744273819400286550607697811118652708146679579999793228863979298906867823482814494652066251622315562387154562313437439781002669554027813249100723676486761063360815587557998863118291364406089225351105741429502471566467584906341593553877077252054699648347945065600198336888994901819984585807052890281467155588899434706344673777648799811867757424307474270104915555191849782778258091511489912998201331542495489813704820731001320598065761069448703073998961254860942513746264529671724471414180413720403213128632643100823529096805694687645400065139940568190931731667816412924810423915673310230603775305931150512866241365466674122280510563820331648870017364237143644122180771210986510566105394484251203703890803707236831489829725349216723708910216573226984951105444724009474455736535302186098764464656203971740361614236469727055858638385854131951633324049456790687394238086645779570922406399438866072143268066283265875693260837915464181621337219634391491876053278075248418645007249237503066275711314183591572850714974927277751460349711950105895616359204410224544720108166147454681336204712483576709479441665984753291025450910221161950058240981184652817330883124071300650005341058461763261645796638416512536132363993523189275998774086149576622825563709583680205230102531262559403077269545243001525411881999614943977452804655275441294742363747937447097262387558639880188564937631491755140289538241565228294155595676201230386071434366646362228283279204975594027860334651702257219379171430330526130612309519492530514116051967283381016322401926236210385436381528810304881702758202906396566626200595335677175601783212787429193492165198831499110181487792349212522099047290701733342214601521226533904754805704022318299057971391834210253232333871356737573881128523177034615306681194124249206733509586790517888167588950204389414941376753137479887220504977709635849650389011242482978995279092241232813989116437523669163656101299151501214134742659088741328294852877901852520863176747868041718742293195383729097521011259533884974084229435727124482531875775666715126392230238395464023582138733667207464425274802265597334179205830784513562869086686157182943343788260048969626324440028313436913694556817651150674571414346919263256450945530803119009263146033004220078016937084840455474669531987725186560899406058227986165118789206647225054748483898718478191937035890746486891680169268512356639666743391330783698477036018551947082121280053008622476609364888628457512140494064933084413200429023565920110676160839376131179896916376570494740787686219228234341606183143193246601878955368118864050826871484553714752826312373241144721329066309955328651460302563135870212477065155288410956512630037948066149426813778374676280168327688149214157688000279029314161373181730914799889390494830207006358237142722274545669077784623616605736373336708010256521658473074502191148708969850208330697999868059853949868521149210143239798103404967204856918731076037194878954637050367456061315721646219380434336440859413909739041174221498196581337541596099754624718308721990046158285377094261494577659699001617619880800708452705673811149284622458274419167724148560085304668866496288811423897674732030827282534296932879688993141450084510613115278390093486270678793284824069244678777677553832198857428397774838997429470412413799154152106202517563512001313203199687464408009927656645486165800683815882661966534844472670217188946400087358998520010683772789510371016243038959790127916394535548652940556580962384239451671821286029137816808165270818947065887946630361212251664767835642921769315976861019805812807903325707111291923234043517800072522949372526646749351449875046022079778157143675492322731327248710100878554496032647670741335419614551231712114274033239835513262556531144379546027281483308167426761983341717360961794356177163171526246041764351942533184713940243347169946199374066324968321208898337914070652004620059407556742105631169736263704931903772205058422819815963333326103700049933345069925250244684370015481149851153266524501016654362942475959399168756933902336334302608726991673184452557614089512554398235754664177423154697098142048216470177258696879795324582263777826765448291153926424163765883653378406499447157235135765822407994534728689971069577935720340702425849887756324077854380013052278704404184915619338663206323052728945543797529993839696593309883781343466806717980849458074678586380927256474718192126372870824910651499818885283458394129557708950914825693013604363384260651499663330390181701355042434017415367417095790436522937817597912591233422225865664548827223004483577164846409646258802947381180098402556934840054703029364369075611028711379290708465920716880264518759382183032317881166912636906231113412531237945461793664944328958025828489900908882334566949907431629791800631379602116120909505836712715150179805591976726211870464829072933204601344697201718798668077556858693943821825467283179929582552432691572513398369712484223095378030420969189252192816480659220241553669498315741347975153794459872867009325171855886594364841700179931370113246350489925215978344652966220610132602792840308653894960319799114966663273688565310056680797697746997869857047344849557112542620347095320927927009484650481859825937338903454959837813572792714645284981947486263028679095642162547022131724356247305289855381312307505406243484583396319391325559213819386716403197068159357989297854233781549535707783665590499007626574135847200230413640957025089593678257055707168780876088690428641057931091716400846363344354956449363261127983514427930215115611632976087766493372174032185810336767813439253921969528254124242686544436594795760800792871313703524105479105593608650012267905136867790705968002017955231224145145584212816437882947893556676207071678942738624908589838982763804939934521674942428641655295875657745822217701286004203503632905394007590138592373561850503988864647441159277028840713669613957587423797889198273828478301876534436903569802704456107063320972674044942341296054159998435108361977934431610623503387571173439348861974482613248551514158193077666895044317481431389176567469367672275379531126994257485023530230206609208147730860775762301989662077581650906271119948648529477893283807509014709284246367630461424566351759042581061665117819106347317995812834384026293450350798349419689855794097007964376278682847627332277380547890158941837750828610000460942699725300666195297753964329009598857889179649469750054959802519475584725789887303161129649666448938057169388965984695612191429731445157156721984923844918781562197169146297078878879049621220953253387817783694201737924542594434813450536695826573905945329795225369655715695646235701927154544043746141771583704362030499875108757426092799444759000122869580281637707337157058176740703842175929394916806520076860811068495167038102821854302051157297337828475012981682660754679585075961590076591845950563193639132409979413273328258615768799421614057489964767680443498889237637900557577824093101103437289360465392358967527453190561410672529746887683473550601524865206283151810684652896703136235565527607189571024597431398392289427134031581410858529709232270576985465343053162943379161124677668425432817198917194549331495672037941819722194415156339906791981377410406516642851078764431698460445574490971292261867913060072075717695317072350694696184102992735821097569758041730481860275793115897266240501278699113380976101279967570637971352047065001197548682037810781095463904266835362400439982827808506863181089274885295636125238814367451934677711886646542616951095999979733202111550414754070125388203596744862373087496253449194415531879844021756560814209368747463708607798213202431626314567470054603429077785311858405514806594784880872479311453897081175611324467939337339289884049165716943376589642783123163777432375604042409661760698536004073935283326070884334657436456040753188917647933931340632474113546511127842649212851618892457578416425253402274067165768162741558088712372580865010277587206572286191434772910057477819041881257361860414138875706704927307611410150052291273892447825532634036141963558995521345355383807035040709084566757090741650557862891094605520381298714451710858123410675455766819632837410944437884275326594233858337790985471437529302638444694011734246725220680283687485627811506297506442669177556882189064506080784397356265816835190043465565222761922460747547772734146644523598842759716503007716832703397060824378420016494846869257457130936928206281484119396212217192452652901630694203476350062082783582737809139953346990503385197183301049811099003340529389590638525077932698376746438486780251139314763091364058429644622032925488732690232746271447629299832458913875118532820968375272649966723273418002624839650678414058703970647671360167936413832341626626846748411714973972529651159299705936732579807679480541151134089023376080881958344490349958434538684548346264793195813789512339501611287532070872451564839932740722492112829284439219327774557238458305426073841180818133035636528920657827007687577913031173656149478107658295927904570780432517686990466756472808644189478233459154898481458689590021652151150516629746151086226748953173142662979873731393134827360200720303855732860710334850343937923100245321547822312800922509738733099142898972306814717556657240193654208587258162386824257488143267990368484258341409309726670488591446091284609752330193613920554637891587858695389042679177805977530075404266738270758490598591963988045307222919076179153106407829368540088443890025436076279949286094829527769251045173757915783726541226116563135901379655168886714950958533609432291506064829626161472433724731954848144589885098435353139145024571494389103825560663648011580333877395188542564587650189790248121131323124012538552657507217461727042943066395270276438232895582503985757874158421621908663186318906218244910113697706737576600602250060263291138119853602166101095995169682612725560754220609101713353598680929745681202374260527960894687468964563535743602532692969983715962980296664449413471944912558670488824661701274830746597280840790532318249914072780461965757302528275996148241619749864283607493262108543391834459639919845879721975802619875494520622020170656260381257628521759321924812933684250969088886251419015519492564637045840850775034374701297059160724127337744508182420436407158777726503139533581476047216750389756132119258347991463810194503954213954908685446958765501729858184518695815132328020963869673182305907673893559858820319727334289217096966749116728598225246454595179524644606884635629182111471754151589707482813890527716284995961109422024363313513725922050027722444028799415664602238628821305501908519930081726632464540640238834738376657024500630903268422187061817246991002854217241052560448466024397587431807239859740892554476202705529041955749216246117358822057631593347455665063854485491043420178403358197808763231779873173756186981685779578734415527491830704317164701950117617991649439937474536394271285874588220332757756218069130802816957691953499560015455059919212134666477894415744291948296115327910244918523974314248639493945313200489518682887810524422219700608697938361805159238223830656373506875148854113064190804191015353872516048728857713777487082686768323925925398015151467110998866764106972796025790392145622010696104374375104318903766357092324148951896689657655708425942476235042692888445439390627330791115933921506053502343055671505675239756963784697089705499272851937398970392004150090535013032701021316927136375898878806314652043786080482571418649927246364893578875946230381532672354821996709776281427320335084445974039347849584767574373924911771603347656746897031854846218794704553392389031163057875737986246092004505895382166046815714556809665123343982436797282829056354899039568827298065109269022998208652005169521189804524861673001479436339733595764564846548692407318937059230578808291028501714499715199701222582309708304316294594688936308681919629363965245988945290658342712704377417825439144516907661377931195045853048926822661337174772984096584772837949456920462081616035926738818799223050196615269089533425758607289385634555862072659946103970223908260328943444023481571161376665687561816344491660696762880241847570399599021253595052966934757917426123765473594754089305698469213077843148538432302511543733986513692945438504506821574419596059485490073668120775189961055722589793170862700921627327539673627906924857032888190306046984290739505914089554623814029188761595700195383451160827886835842520172753046215184003232888930495426733181075702215108482801395706954192286083136361784726385075467083108207609846702964782779510004326434890853603981662301435972406188191990489266360931609528216643077207091321928440249120242930404045569896112359278086123186650145990402593368234785858833381280480485813485026206086970994385474267204661810777010995979987090788059074833458566997242431403849656634623530851115477579906780058299370989860244090439293519455834982233413557492844175317155061550950794490254883701493270967041666050243681896480120897411647144592477134022727418333057467869020871445421073969193083591280221756035466868225908014895595935750315548291803225781691283876621992179260622985328714311632547085676126169583400071604938384737387966471877850848232604362784249458076044614677220757739716899166137910001740065365606187823785263149382547094052584787911824445715070343790983143609502709586128132253052644690332769025053266307066540795278755545027313904997507975252128343678826603008053359901945961200677853638038905792601340226568586598062356641139895355728544906412667293158643872091139428759586371944646481725374175943087075127076082277956400173006691250443343253818837952474690756453455181952464426792495145972260306822061127442750723127962881966183143463649184401531720721064121733903536808668709387232867805310812750156794635300687117248017518896733025349696358703118695972364723174854795811860344782101601714852456993889188803983339450311946511958202552790990488901765154920578720290551110667008872754895220294144460973403905203086886862597052934731154486714820535496724412070103200330393732761138801185276509673420634192229023358788746266967997295467265764280914794623580728028731396803856041582427599935645387906722207110949401373810381313356109129079276703795101539999414007955961686020307189385178756233866796614511807170940964363622872655634070848042667265584761313962093637441640458572881453262034134188021593846431600800750115999791756724073133136672244760625661624864669767248044095098706738508188777778506141014924435215628048620220855298579230487602028209094452321996964427718289807135757023282842820388120254716408253014407005468302461080965774303388951808208731760647731124960189881828475539460402981066062415460978237681552132079544784874657109666993249328429736372246658643539478310650511555829439558576305642628344762340967357706512351215439677720476458003811644914135481998587080147175882787097686319801504660853117944615179106808225974290998540896599599855829087918910241752988978510870494377766552016398174345750600386427963596787670727996140360380521159297020142643117200729353407157896562873575919767458833631370616513973717630704773554132687739955216335125838871751347060937944040362284342158252415636392304739977066032166014003886310386854133251569771620664277246647911834352413804777376226927814636746189551380065789468032414844997518040371535595585516988716460851182984016651714323589014759801692524775517398993791353739136666199723868231453004519957024212400436535446631255598596024648653998162180857021476900610019557371321297979758715403020659247619980330260017333776260573896749630142543033141541489704777429331950164053982959870156705296106192149392921013637466460117409704012135588195565478251035636935158063890304303735551915411771213014607528692724281488410562318731618413355430439184261782365380123964220906241688951902274388649371941192143707127681373631953015176852790352559942814745580575167600626722467964018820252422131027017948918284776797016911991383237831786016315559036007904009083361717159937942164050864762908856906970134689706979544039496798896913636986777938999176565238013301040062055489020784105142018470115042172782464606427677218943208716559446012855334010898513703455459303760893377193722038093862806075235833447456274152074744007031285582436983785178595457508868252990679134501640813901392246096544323651708115419121368722752369524839158818114657293488728175673191982007842310003495033296649917296373797401980107802661480757945561012397880550074675545432380526482230867144022056305427214461021352348901194445761578500837532025980029614403040301721270854242603430196792892280676629307106847424373312022533935123407855659653082838380104562935606992720080339499163422236039539698289045347933194498557761885739905417243635073408054848866576244766325266483169761018917121097642764020941377023346008064833961288765018870752840049752531018024272959246588346857100786918221651029388588519782989694894490378471788978405407983208749789297187437326760324258646214109996924447129176126167425379578283721038834368591941415532756982715326189800791858826610706800393484377930697183163701646012821502738595106963277011305693879350415585565102978531722082419065588133767007081207032093591042640863764404801461084974859467628514079068355250453034590952244949314762329979976105215684031276080723013302580123645015137735742326982671086538467643665971503563994691068825825931096014214674211137030217045905837381383580169754845901287127879679150696632138587838818700973019382333833361064810277117373936097789378470568147070839063221354234588982095218186573573144741187961802961364382370706656412430114262771092044230513437594905893256067477680754699744218797313049844763777393149260956854316024100109660839812595227653669110119723581972486329998365024718646996921826364993652361262830022902948048358584052840851476185349047543614123460943682727900656655659793362106759467636882056150102296514701209816293531946126505108578644514318058506390283633405302719358240083789981492759212042925780077876255636682207830639460411293712786066561643874065754848088431661668432436015439149536983756143365510931819151283126797942484522439540913853635902432110458525964548243429070456639087704996643879220636743260930106143617295014942043338090518015454686642903092698353482170086270926450048204268541968926274770796656047971986890293266466483354871044666651792964164728802599963351288506733727574712495095083459222026223211348772686007984386000558101039264514191526597494762864238128359372240252637648184005059747166580354039162859273152191283953349248807203799519586316082070429404153319414640630806433954786212027676029848424788154856787093191412872420931979929295783723199803329411949685986860044147705510504471975571552891787756126176559115123196775355379547174502054239031964393570325900083971486599971388351486788892691285987468676314702241562382390482424275631675540084945839022504044087522283558782548636750709244191660326763830172781204022279097752483184287131823058168120381679601701671026859194314904062984734881067910441483733285006602418043440514350678969109213111300897174518702496053879287829933086492577800052920485140544846756052859903089961277511459293213722441510855199799327032461277609186612572636735772259947555098477556651713513139854963703920074194472341921573217212084735131017322667520262081462276378633939731175637960969278049166513395588193920752712517871428459253097869514021871977025412967707293298004751924319349557787662745975535834176591967097598570510932409376357263504928293129280356616388348024110897853323337195954410866069734318379262014734546176346551367879386708556946738899902382493419933107714594847752075251031192201763533699507515204875596228309899686888671794500368292601732690917310563574368788345431249469660540122664111205181806683954971440519156180851953408794546212626966647243011305326370619589767928018355211876571585336485738460643869918655019789811698571507741740591603668156660129287718404851133085578053821367553360668742809427187251042190399502153985709484794762577719409151720037104459949825343070262176047190377911692966878749228438960324970875602465948453468562166443431648906401446354700580504744454873974127103385590074444229242908624788694163056100842643007330887492232381742627348558381406292682206575365876175590652524869852912984571532860173897104918392661579437296097582755013503937290181846541568153344758770468851423634571312454964612656099759073373093308292549114233294773303510712944095356226721933643361996783724517240110595886510123830047191281637293472365700766428300216811460250204169333219798857431345702835267956011667704080263812667618997700944176995332500928841828082999201689754361966295491031437465341077006888726898452122005078638473481433902553045721018358479393315597355564221237789098637622002511987719799323000485711254003748383991086769877875534923502280428885781576410488812300852561607170192764723466526192821709593995591904461244073094795747333564414940637711824180650527163175811665871824037076433817625484089457444122662124568805351247626588190658844206265461463437756806628782322135326743828747280437299725531426053779952966569968151620543011308097849353883574648769752266072689936240132666312762448768971260725236454951747186734098719638167211955955133179354693056803363247684371771905499319551355725665812889359813448757197230539157129148008169381217518649208375680523090899112970294242458856665979267689788050372475197681173510442074229635982419885636276122974997265469056360572070254130274157843315851635803138278985174383548324120311258461652568517487286330041608233921635828831697351145159565937815091314156105467861771881928045249492611388115381274571500176585336245625627733552306634327929443474200757021937910948806190897922088541375278887811548776956950584849045225640385260645304737244003653834850171379288443529711029768261705159129455351452518731399520467214296761910226694721436544098973744136859806112399466665727720628472397099828107465873566834420541518013812291568517196016843903249767073109408970844650046680395780913094961004414117116622534505300168314492994908704941831566317946413119885222868906571052489682834150851181713780568452349629773971130029843423432209998292512034246448931653990724330502485075145231564530365305971560959540693360147130052474129104849418623539412897618572765052493841514445805024217331175947951317535806159779652307212315485643263637831316683143232204384553722621920724709102575628318163060835246940537833579583369767773669542357382069492053187655552037887962575977228464793656200179472771605062249369102650214163131714978349928402579906718155725787814522855036178249087621110773476183210596163848717948428768416802660105389632366170032243244610846269502032541080312815663573831702234302099282543705186910631634641172880792715826871795653528065061969919869600085386488766177637476023691374798062887551825260575532912202656128867021081913435639768256885334077197559825986889995962207855779563183071826167359908643007639876314137185963696218753090392049744816831824972742573579809004582602633530142125824019453305189347337236906390853373958147051097350233879394418172870305531984139871889382254524916571530512005677896500902111979107667741220230684716926344911410826513674795210830912553936076699456882015163351034500289012147106942214580451030425408848864883317731200394882366576895617355336701679312162879247194496954284199479505157928839066902320539920555651770344481047182816443864267506929335847528694010165573835555065965953667014129636477527268623673632751818101651003462992004402709117785099021302500874909621137764126100079656563606269591324761729197127503508495646195676967979372957716075733669951512649564396767030945222486282786756475862210417270494766547183950294115769652382265867144715304687733928377882240670645284966309171911926817262927311011862002071126326217092089928289903725792358591473625287536589765258863037548082417440864732900483932614759696376625768341809676547536771165297084405650527158662073198745964435006205215694346690199308202814889787308609742444291688243937132599384361787868053812100343033462694704577065723189944738767102506876768592040109731982349780147111506185539243801675571592140111949956756511579151612803228848744908569424166707421468072331709716735571237816156349085278091921228635206716533764770366280829415409871141175135329249558487831787194089160646289356945377559825438620369346238968567749014762578678819601612411659667569631510786888287941975839370457716967804838528742157995221426705968819884909662941578196876898051859750475246976611743211196081513641424987977465312944463512383860106807065439873606268762487598089506357363661496749353654769994652271948439774003326197057061776556329315546873565870831507334647035643848306293548040366109834016100952078633086952681500726477075416029771820209758552030973109646776632592015505148644465760544563726818225132340373241046364133465408350764448018771960696220530644959980341216961104925811934052664000451895096268882567142493094726906564328847744214515393523812148229965841217412217887542430791873476642667386978655541243227837981316988094017820538597134126846597985083132604421585809586754498218362732869343109459472845488093850119340635296482981013684413670189982269065301195590883326741297823443684166726011376010481544017991874147801154054867317700803595071371532517390942106686780581029808828585974594256250236859763478203832476311334026300374879640326766768165129996072774216354624722713023561366230218676292077917841098337352309567469221435902049964974145905947715899751680450499224625000861758352533138392619128484307765506647197793951497830387860210853433254371140837006267413478139844437130758073966006898307061510674611622650022655553365673426563480423562061742585789850078642177854718074360256487495627905491506985796696303206542867337285000712200129516812416781408962493710423735673660323792015424127397058049176694655061298166648803304343538760616572072410212392231511815823541994184455477781655589530665505345922715048892365412099136204225560422560020738699553014924063534468374668691408162621893656770516976544279394017178137524955215793712547992201322074125702534312533070130906160000725938162651691548015954657320536902400590256123204879358422934378077548136613216723403446023563073816183815773534745941681528585227293999633830321676137034694303077703050963618061634728941363509318938908577093088355942601376137205243038591274973673573005628098792570906188647549589576186992553113050565932511850081274811062947631371861134549300859854294071374104918460798383703689387521805809850041299982376353574067237453922206610006905175237735001978683868544964723016454428191117101957703513286849485333321148452984149086771213105185403107225603750998017071116745142628897513062274188987620627491667973623586203630331706702709339281006413733941552238511112055256439861997061882306103812225929155370475622184794965379966279232567757515935186741910833959696478256380040708694275157014724432289197835873956890069692812780303393754793188478305793902157477322695192771412193674693290496834406672313528412070237518404601922559857986888817697791032422985937094367224210500696765325678065042007596402282374769866507149099282368678386242044641824234989685761641517582965819302664156677283848867128484765445401468511321823619733631659720722666405819259643130059739754876184108500209931298003981301814637796343595894657432294785923812422584807412305413443891270332605104352885306744034607973130739678528500296413003595239012541240286277426761515035916160785429526741628256910616559942999349848676343770919649391891788147775304136084849827308844834602822539143321039731099461942895811550868796545922313501771924928675618427009019523471730833871206289535863340789266479642641040226968628801651437508102463700978622135152847101789594776146607203617746455220206682072125438232946358626534911746621391455958427061514710239000105864517177659354172048952499883368616271575180791691261207658429781891510049261229961918746401762870101785727886037820083165847497175371811001846540272306600564467332394115896507011599431719908613985287388008314470777067681180160716526056373631326403263221027819744295587132422932590296315898012487730152131325249939469159072751052150755470972342585626590916196974596606107034829753794817886966788870571036959257309409814803582886026625261424503114208330822689270211473547791271955513941691187258718103473899626302548782985260137410135847107871892069401687957914388634793068925253427784489325829471918193893418001499827376992153749359681597511762460158748855335274243189693857577822060829068024068910349482621060361773444037134239760311963466796725554025062434120988097200863879967071937025090387548423807546202158830299100163588049949314927444796894187942516101072116952552855355173921155772194474745340787821022562262000812941288878973895694658484342448441920202602907742541578010921206791324286511072819903757966332634910651842769946118562364502427509366052293380186722423716988333140330358310584861482134041099749927065451363981858294699287353478029188084821135032677933768214003233575168661931589006524043362943500034863558606885638289541394936049468378454147091519253295235682565395800580808495148558344413565142427288627945736341234193302895924042325772055539619292194079243391164239802811864493330176461406954388963983252857112459843615915512691973949902675751454630767910495708543293679365074875754355474670868550376686108798250479981483213517163924442505150176834812740885814350293695746509783488307529954220225340934264411640049637600597207112529618599540574491495775233405644926319709167110678588623945657966019491727432985400003629523732817697634708876534298889622561399619893959988481352635015791515750847280761323289581161121046636146155391089166608016139504148933965013894580575747946160346729208843029785633985696742300386228136413961862490021719585671381385397229242619390544478852997438714001599315906284417512982332361068537414753196969667994327137907548383934973923875383822439014368510556118459084137621910029931161155153141660072059809359357808777764763584035170269996400854630964396708167093852011673311454678141007409216832371390856297063925575207629131783679306928516533243068955154251646457708191860576890772460825753092855312684724505697848883449400259047099787299459492936543745735295878494177057612636434908214444884101954144750880767602733563944870243533514642386369903072310629538337905236717219794283853955592267695483952705191312497006856173260675914539855947791234020157709572561128848008263493176456539770337178034695166879406040048785297782435789243107767063115728100794178790366386215865150898468749000383538299744329596730146229113917812144972090284416188427928447274141456887165789782813063186627324603008016626650454930720591541983598474600131901824174480089592377904246279826797374910868208695681087224437408093294660337924675326290837999032464221016897634295449488137122090554558138368209626110623424414991144217065931974157080181798350806459147356308756316446157702346477538111546948219653780496834329160521602157140848802281694387618572151546537666844915439121605603068974864757933656279458654376765518975527611081846973481413265558342874531822810304780976490567854373037057458459861055947826233583546526724205970721080538357281170989796292284125143494327905253886742912326808528628670167150095181713452887256632376569575623176758412784765107982413203465511032803368086013858822645695871760021414536073759052634681990461709464535939966569492276852173025356241527877185488665205008913009975071396102856014585368131277735646498561161145947902950338644639425486412390213253602473271590441036050148193829234129198932941799081919195372342351340677290028971773329433068631988501080078315489971201501844288050610986538641590317671969374934632413177877576050351947431939394021566678658886804181407668057180859602262608675033328614190927689160954475525376667064426794588366665469344371722329160599872317143474655056821631039760995047277158474586251240409858467025527278352253815941012954878946739960471208048518517755882557731692695186608713211660011609841236141718672824802478337920178099446558751958404130419739182176938661896816207783469867062213692665159893139533344512053026091953605314440549547413127931906616772152806211684931983270145503394460559059299890173944973286277690560475500367152331222413753325341944223618899713666844454795104898649851906449908094256865300502481720029657144368683505939594814452069697031309750596964374984596765294893017432750813836409543738506728240174508579895763157016360222342272433958648543846915016287291717599526190330810720915181770955099173665600023273242217134067431312856575640390447393722421250670448992734782871570593994751610746906518647899119543361350125145637234105684466794815420670930478272737055314704727827208823741059706994285407334026624374078912206595309783672833676789230381201332029298893173207369116701140170465928792560795491274330100356804992095127282842311881362812020960643835339055353625188936105723320109418725992770675874966847918375847352735577423251644568348196952992512951516047174430538910536548609078092717683420687081783296778659275709092299602051533099608387546507669919791291304270610145537105197808554741249781299499399299689875853533994021398456959399751089333857124003548312776983985097197928727903517094615149916712302366642453462523517967103880122039334503357531306970024639697091419266232466174518413217260654155505243578602049599704477354801990322567337571980675754718906165473971841051114899337808709292598168116236751622043382707264784687081227111664382905488547291571901361234215937031591401345976508380546236533541033876579343151729048480096665109848071620271064210934565419149503591861717404612289898978156282880967408321552426468620696452216393284885395442409135446271053891779718880250015802453234082548215895175757164454452585192474406794113264937834090396316412999289092284048736446687192707007057201962449964042953971054863895086332220470483561761217877598769519341104852712725683975709659688705173246118092293868218860741716276175652848325540786417397593109234780416413297899344844848695591005952732385949596112161166274712024839727745709778516259645962476012532338156532459292215162276414276471050570063275045463193200860431256690903799766435405763845146061584049315691521283496561865714957831819127720390783669397974427145674850454845744461422735151958691065001603453958244952057632606919227963818198537772265701674022646356853768557013769737233421373733512971373443201844755914530696680200472379398361137517187757000214726057164754341546531353481725877335709697331904968255942534522519553287858096352449719477166461564158080561419830790741657841769710921331908314149630643920443821247480442682412114264244087174073209690376352381008653775531790549375100775178639898793281501941664921239885616824485187250750551306558366209101423488317586281395507026062194078468853488842179390995438053722042492285561795055214757187425495500317544927364698146230014580468506232285175127708983719318677396378268042534339141416148080004169539270812575389767214987654462410652968943695823441971699507882758487312686870968029363284303444215249019651882163003533477215134565637049243372994147478345114245685717430908412636823835339026802392807536771175552921937916666317232945131179611933682608007714134462134448043360094581681830084683292857364618519631945576120650689067648941520252478895511354880520657662587964458028016258821224932777548436632611973242829759656879794932000953499082002453419238750981679429658554945606478606937954325829933303697294726010050302656598004599325697828452546894222729987924954140659324406571757071695442284417074650026420835227262527423599923398558277299226260954834821858820813380767619615788783839742676459318017954536903762223046488087897715379884006523276048192814934340401539786640995788958136717051071952859554238492538116224441448871869962869903999325858718490868703665303531425315480145436892889248711512470260612351258862736662733291003095192151834881489881974088252122997101046404895943487391787950390989862041112633708862794280542108034318481547931846604745830597519489321554803663163341570782591365302832974039816889021125405675878340904990455987330772389330431203341697979486900787605611924977771458445423906429079448461918228935490522958048205286341271957378377234438699379813174783223772034073598732869346986166492314179374919878870807127040303549004853052909321024147150714254288733882178390209218393503860525967828476793121400008552853995971176149037397514534048586077489312498586568949109789605715339049556003236633417792287102246317229741448675164825978935538619849953319329610575321028078143579044003178498932051751167940040612974800252610546095102704023362218633542859659764170316250051842540051983178566072562360130633904832140804818230859783283599168308601483903532275635229281948504319708907495899159853235798305432631226182502854784057561951943695412945380066648329355887264446242956045680330417813042806398714160211471471756575159707695428803224906770762884271972195167936535609941212264872454421428381630953642379634900861460515889921164462826060025605955593899896558954838874707257433724221713534459646316173711105625129943099044284454775587203151683042917597859293622842490347357926802590579299086071290245834680281882471045016012168875705715250282409316407195468633158592792325781565775659108863939341951908738785389039380176836599693964734534590058670708877755500071846682642604218063689580325363626131126268461604018126970308751258132384060646356047237079933711819959191466160924870605803253929492574690998404088928060245494968041812709464565991982025058022904291207313274043866350699220330082911155490912634070935122612385529662260268691596049667011025955556545694540365084065791351961638647281059413009827636230204279098320031432914603778434548202795258225533355485865203681658203803539269009187719307750215817520975550726784257390624780434481061141192295270487841900652926293578897277081850146068257626049840715731839950861314257674977514230966097439404791685016114976371738493029945426148229963229024044682647631621653862783988190586673141685021699329301151885980268266154732645007784150894332313783087912493904732803397317670320741587414321469078460484995827099385896706419077101921624866779190825721659892733755954535806611756062065005095152506721011444873820259437067693918870057033223409930761612066455689639796661844855663618976569909704228909538078675535747326990337026851233183517621591574682212433612160149545680020741033993350111616853263885872307291763632788141225554172888485637751889535097709097978873408379076190466294517753465633248332892695255773842248386204381852271508614902488292817450399957755219359406165109211447931117444987601392978258910564000658629475710994319328866838226554400011375962276111154096659178166981615359309467907436186517886475825610371261499324581638536093870772249549724726983713203284598151330490276526084538338270411478031338799734512709664524810828797502784326625550163876334591237817491628301577421017408806205402187097356950195102710643209753350210969514923586221992578890374145067004834540334867711720725243648131474206788262500245519676374754605376452549624223077846393766346409506433088464301836851846083842929251461621334741343222686780520880384498656019230223716414557489788610343879051252696853438806349017542447267757241728239319398430588205644082269980743449218690395859125317028501278291095039705300769078263087202478213913540926179946459079666180374230922230282946627236666091280941459391840155131607407030079743768358293524617790031517790495723501884326027155170851948086548223081894903532465779510806890046925810040183315615018126285257528715257138306713232296439959497864302287880360039051273540906253375144411499818374308251080991950421622498795079763251894822105470338423209167902263911971396769719294959463852398745985921056436092554427517988997116508424076295043623921893579970626100293113747410305580745693637139416863121624171626341163082435579611525847641807009900320618949614110439800908326998111205728028260297996711439783351642484928481152123459365345820732547594804355950864093970309975718581721876863465641343623082664930818103447099990828396513261719534215506463648188049550830777125969167918852533171439566587837611990297881897634709981447591454210067470379888773624537874268648105936307219229321358756255371904384235069214204929489897757272539919843298680925906597583377353646915758034614551971985320277640332138421722118412577490006404342302882183760476980159105768638352788309740175916643975253014836170030526340857351012060073426581785041234481345184274556742566200620202828871646572560699708512714105709434266741861979932692085070414689709236620850105801454218268170853237152097896528233161613596773967826458383942113185169204609001325514990622230628278851916236186759191836163664059041671389097990742315569976584483444294418965367859027879150133424494168014477334927298811144272197959069371703077460109911660518077850986602449271125237309910821220257337989084862240364970192702019612472944415670665315424329163069067967164469683717929134071508227371508392689203374673467256445960145921096176656792512671251430682752606259867193884660410197426313336834103293365165307762888416772408134672145419868700247829450087687312200646118381838518194194872907356031635997921409228084794615536451526750925770513915711298732862393677873033432149982048198577360608008565720773070457954586500685467018767430766300701413210223972094874461836058803726131480825241155732607742226837826795271654800652819339525857224631501755927814424963140907309780255534792510769471102740407012777061263512286230339254906672805051699668011590738684812955599112250591305423963766846273137189519804275209930848245233069441487552710492443945863994412736599335507638408129455080446965680537788393368373046823923740550642266052383304686322569377395636184813220905237721914802783214956141956125227896396734299517568829322338127747992499775205319108650856758361069903984423152417798234842247861986528205829083494365852035051645235959136815723699348164072494317875363149471772808342187720857988068657198420977553305909499225131153803996065776668458042904212741923260400090217311945387335423283308065834586786173357261048598231037557899573819813045992435363784091620724890835349649926252644429042778937271936740663989083793890385884969935167665222911671056497769788101780938586908809768808820285568632296584756411384788631097067480984411619693925140903510787362841462007231804240275357780751977398752344202706606838169021636181565941415204971953028590135421286011993377415250953367768015112156114489014804339677233645403020011560583254292000656145206032184995639361269754303374891917681895395171721168524615324827464205918011477656644193564567527525665060460086738056336011423268422988397691339339947027375694021981644073695909925604674136676090937013244517827932347742998856551087863815474460509093188730414164685568297589062164402023202971931781945660021498100772216314481202056986404684824203699569027109663957775865813455335554124467359050384552680537804421715217650317925611534313487870467013752554458360536725745357831193529830167784544874182520065724272268427057211686909564535657239124546481228818161399116824362291554660201547473652530908272996594298139485064311396875911277930833327456288926539568143412934127547375329380357111408619829116101552025074608966899088115945118693096238500546630831975994865929362357273395109083251896900462123772071203388707522158444037797275381435634265917880015978224658821113071229688365179532901230148197264632565087990564421683011291969680843926243232714841902810486276047568649286782788190473522057256446834701484701840165548754934412090091160893133964513446705379118068868533738927556434588667744365555049159582600997404158691338132158873592333574994710002347850095048552696435644417065521075812226746423536342665393939574194592262130122844765521780904964940621924977337436082165146732320506026875314734346010100276174519933777324784498969108406981276509826162157765307852816557674063604015787246456340102451094551930857523379328490944546736606570966189455860574492863933272141935275012305852814846720712624272410219685683435078550247444745510689058720222961338532407494417038864855659654187936006511324871885784879445587893869677350729355049027741202750076476454872203755327523126189507310503089967929287354692831153287193757355440205736382736017937762512943005070176373445524930045183165334413551610641981567019571599152789094397216252089235954332784522466980823480648355108347072381066669671730932292470869147375011096210520249458624253406686784121331972330187049959921037889367650589718908899204402323857917803498954895819587960005778919560561049913472291921378161345870091706647072060575727735447968410142846476089555223037563438240594081014651398657710216420376874872830914489241349301150780277954048279158643061649277244879548249378596709112198987385610062492809521005559797577142735261975723531918961941955751008285118001673697803631481127086655663082757872565017478721423566047235183989953600298596980611756917788724776861751240745143187550517475291721077713593564662045220974831955114779150799752416396590036930131648990713138439012587614029647770804054424992650024072423002585073968269706871178801514357436399059536176673861412950475611422475140799575274000679141738305372717805048461815476473274043763871225999477807029786974885374128284226878168786172994417167491024550281281684740144314403834895948596410028606438218459618713510608573722016563983116074686150693245910423156249139228113119954266781893246799881972938546157729194749883272840871751821920654027918591606909880842669281227076689480226831646756500635590389817574489114103058019489844379378537149348530371754844152664462870677369125377846789778614848144675621556377822933749648869151150931806802027797075017271558040818956781422662604907187506909476674863071164385592113429342049536946130375190677382632174795487352860978735081130139335131897034877124536502087300250648291464381822797082517903834710638646445334458523751453940754898987433223031170049510736746065939053927226857766959563905438953060720096796888137841783625600042672813947864843727264051914205495649460574272497913533553084963310923093489205773718728787934569159605639343963060976744306421428192240679728038064439780355084595344520133039157741096716369386496975521528680015597612745703891787733292215308227125601376183314161037042176848172927180658533246235057506326538483388689358443448197779616004895391186512319760755032428359518123445414977489144760966974540177887861885080965725146354461028136930543811636643628203134590497150243981905917885637121988574130797746079452641876916619863205425169601309715171286113965798390736992232060472927774566158334547448615727262647797914116350962975640141220174454889536125238806854229853803433491762145177371378430735260527221027275561495532971636797642759083869292182509414046687236992451987003479001856918951286856639682609477082044785209356358897151823416719334947820123559093676689666306016806298260660377107889598696560673556682327396881760190355171304436487618376476793593243580006874460273886940779594325809052341317558404194297162525479854686602617176816910336577373601656936665541073292980918765596327153578055844699718417068556206903320131056540564173720723758753703643026146028484887469417501089808833994972840962402457828440580026548765971896496530977523643686758131059224873668380341675672465947173621696591318641738493611521017389256605333274214804341779068960799304306237168425963120039841684217545706062471839325122090154368025619569213828606026122965514641050395509805225018629585696920612724205699102765093286224786821122166294320136009886551578088895123613056433145430031373873898756829092067896707145465758503400021674876916479911155889351345517522644493804879885491048885058581058341559514292616758723174976372499749763546746185675468711132340447739911310221613461259697771142488533699800251064520345413323948513250497404447425785224646958588995935198371272250166049013029690227470863779137106670028039159721816981342501336631890504264449515783887267267014432027030833240172412778171846121817091562548977104876146849603567772336676999229266683403655371828163582396392139515331592131307482439176155262525010538460675527313534994205408076019084613447686947203189243176697318603918429906760723157774902427695814066681085433864970576387973794199112034693293071223604237583512485045410049955685308242384759420771930557249510149724085882638680108713161230547163005310174212828285324689617880646289338493777166438144647467826826224364146780621651382763377000868175806360250757743857153185076687538919094401960843163689547200011186156272126582249740767982542663283871988386801151985878964962921639169618954892915116315968131823254460694796365636517449618320812025178040693716845811035591129712194373643583249058697360259884841466891651934135984255392464152785238847986487124818018721868232806250990570917224894137839409492332976716048519094710179080561667733844009427476713060739999869806817146383539037890644885946421093844105581979581971659364226915726291255687172562211777428332633485019540284818601191044343347746346166989077407658933479502513531894362339354474720278050062646956707875314042293769725476610059155023642450649079346887438967361276604473641627352170995334213147548669623601127602988345023657022243581846787914502073521561728228739725027686917798461688714552208647179711953159409662744016848134477524501935786631784675940966397520069275983326572209562127070214124380762617098088708335541870945426982050251046574824728521655009315688680833543387520553544818994791109954717532624689777585664577690670443279888362620761574084005578855285353926817522454272692396726792855643960421829239611101281897126116409560015364713882132212283958592843135134840167817546041256749229037482227167674879304719570172856859274392876445565134252201450820292894289901540660952937871928050752350905293208539456015790121495124656124428021055234991603569195518472242105097487220621169847815357564183811952010215855562700068399983134375094205811161820758349870703375244720849918793983792160841101875773440031831347586295665043653065783967230556491840632991364872731318695769083133205529086605160724089507967637678200502042069144291472046902037130790238392804156357282151844029383345159347135179889924707046728457623978278370014618046986017559643305027216821385858586576783519215029700928175031287486217506650824328111466855283853052387471219448392669453508633204463583252971929835543981560271255691666029039688308708306389351155320610530391226654812102597543937366849043090242701509968293538466981891872905892651269325919065047917224504259425843113938282432815092246433683072122905021345275871245537216850307429234907618748541037973277072986755289327179584542283162905595419021586383190377531025159900617793575896021752425431857331022596433166655230863332580805012967665413259788265545063534591539391473417047406944953813848227684260852319772238661147052095045346778844482531744685226590910551393595800777710545842888392397575956172101733451008664369789281705608632467031671282024054968758732009339345566513026150151682125046086134802061676362585691579258679267473821244644367880595534943254981301675146967276513745556444336035552104843913903619774010835287361800308609686641026473385902152181135305186358211825630222358199320879548346996292682852551051975765457891767883581252004482934229424635948346685771788771992228981630115258409304912719836132299638342276957262110731573801292271740653196416813763811226674664187212875981277466659268628575048584358245065311492921190807293994341959854119607768443743883795002604955283119233408674432293052674927796434446062354390259354015001451562358721333996736680712152297657033524714825265570420754583616691289522055465631598649098366273238209655393826466887951841558624046588918102080834611497765726292736702694439024810757665754726245000432872646878124810862580792473987590510629174173714024467652552249163940500575227283955089288568880556167905185067828154522150198333970888352448580493672560687864684453725681110802759545902315924790720789843511992331068890609414177601630944585354735681594995592908460636369336382888580360947716619218939355749116059136071129885067498217381007017401495156669868631047938906601297744964533180207657358926212157292806402819681312960660165881057622754854513172542983674692269030634536743452951135450603021975603332508874330895547350385944696162775919615641871589445212100139975513007686615505150641264036313439233991276520830566321418481813400717409049336417029625340976257050383963326779216128787549948172024894762042215222973029664694813622345639099542861532029902251983075059813873705954708039015797336812683044803960841314135346600080199846574158589013455917100413908323214777712362284464807800328740264702575598471789918378604059800383026191229961775356475091639223152938593913964652210850462767972272965695020255819186994918746993844793615055279987025096580315130353808327528053620711917664829263657469505279249946192257358151669954158015430840867042518238782869277613106668612427369392517653228519165035100939565684269643344526353502802898435204874012298290397600749711975409440604505277145386449906644432182795457992621392623576246251573956141723601972955991196342040285430706939574572102462606309818944502174731725841054801462176929918637629688493404282315275304791789977414615168575991127808565594457295947801509326537378462592356517099477890878801680345114341695149938709263662397549897433259167244664557562025425904443425152478779647595975701370817295894635622766609842316230071548976084962557448483408357099634918144728960388133183244559329812235927715910595459231212790156361180151144537164433798709166501468900560252708223806163278882981199890587095366848199105545545185860605813894377414281438931564590187681733901882212080378212266193658485984408263598214200008198990849596876472982122561341794528558126497956420985037243957381866798932543093435075894718164965367721901020319146715302165998199412875857822128312721028041882663412474820680999562684640508277730853842244458125994176277166389770179221135073660989486866708131478275545657423585990699225476470964919813444051388545813516460285802394204775399240003457731982546170636251224538167069644889246213570016732712750262869113899625286097215441734265961863387333032843624804576090263393697382148889900991454781743873105494160364294018290688874440692873066529883129726566097577906751894726249439836822886803767185231871144594835654561979417017289783477929996821410207073498458644655747228802731113578312976701352189131411882547427393991738242081383137349118821891643998334518171644876344108817415879357737324227609194956789840732936991081794683565725362205757433905617338958767165388806168618143387999242884167589294236010408651570097106270954423311183227614160988712481068065043683722714246935430107816919415969257021982912218703722024832834123679677281159423610531466820525854575898912092071209672045123308726651247065672485470300295438136246113240626353776819056028426220855805550808241328543104695712011037606838410008608652906322965084988741082472391405231350740503709672483332472423250370441493280371564176450123527227001789787486916168192149674183500466373888464382827923263737371762835804400664905601988567048579220150188445236144243893235846245905653105788415525586376903385504167273482652531059297934686841007388201000085528882540104668880206046772238079954916247431049729268384820792059581196846098616281081089582716063870447913839034860706705878413781745155804494558345815217709827535392635019961316915849007792026149829118054085585230466385501632437121864581377999595916756571871896529798138263823178939319594567170662061288327842036930833284976965690192625652997845399056544977258650384149108785300770088058753010911218354486557769708687961544945019081063010910690788091220725646364615056185794806831499026505595303827313191378949736129655672977759320733455085623095877252845018155409337188146417216709464555435741636761659910884005852648537081704351223659610337428642677589042950183130958924722178961261505658868731146555480753215433330293460463033667198331427794737036241064246159229954450285589601847951098181422607871529582659589150186773660393904355002628987141503736810170801673557679974650997341451832013009419327660859126834724442849008796786695509803592328832800530853594337255445326289113052201413699899902262337940797272964193027347377004232753396800274121967481300007460073111197383962093277264012563707158921388133878213946668660913243470134125737148712014878219236705258158379439841104607132144878512970027732469997731148699247740497883164115946577447922606675781220164644294016601386256129198060763412697974461818335707216737563798132165159768927531932880686616397037931471073378444491510159331180808555276418862388506340533776563987344481759807041340947544580841879959676146999699510679751970927975363131125312994093373684856070202231612497603790373157078438243088751423033937198248031725047285485165588372234468215672738536687555764441927251427441988733579944955646240717302836113323331468489225585505425484533739083204518220635054880169306126614603949934216277601217051350234531053298458476494106586466535851117251067226006424205104356312075461954253177063023898099984992382756711672901959878865906919780982383005897370772793475053222417412842797132995330157255673691425757994659621506340279364747460777014803569036017272765182873857379807382373126482013345251089373489691678572724935289962139372651119889055657247454038926233674530563063044254354833949203885055683764923022433677369710380410351201581093994009122863559572163543096784991939026764815310375413965747605192641199425264137027790124376436678616262026225003654671161415907560969710466791704345551122362840966812200653928867093391645784722164157950466509366234172969628697789678482849640408701476242059966869814519654346204200164226232812617953312372119105621619903617489482403184914979874182070049484634424504754878941923427141057170442257804340333881662369781921453862040425249592517515610182911367483949087191871695593683606183847720055307692109357714274683830818519343514477435554508100152556365613163667348863928701798604926852813091194835792516027908736271448611806966041608742549939764826929686885321772228084518146833469219712964062431956772803375756790468818305381955047026788132033902874835817811647908015932340050383796577194472857085296342945248709929413164059886325578948800268891278689427767760766176428220211007561868035139290312525858287712120492634419579306164645561446580604971725786579778097388658043220284200040038892985555653070167779087436135543838714909131196994163152528812644843227383128832192190553160395157607206902478719986675437155515941343603125815881872565706000461578437046294129739138716052340875518211710215494786291313997885615018382409415778414815306997935614654762199678238134301742553262230512877611881523632414772895689098364088494275364506220681940169276513968636867499937518420581915887023581859109949810792002246693740780036893999438091969979869998483162960840365699443963146188511549852079168032454536434679339679546175224786421014507499650027097627245105112348483134233496812110142043112287531360553153002446249720213669108806149613775151025456540916113575936154935589397430550058195369659834270865537665863166305228744687993082940774211641727667185630013559134139325273902460114058099474776762322890621141757351564828556447389617600084260950320137731505519310864570859324983230804656482896659185959297243567072131883011442302332148124677714212355205219659385828744413514759929838548889538904691606990390367768827169231499190197318484871954366701543809703650699492179845380305992885634459815743304256861626016276178672057762661397050721305927842347543279444151598516184229085405729085419452798476249385961697684543778754822149087329154105470929898902437764495675139781911235763487227567889410694505729446831180802907631925006167998690627987069047383916681034677387308000442058223002029765433021519347999672514882744470764180102789179525174672286262080159877907564434696970512612209846697130068543577433180440867440918590939856664999078402463537152733755965139262004440164712912936469815152727191178429948602713799372503681764470862622742630382338712794674080335823758659993895898890869424223240698426260061798379074328686117871120835284619492542027857645990273729784731134468156102655033865240252125565908603389966400371917852915651310633000682412389167094984068674194671147016406798455439427008951354396880520458698954189371281351986907202314172547090182099388086920344179431094844601865427917029485426627735257079381710595576501535066733788626350345119666260111045126237607526767294825609070871554067760401529840157352710364084027517657761850128419613845762885911064283316884404561193166077672959095953973386740578688824690494639147978452605358499441104115601095874141918784824768734232871523448151527722554471856050765836189098380433265479256332589973856398807291879963595582418219540436258101043101817978695671753082823894300413882200570946580423018455752049648357841652358614181320746389348608526228317424448266361610436566995404945544962808354005650274229239599160672749189149618250105146603160385527582602148383691446041948199257921152126478799190420213896296533978178261068340754044914339616475683939224118672370108608413134541303879465146978728127174881953467148926451599564632252897726415935429017387397309978344626286320167627005434723544654496643392444138161567415896155443567364613350589568303473656829360206441860164830062054237667389795161445267673782898083410869646377455147017165071396418894431757200106453421913399471246034147135523472679890243751911605410995836349833090057957197616543612717737681433367986848963454418483147206880716859913515489076184649668848944437457666749713519668027496083980487742191828466185221051240929009756688823143780652113567898897683273013614806879638358865417866202788231195651864729906900410512302064020519344432717854005901565995005215398734274960435449400492128816227434762672314135906681391473420219725810689067195651168326720323560348134420715160311352760767458817837154961460862338779155933809654137770289193636614898677800321426130427993423257999347839077196794491141212078403971965477337952033329368506825578837907160084402327661280617389740733145798045629882176232474943928860400600340237200569783561290262190498506391399991911765860046826657015060842458039523573129629043108685224803422752006769069105567695006727478974174285850290408026391463341734459920020202719420745114921694711603732166274376659280724100288429515645275024786149931556858273803738449868400150540782282418272833063958351384759681262358116167232318032296241425665723172235850659141301533145874267867092354186449430539355482239562204320602190241617483267779917927778089552811539699857082887921576306179789841352184535511820914070789303562047039881576299036981067018040921344784451969609392630237405450131854054129326400492056549645233266506727865810238327568231192610753074863521914847320294687954734248828740513699075216817182344841777924331971900376499208813222293625805273543661755003763747627033641230041580240619629899369390552654816185808539651797846488589453907564727335356998956719599621276816682079977811507453141852837246873422884359640009851122689830478756757982120036312261247472683950391172795206585672204002364418974783490200377876938265119980818646091282701087318076006883511412419108770601404879574684892277702021569301821465750290205025636891639080508562131518243698580183503592649689505087321071523686172114446662481454097563293047317840304599582001412387504988583702926437883433756400866281515138323922633486393617545778136449317285484525948835401868310909835800289308589049688226125603488472795872490413029796789523707646856631630900138982408556919127698587212204659347552005984163036566810067564673182055860341994994908724401102047092150115383245942001845521613723950184529523538031258997688937125927167314713372063198212693066386487694692095640800917230730190163180559909834589221338519264979991448977408394038237992373825248013451619261736630788296378020890673241357433748479983853596242518830552615819840804842124487946613593843860521834271015408279807702762265422465282881178935636434592734230504631110427325393013533017721428195577615103065177558310167876310914046970803067680247228710402240768539927484153143526754389793839860633048638890957993179546693021641283992092293049970668478347269319231824553360342317462661788006621706186330254500698690284456327045834173775367737419379249690203463679613496558337032359024578728302916711334008670794888302330586974526557830336438556226086603184305229249850978775374621613422711982902118188046812613214746630586745467958660018440948954730796709773289435914936146431233725243999754663934300962881766240305882496051771982972945278395796534806669654924534998278453360159522030834442342768684942794355052071072295836430622824740575192496649218913215021447365893223891786425275901146040088097671818166077947907963190448441364166650515067499137575465973876798827636762413975128181665773190637281804939049668307047590329291348623227528053066610022075441222297397730489365686944120256865294673799319405652926188290680078426554533854528763724045827186905065297564556560285633305128046459817251761943176842078146159796377178326729173666733042636997482489789492857364968466290036359721803298255550371961749649500454793253442395240418650514673418741329026727575631670870734361622931152284109965030927041578566701380217898633612126395221735479646366045322828527129301579411018684226745794523448438212704381887441909405254178803633318346942256956725354038411052870344304344899344841600387959066663144989176604247085302445080796823741324412239556682099944217394389234638631183410801918377021083344775957894000422166876841093411392739845069550881579578331088500936971205674490232332297926748855932666018540579947410133032243016807590985329529356982418056524381811630824448197037800151238525440345912949096352086100727466439406255135316174300665444117851904976007828833371759155343256627384680705948586904808024897080525653074834814443300983696454017809390892724804934714369114660086928101172145301888667053648654727942519665161355101368795616981484064460040157197996823272594617304274243810917722109022998637701391929483086893068590850888934434946453676989880527760445552146426593604286389994254417928412600150186745264070214589872264339687679323447738284853002673261016313930372679015375090682678314295151581605242825824516764609599910914806908556539598656793463780449841355730869055241396555830506457584274309346327627927894133006649204897549095645737585643671162364101529734138628115425583701927616956399039234420897501380935499967523176617878777446364425384407285244325095569053934537546378501950889111745834160591650035806911523119471837499752518094147628887742762552142930921958949112185452714370098650379132165697779111767871799286150263493012406214991372644888776523386539813500993110010907563184109012190207364041988905506745899882263036715649388253867180314041279827569759679181381608621594229150000932719298545770701034097847526786480500561598965655130365180381390521330122382696032485191104091829177403637019864566721343634650777596732821043933152810051748145680447358969473564434502470011899704622960073703208091652580280096830565578392193754851670705487979871601096841306780306985733271550207488004317034209652283688941618378661581177303566266466069273983966017076532167222119004289124471461478926487963720909399989108236475047532657633719055781669733106538315478150878928143061619811264034352116286512400707510770515446284571817597087339386850269178230636250035993449986565816710643092005156645091010162986585642870074563954393943378206717651538177245647945563154075783715009341565567858183921671989103436730551444733463264869653772554833990337591233961334122185963175355663237654085867471501911623884305507871678183076360837659701082342436448244132924570053827169405383886195755265610906268319055019362469947782305024271606030718377928142735691048616828058195331389848891112161536499231498634616688046280925472443025104884242291656985813245936921777691310286104765696109552085963080393204304825955920264675763240994444842615769488325032421288525556228033880635284920807715947318549467185703448488305652544846028207927051568943418166474465615642237939491542938614008383103122052589740220011856707325105979799290884843468861083864483475049220404662142289430016980729754239847929945125476373656866250661468065707757254305818972069096439427010258525112929399458878199069030939871928484372489900564533238122250977680763995123772780328675690273168683303972210198397729786932359724903467323283523138061056703520616895296172621611585395626907200267807906660360753659150084291107356721699683377579753365912550564061345279605291281981411123098552418960596246448853753095758790176180799557242773712653591125092654406070224015018716082723396816542972951324712531833885364535718801472776615806913104722616230569297149280658136158534198028770817434763118782679430445545836945943982338922215508028228510242700743961941832177710100629944836856663887439639233744852743105367403245521885198800999451955167349237748053141307737185167154418114827517532220620030875574827714433698844014395386087542837648618422963527230306063625576530769227973246414725812269793224992315326514508980890577647205972931820028705809084110011107126223140858672920798278720124401186429710363888779211132714575090016797285640556644400693956305686351893041822619258600649427331181728176669949805277661173228095272547364546513387865716448087259686115724739362148994589894950356620694416854436174422317105531768650371941336379957931669904836751390336713665373574283070031621049617898939072715257557409445811188981978198997353851577910506957289024399102475920736628522411502202956289643301308544099340289385324860589404228096598100321148213161126805862579222037660277076796671052262686989836640552153472075357680658087177103217020298995288854911761595989600028017820631541082478044721104148827133930778850439831878487135777924987761984080960244116397924826877537414130007213369410159101751556566613329759666937341327472431547512921115896591094883738705440622810345712621451549596836018917703999734483660531473294371782285279325176237263382696381450153722887154380426298017459615797746856885678352438629654816545821024783601529471971473731545852727418220074822749640353571642895656022247105417389477397480473206649809795324575927663502658160464902432551602642955287856411932487354364868537701482186236407749599822970674615873470021271003896330746419702367618366301775974956883711139534449312698556830091452103761503502206089381970542325904620867455454287402814984952345236889906279806436137517475635583480696167086080619310079911641938868982334218639931276652710582989447719229788172189536067200087991911637953556056383531176655030985181244444644009333238096105001849205941228001940520133352430166789808499397337517445463988619953779170023680831816581118051541789495482248393548062478671400074945109767604901033289435974276818568332817994199895147824005312856451379838373803687786401442266626116342834214738497989966718205645383139159955231587922521277353068376794255536142652666644444919383187205785002086602698148360926911145316051170868573709370834704809248871396114926538185869967715394007163901430785960741112194191847251127415280801297384976713580455288381297427290719918523098392782041888124517269926245354484534926209450243694488268089042770773743318218814862210308421659228970657700186550375969506215293234865903332994585124714529521615031909210856489229963412648098660672737277280428155387871324367142412955272817055898293254566215744536184702873879872410847701663341308028514351790764561574659928899875124409365088394111788971595926486268336722004632172645380262389861252447981438245480556998810487822865371290625439798767565181171543207064446184758656731666130015561171398535803184884339978211472195098816818624207046335822528759094705317482542934270313645246884292169056071244548965727879897077792179964366377594807020744378387886518054833746786258215945332002281221460498137904889194322824479809571909311496762772376064324158848983440162337876202304282246151133555912312630979205029467325289466937251558944109117536583607968812456343520541369765126256295128282926213239855674669569593595525896458031781877688405768963848994422057003190525086746985881633911606873804658911696136107836766316279613320332961713864254511340111500486378945630000172216142394903453034505091304801857984482775720632610767335985276929509355234623430887508004494369995972533826972097008373129352826514748815683411471379106576940094810874550608730213887609968635105702627873975028690511704398879022141656210450130348693670005526066455636832857628390370978287765480927132367114064668630427236436175575338109917600587999058357333877820437184974028738682880056268309485420626188529449697236607120371564766652073805912699015654032422887456974143562960551940984465282692981604035587915527166463681379198055029625163454152627127588744984042948870098311613724185517462123812538655527430439893731051802277974563013526179339795704518766460007274181767336436821873683241398332119459416512529445912784480908882734885552791585592781616083181627176580851649414096518260696467612079374617151478852771031419495193512398610965474535209144871306413031738478437894903832379275148020532885332168632062370164356445540077796301038155080673334820942496636901970961258164712118504697393819025590052524879308422303406319190714932952942437329483004069451115760386426542444750430613423936415606823814748589100305244446757803327503692102111738431819178508772924018124398481019299742130363151813738644446285223889343683778361494631178653311742735271326483022246068298206821017027253667837991886351143771957107661156749668943619495761992058822962588253646219838286351656165426618243444333146614924583046946531474799852277286859440689899204868089741883700323697037750258579403408967961772085674042859125769173157157147105980266911655752806003122334421675161297264596885718869038971785252215694911393936925399156958771240417613639402655261227691357184626514447258887214883656447604343170369959327794260563258518634943145270294544960711399668617617951404268457637273782619507126349560515828598741044300257602677704441673812248057910474674474526770538756983591664776546493591376671218646226875669885620193378314067207142720726680524676907765954245318578043373419340790728380195713361267257190243477905152895338519681777292176072475938164375426968839437071154923679154218196111421445182492383279568559929453104621990874432294037736634577377104846758257262093211142981976720265260865848804097037760885030205166732421996631971635632774232395520887189954162376562916387197498374380547043241429495190822669665267203887267365245709013341914887296250103134203326159923415044181722246944173222240826201327023420120194996837584355230682845218934999655293906073613868095923684294816115577194679822683159995650418126496471677199997755102771986070715192285727532608909848564787343938958518271548929397147330881780332121588128857935791829333103681295367326888122233304575887874913314773255085054482282207139911560792692485861392178933111482562881844361163368394649690410509848566134552020161636140848274608499847116869017186228373820578830035517952738904495150346356873457459250352545940552278623537441101317332349125422432469887629953732517740211953568896915995711304976294339750896480254689010575884613926782915473880991630086505440666451800084165452156123535905079889986515098704615469984257143309063672624890215074421235994769403726483441076031429376124023423233632850417586368887936674528466369087020248305834401055458814194541810632284722506442718202263133713287669383014314684559620918870416646467272126251832778864648342034341820281526902069446266615590348753602920965330670165746167054614979760651374270775160443040684764513100703914117736340342049032819670696842376436029006004465808714426930493043529011361828238544090557857890456704728089231954136811861971959136701860444319167756029477221098082830672484384125393636419974497313093844586439029229568180825296334337343262304786979868653328693613460862247459610040777560892864801357053923236085692891971832763428543123683523386025598556400447899763886579467414897230893273875275089403553531203996506576010570262134454143576755538892576782506438885503289882662260798492792689507422855288806406717973308443453511470687228520518108058563787109448534496169945227861342292529916613063837188227493154537545946329580917568604504526016651748008504387852709555019246086421775309138074929222798116174505726878568813332546392670099753691009082107833362184661657398913078143489476280051859199441652145001903541892658080397449415502836267219758189411415422106634851697678594554732834878192003111986720085731196065226305152938040445169508616410460155927841668547115600274342736132525192904578468979539530548662396723957247274755920118963670271156774207948816383717822149532745653159068485726112797750850231917593975902765260255579307099443257243827292227192600864066251812414881864885287496340392958464850341853751947228980305534829642512333939353063254419351081592949503055772469839372655118330471430916398605837180887092125367388602011584305592178352956770120461827673213913164051810048972151820471190402997796042651385642513852568446034926507972329988896753041011604322049324644792592178076811874269910005884309998670490639746042402736007924419055666987646461171606336345902965793335126062596199162160431166118123087747753185166586734605189634996161787317222908437763192501335322389004462211403003411405158825178771522568733579138134958449362391397121306754356346573051843013243604071099660315347144619628919941606872661053650867652518808619867882607692921979779494859265075485756381549234706969326980611106502306400394386238273778001715252422162517269845248610083554962349059552080747734311203384046498380505888174804464985522970550336476930304187849451287260261814786843770268613397118298315980221263820543178571806804862088560028671516428224359866678380612875174339013845124759855810932071585902082910144967307451068889654003799510406562904260382960903199568680390815914831807392405822841170766419238235513497655272246465267521662851560590292596313737455685409165346412444383377300044839902149812413530462763344353177026311547639325610472435694206971890188465780053870546666656310665540698959963110917754053863570981230447415850708507529762600190907996451315637740617910237073740066764505430260055653828783826825567068236355076955357065219718611934341538498925031345136697452766691856830055187836667751302810699965991764451276473535719963379009289828145363873991796193023468912388319616049427802250425708528234413279138808752610308535273228271747804591023491391991659023177642626508690970776814669063151942948135876972675105601766855322704009907920983527317579307854820750687190655827879923989973833099930260658324672923798817905550702417719309099718701344953427795155470775649901065536827544162745112152207341162634383578261886259643162990365710195131140193714906638301807330787281428443439917057597089270734349468118165657028205088303475163005466766359097384582407893238585460234449565915582124670620460383699307247254403371555949382374616686863652475895891177988685196571890467939698301065377227742966282359310340855769929501990622168860537240452853585390595210528116836525071569836119964882880458493352745993414719977553627089923120429590540652267258433343697488666690122844502072163597999971030851426188302576107950234732675239016878967522317192561288507859464854309164081492003665669063572410200216135215451175822759849301855423615955019981682269934183320191025975553713687710536631953055091122861999562322399886824871970648369095691216431530372564292545075189122859327079873815537139030940293952580635800398599671618881254804590254582601037462226085356527299081810759512847617891693685721245971355500669260561946991642127348983706246603760073234663450187355480098889362764044626525767600593464906657589165738195860101949405339366308929041314838147384960971195253668445198305361087104587787068399346744935998398988219376273327740028017831886926512391723775952114189290432638522990331795215830738505821010875949882721462086967614571250814179446967907758725373664724592696223764755286431825351447639428389855416630791917929333563884682748806868296682066219643955959947683607655447170654619925900482205680507835031997102887190310713824349390306925909797624508297580082883032952073772740812053354990394316896673280043192505961386649860394751085717461207455297955259980969338535688920669277605282732740745477618189226150893992471103944328168220386095922881502379646465354880623984650191704104358133935585301211207862689731329305391679330786295442481831045193333217632065637368968872170438017434103095284123793293435527077540897945724807463732232303253095243686486163993884263196100825903220232462712388194778991925824237969194442370094245851836242603140330466264853836263082812457158104094730677484257669056199133158170754624006991164178359595547468063783246043028161939220782601490512688604940526236858846795798221163904192305027772098841155989596224507565793686022014106671012029077912147389532049816853114075041989830868594336569391125774552639964140402615893175401283763787151001152338478004293818827711398924565733287471313446309024322764663998603961817715195460129071103208778976396546030757024534107706051730052276955904403829727940372867253305956411691676506899832080692356246204198805976481003100213842694301047449809745431811075489544680232484655964398475978447500040819045745721399931636613618227521540326437978824567064290720558346933109532503066670795713223412936362982903618659040630343629222971338989437404145005401778818305192090248512925849249787703839861353284720792503401066744960255794519683838891609703535121278091933817823660725143024578803190409840784364053264198352587317785049362942840416425763345579848862431751205264514824106771236096203316456763496233245771708608124378273145529404900668227881171244103523893173482469016501735472965525268477137386736327582099613311478956211967576819637580571171119826318551616240490506046253624457052713758991822142511053212928086496727551007915603387759941517004364107049902164328081689795127972206236969398802558176011711487080287253723262722540785713306658950840893050884786102158344215230776049208679363267596119127719575228464917437216029691878603016243996876086407176768146988124239860683631086680554437427616668167198970052217007299066729050943337160010147697424916853436050536648022968851729566091621477058503633315130331733067288434422034122745498247194856734933082010076589485458246313027536169222833501096311638492249975861934846115008585803250672087176555135031308546004099962757851341525184182514700188737401042761307531742363876106245948130725004523222176349637421162406723219515928674808002230536870198559209011880578930307450551542255337503974616575615522899057821307836434297719499575380125312497969224855045993334034625320579921465105880009719865992549466987789134784889575575633588307552314881238437999079896665486777761521436770211192822879446020816855125165951709286986042745806769257372425863883172424394870907825481752854288803720662095064966606973350638421168093757290122590231205149280764460870158797453403074980296384927412475639425791549443371215849891002638793307787935309672967408887472523305845174710682366224105746046474940368960607270269868584737108121790217191474502490473404687712875842945207401079564766677857563522354547249878061877652782773721870079762589587198289481973800504856262978636311377605687799236201991945483675311352275307739277966559786831584467635086717046641954128425068050334661560520832588591053407037703621268990139292592778284916814900819767441708804172567627255433999154246720024671670076873936378322752795602831456942077713865208227142065502859760038818654634606189084293973137145623773920982532922461219005900319937801458659311483873969528579729382770421373129958700143909322465718745849069779824342797007628148569533235092819860906213042594554855685351081554979406306210960757469799203354429526464679165961595185014979383486486901876424280506138005295811486664208036172103789313750030287556713025951879437305580950178634722888171916342167739254229001787148555372389741941567415015639603568429321668796975733385364648295952276240182277874127768495641526606563856220754654296926375855049771300405980089212342104980907895368447526007932110719866888173965954336880147872803017324292440015157998251657039695913439394889696606942276971311607517292107116822768545162533108110686730425535106801266024840918166566769460672737092267417086002118608256489316818421246377963739276158166217288636960034365858720744586863310112664138014589708093159750810128315370134598041292534455297797466631474676138696411298977976114243973792882677338036399755067364302458638315460780802009841704029029593617994873351240556308719780476355549758279703008849790235254783108334700429980138233949967799737476353895754316432759760720871743722509869728069716640062845161720788815159087261351725781245616212503481708469570487291297225585395473645177481743168226567373518543962020607567742032439185051925552827755663599753117804473110023430209560707752813353612956537384232044561629827709404023257613367714324542282337904470459302821412304414004064297109388446099428084960954186183935284249172206629460777265065971613280524706393991011470762495342187968006910234231640297937583463463567212794574909242337253640068254596259114697646802942559395820029186803395473901146408041155959302818007094357457700740895271927252478713049875423520171153682297750820123607950720079639433045887846025624053519514432244549521747437347051649321574401989384406937494927443811347428817778857094601709319595016809876087501930940482203902678070333778255945802689167357126677917404873282775298129594087180485142463145343599651203904790154382330651064928667781721723251481407247088158400390739075665075459317362499212881477055832392727948635542927278353210917147230469977690093525302891274412040067912130694607809624555957313711981837980210609150739299125452753932853914375771560029348250318807742635406962421656381818655009766085077700374447195129861817742012532426387439860066084640116480431126218183900380500218511989317947174041957181591193506071424149696983636951413613028381272138189507234688537011680153418206974777244160249062543308704330359088004662259567314924888896433221468936558399418500395753359683210819731882424789849259912589570319243235116209835889386042982792327649133417101664343633909278071840979122269464119786012906396639254877287327612411019062027112917402297692866087260836122674747454477166448163856989028785121945533693044828399875322771015324501845748819504188390497625229831741299760910254970843887359665776737550893650892073215241141785423846813499565067812710859204827320832595277507207098251480408277105526179525613124358068019666994801180663068388644750507203625021658138448815191055834773590567449819645584870824543207178896654432249225392527777475550127756106825642261220597309657192308355890274319102633979947884045173635932613688072061618168513677810125488602326949272415459490840810192620683125106917327518822275222693164732378883856980630555917363154426923305110630168875247362796076202838018567636800559444776384249267657740023947936708201957775922556892074467143419946944930375368638256209133222340533507017476035595085403673537941966468737267643742982580022121643770216899737330139012716691103478522793180858819358656813869048045043760855181407072861135914465812577123711740320114044001434038103595870193290268848042797219543236496656886700506994465472901427005574230065068738846388623239929375046604579522244621870801461754576366267643555087552999684672941040348065493334303050480734440580910256899820558424167176798289607081817576979410975762387284586287375215035983476623326181433344780122747831358409711729804337276368337607389754463136669040768286791850817291494132839116705474437467311705892964440082219542442123820452191053542868094184229377482491785853974530941967736515444421653658482610329020151945322838790540379419261834362447275857459674563081110770978224508715129881798267614371477475814241855082011181504110363631179423994834567511797725689258862713730046261882422793719409027995237362525636534523938514086724836793031844669431704175051431653723795290138272885012297121553286738635702550783518459712999329546619391459245296837459426952757821350932547201513993360898675587456395027708567085583660687160805293273279100790030693104006274422994031028124669417261358395891634628592181074947890468464796149322528760549610635176811741241210980628743753767041863208022846853058305684927260920300363937216506433451407239590324157856419430249437949395034878049945865263852286382074653752071711649712225538435761135688852345192242429137115965782634620986681027480165879175185780815002600543920982524219949214313880554018618923165219109262305072947396713763961185685461939049936438428112351956575791669697861504709456308978392255516063696973500980736624041170715305215637187083131183161703433098980970392094622448979050793246821520027087756858049409399813384581283729022511650280741655035295986292264275242783180817772464443655719579388635011822571092334257991930218064644201089093947129756037977443368875454666509003278043761111687414110055653992610601581703774691284944171285497639827368013953754358295866767624142979938787227910464736902403251648632716150331297230528115428285284591520812273177862763491744934657634254157767534723901761842665552205053465134712032392587714772309201821041564912005391977931024327035038051059577922531177719226026758435474960513259476563617431126042045491368713076241840725086194976090388106644829034765748846674894120651782316552515230804479399771644253256180742995598667668372045951965139636913835047264095747654316302431495902589539023543133228184034524334829644137816566296528884554062332298056290868339131609020807301221691580634817683846831079349907380397115729932165419210392063835388323632391820931578606929153562090804457187074865267403084189085018590582437583446463861618547440044603560312929794310349891103578834016037694036903490905194877995862630392182641622913473349272025857983620825240325793930138205697211389871568931307673114311181483543793349727143193892032192374159679306047361311058709057363197569583933028144179320606008088698831415513660840193593015581867272247286485107923946638431865898061463638279994639173761648820201038907058753799305652476246759810792903680676389742940258294083857298296932865058453349477212139870597095044238191178390867299049576536016293362875083245332497811666808335296674095979155086697212912854756457256175817900866649461887354799199743947186882331913359080653565029466578578143051364980390384589682626636650605150393466738748899109450452998478901776498147092064721778067539819960167220442190041609046252770140374926969939429433856501668662576112993452293735096533046202009276004383519371352608682661802261446170168995433008955144637740720102030165003235639792985301851568390706958345508384636856998541043081212749674562394859704513695419662218202333122870057886832046306829398971161228161724582888062130054453076418056246020954507193436880534703654704732650840823570567018319067275544021978006123647513659014235367913895975542243195447870419163215889484268323479528548136470119182380019076617351094080909102408546586574535633730023872509412453050675846450946802669047465568918640731668467743619871322948210797010368927705126569724008362967430392399077433319710212668283847648866363592466115333927453151090733585617444872762545682681513478061818726617614047536732546021169132524369550556828465030941356331420142387436280820047799179267154166843113445713434376454352346172170495891753727584736908619888671207842968873355078596005663501206104998523731379893303991388146190994082972422206195989451799331933701258128137591231815921145454651903623575979732394554462447381917255418639062508690760543564645049660773047549338281536475404342494632516925190046245069505162395600789576780285898685048996454175835356202264708778224887321750871511021588516735593541368999966070619327407518886642303086159740180849879045950678215341392294993673794426821161196076998128677030543770144860622514626256847222629867842591105645295304751140097969688610506538161547736353365834951336133149387209154734005122880042084406090493365901737546041101645477999315795229225148508145867099397474167746204646391048011274082353438540708080844033250264427128975066527997385983676257482974103736084753018568958135259251150101925289793388280165203021563159205529385936349550871825801846305413096123632889053529595221357650965980506735522618629038786848896499288371689153096939508171328880625954301274437021970503550787044045395521012351861400687560825310437083362490547770892132310408581403193456448884007406672667195507483348784376547733497765481262387146876234537163444017819212863752787992861861126615635050072480358743837802356156604358849935793114472348421317088119953286610167922802592887556409057671269005628773386128866734039850843181091872140291224153131415876888024717021190387213498562596781346996347646065687001434050899707844680638270129972277693802427790036730872101869886949865313735412583302923783050646444750132217369764584333363837062452664520337613982523727724718950348457190480201909810898561751753578168512128147988166263983492294486628509034628551534486348618397510796020254784839658332801798798055656796137963799978866004754779890975360655281598306085863444760876644103180169809164225139307509546770424753592377433686160555998855997656010232966827947531426022742733066652106231191675661500969938715176211287824792585727691030550982466062468039640753828605976454377908864813463498500676693813410191207524692735376304604975666960168969878707997703674018416061017111610897543510001864846705326387508119287657425736552299922662075066437726598677762798597941325509263817418570400467700543143154755085724503052941602081767502155724239372101648143263556339890864429543707603317797025037505807976730171427133989975000064355074114033996367461002435977171568094396608754553608028151870143946449678079072389656167181382293444536305068353855237158861376060647386743202547530515607751265212824050410330630512297585074291693359753272277279850002939367276943235270816998183492328185409652501802120554000184292434429342105309357026509036017305495709465595219540401665578406699271503335566782698796659556542768787074633699742023538938902078756527662042102033006892838119216837832974331617656065377590023593988310390656530963548588624185891412600504779091635102871403008289403010490984491191633386121627211507775602083475113671391715627047472722457965812904125696530857940054946972979258695791683490489036880070635335435038307794664428672653314721945183407719608145167968147172070793789393647505130945743744564299596957344682372994477094787307637320562634843290674749044357207530247974336676369881783911185828310917075388782751445699488746746447817147348235237580380421656794844255197564613824947930039862402649747684102129891965806894923380626331559378393763062710592017671653040915379422629226972498670493899382261013812362184333074531185693281725873103211054781358238489091022026426200511000063470704927287222166425617439418216875147903019032512768096438790330771771535361417595690973287892792687353847431700687876389701825883326005320405772252807260558379416995080307946456323913437895074944292452335574337062305658451568273342861852078606592052532626435006182522615909400387254846765835786909003877372033995223372849639923587188154385220232940549568530857764196647638629857067647821150896001667075542952900133534462862501366752807269034605558362704728413401820383532353012215760416634720169805372654868057274645638416245932899785704784251683619728927598085029922759788179567206692120558627603962614512108043276013553631894230790423097455756653102105562764436332669047757269229626619684138788248036228529789205266423456851918353868152897380921827694420833063668754306127309387445178625929940337756580992745205144992550713265532028032713493453327335311180264559433061485774715875197586774870107613692295535600108132946721983199680460359265455625721499617610862788236126132287520195185106784033394687136871947609495870412396170433687179045012506777460147458012718924919955860332361509520593741032958825392623907027744010463901107560447703374648492247115397334206855949323488994940374815584763924639050758659253786139731575593678061295081653425216322916477785358671772149617322941016116431883517597613822064012643875107109964607530769772773034501789340017281957573467280167730733041011600022964738375066596900552034048587548728035789144807076734815825143830102734548609225132856379318488343084210707123345539844328637498945727904579218728762969827185217589004470314808962420741776599237291856792252425982095855882033341570135742581001283539830561996518998396110426230705947408169102515721036312015405468841022483048347321758982198464806061613557211852546615460918931223266170842542729213233358785024496113333281116776640374912338122604104704352463724541854948118935401018155433809151257159616864490764666028349360820328122061253734981050056338492670759050288294347879592228188591396238891217795652609372140769014549343184029964450553594847906136902539960524430494248255241231963685953787556435717679411341463890740346007370208285455057535244035201936735986403092154859100310128296842440457134462853849827837434686857837478047361122686010374083534944311137331930577643466428935123774010727305833786193185146121773045947330137475504666090177082773995688497691775558313790281070037585213622946052799917732525923438371132711483845202383019604103975106183084920596162969309890130643403426177245140791953918142479222017950900303051091839849223915987149075174715596663150692096918904655979958134200010226363108876280043299402035628054258183362835375152396571838028630222542142218789539657656135268637321096437262079196496469317013795199586771381710503506389359199997735365419432297041332721008074991631558979160434415639102875045151356957288352853632756626464938927238029298875769354221506971574886372348499521040616312432600874214101227241756788053165995125118361207279270180455405011355376122277834968704799903608317489149777870226914876004647971589904811125974525360891579234937373558433647295942833477049731254335178190784986644062923042978644750433610360207830886802587423265706686046304355995327290442896998895197677829553385778310856850527417345095018790405909068113593566746192243296250062332495978160862369530046692423933867534111987320035597014446673980041346538296702744915859437790641047711486780777876074413883842058843075450626199990808983537315446254408524618131910728047800131571012809301132237751639832615363705669957116905570542593801930110231676279996418065063742968133738218674732178366824305267481071616575609853588719884988413102025924359423513268962021940099620115946497168144430940663767090086298934518716282283917616232830327338668723034075493338620106472455622716074606013083553294942847041095486137504237994452223400648668895420152353258115777514524553329138054865965025386610701799296665426204529967868321311083093071295457577481971170454732441651985467049981094462334048208138391977338864776649031989313911625491584956706941556760842654855109375300465462145508036137777118034987098862087564373579760181025184133526054653959652140466571795737699332947066187385312137837430542420740773358596818786474089641746097665151797551076289332297220811977772376346468436741941253047913229277718756117023221519509633025563764529533070093155379151398898724054361498897823876975365552983282214770101792982942999232090133091822585733853978398145025369000059074085951473056301046456559452755805327719041416503077406056349889646227119571741270530001864701472711815728469584112457876804524197761949854624990389489206689480002932119792299985563051004171792914725201703318006485889801318677376381828428058711640681187078729814160633326802371494023197556418609386164759307592008356261064199246523091951417487405510221660024583788730597158055912584346757518858809919962190202890341841008667618010482655593626275154059978989523135964978502441791361355748272759824783439335996049261152740428824518995503916133347915285520166455598317142396521947747918981122652230176336803957097352969014680041299177506181782508773165601181420948463028582854278465167338606201909922762092008014913998788716355486208855911471044960129901264384436449577011864343598143553963430060420964996765706479318832164297981446196009061930156726011406586178175960638771102523917674791450691830434995851263944076951916984871760745095735729403183572983713234483779149131258312758403536204703370007971985983844529210281781828165663494139160888742177546592855634246214749151708649330705666707860306661890977924144235244022194334287331263225362493508295007026601392419098326012790944624383946681303030211751817155774033972197975031599027022464842568051599506497288607993097973557000882572160836071167346441222729549302459688206070864714158152758783303112729194351535175750871646771654976436369375102145522467809566213877889064838695752744975057568058555394827584185472585472223842021120634762163520182715035004371535194329308332410003451897821831750420591744491898813767139001056468233897109908684475474098875907174752426324805867734821176675084776675942127088817865437090595711578715631534164236528333104904997448356261009637529917117168964114106257151551589993853450827090719194461228354550212781042262847694669158851035533092705516648614673690471171882220180641526730725101113115650843413804661518279077718863209098172908270918916638574837619255225222001331151154782020147362913167830501135274600857131382566458699114211085487006460580730446848968525596459281359895317285280794062568543034912412316243227002835323303598295980646013820011688796054226817444547616250519102059181485759330678563330133430297367856506564578529803626114661539297050163331530784005045984491089248862638781871133949247229974521661942000042459015438018735549009419432975906723209396675542765695720912073018426282494610268214102894788961206652929471084137023368177390748886157396240396520436363360073261874231632492097290290587557312971037725990610814303297101192782271456487619765667837361200214660135066571698717381254675138087086446030965070429242519040866152461508898653790874009190493643924435106130684819251307084417067705672514455160715989473270994520385982687213297786166683989419493111746729690683658412086000694712896941328971423749072816656303698322140220485448521400034433042164825352482952520214853759586574874472389059562517213527437375585842048799588495015306944493782270120745267888691775313774425778215890077674936076727435128132790118791260375731470730070938507089578778152336356926723660886150071531305722294327681460241131905665124791599383895496334336414617321958944616772904522436030768875628538674233073990213466461084160582309428083646212558719789950899495532072810472258439728910540345116675354031927257638233518439222458462744747770740945390949656585224444413225455691084696592743566601828245004816033234449080224476179544327090564430480498104502645584417541784053444721740704302926276761283421151754692220770658685013066967128698483974645499974009940915282835425298818557627238930227806691983224197108872285816728627731858681560649496233318456873834484035435246388121231219005661087240540207562717501627757047524638160788471273410847181877018667415438345211356846968130745763022101068067295605497334637759753268838986399648288462965135135867743594219766740944149452454188786682093881713053114385451182320804160492878872412706885577519215206672157084909106169615941194625365323824320752708931146503558713249772416106763779847324978757895579303077755988914251738622278769556388696731505742027182787021109613283120521517162452253474446132411646481438803678197251424552546956147318313457684876939224940376567977638518938094867189503292805988976394112932519579872833724952241047023276830674175485200775810067255112696741961098601530152463249359625044003863329519609823206639815467475396633236591690976471181967327915085491449369420261570729740587170809247075530416322487687873727014812968304663504699884456157191282241822817736122870384951831796658956200213996538931160085117343694758961338826957007657673607353120940297290418479137888773526270760367600034011987901322114872255319862649564727903027212647389434506105023412948750806420931745938093973238549609982770630746351389520412276952748210353605960089286373576051334714851165263731534674467681468916587866751346879988821100848997473770718372690584688914320203179170950103361887122500121853791340480739572175787556361562484344761323515800474236925290346190164261975299054475618616137751631196526914446674999260824566748911830335947634713831359150819526664058724465738269144630477203028827119983416581650095615081160561935144461907872505045875908765594438760841242785508464384619553671588831100243199505822248429312672898359077371826026769697825240615563369852290302208971536303060487587680613451222406646505252517103020616219490142753630594174433162536047418009049701011095699534536947514987648788629347027802553065800958062451283517186218223787710638776626129403285934886380896062648056851653812026993314832205259617014568021777971480868877075072899403079582235524186124865358116650621606069557695173643216135022596535950883365991187157838164396802683674295565966944488770451077197476566444827984789939734002905220466522364001055528687805877358200555074645823429937916562032665572457874330825008424287091271089745482442778381011097096134636649999507861683789709559751520451918494286198194282633079702042675767603600657187183650204285033776881874745610012538651586927658463822018155894647836746862694129984418054704202296264786355357081707227817619624384253665264519831942799900213990829807736160245289542261181957233004599007950403841654863937183939080801874848999114227483990810636217066238358603190729004040315716611152559564096804904335565614861430085401504735537134254712861183372708322476463236754559328471415839089353411289363318757306676698522237188590467757309957680593854903335329423478783898235800918804090872742528149800759906601335957940970971255511742814738672129572853912367446911838054477954915422290483927452151277298271305151673129221923583481411829385013987559896764874225743876487395556271641295715883760694681972551023446696325249936251751716050657156386564220747381420891849253263348575600472172515898710816000145678060176208720835806254433084746166626291987494181953300847583562253223136856207229297599779479902257167785823265857114465437635264205568243734733363615122476387601428110830924809680618572862891750342664144643095776383756408489453590398922051918850355982496466123199574906899814828450311651371994424424570061905443894023378587762712887949022433499346519887641868026568160436296745716205628437322300863973430741280655529416451378113759196163407209587692643121256570790050602982979235101906322107984700515352303081877324526919679400637476087939357474546239517177456797821554902592650696913525037506530163897648430469965513437027175818454170208801796490051473465791853543761462730976393561021647627929324736343173265757761469074958446064205721764442884108061129103773752376607565363162423079405379984561026312834992046686908015740526425466775292384953898464265076318699998695647238072548519429741660926077472674716364892817988595940019441890102525596527212710018034715000231659899147404014582350235169824871621856006282731566174689348746241772339395293115336459343871942384164270419743257543810707793153864794681304844971720403156602088945204994750118010889086689869646352007704143075523355445437860161998323343931449064254568431063448262118934523277162756825895486313114321972328520569608182378976055788533102984825970799851560871895794424930238884688353014842169044630963801616575232680224850198964320396806347011583231867994921718836475375377027809632069238554793768849426364583299757089164330649874682804240835316500867155543241176083194983542558108230220078014775350152940561667394198510671300414655170806919879274679757025213938879430594954250160686778192902170288000574666712572561090374880559447174088842113686894069857845534940705347115466022297107172910894569852114375209081579095805717078003951575346041295867310953646176530907128926761755641906282526876719081243327153530001492377690801242209178794828127515600634930515407654711080396560875069814005683431281597244151883847175652281822982973763638419561588643589177231259014124275838817968604637532806485393944303464262399614776276894381645126033481961297314314886562715835648030802993773260760600363508051387014821928449602627596779815437781547989211592271947390082439206083369747086291496308460428445347747706476293695501235331558134903626688878387816248855236980787977539362297903964107272711672651825179516518597964351545803746029127443989269568594765417053207645473060818429835794151736071094732851550210482318249490749144260604793281407889529060985632645541435919144478308412655144916151257545933103768953175248079581895966798230272368307541616244457490751253685033884704535433978756595094961640775686288264284950453154310593820045012165063315494596097703625249033561643353073881039846543865696439337510487263665222001660702743870396166747486866879074440271573276269979344189815431671447801819077010582819410119351423472489252720866383189709874688096620423492884696491529437474924794986744421314652474310443288612956333147995538438191580383819164169110505797094049807499657131940090741464063515953706318444692546372800220016134716361003219984649999511562087154302679949007561431725510244461447963659351846153707393344866284318816937714509003591422416193403987201617499185032852468472951956351133514483673879975597356688658218480645994895850835503029803122149802610351491997568591705386862734536435863227621819156420636433946335914890422518888819766281828103390646456763477375978358481066947402236156391059595253403014443524193501984745408336412384374250284256862427724387357566041917719519805153628434386825525306036198138032492216578887391952724532289680947155437561339087809358772307026346688252331288575298578465596970146547841646972931472449323382818450575983455302982643288671353711472841876350900908596135761061515914238543913658782388376000031794050895986526383184784882829024356283219044032430868574925252237160497927409391491093740409631110736763138023554141248224910611883536613439734195032937342323045421492578268080986031403066148854927912530748923640854530848560438008948755765119114278967949002787243393321100531210447757461826353774235018666198203387368020569426585818638504251121070078551287670102411746363976644999704152562721625901426908907464699016158583826749852411973160801261334913604874462956941433180150412260688182879425058283397575016119017478716631614988723421696999553994179502599528816362917993625216351375421778624974229095857695683621958662723423169720207840892277082772724501970205755974400689006401132806780586906549086942327973929952291791260124771407841564808881671035731266266824459016911608877664954760375799527349379593161070829362599086370627112700123497706432537138637230151993044700002792211136643861327347549391148036868269583730225670732424482793248887775093477963060724764654198493423497824947834333768418225911739688344368969899667558677695212369303342450113262641810580808350280042045620768963577618836825933253937776965367281525188828790191975938918693915727490627114333963814320881427142213350286247427581028799707178633489660072072184103016481743334277028273802311240064451342241902122561527516118460104424491336876124025083340899534418151621649295623727146564922754218730089444333904164170942756790351113379399508046166170502386542890684826208803814271136510944504763524548577526931142355390701047575727847359520595715750026972596021317746108330516569058904349129388904292343666481520811007240024203773279527469683206053020280768614671742853546104876086988055616855701038802918258074763111181211317533328116561353948045823964785081127265984758230491265286735519176315254866387697711996723291143172592899735345119467608418807406577315444883077849117691625289761023353417278903955376241616873191373732956997003111317026826078440212891477478366722310712314878086306331472836474493582784934135499141705448605414647659711948766175222204099312382319364606560283601308441924022051590107856631109513454630269961888494658056892323757750493771898850953275142293194476010091267398208271904637453444263723290072487819947737194408497330393530126180665536350924496474070798195454614214518599082948429034852674840480692532253633577725493242403775903688573285136692903947109523195646509835757665167747865553231030139955140008077665105270698695571136688511071757966063573195826439549937628519822899803397483625725468022115273943430247478503242609773235492687460534171596863033661518259498915293461830728947796946474201635649823163145392867018177347792257411847459402272055966698533761217691339944147283223946960506533672361199138223243979875690592802596889834801454973193623098700545674648461265624611933829938534274623340063201382409365461913697088152248331022246174702197756836386037339003244281944522303642883021181920914864930663250419675638118958014865809322216965811601890331644965518153847604701621280725213506828637826150228516542103463081180985930676971364449368389879573539703840001614745871771982785139172371273351377578904660128021560205825811677663081275464248308652902476088395261052303022653977191098717065253379476367460231834172108747720903280536378575972394908867135840484655247507279685842063886517948840722432944220896153655341148589603566688087547680450062256739420536860599322876373261173186336903176586721303409201175358939592120136778959254492406123664712145468122531683393214463416590580564279934588153752512850588310139941056680785180447843208865588695458714460686642588016402693416758990000881261499228140588569379625344969133181443422750135434586375660529683226941323779828012598934149399314408128613163412051634315862388826611130753539972536173903803527276622243190737507506085598189619274242445163466032942163595041768245127263660965293867794574785312741910527925332824255866293620750849106172933778692049055695750455465523844281479524008527831660709952564006438105869153405618891964022142830906416256573922755646823851521419512662602241648295251474010593591635218865609560775383937779736310465008068760329395033428056242363487939040513870789870373747426661409109821214132891409461259716036426412808277285128062318344750264065695991266643527715101420179109610739848208446285053993523591614762441781437011818103173221171839095120192720991081387610717056080482360997201483600564620705006478080330892750705918469363002271471802936236374667072654198995462391427301586716700614284813771108032848168699160116659042206524958971797075516389555767130876986754688710100572108676508532160842162605586293710321036610152678742051859469325615149545921186676797505413998371576545500111761165892945792557160492175882465171668755213635794492007260574039731688895860563268886300311183082310143374661210302316172188561901915817259777375979430820008232822011474473296786970947338346643950400913286763802871019664535333483230228515520416174218514561794091358025886290523762879961313856667947355936757745826048715724864068848628922404590641732111192203487251647054005592530009027785980209669436277719925512826614060401402338987236099429058709953240881654635059232860102513428922893954984036581046127360689588909049834680415676821094914439398229507151273290237588015835170092214059009729003487050154748602658722782200619277991856507916282865977637744547310230357209726953557351999798347494433649328775958821057012641090960060620214420016786520346601987009858322238343437283685170123046524907145149681311614238936745310002505984799554726973551036001373007451636293128267216840585332594098632862997064616010505140725292708326124825858091453968129595258929155799153222369495043216049843065705023163089863867864212791562811650677938910132636360504765329998021433136253906152879266863369204892691537700113391803838780002090049805262663970776313452976354525220264876532661074077766557730665046989943837189310438035036629797227698256265256836620495760891895726836133347003650678202485178709635911739359431576490007454201576352224842603578636456127525756569699727114288565186027277455713686205878704047505391391341481010226388472044587020519386832906305029486058658129740300578865635325986891028690427798041373956231089008225482615682474742375021534264332016891245987647912273380281364653816669292763577665313701570699259767504822841126222296951242775898067991322605341888499017750399859363259238892660670325532372203717617362084310296856338175435977234139987861951829855661578269725415761091179585894036926121327267597896155868319491842145329233516327984879476185638744634870889084913803652419127371389755138634192752316646705881351271491539381972840709619408934268055522763538575447223530692649911691778582007484421072929911518309161641372803850768976544740653407165340214532003800419538562951148893255944015026443848660911225603982593099943908576225757442886638292266073035649601833957438832025633567342574713168221810977696348780005920176388384158911570643272206642070394407507897830534787643471802088085694830103697308044267140534129875052695891273616099048591827927875491328705744211786419596153468144771833333976033109142955764977721023904492699774243345087442198202376827775651103705183412209242851386663907608034787120782600378190981541897795411769308905187438922837408607090866264872561691769094767527107634087819883727427286384254352490744829945757368644196515482683563221216949474697682505524697807739739034209994705386488671711829273789098834677082302853420401516486144002846276574433035187794976232033598574089471081675270467879949371860263619456354173655587905264388327128801485027119724651966626973587581928752985599949225271467879447327765768779817498537629158252676803467712482257113222370796240528964015833728685621407273257147033323347804141983418578689799410910671525662968069479189159256428349351908329266178595073776177347604531674262526866332506916363517750026291028993751599553072758064940357021961355002382252623862998342457040396159190376631713763285841858655855109528149036923223375017321007675545677723019658013569709517655109816372900919718338561898245705814687017777502765733053188598321262338364126683530327049987030846086904440707975403300330488359167780305071400947994304819354981672254127786385376556363878689054055887803348064179688794867274099244399095541736760316063077642950557713802026902200633142231614458383872657342106772129910555542200642155390514001919555316804522431686358657458793402382764317358693375966685122870169963388399992130073778164443751617967029136772277211343557730944225140768589744201594791376868595146784463647248634500020083694953458794574765067212527137530008120394469198724983362510247401614438365612710259591548908644660931197807457568637838385585614264521730428985401530147716696925290076147171847010085402847873166201674383211732434460416674645980212420278147654180843845283717760817674981012228897987647694209847620392227572482668510024715802425727026825738341183521559419316523874292272192440610628101386175011876434227930270837942257330567463126219077456035123150716670806189486583088011917928844664592729258058520141518340627003322207898191104375372852788027197320204474870323671638320285503121312319584752086151224321650829550456022388560088452826942619377241326783735859977158586334090929895624275370899944329343987261244583471017790074874400003736851611782211607617797613355680229757109612368433331877655770940281046305727982400609570318330425064390237423396575312497091697160443325626659948678841920203271648454065582295696522514385824923572476906010107577931854932602422616254313694025395152492133958370584004409732702184714719450507691715662103339954816360234173712562269549082732011760262331217992810878684038632880838171658129811767010487727209252351534200416223953822878182563588614793456256900402190777167759306974680248385222468014959945768746486954187190758077920642131340110775376714047592002468569525258936526976267654035866401718705318212682842370854551077106145283544762020856719230088505642591135570488524816220482928511389288309995499838360841266026744106935115915199855760070856444510707984110284064827435563123557144039432339016680790015171166706011467104804970461367369987702474865541844679573020316065624498250302357109179705541999574346480919702762093333190791687026224026136808365218070361331053274527595030943687862893662769908511567263193688810118789199626972756776891005785522997908464725029738089586548182716298512289396750559066944113496895019249311247324925235846288703243979567586271278501165183384634247825224241245551374129073996272544529910007010451780929122471368094866434149159033157514208847264777267524386100297426901384521287638506329655899666062940105193082215971734241953858374519061980333973013255359667255678159137356232845837549631488345818496079656192334342129687258186062958999979050602467974539625038874474692270807126591279714848020954905439070695787967418390078803690912818561854127125242318515122415468948955978848438732371743376421393668089281730589683416500907708344585835764306247022154440414616612750731673584841370836775984219619045876645749959677642903377370633959485687066852410433987584802935012504972902523266489639397614218507287774928704667993250979032011751198071297921082034467033061794540147696661952253026435045230708413607716660658040359310759480952865805456837651905577759021091176892625938551536162814193068988846722662749720062177291193979889660830868909858036820196565183031720156420434267938572781485994737534509076670550716122397617929363355784961597952205700760803763319828061099289676549621995106709116398796191020898264962080465206293566861391477638993188897314587040293783684906423954515154763482595925426317063915190914874881855135456310343152278917953589364719127354749941392305723878211648498236385288988299672817434753852527066025275020055498463205212640325167580022786977979740444664233965209654165134330683089671705744444743078922290285011127551538990327650916319213138302767329731541690765611481260334671709690221024869685739511056184958120333171663485337312512176305950215147659237704348881134961470920750185648715728291340401444586515616734915219419638685836648958583632585689501254584142619707500922432753444350874289331964866372670444038837235201027617286767853200846550191992705896890680520327157401631297259899722711302227706153085842425983226750843269158404628742726038184521435139944711922533664325998158111069073596282584584353433310249610790104252861494182676727683636569498478678803664616217708531529369692114765449967979562162042835014296312083715557127555530996837611347880726241742311433123492289825365539496676730222765461632575134615400022734684933069708845657090854269245164250755438898797561632255034131043216512635260648651590155309576959061781606094787418958042374000515725508722678702627496022593691915063304935258345807395034580791917906242494915061541881785634020923269718311062755328543534143378521619011941543597057319448777741139750481874509640798114708787556123358381767220308592887292610641913586293826668898996198215606280084177824696063672832546374348367045578520958209961073181421304120527693136078794903437972631577547055537014694941874933865239202950603360886290349507243514334954156012747713082067953691592168217220288281458259883121447259036014855983008720484416538987295953335061224981592424208916526213526356735507857682329120256876538597830998420954325059820806988545581009788151533538690079839464465855744007905618710131810089093376875943267308299743247081791907211651359519484097572312763298607869384417071091622399074071771937046958890499583822736119987077905542660772860191262666276880369391429077900481245286458520223436123029194745730294809247581412838274195052597988652705206601615222044323906396103575371111742877204868618038895776253365753418454878359751090098313576093059756147865053371709754901620501669416602777854891036368799901673698340053418769892925926776708234041382069916565898065058531320438140803562684512012341627512176151594648286027106836669527457026550743076888038171248275158644143006565940834321744236798561062383768933789845868560838768921368051693576002164850537331631958504253530365205754692397507516032641521794674743345211908248922538512470685698669196022493254962352594604126197388534154184116184350271679382449924709381798603636478487693947768313200037634340893037978483659990242164184965084324794413030460423292577921201223851030631669724043373619580958506026793656453870822889857970265574020730985758431297910032029385405371407431394587900061321474603678318969352793879464922427533502152616318366425855864969494424361926620709853179437730080499036470194321799155423093512101875412662154309593116050567738743527655178281114469884284685738159752183404545372835487643658421480613578234333669102013863694877440025696458830647382195558350961739537743686749214177196093598737005428343698404833222077106680159491645376149472408039294035487634377359100737029646343994426872914203622730186273706712702214503464036222496839791092211873883594172045487571135015861675363185309180372106187623689145385535456700700766372909948020498939846212158461030368431643034844263351281397418356010443914293665880401841702835062685341179744043964942740113195552273462645088633678531164177395461087150375196155247421259879496706848692322006350347315485180208905065905272772091528992646140991207325753407951398788812867872621586383090289358999057888163138071407209284252929422994951876689233892672574661314378774247211267294579533964859955170572519749148712148625477434204219339403080258891534705323568451887150099198637277684873423788409637194382741696610811721964403173795547452960519643988796002701845255046933376105583257385192035710816993523275008539168377673246907173460274514254227294323404507267646653515477686932551955088378220992459877804736843522823251395775773042293394984690356688834364665353456992807379283626146621272970640672502023757802624083066918034725925331330656297767369841884254817560980072444931547696528820239853708502827951899054370604184749097359779956791407552179276166972187355313255364478570829846967824807348079607361193947206608742148274619492671224966804080987192899258414551876744497712401113724392529020744925713520148730602703135290980362936038200179501446969075301790084110693098932553445930782899118497041411845449336913681359767192378843233324861701569456466941225777113670648440470825889941669694547199472928872744179405763426096330856132160060206004350731398032199096704426095857811509811686328234255241826287147116961566983666360291563089525370629486338591021254693053700905250744968987738774071982101629334179665661870927022485394546453604631124274295888843201641380622929900089986314767526001771223013309138011944369880742822713809576669987136028070144612844313187747527335378860732400795220581426939118236906270747574174409440324214617904532068440166210421627504952934580374336471540899081893592856684563574006040433563844699196513125524539676235083460055202458961035779054457393274312606958268851194943894222229064395908598776165075600905030525021682412768797695847673270956329719142828920374954387868709543676095477044245039349588236227379932357455711279370701360974310581541932685821582884031157519164680932728683150278704081506202091109897590746034840891473058749603687246384041972921739211317336824398500608198245592111606940039109333692753160273096901895424552094253481049971281575347554165758989507281336434341195341910319432523193765579683343766195057130580451048598658850588880732288829211986185641648020219740118319335549152666647279401861990960440062850027078349249019653911418041635210822282671578168271645518179202650582148263385461643265525558155937880819281282156627484002127648943585617448673342785831556717226367056187688702404027026953504537198141260622130117661848955029637310595251220376559218491008104906458468730433821965509897096252388274518290985255163947922286752552464096811269981151766591980876478823733699074357113782195064477712680012324716193622518231507365520348404960349741449794532458103180776154814027921997311794828983983787216110139395468686629675519278711136633262527351984219382104002948924654611773806525248679234941134589326545435828585606947244790424348795109705835089320087162653572929610103772068549929319027657370328207348169483590404732137396766465823244442896523787811642141586679823739586808950437879696076698230807029773548234473061363273362302009954447650866939574879979926391194666814784398884828518501143981347233458549534579797665612804389348909549553162624291317321466117300433203228312170768060426259159891925328688765729081596479735479300737335445055154659758077164656740700129715306050237321763275992620334628167181465612044061145349655546595677978742609218641816451725012388686882504279269721628011680937149691791224344819953622602373511885439747999749566218487682420695996113035065150192562309345912508527827529165029048226673799060232108374901479803723249935720616511998520444876989024161420814284976760950381539235224421294084512358098760868720146913544703165183212513900634260693248163323378741602045258776533528580587908688177804870376807837842675707654098897356660535033557675912374454973946052746205630993066479021436321378471677484310044578575658052286715910597899383728811533671969555532534982468114997658669382558265072047574132547969842852508037338511013412941233436421249119658133180555647575685165950043867144892549200684799932639532599000878335109803890744181247986883822189077069136599020728332842680297616487139463719573609763783193225028428025606158456709282001050714400945271043681971547112502588530379041344353540623409326455922476829580597970731574590149896668946086078196647837180317719868557664503745088788470584584872088736448056288155080760256250928962708125303731298045697102856687710654920029168894139680956057291940991323988464480817890819994652672139655199085506944368462412848172900929475759900756229129151433429695438759677671776368041711321319628927465997760299262395292213497290480581539882778110145394272087191688768499678881258521558398143253875037564939926237709946371691586854154729629263774409408361597478341887682674385107155861024224684938792144942956760837406100378458317684235755997906764563474160579191744217608238200320257536308826919746958030162526915262259187116812390736589500213267126659494272072476057722214977761128662196020258474655548133403516146305163931134392284682810501022622485776875683731005717532837501355153152838099129526624922030056796678989008594169757575566952788328720508007113823127216912302203675708198351120421466300542539571854290442154742046098620569243822139538161500160741098537861728463482281198641490494266728970306277829410386804736807244215412491484439074280618045929694166546340317066387932440779091457148900879541685893942238501580341514416596693477931026339785041272636855684961656767646825309666024756668250001727284445907441938410717682543961279720616605080384279842507222622920186640388109871366193052430695580434671031596476480269259982693033524007089971695394601422568949595232768961337204966144517588534063099655525631960728588623371808068254658448762192528014286604701955250727585713651405813337202754049999466929560721400835965432277932524946332442566896958150650091290316959621950810954421357802669243396108984682969264288853540171748318389539628518918824979491353649718182508210721735916070553694842664078447870010471075943052841043457582337443422219125511787357490463830188804001649920496048398174987866989091418536134125539844412114994678268206304723567187354586479209470637925837804135547396319946812013167407457050994304211891345062125178979507394836687619588038633699943567968019005581916631269913951870979016626285032679715835917680875065226175194552414948098655046950218447128311493306989047530324897205033887150536649800786159612533832261854338766781962462075028021133550201581594236569993629388845415229413369652073459584569548380734314100113989959384195043805171641742360896507948669808944685540943371468263623720948518270897912761214676070535949092294462914641523160815667388431143732978111011716952333614782532665688142676939260222511897177861665474051447784893046168747817089193588412792613719241195692024054554443744729660816091112273323949458662275029996081243011295110580167670547371168389082835900798995891236086244852664999762331720280880526975010836865750131552066409506450391613487135245839363230240176371061882505163353447313633949722311102013941107384171112724899525585825490758149547534636217289246474610701212059181928531412825975641956735812343622347070546900035634730620949007889088523404828169604662688203861007082626707602661592860028212874403675572297454117827377655595670355043467340135932239466407873055084476177927287615030571237871665444532821785129079216308397347884477478878480004371426509755145979279608938565667829591930314310386403916538572620757135157750313541948810957206209181427185614781597290686044508592399614842719322093752728649197392357205395036364077371736762130299386696195410399677885666995797864774640460618389333535753836924803039373950802253015220604146016350803721194249973960100398834176168932957462856399294527446795098907308573599935212645842437590795214028097897193466369855138791074105433073482379398312301488309439260956849760607094418574995715541554214322179681506567471715912718303026499710658187828750540475652355563128742135038688971157707787516023831362573511223279486454976662848106953539292150119281750138021379078539795641001467109700170104339692126799047507475759834264548649878654707946168369449650313893905495538741201200483932765601164276879518728356706963719796589263477737592694606446730701316958634826540568626019598509128720705011869680872483382656134142743693178670907979977221208073820729104232032720806728946440719270628930143040051763392078040921696461685685226492859388683279749770134581783462173979422683812289920506478880307476733793912528288587405775624253986316474739922958578475653078134150659846646324479185928526737301105302624492544046213293419406928904693247689516277361408738570700864700517101762909893848723145494385715641972523342408645070598174893991798898744400168224598813654516186995953895487070008077466187327809464891312777630338248128007490458759673923607535240666414508295594127745480260646486135930891954266630013152502998042259350825667047980719849008793495997662201638161616054306618082847073408074451307702460526857736280879981663379157669875906447522049907396583231492686842038918741257819903724770734285839065348977428779729185315783078799123478084778764240634479490468794402064923870802711471748466787179897663081386587308958643639381195665123795212793597188753786577676529030508405905903245791628064449046111005784558968530302995756846799220122859471679126882841740932506777654165306168986485077889703273047450193146128638096078728023252358638029974346782424126790284699700496475464379125749654956521434770427154892259660265541481867787104960461096087344756941425944308258414184753736150108295169890212820536015690365428321901274751059152884658969899937157792029583232248918294967772406792093394901370144955396709979222295555874009748084351829712351120048808786218140804990531063982035420361072984361191229139671381606238446693651098961402457745979273452592635231895398200555286157046655271201548337849320986516443978529442440878914367875798860665596422106609591775263107657303998361841425742461614838581780576722259999968573192804346929949005152489434424666008686368176949453735758454878259585466708771275211976685748797007647040652435223344823392205058695668380975916238391588025514742493163084665326111617686389729560932893577242280455507227490560976440161258876070577130224382597255147745563844378882378897094711597249229038944927494127977854914290931936586212674845817826350604396214434341753035887442941526180731347015587103327445587214217177157982740224970615146315880313560233424485974711060043365803006868717759755866580376555860572116707993317328409147143549903321243947713711967607979647916581300450470063713177685850044446455754527071618541659017375438709696568541357706739030906838892996202658640573904897360014193381550517660993296212323213780516846728330842980192210045908064084866223108681125899446282408217013334135137828418249950127726189881044627607777513204297420178291487445277447407977855770713898951448699164249446352308307160167613198430982395200278429638105221714772021231990451075026949655208944870203261299194468426262414365377853906757900300778841594582923176366925980691014845970481284070066567027548130558526514208108504866728432499354254971284143756865725271925052599039323090008865772480205767095367205991148018148928935693427725559750811648390825627863583903628034489354715173125200629671255062815244669699256728432913942882761751918219309858356701465832952148272165684756337728143803878100322122947776856741051669908599062899715267112243908690574383544536198252260956232376235051459671309021145668991958639637662157344507560917063618972034053193206864624511285306021921508048918816351031406400226096094285117743889497422345480232982190106675052535514431229486194494635112031796610377824709590418470183330608788584565387171590133158733395932446472678515136300664154773011087162717672799008099480799660292091109327548600044587616104466805779021320277513933730622294585993313336256597535466541482663656809900362160544897513184132664339225848319167825001990792069872624982231866224882763344021659148281019087358471484814402561179263251270439568720200407818077337982953957660444200846714042572056898435459539961379357940429901215872383699005773996422780110863272516901450145573316217181552674267700361624900110709798685070502215719324427803437792189885642254295508703178540251901408519710133433222376140290402451478276809113725624146377827809449774849912323765997981504676424302565537220119171439303164760724686680763265532076370476891005353455365148824582643230633166357134728524264460685016028912707279885873478390387267600288910456748916527246629958610166492906646526562002229553849143773097061203288469229774064754316607819479437157469047242384107674123722649903274567219308131782404150689050951145686262304793453963703469810454316366724597272392626596180165544601971396685573380890527243116411610036131244956228125356762340793474524849829794926471464681347678960607593442641214703665121727194117867230111393660829680475263714755137272629089892972569315974660430906721520307796863984720300716721303136019833771826047580547103034064979836264244510376805143324986306116844399118010663200426366904864366550202377683736740132530538182530747740471162593777461780352163660267095139972071747158120314484958905922192135246466792013187870782313779720879479663412277833374344368222309414438538225780024507003251581608657474319850283633521315589127463517335365485185861577296534191724180743457808399919967229171835596436068885027355312235767157145037785270256068021198763935639403683927184607108989645399887138285279374188512603994105137553691976585948718285883265716490189279364009668701322970583401978567246290905599840686222112189060502605791976618562224005114133845585963071218580535446746311987647433057388891952490117420196869431817651828448755751952725535018272309481842670607360624741854263242426842695497147919111719473575974742379924622444249124836287910742651867224307759587399518096250871798456504891031457107894095677947910720538316350114567354636834266013438702466979811089010655090007418538918817720603023803924914058632113582986452210451784125291956526474388348839923908483267097485079690330407957410572558701071076427331620583785909917936178149889078315524165206291918387038467059488170152091156835398739347868510021706658043880531048875869663143686479514416452238157842142333483026958205076568882087549198876438674240666880505032719506795912617472080688744321643186105429978227319889262439728088544913726352930076602677446238402849568550241141419025624045227979462138832846007711606322120014297019279956036161065355410566517980039305649052550020917382512270529417500309716878159637767867690803301364111679248791839527400208324504380312123735541346180036566690694191570204085272105939486294597159416804852100642559453236372985415270059907448927264172397885804582633422971118818753456815208090890852137856514249682668563142484001248047109020962627614007825618818353051036697674905170878341583032727371886685069364725172317042312955409667512483502072528052961259024657707722489239631787980731800585752411061841945394112132615733735565985119499507857651304847600270107503930443320635593843376007720568297604694011402832073990081678687354680159842269735376905086807972142185478562540683185927372225431342002318006745534104509041487859325002552977137088176453737678264086910566521964788881912083090425882776280026372726980414874653844091017312985992220434554951817153932381288269853263931428439990571283914526725831594509167032675252292424998581006143245914562875740040315308065826929617923759124773537932519463861805209603201527581431631163082287099849541767897632721140332549156465288057137506829395990099771049510605428223854579375258334665205736292756786209738222683824379282693355077455459202777724342125655376217778848491687008200727467856146748951158272762388743918582462225085201643326909241968979180045049396122998911372745792000688510209957022686778100704751342354647213118137495386073629779381780316045471405267981086576898278501705578368615396726621077753197991902980869894240279536245337793673933689510357595627844941036271949994746774101331836904631138556570514514738369136696742145817982514522556267759267005222239638012641296424342875638268002411743339743545263344632638867367386660539401429548436449776017650271571128840617427092249240213242423471371688554486386985972744397867650587159736557835316436112446152561938383858867278804181808948397833265049214441255760041106211336066581583251407348079979160188225836603999808972829354147935513010590234832017183090537733503708966052557981117370141639483676251107925362547615056572614390443591975632403014436291548945171494651894551677904122441399357406527859972781424312208081911644765536271931629246184621516592429984525830630351339356794287776585237292241238765107155986021330628115195939876439842743257211212784179280394687770023357187682965892288970716025179158782072840461281831913255258821983896360230783438357817668111620698054146414864164543113984551286616157186948906610433589581747917230178226896863136315901901077791090158068443973236565286955629276488653696699115311660253739628011421100000048122636819646336236202822618934875300298288491408861060267529020249550942322594323851206180377384572155705059004438127916803688464340790171869137029979335204892617969772274729869856928521226026827835177091959066457624803035168074675514116072790878369726641260873149669434736761302254673366565353192279606026258215269620424202221899229082253388006735522426400296972174700514092098201327444493099996912997841746627999132119572872467021122970555863425717911390989633478369708025727793025349785562933750537981754978649121247768280284024019793403195235655263317255888952609397829687876014207197117475553163963307516036182299746911737936949163895725852429525021491794577793202999311212097558431275833575519458505780276049520763300500969999740194391414392701037154900485651744344829733252027157574820346130639602000956440967307317872613373004473667361822010793846149982317142210254747945299878264282642364093399405164200686468289792540868968756982867107721718902650092736883556301666856832505006307735490707800569507476957056457196766453991434211231720133650052488905382301275779449724752280559105396216106128568494197364901279732195733115452215713384284352849991125695815839455448158075083260857788375820488705819706532546275486909142056180906456324578305701081050997575629419690826141498259474616173495585461691451308871438915742428955784071313199406025586269682513764076460614700766350095524785086394975795950575914979340845719413410474957988042372770124657215832467697972962080516515632162683466897185236259018236432540380422369965889317208054114871573471157485477326902700154061877552573585951334197404383476091778179459770816904918410258663014340040425193752493285886863965086475512847406266546852984914681270582802609798703213389054306360910944869717110457276801745504178507629292767690647450067576594956172836149105690602990992453271462180040296912045553435259791890282561605545553873054504366782345854461387458483179355375555861605235620586596085802609284376356476832097446875351107485273640828468470456829721598655217396594916530485719338825402370764725016128723142009795828718824491005330341704428282843575198923250665720390061940035355169186514228420112638323688666062521454164751151486173517473015536000631951296997850092697658582936714319769325760616158448984991021573885606736706838256120438449444419327312829887514174014858762306239917131919996236277571727733641158431572558798820285326833598081095539116085638926327258047672357963989678479231417480574240323260479514606014737651651469118126500112768994594473488832909005576577260271019318680983663222600712377193637186967775816328085119276687782770149652920207712191257327038750934937845657374458473326909167586834937982313583340360078505942124153939051929190622681601436639049267602724522653385616691871473429391504542598725423241129189548377159850073662495448115816510388803102101561033710690256920687920142073661302680968070677500911704822756977060957147495894172030597631144862207018638652929957565046194199176976938625327123349035962737389410311963850343828969725823015772813295907811953898249159662417233449592900063306598509418639825722462256549678643197061310997853040244742571876846628875676982640993640792030906933451363370391332204215919588815511142404111337086297787485850033504112107396916671850037863659212486984803744884396294060693003609407609833243713254006610477598419441834011145121417150232820238251250620150569515572496409122174177630343222940329842943805441665446937676067178903481490773193888861505859874980490429078846630777864167237971241134804753359328862509723367854392656948988170431764451816772673711203524134108633505149020045243470999664507934052229350108867128267914299825958629585110464673993975496413708097904903165369121717034506001665762056399415871155239542736260051695291792643582428980533254568187042533519780052836755902070807944619646698626084327542298996764996165334213323032772651001925074839594014218421113614225937073058399767798911693377111545482615707679531103298416268765483790080476832727180905904750168232558816479942892863835838454957809732495725930942357088566172338990079970867450031758768689816079125058177350574465235342206039477819411831249818829059154904657064923394814631208953993161796790304519671882767754969887170833918011242910514291736910734093622082569946171805887655785560732880753153014628307814396977736809674885650258216231677244540000307645739266949083222720485241747157648277831759966005454232442441805904198855507938541345018150429907885298785259157740031238844460066849212779895777480026780108540748297403134222159074518124610767839160577010856312228946541101456643795017787514334047528297259104933399372678548563528527342501864468840838277860026535587840238759771724952203267777631657031399035472164068462057950900296042337938425408926083502917672452906390278692488669622126723031067398827395422120563208729331681610425055318265070296922954640728928143535546424716882660183364296052022248970084023526526414150671140392283637176633734973148603960324945833001533644431558099608057610029342880655414235016734387969458226798822995882190790600183584651751104902672758875009334707928356657842434509952835358284324827814397386447142978396369084942761102765559214413469131805815317657980665790846659833861111457136754478436789230751407667112531145175689888794209771725744625347911573307648368299919533370640382209856595472420417631379756765026671841605758235509200208481247905383331917493923194942052977793637190388206984612139536664234418278441860992609505427396544386196799665499151162453549761796268379205612398010607776445528262862597251825226508939119007655640016991787926445997341386178040694636086930481183145182402817352033746462090956982279812305281480791021097986820649100223941718703040067987802047846881018313512910126205585990285877789129116814837683932439783814124723681328540369278250058556263884216998986076763054387896110125420393679017800177693621496154004802004043181399152307361207575408547509923693242548854621014598360306300753987032255214302162554655161117374423023585330781113461075311014998544135956865082046502585024981639560997751666203434517753741462690944080611601476651134992114861472108775561115419192978202930630538278591738807712012462540003954089718043188812115124080754220811468084922210723595883031518205397308352534284912127364905583849572351977618839111879053214289761080059311218667972220013125699223836744981785544339569137861352096391489362669115859001008956564974773336477957072826738203074737324796053571252416105811487409017137698129726474053030581477814381649978663110144426762604111624060353316343344887015631776684295899589687147788397699421874538265495897650872463486779045523674590183208218570243998629921480913726462469153594421234927107494829407653673943245538633662341278238710521179821599157470592980268943620729018295765580990492235930830744805563178232721410711770688442809377548188241951632048960948555103971143895058502847017856520951750962334870897355658508880490071374754416447323300283078595321830662119594896530577465784362266197154227369180487863018828592117941064875910463020805377608073512805937073897452323605026176395878547044537823917883937961953084347570826409069329812939852334011743281874818437937430075730876825909910322558705174326607703399032144556739866915079777015086274198623745282850444228653872259386354319698229732956885157841057710504116890054635781491114775811795883981158981230252427503426858382393432416731333005638756490089372889648073235432902936190042275760643659844269524100101464860689244708149069626381180328190874199269481777868084444608371955746631633430166809160402752916425986187096154195733821100785785307582404589909636603131969860680977399791653050798737504538726548258413051687509078907255015648961645556462919419439271054156006729878599289520662735843171212574933975208884075068919641216010009469325120114999053549968057355108888081644375451843541663132892415306709877422477401428774226435817220549909681154108731754766187690954703368382577835822965130945810872445901787832790894781268011787947200434359725669331498434163930441058263170078366475613670278914924073926735241101018873807734481661527241858791252776319448963613808007224026464615140267639307454926164763459409827032121693465479092444951799825527260133710335549941309283125639996866138795388497761570901441251774275546234830813552528074785499944525620260225508174962214873832832540810866669331215901465153234731941329940444120427463478484776221468500679312025279764567233042450677014755737132998548360368903423113845392680383798883664397236879429103131549585569197381340316146807421052848853161917658972058168598295455824686648760552598335592721671280448382138423161757519689180038650234717148522540935353865938041722122345184359627269076609187574188899661617992567289604274712520187457713381050594517574167097793461342104306217461736349736215110155703819585768065331359683390748082014586854066404932787168938104272398922512752204241806877005576285575795016325163116823177992809842225695227335823434091889508815101249231109751223100128108917066897130306997344659926245678933001661982534800340270925398635698500635508459787036995068281675635432137575595092249286912303090377366447939896063238572290580284242298458936316734480884384750522062812676625966419210765320560178856419099711482017823056876584221543912734678221992630903409802752233796554653417286993195560377174606492819587878949844882979917777168266209647779376487249734090733308486800391477290757832645641060940910722672132612829642984124621661539496523062908969179134321587032087419819567060086303646237420701301499508454313853895350343624669651445277568882467643037646750430956994900780535322697081455341118491551094469642319411835700687836255610116482432745193541164077885473990184219967773148029489526327044715102314647180294121650592879872276515902179528638196686465565253883829396071943169093817367076473017546821726047516871667727708819758557168431199838382255570224396118198120443581736010356596634484438400865854238228120515838863453629033231237266581617552240678298575606958269624808561089972057325384713662818757307070841575374348757295764273647735278252537629897387249609797852957304571512076177601641579010536107102779859023312870702634080666407194736125210264061626225761906771077408671987008799833477155642151399394103167173419079065815126167580319198184100647052551501736773868866376298881743396311740415677645161310566094433318129518728329066683927637853398622476872020347363635579816971969772014530471410572754985480902602325130121926596944615483247545938419238164850932279895694854694883368553471465472278660583144278524300311989486837485863671553044781385619253505738658974000005311224949761316299484116951334223014647815471507744902283395221218407237013782915787999258348087770896077804413563200904312596942200614510943288477446873444049527242224715405967808341431961244121567658930215595783423305060468775911576163847155912069099156150274628295347493717059450301460579296830887656836059795592431584256224286994273719070286075076825615976391116482823682616236422215137388638953670929385633591280673604813613116790639644320223623428547529969358973402091330579401416929498879587540141473658054359884310768477383215960671318924893922585949843890916526259700076004450952356119003338445462335508312334731759457072678942624757435145548094904854770787043080142374294208880817804083194052573242396061141539470079266607969651305166866468479697199913682197867040598129183170459708404724068756230049811079045744421485293282599243536011581190286190531128311077644867638837660623082978979468910276674573090364802916841588473583145064465888410444324051333293201742624219570724864277382481394498951280081185003335002102237687421004667887610554414632915603771115635312247890384268722492704338586427562541479263286961875498867951465698745174883677242869906892848664570014149858537235620850361694102454047825294843249654253070003515413698904931039657676194292791335647706902329367755461930389740667428926951983379648313715909524963791082244488026114485842253060638878449488716902204666765843791477615557675315673989341710303801868543718352567555045270677988699325392883522319930143553683857360055991472614167765973384603826415596392843547911464072879341574914977776485577137347315429764779260802778263130308131664047290002533567565368604228848631008149387364432502954712631875846515909440828146368066428609564363448368641655994350011674321513886017239714946974070915545749187637451788005538305127223235711728155505781475545191897838664398858249074709487148034512749801713972277554828120509064377105377995357399733613528245127454508137077997328391118969315110649925793283117043740350471301630375934213095181091445452761199159614378550672405110495780277768242935677261549902986126352367668867895356264352347431618367664466213092619615659545589844501277634064802090623128103585397060049273188289414517604194779844875545775231125895845907028723138119482122171769222801676209587078828040450242322823457891377935263451390622085412913482530451739355441910854376271223794652846343970162184111289872928928208881413142655179802412348766580078890677818436905886234157787923745087571570788580395152440509056517332241388580428061511581486217077187049212512025288853729984695834120453051110555606982706831761322370222259610238932417474453157827863971358100468719462922327575395451418402048938816811119803651522652435198616266421572819075868103087125830658913415113288395249895457123463374216869558848038921286255147470669845266768206693094303847458897932485813394599825165644896974339873915622115206414055973831033635265026146654125380614705695699378534700926150274859069333220388439840339289119734304225173011212800669277933437322787569074811116251838227748309635351624600017754224032039258239194549735057817081015465636549290146818136261984862692316985908883670258583236971619090549226148766130529542950418227326600138971296041309437738732782112397064005403470693833070472566997104980187707001037071706605892740086072401886434376279180053554808838321768805159626414154862931911463969425787960350847117510279691071042273639764477957971110151455577990492144506125958794115870673086025267850236087227653104454690643997672993890377981833634171793125269297727803848299442051733737229875283271770419937338236625523617944940763296975602299145897613906667004775817691258706333465905127444300214712380658561446530573166091748383969366323070620176079139732251130868794602292580920850061556959446497109409132093822200688091683214308713417308175957806883142502718620925259450980868017605507418095273671150149825634175674103406420957722308317146928398805422213227502567328036540446329116284868611051879900278677204301173945624949796213063475542361229026778934158834187570886148271204227175124283445759473047938028680168295855117892192364802164117928760313657883567677439015570964679929601467510978792963382843523284651753571698187584116915568515545656327441350561763935909531093644009503572722841856373044652856478770269306594406502242645108799065251277046494389414902190339276720793390801068784262235676064349714306355678120507988900640878497337163935365647764346883055537822814241981974349638206417640410244179872706712808065620173320741428949977413404769919645038458832763425905656367062137149936253484356323076775962557145962517180136494937793289491269327977720789807819076452929405948217571248438026203203085800454040269491539445942727872464039575659430832004087807778650899133792825888850052654658185290075351241019276038543751274728756921983196765166066032448339528347877899481396627824203142690972605993789329570299753984167469652694229696215214364788324148944063923895943557637157774195019309401010610971789202768268106763700763089903086021873378023473346965853516373179068144311366793168419950475490227659141283838483268497188829197249052389152628147608987165906388488004878925633409945856830493853237434771496911900819395507077894972898966034612051513860432817642398711249861148507120931261520006198772091269411229140442813904752228877710678815643870426901062491017951508720961316991176482519968170699361509979371249157181320784741883114595995142201964052490970841229081078017274699294907873361145247331200392975478016157800969094225866471459746033305345357167972034244483256534381840825080293046860948108178131407186599272482382586615842428583592969471453426696995999921710662542274165968132513212215868561134712004849238773640346733480386969561157501087950011845676117257178139468544006478623854781010067726258104206928026446012166176610340215889212330632475609522333616753221906536388518482004028072852015161269664230152853662824876832760770191880851705926706940060962350381533119464410762173016768242001647391632016029947997080140797133105524492380183570470655028731817960854940721350246432318733984650578306970531128595719985365351837310528900386642995509950748853533714272165666989284375554086121150515936614593845254170144013616115603380568552352815633199911646319228093353932405049003808081191632714994224182901189386739857458024233488903314515759707663817097060546146281014900151762083182170498647816035255761540638414647049441062450647513445439889439364286397690261674510411248884004470176418785237384981903821956434256207621500776587403271468234046253434457681908621144041291036731957285803655188538141476653923273733533615114393138106988491829623835964634016530700705023435124372007469637515825811257271515214810322743057337506954519303850506520674524346557124665410074794316191345091542585526698736230803818448118969584853336776560350618315146687797109332016892509929303025110248733053502588617202686835796266208555156211421773618113598540577253787762499607668429665662988681855617624329008654701253585980535079193141077105476423469348721698625889860322962559052839158621341132191895624505077691658916894631000605067317676788428659281404808144595025506564536777342980212275954685221991305956409075088710579712367574598954535276564968499787670931573827776121902388689548228363327806200759620881926019453609713232583528181412411932564070755203657639783248077987943260460057738160212507920844662579198752364934452608555468529266090866151269185750679592089864388552165580513277877239038859883437405857256625845470796531980340083157327164887492463705781755228143921524325712345015748726822063680572724604690258469977399684666089902324964896434702406348970294867003597706982083731645820351447789300239775064649022390259880014529721742209458247672318315568732992353639160517513582180158782791657701383338239007478362711126357499151606791646063217256374579646654963661421408126586858478807708269941018410643645122892234024904443916789046985582849938933363139524789092784359673692104757354743595411396718431914176408527200099511906423373539972462485076303613819204150122171918379063321771936736618692241568720148147331260519138158472835803022504852304211509500157343805274434672977084319555719157056586339378169453893332075102887829109508899328453991178195543460133533243194037784226957025140320955376857602929757512496150715712514846857100468418992916470998766330056649670227802934764438317967413199874301491974514722822235639447775621153787468857088808696380097946723668860455289098319890658313749029959694855155525859812222236326861477680542598707652109332782602850084719737438477115249994406690287264575620648669509509323274173795914110076184062924687295619214410770467151606937013704866678466552316257453794202877046114261811231771034097180204555247240823468124325849194336950488846135604501230324933044366924816393370796044054197823561879589465990895901624837702346098800976129788683061318349609989095524805074839571453000032846543938618351153549668035997219829961574433914482431944524551864811824871785004907723972985827065063327614220999417816572901328852109366620064069418762538336959800371602091255450326834894375780266444347008550572735113292738648506100124555215065082861209279765805271651248526383677665546922770433507639511413172062493408067902857439269026477383548235689562374825899840584441728213509093169282090938551442514613584010362366651267734193317011581732936610615616380434878325456235574000708284028854696388929439190060268174190665366460725573146165228852169990322068837206112179532577425484484836855648416341352169160573787145228278248162917606683622917056214964968823595690572015422914897940450820657673830099221260145083270935845901524330411785704431051426648160208346031407890265459288723498081375296087678069793299923106643477966176679842769372630911845541201413597139340602402059830540975160509932605284643001065363238781496189406969328924471098436288149328030051920055820663075281640958110506507571091625246501955381806992349671231316709608807725988818860413778889839044878062990800454755476721429372446606912588646540686091485761215026028251484609184508030629952302142519684725114370483540732638339058125528043644385119453432321156603269438478122338074289932418286628621923739056397172826021997534938267269455207713018084293540031929303639317237457780294366039207806726791948823148769493084799723441896744911306642351914730981005147862154391063057611536336565791798513990478318934635216980836556565534283481135629142936903665303469009000355097989230111029980685852988781807358661542405770584664846450233761670477425957034644886599322724208785954600487181953856221608342630873161762328055697816234574423390314392884117900694719898097766391612759212877217356208699761037329230158739342326699097784246873162900813533873913630715802048497322178446504972519957344033163991279871932007588658321223520666990694179860862362148232162871610019643926296159336390510795191304620174385576101601089926423631850160312054664521487771652290041730573619596715987159956149733508388721693643572380294758790444806481358938983727996189704095656248064241721037235035423123104091233745342590434402324878947636459667031341584043757697643328533339436583770411169554057536921596127068658416862092718890371868828953239496305634680132883503989167493258851356095693746682614491234315647148339044141339237735263119289358133892401811207002030523565855355803713099550156341829142528792962727762360021745542280834913742591124321165288368621744867071563014872656962646823146839547110358456254701450930387528903863337810586954361194445562655711203660451798008602779068038266413361054864613122336057847361138369924285177170253636870068349856516060412079284869547989154626262203136303655237476113538110833438753984232304719854765007651887430369715760238760337744249420509191552991144008543662191786819879691086939369320981381000275926029273384291262825465533930558515644476294689353593271391186196201672236410970261934592535706539449212459047025434511794819845317542637029686376584810486760543466932720212141897346549412186983928558984780799801093676522146019882366136428771251456775596389602039166310510391528987127791064346039744559638121180104396291361797566369769202829725167804542995326241511922876178943499894055122696000507255194888581793864801705663686287534040060704478741291906256250632726299950877478823761095419960469383287894776222301186447166798035321663316518105574766475860857128413697027044404461487895577022936938927851273206283820952817240593041779435479663715531006891099121649593557848727044475074481120685032562972392680632254759595265241893565554836982575372052595672028189629461595697072747434903051093622370364648146046712940721533224797811708532552424584292494913781660382436693900708177160948974101809854270302628603870402175937560411010511864289902268038232102256658551463858193884719411408216620948283502762878662631668964693330921383894435839946732882957764455560500362363144689982376986349614096539262606147965075645367096570490346421060366170701554120180173970077970108699353696601074684465228460416799929267750544262049070578447092987873408528920913538639849367362655043579474803684652263286275224479839990472600108040685500825582054619711381479826755438794728794255706117009068047420363337904117694449850646975879576733947978476348953388247903895083749872824593326083366709149672060906835930035919071566195418282049260333340837828613460391839399983237707959390494031101163290265507554699340772953632847781243468546841236448981657271365104981483048154530872345829357535258490936978154710968096291736866314245634726950980484938119155041259956304960810843206371758930523473185695702764540724878112187762468460390793361731277488243645359523082978815248208109894188478707523990820086236612224577930501511616651563519229213953102495965027683948317495618397008707946103595643000326273917633586626971662029665224981096885209158759990531251762185910788897042705753750808611250158405911407863300427249972563107626979729252327634853983297900804480995519816991192829834393081432072841831040448660331208326559805045584122926557638645253382025537302641746200969879009751117820899301237616472208059946320365249260239326136479573647666409630954101322458634575115933106100758929988825850680236319115714998588702095653868533957914620909528274882948258202936998054069639772997836768913627305460310553082029736709550995279190189634422237157776197713104154216858658699945293608202812818347255475606511070033005059909915604755521405804742409609036268782281400703103388681856327563602622149742043970599762133365888789320929964908205141712884679726650144786089372552913952388817640149019566814433264500809939807439916373990535350989036997340110797384422027943546626366302356059338864117254907847697023035124809826306417669401767275185342191656127652795274429648470800081078160799816098726532263902040543349035608957947227830527609959838677798570106598304940657377759016230022477021718820823960660409410849585942415009781568395669144052861130954274977290476315925946554983724987907555137851460288014537938776692003510305238714359741630143654700220946397395911254575464599212129615460959247148604310832407994567181803972856167756787493201178784261780592772555322838907757753968610281137092121080238820076470081775197432138036594830337038653233115857887263584023610683776005248957229915776305952501242980763364599840278507028355962913889684398850858938760447757845069180736958828612200222579327408928285478719391307885543836105240354824229729768917549985667152068534979997042207687482664192629573351902261626722058205704834805843650093483570793029359709930456124413522462297890957854961160446435020834834073235826193487036380614619398401503872198316114369853719039309516282306969189847121604049958350424134733652115330735757090749323568223812208176599402663289179315938610151421655085758979643972995262700774350231508677390452520880484844543849296148738903483317800248324801531713450246986251124118508407455345430893158542237143162704169889712240020776227628981252915725988502017265377050257230107409787997222077658717557736932052422502698451924681754756731865882237830420139753606077505021330515615522514929718444038553931194718200187723102779468419157561368015651811477353633847265468136189355208445637532706747082608556156857448760674958973198050106730846262631812997170571005975983594011286652499780317945666444718801690490285823030091161302030334467318486366638695860010622973485610263964994960824667195935959056614828444900723476613811364431414374589612701563368323401482362696348520629359709923481927763024995625584175749381583310525316450551803975102885199443396085692484607121074894916490108574941368142623209046180463450636535090468137549644361832096091378486842904721529920485918445183907469147800991085939677500107147901023267882877253726557244358252992508250802378792309258105233076013444072411599167851996942339060446298897627324705343506308339607172861099308029586548251350623365343176040059915580668462893805990456790902183312832436409206733486624146846670068604188084477593217045165665526035500304343865225072878030490354196911600975672937071708521763910922994756398858041808962701504281619036574612473880211897472655748263953764487997607152974217068859650195531668398348188723737933887187625934930700035850965791939409508786377208146318183133646705659751598633346116167842973712248706413648881175860491299696494834810351032171632246419449080389874562069453378754389923821472716758529410082409130535087891419511990313591403613723200471922766525400282462320392454599307471920035394442956481728079224662038075730469469352404504824144650826260369627414582572686457353879711621582609495272192179578925841614718948288641776510663954561693561734138473497806554008354348875637696670701188137101858468113397820856714169894924738478029670970041254836172479343162783772890206933283143370911193913417899736531754865443726107745860389551852307371184791711533686564071840928807435674234980179196505137638331558192143370366924639081086332125603715133317735062325369567938291350582820972859162394475197224907449638556508442778432205006073262310539729224137166054609548584433349592477120905545407175778261593689212879821977512618708126543605508071368298393164128787256908732049139000397644487847565371623458733801378844005090750625360057640382276876176418900507525893553041518921055090992172482785742689966218712923229462958135341811090979571299032018238220986044295018132540567924219614242855667946636983059715481801391181528315924493303980034630801664571124149696472446337099326647603720977384468548636425018851971780575520239536913166353114523504622241293381559905007064510595895651604395172482615717609956395308659026180415544059335297459704518481659676532277448981236875904984862244758136354629725684047262774797651015538176135027378310824738190667771100058321672489008297216011352290333526192374641953111395113033333115641340400053908140568461584776437404245971777991170716768828386943303447394256282661229363593701328950120401651903753248113664503475010288177508760609241152858030772526129368227251127016252365384423444417519630580504892674656003953964716905234054672661251070099136289979968229593075572481075863442647931929004861452197583159236391514613284590187479005105675825264215512543921078658860341896156346349007543711931390430295993723607842273879447014817806196937736871734416791139811658632117231116345394839202238999015766145802185873574845951594701978153187286818277421161830673178543785940850199014020643620735243850652835742671682614636137303786082621413784739416219607806893233400799599446641277689237083672527583381764070752854298422959321303394580590996122607755295472148474675541047948731723882086795828120402574958187241682021937954772073776133910427568134760401746128459297795386195362616115042253661612607757909838629942384448732456965304363436823781376088002752165111108671505204801034632697821472133963044906766911989371644385243170050997604432360129723671214697003281242691846535497232894359224907375374779297453386221293765946131090544486060047502312246684283550969846629184749179707474661600990982453768729988565560085820077006671017644562950190091780174657918701504410987519781441259822773310097316314783468583554638770404634416103846076248804721833172544547348786147706310738201251810267926813363942235989184745404428971055771219793381074072985463086166469966551367238878090647174627941842137146551226782032828330568550578179325993909903156990980295638828806275219791063470695340954058288712138087061942618388465406066347730140026509864073726938323154405213245082832571379582295806640798672667131036434651909816866393020562467613213700929399157761629432101952650847777818723868374191041325145817825563043211946168007414912496219343024633655247855960622815737646084341391074659983818384412518253013096276236132136712487274283924844844692080338936015755433584147950085793369265758612635497397340795114771620892371242126521114893229294290040583788940387167551567438357063674350494697772098157110352822628265981133590141561784377719594913197905819136305331094650661389988565730456271100464915517516405140769081154539835908374442720036675369918188027251543738683653164893045100706276488681285574891577278539611377107816740886153259868513199859577086374414817256181147212658950730703099250518997607142097667506141068714226205819629678568035421544657157152316995494469655798085041581110403553080887882423287646547901926417955492607277852810835821546796448126012822209426126151546135780269660688107921303094100651961117877643446420657465818785511363562665806545969195333963132448225690449558784376932836058171461662126987251194379084846790981075522597155786176939229499297126881774230504912755245169981281402996805614545997755765762394269166210245046081812590454572418521755867790023319948633276353807590729717573367472135118030463706950898690572290790041990797612627396223814219725892777419660175325654825272888323665147117897957060537062557280430012316212801255467021121979466189296194381164137815406084273912690471499672721942935729215067770426158462404632708990657564302436976255304678720752997465472986864258158215346151301272990460264532347033007591668164999300107896408143362902443791418770340384697071849382949264031723755239884893003267751757899504804067344572281590981653968070921439352758474734135044751308539827257873281501892122064047908093046677645181781933417032401335152440088286098355031600762215155547507673505546573448451374489762372491853494874620765781345573852217637969720675227785044064256244464106233834126675418068740961969296706327914286380134887176574604114800640011491709873215562238999907947761258186641788149944021771485760277140842845393724160483538717088764441688247378379325503493442433369648373245531452260734144640574998372340958922043476465504555154739427198989943239877250281649130850032058488673015794130012291568815313006812811897326235512868334206533495028293808776694637034862948002765760113835495983572802799177354196241173658217006009016430653017809994566737666789680097297572496247066387943816770816020709773605236802670062316889905910514135025275247195327784974894538134853936094894993948540246598915280713746885563364978561604110123828797900987677217425324283612542310184726535026460029508710746073710541785121813020845318344171864862991643377492711515925960861188985659635282864815463171612825030158537005420024670865727075565675800148869922503118156784879984351530944039358781008901875548951550572504554917222241029481402617086422346308938089442439760820005750037791689761330722780350906350303664728975044948881084359538834432928192521344176907160142937343537008376276899718669411164515362024498026442313022401586947251880872639506603035244566009002009036754630221380001940605299788728306399168489582356058458250968982625685417590580518748919592422458064015873579877176496439766014303748895429792176478261857943627374712303108611301417496985159253822935359090753562046705238708292686130339525975155562606644027085189475571290240249365312780143050261586061404732161977391999063501010647383514913629973389525597350946011391878740010417525380416631042387816791291139952900322045484088864492100538515701598033389363368623051551007992785882358691764651949374235669743466575343629929704560568409041108384265303323348101251450678943134695732874512278846360844511829166820678213312503713963940784924774266048529011385395273952137493505002571408538977448169899664194286001110069172871418789617025822132944033162038703319535596912785880708565119559595276661782550342907687621180940738983614902604015786607330609094481732747664481875210874366994774923875706027726714681443950407333064126241537844688381715197320283269186951159320196046883999252586983913922898192708269498666646921293670099818366589994800953472054843625847306229225778610946896666490635177450772066764682225688667066192134328450799984043927105902808048335955676152569772067328753359202211888540073069827811137529669857540810271010485555764256659331545326830343476972475816514628801375931498521026438428195401993832788003489425589247531511817397966823153968891887085077795485225473539048269703361597911247440981157404407420815760491455083870671037291467718928174818964105748319215585661783477473924380373497154144183472115344099315679942483909114213744612926627156105008503708944006537504543887248680842211648010190608795286305006610277228263106000090687434117910754209821246161369952522505775628563754904096306049203236821790603423733766083837675267222235582418093173700673653282199428022432079255475300890522522275475534029860109083155095824503221417006017353557999702545427679601021540493387192161552414412188820249380565767297146690262444200321804645702755653127870780156204763833755916121994552354292149242851459727472648285867608912624159984094582904266538093951121786852907741645041434686083438594396040133155175068388361426267400930900187884419072126915934670767464573700005962071673074195922156234249212853683899543567224004050257776286870216814115775400403050866086703872987388128933807797912694834290711272107165909982026651238652845943292573441293486094515062180773058898627670691719055375252179103829895306650076842912605733165725780573725735397230518620566804153280644858202288841684981537903240735027632301557647398780794592046045671714069779761627441375054506133886879140281623112258900422784295544554244990780556877218488409137699992504896985344191090334005124369784345177967617572051717004946534911599950444761146306486809212442475538079778208825195619290764038518728566404928175103936022141597910653668390546041480733857117423001112231165215794483014274892454280733186017701136579953451924255658380758096072743227319659028170142786602172040131388079190897878519179036293855796391721148247196171334693846987400263378448994879914534881752529716370870930944195378727770909598507854698926633191487651568997462562257700004153803658293818160802288663439611872128742539924837315177592683679321757116580529660734253357565338918140858111616520169177480922567826391931676933794386752298181568474461904500355694917563247492229607588190287814429051170369159479772703888267468180051390710276942115245010655079341760621748759050527599494616756404943445144293438994729208942274770278591343774410737697378764807295009490741444807366758201026992940702116949999796003966023287018922077592458379260327212386122247739323732854640581446767409062096817129582750821613158187013848933810926172746446057322717859983857128217230146359079117503487420484993248600471823936167572010399126739353323218615739283034414649498130616825941077055124577610826544322701765222905078228889489630589432852124106377867460730295633340465293789817620869731133477433229616940342116447599512008520889896906939935859063456832182872034368812999454553958313823098007131051936189162072974468351253989786088562754045987731310204624683992722501474464689760250600109313621755752926078183879618716317544475556259695432722524246644319175384431257184186057607442348970922055732194687766606992105140342367546291656214185226917541722570301119880218038672284788065319599910662109563786137450209467840150477646823424398546759999911966440317713939002001577664619925820091113018830962707883415532032362529050121875766552889424293155106288348951766872424241321565815671116055508821046151078314016664332823745300343726644237518630880473822079347855994392249053828346881859988234414470985506393283099679992558981938534335093038216734182600411480493181082636745240635975024772128129522645548736201518052115558076894250242343966140454575193445321313321747185489184715287831110055836431204212221393997983003614440533033756313626694162931187550208454472210486258958931129305375855434525460385147842014618449172498644502668830235417017598347123106924068385663599758225324607190813006937891152266753644376917532734301318792557904209543682074005696051179814196009151105796842389912536219659851451453618795069331032785591550143440932960858013725177341680453677664910927996316677614462409643995051131976698321701469506152965816244896725215557134097380265588504969457396751944474650854246602802776033421947866365636818677739243114963964713230242078117136555949457832859463768824528015509183682523641386378233193350246333333937231760324290056096250536628458682130628415755994122217845362261324513528020442135057487598614755542167765236074239653200272501742056538322252052925868200351343567060790105520041866849185568757028311302585161481156986417953565385945336436062237733407312771256792213279645629461234089012439333414042350555469946607826723853232204349893249292972476846686754303349804137733599891443303983519817317587331215968700154475126979919374657020781618892985997975018805656724497073331782608061495975888381497032022319674863001349782869450551574653578058701733495973693475572372898180803233929310681088654991036452917833574431744606995721291449903485913232848321984672597579252010604820446382465083878664470420776200459242903986215711813613795720236344751964822219465889721749404413739242211426229201894904403408072919754734622420138207357443718172224786485914273558660097313920330051860603250947600532663119162465158307435343603651851482010228086619231254019337555692180378866662495673644991564518459579386116245370973179754443995970349180960358770616260567635080266527119156902163508349693865747612640388967348224460589256109079411399206546267354931246009223047267690856312653412942738047541992111914090201783523724664777060046084654184729783420148613258356511484327460673981819560842408624661321193258613811023289547841740107115471811152837980954869523095378695260906715732192713874099917398175784251115674035450046412365004260027379590153613900091233369157076305940367496281495131024374357328692561867730625629255899767208032870997271062727141115335750794314486234057137342437624466997061457749044050894779891756278409025611489270734505121447394246779773821976804482323978691614531078420096234361479027257780169862200110760549674035779920114143779574607564046998004012224387066740719338467901535995663695779873734969756089144163449050200584114718209654444418461253726069140539353175911517500812406048363223234066757899185649057047323113930015594085617297424857889974612170086497506875627669351240862727210926555046445212023656820752909341732028661797936769377115918189059351349337381906137369199569928005499375265090718069905714063231666517196902896872351666589019568696546041203290093703233664231482363880550785667441232642544700658525093361242040385614587679075890270280414778802329168518666225420922322410831137654496088326352382169475131255187124768132885447352506827569139471160972716966484052061908351032595004975329292356203228142083763774364269876005354440121639493370552219421908753967026529111043889429237912469462918078321457453614103405656391300144846583638768493980959367153887413353531693347695132021511559688442389087086868460472811335102028146845641622575535039863513571234053099894563317403451363866650178514881225266735805375855611318475609490309916036286104344697482820812439178168253306912371712048061536426659901490075732071107380931632823441925902203422391324418145150998182380021956774697837736463624562403619849438760276489635324787872923644991967211027487423475798429668577012809179450049207640597559251215230645440209211324804864108391426222592888502424901330892440658283730469923868998471317857006383455758970235208687880793756576916223297644022945147244405675265194224176455652934965489864653162660757531771274813034596632951326127908783481667372903475412759243070734135906022553432123841043769211234277626144009565533333675494429425649357041227673071161741187416406714681423765332018534937937385094217587971343002805488712837166987198451463836084542605701299268815392961292643753859224261512219488701982267646767349522066204060185324896749843712559742996078344658138566263869461477768142469586948045514873259503443526850291747236460141584409719296656191033877958012198682241758038688654677960583460957032525555880058306846681844950742172970059241785187160159893098103687201033390515671027520912731295155217388774417078110524666902967599628613657995479978516334209241913947843523116458600249630447398973740013789537109095495660424378899665383860192288918578756481802282542292268967007490077768820801958414577592627884781767155577705092011611894508404648771042774704685692728635467853171273103791552638903908575925007646300237057507250825442406524837746169561935147962299244484884027879163573859219598809288275598651186146282010590332027975935331985256911698107871079756127480641667477822293958610636839424260633081943534318705551306610839744262779666814108186547849380327062683289381884848010190531090506455681800674607127303428271112769241198231854114150759948121098036613748464550664993773321920660111839440906380792079685420284929490570689897421727226499600773379072575091034804758806959204657963467045607799504430627440014225796751652768217435212903832026759731330983216467439123872316356155961737914234482807920968317240272264062359915002754131426346307410369579772140109112931933505235376134805622189460544606224081727865652578965070942537522631644249557737579971602318523547105498252063156024552385436578006847707197962385454527444123279901202880625706121044560183453813820595447009633170345093687778470664479621659689623680229760119388856628997911000271316361965066526753425416781518407649723269063267584901875095076629192550383801902970882873080551404202205926393295749146592259669225785743663507240172258257082242342434997419501636423647922686724428513020106736859977917256585919247831901948951447818729857162753546382120961553411727878685792469141848742030737814257661660026049193348791244264010393762127672915071765175295872979351003195352444366432890737570830112770390178398360411359192608755148965775674323245322665698401023749404278735358933891214860170226935374435254900289358052696740630530670990389585220914748059752656794059377945760367564861326729240242732661630130632054006579571353282410616448959190086002771547323313180523682080308068333529883655155309096513222419893874930229097098665919726642416809730816372746720109358194171227105614609013518842597899703373996780965744565799357508661346891216280386615931422935697465533467648868145432237361347732281652399923575229404531327769645828445198756426672628322469210562089729626740455077614595656176824498028381883591800268365400274804998450609098959459310575808910701753990053681986671516310679631425258702528997925708180988000019946211192582529310445645755032663595411998877274701398814586821131841080944740024466820497944037950820380454448923111888691515186758849098382130316264643673840076086406482052065644397888461440967941516646053129797729685716442763509096056789051688391764413855453263021569946551814422172499072008346965824340312006929959472416205957299537894312750317816646669206190223649614740455608185828453762676251046057957370044869590410087130842535188410327110984807257497127600313011381319922265251638383663120122062334188250939403510431688729907930795638582709536001558206072750150365571914270309444640492561258025318973773717654286497404296715054220021804346243568839781234329045457673259361983025914956295983819444236032629778996737996399971793355231126629920692140170914262139057306053797072641243182485012684780779702877821526110011935633563163833993563027326000146608851501790430892823201193334852270894268661252044727749307149575909680828303591469380857302106757599730369660657338568290857291150230116350502091097711046786264514927187497021204680016585842570039232878056376924791766390290994581562503101188980502365650390654093137234223154020209130130486817852223622558598489246437221954557114749197786616637434208728904232308143749653794005830234436586559729521503770955901821012964904558424616131222511592246111290105347650594410182688619337562647537819689207872238783112532788538780473935690980710285401473461292204391950982872252705296027025321886031526095255875102335990793456754821276116224547023660244282699609542591561418490712586490899195537282924433809919967067440450155956155007780975185787778434324640783654561996089646619258830689729578902339628611919802158426760367258440621218911304782967148980862886751469522694908671080824105682834347384051361501201426699451253107206919989906262770340217472874779058913930715116308620556934342389224381266714581451637564789786527980267209409106489213693355036621821812800507058076108583744876226371867911129011150736445820748358690101669443687243929698038160321097430717270932039195395361841137528937360754280039418984298717346175934635585218428220974749008194338240502857436973512859924403725127200486573905218486878156675617390081864057479622327357446276449608277045196639542624483090417072823768873383434296512685568444144616215098876289474292244172858592192231994910323217084262578802841117783978959140121989902983988363560162307797810242435325458396415970974013787814266059530911670851714354056462699619365750399433650631100527960964180820690428538824593437766572728818970426895726717436492471198261098882929749217467111028713499484197409401426682013184324220392184305307414053654351763664459233467663864971030431127203070223003818448066505622339165765942799780873478696623286723968264609976786486898068426274599445178330433651282478615181215046201524788298243418254049645855097390971187711447132878366749773543379808959539234467949851721343462481484350335581177439145606130915803688035513164891670516995051255250934816153920173764763083875884723355798364142117733186459052316616519470986212216367780779372263845560436674060028785339501796107434286837939665505518311907921517868957016987331508899196300844915474344931751845193411832408965549067070109879893330344158649051709678890030459809890427173262062967119962646629083510620689447129469441312599198028135197369685402027572299154560000863865805223205803791795398555596158309247122826862097250270908677332347417257129648458304546729009926180186148046922801573949014599192975270072857573900903207061783044452479235332985560407754379650304087433823254914578330410610517328330593871149322534629234683560662984275430927418268750221417516843095813951565492161142554991744401640882494781488872900062202422348421430285986152760414697338162413317601222656574017747164033342479738012297490548112091188218232606570882213791875340181741936749201832134808364681729928016148081458432195247387600046442073575382522054443731175694248633846210381230064619472125087091669811598537469876707564088327151652479007407854094987304438725817682345176324368213904472463591004532450313776845612065445023408483029660344816423844799269956755921136131263465189726647930913085483374223406733866195308560637574543429996799141630177871490814679210626115985311917646619352296915037268013115738797515244981050036095793047320321137010451077605376473536121948629144747216233783173242228060327828926307353683655038341307120184520821022376122675758960318986056960291729125310397118819575332288226764849622151687931285059957933433485965568862425711447257492921241043928577443471750216593067388897865181058377854909532037549791283859928512494624060685821467009643027336600548221897336146287142171542732846977293519676149540617491605428427103492646619911560634775609429948864442107167690917282611476975856343210510825255698304001574936271952765440261266458968598872756950742610322419738664035751545779253315840641634092547581226245857894466197582817848976465001731836709311113871595076097711049095096568584699364645237880072606166890455327665122718134112049023008451682498393289630773032025316002616540335636854835575109480116611313909289246182648437168735946334108264870093808398824953355660800935267779306228825812395749104041380401790634484802942333078340851167634632199284481737795926473506355139520558646085301196514992626051032725527709311831060976493854362220750532265112627377419349081666531666467109689387561323458635466394030540165126214820467877972606051534808378232133995371883774065721957837163577778305034110448563111205726849265979365032686466488285738794045790991791321300343798655047829057685860750316044366820383084231078032880430549795844712395862334794132784283689220323565268698058736427667580901951519450272874249152171792411868043900887516327762160894634104095980080827621810026597063452621552291633182859015374874999440578043710618342958418622216756043680637452605894704335958216409446505506377885368683926265519237062940702047505121737692461328560373048564190587377186702761604259976584882660940221145534269485306758287743495661046404642355982514604754434251531357617289753452558372046395954562362364117492782781881454262901040961734555165936137805124357833080419201481456269646849290565814421847923089184454105737442574301328986318206656711659727545084660189091526551862831333228363539042329690938363252328906157554108711644399876310393225666643101009961376015933894408562631558781798117791183638339835639509428516336491331200039747091510615790181114375590630757314674558368385331335136242489430829353837111366499658515551757297101233579020662124591220814729505206573623465486280920303405716271842753470573365322398879341250529258603254489972425812280256563300144481696769362942871318096208284558210358888167140118735022212202603698761061385878365757092450324998485530936286854106013585843235706176178597635239509836324687976943042486008865467406233658722163023011267279421267400063645287813071402423308377102297908191544471977045776651794798942601328932795529446100377030043368625385647582423893392495094511682349034345561523528644913778681482906622054167446440920790476700848569825114003733375392757330722719470595256178362921136719540135795492980942201372260543988879184105299800665502186578617201576607202380824394522815534549567355182271459624159876140402396291621151766587198781625989470426804115487870953568869179839179849757540425994012802410159663395178416954460757758313401561450172027859776025567440259081610415049695466824925075520779165515711492880309781878773147828062167170016267574548234169533342687788650090548517559144290345032945332779907910671494965441363131126735041911125374685307047188486723865984057654745411754867364906239896646594745749959366002887655399198957401509995748102462614491412685109748577225131309640183369183357915783667371693944587209832321943701181997480571073778864709614358777920658699114355238991818122153308694271975605162221691786876669420159160867173559900760631043144228363274310354241529728497092338415163000027050240770776606119005143457416483365362710548195560002258209607297426911452732420687750401387056181782047644718395767937869473781606741338125201023713267818106614721215119065701408072470680466351523334270994604662099941540351070863920923263690794472887631384084153187991720580484040130740365369326788960091233614576212447718407607256630569632468483245337561471629930600617626468992189936564108200915881815670547005986579353421647523295253758525212600314268663850452687634872186275865254117095400894092642590802668921626509025625806878765468929801288710671490135555790895095888311716140403880415200940419944947504886288302688133833199772028025548328613604997378288274165506512686086867123301371736352060115268678571663873607448640690811696502344499872404903534429524775482998511283318334143369470543473218534764848803664081440822800606885429330265035466187989363843720066120576890670766521794483149820857201255607505774707818977254735411115995237726070101596943824066915184521096511442472761754950340521947544079754503888647274268686663636440998156988125900907639417491520150308941800660873263601559598822264414484179080268852825887991813186369013746093557890832825145599219491944100887289160451233278321570181875698526004382598887863898589812221898471148818158711352010458917349207604818678703039919961379037165898352412490615735595177790478741594825328704028742573834493821728833062009965383229754533315051071350421892032485896631434930134007814157295145377222732738285965531306424863519774622081275761411207844829088321329791618837487604122298359787640307078252767223531816632574957041927744089120936556966251564514486922874621683757290705631161730732907424942154804484508312617462628260292656540958019685474348599133933772455461823088157403980082204531607169191776116431599083695946709418140944735547528150806948954886654311089954869917229005812855271308189622929852971274762533831916237940868243873575842652693212071582325488164925473656612993189894289751298358953962659344970191298591625101240855559401082963856001336599486997778319671811475110951479190055987325198505973036819751121620731346391603678768175190755562030947067032149688766180924079323434992508189651263274978551756063944894121160118042311396062895365150152648871007338894111375564730012923724051257684470350287297706108513058361614541857447776103610580116114288044910808230336870861795825388348328097325087631324700829724602791135209774111751854381173792502904884814416490982541956489511191294071227163443199714627567717208165992738007367474924403734458144024937775549228022241851112970946267265821708607021961043043207199070737234629208683983587428535100998360258817213449518019155881406273744840846122836151391878245948784666978656613243116255411398020117394816216135170100849164147390017899739700407639707321416341372535291567100468246002822183359649145050576782913513265494553311482399600280557526781444173373620840203003869570510967897130136026681907434007817909112371643771411354431980785389193424023617589332627966903822240007121332987779681368749655916036199706836672943511183388895128082615309360518991954086548600885370090010663988488864066987881435409989132134820625615184330972692381397892410515303204975835758082042730204584539656977198039548256770982127148636979177415102783288731010863923544310782154164808148405057083454304042726815386108600202599801523747008373541607062460133299944375413580718589831009909863309588352755176605015286151749181856715388170056374309888500400916608258929083940200664375814721491892328457345412455526041130935206784333884321808356695957788285199682058943121403303064994665622051267282517976800394756622552194411044380078531121093905895706203248795036202242387081049235890618007523006048660038617313033808854406852212944582751849673940345650836386985074685405645299099178734921601998058821741456181633771848526283640210482876824282139683555210089313810257691134078161621562498910515754245788473709498375807260453833991264739767481575039977007671176125649318520225774616265881392411613241339151780490687002079965800476195221630023886101089011274307328941305600737654304578547513563084935113070493803821826263476276671770630128763452097329459150083244194148849649202462593331024059699403097457615231327436698407884234031937954727034023211452726321511397226276165040763957483347097838582339533104236495135503742029754223725817352946961590795536182665004054751745247955639121162187966155735255755564292491146984564484748206277976132040126681055900419250625593714139716570632364175148723855418203558641184154735111892193560533311633925697247655588665600539227249054024910651432973680710634677489829896114754090963360299957508681008018477881119893818763347041283850292684268945964053097016080685110249820696690726571169732042918512551402109189466487226923411963846218874478281765407856639536801956837564588955068731224472454666190823193929536077242700914795220709391017875583686492246786861987233824164875347844440788486260317981347424874244596865147475527499176221121949851408154798884622553833904231904891489071875891254118591737168769943990341610054557402832098380331516464877136274680068185386373662858564484845228150623805424773759074288452318018224878235353365743003625458960222923950636507863267096972797353095336920959584437705941685750971812311806047680553704234036703447286546260448038453497298565532099206672120188460078000913459436171675801797552784774609516571778644847596689544608868908229168144342696383187394421745012514949535274901364795751700374021281824418804762361620041241364068555079670385156690450385569320358500664091707467001894697378402129104669238850663199540724856419142418024152768990392005814445022848368181843813515152256993181654319589451890866240662163900611979001781412532774892776297190034917006108656630385556225805887917644710172043260355656935886675351122780718775115620306093140808974632152181658825868331506398880171030806554529135843692632126993650413457941818173493310563104644097047135422004989973379312892682304925874260839097409120958789629184075937523442367255795878613059998908640886312028386850137582417938753563215848222620582290603962772989449791139668899397514223409819993966721477424558950987266386344298229399929888294197440878788058897003293638578788318371152946201567117465420323224536428297296083887702929316594373830939805081664647696799839139674583687138746299941773479585000627285622878827584255859468549915733451116483865158646003368991061896618249003743417811107676531767380710572773974640801007116925765043628708232457592703849765300517366199082477177689043209653816952943626691909672679677136396274417406946988291362495212468431012220427905887151653049240627589933798581841846597381932173567591340320313134968737300277223535604956796120731215346988174831702697489182444377565648073307881111222528321656405039417065180234350365087841147618968420205622894169724315821394959812983209571292475376416083979780682905513377967538550963109399126257897475189677178664399565783604343356681388715599990974406675374080234610250617845229083393839677320464708244675320337082802500362764636481085811304262323253423483363787874989536724978387481066649423297323549003742944495443077471218330388365510927212724023084652513176199432843859935142790697463101021649292460167660185067745654527271155185999807806781661885175808772602621872825474862043593867527510627489381451347095830955778066701320119855389903481358414624665286429539184268354758691040983948949694441373670458735160491519324682899055985296472221498028173894946375955291245004215461084825740363991792814480320234337652986730269614366396586703603602927431044879233663878789767290622088178613472790617698425860417264885681991902454953268166493400462669382449138956522675968569176978158269758202491679834164917262657469529459346094098741212126244858578340090112745833057817330673293300332400316750113257676683660305702466116020247692753124082118171942664130757441108550942743162885469582013950818407803798951880962893245722755757508347703965092520595871354393047443552315466886172020548806837215461249123528375405336422094299639676199119583272780607841019293805916696422043648898183939704101641471894830011328094111011916506446143031246685821449075330315503449122710349575291582621297718782148299369599529741083343210042242940769154910896805305727342542438828378596169123940368425987903083584107316199234504461979858063309057914136089242152707192355417454750261504020235978938843231135752333366253213001177238194680554007769049815025089105828013070408678984613757067454211684838073366222925212470422873033974394232402821175577097783992515410711825993915498694444727209615480546541608467332007738395636894767840897943405063864449682864896135506453107746358011125600897085333827950194628655168290500919406151286891172001696333262669708448463553809682646314028888873289154835611760989861964579544968120270820664085861820529408128229670019531047562988722970518549904298822523873589730600972056069052894612073269150409936081798734068154551521819395868066927871459975330894754397087180913346742072683599882272227332890272441614578057208512075913077555245873961039956240677913114119330098845301710701960168865830897406287984639690570711630380450606497921690191229776454344289933603949796342930924020124550999314991003643460242975209392979073869267798714139053424449643865144108372224951226301196873414361168665326482484870199367380657757687161714955223330515613443316498947074276952998621722824243842832492151553313981061131162024242062536885075072221463475157748977815981542350546471638712171788868708734806900268940174702764424062715009934652149897331858984412484689141488402354774759353764832269972191420488567801913735650286205092223498984872516100104853026010964600519565908025846995968085720766724959173844541130006124918367963359502816538856110989921802837052979552739630168420923482137235380090742171633694478863712474638059674013112305405315393057002209828815078547818073396259455521377218037408723578514952714039374190478090348736091518448648906027795840067590541708978971861222035970412097100658148943656227565040554457347611317274749669154738287830562684462901675287950578712549198016851741213433358387498727888336901748419301132691301235576167206789723288434920608321317933921754212176142915886096158890566921805854811165145772644554115782343654005936302506747898924525312961699026310095652599824232979675787644035186500031891948847766203051537456193724252328330023278938195409290412543054631520161969231742655826630908236403455990890542328977789493331444128905713046900876737348883981831819493472068316630576477950588684649429639200567201763290394676991735094035554311375053943510111547314564370351820585867837112174382347025556066125654112290850148356573907289557586484355557526486605459470876902271608517079513675351250019934743600271430716552708252123067198867243473638534707053032003455748229989426195374805428681791577836293436818217291525892816992173948995560553866356446846798674761219410010690057665209909480178340347522047388227251999781514577262408666384507995356487893499735949630837404821004326336774694216013425910447846601222210671035695788350082952840753351002014595150339469963697670607849666881449478536747158552974997875647603154346409825703079575808259696246291339732332212400291851105119653055332503164345726616519666085530644599892847378639216312507175556173956312791943868253767822637519184283115435464043060246722692374109848103792075933868421292128875276872636905747942207177380957910733126804646156453812106196033006553955216181028229102840522104073238548070853144373655471461441635831036793413402917956449160691728051250649224249623256805374516873568426599602751880185536298200544302598083808524562029863639277877401520164888915693720774334242143864211401403813749037408715960152561378348594019836653248261858220045029693807049205082107454922873903086850129415985066328045863454479314573956088050452855263240410324660875196679782577584136960927349108569638962111773416370384781365582110502432847586661024337999558660738253600096475609346261566567128594255367329721967258573744047081048352558990421615498147482978005137536641710305578304258284876622663201157977698462673456582012988583831865044577508168981894023513372022154404980290527570157495029794235290714090404460880110019929283788015702263143058177533182584282109517170856121414206915317321935901517512564858815296580672489007029179685428953558729484063947660822597215642634532928849132351724928843735569282663283328775851307375778843466835367987859738006108023197182774559182269574757074669317006243204493820646832975366120758370757611330089770541974856614561156878726601599747595520667931573384930901532905040010402206346429254449450951094160358152991824508669295112270085741409176802768017409376961466437699242155243761211926677901614737999689256871844916602732685478028385698907875675979885150061792830871469341758139719013247256058634369855904383075935758046518751451663287052982033862074216710975346990710183317996189852045451919347640624339490611102520677214777882811032290360690509346518046762695683180369584828496546697140540817488694597285753034200439464561973381008691908920091122195742039514267573233161588197891535759774071964204221837971132947916938063863605832751037956907204229794993847231137623007831264246853363814605710041238786623696937254084879986539868781389746289322432309894198169477811881668899965995891516479820744765908689012434140003021207945558581426185483893099779140102589756363130519110467352559042343167215724262694477233710422702795997437342198555415525270192261634005300742127286416560992421436103700123909682724587808328265579720608786848449520324936365170320937693174808435770508750515279750618491938085166340228245643385604788532832352094728425410399382910475563446362036618901950626722256727767129975307649012459191720513875813527396070351391887614098278450542707839363461917150398620402951486610087723021838070339499159528110230617518254080702620543713180213350785090369327406338727940602917747922126691644719424164643098322713718890773707776746743712815638958294145268706017373370268892005182647411107421510083278343109024240776564670191290681876157015945481288299522357400128467536043185178288497989037492178941083743289618331846235105036832576480034560249419854254492575949997959061747837206960621906531608408597343869890274529787086213145790630646834870734283199423955725064984512067361823131870297165302886493889315439311818393651439858158625870584297526961552067622889727026198503595986773776033198099692186078891950552173248881572419949721253619577394470630230251197417023058049820441108435166470412383394610014537166237565213398027446166330084236827039397789041222097405586240244272988881446191360807167197999221980592631527651517704156764250423219128968316211632371364141345399519380441208398018495718084382023130090049915976851824575565301111113363415863903560708835946449746849917527878868198579864742702299115350728331217783751729564334467392479035517556684522756128407632220736036281976727142457906198638933087679327085863636201638802257230685403701583284597976075720051434809582702066154205197614322829160249478836365433760262182218938561819601980223278262941920274901670761110643459229632465437628587819676380200531697630948745133615978161298411005503703521378016693756788753633294367906881262436042823493000345446449432613568321082847309975511070228146657403396198047245507035919516482053470933625125335655372458894903789827978862264831547352682392865465578367656784018938113230981934531731126674093300428632430620085961307140775560442274044152719963795831344299908316816571132463432608145693982507315485080342905627612077356494921737486296639416675359250274812347153409055938187336564748094691608234537455447868404635210330823987549333694177565456926978988097818145767233149707558308156852184157943653170787282561252827993437071704261001080034920990329193974632100763180600314845450035954350949959862499146625949914574951813807848878974591322922976901009634695453450035459988852204806915307299740642918342026911797429245844356653298709578242521806717021453014325338150325097343117016383696288286953585468877365730652031201482002633404973690246804185458685136640690251604644593450875215904978994194753521450499625779278008187834915398715421815070355526425909174569612409383122718774655730568943905889181452509894638817410267461241592558227078865977622236474214095954131487334306745874884199604606125187301850567501122786318911071931442991166113141822059932655410895601401500026912092297149727024793439214333152427443815867557592361545349301221002529715716172155015224992314871404744113424004535798576113326202281169185207254377406194746357297967076169673217010059200907606139314592635180179610601158735418460203773298791980687349391677825770306958151456313959989534683084477479635157843100086487791950517665430898997884310777677286951230825929683018364860863041055916486086633527192831236947504219412175654327839739339734735387032121871836968645906845648979209537926816708908954590539261862016033266403483120284583395735931791676497448005312107842828312506622348212945681217148530364642281284139403287477903659627307916301502265496962811978202884621391606875816779719736169781260593981964618413488260249459488014395375339153349963832688531671891931881648400428845133673311789877971706871316880560334715884320187601178951684890283972302614881112722921064738354681742060765340518550877785135364483872275199361485616989897827776051108862985934427128620726720608370981145576078720745226529349247803126013856900589425008079191398266482054059714688833568740120565770688234847073979543810577413659210819175616828462863526336985650614088700848603554161862767589273755677406607424544970097482235151725649157425362555182995387664966033395985130856708249215117650318404449512633201091896251800996928459183776298090580564613419998249341489001287744989754937360993633710400490713235450284422217375919857563013792043330176068651044194635463086958871676473021907728943598729926133888178430364629818454774046674756626699575456196726005010271853283996571630439021489966505220610069915291104656935822521345449483345926502395263514758250200877518385747954353188837810429130712733997986412026630820174018407628719753542484102200219519279878398181005728025816473600966075944460138950828104477959826202502657778126103517058924230756940283470846377398773447966003628904186556832301244118498774906982285287390761141255930562847223508693777780431851875832585726201409896097219330674060204683793484218925047864699771758295415777878490497653419445452937109720553114300105538505706169743328321673847924014816597371802864752910500687111677858480002438375498792205095053414355487753026329523165022420524948776413119653135325113984236421730217844440162012930045824106299809622880303848818211699483619081360048848631491649545723500134182556002379866121045676034306866117308639056623091796876997673682654880596383040051920762738969817231242319285543785425933937955382139766043183446992365330349492458109362413637082018010420588779788008961549404191160966398144497638903351338125721821134112891362747784381344464742867865354388604635778214117651718193559426116853835955697744331052263550165172630092915429905441654630181008594281643799247988918141208204261781151245832059365982431964050912629926591891359968179186116184820073461796453229436196409290014262863960274800996593713700890876053306055738300852627580590120610893920293748763594298377168446112769175020251733387900663685177326354807309913980772184331618063612220985353058068058378240684389514648320090295879662853255366956999979223270117529094334103450070208721549563014837148032868634770184715956632322908873633707904213174781811970791820778445812764900230644898599411797921536231355368208374938693480504256619493392648782748895269177153973920229167966125665348746985295479305922923514115749926166327501181542709177046582334626711852298006672106928936538055557377981201293237764268199036085825682309877221787925569534072284723407759717849973061705525929782031155376247253039991803422526294709750433986215452219487523733360047942959981501068925671198703095229057974184909942487002727476276834206497784969345553088906155581128772194571145078983292728074920241867225178579045737983910109329584320695221721746661962153516133484939433449687566557377817690053771817234753057436743181869207978796056795377668055517106577197765294610821438225646753829886582642396480078103652644897161805028558293576308276962548774864736451607256534600565993588788324532995180123170252666816163720842977499570568863872833057337959325736715083182623899258833900715754388593525939535224620452126920222719030956189879780422996727273526411588365448382591379003534473552183699565032369851304766006396178347944876040049530426606019006611287930074057054957743789542249810313744014794427284993113504043899809618492799385671495979993847070859583230396894753888757596000110068790381311398097318024552734070452266344124369693882097863821543225978864424942349022075404870657227903407005467273587794939408719081656736213725220287901545301507297663650925357671769142972178840734389730571273821114938368589212894899250290177190716087564126761719709790006371556644129184865869459818058481792716256613110985655958362801385451857204089898275444646620641911806424706734545607589732932447927923967118778974494621793379018821059960998117177124510896991264713147977312345934724402970237949633887369908333538493492116901760095959770704673740394832969545148740298069641570335775582491086556226154027348815388680438878084021453593658467194883263061314746236809856545344611600897743961818780489832515093802482907603428459896045446006754720185458825350917023715575458016747151375125880673009287694450588312703521832418101260622183174701765821197997272983472238136310207106865724341919385283986677979537923557515229315115541970434659507714073941064682546656949766943749072712069175001415258192776698095807144292108611169082710666253129416407847919518760853733344910443647049164172605403139369685197557713152951584180670301354473131664711861397848515619416666101024267126647321654303327345467176625096687892673175925552098815087169044042404790799994908050823678386002776767622855844445969485622505737982013274666525974652803889327091308748876961020558730386902760463899018435709430449229477578031635871882589086146602100013443984256155558835304439737201274295888392406815737033043895708955416666876918250666336800131694763462752922479798560752050601159728732292733292960857542041857115161381664686065125026409992869763624489822488961429334627677799063821672734130082422695600162793400172889724442234803373772087305154096505930860230047761070213627141684406255637606545053628916163760746569810809987730695482393650112465937521391243067233262592493103301223562385701178085914501605585015914328170502183429544162575207956306131532506174283447280263655086633585254890328644587984011190116027204301040664102410032091842037241268762243525538243301693192148598786742911209431590886534554942013896221168994115192038683866387345342675723446523250863015181494554868270715903528151068284836479059264941269642039473444516087564400249340934594221419166889868305112447148359005289402722555121632976947381326198372097121679328450940193372570864252397848715567717367955974940589977191745932341165575370632188315521891175744629819005710133605745215347012913663289253810259496245739439443407172328107509067246270625267105298890702742176570403451648274670022438029422012282802709378126708181509766377124328313793327205934339836271302054244634151795314424593161569888303828619615033213546271110508823735034186841855021363817859860145912438357969864463217439528099745647035433854379065397396052447641317798708983358618495200727718061650299311365366445898701493650030346015632415103803123389979188455916057496912107152503853448450090996277184231719609117526892027484949885778772939435879514094989794148958244902141163658763078272178905672196492641003224924841504399160045865413898608560741262565864310945047959503188245703381594089749798651211348012176826231232403429175016255446704885305434104758377896220979097664119338808515306512807893714169475599611462361867094436739031790633216436444291906572228831964913192024636453202840407076224927255866866912423279535898735455701529362872848035613250013244844269245354872579299578358624109809542415185399562621580665017632393326637628666992782537303360622434517702580644296070334576879163282584937312475524802162230589950057356507398716120601970653520275217060678203102638442481533499547053975047903131329365105274603837688269885533589670806850622957585718673405339302828689320003707504318660595194786805292042402815763325783010090230205495333288011333488434147316119232616267221831647232217371405976759454884659630984898947950273533078192478328516095231761770856526207758254582684067536535846810001910611551051322562628564977698135164974495174393269205090682302902569764114193085218812710311217256272604372374368661442838507674630572741931276725217194410164189650743063497253936437113128687676458268568295886648535899071195189352609520204032920211441173246348531933910274116267908027721301958429096932250910796958846279069564509506145009445367526509189417605496861337175883033034577057468238622986929862421869487641672313835588576308449691180039293191455096964521977017951736107302217240878174271703938803965201687971380358905106664476984971991313612137303099853675028247900399308929513800800647292507379798388149183448779233824798417012769496266429841127280913243440433652488585677108654952578792210212867500389228270031164291901358680519706323692490667321654576803319228136925850053266181110300761723907266334743508807681268951088062698826134474557767555669458123347831950716192937418784920689805678060215699963953124641428911331839142188435281361797925095008478533461304267277999110552845557722705931000664714410003021358932711560374506311935709734402165465515142504856936697405201867536517794205495335578303496822721668004687195332538550505053008743697336348236255713553277880260699865020053678861754664813669034942742715748190831561446809205905252122308621844485600721158397698136195234410331376331881259657076328468127792617637901516550356239172560608423737600060832773671164603863356802314003227596676552867418672463025211980187256875258013693504288987699016260606080435587980239581445904717561484946839814482997032861647813472854251809468658532387464017292100750650309287110551834127123367616595330085874701315261564019552720444475269469797590009406626569695006052545547178674364070388658878060102697984819938650010425855300095762128103213053087057687663349363761656851879530310980798355346998170814588036336288039857701019226849571304141891451286848848605559387241143837106193989603273173313161826872921545419851381217145360376899931064846300385465416961890304638549950312099622187823307554512404253454310237035559116485477159301506634207090705103487081741329470109056020161770392350903607608333857581818658439675687845240392193117126695639495780883994952863323852552137955267554832758120717407761587061083906259511827490542251722444905960300701260994452547358617295627182865475835200080724676651195434175883407568782476379108227591023318931511435219139575175048121977215210330037122539282106490400918077010137953173920118751308542713075540421564675846467952995347326115957142080416315616563636960528233190492108193274198823437090842576230703944666917272727761995775980957700979570047027848880160302784629271743704584640298036427447918540269568823935340278173169762883812358966304768708113113834793276628756146573848172127978343196382159680702249742475850917309950398079185132174530245762320403795400875888055925007426446646588904219232582724505581376247027012793343031936405159964787364689689463738541129163526917854704006111630709599817400957337627002782776562027118385529622453079402213547145220305618392111609683141931243704548512963639688822281304171903075840383418776328297830028320289173071921397202134277243793555527731411225686865995128842479817462901155147633170159556507026909545795903460771049325326047405764690729884984372862130685151793163997052212571764502251566968586186958725450281175689794872128852309048684621837142727816831027192237802440800801223386801570108096454453285081453604002731801030426246283217358702851121408450650133009659065524162976931610333632731099315644881285942632962365535081910202832992772827220053571856175912504299948073122477842792412269886133668489569868619242885622688925801210521811113796121587121372570759377809374347821692516241762970654389474714595365565243539186333241150212643495268130045947447902365255888312593393983886729447125829257877924570250073880043651470369319190935690218319094448871093957900443723892491259613692360521073050848039741519856669647058189830199548104400578201526355428802467964280071167900424686210179120569739599665110384643078418694970193178545258848135561266395347355112732175719809304971022379627046288809484393056508144099360033017141747679577484198004764822191626538182716565065497553926792210583343093319266938807546873862125837015587982229236528734596191772764315314757051733189303784294007536247423946034450174841645001595387232423704091870496010741530450253644335803085010971293937284439695665431586579882134534102501134311502865542373655125844955981205825696094655160537874795485861717063577500400554443715482238813631789065301148459982852857867247543844971146996595014367845566705364083509324095886547045428849110918697802366735527990072344724243966959015355104328781894576152134903477025934403861732294416768024101350360245590714172692597898622897677037570236633156193473621103999305319092356834965406825193637932234673195754614054960746643727147456491379195690370975485622523490789674692873029040413530796994277628344759738864735810259975109713108042984828113436916807680557134860144031435743710799978644493577779329839906636889517251763406363128781265511323329177804789025634374119324901165207603389266198812999232363772070728678203845326577033312842785228961081928352282386207432942075588625629012192361787578333880671219333581928909130166404040468667770668204681661502336473268934036173653464483558876805695308571681301029055114498800987440395604443719970362478100260729883342225379342618986385876301899804762089646359941967624282145779658443185947848630241648030329424777637412924199382566983521209399780185165503136153943938476403199750836068161891487519846784615845338159582888006339019596699758256348876528250562097287943505417387198316466943825493998567913880670566627699118171647972612175049653378018050210030390165956890591687490236180431780618379595560088572311457738519808964833380659929305242544442925715404016967083536155756484497349819396695055533470268357330228579630045605877429726480174871069856446267065272482253599305891722624514457145639879545836288123176361897632286240130450231564076520471862996786437171321979933450665560859267126493203500702224721629805455092308003809014694091652358538854490393905369752044773522173594426979287967021643444194366495527530074528199867913772810145085631391453668050751686071460012340841188057104427148442854773302928701378521066126669440818578766763950581004195595264918579818873919498418742829264569325860273800436748258733791661692659910312969000403215137980775998898691289073929030073200899186808478782044427969284977122119605081377386301700869876560881740144700519504050706808953938979923225248409315789395133507237093891683666531276170145189687004064261810781355479906183008454151150560839483699818940716847054234477652251013807641387166723281041345313126562877323798028065303132406858939473276984186062841121345585983107193201236010095350490119608809312770847524941463077417592415041391956333491359538336700296982495827818139930582633489086841512121480047132677069900343269398725217962344607918338941401230231829097827709733323067835628678319317025850587377896024578018682922352219408786774642394889358475714104463189885583001323630726596110698921453651689016315298552084483815782903949893326143947068949750995850162941466980696029781362632656216498472038343018681049252978257450499396558012933590780302801450252980022320198503291767855701312512262666228665417709998839085577416123840344975240867963653175908796217641020812320751033152456788557860280958401807164029652291450711517937757422027181933119609879870441664334189279869758645936754890912215409465741441713857913657804630802194432898323520950826996686940573632962179100037425881819427383523008485619451101864204887476592063154990029948732144318205774528279165630581959415604182670064594895934357566689203317065507027761057430132831298133953294375738456108012886627101583769045465425793746468871945710510856456226137250942236221324789444790396360971886346826914555323582561066247450742115925667106810957665017813914325772485604829522282083386759630577014870646444069293152204305859686707920075333998256997108095898327948337540289566274713536079095324727543338111462375751634138226946263178881475757854246899124405573061929782070216159912794210884336667160375836150709553800782904280387927877623730879957464775521140064469412751358313839799446811482370485359674208337046101084492151188984547890912124924394468316064015007604043790032838165204961658556885911226775041024084126328404113808041883135678072774229087050391575691580245330366717958648910140985665461638030648688548990890121537001980744349726194217704664351268132998908822175305139519534276929370615148655208061759972468972448266082227216652562960262276345317164153768119975891526953146977717188420415198075409070046244409193436946418027131187318105463850052989133457001507314903102283276860057443118984060268334282040091344685192388913316434057694298297451025124115916518208898869475535570212636652215824706653642860655535096531924935258772970472015915146743327986642103153185516101178263020750925230007440930086070468871775113435231992045051583721358166145824484261713132833486778167920544777894029909210014443559819006471680770836589445456204798805867740612835783738231154937031912929327534046150215103350262805578181935824922654768273857311558161579587640756057714798500880173560171775032680134444339748087024491496048555052706943073777575676674797439472847418629864972401942926663795742289588777123993617279038169641656851236329059354587541259765659578192278889855103430374566392749572650213938587512999749188648167760719298944585197508802045971792857252167773115402192100507126919984610026957316037627142677992496913843034141629431886340516405531729925196780967670215521383095476864531177309730593782308480316212024273981119692683459846872182365723676463126655049439718597030688832821756643987726481688536694600300950412507632097455114985743651352378639614418613717735348851359690568448085968369330119167479071963481905191615478714617629616995010836858882331190242975244066467386463626439831167979183927129598540856516949011038392711803305021423207577869832829677563267162073826558468577080313783765364815960679808125070644425905201151600093650834754079794027689732654023474955904248650884785953654965619662459179592473221826629402931760013916652605908484424335681458509445388880936901747425373245127811083400933072312988023231924657480463110047830316756598965394843530393847420470740962103239469448015848054388620478471533475049211819067413281274928767722860885048603918006776477927636438666991854669544979907584774965458318122602354120088125228053927560517206785480431854867107000255516502202285927407292560635249359641685554869365790387333254854732425880807756402954794446320554359024403579428432675015970510088341565575934030405627600613812013368028797226174022813211809415001790447029875333275896275428330761852984594521835494527802163661048639263332568735930650486735345695809313153392686624360916077261792954280997008255718686360698569526479967842591952964109585666234629840534620624335004659811950361009286833207613095770677879787386700068469908928389036133530252253196096181712325126958014595096029205796242317982416061012959335649035001641354774507594682120455102476691807630688857554215728484769115595137787610761438326469648930931731078679640455657499397119709136174108861933051964850850958401157241608652478279998106857516806919476757367179811700410465498330796488106961938038360608815564346374261784953623176474275170318822726024178636175330507067816426056100370074255718052277293846151925162698327368595327313235868316401758850322305821047572561995528332779656793046660932985700689556019641761465666859132050133787973165434279300726965949499943954932654968512087492187296965732512239121404919494235477233251733148164831526644536385434268406977373634464342505709220452293588966243663686355532923241532243020590792585124517861722987069199771584813350465020551565033795418919182124534683480837305377567984258944846450152043592072330757690377520855150183617420288803824158335862155331370329348847310991504821689381993509303381782554950499299389026198306155344396156243573019683481294768483102994209531172516568643665150204536250351692741969354526807542658545365342445713338816532969672470106200104362716300143311141761164493492835830627761776898444358278865117358637688939188576540442721132993844990201110811661606565358132176935217036663572503584088230050316127469840290427383516853758093518416264916921382762844205946561649057784228632322172632098115903921282264080365474989474292142416198113519183528528301494439144722317249553242430683011152074863357889164356037221219736307502345776828434190843286965651709906855610803770118173446501472391916436249088138176217730551857896853587073408411875332354953301226103676645170071997970237576463842361713340769853912743948753635567971043986013026941272388981190613752110996145318656875610327754850590196408048053608559729889168434283797006103416008426071372139946582166998870395564152336143819343498754735363749463588320471684045868256416122727918168203281589982770017058577156007317138539729179277740654507539768991489776717363840082034513240165365401000155971001514356221560472431546667536577722351128961157525088978215941510900031004182901517594844106582283898134593608027350869334030117185116461353408448233113374610483114715504908996738023838117013597759942330686249937803913216576521377955597672668916268555862658684829567354355914263933459428658993636797725049884045961242892416221552380404611303634265217642778772444731826397075860663974213283120777377588580617077222764927016663623752735114575875599308945173855199906050922647368020097404924482464917153101582093211672849968737931277636516466967700526844041084108730654081192233197901409227401298181729060164660725991130043391600574038578752475252923204038297931674563708793262182617970721489146034832494956596786692015504479784794092726847708573061993937498059779379913060412090667034208190241304795376572188033227128320865606826573598627082783826718591261276997113715429656733223273936975881260971210403064764841019045418264704621052351401121880606777179948060448580501800751429473662750855738786031627424147457203089352560266344032873006427906404776905510761516753970634503600555478596041019928332637531871294173801104996919854791233464560887898827291500340684093912530498307450474049691629526345035812705163593634576437754694498099206818657179617514995879289663616791837289277707632376357725815828046736005774189287252426599255202585928211353505793369193950023157869540073511858112501911509679971145099675669516310157120044495420075052536494622861497054654394092191632814752933872255952384436795245601400091870036377609513313598509053791554335061296541218742831703485790380546698417100189684213414439964267772788940722867587593568913579328970184040705842600116810651853524562683038129601290555237389783666563426236164338727521789757756277695362460670875854612087670530982370485115072005177440907110742691867355445678952706389153228808189706967105674133808208109536564012181280946493678849822404621225116876761626126595002289790097836787212999621245057968440754012407863481042245716823906578975064175213754041934686705258615902363417562047433267519601267565510793777505730772709055113292836502514373199876262702823653843692863138687023646381366097508320201840251515597820750175880892443139687771401834466734518833637165553600823361723856220339895848740846015325468860637765297654524451431356085992988762120189361627466651940015438116710692971174571213679776606820430442748489681777956969681184450624546897215641474375444621788321630796676709148469410225140535954686511093949242115098663502350690064805542289821370172772468867446972647414044728574513070028963672274637638541780367774089487302651683126162477437407499994907052246725805435319586050755936026383626797971911691667843708763318405861816450812059769716073597515045228366740927584078484214814069164716475437153881130122819579630045128857006910851817267844347834492592951336385428086270603760123999477014353770885214915246181206954938323760137282717846145131292759148862667433468816144536733203357710916915857076610878840871022602387514957820500328175437111252998965870804116096649763931363133270717441488552368468292021078849124400003827661605088133164862388074993393234357305767720818461546143964807820715634159068399127575219545841043207804852888084072809339783343188129723625489073471816305758723237214950167521580439199608430313797960447569144763224594807490131583467416523171910123623219702468995873165192433750323254241469957426358403462345645277038051137152224708577381457864939808033289622744900329566789709653433800160550728081557960508581279012171087281214976654451254984373123818778365574592588711646307710237604272582195062108674171007976280936824275018620300773065313440120949654798360220184448539055447476514690908037753703615698622448996868615326934704969688289342510848776399470203933611131220857442794011199754833891630358589983959764025190193029820229222041809149354610078027276615055744814464472902910649914078728349271849482968145355098484708402962486099690892923732614735879427634645391892748036950354553270100804018905438229205235223978294121341791442173530626799205988448656206723685129470394900617963413707927223698899464213267250728935677950181256867212850300410795716784070860779952264774426402755533301094414691296606550895124126951937457964200335397571032562332238141246422129962795140112367309709838099832902872725979302631866444979456158371004460945789009386601953671834540287193361604978114336318268705107234692110608128058553670693032039375375888174758161633543828910443977192451233893944223985185889285306156653271868529135615114638981080259755050043630730446627760767753920454296931567863697224921808811036494899975691407140086930694286514643179823877000604301392056443193145313555766185723207494392073258472834908083743294684765607099518324024880390439795320927328918050953742674347093160022538700974580133751678617312302720069260340421768810517567276024764431151511640948554067548216128411348694872975384655796751569340273243779749000034310395892171572984672994898036812707662483685145307049015883722462156038035281821744437265997008575766335658342196945197098701447669421588258617728081285437249834622426089872933176245043848634901455999302153954127540048468893403034329891818723527470407322408919984298514929573951772757971045322443761837569201694528844529462230669169682569928338992258355629366741400464348089158794595602128932872760361101154629456561458574942376793470920434485635485111253916818438878824610302589720269799520717523692232163478047758912754697205605944716823698622903784223793951872584995148482092450338156061479752068138279367173816619040942405667318733123130883580682312402738863524263120957576983268811181577524811985059211814884039214111055339515478457841093065355611971371947142267204427554727552618632703192073894704499677219745281393518551164076849166594118415982410029606691717229820730074867906206578363179011951902086024758614646841231309322402511517617442776053603462561401673119862411497042069707896282999134803946927353797950069120043514326223482769778971374306150199433208795534035094231141107981394880239182351621323643291230079568189916983689514247663224542304785023734451377942325269185452285698622145291684962529202191724836619665300019590758646670826002829405037967294218739022150749998967296024693952212942407948903237792613669816788178669973165604575815523381937955306225399692220724290064627012017056756436771264494175090974245517046141549744223023680324997533561031888462559012071338915962391346177602582720540846262245068434861605493689275494735715608028861152313778966181241081263126351351640009511434322362359916502186848750894693161053204345550613718906480468146453360037137956932548992876361549608830785526091316738414558760449931168174825268061761014326433581469300846327511216261608494947581495364936077990044790733195811851818004290418203075054499058451912658377097001713370240171651974978115311478435543711844055292255627175591268364922824200301947552662684589388984353586885700804950946773870068073194992515398248462677855456201942760556365529369673393305840550812026075750822270549784196208866182285280417046160903877238166521291425488126007050634675378953145872944406295664167772295632376913058302551426392305524078355759073338620768402522214626535023827440206313236214963241628623790480994083050229421956200876903579853875880216610098852268515095857231552454655610502881074689707611409526422861112013649350679093941891461911789031705827119109029228592782910294330104684150315815165870429910324111951060477408734565019475367288569781080932983829935973239577073175007431131431314325610316338222253788861052002398639424083598416915161793695306921217282983442228474351647889460392044679471391878196435911914658198257630197901665669225879641141958268371334805529945281197735687342924213957077147860691806829049557548769232249030448598625211800579643120489343087240602046893363060058491872372375104120240051241594264255060675962879369413835885109444047715204934556005147372540307796660640737468764146029514118578765504750702885520750703458147050677448793729831972976090429344303325047427398337268181466504676587624977230236354623428567915412849827000279462569506711278267277972293618644947061008555555102870216892486157516321358602582779320111123998727873918642194553257707031189858081432316650096872749985167464042015701670538122383094616066441560188197421752665800132331711416646174321986661908210532358492579597024512234826717824290051109730802737263081736702573014273213873337418740511061033793404831161854714006608700773949163192137943669438348792875034916084414715043054986857805652752377758887856714737774267537257735697924433908822543553430222535710579238518334353491964513855844608877513519345662132657416413413445559637422764645110711744222485802953145521759972508057698793117916705103700287578877123267663914461653752981527025531080515879632421368103598438739835056060076431401698766623190504821555098800280365447842836040249076828122632229562072627222174422412097185058639898846939213782773110593294734439414495665640935256431265216107672501925462399631992848594528312111477893312817090534854707688539464539401139678471849307841279279792699657628132196286425494091227944763062200000142617703733423671959709579998356284145362641850109066009565308382395016043538687015326431740234170957316170512880866111589409574010312885382819671178276724338044001681650089788106664148552724769426132283475430255676758588496235620482651942084296526620541124811351179383819059931799187209589095494317902862621720893764572145765696335994389629612190572764191827039234654807875778744790983446783183485093620607992419372007848738010789390765030403096552854835165984184347345678009650789441336448863593849379571052789894347983690412524623817366767438637584724927294980379575906058204082011513269687605748088725640793682313218748305664448583023573649418567356666082436887513432093884914978427054793315939582962477542803556679590177417105446648600301829618775472583821715245238884232876169307776913968788263589969870668774917169912730588365615391818976323523384424942328656554877025174250539560229580480884382222319024556716897097437765713744480627849595561276535327209015861310022702236157477548614073557850129722369342608971205831859402850021073065110081990428268545609802927821727419436117557014905607237614305316835919641520002517864299813374357937461489484308907578198801269064633247757196652495541137646656557972141807324835764133022525488488869351710963462900880063444776610255012519127975606003675610867430518088703433742583112593450842078962793693197878664210371037998281831762824748179472324477152580049521991275152800873895761680148592174197154904956570143376993100123919728694160644737279892501251856891911344048610698654552131021407544891666323469480126160363990914229440413919721165983012534040097497795258197955794140899750983227306156212785061494738747572352119300046723983259627633652030993024941410770480168525361705510555337273109565184698440519427550269527732830716952111588672725639230218518700148390831887526377635586216111294556431902053204303943655944378050240046753272306174893910280109006989031178095381219741855624261714676945867118394063602481772996980416504109023481408276598712487887500355396363500803975614412661497766919574458439052103055116016142055425249022436637900629560599044575315413731137599796450953820636395072319133620804438622110447463332994200788394530192340536014732717998054867896710803680960329916048352294479682852536843915518019787695818097323797825752004690347961280192285658760562524399200207418245535090620697807030610046563736677296896919203213824235748348486186182994195938994607773774347752888871574869172763814432058894494986936108952496262689576241184231935107541001668324115201254036478647576401982420266952341759716372201282802397164823329900817686620025087384570890134127438731921618453109982952567076080100371672945487380613897060649290530927639652922806792293991443802049568099181752371087787830148788336612206250122985087460839187629342306413489877479908877157281651060492973779578580346170642376050815556844284520510156701502709044804406378548744745572644648637454941219636321963336309953844428088012934784923006056685370392905213940974978540935078845833069127400958930458068524414838519129068074885832664141940869497662900744653585218340479980905940466234124708512084775881597378111035221353613759186177653088065827642459741076903931781198554592774571454390171232596173340584191711480904730798090185400028611768723527002826141099868913627535110438358495256841874066675669889611443253011765397304263641820507154625662043604884441322141254325363886265816792436776638362013182314148751883840827278361556976448692632459036549965686646011068007164855978144880964687590415195551472421516814982885370986868016502230765626622838590029747274619606572013694629618595116245306424053226724226117789951004091694937345379399720258971793354562358688907681514212765837511590979132393195670922085334256384432128725485602698486854895060494981746224496911276448449131293852215706307401931814768042459227410125220859537972414749787459580721901392033270741046158619086023808279337204928134895722700292117764286745439569617011773199395627370017334992169118693633553898733211165245196495367776202805036701690688325430488937263128843245377309465626219657098321108943235821033579622643972664312294771722962949453330421602188371596006139868157057740268852985897639150332662554212404682722818815269151328848332328603374879073791446049666372843517206700908501164499153303379843397257661182862955350348456166811368513185850895485144023736948763903722871577841584397292768341672332622818585862532616834629645643622236388103983685346666020485520224350387942942981707682535873289248605035774524638437808802983503614567551500388435034049476503501176133984495331678012370002366854333455324006783801355780891625947579399238900617893128539624420226013818463154054508273678406223133737357871978689738855454672285198514579481633498882847124646866210743489701109300271784319303477831423763149478215645702469295815329846044857896370484272536413667161090190366713253818902175431105331316667334466902775536557352131995436622075583723955830253928861519243993009335633518825742146814470603411388822171930111802957084024314083912722351109702635081319136404593977096170239714811227351107812218213834587393416938972580820955136153344246809248191720995565370753248132562352308961231174536866327799208140290171356977537249287801773903400011030526824271247494739312527622925894399893458588053528975427377301466672898900276790635362085771261399384352745128196093007093236992987030606452704729659357453528179088530448618793030834827911492825651463406611166488751617560275442439135934335852689338313540839441580955283099340087202395087578515987952116991587764445535801285898188018417785000837959169679268523250457907434608780916202297640494610358938856095914760455375745695952018608091884723733240423125767024748258671401744742279314666234505204172896628926262216826547007469118927806105088899831874829114411881935363601599608004319476119635671616930032706918875529371644537101875918261547291593301859283268897399468890474666803049818639035739762865956021079396841615966639472940886724275282194452381542640630669706193310290367926674861063618602130961753360049909129445781772630782207208942463885695993777312104793046965493534221421574773173320335497810918602574060247741909810627561088621753463490132230233638474809978658415397710478909180648707543957408922328572273120457797140514512599418783989552336496813788396420665561893898717278149573425934467638703003352470560217043211715248225062474416705901851607660176781414721337288307071240775327593956451800323293134793278234325638896754192579490459112575780037045743076655149327853274821632934935619230235035841517939929777521126694654283899732656194826732684308354776371870383205336368894794009595119504906359675247467157248737032184275583501924701137761950084786335699529048419840157879093271184800223037055685550027528510658097570181829933921798732377145453382919315216800924822029172241307532538776940869780561409463252317854899104666379731896808799752294259617797438615850933162921128621574118198062503771311166740393183713125970030313947229645645376078992215102338599051699977600813054790173777111168137596039840362661736820582833637994269217956184289715985289029193700266783597084463432657279422255635687140314437008959479894196620688799628632678500864957743069818340828560845004693400479797203533080249163217678589722117094355408611883417470275879712668452127637350286652780862407188788888387852931158601269500427311077256107866017092620848956856393234112630715359959621674774630368923991369580417236104051441372392229679595348306648866425912385799159724426465857368355970501592923809526587012725398452416358849942508985274014154209917007804901891608877529964272029839988325551090368841471114699492730841944996731598015544964239224068740160094181677995761971070588626991622093571026875349229456796075732593507392743153820126693221556913838792871239480162973458894512214684374101273510830168551544494481551871439619425151127185061521595192942602565275617787730803761178616301751022018159456980282786370317345678128564005621606206862434865900602213076473892846178592143164042220222656482976630369242408940421885609556215259531585682621415258248831303075043038433028206370435642269282859996133735388923554575196003611202166467937732957653363287872025075543236747884692888299319863915728661948309460048101617873113928797746833209447452553612926374817610459674897340345810300812147498042815917530015525687338150535957253924095231739650986905481042010938057912123742832270446887268370716537140712643821492053761176089864303732992000658361314129400293146820830092372907049705045507857016242941505395611639588916107150177182492876786946493491780046916650516207789556422106017430168955124179871604138161492110619240340127880002796102943891823419060672824051073088149156267069396526531852212418042189553185493964055140679236348950958494167690242330307902273847411068410927306802810575645837429712602804414842866264250810015335544892944377370714419725490207527630216992973894155309289219792279943970644822147452176008644037849522615608155393442284246066338870542246845917149574069357780900596404963694857022074057010454864839609593635587499750829077309089591654626044484744445845382376738693700928668009390828813322966869301448526066078072819107576336266469994507403167571772794435365413191211218551087446643757133786081551228944522765568576395872909552095431019858060460734954505372971491545963043716232983237619079970606664851267485033673325592947733820770044613825904432065545129498080065392558748173546333428325894334216459385896298160023459041954221081920589437554866880891320623824153194803033837534134443171355384016592066890449708630921515514642045280331441550737834162562654260350017550083217926670626073089898822399389575997418974047347137370872418573062197527753391239745125620168416707034129967681394566766221314132752713076285506158713985565945990114884909839713975475725308243147539334433766593739129623470660910496801358177667688971903017366212402854887283106221011816082061227318446363591219496067210717995155138589681097220286683247121153694129914402979949165488599017217172245132932274771634753892970369883592423059329051099862611346335448537612407273671332787038321707930007472880992870430664341102668543074776301023822812228907463144981892791533070578022196577574361002959568274787166824710734004117673054242895673274397316564215901856053698881795224335722947160017986046845907845205326382698577994779851155950094026179875841958460327205349697292601921119893572776139485258543398243240061445074149827953795270371857055697475569715750806066653448350673722227707576503213918828345527485785435802592419171415979341439299362610647841776513935498850236908080458862869003436813139669476049659368264598816290801179245298898798101157985923394073970687368426485010765127365499246370512427749550451560019733607919874886282250845301047496891835846303943299970718636660884874432813691222785868542501454613643109794316092116523644606310838078079152659004443375643778210128650858113072276014294321649774835535479372965663414693704026232227199199759899815535685811123859724235755332310308892979035353603816487265035800379135197208161136740023824579002967271384455115000015210956311660106914006276353129322864517504817523645299385936862414292143774729958510009203630058909669797510021711844045723498966034158987292862246530591635240410980283295949611940176392659019212480498424844287305959827145866885079222493899510466367475184576637407608765307556936889229287890884897508176972461529877087127341504737209210101634197889038222820269102382383273432251568157191243328369028818365261874413854653259296878499128032220503468916448049109112717842039845564990217478001998680832431930531146911699427628471757487579525478734326723092520735256464488748017363992733351428666704714666097397225541816097893683851000527721848578736482204393332247103498705238298510757416176558160486116277593912983511169776975075890898136403775670619995389483922952005617314125304508160246227338134297018966870957775482089432361243298252782327476180392249201907886370107114389332862452206539092750385696229405779115569848659529166032237808125824161055129543842400379443763434338042919484506153890085082790504741869666667452405638192676582533768322339542863753621474055448105562338097995875020423234922973401967163169418070669148114559289058505786318178352573451308533969141834006392692096024830614907360629858393701554553528860277526060727229835680709756658705409209060780616858692761815015523527955340819456683509605435364063859397507781653827676852592591241854543454365937456615910980008787117759171503983068785626579650273843831129750786216939118967335248907576918597294127135943437252219417585306204239838121173664523322637825429096664770962984349269121813431602980324065825628421761025229757635632199786016601599616788581304044880833676644578509620125900575407100116977233766485562768590155043852016392269249651090334334923313624925963714152633228582556861488659930414874156079185513105837141598797343177888793188716153594957469216262239460176725940170041737817582263778139849064434996329880661025700696091924097324412292717496436592170301635977136259686212525839999671304214194469796949981733121106587965716443311502855170121557744666701974351640462109402428916240011821077556438824113462350062121751919101169000333643344935434671849198115889615360300250777713219649414792084328030058759235817537189385698359035149719655108992982579501721602223980509078432482133476841374730462893037393259129108112978481507513567789832206568577441128060794934957092458707995831089043788184446548141839603690568989609228899355878854590951087133101292094481249628429596412804331469318420002674975784738078635426593232766148517719661775979317680607775196515484409451357538267307550564659919461430606483021865396061287377457941329136578421408625135734758558938143747262202408769580606017078581474241843405353165005472061214663214895487141364611023409228623401995627802146458979430568526743165120418362791955837190344006643050614768982308050670044303648793686256915934762235256084414758615971870666619864469426048745523942212049505228869882427189183164556486937187895479889584987704299459835820275701466375848617564255614202133249263554581238564734521571629017446311824309789039852634324690763473494120920460487319159971202529510166652645131083030095323977903530784373475388063155481552831402992262471075081944306327670078736542661798269972104364888994536329411388405956482192565762561053941216862095722224727735639169461550572386601791265682502531456306144461651025427463115832530736282120910970282155148039727852058251158245746583348916853962197248129198688190793603073613543506423452739896639482054101607386343994055836892600775342580169283676468159960639606435552811959253410542459327119925546975223902058913243899371800082631367928791370333676311566563338710795602539274191461294515714832410393008046169669130411713038425879349590752365187462532434651886582097277279706212930111920949297421219102279667743855403403115416102994303790763418893797016408654315961773155003481608657182972587592445173406251659315858009556679068228144756855623942256007029640858590463494776239369042695628708399784567374147061730237128116603360785558496944781996201961651734070707606555281329991366674881080328422721945341155887491172480970004311093678911418820538708658499281729738513741468010586858308122293540999664494770855417896330960468014037949954441356950473653325543087070403507062116086316246098365591767173552689162188077112757451226129391161085824179858564754868181338969067751440873260620188856672152549337902607778941283509585214949942848696786465881393079716021777468545589617983860876037658085364031649838416870680836850333708317210041050110190828129879397639450423120358320152383279524893165962703054773868754340049651780499077173056619752983735572426106824716194859172331520889563342275018187557040263203826645768817029973373854475976072529608398781107355617263304049462193406089352146309608890362122191488557684210585288449551920992754032037733905942524765498159139143860647805373071073477753532289467543824922611080851787973023625313189951094808608672069627004823607044261659691463743304698944763284019953725244943730940727327392155162492874881356934706194535400911646109497438054506803410338372190150585096404531093901809588697731023328038442512894977044587028582713432432497199757944713286629987232382057368681575040932342396566119866947466685919823736949159572940479463376787398022571226504786542420952295056688185668918864281177096690475485440727476534475434462864468548143796659722646768189744213125140058292988684890414085246325235971445137356535811268399633007248539197644868116502888786689251811450300889985476254474527951007098079012885977365633922117649417833201656384140183149853027093305877533732983679437139703510775560349299374556678788574233569309416960856696887996683974261231761659981135672234966050411560732582044141530308032755682675949455749655487109794427696878873467516530438863373661368309796189368624405309296242674679487684071242993192123219689472839797684012601078749258929474874196675770647841778183540037836881575670395257392600387555938795909414039972325491454995006128669962644237412306896385377214587011443602907211791758517977257486084925223666347922708620353412888428676886563419734098244781081734628187120566092183866367408805439634681992357986491077643066284733154822019261084641393472646224388906956624973446188818990841706170092529035505011592106583168900300840236765197334842483123098550873600582811711132279207413879254060601511204172476187969595349801154889996711063473005487693868037410623819879877624794278669379587533055251306349371894695503738005254406604301369879120512675163652942234622599258633314048410721382236722586657423900607382103103369062637358396685012576864159876323576463492582119737797873861913763956245627219757468322568744287325389821669045186780996531781564296594529301038182011559060228254986177257608508439751598414886122991564414811945128104540846227741745964153769038170773051166252647896238598208691526300662895981730380500366560686808237300388508680456670451548193916372006173999301095274610317874417439616712689796952696643605309143630042275887960568807757041177204696073144645220369458712624987027903749797554518396673517183565523324095414483027060486216940084613852548738709822508290295273650744182668940697855177978464180828958657643779235513061552887771722184931436764114389919075699479226746873736914734948983819304625421673475360520441176581021392704747412144219915207680392729135149591373336514550764893623683408790609642345305234103239254944428838688851088412577828713060114848201422368746774888675426930337825111976738668517416872460335146617745456013200787290185646546079382642762301659317424628709492365953855123476242690439948180291001630918195071160652577336422042480516865480899454568046896583355294406350318093380581951410289130598750774711109718349047987101710850881186308863572159005330589989099298830246479860792468622247052293062733605025361060623545387468345715021763379471746576506848108890630332683909551667736511603552059944826632304079707177184053692589986336184289878888609333518760193499308963087917575693636998986213181512758127583547009563010797873397515048407154320335404036296056489229619901321081375475159607600396738431346521869636919162566077763092052661172165943481591306272068976163458374014576335662861868615012741833597779988249824819029219684157429874500970896598397147984804556376388839265385316129266928951422689693031449533172145741153713879938208447893770176553203389779663362116529075892165828280338298858911784843716854452119633907376367536274191600759893407462911821063141244110686970972791427468911861766505890858611834565224662913401212532540738856905294569928793196198624501036944837574217848282464714801056712773835287527832758551848943038122799284548089050176909162913785415529804393377853468895404673048633878441545883995736783167550542615306893527688357608946150875134264478765616167764809062586856195034124026819283381677234043041468844124812603289075022758430225303445994277972895253357295723651983820749470489008847171826269403719308464610187398474586890163729951926204166541934635698817775795586316799785758237544334565180187203598023723219513551403309448036807923982557604232286833911007235204458769333535170406155903275910964849744162369566746575305389506494800497320762071714773132505822069867471166173180993774554316867280547348291017910421158992627341243182531193458332756271178856308242537411755022683157014513521634603680169664829917116268210592611568666781884849872004588691341332739758964712517299642017901035633569872593116325849056634795985595607031460387629966032913055458988270534090172922784606065015911341497685374005049944595463616299376061105126187538056107400617551205747827382267138883716476724572649356334330655160315193223138727052640997003288599311291282570787555378552283756462484063663678125167524468615313610652676825353100317139427465912210323706799460490571016547630132234672704288374507690670157418117927054254067506803789819422526055016722028339580492801272513713854600160035448602795533063461199331531667790411344789280740717512677568822897890083700845182343967672308225855095825029085911463694840680464951781970747599690507731386517962346114305136923072953062573284140640854009317254704161743256536537847038355956720864593442152892910266529385368518216939062565932590663300156238892149446222438829005009599641056834368273570176115792741137209176126491458653103770632467221249837668132775759050315767145745631929931142186385910073084049835096407836612933311457245912456557328671244102079528656901264330315064777204736940585396431702708937978677567871371360905311006325057959672702682729818960934378931656824224496757618541913770079337020327424533061785009543265720242991085368897865543821460891404830566533321359693561193550023117167972289202115914405017320225161946512414795149533990490804600655635763992463686365138927571632407615351876479017837849624294313473455866479543848798587879605299659146862608330002874125452681958956009475099500095065932740242115402756906414067376745072865980059644421928485420769992258313935196556522403533486058285187513997924732114652524686183734594191982017984957302715564658525585208213813263826971766745282196219266186846706456352410617336716530336224454844010970083465841108164045964038178255169235480231224735490574839120179073861370822863191290520179623877876656942897306462793953514657790613353582420580649349156538943791546857487998765447587954133621092937823355606279207779938791510645139481164438025273605261909557192502605987032610946272825992733145062646040542661451683339242711042338515089273322683442978064166038026548811137237993048888883012143460055528071701975290121005424000715298047631457590371394025583592349817763506986277859250921406072612258973514522935941458081484157485062356468568028182647295995147349929059203679529689330562362704423605325534397540071557075117063786417282278903070308855647734419148574142016876133093942922905869842982576152657805178978372632799158186528886137458185341751224923347861767096682693322907229210186852387238702411524227170906517799759371627292434075556054145169711135545130065316519754909773084250851243331499683745293144730904736907245869553075806431932675123545912265994183879725845230553975281864355208052972553017317915073780146089836123390580181903159545285088590831191423901206493951817583295277822726990156519984722806195932389332834194344631250964088518308897004536121033653020123610551762151876536764760114070986872211225824582306595552105718526466088561043432232152944677820529950770868405846388801547855664197328159205227117436446612630999603919673667523524810535458822975894562872510654014352954547082558105385041476576865965823801313911770512851554187464082602168103810178496352952211628968354725894633008289993208305228424094483568236569026594766929504575535968694809563631309768289387278164228823651573557403079664960332799659833971160861719176029505231215498732356430644375501442629834338691583867805543846625363980194387820032257644926992784202839701270992932580955730359998881275531116156472115077900885740660895038876295996018902337497346023808486978770631895174073646940115233852985555157671439331574472632179140367238912902737928829455785072693619702128511133038227255190950508246324227643380116221648203125117135577712712252951310865973553162102711134144156983120076983813137610598327434330115206352119851876597195437265223804511188751133252619293311200982022745697960561378119742897757823547828831630067822260493460081109418476358125738985080059877673316768182978167482487593650207584376331086814085017898537790928002718796908115845166633819958169630876067971357230403534617142229789994872843297064701865493291250963335074087993563150185490462407469344342072357050210172225136359093325960329173044450275304041513480287881615074230096413453532130239199340493368849694661228971716462422999039473867097080197044874264911234569666875504520843227856138611826524386665325794149316188884696856185755995530089586285210471802366422850641794579238058915671003347392089077089774372585240223147779838584784515196295987086533892905602254487655898353091038279539415502237914540035695978610192856400276898870997833212311262815868062772950050849335307638845959675598379618537022548166656017600097648223948598884484392620496786904390986981868961522951446121877362319907204264607587408863800014325243821404770928921586431417273449419470946259925400449719417474060551560420523858867417836889893917812480515855319638817093401066842910085385414947246317451780125199250976929129330338080422824624400985638657485771762007823465095484781800122593649211168453801242451169759007638008176626648140922807326489191328663631849064686097247649635804427719757087595697237174618792136376908340186443444809907314543127468524020132490996581276148120492219946474295268556735461241743183554425169611523216776091758553178060506475706010379004747613908254192373703630386646231265115550997128653188308594655092187571135151455948326500700947277225413049690731356374391626909216424517410353192420809482754064108011294921886764536339545601850939303389190425255216295711341041194870903369995983671831934928097642887429037532287648208576171688221605532672861000640249375435332790373889420675410010934931812019384163542940346662473816888906604116507493820896297856429961005783307090524975297756730910100078659757618093784619972539761730988604604616305157567541770740071342546213664939524170189375331577531126249032023063989491268816753657366221884243835025988499576266266283981109949818473189327382750506140190491435967403689626467780474664578339646197242204779344459169942042891682405121793308835405385930447496680687785273627403558229910896008614686540977307714709501306785116698155322957297661953958661435975915969759765282239976925052275729528024811465289024764457836895882265041339052773088179223757225553416816582688907781569647666925343224639246576270588176826954651711875329422404649185516931655395656054212082281208065818560137829011898978931654354882728224405455021695600989759403068038063763876053596219972102009668188808689820811393674349153964229732386128136051085938118419888227877653483199527595696141703644878698656840275692628581259296972973330813338087040420987384848840126279274531338811589816818013591195068132341799249217894119523701835694223260862722871729286791847402088206127836740431953475249841378148077636259556264317804885259013398365493493494431620862957362767090697252374705904044110625557453527636382565335561032753886206993578400942448207733554451268697133615797441181549344764548607765352840382807703134322064543629059004908863260791630489512728644913919616219222832254517635011879090588022040539333450821025958920762603019349467955047631399306669651309198779533430997367599331935676844370190314929139116479400549791679552088244723866077617641850760893607255432424881678883124454812663117485962389157992457250064065759079207530615263813012839117275592919406299253257305840858436918237405671421385099079936582624495144685573067880982747528895161951666773530895065922952960793439275000049074495975458448732275602174588482923293358106508974684070931595804414038297439654407318909074499234637557293655045896113658419382234559278661516562602113508287282057856397776193177090002472192560484472458201014281974080900098061595456149054979138921997891642207827350678771685057189092496857783448700209389559939704965559143895212439621490680234088061693024855342943448970869471905806371512817057546826165029625309318939325757261108331013206149995530882222054566433822971436864394533833870588928905449139347402038104567410022427459452180364343212580012108873170013758612809665656551073116054054248581015962246599938002807769135131525765475338129057128562024707654223910297157533410488265480971795855528494791280297695760417103829063531751745884018558141550541573045215954655786508315342830065604051632182536143864902286133691880493963623367942835943787258545016297260955705816132654401267583579156057736264200702113924315301004986680949355272102610619965296643050132354467021475348150813690400300461878827990746308686464433887900717820044128805767730151530509998798616873085552955849899094443476610600519586926546537220042935452786678177292814025791076552266021577509425437100685383908190415040429860709072325469734189712397014826359210431917949967699331661682076674746515798892044490927642851087638076767851991814971625143484175064735464863456703568357739328989514690024464009985905124270308813785180334331739834898194015732512200346378450297258020775595453433451456104978686978592711744859973346305889793161911861168578711904576351710186576951936521550147718359409975008011801207305437041467681602938426633700044595142667574128793729790369205406262247963260134411494880279672750551196238125707184227498123160458681217844592349424112459345618492097554696060549161907099491652526495145126351232785366184354458388583647136063140063256672057012491292158141572410594587534408708518607113173779957769862319139371303668149562468432447023974709788414689677725720117841960629151906869578861258107730643995493756778818767999420871410328698576338601259913364872437583104567225963062099089102558621695459449435386180851259240884804957724439873275094321179261505067309792931989566681346770884940612702244830651893651318235859164492795623623382919204585741275021138117566072760116452701075732960983235446995477270389358632097717410577313643590111240040817668947941260252515980367179279601362067202244303638634630651864455110098143940032022984590724866435905912331314724855054768980338926344755888568334233007349785608701102205834903391539916619987663449564865870275475510098227251512593148129287459430412749298069828767318128070487636621210908078010263070028579320770233104930771130582961012601349202599053077034662807250675543028714090609538297236432344894486255615628381954328946663760669325795857471162187446940349344875414863034669617051426276853414447609042892709635245219249084814373734277034778595068094112505241594545597289276801932073979685294797709111170801520148646404186397616180314102518465513313911919163984112439031483846954098578962902881267132456253705677508332614910703692902982382490260398413931198519032999088320062172787881077088532168599965906618005308563254907493996111420509293967419009773707793973632530091224765132786527507226200926450317457492357117963065559249884365449360351714865726044088586356207597933072464605007278856118865279527271986898209749841748969187170460758749099489532655212441083745599774133424620160204109149481537082851499118256003020083726035895829352016684544797186728361653704685311379880938477672338331816791545712595507713342233694404696244982676677329298454956129665297333656932550402745364740541315950460584323239664197603054876237310818247521661920144839549548045026954719531195786296865584790015932419313872040994510109929333124226155819022176078860349714001486802071638664814544560101252692269757213307706164197691967508745165998983805316153474360197808289535875258282451989187008965467566224246164258829256559156812617808426339352925991049529225763531913909281413520854506760552247243089910048887866278089528308936367902708762958891697048009780256922163040027663685267222245547031341262407403597859257473935601638447463072403344510610321856120941806844113753440061385153853080537269019541241296724546643401331342800663294543389642507932374425338729289917784710927779952317720250498475901621008663254139856149075006434107497245254318081201430616762118647824479003156370213025272590342444591487499463025384745551717400805496318021110086534148262271550491412249433600141784332137839364654343790585289200642130056855064022578962626582661583670595436946698054573981231924650985987371830031998377481101120234782512185601868216172506652925266008009745310709284308197342283746577974062261853961422188231602235122620254130518283362072462535776616123040206163940189759650138840172747461334458011661769886415254850354722580666923110912539911589204816960334376731317763224845517248694626253361629333208769128963494726897009273506039848773493717130680860751400253588304355178710759694860469517029058838994161395955662465895399978338455300543227838463339223446671113024165346164727977520712796130596610003899386062003629583229203640185574648193567300695115505804403572727813266384875339084500815100620715004159583635487348718639866234964752657660352926328562066792403923404733406384838139302574727609395898718249512365533496686127399681270600741382053948638348871250040481776354843315259192763304323879861666411616897589651519830572809640750285801188158245525775126041797549984710717391997202225150396899319527311072245556715729541445927384685104350305790710841285687279176349492509738487228022219845969331910080708739027359394738929755065657071313649875651154307361134955001449777599304278407876505599728094703865203724390173329689501446550666215274502036166824001330483051118604496341797499830279691386749690578081148731159657172459265795572817066458407154408149217714106818840603745905387116148040180267913687137458334047623859728999980065883926522168476464216230733498359844075734568062176650406412195123362493926624540733613295388287155908182763010536630994247359194942641026420165419906123203516930877995426638439362781754295634659062483873127649246356918567503309002301743310612678334851320731608831436860189946491077915759041835752619763244854594712498443459304335466493621980531548530258675635269671291781981676360903040738455145124030724335445599374397498894693372025738780477647683312500495363299241081674215340325234400730532194814202808075429534184829442155949471707253742162402236724725651344615445266097621803857609774720169096712977784657219008909422477936399305341881096330004665579996710954061014937965858855912585206162463977647675376059952999723437483585505869638984156289246581799847154350154192970630150580645260368325666955258989517412814194277417675611613621275545628093862272912336024622802453912496158547640910606240268539915426744494298543441605814866536085992459275482270487559872253025143892034683199298209568333408379423108414311906539883520111755616372169952055071575191509140415659330023245438650575830700790129764238077245601361519003341710338687084110506684411359445556663015559432361120952036704551010910676657718432346639510310468276357606124851617314191333714718986217943995490480905640044193233096324571333230274608401561769047048764648829625152500820088198696576802308985910189662828659658276246468226097583268973033992946836765880442490559411236109530502172383125444409896518387488175785344123497880440565752501019979349263352830116556995538785288869643007192362276174978801425086545396050225183327519869981330096810304561210588892375108622231726792728224762683142362176792527147009701831637972268606139906190181059679371272574137895292265295259040491954111209266542621231691315735608816845706013178108053868931154567769362063119060966013955394940052029046533020184599237194977219706478685104278782557916669137016831959166259499428569179257082888248984954592107029784711033700610585302582513731964687949492953979704762089000281640338782150276011381376234090885121892577020855527809673526318997388663667822712096935252252931453818143713079209518400124299230355271091456686895143326590414744210023333070219552123445466396071375268147423965164018864541610489045700404797845370089917883516052799527017808033501502052071159795248890255616686671451904730157876586588084630951605065279851759815419717084054090131748011680804181677417114949488100909545895773396603664522619287150057401404362064620514237737115978008266932918933647912954724566581658578729108527679146374222634467672248842127169643567947548381435663396317997846498469856407941335491925257566769246127843245699638771479824330411938389037681189556673536840296790021021213272396758547167754279227603924170573485308147903304657295170756711315988579464647499326761480074654530907972196063163378066398753509897754795344553953219317675494882642510557163689800629052446960591425892920882101410800439479457183617662758217086235619568152730011201553387155523728805397674444317581426587523537598389046393048638098256507349074464215783562490753106096503905099975987156956457294509278542608274552181145400494850974001240188076132233897298606508068133143137736002307345624119405339508404516562951087851142289828215018758801198576058973854951328312441740434348006729680574054984515082350431152657284053759929871141000898526879034613318405487194088416131433295046163771129723195256171660651193988800435398240081146838916235514310762645259206282243874896634379903270151499874484286013141520866330227414690613466202794972539396986710481481338039774651282444693277992539422919052187701326847246637991974751076301283038807769972186920320686035791706277372318259102817736606771533678669017491808420334166380952520557125369906861408170705673845052683078485508441722594914440507256473266280703950425692543610416085162440088593087728361058519488559244149605324041411361445096581348012572927004854520645403923290228772133704846111582321418164593028251658574411302157317304048909017109160068689176398690628675909311701328050818097334387522085791266906572500898660989502092108010319216352930448221154185291154044233524954055367125422490396805933897291886900579490002209153645122921854437471967467574828589349770921715937006283388163628195833686491495802363384218021677702810814701147473140935755829652269885847306101170296518602987360726151484886954422115444249851457822197762124022914311331529449244743015279096172688280120841769631310494989418893016205731785824256177099715942243820646480371101284567263619345407438285372697773985644558715835776708944521471858282645087376536136861949330635912292011464292236523242918675179337855698099811406325964849916914800630097830118854588375780946275201658858841322610457312956407713340483875882061334108807333595076684749384469997770796526137624327177005462435618288217023674521210227035784904034770114061030928371264860805518258041663507204824569202905909996924838630801042890038625518872077069512676157989010833628519356043975578848468453888659063803353957692582554011256373298008557071039779546368809253478779392536534504698911799422604107474134958702544102836126919239552278009465421235746405613307706089852508508415005166227551462350311460337635730979782484099511718927346458634702782614553556669674684201469398115178876233612158186624973550689481186524551626174175901381235791326903839000168643679574899341123981170000724272889376549718354827363611213308244048016310133203527314878304265806253106290743825803584696712233064106846494527299724919502461041323296832690034431818688133211858919514102197251370356929824734288453280689166922093638739891929597674894793030526349927259178275438095974922771958773737882834985760656852002336792692011323063090087165951549106990525466172861849166623590660391340518849310355237805715957808342474370189839534617390595435863406893089109114717243945862696023916157056995878822109238999320947314276015764016730215857308571039227899944882638812344123160648935080907976515644981253895768624362692722308901945806196127344206700943727311681180239054723791074065254010155326572952492657498662892089756862721271544797081634795062202821169015016819471729106094816624170516224632217357352808636480969318897293094853035103108634623312513147763368020338440170765184570457433349218285621369692763017743776146662454140099171897778271221139542646345157630516477285063414491457273939493434119449242870938378557854419229763762963397127214651577934449008689535078224337025339558480003524599701445532984288423020936085672602388033539774812303874137899462118414932374980751567165200042230683876105814862749655591712610968116745746721781091693552767753784163069094563602879110303718538734893679370963408085391604545948435730605343584545886016008913333804041240247346325870937903336090094380888455645698305009712175555626299735987748949691017154275624352038092568195672484387754957144154795182515655644181639860600842783880675885598034179604091315116637332610582540457757024720657526367302854878752652152437589655201738634490263162283505222632752037232737666113910885730638631327411715623811079388077623034873484031811477939658043267765473055650837911091205458512167757519240164910290791383904682483341420804243717930846729865174168197492171928137739882849793765565030054131042828748565256252530508300047692102301604914923918007292829422188155092089506294569516957489899375804299897104612599256295720161727582081255467299367685832485496968161685612055565313247740504195700082709113100019873943567954447225070488737234469271131321914098964355938621183272277857390842496517883635537354457030651133784188785069252541323065206869636048125415009497873506480178261502060876441508186975059869952300760481830285457583240886969591227376892386740788751067253324170906096090404122166298898818033280645487707602093918558418379389393937696301546966666371264516439986575680121787238131207143599184393214870787735761962944301149352425589546901491906300501217545829584271259930584039323414075439817709349269340322759571733167071284087849828732578420938048514962048207026547054781413287748365654221399145412553099028599695074864810003668083632616658431497511802834052830408109681498316792052451548535375617691393595350627803925731680855213314838807350913975301698650125556762689557782147216834122566866176095968537284477165393165211089718620832746169779654754842524557215271952456304250942326860029507957874640186421252446872058547237887217848865935113105552328965580177523571445266235183753288936651450401349168359741382551238642527335230566340769219230546363048986391488449884969696816492616066437006101206460722617517409823021634917762707203318340183272888113170147313616345557465809780008088250455513945409022800111777415855432830310862054706299215117877576933632301825355151727841686571526283025137632069178097436344597394789555199868310278635722234177746364647851663727982091877196370643255008693953605199436633095053972840107962947485413462758956250550391262466622696277355367922892907170190026946794054376646094659552426929855342801113726681486737802262409769750405551405691647487739769685200073020107997809498713844943020188635803366787678470026536301960939830366408122397429359886542162114391400583884306029329134144318486325005599902215804210142127183121268327890020521491849702520530881601621246369046486389042941566862309948068376160799357517624598258739288317878461719302555943742571497900578547964497002399764006396009259853712259015392077185543222866471669187161147641522812219924873556883630104357704077820925661424820592954855273813906953997376220182781415982705925648483956025510665109542473727861538729267360882050798783053118673122055688181697358487168867275109227972235276864966294592034041276931490965052923394893586013661974635004652592828097258529285026665899714747767930171923671237165130348273073369143874931802481268047537660201799699339389675634056924389960367411638825865466359912781755889578671126551126912984402283590307232202331503319575997102724105759853968902925566274978964885281278061228541171819280024439422731311643238734184941065888978042738318880233076351528416001433139835457535531975915091996003632175950998731714700341960492122936450914905372351399737493738392896664734371756765560689769029964561891013067925631193590109331626358882396540168804840043893931562226251512652856288036182559920269687944111404578942153960840178923318836135545837286532928303075600959418779209109934995669945141286905165659656349944359772466769354443346087623128461857657879978226519216896798968951354296008083607276661564378314890039166361132761155740766438121861720101462563355012790990593068960577252722789133044548354862326008498481783765745331843681203191785424939587498728128894081124672305461136803888549045936978944213223603919268333932647598421180446542113122265981447539991371310273020818311403551930233226977733089795120586742517977084355771261578677717490724733664188337313018994548521928178780086997608221919473522555280175266795385066929037200282800539581827574698869146756650847028930020618638494154373782773939995660149853871509236134635488140668684982123900768954483594454293471070331318281586362975186000493031882531392674178273248238172011307117691098728110951623054534263748184596319511656349542799267220993732280721081418877661287766388239132859291766630196595294749404562021380904494149078215807235516857926468565704718225071418940112719593476561643556699150663229324749776508700417409255052535563939714815190495300288637659490484521633661896811495327874512352336888791277005276096382445429459214963794190346673193215190068921210974513960201466171890572968582629076438330297700383359618755255947704202523106020956291878277788223784852421633118720342187011316940739806327113665130106972656051231668424098070909706804236858161080200821403790916555439458565347789716069848605508154080965378035740398504523365294348693824255059607158427088473283739800653615858311481518576644826078200620954832065122716937173695016836606100289237326344163601261192675500769976814167752449499389886700931949695339441831576735076136467586845202270562708815152324573580778293426103707438035116532644716591576261962534946864068629795325410927560315282977724222039909244187320771855149547969036647989496719467170888804716413615986302639492854877949889819402749230921409512176048893863524417187591522403798842233945556097481529445602282846425063744863587309023488878418382437040900851612167694583088773032976351660391103431707027911830028952725709706492457604868413494159079193415861797885802399550410485922318762800198995223793600015394628137224902094005679176655173461424102756239026736392600010264846589309875919268223029037844491245941608675697124798261974454804773950902569505124169025008161430686289118567601303733147805729081902927728267744502909624086605808691066547013679823400994190938729605273836395969782936390011520855859416282009157980431229594829117196366289653494583548838338512906451068048223920021688705927678018727492427717147402200484485701840193274229096999647562511558082785742169459433019268073898082045127477971647605809297205189788459690640949517417574664115911477453062135381532724711484602767958837671103244398577045995093233440836099254607530237108427889813938626545863324382813414634636057416720551835422977896274790459341504931888251075984150581045220380471258181858077085368616179427921861823905232778321801704593955996038806598062078297263918214640527107357024312794924883833323305058511903020153090880295913336194541606666308145431693364053871249629056702011931912386055806738918449347384506853178344670527099230495405000014992555396262397263499792045235073123753641431299962656451945785524660051019246356832992645245727173901078178179039589733902622785723819596326808736150429959958719421197040154058651087198445175229802126754389809455373923585699352818425665099114720651708694282036646084140359139320365026880364676841159966377113686102931069492860222651188818802324103203413605123759175111714238886358469617830003204323750374860315978300862610453677543978604316932351750883612134375381071125381013030581863785274565008722445122012014464516826671654566042246120091100558040264264057349984580324000164714625958726742124659145798645073172364425777492170903972638012448804108557386492193409806021755250720382878853137291748563024163329713438674984971788689175624903825365399043737924907579304218129375510062980203067983264830641328592223670683392982478637951284635327102020896797755870332452168815211444273958393341913606979636973789078487389450303762337833994889863475957543253215852005129712650933449500016954589090545239550261970639481216731366161127316232763225592501086544956719000238164517576581863679357267441468932986024418683659335052802815167880814091417486440712320155752464171178449458000683194074122398396941048789323193201645846592853991759151509470231072472154515645993227874895657338325935368023391668762549777226882850324134876900080588664858195239536849419715777534997681142093500748889050750767337085277644151297707991970651027192270390853538065480146701967935768208205567800274173498068165828815680774210904933115733914831535573034003412389809114559663690515448767033386338204438592195446631397122206242623607081099651768032571720182246262684136246381997655565388306718952758702184076538588745454855192429492978637665474838740611790764349231766809929060942216068822837386526366380995729708627864166583390376832795446842366258197323933591580121862705963929945018894812677110228984611690639973406634208917235431206053408574987599261507084868563383667688705881545922362107323274621190272249638009576223140779534914184259059370735930401916525641083216156403916682392725364833651710120938249984792715563417277870074061176929490865107973593709973422690696248913267367063274894521799047017792132759117850656671655441942001020048316358609215497752813894796555930056515034665922571933329000447752086548589535798592969147955638089398169174422320001534014058279496174025031401339380817744772117989942666470013542868383281026367433161716797858651090604911646457837204346052008053087259039465142555802886902697582215689417049869438789562786963709001595664491202983109114448736145190023903496189109238550705041584288009039893043159387366398127333976237253367620188350685182687597864992245658530598160092514003265793276113689297589598706623098390065264666784634989166318165308889622759585319445073112011460106032975628012655310031902923613550925997218449997031520697615119901555243152364393761387727607040116244916099664316609833473872934991362689410956251706346419966217066123966808097710595182787310231379595549156059927555595665061249788747450920982990036074886197433262199429869937767162299749470065555113406393580056930361567232820757196502351087626731811788337992517891042153339367838717685307005942097845281143764807253093168456513818354650788541049149893883238000399524665530431919331589050332478763715794150966936547532642524786754791214485258771637066783225833384746631146737244345988429050688444226965738937801438882467450401174444639782140118885996079218064959745162455317858387046566816673941752325859283020034005019553132828492871242341066449756745911607787364550015796820684736703037964408503942747024479576458405259342164071930179023027598970072442109406290009465443559919613460241897993861059086445621754654306410207244117544898186463622585918035020142633408400955081947196519476565447292578228788965825004943727828005201732231215686933526453966529601076594675760435630081232174184652688209975285962722565821610580037147596732271320342572712812004296707390166388377502138335123155059220913335891702700582382005339082471078022878064975618274958121513955186974208825350547331195180259869834683702606753618031653033721147015541497063845505782307885842993615438384235800897554130788426290695067879852147188266933825050469930589435536003468943567821140290082242858072324113242986641248081374043220796600789445438993517104862769755052155714207758535063839131735786594342699006388506171508453352802932532568150119091351180484044976759205085270725480947853168924159206586750027668711361695483596279348140838652261282673929179463730419557418137133118356449964929377521000095429143244687107403637675566599918273773631830971387994848391912998164497218254029994547276158011787948402774069239375692242941037049836925731647694840221263525117630554915275835860544551505206724690458515202148232940853009344704411393785870617379836694775117703699889430428797336128610320097485978046100349086328323357100704337454790605946870047230636049070202619887783044603108402993262402567184587492590171319943795584914726174010988052541193691254495614480261388953881416082804011900049742828376385760023403087716985044097140634961029462917140608404891307792195156613699437583755050710063541360678498414399672090712818003662895781682556219901097276819518083809719787499805422853883850672582606338100930141236627945897801628083415741455515236090328191807431630253592319771726752059994579506442584236728642306543923861305935623554301675388765056919740970236659078530781862629870901746429055736702256347014041213331975507595896632978563220986407960874488241060223757093908984371120950249331796291647687219195828211221348929768052882022564413342038118250276323484404865417079890108671318375365996576437377961957986287885868909893368022063307674994522440864331055155207365731714691309141317938450313871878843300692725784491444468522655419834698414186300724732457119713633554391393246350786925274536833232254611229985645264641930751942595871001505214726741037466734524579919605577984039067403759474895857736264533436724930243617743611574877911729921216211873924322867624429238630501596784405222884842771628625712188097717449513495784425342760155424458024642451555938953048195620520953179070124974075006924434167880774333631930757002331295598506631468075875517851627900416863867123630655777740394412674279177461956302457758866802082797329755782786541157284831533128944532587935283121314014449930742680075036137593545439845233296633315443367641791740038353290202580299425165158246495493381128187158410916619289679671323347913967882796589042131718278623649082189415921298235581165404252210791659359090514672483115125737883992557784332616609529387305848664418779343524932647310011263621338892161609153593976505402649134710602946334594983064596294347990818166398932430412601044232037927289148861196865000943840892530275720593844493005629741801007707367626731237032945753445360333585933756127089414971979904947430286794679345223053232255247517747991269201125425062202498783448586758130196638978618981757129434966032035521103841814745343902481129661544078476872748180902192397296625548227914056076351266670283754982453502085084414907111495092060349822188342564020490338486911884609484435155305667804605876306064096462020585134832086031247833475924982550540733872858364581241641150719232593702681349423402321117933359663153264993124823772474507876040241463952601611244877657244420789363313543880133609457270063606471764875435652203024088064734291300545815636303632135750366285045583585664181323495706644899230155661873397682324271470813329604553131417994927789918686889414833250442169850857378239200534680148046031221636709779800927510637547627596808321242105871778744087488483638350783194116673312102876909407256770380608789442635336045239945206771790014817795718213196804387632327620059060315425132567222336330586577776111741777148487736518800988205475294986707195492282524058781171536308811613953185842565755882610565936170572170988204866315948632384731773533733078360379517322853104924923986347992082867293340185188683344977645927288725820913062284705377591014249893120321378622446916398750354893337810994575948086245046632818365205821226823186182761436267196358625535337570192007097064478409384472666367593873798479802497234220783496966418090660544864694811309500605236557193555813759488052440172979686644588115118042298289365239508495596014767664930395913623709413197785863621321785542639632931792950175641337877615658032089839960458368124715525037941027824348742510702967281717234081826339462712461681755464047913556575401524525254927549046601718232386545091374668953487263784948352198666948167219668455439693936977233828474255899957153496339201441872879189722651873547854920501362535209532147887058927640236718381509523643575331920698435002319396167371838494526942996692873183181876360133838634653897538282114191528807962006160249799704968925924460522005067042094312472104454597473997863998614658581293146131189212737492475468220601590963064985532622534656416269228544914509593186981088771318442940115907769154079346042004599762495764394059389594530237935625954712770431954906862555651122059101415290485520253034895334680751634550639901461021694226625105923289949954888981385720411829207280931153011992468273611700337275855407249917312265391030022997520696819406176915648157891130667851323107962761246096721789337083739787287277705850559935966559782436249377694317096525818350962836970443589098450021045503509954158244441059579744118999715215257334389071249734835433000994594923764848829849736418014700397499287489622405791407300499318682154530772336469953805117185936213275305925014796211394278180622459533716524004930642071053148807151162510532382278859202289762021848726945368163263068431164734579727613420339946442795097468620695423340180423576420318374677243598431261133633812274121903103052631873038571647408523070885876596900620075855514088282090767036789179890412815907244221625252180673380851183808016357908893227156810051671257830084131436132414199718902398653058057126740710431415218937882694725742651496386457648289739661084792711617102172133576439695699024314569654656099257794154026045927080303600412560684095609615821141716473771051779246640327091519216380496624120794952510122824105183705122207462118366945162005487230918553698694832756460339250827344423910145500560438535102923791362830190845669667700602125534814294370119021924016321898020955390290512084371783372180396355931896357907392512705903864900135851104139922875266602959335030017832872168675986501541616688427473854329572020210762207083485950963046898737813865014781935311080245221376641437544191944054739192614403895579153979016879064904301126605670840178494200666239713555888345061942848713526792688140523726702749444832309732704949681877082834325776227998583154647366825623108777407196542704524317642007597068043684617529470470298721315087792094552498965081804126545524537385582553032080364506398832241907905208384581014714972976478786847686036773701657373954599371092254758050272147298045849346076141412788404887078477181155506493066153385456579118343336152887741788923869285468271015797436792476755497809909676069657940628744005646931997161316003988709413418758065821697349821734133155255477487703276427771028600904826151157395904752457202032674413252155550389922931948910788882202664829756742662664001211889294427072330382669417899186779949511434196086632069672934902399725696930002889059996716091597634616474651457662931631587733141216781629199880375653513144398592177285826377857372176559994223899374417330454395702696361994322346416019201180968332624521058798314779871135577876711349392728792053786303913727127625490006286920275298096236084808399914082608192394785150321543208316915410968232344912394064425578936211681275135256378078782263387811456872685796523611139802638580958066660269779736102362316667797841029378750327844285408386359635826136086847021788343108203627728402460224095876193702366687186670514715791557975577860912290960217601263238535575044349647425270223943133201105884268255656396827228506262571064099760876806170269969599797612175800927042135602417481360205824492939839831306695049170157783778408170906011524348334596508587610129189147691776293292795397143345250055344053818187704726491842541925604663825051435996545386298912705891664279198476256085813442009847120377923934227513788946876363063982921959870370522034342558410488013616727985365020715622200620150133012442829438384078984613973070973547507213342405672685928701103123357979716160288021557897576900181090249265395415029569812322545732873585113759303767640373026257123245083481790095857112556875193920094034314910635506744678639223840325684072000166885642919540447630028074167877659472196706481239155612690655328782420301465473572627743283305909576057556714525298613135990597193468278790982166249536180951469337235934573933254320245933870316272915331608266625367611043098719708828489983969583136954136932409835058020930470223254713417793914431576916344256328242714979264435045241099604143479628687709840401129372680555976730280589612517689975385342929629380160650397015598412444497969056367345855510723606885247135736579421664589208211442288098875286303690595902289633355504550342159031219062849527145235339502996693988351942352897122315617395646939425154042575815363731997880758309345572295630635777220729515703193190021947648881039080919388361876102746002183424279779028607780612719134667250250578184733616248353875848454273004114540393695132826714410078136096585694944276360441864395229837127977930006826147235969932485025834282818728202305284158389580057150934343846750118862766443708458696107630449857639740919144453199913796612762075234947056769966172104402020434414410545470764091886015265424150788862382872114708165173598876145528155265594075880098482070273868749905898269688184878472675096606604388694771246385589224397861654023991133810855972824868221195661804493580510838308914584009519608180152518265596526497569020982187356665390754154397606949647296171654905783883840461618272164625272133709216935195146270413019312018093714694757329101669516433359335244171791890349937145551561956213843130029805625890402669728634098707495214718082583644074742001046768286163711689725468957508227792713208860892707557073965774552582250361224459480784449270566461776356817924487769836147379456830389369939047234689291488335802656539875217867202745681332064305631391086325811433389001124148941111563687183145541883150850675368178510233931098079875285812368870877662189800457663543473729085601520142942337726933902572057506299922360246238072268998810290041987348788405961928048657062010387283782218876008152928277410346929008118747715563296866311497931743106294510786869151181317820743350015023344202677103308525286580827877392069713295917704483378577740758600233274800582368203646657746839100868241355447817192650545364568955063527256356707044040763089893262641432323705706790588116399707275548537111618910564770457246617406429965373661555560971470368302473172847832470123133717883259781655768824056635008904240168442727069447215068446667415065687848194455632229867805810602231031573603445763716611332097405475109844432539958936687409189687655481128910271029882062681926748317496704784618076739238581759437740165117486907141736423480835361649140577660995636184204240534503309683553122096536036673098891203777379907327806129786826961334761689313915539319703057483350198997781871785529535347845547319390480770241090051442963554179298247538144671466476372672755231478855046521132209790596512722430548659919938245146170138170980779767567504864521632463809272885538246979862566513779412128864982270854258343991243163443767393744956921117380408350400578888405001277270913043724388568447999990314210695849991601600325558941354635144699631450565687404409817939047402591183306283099590747743758819401619500034524684806201020683151512060865275602894274491178460124045231572918024518773177004429123420444903948138979513185225096928454926940405384821023525481066742624729180278865559333698890807376167702864577717383080672614959044592800819589185889962560273580600036800030666101305468640002163865756258668215900402219355969451255522225707344711993574517517908941895041978001577827421987220683116925935453567462731808962594792729627651455671155835198284422987925183831149862609277419274239796533549316187121077925798713259807621330464332708380771261768075641573010882930488637251186095065251667338376204339227218576756422095543801156404713566812619635003167151305924471113304144844932513112560243609845593067797483063760208591755327010740111409212396250677144785284282500463026035342747944786065792648689286065492544135823814482008123088678382298155221621327483372151827696050675353311058605261882825348637114035832383039740490722564158403898244012140945651413433803566749138625358585799402257666667431147355225341479857703332509064099841632331517713848592014971899326049734992389077392819527476129791762344030522605051807511778447404847296680848077987726785054381751831960446736877785123121069020406927795553128486928918741530122467731509130517300423882861880041516576878925851712802124249515272084595153491077754372003904347774857433226526275818478326298937410182984916662264613112390277503791306572786453566781542700000974036995869870099093402217756457737811816640331505553957889469020193045450313718850423264250177840979776762619884565341427449229340182410339991689912387198010530469532667822730500942999519095769196343538340005133031787956078189272028956373399878111930965123093901804586807666199510230993989813788348487260122934629497928782254853460263852833366114149201801870419027926320999509264475354023866710355755574034025615722158181583178266078358605087260669786390895553352222865974317256469174208822976741601232224047854336517109566193974164115212802295710143288581677125412965967074669367148558781217420626528229852395814602510298792431093584567792493402595501438635382944411187314072154963474746308223817631790408080184034899371177935222521550107081627535314347199312214142951263133474454178020952442707128980140647233071989114210745648499373630394545186206102923800643366029770736065082634438870163432715992613712138224091361089641259150228829856156907541082227212511093611072754655640336656662125573409410364344105884963550428933311421436586512945799041752833769210237322938515706251300662489978608304928810759274271592671126572815094748148364922911964728157290434824610683649049687387347998853113709588751720097016699605842864171168157397698742575870788332783285067267039492393032003301785724194670214348164804764699849272117468273508446904192670750119529417247903290828917288039642582796855814213847304749959516541490132283948973382545010950312486911513302393117414294733476578034494195181265296119159893876534904467146359372330788702839573581218076924322396080120986860825315453286199142619964330676111645456853410118480324793629399910745797180759621758735833416151401283007191110723217989833395646481869962268848188813533975851489205214048215236788098293405973785898845274046022744641338182560794611249213037443380330025285823563332122258963113444767952791583804480825814165274124560254032760870148335057702210455845101598945727047735084737184506694151287335662806423500128705731650812229727417838536713579786999485057151618931330682617052632297731292844078957204306640682229800850648454288699308854118776888328514259331592037262700109453512736931364377240717964814149026232681779440883408711687659507252827005093609726800771844382677335605302501737937153848486765149910092961260399523970075862455766975696973572313245904225846107246807334898642698597425812440041442419112796476646235113013748085265721695475928076500633346956942626894261705469896445405219022452996328560570485012486613173169274948720485092414808637476808376156689817110653813538635250297348560198078984486058814967127172690109123429172310312038094253594249931691422303048216623067213542869763250947118985619825205544363625973018241315888009011689773364371819319875884971219356405874502433255433664728437622972278119524105241799772563712480025123500559990609910805527861817864779363354753477994298239927386589196586429697898340903992113970475149753016788587167005683266797139211934229233435806327078566191786073421415119406765913704384972413392147707792263969194116641471946156856757932000923047701980375256513367394853886156723958260811663427583146108203313951814770058109431605629090785665687717636356450482507220650520844678381699809543367864084842392180267966863997745926856979427635780071820533168467862099814754903567985738222947772112854837984716502568274891476024107623005092530541065294583284518202911184442275896438178371174198929098534459220850360379445352419711327419465618875849633016743102958305882036798122903983661031144619806120414310476368884381083516024623373448859293905142807509298272837222276212105240044906241709302127668655829018149288345313573582339634076777766194772814966215827605114936134101078212499700005249594893484588444461867419898512990582923420930366875425561809407743391770254010958527152659440562189639626739851187387746822505373062152574741721086224796081263864711221948260533030572819274485954006510656452294358217100827681184233048801101244017715178505087718740512307500695165672238460854935668336449638235044885683007922468459422745049438832718569526523718971397842935535152999218139239877011079553951388251099082880221596983226451297764712408583602606920069166971676146957156139092660537004326014388268978337606590078454214920400634853025355561109034848995553046577825330169811780640162274666618601917054982596959911563383911518475421016996675884543679956000668582989771557975413284488053488342859756920853902366835158525051632081125014465817937509798747509718408679224373428081950331860534273097198312595961140391353592958054871667977577265431917032239428008882216015898905410275103568399811211330646905931221064472899016215127108873538051833346682539844334481968732683431134317286170273991523401103521242640265452361592815449364598155299975000907250150903644828227271797722345849286295420286630512913791436615540404033513966658447349907644223775132891652211936085475806995422151293092802633350752664647446322385972572872879608657414668116019257298278100892623118266752975176566888030146835396470175503051996319008770048138283744994890862909282341967524352739499292886824617367733936752988732110338013459631344414551006500800743673423154313567650466420093330127925947186062326767028875486116724001778856396606480452014223627502063375602073810787960375985339989016274429547831745409723031461476882589532807988380118086136836657482542179179019266980386512515615520843335672393240870778973512821122206019879584139412080896584542750079586531075167785615582043641433387375851696322588157481273453493135144736771676254209565369224486177099136745553448289160211804311119413399433786974651421744829862936916389877486141462389266734404273153553414247387794529650174021158241848429460823474286292952562516381611543687777755756893134975425056892438583382840406003459863299509188663869630309405158147346908716347531611746362276426739496458345917121880891729406698344230516936497991414918934539299608505416614909410185167130559411081727465586416005461315998494818855599383045875136759962713989228711167982683970400135194516408743685018550141295333309858635167557859468296721782036157532637914384501098843594375864742069706254028930977465581425905013380977655547484781181452658955127168120256343857938123505314770729685606522084705494207918041889920426437935235076734022310034114971039456071221437375251975511659340379889457047885934277579742058647554612882902501838697148264901424598815601221323239563955269929757154133400349652630209001065078990940406871529819875079744348011309798548191037202174146836064707049079081803037260206834056069972170080122139233730816912917442419094553741792380096891937077578400257035043547990758021132696905773931931580894951626687969072377657971443374997890092295685437703666523911099658217720612204550881611603546617719269285012357392631784490342741379520768105016797152109817821176541959555919787458794164589290111061613508695429172837118879681499580223453208690432593132165720849101305664520118489863307955020359743170295736578698087614018519443308129121867389737940798218412748049011668442248446760626754165945373447745379556290285940041322728405624913278402672383333970812766125427638342790766648342522814865918964307981765463834041272418368296139544236237590357236325839956114498005212451230075754734843109217769630915581374650410101617669728350886708774336480325420472081355537239072029336030028065365061110376679182220286949434568908118231303400858510471419012778651031498071732529273457361405381896551783033209447032696671702600159439208011727496725723550661114652739965303610451655479307996385809157352642294575353360643476103061823663033969698611519732572733725921110509847834695531251599165305607479487857024723135991456810855799774111591377145751524082491980760640232264517884961172437903545414128859199230112281420816880350900689021936247294884111184373357194171195867042888970631407162663629192627577953006659561026004743353318911518314812694820891742976477055819837709870977507605958827993784305898387032011951728573543968620334688094707145139650447060161705752207194358042199410703384390793603279077589043211996059295805870045066556342458088920947384238583624391961731346113884471396754587213854837259158119017918270434781915784023441749237668838842417781313607420669024257811392032651136246781226928759558199783182024567323750152994204300912380089033150029318065229298781136443217036966063583579969821491049300069367871502300318717458141871643838617807080523793368662532322398314910499662320758155106208455614329004399914081401346819852317714985882727829694204680941676330312546656920741795980211620958913605590156481393233304829758886268059763020446790343338458618339312709053875404475399940584345354826881949411656062496812183102815875277657548616031457494747971054638625426981905170227553595700253120845716116403473178645200562276706667152757373638294936194456357545651063876758921790157079626220756363836072288209012722698660978615087975574213913724149400293050945337868743349268485284583474676046726964431973132468009461594018727594315920363561360158705119825037959858963407418905948232081551403859509817970467165186078071872164337085846041059413934047014007684526831291318752174254794950406299902592458639581157444299781312219623849566892726936911374839637993079686903043212899733594285522048607709631965832522884382674281061887638104614188007825366899989351873206967020063871585349574851501460092671517357000410882813766003119386699255619539044468364956613128436159639332181756738742850942297550913309251122202166745974266472452953447000785938071955222819881284373842752085368584633421852608506546450661400829942533825319740418354559671002876272703934205843765507114683628036346696021341824171779242803177108085951929640357319105836909455892562610523661883356356127133964341913577950503773084157719501680586057835401672285044634450984338432521436269248033197403583276039458729192783298032980859137528287982837798953476293095444747005341838832558225911972046766501116502117011004979650636707434216722374112031542105837917106883700881933318444203061864661805353387536413167401269859583924015336479888289900159408195272582239907738037298278435418048147414117772290410174861147277655698840958543446894534850547076220105105923886596263687650000886996990053034903226709500531924093862987861049813308143373663522157573866063967260361312521966933249648000126136772736186314009827822500259604357963695390626504353142640613248651223475590748469666126658899024972868006782072894512598829749927975033502093694526147137265378686337332311877365370097197518389774183933140775647116513986356678214943583025496751663856010678677630514518638305936383091953936568390964529653534939655383836047853733397058709075521286614569946532610060486954626707246810549311972309414058977411441583540713207199781973836643675502603903010765872228951349928369288788888961021399506222021357048935465596705476304891728943743159203571105009321172363617973403309243449779547954350187566541733921180280187724857164984692381245081756796827468414112165397378807107109774152165550691061650637316716472672890981424950112249015295721827491670162814969725032999161276116098654150796375331884092889439316443439758090617547247018126427827207775605109864331133187658925713447799508160854457254113309091096574961111848080685595986265521745594018244204783182781314232738090123832984960282386615060276167069005226545044253691748628769736336047356685901189694696832490451487342058724213920060887147692609486362919006400979014451840659410404658790874052036098324376347450685388167033819750106817005043753739727081714738226274318595894812388205375089035909020408858153054682819441625222769128845391006665671011431495436131979251929834569610979062811213357819984529501346718783653581474576845785115540294815168011422007701010400030305388508377559151502767825066882490191468799191628271964428588294081591503834057399022876237693499598945392286412696426066834515257774519864265630212095000663806216933076994155365614970581242597379079565518549652839643635805373349924120149445842238904563193252153048982006953154772550227315938541474573056182951201070761879769630450334514638684181579708180697031774819939088776330624219451827979614542901844705877409854689260803998989434696009615611396730160386698549248627283696348473368803809716394073565916373168667298258153137638098237361362900237391435601363813478498502242339607097636566137052770121154792700539345841742604224734262395302541532980734194661537269085842969685122128674712127204905205145276582291007223795739024823550015756719977872150020878319177926119723185783448966266351696477160771360462064282035551978232933791914494933328323471767106521397246683168186841092612053525903214195213089704577008298776374067941977360194708361084844681000307576817203176354201907941061654110726045338231595535162558798484593760073341179836206827305328110840602843870694527230135445563817477980420896208432187861031299923661578293406836109461704070278677346449225859466805050418548030445658116384910383149591666626197069872424553312078216472328769596706320319262108805146600852687031195844416561231617867540677287672859295716450700866565380179511846394863290311289539846130093527759524344860081361430596574278256199010472964599121703270366189812031873706311530183311375352901077707069478987057023028311340702764866852591534114846960154543237360698870536765198998849091625517304195289279900884267914843109213083957196670546173165113735615671004425069638912399296927854556213368806640318022155664346045514083162050224847436886999468485244029824805054853437041785059243653560837066740770463381978418720929598321482376534331496719360827538191883923698091525893887265959786311307620134033148807725599952494515053671027640900094714128013463263236216379289271056793561725135086656424328048089435058345513218853723891564330523436890975031888255508751732630081058451989338553297235629369090412168604430079596389230249561853064110778440719807549709525512031003050213729733655445876615104571287196525707447177526569742588466985254449842693053139403120692674094515524052064250850327255747463413618686268569094251799960458280617065547322275962328833106991852063162974574636450876514675364501889155822583215164291867775937906045076408335682515814974102214489777458012696199922737709844926434063790323982224812641569557784957057357373703282243001144354896216148021741458378845387435247022581172834957651969455892428088789650954198875686127623794993101583945659282791871967798806077076187917503442063736688355400410996292198692737804533287577352755927938451508776524549890713749204792304343446228370620835192123871873598430735702668347393079228515263135959777043260629474402166149372260944700540864587991627693781532578824757024163703514246121525454615525414998336436632156390265422295224385336738579044415079212384433335909581016871344035141405564246074397356087376660910296857098818629171057115260543903140645884620043906740202103210356981140335952663813034570976809180571184095496737063726449618825121923066063562006032160660418857270289453037754202001763553900155395576352307924495388238022556861360920007957060594728148597899233009784359494644383872469231643764734341350778435787094520746401495384892106358478982743845149311032265094389125626069995421082065515147385494949107859858283871514746986833019158275049606019016867977337325177737056208893689348912969767669939569773331830066074347281972892733042757348055089245638402523222022064606149831954515503637426459463980473157841795199402262935092025412175798889793273126707848719875475492778430738626272848145625697680853952243432487792358732986339719102526292429692853155312281729073700698904287406654291355345637175580402378077770052677652767646997648641396737090575890370930525483605136070361939316173824596986177118275272348169044225148875226115294740984831422849173450983461404992555534442974222570242027149828539980618355642244772533819038215056345942301489238419973705006997246617243184449202332950672810414108296357608598793778301509442803432873646012409451119220265267232123383034425734700028179200777600904260898383653975157888591072188884769658513337601367994392168136875246775006636448340782594711923346795305539302897835570121366904548909497325284680386944662108062027081219251414644170480376721385560010099727114817204660916401930353688794607966342074740849381863106212129558354994467676828485639992242217588845994312828808357348189406447472925199761475313164997362468629554303218692592723908317574834692237984832420992692816596656878955727407857938655838825891614756706350278067711811963783068383652366795917924766725115148623440510957416347662344435984195192817405035135713887524422794694417137132786211132646021885600702197826058972041020918825800812956090833156843832141000061912936309194531719868653349399862464069271577911401781263169740589274685454669860575006678818345470397042466537859979468087632601459422858477829121257988946368766699163256998751924388329461799689893028611232500482737401112825628198301981541762264891986971060675254995643060697959439772198940533256966841140959411202614741463255692624072165520068740425789627805424936396439733336114817232407396087977724599190996501262158972388383818924112144622016425198841744697817814705734692018490281085506983521011820030868260396720966070867021103892044620210735771891482526146424194250794637738683196141153447002406610753159853884267937390988970985321735528696476809810314900269334349039471095153893670383379586753203071185097339445374788014455718466670769709051725998210377569434018280260524800828082807797102620824692810630674322947280192166788203587360506608565965859240440708381377599013534199038612417729263132869956407659959745613020587644057986959524145313642140629480880445290552077119232332067593047725863656995016379525585172670365368483004498633092852884297326100364799829168564627131098313369036230377871618346656312698072113408394290615655531682133393646349447982775229784803755686378267819207204196757845345551422302903801286522336926895925303928966179326681556993912467486545563667160326957889875043156889573359154374978048791158953551881432352848338855022599138969430494722613153665245633248040282965765826022872995484850814469726847654017008206996523560475888917672282308229316951704693179132585202210264887449925585555713106655025083553905448997954373912153187574583524855816895106426080356967648548945421778916919204643290440001059146325255269976617412163339376405963978708433526565332278065372183698003234419055859190335365821173876091656582011468495967524830013784474473670124087231375583719091954115928326115012225738684782850049378151163252616683946585259918872939515153196339084772201133005011355902526376405261468242836084659376416975499946299899127929473475534928439657603977252467717470169038008080324596679135315941175817089476471732760468359189024873851649843803266581283788957167950383579614663648623946246648784020274048188828922940220264423944433231877859586297736719948865068111331658872311228439613371035380339182883723728381290969892297944871975407690413528248112347615211375952316161207185383984510387027386893971782691249976198072525365321622186283170615711333305344695706462460053284438982288852148579527424427021238385411845512562384931100710030226101649500065469698070783642148483694381047326196569757854371606740485087308804766191606531003484365537078312676993340147598975550467186598730067621959491585499064946567201254660201743136141973062388964683637297243031976033116623176287245657597330865302877470893107459247585945143173967326713898412671151657314566047454246542515329069428688024249973141183376972580117410354552592277817253894146203291307862607554619586911777142335877486930699001621591297392206466306170173781498550911483196568935781304695493749997887946684652988746465183085849216305903442511693301344496529557826531641164824466839733458450457442843028428861457687931164406656687891657447996280735526783300319602135527010554425422127802485316012886999230673014645442769028739692830636007273165992531293483864541191098603015786506375415463645423867654596151216287313299278685344585599319522737018466280417594781274051117248612424766233437953761441994764744947879801629389633614104978084410150183544117397619932917405147469139300006233616548123941635605214796222854031445478656741866658335420973158315300340022936406811854983759586560622118774797240743806383727189962322253438248749787559785505221612379006905979428148205796661781300234491413225147926502963093679734406700815134066210922867190624420843465301000826574887792752269444044968849847151803961653259267592987696597401861758791923683125850515472927385120491628095604523482433669053031398820430699091460424823468352129063284542640053114705698703697946499025870262844839659943812819666986320547167186916565037180652617426698274562193037825680872666611413692611936990132404547790689847258038667243094289183014521256652403428983357908857771554319935670472821718095110360464461464765955508637693030999311941121517576398355766322443736951138339337475041253157122371362343122741404458488673087447903328465828085538758356332329725776689833917200360194303403646632287619450073584559021568686859547910248686513807238123381167374449392693012148152748155463663424883099131773391564582586774241873714789554527017942969065956094488534746637005495764752263551457378020547291738441039879336804447223472966019152600386260043294692665137645531554472413580585425522403093091481874457634516952558153243804637721077188200643172821583877682542392742338477443977598058567261068556882635034571409106276777295221137472938890468308167419771999812410592904706825102289299668944128835733350858620353790179786320844479444264977836527942625153515854183776495163089574094708439245201019384836080840500619459347005165135335428009635312182563906002593775433187190514384090574019455269702139955772253312680455017550993560011539279784044368067249148046221925027635198113341520499769908336273069816145562952246007824785246003308763958628251727793948454123898382999423323560215119809656099696625118367727925581027434301962525650923135772180448889849231716302331101466534998646037160362197145512191981094563382648805519400789457956840915240737646576666892621714713812831003802950472620173660189705547765717967151984051891820643735690364793175538664849214872578146912696536639119690007027911256733952321067621658652753231577048582266078196352744392118987815263093939475461642515605225044080727442834058352734097055455229580709005073859596738437353937880297947799629756763996002673002611026216522748812520770958739966269343129032856082862141081738901614638971755956340532476075844087310190447568801049491846337160289895519309807435215608044441379189235265660235486064993764817923039525125206580980114691006400861957314352380731104830446985054144310449381954652274190983383408569166062732003824665986108488943337764855040879099096050246687867261120317036029204447528227495894260521469213037227847201116284257093031785271276704288820971686255116171716295562544480317635164629440486595770246660392007291047913546087147073428264687817288713166350451143725459398799201756851541407265628651806282170836706766044083624777805147781109273935391493056194390565907592279637709174667724652523234869768826609279451620791541706961700485627323184481283803107524998892833059825166513502385327291893951185839236054522970402528026436407940147871915050803523423151002067164930201458422698432726739018499560744350939016330248100256054511926863650747391863446190284926480799471708991610677416308001994590759081673576406211660277965522545323084302147950250221805617309102246378081493829062455450244236549103193404935565164201958652769511272502392321642884514090283019033439552870726487340162835455385963785939807550402524733179229484117112070581832749565861289543096137020474729553453929748328902438702791390430829738580350645167596159618553893181511055860029865098547207925372666528596479128665188865691165044870357488697283586994650395109022017696936987702519912103570804936066585356271407492855278682558158733616804716745817120125106541800617525124024658601801112818866544063082943228576786193413763679624198156595756427259081724792380962739378255593931898457563497764912763163673703162178656131120064673094688085832863024977805783292793458006293401725277953082855045194291155900902078371611420900647605037447231118308251048419760476395546483559820351869894634089889854613494367569598544585603667494364169702454245455385838073979128391106553361664377308608628638230007520588830402341975981241898963929991511617094332179114314905663853094126031936483755698132352650694137518544369639656764768056557139918506209846240822449772337025044235299072216468425175599444053913236147471554901877623750247548917186713753014359413536857550497387773275209628064132243909179102882557950844198748547686406062558156687729218287821869135923820058968418609037527673877453055580606380142390635256825651997926027005287313312039529333943602934578767036742775977180582164099248867718233744285228452706215106344164230459938666421623101924268596276951834817685082044679398958193098850151603845567692674224264834933805395528026792677592644737645502309530055365877587714403064990776243085109895921227460949058475398454387560560960414549443275700650359697693430808441998047733848368464624513702243844848354227704804605910064701677330893095859786455424994363924469267115063936850563208712428567904900099701959231136862971060585477531180667985043311057871018606558058090025615568546431012773413233303785927101653998307954279583308200440289000564435710063871510944781996699414378535836708299370513346149985332364381111093453245223218342020585355357906156155000799909112583454241023565800495775994439421334759084093921114269319125736074765954730377488513864659463718594352275614071012365445591272476906821432679137046682649445454226250492678257863210957219947229818012943138748820518294037149573993441087993505016001206061777745808168485941972336556450793792613604108003532623226305218730685179491502679759035478058900097576787498978309546745747792271347269024079309445794526157065852547378543297349987138130891901960961299514474815353809071992266544523135258177129695333961952763713527425252531917841500687929740116108340318414027411263607317488075843624681696654109061739371189971788117737043375991033522396356766260313747324766239335205759017924916104470378108118166967576844804513692974573110681255285202030999314171282540099745102962202508685509493308714540948831009339826595487609569687167760754186212557233338747622447589886510482781295766596721732493600229235740356511761923981408868962750358371980265142915011122822915155216019109677992939987574190153315282735025548659740865395816018862186352698507087078256215462059838967730331861663433568566563827227656222363074710907533445019581866056425146326360642603470391510242857660740187288129286685716394916546468044016949414177270193888413881827197311551143619321173369761756686277740240161936500215641476381120931316251548065882575438608906860431813826994989929312979767189423705174110567184605306114910035685605677169256063149203369660436510203950195379050587381063751963843141940444476684731888951238660682555718418317890031801445405197067769879031192874318799198834119201634692583540301125922597781976450021892151886526733502619266844194949757233267046672465034572119963410912045276092880725637227363627830431616233103510392610963937378044012176832995544081785665180326438317246333084980210114103156943987870201711382282161737077500291709471705867760746732177945982636693794243218588450911265188607949422603317119076136412156957778105031094723203591088647826369348289872320309717570206457621556897411056575010892709406558230653067875346218446612684781660711159329398518230774664248583147898662930313719528662638626687361614337322561209309358387428331447070875921612806945204998824891389081074987971205735627631934954262521966820434814333015243591642239644030342089530615363698923436528586449823027562402492084110391008929776807085145338422759015540047944991050454113891003605487642731436837576684100835512076032812080075702731786919719864133504962118424316312512213103073042095842406206978843025786173728407225956699801389106392322507456430657513974083884020680589240558119359812773045614283878594303961696372522090656271984361828909955454798672119522638616681973536473432996925627034908004844657658114949638308324302317431738274089009751682812449733825480406907258230167600046380515629516675459503780623717646336952234338014983370598211812078318959560226017609674498352919529451503776925680136413291391499055006808642149680951339149637745751358726778947983620856124525798115617676742705660292075090713637957674274640055849219818432186937994688925166298004704228404971360336527223795541387566421146763561172400310027185647281368955167845479765423693031387441480062545947156264913573053571222397018057096982350331100242482430113841711857850633920910782244599887786870340756109057489741020563755359708116411911108524578905664313426584376318233803549767049446277192217884574005850755596978098771731770801871177464736606734094926863880975487735691008770352025413744046077813188504744477911604895785200890001372435450600504906241301414567842285578661683078690657029153663763973600352407335123279063031163931790758114962612552174472805007976979690817030139628356701242536795336096336465392959773978744180306314667687317155181385822659684031751853869657307494330727271506863657214144994280320384985060370256920304492553407836005854769820714718961978506920822818781477594961285366424994517845377555384345378463305236786538599630222882230855384652394540287969185667036226907712634546428170569101884869826801162182799943557138144868804321794928917028241151076547599582712712656935808449402107138974475619875432113529015370452039001829433396189692982542021069881579330923292310409380811415179664721770442878926896995702111531462621562225902826427829617655769388046784279724194661833295194568942239318694982098148609021159830864768411292079812340212616509084682238501787197560604136309043210157518309451786611397810173851515947349959844549889194873964853940595966822570381990274676121819465761146442585347823662730101089629476714479694031375985213391730773159874246346379070782996019412970279127120360889576888926417969153702596475622818392824427074879056248736522224000989520960845986278669436761596359916789728350155079615560922239431562532080061497819805603491767980443029956138173815310623344434211281547960600462911506967105240493565889127454625152408503281982979443004887287200757972897411988834561436652894690726361776799172362673084448657346846550314793950721229645727074666462242710592333354896247324699964186409444346831334229325481927158741111505061894569014192026814874851371783394127850443994094823751026634675827889086082286941048379973594986824923976056599965144387744746811724700273249628035710605677308613301083818874923594786141452357879136057287841371275462931698589165510995070479261479239139602191577055412890777424412046648090700415474477916216905012526071258606776601886747237871902032078330823359011909967699883162609516342462704603649795638148285215455095922178817411680337706145246098920563551839989705279315999239082851033181808226605640035433871843244604463142401891854602589268347660156190238140359032818571694028927270545251325036052989630951180745522121083827523608293021267524128623730044749576107962307304183681034950098881328541793044973260626207660638475156040314755719719895303527478272731306166125792638172891296099449479058356358501938123338669991958478181082178773199904310597306276624678857886442760189631359996558439060577439464426115618868824064407491090614442123936459524491800335272995696230146050617964684547190006644627022385941430565022029585155383747982898917325208769280997656092051981193147989475369043481661849634654279731709400071061942264902503319772936946874070790179495824421010729607409466253353946923780056172051870912110151861070562836612827741122692625011914763989439265149686707564147892690611139509283617648900476889518742237738552128591097621447704121490381836307745856521451895881126214299073224753316420075456916524874119076266994742190803319563863759171151094822473845760928932174197171499118052896228007769068216986453925444875371035903398540893596383381673775005197459710759111254817703927691554247029786250255415772866649545432308882405916873986677518884420984284615880680930714142047501292933660351616038770500853605996263358221216682801564842881237497618933380064153660092826947229289897867129625341654358163468839086947204427628033299809770953430320027659108678883884554633536568509901571574382075997842148873497874482154594674816445331579560112661224721387828209979696685396244179474597506090418034153207823840663728258132823566571893800131911463093269077042428889436677221275745779309258805585300325758455560737788629129695712099280952841484038293793272913653932305740456367589743291065448312690216799433678134859475702815269932882347958073443436494254808377474852346742421906427893134043143880690869803315413678244527470733340782344493792384951093937411828054891312309448692873789319986406256461152848013656366583667662447288248593485747745646777148552698373510600914667595310765198186054576562409855225288059313420425724072522575925848351984932511554827263179268264045935326397458836657747968768789605652801554024356564734672354149371421334516610746274415211629778321294857597767492231231716611119236363120845342838665295717235018333737717264054519428825558037932819070237213608214108977084651469997107871407181782409230829336174393860804833522716243435125650265216092436653410033081151034528245681808979121483333172488751635212710767667446622356914642357881104260204520750109449948305466181852214562056606923789088483383442668373121796164626825455494141935230890809806969205290825390287919999264961265432432700869310654608633182523157248547843824866497244259648440677874845115400993544830821486565410997795709842654325150760994030731380654436804101341186536816069895970244671462034438329418063490448115803396769981304483239860039734099264372153756212401440185298441238886606288093487724271341817047593813160668356680884304423016216735964492148844945532615492126608506039054332211101875789365880510119515978348808245729444330015147695596884580989395921552338596374199960860789432834455086543009181796755012183468114620232022581399903273754065817056817537783327969626067081674259526894334154259824068000419183513437606881620120495929103929639369741112026486484292957343591887451635631722224051845717191003937771300475858988321390208902292425925379088705487821409259881321576575729776019396970437606799247663116988863708794664545373905748177898215724192021025514771710731258664363000660111317600749774799317396140437464508454819149315824540104465964933722917145829426281836985139392479463839919811103185352835094946268780556616620935958451006335264493738632227155194741284691308773168597066694304535226066101813597272311738653941066848340415456332899343755936502170914541162837578980208409121745737596993950548411699478420178973805454619987520853648304379324524531040347369059194705699984255606508225734420303571987689905638248485242755669277972955928777312064733056728326335976458701976944589643871991115453909091182372762540152726559053289533744893151410592326720435675840751626521657891939851608719725349606664396292379080659850122129529245504064765882262821681619630394216850329367441598538485034474885491333464012717950725318199933363378390245078650457216728051785897258009402800083423933713441769276131281157262373528872272928405524346140078961552388846063768330513776406183997993527495780462323299183125629968869248048187469810101958135187684032613514068311265976488785495741360714087336718931819885174077389818631456143954474431497896839529835393119848657272523872620326822713156726585166211964512408658867574614736490674385908681199998134556291613161068217534729940955351987561809893398031770742539834439246752345269031108105480734649320833770949497105532879085358729782859365701418615430850643864725755896855016999047040089733964893813560699938090956726314324109238470550947851974157877561540453983641805113462498507065583725618941093949275859857106593936019372777331614652742518323517854719208433276764087176662339718697211116833722547396666221492165254456100222195548529033029777079543172347945478915091167738968142866184741971848056870431321031291644534759320392040889350984853234061102433212128590181690443167915071326559752568963275291630312283101694206167357767476547974137539057921645397209782826219165215748582172178634472670239071591924214212893438219705556976507888054648968635025469685065787295462199446905175377467569351741281184989461299329322660978152320466944431536003115386642867251868226959928455984494947370109222976666954853732693278086818094581433472182409204747905620851840819006857935855755177075353039956645687970549857138183629663200970026763407009803634320524453187365011772623574682538014377418198037017994142541418918576967610680517916785509152476199339235544674774189510349338930457412297028131079054318790717292996923441800056189159599874320466703092484657716026428257285198036340057906226874751882337392407992424734726167971793375152074803269270900002872691579597619634424510847022142239768082499567776422913901443934694070295693596572210001562463883637304236705376810435446757108534767621806048001185972130903153797231178733719379169384430650215781497391039654226455273592712320506770175153212199085252579652699621581366505022260978190631537116113891935045393480134453738544408312779588113289325212513805735978490266675484646683996840044178099626419996897273857333155810810702232890501097867838845361078315912732214644607329939010301302637494994061416567685142235276004252076163930840490591972894713185244854047618118603479743620339418572874732334761709573559016831208478089746439366742265932779101943466023507103745386334513427006652161771917778253128899546398601522682162993611352010005503762099784881239876539965586462681884092379429223902575531075278958322403204794506469728373027128091873854358965290554296956462558532054830407979804024344810579026943094861442136978448117971150494663170655276263044749459988912308302411500412338537928770484958619259568067285303644246662990018890613095511562226412545045798803984518852671073584297521801224025408778636622680817478892519038655027370980492125031436371789460000318082079978054307307920544774792303407692919298848120672953039315593975333619671733108288440381991686021903197343710305064922347126993739627081869524275289471832307786360606191817980047406311289038476685042760006857670329859015193343760181103070662325963352304360707410906356507685432799357609223181350333966851434163761087238421044098713087470681508390617826576165190634484555399614247014344417768364051557800543185133598321051395636987503479486320786372647986479378486148968872847358133825274575348131233443373458973206675687703748582643144494606835424440369754516014592600141037068674896578705158358573049583368963996958828179602956883411433498349790135120729792367210568181942659322112548683186114184776848490827572282573569097730666635232904794214116484852667190949783677436953094717523279834588090318176494890996878747403391600881844981023164633500954684189246264434667514144946328576781277026351642469312376204891566062848543572284833452636565245998721410759381326628376357003191870255489726845895136337280327197626707692339903511092458057688547079866789859636134752210363335715305215038070888612695600370935898252409209272086241332821020596479780185433795248916876021866346846833126111910487101890371846355179968823276667198620219215194708666126531779557091407412885539605596510822750852544826976447739179483093659726145016621076735092009172520747085566535829910754537373674610673063019494366918739224939715405625259913175189775984102133380569258234336654412366787489084802345408869274427033756487854913596838646262670481820153238033774960678401829338744282122513524976044857151066900451410869119293804311049244898805407170539725317950292939408712445411712307680459647951199442695325411499069990673802543589105371723712490301499922113520214916428554891631998516696694058466418775627951296172221968329333125463873135501152169774561118431562308514585423383007376371999811866750608559316821395414602585422068083136063148321026086639368164520624069483827369295793850486587839072022298689238813006836733881345046220424293494856543235698462968328586673158169312960373243241359232141409680377664193671209388457931157979955365216271014374781802450881099935238635189079168526585205190730414492069483641369158428398801296453155409415642807875346169273596749360750191055770415964504759371553504221931838443050813044350140067566346144276682900234520059026832892784415492295143859278554424776444231717503895302054144561835571602300179134338204508498884257126136890619731482175089447553321210308828712508175986375458922108976088205549245328687391664950556877005320641125618546590930993724835158383593475582098120247422696762802746547700350683530899149428506744385011938108131012579380813045403278418293039023435449771885721562435359456605461979900784577570384464820027414857711631806153032205893103691787650408495148158587179808880273158640294668454554761654810259344970408178838142538647616470473479587167602585042409895160493727953669010651098640460254469990480666911300205978346621263132388243045278476594380520155042215858182564304159626098521759499678314469290018308705730372541667127461962354226720811932365262483951476280327239245751492727865212799532386266569808876254615935817037788035025033119688889099748156010269159084898022951981163414511028280121478653910517632530180058444830568677027369209827074387911250035424627953661785227773825345465115788637512987343131134201892772041099936594242865235167109454758224329159243482348021150150311724346102527978808486938570418503879973102702247612439817227359423888192571035095820184937062663525046574454063448581723234724237756259114783598238317534973387903890855181557699858607820962721500717136895089497715730658445684231435277965209079138277109794375153458521291896065848676553498363378570382834629083977235173646179398312142997632485967323680439489531422382678625114631960797889420870089158919815483572830969517137212008321573237010559392008127914415859381072400555908681058715028890810483987045857166872118606231713687432279943557392915817378884580996981215267662228299939692639325702252495915354110795324974568958449699048904542150672658004682223307188006907457981621056566067566875580495481362441847963703431826080745797400052952897592496055568080562016055128848333404122381730094785766851433645837925103135896329852380358175086485928760726489574979964549369568419154888054665299113104070978633406858328309166835609823180232450476166644437996685225868155083168708344358443284191479634328116839211477007260286674950229074271811994678347226133732084575412944498497289248031848464201605711262066902300412591550727689511959561870406126182521051925430443433520495272381828579317920616998072140555436195750322066970503821293487474801420479001200497142286488837366955876304454976497899687118232823450973379568520030253980117485006969761784611547238773208417119827713106237468342072037830022637547007571833563198100086342341367168290170797826145577529366986745017229083000693490197419639582354112440862129739272125939753397663115955260957868918170893388870483986352115619519254941833524977010501571569908136441691304241294602652759188629413709124087573344369322399988808943930085243257730265014398195066417704062650850820805694522834525073633942492636880376212949462881866604533359863135938014124581562536336625573042602902701696971790316396199589382771213758990842054167518355326243896937749500769316065468334889831856338626449288368397759378452376788887003560862210380831702386420937501541095934293189944148728553166931982667666820998269055945671091511255930646066958186541326548063079791096723877874968601577189249554620515058523097162102815608818176251251037968942106034296437215294545708188408695420333150598172960015145063098123363383609360149150924387267669436174664040224044988258108673771702616339976468382770336564266062877522475130440881788255352402395817876894621298151173494737438192912957866827497398478139840878133847150700034382563587260743847407620883342012589872780734300734699396234006389152604071870146156888321096164895854175787467581881088871459302531744947620522491904868563761471392580149913428418558687011668351816914643134775882784707622683735410251785980459157638664230813169756735557995019298165657849900581736910317949391262117953961966200549134288457604655934157943822530098573577221990191736634387197043816685541531599899294320565804754756534639235577668235519363724486219769196937316522170192141897437931730281328528630714014907016117201446991786745078685446090928564510061639314701798624410388476508871186979233195806828064883732696343073870857714526088733688565257884065082271632780752372557644136952208154090593674943949302083201374836895659819323172431421001457213250856350904882879414822647598550704545357284703947934219943156459060969043570183283231105276982760735450560928734041978315621884530600736553840581427873024084590262115940638591610006531434745999058788212207539055344659489061079236520422997336647941768376641683486955653851556142462304319449328524439500239190224007667499022277282587557224014702933928887817524793337654263015419147465973731048331884213814593338581771022371726078876996330016373052996819539902347360165460271676542887918922695100215869437268585406962556797658963672565112441604959495381054851699692037981376949821073626397378876645598106907547257470167028313610219440854818597711940418849334445130913965034466576800747339472344804096950523346790872066483397179710610621611976172780207980224115925607887393606104035759700673282500324077948748849939880212017721139952851126147635536164096213080369042010103508090106592230351347412393664355072471009279831381473028979185329698365482313414993468052001480617031206827627153552030203993016612055373705133674561049638665598965789400568398819590653497617983469005081361787057252589569425077019456519636526034921280499857446242112132558085067619021054821069824268220853870005882364640966910779821766842153318845052101948603497785653888749966604477365389292400115640311956843376158613451929096955749913835123404269887311365876597575520512036783414129441791732045169281116261979951292393632178544833863980896922035873140656842718074302743181516173255871598726388561627696394067260648224898116837136977063708823926155700773517298089012682469670071769340135715386629096901412283148002460629339104925899822550434381858528381208426173062322671942873417561191392140714827118061496759871558686689459694929745845822804914072715181205575189055699437284834904954400704942781951766354960636733558369155274810735757406574741393048452513625095394859670472409130306036739414248308717561873355329073800646251392660626684925807309789731169969204878946350923596418179335150012118650152483013867828768332011705474890103148712157807474815043261485623790466336019879532352862474581583548895470527766450693769948912832040336696738857848735416677181803066020324793874002821182142428103291792220284130195677440251534378702294847838425674928639487654522904712140640551553861760139666698280424991087527186003868482767278819873222759347429722906807862870218022735497427304675640401108902789723394184843097502296847661989330732474736468547766493335119238177474617909971912297243607977127061644309539268406938913682917062269468490288873616608055491891241940906033533733904432828320737916292249413534967595035955655480866417283687698414751294111952502895311128207764126242051302486004945693989193600838116072916898851144789798294469077870383702844776012706022357418471114616994829283085136770714304094775764719612125209868634998367797824392801005415437711214140808179311842797624370226533115209862247767027203675573515564948281463251918014205862400664769995374167651816677208187458336523108100634718698307889970176558289859329315416113555814609661724959694465311450535260030559498543390053056924734130596233330018371314879230043136474371182655106353142738474131551227852917096548029391056122916758974509584654781294550988391873442189958875840570622936270383150022956972067388259816178724046648351321567147437638559212125870070833946455126545014396937598995382950641541397197521151065323546087082672805624632428451634931584966826440797682974754176386346916025109809102863955953937319125506927464500393857496479730767934171814764398545486319975680558107570804842432338121229554944539273956912426977249711786837760007840709390645899926978438431208899013066897648502020384332000137058069972955192658153348314923276517230111778672548337768568168568703311900997736590169781957274798894932123568731417996669704698398887588665707405592791275441276384208893522775777027500011042176296372430804200396152279214402753765250895113338268392168852455502617374565317470659199275846955542481741375003507589367164165941049614255751978808816664352083533929266849517576360039723824912239373450713323232118595201575665412190406060259887488040165855584908444496236587195644358801245029090129721272177038184505737847796469039707736453008850729808422593025020088552279695399574857006040152732324608448833097992937001653210641527045594424344214845153000494438517055519399198420970801199808882523794307246376082835725202568126461251943280895615500788264065416215447422640419716136607737491567215061593707562025119503057335825930076937486854456612138416551558633804666068349154310884574230060709783055233839617885411456175761079786736017750223844773678931499834000799632618862008267502813486196388085597390102654371872765070418832096946650625037756918939294694902528920228272469457197802267347298024774827806194476225605459478924597463479354042358137317468048236038237567689386526977664857386457240785971053256952791775588856271057430934363565434745776548644255058320988825555326544681681476396644609531730408611543990136881926220597695454272475315630336727854065738342509637631377791441099126126935701274551188182969737527870960214275675500265828004642091688126504525478342456065869132641821729396509861576785846289808957392614530826444686927716406773064506289971362519105350458208064368140349393633856358574848349553456765575633318370147325049393099321101663525886624464112142764261547649237731343430939942910289628688179836309782560053107036647849994154373608988033585670481292207202454691791842941834978782522566707164293139443889367507143737593985956961959974647448059656856337161620938566370326674340587182367364587748007074649200468557016636295222109020068273542626874662377929504188963432628107423847336342073206673410893494785924474722022358600807255388911858786967490798824258134302148101531264040215398065532665457980458785340982114342322508322524893193068234987397290112570466063098553747165738797890980667234888722134297249696450109710122569876228827636111481613847325803583201052650540318769378160374217587257798499096023210856937121121540527670152234624096539241736770597823486287875101963166634134598586094979625448136909252514598994460871465811144190589364902133554677438069307302419151080281352871316858567471624495124344107789180926509124449823826199469887066223986522531663971993527298798874903748008059595723849659111039932713297105317429229817035870537323704859354263846060216033909235201390561238127432569980918905788900693176284799784709049334592948017862259809658325856855305675783156765413572099830625398328841316453008290222407809492093760068087249001004351457735630402681437138543973232986013455366811798178569412204507328613511439330037384308819773998233161157697693849626043925927319836927241486529364199156208613373763133452722483686599669285354397792304141001889555597448936774055140179079672518578720990914686034736176341809586234121219000035055173293001640903137030689204279630345693936540261808107700481658302050085447583217287867927173175660863220746486437130016697011432049812225307540574437919094042290034036771436398432097657447579939117922761095722082494668531290330438961575771148115647984016460075459232218710308861461044903930174704723834199201711192713331388558040159999384272637511249336952192084594696759820643268124300005559417075783249691395881775820376970597696214931690851717083342312137502588719673499026533281523468610501514609928769047874874633748025364263216500699425904887920823617118641063004913969871143402065039178648450336527737508716463443029445934524293658082971047462506133281249531395789283620870965695032564105002971242319700631837262419440730011015574967051176248011224341135886054518543922017087677534560421848961826516499631094215077968960500344759384192066452790754921890371375786196796512018660639541015509092043510351131560485263599490696465575756077244980282927691953469967970035569927635280534818556837819757059535854410385370989790871198109450630835903894917635021736867803360242222165293712660640920643953448025792502957545844954607063008400119716810243791879425345648989518218697034730247097649315242887807462858525509333841104021922298426863722984622816880679234829348344671427249279312473761992670455388390042801565471215941280898264580107615525687178925731881360958210244906845535746556915994111570704821886061167270614525530725077136789483261148203754194166152231751432986973766898518982605656900792868129630542141391452589399804865078381957169421348681378849181278260689772684637802925600308952889420951945606409342823120970924219043196450365055052885978286544669750595681500045036804144332476926854501809848109137718692752588581243162344403686387311096541359394674044674407515773122067717484095682066315297122067160088052988975614994411194428368209154865635742144010216267999790956025366720778124610555434772657647660029813741100542767696344610684668655116455129830643359139479602934041836258045629801184628282351226991541348908162153177888165876885926876432655564911692024863977129948611116109486332312478646835084457100318423116761069506531116018967127967878281437965984803787370552578074884996712653004818957398122760705475183540577416656693881827915122195507866898540635845060977191653662322101326200820710291840460677995170748235207263417181301292566456972760257889868452172469285504400509616037700518367260555182450225131917697523455283246218261670565972650648264023408938846292618351889237487176756633271345690378603751688914904543176802648128980225086572271088195489870625784971354307013258050042640684467256281672149277862699621702588593387170840602468284876599244258734939664369277382126929194342020055954808661321022640342069410036968382979116505767965142246112290135223051138458588865850678815626094054425125883189737212819550024295629488121821227007137494143385467486047459201565941041619487665183551772362324878798025104864792971578010992127105092900313797793877510948166779646444793716386159108924451962582120796633713937301195552807548420713452279877025492866547640287048983827611281636963071561134891755424863736649493413145909950529494998126568254158245519971855871164598508203102300647879785676059163570957905862066833320347879495365655498936371510057021195084641754179635314664331162931731469795248773421879352457628655513969806920725674945894457666075500266845009501663724344562627053439025192951446597010537864609210833898044581054801574896633879671199301564078793512773099487697278098375649369208972973341098323150461368897193071022672916508801701423270726612428003173345666512658170606757439634467764869559378501669977370254495792916230946720585838492958978763147430950060840970781898923452597614239952144969858344393160141016826236326933766518040298871033313920368205989411948663793614767841817353125198271836854631782955057404057628921138083376053546396249525575269851366932576366420077129445329081174523470097785149480773971173978737942303610524384284903768730416576841512302851176163078570670411960822905024878601438490994698019694989533998464845080116771336343463302406478437079290142994628889316023104960823619346367853052039595420293146841289240598645257394301147874819181067440892571306059542280393823390534584722023370432960858658124278745246574225694682324469878609034583379174652299190549219290402708556710606157185556485047934396239349853261780508508803866785820519384204691476491640741680955425468452609895703564529697846396063695101274932793892039491935809647450885109948448469614770000963892281216428265555099978139198221216697237624339107860345808418585684745810553744584494677766376651077198248167551431370450065893253603544271385651622455301147396579228287799281514140519901121328381830423954579765931564901313789404003701899546433792296595006386936574503398825702261642189977901078934580386143666935185182443762154969580022056549142392708934387037669921241912694048156786387610441189684255614838427555328008531705190316939863434126764670031732959083703539609333940026051272875544021935072355354190821110974923328212258110485446247147348570097282446027210933153757257099452795173322784792994652533995171161092627510899991443159983096818795006281661219792850573773717749492336015741310719978980287658958254700542090184481798109595952894841255114659156311936147798734782463504123876395375079929919346134739165194896332867949359403732165284468418409381871473469254533023175479599281409599808304391030832127919203612876848661979961976372235775548235479847721011836088586557362153636938308400443536568073389422146043885662461648819586555568141994761922502374528306452530162360497734557799211680801053123293380380492150548957187230202584850444181688749764326950396036541286579909966652561104931554247309747618490101751824275558274380885704712638887845500277909055747551639981423430385963126151255795993756146127330678523968350628800916103256970781179618696519783897443477959045862220241620415356345768255093876516700633835802596810210564398192652986322190048211912472042923617721369910589226890448239159572962483568966100139227300430681221674384283543418035378843480674732896821161728875940895413487783287173213617361264132618705529173583789945156645002606659267700516701988794657388158456284404747370947518597083617235151688787555806210425106346940361132123170058728090290135413410444548306598988541672069770070382988845782013749531006269108213009925598832564059278025055526909101921865144629693562541027622269509782151658923455433112298831158922405700824465313923307220765169723491127227310399886163946660927299796277641272606323321387512152698519958101160967633212722328626179633259116474202878102296242933043727341835886777795338152719607360028270334925659379640367616374352991688510614191875466525836755695528635953650526341155664629053812001683413829004790503395075730551646897985313366536963154806609434358423992332587162017036682489645259815748432941672941650615305950243602137290910895548924420945174080563019605241749041883676810777297478746742032013682466540883867930346923374098399401905225988826415327644970465139272048324966086217473223679065999141299237323346156723530013253189059642712005893710848405488922664335041498138570977403551842261277733178449938377935726141333955234438006230507224459311689142046165524947803302583491954656807278438509320431374175508232327040679948672322244733696981885028918133127828177544071149013895991120040304000264969603322843805562853454723462154549381388459524737194532596121776443717064745389541585795869571199222349778917200816822645300590203900259172055541139135549675766430675820564552805134187009000824033982811023681007090998673403823597241679218950377692669925228456994093889207790342043365288232353504975269949843996184910282359143241636750709631215118903138608344914022917082945860859930693305546687156322091098723032142306760579287177043133565835340495770423618620977920235614897062911102455597813514237973552681230004499986699616648101484526256003504232889913800890168476391888985550328833091581026650384397085772654369808812997501015838319841363201891084516799783326706658264865946513513935872894782898168428688869609636076242048930677186324499360042798607249390281755711610043692118043683305308937070006408853401773475104076023080499070093335582058525849113192961531327117898074649680562341912034479817961791188460292535604120358119771417000332911088115186175710775075189207415298647252699672926145002321882817426365920492098662633646932394258443072556339078930668368255102370087425307937937576386953436825520402491447586119958504130889159821842760634916888772737608614665542218517690812415048955277416492273385090428701080789531336401520289944333652906641324719243918544416675375846496072966732948496398174860338526964304699318288093029793602061454500493434107754947362523832854789657188022962453536524484938191524265469102330303747136899865051448475859726891308049799330575588776578632975871168313072071393643469127556018861922895180116438737631007936508289856078948089920370186467190426216165605012879289982973527244182588805910959949246946369984600788074984290466761840060879189645546292102201708053764955038924881134418260372882696467577182520045160299087807264116555362621222868387928841335784737170845594627131413532064751357431624587628380245772326184994686615124400252197261735341738722249566502529969115353283919954466994773167899996631406928507133623177346254833941537103497773128884217409506010257973718499195221281762408129964702153697626371263393839592154878153037161790479843058773903902601106375159615217012930882756448354489296153085068569815067694769049644560292150430720900181462146833016111964950679695495645576757852057137906412992473264194522823838240623426848923633278009685794073008362785146056420490143442598701705822127860521922624883934721464094401247424251462581343568505971813405250063042323218303578245698687001886529376988953423971559861383614914533899038561877453261260648871646225516843649487041374269034015623531417569386186812366714303110736894458526823508767426279193221312768053974718589863954993527751619987896488417876975912260818637413332472729108417365225857027432945625662975472559202541327606877954183568400611590990029846592391744469722123278604357970571889481938824672097880795798764461406399887884704517612743827560186574983838308741660784298647210406715017350808813781958835633655828429621776167391260147468608744809115401008306855754227641496188110999632846762230618639948933240514260447559271705953457345511609792656296630074719321851566030615671099523359657056560328410864769723087086330760444415826226102288806986475262941513571353781511500935122868448050997597441453639705900265262015421116374525247708179219973055709819706898881453299455188918934860387371908348578411075696529382808887832149851276616205794646591937376920479194767180331328798197760967402176861685806981687869862824197607521701379253490827466567445232333033732664091104946698377667627053503596596722726553390544133838301067427793978850270840751683064848280038884393544410734499443290183088043248605456204519760997876633567160616932471220126150463590890588739299595125106057190394844377500250486060091270832575351445229055645263225842049045707935172305236817379015605965701084445394952726788878171981200565080232442784877455454351738322226551426239890096837704518308632022412445448256273552707693375650778209667221498281197165028128316796908523612657514477947849107066577604128183398408925813094109800936594066691554937706101664934842690084571748956466392438428048476861764903655643593325388236368119378266776674043627317295067439602400883551600366891714894753727436487145097311898225760024250413789529880767179984997646282508254776104009665543863160456385915377165592741552776780429959811406493807626273170261593989791481447394821337051058301806952233769002005281423546229190555834007372067349480970385091513499899667818718413051518595132779865254234470441237527664583788591387362244924453476421781167954307807389132652143664474897658164902215955348099530844241165909022666448107134699322395498014758970915525120585138646092875907970318549747239188226671713090462649397268359383504235399454902448021879295891264613624099665174326717459354733026360925795182475819463033958413505076944091041515860927216854296145597725023327361598160303872423229537532842245467944796743504428784982788960011773400348236057963567058699879677486258729599161970037368770374712166224670975385404982710045758058540754782771586255398226672241210965298953497280363455544203123751101255832182292493334764203679691197994694178692660729210101645911495077231198931460977557079998251327968531016082390758611167215322772810190293875380557130798993400561747464955268307552038783062438872215402160796116672670024340478620054124441020462446013827797163612744371992817061393335142275157143467021648747789649814404512502205110004469389748972512828530954541206386524439633111431180388938440197538521684502387400911048847228693328216957669992188785693164121751980654524140620807325894232969992874914767304361145741972003472273510830163478301433026314389328562501828967072369949862707759181968394642249417668337801427355026969471413014663517637037199600174797460727020104936923617179581770826790257034090685232997778248623768027459054952762460872129137377811532194172468764036495418411618170289931182801994230771172925265026574101897318296852616755100830102982092493651681628783434211984056266293602397358946237598225740821654487235057595524284322344657362412018653825396055271813956381011595986939113021770895716177450166388017089243587438160385083465668382263669614543497061978000113316844781120927930774789110578679620908566445350104420082622100074671955410751460698964121100872701755494587671186247129812293710808065733504945216195345003456001431172628723935812875028561998252205268923943840607801612033364874632917391231394674968222231608163148431661814454232308241010340405255218859254662979813767812748346680742487473056930677294763221756791224088168125634420353769161605052389846711609178029510175825112027780199411088754431972588185069082115170908599629197180946058372074255639130808358285804917387616519100553031070247978138750507162679745374308994890522961501554590325783660127502275973702056998671903055382009304663432616553857895780697950884660103681181948300823727217055055853500807966945068757527975952681494583460173876215622222492575519801136158787092456659981913233605869189555005611892737749755037304174585345991527486520979545341241547939701430996730229545069507309170735352537070270754219389805606673847944421683915874172511000080828238514554639449539745539476767511902899289750392000768094920353915243338754233087132988680115059163290169246660455663866450169736135549752933575408618209291173478306899994977709510948188714751061202057258379695700013865426575179948500406271775718534097338445619620778931842174194605497721424977984506473865401841284280822750410023864598732972395154343955165476284674192607207926165645005789950264989034400015067524901934967538655284698671225896547309771348430447062595686778542613617494930501201753741665617492776500433869138616822876662310646122130638802829913839187200973431048364405770069351167456231885985004990115831878272795353940037138567990204284215928557536444466738259823424156041796043557678233077125785424405478948309370294641650935675707724675435545559987882106128100414973192983584530023414937376646531712278817436003193867261329629163995892351844676906922932090670013984721305942050093472245022271770224419322195669598079660089035483508745874985040727287054879725080079696772649589903321849023771177213675548117520290794801813064648893872586421688138366705462474919399469884915540275915159735025735611455117635413021917435677989126369842906489442827799350029411458932989974807242643089493672733503694299363456346926040884539357170730418376135160873968706648055287701859100198778648121929795527934370479226877265757529414324370807951463251391796783810541966746916222718583458009278405257877716613544783824089134007254290336381267001259031149228442239597354622312216399573143395464379990738628919337602496691809691502837412372001394247264392322255602920573466790193231168921921369912784895551409704177431550514487574007894486850147782891668529234398606968654825877379917078814354613943707452375800291475806444538732054309518466428705975648585862314971877247809899346733901352867500078946564541007842184904770235666566775211748477966670443646740779603627473242739279791340790757850103018019027674464006050585999226838294415805613830345683069866124164993862983671642694166967996356360117343821930119142044495914284958962481266953604189063518396310622982357772035195381272489442615332684539238422655160141349987444354765230369503024717509946052632024715653540254749638085380097583139636665523980782220487894051649794941374989213229326677608069269185286726013709641748704030535970427099176439600223185075308411808456761909741086940822800162691140012547832319852677780924750410574779293686184186574318064091246426445165226273926738630390622703209095441450046660915959695020156466836346948914967715077537984105373330243474933141179698509019563717234111497479796672822158791116523787361589126053457828763392943634218187285061409406659703672531352718104112767147226022061150966026589583321623976490004316382019209915929673162089854765205757549104246807899996209283215915779211797076370434908939846764496629067337611275174662780307877634649865686844985045029453401740832494520964917012849054890531387391943840596598453091428750820689845276916770849238148292997435434156834043920594486700078590130940747889111735621877319277473432048569721076105228854427787341129280234150154547630559029255106600901841330820789082014399355815838066559268617808495392381139138285938654158569613079974245702454448027297094935981993116129350486554885687635994717445187204084831808654998141155152400285483242211158178423896069039072754258478602807667738617169447059620547785662361033027729832995143979870736449169195557305586618308486744815935107047232856603362695687104683077041479244679386541406084207729035720178227659138426262990878471427872021024060275394704654497547958273139116424576775709867493145167206574745702113946709256516252491965777014539097561557174523773774917267747804148202719153793230265496404635814660546847629623591916045153177520030053561416132103185460804805504151436534186673724564885512454381243255502618982884231614128290912951237703688258686113940899624029787000800597996150014524051624963341095849763408576719781791042090859753418450941069695643222839451346972419003603240916539249286114049978490545497277045617216968414911375301391281528027276481049267940667225540247367960866577158090112085510492198533773473813380227081298290747152729047624923179351859685705827219243320209218441709982989238224451801661692775630527719984526701604112387455939380480628338982090102084605533942980311093477608434120792041683529822758068343094619099442156301526206661748049779690985128149516817213587213200207911395437214079650978594081576403980121270568259070026220599637711209247506026759377676801028217412559454061284392808224530746759051230323779274836939605459987261068044750995102043022777775127741456978391669023866961669222615468945338948390361175928344842822218882278152284394340063633459520255065377973658452061847976987188169375050495984346543718125987993197089228645553836510213396434815133871267169756850107578482492973694261795152444235417816521660728958862966498724305059709772517020905026174572286472857399237786835799244035262983096964370397225967563737246079096811887645208225819618175426907791906902705595480196903961082449519593970485689223558142611491941711404567392410781046777159835529699106942956568025349827474495934890975536270635058888230993992463906479364918571597274896492538931159451141608163565404920228191759154351172980888837543871727229054992548881174402710457168483993487928227675401408037625707746195865758651331005529506779320772708239599095301506877295568736903891249505352923469785682656747186052772279928960793188363296639063613281435818332372878313378719322800329392805513399054770938238218980163400630973278152164272338189502608666050267745304412591721624637911668313288830799199363971954242016515624839602691599127911767923136921949250171807392800081141393364156427528379133417225486668105651381848888050061048994423992969078535254975956324076224526693866865738700466935500893992016182152909950351407150483909608869664309284594038290242348687951169581756355867322704635458892917627026025947710512488596916759007993243631436507598196743545803041674789450202750811023056200867408077180076741602973777686427807237441261414075377371360189815148136863789970985492489520119236614523973064511245055307432156465541325460343021323940914237362383970567391188905485215385762969844215147970033689413300231621691524323944739445086643353413782302892574914864897079451644971601592337132977336512436621419573453372820165318291115364500314593935401698672014516118812847219986330789344541837305916331406962238817611783832639054005963889727434979526606597615708582370784481464442690912577782339664721197387143425069585160474635186765254030336030332553832209183117568985860779179752297146111881909933735194929685301687711879053225809002829340115426020763289185105700392732190732536186325621396928752884089672974141707941810496636582302666281442179323158162489043359665200927516814554580006757839774842201124386251138803286404247286246672700972852384365710189048178377421546330604539693228871206648432903830771132453299085251857165295695690521794248456631626006239135614324869730009265116651412708396479935530514099924452667380463824571230035944120558198440586341057709136374055637030239868448713197954236330792048860817472681030101348528327957756390375230283984057550610044270063640206861412699439944316268897813156741550219960929321946843415482581178156572313559205736026057267164340442528527639654582796781440439562873649742415567892086793852372971892423786990303161005435561145841061017233834007850120634357774613747108452451739906668923026478544013601987754645502927518335809677391837069799293041364629339338083157100733908971382130752308562836515420837437203869316256675387228217317421936085753610796888877090107102612897442439587037815549969119642841046123512324279280887908207532542133247134944578190998206769367867202475379273001569225425432709767779045972949029657927346542380706498367614199030084468722942665701542962079198152656925061317032882796391835390765713733390649281296640871846386920771017902238172462043969621488124782185071061949319774932433900208851185823896057351532404163899588698897426523280430017336968453991291269112315249781883966647061710525704012147236030023082312654818710775158653569657363713300124216550266146291401385303123602303685961040707532058491129602156049770206309653033665719640407268630714445732404655646117059125489121401201689009709969534379881689341663599761662001804301974668789032197669264851702077507551144439706731519459329889286945993945627982269397240685007445232096286767280419013596855781182119734707241719673008497181429095948729890282069789144041275371835735902417985245517349158457409680041742746738885436755395090145995507676335846250860047092936817801271263674790422331479425441993679533320262960117588994067449429819399761285184114591013041402950581567379966215094515462048820704830726162725972908628058959135220310126865451089780370439271327785595350905170608627395634791386096717637638097994878167124027712076186610775292433269762978323816134450878640662896321396434472127486411128072253951314881106001767581434383675969515495694259926307581293744387773684473980033991752581713173690823162458189391964792922780374051475832094342401394906225936351289821070829307295209381181218632042292025653097832658391120741548428497156770589766143991125512313453085756703297832210932868262811152320422130454448267420567725387647058477444541844692802180471305236443690736475826379593380100524465467693008832173198352088479445875147342748887758715160669958134015532975876566685378950271958532633636474230709605444052677029620121788749199513344945895316258737746116960497783076480756074511728604109425169125377767473787120893797269818931231183941814620586523300412187554178096712741321835088627172131718061338959728724139664712125298148080889570330442288545706845452815740875886469916871067609943965375411875508692106659216181060503180239052447547098769548252648769643032902413490355572729598943969882896096753940538332019796809867442348516822194231038486467234655679820900548598774969283903634200929735061730283552980849724859101210556706245545163178519415440881674931640790613000717432088807142313938449960424739794362149971288821114830417237544345501969665318990415011345056731061196700082866973767184636497830489047361524995307175792713591307902492819434113899730510597183670486082878231471434265754797987420245064301159138475440054147630593134574306196211556690389011400648347251859000028517655011876101897846237386281748301284957287073474222751644585095407953024898644669035169866400160413948710754805059763906298659251438546318888413006921016375953447997303123371243046061270402186917257561082773696075561955163493004023692545757437838535727322342871722911704503929707450509147577758935396952163244646659576704466830245355021560218367538368621898903454711146549129078851096804564458581165853991099939915093252634015298511156375689642349040825896765069446534673700391918085235368659270491968517815652709878212045265819210481684331115302941223752763911248086658076464753709304699290150932672113112846078960885564569326406814415810070175079497241670228850246161310447392190472410159100220556397932435367390760330950208253173476504424944358605639629011133549992455231747237836032877473842198028442696814597626029404220979094586097287866367870227482768724287276586785535046503757145078481613844091519068227481575366346645617804255501221504222919390369095998436010277381481030951961991560599351167469690615437237809271773374678303684091534925355056315830776372887085738622579183627513338684725295394319841016424721200736138784818526991337095821147231645197559691741499463430075379420008074389651972450303374108609051839217361881367753388875194090133878066426541529928513884692838252466781046136567839810130218969527264187588816779414402794014158707780716479276506166314893283121085548336031686203104257000582860421442659248413442170184648015898763698464560178923011944082507857687593927805217901608409819615563646196858554373553262081178119372555275956459149307923247446393479725675690264212778381093627336467416421197572503510864819446778814816975836346129077563287910799415073200111817977049523211937653427756607952277467993166363914289943252029212277115872132670000528169104079984155399448074923474821274535379774325038610430907457513346383274525422063585486104788668907437034425379114133651158778277357843426782785809383228530420078127457441238620843699110480229686468607057504905862473017897549373696631796416926343117367694398470226152379989852320344766922856038401601010994656624024824526665884330729744956614405008980716580522860365119932968293892270801621316971813923820898981175007005069017476918089182597451420194401169860816423806588709641637284292043967350767945202191094282657861861023400771929532023918092246179513441075547648258486687877550881797511132737788313485807399345833091366495766354508545239906287970210539346030457019960205871336049408887593501060538665620635938463556655585796783469069874347833597064608219352356519499172007855413979743637678981354199252305571383093493188479396063251317945955788603075982271658261207644535799667818100676727601030850448731230583098840211733524763250487095309607910974203625487765866533928130030963878690191329559746097464551726037176877049681529723950011325193075060856613842644150236845687285733175610492372890752853289344061696370431228991541150022330557838129853890660613527948487577845079928200391253009961296886667901340181237998247871070764754771364943827030763637822767180697223440072594268510733045218371349902338688733989794487443214494368249233776968180005614199522963365990399557281373037108965636284760798755545184438782014391266334298781765286005623777406394703898628263201888937740493636982088284018230880812817027394452931733410496712923959431909891673387902898478635171163177585299723938238113795344444364974969535321877904013085742102830204769418171066344550394749136094084186719110062274823641579003867220487231956311887174367431455062184950376721533699794681393775486670646667927183737533149613531590267720694857352199792499403990434260495053761635334400958576862063868519730407333757966278064057663695411937181630641756019619888235755967031239366064477333176248008703191552274362214559580750487363965387581873386111382367471614755727672021827849661209709475197478581156999577873432364366830037196845636753462684313256532886204003859580698957781255899839713977759760299977463279760573016284691062814677391483766048624611811714228132569006523150700498230563913361815287164652336889074835906444498041391042052307574947707848146100151554684341345990652039019055628548910570756754720283294167138007096652552930239328813024866252344712893649943413056196917536928326427229232356373893513131121353704323679395011743114548182029792983401731388612537184222609038505036440735490750633749193232939504061775062300038627656488364753324566863495147217189734183891905265503696709150942270211185814476985517509410809622689113990280274975418315815971889452174165230216263971423993751475716752354450233945801559926656426087294290674640102319716640588777157734161895948598297916327175386231364990877456256981954347776070239312552163349522696426117811916248975486239061259811204210719247402795788653143282901383858093538437326918938768612854550992985138298303551338310821846999818226693605296967177346233258812152342748091690011643894954881101996947670873862391051967367408382358182828280105979838770379887005600259062197981120620579554376567714600584682528579899330369084827435515563919506156482714950602907269260136687323300842069345168781877656229375895489311143947540382571814311506490104942277580820395236264662171971476768373844929553279699908470045606729310586638142875198076839475581600910150050728047715985180514453977460717646676524914188046628597736734167559327855316388228839795561695879535614902942546719658433230183046671843242327293118482861456590283385339707692869769435735844089732442750709809678372860572690090212133390800567031911789977437733990618806181721844419071083593811884965994041975359765201435979515028546662829789591160246583573173420594185385268707121198257314710795989278411752002717346141298192659043463798543230314161959694025183557327914252202717533782980634769153840264585839696824856449296852365893757670764316128510044265715708246737073694373238974708567679327221651688880227673413327820233873377645995456735131492579677057028178118208489791682460100963879341564006921733570974928930254421831678830278253663142027731673976655926224781871888696897283890295699387727526583865364260646082688858544352424596733338505496456472784860540640443991475409248857969182824546927297427897260860954244840072778419433995004387781858141610953932859537462116406161495077015516360135643093305077859694279266481460124212719980446465571530770731407590309459130967481011643804081960761485837418964681170867409120452157639164890899439245426057116406063700898247558292656850758818657116053156334473895451030991610640018070942529947083734602176875269993717661492521757949471029904437438484379533474758330151667808018605991261622977179336375622712436748032475529133466104226224596522237686799487739188230955261745889055843777770224289697630456297612424963417091544989652646153309102506938562275219170436912550444653174424564814356581030112597714694463805122167272206454574536365900362576548247213745642976863371052259040241505075646098092686916096898726299186645144071854444384699329564906881185422038635228176943424941455413219029865196149326170203340055113892251428313856326775789719388937029597174375832531343939809523535837787648267068358062641634026953171163849894505743833727373941519752294469547333139833386840186862895090566593467531846093807902593005591072889718823343021537845951667788747541059688659745023144478617703253991601391676208539427428285429526621598606411192497150976344350418908934242618202108465918233546111933364420558680615212208241610362903457801978327872962415608975529078238239468802654692235672746088765998345472643085536308450036273371478268620516052157562338009961785942545104738518084557615399245737758239581379779067199197444393429350295804744334742015766141579644695645075829593082957059665560951176090009575615362466528825750617755845114262843070321656481101043839723387173118766441899936568223489496849514933633994677512501236066557805701096323898636934396564498595986319436308018841205405789637300518283970425493654794226902568913265381132832439938289616839928891417127249536958469694505081409711117927142047577350815865615329503591145956209375665740773216773601673482120047188122878111714178368402557385714606191513002487334441214460536326136931751031517613959868823622852184616048481378291540830446523237254702637218615798563813852693661920156330018599536235064040983606349459223018218002783190257575046404529562463478247444756041624612343189522582545089759100186425696335779563637600035802747308150562259498305135737749811698907003382742446429357153772881731643314993450832093240934934040215000640723993909295403153287506994568784368750561223470881923187361895127323024721461315155114209071259446040756842225501984784520225106381702517604829000368118945808922592277398190626327267960102929045719532359132610460378306788391737731097889220962458879782563420112272212282028121492957969994368765748616413905065863655064509790101908043486374785904964197639130664278243388411116543985923631252324382645206586568774034025509390529092901256746998652977315628238097803109079187833233075923527607965311905480694068444342999238914203598547450621014252787893815257362562617558063701560135716940663460883015733159004407460677038629616554632322228838066588721226066080472988509336816017780329390367473299954370251437951164386986087305948248168113478527228341276345715469932466344776550622287421730357139816767155033917567146420460103224150856103508461381911651052015753928529194180868188604433799589011764002593660477020993962690394054437583279714492437105599740987866127964554309314612540752176543630189216915284810907264885928786893933131375242207990210566823693217771788035757045103472570107273187010922432464210819530677046976219044058849354009066984449938630837509614449670031021377908216137533079898440463477619847197918168512356033819247410519430494225538562804065618894924814945607434878956585050788247970733607446034577544047489871450591242900489690709195685413174590392228661277880923850749213490961663994254071908444249408775549431134840973816968904321582732324050724231848111372578029684864466156335048991594409718368741178246129547278685998332118098149804239879640419855931839227982422019453594568841085986830876782921128230865461247370300986168571312658149726976952246384681574164271262470909100074972269046234996521490971541108100264508778491349739201335434502540445161489412349587233899594239553005302739412628448189118550061343289181016363317491222621481895025192203743986930394901597662394444438419130343644302668111979976983259939498360251069500533850640452525053326993815376148680338749683840327872833809051700516760427093122909539743720274679763121468902999038589790584573247928645410395941887727757059638825297845296656018781183271951060836121376387612255369084825521296280879847197665260100150401098123256717563809213686978974348559605701376109566571926401623996413761593985030720971234378976770807382187669293657748913370827642225759112042112248724208862261997090465170944137317451561399163885784483963320519894184718576300995961294442079845793213882653681780010404233774280774113784324530578114226388621480213431832880090876754343049508934398745508226865297114319157746789214167727287552703093692356151853017552548863778914007092122693178101149874833800296687748851389146884080628082566186679077819280684674023505590571966627384703473657351150542553035245396283436852492040664118149860166095833911111264189622556485398567009392286444102299869930804628827283054493593725313372628834421993930121095473363887423192083842674344099561074037505837697526295911620688849841779057891951946650612720714166581374173714962944296065095033886212316376558380643769216119230016915171553144290407864605465406474393378164946687193175402980849012380112723902008077728377792250363689235474628480621828704834633181803884655772773911404072138713981022414980229053332973404523391709846140726331750055260901272457997696433617446364805476869810677178241104513947350331892280446803647917319862481619690171934300700700643173300007938476191609406678590531294781802412519493138740503223071045188640360688123389063479523309462339309296098186685801787001869201317838952536347095923118973086937252432571482433101469312094832115433447928601579883440537378635737185921693996802289231127212264926944859679589284994277947614983606122364461393259411722799057224544727909452995626263767416571688209302807407887226957735938952342217620707678776267665124647613370487316648625455910207194600234968503763005703885959860691857809538252203422272041860094693058953932485351272181299018238166940589003511070007557116122935079845343058009616518018688957536686557008439281501299027241076463277879706084480258854140970314706605987900010453469512539300841680989569077732945731934527530530379504999345174621332168017783028511170111517849865859111200601632445852214077847204579700966174935098346470964673574006842314251248043106321129130508139683032018922825845171775352692522376383619163449230824584290055546466121219585657494012243845687243277856094758312525158996505034805441977151245171607678736971410820910154467587573980716427366702604019527912188740810366403503422315461535614033881213078767180342477259643707500792730400885276191514912880613644250821013923466284404103930218820817672750111419920008884153045706927960383583619516188365732347222446352408146870532621718527020147628178745155121067862936197795083447542443519661796036927860035351929250923438055941236994037044992819167608122130122911862767420938537295399609735321452533954808872775106516277497624500727107494920266628510624087115337370845957076265085475148108758550703889634430645489901218923625277765933458519902612800306926845233343773047271909874756892020983390088341235626913536977755606949483609024638681483822528842079545143359843114547332605626365819091616778168460394726505541939360084094488027180011962151611299593923067506814235395188759205361213718070991709362611630882342071965773092866294049636512386407524266736487524926806327646407234645213451471166725593935447539184704803802890924971856677558433762277481601226909683276641258006252134222099531532345970205744442831310072032048509186410217571105697031371046289605025622186566108161803543860858130089398891937574240344017723245927092687744246333886054889097030241396706063063748817473713824217034462187696142117377417325203326803240740692663068873349505452862123324268587969938798665015801074309085102801196021858283754974110451644690356745796554153321886142909137247134894439299875018774336227032860096263173859556295105699033026887334439858295823477302591385106641228916174214810575152705776521845594442708458277380409491820197444315510065891795892224748107807671753993660005478368045000390891296525207727710787745880044328928826113501366829066289417463174033812622485856103882159563564478882915865785687599903747253033490906873151206554605614834869694185412041571495573495014996553679565043110794761218736877704229121191640552923892849746419303352768362503568396238097254827653007378122878274932998069783263847532367983251215406209541078838254581344259317444198824285576076345468281537681346262319627665098289187999884065690401862441625296894396210486598531979691999546225527786663560943600066404982867628169503340816662190370572241794025373366227186010327156578371178969487112831812004988008279438793465071485903863756570974567194742449233340824408593173986910691103046345382782433362010773226325572863735819919972279869054501544914861635310368256836585240664995225196930660886387666672610695898958575215089268269017942818710144007109372332576992486056849424202338639736221357231762635930470818339420841461840485710448975490397878844522428312055134049716483716628748243980415765324709003764469509062298270743394899318762733689354864238834127654980445740629996038079678525195261184328700552870604097272055285706796522803917682353151310222407789370880183956191359622589294092854046065566457635409384637706763454137981531687749800675575342676724625704512098180895693790152674291050591845190325495253062538371731731220980454332310329928032072864083674326836802262723138125530008915770514585381036985945287978463362465984043123192316509335183361122037026044594329179385480868885053123728920837994368354165299473368872162279688384152726329067232850784252026839309516361357194918226960398584549935562050612525789127560982204129786424376519795358527532728299929448955770513816213389745274658531743310097934782966794652996639492692188944290025656978501820309800505552450468385252163789395273949719024363125116292148124598983146576624861318491022453660165589335636788930169906629813522185587100099331211461329195731458035064215229264885640175165068215853887668024238426357664122331279253801850590974707518880101718429278758183942910943600326584879672539337352753533520802829442562420861394195119066206453784090043415737149200644835151050981806184870034719531114627557650750192154437354463278186294051232966096645772941521625042905990718473555428143661920605792942421854680629601209463084128780160491291449679306577662501776014232641790122683322039719942995664917783959008783852853261865924954264602757101251308523235607800734954647488147790018339041467607603414751465263489590743347594415409542234766116981368603939227458293053990882383795973607047982363340779178187071226357163527548798794577058709786862626957942201982139275368710225809824634578143770760568165318785541698311283170528309453066305163129813076339038250741599336823608907199368442258939126300407353303112476976986790166638434838092891211051988132289872422882265734923064974708028708345890703273528373311814321780817118307359453297576604433622961875187328416201541342935329660955710994314552903249718591551012522572640485634169077816319226208732307350813824137971675197909337837088045837373837703632039364777846908817927572197833960010061500903770233499509244145553901451884148445527452192850812200829163551103169441095218605234575710508086437556651131263088944094985938771386247962053312701206330327618378550820817392694467915730648053796468416115276721661538364560298336222526689657732006954736961739865637491443958915266516756929833895163821996488054008253262666460052730940727918652243987916238461082573286307996513536190886572112359396473160783586909005445826551648882479126414967777400552923814084871841023543089910227476940465928284338829390572549596646715442745329472105303918104554723545463103421976581551113982764576436160220199333437137124130881249016174385013185838888539290375553786411343020342785303019751252916138911376936549799535659235788510043911317336129797717382351360972065754965188421063950440955666522892104269133064467938303128380591732131789021042191138570770755980351690214980882915805766831634280728646157194774187611792181146490200935017164306247633860906237518007487859214000887112577180594261037634301399988052510702475581329983724597556779666784192959625101501874813865064497219096339006255638219916044565389216220667696731939655451620347774790203959339833957806897901772420693540971789094512536673989496124640211522688415213269784052764734648561908485281245212144741530918491853754359370661024617644927325137850950783047596722953207832281573917350665758046198470688589860535208141545973504469065187397188773574848786130105049405491380342317326587576888638434350817140639223536535747017636219847915407347064162504530664174917816423943949290740246875400749483206911139630032403202087260424095845238610312765070926737806917700088429237988266623793501404986099429256120499779638248490280276277828471647444087009591026739232264091846227561640964248137006478340129890287153005352438179735832588352541641659993567881844624173552315976205065667615958711336635262982307347588847852267324892201630262556162783218660287059536028257750739264089934881274761007324455708951920770499067772051088631060472131099640331332665016791621028338212440662847914126291024121376005417714673339297980520979831255826278927766406270875225554235464209693928472122922566845910940906257825486081347992050531176229916356474122811127892672647630593847092221997480363197682072808881734896309959775828575372117501761228973102644810271062689344629414129588657318196929474003323372388364354027577266895032339273747575003078183579672810585459122710644009965069868332374598059905596653146441742252263168291321449013333536565967228963823652345806611487073678291901778244522184383548592953424389010693893386890306227265406460466798543409321646300952726162420674543239126786289976778194249995065677142854930826198590849436511722160046410127691270649586123681440552766214701714164039134055888520682307169549136797776221454992312037553771437204698953561456761006102530064528128795697092250429857234509407232043362190294055756580147565842893774301153179669769157442600462288174777351186139796964129355391007801460292879038306592379581172536957799905749517642523617422552812767170816069992048145755274276931555105148151769443485011661749436171805250747753818554925121041431643532047684598057477211080848159498568586183165674321958984510809613492617195301814414429568704949520132490436153346146183501192077094768757963658726233838725394397576045628653973374910410405601569274923635029892966126324813805973870192257713311876097595319188993515351774681548055952140781292444621928974352552945314476098566930724842769959859060582668755848004509689811864808618310579119048828617711068357699739970713004520162428125316579489945900020260333029367027355372436121604060197768569999231059624227345825717085673315230681987591900527368135013813430342009008369513752084127688069744521469230173576636038282878805231033250508721106821999108330342690196494643850861143237287920989463567529163863556651450503526489805487682863402336329703286365066631761823879027252899631477004743559081398716171920442904149692370654236839416010682265599421193997694162293964287619902482960973886839007710752020664982714992752872021088785912661484434447177243921587147356347791230937597274746555935652073088424373300300146880480300753459605199155616735729324290515829645960796518931932569501720151601777122630422646540145067142418737201227984407108479172102975748831748608203783158104061606075084207276851153566255392863415371379606940617209053031332306249372041679454813386957370155111335838508712491290128109911472232096351365912647439800351979887618550709629913371903757003579913752218385287054364356444749648379302054499232357224951355322331736839400614155158856173296062637794999633638466628629145300390315089126522768106098296085113774407315169071650654987791368518259429485458453146415069847696875539083910041303697130805690486681006440230670091616176885591158560257778179539933143526886858620894391605235342660811310279967197757930995756342636204337389182252649164657406687357133569336324952754247195352287704085088257366984557471178700904226375978474959059967075777971212004767316935402392872339319074796420375650996167798574735337915828186079024188455322931241267350824902284466137463261307368316222809793219148617901225742254661648363827608177188701836444155558055095348465390245745508215798738382559382745852279761395067087915337964486992754830895976023100273370852902328863397038507029362970365160636362281688029069304526615943593107679945664912415835912468454823675784513722734558809395156276332730587837097519301567020289752983367595202301638999973539638838244954431968941754329158296914497429194672197699267689407519224200918861821882430675887344784201601625346131766037124897187287890439076798776818069191249000006941461842501483460212806966795718919880376929236878526036026034460031222453855725011346204218302032977587800403858631560202191038213629270752084297868760535175094536170723192814472921445840664973173437439788736458239401566561540534929639463132649266922092704750934208760809437278016672411358745149297606149493290664131673710622080643532767571936936502098875173951394315228736780468736212496773924141591030216015782022492781296405542595875485272727771503390696228423405989771683845941770545003469934539848993119728718475907660197072735575543628081054244647912933174207172779427431829635772432246172813289366446313082258130614213852741469170438080782929035101169753000148109549889413860951357161696314564369636276620315592584552252440885275034383623337993968884050079575178188974927110417785515493447529537728355866842451751900551227167577736750850179872885060925580069798302968523073556308343501495767283975023060101542353036738725628707569146339213259530487898204461301839040509719309598934447887370990368103142659034113371812536629832831815124878318330161631337053806710678523769429150591457672403324449402735328050450689820325439506928251741028513090870538866341372334895535389911572251679378884920675298745256430075625877014619322344311813513343224336440130444123303789371056703388738418670875709179775465090461273513331273647268262245033344389118129308382281406930271006837178798427621569347422039283166848988080135247907472948544877570618890309718883083092070603731275962841887901060742810786444436311136035705345185719839472425520793980373394907262167787015741765985305918412282302003313294902756882758868921345354865745565627582392843420618219714216413552304284357798652811615232723759248464219246656462682355148533840143776155429333978981303885940137116120829884995186910368849852782658950054426638446413795280933446944784224660107642540841386220264720853113239145893639657302234605028008407370635773139717582823414544989983340275056746264954889518728589321512322820248844840165682053117593119462858257496808614900118795102961400797171234447640189849351210466642506754036655293498082287059123504843463776048535601275517403193251014978194449386880861329482807636158496896154894790722973300121899952660880406796223119332531478973343948845725958408698071786969150942403403728655347754004417925025181346831467071301564842976545941238365819598392873499927760832027228388304484016004720524991101808847382087251053890233709367127383432807819345100232264765610270180909479640442702447698830641160462760079227312081673680796399617098819907880134939985874577787080509333422328081127625582449588163341741966459554419992435057572979665193949625454060919201831582001278523948464582630321970660877033413424152882441154542122315153074461788110708082097107165099749359399360664944878427780593296666911581494167004824223783276821992459508867104364559120132994369789516562888310401013849858850887291235520387953268068307470951409024292483068291576693390198088922617942979431986538898630927485173323935596107037335376552814223769727804995677338228605733048025265369107687531145103766115245797486675985265234769309164910991762272313726506476353944789926848435863070960729490350361217406310165556224248020904365773811175287326749022227627128713353617446438598793993443791768062001243702398159948018749367931593469252346962194094045368646095824115802976802045284722593417270539821926290779959477505451784556961406647402954824225456566257209234083935224990087887683757369282714966137305824591387663332554458838280999111753172986252867568542613545763405381195932433541811318890569082331631554065236055550029097041393088040932855337307625163259090787282117056913493428476571271776868254185834842243327858517108385849193326886287959277731302469981364017927424347203889284383163352826598227793387340236299162492622865314190192299482477102257541906811337180150128566168218181176067927847581515273328665972980016860193113533604228855536156789002869782662067747790263269643386769964322036816055560845169016672494795758757333858399702578082293122256533516846211857925030935964844556952279559992467087972088920821975496359287431069159545351855282676798327264550575643287070960741291265702184322711064461608254364959645378001068948875420921847599760064061691499851570928218056141985762118025200229002824908110463261092712071031806704569167431136473561191371592981438542595889965454137625998410997354574066611719238795917774615188614787103250827942633301114217798525912519074246344339516072162164717112572755745737290190589513352191925794292631529519202378288859469025540149706052871286618039979443195421327823387181594627288115090686900553736152817980104541523176899814995612203212542915340435058231883440020557912325779176636107387739221223716060045213150754675160520381123032406641214479840664338398926066959750852943226144540719647491509584082687020810910875330987680347679098254128186803842929214014314389188130278612888646842724663897053734447911680264176301946566788399781290249390065236972523381852217026688436841119380614124470939316184700337686239251227786690860914322180732363843844514761460042514530982122640090962127897670773919823076354381051775663458568295179523421213034144255815936831569708871782733232559401672484849152358101888003252721201687725747672309974262996089074733165453822874730345854293744972701141657406206379222032312832420085917193607627493936930255281873979042504999738218703636594419147672800526614842990873621166945727873199938651714626528414903186389720187565059048946379549747626022442780394981863312002951631716863186439846240828375190967027026696067361811811984513643791080191355974178381568312928554111349542487949305770746884073246808757016103740772252066467069800477575865563450671265644834022286105405061901979258100782133318941263523876979405500990499398647841215555696301569770051898862510141011272025583612167551590218297543039200261811747855514606762981943827254703400259070584324127020930129005890103970693376122070941936773204341022534650707905380756917404697120592925605160485984612248056129534525832251391230280054199691265313228667562948123288230906467871840084014972783365743373900462614527591654677754779758302650681789385188859371251347803409789008672381763847502594965487101135019915359373523466452372781198051227131785975174716741407658650531079994253965998798817705150127626031179147307680966407615971920690013502038091499984589481808771031565417897719940184881010506062873774163687639951949672299033272449998359728635471986689620881773553719883464859324147106870842899705076934341359041614653102113563549034668590162029221643867903251890396897084118339895493271542962204669443938396387062021010089321751852274807204643308147864896181604229032252977644667609835399322627640275461220761410979611546055905913927647799180275179327687800231522644932324051866928324426215683432693211113948043572432236821633049448359570997576404834164608907365414431964479553886780723361572347470034985217381513046551956285422435121451867344587273435698061344546787424633317903215077349566895206485872827538353334751643155288222128884575079132236592430263574922330049357587361429512315918435868287391492132163823828613668947504800332709216402242550555611170692715672028309696116626712715477278971810346825876539595117583335023192289774787603555724950204935442128611743789103249557856695802810561101546682836891351693697069298048056811952488886194123814053095991683880676599197605909433733083279627004401623292445420344596918358996935643147108902983022375196793847023913180532431953631649891416749515618278069771067393350175912671837963640751911166804016442294352711968193076692046378944691949395178545913244125223342694318856186141529704735992885712876530352248984648910491650290307919681942790356200538912900618757027299721938524633362644780221412927131086255282643987808491383516997558391988797232037908424307493217819345716918528142515834921041357148773044926295585320836912791438709541114754833363266755453707216390558151761163242808936486670849464268696382774144762436608325840221779329159313650673281233523244768970502148773707918788734866120794758763849684859980386656611168202594073370439116316119969229978934263769455654764788020021968735182238064541391833763028418032309073662868565465137347172235051012175071224612331298164533488522210138332974958613203595348825711796231680469536092833432956888192349129158264499646878990209471500404504855337669609841266368580057030274826720856199372713865958693551296262306695321314738392053501876169330980728498354048549450079366221276572133260968947483335119465414131470886570480535203786502251264787598714883475050737031835488187781825730573285561100419087825262577192069175659056268161320397586085550654742975506060537387053896271169709675578435946299855343242961146567993508738586951189764954256531859785855587006440521891012922436596053989061851924327113879262401069408213049611846254669095431971806133569758710304756297558878306620982122364673779834218187563450064286141828017031165059422958341507813921364271820390848336411367877408525088878366802853033467149702599941646995904041460804281857557397424117150817271260022952512012153328150289516112879980147086505227944818964593763749172610285249854940342887630858746325696896178622804361228337448371820560655053774653297408456555642189961168658494697592382289746709552180178409390738433114663587010055389593182009047432270856681794757235858457354627694454486081490606318393486889818072362652907606769984394400849466295650526986183208357892295976303620744212098235032639521976319560628444084867896927077361364835761495418456724094826078383756051260671025032050179221211397282220906695131762712143493903647058479337139392762296787669978780907508562394819672934477245368566201683820794842518589446574411369494990020953866174124451514715978774606098107171120305048148212897709542591296661244033359994772692713781036620294178514943432066052222738623290529730871747348011839605454808877694072945528126000694017544209727296087366780796511319945552831101505162440157764402883240684402047502530238741311832922811847334167476665003497697699141717567280787690140264430270349501978855729138907509322557929849723744047801384126590813807751321036116519978111388179758862523329602062727143687417131891238100637164761967569890028631610835632100589021684981849593976770961596830959537838257803440672746421530040900420148835938501297821790149062425978852369256104843034734685343723658555415201499078311276210462651258450729123692773789646971321147482525235709530826681373175980613599651557565415590872302857479102565885452712307275107816594578034567031857159968857226370479941824246965447933958687640368354380399848593130973227100638508864264971535831138082669663299257057324561142154829137765714138804018730790022785134021244921492550239010928496282038099149812280446439255135497795239528953705715903572839874833937450180685312836997964159063510512899065388056747898744849470578868287880411365066581173514435826810125068183031105222501598203529851573644035241543902664154147502715280143578016253308263473660799974197367236275805018014513478518588957366002684665931193744927203077057982988556028805857086239488890125226141942613753202719570693825443460654866518181064805520433174091557631452646452170807033968688727277337034555236172104730539417858468136506399478713046806069089960906693340176776706412026287227975883134031596190460583826977623311680380578492063163675087711278977568997821691900432399669795679925194244803286622371621356628737110010382583590460603590804519696813245351231140933109787718103983621362606235349513331266513945283870600597875733582128417710863725500514021611555566988300541769882723723812489291112767445897949994421197480995560255385309860505050708463644762004556634938980861467136197731226886140595044821139348898983218588905083051044011209594406791328938231499759325624199859820803956008208390606777845010472609616719627559851328097122449504803264875376308220306462913409503893556115749588428283481331567151151779117534098140803437129317232653175206703787156016469615579922293192980581345962707347733702378905625862998267999062607421308964198930637070308492884980849265077570217973764524696563430018378178202782954991660542091329578470532689133632590242132812750988576102120932036767118101705495307594687363113443073740929125015765488817554237453270757238314454119801373586841209644775191912914095776228346724974860721722078026683636924285874808359765446344727039440773115608625005942990651266013666509275894327981605600062254605798019040573720448180684458593578614417796156536713623274091478296561983865964211394812967892537038412152463829580669259346046174501504947496904961197681266978201935023175255807270377640268796161207634480885816146715811898901166902719656057793542459712847046635171330871832048170655349179349375519777381728299820929638056563234043198307954191881389943195086144535831731843126130219846495013325992405428689367690974034626574232190291661888561477191608432794536235190730366002941108814126616092015576647202266411062903998836905720985104874801778880680633903801570887801438598187419260049848763801151662776823913128601094850024265250349994767040408856512384111591928134090127536903217229651861649899665931554776464778723910137319803188123222275738183864543109995590710593902800458020881058115612177642759060716578232627748673468590070597977422759813412397109033525802082531211811066229763638438410260352172158818257746573471730397674118995742028531647740511663662962381621786968227069456344111736817285670057768379479319594032206890515468167368896883804858340367202413629600865136666461164268563852345570238119220111665203960499689133205250541913601722987693305168585006588337283968403249530713579581646783198678745269621181659161579976462396141704413279912662867244705845014931600655630075345116107849934281262914474487751863204438593134307922895387769799138148898649537669992093438372517898801993868415837451633253812724085399426860726098452817949683611654045747192340559322431165096869700946838109274274757236284151476696249256148028296618786735615251133703279135849374984638556038639000348585080654520882456928926914066968683370062175096791204122182686407532812372666951001199545513157320363128450169796561837516651750150125254455867562250452721864605833247522358655012871533844991570514663468024194170007344289431417675411457888606237477342723487367796221114069352554254888992409952426171884483887664070519709639325959772967830214845786589270977793558455544864722835114642841205724882124590124336180786238714728757855783304480881776506564595427989919995935606915746545357184573872085581937569065770852831570481393386461328735531723747287536562366109939395505773018200988456873047846974091154359269963883279630373197824186956761568360565127056047806487293279158704353469455744541940464776337324302694963498893218384100758843641198559055296212251451725841718344972518920406250880931692470419011651815026956609969811391752429848640712191367219485662507334527291279648482069959463988093273773494328202064877996720975507754999682214106069366167363736075132385402081866029452135524905612346331375564347592940589953402135860030802810978493540184503754519974305932380303071765548906651160716346348886071863910476650096929235905981903935813708967557896695391928678692534084256103746124816307174172818818391256128462000785805672188696100505060584380041521921975764395675537418555684511677342358934876322252732929679621559214406663953541132530801351579398517934482554757764100250848956253857780002865071169161140473995539890989398110150579081678864373890890813489121845592504531857151009235480644109219801957356357673507238210634233766835035766596894257588393743884097421854607764156244508139364047452484684953022270117946468804404194236444539744138755349686593230693161334313164527071846408118291507444701563038772689407036702212513127203537878940240449355385410398818709050716909446819142558456200673215505722540521246519470909126912903386623692359642947227695489823140793489487840360030999494844723803252251802461619523921477138437835088086026121121006976327840084700156940146197686043426477491489169007252186130484857735066714234393696853574427674420425535923161707194882593757368767895418108530541869762151855388309823534676132896107160391408218705379005482062457169831423923124880402028978160338567365425734439188150025093658352106802643634832135805751728194660321233006369816943979887238395336749428732799365545565952005782311678329979216348444292525128593479274266851416635928585747211849557360460515076317056995700959335157407651369513372225605435512926944612418182978547812742455727662724379312049795787921661854580466602407352756227762376621356789606106913443717902673407312759537171996477690803009172356224679258498721008283778369548930916450545018727900708023667395666879126168919949957335056166239030716880894003228940267995804623858252265588533745364600327115631519847652263426149535350394690935534916711013789925492506320784804199846483602424583549368846290622827244101234241036693065409939528275522286393653509171312894313661693546131457571106887993531215971563825211279713745245903051845014730386538833451938131928960289068798511103755984212433880485621765586551602629379726525054175399303805622288452437376359139871607395307366540898040099128161920683727798035011129611947902025173857970647919300938022589330434770704659435249697481848339287425325340032424720377681619435822628646029537568583176193070307195239544304925995998068268597175252197805530330455837745427288647190133233307721121131079571991093023356147436964152614189047106374325654815986652629737169047122386532597600479260318817550593436819470319358669152352197331549965790423066015304422450314881881357323629134378721421647468588755229894404518135382813249417623916125961428503528492208438960107052429214733663497560970817326801520061187909584438804002137325039643187807690404580149557330088717525752800370424945924187709592484148408567893333652445539196773307370880551512228369223793671078521454571786293802406286679609096917984323676718040037816576813349495661382319810589683659476652763075214179573528291621697036719211516600506989849730539015156373721498937456712400052672001125814354969566807731641917401303829755061595631046354559556449487085135043364870088877498185210423294909807711256439640556252958601949390368974595243979959410266146109619178218889720766678231398713868836339201962022493748088378036808425523054277764605709953760268311870150371882807997055108405363847794354299647934447115411412178879664895714826869049852854850176269898022537973651442712679606819481114465189803191704977199353485731207949231358468949436210171938298394267125618396501152490838835812563840324862017636079278915808695125606953488804659477121999297611204095779001148508244877706898951633410023502405697952883553640591998626831168149553003737539972046256675408464403634192365381713896363413170327178731025203483781070666719760533176836920592782635083495164685590176956903994085565561200780112781281614699528676531011884762811451897940626539597088605985606608748023438981473632574186936352027459899073655778262403069220224285614856581300405750444097833229193588444294368897358469030059926697240266483330625976233873515699836861434748136863792470638042149797193640396636719644949686572891011050772997591815225106988063849069566372194783605186194029580672867807140819760550431964090267706626733960566159985086071749463675805650301669761463300014925208620016094826034085044647529124547445437087925498899396955188885667653668337444616526276791101969314633049161728299748194624232453788988500676843151484131831888466339520931828569563736684966646071775737148302984933300633195204399899580209695080247591454527257819747320423228750786132923979874261875442747649987899283402320421292272420798421175545254500875529032865470642884604178246044212503977846535198486461869311734147403835136530074678394057229737641142131960487112880838477249738333522347391918508404540668194672012396771400433719792268837934467757916165058195710514167965682007219744714842281428406818526887023368693813620586520331940972161486957536670701819629124951400212552015104053283775268937402962030445318069635438285583263055789189041636510645883597745718624185911007980323101202037188514100506294019703012266113069940078690740040575996065985056691838475356261553020736141387231747949771803419993964352048428687324194847770894688779589824612340901185397285184225753027277393237112770050216215382043018992360269499247644189542196739476933394448314665803337122517586360183773615351244916093070366296689494982997406630492260512064330396966439935846536044083108496344266051001974443345542125110374009552310835351813610449676346182007990324561391868714388118834412620649080352688655287269633675096352890317485234684426397626433320765130076424835607813707738656977929397060372999525413212473562985183056309497886094900583568685743960136052935109064498606854136407530980061580806516093392074802690309424043154420539479730791727784316273360789952173355562985659327201227260655660448445426808468443627714379528153750570971439360653401208252897141180746648483587564185771594928141021041792723006519387889521714153978315776648535936345002032256247332020470443877047139489740639968798286115619911914391956851234357703351158700444029390018853197802903050759862541993601093604498462155417340203977398205198663335796814220998392441667475205576478207708409209314462348534683316370360795460482494034893814360932360622322247866474645168984299813092667713879916601050508824678252689953201929725701054617552580503157297939466115610092759602932219611561979179437467400265619248004942969532131874866954820920418497392774593003060883685733398550139523997206615200429932992885460257260519389975951791238069413802935047752402858475138163576381190351264765607508180118441086139339610047173710065645816113956374347182396677823176445781447277613573276380749554143954627612084630677430082972432023894585726997258470121419659403326094292007952983826317859535628628702463993008069456059163929992551743466843611951594738461014573286092064606293854317696650374951610631849776546749754350345066365092375882241404809794530326863334676713480035651920722827505432961801071978638290259461169721430549120285621107262830786825445436012548724265545567325773880710414169572843136031701219601776308959391373771159165509968502556955882439721444086014694323901604417267706001557634812190864215931665873744451379238821270676499726376320960680649538383075942955077085834062694293509033350777707743963040062813540381849713042651433358567078584512435830805681366134915631560483704230428349329300244131624166751097009340238639190359964947008849455969104766183153095780877310456041394989737159630569584793468658343120505225648925205170200573905544831167561265297531986366239853443337437558889950462284139489507343472915517224044179222368514543426981628007758823560424959421969166386730759522325913311247938593372741057056979344897075418001857865039825320970157108485725737791715843335480824090561379264334523826381436166999830768921161230223351012589228005628185597521819766938212572654353129844008972174398087125023492739727184460660725287847435118638000336037755544203766581156086228264828571507490525523717780824566718034433799194643068928694010206075576884646275993659526273518850486298958584297936297667146230997464935220058582984149576691361924379533295092791811997019186569504392439713753764678943514301157367625660350060178523966701892408788375820391504898094801130724829503116255908156344773116203015847551190419511508397717576211859194147780413764059062355421933975011200114555792861847171629468670011197199452997165054004687206979973209820321424664019139444944180091883422223017105274574165006036970095742976484777833387523144958926825276031120921335459188354918268935803747868115596024169509572730735121478383087336528652183373912290237545712676852622973349598615157576790843249156162415801677882280709267056007109960024945728823785043606533337882793463119416227411838948109621714120799371061986497934444149808922188875410221785834657466187921025950846157062292894712605439771677026358551803768306113167410439088225610639852840279083076597617619114074742897242397025966900011716893764274051865490263932513555526380407094736718417468756424271789144112470942156049640445833781020419945331089251553149945220619156794215637315406306337997282550714876255137711930024543659121605965357934088788718111652942210481221135101520178646172397942923890406810808261448479214598190378339763734671887015853814314981167508661840192369196327392870464620518566624834323971987853557649292585229318512080433841507459880386037509004033697981988627957339882450043924337829763555413906561535366198766125133755920241379236207762105100516378893653479807474946369795749382454607249250736803627747003650948430783195135129907343558828060974508355978957566520595104294698260229653011020169992078990663524436373966831879395773683475418534982631798352634994652519106950731372941744806292811440791906417267057290200407593593781351975458124388467929252976435922715826755696354450849001482493929304111721820887853068423337298326095874194531672171045115653557621567802827407669066543077864235731744806231444552914172213918759041480155356303965129616620925049983711627312308260803616844838286853195790580343114226048387608049600530027229579789347949674000883688051341460570632019458304320210031664075261389257107921569320458535321648832608607686089583470536760190614749402789096724322096080008159453068040650125519083537899132520338956522490431367248911067903725249159902909759823929365604671275330315540389675670578955502494689546012411861246347879928669260318171112516203008694435554278830738370577522532130866512649153696905746910525392696571910770800368047213914604297741284574397537428765277223199455795970121173396674956245195454964089501429417311888232983635927703852224398760041589173837216922928241636124122546740824750810891361645537778084489615136515019586826744169538147530715150407850701321463313831917080769802836076779211107779778738470420615868905924784459820770551696048806860878464447982891966990477243669839429695362465893166768073885121600430704641991520747321938359285184955018172337312707222940025615397069783456830009523773626782763757667323174306747695703506350791251352457714509947272377574541145341692429376447638110074575644322936927945176593537259781551836766751558440578205934972703724796062489906717172573822757551612703014824340393283817546116031085790007594245133221150278441923318283015551148380990108168935461626018823136774728837896713230202342169603164630494579152445890712608118607896182870574956555004970861546806683052214051937837283715789328713475870127731367037894655039412511529609247934655222097421147906370326013450331429879555994933317267673859359241472938917091571601414962957750722919835665131204582667759901360745511454400367273348968044200683881029225835080006508793772091464734383681922174256778957833633965678385702994120401620141583504599202640700902519620863905066544340894466680069135183938136377734360611106812533392626101525308270769414507276262168478137394520708132271881335509389700340815966452487891108763858098937682871474965748269843421727634078280318221646697578688478060505871479393031953728531675348665952740996171831120865719060437280933482632407257731606944498102423713796701121464791757557052645919797444545366717187439504361352441433484249872693853563962715622732902010364843124237766897210491602179192419396994812104575174211844901749321986151803239957967813528184562864420420990859852905400395431307226425218983553631608888399147364717338969578196778772904091535894863704687532396569858554741669289583617060093376479011803351439132410563827459585605757469163367767309853854221206195865183920744175379514322335564670573884754168437151589279462953105758202365423559162420397232042401294435728735736073104797162053258504932927444586844208268047582599767026604404830345413498646475951971895369789236429697122407438338819327877834029714226102245125843076139951511756235888835056686640625422421330062880271212622380379506444061890118624913075257548947832582457361563416496090272677834381795186989974293470939947082763156128666006704959079120168660973523009437153960613749325258947522417231287886006219957035484524035182854864090767577160583550506023565150100144281353452959011085591232406703050919945662688324580592061638545697126393620877043506812708163269885425153374399031543711334330119064744080711735124290390789945853875627096380256222178878226040612600857811778918523125040433026289166383470823533717219122583670721450393041106611490605633600300944004663281906916358139520513132763473707659615800964706890231890721791110450417726849724256965881265495704608824755882454477620569337622031068648339413958988038108128327908158302757404404340661449171415365001544678254106686309739281285412645534775119579076869396978164596649409573440238435390928169995387756584692927179095074074393523153249565194351593795097395305285201959177155814608965718519882760893682492886906527590418621665856163526364325552673709815030712335362100183554825086253811366750952434912553060626589723004394212007430421642315336803784274417504390935011097245264296278165675348423370457279009169603173431978590991973853157104916923733284791617653371207402657189514393875474119695292216750138770488369052909000569888383007290091369899447778751101100070548053561078697568030697536246365412877172363490292902206085725447411014822945857360968571173855121401682767058272524019139866838855240731120335036820665338861213902621321564254779095459146314066175890359098219778833136817500366193855091835640653061311843610815134009100052650987337056810586554895950595473089296407400350747175227947567925567964026665573087410849122829173594837745905883030233573327870146507468354133142300268074531888333538128914270070008911865156221167820355005885876513038167872475417244061329126351727632035111328509400633738381368286036400780492041116735864901701453187341395941858736616248883188415376070775710799151756044882997409228121419909506319403581401750173893907531116078767830787755175168497465245495607922143732325546009571455203332130880042408069122377429629319051507972877570315503190812654785302682613301498057456776630992269098176607695830347895634585821899388921953422385302650102462803358105347999717108806630220154227582792370712556901902093324146335317980227928776081315883428309901365285561623769099498069329693442493740113779867850658967885734840523594085342001729561095048258298088046977513183229015052687174624117947597483960712774450638037231583970736535888594280257116109022591450168110137773131128602219664455810804164953059676734884972967273751855426643374267545351896214833148871511150864782494225170261970775321221144186557363021437392605842847619167806241436094569945455560989103875668247740323377057991633609458734561084798722415084219042404354736973143510493236444242916832977273473100193682769588210137051544101943105859300055834125710416584829322642892092402724846741074542456422133331306065287484943496465881358431330524140684659981628586925118730934878817575520276248455447506778447873892997420411910703566139351370498047283117080503833956140466453809831925768351554200416024685755679817464199965314873367275232463327750631077153530911562333990775050619691841715594882477341462933321966173904792712945768339907855746677738457209659163154785854234499248822297580856075280109828873599934517490198523405111232477206342161153999916153213847186847232906916162013722282810880965151354151761992787567812183934677454797015395024906202569041925374437595686104039020712376513651755592646612229725558610797931623159788496843972837647995670052497213145187780535941298658785186072004555896774092982914003319637798042707297984312674224790983278940879941108857637971101584831282651993607765920896854911601968572025389502694575559574302802723094461802291179936275980106783140801340700263149872729126309221118404917405546628668561289797937385095222032421244475344002858781823043377290476836250993990549261945877633732907885420821781497606721579067071921583525797747015728654769750297874731560962767779368503054179865840850841483142374059648937978320405580523900403922971072964737325075978718997809445297669289829985406379028628125039814918578481178957974511681151959511684901843129794892777527898594587193684503719847260694152807318934877600459137881901064950562103572063904464898756367653707900867486584987574852393469932896191664941898820986398585099522338721864482103964606198067751928064642945806811675382070174227028248126320848276120408021181473463464223393099683786484777251385861669908768129483209399179848134139831165507225218605358762452369501049550838656868994096028292551629682511428818892779966169639338256830554594862581847799868608756381681918731636410949418368959245557758201331977151877199007840416638728860046587215392193045090533870648228340179371162991778511029478504673857500607949828803820268222555734417690817861948893947291864488663057302719439026037723961699673938357478087597409062972872312247079032007152728142748464675974467090589816195425780790881759938495693615285204762051121932337007553783731492114760995182602897629366213244268910887593646595174321652114387253712086141101989246982019676365306947789973624208479417240930760460530472990282663135246358725817838500387067325742613230482877117994169308895178972662750946045531778402119267725888344289000569558047852326638126867119010347759341612058033714312912655429253237409181695066775691031814159712275074449462986491794257225771310049411222757911489526727213442224405474302533112382864707083062702740575989993319343981740955029120659204636044488690550250328244428579772083337014804544486401994800896812787523110745160139801549344796379155491506753140420271948475906750256932904464768418881705272072042877129924574460908452697630897158138443761300147336688756770033061425358495388497627379999400272355051861246509247888497722998176976385625732732584316130565854879060820854110646714262531547090305314079557397504695982169094674546273363166190315150377062671187288502193604781911921128772978364628507149455544990524755550359343913791298851970310428307973539990057121273580104995770411271168342480465789650501792775704457141087832135157214381006781761781809284816953872976463436560065948239527964680121669740849075950654952500011632289999594441322261273910345289228039079363644281502477691107096185936169707469182104924028900691577515801834120230455213657774582127760283573549938008448097865709058552967548316424295523477205266015972023522911190509820629805313002357990351163077714379176029632326891323318199166724017973328540201127347332022203267648597595060082111339757978981067140355858071945282827867262933107743189149543707614771474106607329990527934328693896669168065964090458957690948589334861211943613098342487475595487931796436817317061488963546422813742553588172288022343174185355472327228979039725453745216028316099761962233745129582577243717269016030663201753221276218438668629772449809703497334759951503328036562353101013492581918139797507094930571404582767435017523587784145414963538914282975763617648691048227439519477347132624571219891498709970443381481496968700743990558949817013247549413575668849187602390348872637038846324184178377456506075890884098321736533472270144107650364178789546671864586294784062478768162188130683733353640176488794244343377536570155896443745230421251866849011577909434188267211870056473810294347580092981047767073021714066437995638436070847387563885361584205443144117974798210509850580779243023823491277200871221616616907151949496498128895451716967382715455000974586341296815714646369711756473170406088130413945425326991460876732620597015264031829147660098640857212260852133781287229476903758247168097127745068410535449763780532132727958431827203441727539923404753681407510201301072585600992454710570850149524813585028916955481461720496451655527697985451363670083868416102481476309434640666209892316352834873586014719398892368466944856157106769804586764673987082738202587928356389523257337435593246634783404159563549543173570021844566690646912734602705975949538083611039798367605014954129893104043301593662131387908692898457959447075366860590806033221587520295584350490091561618736977735510740244350492632055208602318940450549776412124349092588904134808248841413056930671931949892624938628110149489217526910144021969966334891217609098370670555283429663315699075737103060818951804551197016623914313816646943160710998743697189206487376525347039553037336967647073083187582764593805754496790632229007889997104686402026110066403373256658832384795501800306358425558282177508310109089740321550299343882194846182937416966972686764602199985965996627212236445950944926326624639635928416430055178011760670089941222798433120368653100328203073231861976896835143528018781796610992103092297731625436529999655661787818879280303730038996750520589588042985382818308079828577214052624913814725307837290446790622428418269885529827240732146617306501705389177512355617057535662940394717096689854687757114138864089790218641090594307652066401053558918569499003062322544478696526899935545801951290663451512487457611987707136505107769011656657298635656887727858624496778725021257559852963074887833260144450584247037489742578458022429496970950985973610638285570360103253756161295983836125610351507539693850092359941658580116798533849506767319404289624537331002658517593137061953320963163475261897237291842710284464272356587948224787981638318790511217381108298657160988099457479324964403114055808427033567961614887533874964406111695991535513831009814511407320426056775605351591935215392072406134791417682221835524722742801573567162787397395536775668184224683367163761183228140277774663012874569185588545238827219663906241838296907705284414324345169000942780064877922627551212320959236754980833840942471574008031027771382870772791295109083029495041053151568672570601002504047823040426263367993956593054419483876313398234339265780664552819199749703877948575711634814312647253804322431679499414149490143912123930360487558258609872191643062391841931729682445364733676662162984923881975059225727233833106687888385427881053980291229906928391752697624082451362577226843488173004589680154197993157414836484376288880916255789678639510444749384114552891551107630499874094239192781880795960877863174241396074709163708490040883889512966995903785424031390411406558141557255510740249364419125816887997751134707716577742469118523929755785510362007438277454191718805405262144292090244932184458552410216896483166793217063635366071644797734636754702244277403972233844275835735555042182482345738847662484592573482186597049209726917130593188624841832938102297437794797006156508639918912829683546328731400024481418640156336501343230404550886301998847460248783873694137439211877601453895736847708173355367979779160158409877713997838542728855895081742454365045039577183600478455926357822424900746909822557951799955097823068776469889953202845482560010278840356503997116947978960602234819236984876833338954943746856985560069889063252113963983279228917065435963224623639809203639578801072889396895169733230441186272507587893428148206082581363544447607237716503755100051821963940804187852496915470459274321820704370776352236715417957423874180180629635926456819273077491384632286739594228862103160206876761815031596672284278428106464019714781985110097097570341443154135108669278639958104962062421619415721906562012586086311478169418965854394837723963515152983943394079791969206610188951930974877109755969769805004722145061978299747887831459652713636983978238542920520313604293558445554461222014998689283078722077990640776603787917115477740227097224472803636607118793139014673868967312154409023600112942397789043241065024861921449589176892601430495571079357099582284882272298268074202756760696865820576730698289137388907743704966086647208842025274573401576344908069893955999047287374404204033754841550702109497813848990886476662488096475282817937071601556766792382957956686690994101145740049012933749784872376824656979787884891392354743480141760884002185579908997232876814398359061910522306718643028146961060542072311218471966478308265104848356435574513068739410454105919877662713661667949545451852399867296787122195582564062273064059819042105098905829351606786883613831960238026468917306734335380026932251194605005515261794072279547808573964085720331884122905302946642029216472262344254058855605190951363710259504234314185667536886943442501769564549424705705021998034953238093997520209473785095705031272097910033341141309597274456875926471730028976379165937582949464551304152405216447089823888692263693094616153097893808507136915978867446307674878491740968028043115222887514929484106889439101208532906989517998041465655724385347426233932331626980884949599940948230774330494501393317080095503998488083514495059767799005753578153445506529325230630377719416544604586418008294812283135320466423627706118942480479269113277766204881173442111605583282290899102017319143967355354287213192056433411081283159907762769101350531291297366152623060407095314497213334137930795440485477215681927385827637006939786010962901792022197974844062035677705428807809272663485600957821909411854381558844335502228721443383787809209276630951004300085979626410310612142860036121548017712556045672265779023449343675864257377399891675905921775091161572857048028205887841010810334107479050226365876339205174986258680932437714673990677878168375824416672999809324856278505858900650856238741655812502154417842955165876349226423541686345936494816370055609616117767516246607199562543406347508962465476064567863121196981179990990003157406428287492213415727397691523306775166324367150706401526497253421946002326002444302023230721085700004851963389186367794108309705895645914957439334946949854135250453768197605161708405660872830342510319569276912496728201607603843548939343471629257419063236421733806336253282897853084995622502217836150204743165747174255598953907125179073130535648203913688857374209065349787170782274861973773889845687607135881225217483014641676630949531283875490560991840875053957405626172043249288670801798679919019453020667592610147078048462585979696251166510598693722888282442798550260431815529651808946840358586272063450550635677850320109513794418186498669566252414283118676391825445000125337022746822541438358614914056070349290908819565065764454358169234671499842033151422781444234431478303494360482200909737501315689936575787257429766012653056462175156012329781699483814555779980676686287416154341597592359425299506096671092286985544297835852086578228238179782717723903723998332572899415187256235526134166378387671693120794964071658975904986016945613295876054508072108260029429206351857079605799759040939213837066676371172991579121608785796563003112992298566173558009123716699287626173233563219915968495752512460423155843401087519243036966789259758659581870320584618477543558122176062442501665441099435544961061936464807657454129316062982616401894038237059352923473634229656993080416767565909970009620286606758415708395412483958016863631618331257304415668182905449171952387055319743645213483528768768178097690121468815097367941071388144736794983930905020982726036426235050794795682449381644464647985709555558642136298684028139542450006254131969694357591311117859142461726620403998338263563404682266459921986555535162480771093399485786665169418098204516730511341137356652402126703064850780912890669107017323193098535389290769465290210575912699522156331689609874240826633476661584728291503002367214593928617712316668233918281057585527544350934208557525646565972607120190485061518450095309356794806452000083805999764433184232871084612723156755463870496319587592837588434803691272011775259143245093192653636356187938080974246446568397291967945751524067132308696747120935288270070487127617617310227683640787938027859368978952187005808190746834145980959273625693114852720422340511980477226800620812661257564671215095591295534194567980951657669274949276706191296458525416091553749030642555303515946640403209970420690203369139248165154994415019094000078524587372424369874071274599743504565832496805723870094088590676793083513548041303060846886321159044685769327691708291637299890937461601076615730083362430990791776512113513475132645345748311183513111615352115632890161192852286206084893256777459486888192076474407537284292208797533319000877853498014312194055357960655544438552076555838728596913322451332298623294571758660813559664962962898946115999753379338880998960456283704209457644003810058684115114181560049201699016672672100908907041679553834833473882256017727701295134155061554164488912739146343908019675134402573622245962864662464534634336792140846403697861567754881153034134196311692161047323262163080406450545518591921892111885394900018867694267482483751815747020808541841161433579452232079127210556080574149936611608673065764325912608237007960064792358777426707657492053978263905780146797929440270214608547806853576392863689133253636813548381515875731689151060405558466341042961846840707624961046647229562956578772461210497572451366970915694305328222458533503217126203649231172550038801066082400617391429502687906293982550426273860882503412045410063198802969257184880454321730361234022357999473494388887832404811905446369078312431769400634143906208224302443336930613300789563366424033145420542903273513210943362771442611768377767589226168867790053994074768579162546835784281827804549807791862270714740227095578620141779287670848564559104418163312906734497254047677216637402992176559741571138704588473622943719797027367463035413490564221829662093464298999094949688983244366528121143582551610258744053588422308625967809068394394494596902919024670945991481971546412567508767360213137790006557543842053270118274779808809539372564333254534916949403672365340916828663430333113854050684068597246722179283300962951022928693652046916771814791202646870553149910388900613412553803572936931808776334802975643670052728211076629750578622282991805256419966151119791844637694347309229970355614773655770574712173353801840422451718833365122215184814366303239435973142405337195665145736009770819904294989655348014951514606592392515722946127965048855810188651943731068424530633483418769737709367525696060878544236045300310083400533314480736676000731519870851399160618812054579032654958072956010395906806311403274334897258294590302334102640518910030513281308692372299498029870777539541737352366741473706956647585557059835196591324773114774118594358490997840124841304056386316143162156626068396506995536756058016027261584850009484772685858376102970887735307676112583358342389396472790080485669411346085663892909743938722751113619202327589917673679487597695863149945661148509470605192309009562228409693484103711751278005057228757388190317581484559838112932070901244064098118743917614257291003900011045264750983029433524048634980640818548252805005038724246903892557568719815090948002644550885600030279665226388600727932089729464781527471928304243412797213141392002210273909825269891412370409631169710930350197584858869745660216871217119530352972956967974076828743808341036562948271162466509284717853341717075812338142809247645909238088226029070972011235636461249876380201706743758902898919323685495851380655676623345948080865797203665199667598484212577170155228907277779920560166438026392032622100152316775045542997844552345042364086524589604302934582623475881036257490008859285928651209896822361815750301925888053795490591475734690914233012245297021833076755241722485862190301050767740161155091320536857212585805006164963718851531734151888847982877403389151260708307257000222590966529845898653431520284660774997102055323986640514950918766520945145568901698099730777247517843289512922842668934491796930225582246132768909673848424055045980168816499161303469095192504432258207356011365607658897302741785353759372941033871324723314278395013713695012922121478076404165664045559578316228751915597312909168377241222538090466980521675760224754930633854104573044437624603021113759736266439901129479073833788416891130504459157794662696286803378755179466202664003761607004196939671792640255125319058446987517467265413113973898107187346759172050559613008813824841569913253359898248041803908711732900185966008372511772531813224473605090510516699862667724393234567458786601526158120915136238210335527725962280962123284105362062315665455248721338456854018060735896213022055329112276526439503247423038681198789852027453894835817117320584566219866694770819492234983935258898187435805720002002738055842311608280739150169224906501694512013434292766649249519014378692199692101172068040738102621080073261946808655108448753282660870177176153731753174331598717901632323422020727286069309552855080185116540415305069915472508861573139660349616696694149259821801776776683750124340181307814707414714700377268380374241154225814166259677766431478506307171626936226840190291895928977280735984169042871316277049659001321410867619265597611317912123746565162300153685163375665121463081384698611657801526990216778426891153187768516025374841356093360794494681788165840104297452513379460315986741838325239186829125554602373237356335056635359724962556243265780957600919825240411161624364388229440505038022097265840882362505409637816521219767019651374832951278752398028015829971873286439808110258749386633376062219408664155465622123310901338548976135524060119198865611227711004258753629090435395034798755402119319221324593983873610966937603972972997569223436638300812162695947023212575399931928895615059042316612042618082766090296370873724476830786484102346536561364636015813538572129686259999405750376120445562992666345633699022034032320230560281826131779292391076101433425749007051004362485268819648767688635218132753700338321037883609364627351217914346754000647790539519028430519567697228706340189628609221425134311089616654752032672255609123205342008655332350466035813591631943924930237629189052844000775506068682561522945741247574409272646600457068663854428302513134822638076869625628249337349987917717346265703707174857518548137289702261380629045175265173457817502571075645943881145360493481108408624169501644814965945673851347186588161150767968896074312348479983602192653068052299443949186097203629568343360026025730676486100962527649511751685450021602538084000099181940341550754105599503721597992017630170786225764273048111732889945281009586526782958733753404555860579123168454407715019220101916125918300382312728201164528939430590965725398075288329552107374956575199830817721672030834127602287815763806811651986293969834335931456032928842280720579254029695654466670520724860206413422669086660664397969857023676659766200604833188702696314032670000775829870056327200015736990866671733332224960712358585585634957972726939821604560844862076390846356846123160274402800810280488703102315115669046192743077598249241438760940653579959287226508614888709873483032676969656269926519378886842737285833434000603145918053030452042809164130144390357347578872015200594032599692840324271355295698431722911435741762310418054305689528377794225171322891700600116779646418199388199949615353606241367685812421008789402488465033810650272604475687113097435609328892039155259996142188974771280113379680719730830554133928453075586751384382372073584723150094287151876198733539943814536282473412188891834315067939127337737781713422836544561664040591312944723867705004584189312305492684948424291753192444362063269921812551792002376476125684242855331130931306886040074008560866303360133248910637663987533810328335471844424449194214637539994994280569721069909110430476671878316541915848252291198627012675786821743809107393301388727265276743022086604742418255679776378153748321298795772065213741116489162924102435212095565982493394798549368862629208291819450837891066503763319866046415076814203400295199680414519837790423876457542351755977705998374991610312488872539208469550213014187558379835044054184173688455120967978444096008497121491904221491944212284022104565015028546896307832473647008620917419805481975499054912872969651499291314064972680199149949042623204376179633329011666872519079850271469752700167582891079318248739620228028055465879715101977677419199631206215526595376886995543538761246161811036430512906181127405784183475042762689164591099894891351100746758119014961928684102350900072313813698631353122048941791264059771339809794583110000291760689926031823091361392771008732486343621413144025813902250120604854490270337143456005096476710011809823603479695529227598285168860679101973551476016679943123299704079468158822884771756439096622537311798089477005940814098966961820872756419830776966918882755669181721753927798806587799392015121498336154618356198755158589781892112015532822760628191050076802564310175116774575696336312711395879457224040964181191379625617077049197354432990780932590259553101158807383673645441136161269144726097968946777269784350068838590451805282237740266650378502998992583998040231934770589213675198133424886452053622511178574250717986854685081238983421077205695656608403900187703249671814195821331560080766915493526417636030146836836801414468008043753256080081102087745002698253755175526285352977394189473480342459869932407493530957602647699607259396401361938756226231627071779496398668260392928619893484137625479433608909334652618061367594880039335347258920347858744593613320925476215302083153528085710282430442868595121555503097704679598225731016942731247925756453700480869681281938280352956332949404628653043450596388289499571127902293304761882496531108321873776053674797931947056978245516364773014066601125405999338698870474696385956716693124856770860781951486433224496893922757510386381528774723183963660057564920241046086530764562456420518761668690722489223752761636389251766530642966261058970617119923889460831081839844637267569906918527373557154218440641459284055914611626287834129098551794031336754524718279674906335095992959283250277795192700244713557972580555438564527105826948179749978895712614124974388127447672769576507951772525177763337181387221927857951457181819224716823540200686070614007653388049749605676174805857256498762404874725151837801580645109263943521435088624766084354862550834067801242580573992268082408247182147669921394732250476584682350236605018383961299611049969478079552313552456326778933766539620951067208416869091923479854750949431157376995767491639976364284947498291602607924286380567009589050976788393456908656559285584174492093436395768474798965021423820524342030466337916889189336055483095594558008312590392524367178534416144927889716576234713372254881838202127924098049802138061453679205167182418548988831653413532073113718509937496571513371454035569403932568318608004806766594329160627046896350269626368370420575254039597513383770240671064146561117710863129140085521317128722205508021891001154150251859574736559399523953078253811999823563780055196994727750285801162230736403291177158427769454868854826137937384802942549454860990322129966740444820987728044966269701374717641311596019042153363438257862239565558104385467514737997716012601278277532228609334084119930014437740188080931026815833934010211474396262857550376618551656560290876732737336538102593061855366369327631627403997876975048021452522402331051822667345135683127767757914152753546919775279347759989160918463462552418294922107676250777456574797664431922142001006327683558320068653310825038317749773449094418106266265086311244168919959143476693791506956377260352286715526594160253622579629734001163604410821222428505360965428184553654307058334377051418331416162445794313100457125630443634453213337930651101107486015455923212637502082238923275561056058902112104197383038345211149830270969819649537876957302700822547427068026773592976014522220584849939054704296655981205347035193850942939937426626688981474055408569705077049648052299102753840505706271610606274550182764335984039774587372331473009276284042884257104835077028270236994126887836758343484872813937405043811128236396724698471637230995140332882598829427294386497265546548116936899623027366515548910322186698420660892924812088823492613245013728029402811555430333838542983607235131647897865339325035793753509542447895425213442660429304588769744131465217041004978000608452917465987120253000176239938381760609245609626236172567394895176792253988789616647915484545847435967304279152461340008411562506637063386779805747405227476433670597290559921856836044830380602081240136272523893317792303166302340307365493985224803340870765637919078181041115723703664314808656858875922470933354128384744951364226006647936050207792847207346067797904996725373117214174834899693061618623470611351374343610708495994884483957947876228511780762344301312880976459262127223679269779668664972486960111078339764655934529951989695371841001735959938568750712167285664460109711429900358104140513680902764194791786668934759833591467359333451858421717010024469003225576187178235588531211184218837105808822090297266630613605673172381707915110565002824707271170615107227448475435665945476923444623355029710031484203719468664743188263138959582250284014130562678933590330717233455644173507900951002849343411685023642612734730968448360142928192666664400396087662533493470806860325700794543945296060125728862525698575611551626018633785386369084841138242469191955729308464807460684115219908551512031274442945185339669122610300968672105665287755977108167065396421321253226045953895002740219174043052684513487418876419825603183911297882018961469420085612160705203469999447254763253438467667322890107033116835405786288221247308524495202198883572304661057601554246170875277077110726166858364816987356798206530317327877847625763087484149830090814755569532198694144007942666213021588903552736524865412297291471014935219625714099788067472740841693484290712215884780820731251547934827925352296919892595067734833458501104516215607377267939798897699938668207098752227648077494328169005433500768212302258852608860998159029470387062726212786375068332650535057425184924099079019341194572138749954878879955273211765653869190122201372847877772436708996083722188043436388205855492939409908441334087276320925203791922119928152548295432893876282637555824237288517372327537132909550908905805483840396012920330522820093413778066327254498210296493906838195667752349700588223488296575794421349250396105227263286273487278790675950633139126076428289199552736951328367759969520708289330902786473399106785825872600613685219726081015481141909826018871166286677159843216524608594227407692324119549669964053196571311554977417153305460509776077197269453990219482152829471162024406243579838191092293194798319639954961226963994297929235004207605238633141643252960103618511785272343383487640237032128694246291813695921824543706186411573701551209517143967802130883556236157111307756804920773423147128353713058061901805786234614085870789640295664310546057822190394857814825619931034757144736376781627629685066528156284728773039430211977465715481834228859734160497072431222674529769975049034520124099375031025751499442815028856257407790686780594499953283882958620831380643907677941097415108179861137594662526044316100885822025839140499006259296151018834119628704734350025643417864930759573241896785999252336553317936023923593068049925197213712232717612201155139701231547498820796405617246358287831047230123091706830076378477993368316460789139171125883446790322511349029340574511241586892324463405175462137384085893415271348297257068860017869653284502955485959893076105232284333613600622135649006043057299500149800484564391809882556883677894430062723436747990827251833784936130331802579200316485577148147108897698381330261609546756094276185057277802999118737272713570081167847813316640739998917872073655741285905487740590627115339394123969423266620159442262713732253527828192269787837365531321717792984336784551131873664068211360581911718628053211019637218590715091975526462357247151310821145339987155676412152760234330361434676913812201995437871448630707078721797384584275634589691821955943984945845117717227834145999670686888810112930414312216953601254662260413291077346900198754735259752935538765428189080322057147998355366749810525945876110017727121503617941322847700696457890838440707161064719633457578178215788047830337059897974914018309595383008690266744870917940513948368553698214292368695619082083009706695245491200960118924295376990606313999790941273434286147874810445433175082147389076180433741054892215622978674253598697495931857046025992980113283466554171763192360658981967894722797735618082063080879740522172480633984819266588180624901909201796290121376194592731452557222669391827721715274828659078380549061270831417207644704246256782750509512095347069916669665825786663310868356052010907567874991826332995943066316606046211133778439344989221762806035402115127356086632645206555803195627269143621889708174796020434343201514804776190006517738907473347708293280190964335926059238017611655289157408712856553904363793551886714144072159826409979908097212638529255111609391461332558787197869487102802152522918256225999008682461242014056950120468073587316729583809223872662312644144120898369692301182092082110023454331228975336690765517704513089167378903783482813014967587738116449505704035385865594813491107631106595176453979189490924372977410469320483219727480068202133124658801932742678290201739531295571486503284885885137556190344453474308916810233887423769826018570772600883373876560508312214844360419084018988096565943528908164157597296001568934076118197758098465913698546495594875900968956944958156767665816946630091206759085353422942252926035944071500776574156295777811138589347476168810718459617466731819171152106021003942036032481285642851864389993731672847971778599464458389301787809812464247812461271371080136426062772384800061037635840410876151195919716998191644177388570781223033757775728607753684060246593163076450929090246263536284970196809245338226513501456499264205385928060675114396817119911363020488547169236511858482534516421712957462723851839487455123325010072951946338591268525641878926864633382898720885457421138973327621444544687230069194854798340760270428894013262475378718184621118294966887889301455261560824876577950990566795876275673257834616176490175144018262974981831600910692300883185692104870591012456063934554178402987302841262167756988487414529485748169658228087376490423465394877876288940745406812550182180019221037631962678212095195862013060040799450035345314720846252954114116254003872991602503861462602449351695716849175515651514044459823958392036524834054240142538724905448374356800413222146042213229452681180239389460074439480624991633219653739623533979995977405930958284313527868133142669478635214694353176831820454092120644880221132000370298310740654386228150912487684307420597458108276067985580282923164718098517666644388981236611966935237503872504725927729167285269352769121566073636665288357195436333389367686912822649816329382391775012097506383509141702435833399576585087266121872524773689467548840106862904593147786353671818482521490341751182938089897980825332885158041504383117708952408350426627283424371110303729611036917928872246723902745086013258961551728533964175050335176176032036446300459305479198980578897632148964044254505762552369739013914117664650981194390450632999870614985773660078122691080028516660880324406239130176487632807970304827532968068448415665633020543837848395412801785810410894111343417998668107239726021931446902566617196533604846859377599481989585023939250730028734031572050821617300964335309612214450703911340546283776929066899144300817322767565156317369734699043229426256460940797617731796718532152466256865732962531719633362689536351811877652039275639966130780254714670992201811869816193770765252696456319941005855589235879850614547823475398094041690942335711384072422033857607160842556378950296285606014780719801241035192035101779482851020665689308371502951808261627578363159808940476396462826642742874657634743286319860585147025844386184766171128118944086959089574646207321764581836517053011783285518269946208559880866209019028534290912712676221825923597716628406448200204294013258479897210777485740804989585355949228825868727960739438664615454660538461390957280831941309731502098015265140015763014869126560694628125673503544509776761480629774000739657974855031097538911667921181409520835222091373845757747959767912212707029466411659571930478671829894318208183137693273576000323384847686452673515936049179327041696265513146437029422394491308589066927016889441482145569019184365767705337818632982374031748369960028000453959789428052019781220759278562308625828226923225506538005714386505423328259917143665111175371971426645472307834510956775701619126402933874206571534304427151338636135691995572497982971620213563099687642750445268894322644277238620146575489327641662975384590247302455952962548646443240287947668786785997313173300928964623243003234538067550454444623257552246127009698058225603491496429748072676706623409343688511591348186112125939546225744291594554529499315537528257756222360305145608929502258095832456508614029922241135783146382437311915129099875754036430892427264765127239619384373251203584593886338890890720324967445010189503113586530136141282213283781635234177665310991550885331597623645338534212251161475115990157381684832555376874891944271048438951441389083509032404688579708555646143130499270441041618743890017303253026168638043386979950979950993198928549609008751132051946062606572758083528512066274407131124658174117285199240954106384522969844078529175561041522685610813099417061369493737246044398050085871312820885489373184583478552567760284363695253912959258599454992599122453874801675455643388182296548322468758951723368280520361311058889087665620019032094007530572661631852227229037498969315608803636872401060763033469086398263412755032131963784056769821985415873571157584975384590914312094960089566247952946730406105732761451752299146278549010482475468162903482640981822275873105549018597573342609749834555669271347311859624071428903822687117690928471380285220304968767300562102962617701928613617175338166373221364080164288944558179079548506592126352597008896471840806284658372977459307500545643788035240280349259228557560554347874470336927224172915412320563876384290403120873241599560380997106700683266724099739356698590772922034669580571479025187762905179540827664917854491832270485427808557799100082552142824811084771712012685365532229585156333922326306147227927616375687186732614770407247574547239643890019430714003898526165041502259716456371063542416129358731799665650894915695255124990953772975396219606136322929856886875081215005797521076839165504288408107198211807147002650852193335960968169464518760467092421125237721291401919834792960383618862431306957244598081142155788665968602490358473901915831181620970711499645756243463837123007044573808027658090351035782433990817963341639134232985424275716110029912861401569577333563372099392956131097986584428688265596904018426469576318484330348245024080950784940069759778546286808570251864621384630191867640426037376299834488360046883299661670492082362042908351079539975394067333490419920382306251088583255446066214843521542088084177761800549901771579327668390048693685152388980813280199783571449578297055310681794721515413072747158556530973270312057892995470906292791401622446237881826192868925103919367039945691247923088762454075862803439750917135989541500979286164941539667551147196599687068735068333836996176349031772162515262357913145758488878810796689386678326330237676405336301859230636735994777958520298448750904475191322670792609697817414961906951518802932707660076830933280433388658863627972806225719723974262487788765910938190574556589874320141320759513612585689758478306911858523527343772369768450120382808847232558272200419832717038038687382433905893353738438534028252060034761817577900349727960159678622873196325703677195529320132595460276164253163296665888824825471734448542471507894768716022448711840437890417478693791949769984873820831876942540623206711720972503720402317567978114457148124736627679794510377745067850357329000335774768698547626211395065944214234203582552608906255719765947924184150673583062007845919543195832385977602157507516625802555480522733380759505434216587617052099067571734512172647463312844364933320022191413725879469272015864473918606559631535267292223931884256029990205809876583796219275255787297366884342621373367176687510164735419548611617096229488012612823902766839933042706929681433944551930612513935117813761038088904293437607392794821924573987192779975189726104276597282143931304549069306290872858541052241463648174510000243223406212878209393512394654825023380900632636301222976687381021837146007335139369228002909368998266311410346278760402624491892410028477901239454262675202678038705871085816217854441140342938785631144742844802092908519876409280516944647661892861958746424832818520547530524752163003031909704198112565590928058659793443181339778042691051876803336322882529552064980566244878588534292919780528818917438002553936211223208841162588960920905617603374231862856571195509361851946198906434058879994899475198101907293992540965841874849945423504344620727987693792124838276831620455291652385518405891302524681887395252059057503353636471786434147152557473001115575607398591471461494578004687527565683164487062549977558679726451074818884553426209584155102868464382469234438006046717103608355310374971231519639555169186683004611106031031986090650235837326753389547891945182632710975272020366120164326956186214443054741492801310905722242810019979309017151890875164749366510597571783901701825470256185787401954165068423685037487675280535195530147240790400550771335162375246042516834598681926001895544110642447062808651425148055794333252218960200066245431861025472232784709529513533678354791358050861810660206509749564479387273198512126563721531028873621742136349921044831941425734478166392682766226909913014937460410142336699937851344984747566302381221565337111204313666174325551901594100098148922000614530855742957283547302936310206857767209598874420855428031131895808883317166019315463649785064684319396001285845647791035449862056853626402542249429656426936746372692754956727886335688810302893929827528399071730139030558668007033553944953520506105555380991114812619803802211363391219243615436846871904582311589115901792530767939032431367187213366625054864478079949167178713180321410930021478764932104226599093617785488272681631348195434561668656801306906090228149882146351515860652333113326743786383962770647272229713850632110101104540637326378540538801861732512189254126952515962353284931624099795391421971741402886171069962829851247310272159228792987485058761763322846821496527838317628898781106513680520569610565462213007808981177585479027239670334834783580510811403509569466134067661002096612390065280384095226063913479006336014690546625659005635650598192930277552483858103797873759109611717296170987027581026870693351211193490431789492861773726051855782731449032469659166254713875374156014837790500947208257266829097108192288351011202409958257583444640681521122752823630236079510986478167098728042546525215231068536913564677332476500007774886272475423916791465736701441110455571511520094112454197437891377051929585372626703941343100593004056320829605025370959947424253139995308046327569032812277223196412696971450019668590985398160900285314313645336997732106002949022485955666622639994837469352545902949949251993529182692513003814408928858154787090839400915106341963316466465418133799877865127546146478276621691256503426695918094058644461092078433780078912827330896982219068668791185115392322868878427294551547278497427163284235867850810310242198001511337925705864348781920735225698356731596350815500098147241819256294851655397143143535022838553868210373697214699021786330139718731927369371826518590278528858727423673629969254747470375659101870416870434433466063079748187308453968674635105238156731031432269144357399745428928162289971606398089392290330813112486650264507533624487007644399755014022115784416759903662619549744659057947413572829199232028418718293926568500687464183981564622217309409979089347191077926502019671270405918357525906043984647041939245532550083962133838934590797726716374656400287288924234668305228052199526582406838294309345132063881940057098099462388341657282510096520088192439425363675098733223060130455742369609083859006420036058132447281653232717067068115115551481652108631206878732229651860824449408076765818893149162518115789291936951630301433939994810216040197663860022750326685341386673028010169619400266291322421055035308795590859632773091355410810991846102024556829631239672193509773763321979827843906956370075957646991577852581494904529148436329106694515600643328187924409218764552303766295801244103090743363450463481965131409416389904376926262382940052779412954654519105218777382630326898693091493800392452069748230272181238186737440068447403772816695477501820497860695379386757654148578716851593664717067894445010691297107932696556228927051687704600819598507321364721858263423629627956296076798026288450760380323492854004837345926473758730823899627952708258461985458186662110699461526758873749105444340683940892098497543307627172708433793181274529902553145181895146630711856297425434393210788345228583677300633611036263761039591703630176141231647575413448403906603188391001439899988072794324134274216863392956944872947358250270496286635590662102005728476986836844078981484713041592023031916392787215302546364020148236262776118626271678860677328939222918149418647555027222728648894193244950726281236609660142413387655796905872677383016935190238336924531711375093405589726881083571410196372709618776808049559496515822929726386680152009753671066700156650562433652542218418405707336970076976491901024238184555590868486015037197446055208564184263528871034086411525050081550884243535154895338524915729116326465976375580842368502622128046239966720553600805777709604882596472198247461372384799174266560903552854157326893666970243261033764895049791980024585468066472951219758779519140009329911814340001462341777858923534164802821317677743039135055594669193848536152012997236980319643105578172935498283013131863244966698808516984074356987281884897332473147824160382384956112838294270456733188606072687679641264224555227485144318664536059105417914569907624837874584144580274616125655203965707460937281723090905922563850938525970897656051794266278951583335048217388089966761505601788726177099356494323172165554183937021417436994858726193165378731600823317899942289304112938591058385223195480217399491398363492588334237810455221111602678667300870956730194807424283648969271175661574098331939776103198644958547865548193319999619891448785666320063191377807157572593857817014470668981776024057005335795385936952219174339369072446839655182389298464725667854085716867169153128954824375267133140721433281761631759936395574857401564747154641507013966897455440329000391907572053305927151972755908057812729439124681040621753192061006866137130444175510778255056505923799183488500001846664787170220197272143125177042239080408162211861009088530478974962496383981563294879273000056654365082094048345280791911300775727147334143899880680502415469981188759899658619319121075121598024733379022253171885436977381399258464253869926524224978232563559545368793801188184444335645250454650539642277200729886546699266945901956841954557989081863940857017481483412594115362767700138367371759941071339810868441570573117334656455615434172247136048866534239106111943420177307504883984859692768024335221849264634902051057004601516920558764533879005111573268357818458419531334652480179626570525224715749209302706520427099610127083144334783491471278909736656145068713952302922275343572930696300203971714239006953457171986777051642036032562251693797702058849992957023809037118458890950053064296568705390052828103787032790319136459829329294337845290145309125325040164053994816074417810150647089288859700403981496747609415123180858390293603870778500356116310573316111702605750640728165876810344992659066081272833403952947049415736414840784184537118122448903654989262140294667442179622075047129959537452668969923226600913638451633323924416797144071173682811735245565495396936438963950561848895214003263700453421785381076208354856600682381436374579733328241658568600990415474574976130052541402858278691260370206615923066579944256526270356863097624411502951612810484129746283425219246413951861906167405149744980583275438722557672306741345114616658782369909814579988576384314646694950927460454751689055811940394586889168841983570893481662618803242741976409842118394774439988897902823385859764967679769033859282865125890289405530904983649027018643502516225958979540110992221069348439049532532651423367854719141668787491665735207714968565425812006317900034957632344220136246133215698359431166603323159892802378752983814835495800384871617457661719202194873737892290683931148175878232341764961322455954031326119678455292360676239956616991435330306434567929426745781334897400736212706932636937205440339242329431530891385827444761881309091916216354143865287484483103924250162058911132924101298447473015015475002075747223996851175949707250227591153459756861875417082224271492561934701630675481139566078993741806388435792665305505652341738352517819021272679636510054660308693592411696645124057943309142315241442186940001299536665321227483779209388585727755106565873373114091865489487041837544699740940550857487555107825658364141154359904311513603034803088854792952331341307312561821088784132684594376156646048193656031716908809987391644448250094117110049205157149843446777699056871540338050501169744802138160699984208416715207868360802884620921542923742238723852068579092949397403058700952167559688182696476617030971356860287384261977880904067695058187455732974545796066015211933416073871452483472346819204633009170734969136658069143282037444637153537375314085743175386936084121317587834392095446865624295206457427760883689655233457319001874909486247433191080321066748251869378092440175986824271515916009254617104942347082196050235621803520371663765660551645765886744542707893817485016827071048026591392598372470008661225007886640760640675877515907543923623508741166666034316330857853414345844579672915487120380735012758327517476553538593400208000296558979312866713266710652175447978512682265832001492061898309501967939446816134394446390936272032282985739658260089872674451910693196112263652996186495010280946671503363658280099706936665491922078476468168026970405128292209700572555484320971595695831829313052446254231676463721615566907337348487794389890214382535541471877423900399011980946556331086307102829137548423073668917462331266952763514804738387242346919595001071943889950367549169326385275985315060414531341611341264244129780961848128132873356870097910655353784020590350205618377399535635667594912766737177403835641886230319812529621392562237651075918963378585224339450614597674634802053692257871589690192550776798737953853218120470884508887166394262217753690575331223619354223816147797441487483163445532318908448955526845359894058514086014438779119474483691354921957839205264577432576990806582595960428843825745671361645123283776961305146145871994831065772566251635180068901618024494888142575487560118806479575453207367972779678582791317160148519190238769867594762996298343173430773550965213389325195061881554392261013278137585461959995302332964727645287667232926512384933043129391484026293288689695250785321762826585287452619046484638842484543744300831063493775429957467136123307772257248919355364702472703527483825379957158410979425989340524194673096744390148986662107628330642124797037017881598153820923236488180784718261878360723084032712479757701619645700105891556529444242371433230363101257695787105696924677336696604507766566723689732776758309168629613748892359439091678790902535250881520035710814194321343209992202989681695524841392647720776928345198883093947980552754176561641023683133054125251988620259622123433240510139590607708340831569269924705138506011489731130464565966773705956993297551459899713471003593542567226437527542908233749521957061569578092002824705085350986022338721818018269732249970552459377570127927082110964361316011201922194562030912694431113348269973297627807676277711202494526347625300440256933374521521477762755060340976650231980637588976681431158999445280726257187973960805011219469011165766477639799834882424340069737053440619191907313738207322602670840536214028970203752583546968251029829992689870619167070029240544839401259306022381751683741425083168595650348034379032948247700307540112315325128347394910465859903431907921392436971030603999200935995548401065835187544195596660311581435140356615347769106411379540028574252908681067176264869839486186371377595603907710619536182692206045473300632934810567649540125070628425111261623129503356778302461539551062615725249181163869551413480226793958598481047530258148933133346091566267786555443379638996065761420063818727752424929956368218154296302195339076492168180296036768486106728526551641392625575530092843569021377028519169046886005263144845375756762497653400136870360314421741345577690647352296152870553236903556756187500197760549802663589817431068238411936007811030288895713760462039457405206174728679207996000097892058632604094871228926425491077336177750855841429815631863099645853871261165521524084026216422340820502036719885776333545782953792809261881737564693093530680424971673155810326690081924017216682438784099632605547324323601000806686923789794385256265744101486549977365749760066800894724721659825356262518889780915175482913030675572432233224498090186708915436361242145578971074454968594949212722772133795570926968552236519929795749518895869079829101663551208039970048867334902241679040038884303114979785293588063348339896324728285287965092597671933401380088383693728230547527842567332246454466529346942441776368166885782368636905723140179806702139657418980243507662522936284972046316534336835833282815352742039468346214426496175311691039943812771613510455800383815712770415200463543833603888761668455589112761498829214172868615409497830570416518009863029943220565694984256330965727087130612748228225809719813344175583226253789444619159226549382003879936917753787050859081194910187424227561691025754828589427080722438649691061046537094583142314295400018220313279790592776050497266249312146342359848832160181452874552912923477666829200502812080998417782544439829282192767430364477294731171194244228579033344290534534161484974935787663688986967538657652343591935020604469286294187419876467413552009826330932879843008351423176511879888466204624360079397238400412284375183974752267392663300136047266738199793555506936692849171849550339906117389996141370879552976270795900762032104011683386755534466660797094340391430876994941730924425895341814345863120436102837163965265695347898307611402466854858834633355967891994020432466600604191754853119716922432379125301386703553812803928508843254314111962453754444823007825269920084894199337391861698147154136303005298871987468153587761743532083852907787682311499120246499171600955342328022651608339856571682890704369614823966457866532864279377160274512422563847769843185856491671283660613121987889592569005140749928480621304046648668852276631388482652051540915525418140512915651133345403408197756758621751067332817499611747492150575615968896093754445840519885890687753251237627449891061763624405638237233683071243670628326974719903285696016927952867312834327374532869129181590942344632195526161680152996036736061002007960641122571552703088132477595270788200960370931104244907252502401471167411136995793023647086282653918528598238532560808084431275074159045815022958624051736981128703091398443567232004564288642771849851542862875078777655461562334816766090001696990438917666237652486740954662686910121681807850974562748712261847052404078170195327538775436846925270085192909608334405978992196207234024563378678168070873016732017338176834852312270160738049894856928054056818800740344217972927387210006834560615183881502520861270104372978847337544124619753744101488093353189912359092673528790088538036603165455657780400022247717823940252883604459104342739026942737399051022244857022695785869035464220654173140650603275869221109002959109264333127408815985140430837028596945989295633618348381040131373735712048435684431655784852610777541405777756417223765178467937505265805816675427317260833631207190697360772418221030211567540621590603304416399713395563528881534923547234086761517461409435254147352923695828926522539244108879175045119111108854458291589042554691875436864693367451437837699478245788010101570903767380248503376822114644514735634071454622088027448420193783899562637757181530673455899829390519630847683581315942418024392438053061406462132798261135421487584948329715544232357089255045380711894431766778845652562264195760476587380734209866327313061307455995209522749177037836524327463698406821794703493791839372488112748829869894029324962713210229078478839166284569617772053674994980533115450157495088811007677055008959245810414909078207911108459358260440176266974155809203875777380671492374589298357829246557508840822417119576111878907397111581061611492084339536470972501972370391433119802995699463168936396982812276143043540503327439903069854270213439226065399711533650132807193058512263050731068989207256787560354664504912217316026106030450447200077273431449562533520012781780038139986151842742331708898983195516164149518601451371051494260870158815066645450799464747301671520729099275397489344075756274264190489505581045651597604232707300754446651581153723542139719517814227672152285270748468199067111476088506305268837213176588624756446308293316006823345774919477709398718132083544997939902216713767787298438661965083585298286436998064312607067390316011782386872818554726390464620882644948688176360922788589468417713499127042263029972198964426466583278391703914574420043577813669768568958343668773579985955907997343709849082586437948043745994769282336553598258796320082455868436490326647293155046115199231656061087181056749079312766980420197837248523088136577005510252868598778713307827105969530785712068103404569517301748499115413771234760181328660353454851377882347576724932346896102106732012638128105151149722677579559891719395509341375246309750069970854992961960368983969541378392874708614718710919208894720426670878180551627233738600173801688458511383466032302841410908707080801227845288198427762838032712184373936327671036963799077172514419272042554904965052538826833112702596852096718190315017989567734263338716403339561975946029115404929005089361915749733897561153099089465727462208768942658903045009254254754546144774522477243820049567762893441254258206933795816876696122124475278301273112235174459680745061515051597671690104736643870736747228456818313538239136439143004527679343049808711844965382471239058654192760709498903679457965576390825224200072946315071150652920662515752258950573510434319757794377224845208629802282969650905906409928230310863752564647794556406634200858608023742266469732971438840152280413612277110078664598614262852490362299975656893736443767477257045508539482226443044692918617460843934293313920667748753544973927500522778931369509782364271845142787180099248353667267617597969179256501295013570177881900017761243065367443972347951354086618024907737719770925472724952305852492431126941811095699242083642882274590239271414582778405901790634139350923773194852283616877013795954497138172296557524759882028410505809907851765994386092096893032824918057820389157272859840879502919434123825082210865760063669718471469870955484900005293744808680592629454385297827286453230138030421792675922507190090817603128327041320935317568994787354498282832315387333418043051564503633337048825256310345188321105266620265022158131922344195964134942062051066198893776090511481583202966204704335736463363613449578278675536686034664401971950553272626670260928310168593809739701257465849094677918861913560254615666246784374791716221650219263038431361626613017620895257499007616575359827611963543576832511906106156342935748406574295408119219749778616993545558200304895810668112512629063758708103464328122479259580541168449409806213892889158167330458475207197203345890108013901231182745715680777118353669207917178630071892091553691102819990784973198821926457769889291907490040383977171846543740105052502706071182205286103765474847513692953607049712457239341272377228170573777036059679313420943677825058904652206934306127816481362630732696376696033524062589561090520470906917771156375073764273595558334424507930347906663110395082046586271083872810885434456683126791405429350015831707517367598637691839255971368143167008975052834715210935492587766720844828524756386632798369997219091937370840676998245523508757909206016600439120518815760060376831074890788860714453470958396494251378035428653840784563711575701234163735701845917200890122632054296652659391506289625744606465737032272528829669526715551502396485898895839023846278165967634601400070973935192256358882913655103410732989178750836303516852011304602221690151129355442896899508295690059010846335957029879022478724645574040067706786422126229484688442588639582804867956641920362868440592020665038613130241750697426003651425111751031232584858021962042715693781394874785387405778818480768656448520987306387883346225250941625533682942183799178670396190339304721787910936115821954371222608286058166908454329746336184687035457517991301480383028231681758530403851365881166521911513471452020053175146417715586909160412833363921354593703162712651244490157022643396242320216845999407508329530115779060469761295174481059285902374832169047571564033202428045919065040334015367851254584741940815642844250634004621607987733445053030469435153571278914892603753300997358163507150862939669777271239511590220990948455646319449549243827674282614654825225301239796843119132436707046325079230734282656097481109442022953043412347389056548161921463216824520371767458012455613160922580818333455658396709926551849623503590466592095522233577649342760046897454665415948739889210628793688419033236211330973162488115866152878736403754280909753339161961024112078740520390957411758512645805849616474957186728342858026733182328642712936536886380388409184503508500769696984309785635157532425603791550349586036142248270503983705318508949449597841281809119143582054263941766831210149665890249630943847225947294771955990913361576608387101308372432113782235650680453228072250535242751202130442754555173641143343178636303807785161328701776158931323605365405107998883222103883712422168568310267032519772247688171896224903583458854234081296532292086105798250717275759442958580333739159028553023677174233278862639325787888312583738641682165331270982241965631798680477567504810052856491168724385755966232780741992667095517464412795073547666868506370926395569678168498599717458307683111147165105546262259742470648183358418171055404946812557848186063840525251051855675865528550906369964938541070787484976012306039813815763732336887287075860319892501048703653988549113647186940016875427331547354272816814570722561622571545719524833808795955829783715997403049165360172911550229379411696401533023698846957269780695059012863742718233911949092453804568406104581793533535521742652112508242946420836943819684659197506245192190609450163089204172595179747501915833760533591255943710306761449450516915350520587673796661818498493577813423426779996275003393523291004187067970770939604941525975872948152537555622324180154035995631851775010657921856151960828874011418566503411448806470017387478936145320024891710193347943445814752431794510978818047458085857063466265283974123454667476451778344613387647480959450229963075300101046485399673646418939254358024063997318407874419251561770473479281864718909024156443365745014444557701039866314243623044681552221258231509049437568589398615776562390626725832631324191147784004549969252655899444056409021519656993726434575847445334355468913050040996582595332875590431525225459327515821549713168098292602925784066557638492971002302475650178812296376605464513855069255956064045780978630651645973726993504724412831673835816630128341719153618358044285466355085221225616055565804820060297634686035284428368981161166807322557544908597691351454638975298069477817133779518035345066553279882574083088248006840525919827429090543016159633603196160051979691483054792808486195367126642038165384909138203735132898113853895358070395726895484696259388141910096160411329474721452536602063249518218433292769019131370868196619732230147876713519685513289245215930752668113043143551156787982931089674444942513665306114431862964359599804439301336295911257097090461494687123195074951011325327501215306844148974973405142146201485691251641014660309089178435753627821873739363128272837137308877847708204668174917169012058909280151461193929936926453067270970547457950828548496257571616104078506342447477568092147337327674517353271018578933909394889999843022624630526799553886575499016486531003896010486467427698525741983875986828894214556978684696990216086054653052460184151538123974380231102841517717288630638575084860356986426650286445682749159316382866482004862498682374945952640467284185177061034986060201972609012820248378828878320238552395644736308825645686437716636282435945386665824684332588582574814842630673128331808374894530467825554691678841093981850695735594245897960308552783745961731319891825506166051936514563771698274964676714557832254757439487311793026808530916568716396990113106021320057754039993532850495313021525058241474872700302486779962865748226716860310580762557666092573439534585522257223936298955298589325283511163188390708762314480929811182058628509486111612389913923295028059510016028403590673133339172340281599332310419569924436929003786595698156419532869850203318091146603057095429055367687675002547966428698207766914680049164436612378175475535038976689302559638480492511146336271054765903083625162690815382786328120094291569595319048963579590228370977867821122275743567677939799145442593433615479960426325404783604220409442089835400654812126861934846377468018041051610515663407822827390308783889755566394270565646952214450751869670331760586731366117140986651708758504996051573592418966084034864671561379844770172147223968928280743045248657604418544109712021872828951238837005306437205343975712462478349482000163671704196832487421945070454885958979891183544200047456065567529754610881593230174188208095759399095087519851111181979011432312485580062602521949284344720464333313047047745185501715312711313412587263337419352609389035957682410198632502828436307194683727067037702944742333051729562263292735321153285627415200942478478431383216224751431062483944847018438088649841222936547840517597418027970273703427678178249194053895095660481906156060136557905160547163235137882472204612177578034686655802355356279412112377298968495753132602249275252731815252371062510875094632941733102612091791576725293450038433162024075644850632584715028276463102266340407380328822355411147427917549087205499897287440315341032940729883390525873156080833004437194037821581646102509641598749316577513462459053390902416899153789363623892452879029141532035940959144424237245118355989993808323258528438693388908929912922995613767453890830453344663082587760165396357946260115730726945465159768536551391317120960451704121582372146270622735382370937255090868636083425484496886034401797005837317253878314837864754004210469480143257167751042653170883278528759176959168017908949234340628082648676015635126518699303253669498166685568276687362515110680920514217006341896051598632210958663424910516380521163994293839247181871646434406206850760654893112252727564936337506975733083551772061622030769370464747341715255194929163860590055330000832979823971415796125549804058092970641692079896092752114503552704887217030354947529531635116118056414834465850942575697043338026701124072590279907103223135459258366684390624740044419764596701419826254095947293012938834735090713909313472893636376868266670259533319720361756166944273148502789789483919486931405368090433889015690655667237301189771239576591498038341705834500336888853144175182933338719966345295105435620775518356527176493111295163083085594596788362549211861309179982595579115424837954557626240115693647014274077647804364251219990509362015472384535379292652092133095975996392509372940111960714371502753471434991100572332768020711283666597535033666332301268687686822137802474601578215722010005430310263517049308444628389114079943802690329418988684471271486583823286359940995860246586167630119224662623797258323538773186281501365189138671843951017470944681619702823885037344330540875962095788634851299352670392342345791546111565951469630108142949103678511028275649265397505569368866216763777843716873617143356161878463132602409085500334429346723443961016367582856443350412773443808604605915450056454590588674396440746765608438164624045534717198519151523132426639203443855529974162389595077810135197698229873900269574209932003163952311859540880797931457506927570279975714522064306759980883499658115880623245533723017634352224756667437420478954499381168905562212724950101364123532064884828135016857309445534896246642827896537204768331479658710536262957175168419252335980546642705051005458509991877973545979324079642439535044341323791114937289065041963663536837215586861820328813479683953834304815506347108543431016067939952500996440333976540928547266591120501956981312602592475337119533702760911810789816258074947815706201079467627935813639654050569211283058375610505400536769365665904996416012174113501314938963701675063611402295737565310706431561138705718987105696287535958188168889084122216353989419302970457037830665067233311913598700109728713421367131689663447726441200355152046643470402054442424319312144203534732335217525603615340668714961224224203670346602036524530344403410333648965683858400821415030351514690916231360908623461919356232362406676807401466900302029186423325888456495628072243993914065728602664094636343769873483153216055726490789777785411116534140203554287009819319581682938415602583474897340958173279110256712362373080152210481001028735298771085070431875990831667123575165653524510773592024345762752204482718437627040411706027718193900062016634039792605195046178426568739974122837962622925669237637498251316444086582771622809237845206401798419701113011158963757510843511613391164850374631049905409174916362653219444747388817969288412721181906646472978446451565563943305707515131322582660906305172144905053816897119431094577647026014753206202375032373476644849796097969567157905036579795987491600692386039678774587022647869298352365455176632705465590180772438512399855276696090052567722415209225353640343249302636893199152524584185422224727205140160271877037484219935381885066405087376066499102500271700938407728092404560783546270546624010764759554472062282149422620075505000428366168234700548621182896165105134867845128003374188298087330958750399037074933495721847907620375886636963754025921989797830982093396650084236189162743004589988232817771408691805323874289434518172889145617817609936471106770888535259404934524533436267305813396649695603746123841457809080562960888748742361415576991609717393143322714685181653554477132179941396599342879998647603194552582998025299376243157561030891625890410764113926722074531532523882630696647967164203349285416802419100145261348243153945761116680929653692257430403519862546783762129208857716892300106583947917307605942009887330759071307589730274062127440187517447909805772701811973600748447999271480155789452923953407708645446474325944665347632893455946874250705639118931619772877981679496058028396591784993750193757081341987883117890431770413440138985362032605548391187189724446977129223412556785839473861003487856213390465870391716749770812669966677975684750706875900314782422319350763300042655591073342582341393977624059534640397919702330384877632438237881882214736378502639550685735901151523030034774020835776687775332543446222067004698695935914556349724289175270692903972487933770330824199192889821672049256036861084518042059978027314232878732587760253087119407979707229173973640281464399611623298467326593395572467113487025436234372800542583599086753334871962599833839559715937734828464940091398312609338870244555116617038729870840124839523333450317514846800255824781455896751142643813485406150905943619555709685443012446290471341664919583312760542916211136175381499978953837492207475354069213073805059681041211912704275790166288650084281270890087285971284168404253475246039301130043783190850584438770002635749976077473567018089946525619459097690451333854306044862122164551349828391157330369043980343849210642603630786958965326467194411646658466089113665251464775703803037363727857884946923243263016431809296829879635449381557010019811410075043934850464453703143979190389758675154102064148158303215002423093766647559386722405600606929153384305795002901332285659378813539471293771998537887299192442619720456885678811459863074867855588787057953715529759271960732794627866754330537260775481718710880471399995246820205413053256624150788241802679299611299713511438457107732463325159996640586484431508780463628931419336136260547103410447590479106660958789344043503259893752093557972467805355900750271137202985249131638721227042671653421930142440913040582677935642382735414367809728123050388313688675462676100187136835884956383276642666476592398512488556157567702516144426580354598620458188197965148220181267807615551597497619689092966974053487547909506564854692515057194898456953910158146702954010403412245452780430965606958042103066490275697798820088792534820396352379523720313966744830798734726194592926759824487823829384374350198122483647891479665115928492384033414557305806218899342382533647807720419189844118146011571180290766671816490066618881687665766359361455001810458864283618074144602733585084855575602855866991804971912969275033383077725550260379828352468576394458456516907711556658629650252893157271807944975735012169734934476946915663552349205766221199079789515222772038267068856747192340846108692566436973972531278301670225076070593851693773137622460931498380155615529665873031462197435338410897772207315427274478633866544093154810543655095064528257935121480172798455795916512727531182067177588515175115242573311190547317863737994341898371835163856793899295303645946627081206963398796206241706779139732214222789449237237930162766817938570147039813724176653384664905231548381718863281635523785302203636900016844155596768626756114589313096154741909187807703340402593954170442575073531460817868539823348474657368644949960058187236878168913371174090840007539158344061374820329185103354389024155555538671960918143216197922201193442107434299972299462541627234137474835959252872470745344573582421001982051871175895790145928002338965018830350529093756297099881245893672275317355431513121882013104904944508617992449867543589620755984391061102419021243853305219306306719852344636568433386723514963083655120213990015925717083735959750009261158992927109474499202023681513888452319978135856734761328002532339470652643530983953280993889754495281223558241930735938896707669979980954626541919120988707328896248385655300852750942173404271057407916659502209803595008414821430972214617044323728220719621515306907954833553742395709212021510025696271313743218756176064734571591950272397827043192423863422043469800303740708428780560977189252426793728859396151193343175052944431407782310204133724595878695937132873248388468678711128857119294299684297888480783782764617912914465518689528417599619866699751997376760995479240203512202990159978008885492513007781805747758676523244076337042611510221437061360119057601434112556679096635560230466977292561322880346636177809077358099854102191194703188944027310801798659687748712726140282333917943726797204500167803601103792939658514670954267099907839158645265767710374630121743636607352876579643357572359600782255343522166626998039733521146653182552756081960424835027333633127266473167212409734812199036312369829362184214716924093231762685282388377083997470671001606660854163974707082129066097193256657057340426824539087718325360112125368581237005955585047364743877902293845082836933313225431005213190929908953352574772695139433441249634838326058293097264029465940933468607221746835260663597389060638665932335465830278293935791871579549787341055151688233490419827701430053953887743733198931017832313965398004998357972845911947727700372786514121869047199778718175308999331967234593655053609188312448970914704228727743022701512561402793081171999424963012827215800363469240043193137851988737871705063659382310344463203498468464304767641529473421086112751932756160930857984908185653072606046314358603857612997997759898316126233391907205576003081456423475497149480409302220542184360627773287935411973770811402140689439860229294715127086225844768434098065627471448431867559006156522983967414984667788414302925512838028967298380540102809467440899641275380071634059329726034515021507214284766533906307981759414499262021138526368594039620157628872970406262723353909876312434460727910927820256138399952071316022482123058079766137693520526216605849311340082850732702088140325806346439468640347484787364460190940857754337611541325127544492067930654434567831450826529202840514161291867235068557933379984958228129181724570653441850532921741385534536840508780366185853472735790866926290636320893186573833457466693479174014055720211641817467768104231497317774875760771224849317118608888271462347189383448674991090187573952559076104890803400358256564447932507357811092370807878618392783974720389743752080206144925549993409424056687246854929720248045318335465226767831780769894285075402737558186647972897278765834390131745746660601419831231846831969501611768433552288458760389260523421814582226835434581342024444544960413095992872170547523671806768996661436808544899384073330049513310131735495999865019996538827642157398677487218542976649206049898417676679956803592532275757036498527570849486651286024374657410902527834979993068423591650150675858340611345253852520870229584006422440374088739882358858972105105367530780052789308011323663982794122967320556407945406997091325399277431877892227138854977153780858685434049078533712468423817271186016849640229320484518133074143206063760909812986277209789299556616203965161576782261446577465120674260612790961001992379171624567030579124344474713301299183991706301306384703963027261026517357732240942998050006238259536919437571104171163568702330139449361410825559069321560745185198121117762799094703958399346519788782758703481027543564058659221259726013569776009184871863603796579685043235606159806405132913102028039332042058441716978494827892331778989294673266122387674829055464903536857809229784775918782449242622885402569411971095617823398774418537113616544177325865547483662697192592269834678397086271678470146452164203390494670288042590087394005625754667591638608430305226851547803534789762877844036255769134992823439033819832582590348418931272098952096202447244014912231863077088805525174471944332954992582191864877345463461042054674307808102500052739613217385353003734022864173251594101357096232549085033184180627163050314965447004996920746629562099167143059167278739344916587516859443900717842263687662313197542256887423065621250325480886771062286887864050100069770099991745877390369087680319886319461135587068716469892716770936758058402180660048996284247894599791568910488041273116288771786626722285677099695703272208815117461317074508459124474885818049335062255450860630252784479863459778199218740061400146148262179046101274245064058506028617955566753031841704754664786951954095662781936218179351786553100729144968601027616239516742218610174563672949687551595704490995633280071911659022120028325565352462790805046868657949955614875284085097181099510745585920761338582352020948291936247985313150270663991895163956826346433059065447614807316320376991645612207825164841976034763802572720746753440231563192778669780661198942140664897232418137368905631620855680247143077658318773117320126615188991293532610684684284477844751206084595538020566558567630974299313809185290821400066472624502496073839426473880869420621403146391690497148195303180117402338362872536760038265674486514414046829740689828260765297813965517226850710837375532896264036553243568652487151305411792868681556205658597752909358276275581500600435335368966667109458346255729957041884517450111850380769037383963641769909232097345690351671647536845746683299350022585863740562024616329132746432703870822823533039645952479334928140377705492557300544977193269094875570916848363236250403851213666287997720384736326009563976565934434581951740388006127503923550420367179260378790219911712354265172518500686432425251494001695495315142283931580472303886374621190243518586577862379462013127481337131614951761980725049477421406167961787871630846972921807482725764869203857940709210598065867285258968391799318413089455000204164821901502411742674402581011538154157468161872942811965835895358935129082726675347656173055281508797914919527276608987177080900796332206825245022247412969444949994287200219880016244864420750091039342960157812034488486615977706384998386646561391051196798869961064176716294937244174114068367329239054379817500280710533842220096992360117112860436197165059608890688058096290518515543500916947257395508709173611016830235262840390736591801987105064802830299347316963347087622187209732136562886417470986693944026285106533451524705597383969154214948238297726448892711478811218415730550506236602558178806523876483202745536199693110456602746859668505931427066817266529321035390498666402364187626891586892422606839980428059083375545801984544776973846180335053886200955063372708122166306671029658932895043989982502435730374468757756931228212232655234128425520712346004592406957518815536369774861703335933277760479627000493881626646101403858258535720548273523835119562951859592985831251868288578542063225629506985571298747012969208796125782591943647325090018260208015408164786958691625710318376289273566394537168874251462211757640233020118649744917390318328971697665397991915717964058679484159545325169686937287386899440122796638308865669180741051566190646613910757086579636061973714648401372192009730048315621494164859883401187720510656273418544942554015772218218626393873397022860417629901668289630047124200728028906633959087866618008593477839827823319724503481270213373078342859979809966551216038030800059712329835382010178624005597508953379872028483650847885237142951416936641771169035210758022954984610075299101767051254456302826863791739561032644399697302150767984901166220004499042383189088065440266681272797757950194205857713810157991897567346757149171333834621530359380186560858601557713086935217986277699476437662461568560639004478361453582815712831103058329562888989345748582295541270734922975756294813023801474137513600347657700087023541931569547172303137791379868915634601036947554497047947069711714711704865941795907376194394524528341055567004528780286394685062596812713460060599068558137298992958542875519844146434379862668551558272875688529179043001324597979861369475324077472741172993838448318430809738745525784627852569134059813756687492590178603236634585454021462289065053973910814039984022108718915614126541777075592084539605437801737238387136058468153668338177044985760495290172489576235130200363853575802916078742200897438830994279856321406493135340067973484051416181515344114889717355585392025592266466305608645833756843613561198136470623788887860890601114087907686982974470551365770478493889174319586702106356355417661699688187070328229443817867716503240490155140547907373953026161734974816597515396356748214755895203792511995404140914395666007475440940537795785195123348841449472662300794257467634023890350937630819533801327829842179096712612651004029828569680606110295297628852218402835639363590779347594329103685168078463773682955864239785402819916066273485581602638001031340786593897601551581113087903111381837721376733565704726708480807599789399865754124934698937963852784709184552338388105875884417596062250937030678860790353850838974729383127735227588969201688355770016355839177734861695422787536450942233577016598672718841172384347906254998676758766782859634322158255949833823711724645190976076336185773877711406329000495501421867840372488911863680019213243450960624498612322908923382672907902190052544855375124115023695298299909898408491880248048752635151322740478062001702787637222691089734690402605238101782085662871532512056416786502319659286084445418896992640384633085753878016169990723921203113322260778388958075977569648935354094707356631669737954667071965727663086276717852453410206571411189912797684493253170966953686685054917019229986881015095469906763694082802723184021721951699673828544953850912697801496311223165698774237324745365092659658403277657830661647980880609119525302149261830432679241965030569678522826919670455371171808885032179663212217814407367962900269232823622414574076908677391053950043235845612289286288259343391625617081975474757120854775612581653942436020845139975780298024578128933763232812199231873709030299725751381358670950998537831263429420206520917844165929368228520071695666908711561606893711047732989480037099391379861357447678043809024373093752006305645292982485763187350606117271326707393116653905438524689854047885757535561297497197068453182874772424243531698440041724875408849246003393108649879423673320187695734618462968189729472689015560207574337251080563426348784250438695972091288418725405110479191484111467330233661605431614215633471124690827481788087025112028177873016385830870452724832987172335720624136045196129117552106659103649994624770814945338336017540168171352858504901204379829295116587120780883341080720474322472139350233881417409842965349770186903024142418171424486485416233576041997275553452487412329016422874080265412762216263800320992390379766729389135525881311401894343437491434422403381710645207497337122276436766577258198664054665734141182421025457435640717751883630990872245801182991894646607401462776460174635511996660645824987029410156985409163004800266532252262776081728819101256996763268496992239247380549318778304642781599634090445371039058290949752409743688287890624655158692611182280736536282180193482326766957841457263604598101518053240995444008605479430526477184801017307625423657357613848689056660260084344971197660187354147219361474711667138167269312315757201005380786583495899373205661744794766491669987511779348185475992714623392884150420407494679482983400190350901657800890020030575033636490311301396207257611387593311130492017572652701724393387667984702506804917656050518950873760132828532574524978935226202491643605332167141812705278313709551389495515329550600189532775485289102234505289669579856390126015301438444501079164130189032075597586368762409379799333428863734596263851577080209882237724219391515600059739606483052886645896626388067910092056694384492824712030512078275179794513662423073608754064223721648740008856639390195792789940943424843739095466133440417777490096560909202606610627423396559773262283075398419647060060689517768633755636964766752914327306543839975266384008040960943044369528847328363583081557843665469956075657324242893744567075154546222501079367347111443303611637385530733172230182390185393508417030980176421072414660148042753712093435525916375296195379830339464452648116763994122132575303494597803555505263975289093088966529049780535621374952282160636466242113873435592497043691738457701984979119736968895013665611230875613593282990932398822217511869703578214890885428265168527804309891540933206718578666632433046350540369472897068577677106980193174746862993481809786398012720720734610509922127658884572074415180721703212908023377059475319436477294302278609825747347058787392796202418064695657907829537110021779849193368726672846094800568961577325059169427107719857620614105741865317634247993699824673227200395442511827041806083063495781328360195453474272265802860660953894879882890119396807149325754793246406053740290221302769056811033186874800236812549582311823746930526981166415991403749950153495302033530349385697323296036530042384415304802068556509804404104176217006631547687357283061833492922965582506588254935374998318923609130827076560646409730187427754049032314179260695592481439749166909404827975649666278396728360871656998955254198478117814526653468625161180478146897228299324195461976608374743835372639356568132318934804266460009734342166270593887887279117291244902941715443474079878919891713546163658493301167738984788972545997892163290072778897853952808348210610310444221489025422614429669312104856185084068762175887423564160607609728326031159378485904797260227194843563942414383795158726209684641165691799467679815052313088784288285535323374034337326144060514384703081896377692641380102139140945169598068543830439474073713478652429948112441124651009124293639797152385094704184619386650980820972164350818523240452565365090650219549941369150915554504949446233323677797968803282277603217884481312916476729673214228885721198213995993126443403723020167650558732687851970024595331900808725569621437070673055732898516887719786158059628697257862058803851709518835777318356095773340347637778103080586095425522702836013068228046943125713275014659562858323646734917972841142040518363496629855195177555870265984382078481075571897806193633929102904798639943154781826202630766172371285111081774874837550032545694315428940075335357806204219481982757045931273766022441630324593344382968142678620776006402682425604815378385113993134172297030549026615611869916983139529032412970599357023618314179181033793876835422983246023711034049505409736500098846456049900723065573880383310955416081040536126027106605408346906750684852530670604830391677315322182127632243955990799474767969076063257783696733426064530132331788508518607241699076581452306434572437346847940617457936486157275221019596701420794545736211642058778868484091343177482660349352205771055042539742802710749880535036880702260046306803331528832770526961917122383865503207064070842325773945889631307303469467386563470484711064564621942036450469577743085649727930679218136967758131975467103321974752501860891788875807236126303292893704308361383265970242565851416272540981081286884369480778430685307843703938603909318161905990071290707814977992076552228585043787495789124393477651942581342777425794848186710859284331596522378129883171755368424227592076975025384688739765137668692899980373406763377254251239322211908226065158810934134894828638373991004566088641283312810377530327259887060828031902486272833196220221534764964363961699362967502297802730791943880529072080848658850119213734076796095072422328707760384875770171411896205018151807680263957095185530745771856601367761114486778210731762799607172575450062685732378455016790760239227601957413327613817763430258781071143105964362627959204463688001091763549852880096562445045776615389190002261167613546567338210280595975564847355909796735301783748819983259305388942011424037769751549692541485970319789527842336119518169959674113576278930945998363090178905121951913013025010015667952339034141051273730159036001612188636169298730606501511347513847971050807626186828571671668451783331822047975198282515639912604834749918753992493505317618228745017882577131740794267814951115039591099585120708647281756006602147276337879817210150096199922531422486694480286420980555950429405376025523543830758886794122341399781040147844226677385828898240735005952824352408995128058447780316991524919965975201552916082757973153467699067791780092582962189932868883379673744667064575912224009208296179326516877834355629403873666155675153516536012745086906554666089241095775934692526649404648400335516195233072485743089559848072584178085078719267619243464804480366936345653335450911399459888536972564725754196835329632548338392096206999568778055793355748024215788637720614111580796689294534810996635910961790458952337018850849642533053621933965726772813158853205508914383543444074336369735575030441764613038206755986836182778961251703118520494969946179301716143659582423488637060316081039096548240121106624957809305446231379885935793827516448510971570744646559680798019054944627187246920783246972897397524471286374617231664016678355271126794616457929642117210579138908772750521622032159282931240383217264525120049179648206951380576410116017216882591311189373444353955589970599175917116009575876368118555955559765533045107968161259178055173931714903299882399499545752568182069668345180223940606206901771063039983593987480627932175924287588060562041184365116956430933805135434495242028037745289175855322290372604191862749760415951518913755159156685978015615410046149534310654238070516028690130353973845577389458104691238022358826323947537719858228403324944690482301859332364452010596168114570003605223473439176441408643213208325568748282171991930023507527511289358836557912883872437945574743970763880403981777514344939543464384746621600901597236890784362396929397205195886672073830158735967902021495500198569449152169922450572857120957491537246423886087910550959466036604720931297591510841546700713430037152041775741156936084767253568683775868799118766400610788874090032038683302119481843266219435066425988810351877246812804074797605314922178094069092005126755721373603815665948043134789830380943535763894071194121061832330289012218767401226047541085109779120387795691646467051099045295768177017242442022367219061953900088542711798287023054427263242708071467505633151731710400525111186387579777316633739227442503798079851494426917958677587660541746948913720892222464654656679173095824081116423880684175806981362268766429793835552006946630337673004036362851965256500433923029701320168115103327088026862895077723220263580168839704664301011591948138514461542602471862102783804521157508111637093993868852927869711533781223402153261568276112132599969491635069950562413498913776195207805038055107935327372420780324086438901564027770171183018293109024343608476712272960195142702755044316825563181274963751334968105465708067010861298775052095260592062452886612530260281188923259682078304072655082774118314657954480460383444774521374128577956812420628860752650372212685639454776359375438635949535373618850881527500322943238744981503921923668818496940525516182728223474014779403319408916837469254956509534987273237459330784687529886001366476384309288972236110386828183114653896342675167841295297710693149130815683227916149336573697795464435894353857212283580727130928438131104395999183313826191885133804862639072221229242477651664272843108270899379632250753946842917966635611456411492477379706517779285957662909296671314986543934395219438358315687325307679308391944473341851720792765328217340300824774066064562634429759123069445672791062164510712952923696831847200120752067323097030714445688049488975809590130774780462106952176391755034080256356264187471073807342256965133404263683255417941134734539450619985118259254313962105968291103759244962454025835193082210582344853060860357401540230951599630169630949848665777209125681317140786706634119073147288063898578813746782711709793524839477249068793864423162526667822837216285099011159225971717164636834110209723483976952300027484921364111216745350398949600561138931568265143569205609407265722172445872633577337007245004634886644331232920345814692105869240375663424307040828347270167441508851131149780862605010915217825907414096301532579242730760906238814889517327155142582667093587953529219817618243380996637332559798144735860930445023335134607418552706102937994452668962791670241745946876028702650376850866787325723306631718163911128486120519399620448372837607616870008750421605260273610058393031730970766018688406800207604380580610826525021202895931524816120417073964110849684235405285258599805391791020244586897745018743303975070049440484212087109297294731262480423997807508206632561477944288096699476887293536106933823056684737168477060915651429057681924897356112898806639041501591768359743121050668914848742128481923031276390274011779947230810415383262312860816400079122715683331709703971268278608003839204589283559989124113777635186305486846026879746609686649888823650660461275927746932698121502254024105839396849000566425562522219878437924421343705257435410579982407049879086369664480764093310762826421520527787387107970175639296265122736233512826080670048593400178476965211952457442376167762757782585828289044576441768666569301062303651734420965718510351248070409081851893228670939931061358275126770105611852117421106531935213546359945448792042938562044013597666564690735791752154934105062827715332893136084636801066352058865984751225358446560127932065484462671018032019316153222338811754400641678272656442230925328644321335883794538802333400789223370569004032521086255635791109269230600263545579913459021298261690648864899484663166404411979640717262932288028157783520486424447539778858286926396630142962223648240971911344335333296825133749853698000761117517694998166439849012441517518828972934227442522828009842691355333133988346362918898008911242460413261628255163745207787565236542152494679540708050775934668267353812664441020534425610636405295134688774106141948176978440304213047551626011579079453353999518499670246314444278014903290029313077139990048059377885651558651662702252019482245746955602408468578135317824393193934007394055811777201081137668703674322450140699239000918197344774031576538781348233451855025945225417935333365482705272390603974817247199333477893392824232114481224799387133197580851156073730868175371498650353938652398318787447208612852318064850200094978063042146476709945714761675126609403557965386359120228078883926912835832324256687864653734456676045683552704686354027002315742295917664343606071903764607008377837877599097100048827292775069589719606144191373971381461318117767863857438905204208633560232880493860090537185045706724122367777245281824713660865935806164593767990150913074246898982203917564598016997785741433392165463201312462672624974808025423936835167194928536983449402965018112216220470933352098638361053193495115094863673978420798513384579848654410995109592173651554073559858924304346496670263292290962150425753046580032641328404579189962715480470585999058370298027027683761747273701307945971216225043827179256402944720334354313735630375355031514890319138026626609541546403969175623872488794836342601922926120902641419104462006521581383313324120694835762870357339093476128508097925462285558563837058340750849013167824866025799978354009885116583210114335286164876575622270599167254243635848084134963457363516484966253328104112855592389298752129825320409758613577527607778628240934487120906931378174568328999727556904200004843515025895753989869945951471192783700833663348972706783672078693180827229283343428066039879363346207107343594377288556727448175702306192583388316474613480260674543623769346373703462230153655795595764234799299143437982766082681300053617741520155994962005400030032254684346650176111612777575712048892080214623787663139613819488170525864067667039622945731254568797589297536184107780595056658479010889407350119160425717147803340397495667031541569581631841546523880901981884371825581978121899042380111127768328017835992932860060828850637710995058513581786968315609966507034982839430524728431327960814965443761387641841200783723730171849922022926975195254002283895943836427538897300138428128003049625279780577690565404091346666863477158677464717532829764330997505214052643569767718499816819601356965381916068369828249880518329448972411382466374973583309439380564850302548976808547704455979757582471546841281277072430905252473200333444668696621016522328376935560098644632305921001760620249648524184816537101397231045016176712968005347261340386306871349073721239228105700944760133405325152980417910513658623061739776128992614857366894497022119469902859751028255627914083161064502232403164798965116114130981834980464806308710022456070140557394109709149559923378137201438181822820760497389001401284462834272660177980988208871210011659423065613561999050619813178067551588650092392139803635891821053292252784151498789006504844093982085252418795475277976859573324255950866922772436381118926439417050781225465319460240712077823157165047954340229173505740718242149396581900192952211026259123889875247999280380988139895216011480143425492909174179072474147949692986469607155051557710174950483964521132247591772624118875753108013835635500577977247484128264205621430133260521370032918399522412354678626012191076795100840976020978459066324971283532528654836407895554698649984676846198182417575595970587919689447627796946427977018952442696964801661109785761257783420499718282809404708967920373364260857999293340039251150300157709028819841332895250370614758122116762115801772889075606681989186663558780206262340628375260261027906228524047411526305475003638453745307177321701184410659412520612544407879541182565076023494970754783538679480924745918228490513864646584805735433717516845592779150540848695923848507944347214748908909053184724901841096721064477303091001146839884056153048159769605329117938893735662548913093407602803802479432053574147526735329019655158831460943409168033375744262906003551737365022667825270520112952735688823387501476903542523077083898327061328084555205038580244781688425687490290590244139091158743148322310557369221041608627234553020991608315649435064067847232151356033295856407360158580444076329736984726940955172618090419714975627872238868770561992922252949772844675630147904935414664659256810767274456566962223113200518515380228175137523247285631190723794793225612105453682094703581530056924116514463172357892818447753393847715870440207072014795314457095597078948879639761917739043531352466981064618019517669711149165134796494884387543918710934847930656444883793064213276802558759142605981810011857519969314951870289142828279216525392563354466017181855210811951825901096798846157471146821757118673371592464765494549655287678682644235731908942845480311230260998686536812349954257488625915532675141880802235205190690688986129344550203156110553861065527359035463350482831677171900051599719418376265067579633838998078125439527041656532984854415617540348457983790966591398619936986077374859596838241704911520227391294340551854310427894043636344471813253030060832411588216533584618328615545207486085025673437764602112227269477076785073694472768198331643510542557778159156215751670778393084529098384476186068880146502131453693909722775411274057392110396068543702406470911721702442755864970113059874098643958596601093052155357219430765303613464712276991606733416087157281672267262011340150792278251439113582924774685868299044512207281867363391395001114454396359927597049386002525276575025144306004543196098758197752532636494913117524984863710741942965304928904095982870841675823289147496422137269456280495372220654701517589439265081085184056778942773012137970521757585048020469372366195163857608958516222875611159192518193419147899130302637774081558468366718668943545025148125051344244791387206107417957541915838477409977344662259852400994418471337485312879972918440722200516560033366082713713096729459990797842959942276488614041275519184974292671557673500241872830611923169373068519249584568819162204782002012646957803855901205451528636831738965867992175082347866827950236655029338203145742387644298298575127730679357711417783479494034113830204247808102051983542689068736750214687001750569625504182551399992315598846896744258184765306764719471344649665042013699561130171838918782115783553949756367267981817246435178738239419303590627130231968663466615213850717649850812983663639987276693456928806477119998134787055078347170947132192158271153624167470190882690909806200340248115135747259558153436437873144086720406536167701840291420129440518577224518684331883340044790268926526588371714975815965401105861161379076576519814097246187394068954440165014882940766594166009162712497054931094367793980589834127691792592525367112504989347238564847933158232386334182682116975923002420658003758284039212096218717543007814769055331774778848547945766007344460067724523781803359402546856908830324434092617409664818198897260082314517736882763235146305986033303196521577241340022392931166000075665486069217528481047278684697837536383210128427853180119070182239053334629042603309911593174538432389496380523671877734230476950924316741971567138412992906201382902754359179130864051183833087112458272024433533904206033841699023241294975237479184609404081586222995771911485063487358316872011572371863980058226597477922847223834743670873590375352710868561148675297884506611011336808613878098407728448389152528911743297297350093279685736473762565697510291020611661782776800874624133791614444123239845946143118634240049257962813023014175047675242549039445856727530433357102366164219545541340184275539979256194568868054275078245014866222298758595691908126681366506292260566606985938301353701552156907103230871947372069662487654913852224486031197527178527674601707461944655404731577336414864489802467375935372976440792295749252729017687954713219435422132199417410794009934472768436721721022955330599780884004551763307718347579911166226957913108878488196836530752451363743802740001585942370107062523644027781451763799654145083302865023574808018171569723182040194942133675830410192411666286505518973208882197536587065749348555495942754625851136570598260341295998944131233303731290619472772369038134090512017449967489418480626072005883220042690682617180119700180241057697650559634113996872687124398151736538503275506397231929545205270162148587572307664023205951229456430186311759931557861896909957654510375646412747145833803306784079112555723576574739407955805641017786982501156089636097238646734642089731314711306960828964572509602928257289793808501344326677103709349776554423612902320687177327464968059946630498066395739083452748828124715860327348490583107000310879815419178125224450448982004309452736756137727262229094964176923951036208148748719864106279043813291248921365159656335105099495504005882190014005286895992226325844964281964649889338486502085262818075904819495335316991148060093046242129372951439447474896524970592794013647758428807187483121870709273889902520886684799607493594554176162853728579689393762117788347277511531098737350736899865945259472191963962064220310313394796713857863524312610993229546273121197272527601260710248534611884804728998926376494346944372274513180258734430648344995228965384785547240716509808653630959562591796304008997902253348020169029559341205152080070541324500642946559014271423388945210139376307320440798873275889259203871414050715309767088099537531745985429467247852900709008668311898940811034310690489338842524935447197802605496293987765198472978734814818862272945738211748917183183497920353670764624528920820970301859499402345550591023774264801385858738540846234069940001425979346171467380167177471452057136950237450317426063322604711548501392808520373873305388687744311940241774363889567499293633860891018371009873718544064266072298730949600691250865946782776763765710831924220434272834970075241154957336499715524732268454121423116627651671604956711145828937006120075981332942347645811303848821690095497987902742857577308568857467984236465276275355040334441577565634857688105473438127794180219018650684278479672899895609759611883045876802056894071648128504071426207013938463091037138799485347043727649219538567304615281147329906545897725869496704003488502051749613730507766975243987842078352581872960283032376945029846533095933249849083570764886461303209336820942724806887478382009330631800914624735328304312528219017236763237810260409156355069991781323520455765268542413142431937103364147653917393852677913950951235796111278254732843879411684038744745959536391710408632485450124259642399882860512693692147603483006741515937660627364170709696427356946895797394242372101625450425701235020047782230792845570193264083009649508584367356721075716812616934177539349609073842466214867195154597936178316126465885450397693762331190068318246216002592999933996655870560546364711391161302689973577964600160476662141373356395807247342883655030649570237749740342774657304112487347186348168946502663986592697037064976298923013863406857678471977579332505904781926382246030324260153237952455684933393387590550866455851794945368062352667628033541767410650257708328708501231442699286583882781001311140190077802276375281266794687331241973872456084813053490240643301605928048845692074691925322054357319759839688783886440141785174065215031162396734344328151930662343737019232748611769034721736994567015530279215020856991995708921285538952709693632089166574987995983771322254632608586350916191534752337280790601526391770553671661283988640274897726936860445712849842550202701662835969622315288825616433555700117430952571607200959373529881659213968560585414235166660487941551761578639150037914086336107225203438790707089098941327384614202577773658339357021845783144400364628033123475437362547444961502478248064162719246770540280225775423398449269298069334271832397739241206321344542221236622228131982096089563476805532454122525459130858035513998423551406377013670408470333269912322619597494859420236491553902594937555970007609731751730022282572305308191645493419147028141360605495059816012377074885098359699881899225439234875557325914834697840316754250183703807274959141481936759121752908995074219932088490456897280102498188522017501271899016803882670478419049359718703552402052478172739934008032010450874969680899862006192776703617532698014967964711394199768096349281081871894826470392578147396101547829841990534363655271793012012664465846398187909249104199219715002525571572739516142250113269539204137137610140701555880920790229380136867004375774450505042752093442005000092656306347927480978830020390183808134282952611124484191021029959393397412168098451932385113143915915361864996306239696455406970334974007477591286821004644103647549969068187872068201937870780298627694389999056150328560380119117144028791923582659454933762686250897832128283882766475182597050249997969009612443628954131013691491053580515923403858876442236800470506553083768885522805328493514453752684026304520372445018136462176582458606894328006804960572084640429166774429776890814255662230413030318816396512194815051986562978999037698051770734753447828202268458063637382359300769877637992276155021440387264536542652537941128291719294930644709552964029536713599166001108000666670974708193757596072303337548137009937482851175570604163569260231053842996373355657296469731294379784168308397329093803167587910969008240458889293176878926262584939291274266252866953110485452270399375094233441397436744154086757351501445226654898812767715208211179524253547251479870958414324761561478054336269310101125940655178541103343907996771206757620279983850666925591090801611276783459098178479096743918797078341157271282105417574793049725730866917014773349865062695833788718520994140953226571436616886003320878370757821852275829897719083882878423685782783948264851990141989777801531617921572463657944526557927576446829844993981492032784819470132072109305424358865376938135479047755004212645018066779112370629253248736593638514316752934731457977773141243559057175560449924184973006811137280320784509779010829933221382274703919013083247763858914431596521222681601435277555556916958777880532839450751612787936213230631672056927994369112161573139686390113035034174138579970721218107858701668876034012946802914494200163815447121083796650131340234653872961455985635477260534935558449791728613843148704361346829708238024474716650108615262296969176407281947645393583731631226759486646289737866100143222394313706991226651600592765900782354902201397378874931659269158239634148072257704962063733084083741685431141544022673955649573350131307133107640494245775801325265266945355983890084225475912680412942699266562007245698929371141852779152637551396015429340203381301374429379753293277232952929852711524167329357410099320853311432502146314133467808064983144762212952111560134662373618369298332274235393654988822583783824540946850336055870601429563992968018047367610133185709488099868397625378518392391964384388958369016567029930736907255965070134338100449602817915462759238594897369619804301234041507622814863199513633404336375915189236295595248807458505072481719702978083214211930760501810322013330487529187395627985657857778997572924002838727237175615519574388651306601657232141286715257149623815666875454416391883328947296509744460497500521410528699370520952868001610910460677688285122091086401207590206444880177282788234925857339286518708538116214372046792271505345773969669891803204351294429491332068021289451574129249429461960069144020436014820351238779029617941359698599726270964044110290221868120469563340123903710772391146886271565114761032945612462385385018260187024331370886297163406060009579989477191676010451311842514827602004123388571557553410897333421804303329347802415606924922757563831963952586413304661419849004172864755121763193378185717635267405895369106187067139596151373480442873263699917365654465696308352740403779549703239387130041706311476543164090720209069394662091906160015738665260983611507100731276736186760420384001307522121654165393216611584066499704140718125316722394081148613680570659038745095995405229622539062826605612422132435148387633102837373328282025565533825930319408969321496596945003744976136615434192507618210793527221037874259725739022915682594266640499078517906185658514309299815887628052529639017835846106993824804653987116252978804803232344409200204644664617819105188794331750678512344367579198173965254670451704466208502719064278831345921267305572726542899952660797006825350947046851437993807771421328680470963953971651887644616657815452450921710280177662140763917331504647823284963734957656024673551181056868445462657306818364300471473883272383295338046267380051708416723513136103667747931595706717350738975653247926029129596549096271860799916278540576177989212591009297818487342322119525760724759140290035496393441553626730342965022501073894935952887296622588894869064330971876823122449762755548573246299683511694693699273274466264523914948251472198035111422609292269323789636717719213384529718711483116484116470603036666817864131437386147505531329094447076181983299020513861425580808350266943456382452440485478670542766291984650218305441363304054889284812560723428776052991413830875139510930721066732401619900895894400024082347741485099069752680941277892133965108484343736314379068931664739853200753199767523570353250621377014893102061920082473129180306660645610693860040972217873847592067662479052232105236037872763569899542983238069695497747051720555820533643414470062968908993732144539341116362353001827847397828170640204039817518045730011123559790221436913805770738195572166842703929368131691466027539516721879113964398928340208824460255338821854331966256268435087754577566023607326379402872577571763015061656278487039062975193587884795917305001935677582409394805977633352698257892116695888871672760257310233289504246970949376906987465993715963774140765496764290260426415001082678145999350325155314676815554483150339735659398419209223277739452772570077523351537362546389114603523335349344913409896822680525362676983691157963568285870407953889295562420427195803282582901090239162103412770549477879268330329176539654979684286672328896239547173959615315205559464410578277633171586245347789385732527519319198007049636943095090944900041006583538923910556137938945102387586541123356900456524306533633689513241604081507557096387721775250772709856662635482131547333950512110738099079891296279401779192610932070307333787137394413818914374179951611346386758469038678234056615267032118021076129487021373591000136512157872617355198055468615492993453714092046104621489555726985649920369012754183141082749149156239531126268122621461807942727266786711763171306536153797767100883131708527222694395556662462934606633608475082303641261939709315377985986756705249646848032388597459372037071805043645484036760448756690614103639963050238970792954413641744679782268057259217733231368733103922190581092162723821597482146581980012466400802573091954560262084496799965005519946046385886366208566178021186808959422425299284776796999822881565260673696686646967426168939443044274313899919721776567405072154215850839400141537269423158781836165707998596214509569627284265848743170454200792695562023317673761506936337915920672861880639120157137916411492241281271147261590156532346568043926117946645291493494553615415794912592355198771628164402448076745547746727870601960036611735573241176534487843191178669686183716963932420418836908481637218440498122986078402870070158315092346199124609139539799417789350088162048018224374723477029964563346980668565976316070968910887013867369157712569778205650564503987025925297145961584569520059151327639028924436096325872391071198688628387433847698897854366590572996978047048607989755028513101461786109346202944432422009351936005724746410281191335619269552911846317772795115533028238220732225111370509444099271322649015526010806457796329006800687987476530114532998920797053116578794828252495966723915695468931966394288759184456263066202598682642813252551446142888695515507105957963441608135557619005913502641777325445744102668086546246386776058730645043163329159677831952690264136685749327783699840957695290518928846881230669267234640155805873550293545727506063138627493373244166818000332489279000626998981306402919715095148048777781879928944884497840950109901747771381249198434075306896532688687162929214787655748448409010969237017043698224518908761811813604085814315507709115412108593242458802807869989483970376337178550940789783874891791809005841470793015466111272089718977693289037961739208627777206071711500658754300336490380593113664528393905912002993206523463063093922570876730878800713935828589292145723789709780005154379702150273484394111682906371424873648047830657426917690961049583348394289155026512587429930516380908778494477779316672948666776071970714795300844814314860160355559294742689844603382939422922119023169986294461043163733248261898702356330715677844510057163486502417215738939003859277722340771242624023285794042695823643288143510892035794556179037806104933689329654627500063983898159874995299497042484544765584237056406620625440194001290725978080367331197936479566197245850528488276674625272796329233190686582353259494205097816448555904324062749275532897163659907018006698581176061866637515683773214055622209133140370189415979471341134570587658825059011794046881418912683450352313445688677204674718099238640639002817151241022275544399914006550862619945493960849951449538468056351632476902245664805707234385725758371215684862838518755151165169205462143226451375393638110432487199577765609618393186240177156007589904181452945783018179378386814494933175703859926072915081433914489426021105091197043710452331127864563134184517856344213467689817619715719150001891796700952241178046533529534125231880649542091061752771734666863478179353658943429676231900547877519918700517442179340319140362731720501680010438690400822048755448325734728669337453118695898333111397269826182042122243235065631046500666819657129834759911703677224116040896854661634264920622388671775534993398625705298412760969993229684580735572790096723729693189622992584972562855716555374905085202995500952078319489801933534040090551791752313380637958031099752259404235127223395449362127943806003951443689834036644433177279162638868482505565038084155852730524219897488149736377696060950849881578121457875333416629754705128410201850538348925948088247927451285968150718695656850858830866764797245816752296870671225190206024354406880366930941387148558006016161129905986510142721492717207112497979286287919317498057829616609991921596001214767820182743211389078392348083065343746385618001651363190001111035986448091054330639551683070394956162188734492297933253828841845203425649135465242103868777817017560936750402784922865774792588339664090974086218058155309653006073609568567153765859733031347353390295694519691918607979497225928600378894801222036708889429372086594666416247416294964842246247481368736449362219507340845031159157496193959039611045292693809409021051396268532826312516140820957284809436393190077098711978102897015100230954724783066274187437645203788498697345972905439118085857482707530333980282840948665137499922827221931313053205622646584393776684586861122670962228987633407147149192817406339170709885716205862956203593509537120102921033247686170070263416856031019983290815991269198498606014927698148648234174773585236066145546724560619660505883713077962099795711880584474902534834734035700595625087252075137134442791230451813843371040573152850157137792455725300795466136833965849860656238369798621029792187414537856694796842119764140141728134239555175670195070539293379836680428585062433909999944766127350217945238478136043026987854228742085954322375686757792381449467976543782952980880623536103320709798510545117477050289554539665012100945799100942468395262596911850016341984538647543148731415351834795369505283256382865604938034360320850251705533447637395649593646849097277611610634876713430678566572857615394788712890130126872243285143096867051805847293678790096305177995866783600182758125300348708218342687250264438787714724087202694860317446382228164016740848418916552811885278432609410882664728174959057159335817681602380770282205106157998528243287876489869141038589070644714684899366337291848660183236165189928186698837256436355973648200523190245958166192410781511318243664546266558046308810271723782560537685174708548377548837111575397291569555796674422069023229516794194687302367867057480268351226147528242195356825550285889359461544226063655444297230614975429276553975110958230437569190843563656257216675464647464709628579515634063246241150934786772237673437616141593134290514581174069630122377871952325926236832019832890963975942434439878841103157340044320182786071362820952143580666559981012300513265580105111606076215828067599763202696704324567474799425122688741106366392107040055722609174178908806704656208088521348144865251710420138991452703678209687729882239326983647208562076744010380610398162477469530110498367147724679722308864491054852246936745933224399229408528225487200115015816655438439944305463586223084390901915264199301973686963870421578026108537923360928133602440003333294639146340156972992636654094434046743634209205221810764078978349093243945010188535387681671618585862746408570640275173768376345513210858299210136930373888279471118805243517142778596196052547003780002119339353441965750033138421111710104044674891782717172500633780443264569972632325515733605888765457593001830765661630543374299354351564923535961017009427691865176086283242982050654426345559631153143675967168328038646935317131440033454729699158543596870556900574123559944063727088041073456164518709444319773124450776781722221657985251259588895462469168112011246704655675611752797899071721631767735278197330701152004976600604439396774596147512378233256597425639333645622587037369298789078138579660714385262519166416231154582210159544071753602228428672018432405677400434315708543010425144584415830841805495571928645601093740304291138810011200163412604181706878499929814279173787622172528426847461478245571640171907494172294333596216192391647520311054005461934538141828094346514394833009038028535036729725221190743138686474691194670587224689328719728754651402171143730913372262849426742219427232161936461398947153885520851777142715791675605801617904262276857817326602474716606069871010117607186290795062597961278098267086304680271062324528345601366361650312038818829611988457820352419084740053522163999391695643515901931220202704056861066873774881895387887475230299378886293851525937298512151740674976285795250875189619486731326987710286209755301997941533476418797175999487245853150612536577552646350745847398934506403273668001190146140425577387960596428506879154315897249843256620292890016667517204516521006708938141124076925484927206833053108771834238648249440143843722947408119088271014720633729037558489645415333166731642228600716164750112882327073997685729072909201143815595989467673491815628179657180368431801673450815964032977185544413856316268724210769581118381565046200949234275784462489653851845507985248530014935068504979707654016183300908842416606662248257319107563564281989382774443201404269421891446628948364560624821520041816135086552991810645935421325792521008327988135890401163192664511495025138760748621619576118841893046096808409429700091660622028117588420009179933138279796884965405836896969135257618462044706885590848140950694552778739345385758718101430523385872585840902421128430791757611267411813444462192458630385596920483312925930397419269351265963658517021851789435595010819854533745941996205200568598528692423503856558370285767047880760918788428084324999982693768940988208332625067142952104885358356240600069451426043907681377445134269244352252527510827420601622204048522110401877237363145638260339775878840288419351946051735774853750458146132982662579654547143654702469633303122494929798847267118001403286299210744418525696928725607746203042719334040527642337941081514474255751370743460613221735228815545784594136381915488470185159381775485609296898859520205847831785231720415602010985595428141572970346338314732834333280563847820143740857357658794573452070743576431938182100996510869949673640562070408627984083608957617100849227546489579788941599268118407010991683670217857271261736809116258778110031304908584281197251956179387118600041880519796418986155237717574529425005235593236449491449783202849393884495818001623118626215050290326029391926624820664569459053154341367372957674460137138979133170469826068769982259506148433313782510213714294046556246853898940814755007097533109702284590931019163229731253547787702614765726832495408341838810277582215866802900859343022840553275714552513377761541082365794830316006645840106816034011503559289805295857338185372970683956756054304353116644818209796666473329569619401193153991318845252139742686790402424218303756919427218275273769961937702043543979525086075965754172315546177757603206156943837375087922340271130983018881123856909395332554181334175608166245567469118325301691140118802886464930335885049656848691755053013916465053529260669615113188768040736895419055598506471300268648297984793951011613242532135698617901889898581269801282559155651290623768327069768992026063713465346795861075961147163627520513187494037966192105062568631083363516785892453731329635182981387312025115782674043571918140947872101794733844681358245311460657160167676369382083664629220038323558335206909305635160030002365342056332565119158902563914773928049315655438435211334024005776927364937315394056505593219291049068794758453753464627967479074624143494480553459115727556638857665740221680266835517958276615735007252700937410990572111020465878818970556947189070087489226332374241848570437644566699583154494542446087492406911862912339882980489116201392732853615606059968238616712237757498240223972720422277240644296472532794022230803081058434087767441906984561537871450966168427496097075462882338966296387089388658820972378512129880439671919514541017840933373800790839692586569011635254986513143605670583989832104428145208415651885761353579107544014248095184064233755958976783541010236627186660003542584628403831645205314739014137863809026874643576536585691934169237866864064172584021296463160716147131226675896355674649482254162289081732747280709219683482420184859158825754359791042512262193893516952180385016204027820976199580693932729773016210835182895015769974731665248650022159655315718251569421314090375353246738609702512496764610160533080753519870017337513673683932096703688231344851821701285198502878699425163776941601580360065631062720241023289765791784004942231457305442392352967803628120123290119785153802225370611102062494548946830000124927964384553786736157560523399845794026348051978004497019825356966435407655740638667684241327330373972016487174683867706268742240629218532389655407203334283902348367800950552753640427532325232260614575599755723260729989167704926962598913554588245163504323261585603054777207783714923400170055473622760300077682379685666224483909456069428409804616960450021716671442415841168516879137299170294791454795139029758591610506169334644596638620725449006479389314289011290425694694639087589175144810774749710935554546258116982016603895231147356129524264255415283865892262756916320404508657759893749684995786075746542537998930473280647772463784629743433285514878041668151765498426467010091012191439391431338052106339972202957354996038764380062025470983149278151846042217997087114341600638392482293838067747366135110389610435751626565219436480438029766685653162995900558366687225876307635318784293252761849242815455412011486859762374628299381023833611346761323323624320552901976378054676405372681270294362197022997361324580859778450623980727164061319053773194889329339362601863019728950880231032403767197884393668535510255727207142111833765848192700322924051460869531948687526745660101904180815942268428134091690441731111829888562350319618686634853822256526749246266423397027593335529031849295950516479945183000764416714931233358652420300810950372622627794122539771698200767342086874062323707475730248686554615141733291077914182955333969861546456524164527376753581140999626722400086503853924089913995498294568834487707865570834060200388361829104952683273809191902090212393066947583270986354799092719636580802051365186777644819669883646547222405562833816881128696996515711756022495345230091239997094323165946375711155533128024956740300861847727783511441589473305709731691294745318243153510301591739419778319463975557268578847430438286812509796415484635795125326662772068994762026668477559917865445396797067309766514857437556525127470547860737035215886508824413030524168912377888077088319796690359254351446137811940381652730094208036998535309536348810183505484235243478375116129533420431206390985966596443125589097413711921993809485152960769210753437322002297722123836017865414095661610593698821768035057207780126964743344415870021779501298560127434127484108720142107364996156391163238210148963071466493012937762595673421926145638608406649720960997822905323753589430489574645583772393095931058709171274127520360214720332641150806898778627901402642810277839592225770043519467948814578845247008305570349211590122718221484179132302300852852928230631352689773070906163661143065755602239050711984815158613407779835390234112950004437491272097324756956919362500903744421913946243741581094899945427188983028273529255188477401723566891095489859442123866277817020033823679432592517967367427011587291544972276706502740641887009851243980368858267376033519274339005379998396917167975136237013346475587589909199962632975633284694951870350943049536459588243469481809763820013123768375946212160294059847831490547248199567836209021777539977008761139266932500744518726578310213721982359329168109805713605600898087754905361922576669653705438006118778700572507105972466164703477653886410282968445504209607775395144773099434753327991284415703560952325974192584552240627371951532649402843862077123291521151991113694082293550475216778244912597921732983645943522108460221591131317455824586987082641606398493780657887586332380323679900260153976035538282379761663341739105325896458169666155919088506908943323003724956604136706116914354732564444466274599474801310134292312179786741986278468177065509731322386553061717849299626646581313408509459428833407126169381576930648431507396818935974207526839610630487564987032879254315592974612484541877403139173712549115575761733392160348841657538599072416825807318822378434394387229654182357798763991665606662157409108440196604306078867390833764177783860294649102628131289431046449169823932704349869627321631161723776174361535619578386463381246184602740638019126886436646916484380587104109358395616163641634044974639406206652544697402465201277017134177879048097633964641434320940565837363883210241628825113507382757940292995511435659746952270308075361379587485602088827465690639274500748234341992961905020924654865740676359612408758787046824810781858702935206894343963086924476837628367486587210945954867013963056372319628449005031446609966191342875086279584716225770611812032482741842355821637461930577419981459237757068272200574771978863742603955679580781424604237636398220072899570265480950985351251660751938680033918868661588954423537635358984926581886195033959965672350290406330243670604517648539171475723600356735748060322752474850636036343946883518991108038099473070350633660614718398693897183184705274514549663348978442529282491400390368056539730300588531958995314839965189371518877457203650007188170686243883106967633775697473627436928867308679935806279540299740621239260324351078972311351193290262358594991077034369897415029312694564344411139521048591089179613345334353197178790666514594273647627788565781812728020643654107108911406338793452513186724563234355614865551574072841850638520163420727279735288120480859947969091387818789928407505877883765016830888266284750564091076196048349930051009178125010576869973571363449288119271929821869187140317125574025187022711164394936708285695217768986000536835041184776543244688634500366030174875192371641341489981418463520873780527123467739751708716392775580440905090437556501296058161060117450788796057059110537069821171688504567682802812601664118640250769223303197022954517305898116296793487925907527343392826563838103259788717215559070452167048977180529916812712510997483563920452336324279625863687156340318353048685741213475488027763512482578095579292680132004830586138108305750584027158337507711026620506446281877908963151646902433084419614945615961194187047251490202968178020430281652688473464022086757261778755690980582474832486380181915022096054321023914747306000949612324406132700237549383025577156080150395012603473587721725957001915043241373476880738572091584557895595216046064079997222452017256360122550863420574002706776050671701628566684814755607407911374309529001051407437844960334636039910708081314366719619225522477838484952452762757089733371983484171060024082315441681070263909506415666310417412535631375586613300609663943545377324166581459954760504999312928102272494036955980229492485246480637015383873858352470640197118598258723318728574672830440990993037299553475409986146086284995012385407340529581709642274260882626281674155391144382578623453174888459743171241755985138724357197445122132289166340549183633938424107753821443869136008605619208266802323414503362678195572702698054464266371535873996096412377401440162156008214264455732317273938955127358079011106325138148811914259309319074303058182292230647584808676396238117934094923040246159087178486530180856713859885952361327605410009688150110006427421454748044065196975583089572392815109328418387713584389588746646077483070773608996101149238831247696987396860757716832645171637699671916284332395494577991301572909100228679069188354924604997177330894360927852753314538554220916251206004155506242156376867131629317830371034577130683301891573722314204526432556732491482533333025895876096611834806617202109112788388036970979916425506189545733876877079703088764171463309184237747413319750705213124115302122882141081236823340120175895127790912077031777790617261316608734965431123294697333352123434221324760670135181137242684234675524947203173473902893116129401376302168709216223051706051938482212085921878547933951054232936805533778727363589118933679035851852479343963870340610007014505870230423453645834600471628359443156805487054185144015351966757710877483355600123247823009788821146806485615275967622891264020993913695757263049295668672751606325715285778110761363078820671029100617066759271563193252427870881081389233915750038168693396879903155821715193970977524292896463311892470086564950538385862506542905020585092642423753683403907064505494327660543932415430776769529761264099055039004984310051693084666955685962689219225413905033086128118338850491900975133187086699166798163647758085192745552010415509651484223012107259816614002446576006187954241308154468740912061664562626424948335836801034890168421022154287399585609817457911055742179690083444279532762145238411613092140704199576331538761324213691954868607321583428907289804661893929463803489985164332172240439889308226641116995878663234577130925570548358776239674672515743914526864466897657150611875692278935342785721206676468864578882417411521123024054977255357200075392000260046423338126960832098312431393752070311817282638056107267733488608636331673388453384481422811707985198330494734879120496725877391699022919018971368978659707290979651307628420164518395517322747627608659202705132978209740986909411360918350105797108653417189348775004731163712323453782798033774002549909590113329056403026634190144858133869790309043026093810629590052237369835848817450822953991153221835946268563981103969069534761359005184696806284663939581943319508629062442506601244252550684323837482617424995079900847372626187075100017415888521854680765625655470027895425793078988970448836145802134417422056031888417148686436283569792958219181178373140714462818951215553111094180987330125221476916476621372711947023412348549927160561585884548927000593949940618630849258902468060260544818949221035855725464795593535600540420501187395907497788677498487537696688206445126042220335508609328323295834017912759653953456402545749561267996492471202490960561629856151786025660659209113576378213452050177050373401600705854675905555705428161971264252895776660051288168306668030920838087297341871232129972050038685670676764353532879407928062717281307417829798216162680545878523331700295398582518998910886425896855851199407149818783206434777867567630293076454021363155136014557034073629688459591865892644149475254238576013366489042710567418623628642767157052836490578203006589472756268846377281656142581626480096693464573072192238947839607192883125491413426997068641908810990077138427454705311691905183646432133779789889847245147025675717011779567699333282445481890790722643458625962173375502775700692315006388651945291279144770619308094454457106636123159010075961242060111291359572770409127402495580591643618263874587973619342935945245850183123150323549704467267022283059714606689249575626326960034299251640578524480403499817417484492521985881225788912702199683629331153097641582837881741968744757457269559763154180990410075051271353408471250016969742566212794959422621734326405347306393240023781652993751952918471909777674596598921884662003562107647308038147722949633143068084863431208807049279987204881241269793691990600476809373177181285228890606324115185821927887966832396255814704939911073023392469069789618725092159445295579281147597245913679751039538072705506154457736615035998899654705818340149001199753673077267950351803922616232054482601249868778514731992669019932903581687276192888391748214751279242975471071902757008273939335842767590164142096562056091621606268602240213836318935694671240569498999696339568665165585198150834818661868390346429742836484563424375271387939466208030442069987699462910340300153639233737418692394802021047718416639319592360153678613171198259184304869940275329099428153567154771080088792478755553215742006406032448407103325326181572036658256759905923341978498602462017367476110545461516674640822915819149291667403247548321611065280355894004712427490202952158521324709620589985645425934188949128310646508683198047849213461884405817071130388787646919800241062762390259843834910612975037212679914612512137091001249810217915007900153325371219744775798927882900277519498203001418600370790163478948508284547253630958372087528788872994187143561747288119533250761588699883338998280295579471429244703397188152479943666073104096541161132648669817611081865514446600764849408651883967680085218605308323758890165551551769777492828193120152444163398271697240695922265552027709691600594441806831341115903158544349293207531095726915023880327968245988593231146765496313379660432183912427205741649430802362423399877269887075378961779578136366203389544892055531328603684184147178455182377270613380752043452563372386555404986863479991320725304388864401713766202707292581179577457502735564995293851731211049320064118185459017362346689448386658331753836164434910957876648657056575537747719629382225673404441262041142872765211909106139240621464067839768682577743299323201526252807547928281756687806819692203313677558677094323024312702686361439163673718307476895588587816466128303092624669475480917412800969284858111997329046939851286195591990300872229928478762045129689353020706165490803187914750382817761275861423755352938616447659352486425651953172840437207943105051684677689228007504383951518092063984154824357303783650906954724757048755299172907754190232241741247901951578749933118688514070163111813936836211419245258130547977873619109880863981475047120301502150694909073059327057006248701687547516085244260089690410709914044547414667181239352336984709694469497525721693876725029388858228656090077196302804191817981405562364069383277711619014605840894016716116181620485814992714239901099537878721354410198153834961168255297481424440992566831631772665854127806653805347078744605811803835793361158325172752770328450875673182515601442847718677768081326758117863214588927456696371955556392826397188553381661571281124367055898456115821547988581790601664025704681680976245172175360647727284534007757881985788883340351812508683480442169926288300496971266046152065969988867103255052853321432788660339461028500043817477358811836496154224029216279621409521031342438630416133954989204455601137058954749776380417862128511664391625415088737192162723273181827169354443326937208556431352234121254596102467702054324318859860725422929267081452379042450151856782559421871965208954463382528778978997786385141199070614519180008352084104473702356020856326883277733184530957493431977448605376150595620269272872500600766340321801122984584016333494235918687773581630734353616123921985089752182159879026202412160328386870519182278446003243841503803684518737911041431980449028487421384004385999288243572444837815324708000381882185303210424939007394431648004197204344203342962095777360884536055847712346838087446529223799598603957217996147316738700912592093557052192771812798673349436576423940946875190843344586112982878457912755655185815719830179467159059415654659906510116905428735091993851069784215948802220787674679348498335171039745892095931306745323068058318435764582426241586733712506900230299057449269968215013773462213283421663200655584249641843950145434209879633977295503257643436951921549639285384157046921826633828865674893300087452217576739811153592075598703035028635551463080264938980768123995860803782073388984193863895377753027721251732115674995527809040405771582959244264750447295924380968490948590758922210196913899753640184364675087302407108921296743761952494534889920036135519044087253563260830926739887078652933384561806588670118612871292717316049011558789750829642178251119821327365946610446795282017315673676782747508294495527711430942676097066140915229047971873263399074103730903089473485896630946331182048896704619926962463468003969711320372854421479367303172442997326213710007527050678856214843094177183844105837080433211017270243658081324288576874506161804161516018095660753761713675040140011832949682982340520757904978771868390795316607436461603135753610571201647921213572502547620779255768665733903832148131094144645411446006505698324954064380931516217521125962168266710149373294444944564261370334112396890736023607188120869081047656447268651247119738421048954340098714649422427488886358123929412297961621144620228744577509882410531636390706435133250238935962394727141454470066009040136801739661651495275408624055922626080384598269617188127420531410613435302815615846012840241837772466645949865964746018009412052628996324642101469663243508621001991327247327789531143977726221656504433913838296776576432101586048296688378436838675471892895300710141376443594368841050673492812547074928368148121404559826558458959228921125039120244736563160466691014667101861150228069987154073434735214652978195700195292264713695766776619407213962244930626905966493076866142167495814583294849504173715623498351866451365534849156705005237099445693374306316614587237500283585570235765652819417833067962314234087130680956830715900884128078723776984729904409156888558069172587182712705249796577492075671565390807645597706656199351067624454522581628435015696919811561267792294439739688389235715756760328467608259197821258698909210174498389976378982681188679428798798659466865626223747749842459802625835519896512328119005546714548308916394435376354359673564438576973828317660647175523251489107760647166386223397537591777605387858243993821187025699322927796029079103979775824793497692193138497908879107123984612205556185661045883194744444103231538526622089218655920870657988223820438912209962226405830869192822602598571221068697820771413612902329113723532331767632280965883248224772042249218810704001163560449792748645476939218396581665008775525182154974447043076058758137633580989448500960601812833073552406123163748707650413444884682077723190342611749121422078820162514745432905055673299234766720774859036624338990168276362915353907966542327571410406382099100351002610731766685149421037024960233611136220879605111942101895572781324063750736594226263327701297162600460000300524184982564240592461206139510016164508051523582716809034139286769699982662489168081859334995225289593018937473939101812820067872035477832268577192209829348844770902359392366626839857693804582512404518888248065692227411570853521873400554269206270253933117188358312111911365320114756921016604801800705060624061174328600165642469139196958008764101906091387442120644067435472247689057309076999757532252685879255754199574368536973717524144742075719015081431217934493109368458308373764232944447749282208230917909694425863971792915192803186686555084401270132644211293830103763192778941956275039727879619985507502678873510973691922101242368617653290541980184473492589970835592993426440534987614759178719769787814715053937711097390834235956038196323950459038817455183187080976581848074343614355155541080870930816950342976302249928078046339888667474736600848281899770161279271433406807469395059655616593586296010989145269779941462645306582877394503034523433604501782026941393555266711462348969417430320207468453372127949934533138837491963814248684710062969888579839976737638106174072569547247206843755260197076610751504398030757638338410900639052071693823658364014049125987195978484827070341051241686086571735942904479736820370763907993475961568869643855390312813561801145007044915466552076985343557095744124553531659320269505063387564730630235618511059710459388071342068062447575080633979242823942386364322631812245427578997359015354261638902156774832270946091845206295345934751762043683377373054510490425636333641666893158853023899903013596972530131613101287979140989951141474087570742865985283365467736137921049857734478542121041305639967347462571253892413259790639797977927077824448597842346179885677365519090102413838511624757742396848149066522971649093228274351692917735694224539554634530764049050263591908526817774251958206393733520076369534434110931954750188209201702291874683155461296747842451942497586660730807185540589782535810232938717882833835808329091342239057287093555268247418965756419087140140703750917044018307750127401647172091158818675247895774132001510601447678994697830651147900202547368534642724160153327818950288892891184655946400487405127554644541323681361124471321324981919549471519810838543935883287567825308490446169724841826718056232381017650955053775395006602111534813143776081175718207750032397395673742858168672582848155066653524223741549854716564994969271486897420717441607521162298192901975563601896500848796926927766398963352461798534904932752416154072490807891492409713634047282634438000654682041610258593355899975439365769760911401531779015971883365220221038321765881181443310430150418162329397896206285948378942724495782158742335405262406598254294022342370207375941776920391259869282677340557983254362172883123111377601385324898081139182346742424269110808187140595914437231615105692861243389445778817191448180121844778087078440856704641027389191192639419308338981809088176015483854545963179752048996655936404440881109072949574803745231521195233398633549126375072155007792942741439095696005688893433893077479763720633034553219338036777574479946422019591238996748718873697001821694269028348273496703038858495999066882654697983518605400479549940154485494810015440111259663343741474645204828950126837034019971173602726648612035845189883475520922933049703774918292953040747696823727851131962223773064901361038487315339492947001360319357490440026853186796813129455276620746624414228765409336704533390543349049137135888561295074092103403471486044852977438366024106488556128910978653001718162716708955755934548627049195035606933570610057673396803808425075686766560232998421379299217887875855202281783026492308886572894905372601101585988996501800645385176679137787565980589155284550514766870675968411748461389993221529084702372746193247036438793994977585348152480764838895570396961375328902472388797067808265361439422620069418889468333030009372722294401400214489938852147789294509620510278403298080549259524754209428348628743543159694727535958268873501209036260988422054820854970696613459666914155472531794267279848501882377800262062690683800687591568635699794759298857649423074697471298027780318741004730743279530517638705305964701723521120099429667325335552890338037304050738000899521749199039168360543236485620186506622850138108763230812219390082515330029181786309470103532767471111486904868034207917977219532791348547894064263917160753728491804513301671410544099698396168095808958647872968889464902914859286955513134559849754280750240485261345149178624452065686535208216667406832028219422547970855381905577473602895343872228939383408533081481959915698061962232902660931464523499330215529681890462762812485068263526057407145117875149384589927414756854860542886630065567076373778165538209541632941463808017370463517321601200647677261893589170799233641322760716204677298206389359690405967735189817634581795656382229604568599668513581917280668185873164463393976412800238023515411852470102619603941132509660810867415472177623783912081448927754844486933706238665530584317149057721268519993158372018839904686077900556895180837316857970128444365972912317630083738385212088110479136782923237070299846555666320530127226187631882135650949917271954631426459945538624381018213506812780902872629737504756150667370682291934309263737254409291657295465985372773931166422851671358477920909463050505855873013271368165036091149437996779031449624224924512061563590627240637349464939656388784719966146998566001214919982257409578975616289659563587279252781186237214785213737291470535024971855852116768331877018045613762560294883474466140491518549762083632803930713564648740105539192759720062698324372301219956575688147946982548504844958092820928094194861952176082185547774228347711629144998189348339514479442625807724565989588020568898219690571796142204405548808063943977837951775455142315742570745699614290689385441520121249852996751194121955572777544391637911978956224056457400658635044140423330726250326041005457617946875520801846716142993836774862337415457201979811015023467791066444213612260907779639512518502681800267635572789150198253452807032704722379551069683728902036223101151801314427128174295756048453539244895451104449786472677000407665780538242584847452703786693232152546485342445200938835083048010609804267229972780012689536081673941927183618388216420046062607801558288749624546155386672852298796150880702322809388712705652109989166308897345349824878817577927354738805121469086794304338836908000752933481880802086405127670366675196239086553742910599195064367995929375146209500270133782115055790706554852461746891822352765581632186005772529526698702384717589041204138007066924748986635873815767237413432742641355478062917284871901655036455193643361215176891677756479390731342291226397023272023395935882391553970247818796619889980658177826708922714988263778382690126643344332701785014580910004763829881178619022600655505367061808976301146357379781662287134606078763135972513086120934058042817521526100061066913326122553808421129573846017775396727427563093649106010851115506044089742950837950141540182430116918123089407632344636430717694891107950947460941650704159781092476732610603742905030941889521200881109024280261655589799021601427372382633687394750223186870115793056577220020487264897082636319518181616178990633002645132983143765626479377979176371155278034935043938381353482237734700124105762472833053043995165667274780978991528432125803124348828440136554879342195777816188676192222619785024566363741672266632580740797446839724021154422710158303296700027897766350151025726280273692716934153907933105845550084477117428301414226859106372889878091244324077105650881720429184383492558934146882007274953091008823484600686009011786554881643921628108796906794605060066252734189659919395493704276509684305343341223469058684318867008963194282751700897455469679536304473496610713775607068363475101382083993972436405692817042942744311582249255376583095722454325576451510240162581296359638605921556042595467086521180141044045880438473223859478223246633440352915569930724402451323553529735895782463334106076795866051459873550893848761535365514207821326188314529184097159210824175498377791435150772368140662379255851465877905520149297735412223877979367741357370501145773371452968249994003107996643644884062737599157189004864539159555420647106831925559851636429047304484656145994224809687692200419806598202617803009492274078826026690319106745446518219170801922901404837561740505343540693547308540334818262486353527665436803854131914478301192267625206739608969482263792441372467230077706739722778384661765231086243882626126676708103118788942681589502781718496096967329747667335374476958160155761885705943530621746746283263944112535759058322332127203380420111259384437292750031021461386795303744972800926210790605792749020110854648489027539267055971645948885991332172226845533598365279030841688891960091852669775121030745912732509709486841786410121965785756636643409757033016929204057465988724472827620660185752552630274253067342626125753511079805202090951021329536354973644712079100451920698919625335223292766363080301348721004875728081895578370044470219787937662363905325892799223055425002489885218682741006873040573849038731607340017503546777167656504241408788762193607624368336837204644222268419766389261053214727303726178913759054813960973401179093871988895477395295717430549631804858148791345520035963486624500184433170775953216004523199891134273531245695909152674198149176270691823969028605446328705117623166805705821378436587520175927850194752615251476079809529960393529586253931179270453316425449867498115021952932489292437523422804733595566510180287218503447440160816118155459041179839356673982301473055248595875915068507227382318916615694340195145468909846420836466264550746209532416108585993518280016223900359146348061562790016958298728288255958238017270533670579771062158898148179984402188942908053826505362030155806784370807176638195257533058571153732154363418870648073435078000063041445477632377706341601108087390912759682433640169684612590274283065084683652656492328375236312889002199471290376428394038076008371341280105202708370673434386309677680761233569387287892470026093197539790008664385196847827287654553227503858435822146474990376535456468031009621224932876329344763481978613629729491999449931092248708893481072857797530314686366371220093024562476008386279849827098053390537343939598826166124415993548199701121536059128487455991198979446559291547265931631890251663463013849387123845549658268183472994846348336181740293952888779352972819994928547271743369342457803640084181376032517463658210736799250365413047172875410279944583990626873492539132477881918651657616786679361584413013165188654695761755512736045642417457402221099714179049956457165640912746581381318413257193584684530650546345405145429233472506667302668451174062140255184298041017383650541352396853973148726737908587442732838455268492994954518304788718946284888846258603000400641157443433457112554217393537692261600401511223405239697095031112852610820976142601894923275871637425004906186633426256336339904707325809754128143742999025874269507529896805126699443202793694400943810774649034451791347973411122063584408239335875844871536746517993114480447665191794123150575219464830425614078483226350175096465357849183577144355980292033412183095375016824884697327038259428572067402098675752136362583621470639199400760645037883401141410906622625874631608913918898227781393675901269107371753602727980758210218558659671632020595530228837021607212406912314942420110341095210210615279454776102823941027319667294302136411545159839168594770084094437745524527954372974456766201432822957244431004361919178076881008859850336980047017356765230158624118410192939135225417827243154214972538431084059070984181049744511789750825046815080552590429687777248811022505245698666694990985170785627313223856598969962531052163204574773230579806697594244789133797660346834249828821206611859198127258606772645913594112231812144111784440169396194259383765508681166407766259246932529580896141493123700722069774786974577125974835155435133619110327265492466929216194350867306319905585200674708664156187537584947499130743807853929976284038451129838436726315129141965462459114219583475823132837947426020323379349300052066435319253268939751425741167097719487415570319902675154504402885878178938726949772496167533741801857321511705421984447588992937024804851049291482077579281918582659739284764876401480422552908670401536603941343781570908022410373443691823225390770453002897750073530666804914352144938853206142090412396489324060901776847030573380082265971902752407661821841745575042415447337987196862256143928640697868517547861239480778456915363987094070221849005243228908531442800204704762497454777255910981702492839751057955617184916478408458574868360979771327875067422979016965559396433721052912004156211636555979552631958406519130047326390162138047848208639738790896800187223150301365065967240155726455080980755085061158686672498694802619039573810222055557828699163980002126093372134914438160344329648417637059955073114453997789111504949861350381236753606871849748045915193987944739540139420561107640956783019596991214694017874664424304731786581309245435298087541616360800109860745035027156678180552955351244514998128520532980568320020465946891570623872117716873777476932003761755684591089451505484671482006895096502015544440682490864918410978843825997474520174611188405357477244907598168688603848909984668629817107919938585594405421868577659487954987840513830502028781376416712635497859898491721272557784096073435774063241170611717763952818364635417420050376569188994200994490502745235860550765153673871997986017076283378107276253959456507746151859729330889386989965294980139615076902983404090630725702657953672175580642132588255166256397498212080751906285192946379193237753747323177956934972610860101509626458344902818656954466657068877235180364934236407142664075451389961136854163578755496013055217580132429469794152698096058119713296104130650920987933299417353466824728594395133340280778689252649971843742138736764805055315992011722716184267020420079585562809349937834113444514773438266691596203416391831719955878144358445899514507880680879618931770913355587709853107657733787964483881928585372149038607415110318078677484791274744545624574567727628702344146535333066926733320884528143729827321301258399926622301678565262967898877375072191589945409141730274050760022459279889609098650810624055905938229575544214159054460141847032529333871838465387397296049162415115689820614629748660926561960707616605415154417632442274454345969216604613419308010023757700357053247291541569327915302774514785371954813750625822186728020859557442959634227729547492004611982720810903341059964912512345335646802574598210294645729826883142961041967228692254813224702489108476782077983275250613118415712243032613398767412724205325908155619272907783163775790371161882972726659822462064993500919660163969973110757592077032997981220064056480968875094514130017791591423227611698567375351146481193416261818382127395141929307225808211696084721199120060625277826398964652805791195511150497925041232389727564784867889325102219333203553370804019253268867487880989827357043481088975710540516169249297952793270557467841376920725805907463068702259799910264232371345979929853329022494725321009340971527848465245355969045609851167813966499041772528383705164902936129923161882288321336730899512607538380629042650959868824363525606151861874431932184511516474898786468397830016041278086511852480569627294578771899769363107839902223644906002302664115276341244951029482734889581391596906983250045734603110967383923107387296984052235011721074439663338959482552502495837476817496083249676688726435321343578274874825763148417250718384588985415239806256597356843236012520665740383827678104449062861391379132594837531366628869073896809060995004955581344664436639225245589004707734947831795334010646320598142614564589704794425990823485980683151989241762389801828953100209247318441728164737100152950261195554903326977423241530574258782559248798009027295726110220162967080770445241637422943325355855475801677826349581753365833193815439723305205488254186360246513395641092138888975490602415654399098907596773494559705871100349037561693555226564645073621653548557875998669752492098627781445381831269580537291014123584617735563351956566458574616010798648821274542894487875424466666304592291190770015535255304158761112402497926781304142745732074950836144104740349115619884852174822964080361017388640751870442581017237003957148777953170279410183032603794258778665846218953814626448536285933383908593959626410991667167946820206515893216861703155538384398440353241382870428118245245453187715306901657496270511728220754481266861627729671692694436573024044288032768430156422948668430685681025328580861448346939119295211461857128589793974987908878508876439376234253296541658625717528882405913341954248667898560812632060377428414495167447169311715097400287201473134725929466985530839414888557450177181047233138557062916320396574334678269207894188519403649115725327853098740902640073353673723610136192247924179478911299209677154864938371016154607135054112900043232115040644710162562438319055652432010334893113252972850262209296663120224645808944458308318037955910079937541133563910576335893646026076288074939431458157439216900443789353576630591831498359620556251886816255777884640671589221707334334798615601645655226401635461965915755547193817871243036177760042982535073262302284011057830038204302625509537232822330325355450593589916181941403752143733717734220770688953736724311370820081630400626596140308107936533288117617578809368563605660317636498570681819737853174907291389987229473494926391097007130236692452770496432883115418951789976056706113790659228330868790021050439843165347936166357559604061732242249307653256213296602731764611276998422103094785187339059200780741888067944730820030463616037127277661267622370933035554531570375784908186915238067543266332502279572774400162475111503582469710034642841822281387456154189362573202647828732777741962652499583776608244733646774856563062189347852126273627732642626199622928772543308456579074305365207942366820653639749574295381452884060560279946468598630776548289899832531497944805050725478963728740455835667060192804693684186516341261424708079493979063230409330921373478484320834820901630528616104553324821220031028857457896814065340022468230818627910069846535371459581701938182787552307512518882445132421919175997116967341095834945801718745264963758651003366144491772260862947044796865553979497215555506519129053745513112937384308473786743645586504336776056660075776630468975869126117697023939309261830625411893717603017172514241691900355689348549191309881460182944033587215432544685007516564138025740398430921704888597408551850549479210364829533907666862085779381818054770550913689392126540598332876746135268874729799085927337445088522306577526012105344411149172572040192340044182445683228565978002135420847566651270598530769685179110914565291964812916837093660656408103796358147390586388244407905582850203076434954946435125610189925683190351283356954502623911094403826841712079795226488483002131893418952839941980052499807053917119186708724734289248248345007212751460202758228616134046653193135313748399177868658424531916072183083456358245020533964608771624083461085483973278323720487325667012090733584127651601713095562922910308216302759289210499995285735534807486661486691683939647765552416539150448145109145771385681210549168403403875167826671800522450997942277746007919700335568900132799719097097718872585412520038785733396828818192456039370480998456310240477033581690743065288249771695081138558838789171468266617992129353621391539023937346145362554653032538668899212607081036047680477429950443525285895403783467282821811644106976259448152303128641958240012562628297075753755376771546259859406263504397874506928312279045175194435531297253713386538078944348345815139166762372941469979000182625146037105044163611024094192391231625687735421106978519212760916575262705239414925765577806267133218376100263399247319404480546744587324524907257482247286624476520582404669515412816659860135424719179657346110461251768039918143220279153995542993357767357904638925733773425131908916015902977531374499838140526443060283034482219162981596715283166728144894334835659029684139818373945245511651583331163678899189595131641851961936871390392728548142546242377581206082789862214960597290855062375992018716010585463324629552632882418824493242630217573539624834845187054075029210726222866488909158090163608919866289836279871962408618831803819247704342539914382953551336501689512741235808035715952219079283406264238372799431813108821573105334408437746369007847461537395673692552671560636752761158138704115929709140751493587657376179507466914958790575382517322010332563666583838055711421391616377579056691755789626757195913807259313982941492981917643056670913921808335721656819862931963302956215763842003715545146976076987985906930312818073594085323240941407312466233710343708410797129223657805876684563845353740357956473776274708048783674242345030185718562456467547793212021378984456407573245997788872010323602090171795976455560943896782729480137729294933369962783526505743281351195087713517314798175282630800187798165154184608373439289997704204820101727949126296240482474859772428615138678738861462473939981086179763796872755432121333033687490158223261334972265439546032110675940453302802159238131201452281215600742678027584439276194337170487022907542640829281057059900935155001365013152475263624172248432019980001163479058364855311629015729074593509459046363449435942676745409418768754609705238362022633865996674810622502843137577762105138204271450790283569992841170909819824489384145843733957046217104131336443360634153211446070672618386684366221772103297714089652573489393514317081145107263968706265171593150455217331247870021562417744688386570439818737526860935875430244545010942145987519119709517689730532964836577601342465067269513417014778365006490487382171498320006415921430948344917577364568239152980196472820329686729983187011602956596751621231568930211531747589972397594792964977804335623389139227281354495375343206593708760516729910312214929017668141752596447688345652296262493275456411753818441167861130149254112034907872481075646148903786562167724832955970709271924549801998998426438510989624175442786731890569054800328022037361631953695094070510905932181983943322726214156689115627913169198198467655792950153447934837381586241790593178398067238956044187272758242977876690784655271859313706005508464858661365930232390809542453091559449059964085708365273378243027509613956953285124429238746357273037587976538247904892376145276036937926620399631258993130452820564421240235525932498236847823160906553976836091085144851535089219871384010928405461335304646306450463053465174419814871733051699552286801015119161362699213487739675633255098796362343522065163180767747175402806156990083832155892265872497181642523489017859398222187615841333136106342725160270858474366907848163330192668075232810684653823745877478959549598750329231793072765421320284931036263035010770533033613761966692828314096916344200149606416716259663232211357235798479879078019730393141500689079067569560307863539292934684511721239076024411492417337466115759048521157643657000711521435354275370746414266057271093645478910741224818910335495848157183911154661282489608243393804427312853220496968235421394254489886128741000528448952485850225331336384142676310707378636532329674074723356343402712249244391438190640881004184574423692954524931182975837046866122212271069941755788995718386940165799281181612551181771168182746839942079909303796698512232032708305882525107596462592153219858849648483606366989205551454786301367616212809761373574006704154992534472872326146176494103157910031686765204161450546999240670997086826703654140991814394495364737509060837549784468839590174905820903569110866245421164846783575365937700195306495221499860909195107224942407184633491692003250570504851945264369954247664536636781589361365823703563022257109591508105421827887956927601382175613068789591010036611456498651044647191192315561800000670676364093313602326008887882457644219302205490585101664295670360035365232469692060613126089235039251385445617040597897366392167187389482793035808827056335457290649306246816493608560600917389733831506998669288983563383365619740502317571868848687039533097806743131791172872263885519432923596062255610784069361683860040868271012771780540366100091473435206601777866140981185625445343941535623612627819327587061198841949955025585419295509823716195244068761057761547335088697290274449617950932735578025539889594929004721102539159272452395413243670815664575216058794530363689458345106865010132766620725537557303218727457663228134682744549905639498844697339437016708733508257504450589555381288475004043466548478534318237330487082145153223771128136354344291651015861694165675260466776116437810237228265323397783516830686086853365006391460704585077068498201496698804575001277171087448688321955887348627042988583470309011248495963369874779794031789509232034800680943319875266104389942592570747474931968506606571101415675971094991832558388477704490258258847250871379118685070211916874946178703991168750716592559571194751308174538199942216035107373297563873655568364049594849644550970204317813996568974751691756789773208388938808617446401684757568499158787030461613494892810334001224006363947814429635603527708617187275531187362473302590061874125000558948501815931903520311113172654967570023111204246229049300864750424474733453823111627813802290399171314732276919489259593744089438275670933778174092400465378014627447559274398689918079037486798376620061541662037537700811086230661007536025760961059028465960424956816506528235696384888120726217394203180186141094470070616459702232559914032799921515562241948927865281547691308803389569367451421393321787037223293259091913590852870345769540478311951862470412950542851792074037703795788855521275768780317123856977881379752152035631946407212816027158523985773488778650778231356110331320719939460674387857877749446061268755883595956659571840582134102026452849466712286158076247594868741699540295699500198218421597766497364793490685949512216600527066025163154022313617148651031230446204556454721202926199082979140821893473147357800960286661600170446138890721426725975548089088043668599051589998275892219816607603194894316874832960945129395292621344564726281475020186763337771579628137786790930591120823588155515600513575778029160991771588045174655927702984123673842576065085993544807956347082563753470816628619036440451839664909299353037427339533538016725964810236032413609117533720452318493638690579918506177385316576799262497640887122625499776931353822875220499157965161962168783289279522953461090878561218868902695593098236377004688127402635415411258122073634825712805442853311936727175232291737560938880375308983862050376732310262660802306094309424477602879674260326593159933401582372797896226729064302560203697198765614036888390954876545864353569527399923970183227870944780635525146058588329219383095333249732380759436279777511911017599663818817013288052618929044650913566210986903691232276291901873357487050905549337760397553752206230769235291579637410829961355560250720066077453927664874306846127637689107912171118688627657483266849173326463724021189096048887257651066346368326271983781849010672083560144603037939234193918467178376076869721672031279899250606273781165430248018446350140049005752365036850444899730440226619548192685092028503843809877130151567307141487323384828762547569195997868280729337520850538062302554644507090872441275656120452655683512967812037743437759444623173885824742699240446332784081437853741787055437934588281132889309409816937768582681718925910023335740504737771281889736902058750647043422013130672335926119192597966490518989871344425706675727700592341796148257497039585662652876983107761104860768570945008114510497899651462418913608229286730031886081848437671972107997694640559952301912898613693320079220254317028592835785675970831846959242329966525664400217933991410601129009626851148285697016125029270346951707658455260949618743737485869981691055949191720182635179028622683056045633412610915472041760057256318198595561073611473297353232395942937528594090352039636546986686219833223215410168465330724449477614380661909255882441309021282376815805935423135803510371195050820257337886211015745093121114156178623144431397044970956624995331776527209551835778966667931551022534691647140889088127462290328738067272643607755354749413550821186647359465218993790816035805842891896724471220419697860345773334234636636306505375879815305098680863267997009881333583541703886938075252467942671064041759049065468388878474416836868965375946725172805451743284749035574771777289068499382448606307107986567618811705418398679547800670623106131887133825392721104002134705570537856828927421532692666043323530876089372321035287274774207923021629905918799110579712656062493283292471671482063027189785312363106981801564323157253336039660647292243076901430722712288895022596573888889429012026557554160715750148774694334524366584892721705268502623017752418730180275425840756909239536963668667311024614821763774981117495378839165584964393032679359012886189635339220398140294337753196459237616429207932051138661912420913737926838400286038797970341995335894660629567772469881437457948840442344989321498126877881701378494896748670997337371999274590096431635095373325010999730356959312631633051050910713548328250325779233276131975967506756133271596967428828980019970897781254469459619594712580583734801441964750484722229929410073983802502690378042573418863670564100794703350013801399926092649232233191482382646014996909669203821795350795537951569533492101334481849691552337910050814414239845540721248985794609733479452171997667895222536705868192727666442499052688493555402959666990327441164100329246564629214919845785422833523995570031399035993099905778944374700530961021741202558621217678663869528047095345729937874091351576983893232871343113529083831370175990193832037085097446079611837014004934319817014935573459850893277440640312224634799283187027267736374911981446094557682781441327845552451570282183442524131630977211332811062359610038120472013354615159962843269876101843814587000770026696143140079506462820328678933319998334832806473611377673408822793741088095765268778599652049778643634313466414417177487544570130592161070019882126607705309556610091998304188622135589900492047612598151694649138007830862890907624538053405209700573135449841941429828000079918855873223050051118689727458280738897115406535413749045706085568121476826017525180174789620837274533722462707838747538286913046170687696256445579071716916916087149237710010331839443141657902725673582485463065127739145871577305902869422932639622873634355745794873434191123442182060730799947681574342953765569707472369612014696774107913889233672909702929267896327911493921031355376695873983327252810803096252364697244839680703549208132659271176565881027123678498286847341687918464891652920704614802432703937652625338413525312413544765839494677680993715072721605860291343339329760459904125209352379711288162020350029497553419094313828991139677253240431683872570657752067858554744470503260573887545236630259174353097908924600274105692374233572724068853438991974236636610862304253798329932022535134947431136643943330287612642139146450717217853224447604586639636376140587423040069504680492299534391042337235912922128395707422644179408374524434966945642159300242432643373130255339098308474231465667286152242201024446994551622518199316670509723590237211788098110077849458598139922096968989949380180953483764341056697947907852070167088022517243771625041103245289965042099825600538676900460071330147959357772522278557159859011761502832754658452265851389027075674871246724114660495951206570046218236140150499323492818377627835084271072985330236633694746252455897551725380908468163252964890019750703796294043617437850097469870575292318277686382089112827407085422757883453434180417809794512228005825309308664543039279996773239480241402507345251570842161270342106247467593278461466906410446393736998859480002426029142004691534469722492794363808203376882613783880829206543589742650364255149315270134842956128541165657838400556623812664961076982083984842002029695079514014804479959570364861519774919336783604089530180980216849172587330316692785301273075040679843941741892685001263211081061266439423935848174483646655750447982390937522786308540235787061702920868462232959985169314390117892889046274300624697485210263422633816599265679806907386320289249929352907007495983507698622951921802517357612946310110282153392806630491614269720900061254417670135937307164370079479848664870534437427103080483957943251054543142993644602495825494568168821400495758730564853413049805969662574934749681702357175990058430525764469570987573511703548970994815070254851830962089270656980879977228114199710020506489624957973180591168882532178561837001979437706909350874409526698829530680530212431821291755794607469584007283711353120504565186331733418176318582923599078234144519582282107559962286335035759895622120848750819974074160138244290527563839238993966569346238941549280447319652612564031797850747851481193770836097789018141994386934659907531947234940491808932813383183927581724261590606235273195367333893458467884729568588768013029387013036557690732673284428965977476520744027924726273758360859803570722222990409064489879718888863772279849028847756754868340363884707325032144203784253711257723808836188686266811165632335727397826137343328582409968769897744932507978376307342903786803279584353065077307282452676458233777783884987713874812685942458570445199613664127043201833294109050204300132152581645251163275941740855057221486451064981751326832104441337435547856297771056967613805797900045684773539559019467179997671125836333693007870676946046345396194204746822845246494451310751940455239647452009416102480777164466136962034697566024680367961492912668643880160253552524680782584893558649975341242993809804714895919536999182920469531960323082568474370874248920455384329851780846689470428702793028849958964281143688136317066248506646693241817798956182267456428127705074701735592287995276984974607098142154164232174137124886159615279657627839311251994425990608843566212733827403617795676797601836145364133442400301070565105897635743669740118010590812138778674117135069989945949959164069729104697780111094220528816836061781435952816872128644608652916820976910827942631013081949919666747987736222449907237302560607881981843066361410517149776618850432573704095844299407490384371757503392173673513867937746975900190764313117331211746882938778157263039201845344342988085977152957650154810654989767843716442477426293507194268100499283809551073543002325387261733668880832718752488872952732600346007351871527972324008776568428102638041536577449841839976374805444616700875366744349763540177559394912251528609242833006322098248161579248114336187300730933428545409131756793315136713059888134677524075105906674199937011251585371175908605821051483761492642619912761523139593877307970534318356408746799452290654556717513909589593355515181308549990588434137193213952340696990931453276169778102279363935237761091705334926863199241780011586513732312749802459867045120270230962521599276086587447405860733967435083611778213672189728597508842155356553965514966767715583151229045433419769232450140218316027453098816533268209640400724145149047243610939985246018019322398096207682584762274465686418775270040609634709053540426141748448960194980792215747775496316228967323675826268700058776554849802365953639371497574508965934880971379295830046329214443092018481006599595254699110618338477306849677580334379677929288530123483974333411793935224308903108901359909552264039859990753229137366165015879721115245185218634511040474029274284700122982241038835032261684010833358250586560675687897749370371641928627656055427806125117147006668476553099608954719772724456443080557435659209249657226832565567369380810520449528984079741470740867942439180793561019176360148888867275546761290540311065006231073570652387093480461698549666845815423035967891830136691232109136633345745246532571480696064130634702522667495023992520129955533661428810788848368395037815689594846411134594898881610339400892698383964947914847471352365097575951889944664778491553988670596297331933408481048558164475659808000604083810097449415218167170776300427204830508066221955724639616930030594447840198945580858840046044173496481540306140709478961252961131695213717402220018309275768152638331906731155638124716630041077261050086745100771133800339647142708550107285658534687293062175703101181233545407482054494176574193564587037706660311905262840669302557452413830027451710985748380584110577766294012417794761389534293613269773778719409704272608890394989356946390581268802077933517090993027651716337280763243699164696622205780528254003109357961114057363166930765784493651593165944330229334281434470301738033516221810504602878928979559197335850037204495815831043639932896440618120144553336871291847824743130707512130959023884211671165034133294572068071214355829960305186548160708324995535813729481379303459339417612981662460721430220105054054885052152043705731383932481016644388346506332826425191717749551451254634341399883591706645657657550287698439056243507657229557767541881391395860893496180094330209306734512690766251467145198670898871264607427095738351521357062865055031825003117478104948574605142553221609052963383097412541707451384474630064504075924053513579649609066681676333272230615721678369118092362481069462192744322440356931636725395590605187884985354097829268868522862511021522534246855071930204302794623919141229843969566517674078009763324061171534165787469930491746528998605579910776924738984663852724406880966790468372906740440073601015468952927264214741001843870971320124004482072719453008305087822887059785135081684648106587116783643062416150586947924120851230762761512648659288184521302270957282749980613210919946252287713648283217331210582267128269313640751381152397344870470730632207538984419409266756587981232283170155306035493866987747503420808837277405143994752212907885592343694765847158872462273311969480869708821043553551963710282367506638591274545557581911213196487650344147133181816897936236434622325815710177823160759995743273739377265365044029593771580997624685909155432420172191058618412569717040294398421832949151331727750573197692701581845101323347833102172943340226164001739289034512177325175735021536577726026120822664193421588929251084759259812891013187671638650003919886010967519831624474416670413333177430304972440334472030684774739774893142440816192428514869405584317013654483263681346256779582129798495663508323208333308607518910357685840202576866089149794532360836079530546595835322796750744965766553698734143903786067821160616105667025048964244617798329621729319261955415582226979571258745513564468537401830751026042408294153739023655297024196241276219004887509812455258023488536171979817025721696198433780768193812919826517923442768779512424123249616837063546708609335650593115881973011385687722042997055831912589218094748722714448266778557262081278836406379854445054599720157722422413450006134136994601737863345591431556091932579954984733938320790124428690520966306208790197895003828453217863167921792493162124791770282857806728439700166644211446405410615490352133429976536052466474512530816190431209002150910809327142231956498406946458684653506165437707795132878231234829205421233287549382701394575815129981123624015199270043453000441415157732795935316493891663358481936970602712174212886474871724402063820269048919300480178164029239569905312167114309430274533148959821345044276480020189134154430742617239973159890782207624302447577523432833339240782259251623231315403549003165375616252924084536886424939762944416159150552632949256345671684336906418975374544660116276172858698378975341858279186027857704563234805565622460246888795995045233343843212089211269755529797898558210016896840136848907488611842761214777087593652697549267104472874309254547251693672223514836660585510019058405550490925145206993124550917582520475315105992898800534057701215616615944799254695592953328846701287581664360252998685133492539983619147405835380141728790152831956649807234069034187808422515928590498350969872185882265398612850572675163069249233056494713052177188836422656649656005347089803748913670022279753745370994474836869481325627136296762711427197682537669778598916063473531952647487581235201402303288296371199840534228958929302676128809769575179236547545278114811531652168656190225046682843616468619358779816211308513427549708091777388278645200480250095708456962329941866542982673221700112296667942933990989156302041951288280180986904142636879083664463001696632026534582592303386593441168352355604554350632475202556045323305889765007475322386571029227834908554054072798966662492516052053164360542595690345381402390671743198528510548616213358926171744406319916982050033373443834827665000986998062319635373293943742960351704852102569699334060256741928457100573894241389131539177407254414406571820713833591626620156085196260892770544106709189589665370777125378337170950626479109043174850085845743223785445878674988499402251632584428043341386965394534814386686942164605648784964874645823242734372748988331835588497200631748899859565547111973096316032218871006462029779460343583272749072858408759750662013114162475388639880163249516886396222264408796248511215970828839652916870078045030088243232647934676455274427158665272371593952814180674075817753672426895750605073941052370792497992472821490926740507507125092522026400118022681219256361697785456846702472771015566769690326336105877827071838122812312258426390824465603820235729379452388458248976558164762584085774819043496984214158183990140770101166767829262872944495053867057069062315921604767102878855320072653349206165449305219756706799810192079985366211690196093374140693697691029011868707344386680716283808420737178877442337569396179722904271246186336271426813888009092615825319174554857773320721118192378294696296171464024698029345667555029002111080967440178334749713124128096767924034807912072799379260872419535097821195677518837601021368560217421799615272475953630176889883344226992384110378758828822162344091649458007414520281554245420306222414202100029831337562107201402927587021914024278385193219899889282168695934449251553100987270649596861647761156449139211492850752999220204008019249842556739580847223906843666743577936950958700510517336845837481913737512511753279116963581919615481579269615349261768951419500517789995501042864139277301615756808541471914087733227911291701553582296409368610256233702061783535585442020766702316523866145782542014535756588214357369240207978685733244358263568982482270089309102038391185630747242034080997770427849233486434858226522061036162878130266880853791937243134711782828210455164971609648660094725847735645853648566896174008099977622935081430678880912186710379375362170777051246127366292900373807436193605980845489199591025392006488679511028312638080691728145895357716914242139495699198782536944706002998786344272475940847829247418409138691939406972606075495872452789417433256676286428149881833108219631328725837760724026844401919988098546805017518066446524606749178687000697772732905260982181727815787695403186935551923473843297475034071870748849398731156537835049776306677738198214233258184911803577445769570637031090064003845945079392523169603128627530934072277809377357404018333291923667206297793361778195541142954478401426205689668415530796919440244737416969398780282956356225551338427594759760409223204705192039726873606181456667132526356998359590186140890629510051538161982500759352864703666229353917084945211280617622331444561823829310106101173197536104442462751465472523404601968317336373529477461745008686550491204790648723712829042142212360978115646568249263922931338848725002748509356650594150606936263507819670185614117508939927373616619855746303502945764274845415951502528830623773826613839288747760363112633131353869521501466524035934637459572070222101172730562936095234657382367294664072913200846355359295034679874392208084991164035596241666359226338779755277148858274832626716931410866755158617322310641934282063799082161163104971796469631177065291047405322240439484210645753097357046060954488454093820678781802378934140018564995890892580680615267298710318462593250922814747379497948258776819513630617259598707817580697356197589759211430761220116242409481950698135575379928044000223122929855314224644731050033959133668702704391990700840333151905171139225615949980005599713626120755479748352433317273600019764787299848355553488702989439764898725249735801229453562006175094313095543616178042485521023247509016859917891130403493011267922584771211479590028461254076189013395143708687042591636580537969356606443575813764162565450318900099760524771420694342304146965121879490301051836423995813368646740433105247401529217802545963747229208777441483437364010184753415959834999099145591683190826375308785985576365758545095691741872952683581555268109722701974133602575200720068191738011345248699783266769058111785770185407290191365579627680695148390918823235464147082324199278982177520363104284465712441454351390549422810590317217809888317561187385057398888346625315999632466315009403325800660891241396926437069599819658516744320895727799072425383107348730519303494974629328256324028816267341374826802535417907264334606710981682999964009060426599101300333806946903425736753745283226163491920233812658620230598407728204441591584742034153523778332384402154854783056039144423586018095758217344496191418987163104954867014814592359516958588898165078972646489743604066229365357836555099685224554498692496889602965688868059722698534704741495156117107413474924108050011077224173579067077420797326668530284666372810497263106141741287361333563585764447605298089972613505897578339246287616139416464771276658279814476500527900210432255294372937693526237296217446479963060673798819215722183032974971113223495677758451836379693079955732191279520272388717870661306848947319387277559411451684682328771923024141131355945785304914444297418027165685043386802637525898542717111672729198918742056430759585887069496330254572684676553526537232497319546410040862681458251684503276825211643078270216387221829952329643269178169523512161832660855403441671596967896185088227388984485708162499762520859488186599906531526319864313773528320471325427606805398970728224010037287026423635408737844183056089937910648274167165300903317297468316659697518501698029174574085704918765365455111717607410370902257955493934095509783965146717394569239356191548898008047142703622656331284563442600649933574730595999605049411216309804740255506728284505873671959675176602481031832335163139401255872163204217188603064522055805580862262402700657222312201421567736106916527009749777105337829975016709962987621901887679955430690939366001065095683622111513667298087026584747376463110372993351521392047696710621986810198066936192963699900785922866604108193358044563029374735162589431131937548597494507326272438883658485490341283488223701239540732168234552891914171055658786234292249198697208514497553052312230005130569590669320996716131756161216233993854567677518203648148516362155535959778848072656484558785270812266397228441359599498025701208128850318716277422306298359591925377240345798702195846272287849497376794171264790226654478989414101721482194194654122809868972557524715663428105527664631497272944209842015851713960093484611579691842047074788257415741321575709391905485785643957601361149508591325179293816892146744683548793209022445530536546286389232368074153701698803765607537097285380519349237128479676172844774800590122047226495433133290978941158617027912705294080756748975397276110219657676241806906990610177293270425337401588373008536853735223367955887707793129282678721266352859433004999592784690718566513667008298049685286784047212258567369953718124787991951439100633809113984554598804824169231398511162900591154133797000676302237643267445049134638061813724606191057057863105847346786939506697520636640095666901581594669543753126346267417609435848625848165980330918760785747890931514206178701170396315525826179514944611396316943363415674540175061942662426457289325397296987569910745569837837810040493955621430993882693478690563797845342330230383575935035846925784923134957816643645981577702255055353686266830344313598870045400522022202587502910623277161530051751356131691712065074791528734864251617030540767805476050375512016130488314237954151139719799105662657163382725365874689939759806903174953001671193695860071242904799958436932744953915000544688717121577940245633175051293767001240910058235398697246954345381852290030298214403920102038806304430482283534029480370153830070484119566434782759326042308222507192906375658871473030694628611573302704695304357331774846194831512746081158484988966380077528808467301467261936230723662685067724706465789568365612907566134929324230938134969635779992733337242455782708749962486423864615159496360442348880041161132884995336352022307755504923574442709000244080028986289619550210227327638675488696074112363234086562851819204379529308443374571449836222448335750660479734569604303716526134666630055814512352989252337457507668695622370266394553562314342429779867397564805036983541827108683811837769874540279550487796280386698247386996303834375281737989882751694483465905259195694356548373751123329671138933286176537274662240355222953886984189089239930745472213946193310475984090105914737767887128655651873421958366692146358992260227015747463988753481623222260324172759484613256372571980521732248306269756065307692287002204160272253482686570981945878657376785320021839227398548059524454855358863466125614824016716386981661377331553422581118669570804912782525626957768435998755251121797213215313586503565996469364678842364606570838557706843754671905104825840261066208596702909850241294516184067805547065651536659666028058998577495016384683187857039601946283903602531285139369286023346034162858669590998655714203672956312123516933040811664382667022121396311349496535371954505980732873472586087578429305498947289649835721097435494777876469655492630941997047120296965420212353278013202726705540164583382778102243790900252938730047849057280850830866233529653660376371230457601188620031944853872987312315650956878996631915923469155964820603628790673315788905297952839033168455680568641501961760630053219124455765502864959126581614461615433311898773297058810014376602988918420311029980792768472078741791313696917021564535023357887884857259746359874848230862854553923336919636278790782928423179904332278154012280960406814953224133647080843832291693554271483327108534579692338463841484490482339441881862055107994873038256914165607265072336729509865190301023897027366247074370069214642657432372084470704063122872416774895634177452977033889305198952324932135217653991340546668966510118201052670964513791787121611652575566079416602133273584996366741257297815535859690777887408261616603102480542976863183126717122833589165762939963133718216654010167462989829899979836611320312799210280944809677365057957325449221152114843507794749897667790874969489150207578781355957740351279333296593839733526906715836635437632135493207329231983080051021572060625052564585619199584030811025442784983107690138219299958270951611508091124288921714643465864408025323658190854976518725877764019073240640699848838372451804676941469470642318707913592131583688815550517275823338000398766175009235047256062537695306814412440274218295185971541607888835091204915374021457608617463080362626405496143663140680739878548573551062209730403842331766349190929917760337366916783712091971251463615086224830381125472437159740101730169928367060279886628758451124022817041498003446563530466444600207535526146157677387360711307617598770479825519790314778043931257304257547771245248193228438842034516999429509261963641565009392938800824414876245552474628585895132791748811434270996309240220307274815404337365798980462615170591577619390084591090663750615778910951641602013231080564582672062975215669738296577405982036069679635928573255707102157558260114915653172864956726368774381926547234084832787941344487753762343450594813527888006820594679201720829002804389849630622240381818913450728885481780553181447135772134043761978089072701155459564785587959305756252866231225988483948614911346620049696652714250906226227847252174933061421462704025982742827512038506296621158007863590709079166639630177615119321662262074328440392968926838264142025434003273747122931092671202870443377693240914880948589971381262896539084997523611877833828678020424525844941495195647464995265540506333335107157516492925739888724982594394230801218695363062173115494722993954715826678100541080225835104300803104029122342588559395516004457501334636304987268871671302709494057611386076270052787864485657788750151814743146520709737442370462169370810972737496256019817802198320787795850375501737257806849347270649152804265162794470445223231215882704869581119575699579094497496043472795358219158305640180645016917188735914762086167299572593735709091025651340062922544686197455967151313934865156093594345302043296214961300759410021451202540158690304037417497124480798327479594914122176523673107157856639599800700302080472328455112760212558109778005775556095807553063023971713143263948914955870533505926204715218514437338091493175186767077814295223938886949947060228504319366168478467782424256362779931839355945665919188888037709544701861651960957356954646217924879401316427580909001499171347696710349471698884453035408533816412395291608133816451261817619640196860895850583767822949567965651681216012060302031752320614665387650119058956102683953177644471303563409371179157293713710498468485988257757284484025366748026346369236376848414049414468809463423567058092360939582530550045208905275268963932668473122345558197768020681861958867347626517597283855842870115215324955080748104214072977899443698956100253320219019335254416906731820250386544844178218083748755661921020674700768345050901183429924788964554216682388454385406895523445758158019136968555247363473111817392240797472187400750797593081169275009941830334701882179374072494545766821189802128470807482021605612951473171624208057280996980829916592873321477371392775293818771356544317607008997854336232946831529197111945571539252526272388782878940280036698751897769656975699990922037272140506929593261101240990158634831436778673381168328836311925209920790718366396489315405666697384850045907110254018861347272950642689159024512669629571404436524993954787917683851540018213865617734301715048501226192449604554221742849485144953113738868647162464189083760729328354437278396398703512018154134766880137965460395975146860002426778074865683365508276905793983184347043920469693601991621335298801718221270567269607818391314008882388761065135312886215676431523752315867847314563480159535340538295046879449102128648257378959760737835324968052358896054836844857154225452245162459043638644320974731699940256937590825096857544523502486003434894929567722895668051476427537731734972902382982870118011279489492203107503109167354164870610783243541980436238757640017157084917046715649092574222689805264349545484981446257378826575612546616405114299360010263569088849129128398452938830345727742701433397338537467120724850200338568580116781900312642310597877704496628545853574586632816406267780013935896338915595240927937083661787704358231206661136147944155203628282257742101537521815318191867731277690693340723664525182172458049612859283067328086074841182797617262308872839783022948826579062268103231504439126246261483317322207584976960848333383307083934984251051382697011442292192595422205403104203178136860440617036350081053241471467703630023696617225858503679168940536259771133301961159778046782734248776536988627875880843774208778814425478970499506054502549900869924685196337854405624903654622815172459659655802519843808641457257044725077745287280538616955473215948366824291393194535791463469038260235902987384638125909085823655421410058424465374541968677672755011813451859553354257710516627065027203441616759235805648424175008373360729154483724521819661406266939484936304334063972373843871329089082509046393246213765619948310674255327545773939680205805465328453226433258867045432046393513347152124371233317532647679906789220136968005505768758645285403354533528803011850813252050014174325524248980409317951211895164412309643469990277655594790892784996474548259703814078292256948192140204856288813704365012085533978281951975115153514667988965231419438843627718608198774247742199455396022474216139251535245215628348808449738902071410298431444102919045890335811206300382724493888384997175545170870246624287023947467939283202979771665420941867721503363884284689169851601448649090737423321688408277718789568095244531793468961144879719325273077599126208917751687368655613049150455380032674254220109418090340028703766765279325493510713448259724275171694720268572479249392743129183682989108087825462282957485636615853726944082515850433091509102347142954890872447148749945196460733923196565401675744715230034753740980749528587108750288346893449347758067222689093858483814206816694446353898788225105218664302472814324648308830651120374470240683261393411870166325515722870175704407847100314551784610935010080857684169058504655013574118703572346458021139052673693891011346586497047497753885430149300920837161869732352888173770612132283849615422926649407065622979699750319734101479727311984612074162907158664260233154534532211721353919261296721223072001030021085070486553991320214033526014622110577268849988620031856805027838185032216656574696744011524436090430929274050482015826869569341465237075413433245168240887627108931476905066100704958720373711611197175371689682470492914547238243869004610293248889776193512759776513134164746195157079950558607949660381887495331579730599593870008116813818981531922400402055348924252759286283463560486579486445448584869954467053043741313400230896475963239441628289844788706277792456818681382565966543024890671150771770079940443901454783161875935230314175036873580633704494461694962937235164868838942297979204479230643881555426338084471266443905074554162345445418754637414706160250466508936360281980435164024302660777369414485572420702613778090881047772594190562250736416690655967364138812160498856445916363764459267648543714578994274727963009892635034502988488249813126932363555453042623182807863940808953279955676584510830483839060211902694000042871232157406827877442086201720375054384491799701902498924834854748717268921826318995659282704360588724910229856149589730000101018908358506776434278010762986194159573577268084935225809532363146151755090762119677957898088503030632269056620869070852328914480776113209595620807570386075892618038081002577648526816812353580065272481236713460479245619236585921084355797398110860474872405727735788780308087549328220623775153425755469557182489606676384404317614081087871183002061528766517600948197500621301743812090015695277240230422691075414843403804604336661860445471405006598706130635261519877883021603821706216811871239540724914743559418885894155531452022097276905391354050623016566931628679965638902796207601878623373448075356031170876161793702503907121120051675467503764633145755421257203515236767548883414153355664185481852600733576565650285955197414689835624085875714730765526189171545900105659171437695133644472748286829660715710891268478627640459341891776009534656305266753235303418668532822717474773662598444646848638280053664731436594261845632230373330825802708105533776393649081599894961126872754598680077208057487318603131983480765765627356546084626994796211801975738062236150430790910559347370639811591959567095803188771878073066639048409714043215174184748507789675015804181631741534420282785429495395638663969855908414917006404645394070037355162786719795080873108423255115276110208806724021475807670160286581619670543752359051895481909098113143425780427035805538511551245581100840128868018176739007236238895019010976806093850710039986617673677284014335080472674401915526938987496402729950490932570580016849424119905036657429436147101017143862377613648125555553196254385507093072958664688002760830865155892641525004825801241112782443607028367961678572646998710147949427041621452835071637183304358694609999248749517397072285324065255553685024451364713767287576174491763694805109069383593514344224191208609093675793710733512836846803990673574417762813181580486850541577500372409632958254085148144140152310613858769942260089615384547158805248381382831884950665282694922491332889694814321714843389698027327565329163722630769068098082681079888202830379357368598601936498571228469162883467355846168716403128163452614344609701810046736156753691806693155142683505826232221392085741462730295487268004571296744814034082051010780447264867456982422942531740388166218640449209770692426680827943091948927258990336987464403233401627739772983528453257580975042679293078867005871108615408602419192334833024159992227044287999491772270976482023056359100503594579823674154644144798122536225092513148103425393035334004590108275598673861635386192395960243944066243005863381232209715633719702993668514350061520644245576874310094217712703092214444662236394730296928533502271619654950246761515877683768704915575918364588525661154763516974004574181484848440516079887224450448042424835652922291024558790146798764870830591829960681727237786061207480936686974498665645943370990021457330225722319328310326054438614280106899751784439055537353168741434680527958988375817622078032763748501297504233590252702779604147341942472471211720502871216823583640186984985103939297809760813140620963749035595656989728327864994408793872537413618205179740763717528092631614271138335497888849106346399744946016650080311465338854548430398466277349570144705336521666732630190260800615327058300907896165782404619017938697023415749419277581676196236537908095416422834290999569409055447679352928395316497929763129529172332034533239305308864822659457532413590977488375323293200018954805552737555748696459328341524417370018026628893809838401200034079011224483588059063240028597930234100672932690317607275763149478772083030898136838542808863351086083660939997215798130060676536325468481143913593775667799814516842957214649380284159233793508924302326914033680777172914713834878300609112130697850133410851257754282743726985720749828957899895783152184999301364683123845450089303204901913530321413612638408133673834564187705640634264397814136340001194925525722605300204476626884603645539408962569811452821213245264487463176930448240227233359080851566305417402647346893370958076591471521892130603320662200794583521919716768575130082406616434125238464184180913643864757524871262162553794072446033446007587595091411819529835173302331290471643067306804048499860183221647497733762260154852789896105400352493414458793389268641331001126774125445003465161594101599744268007745867576076460473347246963613209544598516455556222940534679875215296893649624140603099726148786279918387057241696402394467355182866549338011327882913033565861990233970242061685985967096814425568242367469742726495533499585425746155883384939389286406893704801769661039816410446654101681009653030162461269525936915406636690500575429633451394701893634115224656791977107194305905181784805316682684322787083208149984769859807017375192573573487284076807132498347686043834454293597288037568255241626004019805528127191909386353446461546944436365511955879849799064463889092592363044128214625640439169127724613821017518956073469264830215844742299073601978671279131625729562994466936374764945889533978559689871002544507469094628147378574570980841225339555587625717300339775903563472376935771741824502003991581433822517206146151817232805658986345645613013659326663040618112711974565355178410723440890285939840696285096469218874884083372007261020068044005749386720780983114791265492802079144035992125572323275943527408963108267907294310897621022263078342025975563432577615417631815671775029322528973978901047281121914920926504752073802503676672616786190703947053396865049411781357544898685043078331491163076094639156862805398381145509679814233345142283809486266264469127114750606745668881657549327975060195358754270903938693186756436568176324562106717072680900392948948382516480728844641460325990658932634726165060132987813531304185373709023998408154580952473343060096586587402054135369597598817155404191562175310060628132682404186731263651429271177623783475741878466198256350955454295179341082781221822384470470638799086777854683790472725972306843941342783103557659723813960977880746632822760608326263630720163922696282483416455340383917390650083238131588651639921720204379128807199903909756451633382620972326272000417798775352512529572940794626905953071639839081018416835630431840071747509695645156644940120401381147138755453169494646816591100710504986383738706591297533614331213926557274956591725307730515322143416337905332773123903297420776477644869811362041668637819653467395799119626062692316864069532259361920788100397258296645004081874166479661342875321798166038004804650550367192222817427459506797974408275378269448728824569003996723786995974930816206457341982155285892009535962953724669649296427316514476709619389858309639609300029716439152601876061622483783415873898033507485632932949817001076959721733934057311249002672984924146267731297050090578998121928539019894885517614212531416789506784063814421224056782945132872887035846203462699555948009714186666315984568766304236438947763059682899039622048137832181517289721084892804884623248590518489754376661678495766005210367739546255442567030446468946602404172367313328682535413725733314076475245250860293398120713444708107021277059601881309180821112245450986609573717885481859172701947206750151751873626143540000162910319098399391986479079711890257109752777917397565174557205596621311147215144083732446162845809355420566854311854384195011076632858125129770574460846174266338177275613755142019556255803458365881313980731455377848555991679685327886933281552384014506647456001677146054336208625177119748071342313875406091470308709193813341582467561933492304558034768958854431534410611803922724876999813113383846932330689956439821349194834794099301068203897768442806632401622999380822930931121765538848860101005555177144686523108654346533233078375821055196201644384958762639319013915019904441986350585903950289950633930705999430049186454416123925955096301068788703483135403585869727880046974291324898211536701863746281606026906194097952556745756476753170255543138711607331106867319182530265196519663129399174882516851197319815284654681618867243215099315787283735208616374036370315128571135550648886128096033476894409713039830992464329368957154331838842767098661238558791377764873600907408864671586404748951567222378228567708644706106837016127955064764352754859039567362216330045516330363186680870686383649795845753249463281343677808258794473906063188282197022399981588383935323688197460930992886885673617323999973600647497025573731823102674864014390748712418299838786241903870208509794563504855241465785338305522584834718419473857296940886908639840227385411306174911645492482913125713437420728942072457042193628371362874290800621148562010592576333350184255885162182241209007538560190193309150272827987801511435065664838142668406991146570739536992660211371991631413153279143424810051263821443091861444808321664029436446493837469361461400527761478838414707683139223035283021301589852106963970896554783454627636272094535305137644410857373623710710683339787500915480980238312606314537040397587394340998841103649657980046032768645934260123478792539977869085563282429697023071180376128569580852775307227976890279073443734985969789283389696788514371322551339353325092695995228265658923097086675202380765590173732829589778194820863046019914094602220297275997879297892419328241449150331884800045333075081014589360651797037849345904202697058991225930276937047950427768958816580465679152468485690419088130198181269998069835614838474499434272819540821606148673594972076853102948732111485043180740584021007322536639914126238376060983200868714015315000937187391726990716883955717032240859143599749749824824826012597604717064256676160391130773870599535566800462646613981065197391639657717697362230609873734533839573758445311920483870384960208671521252881494545359239590091733810813700248947482108011515151080313617568301125610720730059100908943750195894974106343694718369882405121889676682734927397806099799322818662155405211316680305738210201047862694948011536280769026272974648913761424965736835690885305558388286661724447301140766616960517680224212444764949712339811476877455637476395416966354245140057037291164292836246825329446988726913915268563229456915017110558760918234532788576699539002740914361227858709427879567367337918377887880956667720843302442986822674089214573728856281877399529495425886111805931770768127985318629001146696523278977517890070380788350968791508695455642984558013674729674526439629602685572229383397089577242087196620537688199922626688468932293349159526029862315122868516301396457534866699407999944137791948439892291114390130382385680577575516174327687052981814740238462773693674461708811808793375352181458208521240328890637959000019412867312046490792933029782344054162591160452417695047040158484997889170554138779840147003401874646416291651040554340146283466564186374237061053707267388840298672017471850490748286179084484869049558271768096931472927402296029045402497288594184125368481580486598421299399367260342798416304950103466848848302048272824647254530984486935877291458800589216194286267873036294816981603257039894018410981197910430651184741079338489838387838352643787166037172605312673240448819470963091135795185288812624880904422222300246206086740565907481681340415674727886319214767416697171314314046649113140280136028573463485507386292900478048696920918105664482115591340403962250917853798921881022092644069894868663791216287520572948278074079790734807908773486274149130531784174346017695353690486013190054651528228214585174017879482625069197465394396204547300329063661392811785485669136841257685983386934151291654784965239802911293038625903988121218156436905890201689681898168588999966451102781509998852537885177406710973458524195856520847317156884061583669714705450482513965866963819393410557437583357915197928094502305280351321589305111493158373801082801431608496483847881493864139761846680263715437271088499062491860386134118302015803253574062736831288817297518910071905519707624596913623672346540213072422785716557897750025148889221990745962983784481738471047078863994370661265229682908112957425597937740393946008734800487976011128226685781898136235112898389753719400680889960921292903969777410886911750501718029030611948626443906115890889003853015374398807510625701514115841553492744835756588502766992253661964104236698935625576280280397135432771389717265575384901841675071228044366281285562779338529175741092939172673953722269364857571488535835116186210957150225638901872003394215503781223165561712938963460157287660854741155335315067003210350358195041501179643459327854423297784146211338772965909799878109217979935440264458500668922674819610619714344329315820306878385279112646434190524956600459179944711550845563662857656023316888457375014517577418736355362201918055705342703943985054254886209813333528518414758048232826003482175567287045646895483809748397148574405113371498151917317210826521793383568227417407326473013988075354492981048633782260410439370214424621467866166414440807592022483519545713760457749768874764074846323685912021419162352069023089744474616556494355712178257402005281607382538983978808989726944767505545664509426808667035121108921542932117908177332494188968198258659236691142108858862975969779412838748604849727330129312673246474998460236701765278031302853218785337223798728867767262985481861698019545560347129012882047208580318085710741764148755648358760625236329921203036951174490408409140929468752010928792341335533772698483693236636975516093140335194182357990621086465115856366562244303718009310980239813274311916372631183241536747587649498280443228611754846607729247985406332019753843774087355627301193016069650527946347862375331255390768736998117982724658485002498776615061155925374532670564202621544847815192542524857082087591630065081580966869037484596092517342074455241541298576327948698238581432629278386852360717381609431799669158341052196823159519405207194500386382241874672854788079158472429277267786659088186181033123607451645390369116000031127585910789567532379502861239940338779478706527150595251457034850498061372622903940554347467852241035067343185620371251098213522726032627055712964978691606343641437459155798932598959792213662907925985126826853314305204369426975338613270148002044687673656329392937473968375343396721911050125077661770328021722109912661664742523462194552665220117978487740406262621365808710206762623745824322726464927930772751464976409586927897088659904393192318743214311601784771824696609788444146895193730088637582849022551813949379008888230372066078389456799787265789360674341588101224244324689166613818586392298902480301024042773387441672892029745912843454783386012873874465704544394204364482064383449937288287287858049870014410617891426939991072753250750585290570881840516513559420199848750899354197577437566266903727604175887632704047800467838716562882563823893008083921557769585707496225359251134892612416396673524271953858799979808708217624068812350067994191327255711607909514546665259188727015911788549466109410133528055925943721524005771180196261461702562599978850950431962547470713512761920191590358842921875467672625452469384679405537704966653389619612654867620777391805421068954176605347369077882345399912951338387373041286246001196924699850068568584453930265593521927925472227927307576122633571866708059540136627970987746210037236621991621399577241518845474341072892589328362560390975254412498298037579061479242157168689892170959432040216358122505582746597589199547407201405280200060801766932840277204142363693432129681362345487422117804697651492851488413751550461603413562664306785648160710830976536886049406014271076469461358763354070046382095277750622601780152913423979592291165633091750108078222517111594154281905000463488412611249694802390800120280951845599050106962668288917256365778670376214005244361217561056033038974211558869614732898377188468964988849544727430981364529992249236413313625000216263206245268793133388846724579960908678861200909566616792403085652799901738230624196239100524791149596042007589936176532948561823881770519277098574306564446153814578473649177968149154780374461196428469511955646939243602883872794366589376701769488749344974871783252689992574980909686277428504652039000468852324490927024044096057625245764746607834287469932935725800916410198729961143009757824989464887535196999628826676379373745186638081251650578026641439714133727488557197627010031070604679495392460354831334114022019982699593423130128399913137068230404805694669766829259545408911872182696549043201688537058422968900039532994444720365535456547106108155715992796898481936327630326849897076897748689775282484575207862978607973227803682322377566787714442393355860924349637999520061344089086972200405017221479259860642541103827438057400985246883226533053103462996085229502567489265310444128167655901713608391845640787033620752326935789909879831875593136410149643608240193136756269373393026251303202710660190486303685212699701286014019814125432148078574215097538770153402536745408347164041652830033851780554436107051317181928286252111971418149221568581438406351570650042190243660561521825393718368072483588563351757679470031810132335664575539907081246235327179381308627759609863357440248610645440524025618483367545343602244768938219352359566184743408272828849965081300741296078297872672742151262014302587076389189223894281802474717579788820265962280805106548529070825614210479593609765349974730977893675610358939530138332999243194814586823164096266302330603903818324111696107546683539463136842611723507462668016468184406405074888981518598655814989367192793836097283315194533690890137064959606317724534261989294773929958530126229269922658477135021399514211875490230700315994353368887487293446390679537813413170471262307999608190687537085919042551153984105686294382214283716491655595621878532896894187213512768431570995827545742213097887919530004329115334397518670634568370803373983369451800288758988331508677297682565271470716449180706255376541250339872071527314599151435642851364964768384449758136048385989633204279820026552321626508984090173451037465883839819687788639742985062665372094435149786867595357383079709131002162475337062854012766671147258713923967328536898294779667755866492074301244324471515076046684837050327448760873289301513149087208727659633478503976375380054161786297077051365638240829387812088024079034808259045289856431547435140550631172005004779580509288000161550715597306006215356220068274840425794163561161545926821534876354116171761030949228956383079106991030006615415508206755333378706608140083072777208291023935405524371974371478229406502910733480525300494856714214000949982334742287701511244567648708994243240087656657203318707476915256857922481369315560001905482173082916036781100515742334802853762841321694661336713485859869422264267749616833211680061604773207885284251379140248761868729634985094718241019207349660680120388025936625665539521522589737256613051863987099783360941658062893637674034806171222630227646879697997144042965881457779867302123713600266116032978888788011740666761043386824439256178247588960823747728190544680698120148480992668245227904991286324323525585318882465459817105924944437898568047948546538533206017933073686689894171647116430262703681218640499486428601991423311698499183369604483840486343796760341274942300150280362743075331305068571275122346085045652942573238390127819922299330619348355473782094515636622284088607351229532259638806096338758714855471444364101389087901444746822134316377644405770153944645341310298009901584063249329103701920238504464980229382943191705124129073903986918089336956068361109840196806692203330475227178599150831489433691838912195668065173168361359957882448488618574304757786729827969534789843399202418842492271273204516636811271480544575525941248479541859946276903769978360443670229257742835583891671879111181561411756168951834251116606812753008441459178148325262069090164925085310601313661194881219756635480662648078459724660118647804244486132709495888834006178751836720265259947936773928363129424795261883903588396766093118397785248338763134081261126700854493975771821582346499954334849578155671883892035387444580771975176649652564894189471508642535830371111735928388545095117368328269753506906825584796584871419195815532697553141118186137073393301732457060980404587404753741743284801963648619031895658399811157050411882513705079015112386899870219134615161215148572918882363519433665486863553983909359350642296968005915883274257741614893078973600082234822315452478581352405900237974638439747572548177417186351851473937389654808555160116095021588354626890044658785989925444572925556834857065807528444608432513470434897304185618287829497691509942543823806199684171828043540009859831568787394480835386873830232425221602015495427425942978179387600012191895735805919349319932305687822818336142864148613320596591638659336846958124863737317478497796562069034167869384112622462272302848227286524523023594493891272975142677122943641439213353504571877724974587653766355238973559245768423253457651716298221054613548111239525189924700656273101619042073425062310938200528144290617828558388158358276701058853480890846649271605871438691866326094961430174352376709842052556765465913178633692183063280125780105566284268026540415750275438617834118753254778785878868114115401729119302269447300208806025388996943913964014362803842551037062714883477511247760210687864583671758368649379803089917974217103555199086310222536736730461715409501684339777340880208467064218390628783596391089908518528777490741888178408656955186449209147796469251522226473948992083413872641675944096084034045335699909171187839901596179193154743070362830437308473022267568093494910377843207697350264719603774191469519843486039899544101416318479864642950611096211052060457586625577604922462941256799259396605303888880995220633847198612436163410661406108745148693791974693879572378408138885027532680373691002253793867977563218534093186335206749927973124612221302283910400640767638496879813217904877376213185965913360343566316082119831798510944068236516074016673983435082192946947816868846239862599604472371513254104775502516170826237001754798249754960423356485646724790208012821211659314852383995838782388713000156342463825203093875509494930763932822575421685318514353695010440691448320028203051384918353344153155906013720179797970618646679961616065766572609111106256150812242121909992768006251789659006958315879585722321259594544399211868505176938320193625930853620414335988458970727011608909342193465583112886481152394087212885949281105439528049655433310519920394359864051228175935644673032478111740006738281573993205499176718607214159282045141548481723640555491500666992430211889615477482137749565848411868440019294798427090553829112129376461701832482525890704415805743591758871286328839061913267444140223791841750381111020717598043622699059907215385484909975801929064669912671596748651917280012334930089639518884463586132697969049935547554668483805547103102885705150580168385706145870645449284171538125544504526571213749280098864101456570304372655860149323380826420019210652601646021155236479735652372536192596110294515702978944201520991480829212464689470745143007783181891309681120366691552402686320138318848946697132595737573071065322214404190687586973705036616506166697371492394301256057344929343669070760389298972200972545801558578373855331222543001642635213740458568635469695623478428372472821122804510477733259398548169015281098165358340954334438141110142666909680659019968548946820376061452681767392232893610952789858388602661000164464130626309802695472405072697442180489631096119087190029237087245819053779388581347228096043776315769913905011149537736176599735103170698196113527270402391709220851283745683908813785458586551431946834255611957994824340335253607251990755974703012581352359734809530337066605896397711776946356031416153422987656402939230179332034488210514501267366271468711820185199835018170799465639109139280412608426465423439349155425960568394603908100192363764903991079522219388842421785474452689604732660444336914467470296962203339254076097768391711989753810536084210184696402402166274167214949649134519265593845724693092175849877635371912585646219966733642776503938306789638228832522138234359287881379596342469006431650049531083433291302512583127551590390940449545403608201239047132842458723602582607157547008117320665957359398270589587333876275999632679635845964633455588506174838386529302135002687776277798011877782256798490402721830799867073294522734099535965966144823618698311080835110500983907281242042266324339319298420486350413692400899114936486416136688863886718980737653305792971936206210416615613058551754387579361252132104257106377381905845545907250105565210836712628405212595475583146018067816473321381474013973027103687954424809013824082593502074052776041216069669221061518534666836683613136480024368324465964623753086627901391263648428457560930641251589839322346063761900303199757063040297643626690104110270144821909998444594610521331309020767899357991699261865181372973202530017349715009134435873112512950581367550715852060414423242346583927182758076080613807575241024347444016964795889893421456353066350289758970748385575584287858460851655055123016829278960609941518455585618189148283718552180075910122237518724065758257468803327587368333862959226492957073579784173783590633713098463465834930565337018826136552732407211571965698451939680182203728901306396927170985837764314191015382826108512811041513952313906908836179249308139028223662321686343560592130565711532807843653988300269157515392176443387719155390784810630768843004233838462320383422831638084479234289247975948695353165928660342634983737841546819562329039600311094148117485752441680160213152364821752445006798852542184296504139159007751295094781343524238112300153916753484697463078017476142143391751698706777548380791681161389313963364970007443815031623789014418490629310539306418653724474070061123158725362840548697033275417699034114744356636609883779333099370970298530476575771283078521181685086001781532887530263869951368995024350380893617979883095615268185777558635773267764787562509713024179100255032727583070401296400502443221072652886305576294629280003781181191919614669649391172102001758201624987321223567887052650133265282628835987985691686279764795527376825693782828457850507441135434459025679734408457315302043241909313075766692400939914144874060895917950678555429413293901536525524206527100612825786443630324095069202428491528954927531451281862808335426357715851165166936227222885398035529052983251038671828637989762007843812462194440482479753685626402078582127788079459227050888257182765408128565703150151028529652758562539456600614203012389348293535194174416703308985446002129551872933882839552967032003765572394713020222180506385592445675419874720280717070792269728679171087183103599580837008709314668528024015407874528105477633396946305879713196688271798189175868364696818942411852355038611187269316973269900635187254943433683809963894499202429887925566500009607607571819020201135000102733615604742435197671367305607522427198348249181457557009925409870364781780003646797249257349656417857500883995533079186676125128362430917422133654507757161706444745017167209645379020111091024846479761012038594587687828554096465316313606751594293341174094916916678964828862200618249730769713823630618959468725688283176403611447403262421373932378086116714201278989645070589550521356936733614073039931266942808709830298707567985919456783049074689760295690520353711801487953974444275732892324465986389198985304542903641347745921022144909601527341346930370854400268489917872699419783006018671716596287520986597437741006413605578397183688517544704229826585366917418864397035572396918778471677719103066882954095507214506979198484722343234782595785370928600102799949498362162032131673155129638663997485781747031834587020816403143464321745615161812209904376478579078726624068770681644954915438972386398756783356904526173152416073650950428975750991123380579878558886384813599601739387904863671263746202554922211947565920818691726504525913524874225727763370501459641701336780262984542641247734449202095644610420382590588983294720312345906622229206182935018329566686783639380795411708889586956074680435112530269901280085120577810779890347440890294828376501995035487327259361934179668512749973352635933096243381849666934431031476450448376226714441793560948871554775200497635311191427538306983474877767170986520164148125836341455876686404744282862008215775757890257846055556047576518292022583532001791263727604332965543177410144449540581074726363752095724821925004894554576129422964789001777450753237400146190252110312120970094545725155379875550311300191548821721128115534312511756306481265256100099370707755813333871850540575514072458226231655039977172573302047942205413186690754466571424057118577259862077700925494084593402078926428796891876105593478623545598294591299799383391596118579608039664388299896869813840680732240326135579593135470923315561937559092049136861920237788890370336423863047683719626111837757448262499055306676755357108121021200094852148710180320377874403722803090930270314865226921406960335155268727631137642929985263658495815364490315350604723369163434945840021153184193267310143970521927224915111485114734418652338268772565110081314086413786508617957522458187989622011917072627434186916499504334784990859071569706406850515233222181976876966754863092936166327240276852762448810580499568283475569440348350907185500546874695407806524461198188889035384577459285921702278143411615334066597838574795811368266696361195016602824161988200319689134159347585043733594870326136761661553254627608779984542813690223567686211583965244724053971396903640876691610578261803482664043745966914872144334745102259931398572937943141409277388590012391681150681460069457833973714779094287512105009505455964547588037794625152412049715465762059501644792623923702117073769170689668042920807925274643652060465900090511480641826643985959117870290485980951504217527773065229946890243667299866768230961889623215620570522514891314630428813020780000476937288952600785540036672618875205633697501355536146624746888665948872379266021966411681826115254381190899122075068376437679015966897261469284213476012998575073810765275140633817360096377788239184890042141923321789834269125724444677997554124832175443638305414292499069565674675881721733547484872166557061770350557365387283044921768016155620962098869257078555110227781586915720201020685933249261765169834898364848160194085266864561771336369166086534800706339357672294215686821480711439948564284343260258589332760406949393890200229516700684907830925106140955504126754523725354183186351331764000335490774497463447166888046321756544855122311699270388256451731878038255392307038163008250592174575154586367659312311761141353034702813859931027537650027289988562463476326588017810418123408575794419885729989666712049069749546137050167982736220771290920557314183766678717518217505426858197591478143931288478171140718885518884457564166277136963907807324399690485444092996062233856481284590199889188335122193735333117990483673201076817267360784257234517903116394340975347033272498169880520005632468269061641191514369943412977358870443892873607290506449512150191078710718077422190161997406112495330993213589141781233121839394601769373003783414481074488228323259581008541876858189961205717072859296685608071328306251223063008448463451879977065346692408625575075211447267159059669108786423388016435622208422213241868300636904102738283542859599916103596381139438984657090585974826073656792823714237112287648159620767152253506321013896260604861837253166933233422138295646149387889395137608501718010503769401117854296764418616708763801079788884099633856205158444005435564258091174828430564358501435663344962954109589873701647246082408749784142505817170836768038152960556020681070078501475353100518546151530565788827336678876345954807615734692820366964312860928991859989319008826363721221426724107547389185601270245149571857404875188557416142784864208951311842808207937870010405572068684543651561398599196003884429415120281894685922797866250621533025078824676167667242298427563457530954905846465266209717475597848152236634996102417568265636469523390404571314544775312648381819056569836517141018217178495507206862082960087804178469377246366405180374529851003384592555337670154478636605076128964690533887010274811312774630572236703985257495551422942222921221546604421949459053786286137982798806856381763240938875542771518925342463981119602276190045828743608633278688761389985437428832786983366515984148806128905293206317853231297937173784520642584293398186953557365207565829222751673656569668957816019483561602342176100493909682141351061070468000337777470298667622814120909091671622272593331035789202898950396257700752040442142529822686829172054072432441166427114926792084414238062561624927524046541428898264951600903380751875130912198954076543229288408202794340599296796097663770605452920987691542618473402624124199045925106639010638733827307332780642005043385925911911300698244517085315811250365479490930910772348441161163409817866392214184203673361448017031861461302210260962326218103722219548935820439572518057186362800725275070510990825943544287371131105797857751894673118572828297276903293220491483412489779949005454215342939857592195850084570981471273478772452525189698658786521619185790079899203632111265154953950397900032409705553298444954654060301325253312219741206338374601619207617857512818282458717324832954631908548357940036362861902364271865970441890366679746520456871579056477534310796095725140307037988829823836658810720682238322527671229440246815369830212283620005902303349012545003399682074068780350338952132923012359267442477365966243879448825199027743339484053373768791213844585489672061447942054638403040469809945378846174581826638022283992062095721717564288336188595689592179578369954705029933387366606431632907536850657886617255133085780762942967155537957261359819393829623017234174365171880350210967108191004305489205705603666987815293237296312605268150938872491539887588376630911720619931326904516702923014871375434527119371022923958680034430868533393101425008431112362295887320503651258940813069045890049968908094657212083841918523231827526063123179054488150843395257752595174840273929882648033581294589219309766987468916766942317933720507658770363466360258572186030238558304526848481206016092495753630618441780555159378822137930761140481286078771467224062403999379282407820744738485303273063282754065275721041965085182787250376162759746054853730051495468930325004027677822483908432624984786928172185645453577679613029602999658843865684354733658938435135498878847167427075729399362609543701500152421720999151228215749664785873080363802186582270837698990403905215458287826133345685932441906272301255325869409161739299916264556563022873890675212304894975297536804481037356246016000462006029465686823465684552306165836298653866066181973788718637712429289219148062067467253948622883813130524183503076003404092062451949042888078942326429235416393933507423897781731778255300078665897787703533810486421060983646722022058434530180065334507295658067822691469237535694637719775096751150405059159126013893925967893721093875603219776706245037792704459241431300917492271946768938808823267582470032243645925944278318405297007452072010614618664105792688464077212702168165020929490877667321537674058414724918481434462523138613103103235230303776997979622099616868277345934604941035054875347583946980777635408892862172862264790004058936375917292520016135922197619480207737733086262418098742566236292113462272521894178567984942671748430566679087504877239365666073363152876864983715380715996232029795403757681191359487713698776618497169792163615368962191463195063919212318022916659018735502628161737066038157296858933993867486219449919349772281676336610397418294968995700572838501673230734288466308891935917851820543865354412295690115290679867020380328319195227274974295859059649057926470001126911851124377878132891289815481410875893786478335328984293362327915695307888468037128807804581027688527964969360046789978855892948882177798610235180279469483991737966593359416135439026011022044932710936701312831402436181092965853728580316845123358277770573177902229276501967702419373446336940654887155459340916872812427631886988079116021308946833082106830186131478139770313811493301119748103343555816252597736872641220258233746343968116276189863648198352065013310933629898090890265172996944635673179378763271106487805881283092202787253493002647829162975558498410420950505073541604286843463753314135647919949523658498674355220605939513488173629385640174007147424844218116090359186958271266006253501567379352201741226512014611091666579291125300664419217894189725120925289054462117771484898209708371261447938356393638392456501847235318814968782085233955193318584761686320726628464117790803535523603825109833886824746425094366834759522529557857139366238031236890180029896452476118407893657091767973689154462585242096237926419777810896798377043653046125860912743724266441987941905744424080888882446788832293940447882327268143306476610022982814209641055474990791282444265841177387331851118962679829724359519906798505254595063168964400899991566092008637866437050990868618731815592829618494542377411239278354801434223890980245024863005538516994028938659176639368768584206192991915262404895901922791864245921558151998508488931099710504530168431172543257059557304314661327243414307446396171031211616439026698086304766636166392075057274778465575768600347813080312731604467206913483608106657952085021487122157012566791145366551720394879881564199514818443139952551079474560705866277283499374270777022892917079305490161121534058438346963267041086810907903235187395401789409234534618669136334742334260723381946987003374772132175935860972739540492638914446428834189799724212714730671781210216792897158064041092866095851275980881614523972856531407363188201565517036006137456077234111282183895954742580231505153637776925834938166481795632116778234397877446572523946459917460154868907175150443267202426118471183641487318317450135592177571920126227211442468933711440622976822825095489356867951745862444016546367404427784661508684749961943079642306214197970848513855902061180156836664682902401785960899604320062787727231518946316241094612982011236624305142988072750962384722730834901891083138400120850845395140796947484770479695906961327191112129662644870466493357762649621477100708268477199200681735938888342611019624175279358128991070790612566769532715480290413680302091852883331203849834906217453531639233372804781086787452746922341476119738087020977797054317099727837930807640552603074215917601188044695485504175830826469611721091616833490389158396117667250757231526370385511296260823825124458511378971330008108823199835427417160796192331294044779128786669337959670919899416404530491556179885814442505059519522598410418611001203268029031043562551785164362413777992904209046644728740636778686421937463246494877203757756789317635535110979875922149509063995664394765711751606010235020309388809145241305942592228203914426028712849751551529614229372991509481611982868216660692524025978178729184719572012511414671488928941853711639551176391284436279980072357177716520283933155713464922592560104928624268891390332622344549546917375780604811067127047091136745174796404184772979559629707137154423584800723058311764207953711250672899888165720949518744407987791778953743738182260957123222722119710280088627184053670038190175574528155889524324741261107442804773734079396442442525618907096317569429853415239300547157169997902758341493047395270295864270797343364785240514760578099030455302695313251662413578285567302823955603885449878346897560148084806661136777860714174252884272260784726437296234586724447765952738609033125746708826450734487420403611035381098708396915931528813874724902901533075503725402802910623422988960152486125308177383038594523287960063758665433182947297676549566853607219683134572905602397353554871294022738220887670277461689397767391919836969166805487422552740085049699307767729833048073632377810011631216441711055090447225320225221535626332929780200695802695859594232036371791496435353066061244837103734793136022720977334329034411406584955085024052153234203582121945513998742677845613176121666501086239882884875417944195879621122326730714933381286651004150422548951542590578580860035244289378226843044373905905282848640390566290549463737493351581953255732374210715997776205669147669092625381980158773499005605801909067887818603458077906972610772679696422585758370378944146438789494613566893445124379240531863359326325864056520801956322621852184816995903779080052843715456481161477622757769390270769172479677187491011995215743114347912554352680103684215538711485600849444585912866174627692694161369147787259163346425686422795719060925778073865387519725660740871748353625987105737819375288689878015550477942587442642679595454813326972022743365668879693052599414413022295968289474834095899822482814347959856555703047526079115031139853977934254350482104627574868152558002664064525082663023440444222816685022161112797010823891348033684684964821317215188865560523127311888944605839738779693170555483128257241165832533968784627481003438479498431575188171915821337592565758985407036258775318717771546022013680302823659363595326051769020058702629721151085645593344435601798652109838740801927757235511116731918790321584935628720245879924329084359978473327618321768844545223755022802072543450689734434089248139451235592272708818510316561812513671861927145572405549346918244926012957671608618645761671966621610538486469410182757473415858854424470675127689395304650701343451971535410906474412450152263237271687837900973946411440732066867141069546125083921186635841248068104178914903578753842535701123728139274673643255924612500906914707676109139343807985673532128824309388856707311177089775535009419322082561748887085318820808160819995660095543917786367840109061149368376356367426664911159705680886714189471070034608475676149841263343317602697895845428016955561501757216392857777833246110301808182208348931977131392326054316389738112936416351147397589385789397234812274182568677398610653180945647073604579405800783003219047635736705231725652293545278953134529223098976479768565377538281243433352743406134139911529985470534880665202631681594716842233269347448097825119232459642128733192697056985137160276919590249766892673060097323243518253203796384602387592160437315772721173302481612121535853111940576675375110366423622128527585383078852152458010211862970827860543971470293158030171077975972164078072574420242946701435763112480099098418123828176561292110917555039670052742153234403919478070800844080097582195518267469917255856406582280211335195195431353112334757442812834662308538450123095083159703017357808826834794902928222405833629421728213575644040424436868669974206073529087011844971487886554090466334665366823940728797934033801796765226806410746620913470210622804561307147218261623877488852278842509976732060383236602586500050161665924245523170172691375844133873385639453646591386029434064518003372171156058737493556871026285091514545988469246647629717866725180434929186559893663982671391914032185325231865312904948826642868641258548559043274635760249999359975933188601075132072476306746839143266006787635858030824961914402356909369607269984333010179475550668717320721806630225770931610404387078339954602629830613602169758416982095601727778717762736788051369518601419827688067759072257491835122306824256760766823599621182789895271697853607955390974832294643292677228558714030309730628866413260355541797663755134857237161238103632825234861165640885457492438423783606172187865162958366955102737592691194040771283831167202120256868145057096681757133275684976766113861569049769787660712270477110585222815310794226424039036183865388609048944569000316364055777572061985274554703606244625806961474730879719094376971710358168339078131681289865996535265023885710545581530755157922836213199215285166121547009313836716184903593577939378751397663754932544092007549167705056017933000118080056742756311097260472684584725101140835779798677513540418933506377891236661722376232933255621752836620645713251393351899653034629333603426804596544488740768294058039585328259435031833477404237392358747194024682110205883045537123417102568190095597044290079026345624518795709643516856853994856300569900093792466017135373338922270995401294037217828031783355697166320882434278603372977605555386518275645060056884923849951841887900105897740764300778574279311474876862982854186719574236180995813971385093930978319498561971371270845884785287478842013485846632904634479629958528978856682204014261400378703186195509088489972467858886674175772495997042787119804096629690329388989591284261295655170472733560261887547714186719953048694290048212273552589833157893427216438959677796328808313474455049609336969505911738807422510665870376062629239122281089232399352836286767264947904822885645124632647289438189917986321269311248876842761386415102129486550841901902575559132175271423770998658626698380324211111081010678508284150238308595797717973476249946642993111044303830656790100827969894957810207291341615723864471070411139569141553525773075293168130960422953863209730085442793994858982987830589078600338720835735313611883576286711937885311590962171971715089860750328077365315273308428239043937165503815231008581425032042185730227809420954311562627622963134295488970290792674211819814212032158841936296108593064650030615536829036295576843524887933136410625191179146997991388550274122885703101112231960106342393763529549705024628064222579187001868832325997686400180072243102131905812478283099774605678747284935689053449456744264414586838879785798412345151763311007541870633342791192539970835246316198507650444843192416423699151198150441745499842238170898405471205822626288990254050281627589755657928792256045289954761652955090041040061574975330881480831971304588388195904798474850134851910730064040560099573630399830288482926817739809428664850554937841348168010960153484017635063546050156678271373142005191605913818650128221569370250217244756978147942585792501377611136777443811543540173866701186858396616718519125735778266156950086615583796251777148966258923160677126189801578060676976795636536848272598084824677954003284609044934789630065708733444357184404761232620076915174024807192367835796585384693062340439142412321231999642793793760415287813166650822345497147094381236178202126979685352645369034037430552598040824418205470151645852765256633656479603204569868272007292327083502081385922704307027312966456461152043961973066578599931171910742714301443991673207269350851732266660809810192260028256548569305484908313324020667868937031857956595473736874388924566734851859515844751330852557064094352339936710319753186725080167663175589007990346396553353402655986232834322978556372514853289120324811063483980532537248102863914215726510356814589769952182827008335807313400525440185093762409321436735704786941718928955861055707050229976825898691559293877656864053716067597397610649387553607372833997872380998705654188087913394157654613575587409073452625699231830276944064177623227466890864968395182730063919715727073942050872129193509880934264652939805551938105445480228028300129236329326925882829833130926605749113895854628313982471149205252069646492322280428188904113679500649516547377658831021651052767961266018460325052211908423934778001664185042584532703544828023028821208833354755006243668966617772457422475789544217478878542944497005827218438177145524648915804958861098215337655514123532580766011434993871539760662685622246259342153699177455676815638236509687603058442371328047007532495359872154550221134673548034598499055720999792177320227392194482908610727379965156314967131530752180947579293323268296483193412824692206126398648693230827488527984387776855612953990060207689062869239523577248292787317940808082690020942749736901988202024275788906323564322241304016297162266224167984355607849132953984424758681886178019682898968579458000595122669169572998565950464294827626430381980131359853913503025494866310593123892648015910109526006843874665766872575915986542929058178755577120964097216739861788674644634902082359860887383740420938535448947381240051890978717974872511429738847613440968259107936200253228419131522485143578987481298526071440026807282644406217990513575510049794807134915156066654072731213484654275099931530749154900265969587993099999866310095633392840542917386106128273794017720335914878108976729635302239586798149287027322197647096312993478427374112222983215918126329576746793544079564923375903811697978347311735775601762207565243316110665449035198704514870350267967317936376366992944238941960223299879837940193174662025501781304054967840970930320212672482884257049042109467216209188346070118637716440376192964554548226343776684451506814487790519157420738356922543342878302465744598442017503309995447078868339814320775203104811104601338527969897726613297433275944408707087722869914423403959382462157648987947994477038711267426082821416139230769451247512902544387086788435900614711626790486145487985389661805350951845581718230754972394751183853904960972187695319166955201882536830749333042798718938154807629941212092470429623244471947351824233293086912865142008928866830349073832259591681976629241545178590309216724055159433800526823507528730717475361709983290051656525381927285777336885958900091601723905739795096689338306789415379694545610805217386496967559433230118851506473204152922744186781691651770351391557582399442458005478785538779673984793711456367405694775081225580095208875311341596857896733493658170810031324718437344554210500977326630515191288364820598029916262390927717517385957484242173471108823316501714588040402248430191082664336952818528938854159354950214946335694829778268458068376357291996517594561909900035306388119341778165873749875675198377496684392158301078989221734638330900119377390308620616695003513701203466124828962672810608269332112529406976996049579582389539997722649153179246644614076545853087149994324074160637883689184106292837437175401519624291563979011672569807716202025353615977070141918869599724624992857423396783541916867265794599792069724253948690066329516198319195866147378276402392901741858283871138292659589686088299399975810274601173982256215890251662977268218272689833435559954218891735095906143588781786868966336878210961786534793041189453903417085906339614779113511533899058202632414291815325081061673086209558138325554414852765658665253917514972222959668067497726066778854370307090033472107277353808445801686831126043274688075188891764482999642252264490139704120633536499053411316340550462661998551828497740684942675826817805019828117366161174209427641398130777486589011048439569113194913382471060177553418098612029859383314047404978031905638218533722110226127402363688368633278028950046151994567919161880267391546280671939082836203290638524757384728786871586252658046001637126577511053291948378371690819243694987295049259338703842204092751807133637045645623896919655298908901676766628332254319528869133208494833770163156941811133212817737327028781420235154608098075809554895680956327917131316606856761665892700302226200787891974182173006717990986233400637294386954063825343499402273033275767628128566450505823045705695508446390512626427008375953902581800594926283670709243769886181772121938505739051190824462891335781324053186881598748557121112925423177931447985156507361838016782242680085376873801589200422795910409886787016094109422666908318830927937945455528132732200226210948439090067996637501805447274602094201599530634635237811340698026381791687576454948499209644350413733301051905381713342971726001844582616068996657738070611638772198480996173642760726816618738203634126658787043866349357493812231978511438898182015126616684932180647897003519000107350957110563708215429465955623713705251222222448364374904950743361962232203747127545722127051923273841675288121067072003638169276991148386975517101833497131424514861383748663084000260450983779646094652547626774820163131732143862156866080405535336955873987116187560792809102686169225421969790430360787597085135897646576800054627644301456731745112590287098828700989541671732721285949070592756969014483381835877696852975345861063059352864100048496336195431532305308288713769606240001548598500316504592099278882499744297816584504719893753704896305271403417773575552245770586724275108034387169911616336851332087237641816753853565561608449230806593701894243426065344285741579388272305863549585637347025472616582753206928868488598166353652981523851487954984950426794411630795850594686322144611620961897092154573191063258405607512952407449760012583414049442108988433842639063386849003805987250317735688652789118724715563562423325777239656482683911978388113175118384465151542225828105219531267418756794119968737514048901882691255841655970186887260692602884441404087849489359897740395160258848931599541835154884219655079009051831582393958685839457730233034012362760952277353833511512804304794994263737400444951724911030003717330927462128635149220006790279385586502780017931693575505605271451535505874140862299845641439261483111564758890849659345897276406204811058033120880959232198151807726983763876056977900911213875562866582230988828013062931921508394361086788847632337467061822262883835755460346855778641637644832811561539559984101145717752918343075331062684967074022297184500545473803873759832443393014932579626771560303888730080110404696810344895432022243244605834139825894232197441390838630231100440184041398778750124114656267525982963466751310323012819546204635228791527263899620306821286282561743194873695696050700981264260327520647997757619457343625972582748238144388624395354747351157502385493037578454399278105073620055909795664461753930185114481961289314142298708905111737872779878729092643958736567972764272749866814904122426823744740729855677506809632143228090614286357014481352085560368371333981490811725486180395577449125631716994292391678253619402391378780661984931229716320857757787694067117842795769970329073762914488633338826826919798342965192778890768768114930982666994297211139281140555745162011135533724806099672583895776879761185234047015181965736723936208090626510794168729336595989097680319616824141776041543991731859244620196564759583475236718648860319945890312499703631651278395776802141888226257270678299915277837244076133805258170892131003053940619310098385305778510244452358406615300240145018105096299272955170693715655483726952905415254191926592220609860499173817347263586642089044327414116329659595172994550221205759256459270546080458119640066870547069294864243651424293466641128287488581077448500650765919747962423605790682783153725519467259020670879357246871369855338389097933342544150571314824192314260782802813352965626973256969195437870571650745806119881321775046896192866198807479041574338044628984801922568600872057517457486431632751924677937970178863990411467187707377116199438082996570864506537822865165868037013955828594824562483746747627999727967751409803424923495395762412613716259318441981326115604697119181945104490088760439192366589632602807292424853201782589931131237355225225147664798990895115098585346873506204822793860471226629908344403739583048988775585611084292153746838300408756758263350658612012094341567150264383137183271377822252178797228614843329736750591741117693731728009956321787354406964282125999475179296064550418793398777948960879372397138980479012251886034761316305371803061080338586845743032985145250219688301142530773660509551505021796502749403779281696401992861174851119583718985651680736625393649713801152416208282114829168228258574339890566753919701597277091223824476837174241351719812490441510715915580725715149235700307654496773493834121699101922942488496938832149823609707089936216011883409426106981829953913137528496189168881502358721855147822783343315122851177943602312572063905253995421271333783831714651830307572592697752987200008876608989830543870407625425820762223926100994763233965591538491760955603546553571528642357950771814224091595515241105486902142214073864431552502741992975475037169212817080731845740960435889272597141910517767037144468407787405599643553924999143220311352523781486033080849378308165506083050930578057513591588376490525907054362226464455722772037253697849972390031245374037244990603002149630101846915875931697140604687979491322555304457383619566168836102588032492681525672991183777251200223040167576872305411007874463124334230252849813536183133355306561037483601523420465145036226302890729616576451032502862673323556486232448074696143243070092971614782698652548360805482076948775513355621938101182151319282905264330404972311005742197148545858280853542455638409413677320633437224210733243285641057785466241885470388603893930413722787080043739922120438209738744955232489523832779950459212500835514414605293077696614592688451880615333227546249166372099316424791221764204687800916949884727285906826472467665160383520372826368612515267885523831845972506611630935376726048528205698767403449818230224186629670330831221483300304603816510515445069280324219582759738951178500247618220257800966486983654289734802362773309013953606958559497555205526848580537557370738664444259403117958926186309902604584489398253888327941517275556852049248610242999630053250646329313038969192225167373992140302745707701563157271171914264190048546052323721857666760634762507951846541925605720258071500519358549358528454185530047184748778373183239023325984165265174180858515321475188790757187057227485650426030633354033453554465980265063149688733844848334058889450558631881356670149342955901225980765492916594242232987088439456104847096801361332191895662772197592127540604886725912324684124534058243680401073397329292027650086951760909016925858280140610075576374910658820230991586285126951039210163832811846552348018164598268904276843713231143009151299314344595378968529139647471016760650090622951066389243237532360657618127284512507740134598268212595327303563185312659443996307222522811381545723144247189281651652005141838222941447303630763393805662614392068454756852986818426515735894137815763719497545959782384083911075430683621623123939613211115862905981607883376520546565291896559454448342232356026004156056213158376568341427843792817950071849050486280391176623922237675956551231355599898020353668889830023325845871524268597280910630309278646541269091711344429834379920621414356708665202095357519717550423105235352200726399345518970571358688966763502070576385539285618743927003759143741784472187702887707776541251060223220479188270825465760086738546516468866374711407935314040296620154104331820788679548165949917299647099991696603008090240837064954941596942340518361878935401620956146785360291542736616127024678032238917350606370409156291521154012315429224527414144355489165758591167013040131277422289823469910527243762677425881643493457290909488164220100516696955672251071168194005761466754246778130934943001066374663538510171586190209867306122634465678418143563826149272185017625705518423360349637727564504013666738346093975508425743815920536219111498040884646514020151491200724876111468127529616739145847352619237225236693462194422171473672174915925406408273152677955228200991849838562275251267025406693719905644015347241803872883205513198599363600288532328048182679396559930022172532677130123169045744992294223516699133286420090128055296806683031643644996804133245894765137202139120635408527009112701870944591212675622314625991185459986453332093760397925502925386999203985240071573085772985858291647849131140247185399099314788621391438957431073658815514775700260439843737581113382561081077776762064893907880270860286993021534315629557606145083466840114901355828430554773806799083614179858242065378000255855582985818282025622928369566234099141501122745693879270036821795448785546270611384043448413959228879693997800015783889203569626062784676628506750269801115045206498787322659657891193783390411432549904329201309053018835796533974483445995321782145086308451214735642031643813383047658800208980583709710229242614539760769681796818382580736244735812128523644986589620260752271868745255014367282154091996149841094718058515071067305398524039324464009543575644934853517600983083021205209344027367293755229063018482647123997120181431213637499399018281348611376559891725650286128583995229625558959743646796395988773996010400673061184142706419922305054671194383386981936367953959812498250799073022257281020094554272585696575795426635206912414224004537871618744878731510945719654413238816943530433493758145894620555407744248808650466439182564473106916927871462777461367815048592177609717458461119137400887618077988310626919643170534675031983845708985209706459169195729202749931591096594163451753142741693086571926561326334930284404400351398619850026967365923596530794428878771124860792303516742029490828306927333101727646089194143641126249641570185879006749450464394089339474328041210365127615901694933788176697256200009058248565672452701224512858708008799647080374243835688701629606667770954962129539396506891855561561417959374853216549138352679905980189520644579920594121914874525449635720967719925403551576292104241909212363451819735059130130527557700983933154921539941473254628560286016470453340681992021628421182946727623474511050063001262471941470281145952859659530401537375034680411530407263386362859840058808588471549564293761817633291577451928981290259060008541485365222703527654245789885109436442926071144491884686711778007042670383098064152926836669826964550863230477089883575049106918421333097744721681048049266011328925953146611122444442566217325136497167712039993128863959403022239213449199617222445880427061948603372373461441329903860901208379814454705147791256820470482245679750288613163490383754119604768238713449125425494388814394601672546919927863943809280411010837226941673016320747006768236536839089659047867507303590931997744321015587560044815894552868598148157360532215025204693870540162913465527584977596706761222056509478526699447422408046738281746957566598969780148060726694475034469934524202031663864403059013714122208791189753144798564154467294686953583983541740371861361345887793119765428913388367318731696214093032468363341687971984191986707310463337949947442110640985214726191302858267935925896010750427784277636480462503030960943058305068735366392775784967217671222925760111096044235396491989243456593519927256767595844585871184791323603427770750623926296425523710165485274782276506437576717317553619081810987789136061406463023414875562655842408548593506641226911015679778253316089569428754603015624070986858076123490927039642636971778769856280081781037432989911557263686694363446849870686683037171703831465505822201902784417182824576697491023737913535522664267799607531617041130296859947018245857423988728479693610399311525161250973505981495612869500093193567140386531165640958295740758405086696521931947576859374085747245489704868282678003603969776854503476240986528838438433988453736457743542837328196081534822012015067716430868910592749695666586972568656303865526420399474697929781119093405118715939260470074604073793620275607275240180615214518339486723573252653779727500049268776810538117049028816327298057843325252406796205757601383776810777014737693842944487410179298124359405921633623872984532355189224073322008982657152699800232799387735952599658331698331439838121657572700763123524917618217078212450132576823066527083884349260858593315468808717712169959463709655922589261043975751176827438525354488004470141948083985595299774490603732709993490801516859162724235745640301046068589298844277907877576096797159822162604149292690302093781737959963802281947708235758160319404219771563056408973013230970275897837687581502135039523796692819853156371175557286092900493912642477461663313720244733828356779911448922808673009335844119971678265972661350651886422177853429693091446163136685092126743414457153674376240692149347168911042142636209921135337266935944839190396590516705993825908899183016310711695920069552236554944401035659241153890466141713775842517539519629335069752824117226008786084849830725450083765491883276791023431162062803578144718468503597942414609748345303212051200856948778211910552776492978610333850963893642378656371675194049914033967200907233206412409455143478718859247643603605959784558225446957059662292045629791812369118254534976788981293259577695158522316834068364399652516167922982021804438296037715243486354186242279712713278452340760433588005263549276893370463469152638814373840061442392503897738197824925446380252459942262219870447068460814174274639790065231153112444923466585793825865552465848808410705989282432315177102528989709950842630411961139678888309741248941292258626725292886293657268761561860552386095447190951836715669631306371740524835666375946189602895435849178685682021698854151787841677377268378342948593947012900207724996207848657102770766958309722392362297157121882584613256823176375758274405163221220880538805963957054715197272010632270923837393483752080243223117994398639896307839924443099364068609051275687603954619168794064820802600441266018037903008218444998981119294946865604244248239375002352290322879378107190887794209352631237227454542733544068261264976099184496100937453626162960690972004246314044138486733094491975964453623454750933274559819557122750219248405392840961920871249174091664642661826717898614998743888496499482520229949451099575684640978795229463736740549201464277380522507473216760198098210077068705045729450353001266461780113854913861520141695876011878668648073979811734292300677914171492481535358446148916611443016141843314146118440952546173543014619092274713601873811009875178770005095437532012724452036250576009098719232537132327946579761378063251747712036421527932422180379457765803285798696438888313176806740450236957830413322110512554738262176380932053876271389755044688495901197941275328654624366858760216993775249014656933537346074993506667741754715356439195550137437347174737257803443925824592175691065311124408497370816722490897870308546852546097042609185420829864478252041919916740934435738408417730072136485295016869658818272451828998468146279581809397442436384738693092659171372189110538669358162090333064652260729353750931577159171827229367298227307867194292376919992209274003220491435675343750907862780818650644005324483036751178584478309175356017830654093346159262362729697101763747087102199258781125628880894601215516203640793747250180177653307076488441984957408078213408489545884085490500447144124608691180985039501784614117264416493546196828012527149660248648832213688709642256629241988885510805395083884645621339045423904123721245681863695585424998496977000444219706022088351379179766330770547855377811433464864054021749980660249444470889328549939377119227077513740024636891962928454075325447270896102898555197287688853537008158810206018792737048427023995811562327272841682456452454386020952189624224079827610870860669866323107154935676716064884119356740233030482193229623446558960835393200539671499028292837936899678341257471084896288884969908618646726319034147267782178716864475121043249964365478501233073597798261669997659030421161715062805230087098182965193191307330942806569460007397619929251538341038304869060507505761858827400990051843581956466142040948492527950886279585060513138378342242895429482494154290551097745240351226262122703498990196132355778078643949499144643644099881534066009507563199811478130273890785763962933204581081793972672122783616600269060590739705293649878494505623501350178857447818477109214968491480107017847465983639805334025380216139388915709137996714929068445986738165112568773162258906016895839111459727305969503207754379157482040074664695043936896418720033705528884405745056147926761939393755732363658770785874310048957149126147600582046503823209974524837933809644821520319682163774082161794205774350281466812035094075156526170315720673262305220090198388242894094557971750933736342159354047688894253415637490963198251971133087280507205345883884217784962464414492731651436469648026089223854504039313585348495775510612128468156363117579655906385745246069274557894641668229070181274483962949175222601912470198008329723085508824120765465154370521128545369866848645497915280808275377143145616932316793922138745192753967632994289586241944546934036536006379444957137524413596406881706813155736457667338651636941558312090642375537122832879252898176448519989720471987318469949629432656464352157533782845733105251312176899515795379324398773540125187975157583868448689540403846437218417788514981005325439712869401053284944178898529376617670022096863751147368625102817360677914417877224798235830982354022797081499709680056259802154155144889846650196389075839611675940159366894666386772166455789923584629725823704327737603992926173878069904261764836465476262071421872454674160457440114985294193263793744638620776182545312758471412901086408557278027154017378375791201418886961004847494016702388780649444095697779758838643181576791218583936204274739039961263018106256370098062805909733303246734706353065730476819146863944840702814388238565552422223819608770477150884873463494183291079345824881275448957397635511402431812911928796516670012832322070374191867349218154479959645420022536386499288988435250110178772674578157042818038039071803269107932730197748215262769622892066825553429325180765689533902497601764869111599580113738769207937778229367138060274756254018547546715764373039379132094848958541010777891108281096364103358515794907143662281053698680448319472735870262527413612035574421316934813329202175238943472651117206840691335045929145519893704521953406179500186595541125711729527132365565969381180338578701854020743209689605360291215397031030767584429475963753964052651663957281060863700811660563738574963717491820262974105207927086479763720806205605171483660516383641914346857187274400141283066818451387830875023115358053797556577950897067439911946624758381472923591600309355559738222946128673096973679883633412706887932232748130155417104814816443502085999568476288537946310871238759803512660477132760955979848016133510555643179285913691612675437184160849102423122700919324088969657957667641780049777301897453324975687256436945558375072181206235923907014015157067799838436777959681059586563350299304699542210896501881859384984808543869971504505679776642932104714697154679288172986750531233738250222905398970924115381158820310304420980146545887594199462895473639292196521063072982161791844478691445164585192595062882119451485871228527534852207983856462835212385176764371593862602398177735404421519044654262552274958139536320969323771048279132887152679324934720026948653335157586944524634595524564619487786619644332784760001362304979446827789780813844735041111659048340246733406862333024216529614608368744800169710334645864319552234250124750789767654376849799946128150805977309565913044630703667625619661426234844169875904498636814038319592998548352766483227295326922218118165941255675894241064005481833308500692081209840023448938366148835559523057684114108534199128875499241776488519834084432552508493640764217853376517213904271717165244134811547149615742642452286193186191522428374169910512367745535104815378005014916998953870391367529791260710935663481741277704783640026373132597750394031866394544424661037676751701888725621510722889321709643359788287098172533325425593227064303261777087324930291674791305844894577297183942196486366144767627811982568611094312448350069477134484294747612607324292599550957486894059068572855602311584513883831592367810254111889031552534909633925701462016451766376243628135292206436181527431993168169188999178347188591963326647709076205191305915844604166100513816033284935671371697052558461305278075608105444307782671897114674828912746320798551467012388813230416499655849763539214866233294059855729338887297026899313277623862341483340837370835929236504235239660263175206012182349872530539237648606154641703280133703001674849649951741091614627581672613360099634265009082091667622412150073201567319613981350223032147103231907410544136058458652171556093098647669669797309397745793146227887653430432314264068600696064110563135141398562266989779665399342409986318590801614198917192174714699693525628156048240631006429041007555912665504421570664108452654311681725908711786203724437190746946358026701918693269751615334282461717733402236415187899331124814869575396291673408777575681826672802681742060989902045281235117013974184476505468321862854309604432787553096468200315822879080660292403160018489346376191142832478916142863018812434972851988401115692297136950475838774792325583694732702109746409525960180288294208195572179035895454834289377031658413430920611032828092348043360555856641193890384088164523388863776112292805470621009147304589818123485448855200384580071894540385543758708039000774706740245038452507411111638072062123270097843761054009413518533708075982390073419465719404736438051777594532072148798786381254362037306195267839287922107864047064633907121493951332781050366881496040885644596191248619548517871946245837960278904691226821653472154430080606516445107549319608912985701195885286444520518806194642020427326382098125690990173341309096744784314746072452696822481012996710696846711946913238136081039785007294696072335019276803496332408478116155718996415671176899948158430149336374985595945384115503575108330809949204318832686312933646933578773045696331277795448809054724283649947909990308094020653342518625666662354548941474889734154520370080127611526525869876925066554710864729507733958257014024000976453331446160466122321011565351120625653443011517181114678977172643842315001081652519242556407252819015777719828643810410469627003847244802645316073473924118965661512938629474761843588043637912526428625135520749177434436816033213536859269227973226930134298709080918776675560498800836779810073752985701737872274057536911742713071378371266288408884436643099815099211643100047980799154710666698878787650526676012586992879669719473863849681095645548447654372514327365870253185625104592606267023145173870349106725037796885504745463456611903660696114773799659517472501019917248193276632966728375594374347524440253915794205695013174820805153096799102678400282068108337458245716880677859561349000432757540651837366881102677784341903221077510033318438084739556904926404694887333957835180862205009325325585164106291452544172010376760257295253607980998450216921563541235184298741726140378207582650597872452945632578174266867267434860162197647683193129239209320857907096140801278855549954292632617967481115660540787410225355542339679330552226471005757641811103797355097011163787284337891446972495831481521153357587062498659201490563045875554086837279056717555377679203473463327246208782011316541057866143696632564308196669813077639246862839455961647819414254397029497425018902982703303681560403786050727870411508341540847493020287230197909857393107069595287915046715553984775707765463039511655422860799419648703387658907701705089368917679786421520370196745032223219133204953309053971571610584998315578032131852516253291405087186575355230608520886941004435818089138972835663928187050077604711698023342123193345839961462558061757822799362956683194769737829803255873793338222621904066910979269393305242789756561893365192593409129770577989561030228244148843312986968527778475028174922463631355615858995238492326617694496673560429274361929307747774284107336591135681198884875281250456386698187126728133175166028998817396957538380507551035951405462855142509683626798687658597541817347113608638455766383892545690118228660241083556956008920275989558657942085274769270848610318330467438917375451332296370838353293327084345351865379374218838285814857141936497977255443715025992852611480971462121959238657654232609420746305528330655313243295280395089599695068210400376245489641661461676711093264746949122048404657900870890603249025510499866522404525160135021097899845033594968228883858271948494118046708949778761884458831922968990454320430458350631755013508831136672040874868588030888650264710560765984772538485156235558161284561730236776048296271803510844443379747689951968468825721443426803457260190846678382714419196663588739856605262306961555544061934333179582738067502530169117450409474471142608061753279532751851151664061439206546234390112014848089833032561471290942604873601271942812744640885181071825559459422906218016297799488448489488306815035737750377808801683771990259531475639423823372568876903786537079430070916607003211991134620734407342075145708227282304954208035957109300477398129833942896716989968871420388583084329697064793340529709634609458159877310098964209839257868308581348812515346248342120131747303140932887491269205854403519245736741711195132972728758956634037503423514795566638438796469453106794502071034037035488061503654295676601537590751604356176928232720104696552152459511653155239493726420848817383614787945413354752755148886796201651273837193548887509628298051155261313014987702636967934260494906431207190421290846687390197187975809372178347427105400949273108750154422305096028229663314089688288128257258227443652607148763786955909267923753977317974718231618388806488678521828083132827626148382738924334314105125130066938473534138840569837948057159348782124581837350965145201653037051485571121699559359008086863805707341304117177102212392953933737289882560821444111625692548927008714614636711290168520497347678959608462581130975193464395478955359203002622505068785871003526580539162230719565932051361594293208946702407511168864956629306629442883571729555963736568542775598967528299070053065211481122536988984648514082357899227595408194840418218565835993101863425932951895604045219890022707010187471175352729474905596365553975039679385865776797873992880117238314503106004060893626767645897845707481479123198868697261351136875272894326760777233270041353699001058470384908104647771356710287610652986616625673005155378730171564466911043494485279451533386490139274154133308442201082649684704015114460044207852281113011463288544426122652885904532293354844024597605693986486640003351209489751881588735954264555894329689645096522928137132236245430155794024793182461411484748009478736621798335767047703926171089979154272032988847538613408771280069077351685108501219913370928032285315986560644482881824345122406390171666008249949676132462243147965512165393917013414685665943358560711754758500107119170360340791904334703162796431193237465186068443539030485247935003621186016384860204652768117900881291775969246837592202072848070189894273098197057991087363187523374064345134413556947757217680871484855694470042210524281795721864103883286093828016136198632957504409946138655499486619790614484614243448046341879323140783437558148109428548340458610022741503256946736391687420749940053285338951539023746781180350157830924641871178760166265731572763216377636213282122151904997953507528929385802695591653777971664384499227006849977915789591383061666179085552053387717441086139349446478486286107425387419780630531366578177581520973412496977980510104177435871073601648985388739840167635785825685291353590663395680338966482505677525610009476959136400792019166961221152427922770476004994835617073672354382354759894147549206769795047521318525872732533235799977292151120355830089021085640009174361361390270825944041114009938384329277135930474076064323074000010378684192920429268653056330567333526754787823757837362576859124411934535777646296146773738595617510648929158987799711726557635335943483010058752726199786258221996448826110220306849163737236243825220326278940152143855403408679724620359545562797010419545668503902837753895119085898140663863512997600843766467079541770451843672860885987612523014321438314015218444060682860767681617101185416592571302582314706224395499345181837722970832615394668254610753818895143405800677818804682291070275985145955503461356867637934162887965506310899678060303830100886528084282470966269328148068268037490776796091195238891714230282760527524164288520898816261936981371492451388722298138461225675790235060883748944891997862511521657858396856132753943444108586417160195230370881432668865899889434637524229569106053293405312686977487299727689675040433552230175021361074492969896790446166107869683066259157897473768482531881929015460414427301027482996398693678904864947741552214736662914345790792105361749641984532259543819155222895246572603502709391422631921042847188578853526619989573677433191272954571061742141886739732400825487914199222843974016678795713015935711852431246990442023127314449480311468106796878000715977584805306646709036576279009770099788122810402833821963312456834387037122341707260197228588020532573220643463117766226862701120648426212049488360669478367131286894992098862530683193412476684924818941250016528561559319300899429801769479427384875912929241984870093714054161815888509408199791562455516753044732283769767570577712385312316627297420188010622380674551140478914650476939502657586891966577599654809357536335509261478336682557883509237725405693373133490335290839001673391162150429912590779070818094618292720195808549266484705528390229691308020303888310714547550315129700580583074442973670999487782428204647006709130187188475297255473932608876231106582952002915276387897444417857980891247704660968238876530512040176904680365880871436731255238349925184775749631949070765168994451453061441111139224028472435555647147351839663911601325851599632654472764204639182938432800256720950298557397657730372491188576500555248789602025742599413022111291140513651552636040696276932896669255961061391978237095288133580447373643917342764759516855067427518613233320090616189372980908289070601188667939997851548353630567886968855135685278981330212889003276047721877784364198118909969389512159442100508161988652552882626370240185508845462423332538290668931271579287511665772084974948130047148555543091470528756295374036013294184230543195638674048011583143833896591841074774557378009129109298384644294071165990132085436127308676055514944525433364238672865355157216636142720894853756601245838861548542886355410790444231673961762584203907974083723406988816009806841587241609312362523876536566105387934123840748237352965935077863119504682276226075806295376028292729441129153679307099544899101751965102310183017057640030417520804163437929003494948766774860309672690697862988562725266138887371099533408891530823675360923211905975398006053650288068744083158813676611049714357339783546532689441702894653286868226713116658379086243360069041723421512194900194045864807230861950807182439901343705291460504967130332743844767183339935474734090083017533731404622051264571443114064475944990994889555642715418830747835455790543589926504262680509524100414752382466285055885167420908319611914510208664496838757506093526733574062690543723218686994713812884732516106873794129428192108851623921791778762072184749434531354811833691998362728486815809552814968206331810617777195758274470600477973204163169085515725002417506675461081335947423373244256584421226372787898176709677670250195550508986121773218564969631785519618637764928433368056247729582299319500457677600571342330387079027605957064503823480622755464669039006951046452978172214270522672791795449337494142832211754927758666226411003399206338837654915205793922005584960894916927790701150864494877004454670872625352628180674259541828510404089967922803434902790111568724473199220403904614853591846566697887297988412836239026501119534132473392095628787025442921959979814810899273671486585888064084126681703365281722848190361342889628117462395343351627617494468342083508654056223138868770398831064766394875460524871771458568935097145945712260472825351409171680239259671051686799625758320281118017550586392128472888655178920190030158760757228970195016455211230666778646081949516526973308745661940855628084511890271201391775776318002488097058043642358734057178491944472051156276379514595454159413121854324653858409435104527423646553193645455131474901629395795417894538300038124166496000069993998824464889012967696839189595549017526809426261076711430541845928650221984639510268320451508087242035344219232409989051789460116829946220628392007235080493532314725861668998539653886816652246171214230745098833111920967687901125782930282148270828934174318431587176436249292437544278264065118846478695617726004540397808302373304144559366729431087913538890252588674215971593844225853898426677974602578626700897193707423228051336659329504216385617083266281549617831451055132143428870319833813058502171746975557373190771166466847018302128473641580461643241630511409055493903444261536692145060782207132561006130339961602071885765284880744933647592243152209192391645726833848097914877695069158623533351034720080133207409299988762666969521439573593471884845751997884643206556869521722877690034869142315371961426352219982517015564686487577866680920189492771621244518999527946470337731147391458248286569884238155690776049207417306947019479962278186335321518721957139925495585570072757619127985076286104831456598279011564927345452709533472202668141680909305679445483576775264042806696229397842710419271570945924145877044807005105622858641178562043851572077233591613791789457133512933661642482983332144395140802080989475665258940885372365384455015509265495338044757158870875871617910738060725359441597510774103685370119904953900694440469762415279308207680195803572294326593427172621971355224243404554363818121902775312921276324033301342167016248566429842237668031262052555815083657370180383236442505225307814211249400988580793921688667620436223665159206097350032236750800410068686765284020309608688430088302363838668907284183296331538994553098163977247070489680186247487494252422051043834037630285635218754635374122469246659728974041518883373906457411462976636019974678411655047240144120603112877206777030008491996537543581334782345784280039416041033727176213426413836840411231350026281993827372270177815529614197756724730161286136954589270434578956809806959063592017615283625670675399100700022140648299428392221494955881657216127974298384111188229450812783121895416442275198383740125202367364710469576768540008231967746467095730542295662007992881008417510938120051038883789129585878390305039145687776647830668954534042498303136906948120720726229316317382635820320262046290077981519983250423124858231802883123890391414779877899771508221784152691835412634531004611040354533254377671919671811361925980823924733057944373902849193000401925456971229683950368932329164013560236727423070654844757070596292714500665590346072997540685006549507021254560649530683478986180591607030388984372034511809937346916466047896187396012458963712482762673686665143146688476927533040220771480559172118313721081785738514832943942887744660198741017918635058244983315162632654206684567547799015432393761017525040355960017467559018003821875236309661210125925388653469041960981194883462703673021600507366982798358149027042618334066983472657560375509967938540503442052248475406849229048646917547972927355540189939401660802853843118083124823191803111066594534175528702292128839518538357715734455200239167896702109292249957652764963660784422007530326443943751795727587381693561205141538265529887840100641428943956657851030661195473293589699594522514987513399225402057361122378490633262890797654642002850585290580348877016401724536257072424532308823929183040024413493351477968333535981285699321274558218543250612408859313085607166274351045815473758404470575826315724715219986847473321631940915987172257325447980032359333731331467576598356165284729406783409965793333436544189133236098710508594241175730751398622782643625459445291265427471205378920455538306986256760202487479317569642571829793616770361444796588393009153064996575468603557601752166075450081905304631999714607009513938642012423764256975073727298116335492330423979359609515680924599926327251173771324144842283571682251558708149552578149785165808553374053164105132609618927660165242079108746769780640405435645028929173381904329701275339371393433139047638377204691901835214654711504794313573416698281918267107357109518501060753034028164032766013074028001527279646650548531701185895064823003396862055117280141523229537755347777750938534711292235979498459849757465169788879112686669637446748995548621680863066848505663470905104308138117980414157949539463679302790513513019895267686061142177337692849819109444290354773778295620000203982848257040509580486205695475921008514795336885135349903944144556503993635304585817195472698018320204635052656014464088700890230497426293297483052651253351955870729613540652637030707096510304398320203084007693509950847185159007757300439748151017712018803202120070001040143387683157087808180169450954829499360391682107004025687592060586187741732756097609976080468761443072436718364416831866012531427325543632688133257982810867661540146082697411015983690536211141120870321425610469796531349144630323349345508059530268480315724278795199526653218659998148865568778485933621804969417120116402727158417880695598146072552151590290404013714817085408786992460329817683592065813897504821420250931567081127827495329397528681597749937725049503905181844894036768257568864371847870950479984391559292568410236882030409091738975320183707072514466616512598002474121092071887072528960086036982698972467740061779514166574550388690126741640568360300686288342979563426167824782681566040475529278405785192743034602997002774458722222764074619942279900994684048213409146544324164197870161447126847395451694576561752958911939455150473342656586009296099391795635842854927202411926799888087632457960378805199152738981134147802932902912453867127109178159875052554174302064238905094334606458935071057944009314337338373349115379056939308880831499245849432067158030773230203305914190630728218477889835774331964165950322034974220692266246354027437480737666444564393470610158265357732552947785613890102520819371586122844871411663743761898634092257889647387738594500567885483025498222149208849634526627915321832980706996175965028664680230076271731351970618350929675078951898066744446732806136645906950265379147619561038067322473359242535706566232375232863038228452355546260065077501918877019744390345486499441754116948227599906184160882142013426549144894783812663977509744804341105063318170363504293809098059508741650050009562433310051129054776359431457112271486059830604870090358106772576884931145894373883236412075281440364995568418126043972636836110402533559504272577139471532279656284774162857882437271000714092612290145385831573203455379190689528795952001932727075169109168234398704297523747930750853148294896598995453727003864126549020705672258599223826971323821664646725394131810623584472705332396204194545866499968007669282727076797592759338796143926474458375064672891923772356213854852795927946870225252804906719258147009090061537299267279652342108014594921177670604940554785188975234724885357321669634314638296602834939545006191417172546209308601492067448515887800931805420702350183834227557428161202816383333826598609898478456624086440869510765781246206023447176984686474046281792410383545815894645122329886304088667611872856170527006433890851817167071852027408967166188074161803221229801634534943288958686171706369639294556366523600651092255452865821236585321182420976542382097266289896355866961213344194817298598394147644002915063161874715103345197508253818157694590551143185353487793537215294694762728891937848793399242434496125777459731626526816196602141002470743801052640779553294587625810379711629847088501128164369090910956770258288950175120946700602646122560164697137313147371616783008223378582954032417787217702339423324030586301684915512638478723987145926008010655126803019062112510319093974347365222195624858627342374143056508993914942933366170070164399478373785281707493220925848998124987339999333447865358755061546329765250899026800608908759975612617647543715797654751271444027495220693138920167683565779881387123816009551070006688685109657105435663005899872235508887798390107188993907110960720423133376081805213247893923388157007580821414566327016161522288861583526454272444987045886423617789990979601546094934059798421710451279849327430916183302117482031423319773160103201202287546364935398324301042196397879309049719915647075259405494250408201153239384302235145713557863999797801110232920852048517211976787549750464224171644460181297453693709071134294932780124156695156913492663250788973598661788577188540042709463055749490964763605633176516054106102024819168206287386131614256973928362721811765515512108547560399373185790911896937529592465924563554567626232536608136222737966281527977478362638096184903706640140395392706636438577387142353387517479117498541625876231349469942893893852730366041934624359925787069332002138745082787940037502088834422685216216962183592456254720908544744556434062557347524013598517280964836123791940151131812421865669693207078705322927731366844139424447147203030463056248213923572976862722316785379916775050589023309694598180346664904035680582408516577465278594126292481807689003454575098296056303242922342927961925300923638353565101893520593539021615825676536961327562681469125206598673547260093413463955269240112197439437190898328887737638234437784446387822450560238977553438640915162854430222386780806166343968310923164646479710575970039498351326592245484789595277745532602631786534314853104257524667707683688997605413281143459284043026518497579375098864437100745888261538139950472838486559008831197267280131709754658804662616169365759622589204062777916697300803350152015519756551347351615359641514271531180345641363824724028975386346166943893811573011563631347150768829565481424741606310186274126358271562553239699118642901137848525118697351000282640778113083981049602141800475495080127974635881864117370907481691456092021639013665844275013088701353746667599969311444335718234033703538966779024055763543523007943284235781779152520982042406729641764707752717419876075111471211477159820893509997824173748055604448508810143464670294781593367305265099877245990563897516863088309596061287510115759060677879724333787267800404973902257784149952881922240233463872772173512239075258126234862660674786382198420711925763416742705835619031481738413262578219677556837859364387901864443611913636434142391053031416144709365532063048035399227755313133730924545635670407684089453300390686047759699760433272616255458263646884311053272802632126798979136927049314851931853106281387109946059832448586330403304754992841086886212626704885450527448668689694998235662974539348213294623314225951667372630976386069285550120173159686295773433382325064523473258856155599576261196434809959622335990031335733513305058603612787253718533149043269533081322351151685157061871484702348629794815561023037347461213126160235636875723942651654947011952480242817393175144179109120257268850925860828078420838304504580157692972157472573172836005618057544069404182920571244760950975828544809881726565278840699216066688488586160962338610635146777439644036174097704620453494408350089616732517287980988331894453937698118351581800739511071190533787275908909931222648648748860167236252353319411944508303513495686194476334495781710319459561915166657218986222036860546692333472078742022506634463998464973047246475739169388187601959273641738858999192866533407049258075797353879522933576950974591043072697840521655668057532780198822363936378768859108167452234732528891442239116758031246498486781174081101251056030777722305094788117533077802240975402579032510140399717056755031679071127654730519630686751009741335185894989045247104848974994925985455997008909385971537371982266543240893402755168564903874011264950355403024166944906936555077040321739449773381151612701510844550305327627463659686533326459529036568690547096664626426237087343163963926155438653093523278577913031965169782680719278116302810340194871775694551451689638504808185513127770608969590569709343043401945270874591702171109862634932028644095818570528878484055025359551480625195266757219570983292292991571657355152475447982513227412706090661448750662018158525915325900146983342135581220389759790816060306456858237389913823118874363352235370461010243351838865890527305223007818200485945230877526131050731409245223326617166869291565182540348426295850631958770046055514874171475627368305036640323537331101567615409102305315550825684698680539490301054224210947044242866876079911568642253496795979997891385315972757849040121194028030761772318081318395349300461647258870264758722962394977203472802034979899333258442210549929691985700883271517732319963105936280857783202215648616389326106777679040588604610543514012561573867907480546698631004762497675003155920516238308166014694143210161468153707600306618077536591161152292063114279025878773946623286877501560228868247041398346305546593260724936422786597706846576249886322100256295759986643658767556810293107810639234515973207778382124100201445641873347734134670029143477080687960524538010408595202200913734592894149867735172025565419015490013295439888932995721180321790375458426218485969277680082144614689043875337788555659638087754350440905079874799315095385833673429609518061592498472302010118183132641532076195383454017394584933103026879519656975221268537946774655726430495568452035212177127047174990311582970961380655587788404453920422283870478587172941397678903856756631142395638520852817864855676775683327841080193216679394621308115552126595967513763716049610360324051937427441177078604112961604212129452824804525354874290012606617509587285277649754281735860017416248327132532595118214984207117722774058006598967069584755699949787018190997404756452206202608141621719736221493896200262355880287114874709311630737022645307155247188767934813333307022596463602465189127141904105949381725069877637073045907357868505913924246339123215458233137909318133734868659864232626060292647995805645380174332154494724929697591069757863614585136238326598824834963565048957824178057117061636811010141690283311061870259316505538742195387165345393834262272633722262800107700877058655658109560318255638415390156408585958858093349947211585053610431697059198294688716718200184076541547010006539786740861926349735695804047698273347590376111756139320675931050665585851662864271677496624982796249402096503947773773843404998555056961090622933096508709884163726719615189547661302083420608879984839883411763394120150447382123010589460772986464170081384442073816286052858190036661108981124322249362644551895010525899947599655698377712713428433658458369699660311247885169920204625020241761604481511088743572229172726547371017580632365742926471891209257952092924366645834419693281873597259123550434563668500827270437775735617368197073924819422947104158618068557226734480349300634079580181027635721703398421183235307616303035946316980493910265178428551907154210234075253444306745209355132008912751655428441281637277930517117390000930680244933755699350792001159036391926924557362879087173166521340261257352460960528924315813011965300643198252353246717314835634133774039845851959184639793309584455364517390881553877010697646579899296406799677922264276389882198574990912736529018366284390981870733045851241369272429996060259602945579708683758785372473575289232695284449377224705219240045867524668385842751521763461063591741279220340313664202399100475249319437944228442227950387012108901155815711724317971343384801003395273836930874172360527272468669885781564965561375185438216156975786820518758824921452017296406909829664586093344313734563680876462896098725057264677341292115775476535972212334150085724816317516338862132397289827264946696855447114650581958640329877939872725537873360265269009710039419780957991744020992060195607259415455545674838817229285276855259541505476778223256393934982018417674501469061766618178424923639491581890137745932123188612560377661583109701746140995508367301685675620832077714386344877052211191813114831039727550670640428778434878277150115179464528509795340645373255110574876669685845524866246287374729135783773237199735158531826888980633118482935024849309392572583412005878135326411409650343983665660569453907316561310104228428820032748885451044831111388345858966438542679391324768609175977709684794393864341610510034191298112285557781490799201224202747383818932123643328606781554021457174700873082394202659223723423299997164238761235676504259688277148402759598973475900556009610315827820637801977026105516586597564159338077792750222568251994732522430180065792995589428390317231689670314369578797456436585101563923182595914020311122676580180089534809559802652677628888946725076851079695176780984369017604408649613939626351155680143022609519503787389117183265696096964843345096149934113490512377462839166913364898870852888776412109491456565361612791956387321485705144321068489687116405529318646672120124007834056265563087948317076376322972190307883866286942526192841085858165551068460539777347788524031675747863363160680907734663126835156880730425358154762176503390368564697440930008780893327505743354503921717422563389067900865697970829232500880221284288295446641177229963029275124755643632239798502917376632283942566602527168745764101526593364718915926577541239533404637318058295711424362640823422566722891935264484071410524396654036258861863182422638504400033403657980214876555965287254965066167443452304594782989447906586255772608157780223884747831275092638478785564978136247484506245527626810255460182741437896439790616749393543060615461745772968301681124032603303227369398348267579521586395142513663442640537903553897306842628977732928275511222642006424149462236694088163584687322339337977468779532735920387382992527374057334367784512837922292088686575647559866971449588893802308236046742196267154943780418538144061683801426461698506243255738845501335074624097141758912968201630872181459208302074887513215647402085697342041932743102813391342322972595039658684320551291968288183711928159017324762229068618957951848048151878228970640958178914205893546104280785258157517187583309874110558102739572895678615832307484988372059458467201263305285625070630872750879427868952135281070631033202143755203757712817229406874224976555153297873097459617271898159804417699848053149138156118431127018404283450144942902979949473129886002943897574026889280500602032163425977459989728913121963117019397561791857007109183646319621341976276893147599285162004084398929443207175294693512153362988683648883702569793038945989281369943146903463595806646346606271496329461965194225127359680938011065301536808641225307804171793592164585501496832477930444057512274740886338915856631596742770745377229606880878559632598729313850358311535347659864295449978355643458057758514895618264236706742895726154181872426419005602141168660486937556121724685742187930913938114262764428529471177956982636483809261618215055236289700034034275714939571079998727187731133824562295014738801860653555989808085019734111050182270945436092709067553904767665043030838871440986966823904450918374093404752785145731294462805320119363482651252171091995610959627424243244247775088839314370825312503733931286317476974787439359576287840132575413372020602430032353883091672123004123782688279425885759745399350467396375317777373317171931228594780718967544321199314344694697389695454998325803486241906545284264823563369287896781928627180761625007146868662825265074160211060724661897473373322564470727730465119303668918172228319169715217839060767392337415659043609781514932994149135607046545081933802580424453721817670436760909434190635208446390237021202030205090522663850923384817253071759117576393607557418723192918421420857740038408275270617613641972859377241791045957525049348920827926169961808605837298784880373177145094346631004414587979278705746653028971151226232225400985470557419173266742913864360486250770510019855195044542492067684997459629660257740645933706550737101043355443556561533776709840241535847218737350045644776324282931031366981849790933792585292478506523370961395187886255706086969319630419976850193839692849842732705924154604264619236303850372120594434919291933777819486114718818545003081197824700811764371196661196406678757124436783013310389283006510432868583102718430334068763277238191170413208537196762744823948738707732870704133625628347189099648894566691908497569857435167844053246669376241672422937161287366079098254209019267519148830460889338813667985643481923439767310397436735108715287626877657240812086649066034329608254953617822933869398653838486094928683847018534007353151966885613861703992770233821273787698644726600909781007352182597997415501133427307239166222444955908789118949459127759670497442584678491109204907427983121477937205052232515947673682933684805795993667850159178256836361837984555087011639264527380651127848401702862445972796447782714845659250175153739597279682544779963930388861434401409828808936446180570288528736089484297988852942367517482973017828734460652508671869742740989644641517759372165247406683976347580727336124462249594338685453831937387608575987202814832684820516989059332734323312357451389207672473453665773492931691180511486204821545231621163865418081881012695646701219145452999219245098803991617133555411348808364087142652401078997267838748638774656317101919120322473598542932187824894033787544486396706298265318269783812807826415202627983920915237781190522404007928036348345812261010856225393295163952524218300755013025148130943328902615897660913633603861884489513323518919138355931666314013176863950514957104662447004530652931329063742689737194510150491814703477603670331818400088461866794693540118340878112837353216055774941887749456862551845899885272566475231974604704771109870175511512509625662141874130479171728496363696045086130908019703570893489101456905636165677978539905149191292234773307901865380809781827670532745769857177139351465116865908836575208036470028202443409787123078130191843062528549973089607502483431635788293323033971549077649329381315890328469178773798721950541340616893068597881206502847786635182272771565015818363718032961449631437159692210655757900837962584337142820842963001862144958036731796067888504837281627906987529048569113858121553848095814450404023514269147008352635417400374220224083059594946108626520644167441066381958995755597445363067441860030328626025992323517361259888372670126557909174929477655388448026798557714433207857616057125087906590766775711801167971488078527973022908600986370967202991055526527214543765718934451596836873972081262964596807504306992378204995527211949175686464264396984886787622665668218147691939999171000237344853491722490236522879098641055772704714666787727116890310627414108941141088092212339364590979880055810582653693125440913373492967564646165904785735298980494675269321426978461622884199978751121476879836452819480296066927359269162348136989348151888259273749066388240326672730322229396666353068826178733359588960025989573901617904741521631247359763747011537139710822054434947186971114674024631884315356708895219851555535784096669850825620910284124315556519806001207599118584341970290959891440078277813015518035219734351892821827509692588965263026718410160540851503390567549582694508888742077496443297892227020041326434898638193013368254911416752538241500241322013934240693207726848830293369663250816055070651075153214806709083230560198445559383766451255287734207243643936429375636339509529817909082343278910040619023647692757935330422781370314414185715414565068939293955221787899230877919281680270460529517956224550149743984717784379548383504923232327197242649912467949871540577350160395163302972169614426080984177288924492734859225032388069116643361208656064445883482971177090889535350515399991305131432905460257833827700868190842083884046759335777225283853633330422163997875897399648294853067851376001620906061871758791459469159198217668544327028457860876536266477281749273703067303410555772736136193588602378045310504890469589482443912653086421669417715935256583270059029487938865624095603331999268165943429437300074788163125043413813546999862909455106917097697532854006832975190514256108820130117884811695402978174576496946052548459913472715843573418251355094215346394694396635339001258313924856176430753080434327714770614086122094550822490875967200177497042296232536593868047333367741183753932177511044952894736120395115176471863651296315711675186869765932052890139771648776448967890812104926543327184499087250765028784122189316163967385435387836869206267002278033830550424861429393532168678319779266755988732715235086669749871000715574303887027646850123071165135267730565388101418784187981031942562099396153521518561250604028988483191593252570833799213260195146840386544823782593427139512583885053765524541305767751560108675583665936252179687250626148053602594537411032210068043275787225551202391208030232243809767199138915127083956251308047121428812405156698506791684834735081109907860253525577312814265147677949795312117120022357881017842488181129312531181908661391040497006609326078584196561843352057500462275893483988389261519440135482911545163964903295923267850425233293596665399232309577701279412349162084396354958096272210125061793822447577490491608336619338057185851300202822851618478318422485333219468095111412036688573534315412583453116721082395712520980028685357330195037137145002213141312591648512787467785974376899028580994726694313090660738077304951293641856430947950139703098681808146463929799198184914976630277363456065766899651073640490558487558968339681869946521056688227033122089973226926602119031515581594171191893160346658286352291158882321240691635271485248903464019102924036946628575999117860478124238179721517544871801582468686161940017802149556041126530045245719159612460050731461427765804606176377880742454064064107149126764436981651930535574301453531793070333207157876504449567966446921539396683715456731734752285972352588636108039074522028298243355508723775414050073680041818510893640837595006966029944640685667960754798706349441320076264918839792690878869745800039765802804478779695240938894441267339442440422278580776814090530398869935723435061966722630673121018450116709938099545831889195000063697511186135296125542371405485953972381193326610615945799211962312642741079757696690491031830010803065112410962115552916075370646597884450158361179335782449053829766647934779332234367178477807587148897862625709225293587104930871901867843333037284394213154480404570929285859559067451467981386354942069239655641511352603113354617004639050658212423731624596917196601509012517980959036556725924205720822213381680840177606162353928620891314771372833343534000097147431830394227183133180782706282237321375226639240115429887414403919249491004137781920824773040721863927364686740003382149349955336305605534166123833411105661746901730689446956054417444804691695596895981112744729663035405286994454350202647210258065872611569966515403317001818925053710795741751321773906492532823758899378756524544821479178925821137215613767352749864550053405702386840341119757422173638655185043489056216157430417208621834231189299373651179537703464869269873435416314857760534151583220841163814562224794347032385464645546129026783863400832741396351620023665038731280144079714555766333373717367029718238071405595460700202570080754562331312366624278344341623209712655412904315066711510155088465044629309419317490202550028052988190705874416995140348543303074965783044800077599689258069820811994283005787582408019974108348837566945468979097172483205698050655754915819453624195838219775123584972393819519478167763648379499921173428563858324065103364220079316140219129235240570849442316617225269703058058003759963375838301209991944359225313664843174307405347725449508092812171167916389470642487688164063121750440919989171018937862904685356962152728388351217135103557244294517649953623531034885429525545724911276995201482037506531689297745691533526481489081142189202111753997334927473232565575120649820949002864638095792399948590497514584599480635909512217755436703953354773540262368707019926957033951548330417236993493142953798127384493810526675676820313042583142077845553877114169932257692328620089615449093500263405976585146267694730781456509613677464687806488952530150908423549131136559694744022380569085075724829599967635459697025256634308349976340203760527625833880743665388659098463900583843820072065921404633511571225059528963925720909366362341026791993663020908878063127127418978899169138279883485234935799053795661459525200760219036223376173188543094959363894013209760088602153376932859234725195742087915975650884581310630378174851305345664046873465193044280918310138842032895735489367146841422878251302871353975839964206833812085260583997044777562815536189459364865725072124151945523656088250246607542973113556496685060469059411137147339994531412441229717865163682329497997413608311106554508817228398645109856451097408049827053458265384845799147950317228446993000338610842042419630752609756104348996894968034508245025489205953753818007213978335340331135284286355523315177250429092793754524888161911169796972406647955193720212784176287602427654234630046353907581555577976668431691253941619308695245855789550007579009675453719321087825252255726427091219468760875522178738937529406640350535883886060880759328431214670739068415025973888813126832228904253314943947295168241930134623014684907067234699800130103987398354748305318451141331343992792488494595140802058245668770462565650179028491044585478539511635869046151517271397611124462426446713178400081043309242697985876403050683872691399606174620079121884578056880933647315047644562791322280074289830099790169021156712247454424081815463133786922655924709755289591478168134601106706614100115904598807155961820043257151417658168843821554417904731788119128842832636928412606737601217284103307263881955672419866602994248560874285974504271651123151486483366711326306708918452325056335993754246467002541965903412330383591651886734428569006890806446641624531351543471294707376177939834333425718741423401666265170443617258009060563019843773300090991003926499976227109666901967994044034176722566718879119254445260505597942466333301349702058211364104727049065786887092972345180752840737350288071632957287417960723926579292562477263176939892601101909681464067531736956737034601881530854954453460224666596339656928477000403101804979812407383751555521890011145860913429265620773574863323322247152381763602307035456599538503330960364709568794151755801977454024261476261855793249069991254023357597851210055985845013670891545301167802588748869976238338856111396270307200203650205309117313991572788688678983816697014557145499699762125147938823003830927712942328146062460213921551685807721040354667405839887333710003623207471552624283204210964506963608287951219588861377344123902172600884285815759070256751729079071382156794556340912608003689056435962760684927989474327388761660180779780425720442096430584941103002741073000073404166049458362847045022308665467430572525492547995838067361039413392919993310902470055475082345134651803097150913661958450000806463003010950633081457555772730921451551810775805033008464406303840078851177592269169879527635981585202144866812446198829573516841803365103076213989941302521959557896895816605321628540553416269386617832536916982626370133658365553917686563738617167099821552306698605883563022932800422195119433878201376137570220231783850219406526927599728676375509978194313517620411519350701624075435483953946989215126939699211196048533605571089603702535022267395077392738620383050466408800691339972447976343035145767488725330505747272184116292629529508267229629554607344551074712829193898163632288354076058418194362446736290434275273659093146384614577115343887982862887875203263295586757554596816288482967916604752163005492758709313090903579741496146216040804873416559914231534083770810988436091937733140037852130791446851179532759333230504393221057977746654105741946258370198233461554698630061111155673813856729849126032695151124929801829344652214561992869797493094701410538595802680557842671330599307625559390531520361965232788137007517444367201592212421643209067943436633797934446593814626739825683037909781326046175045288763202779702675333167646542504998128298849024430013540719646230247994656744787984138794165912458407485633295788580516700465245066481697998052384149069349597938881845472991011240253315420418915006661899566039695741015000276054169431635793646091125967710547158873679709056972550537405401092157028349488222970894632680629899360980033685382921297303337549486598778989306430911824842255060370681593382377808506574619926240064764242122133279744961427457476766052735578079571405201801769980802816268902278759437150007942464238655943355234622247610899765858008226272106981061193892188782700848756891682669254251411667902953759811687931639103236040898703134256166460790495127289513189097743819598594285971231624261849686205012154508485400426919562768920095318026233183395134459413364707856774245761150750137170712008470024304263838310394438779347054350579877107962511373927767334996978095025403407265551731260158002942076701673078508665500684113570388608958581459472110756681928621108739319781009742582837051894563632881093342252860904262816994987996802742139486469384910033614975525940124254725164057770470579563980081416042154419360941119462833519187416087664665133185757654859621814529634448043313812781694332136095806894521433536125458796439220435981176998584126941521445432888761206354531740193653029801611970877862812548630470418704550940177686323122815509335243815847630342043007617254897808687846734468234940762977773175718080500750208419105194232525483747621218706585925014181785522022553990995362885696633300475853547556848592150578248977174582594278885385417562500341953121496266989115335193405627192455158952204700028576014841718904581392129825707144437473015240000252378314114254537954315449594158942140469496969770805993656963615808516759561084317330601921702413313727980247242140528444742381106923646491986989591494784032059739395055890205612470808449785504512661828276988208849810772704327612883198119841725389499538325269231256134471047080272728127022774746388545810744463720141316173535984903440771973201385855825571615491465969505993856440937406810405014925603444196084417866318344636574421916984532362207298712860982027660360967793193131345183458367931085122652870770131704924308951671844605878933390945194830276806378164208462946660152102427902337229324933355765426305383805521882396060922494701350114889652804900039865239680629426601000156014987891217924466809065278595230775129687341759168990702578966635263656178500720110235856827214413791241621181531961085956496228919212786696803495300467342779712274234566702382442010391997893623007074963523088271929079727325612933725353151767723177418385703148609934565240258813403562130889307338759024373542860625657537153417849786803828372790067094128310979124392379184109589370368392396099847788121704929599629195917689991547670214963837700028001746692440001735147364029935932160453921481795720373677123206239483821793953722700684875775934649901550064712744268064510609286772750471377559733866008333132271503433137405057274277751309108879370966564323468831157418992799406855299729087164324978221607140459174269589239550702768413226404253717856500851517014754948301103857706216303343421451107391651535841187131417771089088116186806510479875802881669008195551958419483825228078575310574066562986684548674282545373307869447177370581567767748415975109143067994386087692138952759637920675413225979542285470206465889253539825531159496628040353910970398828443527938726692047680033710059204276545881799199547730267832313039911242877566857015610605618186241519227220592366958991225637991422732936407215501286387634242905668085658514010383046716307544201906197650162584319759648932512725807869996536768700302858534588703171694451119864126009454962299017578099614308510024268229155240350049788390312387709022607479072985920882912801704083997407736677914621014548917450344736065050728430188713667390983721227009234032135963199530398660311082089141236733994588154128385250863794485093011076295408873287401784045020339451290774517987809219832104014886591309073773916184506957857018690041168413798610792944399468274045402935845971463075727800489651807286572118617831411032814040565547971134007038517102957462176576793328220244634391856501539908089610934688870692478381709977044002485731169727937943345884885019548390015025058629823509209026653280550669195468918910963012302941378922609748628929547937709104822606511769355741526316688022647331451288528277423808130659392935030664450209216604023335569317235357161265302480375572020256041773065265729817970496020150493320866352811913131200135583908289227753728920852005429093639203936856365873791046271693231742551556534437747932160037381804487469875227699191909411768109935755139816646107628476610389591408385289215989711608879573607138935521685640475516433299796801411710446540448118172968856901309475659040082897842745457930150430318478355236777467041879997201297857402579194845274542655197035125407119102933776836350734931138763759410137160512239069375253824346120979356284755471086285212471770618396062344812446617151729487362610647025672742546773663365089490078203490383684791488898169646347601923486437991314342727193008352820510040552712830660496342431165536276533783337732301025727987927015329152111612707610531110730774167168535783126786153370839972616545978308907369320484843714506391167240559485051035035762763955424692444045972357227227979551008518285197802379042573877177960546149673541558713058818942999710805106140474554610156851303044504870897262502982394871928951493587158807402486439641455413640991777310040507771409647132100765610979001336405605443891865158433302566448908823013343896794080839176194290412189783246713601737533394624043496421579222821078901292410588906797144608276930964447735274521504067583767909269854585196470868954528542621591957406352374454391996443257060405167864173781037944492055902330404766124075660295698660150841285089617252964953706291494771654971940580246908576546698942735814891932512947496173425326117734501004096352625257744138756790060822741600624880759915756976488131286872254276029817245217818402610923091775101233175916087005868662651975600549813190906841071753133917331558387367022860074801255608360220400292904492339591039916215148709019010886567861603109287862775866234612940796493312063679561954575524769578031392563964960481361934355355643192555591597921789515141651874581879327276992756832910325567065029233962851276890922628418357261061195530695367290061955757872707554967227802382726801885398837306008531107842031547869335982104817595582140827745700008907045453105617033130303378049276548565013364277920783973854873079073950166523949190179082531654846031790208292363625976748721387739614599780311663269998320806753308060770306557970728994597020564456518124824515425805359041381955806851739355603371208792716177766329909853351705057227670744939614974952370456550573140183845766151535591994512222246998646756089416955475025366865431631582768769907677704016817016245470064991934521746077448717612921993792931140250367590821104863360626853247235542086348614067213215742737426081809547700946791196664680512698869142533317980388649261231815225105894499887583334315267783305419209235696061310156613721138020063228610978617392821538877465164168798874613734105056404298014294860252289449031195929056595929282840440858251333560565809042700532374571370768197915374262143132592998971146737385754921325356890155459168832676245586678473573654363425642484223965128943466906195709337893418416552532789724526518322977375675047944736483106554260276243731641628171381051616860745582927752539609938695138756462155777967684368644945158647515459634983010862650366561749759150336220873302956415511821133527594949238666182482937704691640615332220655321995654389320927296378513740427940218391778212170658406526745189357220347687389876061366908844421133396475930848487832873991222429794145315387913251822028255742835832814771687423512603779753052929173547117921650985273908313350492463623420637988016282202945061253528978628675811084253283393940426731727934693394279857591021924122213341206832572337449997902201369271563530925932958220320373441791480731827681665668306201048150083032793018137303469282647370212104517233605340439164706645114864947842436383038931008495732965651235823894365729145458543570036158471397197750213522215747628956834837117953191798090302020196798461232476204493265345203801001868018810560942754634207884649427270155600277511122386754602809013856208567588156995275124103938321402144186089974306128871089052570560581835294274136541398223162828403867321546548266029298756288498780017766267375996174142955224237346066879852569201470519461081617948311346524536040876684062835249364498136304580764359210025967003847097912182386428134579196407678718176009327970785165275788776082699157642487327157013687168383327959221613558370063335997784616008336467381098228395561562911074852692062613645622679309354306171454236328683929349976921118276422219395401789120961682654833185861154826830002427714576742718681834175989133315145728181718921117769961498949898668521236221184058722962185115079417069386963264764480771074459891212465481857203723679616680132063515763721490554382079092936486641266165141575184123479982046908407889081026625159571639603868370912594642363755776172060614640381268820102885170914451870033033245126552601409126841295409927990595482988761038782138740728208786471244698907525977109968225071165122105256265832469656082518728768169238754228056903724147249988960515364634002474426660575226737375142110999384913198021810215399641229908346729288568788633734214520219286458707706256940327227346349773625777871226454949524052672679813100777512746567208353378287814278837471534680763302863828494437352711554884905461151549356725919064222361746148593145526583116068362502432768383416535213013405679996031767077527623569230816579357126085837248135749043989112181569663636697392697428183556081335213194158408074580802787687117289227330816073349496120829052316521661637325197740963832532620408561227497780527900519394126844666009539610874290711040499619851552792766663512694410100213460145160219307201299194405024184776621392082250176143469110927040404300397664767856259030758500020714364206225314430074505926126073983267812227754704627953310785987947557393438614541227709236058302563718336974958773158512439959652329980119430833181247757363449176554993730474876324935417001928024083413243473003135903211278057365444083074894652324705802708972531040823717017993898197871161959893172690703581908371440353788228749858048944213511431993190100950501197047473276045775279492849620440537138691811891881298517625565908399367292875816504078949221530351533707362715838572451775502013158950693479777369386451572292562600978300835530479918209893318352411139221891244742468310391046690535245003746558248875604841812406467695917942028884095246495260275363386679617655353365345070279607225017125012756550687789191217293903938715001816896459838095862816471243329382062616403668770133422383756883098096137605968952899225857404514069451452343622618428841474461120654216474302306960892142679878119672964093196974393991078123195979297181939949772984979305998634685209039079064430732501725572937420990942344854065857464114965943716517823137572961977272482722904060982533495094672047794115977705836106065287051848626830561750216242577331136472855673638996842885610348363040377656162344292871615091065412055691358501068135629925182430698894590711225646025720917185935755303602311550647209907646720754665098987295061422297420881964750684668477186415413547965789844657568361297996792385560961992050309826262142565911302263793234693399212007486712735459212620401800642402388269448075689648055576532996056894293399466340644676358628666008256324598858103062283984686207907542247778244505769747692810188366995309528668573072278293476655009057829562993471572301682311372615708795770683242401650363562819028693602377915236804046581625563992355340749695777618734657083619327341323097931649101672464957167935915085446708467490722577886878777832788977992976229022922957345707160487034336325282148276732477127130951629969111620400599179847809245995224689264779339889192899238865720410120796344493947572954328995399333046629724784563051955075093865198898456168434072359239922556870580802700741986529573858088521235639389466538032778131954072162098055571744524782874863016994101161131114311580297371752156935686265640412856200630086867390176280878319754137077829814749858903201009740188842950763721736301844306799669433588400653746448367200223334969393763245465001068911629020501597593889167826584699700148819079163422193778326666906354222393720136724936050967953449497257758526751567517099435354975978659295673651080281647164198120519237875061633940097318182992774193105997337831117922290162374926777109896384442385416958605982601819498457910435611541880424316363107527319554864966520129322581871876662451577689163041330017578039677697398756670998185391036430418703462082826923117236773396451955775914197778889225762353311761303580373607475148400327124127300617780075916588935868263611306262236957982300130309817260810309730354220284394048866241135669925258167602552118328009462504029237823982221678602893565972861460972392015293487396283712941830368864016090252957688677476993125582339575031355987997877000586687919095018896631295082009543002747477071948419440553301013437470937739035337901258444634956315011195722193232735261416738984763309716613512121701602766491583506690356660404050355638579185114523404905370961325295037404793059682706386097899799724282584805216468245465922124981895607720338978859806174580075316339742020753363424074101257718355640795806971957452612283918320123639657232423974126589875814374746092592417569276630148846721351709372996652866035999556564028606809775047414622678644073589151470470655648634807501510803363558331439684730531344787631464780345677614742434399259964619110072964619380004794945225168374465196454430889601238920676954488576996228392199090457178251254415748646821638836903469070972947611052506756732827793711280238851228928625246477872776817853788044239743004389071952897339883909047557102780026990135433739174754643228865921543509768957395370622874501961016145893600483272886130558025627625129561850720601110580374114734966915496067060855113904587467090912847788855526794551259987366091020145992755765194131357464125735245248708034506654809218542579881056649029097729421015035974245101987418492337183396168437390622271436891097016255835672201391042131927171360435409196761953071926512929517907907828456533559265070235688221458720601758403506886120922503358007504156583335324974901709576880376273215980729121353211861936266031260360986324307519600562870955475300225125113123096208985036610632607712259008646970313502994038674202813469617101830007760908580244005345401160447890487982655462638177566975105132789356580845221326246409241938414128174967109906821563961920644987530659508387024592893483264807433013195164064015905255301347519856492041605070392896431029104390875222480505930615054551069357797398700562550663578450685872602871252892692739048361360753024199580708322780501555042752225024397016097569409328428430173523908723767916451366640434733300154213157807717442708984142582878075650476630740713304693669528204751947549540469261858622104584599901325486172242559266179082692603578602293363533178947551665418496568722035821659543022301348251658275498035432877128940512356719553200571780792417262849719823779418742118600434596778247270268478166216744827083912880449307497205510226770435147264868591418447602327547523972074154107657194661434919273823159459859542550698040272192658930502296915020417387332120181601954315841328597686531589098992542463282175916585368077198463871006698125586832731544775153606587081983384997507441450259271629170881379413615846629631981679482397937077996497995242655497166534484333191898165974532547707235505602502620953020164080203297676335261796929849863118324043183427914539394568873558232335144850907149062608532391337497043986247459395968259047325463087778224801607406514063475095367048406706343134447061492209150516856525630955124669675804242543790288664478412505410520891405701609372938393918261156512034446242150221930450087331066669024836984231716865441230728768935737244977039356676213393149710063523819397205692081895814493136961260203219845619605685978903551979275143936300613282298634004372586477435262559695753679247867965333646320089100831241751101732723356863534363747235090463482548864299861501071143815943910832872667284091808853933233058098476063245955872489603225196364123144472615349708880660642844787976751758648846176950158041181620540851187206462429262380265082345320228093035222173275693992046263975379399848784568601788744913612460012957306235380041711568236659924382704012238979244506053223983260155759293892860154901534009573096591144415034384354582087603841744975771248427134555532411911898768504464994298442154671402249610272769757529846741060178291589124488892755296025776817169027825869502507579967953008973023111151060671337948271478767695996845993977595994259544016922137370773101257989628267345813702383895053514996247531969809406347390490233786588488522340974688622461205856615879867999451369077268370284114573369545075820760875258833501504162069085973474848992444380022434558117371224170705700046822376022879002911594057729497499210809742283435699212711445537424073912688149818753596310096241399820619994525729789728046950390212142178091517775804893331766466090889990920925102197286279134811122973770462322649524665807243420042550608476648793265967434279381052427853459224163969813648858399138154269927059489727296747000621099793592537779208763591355430508688637482956419852225702163387210228434034796451061673176581822930802358443528767817190821202224484005524389137987006452919862404571473040500590243665934588870713463480778751702755270731619917186432274805025546055200872120516853872081618042000861988279962464115716023601289877166893695011797480060848286627075156821167247078210177317309132211762805701075757439592857078334339504616374578748119189348904720024580079815667278431541440831821081635760469021485514935757153537466343399319276063768479331552570427439454209757770215785030966946976927046201203669172171805082352838204774603976262399822259222248240051758500543658433921978659043753909823526827676844372152605541079934089029902388613555373128092271475677998242764555694308480992837078891626506526021555474521724642946022127265626558224563149095552303592812367151381276722435536916506549531375785495529193498731932426132369271131471685891540689991687855639739807213938689419725131059578527617925081902038487546978160836473872671362945486131804227091669621462186793833812985603269312558492477567696168166017694794711327249568364142403018950203252289491430012829806913538830937917667510486288409141183291740782416857338412593695312134906382086250755085991606528656376264369279538774840372769705448273073197530778760244013291379309143384215141634621920147354559212656055590568792319005390861639177539728730243958009327396218760689287402176011142947600199975505247096002145383510023438201903941450947812365641445766225089512355054945088780458787262921363303711117454600207861306570097847299785302403057786270151806747677578863438208353669274511139482824967655295996916034650625634991488265082426915506661365575206025346139394227352570354104994803106829925693159570130019395328598256368613951234087397758354937728681613868705082599724176583701428568892383011079862071533955895329135988304041471120122467990509007576021102231995107118016384601366611556569663822357303756736787610035050848214758003154342021118473707028433277289924117708895601483492893402572383732744092048782544214628333821737976859522756054364773944673515948251647476566316028582835684575523429724098055530678586304165137696850902423131960341449537704980860541738603477769145803293629709278977999929323480224641996364487742051143268632208809911037747577213229269241539486524836783149620450233891639865138364845982948582513423218082919508815209908254317389230312260907555880229159582378862785595080675066827298774972508091683910539493812844311291540890918849506972825287295539124106126256787240201725177808851246853657645392895373614418908108058508183495679464419370226567353798890927610463171546228632841181767013965690428124862284123809421367887330465440961924785046802166628560904937003993159202327364575035812901097513365471751469622690078520164249489618665477590106922076182912031501687867820563221220936052591010738640763377129919427443582879317720895554573741982613585765325049989373273047192693165386332797468286771755031458303795719494238092588761471501540729994270197652549189979401417223089286046426272483283065628011676863335687233353453881628025167574663002767819925694510522402263989139168589973268073994704959073859793295017935879988492600416464476439747831626505460997600704347496626078448375754837112258067744659009938996942955068666432619665146494881253025573331061563284137047110479669254898202395031610444293282069120517344004312001914687583825755700263522808350387166140972109345663294609802910889978418065539736410880679204796994677374524903403335976120583458286056367711173360289170958732733043834592464285245793119638359851374512981990298999071434214776014856781816548408273161397370385203092913866592634295133728516556380870184238271035280919802234293549822581951593497215973507122105054594607001284515546094555644333455066462875043131046501831261144258915579267357453084266157942912506025543041672664393555112580189888366396778728390178858866234291519505082702505283516191059294269568380039592373150732564655832032415884378449405770162104420421020415175617616405031249118974863667442062010724330561885440865645966785828413857009607690416181741035652820098252717486908807791850078057849644295091519383379798874695140088555048260535229459053999563659285658797773794021441379716937968705480182056761490125834348300201863981573292295974524299265358929056347149311079921512030375937856646761815809820499847190880508498762136784066092082042429476099931279833864423804825450162488238458258768341788691465581403227654744457477753638537591988998983571491167451204707899184047108336751929742396483996296068891844454125637331861422548585838083789759350293202225155485103222848555096515167752120286904689118739981286685044167196758088233962451864624485534612281165079865029807584034102208721623330746272189529825303175815319089845266096023388276593261245647865044622648988659163280864150834908178081707322237808635626707035954201493027110273104224200154145020113990816524869917829642849606627613116121877153151817798350082251603026341057926589655128383931002248613196175447877031284774835171574116313760462917721690946032695847832859771011369853788938737907667752596039619254717657049687243621940610600478070098951682237946199790078246026955618786889046736714195479547166955963892286875012231051867706919435076228682156564299179140585160319085119956270166317007772653612300941014879240410903355663604767218129170286115367576846441304723546573128346735436953090619699294932399784873610214295362510613440573368684023388496125267262288970903436765372160582836189428658963944149501201559193641483366748610875759170487650349617004782151602786318952075327753808176486185606272590074127273053362080854044765274783227742407746544724215369235514983462802765575357297298375557536869315574605637960241421334565721779765305019183100705959156930305385410642677863006464934872599982974381395305151504465716586580301635247842158322156417844208200952555017955854048076198478009618637359483328553565507140044171832067651078908094561246975695150770710031995470378101545824231955590037399764771514519621594563305470852332222033442127389562163516081756917043642689663091259190768700127723128965440769808024228724898921059918967584675490458125214428126572325861696953090626083361930812254860687179678520261428894662622534871144118141797460054404462899874311496637536573962566896046710040446569651628997032929932742594123426420759940543542916426304354916836135012012543092002843010273123286207452441480066886751401382324264287105914353788955585597949076269979299453869207467527872213969024682521371667697716556297624367408630655479262826040218059489693389780017359654445497590886913385315247863811501511789643673320090149881289823313287183291885237727579475282247681889230946523793328999569647297396551411070976160825141508405921404542702879045303132815075120641586781455997704175427471927332900321892949261865042941381764095491656080318839024035233710589230125520937862097084421828077034612594239837887526982466233969960468224668407465256650269455331500155749700547806490240800600780418317830584116135922441440313761232076835043330839434841231959011233859336758934440793610928640021329911078653417452390613138767133615127032342231414301656232110995495666719165033285943174128478732430034753562204996572923330554413845420789851112442700154847443526472018234675482290722635393322033613009296515575150453311380477182144457839171264080194261367854028482851943616316216534594653070451594988329826608683792777561901390180038965798748938187044180227994752824671738671625390583045617961732748530795483799213301477676827432945131795731431288644111101968740438371292038200404462798148505324972087638627141107108828457400801007590904962999569034597178750836218113925195675685145986157846043747519603659115539280534785847190925070526786156017729425145484409044390346680691402468152795984128398605500265129707054168768564786515604170837412945863687515586510092839363378259012857088588552074553113276628661645187085684160085103446854477842649451643064843404874408803881090247315221197775205910288568865797177389077339472617459374734291818011442739613351569382262672100313173983150828047364776165844192350461396514689735802646122314210099449785756459280539285241217315523671592940969205954581294713006245836465583663582158988246617258044179538048316173749999886559005390039617466661610570115654699322388040611921370857401559499051514731000309547774811544662020821978862309362342523007342885581948203275801838172215932381225382896680450562245433222695417223370873537327985465246968392519602581607435513030180318120265381685386833656301668668556837120637907293615858598799027295215195926643292124183183198107076472088332459783672705479871669796089040514484902939960779588596746477323967546700570500931629133359581023452999342858519620035839419958426154920454794055395545906510686775258591518473803104708201494847599154015365791494864666040786438557912343137468820871384857994017964804646266910162188154308030430401485211221089682421699580231872920606558451153868087555293147385378867297514256867006740923308072648281776172745553720334283824823592406416092773619199387333174428619308685929092447025550193888179041270408434440883997839620648482045786802082384820364779294140819342480978611245600131954499354519657878147155502896114666738498162528518621826351611175425352340861183615859424541048528828103608452954997641395647393083821864560546468652870776846856371176345868556181507695733907273535930006242595221001450754711069291065306125615661557149469164902027509054488295246079625753163918984772971789163343571379038294058309193271990864572355133332871579343304244345114933495763212097565569759294188052422671411795061486150383793725053103347093487434228800442178826211359875686054358774071069713795784445665510938170340511498771688927831800973889044748807657449266898124811098048329271241071422399156127432129506709454439220560248311093876931656040161179231679238759046531221592986453515142330606962919664721720463845788294866387200275627155666149146157047846687365827583915492849649616011221318361783266638293666864605173101730047245416674762322331772027134638600578565546209025633064592466012109439039200687293209269253241136920348688685078136418298486769547585720219146687191017584577787288676909672673330764734880492127994859348084808847983303237650392859454971759888487386755334382553937937824294898779968739789243965168089773977661968861399309793428993489759139314489951430553107306271589167858646299603109439750047912643342216653740603796053908684977691416600435235830460734800166452837276416370909095865652957687710105763228620985942080584256927946344734749907573174583511175550644089202341039963724879975222722801055023663739348164951382516570330598947767994027117882303620646566310776933235917552097457860231560755590485804613624023550625382809682686084855503302395602891011552367071180881958892868356888389573201274903267609520954121762310142188232655117926357310379650321906839267139334930394946891475578540307575613920995074287439695943991189765069149587185982617545658079791599606517085404876341180017288909753538391234468219517509780133905525077223660910996394520599064346673295644776941825563598198039915620810771770775314536379287736833015878327380217593919883232482947050064410570838397351022174472638117011424179561289070681390315118709601332228243291666041485699801984688553184089432062276519592156979784542964489701793297360420931700747532655076644762224998538856009771199170864631631426691582999420298218969665279001506535243282889638998103372989506706683036530199677728396287236976473805547119131495118819912460295412658220437324989517961902064495320725945243916251714816001448031796556355910969312163808196918790925912438617425894844328060705244839239644678045990154385649764919475626381641645292263774163361641836297503635198819569059779991287136230430796482973691735223384526170980131877547502488863947993708340907150916842360212443263417400454998410280130088083604148249918551734812117255883203748300945589011992566042605014905607826459693031224643402847462916987837669789605886661395477150129452747429856141307478735425545780876567441330873216025483289786798884715161968489410079518564818415713679242473322380081091617941005676318384212622254196925196560142594514198339407268875157302072355493355542844540725819806610834531839476433214105387347866581050045492445940242794769819593147241430916658174207032363577451100173600906030434702570884776883445831582026349639643014020584191161147873607213890064013171462175535939036122585414451050728637575059997752052437180538413245910678763876600939461061860461379484763489172424632086056239906200047717630931405076148194528976244051158830385171119796752309192652775292636507897834189389328246432528405251195840150607036245029741310839403434967018987840870010931239256481413671874371388734431691613270342895168864055599748309485465155920348896673154801827642743042932477744662668834155634363752760664431341791410399670414305233124029488011402846287639230178620252792522200497687391175478467023185539377987226705026681094677915011612531229120544657665874967295961550725151693835300286511538840763837466013914692831355715712821517983453065451468931600412562034019371885137655099053088232970261038499767181810279908261127234276846399437080551872283911076493669918220823360865482376695611050605778633109757246333846317332606309909517555698270999072829135702824466581240742935244792688466788427008393233031538342471711491522131292022313641578440389174598701092362182912420509674618024018437081526454770385555859833498631618112942144294853799426327472728639565194713561606536910660597427872825973681190153607434289370165079284603580615925174231798707489794137775177844412191068600864924499646092640035634520839340927976687786321851058167708285251673525517593910298229871832282843852172803583361087645333902265355514980843924142574806896150419097980802775766594037276056935197701762337141050209032059237503025952656139684055058556152066509818945117097873312038494216477439810362758468072502135151045428940767081660047157400057308611742986078502561827545727174770962207598142072597998548586566760794587619240287148214541877944338835265418236706626036859686788181356098912373243606209464009354603212002210068661883554604120794614181619464285729870424649214186665110616162402055469296464921890855747245016607282019555313129499696776987264453929419510087725143836580553083516245950287887725235371427553840688587535037930820450754991803908986311940214639650523396435832070560917556894446079398504775658934262122437605517905598882989594538631357668426390871397800547980720594417626295072500247017689080181523042955377382865510154476122742648144209493733784162158466679183922749624166762693669635811981675440051501562505907399326785923595717303263949319992936967997443475571888709424650921449736062872990495462749966944750169203434197776428965532598732274435257631503434558523003682808323182413637143613762052316564312585534573908130486093976223049194348459023492806603787445468723704828834458550982025324386245936877687878907556217807318914807016884438954110255250865998341737207171471558820979816796077146357540213044830070544590821922317332153510616743723820651193467407395221259913387826795035045234809770421272516351909941596724122795814076818767441296062189648901587486601322881619556780392230635141622501656003354732838784385140361405635136422693793969930990212861492892033070397885782204884390880460988195552617068602994887632167643354456785925229732537092005934684520550282077745317133036313648768050418124881164535669196149579271485026760218021534293321772577883233181626019724346448649892272311271801073950799742031715390146131980663883747063201760325968276765187613202990628835711915347384591489432882483151864495776440799196829538287466318226182439091590898173885669368195363380431111443908114577299121832391387060901367686916140080957921411595660627773517049014335867346582526030431611151315054054467809802829244121485060516649928192067519712711094561646612365809142555911642430067987421476246852212054939834710866546252061763619077640695373081058903170681074135952810874702122961298341137002768137577327716380420135143723467225018427320736747564617380682312670327329700468597474968425418828493574313243709441028513182035003465512217085808846516083890230190156931239155586365357028225456766409309243098630399666886725301910525179992321883801150615086051189116586549626379980868623151030722117439630442277055270043904441630412524613753468960103808849547912279721323405275149859376960548434209821647278627559848044057805476059949486201185941512468874855087985754201123695480000526743450385344474490682614653368832746834099259440508189571653697613850691406648103307288953388982782281781400682187521585589032432971307846259324357547313904304575045175996878494757962725001314099206311398811421654941406478499840923884944829501483614702726509179917303423060832142155097142841494262861114415541776575519722423298179135982630166470520894245044351212657428383878192145943914419549658670959810030303418785201374439171198680578027899537760283746286113775023504134221426779360173100369830672614882656286467977761535144915167036880932714155720105681548367614644892306527400562209076026800458485484778890729354527445541595165049316143953231363989299459117642565274543189071195345405908405410598918951689858725137855033504433539342456686194239773265398274556319473359766490792429244960204261853469626001869213315090252245338935850630875132284964545574665336823506604185412692727195730154556697433819302799717888824276143471942981494623188786704291331824923419494341496688183227985985962434348401684660177751711949143317739168074019579382047456809822729439961779473027748560242487258627690580859558640060203658630207292538574680684078562249489971037966441668271457544276357531061735774618268873017803310065736585337072681153157828787408472681779644048855279559094197382229448689621361655910758823553718972326812914448710201386602217241233461790062156227245936836096880837977995567770725108930824845855494806089141538723754108654379039116586099267752483117556206337407962473512092621851494520031436098072883185113463693087174741286248516085383597215407526067687986583982375606855670624156866034568959795174418620343902392117490215701411584029890846581945651111820739849792515150092864322597187952721204049428005666673385120588955070017916089541390723525919641241903394283531375282210283330511081694290644585965708424182755681103781795822060503967476082232995503756308449420468247755844313580916379905521331568216810052953551857082244968843640676517102209005098555495682656416943355413445775451891842144805310340321706708874689221798781312027165768600595804498867509487170558290410661047658312911602060279705233766410552398936453293548109397266216333141100928307999935403963683189399158633873670507319827730689942459637831016820954816265898087206246037922748756020512434789440573889217205727662954221545045105742599622572485516918788218972254810515784664008945637569795639598954080968538701586937949566699167271099774693494546792159838727658422301466978854566740702824010143054712207109664787536448829681877434946698108225724251128686011146709639485564611082900415363620196077273248913222863990250164556977118935770053683649201673536966082692542602180042102483655036924582755711124726920910974742669800380713576827001378789538466698958957670278081770475038643150450430514445125335998467392099749787662481477895085587869507937785118685612797965935345333051915034381050553374904720931313803135702216258128717184315074543350797982172390924833535565748362506827198602406717896144147213568312085977814803642772009164452890058258159886947960602420171130207307084278532753303601533273727526794077279742582173584615430209109780944296733009145810553013220289549831313024611038791856276866452483155348401666524341296966718411185198399622371948260138782377604235827375424731696908722500128054874070867559175833657905282475633503876279328231817694179178120966383621291813982964628935171581965740024523227842553881891015378354179129687583319548337319076175697140833618760234797489435057950044320127389667257479458931876450241203715679621746286971922816676166008492800272843546126875782273070126966802221747482175920832023284322767876525125179182216813979170918813363087363375444673730847192254552104209069775001034975623992034830852405672086155453777597705980265481659261115523696666453445079671663093990052137219942577171223236662281287431527391316910537316505664637037199745201937483251536117261950542127760553068703221154117581202126253670791806643515436926733381311265011975092200571422562208100552409544551085009512653886388483403688362431153111469515195441267875097320733532954057774462708980532750435951840865208008608229025111456708415307968073251387325894265165137603119955115087647825075644605798269692117063423365290720684584673689778754912753779200002921564713975613078963754555806256835072271663663651112525039763222980908889966879629893636528165880289186135500700297750734273645028931018561458769631022819435863130626611888117119211824571389895146016952101582003784843498733237148499253612691004290808979993234205639450271649154972329692810921464445863758499902934115877804458568886952947983006870732363535199259086987337027808314000401492699139311343178162057056118893390339189067457094317112858355983040202211013238097145461762874671914115040707854691055364167285024187802671372025379503962414929507846401300322239073724265994249254334248093059584456853929950543411082757940021972302127511797948721592951014303875527805019053013143335189426268322510723230474527424535681961702408527661464632674687624814138890398043172715704303719668854221692300463637445824484459426694388848643852875048378428055966172860531639357481044819659191509580417784109394137157618683210331766959270519629670854468506492844070381083437009969436584445516631083216522724003717101875872997590704523186776325618789593391411936621285932561343095497050008805619892712223159734154190457702203471589042882426218335240517912068340770205571859977743333249306506377142901206506343097396816564165620074354769420557722953786464567840350320840009579807922637157680721545586482721989003831755025904866251628050313519052672516505033023343098203021774995598914831770979155449074538276158223419172064965857899172134945229142520204886582065653356664643300872451617539458256609830959292759539988404378021838722735337693743171534167732108383617349938144941634295806948606845663223668901392017765170215958345931131521957212485315731441818288162678457757684873513812623934648179493446984777749936342632229900850792845763889199178156157305620807517437639382860951514092874348833257430909884370114920004551371242900074381912085689429536013510459551688935020274034844061847862033783189348312707055199596192899862954285421138095927125259940620622642323432956601434552581701311875919816211456408736076295024241162977560115907899811100122230803881514615233536068340697484339282220219449850264110506842654541824905035011382038183616611031289050219474563657156689806153362351820160630853423482457089009624921159005239065732470974807803582400057235537766362832785690739781674479389632115954394671556270486505646816638804640004885764913507232033514606274082836363744486464699503132340206570685211804405429057776854615181640305166603083971709113919215220530968301507350309325413817713241476932986117846876158890467194472587276676643561965272241072452283548219793767482579997664925491296388370752715306720097773784828572461109201169673857429473994223001741802509438854059716525347785382770270162729918014143516518079570730079714946376876284072888027183302867342797237311250493353589262347403018708186193500561956813777776582744313928491365143252728255956415711464102542403544792168272455254687755636747914149425863361115039529233056723819086231516513984537158338441414544794383814799660197016143273950114198129398403019505045876747912271398014203666955495600351744334800452589724232293851019015747283129371547840587552734468591961386254927673357691957591826004732036093376547181101078300515647041404278178460366069919190578715578756444037717369785921196154655665901103589236262592001408890598470955694891089416261226576573117247318953115938066017239740573171283748968213072248040636051955796611424754743499918110801887489346559155235678166740202146769763072293853328218288857060483124189178962708358945178009848604665548670611784646497799509753281682831056043220522425835692390526001578423208603277964975832031939135866089537366750069068777635420754514253637739735823281964842041578835810217813542316521480523208875904276702982496768428677668453457824435051016722508183868826174529206218653779143096012281236321712336080205521985445191120785735476733834842460571835533641539254012392972800721772751399244996387622116697860062152030634328518581403857283304526375427449165726358809685674915705840295964100528323994215740691321263119311266208011320550428974500598436643893686470727632143798153530830858902530751339146709444907591984686125087777538516456573700151558756733788984162543840850079814878304495297584794905701287632590328853123460058417869069025161119007880202423066758811725604865033923472846551794457631498426480750126997988941020022631823493928749164622745568357131588885739287677053817578403526264371752782173172318411051445178815295878551915072661433198210480971529439148568698608336094208395143831242794610191744956621379411641869650178155261775167684361204780341049656029307639649949045652106877043560135561438343869553300751576588771800504295517023859004167009778325438159011036622656050559159634533962053971151964086676093889039838361528323138806115768840388216017299670678041069602760233665221490136751726835531015437466172208228956948105139282899816298192559587789433198494557302697911568268717854982512871400037568258365214204943295067331480528199220819214422014013376748329549020722338775972034032994941007385327501924816360110208305720540655134399605824911922458418250213683118994246492550608087903675178020021197353643398116134747659237475046409967775827378373104315586329037539256812662420609137624398669835589022438814747047115213335918443822312670093345890429877994452592658643285225768855233427991015948181756265387994756448337534480350736030201984573504708915079738880010227454020704816534201127322466894616037727541293749833883004296459224540915308620430312238958263142334067598270111640948940890342360205271876253699726282729821937957838782632448587897999134801666292969391203794557576313812274378270825188167309415674747575009390754974555820611112437077750054137577347021515442966561509956228749993659110931983165830774780807971843969216497231440260655862182253163290799262883784327531449811732286829984831373714935477631129118023937603093409757814797601804658618378120538662407735294585453176243460370938439364083912435776385447120939345546598135215847255221563546800139241390164676938783034258771522597541236888436335440281630949250286607549580633880377524961586304428664656708418239696613637698526460750305566140536065930991015955887324655293258309951638461796921329400104067470973013000668671722590839243367423669262915412138571336942227767979812760205688956128595226207133836994890839901310847825444135665182821861473778803299902759840141238174003478405307540861596366807030240529967019553294103818189638388070983227888073448154798075611466339042734978662414664180666917895899097677835150034151890740425217091561987274829945873721554841569964427061623755860432021763724620511445093964178489648485097643235753968706336954797428192566034201447221344070376198931099739774821449723175207906980870300324341715953158381318726538147558945641958398244425903859294476182619177072097572681332878722786048738718074734188235363061582874018703839849138140901896475808071781073961681956292790058964830865878073935434390413451076503101497423001607297657608764958234075580023861347012084273105188889552750557476372298502009480587775388688457185924870367641702880561838720020090193345703549094652051460221983366270394665013965517460130746668504329663931664484169014318394267696865913252286060592666906043866408767190869739777844046104547943872320235182282501960312169931707390255661136463802353587498132696863027828844266035877388276726408909128730218090918258651537789075664749314237020509064461606376908099366998547437246974035218670360158243196596267901015240948493534687431575923417789630456778130421718045751689997322353439854494858064464530771874205019352025283953637407690322076941226144222369845647912648395604781761607810236618106807149659360757651233014931873955324274794824981266480631669062880178748468800761804757863988605382962163682205999947980450161454997423937760334400025885566605568876689430426361238319527017048229802565881802635667156245791877939627219646495798162492208944584132051017956287154806380544623619523549662866497120198642394094245122836084892865034012220762530460339061344346626897272279509569147719873883044183172242962391258462984856389066201050290491738162173004683502035361272296265840637362007875692913958325382056840394578126326692477494051468717514728551505143004761500826072593385411816289919305126317095305037081083726583157465460222466562501388659170049982912265531062490539481165211151031516619893723566967132485704612041834651375173681713928873503000905424773367867918900807838842749803737101215531870709252122681522446106491810764175390351486565129307870611542726327910971044218201848725821409944967296289000822212990474173173811285540430741164627046027337396947871749420911744464565396670794387579922066486759368194206312627185323145553293441029196003845292912824821493413374564353571796432864470831731528309768303954620774900556076341939045945563302272275163795393782247469144748012811296938596534598313836121312184205739422943234600104105052891993390877106749561537759645829503364063779561253721515991307842021882337322776408186340812864707869339767065497753590683522898430008252804738705687836050377359166404666805272042101144544838893400211332837463084752361106811877783966058589894264793159920628428199862079136073121795849323003029492795986659866655948713114314303457499902122232700100284470226501155218907999524726542576355998794305304574460102088911122214186396662639310869421326572435589813515012459604875447138330078357068819412003949545486133688903804614443051021359328034002913196025493467032022731893708709503653008830218326660841212326184329105519655851641867243017357512933008563972997543665445402305902500117992980651110507816884683496678670246761595772234126853539755643457414789782584234136499626365266661568915945101521898222399506721415823425990972508808806930796759715072092718575308748612528990746657658830995894895251466750920379315361930271952477013262060649657811338737515380805289643139192172711805728699048845732704566917406192706791685000949285688865532999948843935057763444059658050326222605026215904716617197420231000646870374967363606074756955644246573918086773241763058159108466581116710049464229437014116431563584213021297986520413827173633975803192066891917870536512282656722868960460921941173250619281171371880548421804902638785588822591996780019234296471371756666473834316088926339035252329962250123235130734521959038818941001470670920823660298468425951288908863996095887844792074443515206372167783814964246516960119575116452455831566021018285546062910042426501119666373500064201233607683923895499173190050125960827187594666083885097910515806262897641253571640440216742707929589618646802223315021925545718263828598075614907770400531651598291375356972052247614979538519883350405742778341752534878917934499066832734225844596850039967327178930693253633016699580089242573651686575040214445215160732939608791480350254220577951789745115470952349442684133872669657901176285192348182742518272213814645263443431928160740779680195060126788105201628338243971085902997284684763463275808174194070148024192799488509765270290590234053413474479492781847552880430446054788442736709759876159735000020988251486072399027360357335019767016941302781312102967789408992104104605852652461838148890449211986440608753874060867626035905324412880234444780104633956068968425676033627787468273770969701363949619162984429330328791192599009642791792018246213070251065739304042060595791643595703555383180200722421400822326775706917098947059596399908374987073552293471842626552617780812503314748256733435315275051068406415681569736803730069656481087387517229774928399777772003203911986856666438444801581575793067932784628107918972331682983061036752872338566568174622350938554016575892955507711024806192759950185364906607599946942083664612232354119401720635021780300355218940590599955836650706290147185152985623806452234502494571645882513718424030615652617510200204357670393290478256444337121214526127943174944785940607031633375718336189362731086756158048628480873303672914128467324958448440966305786738048585006486766103051935983959655197061359840358235205683127599138844114707325244972423792139212264663831031943544938123993519131434615201633935917304015680756086377947254405398844927606789606238049571545895682972206357753498599732851012682434083905746059968898965943252293875191702149694248307150613166158103388610719012690551347645390673713683800466880663545922420660485172515827754613097423038225433560634776350531733225274732513807919800877502254380624836460121484319876466882554925014348833181128317509369629527549241260401126057071454861320572357312975363350569039036102502400530481879974704049859260864788797898045955333747292549530695113172908894520012018629481897362584963234213230066958442034586199167462101342601163205747893340008187221456763244954329647571454988356307902754570811326968051505178814944505288782444553251987100555728633400076012130209983550580852003865411784594160541399444990537292404273825080549592718914325228266513900994240685851591160955792710014271614105393611751672581191927256706016486670328800388890986789971179092188117894710368142903615622212867464033076013003421895842332434556427625928527519767007942480466480095664960323590136940514478244944978784292561985703343200229569589353224385780262485492722996092339111210090682805821865931934333395614564111395031304135017416038922404381182146231161183998984862403150073446592648577706046632735159068092346723796905038614793052685524872860838321966547685013798095999384616767351943035370537445257891342827055420113737997456928450087564398378429538492006067640374361562279465197784899664525792661051589653943934803210655814755728145528874312886900240412646352137311637691861105293698893840807881874221218500884901587819197959957053757818096435600968555130836765914495872081135969112525368830948720829419926814434949188803249901151632117146972965003752002776543124134978975651848816617916630002874515773275757303383608612172837967973143188007015254106639797711403433169571538178555203365921488200298561375051545074428676587969568978515026189489012289284319686279543089493132032479091308763317006926076539708273507226600908527220319271667482326711347572463148314086149298008222086943300963897844150865141732532851182272681721034203121584973429785579555629730577018533550440710297204041236625573935446224493461282465173055432477449989808668537333187027648561622836531020876031355600521288286981301624300414834414628144754485684435869376536345362970618177419952625857183510877282352449105709912374821603215212385286183933524955208158964588787688436188427677168985955558687775395298581875977580858280500733269134883457650590307421172671465629847877853090024060522087105340496413259824396178805339720621093749878422222071027196304087633466180904097242116417311033708088472091579939294543571773753685409818909207504802153635641708258765593878515303439330623995361986525716847923527945341754459928630171745973703506201160918095151412386412301497191034299679431720949941163205592411278427488563494524546882776760576205772999537878788646826079916965160139059279982766018252299705245075318314539522993110291393739546956524249042619833776188394874898831358416533786682431094311458524420491037760003724235556691518988393810242931341646542285415345564118195604894786421245677496129900002095271871518879403680391368568225795305364693253470557559170768997694121385871545126803868880354206585750367923834322077333949445638635923681178201882701902089562051828636748403852617051435369686394041871555171732581430543822200938320142712702746013596431759171848207252307153321528323652734374631187276868640767700280424111775168926375253480841572412730026124602394484246277737823639989452070647720746519514456040749791987315138528150037691534099999978805204712562798355061108602015947668529661866354826956794811941965541134947696402765236648909841684794682798901407418069421058019430583786628741131468958826408240789517348343518745533590325286893521823327926027961016536457433540140238368194762129449477812220740450055747687727562607723755464611953641980624735518599598939211295652204285776809505122069792672227666867667150734519395898762820856512072689525134921897396523579167271953737697397761992822226748347950365214752292069341512875815994556846227479157362555844343381382543928552757324767839477551503888442697025568634280604573657673721185389390620811511360202013849670350287575846884143010120072710443399273781592951079234456884430152550707796436316119835425899122840133101092655255867522723684941618001164111273861103134347751689640702399727361379373519678217569984959939735801045062055770535566075419392953919967382138457103262268731706689427319853601236158868204508641820166188590579444321733768563553529815911002348393157990890999489409358791509801378817782415663996971581515785011811206338949062834106807607314339151268130265395726720535686532201747976157759755685833484645594293409088942244989162150923106599611449365351774503240782121395662372729900618167257706202266735564473026975453981939337551205426946223931213172475705015146204681303476616060458000787210747977282067074351207887042783340800300908864061433971684398269414593113737184192303257691016767924670501111091319683101235362729735637568636090186900176974002854002843433450818717399409404711345355111263879580241295457243439567087961934728551267278676172156100241699394050742571268708488240191975586749566161019823192889313738437213558530214569636688664646469610210243827895982351707264562375240409595842957896434611896931757320417136209241715897531241088017009960123994035321498540318751117328365637753561809827015325255562603100823411878129747420891559018857620750789375321834952455494867477953580316934900085756582625241900941769164695725008144543387402352652372995250791906179289902328803399797945716638524168476957362632021363585957537330077205177379930776849759649415062584954232388921091067609479936622304478363802696028687471090039283697594904478737833518556522432529534035153076818008115375364304850195679137260692132297922456613175799327853613857861994833681602461559301593344438635783386101616810672293401631679663567514243513323874704410494102771822182654820921509568639262548239533569530364866154300177799357208774796902855123686252616945498189667353686392159139539823290818455764909048382401717387437911398493114173941223384832832624060123087863751427298875214760197251865624851933622850018972933020281776481816197762059499037815445733348607960173000624566269385770432420192709740094366211240031265112635408356490678994555203081724672192751328144829636028679766389486268392420216088503060107756998915750391458796893024447806738044733530129974454535895442973352066581244765014544886899417283712814658976246623539345563280237730117394168216881129031907476294126487711691248333379248253199458158681111030579185536859069725402306309100803375367351627098983588812760252941861468438770351723484021419467588935819942480326970824622885925223549947428245970991947916970099694767524508387126782344084495152528263511635845649389499384233486764419243107946098332639990947463420243831115689237473960451465007473116447707129960062187475535980675593503448123486156684825553330325224197557464964365696797033903032771390159540380564676497482548658612527999123814972185391939180950901986750909523172428925262994299231767830618578157723380679888079365776153025127054998573342988799687637943153847064501579189544615039948534610129875608977206662681299879530277186847331242505310896413358571951151746819593869327686217818577957557876824506061087511537024174205403101988816555576200385424181588996765983043509248052760874481368837440990654834640622802918401671599978124172480351053483317950345941151027025788379643036308681445854017351574736246359865169242002380598505195271603674604738923731548885995066273668621246525930275656135174675950037556130354145904484564322410146688029758971799927680171152389022677297095243062298224375829834800768869609274022398802833676235455517366954117366801529788139947831861250970074223385906984085774677803781094118749607847944029567563843248873622115406627443304065743174585482636548759781370676852153195973167768048335409192659343468423131065823437774139020234551716596853998802002615004202417180353484363391266181187528752411034333392147726593541958371303393706865103987206052960627193954662318778621746171679262712422898830923780274476642605418392380224576317939304394099709130354149385291665867600796762086157579128156780811204954231313972972115638023869685587965934495379627123239855317294398822027981966543175939421925061726970235532535380777404183907206131675106376342073043813950974771675614177477192520120028903983581776683410601235616166782385311222712392237842094869691384922873395870262873002905144850886192834703056764286767208396921659217503202133704553057833265699317832032943746907388133798232314417856224776681965264610043481217061230806124429150540077383889835772223964977630850040162052302978915486067889974812056147875352855555619148955549615389205973523003010283227096715003203056304686554629521140056662848400617045374273374306500739477333239574447903866675859800379230014190539216709256236510591434199993739485400493407518025352348757726267234311424631790260327038953788207271503940825575934613865169246822004267639933208048563089751873604100461765452289504868390604099868034856518693390715654074730003588183960087970851470583657006706415155817932763334399931168316613837746482136752731044668554853095173195876939622599207266647667395356516756656071335475145826418853713855044774776891650281443620565964536086331068602217401771397390683307520043926241919092634237705386631812729243553984855536661894083146125526691051979221034059491084838399225340640067360579332651195197975122394719489902745422991724238606341667397343322482807025630867158461170943855777186608446917811034558962197451321183130572337645347072784604920479546594394699691600595935480322209218733908063406296184204792997897675547714777868188158993989145940850592124037048875742468601209141762729865796284878918425358331821264930780777369193750137742826303223406299055811863715810876887043594333887515527511448883393633865027232843085504815181270571948000317501096344173771850444392451876819835880999152102538672349786125733790426732674500698274833842784064943890470319772492695387328923624500399378085258470543373176858984901198505858597894365604531933121348401175594559218373283496529122863447674618762672244905394091288566526142152875540840933913366888822653368321170827668099570120241431684088291564796755684078310056576619467438539098973829908581948312896996852034788200380420330605323995389016522046872922640884050106794799303803632849762802120577134208392074106271243580410050212188072709927938311216099935877867406460277684851426236439996346497571911853167667155204391268556702385965216735935306576739793286918245942316839611372791560452995225146447862348612006936886753189950050699890917369855737937981029396331474956772718671823835064125401636269043680198850764247453658238738368147020300614602280953731298236678716826243133558512599913899042319747600537191554817844256720686440409569249263133378140861396297034346491856919599198997883886873440151272445244547973935765993549726381089467112340453299542185141195341814995688555331272351929496350103168705185710792638168169607451944833839937216002206892856868684010276714930942440867562491183657499332681498239404529335950520388814151293791317576523599872902510447194407882734956934396064296270179525955947816073387008433821094320119767896627760589813625084171776452971664642733697961914980691759323687626196218634952248984001444311660699304535421465703856001358961730487377191513918990025788329388764545126754666849604238259195382380959293449336499965724081934494333514135973324726891580382336172468896977505299925413103233366124676818375120580435563183414556502206692009151885788558825240549633264180831712356216127464373727100132503337758485704700588471590299036125222546541305616388628829451164757229963931911127508136074324335398970128480351238581451305494557807685077672633959422874402476989799890784365283581736964918112118127750596278145693564703199571152758853648537316028119384589646963757260594581144061911036798086136503356843291368012455664379004416299581590337789879660249939417965482808458681677844473778523944599913959870924911934611783261273323900053005838638346989051251658001176836900370580113767680872214041902497813879953237205238759592078619358291371423923422379277521153573760577612723490842679063493347049541539216265341483489272823650566193439816636906834826308513019743149691270402058093112669911791483074912339263319414322457665247117437418767778637978030371775571360736526339320400099747942130621263356485700485213201033060954151925776693545917531717707591988635624658035301531116015534391280321718504856228424947475551390342551895654040848727241993984967067774756799422196281693386322954527070675738854835446242758533495036741184912028431156421571195325314766663088405608465948968350050780496929441201811227239074408315766050443709907925210195715824308764231888044109555306560903383324230286498053794485098547607291053209966947949647196446953341325931456903077598369661429912424353948789110629218020429334561219691295274706034944753088224757883701006459316130077690902974543791264071471469245082893156266234450852237634576925334854879461632582968043993051956551319905486016437492964991446369737520627223957072477703158228394680894562877289974922555928524033845781244062052587984014312354336146521407649954588106620731358618705232575366770247031092473246559935255757645440937569347618066148827291400819527225234484028231597145110683172233598159938926369772095159670477807037888942879158930606904641411206503432184280357340200135296347380407892384443490266309409606118707336862995495140268595746218501982593407632669433978034159742978322467871712378610773872471203604730948765898569348876726831119885825811069225963928775154365511280431164440146574298297755457752036595956351643566186922793018171888079864323798225708269361385060327118429431260382597423349976862891216758663049648249959217224869409481268703908148434196517528868569284323255392270247200487194809281849611892754304140758876608978204346150863229276440005057456705953530023328431746067875023765098097634657623744593623095307097959363004291801036497807453492880010839101180971902157350719094280588992259909402763740284926233339848359937281854334904029546605779065552120330776228000317888079951137940788648511520582571679758618229306587333264944320534367531164564831589260524918837245758233953801849999756279871355169604689363982717638395162089094099705752083975041445839990015156030354809992887463235675863181675448691681693005896235033966254200963862973469885790567136520257139005116416034215077252195109582028013316167631725261445193524116579729804286653635188009199997542550812656558111770627159974385226600877871595445048856701723644918631466952421000946694600149515304229415047428206517967717496172728951202513831022988412689570189136874793459360886706185575393642444722974535810737671541470797036777667452246768235090493371942459447006302130527149055857449568758073130654093877800663253405122010152815319005935572182751218957436064807418224384875898076261464020682592253609860011900796474581989573695079869471018774057447673553585774946224638760133264327589450695254712277677681933517293983311951673609002631142528598889682029574994369116551193872664602350074528353605289938131056771636280015757747601766252665261525114881558187180516623804810138734715412075082601641071259149582931096405161407622123054659998948508478953194222268320610048967396839003802544557259551086161896933244503825112240073768159663359913262869907512996211088099805392003241194217023673983667265846428863644331408755638890734768526357416496348232495289793143676871877515632916246723583963168666506027572031807226191578143155917441535056669123539437544424431249458537671989011156165123014928387943530206275335244761617857120113218013719968011162798115980324150431750681714769116568237679803314686111499790445889730371263143682709359502777188204942839910113690784419303359550815545739950678234332209791915000487527135811053447089434099777110512639777497930450499840715240929985610892970819908723915688064464452185269001369737328544368554898986658544011846328084285255956524626286529221976019969486573991503096426126675043525316079312419291113823957431368235590819042324334609795325237058888657318103485993601917649100930523816207020499826468044822011982178925868828885765857077549005590361607206794208768655097078167310910389167073443970968305783562665327925151624921154636964606233076997290230846010762961348899681039354203977200364957676419096632733448887517883954961613635250342926041302521730258721037434059283672197780238440677852681552124395638382752376103615790267584869932677575638134688791476239429157234288036351834082963238498095657594742160884218236676794398119553216584530238319631493558929986244937593976789797678212600878712731155207189846569611229058144889588991846073754080302639159033159380166174832538830553429702121050201826459120019392460326559193226519410919405412766725809159827774157430245574029672407712313599475734641593676645292717079657625504388037466241228179948218683912239347125761644937016924991499104943203276970659828153797587901412014293553523952780242143578113610200662617339067986805638010849638188873770963738948656361306810802707488461112077973689312828637742147378110430090127761960324101501117615148854407820694646473998603260532619350081377907618717183202785757454587978055934875532396616701452443040920395335491194227541907030088270600112988158107492647569998045964037601201374285664211326829365022363113922164101777632769578799932447390442179669696747960615127289391473737406032730989815988614402737608045703084266693853668720207992993430032079440090095487478878054044802871059958815214055961603499872724486272073497550275013434551080323702829884959776723736216089807762036881109297434824138259776157467199419507876380304350769793099401140681391343352482470571379969140984465658558461002557732906258780922922651335402940311336566515408274725669039564396384152922198105366410936977318985197480549663633200909388181908864137089127627106522458777313168036083238429165391595271341384031856927429338864981539741337986915506246323226106666426856079200394454280222055677613608719417764723470509046729961570203076432553031982301244870706545300883946463543296366068661519213012836197452830904765888849731263759232199598721213858047305790962799885300857653454674916640766843890769019856424492805858039639487430832477653191957436834686655916980370679827326080932875811843335910542248255095060809589522159402313999288005000366322057269884846005117325479488907547000788305504167947615579077359550021041894812467743687581279951140799417165181197640385952293829873918407371386374819655578959893730057684528908081018278006566638756955242493030253262678223659025517996949376917771417250130065490789996341252356779723677297923504915658433247697779478992296472004074901354692759468520552873852081603161847642727929877022356728042755416783879766509991364871033077341680794074904509163956174463179002323989091954592223007293204839720405666755238280805023077254515625670323151099518213557403855163658589179721120856659579653362927323194917212517903914738430363699545548332552974546938574468484784267112744116572378842764669042706685540372247871607901838064869379756617752708870984294522996476276419235043942159841912127294518909377123223988742929631558150161095946066145451511207963409910919641582820490525671801336538072256980235398116407270021968331110029164292813057707230229322858707928102335632681828264620639528982073730255453138349592930725336834600760295418146959583421861627941043068545887282946257382096030095808128324477621458636494469865755585933124186435996633948927943734512885426920560072531583539312689431839589374435576405730732442046408272074476469618496271925756063629000476778517292264901654419311651283850332362138407516365273626074005053544767578061299923324111583429461113708957313651512943643311339746311288172194415684153152456225998976148439959431575871217044875293251209136776566352253124931311283501971198919861659046818262030701249144975782254800790361570861559828253750677548353101214579073576108145748008604232761386358625626185596532686135421863590723370148255761572175181076040534388609632508318826553755399681423584164044495754733616911877703685935301778822418649956014880618257801611148147909243420784264548725864044236669145056717743184987061692956017343578033809739260984698230526730052074844555799109209599228213152466411319841325569632203285647643337974433224488608096092184230327601848175174046284539026082047713701430700731483065939600060639678577743893965034842959127105658250587730558388277712645961845436543035954014674326940647023496032046971454299179503689580005224765850705838795659357227733399419515486094438435178820927583650734042990212997385305359870949176279295798866108403281024407153017421096112094500532084144000227536815934877695180932932496330140080870885163908961971407161477859573500621063916325717964227963594067225794372751682551479023534389632086998990914109677011592108431374630079657458760158770787058700879138393349117995651753694557639651283653717435557317587570289206912360108668147570048666333788472588564463952613508210781790787654145694945099639967834347458220970134207688942954197538247921595952324435091820961157821693030604530129890649190164501525313037158849325813994130687696883404552487013599912481176047070670407656826487248819378038950932525648261319236534801109900125125500067242985161840771819601754206429776297225180010908241866397680411551480953793130756301250440102542522676215111422412601035471359976032900869417030918047105820832474581114205788284726684974686047658825851976192130221107450772750731706514059648906841845733423434284996868444832782474892373020363327846456345636332368366757576911256586783716939777061631759862086133203165791752280185456168795464017635954723848205760738751463258595240171714657158420173491060311767069882379422961524490259011792001920261438984633404851666995033390558703675339338676088578503401983916797551087108849261307178649696391617635689160240455010515332853834773657027459136281015167827955789263654500081936638098633258068180596991676528502073002113021018532575527455422307176058827031141423337478504814146095294032328152563994781487995390076188858172424309113537303849234018435327852562782235709759488038388683296093110361522694708268022890121034092241676140560239641261719508212931601525542421912533537894625192933615858731448449426741562626452918574109982576557571967250912011530298219954501177858486660229081520774173408998588927022651839044316335355408728875518143316753731409267318603814525173819647809046838923438730558351509565507762084292879345167397907216433316263455705527590092625196600382820648015804677919337636761915661589813702325729027351957917091999140867056114756646227634291883914476280591480006530048008602546002389127038765021592322273372140375184037352825259418775659899102366418877506156901914141661957875023540640834775686807799080805325610080507568765829977195779220467179433794653276873917778294983027698970071924345308324139048404335300623513915006208521134801712063964553885457206069802811012489012156587570787435278821254401427163097942220490064562928305533132322601798517964038886997911092077406510127861156353466089060802949749167702105604507413871608044656329757373979210412398701071438779622360411592490117627262849713159530818724720792343938880656431546954101479998638928835795630573199577454473900585727990499757468422865124038577808001555318468473816572585818273155163950018940469150835040380452035921375311099782412351096191802061510632275982686970153751510258241243900973781067936038281164939032577796913242402800291782582186182372093268726311536815382177959178381839854176303128506932456616602582140429869977321102905042914779806628530661139615200514853264337759790870472194577484505797613589618872673871696836921150312498245478551772581328188505968067852632508081431633889471706946113860891940990600195402171923757183918460035685832545013779717544611305624540865586105791088164183704225946470347711800931450434725669485117420818475796675306463131158289046418030791932815758581389292238350306105751551936423729316499104143308123026586482943070761915202234137645445937058780625267507668863306606788252480985544476347521362683938717499520319518054914755084389187898781778214530013859876259118287083143995487986379202467852044339788388583182869356453215520542683330873518183937068313108796568281888131543558312786104383156858542492724121802253953530081667657493693802143644143042497384829864806917461850353476566660143325507955033819561863632449637423629442022255284778452714033913133444173111853450324165583244368292488791964795264343582902325837861620866666393004753570064032577908834734651087325031867651174427373688365247409485123955400070792280243377419612573218988082917379803844736093347542900012677928560360320538414381932469344485785975351598153325173187595596218904082463962694479328818488618300070270458997774913365278592153204707265372414589244109162715147441501668467060647123169346512637698432996263670627382230182926844540127889729861808098870651004190280805505645899798274670242291626836322957463409610978937683167049440795380968355304541989838515189720263714867206067466906418920779701214375605386312005458080917630068808002560191913052024729694928016988089920356288452598684998919508321129386257293078118603217563142230755946667599631291193924342018346736009775803611842251171648992407708079199966546216894800987079678992346833900824035205078372052776070464353490479434364451601168384019017206608644382706990881584656175023111936731056795332434883625511996225908733695469845648130214048267175069944569917666997779640796716571593590186581861873773852167435159844104434005030286828893671132717566272703403268441836048829621568825616202616429494611718681760697188881666074332241010359991971740750278748808691270757215591052460242210056467172590022074389381795279447570302589435460611643473145738190421165581130802305791246227770103038070090768104604743145476397671635295798660099517919948460067291546618672244571494440463629214005556008287114121568193714382681281130838437077648905535930253661156179089244349898360981228612482993625743220156656362599344205196769147712839833090843369059291861558136286178226813687076627708726723800415534177049278031496719598734339548427070553391231750412937353829170121579577529576649436947859289711021613626984379096544494845507272356336514291941727725985746902429863921696060512398217673302136484722286061964829572002756384204796019050757401828849061602749468292799587465446747154789753003752622935418205230354992156795996900791053387226575499839974624941515843207206571322034786762670764399821650051010642419199100677249191779004253506623868226660797716005580950679748124385328869281422014137161704143238090548899551034709736690414128850487784814239086478626362791524104893781061320668199058596435953026283833656139259213196091196873068905555060221466096093030745477688935636778742576685353193662517269052631448688492140375130885415498599778593594719873954834989534812538954596523044689201533122050854410450349974877428552391892609654110523764016120270224329609048700302518974382781564745069413952143829411512055897671552237757754184590966547555984718359244139797787347657414846031470707253907317514003206262935214087358331530749407323161851711678480202369769992590572908289385484675625818256205932165666268776448647727536172456241987060564934796763354349254668029167181755551543625111032903754316851995750743559215844733352399620796672095511642971293071285897953623355320391316102125164892185560330582511651311286009034568210553138069220716012146946079716092613045913434552372090590164986470969805961211109079345441976651433550389860408668278797182544537425246901713796014671362639914714697742807757205111188778406988580283273632201551635127029703228767897866150052335405748717673987384044302708942610294741281434685098906581658073263670708659544458882731949417237772386704943731439283067269513995898537614692117292878758466017382210124220200899950504886108282263909510024054838594857163380521540187983017342459129541471432126860187880105153987209665734432955798537121806362901322465656158191488418055391566936291642814890566490414534931637985097845324946647977251545757270936401919042344769581758126619731042355772193126465576487026140663524777927834063544220050407356539512005151796852528125128551534377243985090978844053895688043371234605400373438762344105213717039868971902906574433981496460822830642797493437650294269847465944083568710352752900310643047475262806714701229022229595558925796386573117970432873393232969788726787140366199804185634056899791965062110163290296558116929689077061805177954218209159450316654731785512849590074802858998743755981249956123885016218025810714833431229673469005416504928440260588720474599115359757276268189510191433984170938602499263759051118880395055153169358430422534331992185200966518627919766614605437679915070273007718638889190097679107459053319173538988555385520423223028817107356075194785216319464419331638372167337274891401261540520633483404339059673213310237727559329378782345791762277818385469817165304657770481163699816716711711157811522692641035998644968502227000708783571099532221212011590512355476154352344849049875016913750780257668943641873059515153878913506824186704228591534615840852711328624406916577411127878466911245515511253763905556920335469816832019988282087916294756940144573453743117102212984676679905972885656452632248072682971298900302932124465811687352174233518441880943320550414408497787830289640088247212808821181432649481398553818410243271889662642182372771474474688996732758272427911072925162098742268812459433488860325420163248996555522286721296530170292563679305680922672561859915110066196297062197233382459650246055755150301823118419994390072692150413446843318795763032993721341812612096339156609996983291905735224791517128752477615962207646972127434871874297380245123409111099920785291827917346930087589765887256526122544992554161019217616615568524819714988400752812980687792521698321629940440277000485866138430300991727401731781229135672311500146543438572636332079201387239644137007284086201143104334327578957298273313089975262990359826506670054698043495588530748450699350465882008239756866264000565355429163972275828628619423572687434253986429758873652003923220612538129766336737666303094194972857004309449193011111391446649262384849562228266911354247599549417313480440413619728380616235114858822670339964729079119083599012702053152094615787522409534447062133663516142424207281354333477381232187001997132694053990545882361191147367471768265289507841305151622242015379148519031193234761632073972772075228065615287567742027431396483355068498990671796513274437534927967637981460120423848348131618784294876751608143936310586426694645621293468617753990640004493169731753406080671729878279960237901306612169690283843138080485406914320166219740340807510675658838373273485030273241501575525309728655697231924988167616187005375986740869187739011041292685063217137404924977850967452181136549439027270668320365109027250357584127056994594212736360231629196754354798806014964830662174821086857870093043021549383496333724683465620323685578854525104713732125424789579186128258787178473460441410564921818735965288236353925815342184353806385492985446350436111722450328665445826348529574775371832768093583002240998147494627207804376684993823619758109195374471130189904559347513006607110363523536127402479093488655823904774661338882163646233907030112238988357693702677887966663150158791082714641556078146674607358742141601868987916031101348553362746622475496951073111086226483134288218116590959351625353761651753624125987540304615625720219985678418613905494668131750313561342159735666334455726671550044936093524906803918426914423122187983285551306327383758049369263215665603302474197246275678725877813755415179573853863303923459802089953175054127570746962815503182253392561150521070311940436527247265998450786887945402107063505656781938732662147739983216349550041392396806549764145495326079229223797998950320718129886708157853531793341542250196222431602644869279858640156489178509217799868350572622794111426155640441178578233132512386745754688440233003965504222430407006472774549708298726441502576509546525476256856250105518151446602103561665084395661168381417311953721285704271710306643365512597298024414641931901069155170809600886239575568006540788853115950809270736791475268075647464109481110673128718101277811127769407780321898269138427358217595925232259802211192071562316750749724855772688322726048284148722038050071542700713568275959305481928018648093602931942006906784317623481680239185597697295038915198883453692949210339686783180025997848346830922515976352374337229136081239782743696300251329619063350943427799358304321081682990655792085670856668726834394416663679043534423095863237285964576534186838695375957292118043130262456861346425264712928816995812067260202880187494397600228623543849612025588031957600115293170983950777621156553309384694566936758800560908886315110272064968141876017746192697170505856123035495537713363037977668244665859948167211201205355735851932700960498056810888378650631191708667830929461855105486738822602354952753054802377009968911503675247947454006266332694651797892868519434471521208785483799328621943467078373964408916540400841148564481819811770880001883555036617544410075978794890172552822982608460599084660516747661374579557831059360169069856151688738965785145639489549125360446010229164238179570268689218008049453688760880470825607448563671129652762804822966730228972012670289041862183958569828413992865328382050318347895580770839076724417478366389161557899214959425565578533229567963286276693750530237608202066940116352989250427594895803347582213769687635683853853117106264793619674407649840491078514952952983051142184453851681201581758233621766399810750731478547799774044357746285462550740317360493008779682312218335735124186704114370750998310010643480313289169482649226788550444608691271078895722412640874471259906118463445631161542017140166114506412213130509967556617403880568724686774706371454981164916779395076075828102821014822675675622960046530604988465289849030917421188338869938412648700546965915349520776042627949246973427909087343875126344473290124975710420265593289814606259757360814568207588212826497393988839606949573266294256013824066666417306263831164395381354629580181478406896590510486576240320247017386091376909083997638376676258512934596009816142616858772848708001999743858271813490967729287030636822429570626688427011144035445665973863853395875275712954578705913202641067647608753058497174895429351948842944460723831545289787596811324812671067840970619319306043262598386183291259753212073955611751403390264925120727561401421089240857044669375874307523483712702394450244105952168532267143317023878780936443023522862866584757743120146855067236611809350338062807614775883100778102211230766096173662248219673132432231542786226665818046756271562882268822980043600854413292974725961365913643171703024069548287566741645298176276619764235879419543545946997272071312328267021323049270240451516641327710647602764542311405040286012277362599545991236357526436601224975728190307029285895279147859172185398143861106000412865047251645569174097760763654728178948422665022216828170567181510908528400211890910894121848035327423288303824168843289673298271584275064088613881851348617733675569639405472931300891675800392423369454986920225395016988489985074125314376740364613069201260390261234082647503989527792051722503369514296857099237099777634483746860631443608833557073491136070600449214515165111145874417415383016701279683929735706926083780018040320074953713403673480233276659224047005152221945466759290211180232462471690408897548451254135123843739372816313989419852785465352716881486730026257423204790509249482149563931121290181623478550329427200152397596947296400012065783316340190696283584381896434906271129588832454682136652315326478785176593852147239736581331696322573061254957509088420882737040979574966090983019583459268965273303288449481601225267715964023729529118576719999922729419244395863326009679181743927279245734752901965146610522939396843050941897416680570395984808948509346936145081500547559562578912306983201274277835211039161418581563463476125041715778544431523909253630614286022073918518387083160596687935149060582591961370659651638341075686782498837773928498745062388661082712188315641450003417709792810258073875472078465417414634718805374794593229952337892782246858826296214291735635893066586370151206289189019860020350026486252227159529874274941915377535404282509255570894977817004172392960709404143033233861934728493968907778416460309798129283144699070539724717090191487437957048959769253151314687509828321791556695094204401597628950590860837281411301627831633658307049609873346275794087483016571565145385537365413065851055449515169197066628363776493494694526017526318968134472967130782040353629238177327215362404771679151057301822208193721511664860308923113883730260197912100943180020481726569170628683263227368435240599884817857690927284793694991042787773570495247648445781077786445915725326109165972904148487620952919773761645798664046398304726430372017798431472711917371092840538016984272897925561387912431208524768887178990854573672171932040839002505897788910726207087150264985992721901999831167871474424392458879975014581896519982374719459171565727699755396752926801611112205565642483457287644544079027413734778672062466219646292222288187810441637604399658881884923984821685810926498698155842395444605302202560739636996739553093477477706665189513201719897296761867711859985818922051861887409989930395617101048797919831874779735836374572451708959838650020972661285353063801096670703529804622477343000449964122347853397804332036940228188876462958986148035263631697773218742776916787850432435410456446747784905027008827261631615391952503574350991841313063648163612998330515007667430179555989840878201259040040373760439625652676697184474468932841118408784062791522871517418425444840392883041035155523631880281313637031860926018463328839876362106149834329170427319517774634896404515833732917023369186511810788737151092355402065794586128871906832342081667940998851807313704873951817081262195967150035999988432012956554356761180582165291593512558339978615502619310221928876437972978379634851305753694132178216767917313472520075486490427971612100562236815215903632504795795323207340806010032804391215515857087408384105004103785802219807784856617304594389194243954329438640725569840845814935291970370956023002111941799792191417624486956987370342993434027426903919947556219638803931174153221823725879904684976812944968800050303986290356154251226605159970179592389257396558329936423049194325769496252281769800295781477205533969957857998880741128034392787694715412511867049196407107677326525954909145394922124436699067923070698496652697196834019232281972611688179852480717931605476469595613424176638546127526547684584920722964388851614912146259485241148578883035255501590784120888492630470583336887643711810283920799236864713919434599231239515616792635428902047128108023799810410199437387436036318244634213933968043750183892790886379573995729040970819378849715376893728553187347914731377281464587618798783495765476789050970328124068649788576463704661213253544892587192904874018175395817600969403325663829398484881177055857239861920587235424317530890138086178943633985221016883008094282673949162045906119155840050077445266495707613491903726969200357103793715181964930443843076152714288010643930583972314607742849267523031001150763701956448926582427021184914118659986466781935391603291399719122520678929682572035702556581053048008162971284178141986651371977777601886902615461942970571997930958308560468174707394842784658555754026292022355248975893434510727131788520204250227881827751085965281288373334219090297522653083816127024531478031599915783486855697151511888660578511731603571580187439512342783396256268421978285359598964490828296680616711046229064057800727131883467969553387675654395221720704600810095048787901563235056540074383793765181429643114848427502277927455486525089566199889576339662255532461572419522349449065960701536994087203246953402182107883399861919723838576936396084235293735533446222199686198692983856827917660537732083738105271091191756997458286204712634086490867457036596211761470871787490950284465217318242563252671964758233567475286875851287195147798280544051373915488854201990237331979533103238162437378371165358612563556741406100337659099809907987738065909976012157609033226913922464962548377669401253424138090505835135618119608072471673634180070970062896878883795404342268900998858332304242814649929741560873201581991961468119739009116585751043230238844008902661838531229760728852765122443889059958456459923448229523472650382819161275573232419503570606221708909445557185380398856610673658453195384844969608638898780540554514217805175420527679370231861351818853650013163507058086487737626073618655992137298383949300436469187788647670822310261166271913281333683991908344138999769673465137424562516604740938329111429947793493758839904037410100412619211259469684066524163470730713849752527236266864151338077366234295125607272182859550729295550241404794402766045155504002380685898647109286123219523318251018598984242604637497581005581651518968271027316313386133471862337311489721941923266580499533936725979401767189527545503704863745308783392972530314539767587698174726853616616935736715214893401176607067207476107054571682312357655644635001890276417689089495409340735383326545090129475394834151043449848502614264869357014716964240058315824887374071966249197478290679496339832252561288643903294651802402813514335362827233069758283784718440786109715269795888070196939250044738368473707625352337688378911574862163987089289865263654484250014722270259307202972728294253470261807649001351300287707648913148901740718375373741498748183374732259968240221382898659936850819730497646620096352120237111357219312599340941930660259975246865767822551079871588663654769792887027080749084362909455270213806746922662899106789435426764971685756466208931578516586831031247653481872807965783986315786676793757194947062709964220243206716420605031631591632011932969976459943463676632852139926305643861651520789362658043602919110125799286666336230041794619994690961834154352381836320670267994038370396169003612417194957489816733475500517962987719424274243751132825944781120258659625486915618907514200612375567214439830659450066845250663704179810847387625225701649540467246761043420873770027490814405308228502721944109584896139969031553281245948322989635773521246360562718679103438604429733528293210243865721684924061342526146746235669629011650450316070326303098328876231430424027348793207793743540714270795709256688577911140019828985418372657940746899578071750402766009515451438510838695552719684709179756348921408599839501964737879161795537360456524916211660154119208302378254552983667049894562505297080083169006916938762489356396296280814779843396808014772926197218541533344313149320979725854341196099131104201234466759373822997805533731977073498281211057772083920046437398507667966715000242431855191057925628591714178181456921963502289444949305653854359167170138847152422991290556820077000203089635633792922675719923877312265840355657556441712381543478747297956731917262838447423136341143273456188370580098498018030123359616384383814811937341213696280090063223245164349736790234785514745484214628620887537808491836727787427741695855616154272248071236225048866344942429756486485401454696317378240182138070735560944142185910002166272859036034076753159959735937142176792576496916101748173421903844772040564774882021167641128485450180074259315183520075852047557151666220342720542419236504945007259426569805483977372881836347321220162522747186148204326161520867859269497147349464389574271152855702655173041458248683872010595620316047746480764820543897358122620200747262768308605997879510967188761155109658151106404993153765650664088879510126272558301843533084837327970556619419078713773114895705795620080113490729913182252767440397272311892411933171275547204116751523314164045361389202341011318581106354716374092848860186357047352589373284726007089211802056113120996305544141100136850355542425805975504360962533641250610677773977488366997317439613242424537927452330659772095108972937560903726505639396044577596243505962290995668330133946464058206386652069493414299501384475093225198210250500869838479376947457890679986832638614348647909150801501727358302299114433994451984744796177111332260987212394562828390683257672016168999578704246523453312194323695214344576026842097892275065321917631988243011280645568902962299698918565057316380664626893308805205011614441685173170661378419674481923530299473693836618601186434114746847415507055530984363874365208025291669010960817555913222200136552418671093024737813420026429792762615137173953820975055235991773342944053109333035627506212142470679382892395849889266079854376996052191488624751223119056754358322486813027769522096233554095156861563515542076048096696936796675424930449254825719575250640431449334158116289789082861214163239956827402027455498068131215312452011108582757097580844452104644263804137085269207137175625061377712687253624551690227768475935092834241043080148100315794743125406424801652409769764692045622531827424891109834986248548463189308914548361716966831216672982767198441569849024774605557590789741699862829340951445760004316307957408120907171753984867752692078364989245469696768469575392111831429919456771431979663232493720780826657460604021591992261242050844393842480886807639100912899138252669172877004355407281470083189507170496524890341357093663405101075489677839060284060406343137531741844959510079395926381556277260050422989057160859291476128053066518304781346703094071725058859669134835398282105161259020078760600720151792555646242134476945255150833587844066758197298799007412530445581171440612634900943357192325601475018839609472475631811817805651092127470658888154717287527460797826676185783235890764792857384115376556748254398313814400005062832997546979657930366277484470557750417138982513666497098496464694874222632334574132776661067921833190958741607269176574083961627126125190254427961412648889782589398402085139345345617992108217067328834576880088894907903466291096916167714759291361789829521862668739079166391588232647327567734983925140122667977619359623086814972153302520051588936063550881508476494201651186584119201862171646220196023451131108496414848874536365439678119461421013726137209963261667800278057439261193803340767241576265804999984073248257730908071360198848849253261004454596889578197424884546344474288181042296564322445659401632733841884395916854599268917812101745984957882330677876930811375785874572187719616634883386249227815315532506116753598957007931422405625134083241600052708934258243435556879843761733122285218842729139807396878006191452089576717642403035194598701876065580849637373821436950881342805935144030572826396290190461869464679396145670470972421162570151469585139633008296730594512225726604321733213223864881870318821222677968124419124409050331060421591568566331615904275953913719932763635389355561563481667353457462300088086550859678585736028122292852768559207862354981901653475615170701837152666710383761809151951501913236974156012344054485154624685492945072227138210045326801905939952519855141851417436995578948866953220658618809184141797459036757782913773803196286715402868685334732863554724843923606617528921591902516899634227523180722272386357482627856935052116743343610140006195126336232771273806523739705061977162604504315044184343681232315240881855341096148011289101589541587414743541402146210037177334701660198709116436432831858465647813442528443534033245149051774492428803306508616916151831302768159958048571628073493023946305911585122765490095910745466509383500659330252456496842107731477063608061010934249662469233254092139650458101709234049529593385264404433382408546489876331460452100043398657608708168464651919725064287943505771363264959373526748845002190361855031970696455727164150379543306744463779008776656062357822592900272575438744901864173986116991526601298087462811200755335359096723671961315289515261946202940560857758513750973435482401379883891497718901335886828996999550340494016809583664260447382004041644501624543884508794920369940276471796879607292572093222331928988216162023446352919955194456976134170165834721809407202925019387811745957136562425025944880517248395521530930529712885774797201407122088312784163463304698945122403003167895728705685322305700222823778614462817466961445328011537066069893352076957239646322867586571177728667656254305403901689056542820656492137824634270564312138334831268216988580859684044684256369520670783810435169439210515589305762139626788806061961421863306334485186284912941472933035928168160131064274232623349759860738728924627052985815869129359288819216268245775318970929215335360544563006738557165704117822721247410634890807673515508516359498591319069049819345213361654408715022498404245574791059158061858811029313869172896583185120939501682374012256369070248255070859987091553225581837502626092880494157196857813376290297329994343144826402252011963151207780829964318569074528077601319424132053568675056170764869394418080803222245442582680542205027757344607271207695434192855414392708075352530704439613841670003262089691448202996470477596947239839907949946716720924741046152013078064738117440777498250356530261592409007642949066050754024984684697206589580928911778816298276716966736559171331113336392638069921453194310648265295234064580563555389242324591343021712321563828333251040481814383688463874042780264755365192781441730324381887964503007111256847393285138312101975246905660694630625762638592707793695118912582978218156269555855966729630852074061505602657972251294910521698004223124389568240424375967007957442521999333025841899176956242100787171911059205219954569768105742987810887005424619105880235812466739366400676832102541228617789764603289133447236754628852220279144521367304275126656781872631972227903053932686813587489502517707919955687749767591207811347327201808811777594581231799634614654885918823227975023554160411119465163153957539145193665184715946253094155150490058498655292309998886751309451401978021267474795412334667354976257267696846218746381620851623668318207817795054517226899081112504915089115270191413279190328566413172533471955500880114669970372620191608425250546725712718375956571382206820846392097269897817229368085450137454310452042363226939980642014679081752939494287727906249473265735944341875874117104277081227112863611684358372722991076976349429454125766737677797402029053494253696322100899525327964433361991750703824670701458704199443234113819071463117523620289263826691259951915036523433052611027460749448806040465798441117601524391182959557919258676259845097856500971739412009411888720660766682159877176040152362038488359961602392496818448177774203099807741796609640917660923182370532596638883811835811626290855804937351919559113088116724738502309479203104605885969821196319079042581881086084554481697456154992881242256426258904039943793365838101494394783773574727217416759477148386692200146869664992052471676619363092645189760045493220632589483961465105736361643740137612268578375606157690554277845468526929408047281138004712045058325078145525802632365919586987207926463868679376951743310777975871633822518270456387301200083038543909032191680828290572647844610370759641221252576069267826096313563455627986415232087283512588680417763061353089820350626286733759350724267613612063942154671396460713629306894320071773406140837238753790577042589938071729946215854090792154725698170840669451782478515430773087812942357254284062745467196465492995138960894521497420599912349632883422645946046254390705423243769518669891152763761691733898061770287311704375932831838073480209527638385252010999625168576500032308563642158633597659819073127397698929104206947880351361332594847849106650184743636267466923590924948623334689101742971353393713258164159316329385616825184445351325626975639584541645780426169849226158729538393358410981470959104194540065498755548630566996919122858732083102044317611142927214812314326400142375330750488615678978558404924994605616731305323590920565269295501928104275510216635601685175415821736081039070613391603947175712357292902124384778884255776683758684520807688208465918815262757610577880151244168037121732458894519094123893980120616030789891451871748153769245737752435330564396918254299345949174285003525498680865288304672884227613143237873140056927018484354765554439158361807626998964257007468489860591880739343996962457979513314355996291154277456079144248799555766408071956361130382097046055004105334170711708449318242143932595518197276262015949444458741454886222930232099310810870806926698250124594217955500994824983203053025929247698786639145464108636704338658788699900740110866819816042992474001963214690494335045936928064335947485186581513550153873431188486963010493198440821059461408922448610666636945789420489233946155188918173573432913630426335267403008938704145327052656127666514492222463827466102213714957882192979686844120968425544550605770609457055317293354104223356171301353783100915840607045076650031144408175039378284069644253507467530668559837563101963738637682668297433501762652970217695835517091437665585341334354232531914608036857191808855341153589171634381528526928886450435085581988612748918697969592120073429959842729832679636959328944195693983671632267954455613012557689945354440602285073674332728719246658143944069053067243734289651499770827626262150024953743255962748953261010987207652453096580128544107236099652577314983133275130702560524592337936374268063062442385303822705278243459146257908758799988223830911465554262813060835286930992650161096969179284118692659491121994835369636166620509348611843146104333697709200262129916065600208699626494848626002542451098099765670852134197435055660980215252570481171118040323424829201123696313286430573615659423776284888380163676808769109349252025519306582230777209083737637820036053408857759475711241833847363955926317410411320582639730246383239852419794749936040680353016512642563230239483570478839357576789317982842153131093018783120234918656316834168632811859642074388303594389534565637774320068788808552794355263126069564914982820844292904006147422933817780696218066510593812480241759554285945585272885121961784387169514343395586862011983722793749416568787800197715118272583201009308367841942024939670181540935813208537584222480566954926451053884647088544348091181522455348539650060387617996899955857244333768328542632667000731787736428306300770263992579676358692139967236105143602506370935481125433033809075083743726137631225954300675849677031462014957817237082391783449237453938713720964825170484757849276537089406824732328653313067531765245138255149807193538570545392473693997997992923113210963092889501506991300413402509622313153718298810350520030625695578944353050536672617846530280148869058535802370118306466538197943181611461009229395321094806120717507767165752096410125317533801447291914988902752150926465004322602725295224792600191381567301733471069956630732677511836552655615387620968083609428288971814493461802966895882019863301687626001889966559836763886868720698117147571336779423846725694851528045351915513649100768463919824928540562478244449044208705169985509454870728217390197034897224339401448663278828882118847966493489566695830625045696434465121356909952739174052438307909658600642992904888792822666058617792371778749510958380090542565452522485954972816170716114740492087056765012561372788197429149240780341650063780724049835909457615321273271951313029093393900032016950463477598720027984502967643921912085205281881100933282909885532994086605737957896470304835428429838002203090762446316793101579185465675802895100417723695763276401998793564302901820294397771696685179290716118235732300033733816744067679103090140499507060365105204877730030350212577933548065964549369053595623214055986588457192513520139849838062965615154064156881094106783953374423145631665691535272452611722643955599849774977268159432363722248150511488705667497570298164884497849649625343330001327594785326567754924140431248381182571250100041111471424867775329315548337893892694616687601138969439415213544629379097793609589136772870862328420706579122106574807517445396675199443080286101033973207528362173397616321713428493274821131046625527241220265131974257618445554527262820243846569845891252025645813058046738641601030185241596889992543872642125218260203260509683403067057350945887658911501177655206681738278377402965459660920234999053227528085025290343660399071662618952921949511227893568207524391879096028425142388527739594088224101736440683163241099442535063988816026932070335399772899624314117320848238226367812492558512187983058550506804835545629669276959593266792191837390329345450833220188071851812853797116399745037020018760104397008363150741668607013575827496940742721552436431144083304680023199236548366465862829595825363253686573928617245445028266794638273257888558009648753690773316872710831186720879679006721983284244913903460315165192861717853462408015693379205642036980852911520401643162795384599114845547747191285515972051780681353325254651804621666808712364446690624995521589831384005592634037673255166206161932300606860197735945593664145598154076883231696349964994640443305520886699885219174453694211755752430777768499208760187220955586075527977606804141436675763332615870304475072081862797588289017278622458947891678338570197307543660223410925400540868237455680680598035339948895772163192086245542212193480113744484995036251691652966073712825778340507077012248621298659434293960903046626592792894604419662005050219056094044524554989784634576100424369311230464545279605426960111210794422431411375351194053402706044987792742531162395686562814741919026038634049758987794504630123953118365209603729939737852440143273540348585151398210361029238683812178853341434638361578925901453572270243739131262913435501660242002238356061131313246982508497632306016144710395290715932107606305808264805726391436087168736956219798809986226264434944259331300859488822802104416686195632168777627859183947103352252475988133190103226898930373895211512930933737658735423537636217938312772699077893484173286738096406722086034418982518346502543151059499616757519730801232860161506927632250445158773624598280050477279976747194006078368828332240598448053492870945577102562263829930376188820854863781138884306066625233756675775573013208545947257971916187678817228151701327470589651962895973550707602510713327505313954306936857439330620309317274352184265219734791937047777322424008262608082108365645777497159945091491969857509338507905967276243303932866136473978163180922743467396414020398686953082393991578500680924788507275253312128124844896013225131563253039083035830373883964374423717984288456085016397639957937942612463265601109863207733780085870145481911013608640333807555537424147765690069610083524029180190671574731861570710966204423782264471740527994042937104352047809156737242393462011234766323123467895197392857910872734337801876870242142284761809870030602787324406174203995503926397175065130160673585775505696148823403232006666710746658616709782790654068422147826465713293404795379059868693065294533745093591078136456418697075116367036033738133353701142608616794653266212899652653451399603974556534864995645428186280197288640447892080194019475743219092921862131835574493187677081592987970557086368284351150168528745992773959571092689032213341673717255633512784564531999154887393722022444286475725244719817904494017661998930174208987155922644391389549502025908733080908926256657116224463131125724691606306541478493890639086169462535053237456028905052651707912491402624577297224686717693540023645806914939972016125091914327352788143572946394369386163161121384108969748116463335839034095260561427640967899002819370448634368377911210962131189599731321585613041956085830842430145979304978991141826805206965732732189832865941115442064474939727657052392199464555486804273130494736061768687459967830613177368265850383393872980039867796412503359929491184990395257772082915743353353819763470013257006973397252280354572977235231219087674733849675731396619150400296551118148216188610399688972222447410666958794624955423554322758342504777580358167458907271307745288361625987245993184343656968481308671433869854645433988147386115636770845441003648633658784695649896244798012607112695751047898496930704805746011287044267323648091638239757541702040735339212169056670249611960815188437776993893370551127071213363404047031255843576111403318835540171943782962215035368360110763390969617660034076423195644693902434803119492083804421126521023308473591611602050264420916088103751926557963513081814437054430790775991222084542672015620503091875754807832609226292168453185144532338762834283904833439727210241227217009930478378935130857170034466364872517689302840110820593762167341762657723057557017522994961542917805721865957452264540744756868949231145942311053854219738519583357018405229729175299094548896392206063599342429085488560313306307666813397628508683535583531113221674047785302674942955716450965327827666370052170243465366664660760461706204579299777064391627155011886117139930469073675230675903758659142930890173406067491130153138722544179065004143056476344302604813102761374292758025426845196404783237527493224855898614341208547543894152365342116776778694574032338553139348436387505342953678401547948276699697878152197705154895173087070015642457326767275074267253611023603919799257654485680037282221730030011560156715232053310568862717175162957869428536659583209137450210049826212325792878754830223704937704503431943589572009991833195474621535248693353709622938200772290792463796082608690833669188301879654740712285180224842244530579426911110301028285249875932809186585771132011391256291401681497836451234628585851618376884462316020136874234852946864164639011305306046445957673206568039652247705117461460728889842063203112464102713895888321088437255674836578097747307544527710279991379669815756967797597498261355826369054378065258468881713787326685248747978817167152839072072596549917741561250936772219206102548554011162413578033227678507827286843312040683811766318393286394350426067059754716910148870578142710056848573693135321280669286658002838518046944393716541453723026805721936619404969023938690836563864290306735556690052573572757512553004533635356382607040225130220072263290775265492291292046683839993447956594931122463422030179462698585042881194048821111676207542172599634458641192952052227995820635176455503484761708946693280962755516608650305404389662027122158941336507761137548102852433838768345548455115904112176569096992918125937196592060325190595061305792628572710511742233573509161670018418663139767501632913658445101215330874435991609702949081329942175439814098967719504898196134708212290715887763076441210707516774734262621753299597699101452743777718092362419007883505974459852784372612283248369769660580811274374595751544034780678856172161927423534076726112558810578407030576422699275710850111325077639162887502760357696357784553571884921971452925579113822766392969432974038180804152854047222998176463420249989353309326799478517932785440140080276395672557196031064901731628546285826414189725677347966127719336242055448836696942538135648825807018706289528725633240381147947456777673945648726884513338144691006942789208436172304799849286867099876994098682481060607712108079773156371601118770102232521408713735984654205009583349959414549358294291923729187871477758892539032282036331076163587448223360015781301276179415114325455522901394084618635389582194279797947947557937318368296440283739342891827803855771439006251006687424816414292619149521627646000640067675240089033432327344312137415386215910611163643135925575409965381967937194440404214255143378966098024328176404955735157908452337077034346231572899912081999989811002576658380563891931482913461109209211949967669093455511191068092892619202783260829113692448579799286664517444773617806404678825583926523385815788264099926687920075653891002992077647178074595175305507256460762686483782407842665897552471605470053410483185023221136416315890174366003067527728868432358253799373394927193111884452042422385953149268019859702752022047482514684522162693898465536828285935863421779655911360130947754714321430075348409429329013014186730051281566126848599548857910521974576898128094273897833294555640173343083792703435336740217340181271630756994249887069241318361809891099040110274140827412580392842578813404823102918034337073660433792238077104719059723915983509648149671615799676258009712028518327818473885132975089242292499976043480756176452204311675511965096120276650065791716276513732060119200840485646912521291498582180729260537691165560139857866145891149954028445279899971404732300522752611773506701097564474450845382241271473058965256602748822750864639273508988095781115388026900693448702670321289603049596563896718846362917344260444761247902333704853738471729701292362386843347439942301669784645541448362904107635910161099214910843684931157570127143584367565715664002565354366472298706831263771352206910033338392015449645853155883500369145103211447111047286753073342019049096801340744851016473498612770912631331906001650292201431970953752080893995482645873943644076996043467025033926734239271096858302424818327889451803994342098133959675956006488877008814555719745049072734638754048927673143167896688989628304484457037992652755335359012937591135089136941835401973879986262257819292965887858973724756152018289128527672057343549687087662243117578035553103280372741150338079593748077863840262440917952269664446984560362341261242745552949170215647646155306831152160610939614069080399388157049695916450760705707057723258502672554530877897757418174016395030939434760570087671509975635940531091279414729835219789961254963082275592335578075655156152102360241028492084622618226140840873601325672643765923948252182314951748284969861164237965284150474816748571868615424032690167551841691725362506995545335152336012881082298200343445056975001866326698557835887455942627800628189961348039887489562562105897528032076721264185137393669476453371373097415643555102875002342953701400807127815071033916780772699849433576849041420537301389284151135607386873328917975771828498872180151321113270345817749385341090809862880703873187100733047317206960886050930913737461341231628384097200465562609197564798573681350175196105424517705247497039062714479102009765867484159097009273050397754317908279352636426990860703126346922466869915930971077543310115587006105101558383046311227139665892099463428650102560507094614414606746829328889147194938294130052132279662954994524605231563102808624000682479392518104770589855067737251994807527301297643887739465532918652226656586263125601233141785726568270671773106775167213856827695714964457714560332148057190106143413204757108811960526318317550793497829889042741270238273519217483679791611512959147014664560059121488950017419420735902521262718387451545407303405940648569270087321348945448595823631639804095086770745363511873097562029045670162290408668418538679117051488724536162702731955014537941075803554781715022689127301493425005467161060618700710099827426526712253340310037283897135539358860997460020810431541382765039099424745669258629647146460127113058418671545443643159189145824962185346928747987534872419306250221777609902244659866021419744711611084864682038889896119883659730696692378989544429174295563324117773028960381507086125901194083313030198459301958716302302318663019744333014859627421719125855836640472608957725709262072363639120671140354709712390904720729558812262081682871423978680584221441504342222130982315082638182938719680893768148722321638048570735773296896405135656876963434179969438157519462506894061370289285706151915630391108423940012292402797625601592236575500277166929703505812366134480926883594103791162670971466464118473755890596289535331271623124372784066313538213969491059291533250728147764757271774353649934295512536542828058924222555980360971665915395390586287808205223985958429061074289915800136855747838696574413183902863887743722284239828173352593831848353094221234282143559193244454750356867312534268945413261206876095169164924113386525956978018048193743582127600703991658436602478905165097981458108784343609461128074700520871263576019586014833954064284057383212573277291038204126994088171194366701703240186489933833040326583660747198320255303766549150733066711005921674366078204455651759648883690464866991387601268083931959266485630568517560240727192477463144791324294941178461292423759266424469909497620626081084076130281384562253634384726887262986302718486565265429643388532308077496181172821803854970279783054927833113448704262678763869908843878886180901324695415384792399393725440527359301834589738239761431124891907280874021796624318913939333799778652663856084248428035427517150771109298979675690889065526438416021897064383590105042818213759870142608925356357555842447663993963413768519029214490146433938682059400275034160675393226541585068206205816727084057864057224434558076614693561432760567182076185640652513123888726161168786024969448334171598008344501322734730147986187068998754943310897233198500832778886672852121212264782922144534893751147547815679535431446825717683685790372828699965207841574986979722328212954482109759892402647264952012096633251698167880070790130741760595625779922458790093191605197461383148461398083374546699211111292497188810359499366145052837857021365887185988593976067863041328144780010840243142883015312824718968465110715415914381088663206800575455587092041896516883042722699078941144807669066405706667960058822856975130821421489839674897984948824731560223825239359927416336313783407934974904843430738107567498895535377721747970717839048508180423088653812333484486239927415645367568346252364860586793399172554353934033600344609444834227135046365367215897098193387623857646647139462155164450838213502523249700362828658544847818321781246478548794225207433473606654705321339977898391169795365909609940639788604621751618878361038714987283600469832624753553478507541379794541688491791270400485804553374449719333747341388157092418542558777459397612022734438561459169711308338220131163474257047089717045634108158924503555880382123796342170941501612522985151971191645416293252093286918946290402833357212137831681111679408531785495443262457377119249694119091396085195316077549187573406556065902127103172447358633283113746175614649564694191748051958414790954821553299512830891391159654154028325970253703763387435892689578784627314328010889068413981698292772525369937492289509404589254715442443909337207938754509406084753611168559240615406074195228305677969941654159519279939933759735480214658857320303843144166539215375443793762883481899432206756577132488472982799130993542422652744789872578736427072425042721597201204780587284314546929423907829491851868174339256123597238677678345261972767712087881052583533514783271359195380780301745392951109758367893332604986970946965347560821006839102370861265729465779608107963123344411485746201190122246036971097317825266577683644346522403980127161035875272630916601275140983899991590504653452841811026192021001612380675137613414430932650685748880412194553592287708763514126597781948207547615787151411449272352193710694901875668520808944240105451551707398608569348028440619440751129953696811794064998300072877528096629827118411155488266532862888726363290305644163350911607316682087621731978926234339184280797023589151949147544390032069312291466356406240183034241374108571801346409804161611600228105313629518595664283360334101313630395420998567095042341413733282629552240780597515108294686568115865774437697822536328450181007602871292335349145649619189733546705502416498609497195617342325327599839742172495668258609628994218587823664930635636768069324245748879345436178121586047998256856657689181826213516675718253716954919723392151831857465239219877725986623710796353766400578780908302970802918654067798243421891752025072404983150370876865831400711731848817567146387087637606897998552209864516396407066571337814644085619064434010405156271343309962517967257711688928803355665184735305939251008767419780204410093285514307214315472337762593174018433294046406164471510748478796934091196646672702068145741814543421919714032415753285429208962693146024004227105347343455474184272655960006549034630870969520935795590096315631678647718893267270667137760867784711488622486679570265520217839403748471079309910018363246214615107332465252395141989668545400672081521566700375445268934775017944276299823174455303149902707021246917393335030190474109666098433609736186137308564250293348197876072613561071515955781485103840346899614042228260231625112898826355648943436609285474466008336707362456455799504551465429517285988313184614241912385680158997343908966685683523642161938707986401942594512887905095371347340740174267513312739688542935767418612123824201662763227696615609677198638654403665136040068072011032992456545301330214361828088557522628848492708833518968265118074659223081303740944484425725450297045069964572476102313879035696612031109553735723031287520941524641449770549040181826509705348932665493204913988072501021368793750196180740139552554102702568588711275864671088177143316343594356871266095922917770381587319844128226283323613071465666683231499845756423638367534070364541668273340394604189484624720593239440560779876976563279158296742639520635386527606378858032447024325984987709775100226086070483215855898151737962579495415297073089814976394548645242439353924869981629000749340627910991251203823455167255568614046353028312089497011357395960580343522713589381587581198148666899775643786256932089962023875006247469143576290061379448535352346372133400243633183240056883250707120817059809644527699108565050874401450837706758674548762320011958305719009418023450884308735253572749966877995990621561364911160008697548603177093161827682858733485918813287763759715972789632255990506067694550525505446178134458750451998206574205293457704635570544629048132647205629717352047180500036122572753831498111690862277041907078537928371480928697408636546806157501967433058625616427552589289478615395611702371965219780507229319870706541599787891946811015766873074425937518111950118766526090615019081079180112375188786890747361786653849140288291831815004038671444446160097253458334637383211609312318448162896854722185844625469096699488948693489552675725510909094321489299470038268738015434959679703251178735626892236901700314977818208969394348087686006328721101764927706110866270317131868567393627346762393376684956058076058709216700212179525878827445253340574468007875964910053124734867110279716812751328213836071392554831416192547632911188998927405854706239583478914726727217242653686250504157411762111894228730164500665087135236128306587494898652823020615636227561658249638176490035952418741385507517347586551240672969139682522771867937794184244156128634568167121779512137072303537738897871500193231495127623289593932640514991975679973126377128390114717395044275188978908794268918283623938444817746334361509325105723322006498453799687134938771734285952816269088203575568310754180161099773909117688367061205696983000052715296678401628477168510576742259663998670847599900497040593891772714936335852932455120200580927177015296723777777855479688204660637834276154133702627162254616900511655199288764861742896936397625438776450667939260840410569363792728990745162648331962681092234367251866610067853856181682182397759274852354402416391253540715746226628302870484269094498457317353894747853211764074690991697178425275354137769619229577415444739904915884562609533244092277416878294025455259931555279409574444741484515589374982011152064854179638363204057939214686207328731557540752620997232314468130285062910022868525563220984876619717868990038032344090847628446373321379780056725949817728575346985003408970689305710336682763442171219171530968811270468393147181379974136270624127970942609439814669693840284342439417203157527308826355601341722418007777293169708654989963684354689089543364228040703318518070470916709090329904649346491284078030045992590053311324644350164705001761848775153816904674652210598009697299266162427701603616579694473602394505691779039593300497646849279829922247234693377966791490128000678859286454465326051456408494552208728760136581821566515013213287390826992019588398761812705273025180680288789576177790661599698426732816468163466278163672270814759459990532819414118241161767956894640353277986644048358989383472321461380190449266921003098141691009426708186420795656960655929451915105823768963285698627952968558948344222677485053765113083492577160097874354930995685888084423826478869650607781615755508589774047126915387527212661163285033157803803556780308725739931480794979567154852947443796775557314234369086335077073929149627280870729207440004242381015029025449386807028690785027599163384295896488763686881993638552618169396666053403042853934308129850362159184445974205967132946811137539726692106571067673131533909949507908376346569117255034900861189824832408447330456462409064707049163613837828411975542883319066517454044250670934915156386902255634244458330987603145942146739818508244430929436897529060695635254195667606170530956611650180155934998120807027917239289794517046733849978127377420538211985776658723639185589133311164614297144364003151241262527527631373048346231124081413892077548510774857512075460844518747200239301165875577766026951737899266381364896572155820902669637557887258022750063091562025224811189077390641392791956177734737453376018063293178374987329147163496074868519254965990608160650909122267449995778970573317912436195735453158852062711006306646195503122325023842948790612690945555377847686593950430340757985523134614239361145674017657597895404005377668802718990024335950501437894214080980684506512395397173359922342690177280759981677734850006614723877284372329510120070332281430629559174378098156831944693979596686574173811385256607735850284776658958168731965817153291175390393957203864228639702546513837190219211821545729575049744142651193419791930498508603520611640075557859378458206572222409343136333785485211478432163614991477491827482810232706263504845563139366490592109224837669168583424683569061503706652762321056508565514816250656210609881790186993063746050003370890919838315966324026484983578920986454289669052126855451568786855134554201666405991248340690268749636711490223183818393503450069614052551208369864072683309088803945497755076599699912145079449286185216302854991228631387130057913952098070157945847267125324672192596999469296127138171528069306445835403602793064299389791207838810090437568557952381436422517234872724370097527650011939799027155364756551585664347554311270646562833983085282012744427074736302061689191454632426789993919278566788633208992238555305372098063774312149200961839725008386679214167949224848386587375544121106952244770073986189603878663125904764478760981856578513996740276143384257456042152718767171468538012801985258440388839012669704350195613197776432796394099895113848311873092533414363598160255999024474672245357966992236735896278436018616751640754252296129523887111812845451139817093066426048787503360696861661636486988642933154413486952714235813509480508840917071111091512454728855302443292114734041900832068955502727328129567423383558617428697761234148561329662931681192017183669571844126707961516737328186502911700379071308158172840106688585502234544641391010765357054891508244490162243200433258314614272696121502336520744121382678958657477827456604477740878568947668937214764359782816657591053331263118489367619045553738649451794619376080477395110010603125452516616442884378411137015306119703905733861132075175330182896540032604136506896706681178486277635431993758144307058201959477948213587577248473376348987126012720976943845411499553980472326837482622459099580182943643068391899804958973298819813117903080686150727556535322479859095988314124046100083276437034649260285387394114345135942162894350951675470954553511377773246955732212623542032421716489966658313056799481759037212997465379406816780649555871999319647688351594653482058410437655149619831212953244347127902264232276689269109900707575147964428228967602930690413041729423375198344642079757308323132729784396741244268029982030658443940986531717212997119858365450500505122886135470270896855904604552999195030286556950935677110373126706989293648956892211540320777285233286959733043310179884194935237347522711784652212633144454031367933939315039897996275184993536044571806002749754440470942820434175043036520332808872940484162609260185216348677998867452235828971517591412251674462715531874920053975238682125844394377411774171260307852351474120784387743375199313507080408388060745526076919489508727149211944532816782844471930691465211532140506638818738333883375487349694019700756809314293881596462261316373332842462858441691239950794969452361577052393209959704734320281919803788475020005259437198022723081251018528827496435145017298051749627131077585156188511654212386999346531153867645768997468817081891313135933226923868413408263576851718587173290941524205439756476780515222324249867855277623371358385376292725156200831025821651054441506556552000978754747913946767112928243795935975384291489574979395142683538056782254550031665456619181601979237031840968500404342510681102254718256099699303582914027263900556306551424699369651606064688310775861761229157366987486143230639840899046508752176659295877044732566668859605366994945348011927192519692167045216781705362852515931364991545373469200156936659132623210511226528035097803549345981539941375174430407384351219361944045799889631719116024532796633435460202921466798318949748987428269115524974742066215648722338685042644500954305036138419082375686001282560957245431857057117958132278054694004309872443438901461368668526502518039789457056695175837990680399385127309507516341787587968666239899739409942943977037936343895795869169864395429778867243500898003861531994718792045704103503810985457093225485122697151884622310816558978309627955262524866377727476199316392180633251988312880539812383309076896832954710462714584395271765888977592312887202483225372610424344198202144039252615503185714526069888633102213421269555897553693540586383729305914980226932135035500564324988423732720339605682211886773522780370813338551043356790450625636292842872158969741341934465324105789113034743431354868224581493154176859740625182293963079203590448699836067770503024926934514228386893895543052089959791523034123759258665464802297393732035251818006114544489718389069363643959026522306281160406520171807129823847266639288935196332362356643658803958493461932205990054655820894767886882361892777486026301201429409892300250759796987975104436430799533406435383240247694246649730209403436713947420684426917940327330751315712491466412726286702205736735401940394430134430140361632856982247097229225968685979875345376653721534538946480758350194796187356750217106076964389247352978527295810814603775156475049908766853908249990181540856077701193893407994994609905278723704833826154139616453206629187250025230504631243305636389882850476096730333079675073793042062441047617305172830527506323202817302631915363354442519259491681475145580728358276942386330226877853657485207411870180663645165945254456798124008244952497055523371716061919868489978804798083753662647626946486542859413025157413328800941235998006652199791667791089029515777769976242075516122643952673334259213476986554127874492218246480496502362183912000737902437985045832110416705416077369482355503254321069514502049873326101587134239722500137503275564071769645137042610562644966770596244724152313745233492842122402414583002903858692300033826724135685796266642074944003439536014221359481196329168386871596460836011992237939167841271788283450139364891591907000155578100043693853706321013154960833777903339588776965484795039996952474781698295958399085628556829817711082948060070276658625361157307929181468519767927622790670920740608864966246601778576971025398175102763005089986706909867066927865755854409204208967767132024804132880618450068612213659504315273677577372170506507556638603694813141077199466576283386573839135557741044947678691325223998817141312936791468664839705912613754514253594174680548365348144335174758896255664004097529487828600696195726111201013856602586753768556336116125990676369638307441995052034482585037318986403060890395832118343121046274420795510333342815265071258087544283712065705376820900237046373011551227508181679051152841389334970219664437591984883949000326526261549230101114191380331152123612656134820607834629752621839113766381437019559570676348030813327492832248492605516771363933518813994101888553669748242509453609806510234216028111210616415497240503967250327067156257367917730157378991408596637930243182355170519337430664623856833656206223246422369673726953492370603840466785842033201299988287259033806359576733332259343482606957684804791688058699517393603252105233855244008029700404661607109431388088314388614926089534775272197012850711100539712653172780253436562530562858104072905950218266436594943699108988055575360419860671191684779024873282466909269219733214852666823814813439558394851025692682483865681092230130956936636073723978121163480153558866933221106679869209669713960738059334640111173851314400258032684533731447905593003122056260649867042341931625894710707189564805514050087439153203604918456842338522013019516534840162198103943907210303738638415671299251342242929085982837501892111799241856526772523250480588822246770765792552983430648227164366133425837073106782386483730529491824333919983514668817931856971132750272203185218473733167638223560837913208679522242897200266137815434914045567271285537180911741993815152958845816045413332652823526733575803266453876144977103243838666445192181919027301792907939407797295996249889544901414643173848938672397284123532207243999477405488374883995201324479229566007931997672138010854491332094957661945816624625371579216488968095899300204891500196245200638359021600704477946877715371308764504189935114263281458811292081051051642667874175817072058170450236568144745190805716845877248181727746468143238304854211983382482049008836017219194216659848479689785107961912323024225650422849193507565498897390476046258938405234673316630072201156216577172200458587980841280305569271870989123935450034816980242707724691437622876522949808064628066803500801113201754395625558482490755211695970832977936321223480447021715428751725957322769552930732250433833991592626746194183283307880759999944363771338153572366436020416449780890765780686663896932611161808083823107616527692424303027844831142409834627384931722387336063066415325935957346352118170656101415995271229414031652998483007257794915211352262075470625350006742301431421097726548862024401003881280713848061463779997219664134267280787959586363595954561171207744413202080717346618296951670146635685868676865026524951165675046244612665380216828528245777453724684547582748341598733816691434459906375921001014940253168852902906948744293910042110275362772688452775756134473364513931564672827336558533879139420930596751170695509488032097732632732791305403351144970274573783438930013614004839677717161567032034020022607285544653167765908482147721712298762420195553376472462843752213635253079323696328943113666025060439114292534204665090079845064764250336457993806861273884333233980237822760942176855633275651123099255522443881611404150327107924779950350500568797233176342776786380221284632757181919381846824032855158549090293420265809242905706072534696495299210579643373487832162274464672784878365926554199693930704202672890750363044637159339684762091136177034912343508301501203731674265868507714532604473857522520835324530161892416040182036338859382663509229223714032780156505707560937727788146621262083935391023921524887217918634257199498681485615564161332088294545469878367090906657174303521244108358485134296310998431500025123753058824937722478837512698271056255676325433731970869705850998037456375783056953920868703975270463145450119107032724085649351148465529340160125405422521278103538843195765635279887303757360381395524875299468752176882099842689077469151092710342609431315756697582375959197754415528375951920423230827389631385547840650490470838429853208719817220856610228514272347857753854707987798022488611016440285869367523865906859388872035722595408201032873832072323539463104837089317763958497472194457609584609524559488113701570091906184844579777888678905529777010732935821722537960300513036495675200433868578965400036376714261386528587342126689753650535634965907014482685916557839423410361553960687924310429947454958734590184727766367492907143798985516768443761936394172785573218905166370206576492151328537191747445928264023164117634577158798354589276489772341412906800982859381392157601086236921049544040964799616952020395161578615667347671861493131128227861176859891781679108546128912647473090712840802723315963993365704713791349634248511235990333823795764208810758464420209068800110865982407681153691935256908807822134338768332469083269631097624504973474153800852405536083607783068666495406187567815376438177167833645959665252594735299703757603107973869541362433897955081706372046257631939294691525732285709297759154452460843770034375576396042913476510238638874109602346679391122657954885323686444600668346468837405055060179333581637719099158601257405339763891204345820643003472950921403452264620271015688909453225679764067859140562083265073739890519481010485783950070625679414190848848242292554734972552699780722157239560354302376616227405796090390415566384988163708883993227533169586851425243770860181394066131998096048635444294219776012523173163374592473388481257319799218091595451196534127157199015335190489155981906252194280910632001465020702400949643521628842760173093758539023330429398534225792445944379156018895486561940701070421154698847338626449984797386273672460514696636283731926036197063982267750518148910025169352960812967121548916117646504077728755939293135714992964096942379322440427544440794768719153938467509714466973290962660701565937670366206911145346493118043948810913405007117807071042806133148564869997164138252080148459390084596800149906165005687104570268143268080945216836133992566160297700988914942075242863265467757787562930388089727049130897847810850126157624705601283145917645513443610766029545094952942176836954968185512170315799525708824271474477930002431304405948497643591603556122874923590716035800933963713025930964004269690820359903137262318447148823087493910081024106631791131550264484737782783186309469406768435198352539934645538856606054178606559180889945297851651430156666171326684983991987419395539766942352152445458534030364713045992523149106794147525025049945224009009687511290315884391279177322297617516893643857710456515839017293669432821762366776198654980263678639486233078082455472208358173122062408172806993798381144523729865808265740414208808332355577798100992586314485201973939773274222200203757028330731420047346874249275131890582025185888728535636671553819976414777676885403948937675159871257513390552332116065684130960350447928618983078043099712062091666258383285623131041768302092954588933077368260583674414226084943149531526754065744173933481031467714925790357531375687902994864011252934855216793778927076846669154765350027057047938867625732847193343284690146569879227873031167765704358221675272198677881322695472732683886937412244655456703900883410723313653013868525696729621120677612387674928008098198144243380001982213731745304273756250709708521583789081516980449781858049619214356315458026660897678440173383237249896432710739932678777805318468064778569386075936797931380496714034662461551522358262392402903359090549884025137655266954048967808932417030597201300466622702303772431549659733086032764863390226007083426482927965918790238414327262658296762255200802428020251982154758009918001605076368880579630279263184285243395640581095288180157508773477389522978319428367919584105396925763474751634669075245969478845840198395842351091646856915898500767318628223953627881293602287428537896888470980694648081645175872748744216916914716079780523881025640467707002185013974514029955848710537963938369197759179322368524358199008761435024496499440260887253045418133850634084048017781223535967967670611952005989635804910929062860154680595629880076724633055874337385819768047125532445191471708348786661387802724314227135562516026027028603547799332620893455095898030440747080857188499721839341766082966359512875732380583772363778045988016521285566516839385432460488602037441985580234950664798651869070044763854204173460796985848069469411054821464245331930120803379716872753254899353084421908095998773820643780113647234787845307499572699833315591145106130736204690103373234105758250270767612349453060237524555114601478635025076408758268463144469826800071277655725603513325976055020423970099738294401919812578916035329396557152649962628337950336641049581604119073416098974989365186376958204035799543455454579698033905614730913715964039895632648220892351753093828873580375055061488656801792819244531168761577491226653143811679855711821904051364060689698105338074171048561831918952799155974466030919069542144786755334399977466930425642090866498125897663636178463714283496201582626345761419707193085305465812800304720810276041560487899518638927887082372354432831308033016895942061846359895157541474578399822182011033743948800400836689724597210345298344410108868470179865857897641191023557239562476977911556415690214080598985895216611143647006718175754472424099736917255782186211951329378595956210013828073743855073412497519242193658421901160934196655106043900760721157070323201269389583540815634507242364090945184507964489423569620536938378479377259398037644168921108433227621099135152654944958163340255391464094772188597545244202514697555150126114444296973798696395638108772029755161114714009301657384047489096587624687221327209225167531669907734287684697293460330859349712706868411982050354326480115346795766401759083991385002265188079828786802009084121896672090989150130180252336385891404971312993887096699969881996013661950686678939198431960938531911748420100783440660446005745017733657207176911635865760680643349476163693925628344747801464182821284378887772324556322081064495859273599717266267945249301044031048762766855755610464585244839736348077268705005471625410950532174974604081477092501516624098509656624879706943988439933563841443325046378597465447563418875319773301462427888810841176800966721101787983831297838025373610656739588052619583233492708624960696499108099497751527788788602051090062432830303338944578417211513578960089808823202791589889816249411227451803385561734340353203444021129354649675014910298373595243354986823637759144407158397764741599888984045169516956808806762210199841995413267140597114446183182073999003820802071409735179918819934949641437052595728813870966879404328176437466961807064856011335643159969086025442727428000974858340920958878490431018607882204516558436403456985695737521767033248934512195268788252592959213405557537278190404023827257268175579049057406153588403761806383964635028770734577418978630374557780625092095525199568126087714419129547091991737014457480409510018471053287132352000324042081437975360427477956962517288037838772272435758224773994583248669361919524680878256879425815056871009950792902182965053453333373857142912794949984488081139976551105304206826133776518137605330798503952083462305935658410198824411446170545635185241494011219939177181003865314146105701051323897368111745267071048244916945342181686413663007476512271030686819196214805503643677585466358007365367399993263029040940184482405963361711118693200644474686679672019316052529344045926654810778046005000280859779919974801757726538463024863298419273188126253302698363903773341472348089146742501644583142961489155800491659188344436910901156819866217747303931005249378623479956339603154858997274218946982431228164008109354982425315552705962068668113424223309446795420531621383963377795703294222178077397452318069425298628022789470204493018739656124548344010949991198775660251613974840916237040095492577635273276486316816240448644670719150743658106898028336765000354368482094332798659076316381662018997576176264392722537174724127144223735469125936660829740538919009161186573251295824063073329404491689715576384007792690092953595446216518104041938437825014668715058949799105370496189941630959019233448305942177606249923449451099520728081626910471853524806956143910899534342542495105654713874295564694905562272850922369522103400012793108368310141150675888814142405647990706910529368186274142823510482971319998129808585563053395897903180768401881693541819540078871565857240899276987584210695032172460283923157028086799594781566708375844395969432978564195584664528436005973832621377600046178075580310583141764008186115430369000031804737808417869834251347503138220879230064528543817933338772407262035287578396106144662584269464231225910830555661287092375307539098208739096902743438274026381547967868096806720663235281937763462845625662049059019013341672909990090224937697010956194829093470093488278875723922971166684372707260925036254221219813397951919400554663120607998952483426967618098690316871660097114580458080057132685442147321336669162931632308196056041157407760307029580349452582173579234519911191755284804184505794902867090508035796032537237498064516719067086531945487141507168058805050050918239631979342415033869916149126465639362031051098329570038813329585624739923901684573985999421118099656365294160014795768374023430706628957234356190371506082985087779058521731925052950472147346026003813394721544578061063231879175449700243818528572195259859360096478248730844906594976623219996367123136859741218384148106322530471915459616815732815964598896330180271022976602337382216194223027206519440594648628000135527319846972667400468715745880569646675678823199358694255712161559035595698498858130080559401466641508647625522723211949477294930903379323417908561153587682388707527097051587292895416473432553987988861360609517503837825169888340182140853437278925371774956164449661116115174415677887454911694977117355308382461244782924377102778027449442481381950754385070829680170085923195548565803244687162477955147627863843520328232610107954601407953860558362458742195085947489758178872325883708472595982940138351894215277046783023430628800190123392752015050072583788465664830855900426518067994366120245510625857260400606839239811022363300957742413117095600458330824459990937351694320275034936578028766273849478626514041778180131074727610098008167443087446041302247509321725579983819875034776517317843839140779928902038547443343898600470527308473823881486575786344071842682512702838042897123291215107138858241502141815189857699911078137749666841957752985124313462342092429420175935507974472902667440661639530819868277293341651932744239897785038441487959634254291831064707467717190600329836703483240775783811651630867445441611882901021690853532617390232602495147874146268622441337869737993091701606452869040113778129894865809868641093940939872758918234682800236003700205848036542425356748297652403192266196181538064886192466823725777811519388327511469150604149152873390095523274499913438666280827374129504795154865968685500026353497985810484683599929696762387837145494521839357961521815562581193738468400133143153467740668703591363185874519157249065822736549276792109033285895261621615175426745263922574334532863277781067312243319657702267135906641544338457916273543624202922204134990364120843481057840904199164776929071055940032437821068385709753744366734460313523726482501608827607776582006614294944674314381720646542548618910069883629890751255459949375680840825577606695964921471725591125445864897783004666757791748729729882213661202341369731231064581866787487771553468276019978377419472469872797459561751719808354149724797992391042318997373227343328864606984793870271367260686975381200963247406633899470393705155935783383005074921953831114685290952423886643093534567520047669864525488224397676066239153500452960835293770254643104950367071539954870462122534103183422550749541619657905952780128710659871112650215817483772771042693022937220771415628566046366421380186589090749689013552261833292870706324827045911554968369137098943154501588859169068831897257873161460348691706501344872841751384873496025115809035880867442152059180291149486097233953857911953498376885930868594247383050778377691777906569062520012874576591332849613434150339194123557287259406158454182053712828293404154840488438695256343500385144506545526794516988860615271532834611817805968805871810375844469175668250496987713545951350228996561519622372102674796069862968659839256815013847381094706377591387195190925740932408092974555916854081152866854957011930053712311330641844302221772837146173869047968572318579011679615107466369242654851910850911131485133048278742803090013707071400321111420568173133166498678119896449820255879066583113386968257699703720674572707685580972959063465598879369338366647341090038789044910858288445285346704154405901753368686529958306617496743200545370891640982587185942549163264121878273152610129186556333369368355275082653429498729514924281060030537800726355916256013487767534569947569091664394603045074267009266439506015894312369299590951334366856912225119733760118610356948433079384306142999432036723740360603790142425158431094544850746041202502418703284049567000650336629553133953734093636918616629480478390645824318524592541057209286752432631816415402422723101993767529745511689793778396953233978898663327115461536752646484875765987602334180603989223388866652554950643292664667115566953764708535902838083830635907535509232462255276268111317204241671269129463062631955409532786842205890523488227940662164480769757966227607391007980661725818431857768017502175336373277967849870198179676417782057722335984971049007507342043897607804975994426306761170268519798079365775332928969393592910429259084972124765345541212609824908135534201010214508894292905558044574650109818344361657062377332000047456864623288302898489917132544736955523640668762107497073700271013742102849129053720124339618850513997764796694455933478030815899971792087427776583655883535063948415890769569027238817018298265273057326632397371438435780805324969438764314871306674225765879227234955390436056013269900926459857787024425168331658927429902236947601261036583590529228691100424157876151335089298334857238057727886264349504276709420578652215709978676110164872469036992530654033531804666391243078437635335913776148428262705215841459740291961658236670813652601999988259013751938495166191409791179113420838525815743731236882969505639770885298610265264188058327164995337174119671106025048110055381691855933260772103050383350511853058597867372490860044624726512182230918436808224886958115838424992074876075004799357105937756187894061900890174179100661548030304605158826824121199468826440732659063825538476419586649245325757652379849048764656940714384182564743526139809260561099822222807199222853818124047017083767026721653752214347096447162678783955438723887588364418919162882674433278285891004888793731833689717678779154849190670266249444104997009874101587977351718391475064470263608359463403269776907957074483585889255513513329916344467846821676478690792891355080019024701102902122114141778187241375157329785920719803535584450053428437526779182386361100719643983819991401083842353921895006899850858121940959979176730197799843263092798239515222704906313541452310982225948341841396976496067051405587351503582235135584877441343834021915219694150905313871741758587485748624714316932891506847817698460252850800987444096010540832102692910826395012792366998330841903187501056617073812901512969024962171130119976282120689071940096495810674130693943725115236175302007244886305787986526040528438088829791159484306991014424276841575033911955750028374167504213749687103915613135404153112569764656301406468076016443871851111886470026837106279072954025358898905897882784211631073714683867199263211235165166286394479679060606550269401851852059555388982847376244327439385254618323853107740282015423373308541153827447377459381677763022570813967589891998688876832340258275054438193701720593176377893077931917511235014054030051254411870084131588011768374868080458491456269684506775989886356578668566061331943265998107323190092425833037945336592662237052262228566972208035278111171723113510629906537148483862739773279265217636415587430870390352714699495750009977004058580132653563926356624503356808067523115072550168641508858767639860670787002590942180713061556992821176279760318798485013594581698438342306935828804568861086138380308776752269016998983615434950413601980208642814948540064274007886582409954248279631287086683549802445259417745353345446526795072833208763951007463339092201274406090521760417326321895191725325413551708953068547191459671974899024022105142614782397294620026528417212863266075891734178957966169140526767682575144278622082139666685030991010697945776319624035828875020719897493081266638221199692249915618425519216295783849029320476039405138816848190657030999228282111984933040052284533559994382980504960950887085250598489709790495878767784917660928734890657054670920302726751504116446439589409519673397074739582296849686361486607199027381989460876320006649690405864960893460901988303845195672115214858572100228447390573677295759531448362860573874508216830637056006802061195588430155760582509909784907446278341816957081824022046080263442571205954774235073101655623917337176118034512085854756247712375495121289708220219145293848545442725738106250832686553218858471281838700063472731354004183463786115443254235870134457954041611148195770655965543101421437258537597905512912212978911549293402275975232318126631820748311326793753185968583997592015006212578412371275754783232111494622751483036390466682917559132211318458208971418856182238175025911777837955555953475540048117245724485711896891528742701829921420382219193836741591511492562762576539402266999161443789653456718327684525878664297771782949365435540392910267536989866792744273668021685451408477364728404484670101125573880492931882521225341579518161740877128752999828508939510318090176335849477131831453230338911277259108339516480574939450821425356637125108685560209871019753810896736773288651498261732520457636996068566301975076001018786212619842945356416093146483413922755529880213916680839292260737921509965854356291971680095863855118021881282062755029398076976784120480438465381014771575820296377895771080647666160237341167299687024953536104073622020690584989386187692584179090375543521320843696488669125352135249968033490023171217424902930505434984665219127122898179616089171227636210810533386605047519458540542213586103693288396275496156211126184116589673987594865273593298062203458747687577952553140640591949088352751176951538690098010265496387670176574026041130159029682878101147158898561219045905921592237609096397638999021211234104760712816303810874484667644066649032198313047723294735241270033587378119823081552587502594871799852784566694336271665941995091249545617155927103200321555585166652056580661908082059963343270487698808996260997472849849661481722363817607972119046072042279570864650393945400808876348748390970458106939848238462380158218466554601552461517619928406215477471392927424188117141059991450652289527378827286225389682782607772907870561844458557353647041983390483797296384564258400094684714863038541091600570879531224239806672600900092897022863424911163008762647416770535396590341581907149433519290347123087501446295440476225795669757272571634722705302295101503095067333225491783836367236786731607271022293164470199395898970782105859139514193958528644982848150877695612435905234172500553964138893660030642652613168789853173622839990111741374233468562097199397933799117011951393657099779871424231108660992286234050475070906900139875360415696839968885560961137118521904522601072612337722370656816824977973350206745885197253647664023616924300181884096577548948660645011336163692703674629613474921643428845172378810321121169508587661843388804771864018930344602020250018410127026215861434474962094679774943887453938654016277286741439590887914584738566381701838220885381130882954133633364677712489465382856905238950979911614523115565105411567190545004516176524983425672571019038224672671698352761907721991148175486990058621790280763103904978581401952338075395703525503801513744128112886034189811039502263301793155925364471461551399482968946104838103415941306521438797815478067583997988187281838697259404810969347949543931233721595023497597664423698773513619037652592176324585380404904460563157140973521461250470410118694049130139462879657904819176422344071090944740642159498153558916984766151404929333011771869334393674876725887636946630782579908289094217722769712534780862443791117660450298269351689587181502330164226957344168797428604158729184297516435357305965404339689622250659408415023603283000978175870756235049706422160264939282633315051129117890630108924917901630981556276249585024671584931736258846348289672445714517021558927833690223674824582411318753108595320828787051419720550592249745797978416480481822726211275441900793798637732110164008378511079357235061090574507988510283514901923986368952228989999661582621270970409442381972366634570316292954823134933571723632182505595767257148719513257120313621973838610063411449960372952755871617933537875690417552270029173130723211424809039075852037208680267632334277611795369561141096728376855273681106673129108898469455514262460891017365726280556645920427950707242799716871631826490813039172865731638246726204384256425584043662556274223444948654449334443109789593943199936563860226105627714735727839008124008548723487491755376225826215281102056142547900807171965573246176689651823908075493759353784027537791781493464912327986359995338189177957890732682959511206843102661162682437634482347213120750620988444200050776728013429217517184382361544336526854822473813790719237613582315080008310444054091941852196835614253338198328919042297029410579449594669317790917741918491499860586890749577297275558834891721517038032942395160689515787300461353361249336366177502617891805264167198067940164664172368404259634680556825995251382960555813869325641406426424744688447221693280190879534131474464703556176055122965045891709795167747449705405209843494136738125211177842735504088624424140957703646811984789259539631237177784046660090925424227490306724308925459665330456841748864746431674726171904957859665595316029037908697756693259592327226174730499649810056160496754404038565579428803917941101756629536550233999363728119989471744479787066974063503347871810620812410230035247021157857837899208790371893719966652276424618703732883295784086669917558737062487342541310145009449338019901839664030113732539762150945772826810931427906394204463095452959248014987328798370739010536630657911212271242211860515005648170384966985794375222351379612136952027043776332355723886430842163985202255991956514995642073267374918489347493893645747918311872321980229253142456220785993329656452016633806690474057895143391339324396463101676538617867255766594892303464393545241400456606061199813531472336520033053165240904388736161298345092704767531474955620461607887086035017546572985498392158396735903251070825779207891375980956781612414641976627071463805340840044501191135783245877068007504559982080988819015457574141128283522909358320350647374364212002815306872857687078843615300135521848544590672009003791170677636935261764777964572056547082229259713598725563246080400558979932530698339412442378574845365830945020137109281877022021313969533713505328384550620689596161207663264508875751736028970964339608521198709603879158882377997585204728283781863102617111896569588054925466280596244883430927827114436470029375559444834381757657630400677537221300340273905273286578367841484438609414407887739897367350450195366697447760384451440051376915199132648284505873054913964593341170660282171058409840155238891136126641544577310471383758675887358928491769777431352912443787399962470603911764709297523764352004366019507244349519460088272497509637078328142462004609325503162477583401639020387529934567930609022161361921999410069059628132465007845828647355531079609579182075201315652768073212870397060179286315526617151144236540813520996836886094774612421247440391949255979929504784208601991527609894434890708137324795092191515012503513308818515422012385386078408344203229058157507926661767088990985667412057179206341879412564125892341666690702618638662497811745389100503277348145335214034394234316525503164759485394669724949044469033647293168103478474274301642829720498558586540800424051877148826703891161127599228899511950229269739585335871088830056131747789597149845557525545410666713690950918620022507586448996273721925290860838905014745114124422933870904778693385709293109010770146008249931189000226008266486530441435006337663804956177933009452831346096935524743023846008469403775391674382711760232304984613526443044668384879579572865062118278214799860567689682299486187170978536111340425932441781195119808365875858847065276955740142666393941744293988691969476993166700854041172354951170949186012555990613653670535791196170561900902623524578054384193271829783200287803401480282797750900875101956150713726890618167214582528934268141878674101125638792166680965636715716650483926689541631017775992540214952289360176383250728030260629399505189729406884600964555296660199325936372691894470230938095253357005861998159139397308889647748373966363913740241287068181828526285629939265500258114146804342852158971244201965707319182204888787164121142606658540960152972454011632495545815820248539263098878225536639725959769785866387742092654492045584667069128385175314835090029867477344015891673904233870280908813381110847191600952289447002940937868012240510728790726998300920133418500122509880362817884095064535252247035132030990607158518288954838000944415874917266552800041914508252111068541719548382079252663115018051974303354920207726895786716093864146982031712158751684610861174714229007925743311743648630682027812479963183096526664738898760720033899104105642323132413943122477623445019656128633958832448464383967495065603312903227572813161455598451447312816702753924354173682590483770936576189254075588304376190435044463357927330885151543336567694771970903820239951568046437742370301362588855611609055103759390230232815053188452800196134548818660713250393037530807087168133370340500857196585466865604962603645796456751949682267139063546346549027946872100103505467743895563760486214356579127903143137377196522163723525946145404829674903464459354512005751229816071793548208322160219844379731592297697818399756964645499475859232548596945598878318961347553243660709724397558923214185501638979299249583385674569046022379927759890089639079489529020825781944707986334138665776197703219178806215716525915431023654507232897083292468730826845591248907621275103797677797781863796831135311355923446864078610716052059918049633617884589880144546242569576379970372763099958793326414058794272344353234941175380448626429168317605525179571841796807650267105046099688543590489013504129721283287653266137368996834524187725278246132559612978779430257454133319638654362502643669517131254614386481481693229789292333138441090283751219979153290788072609637377561387404477058645407491326696781851019922939927046737075048801777045425119460715653495415975812001412429901513667452004168771970978658583570761455260894582802172968583124082313869201915115306662317231520510350721486837838880225493095955920807214388589088617160015378398251618130807261830277863851621037776422050428326168438387101416053278993554845566473281717444868622913518283537543539700850186380032057575516775519597626859503282577820588419261699681118869064818692628304797142160208662282711161692353975741798324561776701818153404567514927084551480545929856415102167883593740822400575655720722787261039729220333434235601346249670883857961388570226206762358513524010832433832427729421790215503691458809218586604726436537259135991588475716575943589115543309319377403428505127605732398616205679891680442244606474321890130032141791910344356698289930448072130191393077326167648267835964760335142341706612724564462578833420781816201711154193383294142795269887796660526078257673894807411359069847872756338387186229192350158769769388714612099331776560024344029949321568086941705136802532175937813305629792948800111147505067097171901097674701628238546346333565880811652884332935731555070374930934306554742032013920606781192913105564676796329808166175585990942360580122112143282827996527436229584035008750399202876012995624803044546586184471731169769348115220936617097792484335687854194788481335882151646603696632311211001772552572779626096716934480157026756147285214280184365090169970717832522118353503324275919942252956660536794825990625545178688879177098087674787587253598569700157823183950515993852663253212102016115256979135270836893326198413850054295624165936073038591116365509626473053919686059911807478817344129698085178744329762605265827281284046377976341310246051403797854872941235041639675461543208731551891653475018870277886195680867233632630241463133366899952885226150297071387496260533449305878218505318930705654215537345147917308416164624322262724190239297467461677408156782193582350466385597104124856645821519546813230295322529562843022136342595815577555494017983464756973245569970363599255566669023541583368627933660140037889520745197721730015245795035033534267713695999681015888013488836181465001013565015784796008682413423411128683243288026453703880654111416939967689212919150263250956600301020504713061601855415740931170854655931414982369893366745904045576598230585348945908688282170027460367009973945748631937126792023275502122376729989561437685619875690230732500140845355182482031459094163165805990436255689266255478214141058305448461141483779821236511432890025741974250761791078164179360351562386673868841802657086436377666190215543472758364870842210700792542859770687364091870404863984956874229902604687267702092644532015399693771719636173320327173063998054660130496483788701441349307281535391112436779217425964701443390428640303161825234355599429566030210464753162201498981331415065750276390177132319894023146598684292756484235575794857143012056040510677434508071792653261860383197635972963623349446952507834144623181149860945085062153062325542270127734773024447993033457641626685949110502084925225379010085027462980654758457057120949935214517718911111796488645425434241384038499265414845414182421906832916046300532367816835048374473160231756200466701120141806229745040905713005075566715560399099462283401735119365225217260793295096874563674058261866618774532695783194722713691243059725294571213630299922426594988068098326372723904650771562645114096477934323064491796819547908663318141382151942769568283053957345649826024686948845578829118054522249401626503430987747794912507555062358516766549969862651688053188272520830458634018791333976808046761901131134138134193822840649111216742182548083913449689031181820990514386142340715354754750750243844887421807501318796177667932008313871608174308623102069208741368326141454981878021406206253433050436087896170645810863253767859766328010919453402077352692171416660048787106827458161972019872526917490810656769785143832367042091515858637731976174266070533548531518429174467350265458299531384634625185412058496284026292854020116405582694821839309136274848616753749933986423044953696256888444025774951066746229120417242635746749770351849848402827826706171250942725585867329039038256326310484050562342168159156715232661512905967839792965541015883187856423139462975813240953168527153964294207205220711385271869291108252808742240955247655247902522465751746166039945091186811975250819847627599927540714767357639293263058726644447460394327040372127099534435280647947817303221913518203884547595708393150152000336530159609908694677534570114004678869404156568544104116398993469151034181479761080129829137179817839660273978907523765767432260344872552463192658116390823243121711389054867702169392823043047788296808685930623314953481507310874911044678778270296756638324873055034094032419878945437854258963270889381266510120116365591604093348631028148412831975182474520764551879531321289602724806919390829466006818622339398852595295658677251873554417541113997647854792815593744075130110767607961512066104503994531800501255456114764563636759725131403228732678869897545630478505233115055200302519042155319942904659160649561356043993289270669094700570824478014813041587569836066487424004988115606640804825286108624279910777711983512193583189191061912149262569828518126679508671337559008889152724234851163936493940204953675348586840434079840564125495045764172324713749491548243587211231915764905169437084530824820776377193067287429299086316287071882995198194261339905286420446020077510660798566901384619410167340167667485597469109625364208292088491813165635203091009618877826695482820221236662217011215685477390272341229206306896982279443634871151438998225851627013459870949932510661684852001906616774736857842795217403632048610433059068310769190699434562529021655706758095429189729212145599953846565903863686644950545248659860058123989961713441477966257633935921038402225326431410221232012494168981644535686966863467128961677885327512539538069858713076687758864211204583831064190079356999501203272247443919740609805499813441820062222907581053023752037262881336063741105911786227808649675469246181097146049711446587844139491292188844807194134080832574125159942114033790449910651176781392194238160582293196018856249250169755168485386559199716652063560874869441038357292369049499192211426409110700951434179446143306096685752149094648798615230727421683523974453988261101751374110391122792151791465540900248182866972838601636296212490450469041089591361523948058512204704539339259748026274648055624534916103581372544582822240526122182152804317604282417813093017249373244577622272310002244208426570184778660953077698478458853347674050743899903159936244322649479643188395146219214045919155242412309637850957251033055118330373770643417593159196109955061299094039451793794669623435005124163354821663149945623000812951569670661707904515621207026676714031243054074484772032730682971478635257629112666685351468663712735005438340818104066348019751971943385560800303406543136475322851785429765405773777121526237545431602437538780064452828118868544359804967832754572217112302402231912149684908471501174285667850702018251730597420173606435847515276421661620378731261519657156658110898936140743168822462025568414452681236520099701869266166747383871706757609109192355786785154261125854204541415893101180125543041138610733852267983950996812280859736353537669248498885627492039851221735428350720696209959812678274985027809894415493515703585713964589460336548575593716915549405695213279234389100984104797919541440216286256925348416230604891302544334403171140123485179358017096796254782086644008832282493127488672794347828110938589120667204469036721202740305606175697123353838193092990348044137783284547543739702153776237698391602350403008353075657909362766355726772373748880970966667000654069439078606937968328975071812644931352950782145186915785103989188418897618928401749655119735937223688183033316136557953804056790516790339916574392837619873591185097998980840147339670178988880809836224137903096633724838021551818739089772287740689735948786224052647598205638270359254823088472628681687807065838469414449010517947340215761356175909459995877426069325699921141276100660063002837912047679937208085115931296564418405517909753811946139324905618083097326910274195366924204517383465625505779273786187046122708583311540912503722135144053034071078948581307062494090864977119416679664430344622517434278363734929623580113793067413273319202283594689217082399508179684795903911424627217074108083450955438296329047941362950332040735175044692533191798626315566458332485570560347096798165336400088930345599489300597796072659826530125489246653911142918229728950902957434786260163022937534950438480661711064200292267101197385159399849038186463937694747483064073936086904913788471715551252256906867339496701269661965550584874653511200031213073808264710983554229459687857977320556907135604398919273791191057861987457280635424320155838006594865739726583274989071726978981731071137404519046983458912389228430625044871076247673677028762755874537865274143003362967646700465429015352909911321818379258975081160162594479630758343223640527531161297230792781814262496949749608492872254935032914320036074642888010326491265521853793622110928215428206629455549259922641500422308501698783424958979564353120570264571416456111405226532542877022426707907442922597757222388213117859434390133837910430086789780432068240833667030255160372085406462668726871930226626884200012553675445061172854651415056651311474584535647375163763872493634209268800856222393387786571972238024729611786176443760793936531140865926390003341972180034039131575270899218998756325753368684243634058917496957074053993276595182383509877955820564292250216816007125883660131307635263713211000475594740615521732801384935179588671428684260494134155050572035438412771190168924531969006659959050710657036019015963197524806371840497505845759115052701246318453104981732547416064428464349216386751152190288965176736192765795440231292978435398352780620200331480019364621045033324682560791597090079613288146422342120834267448948893797767496051980510542275148362009879125192208934543057649138782862530262695325912367592920765713860067567583721558306621125062832689701144398555824670527961588841881656739385913468767365653758055706181924866506843541526880342147868682309260337069962008335387275456314143651119648126249946264830882765212924438910943236898714498307676012311930215400251194830137588851512508153802355569854312881303328188690732562511624041426551854052937558674320222136743238734167040644019805294631220393905199558167848401953645194288714877627577540001865643583110379711350242414145474559045789196108837036727504255734272638093387341104620868638505251998992087181657091871110132879955699733052303448946140900869489801488259501664608664651230525464083290196336674401811555091527308883652311810068701608512917116992293791579623485688179637791470319563133652236548297650598667505975555690843076025175134485434640199363328502382777216566920888531330846456915114779963872059045987636049089344325128057341548872178583654737878282535721655684178039731535764549470422196011110373242124671580078161513777037278054936326474249656374729373728892354064873112197002265051522977893990874010535230164960069287013912196247998412275284436783012668951556879634947021110801153480365465990262193899546929909877896804841584754174553044066876309505539261598260380920606235778033876813089487664668113988567653279337149918660881428976754293050644049794000746866840743787477339975448974416455024989524158011510055053542542888711767695609323787591812386218331202771370724392598883132837604880821522710405726456662889595939771323016290467293461786680466283994701521529451644008096897482905741754112524784107935511819371346396985078270659699776281513146893373523305946532274075428333370851456522083498504356445936554426446924863731403983687994691600777857399109109596096206334822323696411630518516182086827067448998424705844210656576999766222417729493250626208737634783163069571835646279915165923817370217155480213047975074396910159330592951476788556114336698993895034719107077276181442186563563370442996167615461116768367881630507848398122844721298224501527143272102319767274018103454886663680212731681673095643096670602543806618579616467258288598143076472248680167303128988060675538229071323151387164368360305972730222785272363931438029414948850481898657445238690568228012257622401944059704765924166413754651106363886751136684774819443257379013897865893730495811786652976851642765369572001092214927325140319734221791536893921814517159288756415186429975625913699200900654014532563079406474332729158192276203602764423564182894608861908293151532539538552273234777802188198850098037208485012501712284385155517417266454589274992240589146661847852718351147669107331910219210859883157115022469992287915633867856025549149728866898838550214618964084312429692945505268193347933843460859856977112795403230786988770093477783955436347579513524970662896691831493790428472444705194689003565843146787598176967594913838197955770112752924345816809167861626117518122171271876734014908511907162598255620488251497285688562297710877942008204274152606606433718772481195922291154150340901396246648394263451613937080994256828550220511020544152982011146455175585059371810989737383478403661903069702088127176398088680417775417680875916750460574093379789061703055556410123001888058854339674149782976817398237172459001934002147642250981016784944268145963249151078328945325605024514610340042033528915804906202983593748468440117642256155177470062730312876507041965717608598973138481878627785347864214663800416284599310388846144600242746511956661831397848916284279140691985630575387506658452946126545308056077064538079749400824313603511035487900334394568285592199146432753587858852374875106173278934665955022130663384995836385593173291702647862266282647425109245062320620749839247197779875042962517198068270676962233051926088338814531421871703160705222516850868555117563892890345290785326195921023224745150773966855642893359942215706406846265045526699563222345881654099471976941566097126022518612660008314821648860419869571942542904606474221614059183113791338106416999962210236355598932367492009619647962065629775284728183536508647608976938301545434801754515916823860164762905246384102761365246485413992727780193271735666373994048784508315350832246347464614470808195891777926733524982371613526431639735997193367349718025068307104053918237558563534807072454506052495391885415210355703147074564882256773872313703953284172298144067379934616868174246373283039058386423234648871205510950336681283307564182967679915877667327307114192743141635639993839820260981462220877969134491845971659342238567591751959938723446462666110707920900052329378182451411949452901160959433516909301856717314636765643652573378428705071679197951187627104360200989384733414310821024697219503571952229041506353877652039008569445952847542698557948494783481831200714056788774742008883511360981358590713390688819887498299032113515599960622348039618546612372592371345028460784688523239121520887679619562999000276418343967087997805307933301145639861477466572843307962959860448914859799691363017179952032036887096565022326102440233723213249474562608145490460449810872840875432684933731021539447679180290436708974526650498874721230399970554443997764458536757582142177877047897304156156682871326524770147427184114551356988471525272857441003454436537225400352920796747192216421848442223039418446068242834592683036037495276442229563727889528736886468263909236175881622035037951249769554426078195232385319218062803626652033199501241062879573754370030360019823705074150468338169811917045086346496996329659204820204203512558985976521914461043230749645604697428359538476870285196669354840280764001570859596593114304701150928892542500874991928075298784277696733964053345534396357208008899152788482210134396272327744432333501648561054804494384474995676253609372185561829606692650503331545171383854081574169063631323658366137071924534732683915989022626800819835737465997471579848619568131997040276101475209975207863846295818691330474912934110402336943606035424409086122753897253527075678052393717923067642146220723239723287278984165245144070846911222099853879328329353668687702825240143476264846650805279150541531490398798068157053148887167795022047706401355616075904193689556254362997300475364134252704152018287585749281848632410634289721907190642844890151292863735092439119387922132203537823532823787698304474777667607580046533523403600835041067930906492205755742873008681670692936115263422462984546148260977156771134896803004328120844351169241935570934082537115517891742447940080050588735030980604352355761546504353370617370818283682861672144090074271512371658822400028621474507404056613092481759577444766224308617935022204547753934432546628922898151718967016585347884906396766814212283703399798256188704413619336073560606540428190840315065780061090695189735091321925173969984334107852515070271287010916372950197288908068160945291122413795738954533417203177449102720620759618871210102933119214560208660534939317387434760981606791528414160158722562544064235930083505195903912749072947049225614673834879856955929943536062425469746117706779520774759498006707628322311320608966487196323084401815017166409324098650773706978756085528891260364857208811648672935059941878212344890944192042397376245587959519963008587903422207478828101197411070537432424284032382779304185067149220384200773905591836923930901586423905410112114099708776513614867399366056238262655344096562242063989807381274510776221463180365293910093907193274025474171931571320024333029173958889636090604282097302593764907371236768931121462729791221437123647713674851894991667611301001396215456495554890237825556869132659610223260693911401905147527362304875414551528186745436651129811797080094102108330721743335498310267482129161954043358127034088811015970591446303950098687999171682111590427736351659742033017065720682039752071472887875629444024421696696583522702522605036615231215186433293082797568765261740525789864173241108887598555906226428073317832735159559545943852140589107761766784828359720502657919534873141350249698953522971941232384054198681304542994090036647274179713090508897806251382354631111883001774266323217797471670123119232905043228777811465203811242343398143760536148825392158291243816010816635709644892584941963073034706900901704036560879812046387542044917901979296281816982532573379610753655536000009810070902508014569090322223578852005090269642115257915623555341946419612928258291392401813785428681603594889992564630357870475139933756712650061364297866647353614803493591074685893349243956696591844659569389972039611152133156257723461679208068971172344303334857688571881808706111386000999087373453449129493349837530717256034810409214721437997540377660714265229376600848490795467258323719982034015884548335196518662216942385327086447782033516314266825227016163029960412299195180604999642486642585648564954551715151590340674158331988712059262106468676424433333359049203284317140877014429972881601677072452186227349898448815363221670040570146808783452727026935803292197461847120478447511453267626632699068197478471082385583069533326768476047587486562282421439415245489798821231154785115887945198523333069518229722646043648832913838343237492736569741295539706651911055447775310916853532417384580027307454443880420912880539761052256013111898667619178848155796301186764823506923622970319805624667413970978329701694749583715738158301424428190226265201748257538600983836903890337552012116069243705786665670174002096606473059738400510882283946752117513008506575397238132238930356098750647014544537657047753287716569232692035591388156659824355458404149542698849879651577883415286136458711324007314153597157628195650778778283023732670892642400536171000293863377073782768632846073980812600940785818840784992120265372015593157773611851034018002354894882717492860787635351158295332552289873232028070054838201105769106177080687390717864183264595355137487119676328248815602429731772979938731210413485836562612055218639213863007735870474906823088857245683688683315686763238163478356418408431030589002700470698638963969313606430676852276405966230488143898418076222605561026659638130952169700722739374174750090806425573454399831964280270483242708328159756231747228331050646668201011231172214786661497508022827342436284596626829126559447976799870797393929398017265001575316362616656973602121306837314751216068415730624951126699214947755642393238843209244732064698208702136245708036282374863240501016005974037931056797983840952071136933479373339774312259385761807359896189398157802982074184201383982607099875159755950137029014689181854868015894633821508390139287961242885527472376196473303806564641423052629997253658659467227896709525622450008603199891385868884519627237836211780549244281665524931202157051678036194685110398714397378251798003535685804254234442125665793346772507193367556111774005065148064106814072331038185460723885245102152545972117047310515641929282437838639266642219071584375263433037668416228889112071031896377603822919369599907037160180473628860556551724705171819199336313558640587038712733606807427667542986120959107287468826079178931984306369645965811009429277888653087549308894481041862311257306643610650411291853640562125043886621337527557430257012417068944762121044874874866490650942776909580703589076601893426668808082944381353385527284666389584009069351653357589790330324767380091451077221485259129820442748778833033113493609381327828326651341943029348373523405956782558912590650407189640979739788664174716829267129315156503842512667666744739974059351746233275463740475050892625671732478084084906641039288754584336867938757188514062430586222723262394691798639111829343972882521576374014880866826350103401919638225591626315628440173233433741200391431135363277643251099543476630907867100142316932701001082226982500773556897981419109298081008072608587242931409067106433214747493661313557147215255324244609468699765659597478779574027937562661318329476602505317239240230709081419808031470397531365582942917825154640086534125778918741227416922429522544358439848350409253276900850806015031748003346359635141412465929824285094280620832903449974332224128007403293620112114163092174978919837873221055650669623017149495666266102141681089419843373547612006378729564438870579363851937680884050472084368037817928016544637744753517424611745259996251529231366721987001293276255028283096650125425703302238423017026212326477425250222028471341551992788656688738772719968478124336143415556209515165361522500572809723790971620451732337139953851461321503362368171666028552931724875206342741378660753780140250343436258557822528934744388790862521256545428261871216937122567755843418740411716089025533253418456701509193918978298884998287718620209191872902200539587574636912893277535949176001958980433437201545769249176323053384864565031077178193134834871379643464129147039142294162491746197584182611031328530501679023231929029726648950973264198235767088517846547689391167649514462159505519931267896936767639207353244783830364028044671407626250936278625286493221587365076157268797450625629723350439810583919683981420579746434411239717935285857433592561758684637661403980572596116331855867674787564307859714398359924798253569519257609497816889965964449626646878435841322661382715855176761177734848877938079998897936067638275909272144349443907939453593683839861435562442485660880876122633485884182474386215012547749449191838360650410069466781241589783945125044352400493766626318444203433460049670543187896919144950269077320140246184323256682673778535626887740880673024424234499868557385296875977389678430970681198201462431996561537207218756968895296487545932482462625598214676770088068959893572852817372033483761263115346115248840424646380294767486154941720232897715257623951156647811201963818910673668952705173043465547782513812835319698127042499490943145468254404087191066354057200476157609155535581205504355579864148753037115270169458300025865185769616518259314057943982291947428549290728811299071179671755433306324621632612552000054306044706826761844567455288835760483098239064962099020755379975335351210246841471087547397712378452852964822373610897566105049483003394558035668257617676307830451600013557237389345593150433062688485893898908315397666564156949284730328152739562577412970734507457258752302097762948198193446134699791277944815123277069344454367807667479856610113157195446150398742585439213969813351582383654411843469558856552633597316178056000905053341383744153753666210621673714498070996948037382457790322165133396494664483370930546064899682928238596529377295648208859831267885690127957056963205403003451275504993643266598718470590185367913965902748114461274728269696129695388851508365165803904424471952699704667847937427555028520667400815974877223923834293326818127181597862217405779860826614057510203825696303335548544069891399173825359304933010400445928578772094683643570856215799648636400768846198969851795725268220457219156090647171902765770507123841688364617035170760598607927079467854366120920462716833579772359227609136068674436092089895306300195417346165517784992480504785772136550506951552166523671455221029341977830588723392515507095907669721255409469755791152743535933268513187957538376982928328691768732339368103562376687765657890845403678611387827444729368395046470674816990738004667498118972882121024367564018113804765725061035265604377288614880173639494659746595892875886003087625091525551058776701577991044108844676132691568409206961452914378566094190367613501564261529132474318949510940115556469338167441751618617497593463320922367446908193134969141274779846015658017304387806584342881943097446070310163741610401319848767215196434658899321367417800548202335329319118410019780421480101181816402922867933879067630567753886594524696700225213862459303291995743747533880971251429629616359933157980562354674300387282555525243889055241679738698914393039634878609536924577165245140567908004559266298651938819551205773050837697267814565169315880198028954825647260622679261073963419114517486818311609173449362471117650488097166797905184459723019982100902932685114350142149749270880971283144357905157595527092300054597536591713425318129804982128805440143434091759162633232823122145495490324695782507067202877156019142737803593408877713291666624709226736519575754955445475529245234235144799458000108553024850023979933024853658393454901049121106955445004982237853032713003401944812155238647737813982146524939548054444800595159425475731221020778730924404624574775504553813590063303805492009147823216720918839390058590394817484754328444670139162232596647450464537267065696709865210199053806437954380349026889630616826075744894094455494831267199699876248703305126200799117166630900537373210314742125888311207555004256059953015804099958423502665190506771228910666829642970947886756443943330636231175607053390163887336347322351141755738965683557999279613877857642215299877541514266280202509756664856280945151810558942869950926912506840275149342640550679103108364470260030882222304619948735986257692619575414420249141794415138148963298003342314418951806040216019875321866428532213698060903137318531200947835439112485365649405742805673585618202593316962862266580808239039795204646723133955535003208897684505594112010742042551153022673578217946051374230697642134841185652181859239658343830686919801165649761232473906986061817895259823702910642713526176736222577995379378007600756870085281380988207948363682985720823017123903845831625341591430226124161717330704772976481232536916304278047986254877114100051404006570229845934635379145442553590170388705698124088257115068813118246580952571541747765161250252248197247853657886581531338574975711132987377856349453705308699156847048028073055644417147428445533631267909682251712436830370239235995208863352059557226951687215434427071802858586528416613155237833827672037250697242660773479167912816879588065083149087604795133817272050467472603522399952946502680406427342626667905802456402768497536577064046923376330584770988785864080257609468922544290498638508955462309338446102158943473201675185991586392660940461783921717756128201599759896252604165045962087176921665856512598614738094477244762250601814247193857231602720270879263078607402215860972812156463916106104343519908183645280384727525711178664182532585985105501619500349017540972217394727639586152957376275460661334660448741195603986898690151278277449747359334192674906209860284746700196400675194671764262162258365033417515158770231318432349091681370078739450763884983053864766844338097825565765130160619900706010874958812238565418407588156099453815545148341985936612121068126873809028033493474183435367087335035377118417505487827205260233299086634631178754470643732091408402651938029050675218455360655570046171325496321585012946083872859839690637463661586958835264489329135736309293096671709904804255055833787904147308074718318703633134369846364802523972900644316277296771584821274398684621083195199073563144428987536286661438157856632678195351207216635240557932783232226782121202335253334299854214658689301199249993064283991480269959705085575160956021996873146006116401039832275221909296456205158857772982466141524408516041715615984239437155494567136219201541306292770567280421274621854337720846112869448081148681141522634838286297972092580220613754060327021911830196253797439161973412907219320693792284508525821637743414240769874762551217988973224562263855773755592352503632325423355847618129188265692778167260836753425861446029091240218282849458128644812362548208761520018689347465849553433353153252220461161392853795584342023341805652290166105082622552058039399616310220774327340077025522765311797237911219699578949792431588915444695195049918347747770025875103343436730184335107604528336965772122475894944717382272941781407496164422343796393573105514549639041244094743497368131184063869522722963024839965215468188173694892824728006560088664351434093894784333806398288785823750349110419103943534091367777271756911496320312074486706023834239581131692282063018602760557765219510214142031821865885950284796852773098954760002832668769924702769059364958324231812431454771295290414966792671657399615157640035502146503859677426158249161716383509768035740954668340554274377241521149460678012502718739556926619804238290843490303737392118444462071191806488793920340131198822264206047789157323152600653885177576772423695397017480367639259886954079190949848482861864105010049505543334475897752318812791575837530430436271243626108705663865223147932906028321033683618687135065874909329292933155254838536222103804678989888477518630193619600471222870519580728022271741099972866188288761062066341827457738286091751028192753556354077073730738134882092264628857383798849332533187674818104842546010949860656139933118986325448748347783210552369309723414390402377978291855265415921468421947043886813429874733507312949071880195816293076458208899936146665241942659873712040409692184638346233575948849380462579382542010370063255584289260882445129878104545903669969432041407965248847330714704546123395901793085909178872483930649123657279007228896034303838544682080556599213310780293902999335248993723446589161760105545241855463324372563525524005217000097997125100658274405175027704521098676601305931671010542001065972857109358832604626811261480938193519849270163905325603900417494311064920788792192611935637818557144132560710916266465883159975000991815403661984488320130263513092187986898538138966063664032735560369386703936234622697464393991211300364672414882100171393086296450314631849440048949453289113583917815253724483604094490064337822560360098147588454926567904634948213812294945675149397187219988137784477080336826855888426880596947723852619529696806195518985738525626451863464746552783383204606181852806305038453262741762109357714828605422974141431270454458364099392809972126068500891607817346711560372040105476048780226701719124694833308079208786325665661646893397620939998104301463040689078594284623904709317146488733952763370621724462312752261036793145779969639720112924111674738307993259262317636937257019891669209276172190750035753522824095349450983588423343312373779314344662137584298056719296507007873310666073911751064368684756242533551204358491532318552780847231168955845118386421342211056974730406518453878129175708691353305848855086007325937393016291353914858989632470799655940412892189483111281258236934483963993211193074988110144285574312065625777409868105265378058639711831459674653890400263907240682750621969460489291282764425468053085205489439151339549346539391045947409949376415299642421972870441724436671925349245461698628196048533362503123040770552660000791390284345476348335263407356743794584934006824441136659377312311410199288882559505114586128910093556307912357078288430066489681994930552968642883898699609108688212796953420614183648995430989075897531558684769755624546909621020217169229378124600712968832012074226955913157154569165485397216541359067894062099395347890882997888646340087851268232626444425035616034264894472366695059951233940364890293716233647180193620047651481354569153039494635460255149928126532695378219140027932909944888708033716453699703539798759657850885933144926193356541085720875705090054832336432407483291561740578623313976147726130810616828281757121630749714611429285482599513816003331625782023766487511040740562535193452570071540801986668299891123549005816999641546331243121353094137668972244596430999838178680250711286083775648191380502802570252145193120164588186598434752905226173456964305188580128169619849068505724380195675996573228232423007578636059555210195262116561858493634343737538925247780853910997809176665803580476825751558450902991104085477117890778576915840938584717918983312455750255410978359490256598421635666159915927780313971539745350364033588498891300936006409502130037818107203588413306092498096966568848409837642345340894946592951185582060392690790769933315546858965336592001071772862547686866621057629656544111987536839497692849725173270654021592540959236559018694646589281201699333709242871628605280650380557558197603339849049203773320307018871385530412495993461041977896001975281751207272842754562832122977676353420274229464667054861092259104418917848160195145364023057793115577001386419715100496838766643619516797933635460859628043802102207596225704956065411305088629733277630304057581116357651848436869847084625352205307479144393100030353458448308977293955282078529437896495886983902598312884702205602565462435259520819807423646825856753841058061294487441492872833346908142438108192454432016072478950991974954031521830589947488817051783660308375596400740160912375591555172527716366315009602832473623354716138078148677370256099483198305054566999156718132339621151045358957381142205454449536131671844454877273082546275399363530007183628951013058548952666898679381872582457803680333122953144208724043187755425141591226803977011318414861382938872203594024335942638661660306354503257656272045200336042019139155396973400386452958741877304331265155862534288949703059746298924885389229024512912610844447554651989714450423461610804008905862618543128584834246187858628635081403359598327814945327087294683766700204508309552963949745854820252881905584702955021504131653871128888007227115466108942835456972306942178926556667654140222432296611456532761067274895370327877087307881960794804714694374816365409792086871643780254275330367117893294876687698554834827166523450431867164590080888456267409819228684599357974578857151402569272522655945265981246086827540672899832520061227057207033842118943878395160321217378414957652009380909985185421685446449699014042205400441370068116630087465646673799220874299295093320779662261818101475311676271274025882504097817852205892833194262080428884998078151907311332811630033324224917313753993350938062971421772749342199160623428994505399984859099988256623638895697748016720302812014645919385533557830172298988352515626707183377034708686567651355376425776963276771377826283996884815197709812144226304118133148928299857374413382911848397158122813724810235414639969701787991139470148297105125745596036841339601072090566561077537908133107379964863725913208725395757438941097565104767468268133508871530422125965074674048052902857704606984099293756898346631355835177063296927041139835215462162900316401944391740741057175331699388926707972414413202601690061274220593314127344796505673218601798099203725015352083157584161861295444761171555509789949042175179561515794147621682091447302408197200215643323899213133541426236567048410381563759381599551274214152731281939132427630127873369169660588725999501071648621546903134412155463281204921528103635945940717437961178129638086840682517022022379928120607844015741776136604394059558577544790995325895940649905265593219500554550465172598804474727474198343803764551897019068221199630302550498202813765852214681024184271737097169794093567568370875184412625484674909300112837418041026586179642290613381405152228672095898275258057440989405776509874006170096585813524670411952861559595437442224143474014019877506401246897201216952406568486221315496967751722816961446531323042177083438522829547693487885855493036558871447098685568651531081694733333388721463641067185982012628225179076843584701896364806647204638680079224791374118993775591301683916946872340880728938885811509297190878342057027960235944231401080673460117351359991790568097291460679570824668369228905288252035963463850374701835123013667569897385616539773763014762525276276121983362669748650128961621496213430792771279821310808275739542383245630882829203398235984211020912203289014210538854296539216151453952081565938742541846293177147551157245005141447248122244913353271389887895106586349201682039708041850162833148268892274841174393143300247819203043869551218570431874797449625868840785838271043060175355213318473339302650737715787878486749077066111084562963344250329523583535513618335728348525895820614753281010974047623009842991465767939762767305199139922133016324277570629988854907760141212601184078563877895912367124088849365622540451231169939349218275746675371774866336052339922170758188647340742294157677453124034005234881276008203348822513736598346534539886742582774271295126502035978135672350154710311731868335790304644910690754534106359551846526020612695472241572117634322840679533770902995724255217509831415020138545913290350194914998893743156202425915334555293932834364597363445143843686045491496565305028477865535181338625591291390153795592441356686527017309239156624868132263461491850353732173075858847969293006635418302327918431817853048538480400331843154297191194885795211093338664737825882347056992701304735187403379824323923320306897687827749765372621372845685590879481495437494633785334461506147467385462550231064319720632097184254439587711368257751326513575048646064206423153284572723878262301331240470587899044751224012019301759829867820932428468561447361055586965252545777327783135448272445507118139947565703844337462043461188949366221093148246621973940993387136106002895047866207806757135306646913141529803134713908084938291253257448067927213109316716651244821186514460322398766946458410974629498517500928524740930236251094749493247972340969727862347642127127970093722949912596814722086483395106597148388790836279089764105489795608958826329084810179675771182983431417973236749531829821871809010977784379200507621292381301881600030058869781989008334992446471798162861415036835232376181049556130797145990682849000378445388900849009998979867033258776749705812431019610823295721547489823594089750187879703093947743838441110213020470341150495864688255831685040760434757123688429574071897256626847015111565249605116480381216128986730261106870163120754805342329212925032822372162444489861428731584832052039380446926465240531941996952620135530240029714115655791481068682048346096771746512223638653524716163141641946323477573444444052529932193378757960824373174335412368622183714363731395076811520111644933302120511253546558822676651157379632961000886201629294040649855311288640338282576519148062876039177358908944232404027799532004327062879699681182087178019829877004826984479226344909866528761758999568528427161800063797589922154533533801212264165120543209485830100043334247370706213599948463152875798238098548206141751697107818116317302288579844316106000624536383410063111793477148682043050886398818701273478320182294966868943593880450923526830853149180695412073386265202913169209105141317078060927394359226148199988775895491350746624357419216693999714596426434519230920427709328430854708424865014025547522509914265243486654612007055699863147662976910656483741145857666676560453540809121466853424267554198712116512486454177413682288327771744093047574276691379389835254366793083781063628259381474064206982786885291782583375689583159815978827222880832906336972976198825488924871678004761133547057114768326377486799336770805400506208896900601100958498053376963186541999204864912705670718810165307115278023469548567516467027118826357248713803738809303207952664687565015517609404287722652234861901922475221069163493753588318245578834271480911145001041155098610960261560487277024069171360755906353367145993113530386981554789840776166502693585025554463918823540647644514952901087462218961673106358522873309469640133295414211962996248361543624421198252212385508940825666638338382543189857826092537922688436257904892319383918577220679969898962664809592857572717319103715963493220766488564862629935644312194751651868916097231396360031171362903511065757602478530737083547188737219489437552224929945638801207315940560418115966044531808875897379975917861902643295948277268074854800928555025076622309027900171490796340376389870859516058884752738064239907375404816224679294252978935456660467694235061949144727038383522486740152344985990851756837425582356852529323155036895199165891185104504021948892245381678364155145720875852742250958596412412674244920805840785069286066709182941197026829810373109189135036318572296682169424429494196146298706081791624710866601839297037246272563218792003045791218198758387326727705169768879081369379613190902560950146436950172646225333719489329566469433914325950240282300649022256427299921272921203789178151923250956570864393814428473408566756116592747274596936306092365413492660072321229938055810476722839114193938208055513480578411059174263879588847801126489869686149357300725338886352567684447300888055407772756494333381946326984735932504794691118215041925723434835168369477232942330951197353695481169317885080482666639834160413132828550899880275035078947958296396357962272352975689443615790541312592542481123758150728892774352019128443350216846385739515338127877421599274968271220072040525629219524491166381091511366180332717407936070517845678960070113484158305997289855342392899783850354539166989395697115694844315175479704083615631228978099490757192552637498639047410371853844099636093368420988662457261147132275920343573778127047640674398718337199061865011954745977217506116940424759388575428857158566710827538436749658240446081195451256009190662886403584559646140030335190279114644236254315728827799395112235618351693200842895903642199228389815523278893405273916776582015079507069936111245117699754328110480103958600926534715022182548227545128355489676382987433090325259487517419078988325036732131074948051680635523208551752144770321608377218747275085493037295172361231495648824382697809659473364137559119042077379108766723106265694019549286777746151924024415847889346308094912150740031973109914748060935299601890319483375643974460983786679343019970684098064284340843605795084346073934770416437046770126730649924783116318532305995904519476426915112430605049804281616163482584407682791110954684865983545259190992563693908426126494959760500233724269049896052940412000726864686609996456222283289244553083925366269461298798549177200213529184907316750241967147146884132001795365444948940097691191834727377026693921779307402115185686857992159057843888695107889180372569661276299500461784646758442830330945784155258654404322609566388998675584534542831171528483677326203822231742185600382320317676314211603879640295924563480880844113903301062871551607706494048642865501895847219501702239508388732691819690684893191543435781020169261377889812176194270886701600149845700194625857529446253838147937898031685708006119329357267516473827710745338309754667871814487747187852020367858275382758034903344323471888768297466604210946815586616267582509605482867979847069025636810902812011198469744910070250434280443072287592182365284973948902174396121712861672350447962436495925000323378185560371570894871390581717543626108380225231956822047794668027862496489459629377210051398959876052916969018518677075296605765449186970491256606687626844128310034243692740093013641492520341036642589919731747204037193525659512686157147327170649954728297916134773048859494488210689611371752104328696047326620415387242212105850494213503122574084324763891542108802260568908083785476114026297960854630153820019352116887165019940439514230890746110632885734573928568310304654194697174422423767111028704497213331886828029067603618581117606168124223896090633801681648733971405659854591394410926098237054793172934874978159334174007042105319904084052444615020617480690729937196142690452706214430088814024909569083259839293185020999817505527839475000086554951806607144279983444470708093225899697484176132405780836516138293596079712279618261071753112379027838511504506427962940428445338574092312195759762949629707120697944282108357388470462452509141976737895184011202632187173961637669515543810772287105523373352986370342153434879961844746020913506273804680669569559779904498365735247542850734739887261455588616497021854791972426694267943952123430183690793080349910063444400187628321364207368360127762050859603878273495100723402041889335988797546574952236958408923792865305458790859925371842980825362078099800702323080444939144781786287787671275230698860364691793489792760020659667981153347731082904568148530184093660412545923300658098812328661835548570526184849528733755128582273643957393447544985505669380888914876939600112113297816615582888500212389745182558763995203530392652220233967896585153282995446539000161841810423965058849901229973222801567998631011953666879517701252887138252728468684576139613570563260913116728654107799665935491651375767418436334431996216227713200497393757003252112565000674216176262507993717418833701472451446165141418818900762065990130642403756935586077800145062601950377358997945089707631662452803633960577403702854805750443087100832186514598901332295768190646381983821444619014883251843731396725799492452705923630012151635176826698221086696810120091707926270760225243156677087625603518863681723937632476199476654663031563135797018209139014683184297188098827127938979987663678662239652768655838712128830014662058983688021231885602483251475372262534430233277676732494405475961262245841953000128884872356912146603727518008540933010881872508285852619270381904282069598965797368833146672568449284507554372674251917402855470206407889169241316096897228517430070094577620168441964958491298675799665836409128889489321188215870135754833939387816442445029140874285668848671896187755122690095160669158854148741818957182342428877527203153042996493404485510434142224581059681780546065755916394715660391898276625171610605161304257412961179529075045197160461487743552504655991145258730306776217604497845467151132205675546519281061016416858894333673086249151788747300526447490838379664102952230317934231234936556823055868244362772189357115605772657172242583158867556726867741207396289287671793582314459182217296791095386376007465083699838147439973371317960913245196342221327348206693735940831130471163566312960136689714489228323498035376956925215314340928943469230759368538013843816425850334078638884965629184659420065407403040603362504137409407202805864321527513543472275322688269208522175458758311741642444749391858920254521178940775741461175776325458663001445202062700164247972065326395300713545031627341488887885528212439841869979022102121587702704056747592675607643346639022125084043394955073583568385053332073301008842396985429173665212281491851085877392664056346772175349709190947015686041297051551898071595112739115188729100380742775533632837681919101629822424966234252884243419081640418988590166138105575711829286399706178176256894184479084144277089969125840479502740550183360412185104257569133385349234415842428497104747008899873676167679401616660645396225076300944572237293809021133247876153496778219693523102154296169168399346274395218260662740004125766825045985265704659990582439258547377649815913020898214011602072101938889233367493888415278699964203357060540996449568538258006702710206300207297541859151150558133074388044561154070965346673993038418405043170406041596082699841902606386444264310587652428149699352305571663889586511990847259663526388342200944920056107454961398210462855231714206667500941406620966597761244252143002174034506648361105091584488714743467643200516456199892118070220713778624522792975076647631958606900473126871641402444742525098316896256933972053226594317439975745423180925334887093679789904831347940495907456738788899642945900399416457524489420212803675980154331948623629040487375323393973677138806934795050826804161478014380016525190200946693603731205119939310137913600497223699851984168283095746448225798350894666889177111121865604713092142866241446422710650198215968288503609814527334023837505039241876892545677781316221401608016776408445132287767176180800173277357223292714110848738045883714893856597872336111327332976929098270117390168496344624509098760290333555102321463420102821617576666443631538983218828788047885803067658832790069445664928989969752529627370174776503689587918635283969889642211159181111530047148404763688853201895141517316690622039927974570459626224523164824923434411954411837563792166390128155428371352468563288913787572212534601897210982636872791144326826390706146195601497100657324138002145126849155766867469972327480982159242188143349694846980242887788435584610424886843117380505801912782607562903356822652576666447889331825807304159761822257415821556870105518470102068041784844989683281754097538182067112739596001647312990485769641306912517430822527920397964832667539251287056468127663010167252669440754156001169913196241852482684438583957152593226861390753295267539615920227709150946029058164468378425341798921607170887142260449895579528219992279514249216055546711260932044113140760084577518629099798830950790358336255268461559100413424827502767185705089244657191761824873995837230910796215350456155835099210464992149507189235708730293049788860718198443242437936105671383589149971122434143407767527656304747040279777177231558551933804887247533323034722388280851683363891180851002153238676191480401581748084078828782499464628540005512140031348314989422891183603610703071404171853728277156258655544616722804842571357763283281076671590229046862288737045748299534766485595100290935386528576344429212764120528864014481672803421952412749412213169279176661448763483358346273365872419327771638979029608986907118880596635025330608121672241228005184558008295952265664627914846984702442282148044409297242745309639831335607031879210557757711819029238495296586832720757418707535366417321687272571747427665818479602279408964653087321771558260070284591046000256235687029235643744723110263903902689522583081662613127839139179268289698665900582294576570766867989662264562058493151778636158745327178036964861421820410029621751240564925412669539358052662652924312668256344481687348291876557783774287049418021063735924422893968286454784084966094618608152262610939302616864108625337780930900671229388055651560688213873381104594259731557763244212155141137207058931835651318910358082915512033696453391587228512116942739231389045314907549788937097005287058968574419768060422040710017608701579615074481895461843384097208380935418649951248084146979451015541176611347868339768148593244333174659389404667419879365970960017232257523750155797068476290104862671728688531927615445239371676644919354829116892072975163154859113609793884340575620136469961176906384486002102316102433863380889973732487734270862108077271176503988419515477700329358554131973928113144956322886675656918280354053198597291691405682924047255695995434335426821808895367903531258100581945087763093361089389252913328869689122121332706063859020559326422099614933440336020528770813428269169215188509245864687675676215042863574522184469259726462974160466918164866357928495180963505794690662486225927361414692520917838053018196448949384328551124592097028635333089401463406415138382485213020030296202691449149239081508263639077092738993397574876033002594939572304125075377302195906171091962560363570641580097432336037458402217779201720309118453226411545577210645430434572475520659188367577963751598124418182929249891977827054629901398993663137650178369825673709974807218787214649540383888292446261428802388252982270864402274267456366339804879511862739450659975089760789764788684911469429435444837191628290066327904884478805421290880352390925612879012646577527008126905961769322413807376990337767397749387563544918223750882132912207127902661987649953490154285153136369494823535199429281376751150189661005989130320850736408040471077535088617157482726773370179224827334831109091734357268484700071189926304042267264056654336129546862261582782409250415415450122248055661266578438373554723371473287329662876811703367953858915378613261386639799077058900257360009310085374646737048274021336119127292578636846314834895566235662071444045953632664064409031162658792334988516167707728190419435861658657736117607802693281280057720797011559606896070412162053250916871175922680702307555533001006755143086471508958968828838538722446514526772028447576301195930522514604895356366184059404225697480336241280187365809617760322712491565762303262736973160047603960496498450405513206749314176543021226132325939847728151343832256705286792744447108157539069887697754951050247078088080310522512552695831065031342937950523863708867739052227746073147890691923802174731677803788733309987612147111102116487472680211863862487465392853135929205247092104395548100147552951720951092620572054984986318445461164251556752766397254138007107545640196115863390127251061630391430529964411403751965696031040217158719275086680964450970569643663339840000654017139954968493727398093371703627361565530416563386541168372875599893283272072384369178546156192276465930122529732653535390079221429066631441950811474745770604128252742596383947536547644293990292436004152407599126432984465061261022533027416278108200463205932569327748958967511571187705803138758364657177231681561585486519695040738097748151599669727295285685949390280506622117741320699528098179083090180369417609649643426782268116869481765218718152589396169942377107472708143939753285828817425760397459586652398077167988322340868695672719549687968646748104131725009547254800193610222609160900551379223967554179236219865244549114687136723992753088657809162389459337799051773618441892649238351202121342417759530029529332527572140810764478412403828118749130464010151235863467073517717890236641950345054130868932158724446986970318596770100288412884045662762726114723509387434413605428485138758504448974200552547043606710269907679511280782257276185328663699047926857463680160488296127965605737403060606321532595400902991710103817569782190290373294085844285230504371758171501669971907399668928529403931265943706515914277167176400099851204496558878718083608346395796500684396475849207559847440651087375531502856703515521243098283150728845175671772944787726130790843423003185444292552536504788712435862904303368443428488736308580516120191975647789034990991485617161270024331069789312238820837539934139165640138139690488958879044170909070499323504224488812461954321922292890079920747131703207917094199367370138163677073161072624135776525141222776612478033349493631658439430878939828510311303722453626917739900243260661471077362936860570721262293997832003134157789296258700941359140298393019401035377945134943339394131734264679377720808719038683300977755272033808202180880287529044186328522361697727035239417523163728712589370734165781869256136521767189793424914715666524867679493175149338804803576877044432072923083535814937652183207491568451820767135197125031655959208537095565772830243772284100993094059116031512052617712485664678604798887200836242502147773707843113010039417059756152748547129732942643654748360960131705143039634205103046251129240258695810762565040205448452103615050321526620405687013812635282406652827067357585531647314486297995370764240863405685047201130954223844808783394921557415375960886697302342154015999366834386317347838600978055148082915446552915957416804423692143358929832275318552294913285365078955049304262490253772383877675797368681232951152139209612504245449419440264908332199028426084474312733346324251787310064142326267143681752397626436964445468825254139591111889978058745646698143500718375185298617350823346950761083033594630503218181028707551224843539905730710013040883846966936407027419135983561750530403577719537235576328989754668909319454426453688004282726761796623093021452852443284488269457860213262624705620401563996583414900406633503960185854156711204146438246363869300163139468885966151932112015097687457981492090644546567138107097830374821141139265993236136059290759823453211520165197779562394848973827811113935829657932790476024513622521002916075145447149465302245443863609904553225613731517500631325985049758916594446854121183136261821685088484298338931099565861675346233799168358285908340275624980504340596759953764994549956893465482139855027061128779704157289518976068670614745175779478598248074004890176484547157108626815397650869025760823677701510202762049381675128383722878105256263401252535907280873777900270263453620137776113837972321063836394277928241819365630864009776410391275134687823226930572285237287883596492499265652243992373167552826813416715332837799166215428844566220796110222502955507148979476102441827872846367060446807661849330039264250037193281773017034979491437436530413529213298537305174931801629219444312386350760370126262462803331784653346559194924416725083402506607559445133250969028805820032049581826720326218055916730899594794112435109891152922724197793156215111874343774795257661378330611670689733243046750635476201527537264783521765169124426092220894707092067609922195171410191263009236006776479354016225858298426377097579144928901193508708616621120353129630016326042160764698046916962211890860503002792535556944471766615106392862832406374999312175228070179450331622587979338360309485885789815257807174173560836470539350187658068910152311890884044251889621620883703965840183774129995803843501553944792648739075234561269411173258440476152822164991879880176939084490023120046787334256167094301750110530915863389926336299546720173784410581772538546537158296079742853710298963071244665534493698303310835759659999435984066785898353326686325508253322712976045098304018340405768240503330561112381452109712163546520533485505868715176994584631653012597660097000418954445242224713351926515122255892462512390531747692763253580795459024544997151619773274897950103864646489961476061304426483168934126896611204018967567600992502159015266699670148540787480764118067654663100089676499953919477469023552223537683751102498622371615340286012144750113750060739490575716882878430914424830613912639834316073262916591749839822187471439987511697779506261007633346760129756482776417355537858472066108761433822392083975747004743305955151140414603249070128778276348633643120122786954183225213551568370236881047904815017738786239250917018671170220304240085558048215610729943006634122573926627295628624126728551399636435344207888299865747779735625955129936079234406461455415104919026345291616128022171458543652808202270623065200225074296279984749978765735526552855922417507186603307243074427314315550860766710204889423907998333357874399024593969079392048118666600696546179480682114721885416286483644445288604021693046356309709093355103621142171483150273735521070232142360224861732922990732695150857021683274877738753819748885150753330439213250353752650687163589259946434061693112455749643936275646489520320786939346052340147747805147526705504344428665843477838316802474923512975977370429740037874456208892398327059785858875405393519717007603462948940585687531347015938757266008971607152803913244941117652303433769120533927631154876797474083665709100636864995017145360993931918061298896896581960713947546438125704639694641059415312891843211210673734505845374502762830515468094395115557605566083823944032041085946093090376256941036129461229738535386995833413301237849743599139908943266274628280015683010231896948548830954434733399927219308435275174928532027030974188801407952102834814091068112297279784835722338065354550392767779129793793389662322967492973634339264910481782884893570929373069152637347762402597289971265342949790726123532191657131067083982952777610508362616488567667319552386906035937466237826429181760064431407506091728663775136921110575596081827457743939263741392417496350562797894309141178703839198143689712549902632563893755900389231510364389149465590428215031081646573104740118262959227574125129150588939802573257747491680497347852581015154546673254901879733416980463008121248681166099882104406295212826283381390927405527499616723053586742656186084177060370810324631647309933074849646421193631098282492431727050426601215188556651913986244138068916460181088987104988449730814300697347910295894243474281956968599393124500773299214685153642775342602393898849985228223928065727448997907698325385253754724092402888072626079054376200279334396064140789333334946791089853072375190628029768320616158000168745052168772692258090604559440422462911698986724120754129367239841543995973956401026028446721066038870248841436637249625364036194112010765380458786858275083319155074817081872180689295753327982441180116515809797790447129268436072896305510228262457443523134285052686322124096486702860321046990241211760194577930363367627722801087674157034102687929178623567724521103984646921603407249707536908566027764791388526327498181853160258974971669238229016655138552582575680889319277312254991890401309073507113234010956055264251741835292414408847776518918693200629573742633717585412635434465054624223754198460543502255992861671741902374990750513204980106187286042083701837718194610249785490078260388450671966378398077805944629429092646413845146316887471863953496630708035859378634705522379286932100133710295710361957933572172307672945981559005094300007645326960429249005982523823974370983968010023625936934475562957535067346976808134746084700849286570423695682301270058805583428657304858279806827306385339452439593258850683837255008594565429733179709315735149441576985485030184694144378549360696815027477954914378107852746914767449740864889602996230935727137036977849211555659906832146986545513967016720914925211722337218000397828930516666384040749196965236602660949816198040194005631996385555083281399216911540113071639837069641998251823840722533522755878838185301332726849247102341301543066678346602652129675833053453013841859196442923051046013236884900147202817252620212761278769811249061635255562655033079312748671962416130508232452428064939252529684945345332817803467970007504068378103434916121504642711546015060292884901008564295692430550859977502993684578376403187169025253439779975018455436098778748410925586101512575584880028399530457359187415895589401141794555653952482204270397028132858546561225967795368355980894581559303045332579238040944780078771487692303077391526042452712848012563905367500522069527846548956426158010061150757233677459751989684828298715812898932261323108507620544530947781616581878525959955638771887642435133690532788974544318622031201203814190420012243526707580519217576306427809245993645197076639742194215839692625469553951550675755047857369203638693953203321343723483091056434507874161229270369119929683360729350678961827480871068916492990181459165919721208348478595248121779313525913897524156361019851062523820618286556475353289259058241267258386170587061054054047924731965618116932533234428782644662017493818912056869147771410824944501877825228163146886238003387256844354874539693839666489500711033297576290159533671083637892977964748500239951642773868207202688497493191967193229546903321876881916179064189251371751421165986006166398317679535956687366364660471312528941524414115128882832115847934478466357220019789648153054064096461444469246871175007839094994443544851365763763148808008072992258192400927355242048197891396598241967309006260265551481987461747782212348607520034474507824679157768002621274775424497345330462180328537959161811591006409980538190663779426973923502064207710444318732876240595252949656082808472403632264432446693917845227791053933424095562735415649210996023257451396443119510081267403269984700513407688815556022820538337766337869359211600295098113175955061810865136175511744804542875137868010841039483268840666654829714114695889215417695005690552249736208469794842232288351317934211784946835186246041604740689030801594014542260831014709749076983478430460995277614975961316922812199846929052214684209478341321931490621586036904435928009950547685803663921674981735429666801848835963115389007428467400762319830496315448991540119180801360112718067327509812811430437048557935320874797022304147285264375245269493205567956605411479950016344530151643340545165844569074677866065241721741502334694998182761006365079413177861734911735676316981092716787560031391386754672946264007448894953291064591922539847599530400556102497282033393111206455971662761559043646433170127993738794095631114992738061628467579110558492049859304444795933972660562771011687418793217944294918399676286360603825177293232434145938709324503873451916461708622691237815217860199417992325575023629193516935232152905925014108392521061066580466471099904658192816305293887092753586274400046954925599634119700358210627250101203401999729469174972075688845370323995661399201623933740543507308369290720966001962725320991515188571527272323928906326980632182571705914817636004264780352072294706268153243465508540380926610405585936884742682038205467280709924261861798867718585190375082986373089638643938699423415334744204106548267415408487847889400842974617806075882656747615149411274308301133723293218889754138762590805990007377415666257207673426800908082288735486906181789214624587914887396842790599844782028132144671770826042906586773106782561994180197866588992754569884871312151272639348933094009385235361959305168950574602966517391790611148787314392125768974918261811062490872359669749707469485275099592447778546026766492031375047438110773836805198278511464725836354606631633196773452429799071023496387573554313720881189765804583500469239090851557899914538455439543867032804020793400034857020583263069205781377755106351322097333943815827504237722879008699224021358158436364395033015010627177045794553501252685203892654330056957303582296599072066677294758778214997411066902643428206145778998093971423145212797433584520287574788635185950973387792157818885395724500509284280590801360665434036981742251616067563247451986801289212033518985931975922564509493313988510440311022385358105659522987263857058056150093292168601255930839396201929074615427484054516619311243399003935394756303890924087804373789953527711171157310503162361024175208400267888575235333586600534436231173348844218340754701659787451716135522378893336930529127756618025728804109033702753427141598812332158064877708991612557140317557844940836865714835000728423176774087584820135216000903594928739199848153951853078315393391448536008120784622288877727238124664948849969635744580781129858867991496587689488598313484412690527842570589358262806220452628583850487190802732558108202262996966233935412958663405074416483576475649651814381554110421316075325160722178177769533820172340001476429655668815789460335555136384590996922843970956731683950843128749099870656211376038766297547580760533646926017323354045122039536105146206916617330432293855531397134054658009563821876502344059422776358513951816372697302696038262243956244226340912117830272877033732151427889151881574136511593723749483936527418723027773411160795408507818642489090130843634213294865217143936266288846295328727723274104840337997555511449858610244668016344237991906865267744470001468906223834078852837415022240555333993750778106119743340012812151400610370512633656257288666395240071197124107598220300795834948653899574026620195778097538613759594694768849494076253124591260943757028992456652751120045619437021562162310977887326613051596102856903852264956170204621851712333106358249739741168978674749958581860587090186907597390011836010477861556640952633343999558586455391214101601515923097277622614057929398600778087399207602611976132454383047352004424840587531136906577553090703836069338953499598022120513589107382158737102448844359018613228015852458950517252216960819366141597174804075210351936791225225473775696655097541473172486612650829134715753441985665259464829235380006734175137475574656311216327921212190580172106631855434456581380304384742595939748610441425294682581760417086169469167763978303339654145805796244789469695513257547007652181160422284041191699090489290901374960793878755212112534146521529753570238844558316179491651878806360320731354975677218580551869045918065905640295725887477980568105783394922119732982839197619478519254016974211602637761104537760437740092171392451937300734909088991183378572503443455235570909348210805386915254007846191811279153981527341974800818482467962030327424977005308038463469365065363407607852697004603135933611719151760345402379159699164848904658711100925374307018789536785093394913914720062351710375145199176367692099349526785097122533072879132600476201396417233765631038783315395882547238098664628973564301315908878640920098264935884181200947487431740707693389921816417302409057638008816398460299207543832141430376730207862443382672808298270093762498881054449690366497414750588379012685623236857801208342156455603081332122284907793524489305508178454654443748886279925041666002159951713467673042498126061600637373463373511327636906308874241473157805204067138508645358676669866189728746300217497202863062018575922040353331875197498669282266759645366219654626982504563014970844791013689462514236789440501186287893988625944404298382121298551434048874451405280064391753640609723141853235943820267290270867346447493988345606153085599194143455428335018460456547513824402497404990434395541471491738285160822837097666965191912699640389474686164015983599826063259162184115384529872179360168105222844239109398899690722702977259055975703112194143304091099094384565402614159659230174795660790460319446685572538951048967309913619785829264179570132611863015144935960167505257033427416862707210182631900630786329023403575815707935903821385057891140203239806816671845475015602900193250798011509736482914083972088440171766337626366642651699412207191565705428664970165406047826156244023926752482100755861536738362294047633346047888878262241494993601787227549935819681145067807212273514737382973819835468694339605661374119882755200472060778300049088312011218568389969860066025306054142588027556209357043138171118113373495660890445533677307003835075314551896004760982754516889352276748466547848635482409002903037738379792900979637037392393543095041603358181396000313352927965614556476460829465441904390570127373546030941458476936594689741270133887740149949217762140675941381880141213408069996105474950959742792740637486408698321320676015678526515502114386225384581191010732949056311900941625911911873677768083494739256371809258491134169756899955715346794786864516073095882062220295548324502319937864210596565863653588549516371672501684975588489287847154761512966488315686826469342429699061331090169576636192504227293911817143510779516729059244096032104209713380678170023232792789151433809214288622476747889706669358102056900689188284165914651325404282904031502542579310992897600290922402555521765516406613914176386452292366369759044610172122711920984545194774047499458091285148586355596307291904392012205667479832469716994191680297880711401018434214345841142792475627855625562280670265355334497571481310203647281878265588630489842421378349032598256670303840608139279898507607335055684062511214217685415739426955382516916847657438639319495085531048145657746323775490424783061940855981695575424926742991971900817185358207134730850131820319756593324110842278790979008188268683238903633645411715477825318525925099820310526684106560813272723186399670109687419740381905959307991588172617110287767174600977665028271131985118650056584111250740412491943703905928207769095487199796330497086557185311506746439055028045237121446547646290583464303179761303330668931596640504422211600354311264895757570481091891988513166851868820091430967539356755177167005995567698652799866684598745182495113805854026834240596332734477612799246118739848881998535519436831950477849404987040476701628562689071385627453664724655407995100445873260224930280622231560007403148585980302779471509744787389364471100525816757149191207953148330866348992493667294151141786939212159952481874256028482260655357821927109840693157847921609606363794672699663168032987351005797776712656613991361306208125448168468803837497361456237967915096865928203370100052422843498979098310408562753474932056318542556398274805139501812252943215735765695805738928678159215149543371087934527880784688521739914583591558140066170306937970540958442897148817193421359205681041283178723852338253543570844235509466197215970646717831796241408617299542153461236065436028429876144078490191075725525871219088433081488629544956016735597963271133772485152021374732377270333246224382468507349152327456583746454520299086772072091046169520797097982748162967555611897808914019724218636684567848095814312371638457536832975308303141032459862389358157602808519112991187805033021239138800825639613099744858788335117561061324507115808933891077081853674536088148881025851298600204674231231063921831478821286079056276800231276544283946934614726023741478179850611313224789900032773689689335238671131338994859987527913183274786045450660650450043126328990392305500673351762219808901650040351848560306895830457327164893614862720563796049589593938756274382193926177384529997444785519104729105007948610905844444976531795675392116229091520674596455070170272297304344694090252141671837021056961313333589845644070315388424077205827700573204338221532779956407241640273582462183910278843441245067557933683270359000386594270460428623092123849344440267312267690451582543004289694352455775442623642877294779960873401974552402566969779819131974860904392410489344268141738000378581948712106718508466082263380704346711543045388077638202311975834814711663233199960780337191804880188090497686552381403940091539363844482170256495872354204446108400375090613132698370232925514533298256913731242352090361643305195590011748458776012254504601539566546256044619664387851953623748026318275225398136983439540577958524080760899940169939524720638104894243278311296807324362864202751468500387456594625510333428859488801312014156912056444968736040304990419290916958116103593922882170954212010281407622933185237739477580484380677950061155756490357793400418356082991762350951705599315865488364201440252161254895111100621909950710981370330123804894085146375624767516097034611396834199593163028751946347413605468899147498538048453413971162180147058370360075886144733931300415012817781577263600882102801803486457064252198858296933965631888978040310957301769869859282883745166261294049813998318602544191664449600317688733049302311364828485697166454788536194598610674048728885100549440420968058311526509163927663084638998128462163928283309859496431234076627779562460243534225568375255473178506935706057241218540017846711826064606283863931991297437781454113084585145549986416286451439340583968923436142787583101103195141434804558692375113539969006622425159384471122759859373304559295587673567270862366188320521727122088036348179877768605168226565520734198785746294481529163800366304506048751141213087393704958783320562947627555741517753462308620885273722583693466036624332926224537814466593318133135254545115142060220122564884837422040217149543497921513710043688148663003604201811727058322097997088360168460545218547692511507168437575701223889918314187545298516855035686123192504945711108137728451392170466650778375639710945751490503729596391877715693363635857664295911959134739075893031273686056745810552069979202975712541383340229695255937671004676977904846909066447205331321756239631114131534229571970883580083754894734324297681592299181236191325325157839502407909154048743286038369458718961827554718381798279192250224613309395284889331227433890884153405220903358666995167658925428440956682416443446849429446752786982134863657676125614364714079235224142529590628965184971404851525800078751220547819894465401616923186541544903956887155699587317966783140963361931769779419218303601250629066700810056970400098396725557856194011886113465947325889852431294756380026272044474291890626011183395787131491238324399426405385802182541121351966560731802418671325733990999564775265221768720010612590964719497236071942015978144104196865802384165446219640450905962176945546611745870634163106436257186374568179402693273931867966116171443665297505202842503582455555513017657432868396600942800651876473871571510410197165281259613340625362867153640696886665775960501693954259960141921360109083862818518154338769044636356507479987697099464884237069522167192088526571765818315074826251406153119261253740084234881631149574343264423448542832364369230066277704993597957782904824382174498194920283873822846472190460107002805842058171556110183829652528863148128687621223848163151518761531853344580645184210830932325789745292047187271950551503206899170569830977557740759381124591618382714110481547403592237637925711503373184420281966058182802172285460937266444780143007612567448955888469645747929098258979913280446620568641314211055218759169824229381735039396277836372845150722169084222987926375444874003001629648069824943147536335878825255526310267550726640428057674949652367192659565187922891306977435374822884342731597079600166509134096909389328347626735619563161278316988904496740423042442280283648558180697711918711345792821429431729121180392108741152757916716068922648712654883048976690232025724888884445860758946298025555361997243042757290812134117146072068895909675921694814469186715781865000786734058303835677555315241924365537028100197865500404167268050599038732584601292322732441285127113004898230247408418259514915629961856700599162452332535992614308914953082236141151028840892857473310407953972242061656872817615281886143411512092446000150421752672959530212443917644770942963639195188969113074234834869784689259015633044675777292059744001736698479653648878234992170390542028200125359115924755155916638297377730971227588000159927777577094143151022077930848762057835344283527645727392605426145588210852744799926823732492420291222746027539401599453190336370937796510884183191745072365386928537861164758638897293325031846851494228769598126262125492134075032117283244467834233915726763382868672404668182126407003670887214861459368592368144405003091553161888405322431891546432120136251900281278082336987217535799545573066703910709114447510211112990784983470617836229114759791771227298956085236779663866656086207306386169286006508524427608714723094969270882827409509550883360482445702897699951936650412989998759395290596165323581385883510520388946217171258595679228629674439858425777060401473441591738099520592205408273709619850382290733007935967175842037349135483586648463880142261246202634889041661293791604751137701284384908453307072594468126854568094638610540942511611090698034475085576608618825117569918994059814878161241926358132098276020345024881836168943959628891563014423366828678977952702583250940844292288071756857858563768135275851631667106693023127838057346728103760064836748501773839749595640231831258923594190752440581097335659029958991108787408349821677960805035654382115988500887857830851911111121622626939250859591223884180887715062372474230305456178964274288820344529525704823983171203083966219517386665711124363041175891533292455911460390427177331928373417619145366767755241878274227474992491546971734185858072342151113815041591378669858245231688430488069369720604880557382384332612494870026786328072620719489354468418720622989583790429941175172230764915828886662609262481053312501616652426687676409639968959070087462938709252047876673971414383705055933053824072983530917848827042894936137751150703439482105183235615589619146195235505975260277121495411435720152283135297544806005704335698727827276090573661691164984143730925247945987169282421772856652561069927662929858014786241213179322728843405165119849880789352401506741729749152677082163993644482033200905301232867424085993492938961370609574045021683780131817782506124761944637042186607292090949583888414086020863268702048845595219051020037956036325738229221011951059153311033912046673261038791583226666500634666829452345367806369220979581911680536199126201102871610116265898135810379466040708950389649925819480924711701573274262300514809619542616362182489471056333533534966149364842081096041810424635655734734404444349360314380679437079769077112274473934061753584736471260194790178411921730885967114051987891436597891166902852810390827345085078012143732201814284342855994241508699854109688977712478034557517549231830403893900788125842201299641124508028413757570216750606213325767598465651999258906928149021289340482897268260098815257221945770107602594106523780411427315255221985854260280901707171540201101537758513386976702425825004723410802718035726534254024295430695096514511095371930751562201566426457134976456221984494783681928690072874719625383829646975261133755905148273858710858483361957636637025628832448828740714573376749947485855249783118147229155024226913961873047423067354160458647137879142118137245278578906312203217339713820315689155262506408452569819198492126024641205324812977180150908714007470366967733603186243500332741326132813931035438800272774783811990911710212055802398018461568083214041445220684958758393404948453324587632769264427930995080363886119295497034098206673762014693531553007093911637088194026716239133532820544838642793485725165626749258470446946175107436151650384396150540271171053499765519227659305726523314425104889589398568114701855392034906671691771509799320207296466376720514710141863633835043923979222254666707270231354480241944256204172300837293065246111868701735774598320129676088992456820183617397462571661631538153447846806858835970292830385021736032997433292424172001971600615003714856121593888539283601098012977111424671346303212743631489604489623698130024441470366431476586375960678259297418725087492001372490783040279609253650170166194582436667980146406540222540564754935328878079757528513656371612957097517622439040270197444784913016737460431983177731736444100780200883063104538838324810216391658259349784781865833181325525907042313023512022942010774125484932407881179972920807278098247749865020890430121283639901605053308333220574430961978815442479737787578908081456844073546179508748012210779001559319519812628763357026437074905258983721902218910627585183431593276196535536516857954798163677191718562404618734562149807138770351049031769784879067404886374219917589210299043546132895583412496385576548128161230566326512348422411377253162863663358169103846867477714443397577060994500286094778162447909046279833375430759273981950183319265762648939380392354054243980989105980395136138029370682195022664587389960009461368702295061731916489296210801104032157968355124359346906160700347895876730568353730242397122543389039625607899903595960453975728904026226871352773006416048700557114990653796911231577201051678291055465514900089641798567833488472592749639159214423703933540861777912417344038597769614372488826546092497627893012655919831055313255118736685445008199511064949487157073143955679953689135631396785156050990336567193283251714772714821487361495441609026462993172944757605214604448717682418382958449021840686255146905622861055843903920831101067436682848558646267903291231531680335867942074455571163360696477603224872357562390968121137095472545243008130707537539469646817494958983427845792271520397444709556679594819595111990423393149333036132383179458440069686241673151932956280931832042469172573003809258363897274903488806852758648695477848746104425670628666367027424138919923308243375829689305472059859712421399097230301394132187883146556813076447420534671024662484087694040873383878196451450797892629295093066032942261780947948100597181738741594673740778256278737734014380144465544406683939468063527451326364312538686804248541400167821450574196784697634447898231661516187526546470905885853986375210464986763194847312031728591466880489549742392672125965046019695591799654077865189771694046975949888204881350829919355664672990509346507720961175667628043938692879968639725946338040142498055760345119177224464432779501582550962424883537075882884322983496706529461914907131191206574110591516716564289549040867044799073318426673466891175931638628758525594272991847591153646249445271323592679057785815502186589685694800575634650830461285584540789244095889748747919822778723205614891573036478677031741803930321031313921202917934476556220314249606975509096436056831048981632551670106871745296111700669185674882939424597285653294146574159551821977026515409837089999564910836789574687767959341573824589271827396983183545428251773218868260452455251064815696373700279202969050197677232003214261775152438227342644712807258931712726100785822573073080610468471949453345693319538491983495108803322222449893639820000815338131161555084404945353967978242082545201931793380609892675632856128124701715666104715349333700332208906451084290998088671967059512844484913466222443941594797799772393182871031284424366944208655624063286419456718056770797759145198249434247987257869983425363993909779256438458370388120907368146302596122499683530165727092720941120668842604443786310979835031957911314609632096931244227178922237607073720564759240310515013753854865677918791483136867826987976412578453850198232559107286099901809611890344672501755002510715846110354950258422233344230742783882138617558657112698082265046036145530105792391898937560343546234316180019282728833200859092734831024378308400697187703888773378826034119410621915536117293220017309344974921944112595414929805929802136886574045835373799087470269353618959061840683048940551606220670460847331071667371204931938833720790135247680028487645962163132506206489015254884221797986942228008614195034714379697577844803010157989556110785679666766180785289265570641174249354213855151661660748306396079284308037581234806748404252019696355002157196393314844213666222958982048751655132328089290063794275079545501807507414164175026075677240675196788212737793688463165753268687057718117123240475250090924020498421711704354989280440833258347241027407013301475739900936572366346968711249770689659467120528972764208396899934451785084949604844608351434770292047313999120158507239787215815932708451377375130198020032292516174262782770718220462833179836212266044102137503317064484675028467177404315604464258519914929387666032539073562247348951582178365234245792063768430890512485018570633902565101150201422256908636372205802145502005804015947224960910933467575372262450437540085351883280802167453331546335511736681093629445511691033099556269076720984800075035153682475520878401014060086992524427086539692086818676613055444496387848030462318510650256364618399197889306454143734960306611711710182994676375993529698659605670489758630784831142128095949286862262960718088489935595724179640737071066921273167048261260223405132261373908538883529123544940623974964535567828109041311867390341324690444004371928762754862290213337030420498155054865209001904355082445309158298322530550382501033510994568131253653488378124511223731653399320596133224680411849433190436980418737470158314739830741688311363038932805325925914635976380703184557959346515357137266869809663368509529823932528685827672135346249105795288552427692784277032915467542093884404800562718251447996597000490409745004727282405830864514372566846569937476559093332679878080947501891750365056932036295220593447263320361273906965606552109186127843615813117927290278533737747287449797928517040506191834407598867059708288557008963945694673734970341215909999302852660910289666755586518571605303524633964570752443287695839483377737391891383050641422434856664496014611371386358960344358541352656382996768067994431950087403764290096963868734101584044758079730390656455131542291681537333631635606375309247672421478730896108047757088232676631381124958696898748417928444470335261830514751698422196859243112187147440875344356639650075704026482580425403233655813132129067826775451358892638835235053504173876287618153457731337430540886378710982214746546571518925660231448736215257884676546881042347082924674167553989900979535854009903209435983757343075773571221200159708865133196790713991049468385155078698667817287153363006119852712594645165275767695562617399428939559381992599180060471508604381989360940893883704663043655914308633653205395861905558092889540148133619123119040963875831031404686966412206850539780522122584517740706495791536066339036404366067073486347845351087998864851076985581310480077564982917050376581481798101706281231406556548133761798305625433305654053236908672066246097314716368914637578061803808839037975486670369994766285509716225417305290222491949629454242731319827760482880265535272459764450596072680662284616414401832645586991259469730442433589768898153731973292481780228416320556246461037854134223974534395216313937683119473561909185292944177027537560079898780192068937322550016814745946779331439071770920375154604947804630977915978383915087877266878966324751719979378234871711206694462823795354620836359946093992615714955716687060229563338897736957300901065702933078964536180757304653239460504774348009752500839204871716367323149535892178798902400212276774561723823089020200356499518866257646704689426137702409548276100102802881355701758655133078393990810137456603477060864719939715673606236448042057519808909920811577910934094632275956393722996527239672521119954231087643906108794894723655400287502282282165828042116307665782837210709015942093694514779067661618246871210450179537105524978278841533601706014377392835172059584010550399831719773620422017899103014110258440740959044634704505283118619345764057162314689299538679302670507915692223831163432333836663723198513554889468099337875836326709954201210507595876521335402221416858135832159421239512307670255029410009954283509020180683227689608296999861052424968396112564904090325012433208901244847999523035054293981519366386678785623410292200834900336387706141849729492016928119556751776681121501863920406513067375527487013435209996754731481255883892129483428690580290030035520107298834545895241065674281013932196278363549182584470958337652143990629456147024180905896651386750096894744412207033589738086206115164060878214505701406523543725722234733169528316403770837794976377403602466722596418767170525354221212912537962914470915108138346404235891931353405356966302154197432366177677041947226166220269044618672249774743370298390041945427113508203903374772748774585420211886716534822264816293787941894697088446762382176652771535809242900823905663868621600345732169266240741360054973480496391280436009005018231808528155420146643687647024140791920490844661933321860197507310153482798614259159610291630751122858712744470266668055786604191162869958837953434642152159610277665044005736666322877259333151473965312665154551189327822578591535837933435118505033031248091634775738564260714383480747400783851124910951882974684935106527556554907423921892936775338020939658678413619522198613659852290663912001495653836264344075850861960947716567616250409337385565879707400239641559901587108367427876408449824126142918206647155290975368320330079569458567367370047118613940246472179193637756077467074758738107387463839983771513020898007936232804253625008679821871111700591820486789392663228941654589080948121167793722371633738456654392592652914743347200857010473004427260925958152275083645039416243571217683680053485325743354333985738080080180215589946326537870306553567388222539706946565164492170687632967699133468386073401226404596910709696464243637733892042841712003789167444539986109731211252688193124177001551496103349966054477336838603862566036696425294144591842484820535126790726958987325134047285232130434354120077928252977313815198759506208271066471824753283272787770740006424792825634207087041454938470530171895482206504927118726141648389531020649948001827869765887856617411217763231643467069001900717144850854466551787106477224410093312766664586847994742124462395121646021897373568837984803469307040811488655054125731211156384074924966113577083333056392901839943789651148553574238480416415947234747791737633314093859769382044730358047782501935708402490754087834947204022630583255901246727339550426037196285174173304106792025195775381298335417331585519846928697870279541170622108285404586262301157062880545875207582390030312907674290194930398355160528024167317624440862458330427793966712111647519745079669563395519024708404900905983642244963945660229212565950811809928538382779635913092322784032332269936998556576844837046054670443371922219448546868839530814465414188241721007568812364296624737509320143219789502409501348279377599445686694464935833471918022499650978057077972086457199648765979289295735746262650420198149865757993976634263322613092112138301823931241494656476757452204316782190405839460816861281572154908725715450021954280214505317535438877965644120697059410057009985483933141197224710344138087472658709630070404428560233907294052940733695005350289071954562747621441681441211830363770724262420294379543928836248518806937937171321594876190482242328903718679792023558623912291260713532269793121590296796708899512030773202313541719578295489399112080920087718066924267494122228142386949721690808805756201167413541703645158964249254808764227611157230997670657551940007102433668058708921924559798655651679386283194757617275696564581532404073136340479014223011420956506721732170096426428900618909375247760405423633587402517806412311209102213826152020579241387484867962532193195783137814881283116440178563226051465543322048116063372097104902754289505612883048256159978935414949588753201972414013626123946452931754811033119405999113400941248973586617739389048207758937066768960906679153352468528318862533817189914479989919515956237571291320692601569461657195715598964978670351447535548629445296397428398165088032845559218447772435917101901819907775409489846007801374660911477539291043226694856167284971852580988595919296592799231821816404617544712463775322901464640874200431177417282176510687209252170088952444784246807600506514599552679739779920346455460232925639149783702012963788696480975127181008531875532441328288398201038989915790673276972223927799362611342906729400187297176008433683801130029305563411883976003005729433071866614847601081587143288860326762672522203666006288465661560888182746252377216089426519285468295454975000842144444373333679190041094770531427629432206304196233904801004849762628144302033532724344115225781511222859446341689339535732054941137385410986399018291995169974376840142140668933510215813897245891179147324830447119639977758699898203155009674984959457177380425874307344438648158517861785144123133045944677080203552752740514799477789447730779616398043826540712857173979336457493833912144155490575431134323529266068958517511916100784727735035905572366700942325231003626141332508271534584597705863346615398528983318488594093514786867159512707344016935315045170150675607146159473180392213963480686710945957378991488706466114743926374530228476616514785175994435296416377802301825824434755034464642019706629955784598266701808839766642578616902326175241874030479695562210785437688107033286492801715634526179381731443114033290105655622302379105984362708411622261328712897925239319711878655091675569090655558214101647899473301097919538645590663439958859428608083195133408905496211754567701746894260451257545765837817656890401733385876060541244113117071888565055939214005293911453156835326494888296843423207418684096408330471226356573781804919525694589316190075982612148960142474687628461124361453159029952528361182861582764938308663018050271752526010723961042142576593339710621895032605634130498116713333280890379729853451354273719317648515855272894516922240005799631980676323572827805503982601046836397197351056180397536297832387734725266073592506125829016723868218524553452310101810143848491615930657196267508929362660320932224795576222804307940855283979056093968225145913395463969995100656622371487140172869620441020722367258252166220878454219695934148242651944307003247547930314816626578128595224976456115641908040012123554496116222771962062224526236323186178616462150860441416599342061977428385172531259459038303738162079763454427374058906168052516278356245605997633320008492730884327073432368593882469238869785325778039501276945057931248424836644290750545523448566505325460153275866842429007949136722810583733325422394717605437987346206593498402866482052653633926247707851430098406797942687044829392259597852621202814156228439757994455161341251860294393303947419674770049940977221802447260457840651630977159784145850781247196127076329720138595711203748597416160683154912918236461904363924659603649449827977546381926595497264708093921268807094623986115882857250400842553086939407032689580903654585545592798452981246157204248807456660824869847844814920817531036735302446396573221178817220341003034716055214521089591284986696252806300321066432995122633574474040516018491867034344597264807111349170280926058397935315909957550885262423839901171870183090150035111106205367307455879633042307127898165699163416995674417623574648506926200148043065288017388581345107783153858255151852070116789983903028350934351461946462083646803555076042329022293317569559404094801807242981337771934569094079918035016248591911049294352542257729034032272264028075023304454341916465149634543602172713370921625186963188104401590579766185473722648498327600386738911585881141087194262071782260978397201446137526218453545950425569441614404680266750560866572047681348803115449463791760916377666751820577487591059347112555536246102450089952484805348434062446260459831468685895949204155506390487347407374294260799679787881150349616828090867994981744152047942115849352234816923857257974704691952587593460704118848853596769255407232629737875667490735928393708936511481968271436670037634177684621499786147271664380456423570652497182796451486673474557616844794236815240616655321482565242379718321781970311917897173208456669388158141182826381634386112381988219929233784704678590431009955785804208586520220064878331868832150416876153102847911848512064094097360791074710217431341658017962939014070691907965220764025795585079075034226393400470208938602672511636207631408296000326186566737449343816696729575924180881576707772529726990867236140047058700076684405878209557708801679083136763515985706615952340397704506700126623230678312200650675228494580465108479309782917153812135574732407898880023346180686884698688845306217634872446149909715991248939707260890947100816988373323384899526982575132736328691616703640345282273491110597030907431058700262063532818874379870805451264135717824483928910374542168336898899909308905811525110995587806728902324121574905552953871701488041988773393560513526495972542105517309643686114883728366520405250193850936835248840344052572833203207210655194945912425652468142876150362689977421367422271972726762059278747843308077463774179895434434944404538890839591617274976777413713548163894747523091325595542203208884914059477002708421052415014216890716405231972943870041044962767306892687451283110279547801198045124669974627314502597286113860855143606437322220437876750181476175307736543842729130001684713237235818779592588017911414348167443074110410884261227621048347431650820127681697623844492683679847848872382524007272144634220231378926567334530995559978125214918085288676796117479568490781595083434723574975864447134779742694726491438394661414225046022265378708805638016738591759618167285749465300090293477533874976424288614425501916908334361125873814992061583896367301810769489398125618133262002440332218484803893945573940596765766796538545012699883969829210712913921664078422125955192480046233833435397682589838700258811538571047296043958421598616876885223314897958970441318861475757590305277873683421497127975509768797787646909857056411930412445517272342429535534812574859441200066835664392399544448058878561579985044735088938809123237032642952638331534340959112792369744628555226752907893817997424983857588059000621895973075800429192998436940358716159929269664761325177690204944785403058352877893904749137810735410299028628417031975470028847698480158083457766511450671353580480622744669940097378851456439400746301285432221967288357449510825587647328903547701748226422634029629487514902388591014299868665219141613836574078009992202935538996331689049106123965427821127153056632439470497383649828710134008512881647840547472766475517308609115264397207794915256347932052109514116387951550848760427906784538898796064933287810226465542025089768892009013144008740031095686294812499562302872850284892553124734268449561808546403251001569784513494436084420066057025698658563830759540738886234250285119580764074482982139505486691097010239327126406643844789589860899144225645010478533583427311444029212667412191316877938248521996697914904339576619257090209966303133094554811692735930174673156243440573107181221918352273621039706989697878878864642989786537621661947118626640721674821671374288498176413985939995037645507028403796803772127549582910716991342075943035989991084872648653379758158446292364904899374333260355057655564462740405083145776903551912115758104813892555115420487211133323166907696230071566557653622215924112104646412634780185133832913081084830542151886347457659753704066433845838891844167026423426444183057697930580222965466803915163813261176138922544900262417998998088976366882506646732772812878751224329227300755696071356199398111049887376768554731798079236404381221360650452402962564311720727892705899335997955191572500595187765931303642550188241615914962143059350534947434022589433719729807474097054774402361196449046513868627452949170901366373461938961664280731864247392870811175401359025867922344942389189806481443386872287940838254137745800220130682778611475035285615828569696867209425238518680566295219083402640284346176973974842129643661988302700113200182503215370347537730440787648476408103160070959350147407220584339435182895121494045731068045843005655188260176525362935949202698369598870540310985618367491535183919694886695939013692499009981845123168107487366824913098442889592121582914917961003046061458953268764471683234075039398270936194300750608029331931657406264098102359372961438768337942061109973736973344419861287301326690645125022760014847363084658744693161186109161039034572798458436705211507888836613828965100667256095269649101854762735517597154959070061104384605026108644408471970461559851395101731860617242322904979328047915983888827959778056512933832548311436635824014294560440743136632982091771197073351263493132875640874854075392444822912191786736686532808336570588440818651455715256423294488410302004214600194001907161009843267842133012227284834208139256175601046944772465249491535341919019343066540098411730989194861147390087800372854678406069689651403829062138485569422486337655088179099678142482159083799120563824594628623781111792113611122748507529104329247430621957401296916205968603620564990298291951309616794301901953108779486264050184107553284252643766867522894851598498968040744737185677821112095711732156693642133973829697325080404058518999598095330419652092489811983899833958185349169403208857365454582040108760901119899295512492005575638203836332448920805408852242521478715194501101467246282076259681974927087891150344010992483969370160846987141542860840343279434425623279531458493625710578650450733445408098170153864223150074920933394277712452281647093178089747941286268841639619550466017238135765005216024568155279667469330105747024808359128754086650834465562787128394770752010727413360907923458687256582231053875819626491098241615419968465605132977827805615901760320498051249505163725326832482880038794433992705981938135365240816970024282182220044736111152207157801301265153964999226059748398462234939789209021568374586954108581823013102784121097359568130543578072763803702755064775402876990068006626381796403476781200890572478200333576180671809890334395062561070188481227679758450162027001061914763478363059281431275143790473696656964953778716422581980360928780920123842039244667797488185986172516225618866872695159436255470067951558748467781944651302878355376469234437689378166411733108749214760812897245741392614548785321684383967630042427355065318323271854682067666403758648430570055907154831677293572626937588372499066650372219189118761349447522806947515072388076694368462934033693547530758351902422341007956662233045208989055091846104394200951947068381159440751048237439709585009560702864272120164321832853253967212897132837761735759301203844431373221560923739134505602272030939385321859424573512309819799689571237859823971507271201049825570814231115363460345520873384085140051103316246619595465639671873499716986784173418374751176873286686057181474894577414934756726127150556641645996736258810965810333746516876638619086090160720655127817722757951811495952156651541908441045955103833460739387846291724196164981907407008361049036379576388394280892470677474250178345833447071270356236859333596259449363322541454550197957177020363078181287722299987439104217058557671056441124315682687898942955912236652059494136995749838872385788658294932627795723340701098159450544804108529948071279336292070594463907153503928991105543313525401486198385637235160265074447315052245988807491951999531230038675811356057292076814419081596618981495692531924229339247756446454966476050556697584346770749862285514091805723268655712214264679657957715130269721313753457280780969141151507535949913737434157658034174054540852712860988834690099089633414263942227341234857023206608254067084795154364392460027381005243947555541644177938705200394662575325251769313615080806818488965831471517762752583931149308146417856976725812512128149519805869852285086502332286191170561043078900673478945461476924931969579709758591853592191341137862865685396602376966574885494992557549898126532083634650555011626095343056720240854471456227171608482524878734753904557228253927270146627875999008627180348320867803704288037946275952901686516122870935348881241663103523468215305616942625889333895912804017569848517714936406283871431488977537278270451954757386478096926684412677562098223861748844909979451355199777277949254944934340467959684663784163469324545973566469425532009990887517216378145058529669860382503055684480811999497369965267003803938616441393176069514866228169464976687186909083666827161417216537554899867048727867948058316492048979855410325745576208456288894485516583705081971673852079407741172763160626864040525466563279852799582391126775282380555563754098609757300656764947123940487508885903411977215241896922806348365589574393778844131736402855772326259698247714056889571360002412377426383534820516583814692641617400098227517221923757896413375569587835003240289704760827905002468296006730110957552600341434227448638311816952611930382966610841609192947263429926532446118093981891771860142416281972121485083992975821300258475302021907676598789127367063828682368201746710974539701199646768287872518638947705295089085367775118056627383391746657554990696922430803417580369639518143572684194188439110594695723221892773870733353140446589901261828279772582801944521857582021597641414036499002757869341760668363362998879713990958983322222776412874687222310750439578213223430379947832164053464276759802373279847974359859960348875610460934040824321632956735331500958650806227534355268992748594891808970282470573707474086436302168194832731054037622005222007026514359106438050120792321375396856143651484622737163538957533410171322327557878121367141677533957058909284232370058745879194260056047940661694726444644422162769483172997996117185118596838281113007551641202611364191502421527721142107072341203135512128187320285167110382914289171531434082544132084190666600056308727460766389771606449525433528801478125518565988687952690465453686358790486198333816474726338038526383720938676395614992802337002639278577778349588212386261829296168961836315793672116566852368349072794386634239225156572626471847247319178776884255897306546538415951171940490267131572790122200926404499281919654959253837539691805411069740544874514660587380920330487457841008242583919718279952234664606398841901144760727027469981987886670235500151207268360303193043652137027264594679648888114541112658159590595355163857769296617596202122785883880452735585444156451622470935026539612750954774751269086284959713734863056635386112479135918716560283070546148713006265368252559924988517789515540669454638586652935875732570348446821669448900442626395246536748522897269260207350373489415153658217324112046736509673908608797608545318181746973634691423983926014338165081150217553030755368665747925692154050929882758239117617887476457349916291066866567291990931093700404937107353871959186654145760944406386884111252583234739301696075487527827041484030687469997986055355071704892071847263243602616398081487498369680607513101187353282152481855240813079068833555709984271749536902128665485387560791287503003554047394659586056633005759105089605437023077874993855093549686440359315793856300470278760071205061386218060258414042958961920017527558703728749909385231218134969269855689864483478051030558957113519808653646956740018181372036982341896953897614320100618224024406857187249370385909002265635504951120515547343036142664354970885172517762292195931444114165505108282228802437224764035644098417452336512301329664837160652285295705540372405426605226403450155998135440613310599608924780581184459221104678955106488711300058571731067190991202167318211228951520447290138999354089541184499998153135072688929147151085725278354676830401769820061530180298820692701912162644366267144313824791847501833861543763987888007239448144592015739744741211088153836543377778923033896565593806790993931841288611321149705109595527808063631472139611118211983929433702915033801554340445649495982935836219042562578140911698194599695530843968074497214281987121532501558474989000858520486976145837749227342770146840255440548617068713392142973806363502490411832506005768223448569313173057804070480055352859298640206603283523575634578652071210952232940910717363214869889120838482184575513603515818242404635373836150606194357870816559295602911769540150795927088335088323019129251249128353065825275758523107857691922027836086974525176434782864246668617633038741771258057943173596202097373567677983601075459670996572446330748345941214257146499458220112472278000591245566222337801400728638574432313671453666737842454774896743531107295190554596007061108553425347823480752797521247357507679237880012523581453010553696510986208186654905980135799613760955589512561575814543015962591823020441265392510499494158482089366266198229936055411112758550506565655780116306189486045073065595249385214002993610326059064454330702307631062801209331348339456567116238708665187457543181069333116374601206741566473963375728890528889370798846829059565029644310048491402667809369077175210715374183595981563784872366600797939604884723375441494658789417806319352557611316212105000730384068569739630026148288793118737650787563509853292605542574331677087232857443295075097995308320911411958255027099101874385697218412792379237065831062440018361062788834248169133450022925820670925667142600108258424620825321846879369175907207456070972786480478401848828174354375053457019562251039345018079774964500718962275628457636215971749917030089295017063011794409969696276330425782250101362555890483330521300563157435810146422533278908989540872214752668274907097258751009746039604529972005533099578521551552783480381350829933012789794041256895044526384635115367319398979947821170764658125922471631587332819671262572731728333707149900870032151044686516670843444715487797009407009449495589858091148567010227174496586061571561378808269541264297868561850285941192486509618767160146270555838170928398796146044361743703870524101533328086109093119996566512569877631502865074382694995256463071743820158863279898090770771823998411727274713496373132183756140272926241597558873352722309283851071390480909362592360865577828674856833066416223188175577331426393459382783634494908119518073004496787197030418972682563389722747931732932831752983002028054066043036610993828637673995076561282629859654877710905006467873284757592032381255793326537891672314754384308468487672501128686007736096375038042580655849904183801012119441318865301046682520782802205354354128510889800238726812206577914934610944350646059215862959803835696967372433283856721351233973940393716305137149077278215092916816268784959876833095310923472971226443561686462644062895760673295814525526066120295536871210419548420769784551599400382744830479546364378705779774526568818127867341237748994664507692495812553085617193223929900510055402819348047865932791231008683236980078443048027995770742560159980504988269491922405812352636030501735829207449038460144406855768174765432749837341406858914954434644091076888648766395917946983511033772802105314630821245292137641876126430029949370940502998971213706341375159390469123882147524559534578478531379789432512340978555965862674693042662319574593612672158339168530065714742949628225930736906484779086660008681691852783258043652646531148167778039460628083708059994365565407040160439087805838683355271752259714316596578901522646241123435756596869481794582672197282013711907249193787514790424545881888910407388752965357757278300920564879260313550460127705835788351989219835017701104297230304085178812654818554148151327373996531312915401382903393484130716809805873838730907176883897160848026659130733957357665343704481454203428422017608788033633729294761913937118314314811740181863757256461182620861810817246624768095226914321214896833462214530740903210209398678028956735622073973164708528514036134163388731052507782019923076091325396740640760877903467157844616487702183948523946871842744069363759531981881636502123123215291410641119121436559074040335053428669496734391150363468813874706269993392619564687783477667037395819426577728423500430567528353918031979004960040741347105730428854722547177911741194900527373126804513516314102935382681932190885431354665801280261806846116712647905960152888259921614731659576546275391657221364320388537223427126016967986546180541597582018687214950975587076099778417433440469202999511990636530374560518624803981481791375358586568998389530975095907741952987596043151799773622035193607837985369072360019145034392372358696019048752779087642910233726524093976339593031037620550130063614301118616643388254925604386489377825158672083704931288774905348534240718348642482359906659893914327182756564181272085989915257990154173435009050604547654742012870138625095058753619545801773502943557860420787771634722797505648066123914429808545985523223415512603837865886757842497533959213241286223260386323934191044694024223218546093776724680918528828580683864725036735803409975759405666839294515204447463820937195826899489388621273834270984516079673430333588648110161019176817860963362391504275938589914734313749927914134416569623586628255553624144917895260388980274199344498262502213282388453112373850233618350799711096923812797683435088167292948511477467879395490660634442877446443538584662993897442947314747781556917583288874367041992755409191473386485007441363155913270203411351920479362092672237972705436458323241401766567527848967974607475963858662254142966540004035347142742549845901426205505822062102668391562853350833274313356002687827813602331780351030987775970284454311620876226105130033151855379298917012851760491728320969014619077670617940592693646972818676228455930896661515253327743347379011671630033292440722629745633639642315707263396181609586631360200443117508537078005032436684691967915504298267122228932001636991590102031262977864094944413993016910889270965224509153265356271502392190323918880606724177701511587194214935009119234475637734760808199453940884919202351120650260346948407188843698358741555235162449067766158951870161985655622303487666480077276796483277873268767347816195064419800296102862181994457530841278116195513504932315710941672352283668007146585565906924075690845328267556226330404658296504432647549491807229416690618343025469448078122567377556783782762191315447859326037763237491523630120119188802496443198121014502465418452423141017741342128665446994546402816900434387918561324006219540563651680864490510727878430827463598515986745763703034478797789361628199972132778794645240101991350604054628314489095935337693951082636892553063600406301552187482464257392281708722289654507803355999202390415522478843537407707455122369251760450525089012488316427509914441244829320718986633033229656963032407982128626024933248725944658203670253873200434083369755510613328889004027145791186050063125942331146754287278380643331020491857664200569495548461955511249360819724100060006141825744686191082297246326997726309210904793980852663980391452186634488688077543734913511921698354697212132738713159241317933749264461416382603370305926710251155624406128988721200949280969451711955144185376265845932306979870937989304653765127667326371435853033438189792697343282631206932425490126047789040825171574360942745707619924971057179458017014376317965649631817825261529962705208010085763264436750419673892548792768134450817451056676113639079226205075757573906584045557268355846604157238664238197405418393225605876544930400986582038859050591942221758653635493931338312641597096446688180421383859335180780323937651825371703055423775673893134381262297648846527357756122705940564075260010295386156861150536572442767769985158745096279172370253572298334623564745615684018668401708940891349311774595962995949052763041998370699485870765565767209371684961885907363667305686976746743005695473341547979432705870070368755479385036914761770315520966799054450379135888947395555801289936642178571657412644889027386063225003942982272805913483749762451313993931020315056153774859470222017353645653135803299082427474836945234393718753198171194352090689078136301325460265357234404917420232457112587392399280868982109189546760384183925537781647756966496871702371345339473962951286979371244241235153606902762764971025404711366195257352733329506262791722901527523995590278575498371156968874940549631086902267266990659115710651164184810339207756920348267767567833417364467365571583254479293602287606250212852951310551494529297469468374174202009775280149738563447501326252118862541932627203211151253299245340862386257074424956253913600375671881487344136986179728652649927602130382426043704602922414476178965488313546933338011993164051980166114616002131283296266961471091938817896184393832563868482625389806669268294940948300731365608551962235136662399120841674215358657987252678949693014147280570726361309281363231290830988615353537732895503016391946349704405147594072097976454731676472539201093731475718866740594028777423797472659786914303122825936639497718481128387527725154155505199769213886102708211482469753675625120497825549597300173125672041496153995944145896989569762466574152462983187992349507158883138267761422104655476349931290475856645703430423095409080425625554954845915697794557506776479092199693260106356261529289636185349973869349188636094413461683737294478502792878623751778155126359276039665254979262581363122430319306524720100090656465956922227036535022025921597240448826203088261869781323862073096446951139936708160538534354054388774174204450226652695240938262006003709404383611059251985738884280112567257703107406085229507616439288776185201748126541751841938534852509727513056363305479726001848528012533419454340672812644329065498955614642468531218887969969429674795507785394838122345082991012692574107085904228863572728842130385835213346964963007353651535597438623899708293646745706021109014534212782132820950733643674517446176610716984282101602175577244776653180228923365782692940622272531219901941040766058773574470911057124077037517561160885652165476772161511268357920905241786656781903447683153067628720712855131915956880606598974802383041280690571243126695149001758911524739641876181869791695181856241434350992025069576312249970669392719631416648573929743348744661334989175771699495267755625453203509334488580611828984757012728750387247774371669470028413474156013428847129735049219852304731460204588280092997337132009994732838607991518375919793191485592336360496645620499141830065407700924119327119374750953783719198272794846749259993813235081486097177439732193654083413936240407159468483187441055919150125358841151079971793877001407474284797320738572867760928059361920540898956375099076367274863093544341587334815693005713305289605138090144677991926104838549194317756625217784737763112050666337479427698501873959208413312682489637976018844115973635814858796552399061730480526323357705869113993898035468463080960966359907632056825270205436750965405816431824356424755183287452176270497564054994055161746127890748729236746903543688690458387599079024900553116218588734981434995001469354491059195376217903533471766670030105460649690685756598461994113138023004355689484513509856569747901572624936666445382437770857596563320045384538683567282739104925727112194651462855695783107462394092922812918001152131259805955042949115311043895700003780551445891027230203648303833969787943316200123162236878146541433997579635678618524048330713264646793207913543856041454929684429935014041451063494888478208813069364417968885332960786315062967866852947884301796070461580627231067331454859251272951890245610720677168964108398744123509842570006634000846134197296991331589013331482238703776097057902450233377048897224089582997050378858055668236213911942142957883969132207179552379969021430442645183538620567526515774055262564266899219718897683268991594287022648356369111733583601583193814509654635309978207623459146947532696603010796476549230241357942074575706334282354611897307450706093655273391352512262094557344988120541079489100356165143736629790386851778535245987241337455771472982486013029548882432876786788744168546746746743004622445878619309102466978763803454944259225143769568864375263847999808209681742364101539330679133763466700361387892671602530655174730253696910994927070124335311787990278754761696905532175703589113403250895800869657200228526848635756689200757742517106026850202562937202917186112268853379977280619771027157581881264554631194153973982436797855283570854057621748880021371533386540536736264374841369469788084314359166491144584884277679141784794851247634918341274063437267190792859604316254926006514941697940427535873610195310957364665239976152559174912739738268424915255055655445074915453435310114120624249213420426395714398838181047049050262045194609905124484532527549784415935457400909680962979058709521551188781837978726109376026459476046011618825124504518536428721713768810707332507834864222855038614077332359512617698916469942278751358671996053234769047743522989640351182548087486022291466564385289996684492512481362920646956871890945906932340294040704536800517396647185232171857392132925382226847606597459634022768552595983455827215218276062033987308855803518061943203518393786701336311921717739436498588727081335318791691366338366396045312826140168946550875518504439786085079163852566454665428744125033452155318663258509622556729502150801370120318256794977488993657250933251325920619352653683379610822329329628252611314535728233073494153630314248812873058158938134095961109755185368972727303465153502652375407704083479006534492661852392679762597199578007020275428969156163520226435689561940063040366688673789794032785173508356561370705246095832080893449519024841959836459959681521657212729391248977959064365861179668479660532697358698491865996139737215476820161760648537351207779418948916169373528429383961397660197569749563262003169989688919864075292868598397631437483182113725576520982998337763145840654272176599927073318669991988226605851114045625025388425846462940774097968081367973727861095204799012933356687689162898832282176071489186023212408688306015475369957653912537500202824697769540660519037906904929232946856621291649170210554484507069313340375074496028511745623553646104746171821228207864320698616739519566532348475942786447355323386327135588454512404048344054374840707638787712912076693206261858100994347502863423135159517587249492726325394702558925476357759438693952604066395420436326324253227173937414931485957245537069521812491824646841405136884928574490740718003562345495753703821381985196617342950556655781589485756434744492528200927405980583414344811982880343626808919906732025355499635927442822252952790338621902741960645253665439895073560822987010979756559503114185966361219972453745977460046802763171311908157152647942899664334086449087813911950198488989932612365359399583411022850316150934931977322913846625812523313454602416190753057691177437502464001972504658810473744844003725248255652497258797946288788976705817970442313973229548220467947977774578465086814047548275803549159032293565336107350304956017265257993579152177061742822304789951793187998051987611913756825562254913164845122717378845968448405839847472915816092849075396787850049938684915422329555490560376375957901554758269509383117126295768379618324883063824939359663878899766452551237469955729930330488568964307341852249069169166564328268270451728635451607645574294343821315293678122191660123713135465036537489620280512745383530511832968662551382263766625548205651605251146858989515254584406940252740372287888234827758298546746986342838811427815804308221796917269607231247947159474784276592941065212957553462699119798218982676319913161981609174642646322812125921968427325067408936019282155323561790226609913409879230994488082312412589426359736967564977986454041221414797205196209423313949548704581112009402025932705902940884917045210211344482825171952713205271263508112379344320572874046589496293392680073029761633616557475310306101310825269812909981078538946683107475495679253092937646769644919665656803649015284921352925337944920616838389079234365354937666331268349535442191539802313397542373491177850140899999295052338847023434192979727011205396663332561140228064214859107003156542840448872248471786525031095832127507763998896119232524388394663658797295970007114265845140830633740312439802275336819655335333665081729667713074759621474109083372849086503301521203288682062666357800975748652622082670771834179453268899604655590655057401315780031695922167804314126862121410233424399675939831030382667106932806465672288796767886300996391718777848532993600818838622208562178634250349528091028425111929258559944050536618198458652907076595780804362843145297951311330559284978852646268401544321164970748972668969622553854880019994360794748188650496294795374451363623345338610413483831547096694164149033646074078376672475537150156342850086110830568887096690101207847584595858598337603066142156894645281033305825236357172562060158922435175960037037627650376473079173443686100738432990833451541732168701238492401462900079800725788262590548728488099132762298796787143222828178066237386472767117954322664232396937796588749706036511048449981535285763109127175728347116004665880388384316121491068514680362812991376794952037926594099565379881651298867992123893071196955321366323272729079383484215870540140389653989285185125204502398760762023635673356280205374653976692942117240864112516880129983652776631082449148109181197231990929421422640006000292654987924337384781257757221492755778998551918936518571846596948148875428033975069422753343901409319098921916245909442713778012824465073357335536648817384206812975978242630355738979650472420315884696431934776693403797654554233478008601508861475277180086931067669136722176172196209291596649454974991471720773941343995508384655217986400331444830463801344689969283199077497046423358665590226565713116807926902248759033173105342981623636885926481248365796212316568788400320179373269520721640553157206029266853226505824475943136309952063817244965960464408262582016978242004887131577650774033015348807553015771003068059478221703258307845216344816958391301864815255938610454727652981573581448829788849211576403998119038953864096951579521686639365343335771275891461944309325510278442582317530087020331125642356488027544353106146616741165578468499139030664830121525782250584846120836750823675483594575260688351115186718097373621683495336663266322942963705171034268933114388323045242132529286049512292770845271210631543843402789767995737010923243006764013693078782280279217557228412984199075217538111903660665578099876859663121210356987842761902436384705528432798217963821847495561406209681609212972092182751689726091863603582024785323914161144218498166181351144245855999285135871087396537184763564281189145325424071245691289699002387524466501645155629559060880970989463439950675698146727432938703347301367549103767441496553991505206109707377662906724403615088021397096036909529080275140020299129496916054239270407887067237041202368247591274871929515690561219806200826933934366712965942558611403197256210086596601510820668462172204446252348127868680428623482448609733694607053219806970692708700681253945066453476885323892872952163632178288923461010953398313630556909142019845080006830105094676414993515223637333139640761870788055819305856072913968956442752567908587635687804958131643955100041123860429593381416345794970047077677335105453195211217359521596187723741644832635398529275523647328032819563855653914783600323093548550847057048865948576119473501431165172769415370255871098356281343792761326589224840824965938510659686267403141181358153298416331346023957716314027742376076044801057746943397968522537875711563126710073671003791780223839839692135806764317200392140900054163444911241755480211790865418635876994707664430716833886603262500205306031738988919858843699929849947485393075575397675849997141608912846102085631433842369082482472362107404655724719107411142539349863530176337263078694092508567294465399973195439425739932426495214387612388371739740870444276808908453577749395619876668966796082488329502941990813070882248207174609400294299181445419484999712908011537333049340740311647639675618443489417759328705577041768627514682758027527076963225001203167894348301871604936461990671354017759458560978489919154882087065165861345183472830304934813023642887212938171215943589079769430654969806211728967121818672712813538627653767400515270590036221443514678319863801726483905273377768835041514879068449781745090492743659158808460606827500555449568097407923304929777508605818221069366387429829310003128143718381906063319080555033827175406414213858543827888738312354655519568822634741932294505444030103935163778165186402333658690954492317181605502191639425713572289614053216582435791458345374750303515749816690670053461987292678864328982223037251649549615516089005792881779075436841205392985648388956591801887485521558676316778279506152753353129430553979718995584864231329432613169972714358913811099264873237679595791408212255313545923201612531833746890627588740635464536790275036494024517398650328943701459925357445537407013569720373322189398109569664730191998846253428403871077903883617588450733735651716417969208426370926968342883279391905177807943586704853785625848708099260878870227048461177979691397473795103995260919976448045116934172585352145853644640715702831063048161561468487992921583753624707835858064448125438754330865174372248756153745216450983096124048967757151767060825959081799115661041239867003745601788329802555521755736228406059215636291925153678983486563730399016695328228564392833601625310506055280413547708053541768461575489704248760488802817545597894631361688385796654062027193013714481737860047373967815971931049486658455288739152132094575928412460505825748459232246508786024750954792675101466731950041670799629714545058122153208531317123112183973465072328015447670695657794245212290940789504457690059034586679182030867621099644969470756757128479173962759303476568855696193410670681927354553375582117306209529780064647765418353398156955542581579898951021388857059552806976542200119001326749498462057818802589159931835366159793054233154557955659350882858597731178060125361173134165297102482389668764770424651370563836631506118524364139425358364667415125983952312061407607169980044954724783095232044347106763093260101099100250644062248931927711851050260864036634910830290759553737500347974613551796920246423125913334884197846806546977935147829239834993533197807521265171149185146367443277003903431898350511939541326816615702866194313994277674533090408371777138375029781850447033478153910560196730575694758231762360260695067168440400492446806517950530741503723354582849332314301282962733948503491511461186017222631839769812323493222322966628398423617931055085909804399801669037598506075930667324447599058738079216080034010932011563096291184315153651985145501792684361890408297093398450982422112994505291455918240241250228474975590649392325422225891965706830507683672140795113451329386812805720262679758532416504534262796922398179866673444977443451242525485653519845677288942638804866967981586379236091469778565089150993331762766441735954924399377263806614087526593496669775743538927026584874780798788382220788829211066176310493579553359798585964881928999685832046414990279613153223808344503765638594808131284541967866800477175508732239411765348897494515662015609408159975846173475223034456685980121669950093394973336321869462883015149540499006862690220819095513356831447861620795415250501476092241185150236476796600106314497808101477125860186461845938668985403975062245183068766711156148404785595669589397608825119403866469452554574551572531431841498182398307041651648226378180885280137195189568622217217291555425497339336948504033044272224770373986191806615952201496454137314771100150711566465166435154776897722891141067973347661656614790877986215123183474020487743138513780044716166282295097698385961548366008920692107299638629794634401823389023558391906584119497679544929960026751208989394757615014451031329823996203479809646720728033032757511633588129148148041126504067565691780706126686898568216247162983407195604669683170516763370309739791998460395603998264673020755356947108007479233860055404202604173304500345033680619520773008853735799383823045537328943552336410164026713179299483221079982366988318638527326947672432645413292950576203827007602779720525070106140250287943303547885181230775361430999470224841919582313615215351508199256444137790862254584446626405617217789377299095935236840037323914972297116123571294587387503456713472050114309476824813229726675067840031177533314360648780338501231737175191994567171621709771615394498492353835722100863134994366283870221637458825155841151613107581740063435768127156245031254938980787720276345175049510292958336255619447885883379305797347287856618474409317208371571533066826370138283729536891146548288916787236530333440115355813588207729177527059560954171519286853540737621312013354873641427330856672786368503469587922936439218204412258402940033026167744465344258299867353473632652511367762260351539565238394299842023384185063898811950014942785931299755404291210246892557485517798289851411368553414448796009244948116258073024805213634279125543735109047460880544465971513805735766601461635826832942117681413439042589097067254523331446015143978435983869779243072135226254180258254793720879402922231032370270887112354599504695504193234073749306292120680713501341392391141088442417886063764191558091742758976083731951054903517041039674808050480897098866492994551495322297210542682290160091249669702386095682952990627188662611766707664934456584586420375601085358319998995105935405048894689128411489447263199498159622577449832832340577914423177774243639515089122308682703148744329479231399622031999275207779414663815793530761843043064997271537731947671072338106473210620108924056997363340839234906949058766482245276990724953494088831284605091652238934322315271521673081034874363425656999153830506257745439735866174801027684503837827258395526111949203508533895778428280676707306959272013530301132720797866296635695529401565529868426244160831318875668823765265408910324265774316184102360397362081522547685688193844532925791381225100030048441983304123050859045129580076759323804358944370354146633048319574979604524627554483939344865103722825672979152808505254305262549245151219480318637919098419247802164313210576464777402292547778036065742820129930299197799776856206154669474937504642864265173253438019758177459763769604287653768784322966224348620319501599225444511702397649857181362101899813079872663799109544500520741393401182980589450614829959513833516362180997304298369886070167174094990965198912120290811415951209478306031988287044322407154454195146598045047198008828670614626334112161553702960991180130392970078877768545387453551868852621420639868284066556264514267936360342001671499641178521529942592749760899933616959435519755717142888991871160538092658389021318097369469345532802589274189356062663092024327112275461016160048567758113830121245811745205010664625231629116881003194698510889666884904000235793114638624782058372019011859314879472337375530484271607530519752216489154267749587125599804963181018283113103373555166907296642356913052269405779548700316313998887469050256720582729912655420299827110471803776620451755533428740680256530543376340012390545258392605189194381101549243713863755284159078181921737656719578660395663420749638081430994665310059621555647008321007109711916630797408430645771542532438582570674371443876697937779130090965296158252252283930861614907834212650361309740411958447506308941023097657424629744465269326762036524984775191519473058954174757756609482115686694572676655487643380535112641584297090435378576741691055032071410519075082500230212125299209514566563539265050520764868966558764768719398879123038919113086781131761450137928694359272696591427503170726461130044736689333097044528046617280807713735646475072532674615422233161282376447454315386873604852945376214725382855819259780631376327502088910723036615223387720037896712251280376076392375907128944903432205038663859144184847736636804420664528017488696392042420241197968192892531945845864269678398861880413491782094725615008947410969645283153552855752576852289426035920304710509386498543245965442667100951966992944090316411883380480889143719902514687447252856085889668299421719182117957258262394238154192911084300449473352855755673589485844370605577049383845757079859963031504490335784000018767250445954280584827539810410434359407494948913846842241185693892653569811132370081411733915480842172993655747058791566046847973459553509529999067504821163138380738099705219592288999065102463630733136109429072462093098397752979016852379136653637433590078501781867098651859814585119903765171160262163031408046942949480786702039126117683571883327751171916830457339953929750061111775227677317291973245156377739813154394336031906938990641556748984878811151088444485140080055526892149580273246726744696032317767312169265841252993100737030569094080919070400878506798683645620414421096048039149774340327391583501191672209735294637196241557848052051649955412019280416015921912967787766258149365205487518890389193218042342513325962094913973694431851423818042178874852302541929342705104785793953097847412292865338557530814625323037437644727647417170207143210658714637076313597076770775262692044968126351772349316261944837917097104794871017545655357877345474383379698329345983758829670565030041482977455474755183844952854792808187537489818512130348606063469235083631768284627058393086577456180092104416523704263293546115938762355372227271870795467333476730497601292922011850334576541464552105209849239317953469195504446502695977193303772947180773444487598840338568029993422064885895128628828940049965545833860524035073707620138012364053917988930417084901513461364852988325889303847372261726620691996462397092665609113224344446430205963836653325238113350931597850481458511251889562603751252339824507909936742636672668287663528235904516761567376887764259046008360964385104809365209107246345438484970834607425435785591430792522357049240923851289394453368080817836438412752131270876681214768440450668006579403162731031236250301732397813592532806838011217655215534914617884461851420517800507108620943297654980542722225786228858856704560584354495556262412780046803151266001271061379434845304062286893196835059330276568819353386214664326455402054355084849555831198220650619154283555442474271992167792788502517368095336948512620903775524895856549619957084648936150010579631936560114783753975454267971759994781811494122905241166193356115938988948702922720129357128262806460683217911619408029171368236891841287614285738754482014686047067983480454430116202632107829676943882493880239100315246242255007333714448643750573299978425442826896894132084778048853497500839797313785432171648496131909898498389979978644270072068832891905907705612593575757176193993284108727988369568079806033792648971231312069956931115331137567013114148132172787456136279152117938553465444952379434169918439421812357312257798354613412874953619910372039531843237857396057781805832916698509387323578186207926564117781665810322271786579826773505226082417200964008991605627382405480376847794641044271721648412361927387556656963436396470305245493924766551094779413386832131167491837261627486665954239582584555389032511303307851730821832303506736629032179798284155791544011369264264348083568901384123387233501425238293785388987292568296634507596656894912472653888019820944223821158497387259664928214250426834695983480232431116787734619364130910275230038983340890640395018028917701740332389984348074138640887408660282605461390512603215946331794348473787965420418772119060085882356499526002226970911140550874516989093059194566061065297445404420229017687672754270849254751170926337931876358596077665295346968713837070116092054013889612835238071151781779824971748160539340441644669362932452220931273333108349249048527485820716305715150659685327175084745924442971324950287163943330554891859566699767335046550167062790508204783314896372805351825276606775544187650608295891682143049025300049372136459684010934663447841496856956663371531523239426398943347118354180695495594769707354293164002273019438365383732748105406751290368085706565745605463001619314845804557352434352968686474115927892140246695044822294097467502414662386123568266699776037879244270713809241110477100309100483001222014203056509964944201630189397465833884787502735564469648408389323072367165838224214997731757260437767969787894992372299696858713531876930721669347629028751406636853327043323019447246750899393633739294350622208483216371566511477407826701660913508323919934758843326100348252133762023343164799605897013844809987531435018401376778479327471235874782597671891437838166816988280325130443130596557969775288817824972704554307510695578719905941661115030036206853900435101851644647756752785022215664351929122745687034961381917441427452054323075285841168115801152640825952288643414412603316474695312763618807193323638428530548645216155779391689838273917625703966733120469178624671356922318399991641332521079905466707787132285817607503527353022797068940339541131033691157019727391412698860991702831253349205161728508736324189481391368387805815529072696181269055863917430897065997490869703728421171716785143846260087855100347260433680100058686605808778747377164540526029664849772101061448116040111885170043831361672774779407201188223401869657990896103530193947463715882539383513260806360085551948115568494267075389374133385348581244648663661020141764246397964996557626721209370324048473067964051228656024765427040993001202546659363259906819429425827889187050665049678708090450798100326976672152799409311547927263676403223083250277525517854269707883548231133407326235268407717159830234741547191190158545323105465237649437234111718606261028118924549490079077763804460941650957008631331766428190994267833279451396913655434348209354710874090874624863418787008439990187983970276228087439155594903485664958696385551187587059152124932121787449602187465414457121108974185906566553170685356124600812722759067794722736815791123347941899664518362648459304986008959188404031929474365000419339851978654065518413932771431623918453869099038107787431752548245511062733028508927355966774347180938151506644733132858547042224238898574067282732433135852141494866106023924890185597625885051383140024866391376491800716031380435386939010822577991596479314529940961437652309862805055722797642502414110863699109611502055495553161584974645975126852995360076504909112185453764422432905339591869968510129989476320804807094672961192245666371697624254384940296198675174882269519218091857061089783851913455179808085637607818422945910805896901404964124170547537074313617229629318283764842043890083861339984895094299196949381009273150431983800806455333061946439645099571632001738241468879873932303341614973644080357981012726981990925581622673738662277067676848151360072431755986521946220812265064493408467334968800883441478507705515594970819437515072191411934358549407208396431212785139286200476105173116210974006136997919409059629539138404208747563794118890808070890795264522928898784956870576826867524998850359017194823330363623504901247624451096164783198480426668893010876253399209977502014322787651252736135100599565797326405975351426169746573433568688351413961427195555919845941093865087041517334740885433929449934368821680876297806309698191864052132118555936297354381969335489252869602511142485910609093062481261912502513484448088037995096943034643144745831403794993217128529160747833201626694341994236146980529134300087772369615781272985644823823021644671419274609523411561841304207333432632557392902687943923942953755236621007022581871015852178798102641324254484914042978459342724573320315281352589652439779544402555964947680814327293793210823719114507414545640211278542936205813443426038720785038081541979707370541157901145260231805021180678604538831955933444657210898016574059592906499074741635843513559801235817295554128648175514396403262121577768584594880867149330698735714573366398483438952896050263968542506612182892610979037337592743099096191011280344306027954026460421233739273121255571393762178216801026681557344947342857745909559608569029635579478677492265523894739656008095249186248962992853414542631516743546566615477629005578939916938576488630186148579699190457959822151211142569495606516112644890322571765889372083521324679309409681679389960959703888361991080147535295859133393871206654831327358643947429011542378068182614132979130295531715324528441017704691261622328082652661618425688835752954285727342829847368614455153429887227815742671079264509706062458933367081766072153555787165149571410370759518449697894508994400056299694505984286964056475079791130903323540350048146775119337797682469489794959741259780064789197514056442917612607183871197196016727534788894263741611677224503449922161427060096779600058615594472242318548450873450343219120763076515976555656378328832186002040149736652729952809763408144121739003181756252723229174192343444808418073051933733008581641369256782700029184336760972823660826293746746076037702194707503563479450620473616556684648197636301011712916137275441759377817633990030738350225602215638370378591565775018986274707439548179923441745653388719934758273255833561392852804361968551184061852572696736273333497186731745386653360018593741564427503427062929721058264741534137295001817520554662625134738817121556663673945565091982339292019279266061046123768966978290894311295269110467215497941951384357608186765380532718306630178793947150277131091568057866532617681034449020765791627254272869839320401268824965525983782147950245163908050123971560013323274741307936358153319460656650062274542147704485984575664298328759351903074143378347594771803243235215367122294186729016899831333856258420888936095043414913397019251182301719503830041897997504266863401438806414523628398026993534812522453857068181673531971543421923572492663322144104365817117432379840513473318369631060751221699870380892366418755907992568543173052865644575900037392045550555269248993624990302555158809157303317691234005167417034619529544593485482640395807205854079710077348872530203918230544653723077230497991127764986886923996548583052149930126628128493501225677994373759353903608092235126818124518486381431173352387832712955359009085805176010260591760211330510587327366945465640826364966000257500384246697682176641635545955530220237693142908695076131247494935140808943162779216873408012831106063441405765959794912765870703007303389656790291137474145672118576370731965291787291294823027469863113854994168416221253066194423469211555216638350729841607280327657769310566389829489973468026409332152195440209287615622565367826850874107201871646701081573514367389755962155847657057493987485905306717597800081610814942305397882177490975196117046875910593411249487204336468353058969368048329939812675663080441851927892897869899921998529567477144964080120952943315227045814378938113206613539645626651271147024209907768271874151205751982522321457594450033747294687756554451532329744964502965597776691624318070383297789023089798002985915622457433061108642197827960692871161191829873297573096118582676207851847473595139076066019567273387002741499200167250959604647280585641063129405888957019748220331116587752819467226287718708930619943250010489571993315440219997929957608489536448463302950373077568025801552328277764324460283479496761083006480374937070908611383630449865869615215717486010195111747294293772623634296287823050286403134853309914790068488796424932507478223841801770333373433784089218234130516217428083412391544256814887110634635764471782578013979366507667347401738830576397131176335452967785840068469888922956095180966277959732589205193263522366887442896256599492173629788766957114727607184701239982832377189904197070244722620362304093365485325364110323728375054377802633230081136945547433977831284597759204286483473238041540018600315596224275332149835226524872708929444567719304828683424880537721793637832988290320072090617449776818539743430009498481272989629856625765365154366701103923963274455619723130006591850319649656066232966849382990777523943704716377175009130728570731902379381062599523552882830609481498454519176071028439838683575727670391073328590640090143474107504266943872175598803247663404303116009487914953999302183043594101937956674783671302576903775390563574928608289772122856666150930165763745793520722763624142824491367777533114180611809373773433963000879102931393692602983401985601375363066031268596043580475400624272670461299725983560760503869198750493555568507609779182229660853868228783546794039703807286430908419169523871184184819718034407786142414294198085878835156651499996961645977289923536184804483838702865110649912955933637345539757503147515009112705409677493180142745089600948588511592605331761784210780253106462625502220570091597588327304386094176378642474566318958737854383749752780877726022316790292800332079950408435327422611864586518060293258371766750052842046237520718640664209692887254301845395313267210910799089084105426189432715313787391913902804079842929954895776222364551347191713594495705089052126247717015212450475578344258004919408441592236319739590283887265012502427682488098751784427655935016055281926760908125771690205230144885703135834377519728233303107263434796400887751897722099711510160691517121701660999968360265700158034126336373266418058792038075317355676767407404495407826842876446806456565262771171187674420420614169574122166318011634827267517213633584665825030641825242117154003322216744805280136636920980526301049180593037617302074357785681340050452842099258464459634516208997398525430527538916415721426049496134738738418968820745909759347353966669879582692411623584120125601869983835040723620378580305873890239496050795564219186888932404518754742396690826367505755363140624338808717608145218388617722813479222103211338721191075972534788989939991125668564631239134807742799778721409879514616424551349114989095422851903721569220120542831015361133742690438172152182695613281384101188573246433075336078501236824056847749781433657508537312449773363878736231280363617522487849080837492674402953873088086767638878494243668707458271910505915477802699137910199842934272046156542004209417232922812237248613706319893901593703187532034088335991385335695860765048857530859469256518246720946517494326843036531292974187448907535230202755286804120960702050116346283325974839167475822631971913824397022885598537454318289210886536599633772335840746214356025951196933832208192733529098030114497078600111821130011377888858131755389654094112367503648354463419096680583009440690651678636879340112808526617908151529261039389011485940292061456391675574592382641723214001007213777989163214348407243975691657210313266355465459306272722219138742481488937934648048773823341521893449410820552496146608167948508643800441770949830304177262853489241382990566741221182751897932176282772459204416254035897111019731531339061110791773404268863577501799258797292859948164706391664471526456688935824653095125368335264940235631394009758389004212549215762576180060616343645014456126395795866980328872939523755584486197498289966139298065043045575172986670786233995968499006262208359573812237419105741498404601519326032760320943569854331912611371602946980771839890755122041877855173294268389653639553946017147044712938209726816144715310525456667012548682092130038596383536876666342606391155669821593030590692247818866870722901752876382501504890929881443830529578658366070806875711633037691016748739531059821700552493935227573013577434590256240302030474749296407845455203648078185268903793573165416814409364055807393660005909576301735938524191246621541544899104376273248831271451232284276929774203670218494838456452867535523488263730493071518460765502339909890153168813218166660476969041491171314519972403366260681566389323148343703047025747748257035071623741119267155202139669059239873360005532192472270735211887312476293567342144656900995347910412145137012047340444053064802471498688409678474034711692895311750012995243661370967436523266277803077278752848273200620605575195561481773366674288323734509573159051694893001838018453524197991202016314640665706734066098454365093998002179754659093342839702927953157593659667270735606540305071230124766969578121832047397423654683450345031534498634249469159806845098614850043650736485054612108099074362299788279918322523319679042290050956036350513941575546008201360151680129499120544700365895032268892605979479875679188267144416322609353029515023924197091068259222685945655182211206967152252953004505769637068078939815198269902752999632406311499692588403345535108567048301087082187639586277610121572976232973439791878304256891376689687080507408756437116653365330132048303263008242597376264142888139352856514519269034158324903892723258620459766373059189494752215409245032202691634115638237251844986977796063794301513251677793845472912423038794458223556337251911828506422980520555410495531440882492925170637192029618508799519058839466182643690336342858477445285695563591409202549508842947586137282488237200845802206717919458056511544710073769280723317927089567109332822986817134014454531191380627717120398158226780040658527666985575395366266881321186584866299655403995796314261382522569291223263755139504659896716826272021033829828974904139937204399194666673265297041981295625563615417517236705871233126550248139384918850260095382764666081803392748681015461762310360735619128427297357035300256072774956382409636283857005824471379678717821704292693228103997999667208329290372398804926533468225957473840758618699164825810921354992569768179331774126497183246793816879167269007753697188574888711677303660249070968004371776155387087945462365147402279098043226609488172701772168133461993010135381663591597199443354119853373609296477474015931724278754288036529104341089012214397799697392227366295940926285043502946410678405767544818879243743671332738367979386550544564442249913655373233556269377110066630658826199279219382399447914014255376445360731173436258783128295612485988978583971625971142248885103112046459582614417169737772693292876016560040605603140531303920706444033617529007598749436963146445434083602747160534737553502593551541804899136649961611387505297804360201928307092725650420495245671781447594356830473284976159550050945063281457587651554746971853560725733812639605683972531154604639985092708247883611556395016942864698829305145622877275999839349824541129096031193465086976391970146571474988115310424690114767463571899751698482991675087431783600265205787106902297931716911571733800907307042410559817186785773594968547829212316657651524866151028016311941773180984869534601697992848089450544704494644337799758998968500899538994335279974500226003698312816196100936023127951042403397133362767563620516902792086148476838651062489718510923135979691563103738502893006645689525081222791820893232589606513894864006290350195635771478742754454023337606100120299114765576156045462626120381972695568591562987798808795003759188622835275324197975983367664143381053771254579057791154593532959976460706302378940804398302038300130629192495450577763661479814026043011994374194716515349371003360260611565253349524627502731869075782206017576679292952583566333290403049037607615391018864203567109141327333979079432420349123640445178172030504684369448113809226385322685829043731210856518348937391077817176759305505348764804141738034918559779509244014288892609117521951712776723281470237109511799314607829399781887568421092331419884235818489669458101696623291138688599958258482855351070085038031432219054568385768074451574761961950477166505715144677205218778280933740895133684426860274029131658794379995295799392766819019979122694466244749847056377745023950158576610352450625542608157814618292735245672606532603108878826781290401273095125635556397483928732971373811167637099509545327004996960603979113540319850925466654421498538926661907898240441499676787040933545067924321516011087978757298469589229160364391263332486621958567947691754233194707113478181843500100214615892244262657394045712694266585357428799496772994722144124235016108851953877960129135677630524135043527490617631109382705385202165385878336692413438544310223095368666102642924681932668142126010471162576083715830599675597007163958504269920482657211313980341754181407401205327228612967097450756547019674243891239724863730422809144611412939866128627804530073689805465845753978366643449082529331360583555011995137462246527793477005978836799279530702011948996790071337576575545992937462829372980242455416406043486668519236400921508958363285116412242440240154443755678040368015838922725389101138935393392898870286251185167961371253829913858225893705884068948359990464929345207262174165972973271766360824778407910655143580938596836892564367164332767987676669974593200654629176560291776678966857858393863573918227230821480092425671926851223360221352561499238917125116228653003151700321993896475155503362987091381531728847940388197258309809435051874981438440492025185338118803367720296444287896134399593963959247115308243179157461186060882289921516422229020724386679304093502207069494588427932650745087622197734836174371881734430003695751317281755923660309347918857714332450503927928223202581300699913594953431313576653215281989019448076061594114826489432742450754105562086124165612916520885902294014991874104705614918443214725133896469389146093177970578118811496453882820370856497047983840215774670603375750273912268496210349141589603636925413160274135850697364361026062698094414397478099348997371539771165793164305126114562406485567214142780945504649454498429730019465206692134170497240893050123856932920306809945140447319412890658748379583543490459023541824073229267029596069295615557204164184088863994241951359596216400364128083380599716642910709084466733541121234848967128561804284155952304085621514012402887460822904272103898906714819586861705552831934822961428845765655299297509756314595641519327121486271971188028065512197988818811022783999621272733910696530114170664214841126951031125287153598190460018843660411001155355144350201425785433074775588770531540877142692922286179254601971818950988695901660396246554748107189520743115498231640216601979292844055513908324622945000127733989262947109720452400527663611358904422970553030510089059056236021903910625034718229209917472061457736283778015930410959996413703144622320068751691842718655298375832738719129117623025542286970468349665747509480882401968034702868559959290178178163505813059536310228684148704828442622607806853018048981657439969812625902246532918348281383880334803941389823122780097639386818162526169534391616920925708361610154755578852652752320047965030546136670781412870430441769755452966094262177545219824214984925099383276755254654625026859560459480314534800370571624391467622022985154078532245668399397400899060911581831962467133475534793495533962345338061492554795243071463839435140635216328881719581036600395189187360302309807608087997277521003767226505127533554682111005488384078809377007595627147209968610655365876986675920257320085725473712040353192196621270002047544657312650761190883341979157054466245286164759576808553639174656301312040285639506428637613891810614775898694532610422767919498435170449100079494755904561991342914998963255347563218769457513738958029920665611474483567524333690426457284951014852537183555470205053450234977513455699836553846257962953252373980412939432623631540670161086742616413578748358188899925822024375389258308616156836590670242497452667962352738084721636399878640472727808995030002614448202926064620092498744343820542531895473326621199923845881152800988486365531373294324470711998370371489177971462279732997083621722600698331945074351487020987275373558811475994394016873787758182501340724656892002695825960529702678153344826610637285604491619915523667813658170522887897126770879166945962119927612977502518300119527509461286485873550518418066725139796674895916956421934597354208386449268259541168350315659673329862153580966272353097860955647833488670852506836206375549550285168626064485908003450212446059953136195426051511579823446399469707098199328659101607693773943374468064696384123570854898946913889482277758214536075069866577140640534006628791268322104456627921894990710930580619678761798723895314823060517240564174175445762657190677896294072934107371571719418753722835363597138084790486213850963353243607850867745712106253755472026892682841582454448007088166699333500074944362654971564177864036583043096991459700237339580105937384747237676835048290824279087392669569246399582471926478046682043107610260204988583536014427531375424409323568788818871137266159394993448064712189740143362124181557315900155627006208357136296894416299158466829486800004799574519042361199943240103275548848729345599024610116559274875192792823012538464092978356352786924313019785909743757347939329253155999089655115338318312096023528239431995576798414367487255299611505892599509641871334240411392323573021924066444183085082212238113438367499949625954146894315341018429163123863507022637695822363135804566600740810374398650638631799176089994183851323692583719020816386960546317300156845622185288218249245528763298027522783570634020009654952259378191229513599602571899114695575073964566681210822603808519092355145476262768099694832712735957348883449658596823629328465026919468101614413004481729280383134488504536852437024523105209309548703091258457427541889538697644975844817621880854928850345896161243708055115247386832691790328084409144086267489248627347116159153591542045949612113639444548696306042450911482021677690467346425838562624797126163610506404319379118727661091926618058940197542142854837534152715926643497496661947068753203128387829129864858641000139391925408290468619621474107569600205866663715024065684517597688855524334522269958385120528957384085529878516702109607766440119894127910764063018521564878974886480631789782587842993716211188756753693095842812662350735693703584025909235662565629690035049949122806033052031680932102907816305283676258329958658914278153180260136233782514632942366037310847354819425187276178548538628795027298256767229018106740921400062745937004903884505851418959453586898627685119014276259147628693426607699619479484764599150204419229707629774107227429373232784307736425811745507741314470349699803438631894808566159269043247028194541490155118716121975586111493841942279474512610043355538870171299387420218448126991452691589641621129950837194727734496101263231739563000633593036401717104954017708577436991536444722274435021205905994441332772733517626622795372270910739136222176581905109805828329360090531159162631959169434532247131682992667925926400919492520803007774161197198467987255803900940203279094243278233586587852887766615229958545330535293282687601926877612814791207265852006614785163315841402005522771900993729176816373146599790542292840709050371712524540811118001034420269715836365994765637461860384800752245799831025809928431316563754793739689897936846187032188120785423116092008843507030012571849889972426081126847597031498464285112135671257122546022126539395253529816116277720210095976145787383218485486407893087813370616265506445971177353363537649438862048499272236880888866445809171355336430454222820958087665065971056269983427847817392080665977603381027948895958244675421177794043172905379645608746312631781105343320318746271189501747938020492765134519652534280586556562818845673619730722556151983010910467063468195488817544851847569052430977663092923822879223518343043513504158745100968845579845675654854316807037410740690887012548568397174005476593803850248435953394893408062467727170168634267208988895204268411686809322055335742283643791108092048618901198289894483394642905419456316428833102903095055862176301468973073997072302198642378410632635954392557735420362889954198078971851954588129705023434789656494848353002019355374522453780321089835979586267698361323964008808569459171824404467074129243571913752284880325355833596383391812263566836277083941782485349250924268297578539053408367227708955372404053085873252990798973203140451414437504389311636727629413166310369026028846798830972173139873853010597504371294949163119896796081392074441052615186626210851840340351421108943247991815106326012231437658146582289924436107572632877537672576454890109161818094305343215103512143535321425430542045444369622951861500754512923589901756119425986290246287470509574970643714370472795473259423865172378982838694213574375814730595083460651733974173243614455757639782335983994901191473124048815819543150328197252213365090531967803878209016791340043375408698855582162017199496946683355154588346840462703761053639096564292858909958535124059284525031811431268690515807799873577086575693460012132038208525118621906464170646060325306378627043593551831208161292646401817054713617797656015690046791572892179420603413713010034019082784531769105650268173507368015068982565950794233908629254345052398758071699802303510241320647550650677690050591936738477991937554928775253567165396075702445589167459542408392681986794530788219932741361470049793150543023981567262475240862217442392746445749723332858238353324868149025177508475520570280960723350770490295136060942849604737647267562680499092505836093753029824419737575870512237118755883847901497111086587150062838615486184915835622986825160456692733488145615178356531127624798216801966942193680549071077711727540746848141249101394019056069666530519666198567390506996201646977325153512849619940131616067060816208000647429938201952738020960541385045832779006985819166592173214168364893599408792652359262469218709357614822488231589475342678946784462553840809350056666637793184079080490534571165246737996905104448966908871369440385089769182257721716101363563143279279519572305841285205934899313151424112497684476539924231640981924359037160382724431606889092880524155915109124621503540884743470754782818062600464208851381914721852567783760465108376666682352766848939514624765368518011570961746540975546090236157644056441097517084884835476638183682935021186891561657123499977561271704785998045008999929365221413676385714802448501022563589337520737910939585833105444399946690628901422704866492692866739247601699521758159440681385460129605284809452466940504119348954950136042389787905885420771786715039891038208548904783126478963608240492555905972867459510785609897026960534486844719272017171161855901961286754646196168916987790328109854415281297656196410263800526821214449748843206517736196182284897208021026010786947954248386007341543186312422672175177292741327521236984512023429786331557316715541893201985031203358086733737344380277252114795236389256604355387923268454844061061108960619359551669968771336540332148209008987070655383682579915711478302762260854899702587525930831510664854473848578826506728872358442146878628149306519311718200864162856532399231777542712853768553441549446671651573378910275722559767923891924125274261409481138807224636626895388711632646052938600161343371277458969833565302765378988428975796214023212125785518804772514740171530466803796513569878672157771646002067192708925910692587218054354002024270946405674916083860300911380074805904500023587516824198935163430620987335518897495001973100731873901241812177723032994406221677620091693968119115180463003490499933516671665724781130721614361737741400062993326688089834014234798354445024674311583633075393318097382499021396718098171442021840276141614969163768360173343221116574468228132941689274916654343495564363599391137763678526126084196477981663496962670187774241396876087302891329272847431291211728304107505291593764850625686157576288945746349607056768213204574790432920508666460470980187396820639121052618952672224803874172317557573063178555072248675285575828444368782093757704430436729348480070885698881283954771409070351370384152411236557980788714442581269384075372119955416705910664654645032812577063004017486592577399107092503757919810517230495596038164787682714279626963779456978596193029958515671703761007312254623728543252916493063086815540472100201537124974099373489690099731616299043728793192936022507435686261145202960481431838604099503375769656490646808123980633334851222297667344191037495018397525609399586359856664513488133036063738243432881788713322136077840335640380040297516389764694619817655101594770770241983568680907198770171265182100499883392431484314999968312902434156109631697426040432857028432192379171771576180658285114300377657904967830812663337783127266448087959773732975230743024317268939330591667290396405060562364804794400478697537848946102946802750885447586464724382181249139267669753274818060382382612964373537191983532219723719264020901968061585954787887249561792740089194088023794611120949392869089704266295755464516524276195031425831177939415575662462158960027911694670490575503729662386865319803060014146568929673971652165138998031035478158895250588569281040890000896979179152936629916968808243657364959782379032901433486222649575907187299664308689415099430948260105854720623065292169051707326927207495315591265972307539503593668761166917116372214399886834619851193417628643467898444670841598691403886496696161125045969523379461524611294197586809610435120168281017201845566840226095530234025166995365889488124029958871077020434891847859434262525285056499415942910151999610777372079595467749995589615280698180781255134209854299364739847934384187680646071343495245261387544237932360810039723868890034871952886993530806482605076101717103088887990699807041180501997686697474904830334802792719735273236461450900689110751035368622348907343510398389702887518676008375568360947687105424294651524745829271550839883116229969632088636880508760139781145090265820754602074890415777856781073430560907430607659359172489637202509016716388049800981471758387636292828059648323008151853384574428549632852234689723054936737836165268030215489312361401790867464638047513141593015802814125018232266422292462404009032732877909258446887452721894143379988643698325417208861902120465052299694094922952084134066929461104834990233685536634656981666713560625417552777256493038029481344488959255698868711165822776320947957228135865677853610568383918450781530397813201690134871586347073917890498171380094592227983869722221575301162122168371857838697790011717345361063427186963641386659826627872213594681009067890397925284416987767034461250045576343492042974148716650801323222705873731161209110696588002413178249240987023921359490785079319228558860868534541448872111519227679682234196795319050351660293893346566770011926783745964456864019387709309905465004732339818725334132468244614418327359499496334247450686584765984006781580335895114561135627902881880286178462351421763192424593440221947346223472555762971185939261359601641207764564863676612843011665268177144140039770760190240682775285505553752012379626778165931741930707701402979365628661973702194169679834733651906676302668790815838145049306672274859382005166544687159380960117858123466791785601515601651085099540382833431962453025175860967356774499263343973799293144377041760942278817595789757200279059792191707418475012597003391938916569220211698561035067137306279434140110786743722279066998180234420708216362427336792687387097202498367813786877143354964428034046482812478096647469475119680988707070383437666538314075120692680941593752184547157555030031109943651931832617478079419674897999690022234586002410670186578669549655753528760498223879533439676342028355914346349691939959971933694799270369491149880719584078773041511252612196548199784881316563385646618158333474331544905247978902951124738515124225161352545301575796927473033661590561312313266518514405033212445260331213790712988357005878060795407994217653566548417049031372992491384468776341245282016867689849810992413910996854131344768293585696940249344272816625366972103756051732623461422711965809139693989554133730827803073486620141105012015386117524602199040025098485578590439784168490412283694394585032684197237809108308728578932288723626032841531983743877447076805870314935488856724236940664234526030380455915145012223967725837975813512511693656769260275273449037692218206885936357634991390232949205217193782485834058214777190732247018542407160802541956017163025697999379697471330155745595238474381693147177589508618872025015504579326294099755553553112819786422753706752259231296751345749362032402750808656407068481796774247152489568494988014759419571042446714343021426930618747096662421746857068157550743672413201525431997741778127148731375992945216185646580993889196734050491653175577413843765061807831662892207682147964925294965877227005642164077061023262326026836322402036013860163611482191823820757718493213631316332625434804786583779566313477457389522917173523221706206475814524335821531251208122037628607641225852366538181390217987818165336843979173671081717063651655773480469085825969735971963938938932097973158415601915810252814939462845159469702174040605700961485159351843344337849171385309939344101435619982360204228846175972463951194281353967870007658364914217679711405989193933038947883318099748323476897365840817476758520067378637732659885744791889719233420059355823670504984752474250102598708368515178399931349098340490739842475819387666335710859443428010562304138441909549621392009210865767559697865546451932193233373436886096494841325142213259759406887894104319101524719281629158306013506104124289479364711009757742986079330359490497568848848081610415312876637635854032256052137308009355042502416762368851720580852677273854003838084939446945143798638219686158427733360510970122280152488492890055933059428015391063823679497573905926728220469803851929161758427546029591450639680358130366169040567622028698527802856871857446250279461597533323905018331693747585619147022504396540458013560469603862501898453605622753538353752945387916030738877886337424307037327405812817052115854428344161987551570152273639018243598389863609843203583441400239000208156228904304363776608109401668126696185068020379001001465455443966642352236645291252770357995249233181329562198126612615694602453988118991132498995204772375387154489285311041617189961777920736100964650652501621368339505931458517154499460382629624085774700588375637017232774167933745624654227462884449245613628137364964780160041515331938215879677986872985353512014644612369598457585243652861002257184803965078249357838836561321802085150119719540281288002663681257432189492774790020850081577004302310057359672555511392275387987507746340058828275095875610908100743176101273985987869349778840891077376967421501970373092172128882480011576464878829245448797198986793595897524724802118548159133503272337115200120578801581865556866697178558068784720938429792865566691788219456359518526628031049684837631357240632039043997005952661045260923118114832852664504675327654932741295955657321902013885670870571561249699191059637273789632475726538461330348881433485328806766841983285793921296126807058249487204902466093321795380377901824090384661142532130511904045773406593870481648945622318616396494168838685077981015822731421560250117737380090955335035316478850566732264178045953790279447768820103901471368922277049178643575531672822966324644025366471527281299736821584968615041858009597615205598017369177701017536102055596904280094616067027987884659479184241973322199594893573885407277485798980595775699099973087385501199670411877412413233627640531476348377593767963594424480104473166362692868797228912023685594323632445914406700357184485266579765419201488488175647483188137881782059731934237065701089580776405285812663982258482680513054664645576093910984216147822834711811224758453347061264804580817550762693714606799490569381051368560052105983600335089672366512482943643670669321813037001085376458627196264783342822284643895433782666005258461016916803331870930098637445245892400568681568579486491713656728820493584983184068107590941140540155326503044019229820953877244028394148783633444383068164346053741344395889363647211217061798584264788252479413199305329874102201022671038220805430362565739146734643253013988521796983726497884546991406129858208958897345453666564822634635311164108288582658184724403744631198714299220418508336764517847689070458266409128550281531573812542119342624288007035034752656159891334578820798149675675211457250215221079141511163602518549573566896277463952083339131256184251129794998971657191101353252452051566066619716717456398613039606252888174157752555127939287926000508802792797986426684075849848562276521886366357856996684828803547303424201335262819568730016003753464541660538742399779101834952105006347816804091111976650491964592735029416882067854131517120837148553870231158961176430526171844987347968767956300051233949718465548368127857420505973218093074963567461871925425863698793614168607268794760932515698351844731362355934898490824653266148637479004848773809268971632349917953267289606901858433665228832324955639546170187544865394146345856714926977205803644235079714420498800817417136529602314510854122298917854406784269263293070511341212289396592376744090319677472205759962758708354658204734010306463549638570856701536996319958060516559939452447003853237356675579454732320527289841330666771928269739599135627076298217160258546553963829324777073879283180332116657414781225726416373317943753553995115614959892722334820186180785207399107565067765365152878016693992777137825039979995177792272688323236814147739822275110336792155228347434995096593489122614356014634757056670855692564855683224213015428653561033562866743495179134303170652090926052568940039119974979227172482293778965854053303957465188948246404586546911739927682264382662049953929371301340595589891278250737206383301518793542890336707953690281794611975541258863050196992657477851835128857094941264867631347390430019741763736380031924280898160616142914749155427275112008023372603534887943928858240415275401442683341833412804786610084206824887726544287534772259752788877674894000938826862574499389182457543462400625481890648756729434551149295713753217104308932614119757685708181005143928115264702176784842431223024019236348970873827397464919796833939504270793854606507780845126379991877753551396709127432183205715352205139674257622896271778530968822667640199242639838015676322412430623959661518774883970514978566392587330470987401760091866659816281105738603181121439407587911506772548334115879024620865019128530556990835327824176148891498756929082303125161293937578131649297625057387062954916930194447034841487460994145120384509116414666414159412045540460572129043722955812799312364338156304904884410565902623407551380759319271527594079251312067945219081784549889251553016848737039054460177343509830298960238447022087425504795634419092878471194357453021856287874549394452762977738824543410070911948496385546207195787503317999598644015133671579631554230668061052121459762724648634955268060792741095191987589112966965779305739222736304325231735162509413787468971858844117591457041297284871677485303328317120730686709756849978430457337024380742039571276002955427672713910354283912628744866620322773023079816411296470511950177332431810051236619750868591022026234380884002837738929583434088318169524365281927553813772987495161681721686010329607025891418359400145303145738368065326376299047646091064908613466263383041018107486949553353405315336406072977730050706072526368793676248744261790355883452317841506427335307835129393646961258262971163636535386445250363287955975232875741293399094499518261153763509621018774200022450431225054132281922398249857104698201918686321809090885416792513497274503733853339892533989382066172317980979037224244910601048988415010662712258787916961827862416013272117279500518299296462520371679423018743324045568355336004643094733683149694798487597942396825967204506386132676374125803084782725694783431272122606256270657459069631172255469293492656724680419622049028969864716929752668275624412633502708496487427014079676376502683401443407703730859404535504502992274551621822696852868553258066172698097997585039828928629192618199157181780622516567992376339617908965498792498432152400907020880638468419119952309160740306476167239596676305121707900110377325148998744629633652185539887776187010634999639632724785984295491715889227436127667624804129726651042166908202728505776794506273366992067444980019165293036603455524293853788439972379685968770888839746084020075268978662317623798207492153358678159883409288572191530155308354704725956491646175350540326578387905540202520601052916961935092986413775066006412460680869605196780990800181950971304112807615392877825709652543464769648165923315625005622047418682206850627084339883151998237344185461913545270699998141915431426311518082626715557185605039865386077550837644269920911424298744653940014767205214244066437225771803262330865980891941048794767121505921796372612010606040600286720102734183448776738813524950652405989805087227344170376175486508767982525365723441310020631362767939984738849419618156071950648530550356473625574789258878861946736754785632330760075315823806417589617876013240661172034995987891955676696295103165190220115536392514276062107918103958145385594801388253274540787743604571120049619538467142779253056394853046458110282454213155610876170808550335552686698669223614981214333897920568597291327204105279636485380650414206411349280626172104584624163518851352413195280283341939422927657749338289937053190559178138693803273953027001748737970557698124743009349877635376948166577518814734249109926649069769546994289056493766186886710234412497149370063856022026765554610369521728024785318482666686381109953032887649366602654549232076432296280422264504401510848922835007639202189185927596905446866254414813583506207628860093529799544398172540545111929220550068087531760362125696589962403716408649532889722209556624145217592365434183176691137707068837980715795618003640074973091139089358361612961914131096509258874903297004607164572102179325017982455441446263319975658760918484311064281864459475425960271461837740496860709628748129561710514298409620670712338630577363661139638262689943223189582910326659355903798186446558213512990370685077314780879930805857859353930181987000357804056875483692230264401762403391048788602602927448108859303983783074418460107969826058672464897919604691410416946881580675070143502178615723049258492340718180466247896289155075445641335685800002982291077924499181146907339310005551041352871171700357785106225787003172080941014011004874957812746414482236885259819140217135071982154479778938035147262638151404783303064628426059445005270533889269396637089025826582146111901776100184723528974769044837287133298081391425645769245370920265786463193710319900858953267520197035931732771436121491354719320245264713209398847167408400330648989458373380726924895390247164382179610481186378079279489670677492636367092681174431653031661191834071584107818107498529851504139149403115863327801785852547773389869987885518028619969783781126658051870987767716405977126300167367901136077856297074807340097848658267215548462295809871984730945167361216551749455905378285257539209319687504989211192002292384726618811490848064198214640301861722456049827755008252075493874700816347128552874114307591127632034539965277215970777659927580258819160034296575035535288030185767545064081433738319972918167508663591567948635685057783886378552363629797428768570898557163179311701728430322563831568879449931625410877162309287556935025199103611905746891685418280182910318646214740150445475185785787691366211604280603021942162170768540303535874168270122726318111630607923678367282821538766866126673905339520747490174164821733032219689398145074232321353033373784931611212072583273212698873993286098052147581826518851529924576871485591709645970613848198748136189164850424012648564291933442720349764670860799334228878828085080462516570299583062049325724760434973450604136447674213078912053918082044497070467889377913266547053828829653916792633381274810546765541722391160622197938287512412425546960512564835583388979008061743902509016238354516079706903182078204235764177409345774013371045903562878754645227043866887194143213089944392620408286423531190737734803718345970815716410619302668650984029774419805752048750081303640927531680429586491882771164950323407650556018143629895488921844817199180924654005332458597382065826737716223769042275632439960113741089842109562451609414502351883946764483239179460447947551988383269061073476009687717381033092601575920931498164283138929336216045493588106164421069236302718254813037122689231529882465111483856160866615842214886646685804133529986429554278940469210775496857547650148918007548469946261179660494872139337324997990979104831834482342961280528023957360263169685462661415847372446291594391296267758313481649306178948616342693932202936800010784694586040888232536768540311907926262666377830316079088840481334906977413980885881762010771518735510291063285602597934621858916069610387154981185467838186272743913442621220596891985128242663933937240796539355709102933718251054782192427287182736750391383479462581341745956780491348025073363176028919598863174015013035948747352900205890869035138496805817495034817637940687700880601993337408190129367306539118585661723121080236009909482040444986254295024625651996847590820283828816058211138649811087474266305528208338113294760934465945467233373092933713742910881132495312815354457347698090540107670425152627667349658253280497593026755949407097466536525667536895685795967668714284766125770824093719161398852873449472105799188472124247669336428322951385869918955993687351384478070459528998906734671042578907470579795022793322708542116888709797789697135257168540702517238294783301900822901485699476658694630451338209134337339275002902732035139332740774620747557073712301491554099938641929730304246384403848462864243717990505516936595877509138507683377796394209642940397823697911021846232540693781952435497016634895715931971394428389506194115938011541213981702052584082549748956561378988495588870861448587949675167234088439821571084651072508136283875888923321620717686074285069017847314944850389535927690662868343878661806462556686007302543879947437526036452772843220808306900351958207380373600635633919096213382288760368751821398665242382265728352555889207035349836926563860092584234733590580689959835008275367415299851732495691056156700474810738879880466512252443750639284665806071173479489190067965358484509409476627007080285738155952293106775316275699213288760048682649577731254416632056330546657849017638719647436963245319213766947372268823280617899658557353103564247423764674036856540688601735691197599902445367870524134874237054052254601300645426516852547151331314724007158229638531082513118182872381057436437732840966934946971515437097988811141709875311594135761326273378579128136375074321455470411637182742248101201424466543824918060601073130196176821101937631333040034805910204763499627765241992073474878649671024826548275322673952365221992821060035807193448033787170726830765830328562645892433386309288028034836502038412214556137728303914305251935911816272647750764918549208102258575275033945975033707098481805202530715438852084862243129621456004466086713735614323424786897997668371791245807761136496228694993473832420590133973864106145002986834075340626820642790037576283236921688486303397451499831665088076422304559457928946202382832893345569221316767913576688470687962768049592591952949601013962278378881414203925557221182780675227198919633180320655568936502877931951022683309096916374890799932448202318014174205573480016955426308078920547663883681939445631113018317376636066307413831991730107922478347291905506753177059764457263014179498236263796827363521566211240404093032387671697475601812996217515807522725543326928883017003449945972750665394660103040017803964027552180420254509790569647728053598076955283752207459952804754566322370525933626528514616327028756363679291798985417523478346090360262354447646237014781484659471713992411702481042199374669453306584183887189896961953856702390869529297370075307495059384057892584464528529498242108045821059775431571806263711987120928862418767473076185265676939613066560266253978241243770122452022642748046053047001905992729393212669574394702404048906355093713552207267536053060179949259607491102899247442250827782145066295609946331402962059210643867195559995857844899058864978038674995111121315129438381595041785663305618336338486295169220080707563479950941462546974554735463582407685778890833810389679688469039579933931329996394029997770484120109006010427598545629732655027550176701357503403345060460164178037616437029933353363496212856374804085607714042672009196992456249923874999215959569877186079690836819771622152129297869322857108106675949199517465734534607458858865099130528434813045453304433553506982200774534600338892735662184043972670085529711745689962630782878555686910345566754199424486382033334189574098896043163749400146416065318645052080248524561379401006224304004798420348059540242494769179758268204949098998203780618808007402564793287486611680089395561891183322173158560840556428102581662783725887159721290037800901535548993262824350731026780776325838125844033764137633936633114317898489266763071615193192959748827373156972510298406538637639271277338208464809438984526714599932430699945688156244754638034334658534331901704298245504453159321414096302556129206683647457786740346803454376690815931513409714033645374348710771217194672726450785720744733498071093996035343959942451599723773329452453976561290305952135898277795149237069498748927538889872151178367479590535812301754922948852010682204852230777887340589074907733356119949038583706786748925876525509062257056653688229609729724045767417634647880704505048624299091688619203573740404193819268813118322714569226488870150430679239837647750512468161907536863033634703375851688813686892578901985273879831280976717961670877155742595654374489373485021747426656586294316460993930723097514909098104856750969005060536358145482415050871367613560736871154231968813455123732138910091900538805432584505381539002628442206122398335501676630974899027033302426094211669395145122833656502233961287991818842197310732946870827432225419657130023777016209315272417075764966741314686584681283576420377816592150736122763706835433614343462263227322737785200708685216210745703321889308630108847218837692988607335664748340686335246115922581747719582203567887417679090269499031575560091802961788936416601537196608364313646442594249065227185200038417890213582591192626733831725737742761068059045417437962754213263897096147446838811924076756376855472484097359888962539302332402156688602898483176924097559670642959443083959410916966144543719729379105478358273436080069239516605131455023521899769257253358800222450565084028634010646131044696763142372842768805296615629101092398627872765497652367480196610031028238687396387425155479978199608861436676378792106580133916779359626289678647354307257552547629514849099558309282807342145242043298939124464749089289413733359344576832302061191138327087876487730168197447497862298510659539647534165309776455636582004771437154932968811664966642324799262394439464174820535275391860419047667757391699807186493039440199489530775778117014258231929005889004414605636572162583533417078003387350202382091436739725148096652566838397318369734787084745913441114946529750153963442187419401748716934716386863396948972425632498789920560968709130496349496347658400566634353771208135081883151172589774487286130104402351807738203366152464567615627143447231651177017998798780206766885199405032678342411944582517272911420092459081239868707332973053374000904604730176618700716768060993062892673508547775837268139582613809623403646166920361414843625165791032189029249142744518191320345883895496875399467668841978136947903663196670255951808470883745286116394221805293177348690838068937879745372400450013869004025274920414563777217981542036967415436411769518648098387098269648678592973337809291992465412577879064754264214743105052040337993847625165322188092567437019877905434236641228055770081052532090689725219939166091196861788768617096295353263197458313458664810557502476547732975226979620736393920399722234569873675107119942423545931147017433811488456424220371715073146591296532911878212537986179217827281295277313023952754341120735790799639892662792862071395438131481220736788856004342211336244954497930022678416727255591023582728818645469046100556586501821712803158073487820777385021433706070163350133628193854435609587356472839419785591749142480300725422341998946723456015635297712020415629525516476883501499005891782852561683791653542841285051145487289514971458591416411407449036730586059398747212970746970794467744476737008124452436440570467024128847538051501169065974063160135251610549725417232673410207304154342358941132343488051325384075743990321587896464345981746026880680249807717062088658540262468249181891947390340016941499775871960284814021170991333561408506854661197462452540905807452820947615798778501518585061067608762307499944116002234160494324891315286976908493212787101554883928438567343151685952096919800299235814657635553159936708888283562195478609385071898338133927980820286931910135673229340301933728968255384319333218490333577064354688966655658185181825859541073164530068747897036229865612047993907966562911251870868394811924438372413299675600141357588289838828824091973204629609474581259128220416989498925010604347591520121499754230472009027660364931591722308711190877427043106082411963459220026050361437852436858229481129079029022074524414557575883171776871327275003642846366470771495338153608396520465278193666852798030006693495541997599122710561754217002053388936923503699991313256961845414452783094705425207589933479421441459837102807292438649371164656731099219031758562940132553799936759370809919367125971835555820153494336934171017470940722821499494899364277733592776224939798489965454872430505010099435884749428121863218205479427232502071284382298898719433761986927363188236183678802344339483260997271852516366948017660905047084729334512870136026171789455490076866579236174259521639419449457257445255928124494124808292637381180118026090432856448188873174934546853972223102466726195410728607529085339663126444313623936312115280542837013377943715371658386298853201982063435118280240870766359144251264208959182259374655923844198918975723931854779973748184048088247022589037416272182401762915915991936604315262249920555573903844834722399730068029277841725956817920951533005265948298937586546278580793240001962823068029105628707611917720981983330099355505598020274430461556193208919079680083561570267439381563539731097425656933959043011591336297794555431039983501078614265480938109332737039598654425801237051206666510291899766448446420479051237321850221956810096724744089476940791156608895904789192519921357620114929020197857114388950357402958930408317204600883290117497384288153195522942846343750558164471176061001035337137928735406996063527022249031672569249549978201789494853853034963826926111447572432892856382292396161264529128919366299789523642027547499807368008118904327734010633729297824745593563691774756523667220699846307974127581658124584504801284635091932204540485746567949951562925646635562514828463958189216589005293745439429859982290761261802378932925751126447704483109737801134852935174588966028818794876875833739544587117433024988482308322493354040717112139019908161064119792973138555382611577951740968788630470816512351775697628860588467013594826791918874043705880708322196085525530418256907641052355073960657513177858078793800071953584020858802398039639481892185680615748923193978643433233345300703166277742466637696263109410033730547840652985713466062337268973507118945190774949024093781659220113553809394135150667136076861095263410375351393050006148901815262262787487997441071479411044520599627781317849529838542849990984829296670319991353984872058719304401566263830446233643257170405467684327938604644940040480209050442298108568360067673832054269502018713241883207020304046943198325094713739572948040283685914528725615170523408328856080856617935546713379547475230778782728208824634446443584079856880500320458066907046132093971447611456077683723434741884837385729241131714867875072870652800283094752258900347431955784668102271576948541556924994690829826039067362777942151429385239802598761971073095929165724151895475973425802603548565389328120334548621358296155336483493489564477939494706587272598520577476113339544140627794720646269581134190970289145622103679529994145790953081362213575886231582344425487230178688808211453138854504776199431380162878400519762580880417411470399208011506407566517789960483100123481700650873926058909932680591274653301778372404063969588826584379943868381626975343075655631072300728369098382710852952855769995318401628142675998453416481511493775968099417362787803106440564882755469688455124658595348595227340151110284632760732401196931736457146197292806619104422099818876357752669305290632898779188739132869672733382220458444761258662374391128444592730029257408008300544909513363701069766887943498046446749886238169654937727192976627359310147409010742916661123105635536951642400111805752828080490271504610182747433749802697369035868102024337058959555665329033551928176311965304938311203791958850515377315896443097563727163716787410585354144412524103982800990668220500198418857502148475330240975716009892736191248061674103662323715895739044392534021868851405928296186530890327585208202503257092033875864931836400005845549985389021726044568031105790266092346342648633753889112578571480632106107960016061828646729091282392578849370956526721490155132208144666939024741727989739644667500646424885229448171995377125625001653087139951546590603708566262683935093275139860714534276778278019204703107692296605240340429500891834044072541249053948468635460764062511414220408497531119053345499856889223082961224430729923442280638347427744935617435596366037057179895539322917451237899915206425216031281599368137689179270818121568130234693741371625260986650958828591898916815691105207599691094321167347382031157384665259093571920307424805735855557738421715126434491280107693018138428922139022833615053729816802699450129503576326035671070991881047758237880800094316969102748018003532319133037637069921395145443165523352165728061216836999979716135681265443720637162115524190729045665090939415915480072336577656361990590376987393606366896169472710402508165513789442180975332501848265288224481482609436737423317152849884604656759229764135511191934786330426635253043241924203214989276918874961784126846761857790677403496579947091259367717058360870531361305786997377409551526056009555253517086472829324576996151164245179101444630403939086722416847728155323936117397683611591928418509639281840822664388016035052221797593315084133050266678519977237839577354766654262607101299571900066418401252925952157813328380395960584084613719490474095073809571901032746938797976594462580874333624357903495559732850499490196818611679010516324598356133383349560370727218324881186635347143516408297682495102185449541876049376911990835406453327647159438391234976598551165299288770283461137257875766549271512178602534986668243595230219712198460786086876100389474283018895446866183764967469897594003570518073558238586409615704249913623723376081835547565064049844950058199079379469321086696823769362955566766558485270257442483786029805445342836347446592599369428215319508086726994828264886003403844624795276576563511431525900002891176061432149900891339431178562548153272001212587683031495863904145436605664133249284284039536439105705264823666274413070519510639683231712085409797862144643900491569257368084390056200429715896858963402077143430925790455629043854965563672258617500159942730125244224073404375792085063288933674072669975268364440872970147341740380594465189288898792035397755108958619697191326098962241227341952141412423429153528744550338087279119909139147596325537950381823754778973600426397189316486860322570129955035238486681790946581746373301260424653814507260668778863941532040442926713886838029243723474342942740113351615218227406254763106527979775413104671303106006621668315647441934357447159975562452005392358267681520407509810333665259785149759458007947508533955474774314456746092527533466282819083023520625853419934853288288587899509704927170777755640574220308460340454424477013729505212998760962924095303820887294972139777637238380455224189549404552949879137377429601259403417072526805963448013188773549499589301679307355428779811029006154211709085925892750040311631386141099989323666802740558032283224046859148315491436515449236197983014785900259757736526090264430318591703808296143468099287098593123649243687063238987892393525867459156133741816723359701907531710944694534614547727828962940957046788142359526254278793074076136096459792391136858682701157691536664417127675846990505247327973837117238422987003783319076629788500174964001752543848451850636684467715785318551313293195082059725391070541541758995447890926692849037366322149959797987518867052544512977403063974663680519550508354468324692815543479916985729824101648283029349146043044189261324873715067453068601573201219714578467845770193961167258025924328321750218635962568732279999153194152678813014814559437003024326187218072500743099946551709306368372831702769745690698959096286236874098901851692786092395840907355583747438029269891496706412449954335471593572282908178002492454401258747971210869456983520475942347442245437006660381834097848139357604339153455820785447709317632647746742814019659578756763450245321958014047923086237796811696329306551168824878149121850527165648876920110641233460475157825875549733033769238854013734138096697807636548891122083061443185060470180436459971262026395822082273869102268559657471457887540726074454019438419191381149793067296026057608357640345682664790462642140855160037990080098655350624879019019105287153475165657690414790678241776420061400919879883256478630487893834485006073694258893214421991566515105236979907811402083911234122562026741155847954218971682010964321833533789115986680251592335790843746962626218938529986903947291453843968344426151555916815903324077210896377142522363723072063598203315691282616828367274191264536425787225139009942154709206512686059871029394889334299477383896988192400262460360049443829898773718435073072340246523436924069296903500723530607093369925263285894527685807845233344853165508504895312068886116034945306878497927436569259546538820985069018156304496486752314128507760459537012543046412032196578103343749870058500077899395305083068017687476812765979717674789365995021251889522204535580514269211316066605846838168067529444741160104492697303539530057213111274882097554318074364371283618579789664409605000729151011989165772303627291292145510996837640065984515991394694445661906455269980952582183150174819341228800406915176236455907403716400471429234291454806459938266293035932456711261489947398135555455877877158551917692307009618850949313786113108150161464433827064586192266867111588056014932526871488949662670893640083962992049913565327672148489556556507434989319486961688555932414385159188596823775106150160366984001074063339063363561034655071601565289140769047215948371988566191091753996241249052858967242001288025202638336645029185607109143652245508341666071881554911997305590089973113208091721475635183864049289831518697947888518574034177615723355173846840350333745097532348980566867765226875910711646450908354495967759923403275958232657199313243779160551991196776076598147235037136340965400757618498900165707028658429567523003355048874472812250199104266401060752170190707346332195897283475048407774058109546624698559564044037387107058891143347686088119197503515719601357767876972674928615317262464155516685484191532976732822050549423424513091534135592763052425123267621597775232271422900397232480553690273746907759340285207941750471049366324984089212867476825504477477502310179426282186938385624622696367809877149258070819330102940178744899864480788622430383789390588970439002404771248880285886101564566667802699001905323449105591802826361638056601224339934900467447567729316953280577593067223277446623674349831069268948045331460682475508384979186987111833794822103176291263988355098981480683202240567044718331142552562116256376589318367877081572628010071580458720624571691877092211377886941013948938488387763663272673115647808662024872193284373501443869420455639216404392586101213826138737822037210060268693558816226689708166510648036354974252769936617820607994097547460102022184313988508449222937285394171818999174812794856712309430348711737355443435460701247885558650723325005905439396858450768015439128455422065790582823962584812855663938936245182427074752469026223327273512813031200753275686925853653313235584662984392716154008353269548837961805128673935049051870959047811525230301118196412724794029343320634912802470394125587225849339578581833080539766303208161128857785642450952532247290949042765527474203127716849295048496772968119263156202904586696241577178754345102091847022168185253643310681565247928146253876823617119058119625380102310893301318788350249074173572427308481824919182440916900421849454122660062963229686694997730419456574079622118424961040323404060294268000295843968167944748721663159039177716178301931077334704200143565899498044283365026166527744481501095188915788289050028197347765306104655210158634402558802455626067465616374311145625866916759579487466924153387384026114584442237335382349183180258210736425940142773134405825944639918728389558949419087763801930234221318455630452205056675471689056828287957951524568368351875690973131939543999385830448868987842156019285949335710927052444559845256581708257727720339553174731853355581081040662950221815042304168672440420709336122242673833406445788782737649654378473821365706881746411483992593209856985416598653743059753615179898076257709496708358611761948131076659026089253833775093756332372429880236508269816414516617224180762654373284936059519167147245269435017932558132128145996402040766889540209389722602853983555673707465847690928419440753268588311256564580521349280487960927075307086223783280151728707155406066590173771229073920814755517768062997701929015217966365678659957685075037333915642813866594833153200218097346728851095358924096403708503792257454821427434103937336704606743855432168630731614937611451437091514974165656836294082519690670904616622683960611727680516588966347947927183457807979294768968102015472381160313401366226290925880882556218703238361685589053809043425266650204493510949124283304945484832172497055763031842138520395377686332435807491134985952659531796593935252296525167209813892794453569063858941504043907678744383263301696740774974087586589170797030332716373110964466106883006231823643358873628840740371237277109705599115275775987891449516436439855521333451500968115599097016989933936722406869275108276769335172485446393472146269043625682498637190991832001620356785888528931132136025767473847292703099225374018673225458623267195749700493318641192589983035934051530210455366744861478099347185412934211650314318468657018156166009119420630298515026367744716039506515554528753666800802522264954885357279565758646186033781258877941899746652139478606782178210053561013201156049782946109121232728802623426289746112238963143908680083803771495358639615819474306149650852009577743131007087924398176749043578382965903002150256784237244886539291893220580920863222822005797650529040577475213781405794135006093771021083733395866531056209913358516064947057371906850254212156655344676797506899368820293450026483365744063803243133273219603570062224876602717565631357796082138951619346416742107098877246552677076778333596433426496303925084362090644392809952618749716079480166164737894155113842701496659010120057554039400259618447168253756241402537105574843306746436758801454899009241054259870740214550369520394125329527393179398067838728895246767573730299426712299362372099233161651930802083354234380753665520620689130484588000464211510895785444463931609738066388418547068101250284184851606102151413053891894256204778374296682120271447334133161862712327708014043753426878555153272096253027952042235970074473937282485626415786897983613177844123798121050980847817265453530099297889631641542961641528096632662967092181426059806271377534363409328829151118560188342608189542963011934359118305634226610933408258666032719852711752297652866598005961845852787157001935558663759680585515751749870758407451226563375080070824556859598651229095271134073301138490976774117416470314525671753557863636972271236455108830206361451565005803415891599324903692202695886497491596987684330183869526262711308476244414495492237119623663938799273710605667783161301348561271529878741547477377833801830337789925959023189400762637085413282969476996297099037302144949925324874348587295320780070199269379078210173917590380297777399803743891050215322583864254529349486618823617394240464597078358939692291552044212300646178957895250543728136103941252477074903482627985819123324322920696899006888516589798997656311297320032274919555740679885918805784642641554358112551616968951680769465529999351668597475840649081355792692224776738882654698642079676159772621268820588389297016644453931839404688004260322922256566509749110740135145398622850490086119034913795363982535652130246765765841145423342401167423041926248988439763477921067108778412012053345905682252304967987826821002747153304301904267172071467868421785169235434759903018681984223721679199240902392114528005280515276461658464668876136840087649339018978782813335413178663101415124399382860904428752535149579033941788465892713288795561511190154610052633878373108663938777591078507852868922800154106963972486649441491009151665550407143120557309761457211749212939123004695695706016003655414101909397368207595052278436579830122131318148720069000609707950430561504903743360088954254950888244657778290150525760099197136729392675827171089063242727806218091525508886970521276909430363733585639305504344536879306871604169343529766264352785166559213079136292712801071391446322012240186629785282732390730211073206235474592004606842071029391939122663974505317678030762346514661666136792131741636454610107920378250384809489648270901254900474020117587745413010390336030112638128937302973085874309694129935297171007875276486586822178668529433120667327048151650929187220283388362675400981988913867198788027241919842799896331039949177239025247822152039465910411412991387357990933515465985303716375101006343521042544384648417293461846244093214550985340446373911945575217664107712884524411404888669176063542438240812398127144737010753512571628142625295280460454114918156454932607379218486718055878019235283979121754066483284874977766880320199309299740007377539494434580691214126945068162686967947024020853024709549236012340948437115683288660674491269049834615557416337381475643333870008154082531903091651365532401796968599354368829758950840883140545907909667090563806435803388213671486656614899895385954135979510636585397324180938713789175217282979846750709012527636665616084258598400078065039786494447413850092097805221175973363554953802026962131042978441882207425471112680410764547495187224942438605903100045633301072570668079789207753692522295744359454079242575105599230732604802978516127407797789527486334763734739990640225493780011944195556706551454528746608468547878258152809360194906594925726814204281740332256045324987396816437148983930082234741482844375875372056965841220431488572209433280073764027668079982692533320184487465132295472416758109914980557392238301237028883355284344276153507890685899574391050397219892414207490081872396522190349483747559219970053013061573906893736915061739019018991204278814159373220006737965853173956071817892629153265993620952316200639472573176989907069561011208122374014419289644504496263089585003770545427888870315658364787620086193729153829177610450159764579346559232807058192533729441848540714772535679465259455007866816666482332274730247754820589156676626821662747683402123139374243058328820859933212164155703874815421894173853249290456148994804570620889550352423447675557388393975251831156849217130795886725316476387389027173205713418875411270636398204925117939384844222332201305658690855146478541688467267303589629079432503860756988132446704827135082501356049763038633944056014603199007253404899732405915928582564751603204841889248016850664091788113115185304933895759034928729742431999851479613108732916701954345116884183020374039670364413250967752124002754145186071002009772209814075698951915367190117135224271828025214100179247360733173915103162663719991189270583242478985494365063888475240843647204808772466290425365207259180149627353354706161656492580105687514460677869082790762016876534105405727280313357360503951942437997656837492478373616421518083959636454440706127939478335450869050832974926210915785641820584505410520416377133771711089601567855748273063023534878858090311858300052326448756724552071735667937299941214371346242292202688894023085402192043489764507892811865834864363968449573857186353631849270810952890831547579867731858935455501503827029081267200752473910806294931788104977699669949531778555939769633439859603992498956339417660453667860994950059131632134491496386501842617002787620772737141898905225899978237565495030701261636944970445815734398364978896052533096874434892808468515245048948841609326425480499121205309440631720697942810125028560175803343461514700568626259591977933463712893554353203960047268925093905777752557171525337028114326810609725980518920843892106608542272056804032037103001640882904851047813044622433124398574499396958739159253274951650378038148985495208027512444805298741871897955613698884528942685504079506393135562979685185028250248062133639929468122077074974073015979916829481478406132286687113312805232036088797668891815009112524000513974935546938272575497063876000916030697287967439196909406498533054285838264184882211682469214456453680258605480530843855236105442691085598523105342680698842852200871590128723390891790336249918904898439655457972963309435386391395117546665042144374156873835508607041229922675304393824153527637703428445679097560262829724832341117115140174221893114312916413450198760125881844769292286830485311234008997046665330080765208876885626712075637223059799708098472515947005340631403657596066501732310100256490287834185674115353292348486583890086555676932756585189537869267431269836811199110943922000111739365188949911279477787031434097026782438793315929380338350706132372233186587614818400628932936301898111828119805409008426973388504578893105527944422425510173750287468801107437537950566408786931724750147782848885228704729818041453138689586718440461461931696902483524299108078559784922124437301203403095240130935457608187817621872531747938964772024086971540682007759933789200453768698716055907212854984567769590150309158418120732971248860562965293408136072226975287810705170235404076695581982498796052537465085430520974297826217185578272564409642327144149634507714048176238290904212215905049798002232651958871154636832296856154155537131535986906895519593229744694709833564278381061029777657397950957598172814999840252396735795530250950782124541069503867810870886934582428403576638523333876388902768340888914165860622919635945387778448439248001700813878147512506820700036793638640601491808148175351514825410156325282488978089944241950940796683495202393757718836884766051287700776483325273122624903945902149715501818841252194252351622500637759571671101057764109293616792342044099931223653313496633263668966278510658416477995987463749956909838375660382686892753561396317810533369599749011123749824791089203930790298757638612510613356226146917197877233809406710061456323637214855623051691468230419304647641595149128343949532253888451167014155303298399970074041589901831143832725725613551024381505873736518605313416940290149086550069188333221658803404389439697252439985663938657886279912178523115802548696992516197984322371056206936014380155319574530537613121531729096205024001030553140077943278918995588836863135791716916696020959994403898556718391236206296120523440718652908496109569112612562750161981139104657118100642101760830586636944513255905592199131805574459433117293061513639076260370920238507804795107014270421060661003249490566310746106687891278520737531115560758539864889448225189765355023044357352975514111098145781894360116697891234880218913702873105579395926036303696658798294083283052046739861070479834662970806175603887073326076354784459027645261207114153149069551262636684828205033878363446534113462315592426379441162887063031863336621476592789466307098081009489193566906090205900774829794388807729338180881441468370061163722418278881738305705618013861031267394276027843659129575619807289262247124728169308344108582297179630693388531283464829447042065694675407804341617171540719258751840203758557972930986610383199473267400931083930018632013676942598644907725075822656491243739530006554391391276932256474693899588602494065650483052053806712119523279250146684283285631733411490811588708247884373410726059006255911241011775329785779101666082964267980580776190785456527205587192955965056179471982315883519932531941059130880315622719811270990192223916783862845461760447277851847547847339010667686674892559754795653844056526674084483742102545214282280584558846289014219206754397378701346288167089013613096276093081942853367559411923862194743084919711988791280211874274141030713605242608304792782755388701536783596571715008287976367438872778320437355112503502753115951730791856205352844561223848281983871915548890416140122141444866099102498926400198808533630202220766534522286788075351526443580213451354487876141569022440457197920427635299430568697654012879826414997600575942219682241446184289251572949582432345176663950480841293772165210935520269133496649531300772225212216857128607829054112596313118588564108662810790228214639921177021064237436460232075171562268622231597649808032480407378557949622343911425820666467352269015942605509851846088056483283673034542913917910481748962429584671770584565801679614990205255875889076631502787733923228623125579083614726207551186532061780367224037375773034149043998192033131079080730898930078186709033915006837868182424623336595711428311084739190450420737761585194768044723032628857647237583085051374686158840431361827536683820582307265216411200682511724582063087681296679646544242313191010330415348176784222962585017060671444850568608516465957572459523407607900241586459266547759222265276655746717109806933352574341699026410203582432397646578309452333608799021149299385997615660937514878631337491889067727782418049648961044830449942738207999728101764265716442224246873152395933183086419348727175961486941840437248168729407432747424691330337359171474424528963378343536554218596965420232283438546692920161582613821440567794369643564638569985813792532766707848423146152016853368146900283463209115942159024584050971635170184409596979144833290151347489009178775034963046012295241532606388172924707938827565223572645354268803910733916042927367324489689572029863250544152071625182266182567014648614582596264125405665911256132089751234910089102258468770730753260541761916990894213351589645538974318559767959478762085604491492732277650115396088045697885614114737466434097398586977571125885259973525476021454725456070025632562355692206294809522063149780997858245066440173439767502671262052709926673296502564358418257990619345495133719510334321246335137066827215076936065794217467662353346208161187617564280068222476105893931115077040259326222296176944211594526576465178872897268639442265582962526549824204669475030049243944092599600579368674047278029584235956862845174393760936852648686986347979610695200878952844143497333049251660056437289185873525543354534994206274709400279228637087707200819765116293205414921106969863608093499500579401758506109835762337131692110725132424623547888592470912461278710655829249442736372175793857302324965857077405518816852337811431419330922564949076993635466787118781829578312115860381437981840347564292554135741113239466451708828911504315988325624826242996260292989638997535233881363066889817279456294270024408595933830789872281989468615919474567317932892157303445398781811352666025618067217215288365216780275191716914320701726326228680462171325460609633219342572136068532696544071955958304480947923201190321092588754026157187066386733476712290627010318359365804283631009549349531302507953264106249562939173574923535329417806334964663673968546788997079372413252220270852718102944536279418497037640537709402146572900385445023903864688452944733430692085296762481535770980637613163700067891232734498609661598347983816465524046032001301362856296345691130977789044649173118403814961872712879314133460534616459156177177779526464624966554131200788430476502534494784520159633164578448936879864749951074651103904104794615436140720253219795866476250250974898483538338248875725588719868922701126604017233954112387745189438429639664169897325032902485288664950190300645435142834005375264001447091784839732656293145799715173173442776874467704187776127454911754774089918963353995624016935600942774000770074972496028938870851066537443296934410270969266424148749061009666487850466950903756667529112564426913258161737911944022169424553266597221436435735920222734320158043114658815147060131262499710662451359970966553126482065148873177347172505428682635060546552437677838835216283714251828938912574978878922165371033808960969612615912732546221929232783046380502769410800196246745992398186593096023871112367676336106523063008095726253771458352153248652828654628688914733750790344954469804547537461167479028837090813415019061022494724102724967966953701664412430924447652657824835069687820867413991694903119464278392284107064085108181145949284963808944824224328220187103332308931908963374314528877482145529475465951372106812017052106364589084271273420274478638851369519614530070692408264265757446130176488663085436983013913631303407537199874937647543327519804667225161896999939660066220138011279162803669602791205001827992759925463634263548371223240910103151905093894078341150361479848706971988583835295204399471672174333553602465586387721671532907038740540915280758144341912056853293122297051072130774773186489112511117283165776422635805616552647379762532159486794687432886901330204771417656338688715365238025695205495998236643235496732092325825292774232230534753758575404672603959992743862980847343875913169761091642042871133011548502242891514420537809745097872957599951883724931745374254329197500388743848564898980984529931514901136647862063816035252146634295538486440399523033941623757656388819220770102484775406914617449930782884336641156920680719071689546959643941086598939711234336536095114255178324283011486370275735163558425026262131525881628869999569202234376988973645261036976662464115910408934272009262843865012259017209166031351435991186824697847319756126113029028616418820965687544100140934683473693656720373890189912322778476448009869446329442572055314843909817986245217741621157704473465465798464479159833115554907261695486550783032767048067426209276594782745316255991798361888848222644033655053366466973002296816030604008009452553455368005980112496780900057196084278201910084251421067195742778748961517304312172946281126850941261514452005439721748911339182019475380788945042684585249792116770297361823309232200277142673865648574672668374180787789052395664796717101734349387348781223954059393529968953704820850941839467881720311708347700144740927281131354446517466096015923698604983429073582330200030967429912422888546886035822668408545544583055573692521932813355697750777619840109162413797224621607019665028456498468659450617476744505396189862089171868169750263642482072907097209664004177896340895465017020656358512090673588639439278301285060169317032866197139970601139921503336724158002217204999493667088223449299145357510997545276829513473644650991454667197459611851321965852734930921657267716450538232976773609077174618598811706619361426166034654295210952314857656833340015927013474929592449348688125128312509180530903506677894694505985600858335080229411521891020774932303800650659808600937047331361514457518888456675304660572836192411972999096830997398302354631586861241461829174766950081809092642134193455939898557791113742832011001894919051475824762806030646965431160415445184752249227087864287244825957203520353772021633245821347139473563236711354771436521307930510993094515285295468013898417668540310824357657057342163050727580461365635348946033736321388266896329084016113570239279065909758694522138153323688065845229152368993699256001421379272935384107524828968025152947961674833097631801537060918387964502977688412301242434320585864843109086412412690395317885892126636530832124286749632473644265636524872973659879660278373236387143098265827741772973278305752797234355110813205001530413357190327051988971302684870754097727936465951284228431661247611068410604067365688566803980666422135619898609635477798926831209597448335692592774685498027106239154082657971751431783520803262821126048871765329082206736077810303941078580920179168804206727433689878203602171976064294364185741197991897377176671668150783625854054210882626775843798348022227273419868072151462334373689878106009052972031942221225578927192009042757913533901049522363500175221200844212144695342521513644608983130536640505617561518108742719437359365609873469819759846261622924687784824591400298794464414931318497009727094317932965104588991667591717957265420414980083368597936204113320047136815486355182458509198831032726467594550903169369577052266401061871385093242972614710738332288011975808645022680734081895486068013212204505960792544982821729957933652196967080937260222966993134498730236079220696709643717727820581125950301934185530327618628112438125518343933184642254046603013572125155115181666861173221301862308308076998865505377025053789991573209952124882908747517561653299054834429276746294840594967911318234691512037988879829701828898014062125305720001090791863395957323774685318439693371787237062449975506972496966832616795363099986304645155674370522311492465840082995274251706464231996069414583062305132295496491200485831957209411329878328192307312394848673271159025390901570850314799431656638191280492791167465750341207151104223707722893284989933634204579012111489351743968657954513786188465944711501564451322672198688386013570863619972909196053367576048069338426327347080646748104016683870529781096979301613792096032870564400764956748578999634039789856656644793638880045623191532565646988238723843239925411720342404992646251058846455397407086000094581304662285576785860379038000496913493640537140337460264705001811179590998288671148291803766599633975905861464476977949666714369899513827269856664430856085927702146434670703905853526016908712531538073902346338380495598108986630761638019874759475960818164803693282206594402500007338907625842041011769098876359807232269161115551654892608864527992733953025017466700725549786867088450751854116645640959895086327023541769204306277805215883577723241344331437395387470339936502073491974611171615114514130937497273002648872735313855134020093541854410097134586840940057878915380168603411415931623081520748960124930209050626574792940662798733185837269268234041151365258394189920938981335665058015345494569139012892431328367300805542376743503786835050197443809331304219400345500645828461532807944981584800209104208131455656995152695471071281917034257313880926005193789098330216812529275977966464012728568914529138031553164913126930196150486727371322379255373746192228368966760821367870961692170873385104476404802431560747324159068511747818508364567651634848886492073301685312877097552033298191017065765973134216062315278005705943273093572039397223192217071497188193946948375528174313902149312611481574808327920247359096817197546386173706877710508875510015598294815240273022193383002823243536242748501508431008902723662909123482513690585255804674196140458104983197994248360530191852774951074925049780716129034705376603579419757733221286875414969958753192212089211713453096135618740543965412918718190226802460276268025668956426419602575715420883987994452120323891150956440237930867751244312219754089199801115802733698828535641536835359802566832772390161925613222887392433982016630273589353161940078240082488388953120101479102453147844514020811968162264993867892528703701027233044269062417875808327832208308261172552840607558362468742257331316676183850280814483791692836207225974793110882354524183479299054673842134283587838439409068086066672634369247738158153222084227560061174237384478535800042050224092237673435776938957685249392967448020637793808472847500667558810283864398160906138925057309984716763583590024927619300181171278979888314010786672367916996134682659452632283489176346434938046245910650494223111274752662315524407578669718403284840865623813360244699001284570090660633425382673375896143955142604499897829447927021385392205903440077365015615486609199641097439863102107089306217348091034409470226076613865000044781288265920431025577149888391105158508483548694431756318987673010110560846505185556277302041568213887790293722548706149522739548455752945263183421796731994283347522040255348514975577592043256660773904345152749498025973372273188729642831630734882817842617190263004255440838346957683356701884776372721667587705760514095625331594976627092532775657706474962545760955544654086863533653282521037677532474547417794042442273824304211796523420494404710272723586379129669920288467114790275621719066831177483386212544731423793523427982237844628420328643165306742592928396614646856561705029054596556486915207326126182957970110886347591617962919231989935397138222532127560205426273462897323613725368517875349348697329233202524507389832395716530489390714913534837209651045728601160711539209515293161532415943634033649796804366509495084923583423609685980338435817160985350307280163600171585512402778360479621150464442012472296365563474124620964701571985567060941098488741602431629277857093385013010855823904425460904832918120338957267923558396552483394354228030717399524611591023072297485667999426288861668830716065229152265655395454011662519129846014322386082185803507293414277964336848777861547426189486640846027261421478186493036595109859682245596761553083757667958915629493542223930911317237594686583405446038153130505251315067196193159129676769764674422262112676164368108371099558960476863407800046230945901234236504172953722053662090209937840066316082351123782176241184561559778803471286464605656166403873818860522245523527702675545891511295052267437310081436777450834723236068903246816768507503350767656815251146684182306458687835460779864233582543280114935995297404922010461036234710238640976782836936182055505249699760208522091018502086823747014601875844149645266316136013209067431184581052943321016510905064108025857012282097162722154412511141580389819745992149288496083379832853665897455930180285424226769533561436856990613725734259716696688100087440832078430741191614153608193559492201596831288856961805866518882809400871911678789816058230499168081190259607860555206229010612505575217480869952574659982578661276469161829832575618409854300438571973355956555324363750139528280263136316393050733807711549042681344426539723818837905011166187886858287089498721881006277752483176261499495818580930218451023786430676592533505257844828441759490812313275521960068946839885386268369857279732686726925662525047636309193305386038521300750154457402441709579098896416484544505194438178469677577763186050320352059263573980450658664046603193059508969186137255836719915268616499578446322668107871653288641761373608706205463117970185404123895839380552272129439741891906181445755915915061693350734184720214318213527245161377140051971496855613033489664885592711124830484299398407866738016277035216742842712642444607441764751750655737495451452660347398959865075100978350226979576599651072772027297961538168269790566698244808181871065213720346255353614768766498217931854455029427208083363091802710016678235712327713581346573253682244234590161437276828493753294375607369049628182520157651128047136167686920026432017292867853596458435945089263102287682588057633670834271999628216860789330538566734403475269871235847020490125397777885820848848674258246875681475120395393170560688008202081380321915491898798511104497878949150521140012753694894327527814024258434450608314744890750194858690391646671973849442952450500701147386210342550394944041199188880944070363550578322651458530179936325743755636446981674429596559119740437530729075018526761402646350061066000987598857817532597067393202134307541407065021412986547581668897436819893545831446350813075147338738212468328253565117161014034166801834865444011495037142838949963141300561347711336326261043853518172471098556181274388023171309465142239495412585688096133219134584451329544043857493495185726608783346764527126779114870888180482681519445245231430046813202303808065783013306351053759111448721162802337051797197499518468904280228988290635200474506722204466911242088261020234303683411780340059125573031530436134283250852498230186126047601743025750697498401791424665011085193424772856385270288131267966317761613498311077573770546745810132418270868619319288514713697533218966043065587305334890436566730929077944255388114901506881610745389285817980597772923150022901009859976673846379884790544267222754214718460402789451607221918098967809841023023584049483300186358051260677124687874488943672201819246122511125949599666173637967622051755517079901470905012354047364308087241065660055845412981828704013506007481529479280707538014351969014546225130870737572186246879616645909848173434709224706313256739131021700561006601105924395377529062172460722208872051355417015278407233421175651550349637281594821208650288358383761566200901669727159579650756579127406238915910108625233273779319337166606785494228015597014514314434522738526754824907448930101552504272640451610928759111976784106646019628422548885501862213204499389301433382990744947215958479565430552715602111960218015409753170948425856399201308004150941763453059135721793061997900823118676386359154451780660768428735549896654438422567500877991035231710498830247480650845063006192849497581044479193580675513523725979533502418475432614650804825520594044481800889053476797566020634724104417402335875135320373969230570076098028103065035000497939081778697362664267056244484245722450598103585376058910621811736080494880131896427555256231237824335085872025509353180524391583796951225520044143398986078069752356596893135627682413876608785417271300868678677634589915520253836437123751650607244541433445511813042979052991276575061363466598625470859891059925746528267010149298129365955376110137351918754069426599728225690865275832070273424992929773983026633591860706067841102077083719054188835558721810538402707746009259554574797310835830742379965410657072625716826699598234986556568553886547767082768830777777190207863156597120460269932571145945276761374190739729601050186222907162398761323147170011373213268098144137625962759318062315942224667487055194995968117420054682495948618528889961205095025537446802655323483312753553837415548185879123955454256496062689601738243578687803972038789738479001203269242050769128419599400327871834257589382656627097022623264516123587847048706361463876686644845465544607203884781011625397146156767353421743248776149947117226734816604089337441410878203675624250897468393702461463542313894858819777789104363871147982923502208707685262770202289394844021278982893720940943567803875555203071127438363227047379123050654365205798386174836862461670798980933828656746746151456273141475908275672253715852114332242763083606349675705562419274266318541288051662188025195916039938350269436015209791892625163813243135145199889828108750544040367501772547136639044967051167055353901499529139720216761230117545680880626109195117512917485902532384482675771190370327121447316964237716959818464964919400024234644944619364862581524987538945091048008031964635576926411387906016022075110443754567221520992190267171256140981315537760179783476780912734578674317596852190104476598722286149412081296661400510335670557828910817227351156320221395180772799739740886615878631784742722874626353130266394168614830677964297844488694141734103110609407359271550146553257858731756685834860242649950857822816862944205035308181340031380638088297642988202767986280623960134824410337925701921185264182157749919126173958109506604745647560182800052440988035866554038138925413295374166057686906586586694932040768146670842389366103702324726841324107090417951113819208423921733616975532196724543985374428217777754403602376674739468676182318681663416280661923128674028330394061205382567741190094949187279274903475178587298818671575921096231335001298525074106001062052214994057222206438807091951303092319773699979746772479241550190032787938913997983021533346471141642620760905423044955075147394909035209590137387767465898282442404385696698877532398071313524626707071079878731936882953410646651390769708093073875499836578243188482817946586937692998037399435937258263759619523596622812426763668451094489439095577631185093509208937238003032613463646909946349206967586743030178033526318395931384604252058879065837616950869215438554761560048195335391446738528181130592417010725047912750430661812965503042879035093763052481144378866581544195121404827706804733822477219780635603714103890008676361113851180491422460052838495756790335112330482914707814143130710880927179050748907824293669102108021288193426862427064776439826449281716386468742928119726205350381141495094263236770973489102378919042959150110344238498210044369680137168783539657439047727324702605847745933422772532999130261735397756698976576894078831293462213399700204637959526703453322011534530234741540234837978226362818014264455969668357302106323344699454463838951781510013137932814441538904312494031341007497390565338760822359125627423312211885313909654110561525913343137898576643973167147933664487033907159975530024569862949719197624146648104046364130667534145077368615392811181416923378699588970705446795126535138198983655129396442290286320197067608148853640520590583003817464979191567849873894743745441702790246095018302151084627738169326290686463524103735338592436282994879271065461985114781693155721463121273702444298013814272015043552127990802130720420387055439783789935159061713475707085461256645496803294114596589379625644714904163131187450981922521649828292098933330578578734009293990923110287220733186381553549601713778004148481795699239855213460972134743818016108771819042893099166153894737843337824538662962445161742425589133870361988621752812051610712855922399356158423744128240772463975327385772824890224953562080867185665786364653242003829096850943352467578569394237800238446017815899138097135195010098379559569140975845365281753627637238651230490136200701460156024224520063083683804802746263568773372228513381333390671252173985341284445002193060144657939271073341530102059664645256308628901950623307270991437117006549949612098784483079033816195185047718834440587641414882703464473544138741818843239346668847203179105371894355938440492441364260755485016611580594719329445051050907547161450139028521469570456519437249086023344506211376122527651163592270135979019459776437043848183808744457453739587920827145880622387841870127399242082361017269234365823003157887500343142739733016543266014546633171915444499983216675376379300650459239893970479342961425571219187174393725059959935177110268860161277369093113715094411825406217040343663005509007398026207514753096553240641264624764148511412910633821129954658115503120003097886931695456376723508411191100736148046290722860503884422248747791117952568568350584156617807046249421295040688248353366937070680828015776727688235198296167882304688558315748217965665858593529057253277508268206981785142976957230282872024272461440344835680100851016537310649839273782740899531188102214812732520041368812160507815055202509491133362073941586506194556599038420702440936731299991157366301241842373682495558597425987918662711770858717880748939025967158386832873685465375390989022602351186693289573570331530294345087673346229612274280941967984147880824470623220411584664204114407026684088275397991980429610108835081429948959963587743648992951044954836197177158786480310059584616076087966734460885259659144063985378428113416919062953238200471840895031728767360328396610581111526902969715342935497703898130849188387367812875160655385442839117931642508843404485536681719010218993909842844960691730800948623760954758540004246140994495757079804344757338023548143052429222043380203205059347714046571479210054537993091014053633140564753391340522206958988737924877737655325464225883681681724626315600870882049831685526680745576857788550898780588906529055278639885298285173511823018773304472187015003237930200613006434202889402489353462859451729783757242568243847288387264161650474297783128547295174848536226786797138792472697048998688403935333014770793441547985988202898895901073694195037457998780103537686907447753658889591618208379546586520676879238558028216954384345601733111084016960743637077474398715598219724764286006866165651242227257892591713802702264505240306705601714438937287035199078782695888795171170854330719082262136024165123934867461786898609421811090274470900174626420422173290331837481571677439391659488794804464693989579262926834032044426322232874206447015193867005330480068794671541180976492856497835031056981436070382906335398445524556076926973736190377618150450731870448041370804159632927069568900265135588712935735714146242472720876959224990284190939685251384223178237825628698964634931027122176770698017200829175780656536563008942441534778024585411373859368143641128042186035837201417207675536490820539879436537819714407888364404406288087316491547284755745420096624021662393749397625544195168134590016766702175922606793603528442951080805007336174819880344424732564568970400359025918598293578191105821017458632611114401952108572020325546603293862427559998048361434408491344512182269730540897921974178360447881054473946911993472152783838589380835121990237320897582965343999845917255166138401097622493775458534732015458950057278177699030110743191426309025737538661333445372690325141573479265799878068131510306987979463351138734945301854197199454008790062624622129414307939088968995205302532473471235576730201653631569253467715897269775092712048129620272325859554909420949978936214252145028795716571229925442689269445678510040499543072764766976127670656746746951741503783081549194637101686087528658817566654863344923987975788268998393725287704256238115143885017090632165878680724745022582478965688631483001741685207514284917512381831220494450731716446705208283913170172645727187315828915775957136557190781112730103094112368639030984733822451216348505656812279313644594294330806339445248299220452195698928668520113671230704080081517361188765946866492241225380722563773600075392350209109169089107266671547545825886197955623459955549268524493062828002617838417791753705056864262281254530141956119908358497096123931801941177279993655360836553087435946827853861994907078262767905592177746040558789350817972609214009916822872290106631724244821451315271587542348261217199766565576975892284169496267243300347067485494985230272332074642430200216295749660879777509362303796561089759747209353492003766049070285420032573103818330866044569409376691518335899167542833013423185148496755355879148266240957910974654783302949326850717398890256395191220859989134377641280178722572018614900076677429631882016618012522701580756109851747745686934687408933998208751567919906233804647005721397445368751659891660150506183519622932524612735810685953488925416118684154348140293294238570109020807157914383891303971945384578349961881319890163836832372631302387894228663212342979003267392252241616107310395950846099045165647573829318618843231627271223376534102629051175895128631646560978699376018499689484643902814738558483696463774470202500175329376305638063455236065367287999827721598464358312499193905693277338177255415937011650412877128093156872137466644003282338182292809049523340594960953752612058845898978046123455569019583363231927333617413970743293995974558249690161684197487920245859099963162439817279573509036362149961526432983633246923785704930632656828128134900755349555294052222273694131987534442337803474265455235732858781551194565008033177120883752011377934748701902138651290934178701576416675244201764652977901618155302913474579765506648429906772566002781667328370820489675497107643995929266163254774780102303652022216925973692270192918333835509463072042250891212490440338130628024751336210759195482996998356208819577493442834622532119359714360506167161727520270177317369269963277794524374095136453457511005355246657642915881485674451992544562643638417488670903562853164445902163155258072595772046342061051266860392771933791210134942536444870993371406565841695184337595117400471453354170891769548999012689893623407251567543029152467903633853802039324150825131225422344921880301614241317835449882295972997273855274439104739422642816053985037756944421098554793106423990193202895523370544981968592711439021593716776048186391751941198964399207464295338727558799708130446378812289033675041364224640071445256397756568887653763931109052714556344352316041935738500329830045802390374430747920564568542582127650518378714381925713796364655795586134865128618886308983088357030496319387679811362105354398875917694321970120244308245291946711864473122876002052307498899678425045007722590170694346860065488338741828585776396315837743216478959462984540134036869937959677836278591756399609222208413445039810042169250326106087452872628176396234761094839632637896573767311370288943279758840382070453285548559026528931569308201320621375883515698134472630885144753232898074035627702836989315485920940965933872880461496276874765305340053900821776583372913399368984521933719405969177614219182612956762675053873491997329889492275963112732717232470713215479308587966363900971846468134505064928875248174991423735388699141401154995402343955556835885211656844244649677844360180602750089823429720876033357234320117427610690416670411617905817854109621530252480886264000616177579759974955543346916578797386048554253916250757733846743111185875880670201983011385250928350744632417510450383394493979081158636952070164254089224746151121292950408214072418624768596742061623876293693807212466712683423704803056512183890509324973039522740993418820026934341239495989633485120362994473413787047155920862292156683050714574247726305900562840936882564534412925836644366682128935397717889558208730256877966912369240813006074606285380017945222456160823971310053278749411523594894879623476949293474523360275665116110806601278090352401151291304901299950988125034252735088056858017407072290635416364613952163840649938952356491355810796392505361903569189788688588180972977553658715292966756071418218522718340864072882168784657161031202451215832297342346308865969902330702250260346729674328616680729215897870308778408543031646166042224991681884237680610001994357522748623223173669435124301366518727808322657715964037533776396165698300223495081662036468676924400645270863715241646477354055487818169514079062614316413101571494125592722104259825604955730562253967643074735776785204239068677139135641509954302104022953796952469973098857820635788912363144497709505159398097796274082917155024165421675658360294449727750201833399277465777567132352626911823584552343815868689299280071946401594702491175599707860657263903115578246603289115412280822830296865341472120012988637015460360517710518762467575335353917498689131890595289561138433263023569835354557550327782831701279454930746274629875942861365550213652807093715551710319983751280727658421641082500041017443703225231911543591922953227786195949231070760114275000476276034569165951677838742477005868675516365258087353111222320513449519810325004945344925006925401241610272129433172536644981280410046762817020418313179987512878615594015619230364017226508875262599833181665437885844821596271642166273160120235595434707188890132824854283572874622691000202897987489840298277894265310551895464968858815265185158303703891930416048621111747018596064747970944399274854853919284549018921899751968904793549636003175412126240378333318328432580000926921977112346673273686523665416624383414854924796753956947753099792107402881655784569987710030441728564435521560896760549789674128165408251010921880534320116878349660771425166143451894805157490892279133359948452031124121851995990495934239938321429193523353244641975272907528898802167764560229360915312943025556592359629673398321501988272974744843456007327102626908148345516316159892733856450796878999358597467897782351869658188442542559982216141555018210643064693284224112957666170232690450911709095366214513107568389208949924604433583583983714030373551880023405634724173000909818459484227220357126652474720077155890106968194409717656163396168000163591649589513776601200027561132710757281625798420863937081114885683077096598477237580737166789752165364504333686021905222138687377215666783730631438009982740728832629488375461065202503487222643697336437108399959065104970728800236420279206512604331467273581978690799641571179398224163405751594902481453828104586175032475540749941894518359798852310616779464284443525410482363481240683786541568065154662097093877099715552513365119288576783476601000301214766126270634776749712070252556449090406863301363135366829566405800705418035178360056472303720994657190262504519200812147909707531135152597344726972587453529112723121136015671045617704143483710137077367005191365298099797433358663388825553054455742975218140906998918097642857549710898973749677125232886946340066598564930297582596018583688544213228625319072188736196029954984532321430230235402259176511274177658443266679954577801834886680272973913500014495863597668084766809520182518043090542464478345824585954842517054779455797628423140396676102673092987415692435787307577009067271314089761203722354736391015503009866913535451617496836236458872279115192341323224145064262843193791325504206410822646434355169662950907774401421523251361400224002582458299336528634651114810012270336833694784678049742837562712209459254523098093338877318466540943817299941342749841217978307829715971208575423011242047682728029187852707223015788152350651783602391113786171059186315603700710601814614670448009285795801261280450981613325681454160120822769521535133620417568205908806147864606811070257650804876388236678327492379722681092024863302489722393053764222394766882290013709240022226213571856605668692992273863185113536771019943708966254057047405809553083381385771676078766091451854348541170804829249700040606546949481370626726452514391270931696433611463748733592981609115214292491178696175763715707495772059427198982526574011440165468632310372903853241364443621365581132768798863712176884813823840345320775956834529134578572789596035145137573005830607311319687127033601563532288789083221285719809594297754357278674386860160002849632459663204407432855451679563641044681045947190159011978015663425158386980812215245428254679557796920289771306433994374980221819050293906295828725625784317726146834932501848270683159752326929122551064732551287730067407119097356440618679167259022258561278978360708475093119543533940207213226659152808678489554337960676765554441216957338439274354335908268106145450413384442847307877010490969258516189627815028649761583062506136117695448598046531750900001588779172779264634357336439362504026426751571483477149003161566649758720365290992595473895195038671931166677731807814980263592760244473787604682838290700069066921180528876748783518648737433544826211487819613819015939445380444796653517732120093810619153524636919309698896049504323757065551339203563721234602077689165123130241500577308518062645475778720432470399571351507482771808297244026051183286931860406712243659379966832664211087220563514013736181858129568666486840211943537877472057128291420420498988385330170591917713422379405422390636922866357750665711899323882806304578871446427526138177981619328911291746935527368671763169967246603178456950164338552090948810077719897119237723476570061503591667356426107174214589950236815016755066414499139600198206451216389697828130992315250361107459750268838822868098588601419465230762403847220084415605460748123998315780721062818987903983100143921239462652515233344609141355562606980463127702270332379168795293047643532267219956474336542831010497029663504399009089474760640896291170258972543902527507709650466902880889757514553250687973768824056246943640384412161038548720723480787168288995690915993790851433817631000166396912271692196452391237995092602850622516493656857328454822947038195784981429646100544044512641897134555255178226406098694493598022550064183052173623471636734640070765650937915369652244140128815075630706748984632539335124353426163162549467936537712715169150018641914362884627521712435914517442933956574276740969217995194041894514167665895634395629585992723810571475356729536248860315354331523522085533323830097576406990390034213618018321442710318270743274165015356247288743870427009209623514397470220229919651677774452561950627181836989334890890641757837930539037630324976214853219306543799621492141245094505491236822824375145372510769346113456760987422445339001802582659017859645985202350819610847733179653162199917511041379034306227153151877533133714128237142801233349320110046699040666639679519674193493014533435304112654838165915086158642754246354205799565822901431729141949587833579235869234615802394244699816424688843103524467130368555697926669669306900676651009244510029876426345869778861891552697470613219482964935812507010581410695774103878120834904269815151123430593734258351181843909113006673162486286234958784400356236350584215482654443210380787293800406350432445224809764525983968462524256730380046146289798196181187704372936576660169433891327921432481522152256828438962693943791666556024369797865462094932950176645244072632338671924066927755724451580857853591704584696005822900677950851451849916979862071355491149736493885197054078966895586899534502288480788622149653965154554033398605154565867065493959939966926702475568114171188721146849383033355040563318705686987987956017960212972059565745280077902433302247271867462836996038384623692468444654017464408027791683460887052074240075361260495440490954623421433292389497188923908712760909203018179671862010294697772769295873274438363235529930742971018375650534448345899007502829897013446855636310387197542663880731661270416393187554126635780315180755194452187348690505880142981575173654658394727205015861940110315670332883601098409470663367823189115496874539710525438678206638500666501898783763200393610054036518265142662039820452030600259203439588286688025296989107254962896454589015375652226471030138081883768621416363344033107342291278143496069451410404468274160345099613097298990848956600780510523083377620575044350606871302427561141159394595041995564717991670799877018874411033628729335191329067869033141222172950605115305442043166099767994047024642863016134815939176769887915538553422408380551268857527883530629310009900530011080155275048202101291645656747932791078708234783458700904227720471388660525180648210608682591341238421914622563475691320084638434676573691058140456946624299568904655721145053469911219682835217763393044479278761111578612789684687712670302824376508582203469452665167297047410979459960941102769754684466519751417386372297710858670124383513433055512148665758759097301539976280565331381209891228991469219708670563133717098615672583097368034398449604770098836049393283982499480368770213589520293666088905044279398543542998386707140921886950225076678145238015604945757124131325150734030115071995739178882290248571493577904114096086679301883402573015840647047841525351759445650024501994007596584570087145556683936215159298163198759858345278351650157990595286455180362071130613015831730354771918177307501242322401553350932561178634247875748731399886187972795669440272008155093509613748304307290292385556049099609515143454318302891673428087552221062326688349859100031507081820609312879949022540836039201577389259301037657199937734910153707872880572772393936407447252859984006470313157371521603026017111674390800357313902346803800408422469253669506226313310973287905205784678904961879963610965439590450767912781865286530250066603370252464978451111630805285372605314992277041799308344455479642275426458304816498504829105859966355434153957460976720828963764038692596854561009531802265742409067607325680584575190804838107182904318602594073159490515778715561007295196941790465749843932026799870718618774280602184776239849702958988829163858989125042458361990111671709311062354747619791939719007718243356788136298577449449082094535070884851641260877166360123729442942770036567312531785202197225064994782667275919873436281007258490923885582525814240738051123481285495929364082992984775720877170271613578485334733553226606878383754124527214090233827488060084080290670040744688205637152008257281171323801007719651829141916742212791022845286829928600869052504282546574181485569242535390764191351186715859165296371425574721606835521023363403921224701762797387136438328047583401155598414891577368950940290221272326472646446649509572877061650221378524891697906355937155594569519359509577887300294512765273018174999818451881338264494380683693510696159191325201436650622249586135076711792459526221845072754750509427227915715240446844105530609484035694726988992435225657690731423833956160966016182519952135143508907396855238964214092885320556492320342158580688896318701644580327582798790394271230334236993740815196175964249747064365312694256074700769768671960532586396462542343025267543931343757530451066217053491621750718115672235470863906055779287989087144389805290794846146522175872178186958563390725692060860036331103645757030232778040967466723533649926772624720179560457382373780767318986943388613406291210653606657181994800483286561664165486153557693920115250553461263031394449983085926121484259777757945358129320719055713267619308601396837564925215209441287087712948090282592882849729693590613252009914705228084967766923064271282650178989726035945113286640158629048680432308534672134458764343958830123171773830608477118031542530824828902936188062898491575589012011131833141861055267062864331389829780160266959183533406629998135690865528468731657509849746009635110580295638144535032138336265897182559603816421231440303521516085179167254131284298015912781884254202355992076556725124580160628424908477555687591837241367745591719582517177194242160775481925126918106365470072239825868040198014500364195837588925366398864591869572902275399097325206851694073954383547794801195228953435364002293976840912853230553006987266050532346868868339510559335152218408346971926570784045288099640562149936042655941235391161265932753137738961571132329515038863704977827384985813432026532036386048330271386570498552883263358469208365411283349843144371957301515635525450918119945885550458970517559661944006185757599480737853458643385850024417177231741420298618085662137165510630320028655353596577322983127981098058403636055020063082874467277696663403518319217453928811128400632552792543000295477053335738132248695347493612730053148023459287044183190596649242486408661655177100186954073437292396305193073684759959323228743992676983334721461229657810827506318930502305597724760247034354688698639948814852644274748649940579420407919979441558798763468049522737141399619826601432110935898600283272464368491884499604451678852201406341284763672871135690735764195885110364756211030847314952801025056423966421277357122762800027937640855263379010110626991069269115195900756598369794549186099246822141121204126816830120095822754100275241015686995365844693061258976590522305026483980014742992173771234619723729326068140473984006407217631244169654553578377129930942604369041161999135517097285353582193089717089384259428385588586611562693272448252314509627705063007370028369407298313837563076155686708403259900693247374815796122641216679011609670840281066333104933952379650112732487269328975050925668625642835680939418517114808152084261548449410028971842986457916709082323816437829955301948608309486144697326810955443515257950027594108421397102380426559814038327059752441465766331638432762793041244834823150254822547204863976954738993233661415634064189806057434255619811337935322624497305309249513769458608286105159950436977646239534209172294351044865380006156184425534715321946661046137830881428124143426663747952721848899332084421334651532533030492411057351295461112938893205703649348205994843560927305721342319747267270576458084488083409346598291953330128987442739402515465927354956258904166011302625850937561968423983599415125538288391505718841628080023593132717701853869070340367575624617726628369428871717308310373743169144837361690377056053667555269796554836439870863899531698083535337033556331129864805464279723818440714759976356007271116145880960547027489512821983112143499330246967317087466803173937357194674743024353117531182575685308454385395994178551520730309258062012449123546714612600820989562110271441308726549376000334357171619444028185496711498585515248719933106914499754380289636804088456080700228165518850361622988082985710004968814728027750116559960087642457269969990995754806869891689396211764501408688649954857778658157831652369589015456424378419177265138576560666867621453943799661884419581793389779609159714081606268656552326591065424709372326663663608551823048807570685872159121703686188435298232557979883443799191319254547054771673669022005653489171704263182748520563279619871244953299976642354945708879137991705603536751563576662463409112056580399451558622573395965317918426724429319980985145534925864246957479303248063454309071419403924859033176778584197626738434323735113191429476216241646262523682383415155624002326484679407802971982141345349866610052206777796266973989227162140825489370009339896570450567399029489434419065991668017283998892743040932854102362933071356490652222377227537522775707604010905458797523656904996542489739826409050005061651224177648426794645021804750518317563036396408196724276541043983624104174129691240709519020910081384893184194198557172003495697949478086897018072732144833204106323770579136666979055120356452091976285596021718815596591513037867477685794838939527566616354134569856842733773486077865808416516561646324771566338673645898707172746142553451627083298216150285951031024562726826666237196067548510101373237717436870333474337428385934322122244292000319736101560498066339211224965807320682390060141261578485599607744856443731621495153790643274661741035961468683421887843518221340553313949484071572719246585492112437390622951183070085271356949741320480205366377308665770458097269923071368501311930557613619661052605030572602290367369943860784706500360959037579911372280117265459130760648502922996660102927535663552974538439621225588593439245425161326452337721109560110308195481850700403561603851081318311862719207805830857408436317684700899422497339770582522236946326389398326543492939809074557659140302923108648507486145238485648661830571846716383433535303835696956894784399878189915705156263270660158073815648349521496259920926803084841637026974387756423179243376956072175363605742679012773001165566957102643175133624372768573897549769941031650125925321710639783237385334669179826335452331072007328450093527304728633086983344481561532813863740493880372601888793934900011688695349993343062720817977092081007055362805541354039917742994860816332221510482805592987222473844923094001509596725951240742614685773532482393121847699851724113219920766618773741012868768225721420149425888124134857928715817834398633433859565421796824425875036893653782812831435431018946279386470476489497139185037160753934092686689092636169087456461589455429384005998704013868945915500230898446554748319415509404357576362908122065017576111103299800720229360860698346114839279867274722176184698434852402636542304492736079800813934587701174396416005309838640443029024236093197213670314464863988831353651465451484554188699851673524993171881797792722294218719675566939081583110919167043416640246941232738686293702536265464444470465046765582531993259073512740382237028978055148781991941343509659186427872582712578105305176170144566080127687261918607131919768025342967627746155024856115311462057799599832792225153940598146784395793444310000100240088966207457178014461834959600111584781521327484803611436428785017613485965749371021412291669401654200558947777211180645554624778046779841813577119432752969202165800365498062321945016413567563913397028280690641019788806682413959006927577921342735572180730765466172458954125510130613734165813555291689276345296187275346515380024263724710677891740534961785254582950837277697398204126105027378399287068484507128083445593497009985681390158948137257245992526378510636185019888703168777677711039741619198555089038299814744053922950661298816199124397270083854936217768843178930524325049126549429222429569120541104367349690855782550975418049409169786199903263344402200746519866916477342713763178290908233596242453630731251464481633624307074328732903467572141945182982228238473077766332270215230321705974587811015597609625339792225188394046177122254267707971665380904957966346473135111622306287174712794992207145160874771951469243130117652768344081971080854038209821529196740048408609019236491432878578807940621575022137119066870574719951503146827054074724060566125157070461823309076570467365324047761405061941968915006914679108501115885528087976456158878845612379400692389442912773245486638108363245372671918192506118341296512003753832096584258643006233573862604422569996629367062485752261090145460664885213504252465063445034480549565447323227907100759251133913692498861840146969618623526822087152063253969208563793910676648245847382705758445398556667127642523344161056868124479474964213105841470818684609068226780329221610852830171857731909733803183813059690804276003703274773057165531744906948448135781289235678871257928313416353281140540755410095384141291725260080559364599659478280855483957170898472938186575720797090944600791123710732970541789712694120330430845901782567976287998570588377600620865277907508760654475881352879073288333034777156578748991375057367603003379927599309188476279374002304685094794950131639075375129182520517606900399975954319855844828577099501262411289756568650236143436371946557146349982176023450728865639752246949349775502762248814441819828959862628422209632694784029075940586969304165643298278668626784113174270647321298673846724054908869004271513121158023506277409043928394178728981858781395228720501981836266486623858807431514814588319713503798759140074114998908159412422081856446922039537015395931118247347297138171125578526333437137797642017614429734680158672909588768281634848119387703177492500060756308341966820111098507864709545754201740306351063314947401860766976274370179877542925055344927891693185258848826107413952909695213884909173157419668344282628254660108076354959020503123205713823833771261927734064181471590881480851833780362958975396581530457341392869742426176445006128279625770366591851082459680918157682322649892512162898118165036496147177824038731110510965960294843586992357585615081058133007138287517713842394942865678384790334918337004811093161094445795335835775697709555630533962740408047232868475391420869330367641191085093920102477666515348576637319981988264615306013903447821640775742887959041546913787495552013749766999082415648708950789402945347461333483542536824748560675856103640932423885639419373951363821698214019413523546223420548497402971838640109910006433550889237160536938172564656554903368824499881901712471447011866709936723636449808426574275864550883445956767644349753924981312244518267900398650679300083327124251992763199154579925428622411925871810564791315664054526170194975430454582334716226201598838416809192496539084248381697823223823080684081955435932802630028960419764256020634702245083397252570966552070864848648597861023067781725517712835832977848764217482565656076603217747784312221717088243920644645034793580198960825787598470093661758915898688656430012444342203510525654900410615431309121553177319205586538731593349473948741506281075298469511224105909805667198270747120047976360731312826755540680993120229047716587891713462242339942846697518083603426130450501723167979406673193882821034456714803742226307674030482179326183472093802473403039850306989150961883788426136418101547850460181023181366879455988219510213071122087671422361970868760830060107188841548097545822304212378584210030277483472023125859106798634491598614154538004207012524096902785066341575036669807746398493546789207520792892939111103867316185134727783161302392178494969591211481717394022122328903802976625078470197868497660180612400094230356989909863422103973585192584625299008203878439965928405131615384580208518119760876813070779925948786516723290796918602492534947900820097785214008534294965192133122620765712944666889298619672032653870600116479465954287159585715002284093141361137443926767262142967779905702095654482574354994165527534057546707241946779234976224099719100102363860627147044783586873122510608452857035014631284574331545502632870130756237320216495084357217126109767915906400607492758104418563847247387107587544929246480735825694641857760172821369764401141767571631205758381421382610145929625980888186361296233293988323313176040987904492580468733725546487256384440695031218099312894108799441750220941506888029807395489340427908254219694396010999068774054019027403969811122350401556782260040083860253655973557788147452136463070979304479437874198749994898316792376678400108780570965601366495101626511284924703336106043101546486264143902837746415995799598667424799060817509111327208965346702151369515005858129778798551119261134168619461941133769442813768545544202085000686638836806676355794119122628077231307593809787116534849908010705202914060748548376799753701559403496670152411025650832904047156160016282607417801134962860159497374482781582397617361429598171094668765025739974063795373201340626467114260461296914680670409963988499294990695866694938669944850937914950810091679360091138090119570051170783641682325306724375205870677870006241665113908721851838352811875024065456046859083863185605447273799565386888736769003512628015002681060194193144105870530372273414767781178269927444985797312600430105827985150949598264822286344688032079142020643467662159266268472638513436061474496949608928810088876274144605239846489271267751328185531991073457430590450034014012500038324487633170215467532817662814369400512089543299913248489849004538782427926531376720237057208887295252129512726885629537697668103299847333221378876927195828310220900861078007510885156844045819488108407084567177349706635484985805014868282594446709196719687905109438692357284261144786929756223255484186135453349767255635586901576718754547471102649242771938438630258492287768689178370883306505736318737486991609515411349024410227647687740089170609302758434377408812461417585528452144784942923558111249494240454091126865456160923193562093137587924905127914752446241920994890981082039939865390738512347440787521834462305412033992282426380382538889258935834205535993618783906797580205421075625684231250436723372807426361311298686057826325243457852403229809808977775768937972684969356953928347767245292544454396570447343460361539413359648650032538425680043637980850137768832085467055405519683483301041426361499689564412136805769663563575516866290545400946276975257167378096152925100207230718069946172058848006364193677956498554077755396686151155279299312374282660997408296488303082010978350586952223771974595728028178116147691379788061506890425293756669855822656315774464735826894611373895670977519755938271603716472111199010832916420017019562049374951266164622322972121744591279783694991912314080015825346616710762303014343825040925566363996106687149647906090869077687322604790020699468026521548428032327703432749827676606705847267038241152617184795341206908777078444097534354030403957680387926603812977193282393945354485072456811459935784203191230582693721580435354468093542345549540215667212584108106078973081075378394666627695661013140281534521923172491950442020335890234618297586443509938289765000281683907773049188767746503033175500146274316903411656374941191964571955704424338867273431614448449790078667987802083692544739319433108434406964772149869513068084084130702512004898014178096109976095669120554745057691584118525262013214748279602232851174435308046927920893117634278165093285575023779963586445223193227848939851642782302017489842065733771379898123044609069968449303836684301778750770886579712756336246457830876819885272481506053004922745333490439652914514829192876310634558754019778639140640617124593121817899007346430730987465581727209154957984296694257206355872274211083393671232667243802870491166371864801023797751596668193234605031067677197517192709292142783015483364930588923008561905330925024692219295804397417665142830228157258077364684833972013606677180679031075455051715605107901334470372550222337157048440328669662861203302638167996400831750742356226258576127906910336156448469031726592675793437748525850522738074000503698780816167015569194046912869644763320918267951234114480999291565962490051488220306314988316195468014111167571249374253513485161225998345924987389100975402778096879347780268244721955628934002750646231942093998011082785799102854206205489691347336419442910445461321551201699316526577569555120549097956231304153157339724069407935534970335866790304527940724829782304385514647707964970540195130944867099656788309067488004133481327632907601914842416767787754146704805661718733546555131951826771970688882126481997071215502340418068851247253265403839291826835805371489682695554308253143144600351310821709124092602531657497287566842263981743995178189262911764192320871905118510934014911742920776909780870606806262546466784877807338665099966039477912497515173534893778058365360696260658885032651793047015273359989203782183406293009017934712838722596261907341558439114761069418167453174147913073400937935718588725528757514063806860691855621425663055328311077899660240699262402257952786163427432844082695609684396907767528071683037414453717506714533706565298289147929730813259025291596418250408078037468612948303050078072453910552834796936132398317869283749206302931270538237440090946845763647244480699754586128040045953135677748167912737454033928824419768913400777429736092819275041048444626316441814579777148077403128691716129159413060089865851858682674323457035198668490757414884328418957741005521370351863129357530707054425893645677949125230938941067604139373008282964586436790464499933555675573442601201885764714805891486252795866338073763454045486129593501352338086033579737237892902165975399171793917281339548094867285633658798409675012328603570309213835869605507198294727408517337426816966613318426802303221802781930590917710484816590475044247363312636898093982937031444998752983076653845966387129099015517989852589122518746093746652795156155512163592068743530265125176827075698063646742522593663478422217382371174035329720184139962451393885559303993281815460656166027873058297789504744190531982316126180928894895825494167580452767297560737810153741790885548396339656176461752837659592911652120092789252463079142737857223911160780369328103966357524568103769815178841971668805586445687737364000701010642715308143120735207943283130199723797312204146101705621289587743072399702446934067405909448137827192861033082939867218004329936861442894259084397750284062711300287781123670023403932941216781594956925981305598900288394069874520181641921653093723530385172280263550497720666396812314319092908551141488748905010988983220865572599236162545793464200614321788580992989491325319274754513214221963443364186608713196457467642549907127067208908779851090006698012040062238022308138846265417760198640103010949207942218251618854089881530437214426431497264542712708926092343615386650330055885112182526233523345775424394695945502029650370185016124916451219801206024864361221271692724458176504043611488348012295776123985300578014566989337803032630359136940531478149347043903844976364772806387225207731445817706705271553275680091317087230532901585578398180639171100894331116673861127345216018445657242867089348970697753486716674981541997649192149582146059677812738306180902629298110196903618254079714120081693536087751141102814252709950411129951973215339111884429658044362478679141609289565689495362760736073259057074528378490772755913488161173065655430009635105276604046477501741276774549691576844100921516824388646711397984194665289032687207073658603309350089645230415719154159835245485659832876888834650667959712281254315245996497288138684486583252087651844909902746468329315572511510883557422894920347401232096919483520567603265516411971013162191705087038792333385594047825630186942682264609457428493592912522482335318038128077491600085291927711903707904795473611107157895012024067503009520266372080870383865405707694336953529963967127948095365034031059555350358278492644384230533136951428854479266613638832168085374214598431342450870872587306670237307417456577983611394927700998103436098090983678237269188707829303421018569403959738306280551895190323923174182486580680355833439584731436187181667891366177262452322291217105542463744288855507934298923379592706613353730202843701873431326907559379689706604761975358371505142441271684972038643954353846275702877162327621578793949227617612876291414070853809979845837955468665925222511573162419203667827336110055296985640159183295533201965931777815714488626594381417956627069779356221845025505095463082360770767929598069966073454698772034063081997578196798472851181912900162811508913053104889629969508885725464661056386055262278562935774646428098244798556896624222036798030083247933113545635660982713991832614638096007520590237323010179247217059947761393858198869328259443258391857007013836526457943880190390354753665194658629428056042889247897657261620857652621745975009240486040562852543441917847459204500835307128249995111548609981154014245945462738938392986707838419508141024595853112598007692367365187499557599394733359269540338099030534120043647822795181238061386076487825761580375431744983379865321015896193511543951752208718850858764876737196125700188592286464723910850687064129488097614080634594684406537532843297417430845878125707951395238283717089683795349130861073725196053885871669288773439604570025106941432985136884308337886045382714825166147896417700076906535964289799319250555585089433619792712216394226396712231056144309396106213804623751256327113287588003025961266708007401740494529193178318586036017265822671963553123612465547338569631923867133676781696682341418383868161026644316643085381512677378448462975889180262699779700427261177444325609630882164964838387822855897558333372493395536888116898202440912602477909872966711271733553963512573264957476448824703094668368535783729562406380750374438397412339310484125787785009405456448432137468303806321487697669865730376005531090934689582133955816730218094139915758523226441981140906974251710223961965131091838773581938210605599537302937431197052918247414653967840408250076326057334411801910977366715150774305444737449998888021297456600008640653258893121688285819467189239130781495654298020108707913511778719028927530185372920699551742718556492751735051029128890370761199716173681781390584592468666754316914071379103759124135659531381836316426687764767933786774500043346969386770351607962508711902816443240909954612721328018256058961812303238353013495411828769248933534905636766766021677762484052501167362396706223368968418316686137180772017167654216589537068745033694122051583587748936282343427803726301894421425984632686967321675807397274233685399788928364248939145955231081758241431423866200064303393744138301046603780819859171152734271781597875928457309873794298051551525403729763154210101847625683550047178545524015194864232501581434406146009089984753650115381107708840991990553705911690992123810474590210317555652564020130316845605409242531599231536667873427938311403513117545156851904856119826563354809931907942056100740692533412547910905755816679351243560267175839154704077465692262340589539469457789663925389039314062493283253929313441369157117187611370378785810905142028563818140204244543536627759164151499236492138823827635019090617286708001293644320935354635247323350809097035192535934363086216941730097792222030420299811554517186174728536397709465035056291116118598717286077596393028059786684261312396706623704712394835117615642081225238895786245193920381897256564420182193162324232697653775229092941247107626021585447433881083557672840388200465568276322222632474205284350724173369377547486635900162834191224746927200988578199142918058800309577986564451406277360610519899799523390061294267030577916801046566628223618333337387605355357464611372158314818571134940471711289632169373810713268040516237145251583600531171184906593522614492916388344792884793266588376694336366732897927012440613658503943127796807416622408720977200195358597374763544684692242155104123945523444244961314702697212321310085892434409005828220939852453631895921121803618610042037998200950638736589814563439939165112669520185642960718579120643901211449356410187001534911441786792217015880466121245625175430371637785609837032445871518386836085188181378322511498645667437396399863776055529381770852517207098983189518013244634169623851131098048233651181376487691054185468448084817923856220579166993784578503098896543992871843220747981597817453528238139430170204513323535327630718403527204744364356191649389520188124497989707332120533854224415480476853677287597100411951327850338697903683568376826540358459283102357833973643535077663283594636839098228511605669675621614163787746295950514927866846945290226332249707645354374798440684492355202506927832148182495039719258071828845048707865735705776471335449967462901324040159725376528784647335491159666311900635843749437069339261172528056668543341021516045787022461418024877833570533398144871591214800942496757138335571693128097872768595370843639490524160387362292649952166789989784993607664956487593409659510551815565083509729164990240163441105540821375995417894480745418378498333841158849723105400286015861995870826381680395217458994107074262109261488358906214149362247116191167237462528924405871274094954597742947415973243461393800674202456743487735779236021804116627741732415542029325501125278840233418772599802888371072334971436649656260244794863198788462304022530793428851978446822131292260903960947706895697333714544791907810337181070611543173568069132403083473652236891721679723511776333222813399642431169935127407723543146075808118737834984489234040514762272966989540652530768768103633674811265714010973645961361858250107157713948012773298186576520186739199392205506811615179443357871175706365832644599253406623240324418615704151883477821183767405065757427296974831130017995266840590444922750533967910692140778592692535234011261896914753408132456470116404695191354922870958862551165872142736028838915521087420999539756826660814801556042515091327193716786401789431423271485481467340932681373351817518205793818073161634433810059182804269326624891157131155984879567989289684711514227058682644476372464677659208657546928412466986519732571526229121757901242508246108845305638563982873691708332234787580270492951188057903779039331741373732687748548203181804297633760600054727666363459060852994795700645245948736988277910373174886083862815642370744456249959549103989484403722958643747012329816251781279014061527969426089903334912522136740467932740471759547528360528953968833007409830816154385533184457299022154159018855986960691247609064204649654755684358826058171736901216052639838116456958709395371012414745379262754342021026464666721520051838688930382532106631349806460491646127830182286488799049103920808384964432109367954189423791863393574488164795628749303356985340519897894752434131707156791266424914137889733181730254277199300145548751816986104148148438160029542628830253323032239652051961805142461653610731509108557550672286913653000287007134455486619914607360379339385562828131615856795172235598580493357554656452247403775106690389749937993979328207409675613540953188532915568442291242108790752488896423246846958209018002285268893934449750218996039107217313294300390405424904135241730719294557607634709048506841933070115508582344082363130525511126037053115934481466432486404696989865031566135055556902264963514620600701511202594170662144742027326275533975710483387088043037758726483217413009353961270208566586556280052155693368445580901428407142715733412697163950519533905846066767684128673840786921428388150391335473480705282463779913050711079263050067522248687925726639342994742179488696976228010804821655039607195747210256506130305754987312019608341317367530310555049639443060187065674022867833295545130083592547183112600816817880428894069402354926233078521199864691541799248225563021441846496663822332778326527673544286994847399269571154679930161512057047803303899735304801682630573060804461944660434146973413547277276516452407146848826867901448156200232555821257518317717128763669813068234893236626008590420594374010499924659913385630611061474865807479929133981682839429533911568476531538403067525302178157119303024828174932944409535154939780609208341428174897431958823111930198156094760519600087441861943043525814592852303491377914784046313344591257994030867781873807169520795578603237693494946770748416616363899801162028255067659797688421647410588568770181905553922934418844544443620076481057531306446602528879507974518125240258781231443736517733193957115345126037846143972186968533524401181143182804556432358372526059797789354521927558905244212921918120204717402231169278669535438736623777011855751224540742491470625059378512739454902808223790504431143444252746096462765003913302012715437534157702133001524814641526188201241176649563288198636278277919414008458733935493733839020038096667935502113975112835655002299154898084806141157314849682375659708534403002088474165956671009248585316964356547949443839902244813557495644058277451237119542464419502735108533892428218040847786049867945352796297092713260626599062915217200878173197788163018968807857990584972774358379377932149422334355744066311260669879141283227404652921278218530207287779393354075219836862884663377719419528456234556294155516138318381224634559452934784076358056046290502335605553857930900770951348045341231785246626780545796166597471427980884445533705119795901509820696071551760278517073638773605713727279139274856400687167551026078881990688781634403111468002983221958157370396291089507114768822526659953478444147150705308278638057468561915197523248201009278457770990305457458519018057953904467207456253033194126184695339363559198643045742896127835045252160371971188162077751248533329565609281434453312266267099190187494831477421414480238570088621350375876799354644660245891525908893288622661599079722955287547342130626280254643628866396466507585788106692007141484029027770949369470093342983927801230663433985124466929393908703350650758075480151597250429898346844636145426890138659830847850924859781394512226009351853082342192056373971264717448128945461292325613094906616734267204957599527263018502977315239639753081680886195917308179703083119184406579500917270857803462657240885627558624914994168554393944624021467705464946009225786327629694563583822461439139024240315772943743150615791730480083593288049382930118385572830581113614393537226109882617397164174731351118893331803489108501969279077844945125269193248179092163216166203272371965267226554931453776344416774803199569168824953132941721022753151699556219597348080907529413523943063604391433792407759728867692032323139027648093777461146041844547561670420277519187950578247950454834100265456440174374289241149858413969698287906869632118406648245756419953934545872047484092545067981839275674134069358430131365265441496574271955559604732602293511393638494527769796097392669376599566682506790478016149270639310883471996070419596152204236416512391945385262756745867273994269637668735500935263561757532978096215934537205839417101840448370728920056737648491983699425398307639662575675294339098171158403774488886450263263247431726174872027396640210784376924909733598008887660948969075084866281844922922784256566777548717837757527779046033405114939808657522875164220625456879277097964921822266909090014429922108250057229875483283048557462353268530385591603315347343129316041771721476524472516876624684309717338109414212419134221411238736262607610699397952368150439138619844247105061084362572623828366005234364778636096518570131954421419290050692743179782930650780520309385775988685379225277910134461743642725838629472516347794267651944189972171593641007757308537519233511307272334212978879935227060694090562813844263601728995602575286643475568225783960284335520458084256099249226494304200083230486705932518542613300481468317127066619934112864784565113909659305455506900791579289326487502473053161106799882416277124882139140920587674456527203350191783039259421655160518923760870955340348841223763202584097994940568127412085464865418254340116571300383556894585269166734395258548734774405653043791996947043655468000004457338439220289302134483920446243659744562603186111621960121505877579361513942047760803171221206027730656303646190485504534034126395282538576769111123732186987629513987021124076570563406467499402138761179748543675457581105933972043260693130565349616306834894772026312478807455263964203867775203994128814618243336880366968830708738785451939184957069241805962197867735428987855821726402546462471489646707853814973406611893336812816617820284156044180269082585610883536625069504211013693271312414015831766954147944975443046319496968784238749496686606400427338282669482912100413708086265747401186207110315990948885668276003698572358703743205725446205882209093820855979363513794480715361233771094219737111533447712128911507905960861883006468136322045886776284889305140275243149694791299391592847745806553374446328201716161389212654843851720945376051679080322748464424231767119528212331589435119458278350777298715991480962625912680504895774273190885849041160564126324520250444110744472022687071628300605593814869911415956355563796835708175627163271375694641540728511963864597441181113008114182538333580891930680729028353611619377449810298931220389744044777248438037147234665362534667133995573874450652879861426129691346427900170177788202671791995802270689409404825275312071606627123030470444929730379418926532459350470943564835980961908765180417862422139077153431581688667433171781985037706102732512476661468334028900643906662632017152120396024206710155066702878172986602842997591648386414146620903274132479012167966714303560517711941756562903528762691495527450860481670050561542086429873235015088799041511059855395932834935534143995423211248451392353161991017440679550490495214014116176295956923880883632258783182564893093076402759753763339606634060480201814362635798071278812728880994048673909252523871344743665831083829994193148376763976150766486523300605602865545143059890440973539699768392178053398792673233743841300481952334893213356620718827479357038386437029324933794779991044850725204249941553592038770385859137061299738190870794811075760845303332901914802356041516347385343436385427233243982457004730110609599370775586100955959915213834678884799450380484925411940015734363921368634327095034586037650991806448719102343088184465790006486483303350995354803323613781075460501516272791085539418113466023869446010344402300382539707229403037481436850660663989389189876842082699531851478504173512046710466057994544749852873209409815360846987209752530125370229413238005842373176540658542575617678194073235376291155205018995054974847489197605469953285252000086129657772509058014099152494236660703530240550442809163081041538176165645070124815569574049655145572253665001217914771196552086276619411550135906187321205861581150477398514106701883033186728327743891495605198782957228544018329322691884110693160453444745729481551736376166949780527881852161198544590823059663480909049601754203826983343345294690188666127294374413516765847955779636967581405708440595270787943466359099823239225423974325011375964940223972096693509131650245861304424068043302954715047749426089635383928906938510777224451202347513737127329586635174137392891867084527656447107915134088592803918103168921925552193281387735943987651559514759135603868344171466303834171923822345596264772022758519653867993891733516422823309266392098166956142566015071247062737360384130359792139879327001864379743039957512349478639000795452463726513675497788318440328124412852967633067047317933404240483135398704245890588920471459323271215795206486874933377881363747575971871788921086122342464026761413072993617474384371126963057152004465916863534969848878714796998184334367463693431582452813631348457003226119428049477069485466764588974384624362854486344772623754142087870866465956152311018944866160390944493122984517151775421516114054527957409282320936118692611076205954910120489868372206958142622603648971173391777139661859473742944659518929575519379319480247706298850637662855915832772589872369203294608532969974933455240642439949419320711416730344670887243719034375702318849000291940644394569954054204180588615829640038171741255668326196509292118700385834040660961301092881419208068581077237865288475884525550944590923553700189720073768380884760671115699310995505321072249479487231543605820417972512429226393477911295618980470518300219589106988499239592450332739810369254644752557938633515024961109652608570031760950127284791623741546621742666953427818229671493544064122364109778228847630934213977735544336460393839329338857789756062534190015153541200303686763010723470930649603219539083354725932234070622591915074179113194534618768925005943827778896222461655380336489099739065453832128172615733517673698262464357291526528426750750798209327173305854087091192643785296354959148270705135031733248620125052509201002258800005853658089136853643597715005601177074357492723456356419920023916691015389678417861435482781223626671376769192026912764406630294471229463153622720145817514653225789278074808221793714217835272618769013661851550231054375875309705222078403269355518498727715258109755861477278549129853298075577894619731231007232796579523582915722814470281047012834685628425778181465303782625045674902567724234085825964236717767262165549079738064402537600262064002112103454439942465515875069380882041672085819984217880381018024933260797223424177655092814900856167020409112408383420743006427498023277347011298738295792301796615936300301269258678874183141205370600346741957210339826191335211640185978577702019433530597050972459302364095717544629268888299226241670373503228095095488848760686195634755998427160405010303933921230579250466400932733930704756835437219131248698315450154386869635735706091747968798179835638969464088541074570463846858814485378533967312407343081965189581950426981924381884930254555202845682048080342247463801835126161415147469089836614283944016455094044504320703199485991978173817602385260942273432705711538851215827841012390379415140643253376327338489113193332454389038495987348465618387061234305747570103212305885277667579180440382240285520688581375144774843421852519266867921734419312423218575041487721050055514529558034140409549519173198458673507638384344720090825278563395703903427929878159547667680015197439420733586222851038419033993598901198377807363122026142389322769852157154580731790190154605145528380021016836152207222962863390684060016287585014147717271441358604346553748136183469086668262016603078522505286782797189260805356935987980761744394864290455782001044757419423814154925974518621899114939981777803234209606125620303518937208208767020938485073491070480656665794598916218769385146077947651633803422106050110696234891916959742261915956483607447017990374018202305835176837880168615531735033583513761686193879550867766544393930829487699106409714110956604270230509084045657887692001743774555779871181775924430909684833856482136608282886506709739609226412889371010869878092980659476930166415782134218091002999829573145328100242646606777134833430514657604425859326691289975827968260893797414143599133880643114828267539625463648184173251441150387277361905363801677815102070253206426293563118088892063743057404454773160463504290496114799013475814956850482383217026009564841679600292306111935859120352243255828511947314383192497813909845387016551387922525036687843258930004050848394001071620547824965899950204159656729971029016667045715608887096567036804350215281671952135131041441481953806597476480445095087822440786219565269147871092553624485857018847425450001979805504703820284571013603587895695099411904113725857291559619019440215748971333551282689974722587588420345306659814927535063034098013971863953152768039768447260842001740459551747562502009775968331335038351420854176519611728356563114487987452996341254661761422998838764299361165512272470158096471575573339392919431401997782104767741516290313427911900160486972794899330848160063863590080576329767317882191818512084758635939536499193840251241435087978585595485216949513802648013519721100587224755552976987186797205911111058737231362003865694642075645383697473780768461882249905773319189764597168753183652110049623164792328059074473904832337855415865228717375435270066416010467050472056790205324311286345902496014711237155264893813123613615305176203726218181041662927486420116177163631027842771950530008782479970792042540470204593343234344149692004975603669542793070465998726527619005327888746747844103137963989110525837073528477147080368897486840599931144089093124321657821292623457502450174897491881089158485493354689913465268697875670283017737924612951266053233695310762930516323901508059148511325939742953933101726422455989096605202613615481368308129594268920417079333418365365315392095186567336612277157156423229551218239500893052445093365589863946214169903909062109222924227422467777121345927529717130327739795990197459743143464974246488426642416010462955898207911530577636750034293066065472568308119036089754847570858795262769008526576261590894296359454449014498879985649722494065877863436191354245254394934679999847704814899393563280425097045406520576389966771718278994294590323101507521073130253512114392319600077388174721280501334307220806024383722013429461536241461533723686213287633027345985595235712518367227451367071217197853201882424547228080430307993116446759316962751867897531965866375056628372571737906309896792843027261948349595335851653467930716262331424642719126399643001490921505766550662430622535894392881328516199828673682428447591421543678389431558843071227747719741885997022103192418224250406751755920555707468474352696017075502559177839200519433448862519584010687174797667957529074756699596007925931256265393621767110487078714180696698692282662072075782683065482547008179244019045608537863527860091659025576597501770873985645501091031076665915144632051131960907365475105067268144699212244294599153976439980439083231641029569430466457509306811777305506017458847853447963303691282111828553461609675565175819511753071967492896733376446362569545160472667320147346420316387039873291833739715281209033640284929728676480414858499439681512592360462909241768146075207398466706857790938583704557841925947799866611863932915250289908133468710968601887192745598808438688551950310451268898177077110991204231840181671740238673564333505813959970406490054250946407735186715987086769153219156393488283548944632070096705334438876823149921789016408561233258626531598333586157163822713221624291066769028789201994085875264596803807346641184370824211095172000355442980012698147138630327057266466688138653226370866590759682179955819975042276962136202555355861465709835374164001344228642249465067527495132483653489088725231341045903315192414270095786614971828995780482842979195317063215088212307382208322027181299048920514268068261104488409393728649157568582939580469924496458169931671625899901655611572325225972929764760558660959981883520062826194236840330121763745669472776326633264307256309718147960125946196877310851157042399299608202038067970154984577678547101287826484974088475021437727812733830481839911368072053139179234908082853035196658988399508522409193506672448398616027116413850793183987794229969735682013336413680260448159691275030873393953333261226588059266275392654818361371928516843351641210768616376973107396226497044922859926210453824223930715125698282273509471434018897813955629689248165106874591685400384069234955347342056266841560777614684400447226525941301287795660300551096432893998414648865214174435177940795731768110752854610268252735462801029347128306672905658168705473593565370032156996416514460898004647063435753147079079507240473879393826694089974096552614324419742470143346167228859581185005139396702974507255033353906031275700907769872690070127825683581091203983158360673605821398803046644248663210238031665724647639654345375754544982037195409422309187915142801822945206652053366778449400410682916374525463541727748494567346844225012336238605973464254496427470873502382123540035519621865505144987698621600080203708089097567716601741378454753386712205948801908054745375469268402548649748580205217169980527885261822697479327233666193494418391333760300207112024911746444034251731384931009302344776821649248774165428618066866684816077379180195284933773458072472954982984567627287663162470201187961737382567104965104509450587539457788239843683754603329569865014208890863806404027177880848590624154633025534999720591219405344632770470116995496761981099043698488424294844280771129360045585877693745439320838875346047741148757260565584189096683174963373021809772880101893194997071730757452610870073921576795282226183160674141871851832238099867492597483750170306645683654532405497918834789487875773967336739856966539381137548021130830361926323736603539156902838098031449465577440017859183994346805266280367631733878924246255921209394473753306549122798083784252186394643150571568271603268142529236457324445302953805845754893811816674457263729935212695084014204041237177319279756473812132293506417846632389872434808902664306294571203051509373516178991680193573104385236839851683059309750121172211080146498363959842887930239594306261523877714693634209348995127673961835306990596537859214704690099161162296503373376215263016665850911060565973761613229503108774292401139711895658550157040519609117241085341342891441463898418868673376247126952701378042458998094056749163455282667035021559003662441154202018392402711921961865898193106768701651275204705194665582333757969203611114737815412005441623636388974718376095297189915531102314335371355843236782698607263669294075110366221384281838961662490812247258438822503786323048863591173842863014918013744646365192350942247852010400520519794799127198109104557158258239074704605493542393241609446529318818289394198352550932857386331594210347143369936101494326973865573192975851590160490021098197111106145511492620404510433134227141672263384912576415915827863714009331439654245965012845227548023942233802502736478670176134603612992214693718878406370942680629787286822633939378142533806128985213518776335746603236795678315646009436990653527021048193995679892039801689311088104210950227884200171189017923883746632764415491431106204132042881545068131141791283087514251639189827100635184694108723950988477144450546813017570579580406649632651148806840159326215312912457666850412310182037581477317105357856158487335435655452098951631126121341758359296270341386502691441860624541895827085199018177276435445672940935474085555571479478261214802334050841675983033493004235833877394124445312186403242593347545007080717730680872535372414934661988273263420837976300588275453695468956736876463040733371171318297838812993615408682608253593341171075634979312721750019863323541152401165859394403060692132296354536627322378053806884125086805562255189755916350143236695614235415429459263011553781339036179384824020907426654364953999948009568720508919470454265634343210169344773097131679758102901108048284336688551417876797085603218682842635394632197074555711835259648078535879516098861377575862058301268228367962039065998976374271795145329571446177504111861575161704184672015585619575781950892355181310639714418430396987067726975641145332821409437679517109505103985239452969272129609630456927712705138744996650015955477516707987830356637704604670272524260542583689685451048564977413578887507386527823629688762337733563927852545448422342263436154761810174666037551268525878831611287529770499250484495699164436688916172235485489479302258988484088909143112231883787343250680933324987921952563367428248496277804217230570630977597775590750446946867409446741064780913776662641679901524180196730355924137787206436432062382527999158583995385689159829733426065314049100801291225345493931133544810950497248032566036284549924222417971057338640603155318239985147335098070300353313092299261232088277003757317573769983382702431452088632347448894302808579964579169973085051708975598035434551580011708268276037162449781172408798437854571475326095989105279293461799543477174014703316709266882547858894144845238667894912330888069846949486112303678196893859508438728653644388227378308358194685837058465877831838921470098161846195416353531945592712667969078173609329322313644841268032183075643799398356564354708015759318940370804476675778545868676120209545821047421802174025904384382252290190483600794569951153136145215779076569288380217299469288087330943925702361258018983857614104263824152516287887113810685853016430422784944968295685384523670573050797812265915607761124749497267688136034788782745513642877705671629407714336039736598039082183120630767833069586584720001345235403837032045224803046804056105121153241384212123271663853641133595003223870846857014551211421216983618657422877901712332415882190287161733396603586195384110087534676327839266253232183000587414784102714223260580515316139886708753243178524063289772385384523399920811212074525034876341688840588392165646068308742376543956654593998199602674204802813343241955717999428223220351350487232008065950447655031186300258937089937812962609340295024366580017751081519030442685682038718306046115904234215465815894781917039779969979771890455289892665286244613646288321415674498205990966940757388646476044283072230447274796354725314661148425865057534556193385727136545146108556461135348633537998958019052397996370879858962339495805930636652745980836831319678546840916478052316498380523780529671964498331604901939980994910570893879627394827170415563419479092941743060980735098253558224544649054287256979848000583621720180861058058967025177481324926088777325080778906558882067014861192996946503218411061545665133328388754275355828333661948465636054944429168756925987532241465459981528048050632677960400758258489155088428119006632413912546905705601161146207740081593836873418575080514458801302047847324233343384469862279561399955935153951447455916975040770599224362218787686190947104042040405869871916864699190841564809858996442988760933330032190600936872715072024529529617082446760807819696733734811456713662579581134920701206035461562103846211113561460233734361277647498958401239229205012607500838758595620247388145524379988289398383589897861573856085257761378856964832012227340107538073169250301081700312341505335303259154108905048857445555380322888467249772106020773846971822840590213598791153141281043899509897775385917506140353232003860167826781416768283528395005365693689801138737862778021385427203514497822104232241571348768047375544513870469006320801827018630888035071966719411157478605603320145197091913289889968170603773914180995612881559148676192545951923390605809456269953807414537261421127466617580445813642697540652203703929770652816136815712296929532429709618811197844921270401918714333030878350589560075539033407079338939229849661644542469313928010977873307414601135994296388811789631125822380726313538744862994027697210727790588494546566563075286817284018404283778944223688088907962671267974752798340092510146586321039068665581009638740472859050389000241741614984824500827168089669990992450300942236272050800202762837486502034224750603245001725275180671753469056734081416625154417357725390606250808913477085309969399261840821317164597954522864563290211113274181829159497747509725828377239781960525044771085873612815603116920298226709951470279852529002204459800463630701661177154736900608448526405594836903977572851544700097098819184642099312497033884197630964390200652884858906515684556468238373861478253430894921374520374514430517192666598577919081511349758317045574542065170880055191930769885749401052930713941090490058518199213379915297873057157427161741563104884945404811943945749341767282275737846799581639573603578886815677587386396865708551302205884668506420079415262053493408271516910543473881681841430186566347013713752255087288675211587872757788125275810149716659673652557639366444140245469574186233544602866838999339661580468331262794374813325672939675568824186408132814910716244956621980746108322028247080012994792360344773818919005523549037629661530874847500144817996817545071418369530172716036328584919835885694955614858954493807111899015053068722787714066759442445453799253361792282127051171458521254632194036897111355512577418033694059784886349476599505246590807910484573636677488086776791436473212543111834794005446114085559140906273720696681894810053528382126996728641081569049497614331645699213915426295933850640759585910928330696308088873241906615657707982325289404093654164472749614578086871799964295006630063823609272063634826625485373019633039223166400726557577430926474008974024327026930715680509408711418697396571850262242746555412243048694892741453098876864842516268084379222203462219257742034516975837557236227528315492604731419061365546752351693644876469326900962526317164080279741426265244789518002435457926043756330039842867785059715315129311171179050260979584921901054651466227606384321763472180131941307464878727386011116620796530286336974889720442097312845628151563865022731571728607303953150495261467508623484411704365021402000036819564495331414680577179584576954350028543571755298672312923096856452833449110266216850822399963228783566428087975170059922003559631498458656355251304731105237620645376798935577115511459466071663893724572996674861890408998177260979194549627157979951229430483154327558555445704484866177618433452772605124507825570821150041193573897591672293667831346128881506482421172452381586989670961536789472657045073440200595588590881636215441876960139775228138500977607639268802000754329648484549354781841817277049207741086323941571223452290956062477520475407608532627152235693401867710761201926791289064948356057132209160817008237214821442284975130562413545585303759062703394581803656568546800541647155621731050956697561705908594211885562179221734194469661359511686392311273097681420139968995470488951667153348937143316735694023762975350196865418001387681538870505753476349938100704704974446776278303167560845441075253512724151040651194720872615810911851601225071125141157843510034204526240185784685925015639690171705404002013812334471788213001230478939018931239106372672272325733170326167671518123307166676162830515793006706014063542202527504270266204964311665489135157585199934576705234803442816459590008908302573834465562759983929384046272809066425065149663342418106951319141133127829191008831443334565411749429815115218868971695464082572733721431762418076794168938970149841469605335701056437370856165106675880563050904499297298401905983028221300238715478708711610725804499483498630864354202663574062884387845905429440535200406380240745671360771587164564566166044003957630035635097828723014337461664513138378109636527825163717797316945279055436707607022909911489475639376378697292982163811684911058659963368503029892333235511427424688313712241956738409213094715186688371910105384840635295100301399816802681263189841026990254674638169151138089961991381581365000018489939627147985027008300588537547484099151457633418718779413253628644350230779564840184117768162337444832070671850983115068440572855567837638039800198337256082811463004658197196722694602146461422959598695906901451581544437987613915045774508378205903468252291935494987838400586576037830767729056400569289872641036989798456009230019154308992336847824953325614481326269836559378136419927403914953784838774436547381393549981189775916598774351670077560229667473078531831539282820747114984474369537551756560518038023338099759754700533868113180697290380352523713185131338636395848717899856275643480354374392024684871156127253760315102506091415613338675247392372251907216918005366086758870377366284811964510804937298175021842052561543984049728158711366290662721729197316906189705304740866884456571287034824192750773529863962797553002305930051715032262545943960982870264269511463966339834286979658642334677801077567604369706772153920249465624270354606971661744931726890995769728891913275380363556814608117069216054428548262503956077663677499596415713567977798161950582956875922669458786056237997024718244613062498568673469166672648158736516599327973713739125300915867338771034469753717743128348828976357851342057305765917721463625798712862576052885136746027316982965436894811197422860764922134894478586717628811075832977672017450639099748047642609237755463461748203050957711787330779537656763071909321422108306526780724740191668748808456040094629990716718383949677974560684156309057202702221474491570081099873840069013557253284395433891086510275403315167848845636103864520855246173683634194811210636631914341799742627065848371216693315780145575748566701829162690476156261634573732172413644138531611836961986242202394074792701357672840797699809907490464798627174272117378731108717214446946450186737040559415442842431175038737181747181313717115842002287810613081506672591705985414013642508806514771959001777059963499436748011720034717623634017938190025072023034055462473329644992503012261303579638415022805672138820910461368613898944479962072887983099831947756493057496305236382442349362104505208480704441703587005086467857271067868890703407009680719131638548369125646201502090867073400761716539626204439520677831356570728893624800393640877600058076602490517997849691280655212799177286924261474216812240571768979536136537459025694237923459196930436897621023971490978419070862886116781039737691969153707067080961490715896994895663533813543769859699792379024543685452497822503863167082193450625324216735355828679912873172403357293156154036300476428141952444302358914537507232029452589772234481752826754160093698729309678460551242089504686539073648717491796992211414830121665522100099741994216296916321609966823658797524940085086746654180878570355929277407329358400928262971331877929706491735458699058159411834278853665515813509880784880396362886770568055187804525676059781103398281879857668164173169366996515196825367669675322439955474821560503109705077383244552116899303347681513626166532836416661798948250937077741851644583189944936959096320513287810380527821099394589823807812295742488930570909828038314904839568937111472059591718584314115249650152609026190546212236656196704895812973148549122967421523899577087331181147825056355960809001853027539596422361847087102622466988777436490213436217507777888128165207793478976348688946505543246977565488670802422234844336334180873371872992915425424392899474221098404754013275642664918313683433094596867073107461117971862676283137312241029092480211371948934677787721168725947178054913562298068536386830507001284582829553967229797466242457404334962752895539834910627262961316133532212693554570232235280694990501706714874163825247773172166039207459469588952232072235966791097738995359747717712226556164617785627811721597942214196624749318203869923284337007759098480702229394802555864356991894385946464276153253380976489193845151049160586203644990214126839798231093598067491502901874695090548344198084656790519073708869881145473110975919878435592127313704947301381397766911208737001828854816416781603458009871037394325526216852247510070468026783963877446527111190366324667577035633325349235316705099236778811043792022244897644487506512236283466956520976530169312976819550499055149053602147438869974662963946206986607443477799382497685280945019527921234880621292071326319048693180365773495949404203808530722186834047463548280537673555206437072191167255595908005116388336617321023562904602465223539958687033897875007054814369557876678068475466272901678031274898503414775743844141765896898740504148732366212737583376867419022189405788580352339821888099663670317210607915827281770789304112947254636456817057510258474396332170590063362907680823558907900016449022832989302651132983127422856739433290332408245617531590132690327742792451926391484811410063484500051894604058073137071492763529254806463485338065034633156938460889740848117870115634095680131297034559756472224798860370555726222996122754655167090516859506266304463118607663436002269622570747960758510524614411923709994509022125483293394177423951034165423790895481770816977702794726383953440442343198866375549156219296069479432349901197222339448889743649734670353552736084521475074194788965414102337219538807287795661819971095956483579024237043942650127795037836350009405918032022193648407718930155984886319174633394542417120765258261044844452728043308306715221217269036332169201568641121771744341700962727735713784962487849602661880120730686803941853855059994881093014014777040273090504166480635386971236485957188095221224245606232429096987041136978680426253673170845739297334374446753980462487053259316456679404939941265123832534705783709103547733568650207948631985858982042902923929925270253751928399858676218890644989468159854030746334391078360931771888320292971459672359985923626667260372887243160930413586282061312583663056567112697734472870127468412448572358246860823485079120770388301962005118827199721566647261618285591229676087045828642323678748081670950260366019023143542756630606891541396022587220077872463611704995562333199513011351883833601907091914088916049508376864806398971477230983417034469489890011028027506744069624885094945300409802168862221380170205786733803047957453693292353534422721687846416322180115719556994093185639251675021863047577859158787247175885179304947577195634809308262405405999217023366009847951359338609275499473429115072459118066963364669872159368398760012307523274413280091637556097218425496587390917007020926926296839832849190278040599334843776538060307905040378137618855281305972492824157791868981567581635745102483280398591999574758992390719320882041147895209090170231619155587898368352789098689325836300954762884347562501144574307316941679882093504602815605563075211766244936025363853963912365031251190137585123729362266078885121050320344658957262341329199069250107499918394448465879568679992317676783928790619344479200630663805036937245140203350214443960004733218509380480062952374684953001135849525733369323648043394387899039584190953457599892933273222972200734268928389236728516836491522150878858637537780955290498978094058991762718454899290226848599332758516887079087512173789173428180172270582291409901277307020959886417058574431527676094627876683985770776086362806357812895757224974202215556525465073120791201567360786628587706016613203619336081415057973886518453592338473741718475155924765432667051053108604122854591081902448035812722286073930819028485354012049802175224765804109164088224782288402476060441392546054539905105218839590994254372774781879300320211278434308053566845651886080090458558645593821816781796818723992762495180887889740713945605581147137057422987500544246831344814915860989351893749179065754076761053596202183099943192920316768385533584279875960913552614475469169470889239670397772910424666724399353017979341950453119026872320389194804841300208652577028153787542281590890288652842585048270246507710187554786392700393281191676261960357579041388292390553006703970115709772993286131379784771265510022548484097834639926703593050692420335800722938684919007833348750616984893144794607613077983925563695474320901976158328766561291748340245396044975493806656634116610662655963461596818777650833652343374871233692055977821332824181486593576493055938826862114697251450345878886199049871090898236060862154897015908731176532631961895765384373911051080696385118970527957003073714386642785590573469239925915586807693894624220796811212565342457140060983361845563813226678460099886581554089579522692020590719838731970998744918539072640905605324750705103527035155992884879503094744586965177327844714282302590261949038756936325760509672718055227915592859225883648166210803786758144604166239388945564529821359047903096133375022259827805598885349418260071045839806213032680409309523703570113096131360581278221250548587206221766836052729793893396531140348747471739270794648357389101391245240518139951876275009779596918275609624651799085231699127780008020156467915218642908039788718938303865854830782723978988452711692858964004651051328767631357273122599939833106947762483777873715045544128345282656282937818625880931656810443688790673387193578766694445898168374612768826202332816566897186386592442630297019979986859804316118783882194778439521433404404783932130872287701662638160853647025989943446900161408381723135127345228195593216347535358030057665051652020135344172456247013032154587549230392896194053880430288713991543801412682784984905677703322560675524654575144047516814254231306692698618381457006022138155482939814205266747796381297417825214723982825695089004128024263350246415434662840717205948366650847252350292400147063150380548394678682553787018232502090879983929300001777614204301929234767100979846363283259873801534285650584776459223192477115818508798623554309100935159747281839201948851158247947676186413376084457146941961023194614811969248099197331438111788779364517442253286313254058243623988703669709054515099637379859892588063311696790024419254770339980846260404389355963560178244061408980850381717225225735206446301513925311639632889051187303920795909726448205895004632053013385286618209376822903236576679548721797757043349152406275918066214177309109150635664968579359932000938391113099678025851578375309716059957665528612161963754045385129898571698743549566756059115347103152191772685550325389170261218683246669458008946763791571146730036840332042718391611643471493154328521982440019590045496401962925914049095451852661394796181044952956770069972187715762249534199533746068917934588384272410414259554986232297737578648609977979246350035640641105467073610566912159434704321724455973438479218763682352509182459895861152930587493213084369152847070416198989380655806042720857436523697024092066188662414831183140806052928030250434341482099522284688708922834363660855437326983390853453492490282819884677689972027931315267690889368357409072403008060959863601059858390271028863901088231594517094900944056865169478302703090423416468929492724953474682700267958349654851292432245760612234871445390535780554008822336380082697092631649612324152527200422389850852591624332678386986233986923455130067175559646569693493491723418989280706328730927547502398111398063177123946024522324424345414280206243610033144631015808315225444150815325896622981601392778175510023551789703215749074408367059986027362357578669641490649035556374392020227979883084682855566276529200827005013563287912743448786056707148264524305957952084713896345446694885148496421506212161069635716480469964182726091713774129246263891470344255426048713687740921325424769136281950576278387799858946113831090426767978755036879888163060190342316496958373342525599710384700068170846892914396917238698445859514967984992394870087230454178791168640272005235035670418177415427873427409456266514916103039928246949794990073691488126132036957191896547606709214863925408501257983506491645176499838419445123808550559519648863935066292502471027493215737883687089076401676300005945905707546651671519585550311969890473048894162407590192480746161717218610574830001070882714438103145012073955054404428733541218934743621774350865716721935271247570785741604505767453701709600780391326645706762299212100964821727089395831522445943229630800500223287645586723549510683770118660689131658594979666644212869453634724408040349103587552606532668845847952336342845513484697496570000105343450489580299582248394959744363356733493759097818796164542014721992059656570440546424688051754476784450418162519356674216242375394879419727100287993782668096857555548116458536071769213432649797604854892427641216287516309545416993002249527590987810359833206486317814590097306799312349228712167664786497067338761403260701434863452338092683501864450993276317305927306133758752853015241746447326230176185927358195399211748849657045346758251858093845603831135751716933871733574038820926558428032186004695245204206831676893467687286910955123478400728526962000547253108071250809015469147881435154614004138228010707362573127132461229598531197018085228045227787386093282418480671762795004550753808304078266381843203901205099556112642677344456961369224370912584281010735726103688587924026721673209713813786916250811236773692754205234032336730444661867814420517578239492797943347828236425756219898224529919248989906765537851902104644706361584756941833210623501698313937562985599883671069254920270681452256616666022515459373854104975491753480513336293958495855318134194630960019380774799103616853204184684797840148596440968297127628203824791517551879468571196260092873724160719775582862836401310212331215282671400719862511563573591990423598829928813562661403339010616381395734874137844117206659459323154765999777668910180748534751077026366836778978798680697565751932706751506001769938497387001226966760941226991574455872094313760372550404480020048431470239837528764097068926408222014828129413175999286459390070739232984783307768444506279072887630105474779946506925843476850863886886320165535971728045606777850415737900759236781808497875175949625553511157292512390707088777747474601688459045986574180905765840646473401959661544613386356576863519345722252868782131233372867296651241070637677256102295578296319151672362717427848331547376568122093544928373107718077321548299253144679671896828937582995459132658123274823407840940404519514158717778781136271000235105837349904996028570642982912371175648185991427623555633008633474686550438278674086692856357129245055047175689994359913152523491788844864644668210161397830503464492106801371350754002026440829458385334498426739607924302656986960331572797929084523191830819364458836444227780091727426009948710384644066076592711944788562218410467494012115456835549365172691419874457426774477783805726630305398738169584506386000472881764733260185108727163298960340646940963134806876250620415562696616412614438277213788296415926749574515245603432472217562960056058442829821137288164561323483718173826209235755468386370828510576861077767027946233944759001114545366744171011590388052839765136067872576324496494778422557379250319744486996681106254809188114410116232210848797861778426729783902916981690665404068904675150649350322061330838117168964301030074857543016996467130732967630782739660176656243197322650172663692315423563905521875551488757641941288163712915999570492839255908717708661006489820560076915043298796770779494523811923200450485994486281432841516670786768553192243160482918323783431803925363249794068947264108325197753730613924828549457409936251621619774781992025164860043854147015391686273676088410877491185006864359284315894752122744083034382996995874325253930864630644480398019315130923052152774889116792880941213390061903062352206825299716036271774178479434264268099632314604225955102870294567340597131778483573722239669976161957888396901578428342471790406765648525235615359029912458245368853438158646877413640004899650448223874836663429302096926625603362826450064375146093565904312134429126277070824093609853863126250443267999640047948438936120882983919508739490999368735958099012404380267354037919776306922580283938115201412098103229825256314150124241503981604649148787590698586579990938516170704716250550312726267017512880365545777571310765452086178829480550601111007484411715622614207055627060208200984357404168737040828473320587487191089073446820212467390062766692054299631275802766117479536752935847582188847860250322719174986784973411699770855709204802403115084486835573797029066175401980340370634070333409131799089981866769841574718059223101213928270946877974067537703801024950235518605554903789802717091298815607679037818261588892403723469487983554206491388686209169238908005271069882198636534693617998948202167512068533684242186301372137569771833279693570235783415416688074054831062363815467236747457093342282837383041142066294834581740646710765871202012481440706793948927454698766178725175272251092599958647806703736518332249195945794980072750495940758064128767234861168345743636473250558412295519870326610404372832503116728992740607495405363703171939169894811961177058750951160210991563796632881232027326947110316172498955203639748125833845683193183078649145903294768326749946811169197508911150067542492138399777161620397506467486786764589532451304818318496614628289021166755395141065671769454517634101648878294475792465240728759810652385555732240415911959729867994451066184846307074922943337200037078077746207885982524513112454864864348852254390621743309818480004091847124675423819550903092666237965258863648059923484272595657585917487401713559313477082756938426879283945224567354237576567772070013271776175173205831738904677727883449396925154535363231357978312300019779044334017487300486985047078104108746441995784945810152204686794212004080738007481803158475882510063199065270122692309224077962868778174729026855028630257129463372936776539901516950621726936233828991021198988821839704618362965909731841243431241218906157425600279379868310069103896369514088820361203474386460100229620384791175553145514824623348832858262750306040207313878708616959096803077274120710905618504492476964865001011292599464893714297243634490221937343619276812538858928997473278394947438024014451712572794703706712848990485318775147100550092134069222967336063704184421988823551143842959799850182043545994157263364077871771460646193560604616433946223078688096932911353110610912553114844426378787155643557158289382343113915107144841326381281359909647802907229923167206204879628120477673513853794410332184290501542861681040603271282467351493093826363442399759212397468613165179981486313621242365644632938637712294991215579675690301332051623965267090022169884939450092845792698089063731466028992845462405388275792240194634664474933529438515085394639669916105743441651731905043517252089195165809087931170642675778189877107771375423170622807997731773804157358642261879570034633326695373935828279227906349716984762462764750635782426506567742872983210716102963133948812381612367362770378611565201032586996502039909883415873957735924852914645884193058528557055661938456731672345112798356390633648824122818548031478510031974035333768865801030335633819623920849040926405290851315495015425307219690502588513676570740174566743811531869681457122779898783714605320122250391770169831335282880415310504329675319310207727491986554770108023254382017960578929073709951508173739412102627090589233428503869969068558343734873005761234363178016229940974307163115131285597427186261224001043900832934299625725734177552556027865119492099531446027088712505594921181035938564378757805398767596726338415512503096799364094895670337538225821671623995865754964626787421816254456653296931857627080496105452903616389364152354509768422457226660871046425412420939156870212864253414938117919012299081722373212095733228566696205026318984817228987027474682358663019613166732087754369286528524695400835748690225851770486900673153523989236258221007245615197212740918206153820624315920255159326526785055369890015689030086210441489889141028440235387716930527997503591926815097764734821403064486491706287177600467557504625876090416222561289342148251073441646560734459687532425530061691125095225685058174578438539731215423207423323012431436928356714400833300476223020533803807342036059809877312394948229982060915375685289382163517154290487440738778120295367752109824361946848012894619221975516146069744985928888353293398476544617402905069353134155845848754199016111485634736590545958534290324670625771299128420828614117096768808854635385126098480410340372647844128983005073558940684809932615464046848737243667040904143931538260364075805353457442884516262108796737683375196432291045724000844568796257857483672273052125913254083831982568594906131285642081736294021194606707296072124859837059345599080014948242401849886983620449457896733214761212054884312017889302108511802373490300062928773257795381486922226111308540909040520065280202748063441533681764263980040111979207421076094328343198249341766138560871949995677999140265324230574413278169521035950298524903619228657720098334758680192259852854971943062429065843445707092304436279162918399342056411901333546658223788175447878345604065764197820940225729242063254505985080213875483386591417152110458643680412204560782670632113775244892979621542460230228502269906666478754506229351822310515675128148364032043402526881352875205548338166799536275173378435824607602988289420885486522692949051244846213205765441827048699789970327201054851889121775282060270135414431410251412184002263039213163352617833075450276393340740821712120966803729966029746805125483349457679245792213445759184648469939225294514115028524176761991192651988575516561944249332024234434746821670790287538867553981389894058959643926342513927254831835583765360181277327176483429264454814596855204493963800121142818971416642692582563221419385641110325204575042591383077724785665358760294517833309610346375415090443994185750793109047713855751594428705968707605378895348434422259668124022276040456970596824767029621236390741239801531417610499560132030211441962720260998875331371722888715177741280704969445777342983371095244126785582888055854619643625337308572298963431936405383795496744509230888982050711613141036852054127665867071783427349832248155739045990107621678932697306370521625290814718593140374996964652512873541445394615805166779094395466304062424014307821291967578478606425457095432496821138642848434640264408157825216717383093507106890398494658141393472990805058844444543925868186233888678880753956485399253797509229353938797380730973321291808714909162109185432845225123454127642477365040190172602068759085937235171943116912728832501133086943672370088458258227599307041487912062322424019567416899976379656961101592461063156885292531599909826811882516185515503581059560714809410378687529139752304728748992371488751670981401021144204732096895000654284938298446821279001807786077095282015186573268140094346715731365193515766479166176969767432208320486785291720637976085769152950263178974911283596987796157132524849383025055964157834168150555550751350365642106052551677044446250491444657520971299521188010876555920289035742415959857901722011982653030878651154999071741311530251793535811234819635651702527542964674549062014591264903693535590672608601393505954164024158575557757231155468006668250754564115539979534272863663522417478088910352632416701164133316216198993722973718402405471541639713634693094114960275301156524607802856111040592561117464614712958049515764363735785779765478470196705151359196960695941228847350053594063633234518179287140630744244911336950865544647594373412926771958311550744467141991715644486443788750991543360401416311082489851156324264967118782412701301742191181348926914638445738017309912108090651609860585924104638983384301366336939707600018603505969119783916802433478472858345986781779951424514062612443479844653060148706951322372916433858610638964134476534082448011303301081794405367936145606256200987450969433200705781778035847799261856815792264815528326552918292574411416832272534038510667563931941827840518474549495854411895484725084912106121412461917345124433087100632763792585218524772733618838536952846055309513362561344785001197284209262207604579847212688133067417106978179983563634783718397925876666355496285462335335752048411997514313209441204451187453445115694458397655089130836106908415614568736361458403609109867009064456497112862607480900934559336842991576872361065344407934273259282539446709033531035057603888787655453689459545938596505802446841619707765540518299054479065450948768761936158111815425709096033141929775349005647978296434232628098092334425620370703054078376097034898652729882032250777045032303839216446543385542200335516259913495780257051458173087099778643879360154427349311943969627203709092016546656696260085049919404121909299460200733943650290212267051440261761781332284733776675774066916894464229174776869584118559959243726988441689618013284319295091190254205670782293162572751991048745784994620085958670762060470139503199988232982489343311214159265158235162386165458540375949397840522650721564300281654579119066309599665403014832827762514759420950428443314456699851218041169947455225597677344934777349249217345333519100058813897536971513824001023136410843159009221702403490193558366452801027842864384798156030430668492109453214945379231273805311500981780615522224656907288264452218376303604001787134218255893836675891486155337511365662633697812210054300052438444367026266662937348297444505266087534537253964218330153613254377948080513800628140910297471940333585001773329243214040983800551641210900868659823389271356802998021866792270612177448927982888409473022712658879313519509800284026328997426988766238639183456948537193758250313303364761308924640380157331835994949229188155212676121438036151009733736024896521679322741361024322504743376915014244084551409742763335471650189205107830204139628269427012288042559563752494681388654796374582172233713775206256625343509762223414203944505993539789237282379775088763961516612584784751265157856403647539600626882467300254867892876108584358551619178236182030094002613943949631174990719903898217015856897710455572497044359127870192986996637752773210789577785796556308600011821699861539855016119755400963993011817105371115450536876016838339302373308322353768742788167594451677373228881649565206369320810876557767567077430799502491426456493426944084485362144002138240181587700600626087334351950801942936088696803127057610330688740195585419234724616806994476745263960437675539013164928065086628988018564946148804994902876409816352705813680757678080539645964944462906651813903523744953549069525476438115381212229205736481894287214424632899058530042168504220149056275246582190278054581486714301516039009265432694189318849735179812275023372664626776712679880754322346289980384349522785366079020311740615726502725942846006249150052038331155498171456667678138972532402650908986705657677779597161068338676603582581811544775912092343569753504384321187598260438262647620965086938326271298014573918273341722597742423275804740464000029464552531857938729836243057439616363514565856024092621203917402110993312551427320777072789062672962398841366265333037611170982347610926710106075152750180485067485246685415863676109802866642530566074048477408333298453426492374722385477571485821576734483855188443640949017815325549767383099288791342336395345055814552723723753096005486801267870662778787839415277656086849659807605403825800377714220220748509660853957532540959687253884315634798673776089249682894036231981786303476349575060277427125017309549339197668063550492227535098970274948781456161035781291278053132127055146491205483583921470442184139870423809967115399620558258572771121277929619319469464897172102657470374448463380526866289282450997670006753334334604936537436312964744372283072747078566575015724772757498549627893190354176605207249393030521901522955376778010692456425877579588599999756810131625911571733085577787831153056809637927521633113498562203545874833194202426188851908295029684684658682132963167526040270296866130706222035646823384486321776580122023486242153723976976302574992485591905324648998165303684155131334465545681614177145079804429349177107500712815731837456382332421193474141400593749751812159974144854821132886751526824738283222112824422086210685247823206115861146992729607760442423432531428028804403550381846590976970048410734366128421466271836392825132361612245326721131854083632740072780954135835709939716445759141569298999582388253118944744882311528568036350557021950693671283948990580810384268243818755108833325633847691573348317414819981462586362371455168314846871470633733434408808305517090824740633535831973929206383740094675899409143915083947329572539046029096556728650708734952385733736599705170726657449167771632736734143090530054861970521639560716251674458090740631929447979826046181611748293662935355100647473734495538524621894710259710863069456937097262447536177290181080578372321212904537949780742525612960334950004199644779015846731934399904841423415583096608329092263865706632365238842058733148589881543629657075875157064200844876045431329313773979830650675068405741808664743355495882738322691549150790173864999994895553185072861192244088957282235301570992351254897101333106584336925202759103255035158456336584889127739156544489492674001502007358461835902690927418914104325734086940198740027629971180312646185144947965221903653437425273039467140277998923020921858653843835318385665934873937831973555880891707591143514621471605636612535664438785160957189960485764547839386873446863369727411385710318097915458358249120451574960434771064713333762272486907585770345528678823090927831669573027736705483236424594590217895225689740824986646908666648139456244396546566581347234586394743669613800061917058765838055988011503447449087833121801486566562619545114255309825830383964456155311005946327461137917807034587858040996289142060557784050182208416830069359052959593469269868190631527991998380746838097015183695361131257896577761834811108409852112736892598185989182525862217509899814179867892193304726114258505387958532233657971228613080775639733061817766711188246839295629442564189017976758172318679225386147137932109700728305843001522229124480590599232788229467903989079846514520895998973993498200786972809748338636187524859299424957952353896552414060737343109739037825654428213534160597230633113426140906244645718928422281899992011747250005130527023889841247609630185614806654110355949965799449086839794878022610288149016347689650450957821385485410090066565702209017747183788491440662092679396368863471051637558803106235375599323102980730318302180565074381132353168716178708061224349793847734566703989784029082970168247858515511865964138307915085090296431541287067633747358270574882464235039598942454463882433966660126881761109676303979964452801655270971771183556947425175750791551723975618222144532230613477444246671661811523407234044533354373375809025803307147391336428356990903924617503249348137158605822184994719693265210485053540325489183002575645133396712427483227230217149565202119022757352923682418624350598907760291657739603949726269144917284420994861842939462119423646543498418517564224062676855529641342114805999787759919037249829078287889707323254265182432947286783842183275083691086769797672076169974169716008183841982330645782718824628048488199704198383568579427221463297853830533496074057870063334593568770713189067576207903001067977530415900167969683736545025868033163081337912275152258915486355671119310248597534070439286494485364652697450339342998118821198379626529164331643791416458737536491850354462788557741591372779327475979111572145316971611970622684877527417383275008206644042963746692667042135846489890408427854304859991575012133358245806085938259639294968195626580061033555466838390668390499859868022303011724087397937959263763476755305572269988545853266430376593160530047795033870716199853543203900565288437425671632497549228146694626373105223620484920517514191946346708855592389589169531839271694474552658076673104419588211440615725032977116568914452229679716931964877403784851513157677190182601750947106865038627948532934405525343135427990071177264240562996062628672372772506898544008192119513477838607674599498961003034485988564223779261304087915704950853260523573437875906810397416306397796684690954397062995310016131100446238972231079162674076247487316529956366776955662107307877589084384951615261286921008097819594840123752353313672801768046657328381154118534950511465252068366598279434515000576977089173793084846955206462829145473696784728624017643276782760061251290090688316994647983154079189215693729184046812516000188572751755449523531719005063480005438905340033628348101621714169077664239472438463368683241749917178389343532331669483836639266258779666817710253678349180703450067508701977187913904932387931393525463560144447826381992783672606476260790487004940602496415107300420918475704084338795621025501940006251788644460233894843919500037926927334457507363221055989524271090191210326567810301628617838328651241096363458979234970740907804175326900987555985663155119646278420774092245202183120977032179213242911055059556702892451526844910972572788740521936284614997572970332969108703531184184981015375751633921471467589300755913552728170443293626591576062387653089567440486765155510647908661625111388458854303575969958697086188872359246039051437342411466026397002464325578909331173193738056025376325063329261293796909030579202395523573428063598996107586657896388355986226965453825376420949830529704915875640291179103782942230026222614290906317527353057593423191863958053344392011789268640118380006427516131196060780883493670779877919329849280000049350464701094172796594174272973250022963708607537397173232342260825467528897171727219565977706899035604607282733541713382271260110706531612580066141870457758967587144713484376733606165939534317211546044371127192829798327400987206292424207479288065124346202911859454841459908955221787312138222888688067151182758332306369183627800719979311937564176788697682707363230729670120903693915633497526554061847574882311864298910680569806270344735133475949903002074096324072585836092641663192869990980832706325468713895274684956086859094824341116847188590822480963408349377003207001339169000628907885090744978604602877526238524412077811881033185566259565897375150531586547195893052841252344061513386612325738556826647355083593467819844200198328337631845532981924020740903885926008276823614025947983920864247141977734323577689373886315811547380460943381393495881399019342015460591331949579205277330889576131997600279859286942324573618098949143856552985142668678936440086900588395856971392696035938350415727370163543615885071658003062154849366892821867668744756808603556630556123855536054966684384180082349857766207353884825123458027189256827456830828086053748765239239023333415947303566459792924224867861151372399019054072920465859918393109626829058372790052084273177128131153065336658116629086061249378483866873237468576974726296461141082905415058312028000738773807081403051461012633552440331064867236387246093850261616989106113193908198713759627816231507362190920918615142227789120364630594534235565894357640099237349346405016200691552098886693941383316706673392783352696229549912423947509555540617212330495751977410017136398880470204850147344297012814658877945140258229132790238037170908301956369061010001977733327334017534901682927391817300370614173174090057034167172952690419743568970002910422882337595418863490623220038473644011064076112500810038389746704389471217339476569089688241250332555789551569002965489502089579821490290971150186963355317387353003167633315574808535157786444170497021919115665044976775578361779386486047598497245183140031491335652478201949755115845804268967445569743833236310349646549898478267950177670233218149252916959271823094509970625026952070199391959051285988325535591220551100219885593249614638402642983475348299799051394922157978505673627888065851098494265625443659006084314553951114725979417562118846535519869133922207533180337925033677676826005995601991424945581697929797996414737462937532432148225206584172911563286302520136581468454390679304583965253249926369435865987227510472939718319809830088863827659750010017637664949336328273797454180126889209391915740831839134425030644189752312718302539837423074499771119951967557049209575127364328856125114720114800449289805022833724970569878020124446628111136820757866698757080260192848488348604122762222595555302967556991233006249168789768061310882179386859074346254159248880522855266437335223029738874136041447407972591729377803502391842909129881491848483946393404270972500580548183534431239700963050227034248620651085073662814489470422649376690589620104610619553127255819525365115891353158803534201847255520977459099346790441089729856869106264237484699242015876381789077366605142245017998011550976078324411560222259017611137827240280885632059514560139603288854090967951714500559804904943751632457824499530668808350424892776484867237732713875663602994989291018583891373399746229955408273413191485904162217146104491896134843719262474333091372610515770137116667392335140441785977846094369387918046676608358333537574919969495946747471939761156181204306515499515404110976347871997984596717772841597000295690348673640937636642062015818049052864962432161527320853270726503099605514024812467732816368932705035385499404932156740057637132679206576492481568089233163182836767014575612362620590665128236598202803582906596301319329208828649695418291197311209144753437197515100451289540657469721398136807525215703036999347837592174260285889312321067193503523786559541241150693705585209761542400022838573458740893681560760322314934067607800530319837036983311205398792795197875158999510218740259885920809647826618705933453830888039411130831331967690603795262696362936792245776135787977170324009011818504457975983991382288351546113756045864325254112311832747762497592688398184647403557643911850332701083488278554532609886603511156870601107311858578372898615353065373219161205920048350969485970706259296124504324833186354502251890030169166903976297807826129449274431351390712685310233948769105786778503460941455915633879876186070809665095754842372949084024921831572604846862427733710995352352655171209913954669701480042116840605496586419140904902494545570021917467828086539413829507086677607755189935830589452027132222303829381561556674236393914700288204687882849314201122682534142233512104228271053947198339092548826920554963425560833667746175702119291044651344621612727919660141272568998866926093664300746726614433790275133116558700370103180113952835417949282882152864407693380857108024088101903539428026362613534164621824588860195332399642399098245921476214030384528410843098521590691241726940722868744142267094042724587127389601200830789082771076680309370082092661446618218821153353667973776527516302309761333917108526012523420216112060740331543983557596526404469377637172962138787359313011128743488897191012454079550384360374306959668097839621275693194689316469304328877543066913145408208493671068824459909161856042853503119706981512641972794087629199138905528507323056318178471737736723447843532093841525561708507717469240683469446839785842432786817726573489219185043848976994380622394434601371326677701246615547188319808121989409317484881446378874383588851761030254409556528955363354498047296288376958727927444919545385887583164161217416996824975115886942752612282792928320148816672276614824976348956976205374095022082274524455958108220284797198931798672919186020438982196355064662407297424910167974558545317061760289189200753015080038037259744606007348163135039280251411112946276224953487521759019178047067196096043394349125140238706487055964829935265399840181301540028700377623876131223451735857293200652341299922024406907418370003165248535041252539846160259289473705888404124175502107350865877132976357265041542412336764063055595562695500365264822331845169004890754983883846454160325544178520899421183896823733385942846410684634997286177598206610827800022846632080613252276909132803972427559730309913482174760135905299248860370498786011539761688476982166452970744459969636343659519895851006006799368699473464959723547287639947765361986029107359960047842760804381197102480648276039405210526719184521260871503177997998972872292039497744271250589588147326850959502193460525552700115444576632311262159743948644697239979539423370318635742982347870643132854844773272238546534438631103681931187721355211369374609835125194958942085900213931699749803118339896998867218537779419482787608135438476663793649986434830679989504361619487294313954367340485298585246733642797416393235828663707826284892207699198711369407716301051451123112550841561913729149251205283771946241542245977929095533932704530965660368796180372988371040046540023329624499015948371711108702423906242389364267922767833342651377231362932958121680580111067276488244311233774983222013091159152756120252205063690379230890201796232204246593638945883550085347496570293826656998364485000149876889097376027455621099699674248382268930672533015771933050956162416437981265413351921243759994940107060924304671781662080493636853840496079083032743607541733719793414628642476024476637032301457304099817016764763379745158226062428351659635694695965796205872984471751683442823020817411023837145584989429311432431082539841155403873801530499271630324893715090710902258741761934432747104759050534417838299032429977265507779373506377238107253304502337996760884031190905207143347216656264773732341051557844790910493557820579133816125490330455360471238834974094031616225413813899699395300282228862367792603999553664095456379387266504526416020355536680053254268795495482485398888467503981107279734401577794905468902079651695084338904297485654798185440975150081729242432474684203546727071467325328757859498573006477959878480448172673113309749168533831293939396542667785502581486828579719516273854595219162568100692745803748160308349447846254265845419407396625898363315598712142482791992448067531928458681246967280132761724978240757491935303524335675014593387972392600624851655098379286362021440945632058147438509576927598644614493324405982811831692052445404704860500378191901115205626287144232134537484070679579115304758120269023455241954812234017774414241163363064444508469089259425098500337494783594661698235437795264652529434553755206513171618680524482728947599667755223663223150981149759142229187017528924335299242286526268686667521385852610615489660945065973685545504454829665963849257693443936251943144265038938751530516099795651467305306030048999467941071722161236055740101516152184650562888137209956261266528661652124911027772953650963230413568673947989857870653250200919993224407437950477856214190851026219844039349704769762936490814834192635533580960945915231860191840751874041997595341604410987890812339406273485317409360834633294700771314006642008086756671230866969177678379035726642805117685926929793654104176161290617137783819596287305114597974917038926203815791077366857671445133015345124353732214368199482528714925615466837785670511832320828485836777496363425070383821339882453062759460996031973251531156239284114311420512662744498612300960789242612354441118470895549546460175103401078545357285766428940373446014774362038186813294582254980495382023660924096865003629032574768920657047233191070944499696382618832113891939878113161065214626276982241864721891988540540562735314661139029598324426591209306877537224892997471534414009351095238989819025671177402878389818945235771945577171495145488218812890937203652851278062963924304772541998133839856369498247883906579406570333363343527994631624172469950398866104983657076681105597804951213678531601985893082143077666507669863752820388964567459919101857977127327695208452501083652182828351674280115969090218969121930075306134165026247388102627427683654588492058209588039427319902040499514463521800604499140913034080284619246758768057884428870784388240230566811614645182199922547967183740261069066903824650951714712823662726367303650618066625348461862358674576871914206628693061309048404648445957078689758904270957626890242108027000061166891161186632648862608887371352437174050665089409675414999187375287240344848195703760997052897389967764268941386561019467431829130036601912504301401714643237081136384354140369412937809778698111362833918744611276860054662770752466031441774592776737432838132581118499215078577690580005593345504511700746898221427731086594047441327017820739078940569768495549351309596308372097819105676717560911198295387487703184412756624536143291225842652384842470762603026082035722562621618474509671900733026073067083464968363297590226767409152140559669163275399211127301569046213153879764469101073819793400958527482532393400599967209775033219486186079929458002492175365065944128851249597581317625260608704111906542373069151088925679379494415652913043313863639632566128048792966867940306634215271190074280443002804468526973598922490002700941673897098259923351360279543750814970765263371959654247326263812971609876947822278933721320286487774681674991176683567927700658571759323656370369763358681092395449254754287178271500200845442916905358136629646285626865633543364964602239657550195072878694548105547425637176467953730325896858759409546221538713050657184154335523664498546363651809620907943410450343708249476235307856274144914140120942979180171803821219513699254724217461208218006074693238040179048847325612237328812388341347484781615227951909603651157996443162561244507164316915611278904029771573615598865880811095643978446837783690619641953022885457032444685974948923992026547565628638516707338300109468224336836269556840475362305298813538824169487533380071248430773538612337458028442080537012869719111478825470858676087721352384529273360387572260515508080674971838447434448817655430297095468966115189612802913865302519911063891087578792024402888034621375142356525828484567881857240144937045134663778261331204710522185288768443226396190256578977469732296497899516191357194556579091340295726853025162556257028170993843757700520016077819095065645023934987790097521269374932130700479323937002328725501216597802181716879896017154899987379357804747378407006269482725507601614069630458328111931423862250840717525595606044680998852196987906839268129993097919585773514685113716648164004167046216623471982943856198388739388780640692760289905125590833247955135126302962238587971986779538044278961984665774116258631744421840275872132762236372667761686619880248271698920693273168784074481955680854622668155771094187798985285268461756599268841083099926038192841564648402620999882206065647425319255901584791218737512479895647035416607580014127333297908952182036661352999329663902578729729416113971984984107765077892276233849756495755214737471903799665547036458064528770520260299151832477313872301086750488341464446041683231003067207494956550380216168833107164790026261796351339154984859534140679117683702485952260515704073063538252186055479315428454700720381957340438158139122158629030483041176663383811239563071436471699930586316826197233389851495126110077010098478453695730463733297521965146564559545142869954577939187402427984104720919479884316858107954485167430757706571921757591110196275697741715575312017490621992926430171085328475183390961054099987744794118412008573291971232862751959483915570882716893254781795522140815622788728918644877349636914949377858738576871142365310236773096254604045567643635164874691900093200194994979749327609547662718332490459185754232379355060538665525328380779467306179497964740312038530929392819694317850059539625859285425953047168951764494767655461103410042871742633317534251955310618318617423789805451163131097152573969354959296424575212153240823334986302513135093153826445266336714115921800944956509620619868609170377178003009572729588983261890474362938558252309981822725250621508342967792060918237452892296938344598859402382884106614810263147287222516629809850508900981342953968202967307006333242740390411529189382001433199044671958093659116604064950305164077114304514460755424643210037296980741914987960616457780180081539395037567198733060030251150120102185142355880096903337993295072757578982436414234862022993990168631641599255926896328141134531455430329229154526243376012581982635135140047999074755331349796355640512794130166496439302958184666848172640691748914106496785147145153505130445666196037596983968177145813346104775560354324989563903993560515988858830645996892877286183185912106948894546778926418878992179905798145656840129556438206630726320342682416579639254322958096160004972984639635607103105268921967911823997813046068401201436116649155399427824553471229231766277269282235082650522659108007648295692752362375241534065769689434719761566680656589010646844921170765527628654502067548075589528971202446809671408810323070368586501389535288922018596487114416415886489811260221022360878745128316985702395456345877837533668211886217757319688757805823618019062816387671291429624548924525090638938666488197023786785416405425845269995247433751260326876599743951349272730900749916562109716562884272194681658137377974561784986462878778421118896847734664759892381967052301736155352791233041987318219949615242970830474738020768805507493919682319175219976923137558893903537255687054253294673202271756922436840588372564014796287216381119029771153242262650082415373529781077965144269352357189283157686928319379769176826385512947256884535773965082560061783592871225647640357282743366304449271537218318500192689994310415401844790616987794115667691974016130610554509859435962740518406809458110427359965708662690431896269168233163265470562538312970663151683568725101258132430787186442534438544623114346953219559244505148197840636282382014392145566081476617107379236327531028014268596561236504718006768571106214401400953396466180661454017074053779709595651540381080645570714105997288441169004521436879397259689976275978805816718486390118521624474994099314080208097600061762706696750268034061377399843512131881638572693095473296089844355344889054033032816593178654124536579883537283548847418597403247872235903783144284335888097778359092934364727273961934365851280058914969944157296589647039447412169326934875717693710794776451321460262691227381354412730792551382379971986980198842348541143561685074888456223051173375504984775307273754639895054893595399408054645975112826760495930861393111342095950680696551542325402285596963446507235816223425612991289455255146356563178993551089110746389943877613884141795594217868646886252390586532317170739946485299229010577424207755288323342576431767124805317372160307795248514242697904741698339996466869441036600337152768600478612714300027161076967497849950743634156905067729223709981166146814852308032763811314699164408172398693280775105366249620099281955501175044564466226888632369424314237915118467865587175156793123711775703250845218606242901407000663643022368642782065975046363775402676070874113155054371500137696692911560180358678950099799619756858226294531523168867951769703370459980022271398969923341180748673904758966840929660446891670338449089058319265087094536078708854915992402840935173416311802253977240789410986650775219490324540383372408359297724603612480562366653460645713352726976529556972387700280728680524307724695136173876303837413663416609252546197236991453265621867859141819568018832019761763313991289364827814290444681223696795181680743043522978298906179656977334205880145082649144608725938131785665530929119096278800620767515020774045893267217560450371826854666994230219455203855551686287059758653560770048528836552023107954682998583283677503374619225175409942602874682212612186706337272954644870986277448433565325915176033862046711712394403613194865028611941505534853323769635461182180307990633381395336246934655376541466582047866713656164771643997534277296921968970576579137484219111346753387867160964736552983593660585141565755519152644009065670195083548176422479550092826649733174260191138135133533077311986034162129351135891535963447744565972413408452971264738444835676886439104126544309547269844396080022001236039667487225018784788084572358409361159182806703023887422353252335450402249744343702315226157667422246879537177221961666829297877499592453889443901250189531142785404144041020427841164517477833977938428994232357941847542096728764126791458615556209664523603985127044847890410774312729555760648561781466113953243462833271016926798536655644533861435281656220178263401323591376770401191917274584533506516334028145434566084153560212310420995142511031196139765239410313411540295225303448911477273539600819718986573528423782393562839709866311121027819239430772520281615403522107859077354836939030280280264375097782373299665583949726494326702371921548007082013719355097468980047585780267103281672403584001726259121048656636234417849725143314169581740671287494267703761635016282821049901707665044315802928068474026140877974962643852359473831854996058504928396629523159040079417432830772237838662342555169540233082942630211414460792071415769534428433200779825465375927572174900113889506033543960717952467918579596410557586136513965797136211186774798084085597913054439237891861176815607884654470355659658797700549132967932067668028926724725487882374625414025173010800765887372655545021167200077437420577540047240566787862004157941220262972148203696995913340960446543791050433420210966385503325152746551196917240688923274021392768231613634370003722774413084417112653672153555304083858972085649298907908878494097837464409040295200060674849501105950276443060170817906822823706498280179946264138630130406632310686774316116999732585229650885919383985357887801178059831805065662376299781493987943638914458688098497016862062670635726898561311787651191680143957397104258228632834117330812511529287770904829168817503652428116595907313838733260201457242232364737546860709480308535915021958152238081965285981776066922287080460195186674448325291670189370311836738942335723487097533191244268883665699538983425066296458148541621737126717131376100218511821438385288794518959710086277539874680602680757385350529582757451067215769601959600426948902175607508370509081572332469061223379850386174241113527322384156595428941314983930443725204580954408647413995374994395295471614446661026051903436019251724266700278671028676428041226791084747545983007158168310716795552953705924881796640757216186225487647737186667692656055677888490377746403631395169685643345783074718178282593270638104843335967841321976619787940880770904583608085763214124441390973008099284680891998366160563694197617471762709402815260630094911694122326577480226276549626768612210170867857217340216148268642726359967986204828434632489238224209710728552329310624946636274064792252331303696481696283016009393097415953995146827146529481703000703832047674813320195107449388343422315968255724048531563826491892418883103715455390944929476659350713827068411453714376764797421182452421453734302132662600407213271433940190120224403089285994906569836351985836046324382700642487564700041151451734928869161763551606798237815217838683944735872974401383948742115392174203246103519064903527922786664332976398182730099070049508905856513433689506744071219385376585573736237572745576924647850090348845750643335219566549411447815886350017978418307602864714439604196167469887284409525171137576849372519254440900159867076929196099037880509363528187092247215798316722121179755893315044344040182227965133955772484081129448441278381478314288703390591347595616515943276220601991172334581095353813736145468951043631643663058471112815804563376882496007765099464992592073073717179804371472252103391519859216617549268917375502296952568530245249224937250600169908879883983988247412219222447189856031932399995594457924206100138070237055163947489942259408514640231935460126455232682538032435482583425996221256725595161820878875542029809284766614216663317629258306832505278443241835164902315145839192851679276283665957234256263026134283566824192704553052477168243818127478170965773671012933449990588077257744975818213521749321214261585697655273926022991879341007507056301985191847652902054237887265687853033312604473395498860407781945762144312204482494090525767641434291724727880666672407768072533020183171870185892943483817363039238901968539062618518999687497572852535297179060787763349733288991416556998170656786305069699909979613167362257406539935586042339478090645840034155752103823357906437025396402784445040248780724143899123193297334424378055376409340578848532899129685651885584261418352520108454315564580046512265942767648340857005138229457187194103701428913790485074785321545445199354742543674302486544515253289571879893707609737429625304607746085273033831099545487541480768186271464765391251267776230939407962400428076692109091725075059429761525490254668683465081852126864525411534289862749204077778967760459837158315823562913067948020106842423933474088136650455555054442500084517786336524882322290773265432647933198306636340205267498269415638229144458653486499676756586916044148187425036554047754693005953999720735926113494214467394927903344645446581147996739874572694254321427062070790742441702378368540192669471248697531890878487050039454199835886618409816563649263718933317831117508981209448539072173942044083626791338053116644388117935386331659520253198262981016527450063954477074099203265823145119000374334806465085753271421969354630054288235512935857240751075022067937942698980285843839513867566012564026252876951893614031283640750428601838628265411092912407588699801855275821346516382423935520962982068362548756585310694867449564259136839229182382177577450198560772855375931346972104300225800688700521730509933719782933770845438456708483788502016530219032892295449190449680998903605439226931981630569720712433831417933686901138892752475958167995288200305722033199302239016229507876157363532603691262912692610823191894021820813891724671554996794679220064781256624350971885276588884604038991068585009094769468058240039978501540936472431762092354491034066009122751106784332444277769004955795176249362479008393559741963725800279359681699653820715765030249610775103530852042803009612764852039080022488688268566522093632358525603067345803672252779237091092285581805907127286299219744180491995942274456093388013296360862770576629782983300480808275667468683647017710541911119078833170479815605702183330033358639566452215187539714412377255429700361026111052042160396315594316995623407155155705612033711943977470236878239822663240150116281943882820301236302891766322290292441831178252423498895596198337922819827441067182803165122983763637959076851535326874150623949175239864920298628922774799028270936444993404245356804188928139218766779841496543522381589123000431491004893621485720210107752896344069839552650624313110349898002119169154922845484775672569380742836508168477793477459462046577960113007543119812493487875824790397459083828983547873063834714711590036087075676097919423485558012805082985720256371952294644906116553272234492313474495813982213033107664938045056796268680738196415150646592704097887025941860071842433802748978663678278786122899931303240909044838890516295640152970873486777432118601897236012437733092431581836545141670143175247048810744557620729875187565196698517187248829061381214105817469060770221207645089298783899723407235130445183519344333086823541241322516138142153972128150984660969650947424090052839331834330726901644459308519424917431289505154054692799312331041526452105524935481885175179094771888964123013944754443945709146135079748118239267527507565712383516871316822979326013577725149761849104983890243701059697454950147423263215885182048032122898651340708937759160091155451160740641047653198681099898756452976211827145683468443152175059669807346596732246671324753232122499814470593537844367496435778637837883763399374565163411451246113523456332089425428418943781495656372253816862277127395769287500689245504758947991180667945384743942066030620089855283924624962331692345173085180739479706125114916742715427739946938223347950436333491602089055743050545209997500922689874536353643267062421113569478135830232200938138827110746466664527204526409914278916036501342085564443402425776604213716845481016564984717385690664974789834463752526398921077117693306279847390008884516251344082161198556197481677950935012285212398942945748911865186302865605013964310243343019133389046784349814283569488958049118882726315177337019639269353197748509123947547773341031847436812825957047467752828032869899926284622098532902107158177955397143098221239205635612483756826690581283184550616280795721605267160759553498927651193334560592595182744904586235796080968799112450619959257641155705297863794248351101548747536426218761462700632996788586502126983922269944006871517883226428619250681898495998252867123700168520485904089463273709192064011932550669576170777599957364401155940899353813474589596077741362227194407481148936421379215791906781751122871443685790614622653090614460428037829802332512984752762293775694674268727607716262068148416627361233386468472834621463643414407650953037409619465770101523997296659421292432135621397372871651809398146685970933957737231803184913523484648599233008535041957982147153024433609360986594983830326164797946488364785673156935061878202272802835443993294167317967704208514116980719541861446082756434141107825782474612491500140908130456596513363989004691815190672205124105917683775289533447462245154714685408238070508763978030089485926210109547656311371288694000494037469962891321407565875380707744300717352938933715287037108785617538036138532142978770758021408821764738696770880461881187980432860121263073530384116374131316841718314048163899998898678162987734031477510856623948999230210940917845337741144347339133720890083323158971575085132694286947542900097581333956293551861877577685919756144290277875803657693061123915367334275531886735757236072991974721832688082157000339186695451995778123900418028324802429240474807745677569366122053373602941404354775771461367470672490453740789384968666342304299112946953350178291184706918298444001785376614323658115286334092052306265658392286876602252992364460308785218347698878582272779838389545600114825956592587766028873141049199119320931864228912380671314536301386451510050580142007501686508305599653689174686154940520227353916031796810833164964181702314137831094649469472181838547402620065478992032050571236480731964547847433468824685331675177959423800209462257359398849264309536380948708101215620179237531721145529825225223934271957886557604025587829491151020948797993933885824949778418436158032460090230072822757984367777022577684118205007090781767837287918271091135173606187432787420643632598133992798750394554546962609574373204086251138711585359832682594775554013433844318825261047950337615585277134220684336389345882329328075685452851903466212840968105722535499874804974802831726458016159170489225370071294009751511142897349647241644654499849207212963305892711926365394506325232734747345359768050931835995953910100514641266142908647722010767427923773852415489985441987737744901229225607851913749904605896506213035348418193078893644745930194138495892112497906325572099165908636496272309891494602260159856938952196367040228297016365584911093782697651128427247409729606774484707184205130636575802074454393225243378817594384281004184844645017966007760718394306196467075207760567705653266397396064295248275510918149545652194415998265558502303490205641308565946790829775693102596665735305150529122113660767782101740175522114507335958576157137433059763827145610950714742907410280931935252024764397117067890059732844218789532778170216276145163831287224680201781931977519157240702651485178915767660166352616930797885645233962818999742162359829470104936688753320858204644090704158673162330771067032874047100252578243299802321944789784062836687021373677776293443303562772927887188499017324564492205796292640401617075245470866745329156493817348579951973155319923728716950153632339856800363693591216019448915945490542674362163119381117013738113772255557474119478468052234384104948375635790297207064014491881534892091582768738329859054332957994506535124398176444914299542759458477500024252237477134071705100577115152403157828607949055379120918238498125026028860531904622647178850516557604986041261018116359024082486586816788124191890822014016161555571804487011386008903499056587194719163822896619155189504545494611378708618797281519070141757165165602062890283796106215848075855009866883992228068639087262471774876782894832450776217460139605848448104662172846812546670409950597720024034189764003436713180936299047685795963886283642648241758950321659184200681171601470465009382584053628148511253837238919067808825323901313811318215879637077633280188538437042848800919734742687065318594651754368500463918691200861266382873580558741171267636853030640114827249893241883725812091128109437585979082650491961890148858484736934354200495399068519864907278575815960394485818753057430349845435485504962164772987387626530204662980232830589823779480258688016283135462712562449756099278350822038600600507695542894405008011352650422055644673452873239064245152605705502129388536866999627977179980436429480741448619328907605906661210986354919910766156563362577995810230925831594755059195812064367549539710145844403226886498452344082435102002080659530904172361759448841271219006089633483977206800214536913841543633253727378797439068033257567762039221259225365549875245778309051639181939018810318293973226372351445799009547343822350957311697754171593045481398138749853467929416035295710148133109595178470470698972763664538174842743815992395614645210162975113278748475511716049809093551673262250522553905419452829662821376093099854007148778699879976954938242092177964681524540056512882317576031612533149555041151248564455175484855137989248182363723662418796171854117403550361256602054417523403667965281818000175278599637585302882294656606742696380685375507629270765993608661402626905387419131246022959773743528389967533337055820891194998635514963519673112683959338823883406282186618143635929209960831821768597055533250105356706796486974130709216833419827522304507161246375077674206931436523169514295709748628105615116027038525476635473393546733980096807281770673596457698874281618898039863441567456457872417757554584414357443572164991584923530345580458868277906635265932757725729946951184086435978694169778692584548384209223601965546663301788958209324799656862092532175756422075712631288085130875631666738610020718181198201706941758978461840985308716372950297690551760427070884551876238839402064490500465582860801889991001459458970636877453698277292114900906964774455158396599427173144519338663859539675381964447189508360774020515185044603561521338972956744072834631596537237105786715503235581041487227347065008521655985067695087177101663729675829828663943998098289610997440952988890858041262988328622942044986439793933115305489724416720363446363920008019032353860593307470377935812536571725888353195061902857852452337379094099676661746819747980647280997353100306218901030210220831247703240229029164037784098279073375515011984241391242524152900427006034268388920210861310621097331468969057752252576265830652107651166950724453499226219680193444257793277469901053474406948045492416478886014195264339133509313776930785511481356459931956591184363410622551814431186743037453579703632855924915885285688588674787216512306322030627513748178025974183107104303681472240058665735520912709008126262055814109040359011886164773706762141141872501186986572756147626821937916596333023280660762783065447780395047055392314245271910013180807865747145484229455645414713378148446404666147883676910603380139548919205675029366800537776204043759875592801870767777333671010074157290490861647947988110136759111046510030838710470764022048693679382355823229642687855033502112375366447254747670789882471797259304254945221162374167308152612008090428871611276736877708280516650959668782154847512493085313390034384198355427404059115330468698116674353558917786147157760712289083636064395616062048840943264694631531589634376281104224727175452317277235844545255442371180949039428964372664932196726069267798378961650176143549317702123655242738522257567523031262574913015172045945163801452430050589479210767806582128827433018320054749072939590637037373073354312617744247349941104506322792248458806358024558143839684115116085816428671480098346638890225709800751177285799478236759518395885582639866023176115368803776702261979746462176083696222046123718090273006314340818470853498330337580058749798106868849413006164728166140025716609654054657061558784909940572204579423979654328347729160215136827414564085002418115164083629750125643791897373135468215509796863828346444115948649956817508172827124679809524983836988724926587609951220391485549856466845809628856467182486172063100094373188182808787963407625536053469454195147204579948835717957591168165335422889199272559588269889196176491241435957776971282458437751559106420196045597851831462630076808637858166738263551075019347257971392428195491844096223915126798933771036813252565161205195585664963980355010111763106706410404684797298377911013914417771091529903600873899528474331409170273746246043127044385521162430076384519705264897146943549286938642740779959990862590172981121430080971453679050136171743522416175455819106350255095912976165200709648355258177243984123984761974003075281988463808316664807608095013349894367894386896723811492479066816746025930667573271468985794543494934560527917184207851644175828273465837245367637076710623604133219806471270686878580013003034893888217427254140220209442291031181719196363627147717711983763081171707628577368453907261100250188605471138958782769052623889061564719852936371688712845875421063878798241281264013986017204927998738845358401261044563082178666058818881012924844428949447405100993931149607569541428475201406091875055571890798805940177258613522755128921896234715584030520928352947214925215539115618916486692518708372521922191483560708296666051912587910557615798237572204928555904381673654842037952566748023346671860878850814457240602735976233106576810785088022010833599782273490760233031394211327921694790813700795887912129859985983093472314484585466910553554059263853968518947605007129283760921029870854923557239989960152469590068438111442640828367732325252120391479932984272872268139753040573881023564032497700390996817408634515356344307204708788692014575917504530587648536058865335244160446441551616908804644513372798427231858292833532351263189857976172267520881804057784335130060711037815238761930165260735873098206903505242936985022217364536848923120542635138465689961891109885581195161098793232459829583930035754608098638935672246522414957089925973723683769518374852276791325893316473860819925062167028593996533563702656774834783394838334002634310439270170490276515619574854846541661165896480936217343334856994211302498650708069352560938173870073900391838582201700552689506632426192061942810731660356465615311699111092751072266837302546898483060186510950073223944407011493025252722106090479784067622202246410831996108215113744605154250015091232394669484439345749585946864785242678048163585422295003843053726260034467961798540153992975199588666273414498728618571157779288439045958396082003693135247146522741761829968396311805030010426189503667874790245588140140062551937611543050146942576303103913768344665901669995236128636650107782180975785039283942629331465421334149644982013181007148631939940732426203795107143319963172786155753664910787290525989585300873067657625251719270996011487721595888514313681791818719412717973484521544531500160414931164580061167063766831760602458529627330984157788544946203613809296906338269887958924677637538260546261416982470636968166853071146350347343130171206838355060806625063853594532012876615458601632971933170133326680647473660891947613657521933084388652876290603304853342213844714938243266883246230141194584848122247715132977258173825438168577412117937383738030798534276137284416753990420370700663531564848450724145526511134234307887063373298433363657053191388182663700000648777866414831550239566191590175699811753075240663447915738876649337985635887305783610081521246794558231420289741416217968019003260547166720379366535803628896521797712156727339618675815908673999529287094038612802763417972469168055045264573822190125475731753040999146235401022830772151925625386178974928359828294550660848395891087785646802748163815018575445931382801976500541109954128523749126327442261437675529459388036885916518561492861966326659098270201578013753326912111608317135106353389009381757999606608719422228499890674095882279751925028402905380360591107447868765252482876700893724114080549079800764486553707943019913370374386151386683774910137046842481667642151974787117432478545479548595546140509149121413301223262806020428132617543499272816332570208376698597932948783439383780631419750446940980312362804391269209132279821843705065405354311697963805430684750932650473641102405916835886633241831639375766597833422451998162478426051603119980749791636862713377068826107061738408385819863667254284611711291986948897021931320952150142502418142971026643587790957367550737936820014590286850799338006778009408057604554476497106433786215501750240533364431864636372560645973526867891122689503207548389287141064160752319257627952876576537275324886048256175599294628726497482196314728431837508969279732610349654058298040797385163818200871545929627731355100935560001366528002171364936221662995230671817637798647906463544615723092495641184112849829780480847744153541802622149179606563934097168360248981452901100190748269631836805543923685899801541067413256750376287764302833064666482655039368246669506295264371409752206495009311174356163849435770214247357221576200063197172310189508750572795999301257144575157000465768138089513947362134548923107734545705052695380978360839454435944593176480460674089500309004839699767392986088515645694295581189940212391237503503827106485238044863522143668225477046485619657925656297970751673755667536304883581936915202402060550300073621075767002416732447421461868969140893876908629605219746359384781932634933796801792060701541995011681063355568086375139819241081917873969624256841093879551086846414106333244357260196162556834462986121306821443181668381530588250124831281437958241592875714820933082977948859831802050036559144123236108515340456386815364946680885980003270539679236794889213044799698649203554028668452926179213297048732064794748809963042202389686325749269741662686213942758999311381033997088819270479630353761619928259243362913811059402252323519997627846002010589540588045077994151686015423899892746109720339765883435655087651965342475828824089039755778409395263343811691546811445566801240981445365579359788752367863459449857975125654747472690526569065960916008681869511228707494144098795690962884258774446829668647776170300868168191276028182048694086592302403086027312259149616071240140416719194204204812869213100125728187575780784267479074545483497681842805142129489702613437773362865008455991347203044086277312594631877922059517596073155395433948446780057719732327927749573867980425058123232062553113564455703915656473298737885249759069537031794753649757610366098268412801420317694147282021640778871065923395844348615350819974514189492295802058601078220190092527231823598510213452645913738567638709699460548582115643931423877554843074388751081983636019666275115149768933807921903312805487755475217298819997229158706852409048978335987722702965110045465546726801724378619690984908070582377858344240020201300053292299013283941010005027167714878540528540730084523283468857992868507457450727223673992741940346550175108302720305089207857663343794690086741329018878717704733591257510914076776897987657639379200508922406560701943732640500220074662228288090088252310712958241389770790830630240213854829319148135475774917349534550486805941595763950746593424653842443252350869056359474835753502189335104614256187490504666292074037950292911797261859562010374206907641992988976639567572549637910280864423956223689784617778523248579035276117201449148233432152982848449329125112109518500977678185306964352333115677137462088930960938784731946498480087296722100350947725862096020332651563762509774484294840643857411011956313420263521248197521857506327976140421339196963487171134994522166540302533222512258031364001951957854839904194597491731276781268285855221808090777312402712626400438608889307643524697914249763630129064428394107945830620613327316543310524987222663526689313740826971641213896520937101724072755968096576486653139783622300145637813022481739094653834424673536821400618106548320367988985648265356249951111222878285372871775805142651682620546614506490570332504034775948895119470544299242043079741698949547195618232313078584476812198525424052265557186323642707150827322821742494017440981043479285720477441747233170386874280048072058302295804867931233315182703048623498824930899840267018527762695730197830698974678861595721636780947831586782299843568457073583619746876270471276137513778802372053725247228792355933089272625816386328860031198261757214174058697442029534264472369021582567184131916471970495552634964268412899692324593153464588219337813672619082672507638674114234005836126257925392759258675925177180086619697693812103515726125335796427600642809514811883441778385739961882930857499441846554184829958712316297707974358064767300264442131209459446441478006703304643086569534235785951901270942339010425108502421757850309358391477894117219163322146367880781725358219654218640054508015666297214741581591130979489056150105730922537897378657075159443008960476854709332225951482150203236945531914770363692224095702035580079511749565368645499981232775382876384861041428012591005248084126944771335094757305137863567674686271498659678751484170019153347168839057623829856022479034417778738928504603884214887378475495121218203498608336272763140724672662418192527507661556152985366440069641031561735636463042316246823238447901496738455576395508119999749156508561259329323693651416214100340835435299803808017533475723271015614354823576656068901210845522754920592287409767641758543131814747544759449472045870475411572986960411764690109835372376840573596965632083730909804682167813456940347374658550926803360251368147500473767965969847524683786002121617048203430327188367629515699961615487121840289157404487229305262148173949758161874028592959655209176898827308086668271904625978895035860996258432311517301074192187663385338206314272932954878815698218193095114113356635019282513304848228131579576697979777371623751435051188556017907088217402514921075162597638059667809406725155487823333838643930835006785131581081783974760611589285870940195772500471069220520443056112548541173594958195208434694436511011844763823874426442484678719964300541448629223789262368945870603850706567044555062270120100040869335136334035680497591454293391620364063948799256409543700124887277038025812526209428042335290474397982330165481870640852391561615968708821598078911416443810778572753565178745443444796812040829074711055386101005611370171891174449923556448165085287937051640175129490762334712960038144215481737781306997831571352356445779387059016521116515836940253054823268179838580031665242902521512065297342250891101316371909958566801543103795990501217755849557379440844388709767432315740679337828967933777514590604290370237488394304854674064424957779906867478487593959304975269448324187687105520037893067440470589067113234919491319268533478665551081043048803239940929372099490798725338663671883970304259263707646291283140044181979574109906741392494740466024925623109249944759783964401252098244440873858014153088550548132012854009066245651599263548318266665009224206957850922875598046797582262392954377591824787007288346436669883102542448117536969488576709569959439886798956911441619335311054258762865552586948161772971582332532460366240210469362901086962779561397196089879526908067722541106300835611344667375266776039710307483878273239359598034177219580112048231558942636235176006012159339636137505153836840163536784579387613770397365359031975529712969667945160573991359115171098549338584154376614972279554197396671938438197531530475670154406374061964715928558679916622676676348953132169968850332713511318216959076472747088317609410079406407381230010510083171050149253177608374129349001414290710079642360771374920692603941464602154321576519567142466380384380281117853463326664889691445503513174761162509838850393818460536359709835262108166491444953979480726354123606651444686648851615712680784637039622483365792052221917375754686867129376748671431899273029913573698766432109338406408368972294046735007331592640425296240841293788746265242859161066295192063526718315126684790907759550525715309111770796957132987537041970393000169229665013261215307188801985624126482938982233237396624043091788627855881968899691699874449355179790424763405068131263628309969865694819259093094359934503658184082760548401148357099305939926201158582412046177430788784529559960538713096279216002389323492551144356368711365400810097574023492453720046304402293497843290497253617342674235588546016315927320343462392200271899220488824896029765302182181919734705101103819746413104952764770550284390940161085179914679376934017072307989670599791342475536594431416068527554404067683072945677300506680775300982756727610789220238663510766962549218943640216085922929157611946513868407922007204309223417446455050905847807756861935928792783672163353420578768888395182274508763692120065796996959396354003628672525017964550251118174256550966760959601180101664515219864818805818724027364852594857372278428604518318181866717869362181819071783952653430756802306308985118010792611069344568953547165429489474094307725623789512933534016199115276421979280447018570672263982125857626621719734491542655537758544465830853554376250900182450008949378065798122766180760078263396718235998831826019639736948746002977482125735776167430396362401770305571991792752416649914312801963518750900016425084098156142691924927183861550840835435656554516856143091391417826173270652962186085969400214246172820841521797963679059645889229694863047857420114381930298157141497265231895114175151803606897804165476411469385796291645822771692364500593392975358097845533383383325220527361856769931853584334787066005664152299471190847293956549866315457368247748757417580330298545544495175435409775406895112570752657151590565195531944537795882016263801655633039197661605915598991715599839059112790457547107250308132160232273529221221081094930356170037122761909126224414024330792651290744805153625240867292530613608217149831096621119218306376931488906819671957078650668666227527618685613239963557732534176693229984424552256576066101260424080905155384520585666825556338357759857668135684447201573737748144849642083132904724152608522145476968101166220296698722581233389037098342836440217339995172876791229614635667396925594949544190636994269064600307860769508359407936875504771241465857982131307908474599785964003259576224506715666097497094483790182182362066238926772399738587756933636504513462442849274950443536729095455408337540405623052093824541449726881523624027131278621790930039329468688363595144571222759764833500934153347143094277870868695663593331471101927971087636860741557725941731148039044689257418097563885260256100062888749615591338354632390468980800213776570008265590822802915272718470304688253775365080496207630117846067215793401224470190038507002765729960802033034769355788986909266663022548064758008789589612341138592592932903707714971807194658775989668014449456250678621781182272994986842016875156997028972173752446525201514347665048271443156869135348168619661208796111390243006562784753573742898422592647754015103741544833496414349050504207772999756755442905945872990398842657002041890765675192354977518778273310157364238478651748295162668543269663924321805262251101279253609744901767732465176944250180015352382887018017454690821330684576066341248617413626912966139786123787007295820523410069614879962791940584727955983600090066523587428083175711110620282785873135709949158743822599646774877593386055932102676695035427195659787056261614719617615270344387222385466229977705500331310070641171290254617566316733302362701810983937773519848814384575238410901867412475677410796996900888605191134340391057953000023623026319278595445887357898723451362293368771908194964014507299706164475519016168195609566544949425275595495478112299562734271410427044482531315863139810014545474123267765890638222736976589959768413918548719819623250608771903877671170501746398632151142957424063889303887296498391594787342030284257904582348439365473320100429420695749294098974634747011766435246320644692027140438287776361918870273046917196429176948275828049263272665732315922026325406539632583875755535629679419970299549679685232641741622939229507699148946045365645844011958808314865686922680671894652411578082848649729773967907647917147947597239587659742389101162502684621270271919496356630264120001183623111483907467360779863531061325867255370526644185736019685875706102773766110282910275369525489992235057955507097984059267828678296966975555538756785347548337430846723820018423469600981487432179561063649859955581677882586189757559870282546721884340403588594365384794587351268326817223044693146114890176786441412028362679372072159185906115309622424347876387038072371759103291889533922810697386847356854559436236102679608298760923163097096329911979947240327752093977837733838752067581555771434882670917942847404426207105247454284764956653499748084064330610482843817353728250048064757108814433586829376669281121144420920451346893985107564396891140602998892039368605857433950583668483699716151355332415041824030022378517928325273338233689423542732390356017158846552886091266388491979281032730887582707023012370715401478650074942728052483616457420615194212748543327527111267914860092608609219672329658589774906844791907201775204169506795929946718347965222557400566672290260371836670523044132223563755618603124742567549022259701761321235743042804433998549153118885226180710084321275636815512054795429450237380970621442320404791618012599529578872221017684319134927935390785408805836202092333039428739885462939443829826330887941866093930820722563880614414276209766445376910202851441556800884058955716962380689304599661044401655210734565737151605668291502487229893721931686039007264588865889377279388961430797436175272319927816309117384043500463951710889828444881477757728089598178812916552678352009467089654934691379077482322539465459238794453175896883962851662494447141349961087659916614643328322757084748011843337877882510679365748002507897348767953253542498422784676060693075627582176486111777673457913760313729914993977595378649627984595387663987018843709509887057582357706375405752326351871307248945421391457271046668878199321214293644319071297125136292651265890563453352261168371702538914053074606014775376582079766403005917751488450977398964746033664768562207598757189400984740882195282877184974832317096178120117474802943778016433117701894845523656572304384042259105845213839224305901249108990880105246852633095442067929537501590965360978849054708094331369434583847537255529613486109848435207364134467231742681975760888471472255455330480228396404820459924966916422256155610546760648731365468379151587612831484382170926740163497228257080962384624006570485472730595077692859585362347090789434211297912145476460370383475301727557119089368141885928064474071452649509996331276820788518117432960266570632600539950500383937502226684632993620980308578006893449715189992359845907931822944584790120510079179188539336264153749693320186278291254168873338371146551534028806791541559028081058631897394099219264158413110249238288961896577375154467280848705087941534579559809368848632832347745834654061408075295298848661548554794564630418794110171423384701806083484543441389479347757559481785113893476998305845976253653934194530877863109360060813785091050397356245412244075284546558572765980906324198940961424835198267731967729095558357449823072949739692949314800996220865527780787550450218238069667643871344246151878133963022133678291855111699764256516997227947277582024069339297300045852289616055300835100395819994385638789210966834358535349827889103139166246435891211534524034697413463164059278651572276371827881569293944907457862219522702079910889896521678464927041013017424635198747282101818178134513439091393906133203850486329441064753136402596063581119868371704196145320104324931636366469365821215810082754095055565104615907443477571444451031623046160393809088503021051347757487384555112833734986641612883972086694303799742235261564361733487005092868077375783781217566373257278375093111905911701180115389260921378002847449946176390547926578229513207271623593543047502024699061372654535096984637384332165235042995310350852344507742110604432251177351181295555459127087302477545608377189102487523158843597758447439246075873740954789002736143597797756816800862949152157100919578106453365712994770633865474740964655476608563055483015031761835254607355343866161496548329781294908737969980541238677409048198389981552889699253486882047117391829261676030538101639567987497195643073671652564433596120973743060007287286246793707792093211579217374213256264694668589058941167954628906303103449903176811326464228019918000385839013491760632420411644274448053854369644000348966383665954197700086744688119109378675930240276266087820465239631677765417593030175946533092115685908733149734254480564225130299767854582506414961621779456122454933521078335813117633111959242005930427523306832716228639486785191516356556259514185621505873908556464106675861432711137425676316123235305027068283214036176507776644498547773389964082114236690362071037172199953436411895780782302039562476251603856033008638471130165276682564987629170742923090774334035090030544092895362886074591528838819047189332514790507135695076357594466898253955599642292280247675327327087762355458398918125836514568582037032253048184532109827625819838342673683256889617669617655728340839883870390957788341915870284047556796099013039971698726773072320001776061139116610892636898542538724744905381162906460177878947519389010760564599756602546549279342638727965005706754468986797432902824599521644702258129174324358900844021320219420581983866038989713713720958439444722433686235987202131556515235729309637736234624253257582117974593443073039053165959734281344937766907608922642265478298095880334047717146646486783310610370390226042023995516409291894470421289246258644289561153887054295618397691160110770791052438369945775535166809673330221738643664557629224724265120795409239144296816024869913197270127019374009232409215609920232355896399217294378297973743274697403095858664379715625000451070012292279186231240876967797201004629877030636626441682582567543384691916832970281027835855619911899931435861735959332886137082860648227453384321016079642224586379836928530402177747605158459938450834101071186713216494835441522752340444984498044183062420448578564334259944780924999461292298986032294104573146241265577032839386985362109094300829075472356009385876744323709585379118118223338438388534644482068206359721664852821721678463138151169620422797689923453697137730380665396816172564043868185273285808897747807068739650925469172047022555348775930258715220590516447660135700117083159264154509293160305855956795885265028032261443636735176577820245107344421869578861593236516630313131766963338060584175673660841241310386182062828863299306493281869986835996063128172249547026118088074387085120765112333816070753299505030836770365801653131527248525736812153337892792962099334218443422768167417501631151758862693666708064682261700549811036010874333995265007312312570774523922278660526987837172664366376325898773148107817823369055873676909476623050473203831106065652051000494695798289597656181963822273116488509662665806723884975536710697214874327562918902443821610970811546359951326078587968367899949080860476151760337321336605597009663823432319723870760143984765043358352443886644349952890633255802944213607042554478944664855991729479385161931654087005126394150875894579894568804883823276459296265885819073223776346006521151256170641518830379306037445242985595094488842326437390506779503322010853149027105308723653455085702279893525847296044278914695634069170852617239459380994502908006947040489756185199952393471890943556011106310925501831429424070349114619346366177846687045674971937058460538092397436971400178952040541546746016395874125577782574127604647701732282645380212824437137650040776949017469044298458577580955109218275981971570031891910666597692213685339290117584063445615993233361979324455837854547012013243348239009838350791751870808110016984236112394941124072997542078260470418809263094015554973942767303511896684725373195814825902697888132271873560100352541953476017321573053854484177872887302355178304275058943826919709756193882301947914881627904437994685383201706189560375155826360130025144980533228526755536620837413514808606799538008579436670368694536518496338778169839362909707740992813334153871106297870062489216672501948512264500908983312258929534179322333218154502841634496378562251410376324206571701181739041902951499749187139959724325131625967231683933650871004793060459036263599904832252637061445065813221991289056547168322443581885173655200206260911238204368765253275941010829937886238210621236365195434658393742502386730653587373124136571598255710386399160330707710886059680325347736994981896313280757677498647268547544691445381792971408537258872956854786418261895979510897961586680899736032347958215471318294154466516898855895287534696576134975491832823354409439157002368820359587733759050415693038662415487923887061410342831057174103761826546684120839655601867554217543783011850084466563520414151289090327187176692685170795584018975202568229433127194958799783479639408209348624718228292655205421635374478140384222425654469898571111849291399335277857588920524649412038443630211551064517954209958275271903478637086637770378798083913090596511550585364724720513667372694109354931303230210057385077522668440608089742692460248540122728460954264973512376284214395346052530649712667017339461750998590531278712500931631471039993795098062852003160660160710202850842763403566683762725162570584768437887921399291991000782992927587141247196403471915436039872052130869293539264129863090081275651283645383372155365040436417534887469274534803680985066259683280306716694057962543019350222675133731952888753223517812485019423512531094749952277245997527813782866969456698854546762610037265078403934006248128529261856806993011175805057280287776105465155841119461478104904407251214293521106301771451129875790340776066285683435343608061145443089529827420555472244299809701545670918796448001198749695243129763455563688094430331065136975547698653525135539649802543571207052601929298251556661816723414666917538994269159221530742401127091722037719665477209457442948012096957473064421836180519360236322826774300775313868240694519342699609332155923712197281840859924186319490958654071429784240625866366854615328145383847475853603021064206467488853157879982296143474528586967413562054618391614505140564384328949034438265330508139573602422054880582871877313934494226283847708735906729972649256464745617122570610602496592462044946069871562136281860969890062117063269076903704900139883441698738245951259466434807721390134243472396092316537198609166589826730614525497259785584542366373521872272014424827866517191432662519319301233991466028632606977029797144985928527193782385078910129045703744555232653419052826470238605341502810983927356336849628539332221792041807630981309184221966670428888329671770368787696065325879686623937234859031540050115964027359129203957445071283639486235282792964777034635585803459931600287777918078622129829107307871969082581886410952459677931366808631766257095657444995683234016673177845698188275384785417607297237899663232378667948002406442282891438675447864202395538054666521363390123572771586472325455728183041709052418229396336910808050480207726676442176818568761605375291728018813085612699866673262358822163500655829054533487325108460018236652686669459111904527750251513226104283107609807601838243904922621720340803405605214169514223582347228419852178643258200286858240405278255671548536609121683934978573434703434489772631455778657799762282046030177785563723711566547452767578574254430519457663900718158934304065610407236308728844022540844249281275268058500106498298129646565175671276626771283706774672418642109780967895039198808380261550386678907394431417158621775716608146288294855349151607896202227494745890640732411982339403374620409978987374904749603673475952456251415017443045556179522393150003617728810615214065016937462756364483768994219441487250533263691667752407739368518565572021702377737981365754913898274212400793271243575991150752798103996110286652033773292621830992836983138820096775057617279630065609354036784305407759228066951185531532644098851109355629359210318565173798969560327399228181427789040825564736036182232854625459840151446665377627710818279108763078414579637290406252325781152176539682667843538987663720573250987882697717912256420855688185193904709485137849331228400781531775488466410846504715451411056143127002110062923798810005428281045190273254881531845159683423830423150401180486417323895286691970023402901656402612202083014935415150643607014713943148937145916497758859650673990676903576415389411440700895743275408156359394361644965400365074376395252955791763814472873376022886045011827915259805642535617075499451992586284023987059841834240870354827526678247193955066731516594760853486870346421364094111003084887581466029985648271992264139568666487574258804018049304070937800602706710150080756846976807742273564409114659992544242327864548734025108207108268421596245541906095900351795031068686474887116739175375510227257344562031159840939543217184467317456893328364307112484864345062164603626798367297637649272266043991795854880186114620592046393759138624164275614609087094040839430684292868439589896866420471301316165706712905574645830416311239110046498493122795534335305454394928684034174100647610354685280216067557559298635334619149303495489205416633944308957973162500266214224505566369686047621788737478719132273226610783707547138002863461735618817544188145729221126754529455891915402604765508931265011197071339273008585097596326048803389008633907941890622012641269099422773638396110482578554379427989948118272088064816577557559783267477953223932638658429561794964466089539029465250387584068439236670670659538534009385934047129447510017741828591701039973081100965436762658146456029687780780913392768943723107102359510465980336963602969505744211137009312749598964627613712813687494842257541283602488124324977632282830973521767464346289720440129894283981106437735803463108384071212935209712420622501844934619795644729405376722388708192484966282722373474773116858945978062616138485730342093333196103724132965481338501987004569126444874335601226102875525124868972048331803290241881542180591775569146395922097730968886316100173559590376466226091361844551415743429155655811206557992142588725079401013128458358556945681633372440171987653010200974680694398372761286540540856149562550089097649324095739043569108334868016826921716029713984980313454586521306236475019467759327024880379039678098764163689290419415613566944479897334023761407415516618796297301605240987293095426164724873537912852617151906729455926943687141891315750899027137695495646668990006879860170920501587251020857461993854320818820374673726603479029459433271748799793084952917240490382601567971229081053131856077676803020244969010600215729330225177051408562580516027748490973256626585157363596210328216964002838359991489994178552063768902315003046010179180869183668963328850655227236999393640562661722703677634753370586125508155346426232315690597315431779303303832365959752125337848403667166991442571291426337366734935186348247887568764554358395776330265610596196261136396490710963010261184938607281860469201636117777342159540406361074879445306788538342307917178013848253481573263906430100317546381955122900694183974417379557447286928790415279122880766831277381637928429422886777979867034603307263169042115926395684234648660016373930960525023690182007743072810448041456252170846330369325887655563437565039178275538865215573774254205888540269822219224049542085820674223730094223200457880220942986646298419013112066017658225946405930333183205581895237103005317851398349131111147785584347338516083423127134139196425108817837927206723874348584257607074890988993617620628129339422153386153455809937893459729818329621091456765572994844466083364517806357423036577332017194855024032142374554545639256019799976469055519590183756438421558744759507673774605789930519937903301455904859913147887476047977790793434983651682645826295526968521838673126261980648352739731791028412936087586673754013356768578324939211996524840982590128971109964287087287480767537858088651157120934903911260818370941828686850800488803178705886687365725057463691920196690155765759575833151749115985787503319050727507563140900244736190106208095072592888878977336402377142537203195506488004632355481253581153502399314107184993144395357015812802349617652051380900198881075603157137138395301177912650832545169412935747934626599164842494169775102189757771102483188652853964133887230399168313987509443509268695864892430643332710225259802755089235878174475401771295802808269769109223141174475179738471391576921075446990777288717959465895758201701017651985697427116624116677661718433531679022637277397035496704750312951543200816073885167638322346761343693097361958894027436529440680175000552640661697131516234598098350442346597371404709383948468141770323123139636114965477313294406566794899135909126441115038311483182800016096958713624906621065436826391433029577371542436216848616273054300688925340609365762406040530541647555904391475268704400308330927360147416857344123254017470232127214774261706477193458192317207874999709157438248422871591853758305345454972658366721307991969050374355251350142849463497514999443759748223483459926403492792814266288270328874898387613650912594944580532937706421571885883917462702423074174067538570717232283544272600435174568917272755099006823750942501661247004769430142988237242228540902538393803302068690595069166103791805044700769206322160822579229642549987640101165502775349711565137767340810973838226609672500578035571630907201683145268613405394411208505289764034627197455642959479168061739747125304468023360827586355546072542539383423876630268611925578863874159693959347657682295902889801774759856651759947345191559610917996032390422903952813509974914783253452813669205755012314398502977877644024137112036696374733136566259641239077580005924367826072204794422284280194935660808039075227380913655849860010942495444955690762141904299925276818658266548192168737319766300478453316456078066117089561484713055172429419844345842081760256506575429029387694751269528125357153544954253063665308644134281045795630694423235439737045589033623989054390810245349392709950552524216217052077586765744376159920875342973916641144764225836937906835411174678242818944698498686601668532602498160234513327549271099398966934732833903321381316585224593625691618495512349085442340938891765358731851696099810082057233128765589958613605241544195173003234709378317636018701276849644514789197846067058240544619919255519820158712279768120777102495768146109757144366625522439876637297152879677626512584562501775870664741837681043770381172184052264105833489165765927307245622437227580648734121421718318622414404747904561230434020738064612041989523068337927167942872226794153384544299743339895347006590979040290706952334796384860825387709714544779884283945663745285383433381649185146091583398938681100996437610764679258777341383031056118865766755546711964414843870412562263171998567516375364876994354470799050104074416278762088401209623434655169133861903225539672024901024002346837474738916162236732841164119297869907524276703314634187587478597375691149243738277857087152218368697767459276574158263413071298258543905257353973295234095293818223822294376312941622986889745304908788534987536423175023876368023034662915121024821723138579699286134621130862286761449146751499758032788961380072194414213040508448753113861382528167424480163811774316271960590990482022250295499250019339102978690138985174641693805668308759406814249406676416562203497192573635840625242813014685508270013361738410240490009185672154961583232369211879700104020672022326228493310082309460107173147683530095355192114395232342544741550338016759963628886221811162147709783705544217262126367153456309981577738391434260939108975531314733434795580847817834432198721076067453807889058603921330534385649082000537724867307796318048647617425497767627403172203349585782376789617768583225747431848034867922755453555311662443023085909501487378394710998381273166335704115672099897074369887433314493761066588186817372078590446003664625115261064837865642758649607375560832790036540854323619198649392508421654809362014051842709687611873767416228048839431950422341536719479661368555881256511739451141520603523143725400555808543609518738187268033213612546568167554706110740673093520472670890364635663808672955457417314375369825754724364633662351096437449341941371760962801026862395973550559306456362384902030625288391688775361042361665640173028602198638808141865337593521887974462906287865715847255422552058396099840711436896112795441922063424001265205288807383308863743582796153511946274211900091215842441315533751298399968892144924767936190375128069102273128966269398779241151086187875369246065033227773459773151540965299277103740239891684860136480411573920189876510823548924219257213963032191290694401585043472683006078817681708082517046392519172944925504956023227662418118919088590540777451010454256012783960534524257852228082260324357064413586508336314458365005657420278114254000463863165274146011059226803764710751897713696299787324287383834236833154762903915276593379986206467498717171965006077496521053835245770598267544250666737872363027802789823568392106184150593329594633384426006462066985812619456731201856721434959631273336108324837975618262073947561469654581408317880203672570812314445882696383562120168229684116136992034161577304193164323018764777842244845971360228618508737424144442962992414923158723698307361324947041971953971578349854213172430834714239795036595390051133254985700247122456456617926212979826748015342980676038053976701806150354261905468015763765775150716415132943280385553800107091310196084715962174901344749501885347137630323533852383549223629514577770378816761503778200790521278487555041733186174670406248675969504877286026186959263678525842046762386382117550041491121747507565296432705032012223672268020815054082957229470938691544881065068544179930363013128533698645340735303492411593568059128054567920199184200917919550518287778366415336904172719931525405545417472711222000019740862716704832647743787468745008678468873210521542468324332629674148256536402477976062810833120349719551302988947095441058743791145163307756936540611276256829926801665606026462725624074556766765298568853334436474729739185916112358027722056234397187729553896471557650029382137873598815954311327371981977939894667120102483489215429643310972583103489333767648732978344413123927929301950469733100778137368525656136008183738307983698014032488797357887319874637036539136623598880127742699627559431411622291495900423046262815039772082450727224270766123122452841767853902287729087518739462375533475972373578361667938951782199971062818602442861230998871004078228393161275530105505805602699297872532243181848432569989008262286822132441382418739385976087145416928745880932619253777048752318568657578647539932816776542434829544425203937577256149586055152059042705042839529485222543385109359201066687452534507725440262568465246167083984988224557568808718849272848407028320713511111806894028808910216130069597475521153829872937530156896181871962771625620434045692388743244785468085403145281085079149270021428749417632879693216125063859637980174432971294436300053864420556416183037390893427682450538017549465649954389494648779129462959017632106385140729108751143318653120162778076028729940002208342306240923886243365862390977631589666568176705802347506073168755034889097313868313840294693839037331306436742350499066503209830993628574742888048639200597581347775702561427027703657929865321693143570548407267974370079955379223098341626868793763077885286696331057846938318034958327782149314525920166013876811836878743266645140208913859392799430986029619651303452064299931869971315998379840697142936953274922645722026464103250862700774388755965171510186514410066949494007205000461941219710505907641361154752268243526114468896617834281055139592826902021602773900198535456832013775654168111447668714618525182476762394639561409441470882279678291867111119735896837016856916522420133902218078826220873866356392070639978040612590866692904547400750044173883559184559549886508670631528318851737981982533044632164458097209148572141523200702128868349116136495150518211687914482536962407414011813781998959453094455924026016101204901447459458889533041549344663275595592693425809409057195212028848323586500731023758048770074321438225829674188599432173521092101879016752938200185780224523557829737167553280684278657474132494666316076514132356537723652976845857421537815452445773172824631341809101547618872498978803629551690029786270348146237308932697957641078780452620909775999618347357671302332344187434843691718254883130162445787009306489719807529189583613878362507472716593765732126004305215574938958564856780816919638726671847697540280251916207681777403874934870626545960913502549605700388635364955999455048761868499135334895143394296433538084401875773728140467699359590611019077834350249026327033717925706997138330085573709469924834488776463231349034088300924647808575514888173489235980882809173196969756378655563991651165298509692457380698879761309985572971698916077472283931226560451763485461409737956260559501836122690798168737522243139283559495426197856838822467788782845372760354417314346697174291868479524783639798883990727770859017479254514176558688806595049164593930816524831047454836572009125143260876435728021180628045062694719392100812202277278850926942887381471756078103558892020332602682116228820247519103117935275432131501186213556930280152692299346984636048231796996335491483067491229513041060983370138948081437386824567603597576900315439398282303676492445987018046636437242702469874165944013461843286137348856452907975985297538585868448799458732662256883723749432598312279043317072552203930175855248065373507807121694393350226418939321174328147774414918390609797254517922471464749199714536763623089082069525480152144242437466851328356370524464459300148997810211293334485094642521665480234943891830978226555500417382870525481786508865223618035089044165630826127526958633377150889544964373823955879945789837478781134582868497733220631184351994098159925347669256317224835930656127424125002275684776923200153825838542389713229416821015154084129089606206672733365412165982150879147979035343801132038651799837419651824301185427749816417245189091983707230096482618988857524101312375247483735899552600848266881262018753638535091707499992113171342944966943809994056349134629424252143225084766848702324125378744378374157875580641115325339049329148091572292155372003188860671960172850246173561616888437677581284420069554724673532023124625780858697994824136850390172275215790503916385534030084581735181369951431856229430131049263526824255789486505006246842370582631724713512569886694643061791737807956963623681571004980906565202280767114608638666335659220967710735102866069107156601099190723485620232478639450534410224547689431030092976841724896074837591872101021950222457914143950924368896308003767854356728715784795923107184846080726844162909889920665062531414980799505236815955869554578393254814643063160067612518575176381295567996399674708913528830505315365552797658484395237490136074155877220218336602228229683017171218122650747859194078082369196632421730615377893832425323630512046681660248480771785588407620231404139130763289058307281913936112277472332531789343871713165675702455427722640732225817925266929764939125464494412984829205617048397690447454809384070479090288619173001502734293080327281704693259125719300821455887307316388422291041648625260202552140906188549090418955035331713276086873508549729720930390207731991303292166226401039169880707635326716546945425223105387573106957069072830617159533306839411020865804198590326072187638332200400613334256854118101866064773369337938251775847519640478847590415215498752842405601172098328240785199441005497711693452380485036640356254069451468017636363285611073282406225462978892046753227119793461766417703425904281854534594755154684079267569342952625867942904812420146516538732342798409069962942419259352446401861575448892107449554278658494303114788332381803846581210877469809652736673274248269021965580388609327301254024165859960853704903036579082960604121651285923567862292248527290863497244834696775030070898277316658300261418861194459009193255773226754567881473307031289310661843731500775019988091064880121362602295095444999278209700549105900239454946791709862444296515895722513909184763847574096884831603270740839002455088817492616273976997332622448365578363777717550744616888971445590671473880080299147340328178191554863498312992109007642488402798637901528676563389137518458932688504427776753791483609717580813690031038978188377246767136822539530312079365998131463530668290707505402068084731825068359235983871769331049018554390954371330601220923347873774095608423580600233805397876521567397569142311512644193962154438599358119841245799596297169108093703065392107307612306023440894137460755398848880582485477342855757182923332578058537667857749855511081065482478867558618896893546715335958614918081834365449977227519394790767239490225154921415385154864863314111088242598483180948824542816441840031742627670593679391194060880034357898577593216402276739298467749772538781276793012198717789936448496753592522087515103688873640778261320633020034560121159587576073526475294224583788217937455285387671571927456977971517681426605710212500620322235867463651138092045221557832419950430323319280683304562790907386835368162305812422513831857339404825510820982282867798197496323171420194134943528062441397392114059116753863972006419263234486804377575710695288620234676196961093090628946165844935729515424574926003471679990137954621002702309669961534530640323208187159274413038176709485917643076293417203878129218990523220142104160032022681030072568443004815283423799383274065215319308023159087511830295150109367392097129043669786580008806524037584769919616729306548008999202697943816878958620036565085876729336024809995367893470335498871339959360342990948574736117198074095831362016805417800102319393484076653566954451066280608160871312212348175527581178830523521548527778227628502857541469812221572450428477459997053291551516971957656929119378460923324589684612563666313843688132167178140919235311584449687427469575208677419627986685616801153743651225301422267361827037669806577299238059168917753999724103863457396316132282433027660302966827404296505539887298025500792482307295093081431306763089397548182461573820134736387675317590596933666650938888125350367194094969047904397887898181778483332026379587575306533129043187244326738270953750471700213014938610114142153829747013354451684896130423669478665527598151209207380981287960249043656672168734419202720649761871601246071900932206619143223308181771478382111753453061900626102242315435220757656192248211879133731613728255196637578034809768563009055279905447252440839830508131580448026227681013416929492269862575226875720281701831404220887980072155198827533412603364106514868400783316886057523149279105242970247055141390467865132270489497219476069297944594633577841242184162151597757114757735551328040910816091126275659132938817368011523481548550624737011958917136070231417290563388250896208867073264708692240868959927744097347063003726227521452330525865482919194025444582384087161951343904140719622796929264337635425490438109607569769080254912228588575222637827417199272518980090986862040182842709354070160587162919253300831981851419065472088135838418197617910128223485290733845647550856645553039510327080564390574616746717270477012935308171567152446631148562670067474844732805705004679248838645229345820098277777778533813873336385651656498813178340414227751004404813815602480543000183637303773054646222305864520379429147842500816324734520239664372226124979754868088856956228537396391086857042739193107022029331169611587684408825642035919956184241409133271549492718488691600234842554314812755151871168837556645645144037763153552893560923665074751516516508588788169873957560107426867574097256864249251342044670022294705454609729780788531972457269770986818202410301828661903591331134483333737855886824829776762897623010810141545653750318150645288073401181694209592809796268446259009048643590286407529183695426323245830196000688538584671838887945283853029335212819738031395425292549428964686134556301358459138351229948909103327740004506813369177624453028438581618387285043708206389074453083377722748545754461350188497513855742372029586328310360846075221705634182829573640612402917191201437182915496287702364565290308753135333865834649160117571752570035652365261371826707622041119383683851395939100869473579095555232190298955382455989405053365650358782585320683151163710215907732971966387823167056993809869969294715654349511449617486542017351222472994816494613857361203002043377844503044691052050841819184902630387350423826446054962471134765951897102784558987108390183643932659066652874899543892561246280818063448182918207907447676255226989223681557766502235360034470574811953025886600372251791764507699967803903850067363882159038100491759865797775425705100524311209016211624822684963914891824216352853327081827458365022808749663759280475544372192399204402507290146163433350448014418888221689182831263287138923353616852079628633714310095941565218835132708250675791833103780279862874894898442748584264782312724979052433703190007244052080008755971727621672893596758767933266049048579011954703332400216094782579318170342237544539384193511742626660597628236249503822947972958592544929170004864665403680413483470064943765198531490722469778018976549528555048464712360417404425480356662968522978357727282122390737970465938748795968380404845285733133534010592730182869442533578699893200713693387173811854183152501793166757761239951087925369174451624292826787933771815420707619718275995892881933081161273267855722104061080889891225644517758114494420028101093143094450395614322347994234792409150579911987402444082210225698876950389821409170923020735811871004041867741616312988411408072801340568384654405200731170262048238755643832617048841713705449831837287782112522109298052466829250397191097701392658016420592073103092050963911652800899467381665213232149162516117089693946144896943654508731465759374868375109919207399618261450512454537193715714130682727603766787673680603109940471626583431563107341033163374506264513225788013553294648904911329589242098613908632464992913910310687570734208122350002185578259082600625202386719844276727264859948533569894547652434764812306393007519152548084085089703616439254299188139313372505126240768360687060691291163322368804137224651583361392178360104616716185228508927171907910945425004072688890582689771969497506325526669592453793941493758620221083144609131101992402457509195707004538271297020329112268516768064065583628208890036746865533221034683687540456566970827354459380571245194201141213350762953715229064336132005384002029711968806874238400278351504033458919393736010527002462828711558217903012053653262120880197120898689691382710387814174590741277893563431836402628191696562651196209125049536980500690655916047237110375376362687369678993069554654339876565979948723182651129642158514541410969183636173907723588629528262645041941793494608508253810424885525939752787602288478551165375998543201348927351325336019481895369449054482543908336434567968466716024022033310452884281752333106933274374546506185282973544357636235036990647604938452615111001714989802859794548812990903461875081415316235228404818862631149928796802155613560468457548373860277383161023514761290292227250310896008685809925044607783665466558748330440632976594080671077339447323415427367395701343749889451772059697355865880517513780879257577289480586744704368026267394549057094149698479946800329770674299236500232820831837893786984033348206559314662099989099473995036691944140522178014246265687025910124757633111782729953029967567011759060881692014497059587573736916388519759956268312342825574960173953844631551322163596833112443435816978848349929740575027882849226039150338866006443230659586878146158170382668531530413509962077339105184395527431881300282373490992139332830706424073016520851138829898057086418565145692731549745239098510877447459913851361134312016699681750163220912441039714250803640956110596829792186238277879163516576189809531109050457921405875341455356375365936950841164861486359164810826966780786925711266682874093174139652622261181132380284360970670705126457570400175787512204880794365861595446281070929107059099906326771841980694622389663918765454212130402645629532684195641226048166530655796809938428658063118839228935411252782646961343569583184930078304147886621174308554299996419866694928655005907357767938998746265693355218739816625066365295404342830709429765981212654833683934026399854346270899143025632160310900173115774223514779315473317715516999166697075923262161389999584422503576310869532811816020108053500192872267208279962965787589339111476116874839642628464723363684054183791229296769365898998210867069857249572007053160291561252225198680289947804803338775902241743766798737614476412582055605888460785840605505169095128801002657603679784707321895511535460291754162405283727412683228051967934805956075860328112206279984552984021575418778765510417845545835869285148258125451538365185554937948720696654324048807129999422945363107408882580896829520815951741245644058168278695939727040760839543021977322139546566814604660209913857725146911930939603372799140547395197735763289424279967576104073623932284623142643881496049129385668147127515156181781880671894095620041735982209662833841149986142482050493077500498495961329737696809096384608455325251535312951432504993605414474759364849444390437703206587533994377444796206352626050854745050186900507139622545516944719487432822829073668244079228912273630835254081635606418288019550803742671625493051420738426079499982887770754781331707292249708534539426687375806819777758627194673922973429784468367281964343762339209452828384403746977731961355333379641290445946102200181017519993019422505637635678304426412771612698597556622919247546183618803974770263845281178051924181449826662875884096633926865127550997166436276263581485818765365685715135060671477427789542458454790234548156208729377735442842098843367873608838846581433468351294720168302195661179248434273700631439519526568919420881609127801049130370037573431319664910008025550248892510876768658331964947745557917157673002702402911154359415697423788137231093869983026204520724269756063958422264589586183395376947232834025279257567362568632152577656996020762286861217626249561307084501279057596454461267938147747278996287890992736950916858792310941104795434467627281013487803203120034869229324155578537003203886375898284004839035311223212956648381092281152776432287651633903587731355040697498541447701440786499333271735044267532880110592792418674362437300589180185927726481486643111642387047711404855499606802887707554400789652195552982548856901357927966748271355446882241672047031857243773937205670308468568564244710532191230295108135257518297770885945372636860701793793659857065000689788465672335434467321215690670491088707324929882021154631477661266818668263457518019349358110082742363885912368786899365566647855704715024742904115414438289262431476139302590565933484054957720543890566646730257294655048195617029871740848858819081864382504056884671985831226187688544147915143349778565339486204537066828092181835765981328031714348700886520616370093165034572587509570036613635599916418537904418028428992587570590661870926124691318830102757342001309626253922998161252664070936212785591680242882449836307543699427556547014751770500488104162565681942715891636202479481814847109785306172901067816405117066826511349559120257196331838585889227221924786558691266475537745815664735416494236144816113626980504280383661615595655319679921182761516115450713458786392110402552601650600362330954006549637188388320833707604915522825794899883808196066119992589066271092572250265188775214685535812350898159122479746931832113110889166146648582980286364686852212209341608084382688168329301489278888863160061625945728119155824518739442487394243546894162630623112452740137038495984600081782769024200446820288016977844315831532574542939202356465104169562474752572337268396826241589394502293127537306370541243547980536188916820118953164484865354305479638424272504697124887257306458224012461616832224038055307479727077293779070482241956145541458093102168452848307671467998220912104281158537345751707998626200175399374964155877384949352240753543009603927237369974161750285774504800001530020296957218991719188216639895364263972488747590413951269249792581538605507364994849484611158796391645687238035886764508548719535043910344271280753245074082716120853875660994318904173525370840311335564726404166292802688510113232880170486091280715248785329164995348590890603459377310062698790198868877535031588294770970871981857942574883018831406294874441362536912147775204762213300997291969471248849959311814087597892079811430586252367910539800966650751677225595563899527355659669653540944662023518983272724669354816896785450092769407075806955956894134946917266149021782315240710449119891918907525346337421929899171187695423667437283656827718713454936777680511630055498491265283851078178428757155293841075319631965476203914284387650660591533510007120138487358806280133465567597577014876809826177539160894446549265936013443960799137815517756545657926675788688244995974044424315623333618357078237593176749282860394183266864602095900485196702912229479603296584456059424461445154627326480734191016128465890568161441906507679032321419476225242743830132610399833096732321185080177949521533391827203006533744596726850156122029601761381694704673521292600716086059898839336887984377725474126835051240747726753227796112392327452948403472372467771001108542000605021179071362367816410717524523866095221845210197429889335729311748820608491155303860933457695616476141947306035769403245380303012436284278242787307266033952718615470310182379412330133552346872914908758187091969002785002652842750999191244377106651504216519669713158518348898322788824069043852412524245706507345635569614035842103078201948077903276684345805425304502820871258145616095348674821000987553969347197652344513577321399183287769368361917884291821371242450557325420945096057716477210313009555705384963319478441184116197302347428501636575872607441249923913888417712642181501381188889340734974224857007378136877321246598660642938464231666591312685850905814550052862978158270573322934789221167354715545616625856951128587785406574081113493365658375607206584184816459777244775651241586022527667781374221526654097253869187780120215109973534423880660699180885118522423982634490981634813247748356643786002513114826540701144046122902810310206199420591888948192398671731556030341033160023271104715058426803873003991782047200847502858644700609363713716671414065458688045724716701082058885019044076981241829239786059157469038482199916914112269388397101744446221216979543960107887303154439017337605994003867023781844872900214725190412753251206154403154358653655061887273999655340790124240912032878064399693018196425646658404720744693432711978110893481529328184413233374100104579458911018144760079726562531081220637027004820507018649753978715330666709460676280189679420507031803333125086101719582469934275300644839705651520379280343029638729208437455046800170750090165488805079753949089729525535938779362772863282469351902151336712346165361771932902590221107797462325657336139502069363856835655070350063404603792276998891309333059094674706512114220366525171080074989993237246478633813892576469483654345761959883108804421600842123033624768082425116673727657048178712510452467608406639127632759322572447374782721766164789739792678030972848129006629718287913265547248533059939258361195078974678462548578369915223288208188036859402470322616817615254460018479286798827614334120874172784678593757319565380585534864007739851156060675542644047925181404582324543355380928532406355199833187499669213082888196073528583948007544915795583869065785146744106901260008021506758437016055691712337972729440622739469728036467882539460679490415398426821533712568815584325343336942954176530694413671423515780189278067651559442744369770858499908156230975250428829512775409625216780693702801254434982249779018827162546831847153335956511408215974024462748924592973664121493154405253785981817625610367579914383992449277148868500610444591833595856877588543315694575167783053389296067670096497362424508491983224994239626615305688538648415705110800171227177582174573806376133308055734789344995473405480644845226903083353555374226844684735889990316218785743483195489029321664236865536254555012423269239639842901941598749347093937973877920971637413995757518107624725268271708275246628949217817497165600804450049860740123588989738125266879298432659474017935670293306905349894916457185722118469253126146639064957349437223680108374852606478995088979261704687637686744031546453341215197107542045109503613502339995096910926380866669536841152600288357759183801410841782771863961010783267609389931413857446821435044222221667528403542061468626906420227631436655684129102943051270727304735122983189892459300976384281931058545423176177008275407687198962822742630182932815138809245878316845341352169006875857126401686636240888039686516722321367016591564422961290136848016155102426523594302938739459458897627328141317625258223609983489966949344437461928598015611566251971578002873571911608068610384609430594596115722026853424629472031524556175583781705447324752251896558218644558136949717103670645504273478954640174406807573023202965011174845835722960697985445125686619256021668975484252818021013433086791609999106994877944359404881476753956195382880365204658382365973932741404300106151813088186901273073725655825952744645075376663962124025877893845210438494451161685723080020706348533779632737899904913939496106013378900030143112222115611591482126625446222728607747220704720968683676022934519412235330673802752065038957539221657817797178138988702761328148071910803266975837642056415394757437130885452501504794110769396995736643742661067098256619291844887773481643444519756255725816892767204983093482765886596679581262349321109844651379745466149807734780688757616422700265925606261317137549266452979091631548291489738764771929543619997858045000061336588279884522507019581034958924451236463856796194614970594747488515459370005844073222055596475525825711878011083175957230798491773127197672180554771565131003462917152199314280143803814200268585020644098684078690199888025732062015937418288916162419057202981840388799303382763408757739448564617767587426984078075595410578994216531491916915340285518453478542357395550184852029684660452803111528509809214039414429883180657513602504405228108041884012134477354624146666473392005908551031974645545040664666156157636118546208428549294609545909406179545658443432820290812408620895535004514443503304999840194477579452620247505875955715696459673210536408188547731637424307249108541579666651575353048102228882761117184149107131696973273035956022430394028151506357166358672749430648073160845678549723376137230157176552392318495316536246913925811746388944716249629531439395421981559726002040362113857304077652892683754216984818676244488007836443879443175591065621746070300871263027051399943367132993733046972791961989845253548541038373513975663590904717463277026854736437247248742914055816961259787057678847211370242728209285206556172489915263261452261278225214914173769191903819100466585971556460074236402183802146600969625947624909876300922927395146192179228957842128165919555953826259083034506013048085511785839622474148563189883005947326105575717200048715001577591635859476896690678116390185274983277669674014478648225362472369018562901135027760850276595225665324901248197169984930182076374263551826322743962813373210696321191236460801793328963589187526344383109735177958414319734611339360091040675882887992731755346071777044475181709753609567379202718565383297991696231522266854735963985836151640127632537532635903946581735295315993539658736228362043721363304688592206399179657100688481394084917116059855627198514597585223251521997748559998207866036747037922950284733455934055805812459233154706776140468473312689748561923943576205952674819572422131672004144790896474834729942443340985536663194676036037027800346612776878511361744787727193884251033863961585408181575124247295436709172668759995315305837825269612915691287170209940158820474998471432613938823248712701438030926480578094172288232993505592656329101327839074463118339728987433964172241500253974800754636175855171247006259194905892046059417038901770597397130977243923115067200635802871573113544195034767899118099024836576057558737856989430648662334782809319538847309205010687325678034250209581443979645631285455217356955440986025987551650477457344755310780665115643606575426338023020778171889485938216477297306447242683083074188035997863327855708097504017111128946141004171528014490188608610815791752166735692284254009070342232212089875814647653807330934904423625411976459338215366147132829313955417991484689692133780376170614035288447146421308589984466621189142182878638932453965879765097983537755989342235436641043599555919364824036566392142344443903319223377807328865816604903971816904322629215528467925232856452152173472714879503575695227390782655343961620956947469279856139804147271769288622751837475856520152253110134018777067053686739508335306447993312814659400271479912801641000135299919914139745101218135658709193317070167328279997956855285724737551104136083063000936281052188723162057452096368413359896076835574230981433586693277610004604992750830174401212367229677007354209952367322750272787648140153552948751571696279550747893011147808535419518889522214481313003840417319160012136632237092570824742613208657489380939013330453344398920484884606841858575249640940209272700447727488800053034056793901963220446713395623643467925493195615432953783432611606947944490439608205878054985911321185902674230436326546784947659635338551053467173952778288114701104602631237249780769949686961602170506232032105658502156557882378384558563344090821289202014317715954956578987582286186855868201499566956278013839470450846445521597759024549134964998195340798977749077516357717276939464327992340637652333992530980358610263845208626897238335166576936577040900551008107450463093114021597300186413413444190743386479741928203491401415598362791466264473438773233105561973108743471476735734554375499603110858625292729929750467969092760330193230047003899340815351447030155791177048477228211338694226156194211772642281037925742194350289492981519761161754777543652087256989926771581267871957246437805363216253704262727168355115271941398377119726949687359137062923214192961072747183433966704772268860592275047434189480699994214988255034849267264289392240212329462155147139213025341313510243432234856184024226226221148409017552800366945797173128773781892822541629876389907025341855628150364262528967237690012031712681730696557001263535576744657792130423261524809712843056785646824077033820363477814420451841864092543483091840053348857314963984540466925236674663113535991270741792705676051464079424934031923630552086137968060841750423459998265400159924598876925972953035541927452910581800326441071010980340550346587565583989438401270716591146281019444653836056115983728931455309128706083861347849106120769971793526362600081224954346850400222874622995119256630491629500945931129511749221693324263020445630078032167542327588321549236216012585069346859834322529928309127031548239296427232649368231113459637293203213738151436576606736602214470820843956206628808895574521472923119101391542817404710709640251347632708871736870556230582537611513161575343806896746803038961800116493696725967011648036115312693193645054309557942383846115584401340830637218436824290233328468846393972463253865269083186952183205237073616543647102211007802564997514157457345700558009104004294163848913555340339579299944730099822762145549043001063872625835727526043037724689616742840901377011696093640051893493426654691019965063105482437708045354003173751621075137050934041344826334618648143987204495421068239885771919533730676688830087344483342096152822898605080127010022719326577817016092197419393258832003784506145352852868653228330025893540171461310308646193561154132489983722461095132205864749539041706155786240226925328482932358763940489411554952191397400460776735117013884925849359812819317479869837295524699331144699060941129774528948693320964700302095762140366351994372194103598444084840458719053750785353889242207703603236097783675069417006263899572891355527118565113407853455679111419819660440219695331501154579865204756258396225879774259350384186992977556165640858924460486108230021629726576030107313105679853710979595336865365269682353995498201935229466104820828208555114438807506806780397446579344981475306974683270769176634985803885274443728741516462337694774153015936900328937499943518403182332496462702334793292733363932708577820595465308912579794407150378931174779273687085181229909650597283541962276672010127535986726119332304654594758125646502207214669787627122325234639699136345640954944260055042725495233142198000751201637624460663838709778854451006050030466030516587572129371981925232521741825135154675118461680615588802944009411314858842366751458751217316174932720209612053376947768704005711445593298177190776145625198746901671187559973247571303480036545394562024304646179599214680478436444332134331330128336122331713240148678173538125100972676590810752066692926424785692178034372986965267296786452275180947515768600064982110532932882575947196530068268613295060658220071010689798467165660330258489400579069902176759431654588464281910221289692050646707433017174733979217743298676252653431323946206601069804726166640990758656869593880220233095775374045411868983700331582052044036065541951782974867824121891736068579929455491227514988123102206850469189071336190760625551110446443553036413025314875435399068678238300246538561141914081639650777547643523901246756965340277786450926602862844015141351543960543784345694563551439346976277126665980114132156685655199503393232807291520372085413182874221989647358311403798278461732175734991252545955223608796829771605249674561562227312943851086006974822773537342411692774606106286036992367376100702579705699293691943646955335930250297679324535671200516697101035286960820802584170407842056087306696091201236227365583751685638360848348057685040124720075853325099523209635878707088098867786156430887563936567113676511545702286989371785967560530126011267558499789863936519637724353419492392486652997869795069797751162901447555480840280532336489428630278660976277245756180110917117622660877223706030495090529190867934678580431115828706814758392458110684877554446888019496451828813959270106385447534932723859684421241598481544483836190926029936476553972499252709854424237129942434643784455694230693721214759029686346874207393763816215304341979766684318131069770293184208767865819010394265878875392118967386812992692107087084663495217822297054140533226109426392024186461537544175660763579965383469968791092518330220704564537879506580353727902729440845370718976153734154607403722087097341293091967851538736500277456857131079044566305558276459515102646193131946392986510782954359623084714297094101845197247332597844196216652029104962479206770851711716962445305162567755269984318184911065250309318533577047683478441105101130109164847357629168556986910622561629529381720760604648101872088704766285512643421338247017098217844564621032267248889862971039796843082292235008603797266834513766614830540309561940434459632121493369835933302575076299771842020822427180970418509888723366974919002813615638840751970394031647834166834475018592277003305472130110665030994894922976079635762555520649962211949253770721402232024461210980886048385563716722685637334511443189413621507130052281825605392546782683267834422235568996659223293872370561556434426970262154375549290596378452833684023564991204906152925035028488041608558786487388207277486908820821804850614413006711086433991406803059846931823864954664154053767256264471774319736789900495783133192178486904928745199411609184161507899593227075813128507885213643229789941578174420244117345700467014523925213472736146511967192084187552608437814956380104248563789393049745901837319411031296550898370980267097725258599591381660814675222362995131071372822390511718302245744578840057786834602152338608495718188373372720201798130670398572672057333764772195367708362512076617673961836280609356518292892895419078620939888318910209055583397817896258362651112090453282463217255230873140084308214313657395993882295128599118738126141936265656579762238424048419154815684030666013296196742954903489110643064144971948128614986870263844070291352714972306693201945115432052626893829416574018810198426088375209908830878129354219301173186417681640810157974071256398828703422165459279194630471223104892316966887397094239942138483516806535180283549629868376987614856719221379002437995922790949211023689032416425898484798118945125640915166576961879144125046190216885363491197382416868082867351250797145584116830957876880535679756973268612263851761652481226353098773674898986775993316987586183037502851629625426980037173680300505642911680692941249244878911816377942392983709104201878878916769956223574398548594408357328973939602318412562477237342655753325437608591892497936608986450092864780115935317596151635166202000065003503523566634022816618037429196061547201751483886004272626136319366846498192173226864084244181275952601609747699980513240149055850723169772629337569829185857715337785821045829923975617297580051464104520878568604921432202688862962581709920413794585152803643806481679429413322004971712319224918937403111770447282805337607502755109916818497064361684945693121310693051511577907085015232430490281504119103944527339698003019141585325991727013692173168586773921596363492120822301925876269178370887667403380201184938989980779645493768785887532693359055870669219771834688734545349963946763880612211232654313740972728231040218011436685995055214350323295940577462847398596197872329539129902269230948908620504115811180717778845704909848479785574915452251504396019167811651340650662804908164335459238874266662402769265123863206446820136033011832037380056988898620226185011412290262890869031089803781657043833964814263625156773249865345588488215624033975980234186808297040653582591485772564263028651548406892231613900290032846561250559537646216046874535035060378979576784935109104268981648558247899612067969596147424536778414733788106900214640490978862638716777728514069953720523809107770968932491933263879947942971086968168358731107078102452567853881866752531570103626538337522853439253369036073364672254976786725575642837747197215811016599796628285365649818392075958881181327933279090314828997368080175518993091660559561965261563095978657361898984515867915586377401752934119577028622561978135367343476841466844651267580174567161710346560357613302251476463646790807240271316579060481092885094832508697741296411869452038316281892580377827855261983443708212516820764992168794869226760082352223079837364396744923721702127530626708216641319820809216141935879825229094648774422228779501843007757774446598115125595016765751701070927006403983541238585095782823134689530708327878988714190065397865360024056490752810812052791648029761241342406967922953803583860925466030012307352297602652112452776227299898540302296312000080328129575191366548383901246969650254284124965498783558569868305330853527811835235764594134673821206478666445923211898449813424435055149636460752898423260168258632545740683718003545801353278845173077685740719517371013864391310351414465903364352299074380035985627210066364766529275818703301756284043626438017673274453125791866466560931936766378351432053414489665466252041422712823155855722835895855399173318903691495535270995858672360094432958843917178901072375166975607221566051350312958206901563540607966565916519117287284557503449667887465962250417737238905206444469971715978330565598010040091157519969899698196882974407826267263559492892442457673449428051309356463838913367128847607842676793729916226437535132227939282626354569434888312880660189601604892765922834359456416370181336018613840655218366688833613276965829723783571826480538774407886612039936813771939071509600555849704212091622435492273445863505730910183563166140454945257781581383608522592961852113845397579002235820571032962562098003863494199623910031348525697243464101754640196520980448148743177155191839535048377593895478990604905605688664004882924848294214442668767117904116787552721918904557093457570040028618187010570744816685985789167031594868909191986383273997872055181978956364469509694234387049092768095532148714580347519788626632724356163625422624083824248788618964388205949493432168701718365069709826312071678158559147590668612757736136443290111439595596196778164624715667350284158804673490207853588997643196092729496663362277769390978973463460535122128296447873878641876968403938672866377669951846870171491057797291679568943558556836760179923593858304885780788003902989621066600097414125017643139259126737305045462912818936849704971936907614184935372109013706096010047911062350447489940081704827223136297088188411407322253948802150008346529587506425792846755920134262755903306110389236868909720925750030858448602195386958798660643878971327510546528320662429204430089270087132036028867661794142714498343488338473678815172428184515321733964664439481733726320470317531882933585486900653308066905755665935012824833616467344014648185664110677483482375283306106781386449502476482291486365550290834092242319182855100132948741334587637181310414380833366396356614165202391446222771084661578659732263260815069944242378284087705651762403156688562815390666470573813241110312021363296772354931136402412184496736765398938916986281703011073975799996801242760908343732482599784277945848522781902974033825533931468292812652879375751887814605594674904345299041222613153116600114789092608000848473702578743003508591274517218662928919972470373083642358085721327290446128229078220418580639840645498519575287649553994260945797048730554862105231086805263381667643801752927782380389415711189710848445043252312168886548666673790298595896951979338852073732471088632676947082389215510302982131829571994396834944813925542666491293664683368749359923548639924790883274584581910332012418332726635679540879869581400901149180766981096762264005846457246818226144119114698322257105160475896312942466823299038217151870306623450111428657959840075937837510369560115580632805963096161627488613501480542373818447361547627757530554419863700494014161896025774667121213666402954686969992377905401891995390172067442444441755812720741430519764718748330359644988599694826629224254970998802894365632451596823389483888030962127087484949763764039922658602792462930833477393682004699632182606179052745974670214952527271686537140628501954166119229696824029987485286461189398224178485343268971471593644731125177002696001468262780146769687306482766327807676679529962037295608368799521503077084443631565864520334599767581376806870477281247934377507351842894594484429713570615012061032978188079611695857277053768990425358177683176938245419866525319299870104543877824983217511721936251850929179454243130175188008160037515436286311840891510030225895144460250503502389335886787313227363655654732124486570395017679718841427492672792524688297478983172394118543207460630967781438022302607815303008011864422097104291231335395003745684236678491706489888157352726598603452414206494762542872235134362338892249279470261965739128831490422839995251689078186109142230647370615900318747721682312522307333897886668802594783353384352616212280246699603032864531494106483023390358151993457821784772210467242121603105676620188433781287914793223253532218617505608600185914695265448505871054039087299527579890454499644570502998668678885281661751448020831048768479706169147076147920918745841250980143151994379446229431469195259568818784706961443915490836667945253310549021192974189303113453292477517389111279081616282431978440758566436507555244839207901923966194514750046769316618917991090541649686662822623376755702124770602157120039346767521630585213789061084292594702750414044520320334875701871524963594705745363133771054469114536338209633618934692284490823375979295863719160478024944132065071093914831029570760201173198626513736127966034310500942075225945492996989931998917807574491484679085873242047688187547457746854901643000000316567761832151475725031493122804236670548267657414020498129313230171199543552110546104704844764920054495543684603528562062941655190674240518261399590340484115127444905096326676341516287746274931496195890228034379119500569067112136549383155785209478730980167280319201451509028557517379505740725165757095520216485295921921185439338924248942354732199315248426935713891671987635094969354967093941539388083366364165149417633977385196122631912437316154155074869313117642749351582420299253382169155692863553075604891656544553680694231682776052312349172948332927266044089092871431339354242035943507956703001118462241592540837064509448683378348138490438297884246567396502035346856831641058814884014010273281191400225770479650820664605787719470698066335962737595871050116984047700968737393120349236627750667514655536007084541833903967946333391870766529691495353692793153882594880436572502429249365341450694630423164214778538907909305151726024106278570095487515404364200762517397809290636177110337093297685170223484299417389363159489569375133318660766774758130990013354103418384858708772995611534961696001023732505869891633992680752721808722700323671807469121012638879566086492088326657242593324573059919870121048208903896196956154512993051686644419028821556140416018907955506699464332364861516564830824088874115406455948891504830006412787940090217813469682687448545054139116104734502186629242556353074588703749710175104407092515990348292001432242446565389052089080251894329058686956566004446821443240554385529584351190735162668191725050482892980973087812769565631437563712458276789819771346341700826241664264304257798186379005922797778198809279548901708031740301803183575628766118097311436312000140732796339005388718304064126443069928065701309149333678852412981902435539542362413550035269301417735994619444604778133285663440956632496085553161270595836529192667520199667015819531728356769389937713252199257376410581194947942968983093009948473305939181968329761852192968621094479845255838705450012065901831693248117248796198585690491183046864504286075390472651670899430869070864101238437652432942155402411679171031512622331816052130374806996432003710752748282420159958478817306033249554847731971207530979671931871708527461406476603784552486004725967148281534048603513576087181258704907911885340829140982209300663771328102197732050112360089101796941730347764771133383718360396924291328329639556869581723293269806221480686584737204098599455504155134278975671238300507273847634111775127749858162768343861695336362486921091516331918129386165387847800071046583697479830588478436300648729323818117703097220007558649404749963249515864770930947516041368942794671371879857003130858046948782215118415901858637003645008993478517787401747629247085524186587232024170165384525707860997098226615386018482622881846275960388826951374444286064543564463163221350288235865023343116571833561809411050743047313654896379763417423371028533784711159763409267516408243221941619223270708078358128228332427472861857511261513704471894923101303360006539469022867213905798707843458332677408504041035437629896112392402412348476681190139554109482755901142798162363781191815848039132618281284896693826421997434847823348341968806311867679260798544968582934369518995499098768296629629550742471213284851078050429464583545299840367810440493458246146344431837844090482644608969658769429238734851636239426760016839393332941739361667979663814789383032564783431814866904865938172864311375901614244886801578525851799464339492917258145955879243745909844753998079237926038257313136430009879797076883866809687329301084099692959538749604502493789209747929019796723997318681238271109169606141804253101158417838495786791924624037182623263698623990836362202396458221258206977152388201491695769950047028154275982209110803684370046842720752747129499429262056469130408010019581941925729682891977023024252139848379264454990868527914919117645125383109632841477965714556285278643762867755094459836676883215850776772769193567725962955861897483638718056512881569642948162275332126184228477827669781407513935597303716919413070227192675026431863332357018588145035171248730373410011407430803134642252519607082496730333172716744272921815777119969405274996195569669297162714351343880186328799656137114531008550888544018530910059087018619666722886695195848355535313269791911255900411390819948814560653400850022287277462826435176047646299395584382046353130034663987154274505641656690665095457655660286419618834778607924526259657935355152661645289560974693756034670179948349205084604518766001483203705066069659612802138929165410409468180827394456582041834914072466123977438101562836084909020551810467909965176736219105625534784584982444817100255946338249364404213710729441578490269186079590598497107816187884537982715237114309882111017226964294389775764214263487740919401935841897889676567498198342349543747229217872200853925260815873869887782779042538799401942360858951871807589399245547539889794285450406629899232955176185787375913579793374148158819424326382175238296522566912607181899468305971231281427888634017835113357973079520045059495004221274965860900186324136621750014808714886092939786120780101048489055784153110448843011820994481481514587913248954200751061956900505273500721502724041598875805490331600431933189841133703274154705378310159812783850294567119456537094185723053487547765318387820406517014765103113291558616780204889715468817121216566847378151239871097128477130642207677869677148204196958376140484697487139590557785900901740067992277459214217497810161954813289660468060370700435482405554354437877761406260098028002776247261368853744453230444874221246896500577249140037051230208032197160770320516742794247486547647807761115889118668690119756637660535116261295527335456615417129618643236436968577123602110590659268505675703683569118183144747006730231947256579178348628603179391958735003202119556706168539651539900368135371975344363808159688803914823910587220338844175228341147382842231255328962625842352699499037626352556189459481030873914741219706932582111996345864544940046792457684550461105022121748103992059606296586465931146233478311519954188744734383516332474713519187552268036810379859111173386236557068467413415776606533549798569111630871365178737216991204645399729599718855814346681696396561676263324755921228751004335216820147362161813488380330992684642525510964031459326631515382885215170089572340949007423908155947377004926736738730332347408750021130146190192932771163635303893702901687220871275308223727118624981789737111197723881089467593564597178801360293851705621141193940093589622148782266351722713115423252697877492909037620430534873993528016922657312110467627276979871583554549325771182516695483290298297891927613058518567982994641180137454500923222377148962469152977651369951676151104781026354116900525617191885504150835856737225294382325163661382910306994175534982788618458110955316814695466192810517026133856217717255583542351545654148135981992264071746265673112834488017333083542216012177739027387854059309740218536799561286901246699291167618223707461027190828528995610796305293859803845472770414538241735325034209339184527648350644062697578229074147955313918813250319439207186184320784056738923650488286228752060154285479281898721769041954688792687800291565842047420936789679760879054218796139974703630673130453946118237053969508306249277583233116145006211070731714361381716309705284683056269583720141487909379923863383452496481326311153687817361424551410416350115768924435460820323174166470945915611610650288630960738205155867928314872348643398687085130376841696230736630998550508992215238678935289333246785666054552840168959269205734271083240352950825802915395169903846491182153125587757643252699188587809772508651625774163521818727763404977378131209367372155929017622900800932553702806831521943155567486683689434049537995709377872652762111011930141842116201508254966560084432608972679556040220339756044878157820501062734582242516068973859575663689454272506022498043118295908154617697544474269567916364117985706855189024857895964221017005662832371854391965752269079471666626728453305234463965666806086392782591925726965189163472263864657842539044453505063225799342001013795718430096571801161514432373060011154002637932506737417269132790508661195232263461767932120585710738028094731420994174528728716972259466045324112636008151269035609099470199345684044495243777841335613932871931564611930503135266950976434563948975525690710554568721255477804557493838196550447075298134597771767826064345809828357411854766529523165219412975714536547284886854603807303716478556168374103210034829931673416839481790308047861051181244797015719330107868591430152417550583347762308361119010867527444850299216981709571770101141747718438406354565814969816667565350278264069611692441065922967873503219860467944211451534040711967726430073523883936434999367464383364813177278468067130021785454137776202053016819086012305439870578025212986996449809185307497897501646754591933552245365778169109213390484421373600953178205533500596554951809332098088229776084251550532674239636674888962742535503467977398241013115333186553374625120771931853175236441739670339574250493411662199136813348960717950486005610846124285379962824188187934086170348428380820422302592283271146054207107177897749876911457412621957966677403182618135210161782931253857229253295473913412011083908045946572171800718758669065744470192733431682821005109092338512266078243945546984790720338952658934564842120147617252850837675061248308563263655860249165156430404880248306901590391193347720570591518259171542037207947766401045717837860367371474688205336535633095447196626397270700384121052277850276892297069045151712039348068658672280822087176055388969010830949875980640573733608844035337889152403771085535443594644096377465882474342719622625170330575271582981128726413349793406904390762226092484732629475874443537227556392276984837903101881836766901185042564924786095719843201771171583314891292741376771810117723163732706181260771561167700024511730597165930651902556631909794863935522597803873604301838830917498440874707968732299896846699900648600875310634109405992004101803631392006471703923704422756917740783573253934624034983797073029535314331543294075962425172497228938213558557004971766521660431319969040760703878523688376098323453936711894997526936687820109087839104491055726337085879675280194369467616312909724913776530513895798277773782040594900882303396508250236746132503853820919107207675555365706707843482806021307854567133415497534116974313365743940129158664618816540410358798112572167394437344974576101178448443651107689886133812813250265940740595349138803106403853647018484499260363048832597255668112663541802059526374676486988627591764910173766958710791807034519731433634576721079759910451832418049914609829529621607553721204428921593664019975476783803587960978704196459203160641318821008739766932647133167081420047485586602380975392804139535549936777243616851917482314011023833863235667407207152407699861155335016546328591346814089094358893239116311318615269661797103478512302954321501903518673463970877967295122294365489938345566884773880178097215046464850172390869859328050802153927178857448108095967032956011144009505209999329195214396110731877631792672526037942728639406959236222497982590365443717308685357676049654590402343713743554684260767315739277766593659852607732861850636508619744722766400005907962503205254559159743348812021093311289400783643844583079162389096434344721001782270829459843718890443737652126556923145861066242271240534867589084227784271478067000633816370310666540577774502622101153220851612733047990143513796374195976332501054093042426960486952348407842749731753995019273750568614840378879860812383812584840112754390434282825374140982895588362525304457002189096458050897124102466538414715002360872708612410782813691091737132872342385423785654953068034842254589511484857920179921716898708986898519100373801993380731567975021234602635153635813930183509946976183317881617279149104966940894539476097545521246957898596219505736779035425719968750363794323449748444002185950415675620582413418924571234513151388914099670269017762511214493354743586882361256824868888456989384251013142822086201950011725415721485441306505009244084235530716846615313842522051649510258839627695020191792396046163938116753506702911130219525738850775139771251027745428227256316382301026902014337235949751431008973894534340721198054168760202777442152964462702279147347339024241187327853082648233582137390780259239153722057326368881174745634116251673257727942770367417329685167857311659046128172346642919570747915615485688164585388979365571158744573229603232812165865390386081703489436071570959548555483132769508030835149471461743793656482222863347159896340354069186348094945546272992513295467241875009587897148358849956458889424831899913051082626748290080351851895627179171411639930784899110852620942671802718508954878369823016912301251856645823218194681020716190615006569760885207909774507967269151183319999068881507585459247172358028466389681604596934601588172899120376815728959596945617317444232504132824685977673258227311611038046436296259792831511954400067831142658720781289743788603045769125282502544092404954350427639795439571183446338574093260546470549080001304408503284270865682896269096711843651219522554623365600824985136419592815872904947800488228000827753617181018619915024713858194427431074288583780247796894636670937374775920340115128949201484304152466097604104275710483444886484808435424665677200982053458006168093582142509461611077648809922126503196464946986767428233695465467483913631181011798042169008573918955729945198055212734998311501046689781915174996093782193491108316882048711212738394779085151442989400317529729835708622258657238313540787461592040003256747050516122885398724583161661675329235183711411019030912205205612830246145400246370800165631919674292576980336783599420883526946155025164233293884624884973142316835025059907413009306384314518279953432422633550326733467971696287020689066131515041825742079545265934480693098342768913597169192011501562538503676273446690812518417885544021958812180466122920778289105374765393399653700079019138307465023680774865788169179373096359132324112273283097753834231384499706094149840632311776162810678959247375447898771210516499955843489940676665062870507218112542020068994974411651322192775442764162615464930825481199845171147634603819233500054747281559054423042826800806987435461171910844399728552899536769074588100642418380039570280841579627291034478705319728393252451958551655004845224935092086324439339668450616633587654647519248536318423108557700909356023571170687791987354114375315964069914253807604085657071132776286823809981399028479251838148426271889367850920541932282947024240612473474915483579476353005911634986275305026757620359882291507556138246903296596507524244132665400366473281977406559495564821038778710316564095986705804855320526080747088445908514205309877457475346948876354870273206937823689353531464360680531094081351351601557542609665813912382096713846514983952309171257976950568377513631546807797696051712906340111253145257484938368370977492096916770280763352602021683197045123442480962143562399249340650096215314923461856938021021830929511986693370540559476362248978866586314353957395646066180372228326670152177982381196560936888660419288470112555316195661428638460279495991633205563125530762081188165753706049785217531055690719124746511052391603459372623503126856715139427613448585136130812801929280247759713902628043720851294972469173466165467770545837004304853045795713160176066901042411955943126973663115209422220680070092731590155496446736005390754544680726012198235780115847729644468919079098101806624534905894784786845911640274203416153148131379109785530039004785915551995412774121841720596403072996321745715374829160142298399176433986106161749684836885900194140218975015241293272165101957190202207326482053629703927738735983979616201138276923018651605423862827097848226210565133763154632789709205513611016381986233532722609392906478203994746046943354934842920818173418092616273508006008832837020523696359563894287315146609986087529384718980550048696622319564288620711588638954467200210381893864106306700551376211078207729192287623537051942831861394446527386789472412245048473402953901836470366268279477901122267959518203712900740503247442596787854998666836726653785411655919954529697022394309011118583543678364530546875694845697031370481250983038740569667306890449201115646676207918960749835380651688187114148658700694043077345281817064831502517841254466555537125035518496991342521749216487296826668384456149351735242156114741717562902193719004314890028622087631191170931218821380358991867048281035783871754463316702279386439347066596077773203342668218064461183900559263015868776879992119266752637355012131332165444350047704003714404826100013938853237876523399566350122906421096949787779123180540983736284356427570277962378088871412766643602119941662389014189147540152628138818742403926684481755931023738628183560434617575971222275081388712466806243162696393528767659181209079732872464413718638296103394500945623784628838535158416110980519451519399575659649649139336407237084136543048032971677557254325266710220773312031474482376612645085578871174177621427675453453447683229009351493529445732323520071777323955811073444616363624221167067552200749252594149027009069248800765971982581059706402267209308546309358900092023980299964637860304617591527686354860695958591751329476226416065595628722758676106740730559383115477879194521607700206161771093634892901681511771981714941698944454113695451945897632115339576875078748257776619442995246991025397011290376829709547627435931524045778680697577174139612533310914398417354713879716704285196509652387839859899242467103260763148257738379615980653784985468734721263755680563182459626781374921485429701794968567670189957522210125631739981694319552041461857074186936858002948654437484756110629928185656232262432147120745849645425234275966433325455373212357233292439451362358561441487089843081493034505390282304380435708943308870469038440860448070267487746716176192118231615782702870981136205400386619221302488664373784711579158897983365472860705235104643885329364310693487854091903452511433302361949699814128428721004513613397834231877522374005261119538116468375262798106805269968394723324831369228475188395734262184663244836959066109990570520280093762602205459486412923287404828058399533459582290427186411387274769871742879901305781361598934766230388641154597880816948740251819195874203941301888013756213608373137083928976319004070691034161026662714385995566334193767476371556333412783759360272288374559652986608376142218970440201304699074944008195014917658354882059244240429963419224297458851558228415504344665592648899544531910641180550582324015434975305186494517617396542853524561989610821799421102917495888115237610256480832829504725284620996670790544444707290715871184616832941846210751519877234452223362927168065613130011628096977600756035306745055822504289808204973510456776713655880757109203196759018627985492567063012250971295910015682519667423132108922998668315814829702496719768477913529754266497692370711926433141364812318599221712070365651219733798572429345410251903362859271096346827865342976147126468323474957631999757677690819221863566209800226226938004223918893130280577108828968980355783606074628077586991527391892925612565973343980828354375720690895580243760449742389311467787761230564017080837754696669705953262081502541935484617643753504869585400949674271792779723885140661092287864829480198422438573293639420702616727820891614075539884180286674739079590058957345784123354670825988665030108350608000707636775185935759762416383707119073268402007645586079008735840167233934534727079164566106295577199844215302493405229677126079054407706620362586780508805643832299486963105072269748054006254676192688068702741132805674399282805039162910110460416582858398426402155454928057036639871094277091221492980888939049163731516503456037867119900546087052902253041649844086224739857760368687420525872727162467391295486537172825017417014615901747635223275702454302717630027366415277357914654159857468331353067745071844778199754919469074729814193335743520903695765101471147322973091722706638851778218376796979495959327602369301743368708728521843034397321861180166924628665327922151004373148769218171675711321476086612111589421946702446342153285464803932070120648706877651751967231432537463586509583895845961935118642382947430283487106387432428702729645612524888137871407689165056921970148930247437406608229363467447313732870662821711447259539121315954047843996062230210555304983771713603911833273562346494898612401714077730488207307033661751488029615993009716168601601482277197661404198122155935260412974765329248979263841942895941895947484498778225041863315343663150869892849962725395888209399787321140274008601541439166905744798073255278506231544412587755264884047069992205444316318205824111245595781888321747745197371621773264499016898407560381446189750888833202273907088219270833908661863892153509795334758700359509116098185639646134377525296196752210942633026021850428159896995388820117002562667062585610921468951188224110984027283242344652064324803059310856110674019595359110069750497185235107780004240434449243280597219530109355586809935095917596517759362220757229747755935992418647587904518113648857112563413043749949625272760085475264471905605762747765669875278117583980505930399844214127480729421110954653665597367146935343501666465662923793183461886858122859022022360157754413330565711300384417175156557021262887949663322629828059225185767479337255794334022627108409729250010744467474620297672130829167974299547563275336219892004386677469532766306962564188893032848112258103982628001757299179121233525586217490769923340147419104857466922212966847754140944069475654667456095494924908402353724874079225661143937144802627302349055710637462441202461953508752431873521030519428944972846232375085373217975594553935888767507733647473718039184085239576609277501833641874620922109721456327499981536441792964199739102204127782952207752595480149498895206854351058860276359362121511256480268592197578058276543601659345579456620082295309884569079679990072342284686340239158403998535073577464787201068296105276842214140912834993878997432931172698057507377299285170930235983540173676826368029653630666952035523475823035494304079235736728542811947928131805246899568660587634285746882496742690880433856987928041569873043299826072578777911114862913783494109859297082929559750419319296651321769630201793476660250121422650861704163417739177188108280868856539097665807402606730149037286782432964686724995929895430473871124476083674215887017216716297224448809337118476797361920087646758677936898300125045929107066871930546800482845103387101394398824272704162510312858745372172320745019811223753173314250724681800675064975864452687405437928447204137359681692917512585045508566708116338767501815813157486439485852571193597449936756423398777595546078446214612579171134818488552070271260257641775777025138000955243239397154502283261364542152091337236333806666518369369821876259704408017634003068162729049052063306127945472985514343895468914153616133202758969981780918891022609732161467901031445097426613118628886903024827597804251982740216892033117323508502387519292541075894513136018876088650518316151839433600290672463096469901586792659381239001716785182976424078185988207797482036878334355313225043144261794974631288438820609159212017465705566542411968866345496586026666558976951966887058999388689874856395997446739869768475186353847151018124280416849689602635843401870300984047602201487086045957871379858364447429769427446714882004152772434249092246445762135635389673461415094621964904048340663490168513000689100611769697236874519254901302487267067221969144888530741332545391839930344717697398627163028271819823229172089870621961372917785083440266289996307085342933905121506186402197253448009271724245443331021384073411964294597092409221811312415570242437853634910630841280101758089527473908322483774452491283115926776357487808982517582314570079532046577578177551270341731334825941695087198099401008876680100865217693743191978157852852200241547386478249529853080573709015153527797252581399131728287354147869542662808391850360652084064479901350423668359431381674901076399845994457005845406421231558085467704403417467553828072268475948524514533408254933000202049104971284895255528392764395655161695391007868272510978327360954601154735104206500504274411681761472846327958937209410892620457785694928271682689879519142879469096586068020917574110172136881308394174625048606224020129084684339279534342139835717669751477335286686877441160548572094280558990390114820059459997208532803947976246884141975317136748285125753125690940696802486547448140064338540510916202350482388955443468590820978649497416707730693338708239243271463530748316579063120170503425719928759027589614161615198508670951465504310372577230975657829516796774654983490229058969838547886819396815967111130594370413640027465229100592097650102328878799218569030804951674646199734308895459450407948754541176189232626496255161146607174822103233646454949763487732894857168211385748709691283585409876826305710756231114698164793490001469914649140644160974682456579469356010652274644025064988996748651473384258006231426068953147871039070209917151894356295475035587598497192990790595043552249289774763477099927460759173353271232299002812496666390851101240400539815328408831713075728504187079814202958400624115545411617852507721951143060003234645867459184321136285919427240713275055826078472726441511360497503063645822197753499184074070979724725609298310166467317638030008425343589433592359350405073690494316428943811165612559201711481870573229225232440349764673287153422407744469753949191182934134592499032824613700252075190453547038324796689609525798916826306901537003170835205971330618677125212771995332880806443589634568341499601220794941155829233529779163734968985647179362434907176071649083558168535047514408672362060573484140750366433666290601148977740395693693837378578048316913201661226404111386033050058094886468020483404030369470656870996858572483580594416206821401641967236064220769500477455031141045662387384461922432029799587041066635635160448831446198754965267076006205291004232056197819440074893607805348370524442108908657902303260906329805134703004569622633767614177721823673005603773570456295404706491436782708291111059201911550301555610010596852856269403915106191609650053589958716966884907052371781834482104500118418119703461409648250141834593668028136365776014090022945341774998881888088511017078525179836565690956277071169572083051932452486243751789397276193895816272080190693905466619051798947368631168665499475841738335844944389931575274295536330006634193132595796517591559930240847998882214297766437317708215796015823853296658494258698264605124685226440242962079443595671238862284483388470563558638974735181813595901093513114318946392079885375544492873580588173788408485235698908948977132575321055177529586280344016042938894021170279919940961938958139161680284519932779285122728335109837812426205376744671778846696363093033341838670613380087560804727856746425712770896701914858810032233402684877374455446267422362517077685327657426366093774471401503708330337704367845845354903954172322131769746576250805250749242916596769079112401958222716187527094313344855102019948595239671940178231703570140244619127796050599102794936329791257094556456715639018437101930350998746745069769680400905798434724938528515416804176294489072585951769774528931912541712514533884046518308907640865455251690310393293676925638601443954764542540418936580281064886825212434542439842410392548954339852056312029020974013341276374989133154922169918722061185444924412346054691800983035588321384942657308215689598483591850052196922749816779552112045978379722168831256693433089034373941702295881979427369730054214453514026333586094865158898206817753746877485371847502631750887706677918836040587242143904447777717483486113220359648486046892313706725144843495014240678050382282459518179289800438028968835700147469428903700320851718991611798398470091303683498493050296602558543188521609045498103816223153919086545483375163615553866608394097380581763997056365327006075220638806805052647995428038535006485193464431818980218021170554573025561497513474306009415487774863627507081408055789140309666146701976487588295767685753126107484903051332875832883548309274697967760777246924822279785951809553272289532366246326158442425473067247623351604586790580928843378004415618687437958922821006387254190582665757364749987308018231639785384499840317417591344052768636747985513922659122600459136449632664409831163487494892371727999652027739836151812738014384866975781925814942947015352799220397864626280543553667122397011795417684613205077374807977252343934968180556736125780352764063326887665198691127709565209762781818810540178759506241637715601277088557208096996898711217807426593725919457751360057214172406503141818476845792998275448129236637339522677806440657582184092480511692529854537209972968575675840570432589002809115576130271204257784157165247801162254427887661778873281992301651062345369512939464958582705348691090677015702765194615113826453860591812756565378432521293469261875433072242699241269898931837044991794847681698092346816146216184528820571002069484515655338054574975954280630921356789597234878523365199979735550902494411697143203164953348008226849233488905528533002654477236425951403021241849818230103908883508618035110811088953034674968301491410610835076429344963601201819585687863880692261315097963526315158071138842864784345273115669324552152963393086973275984173507153477764740182645886822567416065705399350727121385680289404960184657519419268539263710591453251192196850725504346085921084858119541708358661466896846678268541431723377437090762457449395945856940512985039856603500157256447923175857925967606980852007501271633614826629559262041006558842795795794589348592417705533911994673183799223929352423990209435022037269898569646964795254339049881099035949443832032885827769579165785394188255243393589225022542348503626988816545148189274116119373720525738029829863033399313769005716751664336863372053848492551825306384837315097707074878011769426455984959960033996538404772771986889665077256970850051003524928765297465420178998939065509950759433119094712959128208140952153008887175238954909862587766173744895089194784439966799655677381709353801070795809116697528096087912445342465046805404109884343347965386758735245233756692599721014918948483072549101596116828670527659978640452985946220979051590931545891421311794417338035583470312339855124513325119735639127706973931962808020767367366937998630471196518548857149049671426665149361370193421675387989179208649015697033008289910327413456168201500227044768855438164369808475322171869052425523629995378479161130337041870281678932115705081272315123898112538842955513549795758678686070444514826195964335988352746253676145892226435433275180984086195257016825639467751043470776379515091943319302984698664083883655531719707405895305399575813700460919205583471541509474907855012327835641348976844159222546402510349850348975683290897725469197227188696441560404621263699857796585931352877074857172342226581394630647207986210346390713744143743690771218029439263375068985346925784190193064221319252094014998849025236919074512562811427832679472478633293211163804088364905120211977474877280027274008265970300337189164320573421935016313076268612610180428877197122879533425082537715014036980875025106009546617336602575045572440893071106310556159014753848407826945481517233277619354443752871197886598647293605609966005956386171330915735570753584029769940223450302229204519929867992319505856948472582104741198737317486252393324518827057484185549374395785930629151429788947092343141139270752882085234117291539676737308516481719533140342529841154598111300643239042038444771539105843756176872665181599417217682996144871526590387189282806673058365095772078354856120824355018361744420267964639228685312270646592521064906647138718347335894768963156374823639494165871332879804324660813807588402556668745991266549091125429733066507734511873339260134507534775936388488733968217359705621498525078862844855136535084513265905280888694790812544289996720443929433795182616433276736829694335317010642911989125478774629920530753337379129158139266123743047855479708422942901234798384589663378238235732562770126081357509150942588679597513507262687230064870901533227580290673068404320248676872501718798491218573848434398752095625977513460389301667440365795306462653002101152480197104527193300548943953901902153143405331389399098278841604623019482440792668691301643254050828068485818000115239914959207032393524754591428223591907941316386258634503700573074608469937668315329065816645189608273052321296609216584080564461796047489688234617082839284282034495178192814914716284886403497869918052515987187009990630976519885987347230557698265554042147945808208434760357218604911205903350915356462319955453353462115848231966050476789515472470912919238124106801522739635598239784117263213320328753599084046545346225362506156560365697547685563342504986994727651438419504855612485969736055553577563256351125108544386894314641214376469883956808907141454713061896742133150881569705254972567548489371029212335265177202823216470409023030736191741732250631789111492327799483418038806064189210347927821210248494153661203768279700280858713450712871037468423894451763984944132052021434176210752333824546037752716255477371218436259027257416439649677739283331950646949210632552474151068049908819689647795010149360132490379223890507004410474693322690185274214897149778325241605817268443422953700832155746016098110274084324601691702195649734672765601916554551493570699556258078543961227211445024654914688788372192703448206862537925011578131964268062112611988960765147023036729247949288023782726739858934145274750403764827696176907750731581950004489777803962785589623768212749229282238550855827192270925193456049434613813348055306988827916049221966122511881093630299965327468448652638808629671022062849115326840499042762679812954183480069397366402226911494990919472291583715662767111017833439832757281777095027380656327174130149624619079941993747246214646256601097260776142280859103503474991784677199676611542835312304310291250296020016138930695313310367328281735646518661681542752436136830879924292111717953793056485714266240448256272863717174589183369717663728171975007815574547812309903661402175328042041871085957210660362762239087817035002014747489149879713051985261924993051851344044899307649021992800118604784139131425631302950062238400499932424577712229960122818653927353632747740522151224483233165383710035975865052584405425559014066121381369964378930943950827212672667179605116167158048702208373967251417958678611280746505945776233480431233720010297185560316903039881610100229743459850541109533751709251424810349435525978792521738771450930936893207271791258571367249728492918111610221467797930633676400750444363650454107493232248428316989408882476902472484848067743435934511811195918411699405902904491886480355998493554282334023708548291404820497868128952213316777012017166246430272566483017429872041312467439798545967885280511639730669872537301154011299440700822895168762430262714085823950145639161919251345510093651343884392183260165746290446666139118437801322579742049421528281537575500227364866296708333136922451884428910859369248830438878293671480922976296882617616213057341081202867114717505732641872318398110413237662686804117824099247969880721304722556182806140840345594537348592144044954307640186579444389989636460847720256280143087675666600011987606470251339237912044184994299414811050113719732053045633784032232834739734860645262518702553557174460355760357213622087959301893445829744745032951184626387864555005175069122375176103076698121987495826250056821736488091697545676476272116711607804749098407692880744440952042658676158176096679476236199077170629283378939962061724761666497846416361129854866300168958973499543170871116692773828414835639986589418621045079030542196634593442437540303237456805618571577282967852642319667974249254272788673634372098480171350964559696874033774168496639502905779973400541332786705305039090369378683277624485683592276521391293010848796068840856137401674848818103302974368618476056471967745605987942193121813208723283258348741877904671051401157832322080474101958653626722996421961114974874674886491997010744143456528277407703409138688291323061405889059813209465070358195082711000800550182862901280393012905436014701713901878402729519651672178058256801180731929238410531660151683262520176481227847113894998418185562852548895548748106899725874862096682077499597525584390595167559139157980695309464697331218274736231157226243129060960078745951250628308748504518737251811108620667664532131954532653677892598159774324053247773240680838428007341662599699407027269224354309150152755535300696390404390810768887763140136615899829953899583736590434652500649646041564026980514887471724079261470685244820650102692754015253460598950148658713661999301460198456455648104592942729835866661842890006713254605484380267436489015550515842396595154111560850383392917939904366856089926539470021451805661085361190840806847350046536114075243605703252332003820745065824954979277575820732059122310806461423932441719257112924938747992490148918463680292399269389925117852795314446522501639711222055359887258196320823761159117904276067511643100316292686522871647324927574624232470527169103688436283946024713661011793505826246404655063115737477474599579784919042810371830069836753214562281972857508362888965966517742001935179350092562059094434859689621658442913972784746397589803210878978804764976913181601182110996988754851486527977320872527490930652108872024701762482730585508350584429086364007475715329630946492090753127458799474207364788775993173084080317356107178605715079188153506172880611626720176835359443959235515984924561632938936385524182667472866523785275851172598798818212754884177286278056886066162260084540137919401581647583186310942085986993722655036017897486873504422761209482885798618670564921927172381594228984257867380362295766439410248928913849544412818987012574720235033981365829749447149339379496649474404017338613509445786371179755700307875321394175636599011253365783804358760287783307317609457520898169672955737339073350785977930661972780588433518276966055113746868952488536581596508465416567700785843690391474686688995994440603516387260301138601825588045742607157774298536752529703767545099429710249180978555375218343611765116584308874957228642734019732996585571511365932004591600078673962210816246592317168794451353490746960614510383363463052150102263054595500480039932121341325802104953557183862747353362644333282094111645345253217453578331696239286390217522966688442792027184137593643207075759798843347144568152888549415942622246707655407824415524588347830574176020801874016463669901466719057664588343002384876441987880943434869100135843988335824967947037560534663397177378369673238503905434744053070503738342764556230464436693301495118205193358106968959431732788095953470185054062316334861097668245888127656351061503688073874781230590419120907075604527240855999537031520437676207340387488548406882095094557720221562064089326841795623564511164947645876201045783853111564106503029364959698256686402915412648119073286634356419502214191405262114066814877858240907615841950933153931488984715385237681633469895243879959592332873910143054216879432769317281845500051308643681774643185395475400449830027518250168850367837102960447688360781575674551544492504428789286305065608489168566771464610915012449854796570813637314277340257233429995775924532114571721954619400130547802116543459048697956842236480800236617307448604838250613703844251865993044009542383437342997472814426486932075956494027332916898421105579904088338555441262771970620955993575276176662643138092538085774858364254074141388634870706263916757253886104370208685141904385417982069247015372889215768745254234220238160971176300222196002459985974438728448278067706746289623402401072359046472418354067978764223872245532300982839207943447935420293481716151331625898087538530144094041024500819171265205865462372466151761709674061220326979000073511173700580344029351948487650902827450052889560923122230063736409960474759749317428869227576323525462195819984688910789956089350797382093826814572691618702638560964765616381142320758995262453467579520299312602365775268247574320931339853494927273716952963205849016083908905449574064417918678508164016516171566996902972646863376682335078911968005872450241379330651761395499605936587048191979190308651605060723249982434641368112686991987430997025453346359374136065970549451285841514154748388586275940987227749153559348940857095559919982136431881986604327613381605973974515948980841755330564578768675857201660853344985828528262068355742974376808591298105609171382370380810321178945605161327711856585159044378195506001250965514614526043202697890161857966400143967284064684108719488926435798755542611910257038330700359492153795161702748814477879281965009445358281944153062338001777107487784863827383481076901622847809431799512598159696742978485605710026894692225740728371994868279550490246882337602409465338535832381171561999983962819993945787818267656051307917712038346363756485585300872740717367149203911771748230801653587707012898030731184736394918633254144657333774213553486890764371330145985080838825909784346360328484684404995537743692099351193181622349100011351400397989175154676565140507218544881731319874659425908694589050037901251094147998662152127939534287439807861254914749253784831807160880332470806587446461144218087841614079934483683974323971830292415724913874081698053940874070245264293564284531365790397413781550297072990127478318798956923591485298735044723915965619410299187882035313219208239459078571563276530795698989078353429205935857008472214786499627800766369306754654046059673608314666506386875309689445956389534407383835883325589039333998059867083307475635033750102755656463992294586135212481895422974160865897747886968285897634627367489199626541456186593476296534496874552594633493541891787215754418150800918952418718927326882302061453227641125490965010673978411098987673799118113162025682526366462941040469528328207742016219506779560410031712588184084779690680932866021117622513595800576098245285091687557847704317669427050649158550401046642822967882245277219607962176590508333452263285604428323700913468221053717871456450411202130162631566775887663886691726870061589845491269129825927130075106602390781275555387973217639641531174526462263829692406652862291134936669963625689173816129355763219450979198934213042384938289820502374953444050921621018783480301603176919296058770681743845004021295057654385006734166787500107947739164754848406589281468338977316030170329791645995603174136892397732147384776179236014775878630233661609008179351893963841712353989436227430250502851901205773652504253350229667815259374886181600348407257409096716041172232731833850905990658785969651236191097668842072958829523871461920553454266952197930004731598018166540379599534841391122787772914203513163285731967960500115515143004431133303121534320310815225191444215136320555421216581447724132345213333310083034641903594700394106838487601091001469217535663280333774884198362756728955579279410684017226747470943526627174407381349427660687903020571000125547995694987518970300639122238845361690477778894884407983982902752508247979079970743890302315914289481695325388740446063667575478939875212426202715824514478634493898951445229712389068811615411133951457105470906491580074518846324187789291700200751156316509471861837355274666922681232244501762809820201501536416436620729086460489571215498673125655484639115123041465587780564534877883889581428272943686654479401661733134601988102053438735299158748360950625621292125376438304535674117625860209123342692230925517487398566645536739871488486905129665661764607432692841002429266328153744407575545222486857492906913390611791133263521072721036556130564004388110637352341305274032295075287933585719126951830524717494070547741237957728207245297616616903749192254418345508031467202226335986920932647770442156736312905767700753250502917402670104656379347385012508573844097736944263258576510344453291185701463861163383481839033169940214830407129154933472026184273131132260428725795312886941764240725772367567088790856825580579789667659640993598777460926744016610016137702527757977785780949695558489929233397399130075482531812363093939483122404775355879901802670033184807270392655642879061537765183685879898427101477121490029933017595181630005618622115739748712558706686241988938320656265297073427109029213749744077149892805204043377330201052202151772582427204079660581083243696160092098550291571819477625386972534255606799956526339411902061466721045106602373980255386009823736053393504331543971453211256026136199721068051489473789328555316639699095238337991607595402012761789113976515911249284896343432155370615948800902131845843424274614738398625340572801444598228794152298491424454212021463804495013937503092563622576072513373938695907759543998562701085920316475367328969179774868559037815500585215484182543846366899606169035504823512222537454192222969483882349029717937862335358685649881792317418176281005719093574824195722905044083209169486541664450504466221407074613067148620113795951715630564525035241620384857875058210228035037698910985209141871998480665699482622586542342947686019394959051676049576269407059416994361405633108151978542428772015085374049599478978900181822775728896497493532852160108683068128490179256615248353814214477992880503323066136510071271651668546207278555479817317468736462524199642284559373087261289720576613486807925472462261810446594004239894508657287494644886304535662533585929931896485101091174558098434512749299733299578246561563663839906957439514638978777858266376592145007673258536885380072267461826776997373066213293428104588212926182482608457305270121625323161915318522059990999538022004043895698928762152677593293627013126860686761816475024230358043203247008471259768481661645735354281662644797102471820720102782093731041265761385140642422600513718501474085607733017021810157421156920032775693237006031374592945777485444051155987061676189590116221458449108675447761896812895284091243862525995595924335469996204623498014773601250841944614822478232375827992232138518577762907236937635142317010043658925788298332810517808984807409897691542657087708001987466654831141068450866491936884787847182144275409523109006894852730597031220003323445015189916666088679899271806819583338918313536954727895178011587017323638296044316180618148825709084603546953543351279159744317926709272508037855814743979259844851070208536647442767676469400612469495464431544733167444040365336419779180352019772462112924000181973362732824797227280969721528119034670052585843399015872544455358548966407714987726640797384125882386678461669065872499844073301930661099107123335458561010956763718950833537293363547197861221522235035744302896321773171266684611876276631192859626384717445970705915700539637963224036707279305490067729811244719047448726564017423271747692097162468099817503383513422772348234966354864999652752094425217684383496900948016065457087086016619100697846438978339549159774614521875727494429693867639554888006482031029261401201186631685049150873326729412048442159533823155795837689922623979398049577841579583152447638307980756303990593204236853608280455960900625553729397850002788751688441942460997853875602390583801581647070607333853910012278945167404411990922398566682221474285302257397118110930074149153275751322565030023105022903325071579087439446914910469017232783721936049127025247659906244946959720537522735472961047633272125260198121652940926383862952736578618335917906152146991758317454624761016852704738419603105848899296842433594546143811536848763987329635651917097330184455048415646457659318921807685519214050395577823963765197769573620347832373657413620825953256520932872517139215540107132765369009392050461387467288991783418846510217548010774523637548311776395942785913245018591993869096368691157367351819080135364528012150344362128363062409687875741169600593850052529073602462520809856921842914932132007611816192926891594814851239523646417851165685032567235314989080638756444855309494006429117637563047240912917656042614908414452391391981168488627587174783564128201105854432713711330625216767797566484508065983236351516360915393172620322672571370148223510873674356212934862113442340140139995435303223183030346508881321291684470858901259676593855514894370297205464324758362229783711908781748482414403872084939442179753509526573583231069017576475567389708291742938985185885536444178028041725249505234490998125426102538894073231680877383259081446792263188275268051501779625698435841663148186297346853891416105408894963696789831340568248443205669632425351429732392240852224700465601544622164254086667383035925452621398328568080595594037731342676942877913484558836719503829897198290168493104129214937111447835782096092513360635748115611912824855751903984991285441720409836252236031427906189593820150410988733676448453484391436948233357880204285514589658532923175561723593763951887075738455302235115256301157521856831601370545703290680770567837309690801869851181056232414661445346590824218281500890233009728140518117749171289981948453353043613960763596181747918280913510693783242688363133321856039166290610180862825680012046802533792809961986700457282436833287718646782723070154273902653615929237160663494407126681289220454739382851952818418951526510805146667781566088414102107566512070235430973631193159069364027938287468411371958083139499343816377156675243500404841952235916609109466882270278488323587762130991740261561019529893313449923232254688043759402457849816332243463610017412532350228457156045250512074548601696129837339041033088442852827339146643337667415857857750260739793236757480565478429266740386700321529790152563189427092433311261064103046924269249012939389522347739131645343512728249655808610620899662695256174240615308336989008179749818333128725010494124931915942467483790132154321641730859524319675789168238550688494098314828710378221931317512403414739537886830588694523668847356483758394414729578456761978758881633174226206020273524929493165874199975673994387314263334537285651929648471632339339867493689652110357030225919271765451663020940618593095533576842186254357224704876359712722354124999915407665108346135851284414455808254541822854891402928769660783756996353597061432032219533305835229200359333390037327480462833469648210551423392884784565258475837911138846232358747432020395425266691679460009479852518619193725783706553206725281007547531693989172484723823041005485706884616697400929842034250040196545980317888171513264241206512208198386571026403578684135291937433193751088552667641076715494521516262116021961967936096771951142790522728209302137341315099718053137921014667732856975604703341329254121012918901338898705972667465803711060544397661223913238458728929682413599970981219880745758223473885695552707293702533936685048547594453016954682036258449543709427615497879816056915744137584852491515943625329688732487279826681501798354759976979160288017097634501843963819062207895380777149496385588468875146064412945109754459940144352709877697443399907624099980908895871996738927818768734388834813176072334196768357622959864924036493130846209452451371817256438571948203108139190045032000550765001698044272858117690349918631416188260655236296561694742461538130821983477507080496831531278508576733772197147503890151743680000651745129343088666784542574196928263919833561652701340959226515058651072683022106257131749547425838483125526415811263726671256271987145581200752147407936545815126796818620844871024868948477753757269212893828043347610061968831160710137734637880295517739774313283800022626761294237544155725344182645011655185617832540975353838407248271183140621880239044062534103125066518882319565826899376714710620401452271542709783310025456607973092360998737208070441348798168615121893548739202290083048002346919746135308851459675247179260024611638189431615793616026450857439690857174469076877876197246361374432968673246784795453486204292334565153154509407789289702147854955478256684170044235391237571001531315020995534908444477242979551806513751184600410773389701008636565023140512573438950862101406845225679423678129832279487344282354869031402442666787971566987676009458389992180644403433697766514494141801412225339532412270729333358982416213111301172120188446461143896722339225123751227009829201199633914716309113180304374749407614149622561720506416322972872325957320804762171686128551650983132648060545334346450491646734263552656890621838006417808996603322629778466713882235463052158620023431447241436482379673894912418250979207989086191458024688470125407360946892471743319648183101284283641323531834653891133373300762333383511829685137758581513246238702383377338864459974311747223563899584684676683349487002961098917419663848918226411821152515247239806306586260926606290506293147271478593735705999295397397621543287184806594293591688170810039384497215392256954828266045182359321860859767586359301715104175015137575783018317485929973415867388108465674277176029764425788123634246893162317567120700926696501122711245719217992219499749721255243844022069210476996319709694569554069167420107541663332935627018912861994496209379336882201474431093540028917876207026249097081801931002873973101982492282610613331676387688494952433347430312411073476225833044137871907868259869039971547272352700861497701120126729968497866158496832472146012792191967843425803039577517120680902791271529179936810256079002899223948377048020916745734296102563587549688185915030324104280829939235902925026898812665459738197610951201477162596227954000222080975255922267998837192980087587789878704745710952777226621609731945713357859896687709718650097127496347332590413788150134061054439904715781154033963384612131669034715451894088508784990678316878649904799021714932376634063823805243411133062426416693560681395540515010950244195171755232694853774454496796868009880280711251415425152668446513383072316957572651941136405590034054625884440508615179848670859332584090140703195877169126257299184134499977227654107643204741870283267240667934442936255120251682408952762403692342006880581228929705200950458223421010830596085295024033990189716375210872773381710838846661532311068605663254869561103092722503962902071376246500336668856518665999708356136994938271875972442515007588496670691461229599703080055297595384394014045549177920860076967253333298294651307922818183371945433653444300285068144860707345602669177896190775152486542158742427838020321595535960532337501062473698590022292747720532169072312888387116772481878996978299977211611059619484669898753426530195214907218395988559179203012577370933253916811031177570866466317297336157837033531414713226523040511253713262492465770086792393460652589772897470746257466294908835830054767254213640890396767198497819751772458999417497433249537248868214770423925282593838398005837722636954004809406465717388544436450379832275664692839003875007490102476741964639180153265171674483667713515788838951593871828957487946030869829333237532818134403428720077553024155507724201833050713014762671046693812442652573309761952118606705758490586605236972959955828295140368965414222395956621375029696729195757283814456153289434267977818808208227005246284352221408315658306188845855579033868187345779113327098447262084786822329437842704471613313072050697302377010099460572242703672342934665453516186722079308611402126373854054583156245846771613463847228222024652749116108693237348920081074226553811891929815265362611586883571892165237082667472611295343046903027189760217227825519096908054627511431979787118849281882940022482055683560849945680892410726088709527879746379528964661630394163650881037677603029094336782735148631092020538376150864399203250827823594391471229945434051641716487713952930069248338485278848377361668216747989743679882271401838957871343007697324173209807248671132439751938694327310894318601107544483260804951072478172926418809760333912921946146013196457754369789398883531183536533921594278749280026402470504371349789165485677839946626766249833071896715958165925558583256520772369661171643769403244896696655773328197415131681168703544028204510353829634859836245845506341178377777933467945543677876801906141644336910211242540321845790622070166928528994698618587027705181124390908177706352077109489662921443247862109854766812033602040646494777647654695450585910860449190463919277908111682387740757891441508048191734814938951628529348743871397860291914802344251797621760284161627839068627139421375325050174575604506472336694972133470368083289042040282371076743591974195731966612070841359068182767939704938783555878599833111296398206975441992253662584265560306935333873336789472130343504079392012474038713323757394393080966998748686383084655921452240641903859366649503268950391947994839471907178734067598117912431052342177971189811409154385439712429779582573671175826522579004691626918105126973946458371594252981054225629143453804393368881738163279544256492297672015512652479433389846845727653317515301813734140155576125881222385959754800690634410346600538869893250570491810852097140106982464834811962302437404472863964711596278135153750408474007487539583698672001584639126684746925449540793484082363492168663954856950829255581427199694232302562090857609071444125649102758346262265106382838323190986223688060635194501865506567570848322195939518121076679488531921357787480113165394014273262992327768237050112760413610095370213412302901278580180108410329736730791084823467248760101309325147946725992423436549721829470650823622857757182710017000501024734849872101971949102747915463432694847669617935867281984502991557183340507168120588045384786589870323537776082202279700056974006450696894258439119584992417703139481252452793490273322718212632283384632494339011436128586696798358603280340487454480128670977135092754326574593987939473924419991743149270128500696497014049862755786623549715785662991823051524707286964122190509404809356895803470407939089206997149983908803765438118187378670531574581004967837180277736058633469769049337281723718660261767240096688498570426728513794145647020676632783647319767317720296624510637609304600994493480890730280683356703206696766669312698456361848908083569278120204296101806305269327704133330059365633302455190603982320213674843864586599328753831686684216446924183459038248560651846951055941874413706885038612447954501755994398625730025449074017127501911553052156067474681389128735036544720479729599243662389081300584710511585042267444503181571703888339107303422023772635754356394336038542524894238672168477822132882392033487587298801785822891605731842046323765066782274656198557846682102372217034292194005486774848768787985494550364915664985140869321047377756325742469611675823235192427115177819505973876980255168962515635390810586358387848846343937316354616102330483778092926379593942172518021787470766525697127109924734842430208887410125495439547215618053277000752409249896997873586241400315733062874641477375315620616195683222153340651968508925877830981560719353412053621423300512593308225941915577954258358779536477869567602736711325158671574663520867999187317432354916407372396273645469646991355377306613181401108776022147545043537552956359904955164177174691775089167790155348784793565478081706475711448120779420323239147126486971470733188951899182348325055436216368128691737609471480007686174671301499127472407957705417351426826702288631081409930187816881180839334338900235076721309204738094995907744901348461338794243324257265767436407934238266087911385655532829249005221284528972193652834793199000608581368719170780695236470857272288709611901901264823511030463711166973941649379807760164805817254366301795195236851028151004441593425546392150996540439655278582270250647473136248057003493938062079904719130046287311169285397371214591840548492056240657393603961507241880804009369133394832535187912046322837015515338742120636889557712537902738026920203041551819992492062618083689120515860872772260812018863876159039975423588866430982827828489067270801839958011229008970311107884552848686817125347729676386625802849382633715490301093516883910468336188995394090321329402762876519168389324636039187232691555204248985388932327330131087790242786999425386637759183467263703161700501962581436395418254948773073536480114780710618218725015874465270306168906253403682516770143517344805439717200323946338978960763562972165209341138236673013036146592749888338148808043372662889735810279808652747030357938301296299482024689355957304767388671767389766985829894209541149070544644783445013491053454619466389821707166666570686492775966242705255331164831537746942571931301309916683578763882548134872760798199735935040912364612698004431394703560636090376380599248950955859116855375878128533567775430932152149650097253976013869312180899881968359512724108039688243199170251604702237569713345509983732109858181558739628578353221136537294219538336062934238003703924362091199599907364802587041200158904297415641118146790942896011986416437148685369624055570383961960665866348743904129258339810926029300468900041356729400480014864734742852463421446523748659366500325146814037819574781223705094820181083267148136627725958822175823510299972053061679071135788263314399735203642553099933766233641482359314099666834939384478641094851307960726379880477917830536001757987325258843015593130449753554583431822545977424448662477972045528396795775508676013249553875065357625392413025218421158010294027121513202870483083903765366891232124012172863734896682367490322065660477866341328010432390036220240241563028516599970408926053022944579522060441385117848444278312249454654364744221716295414179924320919258462367877938451027162721893200394479436790458290077633276954246149097239550151639979546579760802263937212590539819357200482662840151540527433297193985962368722610782724330845743075422002061273113846208392048012015876068032505237745238160319456052393526397838774904443584440508756627773669847997870415940058361678988872112042989511963299814625859936619160617675478440919755706982579517984919809610708182581765364537646992569667910875680323630134790579937918285077167199249889979520242867729694190631334962814044620309204528785922976336232756630547861175696224833605790984794851185679709654248592035042193123942192939370069746090531113899945050520203834023260305826314827101514514028500207107709523453311481509340679261100604894824500907357989543285153250233719303967031092614857409733074096278179743629764218376587497200329852718494192591637249944839540674202073629157995417235862461631303387924971011564682723830536554381208207770062127090433413267805267245692668677173675381497610061939620704835777317752107295499344221375392003413607243045300879449527632849453287440389589439204891833621985776149871517344408444069823977952734052694585566661761915633531291551377280110023477553407882470614468059763057683114765203075633240968374498199103488255088945110978580336577418257907144259990430854233620493311176986661961869572779588814714212236055734329930412223672891014151001955199977592713671905145208694697721643482185562175569514641866253116581338055969772121188797716053461459128130108866656642010031882805880628312946537559422423145778913015153391805746992274522669142556811721546551416188935784138518423953575835132412678236167354136897129040882979014686026927253984890064103514670710002995494012365482330380552845882565131575870937305188237577541981378335200995611818744271578448083631575273330699791592794419353477103997369704567555236153715976785648551164134616754704626165077299497543566252254949837156933261801534600834813054807996590050627546863699258049938086861677308690253524498024910596153764174771951851966836534647040186943864932094200703732167649554833474216641625834495263627749451777478948535324776216838379202723454869852991142599810901598933284386892384004259131164257631107816380040666092906794568084105086174449096098627931862064973397543137916532506116449267582721265672750986277272042760198029986864393924596135996631193733342613361043055292957204304581930761942774464454471102114091597571535050395348676292288476359984244149935449079015384387997528191959795278899305201665543554569936708593576358785196388708873428681951529147993717381794273204916341969793729223728184269739916011175195827283307077990445238246402093441321014148448129656304051156914025441101640317313159597850280852466148224659904252202822047029996107739234858565992467949898974932085632669095984622104652067093051094756922392081256695188216122629994132909127072590212411907510600884660032297987424259396541457319500947569395515116090846832367074957919961443417617160238743635742578847707919358146016666818032679777278751314895712493682225342076047879181469833177520309355214239076587031166947387488684138206916933711855471632707027502787172117824802368291493802843541740218217956778612975757517753779461184930245688308054693198286434677324796880514334867539434052928669597609676425858895328276934724288178745240637207192519631657541580444756990099798639701477979200229826681229298697337148256142653181751192053707349730651535101904688146609136912589452282599552045155457023802772283283523531690600228741466967257387638586179336917806791319101514148688685823148725142832251622512467749844173445740957480926957497506742800352865956740536862266746610893809276893217379941458761985440493819262009454488725329949168251673080108030196195317548806821790116386501501574813568135917328363949640153107844861141906316261625846179193261363209581592153291753910668796581600779218817673368566804481792294381722190821921762344869554639524437937600189207791282498057461958828554992210244098165744105119931529870994776575584515040840583568272312449103804387283629084751202047955187690517958617985783656477176801727041920961830302963455804613413533790967378923301195590937546217977442768574075257495814460748405543392450643774615201248042985738988428697673883919331653889274132036039209597873669834136340708356702598877741398220354162771742649546068550859132574287289648947356430621067295565749401214101151720871795137148905462008252931082371527335157297024006406564169933491935964901339846178579876379132566970487259444786784543819093824764913176834659271458469357829076495519847062289293591472968762244255221655121659073710430463649123935070688042532398168085494890793344507495052467595152012826590373085042887945717162495572951557179386567384852640565195091719038733097324164900044822190128190252751662699916531640914678089544435736599960429382926241260949821575210098687322318011864517468797273645737982433462411559097230086892689943371743795022788074794629972961951165498328751166020451549126522401172610001165312996326012750547382809519505994425166444653352362175267751112510054701289076857967646705831611169535259305035780832508029101959941521398665736198969436392787364369909316645559231226172582222617772345689098899568048597103271181875718436961935411203748081093842064724002014689954356301294207111279442994484171652473705549454042887583776303322980283808856127919566848254696602605029188693284454598010300054606750045757120640992134216992517187015368601526453067328477845438449153705332769041163975523156529267944568572658805299575046688233934550804850454318287216772429290911700933347967334505766687641699853548241586877735296489905875704027695800619260695487812167776248865977779601968804418351478480201276415647356052576114105617183391220771496266289387550743474068924111983304164482747628939324019668271764139894785641467307420833276149002944372010637695885723602018424242683895309211494475148743122121271337437198121031033346555176938070618727612123325620211660226701100136427777314354626753652393265396502452914902512289409117000512725777547050937451798705707335414676767516450092237661063923391659284777210274641820244008418413220514522768864705805258012513879292981875271791023097355594088293655328705496627602200101239272852349242617927773959140993697773826265867301638971959217264959753145909983255332313608795977094576901887885966341216439501693069846099647604956002741848833304083208999348761782312797223538781297991893659538472693929894990195335783428157673555914137500593317844365863432281711001003212168358364811786674208269200300538128388694309073492699148622997882228726286520149472838215678407993833337250172728367724494181666163228952002706579327192848314466421592260380154575510454163504474045596032007519131036747880936826248190172528919377675062451051556000054366642288545077853044133604353988126210651597089974705236910919964075083833681492583230203488272647148077014895174772963618195129019607550520157164738381179225877079921386877711867256930154911978819847091473996494607039698151333744521097872255824649708690707859485841209144683779541519896766166834402771905745490391879794458279460901909113783596550558784751522883376634046304676459740227936753631371072229449605315337325206250527316951679512713286097998072237695732164857493756713898732069792254876325712478648287428340108043381866718315791072224116632642314008759292456432329784546040918810394133567530111795431349502862427965234565174850136607475141617811094166252453062007701810243711287589099294173304779049880017577983862462764367000035192363842312929133461849002178565697097977551644754857415417074018412526834776006256112666149232607564429500830569252915584567693009563766325735081056390426803260640546140093720341661672785012367484055204327136647889699980165884848819448891935303306206928053138000518893486421857072359536946434497690340674990746118355510435672704655494433593748543315440592538831871379251718670438276589569013625171418232139376706181276447151902357691639674880785994812750207563297828302037120465680888257351864549060133892672405882214226877622820527936163337482330192319495578649071233524837720658789671066539926585964018695620004281267498658240845860361728216251451867809683954893880935256903582642438427225366047501797080799945546535796475330594513901690915603464078300998270015214615502274485679068730167274519547799497924893117113494661651189364217610644358929364989138448790086514089840197979848765813128358098448715053019840372315025334655919512183246662863321953274121402090888424060633682402215913064225343501160617230980987672438960418889806535956912229319317502763891553100324692210950284981910198214014935886604097100442348236489529511346554241285393592913971772170918790511520545974022153077498761336615236144205683604550580337566013604604267632278641113876080420722460613787210532014720128205116773471607466881470662964684360845581553930704287361834592394804743741174206107677164629931430446988550684200815227346295060724178334384787949279120873775416933244784596493645337000101823619770783602728851106953785096631700562171920272129609867810879697632003894382007909502129201003541478815899329836161847914424937364373963064891944149403749968570961055621681349401607946770442007552267091489728480300866490168172361307468158011930766166820531944280506423971982821491828900796839965129694998181750116367569351798995146860332560642251244503547056102693468275743024343636183552555011802173137273279721134195695293055770114706734356056803567414394556846940854593691286138930257194481707791965827171809064943645266008229629099795702562848554416732707605750511304380101010282603412712172460479947816599368890826028018243310260515326193227924311340574315614616428325015876988208780488499528925894883406150961519087974876472026472119674246670169202184774055811106361986421518565539890637184019324852804771557420029842780732769876076189763763099846477731674147885553254938721769808336920543943266080562452162482234612509208635860052371672808293488365646521030153449243501416839145044769016845083193210037083789347603928591524520963272219490409778588995032590928024690123202110611590565555007080939195453615352363976114865110732908451517774676920645226109273898568989854274043259102217154092474563573094856896922187019877406068094470562068129500196747225255197382643377837667564360102959514406852822364002378387559330618171690269464584680552306572120442920567784899617093832141056481466822100175057607509099577907383676643997171503230178674688407114801880004341790407942051350621737738747055369251020944690155538041030135419988810238015919401431673987882640498660644688670020744890536528056442663264234127784880433782914954577211372622869655392405913619414956716090313918574822738012309092698752175202612100758403538798370455562792053913728290179716198015561743289165406923969341995130068702037665604107589025444535726717814996721088989180736248268741688694618300938124842713609151142904872291378073323625801392419237573746830761994290829045334130532895090553373862609278967023429111273075827032396108563664582976774652125305314548151113372909936689280807642043760377755838351652391165387839772570524841216054461893457465199986335211336726079762654899018016045963984955922951817479561291638230606915961544768791591780831379862928831276630067079811080214897008248766179425696530410507604653569115734569334622850013751917982709726804573863563027197065903777184792461017334184515245852564249132681757758196566863431957410692411958761742884444164804663788982669494415098944974985929586939833663709452296246321906733793392273837144683466243144275456560932767931423933896542744634119396662331963422722922292567054680900556487513065555473050659647369286672571005500447660136813481396116703259322538074549919795701288868831873756063252927741625204801094802178448191788321467406208452390080396605014314254154312222762370642231331272437871582568908742019398935264246893429333280508613389468477692912317203237970007522922427017569176513473164551681124988499835216338625006741240538522830857106509285538586270233168394889840603523229804263755202826186622669296746462987531773814261443404182836185816489678051524170047435764389411327299503300178812906296615811205201015597631892510037335243543383676530540296862980293763401737862145623677450897210487250826376607293137903433112835042765391819275444719039909561170772486163282715147445869679739823443573775686261941405151285231396137905454196815720731583310613490710741022405665268125697958742030404065294897683410498081721050205778342514340137357302226998387873999471200938641016536797375687445148842612517267483103988754024791818316549109955505786633394676599317382905851140006579146042199450964810597334488203926697266538571801890641535827353169505611136950092161955437927891070982821214668687637773603302530817240966495198799159385006068854982795643377462024785839913999180551356505803335097921562179808712656841055194571803825028240458170054618114696118152324825674557928953413185933618765164814007653386651957500190427321096901559601951010334632968232945564061261239523871136121768322926452624036192658542433374126250765130108516533606368732757780645557482130266626230150552471544387604904206952334609563762843323881298431291115444190298140228338917560949268776638662334023038837629135860739839104400685953418504591555467977382959363559333691433651167532172616704839110036715523923750823551907637747757676208944625684378260860149883782289291825894660332019145848120071971261743173939272647864052293656149129035910434431579220502677076908507007806571081745985594453800584657864574235373919800993854446092323651983850716973658701342564594195979288273615438049189894154516207915889980269840629558216950817846652117668219183331916000770433683472448919286330339859748093246729721575238880631240912553106939529107601039753730847541892006448790004102821627320940983428789166734203304059516589825941420781482776943399397741142705430785315239609795829833088727726678574440873583304332546312615799220377606040481067245914210070925938129693359029633131861305851109993133278510263407955207737855048462695486375091568072238695609580720035059297613825636015955930027803246468091960764361023996006777774517588446597084860212107559489170374743137616005880777226983075894505999926880805807050769673599480575163176843842295161210601111841615204770148640166030209348306861340211811205276270151773867070064392797788357284106781509586609926594420371273172477157210882789281076948981355704400283537300445007028963267454119660118367084899265412111538181094589518905701799533352494760765797465560676216209259769215745744311373161369643901408043252137178266053051091665140107350543389605065919832448423556327239470321868538776868622451355461203908690829005292270926308922404414217276486539120281576193181652510196286700527550287782193338244442443582738103041449765309529470839359644558266053485157037640495331474720565640702374018825060586693699748007769144551851236216651629491059965653955466827880130995794447379721202362503144472476931944541682961936639979568183282078936768797109114278935572016936645817780881478871046226312715284338443779231561646530932483148650375616911344577325575795202029660296969572110736614347020400462253814759585815268571258110570946091289439612037409457170105274412475555880380878398487694061948124217376248496379263046120776778267151667344626127390346332119008073123841618427675942015011726695436915271334305918189749652463424920581782404259017405059402884764157118809294152491607935190226898106684536557521471729297581514649542876964367712383386469620075389473868108505931228985920578213358859222766471963121542576711680967583490650061550540193466316064470309849705838866858202115793427575636185164846132971843416911460477345293002105923461576541544032017487795293802266765941562467399588045946436356069049184424899707932627883808472828871614001787247978330846096073952290242641822315964853771610091352720212591418822336391449998395030399678024316914322266075372726142564955571172345672709226571843833872312750555933970708750501666518878333780530043034236659464942645322279913834522510070624962007341617277996257156056850848066769021057713894125451149966828323998386154620739955814587012528668328699578835648181237485352111323752675103354366455405142218129101391388102844067330964153808630584018388701307964119934061049373444420632291539713862600220285169403401047776593269922585353160855328932572995716214873379417724903533018846853734421548332500081933871826543148399832564656809089787988510105125324005484575404670339639282441896005470783129027674003077732689356168523385339882194875627585060661449912256349023911981399063708267954696316470199420655538568845533646514182274815486044144480928687108807864845849638782295294625581140470741288493301630640894172291359181692587536066400028673691743554912228137403162682546329166965205629273314029294437393640540628317668601395633388426788462455260325778023837167912136961176712346797105061346334822502287388089947600694520184808912246356905456817413337307565714972177476173228511193469316122015368900624732585042997154827984371936407052759757694795892032926761591514059609050085085197745895696871802805673516068666168102989384298107342611490497192074039427114561830495168784891066286049865048059359452584028573795565306227183570235284161529853307956168399562774005150668956338405170132674433900672842021596098802180870633174545405056242557475134861808447890926739056260684920154190072810292674305232201391088923338713753744992579733963988740193879623886357888357495929050491789708273088548230553878388629529992510652735247185348573486096201621958572778052405403616261921530342940781772424723125817508933464171340782099804698069540266446356100797073032803660525703459940936481290696897249041788476682172861070157852752753708458610828719094410519284943570842530171291837624638220500710992231778427252046011295080873718926486764995470958199379665739368855912246681010190947490185291360793103312027882118247824392573232326159024553060588484275451823313676031923974201749696523401017575327737966173696012064287854997481622308878775491140579362615757321060783479682114676537555313926497142133826008082158537314375004068918258351056491712179347089876527810603551186268767158157435883888563730590464250701128202679078837877753146960698799164416036759149108214439561466756659046897809649749266796953314362566758751871596970981612625959458282927444123272476683956854307587470473282747601068536673843752870419290008955335450005594955651143720973162598687053723991458050637308198974413062814224572556046048327461360131783043204372009180847801068154162905488368522558144418774371331661901805548143430159158924937418831497093831142796784036505475491904382656762717628763587229218438078079135294717400549024052852485621901327898977247290134885772191166628432581747455537908496042311813668338187762537402015110550221590708030041540470453403908347421803624478143887225863289331816812991605115579936138263578016216402396585154926962264111406002235707579288993759197449554087000108928121191579606945816816524965030008090534628402386141694913659605579624070317976971432421864948345680928645815480686136502962683647150662425242568218642324173874840774550123804257255694990008479274310577865527986222256499341516140122711157435451488788437455333204062681919034244963256716244993740124148439905775238411301438196523137537171684484223216543115944548622149887396118089082296618517016709102758769335649224822097611475619094849212463430849341183396976508339852808459249027422812991993856690701473929419810242732744629608730783800648317669534520815801844393706949303046129597117289796767118442664340496701967139028313960473591530988681061642673929796530099233000948522546335907614614569351319308593107565116219253663689671847881754716132474019660823550936542530255674439729102347205230291290451716120678270315607952628292868454911454644698590812343068197153378344153613224835351781234714138829582388789482546453960855143892942476904600881676346150123051739043725358123242312905540265523203260987485222191305781022783180329477425893025551399389690275954928387159250499899481364884622779272646593909595221453488633269120185712292350773391028194659908791918594406802211637040993092763949291457953406336898201486732271147755689216765527435867626173629961549994674050845365857424853342707148968652169121867592651566433608292354233079583643477592934468594207986107441807237032357575035934149877791326378820165069379981670737031285162240407557693431928257173528438297279379892521015908784305997420950638978669570402888817745709968849857613653582191771185518676296747645138141460023927228525628094729922842429050191396800840604669611618279568092685371544101047049151827469949308772033115948434069231260585297856023055852450275968285536991188686369635179499442226829978235127763237513609477262734159923110821772510304125321839164019750307560311351427061042364584595305753897558357977825159240903367206183377341868114466144531117859147247006006423923679171415149515526333434570634898313977038659686433398442269023182808533735734845891734550860806494029651140614649418248675695831600690176856438483018935761528511490601720619846118152997778175813118241967524076294442579046622559297678025791892440777348465355722754495736944189642122321321481594589957354953797031057148126681464204428659488962074307463107030734720157745378358117448264138122996444353570399625802146896810153410335289041778092948153972233219011390462380515587375534020613601491813314566725898661915773339776968757843846223385596168952324973008092777827422382009074072605493089239055604179216204936532621085329881688515689357413151490600943954328413282342633372227273942662049547545361074390832380340716904144308710015133876123674836795916237839789818755570812146484223666187149837337255937884638758796673979291625378759717502354755139332565581126723820591303995548885032177893630188259116428862931526826707904614005883209974586701013497643031429102004729105990324926328659028836953894382454916159204122441826540208449467984442990523398828888508262963806044728920348776967392070007758041249957020185554967969592913026449259691078277875438062272289531351227186260025702762037318938749056548612242570454420267310922224267094396089247506397893454888993102492728774020027906236982821542134504941262545668328767733960649899065043438217587862142311152891770008724848069733261590808509861340224590606356895473353688190400152298924760787109320942507496617188132535479378786570473540320353338916288961626694246320630145254265945889813292189663906174142460600132697520540426120362189942737776979159701335911996112973546880826185148067996633737127124232251577030460058983182372361429362471262259910398937106591804569935338778821266132915043391208393529432034913557702207774406432518453090128515657842455820830494728535079893540798202552575819126010257797930144376330536212807285718711012754325759767029519470341525047015674895374644217404077796834165318211478301629477980751239919591293317769384278354317642407522187454664254497786111405656840169374092035287427591966841270401429384211140113051635392868755856038377130724334500533826442731043296394107836195586999182985639051995985623270234091215773169294157088057326071658997926039642903125831407050498166329573585983413411375996799425885545803593626856513528688014436085779861703210386763864977685457447253894299116760172948630121635289734124283147980478767209955899373290090888350485977374976136628955678557452319279545248397709139640717468454050597077634926846675033205010358967469888891312515425547184113493081824405770290637072140709467207660340249223338771885686439490052548853799733957649772200918341244469640334813812770273064989505275645719689186555439425390034212439702988673643280616902910581656958880805036747301861972101224571285836165924207325399694673782024297395837578910153969832342205839811025422115110982502176869281491842701194589707104018344911513641521928691918355581747372844543779891511738556278680916506443754964408617576087746280477459698626092780186886914450749678825037402096025524675623529531133460428887616952320186980100800483674048078779090985750133567129232192118754061107375687412902694172759629081482706946236115615375755854124933250237684695245114908827599080630302352080470215281306506217528662916967713461930481833601424395799439474212728980968793274375988230766908247585108948308938848198013796660262463382310958080101511224959158813177225064199998193727784850843764182212429584220571408781606880138854388661528601397861981609374969582582886932134888301286884758834747013981141339169380193932315718039304142045139161696029349907285119407182864582266826091998920400531059985912288263942797250817249373078185547697034496560905117178949726920237959737158013910002410333066876668288749762997828283038956301442269003155712651570647496009995595726002076115860312082986051103008342015857772515062284352214463156819940876890256506607814368544978361137769988246760662900821617466297854998281887817967123817331410622065736382623536169612189876199150043514015892662016334186636134864777982058654122782417995355625338179041512091162132710820049921504023168853849204292177389743951649725837479837602870191661265591559077430554616270803662668906253766938699090662501128368108181282978290646910637030582529472419295657113884216090394278002711996484630357580571573433081193332747405471949944729544700321856279769780586914577183781402969535285573670265406187412825846792548724286044825345587222969589310997539252113656836940372725104813933930158483740279437179914475648186457708973809773883776894946546232226896818849474970905468136973285965128821267912027713954347563742096524460301459401728173840916112196173252845789852761811864293553787060925763754078831288458301982901905327220127639602528300211263876801938508237400577403166659819406992029441347296258029831958888840991340579805315126998410033072277431992997817461525757155790131580117922673010333008681937047553074335433765897840451183404245138421439148775532110642504705758069751809949646061417261910895753826288233851562881001183721985478745091121705900065376708701989200309373651319470643524848468855050056259907398267695180078797280704578270073452025359175815764607063894930798838476926676117855254775486952212305706498167519186040241066841032701306442035199205803757641104859883896683791634825436948465982920695889782008023709544420380405037136236731192028256554699902047394558331208564103887825995306357879396848048504991017539998389050645962055869048693431678867405700835360015779160680139416320799152457658154272473370408243088641114040621429702126917661926996606391635063940130472077196489293581810112607985188447122029963805518984155230391460067115491724899877639787567130709116116479965398645414264802082089018605771645990007559783718147989754626548451034263784686060589623923538214283573322294643620112531910905760812886185006351201778927448282540224598737445644695275807268639817575553181536682224200409031168586017155163428008720202158136220447507232504139897711860821675103674190961919466996004536936275808793288854190851449485821997133702774883906478624955606451490199193836036697046069240378605497567484495694014815237803085256427268826793197788602032176786050567166846149915948805381621367079451114666274733338609203248979350837276920180400443641692972059395157872327146529063920851628546182401715882414895694048525379941749740570403979123030427875682591628260975469814826195658226851401456600765120950759840423939407444386156600993999235602268492208063559509849939966065543670335936186735311481408208084303484782041382893125047448678937874393806658366239370350625247335959578546021066833194743338559023150896165991031718205779258298156677667856585276318391143646676791815675091376809203800635394974004392420240860168053080381598860365008317866411043224405192832776732977147831353851268337166442250859805727901318093843704698345115554261278464347278186743551971513950894733145424627975352740349707731240592099877011108090362353858464427431891126215363920263851700895155729502765159233939856600896037092371612587712772347113535879862678889263443443766589560269426087446290383408575614083633963772999590100856796126566554694556343511567526875238867991236501514169303482150511461568814738967452361391692689672018051604122518514099379977475933943569755165264837819983214926352396696504951509162578551420859731722550423670754733405695525740152353196237092568298563238054869130794888719137837585255743204214899527082465199750475935913396250476044717095475098982159552325574598875159940334161414987808282537423021209608196211591998976156670356913013115641540173868619802778843943107433288645010497427260294518465318520249340908224321706661791457405301857393746089325955445502975083721599372259809343969579011265182420453733010006582176586432785130505014035994602720218433515014387737878196775642525250501614549179939783351162507452040634621175445696715823181855402156880065357327554663392763507895792724726255380114696697059177374676387627712177127889196563256821513512624785091424412340621904711972331157906755434930277505802180671076136177918194151515894114899651164772865191531339966939588628551811440675270274030318104574752924482459860231316196265669699004030693545811114381868292265130625921315435367641679760255795046257692273081994847403345103870720180217884418178193947839308207253778149292958996691935288943426588501767188859228875766735238463087899653912201990474853618683096357768780538392355631630022544365028343509660128961647355522184741203864285739693636088074497294955138335625725860478181749704837973115147489699495404945571366503932323830738641604669590299784643164193895955037915544707162599804421063458391240659670817692723715016259064596339995307896463596009763849686979106477996269121634430402004470142004251952125339428635342374906464696408683344878455600866986329914335703049150565165820208072245584288619953928970870644535181676719060246991356684661400637050221035813125016467420215229729703128049292166290486528971503614388775368189009577451720027236506191582435766219492124432530920758757387390152079032720443506921443106481460233939327928116392933608993127486861871537680908972335462008123561110523256152355880129274320062077729183388944374766831703089715482749000210045058495136110208127255563475767550601197562296909215534261295157058080374684684859992685800610431989519043647248147309104501599789648726267096039582728674648555142162808942100518125393901465281052171556873190022552595977552542351422760364937790694935959787372444702872055396636572722326968309115188550478864862523275446157068540616608844249195918776633412692353940755792366251172827820564476928312563228093287620830367397355110894676679520532862114491004103726263620627857797817295481012518542068312402880758852649465082251477220589725884076952885586013099489311542670303297195119995388844511931220088072907078797372954358846573731725751594236093807671090909784248921600611415462101712338762789178750566385517053858277730041959434640413510372883382833904464012025900628796394506660015097711337595419362078658073422241352646381141968450983035275883946774432142013982158796357328625206436285368556285228303913301946747258319200094271600569837107093750617988346753873510644588853456077582407221121818545554187987629904528224683173627215790874536363950184786367108828974591123158440780485049282036586144207263535492801962202888406542788438947200125506100707782820350168124621622481565879180105358600028483083597768865042540204015682051136315082117844983734629731634999180799081354962101840292503764057802804786572155742550507419772300313568306724590145406451097909609537124369401765878841265729549730309408745796680464654837335421855465737367005192555094181425212175844284306843992688700485796028518017403463508624099825443968681541646204137767130124172987374825424434229798562826858445372351213201460197256075715494362807805470541744187013127175214510703186914256287185628212612905891104842963013113010372555372735079336917296840379889955469448249760507935776095860485644157362154334116132561270673011665660689405195771893478214251400174733380329721767646314120869168644173084892332747979630112227645915059490490596342489341840117320847656938068503789379214686221020721766229387740227319207432666662547473573525409137509640772143148492501090759729982167191268688483544886390948711494732597847841954920530438595427122939241040245560500093131149324177969604389528915479985743778521777289253480321233672271420991715397720037280404808177672768305081782048994913263674888959845027675156533738656188722319197748030751536390081203189182539724977058082074546481752276842469433933840956928720470843852062339468252428016403953177031277861098018321996360261090783155797829348613597365519973044904685145036871454403390424687693794818367082128160091933894243736983954013411914277116545872735641505575514554084900311649416260110649429619514853174579395412219934882804269182416469988485999410820108556044116570760248452534241393959505864131353250949431710555553244729948457201532340150834318083725675102320619777896247193167085239533108315108804021899911112385686544893039165328347335679093144591667380016252261747270638989608006313766996521634796973664840007315923539307491118166339939495735640850277610931343578215088235272250308414886724029335416589754802986359817846690588826393999748886025257595943107320723611707713493909585806648645593594470725114149034691081711603862664468597889259303896963998759588134347612261647343186683814853022211345478954990869086264325099199586520812221085922272920384866381122937572402024219787137429806282162389267655002825911069920582990069625224001908706666652506369962695713951377486169997901727918078041754976610031230750300755526093878574990311234389599470962612262789685743944702722681658302133748230511198147716384251201346390605102054297633299128312249843162252713696538362855000337499570987511125432107477576071328338070241769159851779822858493425635991611592099952198167545147037274591883061039027002778051353257501802878973186913421905749146827728393009796127232921958990417288548631909633228964127077274123600669320608463829190434238554380608372102680370368943913359414784084016625472782739787049627703524324517532142599119943532118163336118573088859957011098833766185306945643840053649682187129249005641565435317449252048106336427183030603343151798269501304375257812166980804436843350572069559602749606476556641649823489028526441069225001218607011721782169812335658773261146558810725671880331582366280159807007795646359110399035013989609435020743038906324274254455839774021348847207979291445541797015084662140031183977368391755691301037770190857507125559168840771827748114819730313970092821693944211622270257036991865626724104250596837787253983864267803990374171403837570855125341084748965686247144487801512198862737589589330798167387156658811264737518453396853452031141984050086670288340290596865987572500350334041210320772027106746407884797331723289063966809665083459463152821312940443532583960514997813441260282218848084086081220667622365112772401997568354532958211508353366307743122600521263678748598917937007027736341793527116512436046636362188279218489570498367287544780778803620047865328741456919509155913951359235067631016365903935633336012919064479367331850558663159004721159365178201273203534821298554820006072811520549704202113324630202870564056509196885198123237544649629673524236175656400292474874641733079219631613309409422535710723496322976512546094518793621191456844898405630309844799956283593650043077663387826423103175281678608525591902341252636588953781767335338568055049945315607348273898652490277318980442810095898595010792888689659300391895367677557196107382086418451507639405614686922773807776900303788437298892052099493488490517299556974066402429311343621752452854488868890109259290285087011284779770802488329853647738140857117521252338721267944885839080389752041430172962361980723953947561433499504309847150789063662514248866905629732054858965991278819290996876802486703324335328734237587152406542611969324730855666778721726050097400599167400176206690891118377543221453413875534376550824137071868108039363070754944042813597874631170914607871131108937933956120777714681423076755616084985961659989091060125870003563171945701457197550100061438583394850498568209437729036771676887831421034388928249575731438363631142413034992850876606303711851239136689024890549273685860921350761399825113678490908704033135689509108393903442410526737807137938493768567867369458284783633573783693955895738728875926741003836399812100314331595304448957129343344585661196618545130641729976294034481091042441675717166871620165590319887184004267312016951621615116278592325746861077993952428713742769920210589551102413807834663891849629997192835749743661210466589734521784475171666943696500310761635433392346714454439634371535111257108593683824447802309098066936510755953495065937271911166265726555285687432000738331932831522744762997954762987098548899723151876707091826215533802114861831069082058478444959582682372969828665433989783979041371953007305426148336468735736506684293283837452786201520991286748325368889356725387771486124512058633164114450711316966904945606374668730575341866296069800871587797707534415511111529061849705400075956744615030318972116977135336346635193628568779870723055038218787055277742369350335734014247736853461555501065103520556935931956959392217433185676816106124244238428899803590948838089954509693979963233490191669066740713590236119494870238317135732428886501979971141489552434023270146310824506571004228645086467709836464447033899602726336973256418527411453631427042016035324606789073378052369425593574320332152516984963060258657756769241330882834504572804981402823490458776103874373115292055840758309542348260076144696537300537458946038918365917125229141346276385978173079809318498036448516480410713474988752451939436113638289497416430683643766695482117058597388298424358137933426120937685684267632438580523800962018847911666242174366333788443155862981039134419880111049057134603255184596813858978570968296997080802361415741481457674007234572988663687036987609665736650211052372570890586412153039245078132916152598952501139850652494179698060916164212104834228312942825761381068918516438605929584647814118265866943477188362007025219052320385222385744271316320796524787078316689308171564843470917990042422187544276081470878000728246361508460943800764447452210600166451819859586826720383537326870254613928110927547884435658586889737543436701863812883455038644925784357017923643831012174244935251151025553987089834165251990181908132148964579388460867850572098994875347388994590967478142252915358348647322655812881515052198627126176571262194184636176812087807642300366527855400015685883267326193944027535512668720197386020631257924277919262131777508208182911507757458002609303481318173799002177479759276879331429738137581916888958604855973925560467510683510220093298456323288431128165516438796412701672792605709144986705422041152531394990107464576213604599413991053316587149563828680484206625028123608917154758108634388726788586501719960902430481175233206793219544044856768259948894501845729857420781710954753537069193427628903179526380098091109812012475603247606767284241293477653171642003577762972166084438502552496313036213866181084146823754399843995240241506277289785897099673189368254533707899099674399094927489116295280230254956153563953279490077648381083185583122964390229708896390052786430604596811061598244881245848486401032916982365874196326887142520357607738783664226384346164718624480691917704118473283507967526961564306149504656756957473793434446870256965111028898232286604328740433429758913227682961825834599220485554495260531864702780898763419370638330155009505732792339307961642859113055712308926916140411431554176557397276306098313007422997188227734286475925467686171426552569375694967729413840077772729080112218568345493193434309905856201535130761975217466154134851258118082531457139966806805335851392963386508040455061639823606722820115367817992978785686107047140291343979547958379511946042054420603238608953917515798594470210590541924128082563034477718107322048193260757313590225113892284945284277275465924804873025725976923224476316691970439948524840643164464358979374014594810633033866073120273296872921367380300535128011051033224849175789725458818422623973810044785032026399311732029173389199371967723037073058590009642521203221105896876842432575418575002494795531459392237630098647188052138025308092644463836760912044400392850687206856063663808666407236788075044926800908708411338691666497809772739982638490625262077341131694854766517990606440628068708506612978846727937085667042785997434144518760621354014824784309784881092094511936451684953332616976531755886880541513710902453316795992076067354844383905392401460243551035017811716848868772191083596620929535990176962332321123697430584469916029848544583757825959803021210724634946000851989401966431271868353740247023681901345546549443224684713643864831572868003687511060189950664075768183620243072398595744668505980851143937778403527790364867749116681183419194889615030518607724174572694782995962847768442458733210282621564120587965069303413069837533659520428289652055770284854496958094212863452453852579141059964114908195176002970931722879430233085316875525899825496810832910160433625464858124931861137050890985199732418832327348167054149373554133910657546706538868557715993766186766431570346074845683870072257477025573784787447320468707966197041103174828320604370961724428591441917752099786232402190003556674652011487706512429224679497448500858473127331952675096235561155488915102278741341644232764772303259213565488840844558936353679390189644247452056580806555681330417468087814724132957535265743642494258863337656048586744336620585541730325279500080421701913325092376819005995341428817102268277049371520583428608084206892242986985019950981711547863407602867186236813645442837693789347004172864540433819580994049657097983517547020327096526798819542999399541746592419439503093477803098774305523054247325708749501078470150842374915719158071868639241615561723288439744679673882295219072291262347076908494334021329037948703206134841485461539756750424607500109647417657854608848119781351375783721563202988188334282460555017891242601054583538399570536027013859078621790274467013139576703690482119587100866899902875201603087528291367591422706177646516996427465020910496793055285899762994563263302147004150204886503971440986186041891581555386923973849846436280502531414426508322952926099741021521541867475180151048808658929401643682273563540992708413408154219482471019036654278052066369961170499417818893583993902401691489972189320031058746718881691157094397677555640049360865298512692648273495253015589914112358643985713636444627110557235486229290918592084250394557143422392246259684354738089220215403139746520056553705007107410667489358457895711216635587017247083915693812670278526183542827459707361125619342822342505943160441529343274798398077219485869456427173306204978041166963673709501765659454009619099387816664107476590325436079864341909957009511446035945856082425677923051141163908914315026810519453717147413515268734407501924322515310632588379310994030706130654591577246808228393305457753937850681089834806165068592643598129564398843151714137948274213394775483994160513345137008035202905487460850632385500558434096643975581286118274432394722918866043901106132066543264052571917359619628020604439820432032864969780391311691529555523884610499485048667895371327764396891930921825470201370663576429519889689119373429775924800277676035388404641515303573060675663484399793219200260644186120149196574205604341099761962164561134163123917545477138542302103065106837477802962843143457555751365867236842542090102400327988992323691214308960031109488930790361342034176438199239176589116615411629526037229580067025988822862860996625908034124368521051908461739558090102944760535525558503043364611070931665503136275688431126269539480935647273983483230696800856889362698218750098393113182829389608537717704537137633164128117342816749662750882010612008640484346439233268763190527613594765651312992860003446780114816683875050519617975431032028429157302433724402378120684565410987819111459761514541563231085091038901000256966268508120568414328923950099408748709273478782415695523112587314967198161596432725018247770447137864816763978048823327897846632506013606872700159474560548150640370060120103834491849430057879460923911358561009147274762757974311476126812367779307149095560481885464623826948115916241410242338192644632213073840614488569261163849458030612685670731785448305365574279920488016565007549425661178971050945872460513910632565174986486379200766393681845142740407295237860546611630005553038929648550603608825829750899160501976054862068018978347073710216022469859621134494319179767114709790596302244608877621771056630029812605754413292510676751086270613828283116799770778761933097364629122435265494888741892463418261000468611962420476986381340977882870274205941812419441839075961921068761351620220159972716857838178062950666342633900692308685707458722529391449933008138331078060960831600051463719531670685832328710836638811890745368741000779426671112695231060954154096581835713778972936178456806897872313860269047841605038658425154392845830322032174336330790816818348242313990955572158283208487086784710805429393774088291897512494961191348453008399041016403815251940166768147203482332372079270544675491344245756885803953229755096472546915374061374914209167239905545572816815417359372005566704792880806924067233887913330866264163765816996651225437844358055166498163715738511389768158189309663967188558410584577417065065488013785735511738339970226920654825939496531543392572129315991220312846863047190186889948426903529763050902190833207283855649956941449721364130786029471622228494500571119741730682571421111274814544495913759705352834470167398310657270951416159987982088759079750380648691154969761700779881107735236037204573235350739047171101415265003250465210299255815521707004539808473964883289139310043131083502925127616920756567357493304231367347703944695227167991921149008252866955695117044007983522367383723894089341469785574641580412479704382182228483871402186432462265371754669821773400802266999824108947995054260226392675960291977182656602047990249925685179833708094349234083690408827811402167632531084813211601590340773489598327288564739952962349297098635277223489353739233699193464521611693859203315679352916667842865376070545932404099590638252309654363371030718276085110564198632415413899077656016840271531948710026442890269373729806366545758181505487328558978591526012459922014334439300524963576146405113732665236594240081856136834142969281357803285435340921318141917227516361303635518538615394634112522379392557968031563816074275529854379459732204578288803613608565231105546783634851778942301705710546680901108630577884828978426682991692499859284316116526284923340103342971167726352002120243486340913485165196393088672454049086247025499523403959466917223234804216925580199238784854748832045604366566669869674634190621287671811668659603192812144894966285393340718640925401985822531518510355452700859503979274130800646095256967148419649631536653019497408100932209920029773193343383401048243664457717006154564032535597752577212085987280076610334221610391068097760816856024105818414758607043720673184261160973735736291864157115693915109859344919754156651901287757349116998905218993893258202556236662983689362842107715839100250341712083062661561051538278126859078834542975830143276222137553687285672399838469420249975349411158916789781050783752673414233666683359275952589180988944322791218074247574669411761081475415831174962925537464104989447032649148460438979263303910518758068943156886649304446009000025998339917936742952701146579467877727909754088291993660556894167383265776981630831657758498935447318280184922989292173242111210901077159223413770650587889329887439999498231693001033122293123671872978553537859630276058428843329490920743130757597785489954175192174379706154421875870344333597417044181737609954518389526586724327574846741413631491111463525265798059861823191342156218708330415214867349322837350333735731789810530919102757603330369643428450483747963751011349879735731981662916504849330242009622375798012657670644730049950186944162842272538295154324440215106644748685060683271134191618037291974793817151738715559880501999442438126866880385147020231580261371375141939359259964472031177048042236608205867505739416855423998752607366805002130294522984923532206287107474397015507713559413071789870205581984325745192521356159396317671809195671394394970197145769923723643639884138358071110297993496002936501008688356103327475761026180241309309629080062830038742995588520354035286669075140675938787286222350200138822290883273244464335134017461098927896420537227487703602089476708987935986072477876879826946198045340358737337534995994167396921967788708098063640810441733177411415373710059848921529066588825103610341024812658817134133510546183774210329581809291808316413909894454664401217284655683743239918679867281743874900277980407149213928801530896660013221970422087748473711797954060156168770204187443979752940910954401707148150730446875127219519970878628470614542410444214444275842627465559908953703982903966825246956939328770765444708678935096315472759098047250099974845331747831029959192672722815982674939772660276464446241178462407512103500172113760016994896781878350944919879675970266474491258708869714782649837574975420719508421272140415038563326725193854471638762496925385057293943642485282506632050720024534655931193503097622531445723979844013503183712479615933486827407582227207861335779132183050696788779197725199318965649673285003235810116779886871019707255183546655932479231013224730388859669135327422449649316292554488513729122081037080754879455066137336038520487239695619396799621928266939665569753887790750635802359551736140689133604710343485206264770418086606923685279307531109097104412064754734554987171491818190990045711449455303299936204116852565105095950066536064882635144803776043319845165351460218122495648411442502544346417691487357251652388044927192855009485398450461201297543635415792413401740295590846739515673697976855502152917110547670242973653035424907039654632438992946710768622247419900765774523666705570954595579781796941249432801147039873801155376334378442038704598798642793847118732288300402592769004045519546748420364598289954684424824813749933620437428176721835931633887823407101634726846017199127963035490603040281930101521358673438638234269180919587063832234420354816241323481068889215688835350434257989390769224939068365106581120253356155802102884402555215558615783144869135147683406568408311738354843626947353231468197592634959231687174657603688978822175621521353729070782127105099793340290900154752913179239426644083796407690989042252864654465088820854750226886394315024876551065545541071824592433717958074095655042009429369364608500583843729006855850747332099019124905731399058608521855709240262175632262323503962226029376278074524758865642917290924826493183552443011322573387635049297508145982601156905602284130575257283804463897974012326126280429995539506152554651741226724581349420901562473194637717699486337096535457977299336038768699507084918802082873396078602148475879488899139368103079738806528750711540469987506612888963301319268653842114763035696010207156126139437240483098090842981189808342873311311757742735232643155537969664999052994955962535169017793830394165879438103246574883636541750406934066530099244262957693915414714922959383220137407832030517264136938401772198741092424124939394405208285573052263489825396044349525546468006862404808314451115954777860659298476246504210448703796593027771622254938653390952678659618268072223322586727932712938396219350385501507321679846534880440592998002409770655122373962931842949922396822007213072632135948485865424950710453675833502111316044291306540832266061536013664873162034844106171594056856180896033999021414097867074186426424905897658378815811831814311912681288359474385943824033366918820604127969541137127942935960679666329516249447766474727921147359665826403516110194270757248173817019631265610135988556583680665927664568976461015362760513616202882965700366404244274706578379692623145611854868284665917104803417361551273461256857566120899067716652798003530140560104270792199925338381020832784622683251787719381341673238666997667047645165995459717360576223098368494092515063871178352005608371657498274353186647617580011212836486716793666913413465035558927074842973684611997656004332341222180291191438436634581819205026849069366458720599719822542092457233898101634828910544511549789790712241720102152542330183815864721342387863027308210542159764378600131743510134101953226018118515151195196489289161091682288850766573499344543996644053799987350867422470916438123134124525590106154229846204328495526483717240911273835106011059857057946901282650371978210387133002282994771971300336386947935023798041900008427535119413187475275983484080380146708430972155053052719912716131030649894083334478244394676598904914378799481277126699575390220943924898964572776483026408038203981938911594391811470552881632909710724674977232010379221136651186459091318974053827567285175601674656180483821880634686774501471353326274151878870445519579330191556439273554932923745380300194019795382712896763903018398387718900520574890763323738155862603137071331819400478048759255593489747688811610060204743046670390925450133669091291089059833387449453906969825126806783171306384902844305702051132681213625499255091580161066521520032667817448387812020503667385579659829376824862460517933033520512390370446082178903392169375688021033843448187802565713910000192080543608070996953090283813991040022244810479579310523417286348491892751252164086654827756022275007690487129851513481970640885459191484268597016335702210735888812389568055373093223337370440143674954309533030454835842174483321670639241270292055127254310416459327509621045375650830882196278852047368142889857239444417754141391997394604470599495690655338847905686315833690551033095997064325604908717891724529784369774804999581034792993484821241571082144381606312752411346446808405757159082805391216386534395435821315559467051294835400822956116602434831631824028103084962358467153081498386987466308049416123134721150834061204866333297743034159169553892575420273348429432557048069352860219935867747787571376575588095361084955115667544592795362152836970920790282059487328456758051003209181623485265338788130605117515884592189112474068160403043628844018786805200223706900221194179756625327026473720047216947766026719071836172849526501968978399743252385075896126019856061655179661777419858206099291758325766637077561486972898699011599070634724967685418629147118169039475960135002097450204753196532493224422927380393953229641092406626999220580033715356247702598159349071640642517257849404023201195392110850976665673248556314627297425982345301565182008360884506708471132795665541453223859000806707454645584777361941243283292974494103005029003906694794948179361169813430804074319850687298401963173945105659737558323139232924720094697928078869012309427863629508415140691740752982361917627800309616459993721389160165160545734226318795559893648217140060231968017033424900502591973860250870821526843865783939284274843404279553779723927294192115724857756755271417395217204243636238724167223082761675546220367339532204988933910930718836031393280611503984317535203619958258427920865698002403885720408079671996768070127115051900700837836312475212037884864664742837849110975104892883442810139702481293015144831800459462262633802054985316879172984899622696249733079993335078410242624568608423331021409188873508489737163616544271032139213113921022550249550392654025983805004879864508559848760293048967577475906580704322134653963722613890167491686293522029157193768361132475886762536588747140217318519578192204706082246495636315684466910935303851554731982340204004175922913730920289892982830404123970190019840456213933417481797814732071471253118660276851840312792472717842283699736188121252687431181145959229864376017258884096254661445440796335123301900182752710348461239198723765263849821804465448182729215486144619576696726634115727054548883437107492802285286197020161210554187672413093639085228888603431935338579310929399209156422341924167450854274978026496500820348681489404336860362262895065135710918574684036758347026280587854653454338978928585401781902928546864039782224976225378990148927590862897086190417474341448790828684120349963837436148633883527762093935584230524276810788013400349441690247225696381150738763552436657213136355992303742874273536543421309887972133533379056148173438971763036412864819328074074618735348007929654070167276278962891389719495345224357816172633482017609233530489674179277181668833168224166011493526147323098371246481303977930078511331343661345841187145816196089406212092955063160676775412140030265200068501744679269383315143484792364407441301724597375045372621132540035463874049239696854694507578417795920455722345669996184314092536692930456544197828178806644130434468613682881688331781056197256735395186485642982285802061185871624170459609891184358079666708981250683226377064403367148748185626702199411647395904993045034769176590156343021633618865712829837482950568560085741793837231340596368300938675641177028070099612792400715350104833141343993985082585843188328082074789229920080981061136715228998243661254004072140230568894359640299207987653269210725030167580304201673664039427643598034167105670088827884567423347384335759353113247769328525646117003324526995530625160492904445189042698594317478571544650149451428918333944258129781810631125497808886487427660086544233056482300694360965311833389466710709283195684056316888753965582109176822848926722925962061497598597007913419049997610041771132069692079355582240248472443971500992351830417495603267983007203381892061972985031468814736491605053555595886143709791111250185711559974641769493271880835522595124952304624481651808779896045834720114418307493905459819403810628999617042702525135728900097499171914986499775206599792798075591633440958628753659759585945705090121114140158622515741041753187208448132506650172289603645456622374783986180048494090624767980976345163185538134552407077394338804358407807516821137440738300666751290700474871167558055018592097605074457252054472646922476909812131256437964174866386132061870346841955400769507856557584278341438344351135400460981690522287895021218937903330526077085888354245428377329432066390519141038289601389182590881213095373302527804071849994920267467455627825616636677278515234401029883343160681451466016673042462864139914429276705242104268204510858891793476792546999108606852212241774453504483998401099933697719856767389300939964366976640492957049472300029851403833013691030875594645879196646570243954079922988350451861360338543931329653486032806845020486784318313933722909323229312103047497471531549044027902763104818896848177203440381913036648982741969289583281093895861185074413089701907200001072865930857182071785404468848799174564516778433352327931129665688666648542881323433748134669594186108204337912367694843738704242742586066977915328916661095532099320497706494938661607193331566615578282381431096068569364300961732180963666291085863195225492843965772780699193510423517101757011517114079678153752262983513120150784464916141917347697501397252740967151885842052482168841345618551604157965476781150935364798625141405054690222511116535323529371228432330419251241763578125323865876039408783247385508672720750643609214914448976884777955849564022182906032980354680776475521809208598149230747350428795815572308468353419552029107093119125129782483665807036120922160305592279211277534678349250408191966501472025650429868367499581412365016915686887944767462047667162131187430491456122672275699703684900939642314395845715803350155291447575576312720881031073420915641380852000047697695216917934863061450282554808542521235337212632646875323676684916971245056390136269303130770509226395098010823453746365419734069764201039886240050349045840423583306259811214222733214465836095649055913734146254075062178299232546884266063937909622244528970230832166446935013958936602360138912267326532369101200313521269009716002922258086829717879871411955972560912899524009383477369938139395379396880304391916251818322569583540000301605797696419755010840641503799196901406687505811792104338555037071172528879604344638332986693876653883156344966936532425539135897608456912660809436502686517669858923590899577494156475625809572452088649184418751876090507574737054274829216302703948473909406343747276788582217521530544747798807754129172509338651082657430663898859784748090978445187388543470768792326211940354978213060125395220845839994488251110330212896479590176416222390797525699756907279250205196089869234795523797224494879705295031812442463144557537356638696668370735102388863356425043950386279615034408370640614088196666947640187409363644447089857073419645077464405350373023856234740053494042416677476056068543992920870951250887239064115479430785493136228917197379991201946524396021390532976827894969853427688054108273189993159005305620072490451039349051353770116298087092777242443562214244066945579952369183928959590769161994439934746863572320545980230652536047702547793571148731323844732023044630437092149709315025467208437499689940172294084586836896335384478193174346976068798279932929001979497645614362278422047310608382083070431556110308329493757164360215710600249942727835519837236662072325216858536631193793251160230708845109163856511769186980621117052889385128755872649516571638601173882913197487242169100994658028035176619940971218918374419992041110164679464835374209053894076641246077200628717572064294235650620669403248030366740532161374880368797424918496527352021470229046155547792801632932432229042280764521855182190087949705786349934782872291282064345552242297831090958582079750660647275427518713183672883195010371566033058783108033917875193685921483892330076403679382729786079529482207239021840092268563158507284908760880239779719475378473144720810944692897910987372659033300691883957442140930837111803334285556508931478217508221221149587779759078980164586042107137746036985900005877010803551425700640017349670802806458836146636096192785180011547665031762380606201684091991802896431271241048688863823012848245190354919538648087332625586015633519178170772052184693359716513253969650663939087987408025401128375036875316441810051241382490514909559779577172969323017040860406733414000691419499553434952311026467822489446949022820374174388618401253941306109809261062791150652077814977737648869614703614865757051656656301270830929802021773012549743169176694671647201875380507035558247072921049289681667153379060788010543545567471687551051461048820215307777009740087610633859385851985409969996810696057089087810967807112001130469658847442330202460939607048967390345364237540859512239735163659712463050631627577369031994828306501245854146698415826227462361756110356633947450962042435455300180730168224898840960846207490496091303486886783557649612843625104851592535062375595454210108503602955795607514986207140584607424078268174751352040796815470787911685803592763371586262282001139388703426568314478239967801964610850659290341619316443817452007244717612894818839649948799407221706022240684272924263708510139113803807633435684431811324905979626742868155526442984341925672578124710935382898440798634199521781644391992407715269272563888304962229236119615656548474707752040587559301768986239915834357649725876065372583509102791849928708894901298555991069199242428904527771506246523009298045124748227489963179136044313338357210635045389947354831712980434915848398600585161445998107669547634709499880534790569358509073800014775997917473327222495779066337843343833328668182838161272009143351877691965174704189415940415861847809465696203866082850294717438880713489857112929691685941136146753379538364391772543633794147601549488507002436888775894854231290328031233108945233052640614524890839486344045568038313199888103157963733571029558811236492761309137214103024629271468058703863307292153410277410284616207776983971934363919956831563308579293126779942165454427935309406991808794027489737686232903985175623426991935047914821913826293453738018319575082974314733444979464357796346072996069888159937837943317495517714048849418926898296641879251356726771993518616825299260078251152051362490419261487627684517552492064892300747363588479194493138410521757530514172283410180363366223225168148947888999180513385579975395957718786873326956545532069320597797313120033289737204423069640812688904198835268092966537672190039000199268576861153722347238007899846946573994977715271199236483391627071366841287045631200535287554185107159491114375567192852886669577627787264359780033068702155142617828858226762133998277177105367646574027861139033584045937502683379283047925224908050253189900943164264970580751017718214612845476303037162755766777656879439828809046625738569847326951442935878662420447529190385641137022665213680196176021424136452080155162658205352118171938093653238767474106605884004308709218406062830472846829176862915453591509114647172780631833627162838827572151705346825297234926096386672587960423838721956755981722840290996628431567570731656135122254206475603400103345440144676240387122846457419388155227569409801776899532014711883156379788330527983204421766179996748376598061636676602977562672958334917508622194680561220803625325415364870341031960272445399793487606088283558296791025060517509296275344819373267095431131699319078523708674030721071276639089537559328623481979804567366712350071271210343246189269195926289576657047324003442281555662924247181292043030337019741680196119744313275930712988573961916903657503962490198645776236787471445344891328161564060409754056154243513342310435597330328287656290497771427715215283434277087764046803173411625332217440705296806704826278667870251802177994602952343196521796939600332403252638993414526544119242932699464198098330345784015227454184863348597756667669902088767522387357995992735858836886364902849985209654036750385631124486366578643252599211672982561661288956894735371672420097648601791808471190550916280520652916451907882341840454324412034774285856479074864871302434712242117652886653345691668155860911348381436888213631408599550562860515070472279803522086755966680971642386626920039700585688707549996305359139777951717107959903641806532784255186145710736877975657957792911824308725798368858805798222353635518592732649392563569177931491439871503094104596630152818607197087379018617288427818741919744772928248813301028627825758182106444846074560949400299954636385658679699964093832491027448101037687231470559145686225321987729498680255342653745588750566650678891939610429503262972553131636347988139045272404935158276774593116161633839753847702480746753814791695106053519769240103347921137838846077144487134703270433488551271057359978766491680759629343130952145210788456305842089742779300029597998812540181834192529747321231688354685148768434980350432733541995947242538147134316388502087997922693803532283023456849574345987491217560826573759531326039615228116735821381186320276533063529440016635545414630016467978042143873272132372285116321083941279127770069533017421096936772147120003319428337926960293090183518386895730048187058742393660388406139145253569316728637918661808132906837418429249475669357398765905744059664911090305779518442858501482134807976018152323381548347807860386054522578117519946809708457424500152239056410542110151480913759168253053572635790069509790543516610390890970548655949798036362732706878613371700077885613921943573843128062873366163571320164727991445184962103007223435942212569418151851276214054917726734126142320308228616344658573466566676554348056776540079392908899003110880972008179185288496272786667923089509703169305589514013901723891881382494949817510970274511392985312417160289406297527433402983636571534860498155935992996468821347465345597897655616557318954484501724417948378589908673944832953679292276123106459077443134986681955887838449059768020452761487010281221683318043990167654597490958801014706627234348052709945163722093906510655352222417857033002090536342261444799039073725856936485529049207604838307240850790619450957936911235092313892613779464040879626440554569110080012630134917610262783149958957561687491164691586811899848294488380521349328834068139446948966808017978768047799059467316918758848380625746287656451277953722922652350789541250342294806778290475919114941920303974416225819609471814734620871877685951702126734689095470818747504398111341008091097702086976650449585030520409248699724207209981219873976439752979690570591460827603000986908167508035523549186260638980755369305377321985637706501367539808409149449746364968931717482192716785116807810524582224406285207200397037718987925392743926935764877731455202157327442143217442885743048801782491936947940303806394412784741405216386591042987832116791484619139422540438006228306438975133262657427541333543085342610086939174305181506098843154668195584914920131720301720020869346638112037235523158764027025010735500813084654705572602637620530853411938509835662271388606216847936051369687186092852846543333667821479910294537716425771283767007845648524064573638650003541953874318833131274814550814244201338585098127417541139165972135958491215164194648508501832285417284059757419580006469881596913986472837359821692161664722914727229298507928946911123170398534630699456935381621949375499722852346774828562558597613944695625270231852199198593659355100683421435656091679827292120584612855541251947707474888354463299086266880787897395173272060749583692651028669728472558239695170848080090311025569551359455992581072217096882296255004473205739867541332851890017609712511397863967194406223778447886642113349860713997500914735675275116834588030603395822575432293473628952739104922429219581932920797510091889658955807479034895069767240077489717740206732767247542759593645554599266443984727197984050472837563391245848770364819648929676334452065377271618870148177826485084323365785648093743513866157130759178959111833690962111907850211763372076097290783009171927319817204553056024847303223589212376797123565183517646597020122141794268932813577310472882108292269661171546871955338022302736429126283913875251622260413239997516647711792929963162002262103542601578834155386039377847206597753222207304614763693499371498586860305250459902442918165835813968942346332129819091994719150494595010298920925132931697233847519330674455218876361758041389088312554621596552544644983970706990991369835007808623287016058939444801284854597977633797818520255375680306250931878332039483222374443272448440497655451569649508557326903105305758825436453175825675641212480878671190141916877762825768299444083342682335127421462638244659398663902328505311758346025075699516159494818147692650571720405072843094824993746432870121442847482486841752923841826843085113541809951956311781372946675219171313749211724105534351303532085599537151722807507414520389816741859709577176917695670020993343752647005926131651786932670908581600521600454485893002813056684286497194402444916382757093883401263935282222415414485259617536399791345592652841938196178995516887292989088146735373962075469614034905425199896510645481276066770072795185394278173579297648109389424326004203942050846162557633083072216535413332151090098156571452541346615287360997864498680420467157028043183234190200785445500168648129395355468441266221892417317420717062268395401367484714345804678034001051976054780537914661240724329603535937493305130267737978382411040456973237552569358951417921423265458925533438354293987814361550878226955563287398480430853553830746014769740509917322129386963395845574431584479789105160843464028318412142906412789103611910618227196504526691301132570893782295839481189345794321596434926931879767741284601573526562985007277113502905908875914097939171906194718616857943673053820915496737101429922064274329823202041644323388873996759251814745470707509183324381334272976762342587953198978542554348642798900916058500854271305730407935747191792802157274668130898554779778188606669353064146036675335805825500920537517996279824444284181950672909685149485424548872852305755849004124915763458124611169815596040713548245861923812670005059833070598610081624562271299212208417894593597462405607643268720270090573009441995082067438690934034410556789536480591784522536549662295128107374461506612344290080731613822253956253769698719146410965777503229244300520347953152707411695592268292147622176097437665231835433840602377773019525790682683686538044809062476780299261716680543904417371737117239879916219834759963534518089014403929460523722529107881457966224620455085728176756554888153348050114792541148378660893156027763695312976105752823144679547963924730014660346281147574873212899650558456188471051450893319112507675479383924675820268573562545048497189035920097012104823153746659711905097798189252535455681391517444349288055316933318092919032486992927177313965869658921894279808702934650768853841019564666193497338026013225086199698018327298666199291285568618227039254425426710522661317435940299074279713442260197217733243776281328246154091104604911289074165995187828279202007157594622570957434150641030891827568467144323953700369115911536087070168956371584928984221740630383888478048355352438731661547508058522758683237078434891140557878454967351370900995523610720355458871687779913408267295685282247601368330801159095585537824734212571457567438725832761766186324263137972845559794810211926729840545347586470590637705113803896876584700746767860264010783534423689994203146704800288009891174974147474398190845616462130564652087158373896287671058887585148410870177839005211440055867168761195107231989541491204948044043896011931153293376103076579072950786759108877382529056873955017707447832769198130361682457443859735083934602108912129757831277940670697780950913763727484307059491028344082808608640252516649458893678218596965211159017970307703569042947201265478347387988431187402312093370476866105010862986397703910709083313393787351637299040703456945152548865609190632397155300895727261628174475708373680476443251599505082442243602474045940102262351565796839476259880041802578165376984770735294223763548627446333455968941147996025710913592445627169196031168159560727865957277510312316490401798918822040174700766639301693452605490425574121266001746837749807488615227953824474071838813582058511511475772491918358197761020480362567197976545896037862096706011305319843807898723238161419455104311154025172856548921082983226586904567783799207790932962993847972552492892164955526561916065516336152779584034126619752102442134754754974748388888848775416900995983742192701933142408821772127792568045128223145997249059746178818600678855467988785487763224047853788294514341096642083278288764995633902541816619033663173752473283082284769279705112691263985498576010946895915822439677641265511145451124309311028513989165915130476810059699609405558910484582648371766298911632092686046622064282456494405271990041696444530174493143858359894520497027643365600368221562784762009969320651376939741926321407116144108583784905271233346993582775847091468651384593166765087401767684518321382603371112000903510337955124089974349899500092745890652024121525411189745730250610125067610618016471830363335695587408448054004522319826467461871557580710386780148892347087905144276210288553799988814201873349243408534162618673596478509974294327410514231287056843895018109105617793703947807674903048516060926661003019155924640958244134816706122644525105289704809834878381368687962277391769335359824797786254873084346260188773827909118828073736439475158201836014518906210489176793448562812972937961361450373191881087906696515610276201004947070861766691882399755738944976209192473958250820178246477151622513427840998735762683495776464581320326243451342367174623432928632200390475247768506365360392471220712779744782582320082669524435993216572754584315858758465777274588893266382811023785300553015276929800716554743350697702101421797859849835206848225185298194773343224806072351161845232397441664830946279294030697939727587161047815157006445775776270258600117287502784175216438058736961329659332102428734328494399155512182424119792121433265196775969497521198449985801049593400583603006507345044215956406347699059127589671664743415174909610148908531429180575854010617950934475940111813542486611541433705726511660824500848537678807208420148659047859684304472035304390694685922759032753940553567054186976008940878168645109659962366059375239805417629331203460498809472146507134940301933814216977815624158451587392115048639605152131768696133138579423968814900961120798832803801413452092353063618782445950015939435086328265419082554568598468453229463776036753260085983862848219374325491686569201829777219193822778637474276551809036417209462304678981506581120737403815518393244682196110616364962872119397799889727561418673338078634842326732123062051738251220620536573845597150958439317515194179230726162743928115904548656037623923938277745122660681137947579452718001039210466244079638988050491510220632493873322692340571319967662204058580200598484504559877906264406442828595786361893358704802947275547912077572736415390475541983241864992139077770292357436983105798439578847714595788419430522400728110562581825532482275074261737577253908593649909382966862178306920078055733240269987847800510076525053807936033399991410450154261168537148410280144763786900606533475236231574372611496310085216031531070682221230951625339890222502959957207074358881346252310507379460976860082592196329991480755454566704943286393636003786552087345388780379456134306824264731166687942587624274943040833690933353955952433069200512233194997542954296204066373243136289599491419168213808917447133836358343174685260460947467043246656877647065929671135712875033251801547654529215576081729371943959856309125928933846330829438175847251778896739177820625064196177563622412751037790976973939924228806686303089369688243215541039370501693701915129881313997419114280549747205472243693821542021107173182231343588298419210745453315525337765287574936618993428294005729669492549628134805688462842329784210518589835359716029920128291578789688600716963353425426218999276162312928144026085352316520194487972831090409136894644697961466615711633264418261649968197060171995613757145804821219197652789605919511326794993528383640600961695057024508005656967820904414686786543209598887126412692496289947369558109493547777465883784504260124228237258981300992397486886022692734362850464801162853632521181432233146762965195875905139552905837694985445925594904351991895979890613333391807487559429966726256176741311138526485483339997082607399977911698729207466561453651429739796925313125045772133096911055152028404450345410743532689490096416001461699818012466585542829214824162780854610319293745313459175531427724400993127258403392573679052126364078998349802078364508381792938224135159209215712466660380565101605387554399790337621435316822426813166868824541805013556807330392104464520264616953993530036019037964064727998003219267325658425393656307046452682097607390079593627100792540884911807326110621622603480309237007790552684434571813418657841628741988700644647940836635488510792606164333644922610813100430626907534071587441112380788596145654723762181712428150637243173928754121508388756943896193713466004016607119049379905994084734851137979028387005728405544365125843905199204398332123927337437826606884152163195059916580100507379845689390446407686997152025081647003920953943145345658250887984848745645100277076032387370940219680800107417696486690799407171972474429400400250435237016041072754939155384019788947130482679180389540901361627313715206901111097560519963171642771869612697035230249089273929693583662847225847331354462008715895306740579271168496496783226889392633108586895389438716658349262068374760181396975443600171637243923835895084911547208872676578032359941785028606103903741262320336847742152754480263471689381704882626516304406627867983730515045410997329038154393638543674065543740803513031090878744726426983826325226564210396506683938243371808727114146884687312680162731340560323471605225886238286535269939905229741611348943302720181831262116745610624772010404925441548894948856370916253822417724606238426622064937198813026611268052885908703332872565902998490152786605265099815098934236033816308611054953662134353683205327258806445379492094955706975733116435652234698543567242089567437920569254640263750109077886659686422002440722352803892367910183220138789091906448843459986543574954338664420275511208054743294932533168647056719973233570204888855112272277766568247538328979019093731364784850248418677715949293101945105201838738675375594437946784758692174779977335749058229596838702120092189957337137420788723092689777268818511503676298725805314510879067030158185832606926624216823612173456671034916432790877547479485687557946937645338166435616278010538321851439141612954542800538655773264369944335504721072297767130447153372802913465143253195703413641111059760765510934506529753209585975740933144138044469848399931615543662175303241713860159506764114152253336278927007850898827416966553810012183623401657326349239492156765824345399411772410339142926475813602588374820631368226387855941479208270231538749774590789513557790051088160064899434438312442260913584650929399702865811766060510152813974126981651607485908824620192851395209795509487817195355592970738593117257527901357203538164762951453184203884603811574979153098659584499999581121082213947498317533470237986488479650488603242617326834051452790616166520997974802513042701987817202459544586467581893359875469511618384665878397312699284444352360169968416214573232339241404893724610629437640337371608438622093713185163368402533155739038176809535154402648581474276373350679584655223050128302376675866193710717543319952820254588268856848800874457295857925977901235354074610166520857413110717860954509058672658067061421884179432589837999404912254587908704968493900349322931104994460365121400193324394956953972577980141308936074308612569665332942746640966513908961189591934809703917874324318688437947719562159629878145043928774354908963241336378208770412953158605787573546414454255038820769210961667364423244287996501829439268120517991855112762680342610067224156908997207737191440191508070786642410663565846351090201906513515309888552395154604472449965150889619810425285361581397603918954432898693137234752684721796894596576004922831055355482385863285715501709084664104897153767425835579372498056502676297981786206389042527275662803867600448440698525445831325671714522152354593782952843249968281830355962122115016965158080281840711039758896138548329882962819033079741012608219167982344252249699676493261040724803970830046220799466479935314728006584987184068830414761128991352997600701478201976643935296979642485180480978797560420464416215456302891651006645247080357834008996202670088852210849731471997262286833252699229460407402379035191737190788717536188864463752458129890880083786608510485694133762308540738321773344403572607874235260456094942258353397235269663435076805260874364937856265454415662774525881407273409783963205224911262053390209425914751417327638890656246854929126154169084878071985415906892249233710011030283163781289520382315351561034755484626902120349774610332500101271064182200054260731498997059108307158092132241921806603327320711957622763821527822734089162932914608975610846492111937305943564503791410504006964449833314863995871796027319442246303468987933577196428079574818632497118955489768428208224883841776928266700354974422144275324097052789859358384262155317795234128231661875461058773267648013579168687120106058049477214696629010121887035163925986595134469207210725351466227660484517888183449535453413980378708595117093007215073100974017689193825919031479450635494513066299191592912209555520995857555347488309835468662833273599335740935786794853423758112834529258013894559968103319055566725501351889093748680523364416350737204027818858012403946948837933377095198273171786373238977764078273833942129410213006890007890018954170975583800334141514185432979708636175039711880166296285109865525480311805155515419844761818707598973175247502341927086535041805423558389290478221460434195876709505740928715976848678145969107318766290259198664136543607702158899913995028460627846026030074598171224016311847018409088683941878473224559755758294039199704985267429158961915043389865572264704805314932598070509009668394595401278848057453547704200113991744017322513605169836522457457676754364343912445808291914755936852363275137688675721045732051598208906251748422983517147810729851237232772851208425363921936632847598182619360615437764034070359997828938577157890350857938486201661190064377730916642637532531015351887731220523027757131058727541389505315159012503722245811149306006635619758326507765865482279633675455710613682348299408396180053941783585632457916822336497568329927091652441568602982176822387731566267943841268930480353715447533470336593711830695379979610810955585924875734049786485750604088187258080370778167392528158989541165237808802751203631211062916323255273287890971893987805784971295722454967119761069311757227134737596435103109584298910166533174269282252603231492292698177708927877389207062042971369067987612160467758027963143047545543607398359527779271463997904070455516007370257246637609006853582401271402054711835754963393443753655164930767731512953510222396999034714142468806584777132716809287741359237802002007015109414305881671582193161489396128409957731564669151923139253144073199642353713019527119003938712529440433239034354331467663362092164399591088464918524852814391465759235460721438516965723799295163934431643403594731508334482573822058053238336753811491581799384725900105189199963781033552874945514342472674963320558301146431804698992105166413473197934756466122692635016698810915250231124203347705981529859088050714735713621629584120962236049571418772028545855780892342079565661845577529989988935644854799005546493273954506095042952769218623585405685571258747498804034172208686571594936220507839258424344896649573758018720984420077525272744700151453465583503600656967264044994142742988023935501042772088645840715364195591950463186964061977188023429491860465520967147226239906719321629795991696465078013171478438362457580876414934684341104909262036065396503363629931192974023609897412170619612198104425584282811828953780684303495350990786965273099669273646229366038318681267096212764185094741201202472366084812565685851214499366081886934329509149728512892384698374336819393268848097142838995974957085268238882332970109732127653250070941704742239376040376883813108978762611874043107350530757788687682128949242728149990089138568196674767256066635247632776780249075311349897455491900780937464426066681525608139088205434462150373892700060821842581058216825469759060628681654422552622141297644874338411407631714410114467305162266114351338683852475737141120623954518063227082241709838108972736531913645620830476273907816606034981895943021715338219062403785091371296847199880628521162576620948410470564532972327704927132953905947632923474996004349990785678841409698162326452519410915086000250233061877203553814220642182494407515971955825281362545065385576803490374099743831947255572444631042752624252047215437349949410725515318256790220703334702215361745276518675438484737882297521152943754251586821626160343799125388038752705415116965304217556952269577830700685209318337582550436591981427985785723259534688422377516168146248927854329793597291674366371790581470055481127705850823719993522307129275926631462384452411276079240617180329099716851050524795167423102035710513660848376865308205052139647958402426253845817085032104747165930970971243908878941590690630918119827546657220409015780555167739749916969679943473619515975135806724065120016581732598732492054369212994096872928487223084681864989066179799431451628808099720678397598209985135786237843498676159372261722862409089674038029702159044941644997672499854948744179082323061069855320606383878291032866895259749021295475504665898802655151156563313627482458063853834097346129714639324807956399072481110921287215697742448697866040173594486405639809000273689128323700536525380902885317229290810731893436474148121514871185833212298716367985024907855416073578874752202080841280001276645385291574117872394467298408077045285922186483118688381604036587387861479333034175091295771287752716065654451484824024298867256260696240597619603182031674270200226401978328153060288560805126584511605432390044385381678283546541912561651049175903426874842153253339979083018812118966049406196978128784047465912636195160344013384860580666746362764712557743898477898330820181879684727653021187319166608150874856621928879242936223845824297394935094599751343519042213653398269285905806812367072464640514090942747869273866732357080210639345705333006240766640546120635668760992772607795823288168187166747530129280968181248958538224929673775168422649016866648943776369161999227823247865666907193176880899245223528828437505623375005093400947674717270301806206020543087768829172098145022932162135170709025979424735131812159849747094799518079002794751341038519485104159387879719594089060861749839143038934618002846540150699680721383844789432495633418935124680464203081234679190170806084923162481490814363089304574274185055129265215893662565095799740435794051220298190421357122931978370643171672108387167992818434877341639374261102485646743308391901951366213529892984758763939132454356643603788672526572884047086027310484312959763047723955732876266279101364057801497033127933077901142591210289277232568168916334819143389005474898805851523133647169956067967543944188520079041319996640764873778732243796555074836516355842837513247443370281546619071649304659148785705797681817300228877572428657634060632680656549039162412107485706450890904626584396579822240296612651120512763137331554235677103958763048505965637135652398793025346092019403752343881385452663281603183244554069231777731660985722778634114945857453184806133601280649457670697881125474769680442458325268821115073683144516252459851457670999433852290768768962814386787843777652428511460991828764419575983562793380439608438541608658787092227421349833182282739665619508337185608740330763276000878841474758322238247183431716388802363893972849688994012260499076309723530143286418141969736685888300584491648823335922970026700828155724761482570229567916871410922086158873909941957886971540143480887574874817582126946088743576244871271743166768960986912117741827330937476278006440507387736838649546069605824161831079464510416826390446518233432701791421384789329528475219403608983385484629355591165173792097688789490830640162414371535428078421863031474226830445875287243380938699112272002100177734765128161623390882677646976624642865112656074323975429914048702687153821970160086692867449418482972667064543632423138108297521763242416147715162147391497942270845460317176453903300796913228428324620865501273187213835374540908085261659112838909437294843851796349650381511262890730022441024165803945569123216251955268798186011249459361947877357925843023119527667706018786085669094821847994397526044331075722187726611506129953443315646216818760490893761828411060162038027559171038547590372880025094226425908913358703051146929935428980691644454395305501475792023270936984865865190483704663117029466003180561277683207405341520489781316443022038937950177683309977152325976053267320239054476458052044781850681131207486917825007004432443908946541151418599042391696818301732188417846497152621916790864583905822332245672615203224220497280888833491280930713501346752678858079209927327822496947417967641410396910165375633509687502686494254193454447272381980959830092824392277701340430214118167120515354113896219436234333126454095706373323383128640757136562160204520757494014231069853817362167756626477358420081730103646081653897008737758218406558828917614870619588462134172372695920227780800022824321270923695465530088692843226721521471634312167255217231771101092313081818295766890945134276500760630069298331417162026591141373896046646678340881592277645856640913013245139720699400931228510592780270782800982549208876697495376277691242207054424654057380567489404727954384467409255670017426419990844188992052876371640942351777947701763774106710917515533934965243379518095132012242905710176627575038551691032729832775349900360645094061890056430407874228059336104158133288689877569050524209501489188543289523513032578517267905344097872519715152200134520840967166729473366412676004219361991255569122384147148860529324275504401993040534951818666527883141004506471204984759814883347260148452653648308224214053053255659516538020297356895914166047150810002683995394342885851690565361072848659279487490056134600406196951455842063841074155962552589440317932299323359113216750072792799677938316493891644464798872960872468605259270515840443998032443738551492560094594050351278062547297472041974201595393374989398591792413224395186369080100211560909997044646967684782550222121673602359666325714331444676562307479928339918159698684269952138111578766186465480870834790463116769684309327223006191399771149660133580286877949601231182386770786173533580979938405025440512756877911905120544185137879854440485090845542186871633811328750451731611885544601898126199992047116984444184866349442372666750904736507322810962144612355361244549864402027638578124544578387828663624386974600801588234437005729830591954434579994904348017440281642178007187827052611545401913458507983088529341548380262576026672555349050385317737463250870065784714914678158593484526781387830751776333615552985021218067253117011457067596625575576049648393534186294137876918785269793403565639821154610734433625392321046438716000645662405992215589849920985596766148561351639551539280285518781557286664103447163764397656122080658822254011287630533141452260983440063148419563484651741292973635485301965399078301465071497161190767736198356154416207774819484619435995377916630559674911389890608122769197486797985074709657738240309661231421536348361396740372235812757499488743085783041836712013273742962563760159534134505369987081190023414481192055966923479342682738294441731710342251106726750926716350585089337846431914542915732263788518759936592329893809657811407394665343625709466949011659473961374914600065840894153078862340677516284991279564421791023128240767357387655474680737513119329001474853689248510072233135664434920652890744519992485304356549198977899299465709877365524553860411413146943699340095180197357843023563676081119364557172805343506594526629906941663298348612678466662317782610271669781273887272808723415102401528613494540604014828869677657041277195858713812221548479092672684480123579092404294669181553526147685341531514673675495676749621723341496798607801090026916219434565374440751179359672273219124278038704421173567248982406577061069195083220935238597783469286086302049497081911861184474477598666970824063124252069155813595894911141797841867107340043631497243859068086299116697246296941010355610901080034182544477638361926740504962423510718046131176166042570962855824468398314682626936588774504648710221062303922988299670375116557768230430997720828147866696202908464223664516996609815253387186037698474897297471381685152494757091331610326232272369607876761551715326537077080464690701799755948950972134353914396994653619108059387642875006950541620917827329519998325246774974577151721838098845250750815809551844800936969520578854381453697520329115707910267277933611824422105078081938470808901732309276817636276698746082817406538441432186994408052261299832255058425229422569906028795654171253927040495301566282967541633322989274020296077759723238194551957329467725873317293911014910769067720749590793218698611561189114450693384291326326879106665059755101568792060372854673940307034122987701806112771499094953637004035951145699728629921169054083147513993758512876495510603883867448136910174111668618966998124301882501073763883586817490234756737023068819225406683938759537146671856918672625119689298839593883032493132932166472215562661634028939029118547487732388263517881626588334416813766758004777673809396950352277746381226375275180635715881157514041462799238230358950513187447013265211544980567311617759342323295823441431695395538163051573627954068980356759002804572963525519153323839483873973166110926136875416897888186723067001007058852288125810884083108859812443953182270629284363805692360478885088244352459459574587629438290467238682330478266752809249350621236919236166694168045326948466908191487595355747685676067831600711485080853060011875385476699786445364183934191488428831147026305311023777613679194818419258735137548112795321666350350539411256877592995239618040604488384783187375500597844749580842148231107237014383695734993861253882694052930573569632129450374272311227486428282048886720627388562904284104514935817745525322614906672487349118421493343542606011127969201943971138915172918565319048518751902358673461862020869785840974749795595113917019412212053321779081292779430034253705996513329544163717744536532033953715175549511835446240583374406762275511709531583057060842369320979649200352005713468159758618557013981017243066848197143957687779638666605730766790703776152228802014645006853036319077087054945961006786239223683346612814291426971013038340270138644782186832044661908114220816920831453150270422404562875742006998547952939858744074809665841035014074094040280749586864494500487828148549719044432719557971477419383660864057270681197929043548700136552592426470133395409029194262701167342591921231574418671831644035359743950687198836039672238621534002373986788119376873782248314421458218759788988847061358768267255511249399442263732362489251197799511811918181544721364160760518460282596137857664701962716876325739581446455638368279993937556089555123883772080216310634055562360576321451717829665887009275370099222542479494676761982559283415107688042910779759225966161084671831498203118655084310959788716568351438339541325213897885111920100982135289769096226613451362856319042099440790501892545197756736726885873836624924507443266587889282662348369178265880980314142337171912418736345527289517349253320622676836825274322175223563598845252376295194686645235016195933960089609800786713016772235659174080278326097580333178415712075235373167643010581228328293260680383559924818812690263606516377388966985365649476045732077575092962255301812540646845192570474778334662434402931837616415075805096317275507100361447509361596340796686900758490451255926507784201027249786697732207189176253242483665598890903991308175826593128010832395019182660959699080889881245790803237380312963635843291607861385942463696472549347762436442853877171749624602111642053987094622616951850359258199361938619616002250480511599082473075307003107793151348041376689244445904498795810459019893215802372941772729805123371151942086903213455865918272559888523924478698224204830987009867689122261821264764327660740774372569450349171734958405460977780153088666563938649563168627592048640601357592369838102857401812727246635942016955472441760845744457859095012084100584251435454131478664218066218830808589120487782957221788488032949746175394444564973592655627435139195143925790711845941906501860529585016735014866492602631750465443909290566493842786920296604684936873216964321727156775950912028121522224944234927798878254471289234873394341839027425188799119224294637241225893637845252849510904326048891825388095390316139403603933227034004559396755295181399679500695092930472773620787262780350434633519206980972103186956213060613567164779656008836500566149577213724325135908613886124873672215071374303929020200352906649935461081443699791058397036359179451088226448031692169914116975778610458273320777762804721736993430184772962616614492596130547642880197150807334395137468857270498212695381252359621093406527204335937540326600883776828310486933670563205465272904727245995985380166568488943578677446915622924295006432566820702020309628830623299677569681834283575052922953265605664615699133809902432898649828922706083931783228275219573598787272407198139826598039360258769529622035426571499616888372582965358904898739042624541600779825217526623294016509718407473142670368848966841309720222533431454679593208974655477120423112363031040025882227707620913544677310627263178513372827673192734767761191098962170584130529219409664393917284346500224352069752244311857918925223909817906922006333703505377361272988808568100826421113317254464746883564190335521907916553565979882248130489319616397937407528243682691576891053160374366385317405894973143089822746134295336961431962508937680981090162096619491864689717617828840207668091582268386266812536488564509688381076189324355731882247107160209322662190296023636854441158860719139488676440147423311693654208251622999401701505339944337257796321458357323442243212457715633233283253594801413713379143069862762146167450408933690508772956657307760816817836564553673618591945782033774781994063117118610247477681217335747433190615510622357491755627900090542123244779497010310065969485632049897577903614672284415493081045740704905782533885136256238117326074233056819061861384163569193722314348300356113654191040042692998220456165536983402099232805028197921996271488200382113109338827104140090867880330974349029318113347498847052158847065982228176498571725730710675331728672238263715503313560092523355059436815064965357240532240894721456891570525399178759319025156452229336570302740333648366296404738270109920226785036875746285975209175792477086075769707036270391109114589238170684997094823108581700861657977093594843611054410800163593150043676964449784503694431822230013638675205787604743962033790556180204234999197333613818188598220133170169943380877521565060494010529841385836344657369233598765178362484315252476985389898491736950612163881586483000311063132610527373846306342762060701967897428166695006841325736377696560344023421823875931170715175922301804333758179277641703878081609048825907981436519586860832409718683598500972819531227946127576475088457065877886576748505526319543843709799420337240519735122010683900196295058999715117054784418732492212231755261895374621330487475495934880065249897961089889264550443388271935098466508260967327740094198302903196193756883779965623330858729587938636235804923042434887459889813517844130220787475595494301551092865417227881802125683537582541661121748416981061023825463482352353914348060167257316321891765642574546116550017260175361486256393171924641719681843341852867915371530775626247143464728453637675711509840726857786499532971044863744796234986500342762317214960132317304127052754635129459956148151267948904720908400505581985445028928404887447494719108685257244352942581826601122025623768032859220327600745650182936467886760734880958208686579177767969859538994417444318198423117020290347958181700144876456263771433730374343432899300423734502182228514212799940768260751457111005790881243833807854479015867068407780648434844636189005849583307845248609234837675030981379079712539575638278532759026762207739314626927665086679078367367592448161484250361711861419426769695895358340713713222950182552504745712180210216871203407125130192978950845000355095629119415925846894723166527568771046971317381498289791853152984527661318051666123350509453729545053845359748874862727229257321230344752832321756251036348587036934867436972313421533749988836094672536938524671166773716009724952150827014932298314448722345100126279520436553928030080586352190103810057593885892257118579424388027074772070398138411278989956545020274491145288553671585715362018515923717390337139025551452311032552854141050579191649363535284323835253422096723325175685268852471042653675802765524336634663859950303157196891439391688294837370930284020391687544969936812315132992003863379528794437408117487404720997989439253537534780695239667831014471671709109063297792434894857201788401711704256432090639993883975313977086031941156989535450638083350385783473402723893026404358749353255229865386674620679144347426464573686570585177559539740551312750418152532974243757226956669772938871129473710670931680661170822956192214501158302125601545545774971364883632997348961590668255080371864281959953058013130499052311311271450543028465530561999795244599951536613731590569708797842898837966917180318337161926464983938315972362170045756168525620278508051893725253613871955887730729034066900184670398666292650441279371159307551982471378244059027900474663240523126003740103862906089322065279619448079917259456945303347927578308622294051783172534158831207911479297811031247208336491848795991311570885051470089076822259845097388468585329930210813076193995634780397382976917087758224933850950048284827671150155908577805106859710187759887087591104314256877014308060898331674471766942957711970206859100342882970467401211901447407157459702493235696939969201969364590471772463530514958871394526550317749704233796950777933371384078353664471469463838200452938229706584559768032883282542385873658513450331316992137786542630916916934073246602110837059730838723288106294375061550400825505128529718556974160386786998323870351213298191622483593405328510537533159793979514680919786008300155345993328500942539863871685006547954863573398761068714512945140628167308637740631109612526201584291400089895599203976235404416789656518825571524503323053066209396171041864891284085262096270571310149242419734149446889167507022522305062402805661656703561130074378208390917021914853075815741113009551149537695756911503170433996370001471630786639599129421232786366173687186406714790514507788606724442576307299019700465858444610581408536313435571468092986838397428230898413427112261761979754629205257990212246150085440570837703964089084144049527026532076460662775969759521675864085768376007293862740420717736663754905650214505356033824804061340503586616497565345792937525231673729602720988736878028091403720900840409746974131565072310628622299791319683465704646355087793215894510547531361006654294548630806590353780677237861162675231023054326595075376105845630363284231309363807269252657227540021235773115112024547388817058728449959284817843726471283315144381621584414212870400554049727550960985708520260005037604218915206233777194114826526461049670753395469886771642357193489383913109169171466044917552567942415357232695486759515073287981118737872310258230520676619151536268999765481886707988546012290971541812423742363587296980567114951014321004519878841960634414886107626976650117240640931763400726372556142659728663512189917112637990888307391254142015492551736336658813068028337914640036105718707796208109551322587255262599294486998711548719114075821500434609389945646821358557381856823246622362359599040095294324852909798160028573616783325947882030251877498794898827599508514726532636945251653942503864039343066675928494887104112287117628986834651094631683140643034805070889519683079232076565324747623781937579544491604131027821565836949962761370051957934389490005341932121055105908770363122983120396079654397853148018628417335926455619696253946798945498887152572165512770090308201980967397453786625038473219753815284305172124429201948137058588274616179435566432889572976361641753199471636781089579412698111295412782609974043202003676589459881967446876334489652938469359046735040709431978729429595227716175076361061709237527074133484740204343783303331044168104868594735719995558432910111829327494687758964095494205795290254593518544661891095481243430980902445046958225824334436779755240082832755134042966068837754989368254949640666296794368614795597831732230252766933989029989969830649604353859341754282156211059574747122329753192996608477879921379423455278266067823699395742851685924838113447796743164005209710880389684367995068160193845566866950501127242794827651414429918541838808388173464977906046705413591729094289250114114444766056268532708155719481677647003565431089658012739182962708354160612835581105637315438314851917800288096037942065492305427176330570540930791738680112712596662332654194836675394462099556920853633689158044070889002342668582744903648254508731102614366810386893718698458130152521771669814368376125851109328475874978714928099355475710471166862737866955528939322185110069606040358049632746707862795389627793188463064474717710278912627851915520233931902570776954792392966559148344939246695630567356129505830467224058952117578463479933590208128087615969309043216118301237296915576650755191637642229371344578359279824070075869762393823887791152832993771316831711487326299298799554091951890451204107469661605240823914738614778111483384955951740838335146399356613379203779109130037627561881236755530124487538920092264583502389432052248442398111367752766319627173530528895285173425554081091758381199319455343605775784789033795448554977258441599772251014788988702276110061696319964342916629353266362649789882698504563206877641835460338004677412009745818482397288256674542596379511139244924167031701419652001908413672899268409115963198513885257821385103718509527260312904031996186983631780388794044181591980538931922667828058571239690227248426666889594447235557978292145972153477038686300426584662635104336680240680557764687462392777616501370057233129130204788095325444643308199985293202011491924362989430827496602036194378351912244794960344066231236577996644193740530944293214485503485332658010257736391224814412572241390231200326375812305052802490310725552958723577140065874748031093307720559584051166090913331022979555925255325975321002180398103376615089744527519458149569594736688399619319813997410234625451086366374099770865019090800458944523444466182499061722990557458505873030129049874836597941162901107430052499316904355902829144032217385625350388534644668910080240602091966069848144185984157487434243999371425576711602988520715187925062670788122429070305712378271643199532919784486592229329446253785467488875057929826464159557669370886269152573354596636631942125950959777836346314462815793647882749066023116441318562161537769086315952279972071131534376643392550827873394910164437130035652099744715500956593720196128975465980128682014299499734891969340139337778203450405693867133452325846492778970160055735595529339740602645969536587988297042647823200204975605761565188913432465156003237642074757992485386229172006926791088439702787363707841367928126353446430977317116181640286365798185070829612209078586052511867287726766035711615514877493254018299936033755529635827257920435569472602933829705755246250954457236716819766585774908112022092129322237561362537829987825989007792562770230308233718123490433453749238523920886685214020868297167328683543668970354065527593127056087594934384295619473930207845538582042349504234314778472301390415202584559589391900558763452689678367916494558500873899074858716282089386429111076042348000134984865548269143111878937256911878055434598296974162775376156916548241034664176641792908754565453358027740213989351786930771851316334957773967252991975554910470008988770172204567967735574747007559376900764670294844178646088162166578946377271083760861033768159802345708352397104350436872506061932877500727708821347230179872390719569688672066983203649601366542494504127518843069809335096228915041636216255163890184276790107403767110266000493553072056277739184977894040828436987760619680518782008858167374236418935723300656696339411806953868475193772692075869456129179170445782835860067681492478511763137003123137558337300233541067951563858660705629417283992685128079522735514258997479980253506713931230306414103310728546713610796054832093154472151260195293164026247268783611479017686613311589521697941793735058399156819302133849891933546682505594184864717172220206848775799742087578934899559237907926314196266318474636279008090261781127973602088050394314983863763602909677324260385245479677368223220715525507235363775240035751394434121708436243325201955962264515794313140167818924865592948760497025145233520274625357056046681995370585180353425494448664738285307399105054065472123310117561851493079147116802526383405802523359790508664231872410308295062257039645023713999338112735286487217322669958467417742687166199344411454756447462238562229202555261091737671768081218627982414475856378143042662036067838799323697327573599915561962611707826647846417585687460417388420519351634037160910700901448077718319365769972955190139021552956076883514722499784625636141678282922344174640942443132808796484664845832462114424338096360932518492624224194349349451937575756563442183814390491850586286861034741408440482828408058193837854420307948736585802114173928130727039702229043620094068826003508874632068142722089107830628439551437017032046150060719802971867275502694708279663644952525127805926594994299095438205318809268937755922520523534468173511348076259439854722428475341863382764613878517468768214209199729992763617534055774674255657445363967381373395463226668972524175908308431678026265911954713487336416016078808054341625371758571238154556857247982091754441286014327877130893311619239245119241696283881376932024856111527838729273855370063755941676167303889777541628027831473288110497894877924283468170770604084210367342269814099070314264818401378908400879663403678295649483531714414999466101246062803971525011866610607516623954885313364170609592947845334499424276363637375043968718005880970932791513061156836302013690593908807124806782768539324381939453295804933231776748760237034811851398644102808086075652382148716655011514156200470325189766381404917142290064685457178265369957442329788066620669805408372224214744242613161282233202866535548465222658256724977162537044743318512999080812780834657060149051507732879750674887788504626459752498483873486328674615411931484278565706085587743613533524245394642393263569845513672302624406171699493747675849654642401219062445367999603784087034229410895801062673779397683416031299201418831719358477449374683959323686932567293068385743344934604073376947854881218692368488340403758230332902502457499174728233571153522185946109431308140680397886661108214472212975014173347896980540820232123195259914212426031049808937239581190341515030016190901666850559197066817907601356107201194193396703702881706389824524632462518428966309051455005999264474055846177634338057393847172303671227529578253213819832374755418418745070940911700175792955386433422523916615193044135113332950719489524542044347817409583199982193783787998988442817980878206856558524091137977260535822961881292012146253103720064215026119884600307259304184374658277410714720507979563936419415109801023244753381384580649650356944207419657924783493394435512382764257219660183671407913416780278401496955576347341371601073436458202852360632421650993265295474921878683326773694135432668550081836882579007994268267846538946421515083155184902791898973170135288514999581826800373565860183974453562283060196396257260787319929781345016258978861110152388834966106506259323073040733479257947746011833842929860608519849153934525586940168882195766157420943929187793748461757171035764473055445786885590308434963422098642390995996477468345908448018727980617750726066413606519491927512096360700065777171888388764690648459352843218402173670803227972377773962199423796385744559778321149897146967295733972037920615428633233460649510261938785459077704421051930880004140755563448940840813362810987222513781404083128649109939420744160012503807125015044084508933243662217942445624099316979012824606520731454639487434543453323085776620160468424177779024212634323423545988530913833560486586329530312888217087694712647583129411294147341389164343562224800872148900619372274437460258982501352654657528693043339550746392644164139617584997316705797389465461362473506476378690305284333686048183562295988690006824208942185055492446425421456211274924724121460637701733557378317914533492872243350328933104072992531746021759093996524610388191362588885023814382520524768432890960717282975154197491377807542255649671844159444758253991364100342385215737952223369828777639322902159394901657717782111221889083262192014449093352626146577356151092881555714902669150726719539126823401111550214240273694380230063842458477067529381214432935639957109224823613444442753762639210112676324706726875185403202527640632262313781979359288549184450751439014758689051167123307280316233390593703051636931464344724829344062327641731482307029388662595173102552133654749965380410566452335371062944511006951541461093939542920293660709548768583808407586988090068106846587957139105205577892917575008946959499548045608718078934472628881870459706111634296037022075405181589312433571036114912023361369810555928909794501401300134752014321914906075793978003649033670700032611073361194417221777357909039883644369812203921576353622824258815137786086860512176861376333351227760639756042755536771832093001829033675987924936241079832391580110797297104420274975042202623431799584028372562754828183929516635026145898814203645613353890991488198972712750179992960392856361108276295395056350545477218448531616533164469972223051417226954564909727799528877339129612274288788428907551064558547224705079481220113664131990899049609614886699873375475426513333322542859347025702041210854541409650487237937456712715190407701662791889308179385986692551018668401134979167127469287413000893791765072181380616766501595836526363082951334300133828927221286833585024600750255958407394736655552156152004903018309877884718407668203797460033018833525638792364583225167456368464551322322428061275591560046488567056741792941264578095184693957689543699670471845923359351920578252314964632599608244975698058346695367361757636433510875085379132735814360951808370702345197197036802766327802302561282979603565657727458471164935711378738810611343251805022616287543734049314958809490435170248638613875958239786312923042142833468504773100472773344994795153208314556209153261043227365169685644124901375217635903174196256580422939812207445064201926947990082221745501647419444312611222516819939642816735330529784722612702200287740669638369126537607017721981164476868469435764469768949417631205265588380752081892711898153897063661266938746018353988043915508428005188140018057212307773580425572186042546499648102195132563762438184236285978534836441883769518411017273052237106228038782184798007868336106167722038105365692121488017369010058935134133860484285395741035953226180706837958370928843431610440619624667219121357675268415439448367913567724311124268327940017947724559700513750421325844295426426160055671786514491512408378786478274602481097609346357796998135200250364093592742719659014197439522108909688814461471924864968607415491127393080351852302507809017394551248937557275768810851065576069007102282178534859917162121776603742301149630186430629944029719558724969692437476931486820770805295367072888591278317038404786801420912377592940237677420751742156582055279725867859110569926115387985129407824082748392427687094321815577329807055009375611067969568561160218707692386572358509408874790537325001046771337377603270641885120196150090408429201622963737738722147279817298335900842173822003857701276002219166516949867923481671078192243820960601422278891532568435684415409951362401505338117660330391111830574719315791715932604269365175919946761464401046964390588737131622997558247555498688308338327175584657283340186806317112024814851517311802276363355669565841517979324453737040580991350935671847928586003949572235875612152170869092764892663701916425923362519556877078653519697270251868499737228172455697526200914046786457676483907160678027513030491689576868890276695195022651127435124921275960242381553813001727824053428299381811191946674340277930137385991275057901575331414792685530318212541383440301331677152403126355407461776981291021369558096331808230628762578222671392296367710362645946377590535741944249579882999942371065908514039940737436240673441225800679217263836027531826888019396496884100336966970535973466835588493190088644533432809103636706740090226942127199023137494225627012276092738637517644842499845769307386348007472801729745957431375327425458032442697769571619793758697113051882764949331133656568674468201579825886756514766566208660167325482129590755064396255536731290458610546987697872373770396132256311759709523135365944702474344770722606241586573077756876599333510741923281889744270339565928319246165568499040173778234412940336692939545666656763872884063509434255022657212483068642609040928352194210002768108346030125437565307047560449265245958492972839225174611776891008832064281655465568167070848610640372401919006788142618700712015361814475516912063848237806497792690430439325161860282736087197823836754006788745221241328025199752485229108739075189594634343707180361655491657744729855188112167824125333536661236167256675802416779261813439544058511803012906902261831805775345329996690178660047167846125672253031228172173832566540138073553866278572827755631817855691274406463773762799641614909258591085115065239363407282625915376416680728372004750866301412048964176581009323583191927108789262241434524911015557017487053276455610068035391624076975190119449957502508749752447436799499435801790269191995346220061925384332253622696161230260513406825011321056594827122401981425647723547566169225356431498695867125563086710269571742365830904292785617973330186492115128914225122171088871375427934471493726041232333089245362870199689295957917981330485546810187792873613948276265983834399759679160420052934701371109898736962283381085805718603811700472521756821330934250179773111991926331026554921023092258107468586617844081483126374564937425141523883849291157959071726479965999042241526673819444020274858751217297240882469689530671124678041407841134286821696844232944700757227863180438546774666854390332022623605444479195839955192176380792994802380681689371336995071175674360181286629260406229342908682328537306491559152807616324734331260523203392826525634846621142416973930290232619369998859497965518111859652598016864508192677301290752746078852223198792692331315785877435443095530438625737420598523837357254542120898060530034513970640087688067190035143823665259813397354625635561311314003936824441094445620210604128070936108132270864044363690139576018573800701463807697438757629639110504233169827373838879838901244075399352459063308123259609672149805732316578406198460743226021985891629125254936856775253320679417915152900367970732938603782870921470999095121540454749264834964627075427326420865894038584001985453771864205756803502419326338302279659722033874610966424957329575674856100696531462756459481602316603286075032758927081303025035872201054047331001008836132657662864802188767450042292863866558866814206585004218800932523688404813954767141566930924404708216997292037128311343292605208875641394344971000231483932093520128689271913161377097711362986732558334037906297790655536240561975705841161731704697115164827399816811429823323624498212848642358656365037502092138386696612548829306540612652932240844400780474814579559426655432154570916571761200917831506404656875843297762507302801942273722968441092112327974143987138812279783883253368526533178603290787816089020659814567625909249249668906490301385135574281089398535335533045278124548261953642421794295432400028290882150268896570377876140607895265430192634364380569729057756893795489601901620108460466807835767239505061022373371243883640972463764274726842298556270013548259304999630410723518401860509544289066937178667802805832779212194108126434516989994159066148534400897273899466773797973737660496807420826914325580774343546008217394746996436075238704009100852503318373670570679911356972061152347965436697712682605197695988157695832348057486461166697022244191891414887841384796329477588121326042042750294121286318232948259548071350572202125554967057598819602214091529438029857411340376879244737449502904827755145588873515483397573075007543553062650321779800812570635660707166983369093594957689073348357773508206832197691489599305435168907266676658681509116060272781444670974375818720869274402226050370715126839094378863431286016554899086271585968902476875600870628288718842303251679479527779998228500016807793322952728782301974978611669695934236200681562667205308037094831617964878599960396176083155899328762034735283146641697685130132057720127728291738780060038136251211806385705288612121427710210393156965108949502195743878287306365508611880224876572099861869280795198879017626035630969628707303554477212011256500755679494877026685514379968392308004456711696922978482698492340307633937395837899804548107200095553177116969711054853521076454410807486043052678850921027484453068851643911832105512052282436764948816057896253526969219236346652980360793771635398185361316853685255668189206229268066700047776388967522059995841549768504069100386818385026762341787198242056701538219046667583629080126643796757517127983620021685712242766449344902207542971946950138271424772727848318925927460342516823163411000065099731212773496570854910387921857990560697252670689891957456990447180983518807188211207522240879187044387538556120377002970358657524114996685649521190982802199812585724126630031724008704833684523303482649435700806698149713732901132327185283036982584279145108819328979613459858486837358715496311632192083615565396806611037714500156808361439204124679718474735932170209661533163082751915646113146747686850126737600791773126611470049400048663213906647836518632821859940863531883073037622815018079831489224982040926427072022243452223270440926125404191610850759553215559331593668119007461099181598367262646543422067350448310658125804887781540562127096049791330626929897429645667223103617668300479676101656721809329977581340342764055328570409202294044019073665513147992945292702207673129614072974995697330656639075408797643342680124232097602066786580891621794182686492619059002671953535949729396757445677060596993905142614285579274029993419158959764903170204345301128426450967938809508536674170963000042544083778196919740333961472173396858614508899794574215304448406541718902123383685781737197482008402391029999283163028410460390383592184303830387111105272446391158358217415889094627754566492585715174861374210239045745052774331484412156012151151116164251686760188848191127522712788066415864326770135515155483245898448148995297290440719589444088509449687711564710113057901398260680395371127509881849857914160448285740407958453513865896275173653038322670153364095010488523772988934820696525706309477143564113601547837423738538636543325774080148618895585360385843234301897186005444673186177244127391543597664561402183801010430187948735612471504700037290183216974281040155562743831206694899590723165701460465558249131813391347879882250738220489962818107100662233035540447678313219811199247401922619679758933026824589164221139773334673391273396065605198001643957903196811363406583436523979966524262329504679746340595103957646503806225936771329062004390534950554747124302732893490442787532184303484531722092701173244734098126815348801949562521476287374519591564292428187112803693971695764437470534571820355064884728038075727859919660353271836736576379438752953656560199150654914450026450425703478978920347517525130779908930243006834292145863389764489474234046964118206758062807486432310311421479094390258745161757831366483142155333494649565416493714327515511305732335613036290896399668373672502109548669096041997551041766681801086573511713001024735260794241316355564582690541641791063558814710807620110654515082200193954156535826032395598467689233570449219948193513295898133921982069543642491417932441023913643493159763391954288886537852484633055541655406969517236760782752061848150501389082138492362446071123634556898455495492276489986733817967922296396513944038446650921557911078280518781160121870280561749806694273184609864089897550421869491251771294461306120521334851836558211012665612835518702134440042905555215754388991965591453964129493567195870114449721749311718587978614183385826587080287121291806490443360721301629200874004510807418675350172096202107765496708862694490065320859929715409864519310113204160668263086780202972261153507360710243450934375400443301135955631366199456983116314414531859004669638080334947418341635947050535441520923475343847800228709442861311619950554135962548671849210206920707748974842809860299463767469208962832078242982164851287409640744926828895811076880832582887473568795099434637397272173021540369445071200317436834323428703527010535311849924396284973206885581118695964693838183787928734883450876935217878329048599708352634055423879261064457575571281368879288922592861027672969716249489404399456688102492197748472634871148092677956874721760186425903442942526007947266124074149296001508953510220991646354236333163531748560374211904846960764472785986177945762998543838579765015762733157658539827807344108479179167097286572498401553133053440158436609965236110720550644329054160351988915878356593499341072848928471631300635942341911041331714165454149263568737005206087294562828884384861475079918398175048186768378833832336155677494700576025631740331992206720404452789631598055013462493976915329720923546908497657460815761190447305328896177901499034380669927419567873680807311231260594126151557133694517577642817854813767260749816259374841419030444412238809640426175168133098284540044792962762185930251625807674044060889983990716029220872512969175888773220390528142035844276349696188502720294708352014083676505149458538425696825736199479762781068850233001069716626300383026619513653686756650323928566709464995890058910309191450365217985928137739086858691951666091946675216895540032020670239822707959398562077337730301402698126947340706746416063149513779574748529892808011526837115536924675872886410579281164970386529143203158430442421302395047166557851393096012299657903848822310049993390229152172758641402782590220434219061881257785053744780565845774500514484631285255358305121174255117460279093399569043441367425828975050641052329326077366569444491923717768411693967740343125369846462537633356955734999784853999422690261781644213367031370825633150523143186591634044824978684842986073636904580297489246626974165305716586311707348694056805452421714072143055044245658962772213589860289553715326867755980526565213462283259483938794931028508940688829238500151006962787093939622071707524392793828923868924820382053092137270038857633370551881319973327793353729026880884639766785675871091589390367914810092212981556481931816742338407441666164834101303938243529137942337571672404627762436194411290144339213291578604924514365095331622410041369951311110871892352787176142677078209598557942829920290699340263197785157977104524840683276008991844793596946174934253874803502144251754969443810032971352649000652816931835514241014362426573125299929394231326645774164025488509873326591819909559343459102371267068294773598746201304058180423481328034250582196315879521915223683290628891835433884359037732618073948701221017760921018641870495957181496913335773611054312329109288587264382722642711156423362934809362805195878863107800805907294501304085520370604485205575128597549311931729092767395191852196131568494084171140568746970164909474071780835333836347211356239526859053025261209850290003505993886055887777915308255446105776082827780559930596687030140576581940451736518256104740724470717408042007519585705357308757341315753221756244072090188942991873647017897190023558881059954605866490872019068090010545797674041049020178217675450848946075119111357455727554925782206135183519082213774196800772915262858801462604794453478665341353900558320012803009166804926883846361084115774749816353708254668069365997159714227130063918074215391004087752864141592460678095762968685060358116770384805587532482770557690126378755174866015018676872621209717330797251394341477252117579651762931553253674537201836092822490048934787934508381017075147994358601364611737270296837821565024123028248162078847243490833392537702973036812870379191044796529044130349505795224030485131042053890602467012588244066408280683094714659655583358602471092215121204406539677380368834608550817372738530637612590776153264311795532853491869625923446707227273026114084689992209856567644279591382990350206317626479316278860289675138940718486178169218158437042003412213754207830217858377145598548037186978159471111634886900714122837327672494692614767173049618377553532038122106405295305095416637598809049540446403718178151242225538223002943463599058956646609297914467628878829241936369094647630269338217643384184736069588315640800205781547827707188299473039633071355076924571876511604726954973858450437596593276111164901918089938041704612383393039325573412675484987163116423361278266500114810044055488631403406847171902787370766176864614563827004362215678049900061816224463676485133133175479894017513693971678006702205292423473623347869214736394403591039886001086533494640065307402441946776216136343781292437427805286842486771983610703581466119200885040905241089117104468701116262602315148044894136892289167593542965750624754636294076531438459024420279282352787926457492520391085879788764150738316790088304590245317443115777298790727579234364431530904351529170441746834174222052094311991835376137045752215246944123927039203812165899077039214352168904713553535003661021966438570222766342429499428235834555314905896092986717908343730410428289623113495342684443440066859367631562056560971301626557296615527628059833584830695494819907585955943967425917843467284191241079550310205026465084324782610194382203712241288842501913291861242248916790339261844528898393418843595735610359183216678666154024379455861033392768907008196589621865501430330372771955771014093152364951557903021668414860342452082847976230520054148453365180932776451141875669938766823659645220297877364134118151332168415542293326385375404549735148313946666906506289650448585611871082446831825795102514286868736052247538469796402153035024933851406598482268478677516418035011378607977812022506192374574370238788057955091341860728887065891203071450476583838913086310170902549428481443579514586062596480299168537305145557002261331536217472345018103863731426748070123507164329323380865464186904645599714948604551273460789876585417557325609902556283762769516201876327176561219760419466443422396452575748052953145591547108622340539455310783482168756187814713972191083748091852031020788236885250951265627801189723805943112067884153947022841670762337087552309769044472489980348900901131900215430692094801534449007725245483583578277372059237370241221593362268563607335848966960935677111124623365327291452709980641304454842270857445703647257154477946126437531440475592530796092945939763811489325385169892173394668251555064512791082770431488645391436596385209659589871633024746406263422323212732855507575182652282752752527383945526116767698112472144476690564093968800242881776767598225779940029790319157265020635580666801121060666109485491563029888857238228321070864999086483739324939575456578257305603301981957376208625225306413275313285808616490996555326087163112125002814491738488108315748010962076633623540063785142607473172064237570547260906329587471269097099761975617428757132690511445476641581683397529288376973734150984380475672244716197606096614575914585462604311341496707894604566899938672872566608914495519642675347336477169454225387476823828684611743354700429193949790543971802419850602657327821687613562819430777375303950283577156344823760498562915272589152790340822342449114396907268057620532152335861941185599841736437517796533702882295909318743650596332274250078269834124067738008265189426109603906577545015712544367353483317005654749555402106585974374431530078487631441920449796137586046250549619615365350405440888012054539275875207037683224383485206212243769585740704457206427209324326571978750866384054572312467396480653160383488584774056551840470060111822589964195703514464920285457277090956319805203812459025110645451375651373885230434778753529689724500869037728623258495863718915206271209044246609551484895824803071305257772095880780682489554246306762162400278004783781269938326779484314764151071393063533111395185808171534556166431878984411607726940658140034337513836393345059565405568313301869545316435186838904455581609591568874163789576546529401116278440654232358816025407696678983916225501166916359236940975816200369087260039034264366807913292238613862154132226017003632212364178086446368537067126826889724554494377952358339253266495126640513148551090046454371921652107278361781054082208238324195737611689578097094770539172455551378292146525490740612853681522225759958644552813287551271148055290566180238346024060264110836164486253463809183264811230229338236284901627419628968525910121926082704332359174615973602898941491947198021302942692008119679978725437443023058375055258528725303382677063608412168372369238907221596241882043080856132129539827031195945893993671908398264408628278701886936309547588379618710797249890261676577977740911360750464080147407902519611344192580665319572054839608268965119379147427396851159042369228655299571350760674974179234370163075374920426947812580714422098159673947887285905024987782030825629970026566761347903622187769081772094490534656326099255843768418510422266824717206789636199444553698636008419636101757573492070600452291350519370090443840424303547839126835987367159726815111690562576910200285845654926995866197471763885311874369933570224687443604513262890755029608371675991583957612163362307945221043631664874280619749439127425253555219828995124681699935845238447740012287848405677375489264121714618218835351229553466228564769344523455724205848531838833751733111337845804551214711180958094536436810309245801670986260696559971563904881633962648608059798686675385904288910351600830003954039044686817529720593576490739723353300913391282600279387227169154929370495126340432463515364979958767547959670061107903332164608013384029100643047490580487682271074294521244475839757051306010053248366319036626709888280594322487380196275204681960219709886740448913260078205882103036724231793365967895218173101803046865944359897685850773427199543005497313150147921047278380467493181157238357800004467183963557398858776649989520496414346245861757919939710474008731811556279883828000463211201047672378190155823289122592530930304991606470690400527167423780007543819086452806005972305230769547553780393888239756368029637110051008224695647312204428319394391355748977217698809405765836406803313336145353222121074100848173128983888968650024204304982069028470637167221555875755642842283033763180555854213217736988008366609579379280604615243145782151175638366611863028546988830841036531436578828040013824756572206633500520291260243006619313736372275694636842086918498682087295412377906842732155281647089107227054239126226014662883528584656124040323294804607762344035594960565842870547182450121184903534317675770376327420700967261169314413882091390879070793304007043030877265473961006087278313813044289669572308764462387740583419263768796132954781436972745925264403763812642893424632287826583099985639313378707542410864763873747394531707999831146317049584178802356359164731883419521783834967966009826877173036516686482592165566347114471120478498589913544628789593547757609986315607096198133001649767530164035588701766747720325896310530584983831132077577559790665489738329442108239321559582969273984418098271031377274081274892422175397796395651214674442334080083704563116018249101130899472085869691510598732210942304437882901764073654570117540599292116690770301872411503645537026349497948698949160146796707956547848285525039845084087517139016014827886617826830780613012292870850655232415622202858726897442826144798704094576979107040905136471829157806900677886764265404993530802054043465756314578393384644194771035554221825858890266498211975379560178634522081175516330640756979590366786061238714717013522374723178775985007125597743928035580381675937026081032671135384406434349278633766712090101487733433089169786722364246366761340455543603688600267467894253335650105025777931168261634573550124071315999481066725617425858521694179064411042187393019238349187818055824760798197839234884453971606138042764339650504099843522972232245056173944000938086227547247540460332500860755755674419125530462687849637385895549710285262397016104284013477174969641007187917686639580423470873036050172965365609029736943569911781539158230674221328356489923213467036952278784152937477404603581936375416290082820470809382166313472399278684824598094432622287263671872823221336180695083185110019852736495978985632606973224350869090240740262381038916779705790655086408199330036217941848922729282098303780663146406571180462196979846458985005198088942040008273319677047234578283584789001398972464136509132058393749493917475867192967303497975816478501527663407933804968536754466728473866370034647350943682560913854246932998737291462901948664418893454845205642724263345398817193276700918449319598192176429531774919124106787082311301989030536047773084577695108672013223365033227011490291218722286485510026832930798553713479006663159908872584850263407351938515610064294435804041704824841333511704852260689325723945643308634067567748016510873367719536757674152774475987809186599722183610870739487142579682970912476505127825013811461807432468460872057956498571498858202646821257900272852983634148257067570851745593771356287562011795868436916001250075492374012962651997540467099858521550427006540867326433124262378366965768827152662192431063719608121353745764431458523513934420223918834754233946840729330218753976445851473844648397172155937829994222044090173936943614610530071061111922927700510701617219097082828409736407434995949607294117612550454813164941770798145955996696433226099111595331622130434745617575664376467793988658967779408366399546052839276887300418142339715818781010853165391726435513250451620846338050970232459595907042798832820620771446450466746065878770037040408329336993876460295888828325464860639643172354032250699986050493300311202770360880171902030072539379136531469458407714066913393922033887579544489424086827111473446134074726908840355063493408344750672961458451253378631336777964833088402862901796197180729108308330455317122633880150081851849074488903158457023997644649839755812061081565066263761221250676318260428900607150787673629459555759496741977812123771815233335707957251463317413532133674909931387574610027511017377687989936476412423215259345247076027811177412485261706275986828283485315511997818279694500369613728776422175450857746218928173068233482275546355552904483310852750299163728057888373305449269575607159819958476331362576069890516533416685531598550958897858569314139787203553428024973214192556941247079713411228282756258609208291934801572704165283542008582243403032018264931777038798897319276894548063494910992491650813987662474048399991022255717712353172727373853029605470055219273219474206358295618191860881374978611562935936540324078577427892631282169745733253005401905494495790238343156273085326919078630090631745722437558881047671392911341013328135639145598771336033793707974783877379251142324962027358337323668413956211969382847995952915831922532769472338481552206266681074462253060506867743075531904489799487525553758365746913686928563220221061109915650714236089833679106701350862568864632103111527881160851152466613557637494407613366379736285302898092221660349946569782483991562021996652734166179935462469369815847719748653981476878539531698377920962094265551193895281301679257761005444452382959074794782465450266769993379546679455481560722266999518930089384437228019380712119863963123135114718830016511123831281351816875735313774914233406122024933407822089244163714876675320386566829530663122337006030218238510129526992139722505253240202418635884254866610814451850187190584660150032932985902206195197914936699829028247508098144566922419615480444110856820949608402934710742333008372054638782945167926505284673576689100068469419943911864146024230817647881936321454340902362805160775912015856288579089925078864953587411011412027686194011678735781597447765896547326825968111681745200634308087109701692958910557146437090363762848808945388629410342353237846465975564482554877205777171014527615481244644980793807091655974337751975057411090609341859938153615553076020751354941870023417298235817631351355498042222186824395925663638893595135656665531431897163330573138478273636501553720318955686554131219919452924422005308108563345755425967723508103580033002350284410673905285671153142023900678347311590142186442580844183462060940705841884671308348536804149382221626205264687672731981374299339838320423418713698960556725264410247824814809112483482729395753426615013908309560319500912888881079076156814598480402016021798895599241197581847557347118144918062583108965393739618502673918903998335583144958546060436860435342138164358759691456837076945582069423302687668801095083074574263749116948323111375929016920772002225442155611409427369550207300503829771266042999369281766632233812177771514952841473512510843201510250487660238640449039546028144672795351144971303223646835737716653063167488176036990315158051362861854051829918318655195946395928625519760784313536347214921465962720524828316087157399077628082633099929465968185226928472861705529546831803054786648968904623483768254232711635893479738927960946450838873775340108574090384889110760779915868982741282898851803495549078711756678985200404367175298712753872845935894784164641111016171025534166896492079940460463382302717665620938892041392437804359610721008820481261314322175096555679556600549723339374716502273935368679504301011259630776154769429965930150002583303901911452152557635232338099302293993888931512888447055871954444511894236487181612964530981725962704769774641943391737690796349441260582468683016378630125743539143678660474944865269037816532230520505929381143883430879519698655599813944419835796200174346515529384646805165396820669659536133661712551473523405831883155553952802261332573811143177468160633986735823629710221705735288603546008811434736895254162271511547734628608000911813337226256945822179773175251151061039610256951345500001667574194383268254118139014109386353193386586980119388894869133439629453875309819480341568623103056748697188555526297243457710188736655657381683821101521622908090077415189265516624630830994813630813984708584115721356971308855765546270071409062305975043443375923361964948815275426794291710492342115464647071097654283518496151340248388775843243774203504278311190926216710077569342811268343711118624738333397749678997427530794211234003953480383049948638869994108524882516045802585109892410367882233246337047589512498334163473783050243763021444384849417482494520451842363074755304127496133573857351857603126899315383059076257594408150437167571260779987779078558763510177085272968298530162420744559929824352031123796860156126381680188480465880302649798751400683549109679281609519940590867731458479679585722499666192544831359095588356590506147773184689749243356421067893161397340213887364368884878411646719779291579450151304717804751546147573091013653256504762572765603983751616648333915208850845444629009831635491902840356417785621832176903399767040681052554672417556382460128024188485566040157906900227133832342005787318116189101127375049032787791753254275778763949530347139918670932604625143837763815262011944975802134233988360462758999402274123188868302416267886431746102372334931781644360295916663982321931013215322585046122553069756130498517980482259768924879012416746969572048732649237476456938251651459718263772189588105617618122996924690724036019490250466101701893800734988202048314874246201529073393155850064998764506368832074247084924375744418083713730076958569990815209923252401099221775919182613914889318002654693738208021723049808491334639104365956070166277848041079223216589376636856597276356429044491157429025732710902278647642304601690069509503610610359658617725921924909150834667654337999617015567394361085061829710445614411099082073544705398462297055729313755007616143360978487770399211087981012450187947118594418162720033678986065474290363166379561447245586283775114464495802537291999851811321561870866868193701258868195535482332908753725350901309712397468751640439229422849082924161669504875205794165808799580039454917082686368095963825905475924806115586213595083271683998872440578415591459000918373951363754641974242769648157531829072188063384724185100253226836718804961910166707569349132371547536212409900726224865313524755493160607021061692137184501957180880714391923386085633878007571367161092891968431148020803029803831358011687602929250785698752690040414089047568574677925633630868294826805885800839116974112841615392858074826927467054764667811486696634281126678840493159171575204499878057091491684244426309833650429063395601038773255061249398682981679953830970561608677469730060482355854862949792421882324843678469914360911296969722388771624634244953466903045455346679092521389542552639976176460000146815384316436720097276022300956645690657424638862796102157053427175782145985136254167893125613728025682231383796132833525118792181558888756034415388908034395347146643263209766473499078761205360196902152951034330207434411106534099520231384147086416456177109658007857944159216292946353993220147265704483063781084542410400978091316347569266478246362904872851674907697265840158443309682596736573534516466123891648455256792011554178354144957626663381987459170567502110559133404353857700682692338265691508934177115451938840167651231122394051357828111647533014195990490939715264840568492765669409945808300633258298386144170569817439832544656858332859237892169955549596784296922700899698309380647959801984887218227662317298165080217957268646392618803201105531315884987207854615797406114335642794839163383951687517176382887131332821191829209883191894146097818699030685116952328091587591176066823847581060752784577406842408925639758008552078113401081475655604876410973906647753389074774573207904712398438606401274033652605970239123297716501008341838862373866700180964264879700364455637218520780568806965155554299647356600383248995285682483023858817148781755614282859569633370217226968402671864861067051358776700556887893602345412851331437553321181653252001382096958049872524559687903956244742622056393281738025486900064963052228147321804586226364937335012343931056311699452697140808676705527785343987007051862743073777301433318260358497202107856721235309432507063240621500712831287014912296961560669047219005908672687157075173899295046428909263411505995887511083243733926602809666620460490905954666219652917080666055611770452143554123740052271061125050763072396332849119356430805675354168501597186360819539734672385174111855022223724858871940265801912655119247662797523528999237246235732305153998919842153219793228764366065189102925432757096661302869062056583320023037445245845756223084790755986771012044019603484738548109240914024376385249641924339730548350484094657414136912790282421616514357238056337520723028069180074766651562598714889177882618665704371057949192741009375014541392943794069243388921079815838832463228121751922861178689260539504073222070889284776261511848826446461481519340204649613184265533389882461288218312621951965172231237295200901476252598712427794168537242660404266547279140250501263946567492309575166797583503592627259402796109924217180835352790325607672905046880485848560697631763908080938850488926648322950167288294429582929973531927299136406347912836732376502544947788581503678404028832865754566129800557082289394067979910486945417419089374048488550924468782836965635062578637147516150033215707632563708577304768208644807682773801898812354630608690513781286326814008672716455336218179585095653008991180863255290255184410709996567047289000668062115038741228729382321761667648705743124510199027600769426748706026086250450292154105533141453825493985762440052667282350050734454815584663933604700343791048413200736698747860206516376962322865267725058767769736915292491353217594055654874139141039000813471482465860731446478018971177058663494842838817125996159791558682671346211647940922578060787660387064562617975914675213306575153350354193621402665273919662166978567952352494031019182395982072981123498730276763154885042143770143210724886947791123727279161781017134681706697988389455054236516342701771716159548631585575146507924646123358379320645608842953182075560776417880187771012844601924632658336223458258185251646601400263477784701214270435192449820732583172983999775288406656510190558621137292765197467256659081614232953536176361775916588898597553620865867656465300410216047665781302427141851826230182520889708884234980123537022270079372094022254407806754396723941342226813576578268951518312932236011150983789947287910226980177584533699334311540203905039153478950090616401313375824569771503902889329985661370026725622005787431621938924916556107965717383500721987090036268644073064341293840171963580772861460197648730316651723994599422943139533653681311626703278722401839350704168110355009533866350470825392355246146146760332273927870801502384546240052173906537776491298895222391616690949546059862155350415949456299198560797147700300647913957243746255976375982487129158119890067910311715261863251400671775031348860089863362893729382870668396275781813540870682928348068395074305012915170387273044266817384219341235914133722944403709960194614818729549909601425503468468706882388808039281837493236594657074272193457663418159158533586039160431799412774093798183269772895566235731082463123063437564444472640086081816027690359852112855633201600188157380727394963205575509313205255450387139607069183038189342126027278297702552648878651272993455061823164485221564146665039407191814409636441790041991985140482247415681000192585441746774294650986082642461477223560297406179267479428667685205306484744446866971047055712090871934027459668364115728069514510562062924384861827885266886233761648155804051768920611467187917957172108551636499262871141640847597033027245267529218292890238675144858480456452903696636330441488983315344729734148675877716861209089556195890370517740223637201909712563827542008748752029880981925202120865511797769110420627270113497089871739790660136224410636907086388271591864822028159031473522375398724514978347902141621249350337978753755158498502045032756820090923286126811705364050633196527487213272039043226186325015365960765704391968066822470812433715409977588434510736583289283819567499166913618267924408007945313598135769194295779175080647630131630330900553578365466214989363925926286639894681349764477730090034834838875507593426913896377314396974248489633296796020402994703442974737872980343376291773751311312482663993345963636240855206891796339516556832463743065276380068347903634888393717634658547225856097218749280674888123303948509281014450323016460719254099290247090171737852639745639727679322910475633605733988232164188558390089097398313827210415522123798572161215009933482437848291063445208313210921106775154082408723273267820306977690492192542018523101221998844793920069822552452890989672186352838914482139670638846403837987043291036234507022229243539781722988469459803897638476437046649455194134774845842539265364315115933686633619063323808723184591506647607990045438012924627719665599068069445415033187464045086741270737087609812155160779665635081852995559961581533145522783592958783487856994140448320842797264138451915179674723658255320878442251736874888240660462668239012201651087027540969288545171217432056011832525248722623038087575695269985373832652645847260964948318001422446034750288088710451542484362952626637652374738093900038416794000726685431220494745314039004170765053720326157749365172056930279836734803288815559010558393957315579559594484354923443678488012305199143316699552677492100024758633504452128239788212434147080885843651003028545647009169180658853864922171750277901594235249153699463161745849388163683688739494902761972188804218276624986823538874927143925802779631184827783600600735168106501609333624936059912209964102725912450530209802394528122528603638295517903645849501311745868606138238585028088045838335278305503032181226656716409363900193281494130668722565385084657924367328273493032510344785256688499373469235131408170731613917506323344819334325877774130773217801855964007268991519882816356799031922493723881393644167998984109942086238923127065223600824865444511945730115040734890290233803138099577561138330215407579742775579667590653726825721415866885433552000575077626343514175846276971884601070022420842566988486448961333211856349184642240184421329268931234747290970855352432458905363657756954085689751863982607811184570242618096856726494368426736129377504438320683092843019757852248792162154155025851600322434160329367417684706831458716955761254715202736752436550983381040175928337775340388549447551772291507048511226183854094685164709422936667473300941634054377468155684209322251973894879390339578786510685009252286548208648835084026135535692719833633329837653786584801402860467397787641898102140152166128293886455544125292267496927123082438658856678121614627200044490597310687217128054472042469621269137961283886750076424212019681858988479705359710706072698732132293096736281952608703409587851223443783763123689763077971319319849206932663549808796430846338131534000653125225204382531134714009033225851817649804771567909280577222729897599366118774246275455667940525733545986177504429822265510228898146094423755953898126174361597620449512805852933824479790550102103826305730375353980589899527347300280763141992430578610716472262566322329770521076532182263360939220967954321135718427462626131045077265818757322711987204702833879106268269205338496480215293214300377164496339456174361855351380795211978289662168299733857483433071810115760376251403816424163798901610514010653661123735683105810519104120663008002275805994105729187362202512123442002947546480288610733819550294728193363675002209753776852815712921187770890555940251604134656424461182122607463439072879925789677340283855230246555476461143778637254476483548962298563962052499678737949362602507000521225743827886657531864909612835764961836915128381247967718668117928157372456507014041768265129146313914741099744644094094647141621811683132587291565896617414472405897833859577660805337060251576612717801770380420547517312122817958682264919466954437030248856122944941167522283078048528666251791165480490447449219891229770378772055330971935550291421176365287037954838125982473014434767128839580268204090632802807053881220350911996601039361254362647537699833384354202503753045913547900337182870057880405187289530564413421716794383742345282801513660182682536970166066925307396578909423010206223703760205875376870775344459218613096281121200605367606454594625876490402817466234545949329816325951632248324336944540589340877793193572606812650590800273722601861323637987622927900734800254515054831579973442643048969351058011285508774702844069262363203965679516030983481625806508063764055357558816368164710322723109782440428844563801688967956537699041643782962176947591733504500163502942484142047766595377876149845494812262809524342425323786955009303410683544712202954307630786386096164227015761726936862803652928521906460423983563102124088256410676112620551312131763445968461221414332205691220005688873093078306198338916359780294487700881385694591669328511911185135895979687316000074972928618135052690960606315292271827297352061338463908683712261394110769572110470394166177658806533765095243068647905274720006294343800079762460389929167222129329505781641738970542502929989879032778132065438387057599936937215016246608804927173778690049383793465033093181111435632810559626143977713578961613395827679246574025496698834542641471268047624096273813808281239287127724825855948459774148135853558434662035554407528254526960729800644830091288736595639783196104222793001563121299661880621096322699165164165468454040258295116534743762605142217470182537196050630418280157373266363188872682388562489842504819892564772502700690663110342033981541230632163021632870938387442115069679477890301125312921489875870169629037426862547062176247190194382592101767481596281439666366927103632150430072464149367098811421767853395237207264937285820108792195764503669477514542255592063789749803858631019262565347688461435711772990356665375347750732207844145683195016523788359371342194076895854504502935362192513126561972166615715782920151369685992356110321617671601853323692643649205197359559159694353751568447629466571505363208053973961068191498883714383742308328340075877491993420273422256902654537243385413521635860396543158735899770397660567569627401240490777094759000640350616775574307403120911666309378315153407697003272727028393662447625724868878160815330592677109871755522276798864017676758505035730685059811733500799958630547043086390174078139381396751695580105129730728274885888983917963308767699063030495114428712395826355279769641260256737594638273780576424157549226660775195629155536326644471950889067702339072082031809294781740196866995064135433149828366740645899639404938007495423908938103281567636241378157428098118749635019247512590249636802422452666484009187171255669961327282401258991351691890398216921355648880741646631071186765729730158894299504890922122792521900999039292996815026183975631734414025026364132167669090708066217405925141454443432933498257493509308738437248020509125754232730209804223050890859012485274435325176789540932382627072429485538278441237873415324809437930787696078833357690464201771486991207480477529039806660002391008831896125821455102682398307250708328008890776318892534189065677676082677544442442953897357894002962703204780991924616503709815132521201489595509206152587348075933019369320487310513488740988423649199846023785976467759137275629499244483390911160950505529513724314885934707402231418415526433921211865144000270958260140750191000048834040078912842222711522796770825716095388556667903494084275364362309351039537493888520087449860382454345224156914763921883238706685500789603697795378331698152717894818783978545062224410881781345356742086387311706635780735935108381051570949257922216480321829474622951358002975119969295755039282332084030551416259393226109545555690372918584359793915018427705937791375965723226261702998036671505421353247577394594295599530529216654010170400159662716080882768162442886266624469948646859091141389402060108338945407826739522769190108924204458606246886293425320846133686227701906410958827852821971287856497051369550867078065968008563674965021750855323806924613287209265276017318293610602583072039787902091941181783561903208699611192263698684646891157012272951204458472898006207621056134495730044335143559705128649415053800133414159411190558620841680396146695130815108174415527560970063055644949919585332443610921400187575265104886686368836925179678062627339391813828424449488388229425354227249858072061419724779909993006908675209082368009617165982905915609666502670402394021829371187915919305216850604459179668251624632832500380992564397666334964144362320600781036486495368757427962311342159721934178333862485874889109018350651921979816848040276977267149829139968124162550336718391411745835088751952288405488020822048550606125053788071876498769356338674814347995408018576510978575579390378849139564487185575206672401591892422832669372501113643513998983026482279184474463100155498786947837826050350679361478192923162882805838312608838779296378816611279600732792129925807098311102693789404045447435683894068029171303846155931846811564429700892490692595740055828105714484231535822485284669066294301166516308495176278864126810841753296253135173466867155343752888796618029012654023018790681804325827472003743902227750117126027876166397684318775337183785114723802724306155180321198077862111829610878000236721770996379423188844403667688986312147867994749430362757943628806796253343360609254380252504611876803909856352206741823302399463260712439331350588667622940167242755852794415402876960812698477980319278262893753231587265997287411594031319332686501257851098993489604161388345121037084935652745159520594118791276486772026263613153537132765285201041296746807805245627492116282991981408974310839026446758506215843895406422116294795255687109060824579995593501054451878146740914102429411018787455854877737688999259458862678223930523406417388144637242719397846483534905350130310594768688618679068543322085624770252613239750087401232893971223343770626832281493429489900825028715678435522166181294473398846825123576177612361413369418853893055860332347204832085506924310043605764281581265644912469172725732204910918097208980919863151553994263002383285700265468247736807209643578127843000316901220756314366068917458621183035779344643201503481715290394205295068936324674390395003022529543008846564759067669913925746241064728465742290952766657818927857698445153245506634478804371167660582556769240374563420973961591029657869039115502340457301220747902532727063828763836011804258212221598742738214111373908872242277627183461025254331576297603656470129562812330565210761796991027423891145285046353414297656607536884525134860607281666242541913186112659929098774754391638803648984947677700551379949001687411601435504291071065792821596239863336519155250694444176580623096873153118719863552528868806793095257714797371796877661790855887033882478972524980521655105246149457041328058271001624446279769130645814613315254755249968858292606188303796931260755228924242535107158950738130345223743335397272934779374107239807656428875884555332611505020681577147298257752371565162309763056058832428076303036767893954700241342051397284799800871658821206283178935210872140554673060462691138220163605382610765168219863098996102516165584396113300300138200183884157796527206165967298915809219525595742472105140022630035284598773187333182325119484093989738852851556561439705419104270161071488781409564282144792971763768665835519185763157363724243073346677528269881731922861178755041342898347686480928243037494427898220651039401697192986925794481105420292105468875799095228061279926384080183080939238349440895987254525664332782380942654170903226043421245231660907821696677222710819346341394111810318155381779829529934328772317702824707809053050719575790128144765023708268103262020840522972216903296359957093255762899063373377867901331076927224246305235220303783632655752255859082059015405109794992601363536584303951066325056026722398416656953426009326384519200771269075569723858666763046668026472474381896950891375587357175191160049114324269769068119771077974072052239723924111545216562337606749884080151261296147152434135674062488241690603353596269552768396716251811883877393491373254993474785766273644903880342933236431192657855403037903042726630783164279033242307482486737975504954012407791636002515062987634776450484924436694125083717186085953386283011637657979807535631326142272045312457477400045544478973903759822046284268484503172863128257041624608660043414857801026009167244077276273503488077096872868477245269738717761747563574575066933137284723345160870816128175023832363354885161139013394026804220960362950763368775856257498805938176515520471824679535903490284221455919901680321516256208439101214714955094883963149001092407429342837251747689524867397481700780424665771679394313725911921837762801088091701851063301902469123279992917998179627455835213203835608017737000471488736806034601941510944412598897557292273837280035777687443671679175240502359996081970444468571385669595962602753135270246850977066268029460689847650235623820473850777427050526796663756686102155432480761068605248388101543197376949843810911320714931907674807822828419133283363241298717418485480954752548593962627853650802773244609024606027171421816855058870770716555704195701681869187986871990989985815072991324666972383690436946783877776142234113223131545454747944363003207572881262249804263841270554745844550958829672027336214196983187032697786032611707654651021479660400444458383471017277034335003524384124113193777484597121855748967637401553756249944548101327518128846875375754112607874537278252298140101706315465150297570118702754025919517027889847801152203489743163672320329171839366194991998682313231605119868601247711444162017515122153330737641741517740961641968763746747090762605186378732120697604136804905951166885575267048326536433703339394855605614704351823385936611437083026241794742247560467022288303767830357396760800939656852940442401593134743027514658405594498392135034135681265828381218304685760766660691078778039197454709787089918493066773341725020544033957437516895019402693836444809945524451096220944111138615983175224709037329297020931141902600378941389088254590911620299672932307490448187943387890414544726424887849819620094777768134792025126106779689838722944911601052319066493511280943960031048338977261091703447233502094770753763455488144548760796401082807193693260733178522632792803053315995406485971774084713452653407489672797840010944991154687470916353976805980881418470051791849114413667362654464984043789909525685036104016353520587360037561807709278609101906708071832482802536898862668078426069016515511578635733218042500533244936152751685670159979076036382289821933960577186173433403621613989046978339059105314601929476353416575929865961432347770421174657377340628717499616735990266094493743496865555096305605935579736870302236762416119771735126800991157156411031001437179328871770129159397978011796392107646098203176907740587916681562942783786174004915668549883172138002208177084867795006402122622477585108482023694128925706445818502167699157149023491378731174126578344709599216774634209023962658284692720844745444155656695392191680141324066315161975514063436180714708462902940014236676320558978663212523267015161480441856755558336262101981468561385195387734519369911267075686560582292691996762798462649394259048162657965857684429515484779563545658442875238932486037651990358564315612046783203171654121083684499473131087269506863373633244751034682381708950184182776501120882850146480941231745356502450663215002978168591492436061766588800451871424513994061741064288128778669240861262243786705568330693775793184368343594772097667189094677866323501191184719829360410754976714233100484271709541916636548529344142895107082537039505114815100366610842299486554819439211649615591780639341204188079425482066890868637465709953804952910471011108932875894787238199124640487608399815588656773864956900914886370020337517055667979522910859131580287114753848937862834612490423960844036599110555837646676039509287964462066188965284927482083647299983687814638796514039118778337490480147497367695559861502466843121233143825795659016330503441737116163286005799801647878398423209092958500115953304620715602593463720513595841125609577983165808419579844723106100978879433882647068304782825577322038504295253830770838065448960876665601455898045869044060654640668515262494928671665908345797878737824913878456633188347652538161954230392221431913114924067362786878860717906006248606500641596995728044072185282951915906908331102037568499559265549933471588062136117956129511225644840386433228596612665018911813137566313557997373963616946588702027312284687561669467075423025341675926420984412320452155857535123615243969449203912163861901113992883271560924295228106766606236983169708876044525527274392457730973732041752432322121200865515714401810386818768073248751520092789646766218252997632526453918356918325132261929162259847411611884997126695285353229528135852400242146969187251658474690169439352765484732620100901679590816359258825682279519536452564795693106775331123115435627449646505768311761483886893383022915217449949937998447731017428033692894116743156525570310109414398352826021016070071829001112321630108573225632690452966403267156163834712112122259353256132983515698747223193481564687931258097780101722793246315394975570433044205086987633144128296049296761519379999869757347633892554320572125967903410789544143523640316397253456793987864192121462058678601178227830418737423270951616964749954934129327082371883945486484258874393594913131770593418656871218538239097634676161452060560240792384809803155659953675121260596386371097636460695145817024641290987945254860310092581259446188057904988550275995315207054867767543116437036067775897370690709841940793987415459474492512026896758996216424373127975745244804871810673860314656337566572169363497315123395886632453262832182264997581402131459873807008350206684295861570430538852552178900898479480407326784185009551599739665212685179651706479371026051563223360897193221809189245111231260806127587623650958751523637983214472555691901200661317203074221326593261421547585954408814873504027712960771357067731164814932876093582308593928730957327233284967575044987194522871016697140525403795170822628642887189001735552119721511635161262834444689316640779532381165590661300437201515345851754130525819488376088999994542894038409788791166954334045463015639371061510528831042607214654547306178220448109708381384737208898546211819490486504145802603183258344242886136706608546501583624263558524816749427143166355573667970001532342506242924272687056530738660542226611336646859257828097016440235114811620353811909406541934947491832350037310694537296906312586905313060885535650983807223244556626960728997245137419610924596387637585738638940067320057791614224246831976969976849754712126070447806674897597617901333943460224453979000558263928762219385356932092643946030888606177245319022905384668035287635039138818017441395237925245054259755095595272181425615740751261881121111909278157292363253451999304104990037727693915531833311011976203234691815022928533671715619140876200228374616422335381604829100480474332144431863666084837997736312926333823111475484932405207521864431674722293473799181408986319998551397767751603871997464538012107085844165590475640140253929095845510167876537127626415474426993953175405397198401116483979886943545307836759650494503826013287568607532537661034176476864344633136180633945719977734292208805392712396262376527556651568935257191987446826850431442387249139055800122592045092116260724881196040940219652144174748976112203746369478340828935305271473806467084733816118230456876465925395246684500118881481319834860742828331086510760464205215250099802278333053688828044385726077692710710230180220628968539709795601567268531972363339966509215120780194009313552573121553246554050508606624641465195914596268083257404812548122330152309923012839560333206448971695586573961536635503097207458403415826966643033073449004250868825723380089706409540167634872876181415833164244249386093391600292252137506890249192090198306433394700752882044780310089930922412773161297055701123981296717199246536024792447332006627352993924513161824405078288702318337607572275569519903142872094368866348012382647329202156064337045978754105147238573090870592030196523096102265734033398521670458481773464594930625178823988093775261108641650230357399920973478411929819907088111528915999292585019602793414527076699134791704131743433980518597162966245123942743093721027709394801303238501212210749019196019804248627360375603751910362625417207072800812005715801926182076294726062723120049502921327546205528399484738165423475321605702105353758138073293919813727543334510274070707051338033035553358319542474827872451098830964745361528144338413733281470369762539305291363685388612233438481072471634311046529048095793760557491654638284334168821949752352276084048239141762938823060365655874844815436114100974136649435695812851208028098069517532427646441475355408327917865757178506007946441047657968152950126062227654611879020895753266315122237823481415963235415585449343463294927704931595856404487208615782880374302514558479615253215688241824742507812479797182033046481163982330120949177935762702622647104148054291251572932493586273704424129972726715123764838970385707456661950184459490289027531541902996632263728372088740584592522561945332824238323844498619551602456668138759387820603308916531100635833051195284544680846365144450319273248753013640662899320005148198960511634908990691311473518570997387290672139980268095196427274217575397333004733693598302691674340902353014851271504526006146900860966626474714476455872212746320879631391712601154532144359475401111927583436992942036335111451498662054785454901324167999919447715038132905715289113093223031610176838249636420003036141219791208315326127272117886020683153826063711452426652425399287038856719864706874789241430539370076343765234600141252167585144253834356872607397799399204006404133872017241022699088786137997656982198594899529622185807207805460747661477318602007307337957596440757673130277524576626522778078451056311919826315284534918394709226270519127345358074129678276148721961742965377119431719028102611931632290641539887199536881496106321159243172834302865370368738585929161238919434655840431804010982107033264607139756585077941215645124237140247751409375832525490457443869649641777858193194675461695048796540978152526230648579180553877606732504293884329080138111208951430605515101831068240468179660485608486777098237241213293833353826417413772601512631561364146035730852385969383789481123628033342565073974656149892330477155409020664846357428156148789509380881735386441535959537494148757868886703023295464570082207111744810568954702050574438765327467609523085379518448334422060934695150482354327843106104359842734642736535979752530085142761654466656812540981172045064998901168371676515692822951722084536800179911725250488448730584411159984190805072130974270367411411526719826530583423906244125884449496321896168681742554555087935272519289707011755301419554361929287693638785662316376792952584203778865619908132197063370426074215427498009863806862230015243263749075476972597304024039709518621735434731262889933774280008906154975689368049812229924498047085231752700644645822298215157593863426607922412964419893165391230685294677952337594519140697949688264779979622063434124925918127969027454946635568076211370982388100405510620448488485876659878038613684890274926623139404095099068043629165761805890156541276594591125409775763871412531441237288475060727035109284259112111048239083669097820443610134935326332456280233730146276325558424679827602924736304231425710617914296525107298249532664849703153421284748172776954355224321274659533273828851977515410687524838897927101823179309746177722444916724026518012062185283234833727602873842784692797113350541927241407659781733179302382437059492604001090542303882695342199849781479149243810408581361396196855489031717103542558733384571140704045575310870278575137584056339396515858971212681628536761314531509090773670231126003243857413837195896628308295980043780894279267961695103359037542253792187415245361436182514799883891679984496457710852350759318135451490970944851773282375907873871446272124063712331460712079188435110901124053112229184162668535340128253496472082955712639887209321756305236089407288477739251207573758467389905476686689391598125599107670119043409063336052321702241631720230323886118143011423241827470721723510922025554709700503873014825611137033707706002846286024560470323936601424612668813652466314954542623518866959340771226510206028344529137583055665888102537205519745564593129770023141609411072172962710411435705432629694455989928620590109706866419862058292005841137911300062698689061057708065089830672848299622596611608080060250327626405622295980948228082661164954465036806950146678406693135647261547705332471384908212247730740101597285614834916597464583958637304359420461723016266022408573667409153636252577500018605843966730094836716748700578986332006993324988675310873550731485318000461023269246824337788535832964554555094612425839825509314641024559134019787029155717661988428540171874601297567524828685234255155267758546319716489744530728081923433360049317059855060800652140702990711913139545655696884065990045273300529824209787410650187433480107065689193567214442179901850069550513668851062883445102606445521210474693427068034215070932711285521113583707607908565254395374852883728955752941034876207580169152718471360722062382678183192279602250517485175368513290997487547515776231672283239841369438230115515229683843001707969923108293513019667991357012667778077085284025982741624895933577331288448210512833051870132300052355495312410711329407910674207670431292099180772603772288797829170442248824028538591446362185105260513938403672195920174809459191010439577709965620059545236462277024458706933198866964175318733859261832718725393672422111280040440282089119438936577152208554001219155566122190288486819301997766500178580019030532114210157765005223002982928702915130438231729436035311797285124828096890071691866166479740118395687494948354320075143872501875729372246319619712726170682648451308114530259883167483766711769285889445721139164607640857537792593462570998770469647555966798477350600310870930702780965876507871016701252117908172425640680647830685444626007429041978959167479692246826469832716554466360898214163660679508252135066481622015448023114792633804196915303224922209669893847736560822876182016881282308246763741093909753627640304457984693317875995056495459612240252674537956788130379481083199080640327562176638596298773149747764076637036864433110065258734710068406436049962063347702227274274237647851529633770526197279470081810241310750384176924718927252428684515114794309787752175170213270592456915302682546239478257932404341953702241500700629828485075454258586479659543989586751838697316575112434330512895398386937546047436348406075861822284130650587294370454451506512794550527777428378721838008688667343299024770289451144028276386106772900299533209480080673846670079923982331390813717167891404304481402229156612479933899987636215615730359290730138444081436716468073361301945674548274907072626674459781900458414372504735766758981660477067836657038566381164184126187228114345540344309771351777286350451897403395629483933174803588549861232006638039530638158319817352995301999006955820503957488849389425678182923155298375759541473578412689264800132861583955352769521651726404529759750913807865132068200867169243212157659023222564429908505497089940125848671836742516567418851584695414218113624717002322857809074267046378073859536728343443133536589412479221338249540507756813351885003459751433312146844548102095240044844769111521211685478115733694846840526498949446852252075537935203657756383856609478477053097005447330476688134032285136486449212622399340842080433671189359239846363314696257821610987633710688472593201343161234877787288413466363008396633171329318966043269437345376195647374672081373244472339042959047865634062337365998722092188492454630162913489214201720853351878956119246682268843018505781435697447812806380293242682612770301032116283932653248467935519616183765035680750054602452702722677525995050186922524229301697249089560161330277275240915559311908821010838683812169360667396051708860324588857489046300183530535459880159992099295653205851428351701542138865015238831524249687842979119850305872402078009629387587396178003668324969965225135872388573601097518734543445000474726728646060918177100465031512525645583352537826740114870348956497841892446578546918058018908193337952464392636529373244046997316049608155913813860588528257966099215137285251865618770549881520384351825913960743494282315474218542112613281065370306652814055904776542330500773310525102419242950321528729541509034567451129608215006728945700451807882314237857460317513563025442640140509072406691192906137991853731650728473158122850005494720941254107111991703009435313266214794561009151127514760784738388471050719046402098644755902289593382157197048663583141313286159071359618090613744714249619750186449455258822161473255198488315334653231197877197150819375253625584785339451613086803987230837413111662311231692975558568000342305928284031647829658200289814577232662890153518330702451792884255586441487524986940450858732897272396514883947939629981353884766018209398957447533498622251182270195685295109595910012269479008930997071990200859376840964838652601091539294604342467680334858925371751549602483896922151202717103512118995831703255436704842658296259360670487013650215101428820680856516453674689250154607943717746938605315505132264482238339827874573240485587620361145044176763568329562286351773175387286290105310238219657950435538637488218081589352811005806303222398495385210583352923472877444113666550512053334825544594209639846115108872846587129627321994636445290944423468135897104377026566065996184343316243613020883829242090639596962608843941714811919688794579097730465162626247849444593423048069447720268596699419831274745761032641580561095554403933209355929966699933867699003786302108370692664709287959204881084339407173023161738971613927683040944867256830115415594022029877641111598818202721992935542918808073902581175444703519675034696222094874160727103547789393386437784435417165430642455048194424390462163893783642306357180084185709292023662002183820688463186769170552637045867569364701492967416610863636330899108902708646412565044672227479100328671327950752816482229094503494251020230012615474130408227485994111831344735623346409364277853037913164496182212182848727266393687977743059501577870207952348420012341039491561064832082497651913268239442972872889917625246167118543515325714616133463410815667183254667619978123675894308087492163156712496938865085967620235244450658481977659631561762264761673080278714393772449777252586109482599831052335588045086340243147626221189673421236670718633124264609690838127867758444497771502645847059112067468451559913458398111995970666013045432373324898333337656113380324749578382265850972578384525681401152640752892641573403764352088482503308445312945429968162171076990118012430319207538668699198402372353158170063865435950779901718521602209224099453972693107381183019657594794465306599350035760108220222468935335511616277977382894535120299786497285514462256706715525540645702307460856752013604519984699511576571591436250482354971080409460650101371021951309701194714074230102331249473814173897483412450404817723608510139350422421979787493389059746873295543535473746034272394207451985881055475526501018109880151537442842198119537604198984267355191819971594138893754422468309735658159193359604539081256819707389395978556665097844654170577595014857827573420901882649065458533990572422864955553683093992202021019853809961535162703327850398463841269111182930720300355556026794201499721120503810749149339038500495022437676415820831032100231020640189416726570294670352622012808587338314578558945432488988479540805351082849672634367325798618733783516406055458966993377862389966749090127250586420557369267238426378259814004645856361737638370048802629542437000455056183555845302337823001040135046804740389756778661270495586981768221665263671394317848513146723571768488420768913080735268768821212741401440751923340563930016130330740861583223558024303624555281222182576983796835888947210826322776529650878306892983263124161815545510074768974405864615552335730341010914347716789830925299494642551906195482011060511922785065210908707732247231695706330943897436966554158694841766729146415365767555434660793934535532560483282131261487006089600456759831504872281410314643491189509857290495018204281949411270485721156960666102907885547520557760741568821767158754185191147900222470278309056276784856707783778849269539601616606182085939292058836931441541767686354287122333189743842103345516569220451242163007359341331456000717848339129741221820249014391780083949037679793866052617866495242082495471033346759464189932295110477273874924189021981802766067742286103908362829609545825218532513971511014739442473258749474327390647824052942005351429598247595760896172106366449515799173844916108790634439218786166718914335384217934652244327852973368280183406074090432702376809847446586812161023870581383520294613243161644068052839147257417819390850416574606052396599594466602150116894485916303655352894351380116772376752753844896172913500524440997623184652448435631872157044838593216490548926645145514690578288971179056765856347638769140327930913766724006334277188848459356530348397215745726329788521283865919806623904905515759532907010842771518360418148242789281026477211000206362980592479740891357270489053802409558416059167731806651493929650365498424273865307513761312864893833071638261899534316161572742262959030749542004224436770887236074478379521289087888616395758555132267857180961278293471525741368078476902138427932812195281334907918971407151915230116484764443749849031820117317396944719742400346317847285877288841367819340791272200927582106130622065401988771717913395621843386744233720253422006470886868281628552372523403409683977334234810845721465030442199555101228612920203116319145617992908166374824640971363837297159520286436717788027756009041902909847841145647307860570413363421035538291568520331348054675563883065482615953032426384263321585457162076328535568257081121706084831327926835526107739642538943055523687380636248828623616083146821869682930054470774227209097194593761538967281699094368511290833387500071285024443535059375887089999300614160292412917776511965649618194698566584158051032352976174421161329357668724274791648968520387291764905419104843364181094076314858611651389163876603431728258890956352393782463246228367243885634334967454975577814474008378710395916862851123701283126812289748857553941472694283134729580146015526894497528724647515521280753771950887243635872495446083437221171957063793261488650069567740097860064678303653548609957607118856469764007077090801039898321633477229663607147121977743999115869957604155213803340042314876162289334918013783515429779068046854362578386252850483347180488520865634886378278056220670146769533397901498528691188438206087039345464341136509011629853913014735586147249417143213093507581074675196158451616642913159248948980649085879634409829018536687707902580931565333249369918846231708946011078285594289435607858749573752885165850491399475595175344860716931786053023168458541107366330098388552777763631013452280739243415386181133638161741910918892002634979264491514508473160134226334188016919597633811937240244991385089517753663574325151535818272656790191908524654730430032639980017836627989794955648277218727432249801264637343241590558700168809049662732214859431377217584942429241644385434353488011982181211105949556176809769572025822796870361972413247014650206949035171974247945985724595803343325543082570758707446609374186422802776969163437807200928419257616350936952082643671983450184462485717021302555624973127110542380023375206724319072714182547567894285589222652274076834092488907982807314587409142009326223770877435333028841935579516671694551150109996793493987072812698925207095186382871854984449673096427900162986690388071565732175434020548831925526314744351698876190668515242651672920769758874678717547397036309361358630974387675809245139680758053464039507151447374311421104353322805377570100160944349243633739058312706293376611055899088849990269023798112066203305080721207985990608428936358496892151325458785715699472416746038228274051859206169036008814439851894805364001971565496037668045292665973633277915644875139277366093031047374236107033458202248601686155052663420739692376404059213380364124352250936101733572962156458680743796058672205049755385780054707522301391647130277123185616426019267716679429430244039600096167421214861803360416847546971621607904970175136561703103005635124809460317475142669251684926916609120599705287440234767674339793164663482393631132894225688638417577753836985919604706371905259165747310473636852988595042156963127295413874621205924503566557619747916400169378973372386449751392416537225921840649652987877709428504552955232973313625540013811759923611644821401841949102997841664764907222620918004543772672119327119785991420389800545488634402611180809643726318893256992128634784983391825217637250436762825196509111395414917612584007092578171624037466873975270441082940473848373865025884699388927756991007585101146321581687145668419358407569788141519164463795704787238330069634398758278679491534763490160542884721880054395669822275881276391329286693316104689303470561458604562841205054128275925523317651893726334678760873069555765197517564303773780532631277624085353766965643893539898497274457118164392250133878737918307249763095913106927735423700836301302231535865852129190583437859517199395203660767075837730893603447473846665030129560103985638385862144441970089054964445680529979496980264251178387241232015675786091822738756782466773183609046715420967211907963788509398982767334457334076208699644038268846349616674529829964534870592309704324004933829775342972856095254884074486263513695101314308100579867172024696734890608666291943508085931718724267888517622568192368761253176641045427041961409632808772935891272956009666089475280670522646847002977379106493177013455568280690994714469770491338144605716159865900200330449516803226345080870031565362036490784408539363271847498431086052749514531989827833865539849416412488962989154476909193472884474257668638933412145618852234150324581821941853209620082104029400834331034344209041086252820380902291226350701718713009836711032096781240463338649264535969539609169964851065995078959741730190200816894679651497127304612084279393096113999317376205560028479683614013706797124796376994401158168748961153947279935898476363011662732452714251301140792714046300887119965719916726012251898437132443067842375749136883050991263778054101967779806617763212802904472052409080764914595149921820856970221618687635774435149707099740158756792973309187035724116817981662891970564006165321720874452727367163108150313834664844748130678273117626929882916835830962554942359471011825421113341116203505632715225568358582821821094017176256704087650514910582355157565895722815601373429731258807020056484725123023780879285191935807011742043423746503269552844945031449283728374635760701753165101188493192762175304824828834987277351051359589683879183759893371523062971018290396477280274945194414239954968260029774167351896470764299496664411483939090653159331025495408601742463843814389329572087738364743288808162536970327948615637993749645488637542532305163998821654486768155532820556977149621358883728287069517739829475163175054227754407055285824269437017877260203918091463729641397918405502066099603138335641159892082288311931718740240821366341859848813012774312389769306189110117075904329415697685612125503215630815845993974445579506366826235428133971288270467890304870874688409524606287949926286238783510050255930732290585493723946027684714124689657489540168677113855672229026918826526509738909761327146014816050017168270899914693898808885626272517855908540522213342551564831460186794348182217592803549233356490170488909889536235966722651091571890042083279680416058935976719252566958325742662519837366980412156471949221619178082025846629900942002278449777660476536732661097894277677274856140788417940736834754914127688904562229386863593825231772457897256224944409285267724727133892862179170886268332157719355075329635246995653930603198972824388123335318664093857552070068499025049317362963780776502933919607648251059746580088372198495818851639876033130007702623158932167224559511528798805416526403970721657508125159005227089076972862853455575554810588044581318275441093370360913054069588935219410313476032193838730503289570154181380606303993558699564802162441356356317299582233612679001893268163514554856747332847435409665805893159312842915331738880546468702163277346774235681958904804870034327855696726207590659810863630995172534868585852504729076331655913389191297141423890258809040707081519417632613581423915964736185242874456376319389551277108790574767399632349627508417604327162534274528051875033354478874661852251004308619202793123909805661755384194529106350943879993295971141412781163047356137474310068697846525678405083780361212276925898956623263396619203997385633273312991852959270631958459769688862429806192456848756241533292490847761190346456793212904024092236108860872931139076900901746284165566481812875437138979696826616839717285475587618597120195525714089390537445883231049443851834969564991103133443858256933652230137721336339939938196912592834955442705986343911476644600063999520024181925734001982279577285188987530798853429349280143879083687691681763486003120079445272987274272354735177725269728843775815690663801513065713328204033791572455584901059032345618393378361504876398634180125762530464036344401411683803438218097786808084014154010558719273744890264514739193466954895585646126822014609838533098127173933870410581312970416073299083062746334813574842351230352820450537108563531458890315102316570359976730665138131407585758119492663799554391815295990908063866185988108922660850833807419740745920322951881425125523273177372586856124331728301925710752402246593043579044735534672989780502633673525600369364181259175427515966342802143235238968617850537510469091819559609749356208344990261005661211380446532090152565214335343840982225362191492033248385064064142516210502880207224617470091900989756842070311653729897133095053488003361786862010607059523192815749618485913770060541963341703934736348936532714900394344118541748021255447305855440358092369306149539413325474744151275860087076347394736921349498530372583162855740570029513046333192055371413034977626227002237471876938119688068686083724215720571009732777726941855075091111255597652510957491645353839146565710984311662434808786614324918947734704273138052569634063444686358297157608699886440512619005194462384280188564531258048407024196810900767119877114155570295201811192539775735348322494575787360970297882115232979865427725074291164188295771795056028796562360143716316521668484339731459366475801986861279290560035527351293396204828418802233509105492273396830637426176430885522877393318964613847762223980709424381134411627114675855864305222693888443061579227129232056291557096110899882370733045805582293578260172438005330972129998325030275893189533575637456950394151937331758302225336350358695373015070961934426434510957561453524021384643567874465048909557026501831229020410962697628760927895308900241154977844969226919850617843371924641791300968747687789696469066424943500952732494483089827757986223799454679574303264936486367759726494872724452293726295594026303761848876997756760124444842974319241605504799594737563852918380971336587674080963261171922044884520405328721823447670923566490411438373751552285216483546258711220990200085575272427371206032080269123309607209454349477891369381743397863452263938417509844689337658137453729218121019054716332388100263922819788799652919358914446608362380524042716098270323704919341080937012671019648914811739134182199974876246542462103984540552878708567559274666679397748833399489639361915633801024204044287913582969929296858631543284926074752283088705845782584601108215375411451437892365368661441365094426208483794521159294570288293298957596040708449695040885272013234539477613011534149198872203201259857393756578260886700236482887046046034039939140277702352474932269785096840575600208388770519097965119474858475505127090432977573284669986749828191606846353174575407771036477115423110731024543276204300001587990946761174967273772037761975470792735888836991758396364072793670135048954722783009462827446708560895624441977622237832515673626407664359451847763732779330350473992744943855302870994635457392137717583077962126291252029550480614216935778832663747470200006554440183026213574607801322447880843402052618738459861300254775240552326897083135591089662256763374998216539068138287319360871132441144249792698331187845354709816387449561397475499341054065964934996738193689926251708618405342091707893892972211711780741771601728072300071476705585939537508187559633577862153216967772309169473493003679096507771579371867020712313539439192274867644578793314490084543071564552963999163963518026933526715448401155011262934381868755843553120055696704464223428745326333158443506236894993602579978547644674355832904358944153178510962018363607630184189300511039763310648592106158790298640615272353828514405209435293116262582283393917722550233476355570854789596902735770587984219722262140565729201185654126579473812312382574169404067193867116976599686275412391413134245303164117783659232792477789843488333188242391066633836216164258804517089075984036197852213036560584416579085963222638416447272287002971601205774527752819331108154658927088358575822494520432296493515088425661688446756036357268636221845187468689735550898716241188513435613252961010519360701397200304880286477609314753454904253727791159255159984215760383615136823008302720938140915802956971657838814808590581013298556735004387518138370114719085944490253225618283724925049754334074675001751559636111089102987016864608245018512155428085829618832660078714767268672957944641854061217861506397553647577555687758296201626496198313374069505631743959445024702502905430326453576687654258029632633070637637101809143456471782235976446031424324617325589497143884723506220380185832220260719163499744028397355132271336527696188407340918070506793191156001313086455903281601359809996639221344876384414518575835766688961900225815259106746877100287042929798474329176339789271642732571455439270209907159959119933534904168055415484310900284315010898747009946970514423376775470527560414152385209410154019427922355990447292158805286926997388400443798257901166815773849048550226430664603679742844281856456875803091700163773415196431130951552587480533715608950537541939267119494442375391796592439723729790739682716302747937749747738816799723454107146430147334168159585923506832046420746099760055867985357763721965020549082240839288052017847017774446884749918926171998730033055524234341916410554986072426395543676542011669071779855109878912079024728310009323297311647537795336195381704228735214251703450350694575221580183164169557733893897149811906932719371750926929974583262524242678128515037219209949089967575902358483872639618368222138258749737514136840305550398907783849376620381130950572298054420726606008731429828219811444757069770921812410209704092352281694551261268618687948006521483526685469965831117330059193176307718921939769833396417355830603949513046621313145041903895424697475528668996318278315767064193200996444376973793874807593622258323160458523569527286174778701334277047991819007845069363049620423320429130470554889085135099156014282468862402152867741466293982812134707195018309127296406868891462167656763168100026316083681787949301111811419924544275877887378402252646325815298768062466271430860038784207739597286314100482925468116497994314837390479872167166658745667505519242104011945220655022612784014657268554119733623493705049798174678446985987955213539096740900628631167687176946402437089918458016343103031269620422522621177869891546417592231977885625762511308866654578800563320345827344741041789833546304651391317007803026516530464176640096041013008126506890672998084947360442322970540047172225058777350523941966289252138618883543382425075965250381166733041022168003816146762280095555224698576453134244663512743962803691794466236546778063673180468982679211588492942378525189173054909751087044168542275250939081870317579856906042279095792023088167671381874650805780877774678380497325932591353331162870362726635129301979387780600531497853525727536724830341598642711815692374805800599995826786375561977130686040443977461820749565332969511502299149237815369432330678429093781105103323556108959931587350056364643798134499596983869517902257100827181348495139262214443772157781897129049982437249720836692570399704578439887348285479368011826574806819372207024338291688690077756923650339701779308196543799128917066283492406314592381816228059657989174485110637482836998866799445718962755599991657247149234355337344675069381625153406583547705225894256739929672073455078970106196276186163705945127260594844006436272733163844201254837241892544156485761871588294297098255218066536843872911345180345013711344966742661768989236858223384376021301390779899099177601512466359884864554822845382659434056022741684156135046611490703284839107665511723125705902530051294464182817662764654420562641098792313263682235795752719854674795413604363737166996685525590187256798842191882925092283437565172965470314313753511857594784442683309234697543657661906186793373510668261409825864112954437342526804771916966058718383271036889173671508863116399574864979491657893126065167707998538090021166082833314287656730985367814422020513808287812840910970546403852469379756090362143797784484845485794065018049215159669969458771287325256738771416600914426766162880480623230858402009700678313034107700003923363266690021932099977026812342703129408655115764565580297140349419786370520905948668697856453280781485762957754283681022592039109936378629157016079365938295968178817608166072878653059047586855265064546365731751046660525938797285912626919404996218099737166546536448583259079809380552937154340924097707839240584099719135919862583931175216723538577202144735039332575259166383728209204414128814520575691517549950066276500178001083486955701326892897736864914806732218085198530540289761696971932649818807845578173928560654028146644276129002892832317952552396386405044466266120054900480945718342021809154472919971628489491734688905096302286939904718795247756822336258746351773270896783614414976374966947126069643771440793719148412563723357116855290733413803942290347949692085196028363770313419759471530356581282667809444036023253323122029454871445059412265946071307897459828588921305135964273642616598569906788016868369068065815428006539273515084521942462917964989454239277404595452768261077979752583977549161058786034952992676519740409587269167936428062008147591399057713516759157043802986988104033070717593951253432315765775465124316217343769187724022669171060623847121743343082438902768243015282694035077740867490941693964055292554688026315148490248703004176371070567288273137888154017191205046227218371096648435180373056010807968314001255206683735269787753897463331987889446882743608013595196348629057320270689090262547044762366993104501100919105370355624126871253226322162157319386747421439927882485230675254199848449590659597739741010688799577734165619326364569782766988238664048415590024184353895634173565772978765615325029212005623016383482430743571590565616266594545561451152586250999671311362284515592348025627323479230927625952807442794411855059004949244821460555281252555026399270089591187378272891192139679459732678513578747960216295918255939720345214009123643871531740875554989326179563910357405007372134200827016494319952276671926010862172403885399077806547323783369293481607795671066671780745693369621472049779624442612546968779359519467953997801946345712412688044331793751272505937981149148703248253874091683258120205178165477092316732898839841756157115153202374752470632809674969434242648832341011761369283258401145082993763715872890056960540105115340242754172052104511572802935723484611080890251425153888505633301955484503731220571468203402287874152083655371933998385338254039711582735704043363226653656136365333131205350282796180835860041170528749485690745646110281795842583073224943521462867198679915285955100740929301119314649323303418005347465863217319274139680376437969456862019070253331823657771226695141613295511286580194788670713124955672033455412023481103151689011975031282688534257109326940048483545745755420659047568829903052436708528384956148381083809143508526377518528271041754363582964462920780422368245437394942492204972140768322700830007292996021871482640244015958063991657280335634507134610600900803619941882642713705003061009223452410431460717499130743878389128556512568748081106950369978870106898009051769295822896329251055917826206467666053304968526870494342428023469392284221781522280639816540117139047330052079357576599402006459055474273566547777207869218361902269957055063171938801715435359430206863918002242030700173046775900462543655434460040527414974416351668955995172822651339865671989942279496075795848263684052000687587490412066272708942133606633450713803558027595306748871464624756860960052698725552411871817846404848082706245707612616662711545514522182850653699039073043637204824313690135424968029574764479428650170520973308474523460875385907049151031853625010266941383714973330921221929462255193820441456804276779109228268790467799303561865228798626059397631270574607173915964925653353248568658356798934180695918450166958300818191906302237339273506134880215596161256437537133288290343214630432603004280257992901671858343361502412813125423419361710679883882652884385177203013804036414514791605277337703731439564079322017041245570461278356732342507286116127084241326361796465524205408547112843111067771522710186039776476401820111051219524748408905253609977579662894697951354790317422569678113590900254149859418612847452416288990385137117427435178399409913220907812574078242721193449854318168843325849114922553730179261568869210700593441850020141218512978174884621590297122047567070105203036593937534242724013111321523907543138879665431779160267623313515747719649523773593061473285168817808721682300595323667585467329623971654212934207577483081114222201354347505996468358091798798928653769703094212193892931180138429179391200492519575540845819944279620187753381539105640495021788994920425032683158378511507481529400104282428265757695060094082061442110845240773842569733573028562024244782178277643228481442467252784004762004799836298032293098764821128557159701877402620524249286573386756717603221114172189120261478112539993933416023935138940155646006308615438705285490824663814006139459691537514817768518847721354363440116067270664984617060190729499310498781265329365002708755152472684934755374349398221723122941896748583702895485956715196561480545194673778416169715780580423159698082167665894427366904572293671723021525852693164122663467892433545285058720810124769098802241303245662563165485130278994405260648936959757280653157798887738381978173897437924605778046602885272529004882263518958172326543187090086021395057153681202920445240105453896365795537858683614420250906338677978310692473980012785516175647188437545791285737057037624995556089731847204217649877543898988733155484116577855505099084789012100337036950753679372039485522438039995468082711816972900645541685833705764988049130582463743150744142829513378009545144112849442821902862990724096868878190299384712497656363093564289351764870363287322388858876360104914137114630373364097839872934344737019521844315722115713017009760231082560747532115403651785967243513949446935650696181887957954581903534568218382159236569637419470657621952614624966636886502525229412655845921421754324814838194921840743492820504430768017088288065976581844420671615716864167516963496355443484800239987688806053624531288289937655546738706366336455598009130857960111732302364116403347019023219737337411213653561747665148345572917433761579208851511360572395009639477172334205082990735965124499621157274088626974925094480828035970618699103865543230038670223295710563412406442159409664103140797550751959194526450334760736337234958320225781750651976944372741228928090086881201017014552836852541032118691891025661851775575480282968100060950900041842390558673389460789778771663078376569641403565267373818849558017315407821658101921885683509952425260791951910552168435108816456610223710605896746421472318495614975027731143382304053407524816008038532356016971530353502195857942465140072322392625553871484181754061713302521980707763259078069910956162276632544703145407333150350617039913045792212481974370047017558248437330440177205707380946983878520328365961011247289350748852303288887739586453668463127948993045724459457849507785481077075600713339286642659492254392824982993413422660688293789203493545255997514724302133420647451193449188275770228495387290185472877543769911134629141450033039315814792188512356844093271271015676052785001177668630903635837789441103286288835747367168458766421679355622442977922447788201376362007361602793164579608219471548717448307966574137937725566031013658087238628671111331781035542046066587452049491117069977330593542667917398935289813559635036039165717980744984271337036872105971853329402197965624519407092046589207069559032806056778531412587240124983193407134390058870756582641785067699713425620364010164083009316957331405794845904953631911073056684346491471410434442109137445976894686476336697369001848017969545551052571206637424080651644544983442876264880690617405617734670061848627794812998121158341634321866860745806578751567138257410491326920704972133018280822315753836478557958104160604551219419449963982236650199797531979568310558140941147302384890005391088708694139347107004396768493649741245010225033115063865559349070572353403222028650369261057004259174766309817199498598556074249046833732553227988533211542025060019965563778096389833548296711379703141693563672713107555737072893720911611934877064414981545168955492575579851931360717716659217089489032524409381331805584387236515224193666543374585543197481656544883841093977983906446507567666557133980472693163994987982852111358978174219107278263957155278197899642556408245978666642482272352027561037136052971832895723753713816869966636426345647659166449281270700420255753318617953503142298619758295175781082450105656479208315405049784443571342694035132121409207486662838518947244508397603814813427195765760990800483227986751718128795053263289019305949787626976187472773104815888098467716563062691967567650968935320653756259325709721143333602552883337561839868960310170801252990654791176236078848570084219137741592792997574455537370592630256377038389618997182547298204970781944054218559853080061349898115924284560504505593577720450297715198650309407158766529196887933227951191265555519337953947175462018631612441241340782975681456445445145000770087685537332534505055474496797291567931240903363479328246595447510979306116153006277739737665772570552659587273272822777166798632216072010997141699064423736743620256760368921535403960125260356286777661653984992957073028333021021924813079362608018744455920613189064596529305065895435494830449668905827412245684311827767097249103890805570165508292174634988942882648926776091399804244482729945368010590583998814938641301406144833329611877260300837243601275550265089592190646851175530055165332086978356864746813513952359884245334392458359033626957026318530000651124053740115246256022170912624474646631241528853484465886906582854860981643285076930027202107139654631678095463688470723582942790157586670522863151186606299002949169286689462897908974137092948558342496796453104528951558907210705151535797618756515518666615780533313598323349203793633046118392242028006997754258462844562999676542779545498329267907493670301454178090189071292721991552677196951159376100138841793480372470117999974996398029051896775581070503800267715443512204462930391553759294827829214490311414256477099605398402526324545670181305099007121787678886106685027559616220404474222740929626082097433708793637132625751572082657632260802836630705477942910195799117735991376665954588878034404011189835152665703904716869843355388573749352862937827244066170502953044625152980231439423228105803241666343637032557788303952976101799615931536829027570361275701125077039429770304768702900115273032473932492672210962478617431850598955545197339368304199847352997467152302836809840796867356948890586659599931352379656035403910651231164825246884313721738159716919763786011561511893019973414347573876678898599515211604182912918262963338880878916010644510633009929293710891388863694802688185184256046313346598968511545269328238012438725398486465655701356378177032372885418937037255928727405660563011410872528252097188632396374443519317179991953679037842815388148238916331447831114771124837322761926427350596219474566201622409452864998193946198156237468765890500974702551597114341461133929269489068848724231773162030097529575040819784368949744622189734631432220597163488584743521971055218512080159362304453527271225363923528467412669606575730836208428016553569462429602439176300391768770706838125626440827330834233205377256143066753486995127820211700270704158901096665801335989104154174743087545011815714337564352510805158073857912503989675197060116646222840385374148124527842215754752532970928577328732367359955994322579309945688144797852284560053184968865942442947704207157791657666702657054979947454531860830190399812098531845044414846236735210879666291996981740460826893982914715032817578647466428427555269854779614689722760638487802288425362912880073036452875761512709458523990385944193468015510022413269304322284702528312687138764403106224824595523544391760432573402126531685866112374825605142179944464632921715877634677853785229572416337289748254233099942192709115311973142012642919573882909439042763397618505587432900012983506241657033532988766663615639054628252296063012990801780819749773560135390311140751741472233497926678349713901072329695400211940643636875113258058190043245480423614726896509892682694434398638027375652312132005545732997427490606873725491935965937321369629260468882534663208832575791595106926060096463061129940391838605288497596356877420270043382919554964989483047831308138624847276157467606375312552244210847821958697715424115634241271411515087777483731872312189846628556583407718685093194828603221907616150749187750407322719579244687304333970937323509922142536714672636168874529582759602508260563550063964240021491027367062328812244489801853479893420678302222957091498476108218592796320031019243743615536098083549034594342664027235576961904722228758894587414847126442859132561961021846422273430175231773034440382185983330498829958272743291236564683752220580666136000250119219203827161360959663980489473920462089448454697286308850394988423653910240872881203452489800110559827122248127285387896868030444576174346658745454971749623744921630794780245233236383554567487551108978698697975155271252317543470962005214337844292847666069351610899514357494297758950550348671685790036729988580547965589166061971934500285915707643661102695285164805615119986054677604770719925590880591935904956538570838023001353344018080821806951540467699492999365514174486999182935287588097164970290079207475730652688928961714155686193736232579680422361598076594556336233430799795880892878735135324364170625840465556668312480362545173687194404933336141899311283407464521659350776988384689302932084816617529667419370628883966059302905883983501706611455350212196395009919052496470484190119714514394158245931217035475629679502436568449027058028505981802528134599926167280616825143653387006793567956721847271018186023658044869582387536149260447460408736803511282690770330294678339208622741420024307942166049362802287545463788998971762364000960254571671400718627471138188111961246780132408994574869376525144362403578202509306357133550830600975176220515494076676764650183063694292308745433792737860112186985501588341047841497112786925215727461969010970988786693968618507392582054593560637725053277751538597895388018445006530245840359881048983416123439386205392590991892402770115691737296576093445436604844351756297196587252188412597305318893697868243495496211655860400599831723978304238237002822546718215174255554758651408522354865030897030011671598170945460053375800355326619109186963734919923468938160961243583292294968200623458574208050697816020228652283368978037415251297821679760788894947184187886340318460347698209259664545471673044828466019197629186599774560528381688983970128654877030497200930264419529694004226277825152158749173569606032809959575931862569550948958864721579352736999974799634925362436724514169855597786613363196105448512479031907463328655748427358947346357796768298816835978667600740178749711536192168814302549901601331777002287375222435890936089870350014424148932447621390361208767919250772270410835787020666701465139557356877323906924372991724007937957443554744551542848969479908976660733738647250999686350773426514383579674615145977547650547867158337701568815739623343738210783081230159331984100326306062305002319100980703154873201554622193605271518578461306069752817234332692210936719240316670161427702427746053514421374846974721577982404310756137463850807225454040834092756939114235757040500039551145020715481809601948415070953068874463746906041176302720847786062679098655986695476216055059807363756258304044986242842773352906873255172471441974943001984408090625043999512278480291453637072219947486255324713623724912252018854940932583324016081742857389323726661984947930562758403386474061030597377965973780215003074196894993809110784020874524706632263432761364778116860819339618170664476073945898409492135167987145288060724079215544333665698046778079484950440187593811264149261894575287021494999808002443498866934673567165966508674213310978268719171716760679932270572521418389056225655847363579205959163911646514955330316916215035504946610173430566444552081847082413353036993849451675563826482564278995198883606197661508698749083994317765501694167248980846796721471635265616218964801839673285519739643978784667284700634820573643248790407594468131048728405051060566489274744433080353458979174795757867978997752638610054827464749289656733426050890692455301097496523596787978839207960375861531538246329460680504963894801648729782127316421193453785191589030690500265677652836201752690877057231880600273789779544711251079325848594965303748202861932547204765827175218140171712839498165604216171872627497117240804199022383189166289901117893481548176207957738579941972465349070340579241041246342384921585677158056495779735074272284069144502493808187857785133848743995055908844519633271863311155333633646859503303712284420612829660280154107783935203925861358887532672415929752005756540867181345143200627870127646947162504812078124396222437420824316256554897957567114638344939202900750387732898222121729326599838131549362056599199540852053775838923163403331858333832527431894749743052203080671095871123598290931148742083704025337416406307508067651196021556051754938484419814294883616913386087716361125881191950883794604577039945670370616535599243136935661222320439448691807308951531882644520413868527875958588671983557621990343984039808081529713270124817944781507493169798589305811372755513915852191848995417738073550848833523790037292233630860865624117229902354814118407071632787932172161520448438601795857597931621903194608080870751820001101756939050752850521592662677409318580524993119070480533871811312621924641709061337297685976086579949883757155773223391052418933311065166584636497993418544779718824128646753826801497134945415792508006202630609841930026201323983016545741469690920768725367068195347541645316646827304255457745099775693130962221836792147675722916912057521480008004104499672656706977643948748693307280386667257962463302579667033536523542392954643409665303376877492197536135354135894956996808463362020449136729895729808062082917746064161515137227356119990155692733327981320952665317486939951875748104278889215528977131519653475830702310438153680121407267651203745609863156466889308904907243246552713143724169371445964791524542610687571698128542835343894500245011069135097052704791605158315344527392557153281004901887371154049920143468943972796435293306419380227010838573273977781341097487030156661317306312036589987948280047847243823196105060992692860535220880199682915378217481806751017152889534270243798337548458435636378532189027029921228476806295920220464467584346581215983238278888840936770018792094381158355020216669662621229295704903576220789077637137572300576489951970096902418110000396571836796611169370044625340421934894998510452086818482191325407105960473187373487568997346407960551172109965754250488643683092282219385583318775970318200709853689611837126021430890546739852441580917034960234462673619005835797408844497724599619579081445608970798058582823449154725325059315437464908632119911809040486402388216964544323357247899400111129596094392190268302002506663095386361656551399228246074748180311565268242201691821147412693971450570735661039462944047962506517657920332774390283351839438953628673639054634311259940474140995054065330568389737621602324291454213409333806471936071446474257665629893415570871573418741282932907069637321767753415495098995631707924571821077336090360406155747138629124045844646424343573082635512485787328293881251168459358559347896443870046727916096612174006881388921946949373086363906741804866085013578006781581097997123455074299528195934136741944549133950805456500161682952003721858548133525276066747829996850912498938400690826420939876400048197782991313412002633172462821618122007335306885148879782357708151942649019974553724554679066710314376832907474205267298724296026459023852420518512261803343002888281657074667843797046374017533605243962056750797966207975764570148388946729276762989049400826333709088365066035523474250741947448210922400363668820217013650861703431867933060270882259982704009917168781414718113377529339219999129964928926378845525103190885086091843830878103378559312665344001796839479426386476122725819255642642327155650456358499526935323149353987070455991831859732638209029743394673537783582609574889934847998331241212134773415368771671525817957112440350476455464135404447981714844155092922933836657650618347049588916000133205097550205057703616258082598998883075883868118581367345008322697146404892929960275448092323475179767763094442379585765264209705065988384541112783319035329945903335511006235720910937585660315126049612349382699757475503553458906822434541713035133718187890752344738558164791462147366258859361157564009815000347278117774023516689706211542613127850524146679757248327305554672385890356649258317474148934503691289629613242563568189081881288833900464611612353907511961973122284894167140284591059244114616355613138816703702183454695726595273490483366564562781922399037631886485504978463218301710555189832979047169367289511434634704134222786746295468997844260860483909818056411765677741131011736954376581973100239678117477327561279340833871558605068124651871623671448769095021882469439510321407042439758765259706916921123851428917714458798437405701494634294878133886965201948005279411907959555488939387236978678764709241920523760722689637039871058205319027920871514397800708696970100512733191382214171348568084700058755731916396237933907358379323629068123816412518129399169729076057162054578071683080361046228111965928691993472171748181444759583347455985832193755251478250816253372325763282573419267799881484027648442362357045397522339627699881395825230624617249369895525173506670413899750419442917649754003775286803142066931929511089870751297210836249337768318951494884944993322932230015541778873032119406949435342612641327964849073571221582733907039637418154400456042847210280022677559930276880596508639403071141538580417704640235887781130289702356315099453580214839389416390605028615959565811202971367422784063253810818543251979295812321955203349497128781869569147184052517554646469638899621989846157863975208053781296006453411797211030739319559228874442977870861929174295713636147644897509736002028140206037074973728252592231602702841326958111702946952332167162106308305038060888697716741644753219866855758963159144703340892783901751028847307732096516300152571172279129469709180636705240716480060756115944300114669633553521904421386771758463170473959566911806409462212144409964103072767553901684123654845020672963768470088430990127845599168540510835895374255327884438667698944166849378850092157222342562833239463621811476912705143671336080383695327583587058773169686281586206302121213039478442727446798355705097387010866764727054145371516938289616563755612125351519609509898777053875754740605454553350906604333979381355889746509511963480188111182346277317859930660692315752930919193171360755047065595665741783906082853474285075412361501788676201080239892951550998704912651632448651301389243549059585091659877535634100403133171325039013315265169146284882518122159775463601501749327756230051977816485817452206260330360074342336990929810916081396452622343554878533351807226644510883103460626924950937604467525781519583694545259668428054082900263175146044834324555801911043774872240980251053980560172690129370505398499382646263531901107773898657873499607949794795644733587746009632932188793038778353036301705180753862522154461564880118456521476204025381718277657986707314589562905872580898628852681541808357742956536910839710152870277522944152695357655556124062140796978612217101653800069386780388277222880193876281398436331235766975048873997816213748569685733321525255750886295134187035909221241254772178600626416136222764520168158124102748750064239794527961168022634874519876228670384065740653052223450198706730231867267220663054948761090807606552345024564137304633711623409930546583854646278096531254333068949913123704646486562780526553259286120096368200674191191316956173851262502022846722089682875398905324029879602669678455015921725438676761883706756489983980671814211048725419425638511107687795851604969210923238375628847724645004765483278378021929433990329666391642484051396388269641560023355446428531584569298977768634232860819981129894057648098076364444540635205915797616503575179323489057109293509684506686489709630570152068734375665050532278882388988117380125732124565689927574214715929367091061218275195009969013327692297561210357621544959668829954773492051754358520318933009961262834720518673593404067059888131123734928082424316748088168693301000553900314398295644278560448195501465272745989022279399522493374911202243197394819358582783899699447175325851621950828744889575941215479371377518978819440306302241063365160876846976746813969942365689886496736681503290266913349424868232596626621566505940122349838791030493292219620029883662105818837136185316136350461946481082930888292739175699620190050757100231041933375443463686500798864405139353665600254414418400168779696091835539610706280422780495302663919715555285084342613330164138907140031609829969957784233286987460153121147395010692963691890292430225865196044277940593645946711824450081944054343551889662700805469419039454738590579068784905062829087445067635995680546349992666124035891051312278115630768209156615825863780850152101993404146344233130858921633775247062611807416999565486119364964656227949573266397737473166474013176580366678230745265413875093817094615793956320894627319769273399193866676995344882160901921467413746786385481557245596207827397338600425164830192970087415915328414492993333736652696657464542478307698194482360507882529740980380146933887554479791042286102768022518453052875822107887301390458485696997045469634344422315155047534478904921818371851895424647976552822323387209997111282972754602905498863915645906390295582160008874596305460241643677789648405438899615736389605550232785898486686000827283825842994522496059465262013837514435838239345491491674129620405901781932947093745029083487586037537519937896762499616866707357827522599147981492744302619424052226897300222112862058270672909432897742268173687375467451428921405537301437113359621974882672106396586054838751920104204690720687410032421749401919408040593757460540885682027380560068314723184166808528912182856652643865841988913742176276181597534429850101062801740106558487271050093080074952445561641378047566044641036261466852183594561925515509776017055420555898194003996768276421302465821968376856148742475757108296575952215490909447282587547013064187472882313915644973246856881070591627372999590055891493139307044875525615578178168813195362424393662358595496922607995734954520938249612465997159977473389025455558678952068375418031158117186473611412213400041278959633849663995234951993566425250720631353854097512983576264422567647259002977506663394197381720611881587789305331924588165966269391076643562483422464460910626618389378453531381422193024890700381679210614484789460504373221782884867165086520776116664019039481738070696362200606961184193399270374913884543422033749876149405760063921235557833643154772759611972574107031570546964124054294046900796969541952719942377823791654336791366601670897245788996955392966857385759975570357376856919040281418041460366688393394784727905140872220036112243818450717387782964603281491683846948665885803580393858686855689717862855539439475483644755959636833258795054129531567497099419863312956298727585922018485687027640464856162531556774777058343955297370467908691984847008467468030347003807475844371829522187730338193788405545907351858260035463180032324444467680911677614944615246160503716683318576638428861265096575894371359510713384021336513983528843519976913072416791857325474469782529015473962023846122596590074629773295086336840966823398792394253944366438377179837544538879688494335562259638986794741748325997050240521371932453019216230414224917774520189512998792449556676305626300769988268869354089845259655651653104404446929536034003337269573388702189477654056753340183432255074208961472331727631358881614677529418890210930602127599184018266648794070772769039848519727067498734007563944672362524473784029808431028388354207947868645677664555301661786691984380306258137542182148887062048521826256625772329872652839814498078864041580126561152471977705986397434496744368328667302569415623390140281154618043726647210784850745278037212695716111840668443038494333077620418482888512826732283139640880313405482165287686168062468102946025523940209443345238498799213389782894547713134663040468519773785819903618670405644051958710885434261870307381982300766822087177201971311191695221620783788123774004087867467356183658892478184013994273766200692578279940686714955017386078231920243567118733910555303527031009971915979492297310538631252617229949878042001920685446426939863374737065839101877673830894400174368448048233910025104467078383550277135996063281446010438357671229444278173644011339065005875856238641009059167967605003893976118279053973801089509461920818728093964257876422872218936691007701490186511714208043185173401459021198942934476757259147571327484037075339761555041430820376283026452274037526093512571165394750628302317191717808363480925347973583344749719511686840138539675536888350082281722297139359201708781118628007822461565934832670895247234835398196033135280171924403826287182790069868524503506914695798952530172552162489002350555757582240831694601503700514141701066403722169262672815409657447023406997383781530505263255799448968636719277679224365066986055804912406979042705293866922006865599142687391930424877971414463141225963671876834807337072017248272836588652712545593064054242436859346326405913749352608991158115458398868062411922489407252828386245913945944805501873498614572912949724186277168635343609435231068425329889291959452215696319616354276605623988488320926754855124604504395889473713710225191459185896311361429770744338712244416915521986214212020079450361869186328740873993974746251172477414131162449937506050923074949816810596356654757866517105401854791601118660804804415917791086116154667063442616771843269984273500959627874907929887570529958742933107802413812953929539084493559274236965485831475675031850886156236610321045933010529883147773181874116022081913718771527199016069881366218507978214422612911796636374403558232451834821388123688557471947966983357961666530712707393784917143879668185423841111492256614281614137186465159882145158351221764467437304226979903930698852763586721418543489876095312567664609393491609670829604904443890261883884381859900119826192053896408452990278612092120345294436228764883452569294500084387983523811662574302284157721460029926801736605191099171489589283921701165959588972727562971878561391167909403624388135393517766720368822986814770872597704656296544474717817089594737103539551352125535675439090889367045989865931418286001269953589986151480129296752829124906506766228966213588613388258019139875862069500700716591285217022941023729947484775671519354291291678094527428202863869479717870109050368419792729094652505635877183112744605523705749208972528838048991410105605026938622101434532384575697351095335788207951219448827395211483542441366128533097537654307660307171676700196162238154634530511164006412655973133024927768476931958813194311611095739643004519998377189417763244384099025768324646906625548348119061296460607459971048773793817478065868177601439872426830271776658970586763141048617819857926507508831026430815888231178673844140460056538449901877967616234685877272065181664792636778403248479625837587673221052682491722806918282331261936759746830358965943473364693080112999797073401039836761194968062923222211997749038453615514195635748703439115327937214238868054490446869133554457028034404486224856813232442554525057656789584539383166614262864728019225058302178100647456876344854826663678169523232792711790746496250445030692981612426748173286332750634670474920138837445053515672985207283691323382156695750807274805707562612555304894723516019878348460928671168814673854697181425798922650736603488345331183124394514459526684484055513748264004917726231453033125368864734111089601648244710663909399810417500120145978286494362342502925273571030125116327615392807689549904690078895694541969909066686449988064937701125978978457786855255883631199434707223364971474924863305274814832252131523498420059192234019100079456319737719432725905868902403171981755412727560626440794753150227721611397125217476410197947741107333872919428374299312294287356319667375216486541208173499131868472410521976619152935140196308698104666680221657314130822054788814537916285513715826160569578670120417584965982049113505657527609683501504081633130908717859283493057059584936493180968219359459093558550898822537353451682926032625223717051298590226977564374776641786777387278715786465290539325464492778092975407159557868415261214146324877453874014563331028854832133120704326483226536431295645398308754747231638976573932220650348076269221950742923723919182031425140682448117515194358081203461471635566306358921721812451902568849321013148611995589306938027760909710209786717407069763479205810669485900846077075866120563851684747866585365577150212977500383934991659029144243184450446859003201575474024142664040693316945135800748021243768186582788509724455448502881065939930433126469505739198061750728364778079868514130697766176765870224617558763147204178036598543361472531941906504026029422959446078442141845188007507660967494773200731452287589369791932741979763310801810003192676100206544141435717849782600518432034132567396397156104027459976256941684653473581735679225096251984978263866825659974224791449147693665297534213330306219703563792685991270320199084059041551578268198151979497216488633475679560619519056534610194888793904855613640509445445639355434709087648477200697345542905784433101537400894378709426423190080806250525047860646565191540140088874409966720910942604976850919955942127516264401150593257216040797556229198279873620031590338137372562529816300353911039777766500115527445929581783935529475472742713487430203066262813044053166891393521903673539071007698584275510032313980038590820974914424234019951272773968310843748836030033000346658231671321048958414535895369499106510176621428625177983309303046826781224276444995110463837994531585745545455471243005341320254638098374035678352727382538195663197805820470130349100793914232800575623680079065908345755422734969751753933254668363468800783682931102965713234836315481064414228698228333903400772274827087377353061401402390251683266523239229692319049891795401117792218505867603355103516058718676771428087111624153152591095209659869844746754589145974388273231091640592951034603666267915866092271979329507906505908735862779129138680550152828019693860711688584665289829123613173581425692731266183105010503131821984807941342292616415973815027062160787128138528530137724802395617845790124045986529841942210072526924510936726498786898272576607897947684630559708544503020345192730409118473410498379640772991486598215422511613289933828409333632496295287723310889787107882823531184472989380345522911703679422515244056982929496891547024487294259376952935162759907879827459446674360986008850909655536281517295355698108045047478440976525949844539087795493282133171569818929819784572652447155483255394608115019104793044311145116773855450458739459178434270683239942822995733442698700277479363422456504894482568617970411871382151533597743887613638591990235634018890488646469518328387692232134262276290314308712445648947831055269156485667246784966894126255534831788285462732055323557068117282525779840640387248843254697726764559103076021770526856370835262345565290906030576283656540635074169600221538361760379805593773761965918722126074243312417130080815828210357689662287630617755446105118693474503582140407936767904926836417232244873490307248142137846323106198682661606894128391661757060619562545847361890517297358183800335689218430139051197306175386672492354367170837570488330130509805797541769376123692461121170393307087286310723799371479912575701369381500703755513256000825515181990062302065663179085327854708107635357187786767408641739059884267600690034358013712408352208325238617521970249121093874702016151657622158103966478361036598447256054620945810404677803878467328967055206321946873106167957422191422195554034136101820239634601443550936086626434313713824837273896276227992246176637591527881914436791441499386566180499576855632468090676858404842944715358615702711628932687233085702336957001208051889116987299713226925736284627048407243500037750029018745828923059902847419416922990824595373599652670718283495265002601411749645646391958768570032109110970873684861841148328140958592748448165905555894581315763866685043333431048934510005393393478076944248915050503696404970018641423974196582167565826400495584807014987148552284966138598662108125622623714015530012928686371718812899193844155613396481685276925442966130386764898259227273647637684293345824230220557208026206138713814193967036096515512708449194814855014140083965270457584193725708945707635627687417466054750452400031628316071088613945423373328224517821561992916062875029859345987919082794128558387362749581007934395661916993911610220607035758685455239389215673526629763537014300068826584309028969312613224768070285665620591114657313750417560143854023503808981030006482280381182930605599187783802912813768025622181846123842274896397939475783899804707417802101571922309689042872070384028849034821773503326688436532439852380162988036404902307866717474290756281591512110381293229756132920489416669043673519961020793161870389438969182878663827601857821738079977497590322342948606679789147010719371946311772661760512709074547439570959353802876214140906683493396947512816003560255833501480840238450122880664087949055184609596179213013084572753151681552959445968874963653521946350808647969840536037726864686580570694311384208286631468004288129133038701829142651431908112842058425745672739182333176448423722213356826294582351586605831009796025290698866485192328805688262782880349648500991779673659405621308893998332097910763214236187182430902960700285583081891711620119388600453144672355111916687969964577333921822039305986732929669547305123481274760145916618359876801444312671329815703867708471260554100788187675923292438721440532915279773192641145124801311740704658403959299751221192787963396458357079973353987224376631976884204275686017170805983575059566431174160254453121939398249158179486831028167576727611153296819308032208139734060803122442708171164958716979293319776345995957149353576250174764764971340033424565716745415362266574828110375686484526584667257453904127976171662718720372392692476170414253419085479097170962514543729830056211274242897444488318390246282412778773050692973047055186197120195567552632319395224591788470731037913717367745472392201301116213470556365673976285413688248364955172992800299073465548430381894786034056351534026034981656781516053462330771178556871637565745599642219891417900437368340075254163268714041713772284261705323809007474077236808574472259723815200496359921990165283212188816388871595244445564335824307054770081389507491297889267458521943419473866994319796747491514791017969323251195608902367355147418122305081015619586254671709151433158913792036713504475767276054732870195467489671072778237557896287452262864897609408755267581159240826746550633708691459244920901402073769511455365962776845710357442726084452116061273282622676568106713589566982835740724745362116025987989159124538474981131461134731908492502807753080880643752322400437242955728663939931072147769100414534001601926520985334126027904722135423786043649446764225183902667115319383932289326909855191017019160411037288495320129923085413041894278680929224147197264805481389806267735232073291972280165167250884201096618182003132202983545274890021795714373642437410311828821574178565975550273135956467613212552477337663622410407163732219638327212582204942555245543865639676586436944202613369142701804522985640145520073998735808067584861719991979027141354464757602255820094024357138186470253269228478790604503762063237275311441744228088928137153367179706886997778829733726968628569353828493427528642302831122232770256831206321569942322222671611793723481322544763335771522075688556237742111549279831276954832852498791760825946598707410563944528709674258914118722996912686052130609929138007167588965365963793152140048468664691839446003274959755470180665905995617840735047721168523633219161221286278858120988421137780114107692735747922301297075701115276631597388789293842766622594745858146059760812534875625404072012759674537481582549732254729753053655186251412098911452505035569331617655409231573616513317840222771357056040159547402411265553724077144351590212346516718058146246279739593714208072727073916242462643620660577311529580060418422860285440855444788145523885514481654027284245349521965644156373173298483110356498442088051376128655440472776611613281666545931357501524268609338146144505704561803329616786745891258106047999679726943629873628041416739775300557159961733404140799492722299094884148136831629067013291821881110146509115879446293896485183154586593338028387007041260436415502147579031474993370918579777397960819528183068586267588156352470771801418734314887066701983878254009296643874860750852236873697055060213917457198455559192574793406778240521039225341151767482951785715022293103404997007525814403401832326543980016917227399228217747645214628796681199297277656414687211273909665429366784629806234218750207466490448896460516620584593616023078164896315414403832429861225126893638152496350988444475491658378220816520477008411209691833907667841596904252228793370916722288587578734028115943520119121790277300051127160159631346279718729658411565262334499148744837508326453039855010582656568033460841096226719492010617684986510058265697249646286701368586191324454292810649279089845770269181818546463676223233924037629714291903144231750626420431329945898610703329721307283861619165890876110683890479828874190770259201898949591974961356808473408153124767673304897111658459097593920898286937199477675513445645930549744283482917769265488398440346722599492408270781785567430780459308894747230721028683966115834084951337368584234265387531433891689768542465733353093814134967620644063287391607180207938654823153926934786179095916039007969986437253810551867311829300611359149555582458888492065307889279195497164077536405109698912850536638974834743654512400940110708657823721977626695701991215393104272716081355781509679511198713138917357588280167277272265102255175099779393247311685948428626061554683266056667141188361231397626136269814587497032725698924467335661476301578550668384551537652238000915955486985735454886308835256769988941110211184904190561027431474853175271811253388328103317981650491205138585216585005509122879808714491504876856429053921448910615938998931468892543208910067100744099598749752538742942474608467716108591074444409034328370704964329311601789055535295941069589715151084025618542049327602652434940350606829834215371960600379085651832863746239568899992897928406418928175446348272927460901051783951216219273000413458653114051503057236124174097031558823229677362467525287096606675194835479852825464784930894308558616854174223844101231224174001498436777892959609620425392532147876727377879812856889628959537917061923227192747026986036210046939412999630617756371195808118009916948820905429738587746175691383626125000006062218665816364643006721576167406176716831509244463803670705651232451484403146339748654983577309975648236892547823544299970317152479333446492943626419660682256345028432266389691637239193762741944970637358093167915644062497047193935372987143626633720232069564651129968703934890879490071169473911223370282035835811282410903684775020003626783213139030283938818093779132058515533462379720270071036312275613958342456318919169550297360133505789340573117740263849562245546510463005800966587129869371910408940473276991706936626434653637203017335808887198888926801587761454029252347001514541083092102524064867593785083367327170290687200690853010583684540983787311684347176676190578966976365990391392125910348645737088513702067560687275918005850949863943549064556535602191573922090846813242590447627034869290926338188396764747579467613220079621904373811814246557758674128356154575340682287293900229106631467055445618114266634265821882488019020788356055051910396816640640933488310552146390179181567306538803698195840595086450874041435671563130377777934842725199562738360584940949563581444111280261421965761059845334952539888429726399602786737376412824185816487366457554921101096191145328276340675899506750266308446672057135110432197077689945557252952642577321766324665312931354405101981894923906641269029021046870494020151178281496497795283754992280678563237188584126937220251935895788732458226433573117377073701896758548100406631544479792833383697273809320140742281026619183389948058640898697096932967667394773137137043073546600926588821518147660220893967419684494643186441476514348378781961694348854352956976904186618990518600251893207550508424196952512330968497427035933630877537919298917104812147806814177781279307755804999716785881919205121190220762119765692622280772572796736665136458551758094074464036318801040302133348633534567610542051291972263781799035188378360129646830389906205254943067810762736675101192507797870110484190427556132576462104915899121215190770615345688519635019378651411410969963165296431797380889915738744504446860578858179532966103909612983627801045728982474466817896633868717999169699069581241313465065685013706091046231273419326899615332569768118585850392557871070704279121770699278474694384397632511565461314158980316468567118023257101372330551569190434839635346726681794448921015715218758161439993740132740494906963775231234512966748303977748769389356243872644056970378920838358711068508800048644320867701639526713797923292583485218545719335624146194870240045506208841818758123270401575817689724861768251517178917538632877277149983042660369845219983706796527329754177006177703137967167420053880779256971865671402536259488044643908161351560005490922937312393267880482369070910472738496150815176877935304727106926497735375713135493939739915560797647916334300992970571937622153307255619816352465377642348532665411664097550782045103405842636785946791272795225072272256449932452672390082130157887215229465574433234109777440893736216784577974109807384967671195454847466908387015832983511345784946606788247929555572746804895303211286798927109446063189150262752876530988575102642348922649637201229331103278242671838670279618663805898980557613443765217435586762096249337531761600257790042709745159094110824400908988840918393224907960916690342090674935882443561504669507893880831612445722269651400734598018962404385394051329051203705239164622040163502229619028017549616862659793134402937643073316301023099691432932782509702712582020306820212476521911269155230168855743001778857174953690768960262171400838151296207121699995770913442586201823700746044484974325044678258786636056815415232662601856002943630863527715007532997278435137326957713181271711153871814159652951550538208490302622530296633980028235371961281469518357943823730700619044242610674209013130539978465392855673435657509359939540971537394119492673222975792938937320012825554911122186029822721233918771586655417996986526997733116139469789214382687494237675720255587489733925896250929521215972868791163124469328878383695072988582831309127472054448711396162860393535218861509174584932208559732639913691859058369012441189234491717340040480462357451974047300048892935620484175423135650502223308766872392016756266903214807922032121703342371810382053976114654959535995334973085143102533678269244710919672314986529554155491737983885785731759464185553807544770717694861254177706365638714142818184117357571493852773165695379651038573859521514115391350672583986743273982145730928058425730813021008304080882074030987405866703972387217853409970274208603076309921006197824748600904856497386068515232896248734978720156216293975561788123426377374964453862207649577844060896354429448332679150178334774522800505466422117903545563083809760200984011100370673930408050097414276083536446356398697271689281112628670997479495595957849388268413913334618987865364869711182128574358611630690529502217961108696225871725656284007600873504308880115682655983196881283726310550058872894145692846133982370890153211086554875427901930401419721044536235720375008971374113699085817273065622464865197513150497192083705148462282307226091366670422271427646368923954386760969805041205811578286258616358624191349407320599735559808968182032250836937938830130848136689542666458805867873833987178454432432098255292221424223774122064367227084406525775808755322672840474115363968803942281586210082098916050330556405826516028095895553842405660691266017641886954845082900927852578231551132065349082672786736180778044760874698149691009278567558824332037799182377018992028674088492655781708096281640332336629329350483772757987067184733557099744711501375241987921139748850023178632664144012184256879041499545440834797214668302145859012533045445980775413693012114088517322415927120568288588640860583638619051714476500307742254841332220004001760510501469411512610504474205351989621615176082407655269223169289813752282432553070551789262618852720521241757947514220857667885208135392047531006587018118114866724484195847080298090304644417678163958431557944007774898704197689371880795001915234988159991256423365195933797096937313862264617942362007905301201485442566632437812866092293968336741544901872260589823077369019674939121659428632895981527391050401783358092365960926490147988591022746710018449273411284623557185620229806840518604239550749862053445831945517773057864439790062506361044050370383897490659511169031571240734522951021085026317267627675800896203451280533131416183410569137454093623635195871020347819230508040053869275503368055227852123872533702739624317784438130477954972848101617329261545051212942758963561404665517443012893264688100406406728342860847480342541652756045026406309617486824151306130813365389995709065964811269374952683535011240804405524285397641028963255110862420399199517873991305853709561204418822609139681595159829066192913013479937314545262535145486520411041480487895126921327045772304150844313709690271149382453423169366061552674129244543367872331035620754504956317895113451259665125963208980203219719635838619500976843777381736312026912938750912299354814690302145146720809218638998041486770502830973109673048569648956058188476900275093969642742039995434479982961166545872951559371362255342837755965943735354899704870837698142305008322456464673862585811132784961173454768914971652338815237172685439380939704693410894795362566221028776655339110297117026486732382953077818592997760239212254051995747185093742694265729404897081187513803130057029091828857219276873949780208915160325386149661498233992671322081616354357453741305369298052219839155178503470765647535854891097851061725996334404750525029769491855421499539056603998898261578776954514605544173279655866669135743573644280387502482443779194508186493218315746116205975450871565156998806446662122055448203897657948385457216887646713107785842886711231652729815783718990601697636111413448455149119007922556712175004421802672033773985446548353807084591457470303021395102233213216271191755366829789253849090905231315698424047668310098450665353689751884449609303319742360870594095978972855717311688861869504477393243808655878518133701977598565296597976240404412657708745239202408195216871651198113791542952679151972638604248660547733160569666870540142248111010678515910618061102159353697521457846585192682058860797306038008224501443002669222728042031236919948901526969745445699258991122063887480330802830707414040573037236811937681118918677719694540692482384118813634168102800668911461808941858627660931832633514270572232037910566139868988382627943095142602966177021751274172518495989611677437731515617217077481893737957662584374695827812986943820184905652629565970035663850962799553222142831434022109490401733033416422394082150770934119304675233987126225894998645731079573915724576992245982999515105786076063027493420351774860102854122825853295772588385555385965761704378315869170561673107487087227827874311989113834631661881935015529826983340258523156757140324078251978839997895375640150181336897623871879838786819142606191807925655230716001732461152474892213675450679844544838690493434241954120151261541529329733845882037300766635154553627411893737556742923311447226565547927697514531170049478185299029262715518041151072143225900359746311866449909213788081177110019974741610026812965341512192581008546389364921206893570199537710786087601684349363009980889198943284034632033218804637259237811326732782491320463211329901225733856771357017911909905751464634376724238352978773685161281125511053671169385488535710503158037602577335500289895509429852113890790058093808205565466917098601620476397687354737813437244694708110498494084095845194443117249116895746817272872868437987608554022049576997669349246478374751062120538223461074216003374015283046782987978694963616009417942588963052693578186399662122132247903082148672444679472197155401033614625408376678996906779989695618850287935775227981720458700597899395023897095890099433773485170885423553983408066410935645525380695150730788064744078944698941270969403079983691805094021253275813319003180171687632631533881437492415061918089711639970718521939843173479279541815784642375037824308072813557535361542935155104175264819251897227277719054029877560776752474689539411418006366981381240304487526469215728011772897949150346005013849213419028831521081592488340311716851027512082007252521867968697410250958640730201889651829712606275698352270007445595505619036427716234163891815135802342017383048904311028324703319537922517518198184118362290553726327252555770935851398073091223849393237988698753446839789029086672099724758682045514174342132714260213357167953699878778670609579521103926898675721107756730305466145566216380663739529175437724805123936472633296164647154892746464876600979520155264870427663383871944790391709361990908184985115889517798605497073988509632459566921560038409679847069142887146419111739878284875213337328023410748456374889139959295809593182627087185308881282133081757134626125221026736716347949375366042632942009949329294762362598839557132640932199833102579102038761643295504391845744080261155446771311757157994784750287613568415693298958297467938657354636004991370340811865006671515755073643753131612737739041267384751157849834513574337276704375727629497612753705200645144479712055224813524943976726912478742330495654033188586320896481885148483423474243908665986848110319355220631241466657768131406597360767160418034143394893712450732498120774549608590031948410175027482582674996320159946828530624678558838197364379317708827274371804600954085686201378600477503458256074164555351810279224849938692192642883619079468864654665994392263803858964423204137315219438592340689865639485956918532287221501992183163444003613213204722131473027828993357735483095311935912681784445511281820779811118932892999329815535956103618287489882791727151976956774805378119292736954637375844935516933237181676237174152221227514891123449409541477925529813948913018525670984420369845347315248553684579860272884854612833829930453642426691698497497439722467181926120934962369714353665180817593970497404600154281153730558257492707138965595702795141579556052631278558457615642825875408316492619881934120075984698950185730295144865875942267447875915839064732414990984456889664226202983001825245389226269927244517592951468846266883434337279011060100900108514789535175735184845460638441689928906879947844984299613565067325107516949457209059804415948190841423407875493634222129590135060640668557950517826313111664278523193465461746682164959165357542115949001708519140221440711216186579812864759341729965466118645377598901220882704346667364600295728766410807229985875534110441678626642300757417522748380209356616156938525832148015032803737553785247748659694675894516240251036502086551598095588044161243589566925979148429065204334812852035672191954601812459740288144001070845018704984316575006334676909727510253570915476952753373895825605670842045126519158571028460343307921042667189367383497387527371776671873392918034648477196650753754002743016083764824206266121543011299982308846927835546431454511269605315547169645872777094100316781512514591671407284422949133586895925854272361041380981531689075970653849860648408816066990975376311989225291410808942948959251662393991450487521533228864417069713500685410979355275105929335535802501833488764446896948877972020718744784354904137819273233729017162979643972845255518796032276083038555025931245667611025194299066491823710000077213041831425100103959108009261637559763274540802015602603242338953053493101748310107272874306548467190650345139450415305106446405689445294862394428047898320891747158348061202373771935861738899706271409394533719232934733123583042602428771667493661033513567396095291449569006810804449510450112512792741280883621748439006169792715094990192741496450856904717317808493578567861224017914756618324752796292262885670170673861211382639457328124694815434635618504732678093222214226323807693580413038356282874365800676285656632020936738863368805523016112453129395380476583523112998704567732754075062783249453609363535905805752610788493264608026602238977026337603108371877784830767424927286693652107366043680305589596803594288166112289838661868650300847269975300187530651370370308064222210719581271824391159226972541727451473477320343413756855090582235390167241715765182605937245634314766459832431484629344917810476899689560149010786552462083084865479562440449667493974069318830179469222723399999460579382673381636437839320906392527998325679506414120758882796385695723854758496345307149409829025064093965196954128531292510472933650717479383117283495730474685182867126488546763735373395343300481143623317386714620619223404366622134002841983765283735673135354259698608511230974046128125261680010690443232369807658940899036652521278563629704244392874919820050572723444729951316541800271206725525729793811433922664353533449323027572679891888864105381328179742981615705508451268002450675534129696324749949977251523788920855198835086774373770785920612287242893121301774113004905749947836398054152622603105951662682859036202907211189433460847200796473017560643134447763941493877378053492784128042783511666514050588821400734560398349070787226627836488043942963719431384645479220291036892915804924657178985007458233913403228014855967263734372977711129268022202049589881077864909482893914156487240762857902356618281264389985676682039892274787450341637127225052317510129818548785999080657585090550533337842560629893331624314483323112733598729287766612044150249065189118438271627558159392491571646822205276678716505020539674145593065749859028688200956686799163007840333350027505219044514012622172945442055576095170113017987738072038841291452306520258300841395608219451457776996803316129027336498987019411032632571066831407554829826402452641727578965969241410508679852937193262226840322096760847576100129744001656033507102936460750971337080182478772821297042356648358792020895562739272289295955720327096334077650714825612143562320570624744573000382191672440345155744946096109850081049991973329987738470972392187641977071670415881649087102107304180335314997375990343314393447913066989604036346227774111271072345363006088331468078834101946795620038790466363697321057394755128135923884911143929698098071678763847242608349960448877402860135476344176884815765783129015894519445599239378601462987954423318012768043536294353018685388633186929604517584197923099804327732703406403028515771426110004845375195671164243424754271087704898269950187814726991745888592601826535968580634903246149853761567106585156262457892133525861677403280480955335570989616888568897563148364892203612433181488574168785938514795708677655390621410104982613632580535817548781377176570023949287653821928334846312117143088785685424950123470573990391016765006484823940238675633877869578292656585136311375947481209939861020338227159912636736085535491640928862212105249795227472002614151711610488131643398665206923944588373092633473043493961425880930391800320488754490374807551034339907678806731291079388305662367656966349180863966114082431304331663689477578020385614461820626407907839454512755780390907736952750092639548450030250745533124075443494211227876839942774427400391390203591206253527120286323364951620800809575862982319120014465877955469893230413897605760866928158284163272335298915468275527779349284526276792663776429041179871076952976314929338802663265456325500198022448755253752633193427195039824209124688561694434713921356176552876265924463620963246629301421700187523369765845848418227446387832197786982071508411950718876969653006893340756271846680792536212840027167265683869112172966400177967580946139055179716375627970132888482929885591887014696248743514776772106429525278950509155372476120981061412788881492533872037672033868816716388230060109617969043499798291328242008755450557271030033949250402783307217333272326589105330334090218612859506942158394968269990082862319479192122736562977087188040840099978747161367737009862594161062884654699295005511250988484514519528286414237959912603658009506913858125912645305048619742893848433095129584117174397198951246002601032402870180843283614113322026399880336264796197830820769260865826913519489730028451315898273496038642884160469214170413312904052884825417135044491153630813986829086528774050631456000912561042941651571965891735191017417764742011173748954690393134063607522085127305141287095802755113625207669068134992017760748147359841571941695836717608526791648665059242306856987175212096687231461841978333826279195311159930813957573165953639133322066817781454639598050656724654220169774041872471068166046072761571137281424343388101649925576477860555722334303083958432698621376077576128871858457771747179850646253911634407780575815541821509141445827519206172448520898365849582156733275125815349406747546311575379995880240755087259011023844146028952684946655135134165122554079186364754383823949164676763445780630352357292874739022973015923317130626629167222475255285687935519514636072484004415539070611875274727318952561661149496483421537953941307314106211717211492951696012341501141673833476158483699818221964797902061627962989587322589580822148533006064438939619365935251556158559217864936595040888139364486599102944817147790444110735954005766826605932643258447528720211146186714441329370715915336820818020273051051063884485672344022419418937478403398888209244282937850162252516635262924723978948967358204810433028651716364229088027063305319424817492907917408627391321340875253360718847214439109430207876769794190763717412012082742332925667746593735758163367413607187714107147797447886331908254959266284946548518187300292046426454922170785767492909034150728457152732129546676000747969404982527639125486272937028322014667283723302821878097249502491972318196622289073568874181525080329432159609751241719322564781945956002041025743678401873502813639245868984031882105742684974957970505701169061718715128251327800517160584526530936839456832401422989775713205728465361144136888884460163329806001338854879774672479112282434180625004184670165281809371911254654336333504916385474309009046488102153607963387816414956138958980339329860578884246252403383020168111651408140076040939252862428812054649779166932401052678578518840649042019721066568311825337199139787239769042841224673684770735531010507057042581442173915313985826295551672799356330828781871436060895912540211816128019676276596016180655483543245451659109449011407820525115546315905712160825602032031387429122022778816919807324873012480723381007291421934254647991488728597922201395468220805104958692274377047430434502277617541073016539140020774636569155083774452780339130362626475539040779165177494636639514884085618168092765896129383260115189674715683040542238340411203366459651943404778832644589942001692752031419276361036909815904885390364658387325944199543848239138307923104225089897792769252552011035645962405344770624176467771914481786000828829111123156073183835758640464179932254218699907845331768002933574929773952565387543455312489066547940657479702058038063276448013956594378368869584384085884329318335481241418003262840505445602866636487336789317183903122650602627930250421817629119712182901052895149824200980988006180294494970090303888234546197293246994458043989377512793361681614201838972321819347941814078226436639771045301321895787596103867268432337329673024449268258625797153085045264965384436102991957791250935202175305382579500454487477870683661533925416882058883977868440305390650304899633403467976790800088466942885023615099612915130324390647277735199402504130790961457017402669705556588576714067241412100229849669167668703666517629922089251397892433152470455786144712158469777725839112034783294658471473735452828247913849455792921970988749591539152108957196461260413477786920949480061624730715179029730786524210537946350494216940397156844400445015392764250987735299241207601301134027869112352587884637062768029313177586183966090868027403180161071517655809862910530265393207679569537088955421821019416222725510883509280073305675871151603869555554649450919134222274360501882190687529881709188927877033398175911201242166311529526229994424820361131971347791862528338802770654561735686802325061428080974516473406794205973032838342140924685935505559077693442420804238129532170694247235568060683520631959411855692621758586554958795329825877407457888664919700612131938868439838650269479780671313639620926347684793961016439681696283020674210620907282342959868382352431842087952592364547880849006589206500262406690807515920197697907818355159562897675456959254874591463778518635746747888680467052541999789870579313119196034942515371278541954365548294896892865533782940950272576883169429966358290297373561252393977105380481106458126845441068074249114776752871683126514448218985345944733613720317379883266689184963793558901447647839708276939349791060336041672928802300813216802038605774003224146657459831020901463481583801389417290218056899005687470864967092094096239540360259833954095133168275502979818706868418759478287568014803584706539792292479026094683220584432702925518921648257390741774756207753818592118245528879661132977040432362896408762973058063943350732493818784355930298326250355125530664715084583740609345126168529309559058629739403980835118619429098089854929216184188205144017633293341546884511269785953374482354700813225249562828456646274521586810839551077432405580242324237409609676503240960610573598911359378396336123542373735608776594771923983361032793788378364214311069142227417991668431867619752864231173354464008409371849385040053676940204055572714737827818481062874343921607422843796421418366295848934825681527208233565362133346335156525673472821454874955114941442437581635964690591649017002365015430622559178243003610514961836222492092401050419452573928221714325974420830798220217242027967718965760427122163083607199958302324869172499453998933337975308940670895457158325656168601436467937944460287905433120957368340232229644726217369853059437540287177684583457090827139411780185332453181041714164023844543453044425643713274765291840473991611687982566542014634540560529239122014562050179786311704182930194171063692183733657565287133166669363080145268099494358689224011037391818166282428142452310289462524383477921051708432111979245550304025208033253800938452067487372833840223769791219146447624901854464963636201806048886073468643037810179374393231780609182433931978625397737069218869720880972338696673916893852713873211766508135198408560032576814660780924326316371173719674547901761242408631886987135494289658049822489606225560178498951388232898386523155039488479616322659165193131250976640683631073782089314455756714405695114168522944106203841146087376395454800184357436093564698724750718744933876614639483004311200336041870004347380453012696765002140429398825274963172282238171464890372947004278491075860002358365677396014823502784663893605776155874950305946583646409261100477023655568775147862511703281842814634100799390243603985919243781044033321407559914754694160922496016948307595699879128165290154766315715834046780302424644461758786687899968512591034293837383850716967306130711901739408514556205790506306309644619664024985744755426918445242889022103169399092721696466445456209771957489359947257714457365851132835717922988899088097663249123024286898987936646680149977342980145337819370447483422275210636618060197707283960829193609676509850310760213065586063817295969509299556528562013280672444481101459720417216679031599605886493521882626358784253789571158864318893752348856256722308448110786527153059640506323882156861182920064463703726281369415125198215194297686505372690213711055413920816965788684878906112810620381638830341413159163389640908180239324130716616230421001724400425289522542875499521648064350751762741345452667202282158746284087633663983388735483161683840508484789161174946873341073866932040255503842043848459722547814028143484277057006301171984003236473028667045576954627372106284460068437496669701186976281324767651867661751004855741653534538119954495674133047203290897909817104181863045785229194859932764907428630889740928196640170124343712171031619180837600378320093042198863551355684713483219157681198674498595244166593751227988530669886928446189569634608624546656077732942761246569894901868996019294286498838997175955694102004341355623699833292658979818274463518186610184729879443352236102735407792966596126833152493648684156883194911298240184236230635411260648304300692911073495076402323183585223162969092773283535317881093156460287003754665233551249076204932266599715130726646246379453571721949287613767700141479375228374984304473264694044964223410299035467127364282015813813727090403729440022188489639463611301410641752956246736489916811633001418410548259645887753252381305089925033153933382390960008560779434755304103926205549377880603080771646916722244621720381675606301000081242616482580152105689001844755039790341567001030501884084053416794789425665479372945806451762865232654467755484817747124762981606187264447542158888032392198394841167490910708774971995490292157679133489526610861738013483415434351864176013133787089347068258228993524391305840865848082983508581069577785663191473346474673074255504849730580154180305853667604515128515670670068563644414502077290596058615243803161794469603361342303136743675871818478334174488476722657551696580033499348604230596922702505405859188142021271874066489414463685502834382133951332034900724802777125173503886329438400198446257757692692176842754807702995491466050438950204493383266181443753285810752854502085530268735786027078240251979829964149359960246297028315403477089146716413390307875598163926020286922041235538630261349295723344809956931558857671210853770330181690171245821023934016177682342692318753307072264096249544519493993718473391860339002417191405094562739931626966187530144268355603152722734957507925641207859024746843856545798126228874994530858081253029601230442452497830024947572660518934261918235484798864306980703997296143450799132059151144910808667120720934411427862384105537218222128540117135842767067550189653548334919403618096671788220387200051801705975324827543988904739806555042965055868387297739119559238011468859044945478144196438700532456334377891437692241085072688359180390066956674571977963544023839200054381984107872187577647068836264601299644674455271206680667722823266034611358300339202529432135980396245252261202638591026892855094528234621313252013354617052510581100716951773134197546383558935982487831554194033459208690088070983804213298387266092304676288510070891577916950571520465092594144183043291046916519088032423027092140428477568122782754983051898361683064272794895397329133706533594771508153453685083515675783776744322580872192078889854977679993608055122721824122829040047644856196048074649792694205687655994031263653608706742439086288350848330250597227278067193296662344826837166898848394886367021368285410601316480304784585993711387998986426087556675653855584341468946973647971327814805972258169803065011312018501533502630122237859472340973877524757633695302841635144979947400548002161423244174766200974938821382110129123944698125101867478482146147561250408860023210305951746256062246287374199946480823872154495283818885119826182750916757138416488382375999573565112181619367987890002459798117838409018900382848479050339745421800780558925861087833736579355402348006368825298339320699544104226673265279705502352529914032281980902825253879167870491412225838678050468804279443582972639624958956575264608133551167770683177973582002221895648380361443751424680618943155059375572763290413935867086322885943794822785614169180172103040330083297846353993967897898854487496503434207254529882720637205189888049297354054766574072612375040970303407719286291110464246591242022908410153548974643523735943517186419309510650408828202148778811580793860012661935928651344583084712464272573686679609640064140360901668181991069938324905136199489063782177132579623016154093758014836134976726446200500075038428005661425277342649005475248794612036890222285561409652715740890258522318918897941878474131067053879271666238461634313884274332977810283545604756406407889794343867678638727478210986445617827459485411131019099264143851005205823324630232676632856718657441951122787963149608351228838598132204722935193434343010207009161202270794762708985471551010382053720563063152581824043906186126100158398915138283185308730315332870839929021478891657284378296341875070785728316793846740255767233487016610392767356899280118531140048481979663645306988069856945570061174165231084647508748090799254408392573056612057197236146483439045969267221160153489269527968591768469256599539550611355069379678031889380512775371332972950401412669410288298643427044980370743689730202744760839539227329023831338842966060124231698226557163690548118956148923640758642016892068034998362416016886654937414341207947176231617863893081907554012268975209781009196387419444618149774102145150767047678820391501535067818671790847782366398802837693733394219609246553434446791314659175559305222261347873577006213176486553239518361444481462488502526081274607980243850821000161541135317368562349212965259582683575252766987156827221790886587116558230461556190806177863070626716053741111892492509635199641036567472130063237751666269842908466399959114459338177123549428457764423560029338884607770228168775134999646384396363904739920995055206836241294435463693722319707931493352356152654214937576734612705251204573389305292246011192819070396537934256505246454189880307702333192530793753617746939057358708285290401584913425758096148476968707392999336240296759188551264067055794204109845865201784053643869679659882583558236198799978534203675250623769867374479869592466841341451411331963084043539128855575505422909572956168216626434410125243402167278637558615092747118363853389332551951429247458603188071802163073398186050730018936902314724424166695805009976631294712684982143848328872762454755227251747952220332871094058606301550304712948235849177499563103229997727633497824901104986019290207716770545691296190863938250437282271657292201121500805755559159453174990244255073733401679122016399328195157209182501401466067089149692933470739071280885489529656993151853140610116540370856211559793180849272930524764602064921394926227795992360214221998831121785304974011263721231900013467911270429184337830999516620264940717444719465413496875469181944780593494943300967490667928449840076301097744383972831760204613609210607518684116636273999256392917826179847227210312111272259694693888427719554313969320067636180392724868345042866737588401438170944815856593331379654413450106178348115541145457827952621073388309600958891678008494696133714615207839303527523021800260484874266496923144362375194304208038657872774418354229611019070704411291895344384722086417107668209612746230726589524722404408315787309449958165636959436578119482011788659350289451719481689898290824284126529584157463229394288382215991892729226991276626859838958054761237300555507314121465164831811678670306074983552944264404877303100352138801952831780878078558107687300018628859605100193877698095034246444573152006912644388742511838999235893555096961482889792182509533616986107751166150751002603661716096888301160170901394305059617220149902239919265096563164586566351320537513996692038887604457523096809550065387572864581153391876279549961944647806988938932285077049076497401077320900394646962697740031930371151917529981552220981704339391992502408674226754260670931566834725318142099113548159377455983375606055644713395251426657374960534978012644215979567270486564839845298771390690734597074209563697824687593708147218707200899047167969888139818654561281622325459977616617671493350630854631740046581139477815531177275680701783765237339772988768551528087414237872634168945492772749270772552724773107212864818231266040921947456413844854953371304643705850643617557869980439620637100484446796259049853419213754842668445130441224045384798859709714990859475091076073473293970911877684210773700351696719128511105978734341384699160198415256233580528848337670461169275565004320363731407910501998661402176218857191235120643825268241143313789165559480632098125929575627355444813560606969614900505411150072067243633955345523770937999717964024290074933257928145243637016340459995785519457381494592840826950478586269136442964802044986671863144665540996489430034875700327875470829888381047373161445171322327547546354001504502309470263036660988770783825158089516087917350973499557869616712168996593744387142745271680745423802959494898729318394406856876086027854740697453557038438656596659589966447386936749830241852289812009155006426952822705104311336094907422383710148825657256802876903234212602077339303081726996104664649232875313122787969837346831878216954945631429682777228910786231159587696088280798001793386494145799867731892716354230834774911786441480473798923374186337013505390187554264475214915900590493501369934804684229901422146641136452043843450178762314948915846858367763389775958839336063151479601302764862993260026790229623420600870332425221055465219141026713096171365820923018379006581549511706546473117907724964586674511693942044757413979124981526675545418520278009696118718203931352855877854166316435999345800785811020741302801245253525784369525145288512581879771275769019770434995068779709328693189271037512668308371725321842896181848688990481375747542506601534263511941904900597850664292313330298833951719805720276127410044232148207137166478864882691793126283010572045778584631286045961488681444830193237610647547802379859471896347847540764740176020065215637017336760743717450797044844620477995584823504683926878069836529706110556647913592179571920876884169124378555032444606247725660718868482512373629318201986288435834873941046896132571418984125301510140226769920605410426076984340580909126298050917119314642791721958087207372583251554244048823051524467428253341896013299148806271908923339653211459297483735851584155662439554143003407205175381145911851775344101851458294493454179557388282398416006119489740773925474551547663185010873201536167576117476180149595964933772521824398256964794969370767333080526710343773317106762182260036438828891795416194185955902248142012718754003557884222198415919013652643561412183038151234199264502478514943682888148160697916221297354526166454747700416470184475327877160194621318859059113513688475143570105725568985110020265442193144365128399846666769665205535282615205131860763574567600764052370601392795616502033455434595746043042604289637677903161508756887592459811070123348514230211845677655931447986693802459968387487758865768786657190443586677177636835794937173484471285937713779437160697354748363921493919941336906180893781575509341076186078048993208080423495648122569233805757276541487586252731011169714907368026515598334900377242703873085681349035351266179030743788442045188578981834808153623867284939235118116930405689710206270501314152735588771554860455140040089525341687467461041618947753956058948520631627302384617678868973039396472346878548280812064747129882175264533362295087268322831705528027286647438894718314994507864174955360129029403189082991554537322493484434292896700301023384633985880744883827024191850135860827753128081018269241079383287519544709594911059263562620785617146328835830375768390312767432012692486150499088184047564644284422185456479857158991438467566168545933044185890357439842339798519350564351935868637113667211601640505286060935547427911890073500256599038790783073637927168427278816869650344166611041679381009351347809622209425585282623968450728969471530041470567191887933067269068990187445669458412299874369628393282459984172094222374494502952533254757190035163143907221835757324839531260534921795635164191469516164537919199980210061314231629117070026377125588219445806303029974026284471034438925929491405460545287782048684874196504216586146406335113563533305104403653402217400090269183987521233515804497772763318594686598533919728877851245377947530003492812529664566602095826458850580519461311723465065193518762329311335894139982046392410766766057919246520293925590449909144761221386339290380041250896793309525221960948409152166353555319124997507440828166974593983518883831008615426792746428338871442298364813322231658227763953345190799648360847099335915754604920667773944297271351121218340404402940848161972524411059820702239354927745831128150118119093777835965857722147165046215796432349909054073719738054439929711295142642448230264729981480842839107888486020149572332475683892621770285017950142582206378923371423951116977171942121734964357486103482923618546753719525076084036854095813808090005331463231055610717778667603120429208395865693737896305992500825150737476608375637804796688649286825113270309076262189814019034738276473927722202157660401021316453677370813309980479932029537336115856744926766800173044555585660014248890430022019703775180654837002419229520737671044403914327558537697205797782453770938017711560343186760642737210996926102277729889499908081247272931696706846119797756946731211224370431789455604967971665409205820486478317916389314677908306880978134887075469359880623746878757171206660477584522162723594595677439614900331618770558143606355506757633730758549888617975629979054169925484218705744300129698791248031150143311425277889377726915051822343822950729404584692782606179191057592136472647452375721337964103950850641348009518852564602730850402023791020157995164916513946620879358037501834595836002322511318698897881282681059085581660175730217117899193670265712635902927606880392983034261389250821293485643733845460775452460892972741824066576799146510207467426391150365761827350811904594187789084348422518019421425404688466312907920169016975532240021905609689199252303170312140066809719286103579093612585540095493875513100848635118730313444398667678346746981423215825658809591851202185190569537894454930851968318726370351583912720369315577229606031153454419218749782956855636991887735364611246860091731481292076374774555113523125234496699015901142402206904137102869469866533574921605455419086167024125218263866720443673333932630680742338757844248210911562873364896612687304660305102483384049186604017463892615825588567698887724077782870325406214621854156108248372953434222645524963018697558359739589757562718807692897328817982231856622188670227855284304694620488520480319082708795617461574850002056304305374196113331060074775563415756540687790867129033430510774328448025963244766109174357306957370268710053967398407805977583162329890692858136236176261563086360709820181862296369131499357296401587181260313041390418485761034177085140899532538042635871661495004980824883812385136193324141196581067484265693540574423633257414939402497998389740501767133106431383689393950480377496382156276422237309626415476907133027340817744016872845455519116199605240388286604723795642689917085703457337216462316318936589707246870536258826307036423399061544166459856098593639265046711308247996239817568461328680305117787635815654696957170766096083241587114324559625005430157398722714198359932097105160123111373909299132449125418363131626793051344778533883613491788679376922619979949704239610831643273181979107589805541036386176078401004142149015109969759698220914834818901684755464748760206518923150777450966813885852995558496221751182170507034196420202704914690269099781760125277949905068318385951401190810672033342630372623920085391491925747772390077119172504408211451447045367348510611142786108009683930253229012876888431509488019045292184887274557262492802739615791191848293494501153433180309921421248088473823517200766681601168222796077005376986353831313334655861487592631347461303734550801484352391197143500089171742813836859935168895731285063961217408001338112914530895436442146045549181732607949078249906884272670789859869767246307692275033464421384523844188979364218390537963605257392278958238996285421242202405865296049259450199200354339610493288618993868011567559069510878546322518483164574105160321081433999583532292122981682228495407880644358217217438475203095197526057411661369498635041120077054240001018869708224956325491351483810303703725774205022769054190832072221857561250706614896522135187847752337063979199280401312663544397863414803895238191705323304652988087364601972704770906836590888199497495453886482503301374994350993401000962431030060633792678697532830426877330970866128579186873617327962001361745809521972819593070933302727762250065782401022966302259882833245286979475829250600044707598716660341063268452506791800543835758951472479815548827656346903791426376555260744131760147944884011844882664633284295081231667509560147978957530913936008850580138668837425683478648053812913142471791441239769271462357518357295662690546287809308885343446837041688693165821552248427805453808341312612679215140502802285088205619229750036565393644059740796072922615715236858769192601295259504925454485299496635482745324661561236721315020230506927953806387787293723561673675124548213015320560866569738609662658691055146197399589298773827550729774432026493512057320140169524071632834306814001502377949230260562141315998772312538763575111575083908205299649537088910095803733447194890467607248679943055022351522324595641261426870024491427722528946151271410237031183851920075308007280603517139742956939820030721826963122909015588832000886924014282229728031814698814925512784054116354339609166345193828012015071141058712213430712319081700378019312327125206321523086542577227560926616243334874471535953955463269460861227487393903987570022518772334380323861490128290543889500788916560544379576920601132613223935761544317311009966402897270208834661954278122102435733711045783709571941805543684895027331488971711530527454589432620103766602595084989795478263136694048158513245750283837294125525167971429623013194493299868019300741030595847109294681827077753892372754033441128387072252133688078283981745213355912330891485180121136813808258242820608740499463397690560349243198825690455720823837204471969471996211404975497810420442868117928575878239065782060212680271549857537977385563646984275618760334662541977375459700776367688924514512467415371475724098829141298873314767886098929591405924906801019845820079474950935991011126588742009424655252078628934483837819364497920429247118569847257392481707768235333726733360724867683249328664959075121244121031949122760872366414570011394863058431654092412907458877370894206137040872191466163020249637875755290955326494096150731000247722576703214424246116414861803962974022370830712523937858398083144656014106478056004303307833388278450528090703664130289381252434954868942500686289757715524545333035288626198008688501514217374491406096025061749804788729205545335322238299459057293372687175638909714199541081096213943258377621748010675053900312089734315523399881025068165879284502245399761918542729975942509250822289916543816991977829838193305272803492763915322901062547026670930557478947078862445492939537971309263640655652667093702763863191375215348617300359618590131349721526460176227637070393961986032172558217005753457259564900823012192232135076782276479273316863368753541362877996839323287792229986821719266165240191526902726704228291377144099399979250119437757152144401755726788470583906244502709889569317523254037301490776888480278551181523425934421895485562820116654924824217754730633569076624968147791296304419390676833969996701546613590861449137571395767214078923127959733825978471317288989992934953164091864389124692544850029756745365650049056380270757050704534871096712580455757353994198524235420417512828722886296238962143461511654635570460624827808007702609459542538407782979079297113046290940265678051568549075846255372315456647870029965090169346189028656239690517499258117149268431619556877675314957073728912728744225863770465899846428995457369656990929111841646001129798782211068085262479297052755051021063451539273531294244211988384418168855025891428211129299382108018406805382304446995699280877402065560650497161094421439840114921206326353742665906053915316546276767061748331597365985962297663116376714270981980376850345986540767758957895469022083338034924832465987030322690699411252530897131212194152791482703460072432070109439022643427865819137808017270094540719331660772862593628528328341047084782399505017484661787887527517073450711233649266237440955747618851342937570805354840568744937685705535539806686453136501493583403496334452908094273501018889172402464543373280982194464091709762431062032521373950356258066071384637413535504409582901096160371354276626123872675455832775316735675155689240453122205680609987392321594140877126287603090024058764736062183869191571077017936489903457749598009509857826681713975749197765952166488449518569934675979041479511557969292562287184369038748395101690602278840802561836872138849698697672912128425176963555445841824064939906834668319782459285355216682731856020760018200830599039645333555607631302160957887721406411900516615314910055795201023480493100489842543035367813710928813681037227319323803871286651472838550799610817411085194297572277465341246025137423251847533571098939105334760102760347253203369625154172530866394987894855498279063419108650384086454429603840057046554747853352990440348481877202557221862458997514119557251575078712560197962987849375288682001203309743706002729903994540080134575830401881834518515402417303035191742588823962590850900256707035403151003752419544650100267036308151163415186084969986551829658296770287543825080709736727242277231415708603276488685936528681343458884220695516921072373277894723472779578366866376773244808630410156586986292774825667429554168617797580519871963650447459827491405274945239414620546454871522077193648694433663451257563732204420361221960574414969448550442072348057206605105271921601007801018658012004009900560767071187775782052157441135442301527549398710459820196367028335526117350348362939885477265127424812399344464166477937786884622949907528053404568562365498995658813086770322910856129509994656778891205635091466623808726798577087585815694869491631172048049419204659340646924973384414561643752860073584063990227970454890953442653719819953959165962318533834896542087357035080682259979066961773960243991328244962859228672772180050497876632214192289731725064714929943767686364713931940199500915710935542228755738063820744273788543640931444346860737281914531057258734382311374666369619955960863934306116592088510528245894528354697701501463731891793204520542693758272153926322101084350719173011691331797406219148596019096762331165229149271766950443607555963708475071551796050173119498451562990492715563097813595080079148385072156287843558084502628725030135180758636555344192612677469135029922816486018501507341025634032306365214137779730746565686694778072237453855829032792749154464381437420056458264237647493247682315011578290321070979145448140311263259500919485033206814082196332141401621632172576414143483716312063965497589575036696977168549972859924790227064970763335598080844390880965158038227073295740922674240163729912197333858330562828121072250215090831203296164671143039770378434854613495877854733528758080258454390961402455547871288202908359670885760698278866714674105999191469342362780763485340591812759290244458730408219591214489616501995080739488467266383281543265710771470414330324350353696242111921488465561164333010366486196489655295950030828947412705837356703343868477307854307449301203693778896544584189290596470301467681323352510728545279263430872269665307180184706239916970833852269101663765354441316895219832033349117481947747284186968874482172301658068168822363383229049958867347623784495488609611265522713875943459548304945748527951791062159215374872628515392343586430091584370966059750088153676058704324581155793105978212077004622310213211456418196947629375343617985296407890311463352567399061472889800237343808477375048138200347691002403232110399540353293833809829366508030158897162464231486482221051129866238478196415002625185696683399233165080904272791619880686851656998080754701101377451761930217337077040411458218572096736957907361339551528748316172528203351389996158297623326363277393188038013920337503732517669574864291774313634447346313081214319576478151029181565575275922767187764969368592980212335963629234307838669059492363330280562946869956283521959994864077419027863417298828021118818633313725673289917965461525493014358431332871202043282148453005497222909455601790746418653627846297248220712122046948707943259154477574720109748188450714701115782340875623788648287874781886062173235847088475773708913428877996773998311017590656606855742608023647308981257276420177097206317244170876815529438611047574021429588697609000422941072066198954970158052238772304954895350549957271821599191947285251672349218312413347432224143851208950637223671955192239028273385244490078208592218643476521238087678344077283151460382267223963350452897262540169098900932628267670860144692072300017237195100515706888836107455181513032639975521686749401869858948341879287060578506147614805096500451715744104434801138514982761108710216406391439677824745354216766554036428013424296142349662492017097162201737117043800025801242669159993466231348354331065055085917792218883128138697204720670428862070338471974826038736548147233483744185327762019558365576259981387408512018275990703364990765984629982906680418444992737555361913423094464931494172279953311401353575958140394465171333417452853749158407360422340924101038699150691187286255892902324326227658385080260491376750066784232236593343681804623099315970771400927410115389283303318694691440487117529585386182559786434154954430496258862986636991372290586807574467177314995587804874355679005633851837433726081250955785446524972000909862282328296785677961339714140483243346565128785607860935123192122437475539239694080302344745686253507774719376506941896266619696906603172458638480567318326466924390608295784150650687392283432952284476969559754028613704496014918119077678649102187821005226652430770759107245343799246068387340062278979461014444087632608952473637150435146596760535905306051593759045591009988194871103454955464291538047682931785504888788986872461881208321102683470199366876127880061403918673903877530284784588471544339862450967172751796550649043893118806389224468788630559596093022496294290036788402027152038519968218629839044243877254770676157661578993835916361839887404777921835850968669186438077307110767399990905775428365996359930471927163985210648634104178796429082254502278627752654869352027800744760531142704396933720239186825869274639968314228554646042386017280995111630913972084020897595392173245697455989561100783841343974140696299419907898778528265111305300972837587338593051925909368968289545568348199863858255614193397163915639201685036302295513846536436284204069687072572580160895796709981938946241532580584184627998067933320964399209319775433326731145737733036142555230746958165230220613891832314589155440440271554682069361962218573498882335159908165022644263438304566094319317973265962620486607823377998651223257199274395391817647123496588938441431676775261028233228295175660707131901861516684059696097842927711471702512005090867029155044649077734501864482984982020076432570176232887842528521851867278045263250650778114974966243137962466684791397558531666424509128021480021104436797898242053743385318994060504453264224849631666706189672802883328225479070746830138610181424030078211479520295810239006495994009738377870492066958251091001767040173854932753810627183386133127026403989416105818542952271587418475782426668633569250381836979791346863722609354443666756808561290696143537247419179732647414356919961149413813086042253155815366501971797970215443561230603270208146773188717976679868699677445577420478078853073769939625405009458656791468784318696908277289192819242381283927925957607917328306833264413296095774946577842480071341588675030597981094381868883052090214508071226473414854527647161566639139362312868082896118751959873119844055057451896343352234390735032160956607220887473110548650994070370081846580550431502936114567228598846084709574938126910124279224648758902070339811562558770851280811620180002898033298199408451672647665972978123635947743429883462069749565121758174168456108146409552714410523420974172755789717264111307987725704308325687911808644634542606600091085574845628290297976423282290134466590663006045762688063197571754325186859854813688335758229101277719784011183270491295169309410853567277725925700045313353219780600856810235919684118675119258999484411017783077405200708274532967245082923988566172575423351320694998382216357750971235187779072499147532590774623426774868249787173042212591515255665992302512394846482631738549794819282971785794630673207590994606530433936458783738810693408933878986851309393825731497213056014203879382389307594079111514994158372176800158574085072985191184416659482687358926244825019665871178269368155202191868631537351763265153702749924652376098293716612013657161719449642414339435510946247632303757467078578242093328126805765880652513846656337673678027025502629506492552751741401526159692834000259568743056156783029970518286815532082526031279694287756611003545103427164520377341687112845567032058834619222449816653741988746759812554646409303083835712142594971167302893319050957278367512207873847291754695679204085648895782320042260746668875904935914165157855283262461235081546144628069012971409423270133478346769636675054702147737369180762287035784098432809772778059880604821592621521590398117396723846393624957296128169711864838135679776112643642457361143918111813785498378510829718220828462078769660734885299656002662155765541696514213747577364138833110811306629056009260874827197305710331086679711950712798365570832876939389126696195409625105628968329181162475450549981695323555466360841176330081145291382066657405561217770747348914268172738971880639439905532950610060026345802778428441454458437168030690621531037224797278591853034997860328606881988988389420102397419457560571918815568292560876499328940569031606465492713005820851257030024432467157892997731710748938611763321184066751443066052236639942703849859530020507426763533611472324200889606884594710880856993746301931950972196029140384385146046873550155990120243682594200959551831378170294336064111542829252605538108810803198734144969703921503889487955571267344601277870598839844764011093930614755264128102359482567627372592624036474567301837244510343515707735259441144001289566649722562270962158548764336936471376020350284511536803669248811091403976541736688633744323585249461085095791678650470292561301241093767027426191848897884395530090775059777893011141316645739509132335203398740930724863117483310723418900897124547595257546057503312582406930988771001821206547070836295853902976171288010739010549337079486141831722318536163874674708661422801287346334091925821968550828037548346858411279044858407648533132427038413799856378866212856206779769573878229011759454844250126418344878647886292175381738203228210573933520352631208986981763408113351323889694010151851246733905516966320656225748370349857379478848371016764143590820320717462252004593102078628388405687039205305082463436297760753228003847730705772534798360858899193787474088575146412787319972573264497389446351705162560564985171838360067394824473264420482364097920928997440108139225540198235557521766218927734409447476802204118316280681269713909312830628526439573117897210158989042604344508588247884578774100080043290252614697050903097308394883240749860008021335964581449759725905377846528065945201794243387672579783886155037164124287663224999677005173979709376684977104208744558598716338840692469713423949153945751328252622226625401434074520559202294439394813812619151051619010853478332181460479472648708906198917720760127479135863595136459104458945649820447366606834412525575478737082253502104380124101278518241485120337639619527026412589177280705995044769223242046213821991167788230903944648043953198139386936407098029015937947245769370864333529558992352674125407689799380215715126606275970621203242644813274338502275229066849964946004059667565424450587942756425883050848137268334864369360134157773545362179822940526352764341753567655627867115727982105839059529866181189723335368644486571191880654788157683701612877975090064348313134196601571163591175085278360997375139000583135221718780972558295085171618383335938856111936927839297274669147198329444668206375997889592384147208174325294891273622380015992604208709672032695481561870977115374756465830662700172860654991786734173278142042930467678049593314590366571303843787939951711175356635493725006341463347855908445461996118307042919643630205342080672003172402535354763534640745395500268832693742210185928192183439505153012081546895169095074092951023595610188188340947409815664017886591715982760328314707582986069905192183163109233914492119199054747145001844847843324084083496782420982518219617091118909083964603053986219648964610548729795635228245565600356175487843540209703943982836758441217069530828320010281140105371984277396677069899972326900936187655212966016173773025692787404880617903367934823694663249262511430366321453633841191880564810706141427381565005992889641249903986576028044988480322423637655550736214006143682578736860577917047130914101476388255290024467484514386705464878934159284702830421098541671833410322182756644128339784439600807017996735957471914352807114600074320237892874796092622053278271132247776933112972007149410447445446731332678276616774069849665907697994646243393879454269904610893291487045309327439156154107013527340075273347722622690615557003513310460281576968912722000105783341694944099196847631191595592658839203737321008310494523976455393273170479278297623357556545512765550990553588552982592002500795124777137412846015632822007657055717266816892103175537321285282452407784298441937657168034036742833928990850446691740754662629324085458908402717457302453381315376262354445428212453624996449281353371110179778494442784742210345968608476976698672597560350885342769394472400274304183064353708665591216539276649589735130278205594869863944986641157372850395520704502338807705623696479010115487099744609582935182067257803061906531600096227256157845646462210627944215347867769961215105881837370502428421559107155714159250656268631035682159878268626186293179518873504635849740907716089534102804870476159583728427630657362299309185438446871228792457199154772749998006597118719469310838555395317997334233139761053907043477705630202726821266001318040909853468516161145841986336510526583721684046546009884729144573687203509735432605294268517253176219434857568137946099989505674075499125011010299370338849847041975492724091658687459820607452087672446064411005746239089426890850412170934135834335672611780310218520936019385743527367408998099650106594831534467212276027752373463200481812962884644573152100167218198338210104936438086104066074244787158538673085361138665549071315993458021090343301693827926087360833603050409528482400821618539157005661269257955497381214201549388549658064625316543088061137981388329716609828242009440494974563860846554640595926213389754446111006498266365819057565955726231685311360494336364035328627283088050099953838249969481905547000408025326050152703820217448756124114727893752298508575706973079622414693367371667372911908117672172477437183763837588655339756030793922340976488021670664627941954738663670960793396309427723793353347407282697778859299082653182452318529982590120817975181700923453056954219542571742735299391312914347041024107535117791382181002636356976177656368514123270659319478929104090108435603349242512641748867463328988522851412813224857706552181437509347348740509641502176395606496059622594813281815290633604966543099345936959420589754476149102753979146184777747702905659747473697798450725596430701476664055477935788746322412165310829280400605029633656798993958970950931158869181489931621414767386869292334337342551907751594383843957135917422368832511045265950649038263645856405338136113071472914277055743315029106463492924937242768203058994883006250427997812269429128755921983248715913248844922863142869861851761571875186166126700409068528432619421310192604065787673185845468491238895642233583833291355739391654397916489110029590726401841610876987367292946948593994916028270464994273683589077537163182969888627241606871301484239213001106331656250957410774374041049064318372591274375629549029372701954275272227897394165191966661585711592213278670258642180950602223452295655959447668386212548703510677608573255051795414056180071251332006902937215844404207069349478481055634432423421453724932993199813900974289894512570196107364642255960185717502825005670606710261446223566917872666327778188141877250697904245028952148061181967488296638371048768975924673717610040617629144276866620970600821361945483423738680651676890605446626916555396641021311307362060946311996126496756664328201221145890724632509212634964306773873565162798786043409085102002574633537940408037972632665333958052351917727760224375091879293696167323236763126561093478054304656392850826324173336797980402125054138034594186579901575990159327067142470963941166396887378280605179085400675358269178697296273378293741149423040161002879259027711004927899794428075472775962997584622342948027749093146400274217055802903579698285494017228814115806021212968105530654263772646389377106911977039108181615930522628159546969767988478883135552917689452023516367819533299994371836553118858564889165008778084299820135824762043688929853173729127992236169096807701263317088509140899413774031585309608096394811156074187334479434393750259824591437084794222700851067666405148264125929184921278156226228335378400671455225868346411140884504929835471680523097969335827653308154114657460779595664291897112122910023875388217264738603428889264604767722412898550348631395409425867113870979428781432162559725850309256693636614109642119394904211047867473967673957157269373282508184750997463224169270009300143066608097666457487114467566226858057514413381080894975841347937213602947234021173238533528897917165920791925915189780077138540060350275933973276080396425073011796466271524002868077435086045595764769022792940502665022113037802371761382797058113012477294541723041407169574101108872799127018339114934459969871496116153953636508998666040378185476901888173040839967928092436005394340736144019545183306987768240189534791060569808678674385672908284451080907936749149751314201562176789081826129983441257555820687537145282704844235675298229792421312551030022025967195797166873004998480385627728376874993229941399769935151050355879410229808173470396853910376659969363893992313882894040237109591987644403883571619261735281369425438611005604938209512359322450034168870511675877733808196406985606536135884973748023635196947988058668396519221178994362425046492167896460188645199669692963932558432812098668092157584464317151559756077590630632281888036271994596420591310063624467126261813509922656579450401697796964112857867840295731462639846931496392112445995208426179160369063618280275696615230854049654636729103440879695086580219321980975960961495391681097689494634325711298352759154720237250627327017220061903299846240152485899910927569535051947371350803476753042262578122754182672418363408489918023434204203693146187682680514680852731036702174820736920370634066265836534044923324538823939853360563469136148853792056685907379187662032980121593906146733048564834158125145883027926350697239364247871969580505261086322799574399547556199158630039337547297301358617986271663925962290415134453611333549182784432297721619880212066507906088219082942267359334695663797761190142026450511663298099269947334317837428892034376986752093491985476339526756930558134690263252549114675099829415832919099272427029569537534603923623541730464988894451649588416478729490192979243376893575350592695608950689040510943979260998552221153621339523185472524788277037546597881834584132718069652361719929867790357886329477626768347699009457288638494328585633661364761641983235805702129592358588784900101856418042487267658364539598826470225518829471740658408916490181223329067223869958955765373420224696165239038617755102603583702456377149397139079493625801944759644731723939863296604031785030916575075760335540018144409943650539881014304453254373899608602323275151552722868073105014468504903653276086566753703401336149757111525755404419173294991086299224617782502564869084732877006523147043087936625737374641436405875934516292114533383364501960420610424716270262304463177726515183061579738154073039553194187776146802498728895339332009805759073667460668248238145207770233057373710821622375359648237989229223622248521883928795072931362367884654421709779003559282891978018217002181761762789828427808517074262941026423943506375116698970696957346152213786041745598913525443817703057974193356274711727844561759259932492984306910549836330186482343023191679524350338219663943629216713472532229026508095659785797729111386915244596386365103567438446504196020819282481670132175764348564598397320917046401492228920295252511349378068414363840410419892587839522829715171552305303986255487984345593748699638154003883754121483227181324078043107474805469740048163773904053425788601235681719710288608262668282222611229220892728004736755323567293931981164153163092833518823134952336485011704711503667236342540563318399752368706194067376138327903505133904796920141012847279737203922211314026335512259891284082669510896336549210591884523572389706315179210543852728229111032695182574996342807681925932203766988770671218165507306050294387277613503248784388504755859499118627164777176246458325458080991847500899035334458975320255940549696243851894973564779738535038263137389650144022162181736172270792117689206664211647655999465531185505423814766915946332990827279842882606590042120000464344136275089592515450288792744718251699420902598002612929318406263420210107162286758038879533858948140487727971931322382833839403184197105736388895635406652982394995921083342890740925552473642504781210644110291543457117413112463733759174118804221842667916783885480056386962031454130628568342858778701030310839168004450097376709148997483862977579253025192300937935847167693559888932716645392647343113148193857537539940867007030286519941641403762930848077037397715386747993747288636610431719991207360009140665728188780548757868594984807883233891045843516782967257991124844961709928342247199360105083111249905380831136446290313559515558377066163592077297226511504912544483094346342007585213795677764257404692051894984311890618415245177584854071398164603737366360499944655267556346797162700528010880777436296561803322162036307193665246267536651806536070803963018575538793290744830254038731998439713637362574771042471330918446147826553363297377139573890626372703244591292989532996061856197918848470292686125831364190887870849666490736340528716760206784909041556011530009152972674901571339110544040187611363708829112180173350904810527750103834309272369155914419394759482091839670305701629099988734258870592723300986825687528360985398518272613287014756274031739646327283096860217001528379521677598921104825920789038509809850330694329691455876560012536156901757349600728126523856897761222047395672263056862984562223818528780773747530411859206494613730248767921963908433542237319409822367594817000451000572488314774008921019489610427968498416566240452186579884429411691817043772816057326775764314060848884108995370660419684686106607207142389041674032253797622268499739535745801677417233433918351659776244218950725456826573875855179615719458688841757967980163369896200978633567082129691983622101643249339788921284263003754624914615224659242818603724862381408682711620193056299138986711012823658866624217029109678805101890539578130754316126931533814134144751862215890631715933215238709591911384415900628550255098916344253540023409165229850665998107837453578733170754133756162505900283376174214872687941183642759248206314422854228449844310516982031812075216376470163591534033446249728947186676319983415155853764026137090985853943498558082458032419930800728347898523492385977619867550072920652248070397098886200366429445377190733013453073547661868485408411826873545953086158001086252210593118919900515534852282609846311020853466147328923009543576235289325238604377749439302140603975370990197991485603454259931961159151318911424001217364047835672115213988339871712945260225031898101346428349479010792050282615521379621879144974695824459049249468185776897679191511590800350842371078017406048496343017142387063220427754002889746692065899560774417845718144791672805160068778999751499958021250491746760949459413750167309633818663985676171224129918578085673556105948818600124226128132457253561156662629652173063077675043273108106156531214134884649150131842026791094323710871186156208749432263307792277558722772328843955314692586460542425444401930147916183689917114875835791466651523150997405673597840546227452557011472533541379047538047299794381757758314999193805143475844284954402881347308470337140239364760091443176426599490041647791224462222022530589167405456193168643521974156041825093864848559123823147803731723508474658562631049658168156655919158793873848532652489278855938573245677303735572562298956516643637234472864499902622326453157659638894111196744952819730917134236794848005611791716310803157043816289239515024436372763658373629168529690333968566791579012183324735765178363088668045837191481837098765385923895557099802815163301942469282295790128411849502568961154393875077088585067157600547963912612904539674955081135570920196910024438088278835465007879795465996191830796774151674459275796575306174377081740706548384505122313717182348745336031747074978544417052864743668053527851232175981474146510218225220667504005600762281637484782261962434804234902724848769405287835777582700361864173267710728866515133643468742079519303465201902913756802634802294547514163712553509515432483119400743980884158715602208057426671800352637198705432007757112079044328378862531330233653298783516367198004233890651594247402919568068112701720105253035176129289620890396425832777461372796456243964152363977807885064411091103018365375544241666444417363570382497712602783220020718433302861972795788556887813416972407217252686379855455759342412220830798509188307557813721591089150670689715048478943073976665674140087041631664184315113074083679542807942244584932840167033671988373136843206768015495433475348548670695307367470881736197162693800535109127390749938435357589017440409604442553183714918566268441077203347296234831554011772569456708210027252626938245648755357714040612719270284238662638170597513160048505444019432794159572173150986706950959652997145506199207824746822711074359427184790068579276244350184199968533010674247773914894225379210826290424658392622233538074083963996016038075790741276372485738860316622776735093829993021207485960259540566515122849183274347042464050775951271696218160643643404896812568242659124827964968607490735101866405419951064401779858331709381240863621154268699848151116076729178901576478355093365770734501135562435960286261284290807724865549780925304882676910358435177402885883015273886840359097565722165335945894596247665897173965473267081623344879997359300634390479680095070055897205392286814240162475483402197468865301185079747726557397344254645899038326933131135845157661837296856885848252269383403241811225062842011595049957160377065891427696304874221876141300007987931121446031437550926790206843171406477012167799931711314886678749659654758342003838306847872300508518680653497338452609883960468413901751535869655245558108014514986592702422401389897204311126727190743551547931210712976424627057865337116661194622431548204966923287765299761622615153190315841091535744964444428033232551161061521978174805551338673479333443654802585788314022736931415267335979335114438713243343736710883043005372027422084198910141737235941748836270269434160174358165829325515843750672705645712499331804459911313735378634057159961473437152459037269772425314088904453480927088288229288978472075079348600266143537568675396328837949515075807475393113958402790440431156454728271081268392032472918308708139049754751709137796316007993601282067900507736048883695655287277130227909785668512816291139417064285492555978845547295562100450379389468144352141198398672577318297571007377245606139539715571637949351138748577358212497781123981516191664189601811612051607741829345699476328546157966724955808399801105565975078360073678949017090248820852397335159482951106291574828626084618444096500109756922787300214374181183712284145230378122907720035373487467176900649321252953959228902567675314200109258278732740313469897831710726299145391566493557024716992100576760798872768004407083755212262433857771399145443665994982902022046567217769704412914733524623957245633924594987147681652468231177058676483356066269227897198385528194706901574542483259473417801102264854299734469043652343230085577267599292306516504422560508098908853552651786589875649511753814247089666298944272508953518184790436503927260580859205116050004359263386028280759583443839182571891634559893317696462018012397258404556896645076669514052206826257676364441928123776886968139328194862282305154405976039077929234118108236470293177264692128548642974261526967843509828635474309322862628320144579494145981173194235706619347687927184846477566638577019383930937311325225214572866980755011431423118084991066160189128989451452188101348298516204942506122514065602136735520109395745990748422128850977099962738839238087472136519521045167265756870764100686285764452740299555027938204131998747130737816689698785556971546635960960045222864398289676446542950347756670433384620079166401705904608668342153643020443259498849571957073787475542850289612388396329639894527720292706518824482011123603385933163218076364559749078760549610591803215485457071826047479392704307567389975333256927972068986657960049083454853781451891160513958262454901433003359145134101088553495760434616901815138563188614360226458360902533240052205796669463282430008078137376181202359465791054578230496354790265451501062108761500683022670828322742692077520971464714510776463807256225989476373947438215079578462493315328733338553795645262065882902955820622376572536531791711064332886787281216707666054627677817728072254402217236894066327558605857165007395515571210658521076955611566729892493597047976045360426235692026190074654381164492037714846480599778750315288204308543969264372689085326802828216032835083724345068236248618621683307564131059868866584228893196341973595335511297927455966004015573715503626170540186683987678306297617309635343593985581835240042655030489846387917663732057342632927941653773831149794978709696731823513495801967713889898145948754150935060166067093063580290132565568082912468516921813640530990886963827548104682575411113843790927385264901150996643724665190593423410471212602678717209790442274353361083946234581431876823483421356319143089895710825460137881587275082204611493327614815263182072874208110168565587247652132838982560153085320911812438944531058931507097228613980775757761230307706111222047505494852041189488543746675064556961278226164974841311713051369478870700908781658997853276542825116332443255405940092867252941408445812896968876379886329082859634603669842511109526052384469493800217318489525263774859722060477568908089789404172255177671708323990513948256668332500300696713110704804486888293195081413492083044249573759168103728035756698469758891859358999469891447392520373034628993841241635687808417633582283825455385694324393380055304923367210966470303830760792849825494794717370682612512968485277638599360078049605659833561155303525845031923318245702751314454909384899631034491501512536528168965392214813040444498069155928279079829592317403631525632681633777087941236079574789768470504829849379003236433966243812684328911637940576237314381269353985669995283704029315918921920161369770097531846948290481279553589541532634262323008146336888434913913919892532869263279836782983719048106857542045575195089620625146740401943522362374853195407302019908304575789366884555811884886441496400834906451626698433847393831166049811648361699898012143453710667880420548342430076524427758985039338316478832911303641279403622004575625766424945479062354454913499037515793299136638744419119351605993480952438532077261519440215640824675257639579982072323157126115145110865833435672399015985608595502620434942414130289738318488171462302996841204575002888579658996571065773629214821111450438449795238403930884327194098918623084052395796673150451453184166192624472384233263576617602590032622456830178653409506864051074371500928104378618422630534114115574601509428880141184520343589079425290265385595378573016954979856179098623030945994514538526458566472855618465941115577180991013115594539109068262771735045711018958046367288978947498163884304112228694758918870184604350746703186771635705995099788108705717745030005644838618559303041152886548247044221492473402800831508178998402885099394019345008259820342328567349317559724174790669972104735908106201225548111448700692500679739758804101605398411880713008543615998956788056509977746775064138691631802975690522743596611290162306359444379385301666359435483736976021739723844814738255650111696478099674170200285712422335274698857501072016255925299308388413870333682131783836268963310174690618346638455665566542290350097971702600922962975938645808506869811299115303592859468373338530220264847864478583585627376781083655829174010426264692620351826982859477693003375122980097075413557590172767204549980766314779791482679144460082561560027648235905105902214983726850442617460429549417255959147415236702157842445059799649078556600844242980997120292779490710280718897310423904653038857715437797402816611934335555027257062278494617233782014458509749718520607526184336185470642367531447602719771273830383016391294801228076432237490479830609716751942653821844847426318215036563242820885010021309956443847100397634877360006392353288567440851402771102331474005918314698632937196568671164380807183586022371280619990862253949313259330055218452304278310078337099743924215952655317441309550715319784888669265953325656000674935557296884099550185135070713315442333532525803583301576280922030565441862974676645058780198989593534017419786771869955377857206324649065281098702410490141736184717272013444775990421814078434052670752030385686493976348455107083748324092188727967739613067276539087109027672063364246498694947151933907853187349360740607223603016931550367507334116976504808393355177102817709910574181585985970620570025996395686670624586374967561592989784781217540444934348762318414641429568318981397431861410337850143291298078931710921457713356210517216006888746711128209303799988096152132314390560193565579354980183788026997304198161438152660472392479450631878754105647954879305087009365248946051522171073698982264351157030510265792047838587289167321685662006733112883332852877866353340940835574672761311268569060832640179723721671922277056487707163097905592649298386622563237431794636194281457426224251789629784887734885380383157250679716217738919294159756317423308103251681740646671067938527517528648403729896492380500461151320083751521707891684108781688500104359072954925208129541025308081963202260258969307048069328767234284685937787716750977218406384282606536636843206558741437317802804079472134807564968137298768173449025776760270757307000104201260012017755446340357533762632372974654185953338672656139306768508832366075141767931130179938025508702954548152481998907066181888416693040288033209938881734993242986541949182664132121281962945647006087530118676632727772584059883217207811675061382926998033960331416329649733036784163757732113461734734155102708359351767059950813845903414571281278323050323930963531458060323143417226589653614369881449123634031231493771735042534389388297565058443092744160188306485658566094165209474464850568325212088795418790229299679730422398244009595120765406424206862134083975756238047848787059380208094991993554523582927732559853713726816108631267982911860199355182805249026355564205571633759038547431349377097467677206774458568361877342048992965858388133438207421711038374658606606556845246032416024843336427230321550276084136442018385688038730310465984734375271346343184419805113382344293174661907323345059504008956333112285711316666998180283996108112483683293380069166842023266730217842795533559686230868541857210117685727241889131188198850234977038297500171889923809734155031101868480346409397729356413754232425540429201978055148309710427668860904660107275347226531393834681178516142152618536290885269658092889534614000329128850136891128746968336822700569591446049824333204665780635477735735664555186828138690579942127459268804960120377826634854590398910483869786609947701409196902581642855166262225085991627268146751047922243009057613088774848124956047599818472594666095724771319006238570497724519623927171175468650093022678740181057062300732534581536894731448210843329769672691865501316597477716449631279104812318728351863742277075754252555466096162692183939576079769460915897163925394835156709522585453834902206142513464193246634795680238614259128945362465590398564958492804134113782053309736296570533823963516481991067345443205971427738803776127299800884926983344677937392188454717776473864606162097377601917275194413975345128232055414663485733474598999705083750064797837738637432307589900452649550190279935947529101514803165852908940927449948735792974080642809660073367216201765635769663015762225066128912111933668779336830476294762202136856074662082591400980645194060743526161180504138943939858275027369652507362978349832444141570397812538493227522224761906570351467351909516977372306209501955207050156525499251056026727935604427496059702716166165930853928311877737232463562397317664076002856886775360698193279518393341869099661159876741500854371376164678982660607593407120884382393538285631527913318979615041725913966381232725639033574581504969769168819127982237221670330749131959904433910665188567149267250186390808971629315412310665838790617352545249831938802660395610448288997650128411422792410589525263869508055511597715451508140902463382689300754705743860839396115344250665895672212141535427798594566501164733679363389407700181751518250804605791003804772751232400016510719862191063479433724846509756935637448540811141610791442469437638156911447146887237585746180859526541351085436824783415465663304217454574793610530540425414690468353815490548089223132581437355549511759365529181525271771037166777338018078207280594825648331693860524389680379631422234397203532793782033920159521659353228062894911102600376175922312101198364849619846325831299377854663394824197504473706994153556941959008690833679180246559442175813560262572535047868219959922363847548719438800484457420838608530450283486512440708058325122535908587153719325405575593403054763570237793269713308672716026123171593445730162100957111701787022268555658191582562189996063925176314064576162134189654888277380534493659631089858056094152896599381520808972044846942798223331095395394483241034157802989692466897074400980696111652299226527184823283044731269934549806000965581909255468018638266255834245345997862122813474561662105442795631077916355961166412271294984148261443369203309856012667968506204830017588848683769859054326302111840808343780062826019700151939310092139137354183579634323759665490596395761754308092302939891053771752227406363670329326584207059496730535511723852293871461643940467119431681170335225891505871235999701356659044658952009942829528075440535384749275740790373600520841742770219227343107272401909358170981318662445419876570192221195040515297877259791526552130404722716486834696101049414969871705638553223376397287228793895926664768674351587277197636060075983168468784024321650681110575591005758505999170233479540598097874773157355875297639568802798348283829099676250401847879597803327517653438334988970546513784985982467133925536487879987920173799145792921487669124249457575614289661304518630343365708980038434195477736191555186125068705058029149959237727437067915068672715877612156044268210527110103398907524697000933202135509628850212075017069473830791689772204370190337918248753618841525780205878959668859422565607202140382734224540514674581339823936214077419937615942662649871813320549267872215823332640641222881370125490378780941869375891359513573781809362799646174355202817650929162818882515310395449928027609532021066624220228804194218463616329075844503385585590653075222150542030163285415043716233701070617344555804923056951923112526826410625159464173412548284701250297415110805530055721810194483374548130152369251752095070083571189666679809425875721016004842290299676218441059966396121355493621690271285416358636368954976792323735605975512482205926319677947202054767172895104036186487786869875208780706285170761752511595097136505430288213176304589403448319195327947319580761753664434058238346960686467916638686140059708640596538619072940061222632825524344018927768055180447290830093421886720631743330305718695417474444225524909863528073956159253006814620431202979784162550953816085994303081502882136349850978144705297437219322737065958364864127212267271855954054335992433383831103280478365104607276855034967501389916599134977764345524971874358018194795416406632657789946065756260385056915961717247994310822702091536712496299156032238763509122577644390198716155133070646539272317084696153487234773267464660641215530779811751547418685800867649345289288019797361626144670300303317939542069564688986630465652108192709883997946617649710304013828077135976424671601097772553316156995396266018130271402322607353469207656617040330355625437868102056913470010394961839443384306921803940296412731811839090751191085223802890646684583234737164868613706882742726935774400529717120358333753423783870161964127363441516443390292782110906832506014994789930553457208320456758297897443447090633283370984724370218419168185637905830445790169411954060777679235348833431654772243395703382430483813193334772640299353866905917473303119146189321746629992966828074603543893198780263075307027949818450132744379908533929051111388827045975506368109045333753960613611309948001204096023498117750372735600539554538054671622757006473355872203778983308899917749676574277282175492025905975906452676828992794055126378446363412234278258768529527101857169740628105595152462036635035521801516673321500997282615319225937538457242929977343884013671286587215518495238176436900874899361730380563779366467012538770056975298928390040776082726640808205558647623062103061251798948315134040182159377738621634378673005444003003697532403463435608703193381180386156641269310141532653094731481609156002371213709009356773721379332718928129932312059115284395104797287154953706954842742178626205387886751428911984834697597924238915673711211171205281281587277005494287475595084873990336151270488200143680732894206438653540941450174154033685476901263238993879341151248734476061737744813583522051143446892089565820405989448764306173785578355601977636740539603397206573934832574456419903517370181159394573353745851111034236105623460099359461680221606367803239047964426929343540624364790197378778727057951111621674857431243732832464162492178787863206985730340284883257027939145035915843694364505742198752578054307539028421348229685017836944621271743425633468529918266343216701359822201344472958449796863821619461828909093346158950551886398121466050813969208100954496235019748072454507264911168734064160415209302322556382790391232703866701487208791006183074941626789325733660095758755184196021909415240920040952517823342068517186971147635908698366909817377283471413523036208947104724265805363106278539308338824683131741855496116554718711770832972744311270597919509624281283068500387397522461030117720960550958834082668069340961350781313410507117339801436323390672605553445287464968148161884116119601787385728038473804537767835932700350586040604756801850426152074342782717905495296468816054330150679244607001206588866310914772483899956220358646151441137701737593700392264947640247451328372947155275345860032800332329860675128513850172919519504943346314978563908946146127755515408473654312225985777196326505955432055271861363021050954106414696202166524807041736137860393465467272344944176733131040132016238433788195873314452954757096976441945723595243359442125539654191372298495151933444905002892137643271752880699884714258532130445598091684446872331196543857166928665471595324158582317108686870364343229727146259249619414887639103790604844992347437101453712081165035870503391872818744612079954432196033973816048976393558984202736722122714053246822789218121515091812883708648636931151812621460440766392596337988533212962584126751989860943036985977030035860824128250518115494691668027147527121124177760629260369494799597272621712407853721618878692630905748244046028698786115184461123659778164158622784755301631298875041439335437625533658760726519095220215702549341234646078420817872674533121752502574247776818139273128402699361805168073689821295820662839684533979111615933388216248579853994132450505472237417265886661275729803475941538788481455286083116917344498462645195688963347106920590222679030179273637895530060043974520359808886339979581841148643225530579593798511506198050860606482787644012157518827399203144009713493030224742322772628468605883269850337988006930512661709041306877448620715578085489911945189040745842752470412555492976194201008452796458412692986398109554450914827371330024984561111432097676310467685326365946249568523067130513057555517272160350248640724471791950162141553112817011525379128395467085501268250511468321225762367848916991276219882507352694940539431489904155647470263087115815805852664413538777803019730457442739226473782401373567028788147328482884416522090145716237642887170456665647729466451228242422567111369763990472522663727425424467639210267819641388801823545023040299580902845922850809288661499791195874061175428172797638229920985272004452400167378466103128126853637126477256058534142771483295811577690553704103183695432814295660716495346088980729199345514481327155788878104891398124798222303234294549561215038861497809432237512164358894145267419588589214059394535995346044981502161958540431614941140344512261698552521955912545938791174776179576563977748508270800427220270244307694775311643782346092390377426664992989519718291839022498506435928504153453505139123108032731071619652284120136249831282483941484445151702164965145184052914520110760722985138688903417072908151138290421963684162253308719002919223142634610543801514449812176492994675118111241765036330456883130765607801452364889630386741588406570777906981789662024322957421136197082330390346774688419228189779430521625921585818441947997134162438021182465552038298275541797227214006114091171514821226190248732724289842636706119603875735260786070878729759418515292572895225116688725824161952006409092602608948734402672905546686503963954285325320608527409758931077463312051521145739551311536403860100555703587687238686287295654218529671017848866768978803395291917639438916558588834929349391270075780197595818736635747603538714141814885990567589309841093887210626518228737296401708355420940581187881683992636624627741276578680133083879856389364103241207620757259487899583274637705368145879092985458245922841239419941526995925050809249976555359793783357025834047323774019728350448173776138215493190427021839036334026556845871795434984571037411107765853207431561280608301262699623064922397695498267222792463156439075190870071034123930449812653957199390026703353058967688236988471418455517824328802449046768648941642187373621098110372494902848801543241419449945597682737338304250035894662506436776788823368806524583230877189886991811677009102071365978318523656761612810239783198202202028300784632415641194641346157159797391230301558986783508771414510056923543311675379820885402961113540989769361567451741224618492724620569578459060082999109438047695441081936428325012008412743284460485886558940409411540527008292366296767497366205042387611885210862530595962737004803292953545827649653785318436797357238680265484011811148582169843543895219164127348712854173832659724476803103855028088701328876718218176396144240181396666884192882202996120932656414829776682117842777043406395618614855519950103984539031664401402981683881843878186788340959284715511869094983250194069452129757980879194316380586687212337308832083818455078580306163955348518204034094936146039252744126009508424474311255828501529895346968440798103035382839332823513251939651917015142508608388381411121995453404227997074989112416304159692206736915311657167736312929255971005754643255742728718801132575846856160881369953538915062847163872954425643706931235061800608650903269313397485999106446098448766891515278816528205646051582565334761704821375840612848048604667178484967982465151395258253069491028653115377494399120977011903325303336539058665836896025092465345210941924067479665664906159241985380440881922967146712161403399523475495460456563522411376364290960957538534530484807593715103420389395348114908109515344496098325728771617634219172261040013723336540811691501054280459908486238171784877661060451097667179104478645281106822217185627278103146473513938135140722720118502858782585221278538584387821772725529840473257918293062535719351614763322765289757824834189941091680855153148703928872196220408928841249191048376224334447972630504184194733892471625309740007683424370514161464156667708581247204617931127993106781755021710622606529404260859594718031280110382417408319954263727403191495480392931899843943852964511417255868792692926153918666551602599336671221134216820247855391761122874834154523561471290776595777688448393842282621002838900069902242793582486583758143864833370858892173571571660990225709517986844044585889546832460969364883931257868113067204604880784369075912904462999801410575078923931124295422506250408650688912259918195254250094676504293381156434360682912421667781603497044642251959294254992500269368355598071524634451247096261316546935863495503826452120666459497893512624598549081125480930098204911994147579569768905238212126209283808143491715832963474601773410744712239515831777519950580943893276221416517189729664429356851598219969275686614215070930039645839825970144072915870122346891613820055268151335261245413097677580437162493265443724995246086056232995929622126148841139454113150170306413138709205444899732704324836991647693329230074886914458872937715934122072164723937809323395792786148453491785304502991235683410908864316322249704367351300401578451452163639168910888126135748847643354798626147233896471926938747754921885869877726688577081017373521583556233174397490568382246406112194648223501557837721743940240101475589895224249833188953945013631770635165759402872248978321666882176059225697144907955317177017930172190270340430948017449755246161469593216999271696954426511444851731087275947241490063425844362775211228595545728439403290080329976177419294191472615627152109758135711410232275588933962322681194272508835569421659360198438261132722324136688533581628203619478560483947633641724446863771800845738007100963186147481829649417387540397072182781485154886674281931667586148592114602094754425166725806130621533214803933269278743514944577078006667002529290317341424151508782008568778379125402219359749609367944260535236313152813473448388720799064544463970969664310267919451138714921040061154052982172708633544997468783503337510486929965387106493338157122490016818576399318896284523695782035201565017225821792891426530795492972163029958202563897140780192852510483679633840377358973062458215383289669514272668438473218785569837914231089816016263921520825942872737257672393613372564376981607292540263830345597897508839852090774662121219175814810481144199662436680371261108221248184248174009384382543543069338698581999975032781734568941764283900031657821375925447658656544675867823313681993725969168380534610581380547034012212899323528755877973989486925313084198647133607105267152809481234600925102437105153831612718006017501408564252437702131280008475091595855632497097453994802340925881051860246249530110737378920580873888006213910254004489571091843997610665788980955278679004002227248520332343163505331643287975720498721292702869091606192372609879682256736684791702694818641327042682292398224263357133948127525460882131906154924810222386233644548719591346565395415286908626229138653254915356654119148075661657743462068368425581084503998993050740875934761868599507731898116200880795422292170975157889379381382294323637395105064917139307089344214438731479764647410574274880177244523554818576495569163279749203330907860923803396946236217627549302259595455345840054948528512476435618350376777178428898509023482848781476041575347927670743597325475517796485831377632573745961238314930469262888481994344192871299781996974570712039448509304369952207626906486849543043273071097187663183231786378845472794058709873239107762703082999407441715439900896489599107274052109590621746892730125457178598228179550289542407615873752865062450552596941990604412187693868696163031024249736641202687070737171376589625132683642838696200946052719177636553514732676780605656290999519728829437768021047527185797306578147600392915759599379914072688471556154207670236243272369627134648217314982955906723969931789683658842063301342940747569416444522286286297171307974451038033205309660940004937028291695080401521881583848202532173069548190009936735962231531244337931625297514651149126790928784760687073249307356969755972153178680983634486681676064009357291715637982449003902372472974262356687347522720724594605059404157861624907590369054278833175602360136268658164000655841026055369635488748331980039295164235447182733496134481802457280190682029130929579266464296125158062889641560558514670129910398763680722560817381365804476227087886311205950138500997032769274677833417677550577564560071698426223238297027310641520092146206026674578429129625856628301787153235268148818103316654077598994534552105705192947618400698867043459697886317483120014479510028201303698096244634119285078710765037993663432779823517548318955198343200199300720877826016100928490473391367009173694301072814785019380116249847784428414855990902489583410581339580537409459035409289240860865514447104001823066742889269815805156565589502937709338338878930483266450468094737782711861368323082101170557177532495272296733556211640847210550115687279943779042275036786232294046254007499218109353998035688624971638482490247047673510984313014487935075085860850271009618886252734755980469309571728896133196107297824653317904077089138938216742436097692979369466948619901481460629820713568807252217769449853869305933983413180066390980523680585377430410972783378529262300746104068907615774601605577800611641133087093352832680403798434553161101432610132667995122209832584188633914883427732516775876912194791885786104292429472151719730821531410102735582821976212412532955476827914129229706824286241893481233079573053548649575994475707638084031103621660446968009030092261744278183848403196257884781435977623398594585970797340850526758828285961451898992945088081238726351659656512461870935949717832533080769672382388111573830308147183640264885615744191033936222793158829643246923211885292804896966414152779846677390461623539026888555980932304682591971217011619128932231765222649704612060199555258890218573831276583570415360518688145368715644878327315015366425944983990254412072806498804872991106738363428963415043586946138432713300758077823019859020537370392053316444812460296143876258053211901856785548007829690240556314422040996444589307519264139544739205811346688464948722961486045498980705285708787132615911126171232682802166411560890986673968296890564414980464943957585910621695788912084668440540666202700405400653571306942028788133129530967920906679959914298822645690697640382677352486209926001894761536075685462835658791328145100436165562514469985402312175141156996706831337171925328742053918833477199613769861706050812073803549966952500780825732556519730341710433726004700897938948381483060572114223375784579106980286190562031681343791753535867033209900171198209487330071509442380419650075173688644395196567230268157299496190601518873247358518901499377914969787159533525951681014678066353178767467047633791930802543852151407418838734502482816661028283076645091389139194194616040864937854818972701341074000230059620070005600719189460647268298921601140865535505712012603482692869974442103734153796394098156842937357180171728462442382687705454417318113863937986413052571791897771711348774471033658686340805380568436292533057601360477263746449482007373262926823277641017440276337580136868625472901392424462911638339929219014609466502006758410861739143740937030525213200036020484571467445496579077242787954104706834843087945538932909528406902923292160349282090924422324985823198145769382883650565638856261079250665328392214513682633269344241447562173290612928742826022185514718494997419781159926579801878965601212447305284261943637628052736642934997389763081208948567803216535527911862850812469770210646591084431382717308929123209376893091809612026367532457980919408037029465960336818331546005158357562092734338252297823234254537317012013543312959575530624805721998264154555807303802567318767076410191402410215087329602349344694186719886383939616230862043187640447421117041420420040980251519224069644035188026123415719095816943811362133657828547550387749127745513623084824290847126348418337386283554172712097986934900920225409464588380175683841728660865849689936966569233112498670210079798505332116738560499925638104484630627961472979825153558368533777822719707805248081217635600598231931642583393782755068874444273393830449691243149803938631912212904308494059243557984988675825809912083688482126867580047065253577751845640498737750143881184207323275313092561403142858090196577961116392973891621567849000314474157837596689697026307638507650425683105293820453398757696928811874099024123100764243741817801553599413171166908429503855712569453765777171833796943606149355309801336769911478283148312350215283894453273670582559931327407553600864962754028278898443526795208858879742494858845265682562902117608005667915896290366509049516649681213924505149412284211072443830236119561068522078989510998840058592402467052510752294750146260910680358313057149096669794536376566955579951754586143381595073402727671408946682059401004536825703252045923643479715200655650476235800312997192015363984734768061217685640969236918696910447412768534306590713177829393062509986545904040952884700546893866915216852805018995081349283906648230690728127675649577331792889596718177200314354002820156598076845967378866260382024000513490798845068698995639366730706674024212031836828072985124684789001665464544870757868684955941291185599435095389118306202493857176750451740872468691640867239833375785682956629844214376193492089047307522910393606213449249461622602374459265579174035408434415516749544655310759136970504950319881349138844214691539517666293095644159775962198420705043456812853627233082657943591195205847797776432338885062427421853012283432906086725626565386351777573074741526482420356742028925561047893398890485571200485017990170117075961107883871981110662757885505623699665110186235625876666144637397299141833038554698319167529475338338275796797514584336835339775031003894161202481418984407003566633509452402327601120017648029146194418894679895784763375597013034667190562530924995135592011908814255918161067319278521391442312353069359439640430988080300291226010983125071260789038279145802987589408174849595161164373224621852604896843311623277194565285071769568554824572205903148742618897307852831448613687550190011464819747676473965329451316419894421492137934852804144181240748498433875638247909363466238829002485053881653884569869739297587492639641840890667483678502659493927496065606370034847404733386622884468355896461841716309470817404419290934611022554826611649085347245978039822270695328005894613445072903077648923722187895737377918935376646406318383508782373708395599964737050932683333884499738516492465893738940279351563422369474050122390617029581929665796756424582344767837875299536784317871465906774323440603907365060822578667947948906207187452227258611909872986457364577640664429791002346192971275908409267445150057586146878631922567855314638881838932958052279448937786763733936359384009059610978499437697695467112640333557599195880531400241461820003822930388480323017855787362450405965311765900666224707702798730624185574727035886983147128466265044493618588976417482622113919227588247151937825255454616862697158192708803927738612825962883785249136980175792800990645321964961339791862836137877348216404561528122351649473043197475189819388334435986540327914639699914735717894583153418995023084470408435280845020734816332543172043516706909958211245959261517575112987643932259819142053449993483521598544067937682851138571926021811452478773987796685037288296882666591063261258179511146703992551850789295627758031629607886732965386042479004399081578358990691882211654415161093082451582880088968251285952086287268978716241950401498462279537886291401021024061254351115500333878311274427644224971908827995063112333163025071191236552939764623541512043292835027343741798035360187484969453012389330981460910816150325333402504281206842773985880308775773517287035501681809473644056026607268123975256994763749212822079918552701302484201874368525634076545958898671919918222352675257227578140952078567487593363018344704402415097796766056224219278312437050161813855766715345685052876351755448745799576641615608106782043713282965048759132093506597071114430848796133859100634797544283784144452135861009639528306137680539659627208239634206692411299762860058015356239908271822836634134302231659124007838702961331004334109080610701051543196543235489508726057456667332990964409211308440829387013947407217310446540110625331757539524097644513888798076869660675120051247794190621979893533717916094593394452178703444234674460468553780572696714506438694521261880326606513382806520098887086362568029734091781649017288395491706025143564780848983196905135203954640815158152963876623817975054698968270455420114167641711655590839521712541482006145419242734637830112244991582213599558065755085206015849637511164860869284550360421934555150782470258231783551951137889973002869829919036881237404984796156515784998255723559421316297375804486197832429731199003856513530300221783580237746489288763491766574183967528899098754419570329139386599658137113932700119568199029610379533740115205029664115913617127801050756466290930956595741170135567421497575812137460245034601840963391497020014812212067968615900480689593780726400692928966829100952070293270961404969529883768546162991575419482919414354736921324207598103655403141044545751133984946370972823739907945890524499926976408019203919448096911864424537347157835646882317524212976228145045527697231915892079916656163833330514465716664066138997649591072690756863743659383320038336604696387390525094404807579603805730520294323970381089985069304024306595640002385103888409203839521660756228942648950494790744159656157141054888554258248939160020683439638194336176066190415252905128147955087531255407929136305580625747176428082260990923400142206047175367820647328007618835571569527592976447991282847199704033830028986406709622177067118711540266192888374011455267661576646738778271645558155393194708240916613311689232035417281582431979520691410636539297493216857509874165411511134989051267278368249812622019700668309311359950753067179553099486841455349666958066709167532499933607730360865867333099023338399801132670824657470352399241048559226910671330476408506735494849598551452507239511617268186745130402672459077753836681932022630765732117091839587981469481300076654904405797071288537780325835709231405193340187715935490363161425455504857918255369349613415301266706610825093812589326378597116322488956680626196606258085072217612255644479091873740488183560681106457597151936460212986836981846594014990243033449121083849438890245693891519264002906818504271797859871105971522746850959546581096071302139444058030412079823685483385313694121313902876658801297248499442746878917312930491465882911648527164640872478203473317075504134664327158487411007539447039685588600894826570834329734963494361891024069441246352526601163313192044331238552821278072892898650841341298626353921274965820323935053215133039723275016152253912801510735650738921440754730009829217887436367321310188677553533590540483546392475107095579305498036686528215950435330351293291149337481633789784767593573266548981904484686503123954391629338480304707703204911562164955120555839699435974642284910189185249615737955054429162959790830999728704211454854411497385757017481652420923554915240713368444413140378689694768672897637888953082666550393403827755067673341402412320586866292586591698250109292192706468518467840884730485798144466908330767113220185588191478820981758948120333821740174393701130648245060750643311611598268621771809328486640098247931577705762076096190062073105731158991476569230151553315412564022933755949840811714680021425132153283424187666481321853400657131336610782497747004065299089625847783298050443976458541432959747622924406344980967872396268472881534038738314135600140294871320699160887203177459800813766335637583159849388807326244514845659793946621408311645578673554189162598871079347046971775574769187661957867179203034576872835589201898864168344538439740164988564846063149500985813076419102369059718469071206659403698049512692832898852851386040974064525994824373415240240073863058406591495072633904518927014565586794132475320309964799813781954093362778623400318654275589984626171235812555625667241882974274593835357909477425417119855836979963833757604292470339754293339131146203272016165473651748071865659155481776062988439557275591597313373314136980145912622988131070691534323089956802226481420687577888041785459707463382936960459569093470044849179038929726467970760216185103180875313304648052005135083531492910855881682080451523269283842068864798894225131110722686378886028826512468216292540303760957530602582257301263624701739970024887465036154551844030550348021411536808317863403539493536197328192352404861706252245343285459837351263359085642819107671587470976800312963389776695814002020290811291604939022436740054974637873734926694144294641590133132977401325863709397591372395785614668090295195400540168213661271240079277997796709081357421647419006309369815889684089548702848630767340975981985791029758917083651305991369313195915220233729523994832976245109334167604899973544126437988044490528352989570866436678710105456148271714880081696271873265530697257467087157267791532917720712454479515814463247160412429491367659772836942150417261839653903158385540477911829998315438229584938083879906048083811060148426854222429798721679329494233034793865852656044403395328045692795702259318717142746122894682238600530577954681231543453642120050725054100218284364088257248314984447333749144224050132946146738411600984807585582027482225549298930859584632012238451229229280371793847175200415065216878830522334074773119897272348690412734297066322175407158669851984265242990592812126901928397546192991669990277226292816147038954761003273582879073272529104176434602481790228820756538371703867681414587858141657723907135733485164426717808055695076792745357685450790208103306020163918821275237623210295896487888726399296548752562455685329699572680393584739739422780493717001488959970866340574868370945167936695390024106295944272909105574508787283446512960759873265137118446468547125397609105934246126954120689184576227239957187077276818111125229629432027708955042761167577786024885651525275521412671318697095828907301768047468411671896132352450615069203878619902391934549126917726785063892920862695163433273023604765741212673170611920400740391906677391193457441601238357090648712186403296507029304993797211571174033297665590896617037062259259610816679171904670535808870987661072474254936997704698264518140233597238358659317585102741566437433220079992785975614027258446251962064591170948646186244442095701810122839931211181111498237740757119365897297089796032508326280953409274606137921290993835154455279559614452782165246156968157155439015542255453974695712827713510445655403375886534304009393318215278373099435555713013149949546627518281421993423956684710380114434505613684989276972693755346323189289671663831568069882977168778992167988827000327434067721583220582474167615666403727757720468023918451860599013743022441475862601546880520486731307454916423970666070390717659701779671617915690437848928088710172532677558632550679656154154701303037184699176343926322238566339426002222652194549200448341933097847916636945383920837945805211593159422694368351758841491702232765114199634190882772901840791637880494821298179203812070373738020221132484200445435622283603307681210414248484595043330073211717788507496773709591834925956051594108422498037107876063971007145857297930530151897759536952039995864616108131203256459708955969633191049226554599615869342792915535606724152218117339155131493173092045224136309488780531370357718308838865312522456877094796675605732730792977872559814273139586523051758740595095573020136079851094052413153674965693204890295814895628263352127387752837224185591079586304618163018794678335122718995597502535005459268203247580884883080392606371366039467473564913022129077668150583531432279976010189977390578329389666201563916201809518394066392572070630146919210291376363065073135696317601134025410040929297574665971550529729619029313310605667863458328971713151643269371202009100734014165125674934731388516215001474901537038472267435295944007997463202710180903196521712430470599484833131693199179200176511226032325042347240106889816295570557078044152118634091606768548858846385146908614626760458492110458616107808366330488699611630308758592528282034493368400703822320609021207446819162172229011159826364167842165564537122338842668923202636977395289428099993053467160963940632649477875514357723038797395379183932733568272663637596334923477192253204716453881324350218115258068120922681616511668777085167676002677794282651048539361854372921227795411443901632418215149715366538651377041272920285305836050626872096086129907283919242080295670008075788041902957731015112506768430361744322322686199101672809778171700041484468326411333583071748057328703812955345942720110072758510913900062181952190684319777200508364409524911921443652847619437628214766324811561111150362995641955687765730244644750122105509895449052920710332527995411136948668905942417488316816735588782153049567197876402016885126543321996310842241983557286738957792444190153675674044655819217517996738038145894782510473219459625793587728946326662349229644581768105805255235067189441097145092412767268113817501794802721895043016907476624607479769552235971713620403595617843626475541566184101160315932581419809439050394628071124792217758191505587585327463966458486583434953660354091547636363244236139984792850381464802866702416886522445958595367935286150940563328786495371821723497590472778009850560738888211364221416628549959650006787116394202663204824669673113695735067047569237289981855843616965530953689963253888141164351218148770543841754873162303790069676856122723447253370157933420411697937749913538812239485807853207096347089993855662433986139619143957884346634166850219662359165630649145778046144316083634504854818353175073121453076181733614465621920150191749276168875834395085747209316812627696449448329247735213085928216507707813883080857371222310783899121298257475115637045783104372040134122251524374426192668334392159495682076097841088000811292017477229157829364795309045950261167927134768493830536482814148155058477496787316117203251626328459302382542690030272559856770506260805008333133930001939009443882424436980711909616212515624018572694474766985695010824627307250581029380365222280357943532911073830157066219949465690777745188441171796715960067224931654913968369126657507138366066263039176844115605229669302516566013883149709287841127165446996970991904951620906587520760437827607988283371995411396448297348556510252876895448503182865059070417891854757986060095209938945280437019384383328425602438030304495082919196153164015638501380748413369804909684712744102343016486923030144759061030182604405442744251143863439561889035327938692835203677108388061514729073223962823839510435666874186327235749159587818390036969857983742312730028789219975849655258703965391758481588881209381988066975853609271895679082659124842500193031059364238672360904799674209191895561995674453905440856407464043559776899380337221162750846429988494270784012599010843168170260855222407798120470293565996711280082160411775646476530331943514751030156174454250768388364627356819289144521515574633437356787792804561153619265883355605966113922329658420677364304958673365925754074500424979702121842694755811248927725381518221367534397155378048115376143984662929273040205675586380377904600219524539707852061939871477790188524477020669873004006103953161097642571162498850093291338803055731693306816678273910827671867812892375151086409251359981237157516233406313166120275840593993952874874460264061334300873010035717785011171010776326886061633317147136771552631951269998486017122150987308487801116830932924041318504819804266500580636948187158017992257511385293642130235811289692799644183470581899353379692549801350418445155297162290994737597047087746879976759122451039814304821458813193038799459566767899436881889435965852326121392054206556001574222052991963438708209193942805389692233775522299338502112406030806743399722183270304391090618339705178094813232952442486756357962147377926886110381180199076345315369326103710324513028580293999063764322762884420021147042924124918727906447066432071865572221193575320340490813267393349869254185472444400506456121785740484771071905669910696913854653965511263258364348419105993593741966181228220881283486563682585836738936681331911312228457185314124178633449250413215620509420640506111404555989199702457966502720464199628766377274634306939493791791629764227939172871452677648509888471326796414647727930234444411798329893547022051779756872703512933147917768366161418761215762499801729248848284795964150954356799366014902038365929410922882368454588874399957109446572243640758894492234035239606665971118538035294696304550734189357618344267811534667008178000831988649760325783240269127521414727985406056339165297993288060618652583019214759263666935180609451859714204365762609036811883550873407244754945823877853337708809390042591026667418436861263297411516362459144264354164418427035690629678748625627238644600215012530235061392196691245314737468485641008823265295248153590767690179095868069170907118866671648654001066084136752106014033768996824198569042498978510299338494598849845199208629305846569134947684539594043114424320379790090276977184844061345170303801861717045623182085305472269870682815774796398179573915510385167425057969323379012058365415721554714011768147412848340032447029985976211901628971786054607413280879926165404783351607407712074857824490854409391347128766704930646751319615278344488876664830946256186258830751742853238156204549172748351506949820855540493879249009692941119624593076476662215247874225427174589490204217202755042206521739988165444874658672190474291005791924683573934493241673806770583486032949418883179199633042257116320495124081668919634267913132930987800550843295387831813844292044876430458633325235206268163988635205214485014948616513420233504013965360980674931134780508447431783707844157411798141865044743766513447510008974890526793512368176334220776897613043512008905818068176781984516293547900766170756789976479239610587431685170348030118862864413589572246517488252064365629306378566676767076993054810047681928980998812873994655350467768515412929952473544491550728387289110530388484008406510864880404356422205994969520028293183338826199408529204472515172519169913896909011379518361453679603117755901299631062067747000095900745052238621282117725117504093427742746849261178427933667658901344288736143608469474105870602727224158781085080827673818177900859637772114660997120598975348992577334309325874806209998232463590208646209232116799584513405075789136862283389434661534853014825743799999417329546154927163433931347596062197795171168213602232080599214765248094750133661159578957794289045615037695299252912197054476535428156429486382152834589900169830451787428199149169810587020040926065277359327597454192111898143560616572843700035227000858925769941288434074195993658602270519352274269693147185512327157695420332436511508630452781585933122735850221492918251689448509643433307256199717267361440889110719081509350204692543986159236900758491734869425626480637397624458534533040880782384666103160683399150824940121342138831723465222173426607023169417063919124465194740451799862782063962057453617058638897669235266011705991831382327516362139146984771743269936831572480356824451718755724805119362041069283112975913743684903275021661828712111152701663798983118253503190115790594438347408277927206366827697094283547177582475848990669643943191549808986272667290724531334575632584015230696692959915131560144214691691772277606712293981288035395625066033178829246271856748992868571377978366371399980324616273454351251749944526565421726368432525621813014840740440729705386999877197699574694756709358128298003517218500044695115258433842083668210175921917531809463227819208523278848392063835543958043638155097261035132306745635749409049048813877886870835093134829390194414316299772439492568376687726275503661062946133926211470850031228025627674950376271061847352001744837961913353712331524878328484736883645836123690886222169117269190466466393342693295119531526698263953769608978393484932095648735966579201095585313115020690460408532333751909447541087803585919207073173465560866662851752463796983650951768112187022788779325507807376251504138327019333095952377283860569360759984458912081986039535570005482172836897908865529950541968016038001103589214735062249772997968207767544884958510188823708148478264480030210808100782651201713625225679483311831333473002214264226411323774691117090772422923408397363748108368416179831992034669157124872400615862966951744348367995601820351512535182106562016033439025495498624731290387086016597020256012466107677643251287581867695232972118592240241048482779646261467573722923927765196664114238602463945269675514501648934443004935900417223784956799011421902545866546404966613098822295646360161284993556706498776131159573878009957394888026531681212764913342031591975083687360606855644944247858690250211740904128619213006245459343801609309236504637394209269728273993458495805432318488609739892379187989272378884992597343196744351914400335257365545478741367163836612793688387876279439332546843842227356969019964786229608315233593208292167956017911818791623584438832086459447599702694185418404064130575855612047735295398934226121513007938021622899646655692468267259170750968009513086693510339058467559092436875382068282633294393262466781600358328504760217820171437717791251535305310797074203020712512470790221493926563913506217492944719033300759294348585957241856513271539746029893655593448572655578691755907899699509719368085529921064609287869400917396211568142831270645625156697283636731130708643979135632120216190993642764442041980595157357238345009123270557754339536359440450634481983944530087924211538394961273032421299409710427771169306752697065704055274381292871025923950386565175679505469637344895370666134145772780718688411177722154532781857797888306267648666295378326269052042573850956477655881634221808408331035394062499229509441165788045205565017980056593989294673229798550623536890972996134353978604732064928438197195966438034893148703885639624181416351673748210654563290755554908090835794501660794967765615966221736631193284981804175520337097948768221587072611996015888501534195117072184835402327706114633234119042290637597909368147289571500055076379122799758551115924112110605605667639762682626853524397249894134290623468626914768682776097151098523574443175861207417420766556120480605544168938041838490831716647348394805346694880771836621575340058612570923169357014821290431951470267212002887834086279217411207361579288793156693687919965400328377439620138382877977599830770116429714910285483056004845130605377253399394677629686856295087658969667587483245740800366880646833635520326518702665038293667123376181742701318804620671921050036208779953409556867319589092261125677689582488762601042409597435702325094601310814387186907611240970802990102820396587462865203756584282714560039382221011221726035942750421928105868300629387691848875888285466777653008083591629160372074858052931798021602973855694181213928297387794152281758532480397214802116198388783667030898534372446956573466877869040159436880420375792189874513166408899660273597558308597142476134741083836002824163036027604227522106740007523102272567029779535593973590089403427303558814763131214323774197662225770478031542188376087812906226085249361640436479373578931262966058317399283032967948336968586237733502991887049345417364394762619174873623974322401886821685548543199911594789179063952138820106409354903752218790051404260448568436276171393328836625316892203431720266589552787179331843923224180940122969453262862184512092434304784353481720514956544361215526053393303280572630126531901235774279130285335452110086327591182501537297697531980921938890321381997303908751531721925827416226677074120204288588508541942058261715199706774638002626890317300245679556462627713851542944183061450440492061809560994250037088551721439083689145404351756710896937322190723121155139729772237106016167626066245543618803459893036086088822376944316649010676486676534365156512677500171760856370356309243788316164580207667364401896194180528456541333322097121891350551451990219272031451999212156844613872099269953522075685187725162998629654902004441168784785891526552784224578743995156876956465293253540001523347719589085884293521798300042195473719733548019624796583541216320726239992829461135137633573522079007251631100261178846906357127074420092548643613396332222704308590523482545314370842956743977689142464971964637417356023007585628075638748039195203785306193972489479675624833662779600660823000743833224467113070008998971297241956394382661196996733895067597404496718607961938332047425393886575535087066177232110783322503747175861952911510002796298700654630739338078923270587762145767437741501267988183543273300097051317216641934210479179102012317792790600368643247359854365774667760945086110032294939412675598280107406187286015437999638575327128064042000351331796096345198498678984562671563531169685691563738358843583046205231375812005726590771772905023864062950252409934404684615498485691440361377535978080666341004255958434355966386509177592145537907762394935309703130719072245243702229623042276935820760777318882833654828031313594964250949588597538790712021156512562989645150154034640152414663205935821802462627237799738905386230378868031570369156286531904352003913957782874461910298805701721631150052149862122424308118347716581623542907548975915487497945722709062417311486512853115835598219869552769723464236037177764069765884653861720816836094280579160350003080957533444669147001021999829438366013919155622143080946313308572742030414482488393336280754665798022850803239136104546695246059063624709668555143214861805083524991944553166063199221768094477374332759634842196896368177793135724949689628324761096534877006954226914851388205053404145331078888926113556932459924740267846627063850099807416415805694519085961361980338596408285853637899611344488632268837654696365974271549288521564770973345918317788433048028092391362857075603950974685760266101126710501695585364540704370746471183468585618541922310538769217642057970208422676365603175683657455113628167193601617159302203535442299178158861894864536206708606130174854453698818589159098865637370704498404903774173664024459806498043366356048517300560029207454722919085664125266687343002884653522204021353267853381856978581819979541268480475851932769472041253625456574326963552692650962349064771831402244168369016481443719100473032776626082000553742127127027521284301362635085530003801058606803805818646401717384295804583029063054121334216320010539770888581142717825447223171564258362132438841067331001745168666091244253049345294307755242011522677325993073410412499806176624391148979319517437374368879590700792919030308078473741591187328202079984101215568905415400179456631245631830412924184772563309844996044322793390345311545744376640805043203657663985985989040992326954073566774209655757905453771354381908950826698830679574987669403217375293908185737370699496421278087189057069704948511602346958783625924192786946944099048975055944711583676029979725054729445858664687783052800246286049467557799778095955173882468774483811671789063953711088378487629227582092120286095888164857964360512638242094499283456708931334204057037338120654338435675338310879337545808151596850461747504548778282855268755087774608827660189417490666446732955777973112777583663310773654057087983399508664336870787381757699548230090420227949713195565647389962207512984234829185488167027352874355092790032205573967809410218604549774778648045851876584540225717830376157766943867905794669602125621015295904271576786595180966810532605245557633901384934035672947624269459710279412204585420512722153540803920875496479408897682129127962114984966053429038120057873132079412955064275929974091692381897123208728242328863569870854788246478521368047137923194937645070629665215302360000467805290846458491897370580066876284034440824544464779828466304051934639184493565284522908698974737910834363337232963774642759836129828413164203816075611661986116666459524062437835175963594697174765723457972552112670871528317793223737197453017091483065840679894238095558147155221711817552498929636954386188538170368562307913820899966056938420713442473772121660014519093256170989139555175346964252634871992843320742146613587188328507312367330875340908209254703148296341420253537955963027653717118380373473266706975301425963160539243612204134892507959163387423824067849741365709910847255975885548908713422292496835671927276744735818395065604102397608279262136318246886425217678813389290283461862297249901926028779700560221073923556713511893766782445747393243699170865250896542552594495513912659650777115672800530665119669315145566048838136814471857802884372954698393154027381779874833261824865836596095746105655524605676497281442401889471515287086901312753125358801366925667158333796731456236201254412666315789282936695528157711650389189040597632705197409084039193140409738592774312584530803304051799715934047945058303698274919089375279047789993505314011572536570482268977097200314617807983801513571840814375591307711822770236458097288041279022796934340116198044583436107206113002543916241351754428277631074960378916879430690122512208602663445776466572620469969423554498007740462542063440710046803866825383290867700163770628758410825996643776832897525791533048463217367044674580913404626268940127556094019547550096391814567328031002245858843159361641196144228964236714548593592261610502368285260025235666898014536278246241071454689523964345414591203256576137563703260778334614995737070166208214817890534383946216056655319465010067140971988806820624347867148388357734823239933869303516537499844008833798005114523149355657378731183003895149582155012155445148968454454441653569022953407140715128790276621934437854503798794092715089070303000564798466639490160163387940942307110946138187629700456346819831510453742769304279441912086513216137305158467175785779060336274632163063079830524935052434682179840074812338191311467931971271561184255814986065706322826794130295558914857295572846237996629194816529395544888719277902228155183728060801657967934601395372925549763648369018248990637435914448818878120000340024849836048409012852338791250927887396018846419843088625019444632834143887476761977841387840039782065739704145643163229002852071749894026576458220942629670160636155873295999970922330361406982294359987836442177679096690120638389660380013308186753514313480164362572902288174399464086200851046852024026901415744642376348941202653359364898187866385604412193359832345437891846863466736444274806378593874473167256882306612124383984598663248222223149366691557584183902815363163703958865859074556876282773217855093139200207076052758957589656673477563694045474977459134758198954416981433641238320945580925639544417672870353064415500743028313915796527256939163311036685869434796340612130539973095910067856750889027125377686403131723574429030826490120301725466986250940145318839208594412435316509123064094427658437616396293893522259697137809975535901885999308380177309890618076808222093031577190447714127334684818855266439297050260131112427194359651725485550604633810023273178604204174265529028377588465875754287078463555043620466738476359222022998955841567985731103458672705698583400209487176046834799034941052561239166534479760057152034846170013262234605572252340473514459736043165093822000397569098562398017279222409978209121925945370691654836465972989064191111994675758934767716631473964728186927106647357176352653317980555926586740353003451305057936680446292932082288592999761788282286570305954685378243642021201869663328429758565210197954464237912377966025920176642495059701837754562423388043169141035830299894801655053607848763299230590353178370931291393338057412650311827362160743124500989222940301537719187672056840664250829179776534645787742880414593906146603148633926659558689451021817404127816100379660898187378651803685199910759973611834485344773940566280396261047819832730427059595369590241049370239889144196035483591356483233042886352807580245564897650437307355700214761940981194248709540100544337457136656808453683072838263435156071655767156025629262973650464618463860637573378544233600563326785502426682731385525765564418549860357891162261109666392192342838447796782114556270523857574271296616332845294527538968553333107826396786074572093342855816423754072357253209353203309180233392220377754469814262927349241830427356840116227539694163196183104844855130008936604429668676627769600263754010691325991355718891504038880369748122201205347924078980542226335454204779732805871055221603123234203991436428929826152125202717264906866566389564631800979083927157304975610581668815493168318479132727520565177701541100127332202140147618704529866119331946443833175376031224376449700503478207913191281125417386784402157386857157512726341129559654888038584444844816177524841690055628294641832228987154280277285280559310386300691959345879975047682391581080922782435297948296806108553248023747326880257896741629277785011962412581956804347450895958086738653559299411636446451526697357717409989319851772839641369450518395300019414086190043495883190156045601291411852485635364716077765070363194776459894721873812345673306128329935018257910201523241965207455166833860439612170996569643351131105482014193807905313759714737936702859125969911154001271515218537900138181183780045866190716913761996033410992695205656021715063438258715185596954920797070467634518820569677886634164007506406119138959972798121056189895973503716137461839193230707156665715631909997600777621828109700152986062130865318661609114366266615800751676867134755049194346298435380756150744634815127019766210990607371939092489541778383978890700470801645828939963210839074563999329498765001868600237542975291024824249827456825803889062168319772987032666201646731038993455262760765791290199197015440565751884172978303757834727769009240466799096009845686909038778044508755169433654620173506693395463589475278316601820205296075174505498883168765338899807219903273940270090699686638809400454947987862622756356000324423196595958607029421404581944747756774926103507582757653003426052266041328219292402491383754683853725253836511744277967778069028798304955833907979701245815082397214896364985713443913887453211898246918758986446870775763316478698301768293091959277035888133238101419747054923778134445811215785860053029422217172986095236648271094360711643384956518444098147899800491292404071443959760511115315298431203083429085357844202000022661602977089413849838177913284316599216781980368319088825434505630553193353510108978613755779897770043872836083334975934701269789212410300306633756090133101141059753487919137881914638835350979861945696747555901460029083293643806608941650067370114014262438533693655950286813662423892184382764414248896214428505290300672592954704000641307104606102977177714722898299410365376979911672730855232118420962547870897063868467955925295020611108359116540219446899758869898695713958401016624831723483541951500165399472125884548048033276561925964260142537119867969787441465372459574194662525794085932335509067424820078665959382042864272794637660037636379218069987933897647451961270475067906291046081984508625360250589825852486905084298299401567241679527170225218273313936496152392897297218349178207133172486046351557365270542560622914815604826312314980442424205405560051636509751751325285198602435351065955071250415942347256985761288789412158995681087242493993308265294601159815878659281735698420608175162784754999784124024853549993147231636230811608656601094931930604803406707017312397431725572387478474085091560672257593230212581381178604412312924788437707462235970757410661643186175662890883940818737192675873782315249050056630726852754593428663247473006547638164410755680228210867178700505477318123582036864952097009960601054924760726273567161167729305846367366157057663195628444157228169126977687475504411500546263822144900162905241437643649061111176255441510030544932984476188189533399294092550979912320896441827994441527045423434144477004101096372246670065993760850974108569434920206832658982629929115310606643238600871836136283467726580719232493784250957005537638536767626172540233177587739692169338263724761817942065195075731476680196129885256014249413312212032684994794974265261202040114392157342826556570616616429360758046162540501700032372604806969294771042971649064305904211950327049190830319339662708631741551369724662438730856270483198471836012647333404626901468891569923559875623788952064811500958407429895863835969026518837627185888038963198219007848751524995601925501239854137608929334471822631691883425764725975602135915644921627552420189988758925203032120076004278367100493229970794994459387692980270662466671106790248520963859201808594304931097760119279233228003419882339009247163625166335224832338640078862158271332580532709434528899087286439929372483327561603412134627679794886700879881700692649363908779092828752269265209302616013269278724519631958203081865267500158589450362521596852872676026503356253745604972705845783592701918546351736362572206361634395690578819816016234311501501293559290906898727945898409973473879626753338777592350011321093249192587791206601124768723046055857264336512061139784438446480044207046560628390893671596188972902837742085585831553523731754513740286722754163444408210445720368993543275894091316384227746132856331962107771094354473358606117621993864248780664765615231339194593651675298468614372613375388297211349291315381921653003239445879884695838042895433232527232663075081751545909326552671962710464970330949189710297313310796036847049402661292194386769149118938203531272115926296213408148288485927588186221910423759376138606016550974705115139288256556396178019551044291363728790777998427564734190147295622680156040739800069951978187870362464190018476860655442043061045383915413883675269773049843739039193231212027363097525247600376150980185041282255080983421393778142857198232010144763344872815146058367830130976394463116488957383113131090671224287387017160481327839072433179058185098558107686101820566139106101353863056755525081144064941879537980175023813762871727010858578137095843067062738115910368192547852359171440058564739651162246066514282928092292367613338363766599664045834446560552733499280608668631481593700163181277860417460404127988191119223910694231128903082553694940174293872887702509122047378321899665727391835121628047319242442166170610499181575366846831639693510886782695575570251603541945653270769637599420321223810978281360946445588189008473217277229671081869352906425294452145102392466455541097426070830912913158069662890969370899961966704720449521768194801208189391472057229640091157240060185829429750034734840258301724298034330245501320257740083305237363116641235085891025821341005229376114821192239695758059902691633353230698713586861178639831889346138661180104675677664161580720947201904743741745123130445996551409370117998786934963381734812420741682850395027627690205225272552404094443540139821715787162222131108916164402836196458713412932987017383916079494840488871492435471812064595378559306446662162722640563490025400573340182545630296807944247377265067524376189403545644115504722060956585411828283494179702783698958917769289162499257415754847223154203734571269705327360842905499555408628551547794223471815100029548550168397483551996065127154560297573654418276637418983625678482782551001288022025985022566667660040471708584374491733048680451009770904610715451812854209592182416687606669844360088362412120294310403559968454881926418334907893183513219741262068262403133439214494038021498731277635445221616789314511096803337979400173023596912543805837603097004414687477082767523703270398556185933733262751479397040780905340566567788458064555688061831418906716869841933328212093929362345122748979035315801921578757222734979348894000500695312859662148747353375464101962782372815933236957743048869212602817298822806136079674318617715810013972277079406761552291513074026418996034392405863462781050698870532882461397975289803652444022423746670627653519251782489708246553163842981954745456958243664123923396319849202595069549762707269630831430536211031792579020734552053221420978776084007373377669852004929165122100712613379431534933984741944666163153765946693119334598382494173534169691125337075545837108981803577483479726389711897103950489666658785578174073684896406992900738591112039368645001708945881347012065552538408089351203072401705770441121891155543195963338514490119334792187967628818578332226632636048611972683198626055725167947939022094364333475659691423272965970569059200228142712374111356388643846513430851810681796278855682430313733636756625229248719309404986691427749906155382486129350995597508055997932569779128770188893243265847384079339352681482122518964369908350462076165573808298598424383315384995549359582265432847558587639676353753135810428401167436144392547502234568237632361445891734400157669697215608846797542574770841625115618786988390463941126888511361212769215400885057350806358283361937466981729447733594443040576030487213579133466125185988739435818360283905635145273312209706480753595007968822728143636477732385140381116722360710858098799616803960772057139446233563566526183137626092965390361776719923958755051493529025282085872868014269142383864325148675119345831234203399666184471765292479926610950005849478810500338672054688446844054045249305464370654332774075347135407662659835262686511101487795476123592150803031244552710952204665044360955022168041920018428492313313091905243270702565549714777539183639517067757976896226479892378876749787259666375656114530111143113559281338039453604064568090441836364779379841423395639765454723162799517510661553373216677438918564680995132452090133139738666917593701654082010371964398424094167021531301974656554765965410951015196921310339250011321978362808242735751344035455721738618083615500035534660948782304337833768689071548691621824196272569187140274904040664331236315506210999149090480654316246869388655138062642761331242367245909371257305753020158752495931405804688106961847147131811066138237228271377899323199277977056218417076722104454802467171074040744698488760267272484019147041425487146928833766551926897488183654455701778126364694272436114377060662257932932334489395681822106226133498537759269258346483568960053508212174666658432700966501612274486249850244204414530088744360089947941149480683305560427451051644297752301448867902436308670209536068923811982592058271874513434957334453178939676546984524057960472548857328056827988030095455895643699425786186767650677209363575699027515895861616288395521660594981471389620452790401123848630483661811162880379817084814492704360374520395744784467159009583570784477925166332211781371548156779694427015786256862072338354124396223739730853954661621467156084134809700442746148159992933902431667688615312213153087703341624694574027953519303665735891450591491970620603394720606769865239285077005591008224484921777709158747650754457121160954525353689680118001251224167893410535946706108016283315384344418589833222735032484598109875670628786078770790531045770271698748635232663897613363464058221998096086585702739934766142916341879629723357784268846784022335388701891717073856994621699693048107967569026137291340614609457310473303703035557047177892109600357572173688444708822564781668221346526183536628228341121776505283453094783853454299480715387220436872423092052999445822307860883451379875306536212305458287233445517250530296362843760343336510749340717995861708510637867951354071280832333946680865164386607391633759321822156127328842940152329638376559385899006956462872545975878277363864769785599358584137837788493655276466608353809788202064090508238911623881218657946823088632865709780900856568797724357128724480641840210931647785145315934477699974554485273399644678648219127028653101838557916356718656567977356428397912352310804721192701111562631304847708312448994866528574249730773335437850085432004465997564106945017307187435754921763181869267036687065161494241333584234112815117442890257869769320438989603017108974252429642633317556942498469040292967589915079783826564521324126065491975690876737959874102510348332787519071318278070649244670745215481999986650312710849192940085877065853653494405304846687830071518039933050599180092440129147347907954619447550722122310902876483977217495511990120158105849832881345165212394351765070414167689435486978667583703097288251129236188169403452438724631161761533517079942575670010826546022575113392055179827448005725432541183252538680687726230320051894696388754418569737480086904997067721025399112741494913432057325357585110835954371384658651109793387572089844188857666341613820340471123436933390176251310624400850891802185695018111825889835833780224908953540659858936757432395536337122546648195395080654674771571109186619008943140945774670549921515883649242945465423532213368295247040611542002461513243060301788118676267348057113323793305885583442065957576501598983502818900914704720065925190178948162020678467202339219358268140519925882282108583093924135906495569049901671640368463161389939797909137261618476890166594344730739660022744791117429513039957330221080482568109513480909058562048353725754404719187240600732906918611074091040679941281985145835389700025101647948879194414033823395436480442652926887470084143136864678046465371604219028396938183799848519277437857281374772652841011851294997910867451680267643856947873257030839051928686499834893530218129662586709589335944085744566047347351271710786807930600685930265324867913667912583754250845978904699256516048964077045131073490305904945049272897499992209481587112113971256072822574774898636029744362290370590035862397674741030226949052104729530649001936614508191077244114519610926644901573175184636631581051774751672696539280085883540232649809660304388734266441418577449676065797037447707023931343498298363211965791453728279786732000771170469828310184549115362241507127012231189130422266135143964777741147847918673619915418116591512304195184898184566064918908906494200415039326079171151794228951288414136154830218048576713086401082806544184356567936091361294562128936756879467404547282337063115739199605856265249623554819028230013211650538662664994013129987599332400035084404495966760636959372063920452106214334536375639632724625131415580798970129287630143740786876743399066776809031482189491299754067980429926532965820208980359905263723427286295087549704257935220209031595999530301970106197118478928232136014546419467249196072439513665608963623037499178829317112643674585572101104674573911996803655235955265411861359457410138178315978673281958639829506788145997454990477322246194537410307284045482531281626272124257560655952473946816965604426788519353414649762076653978348514414997206987330637913330839073656293844542340331155481669341023381615451348606828879664501625878707356432295799687812813352611902066874885936660143132784977535104760821908714857459999328301052751126708878412466320760487015100864975256164624670236359221018929229453258262197652991839458994107368662979935165970964311207338455515263647661218238834961410655465626892030617056211658109174585022159799155403069543681615443522864820813338859974688724554339093423024219013935219551162522432668377738176249290066929322859131498866098470478356050712554338697890506755657948858995181503662535130219203339221790174801764346540035179072419237653750187669172787610516062875134518075453638653710412564199323859619978855451467813356637458122973857962046642919214328163794416712205272139959011306683927658726259870151996650206592243484779866244834776275006423434236050527773642566692235011790512209005792505103631526381192739668345011877821967530140534650193857825760420677046245598101830575458633144689822181846372121609886132279577196053782329410587725607471340593577262884966135943207472239709433767271775891296009451315783138138270423564345358162021132630987184413262992566028649104902573708636550904523492291147452316260224385012773755228096139658516288569261469425545639790910393559596045007167384524487889583536649228644325628988805615478389645389037040731678259759608410003935541405754251819052581673959940190968974822196927327910672808132349219409504670560821678537229845591387684354536907280589275369819038298464405757621525825535971940376118033952887769884221136621103965222340743152081271857717105475152448191564773210627403935067679104113803878723503525650388468865357108938657431264877713361693202458247185065237942649889676928355791813816739967024482737358372857198518100517356180522928362991524150157367943105966223293110175033921084912341098815295398049468380123563795091011742867134014942589398528785929900149914820206161419079137619571924455752016101880110132960754546128751887607795282102796823199437781577704537234302503210354134051115655757508681013554128379200253025227125710223422926894031690588327494397363519614278481524157973651692958983747422961993488224825306763058176377347067000006615042016500838295197516431637792075226262146398063780933983977135519870909558995013500794492259773334948708069680961835970655039439186405002738066870218752040947751339655066918306743116645109025621168677276997530315665536527749683179950821033400361905580060011605970062028039784110845658237300246562157545642341410801663077179436793508028232618007689949488276388376197621560353087035051370669731067478462669932110439191596865983754668164480077995631671202683841704439931003194120326681533570384549466393939843274697198312135863820991787459793501604152705602404471021355736465993426624278941756370305432230400655397746684867395631949719569178111415578753733246037432645406044292280702967849189064953786698707178004219966090935836707401855561470491369425394539987964368122973240715947160658918411766382314901165585197404914853200895686599594123239543768053052654125420453986897349279229053804710490380189785209510082206312855294019833507806232656649125903434837429759131329266719638379161999887364640753789833418570933351308013713272380150055048473365255713758503482669509853704305415943674984589923685798765951502049241556889191057825542584140271633065654266390383028323847895367827250971891904647530598478205370961029527585182133441542243946540310586146185875391749998746154517343710528584520808636884134614972887164666273366132575487199412230050191512836035777604275680377364825662993698280340827679906425474371423392065511047062951691972892435706157033031079800485016486309328104260390489574763359264567983919776242249151346310356872367420298521599717525293722074347212802162647088249056886682664487692176699690757332130048173172769647469405784737833742319344025576240083342665796817195165036433148321987305069359708778021091529104831336933866563287259442980382522073261029624435718044537875981807709708234271572518261118009586511037941452009679539285719252709156779009177016449977886622586986084660609382914736925629289432083698592406507645749487052409299769817102374129195096805305797362938817195553636231362228137605299712243833723249047083748573334763264326446864585844947432957236171355816261718739803227938501287497598608026179533010026286027647540689976863408040977105984760915859014881302170444387269337042923863519421903155032518518191778566371443107842903547811454240788172432660912994018985724892668425902420628035452126410402301037335114726986952080842400503219471288062986263801100756540804079028416641870218042039369833433073633250911323702815877322529466748856901646897463212411475136569321027336485105110336952112474233269145953556207286164561347268942701005522700091453967308652268974612974795356010339030637885061088296802848476035541762328715608981027598285828148876452698135041654112622945494342811336775866276112607164415054451909835963188291906599939802475985013082877944157794036112961983362119513561207411588630778028035324928103926948723525282090800222737266990754384351315135602099940685043975266202106119356111519718611186178287012896040919411406248123596423056983714938654724976916967875723094002179420291430921038127258671858220210192194417643367104599846526365524526316883950497203454174966649551983288215225805939488267920693822870211405919215623712054812324446339571878239154769612961536061648747533504905148663799192840671675376520834986540977735675851943669469612865971919649048624071571684432432804254408382150597575935027857408173436289360281953858957264095419442371485388418564921978217257357379908716598567676201216339408409675478827703583380426238206635937105769694008435648871557979547654782414792984296920685348143342616894882122673583668312461078699269714945909625297420869238724930705043507959910022069163236184360731139176480649654022469722721283721097353162792074772491739910934626731498465889698515493971358340375834629791805964618910209480379209734293976636430786333604044019237978832918913323647214452538920303899985284615856755927526782307033422093031093320242276244346670390473389054788440406796368912313317962194577299236446462870753833823223196005704405713172418510150610560729016813184479943320451048374954354303113773845112168502198994740249774925357467156452793563868361592913373449245855422840217573639026024856273748411490429849201438608790559573092809824196157027320544104905644767471671469940534640573040029824184368323549650773324018926046218027084467523137264294324299643513708081805906008587058085819790149533619906909509118129362859708353883260490908373258091957918986753638880890244460440750124580723069088950382502053378680802375033655261448762801299477102108199561305042816099112680093186005595474673462684336933678501442301633967716592010681474486255573037118847468218666507704653639607417061473190621559317842533820441208198145712424088243527941902238294468553170645333873091263949443556563518221007271017447892854365214987795529992779742959438537590519619535710530171780248907438495656328905030905680053953295441389068029201431011474024482573143643521297741707955180425458549857305102675764667487159718749295411859450096024486953547679450513543132696541772052873048018304493541026762086807870007371664734769845747076825634070330305983581906289252170297190381410195951978989212049798468540019629118466134984659565920180692604764543235495090441939834257677948885693486064150085497465469629308722248631678224021170589057726499328585161980905762607632114856817779624857018126068654018845641386766320155769219610286145448050679142794860810688026742366601207005386922707845801701685027253649411839314457300868908427147041217122095734074454581886479054928149326896309715620104844373539497776278589575185888835485342618471089424937136205351163005632050513980614384650377549080845146888303609216277089713925081567134721961548485298897767888470586458852908854448778172247570587999005788734118197965231574976407269252596876128586747551958860402992980703054541276229088589690863590940059822102103408426618782796116723334771942513512788784636316334877826997210289038567844955982673079803038683557069078177091656505971685819578622501438417706266156983963653960047550554709241886192048738763676128577917951177908870612699421374459209973660443251355935238147235516426069629100887952993818224791894381338558095687950566290021725097155914047498987863802772773716791140437085504686171270386804377909957823799622116835118288627398846300733930053654033542113448068019684158213917637509977311174258510160863419836601178467820632782039173274679724202973867555714908992866684639147117263843941029462749229893626610291394529229338009867513341048894630327560769343685279576209506266344252080962336286403392349546401134292193010582089787609073236227818722347880595910252552596067965433794586545445478256636304827948012277170267658104569721967698280019051730936758864114038395071065859219429311063261743816495416136544931155228763649455227919941345845061510985785397750052424454776134587309722719467707375688383149168587495959730636016788974706645977955536767435331910537554479287753241434238065009079737319200097433800044641563020306886043039014892796853813451479453066815954313269809675648597801348674210792600807268659963210392237101758153406032936802164429563188991039192186723970235319483730355456037025313721294409463007331232232538291120993866646530319258210117284730806250183662132889357880131736403064925326148445156769803328124243401168637169530145802335626469544658494689338388734750344805700628948620480624370068079583968010707947789792711375775614281142962664440926922094012858042188386760359126850095434253247403205601419158533840380210084688136043601665855655191551084366959304186007226007861475868342644314665160689744988644149213330548685423299192468897674282644592965397477371091148884119514985718120888143406370132228199503466324889284896937172920290850088468007226181024778631145583020137200616764778029009087173611060760857594487309472805020407501909567440330015656211698156917218200829674225811888005206642452416873629359526886586231912936873385298972493956326556012910823286897694925202632248477067328515403732525338688642597912873847992129107067952745094243602677903848665902722974922964321661481675342431092608488160182514821444557564352459159332075680405686854072837177104264544344111495738594110967835680246487906196469284315946254140904501105676072773592779547936779483791908861497356357757033287676979723596740426020442137463170382680669429761651425030030259905094538423895612972328708031713825175381281420211029528915772886293456684237809216018735765088126895734569465413336848612312945285564805186144988177265688713360715744482046003229563656564365603543111884577505610714265898863568687275780921324699921310676834487947446173658381654809569843667945287582574476638290702469124197801874346746353500576285077215278454897181700225664709062200455970420209964119735973388972500926216653396797525327856367332895234517042698514927274226998676824660063118811957188186081190066995987802115879258564605585250167927408799285608128134920599674934996120784102151629347552805254788548932701221975222766477807267403634209026549263337344645674295789215204658790711259121225293099667556372920997559183258284256625580056510039323494127565520383386342342461065009456917286172646772457565102800969467664459435890304679061727121975873235229267024468618671455569236939599841437566465536651593095263291451294979624342339989034944403122647230265341217683745433808314332347315167324485115083255057135735229990859831588168189902339288901351626108393587112547577627339296059368605414320993421807671856445383951386590906250588663160637882021227139699846888495479196005208137684170013800288595923975167684206735533485238528835196606962069972843370365265499065883998762859901119804944111557914096647291683805149458086739100553446673968566759053545497018529729465304711939960519257537394179785562842342559301303090519217440207865079507719196619377536360118290305281604901727666769381597397214924550156864597978320922859158823922875619330929074364184988773589181081046426965304904300267928728223278187286966237798813104872149025001157988103968615341864011427560775030115173523021615892924237478162780101106061334869327808911606932352640197209936412303928294653161591409784681719072154983415493705652602885099225948688026504117921370319595211431484589365352250072639750730410989312978838961797642514087667508352828147328949931999866459029562539563737821017858493217400158119896867353210750265846057322573544713606890676970378189330384855312966311943359692084165598893927461217414159601639287096115866066445208586376555881435392090506692704894897004260783708440592041220807130676075738119738017257531790580582459511536473282601493876368505945502224206955831480127574611757504527073951843125868374270398839184602816065708696718156791830562329023960164039030789101229718806463775398675421899234444119901609782103491380893806575205708542897875685015623694294066458963064237327880649012850055898678835867294110035758133659372907685593313621704187988095596668829762222080822075513419408721283146521470819250142295714428115766875733530948704075799626865068093277091387371675238371969980626007933178069201727940143285405808810802262449219748640267234081772411231744543700740681752188377119201656114570427106432668877467893564808207500513008504971120083708770455536579071248042555040143021343122797384893421497405229525074242901372990491384014932392662672999667968224559728883003953772420852914781850708513409606268018615093667211105653966442247864649395997868101122672411735363724240586345466726570523901687385867418427563083008662316099051156968600925315911887689579513236029961577417317064636368056127867705964553878409883737463520058979812287801116717019873291209826529885323797430585276007597918910153348495251735692519294090529855595690598196436799322809218718453006177162994784055195541936419978849425224584388545057043357797423783909372022228352316742037210103291766146176560984963017616613217026216492376219204086561117308061868104447972239723974598491688248735112968928817029877482241973325327191385777008889713986798874439661574635553640654910733195717128501064315168248059769247140449893018281603528227664406533963314429504336640335367095500773398039516749180201185324444969364126982679948120144664432560198889960417420504174192263188064305016866890141521204811023527831627011906547331882421658959387563349467917050925122971825962515256666757507600635658776485341824509105011764179413593149088843861892593356985433361847959547690382309530543971952487818860128419986662725419223491057507531316645527068909736428331859417276533132519802152401905273746823778292599507147085192992869469448866889568899170600717085392642325802577377212719770945604300474329594143826714114638708100174820002426244521779065049250426548016358237514287102227661628087251982240562982295261180966366597786804577080745154201327007619618939102820365562483697268414503079754499142231667804739134864406196189311771866227426836687831134659934131218512066728375454010693269261526976289624061246872118923412651755970297307107051427045005636328805783967418912836482549125853607734600141249536582698789119037211004763233631752514422722062695089006573780511034584442681905587437999119829505211618576450205105464047665351968373571175454899539934529893386437804124201627695421711589385340181030345376094543578314441262093475090285503742290628766056321251151739810615483550981061802420455078058269242334138187392433980415493830070735928978265438911666354455560782465120588619161195029383313879930249575365244466149088448739194441889745890700114841414648372512459057572753880406751590764318742788199007293886302516864466795131561483304366259047854597502381655456200809844277808476997173459603612071179264100965001102652510734449797079353261817648778106116969850332688902203583607528770531093803440899006277690081604710388503960135554089137667367344210303175826314964920265058874665209439444940286998828502794452724015343593941547221423885410451173319215773923423108242182222149913213603437473447829409490066024086770114047896815979289189469850742857269702023021584598043783296586044263413835045641033979510357034118607083179688674644456720873970025960674900416858238779398682468095942194924111160367271140572376507000577401488326077754153979938773131099568604852662816791621053967935770188254017556410315113374053657412758803423633362479628843878147606976240662171537131838431589886004165797436966690682418759769706336157932775851075248362325270477422173856537956156507535055618799732153134725317828012324766501311330696786922975095974714870373061858849343738682965948793758581101863493228503520076110061914035005083331398946373700797544951233341039378717793814123064962476913271396173598411047020663970802650401574863417894064499230775613875215489974452981655480971416827109681840215974787915642663442489994728922959525977299527369112883493919585580700758540153537237350292696486474620261713287681875569900330908373369535488795935775522586493784704674629646633020257973324844612336827453586398086533797593605703464762876704693058679727719781872620753258505984138849205366321869716497564456723028240330121704584576299795489540814639289655331358394352494325956753355063526916333031084593968842840128453935641344138142605997652868129606079028136478216131923930556027762173091535741874252451414659623499789630625635448547726261137295862375452059151671082038503952099221250157141309509221832971636900403913712241483202529314169400809301005201986314095799827842553171418872001964212716529681427409640811928714800768522750793475625282014107495247574062449017059526043785174533415658852957480542989095202568694618314031335604731226848841218176408822281174086033825026961893814206960924142946227807796894904081096133050414868337693104530341666517550257174282970107933067588282309458875306566170903297165198416391948872760048141186460702918787791403083325136991978935454266725382057794652158486657010045814730535928186805467187550231996360218036443457161874019703790603298490458260452327973120531080435215558056747223789282759815428454989617583349843395093240144326763397655934728320255434965608280868914769049898468930136227575746401006964286013475577493765097363226544161585989574765029821410516672061535250777673754545351499122751259069130845950137930350917247536512989646101455516833100966531901847665484844811278010308659905044802799322600565256422618525872093585700497120221448541909456039914658410959469902139231750290072261406301013096401227288119459168770263966530620840764056479865717735293922744382088007007086005021440488277393612138273295287072855489871198375440381772460312802115889999892230630349695741694992638767387676370980067491327317629162543026856616499067438720381126959329671695033274303490614944799937604207688133980268594889115429780495089389392297907221905040927465442437070918449239657292623430639921105245756325332505981268166304947059691810093741930279382295025447229932335932844383210761763228246906707029272467115689350621305461557667198156851932400698182461453104235809656540504100942876860568651146706029447098859016255505137797480651350558508996273878187995526798897992200736616776920397273910484257423444489557987454762913284379974725697371759657267678392431825306153808247523325727220044108753625306069193454843078229858444224137417215591420232340341105935765838881372519654206125957907703402887112049388582768798205865868962200814643227593522252913678551744447598645251909226287198032398723488957661263175460858172380480793659468438251150770569644995598639548411329266091196567332454073820289645023700943390662514855319114464344120314119869802372013478747640967963353471453650755636038943536189096300325992411048635239928467647745481655653760629390099597158600840174774545230297252695893567091252448631016142088766742431382378232811874690342323066909858575446141760310428029709007220870943514362696069562103628340082915301012839339381289252968280398207417447264604360928381179045071958459713810184846153179814378396235388023477709230846899981546638416818706408267815029674756717000815790222458835035154510079453310816997646409983267157989656535774589219454477841452788534834173759282569308614717533327336005272241511399607822231621624614118215473986944779899729555926908529196132022885521574708353212604163958674690054553012916729973990630019535090030081936422869310445933327860400771511770155365881841378209344420767211112967658539816707700753269079067856861067616992754325173198452585670551119666314014668553554094381951457718311682650839970916350636523195544366191425855766594669925237571629763875477237964774432175003795885340141880819574070820908308136527084757215794175359276695288599575101027810008075202542938418720792745206310929330312198394121152968859652513107846252734613196848294162106492386094283641707550634639952827772654319752369003383139201945997909470946017217648622690027757105870309091557632797112480975143217064428821393282191416748255175956787557158125914957310947802507682312897317634967504405173176175478690493686560856643282679156316675423997102898064970994669994234617592653794077118490467064497777204968486412877785633458540190516478928800656710841890279224251465045840185188906296587657046052799522084905161161786275928266416663262896319131150881562101135518635978111579003592601194373600669165492833416405696188724638409544099923084054012749894838171281366107262599472941490570086239207982075362453532401272010267148591239461052865918799386889961975032407232351360973521797736067828077428703413674092345353646593105470827219099104950961306990308613230683711628291203076192182179560456022034555102565503701820515587450878729429001748575783114288128148740442468600669692293605348862954167351668110992427614163234313728507659331870312920252585155021506541764416033562028823261133154751555353721223643800719639043288034667194398476499687606092374441875051698011021845125558490779618858612094032384145153063383358293998560853415607957661954994058293978249821686677164065664754422191556466268374009907477147641550004909369161759072941041357173105439451407885348386790683061444377098878819009746386004149707073232145746372708903442057109118935048303489406005523077779036448711639925764599959308053843628836939013001900585692970749987939956672660722463694349907344680109816773753896408191469153485051095238325431228565004962516512070862862042709490875489439351408758880661964487009682669582637592951696297285306850170927221872515369104341274850877756943605006298832382728373683642091996476698076584642064250978025796951028299618813667200305298633159744686997990023232963881857608005499228068836243441099615807683729922662896390265852329956267118739485299122689886228686590782461681349245413146689088431744638576409363327920042235099050425980693961145051833541435266234244119903758869704007063330972141188206786139847329512027296778926996987625655724008626399679044580278688564574046535202389025956040891112194405616784019180580616984460556540880214526387520799293708478496146775866585770988465297690493957633959255232246482465122270179472126971166706518971875059494151573644768427939328861002029340287166822041440718055589097725605525783746875504862897710118306523289017984155464310444066183476393376005211331462503991150601734946306094852928414960757789837362366818502050601330746716106178042706284391385487100434568913334043974448216536921630982411414875046720264956357933720234778136362711090036114268607793018766306134853788162395878266922681748748626138924191119101356998226140036366776368090172908118016513564414093355026433861397535793876982708375000286416508116241299122214564429209865842441905363078179052096569471541670320051123108127820230563619772834820818242969039115495110897932453414515267695219062849378542644881823015173472139917318128973884290888121123485218403320158356147452320877339448853226605279329270461111166150777381158674053784383668498223954964051536023980494280440495370187590981361009451153808099570544847222003690718187922632228775845267704740984357658934213306530961417740550603519237213189168872795242873457087856874782228061630343738755651028485558980828140072743234996889274046758111099164761568778712743887634850365902534139664973856474042245380412658471358244718106687897300011003446451122365200605491264461510011363457193896406696909357173567976914087510836546158378390716925597057213375225221025987555459122886654766362853939039836701836222070084156774991187954072986586655164452636095510969745752667411333188786620330832848504873026674079576435977550596477432237713625852047110263713213514740574344308579509820039400111278916429652496632735560045687691953813467229121776423028807814459787445441573114853596921222426100498940735758381905965955542586445312554524928416278641693121524451806840122856260799530683951783714592619804025194240327892802573463869533670900053325169789827301204557056745539875455557508608492440270350053591596126474306378763467028261483165475473751908128859290857418670423473158513736817196999068854206716334490576193400840092651436227440905494094523717446333132485099951472455449417301466225420548770514386314210703892040723590415452376138702080278052137648386178070284766930296079041548748397446649594647918863995176732762492739791497638203543687856096820054747507591518475840120843294077408134531858009650421554071748291088983762612191683879836143250574107460443209947858532850615395821791659104298047992744276150736999201662397769231727301552879415457388570874393006019583207297646940672005259100262202422538243704401245055185072583189273827145303999530860684160355373186833884452333940689463057747734611647230876667995084369335553293507552574301503910265180555169463822664591754584659805118002262973938117879515164137131405589000822596170050750205652103364458563494875223455758965398328704022169645221255059191362995420350274921056404719362363079191785272661311553958369979760759566894178897823910133673602673493810140722382381844945352212262475167899855164950598638426865689122640843245604552584222990511506413355338367700869394037101160580723699217457591368828716054043125374594750935460311224707733745704479865947149744866979187087863142464531706070610906727723159473373878359218869970352318113909439041575042087085885615230743692480391780097425772955334859376726610787139972704254971369204018064112000622774019230892288173878780181653533919337030354026545017191290357738363085053953609851538853068951019558494952702957829066634712998349296282170580121267203335164547234110079240780679139495089199182533320093639039914135227074944842536031591301612733673932424564427133344493406333038298461495171160188415641970794365391842476255641881465153381298517449646454708760629823777485601475401725786371102656025695267041524060865894457669217052551125751953990441171450504219396988783081718175928918922940213985907159680001024437522414359009189337728451286145761205426505581250301731814119582839371019040991807589815475257548897381040818261407065296944594883124213497970305342097019232289445968722937271418261849134424225586102264671921590194153318939690993119801754575051553288586427013128539340012477987143201480479881012325182921203799476394620854874894118452721148536774596547812940617597941621903600649712964016601067562470624619675991396656303428207702395178101705258915732600171337963141278626809247996709054948799582841440683034753992140624121503573702869015192387348711013440664460300122032639529134685935431210516517455286796471582135454012470065704255815820171048591282882340287360590359812456065235659773783983209936992506144099065473833297321200211928304574550796489964863323761749989312595312442959286691473101896623969970929332890958439446256304619068317295920902696430295386743975802951796968828132619173769239636152833768312196042554633500050364550961561116609840064119154535568593818154675652164546599528831426420842352885248699150219190273865303829248132649223903660357865831828754573354828079621659849675971560200446347743943686785938512731654259861016126874134350243136394035787899890688857380457575961314656510392700471948400391699857920467791297767873384439839402953981216544299926511738144168467285260841873364981802379149735166033907767994110939216211181732006255124552256180833199416885030277918759195614793484938914755490356045199897627059666747687615154181922190360250604296898767339824944182390298038165291956258560185995580214188717115166045167511029946822648348591040659080131423476624065770814643819465712223731608796518094737565403217185060675347169514418634037940703071370455585169569102628616608295173473003406238700355479755327716587604238328442220010752354233326625182332891491141060827273142917936008504057891822415839065647388244416777403971954136882281971759706404431182748583506214619373152779860566728715768474681940426574517640389668307766690221047674893530798745880425153546257308219896865948344536487529751628175746246409321559825518277224580060480917537291774698402847412308200233809878538581148853542906880630183638138731718077206656321545426435591634506866688853126961976396518221659090951512492540006953126471819372021591506799186273298993841143626734366607295447696793201856201568764783616149051773555762023537778013079924917145977758559664814055875405536016011022799460260155404930187839252952833722403099591400948203906123175427308586569943744561968181605570116045425756777239780129746907347497834814658882316418792259978383086640384087569828445982269826229754324014837506185082440942776801109567565412458721428292051728313626725238173838224435110661590337393424564585049288880210726827199570222190645004414452883300329646697353980731252364981248615865638757761004889986505626894309512027912515039808239794231248031820988050019201850157197752693961107172860081430874368535698204547032848565889411195837003105943383593127426022211910343441828367215723270192540080123933060682924845836614187788403392441805568764480746434734194334908690538844809319549914428787484742595499875191202840018307413977338570252938672173386977201252011266252360748637117855254966252460159974589370790218542645166520298514621653252311719327558736822257462255081636197215658030469194429376895791512101663354287695545928262125506025488747500148337721198522284514888480280244196336566234177139281020723070101298237823571590347118496716522828866491869660853112053360486526814915706458178439886887888688101229780027569209367932811791564271211420370058014326174123417774969285443469321652585650144946855524275100113517232653454542740461665469711682084724632995604000236687542809974499383323113214856032583990572017957383977261868390799426231088625049762046892875998385934573321937491043805802468731991940343211735370527094777645567451391647468694323533114240867003510089880029588928900851290151097329910138529641152006812686237949279797676117766893917663450059972164957431484398821694710044622131866828680288596670751557299325039221722100005566118600196791335111055782151231494588577952089641907899471797704235065060137415858361182734675343204017793702948460456176743563964485842946374826072431697795615137581854939178469845450293087749609589941743979754934953455032714552315519854863574933947201545862003671693364372774738909277076321699919919079565937467543013510140452212835405482594243248509001460178753122683848390493803650309106627988932421904367396627829886743874356397553531302167362192991859181506382073242555740713510755503746268809347822639388105637440224176992794686176636090925999282467126051520689951607908397702561443700779895177116586191154936472257139522214883952156895547814758597303029593845282683048542377443693537984555232466729881823583957729039882126704316329625320437120487440930417076357177547495888849108351697835811481652625398359710492092197977798371130832182952719349160662018267592150219302015108216913097039973135947702590315677044459412290371580129420212087084563638776868117165947041089082988894137609926552800638820564172191647926114191844664133466059234792147253983049424476268732594339816394785708051304358654790914785142627947619773610665861837337570742682126600240926733605834902084270856537222346302145916813551323505285475549555030031287575978939402500048549923560491798861464800190512265684495326613534830694717483862814606647777801999185700068992381844096342474574428977418798359442303859814365723997249292984748560981486400896689659809067133369497675662048584141443137369249959519255095317910282768146225103564334561387352820981234749649932270811169440452283765256805121133330574442292176509976286720453604240938304304582701156157584285032230768538315614257814524209597729894728074087160767435114180415137101951166349533207858486267408707845910642679899386557632034841846232417912231894214993387848808275935819018799461770273244165698106126419943607027336625080246565512512093622324876770465289336501446329576962966590928565568046325809707808540470478810021999303122279892013790017774879776035600641866170888349344228971694830563339434967043814538125272684102995057523354777371540575575101680597886484652785701734575633217836371761005340759639708401786826090333447211938865619795249571169111679078200363658855733290567411002368894710099743758785299550728739869946391655048000405492812573190061210638423329392228327421573868973091149312611858355764970443041906619166131642095151601255992907099948650980555725609211328656713274142134881352649069569901499270120233575625261457180593124560157792557791399891300866243435429544252960161148680508098943112860028498171864356189943355580866146452405386827669005314736841574726567470180590900123941339006776197646948050008491105483615828410588344215315697018709279856115593164556474791099202798596185819610613513323074183524287738905841499251430727601066806352496854572729522922754160595722599234561679995589945541959632870384667944411206587358655540205609768065080246705431325247526823931413293972287992076045789363727118054775739973560396189247046088125514464018506456888323433835336782071297805504330872221615065007258451334996861143295514833322412796735522688601758018024422939620821557923617665117741847362591239317489089276875166100650283321340928107605813775105795349574363315675816788054169066643895011194600184464909303597006168788054738475129317385069897691186708176970713135026445775556656887097739685269937626927426139040037591221360119172954015778854205433613097991362987344463856040613651939593269347072257023311692313326977147807853028860672655032724272457894377079639767431750416013670688633119326013103449404150699776387322292598137648051499165666715783516753270024764578383831355595671675614242082273754042073687457868470985015123496353320292532261670091571119817302948130226538327433681953805091727164253345775458975755323939040303852427662082113186467452781512828303958867719102975135666507485474973654593642536368912955036299125327304873968781554163817963650284078578208756115706203814662369599701826294397768364261799866524819721485035741820470668821821187505651282396732115809024812149738342972985756921672115207644776414902370306636463241916315881645768184559368650572772043339793357195487651699582473346651372133093991531297811944809292434524041071801175497669892160437904705386904485355465514850649962431749318175887274911539622761467825876121238397731333812785870947481849002039627827383474110265555978273739834167967701622054620862391258193365168664647719833365623369521021439813742409938813757346053642151238072801206522609015846293582664833967648462137985800787052019879202924298162790494526086228302303498882256523333574535957850393094148941180506302559908941660400838300827536509147536357301881865217803725972863490260341608504012365582206678896860865955089821923557648708013214611245158044008790220293544759679752950138592079403179075612501781601059446011674800963396330633569064077415943777499175666907070853968598874977319149141868748865981886890062391157347909509385163851947347533879381496507648193266991207688661402830169482271297758837935350031991763573219013017582054801097350725976625926246874739751957763985533531650156601090018514109956799778521760173357519579702739935271699601588956070867705535593245764435013466277589750542865241265839309868597150087348023830595737265003570405303378383647200074221024821859101286053177853675597750283637604073107020987863166331066817250092131783958633709462220762711706356199636819663929349076549384707968924995717296126279684956455864274582983007880064385229174816852297529799003082548152056202444006612590581297895975185738250221650494688062304502083907122245765959977405882664155403752779663281089015135193932725981507910234984315809560367844753218206316076298677297326510271708906862206081228053743100446773815720875366182484878928479597617282733386528808692662308594130863191511956684097972044879231991845841671351663964534473530526901480396350207001821291974006188057607279348090187064946003278015867579397309525445375255122595727476318214237669993564304818965880065401319183637682987153775546709941767731604402556131148788150986463948101991945911143669323005586877331488487642134999915069948771729177461330325755567759609212001015891125148743960238881021292146838886811292762193816157701874791530029201119101976235192633506700226061591908869274458644028365386774844666506096896475994526315063025841786255465586178931555558710080568283646590099016646206188040344008690546934204807350715130130826454250793681507029144717903099839439331722739553634766833006787375918845545484608631843463037124032484515542517798131123445528805215697164985597588140624510533100000436381779662430110648551614742222647269118725291679262437000900991879456988455440413410087735663714927926540566029143245708746931605295769431257549906140868083071068484947812300558376398131009056117620285540311224693162713198619509832593433616151350674891624680872860691460550394572078363629018101101605942013852461315150259818740137902379974332033796558127628393890212207141578380896474751284719271865800678626618769012434805889564329805737918504758600208334344634589891316546692895253639015871289917405689209093027617260274701805785978917649465284337013822590257342040602910174260575497792569558938443585895531323631368232682324822075282479477528861133233517081767913308361046203992701531507747228050843216403465632327310738952416170277368847219771626113921033356204316873591135106725739687806781277685853895035865829818521942969774828984400832327826433457609362913318475355823138134672803629420860492811964278442909501071461680456925408141644100673281366434616968865937478373566041647999338444172337271381843224001040407127614977157958584163829894949341603911547818107364734947414658815196814190906125654091717542309331083497634147572281508114079560304684139721341102791335185846440554912328866869999144816023970957063217202895388185886902553327546969924664860859816152713630897574494906501298210310366791690017254539394940223832960843493615450480746060694855782337725205386775112659864076077293267670126318132673650067860833053422046421435719932122842785168499136652915521240531010587824159479851153936757613159680800846391631059632209924334026374967529654476554258518052156974629256473703206453013613699547096275037449512202317572066076216848718440084890700162886136154653852816012292655254614774507517764811008946277265775834663656474539908194185525717475162506578983712529186554426803407126305591803811204094810920576400275820669101101758518345401287780906223872832632966075343155784912845294177654731269089945232304677050267474785261891704589801693857540410013884257353711201585252885366219034866059753330203395141058339242755641694847342992514661148383538758945620679121901793284582044945864999030821853530497879296141365872810204656836814359163937972742605441997858549729190704638682665522726527338683566793614075541791372007566263223001124179591705949027393116617986664120684577713958891931712754462318994943932937532675906386415477081924765363713660952873739674578805511702329077126942004423597282156500993046793322603055580008351282666773727209872817489481935822014697005643481403145706185851313480831866957793990671403485295741635387943808963091054749415240507555283165681139415484848754678170091483136215014750489992438593017869036345692379989395665641258443867560859620516425885755412942292186424717988554575992382136325297476678045688481556015475540914539801623523786914487219387770794110493372427766042279433638134416404776642185344929404296109467497882601009949209806634222964586632771981863598980042204418157726104019278401684297335592607772963260366711781833120687978793352650695483222082488494434370850764354941159258018854846060108444852142826891066846969708923177935929111455832871241783236326461976037810176070766599566532810664112826843079967026907252860186976988238902347386361735737093396010779078574176091451636589720155486636988538193197493412196347814907881006556537903012761254255543123861901616985834736494522377037705043423997687555731140275217498107611480083330644014166822141582863771344582654658577369753613995634099793416651940181447569225157169728263563933029330319620491840193494838514301770637765237497498696711888273310026830193440965109948968473648264545700064951708190411404364543539175471123396026786078980483061408702222289000502125572779241384525050599463186823974691286850135438983710640732216638766061572442928506259143372555763739955802732514267207420127624685496898239479256838664537385399691016816725305677632113068515336333458881974754573828223833446033664194306842239038984116860892115309932259796295614968297769979438704719736297238614476098227311701112626259810565614385052959327445887402935745162741068527044051788915994298876235655703706853927937176120256067367155730071696402387285883782688944048219144776833718817839574282121089624300305127151074968909674060673092216854160995699007031407455888996121174675342578015569547648171841150482985510947310549126161895772295404878552458502581884945955298622048473495925629560598628858134091151114509362743069426157819968953641171638910521507115033017617059452935837105359611943146057252559094183964913866790642476586732471881212387955758772880373883472929729200056803193542043920310300194151273971486528898664549413626910183523540903307682769191376979596717407253451140172865737305526088419948797194651593429312923132783250994260445585136534529630903523854287478009551091709939114331546867402801704756237023955455421465128746202417714863184070137227096173631797148620887806760612815306361134795178303946404093258427511849343556849365984521074027969456289308710779270690735311396654374337405129072901816278352040728803323772659418758349092584007021586564371755833749604573287802830543830901536907178403106490401696085407067089341641501518996305764459962432516874264968866012877517475696051471474532891409531890641723662154395310093697637240267411538219180701297929764094207703374237606088396354020146774054868504377151131511477680388073608853555944502604916521383988358328495878042772834474444627131137470417500516662597297359601376021314804482522277158099960836466498024610130500743117317858561802026463768032089094251806083825354479161030032784548468656663478156259413220265857898075175906408192188061285400474982572230289649449388639508808971408886924853863768482088321958941793397437455095967915729076282782822676425879049681385328541751560467550278124649458585880301651129769816135322825796521296300017274385514061100497170834668370751535271483641150595011137958950145634773996433623488337907216573993943872137665363109743947050560202603471212880894053506236518796745324816244301749694420076483247058110845878027870167239036212129571645268416259957904007761552623680310074260868044117002948702853691206265435301034136000167136452611252498319958883187428372549857380526893379829317014200560521897629998533890808401082756009825485367709951161807771998718317334094610510831140914423406410993860219888953534511304392129901515144802493841955885791452363499224434033557482552628416986588330808543089571789343385117659487241673698251855619705608541721594444885870398532828350704598594276434229534836364049025585681629178448092072161547261332981979411115411483718494251155510937052259988809316647925947044956239218589895475374635971977857739818666496970273631644671898350036958880528595927361889204099525926340333859858964449559787731789808245556824676874192947162397720342867458201817798558529665527877696900923294436526473976952351957101305244088454071954768907641582392353525755782424501471944193955109199927833392461855958362628794075527312677850706164713902824942321051561714664316899027870678790307353751883244737338028820242251512468144687131922799143969353526589113050795885932031089256133219084399861186756921411954759752221522979088688730989735671816619632121555932754348266602189048010934173074012511105926290267974920451234341252580226117754458662325592545074117647729733158088394442586709356147286713898552171098282417622000183076158828806557566688282289295137891711534700279920442445498094188110103219940572206635647982157457771295067737425149301646244083824895804905293834971286680980812573835272782152787422008414624718386336383088831501502677084009510449417968147693900468278789246167752218262111211125894794628544242155503047124545258330652213489532176807033402293205735813763457145550910048102281492587392866255454648130417356892842010577726322801682037517768585834746891229755122584055600857015881785970293357365359813421788396576057909963658077851779725465478239461269536031199399815344038319770441456456854163937475034380987158695688383746693492016270532741981115550602799184690528641310840816153845071080209589111206288761955517903888340078979772502586434956396372029623591092224689492063102827831200462892505337482562365313162872839352687622716268170438666747680719470321790203117315913736803512673326945925661187087620317954080033800567442494713053305122619795416860070814578102773041225369772409385925273649145173748227062748803749721040072285132758592768247711568976562905707899620321757245804789012650889547360058721073540236522068527158193080100158826896198085198394452387448330184531404808399271385451248555516942073006731252785290129984523308600411843772105120373915173876098789985355771822065914267207712426107752145420283359300107371835844621299924105182493999575100066720087555700060991173260032753873432904905709787764716970652816673518332387086369284981803139781570389064438167435356160179943237447676761540340080735330448541304610779135215088197208213655353699940126366421839963068718244497921543348322139327509409392959855555919919143155274618120056164638224867796442999646973261872773302156963872130682562557622562234182855629145992973005373577265673024300440901897682010721083852226566825037726594088079207766502149483120158343990957876325324255633377607096678337058271879641312683652140428801870987819973549664359324407177793025795350588735615521773684217554617047208318357145586570237497325684728702533965787958523008094260808194499253157019319518651546691025552499081946854664667702040578864549342241812902264562385423798745267060271710637560631127690228524003804858514867746830822947792256540038036810022641089987881085979188221221981965397536656660771955127355136300852104839501043265684362658853884871652555541072908743624516060885418758716230087889167143391620992238342751584804837123470740865481809767082715682404835408195225186334752053588344431759955551309123993412194073609494707582307866793279362054934833511132282694641667840604916229273758064726477697793370015417929520708099208940605332812484495935380774114359267510884348695668980700056898800627052129800882943259512360141219996002027301686917112095822592372593979282107418665690121075249914746397433257335387830056668254528559640969423252854024872402682637736975444698337052610002346150663560846882397234166491013304761619179740456617082587716450640916367313157704626017399391326113240219950437626224869606101732017081477369697467951442950209600293334220220877653933918578236365361488209227823818471069291482393673532028468154189574422263601778394534256683031468154544819203847478729685060366317602395056167384588518861384005765573695615316932563136792274690829888222456116120279797374284185100642330683087430253292399134850289097318110815999483601721426573440992587447425377122803005832605772342656554228711607965911416482289865817933974327127981568253540339288040753660577830321172507941843678132542267552933324931452184152885641833608098748979407471255862564603042879412816043266147018416797195559185450324730429059839083985444784292671376866524477565825315516111327397882766235310945097523109102850433512788744336836814367690678337812270982203267188548215269863067504615776105383622571887402334538133936766098108053063754777229223049192059251667671845361661750755249143941316326875425090345917282199879864489019992647722641090903574769841389303607779256309892784464619334085269218409024734598193783340115778322930163349973199720956319583249273289806802841234837389438227524283980831260367708676403970442827119313049820749796659581033284552219281385839836227380897345846931391618838036886256404497253251786622734320191081302266744428973821023582900319267425200481634002736062188114621720060102176103535767192352262074534145698698944161653547624759758935650075496525901557756442621709082203476388947288170924860161646747309341496295767911538387535820727356174568629279751743846085712700077193025994845662482064676415224481679859379805310724475705878764865208054244471011479625083640767364476732886384118331230096960030048897012384646715649335225786340035027853993039104166799690881769234057744948363413972914969518943262276636404710195315809824634536946517957889766601096250831766902522793379373857148670210867347038668956359117198507271827750587922381165944757612441231799902093991611355826657035676222987676330993139420291186287067903597763525390401298720057346291956405805674560628202499588873995920773776847641103816933792865625781361633904545910134925029115949314777324398239168991198835648205515722076706018974318878880194023219953303733830328667130642058447325275883811957829184648666912056563916941601957500913116328538816263814261342915029052582856421848547076636234455175279802027246453247022589245410016974820166244513764866582060935169705435250301050104629267148064099786313044107151357210944435583885947086500246550179031443611557402646729951984725431187500859393077607059384891180637825613653049936641370928071963597020474782284538605878485605639279949634446292222749704409756559568354335704459221778575742361644301675628085296579880167833705170188524098473301122522822486671693303203827022994445619844738040785809585657730808463253504845804126270757385130295429579219217091715114186849261618980855678323301430566429416184034913080970563865920884940693796229740452263775276333812463085520615033461052631941835338667455697699849872617114197532427026954298734074732943672246073677288105656863984965610322896494042536752255664533713451218381364845459220149145840260116929852226789452179068495332828827023702296202102175443008868984265197698884795575690058122416077650156796009732435139585682351573238739051203527410749002323151909170976304423660729060883924419391857813574382548030318719384020018380986187653258494759211696254438981150889696448381322108724438229652321339801236038261025823925145017441514543829102832012101232455192775731668438697021661750840786128636288103959346899692704442678183310369698711802541294921598630419070313727503467134190346826970627512258366086923645810630733769040957499016126968375575102448568141269796535902903014121927304709191583746492397041765549258638748686837526609573601745941637514759820889302605272368660333873848747924126448908300538485322561571624757832390606120508461271089168867318877710900857878934209073223561752813938359782218131522616608198190788897322190412792894132841593226290846616001145754003836298505288426038878140047009420027954147500833477556835872014253841825538358512838963696715963531480785375550000317027606606325012018994417181712901646847739351011229933022621412961089699919018982116413176296985193944278557174586835342220001016032510718222419692603740804021911146020034947661605207482882391210680028028166445684945821664913075601337183804758408786842070942607218177945528192732612094324847762708026209424786576810785773908632454258494654482677755272295267697981501536581220472823054453012897791552365784468719887551294808894252680432789451046667926347818744343239484937352256619294135433703364470674299577205158441197630658657383673747753923707743954094528550635186212549807701855859734249043743353237986168231264943497045109207613931591826816338636334416841990091921679020561446248163518337989863052862260354865974673327365681960775434661596890221225037037965097099694124901491598392972138984095866257437461041626785299777697125411373137700897115675252378515727636656683601359146603991710194452739494899481331555406982656087918037684274215147687402567213546860323185404597451025604085752072500746450448290022925304282703989312164307001889490283197545016882543422727689483969216804002191124482130414751960207567442115480627611391109518854546611824023022620312608391811714596543974418367614620449946688383288456937531270983943337917202821023828030445020632047115521354539700090557288465909892072829433426892681841108147171340266202310877503446229569805172792948224933326938163462765050339634927429159118639897431056631594517915114001636496879067088564699009909537194515734993369333017549220277643007602458580375343009170874843651797085311707787712074445805960424076300184985125927137536862971683277272941697891901126148412801899843145577462922111658276584075120138583994438534914638887907421059246062284333565611649067448863375512489014021867076162515770515029967622765922455389931235171301944312180875175481332037188762953523723184991037140072222051940474660356419451117503932260687988032358327200050895502794406778693440355681824138571567966434265724063516150702604090301227102292539386901981045297957044172503018782091941830347410945908447222450169397824593120537105626815883734048545063473363425204933544748569989552364328137055970184316730542161071343575311179480522006270534980141718387763053247105893532312241057068642304159435718224153391339204183383693858065579088467330828561694979147665732433166295939536756439374642728563876595920306218019644971522043985237002918338241028791697895595960053162988954001059150868546183468497466856164328962241977489685131488125133899750193518583287243811808212116835331907124673217742545684412195690960093348322184119952649832519004245385992489026512607211619317304227056707645432076424895544423337578030881345312555865777347631990177297505236028153658093215763358513300087816366136363095750283519678090271845759902175886264473898208021258812849159209745861596540790441323508529182094818510960358887303849532134255010662963639085350842768237221651088167006666816785077498740036885111455854892456076657359618745410649814263580800033737541698222807165863318708470731726318380064502493520074078539316917056516827255159203496937512356519075054487367615178989363727976421893539469827240765059527141686316589730348618237657332575036408598283201619440336424113997905252890886685890564668917423044233457001653601266761274100781999110792603387536797255747401536425722013941259044642831415953009605198300242635733485335934507605513166358579905247715649072861408148707372378951699955668941987965794328376955907238461194887554355642717126009373848878229848252547209035247754698265998394811630389520198294269738365906123406032186014746165126514579133735403895458676440571777364153919871777601775918864735590919521617304814101950828296290521903086350772156375947950943742985560610920545580961286815602770417445228321570975073747483192304576400857453025632973287031180194039607032995831372021470553873697937036481403980666835528383999190963416878207927641468564516093753250768964036310210887292062806352147406166529629362390186557565234915039883765947358691899586398219015005495430845592989518002661359448751612278791356268443233041481834981391716740981292109228073700328824965522246811012748086538992207347788199581308226593978604980590098505993477792169500939196787432699043591024506516084108104708066684941891737261221388509173456728021152586515024621373263076176379930411889682086256034325856815294015224945864565370387360122464317988500742886140807681516485281818214121226963550580384115104291415466212553484292237193496647960715027853599889345908757979037607661946752494429118533671123403302412698107655422756902483204109249267202280261646995194188464481230696041963680530812518210734135264956424308691581919674374420591785731201761246575470358317351937102832726613143438936686440743756623707835154411948866815307430295679250640340478699888698065636064444635956468918796212566503862845959943502212730619645007078705391307878458102371122420890296481340590116605166386001072199892914797932229866213090849167258097804033214328518123502836407898590398110160817669821051786910916140432040669277274159293421755829378867371078009937035071836620864081522878545787222076979113488598358181959849451346577515692429235918304175783150823752596899795390845381964062373794382932311360209330700475477092271398243175560792015632098958482227145937596518696956731094938725052544225253781418249243502666212731764722339545285408243603236637304927302450450752314552706364523232076610978939651878207047851467224374983685020814545716872140884894550318447029352138491889075853106961239390257373177867900267313538039301716484179854419016327792463375476577192529381923290921305848653037558653340434354712396927673740408518600886974660961121492120909817312112678442267135181479121136155920372989086043841511562094984633979864515409863448894693644644060186650878326851473207996023346483683949408905871874384866357407566230844025772012146373097266675725925421368468398584262640185866853401161506275624484254035841456209494646392594722317012124742575100947978374784261265566582447266881269205395885366440367858804338117402238980317301775820022813181978769034163241795329906547084841653288913310762078362430270657605304483171193711781014899358113210817335301819169029813805938092627970138511343843865037742095019578934288406918438811252904867593426965680360782555625693440362806997075034960518904202597804340089537696630436372319561802653583342177190542362807773484865956632471517964691860287803998113285705011318719949820611271418050861452371933170251388790547011413828030406022991385481686839237933299459483636604413084818603433298747001751363232252862718679227771502666776396559120935601489615695410616744702829034875014152966083089804657414044623409204810048621728416152199325265508927675012144720897487255210838735932728511352799256022395522817305185735705993752126361895923473667855742981147152606521000106456447677565251594023686085588836920052172750689490331375866840004819334085736870494049876284422155647634371488528977744196972565380106786604568923966741951115477815251750799668645572078561005193974430531630443493080960086645579206235600453960481203255201898721650379439508546812877252207636869720467294308923561419851348666403414768018468169732697344575250852461638640926831268205307205136055839583007074518130110699038452661236311029628084625450145084962099692016873974230807574768476957346862902266220298298705292181853249098708975429472966493557211039504501076164504819719843464369242750249544538255168651426682928781852726443745408907420995531084313314873463947265827928085716763481465210044690825339540321856708406203341827769198837744960238894238321783507239247824836404354025069702140089503759264471789622154506086187554624718529674065998061153894533391321906451668868123296408857796659526957072839866832459770836992407362097035756691169682810601049727560418593508224650317521265248187448652851535471643661584781008425669724968765769992060420773654251204410756949387256053951169969488096129372711381287464372684258486909036771473444740718600424913162451529915419860654785401766461240944570062317006802912593580449156501306439503833633720270585008269842273492609506507862720731828675834752657391698704548246780003808414115467694702312176215109350832661329308439844200511336345073021760448944517560325515984643973696505770597023383691828291565938160992792625162433495788527596500917465711671462958293048671986512750039583762328865533634575435500734418415999352590984820669754084076024218886009754420265211121133768069033840854610754981147929342452390986379745798696304521807515142197876171469077382886280103766271270443344510722775123289920592063328301967541462640228557704966693972763496112429935626170666825903464970822511847481601233933730905296630991173171891390836102317656053284360609305417177998660736125342341514240953881340148277618311485509776486767035664353172277276241521245848087310266639646056263306240267571250817200289571810524853256389581972333530117650873555549033763211416227182285091898492051760064508364661766706470460525916059809982849695264809395611977412757856189540838399534619038001314585288007565931219475733233281429645227864071233250975795267839215428447081601128966345857890884857245177911445423587702651127294349556166543321031250365194181693417560000677238678559465151226265176357137468945068481518298386643501585582928153422670449760167674366574666113129994808071035738800597137925357976336997847125808381219546273394789369663653812559127783318488211356213084668681792076253540458450476511098552942357721291676468355711165238823808825051245336213654787288091163921911661694057348453746705382893788903733791073027762990543134636664372994514898359340080135715904287327532246459978462303053234554982585796867110874673020757037963690142784485324430580247837652227901837235683943409109001028219425907036344229615667461625742257457801928901280909790616355900498169431126507616184331407687169460070250490045627310473538604405166546880329118337840741333122616716017104630874073182076560279523012115205237314638355062382820093385909388252043065303071981293228561811015019811442062215909531286795247756229190561592532894692287669929157026380378454414008962407174786128690871500617454568016052776606605221436960987594798106304872649395832852108958269844500486322538799407819838198436355874276124732329495166931983787941531366908068301732386453766106781148724164108257341335114643914651538617390791017654694454065057274215847107252113860430159289476921010588383939420700089867507798528940766764867764591734642041458983072592539963375822971396404998373608032883119352922332483591227519794719866631493313606263530702394421250887925420144460984259825995863418719473527848839199610556461139369436780960882863448522415511650544197507991821786051917916595314999937177602966887173152718799442144741932994865393148796985842004575345683441013092713496513786172917678769687982229809197062132805457579792145106188051042710706572175816331336928838663826627729291246417326011872445733883607877514432536836276597177267966177613511272324030058731903433759485018866688586635276672098339350554108778495002494615121685306542493065998203913833972996493086375055207747452025179704710803306363218033131737209489902821791946540520573186881647602550372792362995869606722859659012594059107369358299488410245767975869504267484947866617697823311169267844355077018402295260656632593199961412627682875536977287283393922077748343063175586482683537735098461015571286055283187172124780379584113027558387586783208039480131979622822073842292238993107991290744241303600206272140090369595626881229776160821668896553372573540730567473860947422874519525178452391555272072065580091357718987944628342386256867632467279819158217386038053108554782131742634320882045943276050559135862767586721544270719028849882728677129248350137534174622001546353911941648114526682922838115193363786163779364605288058924054839195023929911542583441176080980199398467684080365972525275297819250035087370031750017209888305991428114702811594843116715548224011666731283899986514210878514241203328141089525823978957006579078590448985535474281781141652682308960694961891762165353357972505489486342358643132367490901205086053628789486122342985802508678408369729434555744167686710584159061140070674223488675859434122027807173723720780564714626771150115853267419378332772772598136426931099247107455836534092506826592221820846221938006433439403240782511688275382284899883165002247849028316512254273843906104054855106427678543242453765902412192129540955754568102518712049978092098796927882848171926162706153466693100124535378091290788510409273227950731869371249436002143070660681790855362232744983751750337820785353287150544669602162536532183147482466389632428080988441781263768285564768038896292013699842275543649748970319075485728742084557855304735476963569437109151952984570460278582705370528663123677608104179156991129946814915059065252341266371422817481986598767413685247306887803816554238534098922620020947776603529267608376523048552105599121172389493285174615752643805670467889164932334795821400401996554404881975078320018860300749806852596366986030227000731320698379834286081458831131182732235908275069131542402158784788331874058039124037318644995735741186346395791541300120255044558180395503689757213453829430541572010860695351343344253781674874909307761300835654593038673956804652149063293902776019857391515056239630288349035262062643223389869188659954987685071810057620157422982664274294314773702290310929814641272290747845117641176428243409061402175647020625242243897261828463421216972623749814009291074767231262066313182502496011907310899192383088288840720352597578592876173515701045181371563232741871187045550127879392242799338020902047070859790883838363791848398485042116434728969333225627189469735775816057255365413226351764611925811820103516821482158566442821300947447643572359161160488722619814108314091942112058114049182458851684933202047733736745185289223765829608850739712956630279881229967317458309663250616886598854050105409076814463785548559590983914583276928555404172388783892559028427753821164664420678740289207401475199661587029299287744824856470197262423037466352276491396756107853948614150116221457129617440986805017215229092057678589367644416334571525180698490648084688046710659495625940908877398749910479670699696853886987287100428166447075219437466540210422249568310269042515580594648578043591625745572409143450501111810094536601915772083687097174194470059544721192502293772512575012219954877648477667198892648074626267570342932097397249606884606226922701122434873295093344856826028386788217530901268715720795625249210649906332713774025517553947763072501781854718425786903324292348104338385278594958912436281763388861685277185288743909250748278009023554112014665291433604475835157136830320650758107793212487726412299020277452329447895290076434612380581497105380984595887495863637275091952668837842645465864708476153169022091579106063447468660969186387029812618458573710059853208680544000214808966912610196238283136376060747041100089694528437134798195768274341748608993982385227570576596199758994897472572247275460095821473106305619854572152645063029830366198230874895835662427384794275391191997735402714924531443730709169241130857416146941501041458355325511364591095996316154009448916561411689780162527615709789496048921285843084494124706911321430237925858651001742277829245396514080602023011275387735396034497827363548762673963868942711802094454018950190764599577697890661373513616401754627407328527592291254162843856240970907396177359135194323188422895295075718917314939832495511853441452658827568020851365286999037825625884265907298539536356112689677622351331694449100505051804073009075550989406807782916223579452851796309802618827554708323638078592714282836207284963061831741088105122921960040612043348192714611488309708515763082128190031102749468220072518497683358731576652948591335320024154069713638233002170364515613690467424652531059417332559993192824589156787676908748812677302517011497974955102034976695053876716933130526435738630063059203658407428921369219333622566244909981811962908269687056694199655652035246781254853765587118004776615090955134125945937362130843308428216224218215449612161330095745876603146976873271785036510848239696242717963351485526473140841797164711031739707305066794380165747311561612074811742108519412792467913149246395800356646814170764118544505086427856866218094448780322031385828758379953332269913260570965386461116199193407987870135557539206444639046573039961539632723022922573646384479176520859991964156841491577515478799921611239912130277517959824342873750278452630448610562573975324821930185837550837963700004987726166709025021958315361744724448336773974322738080887356772121568729220253376844993445545264637243056977300205322732378013279075820306260296749382452724567911588250835977651943157871748290989501249094896705577952377767633288270957989213541952504599553120504730752766271025283146413816841137151733367035011646700139618940141088903528865625985771430217909226290941930769214721824842263289132835442174044695992136856174787288868681557339925332167973694099403273972701039138557574684419206575596310742205826266822188273516290132910501194849958468624351385439244209208126307903341267335431812490314436081198370493497384698839050196010478232461750695257783401119512126252522309934296385868706628662521389235625086178178617600340650313788706019493276612529554069915633413061440033036254667168143549040336568814287238526141030038334312557421927986490858145066488541442938936353491301872001810915567860890614573190854775478161206995946044055948228588067872937535941481848218534790101364658405198644701690667152136602643113882183368549472790252507008775372196261224888228912706861719960468813449000153759983815796485915936913915353146185961537315781363401681468245299929611819690319607183311332497884844516420107635486505899470776017336198259538110011082509174805849983858917051288551745705085861424463348426338838461094267672510741688018258832608315756907721178640734726222777589643816570476167342103792396786567418149669832423188788123806375072358755896242308982770393265142542993731090055755130081908333874315553615600334635617399599626087970059299454946277125761176362572369861838772911609550813054277245642817691611475213401656393722259172228656746196192417668487398565930205122191028215973681437012544343010447075763142846515479531380364628995993678283741427412583043929539450852336246523703740164558510953723779632399386419198623517523577477387599240459631383324363783698066395229919997626274420985593404948274084841170703249201488553773024169837960580249505132085383740043398017902388576303980773565096733956496635290684500234896452261507273452810658240749927581262415115343902297111590860840681819825168649317242388146340966733478575656055321297234484751059009776578902108376765269024223578953414899224834634291452403034468459949677279069566563555244837135746608144955529728849539719990827486906243607998772076045452522342064286126037355932590810113565624519464398493202081973073179205643354003710969379827842558905575570097519633232667354346121938230196565167111328460607179154311874742725757809011121100806405995129449955909677549474764819628477299338107711660907933832549588047176043581822539431015698894200254603460511820781922999088252224690978166364064407605625935975869144501556505763728378080492189390361916675156876937523876667856050164657914478756848659264445490893514430166089429293404631853625125015588035692193195915982656127368172245163899544648439748740478993509883237057770454408710414856833238414635856758621567938122039570605325404482295328923570235925766307290215837981966571830608846985020688188484296017655516370520932080627309944832277059724336144577006193176377951753887813236928872337368806429699868041657410246183687798287228978995833287172387989834918611633877765822757063359178151820747343963852031348697632554216263967513068122993814750590656675135436562500049388588249941348523067519717848895349663410081586235780245284778151449879412254672772235277949645020933216345213663465052676814306926278579360792967341589916074153375956265190318508998194465430857282610557427421098401977732747429900996204141989072479378233048767797465127499578982489784441511703560891506687509213410185515461102131841550743078084419561732675657994554206292675707034919300183932328267620120851474258591518285257473698350779189147284409778342949391376740278109088389347516481986390543394981376727554273369466773225011625492335057262747317506010399623335007893045330482094944785955278736669614608237651967932086808230482221464018328575894021289455288456539606946180886125132987019586426559124270867939706688722316504043160757420730076360201452841954372628219948789166763616925488153147845884127295302994264767304775861580359721089753473974564993735830303534168135430605216600957716772063079661973647146382478595680848557769980676671891305174290391164649972363146847105441249471204763625688573439189442712413293409871206650874681985973319096509185089630333864176109428950845549528469301220663841773842043973445468844853005390638999959236688035387415895128783068491372603392413692382230170448991038383712988599196468581081023014178351666565206969001177412350844749280618096899500500231540068538383590996712137300107210725963275287813158785768849223970006668829877447341624564089756948017332365446057761697773294841866089400444272472035934141291372471053393570118481672573839144777104995939478673642511432055733490740797198814282436129300135006938837280564868316859908740945691825283476999495144780816189081951032554442653914160650430695843582903117222842541950621447728606402096671198996576168111173744665381915476560282467675265680236488194647803349302038708658171362394041064736716176598029410551805655188004883686304062655294161584741098225019100714254867999243702517438577730425938079346308367043169255518365273800811390488105321764293250027902806466087882775221399703378360996515062395879728417027849713615267223134587939673157100031505601373703996385228883828998011261893778817983220262891426075290545682193942247625309618912927828773136613847986422054698205451735953485316523945245886599628700362739868764396092009884047590216242223622506688312201138191901072303604578215779866560345738635517481858998774830963489266237601544036735871875281932806556538726264796804191675843377275707839905001072334095785738265551057656467978082849668288244102195590095468413285211507389077122960974802950441686014584393270504581742556516371270111811716269559342660540396955838593775398960644259803864575427755118441156762265952571867068305849840468882544731972230755275419540259561351889266779525966395960833323309346259123166949421927626233485869933546818707577732744990081551101175509634374659131110369300903601996276081628405572108288820744190171504142759103734427795603234204631737289950033369100550610117399227022571469600116613809647554453341357103646092503642150411740954234504329348250891575731595160938999222940100355894793913602322786054653199627297836333025416980969798539283963264148506259489774534119903066864770051533731624128666447597131406660516537606531340962345284739574973006688667789710569726039608433254170338789099295239089969111232464682668616031327849600619605790005864773530463673008008933178585879715891333655270288876509568531643958079907019143064695965504053948026059227626180307172624122177242429208688886250558559472631398562017400278735253963356124005323231489056331701790184576101351213295892266130165292263920751000624218977156077535980601818949149497302609264695117485462311499672781406220446059493170395333800694013982891898645375814916448239229289967101501750053120604909169928634677503779866164179686381134320009851682638914927596585803078041981375142929747395213625221099892183242850701218612353037656696587111123947748017738339427728058728121445537806139381390314731293817160021312841434542560376491904455549434096051505976801070592559150640854138648642302995589223938536096848836065700353887491211377368740478357369213330000468017142639786747111794002963508969201393944015515973881702233934770262693723872331274116243060315710528935834431722983320701724804378916966150430662986723775831767143468941445632567398634402591291402674160713476450341280635376276008113268752864903366302831757002117163107024438859946646139585492397479483947717746773989234915277840171940902647154982015963638137531285812295370994179816045062378717054882367978605765533682269786309491962208807776061670856523629120860396250098999338188969362427193639069724938551224715655578055808517257070934679964517055719060297581366323553426783971417324284410152719730814337868706776911331917161206359737377548567320234077234340947597580927795883028674566959418029015996625292268232586474946468930036921866778464705291976445317165298824120089955913116647329212745952855615549453318609294521457495614402630330623452291129871905345841684086981789482475628733246439014871293932281702458131589705420659111030417274508373182958196388456278793725719169033230618931062092152921385280726972636101444731874031759266137258416210986287484052008890177741910742847794721113009401559096174995101941077097398601810938338184897341883672283716040958769162546568678643976717109456777080643555153547157267914385581705763546848939422469163871297442753421461195616399427180267291799136774222510698455651508443571411865085282380791656245285482763058575626887705972076396911024234589659097312079008593037461036675068630487764297263915927424688346503632228052821828033544491999098030031774192478710095475538638862548145191257292201493041696682606932834610070512538674881363981335515275285118738733349827850370587016958647536926878707523718054845509562557417123981825541181624098627615887651015061824907614137394203990391746328264828155135557912057960657906809693223703681592090902074971568293927579244282458036439893078481781228240126045525607000982641356975262127327581511321403518590239009941453054051012465745923335227408358467548300795701024411885811753365224304304019599496541832254352245467420797781199218672465681074733623932124641037172544897086342467622131529234863371346343697945585773365385691134439136754479950709255571251741322115068932075417426724700222081417361449732382509010971782952895524166620899123727337462327243842344087535799994095956184416843460669859636697467273515810029450098858511499941850797032956556593658209469228268170834421565224757177272166589791021894006619162837969601736103429212921097925528335202907332275461795065641265869003673619227864802694652041328573646883507829327249236951837196380925321014263130070976759778521033901733459730681856685517820165767996499271265935786267028683960963830284350445867053686337950255000361583289435719080512393704704089156136701952976581599693023103422809724010369383186090110088076225080659125895489016740040416261947679001531906047894566616917866256292673684006424208837321653322479863055010415720772338718964340242206847657864910862342801000843776587266297185709259403064084021838799087864599643271183977101736314281606492067592173547210825598424262278088991101252327125262477273728621819225452978919363187577281247031053074595040427611723750333040023148561206412679813123957493296998371255980286656372169955399184003146834789678047319244585537244266581868912062100469185195593395230413734718028969763624412421953721928641563845373000226013527193398249903650652387069021156625967382634673848088542563968576638629797172973040646995562322867160798978560688299532342264394157429903010453694233324303278756835416703988585951829952074426436445617595697797292234358450294312264157781185245405163136918276961192630149797715628595940793016938222433179508496675442356793697832720664494010226721623300947516476994153307054969777627373604773554495751605465525453285161382811193946762084240757655547146755979697340302492386565195982302746962115706125619063977225732563141728937518872452285687667067020371986224942379276445574634188786296701568548102010655426546000770530698109295534276138265434256166876681331834325378618417577852504305129324191005832730595640649244200294438152260353480640547246255481828574603795401494767481436584090636460615625407383242748541310176740649910506202809770966988710420608764332504812107624908996181090013035735857135023549059655008885138088826861862773664333868058151826426579255595591911138303078547379140415714520789499310990715351375719281703704571724148796814029999391875972311162230101777459016614700140114454819438297818508729146926971901373655827396179464668236085033238967447989083786448646333099921289790658226442630959802550131176210161236053877266431256865790845690974902558410742908233988385503566945262612439371457704175145232701942709655724756176865566440619530426946653305867048725693071983432626654156734115788893587582726626220186208981020438891029250560496856937783336571658122752575786839136262303308780191372043906563552330725259995602486868929382630985108759581204424841505615309978541847542550266835586951087436512309325977178052585026691568763905021668603074178635674654316601234142059462992023186433649013384379139878409397118111465611737611597281339067666971726284008037620991098516337649598117135089550869049967559242425145681602085191888257876925172110000402935887334485560443550423188461817187858719079048441037533187262798311217214287781402770277717794278240620325973554325520595395540456361965705879029574599709887501807765495994469547873706088076895758202917638767530836530814965490713946075842618679653502493466902137899965110646372201028222424156701876826167287008452437305161315242859155607239286509755534661848698180052368237443794967905788046271064708894331808827300674194417537916672272859438854881498815974975202354776931323952444104575426536230670321701380041005502050207772480661503858082487737596499177603484677508082181923878901731435989573482056297957579962388351497938204944294731241790155385032028703655858932351622791836576959848870208466383965118369657293256717339535023407966123433213524106691076760951085426465739091738797457508584436714202711427566671265894181960348727048618132248519816086075774786941256023358067490650183598021690868964938883353590892726813468595387451513112152296096716945058750245412918870683938698526815356715703091004455092203321155280991883706899818040079029611451386558318358919289456695903779777390994968531169115977755095925777207541101093835953793209159863476538713151651610833702792037072773317546598551782717520583537263479932214709491326248621057802775829829136576248588616204789037117108345822034075750869602232624475115833426189075237232048832245644131295036892302086357600699918270313973585284656208149383589831573599375865400339754266217281258357523482878176315927171369665658707281879245399162915049662407490684583752892678309519548224211332101428608714701846922830898559585522004914775749170441596512675218429848690857835251729028480347268285323681599822198422472525258589776027991366626116652385872593252127846457092037096578386579807702000035745297246270923495088056901447334406023968644142387286772590087111971886024307320895031623393110454162417799328784089284290660449809594523391213644907000263229945486699558743983752530414629611926753772253499846359146679272567552237763172506006714300714416718600153268136267373485856594536046622955754060854704161237630286675039541284373899834959847271537593639990612304637924921694382146136369452386310340494811370578339316104356393730839357862268742427044743868817188359758684752064735078846981480934637416371360211874387515065491378811536552564847515217360700604717212327387577300202685957742473344481680020823846915781614563305048983334425810647795153029011350949210447681940503246186178334068084607248289215634718324018432619801016993359779360234528580036442996352101679456755659530708066737184813814501139224270230702759251197417075352768172812213277049350148498050042771493125213444894422531349179693261485584767547420934477010811443994717206274156992338399042631498977200305604506900083061534626137872068189915439414167691360869574710685220049131048150494078788738471278094787168116292801653278721177261654696643461732285595316056330840428077801783739763085181742685238877213810820329767486912354535853887013085512384718566866988692892306951332346621158565739507498658703580607355945291843770948571705840359520806147824894742446580781542987444522769752909105201590880504670541197540067046118092231081591716542263789832737521847253541336841841740267260670576771963232935752239513493333739277385614981824930634895651596880757472034967159206926743505703349965306617576442364740106891155899610673720943702140620396563449539927175347806758248087245716125460558677998264049686121451066962493691868928740996988789643499346309844463447113564137705356751331921499327000304499819450575346856596148914232527220440492744501810928626197891740175489773169378766293669886485674646351660707281588394811377875437740024618653296450213665765733430316820389498556862395127703055873018746262739276693568115540284236990161811929880966991076060670503504067274480425517330344526922899987625806858301594070714441913577375361679877652336627258369122292681632299909973686460072849548406983232009166043896017648662605709573804030552740113476926963419826295771675636511016219181478255740135464932049003487572576437271704722250137654797799417601442006842295931469720098903141431280843735236850305070022004813968972663533249152931370380908101007777993303281491308152764227611390234181323031484408039591366050767342802116512050552926874697804208095533270016810865422430031081342396237993940663548642193753329414122889459498665147589099409045569531271502570341128572157196951845300762011342466595430290632315358253775259559500117117015669442628344774694683610863783725121827773325248686989713808610170496410640715479018262548884261825783097916697753612616523265775713903459646215723980521259068082475909953365439683252765247440462673600420647391885869540653197155905105351730214992545741226814655291997163728331928037763852344487610420888730414006767381771080949547986727436146156481189665655990973821131269632653820475900679959853420422946401927288535452520954768296136516796402280463129553254554519638284470841667799359908712295839758420996522999108320932517584058962596582449695696063088199384657224563412171508040364755373424725214411449542476809449992884615496302958569670547451849256126625981949254037333262488289754886905218613759013594741776889878574159936668705910057574218654342541811514226501032010062428502420781590116920048375629923685089664513252003823830778151767699889373020210940009866475012858389439594497937112690824674961752870391345290279435371059321638801796158722763904711875509333607360730281687108506261551929270653586102797565897382272848215021014071960867973884988069193130272635901874609649110784556444963111328161018566420715924479803750008150688634291557457200699082012392483336992912024552220487469349815305029784030643020668298773400351023878797676950678928188148087543370288401164262216216253365883847460227403843722396427629522813712730190116580126134219999132421996508745045838545936391753005354959832904393171078550311777043149089194824719345625736977931364602401173867109163671372130561998398815466992378624735900564491106895421757115143316434673887406301086835110165978575866838309225372773930231776197290685341556869537512996483943873437679633435855150008550433264011014197355224093042258881944184193481248812245380893099969917830065693879084846703757771957754518028851970675890963343733442113751089609307846738554653421119470432539045794352810111015641260495138292647560819924045216129564995488577039900171291215574962831117814173048776918685487324376368719169976303442317454098967282351349801880978377810985847096001462335873604926166962315871464929149256442863079518590424611954040983220261372855414825023908041621141249220595070357119035956910592766825439559895882351376921909228200500583779195429705283029912632475498876459204492279859723948537258620497751470862969268770922509012127659084399799830007949008580540403525559191120071810841580184101297746952930135386321033026955266999433779351147894763839401700585367090420196182861763554833995678541414249192848502037619259708655252925690677061912946706607334091144546398558075655924503047149205566938720474975996601351732230935237615415864014535678633544136276339839149911112151571359467307113602927082387315129225198488490062550032052700096800171939876337470643510670116175776653323930361571928064991867590312448102156133686423001167979456006922768120332218594570234586843896784803827761203877821682852194837366495930323450231382999250671999082947041039890141685215094511924694064528412752967894282975726884308696775333691909179764129431562214676355431968373123802422267520383557121306923315204709839052839879904488845477184475985313180716545466873453550154187406314843479417145184464812955600329573459314550188021400300107923031741564981079388297108899031109637808135229246878665835551894534417896232992717151612729736312743821802489553908988272533720169858729280209195701265214126827100208184658531218777639771205603841234274364644093166283453076760459344359820297529943962193692873428797469881277934097206704034054260384569233957986981478914528479140301683068770895361739594818118652089664345021433780714739187279608693406739109294810127549740954682413995097709773057031047375360927270343361938584548941964806956145427687070406335620862589609188129304681618931748952470717833436367792552576208957921477860424829828235496719886572891543689509857287871205341375655306802621334850092715768562351603531090819287805130654436255309669102356077057991013999570408291935524187065044590558589897910353874224424728795877545791929773739739876115523212634936816957054718569327784603950384737183068324202638234198287891193153076327351340350565061471460636515571009448966225489159387752380634474278713720237333984377614679654065115498193878874676019325844348123505440729983038811503914486232267943942492388617662750191015960982954016830771690161225054509217982759475940398854119727362486791232274222563645510159978179444668499914292645981721779615859017023971303940800546242758620345486735543127266150052062760135958568057525076119515669789462981406841119250069842121245574738982288590591898745904342475899573740181348660936184630857883697859227236316773990510355360962735731698161914424247787562941458935462233771472692519823697088382837758771225369571089056151248495971903926939987580928389082216801279247308422043896512758604930810212415930007229688658360597049957699320677533148923644999825565208677838319568335486605057549245185026409136736411026732929021902547949387323103666340855647028466163005108431040613360043140099852927410412246166815160412137152196440566522879558497961273928321997442202325465170582972468125796585082481549969018436344180587487272552871356615423901477110908372628793839555821918297756824847088014448472761698125293189921985541497175654460984107652663335825901356127905301742403829251023104051043176977876619152880754609192124834421314066802102432589987877182991327827117336279552212769610939126621921760891020360796426590114569712838173624998563998469344798182035932893728567241632976948134852158704898564535752689136704881640985157289769306222259657542015506199070648529939403699322060835443710380061508286500617329628724902898300067166196090902959366119395517076916467289213110584120921163926116266436734790664690977698190655435401037185831315987465616380868676694557543873416763082641507195394011926367474866264177338399866133223912513626930301689897297454514001027907641604335183508948897718563467947022896878854718363136591576516544840953876735610266695759644924402196702621792903379014819126847958402885873683560417882535678553943983997813320859127731686102230283592755140104912235834466500822808233999301162614446507225925516950178895231306873428131345859453443068966226536751919716607095909494814118090354309908789149441913363736345572039189287048252314537232050111132062961474934470594727049411746579112446691731770551698864885839754259419398972398992542177413868319181147257076161989499105986557266325559377063149078594127622756490107241563046401852318251432964731581355520179888197422592769651079040649715418664327269544463771578589892320878660873643214943305228084302667727807878667414636684579207255451509137778260111449148290073944394589756901498666878907243678122813326253872759847106605587201380516868668455550418713470805570711030754928509969065843812536984503635463941351698704480693784657793995934040857079902767023358963699185808004251944632504923190240705613246838054182731418183516837946331776530626362829033943844317420700581067439341063633365945015219315725879303900258170740810436573078517587309293301608354209804237067649663864879779452131013313544996874325094325043129532675193901903654634967302930703656243775929960111707713299975363334974046859680719410690956638987758762767201804132576967565843072308997225140757417544054817500106130377653173554260274498040975970423019900717750232891418784206989419556370641683365448499030522784279265358881658897405664326677181909205990349076369435313290631933624202037911933964705290143124395440284462983149351952929325828679960224112003427553610431950331675230513884465682693855200989822036765502378705398330612855291644024988015747337110166416533585529788082377694551960797702553141485093066380061702762578511626452330774348135614453434586953544224817926601605832046193668372245030945424428779657443738779977041737004513733207813097915675050128504487975238143419156528799916609798582721733290551342712344279463406919900642057836365756472874831949452961458517400029670019233969270623344640922716130026853386297703755754553288212924233534797115534879027184279618353838815612404490882889964313985816381462207673987353362579260391227254470317689078205282813984384984656944349887707763400640935264946394203562470628672104879292650020982325560284735748246573868458115867385238221623371730543545380920850448989493791395072340035262687807809506175657130671993565440428696136174915551409208193826442681114310560278538683987085924110056014096663901061952590891425077693603081429705833668852343263419048438245654129587678579009002119778385085172577805708007128882570022254164377446920047953066935813803506614180605836846418177158618532317414055288025631016677497467889357553546806434006990644399691482022061572033409801851305015247810672975902865353377018419539758130503781885996792491951473462002425583451345100883715683255595561863734507702096165117525477528864703964799648084336860803525178173935208532573603080378152477514124953728202846504482185106321196010852272876559196211783300058195019158730435885557317326799483995435782364672700601678741778272561856704354425773068769896732914335718615987099295398886024008319792297206633887305204130430292317211890983715991688009321925995535762440187075283246813708377168744716596398802897362262421540992382465879331726772790783712870067827926384444297541821017374797319332082122417883994957344111613497658044410962621342694378620244700267616708169797814023867237562427712916349078344143311944149567066615286391354577268023629550129079698570363298030392643055856974864384417912119945063806756458606741681991627768891769192572594790912462770617090041194130011075383953100699887277708714365789909212848032585833519927527624458112085448018979156597270162213070476983346268486887614878972904427171731538063147617027367961914283105842268020955060303746211754297642133950371632242845692139003300321412340858245664268690492247425756320064339593856582230526827822385968812977815132638081011800284459683296500161543231413447711192131402718340963527861705240073745828648805395746917727336298080636218398185776062529494921468788054607954423157494865181851029636141752455440437154232016890745510482710531886615633325189799755441828373033976511858728568557660793462845788657421095113596126917030641050529824051220440782909865928106514808679284884092748950077677710480662394283807585419237161154675944453317995500366565319866751188707028967971471109679904055627506545787648423442362586254023024711252984974106391125865250407531092911656794871709822685358940672613566575051721200895444985693259922766622234669594717043731723434893955568878026486942150905718119306465840438840325504180256679179087727741850079365368473754047402011700707999964327750505216794023116053421507487480523393437970852946869814839479154403022197888347311897808837422031525726812505865822713870741406789883180848370543860955635659387149778034364491739123734636779884728690885278757075061786720155797676553271258726006776623137396394538308455465501111921871676645098663930316976604180953994135015281812004070180738827369691569005779421819206633938359419098948048054579180072374896747198152999141979022093737194819029393785721979195825324673392789548070630455076646760344217055349316130986924894972309929026047719838382126330296465927036067006333570160411464824145916718372410168718595806573230018451549368963062454476413619440980716246246654324488466393185201265809519833686611705740850261748090919092028174960164868021480621263012290122517920223847703642843652771504560470129213043702635822975275107220586298598413612800908070750462389622172080628746147885741528162522239386996323331915141273505351659711511083433068040405700235135065403654175441076527486836466227494654109331922461137399090047838944626505627292117442531893169664453097280172277316114985785530944224403741369870697096581665827478034126370148661415917496953574701893992445809385290159372937824362859169098483221127312266194389572008469725088658567435425358544016611389424224592616188070491954282144939766651862316075420170537819658613638773981601574041904674495427823701647691193733948898301203541117810845634905906616481514790408417294119234176525063659911091123002596653663893817312703280701083063381533550907379618188297934647917670431241101603988909816049057997628338104152031717497069826547608916721141956482210706731938818883897925105313231288128521226527604033312224142135985696199299927869926347122507780548809966899120134259955059630472379278221056819194370161563377523217856194965782466817046448838919886342188704236089113773252523918768587834072913684506610122243461781294649270607342043179233988322957502825548215417378472967896447721153233958926285942525472548249653565612162531655370271562908801078905725361849722438043142343933724726794373895683030844425990707272260601242181743812112735683511881325563062828511672349901633884775252217980941746289836721330677601707757873054124403610970364874019346784710303204257107158650000202611522142550428227408041468003795080503365368221300001279928478400866870416589915004335875837371763377820546749861499516644596487480971321804622130490267002320935975025392071516847170663528424273836621204385366995753837894199737680095169015794930346876956026518779359964376544795540236793307354510584381147841465454498888686204694421693527880331295924031749192119153022450154739988098801542081769511360653466002677288876787034724893836847987867930448644910692550377420946517262469302234221293649152266795103353550559165812663475892617336574151626622162382362879131624930621070453377037794261484842064348588845375670897684680179333629875232680905005539913162442683228090940646037289321259500809619657061452121595766334252400283501671783655028639084236748852794834662756838614525082997048134740659265592695719885977847445230556368560800903935064346414357717636686359529197448806673353961527478115232337942436045007509702870391089234442759560573086166439994325735106316589528421425998702890713919716685632470304026509762043561128163965736466843660005375709532681909490650142199992865746377869482151296286767215276811646583582150684457055650550726188320776332377273243739169684784826909953431049294195059007816393359517233688421606052975712045500626745915487666527324190382238900184786146357028188367813587949276061060779455125695466163051728829095093738328362169362304920786765778302218870145413081419349120056107822091727803011726649411869530150272519390024239393165681516889191009108913122102988270192744241963893198456126443665414407664663370664496341666738807149622099099164494098316613928855092715960999424983391889670387982603063909447359429816215010077693189132479170386341246859530227975734410287850563052457655783466556016195110807740513601262772939304804287781268676871219357299105448578768682012883402375716463131530658397019747247558885117091768909561281223802631638305066179834256958096047802176061178732972361311508755211911603101671606953136036953477200524130167594333501787081707749056332680232015720618144654741009320336366650141705589459130227415433706630759362772394711033071757590991395009455663880831987713898716212505479719101184867385918709732159744487761027282195624920991963395699941174478495271135288747809311686225145670100995426390040139263320984439968752729366861176904524114269157888072831627984595121080086226655760570999552373937699326471626791392235336668651508123600284962959230893469923227063153144573419924241722629385041463697770328466778904618531747193780085396076973300365439872898232561613250141122338657940056429986833260470518865305611655249230069697768994541911606525429644947013114984256609174605741842753238191834401176693047255021204901080456239189712867766580222411884929434682221573849066980374271152939388051942930293581850501222818444524130036606744346702365736228422581178006393339958465354063680064514848883367880114776306521591756312758315185937099138106029571403486112057194580164350303749251154570175213481704312609434613714107291957971253810596923309299484679499001776930170199701729109908417870316811153329963574902169005833016929896326466614911757207376291823402823287481347391399514599020443611391503498773586036286514919992613272624877902533852362304655077566854950493424094083845406846431789231252336514362964847346380864011100051972645701672885938546410642602050664546498721858123875241017738534610213317166801857539497604586553861392284247704759017565333378226459101966412068812348836728162454394899297087518999349630642039357704864247976384271741479248032005002564041510634041942190988958025510089509961850094378463005766513742992580602837887307544061251004555737448521126412196267280029830608909588409568978856081560328344234552731889948070425579603688395159974269580253852711474625245015082583814631952840305616606563895523139383872994770930180955449241628076348635104692262231723664091996824875073673464494223648835687440079948471649989939275573254205951566352396909384035960645054783887112445209719962078185137235190928106903990565235189576080813297057111748218254601133899664171758159908197252197457625347552952355766125530429090614146668978365798441916030661464492280421897660120465036720734182954339534137430814752517115776367833444726202447507448040949542150724008467979619589603674701251944668903338829954960863165282849560603900448542878166173452507728773716735475317927889915230533632148924536594457152822268131529603522737057707862557303244543152116570342706315248020444744592682634241574668242693306432204811511818911525479142289295500631560615304591395215409327073245397805215057172771552493355158941596421650846752227722798365532361967301607168783836112842446654134107019395728344871176273477107907253921133005476609341842873835059866711827644327591655717677418783123914112915558680815005475652755910255739500889649153833229170990871071144327150719125568842051018660145730715557892766634258943745137345048286007845988468111866585249428613779592984672364697913198681451244025118026855344069441750209077059495996756719572590544786277274865280238851749498313921806082140740678803642884390121097302599662938161587968577004526922776060107260624626188044300026860010781043353271152231876143173442360796368687142618600615881089107339573648698044675996800017933565442012116489003920133283644293913949658216854432644019705045881257377822748824043702640532996576396134718820778095921252160012326516719416988667845721246856041822531913644910411708527592055876015495467489372532230802285571984601962489616037372075645867412166229699544850996577934174799511233754527784314425527699586113254288383747619583901748070358325150579011952187371019459283335687475864534327526940329156780057628740009652182821795160857521554503207653017010293112866152597407149525631294658264527288910927401571484348922885106235408235428622267629687412205722809848219982906078971295941796384225755727517063729562329113784706944675420541459926170745312037261894398350646453165498923808614030727341781208596153005700563871726035448316887916884457845816297795323385548568970075182973024678494971924820503788180661874626289050264566023304776311551052641080344371096220696000125191408084281111934600267940193387146716214768815020450107962078904267212619632608008305108679560097398242508965366780112565911346156554095780490298846562820213573263072433731410880430203247798477076984167175289141596161536463542097586108048412214681572119363423082167396817079403399659075631431001605410977059583283447057136492498991216125737534216966692769232047011894991775651971961733009001412025455604489496406292600081693739059349882521330169732018545047491159677510503175670343594135253360250601213689743117347168565328999099695921967554973192213638287482476260418882161811726823947726352705707112553746090966593353600332144985224672784503622035414551498503592446152229031170818391585310437663434185178806629475320524283481307714791587733102309927729278568938299805079992891311117806424401705547252055550912064767967439039356021271099434084428820134496827218172862881905323413856787472280564520066011136532661396446086690657103764528440955485363941052498250515309724311436717534175341845536829846189341422787954742136543391146649559369798062298005251342837746117498396247548824973383984284695192487376675133860558962491146709500972457250218791043803279219743253454711032429298716265539494966412657972318803248912938097609055171306514646805892537089328249710352891304290204147824011468584769458132034652682625443054513425159460320979311614528161044382176864761269016432811936385280735371953621506772646191116190718666032235446326746033530908040941732380447170428296127033651285871705401687280725791192690462897419769192280032013263008660788065712592553081111560762821005878282536978994409930420980657361121653728233500781489522576600587008754561334205148549168427228084645440281000895445227481360150445484261560659810608002693191537485693313378411874329072187529650760029563020407008343880420278433887078052499769733530407733693843563750018656452743477067074711822191028514858557994293757421849292197346732256863955708900861271844282309192319129983381129185473009679934476489746586497403717308597600541422069913524821674730391684139619336595400653194614252573017165620879653171854319077614717394910938782779554248224377819302949004339689631488879608814419646396229115825155345956991198565549568641531747676525655937811811732996077854715409347520517329147478627861445760082791800419113752439950199233412526856098561832735672231933674980058929473869909424977965403745370895985984430287705323706687287870928326416144052240490337912350017929660292938988913485024526374560954950459284667089265171854077177607120566033754639714448524409840146496979928792532202447482838841695657884497237908943009089270476593242918206620931885550635486277629354565713845675999917445422379025694519468462666129871128868438175244159464542488102855364860501408539316539586478981436981041320108974913188854901669996538001263061143783115882087871820200710171792283552058745005973978305281705217542315691989849454420665736097870969486596286260267062077129305411253090624560213849171791689729907913276948055850360163860002034978724604578018131590258051224538772898237966416071140996290994052246376293406209650793750332888810211693258635638537873044254989107114775023205830649174182974021530669807175443878724712970114326787475592430151516512516918818046319857734763020195716825366239874638612739101162516522190478224414799571710024600440266805791295081863991521845648528716161656913277794971772926667594746162434635922599603696478711972211307011064579343860582686521299139828953215465418225128179783107674618054173319096834760755566799931962913954214387349147618820308589675222451182580477857029111821343594270142710732743223160359366134786971462302841166933725536192853379265958018256203904475694417980534705090008410573616471985626950985901882408795608677325153558376688965318266400977884196970526468661076446768485190137977801417290552111424219895053484093824423783814505496363154654805949456161265912414699422723731914262212487088320284916308160035618067210999923628440757219826795895851277257670088163290665652955123742131880585893786556236401564978878229822364791443195820282136603747171701875233051547779338596909718500284364393593247571238827451041282040727409093710090890788070035324983993164266897962692202991873342210332973553377189169787278852136806935188578701111009972154289193628879961851322403693373212160488811563516471558692681524500146306517341946448198924154882039447626054932177713510711574671854834951995179078404015721292081407984530684618988697142513972022306262981766278831506376223415234677409977287610537698451766085796099029961858755393824162854923434213125276776323597484312426859326148109183217334041450040448980327448868061254510910089537462951969308972447282089231321371585043018454494495035491730731851649230788888332055264388539852532651794498121198222366811070528624842807009945099388183785862973628245535786891105706067449972920876363327326851259751063567464085167661228895792322048179337748447987379252229616596037454263985038549739016164850644896541621331556167956391530631992334409987988059964824273317272063498701178310752925145606806997594343206941162936763997205022519611016501522315821666488305677766791590880861127331922069975344720851625192464707899491103874371717507116788586597064022749442549434318447270458392393744057661950481773588535347962579505343360265918946310797110091009701228343044462156179279037558890689080395787323064448957175442952421936064611561371684189037857127310985942131455385475459391612285437384419958995697476204443345480373764073773006496246235041146341621620097866472314290936847314461581974118709972239798642414298561376872189453065431806982565831344680032133578341769106989295674994488543733044795438486902937874368653636461911528120245792281996284053328808880306857289363040672126076011883593023074880617025343292682373367010678304606725319835443642103136290639868149181844423888761561471163760191649152225438710886465729315870961758668489830560808845589614001453254132701051334456155671358150208469720362836508268701077393465001300812344561506396538988740660528255473031974594182181057698527196533819246105741357484207569530927134129908509856276952587608294946516103500143863872172678640352490742821489314681859669707340973185331177268071362319359200748033291134108665330239689870780698916287016241669672226099516570197691239511825034130818491935851803283752252064478932507692661347907596254438120976097355113314122250652661885412211249755959888143491812317907229990663766677326431812757986514236725416108350547108984356001874923255671986438870688702003279124195932956918116782256222830997024386839139956717639791035771296503429906083460533740936058955992376637983590886338300866436033131743643723176187842818197949957911624457375944871976656479976330658388102880808324948014027568545798450746476989237820238541813979702125997237911604239455755676463486735361255695314117177553588070681845680957809650322801934891476888888340972244891988219865140573514574343689502424331976546266030818687667686091977128262508531481694040115325285478590074157583352746607657455886598130039458971288922683239097863000995069080139695657289639243215646668445999190945262958759761552569652971679912160710016670085685928823481422274966168045045230288551300423985998047990422156332082088247029231685036230478046718402901394592863218610252965337720319753070715788208731005446589991629465175322839102095045140744182100940568896295155397682569574218678213733740815967386062904069231784822112236374950564379042776245369980173606694734176998108734887057640894768096365972863789451661076864445141089423531585744750176991304178855803042841905919120768840224447832018727121570563742252860246464957569697575597151104849126777109048220203241005579873440160847901991505150881331971747612305657877842894522057344311318608034689564345662241709037143352803672833662970136984414334345077496516257713782261488598168025998587326695018441219041231573211469518633686081473104629215617449927405526272952786917985491721524978722988614890465639474393758279225676828068988415985944623218679838731079210249425823112717381006227802411840486213639363647717566786097527983250636418032015214074112284786315377285886178823847220645932408314276723090900547564705250591364204245838950007961544095955655963207895072481386282859871006072079276718329490715158581021576094532087606029476521224511396740515877448381143807667347139885649427241558153488128038159290444744833171871753276843694035223489148386029486066917067953992136106199566298336980691159339932852510325824839406417509230092446602638285183086401512358266986389181377591415230559835112732198786928779512187172970341732111448095310578390429526397535603187154788250263565449064527468500438305273781865747488638192064586797922762427310360146218957761273649030182070077961645596095889893505468650854610565421241882630220485149883744104103941527991599969717829392642428584443153735477931865573457244851680382939581191804048747839732063257352902325992857681657999008311504196875226335565246831159582260332946730270735945277654536966548459724313766934955778129728150088167950228214798413639482432103199931587150389538298056983959018130941853496992812802919330257702207042607944507020113765227999180521081906552903226546267447279044642482748848515756444690512529762435498942368290181991705326310447625766944958461278954902804779487008259167343215272899891880334915907562822170931576765611957614629424547887203722882802052485516619850018457632309059717694082867289475580485261989619769217662600364271522219481131763803584549967926771398268983770308573777565003055627481369470560084355020650956941407384265217133932915408204507418678403162158736029898702333226643822318456507311388854955657874303824197846268309247340240842204684523290109282008620570609380724324741356281834063736758097989937810068530438879057131983195621468234666713579088371716121388388640530239009844709235670172889143171437699810922710894515050204342295667886682133686219411452986859659665253321641010214328512274928552698682135715321201929869496720871766083052698789169465213341459985290087255464589343440510395204738518340173033387566525622159961073179611654980311947665260197154787769005757528295905681178902720100846148117995308262339710998544954187877446617780331653453301200742634791129353408185960901487834528693925138927632325953731219078817613613730990661480914277318262891271640842529332230853774384027794486796123549947823390189203629471915275221352011008922760021112326019927214058449561985515662529038435354844230531006894820421137032347939970416303953629979598931701868095832920671155225373679135472848883825426411883774140466809987118746153562184857389751886704735928426748953308140179488416129223959585760502018722340259325713875450038754700126142286296728837928248728399165836929764120727104548742331958421081785607972318807165250330714484741867824188141284359294808717989398602847665418947990364211961399223304644826485768455870040743480023094276535032794417081524676662452103299706544808659066480414866745076770854069497755620819512741092225699816607468988930721416297636260251881510990475856383597228795378886028133210589572084066633589241501043755013086928620787894626478645278642021753768335987897912429075918872898553177808277386833862882172988256601013299264471384867307735729154682341314428522243506402541567072066347520737823767323188685243854557717794573828044293044079677954714436623574559789089961024576396622855583810352042814434405072903009896861104408620247494988463108237020013028607622407596449528110137650928187109975196587141731287014930411845870900492420248934432381185722360459230903675150446535986976198336401633850951040197520639715354027511411577924329696900613635611701740927986741243800173336163166791670187655782749000446602709167065311710426088866142784572134399158401199164740895367138103623182590993516051531481583380852428372435870564345413786614564718202415289719833240191186059368794746467174712538399511719425065507325489844274908487551517870049745172084125104454311890498548219678769724067745906269889484279893824541707803335719630477251174161327445367625437498678407142642011491092441419038058061906038041007479194298942364519286230830057450279918663537910586399659802353832318788304622687522452041991767984058036527394812823702118712271263031177501401275620458022531993829003269168573946635271490237897986778564869495563698530854905547388658462261768459513067189465978978570590849655168295435949633444711137293675712103729156922578547723137724760810035164675830433666642650815648865085093699288982097046690971505653146017338703990998904894495131385671706247684299670003709071529202848429664394080736596867865706497894536878990039537750431060085122308261521084945286794976595484485260878726319590426910727876710201959311227738067925344235638532814282863702672299661695286626648995418058659408639645540734911453352017694217325726536686836945402230230686158492326925671245725236006823891202152999270434357991454046739216234220439033041150454563868131148684864585515125064875193900871008405866795602212443807518090729169112759827499070293787063840463908546243182524469677808462823933144477164351241550222068812447016083954650363355263909756450078441004940227916753173097769592962521203246598280844621837560991553184347274037856419982411398893359236591316716498911887673566666072893754767672227782514675522863809371188328496269485914899962783260628310940165456987001292227452896900800912518711689083626438473055804567671623514500979477430399377321201407982515159451064643068086737283765851395710939093125241690501659640634344674049023737449350270807938830810115608811881203146110855083672626181476507696544170351257438990035238709860599860189121096428223561575503925932500183424272668841627726741424876488920071917925259369572277968624380513186843101446780334949103852480748453719054331596138333697864112716437583964864270998893550121346154613186567563460440601597238123663944946173943079633974302921972061977398015072353496653696433479234831456554551777647188066077252760320634564646810030657944230569927744203505786457376813888818183558635912376609366800281985242622882729496372335436052661032656189174557551758996282064876093440891258428576241869443717596160782397164923930973530244803776537099196484714238063494974402296927804331697044087460169343791371287806444339973779954515581550334535970682107657359314346922305270533386960538763274392094845840742771256168408050341659802654295558574983788956200155731067649691608583310345216720535988202044732011206741993253680693766212789294121773569462938502638973359413572971896335879247990976056261571821468207430572055909213075397595973459509434915035957769195337351873072719532446783523327780594654409282912057092448860022852837234719622525534200713384645082553390385224797394225276418521509434279316301407321523490675054012038152570907022958018215784160426695011460424001748530906519337334616248042751660497074043816351365988925200681199192721331989865070784158090451373407375601170607853220055333264274958361175881792873873570334301028843776685336668343190222245594876392540096257937883741239816235465593365771278264751351127272455507233000687892242313902114980867730801728669092137316839038757746191389002773924318686158665384957738751069500738203064266248469109944064383932592681736025280108583787226039394560327811626926311442869766215176307832872303892516676670737435767104472664532574799018180532421183456762209674993925649207899528055603539282395447013529163507644600225695537736600391310210576263491074463051482976363263487959181527269228721500613888379447631266200296838108924487268450873488711717323917441563230869493276565334278614825710107948118277963163538288586334164669047324226588867295363004968357971212516631219724822350614368543747878810732737192445435265446026032677308294085114235658372885090429861385935978090620785352558887491465637565025287219869578746592232054777500883665355925828474566605731090509125874254023590006613135260407678406336525214309324693808850039790842858157540616633397527997992880320484892263838049693526105767197439265645548872493507711690064420965179041203834522955003859351670926186721862545268848756226358517219345828475995418045997246441039193338773903439591995325231175016400659933502457879343043680410066708633190794831149235179430023754630771397041901688209322589530714370954015778515704833347383817623335013214011753414383257008003331091313162505982792960109057799549276223371589634761487426185760591878692645674758463560589594006530962007566500845222723486967016304882039782635492425707585511351512955085008857851913703835520819847651570814593654602844293770581713404712971103160849667617023104683359553205760859850910001110099774178291917002022590290778566900443341252986596562191822304535860793721833522978055107799440791126644864820110673355162451165574916868204182443409085571592371126940358151399237141727104637069341130845381626010179141625963497839963044029560969044666903817194190849788708135586401403555156290896478519756360706929201825496174858577157412806933199879040876779802384714864958081843139076623817056103219032925437027271698106208406058680719506906721356715726203052289207729011211797915797473961057014874887369253603990133287729894616528612906979868902821597190222477981725154062846388188182378568545620457719435373074251971647756342055243574163723312606729993458341548991121227451418105567054112084457580491842674356215579465208779797905272044163487711079201889388267227600222281212456200151399460253865412222826197431735028859878392429081857386895249130843954862689259196592802194893507966266095668520940784940875335788630096460398280189230487390066605540401451334311000086522169307186749754185932586185395777305409730888051075443986101805935262359161717032685890939329752507292798164776673305231949558353243654935566807961351219657426522968372474826303159579622776500003844968988088394306895359507515606677516908908589250956906973524460970122692909649321665899281276808984337238223959940837305241964761944397559430727738103779110936896268135395624079914684556476462061120502075563457092029917734178000029387955273827968860431057753434491009324034095617867425162894685311254663069267663686604806321139998228105960642901402204630097246010522569505124337300460730508494423805071828060163226913043416693849242645886286380286910204805491482713383123215849694210525456067741433933251417010886008250605623535537287616580494760238963445248616963026367099523768162583008501415403306844595163417842456475750529837897530200141733176746836823801741449987428433931116039136129209747028445825774883426546111395683904890848022816917000633163665190491276233117577694818367407571542797873383138377835452324805548334894350386713205052543353907110634337512146953241040442831583754634268411999022301749329235391101288980739975754481282838098089434825974271029097881400805065743442111281020015589434334198567045912063603275364291154755038427829150838262760977722689618272635705603821199384868389264461249588772914354684372094350167191558680186666525704427745689110807109436723464944110933318603376838899072346810051768218179390165368400123010887569723735936328384973035153214131053649971471328475495775696642719872983117897337036083697840182293365508210369115245191668574210921958303952087638860013312760000879940554844541856419093839570475230846950097166659113019353026159579527406847494572259284513977844229660004445923207676787521146183779801188630255018056837666368374779606953669703912141064504163346910739560469545512253695307987047383655599418543151575603257427772425567450054148401151614894169537342356375639737796165478698115760878933599096203053068771172752036387154074631210803099969728602400114792124152177531611465795857794828638874494849214323179191473037250615154428485473111099030039205637242742417788894130363424770654793859102074803938169726017973199587675825905656890948380847357706306698523193200421383552943624513657965798828983596055761146155855577396029744694996818652664251828840904732713243861719411396825732990821340063037186175403490045939844157118067945574245176267309271470503076347418573188514206428264957285034222562064674119058819536547197896118478841276233141442138802655910421130504041663814217206083781520234273102351461673278046934616869418711629040884922747275508338795249556714769812664511925120157139802762483119749496307199545060416783225618341114454009293552244008531255545328888410435596003929800833567048550154262854996882084383929381570371650293744386599567878346259293776111298014838921858789255337888248714958668624111646200126264541163716720819175916190896295111080750787687962885505758610979427348666145135839245616287109743514275560317300543755948625612664197994851989184453546679629551360328313028385382816857018214654347381450259581385232816616897604615109525197226111694058383279109882852761073208989549936087905930388002275254366895115956971434815281056303879312787752775986160771088934450794818658892133417153060490112907567434093230394696482975890417488189032018724095029990527402292855387020983956242792040844023186875754659844400703099934914455099426505069384092205471188335558760958947727748376736898943588021091045898078115762249554055340629613189278943458223729606531646200110623658711909703545962339781989784585214374766409859114892297725272480359954004287622796167087529359878337986692305067482133103916254405916581360716451181831000989167117193694803112645137388492661346582234647706315367561515366098158374995052764203198246909464264608182753274894638170403855704369763057110224830707088141926045701040559615416157649395837240084106026421940162463888116702590342714122649316639711538978916436296620687399244635909796793941412025584250226470721649130422595370685225376146867709178728076531028318873168088293647248319147537581166141995549808323927634078501053305785209904874042905988457834720364397146815230429291004195709865656830479141017458519086357259671500097250922828161771137510515058743716606076864021704231971924058063107070927539602294919584529671681011008314951332865650835168204918317361889385048997463794740663596598319161984688966473995142362515032220135172214791320139433344118014954419689282303362207174617123992618383162861853703552688618861667526100049853104897742068209742759139666276995156729791602163554115579553752706929430018841927541118043454560037811744414158827275747705881711020483834475817086516124729094966575065388277980049988321459481474430673471797327075275642920251407517194085357879824414099275270989945320508928953735142931962705457595042265502596368783393149833077088105832854768151203271038726346597726014545830620249914506165326384001990262493215737617957859996267683894734260969046738849887651983404381984769417744747621884225493544140623794513460385656596921094782924946150422503490865272903230389368894163459822160357986742786259821718897440142386743397950485725541831271243779121683275863842443556024586638668688639800678299309160640977733893165082846506184062600130286180026823409433115688537269358734543939894924093619843091732334344685842659373821363753023140233803551889684210992264693853934359463891827545604579842704328141159682179723835995058474055377351520529645747527789125674285245415876740269411185716054118453438715042191260937625365116716009237442811293921991974779535049544441939112230676298977145066465953873232168953456807857476697592073263114251007838056757319632716600966858857164525050531659897567980708911901991384487908649548048647921864693860849139384888112854991838488198343425174209105685112416570630376621612265326988585896140026622239944619620873393736742343524043593212624687698322255687547438963395834921417802554512208684928226507515502668162460204517711620728312910171663086624957389766558796909862591213528818238148525706410445785770375012165100753576588184704350944377315430657845541488060207448951744453665445019766714577627351457047790088769327785370818973616059911312709699545329334213163013989366836824941143631157301796575044904479550465059039368064665053826643958276825517567309771375634856766596090082977258766077820559889971097580045451821105444513437527788218047773628938725858392935671858204817741003407202156890916886131533764184458036059282048213526547742546300458337724018449472291873058679928598827837702583517591192271499031956368616122838634416832317536596996622746000890581899215511635887812425329196432621986474650285370112620373686093933703585283296866114199519846202303618325232035305049500228251139433727665483859423606462910055197263705322497598800209529397042818858739928019688426798672655055708397196621407889676654471123081345057691146478870478289075514002148467731193407420958956789754648032269423848451826282315457255373800046130515666500660882256459653417109196645306763299476754788589069004004285844139379763233918016477795875804053941916315509933208695894279725628353313324960564132098405548375654007242458787694447314387328868809597572648180113284772499827384800936471316021291354314987450936208520083686412815625405794227198986585945028991448134502922806596733527879264016841848087708259751114276164037284746463909624207388454034547078812620938560821089514932295822616609493210750336310311932211661710031130332759967738903334126155653805229857473874641614740620762130687212830161994707365158087757101559566632372854737634028191784768890163391846321476911028517138438321775115196676755553489232483788401466682535570042795261907887962249258781516466214093205349088633491062898125899137712569490350267842886938104318898299594685977011062985822516077291129856523150622488013573711146123429763497387501146004084668886118711366598291956445987898609123345385166369676579831281928830872338384362221704735967418646185433107964075250116393203419082113839142238876028174766142698821975552132477425932935844074340668980803995048076474324307785897393079302133032762854195452471013401702927359128231845237165461561158571172161690291248597044919673055193257469641642610014838413287085519232862804404048577248494435809739932905561499606646315188199157479912217763748750971742794847224080197639861292655139771706210130364472923017082310359953439892950537682180477096772102179771911914580091713424574998047486941915398386837886299584317810194829355262415147825422737655368015010956934918447065227994296826956383251528805951356095907632506474974559132208183998215622745068770452537147758906287133676646074375659109839387644681876725681089565757773118858094241428611089862372754783495944546521390033927579991610186071217425495121031899965795980796906207562866024751415977756039705148443103920606970888133838814846132075972457199031134398570525779955900686299346823093472939941633763768207246496921250733387829903621007827962628803717222470653413854087188231838758187412180104531142175412668473343397387827553624538227255370634207883212125026947973104421037921905334254251129585668516239821642885012574119786622532329981472407560213273842742202439547810998933354643089180645888094076560868540637837784812230353967496717350676551336705282297716350834299122104469174794640900438112677926480624337615808658264967527128976707113058485867762974275638316529594160607861073293072947622732725217883865594114426722220105051105491004670651032444874277224576672503996982522911158612884307027234086592303670711340865714698529446597769158557335622054120188927932616664790331669218501860513616881911107194832371231262365536943449101936207703689165457345133540691646848147936367271575648834983177661576128143097141338571246957903882676965090040391040326533934113815323108677065858221492342036539286575730286584999763210297182359074607539939906545386477482358314101158213065563001763323951745081444879570579245399422010049879885791741331201886512037969841129351305151818217850257881837967247079308399882483858037911743262127587618876196533913386003910226659899896679941035326407509751098332057161425595355198821244074994351622801536925335042248974126093550184502992380295215248830092957258740141515368521557445768407559192019615544908814756615638733426405498720309358155026007876054584992989780206670569930119028556893122923248211411254471264517992029639471891326146931449092352975968284818406320241393352744249903837648506881501350049917349778007969366263048450743602885587331458075787861754209618418680315041456991000060392771732033936458319560287624887642894385944855000785575318247183513462142335476100980216566196952831962080139133695616462642807542823890835386207872630269226994601892709777241416129830816524000367878311176385680437932232246940801558427867505523729989740985977954143682796628032680648913539456615300869916251083272363631149430638691980834693077573125037205666649716937927937627989124674784024452693195667780380213704827315473510588088220449364156808862010561770085390825034397011127535963299489793915940409698361104247054008851142392771517531823608108479133031750056698434993210236405944107613817210331567730994839507086481566250092673386292603218273135307161372979619797367745476258736480543816795433699438403456541653959717025522538504262725029546393649490146421040496977807141099465408093211615485577485430066046150123745687203582713717998597454690411445423967811350477679566620782860481657178693517241299580174126418828505361558846727616509379845086650019914839815925687224867312331550354949889594746433881103857709536433692967767177089766440693246213398400540729621509688217888437671291409254798912270079246068716830834927932540691959002039397990613134239875328489373568757400907880617489372478404145406790709730174353288857467214336618946845143434151164419447570263484857991517337143379706827261343784719474747720010485837834480124665347598201370228177780851485295672249056386508863264967654916667353122602341535939905960677596527805356000701865208824538464807209283989988154405347479475752714069342491694501981799796215161424404624481055841773400186862206276643744471850826276154936051204693073977947469419497454500040410437058912573178200197602160723308881325155755497980723352922302890425904293696709331556582408583864496294678579252382446132900160791096087804900979423767027937060638895063952143745463164320757001904384637890267821951028016747627726467680572064277917142109653805333513550812152858048648780144669158946447299018731289326143934663497464211048632127545418476478461226617364807652917634760263975293885983702879416852227760761921207478820637031135572765749245061962957261887181347908859467093416494028283088554500140206119322986622568917420317563413898157027513179687993271666663328529952404015571608723936229850886573402106919984664774876681829915984551245983415844676398009472621929301883292418745882630605695018693981867749120391739072118089519454480977507437139593801226812968517048397286444109987983114073990657330188566800544680275940923886852857589079920850497304444538340511484381970734342516581467180641866519514911801314490818389197092828783812056135565731360173384343188909709967221439718192449545020465721106607639712957397148987137237064555267633277950877136351181358165486362778426573857405027821538569202319204534842703671318180813951010330853975254464798253814373095615740078937660588941363346110607223555306943131486130912061660030313590033666437056043929908739617877513015200727191470800443730351010565928855853902949833578820820240213793408048916435329127530791275515838981932238724147493989865277817383494297828037384195356080643109512488585924225420711040837964557800010910538520699842003093611210850776429559230988317356037649752879526806773730657769244579761219431519485157787791442533024689427167372244158107459558559175672489891163715874360242979379394912831865626935363079471915343888206864819355507030122947220070230480523502627992927221415084854921159493068389583771926317702932980280133370222472315963753975446912980445873753819658677131793283245902819156594409961181329731982585975804545153636818861851098616257646913325946951378655864011063665526435464358916967102225156690580502091560835750969309487745347850608417171372310075142696510516358266519336549358416114110844024974595703895095351296977798918210940573344533309239451089281852224252878848808630284108497966544585238586708656498897569906683892105064899133079559118014282590514882371703689563070982922652918356558479582538891297676422817660497963031455882753090942231894493422366539127167027453532999977600136655651034188918849734654891514877317140115785032899674171346888968522210268282659075988869582840741087819483176661480635658530155499476618034474145655295723868691261951667293670115570491118998440909866875449761577714954934388985317593580052662972061531858689929992208566467533586331874180884665808526260419739529746245178681335329518868847542031408901049569381779740149231300765349279441809762481455062988614160503870666048780386390175876383461673386290109663687274629489352158574068323861603147490513806760068967109689747909150422266562131020994051383606423018377293975133178892224760159836251251711906867817488533049527453752871844549686568624771810645479151966590249975532475902969320674566185943571072143106610532470140210609145024521745243779180441349674919508461100020921037049752215119905877580900192741901278126271815480853462842247869956544694922301206650536145534650299839602001790858298038344431325988392879975059273342185254453774214760167023034520107367521504476816385813103487647827502358392059035941440766736906918873019719870276643677786693556848733800942494052943574682760427863343534855615947030090011855220927585816995871095418876474117382057496262341492924665060972169098570693792911251707795074137274356936997488470750392086850534451360265138796141785948177223616257356496665144872068052180523229735645853193898870687806594934459830797407359332969011967856937513725692361452549419756634570330973969493543578060576127160367290106239026025035018237806202240447743575671235936675817831365701282258790780900613574098567284331542738406956956291897399330508520373204689471326183388078061568326139306139911814967841682667831645368076180755234106592549811477717672807462419886507025866613263170847775652092525911403341362533180776899491921087583966480507861418296747338893444336590226768291670793947218953188692367966001086561213864536940549183170127253203842218696654913721565742902723265088301107742706516737853945068326119445284472761972204914080288742229438459101240467007463781500387912338230806460161115095647480714914437688164055130011444145297230511020785860217162061548926492710044613755968578572753152417751959846573838228548050961417035328728090995821308271759180015997409764313664054802146855141069997116148319121422072886989934037957901367037018913263205500422312983424964490507804065525519156070501030564620005377346718864511970221639543872189265483828068128886119815722725954448146942704795311615542177118273183321146641205216946972553977433647897469546690372013844781153121925713947984515917692303625338015308488899061528312628262967861709663746911103798066316221526452111290186850647114461344944882164003875052994764661693656963527953303726671353907134355094644601562915214690031911820642386418000082455085210586693097721086313910470860975990221323129558042174581365720156630720483426118678791140258185814826080596141453182342542047140608983840516177004947047335466630690285056504480005477032481173466567948892280493102004936826388656501154156288220345136881745840640437275304252241466561763941117049418639929724989824448357475048136540837843323109265458113127303219654398494480317226898491851087976430459813988148419602307441963146259918818556431479426595844744375748213496035958362516433158958507445353599529349546776407547463766542488181337948220876544604942473649378020135412412736042954173967722303831681086427936645988182686128296961307577067052242711158884084290291860897256667905600827353488924723873143982884154469886402571623505190532783605036605868529756516832912232636996758296874624793831300188780745523953217457327042431387779405364796976135985882893628524315911279275644824146548483618153043703256093086106528554129917092747917665488065630953260915668481033900437893907643535105091629992838487330206383386443547151323854477116249581306699487800464484072576649151266753525837429814426297715913446531239299835867924490970792350215956182732331472674058901083446306069524434250676020594900013906893998820613266406698546338735279794285329454221178905954535554448005623349535978860186584026535260146749962887471860787117223005120478384996358778526950490826015023822711749911030965649791613055943620942726160766464835761673745067761357824949973694574922619302153050980466308629151298928465457724415298122779122940518055612985861580328051675248725133178388655685876445610941145432677913372475198758345124731294834953699041342881883712053984024925781738186804819830472790312195983034829169553649046350055453792109617549646523221540909902484778917319908449382870461754977014482311428156391682626486999894578749052037522548246606989229587839284785275169055191031409122661959621932358665357046620360060686558762163934001601559375518419183389280825386552855755752518151812001152672802886498202711598861012051667282816306628062967808215144273727154495631501387613492886299350392284957012549982602405895387787511610421259954439704685491776141371891740616101957444778509813682660650375867490820379471136626143797647832404570158388339534642760223235180884474680630636155846910356448649267262025529031604696874366522566025432382401696226704306726094602268108687704472727904789281427037722476928576254520932592911817930847598233356551501788297388536847414982803250874584437159909189361191938835729148114715975623850753883854757234762531865838141057393091727353008137479484265557474861457245324178955123214423601383493677397731424833481684890093540490364259658550797220794525424251709464495168933854705554669227692611140806671193341757248335420451548182271202770811950774035714709828274880283936710878841530807024540517448541247485891781528117673034891723155890354021418660014367853380307587604581993471792669725598584847855163877675767699796513448506959027142703697823648360396150130148494733535779783911528409394132221280473770021599770729076507799477978898110017973428079255595421587442521760095448184211596009070320672368988780665936829745483845443247694442461670628613789697377332724091843466746973162597583830836058650248503269316027634485599489895209769339382259546036630711925307358005879418951879577351113784656146757393330460814802137140326486831648474799595340945807995191891281018928466790362889122833015715085663286129999448735083950991520668078969963752550583416597006895863974980585723659426031925611111842898663440846108501892422802299843265059080678764604330292761581867807692000348469678544267257722209691516760463411307763199388716767941897524107242415056564280098355856225483422410319661827452792596281919503191531969406254386580510791763312091272190371513681524909420319064292426300511629960914831640486400723111187240509350141712625302945249803313482974260907665351286592089653775102802329869069847719125350042380984065634492029686592837279424507130771067352440390639114336998275782099644906138481144327984374066628922306127797142880913441599804013338843856024109403456457886213181992244274777377112777739096272943061382841351300749891041701587486930762747640805821206156422687133444478689553823501061376003855250257877006135665025824708838369880352200658940183516117875501942236563997018430868988619382160332563112075569996423216349719227070938573354112220903566735129182246062046724073110684041747108649870536341903567731560342670619190305349343019470847395807992821451561369704719268025788244138312064880284393083140270709174735985071089203534414124333713201279001628392892587927614290819524784724551470552194852827287025758810004467404842940996505589550692464803262939480407637381369222781304848042061819425792070303043039194483489711208102310868097704970773353693990801552524396218622909915442698776017138512005580129030025392848658710996914269521607910745687240493113328228607666717089586052792848113786129950573215014758896543199815442806987527438658081792725227620510830602311555517746118408742688284634746426830776934774331913148191966813215932705052090135141482525902613047836561795833793089070234990674879185475942019383482089330425124216490261120616406280395777450212906845153559610655505659320791608378870983723807116720746328297176980682870165538831839359929124813314890076381960922922157915748361088144688317942072603640730680890079430823397380750095536455039562224354691052176954523480378519701247749005608665395148012125182406064592480602162594073791826481744331657852666761484516575206411622161164415076659757531752503280431866301222899656889951080545285508635272231392451615071615474796779326787988838205566966251906866177013984140640323294559338286421946624503918661289742360973208329113379692507142647356383766877127918336635626393786791791748678765192299548257864937107066561652501872339723267238558722002674236832327145394076005913727311612838844521287321858214861911675089083157588990270130162964312457837843573196296655496891306513620029377324276114100908399961043522252823594399614257929869541565988344896981279067508989668740193009998796146222331195305858093470714696569653748228156611261846932005397959260961034453989899253951566208952756399986080605830477933071606033347451369092484807144612020011162411506302772811050121575592961000351511764525644269503405844379186591390475299684404033856259218560415473143455523353730204644668690456974607567370139955832093266891414035844559910077363209999643947527924878282139439123027570141659293668443574741026291880981445270064094955470940496612465106576841697719212494481017497027963344241271979975379974752041552546837198450408087372064194999185040987486908995296582205185547380501949746874512432068393371954962411780629376748794630362467425462021414898068875162764440306592114576309596216142619802605532786220017992699144330919793488924892193926715948201064212673890486143726519825119460311898471041821465264897461738445105889016016128944281109091392737752786423271308991733865064468941326892591097876865679969214992905977545385902722978517732274221556706354777675935753250993162094776931138729237111419026257155238931778663518348728825799946165610452405560183065127259480641831248174297477541251331594704408205445978970717387068210525993962765209883210780525627111916340406373782614404135502349434319681262010373301985398381252466633892369506569407268297168416166213914460294021091283624793331799755073151809705219441797502146009636694977265414028689822918976033777412070046964161827237344816240680760225743646262128897870697724607051899275026195208074860829801312041499063680466668724566397163904002537270102709680569251951423971195643109128942995569819019381111898868406403967997479225448359502493212895762204713264715654080466675043030191798394304010595035944691489292841350423374124654357786577049508913043273059832478494609718473362369587378793253036322930109752401020226354936787882128518042315753757211602215985455777195060706859146984676447392388246956970294996674079096950186114342627269978128992719993098746718009260008841789659219271387692661740377550216729425404683963363265813206033078965030595184814913584323518408841373330661823931665646535018820006354898515282881445795938451619841035562971324797309409104135819308841332163069935470066220818994491342613448375235229410605638186437044808185343507532988306229685165772464927428019228102334447198485154496733756651737836615885750859869227595555515654014862084508762598485356944175278789417646675202957444045645258282746402037551966715195200219854522773744305946969318284468321451183395926105996621311592691252388620373847456160891492999067974217973241638382106984158085662940619607615658261907676512074671610624904300608785118299113052118617779131614785834618720424377185275751085516210816155215372479107648546104866698804128906116088193904731240525871806551499331672711561185913212983085328543584558464646882178275649182932066980020224196446817233643415369341842912434898690738184556254811528503109783398484075793841578589897771286651790659900193701837579741877992133130312140368491205256047111417484185627119535213765730486543053372087768579723755983057473582043000663524706752302103724933930563117615949831849550071031454224028037974583164554690083346649510401923861272367335607043110785662320517377357156462748014310037123643598398667886264158958777915920304959190454755417970510436327370596679290136821001553162145379959558975193856324860229471854682750661924445852133999171270076150015327360359038690821072950370508509501118223210828334651032994151245705590766805489956510866025730644188498834901285489086268546090695820695320454843283823876416894739626228424155635479345803510350987683555164004152205158129455872596391099505403585082267680601629852382501918693180877443650590170962583525717890113624333601970908541277492122834915017852508024744247391554011694042533658604569476401573399269485690694645329413995904009924314484750361716751930255230868057536521352648528716524354344881584354610996136159737713734688821188521561763721088110004155189574621793103650315011447378153207377938765286132537741023468796439168961079701781606355189066632886483634392062564815658462518449667761037244165263233832003857554099250293790511556332660690117280962656857347197610834868574671746173413148228698346577563471334001942536898136997953220941647067241731690900688065042368115728985558920628791947252709067627217167859281559771470717383974086605967242385316343250255295194191999861115168028693213227912569028724199776313627323039673114384699329178317435770570734236987147557329057580055590279739179257759578865229308387673445643772646213245314559762937664024815572571435105030908891696133669354424469162883413191675648764903332675654306245327726063649707894981522928857833112499158073224322872490943312651705517146321643526097938534299600660689788041231504219458661241599746815414994417452728660834459136081905990312228670738213881123635473721016675027710277257093457773193000323080190034932824829110208348002295896771076492342604830722391588241171015205890524769086838452372830570808558807912572892027646086435588446325163167326858555519199532108567715922979254888417349698766473806427243658526149847324628576985957537866060458667262248510016063549326220492460676843854379638346004593305591295448650839353220901478648418363809834191161115695201243805818359793120064419570692814661433839738504733836955267025415192585961894245794633790216228731029010823578001460549854901740239279967307738291679639655971782147207889277675946180434053744143702975912297183381294110339016095929313926160077536416408104536147103378187396696643709515744633596590375089804026740914178225524919250318831845415705427076505818916553274193944273779475479947271071587728019319976523703762239502467695775707441758143232002560808599160682724022068739934705367399509017356185333058657344930341467232993926891153471472982024457996976115000278713548547977433106256318590704951675197751891453201039321063502083895302117321873443381096273016042427055519862827667643112112947264774047006168064869797745503911989584854812544824321797399177617830398042655173876423647841794640237972874710699040113088242103606726996914673669367370808239721850231853600312981541294865233004125098877256902379884595884616058894008935873788737132114448392864190302006581352555431507848450834664687046413986031257012039471963043376206312803998556070875498701796165467252542953421863075634220620663792374319972548802954036109825139975352286358153413928229218288403287257738430016978139112908037482441471179507162870967492978030549068739239535316649179055215597749049082913865007052972959456591476882608332603677165500863001212902935108395820252991920742501342287919801528124290967963312701096861548794572464059197014251371165915458215683019639262160706484834124904746364765063011127660914736843403582370041059826275691446335825064568973858551416182165828888620021691116661793222283325136845280754483819955508947778658156922945375395635903235466464363412066449784717525766672817343671437709033716322725991669966437366520654087105359246569639365969312121612953390215211573357766894407790853615168539113728547539971612378850494883295672641616750694466800346487233337994106598439650151342909699535971357493149686595143203156836398323722982087216854013191679733355721403618648686135714951161632400108769776794402937793404550878734690181514934827883283138527316875447665004897220250623921256707582194087876618368524072682525550047251521816684554803291887180368983070962304146970448321456470701750102817494103034767700726289249015677645688973375916403620583615795499305749832812504048153040399285822986752146181415880660450588378780886439888646357793503500829071458378869373360497300485455041547172256207088889104280801456455481454062558398122893009754204178541812072900493035111017452039177326902153109039844672323238438310026528505618595248466087850820670649522928623362673314350412817642887572117175598580841436068825575430270548487099539200684532837258885749993731085510268552651020231412506921522998413487546178370976848885990716096569790585640667458834041970179085544048035240582856136022605321597635205733509291526649170225485826299568317154213305155506754717902863746011714785238486508744160511136769512038794686204147895348639779169902005683225859423123774879986295941499599491569992161018525867845079992662937153067118510122495898394624503196911637637206351247023990474314726823711659452518920317981642331367529217730286329130734936279973175162479702729673608792815049994055749999789910286251459878423373859595336650910969592236701341305948707068348998900111153567089925033641580889614002930750347284614475238683846482061704486960390119193313655049587550140844453865168634084760055816788873224100404262705086700491335195057663391844141340089809419493889908975576175574221803304201405725961857836019763523053355194162678843519024144877003056736439617354963184193053999757639448795836272330855687848270076304973879421605925264434039083304463154586373210527023981869950828474049541011376735642121963910828962607054067161995536596942298731615718841567594587455045021261162670818770993201502742571678525448875770292184855486072237749121583861899478007267858303471073761790068673661208594687688207735528730512166640290971897565669500516751463564587477800754296756673682036756865669967545203103234559026936746807843072243949077508119749332218134763590995259621980101605547439363234800953210644753987730969214157860715021835257724536082956301085741266885298193123520351699740661552513549739882049268779455269839284793352536737509672113245167014134144406169759047246510858612043065299447623526844600060884796797361259098342120631681105324990772377413483442675180180855573607313935490096139053996187415086400663272989610685288548855878307061006434349337513033225033244187493477300336363089716817132927090928523910686709291686936225669145313932895257140059756068903941940959299505907260899736521581732642249492519853581729479758427727824921094658645289866118048837775555887230871842903704763791304759500100498803903922900089950418220872853603981875712516037265566456621705530920542850788944228792498707604701299874562799996287265779885586306269706933920080267099390752261007677114880594351432371919351832254564180903109144510569099914686198496563410155672483770616715610700335276023427646171879377460918649618554337308931713767403791134672013864925713198990038520585113322023701145603290461441697543788392555681241932602235812668256766937097827998735136577646666931091834274045439587222745796712049397363650070002866725512439376547971542020014846670137313197054568738220929122551411923854642734415164373373936787678601824982314367123573384067641486626960808209643986235690214963723933435921726971808503271397233819023065263405135837096565454109147715054332502405447668918435998369479054918876989063069180790805814868249660013236391501783088370052347318441831999714932141776410965890464424416632850905130213138110566639155511986112183279380720995171852277315786519594930232912595245196054152951042172608622649793486244296121920184934434653347649637381089279354332405555003875768536332270257587980711626974376477926565184979874366337658959071519409252004695141713026168382479609879843927875854048064064004818967586305748812103532873576882329271415851546130055925946652621990563206649951900764325387289241417026809451292136376521727185862787781409848897991856669281768397974952839445606809418343595786555598502790267903153050979302326747625254797231560736260317125143087672238237293626809719954850901019640801956148152828333203266519845592910998924549290867008172967595438254458218482582206842318980789016720678526437781634312293302326290612068228816929436004691900550421504267431779850434071057975612742366607425986493377643115070112830291370587692899753107507972270378702051445833997027155180763767127522898618544245900839425326039983517130151629859822453059970053005037987843471703719701490127165055561019770528534205311120221193362619193800149733082022709556214484851281843430431448468714664563387557470892940699900619060380043262229555397444579499397841461576387895517933180048918529552412157306927583045016650249893966874822045757568737569991517471253674051973074558963341877149453070571770891482128139364510966237406618311249559101044199160400652009311897642485796793103727675379085774450237213645942243372888815443582816483892904401963519398524468187671838505132043860544230616384597517057216565318054667281029919336771119438546694951851519266724640416001948051591649697246619491903731083451562415267221366384218611837014093906985293976097447769738550685813491984376384932606838683588953086613066497477920384939095049623507293925859014970278263224873183541565496994160197676282169483033804488206159937558077586158105567049337350451083528411873399187440490605056522257780784178271622665760512857721290224946797575847344487169454777016803574146422416342577224897985444420251778443981606083784036941508457699856846078109239429203009181036491297507821837582815726269047507814677921210206354117842858693794192302040194889680018896376318082709008752932565369538137668274330494567149763867377102945602564405164178969123594311326912299861357587070176074475215226993972855627403757916783983211408597384854776591629884563133324913898230692701769138433367827087866564283255950118148045076095488986152096794038102213609905025509972675603544255633981831352419116837237993114405309647691232525932246477050025752376293343187888753455146568773953168488595035482234948689331573432096015079199242594489856860973208485548905977450647206839263228815889987228597610956191774802920874596335367805466987083094830965081619304376084908779933503101569411833885168090631427480673190073560453446007833750707060169047365561890805955018272225211187926498849682969702342425833222261457136847269652253993893143333301752619203695950498666138158017723960520541022953579159861322904363716017819350517519946941665832928238388090861161023514409155919220437416967905021565741741229727357298834653746894344754003627124044014026441640459416526570271309342280576509887906874554259756639917265832009494642258069109459204016608085048254447529429381366661689159376131099085930575102716316031354454437070914590704942733931243094797522581410661624611408068440122489799492168405691158966308714497335892577496547369629413452382501887868132500646218215423513547425257232620842886254748874819882319088839365486566641115114212656111447049725233646042169059410139372193925606303545595120413486672374809143179538177316726773341030474700346691744238007277348931883714659333748427129880318683432837966595826568145027475552150738839271424915618036412744932024873250924768855194540315228934807271895376671273746118964224474671183716445965482265361725342931795398875444291710657897862268805652806172464203090956811490696415487954372171438109676681563900946496454651873222910842490182158103179897283119545243544331356107523079759993759827920239150884492531498025943830879667859725611805613045299535647743032884255573062963181813941002315608015708027279500343517840081958858690418127619758916413098648462293375553133483515063547277563243756152433193022843720127639050059232900035524806711092963615059472901635681480781771021168411163726551760785388633761900334889535115134464839831018375521603842569223820636896936664499387906100982948951699519734333581330085093547366443981424848727963380364475774588853896504082137320286955027819157862551771631122530735393206028378479328851113322226758176983628848253685869942314714810584196728637386528799221735476951695857110791847320085538365358909231961046771464377561279339461225879169565729799870307030253191321167851001302577732832779978807064820943993006680702857352369312934816557726921326332554259803237360758099714999612806286348817436566283508523442222821911372985366070834568893262169200930565625522945891895738861417356723874267894523710072503826526255141847088797186146126546902551237245922388338321201486533238619632791013448215358546161669834798879047094804372427780031930065080570674915822896367142033443213341308539778457408190023035898527070539141936141928153669853611942624199284541346512518717043970559689083184984946881523312253717999732990710516366152755520080816082299373222528051206846066879207855550146766408161957476290271459662199338704993424226763728461579342533334573734379848280298141451147953888218459546778204635206988881485290535138705842438205113480165745579584731483487585984677127921174878276089540602428284416280633972188981003903276503042503739776210103172454362118950721110632919091397355354158275919889534588408893962161671914946650454356241821755136682722253000488216341945740288969676511367602831704093904606271138294003317299296156226398779002845103459351814217384851112441768655146206416591729396315191592796954648663649908600715107894291418384354471421227006733183028960077815847428320326671006373031093034984647874940568409971208840928522732605443080609364845928191087085160467431257413606827455524149756182131406022309553026958155657216525517981793164440189013275493909117602795923676619058785319248882404942635367428117280536902662174209376053494254940169206096688556750515419526965867056536255049392017486642217016395278255131766285036409751791539485929853589600090384816364588152115536210957150053897825235406796475142095428609581046513229057368482742978484798644359550429675922592952669193145048887797638604292578338732518490999320346798112059860267269556497400785169670475985939259137596274108572453047673228636793695222266906720152684438333728646150841390986606415714485085317536853546811315631952736656483786602873352439314585383504021461318689784686406146030168712158566481811996077312950356906486581889638507011714485626701979342095352940183980170519640197090274937506813103089548408089465069322554358335180853838570472606857878607676345359531460075614630263287652059529404026086764898032245423107446700092133207983079285997278448367953666783071354349584980657951760919356356957884584131630807615158796255697177697428516349115840744703315868528564867359583490509889480982929272161150991630791563626614717653993272301686077369951970968381193591730717039691498057521073287204965164300573020083520220503947033026450226653669294729648784561336580478540138897923817407736463711164293859844651612405685807932797698568708139850898014381111642775671395104770236901834690157166173831702027117647434272231415278250387348325365730310866879603949971023492865150017782892983596632272592892491733821994100018010321718005049898991405473032187355148714031034476635895757551511999460838405684794547130207163667952757329138123294076409623241689494668326475817113323791814623935476967919397619117012537160753415499773421514745792116316459114030667459942261917853760640184096334382133162522497808495693414230347120579418265682659516703681314936878139748110946174791525727731777106723404191213219646714561125447162858439488232877561121055974762103720838074455061145082416688027649172435186330095026289375259848439373487488295676433958916278462582258806938548242664099664151132473390089782936072602132140621231266526101183402831064298319631365445297871735405940128135641073304276210700186429637662578776467794259007569852046988762088088573037616479492684865155643146827099924823077748618583737780009415523504237067053141487776085898299013135423157103248708686436498276382056718597955868039709852199735159888830839415873279962463546544304824287134260807742673616393731287945782175476126548221112383363600425478918205969118020416717476800781808733630556897472403571863267673680689874810451922674563696625090634060915385138827880341670837311908524664325812388462432477171133833546083555268284806647070437510500130037074570794706006790809066393014285664285431142856367370322142491805677857723968108571229886372481804638753638567586950179982638259354219000332565988288123614399283686056127705617475391018802853577960921249516074607328954707332290590109494829442581853252390181125651341347464411918429634767055608600206427041940092190833730708179943908575135169249167507200695341778378427557005033676460177825231370694442024134226776744889495499866204119581315290041862617203351376308474062736878951690699396263682079351036122805324330927613203902264140096457414316922636730288964814175368276954234727879231795196068542187079352930094540257601027590531473409113129127451476290032080788267449063217449982092519563148301752985094219699893915473094807408544513180788769030644926689163407833202254278410002828772750752725829994826105172191820625479203472392386607709905242700458117130684021901954402047824926835817842914842356514387008897094165760805844508619264495960321568307779928401053001834916812153904170292330468073162173350456297815573198607789877130589915042009918232557103886766678039711553389796295681229848514345772088642183233566009490780071394136610725945897522777227690903307160244176115980598716932651246076996384253150158090725356174053121671351967619388513944388379037276998928818595875908290113460065240480998359316641378993797635594744223720064343625008026493223043234716939362439401304657697842549032173992237238752348598587303263519071597845403007795123012104604621202595958667727912260801362589163343619986882435175921159742352643472450673889083165703516732111122789564458754277568906655754798994926927381619524816915313897005240171535117666290488337970080399804612025405868711990993809910920284759036929859403483543423783156826550805352129039091542812845679350669225077239208707225095261666174822885049544615601141742869483447742317827731928446531890970632172697719288070711103547249229790326831891154194968996209110499093595920649714501794965790708638864908803175576682168356916168473768852321741183340124207979111455882972580487171646152545869547486670383378842127016421362399926810134098268245606926839917793403712002276831336348965235982431663096948753904264619456810997953677517799008790037888707873289195136168591038516969749478226169602069480580618424315984116879618670694321399194423918870406564797588851976371441127991847193880113070620129584235923962886349131000980972892723231752746468293611048675870402206759927128643123925917549244446743334569462276449078508443755134905829862314575038704347646149337871948453804251512841076851034944594157493922553181798769644952462869399772871629390879073679841502256746956158730303134746192998858634303007326313188592609485134640636045957959043343199448688892914934144122449697686199411419222006028291567242248536731806105341438578448011323643271099147106551680186591883245219076812973535007991939371470764854314403890281402148721758887484819746610772287860927410526921694644151722560902276347254510026853612404739620784733123296016048276075499085455705413994641607656859951804218177528658694522772208457347666125992313018849143649399128149151680965477779833600021774183409465904105454926494671206366613452407404489159783010176564234516278190287733019030936371081368125816025175394947576998264794182069175416592622921920008507965363028719888011956806683380702070757077201565760352600486210062981952753371848893126499678781794001962968217951178873136922801170346395612466356238549830489395653319619136820115573267777990618008448489501613039072160889537117461082868723384390463016533493135891431509883966198936703107834766575506647529507344514181769796533106687640641786790087153415336213818875696177786491221977896100647353186211666384089339469297036161288748148303428689968172403941901523439133684142770768827129294449533888995578610742516306596458429267317792572323994009389828244546083951020514541472757625106495724429422519891704572516625951456238910737591887559888870785792787841604044694933956978147335435395981618106134164754598570064880082211289007241297733869316742275045895555099001167167224674595372259225855058027026167125624709569787874325944490865737526618437848786846442856117320174736153712014680913743813433170288508879996891264556337471083692903173156819296816798016543091665846844816028800699433761703707893659646821626041468215996201100950053523901538447246190377444592433857594461439887469182845351427360192577595510741104072338369755390998949326737440725220104028954235304863486385895218796748907132884155111639165235986596034566918229963696788378360422370263588216203149747561309014692183020701807269534472325917834775765266755691425890513206459326295813111501045025137679651710170685654721638492250884230765791473434647407558176649179509503277376318911523793669755897771202531905575872049281817573340906015903703805981722266358027478886719207765361544866763327443472204460779343868595506945766057681878047434529195847987577987266578551103503966895980739426988196072149492500498951292942007500591438050442046657452703638609037916021114864471924720115474962434057030822359203413672827648695514360742715921134136963223115181189542368202510978287231868001174244756186256702655237831005030988299611151360323385482362006539061343336158572510847203727799035436232593299028166691009801771444195986956287966776208907925668839791160322322559309177391205059592755630793542907610659266087206357705205759617663098196225205966580220416085639879096112004714630109480374344228001548656315362526484083457795244078653802231455364711303622971717371483297966318113805014700917927340127423651049957259949161434675126644583226923742601108082383934124956174239530150127992432667556543106673787955193984067410899382681848216049351215791813874767981674978708439213417602740214776677050918502765400707092848790105731912041866088606609367290246042876683101856770118209938465248685469372890477895745783983083032771641906275080287008681895517458982674617081329170395511295627695658695211907180530399076004849212338462500932838999981066824030002190074018627927331682607277055146710710542088143142686371899431002301060582238879090782698008535091329203673405941730444711875868065235101101614052911818194566418313691962478927255123167072242522855032464552156547741095491272037527956098992745143936067974327997789828892399230348159452060993903732218200220655166407986698857004730729650910607300870626318817045185891488819315784667458658175011561958451430082404519008464735678061476253042833169230464093073913607085407001833515967896592963812960365103640238136008620997631131172968336353568229326130217852651158550407201117233537238610639769454065401491666259262260212400370635473906884293297180131993137135409385935091130396903148578719863887554907376741561665284633237925608454456258316904289781059034835103122367079026035998915736139465079591130948600684477239585875180078640783980911555816265889474625078793530744784484092120906905731341863103034654382975105103462491222678036509716103609287210771292285851330657764553724903797488824542930054773010273030020377484576249311177325373498283089644432603687950889509615179694440314095840275843683978394880046212171040404452712830625254130065758570721691900055641656808659197487672667665336827731892549253395981187723797084484996121394343564492744072740680161861658113358089222067112457100281534678556165276489310242349685351181527425214278866115121439003466514768310202240490161506272573582286511182141248044390478055518089973332226205767905772584600373300712247329486385431928306246595441670892792205198610670898139229224708023709888277972879520251103262553786174250573949661181297888412073408281977575852134373748331213636417528493380640946738547788924035206138244345529155071768992249822495763685943418108806167641518837289248722248040586037925988203628382326426426790345953957494756212661997487738477293703451816402093203270098981425053733085619006927724100710464874304561688284819968549721603027671374696109560933076578488268022454751525523836918448573175184838396988693107772061780280531058387128957975583130526299423363655588035530173099611814603058145002025241993409616042129938333922444357250043149874061754701106073526482492302587681573827879584698022669295113133817654369758933162257206020778492270091648477477796683827798130660223720706730456981113410699436481514280333568931901822822601798291433341049486866375319558226526992415495199212333316261125126797205652831044352841890323427312153696122477538522857810698208706172192193176107384417450314563095989706469172092656252063084915318333209673008436524381247990153703326215385688756377607070852537133097218325482033776192116053570504800278490605737975914628989510247686688582570064957249678027970803059196994369105043188924407095118339269224835600945097152015585467109639284014514831706776376657213791081232582044255391895508076140516548460153501546292508563098688501517833739408356707297715197094098756056817525709315525898347963774505428062580382098023636478105186593194377106490405960458114268341476042343513426460288063955900071250664580602426179166192949578777609352090612838847204461808322467017203014278585756358295812483092389337531550662137729509936244803673549985271042974028813978882049972286013468732964095637245230351484549537727286674483610844360301809844647001065091090198237947910756452081908332616063565997774397827301582381762288239661748305625216447547306559883432890895436277880103426635307644154319871342622733212401332611260453603330317915258081586008587034214994149274383040280799773806559838737855012804284473034374668844458392241174526413598431743000550648586876033526376626494704794960659536385442949267526315069278436326597884915988196166711633022053979330332785779561161794909440305832754003810402488370357846928253730612397910356694764891018203328649274022490698866927480213964432479182833243102434008350012083155108214968063639830112953643025905688233792355386727896306358534481324836119042912588081115258306722401387045014137954491499166197101737083920577302983711732047391799319049100390793336015132653230054931217904165198347412089753147817608494297174926893063377584011681197429477033457420098523304266562165513099630700874085725690100492709832493780429293204266429027792862437460181516713149978154473964488052447727695309691018125643781675878606780190008748716370838656801320366730490705165168929983586174498281301786719939006322605072428813786805675933717684929348975191283050419253812942911237172796613192541024469201359134352668492183283550881392928469434329611854928166461300605789362118692221357365127893267556059149699816816635628423053204823930389701210399347210866813117446686077192868519401086225843960206969210885883180125170278737890802333229393245269680354836755385093357642203134227059053734508926424603347651389121676298645594155255518009992950749935693820532804709497040254309933997091405290873477090295128912043316148032686468274409805026193205098469569577501765215036489803902679373319697427493860575846818862766879381374146899933612204621251026764423786225001650948048494446073690653065220509805612965167145260487508488575044350149241071510867634365496416479412446291367737021333490235945847381442906015584005841271294993113798114184192298936010065106791330226048235177276002034991955864228718117208787998336686596852531935697907345426488357671225106834087502786229367025507562993317990924308352182622871856384910351250511287729609092014048106851285792861857063549296095593838846441059021491542579187105133959475672729531155824396042245620342311092495088126911393242620136743196855899402990508199879896525816669901871883758321816180734772612979993514392265750274055414145166876923808614579131527389972672340535073082781851400240869296225109650711912355869679148216568979703092358762007191326991961014181891946151739777627237407746555258371105112303008615692317567762789096549844149838359561994706682139571045237908387407041865082254078501374420190783572630791160899159210194841617548981672014583764781171991489801801402062391718928994590202710287634004886462889832686369439024313780995196299266329727524847250194752038697179005978785807576279456766459760099183103002500140755812812904623483318291711989992222598965006845179256766373076065540014654365283080869502522936392586647251276479168372677377978443798120237452613514263463256160316900157040942662823767188078140830675301306248762059433605201684093341542430394802835519430241949660813697489041313756177825473882066358409462388468030745571387276460263597880316580752881656875065590393036334561709817089148580214468200524539149584146998155270493913374103610828766855483439603573383828889626842099325840882731582140661632397957033230242634772467734660145542649798307339624207044946672421310028972067778893083160969699457987288623962063788993024630014487525667480201651412009330537512920412709616386273808598793216219352895664923699537631685061382691883824096939855157773510915882506988266620769599150964781748414875837363503055815952665687159402273767909917805459983180616406095901910507222338888661071417863062335899089922205297559884805883566331569903828164679092388114806222999905540329492782720937307726465309682041401036110329449807814406676981242573540701305680066383282839378379441412982061780894693273867218850074038873548366748881346393192067493797723848209595384495534901091579826142024413460983401284370996101438168423523023129198397042711301005369374034329877961075940121346313687479433080056410818506838187364251917984736439740196868553255806774918510693545620646660216653880660799900300098129115214561878223955861630410517938720130614161313372399953367723463414980491617069606487543214364083090329485361255687015064900117801167422381216803031991505683649919597215538172184633876118196934078647403153211273473986526971850597727372371182042643453846714613480573052354782467761017574979476801952550191007104685263935982212341034639902806453695934481183154551973716031838702511917111039119438848309634855600342683178318035648945548392868972506219666191994010627440332220706207218237954918281803218694370492132987609546132355012182382573541841357226764934418579470880910324202644316321916368233071909815178476211622855525593000182555096932727272043594644051090828773512237272997576341982616237791589028810564249676818004887322840260215995625799234165652050733893912219482984077018579652288738530405036422934835496787094357582128408806515606417429263429511752623964734024009176685946408554954493247695181534624433862844661738354014465118097826407824932532714977205687348401933823698352191514403069478423900086442364098335035478552478401569489824977058449051036206987072246161525171977415330168950708170116145663222929857380081138554391906402890632167832316883276725015087102181183310283571548591657169665783408921077474858463216580502314961176574069083493748141630095348178442521520679455044527687235044209778293060967152640806652156030588863133284157497916248807311733169355702523439137470174745770302652442586910457959763513577776568878614887761484010390406186892474371826383164891118943418727581658459916407906172325888040071482321180308840070278128768835959969921735433411740825313116291786811486894402882066811743613423919053568117214379324146913529189679874191258809921107370086164495500064705821261569825536315056337070829022957079839148818986853860599547339918209623355691317091361709454213241930696013200158178489961766297776778078487370774560983459761198333288928372556249176463837729402234271669193565293358857387049852443737424546479885682508127454671659115931117799253909693060996834294193916032589296674542098205689013158528155466605340811078586634732665850088859946340415720673289203533483673225113412001499078483582466973586233318624782531191603342380487173134124211618154123821596133066936176306922656619532919864622864757384137670321812209779252274983369831296789037070457661243376794523144216693373407814480070457680377582504844579469955841177033488569783313403549464093888160208014057741444161319720605120574618404908908901664751224244151029662797014606008223850823125982674584078653885231014571885361124775641959971827572680643931496820520601007401794790800168555827269046165634510774093915056593355711327664281516422520972311509255906908884093357792001683238485529753990661167561136074021428327457441609473415210253647081452582129962496308004816975222332322107730146266909511289244377353331616855869175124986089413414456360700524941116044039611032246676275434770286234328607588794758215544834145803426724797406217762727401547703065142309343181108253218311285371433625443478811210810474519356235643100282556242910933684995568753375493947744318046891027515066025751450317850562332403401338203943113247465714031124307722567833520443817117702829042977457036752623535834489446463985202373189020602469432135664574534630920515816006736081093156778252633666421344566228663121775255161306506436323315995077995854598973510993636279244212994705956776583775346562653920635812513317372216603901955733541006941783005712099128607676069852268052911923802559739476742026574269207891627574180091935032353132913018263072197455029418716319858614244761197968404724935096540220736604544605045647038174204699533532710360625017410272917730972052539513114464428924967876971465724955325462834069091505990230381180613619246820188644568271440419232818725806279982320164148631287816591464826209144362853406359963717555191858623358358350884180870376472401803171247947339713266931244630627304457235513649345503492176640576210549087763334565580222294035295931992869653691896305641234474271907213670980557983663467772557384676921836598578287266837512626025733475599334163555831755037568263002724761610834569569635357520814076178131688193580113510508178551457277112206672764353927563377112039404999963972313378018383077322571104592626207250944266208646254381504987620649403114087243210232424125162447171790682733022180704499730580913964437215468870591751760529410148510927637318934179067540508667593142368341617881625030226249231925687745333272730941014998543998817938206965464248450693292212897211885421989323409127073371232248358239584218683139703882249793653964872742510964116012560783826278149451463912419569632085458080938715995323703091506442148312208391161074061931123739447749117164353900141515801567507400214771036814608563825416158227554620682191209080868564597607965242486625334770340372311676785967030280523326914591938360493445906034750238754973662397067272416647642386243156042332304585908484239280652472425088138290543115062134585348851868430269398167221218398531121001704312320204288932017982355356801728419634649668781382512854585239401599323851163887096595848276683938946218137367421788746486852944070919792760658914469529943938147298067675631202250853393394116581859078254404017824754435909979856516952985742430743521061573587083956127175327774019994284094085251884387989566121320813283587167454034450531833349983465040161714441184232959691556989456383402375244669751219902238291698371088568156941434229196474614646973619473681289829352442499894816162264483584051651615419992571843224674140232368016676091082775269573116278775282481163296880307695920229186486757317975853481005297141802196185682541530173360135600590425745246246839736723045003635839647354444484012301930990801168591072117599814200310149753950114161897608933525087708002305336626137753516427704428066567059001378182984619659906226980393233638582349137858035629929437078631360171869375286077197506104318763329815566020520131784932984530182882964773853288516946001370484587013753885835350842082836034545791921560622572684883452483613286214953281764636378659632430699967988287970644862893409823497877093680130665213348141606783407006986408739987633155981849181028823507936104268193037206587391898297846190321454517036127343373426429901378767200360956635754625066463003564871509180780957319189510787975753782166157942845993293049353933394607077825277617745644065374762315087186299016477651695281492970774374322839449658535212331307963051913623360932021088046866755535999715748734256569698656982019246730383600303431353576292503638633819056092417527371916156451127974065394424096519495862697433381458873581229648009012325411399669098428282714324638959268436996894221602989735760760184157077265856787639158145426209746353118237161755899156739417023913634158516330905431871920338135471148940900193843398655290971827431756637981084974772309862868982164040433614270092391685031134745815549477057743164125675003214307267024205961539325277825443824393298455781694175042646664056492664508593888097486390155629954090845850612435867034393847075472433593721780191007895732279638400389847369169659971938116074283460609571239604017234448947139011333654003974485427367076932855052001215918626088022908758261170416294789099286697204300921319376524122545083850982046328613931000480912276375912709986024220550274055451159900145057547659590485909841220987532807620452949990292057698405489042087194588561906693377563806553156503305356269832014324145609680935715940448243942699418829869319367136419174688791335582330324757224307618492119951072960899482988577535220572558824987870224063935915343246526962573339119185478508453404345907228485277807679286570311571143059909824470607079830703302152825857171579796703656633064617946306882114042018935913157272420143075294133813983600281056560082460546750439221086167005224874413518816773077483551963449582253667356631789673295396945006515686151233512436473783523203915723633899245908753812806631939688965143775838026705115684951443910888695791440466099497426032847163412637358016772168627511616556603242339640143999669560632318765404302508153276788212503367074067755062177990627821112387310483704333545281446638363149223139096239227504579056801095984202370520370478437518354254556203973759175720866091522332589126999452670289896651461470443332714344617602585412705429745458821997425716290074501984101732408394087889387814770835105500795694887425895973376992880763434292263214829075960876261464760850626276882874350293547167260084735933522131308670854287767744916174128665723511444765636270955472183797597118231049784642455577628193478461248896743662957414581492656845968007076559190837903475491298913834849103866678706124235115824786257026966378455728292584353256260643389189038515124108094839449530798451702175806951981116700293059660129038784747370798342059199128394982348546225388959860511475486379026612285624428823361315919877601234291220111634824484549392447216885428829061467223241749394574598979067833104570445820392340645126513146426711131685775595913097763216092591913838437827873764743093730489461620814282414829396451509024718176632393920592560160033950921759697230775805926666387719994172194456895653400158965412042478844460745744086506152966394296473629624080608573914140625419378684018272276944719497238297272478856923139649780683427190619956871956390700590885202439111776785707412370660570572331343722326116397947372656192130262634336414833662342717136252012870733961739836773952668908025618773996317308253818667116666061276175048865082273551130569664887350662529741484358363114418396437238959550014701618051848936386747168887479627510975722535659220695639384714808829313270213186443126271645747174826811538536557650706213115476046959236562807761472095855685836540775405998728376753771834969308763692036365506998871181431020072395140984648850346413097795474798135734112718636077488410116154316762728724702976115592256775295692033582863395085080347706440723528643744261181431161368537611577585683125848800410277977690752028805666446348655313617370097540948888026535293563621938912463277925598452405168844696107860002268168728019215870612221108196361103195136830186862691805342349203100062059773037240961901189529858969841240186149672974909876452423916173843103314429181012502260471817610190070869770200516048473273422752751145398280589427124984351343476150813193859983321953412964712177383808646977620706641723341375104538083562612537820077472602845302743323627343251739156326439896815899639222458573528619935669273265657564234442263861931121327033978984121622515806814755018005217488133416280986114533691100815671127006824174186388462563610895074518901771901470201309232654325536792366135520080662068962828018384266701442677234786339522537416943097866277605197571896152382900244570690424674211108163426538690645617816092750887711535934903695515220421897354677330289359750177232331584180876058720935338235789625087586812563486959131461439512753640664527119223266898848698053123011856508026559333551208831763847402164808433559785363366399076670127907890443249342295572569947092653659460362400962322687809011432116728616624115515391872916296239148972481974546118948790539640493996967756984144351856236515731450420310729549748175202888479078185950641746163778783882340161341729697207321748429119957212413937577244185271305074269312783864635014893332817079224491915400393484941530179967601365841974209454207283485013561856928766004278335237065805651800580763044615622600128546505599306951040924475074333073498413419044060435257506457861660854600343588560048618162013828371797318616113896514877577735408014864507353713598091716295243877680962196629635451179136109323975684587236229294989575321631152027159706465737375873490020769108948287235989319148639948899353488162817640385942274834659032061165060326665355926342813393885753973477579797549730333431588542048942394405805266407534158920305464435161525131001415485716919305323307752303917507498968055883223557461373233280420146673240529372057251571483110103439485036494779861517251702239200808724557581402163908146086311977292843483922693227533656874065296631648495386438736870234865015770952470330024222635594350765138944209336851408631120466939454421487228123437135303007150169419926882399895940881647438487604311801471468857321562561398793749805056515479514395731803758417353629258104681807185692398293478549548095039908911908169830848242771077913657912093166017379802570933454697945481202474850216299613662166601502017040279444413773081291269736516182063301683790039413909426788768750975065583232778703790883978351729291842760943194660978997707442233399298109739037806459476474192908069743480213625417250388012182646820863710437581100425296609408488539343830782515702503989426526712517231461722707530721495571492064868605821096281516038517031487343388363010741379631962574990851891883845088841968702107897633161926870242868909834845437815670480269658018093150775530023787100875464054656075302071446338757524579982039568651214806465763482908896486258224166160010816275657060096295726060760391749128510218472964882295839737833811132779363583058642130602148348342970625062233056147631863830929094607489826212215009555612763574701076269223253835202721405064281212014894714521119907366109536032015983115913886061454883192798667032726633751465068622237247465185574517319165279964309237933132762595047499005590509968321219117952877656580882036424155043556706367445026337062075320030752905321220882483089372017503886322153134507383740041504297447890247465720113507706697397440560737456583622495969655712338696981141944225949970939187302500527182234609871413476132987769099872975205861195062502198112427144697534804388921559156228395995936646572159241014410015005990637502935221443175352517920035324640357000361039622461226647323871289328640474545819424923069268508215352944586702328645890349200985900118117692100604684273769994792853462822893822124195409006281491883313720802316619919240195222700111788036941864019647715559273961909908265409170512934151463713289278515394672682702891448371013156676906438801865103209786632022253763671654431582874915864081327014097930641742694828902872716046615060902969271148299987672975852182588720277986558452285602750164878127636244265407688827473731811603540131036903944089828017468393744158683877749019124401657450620086553058248346643416415756993520140522281586974161604676166831834284442279567657716911234300768603180144001799232679819833444249801662881053490656976776031530973964742959796170105460465385325635348189712474565534286880414447607275232537069552472101660347951841147501939321211821310169048700902841102597003097471516457632563785695368750644324830331791269859569265994193939151353525343081225228638478055082721932801107300174001302753813920160447636496344713748013574609628191562129682215317269836477483238731879463600787219475048803666530002191773118314458088407872085234095671872187896735182390469934335778571819186453870167526113670336968465857108207259704291272685535700618684301422396715715521580025483000376576706830272326031138803749146132955165983731158036795996025567478223163900160027598953031790737915112629865710036113582035264498873082110348798957129776587915092978435305347356911010018770781958209551297846969904470765749481892444370048690774275801338454897152984355378092124847690434604684957703374729824770538836817437046426704905036256461206092585323579431018029751995608755437357324154928759463331182269866631719111942847278075818320072583883753078257511237442924125013739937484003322951444914641476897121848154320814015015881794220853712005211323185311719772392261905649704050003313803230100108255014837564397822891318574974054136886449728959813649994655452906327183816557647063641650869068030778776971512036651881252417654677328000798989707180270575411960301328748864179063384187761102128227271472073954140365326960435435375037699944331807545720598046250726033490948847638864775862586382300618163100148402069962427892792306973932388737249624957969465725077101306370659980583749154004340884897639164615985332372404227158613676710871262949060413056937781107102179606731478801820439259147607504665865034630162903499803253345798759375047520224999272595227093994694392172822045406425000957235383792813675640317196569841393152142054821516803111834154294891601721589940188409179173109394259479923066448126553364920183593718153351255757750532443290294474261055836870892990368904518022020860299685094569210795846891667374433984193667725965754247782050896513301023138970444639508932447374434744316718489383480433739749001582246939727154032979476772073729761512973614748048976608376039261816100255903354227550804016011868202782153869079722403842784680593080060227509147237166159330994234476952508830498628658257712642214701393160192442675093726070997610942625936848729139633988256834161625214575911642482370528045390552405201468426057585203376620261909508963758465551758655679645464498154731417225953334789539651717024471842337168162635758869410558753890895677950401548108556575369492036917156655344081115062568947271349121168926221495103460496029443621514852067172286141634626831205409558518709244945460960056113690735150312450099809318184649908027284408598161688950866389796553906874666142443217166560385188130372371335843835300658825020656810002267424893290402021070640716909152809118004001360048377000249629990252907072000117719660613868863692309245892986369305836476131078756438106472701112619697368356241126166418485266410080383513287064220963878237752049919605924064114533897265090903183436748416053709084912961675065063872202654003209660576264851172625365921655307016232313477729883641534047445575839996948571554776972361980523967839825874968527430368877443219214822587293437320518210670411191462672982124173805019582784398094430567467596260013537734590380282610261901540434020859258312736497061009559963504175855252696238225294888619175030780026525828673539076759550566337549021313037948758830237905221945878720931564240056542961921049435920333195976774768158002639997248947336200133583867501843269660239027269742215413043050876813199809679973252332463766722331096055216196274380547680758474220910938257721770565093800761282463590746094868009722184656204582163341359433076631264730275537199560579582678308366597568342330470529535998398595912191551131995157374612257774327859477808833151757152082577693296693711092260583686598711579522225576121449705787701811958921997110651511394280899848205357455954854102535055506856618281875217213847296628298349846296378234432606675423264559500949724283619853425632697134440016724298203393183908854615996555174467712465426794968409928828269458355345142121488156570918827260336181480914791607193771996395427821550556231785518054739188497282895194326211183464979575560754488371832884191778569084282959184684493350140360647782089491195656819969302533219906705351226408273506578453750436253840688847468839174016069197914099859781720929010585492253743600916332726588722144173047950798013324986738345904778863370939189384460368770543535440430872747942290007422427227042197054931277713239432216797447244445568995874828677945307347974201204349167459824444449562029169512587217813408171857591887283654575760134991170116213517688598396764700937789799169989200544322468771000826845164892360273307168031068572347262675194038160704859790590574271141548242244650133738786059193876312319122172728058877626477275070895523090184117472693854849227548406468434237947286033511327955089263501048493857339228196407903641412889909093367194205162442397631611556973853606276271310540126887240950006446085229534071772418046360562999295969133429874438241643500047790634656358641311319160776060241726448464272096223932121242539189908154947241930906895447222604133522005466175230475507394543303026415793914922916253252972503332356138219146303704052244121478500596646939899483715299659495585654384846727350696784376941070373331041080261216308349560139709281579808076443424881863809976797031227578190228543538259651447930387641943131180885714794971303206867589079549531138186059814535272635312798070208489543006790231156016682050570842669759293168779433184117085841236334520074579052025529000928752500325871855205441222202335786750728123280548471437883521626221927905980320076305249276002085288195087733586799858292848518151799140366121884457789023265715246812979563753997943792272065015393186337138504628995425226257584660501792807234482578719626088905569947194197240817776722184172100186311776243328157671324439970741488835257715895874590513661833045789285570576319652215940682923498211118424543370593085916312181719040439237834163632338081778926265785652394270261099279994606190663667279838414670287898088958744627212736716694702926960818233046675974267538446725106701347956469099831833511925145531444727597275121398522144520364376513145957203867562521461086258548119596459441721535120052157655752055128780529099508056258970069491620957628964252063146568853571345157508942650628359476798139797033258405949585077083409967011991169190154933454765375056557837749187370110332729217137454429614888512434391198903229545281920627645701958066494575428157372082290354289192098405806356114927768243656893730763150853397926576086257532728600257908734192332608830946875037292430859833121432720833688071022634385271010322102084489822647435603121609059070928656708055986395012312902772871042468982504402594734834946767627928372721529015503001826125371768548728198409419222981319877540996162045841327035642563209047942762366909940021546495745089097557862445323388449870325670690282341256878169466368475011527116605274568338525211176817704252341375683314053587382783321036445983026766806271371075799032919633458293205021839966499888737112412762521007088727065424407133582398942975714063495939474846143070993204944353006826758315283783808483199931784885956997517122242518436301033983933056678034848771173661175148473199785418143303013217984699139302231458428407867948933409151403547688103724783666393793249413977424049688458005660962463726076435169095094221961838428424194928410308657976919855490763345772560042235575369194960370371550642062828336958907492767756962621502549002827563978371627841945111767028142530193907452848501333422863254604944334152931515254109041215778135326550751613106317386815078355965956045514494165427278652287818745255886040321861284569106284786650758680115304600285161838785586295438751887708418870270642181235570233615318223304461261964698545761996183543098106852215422851240274945353676713091469024277770881498699544048453383413463369560642183724106262030521252520767390189777821123135511417337329438324874508958040222670529434616990282287608540637528933522783560463682541082542404970872878599970393217420153545864934390320747677164326440149935183424060389704913891205757138100038870204044482657566536334249544503473586411689058395609182688164239437427483491172261841895541305239944838842187427499992220894755175092806594956391754065219546342831992955107060433629810220708908312696706415251044323452401582121170240853944682104748078594460894844441721026285089976537449364050858578102783550871440967857719260633180488963953659762698346633598019011515263066721598485584714664385447366986243282852566690495446657518348268363211055646877506583623531664434490059440253829548079767652299990080358422106149954463886876031660392894751992264947518822621424214026443544451950137182170281925971740902537878020787159549706110375374864728991537505395339976663207477125676673654267031677875648121063921684357616148342589229531736682297028970344261878428446852525333414857395141265821310885552537455892910978146541976027764798765807294269688026627441989227897324527101851034054802603110187025071328724790778306349037319458198920116932658695103165491667610864336382188931680340699135808152272149614701967682789869922766418307753883217973784736021683968984246278392011553363168470535188382674228510195413794307782939862343929460732229712180275619502148808979380950204149188370029423648634330418910465611473749893399249722931655489464484735420118268984201260813514181333173684756988780836648616467842132650707827271903157499304025537209519412679009004166919357600099467260210365857257667630050181568815829292908954255379760602532687169625908405886569825829281440822942892869421706737975359422791669468881755030889941921804406075914773103722981208701372572840760283336517393700007185035428609329374809883703337055423603312315337309723358565220064862639707746193491756410512918421107453246953057813078615165277111742152627042275475216958133809558734723448699233561784178507844665352160053470415990662531220439504501813944012351338388068239558568110319719557572894563132071976430442344408672417791188135297817565448310527174586404947447013510604114651228821640249882815751266000895002196286485589514998745049781116147326168476608648096060608207361164991745108316033351562886726940476491076630081192376102382424187255318581761292532738151286850022175419468809587173677659905697942898651419181301124025681808942744397590919765483862726000002545566118570889914604297762604697832805951434029125844117553210930866826192355173884662711918624818703523327792329353800678783670506466150749630209716566149073338440643435047086041816263437379392425405374114128125624387336903521975804826075544619840477736456633411527770312440275808641159282480345061330105313994391156922143821446012040189860186121089174573558451409030825458207402113609218877719466210713374263011714082694367640510043741646985366899592325837840701203990346456960665591960753409137803685251291418969091679423589890863106878551095510389238611123033117218208721370211024283389031899916762658936382670029753569758471391823341448442985031208361413981950198988702145741595019308014706451642437720494807799971766463915307320060021981064441638042943673651419936714632252345783825968632398182408041495363601963525958324733647954690048908669281031164747132240422399205657241782677743846803025160520522398956297641387930559202609558274713415224836338626268843209988696867781461487123704834898092256596648930396720652837982681908521606973866969785424120281157201538215072543162927682368740496803862553982389339563035236558494049264071857679857991436226012850733331133964696425006430854274026566035564939023565406561496827103278426441368566054809540088211393136917545523111137548459676917710664628555271940900531159729265610007334781842683242571344137700567278963377445846389952045253207212567790410995156679271810766092720482091279806307198844256109847162761365533322169635833982846423792017469959519395269190774942807104653759713532462508448236592922696294615582786532085069321109091635640879121753033449426372962011622429241691161474120726991860407180508053724306231118812973543027235867358557490112761071967756784120285814324556075045216842428387038696820912013381485401049603106808117203499375216975204918747459028903635704241497513163160808176221107159122111114501722540046100502887895896617730555900255430282576467497487927002400506462970635857301304361562665602620557182084307533396028749831082213404974165592525014916626129551714400383317235055438758702572086155719796142211983584784781706062291735872357394676068632090603376976891062958931562841801648261947205142050275463980635831514995948526700484216572159612297102592766618077322465630037877641580124432773148777943606878356322122677122996798167781226058501690991617938592937687685753678273684167617497701171349412268568552408448908320412987405830594204010522240775927983455925444967212970223351524454977545490803842311710741321828950653850538744635254967354342469767471510724642954567150014631262428409219619782520442792888452406722663415764225026428237039453808524415256628607835566879871033171188059764030318212599897848493604900182219394895016035503821711338848959616951824824652199895348839140709612517859714317978548468770236153315395504466003206558259700063409856611700695959268083122536762398819039568793685299001678745778307726078401687647031841820088140320467914003060840390906497687396515398754326443381593125051178012105677345871120611587951396152546919644770317499373152191574491675474998896478455672772036295297542801487535635138953135939163172562414472680187097610445500015928819039128305463868810920107226882119612973447348878517769123636104253775300381893685784684669197079520633129742490653910386982848258084598236077447591497351120680041749132579010435058822355228072027329579581045521342502045907899669610442988919388776973082989939666338038736617914694671231861758839992333231260080324291081371945667160987565986065437346086476830294373317883090076324483622614060865286379245212167722282406827332808875065253105336443557382441017838794014778942203826311066970321334047369854151808391824123399710390371429029537322609770133600864133227047511027020563501888104637873973851280534381925895216600840098196380317515148561295797035799546554685820153796127322404149743984694831120467293640797412416698275910714819579883387498143445135001437758866682639290572688464795772476733531214903113391148784438841111950722118221749146550893524256108068294533927726649673507999146826386241813146300571069035294238716003695778714289751652603182073229719941004260997608825732688296448204879802003368308563395632594155953790094740478912029843260727247616561216053684632035629700762172284588141542291661651331935947347653197493831681770965296645561674313285414538977257513929859068704203257420596615841118651574404835298867440910559131564570584320864085421606158080117504415591924045426722400766801284834578808385896402887399281191149614820835499110511964968873103534845081083272360523766863948441289978755151807446145644666868027715004132971387982327133488382505804505796757257560306364983387266739886999660584430290487576791259450284533463471236370769002569134057928845869278199370705877908882949605151616248540852876103931640468619031605548133295357251000231639271490670718659289730945299562588862203022747070930501203598120778137195719867095137786777840292652863625604670955540375971604533262022808421221993342414752444039545655792349186684692549746257406377096806521673188023015516036316722180658920081646959233049306779601654403863830318165008081532091097669645182445814780148928214301584025433903225605420933580377270735538232454975458107318859922629922060248891834450449551000443498760646340477630267224781139442278088072310711025967992316240814786568927202628709953993224529189260326888585747189555845136215091864697519576513271409406431544122498747925096652974731298624335249147278661860886971610444474717206091325348161009572425790571131398734005791750528863912727129879791611975137257271295828794315059910979282740943553371892579835384483884097892502224656787270124966405334682808617627581231090081390525844800814933859899450613826280512518122625167597468447166610919294958612067102831932607851498582472536496759709194351882862277629754934853786791190678061793644038321385629167704582040023669988571221061076231004386774793320479288163701549367842257777263037242676621691160645596429389790570005744757495929589576433079980625891121131987649595537588234996010482776410057106832170651993986375736063132638301828406377567053781551478660252258193659104767175314118986638366520709853245107900822660054010974593272026933841716726072552970628981480531078889590267453482739356186067867982843289398080811753826426091491074160753896830062238256995981613413844651619182985284720698549539208600891660515472958288679311334427683221070749182907698827146524696209854019538340305277972696439247578589725911140289016457770064374727335146011109773284354996952176426002160785625108276000376889545165076527323835606473670822267380125527069921695262210801753852017393104253645351748014949808876578611836378476370008128572058008667174236504225334446467054864982944929188710861054694906971586976333103038599522304374971393486304368751952746882214822028999552664420474469751327602569870110570110675437200690487095679371558126706484975157036530726525661920550621195088960938273702173752460455561280833950516428449145018513627194945296056318390662757377355787472490922677215323891080197013048662143965052631530388782126363900215273150802352556857458725652530465990291285757408355673286422648025008567007410581357558496333162823048424328660663470785166889978348885029973798441047799407644903792088626632762246657296407301513011052250105872107670649235843025575446619225303135081727372959087777156851993120926256092987173317109845740595085572803214705730429796414979632078088042381585955466513319392848604485216678188360427828871740871590224988801835424171898548253363906549846154647491384158502066736447087405742411502486703608968965247704493557426871364575288883882156099106406135180957906260228908006047970676477227293660218734438395792809218964463150600488684793410104697554641697344728416648076184819735723964807181123641114810416498371338202508611062808786154261949836435318603817635890045076518374314177171804493832704729903854602639275512549131200289424631519823988424867927207672511007336125158420567973803379377037929470922963599905482403587211092090772456287240063296842727820314542770680186994218874211522992502437076203817918719901172188453002216252265572369598690004919101078868105764016917184981391416998958462005269557842968930975771580773820421374328323621520269689318778575363583820971548894109908341916579082185033534401813057329919577775268580081008723828649435909204869739636765911107618785898180746972913342480681931460554744464977118783431124457288440228712765542182475461671104526423432768254984748480084910604816035239565755676757160779463898889313302454004563276948652799866018465892765012799309743047586091092499511032851512605374977013020076163933204710401575662785693780957454729828308373730511432238933723133585110036854585084513620485029436013052753414937937797580180627967067513853221710578547250419221913845174251333513843872264864257780188322132209498174265536625314217376766375122542432310093204813925624531549340066999155025762464503043112542902972080887612596587613072298606351758823353456672079621690908135124571457040745202312332150646645583904185719046922967042596114759609571617655916898132407190743717079986785091323443712866963353103115310472856420915699898787503611666147907816949013198919457681406831734555406040104326514463512501532418321293816385297725540888990299015116835015072665727771402104073612198700759171948740716165887943543769551161859949280779253457980726286230687338370473408012419830649146381301418736059780863879653659297287990431822895242157037192965133264519727673539415427664685240154265863271220770110552199429180620218861528203433051920087537641054564041276721333282357663974966296965709250286218322604334399768961806415282092294972168241427262314488371229821746304630498734215273396638883246151607951496013944689879379649762591724682100266397013125474401040049981777314730432835431576428612177914061303173740626653022323420003680830564321997448004005848917174321799118611573992581813545877361596548255101562077277741533144892760873041886042736632374651275101650505859949765908090111908377498319310332690230913502626275223290914033234019190929057385052675828167668745992535463611389664547799962042301129048180524078530073933919071322230989606719998475379521836237763732264605093116536030916212680760688117118659432430309569996785033323201710159557286368776551944746943281226589988467032275716376469976214652989611362061909718736562474298737333458619154113629650685818056388612399316797416659806368686542631512101284660915585179876395581685881256077277059685811197932864012510866351065267156837136514415360283562550140208673373374178717131596122880332646327226106577845963915461924526043568120991379181332869371786054274853565298280243823841321796901710889862471146148180296383601402090979983982296301102174010383668823950168824736328981130569845730560354175496811502591101547489736802553241363256252287846534720403951930294725218302913993861608656386139915791732441861103251929736973844234976856658035237843395386619783262268800661323339428749158152665616562351474158874500202939664341852423156129681035828318218501885167593962915105090907451370096225827938009690813262804385068123515705488192431458691779325606036614027579075374067155655065724971189442623564587946521768193452901330969975519440346540125968697256604237118813127849807290098731503414967540828490860551439830676745029563032115521035303491192381722281451063443848095360680714972735197149330764899696343006557273918181945211353788310791451594049260001383073093317764145052573589485314697501973394830342023004021565723980196269468696083134532818895376404764569525390727071367084796330571956020217243755469720536725420493656243195982350442810596459302354871422121496819401879348988483335359356265973325138737622526266513973027764852769861468828920262342959886735735436157687891831392235638072136533270639353536036457522061613251740099669320384897401982569321198053894574926203804629699069594479122380887968273010096444978602071396729649105464979264979054795923326604989628977060583985124992060471330546827222406809703932414545405270398172460293043737723427426762234901134991935680300522251810323178982296642485571918675580457534865765881449986931377154895882172207302893715330507393324606062188358555102300948309604007754799139660865026445959870201528524476990102748238978143937502863384170645655476684438974276927448360155181523414068215258494341145041067203633967320425759904255614424207435892955426019532585422136437607642224076498993791477754947789368393092131829900303777837138241439516203370710162225724521548418384428412274629105066814438630920891451813083332448937893968101943708948602354853828889724439384961214683746673247467959941058057900528321795603150217266414507151467093487205059548059527530312296303536349870697633146537802497009033073567017550741374918020229893048657685884198586367714581040185377853395631980123493213398131066216578154262182020590673555674063755843949144456400230329427371754022699922059936723137539630845343810033119861471119564490778224742413011895335738433094876752131185947211429723063540018378668063526472782007016895794778737138284658402665801612142817640045543970203028803059619406285975095835381312643830269164025464185158702218265042088782587575318847717184294020640541374178850727186517372460416907316062151080385667471745023288455399473125215949622774699344248651132577470374299660530606328704693437588819388222003543016035053921221275951862953279597789537303758900233210376546711388392196191029344573340022169957011254552937446417823088080542976020951454665148303680361971893104443014347583689955606033423999162997347837016808362780187412317249008151405148945466140556074855766010324897265008823440884443938647203660419820975018818262290106557900072075047433585015129752379343779119143699194470246716722737980364089894890631052000404232062772960834618722470255014876437581925025514897313067802176593030100957463908405068291875399425258310756138797660752540540950484046392314935994832555435395981246822174163501823821850790480315890901742460222419053397468078650137971763043541268243322716168687652230512520406163984498736960683026372503096784231990578637746520827395694373759982869130479475307810371397112464937984910556996107814965970783098915786882596898488458221819762561558273050274681619156886807643853584037671225402677824239988946298247417744087531853007656888443998730960306533771831833928267728473390196171200039182586922819821067556573870197073024441789095432082756514271852201669268079331251604867824693731053379390249834332987304131385116530628988108166540878945612511072690820317933500515417208376210149004160332965632938231700134385034300018113216501637516579248683654827530966366901728757002504674240146307160400792742740689798860713133247972817320172299040960814972285127371877215545652578656788555416060028051843732275667689666822208147084696452250355565387396824210694797159642231006512128099915126514964349668501990945826803975318850824436645278631094790432673356071231988644248155222974229050994861995687140081831081915987020957552523643493990749425439449730470917996906024889471993589788559364893010594528925173822038855666968685810371624465642375185605149195717468439350456264626786096895812285718161165515427880216729711880755404027259068617681127399106534425785478592060880361582849711120027062322942276135518918603719243216967338928147572775713781096461035600463168352714502385178794898529562905524247547771908748690736044010070070447608898596116841213559302233713451180944394993771956881441244818346798985143785543612939112381171778979821710904566420825884936684480845730805245534225817246719747734525961506959509044436445627958066060091269601798238284717339297101930774210246996031253282235189076838413671051951435850357154165133067079633260635578493474831897067365712303994177596330530898360725647687828066158647599905110537852633130600575954236593052375580876436050775809416410410181890027528385545926674237882406354933845113854841967414201715065042173264107917856845546791056114051881316476941405761281820273530861224800998782099442508651017589805747083292087311513913797275522072020909568383902920192723295774741241969400151974724686403638897374201156423485314669290761292048208796570832630264137151818618599163107760244843156487369973697935573400867632717841712606513311002441611849987788293108325481233189568371923299393099284552874686504672239966527482772340828732329668060232088611075251426744006454909207781597531578809522043815327014622471594417881045147736248583761032033333974298298581804226075269464459565727502916878056804273934864427188775592975674960379420966795582279171792079342741776310395191477484370723947864107189070048632381807648408134019511387530372340446241542812231596153002464878103068001327090421547911303272391658981059846863764658727254575532007958862054064308382556150187634893543323002889078326157959197498274855092964588698514523709377001287399627416906340658803684148763634136992492125162028205267467775117669602715852612293288448444064639737573392993601346163856748366151697110181000517649578979757926259870962226120936954389462143357478260507731219730904220108120537722065387004243647388531804700087084639378781521850874891762349799642079563423225656860173489135543034908186419850924547498002421814632821917969442323962779258926263216779288018264512645787864077210349718931564989334967872612598399632847677986578608656790989956641535938538290562738011520180490057456430534807283317172444905435797756937730258888979263245462384129987987047229831838334792530486452690043235867265244893502275895567224694939406344575652083417357269192938721946812398680849122823807420867566019113873251584479018004253818519480277477664760394812161424478463368449545162015073669450750842434751496431534103635441229726839814500366597799676404909362578475954104588455712087272157849013710939228028525248299056653681126153135915903046834977798462093810534914632259157406351511373521892417318570144390577792648667127190148011615569495580418420816429615171585961910307093551529069199795462105847104358703948708725283455275753396121856373333022068852544154553062786913110943838691738012191505423897822823723040555942750013290111955296100351262313872959224129770210830744320000080765181189003837525189130761980158943233456880022040631232074508390429365097841487462090941442401314944842628738289355433784820786285745743938544734307756086263565050864874841005292753387348797762909751331302758519391537303018627139492916448495688173665707494275713631330481761730379995298283312980539567223991264402053805395035288264701224478330069956476479917765399218810126654596418110373228731571553325108956771357831075086668155833018141909503932498153013381540368126788092927204244742239649898745908348007962700523398433115538142489500475642017702688701246349653738882234862067327769772513730683503274282375509955508667208699130422201688994569891854906611680882490595504169467658564222001215277280675087242320748395540264315466321310104145785463649939479128018253656992979767571290122904454289071002097763832798512534207882424982524278945819134443831725814929140420312101827192591817665137749359347175797426571676740236764446303562608717822455564154300167791207673945230784465081661775487338594396325345465992742117935438220218184462012886653650888606212434698585176969687838659813410370972779024961230898178393696022241511859433950248463665212050905813644014380770667208147799124128759562709486070051608289252044667379583783734583474553352486218999045489913063571533859063940358851165855857617107929204600152349612850703319124869551743070542611687775132839970502441048848660810178819087793471244262100401657262897965761761606889355832670098341990251033629246986330512376377227280498933861658901095665211332756169365869189315146499390842024667593700103803345018740742577075272241343656121101367692921437681284370008715491676345739483423557080325492780496890487890867631588479912681422767774855946697739375131155338274567062579008066453052166957057006508855644219203070572899772932830048751328431963330207938085375605147234108345709876074278343820727464153591629919122281869196888549077876719765753659312386195156097815324170398604012200579077043749160706127791557070127576380643667318015462581151233852943206682070481030580397729358265242073882728009778931040736094177914337343455750595344747622476840392619772540967317286237412193215014222260263441002347076618756120558330576331776478321820423213222537669473810980510968666287558739056091475751391112821813778916100199091598397763009173140325767072166981920734657685879134568330152045290723316211812798758427899812977554032151600037008271404537732530146032578845966649455632305793523318535741563134489600211337610801683981644349522657016765110666186826018562743910608622142724535520736798248340570191389256176165099778517897255135798572054683159719470143561770171308290189679104450774875189839706207249694067783554630530031502476040929732797625594058061315005057090603004148958503388945869149190844254762080166912242294408342392782232390974097119766357808393162389128210184538352055551330698368810632281223965058028317505523048077109701030536751249177576318252602748983467101577093917251396151335278238872469737119470850620556301998604964545690577943138782679785344790698149710150479387891869529765272908841690049509801216462206100063610510144770428026840942910098767082409582100388682757111154878377617465566568026233400186089342555288976359183793504254116618054395847635079852987296709077907304614483639764696499300028156825362892867891868166209135678216600246344673039386697225519841431497935352280894913850609413611090655959649554917169345604247536326876947317834733770179899064629623155940935281148427635222038516080360888297051556698241098762498257538779103511839479813428207320067048931744917823464669497069069576057658550949523833985674351419729602068226916776044354675743797837349109150223293185488739962961120528144904342524884801482826866892852256979619440793993908453434389971679178905008252034283069678549212048313375360989732218215505613741322164823430769917949403872636022984459575188008134670802920958229053227658851954913848972318420093412789525547617014892662527785812651499803157169151672099760389312189692717379869512189641983695413565058090756315667277561301652783001139220167400726546884676389085867512442358244153661254378485173212081327092896607514326894752432740552093685971777150948737282390989818143760019155426409791823492927491793457749409211602612564224506975548034586624590430799070759771304224596043016824413638219644868505633390195049388592957719821685200282401632744007628731697307083093265870979021559006714602850212947909036305715019960150149463755141267101590016678102354744216355471397274217171304418982616233809183680025091915925677076413883005495444668578589200575656622229954297457427872154369700780498086792041066174481001383026757057951295694743435536350368796898063650110057325884780606473885141580757966556509329192443732990991079175707505059433683990525554450075114438047642875577483448181644178743517415703051756762960031072368968747632458601070099035810460884326160806103450219313298237731144952789724786261484461278654268869053868880972797623075362487703345467769687293037796227787396272448682717007813661440641707061722492628909185769215160281819134089497806840936595992849196264728155397046404600060694495742715406842531546545497094544693928916510808046075429546162701597296626428522855200059056585711986756779585902083691498597730482461169406433313685772957889828743843936011960897030469503606551230418863285527989904472982172827424722561829679350622664285667859306545894823951170179125498873218350669567823522961783810827058986968325582243310179474634535197164989991407900478450516635947891722464290486898223007691908865052051338735910640997930176706693928475211171043383772975566196113510004482971870150655603892743237222589856231903864015582386446532347758609059947577790021978609032148823052727844817590023331787784014307219861633699422598285446606448953301036761932919559138805962729906121435360207769000889837309923006973057719394906466950035238799848514847682592522812094667654618699629333910128662648695456764921282020918136461415544445020996135655309994744441514630810452544747551592527363047924593394458185021190506368079959563998401789749372436513725158503884985997453998618153640927778125998418353880882693979856591749162968348852065297348008424179800471573555470736434008997416560583147873609191205200693897723007109912576532808117603340660403876750249550682832500821714210312226630721549831511394460960948876733075857039740101641317277206874106864047724128668006722085670190223549934861685709998161527630472648605607485353956264672178283220282320443091069611569472639499634641277179812205495041773504749402858298247271493381055841506762753049622269807243640687214567611134447196066548419859024981659069391545933295505202373762523065112787934494625798911167819340134129847497591503577628715571672748071393395524823755173426624066452245203959607928963958148738474425474317555957190051933427276289373320881703539721830314035277482406249675005379126985868102218819438471022865560506001003174214205273487154697106307466719872048170886739007737352281779168676240569868695053430742416224587584969414102306025237357884176253064141877146373505957815847555053638158403737208035108723258512712415744403630403708644635784567416777819226622565467674835352270260560540285147779143742134488441254301119247322101534510235471824926566272119266159381175171400949737231803887245510419076864949477484119987601311195853237897922869980746583908912155527175285019709926103143013895682088305811895398144110649293061814665557912518639059385526381663295835792368743616253626432593383979897331237908069392256068088442687434506933884687721137018037264434251347409183065416541354754088065845415740773245464382809341557857910989326096276938530440625211768374158997643875522169678934288983087102979651785368255998874997386124977621725483380564968925035563632452402442188312013959953146047865640601119816551073762472337416305438156201494601990993024649499512415685900893236125262367143732161469851085360232818020016114421413790634634851079766065695034378405501324759846313410347769147347374935135797528001261969324896674821564494121012077150789562207585572182353078721407304524443613029787421463062677976405792223545066059417132406825283647526122351357823832588797478790717287263422011897296577445619316629156151366628787784528827945870580137316291723744193767582950371856966176503362580730652972189969779791695405290690701313098017728316245346813131976473410145407452220709986028945968451298122512535989005602532794411481598046927323150640629710794218475740923933993565084983216064791998295427553705231015955663304542765283361909159784712065734753624785820179501653933199674007312304081618230911014893708107184105486807167336552168925913756921867629060687288752584215185414448217238877886386988510016663122160456210885270826446755335891864763660902750553815652057655398033520813954260237310601976752205361441476026041098973138243641914484274691068550924422013771558121182601334838938729422986412664748666213680626345867108981061657770174510031708066374264563295665095477547247372934010240582641239073462602724007440720372237305503651442271108985810100901719208826627031049742376883985722431942995680683080191280249044507753278875359076335393947490131999704420224981764838615560519428651745977531440195715740029843642122719129866228493320273516302154889771169121507469483925496521399799958362798005694629320897311628861381044213698313522259124341081014686840172229139327864533922741780501586418024729917029721564248727329837909753083873572833353666491383468163070129156101920966917465391013442669677083483144084937506905411720977934992745483154909003058432605115701503785627279763667722411216242286365336280361206139545843857654276435495960840917452624335855828820524670881037769531060610661653842188777213907512639327766971335364088433630867430195919025591411944877226542101495980031827005660549083369850415016616022081790233048726504361572662914965446647801406165076890862915074344410079139098203849524554307502377131296871907284489177775301003234579862468152650887694679441764539407461533850524345792374091221514948005956859446608638040301537431783391221800215322764924531483887127852293698104520392193258587047268510482067230093861198702655171186911291464559329815905750890295239037246621353580575352002263824091185388514201359035614557004074399690291122730802858756625113848578849010470891455304618761814145250861958489961850542296774874414820840223231965737539204944221492356147666279086328542340996039071605374713057723269771231162515512840847912877863958273880162488282632892158245822082315365493796809319679942634548675085967759455623411963431402616408828882261525569906273526178979352726174488443469622548654193094997675777189445378296082306328587044517875932498378527110781171419341249152176896289899295409273850915967436304868082294962831643039592700644566323640534603804754234410883179471983818870348454829391974677835712626762488301376845341794082249718709586530995289945596445154893647041874171796565608900025702558996349931188219972742695389441038185717419585918515176457080706598905776256162561003285016926390006129948067798129486990413697925856413564107112931873717498442945516289884603335279633157803661066831971595843081260670035899326095228506384073475892250346541266773365127016846251076904167033992251330999689843941848004112683533093699536352243412521322276580810593816079911249526672918157214784290117006007525676370397743432665792884814937882397304874808324510105208178606537090136749837614232953247011361904496443100467198560364365514717701387167479280523087025339898227778870699058197503594630534563826394389663531623880445083851887850666536085856134802697851014698851284824707441819089862503216202274021892896701671152297614736813971177121154284052227784782640594167588768393120757170200243198684262689482929039199259753559283507203742783948652966028522182183132244927903787410834053788174960930819099409852034134331670420087773342694344490240902028644757561126589390061376101753351277042053050644967388628703005964139311443730511950189507349020703627838548426657419102313360474418710590518684581101305768874882792174351256649509975339349138633963348501391749109603952507595411233165177673781769800016753509357052882409622104588652444605524662586176925905105329045526922059386974607994945125060110423128471648505968099231450897688285533434226416703249904771911707517613754063858204658392628821951612475510257262158959383653124720286180309703422187687654537151024392901905681408639674075801898608762737113025420119648911610122776439611873254157500816097194104025314196901869386598146128068239318081912665313725444160232084458617247283712776701185608971088211188780459282470700903419768849666930085565143846295830087192210012873661854539182149272875341701533497496627968635660383643609379713536725689503709154319013125346504522247141903550587775801639412259319222947794391950117252969082058958685176910803732038689442236472039972899806864247098558507603697429390656704056787456348359229692290312197534972591776816971991334000067992267072557655897485183349323008288776636594195096595987609469766038171885500909404326768322979819243146547398678036674276165474808835493351818049112921685814594855829470731786029513798975290979746393564197757250490495640092147189682237899424713118117028763755507602006379685187981189199155654355292370270381809226671462027221752730122156510613241711313307666117745898580201887444638052097844842967118620535350614275051794592066606076432190571857492868922512617266032826799751854434521452438128189056272961221167951230794779310817129415937118747738945115667236205517396348304359377456088170429429942370053879389545032109288053642637354890191918347620218622733134208380748914108968486873390967726239157132853783342489171378816462333677260131942989294884741391958168665792808119850653798917702202294092437423448202802908313648301964040827914832464566952655083435703555747775813750731928918125756924374279872462038402870740024677921330370152150505059628608232093233690724527955887800083105161016878438047349343425509896741731433288551600188086489284629566422990232437661486185534517118777274431629685490618898944622072170197000988571303819525940759510182351470353298960019090963793351100046700765682633286105192319996800652628620696230598303824822878606172338075893777858456554852814070222450692561322563047067296459626532443304105446879967360833552151376271934752577156084929934458002357207310359289732658661439118044301426595390402574361973182266361304526868121976907368264694082445134660903339203975722841927625497589162377144708135424854526218453512272741037199594437642151904057642374975900616980185331481009689880150000802325713904929231532082289594228220615770925824392916831717795129978264593846061391377104928260556744039035701204866750461324762674923110020701513465162331243297754525954191680791622323564473591058204377601764901911795742322427937622409522730257772614788795079923264771186236733995306455390088531226987114466419756154497730016654993916110794307918084328864684633408023785145492500258375516831400126749871757987414701129918648828884803806924911034411675278620417055186717154992630283119891094657987896682430824487017331744772402463613504347771559929102883262344338105387585794550745987676870992962332381536107349979729132022636126860219180021168210903811883169930220090584701201023698324203808592787040029526704755780598612115090888903258662055268250827358411036627266585565051991636010613522984654840325629487877020491415721045692515403945433423278838475100283224506926190444090880182215316366662180882922117115008958916411685876246378760347759944227732206916226624194276923801885293712876550166284957362020768244412851875025524029841753830530253742349486769278164676587924724353603036889990594669918759313427969358571359000278924143724631467430404142363066692255340760988874869865910350826382485961145072715980124412054210008957676471655946057583831453065187410269431915776438872098857798286961217896255542435601936874475464643839900861974059826272683118152341842010656455846177549331472199560531983215090366725574365920104528225197890088916179958814788646831308501612397204884606477398655180742054128630208190783351534714308579354382307068666904687974435169933189242267083751814416219196283124663039409602199633017290528164248128423599369965699326745434948136275010374804254936477262428167564750254198665633069308552093457636350477133815640939351008486515348971840023817504829116773583046476023265142365697413170358143439236957011400635865857413468378311491765885963741157318549984735678832349939005850646335843632111104459780893636846339779475163353175422414723187778137615757387776550344998398565332701334933280727681152994869185827535741444851418265014708708518991225804743787560948553905496697759772634881490445714448694850269536194869678185767990327105227238942262328735685734552364613737499148545847449042690688075061575475620071529078348139317785625172269920667540946715429554886498421632635148564352091813598882107645031935390107823094740430340971275753981366153494976304354305668435394562659654533649675295581791780318111521693411998660925443214278931207465895219859456245835869865355998134355222496622258414637707983947024418090819647154406778281808042141000759527831086131533409905372362914702924430133042296157764225033914536291292648206647605822849988429497494025352026364311462714213353525455663631841544981556879175414712832447799380475154942064327168122459462163626562034508837525421527575187309949703004332251606664984147121588113361166203922300616372520424035335656150231650971809087786259042476980530402421085915064317657656074944018813862792059222963427712899061928616513665141112502753329158124572361017849318773029778757969143210488619753905752201876349703514336404111868203486792015861117753814982791995018484662798298374329605964439909526171521237464888702125885959978062491943558515355358193153940563131400635404271305838978410327452326872276939389920075130565960958412706571099576292011964031564752713641314249249525575555116098694501140162734426752657191361787871661494084410452641104658130605487701897445030084239185173682331384708125022805142908595315141002913780165665058568021537825579918340469441873193162129659528804715415191346116729933480623033141538875736168683824137648226156376965088955532578147111546858432928706439295656958106856121566121472570506805837215223572321416038111058719712144964525869268029499068559763792935606299115498692254972321435955451896470405717707914522823466267223887363926742981199127127319797617861846925696775687181275983284301734713611257144709885796525347167545693419025308687747655144012531097174945363345476824298954224121867091489948030268966586467798975814537222888965709384551759843640056122363350020954124607422893065235521217836672241262282596254353868030585495191838970446589320758057476767295790014691069699973878753202528095355009839743501584091523730925513825179780053587497728687911999986184695882578443461743111558302963445786733058153111227189686829000446185002812629190608633271773986783622212560456211051027197878032851687196549642914276425358730015972056543401064681121042947193079323374665040608668240617693364468023182100181177779066340376671542454145733871574584283482789792781345378856522049614276049079494803950566240467612837578907980390364961474712668559554352527012275493123882131657362472027111207526745943908000840474973298518106853128913841811527120385253782593370183436232887829151055064975873316399720224391553554593687061079563622623266793412850783519841783603837639391546746492657601704782263028574105905412652961029691037363205455843428588941839016386000771208083986875163987019364497609772216858413616416983413963822880773295717719923321653462838139358594370642596800996285431893576200168023764951779173692450045178614314426337745834852156207579350933560275836432482723122750157728686078203644458725590093443641781531948545413959980137109323537741856913903556854246854569574650461364390666466631656749935978474012080204425941494152655191589414129440924317347924823073073243970410290950185237480074597057894570810453458783462661912410019763313755644997085186747132250435995581779846646193037891791664188181619924714190885274451029990869894343468568627290128868364736480810840369764280529439368033793145828418489109192844216177278561752507267453441226871726757336034948917994005054312315474613945645524869537160989040070049946688079063528416054344683768326536268546132438986275710104902631820903174126330098541457695249730333985269375333634429869903956850344317795384227435067980210599716141663462837033801299951482882788951129695764673279790549355270430947708146673696410805621290225781072343681100708924100211578443581585720495220129582251835095788435344527343225975102562555534142213491759990749199058163295686573806529432120820082633292313712986131336709048358621181386326978328287268361516052285980278609375301237036216628521969800336785214697322113569409731381027672029031860702043296177796827519806113486452854869913665535555656226414646286723864310282199487909353970835509319755262016591650658260791020604375755164342973593669045946677623678636055807815662313228386789769262386346339764767941553923262183125342132873522420993066338842333216522385060311873765525245262036150391804115051107907541483158618909784961727062591428691686009834967928672373596798843581453350383491011167025457918344829493257289165802230738869973928595710176823561408346238852184315380735934470776754531621886015923475849997284686417236571957473650880033621582808613729386619396738485744954997132832499755345470288699532760189639862180556040808191072724464432913541036830342635111845678043965662899225548527926523820359198327248547262970051497067139831043604165510148870354283672065151887867186317930645876883487794250341989609535962684289148877277346316705747248520161182858788314200270419696815581103778790973201517208352338416785585832044638728817261817763941850152520510149103214930173497225854460764597142793717831810575406492727583437171033615382149208235710241975171685949916312376576047619236840423890719382882307510050190359337453602319125510089285164809256959156525518499197699552442308765332959823366915441334629801064634031317664134234725796348816167110401762377988898423648490106955828740815054094929159485472769520457148322935315566762152665077472354717412305913288163374022559445838493856190282477437365985970006735179191946495903090925370830067130836083128561583230638747040540402449162972443256339709044318842702703741436008267881268384765073260956315962809017929655560878015670700542219134917903500554076105262423501319691218038017647940428514072579458310956327706688797786641900595608518510566788674444897855960645149616650442069751605580934832148248810808935692397593588176056585448691740729182597247155693011376901992675817444652325406446647901416380790089938517532757384255660570033239780290170472309929207908871351796576667917713843723724530870993149075222817080911201417970684519475858566850609952517217443459465716933351228098491864361687869571672450768851387293155643611001163615281870803713737533746428113298370152912235574805594311341969127432585875961874950817634186334633681103220186677620025816519094926050170655849049230716810836686173303358761566789407695720762791044912582219878718596250079127307440699652870909128211470985407013415509939675621469876530706868686304811553293361492614715854334630629631192818994431425737374326602274180817304412207571242544871932281805907081627610506673915262950317767758469312605773061245378208667288472072593610595331303299454476728446346897489429058776768288930510953787501977618644465254450227051119217751244473291960123599639321190362877577861914148750643710425983066128103608830947373772415754383808153549681065929609391368367714097026862538132307573754010367814588596600982953715917882659193904776411364174781097456328318143871570675660211130084338886404245776146348813644312234693898961095300221193367554622198059739121550683010568926686942105421729932560378578641401805255831023131706193068249610231541109677866888382827038930887692773268211275454722656257868830256909074978279303173547687484103409764141316874805527832909795396727900831654155693660442324535121166535793190113603373949801624411409443396661857213402624468048180540564115337065889462047328108072137774251421878267668395729214690029782701498567752671169789211660194076015504316956218469109418917146270104109008388809467664696599598892402928882642418114660920077053526994823773927977216267922416821167465578638430445411266793664850671712422568324468165964632667474016432665904894343171581234636885849438411704390435122120388791952357676183048995035457452365589280722441140873611092629591001680121937455712447115345930760377892864423477943152741582355930902448110146880178733555600506607425347002445818217360415961297012663414078534995918263087158917645753703699827836588704915950390490600346372606565139691414182506321040879146652183843610968741169577800534933603942930339123683479441847980583744401616917533943250192806273105536813255329293962793046085368400555455410058159024187817122382388851193717503510205034146175991554129037933873249541508342778184230468707744310480276422763519631166583435834319259329518135598313879511248427083573745672245234384453418705521439149198974830809318550718013253622506788772114507142521609739622170322039258001764101078090249463202354523656424767956184388315884662734063940902740239960147628493512587620421328965921468146043260103367140440037947092148588959965875806860181750388864245588581593837998737950036806615870949457120306926147687724917667046519159134617331654883414551473107821982326994020097835785264861110703672908495166113240500448497134962577330869672877307315228805595182930904143461620314629593775564794468600095512409547849123924612041535166351633886794431318189018628324983183297577151094336430609152940902330552951498974100251832745465245376675414600992120198312275436749963890630101694550560280211648849502500705147033353020546581082469380825307436644257053563355678487070903644131175328687834068905624427903512272070861655500543506495935143868466874669372120140688343573839933268778318380987520096083023303723675840500544232273834942750615376360562767839962376065494639694834500863347207523663181374274555493462866119339192880470908908101028164124643767423953640817509148822063973610585883979550701924939841959838462245851521305970510444852571414933142752300783905071325129647786144338867676978698682363696207119758946874872085456174757825378062697940395837959779494229180181919924408767458311484875491405821415230515108978407801314852162299077734422584333879390955206735788370903049447980168778349899116949704746050567487463135252714423216522946230568457961479053821334286480925079092806094938758153207405536873500129111415804176098378631999751603700622558152930223278367767514019972141953678212801157578258002073545773023033017043883792315915003853443916403908357668638063075825322611834390905764452915694743551567867582525731192746945889338570955214785930022397046531046311272635285738335340464631543805578106179489989177757211130074189334586247522291798524178133097640782966240607204005519522607993065898255663833817450031611668529316769717347164021805779174594242618903370191578943868034221780787116616104508003673927488822585031457675372783329138964773946773225227649165239726473119976115139600068860359649526795304345833197843930373682285773349748272987158082243396123078165335458019767499431847095070413818644700936496860135394022528224412747821677092451911748500680429463056377262736582550499519475148580027467370404046497387138038939067882672044561318977549888062976754669948507950365549159413652142809793450116304557676687655539488917292689015842490612083872289814889047074217092285625671321851156912154376134871572044645356586932321981285719033277491413946273708246639338765585031255083343799925946301029989096210238822990164342837096747847300255776411855641106690611783769573271835397084707632791501992129412584943194152764116211668591723423935082068824606562098062101056901843201460809049276423075424954181409928627597819044354405738516542247297257665610398582512027187575128902829520144723123972305473047849340987322482700517933825757717412432564398496472755401159390622610538352683594954995925532385074383841920442953825668751566511678416348253819397251170687417628809295720274639061903597715397606583468447563528655467744835892346278349760735442470887225729689587100910420188268948253626356297850715697559837351051427583038580820604133517579516980541564215688592895436642376413224312932830558155928955303574602034759944705863593628901773880484878994963036301812870075921582830043030561627928352385731991842055638470515832320067720599881751453101085997205697527758163503064587669895338981189369465096893972835680168281322369544182013515336732522752625366332641406573194892344136732532181898426899088957371691975478246868059032197568685281453352265281238939614591261723000948375093038482992535623614035826032222272619537536334432208343457815277165461130757062297748819070194413905638446636640730449454835998916643291900583561514424337473778828148462708282578342412532601177363036268859516418492488182721946143763007134517235552937846288253346138419527494333035713491186503041973849525197147254104703422766701270330736248097328665681139176797936652855083414475717288020384854200606244062726997971537332741386782003142508648668201136199765951604420698652255894002047941117660138053215015685001814496056090565649068399084571787653040925197985807459613286916530235713134729314258647787140508485454092116892059971804302959410026101542497296421832324312965814131977072772783915232921358671578196509433996768617612454657001305105086892514880621196609753002662090954666519470513110964761389996648836073324656366640772915099845034256352868291239187530939085708592788582367789036592960857120414268473820877394987365271908032841438371530706925958157556830476434303537590752086709123571374270223844587835295660450471516669155426816598303768128978980705167838638036290952765433086012923470201608385742391490960599314876604713005375089842415044802904599381133588193262929118341830885890610399795237202953777166341113930390429702582530651107191416210367353275698696882916663387801897193021100617672550744449292278361029509719348721259477845709643700258529385306463331598120607633559705782836345853345263458855474480524780766986679836583014451025327845652179520013729332047829529888082113177677131653564749790755793207678499133109665296287332451677839618693477564628433658428539608965259864190494209010330427367271631519067351245518689401951857169056417612461970761550637372681757958345327933005997044026585726981505485717086231901781158918457575409489179297979818533878552356037748053852410528698301319049153683579694819732228784214120423326074685103286581568227776379369685396480729725973293143161645680954659963394244735289116960099440696647417706343290983497190343761946498761970289738432407943678734678533456127224505823673314765349564890837402406606387404207597005457228425932588852868387113026694395231214325707265325981772963939240719941914639818667967806636871752204967877911781221056644260142748357744647481307239336276377332455013846016913951266378483269412498260701262880107252880215954720553549166567900821627635567602085247071481103019405631221635223031643041845004659588741076551523475769814806442593251234105785593658764869511567771116079711953428019645655937219239413033438378478670719855360770520902913205249187833133372940223664369986447127119890670115021159881102052711861936163300715311801877389281188118037031661228819397911312415888518428461948664897494241337382958521819943124114049275841399833328665613130943360244983312991529217561257100714325095479277420571179797826509114339868173645470413904039457393174420520324376401394173225433689748222170250848628214671310620413248904598537658123019035292147580829964069517062545847915464955329265125615971658509245552188818064284972919110807191065031500663579105047816645231059178382672577324839167441745420546989534851923783177829883942589911103473834476004991017550240784095235245469556975181895966568432590633518075222574292362859549024284686939350980532611026289418108477692554474693296609174516185002915115496400863803110794083919836767762654289788300489871284150413754615578546223063465667057230279856556537234676324404945251568755078428255265576196299742171931681787549594830306217175425340940751238526803652737342656208008465979246317227827404013450998169960452563335926338449395880098505013483920102806148676073967529315787163395718852900536991941564844208950443514450845912221004804401561907839695737919354359526719569837921248207901907614780849934057399916169049961242920217976070667442956653821337915953723021778050262916621616034224171245597501044921434549509280466295501716252488301275805341266831792795410921899259376312087626713599460408912787732498951834294364664440463008276865862076792870217662192176952776267600018222895122753681787033496844873930290274371922288456593364612229349398544351400267453934608785361519874448989496851474163551698514008701831530991245861579524117430775445031693580629101970400288636134706762023711284521030277712409934050821732507113981277190644082602602439799315681399089177883089814569182521936069322731072514076087636891711297173107907065898153754775013445307017027906218164307598188963012983177907623872221012160261191444328830914030453261485946715259433968615155008590149161501255827743929302914511606608856700714035043078256543755918484746378156099352293448250860326394010947384386065125503520647025046843020755856661080357120899317141773922721465895396426850353549059042694605094370296620291418828453825503352808020421484357767812444038458380373382489205369168247856089808853174789095771518680711377666943003425819209873644787418189062803329703931251227358549175897034881043361329689996779821024769856588063276799447088288136918589969909621008278425607547032638802470688483051099020911588426443169171628152032527127826919303020813165055067405715881716157459592430110824626915592568594041820696127425556853867793017498261010725290020351015610813085469010201295758785990830503244012624818962297883496839207297709591715803227996970778107287180907994056522198797436889960384460303827587997383336550934887131408898805087856113806826094774372554025946130104722157951047556809893138536114339189230339335227842657714408868692677572193668582269975305206651505035194878822564442174289842730341238141216252825387012490055504228717651639914394956737511050151375508466012964708817292403502979165519271214092528900478024465415999123588353320453254274224672115409030000175081613481121914103994167038074523661947818845976381851999634065756029868215184485177571613004781335026033340076251163917827991834354663850632659759092570393051096361992100347109413044912980759425277394884439364779609088248857771513154697770531269102776557406858175306455764578408878362945700985508805106838960668130127004988627662218590112807245614970360157402192568834136480651793586562408140539476190798240496843662477067167701704905964549699117573569478854886067714122109946613887929902302874978391672230599435573759774980868593032788257189214888615406427126499398336105998945222957675029942862481519544850080246059122964121375484484077243712629084410823116268577144057359304763077476262218141377746553310200941121673881820114823309899625202150035151829648048966865299109101684543055976851998525500890253712864099872028728374028362655190910217035991539101064498321378980701913697936550373827314393400934336318249002502226784211552016248601146190342560963565593804960510072936293452842156384780122911137915585239204528768105685147025384149997945197005062270997347724311565836847411650617268050439075320039202502496117136336342404960394852433552958253187841332624852406827920482345641080944270129215767728321958692387722484704214754212799583116399066389760016117334957945524625412656617641837573006986701723140565559592951130767614778057756707998533314449167535750293202616722903862363380529990390370220583886104972855383850197604310102053121322028624657110207065622563561547622271737921824209034223997358785862893417055864848438457418832032108494654014861735659583397248911406462326989107546962827944319456229142384803450405707817176355131835715997374038017231716074545965970049385112795873032214503325641686207359152271819385391190997621239479195760418795156452938784649641883513324757448562417055531003266018680253344638108013455361035128898021331793458925581587385533009300474899394173281124740263610293366471217984436826263846308204149036906218342354222260503117128427518123752059272100642379568284979354920555155241841471938845247191424029314266767204186115055161989007901266034481723715023692720793425739734320209644868962162296657722698460554557719606132275972437163471023719900921768938538066555480379545002041627727736921962920719563009682270829648388838311431824183204440799423534422644582142808449946395812455503247041604500165848089364411120418425072283479563905387965090265613331576547566726874272438742263996693868272375090274515654445327703777311434757204818250768136617097343042141261700541573997079419898955769922884010200644750875295894475884941372222289279896899608303200229254912341981444949202842131517042522831604090862015131901983391410225083215869795330838483107477515063182539979494555627451149158327694225311133796797857047343210364653744391458321663306169453530582159527725935189139964420091862819183630697354145554901907317160114552591746606348617122051582141509139889830391628884993080888526318213532480312862503510393456453227332569308966573966056491107435961013052330952799377457001649802216562006967114809486686363922724023169939986948858065561481457666782763260801924621667746498354029168592037990355497475387606316217352294679721330713292087171557589031472785747674187326689462821646594707118238097037194466436300617649456507248607996326322919457036975752129763056855596780082958506392491739951732202466705660107194448331388086809753710735499431789290078614968426325254696504257268460726951515075680404898651243124124296975633816742470603446937854533525094371912482999413528314131337022686662417265567674305979719100647061481209904602999621634668602958735855858146380426332502116450612016878138002178116395484335722308469890242881534070927874072708232735673561559314828782949158834541238810208805135605943938580927128859441395745369382085454614315487797201569998176719808424604483697205169481106429611671320073643518097777279765999944786360034521799377081178339244545288647614732070595754577768781298063246369346088079784719806335615803056490510136296065983573563383920495265292234125940501643855208692431905577430601329872166390760815721670739271636553668744935911018420739209394826932998650861410082095659368713099447233839176648311606954880378675252559063747830603763024706444386971006611196870545329636766199476696322363657458785041195387732798883057833577763510278993032430564195258860452440836252574280382961229099972628997201086722884043527908254129852100837109882958573883619472197041705089555861738313471016956109900144237718676516876183725901688277301983838557422067246832497924648996503294973225534635636019309914427776442006912430142613122385586333513492460891609572354610398952845830269329776300527370296809872347471618711654034316238284522328638178832804818659920030306877508458543618738035163968411027272707148424084263037058448446364605271647533802439415337754399399854718502040540982601958231472615978447140890337070545959576463375642448429257107381594205251400263021581009180642094102745192114641507679609886183339373750580506323014642947724797855133322564016575832782697086313252903694346358668911675864981169010376054169639832530473768945022747568057586015344714309080721473777641589441817912483857933856126458505150582201838922339705679302989754352543302385253772002144430014328763030882721230286945604694693564992774232213171987238996806519769212659243410696066763728954640402241073327467983169154604681788267401962591825800242689433135249973911823065754756218905313702043121517068392655814712545204913510003291415829294899327966547527730808592471953114778084363860452086039304936470458514557670254027359420074557978457122163042125692391081958817386481110001956554624876862271564075272264700765081260323765635233641307405216725640175854054776927717220811008763438071846683505896685393163137690300762995656380900363753506399335543261846256857286479372813148001705167871441161077771689067963147680638657068840719866279567353716107787390099038847988878162528806589411958315239691121686338051562149016598663676807128328794268527307902962955962180132726100215248523451760768733483607181421267185904070241384893328046671809023650208868426721088965141366159647634758710887830918011003151346876858999253615127611539851982166241402384755636081173678907474837556955092926917640723564997051904468218114747694565679014813951814442468226852264840409346165065745534815242031212610145142522014598939193711518983879202729004332578020078927100063720237980844931016344363835328266218298494202348491434320278629225754810302641068423852841850746008435916075129545099728564470642783095865890995280532430427569951607409475862814346306443658722770854980786171874344009165136916318260022698844185670533370511908438243584190204992719741937271383063578473210911875831929729748122102971065385923616021829578858872285149118125482558825825134067439067635380566021217221799305636556249520831848053296904752241524050616955628791913069671316152890226215945814569333802339648157230403359910585448005556162672378702459324587541212564977885530923128693819176344476906563799498704306623075883768698489900023055403389587969337722485044189762878718244214179281898935941376090362583360307223098296541525478950276213945504630454276236804509010216081680076507341372348411064792334099310064701613060031104250582378060242459196073974208837833717101795636096129145558848302392655493050126392703718129152811900804912089687767706482154448866312776705016935826146661682137227638552367513971133508780375122501430411390621313972799504092842165629200321789906751038872433315276011105047254882351660812429628708370544001149258849706869223196980008731810296273292934697170491215372836374384398369105469117806618004502982229433477310152869283375483359569038540777279257684181599339811489377725041392500753132860695659340740833150719470297547967756196911412820037486967142644239039070960247141301241395585958276078171242673893268933198419462118703272861911939338621418739457214189211715967744252350482125268231465636612271274274768932152757048247290011517072512233084713468250108092708803285941730057083134240593776125867732369289626864171034761520541466977598391229496770639210859448371248695926969988786777754707479347106813242406439766459423476982347232567885539109120959093606196728797035958299365919106247010886881652455928032439133870626637455641256199560608720650060501815120335661816374666134436600433940051525800491220029441376600691907303906598371589554624943455391012610294969434185825318054647845714447992548689187686117451610428335453766942052097625963156064582650973343761791935043148612878264870885320970606525371962529456428230081642385554132819828930858785734291769519994927492570571470021122230126956025065808799149310438058540041579780176528653778527082126430431085025887399393467063850160365604658764836945877186273265549677322314036281667516530767845909420192881515546867094942351855145523275462134164756792583622085859271765073796449108401925598480411422872913706837781906668543031680028725268848897215274881364602405565311930425077996502589441090926047034669412457056940310321777935677075420716678854106893308261985309439916832966370787145176656019953871019883614057925162344307583513692167656538385214310626602592164812996232539252995967195708178917584751585429309848355609488595062322666455342819545243604212722756586969891211557646669017992238912161124043802688464804543054333885291865782781729992463114449315537305352500678817778740547614872911263053962370672144150056135204552911216248887588119847027329187760650093186954848173449648557292043248677709442787528133708991028256711031689306405034905202692246394200014619127917615315200570256273031949984905513394088324063101168570124407798241230998266354723648833286408003200541224941029416758705006606238504742146501738400057234046760339430990176054429668693516313917134518792487403025740234298818645847028893894453322617230614711409922255368384647007617069968483009532738091980720711442309176351609323967324380077241245172361251411736426253337199727038482543579060367373467080446396523550785496927570696550184590493818335480872028218434770746261173045727724980907482773408561683428310654507063114506323321355886736139202743204734159589416856651357307718975614493351454944605624240372601759258192922592206613434494070202339256827164521027807593914900072361410422775646644654811072840567877999128507195734257551841308905779470315546130204818249398253802196344880986429447703261920374708170463308506196171332523449947792076362673750769693099767753418272430996851770988225546373558716814917777012270693883977928493857104921853688800470488442029195726393510817721084861895699665027653897304979447584089611843343692373110162533046013278729592255980466500136434603257894381246521883156523535035584529375207160671794359681781699791719358153047276566624796090594148580734253192511780744094517226527808240257122928026776079757083836153116695722000998168290090758597734337844624292250095407812617283988736694751263567775371471294994245898217256707968601268901138777410510728976530609005835326971741620359906406353125536908605147250179517115986818064289048452670030773252416566345881951665741109797943081685895745189937222469684358207582955876654705287667752695369466948688409799119468668574867190867537711791014480234962922649502816128458038073440915260958385563239623547728220478876475543356027241737444394720681231466166925411137035266596143373582087697852066139432058071087377160368336718570121979982758791927687311877893771397298211177534729353385552886169763127843551468811791777624113804110127742819129304656675134711618066872580151216468041472490686536842028339533731328466893902748659483264792949353830316249613729246297335188095103565885081217782331602494799029846664765187575292553173917408175212430315303527105607237459937590615356172368627699121697424204665625322870391328422666695959360651665248458248987363374388536305742946533805166607425737449197681439177618414004793615690637397180660154664826729671583973235826682348595071452944971520621446355873185622329586732493176880137957232710845139351857542231472213103838757416926815785472060016587547661604253815903890278780317047381913287314650452706998413902138997276672233217479510715222186186302316203647580538107899867084297450491619775470205774845781176656223283991076401383563171698860964940345613596342748051267955433546921361646860443571753212113045792577292693217629297253072268755598272439990385786445581141429247183598291919637005339056021244615508434240534608086767124669325943418821366087251203733276927310176758019016888656918008325136890651992517041662837493035794978004507707903700412925727514124626178492722043097047819053651461011564343700317954418098531278219476017452139234550865073766718827335693190094847435256891354270259653836325733322781215396807594556724353394461631128939922701086899381005836657493858460315196955174236967181757472036813051219748522764560589747307738787662164949396759466351163717651616268215870973254133674062756457802820386395872215866030544403849131348822999540492229601838986148770661307474769450907191139022176070463986187894380429253800981140706364315979670791353943212894057128004559215501781314845862397516745701357295082832463195345539304490892502311311579672153545804626693392173979588854410284518699555101486627576322278189264400706124952531857090322433295368059198888803679721129330269786663244555266671053798744177014047854664156619415996871991796771828508150024644993286048078896750093965863385829588030078795990154592773552316651976458886223802704940386697079503173123978603726370207808904303106053301163947197824529435945818974081514437862161157550612210730119305493929732882122288115509330270882096545807223681379083137891290271459097052200768965888464939049919267080490343160266905038802663371781161146227589916886885678576005266168022540085394407419043946579256289478428314279209565429569423448150004513004562923563637272774067721974782165874268593533168264000637454683501249815051176328329073577946109999289455357386842901661207902896922411438639600469465737828977274209760127010636614100144297658887933637422429086164220069987902681037555698726988554703381799306337327008138510989567376826019459621182073685034283634466967180452639330139963609666104052058613569700519603281584165880414070278664310671670076343631058363482039995984999038784075546832868411760548136340097057785673256911630628621008844458317298421667349024033514868597976354850869588157273277378526708677916333853078258136492314737668560653270965872626314363959767905634156404739113648737915631619767466044135061516011979753910233298524600583007669417009627420976038134133443965253530766825235539884616919352629697387651951978819838713363089210860357917826626585318677808968740021908067763058266190096578150818958482711222509454115517038707246153866858886549109305430239689046263512971373110980064341559924805652314073977168263367392350197055110301089841517597598701198756016069167711157373544251446329693522404674292498394413917763013445706277548920624446026403669033824628541657004729021085817843415503161958675401257233947420160183884612564551566594959229878139831673818437622086640590210236839064888424024725729914677316435408277013387475440047462841762768073141280565295739612330772330298846447477898098744807511699201601304836547038415952137951729856731087816461278879921537357679236946633352223403402081268805965254362270146065217571359556058859220449563646023261664399263837175688592373156736398412376830468732595219955656012750310002575481959698602888108229220176130736060342059513868903358406706336328865704898738266559577170611607508187971486077510001591713514178795548845749436738133531088385516949211569247983203889649909345544411745997121939459456861736087317139807018620356669720112164857973551470497403497162321894522436518146991114777996782709516311479747535045063618217199639256626034732892311559436856644956456636795352291312528119685619430747107663500828758518261678528061851892410391178517550742233011091224549377134973763902473508704925403096885453729310325069162154484868340946510888069982241506596222558128862556841008711094097961091997954265554239994625530494342467723706429789453353518713978280746487031784222781235759576393756883692087108307754750301040414134807407064992380216934487963722885548694718037666800394636722758806482784397458017073371998886783770383073298834931876149979993331277080626481533461343984127547044841186203896651620782351568550943105267898108978624862592025912732544276497127942561580258674694350686433187379143653094394164081880964010762512280336520638691796193949029379897501965997623570349448583160920209286919500800964577656411244081537597821092712232345133358544844235945304760694335172036431616744195265066746164706279535288077148708709203434205429023910440899544999907289359447451990449721999324302314032396665375955627128043873275631758713480755148928705707162104160323538021891749190136841312516849041580093138334516500917272369894778144816559265622147381428705892348831316080446976869462989123728252762507828607978225058720413585056020136575561486053460041039251700367269049969526844152247337089708040615855311049605370069856112621730092246092809339462038764580601948209901842032164392006900931655892802588133519962375867018947306648654864021714702953447920656748597175319093930960101622457175069134886547075215270019216351773133215616088096964623842248031974945351818224898834463787879910337451919404229909654281690919592266097358629166059948182758335289590464082112326727827018628266638660841067581630678937834520001393896690501053028113593849427989682883178743470569959761929748306597962130315396188289446065120916501049523560986419677746203924877169480750469040929539412053042181937557545564555646562343404265247204617286697969882118517870773472910735846930164035428074226197073462617454836269814467557822361594152314491981188884979772420870643425878579973613719236708187046376851040368739334459348669106706200646607273354972823141814083222005507500802538814001050635966689282204164687655439351862072099961279190551814376822071694689012508352073986418220655717172638100222721195268229801480566070931446751347804594109881835673499619737528229297842194016418052499028001739195059932569897190627379268736001644406900849129986161951488478446694782042542900716571459550454385702573131825935370862196403116145648898936505270211081432788646683431939003555115694130921653360113308665821050749517594174865667281149200728574431793096651301976461500407693495225042461054754125570071399283481808171258013605128452347213631507677577059220037982640838420417044238412065696213722420502066575219336904565089409763309212392444016268411941887917676258232223283103395451933325853087309559775849952858298529818763149148376301776553715208546308024305026091741999700040497757648049349902673071129331004190279307958149655945168894525305596186007468358999062048597852895141162075444865925247923096829258905118692531057537203736307836961731258898928885513090418327279508991785740785567679175361579724980571733381712820200526229003108773596858592250008009790422569649561458785147214428733031322168215782004056877266773500576313294135515313223587206126359172506927818228894578673891275716963928025639180572128658827766210279467466969800530885163271746560273401220126607818851643945109038557926031637866157501200727341738991838869319160365910348270265215170309086839481317359636883850557118006826758838209825088122719054335751972650009841347405295437441191559661557636731134368105704122466866085901697374286232378614726180046732350778059750691406882431302788271626824004644845739834194899170555507815992589377908735900819864064828608829571845320742637865837342941590239888805429743899741614363260477715060149425379083563387130406879361997604296525083026560013563546580579497186774065957869252196786278510799782645330927319737076514030240801993983087178837510303116746211071802073998268088123793228378704814292696796282588799744363077977351443806257453280917041750937342502559246064693151804348283303319274630854016587980896179443728956094284432927326143970295655948294075058810755357251936635001326712143048884653248183159692903500796919800834907172896721213875655749875861731763803923663065326878981048761111710021906673662732185233943873405804432248157416063513171685367996859195330824776371656280040250708615083558878216723473723108527641451815064607311910166810793235532848793729036538539174242388103596220214286890946622558349050480081517256215774288614317475867983367949950757019966419959705859028253521613299499164365966462382059498813691047626052277308093995770317533804651953398965036088197436191435550499511442714091755855380262063963416533065979132203298948346758316199477184919169201365009682053341273870998103520466110829815466041130934976984332931401029927170290322530152621209130320799948943830376289794789789334238574769980982387969284472423617063771815751475891209661647786559263663767100034285801976212895720427203120770108569402376519242024754619462224728155089105634594078717742858493702077175182904190755842472095597917652201702814053495231863643930081907890971995728020026606923725767223900097535197422093002006189160626191596061748858642766951077833391174769772424996679817040949375009435943718918676118435640011400868249240743495602423045636620971506000375471575993084969294536555142433768792744845519304404812831487745046540441110452186128067697216597899626335596586225949169767292476003490437445769371930828899398065051098803970326680877573109588925670571248108717019001288099966064421354753990591945267412700600127710120983241902762242794082506169488601952565789928123637808021779530337008521213051523951414068665075782528450369209306534719132815760692273439276026451204627208977661046225655301657338826249478706590767182906063573768032300928008536587208772522689224188764402766470065955679521336580288742208570934528383193065716577091744001300157305682307175869065863995687565775289667383747045221011745707903721947423233433944616077568632865352558489806921472222540292173444577212474938257308775311581598641708259732717531606719961664300429444746531465010797550576428647395146516256129376658704934783765079558092635850675820765734598784937138517942039909781562953721602128409824404102319893750375244661007904921104415273278033737463096491924341962753645831899438333715559754769891182093585321508623415606043402963714477861415406428738900768907899883138089855149269706394328921661845509214324200419332335864629383677041088453924356897134312612139531104828037842297719688209067232284479748105741724509881207146479792124452123479234408354122142425302324269296265308561230400278178895682008473994469633651254234988574262056539347041692789451548589144847267418041187388726409978338621986177013390244094954389907995356938099202642152294264673801405838669329853104424401320162586170735517636539325596558216092258072747282007279958729469856304440895493527114887247028052242303169739396053098706461497273443919242867910045798107775311155821831945341647918244896139055275985160520387957632540116365460008333365535125685939740626226402312783760911538389985994512736520765536344304989154860125689285394652024310362958473983272993972891124034757262386856941713457397811511865313145414943124095240562472047545210012049297721154295357995644707855569709408506083983631086780758834196046959962314389971330939495221614953152782024467488983490433193589393165611923357191091351757739972209272925432375928415948696602710162907790251189081011277074951972925802081096881653281219809156626893663375152950770638717459984699261050550754327039773293124198685999595595309385056538293024875778761511894836246833611613101014424649739053849231460646783186397038300795948154913194681436867542903510738222903552829541674015555036791145688960617462048133834372456163424256449865010861814984027286703465747621657727775324182585511973803566926550703553195749148655172128840832284836151727303647410240256754425712688557565149335290244795598231849921890053158925733485839084962979010344644956521269187253524952938006775888570719665119955457295925857199763092372076789043244274962215078230257729632527257758225571342870809441634622916881731142557331377034602536481260740962016344028127909536325073269974682008965139151706089541130493782222576907686236445414356732088198353388726964078451501641870511107574658286352102070118380614234069750614219822029762277858244550162745909146698367210117050611879514485057953108705511924950706612180251896183967287123255901049375491806545761029898962588603020555075114336738298239420184236936277121668320473612732241501054864947983706273742361786885102980819677763622662203179521663201594502074764950979538069430047240937645305290674894791069081294850163296631923979429790876119076371722855466147342222015667279449077094701005136257716748898621516001968372136947418988073184483009274551260540244791669409219604799039003454513852989939174904761072855032374847719394184517698722390515458790203332925220625985403477673533724504889220042557402696121913865402462541097928510954532919045801535278762181100809614854356959052509993128106617003783448803667737946429203216910507000879118039998846787719832838288114216676203823755536763695719490987535175032098513215950575832577518827977989929736841639366029665477319801444361937465949414621811487048201752370032674361510581737366824909637383040795556189791857658465374745988812057320108120234019312155172047515859975325911807037109232852491148922836098308142977404552719432799666348365584807543529647166031705620761993746134073681992993890195240734500332530849150383888618494047834069457835772295448179989284459469059666689609905941291635063038696002949553670639807500628972555500211841252369138832897446564272597705128398307731964730829974625279180915695211516937449406065702301883144428641477710478346754524369410314065476190758535327279869911383361498996151376392362303580996001744122053486714754141468700509161874611196880649570512828248691489910815943582714911601580656752460692685090304000602514885347941689783779349072917163585769257003352858909371692069685977259434771376875128787866888242637511658213485056372896066680507316754670007626286823414079205492902434216852240140488456395335641862696452426288773658537550752440211664692453207430860530332532085654747408183504097557407228009998338908657350226780568655378103808477322758537854132165034545347146232344493613100664427281628079010021768842659640544496762241459605785209147058778358641687538317786289395788321796182059108563006994199860043086818268766628942603144043258191531612187637314151833046453321130226242109142230792380993575603041151661052114219375485458553869538378928433623690584288610643561223898406467822795942333510717172052666588722948739146571039756811555469731749731800493262722929118129857925928489060847179439278701443518056107926592410697946246181993153162076204896527446809803454945921445012115392308358138224235151252056186220470412257579674776878808696292348868572755244258896953710678305850637409026401889390749105085392833542421339998413907466293840702344235998318005047309528719330369727208466219797476159665864915207699036555596811517704294728713342810106407973348583517261753835507196007637595060724096586152453146738734528835080899856760465382926055639777761518156106278878212285465890095467500900737712381706180871633322409111725826841563270412046407372194071481690560595680499726528608187032824887868951740795931766881575901983251906194034739380460088639444305695621515719850893395137954170597781527558986688146326145795630611451620602879338069333247245147581172998950072244851777900588407645407256922983917147412540157226779952097858753134301448653409445400801087867580317590274670198378262320953489519531975112943892743434586302956457384010785768481042722925742671739855481434896094905251663539828477020313392252741552931211009312310758667106142252623239958054526494266396247290407420231716314942172313885306808138706451211728331486913586898396715729875974493961938107088280219759012483977357262092854862163582954154932194814388026586757788398403622732259290425266039477898564230461106577907099142659678642230593381883702475995319312006700926895688810506911751984899478082343687124990302161587280173261328011484182728359224531067165874756085318013276065898541616871126759025814121882721219397494381429226812854044012767396340338267013818578406941378962966271482662526540141543869725910504525172685364087200185279334559822959983483844542269367393406517062662380258731449244670606757881843965638678283966152743448908589650005626518112909653198983910601422144782065780640715463496931771813265406113782142538873266026758380732589539642356385702506051468015623314132965798336001817225340054033305862127729571697708548756748398134806013332744633059670729090351730295696002776437355664032888652823451718324681443444014675527153355218058448981445937857016515175398741726845726312655974296671815934064970569252941076573163791304849827235170779818551773298064572768050014198078949431300801439681001887058560652620713469259104420744946308988546023907728318322293815631330319395118537576624979220147282970502573578894379899768277678673011356880684458397353299984739136616490157351392263450453790350894568577337033734168882078586337841148158512173057787850546181361242908511977808677063353648917863683210049297207562233749705365884390542574709509670630051346918800914948797952043877337090830450806797664684792968422559967204923825924032122829951282525001803471956790703374473533346683424135534751085107462942418032672201708772060480897738203221913550189276847720662268756762360138517429454198288244024350434713975839848547072624379750732121394924570066250635650992087813767013922639915061192074891924744856867180277268043164195486365808765247482959803496869058310070099707983377187491159875191407869493714877607946508724538294905134705282415114188865664997120485996400431186582193931771189584803736915282628863535781979644046984580028773884449447935359613679559694911752557784593146085422714108268376493273043856255272813164959411111488023134900028636633127603491878029414701655517745547690978875904148526659468960541315614003378386188393643528434338307224876378331664313494507177614177081981537086466366733537562346763819383803233001662601905683637529563605573439012693219268954444973754191053137427373404737744668745123443745549317820512557446688203021317414392773837668471952517851087282151760246120166872616373109046881060951501659031180615621835292528414602130819559408606274911712839080935279780008681703426021102220880657505734344156242219414064248952288382528881943629624472761977347606680475847562874122363894932390493566120135366742573570908948764462055948971457723281527032098254124325766410689109758641947669015532563229031267328091545239572594711579986419114435660203457856622954593218901061279228316600485634636441480836217356691829590804397041048619197221609619700437890393666274084748076435771413279085048626058947819859679374055416945063119524080533009112261977055606982239737429283484390387762794513203716766345351786371306756573201631366792036483259989029767200632619867053900325268618433092042647876650580484008810330074612145453306900186526597433184823529048413416374602082919905378649593964323218367440496142668482271918856098095169435420706731965025081374193587856162422761026888463683532289692103189076892992792974053427013781648200521864003708081939928209053206173625239784394323914842518484736221035725373900872255292581079567886783725725456853082873183332696056728658344318539368713738646327022954786230415396369236759268738077617953672602118676601304205867804614951383868861170213413355370055638487652213853703922311156899739528402796032016738181335225376921582810149653943772708418434932154736501088386363404649915512972617683118517683351079316892866923879212076289561764306864971776302380482930776037801929675420871060169406770886700938483571097275794388394822213072892656431016706858632823866743414764336830291575966687189818201382520322575176039691979006943943964088605495683933829887744091227102568489917356502640368430339360118000708040565758812667508632591559974118324686693155196183364812331724563350091428065773497139085078806162147765138448927723338540493864723319865239794025224601053064355220942846574757098543559988476230275225963209907602205205701922074572272989093338618988108143315992677708859192835423100368928494717475117097031050291002181678920264866178414205959091975326871115650591431203522921256629450496262725541356079229292614168789701867290304354531648292246199416240565596331986262925353768536154800745734053334475310801174820910372290760779998104240986259160813614435965140163931084304087585416184585734591517422983471538034530446210565364471032324625420416484622273533024276075918720380943360807639026115499622983137039410045101952316601862745258703073437483356301224621354850546299015001683449166873786814684656579372547505408492531530085041492079727678087817916573838748686381474700488425114228105488600299990484132506006713808329575125118162498347751942700925469539958256058730537409558627207586184606607661824766809010407556593887107196399818778199821157787206819369044446565949508693537613865427516569792213823008966439788145262302425947483591809452964832395315931707369457323919530107082675508504798409707965276184086498570744410308458454679938131322953164179060745651939175341849700662784346263101651165979532597223533976054555199277767253042186999944715638328250972197461211969341159196855198559630370729629006252413729837481113688926266862510870742069675850306497224707227665029375739701837689971205019510381928254561113719109419389324908745569936357800350779722625902621124813464785744833198670768877515397606435253410779218088476194102786817713918245732827325642797528665875953210444617327490751768230363111578912061345979034920766554850019410921472155694964360151939958042381768999260864826411005034526574465273576833079238408422149847037476211102247603046279809183169757826317653413450871349923591213568508574685166151663957071555429394338747068040176498939352238249730917972825278933651430027821163661012662420618486583532125593040623513513285201545990473609223444142756347358626429126096386167988005709769693475586885483031415398534950329409124370438538009020013899702007475138187950975251758834514363716842170780010414558081242536059002734461741009868705353248125723077389439244826234194303639231248924576241659548931752612469073895917041016198712855070201511449336254518374294248794423090122916888994243121769954994296636991136948739636482788094090248416650326262057910826442296334395782054702741879911937524094739962940250178443212405945131986657754844988699460239019893995296767836800365509474151638695619286362159628589896322915115131252035706299975950562745098766275361635855106689353067229897999174614431335336638760533775271298325289416522834115994558800124497234008539166758916088259598206411298064171165255223372636696894641868273508322299214152651499868603467830696907892736471590284958015045705988516243452278287282800888399093971328704381651727888557552445143366329643128471662610977128584988295967974167461136730509733889780683369587912272479028336840694882676714791764223908059342882985413425289896924738419299987739662945898522465171793967300854305501646761652556915865187322870926235565967189814809530876464842786328394648207258046610902739725407683697931608105983408941899537094781561730279091732328299657612767515562431474555609765199060896946924835701720191783040654676429133529517177249562799211118711594885797523087253027283906634695061632899811812037590795296161521084226139997954294179630596990979637028759018138321371542047871727115510695309631032989651965944899798050855730697585578237594872606972961518253394779269552524766548361785859720161404143201915829601107063214192609977699980661423187163649371126910897860181858017934254085929109899924818994371422439787639073921779372753852984709227803190996571467802508081442744281980277531521881378470306089055580011467941099385713640691910022757341096392681315087152836782562063729626183997175848116038589030220988914354599859991768476810778517700156039907510382774443492974573602116657598045989892379317257327209908207558786392045318340094098017954819661671324133040775709316303927700475159665508461095955383301294001427942417840338603038446619876191551224775587357463659634396989235501936658229698490948422630808933558220870722270328945431007877234387047116148779574850868812004880466624526165748901266786366780635744846979410549701825233561157301127821581322513061232606142927489181193230405703659632517581834472425151618489776359987428171341828712796258169854671512297128165937490682783160921279122956479122495695709217344095666619000444092953488282394229873074414400101394209399407938660127247871445732632056635699917636198447591832640343194113217594374134145020623681632934110166466164532097406402867289024639123611056597078616075156770212296143591406397405221295950182014360435684838672898782036454515286443763401844308726697607238120744313710791886142828666819252234555917512120842923636742180888690973877277242237230299782406030586299282656172160785212873240242019099970741360716705560184839875310868727691513523978022972607868149118670857612030281594239523632973986199686218917364043117032248518972631929824153263086579469946382232368735774574996501661663976482698676409143805989501346381912731910096378646636040170138910275811967846888763839806998048187874405688808191958361811672143416142064836431284654125044099722321747023778124333541829044156626867527765144056158441416610133227196413310358489695026277941069964793618040021594828358736894927526767970451884441798454983358477439931565873990272242975979764679713553657868266232022996874766755243034840261135387840625607779924911906413069753268285070286134636610444755735815296370589635163217348563652230183879292208990762688431686015273257355273959483423218826869282536199221386819018861235435093609612104840178247136461129914303949699031959590791976001225677964788848947913285088015332511628516280433518383180797444210858469201010737673217999388825293318101714648605332293310236427966433622558799711308590793478300115886750602663361980760265588181865922814662605835731516287336948474468205272699875676543607929248973061934731525630717952001983842930013926134353991478415325154588271184111355348092790369710615816352234676523084342090027480060905888247044133904749204286098202909650680026002834653807512933998995550355375065085822439305523522649476680812510689408719856601163525831423900420091902127450210486780152596574055526989271096914187108709886705899095098111722837803364805858092187446151766935495577599221496207697321453895561751027160868611804502756426708553179425944913703046312653011363423396684650436383480971254080128694165670674003046272348743571066479407935335775250558238543886941275864287941012183172541746242458296177877469884260635956670999560267531797750088717455743936554102339353171483816748170229974696624008684095117254405631617832310747751535005770525425130756412434125101357237777272704310100891941597167840928146808834902913733986359034567579556071951362913261441839548806279502532903750585689362926675738968815752403248263488388067377553579711335225794650062050212268205805829622775205909390674884928923589087334513776745610282886097300258625050723304909814892905537955477629632103910934823268544324694338950793808033962021891718095798104400420354331207540741842291957920157961058049195108002748540839703314571229343243858086292947586843313405782613018271167635434524888456928805254077579571817543636090414019920247715903296157108483896714495314997649009953211056588322169634186172837923289570028114452802731679566680215601353054591459626896174360068777163750765035216832122350020273817040769874969021510164958281541765617643599374343671871004172419475377665420019312041405929231093870914561672484646708325264754728440326318335719440286640167933474088746216242549200614376228158725851549082153796058708826672940061488104311294904669919286953037776749419784164097638084702982191695151018031281382188549586965104767478973851867053894410673718752997773146753394230423307013826329118263171500741636345297711373006811478533130582006445943056889128840762849843340920493689495711702785689188149036511448868274832697452176633640359194514485314326267481739770614905570528017651560698035105501543749252581182082101709182337033740497689089331475403675395533148078020581288034846737560057966191382720736621144025192467223432159319335663953287285736997515527468999894209563700762414677741012539870244088832739103775823692253429740981905818279221740561075542078919555754585526953074790256930565710190003371935627699942655288511384947027677904164717469112362862994834994246283911992182076728520669052876913902843638920102942869185624166767236378036083361464699311419915924884018505639486326095122321120717204615717173276836049650287183948512819331078630543167729176696272118589645407053145709129252956802294530559752109035397141468709185519318787605171358593966372792947157971379480150049785247135616819201635798953741888624635827883691189914973530341948464446857066053522699941553730214914550793969906145383174627351192614068027310079226384688905583472206657739948227940597407785779018465426545310598605116040803586914053889234828220976273541468055047700924628735136602550576984754021397104706623462683537991476366672879905511368369646390781739578599538941392935363815944096644017798698104327494777124610780944608806335765422951556998454183834886224683913426631348364444469400537251630310906134638044473067314021928106913489997691779797694996357417189057202817363657880142517820589766210799736185437995533437546621330104342896236456205306709851708106466185851131135045334821143628113790622434454010970050967723840413852839477763970301309413373026864696146213977062997371070696251977453154867794414246846695143321326400488440720162327788168314685800599896818849081863507795356551842185345260654102658526994514461585977792454734721989192021487387644952704037748566834491408720696042293336515052710070199074928412332760366001371098897497006778799033835710752637260028784420482219207374865398488680494163303801250049312867278042745434181528052603762034004841010709191018888010269441870095505469838558155344090644868933540637808923914412739686263304855321891742445476823675710454158685185815702882473112106492662088967287515383416691123576576045913427950463689067564777390064385613332166919797947414264379600914798399440904206949326313003801773689937552497161672461948542243381120972754443209457479790404660740493010847533052767189783832080871872218868136636451968962859388885825431975598030757825598979168532661375008923504750125969161391184540154546356273596840266534731231322200437137063392176943046035087196822614464310421766581470591216416532260977003499785600213202217376695790994861350183462617803748696409845095233740857346608550971039477869134050144875783645058509933432216551533213458607498301230820136438021491624903701971034218172083716104628044961541049018370803665796209048641029592812021763428866571188761949914857748793517810628490457187721500934513578275617140754608478928886295486324601622712928131262631891947913793945602694912259585179500350386976604311944178665856973285675685779689371390536228871971771685515839281260711128575345325887481441956485173132166256349688731223274292940934554653376593589580584005986171987689093911261877217991836467556419724728344748237910864980059058196041765487073309571814182672852399584125270677428073220132072611091904576309073514906673146670500937011889389061291287702272114874988636909223136937290540757250525941300053822148662171785997298908031762560221699428198553162488861664766708903973146191363107059168735122646819244251349206242181320998680174623629296850828565516277371348630947363032021535936670546114462089041408926589845835802870354736373960330290368090074961640254676524232971940413894911527780400863910437756709890471470650286800340145304446980764835744818745590766768490485489633116110022867139878734440615940173163973671037746295831583604542770253674370015414138605885062605864378801817226560013998414136361364945015653106757649693412349345379990059678308296176421128578652178587061641769717504878122674570137374448814537133978711545982850873480681344103834423497672785162941196676396374283448184863776725643305216547365257872119375407381224413984012827696592166753936488231116109947626635755067002492965106680868070159401302756815927525437173915022609988481949167440701081757697631151574041331788504473275383911594629225192006937457899379692113959895400653321281709682934437033762124836124532833888221909746425602994595760042112825359933272089022752133607653038810320750153843842895675841142068689894635665202614471548064843695848493355242435414578472456921369057709935364144239842897660052589402964639529741357948813430179264830343685478760162296958675114644403908931983907552434720555813580433181708904748034735260062228830022173324458296054607634653878249978132852654621330413406766103083590925366427662102258883825463910385053783466557603667977687149448369428138224343477513450396685753146237629130813042343790289424474209855558407678635580078639498211518088496560640522374753727786406173338642528037971448845792125645048384700324222083084489170206096447573858491400622725271342047230709747137970887228285996841074752361099945434211227193725249124379885427675323619686038991042204363688704752344256489663444231361061278880352948097058207116107490752920746481269144035267982529280775522275286483717481268042638308031302284243226869673322673604249751712991291591653195904244219206394418395454844527911278758823103083681783159413898517200715499273597593477042639536358810992954254991872566522116597651756635404156644351850161795523625629280185431064979863459961729338248494398602583772255487263944205281255617303566094606187405909488172954387982428871730442653975893731705661173641664638491018667176316684625280707974296542832811840227263214879012828509422341978418984001784132875523652027388717476397029695812827024629233728568187725868646133540996614481836832494549562647679872936913445576186471812002670852879454856054911807241093664854650634534584858488266438749672045922157831507469651610544816088310144584004083989867245482083390951648822872101157229494365639851888804503313179356148088320744036169666120763818908792594484118418334909708233722249311365871558447448856888509649714759434777247161763219216526844183662220600998598924092709732292264988038944443609800892793335951008055210979276323326806481433524079138177634399082538319747412702608005111942481200531325710493370447545250552539085856060198585153609281261254799773040518396606533995918382530126897542915227383797094430366031296022590460136756733217677721575550609848293122972286508936763834258777771120767090666561032480109362382672519629222331531999855765708089707116520019775187217713272461311069304002928201343797677157140465330857911761309920018594770115949713013670466031247336844686912519550003940295811312430292466478931383208954187186105008025341343307651507545684707474954661944957531246309012721458297414271246037622022215674051721465525899761375947966791662064603815347280178578968406390514552101821503152552031121541275202191902771604036445045395258735124509581112131757919165390310006050247371157240778032615203133749694964887213842296688721357845681634458444729014031474486531598435719345933155793049306993497575901083243564196277494935079915609283236946160389343266076082833785732748092651692528092972518503418944786598550707350177949856705760332425710740181888070947947250857862627798641103765315946908550803351785119550550982020011515847027237560380227524081171796254144077028742543313936802076305102642918890511769616392729842769656220829366178688179375909710307611586820171535511481823264955551457184482446992592582296489566980403071768754809054961187893555822620028190160843463380473905935254074362566979235035349163092644045103999143678186255527356890035868185298816379963099819920696037049350693960398595531855581892296029175241187296678989673876644184198708021005241947957108766638950525841101013309010357429624409854000681290715073906359706619657860440200699320566005051956402903930687378953096050590327660406985194731221568851769951010776310004649579486289458547403260521548325564567433048155910887051948139686058071232859174401810102600580758186216081526757461689281631724386105752297339545832296397576191808996426824571007255445965075338434683199516927093449577355913149853739130534435787840445740046976672074414520279496173141953877226782427959397325704207076016284835934477791445312928258772369380154140497618629911222125273152546629143285874296666515032978094628007877155711445140338397977676622758577088496985247525138420143643449325255169172802791293778559712377346312312785293990743036489399827508999905440450274923966782188774499670565137882009817204049485033858823858304888842097545365785878373179050712113653765489776890418086609302987039071701259626203611849653909935493828355808722425020528702341815608221780636841853702660099705680791803368341864805350369925368925728832340617568427465117408620874093969906591202098945203397223326623325810331830358261828267478002696645481335861991771189620413932481634983128479715951836171246789925307019049943161035166976548455265932158491780713626580836781399544512237892922704791019418771926228537099035805510323171376915949132771662261296924907860558834475613913071084521124928409561738651297286052263216749260020913592037786939815051770355841024398894526184050527340490918654723341155601479416775090735421382337572993247681619140812567917472881584922981500197010363862880952549369318412709929825913797511897513133848611478463302424882146417907791513281744102116100363462711871551201833634218987497109379706924746281088022554231679657271910065631570000917682168606083737226418691292762576878689971168658714313146981651426348049182446925171867536058049377059589106599919234716620325693661784141037942909016171621604337961003060413277007489455836447190235478335380787249553752066853557747605907401960918528207851145833732076064461427820125875512592857356069204829617122797497586018251220460957950990005019086407526045454512378951045824083368189159814416906764876752546411268926308687615262296000879880161852748515665173916931148447084472836290475822775662899429663069386023537871258754845220197222066336526894810497230503136317883149011567941385653607396509285785007478914212049394674826513463989178511035179598987401200798579065002190357167414161602101939139241083163470403113231578179345115059800979616415855160909902079770046026852969439389763678565761450348418812103120929479174872530610570466940371460604035411795855607420834376633719087143003757672452187938069022530611060298928889004828071281636674235789800212699093658652272306896329305293211073100411860988363546837036279196980279886079997271428073469543878929326188571660469957218065388872763386122213911665523760067678349980736085127399936883749648390989226446717026998759513481979552970904832411745700103616756836400763601470364349030623269884989637229964707445962300700193919386054386472965756560209183604695734660129832990183121119533116829536666696678706485582252083809786205034080826069742166480182975873464215771691138507006011695193145572684537491402122836871849444462473739314566068729372253825068624076426262079384804744429646039370958238282855624453207588116442317339443959215393089752172860910571351286345228735241666736208127848435112837890467429722974914131907109197921656317579004784139427988360868064800167824551878529950131860571241135579732290167247772790972627250958597589123799450570154964368786057292126354302338478537374331498910946688793004514327314845420366806180014623988907819252691938428388027713946005210667924792160755229203217300869394859443179478774473289620713305082880876546774032067000451657247664611671794499976292755696366680222979074656185719691676002928523812810554290923226751052657352120660384556754310291080900231811860260834577334719885791943673037480443492482456208152885172883031226758360478774445760823148254876539267964349724811694550700306118024105591554033881042139390363014949822004496613926944011430843831799120272320011207344035891822761803285657414526245977590960056892930493972259505160153698904753088629035949714205423507879568404418228598694391931481031747142353622874199000971479867797941346282268821509205944785273733827045051290248663410245862958971603393602840237070949138811897071715308411265432712109509143297512751750654173422787206648925883976991274992233891156601822943300553765398692866930508746880074189478126545256046120566229293403859259894807843722978415884319394558715217781379641504982834251699706535665548859919898648338153042315719995530075990767197137062498418157954637938129382072871564312554516726693745837842068881221525116194873814618731566928769925554586447653275596321002710265920514853012143089552030580065327386106848371988419186948407185155951032159218337037969968809073840468774361066907752417594031677573511545430983963297852296481003216890842334383428094477606364885477622391907506837968740249625563735591145333732607967850703483819906336514208371062081117557895278516899818520713573269846434186000963374177052456504383479599054052836068617154865547321203161601144654558808653062790642814355271969455019768444271200230849852838962024156576978333688020596874060617028587307143575708313006621258764345276058933017825393356202829636334910894548083884926238813816528506594933376460402343937385956868632730610293879373729403732776399665303640657562658678687886196078817203617605637388107098591418469762526464893133043431252409844675399112835948346550256925650191933490944467271985320791050522603854749288370862411613150228322964218135729071373263848966027508424460619619440547488306583579230671281307102886335480280958481425219836686170989842512145188565013158531643255796866533364086572013504527210027165236343478448256182906147878077221679918788137474565393655762401705747875052970434366450387141554531838085873293638305340836100142512752665830174854259582733172645043911313764948049925641842199949440453550653269970889384073022025857785206610730790459002460123382537156907310028578108058532153476347224653743422345127164268557321662606457186222999111533373265424593432243726081509866402687850289469032541551075924820917689655257805299360646209463219029054887220293440528303080818608188915101770032044038857625504341915484298663008578999800441890365759184522198477769389368279648368880174052515565785893245352981714629265227822373208549007285607176445492205259822595978205444415499510641978331994199206776661597997047565247578406381782471969834413109658522568138215703044702783175522998960754050841044554825061995233255104103328405851890112494262930796895233398531799976962771848741544905372545915969695662240029570471430189428780472655443737274529075885744024510180497755824353474774127612506149470000039687732597188288563010705688009155494213450088507903460561773386510226443837148596735051117412727607741934445724359913837304144588028205398092682680317356915859157183239594369839078189324362384228114600021518479725623987473663303506206179835184779190394832222752058622825575306153377533871799525724332432187535770873072184212351364389813569665800486305925678350786223400386361962648306411419642408571153967513012517615409477669997644316611911616863461860439815169953150729115712196757642844719443733857372696993267378145757811477533997335019101086734066069910283562509416998354109908033593936771750882420386898124025384214776564039804665011364011038323771767803560137714077415537496711859734516156425509473733782622546135736635949597600259285195248062013339779818327128566614722586512466490883094366064327501290500329075870061551914888997994751051998144552324277919898017490466585133606432867945696877692868596148962716383195621676564585946090512126277008100388324155342442582405537213655038276824924417242354016821741076039371344744813195733147608922554245933642273267648340531918722085074961346101146198162151294403624562375767186712312827765226272276803302312993246057907731936343905183217423735527944930459790609127147330830667107461633019723404478700469708670614490866721288292234061865310510487027430416288619033928713661415653631018874766708542834904536655852542698495538995879148539679267822140869504739011805367819406794341331207275037765089870816297420619670473759540517506128459023642161230563915548213556820352811501951218550899390225232848538296646008278086098134024512017589042702655985805487817307468680072946112332673044881144056514805312868908908236019871735955489980711901297078411548212072534367856971601479295098085063177349971837753968469862386460163168513536065033823275378789051579548333484379660727565980948382893741601998518600822879957698453987671462345546119106416464250330211701704013715511005042226494922072309290801726525259964975268013855383418545873576960076989361020113217506381982658625592542123207247621560068981283481481206609429677715678968733596575043059515022138512781104032774424122161383760198861346143792844597674152320931957429121193805671279486335502129278868806486723952334035570937856777134784675653096571135954797449513052044927517071890465662134798450753701907066968573213262499697341347328870685852739878671263984676334001841263683952581531761809655110359090900414497588049029375337789064843307559491618306448861843951727278701215362087022426705693192027004650800528564915149162060783387315292984828757008568876868153018806739926461233021469393024860125811374888837113354204780795417795364275172546741290687530443510087438957035403114547322171420133750232186642519781217895997235608471514124949253124417510816352078280257277668347963199525648105637770931556308678894700114712743056926678010482891716310587493649168986567822515481706232033083701196158630219953789445748912022828950138243202875734351291284952295860382222565694827543763731311066276260583557214814142490538386633382920392166296834893010283716541233404970447754299364672711628625387123187775506531393793698658203651357684535877164618186062541825383928034996243725512327395442894527101858686372686363163276613542149528432344740885795345419019171362636900778329281246870660468655922801572568269182329802951541391151330570975578425203496102850359101745113794927138093076149314866707371684081352865149353640419577931759057767585302076489013014159819410241372952553394736594788407443497273137758248584572384535684276427046518993714817184616037459505773825600198639034866178501690723244340541572575283262752171236203690027254459087795088498724273128381797706736269796649666064521901884979399205770984522824565357332515683851576829424867877556300188360096632592464332810964740456824709981075356990794870321514554719454862684528617260163770296386252601569308410600266784814084278828485090924249552565266700280753066422168723993353825999190802306728491481864964833456329791951306952252009636605092959182570696619042858098619248003552912300305581570581930934396313803859449736070319593960910496032091172243344247981736848107529629668666812200645121847659331129212790004604411855296754557146155328852039829723023119088124529307612015101920104895801483739602517476721991088590868954591388308151856679040752734921283086489553039689932825715251243390807260493557686660287832952005872387807982181744184805777927828005555979176107057188652348762622706701605458867249601796583283011166816568267520803814252672011633849519554893542873964028577503368692774593410769303399574993290443000494262273358433902664603994953893829112570814547303310202429073123780697323995995907704118804781974968569995631804285826087534359669653393856870365667783588762127304468992927139405141978464597073546822660932891175631753504887566364727848373050887409585276444289207122214861634561067518408365259712016958218022641855390580771129955531110459479180350061097630260132911819556911307601202198863131374448282007083378590544675929587202386779729968864855530934147591743009716552504954361053873234749626502378565273812262175868983323167726631580562770045029317678314539055935509542604376864767589723545542144375206337855512182930434786173557050863291208420931603287290849510677593335823752314251511625055003356539539633910251848614410682008956995021480693130997769510940601863848331775038858598045596465906505686703205613547789973811487656683231948047723171526647906905893773297796428943068986073970546149315841934871129606583825267769277841389915338530118338375588991660507606802190493929386513924085003575728261809221456977860390012164912912257487571591647062711921866635761290882734045385744935804293655321352372560653219602145949466827091894828025590587427391487354648497072053306448301514591125102498731367088471374697869512731698040490001825443673873295395325809196358982092480166405439914284148795178405157744527554071824267321417685864326412005237535591762818124167787477129874183220221544123655080806069634421799654261023556785467866022687204074012869539363490950879280470537660913824982429092048599674063883850391705789317020006254759123570181796789958177742460664173560210895627057667971981982943194914708577096669489307918031099283345815538441569046227103701206638618041702294227070967342066747090956200834772359240515184993145153758575346882866844571967280115499509007733776856634856307351396072694486826208378361008069862503564078268060538055526560702529437705724608221878870880876792905846906938008229032638090120086706285342396094823622653141643485294665895175145273661900911684039138404603738318429416268154595931921210964949514206866740043824567332622841216748613561842443605485954779066929130943347859617550479427728803868210799319485193938898384187758298111587004375271314117247640024306829431072648622791128757471717753515429289535862821896960412086923436945423226237057940744621058403895652664448979747558169193381363787113095521727413386483795878610026021336628293721915494805129181816313738262323508159574775576541694906744207622634397368277539250084023697670603925907057104495783850388057143366659473114159074095869687648373810807537073039876324684849209180219035626979273374480051185565008061587326216794273083408107312370759053344153599946790904192246778741068990582181399575212948711983915506495038221363796449397001280437362499408151169260526880752728594277173617328185490096206589725885878511053137803731974302088629241193945583930939752795578872590907736666269423082424752140340834760153465609503558133390758410725050393409568396516075566331063152050061481966967130297535418542290083630004110921684012354703896477849606474678015975349344627107082548048979912250047150929224324177112497078664113618686442515862070902673389435362456623743107952986139153822045038464008047205499534530069532475259872517126535513402947018911881910151979918563912332219757450147035476280942100819223095125651117697240799019649413290478337388079638973955720657044415049407687306020705910086799480378954056071825614267197596086177832460158686554678425051464678269422755790740302844828200392362220506759684158065132733077579570769687922980266586655412403081379013957886233617028112418946728649224773541662332061553817714203812533886148175559517720525593552428299246335014165484962421743582029288405476400089825424802295738935138619710307890290364007275670251325456468215066322600124476911605616827986646856461550124916198096732218988048727014481293028979847226036614422500059002624521057478501032556523212714167008116184320914921017451874772706133246946443611711107226084509732560168117010108880063022987811579543517298090636320151346567572756556921429809202088544526494093559443519392834900793711826317312645703932833917327722209136279679319138381987947325912031791280395637193022414532360060758282101860147854777242931377102017504974650372478384039748576493770839654672410331085059655246996608003504404663184149720199489622332908209857877990871569161282094404438603618783864328975826868726981440229593121530499946458927503840256302039622038232371945478053803295797589265536265749136730774367747532047622556787622810685752110752523450707585041969184808541015070499853113741508025575376033756873336533700221437404995880118513385815009500690612867825797328682811009548780466893910836564155329740729425712373409466611980410400404642409273006473843201294329473723806106047809668445237091444724298922389667309269756580937331196432970918031541701785866292452052373086283133197601148479256912732335495792401831802419209670794448995540025811545653190295285497508630076685665542657793051739222947283295221771734217006252827393664523219888134594609091839651854625818821793284436373450269478242763276549489054897606339164695929953507060409672051320481405069702122849142568738660674041279744646581574550137333883642287705668947267433537795888884710807300223739641788225835467295455316343121451775111988701853537615667880350489400638322004354711353076254939191855265481198235517874383882029559506157994317619258330652235382573903835052535150306964403196037887558704099306839070108612572330875644984421646498059272615769252554421720967991381384972475441500301686543865453732381788290900709408928732719704068755413808201015202741051620452661656252278398668886061500058923435425942957589392171447894363949125320028027913725001508576137233593119479782643864740383856087750726932401605276002264871661608983725169049990034609187256956276133078864524352182967482521449061506073693929761421806446973632933910375694049883888030115751602631201759181215890728875898078789969720231669410839439966810192289368999736502391687560812563479524784544835558716453717059712029224669630269724318063976899856620560754994631440271122068800328360233899817184208689680660104387268209316496277628843912801471361565374495309085251889110944076402749777611028374003398632422438183629284591400096554370746042291312714086769367429807958499557315588331221955692133279906474374971116128480046438317934978994102820763728273167367431972088894294548367659376662295253370630772616654060973647158875577940911658600532799542664357834866973942776616620094429550069310389594680584378166286468806835550288603568919189245488808540261793819823146677935254878368576827979538541212521560043347576392419466784647851093533271679056312002298169328638263125142233571715230328063103102347701705021267426242648776596421529811761667130276498749598225291543329442284055464996654285972170815146269408244530907166344694167142517265849811031022168668978451911510457610639611550944735856554782460865143339248479815905401231907950725217749217671643455886870539480398815533804213392252538966973829049112244255044513773652154000633168133781849211407203758117343485551440607851409210368476809502687422699319026478559927303827072507960261027651356784065324092970932559011109381997588547383145813401190817615085667547906026398455141563858425512519783186142231962059806182813396929838219059962967233952434644292640745665042052690055505803931367903785396499204269992942395013693138508925062082073011883286855257322111297013160708494494751976245802070165310439447033385920089365775726372447403681009025613689115547421893248119669147442592633419539826698101751583864556438245898180933206857743433344667596714177773385083293531879146716250658452874949853377292293299585853455649245673252446284520416743095686106945083589232504706768325010182997670066548272213754321352268216575355600041549512807728058320133962999593080597459327352672371378838791558495514527058145113252748258684273025735087398957902351119364613090013070322809748566621463828371915941891322759125348916836640814232635144411034305270715552372029716508256819855765110158383805159680415478080071063664517909957869313387585420953571932362143246228825486566255504015670410146936490347654846774870508635182386877641991299944118683653740778366172070046126742392853222050666998034559188822159995643450327830232640187282659378476138106944090737308630307823676153533679749458748619709345820164352791686049302508570716146687703475930975041890823255082475208610246101845568355126914551266238055361888460536190584257031867989806563956070442867874628062617382902427518700772189238688030020277309006422802332124492007433456894201916357290371720622889563467139506490061155346684145676847187513291655865910715450377908844302727993269548754861660706909423340455101138256517498837509820410826317193278908204044590506391456505346328170902289376911637772273919586202134632393949660896479896505744506402649417581811591922214052866863782689403838869985291406161266860633137043676575546398691494523056721593338452078744464343725138151780359031031268171120256727086250906043384916893767277563249583603521744244858834136989220340191015565871485388594211794877129522609827307486188862273124491528370811984673557711222332339445527056478921626790273687384047212074965916715554629621815917264207886059693978235976058177830519893681836733620047844921258883206714362578965215491173972426930266922466131793872359163532088269013799222735974069448458894281132462349929194419988290251260636698191358019123790385665578441145525287773451740767857498554900582356658920584791291096278096283375541084382438693243319259986035474360361365917695599222957091033721597186844622594979863432089778226029982056701364810205407252891200546405173551247318657973492411313324149437594657806300246473969652402247951200267270927323056975521760301621552650592199625143870709028519835430811786611819753404444369627793993440448950553621069036695518830908672311049950613188930967649278168597962549442033993398535125113787295946998193314844347998395209280243640241082883437828489247659131727146430792797960092838749573914273508088989909173803562696855514926911620873880989160173608580969624116006517313578534805284461689645570709145469172956911188127988505084203223583912499849492047921167087503735122942145628837080176675049493613896034187515755332939801977937341001145199681042347433782951372718612750025745221257473038653886339686565670094592843734395252772813579604726426730832604486646362164731409988247977805511748039847875594590218159058707310885991654678752097881784459556981742166539408567249966832425779857797307800014338627630106376532357545627282929793229147333560670573826674213458598357405882084936215001011983258360220398576973122917026089614708898616988479600941155954690321722490258236787659232091034856477274383324627198470097315364868884497224078976776860422741106404497592791136774793328690095213497252922906744050641384692577575289938620176335370849321665622670488331825892322786681974651848768106742649507584887374358434019705900508900276268642296178124871206281052844223642059668740446623630304863120857624720253730558798612941109734884883434948790292558972931318741355549096799729261780294003757193161786273699668699699732510008046759925547822218634999114621515757960333589226313755326647361513383023884335948344255104134189312964103378764349021326927557085156141265247765589280928607702016674549358977640879409466015632534170722714301139798522636406814663896182428620480721957635462040449399077984749568461122831101139145400421707259268869136261836219415675285026510726172501776374092049899316608381063752418458946990245733411793587385323854255152862987520186115364254793976143899130143012008924146629983701951514156892756632881146612105300723680144651925426956504584206818136505795339490437662425682413282918651288722341523880348320523357179257522270275433826516133713205587393949748685022259440161694818381359855773659603955666109401397319069459592916183332832197699433122227454720327626220438437072509724076231630581342739978544560433230658840418277269665147113286873625170764592175279455122215575445837220218159914716648018276573428718374536233840400232444552537492455957498469244935837687051736447038334948209188797890803806495660673171292530440979323210149977546558983733232676600967322202134400883463678937869641845864117209896373279674293385811009944160223318096154802993848198344163879009522983368021147985972816372039204143144103675507470354493891123333965266392785256064311487494256442815730265615849783652355940716027323699927802832946188914635539101315084359447800113622942033583873827431368488624385145401577978362161471696297981556561811897620133999858290989380947878419898823866673626786055140188157977623280763532724626598115935763781146398019289881404267290110607958768687954523831613794130930130420338428423780114858178700388927249881707665967009652826030615211574789761962231213338420500064190606535103303215990702024050804252301540337938449281124452462968088377623260062661797455691863239493974976100323827545976805437099983480467477772066674518144524334759507360012635063359181108645417112706020755998567250181308718397112498522283480850881058902741421183494093314530781787505648770992909161348745616009223963212696601088722988056930001149577522828989587061224098402128481021704298417411416097030390948716555322990170377126899552240552352374067964293833854815157440523175445157301819924356157347702779256601320747149028454619822491888290577134150142357301323061071620754711419750359985629344560685498467430923898332170789405877957243029695676609502765543947745411889748883508935465460972803207539485315881061689483918166589551088893387054692110567079379339789487069406013088685662222116262814028620233689629945150715190375575548952285473895175324738127525308389453304449712032670548510708623147318284733150707252601877763421204169459518606982075683736482697705085187635300857646562592105547130179903363130021224216154401132911461871414944255039736860008507487775440212789648777398410042570553538657880143034843908692239330449027536791675742449917993287512306699519900729478102200629831660689638862931433925385675137641344392940343170229414596356930252317595424993323550162544129471657634342270504431859890503489896857130387693273676730723994562737444264205243028483694094156097681171694463777948119732422584614023463236515696380589765129171669403984224609409125735676716962484885549360628267254972321321790446739969471372552396333144539051820359647474975378585290829861376520584005758088272838922653104531171326649768333536397009904593774085462032659231139452657748024738572271633779205634351122300738704960767443565591406804023201452802672925698575957607897833092863673964661743843415090038349499437692919535432117256393856662674370552986761798125087927490959873226307261548827700429040225032535571465004165373753116507761501446784597740958602446086275496385082675336304376502988310732881180283481077121429846520628672009217022849061470698840507808236268602240123313015307664517736911026819141662695629687690153003614339820981745999428067466855079644531590238269513473631525239709751953550757862460792089968712917626752663268696606639150659095075087449297486199162655177660685883044153080769417981145066157890326542016794686857271303807440023677979562262122979298371740369675517748836315207820870387504905768373609809963315959575230236795509821564415808388893974670910480133515274914904670701839330542804452676501605035236540278342298110556654391966353928375483023901168208179666421058739315319856342635107884936965596501386515255075711273987277847228177577670630294864473042271499780219740440332505112019570953759190381877555052332597564875867727449730642479535926434897226481697327788934972429864836293250185521938014424359374181439454912413361139503180450591227805455572865400371994176953253089905556379528197517098322611174866831982646460746242889533120345000233173054145235600581966938100678542838190173280067661591590209686190300028551155280512196047341264568579379097467120715065671071179963075585820048689937827521082642440722349947410418965198251591503511281007599057893371342713813558065460190764804698044226254745015556383042641037560198649874759972717588348862322313258327713365226258819729259214571632007193496010579621391611630069041439280364373182010246877120102703190895066378900001542696177897195674249676382816781561036017710254827076612636533229656570686586434401057581935949486494453616151106036417284927267539917749401863122708528532441790934095609340161059825178285895119581848482933009540080815968107881510248572081835982067800331542188890003686315146152401505669779743020637040271470735137818464065176443830468728867328313739876582826593660338957181542239654404306169244915733094532129611133837431214091742520169209657216981216916877146830296639772299274334139155516122096722364303335572892852636292270373564384609410538155230499302236859069036986169326966901293442496589598306730821941161706011722746041312605719173235977669167423387825396035523370479660631639233667762122829527114625777463307458362369474629417940661120343336587919337903606951044954889505753312481695727067568979164409401530725918891147801611315833846119261367793655742178838368505452383224442781924353456560571546461836086511775854108837488272525254861655468698684474227981615001827759928633172712092545031886988439035906601387591341680330057260459220205845105131694709259177577797676355443658579798006714908392670064057107467179977477395626896375749389062068476177587487625357109041009495409512593393122084839323993235532776568567581075007399904295462358509852247530080282859283382815669618031242798696594398760139872258915473290742805386773245973861805695949965081303658388134458729835736381498205306990749344045264151506331222002370310260320622916965269329058331524285875539145758212930182152700635422233930265898730548356863360128882973608656507925106236622025812468112715699531796375066728960194103590761889032222288371052243884336003633600331435589045382102461576865549256942195747752739631682111917306629755913619113086955969025623911101490168748578465748872085222303589380482151377163560314076668949291124344684006393465421425671515542177147855976227939962371076652035812695163143206520950699131023896916354377632798020414762883864390836939208098660179699730758287966548813510438695006219095423243320078109775286762054636262540945632355921178753899143543102292377908167366625953196637306392242686346439050258579509796548499509866482225185894080047135645029798191755438731956689582745555822628587442847472332023324640719528564839031763007533435229508493250543842625722029145109233995285355313804526181440049662381393129973988983747571028713133978674035073872272784281028118159400594122745869312765372102635853032094194523263238576245442415675832188395642223822544376426119986612016799511315032241990402179388340058894096587491355102692796490142489009231952194336658507281873306607657987242387044211971657908953875366146530281186092211966447654830120884416412261512559512521679605252280681689990615733984724672726943896810858760549830845671824921192860528189325898909513856256298679965804670767986351529808429702878479775678422264724365142283947342325723185639731417388385083599329154001968637536425409222927097625616545200943311533856198157241772104249198156828279538769250092966196590511592797212625581122982157821219557184889811830171561006469793006759339663908399216243133770728060816666932876433048829303759223654359928043888310470828744257953185065856634448295846348195552752194173284636660197033762172462405750234222383580202989388538735226602340467296681591109087114610390669165027317240083577200888724174624734681600567947423195784408339328749184237581674071740559120238597776294133522221827133297903906317457817380434189624891621540671665920414118420265024549681936305458461792177984233113145610797278934709796109442229308647780189593760925796594704120652708899870436628704193480014997822167210300948075938824416674890883403298740521498647115073995834014701622138481129126740133035948900427502569309563662992395213145281679339193177065731016291767079203863600566698624806981778382895813942623464413394864735449566522549665007934344941611025519359525423680137456484205913993555123337997054134687686232260258421336565116160685985812177113825543775597504063310729457409984291523257808493275793143449532329895852787143782753491244014447433172793454781605321614794529961068587994671994006056638729666396044923649270686660971372887652454777056587531875203815464634973304059668223827367809708476835507404862519633992891249523220609122648095066084269913717537414806053486530449459596452309869867150179878732034220741929898556474432580288823125975075499206936150643256890178508076453565078267767603476709609490917006987163503361445046753496663406842321729034643239939104731538567943940828611673690640253829681343484360781139254838480342115892298438298532858192509200341031399416115291126734235207360284780562223704631397799545962844887520064689225923381079368509384001987660898330693770720416633861244241075613582074222256754408631874078639504394332994648998809095466783144838711774171604839594851701169423388132029703443674061782931306516863030706834318165482646195508799473911749669061156839869785504153771038278097371499868875882900744298695236194111588337547692450518599259981963000821237634405009012524900375089235583407637481069038673773739173708463348322381591830786815195687540733771908474999423094346458059875833178877356904722455042788604953854017980798871578486300013381290943518176778083819270227821896249443553385188188579902030893806000974564185344232130364333670143152105387921632565765601282750371126850893842797852983788961346728716928772175921663987102282284165020984206290505243848750376359428529297902999797190578501257403060925810188230250634262665026588560703389337795163464132642559206246538024508696606006386161523864753953144201547261461771689199607054662172360063426617892159094543330682544593173121990808700756722949355680234251282991147680565607727778209733264809248817616976430901847979415502621423979261490240996703599525770915800320945844665650170680275306961850746148703993801733408606605083771079055085168571776203170998052330594729109268531331953916420283886817906380103986389870267245718581397939665727440941676668851426217011528657519083357537486278466139451676526800758846355598836432913280462624648612958369960421451463473238566826644884446353610694108196390778018441097640113642283249900228382550110294434094379996906971395048510506203168171201848030143922187823969320900116829957316085340519330389424044051670642606528621238779884454196084574547424678119247672584717234111918185581759995875683228751633275493480755665644634116347328589588260858910449539011235089470902250012949484079216895799391804488391488622675543248628707046172525922602223175066955085044275091607650577200969764140095948726428951049835746345113028012871294580979815006733570339192183294218437936217258481522313763987766735571825090272333912482712128419484100005769924693944603278712123233701856784738617272619132275783901951158890597649278238533837547337852117266973244433527218563747617123024466566278137411790834893391333072942045667774880286038803030229616257262711184530840869015054737802947096212335935493064307219072069748250307067190615283625920519222069679006410083489588395680313287760285591698393403457045544400624024760148731269810189019332722200278628852862481014912367597743626094097534164035284275557872702959635888686280996138315204511048959391909490692300669498571708459362976954263826847487583376169639138571044077110726383933039120469015252529278363159719370841661042810338524919274907592459132041844041809393119504279553251876435132076017330286228553932979330261725928671284964053796169419056948847840406318471199845286488838840751750632234953576293667387858149343314361764238292191144330173900027536842176258998709465950340120153499975810723666190732556256625893601669230356447491274237870937663648453622449799013174631222687821234196233886066981412016418452870274230730796370618435277053293245792243772242103769623175881251305124717398216466906331611799492653203733720148912655465880343620454443800706556209781898126736270588086837125902684235814927292715626489100247964417557091393163776915821028969221179165500261319023999806071729961046093895654540365131728829381822166652267732674903457807367843905386599804232713552733661389875865701639887743560141839771574603619362907371136941324313364801657419176409721982837864459424351250147932208809381198282275777443321402128649854694865147596457528286411388634044630168744828995059233600639634982251971379903835128445246950177804737735130575443094215295633688123072544296356096657508651275116797942124644144891540485099259918804065801153105859624911117470450316762446432510859434804776923716752117299169626518004250634787254959247513171613201576901781243570149078363343722751605243869257670554873744262967237005621821026095580496527005556041627030697944140743683146958582409452032307028081288075030178233629616392472358542922082043498930830041961175285562705133735086772195883140504293427687076331325050027904881278188592274297801304118221016881346673142387054715996004841105756455559003029415002724172605645704148391609800679803942976058760188465018996001827657234871075455648982142533907295093216892033215374804448945399737071864444989167588496519196210010505910787315460984939773585463971751986924479507422969593407746090033386348508657565161706827860280208421042248518984904930283284058278495891274300518489303263849734610984462093742358039697349595476775789066189823868185359578891840143873968787864731272982584587696017908215839799362818727547228076135361333059562475343774892554754329494383106772921567514129602297504485114564022981594920937011615108179140868645785793805725987639069143652363298822601582026855667208950274452062515335041020786562956708171124758647347399604452101869194783410721913446012788903531195473606003259439351167857798578825545601783378286445020645439604252772856985576195221038078542948672215110535940844246845788951559625358626667738260262032970610973154401251789184419876263910431417515652696152381095835116208960400144495340709201072448825656878487717765660199087157563551292824257788463831646792727912806334473043443475628006041992245685249390705048355404044357370248919372241033154184959944414559274026385792051637931838478142539514386989886848631621289232161589827984594594783969944968242404029111806415111452058051750526700927440249603649188660914842888925588665727606555865463020915759197187036227560748553605152471426869777392196150440149297217131313912175289816294147389897030245291426953072906280145822603574957547257534688893768148130549658280933058249831154524762235003192969567043317787507209984617142036302570672834410222325116871745288736514024138106418260974781919118339222172734723269250471380211233427282103706057052215995764621996596741834479446347781152798915218409025276114545477332476309821590562347132790781417424096109492079823412348517218539506898795001195144021969252912577989081537906495453693845305252244592229064648910357186393640646568499739876345095287756888637807457857803986200499725605637446149428250005471439099708137021293693398515520505680013232500474208521534633638227942115149326018500653660828193852416901131214691640480800543361061322445032387932694157394536989434793742897987584951979407055746624685125378026309042559747917472071488888831392424393075836799121719805361245461183088836387846760718542588003599606902119983694837313567515491259312231212822034319618340929932283658008384081899969230772904819453398351265699175708679798253306212461102284305277118732427356502133125775184414886696375070375112891791795010713234648181266057819172886886368918391141729402232932087676101732633867159614376173799913329096700529684534749828799075935163784507311463088736583189880159386702721469589406820994749399670605626429767780277305130459976682205098329238449557279951680912200592101094214325502878028454521257832223905089084401853346305673477802756279923965981001760727276061698568808715517093314107971980419931626165606371293150705574001273082102690130702310166332433605612871165858832094961587371206074627578695580399297324423595602911430106533311407637624577687523916580258960104936409665835171289029856225442235817420846268531111340392878900870795311366132619224057478457882381028935269780636316416643286209964004758752630643128762129399680641053661409935325706380291751218375857142753305427816199150643737554865121461961975494795079639720031304181966022916031617285477368773278302428427974499794226186765814892561445155198512407200126381465444668734513247272733737943220233867274459570779172822028729564871845945643026345124989767293332474657679458206246962961847834913806447046267317563448606780851185233734576533696294586607395766590657472778417187645689672824330837462683800541183003123816883395665352864002982463128824682679161614293549514660245699967018565452567174210590485203704192914663987554293795636495895393632849074425509746917586546842966606652294979827438978035033702568618969323494222783317881359710671385924368599899218749954683228522805291365271479378158773388705445961696851229546663197843146266429395332326073424226219272640747299124328913360223447342645262363272007933811863341542994570931375884305334354184011298488227908317806156201108335992342681056947802043589677066537026207737755830447201050119650883610629913424914357277551176295636921706764145296559796792152984515031225964008040651271938276463293221561418198486088061344357448504180386691878077436699624520876153047019093736425549059658351199824257544488941245746611423605085903748223674282837419848840571797038557882503666758952359090027382261761561035388010181025878523931188175623402767281659958034090989368821647345189858738793066775895672762550819396298664362982649008447042083284793898499847676269101804421189560781382212722987261126213450335833619927400067300441732090399462889723338243824215370574604648066123896172153697416663790841860518671057802717776242312040811735900068915452294735324300101230195546726605531600418840250329518010653476534776741735618973858344256582009503412956166692717645423136643340380463940800157720618775287290447732939183363980997839492205552450356445120312443399497229275919063420492696558680773950700379917016646935680836304456389055748764236220492476533927536614647198020964500949341489670359302944166490613601502212495167383669695384461594256008481526950577136937844848999920237867770307644946206167546518605850024770647314125614088067540676731889308192957067135430703385578760227314552237810067860891399536064284032610962528958495348580132295097062320587649192200943829317951516743824224335605640764777463772160443529313096605288967361121266562202788615429562321879727614732457985961606172476739879178552721908540283437025810519766697137899804490243581484055985909756427085621781743273357463227231912038491596405079759798317204260999544718183680317378422084235391401210588243393556976810408138730823962043101517461297317412997414367096381479371632026341172917092644847859844053043569495804573580694638612495262517161962422268428781747108188416358063754066961372153821930945931292846366916542964082107139695848786228461884540884213148108501689460570141872163408153318999524936590088192043846930936543965443351227794982270639857903282965877997001380217780762562817370176215998884028685709532862694671185591209717991384445939968576869423380293842582278263888602788027073352749311065332348235575145397060503332346718506871953416053292443464320228388483578371264709577446336911392115846840244636167710102664263937816383182596599428408915787165678198356069221574291819366877314877150688913656587113919375280261482090982257601974534925073934813971254620479341637692243325996489640918464804486511226655738758642628791766145953284050267487845407364556128750088439769278393967527024789865330210868383269690916763544421192202532070172298939207413712145388023166603919075156027110607787147023864769570659042964044816742732770181398046805914055262774290980276099812298780980578630884767527996855803614464992934270347852341765195573368402954657124069066402272780774466097212732924093012587662259479374430618579751410284279550535157935195582720066562517850146929466579037958610569454424780893774987089426766758294489481576065184823857774116673519069200054633138592181481964754376366425602295363215074931895786290641341917131038912247885456907638074795408847983423283582407498500863218342440498894160761283110151192224430976271183384400512214833792771902908388436637116012889891510372185997652470013383475405504124052711071252127263221647995350783413986123808294598437232744747271714778215202456321505314336074632881563304386239583790572819915400702740879611729453296262728585623079254907088387462585382188463310566757345804353214081478767788043010982451379180554585444303106504080064468366737677338550598640496296394514340896386388636208140723015897674120998006347620452774247938480228676581099482891762151482727075008623235403531376012139725487484181912213784739050794015834441284784394286822399648838269673036512956344501697321381893501147241080042547601282507921352916337476946092241351643726410889593327063374034176609124753341030913403815567961703807468808304127132223551580820887814539331145599230029056722963084181488460312187703625132535118578139085012922635739489567480721344658577142100517826171206163231218491873197946787491163990969522643285446410429747756497158755002611908269249034511769735201086400043331053825261622943371492031458988146832573685973795046729446854377463939913448554242857918825794004074392750700705023411899806173168080610199608069326250815789221695810899433907734482375304474055647468371220775923168602731245633370729128008808462451139000458574511872490655911947633048503048913989416467975820752666258268878045004789184485321751722558667580507856614854167732760062862904096057399259703321674699661553879471766438587947843189293286432891865633580158342772495481769450406406213138286096037261941824267389884627784961603811997144978698158465344280119278879394152291939174980819649347395477147871036421291355420292881455677847935799032559909956756720872658613814247186204571513003189569684621638907580025609868114986585038462416313102858593254990914081380025912382953714375971095480167173499974952840390629547510890050785098352326762498665722498444858388226028826810602356073702371912339028214189204780922960029106826374486494856581949404900703742963700920732871880219781099072976095081489690308468365934251227847644894158175934388898490435318965821953784440591115673371377943102689162201110456627866945428492007617741395397653902968929101314979225228770680574029888878506430639521010954472477117562452464729312344425994682032892237838973635519980788999675306713171645246495366759624984959401431515134006382438481227320565197347358834059240568260248811751955340458004150695975909669357268757809097932850121344715722276843998783370618013534298307985702488512903835341229197164960131968736144932714843103387649002213627768581390869243182071304730224287574623872861822032887973900423800513077512705603678431370602389658308552744235864092931976559135281048561031077016001190284312577257418847619594037571093030394815545257571336081287260351784800910882136953884047516617409322385181151698916667883153782589160121031700204518119076449427973171160973975352476797217172847234920639762612073839971077708892301317140478196444151477198693011646623161182337683943640813009389654531537597583023877886206006118235719829209083825127112655477008752858590910315911614802552774437752167952036557524835193959754938053716428981974136275738058973735735661642811760333918718961979965633459743280484478283415999613246421545163770212860318067044303889899268645463255365200572298718162345362302608999039217842354138296656707569227928094788707937073674290083304831719967775376654601131258835242306514367260633695024464307449565057257831768525251474242332989446861722748923241581601621097131670363117845433629917839764370969317239202320204223716769816582185500567931932533049836735057402344041310444618516050088876209016926132389359129754191835446831485175136298916170281981480314362631965922906277244163932062215965866469375700034485405366601695609439693520510505219417053609341758938042705409565267221841031536870175937007870044815726290012158369099196772552610194871222452477721454018785484497438438005897888590158326295379282692310430402963239622884911037842256452143164657840586370670065425374184865712759690602461732191255351498564045526289886536083227887607206773493656528558265616035922760942362197042098394970809260219336309323143675543907997010383494339442615257547462378548686575565870699943761690527359379814775827199084547568847484946026376124050842540981900443293316364848497395125077290900325827182228514248349581040389073718053819398037638362947751836622740428545559725673028784917638868588760844801653119704266498520624969596728191464235608270486813499134140091299791882834373019575921476452055246135765967347673549694391381920227812459271398110155258006402854137043610731355650638851004584421386290597156675054402704075279359726150018265795356820191573497707407729038123244981144520319907174791763232003469115677424261606026396337396539132876206948853469918208016926592324118249598781175422283255659378107902066869392399008337284644850845665061024394100494418290925859113860476726019740737223457605331491581091137665732341418510062127250304728686151831168053100111024864102402792089926727081240217742329068335389172772487288012786235956940186251495393502476336822726121322331998445477890211437535017466680841050477727833524759517948073232297628279354534799996369683168070146703831418766293883738109317224227461834164715571021284571004660178762163238973382941929526021880246573635141638550582218988690735204379112292476945066556806940627125919126713756957617805695848875859150214893899353419088526931574121815025803836899232403561925627235002657604439260822616516526585304098689619671952757111371940404591552187337134681618164350683735102335420494269765056593156699809986129408182532003951564161642852287941728155798898362507870422765073495499052856815212007682442251105870891106891992918873001101361096936753852907076302920306200450683832728750793799681185492969460539589612976649730594407904749221660905286141058771782075459960434341372528505703012423985747821395238599085057027479309963741964560903923104713719147991529395002155031083073330339411773323621837617844611634244292253576963286239455599169665972372160593892147801981364585003521735553596832344483226278868221368223933953105290737778392513362821062282197681427774400313917786220973789108839448954189326132447790381074119293557410210693543835075523620661718554110216850930280871308622989205486010836809530420608108542406284430466818812283254129335443562172799451951454162900783201967885264967917867394559870304998083893176758498255668142070510158289790139500582027993843310346065734706106392228417793392188692952102958439201650178708674017660031481101528411992347936997375820869705778996057064682093155823656046296935005965706769543963805001739831769890425135215621364546478735746655828476445122985303494645314583027441253626237800337802234860150693954836166316956134844344298782562799514011554526771049528089827855707575021854687394034008818740226055305342060355220022560633212126121163088339398121865147668747619054461241527503311231925282070550066499626037742001075355538607410897286677001898883203919903316405628283527835644362639877873473643908499691442674768857708536526361060703175228913066100722750866375741233657717281590705599650017100801818541808460152973683973120815189635746061516566867737426943262254639693910109406193852717366912011010704495286904623897324335735588201093393448143361303100653875265169230793877904752085063769705563162547438190702010912669648794540631526708394267695359233146303940636661722472154009822550701442970358975842020987129389131009708274905383387729827299306393322404286298781991262234716273108410241274255697927327874285286846977615129966828722571313410266097468953100389467392966211884813005688223326636770468672029856284470156561326577287652778814239384186023205099139280467164236851857606338257042980631772453710050258360341338900989992893797481383790226110024898705704454069674833054189092095038363657859315310383592775842946687010726918448121601706203419552599765434967471598861459134838543901426432844636921494044704628213216023628098296737928973766964941634383373748659164177309222250187318912947449912921125607793705016570419238436708678779217258830697407237630951860997394565304787603457208123979913272005330035114095512503355799684109189899253830963905971800319944541728949221131945304695614525937652309703450738411574682307207266575699976669429601974411916091979104446338944985498126832282038680710002691084217441705854508824406629988069835350419396814495107967237136427998875658843491355874893032160743961829920765798968526326831484895783503945275915661225885123922579167517779962704060503642810657643970718103628600188319957654959141359608801087475810968701244515178654750841159825975839764636686660744361235494392170193308860961148054680482621997031487221241765219015713344097324906673545832075694090263882961223316299124259747275833525218637633773721742142924833408581211206409623897102953561773470349537730720742913180026577164861012322154221818032757316403090130809112776979297084930784480394549040729749472535721404626329055528601152999673359743465089949593662554175760403143314352203709771150945563054800324984744935919013958612486005381836359258638361161433061982562205628770215818006261544216187246546012560462994564761469164476270113675019817896480666865011912302354407792964816856414567642746833482116491878147168514282228309391248721432977497967048840455809803254076011461413442364073538220146868366366403747190785705300255114407570477745772157777258062503082844065466268179863574256052969665187328911907741212272525303195592587495555910358374374042255410426437917648032319946474146744090550328032177744287556698721909578448335999385198980385828905182391617715283903390298886849375393588478567158323949700333354524741041428390539793382922348190529622709313546504375360143386692583163883891364303524598260908156864812553428393740366054769078063929327906365199206833436226231103986787723279247990670092791624303485635825250421572390328708962347925383615554842199096758291294908681600688067248676126217607006130180825015510045464226489517063278342492908062690104583663822766274910958914982670762375392395006609924180034684254313241303910877240794144330826601981139246136908010095975368645912394296604942941828177252216895656723238904178769446598833776552710332266239200338619856801421516547380311829194165359529080904169486628097413221233316067002722904199422515154940877541098538672880998398401621712990198241005619681362546069995344204474915832880708807771260691138139272993570105630660413744180726096081106325421743321116621435806787912827161302814448322426832028848675485672336074645854673750268887461001299996097446591097418320558820825355412077225974142559837012102674321980093493602595147772625731944362660562015332772278446379130947142332571065176057325348682055357580623574813318448634147486721689930817204918945895175600335317325897202380300933647352673382170921927857975718114102762531395304258353180776755232943922139113965195383791548429934380238128513294635829763137016459616832901772082855659349737589941516075822185576228125585101415949982936608056880842234045218134266352250123034940296982230982491954497499539736938730257821100661272036285658193365763586261863030625293051231251438495691567866506465970291399542874738374977344197668284885007957966698381682797322383072779213593808267685475378485080647508990805673314557436042824417296043094808618034038047845147290445568927676576157148991446612109396670937590686081049934250698621148769640302708563182701730252155629132070352275467785522729297835705884171615851053899610037677879615724853594490262021691511541966318636634607981020713437253564320022766243355770609698677793030822572433361177485946704413075502662723095633737780804377455463987057755675946347069328777284212934466148280484143334295731093007783357995061689443630480860413007829864064340138914185827318474558489775569340010236807709039307742295182612042213177654773105098033961720490147887439052581845421821425829199251900329514260324945434966783615244037420646724174626257897011518407326443061912310480167884889285661906313331413195456938614979784994617154127882232435998283498093844503434825962785571973721851193917203085233901337053582308565790197254737290453234938229241953407923165248757028742844216061911965288497178173069909640420191570020725631560931441666456067634471475229688012816419041000440931929301396945416296883682734021914194544296198047541097653495458337396951260628145542102451251338299157887762356586607596477086309296347739676673286866949578969502374912266999980363405491807875490069320004269762451509918828051829051553820292204307415969646452315165453411215799538655372111571320899838566075594306708488750383804812329588967689738163715886786122218939404978863917035107824646072137729466834793704111166964436105193473080170691197755104541907446787935698511859253130455018087989376066127129784955717138268635011594805366014435314856992659467239657152418034570824065036155871254059224227837026047214074454114735582035564916921919838167460835363165593949722509790602333271827902369532015295915926850736108671645776166741839436453082826558874658916109209437097152457950128873529512516961515799534791642724384448757198573626224022367839234295698512088619469084044464347763864794423197018289618692115764121785946205703304696235039334834902288800861640427587841074691426882894811464899774136992140718301491204057461858546988124408544041278585935423884187932722300932428552948068586260379245491864607479632483603810918284546727333442385046036114097305069995061708007075955091969889931901708506750918058816930786476460844994468258377901040193807100764105300631978244264304811086500813523765506805708844311343583780496084689333726855496223298268552154923694944251067910250592164668815248481318638719372200242594894860115325544819112919459220679018176346523068408559221696685237424702536667845034954246985831341922454194554046865027870907370918486952199060431109227287935949372323816709949203574437965338569185925191836166887530564723728040519322415458381660851575328120239477222018984173672677170023002685660767302316754327422008473714384307565439342860581120728341145534079908890937466553841558492188796683831835947498779100690768541071072731780624292220398083305146837543321323598920311138588095921644260594239616559355543744630671614930347841837405655695044688474134305973115011377082578437712443967173112023371814669109627090979062622697031958245539544601710428474257828584064020986105176860363130343510999135637540498218461568696979385419396609697597225098534563644270324504407516494051936969610325495492205455852555469344753389191453900111120735281307719069921789076097919955303744913533581915061420663134187456603727995498587710322386841039450704358538239458813689902257975444555518917327660773174361934075920008795890281014495294951807271570541410762424553705891982859755729321775877043798337818092293319697468326351921612760162856783353400763846947306054183219858053748784668615070510385122547452551665087603805051638287215455165133224765981570508254711626978521037233373328716170640873692181809204394317329076853974442637833584495782028196294896379649436597749224074578204545057754392295542146478435938377623864080772573035515774820282777016187420280826515220379432042999116003029000020032749432201938914811626349336734178540633820622138039086388141390225152357613122385722442189728914208799096805359912915145319529070404164625951877668072879133564182606503559632296298819445776536044325514650213807403880972162731787327442486710981084181503051795622070616557969595278153940601139964446947078672080781235560033734369525728715906580656318246831752061321209106088006406941818569056791676584577143030951563100881683114323050794024505821036593113483969552404935232934416098370631896671506199086590587199563134437871475402383090483184133557722857029673489577098405748704875180289235270624087941083905452129306221922805740102876970786439254920248353304176598682797678714180803279516545174157771855660539458059802224985518513605571171371546042238941724949226738262024242785899688073936632454518844683511666290467286106775612860252314919327103659995187817176695005608287951071451728324268742080056238347361909504203097398870457290743847070158091973098806554881919848421338058798861841362678469666504377851136479107422576202060912879834873520789421069553100164036170129061981569655913248697208605044396475531136795111267719950522022859510677889781668259790561111035325886622903142571413614940562553106668496291300972634047378826754560428559734610543857847570618307003019508668874339535648389468003600522288912204136050498410297198295618608771048288490618729018236959955789373708487384870364271558657038771333882124894084515252000145090507873763865004552973353246921629749388155063721352584815843207813403064344896467470681701905494618887892850131670652641202675347778281802595541725235062968373395690539227863495469789550389055648453588164385935415361263524961286826474179349308288993200257844664381854392279387073047983607748665554611468349884609178216916297481931893433279115995074145493280824275769854639124912970451496545835941187775721213250983425063416345827531140321441172402358935788757268518518758743535720903563139081201713480582163528054509739066856828608884126573152271172863166929040172216071922752116970930155392833643481705483958608343484755568195446287223313897215666892593894239973931045627079524073287342298188599247378525925555189698249507967115850467148527418576866043039490962068422974390658432334221888599276002069941147937188366859742869969665735035954631468997912203387549505811406969287187859148280131384759653315148797913427011679691865047222197163430083550979085174739948371783491123875117561342524227792261812105590347764348525594812155092518882892338674766621525039376110217371922903532906652080395777193112535086778797686759169342786482475004986936923472074528568791836723139315184374648911593225227481046810866533516494026629638095701451626810929307174808724842574472845178443183479178533750985026232886085141923938510510591716355538407493478885772870148656975083721413250166243147962639777913788832595569591009040528889775786838877292757528920152600752655054224554508682553673849215471232728434569268490522472097881519406143118389216536729457048350372711820001218946151098362030141689409557132514925549899277110321717705868111947252678363999686164503084701731353868808760704601979131537805104914880575066339217774456256596000977114569997386500703463252250317768485263554332241205974196667545261226021489684325443866241071939210186164168873434206072730718062867698340086448433237713761773768343354000856562487592659687572385353178051601727655800904866266101735886614022099350701102364100011000893510177492358650542314312343235268723760116843789901775072552940060572518430255166569422349578495425384438129786805263463935509741009908435301573236701994084787782123868384064929753916233804963755838216657578152709928259154135668426435885899701348628317456811889374139916202394117779394218120213765151119879055311395197333974830383060710295881683786576722492358783485420910474187324638721916279173028328671183306889999962723797356937839066748180059233544136614595130824738629521999775885099410061234175996193546687433850497382261931285170369056058260058762938630420619462391734222016004955177536203368337699125986370280749024959926249733988050168500195800760347070197692570247396233598747802705025711437075470787075425874994245255434858204286923246789586967014169974884105958792000222916029849281472782093513455721071627140814829705384521100033936874345949877701202641014601858126099749497612325281674597530363945489376721043305145243640438044829305811071343602559425899408533331640987544394411163057095210559248340615942475413866282973581196842255319840365312406948832418981029340360732927193003851161683277452990796418855530087417080516956225372382784708796543467059561325727658835793446005797811539330071401095002317388161027655640745796496026400535292035019093592298671095502492466291148840500005221819625075430295927915234857696720299146600263252157346936133802517949219292210645278304579878462756455195509784598258646922675171587045253866626070030817953326379142715567157830161497509752432327755483154282097720432492230162465088628456492187467114055212580369557764428185131338351649954705352832974175763743010161479942588725500667769439530973642186001434084566043411631459725007724227055739123666773726343385297714057274212801682596061794924435500988664682122517295151581454504338353148976207596689397280299289858174975337872673924265989617494457785234005983949496271645843493459768200290810935177032952978423326933223671688488111817096357745717358007724712004419325908968060386697545095113829525771180656747258826047019783346486524878721521025957447305536568515856146154522901653887946669975693537142609885537821543906915660380997542840139935424298925185489841796168833719074829372607672195381328233316026801859960604587402709696755426300865129728758281201933458239900719547615753943107532532461423634111021773194929961491273468061145110375883053875280040595498341729030734375739468756503994049724607097572764617281821462242557462144441417686353694107679376372333697134566218553959899948521316297581267390383442666049092426543697174692699343969983454937949118782648602898820566621451746111010377863490186657735568076852431783995041829226285899305454975683511462263256155197000765086204639809083641211647065486308493049225159140136745097269716511664425239512743262499414165811616590411513891836708559900908748239339796904912308565335205205570611028348110895183432117512976428307249019181171598174734530592474705884157776655667244284192387098526417382861249600053642309412261662664812737034278748042265446298142513437755681051317230045799353280014412105722470137592047159033520867456933543793869482522396599242727413192256971375195035637446774134494722479979493547806134114790397379820146248203942185251107888501396907050017884740743259161243849409674517127043058716749784728563545694807336491461731559710520506353482249297393877615238466472690264421789198802641541012166851429352792789353563490932600395751478031006918038532485320089757786990742423546895007688857462281666029380572580633539840077929699461361362719756314264422787047121352872324497614837098882757372081107270340022225028932811169326162954381995156323103373324418680916283551640215440155502357689402237213126187036854424944411466446530592142866396745911697203700294309032744274730582187410888715875651728060232080755592565659459297667859601109505937490775693615074103774497083917940554636773759753476762550645963916788308531086534565412312673640976934879256067044449741642632067499431022273126789983654048397317909245824640232944832291418883584458256043988810131159058519441528361383853429372627620128852579605347126913845688585777139138695727701027607373937486874732094739437731304098204017239730558412244117509500104590048538852416115860230805130084395409129197516232220524402354197367889595657290936507519929611709303774978582434282590700695068644550547773327395858967557183472884063801633524181088398526349933317420380331043164818185837541201609357796951370264243173527048328684505494489964125587006601655255900739355043636030181945770584589089024688371844612413077938346672747626449639529533162317936179069148083729308389211735852775160790231853648905148500535485723574091777097232694016826756404780310151457177059430015018992620962257256970741108212337515742637081618970113629047973379442016246515707429223929042236265691605278238032644250682167425902162224535203461358326046563487486727387319235064214007053416735072626401319468275128494162015155304395172937553493200012187150352642454421528931485489961055554489543933629673888803310172515775130233515130763263285651507213870956887758424465051397732618510157750005718403876725087682874292016750070366906330177488400235975607062429903265620601274582152592141683475144316299499823604788336021571167338532507952746489349942227000410618296445976842865670985550160692280554972612713744047380546201229118113801247950401648115248334856188541874799305689626719952474059821698085993165180251195581071609377065096905277441812249362437189106041183591694342548681227894338163562287036661771326954478138808523068278472985182071982759535953187196604607609750431700929835485437351942396315797278198681938777006644279395043987779134283723050165749535058788087354876848556908673902677118392705738556012330269660442759050261979623590662641022588015611073115246371400067646976058604705760385467403334744059807779328682304357010923905120189880449512700283883482593508959849962998486893499865952783153115134734627125675629383517414216237931010927990529834018205248561409157659496755658558151754380324670474823337516664478898760351331627691575487342497887377829742695770295313236663025387859407493993169368739927284210246978657626700137986904332077167697131325842980790297281198677717318828259649672504303458277539029159139092601009546739279359560802253856574412469697729700641312326590237486308529396433010855063605362717554134171105149848647610286844515618517820723848232087921205264685452619935339749229235534075908361862256519940941197328358427052690315486106158491169093665494402916275083113217891745537744597865840036282362018885037416283330291610476821550721108508991236364364367587959474999197208749624291210171981954540117978016523146626360308266587668841596421869679497199444074339472971795002549140046402394170873525940284443617628733612515119589068170475128510948763602192746745331774588203349317117004887185555553410760875421591412832117612564550736004408660926223308719825588667044733926242610721491252363983220048755791404321351965304440495291458802978803069492304751015560390113324036621957462719981916088219262609138182179368579220364756636824172786505905083228738227444138486967516155350042192868329534190933426985228975112578067780596540340470868575406157113731338634013783797204794649808607471414161666734194646238704370149633845760880139662793558073529718560735819950723608581354901677060071760090452906207199297439277455752104799798232484192020961643098142176672490016493108417658117401778966386927340256518017492975135278358857672804836359056303851514775346175977925512138790924959900649892688990690446810733986816000622341469781112067454756414774176057645176265245414958547473761840045821176998070355991311109798832426862743157750889650574000595048146964302393868076595022699799024899232698549451543794394030273071754573403144087889409809969955376126474052736921248841476856043413524555953363429085078932996899761475875685633934172253419634316029607414430870503516486334138269037697703186691936368339197378993387324586375464789519429862169641743679802285209245823544471564474868640295697090869168958024599550858061416270223359234802889528751724558880971320549641235336043319180113375610230299749756747708325750494351118420884685760981298147521266802318503406090915015899318729633131138681417006032582057099217959743143744665132088464601679160936021188931903489021013091945657261842244334215431778049388031424221078062959130353095943913309268734185498966971794921991989359348820777375575457063755829352565378334934866890370410646839679307264351934084259485410520907155665920830039040539339076573884604394240127718794275712631348303266752434609086505520988150673447091975247893871021322346927527022527267329251208108698675628426617160597473524682833592727513956816319546997108441501813904894395055260029214892471518175508235593696012449870575508976834532365895519279469040088238238129349769864136318142593213511747910827181251866577435599835347466270812112715779269519637855598787103259985622270566636294102338992977583884272545311506639022567611069326913058340304865214937092742925869638279872070986299939572213090125122277094092274666188813274560772118818827517692603192414602539877407555663196181184638502332511847009467797623327255881419474756202415510995412233654410074085551048373096907455836687897436283117326265727087316481463875209577917943651814060052046150358637244312115962521264228596475502130425024289996382819881443974501125442092964952000961098078366756204953415073616614893667933424851410195117575751432333594054241449108537114096653613515382928559692311760392310908790679300615987356152236336081671375856803932908046962242634242933537251526998041631461825254423213999314716987204408266964831689786205512816622625930465145971100778321649388860602706556343845181513473259206839885677928948829580285323631774565682018972819201270817828380351840573425606320149384649948354781139313756661436237050854633518731140738664172320275359595205519349057355776406536243185366249151964472462367759168291227409278520014059169008752537453044105541426799998626842530288313195685192662574064526338549897881554377872639747589555504405276488855724460094503891209478282538802836878041398094804278444312236681492455443562730474227524622031776048750988602242629451384308298714125587534339355394583288226618109125262586195272501330793744636615240609378056906671650710616718398014337831636749044581028613243078455968891584477545875693991228117100965045609910566416215781504085727800416144779955624849457258847325016497647196413067998388424821243750791057256666711780637359579355527864148737769747856823869663280043117616255273171805257674417785275193483878350886653967587277031014903590706709891141842284380766481257437343235256654226247708476068458808840770133063488523216680548884465643866743868650932103970016656803487892923577853811104245192431073633942895263224154425826766624227244473001578222467766172802118697676097920487705614392163556785617847118289570070773239394570356918330655509288738964842947566979522100341773915541747278272740994160769542162333647337600042509225240581153739953138672231524214916696716095483893354896402995730107006961293828071135454027819943979124757830403946854170319477119415675763540736857323050102230214043804496929869527031978819835782011463272858400288961429156669267014970006607184554963990411688892886856057744526184213409716983168575217443313440349549113977869868475857773393143849070735756219649754116097651240216193953248299159488265777357044572221127782459781976400107153153755470157465094346763985322165599985078457766645155709405045943017742018088535485072699866796588229451241497126913107631632520144915320213980453369542537034974957616337876737657519110102231301436105666154933179012955554595067090911772594650453526787642511432315561793566048566905507439519079063971723202819437603904689232940353857165495034210297995484354463159537636139235033773579066247544027187435132071141519372336779400038365170200061719478575070113382059568475937899637346012000453345705654704129959384485064642138693525677857246043094989189939284979464266975452766209025103069476982973858395911805014641986147345189391372283612605051440875106024416734317995340091348252914279131311472993501936969260962518136035458021710610642398181891474131864993379874176878398591649722403815257697130557896401833748903870944656841008250992303292940926836365358193567876622081663769556926127285765363613793146693270653628952801765262002483762349739794943095777339525910638643416312786404547596324223913682136833022499425399414193256146889158972299467043969816296901552584569785391922540104107003143800032241153839067415491192357653178308533099764139731212055663859069126731506418067642756103940861046766704705007764339821775546637567176650367856402054188469346271121254414249135961899931905529694657066809878546422408759456962441256678785314594846817573849196309203497981080271525925361335661382894719543739016687554312340895734656776307045218494547588129987676881302520741309658014536146001428508456600687715560515128400908044448749248213044926210342031256633723920074872342327952242512203112127336469642922419745555315779443529546234747233524091080736785882197000864824228413772824819176217664579305543883811281174409402329303702113340611560180422752598601869406944131038872007939129482736054525541833402596203318680847290917440323170872785676039879570641402420118871685728096794479365558153148656706620366903921216685197871539131680684572878874841066202949953079339002398134220005426943124780898678657507650493358020036733697177110159539664330676252900951399674884299024758884838431895694222317497631694866652225496854330731872679535274263182722847113145794236008519281538468562335635930697140728001604475416304005052196643058614072265291825624003221872050028295612103984307882814589006187190437216970342892824737764286748475634714967591922936877797329583196270743887355449972417857638368556907643953869500104109346368032379015055173255674777479441328701550020486360096583430646092946594598090762395533215869044890659967830831392284359097248952297279641501755741868749285616099002591271072374783592806553268198361197532762105881145875822830371600395416216870639867716633103224511983609321521468272174270763947224249144809489139127475053827176995223435928884363742828121155579827510826055534196598932361112512773206596743356100261483076943339723497460538996640105690031710950117862108265863048563622782753725197602726836157605925501033020967441537712428181013766997567871567334741341750260219317419666752247676733295069560981075743069388181414982452639362658334396169603881758754977149662835969562886312081074254246763593951223791519364604290486208421301426004816337310215177316929338810763246906830930649963567437061329153756634900751067246849756990184128470340390083364610300996028898916167170056184867396650939707864380999991663837372493468601771861656421208285701867875769818744227873260405637807219512167071280847079971188269812854206484235684422656725993024718204357535429216956483587224585442096827769071200103765997214840796502641140795029126694537725468158305874603194504906397097965533193799737082671703839151272053698364828944598630249135023123379586745913676856558608999094608579861786439200980203119770383552724848079503896596012143738898710192151179169852841629560972894087651895268494554079160312617283023743239476924085053085471773138110415087201973796225556929749935734394532419029885037722306260942511980790202098703290717162185562421979802991663056921867906587463253886759313674424616968142715241067523368318690373283355528709781918895001925920514618391116915216480754833128727449427459329602006531221171253798609875110131500410749674959875308703055917946856295790777229353521738639828610166718477298202751103570488733084309842604006245004865435316486112200232490779541169333977181676371734642906013820534874257702216542149005334350573915909186193231601058300598626145041809124360661450178535431103721007306116611258547092763714673936901760978712103183276490287381528507359852462557108874007380108031546237131909497066008495115313939811972648768914398801836274931030178747648901388591856968868316879181164083464034015816080006001822125342338847478127519589051960159442898309710551422489980829130947628126286575369858518489141660651114944328249764729346881352750314307664560964788827171082307962054448623243511083470639529067676040917064597445113195881692966966698020395329661135415602639473164814227537253932453420501747314766497877261608979504688222727664762826256202670339564791638403797241388685874087308907009096331608785017086246225773500415111222840708120435933977000808067771932305259199845929883363372547874797479461800795147861983268117235717324141758201870444584165820112504282812286619032871881205918783697243133751447208605042729932483566821003987239097076438952733872110051389289517442376566538401114291955638585251424205464152736219606402349199150567526041176741070201436388327772506405536532601596666282645127310395242269124632800044348997520554722355199098760013708713879426310177755407013035267346159415416641356344154388555334012928611181059309916509271772365850497329630253898631656009871525576011288713105531403554379559358444003328936143052531288243026847923924148791143639809472388248093467434651052294326265612476849732487768984171713456741521261937145503358068678631148946372229589229325653348214887701463609019593732439416784853045868226594387707200466218566766557521153726259738095810688344190817939487886599490525815013132415767200307804584926298686548045869310505670837989895402902668737131639212846566317388923657792234951861908656566634755717112707986036468701485295111686031950120447625824367279964099577837411191438223654774685225739230603196530819752525097009537210342919338263616849975114538215735712497401723938728168198034226650985989803405777355318455351492004707462349704077012552371764470193730171673263956569663841269236402391021389016457262114804415960247469525780479470792556098511226589853110575528094152246781241994653239519953361743433213587529929354330338179217781089151375013917719548739733151814263637467329216450377263716569258427835564976903005800188030018539234624723275103171356321816454736376817840230024464246394073137118853924224416191065232698350059085059953483877940152366499022621623939247129410280623641064089224560991234628202663483668989278375718354674467000044796649227883947279622202810207836050942680152424886257795833680664067760151457492979741122010776944728171644796071861806079257825996675649169429038658054241054230263650002545680378405715662015638059546252552452307462261545868729811368559467663269537790754792285085612013326925386711561178852799396972859675837256944366404901053245627960396957848619868168557259167732131353092324800003960071759974596312780832759843002445207737779336436955608784519214456727767025021008928527110447791320317006318377019660843805182979792024150625195924799435042709757181577150159354472919207582444094938061346378257564864008640407327672279627706832851821140411532214636926629296808576332444581316213414470785842130793097188795483220285516073695122664335887834020546505426001983923082868705658115318036145847406570368630869017710928606024686351343169172612955055386133100831548738432924666433031611940254616083946216158770348957107007743158656081031198764956836645285485900243312949530796753921034953887774795519744077982371270039271128918058773280842306703262871741845978636057513993456223230882197492107302782326565510187968595357958143292266581095297518655447874788158138379634609009077663723608141906212407897900153679931619239421233923506021542519231495437356558418574281254841649974329078963735611999554748763960216871150643978790246641615595779263336242468814176834034941012122044108428590607880868131657511886590152081842591251139471649514147395182420992165525778926942739445852075234278003689869419919038344412962124917273905899551396699278815292458268733028125004832849789280755109705196350340030817445197206293714344446584178574245777709179023609745946701901515273571474540865670896197425156974902120855592846331505497696298713561244648307293827304497236955478726684159683922225984829268213824681058153666394532178084693874330251570977081226933849211513125140744642435707878082362335062980667695178990779427811076529154477487324193581585394505031099672702734144798299022481120312099527010321400145154428508652165660729321734113812336944721456865584750850316671783787018378435050572276136003312132392564179854055166271208639152813617894709939968410996788802419015748599385049301596631263421887536703081707994589364491669834873022499045987392753694912818069672553966132568448814210711711141281945360039733469865202386007922957307294650921315012586337623225825189048955001372021486671883691017869917634331452351768414543470855296478055955953672362620529137259595990041012330500050669062155529474780947923944176766551484841175081889611046694224614153407944947053900188265944810599515985492583598560215368481280459223709680229331995463542690935827635946256098626429923126797666858828828241944764534871148565556767466078331323838409743215209826273847277402711188831975942924309210820031134394369295935496482841863053236495916940227379316710986899059267338654801587750411645558779977590974259806280811505248832445748858436918680788630481903196152189310333636814020999651106524224584520102738373277554364673178139426969370482069633446436110337171516494461306786641095451483192809266364896936199059253651497015253104573173903143195926561084923867110722870026618805304210259131452678195227063880295098198246987572655848148659171326709442825951736362362346258986827940858584967682590355525436507233931509083530124806808151293733979731707815221910946259925656242065067286110964134040466332758241450746594535914730875712124437954002904176300151504796056987010373521947928253237536681291896447677292104961108019250053481875403471101155192051895016418178032554423107030889277872757056212138915836919654026839246905623904916281143167554605567026845360189953649988325758806967319569322486070250035448311255693629136548170100108543866094423843360633927864257969540003084871938178714384544498829463392709457318076111892036616733483337525241648804022383201639596144353218455609125640020542049195312675583184338387576901893309891596665448820694748929535450102159674614226670675301680292038945799189752953254701577021047415388251577205334932288651533656394367942627666672819007376389364365023541736558652191234189148878969764203676306480571673165620094386389317787739552467349648479856603664070208570445215995848284926131614221098296542325837989289639984279544552635446800492403681465216436439195013566411326016711649005447787745111100554765740164718847569334380533961996781521835751362921074945693490779083159512679433720107836743681570195273876976278432101307086339706178027928417730177833225901382492831820088435594015750908773504321298001293023655445379454851995382233090563887196273512328647132958006768875332255356110980815939023029072880822921450693557614634442356362558124239895728685721854720651726293869319758202063503137646144212050017932085664291077043772900596277551644331330693569205491051174366309451442738112180660661582888190779122943368287929428320527823645053851581065992494373217043038635736535895085902596257054689528278353844324040267938854452390400059782840911211914823256495673696983047253801888761192164773702832238315191956489939046951387623165890714317726186342656108239107251530289494382986688891204220028469274949901151897720576761006901946941504724985081702612394450418131781789970186726526319326410493179197233884476132412579763820733449248156410032589484742534329789835365117990421096616724304550489471374578569209650490563741164683453356339510321941392319126066979610919570143955359666207123015521855714649335944894177015153995498974829619598460900267746985897780747090741656079893001620756414494622886794494726659208320419454648840102503421864487473166038782341823299043774437817461287747867399705985134939649286983047180399234704881425973153031945198853771665376791998476746110927717663851142979171378124430512639068891668365328056431462859648958731371537293308942060782981829310200531464869970793001054913026182139176137089881182201457291652234477280027237152455910393172490556437154046289587503005185051087350682648812035097619969512469223005377641942824622974850200369654381953426908899234007114851678171849614207685697840904453502188731642808994872202518763122116836490732621210504271726842194038280297192782752351551728732400675941200668516321591441756898578597545154997892594274717512598793376341859085327128378234384486724551637562994269323049171322903701967596531436749016869036070539209121803171278072348169786465736171918349685880464386998848739490437593937562980765453535070534543587788205154099545838381800015005039269376135105964512564869204135445840145938364059504962091462117231136728347691829139920282345571261196078949749214376568424166414265832341414502921595651209432640789388227700338342718154355396174330607091301105890942834096503641837560102526154384111175798587169657951534688257492507391222237873965208342677388802977095628600669614007831913784412770487010367829724217736265199286194232726316348392158447927269382905647947690904821727447106507466755420599453389524398132568676851710440161307315741437527171940367999489103221945947270949896889307868266146494578779559609843986443607957897350325355124754655026791699119872086535859063776762919114979908476016355821724656895225629172773628485759978849467831774980767916757296787020412798468467707961022213396241074645003979361287191898928577199212872756128983699378989362701934873733339659988194306498495914584939032834364034639788554684726390328324464042063435443481318856993691443026991909241066593833390568139940269103835296081789676370588149855579352959058272342906083665366599570261996721781400476063855584542272921363058414027254551977138041324826318411153158753304125961514166106890265287353103975886995514009190564626979501525268117820016265955297562814967682851076954916413555796479649613702274948570993591928256586718426571973679155748689375805875061129161384605800643598391708873662253549726424778144233992482722106810410543165840551320026521085888306551178718028987028646283280905630312458692766027473388448317071694530574471133068321346663600736504763077585317249411382397812600845700997296434314195774549469464192725284395349956882864369430709789954621727908291003175796711471171155887798546848454195168253157640109822994499344229257843805024352739992394163971140463743655183969769028149238799132457902140478560926125015862787604291357848763552072901280142817710786984526650442678905937476118282410658074430235070738069810828069883483020628570675477053345125759488639253251075379509131507634538961079584048993487373638667905040977935753383729197561572090611440126344616095870959849326637564469477922425239371668889376622590066786113763257416912916829617773855842206294108985269712318919466592518485780567945368005882010273815475888694689164262346433321864542555917808450939603641460420702253532718241751432867536252990416353156770714259736407558703166047528019938810872887821220276472401423656441106509306260584159171311999560095016767318440562137034618423384535663443174668874351752887228284987525488763233804914220969833057101966072235067194734665295068819921806999688899977093917497480511972510279247462436046425590354521651298759832046480222915701792928774559567731741365865823732906105767729638720417942003432920113768725667853559401376972252146252937235417164834294351558428118152208162513256286180459533735691228420424697371090081081662074716160241072378657293453640838280235706619139628834998794897720203113041835910181361796505515294629538369425451028882918318191267889632294393798116342838996961952415290421828806526461094293664181580630240233565818311272733111622804964995300473639141019275194447759926257670884333841733285352783530364476509075505433080747440472070345801101811128337654738713045200019161697582171486097902019017866624764982185028156428687271827409969036789509265959651036436989129752794906204971138140756849463364607249301005485419839031103446530022163006803892689312429871343000170289456752066405232699167353774248723231222075688032597678989545560723132603523061041978737277797613660823089787746010691862659401415057356102517501707218119821973256965087209269048198153667377529478282564911230359207046118090349958787518291712352088168678855987897028418688436072290743765575451507908045923901057033429005430092323128826004565287504641117761783679425530241946838317612256106610666256311291934983305412113174187035439603839223732683782256861170285099744969504956372740006182436886251751402370832927813218205201345356634874928749026381702136416182434051684286555190210313677930397833964840710773083276502563517548822475028796091309944744549032598615301692859836996808827590278445505394890183415154146871637343954825200461101314431205926565721414417719241940454987644517019031492807859904296372614857208013865562232785437887944809649590464515612064322299594354914980562691453108530991912150369061965390299712276929292806185655749492484484158066306607051594347552851202536070150790529107148685704126410801459419014640440222159740589451264553741486679126668830269142281920680422854739727522345442862947008620218073301186873613092503777555717856472364363803005008677761568606417382855726539522792411786315373966554830261932849324882911817487435899558499442039321928321630675094214598503203712766144247350879380151927941114661366746614840810625859567124093617262172099893694502347139893659561964933301148858042414880256169952085206984768827273306318378074200505121214168046720680457754737489970576105459254889141114717594489811660188863547297052401280255248058646555855923367630514037633074263209524335683381500313895586326188620713642940066049761410698680507074822006190249942359514493186388244939820758906315457962418038719167119316951951690630077660729682694367095515406767167506112288598670716586739442654389289779550741216337714911927731412670440042753551264891463424644084759763062030669093267620520400217975935307737069910389687963019757286875699955872161116974381991353692860874408798748263241127880786904396807382840892044277736619990416794879476614846605035678554813767327110150675195231726853946449128948916037787634722684493173899099513236635377933311570117556644394287756417005287625765129137448682862214450843628169633711217745052907821425258971990625087880102143711441121098828416680977939242796644002878955110657075619017502841739055741581382160807110381935195371882081798569711077501434926819086841809990189399490234065423895667939036887037549066617164839600531707669241669734125612031939796473554455622804330891100104016891839097231949854965740813267925095912030781096865970204331662225912360318053223057976009591497984772196193927606518588729818774997456628878155334268238585451920524166038619876496288935197276633402467141270218907114519183916138887807563686033305346642780652515026268102524892064728208198961378403749733816023598993576060425134072198617096095919382667076597404990879978990082236269980799450004456841237651474285465732722687377192728089570945768962193362613528116550930441524469629023298819997654130290396493264437085579972091415788445072332282256689110071381307616966791545625059273780903316282296111297677340128143717834800509417667830600877315776326479146541273263191496759029749405647929048888486653885033614514413174268058214615263394894878480090650238298465475543764140259089456165963272856181990972721596670972716682615501119624469913773433811407056963285302934348012458416919940581489958245382665263509016861603198149027588973188207611306272712111141111683550235955433489019958612080876818620073217546382533525384268884605451550281538023326736687761465862502209211285610441078635958647358130746441449313534627789174932258350728561955243514443999314768708431724171520742822507561491610712406483462590596663028939496876329223138505829890559140822220934622465642167017264842824385726557811490142922690058643513039781330391276683229296624603751591332650201492616747551262884491012376099002188218555377004950181370471096868353249178688745149171971874249215394976918758638135542228498440536982127932348670790193349118693772555749182356320471210457633352786867222516083486412239086399105656251261072085904945473351235800045857010630044167738135463490350347422225503301250932493196991705199390277485563424148845005093300209737705771516718892862964989044802362107553570615739527422273864233137395270592093689768281050059849674526347949880536865345289518531439304726525787049269914269337700009917210867719248049788275223173434550203180393773558522081354435194692499089071563932063294783100789740463737648843980284267794348364631743509449722858144100108583437045668643030769283701977994210300050214029140354470002545612583426137491503333674271802411283403812944087526337844051217157970829777010075581983501396247293610159402976719255705188313495493853136002619614098124976032952776804133662085547761526222568563066957507258152840365550829445994145680713712320768122169489393850041554888750276534644488759100070405360035295254663126230193720222060378815664615247160924388097103010393148610456905341324646127722788721986001499560925952119226061949691924520457394375981223095503912332572166947244671900523918257596111251273326498671145290933629251248141127667681335829599721705474095900556048432248063571837049542435532554792851648581738352283413975063714987182226140865368139388408502091526248293449264723674463710874079644021405282587941568018419819337780063030426269358082741091446160170246466720984145952301578012320298710640193195079339733116033432454751616691620066648815294112593675524828741447924738151743257676074851275061504972936352146017555295166270838177602038031749638103088655667011822701217311229716001646488632777994840511727876208712973755462026500959360818338979774636427520550858691529037801389177214877657301989556219030310406657627689537801901430509460909900969705441522285556839349477144308608202524420058341112126900188154221689143267909276238879698881425394061580937195791388702182681131261949063034972654534851428563870865964686126423926080643294853432165058415768894639303720227505765938237961372595458033244479406702533077909360873293544349345512765025156264575607527132153742204766488066360252837488521504070523857049564200023451317539941576368540352625414745666152540415819302050603380297589116212625249809998953453686428406028021072376627751499215428465499235241779430727200474345762023737599680142643436534787365735550817746445037778855965091269915329296932322165563692541635525854324263895680700238278029632625682040603036549968499484030585735977722380272144368824333681293539100507174265440833056550033297430513297111751996927694779102219272954442009556123895449962561879769210587550286814846297541600433553346869055502091653195630788120562662702177960560721612446848709975727529305496658438026620677636481452699505417490568218726803249369435680040988075720072107632677451553703519109276763295865776111835664010848398685929137768560900926957044556555874418296392241566201986132044441503610952495039049111114005906867377286846166256495122495947725677886505010798089620606288396953264128730388241578619094451181464623812714333950907027843953561579642688162312454627235720409105907962810845779331765856412915169856493603607642898803649943671574920274495655413974366752269582441483657146039855768095469132590041521271986311706971075997405810789849957048397344671956643915745311928752582462826481124591890072972433009543610275353079698298992971866192477003728357556739613280753769189440816744885257004775306091953252453880713554880910494018292517836520537019760322032583588397110244567896582741913356111981620341461497421927860178247449274472032326358446287070772749717034973647182840604205820503266502012053994987364898523879033138101023698811112430701483709912862436920474601344958122240112992855641832661204922462376187734966985320536998785854700196004831484581243527992077884458237728113920258898968334589105816701800830271963567687561740602179839012635974200937720623398468720902737956767207504458670603108977303302375562401386140244042679358537879379124091645360689644446800593254522649156521731131183621627009875565291279396105715648849193984277185628211002190785816641092873568805768493787922606631815646075244501752443944389653618070412059818792598633444663319430393181329419853316802221147144899870779417306557959917649213516220565518865294769852097282687227716187592987103623178722017384380963594433413469186063763617822351091078156057195928055785519746287187470152475643114194554718716211805066590520223777828644438784195718376413528862543372120072305721266493369372404820224063019834973673395748807245028797940255159177432784224100232019705778875403058192981325623194216834259646110706399899379332573171609866041734795706904246735176921114861652778611012556690715831608725068480340406153575496568838924593528667294260508029133464249530879431015045417308391901578823781033794859205959441284841500470358979795391960454989180037328010667943873032666539384361317684207468150242270622024627707989011863254473727882586994408172716997729709214426446791155009553530541028132394020681349853570560823862440941868360654200471136066189103473839340428311948079123780071763296461434662075082993745196153247713928099190069938292969910310816771851571920102733474957086922459334868032975603721537955438699679525172904358860119618278169947258592352160191734004021948245469539220037751708190298744381990486698407644332134741140844478462025187367547420564806269282410986743301432000637242714339715004616437759829080866915873576242908652169421775901994842011301800272411206187580159265266778443275454541494021813187764354987782699427099802032861791816446409385655432891943597508505126645888251147203406480156009104154595743598361534135021041569610545347168163082258203775442169854969218993876375737181489461880815417706894811305152560273523266866839969957412543244175371436791860725450814655773500565371261590701113962202655102162487787955524419611875074313956113001593120364565817929807970271726801051338779119408924372799517005395221106308617380281520686021687344455218482979403190116615443683453768679734828345526708035468917074723356992883840806683110188448971940641107765760187953502239531240295131315646158096852086683612573984547179788940862324444803241741613802434773570906243913179372603563987185610072732212763803447378114295542184037453956557230697059485637515132728383106372886607708877220475944772706000191359940478851646629819277051721814937781233675754947338797982343215165634252470109574925447327564318686062467566488704908281744642841304667407214368048025065018373986127167456033151296996669543845218506928478658775073282250415177448725109716500022770712276843177435465543310287681021314062813258320031580265931444012257196448247482924742540318214083994118548478562997698225649086084138846250991098721211484263275047767882527089514404573067496279630976289042895577870376363530506446924839531229451112030988179291659329851326820285167799684370039884321761776196320451287296615706077119274335713332975574605365924630232214540202500880865767548915039394359894203979381358845862178691690858139927757544797457311956319846101531617354238768741153046392279505792331153667647565439575886494576421941212383693494055836495106123464940202424093460228224735160170816187090412856434003836807473649964672913848081382257999576444047612326202909757187663443813562221351264643400648581393262264151954369615551605963211349175400924384641874299662136211677226454378859993701012267721196995242127093778838466127402919555484169914095188532474463061568186224680014427039645060632564791514974777043696425657736634578092746943187596982925139551239772369610247868710194471977142558554427764357653753313064206953343318380789129603432049135715581292340792522380390978307624233741762433760227994345831473852732107299155324475489349599590766857370041956139688682222255396544181386132460726580167118746876332970409998747962352983611650837785834571922139567133787631362179249587900639473248645869132661368182951367679428080005857564197399883659752267601581155078916353137964267204777855489461824943982341498721643034338617737333514760342722727190287626011214498659642668602123456817241075763960984444687292750906247132847742608224747484914696738777501352370136761724891828102226558499374734076720489777459418661412469256777800089797801962656612360496543362404396762034088056701930458669051575124518137209451405699255514035470551452821290669786672039095839766665963133004604889310001010584348600392630007087058569966654188106326304993877702902943617622096757858060120190857452838720006605961970006653763301562532949030026020475482382226892889980427261543942850738442664182309479104952931847826514887494337871890906627856318269301254917326671199888255066695709045064601869995534613602132109001714513440914180498139243116519936642079398826583201803964362790378237250673656227360679791271073102036038419683522148384498867598036845364002138942875835257680199117673797390982996454458647209436564929157505342310806972656671549806694509890399157569562995351746525783135247914012999822867207519801992483325154900456900748289843326435654517198391038705258034099743538054392292872047549945554754287268751820437742731934260950588809562508742961831357953271802194112933405477588182527167791612432768956570700623196978758370042939180068498514090920371687132366083049474108677623962699049453640062620133815270362696506911833061330425322995600834050662843190011329591252112927285159374631351737512870151910107967874483749792748561771313245261839376561118810275452005555248499122509603362717877828502113183100920720065709349330221435005884641708024255351559849633733638635338837067775401571651978377558630275965806400164632974743945367694777550419546091168312934265089181559538494457519993427301973353022451193464508044798173846543852786908820162179307097023658888589331276610565118439411484703926828735715775219721285978292541628636609288862736392071199616230750260093878114846578297639469658806212269144594680656309860618706088461436412838352725900785129841603526132132872342265223576701550651940209440187932995649797934674286885043650655771024966630696097151674346014963873525861901426300942208552568319313020422364961516379877595328956558079237224791704300760911282169062836771507655555946921149718937715269466872455027120581246674865935523882812254534443418070719744301922870950629059703394800523985179694919123470178478289170020106532670047204191451739173178894093513120841835860198963177286654046130061035184135212397107084455937053919493701071649123528143413495632768910178579351988905523912366850497368212638454996342192166837376311106208223883513602489068259238574937988044684238173505190234818255268771314815508417706345010588081545267312416816925762139716181407037598646866249638991156171986106791167044265235166237820735088605890106028107181157707711985277568217477893606515837056286270854704018569848184495644627566384811491325248752447708067176994319757995978923683593648383018745469801148218238490505902534474027428216070155049403377186126611946160401459365049851180285636753513999030670374145667097775500892105738130615208621051864363193100493744622576152394670349284449069928609563777486010534759870499233797309373404198299203646291981939081947072037841544148202486394307105439073633595480796274186487951368601241602892434940806909278676037345263129624202481450297614148402480917651516426101650244969247903893519076059310149187378002316651796591491262201365282970690746852821037026008887622911044876403291725595201599305031450388569413491910630475998735016882534051724528325473983171343786590466685895271448216350527877671835679705133175885465661212246255780866622964436026073207014401290658055112916906402568851139791784193642559158880264762980221784097933964595867697568353055793711786282512014863365077675084335406316547487392548438322940176104596605441281805445468701602062623346633119262980698400985411351168777969636739477080175000515306447071558587075438245718535829931448824584793814510102616207020761782926448255065774318164786071563077855794724437151157342411638975566146443048494040530143761065529343640667718286471723869782686599372235332075768992406505987889284148788411393014770814077632500380456939664407510834876197400408828312273402319688166461242958122629403701681931092985309122737716034153087544848646747665584110764971144600392852806413199127832480733117561920998203223900758467051299886550202269097475523124205466552943539281308058555423159883827544980124514274777857268183619200652564227386491967541782942808154200648394033579553358336013237822471638479912141182987837126301052537186208455059120015221629126002160218414744154915679246459533005817094512538880721292478154211068022096475405444633457593040210831316810355645659914814069881628464504051899477531308637129640928039309821979738997501965997227578093057420556520643567404321068373467692873120974924055892112336313746433218524206313294740122004657426176463852330038215178969526256206727917958680381846523945966523315650785123254970179496505966785239358575346776328775288860166072029209627364750628051203022188457103914269851390195309327532102165176610411622343863242851927298481160726527673833234677934881054731783741884174642584158236356081582108992685301251077663190247728361160589110159751593599039305177467657919958018550771157770692489142023492672314959257011116605200368520825338113747785811695317795591849969103489012310848522400086963688620552471596254692224529151336675928252260661454523120460502881296204431405190203618035758601665874233349481507311131560743715767557903841950725237447312936295686879947065938947881471254159692892947509890460061158484446559735243163768476055294235515979301813241752862062211431889135872512129469119930454595391605984027488471420959195634772132765037391625698782087523812235343438117591484760638798986734331982457925703326051757658487857450942053925509861731364234730205498139915006341208978705259388705959715360993758120230491461995349212713959603871010915988324680635752378559001004210002881661226852146838677124897793848910263027330321291725134351922091964167274984638188659023530081280690962393601114015599534423531400989373300971628857411469785360665341739250851460596626128004264012662585545503018893060842580186383413759665551008444748381413415565445493390671728034335024113561821285519588400902565781772612935456604263116515926604350504312032210837405978830590448557787894904077670771501266536449702116760614549000171160420176185369580724777069317850488413605137784717324286181489991660893038236334264610141064462990135470178718232558643279620526987325452687263135665580919461433610828035144417376298857349505592701531432509108335766180289795815543883053292876294885329136886702512172140423360456426337809687239887101918168511153694396490508244993329626107843137985419518119912871063037373651117966934467383368712777515331974572192155120733943916096834588504748038214785558096151892136067953849387579366845054197912788510765618646984041794494663653109978718492517650699382214762141530141054394235770626416813237042329237454354414347942564236853923465004646585867969296850773921703163898516836755287998473952945464501896365806002951497809152264286319303303767833556608854666274023459711185091658444435348050429619092433973067406481047926734223429550877246750224383901438237210606999509368957745208951134710052780394722672367834773812319325328535105789501960270348690511601695705152976171830035837224772923202292486624560531242464186752983718910499502934833847858284732767482795610988333353219812968385961893794721493936178234124754506838046015631140723917475568305226275217619049669422985720925645415069174323087750943004719886488837257230334658036135761575607062702617641652759421466466616318666051325487121748005056185750172136773442868955372218437800588745125666811579742386853776968559240627185294006071169452681004137759727628677198494854377009855782305926804449493467669336605767972472732030913617696937891840010351035177760721929725300609662800059661808015426462740028492589507809913674739241388749833726608683630917091915564032321789650964669697305878558059404984740191454035001726866379961975982411724427364972936409617273135017654616767371945588197568018382290020516579264758587484907576769906526746764959529547452208309950093680436838877898061745102908261330950892193264755275204036500942482904579367147540544713481601508150633225120108348269412649477749801942962176795570084734661264914399571136920284657863735812017590798989152063608242602404686598972317520063856913442035954674589613264763193834263564641495965699292109005648548062239712779889310802980949193948263479502864435589476215994398180658635416052013967674213494405417070776854231658584479305355901154448201948777123221420693142154407786999599157947408565744335286328451669832495569675732821381686544869256768193983038292723482770837462729568052242103302601665585071378181168197275692883135927621669725672154192541653603590661590157813062275156316013747212201371240595021194657949720068756937268659163254333399670934426224336246972561597748861970905580081209703201376443469264226915772248130803781251587318352820691673098802019740700796999289517547158954136343569947323892045922768417815668798539865527800963383361244073035282844904341638295180797681398189891454731408060921978362354897693819022280821502925234109969298020938383218063228123118266665614843594869355310146592562453355852762163144330098568221098391411023338835364765981884975527680131129539326369200247094186314993461179394946992500289669655882215088260721462644217219856615470703611450057560160803449108544837183145759667046780762881460632602537758906407302493834483686374447691204256202063893255512226712622951334804839362794205119029408302499873168581932991015437033998914088055680924310483838395418587179396573095378924547559458111012008710495799117447696813678282133613892176142708118589949355008971178473578968015570400083881015358151613692285429018513880389480641827823383292210847483946505534595572308948808694652331746865575144092457187612029630422424155661874621497428833122598554912221333250729187638807057752570996178997013802259537733966681842176943765703651737917376089947257149237133697340620354522382124090656411491331665960109621006947422061671385446544801456346896704841069922863592422562231294393684032997221357515131517835697825160129261165392210293004134799446063047798123956600187743566113970629601865284943491303487307812042181653312998052658499678744144775142540226458644475966089137764631530599999909774332775881578201394490267061674273438438509023386473902522656782908029105868358612402644732776699134310279147016696271818143090117773810081305508057253245839188788440977444400543435539926483843874559407633600127448658564605702633172803251379787994091297132353660814792084336176043998174946007009799055031108585953385579479740789037751760301976233514315670238447316486889425741104881060784823109220420723663818541060575169705759509840327697991552626403276610647316549175230854909529229442850883951378782975995481899341884478690376153096223806971093826479862463837292525684148286967952375039464231313568850398134656766319744411060860298205673853637259223759586572560657023547714790632231611259015575776208875031571266142456635206435246822518030687529528262501676768181327193457452694024199781260020777450610058101881084806359722711344964013041189107216597779500813952720980922957565665436786684723590011475374755988928166069916902036234956696040704497673363617993472597995700360342671439995525171079334162239138700451714937164889065857363628514942632161112605618817702753005433909331580512364393088929242622260970945637692354532060774660042172458986413491326168723785418488286468595523941170687414330063035898834287225180484235212563816235422646828814555097246527980030572578241605385310123673850957638241223527177864587120459676294740522550944881150396144629659440361056912392421397144563535559577352898191537485828932430099605355426845698599214217287510285516258045493651152978911374784412451721407008803244493314526095489950177891887277898945288477079921590094205409000563388812657474843438421496260997788897903052438490983839592445176638037142714242991880730374793518152042133473024176275449203469688927564667206654593682989080343457976348931716075273071324578602792375353179114419049867510676378531130398193447892860468601998594264420904857106268569537565615193942418327023593354903963797853011270630994316648717725444170549127261802163603416418301735948216586675126405307467718692896899920268930740144686979541734599339354279481619869536443583835568492647069366780054257944722910713764480720899436738455212862648159585555170046442421361663966514915616419736134356408829322217864607412238266693698180829193779137586036020386025405936571669711225663366505300508532972515043998272168227558806005814546949483175163170180535705291255798723564481346346155238384176839074481191749983148661946417420378277880536685706037427982109845699643169275678003123386436209842565732356436041333596987234759044832519130527772228767898538003445198526642696686580172739795804839872329895604155852025935328178085407694085424744083957071798327325372727361962225653552447340224845152925116155327186761685580748738322673980620367539835802899870698050315204181040263441963625905380049041654638351609304775588659593128034445797331587470976806484878448054206845297755546713845229277933337526643791670285144100463594101855858187850156690022037411657340108297005581745402947247310628353701026404103635608968221779583907798594622461050201782239767999705517449470342723466320551905724005644195742502791266595511106096282745235276222398208922787641195305269780938536560573707197806804558051710831734925519297304814488533362733609406069518816863005226396030073063375047265121590008124131482765354657008223832719109159891140708723756694895848545474409509601554948887364943064949948875329776239984657567804856878886748440794604172782342944168413175228884911026918718621701653363476544143365428497909942833569413507616336062239443114483684003622170797634634542955761541087407857142038933749171979836332783188080593864690856883018102152038005551925728313029769314796972853957315225096306981230003212185871280779412991795273947547349009609596142591220567984630078700687171530880956473974865431388844034465628261819152769890234910578498965025501111757000528308262697603863445081525320314838037122373096363458955355615827660456946096102446672189920804436397760233947115703202692870754654166206476086842352507246302004260596084223514342987172047747550534570488915836649785507609035297514077081770808784891979298210389195319785523015485779777224091246812952296937415100790599419326267009123544702447333978882455416235728107179008451048411368153859235918373394636408937964287175258432588709564755465795593631694247510335073284445802330628462567431047493685146921154072075099428362975793805585721152725299346091299633684334041706589992771175493277009563084658395291824449210093585705630124985059022521570326653778616693030583805345450524687321986922419110906208480786541972112464538592279772552551008589475545592694581857547404420965172109807563883465476606747878676669626595826928667369189421003361918321149588860955462132253461645329736338962925743963046347367157005302293962944875836639694920685524501894347664199929924639124721306540653984451355831461498988556555107178048679552436021272704518467076958930437576601049044401851380503587088598342813669542949519821960216462544375757718187784857898205420819464741693325920782015654001214281971315229157916678406972910342927900395918325562717054013994175868887202009320849655959543517206463416409307974726625805173414619710544765843916076447179086110391174114107059981726466795758068680941711927480445007043692502285572662979104448941239769449103934827514420571638744977329745346143393939806320765442287815243713344306576245186643650424735921127024757549393233174873415721056707901453066943250355940578413714428202391501904186502309824363097395748245505827938136543311793897260777015545595193854463194773897684445116630756709393725177963912142325850625926271519327229800206784474087620387110662652349053215619892095125934579410582271962125205379736788153296415408709699554278598870893932980159900391411908682364372534600703218063005428569609072773918762145385496808251232632367474707639282816020519378522942344048200860718309890153068240732786462036543557555776754784197307567546817233007936661973269732865639748990955541680291962630101475317213389345724599785012963407148456220333397732593939829784002467989952407193414936054944358887940581937923729386622177491854770247424259654365190654880320424874779879844508953754678491468670696380373394784193046212282299544527831184079188439359102772244179887141294265267540365456452377000937938170295789100039799528178547495060567257387614635757089736524540156180449737712715002462264614517393878460639098504944867352281835541480678075596904327278787394730033329038658890519140718104138986587101985565996989399159940771464518282381899244698227667608237448839474021665726183476344703092921263557451986328995526126079204398415304517971827793468914616086440728134157363400390385251841632061249321242943969274962399390951771882396639725312064758965599993280866036799800888106641679066636379743442442831624858159333490469976507317880108344852035162952362747915380745731599049718245620775234604128826809158266241009098880384915227375602045288298328848029727415570701224671548928519461928891750588684919632977178310460793367050299046729823597317535702454443321936096304716819422420617086841853040648340006175075174465158693543397613572693660322687372512289023708227037661216183815841034300694721559656420661384865029877008831464698203711981587069994150976063421048528659392933302544578580782268447069828694413224359651944531688422115845269741304536777590348132357644489622206091981355334980718254901877812269405327063242421748582806839781350698955943937334989509968908307943280008249418788626926493101288773644948865240781140301193535042810074551550914931852521294651825419965483780067459425120156293534460837487621266164219886161063080348649797140202200258016710958507764500035367714826150431425496400894831753994906721099371207036475812384125862725938187826059766810992972547980822836636697784690936808058190704444304667021951852554568870228788891464682794496782958727616068265353950225261001093704482316388615636840927597464316528898996099687836146350547003505080341722405373094056280964553064405862818467864906718822375559818664972641613086966456901048689883894225853553222530179377186230454301142701617197952129190003036846556469730001959029094725158261227679256404560530024040208448089877148949952643690025413705630290921115210882380497517260798870301150491460405879897047300586914858128552907838856864076343450584707733181950024362420906290044965576825669525928140390084157680561821082366891908583490268576615050853545669361264851001461928879650611532339105312268976816238959237384809477568487806798186585359042685966893564823409162222820561769065440931000082378262408107404484792872501826920125856372415121684071050695114873123476198875747656761651364352919331875219214137925856360811989534455414925658727007173365019651371553531809589451265824196064323824588475996594294562468399695011888925133258581718210509018935141643848356737471189379484966312585808277695434274670395961822269620345997356742959037015550664409110409869784134218754175778677277794441318011675703954573077044464209601077029539311071245089717419536869927540019171569808530111612824377919575826619412681720155814153301517306040385317968367677978652621653827455724115777447844711245463356262084723425136502160525007929715942390612073864367559477326922606699131143688556961885479588016159936915208867983798311915007692919383232773670641727775938079424626965106331251669867371014953380004776242080396149249915534551360700026695580351100540126321106954259660613681340362406108590025518956395978913761749566352086536709184757035587220176480954033448050813833585366084004141261886149253499710722360062244154788299042839141029945181473288645616885926323243061030220700042318279646110016546009909602037083337002931474867932539185740604356684472801609974426819525548605128304652386527997030333425184466413652287872881161637094155310658576051701926318584717765490223808698992123089773993362021483232307234061061292175699547010180155883441042480655563724885092278415428030818976367900723349181758720741150220748351424860931819783989059639910618575988155219696626735817237816935503014110155704984946802917448148978281575621886800312722492106415712728615585823942991312290072328263886843209389064452143879651983938018388437624014517265938106296627231000063615966515697233538082197759621976203508630792183859417230718333195203265668446881514369797544286889740564219735354529112033410245819491620029890678330595594724336918508487461957197602074611448020513873579972972889155470352885817672613619355233663866862640963220607858096985319824739803823450786195423221352303718542708417871398911772209353581855185588812626242871890940778083121548774878721778552759872331880871943238467568392849907246112275546650352460718569590182704698505401106587728129532692369546655311885904898102997955174790982052725417955063518997372227614121177763607931130901587249379335700953814516537618110486916203744625589386249637944855062954062412879786928448648321289721370916615298790836088490836803360129469161513630747455744274210640633735131628113177001060753413197546819003738925954638065010538947535048553853053575094381757018895676514258690008669065198603680621482435511326046292870521173242395511562768335943966586123750786690949718758827294510236666863414045631587161208909529984472610918322947905004346242801570037552178745133908631939388715750363082259132696009667139361529152013414532896175251197033705513960786912864771308093232730868532511078992584337318738028684442125258732767136595467540880219111864230378886022922584838872863621502371074337745420644724847508155480621844668181330766676377283940000009496216625191208160970548854463270773475699427341472064584049646375021955067420853392851457944290798298126563111558400784391403010772782580700943695641929415868803223655134502026209462606849514506906889768348780897863633224260694616141791044885318576068529285087435997797514938361345246298147306223502944935799890604338571238553766710377976652434546321362173535983499874524770577316884799541860268478920699173569403541734317104972848514570143255212421578328779621464996526581198443734684425409378079531984926973659476180947390460147488065711484520513954362555785004514350016073397040951004150506356410470941826253405052489790302811472437393073953055340860855337081021226025569326112545838406056067421094433927313441313232930669485701958590569809921073735966764062182727859043023984011276272842850566825058133754320327719830895273737818735219735367807974328431801877176566827065983816440642034222698175285559610078596915761097698574483786577706793324219127046114103601906913314354322418222488357692993699938248090768317328449691888956651622052812872945204829537171192618392348631028614121633932062181990377133142355263556554896014958598648718765847216018013406471138689222779852224527126855314823388879146989111614104201882834496629078732408124778248898560145309148075544583621796077515215988493190740767083421286054412892111451162554105052166557560862615684208657464149118676376011376694692658265164693858962830977704376246429302883626233307152194947803077334382319169312598959998974586508620790757759361876548154167417216774073119915970822712387680101508612590489761261545960374459225911439248215661085389203666508203007456279751331046381387489367072501156885914864297574975926906107504690726683390246888452016198102004236428967561441292427135373585968220108038354815733126211446051732285710342557022463150085108443971386827006307146359197422474672795000500235577919976107874352445425079300216297953772055496122279289087055711174887634211976278503144282297673806458198761231535253756055215247851225404329825536140520429403797474343628444490101908008457101826234626958673575285574818816486526748193370684614188842750079983613695862421045906591961528069919959359342374863329034555380709609491467256270903330319730739424066538419302852383550068354876143946533158271596534901547015186257394158339473697480394601130196664273691444635966724758952432940491937542968121819285970641769507775104103669731516346637664993378571922345577161528871747205778088489223711742199877202257078134268463726990550838228473717224236335820783136388955358663592124316297124693891649492507571609964789800516388207998168381808799391215192732926268628810622899457273896172745523330267110604228005461075171155355696033751333353765211455200806779766820446691166075877507129317978223347358353096025342617814589998598484925087459900650578232435846884950630650618448047552920187554471267600814854509002100056255068927942050645727403580736226914854086418465888755434348776594057899095902726218498318446938468323283108641185875889660729319364486288056365961182575675792022219112880418359626787374912280375354927043053642141601999305341768504743000745359218755778233211769808145038399485348132167750779151402777940930626969000707673915227836546152410949930883679090616987752489999992352894401286124084151729667908776160266624377380784171529114922147701517101374719085815542254927879066641958811630169811794026566563726042134843740887874128643628209801316637429454694283831515402020133639287080326155452889733747077371019175189347927779251060057781786362046677006829774321268982749122730292171016119133693606194623045355702145109340144264002355991846247643923696297282410499576131915142375579417791151966729061935537675951518296027868332747218882154227864770929430487844737836777460829123732148347616037605217364704481930465881393002864525801648903197645154209554784092157298256609258760884153124581982169469336079242106272103553983900268759565649523085551076365544890524268232799479398572366901592485306625379753792112137841151764168936274568794189991265073681389402612100740832507493012042118346249318078884079020966691851332296135722663071456489590694060573582488363332616598556361354605044923079036560418221358628806339471681457487553061917153377095119337675809478015606302582151304773894362390038203690234610778385111298646381734956575593024887631587359990440561120102764387263553727212901524313654713430961712087282073035736445317457984703976810825220235703205738123750165395690569357905441741377736288283155645378691674064078260186234980914791999704922834928820546008927486002713301828180373018529383473955918272651983805737198246126935920412918110874429362199336438191706299158769232177011023383703915416416804925899512610877359310334701833166004080093179134831296915905875384806044458732162613356927796792605974845674595546732964516233788411291871463741520729329900495402842384978596559692638731782511985570880946044105474150382598019886654387230486124109859357304240740322229164374653081941230283196227495212925726005602362867183409010551639329761911038997310002443004135559040403129548258755054317650973829874750195442302674243393663726118182394930403412266598521236873106943655159711279380467942865375522901638214192832252420802151839774239189487062857704991081596699155110076558003076500255563876532173479510866985775242518652004500073787507581113741816382594898859417439936009002786958367784378310287474466822310815143148267669760328791358249759545619075582627841155905295755352069910835742872118863792603139665306647004097034145557152686743315601016030418461398088722444332586014667550178074184966619900568235296545229421369914950029160413545315489255197524061264087893439506034986622013918015868983362311860810707383803451164603808308181973701693112507681167767920872205935377523025425564723828874627748801901625931692392016285891759888895142129640515605146701069830349564136308776166241027897292360487804348074236277139230401055100357296494098329237777114976898370288659740033015709557319435094127615745111204064718573568960658219765865593996234233791695111589314041332562028754409340831013846174084554596136428417303918160315712124371086582158977880278281433923780670983973085103554044726528802267180347505563845204842969630960231198386660953733092474954793418353437654959964642756405611812449791134604285635162539038020560267411952271923063632286721197810363950425757353063591351202630645263590072028766513748364496629893543154918422134017602995076834620070189004758617441584693915504371780153545883993264596069311739203547619804616000344829224973256309977212504606689154839653327148357274374851352249183899729474455213526377383205424227868046904223213174054343709311324846241221859553152990538741618744436293738913440122960850945263446168342131260712053825779556423120575719537144843124453759579609090877322957042199030184542418268006743217677608249686699026851028832939066749260142745224141597499086057701887126604342789128320625112715102268448718087261945073322395680760798651366109177125928681904406513988097422532024416575860650069281742791516826261841783382741074335185320750307528703787759416577349684389179509198903724830568914129054079945573732417120201844812662719564153269716033170445681794242566395007846608231640536865557033452900736903126975198035078095658412886859154195887146847297624629587180901303199382072060498169843209788195126418701259483376373159208515809742240017489064238126546045389780144167628391830123876363679427278860899343846140658523678473540813445972892236560702125171389787429987281276172290282248409714464974859114606790987729215754996235153716351337492111697868183523304908972930697473252740786535828375775732469163467705819848140872126482334694338324244122403186872707376496654094103399633106772473437166915548733362715123533424332418059984951441235978613739277469149797282046759914610916767356431577967053210512849834162834330744742494123710119335111049865835620118473297819876045216924458342690930986292330889516913897600670408121369620548226315788998220452842590602706984925916394655226380361799495103380827723296074438700527559340960861507482734357416217051845229892947280856786725833559695717717636616344082692823379177929933304346086200495768615631202951526044755546479384270798109720855742742300626566604368128333587533481653238783308537619707653537516604053264901696586996977004049504918539827895273671407932959448109943122436190715089945457169504654867509145953924663710543210371763479681929956270616452319693724773241390793122007903056236430377824928924405047017151947901611050581758516999753012764698142296039707058431986140206266614868489899146423348879672561420640261942790057020637434657449721348983859826852619613473427593170091291662491104870531214263255016928820619501389697469872753648223418431025666335066221131314928331289572904790112397333469977164084656616230312532515725002740741110340180388686104632868430678942971328655009330768680125482567248136829518081803987775630842160594919005658827850346019390668191459364610357090014536807070923299439832543597335915136399342516548489540138551979507630036452642218833125707805128061255482527492698037763276179093094223901371533258613433994649561819237011159583704065062283946586529997338324242284706950989974932155508578916366190640706454816569753062500707253966608117124781878259922603699727543548706229239118268783209046121199845995108547261362482209036504188053061650040638631587364826281691230705927879187280960902149756732782352447355368006297693194490989876011457500975235966786861570769602373612433179894932975855051291968874079756822433337722184231945711448780709498329197597721596653252112124090781242647229250066921904319711341498539114031182527520973812257599117624972538911301014391445378490711362226279318836536096905076702378395574030573648980797139338383248228290711443022854656570576221398650887248307009535181920874237524154862200047382131932745632835986801857686013086402200541007130102189474617127075415071758883921618027919373694256975895425942047350668986765306733552298404314107388112096615064545751690624429560448153783198329674644047543492605009090161451274758498391028006080239218979552223831385592609810571074135532477231856450810150551107435110696363821890761981014336413673380023824266839716776826657283134068917191331661602151696317963163345247139698790357227678134778469795451847961369740897515985061434013870081631218065057491793960589485136839384420185821310531926761129607346161072506921808680871485578697301835395692760770011929864595066232483579190648105641184391048490145731713588068006940489451073650387932856061229651991908059597882827574931011163769370916673339082952188336518722680844189468348812062013355067590464310542676719614842846619838013933935923840547406499057918470022841426472349074357835582463307270593736094951134139839717110129072441357220948831473626103028224534791331663813013108604437363855592450327033316922837553093175715121880569300590101753535896962317268875697687688989876661023039761815240900496341464599535471729872413580018203923629130154183945809914094543615858665247187798191951291934521254419541870086744847828848472488884864230904401905556054556706739676650141611962614117645368261930708522050578049883206634425530195136822163595758296241381077871156372191902107065344150161919372022055961509011149386445044210103245063555619144537092448785656112063752971252782560916431015722908761848411439192817973031060143124658311743519280282633045718619527118261717514465020730296472754345402387559353522025910576777935749217408955424272919167436994294370583226694669470568225611006938436038510189683823830345804201034484726175811285754683235905133401234952056961217007265069208189125226789918905051698362961854425330713684061549536126893048291386654059786761156260265440825706772571229047611702985507538047840228219760062826303709940342655426787896168275463963856427788397802995225284383684815114530346660384296504868901099089468777731598027082279915266188157909919626656922383863231129148447210591202353510465944593754045805440484398089062939234281595214855559987849822533330736489880545221021198427370378014367539104941510823270422892146007244431247814514834926097170788196082836472812059420111744480469220290633806394768241827392925498694906820521893354819475266784900497759038588220576898391708230735551487753172537871922632555566373477512442714731781801156982451915211229279310813419987379232191343007279693652621367435842866428964942167243598052953024429969424081492656790898344798909943650658080473889996790760470623064131985646475231115455240238159608720738798130283182432149011473138407644259550872962451400464714213126974744424926841263815198140090248008090566669653265729340817370704301558051077807889688878938765968134550589601944021582254275420493920020499919894587949642864811394501154784933283649946141172735304981970781663957270854569067859752704820113580757716874346819462659356274817264912424822801468688968785649933628004914044247547014371800980991419632285662185091123433825475251887919216443826388441990987371900171528881192051870653555246804120875595181636238514120218123563598845814410504696544842730532183761797927601791567598826772115184521915241283443679344989093691980060052771682240692076148684793864681105431086561468860173818523081373124978353739447136565495627148712612490266942562886176067559742070958594871520443492499713066721687036462081566242665384611238521552198037243272732003470866019993979667613094970842534638423802078630236506316680304902443827824305192929185719700364150396690233563189098716517579983041863992849953146497093805314637048639493511774844277665521740599092750588152467026823538943456915031861511913913339767388639949427227375730446107672109825075319230145346915144741191398861597818990831987625330451389556768671361986043245672173170402456386624307605898194151613278731518432602824856324749604488447836719632352531635564127888905622543144516940399317289951193540008449656020091850471342322896480267129557719822425125826442359812937096503623993398174268856254367232597353788013129095315810249739069025231401352741583902710969884121573299336006017639047575327634059353264384942711960115312231530291788629668951003053955937083452970974034395929935721842984043207102817884792746713284630903061221580534390843120314025169329806042572533345930743452901301570158174220988084933779991435393620643563846814578910838340455968162602387760924968195433343531574618134420088555644694424483023676057920304600514188892008104847916470051913669093420394355125888477093105366034299560748134306691112166078605887411461269263815653971858088170514368976638033469266841029649910824816056808291075367900006023669712276785524286996211526505126167446792323544463307414727785845571477274049764002139301815621705850329072050719643855174321089947335784529809045710127231464185695282640759682747386043854652855955261740216975471005996575000833928021485255574752693899669735989926314507669232255685746631979162467064403285494261759009045483191146870619604096780734499485989273518971226495489466079015933388427535646864276906426042816830594629509334971907146792990189795951351632110012231022785757117448908462132059652707299832127883503980088666746342701909304093148980646481471352047974149710354084611953713859436908426728018397554486912818807593900371643641009746555351694166757774398640591224077890747997617359600944529072799981743583468946894501892710660864980216357646668367993643065476628662092688153691691157690034793603206695584410979573418383499754246434536058478347985697842736437497191276047402086078459202327820484466775775202900478478161393907615593294890393190154698555129620486825158459295733155834642058780422063088100664030173523021432796265829658759116069276393896846418489395706587382344229689034419550272893702946695572784208931606074202705557547762012489247295686873336292968700247684246843348413145729332762423364607135777178289468508539474320002195639125255282935045216248197640994478170065520561189886516709704625670889339199964079092196354064557842925259706600348239055198153654520881071762236356123937509146477458641542069904424197456965548757067027146518840858266576460481518420159412680435214096661860013625902013616564425592499348143435495292390882025594501352667473283528045846383641704655636983486266876568620976673531673198117514140535151085606514394327728259653456181597316087192206392546018809521956702849547906930534589806585144916683753739265904804689333215148486639901848358331715250381807888603977562939042057297292456182047828821716362021496125624533951973868958436180413942690638727948111198381526930175642246236079673327652734575402590524087024552054418277759038608607833414849923490356725975300055275655207293537057567205459961522259741234302305360668382346286323307655318248338216461875033765071670963270465862256722219341550453129860436431926338861186788415506571183012681304281176860477765528802841345098838560505617490973401986330000149960896707675345641604788484112679713232664928939609031486562226485406723910586402754562047238369923043760238413202541723130104074848227146183556271285320550659076232988546422843723782833328048931689610816267224527502509665897215394661548635902242075904064825779963133929035030784868210536201553230212513539527459173701301184884527273889408051509080243303098622064720685427642608317278155117314737611747292688866602390043482072028796645951793324416938948827146270598107943259753538401229654299312252417285028253271230453394098088178059692065658724169627880575087524301768637878365306596293770378481340422247017388415342159278404279216186912732362729656058278958431138821108295020113238944353659627198394117177817516622744574764263743762999973533917094995484722607542455088119192844088702721903036865213701926549192337639352077234007657138188947727191974542168281466493499108954020854355107016103447609837723706793657330033303494796269857455337436596573190859404055048631120496418941269589736621609614819011263650137843741128823123783439797357697511821258864194062727256733918752151011821893613011842384734810602133306459737188086790259911018107808239303611383333761604140496133186287097629057351805277362391991300738027657634157537010377190425014983217286064254762502429726220567438931436270761198464745840749267615984834722643499980307187636300750244791002372161699933586325693299977556622333467311446947689573026906775070193896212373285190292805778243080778553344683552834680463606726215310929377475398226550453362742923364084459933866971576413092675211839486746359178676331808639753094389726109913961658651666407864644041634041563034103295656570538792847705989585275120098910689651327543978999604777811356663086238049869465170027809291968008155799163382256572283761033938204841441142036904045542389760395979208338161405496910609641696288078040221055932161523031837205201599532725702043899408306667737669959384438437525553661139304067435697229327758337069044662558759604711009378403591256607706414086639765694589730382091003904623691416961360281471746362810706699362614558585049250130996221831527021195080960536867491351886069038950906432825525180604768563175234511447479769632677523875221657310324596230130165220162753304865987266658722944880395273051175368370065680666212345084809663029311902660637542057783666862805782403916870439520445422648179581082934045566046860136061249129746660957812113326016768028738190694759584162244704922489222663154757472401983660377975130209621956508202627807715657197889310533782252328076909317733645235698433428918413188449052573552407937698222324510055618208727278563755303178216692854812145322653296258318336674418481875266700295600831033705851136697172806917310701415738600917246752287666204997767015943629618114093859245115063533235073772688863150067410356281224070309910867831941023839530871205697229797815016647888759624759191265826967682726792570388296650159660406360918179480732910376766557166271241648039996883734674456244092095308430048449130498297531305283722611334616324450623445489976561452670516356693246563306059267181922347816881048901266821956341837483029728598364008942607031240129339672767656828748882090687064434611053554044761172305396148344354313883345491338734388718947178886797851407969614613377029455431006395634620238791171628773857461800485978762685860637800023666727656635866161984240194293517563401600283711042860827195941084461108843565881106402367222545611498297022910032093277115928332380169508962210941399528405240862619476967711185456178769928091525384149627241972740159762928011170061150095286591453825703879302660992849913682543811905298104365312984136707645244012742908076982641531060483485065555708015482343170632292515678224466232004300398552029079113506450918501632300506441500862199362964732632912612945783482409458944695227630491040394422419268690388700263229143915233238197024198560108975942857751134363326731495086648733448815229163113047730515213299202910009066553006408166158925277541619040664198270601678852615385007451689734527965265449432750121891207838436935089631808755943076431257343417335980571584752463990141998194663108849629835012581655756797578300727578255845556881272166856029805078591809505685959590354106882273494930143049139770467391610516680227360539828042531629670520185940982087982359355986578117736368966023653747465612513871925622751226869802242308273600139027055669286180777390281045840579515908778869757538566632466617042501608290113175359423493270711844771949026248561099482258458926757571156700866649540477199878357521908164623666808324745692043559899401092688368877601880802052002271014520457236324297756231624857368548842711175818660569849890095688590166543116629004074197771427850943421230114574278143959250753766047508516561999156758662902180350028275815552357977633804993139056506040849440067666347802137588276090639186273880117884052973750658435298688616379763084268059452989520777138002449672106237776496215180764963703787351756353098828244843199623546409017450688589348264661663140873322926945554097280606849538506310545769503718633969137722837076498897518223182278672099245653949012338175425974411436926190859391564758799134429057824842617348721838487264946422621338322596159792866087439470521181015237783748317126124567822791296379271869718912333565214892439628393237914329195944874343686387142634607892323485678819717893939602282131648784438740785019728197585424767893960656450010105054790898647910203621854517949337489160696571089754195408749796764682080293146615218761852249920033732383222060154751256879005852116591330150951803839625203906546782388186431355433928699414122136515328929086586673698755834075882299551276812021910034399735690394967303979447979269357473627788278919002205197058911610515706267622798900813383249394575102653920084709455929652731694391741870853041164530799641543213067344599010368834366516574640319869208012566736984670339021845919226444997994933276257210588810127614713406506365517091914305142651211203777796605028649606171637561083025747848368039720570269573783970478761990078440127353612936942443606261758198188872790793644833910217943613157524720207211119203788912269296674908418707182212699231505917616119513396909262701328735943885391901799353907436170963054868852174332140783809977543651356680543843034494900272556113608407865110775377633324294420367234381580647180250154661578323289193253642593374050401805175056941953351472599371159497022546416000546400975454457441043144005616394232606528749364764361966849597771330559787073695011409749211371503416239443052062630650460829652653763826665440315126931357935550538260763030708884652773202531516522202883220127499021903801199390913824308365265028617634338506234923325543407883737137154406608229156400210989151086828925473890389758486834545260083623841549755260064831091966893195407739029903234430797157140395878871613057414110022886131089099886969444826557240850409063664722779492993663575427524490464060744900050227759254043957728643434589783523354707431675289113933527711801793465253993119281262893243626375100568710825700539794059673712601376730468203740399915456791037792839868623221677817548590084247090835987691104418222123197708355793086346370597258344188045517971811030844345088957952475496386873768674823686327120386847631511668773864157172161710276093307579771199731111893993040124461213575760525586344080615406625191174105344645019889444312144254393827446089231153381599387337518433343001857355943800170840955558039515567464928377622329298562377794411090883250300301457406549817883944101309741688464050738842677503459993949034668882627401437378646276169032616524088465602312839366525105379390026102122804397020532042485858054130419676611872003153851472420348123938121737925417694726527707571652836283997594909622648377928041276808592338171240592271812899564110407642090758315954762797584937639563142942700014491442362813316178980825862778532490960799592692759545391068758226680774976535566739064876015449759651926059379712155098402996444588715698445227495499776459836339205373324976950855000704702596891104689306364621863253184060502984425635746866389211290750995270486942537175493612415748329692873510566838884830017664112806947001712935013957123136928335200235815729793588729954892905933514099352989579533273383211179557482162718972661720860079356992096707545320887212141181470576408304222328675225374013486083999427400927054319086518883280637642952538292432787626965678445738498557849582638782124705302779206382843505141534539036261996658885773750500363721724311694423710701604357423083170166216100226449874363423026050640871751796840665292392797438214537467596475194939705221850274433530372184428226173086703086471371172453404925688634455012524362899969647305047175950052622854055489534103616429559663223140229805308479667351797681701873833226869191025508202366350389561703383443695228513336912904986860084081459735157313866074832304934097178535103957200986151080485530218776941111514922036357265489771206800141542430188480002870784449610222242761920244119514732013098455467309978327206875719768272844563807209298190959661297717251296659012966346031027621711285830609628219967664153979103538608967607890237168524461522862310338671180918168305096801479992753411655157108580881574926366254567492262239933340572257719045652923320427941293383543098304315180968855777206803284277338742948745692038714761128668412849626544317093284150285541736770803375379464713119424459862994872691893245437142178580068765247760518148582631066775141251280014006748699938250687064969902163248688486719289848114564038344145847787033925170381504939190472684862088507130211287166992991353968084940039504369867606819746418036198730922505945342486992529184277097231543693101062284232062710285529368257194469422927076897796673050002770865948291558554753120735216112371962852079870068752675986646050550728512797677983392622006006114367188792376626098670140230361197642388442341059394315352036144641223804737399589162918186450142050199171133059706446330339692305426349648200587274507198682142343744930255700166768510903703138828361271834762533801626710720251607558022396508018931343289486138486602182450821551185395797688094681029560779260125331509951160674424901058078370790858822582492984696694003964292628269177828241801413185984809001758003467032886022978228747708932314359169766260052092492314557409211673670027262929045644957937299735227880103575908960042220521133917644763813447044446710203542575460383100103528545292024788808544787766987660238032732740421103128820838862282330490589062992148414843152377869067009693970677664730345509592530251261077685202695409977267820687898086940321747475724048259423666045623320987232464651866565615135607269554473717795043893750690757147064684203430861695921450988075777339513141778715832241993437383718462862515983503517968213249891397257447349463691290422256266212428017144595178240914490507181588499861646364857436382721276803734815593250615439582358358031530470976763977806907499898636532004370587287706882575248746169964353251571485161092626328335575654395401478167994634016637985980426825456652997758284392362492063786534310134762065593994118813769191839346956980831799582309808483274980045392671689902345464785384108561717297573053018906707852604287568217087746508580340320577731777612012270445264249105595733664409458131979108370293790744494371136104714265508034131777316279056192003519180052573061616700810998612201692149675193038783345907192919380952858429412066312707466291886228338796058385578960921330749628566771581649481916523212660477256922618880988092146161727248858455035971409049929680033195894244320735920896210404710250475628391145854529208688129198726276108112114736274657519673308635075685361993586649441449346117699216959335011770230249271435400953951678157195822983219702643684272936253545510889309703768734055940083741243351407423304970659176975140376835009416238787152796181447529101095924256635330322312294938940056216801550835328777453488329658669243366946125043454348315483996432663399946713974996142118856089968635646582331733930457180129297431089513817982372819835517225275574917062700963993228742551338955090780693954647761912398330964342083416679325475543878558958722822673170244507637635157992217317377889764684224174294929402571876465685251061707074008708831205772024057352595375161269320127841137791917380374361434733576989752843821221197136604378497458106342720564285992345439166375728494335030527796054475465381305338536094103283615014231623693689396823521789463169521760684379136524783540613422115799247698768833458806548813634479313195043973907980841159026933438982947064862636066628222620394698101504839506925743003403001055003689421210431038308011062479521339329268062527547541136014873211476949374225980490303575973085368771009647369586928157509394727723473097331892359910031644218755055134969392634928544505759908709544366639527160673209367388440486243299674436071238763078162341803877204157566376318682385207410182618517036154846270423497383771256745289036304888412241354112498453732802343673921462674803982294439055318495468599109810782345842395123734873513112861215902296815448959381009614678468195837394369362451989188925093281107369127309820364699955261454920814462560658615211895955020156218301676876134807984143133141043533032517937099397069546001940202283419051772082923283803928613612002084786218314641470844608260452062139844417127351116527342757514129792158095384269777055362325546120996386861188390197509593716599775794424125787861875213068570309635333522969957282480526496037573803449732021559027175380110408633143320796852436935197898654300663847332712798417269174910329067599984809004869099314974793431690195725540290925893643738845383496670933749798430129667059203877256221896880911008012948360361289902555237168180558579398450018627863997601824251895287573748245278157041147621461384774261716290584353132854951177211986888553198943993044500980044569256155052670294664787294241272470497699452775640963236540921113172500995548867481807411046983224662815471079165645224527832306353970676895745973897914408301750294246364670755260302754926378416069074564023469246421488313711404008897465573873126656757638457902546089092150166799917673949503673310841256771817041284777306291186574702352264730632917985374577246069773377441064336924665707614000457158135449521525132886447121376460886554156589468073187440548486874531683157222607811098492469207672452476328369782015657691309944693115057830573450499825427338485493079142613553725573760034966864737934490829428810665123224033954365976594058434037339475107428326629364404727724484998034356226891820971938340225246070771631234303449441263411009351593835717070940046588624866191394592740122419206254845717306489792136118945098093836973632819640162933504605143184476236158738655337913327436540195643621673954293197582520405398613820998571624473673148807068553937527684969299131164771339586138268521888064247729721319792515840036306629727355287207585521108596267847968547730948858059883930984114719533243312265188880633666585714797422487138671098865981958996141637161934725674920714324111467146620403582489500386878484844047204571926291508247890084342215081051795433666701764351662268965826532464018979943509492090632086744197767360334874123605292403309705296238339617494356837667748129220794856874738309783779068273682959337524676809766402411143630403305778611115943309746726554797358497427236626134011935518881584107744822190437020577859245444729919414556663396111133360630184553638808774257340308844172701863869979281761795215920684191845394252754821789822095474175523347385985949869735272870413293627688153174203494971358375268307788896410130367043732357074987260621715675233029646824861290815526818337296891647109062282531191892592541915903368184678784712239484121079375373012666529333909177914000650476275159164715953932068651124790593369455408586182564412991799690947410688128291924336976402161254518002665732712115188104232528663793683077836447661402785037056575954769513480526575802173524345387812020569636906496146811754727018808471486797827925346871057397075444861641366549701050696741752126892133902988349761967931434201789588062100564524137126113683359996600212632181228528687529198835250990330832415505295221732660420037589650538620553485035431309484954328016167040079596682983503311275820052873147219559786777649770278206330747597927846472197921562853456435485060009929053662524992922427003910820562581252140812874549349198893900191457443318319869101560368853898167565978379161112106055156077125559297970471756481543331088647482421000609852823630317138107523800976440340767661809819122971274267763396416853949715813507432300050716633958048635821846879587742051491009706758514666471601047902181710919853830158560010867975812298986403041148574925601140121388264341459313754183944999540787223229178530001755288610193723806315425428670490114005431726993390932467410056388245425461926481540228059226605589090975316243139579356252482610349332271252098304130947937268354762639149947488708764398258110031018687780135080893667924546048649275751864062511256921941904140850010341862681024202387965118237337250600641167788223319193375621958645441708098721053992053614927908012517907180935122295118622976867913605604664455688118657471678127406862085179930201027531145856308153152717742640599905462989760644184816132406858635400983242749509677387516390380052321348920220269260006620692617864484779881806465965904562488943702246147758265797447240793335095279618808782669008546653025541618020580997946318602387207814329826477806987028449845695997399768971217341273811001498198740468496942891949883902193067546989949477462626136350641145042974121560599490723920190669895084006432021744568246137981703958034675480181411081636836868274709838487196644908655053168328668274406110458341501026660288313937186252054419887901806226916415065709991010370466932220788053866062583994756310166615459730235743703568692082750483184805246067050255375490856318550581889180208530211487030726006190431612057968571885729495253739959880053520640192206639334990508772977605318894260257996688338083814963305723974700984777252086081012415752224673555272636737363728076491908976939156057532172540243727135857991923827499266226817939801012460723242174239589188885108234485583857803850364910950078174353493219813948611510955320541521983490371731911269941624180199467735296832708406665775556191157714930902538365216446055775248075431545058983802376210855826421691153670712408367235164884192064960528754531533431583791176327048320274672952230266714674929481530810356263760594808009892083852575434400497870685261873417859691334307089936913130618869132825855948485102603287939902481549046491120749348773676236002299952217968774347272477535439441497494046074546455805333920372857889527722047060417201520946444133859572225726482900273886376661901110723354469191159604749901311661779325094905874402082561717408306388954004948326330098352495806001130825005641422802533662980922665160911583414100893438430254358699920957099488982717810082048804622747694275594412238937523220634027555561773012099545770936464283509515267147682279891398981607371525565228933697035657455068338259136958164910830124132493238822360337861035710049198553871704800044952337990316194615834895460829738953640512253597854841076148963717077040208445654203427750477342136141798848265431269901852420132086376771524209554593538562496116326372293805373693515511215883770720705975802024167256524503939120879841501182976493596039317087876812735728236402802410438756430833282402226882225334672533506499918417695408237845865804030270966526947582881675080971143118782007619737419289848008883399309671850668505479278626685284398123581451566477003954895504992514412008617869505107163180643339794149863318692944675442522649131102664926511477464014997734885959999198018874538165084015162061567282960738975141686834917673670949492501457884292435497062874500129480186604184588375205408388184575346342116020298555953247857085682856622658154237286898832461591845680056212749270915108577151566656028866941868415251564871058940353733114670835382297340300403876421353980024889267612905341556012982124631522076687857378659813371316031442521218741920164306241244044323594449745171593553116894598364789157574717612718576319400277101590323925445345905427879092151162624020032567489977870344073493590930135805887105185937475862293778400519240809487260754833958189768907677605480053397984431857317953448758960743292424539925558597446800189872884039274216375414592736273990050521463720145349652121682132146012252308481535932168152798891931223900563107767112639003084320584239943541603807679982537239863773464226818315100147912810547103885651571130141854571088771240869597850832573472068254576421039294472692480685037596894237030820460944624152222057680556454571644090354993291287468695892422905789196815231392611967006594319034867508534565386956563268485773598355403193401996041342285714043384651728238332055895102080359437700476337448947581939779588860384683552445445319676958013125521475558070452653139619598633027605558939081843729151160601436423282012254015874208720904693216024456296178212582441826031540047310431313283180015893339515208962297331049836372871043404290222033988193813774179867797555147932603509495143924415478038774633815071526308028198671726663267698699768154117307043479903096599711552328379444120551438165887663350015786108535825696113106500858753498564243745935272257797612561488622394419225570023723200685912432243388961028176897704184504905731692511630749809391534879029190121744882318667074243471025099004051392699179579355730132665759517395978283888571181082454340421227597876353087521372137365847152533149684104275675309633232908632864033255700914666767174962044682852841547602730170751075841607536836786846373325260391363851383132934918947609740038137142180375297498965827631028075374823362803328525586126900473197211889468590595469982720064480601048774001190705508549840791943290904408105344200651227074717418204109640865339475126612547215320007906547117446302595107809941716823606115003728101424539319960665469286506645577339961443303747807969217593922910451340426957109272053492480636393141247772963164886986049741028823261543644488640616584564893828541545534351363935371452510765405946503615410879051508863276595824251032536465466615227948616501337582950793613999930368360893086909021113348768259774389165355984339375435055457247669391623315029783190605511356720542452434192239749590062636529209250840415309746647495510014629260151179296105831715399752798519925187649761074840632598924569137126709636684313623014485369144591908769200448135686400333083098484483243002673708314595498996129607900873544272461666534583192904201131955824500878936534006928957328753658150347537479515313321106247697884019459337365570475678233326107994148375814578653876390856209487962484908510117333179904932016554953729713859877830785134612275246422869161071465934646151248414990598290153784614599643823219992930703670248467451505981333808407623152778970914819404342746898810458423885697217299971060616094563155214926907747117666140835908345018451229922607570300707900089189037887572346318793799239114188714731734274573170713415106467219507074614168351655792002194652019712329645750577236198038428521352136060618727989317003741729182597257899663064454012775994868418090410653288416273969070916690119945388780940795008808145296965584881757681262234077699322669469389053318967647543430669765096644302808593752540560174104417659968598109270549390864860036190668514087175028570942705165871937770692149719205708061606426230279932720084977265517369905522272546082688774965582515896408669848327954049589352959806139672606591759982394558851672937828455991257177385417560414281229726905114042955363014203811027616571306063007077466077072692762582834187612175663171088330795746306395421802890553883310989439253336312103392004906576791736343123386622031418880195911569695051142179862455164612848291223034862101381015793857157473295143676884341655809066145345790655047490767304680415353911065087187683797513922976606192821636608553667072969761798978690898019595159606153242332232071795950074680790164610717373129954018563735980664315551026340321649915671017282144563765134826056900646524482140193291448054396947602622478556008756162288014052160092781757070739753264192815419278710771342854126875834183026545531778404164702849467545853377169930400230589909192840897338495945865222500130210947243223166909060963511556295842908560537147990551839764676969622512801656482706415247138186331044555378535185554269819465136721638451810297151123468398043643829878361239355076364306066999485419466900024907113421590800926970379848292932363697590095476233891735440189897488066980867984280323324261584645632105340762462019372376557102559702897914665680766971636386303276680879720198606241276462868495574647553647545298885067978114909611846015189785007023296093875094400134602752230717957667950320243830860150237622622620146097566040372796123721637807104979033956206805973155348332307372042089857501035455164028323629806031642706046783035205395292876370231582627377761274739052076751491553043957329919672141307201455727326037365441360480618011325696860959885930362481966434984605171217459346461498445573368974039634578443291645768043676810444091997915311784128700949046128682274072367269102855596104698171231167916955903323850134105487198951777164604507922244312093366175673460256691025327594049596943086100256236365470114860042827281420546496890656118778465982915047651370365814320961740331124913680128081634518550928376127073276849993303915349507207479833185352163228034721579461317944257054764989100147534521446037025533584561265677041520726140718208420637875112717440874263198544949358234082471456857743750682587392196253319696461814733097615476953679344517826839082453540370567333878795092881274788847427798144387380837015116797372306535347449385932265199522324855623301593887241717049314689889348110278073745203478436191458903799030392038546428483367380879992615402728753604407699068130268924026518073513749422242795935782630808147760624489659688262889635583255486443638865454003044268000003836862539051503826702556722943717366825802934459082221445312919944339336736607304909047829699177710274834274744675112514289056704290980124872007712046574965828303199331920678099029814484110393574156580283940155235086262245400961049912856857123342149815925717637556925702601172814456100892230150829288867831191756417228802279944296890905369057254804790506001122159501617586914973605227404926139350447697295306706710130769763907663197019988366235606142735547359750258283018131641197443082462244796382421682202902321268507773095519405866068560436804726976237641226666928454839950744370484061672463483402719559481784081617925945602911057124349162481504160352696957472388053879345010624218310077333682118396616517367583826174654838260528527036108008735491923938352277915395560758475612439788868589673348570458060279304995710188978926227241416500376273744450518586950298534834506700712872668961264550203072266362154188239198745886888360836631056781246953969121423012075357271526401564465616485659521967671762963973144657713447484276640335872163006637294648913914570288350863543888776411071967283974306098729344634294860686252431378961946157385582299327651784565165903922786482323134721913397876024741420607835672328945166545175119555832300342917133001469650044712482922713038529324424342380285051336369329671037823802291341746820151794267104655596061688146077068683357095206742078232270811818544797202168169390926683543412853307025906586575977251903822083336133692163845618308105148330684526169022669384999433316845759497036836495638621615966339494920269631053795793972315567305300483706618874652650253812622058265249180082366393229994105520623436492200436489161273037173284671687594520168537986051745682418921545886631501722316941996518127216334309101278780350889261345661269176559256975548602035450396832397363395873122522260502547616522078828152968975992625277202979030250373389272934450212829440381058224274787789170463328702365965156435286816088293382295411519535617691394248796574669803317874712668597359169453919488435956826476950549463685242120567571050130765762470203875166594779308596834157499223249786478235476832244530888338906426726072214183998737063691354331742690696425118497942308233381306864834638277509032387279017405329097904040876744345899681607007418104913527253549469666536961512579992941853020850456410729173398425217439043843328120789498782318616558561875219146336583833873028113864689653316319403831724298303514954755210032725552804006914778100400999462161439579818536545063156696972396058755124492183430046996170757002998046306264230636236719927646757679128288046794713644389254704566052648800927387665123039983775835100627694100252104066391640269401544484645412164064712967850248384689279075953639245932039063111691749824143169867517067339307663785127890795196099394461252620974136601590026709095564900277602436686195179851699636298666028067656767065031366738355851501003382009094461242035537833828104562477784937117130521067306931549424389716052278309999153323217433039378257683793120659915124740300312699292965209555059254835599197238712802270064146850113554078105350234098767290657499123761082923797009038331291072323681116019096178235766613010879891915419384333230022651201200361916156729827336131106438153178827083552888773706411471765676274518814383923128155157952888628048728738759617049701220117017776946655046769455858688875883111029680776339642564603820651907020493052896115931974156023510420543607055744621906351656515098236937552064031871361419239870869910227721487295178688618820190187706151544411901572606259297194643530217868631891450407764558595295214880367371010448100836051119915448170551093254648964054046128510575184333574958499058780312361399817518838549430255891860350854614911575281498305645512136291115690187068712492346545114489262289685715254084287941459322086485635498391474810105170876733207801276044397233307861001052563492064382333530545047833770435711855591375866827825708757190329460107270903414583706991861002263302416277454950353132310393634642713571483928806401829246115622435091860927873150438330303987979322435121114722729249295504923453600062930917924206011243479728531698707980672620550221096426595476571076944468998481198997275543320458707082290886604802151585214426882317193121214607426226551970176661716999053026787799601517444083475235329258072182305800692317446550482938749311661509677861716766433765100696995480676806964120847350080023283789866886697022128929533132439321499014254221338652229505814448110911352321586492817416280742175286252675635859707543770427169710900749509898223150653742673212164721204334516340000240968141447746368222463927087970169148020313335433486503526902144487160792730328792602276237253082638266027885723518245833216505245149882476189929995750435901344626557767783385880432606900817681068514223937310445543194860280637591160756577375029084614964186815530837912418286491585836017692747491415961047962739423223574094568864192737359615217981876035779948461206911630284737860033770248101157153764700710366619206019649141458084553704431083066488245826384262999814598952582105165098085440409188737896244774696908155666425195563244282358401641205816545286240115199840680894010193869305793395269364893975538433569090727709188812630949899567645745027486611742315712391097815234409691447505882764939439416184388852704491743292972607702809609860674562354198499236753767514257039556659147158247582830397055163756565207454348405457180625676229903489051906140339197427342934468176464124387586351312974809602566639486792739533021798366005008726507579645436373831318003818671228321778815137126133292954931360619618171926607050168343805440691436455111895648557802707799721013082127504177206033341129827998266090869925338592876230816575936811630016821430718763335683449551052295392851628177177021803985264791981167500649144604554533741814364428923523529685498275888815881808807250292615102128811128886744144847393593720030827875806475755797591889624087756559828405915633424294864594842199177444628109386967740782731823035707428747007199419957194029820451832217511737271707622513878779153150101184775929323204760992056071940785723904251324356179809418842707586184802019211058390973875062276840511268672207561103996209721313560942981855719011596119874407345211652514481759514541811808732851088971560684499356927919131339964324191249173183202313841856293526803872206646355828538671034093214603090386098509692214496931713161928057702679461954757624597022080865885784894435690374351964628789372164329450390117000507025476473072361992392656212501043015132404586292751556087934587059237698470879327940260461028103639048847193762634165448615261143214430184646745537168756287673462879411734965971226438770052330103683615572244078499109390566906363351373730116754370177984826597994520748250223031576246464348289245988024833352680737703277417975409229170603519283502383855679304791981523874356196270127843192462826411293136116149612942169769661793057156405442793457331733300011300513529799199437191217512155965378725122934539698751766290036280189484503027558750980632031961555947193883766885058642757670978222223056932922916225299885024085189424759151298162026111598277435332285319165443217695491279679000542929583988923386201501558407178044942286920773894199390551927451706989635071410250304834989495275254293846047668184389148799536825238696289399695787924653339625810674178529189990463694185008633093861464053785653706742686129356729384217098418975170794446573740544050613716984348805581102560053177240213648149404251430750465478495483836614124191822748112029170416814706608159506150137940994212613902807924951256035775010980921742758208843509303833009676967848099005080568103421842431528333962651956050565602621446772921916278638743701424904887756625065594262035944973206188013284209141513647471310961861039727324919553827456995466377581441804110380891329522017051927422893564394092949309644408542039211340166258179469497024827292631151905122224601815658595803435825865569533479011885106768225532332939803208153388770774430929848345825424739240322570146995651163145507604845904459421074795763846946092819672600294407763369215899538616074215954938769994088911292467918848767636580841935319244562082802657173395991011471968244268868557313457338663937053125653899963386591674071828817343154158409435787386620105530776378271258186381301202553385536399246209198399821185138695789394336948219579510497089611285197903367470666157304192793250196527404348193165628494267323790229700805291076910185819835949034670590340256239063838215652846048233515068375987824467622768230529810505440484412134577932238541216631757369790635377026900513791498874928439816014452869363136089945810616373709191963453767920543544439357915788575888330689729631733683268826581324091344870014789932440780010711784714491810603334917802786007057525469729766469991896901847362188009461171196012461715034493713028764902260227664511634146998184795733256947498267164042414630436031886963703028525575062374267090130008031228672275977939420414725269727989845272150619415355698633900069163003239718115529259837565338516161364523165779513243110164467914328766759776392629635137312829220941038948045188389694861190770760112482026431620071994620319146910112124938553017013605407053436603211913505258446480448161833973184602505446512933852796316637782296332961466410238339848320056166376822809110610044948846244309020789687382445764700067135692999845202712177530558419751365030379844949949784116347621781245415366351806907240604272641060691787284481318388862101101146784297227988460546637539508230064534059644764889585369069876914629602446382344270163179891161404709849642556183732818542205145626769834135537723996476958244515008849912201422560025098983549205256387077346039283189346763575962240782699984783449447861622968757753231028928158507739292659115105700225637721332749579374231238544778758858841677470498550629314427747354248620346055082816245180603059810204301787134106565081209646758048176475511511866231959768237558683104780092127080888871653992262115017482595919243814897965720154390743602959790585965438096504859746452925092907586653307641217125906721188186311536114520371955243555226951768270521319704396399040235626711397948627304068331442670750951850864894607129267053692600427043554251267135709785877705339814081373012452609147559151180256329309794487011538884328082735371216272177934214465449853673673336139969370329658395120390537809364462697306446617140711949304085910744989545259483755807158573110590629521407014714107571947180208632795407037977949107891117299487795977944154813319407255491843545865340036524048910008467207039664070486659969070258266516375230494110057129183736546849766465979274337544367652843989799782873541223844754609630877229814864654073278759367721464882481423731346471950102583133655941485363363493812969902474244117006474508867197682779369008336343530225237657547675680877182363150465441069374169750022728942472949556101368615544256498873170063553227777928416749011294432103271670931802172676109151069076267777284400889422396416637423103910849698731176821900683068106655813693884298019830438993509775074290506590399411807720234728405946838287243709935902491294500659222332248994786977139656780231241431226581506882129393963624685455680946000214243919411995824530608633353994227457503537355181459224705207893264088057940617008018226673878693598667471367861207315275717431596986591020755230202762897895614656764788381487412925086256764555614716278555729499414342777272455541392959200204883044147439216742753307591763664113950053193985952857982998407254057515082125848253040936574383930431254108274347843784916636232400842122401373954833019831519401299531487335139304279274749620396183168104040345702963145015629227130745434078993598606322574325497782026939381073989391359303766468049541212748867763107020452871377347047920762050586673200797984349737856967917887420873047532445599863357452908555942546225328957078446755190932460587989878153388180785950462210563991108329699580630410706672076099045193436911714640192631597639397905664964252148924512461306648125869341719699440831177671510828219727521286186549805247347255273517899363637809247530035563619383060171619526208034981068676697709194998227488949958341548565957084191000146671289907295008391634762473637013797641598123504285231017060306110976763836194946596441813298696205595930265530110643152639014362933690930606452247672083441019423609225878327016262422174097359722900554983817176358073726397350767871445018434019698055948417774838982720022654749586478995376580935560729604298778350306485565165499275286980951411084530105093652267783506320179412514001542206088374594741308995936381228225869136046594551526882402089256671438154657249766234802054855513801509865797150591325474688180941400731301002237762177940351517062324338820269456232544183289560470289639258784107190638032704054015671593080146457482395293609195977024412970861850839246784356854729259216654357336928829438917653512221291274877238509230211566442985788838189213722396510983110785601050633153328697808570605528478635801796651322157739922897549066324332032985531826682992949517108321678043690912154724648364006947680880391036198849970689067640548360441697934251743256000935144644962619670797669454956293447586958080924872818969223509315052262192251762086995567033583071729272333568272879772217066173602948743907353834854720163026906075360649657837404889077795048269727948395247988064233025725752022977476219926802889804482526424369761495155639887897784339044569917019748846708123236369418975889145068000332793853763787092328998377109771109543982219014002619141602498757320887525538263750251656695294913590960572622670077694623743573427581475924126995616370179652414511778645352939720163239247378987030156546257893743975908543553376476418712922635660485947019201365313503243116837910944656215183077530608448509817587773667358645348957492841762603869976324731186392439901538413041694049618199113039724449813183442439315483474634244972669905169372375318077832899812388440886011388187922629873013420633799706311624731142084520325659862169409680731934774836583526036038463379027536573075969336337818941571869962339447179791079363313838116314902687015032883336364777180032336675279144434447252680216887309338391791018927175007313263573499689887045215073390016740101897957669462336013890146869454269331340269626770128011413973880541826959226317885811777497766218104048574667738138705895982785082078395887785450458540794517444233925416279584376112806314207556427759550607513024997094801531997444363845763478276650567059310660277976594274385590897239180060823290321963628432519661597116823455376948394106510992094782686702965902301585166898258274622030704686038434675964848018199623816755083145864549428230988942953421196988791726844669808268573087863892676692773950436474518020956237660714526002711055918798454878213168931894016297479424739545386017962024397939653374485676416787899793019426733304616504154349624373652123163035122287522727686378996017925078741243985171071962236025744976563626408975393371456075962281504973245968086709300219219287030863965145203397964807357560373228994409025879760509633265372986813969871009211053283086250872951140035675571809957185559879497711164898226457228488890461749788812317939149078653184320396327652595329826907523745833969623700309855976539484935601452121514973160323622819883126049904371574292097113663956606896204967431350426004744123287229587262788568165417629119093013717249915483467470503362257314371868260505612524827284999259330200133327933226726904599945298372467764126850141836918315215370817739572071430140608867221313980161049074220195076183096651502532141442355950558072173723022641160680693357722571955251278482265748766491353269813099471279558141508649119491446195504529315988083942191041738391510788518907599182917970131078438917848833032912348852790937652023158182104744090590847383715104526554575511593030644112106109533462413363424016815895457632777246965840767650372236258397712770897234864374853174198204580244276941331102208952892406833547935585564748788743461315927222349906111995396439074250410298671580967990322650456516729441708817739834124179864708490601476226938562305777171721419184644332180171703796131720299933185692872840429767877296619847221642217684401581825855456297601939700971985095925443465531804814338913616761072895838310458230093916666975075273938020395270210535851210899055930691327903838153275450516263031830257505436785660707485714308131228477179401622178088861959404027694321343941926987093797998553847869300972264415049277431430376367958067062178987863528687999052101914680486887468703248265431472673525623532374343688765375992444023760778362904720737678672211421622726509738014709119462976711253389127039622982056518926120090827647590984965748821476081133971272326517621148748028941299449723704578531257640714297389738068179971077904941753367681098772001750141412299785144329623050812715875199259213609138020413139359399980378949150680346582267818286050266625231548436482525256659689079933834342733784850380492995081710801538907763340369235711593419790792282558131796522897959281593523059928990821583246948041427482867652552595094004432082959804229822501375061017177224004837420671691335872843598650634852429739015541148308803211817481472664911209886282364762883756268435300903979207917242376082550480386698486150342954608342160619185903780915661619116064373752505885612223410411140681243688554100991422016586179559012354123587975234779774099868469666553336460782714547115123251436583727687683117541777487278313804896012732193535552807641843957944277869512384837596069145852665818000765666320174555172630790399557376834455783164164543484897532572621056250946512967154655481641620745803527724182740332266840638688005430686684298514627245867652343750641234162068278670048832038586634526734727779754415802088429603038829431723211978507705636506770904728574554674186975880311618460291900936113366298282129792093260450836361544987560808149475177874520515601723494321900301237242074285177273096915170418384184375189583724248640171860715330884317359612251866201603702400259380717888258130166255778111734998502966634471770896972598361486124848635568773414362900641745035791490419242354502422947441636097694619292126604328398398310710224579233897876583492779180334514303656361828908912095238591075265218189548894231115188272787295281844414075969395516436331542252244575527735144705367685184695714442345661313588201112174779034009600174584177672830023447169633751762470727358127958844484973777317407530720517283976435894107970977197000788888957480150319095684583592655384939978164869483578440719342536436661017033992193018908589275893866782364179209419901949325170988015835313685275860909342369622900156283920556882822766834141281051834506077113112268723440550758511795742348299278429595481379873277686273850980255533020811958125655163067505116726082603749877882359461198220496137454134686127443712241916330233945295738494392835415684153354470313425970429377178938342635129988497309869545918641272013321762169331154275370949647611032373301713568508448739810902886386172327996116734567920865900478691113962237354214495206741685627275794323348035581141877679990014673890666039983405384258296628382365675752090361356685933572565482306005317366118452788866233469095072091033983854449721759170492092250229132334087271752101003416593365115389921391873563329001445648592981563565017224463506598582589496199137673932940498532543721916646094786853239953445660115107337685407427849824547613791395577491027541512026269448062658396687789187527162081495220974517009278357054702880631399551127184734605842776614358307611470610913621297587964604004471096295174878755927782723731750898919410588684800147340176537318922478618023031713041262417819636993211341528542260369993098840088617115615658138513433746811719774648331412887525766998780339237361437537126556101975756823523935299518516822637007727965511889224661254165695510792062114610559151967900215761793033349553354406365702965473963128376059945226444573955699931436289268393023976923755978249449454074055189949355741966345938769706699834449295076821371787176047457306687182548331708062569227831674193216712348136415481474964248969400615953128805382824219827165619533242916985689292641160608611849722761878813304079932290853397179059758719134019696023994134049859091973308408755694582128994483047501286487125151547196510801724377531778061260627742508017594043111657323105129885710361537743197640942544770411272706047701579584775885295887210264443299861064837775075648196300995118650237773977521016342664789194521591360881665824548543940466089393228899316460595714547670402381966458341021269552018227076864628540637186698248158699069087292009548047495410832376388976401005537924682809744582683821918282681832530972928629351092147262205575769281240580949344676055095433365564593747521510561929466980712884794238339911607041936338325232949534028521954477749609000495906575314389845926615010691605155322498333921963259935729169259030382064310182356507270035919009397753293307633957442490531183434170438537840782091937234394719026838607806892976104613066288596860184441228575926028850720421387356576157085623514760109512240852906095138029204261406932247896276691355608275869906028185637502339070008460695343878130551800174512581146140166530396126949840453944533725623846176220626399783699278153549719240664169291536814605315388254474218239743177763976235588894000895555754804374237165902141605273446610000402091973693340672192418927327612251475430174643615253965006541506344668605680904973587199168029050101156145594672975287239231139114813818782615537871740736145092409546295252420219987173310549327038246415520956778493904026756583762275112724480955708199212924808598175917897619373387487729175526358808310462407825146071443754699700266661014788048408531958014757220235437296709651170971584456778054684354782473109949427267780397340895556654041495265804196956130752008690886313115815422466668673280276446034862278886164768228884331606241519532199466561241858871868884222308957086589712772183434301713624222906086384125341692105888615645675435806543449542449127194265392651993022104066354559695668846205441926976074146189369991730803529548233984601621437716077310551699630736647639124928715978319685638448756452332882145374296228538414693058944346209842076402617103636518846696146249764114175985551646762339818740990684362556605305781061055029694235979046703910067162571499202149794174275797227970993847647353598532416967290306096432917773964490702783100396023143172980957067837008098260633084388662978557262585629354311321029272844512833397309589674151349205740521038793367472179325105554922709383820432039343653911387046557048575561557504051800258382949287417975466295908604742371380726481794107553921684510944258713385485355238373837452689588726542101710355524534732851197011386655714964376072542957333491576391503460631604495138242238598603690848130017310949105146792729550369607138567248265456831067951649631367787472649695830865939861570642792379357917420169108989965150277648901367915397754267720803174062224951544156828728308498523549220776964366653972818064703150407430312418840509327791820782744732865146729211080019759509657712776134975035961473515978243508619635937867522208084933068595702968944260868585530407190350542806424357498320229416698266760059752433563020159872855399212128649542946788623861274156126498702720694672750134297565785990519078552653689308840773361077288726698830108354214885405382780622991447587444698089429198072201806416917535351219472863006648467153536243826553781072534266496588734357906580236274984217888745522698743425449715506058109972611877688420973995027221281894685012186954246627224769881277263848310671398666248180889225572439344591331485886184598217385820594256844872377843498026435297298503152014763944094811706594466840360815277918979741156411075773747955949533256796625251444635935178336151052657268481517299098130566894799765189957029978963974492555749521484844947249303521858864685144908747543865646962908851452148781466210807109157163866877041177283811998178548682582213380961773065047127191275126628056997506740609497008189499345535606587046150527951891014200906885757625029532384097849125855297710301308637737326071518078177652698494416329705514109033278679961370058210377185492434684752436013623409777042833411668806325420738790591216582774765940660932345515288173676830239193179848519167049045459117856616377247740448229757246931506232278077114823978780451549066800408023107086915252061535071256778552636489597201807033252820233377108892479682958542396623600480475805877907182644116590121979854441130726421836324756492677929321446320300888053380757356907670964657740735046033791471359983782089054611083069837496736716405811952268126998923341093124526656665350417828150478804550056536381431256466745403941869942507430211263227296978923468429983155961834693607936458749617465059443440987648089289585691856455593335100370876491747499126570960607152228787183096585399822666117799313498240403412223367555081052362837234796397587176850015480175609667502343239666420980629552717584107282112524452937435845793559758509538657162575647304513272850840902748927283685760618329527405468186147625964316272424434208466652881773913590257204182686544932480590129736323951213836972451863145770796189428160648891543798347263412666690872863122604992013072768080491332808894616870964269907623222158149038001724023795254617508841993892352502046878220447463472194002903467766669893399334059043595374246605234776424485251733124376821170475876832267443309860589099948787425362595486965320561241665710259738775678298138310400284903400330892439618063407294149261266807677542087212329340055302266873380383131563559985898279149272491824144781775740158491905550600672943038934257780919233142070574714926680063038464626946843745856576888895662259742617134894187582879801236208013451367306638465420059030068399260238719235737832500261909256151259578382778240306700631218338641510223704373633985493138512579914879581491837374802235802421606069753770058373787753114443472062578725539546587094916638908672078900642911017954349503635694740661292180765550116332512837181367405856438426703704887704590693108682682136487407540735158145523918355890300539507399573968040295218595313482514290751833650446675029050894590696918452667850527828585779641160224633296463689704881291560658147864174173477043488110509329648680759931078295605905926703543418383990148737270059904736340110970937206585246993347717404575975621986924973637714020558723554678116561999714473433026907963426562306146955476030590224619615040291913989766462822592057426698828339036375463551955439707783265198013254758751359561619031584216925144881585752052130847251500016677451994292111362735589901112601833989123051251686419143181542758156472993768820676552074497877723441703917701163331082776106361159162352049172337674170771653837232682753314851416690140153915912718465105724961449156055028984768479246399345108554874249736174537016909278935725909541558806049731546524353361224114112860240591509313865248297869242934181552994942814720086915486226370365964200619191794192853801941628728020799644185137344008983701363081346397132557341712257062277160331327838580028279771243217721506408198379039291547222782219563687829020919613309111642184298633176017637440879152301913939330377305080935634355194476040689531511498433194408558814131686049821482348403471653315091743462068700562669702640516423905196071279636500007355043362308297771367275591191104505687035015576368382089863590502507166834286809833634371860635984102424878479775090918447814953141089471302757452273076356832260506358314284945605783890916642176331893184742175943356495304640968734872099297626665873765010940092892480666760375468427962211070037838001893745366356275655774479116451739878938256246607716561348739094957884856318048653497854097189905533183837923391111411588027178902181997150625144787932857462946254559193211469200654184976010995992039335395867571872124555984533681445566653656296626231640277930995384183102446503798650585384911540067458572463871626395835138730357355631371415943488517022060596448854898431269858382189332543935278133144727959450272925411093080460500983412201637860984348456210201204744097404158635710881551682870725134652142349351643052237162542585251104166442542502897327337531821997377606711700985590069771509336396911926381810223314234071625385792120513036854727013108025063251481482995914674545343307239296056275560587097627280440907111984841826243803935716723966365574537547885494814439321874002791595500814295563403081157638095707622021272411285496028665029709525591517375883545758986632018389494625108990306265566241665321171290671758226820965538278008609451026600478021945625029857379051977214615376884036486317194123202455085635865249736659337617135881244135195462636247302076943967719253044275327070569830767527163489165043018321834522342468598709256461472726227324613888314869058020135970391828900029875794926509582553427392642982044164907744860677816824980239956977044298513117122153040454827255628311582656297154896117363062274460077667214771043248216072520878112291658348879469043975150274239240020012454457102897089427433564727270191109561505640043471052864701105807386197706533581883699732239939423575720068407009790659389104975589387986235053691745432092710856345610275709463942739565917873114910306782838434837436646877940346868292317429811536482160761860685452641154775548060196349264046883785865827533389947906803630688755048030557932382878224590645864826871850416360110928577281405252378418005170187197670601855042706399801757581778452789050681348840999568773173974595995547964488768990490520260931176748996634309882633327540778250023119591193751811041033687453300102919341176874284696644776005771291568960296607632621301673862109183788499566196423201238824612736094985454327040933539006432649153302602038766207013045079321093812243467033673229592972726915967098142809869254654705262064261000713496488656766004792681213429095291397915698448597130420610059541597015279998087739745062944475920815697074959302960838656583152051384197385773530955301437908736210570737686945834668874521575127834929414883441973780618102925954488103698023185677657853188543495841046202735965884733747506584582435454240414008101780916799476368676803603148392576162450027804358688072617849015416116035691647330635087216920603341093210163467313788661909767156853638883806125490013375194838655926829028915663774287656958953578063133190362059576860626247116230553688210352094645160306614880716082886716388369463028620773619022557640951561136549748369592095982998169225730081992588187675910540389120678307312179178958097484156011642454313741141763087803358300540261042383846147498140341928202405216214509325193163128410561849903304817389112728383451817902336689652299288641300142739118300192251313938065799386305135887532599325040727759594655371748239638466695131065744575673679150636138049712834808170439403668439937832116720722073175440457464581313702892472869024754250963426109087053963010779402514863499711389088752816442942265597497384784417545495926577251645304799831446825162458051851440617894717908996780672937119585762715435151453411993199683212337265802378498743378487742995656234193278114528362891644309733809150601892628103182392890952355488463342824452882711492980348090282473587407617539850785917759178180633296804062277797501224073522013465054217240836678236573960259993494318212797072263252976554176944359176350040779616557624395439022786847279359302941967633891255876306746867694483539331058496994451914625185646034131792983771874219138966086731254776487353994341063465700058656482248294232360738756077419449979213992119496150991064738994359783922020755983532691056849418041759914389261121475056722394350893062734942044130819478323996662046932235763296746701576784366569409316763721880748727044245172957798374332005626417768458929121064407742286521143564115086721450722619345522401385671945133896096876193218214264613211340076208381677598656693134417539516563840934266993112733941330787875891552134981717736332235973655375347736347485200833736422353614792074946331973505318074557428763420496256445216092672954837045110306817610340147724534250406213016073960260040226432739542977365130041099706966990797016371694065100038429512249927815417146544064064167141946521374893208070480307861116769032121692742201562247181879315350558834501167192265162936569837933323573050318441228399702274535510219202014760745467948590301499428006609441756963492614048865614781095864221494944421731469404437644796549870646920844764482717672909904215857279935465385650747976556175817113541703365756853061286284521870329596972510843035831733348518076778524135710789560840555004257892368482549094408927275476750115994032788376850638451593631594326202744643513398656897846293773785196586353476171540783897590891959932714154028504079103268551720020809720834027957476573395999769676667571286379713664530747139973288079317820844862135040195065511158434278274343547572175577615038537164709599390310672636386185873754437933447551078014703018355100097855685242514233082348485244268676063946211678869931427377353746557869993766484662384801346433316646719812261402232516413113691093879111952320716526258807889222288696476439159955381818742238229169546636219452740138225107839205502182944926577512366348075812271907451758737539268839657899648958368269408342508292302390062554946494987760001251883352941077870845766116603199436556683557203336991489230926681557680407757326436868790075729534899932682697660335761950555412865973361086241246247265778460119447959292078361089538872984868294466035743514818148283314755423537183809201390011297644206909907741251229552308784935941518448374250695587465009573947349166231627322663568631737639648382086918637185261506722864035926866356254277156175272265913448980013011169794506351610720477671626744143492805225358607527677694962747827025946636518443616601122247821002356531065795750224438440045126788544167906924318113152035363100023717647965568831827599570438266295401667548094856033749168390600991841640503037996128942337816279509781682825439165656828873372087564700893896427155117390387278631816155543987901471825368042150075401711511295418031296704369076429319404942096405873738094172290867209789141087793254496984112374128566525896613118439530875433623806420949208621202078843447354123303950848633120132185755602804644382965044418771665930182386294294511261545576449255158978129564995817036392135699133610108154264200396643050531142458063111516355597428647112549640447905368358310783304558979356641445417622282955142165348798429185938783345738475424038678923435404020015597328684370917647495317221881459056285479530189520157285186636450218576519657893221274989670754204276802634461590193427025266582916904229371584880796953486337555691736399665225339310576767961081313957324581817551950436881083493447508165028819929567520115071380039604335185304237943495552361921558035159120957026886994717642516870718818762003601005354248187654694974287109343209111139296635422967264497769388890023474876444758997471761006131498708260028501785530901668607262935188121703204621726896433749466145198373155351980910433632016442525458597287346447313913411656806524231282122978736173393090755843481016423736262557682801854766784311168607557392647357463715972373428640373668456505546924317750008088867495968562585638961168867871779999515021910801904722837360156712565173549638046718523589480801941597419377407320324378189029437021345584462058280544183924403000025634824408701758680746380630837074781098773155516730103412100460557230412367499155592811693545231031644547756566898422084961585857554721468570467212046298757990953822680103387389563447943548438803707701795274488454931924743204890570684144200221694080926104597855059143544265949371356037014844350947038390185620134996479635474129300431891601555212057735965211313544026530253091984889730801395126069237556660048079069804965003165102757440519089780247483467232836026846602544680064329287248976012579930505791075094146896969288073258736439999178441031081384529658527741767938538542056387460524893571133140121088696700381613389582861822774906143754579416239294691668462799648797218434684905154643699159872273406875063173134398021368816784248799614454643955180567072222445414367441984941060882671842915345594754210137262181567308166944831810246215588936601007466890366179960832578683166815811590495626592390504115882355543631922624789152506461625046110645836446349519885499756475927500143310678264849253967100294083632289345370563294510841211400199740503986890147624319196569072775286161180704435088011791306048674680432091212473807489281623209808538429144499878691024030580022006306656782040693455769257569237952812610102834668896411315339898032785870442421958512691848671584818806178148413286363114245801480666905481024371068574333662261830796502372674915917796274741053588883071732001460027902015248256847552985951759090541388562746741630431656237308028929127970655755405752204521806064716948075388239093733305343832987258907574878011515196626816577451996921814689260540779177330332523081702542683264926909370775213443146439863569399493064144305309179458849868137866857000867803676120210008472655373086625847586944885615579501167713181252702287576930677618960324132942901423360159967559947588379495822915342262329026718651330277107101268859265982814700196168393657918470863207081895891467479111032352392543092612003353859453274451572515962596450291519110130880322753249432049470479622868306231091569338180754650707364643884366057489739450366975820443262398040813794096547755578376085748433696693742357911991298439366163009868163948473154066105021296409500161295042823918178340257888609979503001206343272026026437882275180454503017912894275608002673587102169113351608461621324248639156792082470009128857115051925225312354835591350876248579473768882707286402870347370924834676611714652281325609181481136207247000818770785892184001871808068509794883475054163941229568521577632627138761423809922095257465725298457649520876480826092267285701692007051129398751691674572561541817587152887067602501041445347456146172689859418445143525379453496357661804556869459263402874355120273398270491050113263864861447889630894273874167003113522339642336357615142506512133303423706084794971782792308068585081112099629251788317217214583906950134833094775969622270687449876564084137456968979922680852650600091057455111849116569830971024636288103066822160181151498031551105607927526280504533526742196191701910957361612900447895538767446920717989356861859634823437388092260626006115355476920574260584274236701288463181764767705270101619641811841707377373482484560851439113313536995125475465618519358106871353057825529480751187062738023489312689876433770829630272187474106772532617966337702034384890090247660411614839536120367527115890213530451780555007264212539322814974861481187958992595978073752571785467976305749815231155664094858837310902551724687997769014461613841284213552736652254716467523686380833743718282019411577648427680307365935514545176487769953927829585849359629888097524328267361649189023686717595449821922195133233896288836426788391075253457393545230388791659125460950554319070156437837211724721510336831128553149236860774118041915247466676747104011581395418216744236483952545354703556244484511391632921544318495474267979105678324143455088236367676181130286101620599184209021681049853124038700391169953836028206930336377035227475335024783745165151023858055637569649450695096261445912592129554265958565187667654690295577181048100812530148152796904788862795375748938446586086761996425909580887379575481947956780701363673530456127990919949929266116588224355860681136375109218844268838367125826365956936035421066508343046038999118104948520011373145218921426079253527695483982639971656552957427690027211966768829128827545753559410715189955122461351929220886177718078588333139135016120183376125442946604898744951214697481710110171122361231045036973601901240955198339380550840787367893485276599457309431158791586810828651501142130082244714591195717102294717958627760427821611421828721974480623140490163185739821003040755355626724710649159681953559277411522246178086235948993619521912848582954986706946808068849113078798425714455667219042333131653153629999225883012200784697753588703669769575607106452474852688500076653733868641769012387291422567137381375970791864294407878508344252188484712325860530806016244428887325713443976832618353664647940654195688373991434469129567471811508905276276899555391798963454680912342638900827286818442158389243398707734788117253815146108267083963434155489531212747275308866720200541444757373733469448534800369341539697894503737226176010967087606574156407977838101632402790597143891428196768710140864553269869510655433160986293408152738657253309367942743898567285847754915110121965520387650690581981624157739567051872439501033582973694655002686179870660552450541863918321141699771192282334502487701840628427147827430022239777520064250807832838228073792425132068838461752234193528656396686674133361765428310743640534012594265389191646058248928237455822920553725481828421286655028488790342008773633606680309218848054527647077185122358699239452788265395295801726169451989011203777984824103295306821983090396243108291132515253710954133535410540501944613981131513552063774209704538956752000155279549099569162876411511747571630991583660745990879073080373087164802928678147109047055592184242904916196053827426038999645966064752595408741744202789176076170829417330407629870209307453035169750570727909835134480414313979688834903203067719947786662286231784648359639964980007227483402696921453633873048658731205985149060324181271464812957489015101935426902274086013762730701538145924161220006579269040204312223024821784651185315025261830895548499863388634510762160176371721127214163560840967539004477036441539756535558769144136779930917300929246645774638330960207247957460730827560748670315575655539785213410132260242234313562047155285684201650715096121108724562788321414170188628428867451921892100597847285879750062262591648460965294391460304726082031809096674631659525548911747249259489318873640440501572537126030112893119639874551933831008970261029544428440851838977367263722402485199472902841532856805395803342663140777906923535627909042119883544471313588148437511798653347303391653143383843840034568170606280802656361349667260204632964295150081902019853443584562659497818439733317727248646632082597077507895262731620827646698574648902971849161741245469121307787268413358729776328221526070259609157497117794476504116009030388737897285977400377492640324833216045386577559297480167717104806725300033641232812458140090435229905415217225847177469705006139430099780439402362116847464989934873148190974043967292458082035229758182900938705200584829611344520764986630287428057623270352061794985365295606843588402255039176806947749140326670662749049104436151062696176213519065056100146471418160998405551174938792681062223242996387414014044766538621738726447764153140437295231570247094330640524370897652758475144474897252682767693308387551325859525440350664475385295169876933986457677691942757197459876766733674476088963105077398599008673023046299511075751381353543853580895457599112437641639738836218013903720693885619110836099711290236136517544185536028871496843474701955624965252335943906791290708243016145984711047268844434335282788611496967119866059677543289496311997161827819773635774743565800914943926472660333900144338736790338377805226026296640140047135541966534508363729652340689639491334677652577741157534709968806300572718823587016468328269493594376661009086514976637383489002290945843318709246664735964441531770102601937540401960993172118435589459180538229989265122790723102105319364772936170858749333119487701499151855566821800106870795289599963649870818431450634531627178371739981967337561548622758134406553773673156234028531908418574123230180852016734123421282044448767374746973008162638807890283528877469585479667200400235981749473676158634007950568139674476647376419441547235670669101372448446651609049490654476197625024208416321868738484930879554334161348355122335295470676775095585610083831447206229252466170887929875605673208744472512707277391620913771548782133687088112891136769609611764512670504008956427905919149541400301619318757656613613775614530757186901578816706682919603024800381404709752146159098156692450732884542026304494512806383045935853352303676671621286193726203001503821888428622143270549037532766026924977656212850576227776698172215005775076415148906266704077164248509249601836723426927804471281053215510443717400999885757949944813539662790010574496929233263326336539697922001112629399047607291514525185265453557464565326260045124847814647718456212790527650919011899266549707679158511166035785296582310797694990585211257261210809653936478919787634305864388417293261921246849305235532680155057181071267693810605982579346589286226084514017024137194766986895755479882139299600002606671891276060910453366603759468218852449813020186776352535403480517485794610024593448420460653823785765582174998552345204280495281429965227722413642453645206390970940957567660113601079465278484579589299448292499293906412060783742698321633954749509865955800483391241616335055378652708134267847680819598540724794890819047719188930271859901237498080415892976819549712507052185429138955301948963542920595700964250611393758635895035018684501680485467594610862176150264124867351921287714214333854104393764892110737028362748443645943287511682294842705588919593578740267556872665615255925900807311735519535430530047989986470175895486315785472947844253316466890137302241617823856756869822944974204176786870598425152398571993328311725432454772358900489009865194381106346786612575210908042055424283957476262355274742375713877838513380631149713944262713770335378910120785195243053162307451450951799646419618479358986269139142096455938341699725035042422543328506463661517587962723786888588487553445440936718796104855122821463087208858886879722350432935566364577665041745763776821903624196008272025827857932182856822531628252397201233079337982309147894706428140599466518390435065321884932021658047654492033382312302219344457769363716375926485463308299512441297537868327850854538332339817398017812002890312541277843077791162735756232116735451933214986892592254087523554813293079525090700902864250689043136117834307955521024652954139339545630183022837889514627059400220153147929247738936440843527000084977984417801672154726863766211739106261631368968560870361534367163000329321192607623822434284495044809718514907653679569906047063310003049939061779045916826424929293587586239762877783886439713908559449556278905181669269827559943447169124428201488953422921485171999412913973475007395516251211350568156002085555776677904759676457706914297996009687101269928372471878193396222062709955243842976527083254913863367080903915030357185418148217571024378232375790823173044510411730828691495327165956237909012124377216759823385567814559269405219160152070789716581537768998303662628211365542439024121963305131079960937965960937103966864892067245976022041633571540621517680375422188423319160210986803523956469449191325649847868743373955961333236655071715800558637862656847005404996049257582740124321644080164355307461255403474757044433117999837178432676495484182249818650315550814505077086348309631736062958025238349722777346231675593813208430341882623309293906874011567843995125899790615051155882295094203660072445290893563713308112375339308483466951688851525274578863370260925703812204628640401882708975930145508227615956126389316243849224448095925576891211258527556053218076913855457211105925398111438852102775300868711233134191371493052397054980326364153568097148392719538841533872234778890151614813058763663419725649563857565244836488706063009041652052428543076387009787931103525740591507048803718911495528799315864905118579538357828842871597609636586660753580607794360306230446958345916157624230892710446347175694503504861765788149337934935954229044837899256709383861047016066156612914920144863404647681583428789660430900031508447416731601069149029309706490517472411227054133439416123575528186739036718548644556131747118662486390943569855020271405706800308635026402751387477425987477180757435445882816935002476593961182149558333879672611683904459807894196669321205970594643524481100410606619984359516703136289936803839865314262684858161760454821003163733941157462307947645173015947552815487526029630841806559445360813827270556107423665473160063485284472314651051835653333080401728950389528005796278750250862061694822483016368708739782644469054116709434484972187110228464096030465455455536721963973631626328603187169958474801361261600470158057534097022165070415772821215529780843180655385691668586469843919288763311281682494281455499883216264481567387470046743321655256823534330802777312066056937230369400848623830353001320884820190117792208563376457929553516916890962681740012622297245259201341719311474998706549370444423270778531391115822214421963040229094140445675264613104110247485771498719220324043309463475231067445559147297208073901769107065897349450140426891815227234481711758161060394936074553639416237157428238344559124890682356789234358721737088427250557644680751640193193509265412390963606448169123992094968649420696501672960864353901625792262516020948664338542975383777881378423008449551004581573800163893641236426177576954443845340469003802690776377158356572623311317531652317502687464411890937750369413901580720641071312358204213816858383459083312920857514713219888293200924346755150857488153295702232289697654140100148101141164946397644155523415775062545259445534033143843446935530203058723765439567945533466137533413601633808841546923827355317306364780192227803653516735812615668196976260638305221024575142812725459358416940856491157849920572128356169152918696215187186578592934620264647205951894851561498617390188916215887606220070082745948397372980207673245242529685766490540072896761980580555329520974702433319273962179707408037106103480347822915503953724385915862143623499390300613276899418944567761098804569090970786619696320915174359512331782409414041591828437185763876023702993963460711901064965718597885162868651794339915037125161346447058799467708526695498872335330707569350712577728442100788624177663373599093373691215053802561345568789127447461697147065375203000353720035671336980792814832236260519581310850379300019207568616439295227367460672998361740803291731683649834597447326389041810356853843728383073988432966032237313536808669804284915579414158135638956124468920365634993008294703829958233396890158886200385011071360660585146260650960868085907009041306005058801656521749746601999325573773848545107564070019878187244790351995408416298383880651683161176389980630854221749514651400530401322277821758477399870044906064319368991106500359970978004035866498156674148293246665830117380729208184793071879496282156628984032278149240928701325589904326654409725636667449629660471094962132297959445833765487928958101930481802631137950482945908522077827074544430185789159489541963589069478352373910352984500694456955882459062161084419348067306976316595143992579606081967316197374520178781782484796820664795508291804014003568466179927575854715160584758754787254482128452510123557909809320223410203573769807640523411019652840129870517985502628203646712213406498021464162459521885796034044171967222367427812801125804830695681581883947954444482535011106382815274300132405082311573027514020128647041515654307621290465870696556953115990966337030769401826997247142779237584345912336968527220751038425930330712296806497182043211581395467536744873397550535116191741480055721560046915733296724058048691290939477903799634513259161251856478690402304787843573714664058669064411815225739792913352490845564661307082033438993524760258050639196247809424813575279853722924745027584589104933734724109242050784706349534430078158528346417067870155054980915034068593157430304129447777824504732377290289322330169990723113114720920287216656429836969629489723950987824472408163973257500038158192945157890849216098057614782233700109032776375962098853831780589648182817694367532819593269717924973820512192105542658645165507504934602365283845080206305034915123916046662029087643021586776059567601048941250255265223969740843046610760258097290661816382455287661884393724231888986191433113001339648164716034468710076090941858907639987068410895485757751385038918933069559956983739938863616234324893578019234777552486499529924203899558831429528473683946854078554523234236771633010565772364276276511735791220235346973218748362635599184196858264117068467955406735429124231461530667099328622363207247409330601670017546232321453942126081231513175854002968271682677244792586320608321720132461769382351736676562219497151228534484153020643707573707075176552971573617860022239783503967416095898394456110279066284072308737621890962630595256117460416539333332760658990453063610093654531596203440381009369849557497906898648380291455469465294558768665931518255272420102172232387024009375570574960826674898554792064222430772305261671490491484480583233944565332797960943499183073205418019571595204140695346971407583987466132431311500914361947608693474634788086051621944195003501279953594910672217052986627547545195376395922653850410823836983952230200950008972963020471052455352068965868438796897086353843401358347965787548312926155137586720664589404532911748086984184048759900351149521067515714796782422195768817820110249927466658978571814526897261447415987023694217564977162250176141546366679936942820522285148160869430398095914688292376204275157731745850673128656758900485842962226877664100141351027680022997243415187897277435068841462877463495684534783721446090635038949446761548905470322708098776286175598762220375402907687245118513569934343871308362083458092909148537160629771944311672288319637031649485071956469497327279724225804305365162357573448004610982739794817609291187221887402006830774609861790234412618555197145041688090088135950870143408071765905983417570895297350827244048514390206988422836342929963622038756356399831092892321396142346392517125537856777385003567964819835166266492665175764133255561254626219488622053950365984467418340684330530732034702568775069558774510016772983679772084964521552676764110413486322238113507924004724363291995168241295657752430446932077479167192030637976000296977088248605767211267835545554647171617626277563155759154627137757404653133609888926093252582036609132797267616062189063191324506511788398831701800902001440516723780694180161866683143342886718237836625512317875622592338276825847977869548987337085037166417705238577058283567475232906450178915736331291244053354773429847478645874925536776779696851874066099402498627047301869631977680334339670469913633717488148572777436292262015341381394240887040060222845457799194383289950660765960133805327651501136760554469014360316369198527796658455670687661214007940224541239105778754113771676344528759207944916367122452641395980657510672999448872717091448609380132565907005260698659542967097095993689972917810310600433836503963111573283933647627020190255868841913969506171028380832479889558944138749447630941851733798308560761062542875067661134007300542085220369361544747420766663054870041276881223654460910591301060742087515511564038671873571075597304038210581619067414990068176289179497632358558183288742061855764297730069031805643011848972470981207171955290647956692780440945483145646458659031694378387570141947059790546071541420102778660372349372880692299710331732267232324595920009582223228407494287029254943851910040779427938262013685198680786799407714509311316863812274479550479304698606777195594113287882775610906723455721883225241926294199535845129221655994542859058540749781432187156919584736017972493032363189341990607015521562627510805464538151988138653400181928033866051839572890854205493455227795367685938986989183661499689364862832146950876880001903952902030340513488384699669697299310485568759646072247743707046551990374040909765524146553073525304751188598065807199395871247782079918550307254906580010951235387316311876522613823820039508805810286262444333348627403770434660244824777698311298885200032294568372867552849705538861375780153243525348916641456108277072089425147767024684314563599145680831217414033789691811699210778082820296757751452400817962889290015504483670742856388809318908794136820964016004678818653885248924359198656154213640031862118218432843247415283633283206704278159177623353698209535878840469020979472692519794416466328203032970953581766186448814399914322087623966517290316288581946297229735020670611724772933604328006604703440649585879972607132843005425385471458420026167995367409480595098109690844563521518262354657009602866169312426274007511896543469617336854567218254006594509057725818035715631133352013886547187966648753705605392394378457858421653972785819740290235551733006572995623826680603626572432850500612721442948967564549310879183348786207410034726237038886240822908274917788807827967350807112444860927870084902842539027784104277911819723352106708227577347492288172798121465861717656133352613301924204027737356201188839945696263636803396237690454342940015323478151698679332289802237020856921091491218833950304650714456997556600219203891626017221711473964694339808918665725687364916021000690923370313414266238730455620554527213079177805758834619968430587151783874916528116907558824166487203110382037471217242515273487368137797850184703642776115029659654624485619589840977674312347610527661472299167326677792844271607471898184617537737989148392106191021479436348576164574370146266323099932797050382659537120428790397707177549987757187813355127094114299921835201115639912329790193391281418933106413171642356011299679978696931814294596075108589950748796234205279481241462902486085425616159566540756284145006363103796498218020095521662725395298630282054054652182715750757559827005561012196747523613563445106372748415873403390065574295347188639244731673574212847344137869359273271695050447457334718271586197919285273838140906515635298114538955259515124147953564566237073016697378451975838370117561626572037772500024922831239540857965799660740641514379631255797448344705580506041257517127545272866866348275362048241724370075172816875223912364673833447620212974774657561951765352622205453903377281866155408936849524324905888376925346345474175600045030281310899990390624333633495871314863374603135763841447904223213292668707262786286269099536678324841063157159331816866473758761473282862388091688353364570081921308835077092824874775656375943819022775404510575163867954186732100072899071022994504862189715043163320262759494566513053671044060212483814274369244582088506723944460378069323416497677436825667647508801792440433857905037346863721124228179856758806275906969872740462250843891255416057327918778115943655036446876427500752739307242081688131669084833087658973279427005825515799065399122964586023153496142190004008036783391599810391143061983200028875052661041349261710201132782350907636481658668743553738523512764152253416153558274856363751613469090903550869344565766981484113734007950401952136140270733161993750737890684209273821600769802419118882352352510231113714447569255808575388607369479904402655634472247773340726692309257447022493203019575340247407443332395564008078301589028478884860439931652207562946515442907402951248474244554788982906328729606744696323715984744825725291892676579538005279213107240669075716362583648325381058151240617501808169185111549362579917296625110584019134691155527320562554565292094315912251664601933165504966226366712786339687590005742580363324514608506475322875738535535201084522290450576665543128876893263475163879390352792107387611814483475197242293131504776742660085173797969223932098865130508418688130029260983589773170491329149109703306833371645938240669455434245192064619241039738019974750126367309706069735732500450699816678695814302971232079871616829123283783151354560704862065491676628442454743232015266937706618909776185718372378601466416712634903271953664558692940063600615822270880756785371342940763394663647440163500858545191161833679254443722459163355118117525453983398471589819484683043866974703693677024342509135586854667972349820206780020009956682272967918358641594382438424907453909500738651936830448974321323878518625402465919165790066336372858230532639337727798827640095123288527732751348102935786025894764066014020658832060858043245754555143935718420213427450726319937602840391188522394383901149780297412970848259258764392219127165187138083103853310446082732641310712822785146237609590007390679611877287012643434400513484825538213133342004266174124944163896881664117142889395231803648079047547530014435043621080378216520130799259672373850898648114711108164560604829491678279583501876207724310902864909435570726317004792318854801157392572109339926999425664097179875264833003234917587551370312181302896320193105389668001294269191210705348761790846510537875339562692424743322314748623059283672176988832600272191286123704858452074204295135902348970486928989860458684821699771584485037192753604279560317008792677734199111089987266580681240735676400296924932114856317128864267710278170959375977593256143734812578179579708862173292898499980182323497298025969484025247064309121277448944413263525528772190388321622033547376318682604281962740628982362036659212467946041584071611599124279196961942120733526162317368249646688772987693541580336817493155939464415249332309111342036509835919764497149370148009119480271765530329683671840458581376291307217470909685524189761492033854048226373376613807077396855978137851132430811172682796737349001102373374218644905170561498705589491136753414718526308956795436616219109500038732406356173974781181631245736931050115167251174997444852126132512986219164082607034251853111265497331804162618302183699571500025415458261338453899859017508683307364703580092718901070615082055143957553133318548309240621304727622958204368580472238803476268537051646233799573590903432641242495117100959289870063315479470352954562694688935663673558949057688936463540805569206429237591439850331912945624472238853177616887362730812124340967464695713555639664035622180195423811098411131812024093040644909862268150208893720551457090576996276056006993517478037500444366830064376693768212278475293967852983291381093081823026327731611862021879227766552591417041589546664472143013319084337917433808700615330223688273863652723816265124219429636187208918622744447862740900280047901872759859267223670626527235998019725836230463665878539202672244436972128276591974597622184984271403786978384263390455199099252751112618874887642240881396023496163000783862698715793466729599921404890241803499405622003752918833716855661796548941919341630047116204079250340520812178848815409040538281352779158821266333299718981861160999449489158026598129395537954888926098370835403891570704452741492812498544132567156176234370909463490535741356541940145117097142912594079679557296932642321365627646330695939362073248431497364053488526046230879457135865737217810063305711027612043296645575983520110100301904455254383527204328157801185897353001632654436192879179889716420248175666548971600134075071830568949257509822542194457005617337621075826226131107092082645721317002945887201802115420521507488611562591212343253212287226141925200687893001139843498561267481635800638290799801085436510330410759002266014551123764985240542248680324530935027383178216470824340792792014373024408716282808215921993208921646871423186152682237087073280796163251619127831403198422419060510759270239086745600685024527299487297166345392875681260079832494540566296552439911451872217610158194329771984842881653727652948098506510368574893522434623021620797819107861888240594609516756706135769105678722016759675055173469080702557376377952711733916369447192952716521255982712957085983274093762688571763878802812609106369687979914216630222000810558961793411403624754870881662520292328677340228368722595866686258929219387753401528923322384864142415032524444735363312638493352196540946905701328373472132560638893203061586792640635070184074898297263211384792128780447470852059527004616675192313253380634518000214531483708123786669146139182982893509129934592714748317253549050395433112170087155411697894324978170491869113022327579850227008520272159877086890687291912410931803075907082831436218602493247960586074797200447385499160132769767749214419512510184951940839247591734153147031706544077669778069659559766700570860739418589343582216256688833666257698224455123892847967275824981511190703705516230043874454750127299682887338869786906704173858013445033682881882462609365446987396415185208302240554378682135184495525287991786595753294745098008877122452163480307090406111376838833616505041796645024583376803027897506470217328281987453775281792417989893014070806605367058865879924003000220631283393159753671995932979434075607584682185089044563118224086136772158017733554308019023149583818455487240772508209964014781553202751760441079808940309174277469923310707210916652485824329510081116714711267545635114049563564148903072217488505370269182998231145318376471768958645226691457379353895504976249486035612806650201642974889904633493169396007888577236589129437935608718844647416448893774167460503754646041961630601986944202001640942350095199971724480660511350205691469326449159782490991762369509988215131104921747854984336469568172252721141238156573822157802353869699033161500599187759811087192211153821632088383097997620704669430489857310425127421233831289230777835940399117206193287587806800353927881755901541581831418288632615811007621850377944593074352786479877119802803628674858760015453002383163852535079107730268022947226366836746013907252987169620378947040694957837187773080666374603018129330195949210356534710422303994691056906388160017431238386963936253260495356403572571286128530194000754368726846166825669879637780613238383057881658203212651873239204019493233373739421371754033339368484126547338359151103463355530164449285304379769125874456203660334737492131000773494791929475110501977982880349897073975146267545025556323867452864323268785647203002769215022578973181621380519591110918083286351688969656086314071513960047147651807239451896607570732632171912114399598044304277309116676059413725110490368526358354450303562592415051308428479740872630904534224078841370155525307993247073349253868033583440604384590778428258918573623698389293934391051825135399855813885494418708758622492145557671052305627126467458025208693201609474215445752532112525889476188307131264022078832930096984427430708617942182994930373436426608772000406554967984262000028819934393356809470151701602096580454029769627115255907796749088531839133784997251211024344327069387630378954604685612067511416932392353638198612193428372571597498088435554420490948840904351656706914946110592937334136345769325890101381305622132703305687798470130414438342796942804436985498062812779097533639649486651930683973957492492096868074748098899686222221384448234971015356985327523881402644256378329072207390402255764021676734139118770049214759496998721542125969776779447500174350263621490911871759272028774396605633200853298511887843693335183194012976435613249936885615282726296255493586190933365341296927901189059503618328980437050749396961443021719761592348737846655380823291534349589976457742157021173636554978727433275624244866991109438854643422442354639483204484922110768201645156834475420370808808234006069792131818484236801830231773450610973046698490919106162551032249284930112972259143924830053449678058250645351291076130378526822845232672114875883070712404571529763308900487208863904529786238382436249692760075021899252499196303718854315413337951770950320932982904060546172711966937852508680344805869182423563925823886781556686972982981465928320559528242745500403661175376121866533762821050792188432959064709645708984410061182820518517581011943973228932239474734454140280280308252119445082735005249404398656869264781360079286852152593350903376593022572154746082890071042954093369300441889172141364267478611593596210276106113646120927533885648537296925438816798244251560359956072971050927652522971886574824419661403066399457045442584812529062885838873077476333470811826966211197880934496742639125278813042154226830678723424343486230121590238883145569341080185997668259535448513019086325535895993104523093276466234256702211742757522959173672977340179719531174832386603668187895716613278317798905267064744882590989176994045482174228254673740907954171671405333203235674969880962955306133735097511771977153303003461637407850707262613354364427586718998989923625944157435263283204870828945094277612149379976808131627311423405528351326274113076765818882390323200136811117560926393835683890172842982326441451490703666206198492792582670061936773616056744462974213061663128729271390875330118215545551816009651717008570404992680360186714024123366924469955537085115650988485467377185921773947414131239971134994985344330128194842138003585399233237443852678826585461768766336215158386596693328369632061071601009472329024588834756962066818617072505721311012208429388945757911091050783017777948396994244721841902747155592128176711738347525207731831386631925249492094948961434140060030889815476728924265412125277554276037461929195738225001996631672874611832593181763509159867174398190670234118731946554258083234671654295461993757622760730554192780870185375990799223196598986547512574314433060243461124039203298267830830778298050171124698265221753145244757287827682893048601905189494729493769777496217065821669632669716298436699484720156399539718386968944736700195673675695526263485177975709028439150807706690620830564932930979842833270386360891332017410963549057364353005899436965527810610855721818408303723391241168057615968798028464500646627138066411311203790760524090296299914908943929566825254432595647067034295230819882427691471569121613422035104475968510021844560589207043807431885177542013608729322716593931116907071468616867990034831838940961657206263693313933900532094312313807837543459145853823641735365920516270879313409060084225885783025288126196722175498546619656836107360179933681986163652438493703684292189777105563957835232424554122244780924343892092374166279705818601326440097587256519436409038096697524424868205250222748338707720444194532084609218661734505655870992694822316935704456747094148229020615345986601931480865604876369453352267472406898753814831607840873380290492409609317155819559824458755540050151659384665861720737708790275613432788796314711579649893867799021024614563171541392837900535066084091419181304686116397470705798065676283253848993233150850314197155049321732096949775804727802884123636409470672692970548541884427183262871378699594934527888856095989023570398811696921520704048957776960347778452661892171001795264932632392214987173044872821111002300270289801612866319738550821002866221600990540073337280662388862401572404738317372708864403382544894567315077466776574932640074493923443696466687965419690317865660185672948190049368113871813917928861240812406795991185979054129117905444341992746703287839394503399146756746759579929974460700136916429226568240715024026922195659798261243380962447724137271904208413501332673864305520637337536423623617612376944167309904563737682496278851242811612132540578475881762334426875818580278559430167389424420154361940228504505446042827356385708100571719023874254186765494777233736510226789311490923156814924158421425089595821753904073084873064400586235739786572663869943295970103966446893603741882730588649833010333458634599769220591864480822844020168029882652362304435553532322153125990069097115919514163216377608598143190637741830091799981488533900473632855143017515255243344949185514481768142390192044440639359801201768501775720410206219771503958619101899273466854542121620476630803648617815311744946867968936122155004891806652268913809567273975746554447107815979392691809242218503665883467143642492568914038503186880244231277739923959932623694025788348656757686967432827449042302200581341822710865634362665081928815059090941293639850397133849379191754500744689749060176153223925017632267072329277221159397046633913726889391296830850737100838872165172392536674828145949526771221097958365653498909452956646381650994605333577434532354779330721940516392735057095775803582012811648231827381108016336812900383425547024809068763681413198312657724127375146167758260913979903122001576928171147102226443441527386331039690137316818223099508443809852186104514580386655579677651583909208852176232731531046598082568561461831440863379061424817527756271716976571932301640990023747729531604233321379374561595086002345173012832674343373154933607288951049740056846579242644389304581701278107544178237189690264890738343577584523518089444024015806444617484207569809164641010224745188111491832595582293711979739678860968716163724955710847569123535028989577465910396830949418894441766805683736519612570549433862412176553354085013319658512070867787741032765496045786886272254050818332144042471036174087452721347674686010141011898208499258083081359798286663536695892837918731695259818192723016776691675169129910826971859975394340517224388320917741425581562436555640121185786259941382736093477749158668413816594103856821471148633507261718572296615970692704615266437699690293850271756146679851418000169005604440912531786926148310148604882564614788052321639452879387414947593708485550493665782172858907239320583865241187926534589019354583003928821226554623035701816719548014634828517516968777930467242895082651753203019577070394246133823884400490313511980115658159919496645759266559453750619698754578809996489475059549925905631507420598764477691910570378169549159732809812053493526410529528892161915475483265377773646043982363375637233970974249934822072683190402704223733056366561368224567000963806986180709269792625281549436984136343397702423007769696094859173519156459321517025592583812768523194400623228187084132476474211402151091114011084333527802665368902448986878150039657224890609500349719318566578210077992211853415249916549521479694417874591959251975808291318460227965945846681504708122067925031344084079815557965212911615179541828106740507574257521848375072552104317050496127268363990164777944791705079220436208863652272335378301034774304306428898901971676637114081255120329171772317433162735238322639904066662490525284517134593833167181999188619460429703542506746763884834913621507532641423546411299516122704352845410056388610474943903815065615305049828829153657573147867880765931850480977767003737815653286837788941890721622556379312439792054087932011529986463810428025431749733341841572741959186182304705347458602204338526747130428068661819462047827483872427934269905475117837786308562073525467224377651522794022704508412686944355965093815891454325698761076176036465087286713841560076534635368673435134435821324785698353151878590842905385528081078384028775226247393782485505275018046530292955730905511445222260091406059314704993875298925816873816807946474397930573038257732191266917081859197903770829142733108773767820765713111505464699167662891924212134878234730912244510820978716029956836005189445937489593391680531144357829484653319170403341148202785332722915597150945245272377429981224919840349360646454137486857372679724188253565609020467013433477656128256594158816521287058814060199744791493999551825920966893451486108357892537273757192512683003282344120995328296922632972890700990339556324080061014883327627469934480522911418011217795163327129516284958174562407814313337982767499923704264430924117960461156395549949351711244923301439902300615692897740740061519757065162115567562870213771130877863209628105570952334737125747812577045393502645906239263142667470283640954305095141704531673579159453336939121015351101982117429791175255318970463976539699432906001182754388423426436197387452630021598572347708064527077206411994428459813976820881007044133028229851267362613524613650974918271786985671384583042001094870728799792441309731701975600795818841032270701490433675291354311274390590211690666536807552195193688603256293031826889368879172581369647518936179582788553538985894325986664245460414636194509054451748538532251151494908155933367126062864531807425318497174686489160195635195817424102574249287966887017015279373461546572669451937627538300512412094623094812732143169823503084020265691297235046598602460101491829844481161737554529203705239847640528802105879461405179192263188334146064185532619597604824472320180987919355628329876451687441353403600230462844445412858867868546381064616942000401276730154900920161701732815728720153452592792266272132990631467069672596026070021372039996155997540874028557105672789580504448851828938086707540219916615654412274740734679668327412223044973872634106886634915499208755009036477795367422353686426413022582510022376100084380909901810453607787337056809003405447352743957854209372133774090367774378325983329595522721151425784363444173790681806726680861927025959931606977945382269796485195089031662478315655069302421820438647640344143523395826297473595045546479095242235531460162643340375310332685971005106532387303268067536766516041827381472622312407477037113318242883194749652458965636368462641320653186089826125515203861206611432407112892568409913181871575484515050483120916187117159894729316014062186014975378345370445369787097380691740174177383397300019801478777915690770136874385228021055756159318454186799246286275133372905175754240637983153943694656166972505950548725407050136872970841042454990077259327949573554373882565864723755632064309805386036914426393046009779833521160363328421765925397244609392381214865199562300517510568075657279042088565720733386545942382056667059346383262011993590907359868051555905983176359824887026149843175620871968933664046735342216621377612906258612714409461284839178818508199738597409354400911185927846680388046527185878860066999559514656051340214131196549096800335649025637301491430705721907887066491084245198428771789986740283064278039737795295031876075483623135188362787015437268227076165609814432828183031037827463384977349629300060931900272756460751198879565478637408404279722843093145546678001804871693711731820480266892260515110388565092535250294817559197880558225187230814715787953926156119761914549027337376425725225427919298227293712472327795195731398311282570769408421391954042346330936831048632052147571582383559073518198975937762854741539332210709925010320080824516367800393076444872395689106833044911841812550021262148981834044084095051694168749786809360966508311439320978189803941014317633290268931695981624086058062429822119216541360510773684211965899604067418991457815574193275180028286948208531018688687599461357483796268272066232389609767673630406021277693775330030073089376674741273945298291969873080932452234069686395590629995849408037706580264999186509664650269550340243889181298389486472415143059753108251355406975972403357439728963316519332042624653778824351206979942103470185282484989633255784945192429668180777987712858159776037570113986084157275937568593407509379275886407314105405936875776019780599553754820473168287489803637443426362127732564284077318338976230456548789479494371982993026862559062741667981973852380021131624270316080659193933674889791746655878117681527406736650458743124575317026134648069394422588687774820413858034034062601368071565805961497705897178186911958867036180107063450673106912290241122044331377887049069204214381403903466480889899332023818546347575631517169863019691002915708934448342719703333437078661400104067879330899815925069985034406331237133642235327816481536401745843113067756196662142053747897382092467565465656248651268927715650536619141111608676015079822194013881131585458177779946919251551885751570980677930470797647748261078331232563716800630811278701291480078354803265577438936431816670838720513369363247110667453317463422329540903499099159350358650757719555981881217385250124623443385167449599111730856673119259225486298372470656361839294679947064228640115887234612833699197823702016910543522566522913253642641659790738198914943582403938439160327298082970418326405074258792487897141786909432762883751600230902736509399055612563502273192695683058845129613879541847178879320246824083139620423286233457116841743601951108329270997010796509011140224165521076907302510838017554369475119528477567808342844292618771435964170310774450367594468464447788836292653433138720327937050574770271110521975792619984302718841364104290634763740403938249756012045327443698228415720043813300425481835128020355440813011888246104173025819088980180842186163197826099481591032310917558620630959126505709787232723670917018364639388147194642768863367507936793453625508324927064901262398178161234683467188207229393268952868216913615605582186446583834371364903123231885179636915310653307335514475915763460173841079744189854480677108861751936715264971184626895834821323891431446770568309621330894853697538640497351347145889036447417807633923039685865195622092577130197961731444935504251488722403413195068818097226231887759335964113315908650398188046547131009352040223452742488652980051227063976863757711169427767046140145580692634889891996719708867112804068133585523491206727392958527721497512289463197657505913707141861448200362785939255039545069135347274029098331137343921897036144272406420306129748844695609890435642715622979197534627015719707926666761688732713060167160797601079326576935526078980123692595413004914882894596339083265753782981590796992070182992371004677107693711286196791862094689702105952550779085900709969945645936206084523703026897243469387755801410211509853183691999985040770864261779369648500714439976755423931843072047819385509148031704429073993750243750543265719535391052128409256598975839864414267439047918853907523069163514771269936430821547432870811859544363610163041590689705556443475472637306798625150159973831432247204965215592150949892163483061482298099258361596398444319924716009060765310701540929716401280871283529162721469260185037628465815044980132121113127627520541760426452603615523331785672537276489020079884489993342046976124870373605855652632334443254883868632698623276625382394554506340908090609014632007023503012622569386614598063865334843194271840833614819935064530913644171013419942656647073073301998093944285207780795483558168968626773262712343291713420004243097863617612836126996963911610122960576157649680058816515236100440736286520409722737689788625568397054644038031637314264246973180423224135849201688640833044958494955751437929384178251713622897693333453627067196588072463059648217171728716723450356053871134836749753941967711464197713900298823790940447505871494156588611395487271189150898189381398928728186877195582510144838107556661548092903384240410716547302182445654094009175758196049767059594704459967533379094275157086931665218559636669964715869779173557120958112663485705672001871315256597667820454430006530449588977520471719160047980407552875649645244518010042881111488851243245947205875350897957150802780574468238652841467281721593878093433943282521142743932563847711912048348446863666476245117912064343481209093981893894315925655667334518827000032707222500465935019117925371115049881530128020796380525098041141030072278165767611760868684687229830794397113573611588428320457210163458261523856133878220631845629278098826103894739273544006018685030476002318112989180911220138660017333664280168636535622646307610901345215531241249232612107935661626756363679319636755205571347398395007819521101052315687257963575969192477067818352708835986210805311624553186950844100334363649656585309066028082153484506430020199975409984796977826205834987893739572754576659008834119727054039560189743100282963594541204787948352094662147790236761593648948720370697921885657882259916087572556919979355165627922594978774069211865695714497808828366457145456502803498060224440649751302466226695337268195736532689417522252417753656814868355152420433545826095229886600264006770025079594488046608306057801519198068620489684371460446277953629051989358670858203612297007788057415483288580951425389998898137512153704445519780815900548691450325115840178026558263400120346361689629434795236610570929661899698020846236326036142053044401928387650853892873486585608626024574085376664683614061402536763466633675570345575999451228779651135246817107517952664385743351056121029184091791580715498495451156250756492558321645235156918636267957815385928452699439418700266384986819091245213511451489165303542923144124866113328532381479326612145795037477261585765012190504092293612309965903901799013121285696505969872270824779357438000274230797092014438933851255728188017314038798866919917459396122443308014105929996928777794357067327629665221067227371155187148177483461196962495107318666974058026515215221748387231247341254884907491027792250247974609819539251285556552414957258154452098575622994505632125102163942217876134188310245184123127479408022526936336281597684554819739710489439793334843207640882868636417566622764221791744557916262905613099869614719115661822104829008843864414474510700881608447935154357441022333754907287872719522514498930338286109199376624381768234277281991398479443416040387248943420237509557580823369336633604311184904273568874797726944330147372241224406376676214466122954065953945778637459636380433319552079346054136052211283385330264851693709896856090830091541937715763571501854826508135051082572597365414584584881882138832229319097793431510543492037899461069305121260207063226813532068898472798323342376110572825600766243082192063146874510667345304495657408635954860860895063521896654871045394026847229875926209571124645417505728080438212280920700325955703903373032183826865733412290386620644171407872977589733544818241510520743901607684257082802175134482216206371464276066594611015520751949333813182552037492765526341269519241690536989385772416335656190615425730378480551841462651756023938773373791011797989372059452739108852281361307275730100188299119158114940893824035048143079584217495384982039293107828374429535680152863681186504097723900871165926461047660856370363450768381651945846582682839635517858112975594047576576388335034574614893967224324521964045450799690516794847401219041616525162084806064368949149756714934100362667931730614963914866275583034933795151587224708959574822697438740584068136454380433107232416026034845690978052961783278360723759316356565212074863834575382585525849447515440786037052812237970230038267031307081705273581221832457996272151695699478829234641540384217621110506555915997324138794292182333346836949861098442907190405790936209855690881996096044996593057829026141600140513369093966381041550457230786488367545997332657219117677878425325016557107004556216637009351391909422688654710369082352409552220447553462852408012666505921849150482452942272931893041818689022677971596101995133089022831736518298706164827421906741488326808997494245558725331999979222883820514064379998764279677300835871547099678621082325180754089150109111886463246530148985404546338497436216078347004837237966776085377170807860322199196193428243866254853712433104067076357791009313432624551493099262013305284235378273741250161442341266178054332090971886768035231098493753360120626299195605894777033162023143291962941304293832120477198647507435925049629373624224778539487247055281903588715891395586835534951429326530256806304192040091209506720233669619487135302712395699965198686155459587512021700098447810595157943473702208921526032122410989771578245293470134541122707348131401878884020262484544599621987247228014434044525121084247753654458886045577846579145701830182933726671548653283446741003105518071759304912791802956046490178660355933371973492101613845992962556099307578803745789998566169303526711771649333198689245075682554818479253395290008401748133930612339391760883999849371399824538753144895973243381839953393730338643781556116359100001932179629544181546927128472471782805082876818081841568681051568252818662155024815097670710076097556279299826616895603209447558612124441453448965972130536874215784237703017138196530485608268395252571000051556330402952652176762663192620883861883526619536333338935297562950613116333388468982125749885910352860517926400136161891722267378830222815722798616207581528415474909349323472430424889334365229262029949154054730405979578178378984071796007096873613400208843309121992366113403152541129546121909150067852680398598798119561398525122792004792574023608700346085698589349068889752446478994085357724898849549403722747540921168631003203491088007570681505076264308784697376301919171786948187703635954205144056814316881330368890096759480539699263212158319776999567985381817228462236395827205340495775996989255555585265633645303894923300239957617833278049740267373024467030351021973081853680088029626707614249803051057746127254765050805884704280704504501118868572735898732095946188138588425323576619460639798032166956680276808703063634131124882158028909798800688253836529253142979701780780300159196323215857590180849827346218950956055621422807163051793426455053464135153354695336031283995045295713529620979641202533945139678670867010915313639712675375197739138547174190808832301208944107285806355689775471833861618436278006418008694654886189265470057378003602280566674256473262601398755314561350284988995017484044729965444922955787510915795409859715703380051993728155680453886434696062285933463872950023514906150286023993655795340475982103980411350659590132336532942326762323846211206579727908299702719939625358926521891597021156804264661757105648547218692585156453167029983014597807606763989955484284050023368309823589379717760666110875159430335313701261356130077572177484219297717012872205711945634205502534312898419407277427831026844684185281451696083069318810012846146066651932306218976527621562806670065228526555801791936391595168326052863893461166718540446425014678325008296267975649154260141152556306789723438704540004087736607294833717462082404209622569872512167005372621238474338732352541235625048179630602939195046547424699012366744576277990234536190904274007344836069181695793061398679760740978926692340913606041495732353541003586823924765661697509196551024070360555724140970335907810501757889312031069413280158647145683610611551816350208484238867870496792555123807725241318726320243935061764476582834419428058858296168438812684433147858723753038938612402515225077871404329069318238251881630099163816410342909426941444372248145559032245587111450175931960929723157319338901745684363479245315929343798198934768283223038838645340601251512720792669141700676277566712166697366922874343765195980054578530861349633863736721626003943327053440625360796998223183891811577664594465129055975733562506999303205723278743384399732245710543849976842795910277484773486565358093704130425219026124418208619432630442562467309940663261404144888967576897856244578829124100117066026559690113855318769965419177629202670843576760674064820919271986887592281361679004945724169427455169692055921807704420780699241438866290259239173849441543959651827186805183830616054937450870688438655977669168469423033661822251520708650191843932002789745926801622123651756755532153865992020145941873944415753036221648626749278506508695431021061855156389511619510405423098626637230739058682049684031534368637473999666486801225915839036038798016806183679296451033304496578842619682564145305375491780478668263059967201068181084829656887365257569729918967132792539114189656964586827416757751465776724164742140270748114546357277921882611961874182248813913502107581231809121092454560203474740188200904676557580152252802130234000897224829492906788258556042820209255946487428210338501279720512109074029815326783040950196474717998916367899881009740171356407515720206733003980892473676972817919549690503775489654504727004528514300928666342155900234009580958754437289421868579280557288914953707003634286874780458479780368081970995412634719926576127213778217351344374056793415751072819035676178809354691559537455121625476844926617965047892629807967614073840586970710066491212309170197079191951022490696740991502700999223098003781116663083600592573586236600865492162749221787780475678478111980522628154624866930550591730901383374251232601971805188312967695630457616484936802356262158004888092125599480185906347861482506208457117236271741639005223747422416379116878904393138165031574575140929978860721544114331134613864072347054606642331974814021598467904703180344209244263477507201121519794703111257312539583021959478596138378210242062430200303542914739895819542354769682254197131955308631281739386691472434595889014848678245106625654732946927760360166295509493129816410829009150784960459134162317513870456750057411111265514762873454114438731487678491931975158010068092936842045029195310981306369065049772899887220573524665365488047038172678622249222141055395263266842602115372242650494636088157925399401466041661613302321492999610838586278809084660509282114964003868448620454033294955921319188284332093283347119364409168685406106205791988519226303428939812913756511642699865335590179525436615913758959598792647125093022972361527709321608948146146118548504705472210104563001104752508234985394691871551866973620820018165834904656816536357087247040243710113994580729170838875246617498810219204465483105546439168367155761691468645824744690297159181173657708107865882587738287051342449054375057325009142359709977669379719635075092940297999614557287958242981229865905495543217768273159715473162697633304321783249654983362381929995555856237979623243833839474202291705509080771381119075770312817900257784135440215629356678979897642308470933343637892920846158365952998859113387812964722419247924703377773957361505009429593261336930866563490811013650866793184629443980433116726493078593493166378182193731582768529681692831408470085386268693135371209082411935134935856772158711624202585301279125318318011363569882412657026449957746899253003031065778741907769191238859310613361655958648283807967036431817411538657467911811096206083822244467491888738940695914873744909224826198815228973720588161930974780068141325091034554927225722364576316317455708519312917938361415173409632492129185536500403542662164164476092345899438277090173782922825735774990005835851854074780442489866796830908272394612561027802500156078314358071591396663790184249328352085739340913144244955097825611903624355255115664985248398001614008807840602424567837666692462138804430247211734508702049116333930951781078716182419594428457648067367686576222923615994818673133058767749957875967170813208038438715080456700507010064396833487091247534233232627549739097099465936716092633495771433044399976983547087155192762807462247711344745975457818009586236575034884609392860291785554039283511453291185311922461378558744651045312133565742203676069693223932343726410426229142101244188660160577604204200369453670412725850318482391774899811257591603274119465054286418100061294523137586290870496143665728646751804252145389172280178733279767655602812666154201955394650061584579021911420013987448014172313750041519221201891862518017663230184921533015124646421654464533299724227652803794109583692609355790925613870811975998862432683389021637503463968225768783128577860817808221622791007399671507763447806225755817278014863222487639127113648161350182902337083842952435321586667734409222629265091242434054106738322956977259518120912583341290368304738298907204508997853431294770812764265959883097292617223872517037363373750780328670646370134865692065539873133663505577561526049112454453962575057759101532305194319172199533151188245313977544691994252206881156403959357599803450600594899588039674114221050470886198969073883140389145562475380952842757051463958617459278798012388719212762424170561963209431678973095711185202941359773735424537415510764349530668024237605553633270976660104926040770921892764048393145414870488107668893319317535661486359897955173004888706747185483989348624082452675805731147783813359814901965095215820808560535620626519480035992385263722089230182179746231860425321570223109793377972393731433237193938596185081745622361465984109551362591935713820298185508849936963434046653451500044373361283355101710590471164981324314639321961158248688384376689896546153788958971526192095720956936545284126989410608242377277698228462279815250832141184256878896422693661337199011912583709916359434488204817130005776636432693336132511110289394677269312164994558440775005947098758093171044736317415957354871147647065808554020199915281636726064519729538813684263138117227193575258465744380448641965653995512216078667057840088029881293610016024501228288792666341457216065900200323974556714839558872570916694920226564061322344695351003163649047010699910996718065557266494178035342516525626100641922435208402325508784995752488755986347155953140807997224017444068759276061823926628000278545356002759858929572386301839451433639328886837212719061045107891716158147910296207415540889039798877602655404868334564454310151218886280342364427162056381794498249454122244695307154412747551513057505301176860936659733081100451642356601761891390541513756067818998900039476280905861222271420061023142607656484026984991645362053619552461634725698301318454267337310720426940825706893516238438679244584877672458093517423112202170775787921365667499104483747681944436141391558763216960393344185833825628244438847948505718756320873122334942259060873301698899674843120442142704097624623159117995493798209536842452492532754922991693500381198116388006537642728672746662373344704774758527120400835775767228813731408330028840784795052365501702851590895208231345371952463620164519712976246491396492290959177416182160244718802242267545591768010757140655665961327999916006980126579248431753320733425850712926661577521160003013153766878454489893119272490021244471511680990239531028586285967472441204044239030405306439202392378868360905528652048905543727792110679883850764907231097661585544952337531823114358047530071845548173433554581598583933020950191229117740195559590838473282579918880965594895077452160466152962971720287609310730268596749892492936032191242065767055626950403508621991286864162586474995100450684336596201826779583584695229994679825821947738389575279425991359830110714769478559181330792156884672901692138058723519306395464488159355518657232477998039991570373858884084589252356812121785992737926705812947251531101956906721137188265889963752380417832731378627846079273822224331265620214677258831497132666867385318487023168715032833658542157572727955184923316308053281949294477706828252999478736758784760468556883810548290336578546442628438954101913733206273510787565500105750031829340452413335007034933456108007539278513378922714970766414596888258878057301221278374144184181731297682725980029329738993128935651977560012025120442382840840125291080674708470309124180366513364594482538535141811529099202317698107422246020406418368391341150377430481217414210076145776001372343949950526113253105166076547734570982237631061901378158674629614313649132041989092597303910601603673392415537987416300178687453195503476479256566327858515926064187415145219350301433212085071038614168640040214238331839383589425251507407233569193615417809516097165897939335759112804380259299530645784939188934231902053303756542003940846379653100652445477068068692523930574580718882800344685397147054409593864672097969748212748406289669065175720504839304552046165696796561758293946979718961623884991975931180802498846184154912450459715969100666099052142659058281113967446586193025356430970121243256662131396382630642210412793239024130635287266758696015551433474686112806490755824312518236889841642014713938178700635457305379403193917517017098035036869761120183647812073812723738005067475997053000080680420823929268560637684205795738048995518956925955927535055329884144498525579257702220161003207006812303583323373742834690019950287263840760396013031001479405734684177583425773009111903687767905760367673609873553278941235314649468061821458953065993043708900628872987346268640692628354871474022758861989129127513875507600246666370254626116630012395131756888436769706795193113100182101523170124974483919874859306248658985658097036277855009084852610481106550887905573846670913334169262553528607915906370119408662229787216148366360435766510067707872578007536498925956416233421112207453413451301393762106935470368535390875542489476533677070983529498782532018005353037532614639273772140305294742899082787660870035335069071538118636078041137863555664830349278762554329456512161466184351139130375675096710914614746655980735811950366479682374084241240710412627499613785845337395014607177954633364772274628048994392770827916671661342414550273351401582189004755171300019232308875694722424964121799107876189272187963534076946123785028518201041001474580888433486757981930451706025408086784148404237887705733642360024280177676246874874123497807260540411252145835532688574542085760012260604476995447141967683116007275965343924514815472192630129500477397337442308311609335890035198603162280350566753101159583865532068020770323680305068921363380736609306206602351742262830704811162253181470696390755506884223999920076364547996451460427411091864080571600254820778997891178464435451440631747360314802002662195175150606685858956936940375379794749547288482083539235415975873659829483883092196718988841959870069183430288121521844980559423402939428047407432060129469777723389183010561198665989388672202752554604089670530578728838958880038427887722016734104990030716656120953865568880557302977688924854358265608985622446200600414695186207813287639094312415254817559913587590562006581577203102939322968020212664360484722659986826312191043980900483938922971310089243181501459937270640732644485074287260452356027265236254165857471031082268362541752649502699802163132933823698662543314268645040154464300844671654796508520888749723534779240277874734144515904291012736011199979363598737411601477616163829487648494944875684996701747478993898487220540540950347498160780177922889220211232820611641232811701050211686008154663043888270167584836638137651804736058163602999268527566890094123766636866960938859804503742948969310528020720587581602936711518502576289744681984897220436187058684923691898945801421989276626401707758382496040254012008261018249207126975420908588293412654282530358480707830645730172518407461334672956546602918761681273751412179952982182852918402923894012886231107890896740536162555150621053352519591591980894232624511753040649494210502136447886497181531600149846333883796441501202620797452399988811466374983541221564588698082593537808631336443683527221979897132726664166423204721365455193110594411925272059584662964641077659801749074621195677769991923392061524500916861251164196004783764075252439998988322873273491529810631756117333297643948633440287980967246205686130918417521468724752362398526096873070067501430082365580840399189148234381543341188506170163043495653126193754813683674430346262304278119998509487461026717608994228910639246444815177379276570133400087297512255200221749565033099580840670707989134245819132172843390633500891760249967840029148117705551457884378760261473636395792975974801498231354342839215743500978408069624666201178381233474404899006358494275841287413274606734482302730162584006169174417725582861635648790160021718088723201326289432177731336837819181452851042777230882608674928528056711122413401658689801656805092287367986204250376390376463856427206548593055393856663979608541632901090422571258235111128484482273373208880216702424431182225178967259701072707858282906139880959648557961588609369952674185486165118489556462717060727478959718421950405612644089355759820214229370845346122545811376423905071635845458713645469217674640964332906532998502369216705662718874173016165213707563712230292753731547694361707526718522063905156001879592105577992356789646562945283448704567843566624066810644370232157173457067157017255013358626107761168345482027290096251983169169302508148996488446173045027857109196835919972598635428994286761160552156746038267458842990437707882026942385065668812239900752310720094018295468644872283522502265961291029013582067336694457697411715735513356391810247919512041539567033731967271882971639353530485127922359305278206492351548541474887845051882019121668027695165918213671038755413417982578181675815325838013677541433755860655276573299816669416593656214814181178601943507825377782683301549184148854480996445743817038018521964098896250978006594070834736583360033624181100797847357033948525432007836927767223251441548924109175059739471901538292422527535749698395367508846330877868253375105287122469418413116273546302999983971697949901200961099104056645861691864898061138415908668808001731795499810609676204083950899656410796628265292871046405186150167859939827954308831877627380897383711423364467700301585711648064030452215094302922487202936248306899042001432941722828966272253984206334242897424683745414421869352776069832444971008970579771724699296227039985791913906183030615420745429847997577499187611001775235813086378517469276728568650293452754613869489342653269332321454209164638414932634942280210560858255644434522456106944646531043445242991716389145093528087552552309297058699067813444154025267720598682701185716465319269363826196734674863956680718805858168748065084881571230709490508576636008718690269686166334947126321830168146552992929650486037292533130474624795987859681074844422598721433303483393327428039646854456063099780757634868417225303109676247246154377686715998769780589672620976609503765173619146436283561731597093848718452306426701132516620642411961473538309096661083357921406651508065864297448549489248452046400872407620038698010478638089853708101910229319186937689158418404575930811871487743023740438995201080910526345882631067942560334573721996604358886162737279563735139345220758953719439876091829703164884482794083052187050548618237690452777009253279230850781164778940774113205598767130297216854213677407659373949124906531710068985066725106932713592232908132812105682122863845016306089868843944338974561033829039161803340385556006653082942888848679212733528383737217134812376659040600343007083866231887589077118204607770079216687462955979243806207719716688386969432992409578983441359534370199034496363153382283793864139748592856207152205773767067024401874180475330803551426068313802873838912885285902281612110183656449320933907115634849762690451991083224724147458841808657522064260338883567869999245445078236312375888594699582038657230150901620554031886878669161161825491406847555987913728722644404706645986085018614485814306050060601055118271187637897866208709065110908874324793100524982947155228516951570747527550889772003212817611747191207374532885541839735153262801341668870248596308997671248346384780812235754095459989346611974889227917153812072939611407764918366334698814442824600579929120907707874351792519155994843764190531158393113016695570856860977867864637482999074292361043525690343644920874520215235951659145044856710212118431749761203655190170668648908627345032470307128959005535563871607425566910300418768358300795809803943183474548623634956641697206535591904399358428239953525078258193657037485458676938956962681963619669627440409774159522932750059017148922151763283553858733135540959146769021157689005883955018788351497354696423895303814265779344864277639749463176391936876810690381359114337921511552136575786503964828430790038397119644794903927750236500346085011703940305420192214053130235867233348230283465721881204524997233915141568429148933071130245821303372913307611126618521077002211798400047487183657399836552870835524405834408771013056484469105973454386651639721049590909659973000884750165300813041138297867025871573249970951696133288426104270072604641194882433751761781128403414637303878865312393570018896821643126418983042327170144585220157040587993032905958463133449990916092310738792492766853077396827752528979496407737095333884038446957297102781198328653800145472634742488317601214705142326133883167970188391254731531723749324321454471689149918956471980806318441972705859206207641887423126324570038432307906652406535810983868351303656998060896772370745794580065390492643362594938203745427812818147207536940909257859322796558115069869711163304758880851475941217713982473647983566980641233962236324963245650370603669213075435294384603788920503376102579754165605492821765264951855752705809385111860318468769333806106366250856945274620304221296029138545402614601602763100352295024929695261644308469487175001631350367735143060052428689350199072400849194564606795296215286627692871369231525242250497780095186929975251753140966941349558398843193073097077929704058749838055548353231169467439537881043745997604728329979932549885912284548400930673396672428761321171676035863381794179993043282244504420173513056615154543967432907895966641100137845787216738551066873542656450947555230209817929123332388799951823343826865727332964394174169741438053473980208604353436589868779059681397624244413111844251257528794021894056917273702700467299254020368351219235820715384785342303735515143397889958930147605406910838009595184711814910646104719829888004527893655832185323478634352703354359816533530870422888727844097984539910339415856509697994141933112777329535758644216175161935025686791115236413053382446411439949491445136384037793499135460596729663357049815346000269008922286934010169774471286013371587343407706818444238492061210816589894882742042957177638293615323977566830244188636040718821677454684439279811672428142889252887831287291723313188297247249190996044628736415312935687992091115458478343572392451408047425596123648795859288038659836276835221079868141231745733343201899084812656959477788531319327466865275101220298896432498483596231721103306474122625022618012197818075339609875539646684537355614003037625056770055651600341202854475341805981192020428478205644137569699955178263253396442868733150778821239037883747164807910120242606948099130780524309109620350220617906935812582562537616393515173274399731200350114688890633487719426526573043103507196637038267774227238681317789852119589429552323236279719563926046890478649218378369904600067358163787519604762791169168405074320300860604856215935945337693095778133865181877916186818500185930576347451372261660093459917617365958895221127098836901145474084008562892953918324506616884888042326113931259055755830521695707223060885533095783184488180365297612267259169412205645583869953408751821542380055151986780109903946416175760207195283649160942906067081055847368193759432769842609022612081145911178128494805624107544409967040373842163112599424158248700455873260686017291121474556281413866174108453690309520877951695447218544545031740241334786551878597322886693623114575371984392957897080337974091888396054135288642684345131625078101677204448385009952088810748522746674671009516895221457000778579320374404968760665523763828152400737820900000551281633527757337788602022435945638112965240632541333886683551070213400022762835436146722010546239241178338849392547459113667875181438468185781864683282330181085768604788282798499264548199978195060460438384844225712908174934220895778073162816817797434551990274247848891032511308809832357209385053268058725149105566483978881847944849191454757841029436516721609307742817686295245089682792246119369768201944707528346311821850220661329165517956943450229002221721086430186268047817672221216706835362086331189524502276616039007505437831920708393628947389065978349264881444389492508411773854824416279664893738769715389358844234166430247332529774895541016188081900227378592354340880139470272516964799264305961629132166296349804998139684275289956054123490271499560559741888140648826649877606679601884155482303771218741430888116638675658841561667534582215941558065635085541355462740698879704525137816625039899201232406756580602798535846436992234952764113304986523350122726287044873115955735799394238928146982357918600723283343198482028359001044242595100078385627294941798033489619078505008383116151983396142769321773958112624976528187003987176235893000766208312453589354841018708889089752756879443950603238574686743192489084582810256980044107401761245593452664527109298336912282396057311806844656956328590614943738666421333283336422896236460516556269009940667668297136625722384625675749778212830198881979431261929273246782929487363767972234487807299722083871860921178930975053081733008119932197541031107980816206535434945502282084564318460143498192427646871350982953388116365772777512782752363678010727918414506106957181130326538287919165310086200095838584689324650857980769227510117606759946018613641551124732554591800811064607962682457507362175701276229864809860864533223656897495552334568155725229695369854019826754808332656758274799246571254556461067282602943828059876281768499577029762233458163755827435834413636591006300909872286332768262397747349785352569239206922090230417467595305042158714432933969957702325117387927722973402028157608506180986964683412528396322211974706370502305297607233629681758766211585059081396331392126340652646315382719990847908768788543219687074152823598640706207967581733683166938927462799920706327243091463979802717997171472828850259390268006159923000525712116721908595551153724577180042004863978141395786591255982903817338861959179362314643627816200407167610461995809583250710367105240927614162136548291415904039666724921272898155392078171370543197580152826474180271093828034150694128349416340513875772547214491454373937839161103671718762347553112864617397590833670217773847666672600774464317023341783500635315508771811339495919720076067188708725220861753166209783654145651725560572336693241489866498625451452577187005105388333871583933298400155580954618121737846251664419674201203629860911915072895289199042285445854147446241585278576124165187436737654591059489340760600747664666885172497474904793635628106226048836679549420363181801436942950407924337632341826241765853912958980869885482263287831615364445966200456232825195243667363529097258955299987976413538135991694667160693687755656179993983739940386167135087295630779003884247901888150702099328980887287249103199802218635512979766728126094380633887453548882946349776847056652825816644777360825082392934715405056659537006059870786200516854764422510659630070425701999324421282983598114410966840193650066054472717044880462023719377885886294008395786214889776274486880048467884263183505430400661157633864231695409364074392773659521820543616120784679307144740930384653642309090438475845109637739045915414114809208223955179388618012148399409395394167255312267938655044298738191574213685342669247311814530500760420807314761173100177206711242409092105013716373171185548432797313706005020096481722890511417084416371666456050527211209179034880197657988963771903736552647290126034370364952527419851020177280269940061866942667109535588754929190514985218778792446833298048484337289226010234089362172127864893497913800653868731070485833929056923815360735286633922096816588494764667164506593690243130401697036225987493008556092779231058249730852388320796874234287542413414449337011170006294177849164978504005566467868705539412475194396061076797716103810683121466746200564626827831880055888905830206251075825044314000076143669484334419450379616327464344720473821652925112744363557991803909747791467419213627505027445300263189991577848359452974183104526300483060945731809168142182845460948380481133514638248632634806222790365369386363885681760048732224603507750920145896986282106191988750952508694085687382755052224262369178984763596655815516994940400299711307321037253679277283972674624279117155998775075846712567585715221360233046783027025634638535881361016687108929751549636819116375965356009474165532661294342884993944734335767119141854857967181362951424541974701627925460995739525879065167072889576980705241624714750477137486170118658695116899508200702438652040272929810921239190533134835498363844403751136634862677996618268985569230440258203436115014370249056287863852063675525953527206427667951665499079245967729700104053984693459537302431647954317704480651991808118866670338286129918735134239684020989293518171826922094401095556504417307292411364123342895027979849555074109711207716575856887156708747537610952672481184266933648597735416990358242234803151699521667907355615734794433497560825995848565993552983165941175146552653418569811468303433481231664942227852905165995206874970801123862681146973784436947009243796637687910245739695165745901987877454959964158521054421721988853447796169781088135382157966152853334522403680917099392552422259106989385447220956152450856101930113886932766572239816742475345233939936736013428658657040895913078159917501861070194098175407808024713226516364402721530766684529647888020979950163933711367190125331932963504487621926298852496931597528265596223291992963398077180689354586074760344537599887666785514993675346805790990933540907997769835535443156889285173595753817103128600082746335720147766145270403641604502213432800895640472509026629931038995373783975729480660378441600716106271090893871707402522277040917959742072813523795648425485149209130290412439520543131007196611933952970925107292434470642215107075413754553844068147724252710578204688276269476716536236031483522546003652505048459735607569617521031706809182679614188977158376145864191764249937849038451190566271970039295639151847908495555202047871971193779639180412783932311656974411985932743080192449819333738053784997808493189091625215234781959164542700024880677575100476157947700538147022054226505466015292068827720785485294114433656011392328130226873396044824083859108406390434577144317813558686168435909829729184650260927671801167775009443108257097098781553231821850181044746511290193615466666399939185648088627162831344794791931108712635049682124202065222787826370287580213243797091193557893515313639774947730944237407004051370221075152265864196345134589729062631061846438355908494576039199705732699009815781300345292503249785234042870337574591200586669288350638952935470618510409179871385627184402715002827006304664238662719021732629710213922468701415138578449569612985349174344801129965242578894429310174963295203506734405170817959022787127419605065300621864674185667663051636760134177969528444502955246340062603155441475732239708914291372569636163947295975805637459014024114219981006821422843905550540027891415896596496240316459116492736780364617748672950468607025285163568188124669582273465552746500643872243682258075682886440498832759439041455217692395444335552971401716823762396425276932705830388185114056752642182081075395493714075716249346851487172960776315997517501480915776158316691235164674206143333053341626921552084113035850932303823049742942043736701080173440165372043882688398684680579874058263941898460204639309429239524187322054151747446944091363000887449276452431636996352563861577714892046933380032072211193710858704047587905827877589905379147291918221401597596909894015908410317732693309972069132610734358347145272118767009202580447423121272712341347312782862583419023401346084286605136489863707327689098934322368956343267750908133845974469837018637194734846981509109537533748698811941237721718278544599682718830930251404256065847222691542775632222088453297167302702166101213213078092828536741187550035220780017248041088565552732500040901520831100011252152553307741773495806534161497116588969889446481186871253735183730225754320483134368446588422296166204370344673532573044499002630569413727316306668727379351378628984152894152583983927680203840278113744755373649014079134992621413884916574772030498221764401110632335536424971182289131777759163252775621420828706673505075829866967745866320977968840582481110688643454730397083178650897370954703411311302130948410665756746603861796203940893103791635564487623099440645376316345748014442662930666274188642500484416445957741337397579377744573174146760759842846978732586468983555129263383337065109750272920817237347886124836626378287317461912272411430194090551257825612213247431773605030717568411274832544520715518995129975995548303355277561149482253257412160065700910079474982209097907727348976504061407789605202987461113367333196555817662216619770642464583605065222697821657058238659263805194327258341282192412190486028046108640288301938636986015885150574954230624209090267170060663090917686039432347128687006684641231447426031439791155585597150876386904609213056944237782137083786096860615246008585162605211713384378104388220162114751084553526896899890887341128442886697952302039537834100064519208987259146433346223224343126388561419058182741765800000792773365808745472592796032373998427260449656798692504171500552037974198085161120423379357113334230870013683634777945677651789611882912090710618724407923611857155444490473274604419649352234095267830791096090670990496633374350752899592554073987861372071223004881926787676171557811217858021922602594065565975221997765006327378914275537423961185943459494023922275460715884711564867597045804696794700760138881994323734554515618621895314217764304770187674139660048601097396637276180056978388197524904990924775184751936441539700855675332804139116917172234985456916131212944063250518487449165632898553962566624762671709174326178225020182357433308496900641426229007703896642236967152656978515596561719785437433516576546322288134909662569149507448323701225718794611629020940424624578571841076901164823028208862824098756210082050615464593438908844590191472950528795604164314522924145074804998078677368292507622061376447334946376329696679146241794988977891237166534845436615150814329455980023749974594054082747233751652854994901566266827372442356413365905422970162870444395054127687089640715482214779593658456757575378336191838089718563263801146504393208435131821109208100851844961094442931053025389912148738487586222042648299020561834579501689207062208378652047758969732079458814145015906621575797894608183008931358366099561419908022019140957136174895813001970929721091859495141936506376963024880435007477002509613042039647422289138510229985228544669186444283052924539136365282503516482549363215240191856888595794489925800951925142776685467903120399159726791842318228157329342749361044352546260726868891017259765755928457696122154816424660013048291981577400063139464946189962546177807318945798661473919643555993614439481336995251678034817575327030892351018935553463047903642343295021258383599124714882448023089482101918588734791454898711837560125375807045091748683336890602471419085056128940861231863314058746721647601144032896583253714738769462122980885247182692981634210336580772744623244879161827116645589290037728293614250382600669931406467215883168194533221333269579024149088378962488462688102994886074168395124870403053465632780929371489379917839900250973338854461833188166240408302777455271977270280329157462034901965745160711694792395022646693639036344178448205138933670444407530550524213016336883707158921947444596047976528942869343726703130128138744714241834747335477078586315701433541204968520940291457949578418107845502938310298741867031747215164937881987370659948622261348276429923276364712650414879223452345189340956317962650050540541032610670119774364962034689443542960464510222367544455648277080987538387765269182162485514792025217664141955518504580233057179652548199629552376861823842160333042337480566208417314792506679775256397930289808400682959275659167105239178875701735585049959936808684971733479171621258804420712887376790730420018221512059795295163977537712287776407401567932811523597915464191002084865735496705703663422546669055760169182760690556201880468780177217894100727918600479947576956943204022720505720899581585223653835598975136144025169540026733287354494210139358321365888537201289872998472582621525884278833830931889946846037162232990778273327566903228366299528312595624859954286780509195303156034126326123033094328410299507591796230534265415313248559564333211839936411075998258318426904817170090969297065331028513681325460774640425107270669583839572737372174167404956218797233227871088490716488146161179135486854911822448557608837919952906725953918903401511493546741563684851897846506188449864225245484235832748038205404790774418621307398538430260745994794205460359275215901212040824959920585703341020200014990517134223442859450109897281040613395639567563006037813246893127473319559359688127012472461510188034854509642891381565573672842735039007576896938821915506523218208169494228579709244642750433494524929693554643214868259208716822583181381483199465533461728320680225064563685331479865210900056486019714719273705495215302203233946675280191951044212435978009823256067545945113627153329501505847356021536884800347253294243588084072246736119682391732776645057365630864594441352813845134512578082835983279199702143454904018967017302031869494548974363950659667564578175619772195443708928429550976673260360555895015849775731020786775742905767640410194973323818606188574116531496223054372269894889307211640283547107070629336711678974833879106402506165887291983436705909436823689439163975357389869464671015996786626569905045388508489029280715677025920189390371743555717470832159695702214077875493524997971660532438775556296601798150465036634385645779812103800567699765934207502524426938666261592542362164758722293196410501583680486996218987569110923848384083669780631150363927626721579759887332440525699764003038110039894801444397252573330964240047452166954345275454232216576479124544214941883654174788305260772015705366622718295821413278849840294425694019782951457748714286076574147985749256464908006331678184107343713724554977278012047296586449687087622266968954597929653615182383579315331819853767632008908791158711724926293309933341721322215977811451601174688703119155357255252513654921171695403319797024052717833341879328636892795225958246138555078810093945907614912552163371063765119744517437434257683235741848148742973481722797228772547796538295817768830075122187864975889508281871081358772929197673607430916353344460696238173193333423555146412214059402970912543109754740890480074040653118660249483018662472098237113091658097798643946945071262595000940567285225592512945957896609905923818001851426929516683220692687096262070185957771111528665333989836782700051924206321394172689203785478399406923319651815391440451712256529819877267085908649807744908505983296950261193741138869488958052024445995023089198897716333093994312215017495505212737357911292476045403374648053261489638994618034826106894631086923259500144357684048475254446726189191809406425563419280017089960368282054252569265875812188800108013930642141710122101279350033764400885860408932568110127507415750983478870507342062985558564722384553753394805197310604312472272318868926510148028927468480231684121316101055216172224685068564904950096455314213124490617652690540299039320765308591028518701583939777950307880058039198244109056199441381125591802931521067755295402360231166114100499136566128815389745332866260643382270123998132189393090459803006340113466047583342120444176353271499644081798780177710162733665639635520044723515064513481250225606774308744589074580561715308503560019002575721244254864808094946870836180791739302596124087450975489654164777434246294761516024145666856731954953562251117311591237185534170284254775547769889171677335879367571354717835790952755501093771213662073092321853602075245403090150510748260304161990998672914064011712376222543444961025246763342202834816028731434662901690010393173384849937577053544134112923882062051320626232701277598428904582476668339711377687272057334375418623441918260232712445819342029135969153187843901989281200607495791001559176652550110394087274667000729589174960103823178445077208916687062451360678765799947404365748478518221114575905782053107409853310619943344417602465559982089487028779131117267487740806468337180219034710963686475111354942186115807156402874458613954775205780555336548483050996067045737381688950218359806803836631509201760134126285274213636644537985077305627606420674523933759532972463896772927157852023280002618893025651650984868976014649509617341634777925640233910185289032768762776898893244405085363755708177674563981017084270380393008710945349583069469661382019307984719976295607267768339080240997707921500834936674588838921723931218785012633099244822700761913586687044246532132788313323046880711083840661923703467617469601744897797785779438515600635883572002470072138851948549157224788191297476827888660897036877800486682684237558537148239624739241540009693463414970482683281646019694929803410380414381818864165588850402808864942222602547947586135903022063175588846627525045707085800682322137162112975239004893727874451003948603135606570773793382125273749423336905832609320393517585809852217558468672974727908711486424573562543129169884056686921205097109128203690292216313141824698399857055089373676210497351616358114340862927655929561015722059010347083835497502613049036943727037572288209718264584242479558973184204844523975149383335028238118164666487971054737756896262131203463187661160073913921065544484822360671052462290482430223437272882439597274510341614893562818946706638087815346015331695370631247313989356256331480467601060279024579379635372328376592811547029004164049902895075333272588376917144374605612274094823013997392183936266885709979174924578862870361382198631886943623626023569529074730391504241333393240099749215366608161603571672996486748693389184415250112905323680875800999281198448451229510165666194074482347950830003320810596379593676477452040001373900370533054388429334767883836725038559785552241170122898378465541617028097705933608536525773639710345159378740221981487886625966382808799151399327894195164259186824893659287365718177138957981269402492881539076411863422753103396688760357792449952711246755037018154909242729480831291890362929776115983708901901455746076725936680539924789675564773082182877677011173166335743041425095243554085891427179186494209935112243304034862025551549367141730178367091072758776435587104843208890461029721488260432639498688664915847418219199182108039711883477976121219067562168910622835446371964666207395573332172261715039290537612509891983180850759418745443218562800773476467071796810285083238816236508571078186394892986250837108103406087138261381967426752626917330937441026169609159595237328074780271830825839325164897323256536501100907947428697311331815977261022387309567250658505194575285143600087137321128543195404968220541280410960146098818996410547562863536839035782867948054182634716167124625941633769761523307552229372015725845618846534657591642572837372220654378772338631455920933719186246777898839843936886521554168013510528122863111812854707203831022224456688447939537369791155866711492087656632053362386858722266112479879311183751055015800881010692432088773294712346795238376564131047852350915497362301478924001502876787763342702334714135934298613336637645274728512778609445289966547786304661163071728006383083325326127623946711396823343889901270242501993747622204069628403847367416594565172151345321663697988099961462112408831214917866852530870457561777669992529219287825097065163217833162571259650163732475148199087874033436628958068130643221721387171300743195832790466934832911906200906978869753450370714999068471391064468431963206986391429258042952984907860681002102054440000771855435432606443827372756863491017448292337343372992023714827496040747916273753186455907607598369572071587948126187052550241784299775716605320397281381561892876195619862736370788318613813773805397029322778327352576252208564725511530554864442032620387142207253083444247173695211026893827134795801813788027614353669241580708869548530786521884669460248349165521241143108234619829018459499633100475074940226194766074832535830306918246011303971365895607272786544046260608374337410577524288569916131036809138364754139046645997201571610657422696935852763994650069912844658137519233586052841214881070808835651262998170430933431417790020445104107499615458192624560058465705585853553639826319628695400707987607527204457393501020558665146146705617718976384782850050026095900494764706555682152076544920284436443093154286406865999803750371855385280462168307873709689575088246789556885977554690869389745425849943037520487270609258896630538661283360384996798338536565746703692752906165512547784676689129748548285943098032897273004594019325392787038340369801471024976971282561340583570145977202569131284684245931626780821646825795812205741183015611917520938730760962550327650135095612707877688283717841179463198089553811879820430843438214272032940889680665725494567957936460578653575325147422884573619319092336942143788341044409607190064623914102717812232427722708476265423640842555459700012490025031126558311245903685288813982500533448442449099011033224971156037951912348047820767957470782747498364858906901015009162471843506219630153416697993062268227511503513794627541105708120586011618958012550221720259153481650818269986776355920442153904719927739033770887712505546507214778121772995165779414353990449795852895540741020523133299974272717847025423132346058103300866701589107540954761119950639200186271561976537731140762321995724430004155134348618467116810594789629168539197421816666833580425999567147390248127161126595756270264550732689438091269017093702173402825569960865870135693445969190246709964082278611545921765839892205060599189037969789009349763719828343674946862291723368895428531144769880475253713471027958531289637816719583667082330177050921778154147063793111197155076978098180628520167436370854846770945247233175413641029740548782550000734491419033495408635815574467527419629601618446273455320363115716495704900628696956860252115821895013652869577020313264569750012318707329049000989555570357869470588369271477894336293148597631429284334535371546557343527238536398455910744227879634909531044856336393657272409360573237587345105250291258556364804791796647558848037424855071123059513620778067286000347359368431084570973361757061481392454858081640724504495279719265569581576509824594635239915872612061969859540160258509076589801567891578203598038259205767748088693639093882564369369218140615100874671484477293361967724029680994482512086387252539559780234891317520871777052195765674004432118009595355007026755423139699365851510091285371174532876112013546958609644144358360701167950462811551317558382484290541890213835885592686046600464226510531282257923684366666101418913777331116062462328025321062961690137941211291841560060976106782592569611392976816974609326451703162769459317591015987355777981313415381593569294001853583727371491648071170231444361588137402713548512239984246979871893442693705520159258923979294875335792973650738880040931930224292899496753845407090143608938146246837521939931577862432881322889924606592752083190723707381809395887753985689355862424994010666311710871683323463726393152770459147200573298633731527966932010397120621963122986806918303213934843451153586772449535173228593952103227229734981363217436556201946106939434265482069207810988124258519777325608757794957032621128585269090452746663951907489809537111810877526515703978539122946114428407383340914666396198348651153460464816871506040787459099699813458484374177461699577050503330621694864125077469578341006492874091883634033896601598499803922239064835967023165160473211895210074476733232912725107008919464689208337002329557895440916108674630491180982122179785951841374246010430800085691541753394927961997411575873442442447472773496137561280754612683471326514977759598351260410590855075194577563049698079291464763635010319004640131950441089557894469779584738562499776040307777314493803073185412746640024465948612581546342514422463275148618749920046131758982972089215806315822890372401864677805028606574330471092986252410941946612172507707960459506610532258615014767844889785026213677451633939927742380335833415810110525070039989274780503050671833523692635332600644284749369029425032042870314682642241015956130271199414464545484597198730873299692191562949941105350177745929832121970074114689784379659853647398660764414179378236291812342493254912061199170576353632464073929397022986846402019987613841013797103909573949316357767833709319704473635257246141891847815255558223845095876096289143355045846554760605842809198594802424611138008372716279327877278006502922512465298726682480384574261585151687493203055151440210419346662739133621011097488496581347092026727569439369531590320556094415846483537941228932648359176343794497445002439191784594450260945702463851632538181897173435591699823870014623049014641209864081552433340481028672398880317483917534747856262560230188764397796456158834626840795742743854917557923013849312003043457794658432050064374649387201924873370277130723405731032505896720394715558416178436561767423325506879952395831849650502316518211822385671193640128297660571576342248258177892366530460978092774479399144576682814296442749266246088547534348744565521118186536923311414687912843135786090037585133475139746501358100184966281362310242429340894358882114814258709035570017755051677296770301456448041833514591168508032998669849688364108681738329703462244938444328207877453173150617531709341431665171406703401529759561632069120124687908186477204007582370043915617431533935392903170113923977619747963274475320938184123408251562782509453387873186219831712058439012143120749296224693644075851448051188682334281085661747960596010538074997311236044442935776925742143794641295836754256614341667801073614610727086932369793109541635234843021376574589432349396202410974545850141829384317601323252141073556207418533433107526003625159143100836091036453756132015751283056890729830709097604298748019978174729716714755835981489447437552266221404575681573461846078901436167379729116308985494853238049991728894483625510063322593396135244505886651067535589396174571093453788079448090355375062287381721802263496931649353858352017563533328631755709225835999499945159601288243906702561221552430383146081618544318668921684390026602689417634610261121756564804665741902143898037065247045828759034843676428307645126041735645242122907722305990774093687056985039750911518865495942042068860301449974513754049924689732372669741902518386190849081413695465337046732880414469133076815230236799009786262919134466136537912184085520213501929917816209378191602527829753945024129859438698419317806082630511870786894242791101668608798567047797411045957646675742148751526166714164388768868981319959108260942758581413894656653402900339114662799038829761750156160426494980192494611838007940271778454753573196902964081591784267592388663186690931554184984714043886473549082113926554437126491142079908174424279900807686006905319926416924346904665282486815502747870507396352845448914023740433892246446608121312174678122333259375640634840382060334710930742357814702459553399856487990552292311971189689628946012687500643289109915493621733856277696993635175859811959540206965941586471919729859886882788708656389092628737547778600698461432844845262047854820048762198863356047680187061248431929131730675643416434435935633254349199084789271159439073332143953279530687047870875143743913365967287606445788275904637921508039208774681078350699172208193256667880543000903417487156397694128889944416755646345485624245089316258113632524924244878280488276499510224964282176984186341803919865177079898158494450251033399410335320225654405403127596380486692074411026713671580820449691212420904751415006347029815699221527018943209611672580122534743875610537541998898962620206067390851212327986000907579725876730107714345161309100620684743116165136388565337520369881961505245431515720174481903277586435059958236572376241474441418779995319173612117988584433224318021864139772600563352611315634834766828136969974899939862509334288172048120818542251359648216058579712500586737898037377305979354048743447073557964246394011934890728023683381586610933712621533810843111102161610073192217210671982374153167498179370586317619338568986926028710845146956431368893895601955712064027526776915810170484586826666031982425019903206311707330650710257925149802697495516445788309348541492154627310998061635300976294402548847184352156492167706140626473101378539960908891880738836659525319412819677291527263198091121278910488592058053290532471852534576256619450479628325477413411775686007393773463765467078141566344773518597749178342493918545359121150246255233490256988972776983851164392417202227619094965186322295736888441689247789036684577754760805868893381493200111016524839907125895332610283365060319357329269756465951443158595611212788782912049727120398222759729379997603926095922942434719620654501118799838028556513156660113881035929612516632350074237308989553320204633708000576006041802708636451571156328536152850236722334456814816472245570240603790953622836134461908572805302637896627674714574159811293026299703967256991708647367117399437778408567492777628941444794669328140902091259772832310453431437105755164212697653644959990139449089535467661264093548827865977317088005002506727355452640905142188800445839720862891160167179489583611831716636362536361878318440824404156083545115106204752644409086899226619102088624922660536336725660019493092794471077464135044605913705870471030166413259019169334285749094985791826303337951168778290093744313702200723124285088254765591607002622831196220708797765353716170353700778585726992868059225117979944305033810974080201133353919152101616720560181199529105112039762737906684587347246632604651241381488947081974631020654634389394745831161702337777931782165110256151430283040221076724740534637490333699715164639587902996511328116766599713299501032495068490946336611597364908501407218995765141584204080600104786318693621297164606640937095327672761487665195413378431819954746166522535173201174760167052967323779123590927132698802215600069343228069872550853552837463054875834770828587408135297618299559564594778696019869380821050710576514097720163035868546320606983528299386504232000331247412161958032628521053649774781385449394080916344247192972663056125689287600583558024150413260235039165000761970391386887209496998498647875714824817208818872294104354027419775929747877715825321052289816400231366574107533090843617272141807453472496202342180552663698347745100640878221194699638893951147262858252399925646413786735494062331677639183909968435859066791474599018960894416255841176465315397626366698873985183214046819304337142166359511268588854203242328168835184977146091976894966591088462731763988844585130923601174273578164549914235586788710551205158627188697214329478437511121560616422971978393991342009718528915163308578009439535927918361319954418434745265565808340826703663735563681422449419789071430273410221656460958647466548186253722826168126382250829849224836326153600161321535825251746606419540224213418713371683869389526774007993309345436741221250372888276630860855291169544356754404836291079557595844637360570501042215288400441090343902642913891753435356703472651369997222778819788172044421011801422837111990319587414987409548122254925464257342091840084539256067992509993349188132753274309740549138994352690668347729381334816622580317067189653519130235173140267853009843743017653501374223579033712050865579206825911907248982383822865126234812470702943036803558433400217979266644797753643027135704474477794155327845245491067438033529653079024297067363280894591261244037349653500210484147326025729156387471052912795169563512767548595703815762946828948270667692434878517389207628885095030429093975423773668796703899933344089027999713620800636045564969328414409243656398841774304544651387762634324353520760563698968001859400924626373788859452276564745351213346065222430402538941916321334426703421284402851048078352750861461424361315090314526067798555870937761416605223397354880087855390572533432042087731200337942729932240236515051543504828053077383599636512885663031796178111654216850221604172282495238976284526900138778344368292075586103835185692408886201734849738142604788708377619049404999415426517333552065241216216222221508987039236566572295999328786971966078555150725175962052123827849794259655290183983171276103721176999302009915948102370178268673003883666563270155341929286449331124302116394175749113358811099068694345818429256750905007064117914141166940886809995901498344880904316816238376971139761183733911026182656093026535893938854542262637465463711089050212389989222228826958294353124750656912678337299727161169281591106288424861010157752623677648441053600023942432843610470953357339346928719791100012932792952783669745508451461170829623326890197204434941457661144228277772688611420734344342173659235119719631330256286648115176434778411341370794604923250495800654138596903768174575660206826117617535840573588736326275710107449752644185007801350402799874763130488008724650530335194115291813259020159627964325265627816397505290781935440719740937436760408625584722340914221409771718664507022818302969865305676421725967515813756167673146555291405095476657270911689887732623700548899189850261013686004147269580833101938154738714982653598870557636732517012211069981106663719993955169020880844381525277873279169423502109806974329762729332257061968771812640636503363330808216225483573691988942600485499326751110896592812046096734757337291667452408248197640499762775337177009568536246641889395274218994791459027868193674981210259395334785381442890282895812473262888519098553680781242748176575571964980384538942703844442588595437574311384386812197388693079888826622761110738117910754252898909150116702728352567837587362707074511297720181742042631678641565653224395990550863998841955793323421105982099043521561641002673598171785722891346147812301145491763353124363418467784821479959178695324847577588118664822858890002865175927407008834044315167450369867743539582399530817892238994948472592890417720306714765966946594138872374460317560016279474404606121642182553168682839344663085573778389300303209123495518254057103298240906827826601208496931936498735121752468859034775185234813248805842229278322355278956197816021291518982491866299858849389281816386576966253875817898670491713070504253639838900920981615682864370819507293812288840917019079772625389327421493486851615453059856550075062687073317131784626910128649496151062639639238861488213693675310567786509607531128691098640241745345111283543977207016696750345953263599128353654939029014561486251699510231456873688915842687374478303292476826293383365192885062372691821617333897339767590780579818257264303853439094482411063011377125472649953768819906097835636702946961163264221416968232170851572470995311700246001737972432448089831610701093802193275416461265910884545104892835368050819933375709963376305320564413912102711379088297024966967779716280498049662624965208631498914627485001268648569697433836251087155795370898668187570255033721153601531351942176457176650127242539552700561026425950127581441277756773258753360165765411721032442800874259839763512238561979865224557581340727677226222245520588588517158754685969293449534227386493157229145875094073429106928808804340679875830136459735344552862438569317957244758299831643696662423733935772931757715167445032438395381471686147488064476252818765421501453696855255254979141778043510590466338911602518110652727585282778528934253702621665209485301942750635962972782563391734342833135951228449820080458573536069431916405374389870225005005160902731357166993665739783176173722904661308005027728765028770006699067437080276436604627769237262274804255973548695125811938472143375659313561231648802092891020280424868471734919572184312484201231346019491097217931024964179880937299976504353283311663759902332342685738187952635199701335146851258495151603488763373912901886205093976548508971540708512126536920017247921803554038915161830939592532748654648777707552472438826762119034674621021643150635466072104563234002245488442868717018527458555164597258214444851157454715904672452794169327964542263429013569004235646085068316142497618339582805265278535479526658619618125975548748657851118812254553025273645382130602926252232803428389003144124940516877398977480924264711932539569052389722514190077960203924291510568117708700626316897778371734248858030142008838250276608789855550479276433319840069445644119468207760949924106106394351735186489601680495430243221774191848791135896568004354910422537461191948674206077086590826541403833756030174678741827757121808728598082526245423323228747509827507438177735522370908941032612053183041528299952142268220645675064604456496319430015856273620232412249756451721843291690464901210752231523046612164471308612677928947268919413662757637925791708446075246280102860343397414868098545585930463782788085336169276678940569982120177462028544058551057159559151150982996988360705451223249186029049067558903021357701732505693475124812208029787544238608158453485585481364230821344290169735561325768956392234329754896659621640369754169062787040680702744700606295025695207701929530558713919303708975054950434203018416016128579030044769201903293346407050137865528471123732751114244488380561046827411285398195697449689926491780645531293960980162603873820023928638974183534525067796481233160410112742171472597739221665782460964994793394085121833124171027110894637007161949976721317784059808960728865614203386244419761819474556713313789997748183998940467778442527141646676640675029848415986723748973343497183929882516554673105935967409116276832937581044487833576894474182765206349222421118331828123792589561754464552297243117250458557098225348996587527948588466661012128528506963481645766297391131452086020392334916040073054443640142305665413944675781098291277597516285631776036503042554799171021635410181945420986298874578428773075241448471239814785357276674102391758487862903695612491953294720697969092947225200637475052839764704459118459729215749718589192120660617648885518574254850325392347258908588635812120714417215400781853923294094817606774836538058548183832864740604771142497926133799668249043948364958131346774042604062057370097562634522072028374287442440789867804824007731706404156187652756494912153251545291226898247502184648842999124939918118017416049407759580454473617895492498545815598125355397060977641896934795976340055146425481149846474304362624011198317981789668939938402940138044039170002724350740270886366200899086767953119681123773937858785182511878633448255180402464082856574478197205663180982168732588914734821990361359503954141586334584505495691117676840380167245582378354494008411722534647615342537173489642050029444000327360673374231648743660178900458029911927080135591283469676422908814424452987712809186729338851377766336694643112650825624313132430816631660519560304058972677905019836900135559843878983925573874178998886544247604581743285978358117628719533712174180870353275491542258130702003905770330278049306177665980330582637057622204510150568930508828831415081582406739834017072991367572310093486730085208324519729634395085979410378528128089441864151901238745264110205484772809703879259206248370263700708877766445024405098815885499170056166851347023921997967470197777040748481656670571243653322880305424585503219703218603001982188027545596310878531544815781183049817009503307250122664736924065437070275306862945949841889858551964179040426288478257100324060890232147072307712301513260760927906476023286254333602828499274452714517335535883825794742670834686658369518185521176797105819519949289127015161696864087408163021719715122200565067571903582599470680520084681909058236948602800619595463326762252632642920045296048511333477737190838896257724472201613005605312294491685430130840944756721736749933107999846695652764866211273366865085097503399585657136686703003625298323214308058419701691248656903531976668491247331959303163835213730423959609733599395521404052054252180500614918474985142195714403115932668528104180827807554812427807338343820760098835704789526798360668259546586915310846452308690923199150462527890672985728791322788182330385110068394938064118042885543838651199365636820489314092761955669352874614732681093330583634673363655925461320201113266916859251204606281044673794952925204612161910007918423847153692160091711681360092813884707441280438198223396440409056187009868977715160947961257588161587789306463273874273203197524366608780522328249812098540458066129930740396771551820660028204051752462050991195769670798117984842170748318902733228972268797618740858220297805768216969940160628717091868723625578909428014443117945759017238122259218231080679909822044928925358848691430264428425662598004589136682436435627050329037110280210670887455882701924249348994543908583733816864057419184994903277259990021823401559024666448548749836584130797323082473770421231121645666854259245619062857951109345551708704816162992614931160978884871014404508830379052032384254250359332106227864050977977379957474959485160066267142612677958124633637913650097872417697125941470515528504376234775497223304181886584695181734904692468400240294796264443496586812364458851991886529267276812796486356280967706291801595716877369027700498158638915747369117641154968813939889027344533725979674715358680118993156543520348153418956298209047153891224545570156774745679466438296331559430212552948451247523939190387973582449254858159966236077446834640535344654064948197488137562188266260781723651715813654055352001496249953244307301472897436919752597608043770318986817481235540156244170846310262143912193970227107954027401437441028459825288512151787257018383521583407701062760625740819441822559872540935767122843232708811744466126277930831129391892018894251787228688851529772239599198318054645022504411531195217540658706564095753267650492795955781965887017576329018202893090312148198437829745296368888337423694617099902809832385167697873202645691098981682817193217479347291627438480854854651175271839024061294809568221079901396082411257480126860757584855284456117265912319094924513774456664455232419727274371185539667536745414278800380175400946432218715445788490835024352807181146899815389356666030586239197384636104181361199073432459737169539800910482744901714071456489349930745630016228260485394011303433302355793847197333048995465950840057162929174883891453903879122303922042174907792364232100387439509329739763652306636127805172717019284401428452545088569898021454311297329076361894423266125229412466716745736556091227614093263453996769875449646910187636942772248917073412876100039502929892224792465755481248218595942844363201687275049291519150669420988221420925989478598366592139847722832104719473119639009258585168787965773060921667438880576422421541045780587223461603456071436197566566326727339383243262137232345516460698763402624187811022523327317415379213843727067419325026459815872080222702948751884963306651519947996988878705643383975987438237418143370015196471008687558033374837881671629305006878078784466195332588234234120392454967397877865366425999016979394300670296812126067627854869701648712211764083417456036910059291659173288247872633559787326616527067642467560021053947924143088561866269668199066883285791523750781978806602898093718440458366721657136861784443750110245824992606175978720448958341475879235553385384863956252036206136723024421912804943787179413954508882583078645049926442771557877251604618329360967248203551469339587926681493197886516166318940108466604261819467784481004415246501170008589763381461352910445943807373702043319123932140391494360629857168633022745345251198088386652709674959260208594443681443930372272452232739914348791512275714013448466212397620063098531833738246102772156607735403344589210500353460083560422048018218535222857041773399662615736460751830216620880051319553280613910481486858907550672065801361791218532124905835229786409330204556313640899064050180787475080057014634227783130552129726067251402042475648892850826599579276864038584196373356698300836843181452051185303865251407341127621961889254151191729041302984934349652719290963761828989417626219180856645574046602167154411358717628274975985233348645069754425972369540086661899880726627373376337145969001384945960555987930303816054973820881930473341963941339552914096312618622862366101468315246053243174979642419015461743665996848687677993911482048376751518864728355676926292918758797010688706440589279055249451957642192943923673182460966520380782777887170952325023293417405525901352307091056291549672517028912625917295567654296772071392040179974407955542954576864901918734500987033131795688632342634021143440925125831704260980254009360574304435093956902527823702557876965801052659938476713107583248072642499746226212688353333630603909607043473872098020273749533800143621281194899312325821248656919171998460922064574147052047125635130672108160732626068587957108403526194237886063349935541244255656612612762705248758929857069426293379498399133669067130562720065832128022672277626662909905049325899401690776907824170203315021077879928165540612903724503895279174355722880088869456845463023665380336495146752292451419651717486737737208072401325513560568400225100611389770849945670541688144487283747570810156670403937646840862606621511836705198477021312236791040295339241787252317363396523135253970759040560356192391368264548297587460468702455090325963522724555898983318135391172555623504784632198071698599641133906362743589871037978756399685843518045852961629215006969522948023495356072794066560927445312365023831734490079707865381098321233405890547606107237871367201872866075205996866113255667052431160920425064595943943018118773322369530577401624701514527569688509862950807835547468902068136910423319227429729895983366671050515190932903974778447231051434948422878287732239976247193589646552717745348997955514420924660736934392155255596364769111261483898219988690318597403754769090433895798025488749454181309701365030966702858265876074864594097909808929358124111822897209927034945210058251323563180131273902721594822694263889772717873915795830940088140375038117218831792676166184220955052967469107799195373693736534740920064897478517019899119997260125413137807574775853160932998982643790410447356224382209636586273290375405998205223264447785945381527472782084575838391223756670216493483062556891666157276321005272397446002779905052710412876162681898148939065007803668375214497402628912878342099810847110908392691002817119466731690228262989796114330854775361867349387206044791104187001805533407356562611733170312522906494719267425900875870982706941967861332443239407856180181033769434823032521647240709665189599641672191958130074278233642466422304662564200841992093209382010956528736934811495579188109552801141233215085692542024781693832814432863762263270845729440306343992507261507344710509411364854993766184392769414702570155863487207122815527727859103317459214598728102948895841812039744015193959684616436673729639283777996436254218317895469706415551013458065762265779085848729814583928197131773701365865193683487372276718578078364089892995104974409391376056222394959009705321644168714476589665756920321311802174336854519590862665194525715074364137833148973324802161177892298909348140991675596559911856082540100624220033213409720253206168926089949429339238291259693012005179846588502165113799615845196866115683942202310309747543111673483132682543928226350464798738760049609283385099970841790586119838752294142628570065015307144707780779461454382281256957516382479484110603981413241460339636519820708305351735374051645850295487399369377580271614286164613407091013809318342060160333985769892054586190959376756959068444512560904007144136204817075483508908171245574323819972053579042539991179781600699200344361485277839886808050318937307442083646845867188264471241272144778019991290294324686296905804041506216167536022597565121702323375061671492616317956738191619509396351500473070293930427585183329947274439398260439462573282311469798067817954781784102306382618363839192583007944449785446739385268953579323651614837387285779049503297927418557189451724974908245183586005084120884025273512246338308790049558457503924960802568631691700793431665510900357543810838449931465363944082006038145609079795337680569547027549268835738292104889004093699588895115651685713007906622116105098047254969881271097057511154871844688052209931145333786645237752853725304106816673560330402985579134266381589852937081579585128624332618705082785933354771484933813626867697148405420572002914309200054619078393460697673890106364717371120680340668743242993820483373666775076668284041475252239867060334554493132494550432616356866579614295885469714168831460097438080596362196196023112902711033159249787844068536610456124822959588666623585931894169778288873139915425614861730561603293129761315748644439829990970450652010093492008348689442365558588912637214007699104265629888027979473548618733459001757243075670890028515482948487251857299229422732963791988850489840649948716527139671890128972835279353658645771268222557351276216750059871642565500779616195497503028297550759675622242423837978628298869825319069018563671633045932810845496913119652883582144068230734854286194102273318355221304071963323640376380347278347384758572981540955503428853822820726439448413499384966433946260786278727541796107797101007588811479252361775735207783054049487437684771983322400867973041296600479897356815735478970582645719251264191504935532453824230857004232155046870482222086402377245179812613965582676585072320547565531670746292762051794595723633320781852165320871646379833698998757753318988676408598988984018751181906787197458121838682487694422952858606610622369334049456358109342478414786055941392888622329073878142301346383447763988045173988908872646365742450797267670518981947234741212129462441230545282077859316340159309130108686398783571096832504300037390139931766985235142728066203393506558426064999550357722859971756251054498729347336207882412410252708596075766911433092677450745312194810024841002898948243737995638600862839937132296534832721916553317805436765070325675830210193770855659408840839902723614152631708952321552418954670372523239777959563961700623455312379210519922284615102673927894362580518868233543033053674115699839596506756679628963390794203078893474115875996588623334553566673839025642273704508486491715185205961481780220372056524977855926417211249549699013898933718121236116427220552290499321001519991085179322464244667387913171450858376496170761467804724256297933610478721855177685651681628940342421741245231269736825641448647292689156469723508408707573880685267350040306158281507399142341074158177934696783330515322520618680467548962650709012374392765060017675861880839801044088486330852066757750244031460302551203329668308513780978266185133983970921263563922611219530335713526641313748869361316633361501039724077929463258895378687930020319507873984905004879852657021010426206924966354877205652693449355694940663300684685675335425148861742243448600784946914134981784821687221334435946423842521068345562262488110763826185975055086933890933852736155751254795246157686368185294051785062729415341123765786223288037974424331554842475468049848167026000937013463837897043935939563337641058896117587354976623844118692757801447693151176656976584579595723638426300943436307113400841516655070480087577962651297434477926895689923738148844081677424895007767371073379382582086198926974516033099234366538286142237245570790562161689913395596951132557337982744506540274745100101507747127409898233456306782630895715989422346519107264594523912007442457368294540870391440750510520307079973632564747240396631536643845268636399833919773605756900776214158462174339357695274010170534254109468675949854594383705020707869538287217367052603382562615434389599824993057965084929547730282936685042136378143536997721683485746231191880304310002145820919582025704729119824279706583085713397431485978594212118485104501209538260353474136711611548787686199118061194668547582816398645515776386831028618721124011865164768560808491571347766625936295515617726296410708330866825730339203971059546036049446696295288827232204910686541374715884789457675876207566133835544897110188052752930840952576298803945162476711558098129725181702085252581062358255283079885603790997796429386938654816672262299685161427971686253138296631661044629014152240072086432323314430475061384629019051650019501456127926568380742102643433441358714831418013013348329914093333952307903621029395942394863481799307871111978239994776358684486951615562407852219469077451961129960821713706810959168964352518366124924996952627396495548221764061102458283385873106740449139471071861823312425906168504096208876126101700118006349680104092700413044307142075736757662304990891762749883463749334269992171767825533672865755643763682109944910530883300315611368750835895079692349651639541165013974201561490142829221034339849484609486192634489152999707020502093247886224631971736872291693227868600315357940403259581688052782821454671645650949992004272602594504352461108587402802175549404733460829377603056975633537038169479638309005604357920672629173630697547384804559790125946937664582514678672136220141392359926326047775609299553413861136926045241560238557774789141984391671436542367324179572258106700294089493908809855722412673358650338312974845354927122278637918057609252313095093779915420230670760942711005850190515106824469345264517186092707048862735941418438759461394423989090357038548684008740148654532192012336697878194960979150953565375372483958106452583745848888367348095896933146562353619822934757217265591084458455274480189639918470628042128329803089379566902334935529800420034168251092204249771430410931811803176745215344314317265958381337596657049862065210887349939892653498336658698109657718927435840034344901097379978810945347634340940561092576094036709507326154256409956204358410516988319553501217248955983423302937732789976877915169720204794025261412383820973554452519579256638231744089387494566145637318569887689333176751300522641636420925415811475945910529699834359122465811598486850344176323330588026343203428017388086893107062141518387662868071388525333564855035497567473370023120497198416393842583870251563830558675112338995054650711021390349314322004870351840604478951520139185916802749257217921194791079598404105408072384046281418901328841604481380696180445556020871080600592176338511806093624783590292402419178498773679343221220679734219839326431939761697160840780870501679974838192967002579010755263491380745990416735706793822547080211586433479654256569347048174408250607559329329823288545066786358692797913717141164206909661006532412094861625619274097975912773391303217211481540588484576154115044808169089618655831414405021099426677049533545239439063325711105604189790494443357418997529972343657088286107694112016066645755719720815521517504862744873400407660807045139636162582736966502443294146859693487855786439139937459512328675594911792377132210850507324139697344245752495198168096705504477552650713986554690671341338565710324649501458296949251373305327387067349660797351527524619158912747205600823599831084482862470432570402609481357602114181033025272052186919189596402614761269978203280140991695463902321578933436418760493509636094546118617417209182436448893525133070619149446382595339855384121657022130179086628549227318944179006723416492744801057602953869672289630501239444826773391420283578447839883423828169151917845540959373410648862161181841718571556729187233968287382544664876179124460839860590191557636550932949257860807902250784240753934774972233748975787060144883961634284785261095460168821445591614740005123065642197974952842555319152492321449001013752125320594653107666053143591164232392378149483131748987526888671247757880183538823589148519280437502515099790512725657758822527660182974622981330396258507830150045494411403025833784117170540013784555135367925414175355842298602140709572249364336061877936757443443130004342354623632168355547949604855036372126825520633283404216651254765000102274003864207933934314833350646436236477690936235328995863697437041841305625549425203738457836571713414265973926178458562927463515509872546190012244919934549832364238381831430340352716899861043968863152833283235174668827685412460805192709030613767327076905622179908207497301835372597950586341635309229901225872932831846098038696226919016473660381584530297076714448850502295224001382667759577823876102871862830070704136830036857497477186130694238401608102551957748462938089231721223600396809148042768430320261403120999789496489330883804630300419883549379412102060545598127120023872714119000292255247091537421645359976925070138860466866836887416838911824384825572762032774576973971718224140488613242722107984080390920141022837473533536731796661880337347075340944130194993471991957644104970627648043450773033596725723755945012008765244089689145883551084312364764105308798180103582863007023808378743846623210352156242724343504373327880179279057638236943427904309783133296664067850962512477116307140995800947014299912273635160670980924925880471228666274564851177134473656464946716583120590751366887710633126569266980893896285838697512103595895910708804945543903585058150013098043873580702314288441150322970453317310823821120099136192111239613757142326519949733090108365475672706342898632402312851781156627362485329080400650914568420453781723842981377634436809355515477143005621430218619718409262266151345137507123034417736561245303231223311865987428358629931922097716709032350220617530797246990156871139185156955481127319570296151326856111842059549335141915606292310356754777660101071520886069776949597198515091975204768688032558862508091214026468196547985565835937806301114089952348052993154888028057596451423779830295759340969419035613402210188769175322524010663340883223504839520737121699454545925578661763893010528543295370500337203615537672968714280413469812464513237604439808843292568695272037826875816127460319306974705813239018065764633034605721026877001329638431634044736791435797719419197562070662035359792647509080529784432023536883162527329045909774298130223708754579757382279905929343273231021006872125784311678922586558194485170399537915594537554962610753227927329250329254952427082245688755980131933831754084908398333990956046669819166767483351930400189145323289838219253989257306460939212036695909953066410006600357681112711591177254140919270846141099461227783225778328804053719638483738612447953315703888458067317342775228059289294103990029094752341385561788139452728035439587451729968922583078671521784611090195230189844461467904311718221083282445218191472799063126141379525046742047081903514050071088863206394157711867406667972088826433788957127745217400052117391726135859463901474382649830069189790252596765675175124146497472954904054371756562461553780109527930956611242059995391203789201302695690835697347723148913706913240526903390417097201117287856730108307982046481896421201991378834494245439648994671164785028726647455022182820491327720359821382237165855112877825160199274779878300284329554990169459612669709568363152964815772051938081507856515739641996111055278997212871261026932675942151871754725863355100616445845447945575587312470704158110932386540931226247737555592731254300277448133838836823976751695314278524073955148882244535193694471792375514230534137004177169434436535824486363757157594044079199229335602877286256142399445102054842275040733774925716735653184707650308076972703558110300093076992796530358495755875391870124887767305315638427848586924002488759574049973923522168304777086697981979773289592345771965739988968616248829729159542597784861137668154271652169666332821549786000256106696230484689629996614159265181108745677896529587224051312273766379556491625415767544734415307303230349476319376000294010443204905508769738641862569927706973508505080521523153850373378285676675798513780385390289725513545443813234770278777322401307778481805749817548059356118711016259120285498774554458008637907270921893652595724520208232914982692253645654759257294850299342982165593110847227133304652575994603881713712993610272349482278283834683638963508367420390400934308125436714449386477165806082752395213033732450589803384838418882838810536921671353406739283200549290372623169584363747875230746937920053362826712559661883079601193504013840277545981538542142329430534708551187969045654343554992725884385148889349073964135634020962220150906768626934387286645378257141637876354465078415134465094831927891474506455751263229911910724201940961321050542478733941274050975585975201657820599713994232659129543779259112304011409867332252056329079764809620701913407747418862396091495483921346975371681364002970780748422148927963240822612227136235670886582418525055887658169212932686852414708312000732417573396153471483203713881614851817826332819192308574619402741090599138901665574036958826525090143126372878922675683762238124114023773629285197360158746526988060309142982901751697627212588164945822056385496718480627047369388161436145655179044683881466143000719223611822872486890254771019776127889675090074768707452194842825611285564633246702290279552957810917408568038346757237710332638062459043836173120988038760888333336061346819643579817855637634317538715613766806818586367071763426371838241866146524537557366156509158979196882034094568756588939800975810189941349350939594847580606114236187134630587183112923616822486588672040530958227064717627837022819793626686300006383278120446211950467010663020369258783710671834656487866924204207256928022541557358573031559726490715815691417129102233922713351093283573836654463923228208282036402179908214808343135375122861608387197616382623538016456029923779039671331239866676652840682568048305850998136276737200057605185489902095950173732506798993258411456176315055724560610525125298875870088029562921658897809322443162991416758037427323565918121826794414187315960966297911011414124117839325776293815891532466335826471723798247502250808308113756540325567232437892152327358967661778774605131888585505469299514588823941981646936239285366707938353700755130902716284391776087280209893581905484437325856401249944826751468734849752469352718261040040363674460224417555209847120261055497122360964846318249483861721999852189996965911141927802153474132209037421778680704396374115141739508291870476068915303295020700440051172301162112398655628815125057780384829068988154099831270670026140198851154335583315453504703017728904767131639159632677173064107737876790137344462694806615962376966175808084764011647665062162450101607598060713807488668742753620649104216632760810827277075651154143949829584542245093401353860139198490598229743591230172851955605528555906653120940847699276111374519267771128706813550223968893472336558758345054417945873415401624424453846807753861773120306199407304061972206219059999559644166708683336137397700258167561390924582872612344166465067660720443118163501453005949501492557582981027509373907170200670820797207526991590683778429708606713360434195969082544240933554743792691338124462746153409645769020391534923333109023789302609739909542156160863868551034462030393413897915007043285424816462610117627590720028437028909013233745197117126824543375883757520073645822468040567242380965522376661464107665970590495681321879173465314633544331832875313604825201125450899220969088065598993323503384488795355680167496722804138962369965050514574796651119321078781325420625811046739503658275834849233647777186458527554197546146329025487078597780931708925792761725156390015570100766096305899440354299404838606148723552977419220229309317872469841285238113474616018202062803085730296696916181514870378963548945641977484125224701769323162213465275909001586420811198457861244831185627266552594857819100476507512039094300077533081036661135072801879561284544722381224332200800697612608210864142794084166594076832964831991181713115668012515121182324888779577791938134772875210991490143458817236538615438076252014250861351410609465098138094715726185202957611081751283199467089762254382332013712491039828372565033888144668717790141729271372685980075360733121054063713495299794901765516941410535127291277844681815270998142753356937326151939141148054724278275155492747373287749321750932452807954316304405994263494162907688265985934648110966197832246532274875633770468613684070480169937509465679522199703639638876695192409427579658457335850412716942040655616180963614192494142288432754279473557874227525751823461548919237599889068202915343058246074750934205589441497335556445343241334145966480914905339299941497445684214112977822099500290441455455276549141521978866078776986519893138459444924291763232771975989876676520121940455446707477244513869655146935325411198224294512489657540421208460239513093646098152705949594156692826828803363438945905642171770597735179081927178523168653005299642057725910197066561562782858490882162700319220173985060223130032833662668740751891030017185385278177885753784645416637675595652361415238572420430173539477975401047731173236306577613995962341060250183827129417125216297954051992418897398761182363116464280849576690951916197420413544375678955713132205630219474867024260095835311621202788749548193528718385585356894165012320296015898200628652980537121690894899251290218888843191366459793415713613923463937301695586999892740037133324654987767732453853382125835512359197496039707498515121886726955532593414872664822611248607075151756407645267754848155361596088195902827478424313420079240322820850776197354363914611687483723016045829554617020961077637996842769582123319900914915443439829804662505257428715128844835785238279013389637904399914315581267185998969845412551842888269021803285155069160298185211648979530426375691997914654920001239934669409049060283560066618820190288448505101840853343049837295459395267583207928310376429819711483577439365350184517348360647914579663089356117405129972252984976134372091376429903790664270493624542641164461151132559668060045347387020383569855240226240044683137711090053745752360262220019528224804622821361604817650108025355482681164379383687730212495074890938035808142051977104443245699037834978425440964558018981640792603246703661888910431335515856868866600188191827160517917392096751727000779890821232717873122787649147981264605254082179966432120547333024234069506932788771625680713794518881768379500155096465033780886269230052495104742926039115844620275123100902220004579009017653970353931388866488678214442191413461036908785291102943636603892462813502723437728082250560911112628465866433969089426920770136320651076812169872166076762411326751522059883306779052519079382569280031676005676479770680634802537605240588291100499300982223201486842864442163633208567853974761102276285934516807753900594820165359865450888161043020341712511128776921627843855496243965625840139932467798398695135057447729078979767508822481772527043850771464129319272223653403213304237528909174457655036370238687937323240466131789228356698343763530057953720237532652798576551136176507134056775212169385164853385233179533047042093611044349029973391706351896361842311734719349950795973586721046804391319752904884445029850816077153464313357793964675007353706292522514624594641437985972724915902910543158603292397004804308118818268837333853438329590080161803321036686210933575136910441662274346358414335066187586556678358576251368674878264182391494188848808454277909980558757107053846539260807140127900554574250597890623933262893903117557482427199590849530425278479132553235319956617397604350500146842776986598599006788949417658627385455089227967972756443058710154939492742833110981002086860935587311064517972095539674475769519991783396756133937346317881548970718160771299116880253850625800122263440338099253161638123103076924415386094243870791544333650446500390244805510072433638105668982329952549105573375028866760376186843285771467476315057002652665058100895462499477060353900532237349755285474130870884040735849835883365787060882203521609978077444986623809355081098871336707255870004700307198851599889842563202545366922410914653052524609765266436463512397272981930517425973372903404904041693140796088504764821661779350378305682408348224613981965443330302765089249476832627933857435013818512613762630321608040860670874648092962224134195034750972173354961565386942707717633979110100471232837330606990502402948593524296044975505661644108211616588276153716532392774902765365655333907554303390324600861309680745157338419631694214396731759639584920273141181083262408838611758511222166935491307930948085838572179122627913323625370770618713188908193256227314300060301126808606880469464457895946801516492630834282496350538440936360029895750924370282767232804454496946554441871223205596271105991899580874451790225387437569253741943333197959982741814798800689992698739980364097783911230089485809595116466563938844436182157137591542190653328675352129693125075481682307702019063647256266477487152774082844978166068167752092337472478914421231731700390431454168486294598083750413656434867260649066323786809675909250807286074381432304586172874070399895673263080661913205329221021536461567657212545501683666975370043332611292147960294169732491507936750856829838513372070283426985651772392917211179076712854799704125867268563976963581995734056476706388959840757030669716191790004986834838185473208726158481594285951625884238037148109425227022044503097755558755523943325443352981280381321288619304617566473649355441383714574411221971186984669868976159020220036788943180026823662462232345278108943706021439528106622116227402546496737986159797080343402763306215531094108355993394214781751034906636506958400343484026149244339130685390842007848459814059336901305534907154289199834526156049089509448277087763936453374667989041670280977068802205361753549303120872008564089133255975747802487073821987938519785167476541506440452764623533971819091922125551539583075408732472888011599999759808553245940989792947981592833764332898595258522792345610767255301843870480320746995320028776269129807074654091352790813136992682127984895220037375882143620881650509010852460163995950792344991659080379968402581888714609580271067675940669022583604819248433791462313068986477708457800656459789653193171906925086739043006116191905406066288841762661542956993836454974070486318976754664052019369708818148587323923250914235959716910481887032815276050379315705297753786496220286503585238973493742807410436323726370363472259727932463018113142983628217503143914462552716728352117534387878649203009338019666368072753298190619627507290098241519196669107324282348452054918332233819618379534847551944494824544936272468580065226819464396807312820707053974365075073487659919775741554867429616495410075240503728982613586574457238781533622099037720999257593418016980038396939061177330048972264112102202135533807268800803811231870704688160600291062542228855507130806112469222476651485146439274312644310552285140443916994517114037365873618229590899583557449957076352903860901469303093840805381831140798072348099757841214230601300768117582364764261499260149101218250984961123336159047375591152703169581860543158171664506082647527647488029936468902618540512423033775365367383092162397699421432828556237518136571800086391152645004420340534021816318748206351643906439879935052764889064454077580766482398350728778501759860395306180875951133720800584023371985341876868896556022779548673816482864940180798966943214119018140341537164426525216871193414448058462757061179994632847313829040546482008117730515747552907545832971545870134037157202848074627217898075084776130189066256904961803945314190639229466071148636804052974138246619859744362838121914986895259724545144950058411061189563796689973264466645139955556868114821428083904950691206852542754458513848551848914590260049799041526684545317289245003618836063124881400622202808182303002641996039804281718530714722963392888122847194000919562078312485881873854963048447775723899945416942987279346377249209291672986114891790542448269181419873250984555306996702386507655736750106801469477376334687948284249767464011814498884241753480995358580199011388070175563211654790959984871365190632969682267390420007143698621947442820389661751126888083188466017296329778172720200961272213732756300999200021323331232266971433652521511500088321440724051720781562236808517189616321514583728680468602432777600730515887946996392854300907387413208512785643069462112065363974555481265975523499078281768791301091574910247063477648851712489336489384994569917337578870701484151926098188114407018386623872381718844562304099461745334847129826971740954303490294724594744368769571805831066157340794528960994460359936268803414188419586168649833765152800250252125746338926786734512719610741135979653207257658913302234937894173009286205614992311958929653074578007917341082325150298214350176931140661623561918025176444636269713578334142625869585360983989583564333549783279797722823772840685077105436783960963803650526622161369773487607828898777816950319114609104683356508581741612243946280943713779069804991008512483872086919758901353379083892245868835780528470594742453813965423999155885109882720290614966780069811008176000320256107766409873721386684413970334076474736794871292462755699386169698557989480329320573817780257038978638969493528079665451030321043726573877578990692143074859128277912225519969415355097994203205855739687891495874625633957621534086687957082842953004060715314855895757909327336209033109225386089937345765980374029340583624696050471800279687783472962162336776350931389515742057695738003394613867659259838409692386420723724435101653765124079069042685425334145978756598523389847549516898492610335059601136588304713578382217498255799897303972895645214893534742053652110837454817036038632245980066297817976081643201841064085414397322159388801812905442979637669407652369144048467895563008814603915562921990502126345537004016067461461040802859354913147784960800919437509920766535025726219893308918431454421484506716819138450821429080961351882271636006028807408639559739155183111558171000537764679575152203496642012967845526588360615581834820091248669736654161115042945549735199842919540009709913462330762972010477757523621068659538193526767015207848157040633902300345154233495556997249400807150137696437599822433503382499957152606186807468233953658789357479417277194751972537580678377736706423188294664898811246401331606075777936883168877618200988385699118436816807461546302846043250253823489819590114877476885160745233431150446392041315250263571118373457906318467528638833368664442431085736647458047663946047461585991393457794181121130970261779705455137449574405034931444288337152710377471003023972691158229399022886247863459521914102087867328047806583814949079424543677970950762721469905418773208161176581656212558520758036383383536937391874788526087541020552032041903082934201914107067904668169620482789866911652439176170971385601977994178827005095026801426561768231883008288682594126851967167222928639871337263001350465826683675132745789844736358342302013042894805770976569247187840965976420379999589020237173654517900020933849191775048257486075190108706690994568802845647779583940448984653377111115993331215026504121855078918959922502178477611975073541369079781227295286880595783299480414363871800813217725123810690700018895093803864914075849689135569097209417233262097742897897711105945943017450628856528814556525814117078179885130337149322338530570187976582629965762879032476323570204887703853660736370745938917344578190588750841422934044083325283622053874808514399077964381091325244825193743614728538554514429491273560041881434306606627586335310907843032652525794153639531452755644414488373831511771875784734896522560419921144262934020003365916516338786477530365924435984465113047076836911460345569130510250671695069029404341359935441947244954200639929924375131329168584566974361631099553853994571140277116223003107188999107015921065959318788309562516904035718386992841889436379654197980688252625804496105779303560966147603569023481642541358225673934935855598651788877174888154815023542834339589196108860661287877349891492175607210612117943488354812225216829241394030306443732459861830629538271414052725606425008859658720405513102110275775717385918055011286319322052558999810800195960111518665603912638974828427929418390883760945442171237811184961998022415734529292028668883303452374385998435876109889317505603377477118713977388020113586748878709589473511497979355488389254067132607284492197860177501580362721416956873886312736468124159939768642097589945642720116830763100444851992600401753311424320477955528223123951729701718382301549895043747555310969665089163585752898949154834065060658601866095326328596610484351981439929810986805798900444272897072213297963308592236688566096223661620040511966740820634017285237901598381411877511472792695994496126680887623028524251015905282754358773464777190130179406123365035817284027052064353190943507915859007743793754004349475312877937414297772065726398863217343616080600511962376426931599864176016198577568106586224351488570133744402014139686698555888090693557224063579144294981691245802776989394106634440168814277856136739853170405749048747118415316833280336024745847895112480217229376904316574442952603815009051021490503643208051665667387967051596519169901615252187894012790070239408480603813606353714590277097133152344222045927689368733703582164314192760417548389475399434983990308179563047307525649837395618582489383400097359658404842168229295768279817655411227491299719547275016881508735083664076051419524349106155275854754762174031128581929800767894467876495605137457571878160952381133823178179668761906479011955345541192804903800193822510433456309953830405606849026786545242751931117865250361665157611225204535248322985342386847882516491831237917726116873209540775081780916712936982825428422076050926456622571922576070482000193129468002307739289301596076241786381555225905003064514064167355336609333354165463140975883069707553915501803166723532558744824946496575897214063569064945194844370197268897473310329260254436987998701393022666181943830283137278103088727070293531235231859589241909105324439615378065999882263086760985461665919058270647432339007995571422130102838284743245624316306806649015697808919972591634509117622513367758131451599831015313762453715249602364036216107500523492972712735046939495439876245496265370061651468109138097805501061239097616231852976685784863655736188861563226719527252854650906725732277719785329002678223218800432828718336192600023290990628204148376652183420197958964934658074472882552363061639839748652631871543800689727374287700662619238698708215108283168079600494005264467969764450496252797921421105249645085821798483563895381084460786697324785811311451083591560584014686604079610137798383612166762405085146419222721155558547616034583795795562017476931835582209532889923703074304806216530994823016684521490454290776992819887154481406674225767621176974008843528707114697886045604779653146327285389593420376332893587926496391564493652516225414623339025728594242800394456798964753416705353475289490947227360166183223785881901649975889800030407454890326382665591557083204631844765427777511647483911903110943465750284813686881328541507068573010318242722139098875190511271232323785488749586841686786795636548706958800530309315634919815247701951148907249004701726040040379632889604077449889245927493382248909476030995924077170831373038721535764927457296139016692101654295382205385054717233172784260406600643844236811768778774804544549656461615855180578931491944164880548106992535667167085533928206483817888890923616886032399045964011197455673559870696429291605228528635859016894747326137384413965520857674545890683898023360060704314505961277557742366001021135582441371058830817990057508229444431947753926400855669593870316951471604049015650504098495334828441891327130147148467483312416967972510812198281683320116197265085448900845580505499806982855236063164011721502055809280506855448117220491881313667657314039445222435854624853211600721235766643155274523064551353160214681707229413485055908361470715117938893609750079195204453261431344596206184948448332447644488536393055579732129077401040114080923921534084503168280600059419978406218971761734195209020611725289031271964381178479374922411612190641007475680636029649301668294914162760867393577701114903334356546404059013579179403276783228103033204160459793617425268906201571856630168416837315795141725140063564850517851309726035147827697888532861711403400034300073610004531505619685280197146006051221266153850210293548538254890967984006485665820206123746890041766739834804179554731180154514810815381088942067469166883311854154099333098732480604982727285292275953466158889684216416618354080388689355059941186716589690164951851250077036005751003603831338820726367916606418131051154250471924036384388860565375793059359309363102162339774060486676575502999059111598109201671179659018616394779527933661376871552035249793089833274572925688624326961988976387453952603856889783556606771293841365894841967704704707934505696168706478921394119862484105408773348062501809097306226687889696325176307056056981794044809289042590553248367840330944606227005978832670784434754504850424835989383854986863493192228371913865509924207601636080287999489745642660991005234919053682862956198089831094757988481505665999234732215047959723479402376637809694380980205579001541821066869735991545652128397359033314503314062625632537365275700136190043595875103697342280545224607488985686160036522812234530886270950892870642342214071843596926167302542907844155120477401783886930298143853659054059706893948811227957752014265979059148896527067277407805200082407848759043693188963069278275964461920331855997741620811705012819910992905478594638452422359712281292460129933900500613370055561166628196158276415989310513602319692212569284719913060636754605411388522891345404862473700151622627805817141341108399635526877642291102878345934283183120553059332489679816747329568978826221477096752313498845677153554563951619031257807331304782690011946118752548218036571532895634747399438821053203914249507616114633076616885472852366252989042087086887336810457370888296873301660062259351911412797438188074383655074017094271086759336755301461876964281944041677787938943103758359889451651974719640420944477338923850355599388384218371019475881229552079875471056394169228007776145655843810636766462452321094775919270383536731338663567885765619453771432479921418361613612705563038438664931413657479027168654154829392740671902054228052425189468258504868279001247481138704174517839183690837350771635241530480929995408764573917260378796379920229389744197343677745663647063850607432704937727468887767740406918755832722396532110386170157809924352205243694634154363462960041867361707889531719093083932709449719632341842860681994495721625234455264999967629245614688826798627983861991574007799606766622544282269739293168503241363376197213102263687469761018592208343768558800778272950470418538069431721670548635604224560141357725795753214475159021883419289899692479316767112124042409615410408810116130976133236205839965339114175180769090106094170461485168309875617259971760519607017714862656998420573335997508958227537910429956291043109189659603653748238389914847012125197953317888066770895311139675544947205793262412233978236598071313562251746585431063478933475616303477606419590005372618100830191048314509481384035722825911592413143995297135571218352812352424445797178840313320149439747820066193991674583272516067775021327003631013066074858835938378884181385957887496171149758073171265484458394899163683900236399245214420071611399830912113488785856243887654251022065658650546718552832570145746783264345220754257525794854697002962731211784316970447005097516459504839004481139685015760968935933236040055554317221174747510568042943479485072502628688215922928376702508692985236085629989112026454363647174844068308357391420610307958510986559637939098906636593577527544560072217662105033962859316067624169190324229976499121176932315664137890461836459128456919470482804455621930407308850145156236618650288876920569852204204393500686271604852331647632998105950476811843424997197698891913170096169442082182599541047309711626691004448413241663039033470613333197722592380331840797254708932669737737643947060153663196392938848362568543285295914994795120941440349614676602916352116663123076298299326315852928461832493282389099307497652828405916513940634334507559136178803158704610336184575883912283035388952716401735338899612451518916396943354455593143002016407792047972509125796113465205987937592707716649687518834574768874883892644825819806304138733979558094841220088930475821265885431319083872697834590317792103685302941688653761309045270093984691720995441920356016158178826523368371603152840451817998196683054170433785637544623441346717738609324186274780005198940718948326767122414989891349077938771549399682317963098443980537788410769428257611214516874550221059631066781696981894936788917804375951097650469352396717699672494865230780256183873902911594977214294156215230856613211346567256142311407911343866119777517776890726523162582669073352318008578783610368877886173540090213339468377464879915225121822797336805106108091898468420509190807928735200551877133256725772714814845808027340053982965021853933708380504566268368021566531809266884759362625587742368034826139437820769803419770194333939611923411016650073126987134993915594970864019325031630794480788683522660241932910213091106259063951808520122945492954281763324374318594454932220995392960560353013301882385883877807570891852256727631485197445654740096721198183951702195408334655947691550718118885427842111846830586478005923228284937488246103384876948488123892353521279339039359027815604957535534198180161022302941484597338345300838488376646738394420034553220971248107960950845599688868688398601158448072714652383287819586540146900629899439345195690137101706528202404407201027309924580302312601163325544229765040931689890584320582987071887388423063871289013849060299099035066102183309091003263375174497629756436125086087719518896899370935027763814661190791448234255900461261113530265681525565428502002563429456300956320834134754707134145062486941979633779703752273944881143375848174439105743068562117519465211993021431365869644379593566931487697574580517544761220407187907772215006051411934044124044886031601379918824977051240959968051758617285244858328568493781140135230318875662312744647209390990680382849157625805645522682792860085431480963434465784641359105690004671607975553647352999142658983444808897250298101163569924453632355994715185869268958106530840646411779674384495382441449260436119156324507923136896969009028790197479137134877934634825225962598001724781007055763225240716676358114523685633302874055686668735027120194825926233012015013429994070198990646229738864649715744777598028890421294885868560201654537846623932029442418850560821723173831134001135003335890385741953168107788295896731506457380027503635844561963034500991039368337085329666654163116460790294851830609673129496833608065827691357420614047356163061466712019591827184485614446696973157009448246247217699200208719569971868680596365915339145967489307543526385812758052964447254154868357671634193483192200573623163203055212362665829339198739353680869609888269524782821556303540765396664625572351428130118254601467191046989558477845146987014039465588536189877128171309398159555121768238773359343707319719365493647648840355247700946567319971737650786572107839181843842988368549217728803216190121156623245715881850052267345102217889541968696778822310944159943668605589223810129476572904502169856738363237693852820258819781046638025019381182130769619741727464098583445393608496754687702703589357116881457127160811462398540064151854007834172730544114395541953565761552808276504057937552297657096100083692949100903354780020049074468252644960436702126836881134619992939074814880008713079269440431607019559241200405403063193096327924631681530464063883441128166276121389316341820834359239376193995549520053725176558777422213987092145372732784485809303532349987076528563467607956007735021287199952936523524549401485388698417842481630654159096310805259211540842058394061273710702783055023037801690022770918294333233428536761685495211385505867948145183860007672367454592777816900525363083414409584410697107348470863179749696250333554660769678861818687611052561852857706315499440219699166805613437712854254901587297809625713370938552268018393281518748383904814530641392170939787657717185470443786124802046823822620007879719418173593597056927573727484086264706962054368305803680310432664419021800997066600902263641363892567673070588835931176159090401066005975323910396831942411891115647424267415423437523920202205318948972177903447613615048057223036080785541369038321685276272504117895671811462484606103467618992481730865422041216516151826986575440949529374503051399286194593503575033359345980927089266011433449452098032029378380399390338152620562215019976973020699190005216636918615808537791330998310654747348400052952972757737064843367031567535685970147800335662658461257229654185140735641245167019370290726965619988184465810601331763921328283757666986903430377311760435101048331344407823197288749769464607425814959514892696730248600691118755655835858478436964502830920735979122632201112092220462683842094510187217099581227404975089918056880369720091798395961625189274918818773250741358736188176266941822831708378580538460960234852325374951509465930181415711282351742548304344416884313327068029335395237026001117427010385828422683148148110532406523242026817871989603165680427007524198807321471337949627156146181740253904893638446072992255122300400266387451303727941311783190354249444740616194804264418597463539981356783810198443924502435098001339580819888800069832742296205469318151216599321468930974706800622891659446681122354367439717937343157498709196545772220498320690181167717465225227103554130475020591440809913668931302842504487238656130194931584876448969694919648617688646455931170891038741613273798916631211162584373635081311617284268626793121088205228596835267990329720479612771427189958193172561124912368723956943228723867871710073355563656331394178989975406182139261857958741270088352338401862849564034428452185695526765315559741920036601919553846025216585943804305896188655743431661268365062618511464350561832843309425822134700602451008763600680081180978396895647794510586703728905458102435995516715103155631934308089312269567693636874962738089943187019341823799425359112465925950390457069954830756749876076936649417983094915531139563628814624216718084650754392651375794373015839037341663591962523197211079071078083709834687402926563386591209416147827367709847048668504266938713906459534333518743756878843697987793981672239518289268163676789433523571842786357990986506580047249265353177817425977307406330963476482037481931329018892120904573479580124905472889341383929921108949518325409313894425923442494635268841594237050285122443554610828244282191107831324859228894257570454168236056421528766712856613862348312814534300139182256332894424672700767675087862564069254662912932023174431359234922589824548331250027131484223127304384580685755003991216133027985183849227636491307634843742319268412981203856790003796449556891351685603622483583137828394802492455493054684959485936670165726327933038390328402744778253805735317688257074589387851474588707909106732587711392031831267682390558302713358116270435751766765171201443842835991353394536375738658709425097253478156161624316322306115101752959812264620770154751668762639061931381190921624547962632134196007372996312134415275036422402021654703208416866617665857702312642722926880434107987717211417619098149920556287128292863926259356223407207502275494129593861999110491250711954008997059520404135168044160029686247953551459895962911515256327737945116644607869932370589172632811845985626976598114276180265698992008654825955546438930497785830282712199865616724320630364911078658143232574499580807630219029297969585909646723407147837240814106432557491905580216077257895541437745850654447550924885861427292475252121598588133338940076212966276585416080595169889892395770383737071474570049975559194244002692485823768281371223516908785792601630079763904063077584354908053003653927682636451939756688777321058723222163749647016516237284035610667566511539677970918009314359303266819924358677510328974216479798680558319083451913689149111466060119118447889092230638603516817005622360386890363512018763002711442221446137956030716527627248231297784853106461754400996970161653012363266359551221337698011072439491833601569794026231217894269969374895710768304708468836371234400800331391689944071588519810094438642546728514748669539930943409078560851335708357414150071194987623366934359329634310906065638391696862290595764290672695180454190847916918748896516699204540165173632298738627027608375367528488307386016192352584826394472491471658627484875386221023455518976420745504126212600477537102684839532771669586257910977384140343604831801985769770277989987846844934121963352457857016664969363912673545415530946990765996150445595469368058883203517142378513854757032344672194391272116463519070266185767784173443772208360315726138516704019397632143030063530274277529161028941394048828515149680720394123768153536619812537887019725785522087711029833087483480281817760740369022264217858833921927750037738018554373509748431208100687349289058716148489201160476941702443883271764135796754477498211876709649050674580546298975273228062687036864443875368735726168293229715021787426105757674949020710463673642066029109728207872888629970931004018996759133284389199576686682367453990294318396622884402271076008132828610902041568516288979162477909542023775810168178101298656156495335590133782109814432446233496848647283852389444946090023590336295558748608305033281325077030108979835193903921568831673980887977391171482809447237673892047857282803898419175160972613424495356116345629208949422112145950884829382555833353662418338613694788290492563580703871641269849975178747954552028946394742045570825810887692438273120191938957165342955373532279387979797938577156130223944216699309995999557226694910297381968958547947257742390631447454764792752841389479391238329679230951005086768106771069497437147423219696027877130064974253977121205901274481959635075570539019565215137905066804884154647160573333617434089773788892027077842203416385433300095623702769682622767887679379125554458313491760595281073313751799304780192617941909076008127424645954508454024596599614080843584274094600658831344358775367106667869174304875901879565713354551512172330675270342285663757165108246751977795421498417989026017121338277103994253899472681836979798003341325529350567574040119918064633899678523639913891975129749916218256661578408597656947479034929776911113481496454291230956199049584404743945265100030947267991560207020779721310083452560175252241201624109820489090287882835202492386345209586728164021832365836893298105190080200839973129023509900024998115946738093194176669029877840824286267844855338292035177232548570545366657360546921013913448414840092345274415147112008971510248677986547232140652837864604421581332051738344055975944728662556608877836567082479895718434186956518518845458760870511034515607222306970036638821168157828231019859954404421706736579539851586539644152335369954152875439124356440451838169658925448893684967991677111393229645976570778238486699905427745457061213654810450250850242509861979885962729761222180321595041004424286893923151047716445129199112197713781739242992318450266532744627546564136006030360987772962877078446304907841051370993193844619731255780193738685866743776613581358831089711040079124939228028827681633045982643089913627273593096772184708016221630325542673610318749669382446498500104323098660781393451969741200077929417472966221532298253761463871185414349700688404529554690321654970099764744327516604968361395132101715793649516517695227772133266353717644100189769268995187203600900413496897468087343974975456974266443404893280543170502336075162042739970230041558033498438555106944695663018541730566708559746809572513205888846042896884762601495048765169546520139712969391968697147263680358475650667031602043230607791550772835794301942749630483826985727740327997249317066406998338294118629027134043759852456292317096501997865888328408778099828185370213534911703860618346894189665058555166648019153680345204719238138199907454821552315676083309092519282028192271654241788361734330338325823299182949430583600666669030258184761781549210474091338249235488583001217617352908818551858210388926207882702478284731718194762104075152633166079590942772125846613011974919261591986044841436089829048042407550284896467147349057766966375378909698174547514617666021284246202761068700362688881840316463159805203562322745716488182352729479158212234794396442239246548575488276624798002381797622208845622649021485939274493010582872016389903002785310262565926092254757717945830808782361400128954856535567117241650873008328609838116649640555489901405901674741873990514250813659743181503709225485077596407544897021924049379453629701604780255597454492557171151709923615329541653327580624056957338458180693261241739813358812177591761186876390630349215946665485232291336352756897545716998763596485164164819940264594110774078511233488408854240061061250102163341564979359898076626932777668067053972526649297739192632103222203984913519941522364114951457639684257320783938157453258684278909202933365806274207267703169353237451943215667159572346695133385045538425764476972285395517252692348793040998851740513403442275526748419686633404666137234376670943040498409722691781433832348197830807668604096072921440885329187862448639271490917527609817425519479848054310159893538824191737252872270901543621755965558668659231715408465402804287868087140105632756655127138568380010734954106469525617124757730949926463524293686012494178166909937028083466699849084953734532793193976831499593531387294473888086876814323418945154733049089903176780903621532445074537798843735608108077903477755889867853349996551552304676613393980608881278528817669147763970088810696087735357283739488315243300517404030265024964082995209062040705717888181902879231272362109127932502636049115843958069724795672999217908479399291852815409225539751034616692572615164874170889223984279824547722736639757618242785862483344170442327118166263411297832186970422763624923532937046692175329285107907750749004651341351107695263794948787655009296047610113600094478659591093793309153146440686437482329617074536925053904795913154149019488995583635723460210552348068726012324802924439569493325147451101613287065528852899379495359701867413507314493252730467585507114845461606769737871253806902259170031182172043732545371546045260744624337866181644439447525988778059379149762768834842108568464418842445890487889400827943194511396851884010019610103850751614263059806486872433971041601863280195423809958337101426734255122409637823974158746969457545396253254103955473341353037119445981048027557723544798632977484820762255263346716553761451570190644307455687856765051989890848611156455912089919430646063407838673158371965904810941957431381278248472436244923702526236244335432449265929914434329934017684787997465332458930690996581144323278379609844198944868752980897864273751946207334067548071719374318868126770177640958179019545850827102295655171041833912345778849321028099203200988673090617571933190986177345761971087447943445768659205754097547354792526750035893678919307339570394192856538213822511209651159757414619789472915539269845479820490904472331820100357137260845433688225915464789829343506228469706613691484875327895446917131472883894642621892674445851582054113175907866728169300846320495224293153696512679708786816758554467995569556275625963293077347391439532490161557392886151380496845578960742468187121240099169143352054751683283593229910527123383855483351146237402245502876405207743870699589159463027249218699641346657607390249345341996696077479285361445293636801790721988082076078607574981912502655041478248916080538730584322749081111195238739097313126571836792738627110650833508292207611404318232012320622749668561507022048547987221215672881096248446230303450370989394109062621589785540039612492890248579234486895113243478449732420211583525859547134989637536623864351996404450936136935437583064952820374994053896357442223040810935150796106172233281401743228759515730136032525223983225472039354285231090887173586431389487038618906655252312556436261118117840057003391749117710751697046015259101710750649190510719077117821407831321218889182268681999651427988608573044552223307692118008512230217107834780284694452091157627544052632751258335152456951375809581689948535341632325697868131945998945986236451220923768615264132036182515940069224783520747711407935736642661907367666774933125226056670365216954230423576017755265940093264103624610610127905497620960372883112103382431624514630476027424418060099328608703554477751414756974005988207722174939896493402691176290057887341682457276849873046090678611327805805649412870181558750802862490745269182271714653570334161333109480741471802381644237166091461978374320340467674259886961775479278203144030345296759224842436444719890517913884482478005455405040644018297111603795422663441512441337481671328002440469405593072084141118351554774640912928201309135050070739176134527344797719343816783274503896607556392793017252058447467451736608084074354524003129735859300358142085739732335562663509801547008591325048143748246670885362468985117526159276363273445778512280799504813345110708415729780037144580469241813313907189365752234009778799760109483074492913616471533975509959443397112972710486755978411905912003441881202389645615037030318631921521117316696024193243348959067273512038377845939478417097590595719996626648792373349405087177984364838718701076055908622320239805985665398713354667955142468615363150517084690791348537253595317979588348932210239969292343276496262438940558913628149833329283204379414250692710013047899950081842987401456394675518171838947222395594094590741197511303696604776641148752830186480114661184225385262596531061047578786682136111630430892836782003555924595699645545501263132567459196555958933565709076321480642445858100679875672080619770335252136971943329406477431935365109449310397294945627236530956478294825849717845771704036483556403032564749441857769632845199936586623884994251485451034894507916973741023696641047732583999866695125062450128891871175385288531975920112549147129864215966074083338525208196202661963127699795715630047594838178163010408903716149594011418811934306113630609827038640094415188304688931655382638969182964165549804495789245444715416661297094427810692860341093641539630690994191110949149338206373686183248857467551157677582853960026032109935648337530104261886550886170629539072233094192557404386822064229451848861884790565248628823216876011739455808002745827483991557132214640274911513689272627783976289198147410539737781985489680800761029043780234188330621271135109157176093289995757253512639160203171803023809380081517564285653223351650910174849136056056013703476468764736929005407685702176652427375701556937144888813624496065166407600813169638904607948263229046257521267609488558306710474510948337401856240791685637072913960137862694307875429967924529180807467401619536183632891006837482707366527628695889035633081412942335243975591349613849054807990943864880965281486072061332523141570023148038181978637560125501443853342522403765194315050420720895973040838091693990935293426255849298830005043838999518357283527044646338068713208662353119479052184356890172477937782140462739827066544335105986937670873762417072985872754760083389268636407461680627850539666688947572229088350149240789732669958228350633295971258544364259962717616531772189843450347424490673340981878255250535743094000363232597308978944055306588075685646090790780876608396172298612998635613902702956578577778933905825059027190131691527694776263333341876065394553807172550228024273967467507266098079571646442580380593857819193917059759854949987241149570539539443979587220535477129852397720403290531426601140250196074264849076100968470817594891126331125303141525105802391553168375074906328440995804708582332631333830624665563430700583661505108550324227638852169644161064567230609773059932780335297560591645196214731110475585427889977841631901365764091650201221813806386691726118896555037695074616643904452451184916405099721656410938517632490409636424638964155463206606496329009348024241427401559949438889387544506351086365608973591486942123067165058085029276152633800177594566091061429887102398509175725591832647864955123302380757036684796118421883133010539860837771478100544152972972745786441793897178317643623769583215031262486983082633315061010069092721182872341256465489130262658834370613799982832033497425613831006970794175911468157694991903971699264223578883907085713210759386682688131067864882539900754970783609440408594112158623217645253807373535562992761349166135500778199180568949651645718245434351269558741508266532996915984031209845073596517318379544824567823857307785248848405879988482497669117074158951938104234706637480779326325207556280556558765759475412046428531999739518092367697477256425091119357823628674446835116388464654811940065543027697138419298027603437244339199672296152060310197403060313095874893162993841067855245525311270863079648525691075153062266202005293397983945979649038349294232197444936095564068318277889974149991061943482363032533615724840560332172366951888118609107619688668102372649887428454504048982720847143282063825421886113078752167721757612091326067908875421798875480305862188056446773232715534675711517889587588208772984567867182464509980413725694454431425733043803539347885812697980573447950146806982540226321236017068052556720972136103801850489641509738500447522986872202397948632493446484258220754873662584539768312973012947046292756408351023140111157143972337231949916653737025744823498363573472443473380827460179685606635555296567218823365438303745080704560183515846493658167537799360494267711620967755098127663859862039280490426364835452977727383101719043689293649388769524133772647260016816497334323258955034322234696603586497768719276010151898046976929535277754558395328971725996579503441811961474871392190459015101432866433546604311543205586180488045215291634375107379632300413641753746674773538301716418635515161555610656637869394570461104541070487576654998495984453521564061131049384971389206957791207291917412303188599291539951584565573647597521837118756872803745043783734282530470535821022931124153919851517782940039799204402157234029415283055782435220107684068781238655816620232425000308114662380728608921522118563616698859302707236650241456885404496530561377809496832249389487404012029226493865915728000638312855781671947880335542760795390476989553041275908403997044239949685513058539454620536658111450493960080652466370102831402724994204717051755605314515749297066601775977593920819374546307174382770476329059696710021993735905805661700197259779428014531440949674741055170036971957136646385474641139992138708683438634144656370077911950002427883077338130167601978952846902993561030908477319705417108386029046836727160199645904478820249851796274106780676380898552945738691576987493242462444869723249802900480110943924681222069769122125670955362537552289858691508557992157567448512025321242193167343354474663518625113760090511130639506403558725186354790998006852345455529021698163143693192542115922820914152684369548535472056128187425005614172863198096239605825220386226839480070677147989832298609480089127410117208515884186550520846487204706836977307119258403948155906401777079652737820167205791641984185891586959437229360724532175627046241685558219222002164024155550403085360131210184817937527097906592472639436934820131189562040507022520552789752416503723878065219959581582294044336180995812317295227085657340787637142099742681239150565234963349549168442458934791724362145985553051767185686734423942680304721678518055004710154967381067205373982914908508046369623124260870313401511143005879459653279117546679779582495519889506573524455596323043811435827567787638121294646535925834535668839873809369293787019198662664422495949133090539394861578716372626835229535616066088209234323886007763663755461974932667874565105937612186889043603617901656832885457093375627496060415414752368626037175411242212494023396723227803467745309324494448171275994652642276776430416185001790071515248186109342061474369448846992512844995642704706926830701002338712359369897999423681425455398527956922883023786370189266198923408953663991852175189102146999162202450772101276628835562068365732338061101478956023334149527979262168267218468155203644984054722825236687160403918374772739096696848060016235760385999776520469906346279235784431227422985041309073989869035582072067963286470565379740359262940449283488529563578844136209284854307439985226143925597298173261980362592475939011862948678320906862743607019349560678995395196011050525085252453188135150269224210662959445620990967890746867286984773158445370977316410445612999418434001037541003364505058946897649592905628210478498744262019798428175013947324741384763678010805861573127975649900463091128227155299744016832322561437330113788752047853441004074958352999993475110867027230674177631874763689151871144927931777612131978182321123895902687348997228921526867922753235496516586641194048780845456022257031702794229253181202444117278644695154246713924946856911626181052847168305231610903821470571576496957826055989115649702610278946465794488600327460476215598251439018281109204597677228069990878522725207143957738722479948139372502744726584475953937155945353185275797166259194980358840858316576887987889599177435555830410948016243046215740925716760444165647730004880952981199502848018151422362487705530606950697274614320171011788986925157199110419425519577091343750260051219016769345943042078728517167275593656290346949165054262248864010236657426276982576489967607622647166469825857203269948682364265247681083841445441012211700259935369332966772272063525051596186190479832956670518803278726321619786148223215770598904523046910248509366322613090914211010154754977028632788206521398606335803245822833432651434454533899273799164599990275161703798057436173123499889353614089445670854601251755022206699044443352262965649577545634006328486560843396086820616828667667112088614402467103838570285944042115398547868265903675678239691468769884920184029139059426499022697710466221715628137237900843990323843851970809192587439081997502826831844166148214412257653801346154051277786843922655748169204295111601975526891053997274162859101086676708600855457586072919302991732521795000174964792674076407112213971654954138487205862535661680762076667542764104709621848185455189954120182574157223762937787776886139464582502059962468931006578598753048329535000874322169833334905365709694814912896176973852984714992153584580964351885527368324779347096424998173674034886789984394607206712111416065655819951132262656080702190647919918980592988503311035615515843750920126874178363715850267380185012497402727830653544091413021043115682882631446864771400705737760388127986426807745645079765500987543972921066780470298121985976168550848273660866639339464337208553131132011819394613000259065804003572362811865360299207581793081257679928594754977107115716847505443468134132033832430124523157316775793911979789044757635362495142376845570350112938192796752239595597178685640639820183762242734170239391121938413801587585945290211811026426929910389326430171340997267647800455393826224030519574384910112229288730740966257803234226409900789546579979543242125299140771898230207710687635486053687502186291932701996911993272426924080940912771101586265655039146195842697191070128120335222215352196163115411401326937147387294316786411814711282484928721712698306036047596394613876680317964387477397652826614620280885419904965773847070113514831523801480109095836407251510071406982831036030777074000187960979600808358270899436296536153987729598802992085119625705753643220416386834317858202104083740420612302366477698132190922152084476579647579565135718794294122039886183176811042526937232043480251739384518934583736460165512780130260642494196894820154345300661637807871382115637233607787036991481718522471353555801280809664634949215731864622249822802452655793418778834637084181492233471806183091195811450873413298500339601143727249368633924505711119389941558624733755708903330491013424748025793348447255692267589921010365073696250771502020477971835037854505267073294643379330729666181688502884863437556961799223693150549920574211616319902854797819900820228745891237385441060041168635387767510428366174482838081866684277707226953252530741710998217677418274139795935125970682607570085215493685580968090961676393924419557169164820520431144557482643194048235612244266751510879335718161686598768899242132077980052516535405506608013471755685896585202777108111868789932462552033122685579266632395436370656167945782563362162363960859822339266743871146642784154324211048097274787422990200607632628276686798073642769260291899083864493397440823696599819436505265572907060234321965563521617046478254873972429843749986634995869716274896158510707165831859204245680093815298112898953996329358070688137377131446344437703276266386303104256142002027810031279078376258042445488294784640583292324322780362956634211891114047287277580837231658974156789983063351252842380647868853540483490840505181438716002965431022402073749168565436693851158903876519775199364436266910590097191326343793374363923160270984274416828966116730803298806371686042822508439324367073532059774126142931590760879691812430504511832454380433101004514408277530772316614209942150630548530887986859221734477809046858993086083697481902695213463629023043412831433157243513994550866328412432341024481175058016613880924255551120342083372692411822463982694196715884892785449329052249254324773043341308481244619210517057517632217051973326010691582320479199702819259821384362234018445553348779938371906183288317964143276327117684647569982348459967537656612863171787576834841906974508421379444295363640921300626115476497192770049857462127243703913042660246849450949355459192080769096959754599405526807666111880006183080849984001461329459448563031913220408342066917586997310415289392855326072707302120665398979381574744700566910950145200166315838417900030810251712226786119387052560646219032175992077481560320115842545668332943401444393438083079016299289908226975401089431337703163619639088642903930592628300790077817637890928507862247958357152468268835187752495667733403754702642457923459097387174026504484962655803753697570179656542753882854531302833980239115967273761853868468460236489014788149104001987129948856000803006275551050901391165271042060068769460148860719182331968970100574830537860778779609110608655230862510602689777831888232614071793006933299856483508400090334692394669015507948988961987593417469396416200478966601344558541867530323088928913311455096782204659826692489438042308789636260322241376234276063200839869748082635564008998211049541098949738610866726696265602596920490410716160655645506030298355711460000300248785842156269768151435350382474152152878925296209558875874162084991602744664240077325770088111023493485253988587250752596945998336285619384321647416285946650442844592612128069764921218027076344023325377012696572261419637308561782567311260872604169660418576813776831994064937232407910368924226980540029507578125713226211329715040845867647174801228802584142967404284846169112101298442440452643607782522132521324691548626118621129511763674816353242757969669350553174727147349728215506915326553753895641570940397618237644801751766762914744710091140538812788564180682271407152015699405617782699128473897635884560808453222094549442146148153589876564632913526276548181749681867772351965186705180016218157798792052879149035002773561952677405861336734964156191439915856401735791328487730039240856624269832124620825468008678627914526999592363183497321127666010256743605968636166538071235918867519214483449015678176208813785822354542763291588082550220736576592982919842975666081422763604184607202820320530116071210289263098792051660352169423639741218869873868532552323868050958909431752393169711076224685974391186177126861085939546752800825152265441227345761505992148025364130433322255570748054143827267916011159391627132911374686258149123356846030708836804514816423742680499910073314172395484282474415064579242949002731725219453303835363135932747799534076091728478511629547629529672358304538614660303238968820870458731986481886263237219941866885830070795647091856162739492413569928409297365970388985688285936866730403834516712779504335181651020605966742171338496118135953368376513848398134060125128701604923335115889931650925044201039195370277642567615613950099510437203500569230000682655248773590750619954833330359188477371326210260082210851317578508305349092403981597919654451411746309883743969041417327445337856022727871392487027459818172651159942437686553667326200612433449784875214699706965242930882122633817855558543298259618330304940268550417949722081278958041144828146545699735947364398009430178798706334578562960307258790948655880238778106609376926387061626781907998642173806132145435173331032658068320188480320048085728362499078378127429977386009366783156997932745250136047990937990155070280901389493583597872632787123122916851688473570503252519737019494936326153156549605550392832419724691790194169407594877864617512075227265758085493446037356929939213672809833424998385902944710754571524830704634637141846633781169855456154723788968010826207696369518918514570141384694910301028479247540344427437227651659350099216711799520774419625681345945799909411312875300667566666240799774128412284950879928486510514004599551887214929353747988358171215344228119699145536001385332866318488375397611123773309868575469088555522859415569902095016186954874376297285777195281149660753970606562440741087915552772106759739025396288314148819261867241133290700692243701772245738954745597967529692364248075083646508550134287574914786734146133380470963873234060846286179761274276715915746374107282000667274586953104607914117050883229693278514537824996274778815628935382599182861653475658052695748980315274022579582132993592319810267857722560648746259052700148315485322837499954768166564425824916271199887034466869390842368678710688372379103211356351341163073704697279243909949981639447048149910955785088638705097195666281694157610201468725323367180258482106453901198950283580549219286050851157419380510286188875753968972790778305866627226607405478314941462027495949923084565506584159153143475159415921985723797579908365983694817960300316038113305335767246720090039889805229403843713135781818861533169711539559775524996070089068457526140654745874679312388409502640850409810454221257202037858101463830643909278329696232507343694103905689442957630455771688893273856597384516789991580171551287627452559036481995929343286452127063049481595621489058378072606042721693557168537573641744650166607637874657023041940836762037926443053170436750195530237742212282059960952682034017075653432553032118967889180076573549797005312288027119051869578962794489810459198837287164783377353090871616459710532797302787758093239754833881384700365432275817509651087181477705937134757705338622856323814707574583141726265601841969097658326457581268479307042465210900896394692044969340731461220469567337779086428557965289206290503813195929583125334108597367104114675032019042821144570965566786308229971354765393627506986526788373589684298804550799342041499625532468517097515955268972607013772821044461746377838333479786834193193036683052301333317662528513244151071218388978711992601152279517216381882346327520162732637828477743733149769923457074573696062763613064694990475468470958364248381828432479522864219497078230608820688993473434952462046094487436719043412549252212790316431218722521884936440179235393482730554486508239931023046412388689683719049504647201797262532239132473117857917120585022375725742040858832496357556315132460938117200689086087752602625983382911380079844110608252164311116082398317863980422186482219660059967020784164618353446119524470262929146792435816574485157362440382962435777947827823404027790910340599254781278373591718172703971765435293164717148198919715997893866246769444935838693782140524067602371184057014832384097739016431853057662729921209684781486916401646078911738298533395482385384973892095280026679269160686290480281020730160550074436137153660824498008896770176922636326149786520750900679891216742420219918850078776440853817744746734957896431175296968256089422357405620810036434699943659749373017049761334228012277475255315672994994212903263013656600958659613282509313135074921074825301432208942099086304402826079966740299544168418485032040924785576232374112597309537934529832181499635224582049494050856722769850751828517323537383827478006992351456816743022583643023191727123893004109856432864546513319513602656879826901900674109853051141149070610030315375436581133770149421891774886208838235376088672242139118963082318737911797286159688604797208316945930750134439756915415597472301034255598919385575111615451372064400921405829851804379359300432900617738798774823283395475408339201121063151735868632145638441800491747617183265314921613994188868922122240184863428876356245335300324117683315952241293140384849807986254668866678900570731327802758434882431903481313429174279204736264229862452653947024529528541991778938384001553185116899742456493251256483392661120117228715801403647358144602818568189367233299697309915674506544623350109707684462882240960985596743579694845952670445293966921613513500110665769619871435433734740759463934387698455890252880849506874195097526227864584569926330726490525564752457674687352128477648146438831652854705421182413842574035822074035381433592450213939143568345027340848600554083954510586046735757278494423124734910078122149886647992669938822016364584572756809839171306036285963541131649840362200228907417782943567225857139030289927379891692874246489202881432873117703470679647745635582766252751949017759609615786029800320935413310816301453319033375917761556424377219278124928640768782898327915765259563356330512213707715289088972755639079338350801943381064768932229744380289960812926957384497805819749960041874810847984947480691563468255695311644605508241946518814932321485386771395115747726697682009681836772281416277283499410570566047824599631648776218282544627544825577826298364895213942574259012113761936322075317815858061797666380427742280175592213576911106743839078700920926069297145496720359819085187331388831474262828643512301402714735429704102544504636813332854508327824369097817541182919534502666833358851480021404907294873489565648758169541697387017024033320707155819121431375671789446878304585925484268314938842628333714405674509369881105012039805909589571692633987511008254500398556476979260375310389168594950929088719565953266860693234338530856310298162902932724405238824879237574803780940041626587916463208258549061132196522697965052479623813037508230111483783977398000801594136073311639571090207971177013616197851243171463727025849591026960934594816296411296841042757816637783463674473360661295841182374093421415903214692956437555419550292088442012089446533949567669333457731479701905457108506540288101761328612558158504599533017750198702612246728305431614468479686557086354902794842541266592548982293720821156111662133026624249167518785356159815476447762336112528923558900509632198181267695250575324202825016650302629826538313692089283042289101907786667949638417021344528469759757281566125320458734863088030285503090054211734726372317213885645748321299467039398628873648413672083834895933099741612005239007154653401844869498775622241325405375292369810106424196758586088528569035632363291174003311582301217165720872982021409798659006868643452633342650076007696410459820642675400290444859632944969203568509952964956366266199972427764769208751492686563387291569057545708570629232172943949257729068860576435774941608095825164672358111747163605135775778947851770797805084664627878560488651725357590662551982110954419269933107777309415373918164293471167927116954049958635920231541232018241553400944900639413383187289930017654466427889944004665298128904956974950659432023938666913167329403611431286869927745286536034656713823552062132814130062318454700344301736896415125958767884634916667536982655953247561749226392144538614936340674539179122247920549610203530400854785560156883747197045945550330248305671194061002021748246576264180760058925785079814831737961361077316031425268902421231419473092936511044401631126797830519138613139595073266626410413169320002466193865704796708884864718631708601748639259573019711350126979245662943348073776053118198519047085201993855375322123846158174838717037686257841634452716809989546290331818260961002474289083502220675397367295484363751024685339838712233347882267118342904191729792237608727372970930909305461225099250849084777937037315916514788445829908139218997738739034982997202014818117687891682376081009756854621233875403865699065093363617359269570953121239477460377969159754944846869482692495453791476770320880930797711526279475630739344370065099573328299876847336530097046154954180308985975461085728752235052754021000408572563154105708587535621187840625158077759017927370311752826117430159525282633597176375175227265666010837657449478018258135757151680841445713511776616288119541272490347337907609396120912766915143807609999708194841579675057407833457949289578779923886274655060674445807509130851432988553602566599765824884565109841685215768324512230556516396914400978582304649092891477940386983912053202972524995724808335176280797384030808540391123778463678646342809606764195572431255495586091422091847849333635442053128118974517928550038172391014518718183668893840278413504501600667239537664261268987194855946473335797057488200749094763518808843974187539698513388964264465769971422246877802341393132857681553489383131911778668370947507733812368136289799877354819223435286968959446835729021580871859058495274229629220980330569531645000204287605180747028052891299891073002413003908985705654796989016102052588244069131183384345179594482851808274059131268974937155461010860295253724997717441562759457843580498633934587400762915871369315417823827016795673553619485265094052382317196599809534137643836173723256868747837261605503708425938094161220469841795720397114819721792328627566620073280446981242187044854526328042368620998613149338124623167503468805417393869123115096658849180512474089481739707024393069401143341178398935216150434522814144519838713442447976338666193655472956657074499482112639707251887095816228954672469706115178182347474216687052550031157026972760201515534139126404336387542422459344592135020289326605913606367961166887447433059696168228036236974327524167059693702391006610926115462376853954342498730680619557424388595606890435783774118288711072142983807134948696390991518219702709452483933623349925707645006304116746163731620617335895856756943902681995338206399141359647216589797065965699106173551778976024596519457627734760315362206900536320228817481114941118353539944731936638181387832170566796687343646315917848724519208214288422445789359564182615164735084263458936979003968546904167832549507191558669119434670485114451209303669592021302293582571407189302134955904517001727908987340576290553014428441434236683625994594766611034824600914673706976152308000082954050525948165788721974925027326776379975453968115529969698999955396853369236582343564631240787263466224129539773045662047830582883729517511865568169872677261967411647641628526087485481083050688406177542288893511602633529610859788075742391852692027755074971862968649995868830569979749534124633574461788531815990571851465037478083727163048698733575118114787364882835587078508593583544680379661546753716371765647868417892188381356502926596963008757378255711859327409511149475420396930720545581543933795027240245818338870419456160404583914983769944586341928893802400266456775352942386686078979640028222920600860338427921520954316160388526214493349186373021524950128155083230571129240328616229806079766034827835813504462484322808421119844027566411583100893673406711152816713023407295464468586855613154155000937363262515026849265218345022742785314240136619119017900666346672192717007344558237462468856676235790075517904592496553709766768444727171224616095345105397416834862094633210759538236928203061587159193166801509576784020731703468376627179647381099672523876880004388195634736340622923713492159101947705839727316306038762010564619474991025393195296367133785963465865680636046448021072899181928183470189429601979290169377186246756155953006236950505194448510149278636061877265623670945728950610288293987124070977217595826665371950087278244923823458861283146020649766946985661894692080437126822160086469949797890735544102589961815580984176579753104546485825975345195532717801448533660140745566320863074050172027107060485262552092551782162824919460667131087879038219015751899029926463600817280104994571469888889174929820383424733860235676668120312956978467481678221271950226816955111113833320986764528564825523628180477892118430824399725434191178050373891856751347990307963943028510632352793178526519009240670339442422769870398931582239005045410833298740393252804512644055937424357036787180561715083572634041572817223558039269259974414350589201247570161599670574365801585934779098449093445932572851419372641765460516484130645328490000394134094371364747819806022088272439025659015113591806869931319916736159401144291764516352174470723259012796801417410424586819692308655166227984754375048576455651206216702932050447090098646649823438736835620494568940631934555048553975202437943834294857602733971486208686367635497832884503698495704069531597425352973388733468277936100015722523861188700255020140331565139412676271288201015974180152588547567838856373335474447878138170025370213677291284660221286607596680936957169995349086459335366061545262620873721387527002574913330438267995789024225326305179297173516892173120237779451075616561925024715339978186222053680060035765581310180663063969010891740602212374791478331972004158823400131008547492113124674906727198921699361061782822020459723182372889998464974049703648795528534270033522944845509648976800549839089774944479227436196841941739037651547656550159955648221105423234107397961668099694803342196561392677404065805621571309245384968792827451260314876261776531719301991423993725267258699002114685706284109773213125361842199744340986984666966226315571208823538467661784085400403114071296283697042930232127067666409461167135648461037276686939330196571731365875246822937163598112154920646870681789829442795225437555696101295894514291120570860977592965113479049405842999916402021501936945326511722167108699278769099447201200605337944282243244991957942850965695862246505587516877720866214990120711018262529361690988522784227799540034789110612670858425046865575805362219001303653892972597189456647287562525521481664627780964674674840460638743242280827969288966635736980914324126422991336811784861489879315705837020088064513303307032951564770230246967757963918312179352659984252395591690781651477514657137284932685548210860920756410203148189261817385533063146269180149464746462130976770363578031652540833518198661879057539475699562728139497835859273389381729745276206307648084118634003958776326612900030243746910553248101841389374737518682736976544582806365253462090635130300653335617980253848342698269259810324270852282690065239398788674548363184054411827135219453080885978579973451587830139417418032379255957160448936279082187446975885061984351736973856225470590875781455768912282974395989936154706899246532065615993525867953658242096917711771852726174596147306877066539008118117482672757049707480952748719430199393705256169624508912712163614442122706098691162477649892842128210025098491999226976521713092673602315951916094441291003214955288218106125301638164048710250198894646491452893823994104810940764846753264785388814298516179350412047312563829114873657200703465554861710172962413912512732904060070782650259884171655369128073589373053017463632675684004613407688667192417530893351624180509466347010488404086977951772839476575855333078817108998524733440121828531808960669954947599597613290647890300425846942848901752715859599129818159786926550302804234690826027070774188262273776296888691407683485383502471568708223406723567062546675295830007050727425005574084632921506248726836601023391401641786304745172596447100848722907207535746871794324100366112699085315247203854543468756201340993542269543512205177493955617929272237144789037436507266177958849644652181957338281507435890633225377209683795218533218349469324485004458101087807695609173489629376282169119009837103184375792930375248792974613121547901023721308062384017557748931982463984437368902236478701154687418444356546624929706780619207181564829250641965716397028300213191055368665796337361166649371323433861957354250322273628743987255005970453498131242589250567648751509026939605258347287874247806571857999410485613141217131387502536332500450627125307779803096882801215410253347706533438541530533051452542452835493294118083753346969004726019965675606964567855116945445194417705555372068191166706017375784675257822293482174434255358704656363242506231938375670113269708720928596891298111298870334090413253293491608829860784350366840856788193116080222125340842120676357120176872579805753974510605863181152613979876416928230947063744645839051312327827836486022258438204180480729114969016704311100546905820679354744818910096191534941495105344258984689094179366813354582111072916082876583752086942680737249857184806343608366445518652691495515615196171259191627698319580918863133133997201243186216885955390401853765180012263732534971986249263724918173367835580154892522827028718718529866965950804291300650056151202265944692800316801708209319391830398217466632650745064938317490462038271186199706226861339697634542153605300762029436217692720826565962672457991889211121103098196225417818922461968252683837162168465588883711960897831297195790124174087868422521793473285024129526012673321889178550705430992018145600138221148253297280311304380627276270522932858103730689808788429579744088425492955675012261829030453674050993598071934773069048465139380836266324581947438930980368748510082265222924223504417176823342110259155708451040945780381979660371624739422679816896852055227114705885483933721857371950234388151193013185310777764750315631229857586955029501149746925392272653722924377512851580965014077228217652821811384858577437904081857346887838352185659568010274532332641917132905350405987563919650927741189927320169951997977928975955276536490821184172756175791247352956258665661844359744600515865268533199392776707624725548823036980638573611938114256028800226042214855598606724733607250940728565146299297774952218306925807806118449899166759466002335464411696323174774634393788239976627284844685834067527236499960430598106713105572977476656538610005440069471473795383403166150499134444507893735771389110834474464812250118345471163170797243847734322626715288749225667569348676262474856374239363589340154509785893554852657312902045416195459726133931532692504188621067728923898349707987522937797589617288731211085189246569842650519802071034910808110571310198640644309962067640599044349394323609116396362619171910964810889677558545185793909493806133658950665919693566196424067078592953589873082747064301576594902370683405532610452234573034993161009532381141302972410508794898409266133473935835833390034150645914940766346875485747828599216502402311461668989710831364504169957748976568304433236260359314285115783378517899232602415523493339851040871057492910672283156539830938435445947074139669605636385901212163714996392801236751579123024707626798435540392688909414785682193098063764965897800171278773527392561524884195232987069431278241161760874541800147421036291012612003786939597444354779841435557221710494397054829653171738985021923369490194413584692530900065455402039723699789579566669396329359723368885803565766445230548004476936787357698005938898544028802983233479927569304281349732769459981419535338382097437460919503155171710841524028159940820079384914093903130089858145922400383590630295742427970275090345533767054134693331867674607797279741824657324551988760293809847933948685177668252305869163799063622429798812990831714508136564128854876829403339046919050880323132866492019120788717711526117846059862386448417693016161701166436344869357106773251315403467145591325206011902131127855110694343270665555146871937957342536725719947215623955198394824474384908305252478183694745400683864518778527678083613893400882091174227260790021690082931272052815031266905848145789028389548216573216049774478130936406177752678832130147900295755746051471876284788689240479011071515880379164514866944150016440704993947201652357287402812050847223967945624227928036060973712665014080888782664755499601483709762102321803516595272408566428583723951418720488136804598348153150930138339868128930403559029525959368503891341705674833672620990661978939965792528308824512894245479490798855037911374860745187776061169528547929589123505917557188983670064683251823956620839368779544741136841569232116889672721457174474210576070926792503024505818119991580190545834543837093577754201387805427119993575014367708809299783726357343764493434141994211160340801030301901143748078872172354160354274291209497650524990236693312541026587225582906829319369611332532048360682631115800541036836875002927493005637964047773950676689798872767822863616207693483361590612990278407581364718199772139917813800769017431667370076882132990538786822210772893423196142585192531897855009417059335706824424685850371956840218600001765156025080999469911014794426525959290825471880776591223832441339098036791961059984591858499124057666170303007287989080507255967898669911651710964219429465813200105926213609666009124635204729426123842230360251948780997423669815565506814890041606408698040133252112321047827966702342314127938898861024572590922994772757045758386202280075340063886796446086692021957208347144399149059695340205868524507793720669545171172241358544882646258713852672344493746674016288707589517158524696052642692552901647613272608985126360906499944893710363101144323327070710233815582524252038983113803389212046319009046789037785933293814285058267067423369462444255111657550287322828016620753216573674344411137245711131362510108198999991667577328478283598870038357109042656766092345919389452534235689431867184849993099747060964452132619246482450326810453911282364833897602830894048638108782427807927837426443511396499290860736569163577932835224523131391982822347337014823063629375301895117083606445818209862583361300992673487876678744990917206964463154469144787533034357304498257490166075175741427955260198028310406919640407189674459607840332449689982558814835555614381280561574829016698740762258044825163700469845617014944275861722651984784827254810318815543165025385015774485684221492553461409198777695718399090032996946289180385644610829044982700866216709559290525029821224425315422059828239865443474331352327656609720906422287370389034144967570921575500596993698830016997878712080035035982370007063638026661486195085978525193301077777542456730737389201837937177879921637101193470476960118858369297900554547324424423407515402636323326700574161161718949452512752053450231637281659213815400361893316486456160676234994393576903988508789842636470418706689928547090001355961610165489500055937576811935945326558851374532283355197207766354859238590383829701560165330907869986342454170890703916196521079660951868779531747521954392499872729186394481764828997640167857012312100592565087951724363176690430264002773483864920038381468814702596894435771555542476059458827985129561025560257214533264559355723799807056943571688036785776254384071970177109947973472338612608990638676493356154561497904346225380714024632333968444000306875695684404414504938523738669735831259821099501940725205253722223180134693107546591838306435889373464256315774259107141265625061640270942968688184387224435407795886790703994779456747841484320821246548263493813435457369379945085356461437970229297439992480114177378423280992642542686746785012844892380868644570779375045551656718347142209284940868456835698651337237950548879267314770412580899686066832465440373442924205546026113264556658124779973668022752339601035002858064257377906576860166848996767142750095747206022212391079120898252157975898147437720346246871738117207790463356525342673983851899550010370591501525440045353174382938818695087054690868731005873464230207169614179760439300229945926108028881072474765364958501076637797296467858978579418193683836434813019437620104114179008260656874793682746381934715890346118921409474497233010933329894754127696468542583961581159662591296767728392260733109203307752013719727079563331767653906397338027177002927200335893750648290757400675555486719579141287814228727801222587559807673227120387880594250104697479104382972144032434800617483104958775663834092468864367936937942164803987384543008029090030927335480837292946270667423250109794940005737484955593772214755635030642805163446352875185893634426383008695693214584656122845862365146853509138405643282352270544800609651049219763619207282675116860206707882940880447044475599745218756561050438448994075856112069836902565490842366223396152099640321214168568176540925702236607559335672588881492510573537571245003222712206459215625161208813766276495572573011743975532333144516624430239041773559335231368922112107666909466559765637433702858383172495634438883750944766455855441229880940242416995194553682336592423686860413397520648428599985480524808752360106028725833389866147517147838800758595533258508596420275932382861013286563539025085812861412258542572748578481384867420284300536406320838459651411478345548813561505178870038299252008227159180563873014502878138545037577749829157823161589035605527424005798774322662365034126761723476763730227542789330710376048696093267075968086539764685710611770479003323104496018475364280697279830771705112244217290276148586316275565606085328935866318816109430247058360992228771343649790219792963849516617297784560583222212380070207244486699571670538099758633730544702520600502412391813137673230577023428937121235333256008330808869497923856479860302196266334357852404292476746480234134991528003132278088534469819858907198065508312348018504337022110529940223354552200941810906995904368097596894646979777357289290619045533442962152913983384414201976358729017932090807446105799406885730088616996051587817077715901071892673757812806743090439358729905673146569172156527530511535479270591491755200059114896980236971709432233574658055964456732816545015415594951890896164432086483762671986097652697969188480549267029410969292671408090370254464310483281951869235721908215651449965820114444503863612036518744426615195265515754415467540005306393035108589895829561377673185446084050466897640495959653336896057757513578470732563033017480749572824918601912325342421140358992334057529805963507241151494184550071730355081501189341620279678961750843397014885890783612004936797734300114748104705162611072873281762230278647341832361043853325657587390680577840338341222600460134346142866678241484489014119986263227256878373272231333969971111832772168868361874484371411414578434577545152415295632958195190075647770961995542594580307679200403529504136872531943631085201733343876513883787253445608018663900486189033944167161158554864027762490748091495483767234514507852780942449583512307820746894299249164333077981217850952946467778510210308829347619524269999014720968830568279840419919605642130120881865300776869096717746786810552873245122234378623440436116535545984549010059681640181584226924740997458613154169272273740665288710083057070694268408851413096820800031227916165700632594521091676869283416529944463884804295852248534194712507992653329787466468548186129349293914671773160163080778628692299957422287785899136125558763806989473474733445312554029043567777026912932272990460549520051932986467778105902979318574248606116409964491966442336853944686292135786484723538955443884680892889241262567164055097868061720314277847127558930067316909749231595720966418104808102265759168602849055311971352959535218501565415577333622200837201969414843618544355514205722251668883395465766326720204362241451027618048954852427996623378990835780683882651305416504290517952204268691845594935946553145502949718110826625538557249628953255006402248975884956494025629850004556995558633814785339292431841389360660534072541248813036570241550853674936774068810360521072332179701331373487088038025889267291799786511170699328321691952287805420790266714172418118946670017980423166591064230512618649978791962083243447390127397551712275741342286470547421227774503873409304604062564863154136302809797893844737225912827630623177240092674684041311291772083644073392958854385197345435187182878001817821910516536431043915553443540970301424850422176560877324459141765664426614695163164311859975073914799837214580046468203551212627980208633171625101242783756032386248801693930324282371386658968802995253068247160883416625735859420802781414521372839008205251185481329352269800983688106014593643446429494970431180297612905393975150037703052961814102624964457388854567335140343736425010467732867213701870726365573725587343684699356460770456304346740267607119721533577421531473429511138752222835824269257131695455510138348571006490286816647791238821122252331055948252234576371248340826286567165903067732828019193324664612735822121879099886545814190271737839060350537468972796057572533577224914301923893059576228665663012020297189413849629160601028114400414483451432664731419558719398630058633050452514530107756281806107665131526511442515758443416610579105546368111233058962370743935067123347262757300435470610667223882655252843407983837139237330587060426061315320875909467199154297075347568786941126157213458433306892820403049806676690945609727535937570938264127436391149607085565837728465605180944109627162387961650003079722443146603550482782313397480197637285221303292546248716593033925189175077853185891572160161183908629851508587784972083820213079323669460336854510750586696093660938468167545362655539105149496461362690977157062198651937222451158595603093760583087842730864372161202063662209565691609186308991555482609797626227192327661529694141697592435803822692016522599649157627857874426757078896548852565430982204533090836683830383558795359046504698826874831135716819521865089492024724721857664358299734834047694348788109747075559013726477043139426761452247663024993833114829635596755892608681358889631782618341228674071139869077231734151941115903367765230199668861245784211303236499696206238235578211724560619664696919619159551175418798805094402397564984944571838140621847440674964697343788348496205274842936716058647523623045723772822954476728375784251288183004547837469703421434055568756368721730919342874568755709949833184744996321917984367075321490580559016179529364449972800948091765298945775752765865276646154072446557672278947133362863098713169551120518649251506288090506911934974785671406187293494637474099678661811679556986499693947715667494354749401307765022134532534822464738889150579714654865761048617867223220105519731302697281078774113206986524017841440073676328735201226706114706284005821434309155961944142956729383136597394949642022844626322122323383429128206119545534478714952482840447902220374953580979998539544561608274350518139723161548800270128545367148170973189515439967508074973985465619733820056430110283418412676344795660408585754094602308448081864991088916059796168849187175632146409811801817489057263524206664363335726205777429650843626243685218472392468082056302606099502301638722356421483092857725228193088373616229161296244605707415458222436673176836403445976689262038881521895749154270506164169575074788559015581234769363512877833333623672691819704350397738746939649263307154062607813136975639336721428263203615486565525780157122936820844580024654614987502838917235507224409866689425405401184618347906211978455592714488602586571107791755867204975960643807339491892502849189097162250849570100062024487178475011949050867871184565027828034466821454652529825440703090929724986761218749841610720553843166554620426423887021523825366864511583937919715707469714623186191933740072043866554366561572214485067499656043034683039508242547233261799369221109825192538996616523021311578341580025564645976380993448782543118247460684944600792750907283862897821519413714935979092158970345002849198587010348805937673052601460705796836998923612788251025282933078230215961497182680552553508127039657933853691519521672273505007306290187623637058895099634838930734108580223564504164410411407262897522181985724404413621061301058239391004108145836177468127851068185571265658611253303749422098044380152106220505986816260553145814486509516609433247104282513621024197266459405914561393469158599771839110971676488656944583051142770222630883442783825541151706105055825233389895247328859948187436150361740083106251768098927499315420564790072630898965051019037921310339686215859122226394382542665748154888832496507331854127427501733884812321729924041397521314999377676782471864079886015468940949380625272124431012773289001052138453117072533313495214057320597722364122937501912133196116314846373033803398886377294211524285629079258040345606759060816828613009890124493568976220308257023566048584970529815296552411018038135151907501607728216816598537095795328196943002509898224603687211505465348326023403480619003952194406935388626120842821876859512239095857770587277576399681694650930257649438241910026150549229887539078542127336730022206440378184766137431394886613672047589074683666245744719187696722504046085716009929968679941741504562344463814682815446962721687310146516052842737031181870187546280074552032836866428404022655222088492752167718588836711516916818038972452029106482029787881759213643224273710629038786901418343869239166123197632513058361855863712632990353884103743390073338991570798463042276262793112046057857169177427642151736337569292127954078647995516095328399964131534480584836784327752146525372242165932795894321874501392977035006622513771578860539974330789284708714228048931097031393141638793720290291864199817081003392388251973024132080056239249349783450195123068636363526167858338471791591596255422899506978293355369106009869866143988445170772409130060067233542211075948100400205620364536578845657055724257955994266288893107895011156373011620902546771635279238016877229265670258338682636352906419738953907438911315132168712967028487428772610119487260577216092670895469130646759880599525996063522682708901587521191875496254895715015609526840585075331603486087891030222260497777751887835841312089590051060207103054988267918547280074650494925493306153553608427310004830949524916759051476160411734706580886361291522534919796547777074628142533154169977271975844681010375541726232191802021054622230134872168812662967505608517231168422550026078417375034866489734932023985205140614270172094469906213354102840438817408664157126619740913072661825124264104978713920153832977318044269220651140626424570392373414285322111831835471000631135850477160549403266793765817478967886094919519517988533776736251129377002665597593615888838808721480669725050309925633560411401753036930119311651543969798890865355057187938663487659214741557181196984708820742836658685377821477248250539269713880112374937704445916100655720021005660538573969231256186172241831012147269977111216453870068758741067809430435548727885048939269605978122404650239132926648659493994336637207558927432097544575426529636974352368124542226637091411934701866972992014207330344311607986477101332473316316962354848168468839521260406230584145222936624155330121498089692024093214477119596896765202827710245421653810248187685405555900473908476946651274457939895046398821155071102718839790170508937548108247718832190477533209717333256969649479171070657378017889248813471993203421850492835453711591299935048268346459542472036304326442797123106325419946957627217391581172418531884917908390644963887230240610378239829599618736892680553333835827945354018402896196358860678599110881486702896627043295751764254009636867237154916601834860519543200471935856907156086744789726714984970381856492867144220288796802710857171038407729017039068339013657571795274448818329713841512847232489082598256976737811693949751847369793317907190976988654428313481782205590832483210041572456104837451763430669860122747791470617266205668825327286053104243644013825523689528216160697892670551536178896892632982412699840551488115800218645897526175195832113587362813690170456742991042006898437230716307596557007654889413620082004114875649665191561509670536892106952244396268907848828851907080543957805465050894194723245552373437864575096970392547251636366262845787627404513193521074045104330757596852547247932188465025112396635831179311414438031214995931350964671142011392918577744608398231587257281085877047437240554055371389359770208462620880186037383962786698823671222127451659891770989103345139929236573213916125030979378985721981657223395193007385083501177164131866780781581694534301723999109700443238469324490221456471979326658922974886158016509299890884559657034550047579187901524769930161803591389539072348156465916558583589420278903867748544908836907113709145533722450344440979124777622525506954571027025245961861767018299420150813854235029631279579731662304532694058189753431452415929804267091813997115451499216725258324564078503692515278714435128857932519488216501180773337168647348349492022149824368963090244053258119860555932105345886472919971983940858665740475796097899296955157290536897528803515257674280916133797189051721988777832383134103623148549655466869151389691427750138974790695984515134591518504656150247882629740134025695490223983320985978022568876746527178968209341844733431807086428424082788005323314657095039301610112437976473955267838913737972849347607948278945905951750301923297695335497633728578703722752434509758558324301169995342245022078588286799296390319204327996486016537456278653714975879092332965160238686540771776643215810113472576950455695667358261282916965239979281911357940641932449860454498756321341709705546986875628073683148574478189027555456364512437005251841630192666891613840857743662833646076512233242466743443954809593546904220985685713214834403393546165793365816236644960991342156971944628531568810207989017274092072192407505601376656164157203428997324857979242823426561392559933352082816441746249433908268764088303023981394601918002477604546459024903477582103439245265238739465879063128384420199036934542931475280167228778947432051285030615238872616606418867847376241624407773878511554966290423792238402443401773363970604274317608885079265063463387720042195711402058621616261872494224347866618135451877941932443122988370725032696940650899437900427469430035802988491294460867267737463197872935470252427195709326119443762782657103347596074694112484015124189821903038940168590608086538515395083203099508268129893638934029425751133047257633927747266613420125218512722581441381111321424372755794704439063903542709685203476105867738287303039407682411808866866481536249296953220534103072293935854390750519663441184105155054839660555914038484551170598998674090317017295189574084375772088457426809150230946917899225700753501953343738774797826351291687667393126151616965332106205143375653348862586327021327209229750804446886278409262657264688630949767005533047316505522605819456860985650121139645206848917637859137379137168819112332240518406229930647375128733456814962566416400529153859000485037576028885662063206234181873378477954106035597001606222445532420864807638904622161187297936056706649064431262526315959028918304956242727487318597542562414388115174962493006796953646456817674847245381027806152472725706830822414414872109068318128058748601036193543161925209998270761679756281712241372459773974156148531531800787629134178159067463511644084849812778472495438187738854752142904764301698489376198619500032660345950329895836990179635619225436316367549176035904563568439302396188327753869439081862506412855119829537469467340899159716532966874760922025781993103190210441764264562109734418198433854543342507733861053322785551491393532742783816906771634910376844108180852705632041819680271661874818788845255906429651389424885827784233881101672361288564060774767367347089359979340806595917974027590952224644517635081983206623087684604985143930314382596871186869002202160616489347878164975678789401412504541243647071029986278974137988764759966012052743469580323734163358858572060155181467843808140320021662991137633585944434494818891801552733146279619874430459570635684611069261626239374875557159642560735268866380168729513607079762400091671844793597133322044469619439517189558630446157301571639957849198856662589744606956044576501859072772067710397653098409910227459618605917814765180852979037240030060539474972063556907458167187856102882359395179435414975882335329769613236976055565923210738641451902619732599595991674250001530096992435754058643184994983409192512111139154619711688330665158027266565286774802089314049193161096841161156813150787119502263679587071402045475201090092281797391974496393305815814766334915044395267102814991263720072536759366727504625261067617476140155361935303991787782638656832774179249940059360570790188083968841937840886639729588892119605743063706523861500291101235008630940717659035586900333894277862582289988601771712620003270255429164418683453915759553379690201205852749562528773781923437011263530384494348594422175790968557918501457645139066895541340298341671007883256352713667194422878260854861193156322720783423027310978034085661471127965582515672019625609093574866352040975925069083663868613164715773082392484822652792613654935031408086629563075207314232414670584932154440319696194994372376809422508901687030622185406634567072551846553338343310747575773021777841944118213003665253265949896711601575782907567282712533833436978184666236605115232793839173593133250770900270002476961279118066392568262542881210840313448943166127008515560296690881674691228428974732587560270199006823241024413881641944514806831587348401867657203615878604107944979062871227338733052434864993485359240948835812046396395850376773114822588405896242910293416309495243771830803070670598238055725993232538076274297539483100343151930668435057697067223958217507629953564205613179058816773681004859134022675189217680650745506675195638560133513323221469765088918939511856050229464335681444241171825925531970530245968900812796650218719096881477585794572246190056836002373098709108878344976358999725412212237518464428011522336240930432692817427429078388914187230132094599545205942439938328176670414661329060591151517649742136511672645666859457728317549045452618158022619616044087778588807305561046263818757707469389986817901482135069340519409158152435662180271960100384212838823922295076352914890255642637041962924868229718637222054378393111060527519320602621110818518771060121603106706421242761218960539968778340438455423515387168843383652397432091248055936135253938943540414884363690655537397936730359156164884536670393399526044942104608745569244910459729844862010961423867552771262992785438556613069862829750729560677018676488430443534334940616435433132323706029009030036899368144766674504773031481381134659252941694123537796451579889919365241365162222691687994971118778723381336084796421397011442277769132024655642183399232751222509270866680571830051723272244510883655430674824040465660383417775331696648039873171652808717779369501895783421755465327365395663368820209452454334620562004064427040507850860150210963871349334958274691689704364735118128933493520806744602829931792996849329875877806980053612259170232494135753831611091095355677908379595407174316011548926955797780129118688676425486038334463846802026774785849525810739346580244858096472304980168594267780092200595031575605232033143063202137077820063320095617943691475572765144453226457950201440250626300239118882067421982214700763605180769877070829265001564093259173964068433313468803348521940070665136540721902965502050392504226088670279215272807832593599748514902904661817766082372592489989100301691893926483627605437250145969727009233095033563834895458344494380315204823125827988512175898066060746176116177502549206553733445755312956707453288824488938018383876627939616127334486843086728869464075884199023120915632359325266756033986496666098582536935254165390002591019443404771021709015005477088067895977600054180941377041405429678900260110871994775415075589149515699472166750315664109649400931735878365503536920625154507526342048592079695111419344072560444004191785322458546433830420437926302596395139581080023629445873197353528518660096308423816005984217426143475247147554182419544861591822958342196772526882706480857398492787599614857667410676867574780817771256146412590908646489150720371689044430431076040804657466639693767709990869337605052101747004842326286989483418956066261624685093607073587060068362017996935827051198141560236481556697876199165219645283950618762197265012798925308174524902969466613520100168935243478505678967478412696905940503573470549263920720874204749333314204206558991050623232173924405352763258381053730416229353343409307425978416937857284534738252161144330704024896348274627464228436795787417081224158965600927705527797453720589020056307694442004154380993801671306307787930100884901147682471956503129507870273919042333058132248714961198449814954633819663874410348824222514631476006159049237686768232385408318228976082409740663814885822980315668915933775757691256044022822836826839628496498721043282632074186743480512469886356829573789267097823849988492507254885470337055907514601892070759442977181667902075975271230715506444047284485563423173496592079920902270478248919183546622634395753060236072721134223807460456994321369285176641735209219247356773068894052033718611004617149764072853118851229472872498035156076477408528002472741524652704053407734563995186556889830952024598191793687237285949168825566817496907346823666191780616150338801624360096254758959131290637279689558410220411299896604687873701534421241041954511764042672605737501190535104104196833152186390485082801317748157181365778199310219910903168117741303086830287230367861378588176965432558521818082859514904690629605563413517986518471858930105478659643278590942351807815838639031573088775101011336474533667353337877965131568136734397840861016090975999572681650782504843723033401882432418837336868303137404087898664687267373904254971562412099820621687488010399471562924599577864209440422132325207494737392021073047613271022143330778760146744996157222974757232758837921768206911014170088839302214454440914531784151657142345133815679332695069900360694101280150473416998598024869767145195163819075838768403468573132409247111724508446632514820038230326636722605578319558019406009464609128801424642017478427915439069367625299406834226308642232555206878514685159903085228720912521406025917551370159826351476211933124918149646318930514886500927285721186966577615438972774739571937283264340469678193235254557740802956397709905823951533088799374705749638612975249978723989336646353463907842155370351998387752262938285290639221758348017168572783445216452069954404933120831787057558899819748626586668296879009897890970764872132933293260454238407504127496488443009916573662021824094188357522904108758145891974121567203636576318883653800156116392663668409191514993690822209962739790659207797436289748488300991296765148567465558869597657916296104785694482753956469361575176661809085308663454038843417545566218103569337817240382835018471801669665125331773474884665238316771074149025243768028572768334683348740685197007435292516340628779937623967731257285271311801713577581489484199544360688369168887136738855294801908967901822232849034343460466548239212327375104562324685691801271770617049971433818784418227533005401371518079950295465064718699538905266609043972592914100003962961341967221870643974581339572284400504543695210226385576679671943954235266651050710019816971555518557349728203361421878613204782982207343025965978947116324235061919078132166615611629225317105096542678796124400730233398490126888994897804987635750075736830852420091436351349445549180007994880257431166054631184933248512301670627003733137702068824524402669982403987324968026585204514691089836991400545071013256131317137093425585790850607595530896253557982983600513700996702882741895595098685197623456819262024098760954937420216770343890465382799182000857920844317152809017853371689413422628743639772709529045428955188269644315044947269724316995305875466535930403854363903631813995826596490923032002072296663280889042262622875281614447475590170956835574138747608778132779347094659391204650740230240743028171535105677395399855875786601673288265709619848557340265101340032907189900787258706785485600577412305531045667191057622796538135583309462569477930680461980379942165030036766373044178638291582662336508611244634774202388581425270696635632485867371376416297796345487153237175512753470094997804635385620891877573826433699566056908988208892088200085041003239819375944188765079381359503590010622927637829096340202293821243125048928526476494559068323556703427621743394132789250249445977222300696364477360523042343112924725433610877092775348968701012837302645481368968299157148094778036781850359127816743743753616654246253997427780835120610573692513120345437163566143961854677755283357856420228187511152029505283010853650556617497744608166145402003052180396172622971699577088777982002363367417565742841222007687857302857232255962252278567442688460781511681145746849048396440358116643432735693465817816909578896395162082432983283845580556525109099900492207217613588680004000208465777769865335130495825277970365538855123583126144737939615606110241549547899247603249833734277879752159200164908220730718825001318272626413056526684033042034474492368981896818262166384399276094986698607538219721024294794119351416888701432392051159896701623941035255055111498976247775544277604273982356057522920906835105450899895828343816565772642275435834066819567698421236101181769290907178520998041907856590062633204946397117784546246946838997926449308056369947500951802384969505509340535784122555571559071446584108648539936909236856480917887300096762531405583331995442331491825060781109169243804992322218673294143339898322311611602988042288871103757253166597649872071073495353589442722066689020414560096976484170840550493601825979940810099885195120084441862353405746548172203399420073226703073179984155074119264951095975633759127681166277470984128489809949262309376139890809347908152793670358594455211712319424453529952614360084468501333278572646224776432789840678733985389568402992211353924393660047694237618935407325798162402274962050794492943004359479691766548616474807883572339015160645250151892687835561076131385744294432561970393178464368997977946050178997941963171263112699673562752918326293503851518281752239098785149180965913951479685699571706182143180000907652389776542531050664729498446695498862782002813375153690133888832628810528150118858898523712923796035552093410284206974931608800738177225676490911368331157360380258633107238969290785424099754098876686966640574221289980270925038079759940032612263776977599369399385967291211731789334313862271474996565736871918843198292191853026572675643426886830511217331336708632242092590074664641269988808265288070512969809272710865109815463242277979353994083848089304494235141908685912708822343539494765340677815717209347599942450299130571101554486338106414327562594909564323751353311257370678459400655399666797003310968493467343028529232869114855304794728617659324172389985008933839844344033378378667125716962110632597583696869969818384930244628098641938933988708253669754486196833966737285819890965513909781314104216475666850574805176903103830678364975272883283835281216981540312826599218946716423406526434624590483244316828264802860063003486352651428080831047865118630037839137037901168749662883074325067077858362915317409741511640793960868989550855117142203098058021819435465302797566785748144476120802389863872184417522435415790207143026950522731188125917330121655671838081644278336666616924292809398498407699455948025526447407018765772550570984447036996995113518784569858839174110705413483557539329801992088060492698697252506218173010975347082052174410400278650530831511988362000474627756362242117547258088096130891522128094329235798634956061362637970950015190243546640420965056194256590006156977282651998755764823035307128819075160300818919204734720421213655550580931842369275131339130853906428462656006636486152122021428218986346716618340259175433245669524984922934785565961627185771161732163760470348679771189324868738659248838186351992993316445484921216818496096896009039920873434524632288431271922032701073342734793379194048106405025112284894524750683613189096863268609906829675426402407022459166173076475640859906186731263365310911102869583292604217197198399102830475620456570542105888607446972336691809187442272582049251849475271970319533289545083054084414549609250255695998889174642647385089684283126876134876804795458093569378613404635239067362266462999727584122089219861664849244567775728206752024574368078818809515881051877774750226353056097225298094509015753075267188735876755722687141203495674521745630166032650539490095365798467622702153310634625937557393053076365085335721735126907829319094357586679398395210938071906785558430738563822409426656060918058739752045265591558114880603367572402418591645112740393755735206011107334326856834612560526433648539275699738763854474058183782955100381368810841171005018418867808300704950692628351264593287973454504923566801762431109457924908986146037471747248405376118329248331254356079262132093564653145897369982605598793997888590768174266765613986819673187943614799044795163013700419314662973357091362292437701422774917651899367364676709312912178351045817804838039743063945482140676023268180711203812504025892570321599515549484368362164184774992826495216639692333028946693862902630257055411456296604922273615460102743606473935881865755614061111735942126040520518807575560389564946828279192126632082905437447041973237473432116259375097041890800130992940356334092591019983253970867766910411618080039631381304333523538711913164255371944255948776591728750920008674553821769825077537478295710842709767507406049269010445179639118446155429378717485509492440749865573767022380652756077937418243308057756373236124494739731429110016478599578685570556726690168946045652463668153388046758157990680167659830864202234048449525411833418783603727433025430025633482597501976669367582648060433160564102850120028125543549766651448419018498557492769349585793143489836783242131974372962016846521894156333960351507058790577945242507017205907251004144078038593754425649472069920332036534852119966774404092709180465055225600095019459001253986408243314421800688693122544424353903456684531305970483982487440412666073499935591864199409482575707226754923447538385502216685404599619408948731218568773604920614821173639114486406649552680216192177875076062748389737147615086699169558500160208648290214891595775468617795172204285281299009359652673234159074435467771941320864539910815618043078477503254958900435361341338455293183271302052688302593098138281926754765495022866399520819859671874251924058717624588292550868304702332965520399460301148877275199349512703685094309241883027272820081880210138152546087600024397933958256496879494507075607478099783507550989314223429700088194802515763293200794475147517141381115379958158673419013892987451997404891409184020493179243979228923513081278746884812396085377695026612482495256441012042814167547163204668190484993385801891746428614374901508129811990967343842643608730152469860230937059954633775602184132051592981257069618309665761377839729837048139420010166922062135185823520831499286939965992447753827937847908920530618841868293638134015214811014656411788990172997778029919799655554094113352288392547158485441936993985541300277736913818072141350570652193688249999131545895836562380168450787726872284647753767839797284188101640958906797692312800933577109687405048726097488899370871716851300174489415383056484460870666634710974575911065776239003517689631983963348536394178293381957108259645366530469364478968303883084845153026483929151323985686319345356813336623612993525511165266458708434925254233452008191109710423493953562335675232243438667832653766695817914552465935640766068060350813150169701186887090423043046966775515397912991738008623419706384381546145213714866187009592427279522197549860512563454856095335404419708133768574334005805091098383344330243742441437374365193949067838410591577545986404870804324823477960686377405140959802732922605458959839714205068099524594820946183900238236947896777511564165572248136304000996747439951968128904321830777577298621908659216157288195534385784993910127559334701220060677514407997417594580336116690956517733874843053582807989916361457233735610764125765704454825937073125400427287690750839786770249508069717181586288841615086137639387524886781705945833401692169946959417593141389793076608294452047874160701846085407136614724608117412722733983150537315403697719616711778416512805170794297936471973631140184493429951451430179405796517854483999231189978609975144876448750627972667937789285255308441601989130048209051363838502844986707722199840855950833964850152503229671040587990272897077581700370729539758844397539260874022176861466624384014221135091597846823419948619804970577912394007230786772669042034467566771108552242499834216116575283718669185158259096114505840025082117988856016188880198552573971005188230787823107885225777187507202784405133573009550321588969551288429322304402844432516786849677718320010500296742863663622191632370434704311148778904431275835340546577569762148051309167476288695049856701768073635956281821459862634088149051192251972371427318072039099933876133067437446807217133704143726219018613817375786258978616931095286203858047769881119880581209628156252461585768701238852126510715446729872739283477911502171233923000935311384751585293954701233663470046701982313825011544575350616617563058560362956900163093860912153407483473247436552793904053777166800615414777866557831880692000977047296800158190223881241691830257938051555078368773318770071918564987393748595258534066988653023546438972261448683503503941288979788047964180193687522338593380485704079356529046817218708885462127390125360143739899061910421669397955043490168070586563525152348557930492033729022259675113930931108522219563609268777494383513741850332248014804695115993684460576599687137584541621647560606385785467905615013890715810352838590355156343958417171316340819541304015923208784762763341774359825231413180501783642640136952143214909147495030668197644024263559757365924544667862641969017662887407019666610275640754788661736969782570982931138202539649155103643387949053721014482017463336986318388465314157755217976216419554613508039018843077640275353546823205839076330562724943442040924317014740413208879802324700472746389997601701553082359397220604333177136903435270734096533757639959446501186549404319471223853657182549502585969593140331354680777530924082198852524976004415978371663119908827957703619884067736322237162177223489285968336831296156233491939578310226150812516068091088825130437618066630063820944707808376069616204661492313900543593539992397934966139115585157994617037205285664106787940711513166004283799794102174402874322687894184320268253412687824348589776479793072133338028573026716463196597589485312666952009017004557780252074243473468038071232246112303181655479939050059794464381965172665439852233823336692583902011157355524180730410766073097324270865643649764238489109830223190979812825018402123270291944464692623823665066866248905896110699396715772353136473353333872748867652348583065293762619845632988066559632130692916361302499169380451283430950394550852855782362758544173694050951967676889752393695149650155142968635435734575017409799428689244284619112755452838384816017656207713958760000649343137628004578472969994068141189932537337542800365473437462720373381274122814267893071739560224240761564619073201008462529041659905550735726419971790726741386349515040593305362411691130229971152001105818656346236405901326421641276521600169975786684730574061245069926377508377825097026008550364853819646644453705957400410817267253985372619306099080009827038728329898285838194138904469077198889965038589602021979445633068933977372398504601742870369205421819789856116718599908618294587331309034703996567998588335933091872857101990175374274472334786252338682609647936015158635226700095596794427701761084340381659455614648408582057262043026269301183795872522215025062014786676770453824422117530535285488520523835167296072935329027512536165960414014993021401317788006574634778058079049762289709352472939445541840534075339706784880825613555309307246275930319139177465505699087528345948681563510851474733008532191789185478570185408918546037365783870132717027700760774152716414549318361619405199183915885647527421553698451617179743374081104280486582771914336984478283300684804507760319495210890826647471615739747941818880573076717057607678558946725831360281941554791032339887426807233477800118170045102300434111900217945624959091803823015759586422373829492044056295336121021077500615053390002612822720335896308521538536470920337421988593368536185531043626875783823036366599368459517978660133677322719706150146822198299448212110193118832956252790169876271461444515604837784833759150967985635264465599379366701563156714746386735839567687440246040533200164945490283345984017911932331139342105653924048767967693894156536248114255703897834494392649468101015905393679014380560884024272120892818525384428737931435422590062646545379036129257783980327697728694111243256039666588950801551023068095187835136311571251378970065607624433750677100923615235443387114819973105456201142477641004999399741542271953144514708205707665534266784262716289797682201426288234457562297528667500948417357750218869495341503307303781760875012224050016313408430334380340675368304498967327193104663665217926300596983141339458973425658495368628275656334338046831979558057959127538270890675233690764442083695199665476397918688169481461119725535805750803952318939964037606070487404064082060483684285513888079004325299131418716105010242191268616884988160899394463190540175729784837520214093331883635008493189777333693437394105854478462364395067361863351466536534275249335784698943309049618481592667466934490922258233540649939564372133509295297708378617917975460906321174338243906496210438643066697334328935159743152950254527870383631340070303060517691998867404748371624815781680061067012276443849513389122909076029486301385704071951459495001306300174687911047486748517807821146464225670008164013080736689420078462642982381146395749400531703439002356084364349731460267348232271851446314723421177586293814660077922568530568263471948062628049055239692734864270246420534400966923741333183424424430154901696407126102617426640670163530577904994153347719892420993654878847281662384588437603652538232051348517299141962877363199873137799375248366096592980745372080627172036086628925809285746078625223803001332095915531430791319505914342836809564350264803723716308322335962158681871891672364238428350585803622158216243783498710373582113523192636730291460249611734965088624855355742056304157158580994166524717183439432287731704527809621565638546952331429666710951542866978802967080023243335264109560348961522272165220960677022983253238550122420614560615340741695828494810258076417504735452057652121425344184400952595998401982707240136929669076735386695645311654312211581768462084216662182659861992489024151373507942678413456288573360437986853329115460769797986549849069667564302994535805571035446004090097804232751807596512531860981280988625922086580379269731403918263913746529050564202064221302308291015408650280524210243644011687773104741328331713131625080463280827644106309755689904066051823948782465917337231545815125411285069319363799410236153829407301842985528193606750174231648797688372808342711904800893292056041793518653040162461829070242839915803790863701943592879037706415963519386368274535529584675705583061013881171764401308571686950342321701738902794118205837078073471121228572963258364842428869872901058735562649906102548718293208515364555989088604238503675182294015157479574183067608334203846086145531593879020604792272609897953175903356425257016081743490423428190614080987133546507622060029218365440214218674927345268810967657056185513492549338453394547914556777106876689314451509629820160752794699905012215149346106512673166896617461747927428477922788293164651855597636860378017862864022577118554966301722842126830047703778558728866024041542687186430526375363607038706599570987855513665465436528960573181211880907188878727795899168304468135091837890502867058117262690672446885980167548444636931816666679142572376404369156474060893621810879600635801757514493325751720295328506348606424500055227053033029983222538562949852108747145022017352599916489552842423877325077332328974688072698014236178609475322579569103457945224109346528074121018330873582572065402768323516775345018553355633004873542823935204389505706030580433936240056062664453462292591542309384888317672829955154785897305369460078458330409728398690187899526994006652823776687159215221918777632051670494265932844474189684501413470045807321457505346210873697342845324349501654637587255127986657938568887330773471227341971956859024588743111140993408189598497749572156188582822824460655155882209330531494757548236324541766710715824275439435773222467627251255695181795338638701039640458589955951522078402293895269062243329408172863473091803979492531677072654870454212533415586691917655935150139067022018297511080718771794304626323195360925876283521845424498325129850800563999979101181269085981437649860430929905288094725707947760097173580004761506199182306522273612915999232444100458974193139405239899712353655928132902173539609339060574669438352867059464276867865714736841168017159114908761740303126306400480613533338273722261884786193611115310849805009227594685893426026101976539154362017469182603264423739071847938356096758286420701574360386644443634690937765746957148357797992714706535299465915612056922324686479351659131743700382302300452488792274761059619410276085257908938016584102527258019329325257963529446972868930304995920109768149691258095945700821379908871842911542809238595440064418943723807358985937798353562389660754666504287491040928394842598030557702015398112210298374489132627069056750116359929610065694543809329094678866884748342044175415975991555131954177594498712312457222435078895767128531797476307868586164133309379562521543286786554054125106627329454970046657617538527189944685909990649998597870346422297905733884545383897307648476349652782762297057287668132284540832965818238122347511213559291145217441453438255787206443267376456323289299885579023844287803838303877234137548942522686284007333659374502039677328581581456438142510881950522923253413900647807498808118276331829185797033609248303994649644250198510784972708087188519064389488726776154323945822727899213793375552002710736046701752359523445268274205342692995530369426556766350438445757848952626815684983539467566085061520463091168908868924594368032975903604739262988367201235559953047693061440119132500560745017370131965256541990709649106370208783842071706031308851458501722474417901291972830935593259952886805168353111895522972206967270734871862616145614253792701138826248395838319613681069740195052312883346335614356346141104914935526030062082439700947067205905777140859367531402471216018395401535909850338330083802966865156338707476952062537434828653406841289483846177004443646825993089376366262518724304876646211853391111065051967161549179315321244378323932302722262066525001457613859294974045927012721702223601701195286683768950167325107243380452494336048300642551390592440951288628024865451912171971513571373276584820405418505931085746150889616624383293399106325911629025811079450287448904754013588546302564302488011206706282344243121211456907780683000861881512060444610652763595738704516801880308925293078481145159728757501433062984145535955275669848634223626159765224750775178549943107248691257656081845290128976281466602021054801550606121461975891866679261729872733766814349333191773718792584378447807227594901798848864848093197141763797450270416131532008937196049786941232532335439113119873794639448007632480231098146739792326326436205639327930672159878950541427641660212031067213830233039217620935758025960572416967592743253198527178968753988226252874824846616588933846762504735182561319541464683990246883968725076628556848515251534289420097551165221589130984436250940501257270502433661386713287433334640038666035414666179656988971696177625283029815351777416348460652701415582195999845219173638223927875617348059769208611685140952115386288561903432659529883360426989431346550968805903711541292218787128770099990571480367079748213285795879087356749398587616739935001029763499828203303845708187582124547142163871325064769606559497885791756175684139416426805550990599498898490599093223044863071027030529006178820547936136620511683474896307042257717726065621420787249948878063004198128546249873990259361063319692534074873509219973317515264743458636315099187542878482880391704341515941156142156246666365869657756608875829922596237275517949743652716901414730869644585650030930203489055434131835035387508188606264447646631116807249554345465462529146886449724319342176728652448965611961238599150814132208071286821505297398169155092165721300026756694652365895576151522657633035445342441968838045706973006888794671960508155852391883409939164025221266727761768562602678206405503045185533888467197127066158408512438936177021204609442779466542746658879183646349658676786067228312829249560046755401201555392683019462830440432530470187292292115178316417383724894286942832850741229758595285287829200707362630525550683026892254493398927890867579374157319451619221326439004475244142528076462104858377160149028256176291995270201683948502241465634446265625788252263941937537779464465945833860822826411865866527766342209964166661326288558142695064794046038514880272597412758849401986604358801087184393430143635977610759877466996312859466052210824880050527736674369850125887187241407075767155564979099041422706605568176655061710438802640584446116745693967630312835618601678836310902999584163971170986790451826711695903945052670328848587366740408940106895161386947661399466335152384780093679528385855240039213149524671532618355767620194410536377068342161892628457871997103702140731299938104608837362997572826197537189072207737718111995477353001595818038290304491254336318236227075685846294056271406280424851529629627375881851598078089210593004910037466187283759889229594657796370563893168816563192679363001154268975907743879254843745905114357630010844549058289950613981714235657935418768468956795515017421057489990177482733867495301838860817686169707370519576357161002608570466278394295883654739682253511276916887097083508170428816583800246613021939223058328956699215032258542487403729245364704577881429362495989775377589952891394670555483751002834642083432770997236552470444825850520706202232189090732045494579946167378485144641901301131041690981141260616470528510758202930808443631609206096907739794813275314627667258829043009833191978479916250637731127270916725911755361824548659818032211975655791426176351591627471829026288648089859950519436798505712654743319380601432544965271534171936850418421494457132110467535779677331938236303182573279939865156632510413396382328728693862463199585565871177983672938591968596215450474562379672630849251873040969321352051175953530684857365727642159344767741972569794085520560413811815408366545125346126680415809085236493167850843195688561691595226404341289726978108807115947114701135697376126349521274003568639316224127081236772621889070482873454460171567394628650314460248001438779809128677982614254510302509070842836768048076348707406572608578420781553565174160208292909825712094097727139939674852989130544755675836241177447327876737339292319348724141279520288944506010617830788083529450922067839347592865984365527018756116326050875539213209084883929841181935519120681469873893876976119640055739996887698195596257189525351936841678583253540520702960565318753135346313142832517462265624344080352053634794725839786427523023753248031202364821370187244562952775507087566357853578763259333322173121634988542671698679341351641469807422718446190262970061110934406626335291800615278302118592349144617351315943941856040424526458413355538863369729149735569083510897063749173874949426281411246077618418560555241586131560983655051935791993931913471966157018477728028959023423773602036598552630323549014832974972988260611918781175292098561479110457277515728633857051264841472698033138589479393224508852502722010509236331004320557130858780203393079881201573969729943468777075795433300611990376819811772661020412692753545499037879152777793738156522814713998691288765475968261496290206265305121714970526649211948523318621827403038056790637161631043932130224364748873153744687640458792687650277539329677690049020070268957968978025091246349703165969633559618386680109466683986249354167169600674907444784395478423663179148924692518730702431834055878202304181604549027338319931352987711648448469298854084159532433388546148361471072027814081826297854949544663566616194920197801973522030120031921956238405594197760997935642966958610495093407477039384894848325954839016706205673294411312248060859657939432436103056451240079315533780918635257119044956526262791073504321960071671928297545160027707795385852246600928793304854020871767012504744098610078119905884448652110713972333983602121644371611829035319436874297403018252491553477653091226937950213760302095428314964526846823208374433757788016237513936832386024582078536926455425521307319074792580191993216499862441156414702779511186377833049077045431758266640683567618296076572964045708647200228468487634748557150524715239915050504440642723418120441218677652138853944908872579862050422344210670142387030685112337066945417749214368605611251665222322515210919473552134654394879355576987719628787364235160624193907450762183632919503647058175617339801515736640028134496018299759048704944937224628457528412450538867122840450271956936032328003848717019507377672801261033332220955136681834796306932327258010200147247816761628272717565393004692356569998050654779209397205584737564672886904711724570946761779058114005059632486493555496756160091832065908476353521297010674274450346086680568208231257300004853054121717873328144215717185356730360372406268928396040372811654903596319754661005628272085621193207807223952673130407542340742887795624089976275615888563564392702401824917020806010866845959299163728992042775925936436668893777120993321786459871621924098333097318575866863059511479739056172453041223434347457420597815326873616478313441519027909770771692476684031711453086044657934985855771333010604965371579883341191496325580149251270740497580334700510099762933495438103286485287910258103122680976259073700727553673932803751075973302190395233690347257159051204069242148167620951482441340287194051692176011458145579937324626243417328526106129461248706115545165305336937973860620166268841256762876771900836483411376497005145957563248087994678063667932900872927824679398836541665576321411637789433070538208341236929101641964161222965654241154361349750423746589965595168086648626986058427968078513957478766318040396342044521645427408288802811152247286635467960669689653999717922751722510851410219101675253104187050367254753357742591423789945157058960212528645163500218932711661233162364847296426983392859054550693533834142517904309849770430840048307353548761470384362823999664234980260185637567707172239434960933130214200655865558535949108702935221704934062458540368217989023720984297396693170343589037965833723750621596187499162439468081212471272833347543815333676838152300756767371496205060821751877522307117493358840314147699966915022680942724796522631259053505642830333385366211127560328561560574000177002687901809678448245083712763800820706676569071697299709521034247762339880322578133278915265211257067103363016227370419170135418004108346608745837729782426803055931794229953598924147130808917198141296782841495129942424161896416807026632369607654551695772197821650452605124184261653681429168523476823321554896323189391796571573053289058264883134959905591122259053701057442458807700399259042601346553750847025385075311118568986288176389518868733635443624591025339942925960397974975245241688500258056905626606268705429318204845612947631231935540311133868400066398439598255444111996475875139355037012951618754258666351582055300789415979128578233076369184720373240112923617100278577294380257000070945036144800861595480527324294309627707825493047441623678262443754885005794054315372087965194974032525255340359720892902068620698929969630469512137285192133718988000065055208307335025374338620018986593996531606097959721511753023505421622029789864729067807699142645639429900886938889598663172456101708837914347671536773034032342103838000385932097954601961404377687628929087842242315294756930749048745028735863002696911637111140672667699022573529578210785893201043383998384245065279758567937639104618984562777959803187991851909655337167825973462455490580394746924393724983731653191819471755925885623773122033819126393370128457598505788098238404858022597224721963124136067883222753394523377304798528629856939969613950114085500603636494808502617774801058960219962647051614353303520016172122120037846101364585176777282758415918045253123708680747837438272506597174696003648638735904083237906851266497649071082906708574965988347045722985738876345821283159612730407590930533010342469978946202352309958094501731677980999227745565606695268709597056489985697331240257774668199569505414593419427474197771437194502392197206506536171095734861027767136442217255218074660130476840929965672307326988266777535743595583135666047884183079608364246018878581900317439418821216979616876875368812392578648932230288102390674874724703570242977878576683890329287039611411457248326628452736660156439195981959381249578084293600136213706341262217107740490337679564943084125802580617000829500737190148063315813310183088861472797291731163294285193985198946286559451419058603693758372028639812768804991602046334603778075243914278857286285493787550977184153104574088201943097416078871421975491315587929512475024878996982648891645939749606373463870516898401465080379113765127007823664423015460566037641470878553826877109382204873471435661676599067227040375992548470854481290720799752295135287914715385505629640378875386636852117409690148107940363512674573115168969775451909995289946120451462777193543446666788109255692759303341055679845555652936175738257319093369291069183163439201780199010844017112531967046157609654378763482326744986152668289297986850456231587229716167992282188681822254714349095568004683019364066491516868978279119626091735882883837601927084256315148518537678387885612961655023413160422736783165390184126856206290908659503388963285808728181165489499707533105746115122952192045924310516523346995751353513066052624811976831505709626020149029096274780631968781834012950895857957832815149228352827268232845907429743106182299750503637836592633513752687394358593727401052386111670356787869361838381541875764752953320523044401786997491098817406664424372161746526588370459549150620889175646099643042837057388655898513562990635823230684997955757652955787215088600539384287605158306860312649076788297097258420724804491614400557317822020600432587916168428456375436539323338865846224014070438155179426779043450799554585681852955651098108681871132911551157839189738458315189945903921930555328328081840448599231002722281073673903598447174090060341212304142989651350587371938553287177178275982052651001771476780409662204552218249479464301954206665568946241136757728913829619059819351111803185128660499256828767416094079467032817174242116396546952732739574786368674107453729955868831612210928802256844403778353163588040174215077611360941581495916292417326835256637698538593364837468217118468593385262867568292471472058422909313691877581294088076053639773416186769023782144227184931646052675476413193142264844657952717413066062334282749569079191502793630761469691369655205384922979490386880025096098770273494824199340137228621954566497206648383492434826350910986017535953623031725237407395468901302545743625471614047823927642806675762403309404761955265795754841609395661195238785656806886245420333582774088850908889991806995732106823515992449696043966186807347850708389455655288317741682851059709959448501005720626357665854015581501816207266176346262220406974960731089302200043864044766029241924202997431750124330639715622135735037590258793020339156481193638409445680223789838919333313138234559930679545515833824054285760952161167194936635786335004071877725838456942448950114086300380264624813613125346637027067856316422165960306534906987948657114020881259528867984845242150379066653924751540649066014168101448482739272461822927300783861152312856664033611185325342382097806515470051372838281550647853374259563525271150875862134636959949609073277742547442967794223582580247195412707606176234026674512779339497753976360350855159309358005661346699913446069699660981988481377388331173789738584132957597551423705014307067293740943319146927234112165223715732515209805625645134018590005263186363120484147223050001005549238407554955165032092863987376058660441341005050968417916400554781492351840817483163048792786226031607658265177546298902655926068611928233056420093307938359918617129542361209701889748974956250678112450360773237870878467811600016227442033558239014385330705952828034714670726936573196024779886772160356746165313063151597653995642855691931749648013426693521068648534203117857267181570804452618636348976463609577329301783530790814675690149743188992600759555929207836885184111527507750650331844108967754866439501488155957942662690250683325059761800970804851371961194658225014338997686705315583399571140974564395783173123764074375431490389051776282347284243799869881011023293375505339455085403829644852985974391278177624575862652876032339444406449016847122000800319076101035548059206509783814424272815145574007641583034397694225582666832518292793749232825719574480119184758818371169785102670883702767622518601400782764744092636667560647644388075180829049085315598140839170628594849734910841931275185788537537954453928521410862968459342190384935297637287959386123095261093518647893367611117125357197324086668109015771554629870203535697627256690612815600560855023726625146081774858999637105175805812739405731815510437429232713621361062243065754073563453390903184739634209274191341991154241971741576117368580471028942540723995393774762475153705715195061250872224811172866670433256882893398586358179773711590233937794753151277641902511909315347051960544526424815660752864321683058297244051421487465754470965278268210516353201423759136915625877621934217477567810530552472829446644643645273332279591679081835735734040921582662489601404250526598582919377942958068464721835666930380660108451409265430068705883736423523494699357150295493301382308464037142703140808783072362229137899394913541381295673420525877728707596869090693785007690177467024087269663159270052493008436865217272386221477846267645828224921620150510785568406858991357380674181194711290570795343008643012846179208182610088134927068653198027699758094543940566694435472695424600256569782841837651980256920666223612864547935982687887295939398875956279605215602428144184437975390478765140970686437744892715030253199032887640569086966740858319778309447284763656025766576899707640924458303534305491657462570697442590917170454205476651488904527723470319539370685788718623130552045176951292406242766380297629509942178595150390955371744278400860675492537336964414724202928254241266935589605163879979969570833691770830237762741253363865221875298140972936062191406180117456262053045542933213141733476625746486946768723306607210288208609896924563684565415243929899406812129838762889760779479686947915355651808296161130317914870015961667278293304821687637998089228438793827622938160207965433112450646365457897899587438887626007760879109165322267075919453448343515176783108813271195514864493589966093939280176488955509057808388833708143537210539973301085570033478872269727742019251995083096975948668178472030636201853009346768314987550268880660302724390783586587610906725953212820945298772598435112280002117261940302092764551703972127606516592265871613950631997926004436282156729405138896473346735078313314552594180632311366099971827157439965097173245924166330267782895180408940140371867194230521345183438945020205794762490049564171609156446516108310553440337803099710236152487671575165173462923908638359464986300126636287888271385696754232873001868731624143709020595274611454462618468113684627366488994007546828516049447808413283008072896264567180378814881849913754018970108780592440515142742909934288336183316509461793848115657124355080341806718124284930362318658464912507339930596392437279623401448917474824121419953257169565075923908782021555110629613913825761905691418651373929649479778347523620773267442677741478651964211254232107485680605313698923966828358016081473322363147115799835823448695681222810817078512636901661001255817815737143661913484149218824514922942911713605573606570591385805149089145242970616573118432306760834310975454823440892916068569526083601743558966339442497687469558841125714861708387839724032247778184804649718004659351618601579125807516057825592118431127612948035537575132057227781520537409926918583729606316961274256427733415456253405067831947335916439299672860775074474284912822417427724961362278821749690291511589038191301820251589320685866682875742209535782289522394502622403596851443052924704505486713725317849273746660969282585484807237071883353074121096638842362491739153897053671919205417357250429001272077501144340127020561481948726897339281619860411071327127129492996513027846582903825413431498956847852107171963322839984723758076185613063270588758573035387413463940617316555449162022116090166651280259661067846957288840598215552720896523838303307279638665616118241330686932621160727435540566385491045570975481683564278541233070278366566914310236857810859699271332195300348894811859021780068355823758371302430513220241345143825498235695180581581414190269480734910093062497425954313862092382222606832400469216269284124130883038112196891111601617673859166253445742153860665941868645851220867743668495478265512667365936217809782799690188848117368607743492929449538532758297869697259295475583930007313741264672354684064054263411656397608977924194163436100912403952976267319601526571789639662498865438016563215585812964706877954289422358797154396297932301847743104827491690884992577090749387666331838923747934390883974234714475792735971426449907695586440771789803387967013326110039248041457773156582739388590178903167221756787269314532231255107495697423161864011999817251597026278172495251319212201590295186084706864746780530810754349630790085675980978421401512325049928067805999425889298887804383130597128528969101813900827158581948136669338555918647395421233981215946417801405859542205182414823492932624103021995634796670512950976290352285563125631621267590488741153501721797074379630723832790238759837740281680094891259594581384082396365107136031816746766168687992185862808516301607505057060556175312229975618288559617887425621712970371435893364649585116446868929790940079987799601058845720785416094523452752734172695924425778676422551471562382284706266745680248488176153207247331899536329692656018441554408378605912517381837287985523796780446422498795912615086426813636173417210955785030843211172190240510864387659334461116974888851853127040923723723872019213577037032493699236123413801818486628398432393197683607912140472035988380515501018370268090766696550662139443284001897200114685934373898024630616681813094785577230484332879665550785881785132518004133402483208896908444283468416232833993932385286428408800305309435644394298515192603810805484633385172791849986826649732019336229102527817780016678998297543448143524247408454759198290394959534848604587641743264547704040127359251015470527611371456650212137733083373679944390939255274838647959585473885847882153688710021258121248958039572041125744426852617313214202473109015882724269654364436082261743547458310685715419697682372098925811454546644555326306520685802161069468820518696603118021415092007906082446127014419602629718241908702754431260475071615226267705016525514885933423280009727063530709113516948288884862578378859733963087091269164465492001183443554240669717103332760474401239788279294028451847894403691602987424116325561409747405795169538771083254825074946208779292384868426841883307749600815988356371081110437161008560081233356386687880747142330232333175497546311875267177629986606146306152529603007452905203067584590201291894781383842934465164725831079048204266711857418007519215114071283087522417445054454014745446528863764151286598379252816594827464913453574917618170577039903513592571047731159960289138008243104751502052276046833085987532498377857660135464058553712251440410742038617313462625559326810702745001707002497529953258224476917010394508806396355033832235721302156229244924301525890387918344505745137390659838924991362726496726049752854732472060429490673927256334217375552412713189014894742975721650260033536293860196856725468639945180343936670083502962638579122425622203105889770019413823414297322430063809519979042412119418893462433792363764415602876737118481673587824286333450328425426077771287236942471686603773437231213564913843349279687917889974559281399893863711502482247759688658577327866937100218467004400676084625380673855948598620317439812291363555295671131570571226052829656523112965933737595143600183077028584524990967264748922121591584964185608178272943672279518575929080510465205581425447372692351701389657232417748441500501227397183256272336632134070556080674467854646651395686075435006675157162879095852737036422821634677586449149252951248861333345623352515768222689947188000244013075182443269588020342243053096595027758862586202762856139244309357770314785273709840779169497250834276845165052831290869650560231334429882162950903235827762624494881803702565021536308667144803935101281322533937984742026689464721286765507543658426061135957215033438263243791509410751920617445230495239463752784881103866459283341699733809966809207040668062816896471154589209646440006792863646201236778192469098456219719318280690374117307311824240630484585074781460788281198959501142807152817553799500395547182917703350037401991239492507040827391293344149265594454597604517883762447844605518829084355917252846685710351139760285044358216349480417419232374035328429916069128825222794781199341958437132179686732456368151521689636924830593173752348689693529176454418416949923569050557899727601619002911310240629186612794298519358382503649746277587759340904730772009074328550043636203971837060409887570062312142197380851769643927133612616190614126140094807112332553734426469899055511162261541325645279139999842150382376828754664024113853029913675227443965312568671908103877570035536650072922594078152806462914195658661877084240756739448659411321831624755097139658918799415703526067680599134493475269885199340705674801792420455540156526731690577711512865660490764356500374809180024713666396826862604004669850331938978229423907052763877689140962055570159034555991805418636572233010284536215451500894264849498268121517686014584826501702392263996565974462920667189639655515281601673991607306583641934032513059777233317155993938572389647566287217903224826842879355726933950069376136704898054917264037026253265998629256481984285610790244034049318182915946897303152724550858334316128993832529073627306921145486262942883282379833017189675497164158149037150550169738506197304165625985838201053107160729855643364887585695568453289352840075377474133117047597642634951204935405395980524762223265414408366923901242905864216047665899962641796071408928602070273762471767203419857648657282914837753110038816522008871470052164964022238140460621229692719725018953228456297066476437831063964906748719854697956746359393632449283602167959026782161233549643999383177551825063024992568040673548676272795611219273147695231076677780058638629317779883669638757248912510700242945535630520643545113754819641139749497943830369615690412574001398785693599323244749669627417421221569832929269250648152852502993713881002783412310971502919071255460202369103387527555645566941971668564140487742059608006285986988018277175074350811825979726497710571625745133788396351467515438787130925162054791365833774139843077158770829131780399202379564316002388093110980346869360206202741333993212691838730374475610967819577868178216517141383250304064372454654303525476690173392677699831527140213179563313701318390304287678513503907380095417584883098242518906891083574377890909277182919847330774563866409192500940358181359070822366194406426998997371734349350430489492723974698686036854572915887826826629174855212490615614225074396804250587564422815044848747446132277874815854802172383521522887887376528374154787826253699402937570465558927752637398045814156760929320068689567541531002336655031587353840941482677814092392730537748035470976096668428521489592711378627320864407441032005320418662840577423364517416723338813669220324589535323350901835259603550283147981560682476433821167194718330596739288108450033015478474009120920258501903337445057362470244223363139261052107782913093880451430874374570612652824898572811358949796845673678906864467315382528268017425856881077605941392920531949483405394099459042641793784978739477244555266569743965593509802259463780317124396022076586004952618917379771545729641402243641901047906149318203139790239090375962139636485465861256993600287348510490994536323057348819591325618435141629017965340695109744029162448138066606873485105729526934030433594851649978262484934471701849121501958712459276228178964597949730523288282917123313715992569009644468804470476172707121056107994933959950957881621871952999483751584793035259123980295116564809023662099106602811688817282191852659813324400774966358588940638972909506303107844766486973140028131174303238082048648839539270239469768846426727828377726337929550412353455256570685360343737690438461069213324119669028744571537805523064605345118703148220981857027381672278800229541373463918880978877489679532103835251292311600994945803194038077495117344503149815493421668506487913713513589090593570402889084615946128932952189266941381767234202960466257936463922367651483981456110797887990461269663845594401006042374329882573541746784135085186093765260062898212677872215314664486137610138107154615600691890628953977917735035029520270041150319377803880048044769003720430516021091174756777044964901505098733926029772161631556215495532088098268057234508281988865309897354030453661867776400263616675796472660179781936570753338640822192857550231305947567315348863423890365226637958873704849037435352610763730306386432191545030175167701915279043781621524524925156866515819241087217161247438166020724392068043508142846258930935226084161726266316393251165025445723355057553379748029625141635545212724098297526145900223206326145461682866464024462338455121040552124732357702209922922289568211860081056224569467902046498372770346240536512809557372174092943539981649387482485873691272356918179627879875029472130020599051151797209188869760249234966685865364523279596422458568243307944052603808690775352824688361756125987894322530647434212722795237386161709388927809518237539856723588614267276106016348675718667781784765001361813637491671269638361785862897785381294468196172387465305608569093142879428468555459351142218876320932595720150026748040656404227841690248363779013493872503439534444359156185821477476042337333771456526962973556851581998162866644131800431075424648164237896870853802881016962967991137447168652593714430062907718521102666230236404137854999227479839298254002979703538239906164300771603479113146685028305642244494323170169131424147316033906688985843320550622656859288161177432658300283323285322274845749508015834236125189851441038739736480640302986351546138302008473635588190871106447084189839670588892654912439394672560134420251440693687349021948727889264831003528770097979066343469357325159705143706627747754777159072486242584367846477534325285209620300625130810128228673760199986739847185386263473900172637679271971394242822015674477169909345031196259009081584119807241564944781784157451957019253160105601921112842739972089444485552981616124533268294811662302221579968161812494640167502249187795858692653443770338600038621801866900035471504210353935560491402984737384787106735382984946868667979866901330134777554711101497045015418234549988240586122874378800200892765946026653499123032443812585855401184616093267159806915436367195060107542510901302497319564712758256468854683042610875515612827495469246348687056420488060242122247638946851611267568159507977307580778874269044889862873634552332175763203468153825354902471079164178434456054014872807261546545868527341067969670380263059847559363499406151979001933288431018322490005083354924517074141260882343743636839623717560169943837757386786606827395324706310168095134988445083867628711023911658588597084976012715416028870514993978872313627328246317624916034206028109497479864191427008838488144316296004007349323492049156142253515325283020330916937960198710528713383812834789695591213333795613741851963194982282568600458993766330208940444597188261769606624583391260680472090080782287501326232178423498316929818344809554344801897860428107080926693941728396877368135769595564517431296735740435116221158804415034251756924638941501606049634903500015083553289229241266871787294659161128288179521948771083432901768289728978905178143612529067753652935375187680006554138232592987119017704674018935502054169332897302107813077778095534071145455971843100252048402010745453242488676995792134236302172968962624416748569669059904125766506493712175989225381165142683929279997410145727860569113462664805620481414324779837758577497871184767171035414630168160625259793565717160966174005080587839932679262097812947684219402733583511269665692841934243466025811918275189880978473594951285729804534706433420274281478678641425366323893422670388516097659362620253849283821667719157573498283478103119505691396435783540272509483142897616850962335463465663090895863402399479600311998654596776232070989418384787145351715154416343776539315082320662922246782102698909961697084528273366190467852017899234204047864554519205065119600190160272617636201595848842850287026742595682235592474363951158625910509827447384025174803370298100614366741693773973086724827823137492006545541108225897598420059315201433422444262662791876060082618118163824230333670239928198403234190060595790795926875380762203202198680607152035401483483393611477613508321157609346713005548875721178259298572758639452341742083023460446250337944085973893266713322390285569107876491742842598951568885761776844831076537214111858958441495826926398898922289092747090070424514794503148865120040219914446237078886716731960596773525302264669850256428089668485880734311098884341963937753076521243592692316668580531389423229520475210812322753937716849973470754506124886008645660508215188554480626705693861904798102486148222929494879210283777221959140932218517432967540392542453763990019891770435962548920497059789754216002347312629927831101204154198658213205763751498180445728458680855609191400826564109259309736887661546875719563398036858385567847403909833014869491355633504969002180653212906077970319459959691277074980053514802993962200992292197474501467977765941226957206168923304908497244620198064653859351166214082677622538294170322150305698137920030889735232977097521278794676807703726742399853476330241593413781353731579108575803405005844820222253464472038239403788919242022072090429133406695876382583970679883605917269708067216543724359712652034295816191572187826048459101624800521801930675113292917302028796391255067234675751237681561809766619417147753087090027088318903194609646964970453970830512671244917513354694406319394950249837868600136726597902068622315172669726067199152108461090864310558181032455340923611094645675378590590493514420262112470969435577748239856727188577752799781788994568783554105168113953750092240292277672499672357848350130640341241476797364101288068266298359236277386558412389620500215248237885676336680648215660031864021823767116808348548357137646903514315359364010668164590891711736969301128788478050328095408145178482220130071307338703563089092423553070531534010679658738969053547680508095450369219975423315184522507594374377628969883810128640566677178181024727787829682066923257125277364764004440863665132165977642859227338647968610169713128914434392228538336660529200891938851607195445615009978141218883625815512511446526199365388820659556394928970205776369595785489328243677440917892499583278306955502104271848673370739804799299167380626386248214488008368451076281667946530645562005686114313195046831294949084441433884356418106558751971025301974857799481104390444194650162270652535668925075938603012556516172965463998853543287185420987349782840685421222726872956720489785818920660146025125230378194023085994633963973701003865376095055979844481296329532860095034767906170846451097219109710142291713323504302022262572421939227297626867612018284077275363012461840068008950893337087555691946043604721018371215391188416564697415359931417111800947270102642415074089154589496199324371488517256519446444941077861369356423625078268930041163541561573964985470545442695236826379500541573521503225729821904785763098346788158192976307324259940436969954733108473485792534424792858702635771381648401398068429355270821584340029191021112991387416135336630262293430611812014347858939892582467168059290425873439552864018211792977257765839552502635277000179391235151035490595990312408505156621643484946001660199886759259758716250432860177167658206542022424801542993013531646613035071589713651011120681467836888023198193300018878378491982097532004082723938074717473164713260140898537164324918003810551068219771134731744999159723588938043958331411669744182260815963409226809264753587133105706941583264723474014530829194646560881340577705024653454214923139234426894795215779810588345573311866583685399276983205363046718464111352054105183578811109171134219092960243689511517542145762585900955084999503859553092664433434632256953102541359046657689101521102921264082097487240791507776638101222844874589620376285353675232260345046537583155449358971771278858821934920806859329560891298330024891759879884243180705638398241443747254549476447376654714730878096108144851158187078789736698715829605271303491419656146603512050274030709594794630586628611202966767763838497668262517537255159300636805882662290498294115150752000763938496212014618786901624505543361843331553268974016240241480849602390931652322930626976081355277146323757727275275923355381527751995900337003478936002732120513326346188194182535518611027220884130625634324412330484712874777961439463187533716486327354649078629335138492616097630310923437490284866111572932868679512183049227986009462692360460541585875064183970657108389745973517642771655955865879939504294118694308127117730156739239927573044118198433832852155852186423219674724839105408009648180519702600601287480918047569446211455249681417162174933290115846211180522733519556874545305986523022353641688358615698375465697226493123311527138811687885906687574298018606216906074522492007441834801645216382631366546149092700164878515549811009491673226403699808260020256381236986465312412024597226544371429311339049080329605991394833348827212088132618445333307802896004170141082916965292175968540320232464262067158704499290775151271308683287876342182624021065375160217210542689496992015412613142590152960940094043775767741912457806321198703538831625300659517703220925439583120469839621260234555270523726616613738105600292445594934366605670660586428176707023776812610707594329637877852622961638605916551185625852904512087574616844494112756000035575578859424719368030659334066784012624490448164656736467584892310338682143786602573630764087381545633645276627532744903198466462438929865115801412074193368487744135536286607732537825352403555948597583910355886130284033925046544857379101077715472543645609922235075774417906162097456275011967510129824092247310919706111062676232454764474851566968269177014301045738698927740567662500398801028066399162557718113709554927368749899544050022420537818864717174293241475678639650541172310366252434193610792503763307969938950637341186270424797739936110168671017368457864274138821577283369860830718251195133552403080659272259255803778877132250711056919777424891204363626502181256310018895475212851537056341656303487569327431685770356053936681665474896948500515133262938382775213770234854443900622521616431315868155974150301072898025623569301048113502762913594969301512841194616057893764797242638561402810747098239109399932621027993149300378498068944445645881281032179795034073161263334450115924118073455108372004400819194537650467152467310973778598445992634997906422615074935380870537716049806476794851872510274623274797591056800726641433530415030067302136965671708162034324554917314292991389577794309605921043693149899494905620801796764205336751034548072980768799897440445057331521097132697066521474500185174295485226924483387682387006756518721910331285543879686882227108971361683565215895895485260404581384890902963415011919543006537221532965731002130800541143317114275864829804413697107417810487895340224207057818389394107597621967876317190777620505175044372508797636240929199969250139735248612296463419181530716219873109395146556543977749155664502611385270498253245545138629601851958585956271057364934736179737367182721893548224992158656089041220565966507190314084042566320649022514674267443558322005285603681501468631825775303703223667620078526082021637925886888476530886364162836733267478815763765129226397331725569075333573790801185674662927173288496842565371603492875556988221972473770115296450965529703307863330438379448557477355650154264061137503761007950007630691319439913900938102280747612302304106141050283643683769308863958786684726757406784961172392931693086755102725487823967423301930968493789885354566082970071295191040343897434419658193498273520866006833570529973010131461865954470400473361344127530112702860350996414308697765584426061763893774369746400230231081746331355424211700423719166258186881424296155945096294762081482282425323376251848544290686915410100819681491827383833707511670688768396780646089372709177657048392166018716035672789548966600314440627879264069732099963517954707684887080102325306770751652037871010900788103178339262705282729068702711575116032465717712673119522134037906864378825432287204086708397875022320857685806792063081692027168400740429209450862955875206962960063747240040577818804828756995447842285469945146397415297464928536219841829630790860940857248497710746650840367517410042815157032301846252447331373789134856648464550631541403021411718115899571921466796529009434148745214955749443517218940239158949028932045093317371876514564279752758711439841748661134903712176605825293930272515616689017495187559292555560340608640010739549714012093427185340561817383058187301051318930298392251302163307835609716152002291152227616048427430310952927218500953074150297046792306958297970498250040224679155314519187387864589030304563422290254628083032192788250673783123742878355766263707942449150732792053471929301892526684249054802325764614943396191524135436773435482603429581813087280856715780012331155876480958883438747872013157308584725888420282220840832099102485449629752032770179462197902519811524580753438737207060639072749654489407058776899902728294718453664826351503400177362511556093447413163986303335387173838858517082914387870068885254937885156729654216263255426069959581734517525280485668215638718739684953508646834805932531911860304535655618016763347498244312141683841114044276487217018771234787252042154187516175388166542033969052178409948009695430550888364965263055730344882285134138170972175679067155909114485279139813714063082809011378355260276815230676515316107432328525652333017328062112300441818604652577712376989394357957030087630953354807416301922954929602280659865055923303419123128857667719529813020166752977435872989911699783549405779942298337173713613799084559961291426382489012423485740308474993980709252867783153494845518502119335417091380522653963931562529664328212864551154372731592176775104418107480950614408174098265265115458503449719729645574587228689343586673992028158800007888682977741770964224025553229526157505074263795407646024519462225525172666852455329475746964162727097448934175098337532512242146375176133740633308539825345630973155911791143104038321441923381550049703291370968497839616054154595233570715883756112082668961224316753774749093757431184713204838991794537057859098961734196016210946519334554316202695762909478886009762781578919207953764781664175252277280977151196064462134941730043881704455219282518995857594865050517638445623968816644796218365185860931333212138608141524300358810663520948016079335921393665476775109464822126795914167168325232812131796691678128820200612291940881069037614845641260706804674901997640325560134611219208803467332236339039302759081361867489763986824504278925548059496856215810295800011571041833501318229469332995984017766209084410209086159212948103388577840135076338330778698034205701439622534512084186130918827630252433252045686750370603068048313858310573663052108471291206267056669469627123273586118806593782195078382648808684555750993027065228970993644364582303005306297822402276152476920881507412468186232262031206685934617120377342489630676024555237473959427237900040744109541078028364574028760206449279760222829176773924317737227487916483625193086536469600516593206703251928863433831019981872340819421377099844226816292939843431703693028361488360220040561502885254701145771629967057374927661937566678786812662960894292284049494989684324486422570423607366078942375027529576945729821743013035874270665196487001560373948947546202797436263907634622250907937972458327339510276263954380436112684056922847728361063995821540278474896048754193727536072289124252321076539951510473536072863078815519932972125500996830735570256930365512754369841377201711635558611342756512459847507679492411923349111105941900497210940024576158172545327947361216359686890617271517904734620026144556542562645679507780691753482002694877431776085022736007508865785505891768761934948506069552961994390473078899031131262122958146771215313061339351635616155460927706618782808432186566522884395938365568144112723875102103279108077952873619261544670020727100208900132570194413294829930449847107724776450727354534630229861838566992550307632849958225887088088507265124950313111367707379281536124138066050654495974498396565940328613497681575057603549740632935036072609570659273036070931716126745805640480964164384235724455535382511152624750478165423792244408265097040688615940958163308374212228567622513765899884014816455212164453472919579235517801801351857462616643997061275250219849322304550415722336729108939262723101842068389692484654747716649173642938777592457210049301555444380819298339835167725323924237404615680022089144629243424513109747383704878396617034045781665373905509398483078453797348239711687657937011007035717713371136720837527674342065607936847996865567702004913543110921108968801914533331058282250671511622474062459520973998427774215314672737967146244138019873627923534450209052755317236535204256419061513574255532141839939114069681399737531326904088581451277281448318980567429596778597957964826076205759415352891648473753644683774673659206794475650007759691209431935679856709199708678346384999302269614307669206927120599726405550094600448981858642283026051530190213480537435511594559940985462395348074081941983813563342518014727371962502627026171457573533270929387343536867182606392150766928435246394463780588959667823290731761379764282457355206896428695766519790603966670058898022486284799433149000253076054043762309929014417758585538133962045064635489812305063565061825936419655885724977048051110842519184002810803422350939908794732199539782623255483651955065951487145860831873477947522450070862964129424498317133132804553718045775196772143656371457626031208484664254484289047831503424497379434967434085427471294756364687284402622728911231563104471264232874733815732295009741681238186930078913839370601492956781267215685932195363057309178425973119847820591891831985376523575985169671053248619044850816868442308253135776882890954648946537513063337014571127411164944950406164719483667507119897887375658752334562047972287968050023950822951319157166109034012097548740705389448874568307642030066446300521464995583873978009285109636311386258988568966529387151832829669539770491371390383075237131493239011564350099672197223874534856018695752831967760712171443405453921772828321459292929389831211391719432363728519521381954559992274935451219067503046925565994943802617062355287932969968393910421673808224346434687178364800932690400802176455014732532825947712095433196211653971122859276743620592347585566656607587289113551239414980107622988592369058838548270523590770761081123544993063051622390085955556683026574338093901445930020823320056326913752137927340956674410325221349640882836979918773126108462519862773965904387563919366068800241646791537877078207986504739876183783731286181037993643427324499474934315279852688857561531563101574016374080519871943565608959539688021033812559138964330618723596739684977071524147315582683838556563363980565750485320330250317178299188218522589274464838113149696376855949102924199735429032221297432060666662552484104862966397097957198802523948540272281379945892439951255193427278203653746104281241851146039880064951767594222217272830015510289738506771685365610299696949781521488966134023728767771229348891392733900858627092044700591048653337641966873030940513373721578572424915311298564615346475409160064883656816095560898807215943703613762701166296113676783271543083572160522164466906499783919561029434431042222738621520057600778066951515949910730563629419547783845292782820340037651277085322663230457320135031270224567315191680594070812161882406316597337295310559148955323420320175656732945116038201377363555399430492658267558199761407596714164358901926285519466682594221447895354909757488191658846366445583525984202710662765142699476670218749348860034090764970908791130664380380656521700800777213216778551445672816388869988781616461822557764294177087074896355137436734063190613128390137040831301392264314894696108005039530861243413688624313028781115089775820871351861199048922265584006693446794254712608529014895107175142985627451789472405353741017841352749078127313566284172748261986018191377875849769715355101710838876459964933036909178114148788738358160254971031809004201030755742297203347173515755372615463479338134654647062597681704783515255392529877601463423434533334782614188929172680426698757762495364663243736616132860858386506799510421956786916947540308048703275228245753782068458189124082922400777720587268912493709640770089141096235751387906686704513167964369285771046211726016986406237755871104378226287589507795543645156465737028348921651932950797272480343048453158949067238536719719880303624894110646386037504031207486749762304971124095046777137976574483582411682083686938148261773195788439649566354592776101178120561955840731879872285622082248880784505841811601765824151458881463167947915075637404879035299516383023309151497814435845455885152159131028287650639857330132738949121992037862379938266361343434342204182013743786632242123260837534898158764113168179512938003768607796756048644437081026034728983689937162495259451046688534787585853695030482536958844640429513670683670944609470004919611459180567325503670054185744197869116846009442283035139490821616992294888653225360470439953838173820419356356215213721784647147131348854248869901652585582708540816770415506680026730037769498145579036927932508247779651251118809036422470410057926140483712403931138876189500716358801779194938508485373220662759048458286695143821311208345208482413335476254634186607063748629262760106971663836006210138808138231497129739583573206247200034541500878691167843878615555520393723330436480254350338963814855359396530022733606875327463057322387765564456986017842807810968957964245501619487032597277213987479072865599331769719731726875408943260509389193446608985946537807673370655149658461737744190464879522454912558973736272372295388786352356704835091855088724082287622093007574628604999796933809514570972094636779142846229686986965766533201237851392693644762832004607069659113723774638109439442749082324374492057402233594692111478047148377455723553280057704068496003283180282943304027678763720853543230820194110065099648396137856475954013769566533479797891328507529326241543834420510200592302085642047260596819109915066681981045185266397340860121777636974731448362742394875108969277282543042934121588718527507767688365623522530070867106558726629874965073151968772773620115173170380861893965739991037009210796765580151250514640357700298135795789496807604752395420083949410659230525158417581572740421472613317759717153826126086152189711805614356841314472660859177574924165457770382376464100404101946537848295509468904272308069548429835545931453652864030262772544869244310423939078909490560766466012928250059983295677625984354631713655444919245987966871821738472173588618948018800795390368956987595600236737986185994276585992278164225803327797594971536663510805307416947045345349852672021649083932219868083465914179046401269383498955963286773490436599546771465946674797361810964897510391318077531880311832490156985344685726704314785509520344210476410417458144810525615367178331952067824944632143109211820510228867464220450686224547021715128244468957231447257489078358936697122841355317393843140360197427383029146368219259304277818613233367756863908395687696666246190182434484351877395140618819051467206307310171792271542294824751870528485006241226119187608993211946832584932437861489536533948320576392031968565355339988421487961494286551603558199263920992911484320721140516200816580357907308011949295035717386724759625817080484978935395617281550535497637795189548124861213237647785454803371329788981498922359990106623458532242235035776423583564639977822151011116100173948978807904402856199217835278762317803936138313318705149069530472196959698535537293139066517708159260153833514420478982309698415833827312784533541523189807042088254005955753475671558364008436139324892779776302697845822244734373430317085489254750570374884635085662607209234119612613209905239673621141832596661876642267089248535289081538197673856682631400273289779912234978989902977900805228935360269946572828978549517657759559778559997560920790583537186812052402963318431832835734805133445714721861773105299596708977838204086123249998527976045255346446734133173846724980080925315770472231049669703193942379207667271282530130117434048683245591318309757523953182919828701209671055346753111699547145222268972888864842462615375413719497788525072013685536078051084937499171654075209775426732321591540720602270172501617682299074869250375205602549677868164506200832964000400473228147841102926438661995242798269841795021771570081481104672682764095044209853052642519857167286819445878612075953307601727515325248683580488524735668178607830387257485111224780511224930708995807831723214787792862146070237897238414866103869718488691478260517220445722402994781406589333705162528891849104509463755849760475201002040805468788078054329901555629611289599236550478218846226649128830295992714094753969169897756982768983782808319784055184238434825414383560369792164473281649427145848808899005450349009403480087728112499129369637555003791089002656629811054539075282454296122552531871152787195595767210797362688508555756210806036136985547655379268513750742251621438513984259761927686947108480495227435266356727117368184475043112533705935539306645583247267553968234032558810812903610671056865384052110981295118928683402519235512363448563598012422819211390731010113787504792967448514483173573306184119029011953465943698737017031958224412838862509806414698020209417111439119388351621659898580204971740080524153171405455235981641664761571294946464154419223770702067438261956199553731556544671308946369704757322226780836895421153616811479802485502376358892557454065759898481106558671532407019016172001752769933827482610532257463782662970096475462860065845189944050343007131142266830747209969790901036093716751111949677643592540914295819597057070737389796438873757824712003466118238749177054034075892578467032814425384824428962207769374867512058258849527180766123700187722099469901360770911779372168911435936354434417996888690192189562157242703653216046311199683375675440247539946175779099656165173155023668394159861559113095772160204486143201977693690958935019101275812042491595808413045757895852893383577515030623663762192461516843108531811305535905368551625503411888588249109002525040631373742063736536039416913468646391926842753715143370197571313867417195846767749533364842615093168948370200782470243329732221741473902238177726349028632028139761898421665901968105960391140127084675251931543281386750335057967103459565808563921808617728525018776947441735334254481464617122350649690588304501658995235165918834266089181607362649497077192022643961680478118341752204291042904341693711286359377459685866371617081287628309227811022306599327680185894435402854879468459756201950381861029107731500416068713607002456199225902403441823052444262624849569177359848031630979807456244672561636320801614003792011246312746131288937961636823671291506047325655597907479216743647139878569102664661982257147640892416049344804506442313125715555080565843340154166612310054936503020268480831184394280820425347857166576314583001049160367931138208907753155928760929412680002909380888490520518415091735616131364030222695689079151097715764886414173194399421668878374307303038958410234161509627820504350358426787757745182774960090721303405663881260490999907389406016887150132116143614505377486250787012713974996907619473411890695254951253308121063018705036990066123534092827215620195273560582490800046076163009537695036246809563951629601091377937811157573700999117088481147225261408373176830226444708246959898466680994877144322257151471062999057888953594998318784635736654208859506359252609878350080281812509545048319933517882755312400024352325162856590120044015500640327797251458989032860557895635758620713908569453535382603527257962980531675881365058589654024545841085287657585741178965291075835735342999506679559289887006075307290429448207732042063490164495215438452328283024792356783126625090279899057582295368151193081603369007330436331364696880253667857713632450511266131812357671362465820206246174590271280137113315072237733125601579980147039898360282848503913237375557987623313856966128177703830713483569135595697736079605375751043617188813025456792688828058563558825922547278322227126262847679027126578699235218589043812782892148734745327030805720408153925348075561701982379082444927046960631840940477377970166604938976174191012059676983968477145152155440772082622346899619687913793053036093032668407144504850549337541453919767249512538863447312860119113879762536621085131634614827910706115083334870991740550118016818350121524120598359778318623848830858383099486622388583612651986154723536669493762848247611242528067042639126480242890609885857747058537683651746029671968716775174973181202170621183139052291055060664220571996544661195503171342999738154421231330197825254572457722752453915113565403799530449740817050522274912605885680298266051847151076161566765556816488015727335844153294074324526602435423162586857695464989313148789333339930194338645303440304512024770349366631747588625056355702448831699255919286548473740911777469490969692830430070245353901046822420546624108781090615706792403815102181275703152286293520615634932107695759740960203728524332208822967761493732388296592610707033939863333058656864153124764754534750911998968710984082274472954828014183656387592633888940683267375644847859452847169898276426342873144305159625791692518380219689637824491913836944171150503909729340401313201672228699977617392372427101291077961818933797505981559209967142205440811009992792628222909477101428668336148910963842761325581903852715534990982111160111817539095881253389222456705116678390074552629558470420831658025961485381244278536638160949388656052892261405155826394191994870765288235359488196106820012252080780903981177338489389413402969452171290089322486205480950225618706338603906946444659689853656070460480013245374291095372341443817559012381326162504298093416712581244907021089779412426994518350836768773110565640093590177101098450581783389978204081897965188918512102862356630792264508890116627287567517752028968806996275459238603746246033520178051480355223941722788156721302517790669586569172994085713604708500620357394062918117300773872339173551217950997337698871740221063960816102016908218085192790992813491537546011813162293804906170392401439143006961976074764419858833507130809016870677560387911768816810924499379393262751569731936146728820780451120708817702012241071741483076820001512133042625534621694898166068075771120061188555778459638085340005264704968126030846279676969602927662784303703180737775801237165366210133399539428758081704150787208493543918036359578951658590626383232172801430040646672168961154143276826547534914201291724808939226185588717093394391814644300692131803243040805030836924197815787005170920679889666165347882762005254596145190223837934574961453854013443454790942007568494777417029628180909454047073733307890250125002839305429216005877808672904301555143606415368151859587152807977830329673876027787821893977030903104684248592026309055077964785781488560504500925885683801260436980734086579727780771443631031407518576302828928303138543847306640550988967043578079273474258096880977203444859292450840342461520632727366816146728606439906717750523249286752198999096951037901820110384588317213632786190391162796942325491287099189673985630841332019030244776495950885391479528569353533148052835988541108200014775061659846634157309734594274906531647978993063017995995984773133149606681117805601388734734651309529184792428122347220076584914785920756934343192213628660047442270496680330182306441728409256887721112456403267430144440178715106530633924483812294720475010383412431468493978128164623992394045713679648933478102212357033886693889410224442432102692455393205746474400373001943425375511584983801765344891619280359481267362928136932797195081588519418256791089847571255094211891178336476332502505061074838195922555425465411195405870255056263773934817373565591032691244222473289316611706613511575742780573390200071947271562916464394850178843980080927772185803410048094315249165527109308032629758338029087209214140541574633625452775077575256165553423055772369360669051833291804901781519110381614024653935021163145318661174652381633894783790116302313847733615594130948574694999790013068727817106210510997378493830268599047851448098541842124064257431255133226367370939036442241435585210854543995597469692116428709653027069961596047005158175060787813732060007248576550756634772249742969866604633570182807232971522170976595086492428550625139613205753752343678011775815880376418771357167680131570841137800410192258202677014130338477315046106130063834463855191960022927768473899447564153218162106165099605328998488421787443266869227963380183867360551888882048951952301195090845469809706894628554351433412100760287815067398310554149672402268164985863113028155052223720166672081318192690990488861615514596599462747371805492026371542291410886811267138755326039286768088694137779463233456685430636396618645021579510760847360896002666014323010710104240358030281896431887921386287861439430446355323197640503805630775941009169963279907155576481231235514450234357437387851994039784563015417702082520849307491920389063488294131619725168545891827264685191347268473448747151367790122635160523160083261085561781862129208404621103159574854086783245688510609264233825628168006146370179151838890195922403874909192004594648891738560407098230823811008401374246993653209873090080267305584797068116890156889251360551096510972486433526111325554302333899554251385987167049875190384861879079965330459987231899693895628697204225830048512024024784730470414695113195626796739462575967912335107536731724150799914010629684811888928685967931249819504851328903589960660952796868801845501210399395518116154765134326029396621671768255210804647516985219693640193824542163891896477761105867925769312982817848410922399713021617447585670276647954110818277843359991945957485029319555939106198088253543360356191431619717919498818579309847652736645563568297512646195260138102065855027415885224997987436543659815852348342599231177856652117048779594177013629325594746607479251332875397986380912651493350508638176422070852408171857790444077122153566150697591352785554273518327609697735369201343985425357464615221749685058666114757221797889289858501675195827013695867190017653544005332725950804240119404209279727526074567949669392340526440843079987522594020551942359894485457969507146112048258125352945888495840264020590543360933788935630875156913381191219424830712914639313117736376033637779704453360220556934127243167901402355835097467931646530622164384321804989427623775303761497883943650112678255821712363357499787713083741176640312905148007007527764144272894254358454210254374653998709433586259511862188265999914897751664540737749442823965635023909541475721158006951778926262824279763829863428069401563383444169459947400975014115196414894753158386633327583670564932006083232232000867847920857226827899468159475456943244527606384986103636886782350358207767757012708915312069064106282582106927733872398965947111564349825871194356315834201875913920309088333778683990719516506050172977911008988962313599054074976307375312637459416505796857322920775208790627110927742127150827376244709734894637516749174813271001954695844855138752213124576552838174199811875814357891738379414572229284628165144959548915907116621294820901043742362594367586211887626021209655049400914509435026754590152560775320992569367767402757664232670363780677526780934371319396002586415742418976490365543348919912515655123155431082198125554754282146897319342732814140547538350961799799029027188572036208445932186818946972136571277053761901629550594098287241294965228710417625326130496065560600560463259076558489133515401813387501499767803131408255604715671037124501655649979205348223974824358167939582807138071204355917857839025979989785770565334029346939405631638942832440170668240273794818857142589014288959555567080801694976458726054937444478646320910450375775925067605386844959914701092305450341241799578425475739233853719218564221479847127860588362287762695428944204389221119507221845007173359491013559687467613212796682998537899281177647753059369340028131537945318310928378045484078752570291570013944399654586424425681279695694725876376915949789821478359658625215081932925161275790385734680638766806706749241809438114604306506335205412658804075920979938887902899526839098570389599457763862417483392031369104225604907699979090953574158608976550505814731297118600431172051285575719791951778712639417083011319248872967709016631511344769828084890134139819058042296006279759454866142028964325601504311794475390970408937229368333431747674178725383463031832646996776924713419672177071770966429135746550429889540663050020142930924292666023333876170211307419462476937704353512417026473543274677778272566174461256482318749000702135399560300138094749728820014930926329372226911637495404634792569178530783462587733547440759611906624744676478295341017627006633478386535613319675502567943579842431905332493746754810326559676590636293179330814299497447796833007593919352261778499272467891953120828614235005652323454296288703274126883024655899827060043696402046223138877793091576470993566626346668867663510073501558756969657383968063524786879557237150889873478490265401899506963323910903738733182724875615956905448853097457057192507582793067623436711692906508318146906620438992988820962960008228725274047414572732267792152422945516210551845268343423996871897098103096235626634824012420192731713898576955859911413563904998163275631095068068855257489573281688471811827654790912667469537804270308765893799291815592654494859897097790762480482408516652379929290433342583506049697735525947374768642960591525794455937495709463015987840286823870177837324172469779138246618724992607613206164513324431755031302998012803674454505798636420165529086619298815943115295035057256667133598683869226504702006648351230880319913127625827187928192866370911195842287627418259679007231531582341660506699714495865571507965570301039929124816054083467727253352584918556592826838600755585000823512576387044301105444343350080805458266633291525170488919237740615656145828882385090318858467662509287917274230614804328439333083086482798964160143458638868204697073652196193815095328287073747722226486546610001718327546506415214427387392810736610463396830667069591958954009319091580333946881330873078516950177788724845325344022093092822910516534795424475400601756031631915962584609932656521970949544222822268993044487284552072616672420646298521173309482756319036509800671716968932026694539163604593316440385261664339392470263323053596919874459835346394141536716259705272830368924860928325008658201319605013152830787992818573731356389666186587252095312781792213356140986611916376256132747306601733154515453842233047067532038384115789850859295239516882257486500495811648393646216285290262701341404003711288884314814343674289704354633555616291721454324272966258328179464829162632471308008283020936756888691457658365465458875123092228555946093926145275385991579765856924145652857882855635600792653867204466373314451443232194853038980681358920481833225844085741555489668765290077823182826416004570298702953206256314291644912114922533917004811959500174321187348401721603367192433047485827063651642625069895221789430545754360620322207918535852446667812218074004986439020107018858679694200993848451342011656038135921871254525391913710809612664846322978766667691727854425796966593908817650430964725521954888825603686278298142345445955926173482901799350521013697014420607094976180452404768574833114985556723199743874766346306788527031309749980179919285777626672182196771829426951836179854319312050709418752433209130376122212587254390002802678676036817203297186453138028040266435209909858179851712677546702735620651178321445432914692279347418890658208834964037962844970522475791290789939420329838895911836209089404282714895861447991541250779248809389875608229217832680524411288065033633356843721955794860617492323286245732191069560425708394686828857821910118574267228252035600505933335409425496297716144836214222681347289607376997742141005822862944760380414027603403894511567881912956616979942633131266972684684035367035550925617966573869797112543467105273310944952806958072805872514190803169088143215250720073394244671178410085300073095254067240982589998451857416159382259728704585598686598307529025692027977185844221911981405647407071133600090336427008793870905364817594250363976791517637126231634747673524171106060005933324437523421207018326466977552202566117489502527960983613616978472730808515931447835250082742618266420361234455473580749833011281140632613598228389460814213800151609514334844167811724043716769058068984294140849693074146463190999876800778341357320289452908144201468872496835486917320714634824389314360571481887175985904032809721331420526728202678372161270241093379812573055707955074598579708498725629166448598362891390533750180171711413468521203240964292391011488495960314943390829261173518040352241141045498191253973671835036449994300782149266853946990171469032414667798981710253787687175622219268579058175603308686509662010671492563800972888352316347914214655410715369215909842154011151036927169967037701438933921051347544591740106116766370474291659466814229588486522962997596771978998759456859465921208501584997961796056258776064590957681787081423834959835544136710309862886089569326201930223003272508496241672083724578889003196123897588350970047312027925007819226847076981786450404538047110188919622563130825334151410999053199380712789446276249694528776302993061473664821064375805545014145230453122746620417069747777257100782050448767446266317372836885795131839353261560788092669419799081267019842396870838256266710892936209012087694623461589383388931073243284618198298169459750509188961205197745283091623443340878196960876429038162115190522213427619305241792529374128359717513527892297557333612318875746520136560263733786567091535143654418434979055834172486270095842297953805642221761223285724876291677881088497355695361656629151915975179412630480525365260308355558532237720551094986699435185804296475474039951168896988117717699391759844639572657449524261079966913627039582957700008842732454661788419493915464730182259512950847860987654886495986684976275344578598917573443576571490259111506918155995530077678428107972653509762213202678774893911726229146464263939097448087940200938066162578080224204829067523447589205622924911276368423984899152200057917643177351118358023179095053982625330750757754119774073966805435664295619423799804781838231386294960225555369007967613623730951923194342721808113205669052895353360474899649036157533135311486051950924618199494633983455586812596942022545285407554774329331951180169499322179890924433776630615804100929123724976576200751505950626859117801321668743616989305412014549665949009776053032175884236099464947822323538619234666083070497828603863052299229490064331770600407719418240150116981267220377557383243285161371442013742100066262739036356332774733145241035816724595216604990678294125287553064593361303850587447218210876115862840024788821490747121459443124011474961311368934449120186330040271275488989423185872964831758960313115773905437477518773901276451653709658397087295976203923071983823129959955757271105110010351635506731851918156208673839092194010114905746099988387979707755574114154072554175192834149175083561718283100439495550478424654346614843157082512208969677473847859505855592941549691748303209422218008090463747870245124592450372818818828019725415465706913581026594997453710561457309107661032481273820039740205849603833404629211000946657127717660236100951849626848967633262227543958812539484497046247183057019066240944144386001878122797376169963534673403578012787857539338443533531854060454214606214251397223188158978157390600571066742275635839735166254398957011433463201605111896552812683473720012947747351734495878814255107433967141363822561688800926252981029252218525291077466284930067085714270335914194676522011731825887881327896334449004031167702877292635825784844621495574229524405938867210897278507115423372147992582496551325136803615131536062052217392116505177471214684905215622395547888820100627826802073059153114565523931269365218602883785967525697430128867526261025623439568833245928824160172738679762734800759962309129194272568381449304404146376875368690107726748916816501519454368467830945414056658860941780700313947739296264978438177220599351038585624875526641623757599314129960908390057688497323127580542213920708603903611004849935965818337941808351341063632453318130305430100107771497267321425484575071132611641348175238126416619969442230810038838660864406157770292988700052254272498084069799023917808732636790058233554862797528471640904393697379521643925568295053658438834392896477364858470878260178287781530278062707366891782244067621113044385788074511138081560979210019666459950275506359592285812650852607803138092498005021616888524266674573238187252421043842094559304821985801555076468724084763933303913181483188249914431127893472101433133605987885751802434017183142454797563906680930068296996497942906410469828352626691330472502128456824871067025591798506757702328146123641615452945313157069481768185683409565103654109742819996456605747384719193165390443476593994103856787680557167331238386477827706987767276741842916318220322837044649200521984645297086221159811502916603902019328295491458883700515048034406156937287565297772927118132092089314955196178558933562816276713416695053018351048043050474478118451716748200598997854229398782808440370324987283735244520497984014097909535852914837732749228817671790195252815455002871934372315288265752916608820835608036512009396776226553973129308192055691916526011079412859678451711762090612400448293819348620595527531568410445954981664662144185665689305319049054471894261670529397739664495480516408313948235805084430165684188960689005034507167922236633599857902657987364020386407756763025946971511956009672863525490568810852963496155760282079522000840110875047659177951069068782680353213492854839901813838142592072073721637268365609547324598493917170105571615271673434044342112116076052158400767052143263379991030567106068635475787042217594039535348642236981188004414005145294865773737360862420245580400386817958440263386599085817325857720711273249087619529618310511332122343604585302217743358324867311528052627686300317876689776369689902434568504764853209707279340668182983543844685988577847539650814188122649178852083029378852815164158066431898090375133596559567162754659240556417671108481460500530136660717308141877097678530402821380536143625846105344218246881889443609738069197210168541383555463381156058130863122043420443113135754990284080839548974335173336045182245895774449469453759178768069926707739904068487941503702791758541706718319544694733541967885622638710753974390880945976954503466615108425094661195822917742729897621644573208196016689729997537914231183680827277199204681290032319181349206444866699568677818475756854560780221803510162376014135099016887385215233115311089997269953203754343063286930034614521534672358021233517392459096672092229160567388902481483115691184226476613858579570637297514308300851954692403886890320017240255277797263452723181514413467686454352423480523279863394527553660504746911756542377913433738084912138784164528116223236853081819629286144316746136591761419469518584442740518095127113843619810447418226692642691265579776224671067613155741849858428949618317632205336558632685842855874963529751164799996633672587984836540031991003360799518854102854053693061105384323964182654971943741169512724035405293565897498696065098136026612263733034264723549245012118061979834226929484320922275686815752057166305901072528443981294616023892733134424418791092630726426513345737923875869159566281986084774490760155664159617772924525223942651241141065022320256824177017574524759983526037258220214712100203246620436942977012813683313419602387936181993597811191113651341118537596411968502236107938506264924066896757401085084509762420951928677498072506335026791425771453277946221823163024017798736360828390665632441450687461938737521320419711509643325920436751856719796917028601097239913989895495279568377312954557969461568947099800137296917216092331017822549634688475103836722458253072399220985974005072055782523727094746532542507950566315480461249230533935248927547730288830054326916713842042057471590722013751084933587649692623493069368136653608693128989662230614517164494610888804281713594356838699532964134407624983022102984772322825301010540736298239612994341878652256492195778344846633801412450973421375161581763208862189341615001996199163663583555177282522332488835533098455957877806728197263650785671236887635648605066584310398139420514978540603492983043018949266930867437227206361426530634821280010915498486026524325770405620336683802805098788473000776561910234482658164745373445447592270639139652442788624348553103697541976957802583212267928169035911290868473287284001967480490177260094272334980613228779568325689720875579531779818390456955608468632432671750905652232828784103470409625943387901625904782857656512793558044228719454009411307994815118652694977796617296166580606931648601839333138957248692574592121432260934325722147543788770252595262379768353409987776491156789508980412849089882407875750242821226905199188806524499048414080829876831760113002038321952040447077733372413192681669593574565017956769137431594479296062364788761515090168596065046723743525424377938547026357418469293710165913564094059320610058110027749573087674882524794368515010204778559294989618382624316316045048092386889594224171160712034923520470934125280033861246786157474947304254273476496277520624905118146120928414067012629404556986149758286956633723613522832387733734565193634612800311596814305493936426229741606948177243491018052779304837754559254943107725579741948369177649107550339120547020336349414534425530644585863135806247875438803471371178235732976886157672575048100904426878978601738603615309039230293357308535540178617759277082422271988533493456651315188923443571714013985486563750316533685282639175839004781626773520205114157278905017468884264250660005512938787370543492868712338220423519449789621836559884351635785763564297843521890757995516168597968575140039941161363674834823530595417734697695235062095672577348267264255386390711505083917462799926200859505597628599595838963479516150467957937579579564980653061278381400166719853053852106302496574470498281882853284421700706425404251130277025515934475863843013150969562000790087677799676413963020054086984862065133001012415819314132035763739860596010024563526396450466924808726916307759535931423174880649494621787414833373347221887565249792238103448792972615749735925257579668400666372421046896891868629736670187636470967687171011814680466073931393378279905176916074423018107140162426474249609727157345201252360085190085839144224255538545977480731920542957358838823497937742224544968909214113355119995676846550695485183329041730551353342513557410403840059823828353542940052598840982315255747016172142719902834686418352094340472427316129955971476320134516941139775828420972478652730486249492442741854466840012642261271077963875259451913703994823061376458721600634011747465911467432453773077187754115087247525725796612331690704908029286777863394407727983071714728571416937868069259275840923924391839633756014473407634675893734832626420729843020923756113566258171318070507651938861756618657652547956508204533021205165695808414311336068274405345648876704383213469908449648883957729023006598833439776406598266247763920781739802018326286611680338763499735646617249463972561954161281357335585362644504339545370831303405403165565358947327529769111028872326253231228818015158207023945679285574743207318845454784389672853912018142418442154385770636415459874299472516461796713036873147518640471670793156799148214155538382314077664331342017102770228348958757175473252940691529402964590087527981866894018595629303472035914748591748577670480459489377804689660707061426022886395392071260450561912987920070971350626579647194305025525303537857103963675620046148413272098107911823230709240655891954212697838370072721893815439150010953200040174782250686641343261316565206363204212004379579477220108659599758409398311670777273963553724435692771063123220580492841129351097013395286852295131347530209754454862304496954892009655806309756206941328609888498811349470376654397297938847556722977250213107073832582475785483234663797597495299073321790551165468398920601764761051514067565569137881587837365406385753099505971579072524260070935098190542729277581531478162246569991180591962062188403683208776902454861704299534413607021148411146933374624557327251130129604985335983253712070450821875516337285355628586196912769050587604805540956641912279362265728628357494836080656664922056594078687779372355802282486654034679420501500509643515404319407397569339441379628136918856423336247382474224673735195706532954505816017605542872551680811858258459723745231478291469252218995188772513221064437391643858775591741742575181724562802061811348578724998571267693023073210475218034049397310468463908111798162048732270024281414729382060502318938004337921207386801967271172045407545411917384479036343862245375728157519779325572220087553162822140420513268649789330264612243198803674089089660139612546363814764234283705398557150568593597753057585813752827287389843499048584914457824063821604053413550610814740061088474287619248700503953377398233707222648223521069954868933749071943031794476510344870088539570535963652923299606615914914872567323556096229408494642429501356947188898829148204911705517319458506772240637416810864467990735333553333752815437432956898784126556060663140284977095609551034749609558503304640754098825761044304366400645424189064528431781533758882290962296503099225885791944103615953599386258785703034349442367528907799868465444681084342451576728030048824720162253495593407280392352520154047602156871266005969467378026406207831141061574759287485673034223763691620313986229922107396504649111132968647875873628042239961614079576854929022703772213404494108506888641513772798482813389525413431666278858009798838282346982488268220086763019289217099879464477608042402807258592472504775352681816929404377185094506513480345192703775767482905106218687611584734371303563881250535983257530405977833772558986776284674953608253496722299267586238363518889323658127211677253420242952188330222137657993849120634878809270425243367880158212400051215173472991916954982554285796111111167041135417780334591248648254239991703258814603373602767113174533257723215515010634071081236312151061092402742218653164527201744939054331716295048174596580322685153847912698137111123488993377542558946370756305667132186044886966752940257347769156702887789567141661258721169310006475002347333126526357242825043903811534645374365494143771813000278343988061064455294935328919410891365340261845699999758769644405359723920324356597634789171432010654358253762006863606578845817001641301516331937554909340259728577270204757707786018850403761705276437487156695633856909512165273898495952262460955372763727172842810534851581791416566545807776521888798877954737937486547292846946987138907066078163090133193559842695932077778785884691783888924926814946815119607990118549338645754980212558083628104381266857003501708866094361766592652961879447404029719110541865431469974405387330140053484332322790331370039758006827136267742436486915375195746014210125922105214215308247221127282259452075874318832995341618682087393250661518088787676617254303059644286032596985021125329879043729499275692447973649803464889019053451965344623886000671649671006358752182181036645154794050103919411106590837852364893331914079328728812586178610893875060014255001452649585254817177609467089821572768497734215013805636705394627113019785753660955049680912248033009853827634031815507110039313285042554415554183878306570425906754537990506510016310568890455903499383170444260607756812639189484451178998078872766884664279159082047837876395204514227168262269339679614048592688592339683144580066683399591067930304482387714718028331487069735344454459491069703527065167786985228711168404655017679953813155943020253341744536390963320274125505351319477436152554320491185493963897964037902723226738698185130153876525346416307712412691640474120405763700092186939176858219996996215233879184152648015712550190220770138200229701803011232218416642509536041018594478545509220529581006804876681556137570217497944400307696837686259856997065737121938790247980514572729860594370245939939035793759728628516874733268345513235955100904117479381170847528903802744787124625956248613221148995118906023010114970920670793085571299367181062457672893123713431556647689151915965362529942370029258309526775426159102670411847640775381290757432859752914756658614378859780735969169792336503433768865310627037040824096062643513105828664207627906053798554961118041898770913839324523500388661944869160205403178334401118280267669873675517694265612433149024086177355173868796889447611772914752644385430306470180100308023629970309482217577298169454839328018067349304349764253786418267195705155870150685246334678066600265687941577899448011300135914488477721572130461005124033832713275618439946997334666968715707357181295499290876034650670101502183548843342336681698672217042939307608894788587362290015655427499752228964319390487029567900200557941932056725338737823840140362861927978982918240930687372180117744112371783463198417884180628966098771742210824995535738198076297533251856580540568961484367910686039962109210740991703953968661211857583087664599416299180579515145349879738417088067950413268022499186063160509406504807245829228616425161803372443673397767555009382198550012093250498129123759732040620949030695079074573988471315897143849298139230382167927467144160271724209087895014229334757392565507097092849892170224150043378477247261361002103714165637172808726430836115871609226555798279728836999529790670257425338299115128523483229306496714551761383080659576683033475961581654396532669741125409188725405777982685034666126095054072274510551481687157352738153903328598694608271226302543457719346468199471750130651591645681065689692054255983487237566679283121171611406898903861048402556451030347195474421444004965301952799928028886525140188892742440261050855870805727154495061449655254099724124200749786677624296059724385953956710203684195504441828365636363837609216818646734084957612209712410540859974753860069738514228525774517009845389843340478386288263325976198443469806220051767418460641274918001758089927955918653304457611663948578829803147811260943609842606010344914763915325391751741701497602202195592609577569444811121569603701764810548760653745167752964352162979474200279577884365455781104111430264926385818281469810878044543483179555319694141437671714728918850824322266261107056118013342069865584619706279320736347134194593005736055758733439751053600163206965203706898975627470890316889851103544552966912500666453836715912743598035517960147604410783785874539667292829421321338254957322712241131166931295779693323757018069377503348812020871763787240269914620301787445459257671410147248616387720703416481059636347912411927709798752462044996969320154505011185472410211207620092120748602417985364785281354824841324855732136870434842377412556793883130829601570100444026025268037655641548925136753563511771154813150927163664742443893890938680976384633838258847609194162368645235330278085328766654906713512301733292804420379647068328044541673212868723083584395025153950663289493810976329802709044222234000695724050322019727622714836623573846320610490082642864163140871071788903477942594326630150475748250479384891916382652859502314922864578881008347951249947694576804422027445675978774012768117142816625863408611609296976070778880798014168044359478732313434414192238103444756867674287363295031942190710690572104096183811322164020696401031687440106907291512020359005967403770986233449083211354009766427635686594893072871531034873749690278774798546145223054359157253448821203169674231668607620420366990117408501517351750133080005852426376114009229852402163642942355426051601524650348406321473969778293043129420567419334127552733238392351956926299616172599922282068502226078121079118754257966598575019180774982964858945426413417263178977458859782706691791005768908441966794882659310630568935009866124601149763127136162384292682918055424254523962374031304820582588572879234391372204634465802437109951456452507182202560933054513282653336602762965779020928468426620459399280747988410039378682883707710754330766647887572016146564846139260135961707063273289153747099748665903295399618775485975380459067837120167993792967791501828629113903161012796658370816709782750887724563999452681509406507712591188274803643082633450168543680617375056039398751481520735645124628155967355427659711779534445185364886484315443152748048440856576223538596406149785131114789882101761518505805046023133469669399009029604169023423645814458901518696204974063563436053369895475610000144743809890841222102942047988767023373067862610718496547901215474415826471415940207174484848442331686175669493851751104408962914858288821903197831297198172909297254937335908522381030119432366492774195405533669457255360188433814360008378000537264914493587268935702946661484947850746025873465965327759278133597741959400596047741410738624795664338760206321429456805140097058725515088741336982641316849520827351712575826061785639887561898222406193476464380175657689937766898515606744865386454899321884710314307547583027151845890436746257634989017480994254622304510422119089733318233136614818955102960906165352208466827410746034809668901074340195341972221008883685286633971030891565694035760583253468101449605832973003208264459137131593675200279619602693747602297627733748995728952528654678626076366743207354073290342103458532161517261310516988029496031169272255265366264378065015767293909452690529199819179487035407782680454538067131368299132956962585439255220198841851177701140997304747374266871374095102088757833310069176382443717841836253927074726359026664759552245977146676092435447786336210619759896777928874167451184026934508812686317859699151777638604932773606229368085676064115865380902058590887805845591800598585522829497917756656657923374007021939691988092414703348904927306669862691294528043621442568336478991951245510908895368571330694390487335796179717178748858749093852709027191253974232280956390232696953373209776923767371504701838622179164404761999808599261859602633926990985691955293569495171839102280564681877150633120821471941771106718674933477026280089994832294435463225101117276338029761427596110963452832869350736989028105884505188435827854440639917686284801801136961202328030748071054459544526581191854833970974761493959827884460454305230213211896572875682906198776776011356607649374765439760388348513675699536546679757589994509270845955397294841004343357696791522910884439285160508925819557002679301598462952641016348192378949893929595338393094998027814897621124035966254515818673257293427054764644157448653909767042309527143943310177846643221536549237788173704666909162582167153955879619074685527027861033533546305040613950023579976586058150912366933741154631633856851511502777485257677845758103360473784166000512910683806585357966949881695540120374314741105081447012207601145694772103584684366165427579727984529973333507431388497280164318252173494708158884741527017459467577321200502880055427507289668658676324118022308759044474076662162193757680869918595452169219604505406518630956103043051219061973702159794730242985901601807388947042768926938071737329475824661142624959509827100184118669051793386712382343017709575521748294603455017778605630374689032857545114479607401884650450768071961175768135703891848204083678226069711328533672161480830915641006588943971314640601208545540814709018627290097377161349277159321856584222776627065963925331518504194266639477920601744858156166797883196853705437295169141661538252935059611202629016943065901128542789695401154515915573763922941667186269768942450243227914138959033427293806831991921548559739669221147020082187416710292620891240942254058324213304013832735455744702241564093831866692281648513023960470733501618499565169316898892007972060290703904676146567015776230045761692841036148928314969743307483680747284320968372771920818646440060514613609685744028455001679196199880324110998726280511678149413351409746893033833613776102174126618405690409311083520058253338744212864844137115294601222495317329334700935118756694548481688910306268173671839065192232693734525063172066473914770221399580904713663282616449721390375631447311465689955747893709202301427037794217350269741487996780439571019979525196000533854316409962560092550821039156832766097867133116255291560200963910111714414881995884163068901070539821046295576340884849526518366829964055998328907109809800032582054998155496907501496052955834289653273099676735030151960430038248797894039167608352670216410511585719401830905317475784614567512402612565910040283443412977319436368265323083532696338866126687810851227415903706340593369506452898560844418839251195098866812093186710668409273379799386669864492034161272679174000951838180737987758645161029028105573586861253334215901749426117947395145883107212298435538629520452801217769670986130185960140132442672903593615651862721560975459326636198540790604097819913193114273363058563206424351172547603325168761084682898450317499744565135578392431908453893333956632553991193517769510802021223866484263838427615740997238344129336781803746875537149421774875001496969133983180201180322871416320900871187972197171961901353625176680404706745563758782652229461533613717252807995560618654477090532620251996374760199238738406765484183335903313654826009584338119866794064882843768603006649093579948636700907724204273785680597999229987187810445246600020075159152377378506305457655859198461793952468250834862965677650296468514299439206411954472770544762740667788090754293146930587465804769628902021497515992195866917010066015244029688247282207977118282560046047384416650539527478447625784768180445992486470779836278988315242415841151867652076305109944539100439436846575650012172698051879976286987785411013527536492860770136879925092851666010959187924899479120364819842189984122599422984996549851888200518405887495658449410167493085919286172904687550600980674786671064115385806182454500217903781570055805608281849475690997529407219948391281914962512747935066129498579193983508360821451643456825444028281545810175128227275431774511861381012440555979764682501388461935045149472262217848978141460819555139286707783703513034390682786003421958936567032059004742459284935100218642324697258842313464511369718710935283876841620507253052973372451315483372742297768045288711239610417970952794265481047256601303841683641190055664607549954066911413611005856990235321443179065560742738156552743573500557338258328180530559376297949717727003393439570134348476549997252068645851891744617993896554174718546062097938684231435024939666002055754790426202996506481371740909480227184705376986415263233345331660097620999687933984320955647897798643012222043608356394763503261232581911895176146027623897723402461021248159534676225346768789933657621082703754048729056002322292971895152059914909703546541881992180786089493288082124721801289267344170834519527680789970383829842604727497997089173283579684959199123545662090243273064954654126535401326929573466166657732706368132421756714174170159018753021881996940824213692556667810605250668553551896093175639036510495159561666830352740070129166011189327469534264414034153015406069341870713243314383040227092616055054164316955068513489334274365810565227886151586601902047820867847926970400072184635110931965318568886442380193206485172824313965838958290039001789679780655335118627793816078648376295693288722981497293105760424882755164522265977419498620593811898821239628579781891590749823654888102984767335318186698432956216895317281984812727636118265213833968274264739170855225545648176465321185436784870611582807548936056259756902906470016590262620109365311573375994586497414195404689400071733709587902256764023105329839071683740943810452013370453760403444551061196292387611764684245740375680969019401287574207976049742885806137191517376346776666206268824253330506991754027577215920046441055939719926898197938787988343728346603725653536385671109302968895171957567102530284035049640876781445876377108886712054747033863321987339486998455020998214530331920378105475011400604682402484871829711276089118429887855084434591282447083550690815531034268014955262578463452942507267290989897233629898889076290452873935417382832813786254558914739526045622273296916172186293581948875282372131240808523393325647669702348857541764008961232422798144865067416098761030617591860527567237582322517192135488747460022098489980866908684703413036030517339603009807863080149733848163382217513007585262548772132144739149959825485293557338736751875766683076965788706109335941579915865100186289329977576997864944020931559252812582509271792362689268703114905502465440483147035281922044592664580845250992244895940132947690596220841065986679589962445657327437191277139607562786722955714161500229693965635315142375271095587222662699556986934415294304451066845751887349644719358412895466528489667445792672760505413438731791005818646143300853623070896505414297481589328293936970758423710171967219287169136316167689873650898299475531640281243287094603925032945580892165791236336399616575189681114620279827493612548649742928752113081897578055238803414715978652293404706348743837468878711167810336629162268871934579158991929106482860457705430578775435210965817569234790757774704872194869216318416315308908241315862730914970061604058672021891987467243302777779189773614212340620428107730751722388512888265798286406554074702862379548147752111698080190316240397953020274313133464135399860085830551881344957657311740547509106256644731010512649563453105706661768027307090275684390910471137334871790334286879430526107406819522037507559945534261235753381163599332999346393999661176717104395035662335563537306497080853233809327904281806282261114680220747692650333760986761880488335321172017121414213090073220172672801999188395288662652688010444927849122707951820113429841913037070393066303890443446252915568465738794290542595266070439509008428610903934648513955117651848408151876766698196941160886915651648092048608467282259114274811034389449279429258403034224665389398757330552544736627967652936039204168108425267788421217276764006200046246285976800431225472763381807114747309067404273592376010322684699690253269975657296940727549303852518009241777317441334502505396798343887496020826307902273908768148717784902647443176593007452033282251907981750859053071567832317295642450038196907098803319957690148729884963071262592814949897647833218590471574087059372111914154068411575220332449361619996524610883624305637626231642233727552550875248535349285522714568821560169036725831701059679214984775884854369723197380319428568821727546976282194401355646319201410843313081134106013520065950909844577864307528046615759029753548519960953941151646334909693514719140799981133667826985568381212170754213051624748285792668847746162300406150574382304076735814722553150983919440798055779833033824044759580537076612408415535930791686875032681195543364304658639852475147729510850581858930222115398619887262470131594883716985077192634818455107889766485236066700770645665860060128798537901760281504023850497337026804459786661266129912971073871450436453146666529860665635072185267919148620163886628119455443152195882487578698634326990481431804998329634576996860354781696163067041862318026422848536919035506575197610306402565491883138817178988190491385895248431730250723525381716529472979236704683575592341726006968806281731269279059089470006377968252195657871872597377219995665787473137811434565435216589211449529334036697603530292943842907126940754654724120413677891956834729425362857287282099071008551933846020619104325474225245570824249307595254794057380885664526557969956208337568004694327846323635830480108018956642215626608125620006275757470999047540345487477269475609671746244954928192286690305291949373922181564410908421185287109528570110204550714614347158219322735376674550026439919498388470568960446455925932774544339520319223989567863466783228287711037062378911120879044545438540540677991873296793608595930440323825610196575416062945866731121662322004215501388523647297256676452182927882542250802283730887181469978706135636937236553918893484751749656876373883326982781905678517765331748404450762835716721940826657195616023187091742712536248223791646493067363839510167933434745936277275779665788813416199967229397040389983351270528663533771917346443391111289119701832335138865809912774035930195653629063876170603787973509013221839061681613900899275116756994185740926455156667683110148405561605796462302167978405010723911719485805696249587896371095765616668143423298269396851608276450520475066198136815379542097976676823152742966796077261558948336333772451828538328064322579072544676080001808730732814518587690753864911213493716991869002168934787948546235178727570269278069001579354065354832896814302283318427989222173144356561555385582846005319425656162686698426969972791125198745270717689794974366273526241016367887547085179984122616450265656614806733459946772085919386687611996114507274090640490966277481748940427834086884498314873482353728014619494307297462073026933188140733704072309758983197536423412980120235999338772259965606302284946409460094648353894479741538644392715066401302124779082868593692047880583230345066717661388243888293919945241895360754610383249412354988112725295165659623810487468695371312891180816633710265161945706190772319709664101652321594922860261227380885045522514457555946843176178557903304874142533614086622260946097488825376688727718549631727243159609305864073556977897772075276012542031686252462327782182875183184006676384418999019406530032979486737957024504557240572929466258481188299449664231268459037267449293020351065579891393983631690701463880789038679408778899086942864485345999574398906337220423780059347457732799718153287361361930211304613495302312535057047155747684783750345611141844956074678752789227362849561723557960766929301386476949619274459469508288483820822320480030292112406083633083567515054997666541775145461478636250798962860571742232565330127272742939181088071585598338876076484987168373968389873118327628820839862702601985581039000581117464208188806214968700209774455761299640136004224455057911833216984068100106518310510709440914480536416219330127574446989422841076796300224657112067569567025379414994964258650222232898024461517833470561223820192466346793356283101520544135846468163141923734993393344249957358169090843788473175967594848170779085892976791591678930707439466282971589353162957719301958594479245886095648792764888453598289143906453999608123650609133866076865451770543889051522154071481837387433913097826053491089559420932653956710206151687461985702007714112907903822690145316546074650301131180024264683177913639510943752062680086210670269378926927699654061288991546190857425864241776250490998416615288530074427983850142119638753828770770663100571111654156069041455714434031303591127330305542085468212835749326118566541453505160238026666691323534472454113924423735847968377382416190882739978014310972856098701103293442445013890062165781178069039890179412013936406587531624386482116139170831703149170752961120033014059213304524213802775678832122795295026348066053554667617530426122875878561593238034222742810157817631540002328367723822586492886327809955251125105739613393817999035198387267304521122237877232464821488104078557262945323493493123986388044588827648248098052403200991718967658727522325325103678169508351290665967822839369885754578225234152926440644930921118161664223486446861528588738853142191131743836283358475565549544904250940483007212679087368664371597896417799175960960824751717065428815058937866897117850219034023316159128895520277776839379164705386922560007925875835955031309658162849720997983375542679813617594226556009611043073386813919420711094722689182362426601840783860068938767492901769606912345025262363378422296505605116344711677815909377118906103868417331541265380543073083324869977965309153318634650494383435343763439567847952915333890895333995455787094513436447872773345460535045185278733008781699802595681361925471063165394462857226799534075831437184462705888085256341542580766389241888742967444177074338292614134918414931650045551583105609280879339302404126262096457217405641584981353045564961305168819276360970716960870246907622950516597923207200077332877214765767927655392229965071311679821921543176002072084537362839592875607601111291473867573525651380039403594469650799679795280968354714679575326487757508056597581883050189377992486261988144287714813779523798040477115215172346799555490247136261392771041395934999536636676164169318325845610201213921979350039895114365085756816500402138946512174025230309745113253812968539243787724165699328608063873050203457845630191073782490444099352131687706558408881747567514340681108102019908492703503821465165248119679658535829207465859589552113787303447348463637049603473899917223818421676117190717811816093400278549779775029070269558781025800252078262031346732875821954554413686528402709878035470643773616081756046427877246131243975299740372631408219240867511316681928506009232572992028491877628179237443291435933044750048361446043203722107578696712549247515114215805152863579725825786828705038917669015669261480886591657353036941758080519642649652546216667147372168452980665398308665819092550965611079293368746987052504714210437703878564674341464185898377185517763712034293409179350460580477453268617683101587997952649777753593957919540615366192969500091575344693064727491880005920624945453516182573025393610883298867014414757361493180561614529718908186364748319223700271013945571536350985604378973061861175435165812822985331006873877363091944536881466445010264015219148061038665013086434121883036451546354751395854576721131647061714112139647489102102811055710180944896752195114596964855064813134013230748673851760490499967362175279184328496493217270139036516090389996115734276719214000874492768734317028800512535525874940461657488346465309539820406269404266897240979417251134160899761980501537873359242601289138749518148110361691347469633111406944679484950032648372150810780291377761748635531537904678991180610392847887347908153074084601124675516457023368385942712437496221021152580274294747756774226492538795277693943681184159611775470203543472569170552485062181061701596439902154531950631445830144139712418457402384781445474458231755425568318993054772523422298520487865827151321186568997515338910883696358311014475245674255683045955247976334839107998613603357543874237886564540818450763063104001908554086942007707808937866922639557808109022154827319068867248047751501783400188934089581059064067242936359116495962051343547725076028861225768828457654179264130699884917437876616138512005977481181208757364055638488757661075996990486561291443873235321305781667178735326898942552988256967119584770312136205483353306950346332790027164567841070773206903041167938659949396773598305434380937076643090546509422320537329102898036451164044648733279955377005853411873627218655026250444766316335723688270653765497859650854243786302341531383967719004991961100126754815162052526582512927631765363830538740085789656977715853084943022526740139889037253608407222325585554946225828127374185004200728449017224883096168975910105664833869866730166741682808076068554965159193277464371730074354443816225390969379050813750691414901019607786719645425951618754583815161355749730776849249118487990228535069633620970526325778950140293805031310233320523280798753363313511477270278211821745989076251076679692529876296713547979153797280383850400842069247514639060810800920647719761099730042166862154157038411458890933617101663993527441327127262738977497897450620862626887479357382487019268902215704592752066722790195838911712150299255199298105537995174833166073722037339013728807484115749855418878777353819636731165718174017595176227080788010039388753373823307820709595796445040826875271926448083203250023894192142426668681230758079091643507092874001481378168461049777655411903776005997075561285457104897004186159720281582689688690384043623442063626878666695881907723913678736284764834149170205054307805609247177742698119017909479472558324808324220511771551689334169828713598450969591244070471758493752953906185523210118182191284288149788792923909479046549676804295633775701639688397264716672822355952949479958039379466987428485319657954256167377552769970060426161837233340039026366531530355557702135674224569594730080632962235286364705787704087824429211869646170400586622525817698809415928562597142179791313322489186376159423674646688687589507395490547030185776826661421638176892955804025145934854128922599843380783899384711935931039047245477182695724840899927238627283862607385590592007411985574202698471533189625548489458617837242353430239353440402425239236554054814611573071347231895958557397172873955772209904013131974958137167327785112610268589672399306097688227727073701100309931358089690218473543848592543625926813067761844806880007990711217079320363512987941335736263735594192111369334683494501169546822396792376534565090022718870294854941945141990693798319352991230473250563056114994607342081142193211169029439682849853891818093788879574154750535853087970689717761248537706520143462864006052884172376214252456534308972271062077619007746487635019119780888089615847885047474016764849586738885787875635293524016732187867648021032344254917850193398485956070854486629663251237180994664847979684504170441586948871661581949202712151297442911164049951600684057533523020453163944929399878087874142208957573412514948099418283075145976566442173786724854099533384786130290013461322932904927168330733255077544637947226828623844579876199213194838544810820735655805838129783725387797237861085804664632417221201711858361958082240250633596531024805726111410769005160567560662976191862916268283365310168696929958836706820122985588984729735666212638470588510453248656095645147510871470347190703629337769013950378307982562916683255723230759185891639715007469198693404925720957573861242597632812606285639564185970670428241997114481741299765587176026823237905771850236413162860960465483566142781495267091232332455316711801494432029965805580368297387621683440834296894482017866417644092917953901454173990606434520445531824960786984923074184006482406100608507278926365990976934702349771334680148825563851107637472511317912664199269605105783570661204878920298882070160279066941486058212944112632981529918298867062329484511518415387102852691684366406502640327123452629008040678996839883053532529320095680403253595666560672346579084423529416190175373090486421626363793808762073515708472365908833826396320275163539967136165409040822316733193808171982394233527836925894933042758027421558599574961195027085770126274973584718443736652178290733000307091612700997270333647144990486704705037883562599721856027652683355207202909730647544200327065470778565244380839306450004160145917681066112671420301278791098887897724383082056307620926274116406161952951398916208624371027227359658779453981590629740793201295231194391896420214082386083920509253445118507715511949707540687748768949698679585420970212046193838822102043378095100601727603783473176772935845179750187668685672787753464169403502850149362951981477713376680489115881069769718193421643212577098267686420729135232631433979765363008961507912815315639367050172671003437456625553276650004232144541730916994773710468485360185670414123100571222452236153585175651614265973603139997992916913320845431770158167182236690700529097255909134540628398824255003446143087662670432202726045897638399511059270106855737583691450955184846521296918599669294066910865204315559880520127400285677981993449652425561356847930633125997313439376053923038607086936681674523471449316432817037242571965971014613003209646646662355708157625573675039026501763339590010147805105278165746591021641736724773184375904699992463951814142735670357718808007202871693890223415002705335170774997072374447252984066743997700734797742063385516133118275932979495518148508797117334375476872669587104730349547145577916026190886915091507730085481203581576953097917071015946510116852082762877316953660308791182253939782951274660611690309379010347745574631852155516973726158236671055877386027049332861906041200027965181878410312334280332507615789024947874620084335109746005850890298042701710119121829726966423947426686530710599143014827360163342318828237018518087552104994169265766026747208245942670613269485945020776704694232835404972214447527014342096919977806714865128693658867861084531020255377867823638125804282054758369535599453331239092925547931154580664462787020474777420685498524913443893332985587724567081026990016897499940803373358341885812463112715300754876974812566565477601485491622937629142429701815623585572236538767347789342060571013269657938833434521977561042889229008892341685853386289417348615553368168184861014253413674391358565744495175055430321646328212142236744908492701030102400206960662162932569516664247489868034720602884499581163519270255931657712921929177180156274861809190963448393443292817937076530339896670310267184119529531947087814483334001520262147564962966095033863864883544813135014592124536559334812582146086195674817504679385052844808428830170051301643801929889133134540632156543778570175762497940216583514986445365766407121499852319842609816070023060578243235256223139301646330794249450825529511903339862381188492514187974501723298276768626519492319273817171141206648734191625873481327833296700734189437114206741115173227171491760846976596514209126045655668754870685315819469770971338978581815709241523884140136811118499771201452389955193384667334949462702348695669035019419392198192857641599358677474339362088944361087051839009290130132482171963958479636430973285280479456335747113244104361412681468497184884123956209924948364400206532525444847463684041980216923336341512668365293105550454952535386331267493176065378368546392804281653357224927873308446552653399019694095237086324635937487689980748322821864052097795778719242519392931705215821371619209085855507766050940892722728952558635307733651214713571008158573916388755394049213382171229792826879963553414516873110551529429294499079585452262735743259312381165462290542877836772275851781337214128629038514460719800077040982161434003098067326904494906525463016225248385806000727333669410504446373671964244773067814431189312210014754061162465730005940231106464444526396128180726289212825527347628928695373323979088843418886333975868671841755060642328241611316851353715522366933003396357638905283967875565401746746873154283371180093288097418193807478735773825615974738759325115234989302738534820049723461057171710382717127097636186265079628297762029885557368795657721473066200074261807824646925911439749045253993493100891502375989774948561050802636267109082738717261847266277670281178224340523178308457573208225683900987138800468681332502284580153809830656850739626175012210127444754504165048985683089911140182689106914977983558338305456625342899786788765889280305513844202847999424400970548235253883326920541226533916726509591139931115972107311765620913715943209702262683772834326906895023409675240424314101778853838596807185857808139722061327510862660128295437710733530665379418029094159300372904393411831292518023185441957636062782159626231840530096067661034599574621308691136384674075019943928551772821926531513432945192788602036781335313904697623457730481760506380986418049779648335440199790885568850854790154762102763307012320128810689190044078906883134352220850763419784080032646937614226455629002949692463423803822536449319752497242709693360784075526490074109022456372551271948179223144645562753412439962209732447110427185304498050583310598342034155208392600341454589320904784837097210272050891722267932380499077559121656884121991604388986721554158487493271948029798679576269630554113760854408027049263270847435059891954531983087676281084481842776046003121568324765073137786332453408633941644894825038844850562694005322827018346454088962508904436082404746322724998305406861262500391175302159493466546192362125112811459207133746283905987266047112129806377437616266958520234464706829417514006041760442723420398730661567205045412334401046961833708227691428796688268951474178984764512467324551918448711771374746841115471405775404362019276249940749412970409985477623771192701116659258694632619573272487752082456961284014768998238026703031632964199131761007591093873629035146089769394966645199478745991292145456371127556910107012753433821593090653095505925322664878420305123807647382862204465423041986633774599926464819250744010575370191175949722557976717301325916872918725064306215298414073247053552143546870122012165054790042452900553005280308709657067109513425853561504006937514183092309279424940397058892647032707935895273678565822308181404647577801737902719760921331804566003016465850568811297743766560462209351174478657824492846367129690635764620485325079066140756716363743433304721951164534038426220470370185204791982581668986730869743725230447178094910283457041789102894056218259408479858932521306993594387341110962571111960759460846676615797799882826571606943306185325033186571404610935839987589196745116817099571115495073883368564476396652567059375484738135019795050719573765100749750020770358250023231353844158079581035394324018515597367330847366037093103314698551340508502378766900938764536477102309192808176536548752731005053975933827024675695893014466259290710983064613231289565330719943769750611614910129796439109186298053716448814354023948713549294651002500848269262959967946955310753379106133528397585777999285167176894787824672180835380074673677283607440260795500210790474909152768595288396086308759823529517866367373235902662875183673038286658032373999484266381851385918645502723924570898487862745584512123640889649802882066024409441012719887138781729721094929294173807232626550519417544702470693394701868668796648312382540708187755108824210029587693929618667147307452799475482449426479660756676052590117924411012809107933349799646243314433683659790299300363541848355089190152898875566012708734537856829575276241275490083281757817008300749370048066976232147874390227859390419706811192978535639956959333263410880285125350371235022287765591419431881006714989817065661390086332419789498449819571383975334387714601074950101385480925208195327138992194356724056108647134004279041973140027836395159424409428414658545362805945823761417702306682136010875799466745055258172234006240113587879526651373342876467147013720016336749923681353789198824757769804442651706820343781095627555792004205400298501953079420894200683802095073282425961128232820296115885169418649025932327918157268545484503904254499413343096870496026596094329026542665997715943300773073352942388056635026017589061876323142215693861625511774578778238000669531590700683237184002095094812439150014330850627637773431808933387755955009466256003546638361707694563972340691537462072191761248680970237127551040276100911137204023709607319984297718495534989023842627832612630070024060509861391489855790070017497609421705851921298874747167800663422451087214415838466564635218796052587568875139032061343332538794625021664743425173117780045011801977452016138463311574892213211396992396762204239791743338353948216882004055474920162246116977167373226891767605508608580911427615477361200173593727175709797491395909866822795762394948815328826695018279658042474012436089613400146942292545772050897635296546999959617600969042871826979623036923600554534628050165316961446431538943629815001754186334357558548637684973789981128669904564317182227404743219392320831632437923945583896571285109619273355164801913957278802942734062801888977338919293877745029432669246287204221102440792809155796575893327206127723171521586026309752993344149182961689351620379712262714220098876289628386186833478141428394649458749207445017936579985458563568539139353785691009071507928753531016458102829796986691354660702438237110095886772585960665917687540645771295073566674400849473553284491455753599629504834985754944313292001513502098582880680229326198525571626531077254903125852666283270418091423086599510361178253544652571456913855606798661278590682373057375312166699207436458048669189727249322216954841453212596738878528086827987649317842727607842122997185503317981055576969499067164796066293155437049769669467609474211477613004087602251282546940345452688241273622637682312569433853382679123742486079283813803501330391879296688917487839533782318000273373364894495089312927115388656511337081228244552850489386727598878826962098518465490121880198189096619694647251624438490976064817601106376082790844252209561979461364444073642903932994843302254697168100035793215978094701922981774379473799276826869007417423795934057133451537742333163140302792984479002844079010485197045465753958703507477581920192523948254922249975347588253728919417305425516396235003960039359127580885212322235820323196371144198092922837416835519984419580050441329308085905692259694771797806219431270780726123561562455086378061719458226020961369492891325908285386179089394820362125407437522582223162768068341759208446482638832698070126088065278724660098312972929770867939728237400732222593112766992884457934016209880908808236712576447733067484133719062092019533297343830367311068172697026245007656072443712950523102884268229282634484891221183697140554629841969806816507103296643295165405289540619729701179984658873797796116750399492123028339905050258711761276790572701985147540439680866138345432785993278906497333413200031272402924426248953575045777243767227962625833658429614380694175773023690806279898317270479762571121559606671775367917425001942492591822494978107424544515368169035377329672327859508412852828299331668278728759496695733047687141861066717486666462799688128814678760359593399678846202534856879728971024199069250498484778967028959794224974718636211656626157771241157914095999128181895392138751086884828172931676817969177038379256548619987723558422668165233486460734696383707066701275483026801837697017003596756638675234928596883071143522597789585437885068438073520382126256404827010730402510683472244209229295200004173834453311061768271395667334166066956403919212776386411523974813039314975397570797895964905395682445225097431688855042001772031186864563021242156881143992920297762262705856604405778679300327518295597733374458242338197248432567372981313628321620171805799429070965255031310005840469343586583050998068170513363994827944379969566220116396812075270110019213132505306928772623782553549978742507105118747170580736630998217269052697870147900214914855613920273986563829192629889881604415953358963088998855007735435507005084208918286304413867254829835912293676825759867184407931758027416306784704403268418162864954526080767039620113610158821621719810280452623380306761231535565616008859819995332377696761126494621487109101600299575780297226363437469819533255624688023042079779564258557553461382906293641456288782822482740328759882111238091068569823828324251338456173068817693125271022966990221299176598514537532288529888572231181677295981093513154072312827875596503852703677550397098173042975294922065551693697113721923464671791139736988819022208221371829127979137274325003205689218667524596938555135812461985928099302099105733631493467136218935044003778256467964048703430302461888280685087196193256029689903170904231651195487631676239406885749056173121638029237398554092960910663975558137321907346451114709384985738480689147238010171417896910426364648648590076782613037500720637857329608047315858186602155888304823333853179418933418514083346639707963442944637188800090285912479850374666443310834162713374961521401484989235269402254773871396910696753359707966607990358586540994698636803666789362715118448750878962165611000060990987445422337603483805552407351643331691098997993636547939307029834119972966029159753527639944578032919433359234222435684540915796086149463818358928713922487637170575969622847858754899414872194238036212766838136893632096777699720999883311740462310871357636319629318586343806491405911960433676403561420526789838237521952885688992159596918569235754062786014097436270655092635366254387883793693135494213690529778078927056299609211891405846154725485382871294832059839434235610361091883593984982762023667723442515866267304236272986061312364886116154819338321242900417706725367465283399382217662372754392361901583515078652633136042277306562856255052901530027377694001733049186674890826616796731732908762016110843984560048040675234877975319950909831854303585632229773799369097882293370683332512323235885533411492131373750427216877058282154669290237202332561475718419892470023317056293490609709342427848870393307907123159360492684371041590919334650541577371558410289092109993013387129061925174434662679017320722291252250854981616727272070636952716094636133513475379027407553960346973330811847328074651918860214644064518348903972371318898597283007317506136475766476720327676310056145057932562248528270205778514422329964478843026368249448914995742611552464108969932116138943323637496294309924966207593240676406530983209633914497863745811340541144687778430273514340013968786430656054664994139099466122093899454016952856929836729004930856882622634419836584427983225180216233949586196601053645548172553464180313495849999203468132259868028810441598832326124622721048051252336600950150418176216627914846751016788548509769749687459816845054046786553343760925482550258444319788977949556100579631205589808656984161183222224226266102842572109244495996072088529347992123282909484755678219434232947168772215778889339098266338340242864240938464892524347193185397673607130213383049723488023421435887397060254196186337206383144334972854036021292011354490519546450480658235986449081340110414358931621716074227761502931437499771641297312534551501184587179712201439370913340440129165560738294682643123020467172593214788883449560124704593922812115668368317304461408402192060275411456902744223102444580159480980930806950375997440460358145289837493658276505016570952603419352698881976775639704814200140622453914882361625239457217097889773026015203872542766231258818038705769891794363180019542965356892906328083781316694807708775347592903071419803407369192118783517010063798830761980959952288185576032357515077897887332633769328085147758170118200295186463992537769291243082460310470936323540164810500973469121316785588002368627810785919210456090348369775278662064583529005372885606154402983387102150921947993999836274841602688075330038220041367885024380825810052041864583599043097622199164246790263519099915751014895184495365561850952146148719483969182066821780281447687531270972287039033295326367140458858623300133840288709787890708918193241003896353718526330675205248994853890306023695719873074837222599036195367797252874862962623755751900780509495751622209243163165259989557108925633028821325464704534304897530115917533917785362613336539896677103532159371303839306130806949617120614227183062692958812531040425679566131040083422433203451762313132805915992067023057788100222040402041837704304186289089475755579851153692248242354673003404683176424641357754965957572069678055395495614423049024315102809129190044569977851434428102030571901290063113734160247950370522837104843848668559254961512996447626339037097758764739592824731648654794754092331057691540084703825011160654730358382769099144667009038066447842766932470469437074868013519806694179361546234320388496840580608296897302836392723581327761559445332743162821884762899832870753934428622133328414740008825417241769712440557590073486006145213245137464233599055642203415685324078731660469267936251077686039981522156983837024022267405854873239068238495449706808339762965443993043526347029207866105675277206346460709116184236221437246799158784420687256624564858987561355650367895267374092627945099316820421359694549753040520224110557881711758426804458402218648501139224110219124161032096528666525668090465298042421151569097021521322930214031472992459575577744856414088822045431799251382657829385591847731574265311903496002411628074194574276274397685429799973413368204600872488532407786989944796045337377519307886963056285703892763246230646355901225578389989856745650859717215911955020684033943313436424918573419757524255356979669291098230008926473570107608371650439705713590912610091074947750601998086227746249275768549386805434387871252166981825451083039128535908579226337656639348809614397962421500449982372351657233738934462124314585204333739698037224391450278603663447297020357432891615006769694162243920646474159356108693273583123220161850170182140016510501413520314214310749157316661417042053058830219218587959071557095071507190769128607113980464946991088070917160334360047992766367123994310590418999027310081763205190388175273435722933692655417066780170205547524093619894171780867097237282412302152887940329963233338618456862183612344742114553058016899998618877312668922897783156502502707294934912877630547112743980586440974098882872048799224595477390937848538365794524497843210694387462425244546818894220490561678182110997726030683325900220922257802691433795513494688011473472958391119314629095168348567137960008559969510331815765542776592158834797896904509305168061820615896761017343546154210024144010034518518314515587458932250659900564465892080095758431289483961549733181069705496475477692281340440200377362401663712658271866418915370197304088794019679588707104195940577052565850669628152465759735074561511093867127702137890365174359117927823663551755984420977386099178921743777572990339612650620070396559347888982241347572920912667556571454600209595840937904394778380127291145754201145325382723940014179203194898085412824951918442708243864722309693718425055918354873376590963060374144970563761196556186111205083792588228410065296957247822269997391270117000248660510801520070992274462470836782624103363838647708672681541470169449281186823855333577815440246983547756443564047684507772813752093021064631463540389676651893692753636589761960330155893383144886465058983546077017451137292854222808607546487304674551490482317882848415830874441821619945481838941930188414829133386995368062724881830851247696159260109734248326696033085188321104838186448657539992991508868616086582673268349455992184715480386562550499787189242978299647975992425348661646677359001312338527920608335231967955745110021522177271939632856234037856600125576004792088023314616276343712921230261721486898874051904217995002509465099247226713726611432454470452967734682754087366547252221048447559551955960115905745267881618052994183103812189686785425055770543630290873330066915049621783456253300120408542079038835482495799802152768000828133117798138003318387700282954912083649639990935013254686243129967727235522991781896067543461110928128811304539762110233261585925525142065215935138954986414388566078515595004112552813882792376854558116381245183888292499623741950945914687715547626035718564199709079617689075817941300004384884691917366234503681841172821329220168702247950505514076179908610825819052860142189262726334522666184977296326908267028109863274302063020324308939475506417597138558359867055910127178643538841715117327973498200450280386144554622521586211700596719311664453632526187719110471537088445727857617747018537785424011872713102250954758144001383874685022817416381531162697706106838669462865901468362161945504822301554143801895724386547095941871814924842722519291388541291859285148159424469229222803434602290059578444104157554844684463924670080052747681187207094216087218132354859039196665904939226130653620092458918570141293227817997383907981450066498816889648282718070178303567280148880278677356101372058317641373208562229793892288939882529105268199102964818705886561488441647721273052324635571391154742850387033530857879695986538808473208980181883383406017477554668945509124832355179227719845527317093210801744204647089415674527701385424770987287929598194681645747242934885564101628739060838580472864312488310542405039473670903462505993257268654584265838885246605202798281425720348361828908651908618439442798760516999253739698837583323683482615476255420539020297961167473746079729532367252236244752161118071138196275389758065251713676119408715161572437644155370252798127996562777532195043551983710966931465077467073118054157432112568488805558004344488087335368646015410522246063870605864428819497634519608145105069364590104198372591793662054636005670315353722102761600127069337052852248779050398493051587680819132864592603744356690775452376769741938683598196696562356539833399281654702110565040883043171721615641453155005120747499969859882997709647362657962129848461204841731015701617421251366051059998999942853671380205114217505231868934639980260902530082055473824724680618169592515480650796132073165195592380973131797225864112621636691725212982057627539195958554259775568698730687532339345786278718859004711279231389263981700028580688069282042105154616209993531889008093183288846586377901628265065783012400649848586451867107578332790647476927131342313512845180201820527985967979347871118806589178833600869335480712588161370198274252121184129344804598639935506930411270997631945943919022440758421049647077970302619646748150565327084674962956900131228277304706470920075040906319513638435951600786893550377987479723986246966752081404644022711833265673856395651674327537813707891750027722794131911462082180342697908802346597319027988388131325843421314198141612366522537422438224717498875969952347348600174491607207377095280336529492361614786454140083408424448684652877983306722345169555512500445197369519926447121822437929398225706003690916634163315208233962570049112243789022218527196596645814505929283907104363509623754291304102255787761733474671263470293406047826000326562421620667266495361577541587080120258988019632858837376117452583347882897383223022022118218253801179415433060339017439105136307657927517103983681173445230738480785566433742999591758272772254798167285519475358644428172276077883046452362233180282413920555841127694257165535473829376549317133519657480911158375422359950408871937222900621133921604126473102436831067828114307928491454486633379104547794957696451369716550033622447278280322209901385148779633189511244706529819696561154439345494930485773254898534190538226657283743734785171851221897534245683399366108755573316545660639704023527436581980819696895777195713440263925179439256078260288430487076167532407174445497676857381512330407125218109462622173057200680660494263377760850087897477335833880603039495676914631883904813419975501933332657682658258499020849416384192288817494590118317139667478498475550737473258977939370981007350659369997117031268399388443967522725524443976416202453618550022379687424137415902639969362770781663800535052180264064411708257671350459694097509771001327171862199004626212139129866912961684206762809270310873288479863445836774926410438501501003616335947463790163177730744040685682260528391651378676244137833054870514663834261068415712755235977751608023048951490602946822474657322818518389106256421146485619062988786863092331735249082254920304730826697044221477763088782979969565263074844996013247351282380953906994706836914302952923479595593402318516439770688815520356237605232407539920306652936456081756845233931350670800017394342100079088089212920822103165953640728279143592353732924735379384441256747093524263983337370348021369764094952872979149524740363231514211397830551637203171467604952832501241386065266456745761053376839741772533073886824198124823025945763390823509311056048296160273407664350173342699475089202062300468847668420286511944329632784048705986465738933874755412719830786806618376338438744995314359529847283838315041420534738381072182458302871803920145931894054878133677129152231147930384588515798637836286157987260350076661965435163807223425610901630615913773621745138332427899426122768665454374836808743016261553569819448080908459094280973145147598847566374964832422829415155999948277901109482062860524913791236553203146471290487326925437764804470231818886753154390279565369961602789299534387430061921355931156020690986130493750086108583254907073268112587989748250917082136606817557112008528095710282383711114880608473496971595646668280661208488736541115675287555368164527060080339099445500864973971805179550789480674350069270076043914628211810314389595453276827574856044593722747228679775641740553163808337533286683403260427863285777332966363387153790907598949697309599456737686330879617278484606713054421313929213567580517342788540212646032457083585007028611562450718534452663623918834641416120879696332778791154735108686876284853250683237506497886101100896528582994472739584933080764693720299458913997898679531177213246707134090379542065851603130422142106049885562008783764462648396879127490353630369020351264166359747546202169556610935661326156797437456479804962370429521778743376288977049509551862956313014463424335192844583878074240922782998997961098084172355725375793427243039930072009380256629465361254163633468485429076123544105622301264182700515025828881969949333778744479199592424774621209255910155601770397991272781932940657332799273962695360322224547562563976352915294888899237476902697850760664881961815392419269717763112439139165859805366024720053103672747268211533979973783774868349353538985034988195447045783239261971610372935880957083292646402064454513232330214370749031973598223026518178681986561949515193481082611370372127291497153468871139582540830426346070542197716607010522970249255437200810856200526961336218984425821545694295463479428209329375679903655172919505379169955226622327368606243131610139086102909571882868990274973792577659309204033299656252328123320120910049855745380096006882854219655040470448823081635412386122958843427802110690499738347389148117898395728599335081351374608017716692630732333975419064056470062084266112909872687267100414749446387660100581610615579787887363285115488911024320303988631378765385040049283442106955690105473485013811387908906072297688973381164308305809310093890383990914489927053363033982280312084787373343378838462714356258654565575119674606285233213256352303143510488360401537096735747561495561963824443739304119425833385610134665064016628421023712856825450398953700600539708098523754087072469756334507511568572143031428199793550926211177970639724825336514819430262258364201001433000373872631011417536108021355688095192543636686687086869442863270584469689817789483808624111915664437459247894229271624142495788302957268978709666601640836423448948544943798603204680631042742889634579232921497165359187073599043253739051004310316259243823385503398954702250625383839923555491411446577304169934151483530271132565323636632410856953529423813727097372211631403342190780240488658015996461036060912932583838419999077799464165864809855006097359518545469647611341321685240178348505210029026843266973847212024221252400654897685300108529772121330676255916195555244520048830525411923826619366053825688754545262991413188813700362481972410801423392933079620059429275255849756858456808706937496815918439511976804335882101506835130450157077595893907278673949498582622762136386356731735944893682375610876176372686398928005887760188656061408684399064092288416765400752228523977253475385480079823315488820154697601477188281623264952397598429518135348686215124732150898784770185990283309899145784163423034897642846793002071708409314261526060043178564421842130034065204447870258974392521625880907803936653270238104322879585765012426458156989025867751145229117733342612435081493275926307690397296555585012246252990174507419588538590643919324656818491908991085194416919953927612010371150645446523167478093413325407304165228592672955464498684163510898603096375744843342027070854748373833736025009239090750455903230401726301730663567453944572586867052906139184535146531041157862719931391123555587516194613377499933732000461473534792476841764801842447688582208093292590016279750888531273643093660256592303683932325851306876049929092607313123439686674466287037520947769576752918257888170369688075344377938244040352637006086678508210951798448180164398092796843297856563802684402577719234937152714009561810271905123269442473959037544353571690126367576405452457159728669783888824334863098725889734504688660511355217571058583409280005169609225042008545981825490350565425642610966688930792300665953801463402817788536297598029106267359187933301708815074258256583384236805635668813401473583679876211114315068535159549664807172135649161944099953616977283695362408801593551786409296692740573723758740055160132749574133360864115092209824492695583959524343465504479417260538913380246323963841741541745404640528465865022906132230895446585416920161960931917562658247370290342783830555011346533980850312150207983172974711822138972900417359977864316720565311369515150857921567576210704600826359035560263371818947705026909856397891424442255904584983173953005861419949551545774443007071868647543847701063109864813510146986210297488900023158309027591090362405336851273606349068076264430640963363583297319632925432900921809926736932221053937836105861951620302194652087832314500231801303318516504654337244125336519245395629882858002205074857044113087464944052158602699198764665919055705331835039210073387184056980271943431320183887608553617706974587084573354504812308422108412450350094161244377721950131469870206632695355252980983201398192990405774932585641814996181253601487549247328131918068171761140200313910832076123262055143938069510388757389548360792476081607125364305021935012010906958310434344096631578564324947677040463190629859191776820350835078970637213785781955174567860250837996131351891391175676282036258127390892450488236025034796176604597152365824807402125176654139850787844178623742276022950323672767358713714991456148008045832158866478127286436431251307763924313852733352570619015418027504897762949011267186621832914948965225022805072502886485874954046301373396443352992077686584126402745678059050663952679466512871324510069460835473735038600704544227064373393852484094710068616554093783578750752319878205407137207869915600412408999530207346934977460028644675144944244272943134634332022563211473292967300786831772921144308368852586053216606099945062052285739653750306186702216088117115535418260074499685753256338730339149427003068497581242470031598373168093796530947625645947201231796322504633361693249723756586855081431382420417795796094904017977973900098325822668638850106308771797024756553549509393058400029039425429916957025669728265606946273963954163693767794849828890942854316297819735883568305694253664699155287225028488243898620968456599087256213840090525492469360466162435484972693134141910601178225692175003612968106215654510989728643813915407219001247859171894897532949042767216969371145757959969868759276968317868790181811582541189462969993633563349659113612453061326791862093894419756464118482751876571383367310161095656245813201798387700294744986008899147587021416481196789250749222269613809608420809495717196205381293231754634537302627173827243550760774247157703296480294614758065172733842976997697950609321829996829487327827839202245735766194345455554497859314137306589727614067610381349345152742507071882801838921978582438318964859440954964162208937705838301417187151839839246247780205868864193117617744388311132628178284599181653025527799085107668658645649466520896563571680894463757989447908992285653270007738938297853695566813545564785189598451423227005102512941241876768293270513079451316682423715169357370407025497230624421430407336481806783587823457455528167732470931459356530718125802910850632727143310823896441577624396169379053144406113760597289150033686287476804408196327577543783298455070702622404881655121906547946625760582131180782099513839590283519278505252926931592349297318417640611652847131613178746664689507165251509797516255437800350328177933924147659875704231882600460317531814656589317064293905753207627750292297164704599491205888810025806837536220950504407742707565960234242047966960431616819002250272732041198329498741674848576391455160119466612212649330593323356824086538358836191887754917141699706165418184888803579913376955841434173725696420591504583172804419219839962453931034796104336855966914325620820398346241503759481203043552575513877334839633586703554907650283256034523217950316510996367495054852022780456059269611971654457940502727817252997647820608172074164703500615086470436230771610501495818176753460026000707636394723328732451486436123027571419102041504803485192816997382654998559811948932356401379225569370524746886611644107793793959630710152977857840484503909753869216127137875691182530068293009875576232922403480001048398516689773652552710039162007940831461958475921931179526114900423588061099184497521901114129039964545168477468591746547340860007858775609966296244403755893894452246321571206153663562127395963871267987894321003479669483691778261627471248973093974654827764103710408675693457638359245396420442849584642547975289014551347863687947791017738685209810723587273515560304710461457640470599136854179179223039128939977804694758555143738282108970588712156060205470136060392132982631487629659991190940491272908037229200565668421494010629052889708551520931164090388586344912148646276415358635138992785153763305786992242058640504507247091530744165381581657130354856360845204665714127812742072955028695748221630452551871340876844494707418408887827351042959904452823201361405923556950174323542173395505486425235643525676305472940699223866670939071993659559027827927951047612572725476251776518544000346362775384202228851211432870618901457023304427580892780872686414194244953300897179099549156989978926464176911269226913312730248804733469070073492379235899850931277379916407391934782060802232029577905170329175973455404476114753920935340508626975383440395898216088148026102087279549127330731455593344534420349183793465048049801876211007239678764004587685006672236103772904718055355934960712898757840881151187525943110659932410742191631384244304615540796300344839087496945922614322042352000169395392922652275345060748539783511121998341585167815011882267285431458894253474841518058910683683074324253883014045315355663993347215487602220175455302788420603367832935750159766842143795743295046006492859032260422779860613153081529900084585353781900184518833992048065698626088519713238358162990760054250242913815812062288923968496745871368548735891864255024376325162559761247471375618534438513660966388812073910653370517112314319396995508187501862720795414160883631394109927894109668607021285273737585236178875332236043311663980336520919692238704324515559045545156135289276790704316563843335021925926996843048297348790256686634530280710627806718334812073265461138344867281069085509932587342046801021289838668929470356128092697491146823307029915336304620470858947914463967014041424114726548640100723603549218350498014590636308643315907324551559736881509063396073071638297424190469889571613365090687463112839100424700459151870432435694009502262900916866042544110878669031953751923668124908700201530320697875555528478284932919820427565176874479076162988489435308001910513519463811225293237452794072775007106568536514013917341806633609288174757995902115810790414340929132281512201035923476286498491862191579319459150878824967051594579364725463907595582541006445682084143611850213282388532938242639157285985296906214499508612114969930567884301971882236022661000351476180934333525145464313388172034042958415529188615780040274905777471024554693164963984778729565902678754703588198957311391886425721023781707674958573406385776139715578000577081143026414504624195990982395732442617581902571082073498036721274813961505117905516061778257706027259886634159723172685786094796644086274426456442384292313267920274941971692000653929851892553897877846325266116004555616431208363296948287989384155489899821280365045755570113208133644828018503727913898960097268455806683209717004476682343015013650185606376167524117998937183120365837431306546724352456010579895893291093346545408560021085012321490218571404165072234014933633873920268014288028162088614505662898311984639378353302017610003935321807732073138153097355372093172062999360782574383107328189911207611321792305611829742924539174573974063163911522882914237833121080531000297529502229706356872250573247208322781275918643796213715516422080082904851302293088080717539096933797815260569424743563267866120337137970110131520611947420031376682798496635749318134896258265512549924434011872572030940120753860895111523995836121754759310010387884225846325918165683715662565693964691224350888333383410676406569774504958111980545081564418239935619153551300841278673898088809579588976640091351377463405060990376216853786048435657170213370852876443531612709354843102085180114217150009812005858125520216046035283968127570571038848982166708525470790661747727447169357417577433861605300236434748635119006263117939736635064650606602905656533229274363418501076181975134257181155518221286104662976130222744382985079207435674097330241969467897393325350361354438776108919704802132999446732223762515366202058640456610005724344633499559951304968468692857680467565154815999220785122259348493419948919376557767216603907893646419863512297726916206178651142050635224503351888134001846851638769434063778809920961459950560401127746842625624939007615168077112192075845953649872097135243874999268643279032600369056386480120733429055849414547482385919486767747725482431801296214585474033030615760593969246853747769883134499334176802722903365659398175307962677769393927192236194843803787540014112301108341338142398535376875086535691115311481934919194285383243502858381630106429254318796254526312252759095091724715152906816377202620972850288716138497567423920730547114880974851124081086458862275765841882069844594453035336667442533149238730715654911350631256641064845487088197687533709887974043677596468466754238729490126012174733138110443397375756741105951896607845624667747441336196271575984582854755422763326920397244511218666558850842551209458976320819815065180625875388665205158497548970824457278890722479200653815864564240446823368855016653704897679887039030770944780408460500326124233223859312519108327788929359947104851662519719916170395800485404087788114896030818211974541654635447711992134846896476217310538401021636340701539577309390126897674241963313740670898553641670508723810642995007490713260142432416543818279840417160889588330567791941209294016698457325597390820006869425368648404715410284554838992473684611316907805831834311060946918548551666950310303145164950734247388661580048764784795059452708355339545688273528058640670287809057571414046170935138929045831256133475034625049385923269795108254357272018277166784920669581965008273946821382921975830631136486053400140910982529903771575002591117833379871790164950297338657453463994401787556656186423680229730409565227437102075230692905207068807808711427312560693459510068563574190723733901303071135578579680651085267201099408145809431626118171612057478007518011917691168617829030702703645945379408325193287357910957889554392763247008155238078975279683377705081084652674837500299506926114452100463543773942811795546202847537789012749801822413271128771955706356499302400640813920306372186451653007433529065696858125907017585066197756973100447334315193490985863914024459974525251387365903124048044762031389649259766937380120165883862781949002241774170848582602131485397885465853448469979700445847695429450554057362613491688428940416694745786865161528192875732784975488277586229356284996246171465881999902816568595902993710836155841591881960443191689438134089445571221758506935542160544114532496364762880343050599294439264040232446204566354581207663002878999159243291489125234556600116223418481890819087698838926600959916565479653719953422402351471786194262498701224709258464035889500516201048690914952794700852755063519956015133866566721006853213438490747098394147167610760385659480986449843628857537723465907072113648509771842112383386938857748831246367174318036712693872963370611264975832930987457327603436046929053143589635580173420102672826443888483176720632548515916414072750259386699789016182360675097075990684155923987884609610365956784817244517311890767799688995171302638572927420934204774253774336056124978317975939547968003545379398322826327649787721035787963586155344739557915375133963434696967023285450856480462402384867026388235781397801835431396184819521527553560191125128849876532031194029224172651570295292647871996346452316160862856017809020445470419473035628015499991605806589805106185264319598195767923931013122682863334180624961648605897771970838726043887114842264924565536990176615959058035659646831170906712671379651769990652275095247831732093369620873658076119584483866103163483803404154051306045942475778345270030643044843434005527868491744555490917638982014326973253304948561453413634186344799991495412815875604761670643173176430897233269961994918935767151882643389125705503817616660727684795177767475797505145027648218921224969127604782276414587255270513075637532704809636118147907445801820716805749735858832648556318273507838343626380242134754303673949106241114352181863248546692867019428194882018809838931467555733706269080435117357491973676152390571569433600073722626573422971119544429257205101878883023663486429361169927202353350020323979442382926723473004899413796708632997680263508397867446057395980602272083230585237690212165785648144008147536212964067174192511985621056100915877194400762022171168635657363959036777265201783742796881051384791531142196203061607355774130265299537331462186288478893112719966652129580223207403200750869555170150818900194452316473048651568495817871351567821977050289159906251747432515575336604303538298305653695673962365583071559113762211584612345222291246720027371147180363359964519067722975526550543867900085430954967125373707797330373402727448113076869787034565246198076319144796031317870665792872372367620783917519268730436075540295799763384643886710803273564200299854708776697137185781870739985881056061572989046785686160159082915237996333881148806323208203793554131122951422015670646790900492961097607468112535669831057205066806271400051718900401865051843660077639923742375780937257996630727488916803241212173155928268762175482484326055631174520729811086185871710523999951976766630309148572195058235337499331191608137886561949786499312932599011416981637184373487179665019732526199419658424922390280525195276181200429391674918324380421049254871520173337617100551037778453274823839732169247208944115287477511561196819874957574223033823165271033453982031027612643740390404041663245591996734155073439813230067261216152907143346538105605984040573645203222140632573246056773152298299250584777221952745766696230796478212220533179870598409150966972736864362200388969713067954971839490003756838140281705269006305363075710370726795461802695197848912810857058827640257733306252513547548961981388904825050963877819494314244232419437653173760564876271289078906787993876292802269102903613418947591817774168452715529100780956140331662591092582184244320545861065406460995813819582699737871205032482969230401200355009925681135168411016670139446030822624891327939007942957878196545910389589535200145378292109709792641760698163819639679294376212377805378834748131731055083811751574621864436816246284133683159296856993279897949243679842967591658973391709320125767103979626481295074218049028146094558323494460930110151945510605154161147465698692345023310682772800833566000008330278801458975470817586605072016607344525554798746853871267941213825454739883699953271750008954353384561859086143339442458630682478404496618789197190673179945604757098682421279833873991929061599178604914164861809191805432765174552506279551431862094651825113048633047998277561641110314802068318963988061602994260486631597921348909639203015394935078842062399181958980958650421850145233230386042172144719234170602086341469596424068776082254576308819400391166903484592345643834815146939475163598294685335470679040825676573156415185577765476816070333082134158984192791935229442770512520188580011521197250524444036320429550086984000914090767799677284840924662146459970521212190040740406784032275002557802977293092673157113666406362427651156761697796690862115659504903111913036446615874280733966838064258433584435432304367480766413755187727327565086600348548990700140120385510677231521277595631124845459364829375297758345438303247201284530920651697933922076929284508376196257899304235741155902196386112018873284842512664303137287119809170514073947410160094579694347441772890778053705162219952161309784853011633134104275152538411715173452692853960144559466777658153759722754898504411206105554183731302774102280774642228225583393062681775427811157793077125319084542910061895762361333035160976263946981687018408339560598817222348331123411280717567846418995318724767762533398168835019239524197746002639196809677807984914844640014348419823256600766084753795803646046451048438896450144597673267476742380145924634531633011251769887751503455088734594557135959782380960408787811416521826781257382029465412871866764008988371410907980393676765152446960293237950762172297899158879201615914128278415944124394358064749776334874417672448821039531690056210206032637895905859918465571755568339896605894206932662294818236594874248830239880319789745280044144990607411145778338043079718928404724443925483197507425448401399319320852588042900241076002165372427541950657024123033731311491194923398004631256587172894885886228986844838510037339716295243236896420351126126253723754733556556735964109623583169908104460657498799629031882892563933520356813184477929012079172226509065979516925800898403036278050851142364178908026683425893790351651050484992181720173943042471756419343415171510850104643912290064535536699542136801130574533698331035707505589684087044010724144652233635300590532595190158200027036452069547232052354628801486897536599655026936621359893708050574666294358098040342029046269347973992674317027824331742622248225667940955900628392828066026704484087074438065893783849591509178006852151956681247913210367946434777669502160639297441173672307466395291769173886225058607040251633037252954014935741576765265634227490880504235237918920411892929586085318757914071274352612639257009355473025280941101078139699723199556618797372557938016255493593680953410618987239089082851458906007893106901913829533764843147496485486507739625797962735461101367611340655750440012587444087606710093082845957908984339012806156781254997178757890729774575291056370687121595755871853100184513654559741634304039003139460350312898102435864697971676002126822387367256043841711385302377379918894173243270515517831127407582547970725303983688379593876514800460052522083945284672174246531183091208404083436585880008868144256390441223749268106124238149060002456028204266747387806029856594692169551252643989589363582134013921185901934334647500158508439834684219186968423041623435093177032968336349021220872053984278510583567127944500318293705292655679540367210161113055148926078395525245573506431215705679218825242402181477262593910171662274717669697991478386239402723820902226606518891739029277458950590274031587445051234379507345573549241641750514889277581353909037827700001298397336307674074678306510865476384265146706896248857426056385875349002625656966190050744697905887258042711421739224083812507990219688442597797096885751967388997372431926059607712271602347720777223619991825595575675089714101207498303902772323991091887708029802162265426689547750574742141269129623397863013993148607264627626456498190394499099811527086879667977470004348347322159069696323234993376680079001350585663258458600783594382070570505527717522143362325520543013413238963018157989683757576868870616441432317136785032496224704619926860788012619821517918859489953978304784255483481528856626301455853072851288582364351919352655552275661592417825552155791570518121620006990985317272241759353559296492694876815611109527087597915524464748929195808717100533733512135673890009901041435905955419956205153264372104843778501376500831964261469460206107695409140004775943322156389343710433128934697142149406134280952420568907586032691595798383591304989120202048223870578175023846043366206273225680333709018533625520644165934584444930069435885776167766373003555368002609815702669109943598041360926177380499758485293019587223589974307035972669864198044550827352886873244346320127268094710270405140711677387774048257917063892379063951793545849763952799656660081064456817116293286701418304418343079250334972334266744309588889522329537418104808190367212688065790685054906299867806523153706567949947747193504565932619840126257612603797955392880467307955810181900165215282162288785720059713782063723755939198429087691021238857895990922080808923480565623874775172272908900867140568239521515699827334077278626192033988076268402118989538606368105117583479558168210132580957237619102723278743665632996457227206568251088045177722034694507138873906436512009677457205912378955634703648788657478100794179500410072699852923586959997309011332255313626882505108113717487766209346274562989877999645749605010978114471983750042147841279239878636007726551340287193473418336535646528347572575188470350321955852991520583598220834449561580472232759601829842356881865726136889899572021824467581782306490821962094352425437043004178368015259351768820857445431385639610117017967982284399961607919395069606636356110478078205256100542066051823802820872987473462197000798277931421919031273867488109724774284096733543487500203878864108624468553387896205541389852096000255197862216486090821768952707212844707588494234527980916311063059798502936419847497778981843870853644116234533667000035173947134051262757426025918574824006533941985643985046012493042279513305440389786022040139283119846683932940915066427532167992398305625546290432159918298089740971538312200733428039846154763314668425793294559305508491228806092270741187148986206619040325515036797312553989293726781956567279904907303097923276453849574324805310949178412317159242128706500888217285041283732431548274483178023557578277757786225231398125616124190759104290122060867974451458308050313508530809001861792903725893506414233144675095474289964939584489566235789153528708086543527898620751229569182690850053875520482236858429345518888873504817699495324018277581871836645839154839809361793758324977851788159485213967188312271299428909522656830693822953067726909594971778849201354479586907126725445540468156963462632851088006731397801128389624028041521035095322472793381077230219751940621593905880570273956741798088100922635098696472305083742567046196507411850484122663213555252555616183001434013898489990303807759518368328524452347941318055346581019872558737385394356727214552529325166301096537237091458456556849427267676459999945660023506926451913117188612395113031022721831830329554351625571617588775930088676478032269295720588935915231906791890026826845854977034894889087102905055378750194390526296807280099114332759679672104690457337250523834358721437613402583405795140873416432647789631753722335570200779774671171568109774514604157479982947971935869180517133408898570608823221360355416618852536675150596784028202920168353864561535390232009574902778146377280072621933734119738410988531408791933599768040778551155741347834625628974266371404168367906567772233516648921509410319752597984324431869050356687924708912559212737671395228531951984064849494594560974102783249262651358495965035186256551448179725523152329087869343704610911400818737699084697270229807045457590196156176369745642842136286791846585796463987519883528134323781249597007439814526215736219081635427618386636154411508802940952124485504823661990629164145840350805518184829103985214865098043321713990617470112549697161488288859209597879061103991269476435638263361027936718930875575047706344156035199451562575776044879851935434293249487616176810470378251412881910196073790733003178433840904827902020356237912616341536402161816036632651355375771121362515335711045086603530582033543621306551905647721918013235056179492115342140908384215903982528885944359039155012132223497027925353036603031844646126899645133295255647593340429456429794177753126080214769436636177433668382923930078206421851746621787711567554431127968186167274867486482396510413698820189437346088051116734619813132755096092225164831700112214167389920271754795365163198317059498784180961220883971995466419193094008588741279393709032870456844119330436976131089120506688449452271779621851102745919207591018317444289305925919248409020307221969949986533167010916202018350268138842451780030339635848597595489834499386098233615247601807410820146808161619603852245918421851701890389754335589814656041015069911247577059138464894913271041963079887067380359838670742451102874383293802804764600777597087280404349402302410621921020307859073156211982050537574041021418708935386344123945217658170705806195568824735155350801586558851589423220152413557919857342756861431430200654565305460503621082789240373610042601883719048135189281543601315171767431101995685537075741196481981138672062657538592329057566505664846904331775035760210899765274251538042099300348604131968407110403990737742189786380923433502080626221418519485257587077785207157503111738635464767543765407051475825692138383237492531748808522354907238688045911055724762416335330799018816702806204178921416377716135972611925464114735197551418003717457807932805600358364164478187301145428359176439050295835090187927174683766122560053129563552539419264872023684698226853215273445744547373011996418711959556189018762362410496655969256054925306587397197248932361820851132601131996869179432285897868471885854872968160052180971867633579552562457621283848457994980004582123397996331639547216889411325810878248705713695886148819697923231885633847023115714988715308003267539917241576363917134254214155828595523397966970348441740436047907748150453370323220392825972386398737310879282099940525534045682133998152838035393781518800908247912614103033540433089991582711158502137135466197289120802979819742827102285611872385007775990202799837631578972963168386834596941231965411162731082494967058584594267736555057104281635147104471573041355322039006308116064807441867119412238530011824062587427277975831713406064874060349479068654389649276135160653508614028043028355289428213230943485845139443411634331203263480120386177304679491442943342226782250006449111027718863022072688960006471597550857861365052409420385945552540374104888461818721462548925862057553031559022411050959023784629215223884626317768928274485586170750824638479850317492345188776192898846934155069832047836717080093316490897145834573152907305666483367040973971957766935369040633895994132985222253911950408639841474944646869357503035665646409238624611836493056322244204729610809000959489472747929032029976522791468370303751810525061450778916377025200504950278950052603751533004241657692578252129179804780154104468533300103681283500532487848935062298307315862837920878296683666604141162817287591588778341887487766320945357289146875307897258821464166632726132812896347260398063569638414551523664484118469460846322860259889594599199317081067063757560515217717817671361520767884621944969299539856256426546852581483722502783417165350712536687271984167721695552740485550196451828032672557506200132018715941070071754862254790878797664924507711859316089108120092769592339012803235354075365798120618577256978660357913678741897261237335493109450942263792879329118142852290229988933874370842866246708992486316209026414914022632383181892717737436564020908889340636164570585139403166232365027435455672013800018272302814704431915054663818325798324231777561924231825903169466373428112702659211353239941399351962370655817912969739992592484729308446420446659181553710488330703450714942469055134268610779143585463117130709161341078718130166230179249675603779420037072066057668049332101219699565864758223175208125402598836397824152072986759454191067889692912900117892605413780394876680451007369977220556506817989266632344841777922751769478261763868154028250055636558656705684600389055602010170540355090729410203210119789015477239859182916363383209617115510261326781269946211937968679521323527558156932224156161884446128465260600544958567401609614017902775171399365573876312682685552213768191050943141219181424931669717720589130314884456697138883440452072211475464567406354435024292050766326324087812747854934269170524898775118861645533050499419747048967957049869662585574333095098075048306208925590577229786227273937661628865553119195868595351858427058976151141037711850632156311867372347037165681768959345120250369238539640591454515011755660484739480908609383845918686711381142870900116639551388935758990506245524141370130905222862873823283412232786658276154768061403759148681816972223690107075851584308169668159585081925024447549877436206410832581472375645646307730269681087501228903693765019850900720287003879397469922610482684975211075701117198322722964045848236735366179588839664689423208846170195793768629439156263867787450437499275063740624571885656678385635147149255283878373031786758212132122799697188336269305687564043883846599982684297609677522367367034673881943440446126143485691325029372229818225243091361907498508975960224363846923760094602468532613563381949078568969407062973675106238661439107722558300089998682743073771967434166755387800535564902188593869988286713784169916120062977619632335839480649132546185219450157366967883569276999737953990917630134865734728039309177887565482538048688287282749043140801964006138245674764690926588681117410314173855623842948851054508882881824764202305107091127659404983231038918424351316906999554332147784355920559626307252635009489610988373785831088788483842012563592644129218857141477591896931691369782966610405291132582158528341441201502831353979653886435725366682608372391558024400578607037178642957503788629831505461480186924492546530732498236028431551861293635752567433888914037814432169779224604457618214709557008480857364717449589110736987541168791253314060675882601237322305748752092305742062588937625125134130344878506815062158639016209616910347745257023483285655696080175483492387003050402792805015097744420287917814689701786653117397279416021158474387819605773434409522913600042724189600438050321917482588465025486056961798227533944784437593593586213960291939409957593131093516833263705766693987724213382503988278782167795247462011775604665160520363234415043433677018828338912834639576546543747590068949208851758809634631078283120025172054761649859203351836655543192920707857657520679320179575536439946807054488438735219217930766769624981407056054770711297007509485444582044449066520637327445794406990823230573969681188607853087363120119020906489275381504649225009057190298424750169256371049807533743256423138998059005887581657695495347364957963440634259886133099070381246429382059503980827607647378138358654092855283523495345434087363122566236507368361847430476443211030548441390923210557636176929544666589240662567439237314287127962919162659943627871844606368793022953639490065334533981662934526279714463191410086660136595267057340166845378665391183751873793046578327953574687279911326535095142165127033346027998579412475753827538592288626034909671750464185538088214678276254941812548739706007776894898892899504340659210228225955454961532066152137549575576408397291631107891309317752557270625852210137326647972005003352919082323827650678644240525044929902667594215128088281560132891771725434840858840431417460283409488992682979695512363670683334507063303190539070552039706429993498760149029876753450585869533637663408303666398644375947765009978927197769496642521381997642315272047356570880230935184954802162575907179426170155237824885293476943827416796727601650223706654447117404217858278630243378109877319651911660091355911848715634987228963206058998121190859597435017927343257189886256386778588787477232949129060795227387999918503912804084442312716125516171035635397809884796707644424295483688613302068007768524789279657147443849588689045205368438693392224742621157715862252738081151192128172302293673177424944555600220659395704813829216176412574953551938250723486567805393307467856760592849386839290160491349384848895480091068007366656030923366265846192351902972446822873020249607719955923950070275324737775285189247186731551663177010801199993595100617126244031352316844946529263829574536929835390079875231822015310487747696323576688701235184242451866984644238941806745611961813641876333121452739723745878494841456072832744103842692528125658937932146074673322743032990259216161308502136928452905957701105270246477380543339963375010707772936407164311400813570386067448386475973458198091804991637014754602419397002735281491835896866056392167327887683449109412376307168614475668932954316757632877384419109797844822013177284925313260381962866544184400149147142066513648944630623073479585810554016096129096832898182137475184523042630014040857419069192908590065528641912235137192317403181689476313277025664498220391745464178119783874760328668176739338498786364813670494289342923280484156612795665729912119638897068615337303603813141155200236001116771985145002972139254791014924184927503961330731120162724751948454174575736855860370940406947804869874872462325519606811721328461872209306179070555496400851107608707814492794935978209382791429784936330256089660398237644728988769910060586864858449178723089249429474257701012132632345117431732958672726394915867649515088104895364525022252322593656421455137584823201883133606424777490037779558381011685408114261944793843669487842317079296679080014278751580298028666536215457503401276896128532532086873045478225709215509182870645524578779373688680387847355983636211596798452075305374240747504864501487561284179218284993163348769937285525687963657994034226383111890520555688402504911380819076453687963302678620036563723609528457832457278888167630590180410696986851253436507375086071316246663278922202022522101030401250630828825471252204553837011080008820577692267982388956306002204121480324341198044974092766812535816540791449872371397726891223119365522071161993697566862776111739570855306184462956066373763414360796710248928831504071157043767802527696118044441712172346775676876648614703034437577984985500546336237967800657658586589888901364552583222606570266407502632101104541057669249148178983591757043533277617922549926166173919320203740759936006286735485423136457112808188628860635983437170583576974918344013361092552163911936502352352582846420435645109183840738608986556193857368591462480208791507754330038600049669692337930880168594338103390217930669548903689207242693650833833719243557888545616950292728252591978923419962496997049282768436852007056855771595190159176754602015076813853823521140860168140725649352201277878844697782990405855327715428513332607755514972080348502724975480008883135358576401543317925747208484883672440216294905570186873988507136951976077900729620577797847026891179389449054835099551373895660809315272766943632677850654148667955780059489254888083686206661727656015268433142947455395421312229046454886970083349219614720240237320344814618187419008729471319311236123418579702596032247313718942427226710083969853239764491993232956311521551424021248442103956789836196726395485627738899376720126314402574086239714328206461127989279043538686035023460195093184186905834364191272776907905901404159349602773296924376690845633692203844594598325400661413525031225382135176133649318485091959646399411700949674714197361859768855757725156210032209290531486206337295470493057977876957757485479807699484098519217368829686572598405288326942406602114201204124760024210813180747762578977466473416435457595834612048086171707836361731672951496389512582871486043113339271506680644817077342356142503533666070817996191663680063966728031135104432762444474144941579065048056946334664500531085577068936951702598618211805226768427298523004859401916257912339225621156207383613384553376301182267138501614419545186659184821020913096739072865161121066966557450380001922915100926861714283135796043171629348462390503788771959701134284457834281201419881343076755196650215180242326117831228573546476322607851887694561229848911177654200086847340185877767570016412965044186717080561333921289533569869031963376813048349576341435251712945509908689378525739086580442908042044777186040901129118136737245423873102884405886091690705289828941800005408091986381815131552933605525517556406663847868207266123115709172496338221822419538230815969461491887175799942124830794484250791038879252703618943945827492965678932339224273193631554475839953737654888071485261341526364615633096526485916560330998819922779821300168193423154071321195757542389711506995064413413053647590731440630061016336666186705952575981272882329619987104984638507474272834592477695445729721518669365082152366293912140857077510751420651511653516778931477964588106328718811288048585772685896909541090729726404986311855201108734326662495837329836758451242446724026345274147792733468027149589076524289498912852776718286730118374237576826433358976318405914476680591451141888637456264408115023621765227146177787882368694100224608920360071057970332739570904379853222376157786997974096287240114970934415976872235010437695843758716553830559838536358043921616811348484906553743669442179012351185281801208130986163651996774014322910623907020263063670425525814354946061880011421679060676617695984490561316078355651796339568868934758324797214022058890645719680495066565381953846107983203709435144253192124149524056464150122420987076975765956255169186124141770713114679886101410333549900876465060262224009023657939155300112921659426329081013001705348204570205845033151729523627349517461536534636888654707956903701249394885471728498945471775410113332676197701814960865687093903148947741051460813033564162626427347976089256972260241005501905431008319479733968876028586355007243063528536381737694903295076297954955613276975237106686484094191711588714603421120683743188720285706313044294831126683380974756045763477232100977323511760678314500995267762734948510723677596869879908118402642122203003786828786632209210132735428440356470960191098770404863758069400744065929423733416768521358984911434650616897438919056865648115988744903989139148105430744348422209168583865446283990612145358451494443557140233492120833959882339274896087264184912429759032202980554442802142371010497286945194872190937714545024602856790546640762269471552708769059051004605065744707386393194848178575768237522066805394622000701879499297908901248218589269535848045949474758722154532127349020943976112522936009542286008936595622894657556376237277647291521189643033223793906820014432663166098841396868171857977745202290700448325471654680488403874892178065353652644332028145465547785442282683187286306744758619825845952155684907256122526673626448908831239723389632670188133369381114008952459153275434565669167797842159138018103459470892363767345029237423681156038752581437723796935928649851039642368733985807304466399679020336175987971133294526087746098985852770101536668532088344821878082603713597216288149626872518834156007909379170799594870714513711335013596370184313825828243850098914491652452189298276630615361644852824248068611790230705798132336073919314799917756942803165635625804919461688936692903345249399438951387393174988566395707945841269678821612793649582231616773653958963834872715452968584340957742132980991147671042249619334367123627505037538548511086195021207069187248611466722352690801821428856211495652911496530162305272017591142769122452711262710181343120564378344687571280454089719043142327863889746100079670655586405267608252900998656127271552662330042153094992804123048382154859270539283361658727071613406627572801223250364536982604452631656429146817891612710943045845576826020467264699453280040991956247184583863635874476008535670327941196210668408558519100460228868161205846134254818733211963948142766427148921585465091373708159071690047244348746114322694708417356238191069730021656532075482405884800885798343197595748399127558709338067044721421004942057124636067669549233534742290757433027733402098718943739913339641216924576327351463311389391618663788450679869808028078608719762126682099056016981710313698657847805974656406096971418237557835474685609119368529316105987734774865916951262801785930116529957917144719938656365937001510076053826655605921480498308276997965708183501761153741684985823065621610565093803293267145213264683255940875487323162603497098287078244242152381364490915561516864384055862441313200210477759784383772185251844749869821808605469624104306483627974659630840834335085896493064276257626434024584910335767561352788213359841205357018196912127590476116823634181507039341921201107738264756570847183283212976230548806589412409787644548345441567884886152727064485345874168325437352622790395187283464527544540238476462841033683052749265261052297414134322199898156433705613210420354833039181954728228514540345307996338134426639831283486602009617821148730178420903456782315233838459833960045581574607947601926985887017203720651754607898113210398202639356180258449352196585823637433426547091256313811618728201468065612848477655503595447015632631645184257408799311031227353112870734016953586928692399363121565960561984334923969678627965291868611987199665355100374399831834913197696537663092254100231060222369355743492391034708799553568655085232200053933514968118972487187189206817609812526489193469851725903459730349115044744134935385172425020093405176873260856770371038485134366183921722366705448786079078693016460221013562338518371860040621158088230901966528646349935047926553987586933831367867070973089186686737312301347130152719743269362183392814069362071390626240634602149868513351042174386702373217488219509307980144868438843039180777068362815989726093384530474659288436762833489327394920060178160772097636036236450470254113244007028018345020872997333735006369642621188148424743833774389496092438275545264972012159941169187871104906551902131301455227110342605466483129095456845759551416266019966800743180139517407755414907528753344510620768622545706922467200391435692207436143528439665906658113881524743818886359819100711389614767034444307896510326106738878190415182894278518710415868610419540275389592906901944157279123828311444141817568179821326039806751116288602602079364060028450228889343302537029370331868317130595816896212489644579597740463350404821033552942525562599451948892026419866303195888875529336589828504695870919421703372824121737744010834106980209512981212499605327278082097871839942919179956956437398773778892705943228593814264313588636662850982060470671661159174173979374802384034079810848352523638830246062885883405711425905310477217552942136734625002951660050917589484433507917586316418043522499852166989531112051820359614264056311546169093245735568094153574929334345353900745335018453360700298873503320416021801220426381270803159591113808662080147615475930732138359941852467712954079828298460838532977591480518282464596108130858799605299693783616866883703565869185368572228049855242056852590772711756606194646890724312610751379564569703269741067249420820169262391176594725223584248868084052163978540771745517338163446862330016013459746832483229499745553193172798529784830204655334503630284485812907931115511445857990901262977572798484758892430011224747763422516369132640908210865220153612035772778876245236974363328950408889735114091204520281540489147425927560005720549850849938066174041463239956805930364473282352888070910825905328064908011018706722447724510725271249279482691220158247177177556383931862018573706922625127115050060497052950652831429754158098513872829355023247619082596291790743294769373075646563356103978268914856575771089904826971137524565336866781148377806037125805302729900792354559178813063348609800919751778996667825773538011019704175664956965633082354826664832542133433238985992302494131966210329245719662995490610491717314484250371848881885587572039495220187693286152447944366872050311382346751859816429256170920614818297563275905035716542458165085087376733078811431064375956450807933382330854972866440962916388141737019428706782362019325870932337785207336301012959801574398267882811022366018958710176914459839393158816323528881130121548279348769177703293532028861142610170762014331792086808854401301875493098777838978307513681210074150458526693050609809970221460194218519763744507276706106453996161332885413139728147201684642770254969448885521211901839412379586607581791106019645285789155039808827785044346241446005384430694921228510576054349192620568228461067622288628760975069571577438277435716417591291580647038310472689969407345812923078527661281863830459094307461469949445318406382373246763940595451045439162307012942946202007833297806043581698348483352858968040721796389719019380154796857006232216729875029137105647652130559297260316008331855216269675356297808256404723341658017832917361178751120880856553965724789009213895362915702176778750339880139427055619662433419053458243548546318808465846274157680860398693004436357960607068604732152020958071212974181647121346787627839636130332503365839026366645219792231191652184851689635394059200991074208513487912961944027267589755534127931947071138945451210385365666863656514209319612229138408398784420930851980119041830672394116916886375626055095925104713901702826353566686642093516929236387395149263323718946918096561895953918655583700713764306257135743364644281622152586966644197386816497935113660469232331069279095252121111558389608405632043813212604553065352491228460969017629719449662738782558195937356567502012702346624259984113170777877741603026331383451632091679632219572016120878739535268660126756074324543767313377539142809916878303353642060552762369674213365000157993155427666305323414586502786151103423472249461335527271731467930601331207859698852293487702754572836758518037813971983738448737187522680558417691445057817933649634521992609817999191684803484283409773320846262112288747388138557958200356264556890006289554818666858039780454968106579561984402109081024168625235848633049433893817983025350273091911759018033646606118892102877539386202662065227791120912769999896272188808998445980861755113418914004894132741020149500311420564984305087001630071694453313866713946928795059833771168288107960882442878902963710331487168997419587782450686994463038529057323207503581463456359153671587673876299588786597844600695695441976375884875713938286323721248537196786331354387140735076719524160293202829332723197937411493271371356815869745746630090114785045810150788488466528754308983084190800951820196738187908503920164068913554082376764577307715657058542078335555726448528775410140889659973830150745269357162610245319296208469698509601681252089661106954658875082278705326774542824526126146960866458538581527946363882920133565445375956679593033053657489199667466664091006996735004831151591278235115327007278471457012079132213069121843770510913126393940377336201040121514162823905838732582958809660717566400388175816631665384425432501799147639396988019361563217376917707745562542411094979871358100062714009297952460325762162666968024275723561088647638488695691217464639752045897513687614794198638256512149178720074637972319166622472342458373453475744165455767430162914731288708891986520307616904005115095243314593326707369250267106536503408594406579852671953290828878986550085300361389400447563257263557097572574920104507649641671978149506993803869456617170118016172282893497644713299701939818483790946950190051470993280099762239285764924711583015852764603906920984701027473267648829042679041757292067908891525357470144620310070581379798432417427443359732597578849501601994719665396415175306900156530647410652081465074180982982615156081221229867244113137144037752009949553838498094637821249934454442081743283292650107032825620567942663893170212246852267519075685335524167597267737244366938924909894238288296979382074404136250013163506106071048027557122214101504421211522584997083585166017055430103798605870862537081316550736510911712026164707574272319945868718418548314545793378561041735856565813660274671255482811290197865462526497412745447894187125012504745310745532010101539412542557598211334791575229984000323855450508972118910446370410005012646185764533322539257154548270741765470767980199610940925889962653041162832443609701086460152073878113797889899825357584936090548686649651479519569916833208225421393998527382993636772486285432861934750430653389986168979218202435443421838249471219555244456077485973751681812241174861461934352977626964633446188337840373097300383754749463324707385226559126504431703555177958954722053261686311889892137628592210885242645086225960719969420810812765948461310395160011113918674506221427640306334827456571398244688987928075666078473350676112645213239103651516203766163020121639764386418029781168000357149162765850540852676887481388766613858749037091171569489365920150088091640776560353776049061053797277980130686234155628754483804695459206853345039637929130139528836298236906665998393399191419428822624889834906683549086865545237842709374451275160588609716705958964233094396963739852139694306955984304282812775152577478984967567396089347083012924945728968668382347131124316230981236850836967892352694287933341809765558697959178143618027794490568236815770618823308833638372245547167620250608396529355699637234186737293278855274169352590130389417214094105242155115452186605618324014050276680243144266579308862538024639790789312854991393294129723452012779392427332587120166848829680720765336934308525685936091917177357097368675241738690845568744820381435342303750953482054996545536844602494416112474276321839499729101814849117010244739745524471243197206227285901841829964192606028583174483660231016893948611593550719980914111166305827802357016107757864665744162220812292847200383758003412699142072024688653215497461937917606694971461708481280597198153117636354120896937572403717230728857528361209468437576225217435509749508416868449260690602556310186181223578382340482199875234790473576335020756133114378650708122632294475169102510738117641052781142720821604904601234694019926167269810097101074711634163588622025911743719370510239932119990714412558414795865883482179000672315935722916969603330219052040355991141186335422803885527335163527527258656357416562547377898871347117788419566646679437054636075207108219599556595939510003301471331055145964866651239541259719179517191219681606796094486289778513930320967946715793869845498045117361074552589104077307775968285753842507025516864636241671371276834862212454033795681560916120251747053680439654711292427415595442877946803790010144087761542158599192828736691598066397411990544787623257400465610319454076380272183574171085521956965029870764084764539720173806317722531033049980224711859198296889824502730818822232358025734979939268904904635056981111071837870872387425342970619277233904946841768975352779391627422149472589413540687262887957937740594912706425795787462426204288181470431186658695850684971270440056720801733275269090167770435411314757661614501441734340740501576328705559480541806660102793735605034028161603794972158681906908247472167891439027207058228617634302120413279204112623546529020635761953834177970935230217840054996436480025651830810993956142439727585501622923434473502800622506012494751859895897877130078318381284000307344525406265384326284332734913158239928811646555217983688819270579318387178590808969703382560791536362903694380156005102431687078636697741825484176609573851028866531909599446298765843140394319608854950795682045126534927496216098913192293771059093734638685856322615163909686354692934824532728090708448482607472842401331792120679129918619912955391065435974054160924700721084393261577396859904502435225027846622985682743530478296019742230126041777488372513120754008143875459791784849819788058273436408940614306428857162844432828791905787379066279127553312693205132677024492273122484425776729015102230786013720684057786559937416470265286878654577981763229094799365800536643564827989482831355454149208961343733864317357285847075502556594714489624628225267553576177688643728830023303372509976398815495213245192304932083106043325236591284769297187772498929149416990684865426740221029433423251490360714799337385148878122152082400482303168376704205651620463221164842509540211495431932501726784066913180751103574399747173057411407846818737430855007529087392466492752118166641305570348147489436925111225130058515221715690579063501769721621945184322416353844635144614454155355211908923280277699317799962714201412312215417628490508965794218170954802856810727401304499214440451698332797839220201467143976211788748575278258928515176364910806096004583988857640235568876038229513844452574132376587349645642175274117110158132018684952479600958288566847166147920777066467004970044245529243398247483144278990693716175236808804815475550689860918099538166105172227971956234186208612456239180627648080396822320725343708731900761317287827825633540383463568555439312116400463329879735437414066351924476641285832757575169626134003737751660294173899425963345708088093059771406278513324347071530079491496170955743621352411384164721904150785858607315608390466100122825141421783424870335160261579054795697679658102454811053609427374946633388929213740704841998536616415791505253414200805631662980679930963418032755001265689618831081900742228460784704956337143978970107078971281095637459331413780453608819886728191210889947181956746619584452581097758636654703878651877428093857987298453191483054190736193306832721999628354317099018132077543543750835124132443012217947431738053844978002560851080900900486554995323539649202662941826839681747353549397800020794279028057638373182118252636779410048392029977461804311394194603717157868334210576384411003275209239908495175175645023250685508037172934673214343903790980747631230009152839622060100638410856490902018758364414252918474303595961069622380200260414486448996681845185409002250527760634314073625296093733881451482851667872157667831388985065634293932580701712637377247714378921334695932744869018458165216253880816543992543226223614126555638886218510410454505239680527679375653624916373936291921496328427806073633896397189791059482027099260820662653898260035471619876373724114104218591966655370729244759061572572534915445745903048995908216868198950498514528905607293430915672576579807823813252319462411548196538980404319091994965581587555207425199754948084883810330364792369511026593873945673234527813519231025437491796804241972192414421250085046862582494130334546183555900946211082398197389414673990009951807575986089426806295911338111308223901284999808548936415058668667696150416181476183007385082439401163507195485350782780178620063967260143712925752867268522628957546118793273039741223994843806178016395987702730514996961764180430076550619059706481480776659387221840334552391098089558458422696220002427917085105237545865226700420858450065961228727707320650469061147067038370604286431107844086597207214344357393640997696453467568871840126941644012842155392941023519759354805046951676672412478674441855728636854752252967517904490846229417118464518881059824271366893021013404689704732681408225952409602903780494870107782842083364047419189813852336512882717985022139225250364531096400813772458051591987142908139367036152267032093556623933281685460945449282496347684985034149055216592991354218871085004812199108565642518100925439283510943461406819155326295836832244442580315041143613206501813399115869805409718149178267646995607692464408271125331973881946208332445582327975571156579324354074301426490329131616455570398322730360487405177236603402523623524251289089734980837738090995197150224515775511928603724538126645764790297652227784172022004760468721609327277674974090009539493325906192918323195522437883752071579147388649531813133596025262043596169052029152989132685956646367496161621814282619606046485905881459885307366827130909798701005725404267520410646191022344209270284429838795379035379808225766642009372719214782739666400988354699950673581378053209517772766142667504191728340794129999225223900813931543784808964853517011106219704584541853364923403226971134084220932547983665605029935481255740554023338221663556327074883738488203070958019989893633971112833017863610429185745815176366850828350102379116950455335526646419221495195972716849988871354341068935758198447491809127596452635685408495074073027045630149988862007387329322747183736737855641777384178664974213932274850399009289125017580993037736479074452622966570691968347034130750683865253334168039978957321769414378163761067576657010313639281905797342403671464257796735694374202803234664926904491583087771351612996954033860448569735386342504824461133313293562013423069991363843903564805398524435742272208122726946860732446334963687102223700427790128698468723133894296996467985532697330488189435453512198747315056776454424187084733099542537513569919088793857881010623848448682321967887114110980595503207731104404796321766801294836568544209327152346553448491168126080339442301893904473144065135020039376961904372894858102209090960177972045679755941198851066799603868633153881084475440489479784230414690456617085003838304731598560023511275768663308576592540721689789100654098074985255235946291684538081381077344684758835989030831797499161367084331503603945842027219164304091618737814894412262646721243571677107897958295019688793975127639648641585394198514978735441196867815082283271441858911638622490428306544693021953040885234266581263311154616597217376521467973782342751932681679077648587197790760330456090045934795875244158827711188541003159287443234291021408577352992849532372486525565370707871982155802959681332069526764297045636488060283367838615446809497301102286904321377559733369893898745389445373586272953467760010179160109894626177066116472861287743825161507711254451447607339466177555539391791098402949680522715558738019425829034492458114791539894344384440710126355101315080027485730339212745914344155979624580238946791286379196103767501302852218158342927960627657935987687624260064597022140223305719870175981207708881775208561092927888371988468655928192057726272484929714090990767513543018614090552944958289472915942195022958533664858753391199360705624307112840802082799576229242450945881843014764622132209145831955832330812106119231634109570983968336486325884679880127190128209380996707496378887244740498185997657446030220554642927996647180179121845369045838993192201676504587723285524326002228121195425801508895871740448571250515456156701445627576514274189219949135713578618117512053242367419367043619149079471504868064074187415312744021822318847332762775296051423352214445925158904592852794281834723025880570782244964528563453906574232157447315585185248380980837808360568179478484769730446189795343014787046308834325002185212301122764601888231628895628970209684351954417518004440283425864859923136145883453586977165765546341515100170365203736993700149237066840292359514947280199468307836137554908807377471199174306810085960011759240258970971763643631287911645156510729054210848368483681895758124954302063180137274452736927800353963003597789703244712589196232480524321243178787076791212533220466777997711111844713420845602673465072216095056547543444967796513794642909738807711770920832392857031227347757076300515655286903288137496870378147462582222411911147231922253484248428383064227251584143947685195679550886376163404560520856117608479024615107434819654500846918667938724682806943737974927456346451977698251717704575961879016180456051187123930933837162603052504360993156106660164944603733150096082721207481134849109364600626581116024557922509079224917024204334747812570091357958851171560044382590164211912251966183013885851604363876520076660901706376691422019928597436967749539491317978176349863021857064501717867138565691903138925124406222112421679261505753805320638960534806691408663213985201315499368422888925939937938372763306437738458639209837437893050924338494081588866635891608130693172567279743228522045290446492287537404332891896049610354656582614665410520301038317016257617079755275162517936251548358020905536356920526141022576024022008503069759325073012493651492810269269822498688595580926532085544879571129458649983430149044354678805689624472499154531988239117852461533150028526848809373729833623888048240207809868516662396623804752129367790730968671502702036437328638250621177672552714321352331440551849544296189560638620232774634705762991321572383519999036876854129129975298355607560585447553366030238341501785336615423901196514718355791241851677867558173041482097058634327475998030433041250867095393111972835878172034073041621368525823105392816928196067020926578090382056347833637983228176090697050324567182905239026868864897162323825035206584279819178490361661207920331970233729566174585329118327285575701228121748387249107802308817125554667836650821458905442927381881120382827562038203424139788806036773166792056737163270017328681727143939920555472267968039442698455792348518476970624649893798689091404345307459026312974909728929943757157892537069170554060135602192991272541995020341025930549693047577913038990705396257701540046840795659372586476891886769045415673763651858829612518433275665819135743078672552459101743631345023433302825659109295013964012367482068972019403245493552071316301832389077522687687931063247358827162626780025222743882904827399942971071916337059458106273624231302463612292422901130241346059339857799873948592964787824943795863219937071086895052233478647347819670474186604320949754823450994977340988123829031124208298914393342998631714403907602227293825770506279263185708500656425442742408250950277919669247846088840613515189581180572140453913672385633519370716291063988680741077109632262041893004946365079031306843843848241034887212174631621985757951452749467859556298609466874996914396418125350706879793966344449169136855636372370820817998673040937640836293693296540443529431416855735741521138719797989760100296429780771286150703751079899234460718390366961940826168154800069299199194237496464260583451109904844959783503318138598403203736404673938158062861051307724028170152512342245627606509400795444594981269545161048925456898399343095383985998410887997282454543172998589041895923208485919591557076611617899431439706262557186428406548557116050838339735282252736252762092718017429551805693437035867177317400525920238027003606597946568106990699815526038808236966334583199381336522994662148322456668608047569794531486079995533714015208505460960828095492725024555246163679935703275357274314716983088680359841386087146030278912542538536125430922130132392606904687386455938323150241502799593728816951113934394249417910397757057326592107711842351799458925577869748360576902195448937907318738708362296781515469228147434715461927841286825138815865724566831147087482549788564379097842461788673653398977592921528338497433618327121864447990787955261164445106648469122406280574637998640465813419612731911610010226622135875045230956367614791870218581190465498533469675959393076096819120313498239446336625054876532026855876891738122060105020118012456516449811884874642669974587724795478488027306759347195782945512894087022800698747975606013504675188805411610347120673024808283795834587633480080520825207379378160030980023343587602335295515550710467108185710110379425573539706416004845987867928636194035833598830456467641285625098795809872992833413571317316698931298348449808171258881322053983390539461385014131970165714260217027875818557703944263589724795199462181394463710576209848825132507409877300500416120164450134319610856784439198428941950065145002235520734388073017352026987821595398238958531742477797281118769038564492151278468634932330744925967475535883457686701173923218390793820301372857015941240976038023250013026619212215299294938378535454433070059031563394515356463000495638606219047595494246513109440931416389289277613615496248059364918413873293369575565074712841363051122056424901197843136899134699962199188327250981524528432900875142671950090014729268435481315767034336026046992220074025146574457875406101170100736076743234802217461666788038537707359107703937173001343573433780915136738748269343964127726551155086121095536149128888166091505300841176273915354566560660890679900492043860202570853020710721904873821502242428924176483414373375015687528849612207489948328832072061933044668416640201376260535299809613285704070039190973087022402068951741464355756842496592770147232641142444637699974338714424973020866427534069184474531418478246621680084103166311339428757875169030953860816100207556444639329728038624733206368234407958681294858219632606977291773586279258225896589806787618549952373988866419427036461437069854102348831507863919353077736034724543954909137138750027277428249124819559492687907579491010408184232784770914473956648350313404272251707727077779568683930364983957760798343751112519599184219771228180833964596168883299031255039687115174295475229743290369592423839982012924423872628079340501893784544060512237909834304751226009489177757240110453878947751132540510176587612550172642659135669283655675452741489727326697928272022262926043501525533566045596468357887467695202719145631132804965732947214188978693091470716531514008765264556266033832575430452098381753190012116984872062741846041832754873430523554051762980913513786933108798616435787922918454009143189029131995652220364851528713573063164999884285798566563250903272995919055641913922145077007401237296618954213691604461628072040071405724224166058385893239862987462362799348431725785978331182403526867331482605962234490598442366173700467746394444492322250864561299206649804691746544290102326036749182890514632709547716012873674023158603319297210043269180947777078814601252700218505481303532883525933483806045870002532856315548416463752383781709147360404171173899894985483639704218538639711244641828773995313796251077527238613804351957083006065880881131032333003615031245631843907989623073889257490310766069262254468004225885509317076976240966185896025579377818994869573063674132348717593438672162173975521875991133508229353601619301523648352399572231533103745430442163674690802294743639664907093903129614045433595152497708895861703356936995612920336954583474122143863981880823732691623177575678289062729769746052586470584551735494196941568993100732788027178160074566897772051193372262830627263157060822026033248657781648016461515377791272666863609164767300595721118257545297269561369054307749329335317780794950749591388113884278922111704159859081657793779031876876912819142787574021048844941476852977493808246765582604760293754307984886071273301401401667014242491757278765266684498936139435043345817148059108106901455979700903894712487660264799648270702283193913960035398428454262221254874960511611911680952903774362932936426729991649615885272735354692530012286384078313160914835831242365957406407766398938912962291338262296461345548552069440774729779210094961369483598009379935329800186952626268897925049160552886196174793798791019510044784766722652611249202813820247883487114959499811819862238857770980067240231691454378564891917449377112681747095198523091614389867393571435843785651642779048374361541725326271402067212757427986072558590326965431990923965177563352274136557488134235826134640619752850757703035003064939030251312977964837342884785331046860985583138105607290673357606988268043890879285238688468962640059752428424622605235628659266559152489891484718655449713371192110117823627442512966859903412118799315558081994743862256471132385465543794476709916544759765527383955534848102738767047541916155981647817371697886594826996773344002190231887640708155478259877446748843839641109388283754865099480257836450967427421480079798725298237474932786988831029127366766916515335295207706402555851307843463114324888805040031349280259109320374721928491371704066224603417407393429299715512532863416500468405035603275559681030684764166172578644092992332030285218123054446493802093746767965627032050541653352270296497190840525076077415135585329727079090744559185733914347359202222192480082789602263116138287922513771960201196287762926325920766653454826995223346084356350550192163714585024150079692319920450847368482407436810003380104552622163786538658528343580635689719585633705664322363815732521059039005549802098362319537349039432264735898907249974481295421356493550770877909276452981078135454227542256202727643807596118872962973808776116962714353363613184703818904146855459031856289153783021747424117454514827944355881620049089690672884396812121773179683245828223008316092720735450399311256810127515761451780491664899240062283619096604844368994741250502663827332494922083603442932146422844649000320567912893667594026186818092603956252491909545762063002596782039321947787455210643388735730962016442218540615805357710451800068448179627191280244817400566426285184646519733057287939023349323152023329431667660949466442390120176294158132842519408718571758249146674646227707801905890451175378753323958182063147014079121774221048677799343290518957828890663644270042400716513652796849370893539861759115897979785125316801145630829913836774844178379033336477730241641425456159185972901336591836101673825220309936333746380439086744146204518782982420791722585106311819532537793670137483126675517045138446244928728881991338988633189685931353582094973876733276181647144416596367990984617318044635774567696686738981787641270366043007171518174212655289433740669523975242543343188626403463086873288791787110448883943502195933858942387994001107387829856434986185851499560035045836980522837347912693843980996068256636852594000566921484097419787752294581809215953128352390734138521387306940462559934179723072941421513050523169832509032592698623494306832400969155783968608845933800502520143218125745137365263459005747013415241009541815859781303205363030180320542354168842014207791177544414285520411795342399855018382761526732421499009917031164159842164130797232861953716888098689701916253833248650387288608360936971885266484011813535929692926315168086143973569063172235857886744957043883313123346584923004799095689688057784592526269435319500885171275355345647686824531106239818463975753158619222123059656070199806312424142339963087949136449596385522139496331600610953938782323929894562239842108378519543526103698608656382433168452371974211904852116251165253611592461747928660553442525195517176910759440931024639616743203428899849243193357391359439163363251143177685143398755128947542740831307047767221968041355620394979053209838679902953818940003881728420660448824658236754256088718646717280293892066517449218615530739246627658735367438775266241095883509813617365898717972777969154114579079132324450506436078896496652227932048993465888724719092412241832518072441099776340140222952114955651842219042376161454699314721207333821893201366875773935346068835747793065302145951082739757036510750355901847888402730274186728095748346368270380820337008614419205230638189548516237104305540164626560280321280227313428336948406740894392673158597001170853368293696904640331225469742728937725170284491368507510420807830194659811663877166399376436247236851234210675626512889472076181202587823049923069932193441177149233541428562368922547860020442098773791805812736345606193118209874719420380501084183597723563895324484454665021607101956166115209670659743421676675216246353570113897289261920312323908435258304049182089692188644772052860679065957339577881359619459143995907411084675173348811296782531302887330258929257078200361423829697442419538233811988100196047065345286704977194984912198661397779722008117809678089437925042247032424078743394393848615747958395868259266827230022103446516014383008266324533295622797861776607434849275567644139787861581140248823389653884300286181626899476797057356564169045341487350657223082957710145249288426744778591133189265699375807790492959088347241547183112782894643104098986418750152717363358501388701176500456682510977398647083402398251364941947987022659685509691996410955177678245689859330548902059397854271970992334703375220156964857158554742320042258058025817461272479303861340192695316007926488417651166527632813689001553291359197913422162043251845140430585349859707947597357239157606302389788272472588728257397568857880809007860303870095275965446128399475663143620024212148164860049933531494005845189789969549914260276099226540079286290005671855125349453443318353925302775691874264886808798111092859035928717496561705802679113003544835578545172681700293391726377772014316034474259045156272748662849996346117237853078228460875415149134950159971734729901200950339934380986718997364688672772154729301955622093884422087731645597251690373752559180689987207488307291760476691149293892506261789207877271005297770505503484195934239543796820806364234564351078489906166699504917975179796901434525684903269823657776107230862315035897534446950942503616139863477000843883447096615811699697419361284974566389308170667003786595297742965533470803563032705470537473807227829636673159332609132840025778309775548576390734048995271269056824117406224816354392245147518626615001932028205676831230601080773993580094541743722874856030329644011663891395863457887762780703438507366121203248442320072616778465237191222153108639147321032711783948122558134069489511468543277016992565756449481426682500820844163370577685436271302704113165990762369627965208380150875334577353800275594044507725743280960451714989612034454930101047624801865005759672935974437559319379709802155338533797195186451381621337903092072823029487318011516234400298768771834531340550132108920278193282612902164869820538662339925756205686791674507940648052080229923523582852054157424085911717391650017767606078083556384046774959190552649913816603345786258919465240230481765724988315865781629872191852618662981419418187276132292467671389678519833736688315532065308578573839405677938879810784228921614590836429460414025445095659578945881388672952888023498257418638916485410662041639919105198470266644946483818387004484991298466697545325429105555081797653311231152998454600596334630838849559585126976284556115131761791543014662309581260781286681906678773073100330822371456127755519659036386603678019646838973186496696047283305823911613139946195570776381734964774405088295976430972014127927559837194675526309103002607377198030114808770002603931238085467642624607030569445414146788883702782105079644961191192513634698681091244318436288395630225433070519055805515826847353692268439357297445536931934445853614683892148213443762681444354518206637971475313200484492490197337935445002142103329205673397882013502457586398700633204395306145981001282304325403568261761245212906062656224709478849812845782762056237802324585170601009631953585327764280009908444304596044841469222893168425102522450296435768225486054885082250340275427428987796467171179270419314473334226393774796451148394264907543709983356113880389921641018833507990732687586339897795447743587606091717314123765539403411220063731593747600655733423071399565599799109579058406087752292146916150491735192696587708995064429731185616441596513732854581493312713400011466468631055714711494177199064876371315967635536380422881819591397545847136521430491661797611343597612413119066024295936922133043843082972434204015017859728198367089283434894718371540902292041308717292461224444524829142403171517319623937923054105205714719270081611437847027181291969220334869842590800243261802053179581953126407832883080119621414196897473811668544594136249796138196730781361579495000450463497401586377933041252156930198315861190163089702546152746511449580943129623686874775659723862284405528992857193269653833940882193122483658124665791599870821304858096327105844060607084897051155984885186268042801914584503960764859302580495846804950538859239756532729315504051398638518736774553975708511614027526437036517148722981197681630032113915234858542452415490708012051572119397004545886926212393559724855480450772969441579434544008835083247831887448048607423165259116678122086768773129769404676665997918112898404432613852222456680181411742192164067944215307653569169803870428282718568653012151057156933485086135135056569804378368052842994729619154189806471157493578208847317685116986688251760358034509210639160133615467976349544049831158988014681859544199764125192853574528209150939375529900989940300004690715796230004714026552127319396923633817718685842649370302395314164717292468841769611402522201947098479115908656258081959348504580073382530597128653445169535569720805608625272414297868788329953554896466807392462095586088415483174433457585506714244683879315328247406771647223624901612227989658580037906610164485131479906254812060042082061942843288469876937941962680020470238022738321795132712537283608328074704969970300347577529040777938528478498845825431868285140140606025648519781492451449702959908179619921935796619005845483861099079749291274679702813198215152306226268476116802806038798505831638147955269395877849544763014463320946858251681318988438260183282412053904525772886383080768220542172159998195604132057898595862610339110865313040650003687399627445121068433930501142750076983761315388644004814207413286759549138727493867979975472233370664470857508674258021348503447355733205130382641606888127147944804782700912443079564106422766538183967649065529149411920725308915765859738387394244885366147129591724193473582459602236808659109249665797348214700204969551174913028450237035944120664403112119920549026839613851365913517804025217343343406931925185433766301461424189440494186229665556118094075288512905734060132597087448891611311122742220632082381782966543871050216116467304039212066157953837096316708171198315412773986933082674266183903337790936869818184267867812795343753848974913847993693433569627243639159391727788289368434254798065792674473004023596914959853244719141333024646979820456391285945223056867201215430202476141150467978503274457389376351235849722023932766575551817366488729958065072982669371374805579020457871390566966835958475159265039215125590818773992878524719869660035630338113886592025643668220510953059679333047851282654077484965169619014420532773846312117182984455404103404048268403844923602260932983837073935327975838118237302999817303309364423432784073882629774460916994262198682895712998174824355312406369207621201895896346627430002123341243023559098903475428758776001075279756735825530839035968877944308623050083922822284912188050916665795796551792449953682122427155872854821434791658233717328092074405357288349111744430243993360647785049154169069085637273046996124408655009104070402040045240330040536788724805909529429353007609759007248046183691939805746467646332192324811158670418524499208436891323792305527413344288089105535681354668792227453007280025490657673609131250719776901864516620280244209832476380408011889033679340076982626303814304421870626348954828580769298119468517217125862965162415080151247487087222580116529366019655608055401765820957447442025614799947512978100063471510186094517801601210109766576692207946238191221248011263178335388186246460266064099746074457223686753226272384749292151222421461921026651239896174275123920057140680085058810280658973311067243419528092401901866667943541805723087825807790679100194680428126898955014834221030118521491511316012352689254347274510302044649550016313546351446929047803240124372932113167582121231486180137559007685818462059982234823635494750020551670423127849396814888244099629819495942065234531964286878993113418364368385956984540194009242809149402650414711718802452565605907514765581662022864617601860042108549684614985732776150427733827842452459231829163215871073416683491143039245820204049517939334043107801193679718533315110369601717556397017536677698925220291941224105792522067435508437479448315066834056938970537156323959619663465911433203608765813727106823350175545950036690876015527265273874659917097088742836394779608808455881622029355248903673111262183306877491203177104356883484986637056339579848230845545046323388305417151447326543029091369377356258446337698165262162748706982815217876495875995317679876942317247790483375825301477000222724995030724232149175314896367323194932858507973510325208815871684173357726266539004632822438116990767860901546354609368715564325423371526775688695309731504156661244335003323701755137329070496927298233084125638895934034650601639283141235827826560296179046212987706749267754070535825979454533231227058898099866206135634339226249574102621145050147500622954784929970784624462385099471092374577543068808842342488554519563140849873368854409619977813899555914529085754197154625973552636009013953667656056286101361139069377797686445867696178161964142768943085226965296949832282013210282316346140720082744135376356979640540842643475197800005509176901090908398733463167787237575943206043139585331874842266116127149278076947352335201476684831859406110079346129112605943874289787672599271526282246666425227996861824784205642135849063963291197947180504921283054329539224770875632396853542967035200686050445623806090392159178165726764017629723560092474373703309710305939851789770043988609762418280273753015852129303141998505223590562908259196504957475179516936255664002421355874179909738347230338279141704512004789430589558753206319047257823259579184567554756795104423272675336961028734414076096810463879106068557646178525008556150435036529653120663037614995681402472174986960956322398770995092838270228506848297165340154936241043383816359139797860892411810087962939580344814402052989308398781284969580115458276649323954524488862024399200093160913771624572850288590990689503202508805453038535349075112125911745906668696241518166541336118668276538959977877698840219581380512122540769329581518660976459534753851071515396606929558261464307157155957465058003553573706521289270976622816561881436168125082469617132103642368691888343566099007062910735940828816967197133433975011411302137935659060570986685481239325087618913601213539322990677902667031851668505920808755340082306241151790393011368774663167119815640617404841763570841657092611049013742909589129074512060585181870269703769887988027757246000283668460293030807955125584393147281169565339307774513076208738308772110552082319555333701543304613289339602408296478696632222662366043120049169703024041209751687422681711800099635464739645992679211059716793002401042888340565032062313858646766977414567817560581260618668428670338732407798434159280230329005279159522041660227728878750574396080053699321441851020326944065809889838302132905390259318511648459692159695381145056191759908653740504130891295887865373713962068113339662343878188931393990679290362211082085201156698515409049055446783585402600719039545870348440904991109020961273539775796712577236392126173999794972815346320524159379229578954640943330031966865780080841757238654585276083743494103563418086527450734265545561674543852956234172882774278952561841333984234227962688650757057712690640291883309004811690079144281852837645561648007479751686622504142703142756201985650805560473088969477169807686851491403877100584379617617589065800676387998581361191757549050730550923781856705352867431797008951586752526165545752022789546695345922956461425939752994410058000522273171570948904192532647013042996782880981772312654581978252283474146559940278726180574378711901471067381997591282021892598691156723642677498180417903007389559573958063072344308889930790232577249520168655714663586908881667670958665828615248630079711470596812702748796120719398036869841712568597904788799269252025621896323621228818848553250317253438880481646609645841433109678452473384230846899161937433067284800085717185726901124995098002363446472677579960139468933441348826563275670461562541151352836943482525960619231757993020285389088671476533332837093114753795648910402916316130983818111269894928752415119874737825785066433558535813737583639840242961618478432470245575770706275162008489801801477986801168305216990633735298305455157434434233764923432266014780818238850122532691138452438883009323691728748446938121157817133839172847055629208924914411762698321645132856161547958238469681354832427368731744582806352654025405081942488310245041314928543886678568850897181716223272250736588056733824921889890716779500177233362538552611751568479838924418199113855755057735452550378869671203118484535406874191770655647127713056576568276492432885280097877495999364263036453539025166312811139573040021914699672567224243038034624195785760562357940500460849862085885107320129687652044836532711705298355254425764111325430972537256019566140039354229679920181031551591766212115129275461261344681014593500164980763818808188455810594306991065525922567043402237717683274234179650643294363677927291004307572815052186490576398566767143998467865508360615449104109504096784495941304903048156124269705954063819358507379004103194205914420715963385292980176587407421829695902015123416368566999776416096868552458244647650781295350401926317698852519877396356379281709106290563752656925282341784846883439124039475855738621711154828569524733033931627918080594073255871641760866607945965471096664072873468232733071697022846588399711498702145504407951317253176207563049755812423824638275636070452863112582331784072591019144316581906706949739991408762711973328421199817690247169062268741323139856279760184331154050184911906590783222136776497701817790121809546539894891070605521613450144238195427852667496635749690456882500282143784095450954416666384481729490954766949313463661847870558318631176599859811484694395418666825124986129947826908696815083587191866468419123108018265385427261168243142887159197348852549734655152833839243391212972171954209811081072826109349899643277354470475230954913499889747504070355980073681359457728626323153317199108203659250468897384792958428518587183328953283330424400011021585706709975208368045637748014697935206765322145914525594402913767528332412455408881913354001216515947439345825927109871323281485981405284738942049456066548485968461597818706302890918342473242204901976698935891857169843293683548700028246279723644105327711360069270495113888634968765343140873106952124768976442257380542518948108336503016832569019588913543666646108227652860149193804990943697342982342483799203689145537668613614203324436459332365000648027850268244782367474393111817375033862822228763294133268808562151397247543814857948779094866045432016364526717351569521949512182547455602375687770764835696758484415483534183081840216218002471516875264333898722317508819282411769631001257705474372854834553645843554687367529601638952837788645341091884815268904047610491637261619895221653856576532936041661420352328178485869983562744016974833410791674486901385898674457460589046173112479288346867541286633847370188172495324535291664230915819675346202952051362180881786321810706305268601878707164543115441633148958633548495711283733908137993047232384395352361431818737255921850606499889992513273596096640590783510915055349720353004841204935167133808903882854151595063082860360407385575745098150121296185499173040485620189381644958831436316183120403350054045061655495361880979219483471140163015092925813923687920072864843083053064043796814840351147979985037981051775049533715714562184407488436977188290185609876138771684763510585279170242464071659260408677679782636131180394293012938417868076846967005424516567162391082073915999420877507427319979379626810927935945706826411455853293582914432735295342942158161929093373514832427844871264532005441377477150429816577785119608856039392370152504261533890502135294755167568297299250949918903452750437740675957197905598198401315312507363897788271676035495972310711362764227795041270694412963674040119662957118616248434779391040456281602912590341228922903753539443399865233466087581402352911770276408329915552079814049108339216772522427028320224072515496390983706177905117332674699561119754963275052012410688096171784198742981003958662928420130618254771070474326124371727874726680003854294566702229547745441081763846995059471808811220410457062178625506194124278306225693161895289815961384058920955128744219426401446843258076787947340499665560293539907011675177617938537989594900447852886462399111356845283196092926222906610851711039847574315274143032390098008549921353577701569067775079977710279909612911481025456648403783668773024485704327424998166416170453147427934268288178510991076599719815078842251346560067599782432281907254203941165346089317270679689040302965235512186008558202010304443745640929834663677611969140144777810293230977124342150894687462050641294506201824223005409913298685301174704212134125758176062234614999408267977316366992755619657689142118991121603932988689327745330994608988819878268577179124244586107056693103597177425160841158641463864151843776077678450353852887406894478756269081154667750265139892520772802380771016421318931065951655469052385758836701480060231078445710756147052358300481943972854860760625746125279759087635606413180928443598444597546923924696576152592364013642423760823405894473607885276113644865293508964516122737673561124271806076317915531772183512024566767427805101852348773373274843762368654343433572547586908864759710850067660168043362323425721895778462574390539178713204453694232437636065881628742806750159332708835021227912534451831225191142324299814085946476134220836553297239008892615407095447598135146801898871778679396521471285241362190904520731593947943637105156101613236235599714692198449644460010614423714277532147946839275936081899194706017063142403302578529940294466419304912677233353475238307800492431188139913163358998654518237066973699966664800998930146456897976264533821910676201726766086936194557580394606478264134665625789324955517293382364492567609163674408485500660052328184772303141013994194740575266472169669159135880659460842180716574202383831416035770274972613987580586625680884467821608713354174896522864088747678556617610164144955916507458111592320067083811339795141013160038131950764859475891210365363873763109470533374922500537924985302710681621778239369923548431083191775749789983889244707555057814610173268910088318677598684817589023450958796262515510373185394305778299353663708951531800326236007507131505110073058116102560023129094893905770780813123719904325432913173210310279083774013531337290841554774997056078143282641371544227363070480797538690944155415308876353117401906287642188570601876876587682260607580031708107642646266282423355167177315951272687767565405066790078503408195766977497691257629022816348263631778308457315637428035008046065364660488464311283990508185898040595119196352373264622856939428514212503273628015021808150565248438415448558839761865561198633891093823463353416030397576592117414832351846853200844977716581402325797980859756037878724928995900626186338233962580383884707847586256970467861301699304260488054302364292544367146128925460075870346938025016372344748966120871881903514879555892961051712063843192649682254315424636412613068583871683807879730820392313465826928509416524494851270846882739945379186417441842750988027575879120525517860986666395681195923446343970528397875876399717079015405412636503773772032087871089157804745745571939339729614030647256244229443750816638795132446268046490506795494528192791401367827119936031161605604152235389210633069381416370558128186839507192703734235999653023476330844592827702116818117489595195262793661162632953612990014711180270754349096816193085097131139420011143378339372740172086082108045553675563794879929639743921482316513020761049443761112742521489991433709353089387611356146442597158574500811873153956154435704286393072635920429599317481739987105443842966641059534871901990736864228638163010422500665567139597398428067419069320183379822294769551415588383759821716724513407940718248396451423348329574169474635098622989872515791023619066895520111948837388961476535348427717380320532791818542847282776755856141491050659930379979412817046079769451076829598474818223797056233489487990035299103367621977365694772068320835765612537416521588578717111759316180668094312322820633790576536609089371148145241694419741552843111482158144801129544385373903355664055765431511542805835932108739488925272565040080753715082316659853354728155240484589935776255521679558417632629945328363864972183325392074533745670658804106039482484711781220234409542907169589136942756705510325613016914358556256477660447899851975983394695580689787490887000471419863035353971321859832494271897846985337072741226953259323259334078666029837746452595793401789405082317972091291825779206350709390135355532207479833081709170886421245019618604105867726986576388629548121902373432750952373297266717741287720259046936447344980399081737506748802842236351229582212362035968084913718930901141851651571425729286132686872797037641934069485523343792472263072034306529734166849157763580400931151415746337713513643992105027191630307604639001848104068854327148823854915004059126681845829229203424596419299160390332538976249679198781693772746744826586527958317182741207529813935621295746241319427060059979520787537576717103723485393362047037670984293057042814180888343410589605354211850292376744377021868951962959392131957490503739736807914053236266840213659053933440952155819361116160046975275356704158706748680399514422300939609672056577286561739071995058453026617040516822663377069139730368288414988200923701766991643468813188050766881426834999853031616674814135912792791752719745488303070929546372148492055284596223516727536280071243824940051673387222089088376554929441430767259332446251424236855083449999627541034837351435036109686462165835349816719893216551467224092163265788102108486890636653225348670696884642171926945174425813968470008133862581102567453164324360632417867737592315402954051893580643159956332413437967309724806276247712873976781139143302307484413523664996608619953758553574111210565089365438879239582629407747795917392895042437852891125786566472259170995518387849926374749392423215687693193877175052756121096425091673694261694982138243324646992426410322526997615704538242241992385209380897112140182011923924620460289455124637575626126610510244754318045080554053792867108882783532576402609194201355001320210005830772331815097598261394888586628166016263537930247466956941712493019519973948400407517647115497833175105509416982786234356003198156423285204039543006064412180235702448598400034971261296757482426158377732658607204837791310032004677535891692468861971048024607733881587702024522357868792724673366022480793281329220593216566097112005022826775146620120569641335025447376395336307825264990067677899812960662910373396600724758120899888327384199203969841415501755836687039562144163442806495509783546850341368219033900080870948959029064648201303608225268736469135886519896155491772146755142229454214076118272707349962995169439603911264783360960095691129457754663185228421750412229965263816124528815676669178620535618719522988677698945637166036485816643144424159240779388021165670825099812068464418697747509237151197144983690700355435312760359850623367187510835340765016500805446323327215585997476352077741039083783121724190527282918320627785278836291144447588886869576169404879810886460476886150308471271121980723946010968283223048256789836537532607551318284027542116493632762387491464844883584903727580868270479321996004020559847694741544782408825799362846599166796476178025530907445715390641687354636590887869973088409553487400606435356558497280006396295777189427868880612964008168851547349582512394304589845493202295627952408595826338334257281435365206895687922550716699124419720357907127412860598376823877672348554587785925559996364082499786970220214347247060964604336065139600578177476868392080890041419440291029523155486149393562731267166143971997733634057004247240983267738573790796476178260461209073354698931311013171242210201942194554093268656809091094203243705378803834392106445985254235548100011574227227521332915217995672404853018536372171244167511126633395889141278112939797208508358451149155570864747788215651282006682456203054613038409944769431648250131598058889285229929348212458888623279722786672325221042438491071613551432310353832829413674060006102137218375110293462691162358041799166385200832682907067530936653695844943141081217749461564786132534614782590635299901211586249206769664221317846892067841350536474892959215929371668001192796730894355577645289507448814153672821676338709761676563925258065220097489085910114258561623023244510679330804790645700722347045587055328720986495061203089854124965746609268347951858552925423818182052926655334103087497189862801708563071158671711247613519334580468367449285320689431664340906621614787166224526151495949229279688228361887395423087001917863355507277900382655496704184000787286243340423668948102306260757661770987319593543559373120529005124204216624638094857805694784037832030645054715167421434191497685129437238405389046944977468040519893711205664064385845637462244340554941128307122730259131296075067601803368900060390728725588255956150408146992108463421050477121916874657946363515053059715430056314882472252468046013121395112662164882582160758185033483241652120284710630576622526114051710672195399136194327455005454671295069143188770917683915990941319152016900285282750490260418751429634628726325573878376816525388343132848869425746374708927619179285079082710868581454052578020513935969671343747027479705270499514430698208074006379419118051439597611631000950376416678431103583437331917826275256247686922979906016170461761438701013453596374155789177721030856854290639192392815890380635255996946396392318564519632087578484307761212952220962938309522188429738999388181211580518561412189671935175226729056253401591640243008805768612191930123390601118645831539477754926098934759864111839380968368089299567952290274173854772749420332517555601705418263467442640683277564740228291437744327216557897581628633968293535865594426532204737043573334941921912973211674172037334334121859935710409901692714077675910961584477295373405178093708902665173585192977196469158466325685746071900614658804540378798247138802277515151825297264110463205707260508025793231190376315091594629774260631642111313324359511152287931695914923492086674298121561598783653956578114579458780114051086962869723206939285094346505353628068039603051912704805222802347561897436264910724049527894858533339353034744337244113815372496757960960220413668927617112966531971485318136395174920644574303810745975582632453653243994492374664167795500032674936561558153657127909771772319622104554205854734160739753907462327649957993234272466886428646030669179498525681326917563108852817396504489095765076791073438087072227159924865989990240120769711909309169389091444839346053023027852452217562783501917150704000365516059272095256602662665830766353682403094875949403183982957711922692152229036712793405461413692266428204641059548383891556859273835732525758437801896097790910589374425740131287294150965670829941021564615941587297083549987311330627109950626941923249595389039717536779809321415893167202800057755862257217405007340301312784275078196709891411647170241097129542299291765670944080632279685662742160274525610958834082522390220758607606384732382809450936914050597221834074284498865598858097133961059437839362693223285710940527159732310350883769389714316076542118677780012579546119400059873594586915817419850442833441178580243025637211289127744478767896781479170269398136282489596516770907333040156459882356871456885283369963102022100766309923398558621251639861885845835058030216089751050032209430011503337040282882545225976673077984289417550928375414478479898911667027715984253257448073336651180331673574661987553816240275009374400154637124487448699041202483829332393630449426979525624629765467668852766419708921234780061666178790072509375282518003088665480664418991848959186877895192388526501350077171052513694527623646960139269681979059475808019553404969366381774501852962396776031453756307700251781864511075656651080631751976438973961536131594509068812564152998579445257232995154107211363317633437220823533058532702270470739005512065529824320825270148410799206942544109372333236758598354272990582843373769831505997083748204007762578469426398713583868977623698200943037786632669364707381316338797000659142305474407883050532633976054853191591309943474217125738738945469668617545224951671468281339814185849578935965219559355144643019625236637862644750086595132790213977014884597387497757425998088163702531654850196098893965634945606465172211839881217789397584252249027916806367010284362895885150175879330741723740259574536568788286660502538287589924621887964032694335556008706665462327487186067236969736404410324460795102389885150237334448262543012658017871333384853294306121801364350562294601994956529308297409375824120004569021082804563714208643372181885388861425347019872257960998258175513650660847560171952281851084276578352573525668140492644282854552592510143210904148510422585583440564241766623324920091316128404918720914668626113616992320155764014541764496470670327611417776101718416876729737876939172470106112329023047738585928553973749409410508951218662133666105530952957465233661290848158584562163719251830047952864624070087352421032689434620683318749016536908599613710726273466505290852167529662564439932659995768684548126826119360575062328155906525901644647057673375908901531713581493509925196737081803255251745938951396380029523917353323165235290175841676269283982603047766211978349406993258923352956993393426043536359831311772286237435889823898859977289484574124376008842474684391639462011437652720201230305201369938675492170421003609090458271929712057590989550515977680290278327008035658718368627528707235558606713398540884695502717735936493316171707437446535987183646594388283286631128975567956564767547864996383665692723824176182916229022530053967737866306593675559742340286041049370022393163272541899765303308345899538464429085763564111196530679430337426977189521448846430726389945745645509024011301947115078995573486211571886966095189238542324760047065419143720699325750018443898427133319576511470475109565349461789708652465487564195932595567438915908649311463929453887008827019738187737228296044712452485516885745919362491948333503837441357260320437289552101717937054707350949170910350981536169244834394425637089768385716103683162500222008113434445039086591481101236902686615563761265040541808683009886641355027593319419518643271031781900043730894354952093774023707988952915749392355896081377767549143450534574496956082458355759004869675826812692664943197083031793188195419861539688157558818120759850463413971930610815796012271069095246073708871829309626934550013724019052142960656534215101698086634183326669251745538579562849362600528628873706978540121772735627892309957306574706721659710204986939018016335715979474617625835093783525468819162149158978649906998100530430921171036582512091946219100641715894227429640412872934187635817647956526546954074018457961303233139692693180662753756128046979590914127494462770344000979964277245827479453088052610835678802798541296238088050458528618457715568477190365308691756908203328841312725159003004385592346258733336705129858218022216900289304304857889476008193332598850305139053650309614985356629147900026817424708831994120136349686760567264410370130471915999549005460867645840320995789155470892366039273734269714848944713719029824309990417751237179727525051915305594218060050362635883719397097155592736142968556302817129423925398642589886378579610751690847966799813574171855164986501990368392828179278089075247940328833895501293532775966575289087977467142367746015213251639590590593592334366639718057571508983478122211744467266662315419602015084391705967310214315788925682236258242442156278510974230616859254244051315797843919434226168897676281906797528758634137497536848487589345986838504794936424961036024508785940297591785946378071616386633903550999655212149810171020619334212357542018714674147122553722986926301125926506276506296124677917813203262341728150112830212822091518699081821654404101918802200999935319041756606910240738826680148044046997887567729236807627200848687983166529236450847758610970705487571091193233378671472499784540753756278614205731138759670157645323885185010796714472615091837321460483575999806368621615909697912944127790650453643232915409390434465073097033432111576443733062316611041357919282518125931055929648047189293459174837474103358651174630783173140515187653884455424212527778950131055007179833971117255579898473731855226084322818622179612859286275772716170169099115484133724377401767836135950187944532069283271847130593328939509631644921791341247393645240438461531837849196421741736231681679429574583992552729230720905004641701576942765339758563716144917842901287914766257024669388871533561074039558049529029081524858715753012704558280020479168776183217945769361427786228568996731007695415247801123230362755436866562956307974593159351164460354883511528491776691475192835631504908753608514948473250105596727077713980421965372979529054270459975250873699125951619301010649135040834227996067323413633988776118734667852463675739384763675712594612892397935560619873025596702197582943861303239242486307576000724080333512632867359838225961448106167593238944940015706292151901058565150281326285425785590423534403100375108208873978544797496957120425955631810746999603135107538294561068071295818812827892018114739377979603654511850361392641028869053247441444064489461180106107321687193192114315829434096443414687030288396911966798904649991203940061342436440143519315298874487912115985825092323289162451637662810976077112198576029258624765187115214941542695991272807799540107383732958820350423723509725921161381620157908732316296696596858158765116205913126708568683012004707811624532792771667315306206535238824644510456253330734214769162137451627341318888049543488073349726158449619927137795474881117303377022905133589958958035347869621248701627414701286098917180544500717267565218853970794820692528723845220604525136663400892583069039750014790243057959057613013566256741322769136485015679831752904710728816435370107690361822800495638385690290388938856058116531551100246721451139771650487408438055224569636390414944367098512856617231124957454285467431221677454245253188317593422872894192742207443618479657199143403578306522233261388619871648704405543087972381200009209012010296572594253753828283120211860585119385721837442199449249136449628209894398872382458183664218646835824206932559085518090361343626949011735261814664979332137050587652825817196981734793307095106346946827981531539461556026677549172300054050759894269347971973606779272817536997828955349330461712003737780818611464539420461123670290709313745966518642380710025551268712745848176170806769445924526425264140340560938626334972147494226637628842986928359948006085653124158401969101210440120344526977917435155111851535072613428945362885422583943853689308534373474672311444587807694012515951579435168944754535740883213122005231195327260599122200261464961334853334519202590290682353242481443863596726313921738791055255884866515972079996085462786128776105086621487819561884405407470059430383328443760159309093137037874606807488818468364808351645840509398391807354482270285914926283575925133118874147665826850476203883428670644912151398320927384704515312594586353376940289018573558715148585222960741312698375126399593032783712353729901880441938940602844627848957663880457056961787590997085867561331745011112313137875433257810470483357222569499085778006850346432449833027159722141167642634794260768375087294583169322890651752177036684101718629022685390269402211433110480856238945321053069588941044165479070718727135936548672172354958753483722195953432201637026509336810028404818778228656929057253601692510067913419207551040642847024061868657960060292642032455323824186474377406504736961658213485552717797802641405077398321829058597108728432264459004520608114753015665702636320690813882557077694625883495043325671318589196986855223657289877722544517183213116618829961641553329736043870392578772527595607320902898996519387169713020200739310924892037139282028379920436757612186624015727109935705317761505524650554805650124289994555586188737637264904940745292365056648805961483181043262105304265830412650052817209400706768545543902795738378906557162275246868283687811052709037090569272706001233198328728501493667988056985190610552850662045294093835035997644269085126866134449087503963194707512524708765760351392384828632693966618824991285326525900394687084540714232186740156279162128784777207229924888321309456926411403008799210446911141148433795885842334418415649376012620942104493585209222796781674568987966797832262704503603211170437854715094393870146265065508505951061103585563072379353355916264662773438764848548703400729399564022045685616551187256878800295218260107856154762023516873896317489434282421984363399179871366245266158901160732525609833959238697180955530927247860626358593259384428028911672486167521451354495373260763756112483200018464686831959259916273955209322228431067715687105582767291324171412997232505217624031971343475810520867756918589324991068284572984989459864029022266751210143981896378365976084153461946115979397916939313118738609254199861805137624926908724069795801736981180260868390771532332561667901078251991876485460181702310260691908081459821791493691519775073332273870215994818648756659864583827453581631687249675083395238479814679894567558245450391603853308129654386675754800647587683192878884615848715759998229774964475050508666209900036777781901263280503435260904318642208216396919440457341979659623929171905698247808537353884379230076010503801526553692101131597675138814846657377307014740842061501253521667782953681266158637563992420445477271540745997226080179918198412646698475238555274977055213975932417655520329965087265133744368503072588237049355550395393874694312247046756472296944068957502335489028745219129629240979477776944221281281664858752232549959572562988690910383543766759080982305895571639905809802253752171827570873886897063145003646839050537620209123542648371599450178459719143437021370679280371335319485186701888527845735330334373347134851331618662627812409282605136334824873805291405945104116799894283312141643689685989416606847263472896398174757433065134844552494026415424249821147709687728861770871819189882169663825594829459289502428357937325451782043955210317548337245569899383455338302100847060212263841870440072248318598903816619306339848755530313994676894192167161487205525546346734080328321565527086308122912415542323540897843533702380710003258604761746221664000053262709317195610560027640585390248014536063281100362904676344535105699046503210439381302974830523032672612346133975391971599773044615139134734942656515977799710652752386663272511444548117418199964259429184876044756057589831266464565786744130016858118517407856417675480925575799915127445836417882831474437499043929956106696388912882408223301657598375998918302675950321127462912142293657487298964667920038911923548602642952582422525445007221646750558959966139709786159980016611000554437977861031028578298627693455816748411024819694808617309579532221412903509823319788047834547789004405571747076970608972542831021532364478641061649421138095401524799171059599127986468544330042552326243949130143875135105077849093628378604466173245302200302824472000594665451220676102609917081894009639433914293397247364746787871552134316963667488052903171615551496649026394372549605039815522553392409016524011625019773981204992234782220359867952256138740786075093691890300068053901093366843980334379983349880808872427695453857692429226068898565613806985748932778262330242040564798620151122103983833524712866263431044194470253620735812738160532046844941812889198788280486529358844704182953641686931546483311433615719920500686120036213062019469913869657130126402660573630287897609754048037760643997305196719631590751312095102508976455212149321251463536347159648371345393407382566841118023094576655280691830168832766949350776125691025731372976398925399983517564530408564711844978739568822147690896651856040745801219962746755876428101770135627846044145663313031134880810029537543650536264985337798890944328388160307939441462386008420733120122332830369339196158730391441603538184847744308139360390522464794529786098333271347732506597353959772108329431662041762999185278816843373621977780646661545786648537325838574382859428979273289003341323550919868415713089052368570046188739183046128806538851942281279184762213665659970803894991796358528933008274327025766502600826977822559128129910434269644458909863218349476342550656017980804139517990555270766155729595138649166424047906569166770293047927075907786565846536067392229876428957367566047802815371886625329014859416855765926855877990853356795905966770920576844931726012895423253597265878081503269337536289476552606739951370824490835221098912911245478663956278025541262822385801189279173404974463062059798167136938838840565696638502351381892803750165881567545129578043840093987558573213172016166762761693123148666421941299487254300477976627591761933953427347472341125728623633003368426548907219994073919409720856242964624089614533641220186225945333534418972315150988612041714098907178398021857641579997805269957037333712992439642376643003460434101885808944874551766629880127938603162523867270163518579823839865608383589419186470684632631578049190968991937397143946210367075953011388536360773446734607950977846620433499200024554198915582501174441785122020956221713468019885505663357141884561444211713387213199453946706680424509367517035434657997176225398696735102482731741234618357922928964153477434217264149808941379604694651808514529161104010061553620182449148363456454601545266524487316830699668870070812975418525219032221026295551582364315268515310755942585228050710637119486229163981761350301145767317272982314858961657192536750727470074257603060070648286715750584677826348677976208180593193010229488979485322719890616726541372582077011426963196219650622860985001420984684042968810137201957081374309362984838009611785881030638315418984567131806361489500218272576976712826564140524391690351107335502061773607350768948296664481127132376420419037225523128212751718929834760623401923213058379045838887504079343387227097381587984455320171491016453321660534899401673122109568431592864663264229359861249854027291775647561535148310593478068700265889381986664755981584385257082680139334241453915870364660405944415313601988377186547300536593772217984619763344718528036350611467620654086283906795818841688240699303355147401215338749212608518632470106684037996666335405883934340458120329069409461259570885297263558442045264050107073366029632612841703908977624856816247206469662717538142912299323608311146031267120428994058430544798436183582519596467235581291481203807862372850207459431012179630924338687177009996067572745723301617338551108936896194526375910973536674867675627217330742086647456067501811593601895643989135206940856706079123209917812298850962095528944340457673950894584922799172614312551841558408125929762321808572658838142822315333729825231626751672423640979902352306331453513201626656528207617853866044336638184522264902382328362997543996706607910004837306666574049124850317061494599697542440514353716788075131142500532191825782279137294139963866630718417635685796292124793023161999515492409196595160979610532337297650623623474277518669451592712272601515800708601932434493757121858498791844143714089377425643097061158842235176915761785843477587763566616595655577733934043566769888711668849510739137033374855372787927187387879176628976502149643933740290396775682211090571070123710461904305207453955484429812856720659100923109813718562937856342254641739260646294302498206416412268317819943728788610032305305875796227800350362310538495390574124878240350189797723988777867155883835295106551512659541781684703627250052033145391454056256480013082221113306965256986961159190921828963040951814241040731098047731561579875303648820143722837829984338566752838439036475884015644246710707842339476917722184570000962553755334628451594088014260382448209682867151233759738197440585006286441334046921615538280954429023976746032044296696020358946542892505982129660896394806866953351142834579702579553691724598494296950197006221634880248259057648787385350300734587125874508541938389727513951554278474200503001186625551793215716669801094047019702772684342626259656655905689228906522823705101506808321546020676491251163172533190249789683110676539673677095337163731444020015427213605420663474416122158958041838700434192914546538254363846628686924865063035183454036597557971237299107508481497459930902458781003892658501134343394200099668826886882528614764031206543950470136631143322382166931894834290433629986513823333736228736800104091700863579438758687710940000807361995081881553667085673220800304310521723902511989615114456604414024058283629158184608759933101796082871182698982086437527331702646103365160943424199270010211872156370062191949296571296331569052209488518561126270840947021369302671998441360272939437929754727838661470960392097996928544781746557694814420706475947086183830660138842171109844485470904181201623567633453941736072467720268927092149687249434593787815953748125832329625337748085924631218047648098723184679225521558629238373325463952609871629369407266216700793661653555503845995315775340108074871817914686407473375729288862725126847127743034383111671489844899449115733084731163278902820001612916408180111646652188365336327600056817245399767799964437471974313880980614838596021349913902679675024565574808148261197126239389228488416982951364880309330989056733020614315924638914228056437867248016486643317329060798090485263699930240646399877434775215957705638545551601374545151208981702856786576194866024334277083759301929334028236853475638575936340978330065031742475066669111875090011696762391535688922158672375583978220492445657113082559579987460020731238903626200136772854573509653888405683254398531482313360371690728959258363598122989596899836976970210070101546497055291261682803000882083210588495539137315159916730945673562707426633185344800266629532591349653018745150075869037319008229913561341345099129227606740206362170632382527329606498860224325561855625067955565921231395896697135169940562956095009359566776503250442525297411555532933886419854285835352279582265054650330789402336340854625801358312255542832644112086073217694254323758103480771487058057400498444470052201691872066188950637060001476696854922015211325896726342005706051727052259272324626786039091924882402428325222259936738073777378190607133920612539623179837112959519960654232548294544022878992446936176519256491729860615104015735582621037894000372295957351297013129538639358020635943052260810056571625806736123989677798038098776632669956585531505076181549760179501013343620161977427575881707522297315618455287195798966661274020438738368745464867882499481820010509413789454889517379631380847081340094046552287172980693372919606810710388034473981277710162003297741992644848153203789480286239374153780450781969612858996571048250875782499356872191119414038451111761265544773950865567637319871643523136319435742353104303603897580396202671405877549429512749944014437612939657642852600147175158829841396534817679196306576959712745896445893566394565769697352644789601441516216257963965102429509770971299194726713995874354344397906211263873674981808664760818383404696719910203951836663497770152501173554664064187296524080998397424993180815945603201611705592620759046699923151090174204577615088596066098710375246861480051837568439633560228756024757128064093091446942364775394410121221787103233980718729023390165656116627368371423708162014131115738923728355492013204068038497580442364456949954029632441082073384628825511064411782434917523700301736760646371824459263878741809562357215054723466618384743790272393720148748271107976758682107355440546174288874137147651243696580031354185694222044882971031346100615961938647027499547230936660626041177242585661374138841413520661587598677961416938133798931479548165405932219402455827083484168785220942511889429521115589995275818855599687222448751132877247916587393479277729038168563037859743422697922120356810576536686072378021635114896000826408776006447019530844375397104131382925648746931862654954282570393037364134381168218157355670895635840947017832439384513432478821215601402499909911872956889371523015250345886876118911640542990662754656433492655784823617640851901590004329010577724646930483539240279082282319758691853119115416831007231173227400167964323090267411835686576701835035588288219497890283851279806091733023249903356469799883848275759548825707777863076206475913102610948982540443167794709289732867756162235982693113091786312690572609736592191038283397234219749567423777200579863636404863269583683442654609923033171984133814979757910216376268544893274519092473111038609543399356655236067108319844578163076447600804716453068167346958752799039681364077048950918591012016535694050530962327513936706596226868325664893861226026101886021862777237482681056163741440167659980383263589849885013646847289260505207361228753339153003115814029538695616036619139225762401537156487686511238848790519665079571187310727033391227280998248605255317484699571220710469252755140380387401251883384758536794654510500360708272183620765249033350199533649250566050052851632702287453863369940226641193847919022804482166371622210787017722707740763318929061224825871123075520805391290724742629274537522514348690720038963421358674278778964117540585570415768222042611978199395507661015283303985911615897494389662759510997055831476202778289185693397445070148314367989324914876223911394312474669951442505576874364810819346200690829093780111425293259111285601333100287607119332465386022375807858203638582160578883110664332039761298855957627011206387731967597483187498561417747000966139531368363035667986593682333101038630083236351274543323539957638220831852648391442392288250969680861528660280073140818539364767685035113831083434247000854628445192035905839276339638548830811819255152131981123307225964801401047416698624661500456156474947459833078997301275452519062115090258713625322055044087801094111660565556757021474588756758560806712240284132174381235606972189575282601854252558916793156928097411452596469676870987467431463614552054770120786744353072814963546149030254902192494942165864752207549971329329526676419573043534467210694880039209265885616936950529847280555744515818832909498327456235407488201506443864071211027068351624782722074755803745540686227125115985958585340830815198054531436154628787523371046281623415069067283208889536746017515317335395105066763448776592269993131095275707043992754879032209392340613544387378192367819082119641025603819369870631955988782403843549377688463072799615221344519551365942068165967984336666684029623146492707209422850832663154924892162929487227628126545641145173790142975153253953456996751859729220322621648042118067306999564579511568269283619819778796807118250733679884483761827524691208367621902054125632231708540528919583456791937913551664328211282720657843019192060204322921997134284168234452954528600420927821081239725611459879358250543686120933374865112432688430157090039586878979601668448423513681308274351344493580765554595752605526255188590896230144015912971417921834107025043100760763183628599424001474124889847980303654308853185097681503607179369139112437400770219836203300944175121374996901295902741097899400790547595416014783955539890802251969599422313607644268872182178277178399931699544296279302128874771377669672730058604439838509229475319963415106749393129485784981919039459428763006330886965265185217023532623303368052238833773991632629957005108014403033433298318622715036656196168875821827765273745853466791136456728469167157494295739583532910421250235637986249578940762385928955888776753180494936620758068937598989430075296769141416519925140352093939217583221378093180454352133154713430853521899085388598971853478582966313570088217535633350725107635967413550009092419146558434864078377595830992426380526951393434417514852038631840713237805347110856794121667196978118102700791201487828238207888332080138282911673074885145299299786824311198694149075497299230677110090799726276100646007272952851589333693138266090932289341109166357589956186625475743770396200765467999303477825610261113272655519845255374799442485378096992743059453355060797935988940602977262113905254802920295444151598499193978868683932926024572734296230026964481937339515759871130813519055585294405312259953296529074438590210050031710910442761932516256424813356104231585353736552645065520937686180555442393267928958953283588134040681851832212962800333645115241605799866577873869019585212093752836394976388900324170037960139547057135882363839330346902729136535262800146328687690340841241350832812780510792712477886199192673730514717437130867207891385850129637997987631959026237333435733822641611380319210595174673096510054515968880508936936426271733068259024977356913206497874881272187463383242307283703979086976513009338109501882562960615889400630743642181564452951148991742281847036505037598923806854310660858987587901411628086174195064263645354665337474631852712989599592699338612252028881181767602936690883439660380825837743806013819990349467487758855047361247362913217172204898659889879770587837736299409082437846928314733928341832501113611208994218985820771500379160656769502090068948102499121625713022186571539978591192092287975913442543817592916547141575069107888701072430545911546714085192600840617577939472982739729255153592709389689344755516353305897691773508502217987914627811895124874172459713087694429532951074681775540648841259228360076046335513251111735953471797214931965221502420248213990614321964122849365678332926253123781156017708849806529422069421693812340551351430519857659736861636035888981436417303927115511610090735506939833175656241588820797971372219860543716165272371467227346624104117301191769067012596950706142069915442043245646460773964017458788141855534802989040738032609737929642177894931334953832852975032315076407723638138114201697026520463351533032937464907876658255671202141672273559325154493753717761402869303688228538632784087597899817204182570594601534163916923874028284076414483678801737490526455799605337654647735982826530330933770891128440351082440097582893239804534517411795881581549645131825245154280296292140517179125636775595329976805369804156551430649300346378819871366141496898125475252327883534134850301505683965471666780916034494874460538631886182692214136682228801549208310593773302885318492368810627933089298709285308578051330419008680583055259616130116183636047481321971319163252363662106465407286692077561850395022816754330804752032563790075379538648837439504609494865832849692082427483433933073778037443793839511444092928566575396929334081214038021839362290094472802941154828448503402618929369851126162314588615290287586120340632813191080455646125892093809371468867068564605656525138081883030861623911757737388318031488755156992672548744155462309140667809118140018767360518452754287348679353183213997442343121392572080789708313892454470475407079374057883706408351062222733673407614180289053286869731012122385199994738443239477042621688101928064599539152197527481727801951918481370995017863513297950799567955509079061221032960162245386066064851806008312989515503037379568735609508327167352241863221091055415454060070082905367078898508355762946966271745601288231095794781734578890747672666824033482682560132171788805635253917561908596416936569460207400213065427646174870466726019595311826979548664761465148961322933253432563024568092409054261728201175080425573579393940326543066642522435996963018619326092899042408862499479787823985165838247971703584589020709390825785239796873579612940568510118597972863862394005510494171552451380474561660883575982075529543325133163388821756591912982665460047939137197120206635835430598108558545138259813740131471437501383012773632208478208885437145730648133981959343552154123838119083103835517322805531324350310983280351314457749386855282012928014239128037695606389627910484022259037904665394234807860429180849985059753008932044467045541052532818124313587581448654876589094313503230148784280451480689320518017586493987273781333035445069337258252490775768627105425596040965419354303195358905193068584875913075133775852354687971667213723371162273206580375191548971953515864541660927333062012702280864648725280688887074382647332891610644305234911428785381545656959104064200254742595459263611838400929397104866556490119524411781519369633809159531780432515717178830325486367153800582205433131934574782379640709848767195541943641223907989147516979623613474827276930784585180891760052905766485297042844107569584521494113678993674553638205824968073160640252008194636212213502879197506597535332514244873739592184797570145380173274105657668993440732069488257955000183708565967267271914518024919093964952687219161252668677091837427609552237179159492294614064936299200067466317082039398672536547573183207555570217077784915389735979976874115310798696404365531648754831435710611072458254012269336856281268730945953778029073210769275378876924288375020839485899703476002068857019477027026838524388977927372053930482035238278111152321434689952006632739488045559735894662198057446807675496878113262333772159315187024174740905486541782408628171563960137752483720302338848003552859138442452414564430094502335361407027078047001259891095503319524498537313604358299649713793509499466683484723669061919533809504459457090862122365739791845908372450849320838901197511426943621866655021756413711002718747085871288599789030804645931261385350050299374578889945620740283327273946948434738320087073102090911213379833672427156534710468630037554913950087362152617118841318709495885181429653815692100351954899459830547184263848617312288916071343966582481685047476225034384866959882832030526919581319368917759737501465583567142327499388189973523093749539774035629814472732017655780616816633313624954339764720417677750754888100925570724565040967102908428683475007310343591329200136291931144675890161942333559033092859824297438617025602848261546314663542501882942289644192693613086774578813851927929590527823368346723824859710268760903054563589072901770225559716276729753301491953574488703497623476603545249568179923885488264436829234851489072441869291163948238496366123531201606073036139083848061616961615289198163378169162864568140399228636205305269411839550349816941006223503266317697931923271680138255925094866138392082242317575769427813219309807499945321429017805482515837474128172778558805586768338989512832489633674668462409527804255667634468532001523160679459141383407627900791095672561187618549288917982281614202450139548562965703903735155170335528697579763784479674649202881777988429071902653865026606108537330226738757136211810394472303632170577445168320733663607773428855817938937691436926032783069269593271287400866852094876429923129887316474544282315874061550402014145200102602919114002757706075193164517776186414312141157652260816256832499387852570427946381979805667405357420891639833991594183985707789344420641276292739559229203287849052797819037866851147579721331074426730677609330930295312556668088586975424972792882761482428082363830384856477651129629181495103724874961691378614444970392109160609534688710515038252934624405608849807793355010002853956181429066395610737070649128607803322485633201474120282444861836300760021342923510106501893747584532203280199058404196743340342021842192683601777242262878711900290327588584606728203886747090907126377407797585975919474362709980695875950873945567524706766335702982887368500837118556004673758304863698718043994689532205430427314184305038053725855151087985044834587295964072451737780254003165511821641486057679762327671819614480055703068276155569438561987548967614481588905478851443936273939609318195407554066723806347141006105710210174442301443025641930335976253063765067552798146567782542154342226405224021358593579895600317947893826424142281638736531994753067251330725467873863969846723365647925697439768366906840450740185799993626226763448837563368769994777271942908462242112847815015534233228204875055251756988723993418513768197228301745091921994308179606110913343392469404644492055211080325331660993310236654074219108012400039123160230065675783133674668261935162354507853670831386223867294518965782988325586601140265287411568721127938484981881407365266308727485659453039436065679758864445115600163908675903793590587713030103736445801478221570369929428318082538571851492073910888275195049542955756272339610143290336136178027617663589553743441671739896471252675292025915288832729341531000181034961135545512587399048582439662925891430704253465656496491479131069198112831543668608622039144092296895348700053221156957633218748275959743591305914226521280505213198107114862122007961785078472664791540298951251525070942750836213672724432756930598304693895359029457656091672078093397712805186186135286426782371614536276610398804573790646629628370640851404488457064740510085062488225135315392886598588758544485673307710386137307840042971326888768553054027368316165144464299137017355301140933754700478370103918994437686159017719210740822700806595556726127115104880593911912033881274211767180598548909700007053022272471868354542786954029912174011327794681691609644824590456814002598226052706156017091018576847546213816979099721331157921528234486411668494618753697400823276206713510215839050518021126068529788646997490157229957802048855287906715387485850844500095341893517739112030345656469807147748812480293571922545786894580879837002074880568957127085954983920088177422410313180073668943363876457053361515071834291771247868625914882358235021308411025072514189205399200538136629766512462627771146747962683439998926736901781415195780607830268237715169830860752838069062862729480690838063310480054538478094398418439022281332799153914173064062653400401351814485128609020345995074351734826255259744658992977380463049049230184572012461984823931334335856756055056172463590882302143693229752234257310577477573565069916624637349855594997436132587183052315534805423629108007585743211377010539003463164851063821767364887789708275715069013795442562756923244221272040952578833675432600443769970066947254489608250034335096009524289754888365872594314035188958607722791945240278141343402087478338518050661246204858514541757548521896973091786468703913323342619634103733071761741795186352446861917877880332232744840343408415501920500982785314324731745779539882302057583714598740781725080279085963385222920215461736597927184189901435814758769357751400759268579376720773534820344711095746995170565455385857053334639033257516924171331276526459154401064989690943103040186795685837394520439054125659511753313362057079879945391359899859986946205316992713444829027463197194956387906174339210728012525890292304937432949464107288685811291713511914074298539263333599674949392107821437690184797857262813059396050177268418980110058273756432580529619076591245626562608234258351441946183212815205497266309117609065637579838843558455075546329263806615086997765826134897897010310028908097420724067026392810027118966290973568081162032050457034690150982433993081486597102907806389133903018692000629093793448353692098346207707260482205330363109385564967248433770969579621249297156288216855421984363866360847767333535365591560447405259536466545594526594466188394976520806866221025249357074620252947515759950782867098834925030504020269497980430014725089614325182584038660444717186591394225034506343163133185229852650994328032791986845784776964923211248427139004766247604630337620204161430691445722969977521562034861188988282708677079169780651360139917717688693492352215104040606433593606221741519267138386611874073249566444208918054940665372956487949259746898475215381623516816793140436723276852081248302093540960309467898575887590731195454870295274899401325305727670707393003031963465665835256495778253758570099459504480920324979070081650410383067829457744964692905271096051450670560105793757306139576459055894288113774694844422792751635455106694378718743364045710668390725882262922087216186703577167502359324712980393613808767421109390212810603671917083006707633706388856056328336826441148698588764546094638450457108336525679751372075132975188797472387494095275108886290676847009746474270557572916677974805097330257095774481459381013488911149174223542159637011664984858396511213901076092272339115146336756526388349074738435204320487838154489399323264763691771526869480269186402667089986308774404050827834846244108898781246051772228396282662899778505232309864724418677408021961130254052393443901818338322361410798337551813704835715930608193605453107546745593398216969872545009733095784013653446370236898316183327017274945850087752207545764955016763740531063209440182863320259687508698776346301144712596155243587112329706085880154882846073792549034405686479372692419980135199491530463732741481034246709373942531408299835907691904342766989041609672294311577975467327631423358038176201825983155776300505184570938168891867919464838582761095521095825691961007209473059989054592433126166506646120768592210397920831586582950643097120185846563611244646531480354643063726940497227444038431327179938959161422047415002059543500759205065707775290318992140664444574532515266245739787424185479876030518735500140905495857231114184117171580438642683224284304496877041621220606955885785226878039068562701638268175653415955877940958455713328332383869131150987307818331891559211088921727811848746125691993269006095727503141304855381124134663010539884177506802113017299441092895513453578934219732336351592906249666413959581832008528593101250410841064754662805711711320307853909902620711909212482892264775160374398402212262566664608662181208181522436803372210602746222522551215009065619668292260219171707561889127595460947135235686394663478357494471888698311859395624385939397320729417249411533745732758402775682043003285907206233868305975389873105135343027801848865889015416298469255933610911112267657775362461621231812219933554002813581245211833788776417171859212058322900091037156215475783971115726998066475036642064796349428375169142324182418515434743701615507364640648553168660898872780707025204514289284565070902111064599712385047051890571514258293386209542192701626244442414062019433706292518116626908502014477955052168582600966493012166162514093155755442642867750092374328759193325557712479243852590214237662494464382727850072719133526076090078792142113385286458520548803894097040798852283233402396447332332817744614805656857302136167906337351612933887089345703601102640780362929186450235028435287240926446235704569636953920690794772306042481340547195678828957791853950403510272977203255912120666471709770773448436995253472064597465694717867801232828029157612632432892974683434787962260551333215724250590915477277135109828357119801734101252228314832596826090510135854766345783703988189672071069528451862875133797566866199212930882877446370303824748851569065434049152652925053538122735469629494311282839584747650073825609609095272295214924092200825089997194805866592496946281815821035305468866193937029862798160792954655902533253949555766205933823505167408011575408681742079444061086798430924096245729813886783509251191220235479611703406617601445738748680328649671936808179559391016727767385388873504285182074321667151594684407544605093901058672038787639351675713573265492958785825223270726480375327021130493790547239060665650959105932035663042099358426624140215965557460344094343580295996290794081629080857922259283149451930998108279094236010391073796482814900716119685989160193207788408792173886161666665236080410466381150905366431563197864294373743373133784760181725893282668495732659125938246409815939187895635049432505387590806899387842673237174522613739590681515550074449074613986532399605873003442453285970772450556677615008916769853074416460773510728161830820672091562385539200041488415640252114114542638478269746107637182792258508149044697248179775691856789753642640495688877703599874107930700469261405231625466156184178536662263782023824853543067217898038471342220259538717591856456148876461340134462213376444296160166047279087047186452077283006767330432647938149948864375363022125031287242941593060141354760548433998392437637083150989794995771525712784386285541682359020335096862626640418937555179632679680332903327725278314533088002181116969714768386469715943051407611479338590390521781001393988871755690184478102474283252392651213462184683497089944113680254539362747338049707002932833084742219849939630961535913244429110720582827165158153344289241140019084171150405357122751635900036503703202907205133568818982642220175962082470992143087493135081211567959461207543007753981527687508506903091379720651600354600857847713694147855891299661956678991703366368671808387953533339921661940651267352847862120765062263995608950924816463588750238305285869751221494944613273373139768984117561798427680400352046002603998118308403370462597290983625072882008693208539049117986236060340331451470074683249026888576599283606737397199280781372794494224081815123465431285171435273698151893341626560071526536530498698243831697802891739696625041698705331148153794658769799649910348740394534735915207494652840874877062366724745801926173465297770631968560705666067727445184943913407217982127352445749674778278012572181104044273826933529963282373091979861413588864282635381630228862196460237218298490309600881330833490776365802002828973931509400193967654762808890993708153560066846655322557308449844849492249343149987693709206332882337792227993537207215421455004742595816009839637644841535495045783588703221388208991576820724185365831395514908299293924384343913217402516222647865429404305951554653325883351511792879088892652780058999968636425071669819171247560740591953471242344632721875845832195792840616856510930102512309679601574291318003295904016662925689345228077805645468688206592653361904438970281287778246870190712101995845168479398135850250569821151570138176077987997549350375694133384209693992306434909355647943795208312011859283861456053223995729267636057434903590472774507982409578677846844176391962471545355356974161985685067986877927639994334684055511775876487741078518965774734250973817845013046503423779716082178963761022926111913484811159713425327404116556261263611521765376854512576608956024431866217556987648984409601728020905344699117131593966297241308851643954808207480441402852692393350604422894543051092660961470501634063418190030993650882731308000335976759524991533077580365155631085421748599590233678532379572146456115716588698098703726128877954378195724389396205170847371396081104320331098727307885940281713024220675742697044564423515909567828574312116226010970355723269558777936617295535854505840689023332482042859728111648316249212752469593207825199733828941842876586826189837095801196309048195813314442820556987931701108161773489791804638691693954585791522994936283555745361858610588855464303220743271468541516254160832614750619514201766719845679502530179026292999040020219407669074955866486972259428209152795643416489983771546588953446026359331720405504094480636149188336647887646946828151831619653592339933339239688643905665792235498271333912337951626911953712268582328174316775687284757525162968909506912024541673429665882180499010095966395789931584664705231939237679817445533965114781388025601915563753381152866298420826535118725614378946618966464012716266509686357770928948822638023107062045925185911246669302593316461292571914304382228510078902249244451588575759102836896444009025228911083454190969046233461802383445813122383330672472511318656916759976892248945773969042488950842585895880300919269986780457234783478466184481638405485045747817583994186425758272184696384880002326316403825875602177300653715865003201809662191137536294439925993961676928037849211885793052465901865347820432183398840861597123628754519490076937301140991597723987732656663498563118434426321263890441233201657378711690225661387016684128407993972364473870805479072400456680012456667198291639003923838639254331071927425658481199018077747706176931152544768644721974830048970550864037895911729173059544133930781719286183868759231932012845172189340058741044721450805175384801588840715679231467622826610752569191319729512016405733783812444233104329575536625192082895540914491187604442292716925664921790753843588743434494600129222292279076521213206324936899345373392384933056396738885472983159848234296889157078508064706883612309661645975033980558669011883180577032408730689112181935387225626773177753030044887399731499499341427638729219387966004150623676692643825987761579136622833649203034468636638883417472227268973482596831380510002522265936580061957274790381643627756585199452466347184632071554925404340774010144812221643681302329372134240824705690199015497508933286402737288836022526315907362161152373435973412590118790287928465535711082211699138472291082868903268048660666224697511956203357556939649999740030634864655025679021569626690814046351467007292398483271780277535003304936682583597106269148120809579051857689515494705942449654814261391011321453013888112746792096596550267081105363413880136636061234340666351622989738326362584989140495685694365200434155821636110296485546307071114817968411664898534385237722180068695833424187626650617115037336860503710207083612276886043334201117182306520726007267555600808572301564995751306652973636454345843550644328452742107561419613033741173056215946337523306394997436349949211738986537203573666997912531170118270241507699353752378434412481052809451880091779618081225268221416374194534281793245433218065179406956443625708308741903326141046780088886864493009331528750197450145394177748138222969452053553619872198336694779506329036710077004267701250274140031154063230925928527881654940483749525535475014422809232598985006585136580119180387121546512666079339250565721777203200761756737656107644537661730368871332749685097677847735890500538907727629616112982948977468089097717563883802028718015348133123485492008542253314522270574826418301789401913575956725611533407400838406035518731511645690072989962547629862858426254379686631285264681930397016255542758295188915198331707452857074896996805935621343225116120322968708233215406033014907852995998184459212260708986483137288788430660764723175794239653798854297584812661122852494551158263514466794277316109349997605608111774535986693106964848489259324074248234547090391079247313586137299036752906731803824357881502148869629078838783510699941150890770094264535848472526654298486427918092474502135291766939611240384757455374447634017166725391412855433089926335657351309579774412567865258814538778721338190936597346445881903689687292892317274542974830957072213505799049121519865886930522323367746438867236730037012763035294366920537074603333679653072511361457449343872450266977597770070349741176129580006822742249602411484190558836974715733964947419474648951402060124303169318665447846084984151051416771137576168696364127107178533902106265296419651976656511470963849843219057115141012120813747831372827416953716594225795593624312687493083354615496373314683947193014545095804689488545982341085988701873196765215981151796026736485474071057846693092356740671425387119869161862743416766829356475299795982883182338839047168604196437753741525262471171837771389877406974091744494086490826414188131299659563188038761458558450390920187532585440129159589970419292792572500639173618655187601684959642212150592372610050802591633145965766769060720273634289248381689621657706062476466429600523909315519538220237657989149552169249915417783674143271964674021255071934669287384862353232531207846348235797847787386144084705474650529098212680801381402950662720058876014612600715029621277391670180582786512336240140035458809506735756347351407700631897272748174476763634570005361359796344429253238372011904044724997298792566021744751077077104441544344656893045663145178134920969583399051526993766453998779259243110526635944165682333353270276106770731421546943280232743929520021781869661327124062133974257641733916173946306045060457753156865689091031539593169271178251871030503092303167404538023044175025951502311901049137038128141306658175559842568143876015938778672070373429098020870863326713378822188440319109413362014701869549667506484145471648414035222916025006471484877035456955101543579589432048598372890287828363339384875958020185074772315818979527802540223099085105565263724837727909551489254441794399444227586902411589848313434609244786458261160702257997671785530480860731787650018937962932128761908067363987322192931889464339710769250642033264866848353858994387897984127282992297998993680912571320151445835210772049624541493963915234026716533295957378073995631967238430839577887482928865623578524231213554219006437667841901756926915397437616526459035483327722576221338087020482704982541041651359496190034062168057060090950968506829782312119001585238719179448309487863889269369432890979596626510368395087228568496101148323778921408971574590596350835905924196731057996003115665845654411111642608014512019374875650855639072111068799789576106398500941929761274091167593244174832986053320086197950703197484933739579190672577223280138823711138032344068506077697554099658960352943130191115272403341057140581833453214946165836444093769770298693086262682868356321092764866589118155769822341162251282917842731106505137905975606324152124420909613326636801628676952818490142420552543122100681956768414003691794489106096232766381360989687439813094612572135604891306034331590921388576321939603602605461263392711930414205195697875292985579448816973572461152759305716447537497350991989825869487515006390722886982457511650400025822800035813252970234281307090739184157355703509016102319785122314164112310987519654536503365440113889452749359715001372228163241825473988749901410352879184433980230271685591941910265689094062579709862745770405972963465908194439893792441746760446347796891880483673669321589773309278378962448390969585119404943493337868719152553570839567486397763377032774660669935189965455688877250347520070667150783650932102612267280015459737974590227463901444698674071241779856902810804679122795343049154540415112234996373164348505166445801588956567295254469196835166938110995129820373892519916628463131767710206893098995491323434209293240349867524859813471328487466735679476875508251065676164997704652621596597755432161250422108771173053984907190350112632976325172025421029070164649599712451285635287793118869922920550505520976032754033402956370005453424460505144941907239034400525100071738971780692752803000615592481409889179263369880737080687254590630686751586757942747653887104338475804325183119884735181156865475738755213766529342603981013997046615793142222994168085874141163259345356540799099152474148586573725546314556143289517610810101665697963471683253290358271625964110062901873238015127723666449349435832475992190493247365263718822130586495513768500701657737696050126741852342107355960228393777655042266441212251389109672642972609586325118238788964695438099143850210765804490558792107672554332258398578951798441077520310955116076040682584642259372676852630788508285930334334710359052013095850384008428489129718729099375626901326123924139695349649638119665579154704602070725583546264960668195686744808196017839546004700167573151622080896451432345783750454167813074526151091790905652856218397751907510570060323906511851146392572272848901190976728969422463811862932791491524376001966232699910921031838923456061490146101307846001494532774837621115055862982908682516809033404908023809476792108616571371621450452742620117350301390823211260917512737408956627209731955689678294590123602817790347074708322822988495911943368723368987036565413190219799873957371071363464391199895127505641657500387913364391446961343627798471663247809160796256654674459475571129056873283563679883185270440045582636187622404510874540744705926937016511836454422628451762055391956966091082898132184383186280704723181493791090639830266770321853126649607043442167909924885920842468704057813385308605469322318145899657093443126382430767938802090101793965503252136820218050702291835727248520582681297596167139391308448353043112381115001831411050193149488506367492625199228930605760846586333432073401465838161225023158234365642210899151802400295163094110000372345882300904275393888724784508617186014058754503251515709025514543735238600825455180115073305667309771707189058864146560674999939295567392715231140878333373626729723275785665781400875639705167098277946832613852642901406157689967628571085045078585116621026107884297476362101214602588540669711315450712203957711033887437488794186609644830887227566415682382808325302451990335126711931157239794798309020566692346108070693197903629431273092832864148096528967037495839636082705177520697590259990069074289341017549316921528748437635975571325673875864990195432276409999192163546160013611289931442217601647856956196379139836329232769903048299407569819151329311939829917828173432373866154842799345385522781162889576742630696742717131041682819239870325251842450846586885824412459086696430316897596946925346109447376661717447912109782326699280375792863900349703593071485356582328576264443083629195650195068367592485383115668532026817631268893779227106160816054417785202219992116850692449698922954655620785425954970370226974622409207856054710944048228917025121505699225250497581481283037332433701694209717133021551366373203294162590950018445188451800797247188993225911880076924565662012585402974710905711484041592596972014127235862236769717758407714479772270602979160870875393829826870688836616831401783515527794604910772151409514050022643130458990335531766460333854463021588155566672944693406616498044325183702710113588996120293841180639767511050626593508214744248911309238229721829284736855460902659409284602953830524003439304048850137703467640839247403960316388691422724405172278547515649406130557268709812105098091367036050890820319169665836569653879763281431257989995641848809413878086520835661360921138368700456819133187472692362632062385637283754392382143750494677119754192321974630650527686455905671565857978892944538153037613028853495681553683027607393758198742113531953573241104135227719353971810556027770241356578761414798931436042877265452193228561791735899788178164865482468058278758492386525819689525002072412362109596323622879170243568656554638515166519685008740560559033254268649664108191407287578275020849339140916351807901189921257103480889477200831918479187217099013314689730721578378673691082992537571200046647374211760618692873521942345753957656769708838560079773597971052090500300002018170665004813560886301647794073464228993392029659264161701542856964141703953447530949202393610150391336714387116653918506676661230102547626508363446728607921953647320901005346260360004640799616052245000565011229592498298920832626546306396298758883472457017630393241362677159617834172498588913781453839441980131313201290504271218962050652299452147394318817897649981585596345382119701397410459450376384958712857272629269837087221467541041292711267961972281490520157235149858812962981517178648617754699506539753703042115582819308912556829428812089310391228257101252921574318944790408281797382772070196058425820086650167445201197725749041785835489322399229306943226654599500145038964675305393612776762562222107536409447641476571937984614988115774876059063246584366292046302897862213291069982060239591991140615337334644024561373566589544426547515011798993713680130407932811773761783703885904435123042741420989947453122595476053124842901384065419851325624639449768436603119035556484490027007417103023455791306417010626269304530644138592377939823181725408905202016443536566331026712563111796448148859779550047027595618006516912996793177548387752925633217711388330797655455642970456437021785889841186099278039576326222200260586994656501960906459570470663514024051373423290411703682693034962636702507091005030148029272382720448939030311621012200718114780921545753918615649397469244894757966604111475089824885382651474853361743643893643858120220697190844794595874426508541583488397695600229370704800104648164250539251322512216305820298232594368319577342532490909055405217254869598196390028462040182883431981495219393557161634020704736204064805268653327232668644500737421933047115946659133305710950110189262245840948656219804655593945179835395042302822779288045757516934275255133312289551364600159581772434559037515126015103552853839342032745390990706732829332928421074639947953588528686513048125615206202817663219896639069906881709053842400315869252376445317603002907814501449064918728327122819719103352463360359213103226148828148181303543643398097892347741993567290196442658351740849776647653015940600353039285630353802224491351552591787161075797437078209202656715471153571267672826515795605772466724339883724738249788334049677255318363284038290696080299090411834230115017746604377964237806555784330943666080650521560900650491508546945623098495321762312169130352959275636598951473034706654625481027836024340581826514824232286005827418915415719855888830540319440373627342309634040672769653313886936106632927888940731720871700410775992572200768953683301246360309965581209948535308771746578658936851828824801268384210966658561788865923681396862280670795599819004439206943304090081586008778630724945563104204613150931665576915581489997045203197829594758691896841740328818482969439899416308595946597871530382726162476773786633964751455782811171398432045542961813097509739285888684583199317337795614520799294676049954803964445068627206081668536226670970566624533747909779583772805959582228485137917348208556067911168075569636368169315086017994196011486649576271267171128921637099299068763146127908135621468944869874519241177805841159295780021602522636041904079545755940183050692043448540494561260451765731540559908680757941578099727858486968705584774136181544166139327229074011052739005313230454547833927673456244231492493126057541133335638696938855631993378103984313205980075401302098790019348948984834132003979071020955921588328953465565216369123004032731330986088446663520957491223992848929363852981583852828446903945538826756391905499491640942370158212459159534144251545536543776974658603192317860791053332532643911502537429892246211416115778753546716541086648189344502638712792645519243957276822190797806409916838170150244301192020211125957695137497044484991644091518868520134691803036858161989916478523160400991254493874661056615436306413022762697891105618940428600179275618986785988647801376816251685446631482631695838364814523333401425164582295158837983903121312001725267880652832724550993985763668109543937845162939607496833385122459665117724531081415915404152412881662912026194596399728123578538838883062657026392027490139759528733208853597854785689975509343252204340328873035559346700354691136676089201454639575279776206864436663908261319206134096548987819972279939000984325745095816447086216796357867309299506402105449341011431860981421300842053542139721287394709709703851410145203864702949190735132241850689764745725339731823944438422258046302516734793292735318680136265636070208161075057690329469481821717188147485182282510123229427798881402032985564322454408462308993290891579025942081510374431498434061459941368775208591304584350498748024976250419933804337220896290242741848142245040295936920115741275272597878445708190675687988877543284859898837767880605216196355407500245894076286834034182129509194801048796036457127957168095582603117985883560865226822225467458843537802570359539907949989817477127353563669744848887316700020143093864575842731962329873143017839700672293191495025609134402689728456484469260177956160339354966185190379301612037811521593807537513606451519217548249129917746648893337240534536308379776001426416421186480535808431350743649036185332114183694661082421949025959211834573124296430679737769619261665060422279825658808114984143922244281247331453928614070189847008815296224191784491183985204839423161291840922209834138302328025239676810457614857407769806881273188075748867257092094215819702067387394470941283442295358749858740334515090712879147022761981300171833872412509646764227219655856231755856640091338065462481265296692492142812365118600540815145155190240495321851887582709776525841227997742725192035480903377015192580433617290020174189144164062597097312643036679390066234289468412199279834945364745216907377166852403597584262925248502184862237376548128509286605008137776683553325708233194747250803316683237870238444317277394700568994984708118759015085411166986863567267574369571275888759251146826723758284818933100186243497201413577276876316262702522933102712153180410701994017201980027019942818160625212183878004061579171210590051587856183110293423248286588825492441381335334669542423330691368836611528604493053438307744393161927706468500396907203124760976016128154728289955435508297469590876916312882394808564993479013853221827188172464577661969884811245990649405380208937429981578012201193651229552901815344400422392009139582045342200048267205544648695486011139491924036273191042892762935749854882570289347684281778004405572625605031648342066082904612520967991010333797713532833743564337373008832759183929615065941655998661498022101599621597109336949154928760822790354114080183020705120580875565212395879254099011942436675841062381729756760248679708801282021388480860428404057598119449338020240212811201594238815989159977065954561924838242484674409777181341508896826181481122234489580264366512535125497443481268568446987176974958396034151448305263240445394133148485920679533868436948994104657651819670782373235588149500570006398510287887501120440211354699890394168811389768044731907947855196233927175531033828710777004759623591044583892753053726480810260341764688300145763112418591986613034065260773456077207946104802062152319166579911068022756462870823017100628723162761361338624506000813465037930223583670722638125063805601567673390648572558875682415897261176375756844562433005951781083546642842298926798470873326844577813365987963906729900159188837586443228162606577909977835561127951656723440762635968563843219288160954991958690578245137059852216134720111697161821070808361122672408059718668194723990575062365531671389237963679304522363065882198085512390826806644148897604936306240930742683370266446935814862016318468484597177795215165715323222368926540747534405024497591032875509978406855390018101568409683106975677210622189309576531807949984090699569390551398513554191237268904465416606030407125391363856296957048342001669483157819423840696857243311349134987675424753974491718398057708677768223167790518410934019678388838123950164562578891023983165169364378194674653870671747938652782479415223313598668151533219101292422713312008604897672710231754654895606560824309955824245646350746083571061247152123604298820440011987757730825964082705708093634876469305407577092165603958594363485588719520338133269827634467837384821412612450026941242036449224052881102127298700679027625525070804606848446055351349906950903611284421786636510344874407902856074516224313980370877099118647851553499259939959067158773562947356872146897853956140626676704391792610998080683682121912266258381815483426618244598700997350225214356671847258095032950417437960052106007360441813380657757707122319193622223981686313907470788124372717630611651442391751502137429938878492417151044666811096206716040772459744074859723439906081977052751029056177845481230811410820518064558578355326790739708007078877740053447068872624618883155600124785874967868166760549264634740328915161634996667812318911894551506674538687112544853309993297392647788067497944617828579250797443140622832196997684187706302612177570929818809093579795838710461158235005333958426442615917917702913414019358498860539769812238856312635170773214411100722702542751190116423484738740274034088951984140858662548519200056909736204104236502424378329175970577940145775614326723939539158400822614747426473592833456731813653120392987059526880348128543530489852562657204835776836751625336992783240194010356062257488701964323100356987841625064218115194246559386634710329244649025308429500650501397855782372989909306177460981166960499240727885017812334027401083108405325561140858564564141776675713627563304476081912527222997644009194510541577569431841435328954853102257750293294681658982804341073795965669001829658389793710067854585618475045566810191011875821066093935397302955700136533581232265734052663133494299064852843042445763203641795495052120263449187125807895638085340622081190107987705572710162047853225080373033695848992013249655130998236565723388703365460988504387263016642702369234103910560038930307246153012381995225699845350725100660614335132080679329508886677065538105571452283278160113356122383409138939248517913195037404759204155691662282049136391415385913550394126736236103054846523493067479507001438968615561093677614266578181565743575874774919363878230424629968388181673413365061838173503057890695127595915047274986421249966682905077976932731026961558646354298494876922582285860593318600066394280848243117201866325005722287848817634784086608242484288972122394267302106174279690097629620728760105848858038303853794188902172338188063095682572475771623478888146730799392606679507030980182907919962272098609628034154436363960583101097237332890698758666435317501403641763495772210022605019796726328810183828892663136399452306527598604613480259518485900652918907340126798655719207237159407921055559499602808820033513661124860483302749093031851455398182610337586571085622966681099515247071015675330218963135792889716201446876006732823561809586259522644943647436131820945838402461465934579721845495276789012144498964838428538673970397671838213229432915230967540638908712434995000334497751021255713271338843344240177661108860132314398663488362171019544862929369377347756507272225539174379053123823847197565108328049804899150287189022872832455962016421860978395328213561697378701732803940885464703137597725285528385537276130449007448862136029398508291422629656153295826066816260897307091419874256757044799022719122313053890173070268335629447889475135314010744576487221661964624669786096266968978999039627189219455035372212995975223683326343627689149818378237747149683526892362935208510189894005906127165000323694577365207930422342910654725232212289207129374838590779810794055817388674038696210104992660499863412754628668868676539908686260201488305911062937490392891729592262563745667095147213287809980423943467743759244941060695799051472752035604290763043487392675070461481368767540485555440462513017095375695350901976642681586370431725908311285274032741919163162860880831342615392473978581680042945385288562831582833081665007437205648824158085424002619275873463084979348113706148145492422022489304452717491556582959220885122425601964712758517208822776684868564931211743391340858167828078303017165502967143775721170864002320130708513098651988936185061954940978648059546387063877658355768388384451600421665613256424840125745045408788678106029774501583867030729201719541178149347466019792248723998119942722082278177174107906150334143677035530422328480687537149093813066260269707753616353077114939928787883966151063179043464447102902896918625143588633771717859284147879682968160474550915405715198804099327274735300448809107256578161240406907051467290649182643635783533035012448062256869283356482083790860208768123905882725712864730145087329662045326446055681221441926729968562627730599096606968829663891435446582428945440532563216661616466897877114578374542728346708377430180082495558813217005859903208090353493375900403836115884471367306002322754845786847462573229606019228366096869004479102062196159378611838266660823655156362756771620318801317252862733849936300261539212827353881152565553561527771630675251956611883056361927840368639620439932992261609660107155340480944682911666922899703872648976008831979627996923500192280536186132839443394824631082321335552191655088788897225656353954218082596260225453784930791507957649795928677889637190131940444773577503155453318649368197710958540874976753377274000693051308347445512340480630768968031345575909545903483720885391544471011224536957638827941344784243863287502588232047334192536782917690987376984149067579543975293210148114940797461255813501810181604405336397263766832153060037931634704185248928539844895137821014660808116149782747703436457375454633689624485197886036532615118323869613082908383864263921550548607602741856176064118357418561664961769029245582400270835525101513517840597557893518967972546883482560469764594317026411343852564062910356527833116822075838513615149561483877601215021160578573965190525506125265300792914834494345914687497357337740647581255428410511300375912989638972305103750041367274192501670130393296328627106558280912162285974299122756657390460598990757960716833425369601882610432215359097611241881958571871459665534623818335780383718851207865011295176814057647319824220351540301442824424716697005878274354625487351854680006140518774025005327349321711869208594251007517525112155995769959385688654706160889859205361836900381777907391911090163754549718750213661232934013334528293790679903737157169545883892578019976103747809575506386598237670553671471597523117637995626713843911223568418874428829925647543386929721520289050817651939050741220518764966818935330816877282755089008791147983518348896040928177055463956437513683131621494273871311154636683947211493878831183413388448435528066020099570186650344410800413810558686300430112343350481766849987738265830697779861050195707681736280893924245507036197928105110581351635699685975952515126435848589540865406996777179176520897262405619228157567150942262350675103833955797031258360829272948694210649264073986930420343802409626009608997474400270079193931185415992545582743525068015150766235275532127690490763835613403438658493475045957085965126324287506593603339528027738208985340209137047965371639818031728681575074888886499628691671681844920307879432941557010538979802631448687324526537322938792686738785822204334205304475155199725653454324863864929693531526075767891456441902595609901231224491399893964906891474871900809762365994471897019794033700945934391246325031857258377163786881182511656085808963891945791613102854484875058941035180244162548741459690589608893176173312533186430225588697041496804898375063386004548102753363921576337427894845381136414210583848307473500241909180996861790715159980218263051017534780536064631079323695467420593061098258648888688860047280468991989190991575804066053345503431481391800922358115652507163286991823308777129620979885190329365775591648528705301569913550082608370072799001312524650049492064674919030625201272076537709902818786742483814762293244209589466747108491939897454786716336481340414853532518518589949305048573835066793177948357716941944098876399198205892212554858110206924387188444022646785371028415247630269906065721850504525081789970442413499627883571931329510842385956437679242147655520440677278345651792245880150025164635526167230701025391674923017382436952395878456260752115719352797150830304886922125396722162485301949821826767576621920959061940521157041752769768764383568439326538173286752571844769458554449019883830273998154647851333578387872928756555003939733609682396077629460028018588439271928732898662561113850229623869933726996883640548233407389720103073361049826144810017331540074741589942728356888196442588801590201984158187498557705583873692636748230041365582023172609073165189930778513138990904210031634966390113316492501042467310514484514578122160648038295700763075902758141110211374677787059946796958956554431311923785357300297667006965332895920622724404698005471326626860719330074660755194359581576251302835383140847341433487593975328990533797251228100873872424766877233121254973105891403712049930535942685113083436892263986345958153879242141852912037352350396669961532672267374042410352737307409692982152958985471555917599977173687796242466366410848348918090450767659606173031771905126171609320260218002186797069269088934166947067897678383011597487622571577933238007324676179419129173109137860076710914290168319929316074087995825383064431122950913218101602515477896227384503252440330492320905515557001571252966784926053265499448580914906922672730158240732741049354611050894292248466623459831076121299675539451643650677097334063248919416755516041533341925764150661367298268277445734359121476539986415283258970528413876722071758615465187768059911934509989599877891440048889289897650197099193190679709117721717272535098544040226578351510850960045886509787190106280309913945489204758009523709786451061480778113837805716280338412022628099440732822899253497169010522495379396805372132650025959869569841098896603162496733312859526890895233547577397433738932685866772040611832135382623812717716796400607802613669599276719505616198463495879566255891135455508457694021824307171092089209057418548471094484581585409862901656398503907926220739144632813861144859757595186764213009112470425565963791874780183022869033885359048208630192222438750552913915715435364847773002309599115870017356657044612972998458659024600278596587787678211142891340702953355784224538865867725418797090489899709237007277718308820050604323225415583158726335074425428840468985177882359073742301001958945092674623340191929887769278848769533525060337783865100198991682346213186965479306286312722786145865487333443306034741987463845061392116317906738577011233614457929619173115128509371749611349530451195152743408220398835508300654861254501301961231654816782280095099132566162363133052074900138132036777161285093453339011693016417762474803437773549000807672023984483320989420360941103746556355771106680375690159724895515953150604300523421047338138088880781809336722281465777866921124351342721215021197185199864812742406776415641107999291176440700816699971799696648821601135906398976998880440501678853515699087330537150254485287418949456623217177792191964200897546037832999983447782474903650860211592687994010348794765596376254266292764133279697792678121109868912300296754628668598590137999414514157084509661615961307243354484449045194708183711338324991603316136497854713913493284824636670500851499932808835623644466745467141072144996563241097047518363607560930128009442340569949080021806735768203101613048232513635943587822517437779722681776446093534128205025677009864205881549817965081537658305644787873640684137615410650142352583936367479422848280364095148510471889262108341475635397465111737950354294025728515334092843369298026415533230977510543260227392174015316908422347851232712156019534872104003575979146377683222186977910532027681476419256171359208373816753216546542513462250720473425665400623936478739299917866459022060703782308432248470375706288063619356240305384666543828898238902631135193495150144354106620618186848755476421146103188912255175904900823874957668610804948593809151245239508508821552232097651842353214309153007355597516659821479887418212689883023837633929245973307783296962447467419434599368360209671481995543414366728758352579810474359953618197972945178369869263167150009493426968922272421310667277071181056824947789647740637190324065601244457482988336047134601250631467865929433476692347309022154831670573296016240249392042499219497112509410650013750362648157721281590542858752480896169270941495305459415442329013054416214465954548344226699806513211492759817121321663183060843764223895541145383686971444874870775770759651447143177956557633934689791613231358541716204972271500764646697561130467106640298180560164311199453208344080085470358631567560409895035716514654900521779356045060974005131674888926329674926724990757127784100157224169740689033673055050956568895349766024074862548793985280953701311709972446190650895552506875825990622404866870001225260950046182398759940532644799391565351316798711850252217487399879376220048012141385390598735330854347123064786863231066423560592948276754874784580977248145535973075126473638601085932926488381337233616692299429915558881435903504240475461441942360048549736899814125076297415652852869578034351597518361207710681416376844890100636073332326270089530812165289349858654248948460266959303784535243924305013356939252491882003107840587259843728277992334197100920279055083196199883835256826152848794340233589740269271810131712178350160641034370217193293713168805986655431496443239556362035235289045007052058348946362057219848535875475334859193210723039639441364791657700344599512012917751227640862485874137198892599169433499803665995117582190643654109226631497957567163499825769892364258764643002816154038985053261792583915009600485100491329780078330786008974555589289220104709231295937906128781837465851411016572695159282252714302614602979834170689514111486699629236832205003345428307021263910386929606279618030828127415091357135137500950133108640563644316048852854536838483401769842602776893479723265693497411854388227436662937364336764154899543517815572865960866417293209960620953342036181406050273786681050026245297628308236361057337767712509991136484008911558897621404458071489157575323926172876679455608802746953072264841114234810809510835027838765024633370535156017983611715891780800760245804284377529933173984814313576750772943129010142903874276585815035244563642261881654951985072452602212038746638838926255317296817377010354997045188143739534714083025095575872906332932358906690510190080870359930168425413179556888577196368575733573586608514202734967110388214010116228480647830108494790592284034883427678155743462774156557673087981906949187754693923552526799120257107359095420037426632890318393258540440979517430839182369830018147853640702922126470158605297662935580542328693353386038177799220962894039087224587854511207700859107689542294407674107746208697799082281062902202835726374637095425293974652874577182461298873896042433984288921976968240281668243060082122083380030800950737089673282183844716010085972883677217983029221797989923546407081879705412353658558998626734942064364480186292388252349913146181573444958626881398237111593907363068258402541430117967580096201990942536248020133443752819421763377546929706090002009755222943531175700267316743409994921563437636007223603492964070017401959104602658113516415943519757308987382160212573810581406022530059062229547756848414230722997363280622340151841797281194695736039490761903447945789235507211564979397396383238810943770824185147480644157952056367520751914893930175422749270082331634164825679097192118197552674285936640515921472989550515228524680287486690838518065567838163362396802352247808928715369444160345239025893140167868499921015118753919866843865893133544846045545181575039723814603154014305619154825236258159675245049442963919441845725558541040389726056442357439954572260554013007590658062959378322258107885548567846314566430842372564635686752541422720290922069917065587358130689970946994167051989157276023681170229725299924517720765141266645830638152745598062817782614774345132617917945887665437598177140029134111699745579016912085760061492584835944955823176343674507425750284372775075036315258098045342793671852452197556840849296189275790560256784168550201477967897699919711632067223725925265303517816494337941880248247950254503655213941974664494779374298762297333866718928744877102221733186349905304343133092681120127242665496261257427971924931670112188150507260550583747680448023284877304093463796747203072784700779380466884299287724433049403259434383832130599798801576325261274864635199583438320168425836788280157061730035217683020743611535513019623860942486488227653064214036701737682660044719055512374413945672515756430255565117249055907896860915792534106405387778288371907454766191450626063422665520213642237274244276033974989927005162113838884561646332370167389157501901980066127247141084486581350681793999635627018927004250332005560988349486323488555605490968245989259102295685585314650603547632541106988865372898853281190410717972870782975495253208677686812622839727475443347014627661969637500641528118461618719944774283287898376186388269669816884474951317859560911587822122423505481555576646617884016939083527951883097226828129034125224713484131082847052318347506952850157117839069990043240136906025367153749401395646576051004715291662496581441449446203637169912424278518182547246793333964950415960252589046208443764790642161889900268829150670941578690073298001228576115479236501655710333323590995841631698828980940443721820204841136498230368864655567041860921910555373189275415717286554097605768974264805308879587261513676452993454460820337106289462211092585841497191664076113411303323148375200038629571429722290659676601894573888940974703639057883945410753847237524080432297940440921022577865335328269596176650672030021804492238228229917312624756270182434109474063988920659389491548023769066630517989025112237900098480478132811002534129100245131638337871489917190023530652317825588997995471877269924376310424445798386053325965476833694066676506912412621047430881747684952466600962918676700032661708239285419116175735168626941950929674701079731627661241956910424780231385495109108499730159692063779709045995348765033936402062961549565065075900141368512074001285404457353617547118416397878323501700229059355115997315905110704190892775849333932833414219578838738359119149842386097574707183271080430235653249697589134675822459743378399788287094268233356930468154785344048577637204458199015690840827815788471587544040586761148162416058882425439403933182736624988951727843366423193576291238364356853458076657869596732352523526782860159116063012806239480897161781257094292561297314107728896802022134171173240815611487455326916630246519617916809645262717646512469808251201554469904931363854288652595776511452626502247585255949858855394379634121408366204862263562577236986281224063170168121796139858592237098149415261614107057989265390001594283343019121490948994588913331217201860000840493601786618016071297030823054648558875987018961312873329996842724278048717852680287824942025049933694743461499694196848787228627806729247487741580920680126469856522764471725076723442751798690197630389023750469885521431151151200970631787784825098139153351518221355301949083492764969150649006740153194935886586884712220151201927704800970428048202524921722848327466295532748807706987007316807313248493555534830574414019983517097802583741595758698983088668587580409985179386162530702281064462369986923681224721188785918108948586201776681431873276139099001690433904259385565319165659709004440509161030700913448803721026100562271795032398265133128013687058859638619830050277251850579226844204982073553978107420766153575944612383566489802790178212094786039734741869654129577859755710314087648471349456145767782043504524354904463315088489005203853273526772251846350356236206072781791527183691376039599772609322273435316694642035934092740539966799500360454504470518395006924309393219386438511641600940837122960820220303762078256392818425520974407436702838770307296283848719543542610188103354319206676287115742538675130425264302488309887186195195969880266373923814784949431557637755900041184344937961572540398472310154838725974556219642160023772637150158514498923695315926587274572940137874613847611816195959463847501864081880670370617164592719183089603326694892363088934687389151868553681064899095290190563053520570926967852269293660529864368392830982703782067765839743451924942176256784943965205527182709862703650604023083636709375580575697027991480913876148263455137976030883780035039862445181635713739626915340392598999890135850612482818547116943357679928567141178777717310987639271327164167503755111034624043358619317949620115490213780244635767583067485611137161886656113242652385047582600878309910814027449730163459746384351232065131762715672013743264121968960916437352404788352309834280824259925872876199033688978568769508272065516960615364579422201720620298636830383317496772519459042525390634204446648383921070724450737525115219017161166059206499298962245061597052834310872986121892401526834664507789736716519275820358586380755584512521145200999635532011140279212872902504916374992367075313694905243387034454320520965853609183638258568364779649787013874944278332545871355641257117191344885740644597469654976773104272279759453863383460704921213014403734125370830956145080543175648458393805372562472368169130804980096133820096962654299620895349466139671895279016214095437832334575307657334795955927688451399423937898620479681790807192627986827408080849080918066877685530832664854806937120572515747556990667924240113440698785975344869661988369436692707545781034898622310769069521030559173009555581336617850226020270025503646288180494347795499125400367903456237576293986170886243523907414584348291517019958640749505716178346267983747458351270741841353047945372817396512462641385286596954054854509703972136945686497652660513144193568813010952116823698412505537657824223993893937206432466864973279299976439725958853736420082732375132641238369429821330470301058862441099481988248215982176745802583609924547506350702668919467896206725699818307265083953352047079850063240285937420235270406802472642939099346073979731745489456496205936399463389296119961723768449045478606203620988684110462766072267374864306053728265582328443816071065686633367612682245248908698793642905970965770596749761252288623037717236830683370151340022078126194565915320634402597070629308962438454783355818105301316442786500712314006304118260359642664851824909716737634457174165464326483951963316914981906377707996857621665656284420202101693341242939202093879835954971781710975316104617997948592625225546255164873144178898603467143728221605642271455349348029299622463225755960295721002737860285595120775869245330137683903244946207971805127182970853565405919217754731937238008850744471578894350969085975195039231378491679766443850959183324584937349408427064825045764191677591084487915551182230031249982860713548105700675429169002985873976158885209682266527248685150891621022091960653216246559517778058175520022973441330565968200155684619449715712235448853824686623028364704410388855184056838978902561084644029071869621443266617418816963493256966654230226667198689796745997326216158241769900714067937378236947497966969189689498581224916077382111612022416186202103410197984348993027327349735373766370138672036803929745506783238496928515289446354264898212166234071573056307557747174849725730984414814847500573874425757570704176834128573830063881907163100708814836621283677420732821196026272550497197874446508435482343821148341279869449746626993127551464536500714977843194709353223201699639742453715205797103460733348661937348944807584044854388202211722799754380192720966783969839058741801020529343886754299049667612694280180929985905908052163499680514136050503042171104231625413937615219150844597994146291150376895972828518042308194894889675164099685686095006339933361490989151203896631112953439539149017669000595189598497449198779167048065924885243136714895345292645117482159156095088438341506546161405615240806432695257279789242213690359594147070803903285538440036139273079877498236389229098867794999212211362656369087700504702784294028634218366088152650982462051642331179921778160030280511084848000051856321315113155244694054576828416128806568142095861157680551038602648139440873189441903600999690230457402854940350484924728418475279051267719695822210245808916630399197822926278394784776441453841517748904357241562377478571105164776290297196094858621086075459271346381981253942824414330153130554269692785305384023198082794615170288369353960920829498537147766587630311917696880339451893860090776081466290755656064902576737703705672180461522172241721389870990899460857881641679601325991792156324554251399862039719223770118962263760917441925624662873161802579177860093624429920286525617661752020888589180107286019400391848989665631426423521142334079388998026727477595571027215794070129364801295604524810657513855738277773799207968503574498153719819919791804344687344760018907195152080281979818416353342999420993803361506878511157989266816111587890032491433740188477144185772506243936838490027631717802404559909048061465035085301215473907034135006434719489310703720094345142443102715417739697300668343717187661679453037859441725649225768508467394106942554700614281335401382933493860515351700431764720223555920352763472796928382483151441898976681974943387927913018542396504061112303009631546909287525889914406383931136888859191509707610003954227162998713013406838066149618169055785332341249385006665056293795043217320764253502969980745029452567811849888778746522050053803719682181026460843724156962647618704400341741928162761968720051359613528721547300262526438899540857575119976159644473240950228176784073185110712219367550069042556423847604137395601403652597200306885231823968240397314047121480950719320032765610191960060482992552745322678564784651264503711560306233895712616103701429003041464002395062784507986074422830757446350382243457153125428558868906831753251630278880418233864964520318606331772929470355281675281815758366119986192214968013810933105064603161665561061066132493200122306418118252147047873120024222420797883491958640867036472701925857790818711991353147867465594275426038027651352082190156418284772761509553523612119648413791996491002926976515334255497487041683063154224596906653566769095320259759025822254193612789248103843933979352606190570837303546964852507319739507501298414210179701153151102694036722949133087985191724650309851136614763742590500302755631989255056005102894239038052702191422381517053255953359734166475137149485933284352922168899089754798946893267189808990821762153069669813294438146345301935046032197496597409468767451455293881488147658971453886432121227283341084062930660720186749581448003825651007081739075577941690028503742308367106320070809483546756649946068271872056860526747088470261182423078660133988671970779229399090905415975301774592775098615624667700193816297824656836232693938401684670808556080089574501633322919675479692738905205186444633522182328308478099766810784678011167944225666463850462281819207412225664026112859460204896819146559623951075569276401431106936325449001699381699094517436416229152484037085936630714392103581733470050496730529605015311285595627641656969881092668983371743267028506614375833192525208345768919142598847078736280439127915499285193772048876628125570255070410354411123536589527097219219011204731511000294987485809712599702835713081610271944677729773700359710053766799168997320792047813051154749306199458752758968603838627649008150822890811436084277307431952096067880058804183486803400484684839473461795645770509869913324656726326045461944984257482830209028955834631550543428817124844218644498618518938192350189381581675666206469988493615865385554168958829619316498357793263980796417073686993098573668359169142559858005266311280196065117155174261362703358504249203615782875004214301967769877528727260855886815373628606971888457044699135912514693256808320316943888339645895504352978016328647795828569228050351282769270619914594686120562657137991294581976796471554658612066995102660153000753445492626084378186892164380951097645213505081435773144796521352304555713244824772778368649170263752868744856686269680983475103348045460110068640046712700415612739845210200295194491146664119219105855093423279851515307154404407676951324891748486379133799250084993070771362132674695716398247336127843985229628959860270454911043280475519468404794471063496226884863181958486703007213337708330677376604682789415587711617235324421472076225394466889739847028123487446219043446766409149443922647894467468719244717868416816205203113691596002408071604268044716043906689113118834099531839133588500663047667422217745373039243864109469731625551329262150773658958643388723276104708576663569779092573973957426228758062121853369976146799825303236815664307351129080494016924822016082514787460192950012160836184220724833351812291346583067692303703418706576936447606410860126754975639680598316838109527792114569643016899662049587896252495591198496777926496946083900544685138833980255841748602985353124255908380555668851699672233184099418652299166795595306237592033591770645328242891433254806280956954177768687020571518539574639054718726492136625735502757665638866150846411855226899823273307541648377183029049576962137208212981645621411736214635749614008292023789656702396134409259437715086105174226841497634009966169076880849106660591269991959489628712076702137452937279321435734857405490290233614359925443999145266109396563305828247891565888124896849483029401571084996027877668082869220029909604156758327047190111527763940584923622227759909122400756928729210025160214125756541275930688865105724133366177607523600577228146194102209057725221132274973479453352917009306632974828843746711906682118162757191873068455680606456788281377767297310613018766293442088372156937414885349185960052132870049601360222730842373840697065429496452904452101896261854552845080613054442740926177357256807419258502896048635344936785314754744189505580036985094063480962421941819267249930723144470386802324997829784489374119673493348669061894962889399597201163812138676564075525057295973264066346349720154213474818114261011526033204911947472652690489175345461909933271570215647041192613101954067356257321201543673470116831014975001771416716322823338827221278933427120394338879060429994627819905326220543503767070762234834055602191267302185319913608995714257077569805325795623270755677609641962262220624051446054814961767502606596201911465143319565976416444725221281889103402515650726195746452688295472389062273078750223468231059538117307935197614755463717688752636234069166953847427015978732067731527839628027325059389174785953297894975674522277465375121483827424189905803172158720526442971169730635403920229071628111310299524849201611333619267267453597218683678966497275269700422395125793178843632478919893687598261212795576634539282469071994196907581199418164219639921486249377949301165944459159728112529164688411175347319732844976421623161671819126921202090172463074975991449070261107865203373654844795590556775807592280165106774526442176670711599666308249811195155550911692144597521405135194932222626144692473263021390719911911185524633964247372552834992463064036245089214238085377496238477265779375056900350017138454461043747870977795839760146784638250494994413369213015130282440167377992356207637362904119015009157806568507967366524812355550757183066194270324106613117454039888242177485604639588598317508626830821986075397736660434940800169272732616116741737792300499706584049299804890231483905573005590834931281903082827983143817377935588031680630181701529108004209641127688280521245965773022041023105873912681389360596277716935699073825371698390701983567069417131960621691869942678616808441799284842368069529455871304421647412704388755690054585282422022689318046419527618533590326821409927722365972398270396348352630791147418248704323002735943711538074196264548534829346788499538452766275600183172613707048151077468817796481004657013381341298712027799500659919281388450983173555164333143817491026012353878781465193601270487723491723573797611510981888297904138824577922358654529783498023859818281476119304442220328127326723433546651510634576528332246807481752139479931108140340051092254544901723293679135424305119398548179512621383898386101898491357533307930094530494232222654658680919403718259226610503145114931992440858224761943462854018587924506413194819501698386084010866904337990527988599329706158372045187416479669906428149538936767583527527667368934427744230629050992488295801570941785520384796401271821375391086078532325422052253130848574944641043947930660485276163519333933609357926100036526338924768419306714016069097784558240688536496402328585015126445561606596012448588093195228448211143582397321425842496259484300878715388969288330885893047656882404672983057170631398773704587807565853232128354069167123910447898493788699922933891395033001296900927243536308783140941089256089938142389402306238881312359050186495983740092536462231722710219882525543426033729900455064115954604469036117791846928146638880101335124779772690926022290497270358313621815451284103780390921188892058841826573973129874410547471801318008380503477222857959455548433894686707940752431608475181309040991791843706961552785962125796293186551929511889159009437247661620414383779220946661107593943743639851199965697182778380594334871233073798145039219080911370191333789389048113063604971880303567150059952447984791070131598085640015589773222798643635066135496779127520472916039711719016109253756039908761469150146367507000510021428178229506414332598429106263707954516645967517448721336067384327163165166507245473671674991649069427399948040240683830939762638666008391266530852334389229119588785676985215428552211445017733945775066095746619945957061393022165226412702373617388889492384037449176711119008633378177227847936213722150690299173383533452116144200780863473315449540966791648845683500615412086385503342147427678646128158523274515408071887671349273159602848393146122133362068333152791842005319153510975138911273032301806724415301725117257580738387807527575561226719737254554935235850802751692139660312769504011650039283519991836497845436745589028130265807744131502721696870759942478654092703304017478142918077603071508746259562288410430284491175729095446238369254376812735571315870285923565609036094746079225815282404056241923377140420642110641311954783637225704383086843240096904082131431087586157864295301010162189801492082455986165816421135443536055202026194558859573514352431793975213826647430753473616471717290704423597836000507983799961305317758710360471428983463106436284371041165662027376350540854595696851280209755486070828688053567034721531432753538135148438041044183795589361645124006063718331779447995029624071733966092507754763592878512647711778551678693204809582474037377975625023868503493599319561940576019771564395774124190170287885861676422286581770446661465262105587999508321571902196918442246223959434480278675129533555780300991977019121024497471355658280291710584448769950995152972590336575462674501741579224251475895634566795599885861069970520305760702231694613862255626807320324551011178542895240422446950233563567728019448606023281612042216766993742002056319502884234853544180311268469735056372579523735411869675470933717700771661678674216036642426513133627272823367465960257314762423254192822981729554438287719511257551511361002330556274861806825750468814440113805599955040744481873157926674235648431248942043329613948956365667354474798803726302987709396827507735698430713262454876741382787645786650392037793296931137253477041451594531227223431994919244356674578022358169212191515267743541637614037117391405452700531059027187226307655333661703150713232927330758272798869296436053905786702311928113712566071694861480195106514152210334708867702110738830520750652758801584160316060203236911556130668593327073134762489373794580435130636254119780447214231643360300525986370329291969419243610262376318061025980372971451492647504288365645398364752705792695887393108159864078789926820103900553287071604154674035169792753457091426114295480541700557231660201372751856170555809661820157758567073391306877551609468221504919865982402613637849868416914054245942023350451429421580093399525172161075348660396430427416442676710649016645497401102321003319942855158101867267806426336213689691743618643211331835517258940672772755456844408407232826864064368399693326744507260227578133682752054895369989049311336617896037898574039311353416472420148648909471051812222853222538150184071833627389472582791461362563953629205660320554167375330597700070211937334709059974967537861345354572792066869074643741856029705416795075908809572585918357797069236008311217290927516007012856793458108434248549408885878330670601748364153909493737936573228632275205455225694336708942740483558108097327451429841366504747048253122287122376759701767788235269940650532309137809151204906349405840458472588811263979576370245549738951535998417983902692029859917629914361486457848882525099196923717461707877214261942798898876309044457847792638477483007524978381881990127091887113157208423384802381460498838198310092004313191100314739867899332468153853351809002829472577413694115799203529391201792122826798819053883833245355094275563847382883828519833766968400405829943236756128764874700461842003220951607813116662088859313620316568908323181219909049633630058752066338359635949196876117193337767337775779014614918833223619725785195553346276703461104852577495988495872278626473940623373731780690133575131526871701880112319563765172636856892274878034478499479487619388414892765695745130040877990459668000453854650572369374807919887253060472873573792043201264516608931269754294047200816145356563685880890649884360053380244112432876759193772276292615860381070911395176958665221279510056465839674891545326570466415782482251137928968647918939414793941489681054302978327936181333799019058954116921947564279030507912965188504396610868667200618209236293388679226844002300479539190971542518983090264929583394184026054255712244928077046335010669648850557950259280336627094417924266798255629006900160244045455514071927970575908543518644661439088183102349891888118792885427139038369258719320234942260144549124184972588038285747970389023329221234718606730032122264568036740128790708380558500930080719535810237829126239198478711059468567942066169094373262603343445205700360572334288324571914573589920274794658660630186897650892360957473247740010131023585825356969480286567498778489038167683401526846368507163021858970107219877101227091216126858662690071513463337003288987956863341586804106738066493576375173207065553649674562078949277789932148291890590461430920878815226703994414122606993085907249734673429893888340753527330212179082905904244107581106002868988119116709590906683502055534407950421352582709803516882933174288949761048895412971440109225004560394002563018326186523889880159131519961221061145854084669840162947473881066984270340787620358223171444149717662565348697819860791772012281037638849061646552577708235048445309003862296132108299858671692983697016869467046942860042458841850323624659620793872314851154599151777941520292392687182702051010591393180484749572802805000982665411966194814167603177671831405547780209032296882997974498797555934882794201921905053011083231901407951251731204706100063148769367165436809529119252288845237988201596658833032664813561261780684833133440108091914443189545959827621563556433243100122947092086278324584043413906812754724568975509670425366061483645964422665738025415716846372558125790111594575492334903747885160087883127039507944641224598188752624474187595082906806517940424003824281483877933746214298003613400985613399638406910904986148514700379793293165550717493044051656805518846315990319821007564433377660091377062153327831828913494811607984883626907701814498695263857534351998624661844808804350448699235406866272810230867848581288578333760146922228833307915606600287526934638712360812899647292096491065758888820486443250369100014455166261151671336943575691876581101742372925852696303677641782653558265837328746919042448162633944851052754261217240442540183516213005176526358130041304668977702010142741773342551354536383969927269550440371063320739667680226102852403313548161441744936628836482210743100292499827698107590882190988337287092997789526766792236289088375358185236329046550239937503707029105530821266518730506669464591720026095277874402061405595297359722538781960453000104604389130781547176545738569473793826050290312150170737111573448455391426242996668185687081706454575905734255707499143634736054851551947762823363932020876001038718099302060326296383506455503302707555557396340519142817275375926132082271288728399252672513776602558579817982406314750751131777031532889636295030904016361840481835818694162117522070310160214633581861676324926627906684501599822141234177344172349564935077322287613551494419313222618081733793907163010716555658092045643546877151713481695900919808951754078353849260278696998434903464884004994376301169396290354280710662056633448381668559511017712023917184041735634726205865762940013129070927458122551471681586920767043478796253877744175666815731951789962725591270878077480246619623876829020823166381946090277931470577584473401709568785641116664277264975046120689327618553201676581084870245278324623192167427596224720875250337174365881132792374260682472919319466685783661593007996836275818635340810965747596529924440818127393019483467086938912241437065435017207262798300240514131063799207894897044235323401419458693355440603376657084613110167763260578946965692279825849755208082147944148736251478630082519026608548401425145212757543002255613371471888566313389227002033556019552301507191347058001941070949045368572178496309775839564866669435966102280376173681929921657715138344016158060119305016077804703279785752194391370435752768205990312994916862000573451076632657988767826352667583809514236187828415112788133115680348686261340368627122891696967731182943214605485998298806813380596862499346657691453412223234036058148377264516262300918880708051233033420099562514956897387473204073294238402512115220504613691210341355705879301207277258227147174015903405927080957524963351176880985177988957117409871705152718173618274136570756191686665860558255508711398165060601046846070831808285258861817352610454648321899838379849859348162551390929733459511554145367612860575090834977050183710705829286669038876060634865573855443102208071956519744936273912205483005515900444970558867042090599963773577828764679153857744210664907341627421464215144211428899613049631995095683120287739570037609835674041925064704039024635819173257857667690909142182835181186383587208796146605071739906777328536961895489179473566870564270765321114551725630541138619625814288134641508606275094628842362056593093619922442605212441803719631298818137621328140984811122319088250824513675422156474155063201797235673733921985680100553860255252530525129905912392095519110260539405422329725513950798056423137016515635336911537636066897954394968738788768017553257483503239683787065400601219147564258327808912976861815465624218655289317981379058691469263420843664067997285571930623598488468812379455664506067318491813498751176079178312146866203277331708116282983041205592298847557785651012882543680805944540509282757997624799285307969950391281832914060019880501878922593659198146576568587936376695941801656662742880507836591666032101561520934712311437622651087084996428608152722963244258661158009433159294605855599697868603063491718968134819479028990011298948922628444686832705349637772930985841456611520057564439326661074800564852658870217208205102016338533983792469239115885483048473479271308234627680606831341103052374066219627027585922140241630646306972640374652232933478974668760826569942668619695758673332965410410360692277670148902398083367910554542312203573009812223408302681346369229484062716130378870679275974594261230750647752394853636980550843696272615386248877121928405243620385853521346492622648274085819540803041912723521925950214459036400340344374052029837849094690110309973276446679910015510141400875492494109562113491441222008361960836257936711823245830248826711824741718663610253077793901766394242388833184994562288637897692527984779999470888276192241596759281064947596399908266518140305418184863273934515476721198613061522731580861061551538331163155192549721876039968494741772394259349427726606167263351673368909731762158768486970884922258769606050710829194009761278025725972391328892076778533059120255422442729990930777835439621589056712433081414357154640522034591758120820820141298412358818666761643130023943831802365036532328041017880857183437425842266031864121269592856797292119269870188615586586755332886683128199320637626544172118044036620014058122242328546614077314693900806628267877669232544498362733659557239363910114970220233841141942077719275975359405590324485023328390010691488045983343071245680677501607767656721550216046114973338169670271290825716525361845142983176845066060197049649260799680994426943622799601527336911343338491444734900507321960122138686626185641028315595248191810119085096683358239643497694037416400918228095042041863600480292258030968098997125225292890933591720808574455443591484652189888611471147918476959174923328832914238035337222819126293201804361010454137683426487129712392993007985357503785069651370962783092183420249031315465411745340101519732228731809098685568800806857292896774946913415732798754596057001863249468808397716874438952752899089956512775644446408800070953309190838906483166333361658404687992243734261273540254491525976815922217588234094801261838372073505581949644876978512519719889359686650349928982865364469243057801322343042963357413834377387183784007267000159058681649600675779076368139269732453165984971287813435026498591137903908276263746101476340368633916458282629736467312231473188474207179014767740334314780026647459916979090848558693910304738155160752034973535932464517392926372607819830103052223274786086632824152419591135105301430537245624619970757560713358104208837058705610755781556260690141745373120537123664697413063787916505525761029603258783406532741596727637899805069585428565052193626153620155395953235168497673725752112831760309963425698151075446099231806654565914314278635954972253905329203496434655257592013952148936080534721845867631538485889144161229270135602794930553437351131166566912401845437880347837039627982546128468743367061548345100904212512581168734221414651753193116317205711681186913935241259877960705568582146295841661317220847862184029417795668228998407358012620099334628826089668670651553670079490325134070046437214027596013990790495762510866646057798632937895094794491333734285515410903892457542904151198815193113403539745302254084956037128113826367799126758324798487914417867927797888290346782413307225069142187040233508971578240150731758676038968888196915711436909902082730978006461382228528955498982508893077217621558529944501959098902097691641152038800902260579821351740275594522717510239620296257156766040562592568968246116917814778858447087041234413993860897638470603285955563887540359160767003174793490881332831529056159570246191773806293893687066060011526391757162623088333435254169499365875141222157541031869906203611358838683326274036818542291022030180414327787662549707762515234630317778370951727102446455410603160779112042988719000003646162011672396006127709226148189355734286011768391146166613900886666852847442846526489259191838667255012769589815497076900827362162977029350094951571201049448026890974734716782570741186546252109773461183848746481750828562482004073169408745773080759311653752702412426728763353506414722100522231621076002803550479500334961669642968627574596152536986102227522006272570733468861773797823898879301782697467373640224956791789486305842982334737346703108580686763926719741271519497922834695296667176153877047603168627946332058065326785732922152800135155086344145160321389522083149162150525459190109712411644691312347396918455185740399818202592735095907295399798973435522821636568606335048522746922047363000708568113879328603798223182264852832097833832383611000438364464394521985165272099709324675617975909728184566614656126076610147907924129927255982061392984913456892730958617381891039284988189832724379482380468872015240502237955353953028770843663863147882321351585999821700935712732094545030198535919075447834959786123327283098994058966588328998348561680949140922211711908987420793590824617827225068064627442790682877362631805606227911768796316869855230775899262538147541975360378437778907562338912771446738954357891085811253090511883219241998607984270730935482699966818103620044167314645054024391752687798876273449614461473793945914725039360072822179911687655757762074869221965020210382615900285455826688380504277087452192615268989457846916221937598044749371287974698749107746002459115889613811419924071281115410922308205483723571443409962741452225351077084574227297753991694177017183001459192442859682077965913857044104525392228817515212339060077407670669159982280165442203736435548801279255380040868638782206082306860742854066181726618952227248707120598934781659266465758943407750877826269426262860546720140999592448671678009674662107961053082488920055775066364268969723616199806114244365246741695382074026226474453472724905267266158630233888201218617344889591002859012139979823996731932582881582046893962809522353742284687715603036194939735452093899153463834657997305574917556693652740263134260754605284917625103925857787348545696342328343983165664028944532678954297991425156827950044347063275010756383265371422548901550177580968744535887012471437979875557037261722865087989175617844901219960967104945280704397002084290079578348744731590815665807299965664210945823803956833080660709212564648006698865922389245411337158640625224682005050041176519784945210431300093488370066510922243557392209708588933518694320621549575054353599481091693591479205453986700020364360258321488025099015284928372120545499640219335198608080406045768206515236917096044674323768552936197634538194958242261832747833071308185046917010767177074633725185457938290110147325944781116214937204393062459121226209377244059365349343407631772147417915640774697320426546888240327010378476057558055386826666930870784723471505580039147830022662130370233143214746137627218883145332424845056483027480945464545399364387212926767487910765620967617345162745610790396258463407916664170316791296964958374834577947300939017451046792030082301647455087578948180265938158495550801425454451723796269491793915403077630379469109681660765887395248844022758484256676691325543772659965172673930880114223799538153437921001544243742915002308187045557345285646926221791980146277741671597225865929994824935881488881500886487407974701680217320236329183984915197816436982204725237763938989197146402369920531562802337285996821249582577807796213689686942009955440453079224474838311225259394447682708541859028736881782664970130897139081029119846526508284773339982769049545311920830151947258689887690730820299075837953530956338502722873358437654770313865356748728590391356399986214038620166094738910894451785114091182891805701604451451920558674684537798543444610092043846496010920928632274532235536298836939596763611191255016927486225240897232047571789320307519170986170340614880532052185780990465455171513585294253554634024153489482781787052897981009622299045420629029847726665489518744510753602229247130675003759923805219775613357234064261183955190165173222356666618173132868817713059601961907347369028893873922180891543914029847493567708349800275722808231554070867424613365558989554435363331004380588185866824393483761527881916224112942587287959223668548451765050439145308326801088703958747118908860348117888040778186423805452239838056759989555852133372350196439797099431755813204801370302618278490090302628365806805891319075323760100385347339352295072538271667458283148668552188454184877562956564142891056119733116649313523345699785861688372617232087715408740175992044463846540102788912785129681651978423316343131716887636568675895065874044865890456016420860986632437509553154721509072025041697946844033368507608487457533289678659382844099526837263661689695322866429414722594449598254730145457328051590335700387987536109346135829499659942436468126992215316746377957116477450635913228261788821693077629617116954862023111973993564687449321753765898459532194315561289082208090085543025747248621370411661626511198171465663121693662256346096945987464131690520354241667728086294877807699624800785888953810271320543413568597988461615397290872128574673106535578845415868234018279604548039309332680955292455259875011430940228649246006250115493029756354207196618212460074284997197038313931396388842724258666302921090097544062418827143670556553579821481570562847972757908379433236010153773102913585718308541408757377402218330047684660475985082269352749071089686647824082951469818424005946355644034897254795109311120099839165243182360923307535938830776574241798643286701368742174477041616139008786120125135994587834538647248427645661002450392207593448000711960485143770641504164627928645082553059261392609940633788581873240889113239998456736761555491777028221295403655286423363808272956424345672379669083232620568309804802707607532379667549746500360271889713549715468967288383179669844502928822722568000641159222618400665280301288946916323562011429865913252951297362620280121717363376574134158890819266058365036689846904864231073641375130666085537359854072501412438127488545413999533937139644227921342359218575828840651828873772962190725447437396382561180189285900643522062854381127657254612400581748975537526527118340763986991814473298679404496557991925834631486722131068356219369633291561632944834787305032440247102782073996077051366740838687980760136723354020421388058120593335878219641696586310753901148934421756163830505795689281747693841118313047877779020626715663504584970645842356199420665174600018262482490380513690013136003171106216443079976417542379694549277664488885826675783408808881382233199552440100626080719930141604513092406467000512898076323036435912176873341407166175208578845070655854790404655888155271476005085011553930802667166859935849102933090542068474292401125226240113619488068699451892342722006490710658145168708694470891347240799849890185935930644429975336710256984365795156284553397823203625907403904371034943582993109944116106739683104831601795120058462296185441182792620919133349734591596055597523729870722598157607300298915628616367101034603430328490299077208475056947037421443541214333830345720794502580450724927403230611703647345302808694238005094827111193801680173266902525980960491016084755671475779980656353724536958707459428325989243936038388515135933363780588077269596510881178991279451283048545938234756688163979652066474151250690551569789957940979900386261718443929030414041406276367606657550296261158193576442260326968341687219056275105166363160497988072564676683550198343665899154590322701224310139931017921249089189822823224214394054129443028106818734625339854228058502945125871425380628011183240440525147288963078662490983352490502183908941900707311881279809501956307061972688190995179800755538753207836982402935715910418587652312641834541607329100996337022889028015447413527094074808036739740271984289926775158880439245432657898921624181842931477994907627656741229293449627945987413481392821823728417566542830689639230336285026894541796902944942900627576843864612538477536630303112735004333491898185952983753601005525083401770635679464158654969449675377329426252941525084166105149832278890855039710544483209284191777264560606759823106326447999822678156985941248405500540914235881577656276825172871168330125042314991088869477573320284906108212531240914811438767501275993439163820905967086356282500849839852798912457758030835570914277786795182040728494306898819963177935324189339519495933059896718594802346573310986737696482440452681958649673692151622017618059855321214960499279353380964175819340208324939332520417332015452959853228642112343694858371890148702362545750803705838773528134138123325355366969383895582804241566563244545326050231322649527891877862401384427537055646765683829671883752088494044404601591175754269036757412815506169027118078373048474587672030269946853139982670679277384677425449278958016080652069294666195318479301319295929587208291237458459964440949379271516015853497104496765362535723672601299282953966930043009056059173597739299704234459062250761346069814629425517763884904888871684991242377279062481862409902993690809477015333614335500741938941431090980958613999907267268524390043682055253676279315070222435527240609597525646158076367132581837111284026191520142042546795631879049614630104200440398584291830949075357801160539986637829056271814064004190836930051092288680163765777229093062382736621199384526961371693429673084084430983513459346247656157721257718093883245771187856709302051400204845798693435466014648853159084182382921777320441026050452163349241488562766748095582629389434025180169255307445334540713030635862947734683352507556459476196774884072828412411059689106653129461985375983947596741122993729056284454476692953297023509159009477590725171202721910661715378316985505166544172137306439150600125830286161515346718780612612154875582676423898193861785449675197180769446885994888149212740692626001281188710804277895725278283733947655232246471270419530864643232359859313936537179055926739313198922552399563625577003853790460884787106665227880452904836602981909352169089383240717814864766936401176681783976430186981638960591846014805623503678996348462325189265324636025601720264754214022072289782113241339210711813560533367441497961020605686288364965167999339138957291541247334156594164786707305926296820644898505461942294394701760769181412048238766499141690293984339352985234118937758285352723624964635941764464630145543466617444454380603823728506234512111187168269861265162936943073726961761586473115003580779388845843481510711421677236823686376530704359625800628971882628966613606123388307969753609082043941068749532573386796749045398867428122259549348271582624970911306459422135316798010375888627092127401898591371215307275163606162232886388749387023579486107456818341033224518065765916052906352315956497659100731335707938135262607846046835255458094449727106670161087984737779273871960452747519640895912466186864213478375115918667800383886745175914405911003987880103443736336784368946712181111490620027668631072395204298273033663479974936451431056142704806594996232193723057489848856027886784127840388653931535194412493400583716519366983156657719714286504451197961373867953721598343431168687166475803726905289735278569623418647085575663014714679722277674077718792603718089858143250653708862381441656422853589278400620043408805174148588473751999633851089751225860196952737276222164857078356358666342716740748195087046795174203398181113567151750741935017095162267584587671599747592538555468114188361106005738230616527599257260496692108267554954137641832216374265368907440402888886432677879570494067375179952287762032195344826433690931754356657289212528603113929494372651288104575505810389676155172417645031753703543011574802322017147454374006274293498256100024339860502428882884167000008832786398829664273805460805262459490555492209578053024383519927644947906899283772962761382419087115898993797151793015928170158499384081086420897295768212367851286535387207767235586626076771223041757369149903304856964540608287941430219428285052247175616917035921133179012030090139021172722987187471159516435962768386411203419229205416178140100329914446880764190107815026237461309353723005225741194462582491608575723483754864857132499070954215073181397693613982835495207463907527089416084639763330906666086927783553306520057813978492267031898819811066158394550895686488329313406040082095246038335199376396695722003032920145229785434596745632301741658434813061577080038730227226003286591967431589685019232193187081723193276456191894871529139092275590543750452980749006899344188572500843207090279136042429000147172301593474290945556360929056882522890224128891805818048259626148481308783439898520290978925571372555286129980557664963316491211828451292122374395938264253456279151982355133941729164381671586067540196581773826536627449021362650602482548833266166161552727515745282985061399907562800790951287236281784746163379166629746548282964837400155822932973761567874833605639334938957066078884782283306390417275696842465987983538139789353597209106988163204541030169257123911782677581790710748581409547577563110565733456951083086042522629802556456911344909165724931457705779194851298120471586143812375291355599629522577340030925928134094287461035065343935456170159353474342500780016473241009897714470006691936045754192394766041499139255401569469200711918427353872586684848330235569418250893728454886175698747239260652634676454132737351014349945112095816012578017066232891702030910400496544446864468631092699783418082623342276736134854619213631527382770782505610057454742098224828147173899326736689948797913259627112668771162864045955593560535480005352780713485695948438459850346141811812236033673520132778996358411887136186252978140847494209232657864933541729037548473300587152083053254779920769967550712192832187477961215205656828173923552665770860404783517102731659265766333809578216215256483936101001114874956769320402368775426705040178332425416549916102523814552195422548644154900658818243931562915830624883134657090420948391825374807280372537655215347308478593517802716098351097755551149704478051001347016158309119033509771557104332080994472346815819218763909694822097248610288592655065007250999487284041253346634563657084584019325324638993646528261189481743527492156476235605793789438423910372779496551679297607134303127245448950585372168719825114533116335036041125365986267801891780727616802623726964052729875963669325203769472452844918198744275396414742818628109315059338291038842784767649391150747102031861064891277782127107854272875922646148260659386337070202682178734548090211687909026265042439254321771866662514430895670823485935455217137001874707905787914969270426491348481891059415592192742418487041312231369059227031444054823440100392255857205434577859985362421637298113600381331295165702317210070179327966139206970344896560857895342957595679525916948302447200947134741386224900272426950298483820296921140856230787943541506136665299857830544112186504443574163299140767130499155905819528193660851710014694782844874386836255281058611230948339068376624908929438799214665489990583776320008815454535896447847824167658507844077497710415661903958484112972864355308538683594505831353084414614946588382079549780014353486698892416037296510424413360193417146500031349516427235082264739237093246321566180124025904081680471814761268430895258767644573243944530273419858398629610328431160523152397009957039053048940234814794026648509878619292664121242544441135406382668084756467386829597526168126558543951971623747992422012109604402355857574182989764450492542716584259927830564076333993708228172077258508469785241235084823454521140159443463921620562170664614414398899978959694377665807286878957157172654240120936341275849331751408533706406998767364659659229205764371579317867493591476101699524906940319949936695372319878638502494146144957942986453113320839660462706193503929712244434128316500333575749240478856505048979689677628507033025732869879376608387616742265821307500094371505954582883843755723020774796849007212582956855642331945702946464570944195639935623141657864317415858273687323420436614565119128345767406368046787668918230226162735597531394934322741732105603858257202427981833008613903740175351083929233141336652696200513204722111861381888633974671759269127706790453602405125530802796877024379439156338984762532663751825895128408978912028873253065320170812093907219278342437646750646515835435922765884703006735879212389282153519423170490346679869015481661526008302906321874997052415719784901138479829407789841506907741218955118202809374902104145369130493929528993420937840785832326999423557203501252305855949571458847641320763715899577258884009965314068825700487891525442792424016025569489222337266195105094733043154951584435893260544499097401506698615249550198090249094390747561954481551952671113440831904122257809242230292735499016408806480792678115699081763582495284494670201976032751071111782511464422966280996813810399453220863907862098407447262304200548305358533402529927545398048526543318883390351349733866356481370872199721255866115162376285133287298894531166956791126204243239125417177215388942293458338803549394021048384362929388936503797662801254970714053040645745188077615230999476957486735276266537373923518813965181077230023923171035300462732231944884592218957284132423001846866885927190145587119035438108120340581059496917497129531923318352467547942036804272923870840164358109846346390513813627938637563792502396771499045854383862675250252260125021829133901471955800347117308353928971881653896702591419782774285084333059703128944088434445464471428048901276478646134117507009465460585110936415969554196782717370361525235076027503337026409494927832317169768030206729544409572225102316449506860363198535607854797109498461897083271564438864782359913255890464601314917362866681071393004848310096209672814626612406059157515855772342654216083650141550324927827416151557268475016466924338563275096793150355980798172560987357583564716455509956508291069370984950441973154559974193466750610760684632587999773853393024339094338643296062630377521061061122067246828569096712632382098669935151452567566184347051524184768886029756381292874541136202304713400816283822048589901643628110278427665881562275762140895892894809923668583665202740976678997668417934621635456804242426693873479590404701144259129734444083623532549825023782007912410714082363498718492114993371833688716069569830906828536816714912249382840685822828896032952702542082735048019217266730077691056795550427154945846579153672974886550501944052964942560373048364580248316820425577684714146973830108321031725861107677765627035100060140048647225850892540173480440352880384011076583223647994118271180693178423640238446305860538963266046574109942049114022333124148173152641089068623409911252649765179374946271361593703055524364226330899462727854967627798001098419172977108065629960359372525003416039003883085511606023068378686944351110052673469718542172246590896718368472506537515562092172272367220163959006599903096513700672480764156685959538307362499292801430043135757492618757166528863879144338024782679733208550403065455956920195888750372797578646297403272694085328218089843538689868996147776152745413639397567360522515529007493167079046549159832412305327823226412414846306620354790286113792824080421049957673570154847667830112586968469597747160439425238876920466414781103756006952958196920976362330492447836477686179919549848286775127039047320996084126054617331942048144444659516657768452274287138627464525440168042281021744383176377449097104777314657888060351828644863115493930449186614575693557203890770176759039647424429635967607633933921240270393691382101298376749137233288380471789865603718298056310380593060821483238331665064415991357246077152345136381270767948690144452103559212852267927888296896295005739097462600888122983678837579871529441459265738374273864111740622225469049347892256885388323090735719076183610936161979907163005226729957476360348975156034055510410677540138615299944091231278263717776580935382560134555670501047616639032820190755798616055417439910583942535604893907452945576231132868374965337395566179284563873454193696172199379978780083110303290388610267935317466996861537901439991671305480366660566774559632584111591852754735581904107051928659817769166970624959663164253725223147685117460248149231531303054366538001908700530220099640840257855932452404741907900307456738516927087914721588340684701084624884255964509860307477439730855883258390200343368169476793036528828786458721764179570708433825789194746568714718894043996694741969999136424466112576350572470457499487016314132609139453194541450916987998423384151191305561970336958993420301056939943395903681863458219494659418698390347147633936142738696670962565015367490447187730064903966013943683241017970751930475725437706336311713082341671647007685518622564580589685364980898434573343416730968440095174365733330569691521541140936391001535323978791040122281287178293554021622866874848088405512376613075742415047047354782649034631102017701209519531533359216627376562776124653498994840482806103423076704515811000206453814819601897336775406359166352183408249256465225128154174706255831686647686563955482621518050551840248277935255775983302315544380386089235780063741459859118067259420007112145302868975555136450847647909757870084154186801182412508791437659727565935340049123429388879870753620647430709308332474975072296235891039887409296742409222158353622001465606869399029103863159331492580754693083023874521507939426873396369355254120364441556776243852423805578241251166501757169601708498102914343451004672526485859182913748261755892758748259029007887836745562243296706647953237953458673626282005063409557954756001219840946288957244904866539455328092915723452247968384825503267033061119240307170713742549837933717053971689421162668912741891520598371602884767127490597279239293137813284778958027645085129415918518526356980243945213083197106873916736737842302755951421640391067865670594864732128738681906759420089210248590449412851348328081108928463817175429384324604830805365671293939218795982920910493109189197591338947706970102865959799780567210067721595702933057291916966087253975088943364753412199597252950939423642768773774307149006893903225544894311234465505761182831106325955377134857774738485618641440211892913306549970305927051641368712226093594807786175318890566458300894654965870261274960078000075560498066117493690063421312586979441535171378309476711772952638183878571938708502629271108108575319270272236190362063474649450865475795319173912651609382333151230108165184084952162297383008195612294448299104916512881102794869625443140152367897496590872011189137704442927670174902092013097448973185531988197356296965659304485449892913784844584240484898464346924404963739278932094598546623626352599401160299842832801074353043866299539729774088794623906601929918836165604911439565124330331049048114355277601163978652429461935129261720448112572746734836697146959387022415622317415286957585322949349901818185070114855610384938620463618374420680687018592732367495270136353280190635415831464067685263801005114548572097449477792406285345315545163432032333646241967560852399903594505140082256852821934471123693384021883136030540938554715173483021413498316149848756595802586904180577395365395196140037473262184183928409985753115764105354123892129791407133852603515113706482656522870344953438966749013742706555826269206125477413785951166920862236225623878234836704359216201761292726871875182931840007660143059082716708592413352100802393569243225567039190356154721647509679592962931498501543132373537614022532285637594268764811303496987776441234363302739400890505012620296953359487620011734774837503827479993320067751883752832709813053465112576395081596640742029799321789579146356672431193086477303955574290491768747519693148511744540062966867749966590114344133954759697532488665137429696509549032725242403293456281086669361329660166682192368782385322740033933100047763166792668433322810273299126079659600877186215221997586141325054260118689162777176811953918256507601495802524125578716888253325100129031121826493920466203677095090783046563294317317237785224605342373466276978109506572354639152000484112395433948898502946700993823276629871421639869440596564979405243450731094944753812031685482657119260779970134836471533979965614022499541639871047319341670087140164014355166401174604481944448254250997988558029549337347627464202127931216308213044349225011140094562121954365323257049088564220327770271599744719875071724318884208443409997374549837267987972946919281232390166500743551490595509196439921723408653077709125068990978110107979404858459484725647072151947840437949224276726547042523061718516736767606449631621552927141053610523024129794021719853765049773478977411511340920365488671661812720236161856742642330822811026511524085612343892670541751679344383136929850165277048175997080343948363731016772401522041377903522367910261219291831284170490693291540840275340821351356810679968741404100989970823548553115097360921293734606764636900051675586566298423799019714215888207842366132255642013936500282684436135345892215629700121886729989193325068666321446151811211788158440655815729793607199792548419431886199921672814363177815381400568118782961514874906948284953279397253646460577990786866249576811465896623804250051514577230362313378497410673374691192633203414615815772817764228748608314143598970839919780011871120527996036875196227328507362392969657056783734841550464344939613405485382210405113006342079920433590486947763189564082046581455492462803452826230000604520193910103851851330348125481000025128268018600590577235753715806039534670186236501835630154777374681090491262836504206157304553500615922445076405036306756516928053894975350690659805923689337242628331544283570266493640947088970027901198012751954201410518285526618586850680485591629192910029299564974532832261133950620089826454106751982700252614391721458440855712307482890600963546055227209216042859403721922451377192857825390917113576825722907578652645082546600642752471768863697572898286842609648652603164558088044835878799709247262439596544345966927729794004008247316793987947286858146068942872947912274524772395346628953884164786758547858771707492195887277619506781343986998270743856260479772872094735586549767659321024702817315066575919550747950822514786720028706474766457362588445634792121799102957685433306330267713504755764112118919208640822416408534564646209536240889427093886563205855594638043022297500222434076962010107878279160057275244216969931093318499995241913217591840103085444406624898568639023239333603634485936158353841580593179970661121738995776011705602995471491995422905297546765125855274371905162906524001933678979022907872910199596970580282441967539718110721757689653403999495389526917411330274544841731881263338415215044056530078174039519522500667574694006788587092786331267712801101564874187428931421001607311145365082288652670702770358335964583952007092281647525378729216224645111787988974190605839687911591351055033832105136420124584470771387234987614770521908924243911519032998795998121938488592632851576249515331583075758159593115434134852785678675062379497287811721462876645095301826850746333598369403990807476925830921332036097960563116607898235561712105196178776887702392485489205764689707491910103706702540594666364809394167071424894142639627684016438173261062177682294118001755312137459759400890231464152542497578753154029452455944892871085097946952825539251148622571288128769486980555355095210584055779141232186290605716436156896373473177115301386616854561415578549294714899739305070674279731236723445805512261231606588513365630700041363936014623803221342924936189664393911746039391709753922341965394752001205890010370152257262633237919711675370662590981421807458825341230531339664644706043808993791123214295742665035160417769192370442962941940140653439802142811252932614029700402200798752116605369389356614369804147439872667027626091607281053614136346198649019704141385252696465459797887056203136139592713219798794120310000450232784769286192367561235086176870776994257024201605296402676411298625655963392590695259605072524178171471313132871000828177338607069006643466244248725016743607469180157559091311040307662983162915665867867029496387224692939969814041447330186734894536976942587833367195480850081090013932032284509797904253655922362639145414990494653432292831253901675311656138420652317902145417696750394623373479114574177732795123124308539945565812025554987890279695129485762422663853137293314590431224680346640426964856700550348794936168411318572395672375275923016591360724413288448088079923988498940527416020667216041128145745298316240100592172256057074135544848692084367754571387482703008496703130863745153947968788999939849499801426099746340117899768357536272147008788783983743052573762532215215995806852415276611538162329344355876288352933274701697574434132408418108643320290698217882673428861175480609781483157583842255031880518149334258705054089008150477565835552056715858406935937473616591267259798864840022137075199576878850704893820322580543478061784360916714687502109037670103880672442183947304229491530250369078090452501117380569432734294820426892040781056556998249481881563269160319546415995845840446426084885184562244044995343010962162634187531122838782802032099449424129057868403958659678848386609364871390496689198555914623461986989549515863178963114903791760923550501704166948247944422918919902680128988644927501478605018880668661739366979233879076888424711421910066048187199870922166644273325082732219882820627368324616058739078103858269342982421551381340956852933764123620471605223317452046944143767509515559565974269227028001799940477572031202462417809857066001479495458543600818952125316079546236136643153982807777530840804051629600251371548007370735627170669486018952153947222347719337579730042590068750002211187174743032012879854896886810523805068149066181118483880873335363828592816329397102190351389107513732660544101305835772641082650605107654547697581650294710457797760146624618285127055937780077456457868880840580543114049216539034170770009849664312840089148145054861471544099874969279430903464545470754400050226341087438615986205668946550155814402727676446005538831787022434788708255390196810240146365413964475653617224223431526380092417929184553959337406973159693913334369562226281097376367127915805193708700306397057572472203175498914738797051601815261758600689525451115144070843688419200734145393904069663634933311974865269286621130642596327462911102993953637798150377944091589579411891893284391686625999577485627769650904772897142118776716650079634500605045683883589063086552668029106386761529462546559483353282036073758850011881449724431930649786999272686410168254961956654939982796229504747996502937287676936217513175302013171030506229592998426984137617749609691577718591293869710262927662355669892532025532289862814733425693592222092141410186787762973922731186876291516228268512550052531700686775175409304813991275543771860993650541521057746050092751432393687517914809562099295227330731853615815776792502927503483800648809928859756663725346642495469965040125758026761615942273021555183860195658721029107823273603480051573614454270774899257256110877874923982652257655036046494041477273527911979077006792058622720151874857454812648291165034870154653050073967074605421241412900364536428125806052772838193581806403112804199667213720161948090584103859662868483732512166671861402827806174923839123445048761646618403548719439071870628931956464045077420719888183391771887279861604682452662198913682475261983650865414474948447274646227768153078043748660447775060176345561083428240003936645116433497362094424383080474218901641477958531109013903285301894787667241285469643999677479641141761048574203323939332752466958314701646869111026095371299497179971351021798442720490274873871537757811896919984470372324344021072670136761831523464905004696735485096563795253928499477977419339318487453769560485979034522017128561061656656973381588111885502147170889180561723430900452568460358854249164796322001813532542903959500269104258627569344957300942606758222803402688887682035400652255625304487469154654989429451044627763428354607797640481107715198945448827348453682010248265716844926744140105486926019565225299198180671002777893675994196944952124629752479462016263729563442809682208240987376618747261204658910502994089052171060681836633888457849361657555218201176957701088450396247028846792560401684872553970959069886336735355728489385079834966164734199731063686585081579120107383847575525812282094979690314627671334633508447893617061222374440119944715807776757627308445929691614337456135186908378726136066910569645104207360204743607639800661388222805849682862587669587050375201495015547456250575004012331257695480742129932755868574842363051473996934535826263876984115940850629720207306498899716634823371571325900606482554040431399106885044019269912106069076608553776241331389480762942233944356399137660050716034217305837622414339804525365071183850190714852844175910349492123174880611291916333304788470004135538937655880701240442270289677065026142444278587054574484757009700725937530737002653771668677913244185776219136535639827910326454301072139511954766298564031035798222039994005455073214053827804194231158805821196686782585029099727431792067935397216051443866618027319856059574828909248273621267922873766371577934849345307962792589397656689139394407466475029303328870128958091946335262499112894496012900761262637438860828752405357630711633549775231906469871693134069150755961386903067799503949361933145146865331228438407305924570742961340882982415641079501659703451607159149882995566550475866144324069754817274894284528076436448724116269095405056260527090741744059620536247018574878635463556591433873629631209311298177755972753762818416193425639325499656366598951487632897328165991749391656757071475823054816871055259459075683780252623038152425765515453648365970671176250160704460462126403749940846179891057214797282410033527605748605384681791170058641198575144437933217603081959575627846544235243992506371976618119715563465321343110584619498216085887477583248225918905710689604736500126796459333433118213026284696096904394769451745894906542094962274042179506539882193913877332905999313602498227097964224266689560947220205619694669042154307365286533441795358115433155542256575320346798280604492570542513093773354173091997950644930929225856049645807169179853211058189726379869882828273690032943166963434618767949844014407696774773569204522764459864706279539455832288578357818051218563161656091628921387965134156446970294015759769487162381177620269860546981395576111960160983912849699622743039989115052882071059406951524196136226933185557470853372747083498391484978970021137197190530694842604587440395905805066172067850187713548705988990248092125788175891058755549223139092450949827508933149562336559253178157321334015822783254317411903811509829259750114646706273989846784167817971534763041056077963914697651786105867212096112719993510393932800582678219558444869411991434628514258714600982711262639093501912562771959634591188309208164668300416516735143458625109181693388018990571315937631563279116280317103764652594475068580004411494617186652357498966203450668738952159353056379666662991763816833740401508677620172082255688030600409657381338517859123594983656496225079151024500612578938102487863062608066228138249842585059409170184477624324214459099167623961154761040308024444348866912660850889990047352260038806132028879529919443239677967975015931283889110347971708222151831353703404610403597082891833138139179167510478245213714973482906690054175334833623517031833376172136508237653123217799591670260821835081369075371191858122542315774437361567504860173694453020867901288809324301896519760441409196128609809473213773963750067420643889458902898879912548796037018811434946045948602711027094545118255078794824338316279272686097460496144206467482693380711000750314333932655599013639497440275544712915848570872763527968592553661444977029674446869075328155505612672074045778957389843194685821977135662502560086023851722443246656706651804328773457328049471102232715591885145496031306184028950852803219019562507736481050603470278480410579688049418281149087267694222329039633464178106145271193211791882905193967783838317625924316891060141005052610904525577952511291237088541719724406563262065486305426163867129716095884670309922545191163648185858884117486847601041543120630156342834402666655080675550299124347204034311117282060986801884180512483677065934735110248328887498666179212137525938998237496701271975671765886777538146489634868749634071052638989618381064284602165001047185909614005198318410553216431360253681921193179324496884676502000566164548905865446902956072988860658066179473755908903211050352179608177639133228518609982147169444853332231756245802087051349505594937444412352203529786505971651646391308294584789115303895565902709426602795092631104297271038788004992616099969067823292829297632573899652533876024630416168530377730122514930416500952384093880912763275534651832040070078016758219697135831312576441733548545981294683494389831178902529478434770340198114579477774432814953240973278344643518861088283653271621289480908880864296780766420185020625507594556579074015770322901658858405360937898902188409798937144024751371925778111266294981253380294895837169501602942141897011857288515967386996024938265023812405196749184916489937449130494862909177603026060889580610939855734847237553495057413068887140759607601142561804505476842730112756453842826210212767823035097003371508215214979794061315646307736971243318223340424689833715000012667797201558479670223264332191334681319459553514533089789507344209921278881348074647363378543763820781960541004968934874354451504919513839120413516072974715777107777930113760682721561488976717050187453506096241722189361051005793689519602963514043670806329937761936450489831736373300505370608235564025079686163494188333512003433556462046843012996463549797972609676189072995787516816538247295545644384034773919366723753113995145469904601012890395041042574992018494621021912834707403164114301079731152555182921355750735543377086245754982224701390133450589107840176595098332579745464417365495685662015497636589562015595029858449617231696140182765275302803758539264892483276691659912115729019085503431514725044978486888339638398162543123823465579649883298896120064033551457112499690669569083684841486741111601224803413631500863138200075189080171061260903316975502108816633282274293426861233129113036559914218260958104266238500549634636643916367615702214524503902252567415786796303359633251001880946571910869759749186732931878795229014471366435489196776617866364429728632464645758305815420705296420528883304398518234777973311773586944950084994251841508133171677201498186977777594870667827002439157476969992623407966034856686822940811158057368567920670791893772459313309727146556809583743143315052266393919449620931480227318073558564009590442362465566872175266127533594607025163277252919767166782518239108750033391041127802727403634003721990511944926735105543067969267628209434974261209998474816711463344594516350026336593229395147696203446917070125221625712161746418377625006662102430227608065530382576793970195889635202605064977532385865485841543135321758463219913043228919923135520576015463249446955819493646459134627334264925828807561932266584258390498580697696707006131552068124113295203238738980070938645837597642327998290151702914312477255560693733481058675710158626968457249433601666150168909308763533433132964559316962108001139666216715609023743019490670074718299411880922025792614278646553247155953989880474323939760247491180907589302422979187518651144791455524636912445931093548745639450804905380837845077876658111053509546320307383054492764965187025390738370709579116880421773982914648475752819974165520412953080071387448493181397773406989100447998230525091978180135367245036112666186969625234044701688618389032038845778877291037272961282463113803858115549273027819164882038066677827967510136173229819157556076904437745607677355421723326666561036911357809640365882552251405903732495376809230393110548616287836811551533969019012075801333962649552920095032053166962386001243190785404956793708524594178994104590790828186937786613671669581451444121697784452972239106765655431477179301937753521268036548350824139404983425026690814410745585865216565957172375464415089741098576545413179503108448646912964643309934058919833809333437311213641135699908670175325809819557215685845290539649532837598604556302571665900469516222665961371581101100743986218085080213374072186123219073841775409876347816655868723741299089156674214928516897566403317479966334476146423486972180376456487690164639928844705249105160464176875725447894368176994952577099225470514100142431021194020506545994429410823043081645970668317603498508292433859950822840813896338576746665861328127292352156839662587206624860699277416245353630511074485308387334573177454755866485054345280738233928024232074788086687641893229012250350495771885475003489087639721388453772966376377315465293614497627425011583805630544633528726018714457286892093411553926008522177188649581693334878764726814263639533431281699459641785855937732511365762328786235733727526117718210983759196931398589007322044391700133583144054576049935754274041296075481494400198498535274105711375029445582870250524165283077047512010530150564531106900606650567765130390726621145562971641907930359986924196393864103690887912061695877140787482813883492531733401432494799716161672224378861588836288249305479469580344717568935945591843765991607390874943259234293034879581553744944882951801565299030856044031230120967676771404351941406021868426429530392944333412580052653236429282549110654974372358582010647237402004415150832643224801847324054097986314424879171657562614218919013836717196179951759651684615449898527242674402278270208949582455755899272939536198587895917658523515107127772272548081211592871511748741895205620134349129379436466977697342454451946436769008525931967143023368825532436863047535881277242334382768193368085578198709712881527601629596865839404995353744065653807546244652044980410590238212688310090800081802236226343132025390450867590723943089419885740363301506835992493276929864898958158066128375400174203212692190557950420937385610879673706214027164481592670949645245438600156151276355341704467374821979517740331797845097876711117655690900526894684383479659894574228629004037198731587481104472198075000329880280391301933380056311399701588846721965826846205581331599095630567202827461014631512432869707407496983946717489108378316264405655707013220949058083601919003867752912115293825672093227715028953432730364615245330348514135240355608130294233905173091968909863040256830320026738903643386885263286702320739049526682985692405381005290318052411834435472536188361046534861141573814727270203783258326855156134207221086328965131428121681892871351477079917033422465483300272958277771059858875677102316229901106691119566492403072752076440651840888744996259472910338954501471349686634478593234682230792657895710013059012558407565933348690829935237569414807389182941208806897943318845950902874470793261744548129221718507276662819099140285565130150625228040696307834852752872063891235391848461511275762498731431994927810417637844639026137212490506225350666007694380715779131674598041217376502591782587830466026173531534131059883467197781791095337113026538515334897116887432721084709744358485656373848393225317330679279780435878194299471043112929808782869020871405573683436493222867420693265994768509080487038637486753807994218648201174222981662883555782095555203514289340175568136329488085312559193832697542361310450402450115021986550146652848949880596414190543469239181611064953526067800910472269844765029832241198702076660821304254647720491731975371799175218422375521004039120743229810708671030328501982011836169190254661547214588091982634947691953273550919713482034471029387127999702708647536147303461227227800807086902387329925610532410732366632863867207649568657239881081992579303773922820246267266471749637956273955550949614962995865007652334030945579768148181052690713361147950550857910864675108911781633930081682640308855000226174820522949372987762461878177345134982720344490246257392227023469505532870076186697083689733674688626346399061601225034146418711412212653260570909305069534116452890767434434101022358441234456370961652818324677267864720367724717660231071493772830304495951114863946262629569898880772275717285223528061725598593869919071036059632885696964578736307310841853061001144317438895747998900096123116539158833315267072948034783643727572980237967473381383779837721423372497299614886882773290504602921192976660769346022478761729955549405443080785768972943215128865784975875640909951224848001974705246218324360757062234029020720166160586135095214019551388755930400889789935056043457732421152259943355258216379088528216012793763253381375935199402259202389367384106223903520557445806372789803162470379509343592057372469300103350737568372592707368340479075813241243221493588879848027574645840380329365430434976603989676543952002009146850525928788055429361867404289468781918442190314209037986852012487088230978869386181953920629385724538691760196670692501158992562120129751560113012552744547439105078351305968596994524942349995917451212252486481160418767313519034133302427677896298270350951124656622939632102540818560129632847461262284961287998472088342432490123935953350354229362503906429939909756372753732163279427812522898685103188512600801219930886610731671370432151382139360350102227400482563411516324056431662243019081265601281920958601703296579487891149246860379251106688293350328760070406931696427173790959325588922020909860837046736056417971179811099708685283374357128774986018598842468055891025699218473370873074476583713340639078345473925544099993231569308268954120441033649633849168562537302446941975708027198692885078211633206917617976145445357672362231696772841790095564897112582618991663350247459723942956541063718733120368812445866600241231032469068562193395985690047265356594127137624426362978512990888458623813068908525534198744369564344797669667291647514133163315986672024433933609415278415015305043563515124011553810649303960943665091546837751723315915666141678744591197406572454743357212929941047713378478094154345805362374981096020512166028565894821497209488737816073190615555307039873450387306612385092595144929280925742978266726279311583159409875793440258243267143724252097504773024551051731134867573254507239683260457534128232759361286553554638772515942394932481431708421050193681144802502858966191545909163081613465676925151080313237605165236618156941462145976130949900478858323659946247577534204664909379508224805538960746808189207271484387085573259829828018761479386078539717396196207174424936785830736321979237291555691032317134450064008419051790987851548382082660079475496768466298848934676404733446788585916179705382395661857158060436746647036460813831902184919160579051900628091723217230072437157355400461963451721047918000327689154498979810175081463029728427483474648580037099177425881977257755882854085759307917597827979749143941503842117860997525524303116187957804359170275574145255975335926100728861545266977332098701847234502428265568451802693398335760824594691221021324705947948007968967304035187489920268043412708013657709546484751624320089023479440709916181774140454133882334473131693013204817273711690856715824954197006860982875061611953179493068207551751097078628116710683978970310415944644828347077948662430855461062122928817452225485403485513953136740482264085256922637810560907832218634881679924227969742505364121767352638442082206640384930836702973920714279635966264772752170641895615322056866802115008653362037852485371134519111606843987116954912338891523099677449361924872088309511003513612271930636808512484080226580833359710051208341624643170447710406292185601871300442096239390207172154711081032472334160457994276320549767847011538490848148243902459546865097154108549477210201464829309945636200640645125858115371060558224851503528218218769417725178219845117198049686993133299568238318615022416989971399996324228006369090616749902382680470013724966458554371815191475331799030485751949346981791823958092299155734795657602777061361956490324642243446368850048430597230673278851584002076940480172736661243366643947885154022026072326216581758572963823148479446974833397001255813897286934787966132903282680854247757305986864283299842914942722470300126235449371821947723023351161064168764314817281134257889329827162143684184494316472944114773513801508357634151724649167495367938712024885309369505174141980416335978663332423115144565940507041683866746106767867760718799570036810590200144611860154516462664934871214399067678420147360013215489875505256925465233925291491690997474277379501038374876264172630472746762312312944569496112932326238756417846809869366000774406028168649514670901184252250078237449122164914959713154551672805325490479968471522615553893949962944295540723493164793650807325632586521961669640636399596919865764693457756348023768426185606235482441499583595204952124828005978175408063040770566566119085374569535348193993863989747120162113840830130782460820830810160797375270525061425835040280040840353614699484137356071531549742315046772703200479161184506391433039010560629936646508699141984537750061329361859237137709782321523718076422699612847738629614413327005693657815252662001472251130237507496122407115234101458729822796388388250191316292583489770031903555611893287239298556072635928504242458168773628354598295438530772254071373537620207300132112180863799654720694203227264123494839889020401333281967535507945969453161524317191435441403713989824653153867408043533393778406183967398111734254415147601307391508894310036626884026261821707224251752536047156116667053356437671503788390249500383905115407221905250053808303932433803995582991992086101281325888582261629010285268193523598323426238617235068681440209275771259348187215404370705247595381176151103747152531062094551621314417024997235211585288604164474707554321389644342473009069291318871879464498560987310840257748499078544556999203025207282830776067842430347725860299363015075040685045709112218079978658395634657128013563041020021084609199980020014547404212952269293508836403626422315938186354663809882783729521666215019879066088108665910802047012441005992394358432757437422237571829520494984725139541331484831882278601027360097809467658719380337229010503096913100363576934546250841943635402951579273653379529038222784409530540277720044961205038113108847048773348096989413392049765183702426671443544585335050398850938809829601814395498235522378834964991261417683608126552723618215067271514119659958290085283265150451501536675302580764939480866659854319043942403723940161449350911508898838214433584580018382418499617411634143385976471310858973377109104027770165396059710750024071103944702932784117911622654517197583192357178725225281432947922348502151893436086854689547490423863906046841509579572358297344636778767867540924471238690314208547754835980405676848906514088812785748390395812022405663362171485830531381569947575585863254361086010675678242972680894655165912859320691692384701983163762970569875529890948754323846660640448889283852411790792682259859612834796312346329548898307801615514268887258371276759556912888260658491552732346124325378078711956965570059959844895169786647160596303028800639911652637674660302669007802475429516029241607215677015562683056126152488838273491548861898255368672707521946103005044179438365643873063811765571908210888612086785791493976598059549935784057052077608974563217046983623447704279923623036083042608059793594070978652177399540321765719101366580556680631737747177368278515111180088485545556662274326695624669551683505975913764722929445852956407537463796282730537803723924015006499428449695709710377130642383456474202867267467606099691818004310971410577840958294074658931819570614975745176643581367957422571014236433764111024424031613832969299609224075412603358200836682990229074902939601342490681356529097066479045417964703766787944240447372335870348026873029331517133753970949841355358208761213099924931046667799738207055707300882588507908574163334183849501133672695944152705030667498324102587198164206434880523622816854019850661657759547238770815217248214255061152358271703629152986692572703099313380700610459764014390825752975644637302673292418890085509788781381289589465463461575053078879774636201704864045866166915925720172123706535952211644350713962762303607330873103551363108293516193227911277978989578249440525894410037421316929117961302393150982832062937367977730264672118117123934008837508564513555733761018285636385324036966589299753591393205808606997682947519593624010217895820603119518683492527756875617400139403995333803427071221283808558914043616370828861377972438503360103709050677221543688458119261509468954450326740053784391044877154474576545974014480138301361719057923465668605883956844586754310418623304647883639639350300925130790617840319364922224502338891794825291725650080112387868519203411502143710181804880628471546070115565269904894450726066414850452434239048306130176587538161811139202350152919703587413698407323116032568794230119248198726132905913416322853595066925817697265699833156209428995300640406170673816219206975625024088017601958943879770387282958693482250570965750899855925650503935927336858002303573004263833540569746391589028967276203623130739400667671685335417490177147307205820272263485408905182228651931762552754915514881326228931019451098908097320622681666533087679627416976752547561441986417278825290687174234352764211527567727198832259221017718372486376172324735082086265068446750695470752626515768310578491868282542506861237683279794464577200206312348345442542429498903957504363597639815037734415477634269657994156289828256955013067811141158149020977836151613972455839500559567413604557918248408980180097716509040600164859362005554570599034947412638120548224316060886650107743329941727985581590409952616038409913975813439947632609872318905839663222158734437693973425146148535918656309975163240424921018996703525896512318258563174446971187667473261764931050373858613602684246984431108043530637641564295765284303132078524482556619700482420419832271021289719488345269628428729599140458048435941421550861781410879561790938529883183833188679179785309214538519696098517928897629920664414023617176440281321551080327877900673333342353527308197290388613345873240806263504571180739875627117765294188566254549446428413083771178995258703387799528905949762514662279082912404897867584147862658568986128579494794592818866198392662737883666455768535822344239254958441792997208836294495345753710319899682904583193144948263777892590872190328757110202587250331209632332154373480195368536235392094588060048377888820730484571446761963734601608162430843049860372396422966091865922819593080762626968265266746274101309494407926663921314775489332262568185403179912331091119109215516423232411919455572606890157212847431076541264450917353330195397006791306517445155922582321631865925313117055907854901326382149484609577518742711822950605496184278396492714762665501995302980538679144334420236477075135887985854021230890053740748103313574005201151807950735041765234737729991457784738739707212561540147820253639791148680591682246599670240663774469510495993332987902456397019669635971416254610293591190493296604649486729485643198880582600792075986184456373047314061102507739532425855865499506531734791382172812646738090352994765780807861931181200783085738316369044617616798048209676623563651712709237382949296553978249426919166167052008249301231410731902921242254763002009584704509398389909452554760497723841642083149632605306447002061560562778867628864554515441853911630597173432233760636204949708602506399658038469028752725246727736762689189315974463089392844641529692096214120363891720086257099807763894405880721609314352666090819035628977590308159784527927339498661601388134737580102170853882427203653466208775558728441254072366658766937188257795309226536231841842910936838311506492854202641946870555804530914186404154324551779892161211361279892416323550101203838902326186767903189651410444975986221294831163753319772215981217068015112608914948059519778562151030855369971176389959416928516012110029987064164367703751690974284690727351869719692559725862751965145675621019477467303911860262722751940094992186673560269917900762074654977621443829940538239996220620733299986329609023664864216362515924725694910998302266166786439496828287960923152737824530267467304286908130443885461793716611413101238400495871907223027053283178508234991568154219071515045694085120838756949510184041961973345268315084803165734839418319274005967097398977518826461181095640749339397446694918209319882813237831748001198788294715807891491776765341007691620944208611871057435416551080760922178103598496381244588917704811478526291836061067198882344094655489917904992384174566368590853371870577224661760230882639752419609806318408193559718783946047278347030289452111209786174172561705368341152800249829285466919765864178326038900816617378639387209223476590652096564932729668244611389193854118742186913788860247050833527192108938247741626874587780483596423851547584781060175923830040504422072561694953877511031318834828113928743131740250554308023278099175701036644989240626137174611380642378208675120225657204645101880087658665447152898815846170725261381102606712593455454060385217010053359307083479560458798623777895376994238551489515802417497549995578392878330948246008942277805633504697750599601021270723380353176921547076148734703543363660228506515426140732047224363680313309522846056042114685174096276322197873839574604275867839494353386277470201610388122628274295568873604771425406679143852004677727350746888045999321084141411864184950036481999291779365414740525947986952916856168132726995506949016618338663053126512697348209416192265477560381959146115133966997147054224524759227401534510173648585587073327185013099289573683562407884753084291992937053314154431422247596061688165571003713565007829928093320093256865370386755139039008080299179749335283732529751635309361126825148574997196337838862134943279411647601156175964062396205863597389861026156534764270384604996817499797178283031792590665116530871886619316315917250541327592925939474480862713935156184893653097738913845954946795273167818268372841812469625141018321222171676028989251117029745488492766872069859690797982620949785133166681490193458716497306552281377662626715779445938046698147047537503811869952329143830824555728345507177011170366764328162301190769752506645140306764212734658004854827005754633778968075053637179428218396432888525558199342791958882970163370240888746298222781408478575313256027186930196292128306689847159361576857476084062512389549897887700389755434585923597047499043410762494397156310826239337602113596968566078978448577307233218338300913148012588835209321519314430489545433027120592084000147106611950330658094513444347159728606214454232299190975289888813112045046373120996607969782839231593456342347745563893543357046899837715446589099503357136858598821451508378516818096291345858291274447266200952793043440247405144315543266530792596029026432524513093982910744619072787555976831897872079298965889531620914523581793947004071599597719125960281113532644304452099791762389648450621590110986811477164016806764772260253546221149545860118158972834348223371761967803476149534926956963888953493761825216265996088468123789132028147195575916956114903642077385527090379598708637611710315064149821591437063378666872288928563418740490626270223952251989573823884451536000121989027688795005236790954085282000366971247582522684198569961066714320908756783698877949339305709955636212483913388008388541119324285720533781194737164566937513978100152298927145596200694400740431600899653238687013704030049235107757647872758094103110127836041180021708296521406208591059105639017498711673762049289770150484638904346854486275768084267932890335703416819275385872786122042281339959441082761784807663926010435619467367308508304435131838431080759687456440995719808852586467752590978801864464209069127418709382449337332830240554017689777731317781260534228225478785116096049096376672708274801839351746259585591100361156522637019562918648107028044683802414592259708949122234513903734654628668144760738004727984813000091006852486743516374635594288386040124191923217264968511932226298401727426167498818708039599995488969540793910078759286670586487034828677392402747020039156996802747751148038020677358397584425425643578459931523452035308562873791676565701547491412956018570338551145382548139007970880788609312661578614864638110079772932861113784171436006839819837768544000419415586745653272895802048948806435863980868806589876828054883739019844300748005199916828853767855357008115295356320197332862559683734892244426612475252527767027236300418619338000723907930941344454983734213891225571208412371902202043565278586475280325850055308625537961451534528593749566859678468598955328427827353067163953202742224243777109738834646309152112954376023120195057399073470613183350362463957504609613781747863836010444015475141142610307088010738296979808653480283592279120848663174258601462350833255983403280705780707414372761337572348383877517665918208106282177888102641829255945996525715054250823124583914416606197370305745078427780978829703163080599212882608976527106736738391409815630656180670290890398530309316386100817453429696856844423613680522283642531781637398031944074318808852725156601802011992664974356773981515186321886834595770983995252823269905580049873723812015407964694329814173271792800816218164610011844857951674520063255341630666012964057690155145395607104411775486826959355834529504837182917244050041356108556544206530775981639515660763243752835905369842089753070174580397993543614360634810481816053542065798795778517673284748075324808055790377788778507989103826519016114352024983581743424793572795206084286574485573411490683586227272369652775828224630919038013659138445896225735320544191131059026919565212497609938036016446674249441089291828338757822323180396904516448839406527885551352055297614088483132843922338879266802893721486713539535202970732522146854158728539394303559709050596981110021528270661908306991591129142456074016501666162690206652074491706072011401659115270813533936118579467038830070198228475863326792224951669882415774512134646559079859262671683803156853077888887092381432104498367690764607628378890605273317585303087791813989875396435748851866032826187247256856145805012126630316515704992247548550703112161041222366565679164521705143511028997822800969272746909411051342636974809316105220796405347551821340065289258991771914230096478517221840930138656495876193867107769128496402797791235999975228839483029128515296618732288668853568438595958431920424043535760948287671576727165314186531967921931457872835501439699522023032864261394849647327657080454217967863246434945850963223823181382412830721624083575076222469714007326237704471431645848350585509984758563909745779967721788032381742598099403656229517643850967039113619648932820437569556956079095388962797423405920478585124640199670637249217745051338286162525907852661099362753313268156161729101496368246492951898792995021348615531928043331398306789133434893610869187881711716167948784454713114111584229238855813535357685126525222830928320780255974538107886534671137758967488525771700935437055366830147948479012260246711166688589221686886004147022893087211073315743880196426929081981078177206063444842257032095573118399905078188191048924709162958054777115974013194359160736191722636724667704543031544623901584456173907310722233390401516384162426740642720420639999877821109478050198676111426018511028858474432799320556982944041715115150314222159168661865912953240728683823654490623174288080684004535377942024694033193701484296907243325581301857742095627607324658321355235678429383815268216234234409698287145292818761587372050590706674088681090143046505843651061057273294718313392840864286047334357321028395347416414094798488921945964555345843418969409639525905397898682233682053983803667984787359180044893666924229419537138527749669265342598308132740293050977348056457277857394515501657490967485792937473841596198378339172738138825960394270794575416603758855712339112303865763869660772475026481818781672907580401784592664661280242313600113975329969917080975370222991757784727894978532675524013907442965814674991884658171676977079318679403275958792677182978266060645914395487387348012243833634586013914343389222861724858816546275653627141010982594340792790416125818402885128814337934255104477911514156965096728194379863163737647297414648309003636304238115416392472357140915182705001429551311609013888395539172404259007044282736688947007654931295556540819973069997636387765790922119576674193280565773489653656315205458027057256698623525486650481719772556312818542608706105760584108005983625929123101011167522309568955812543437597623658175756773598362464271042820612005043751145116945559881227946244930128784147287578674789704445721635629204427213523022985155033817562904584401715905670996456731317261030525047710603172486344622458480178278720007767401913170283716673991856046961382541502041209129655854451421348792837356978198253610086341824833701824563724686424246652341818523040841338600350400425877878900911391460373417475584565415550783676476925763488123282837758674713442381570170028833923238265371173600389591886502752688789504843395167156211044857208966834635870605530421822353984985214073433153720393434000514613501898962634733732749310987260275415939069815175236036274388602836759142654301492320207192927044006075450651208772324304147896984056141143978692447240075682701602126569889064106204000048766801356961995233534844548900706663990424737155905393355311957045523803390683154416318632289244231269930910030462231591556723870118165648853719657449831755218598857312525582236732592024967734185065760491619168776105028439048206967396632807667437963792824084449554900139501178314435878277034049694020880190541294405266511621687898085712474122005476056559032479630054415437168077142393675550044844336814386165824996779531027867635044093051627969139033166295208647558314629114346325130428303274533629318092598963940326861874037131027902122523704855358261529106400357634643231324763798270766829102503449236521128093234263728918245883143282053682800227193185682643858081424092641344218725033901858214373377977311534757642854680497407370525696689099035056186942094270176465836155849054220428995484367406576198359217074948151988794522304785963749439007961906241925233559613867401806119101593547691324670268397504513130751216935290412800667456256673432033804389566183304383321435094163683389959556107018734742312507419985681282395892479482146042535064937757208905984633758919726294317438889407769897892812100400668098506438161426547910270571998333274983388646628485618656198684407281468793175067716565116081447715684109900130255153109236593757996908583908376682302730413401790179921092424856173672343706520622601365311960202158097596689475124324349958282782689656101530181349421011223351099290782493846114933659614476230025566959557958000695804483963313639479140154146035389659490536942746818427602909458081564110804787023062919864094635010293200453621296498760528745327173175065414002071085997106876843393624918608346661615654951989252446359487279116882249466203167785990440202566693895894386979100244913559049571861841783014691402812141170951255992666896669288739988669871598424959887918922242039080560424417430176442576174220328350238032341948487168043847605869794964498516650286670531970994732997780939401944077708562776061306389137475045513358430961931002866331463885476476556556828680258774101645618665062553747529746573258674940534682642691097580887852854366854559346689196443615480099013259086495247997205169837155965097259380126606719566417690906079232340711439060425171349314631049205633994462710496935779343281804322593554640294358312832073952693486361774677669886251867227262951394536570177782146038317717088016773987410692595902319321842741205889460073552845258652190018800396094612167443673565996048717289198052994541913819521416064957915147494321249833905773281031089950059639405673695483496785648742734137963974700349152332249075217732426002043706314621403950464668079708750679802707988773715544984012836496772976062612491585836645269313670977247814354792750384560661358007608183347546745564572029581339262819601665747321114954181809906734425578818586331309792676607855232892854167910342766095077445631032497666699885175907029767789889427514920885528932562974176742108519325424581938555761390585483834101575776836396434998874015346190879648645871759208838139900874174484709913679659051473288584066164061204267758267048309806541469774161448173522066583106680067369450935084628916728853997740018500974389640190860421585667669500524661011945624024979797495767838295523313174475875153946726250861982127160484377781260651226781447995779828466773638342362305503570968305952009090747913905267643408210347521928606197312072903156273073705348632782549777745912611715822267258408184696105126233495726986702223127361686638136457089172008559458087742767433474437082625030343368046689954799295438957834919622700291059425839740404382228211488756069979018878669312295039113923069780209972774289409110371374157002889622944417549629688122869409149436928164673207460911994649643401175568850870889554224735619894857538039371665035582059334347381238021230200515339328456836307088577430453236850559030036160737845184237515167594742558472938803049683283312302549505671871267182604882337540857953560576892800805923259226126450814838058949948264321578678954768870573552995619323235243633571851764349600107188633777953725816787226726871978144393753127612505521544919157860923931005521032472705542153587727633996895485007583133177474043825307562811465390565205861122226409274733344819456793770307968016179032832073932596931795698645806903468854690014853544818669295932827512171026923250200001296205217049279676389994619512961063855801593254369841324099341009762090476871159323849507046386103258008696149432779600532680274461674387262905764408108578326914808574086540403353607707636058524516584296880065089937918369524669267364063730821631116490032412654822876525190844984039304395196112249884553530402255554447937222855503259406554329049986934564050781307046885209478712134656722024845338945754926629406246632874968960141275299885768478915898751795392301476520775402769122419246171175088085439048808554456383853007697912450193636590766218755528725814466715214560481375981388027513715010324895646378252283394393027117212573677556765365331126466539474170715661908004043890381480562121769428874176715501968309067143272832290580712097943959536665642781421895696562392896933069892163862429695867694883711004204156332547868196367958951870690189936909002200476729245206458872828951391229350570043697519130868528850367021965242506447769695393657376412357676814602499886949340346098475161781926462577378607485986790021165959256142596622814025719355152578689283288403624657556010639148960219181063190908822007154372458247269934969507983080018178769322268032286407526678430427643389742449446022401265783554710387309235258584346267738805668765461909662391367995069744243460843132296671024889495018274829030431788417730360860522053868343248714372432828396717627949599205394315114033244064137359937118789738073104303751969485929114706101031465624729123061631743348215610918251073467989657474241800882143159863282393375885100612404879420440224825674414484586777177727578234011578339477562988142908540890070235378388777353189242517781158035567387449721464506862053136920589672070158094537556704809577570136537874684764275516253824001018615970920275002600838278961810572480440723100260795623266293355391632128614157289156443145516801610441831337248007362097700139454174000123115777494515106646743476666708356079252076623857594542958263478851453351637731389283736571641169560823902249962284907861995737805198965101611837204830345667051235823228714750439250663126115382999892176066095277860642320455087771300597381616438428947048136943877179654888425646500054619484452351914953426813993331019218691630209364033186392982034481607817484083430458426780635374821706978860431240692898867314963547957000542392149631298886578356988862675442878061971822871981816635247478182667037673912097494990922813244684204849300913521506305572093945823086400232132644309129390539814857091253530570415185561249366628963628568103305098669455663483734939995141188822019942602669070787165002402513286404384292944256451912461748026079023010942246732797395732811405788732632904254692859734253897465587265388646780023745671615105015427162803038224137788277624102355215953849638534984865606613183707102705187837445904282560027441032564708583663397858811453207612648443232654263060794464051723312897533135352725339117264448906861801737072288345274874556678796794933539997567086563441332101057734897673230761991971540951279606833038950340725147905719054050432209120017019819733768354506916663297007818201636519375157564513750027487956146096128288850588512113587228807876239528856898790688176130027944119626814063591284887373281256309233977135725318032754263153580670754006293716214653889167096564155675682430932893007602297185113912847401562084039921635837022442085665126824075219031561810774295193847176811652786419345309710360445901791666786484226171138736362308316078817108769498044394020314326207349968982287505354985767775186902679416060440743595268397110529885267784598377444016714955436258543026375590957072625201161027914949782106892014325825883512070659829534458734975129189742374373843466893648759310617107215636189185340322279209424080417763200733263052354754847247523509979550272859327816239354248424971572470049432068514278062097773198712574357698916275921687604255285847153439797546211892764668733992577536701110884285361749136174381857300465521687682388342626846340486900204009332416569171929162073131979690141707288242602934620527159537266793950221378588779167091058884427954330967668602836383808369873233115731206633304943742647696535436102398660841218827634302463608257707360118471468160735936698496430636261033601035495534100134114656393971640419173098621205476675839481147896265416558813625342648397302960191792468744324731374307354743120017861897746140625295017276145760747274481482834068727269283522905057035095938400930800734533738776750770359951220162872107450641847876256445347582492319569270795601965978818563409634457764309938994679407390688287581612276505608726359332710573358104459775856324724864886746276883929259347477153559830287615510154551197551652659558570001202910650092584377296202425120100044540419608465307266845211776616228272977651715168537836162889958064679650498193119774628799270865480863659317544813520339701432405903820572108141995922028875471018571661231678513760059638506831435168464709357143345396423069518868597339105236248141086903292765116090914800918425958719501090420444053838440279283572733703531074462206452922427728517372137611722369287942135524370877853058211393197133082162631132347760126151521631735062168346112975241200663798562205275905272050057493764198836869300103288951982027195513689915987452561642072531468757321750600461225979388005265587966269735546467806081205352310322064167714805669520692469697109748697635658301006014151791544431406892437647179951669860539174895270102337962672553567308432339755833479063810253329126985428229378197480376777262693858074885713224940401281382805894215819154803702816049479842704034738989543578649006622949568840424292998087980390716948954219179911091253213455991390549697198951521704865873519558137603936183646611952034712719027699293228701664532137507145694907347916795185712334046100948857305652425048298287939573078287849377557580432092606472424247645859954526747746524032831719691293043884889831473118851775044203672782992836709207638858371534793621218870505204925524706585846751481064156545885060422660506349294920670824416208093007649209048474124207882708772723158544954608759909362313550093533624172277786435244108778287257860298724661419563458890170086896270517930446065431238428199801545957473453394027898122107018709162526992675393431766809051362478911038800770796652291709618499315073012717165102570789837722512159356396714658870253481923991319806609413023120459605639616440038975960600837041225456279851227350456352656557509877280473312549716412599121471256218637642224509444828687683378202558055341710308960886848936347339739383668720375525409308741072594957472576935274058652506834057214701463957247181597086861127036295730799520396289963160830282525025171429618970282393972436828234100775481812060903505591010915649265516016242456363685608748789020884088119125297344752572457359513716064117118582250050440525494981925746591633600471914402390821806122923895742372206483777223927393563128636121287284405372715878446154174391858331776843991608873315876680712550939354515128087804540921815281564143036455157445240090216300338139349642229967062095698484447544673155117914622014663701049788367439117298037479139018676444006160729108189454610255922224233600429484107850654598036101374299401773229465145516445602944215590090420083575754473832133849104105068228513784412338606992435822010976779951751798189806482855220079841342239799817934509921177734560237456297482158500570660599205912512697052810347770930823297378030372411924372968459415580235583642761296809862429079828886042661892345233704814952406782114235061195443490931428586048996768072308450069782958222965724386622424323106336281145006078571976111509738025993075689310799728454157815920160299108704670447929519830813829814150072872014679564796883717420632837842489206895584857510368314996771876146103669039667851675523801641621837614626973560085452667490321263610765379588387935234046621969817536013872474190249048638382056480032726191523137293635764861761902779172162404248426041188349915889069119326446745958460474616127134945869849295364200704489236824983710622555270874305694514216584644777159427951020135573840141537941303515637634394617749730380323794429437811740718360687796993005934517853567297021508116117387601299678886155319666982885810732124344738055888835078977229481069099246123417332130123749371735677450492493094727358415449359559170381020884546616969661057814125373854992272369148550737286377940434687916463880101730120146861443255023967749891674804274768078014861690009066686818509868733539035091355675420302585038929057046034208772440504081805133621188298195994611177114579280274294814871421904026070331051159921686444187903409226431263882072613351150617630780064289363633597489265795579820569085936759543534183578988092105216255355386451388065215412439220967274136990414049373028507018916860631534454422524427055421097583242046273957111126483085248154038077552342577964826574315329921542596426240977858201384347564800841168186534160547732028359623616837034277783082631270272385558644193382513238598065339513669147785236215951787753595079857017829568507902499628939288053491338148195045447244955489203490077532445426717855808478406223141159448211148922558863218402310691265925249809820572408471248116948133568161905353604126898776306231142772486083854556068694847742196248005170722854060921202499413806569446842224107994384040577153247931853116605869532942434111465057357347602282571097837270430642814590070762575195703630636184535991008947848131700881350158113133731690519555486742880973969524473251813103352546290296131821183641340492679692499058172098509474253038536116157919285732594379180510578798002399336390158446269519033721584257306359018167838779336570867036859148785969957617215258245503808907871855735855593429852699220801139928678630555197105850339585718441117981644713042789502238114217722578455534984127258104930009632208604691738367620090657232461368061539505776344461309627736263116755896523363661782638498102222814045876438981872018585554472236495016305597002447135696545520258144412223192375388162013460806260718212380372826936218896598187487097007855020281160482431980958620606007134773415455396115968231849410741397939671119171067189397862826962312652904224473041343142294767536976488167650963247218640344610932739346124060350372669103054378025834518382000070444015451250196087801310108252972809286049496672622468633190364822630978088535053956123005447085992400464579769125153015256489785996078176763162519770693629670272713684070598387031020747554761085284183592291472777934951202323056838946212946655572804121485006637977497727504139115088859117625489225102372911886043349511851724385523322452511996032515614076292411964939949032988711769080450100367091447769049120759562170885210965610364770877973742080068601037418916069237227281263729866074490136947833584358934113009886129550440366530421383975277366099457193851691538087618733139648628157433786945649585675809731562343549695641673227298511951671854465682108114158360858929401677858561686175768204895880594275649460627752134688492917530593583687307117304418245553419686121587141645791907742422476612841030332863788544555875068132563890777169142793491655598875004084292610286870220194796430891760155097315822077529905114994339240073861252605682640188373142702288251627460526665051661746314526429092878212403857553085327075826622936320910233556603568814153393433421824477934098881492606291180346072757360008428962996130134942840739734717445955835432225078166471367972576551719871401554042572688216884721346559776812476041872423584093219364450339808133134052309266371228790938010725533853919242701890271243590361147015095190111324993147408383972836490135901552919670845180428525497326523668249124698388929035441592133562336661510076182302197916122670798728150283159358973375627120376510224991270969507021842443803263704717687675117354285940436945720243478199592790264239233441830380892894677907743886820877919264311429546250300926790532272285139198081984787764280189523963239884228816101355695567139591717906833690317735730994142545332570568027142455695050085666775934720575018575091263147467489227596089933094045606632444093203927146716575565906220339081003918444411247935226968385602337149253393200614574496404670229295555482577019498499139825180255768674800181751209608182695832270145930885545670694781328076421013294219944035898543502786276130965179278460717908387989730521141413210045769610665235361018401960500973859967057484270082344824239173586362259167017444167269538382981830838796945804218621561769403697221446752056977955832354761635932348658003424091875089030099304167916075770278235474370697060892210886248449546697129140690314910831539102077321947751111897243911535334556188392146299982907682856723289537409000971797022632348953984010540969841326993128035212771839664878812646252853422661815282853212506781624763608356423176897545744917281579316455973377387009087971634406524207108113096845632609293248181006392835316388330178085117428437432095290252862239213126823900089947756021735811972868086802261977636726229297124758785207410154986711377118773817780055106068171902018710111817489162997832770972980219290496664905846262263559927191562427757240452097215954129575991652898823285174096186217142305169030712213645743101224752928281516750852385557036803151196288742700613526704071821534548426994072659353030093289531561062686708662023825229920839713224294177979439416470541887268692083358603839439640177391572786038296411993788695221440805757655294755602419202920796106861727655481876517423248758732524071926307951576689056905932039567045115478182309764213142780584208649063833564980047662320936669851898284405167081309220155212351991364915069149829654080287259953331125496470602480241586426129251214890755633468214132817136792339384924503186161471462090707824363621939354106670315956847482490076788446121933817927980630259385366522603478525996138492530500092010135269104453786422834011515331819916774804404493622846635455245469300860180209910713632233158447600971250180945245751806632710284491883002322565865726570905221127860871362989726864634812660017700863982326287310537860367470627852403525340631420538683219437781038090091897248565517267162925038360279024633433599459977797574210165875903419085582647839208378954003785514165569863699371353317911359435049208411262464532049937668382764509945305723239756392472162159896836604344306253687906731946817622064240807008252507879760239536613089564516570890015386525241238450061619593794953439449974409290347956520848310019673401748007927104519536768497496563564374136270841907396930443368397678838235894293006940949280204927520274779873999567428461468724636111924565991711846854871890425680068898717091469374359952054039279310672859194000998140658013057983856683778840907613737270734932954365437490660901940902988920071320161964136733211409813163435426842004601073773476458441532882944300910085826168193178235137319829206215974076197402440615341792052875833950023607148476021623610655129156214684666885972802515831642945280464945811566005524932823503582007981057328747919009257212710744194763062510641486512518386985777148397282499994866112415077628400977658401611022938934995067855770625504172938291719035188914022523506641298795903091750848258132480584029757257539882397987334446403665978852192036361651261206159646863027746258414714742971948947817030460622943398990845491050902519632736193913435030502366636057937768955308095500822305966043959058436907907649704167039832973608734845207705314462359474660298850332081996538054716036684876048614589239073744738970170717578999605733553608899017943903249163674827021445124366837686822671160195238365218487960051298869808598159774886733851321535469542329541507396680919287651349106377970323583721506954110591767207596693669614659931168789108958048898622333824461230906057615575967100291033202801860777064788670178165842853330958306050904172225169084161591799910335006293679506494455563038008184912617674190380345885320648868365348615017326909592777504835447162026007732584908349227869490337492522749656113569370833352336594624489277789384375802952580919023094151168766251190147288242671210309939397914117567793142690620723055915168665299788962501765111166480155675434648211480551665972044489980221804937392777321500623264043096170557688098061812572989265164163419452456580490063645618030335280077542704328482810471060703258780015361250224990562141830847804480086192677845156648697972465368041503642400103561558566597001340516154802575563394308301047859540747255256455155695880729893507547066506543165995755755140673012043694412930721162882707823713570342880987518457884326101719500322173335340956339607661701027035029670670591409568421781837318960145371394932989368803319359532395209302438898075845564545068712182787035449462181311987426315339484707671525046511801666999767443130339228088050524405830166180246364870039941193499104418396987996336381753222639193124019821260650965674355729409744079685455837888818390954865397633047542666075521074634589448305368820565137868180548508931110497853082310270478792730853878133054003367708657242433393145932392822948438035708336570510658935961069957135491997345019564501338086987509646399795891659929372585833279241621258511517541699722390827419742756356461908226717515006724020268971244957182494855345295831903419363608010993353420965972908259069350090833789338344102128012214505505013006587635842033963044684201876339895366644956560532845783624894768597385706323193613982578244473861973902040123239103349106245245649158687202866912234052399602985325880372060325533319540677474999249695809535169251415065640564362653964551885941125953451897830865671795472940970563483410904975653369589433426620965776035500576268281258753577768456710861858408324022874950556905405738086241507684852104640469966171683802532353751760235639785822595993930990826460538395720894149670574849671462058001054335551809888499774022049880951782522406129292002682202084794346724094547745776269240492534082128343863086443454501251842873657027176168451415688467309381189778163794813274058402351309271648345828557875852978054860100449466935251081775769126576657874749649808888471204528584856206953137285525089520264430715270782543130835033510007655566573457105064324728332615458063350658400768605888891216028498906768016791122798305855724547541679781229636456472337904049906107339262926178879275739331487894667004427717957786089366572070333056356684186361379077263286822062088250915401853193623024678287160873197510434625076434359146357496122086088997845775775897783434641680649983633452563025467738137483013362845186011762129874385941085033935460859988283482350454847961490755178744199139816878139152335309171944764123498585688480131197107698498811946340401959793898753221005026039892394792001239153105223358854514285894951751723684841841929994082260625699767041970399529412369753284319762204093374027708854199997233238614856195552450669830430604769235943237728924958660412664038609387680079239270062553021882243099179682411237348572560284620788004054254176048236885401942835326546714419536311561800419810813988928576567318657665842424689789929053358024644173691422612528000224598985979144738604849700027643280862021325359540368436082899904009672876491500847420425930762661173351912749892762256086186605590911234818872664196034773975091676291158617605251337403204834475007798544778937299924849905141015783943837834561663653447314889243067555992118231683343654392749032496993036974150995187974677195588462544084953493961740604327665959672099265034308324951538856437201145798490545200487706340817615008578412278611448414620910379423883879404800590559651975964055010589598178758018972362575188453720137978430036577225462596215883055726177729320859547424356538054174884502870981505503556509619403985145104988350475536373524179594512217135439179350610414757856803722746900458131051537455755446772076615645946293409313721535230330328803345016004907439857176963614725554293528200958822446358138292607907788978655240764042604211926061841705059602894335538754222687984320615938667366262622629466423319061887790862098536833730166871808899499618227803886999590122665563777322342982935934603921530077089265631482275561302067418765999902942699312905315498718572607650680398151624481330079249654629853241056119868250342255821385780206590250644006497386349261207996453224813269767484364135844287181548701633669091478387808061541634872218247666979375395172477367681400231830553447162572395323351337557571053106589524905883380209790568511017192384994885696039468430771036792147544792092218197042159783227047854048766431312184334450760914096257139269305190085446332005561785451911813615025673472103091261307980200553583362807023885888959599684498761067607294623732630415632340789074995419448665936200753984568672445066923184091135511503017626362380712585172849710025793439890453452160265775419242719813577497922460467973884261118600702850888708689462782749098801651612856723034000399113546793702804306971053327426606489729890492758833124021730322712362146166082320592692678044823108569567361293246511197330450083634627993791326757542762280414399480036217001163886402193743971651958689857680739246311896210780873213165593921473578720272363192625108357829695715413817815093449945157964025698113826402022014542133149116629284472766900782177890344178135958135130363395840568525977579081632818887453473128584308058758881685673350957282005607839197404704604715949927486057615108687623385609186835870792209241605336161801622470942363519270010381780506011435153980495727829321992434795192700956444803967774257412424341729987944501328494018987137266301456711121352544872135825010001399160983704662006987813452169888888882046018884842580402826371940554833445835737788196023343483268180828760817241190012091298050932250089940662080743325379471315904040633192847279737826346745791085437647869003309102115393651039910040280698011567587074700281447383003392161655640414046182677046436010744864042581314760385867060829479420519535381934165708681697347268775710037452031181109354317645427896470808534005293556969035549644059634270894397965536458030583973879950416702363741023660960642603486742406989420054124455632179993936780335248725342472984429448794273120778104889316116843028627335258408837018707147202693781970691482024913586054098782695162352826684215298309521510746616335579216459888209334350982153596407395319568374841968245419862842032721608857985159875194594044778967619709641596127978634110732189067479306164485879382091201031001875771794478949840573557169927026663917470992362639351966707303136608771189351224701645628280122637589777762194095678688027948147451671462368081712311203565708696360786117270426844982311080880770247968505070646494333031033205877183948399761442330798528459648884477874993607656378084589461005559044024381008810420386217729066605835245867250095469840198752623214168865849661902439350620912315843264893818086727722925303821411927214625743861138088893655741557976854359057323049061866712950821608524470504554050281607244934144074537355159433047365081060583417191575280553167099336042785761947085274906214112594299545701659843936964932562553152742560996745204913878244037022010592562571992657823589899737744909587048804286077255391862748232742204541305263945853252870561909214047030363186734302554556599622360845668070435082800356097474662379717565333700404210598043720510161349211822753281982635085125062464728295365841926367323204182869774790035108798077474638682449215845539652048972226094612329645779280651986312649868692591697540213268686987760723062417657339539949216386368819030924125859640623446605970430169949395182761839170788076131783051259112608514459310481057774424891663053061872086006973305299879795024136544361026584941808659323197279200363946183481047830337122599418515101807953041419989583496652056943540461391717219993071465553037979167388301298110227206535653043102785882644692984488741790187149712655503627999418545487347075611033654134065409455922977663886953415599647129530586424738572861384028373121890605754907320606738731412940961368902457616541664932413747559917767349805041523311638804077953024563176287080124960100006612399732103894720511431863590144374052076890884696763884678737860155397111558822976796379449734221200002053401567081101426332566138649754614156631259371849699234147353435972667777723945169497201629648213912446195006875583060835854521323377328465875940767577708083408766709134655223200649676850002497233947703241086546052325978390541826774409088453592859608612093280596545003754876581097961049886109899864205156652489040704150396817506764556639983884417050432403525074761410132245163664987211321059195441817888577493879014521190518042635926922392294386524510151438256599126983004487963863406051589225217543276664743880714808428571788930818904598961543983693434824326372291945308851207715291117697773834210781169604959624157563248649203695892831972918048749353411221421588041642163421145480332857252842860595282872382024891661494965232410874282932761284014748359706086623567042996269592479716302153998156779933712166196377210056051277731175282745920571544557288352113800042575942995549056023865257822080026165388476868509458921255000855729941060194713437564117328146887034770446593805174328195865735332164672155656723546175610640976995937036079575486623013806591531082310980594242864040062784892524574600676277688920492881087537500806272821288084469147677944429833583724273790286012961870866305090591741835271330064187716647995265118140626619368518717444469951877183623802357691220067650233694584712581607564274993035328020042727562467146719788476234620444025930680520628649415121935491518204758516828377639957807405465806826228750372554516007228083885051176154624766213638874774399773948048943079570762642661669317111991438641235940152715084270396680201441918784415968285094716730231601963551752210513030331469911324691163164144642550357425572222070466044420725579073277290495578518501705026456301334504438073050830501476490343863827603475799236010263938360284383831593106728916142756881223439888774626288916853041704511533118543760695783526632759806359758236186128920200160965695005231050702512373299686987132783054644559263144544406222117352669407036415566969522535260830896231512418750815671412020079177794137010930179764149009585271716213945167195016522702272290586139285526617740323642216980040831826998314587973716165142637948163982696379762744605468757936245687793419792097977494475840735396547439463103527292328492539051210971166153400289447978108860387368112265571596264114690743232562232700637924795828214901524211152273443985206164475114071135163688269716332110466157369065297187561586708715878365328557577469535751316057405788239785131689570802785752943303661237684283064407708282448379063882399903908813494901330438120966355325411678390229016695859131644130941137211577146004079882031820614571441689719169546398090379853428956863121393093848753108175980104311609258196229143622581655629124220100650418440374531786604810115994759991427737127140351448350817464908370349906328245828530036224159499754474054884612674110546928437117874895656890275113194333121300544250090920766707994809313034489048468547801981229420289716533595314565665540547218746577459745756254080093903101648496606988867015291595496200885426592000286092104855672991031874884702982899302803669078173384376944449783086212124234678166386047265432754016352471262102959532247760666908528403669896291760255579716398771373934531906093266333345441667883985376244674534086112630572266613019520478497948214841084983043820211078497902348865959224223377050545942618161909454669571905373911889001805419726168055903217049154163158728047894012466655817793427073580263969284938159571763426672196559320400436980322847028019356312197167940542759036267172974915617683314117878744812689612834692565020034725758904581648803160279476730538746957525518674092601588115349181185993260681263966539895285443315185955650667192100167296811945695075437526949258376575133116663478883966942690483048497953969937616816707148312482154626685865087714891739531382141393982769221862930517626085418482008033210876885491069945516678299243693374617030881456114949055799581647336234917218011394432574958129067224116188014174104292923187665744332654991075570474822761519672134132640597391768223132622913124983701380972889945005318174071781584842330019963737071739197533581261735703666833615566235872765829998953347306680958860936905111904441337610825694819982181675874468453472990931096170757833596111237108889328909942637997085383009503066513792228314941551277212504646733292678351431883259881794993321545743931500663128063065802552723505982450266824822189339760472516586291142884264370849068575591804097848761399961562862012114988560508055043296930886914226201929895820142329812990646018985641127651362236969504465824715221663506356907887995335025052152804250224834586665153804978956969411803635072000938221923462061147273486583039972063421364507625809683338406401000407074268213516948064754304654552960253872666937778405640927582960187704619247343075270279354056417103205642726079151624095257660993001087178164717038040707006543960494590547759426833786682578817684848489736105079175594032104686524232205321800609322127192824514402332669573304387303066128498707889205305535490743285363407217003844681854521043528862070348445144487891225311638932863253110386016601007157722784652824881270728355983303406031430184121272363549159929519137439722732432231208517810186883689490387692825071813971082207504523195208564063639046062842901364720674619352924528340409957683595763573419920602820596739961346070666692085473773277230677948335235298959600219676788029612762986369648322411849744832032947677598559531881713729741131911678168707750616644945205499235128840882804417804943534229373926373571660503991559279426603557644205270702358153961310778161691239991393569410924465564200247285755935857364181464153820283376817317746311199903573319666779389764590379288782750021067286311096181580112369389824568555074341055730850600000600237125721610590166387592700063963146302312959006438210153996656683113734761201833815997828097628713202330054613557666743471380804893906923262412464888028531938036486087799644044734810859254337791539288167370247052280673909406002607301241746222460296389668769804641800465675106657406346550494741570788225578640701459805341504772892469571799985876316616482151814137611884500673846195697379884099903411504581718263233815933887835654972127766295861518382651032089386632388957712995399140433157447448567797775998211902024546318187992490059539368635315797285213917894859648844230258078275058465542685761979421062396439697071217453799159604237034998507417701286034376816824568676870837329448182330258406278483659476039392362721180774857288286148883240874617336100427868202887232292003270871909958212969968009603610664716062093793292272729773363166898386138850564864562934180524548894547632591869870533873202789087803493066230564725316138663555977466902462194314557174482059784074544316822404023475280045428903973747110504006124095817739686656978881814704559701622513690306619098831604502411600021989770568513075389826439794826449439164296255845392797213120050448357530384841107734773148713272535773835349682809496989926734210185427349074774111303551498503194643738699213899389614366057738178772019235884790908342394885869246424973086964613076977641041779396563037839975920547523586168947189748092711033353270680367655632929146383013140207738747366389484553448464975298041172765506653857599934318962528977159276696561017453939898768990579728642588660275576250408413934871380711957702605354031543664100526081983882452322462355122194951341176770946851603114863492497391834823919185421259783373710678039503061415507759665580237933702382331360510362842712349966117896364986415030338772910320964656154652641047965403659774505983889179059998092901257259265466711814902492266356666563188302604713245008638604488957123378280589645432014513879469273294085873869028541289227400767634220539952405284958195748800525649666105706199451339607972905762671184426037174746420059343814079558156705180959596555638606789057260199500665184939184741563270499772183957844262934065022874658837158631042379594912382667532173557359503267171106175475895623979753076617773207879543053895295683576920630089349993197323010341318594092408594361111448479233379952215602695132975655525584955980112653628475589120826597216757039950130998115485849025882914750556422058868147136972373876383704976430506081231051703480083357802283273889339378007331814684980163778482927373943444144804794920806369320227645481074884461724463895437081175395002277630522983935644972993060401690303570169104077465529606135295566317586810047857001672414694204310551200866874862133255483118591652232679894017060221756333226062528299724569437859730456164745234334419616230470028007394022264935720730950894328483729553576483625491448730221543304606252682504007533781248657189867549722054866843455620712082207263834609787138607692918794064073559153335427831057854539128596702852667792910655601049766839780261458664033244724210448283543657535741453440656475745243520666387131782524769227900876364121133884089948681737950874889683026344252503892313951117372455975540086568182963354000120111456825055427557210391502921796877829593477906574912806074101761454070539229793109303378687032709486096166753555021604040237383743799951726100614780192670736832666066462121695789758061180995902015504615276361993446082692509384977720703127522010272578481969104319439155286035975016768382160845969902505130018204274518693364879549353204828282110760288232136847723779420270274852295097824042184388124470918389763285704161694819712816469929354750568595047311830836513337790315868255552046783694655418145051413883250721448665920931659398819535003012457394822704437570467742862226370236685125273246270370724194796722696717171676680398472271470503467974087987803199952500974689812228838072489990737671273732069383335318664017967411939061192610293254006609787090899195881880208392311793640505456008878986785251413874298782148426208454731291135240821418060613737021841152179857180506367892872392052798663611654409816059287943137603472570485042701759137738232946411056236716117133352601563116673564355007066264894888455308307705700227230789706674916354781868517419078516154143662615948264890912193465684186167728265895948323757682249126793707791407347765410818260224359618966656533569434646096638170059283485854454898932114109110747039986641984891806729616866133393326815121066592688989303687258862638797655373430290532806535556338127641646845463492029423525816858274014443040062376221365183882686390977632168278868156699089330882680750086716712419638977568461588474356948516613651826425385474400351546818856371683555429029158741286139386903723617157883489631411078308380527276292401608029555721881471129344944665737532175105950069588092161821037778206750138186596681564602946194558569608674331700206673894576042776728704047353223464082601537363317652895349851889782802977401083248585466960322032437644517111414934314333465542177022430630383096638815839799436656839907697806963813815596836634910822836552342336362397311618509327841000830163264617415980964235889947255704388795204247884168247139387499912627519938484218533524510204895648426963040709299959547876163475689798075414806856710556647177380662765599044203665398444178035968405277220345769362063015664751969328016477474285970039850400020381440917837397265417323325018758783397258380496227810243414495913621023600582375885947931669812065873092214343821095111378086567069797253293240303047514199183129235652865117196743346298201852571034285071612346876777817010576534591082305954478346436844912162770510466728481756863677153926407475104894542803849713969283743332790112545713770932791545998205289452843957215364640952883040596147527570413903109287495432445727607199652523726729973950073922994569920907246512584422312539526915669106227177313896316898281965243703239835412676842866004371673413707952632356840967020907432698166140891672621474741233497110492770265855920733564970298957793705987405669040285025008472823500451208443437424133596768982677235167760043947314361188432655335500500136893020704726195800991718883486355538233877567359608158922571159430238129626167515993656467441082851281331909651945028451500734438574506105901619484246654213376077493813216283825883599428266257191129569904414110986917996440645800979379844691206007618674867149388366250293221407388822140640232841598372544270471490585725471651797434499664142683241346483018826268061758993632518822956097538479049617695230290606908246737466129068971855820604762897919861922267228218083778266815870931862702607479624448079759241735122319707243269431595364807281253158451040945219746037338283945662527328019585573555297929329143637376057743955038865737804990026422551379567008195587466406228971024076494265578829511721281859256652628685967952970114951164148633149773268542154588675879367203525535471710779459623792414472446873586565086764977309205651313055319099864900157378338948684897337788476370970482272544446404791396602940433508077774154517889063064226827088811286640263616936349175497404534618090872817845905557770312971354550226800207137315924831778527465209758714648498075559499985902333464466720145177551039126312953748770310557956908947892015216194653502283470092940689164433781060607037045948338688309236134765272072928764090111651196715275512542088604329088049657247743929497785525168706389732216161212204634226719353120100455429207337199533466275047260613925644985203024455474258437307424489497811683924731504010655914283577685874996799756714405116566269888118429504668347424856523065911231104307750679282524191529847568836778218277131955379998694736407789371074140593862924402642225266335049621836913964659846637984005709481402363057575150343525781730575647453716043368212531943971517079163248044949546751753518736707051385009076844712853236772228689676109221131185185061355930815974538164273369151363559670473353486131708323735707126751597249093230909744655491964476520815514519675932091995395262092872553574544310350638127029787291776986644467838971911347665722458864981888711872153525937839957680771501335402920403760469306703767702582230030107327893212027169614662260811108985825412190667998973579708861055566259574811724909874406924947126953079499267470471006432883053820206777595883272715176517419825919373786551716361334076069995971098569720730757223288105569468159190888582597102756457370139172152017638703688121329304582870702482727601349350487233025691690036399901169733637405432376111054950212809651299798802264659793159508183737245655748939468342735055011369163720767831725087617995584730648909549648210665986242137647746301932001713232474553232504583859163335657275800898914597162601265288252175840229473530696596330313157108881391731274470364027793351180437142371325494520563325868872786568328061953732836743472288287654661241205310702564588766726361141505298932254495197269143615481743901752057585553676775081595911590993024509561713219505766744579783126347556125025321318903235844717025767876207407351313349296941821878901847696257107149410249774653804266482392126602199006813241288081201541970441486557539834929988314350060388205076591996998766740121297932002246667918781012111480484177278011948773662055695884035883261037056521675179705161124962561552375980891000846056595194106870519202881677884392014240878378003150485926394930860351291179347227803555767699600414655450527432492089278535380356620760806648772842402476678890336260166846478854544560701381872248307994201407426988358012893511662417032781843534213336519694193775263667404660841981248531390242001439852812799049490089703703157175109945204751287724855225697462719437258211666158744780527146976216812484227607072368465266648965821798132267336030272445848752571661087977790100146813099553645312181226409704878618050758625459576092804192677867538070547551658244751306811395068485412583865289888701329099569849342092224534440374179676385323101485781457317624626937891669689326052695027367032412320119133737911759084241781093297807216982660507468826229060731149069644043163722730430455777398315943401243792260647840011523768395038511091291759532049912785147574019872491155162491038016197199850790505364905643900873981774762585982727548422498535063526533538419085852888558643896015184170887283745396028202275714036995243509059982987847119642921352371237916892762967834701232846109647803292037431220396502328239748942958851593411164265808849204342167757239142995844775428161542366176204821141791172248684055979239742962207016906906543683765598289689002087830467474500924146331642149193334877168120136143144129755510068288809808906094540682002915699713909050361298505890548418130361040939719056128687050260177279125014797705404844602500160476515814521597812663119825373678212040102875682899207826925818526931421072642731815933249776600381259793200279212244616169802372079765729278127834920680212322568548696243574256670718051253929065066452735860315411919803057275988311734709534671352892606081665071007442646210577978687150480247611574160458072101300582376868280862484626017220393725098150678966126975261105907384298261569502627244786579344037332259672280607282128236793390374799312624433574337037997035578926237461123027751175093442483567451122028930625197479121766920788779539221989541852350876687870824213659169589400889293516717616440683861278071928018972586736107671490001676070080502535596412853009154904254458780965630108178395954729735887316902478479359645718060232057604901333305824981371569731301310845016796475666399750345660484538593015197005669524446006643920546372428511657416372449814377447078853364075433437956405165134155252839866583382065817361345710745794992406491097935257845949391899747786614090741444470716845084078113533306421509530051511150147256476721395096706295921559900258000410796358392462948296556966508906518285715560457675203447000860525014392386913083286380379777860366391185895928432366498099584754709980485566672613251392243064465420968180677674164077187810593211956160498080365079892108831268827899522522375753369779101094168069559451817857050106958150088219464425137057178737396145480246848294036461234874031478198001714730764804803867197900130595038007546196240527026535417558377902754998086949474254723594271994783067024119114660404346669040052713049643678075546404247856664119956877862948361768788168062647207080866365846302117991971535288993000041873858408224068082724403357922082063904200535740173887930305042301570523595122935659507697795802030128547978801089643759991176113560758895120667085746719942778338872364577560297041835997295339840416303275957719143150036253158287886812994345666425974015322774028204437698893627268959248344095710940244461544000757890258741125645247618977631117097990654773824116790167930468929839066258114427459440620838352902991733699539035094771501673224687476152830608027292893025219728324336091895072060749255705456466301184402518752156270482914367951978353262538912968396218593515579979481775171380757432150466279042560956326209370867337156675419191902629997467684586844311002645422877631931198446038428555691421364961742572041228221147598606977357984823333885508922993880530996168185701111587764114412135545061917042228770090123532430062265476471033651370876994239547662293042229490156197432016029710140231949410463706112954314199007190107779035590185415432125642268372559163751953594764139157210079327817654168961600444493594672240393540693619948333955713662556979498562563977325932631743885779393132916875289145195051728426408930892419337111962247354231560979355043298577569799394538632009448976458325206700158669240457122503873409781207371701278039093397917049170855798429356305526018211018490723014121782901667784088835975694115649167472507104902474147211097914369626695305419324127744233630549371307115133895093386881854173985996820472823010941425698772747276592906530339798733902325305903458163857013048812006182819063884860122898712623656415416086829971258190138375594154703855573518888493742420182750253277117381212895122287492227451432440477707744826884405085221209586506821779636354761442863442948803977491377295400011321213033973260336898555438057413989337078806387432282715792664893933542180416959080116348325766697682071835844902843875569228272104173063771824311041210821890744016030073381338623519902458662814041429966306266514590194315427026235625979376011624521695545728006242514245732583331624046515710911491596523692315789871475621396407537528730527150599143421409578106804883398892702390967086371487493847968866898007615094288595681905183600415489531949237776760205263203814779883311406608144766258542361621428267060659048965557106052348857257259133504077755594551973440353224955480836031321839205449688901225673407807249390753913578699601539172238377132441063314194206109566965544411767802931487506271502629251555726731628030476568411179134465249016958698827590247278946779728792298381297161192658895120564120494918845946334035037457685296349390437989358867972225205303377058505476733032121192011122820362811568035654176169618528329609811225393792247090333745915619055067928906072858147595475994534029556512949379948047980377454503547738686898403472831004195443529817901492248684065476088241733447287419553385016198575327595139267995762973231418534954580034516345069546865990985768257965441407107770448556836485882899467013871366816135714150528983461451094513933017952200096528438955340223055744377130679567214896011368236088925138993432098292167181980050087790477819128799345937490409037058415218487319510127669897592172069523545772353901293771972667331846354247720511991970191391564055233765238837202243994175702066560043613493560196780849459660587468540767245458966464555620417319672067377124178194587016294342212452574365317588063878705199763207860144245604923580005978543628693529097505165212806462615210494544263961038072845608504134984218202627902578927280010564994268395131638260508278146248631198245868243693972856739141859499150659761229505457677455544586893214715487364097236189094640410047257316312888462777810873500082989867405079739912672135385703671780386746213187755425935417491023208841557644350037772406375823632480658371270739571573702133322361238207766469078450938221528889210505415102027207703577721634598880303911061946440336345037677894356444297239655484093537906607315502811782857589853794718277643968925841456203481726763656374076187959763178359463872449829600825205129152485111051858540470612137371994075736756875287327842671668764269094698423037093894598414759667663425614240119223218124797172127016981610641200592638166391532053531761780484003006532092387983903104727568686399232654469910998027612699198817115262501204723739416826575466409519886297339966712106435918826671580636005181790638363577482473390415578535184429545947377419105145964330097797299039954535610820697172785747664170137872352176548951918014757376606595267830054174665493779001788699179367135265131526388622148507071868240975703836668627876522864007810785529560430608674481013607228185719793942380790044884089457130605015273104719458482366741228463690082119009790359791794035252605313522554529260692435651062197569281906760380590317605762315054239998060001882762737046570334727178352684553331393566700992143848380664911919364783567947212479553996291587578490202374248387603991887307356544677480866433812537425259755759403506229506646170825009398096937778843135800515995914469332496478051616138654407230958712886113311906139164719706874613789684070382425233270579303191959229359913586825865790679327817146904574519469917104661325289092373007243799823865988691470724524208048977420478395393001302285314940920463081200151701391421576193331738063753834977997205007807479645550490869816864352279171706358816439858658150365001716278860331108599829331981672526848523365968227665404106520948862949744872420055278772034443334783179691560285597987306550739393738751701800476815448772544780879935716490532583355283609499031536216666890286221732597791318344990732810453812479754808307015243622582165364916426666695855819355372337524263032765251453403135748957269707356800167609039998746635681335505970809272777441211362074649012664350014874746232487905590375574026546206769964373715151390052477506703787619424019459166435799776344354579948139151411411863644451338034713285437855493332248082665876976205855794248348029863364610871592727527436224881213780633441820336817705341707261919084003723291338286964062963294051862939040461636381456160845691674451536803621749404726090092549454214721394796465989372834326864068305571315766364814754064999048199423290425010404233880985188108367404449533513101420941785913491737130639267328803958019622789181887631660519559466440302814231177904280952063279160185702380189240829893913608465983217850470598794197744337595934126269049659869837134565780934777965937984825169407488509396806220343236744651616716268599909702912696522095053408628331070568498285672628327270949452900445962138460607933630982794541646228461126871897207274401979059223125469565322266142717100400958715069785348592837987309810878272960253803728410144506512243771040508708020155752201329534374744183541897585738978108986545230694331201350129384272767802393437234244694250486009158050685920989564121276927124904775962732368916987078189051728983373257520665836090694317163726504059647026561756201236899135113571379005303693686821424662915194091180325781724501425408759429631852080298791873891343199061649917376332495357076275837203088751576340453061624787941574046631554178192518024044851466373676949659580960130779938648992067680298780416683255767298313825059894577082721502384259670522868501819641975264389003016282240147586564525892674775933094354447868486797123813708763009696219779138475348425861020149737055125276157478489543681096553845726007973208023724562318418620063524601478612627826597289049498287260930867762184575555400289443991702423527136460682611078704797590458974105182030324366501042667221176221509240871879658144921215499945691531354504342354563497648206557723094808666845031052367136188995011799184716524387853012392258838588746263058117145174133975778306926597459641755268265806820682018149993357024032529787643474366569354655015075907624524185193544673034493903553798437295165354168372250720863907812496268238690990407546294899642963538478127715751107587687077370215801260443534563065133351436717186879633748284201884186945665635201148401446617189408766908884536763678647234436457165036400671993381124894741786677576788760373817100503700208898842465260069401283699456657901109865440473113068856386019041813465695316596213268476377632134022804287400387648396391510483702223184419930460448984065508752718368905437014646662450172986182926400787910985777556104168297521574939361581323578784713753118278176164820056306752275848923547242814733699045018494397572977140861593993266740584425186975449903885232213924871337279511191361725101538079329476118741266741377211336710672972537220836359294774104200954605516582201966127888104448663565733107896321460507075010527767574400384117462711977103391843491077150825698025621124908330461782904717864792014331159100706467154593873544945924603836493882480547592979836593424893196631726407488833465780184587500167901656450066311617928540459717998749454988836220339054578578810645838009782236527599521259252549360709259273819167351499032592176132984170777863113313965558650088169618528545119611662414943328640440040547570232670221685139488738597091769844070268654551028226587557937047472683922019305390174252478767099592337108556840914868838939716954786741652274954293807869201433604258570158105144280647063378185411138417564276263436219510574451472320008195139557746810786453100927493119456800202523542700549284805040426005643718607477544385311560149462188083899687666085051892936401100238838655102157227354783167768782467351935883640210970992472509589218376682637732111890874084321111797808923402844912037240772164544627736069531445893206471047082450047014954444855193334074042576960166394171219759258095036119767415970461598456017746014404784923511615418135863419008211437248302372627278025740135686957268668868752805797997428024282945031697899694764657815638297849813024189748206463223354062510920289349504018098165522159390316024291212792560975493988840195423730131409282983702269045364056608711216611019647185218391577942454807734372670336614898129794914070722192147619034332022349141745327629640804154379769174250707656805995877368258003295981021114057135661521181195813896712835107989701188464001751742924387120699198147050907830088989332766689928056372051139772568173923489977639595312765652938541275388566144495753371239562528872651724812473902186744930161619228613257233756776079859499502996253537520242237956277660814209646505289350877949471717226603203732667847092711031816821843468905558508231337288059884806420335513548391116302969236445385691441163616703099972796678137506581194853618393565144245580050544664951259336118897417561189304818889087638655341054901148212654448491659055048127547617923856363251337819460678298852378047972556338078252040568905835625414660077653649737836935440860568609611233564515070022552039078748508178065095934305464500105268660327628703667685424922708181259711580450544657152168473080790646329538696877181697396850313509823265482904183500639245250929747627866730614133933981953022625149855793274100150405102188482542818476137480720637596292577607369828743422095612215895319265929159478813079172841646618145370467927788222582860379029809967515874941627890128971622323190749705558845163342552495788386855615682985904979619086479190836070737181784637213207486705364544610738029918841796092720053258322885084591930656705265179205841764431207776535587185214816006381798633381004813795938332691474121948993581307112107134878185224874599611863263848964292700252053245303105760986125937844552667377360287837677940613664310141852780729028700372112765570336930967923834673823284408511919989980727601806405129880834858268376697085346945899460731770949088636071401683590069979838845723336703506549168842832427806406502894030480196293777067400235004395688616537893882166457065014980904513241114229635653580779858755641571912492140106185801060041304173418531597885440427037955894715985184555478040088693805845859712169688325504271434043375834208366660928978209322343447526857853569648340000235126296111312924439663411847189171663578682393103989643279771242723494107362428628271679051608617069601175053320962041929442788227809489229524968767550682916715603398514623529825217585089706097758927500676420140712926618523034506597542796681872869185508600776639814282054984700509136616031668719146157703564360874854794199290020932009393634293704866467401512845040625358463953152332086887352549230420595924780207607407682596183651503786967091956152338565669283802457239943250737915211039204844857358524262244867226810220392399432660495099819895154038651811590621371554672646436769174490910918250454786342757747485325734975734094598715057931114383060039642595306687459110157081253830791872727453030361319571793706239802105332030133311204348233598795335757354804113067196175702764964160589760327208239390707979819438917927955708833544558792118976679338412232254642812977053650017185979109261478997410785749964400738046415290623514683940758119827361051362668604169662337242583627095628616385172085911292305717185503516308362888369353247616862387771567044588503059044666158832538324336742681047580264903636843709495599240646190652324877181208683029989155270743328442928581725473154907892177198346194647379661459666053303623084208166885607531593090865129244339120354481315164683105386504309007320757934525771243027619873036306116134813750441914025933363719551163764411714971986866977896943824866920612412053588273781524119452457801107262086392073678554098331991866912132546731855448314626410993937157363820823466841751689594066342489121819563365817283255730670237419244829319664021164819557990598711602415010154455369761613479828468062424633596527134393968883273069569471205244818785475734484968345863213727481541514088965837183677011832217890762696628265852801619194822086275854311847035386568755885190044165181775785727481075494104247374545464737883080561155144129697244085156723106385293878356201126493539776561399119570775104197130258233529819809770711568249376374980470147584395461760381460939563634085325753221871244655354992152440931811170964123634749651230164569782305410547030345295588571247278253053952798082270788010020910413957968627279618896977758314227739002627615093594973822510446524239332925481900270491552418155012582246281520980613725688330088605426682471061690139523396252204414338520978263349658832563206883078548874495407321214989827470731746366840566349978594393155082965713797759293678860058192991664095495049619521280990394588114874617874014366151217034063045255511943029053368102721375242294566136593183188358156525723251496091875950247586566790276750880045244725513040466835433884831198589060369748267252331137547803328265281187947330084683163998601908185045176489851468417129989896158462105844488849907692758491703177965618952349606861713900011962261631207723279941570264045645866244688515955550358675392875751349818300734962802858093798491890353953229822663189299052648240086252280106042376230502310460850389807969162662507685065482744527215814026996937853209288425505912150116683394501516276556120271564024039074654636254964259836849940205825541784574599054478771028906441974334410519977414411015240183438887849774253260260812571439748044768644342833494540649902723473013213148400672938478996508132993178615985228660004018392598568472455834791585773919241278971784484560330483053273124222087309907186096124718544171559971671518644902022224547615574886436678481875693477895086520320195279659289306538634298222134902468922843760020096366614041887202457359981560579144899082685235859430804628673847224571266587338175090769827254696345508039013911921168245476931927850634062655719181432998483574565048810300242058634659296488266843825839645494381441332647903132753515073085422679487470451904361751190672952303923576432105121315714142141747722638447508324830211938587701038726785448845914312172899674337699810988993384958414025552780213957681446074543744071703592830134459230170857582067340414504637191327638625838715980639574632840338893616179771645581530529244611535231538001372791261447248855364026868723984840938125901298836151778862676810056122882311889720986854157827602762724087497199845014784637329549013575854328056657443548558385712010773511030101778740631096689376562723562732452949190873662420924724042332381411964214064444735393893321792737089982065557040407460425535986028636512344431456583353106514567543400446596080382385630688804817742523610219029241879810827479848393320011859865110768372252441068715548563108606180506288029644463530535370818309961869639864582308814771579342665080267277383351417719793698445751139286776691840860692684869266710623909952625683160584586489058561776704892355909058078135307421082289229096793165763178103902664795980596571903885638467757454973388361944571620717963866014082907938895040591746298414122672879888636970244688585305642492467988194811156452446606604542871173105912560716785928236085753185680203932316898959773308460201695460950252022762342330858010408792462914315315168787119365749886392213875168718183821939120271379576651318174871567843653814405039455645252806614906329743907307704387578039106326466567862586735052463601828895108643010006643518168276392179592156486297943570938666928685603611242882166795246082632500267336574812869016646052288434267246607344816535054015203179605261729792053179745866614741054197794116686990135555163890400462509192268839212228533032379775320360410739760372696494573370931742848369270038486770047116737716201402221869085573445558596527569676264887402627615416565273754721538799023045804605433924142859265745918887573830631046014265155971227572843083029043976390760989710620671013772032293005652769799721450237107086335932993076073744871107510575938379128589524183760355752362300456354237802433455041197303031742984211007907588258118536131383070198782758938461535419081040775145034377601205833428697562960403570436671913529368907613159822067578545328777138424917404081302441141707671412196303739209477665697532824319972686836888520310913471132529267271395652077185538386909882800246031928945153660552318362163876885836224381206522021330819411120949579346110135388830892361114983212245719001774413067125767357155603618292321111314934956533304445261067344900705879273950324550440665532108876992304210035023547587352792130669038327122086980525118440129646202409012831723415630796937279369334967600939559235424510762692627479827373769042215115169721646820943535465101764833631041481900487292625126917654789412336110354647246777303616195623238210848914843333008798205137735465923937660915069334756784836032054111758972873703292394887550298597604591733972906678864062799131143391354535085492969192825024120947545137164412482649547173496205392095387934391267381538666519561990949018435685219555846356332449172304292342176022138612029191010457293016861495790795749216066282287882860832408537428378904519483285124112469544610860821739885045230414222274603070627848654343616594841828597021576444753867239464163827164577509336608343869697104827607300656944424602953833896614930746499057640251730334413270540260345159765864313134523634239894344067054787880244936739453019162311042511298773939821588628974599756424668343091484760459481955851860832548166914374073435110113365644103481404959406020391647245454931713091217739988224288355128534983589315445261679365871853063683430996891367291904096237952702494502881593216321658347593732394886113209412839844943891735733573651030873426250852749258302231526754703741123917151895271365732165813084258619190486297939118416449864756192108211194667571325742495980987318474104102934491588309112866539556147429812947220534363352524789677887863148960985668239598486680939705217149970659331682389175895042721144920562427869677331343505813161702484346939511884069047672743282961116301794896374347950254730804659542857791989652228193522046241544860378147929033401963343237291735180060106466838031878577035326228280802244658161025257849073520855127561707366488266110544918116235917372638560926640358721086634072341214503640557226601271875213966897862621684495384635955860995623695222355128431815025820964091225263641354282178860160809462594464170260153515159696434833579093774761164911281541213866346303445873717697804294715360924891437892603661959479234336032539464565165029703531429458109141404599108906397512393921918751567158448618450157194361631116579946942411235672952152808317694138933273911516616015305470021303243308138250864488064928736105937881969075010452026261717210696224320647042062362900106286650750944477034149658015806770176819782103466033609017057364339111640847539355181999364536773154442202236762539874661244600991287453043990232086244377048190528043245423575132076515655052323768484462418122406026315215729817088476329953289613479642768683771317777663773703115064222790741840864380934554374260008282881767243464656667926990018869307119693270044719219348626537095274056370839385240578216190169393230499037493088390917545849630114159319600711096264041512102795192746962793817237247179436937048347318045037390175046841507444796828031973403559508918463772023011780545636901998419370376692116815337395223924036489061458073476101321596153566966356701478771811990179893992828062733617210480158062435433990993676669510496604256889252308544504895512553274429237323393718201616027522895446485528110440198275676497923524024012515808372429651445364720503470699401871943760814982668671517637556866624930422063479642301988792314264065400816289107234467057097861042174718373044919322187268735566028707379428791248318927295410694401815050726893061635276790583342126912433261659477896563053244932351615719846366637582664111262541743759776938614257597493297976667662466448447751699115558940417172972787568968968079654022909972587611233265565460117077098812999299525438028402287234999680333888586281022233830565571564247515612376175558183291254496860629055733217189847555456963621725965818807928453333690699235830765961211566162101229439399916977679647562259289398312038867592243984346826381660637838137071654163962785584136939030745793918948474452556662418706714417559553745684625939360802029266352117470218074516933080590586852542138154906012785325644101148780660072687706835718091654454146652370075895535829280854545425895694137941926523587369506193844837731129827590333711396864954268046760956468443160924353406161231993277506685711316820408411956528233077522200295148255443368737977621702280328187012710520838030835473344184945241274131780951560138935134474752178298406884295967322713635001531955282701043720584676988025248871804933237966627861251414107588995222823450227481081725914431390412723534100721590732092684013057359770846619421111957022624725050466640758373421578075475767236972129071667130284891518583695909695981569471229980219002068455413362778413709941558643206784131098088078566279094430130961610202497011688350835142725470044310965779971033450709196547387883537778085605345146853748029856029574976746368280374661583567343746599047818495976883654622636206830833874976156352976262980501133626105563483235256512486114075793459217843660441134566654653914509110038067415782819414256468245576131474234668239098879705881434640425189038678317928170227078063262214208741191493558501947866191899655662883756703763996031324094012535848626436685790753776686081782566760864055990753736132328104293735785743069837271964040598403279895403886231014347213924066282870459888053427306740886133774398423276806822732396569920741735273742262203178984102963532782209975852002237813130517420766839943177889584133944879237567636527738229964280851618523266046615026319144071123405703143874719830858278327463962018182343078879980959600964896144332034179528686588215003967005835616583912889564699532202841832269558396326374157667565516727354599564178741895034967180199422299973815876092578716496554211784815384608579039444041509522597121823679199972892323276145801026783111317625636247527989214563166778523701044281357847299120280644612579882641834245530643704283117698343852409793968749334734680602169929199663526973691282634752447160142089525094610163308278420796873473689351191154458578498129854913465949431006969601606400383291801402003126039472182365493937713906391280141096245502568200373479505395479276611442759333403273576308159077236786511217694449163576871086448541309063826119327098384303576182385507806231962899715626517865919516288673567011590012149209203634508730156787783709636957551067095166152837427327977622909201412745922855151403066811884242479267698507417418531177619745121886442145540057953944256288061100021814545621675393804934180031282931320473037455437595513042984531871442660926277202629557944370625449778450654747503055575105254317635291469476563656650118455078081561624372352446558682804051835953543845095851076425753999534275909003271722555828804004525419946832475856128029375539812825335256469774032576081874194175365527173472004054605036020346834982044375023146662047007682567054138906702299972523345583962491241568076611503414423458786832619092450681926734488459670295241556626818887523697052146178461170569954263681353362912268251853278641090129450104674749413257725838864564034448556831934491645135234724752306700558003131422445113721133000151357583369099915269533004879470178760475727683483480369468841882059701350187134780692002939002792601019297514428045430858988439554233325303908711702058610071574054187249811937390570798758904897073319308022344264533685467670246164764591331928666352545371020264697558967544676570309724466578481309226997239298955486549621917858869466278191434711176738221894328621562459200021179767527202616383042588357075169275430742594304019084803769904596660689960014053055791782907398608998695435055636480544036269992163300744870319704368509415910194693010902823791771408197085785532837073555995555925068159738752601915841332611635193496210448666569798652796925043435919157031932029090180563153847052954507606426189571363851617330250202014619111942525736059584314359168090047559098843067052289777159704344193786449702404231248767518023303945073592355778636024204275850468439548145970019420360351828651202257011967379441648703801976494251147495329092264162100496957767040030273468789162620257208641358522584679507365875205825192089067575479006156462339108701114959895628492356195912140451717717419445462946124025406708238014697455096226398107264202867878120895891019987798122542513241527576974638433414366194012947225970383690592435525869941120492881382053617195981426282316491771662574063036966540514798854114375131009745618492813115282314841861518052995181838085698847576648581292356976451426171126086867325026849995841623582391687336684686769930743531858010750197953115059938603386923460263304649832297571559596768364046188655836554596177001656180337467148534777298464248325043540980587258399311603117709149003174252200149103783992385105446105552449102943581486282473989959205673020568014962592983423168869002251613010975617182085536769592477773121640516025593224367609120828064011762966065566360755336206957313159614148253332291054881902907987984359097762247070525837090627163493484936966497206199169346388988526440465683451946023344574384693312564598231761315446469694953541706198097859778931116199891614878754116125880143462449333505933759375793620800798797654642218568024519153444824191260801272407238368597687318475010724628427087539010741152336192623404630493942835497211470888487167076732091629511431359494087585780970599317917034186223531065844535667700893369559223894161760156408158887867206983281292941665506043494839454064457141796785218478358787213733977728941225578287859348735875257757313441755991851754895843088953985385024075665308750366009585194936872262813690448819537079018032715012883746388360643078451435295399403684020192401837178030315824701141166316662297518841583244293909493843590744440325736271381915283201107494822908146631442771300239777129295435713848566065659931730405321544386243293042177308954346840960254378432853561683927823154870875319225198458898861311893104853122978168632269935040183829972815103794279044263544054859151002454643419040432768542508532254679847511160267646603160591330521274805951675574945761032183798502045786057684656346904020976394929100141953493410389504975294462009522475758115510665496275926228509310789856109740330174813036736895680776643728151451466044349420758035685446929035383972673758185219732846549196578041323101013706977573535415649941599243804065360710190189028089565970884197368611044903904665979843364575028878912775292196308871502858220751075949838874934359067907359251206539814949231030401881692253208983878846147020608143823978153609931851167309142779254025341697279505760390960837968594330503726880315781132415341998962891712693727429073544070370265679125633594344829740296278561322226272744789485751751541555997393162847694124155477642677091799845010002615656592794848235822816633240942778077855967748727324137274596948629057519822113544439634210357415365059896135646582833759864362881839328708686867637075184455289952239101283157348725884349497885438245305212997362358639065994229791620640980599150929607055344459685466643335007099457599117050968489048475939927190109663974114092149517677201247572341165902653079730101941842725224941288245881956442917867758157245344754308334443714273489244340149439676844993775202712726354247454257942713382964237173025031137348214545575981117417958515259629981948773611227569529334544369043242625188401404219092478035090218379116956764081642674460585819874871577740011811656922448542371039182969728169711588985101471611650123938564361723205637869567959390688520171241751864459884640764461376043829066770055336061625847001895221116887001614036703812571836528649453432625413655735835566089070996645866163478808301566210592803328507077822291477014823374050247825532115158165550217344085404977330361554165955207761953076668856715195274013234316507130489002929879769295886265482337489459963535778533659166206472066562773281243033881018457564141298201245965152935131986999989561729518569097335131273534413714164289643878430120189589818851708487861267031872486887513272896349490399343831284127068612416332826149119471673679444884065074584738471890792095246553529951980248954534484763021324007991842704043716751595418773815913417027336311201339191799076483870327923334380060423546517516348801156914472399689022887626532050401330016347880185151671902276378043687373393541239296405686290778744876614309348493997485480146956985723740494429049484483229230572032075557221577124429877468590216953717900276328739103760712316857368747262443672965429815548005717346188427886385837875991289896174518085450822878463960226303059520579112292663755131253490688003176474701049028339319736601408536309700275378992308889571201308898323944764219882690310828622892880125933998665851303541432682404600462246149324386143087151164963740791375820236037597279222307969845401219468523101522642497183414969688834908987293768616909499126858909983601002127945940961656554968337615085432235758846756128539859445783096345653839263462619577135055177947911187900598425192805473567447163232747016491722770561943219033514483216699016022559052495932893930055612304257656342203847446498338947848614005063333219581150583911182399637051866229619884689180286273526236522722689971322196901550881281680338400520084606659147193659674531760102554798727609983623126877046224678961598412699526279625761353372035703054328401666177610104842162521624222103797282676547089861701421072778360641761247561490825188171406164403685586355771006505230252835621621367698693384203540258430552147257455763748511778114882839537102652329870324931419621717562146932781923181101534080691033269414100712181019135127927331055585155585455425327955197616978628026662494968912039867672202524309648479013898359377480757007570643394064186251292713635778037555003592520049990539712378192090322976876095346813156879448746877456631499403541931840264240039486116829975311779765844617753476033455189483287982017442951698057720424690558275241045599213207600068651788180865152966519943901895869315211504160011381971850118595442842402752028679429672650770169827063764397834722787104988299198283668072563205203247736805633535639473253594957932080411402791199646035024829595504962117910484112858115355012017013543702550790210710958141264990474777806282740290463357501701203737551580945575241528594985855244084582512998976469617126853128803982993646188877018204842239330787049015835985777601895518643449105939293024022552755837484798406255925968241034390989606118440904367436489053134453972596361033472061278246742602247229793830592690084927642374493481194573427216165112918733080401459959010438305964032808595818755036998265958151841397800903619708939011957172309406128498489841881362642813830500068116174153600551349776391043077602567932478962396185354410019190693819290865298058461261171170689662526609610289601634479379472170522745225072173400404322622542344308924938591911554710801182836491274485258621891861508997032181850763312081933435461319337514051469579344765122591875678741696123076688595022626440666128572911172372875174369824078251890810223532887564124767593171402327873489585369340361908825511272514244249366178977480631830484192537882207554914332874262011400236335490855977800197276279865911517214048028060900515052033733234221393746162570433632854388116731899166380079975977531021407779387975077588415255498038127444595876753397929562371957939809878085336358699598550086502243499636005171473667958281826776816866157112457560278154579882396427968670878050882137594135157423751077619989824755068525071274912641712624793973810545689138200229112435905109986439159238712512677993691513795557677252757928490571320406768997909064812538468784909135872146353747821740783533161503218353851881879185814767438990723935849559232751732935828570647822589821572599670664631916522169813157765011924625833317161093432231261980684154088541337830497289350468341650698524137485876428985214807010424747290169161695417174461353442659585592786291937786741651023147181181480434903482998859911436797409641653994913505304015982466004069412041784764993388379748440403377237560182553583188491282524491513867399222036200260009259626663767333472285309679539902447486987354048919007057711478181991554727781001445393891861942403391426919378202439833739175832127102254093464447782360717212396102915024050432179922059272467938518891330220105530761512516195917000163005988322906968226160452706369727012829942752751072139332601245168399186269778817710513974383544977683718128541531478271878909984350278997539125835261242701869552561988535572140529484180143549031949163564499040569608490133533977241669217821368331931601352649943468828307203939517926038704258635857002329925295333493897110779539659385744825292322631516195557695488019149113345791784442975084072218557606818653276012126581902528001174312692930176896501942593437104158633996003378099928562647806060267093539112263417090195454387909850615285691536977936490314463751240861161111930184489374951835907946903783449068741152397512404761992826365621460868977553780274714746816943182893697354398071802160514178857444756809187253072531138337227764601397996437796473735263025691588981306370445748952969312958454980691347287436110527702553792212518588611890031607219027924173535363613534026133123969277890007022774731445239890576194803662630094394456857636362143060172746913443904640986957288347229708876962209462466822915625628644101571078607663657617699018175981249244449533141825016773505609138775580286858995308748733442588566624638711008960334269473025496286981217420080958833654185429138476740393343880202125425874900057040131576142960362091184763941261084340009858326774988638660202179163882426360735650711233857753096097980353537051956446321559009942975701119578801059136113233953224838650417048247767760091725213478413763288045718067094998867464658124682376819383944125029524792563491337966224433561931900948408884012800084419878796129047646082710340118316883073303216945907899626197493529075575092613072026580502792734015074524092179144174456109783372871115968959917072222964380781648364269195222405102442175884246049639489675209838154902560854157883414806662184260775418781293947907369899569290705842315442403638939254029856005935583521773359602162578937142113356638456201330157143121427771314722257070508461375315799037608190962697323151666095689020740257031427372257524310266806847635592694132980507462333619502413996284672844717790923505164525049294742713778943802422551113540421203749449784667179940202308543221364863373671290085441796540734812090709923165003177864199988559744481431983723256925203653118877282341797114837536342327568168338931634263021728813231206885325514226516739963960353817537681167885316683412573267909254227277464387568945987819952445863073512056237815469473712494335418959982310047748329199457407661927241076370425207733774093961178527857417867591484403790336898278297256442822306718523809139381080899215801652657853812866050818589752064672897233836944837172217950799911816454646298452976847500938872054808040133839810091942201020153794856184647741395242393430007127007885823538750078027661589038172578219572408656821852023715921026686139530807393353549157127999551637648139606497236540589687100646749328687438730750987289439607949943430539254288154726423574292681118678626643273540944189430154792876759626733300012282054855532822530817256501542461836657143329002147028645493705657187253071812737048658571117605656337208756878796496976600193886945761323187036735583957731469508229009941789217773926958086837288392616200922671611727063811567224200811094058638474238573737712717199353942036597720152466941966433640054378514414209996746652072286733500106270269958123806157035507534514417243485775118055807659969873465201259550766042593716326843662114591280406766858722978383537651827120347048487207406602526634005885916210242229538316311415110654058909595597323048932700048128129628123026764870729210441188754944257739226326639369482068720183680141937877969348693096381056497672779958108200358592531274910939454511851770594388793361926144346489279682215345362489551943881263409689340053187083572545161206653945494890829672026727907661541542460330172977569821973279691588505746140202972379130945424214901298061488595963700453755323339363827676371714408640122571623183743312503496523192567894786295012582307923847438565165028978614507567994380839930995785963796401281575707323695692343114843459764798589477023486099184854149977689398794820368825606221687544185758608157113472829676180132295005960736746113331142880612576720175052064259379292807966287187149167354798616794134979625234848705921614865263500278104469769112641838155227874074811917174291413505502518799450691099259521026753418365929850381148338326072658007164650077877236785780511885584711165843766553254900470388071692898038297852004464304085328012035590134513324017890119124801572317459792756625874529675723173392982506005616963382609113791564050170857990968056165588795685617133255994612456735908057817190193502487215785071065502448279662028298792607226583129442939080156484192589239606240471164344983742388226152387214898165723622751073665412888290723852265206176383188242628201261298024904880318600046753290459848311337317930057228108867440472319438061015534700409081237755788582496068901316511166084356952767344822125184229447942743079551419244640009066682761634018934354759425188520510930630209582760586453605055198819359791078147098499284321023156451771260708005099156811948239951753024244650409691418614063245902559610943215526999344601463021681177163037854961852096911140413736611441216945103128003218248665523854970228862274294695287006588491384068172117069971759457639353173456937502480444764974234911070288852395095491467845865624547475661189804536378355891529487979551104642758765268613660432729862214217066208588335740951093050458252946558434995694386530233844959484241204490553585759055361052423782528242479000747874425418720569180512579167807412948587465446133061434311828466179651321354622859718987585241402213544867387605617354742037601372584418206783812857243748500338251328561537770332771575535323205171011541422060965856180860050393535156376614914902519158657392805531958240476339176974636791292773778270427262154422472075463689297452597879229432864791233380237162068571618372959144423411262514706438003143358228473923147902894886202476372797706831006280503293727926169895160252051186217239993163972061536791899865243345909869832514744777040137687264554744958244287541725276266812014919068744482585385794266822193773481070686407168115538540082859998926243144356093948618981536019030255469243949655153556710599063679921445490466119160199837602031104429247757097087963489854790758744119664743875040974780752472196195019130799540238699516068856970243616059151847092918506564713303758527030620893272768139236765611858919719600638010662573263592892885794725386924794470440012268667810483190962885918946714964146854823194265477345752479557145076458574405905418597445129681563370447585770187690103932658583547587560896971929861959518096205358417626282099799097719753569696029552092950960934005008700851831750817257143217107933902958322341560182012588346233077700358684505760812509730359451831031960279444997924215358667367715582515826466418542401182016783775043761838742945200097880453906812462452112670685045211380896589335306635708313878725244007422414939691317564173725626064877636647357611908971473077591713371049279617847285843655707157796905441950733450389986925078913960576353423123983436151412581186252496326386765286103940867617780084114713693715782768985295002100317233672134349099627511228572756997598108678308429372632924310191537979783333938408487938710925505235716046093032068908475705411180838433303860884649802241003243608027514260499657700219447443002369674460653588075573804957602835919001457262759239294700417757651937951479402460265163766859757077124520340605767928163899196467179852065214032086489864152834677394681211678147153536894445147824385246138117914199622098052460893489588512374293105866954732508436060580820103583509954707828061510539171329353372337134413607011415957892830447425978941473914572857060252839299141281309197492973656328406970147111435731552421797326488646934129990131457276924258826096581491309188138768304298155421628526342023913570650390274115486508328324659982855399126303357164073745585918842348227788481727015492063348763684447797146155145080952187806034252314823731563584129058563147506407284476824367870095294953716933339382113291213191905301706984752960483622124356960652459021046788085927644831448941161222764944784205779898556172681573343249952186156157506679304644768742680582285901832657407391540426871400836264338027151532593462275116875930198473228180919324320368447897855141761879763429317841100652190537959931920971616764763512133159258761377665779617208129771225513730313440071071943987721111410018261345353752247365310264455516105032251695129947335478526044891534794695019160916053586948902358510879770305712444295705868622594006457116300736447648602214423200231871287653055134252223321520673164297621505462295218000192156510192300690895569801611331538209132722419914653074450651444624120231097434037526933293665961234068353468432005885049154333004395871235162005466589983412360529708475650039429972108830924959575731713770510275188370936099102668752676224927473053345797989205902997289980514603767740890686306817756726989630016609837757891024888283499979848539181250296675595266180977232831883288947970563303302119204575838690203152090674428453425331158797399012928217601716388221160774136934416378416995720738087187561049017304973693233790171513642507113835466006468413025091050963251561399676609211626651976260825410170406962090024551504516964582232961658120262355212276277287049569167873286790390530353349679665382137830237830540130752580648130362207861491699098608764980967492090576565370167012825151692643055585395973618794752154257899496376458935016617303420045929041347886986256313089119959608488205570299776660452466925797441534358653470315162697507835970399985015461708111570563631779806574435392149521854782000500096779574802012917046770374545621557772272540379122767131900203780069851644941633647632692476603078325577647805396342942490594087356961949359935086226776916641838717927490043095519397843079677214795707133976747387561007430059857094540487104059814510679488314949040498910457296813796539028278912557628231915848098819541235224696352251029080612998141703117325526375629907677842094047903231889664757781363523605092955641032651929333454413594057055090749921276101427498871879051575383289295181545012832546759249156245057832587396161190610335615277931923394508549119611015088343242168243834581354461783102360951502080843910173214800478759285972180080286321649810462263652814057208857406063770709708584933099013999889517303417201602646198618452120068256910141345869254033195094903645940160843292286200575282508031091147225841138086658101509444185369914405082112970543780122368918932765404095340768668307223206086891102147312204240775460530888231801884752534246867459825787623535020864951177660522532829156465216301120156831513193451370541318672728692503413998405556812388555971866357452279357736296955577574997288195893462656052900537607164226950758417572624276092079935388006530815230083464254496658850610940080249811563414445117269805045602459121397827207713345900625374647868723825840144779944144486866661509069412962865949397882952002745457326110893952806550124495899313369247478638642950336102207720337442668815221528848859652381866965595934837337816839610241666143692817611949627995517761252856057302119031335304874139126546656169476317912447992001694564003808642584255030640262863520540347845765647180448604059002455677067974971733235793458835342345054175514455898175624000232763985516234516435532447430104367807336540252288313456211891463750372353167753818963854638581233071480543940662665263828118365402525395655656763091387903414588611895205845050575906850437040630771488425310681227630843975876048599918571515974133594477517808151109961759383459015646338554390013753514828993817007641462226765428785863411751668117093379133606914146030837765298815696922145143083558701634833174099756676641490055378602171641385050686868617295709149099620642599732401332669574695267999684844597418868870350157733733786142516172658275030575642420633080236684087836400505715438115412880949882367038235423736498540425926318562210924630275446041525614070501784756339198680003637618213100738596595332673555295957330034620743045633767595153630085335404047517746436412080656987467756735421028688164231674689622817063497684535273389824047921190768358739643411417524133382805023654814694854500720677848731396129037004628101459737446100083290376432572151646024763453793700327723826218652768956798588661687646861468676214059082422401223162686649878833514783376628794587646266322407493366320973090714584345749890489980520288797976086923624074448058415639823817084896960669870210252755927993289519321318114437959294211555954894331606993402503913872471718001611565501415987482998216774904546239869224414283171278305256573882469434548979976194180421126206926215370009649240624544330704192507686753197174305223618895129719475351624043483670723101917367454029312776389295387465539080941365560953770700423184136567273449528944004272933926082404168116525124798079896751258530298121027120316437908399405224765089313727945858875630715390844747466404305736206730402950620291417432150489338975615643319160834665317525775861177256627051298566359545673241132950612561025025378102976896254736923762919699866814246838247754256201163526193985667122846363245344873304783172848500357176137077123265784908326604677315064892660272660527984305761745461460150243324472575237961076384239380054378535068820589082276486158205001678161086902285181951637517230160390374188973909928439696593275325731261909391771012626712750250262681280334742461256310931708449603733130250850849269030512885580266871301965955961987800327446108918363312446208338436225158994106002363667291089623781875488410077283436543269054286000286502490382160038076395032740760310080444026921019825767128783894160113959632019455671323270699732433410062594483209884104592237765533068464278325450499163345100755792926288232086256537403082276193196565544322608217245317280041722661630808819556505821100773365497111461638494953238043857982196524452503112027543191230104835975203404267694544231856347265722909902950215505473754431801327807389945017358298519937897832334619868047008449510863407142314444707894432104211734685425000823283736667424397098973796517843962676520322976842167927117394353498734372773098698093457760393794828872216307624118356744261815995284978740311904271018669933341902438213448196497472876412757702918624637205911472666184790678996746400710306777633400001412000630402625394488396738296195840503452666048968408984203060461142811731097256453162133815081336988780359966110371387353929257774236185648909153967803301280819944026958623833918254837188222750038725364134174745112245177163047078814077913214937139320403814331973199986098460656988790739860758438045678033284053895909152670821973379103528251874754938823853624651610739928646148286717859682305749885974073419728841909527705555344181777147835810877346881855575081157543524762554868552399399554565253539569601748417948362244467920193065244508832231630912829871655661103970396225189425467056917425504561519958613371794910977924688837616220943990976045694387829609027424957643860193581878973870029391709361818304381680319596966147163537519799448336877597193960820046565204314520249856006201996044807859059182812382039097892194256756493828351157917694089454046748909480903614669659473109250070688349849418253150190746652737149847423792432981518468867292129497214289892514576806311446780905408813671117493280697308523905308180149197005130689966052099747123033466651814319986454021820352653325391102479032948534310510683746749481726865041927631006907618040267457200899281106307142343357823851198867701124001927933118235874050851589149476452019396564903904894890243316719804904543927913323508344442123648344926933522252638521133289960393182069727365212945841908235488679154219123072016803074396230773527731152721143735969082125721374900948558256490943958337661930614960234381802021210541234261933626874174221092651575140418982413899689381672430095580899588953844098370786537334588508516526969208860858311575168634641054018951467784593495982780827501424668582760476311006420472653043198788096141388982209156974974153648470560378196223087815394501192197234976123980038911709577809785623318823847897295455960017668223056095104495186893336912441934095850431228970691600046958512577282483167833111232191440513876106911367775713054947964621043134327576057854136674481813357741480638734029946987564184501038867577459265906129036761893114632208913095809329640737429471740048715024199635616523464047520137857241967784490262013041827517198523054839097102390362922343685391929047516656745670517155650906598989091764374426766301998244959911654938109405605086801331033604365796155154305156759961106973565338528614319929210648521719718522793236566956502776627080806574177379755819286972125503557092849904114305283586596706244555369521137732529584299072591431381043757882597219372678801328672881926453914755670959629945453557193614381844611937422922206784471134525860330881228265065416585498265984101425565040306427835446213709321602015239804566050994343503541665469612543811609436475346048246697693945398778591194166083888766392541200369151086276706223053183137952984018042076391085510829525260596082582230540691206853276397754340267803320636129279549705603925161889104767860009600037925400027027638330825889819507801007119067617609767753540627513753288044391037541589992020423103262249070546759973160352910296438681577392509525218551851900287366772096913667768264702893853890805184523062965076304166910835749592652850526946554650193938091824770003836644934076312289139297260251162583747106220292884774264819244075336596791496506704641169416951513782588088519533674810898122497251720881359176573145694008165334235773872557708228021778199329095442272742170919328020199398537230025521548521028347388731495523750883886341014572619587358950972934377047101703770176938771051584904010703131436404715177076659961003409026903336519525670264691190707397872917513103777208208930899404523599201616158494186450868532701085698126397080204007262270139501591178649730865919662460407476935000216059936496840192357704614260946883929864743830942751334885146769405366588691526551434224461953736897780743539984930013294371687837628474127789786054979245077515990579090156556972804688105059833576121120084672333455740927625342572367058254895239789984564598993163689214848770992766330345163075788038406607907485391129769795600848865496338516400362577793169945574564771295091281161132493558659609158878686799478638388863940936004427122366259426337933449404936023759494054758203034718199647891283067389517773460184328040102738804737525990829944605256965582517659663002781970883201769412216239035378064019715984983432694658018911469608646942454730148684694031241493814314293338310911588332348005519496189843700608461961443777038737490926542198838912129100065900157927864763822662228376995407726979973656703145835869671214930091889172456166175505984925521365381844954327813033362269839394143054914199503408949636029273244242414040900073379268048472307284474053588601640768575791527904306923647520612923003977383043303612585515538010866017366022580988541722505756220835462392466356391816610970297112429035599564831358618614299407151653092566244446951789210324228552241284880343813147047502617371957256047892309158603852695780090824609203624931817935047936167257191477266647191603108816636109566328486780355949894496047642831082804802813165523298032986292919430266076339807749448507285310937326284386785270235876481202198221317462331997156532319137379826905364116087166970973387977311198998868829155158043739975547783778141637123368314176720830988396085559220761010239357523296426310207593362497719184812897607476983130656610672022304705394450217013635047011842328079220565055455648733970070451678187645725201259803199234734542475313425060517359547266634329108998056526014971059625470926417302736129938731813238057991401071947239950032336026348345598816704238765689609314102960707154039495519819757148000683314795846643574055422230418810454909410093082211971178255509637834418401252295917828889672014384750693862464096520908978398691582832607038991227187220580444413931388878449443047808516612372814791359828352939865284345479682447267519114527038150485490261326219231777172183319469221479539869878464578914531703332263981968735148775845398951807999435531515249679604415540931122069584039829532640334161329971075223851781458025453605622367483864101816722318623056072116201513625468277676984776869829744072052755271434842459385158175369091008363689794293032692122122698769105292056393771863677078670063617557873428777717823370932608668592940236086053576261915013002350551121739141173369165987874385592661624730090025573461682833153965680251119627504409949431152045956261975985195435721977268055097546245407068483264302901977019760185435976003989632004327895837707301005803631851799369644925035389357714621625262975322948556672502221509913981457055907506509706467304534674903336018989899726804323205164149619944807020030321934130849705194565668955328262461679143289330472769396350792257683261749926716001729794912413779707573492531546525248491314543661979676904412460279002202651659639767348864001530137420352225405087106565889386562779126182149658554484632710931475391933243707366397056598319545303999878555697165125584373280933347136870403357754003901092459279193589646878945511079604751310677645171032765935678673290223508371056587960166646508743604335729846749955599694315905803116107837077780966803157853187050038293138476901555031148733754920467776326850088976473397535555612002557600328069691346939569506267870527407271567182186421416386904106692110272909005588531398580056771511420117811775533429994969593443232601799643163805873463255802293736122235864790672805763649970274446200617066382253559072041367301382078981135548030403072421419886945474434327396753056996680728374829321311769343464382139470147690581748030014154200277392936673459418504724222595812608416098889878544773060498124632822004691193821331702876357649363269551638025545038120359338797937133714376257784439995842971731107185207497970702960247379990611282781005965736684124513584053852103229329922088534009248575320655041032176835008841579043259138802015538741894521993415718429758309496923904245677973782304140276799245939057532789377209195231123702104932667216548684289458196687845830890723269433248010980255811239642256483418359629201748359858494057839832752713744189233768835501262978350360484559409774554274695270277895951004654951895391194425494319036792350759367372123741103378856054335334591840290599311987870404441651087101274929426118659741881399317110547054449255577964022021342750455235689383319876388429491914121088747346613980620377183265655909455612446113983494789485649856646204061082222817989260901168726106407271267743371172390085406958675021412718208797925501360274479755612603764004504807242986718700923386298013254207446995401798010711669550139083980724125229547994292652205077401939909064416963217375383239592073201787886204515285365082219042729033325340551910877983768399178301326024605734221463055100855200693190875161880482855601216424728474632619077626532835751996325234518529637342140938492383305729576765035745324903734791025195651567043225921420887095353200031507905688566790168014095763447433172570962347029458423671557372462497044908311424500277563304766118709826037362393190515287149734407719922790325116446577711941469796164815568250222854007653682663755337158523339463719974283150805562330651581528972926523530228009221384931380121000083204885559928963155045764409828771865863624571646532151143457867576509349816773809026721982759164693587656335274410056363201169384996876138863729420852126036559573877361005683480489009496008405899895783663614560539329979787921730502515356437467304756491439612110880138775444335759622511304075053762896643206604681298108742003332642104475078617917663241814479718026591431019913162688241664285984201714620246324905897301382408969795559970366244697062061304814784206271800796128785338700478164388718059081745864370147513532294786800345799062689865080416312871768096070836013697323649060217786365165914255929170114029955811246300077538561584638228268668647601056768710702075560135086398863368393712304365147075458327247969154001018806539888592462241823524625395281455793290146401759122298526523620371992107646502670738089964648974667576872883550113525885917614452058268371210112601275197155661153448858258806635112897129173842527958865364891006892681115369336650549788588763186383520480165265316986023296200174375765022509397782967352983882258163454881537898857129966130145402587941869866937211683961305964260035419484101399945053787395705483452415763943069318553711140688797379799146521123043776349657514416530229850771064908754026617083471096130699306050635343880006786309434301131296782152328913617075421745270636806178858988648074651611113605323588196791860289246224709990290000622204174093582444705525986930041338625390417669605129223510395553987952352702471153444765688458215082012517826808432378064590897718958126719275284470695333493517961058275203137342341760944741589568554574742561031130012007002279831940446698193733236902169199068634242517993145286731525432852032640720389411653201576720063724546616925923497681463450168774550905911138944806132604658021919253699326900100555331353035077171510999207568836027177386614708793925942944794747058769466523460839573959654364068823308018501133918940720129981112980317383583107793527560441805579988568803588668879953271382329532047006997473822488798678672484760434436455390863501232637102794787893976246018598163844860174817192827184731315167959671774398947601683506007353239794192285664338828157506296090846478451909614213353344314974657286934182191571000690506912335895139294498693194497758144187136255202058103799951403020312852424884537651123330936120106879363638896387076902060817659471204035651987451224549435907692868015562639727778244137061450386573451147493031540138050894614997125780935538845920663835799372764303533375247750994004546895952140547731818801672372503366366316887329586446725864702721044359090404868163152773112185379202505390940122691900724717047266211550696936777157906967834240528711575007684153905895324694347578944007175541193937010483348513330782161435148376559502975020482418825466734658147390079302175950941830141304666290084179254695170111521955982046299748241999042050158648184834307673163126338546153861095396044032445084857502941781010711529685316807065056725705348828500846403895264591851280535759102404703033123401809094996497051666389293246161132113035890071407757386609895714685828607592457412321260070770336664509476136002241526070551889792797081766975402151988768152802553339756091137402684153163969319352498015260175582090128290458878258067106408190912951505465934796223632711072671935595205161825425565802670169015450903545938843074301521007442148475918660390477449890893342532224961898201409494599369526394796552738180048312443048706913741556162205784698161882193381740036663309408285856031983646195821505150714672865813919105378227397143346761286477647984354144974123447883411334347928295060046695574186477104936801357240396448841625426055053911025719187430147952133759585231748955981280763618759635183900975472069605102991373409022888119892608640136161447515410838872517859135890852562764249736308539188208344309404218734294495659473569202341946956441871482133397373600987479168633625475461019547897979115099075156897878014372050630875412557119674929464890450898919051648826936379741103846029196787656006492837189486578523409835074348677275794896272455330778006225108948636996202156771976461553634053308842984682274886341481988666062581732836262000192620591765238263605419250785149260265705554214722379583992093145416095313641793323958100654019531971703018528215535739255996996552130262306853758590450907984376927219809216327256957521528019830324750999777062897060336140425228117346170233901748122329898190690007825367109201283883792279897011003735594212940860209011292176726554718495192783479831729617340283518299196822468163258368151709928946527617997691048296252459679106788688139880679611820658576946542502647087665243818235742583502893717335637369406420665626368764545989738008135652381632490859728865563302153897879089219436982982258410295243962551154624824629025900614828931127081038891406941015433520255881470271910741357268349943185993267904079008162458970366144741676022939482153813024406375308562597693368787013830627304523071676027089004625772261622141770489375534366941514591436054111467309784602447641350078069559897368506525835054156895469906032565427404847681136709503670657612965071103080698891602931671125558349273594679447622908972753125464840158155819925951076582538376452776369959895506130885006053720288640381663553566214354243616598707344250272988325361930870103156302666124196381791181404220052884937993586910376953320603968022493512326200843821112993195388955570474240366718065301994463517236856749043175168650935892906839667025413355072303308871943827603626752862949706945273288657262787673716648410079352202862166742309977454644657722492775583913210471184940845136312344225440885916975236280657797477930681897372027525845471715085747489277795080300517497501365690244157327914513927323506585667036543734448274268725290438407665493971976988851571793220008616837283012567192848408868789807536010020093737426191478322319168463486968665964172779668464518744298797161428217534527276522097975368939288606227173576001399117312271689923531561293747969337267773430600238561754728650026253826377259924848695940970455534728262535351716845817815448264592247480281315677929663345945589347051474407391363721885854233913429724266505662979236055111632858010913364749841910783360363357775044273342735650122636300215183284535155605481099552612874393843067960663158782806763629986533557545457829134688600569110378528100075764448224754402260923980573420497478858156207490376903480809024186518986662988325893948661094909330119225157544492066260114808949132251738426903015169759440207334073875047789908586914547748329667237980937434369934523577351055379380508910877173642631189153459153567930147806684667387527394509402583044141588939387000563905827270441330898200245672637307185065002069800849326862257889625565410673667862712328737761262504594771974446948705237058783979933456299065503709630244750573543269180776406081332758802854323097373855141338330467837464549730279933239547388868855330006959897126154168197444191770596014657186443549006035053674888048596597518021626606601239341482707262140212210588243288887533091966356870939811388501686042830582927091922704654902911952259645514860255015063240424523751474800417024463464380902722044917008624731645702060381417520301788112788351081126371303017076199351604592465281396776754713519902786565954233100662907862846431426904659831806957987776215923830143039417090937926471671345016945528700505898824742567533248175677267959941049684718169086860213898865276245791162420938286704246566467335715641374725387154211051037319315292375344194904904813029174738732149419233486945653039620984900296075464879617432951046006842359495159021659820146029653619953915610595099104169962423259671014222351327389571093383302319575977329721646859764036106004402399582665569389214051984760738964763644309455482202744134284365415342409494075727657654031721200032345323200863096588655234970283672603091151529655798855392854601687705043679362815638749683986131213382862854525987392098634206241880772729457085337100554021636765332027351496517562958104320267814040342363504527159094529188458680126946969627636520129677410425048774225046819427369144659415315905105826030734361012980739375623861289996669809318318212390570771540678065131443296719225747908948958115213923891277037312720305314261686105918112940987750002900583330552530639715339631900653296055807893682383764460663811701894313966453337518481823393248293979206925624513770713083938697638667808614513531619668897839054139840914460065278959718719337097202646484637790794626908022302729624221237556618854866370126772566548879123282489304846282215443932137396180416870252361309304644069622957219651630248455664489594274172453911343494452760898464553955348620464030673007317286200515729078162845822958376731700946363567962044720315911738650871168451621170480635904223645260729004080727453371173519970898164824129088762810967597083209478996988931942160442625554248378281382262632764566395583869278329817180842944997116741831757652589702477742964965572208025804616048543068761282538848634248283348332197923466264748121113414565551758831302752104710736245292188879721115490032463526212290583330737372681954746018447851243000894960295783060634411144180019156294969700831916812282953402273425681707685408426796374883118192511685836759647153556269716779327800065638463345719363102677394509932109394231504549887648556847021861658723955058460718582693141999967722999638012487756896902337030970125327221083678916247530263550125937252415013093328600360018930229621780507346930225953514936608578385060968851001076273944993021742757056569909967002948431923701981993355308910438135049579217118254055711825078447285662317686022288846360301652230582157016582000790737575849383523383497586417544510856140208828790291900380502037707091044232294228460799995568873784228611358370765679695251888580251097417945037705152260277672424977241207927104381039234556420937720352749423330721847897554283759662547302792598853347605606590928626380250267735165363511020584061189099571762439796132098190303503233654513701257095925619981179831385154163496496330824625433732146906098804703803480754765695653948511384802530557698484216488378965834185898353075076002311516889538654365595031393351915419456263964768073832351002679564763273364101990672076379889295902268299768955337152573442762601774222874313483217669999767253384322955801832132758597650524652121138545187567643355765895334799881280164831716322622752613404987898139671084382866270008437608552609650548823046783768338509393906599372074529054056562808294506523004233572029632847058419861237923230772720508418712213037580486279402904490575567603648744455406255381708326612878356468252069043012942140195548034498124559077835825879227440874917392430530259250737815161522713272537516153397001603683646200858901340071928157972117782853697065263618172104824876253649113506621781224923720044167342438743834132731415906625967158760966303251594952794054058656685668826439011622870817366935484253800409204073518805561585319754217864711113732388185973606910776430891398322560372398451047947493381957703206983519113192922054837322510706676157583333571901640407441893923893730833426234257552240877830130308180795793042073817422776408634848584899287496482496357990241067105781964597253480551369769454475882226715827497635998941505777370858077685111981965216334382619693259238918919794393987876110461945644395016553018244429584604352638054627667626057045353096607353327631887997733272022046472899543548479562468657966346660015768675563569445041252996460388797245043828227479964212161418276528852284919317571933698314783071219946684369170416994950317011620121766044331116656481583130922458570374466838585012629759483081875426498953521577712112207530056392953443987315488575987130041312010511019451538362864807344350765831130559130777142919235426036499415092974487373142102530132034308188910811470892782734876708903177248064911429010216512053571399802417281873679937333213448466602199744762291777553042718819182366417156250245155333835108463248090854098089168041578148592160221663170670432133676251629046486094057935937696244455447507386921693073457966620989553925170131442294182977229997723168582439539622769678073074071679046806635495833074306621071883875191573197629591694293317419244705795896957308029034480790372682705112521699497053320160626720970641894996894788988978668488596125814152350625717552902944268022029813272257880362797214997272475146060406696937212687394783451855864435902143020002492279151095166812565100030765429039841040574564888142447254555183925830559126253940408611312691522770382320317106764614886299891139545284606202384790406283238187967894519828474202242944643857253809685706274085965428879922288291632919511560829287132462230565428627572997386310573362207739564664233077769017957046714384359719376156042666398749808586189398675508849738823755015546659223603324702541750225864998656656521297191871109903576051235163747539081770998506539712126075260008495197045218766296083101345325342225143139165184126735432922211432783628880734502423607830538889103805571368272253246921641664742011615627431790254274570171932547208089230567310868752764251671776709034796683960336188679361004399369263185679178225353010939704732142165591373052645663292280554645061726775438441343551814816920119967803352922813725882928666428631682860597494660903449415925149749432232162563478366089176815659585645243964171556361684084211233797685444814577981786412132257826884972118956381538123288854496517228583543729030902753688764784804146771298597431297535789648138184571258644522760242413616846102044926432564801956472162923195706090446607044011254050970810021467843139569669430279438667112916442695958409182331791358697757460572649535545567348702939616564688912608338560231814394146401107460935300185026923946967711243741462627681523466162032756130873538524991413516167425500646784761923065100088087675714099494597524280209752912723344630515773268919606110183003841533837632232587664652731682372778124814109005614414062433478450335056690544391588478792091840953348463264237690336060511745734359221064304461521252158748376522966953366034441622101315007151599021698491358377556725157572541359662331867195149352912959542623122641728178821537460666779626104169146523009443578490650666869021074507835082451649532494015743341318540473215150887781033680561655579178508217627260222559735528624845995630464650147451331468231241511632307170928706415569726157806897139771374119339792001334408415912725262326492261675048127940861322223113863565699192368827284402715833227647926896817091123657260996699818729747890247534297472879469026028164619528632082059241932970819867513388241468235426327290441746293233108100705881541605176060135173225538210952437313651449268614591754539943221266739592370039030094619718352055632246031898491239412290855881255473448297748234968304030748697399246884901422185352916330562850151268404308769378974223257733304507993998965668392155877205350276283714187113379175081424386637170648882094954753362688811348010119913581310697660555438419427585807938400550152987349211980297741213294646573342593667230338096083612103831783706189965169009336846574902283003833796686445969780216657619843089303025324991944584539684580961960139745358119539386152354095853476245372102405448816397762178102666479416903947082681142131106678416697802646528673406683128640080630036452945004742734969587909204444800895476363729443459649735127874459157262447509274770970232135157177918185720331806350276024851848500331636715647878314563478555925549505427627336025737699689548415583596409105838337481115157128649941617454713116184327607789444231101472662811225506781616397422400111767442050477963568240164710116998821436128461544508720702692612209280187611484404121937582192738568789563567194974168451050312149184549796821302054479049392450046179829455499133851035476204638790351696757183155681837746293006314393843520204482933228529794076270856049389055955662212980525467209000613655313273214855116718165361283233898330694566801893548642090207727220314573541303597711138108091490043648741543655694491578422591886288887662133224459004151990504592324511592868931308952141595289278789963091338144708179932092789660851491264382186397075024015567899446111331550556144758577649670897838025024407971599382172904288517818398019167583171762714701554372207099787078998066299239782170652674261347677798262422220461634513782919983619405492267913494490553672785283393947252873512480607353427320642957601418625701427436692489317001468021872290140948544344760982638129432113180841922383417629288603834915565293133685902461552309698829765890300213784615546900264937224860462872588317485420861072785195350583317334471820460468566551727924719281072520380658547106038145557569785973256675006895576502535085882692526253780658983718617869647442850807334993824503383536486884503473992310583438136358124750375912169930200790985306253280310975138603984792370033445131733205354169911728719795506965003163394107554540725949001785943704902580982051947458954477577602853925827986998196583937502488363701483617760181639955207622079515832405262735669831378410416279212049086275707121654883383211612091170328380764889393914727451651047013811659251051311899754144164883303506654971794913896522026577357276232763731262289166133848376555146197871588784452958319638074875597140654944972293336558237975388710785271185991350893186898901673679427151520722829595393629527595002498009916666551030501779240441880562987780660430972444140883124076691960177726520110246537325622490466613706355093157624891241758929288565194085667426318022649761749401168257718439461854131806192398855758021956074427544304971142880988475084517060562984702848853446269167080807569490055621483947242570310676894810017979748274763125782075596612715443322050055308631623136191917023318265824410695285176922780223763122065100676647764114664118552103934324969657073418653058900418955772371628847571345853489529175036236223216128105351586098848931750841827129232537886514302408200857651027339321926110543024400670055472050050469281831831058656401950295613388838503306120801775664692739422918780968215587790999119107658887681595724527945705414681962980116811200612100067761106620964519441357930100880754391846353439666400412474787738033799854198047378775835817704151342753836791237338915410768382268632862921615458291630977520848460425582830034191634059928730887950247019982300911181174687316509510918442753050691584748114679979824181896414076507122169117642783059718255248817097640164391979860920119490376392197702419704657091745951546863862862793315187759326727544941293522759478503430712768490172766321129626550221802549802950818823956714595317726033807661548965860875469188745748929650745650372452261782316812239251825200382246611968165713004768207446895309838601539312426845584564810729472744828202080553119943781659906921437676757460075807992409658062175263223406901710885761903052928039600067251533625540201451170125861815712005180840448532216484064765748296507206549294340192329850254125295540832054572406364886048940082132723703764415128810106260041616758016886083718993183694200737421300652164125023429138080099894594656958700695240681272814722531208534774889151236932843641390632349947845676611264142485670204110828232377095928711949312153264239965533183544130245056197017544683161585434543030024635522338554999882188951133087632541140747800303460682845206733051455299449569414008091604899035393965698333556850126827969705873438993850622662999244281084092322608408684959466267727750782109737341410182115024068945584079796980664146635354622453467121839067565610587633828169785908381863015655926986271095362822670766386472444622320390958181821061417114355692899969253432125571552497318432096753752760533924520525745817081745112028178374933569274698014847586268499798531732931686682661121965142331026152122529315298992690401998231255170019161991672409054588549216712078173943254250412791519514865339978081374783117113078190745969103219827671804544491373907132103292777732683155190372120525390527028309222728409003105817258746743446686784700190411902019106135294631158629326127784473827752988268330832792852217787925734489890016684437397157024144107699209249532195006872756754022177790952301211335366421995677916586440191346078007387301934992390229780422429612105651506176406864929419995611214031680499283258482787523740218626108733955542045789525247876288644016282209976829305389263984866738938154157593621778477296591575516374022394263502929157259325420671067014458186733157452728133243135009037075253175990932238112553915074927225688119872219557463831960191013964349308862087210665808916336990734805803687319114055002599129880592062410395873504801965330811251179127742130383331383976513050616016042915529835941388026507878291456063941124586685695589078181042440056491405384514177456878425658956388795888560336255890412988749282385585077811365488983322397316624876934733829738943850549584009141104678833030133538727599654212772835379698101770075845738425282471637002916789592666592122118558669486298459011020711602766642226192838551116547758645340707789662288523823776492955491843089024029184583262851352321784821083109888754786748450773548211484783502345558399010880572701206224169404554548065875933273799930827128868807264463886994840548420212367499269965310104091798994520358439278560791760516770445465434958756321643520982510127740298284829320166830431573639202476121935742060248770003980340155288932759150931523827910109974003222858563475124364931755044672579519271993540938131297268915143823375418747098179923732262387334007327852829680638872300239330298538149566984019266362670491959485291032537374755567644188183473520854153033142131187227263819908018631166764363054436835132618633352282050910988414939526873473422049856940977630240679764348417782053745409417204204559168806597885738085447031424071118093447471701835613071382601512728258737011306336132972536691305716033481543488912378767172644815832075411186813591165751934251319291486491918583066639862777766938610513924262751722328191929664333461145716732270094697816221436919802007763981020342943817654350996456898937884378132528044686455536076879421594513578043353475657346947984287176546581461988851378888179907845112907331306343573102401736337099903749037998146279981006386973864889750076869599100667784164918311686015412438330222630699793806226455864355956918083153585497306233834683495126364524151896581539560046114514760536103199383721679372635184550228820828213343696608479902590931958110871980997655325163612209003121687905171278190666429413458042064584982137448108516647495133737752956566448339090543276878314315525158260378184126741785908146137785420523495568739496094567192006201529684205092580474240586048774585711846527981929733141003981669242556146754388641205669401220814559077189836481288344535993011086582313210791862669269434086269932536316334178198682993076189282901419925616307167812244244901776430976558751581559206372522577224299355791650702257979757972079743104634125364955114055525856336520644547013723178379985893028555138600935857394175649140884533034429254730274672685118636503261871201027293448992065912599012194162783473500124269636484380901439788798388040217077674228074094625574261688968330939765882985258784199797715472677611507868012673425263875253017811571544936563991926177614354632091126728573151417008659131319378620799747468098205381497629779384538655776823629822248108638221237579816425225978210960070156762721750468088504332855835594989776323795439286508570669126370596549198155293582974997485762394169704077537485890679769318137128647655683382632529787217632321658222647713989348934420592544448911761894555144551065628946337546065677951654348485528886699948912088633345493515383724897884425810220967314015409099486741293629357082258287746995368383101455016900311892713633841491509300591434742594938284296070667817833769309703202426069281654611210942819702559002355060095505582267405266109443518709722211177326867686995852389324541687890758819114710199674783498108000832289447718815115384515659553055155763628143188479955922813132343296425358710103194653996523734191052263870481767082486278502483324121751582238958990230397702913131366219896847507664793729752999241421443951653992062998866677589487286420911655603466560059430808431723216113802228746182912125015770680797716065774203852629428170442602681053742346702512451692934280326370271638128826442133726786257453539068467676504840335391663467679377095022149904639588661137668014225448334190078453054402079856037391493277554250345291895544881240883703751696909222444988297242464308920069400755852039604169564609848895858911069757059866683701322288833115893060189423745153214238600856303713537399030266594299648282818898154470403629438168655150283357324514238702409367213409817509594593630532755564229175103700913653589486251842733086697435006936947951495308902600991075099064822406549919901073439851546781674707372711674879702554939888713329445347183157484870095415940398773936200282804580269629119413629989715990121013859774164837935431462024364454030624702837438566633447453127160317388135894980887059999943473262733362270987532384273827579469138906028443508483924782746520441833615226048731530501857048772238387399295024322395745998458682094919157134643572075601720827680814401865940505126899893663260190092987280311786049451574619516548462579527771602391115128012673160824830176712872826344652456661101835491321488168458290638211039231409064636898991507824517581662177309545747030675318221413968299727299222325857468872704749822377124100238744309134785097922114359550027101027657014233903738046607404592052146364249976502324840385497242566123512587237431063588448224452441374578630723479075563014387629068287670079936663108714831137206120866925968623335998957712521205070886442146170093647409441061286790505232686397366909474227357987928694887396628812393164096604546344718226258272294112048776384723835409470157594320543026641868900334334711127377624687386916632228029192973694022362193580423006311214761353740588639916618089018371108751396104735267972186577460147850741117515436384156846325172155025398969516512259853249176966265664205415742182948496059925800904174407667500107258327514799588236711950019589508224114164362356058649286184836916519381275232647399494537520569976840374100750375680420987950096105607603436060437228179083519629623654158824091168758409334870187889127574089895785567587668461796018123455770698743075831765469854856037196687109970182045050087924656236927526609848446921800978594560575926756913045199297594614268442637759220841320028259792849480620404583293610326975245829964882250097355768624184342096743162149734989917030812468893145541832614209862415007320323188522387090071697972674363194633337316012000310945008816783357336552755013626437961687097656410750812421498212858853232504026413148098399962020341607977053376348286001758271122303347523473930734080019406468163691366787032479419458356369016252328905176806187553981261561830691019858456479972294301151456207690377500248176908782139838417002306049057018930650492645284159161133644475504599294152319885828295266690417952666400168372104020333149518875508670673880472272179005439392468352678060501611664431860059085193561839325307353677759928485347338631335063412088863081643075876814058207943093239112654395093593253844973840504898633574776097291223236350563817899455329419329218144566311062740681226506543514832151845731522706261756200435684774318404025331256238596963920346993675058527203013787875374934666773385898424204858196707751166972165293277076989177865695540587254016322214419341911038813701046840748677803508480673526175765018515289296043456488564702717817274571786326928126674917566526709522033174780399903142212913609169528627527029518957486827920472902727173664878101582586816331025164351009247307025424546795058232881194575665873585254011478995923342844026331018582929764308226014346640859290871771721259191807095888196930212815940872364026219567080160591383669966249950856584838881723584288751172451656319540624441473381487032494805532220602237393064082907691440401739302565943987497552086123656383426661137589406866702594402788271050994574568998421953640556921407303899550512454641609950202002142516712971426373628514095963849510825821777475446432345845932923399697050026482661110344112717087273179924059287259914011299622088660430672265506939487135232635721824004233994484504443891137157792758343534453106651221570569451443250371217399595679159456041822115161629281039685048524615407056276377825383371907475583025884518135721130921049838239675944317576478034990592654807647174255498701842974686122267326622319251949559282183155840801683989380616247518560208944896820972905755350880089271934035218540118179872457064417270548529971047547903644806401101034099960005132644073695158485883678694170810843426793757732333085196840344369909181569901217175294159755680826588981880281301751074136053988251022825997589671249005118358626733777805540139290113469349113343880560821656824454225147833972035492678711916599108016023080979527067580232629509762939946253055532927836338715508484709913248002916321116563896372778175262369683798519650944435516309862468718007881794589971455411863720162118284658711617672156056175413602473704337924123957211953705368052514443612421169871734003123293559757397811281162398410375234991684944641411503825343651661664541365464177663686207786725824148606116516405660091236243682316874670266314007195883090325954537470060524733854734670176894883379944602991721600807877984869570709150322430375445232869912156811880382591511994782802108541787538288828793685992376916343503503478933872830693886182893550291452059347028239180389467411782612604670703182497365988720368054731138836441172874094668948860356389516168059304246140929880788028879346356774333873434381016851252912887492440052486454378688763577255304267926112353413116008524272338903008916232254361690610403934130877007041198301145763817814259752229000562350622614158744510012294322104123761502789680998263276568850937050759760775861194791965891465985806418354425753867273834940176352119603292165360769633049259248651033374636020073378143620017153630117119906431008495133648791558067951144970013753389805462989505234361078581936571823561386912050181430189332008576263576771226721539278893305568475648617834560736085087219118825777038017926375284845545194836934372920011497785418414047497815527813347764534229867323021216370558703772738802873548733169240432678648426775418681126442444311385064053063319277308401034730234179300740703468623362080988462507812977713651778117585865713380371050798450911522335311810883484997897057092669731912381742154565857330816715150240505420026651828825813808257805452189116789348058864824706021002607998392317220215893523370751317079078260438074998511855545909326474060909926671438537729026649352107423083419299164444370850577778772639182067216661288361687796424456740924472409997039546191323709017417848286505453869095640107973146804725202659404557314535846229412419235853212386292079797753219933882837693861449891789501924395665060895510034443331947864270382372422325187388828982528376304844269108684806134505483755297108346119680207846210299911096507582781634610632067771120728604290955733635062472598160861496022157185924188007988939915988011084751762200850912604479849055731792757984170361776574437290970943464959425147682344797451081806761933876284556348193514852462329149654125271113123554273071053744817259329568192094406044468692369968287341535427774359967851539965969794737431498309425086708445035946197229283295496284090281709382968866062168993298823396608577148820458273054051723830936874453907849890283149563358518151744545833022458521180992210753006725709249448156352810757432837915455985157714990743499446428990873410853367245628150654459581721449569954049294716947654790294475944966241726610554909246392542536451533315234199504119236075035023648269110756123624389955650282092465583601555325738813418493103588219412547669186667087876864936153700253139386857655153973244204492687601976638488966704259867463571318294604055876536101260154539772181686535520902509268052426180833720016086174676340643228708480698038594398094399134408834893020317826778666436827366082763329452640180063665140010286622870788538865158934865798577889151066308374632255314358453486107602953173224491168171179048056103252906601992529431192578054273381647690126916561320576295608634194442807173865720279293559749602339274395313396834022354076222757689030751750793801131684930262791302651169411090656643463941049464458659113295029953607724753267101493816861352832760336599133459953859702614155476359966364975225504702175548164897495840561694227627884814330915216416855503641738490662540681251602592943687107824266325146269179027136838928319551586350769041777268665936801467379171671297479159301020188001183011824114778745800191170927541014770908120917779784940643202497324860158804655951486628747260158486323886179204070203933070149350957382553904164446726405136171809422914574901980406159147779772454044915076930844886732535458013030721772677657930979723144035098531346996197792275073744689042930656971894293693187824297588447412249846729488067764520137184207167574527346186190238484298849233777435133346096159018000911613249248243496397310412886002970488498029253974891734064463294843450238625645661227308754972750101462746481747123124893459171360601800884361098314133961605436580998169970035248642553642518877803433524369891619669633041090479566914625936638692878541844439037513661659205894888600509203299449906523420901601855965746016367699961370646627112088927093385268732860556962160085071032761336549578251497045605575513179131554551305367977838401010622263929778931262471777622025418983096415008909820151129322648254589487710193954788066294188950177515188004639029428370469821324591354350785341462510570056692095952477056798318947748744239894360094339257865029905446712491843171343834046236384842129390680146806072142992708751477234912885870661641565758318522696728864063822561678785857876404232973269712788112258866334336600357024083339616619413869987908835593916190855232045452282429933087245356526000119905642630046429362725241682711606541439766962245117743077128282648799441510734635343828331556950277882172008892948350895413130695234737137968346788220520390060977565671756935129071090747502903039877055979693275260172661705993752477628817274155696358539538796917388956603640334850254971629860271163699830805671176802045085378331915696781394802509429583455969203894439085794080606477111775988828694954649392055390345351533471004926462405370066438934336925422437466227413181218089838054824083369440372712310125556522716117065056560618314696909672794193579196826036309659546081942603462122562363304968530537898647791934085030781762182631937209833307135831101034649893719975428527355500405376547828647604964273523024746949562879170600111823808838333571395250881467383075987036903317989305251307100183675911980973886324923638001239539003877714560755490235015281560264441852830475083498246206469436626519347581288806623481240785086855614483872367470996836376913285294246296660308305445140941939008506729500662633509841185046198864951236959933122129878907588031493318051798529730074298122168264178108139344920531678775726932802150249390980952848859223977078780801687675175588586306069878800498122351577353784347988485143722211698853952090520729988684062227569361646391166796118870821228026428927903251404377262304166474129270104163344512260300732530238671760114180654124987383748884878157330188951389927548480563470789332241358649498624373809021316753033019515861372030153905056694857759085964797726543896675518965681297699343543354454553318723466677603853683174975714937852814084050284902209214458634928833961531342560794449544868908823174188615597203612917241450067842265710713071762452267614930967340949135950046828539357718889112922815849084683743839310019490114539140452152584521223410665588176215453395640997381679629015390231262319215063208668452946405258134188091434979782282943032426180849641138460653675956394737989704360843273781429050685299576291181385929838668199398389013383939921522014212318443186048597895552101169128257344896424608268553035499440388787822560006360612569431901380081944440012843535907600897486454370689166649168176193650702137221851317461761072167144820436614372439919686774171672195808494042440766847310472996954751797168801724027770452631164136865684631064671471493088911881092897693308403277170200032371019699595167522510559742029492950638224402600184970158844895008593497488184688677838783653641396390706547155327509366119905372840039818510164260753142318224957315086656207591302361470053470977765692349070391026194857349586887082023424906759615653522198864834563289249893482785078076943822998871748730805344487454823256106269355235671525402421042655333044421080372150640180357466549030794127095544632929974447579846724762814345714630008328015194835757107832585244403846588941330351647966247381779001910579085009220187663526375333251114314891256125394184996046171892366523166598060105502231581933729767953196944800650959493346695111479601616122794120894512600011017993360151024924995619024025415371077055143753836532209725552640642458684785925775474698483610800136923462449181613484004774332688128336182182156397109299194851038120995684012790121474452609186094067332380442344483061162798119891811379440739940898349345026429940425853496641269570668880882484203141649895909502834465019633248780460437987452542710360930396967789412940544294968577533216857943421135268651563078729133203853790660508393600887494862695330839330543940569315808787183513658573839801456470360918390176526615979328495656666862718079352258978094737206728445697860028693735074660059699863276921965301943849060744019700390148804506641758483522759986570831653664160923995217683654586747047446939489606973280614952499980950915632080295280059377046072349106604750019030201718321176460082178238444864868747215461893939713395435040461602947482346290351539934342711502621620886961234448039216372904865941867325681237960855199933757431217577739053745522574314130174863625116717110375597942625788456284757717107495352711593152899478746737299922873278605555985705749066036138568008122289115958174873751528085683030762834975945952186056944425907331563056295276161374855687133111549727800663172607920333418570244101739267542507817499450335272278370388293336443499509380616289738558072798214831518411564752787967816038602625920359167662754904844860818144782382292933616089843746220821390980671852303658047878973272997522493293804815770899848572108231008336152844863168177611989134073257610636073355747389774999319677927693146039646062488613755816027662042770886800074769046450455248407040984299163856548381527306388945831527651888688462448486249857524635764535962460135300757923826990682353316949873228656415048075370602235718261477868535243431329260217989202621656024795364238934648562233249531247270969085432809042651790176689052910166504026129685001222772251366478889967298185070597273600576225197555262465242167678621157426901628602869307337534887096877624497108433460182986456320808489869099644440563195212386110113601147752160221609126310992945368100856110911273444262115849093150653847047006008678997831505297525184718107447319841204846516391874455244618155205836397893405972606248205337489793107487621894927061482562185911968386004720600636626216564662100325892098726266820850014858214561180027832006956808910597244477425938636783079284710020207005767495249794051256640603696423689545935002063742592438522646712657599712688262845875674362217054689573698420870738832898464270639320371880452095440891536059558122601673452130159157860062977907046350657827493679547626795322640550276537423104793007632647986294823348619567831049517827764421034588277113190008943337332871165353888979314302281097295302019194726868432892825018937519366415139974576205142150721942647584958602954013563597153032286382818721931270499536096111223841191392853070959180208513956462040326484734174200535243347058451412570348595507737392762460254842433568793986990311907000318772910433862463438776268317019588505255804400102222852075650249222098645213560384048913191493183211918915170193492239844447530979793267718225051665777556238682656827703144067258236095581553387474645238163110561466665897866676639700912214457959238000398118460451316435706062522464546306575912461810502226252440807552780464458940742058270252638662449405809060384844186174490443176191503784412464682713469931432526762587664431448244443534422900023281177257730344929808699180999022235433163725155866573235670307524609735997254163455684806850626730480992206707876320523677233475317329589712366491886922335953280208541143947231120564246614340764289303192196860731047495000905707946126517037266074159558452417169518933873682665520074239394258812237245913868316775123764998187723346697410960465837556912723962499284715981493086892111518545394412315978912761844661511431467910522787593693607821182823916486732689955564946254756662442278224370386193793508242743556862206128790046954428031083378577163777883711269569442291370551301203568663804204327456530899623458597458478170669779580419874801931815638729926394656635180671416782691198801640548960027962694114941072166086838054951063503623178573004651466339071619989922393306090867151265709755135610342494292767160719138979222445295333423681001357930844775276719749928519948890709330272319635690830989288925503801883158222858049457618060804353193296386176090366613064228504229056161513533943750659114713079759967860532010081707283408870856528984339488724653965649980069805844853576139174011385480745778266974253396941253143858649273443340644208313175342602551622674080923364971623329853232177132065384047076289248912907902332101521455537413767863228509450534999192040816365178720788643579580574472075783925751750881381900884288878174631294622503541759218693051614075968352826704823279448562808578958782831858550973986026420314966011783555371180053979125325269343462785035689650255635389941548540776106446039269751533656377971270647920549070272763635566967191816562344568760932885390459049115679329474895648862845970174287382080304837442518037894882096511048177877382082197177725963286949166077835309545751670456877041883817884364205983344994234681717272726509259173427692510056975798999527977839746740546490858741472083793974487830693693082525517793961520470076959427595500352278671423379259769150577324565081481900600745926849286849483999745796761882647279306938647118189287662288553837839203809065072206471206902559545106711562162032711357489053258885244782709440236241241792808575523416814986254286481332698587749729879187969639380859563741102621977945194666401355890560104013344951134351914989052109310238660787685668319910127829355679703175512318632263447737623001637477694646862980740721695883175035417546678848887939734977393909213884939746630149124924792759157982602056510138565520564589511457144457865633072351486897721168510388579089834082432642536988795735283137297024256977543525359339724367676188243811902014935040326072386872997138493238023672925872196757936076837815424448457305708934993406761945777507880772117394479498109001160512217458452729280733111003125307612848755502719116601655671875346551760629762498853651719809384310549459936558829268291124305073151503089930415005535984797809897315828600486963609627089756680968501439839133052630672436673926765343536451667581294410862677726919282014782925831260314216996503133635357079339287882248431413502521644085781680438778720504475871215518469356271385302066697585569104221894147822059256570715060465054156002693696066979442645358393975216551399174876205500811494912174296894129419898117144051142955049509805645316586211524560749390239678788577626685712609828761209046115109777888125863657425185738421028830999184032346571580912741439283185066124471224718848545664124555503628146796210710844810694166904151395069137637654251342751847243407106243812555106235368219709113013614391224450887639162022539184811370661953563023014394451190100394549730972640821171856347143118128079534531499425701502485821958580482346102352407690769136445831567352350329785849205138086036399746714057333279377459022611998151293916286901283649892940795982366730917567668341737205631116077935269957852565625501893135942076370273155732831558592360272547507006279901267952605657581000030467186073652936483218399532141944571033900011711365576885031838127919687747735599282085154213614421206975061655131936775031427941896365972838040863440323689991196867963177386294157836322268774946491099561861968348593435127398164221274369539585481834651650683054525594960897671652005427739608519481170122839577382786525319162918096568178940389169324520691574282225416490783760029455501674980985352349696304737052744356216430709682871953249832369466328757527394559605136568283739546627479924938636573187021719456819494536748397795866972751321730370717774241680241981146190169206572664813642445103829246044414161616172033718079359864856969753893072736773374162516663972387762219072662443326859274005251264876170706210805116346133166494489089004270781410002849521695639185232321717905560320923097289942226578535379345745600971633139572753889200677233041082042740956095713836223501233659356579708327756325894057160218593810200350557765563897081284593013977249573823916949650044872110266471150706247375230925586086285961988482147361674755086703841368385306854996991087696314331628998317881638168569218324416278400266408366807566123244367756255337096415664787182174497451631292807302752289255320723415207138437308045474882295243768052505720950501498070390039082779490504136687077700041522577433262886319086238048292807386940786252922289868909096774166949560710431622062299076866955016932677562415538938125470494585637251614245635793305246682086944610038649940052096623571792979452096480625418148853766506382317785064744232891380441110374596888320384778821571683324157775649004022587892970653812012674183767068502222151737540682043908643054781952759591269024849762540349714451767364917501061170028342132678977218396648179758055614763668146717264042054321547994439296097134754240115172892410972229479222935315067315447760200166731427331736545474109818952516063485761749332106573160913771291509175901661251127320105666585183927703066024122340335169584852336618681358255370377971820058176586134434815730749766321655652942829078030674756190248921582031665761076395140247693334381280350132456164413659839312753035077231933718734762609568874152956830043538085436594195030611755614635425722535993199827438717253996514201920544180850728172202412586755440553464300926500807455394046333127211191892434974453701358006016495640508023306729201844997906359351806586211834722026526038906586941082107153231293628107413555028933728930699470231002115446898554480095765594026007978209353350720776543872615962340294685681270972756891115457276697538658351329909875708096098993029899477198541921447270493828494013707851472486497324392757733571780221565732404645917149374964030164889199905044643775061886569245049723734848897960441191670790749875112922243511467774847629882092781217028696747753020307419074326422454970562117964993887512902517744295307339108466979539848318485836449177493955222957528448728840496243205667800863022413448225829562516656952586655990348284985616208799800548248044245867689582946657797539223753615264816579884213340181663801097544953953185869847490391558596671178145451795897043867266847956813293871535360754233680207683808989239013854088789181363097529918109467287242360958078819641539193092589684442459441947871387379543122467938715601704864781783782328732188656557381317521198072202735595099639252465371684239696574728773338445240321137633097314008515515021373813287998105877676856855137075142584190803106604886723411462794444149258694734059451527515802903028398903637450181558769719018326862876866426430543996765628711256109096652553559827463860871868562501371449504538706919723123159193605870726831344122109733828844736045338458235625268453502309698136375005977822512935644948583594435356045620965403172531358539525006730139228818552651474756879319050906172930658278190353797421699054211802745159482742969905189623397970889176621519158709794563445847693000908821594440956522708254657637447464628357390522811685370876622593122714912747928091229837269819797935180658914920850965835286184884010673089965833207671972901247989900249543458914548259779823784295122375808915402809544538726492346690129606645304210289045613819691269723163270508861608605017627599467502081156726269344003676528485024855899398251779841750609229494769867206414194230551683682097069080112971316598634488423218647222231022326367109636151595758677117967058839050183194645965121844487779071539136574091280058605893105122960078913275237504789030169375377198839796277480639127858181799481587479117824606489649152678137948712373813275897180352624879339887922265821377753064676510265288566599745140259885425590996107326606279826081546276234469320363247282443335903838423429963155021373918997969060834263777015790500169881830792489077723231323998874491319530571356216331517393813758481530525877181341441132852955652489219627709851383292286494427089199002519694727562476747165654351664373421325376983901718100391450862717728567441756908792710154552525196033388911497060491582762309143129790007511099386451321903594973219634191110865446313938176151364237837671365951635009262020627976864885255687433995014944019891390001646138567569210559548095139283694962224378293945571390993355195788265757242670180353986690179948659263921881579710973719413352523391726033831264018823843046383928305547235987737150681669264735091738895606379579174805611586209478343727170907663503366685498731844072509456717794699437514030459811950238480291034523823582916380229080694693437676156172146714959578109472753224006743299822665794166911773493670988104024405205466515960671519102887914575528480066998100687223176447309299418310738806693373716448772334595997970195112999998475831894101705490524352216183585561419287319384121462534839283731945135557750953746744812902106774362282654294902853923790365755027872775054024809526065387209190060080154440193821217664236714176841181241107014936867609369770068482527708888029143468063524848693662779601449926324233239173599521446611419420155669303323758745240847703602071293248861310781014232081989290724874318894722586852774882936897137720036346153002521216246754627559544818620935191642644722073339741845809234312905172739651564195386977874528740229983277987830339525584717072906751105246896573754004929161786494738924495388069102781972435312749200743807650738018588942508148985159555921729830395837749899053392037829135999827401461912977476190486907605048521613942410258297176691853125227103970724810226275524632369583096818894830545016534861376418350488217533919599896823379570235730695812241334670511802363952403220517110493759185935829179582707944316034628500329184497991196618850638589393167311113654869538336254152882767909657736444519185006160251532809722652647081728824337135635619472021495813827063353800026578278181949459362524981210078718937538461166899253807880934470904327549660982895574877084254870989792491005822184475810917947680001049567955896499679752718825157489476160831856465470573580753644674030627279707249834958592300999734048164805467198050967413243008423255417237549015994493718144978563414321909042531481806827103553948646730713630184920855746102422855845635345811430169267141131413709910929197134378103426783261799318813874353150947205679802193304485348010702698464169863966364429606277577329235027067821927310094873433435815604561661957210147412169498154541576844940293662419087570454293396387720183745767471881372891399803579541565461752734453289105512061822874964688005651715783099586809219972803876658981063735581937079184152284475108269677679450269819153548406170010400200933351394335640982885114436173094390217260365384720269939440434098258322633461177353551459685710782434262017479914714097572893025657986823676987413022112433561975603746089096130616740730399659955218514937941388770835566221648386304286616501425907296272147415802423725761795582284255678679372101246383933346118940902880705753351532245157567618840982512346038322271079644678323793013893430832443479342073091479665391639661668117022366072817937339098430992667053719717574802795351670693851321582207117756218074877436273665728377599965836860348264482713113354613062400566325092380426581701648097299708098619997695229463392172298719813941587084310355995651359991384484517250190460456141403330557998378389672529288478877257621016296187110849706195961079213955159690978738159403382147407219993939705090736452062172904651156199073615903810095367248823030094410299881337298136633715478836447279283726787868994713520170630745963581739674058805045681454886824863696439132755261777178993541633072015115424450989888209052902733497119787958818132531024859586725715492702152494274182777226843569040296548704236914253079597788872263273923717138085180926818984458256814205713471697930598008742995710991299600824732298856748890474002908731415126633412143233646581614450292046964740712467834414822107696868244824557448570204617817774607732363625733482319006734420834247684910169136260266356280306429169501972995038508809049726276917202759847717340906545254749604009305306770117830313534523130564114221854963551977783496437037568828354336269175477997804349231088543371185877703606622892659242466279623239716444771805964254069553392208495656131965633732110316568712794973709064362118236823832656285570746827925764520181179044050855221153341646297231384820629022730342100479536659760337869399784166396742697780347293021328259474417869804904220712044575558249789566894264167632131302403710703566695373072230061460563967826630758160902635732092019680853800537575086732492901108443912904069819204901469177279081215448179350774256077194207223621700715949028789474699677269067289723062995985703325954732310547884480367995961987289291581022999684326567808112997881095871177017811113589384064783337475826560199439292016350398641605926439215444857126882196206379470684887085557573947717134979362651844479346916035204362553587394619974478833751131472600606821763506539056635501964167813234579950580996823701854883405315975469854996474946601163460410063132202339861117566946805874240963322737519104617775975780552851455433317208480437064691236968809434560380534835314578586892002223087563514120007369258202533404117020841974737325684870324974627110860832708007217092854582669335241744669904259325688517004442560705089852010324967318663974792545437890949969074896028104225925673062672542793298624188770665218182440455209804083574873266228516203779698276452796260141520437619130478755219004320072624695240291126577360915686649375591573710233826624790139287100467702891389136691536059020421014201365251976615638163992905853021637093621144241526558385426899395928507777067173859575935475848550887232689521841003275746369127441537817499223397744115326625372368334067909636409269048181818480338138349849897138117349632016734433239277527890277321464534854512822535622893420857111807960334713784675612440169438098834155074964439023772076335438748849163130244550915150829005679965694135059504832645477828783239416646737917425703023570438008439994600337399827897921816688129808237685982597701431597670273768158030955401640278235639969316582632914009304253942419334883827646055228042304081870391551459592309719323926887411322538994839592586351019802419527494147203059656186945777809407110929852263959765299993282157530652908971071983243057987778741353465240029962909354576755450392736664202157076985383668382868195244428866028685223681703733948552070304909552756586648588014300648082087171897465317132701197328227222603167898881965104903691107838921538337462717788865219118277832325140128426314387168443852347642245950331441422291551819873665736159830557900312063749799364526791879827127114894042620622171871496356054919400583107004243903715712330989150357831719310662921989197907098966519457101948108645600169951194826748988271328310389784527769654793547178158537949840311090503520166139135311567943681230122533826121738861873443611623739376330161651587067959672690739202345744790011770717124710337863187393204236810164670186862977226923056204116766556664040359361504314267641741932731658627194042833288704115687090293542893249536182268184899984862304307965585900573437763142001850247509829079663277492969592586791921225833618895549244599919246270315114947820694941109282752165120845481937144071250119475761209797809123784695014681009022535759118042816539652143535297844150947077871576749267860087952530082605157555483209713536408786999078055739057034880950198348203661223058904961932079606855397919813371584592272889219949659354956127786219659732117288137325406818046667856111658350561622158324632638743030017576313380761965345759660586159969801885700519632154339212626278285007724389964175446241383308324028380465321651110316782769565413728341744849423508372307360211823579188117221645728376942492004878177372654722528618526203632614662572956179521051549288932241223894886556431526047990131369789012339033566444019673455687999819007103454222362489448249336216529386290563478305698721765704447191089927180921749320710681111696663414079430953418135328583638400709800225411031725825988678332403178813431443340543736529230458647243968904941313980703827989759062807496981713636387438824947551744666744171781263449984371692208867884703630848364521197561712775032445877162570550249984363773953690835776041881418832114102026127380479884185989458017947405658939897389394248950089094108081770786707625201847640384977303063046779682860997553856301812251860228197495418941344354174758931959699106940159730920372398135135446895358359857315343604184340079736648424962536089770434938127740756178626093954924695563865841228596004321752567240361166860813895626182526377989863881880482680317485738275006177630554439394099380199528604238513436179345673040841227695270996297601653208267935912257984299934406743633264511809397829221638843918683120162718333742084793238677616099623923803975566562002862120321160696975808654394603603688258085882591779024133537256442709047325814847079403580488592613266044039731551254414609361044168696137175762039441619036067627685276939595459883845392711589200063495046258947393304987710994859795666990713866422477409686344620389262928927872050075843696041600044195359303281891324557038419657468926087811166684525477297114926874606476466647209373942596155464922799192700833767592036304460449079720446741408776850038647828273790923792582399791373322192061484659865343787417251923073131432513896587586999753804402835554647042002825952966732203038017871648452568247331164692500982261898081630973898488977633713040629728349835676472462761141374858648033923878139218415149660619906068495526153591937941481422934617410234303781023308105864651905513148145560854263929202686790021118421891510394447236085100404523509280046698025090450232890112996217926299817092196629217147406486964439709241047096597636203345303986958036401821475407012139717755844859445268837245884220611030828876988105667947626462485214401109083655071820452374562214043416793908612602974798017923024209044282723032737645265610946038428989431820501920599272196315991231435013794535416535999661795016889651180455452952786625700137667227576605460790012217281711640531091660115070989469177786760171738264579112451315431181376012207291744166369224171476085789922666355596121080985193775641172658656816530815391400233799621590885423520198709622349546177278433602548375627393883898715734818735279793127540526014605190256506137003865923912770002450554162878960993554569004878135022291531897076926533216015893929420262103529783419748096860991961272416677042529721270017875924440247838926156714633348556998180026341495716817721564538803287062419015625053643926387662364672959959579951624805091652491790195114247509445122672295479711029445313501097748750800490192180014176886250054217833241123134774365932922273636048033590723467617687909033757480297423337176336081739104855689396224697237176073916461584997480261988120123033990260484167799592408008553003602817997710729641492726974634613935504254856442112243623248622825080523340706872826957168990980577799720656945981009971019655581677506019703863202672584008710547500480162301012550562564996463441083203061834444134459118693190465112809444908488482269145366917085652157120953461007720013219999446789572261358140129203322862725041444105575647128810556470209371865438855654759285269070984276954281593051559617938185120967173307515728960392887140853631198629934888765635685510622562067050783215306726603278138355229437255799462383689430375216599264176576186619003600910424382235223668257985119743785165401656307331567653710902768686909537516614422205840130239688229867773188989150196089539329519258642902080621286587456946141434529940976120545783474892575392376947337827647095718152524793901875141149070253451179510444301629556016585367986201595935196568614529488271814072737709360459806043862079119823941739138971191673031145630593001081912896089425308504269306563450758559597611907091532966832677765786294257946439648708554564184257007200181696800195394987715823240355751112492654864268070694630081947246644574697513460156379945504362241534674867360860302976219229524991193817823099077053465798615775104729237416822340564201378108794458399222952733676592085006139079102309651896976410768789462497118765513951905203330024757998678073236383320740972198750535181664080240723867464927437157424019981424093653085086339880062342047111561555970789022179836516577689542265750987726821434100684254515089148976703666473075381767612181877790928929645415940444126854698997577587057466838439975734160768047050068854070309767958421773999658931534253049436004254766036351078768902592440301250297677475435039836355745848643999694858448109549204283305074603402357091111257168778959055333406880191577757481616642699730478830019457545954551049923209544474505978622105919344411139277094017093983144164759674631584646102295454369775469473659897671584988970593511789453812641552106811594405128095850424117432118975717614313980086411052610114009587347662795802648670462599206949247498267937728430847331218510494346955907515806163297336239371430337518433083679004989263715971119543299221728286574454766177945391147606195101504254991460957908347621352351915424528008766965496985368261464315308824079580667878724926508588499889945147402896663655336046274044683788521817402119091595056898950106432911368389092304169526772791692468638609811440309003902647548795086089408962870679746836497195164963691231416847123013625144137805439805566114470060569677444523804218464973707421234077730857369429892045607559671085886311970670146254752027159997791055539958577783707700537107291904991310402972534769275222286361200017843720710452276016503793800112686848020753374983681919984476918398484063946333213155575461041371954652573423457904389187603419751662577141629110655365844303838914629128293154970543673441268236869000517231684494545389289874173595259082893810499372394970339044708806471900890919247755295891957764504325106219062158586041127782284017336614423523545003733913875984010949952417907495052657544076983544545472999278936260729086529386957279204811162903562188530632903074961627096527641197834688565918940337531577965497587149624716868556343773395080733017860114089890128705957581913459709076942844565976720328709689847644212675889428982547234671287531781825928575692228253213114047768588517050339431343764345373884170393771572098432924117363414453468117848416834418249304609885096204383328779177600156518968478446419681032121407878926992761443732552768433786349514287322689671214009316208014502283661082769069378959681094395069889021034212665424002760982870451806260946266149586661750423503395346154506594041345713378514775159450514170343727362615565011160160790289768068816259561723455387138814559730072666591079699183006837207319975753204629821560197102954848819190554228185938477896861512837279725811620356277828095241997645958413797957699289920065501285766726810144333957510586600125252016366527756125953233812943141734743097323716361095004534179552774098488594639879238230839128054888090619368897345206528457629060993951822592966888976997130152969959977399711486600662769419126752053729920611948696119157641738713028464054269985316549758111583157422675087287350402193103035593068741084270798692013553318701681481035342611106913760228959449159778869191554244078404519543175023544616632885664358147785206215302590688437968840910889387456765162285372381389315318161607421743963154834135678277037262280515407421723820945481175022420631935626851873411891031284656192054295245793610281415591378937784357285299125112997141698864853616785473544278861908471856250894194398185077175655788096001459325614169642802135619923710853626173121134861128340604908107092914981889138882407675742889739282090395778467278146312218621903537201292521855234097420191961145061378040851885627109601582786078583835471652890656093094069093219633279415418962890467958575634691492553092021148486863934494366997179796070845887024069348084702382293370209074814473277485897133280615045888717770733955719908267115989202726893042219477891634779492140573491862233839437309874277187673415108186189775237452884813041905663402393200515580512880258291696119913729896344913664172319155326330919760658365351089371620734656057222298273647570739982627169675726120713210805861773748799036028987928521515657223422716482314264495584107976965189124214473402468998196229465101326358991070568728675963105289335227005787862465489793807247031270414686438329871527248040913080260549629344356063629260747141408670104335312121651695708538398028713372579562938299394953144870502322539805361764748296819814211102298009088848218325224644126433903515021352068003980798910857204839016691838959353149724701541844249251582610937219439304468045540716053331912784949840463472773589440867268916248077209002145191975504689977034922827343917530320547109066202473841164817550890400684979519065218298939387364330576041815470186994093485977338197151069910405924922144118732748421787219704831345254970643119855221420060121202225918623243943312701207503130036588788133830515880089730784925853998355674418884535908237797662386592273013868067026086795676191006702234903630160946962435961306140553114810953262842082507758487911885224291884988535318217012621443977778759670706317720646658208945976325083862123817655015769885873738527275215216110657040943788724749418094736421290600752095007102780764050126544189113569952816079097556675876224668480331142679162478004768222110941957231661324463550974136861499269494403998900207539333703739497758478081784418510932930874805869231742554113077330656451771735727438470837618215222662611877926694115800465788972297840973080913592384222719666259417173679779914141970343210751174370298823133243801216198079871673185427018060917240522047564015563385798246368653059389993254546317919999346164341780516928635041023227801247645688875518163076063053580355598261046609310064311828347127307258989549471261484009144988082679807928738217273267071475671872664060223035508351397457233189957986114587487765903252289614643263245123105317710556155855513394615292842440804371812317897716198256474927168889598845839850268856441230671052052811155318115707246403133329058446785176044986415405189030955223277116489817233630620158211546238032241291825917595466540245766587274177195823040721973522189266430591620035064176417788148453826943713382392234479890994047937114504349455241833370570767241257745835983583001536909304901249005584689853558615820803313001179460726240315971768682597457626862994088075921254081056840895793919217143827284516397223973495710237058560244956848266072041093617568558485238670590828779791233496186494055377801073239177475738367685965921254851880187268298868328575273796176766518218102434750099726226304708697054249409372944719690097359135326464916135145172176113262118366038529976033514905387146615702887480829968885056413159303728785112249796860565130691068235977630668084742409290175084889128420607468806772389644427449003986725369631061607897498452243385795364620462647088077305309912136579493210858556036794797132065345368802942448854322035841640386431825600961966278295555255964346716288503164290472903593865810357478515057721231687540388349347797525954359829446870385792958381509181840254398003177635175281430021537036135428784023227060537681431341914057030658260083959094889416048754988982912934044569819831752273916716772886443191110227083101469614247348093237473576968005574346724349174939566506414483544132236788491436176055113557119675172453508320663835962601471303986591108219694310641447096864332236482993228088944444211094954337914716537997038098090759842292671036742391416469409644800870852696234145105317664991802696995615532194570362978925316963855854967481668347097044431812918432671541788872322971901938157667301659677615779459776215995746344984835788213538262247844755144485682904849752441176460063727076052086300651542394441146573800248415342434567601853387823715759054218781391578735788643532307536795077146542367981873165537837857963935657967033889312416155835210798945560570202861221308335732698810033825784913219784623225521442990585599409350066153118061190994073062546495742269506152862134591146647780651935388006923818848947240995356061907847861658167314929753660337207790893403908436741937964197687889445932249139153214579918076489129185254858012135554036484799403616679942788242579910887873407055388664877395462357336837982572485574455468496896059266045955312017848057080629119097540788813604047201250311113124393304917040158717943141907517532182808546084845779646584904607734367957109763876639270591310802314926013022181240973322903498059171525517376407241090976060696657317805942253966515389291003534755005420229964487653765548097351698392581480052143628779914421554850284403283834440393495701903025313064478625019565753241495813425245422211694104828612906245585811582120520551101713349586364374886432063401300000960181364394387851480958616457073261644791511735087846099119298012926416159934186634207544439920968011657730241490216176115984590779777873825014951059892031305079061476923726577045812460899555058505571800364299932706377760897426472222100797698422431820162424670227786161188482460042578999135434704180973286635345834818435550194780049323526923741108942366551793691122760647913858284013413667996088358548652617745479201406042390011800395038488315817276109895530719827887693213188624314601194934562976336887753360282316722244030361634235922393804996717373713538935640171652006387886156146875141677409416559793857861987621329585780844067136760908936677940628405769087914093132473182940214903717873797077966828109652592134682214742327472250364555944589817680580036846067371862648700850876382759373268173914228116954362981655323605567074370862156196380638666787528502659926199060238414215187874184792390370868834063994773640769094909481895482815825989293645476595244710023714862068621560418740766512418779397131466971245556905016071103224522658402130660431563913863632039259230292954738782733725837254602632324087310347830113640787019472572197209419746531436542799798716728435004399213300873769068378182795939930344507926282663504106118354394754277226456983334768592975726632864727384003243940455312947100747279179893308065624131758563789667031233641766396363209793354867336500723604948684149606758410507451067651461402980356162388329059234319709196572177604517044045923492302657591908899660420122766060212180330217844132688122982979456500676180242224027957714706919802459153933798090079579613969662407442919228429680902223061239935702698122061973744221689926382991619402271491683523586409675229415721774514843013133408848737138802052496471187179642585626329543219479756955271589867121929038711835263751180634382300618574791126346823491028020417701947559555684768891267396596013933677171519394320582941584459052191102284977942952420669731908776256542076706338610718536024164746397368623071249701813797889350678067846057692949414067927484232882082732657517401355937025287235799109781907831518795817753579934557621355807380401612203025555186774783381666994956837203728430862421699149157425504426710451043045463623507439280426683744871091604573916697488131613138941520496587731041725142336432159741573886344793673021603320562167328247887041387467554420796822138823069298555914006865703311902783756121410174526110787303484699829549634092423012009715557180332048357432063930506991203431571745531799186830986969821740657952463952882071702623840436720951225165061209087702733874939859518760775006978542082394235903835427894893726487497359390987195383759228750408717682158437081588341635731390237728416834538704212314181383681946283242015394135065720527543065697139569959021540678355163806720603598668959653685684222624058002067599519362333475118523435148978037647628634312268972576489081327832345422679862479007146718199266328561675877170395159147502245141466878452032520844731124865072929262879621116730360610408231405173170753180936884831926909577679783902082021184706992704821067616925289629234660899949696543188641720228353644112711339660943035514265956320124415173717097912118919990725776317690663398649050720227785610471195559021680080713078359925002321284686952818732559737800981788030326053103245823819035625352828088778492988693111553173610749669104562055138731787540743416823094413162302491778839228035205426230576780964527752057248832115253888048238560341125145306539180376766853604286968330751259079687046392839263728843049439510258307921205066968930288611844422111253127945757212403039842750105435236932466122422428268067954089454221144497276747461566180996876088217300704352863357666609686847007521001696122242853725641307837526491042299917109123182831778016293392389249437673651646374003392637865737635569888598544264097940208732231357778401732829569862867585505177301224826846170417464084108775233039447324922929449887010066218909960215086587459390480810551795612891352760159463536628858531860385158942180677754684697251673641630008989973097489189319053892545148776869385096638499822948193243906102926164167177487867825365058117704994098378581586093154734035116103170728155330112833995858646157425492955814527791074971783406257184568822695110260428068213502597435904947377368175400842501455882132583521937715387212293626170504168033990601075516059089670533685985878482530753582859346250070812517121898744316029697640527143800548040233634105954830556187930712434054562742986249633355805162225215824340532987474174032328441601582451903142920272036928224285692522799115792113286605415867351067738600514071139711811860563864505090158162720146184247312130352703587725349699097104902516545344892164132042944145949201326289059343429335432243999410890627511004788423807167055141769711362279198089793599732156151850619998153372060063236785546546338996779543784178992702428610185557586308518436559298831563547360533286270246480406811656255135137723639515458339303762325722519475570356177642011119290226146546732781129292876546668481840876840073636560857068027765131986671990738828921257254254382649962293601773869505016265167150558294865900754209506494855158159079509904318387225526705505993731686120964814721573820515881597794392725960882552907634868984044258803305214348853967056330539659707484973758855723364125224679032850098174608686247347481963559014783589068350173800161947777851575576794853402809084067127636042176425905888768419920618373445739273246808057268595493214505293029221072879064331287834765787211182320677744605115731435121902832067054583010998246844614187697481094936784985154073689691884771475896276918520779641708607111381912535331412004437852171617153572040253941470602839925432292129408488808969335520900761721141604533952543890603604887637543675766349081651756190921029251960586371077120707054877462166379752737226448511332544850901323133130964967238631393144886470465904490692322404042284234408721247935014555358255996616140149441909547254901973304043262656591764160224495509985547583064509276183728416071884160692686767680576760826070672833078106875093156732582235073210918717328950363838822159013064614461581746605501550250425459151137831299830372774973823190904706214624750739095409715477827874903476614868771594408396702803262496411837884428318559556421836801600244230675437662952765066916375072849820659604183405098111926289969579488315622995786674247917177502082672837097011609557262880785481807971544913705167502054192642614428447766506213194356114983309548846459357474948954414304441031484500810040187531705265813630850526491320791562777330487232191800977053942186084435490156328316902981580910085046204256673970294958979346347110349835604314054839223979937335353489956822864313300078775571255979761934059256590116961185483774555673353100326114564920181168740449159174501487438777173205833591048054491892438146837196828558124129021018106298872857418601168548570129255267601770408978047158221756258221857422715671406299901347096097871620398230754115305967803410022115018665564323076215127029840474480620172731466041615098714305006282258433308284352432675910763645059648593958890433184469989738441854467569297118412803195030713685871706706235795107507105895370365386795105714866457518415109734221699412079344656657897722528295085652933237852191753437604480039360849804077266512077067755577727065386400958393245776005661858020492881663874831416963412324025546555144950327831807938343186640896492778262496623986332563999588859114104608082821162579068683915027509825988816454075246603504192795343458690218889570882567055662360411698200965353077147917551465108180468299503184191191763026939554410159007161382499968797460260245444228159047904739213953122665513896014224889577950645288371488218665362317375364628207091559835689962067094179149283359207768330504716320319264143501458754981257039552694309556163162479118660635969739453044292182013414365538416970355167363253415358927203721062335157028277654301494134159178836001693667729635700523862953711252672331393696702660156356374972688484873423294201088410089949901671584025183246112703979253724318885930899271451754008791500113440932010410256117844296642061418147038329088596235944455700694514848282870039785839770196302650417346240487561062582539023411753328611263792419445829085625711831422340311351590279746545716112153793944764892623754021178051442107077309465253474952526130761452803297651959491568000454094633811102559910818749536446275745421449283565783867225202898288242775857003223478945805386950075439978378588696685527918004895236461158054423673602327559612612057989140972365043444302543680332136102588452163749404703213985696274453103348185273542879587861009162265758689480077507100745661920205829311386556176726577750512155833747800833309510125519021107321820689283385554881229784346682763269923864373216468880847873763912825243542786920260101998953030118824148361058431501193363842143793945615157630760138742238535933563490668750800943979298586180851749064080784820970399992899365971239216317137735963173124908628868211399268256782920700361951874451161425993268322897978947082891427947930794370050764179612178497367285312197520222802841372634799567075939688911423224654370314139760411961086711308235360389510401076285263493327680631882286839088666039671207386253972691976842572632168132009914961021618288659957032633873030873228560291570687611077067355027845692843418279401102246085035122887277160177684381042280425455083344631899279916355878360104296639582137126157361477864534073035424613103177228031700174003646459835599020140760327780702378874665396697177140270867402893582962845604590601770357493313040219659482052928423048983264681048587824447950411009669448634496503307451824371255554596997434530686370505334337910327960337548810426570994001905201705398635159601085235482661827212226440381271619614614112077324870132007535660293710566533358263662702462981335610189093768020910956516227654909043494232520995062605634050665317916644579504037145009848495852819994206280824966614717216219498362605563631249657516808019768690874237139065564531266612531107524075936839374269023169967336452928466687478169218814755754053486137508512936929207227639062598645351812809116707314087347623404942864266241696259635552087951574845931345651927877947566133319094094230982970542491234164753477313104814700664090250952698433441270495849163623632223910665342534511121060602779500105702719550873704955792866450263548634707910343840510649447786125174503076104136824550472519356425803143946580534485556993934976784510915689461769746335754637372902186525615013685096046888900937200485857527721921193160956419034096224923493762515652387427695212864905862695078146754211525812277352372968223219469732979572992168902807586262613910309141368564836181627826200294239626042228599468124674015644930457659731927787263079245298774561946500566182378956077135023562156809068066097005403214135014551404277148936207943279305138856719277526566507858702827835466935868494133625760839493989566486822207488999951538505008328670564103762295549025097830550671219483570114243470014908794867511080071291947554001134564586921651528518905386488876902274977222641774825192867385629003551091982072016941344945934966390616497938030488867805521292409696113456689017872639743854740887296751470064026312773410727964466684507383475187739512713960147276856239046151921730398217704779207850895652801674813491585489749485709827472989369570841312663156616166423570969576432543470153482167307889584264404016383473899492057071851302001304633546239110810697366907226231645550046023976993753206904064593216653049167582036443195872522468449077527497391607452722153671784935327324325388213004103018656929139903180887401703087116697685736863181905409199276617789916638071306061449275345428747746345261109054729212366714846054555125936455786906260373280137122662043436129489707246252551816122400739564850538689357355680006776663301766006807125562273354939645923325815062086212662155160473438380750337706168934488928987488539628282260125094655587176344790404708903573520890121009893514261316717381987584133828076875608329368329726435070567359731116390773659209261807624409273452927543694537858778959118754485556275382879962587768250302791141927190258081198231339046955549520115098204204586184071251220797904863019682435913489814986540808737670876086256803509536343435355895140874462542869499515546708009031920066805801059074451112062813903187899197069661671711210782782346359543532727280868709481900881253328470473388014696947729960786127438757915547649579678746436022451543612775456286626557114709465575628306221046598754046183214445405906403465324589281460977992305912158379455580251725198734906321742386224838146016458527521907439798076836028797848049908802786288270963207682104777126073272373264377356543887144425509472317722155383684325874564036100923903202545466106453089763087169185909910295418328778306223829162343573924567705379353139785564362550089606704298306461959514340876702202173373819183936683372982247824831172729160883131917753480669269230351918661010542030229651099161124127017075397395857109030609438089543324416299171187909079248597825960324837849519244212539296730783219931298513419260546393826584314610095826176232319279054969879875956202828500921734962678706300042926958565165765279517347115384845392346590343989767695816984800241461487893364900892788239396303369761456987276660081672675158285245537493992504719529241079309973271072445861424040812236660949253117611148723419572046454579506113551203284139993488369691813756497337897677812878924297712343059531675343608182977436154122193521006723853115378853518309970417240983466050037834107709568463993467568825880113958159728129622306745079555839132874362451831627889076703902215985224121997426220724073684069741838378012873980603122061919027310669751775773447596375553889994412559600528139862326852623413135575789993833320500227565552086495655588297827415616415740819527893306805046270383113729500404932180503334113672298754492770863818524518650312768569467690385837908679185366854282227868036479164806928997414840582807165678151468567108135989694540767981957950638983562788228473368556635360222288075864124588089384296559567510541035520473619350652876595815441878421890169220425847993353338202797346156037238536963337053557540218477246866886436954965442781304655430778534115428355035972084424943708364220792727674636753794479627777065578253141289138947133765766866508385520769868113804757337560899362179928963393038279180958551370695569147724274649153527985434618947712481726668149117364209033377358968523891133044016871183404680797012607211328987694571786028187136734075432306129515628686840338094595159614799918711865912729381236446954755720077584821807122094953293388508701591793501503914873957995950002737548398811324403698559405437127022089810288499527142907040111760814103858059820660329635578557404078470680496962107890215448767273124323762278446339574197569392127413565455227218774944600849194031487625623623220342104903142381772455921508940703336947755170672915761311921715861341550600556604497009050960369003754145266260289957039811296176558261857510833046079285598185988322024106761500615761778226933264212667101724745869496378908470358911615492150574410887129887621185357480995872920557809889724189034772866391887057053170165140614098946253624081135182330904592015122135967291730146627564097099645280994887957996480508740960184326515629685822282394795975779834186149103387828094359859136342950463604468194170100847843994895695610817930789345341386692226045169511395317641961168540533011346450910042620887218045963639808790393851807321721051013692431820120348735535175548823388062268947693889090762665503730452283815327213663440634608708184182925989343543443041528814189296752560850700750869535435641510640143842114133272509718041550275325539160117721119480061741980668921968154107440366226261296534168156112210979756590459021612177945787436332939625582212866758005457912802966860061229816500493775813292182593593923696164023736761134143124281362473908674964864103051530837362224426033042271313889447960701658865870242465639080948975018490285521752016653263139804362729211715488493079521517880053416336785284835495749822314339494354635782952357547185383723262980265182459722111532996299106586890046901492711090317170996183279296652137011356475852852372090302225007981935924816374173071155977793396597416848714464831913633356507889699202009169063624628160150657861434629485832775196849769742764045185143416778814559545885954135193287864504315334939364840979708933608606081897679550884901721388198555499277214829714561359066131208239303441969620724262555652945352383907417201859677657486496808089778292064620859510207892134420248038349269242063150977391027132447941744157635596432526360917670123196613025355547081335455530030055448395757974467220723443227922096733961219687283176628398099912022987894689830471257956601005101308031657840281418147656620049798093899492673324716623857917340591814051617318187020034223331971094245085484493004278669157742076992459550442292464489053482080200811696081477256085758668336745890136376953293601715883306371965828386786510162409575918337089856447861288005711782121053199287374054349523523374125401852401753620674386247723179154020655908689527147507178261205168619198171573945057731189397921448334642799246031096040834061195694610415699977333657661984417490848508675499987013701381077773738744208319980468883878919691428040886330367110261128159834938219948696745648537934748531453713829554426162180336490585160550130537370248928528454278032297888197996181605528337038029886251486920854020150674429303443138549275230213083586223431265987724175484979827345562020765809913943764326970069145050593058339827674559769510960710843840231456032743033330193329565126835932189339914435943182015859137605884605241796469377143635108911208997220841613265613989359225098446069331987730769545054632195406846739265364154677695329841670563209040932789480520836055473577904908977344895024598658437641378308422647126625460782576800542175343050445148091247396133230943363913484839776069664495358948117589203895143368330358705338888714315496821635097694454311255948388845634382716441507984681766423187790533191284225566497735897657786218815063408833609837816333554480622629278774038797848719929063572477111495090972945698848469613339414868419764783368662597749007005807707644441479493757636267094203724998436350825332472975069140055230521104372838746115599077443002480117022980418276253912719705796351855910998213233375751555796860253288141858603880759603618632432222160918395285470073522270112853735887421982488294385339406091567129299983764051233453049185579203444945142164158637654586635086629455807446538999322731235892398982860802183208164705051672177836443821879948067968963911560767377255331834961154979674592712492259313513609242161103110375927532204692639402095986779488990457029317817351801776533136483083147657610052015415701387636700121404332943657036157502571546727379490240085806270477042808158713950134216871058977498411768073330557651882411035957570650324101638267482931418739565475675239326378165067859657874187645209848450287705832533859535628782927476245777361394195482850396124611571352380765298809158511408470559423268474243681973937493427848359750116779926349659175261081583217031884164720709244599697345823891958738300074361358397604526402880122005784067085214366383398395871480345298673258442122542406749115445715496635209909861223172384916573759091286733004457788363775094988949874914560898475111595007254882171113194316362729884876190316967604250677143568404700000586077489993872521148416731335135782063149511989041753181958122189490206254569703391072265666721800434973086114993368034588795822221837189551800654951748971720974805567847979689454867680969482914049791536689554557261247891821298803473769650297404342932624614419266236740531066687068620222438280396334749280962785567209060526620475857770743361719594544962015886044954966529876620817377940380753442937483858570608986843395816873308709241405735723976003654576865635642999907893373941441160946251576665674542826913863593281867884550630991664644980006175467105519228540989450120972024391327778592799886254040548490294074513359570902629402312870877414431573790322758137912937747618518475631695633392907105973562024947805047128323804832867568106903733225846654242442775847054231338623266625447421563238409852541807879759427385478937963961267139457163149303771816470003810422783643276297149225864229111329140808974043614241947013303757113236512592861040999643850756004929514825239314873559625148984235131310963130151085465703481231180141708617629655702891712077664329576836161219180092235690491968779698690549850415543397880646827634756137773041792318914222848278189056927177820719287220694946098658734056404022832539481621606882946896621193183436880236878672045971893726697437452707153175831163942187964101006653509049361767260092789900787354232303255911333163355611626353922126857387698153645243444876177440143556230300340721236103172155691942198656706970836416575455446571749789589945025030654430255144437417120054805569984355362848034917255162929150441248526654860710354389961264325690001010627352350814896333430537811079970199064999617323593851495675215764085252129287140372857587097388466990893275310261023738184389017353868117874618617164965287825308112382324648062322426427536773217189666471855138438426287264518661751066204965955682279610609370292152759338433026174732099054677392127217225401839639881723801747262379268083568526686421812771395736242397623210978296123767651833217451818745273605714924945112167030975709277754977241964351920899484691875187487273961906916822641293679359809136568805010840565834370551913215138529385797852126878384519883026928809599148415039468258337314560764963300434213063081695742894709290359900782622303212317654044493598499717256376919418783201698490571791017917131982578426813852131094372429601350941684708584974526653945724813178539284003675852525455454512058818358290767180349835999734636474657186828712020968334512951535528612928782010201444364263408170772372954434556203655288078109454549850730269376690056842347955733543539319852864742897689152899966672026409932651127925715741896673070517199561288151518304330091962788349051963839102734047630727576741062850265524127353364131457613989885324443089470384793247171729009744851451018568609600125700754192744839758569479344300103718949320515112792490954409431605335024133081300171993708142266551404615139623086830104503108893254857200914204578720640919140293793629836316016888637186678249812768071875703075304774920263803762544883996159740156342490885362689036512195561804289770696072717163614881151021661442588916432475108800022616843234550218394547703567930600935822759483377456411006749303458236784823446015197954029616034054526549690721463765909390188444330648878131475205212871719919530734000171446750094898762317710504418851330049257132059313788102100951027984910278321529076690607474983412729665087662972195545679888177800556033426374448358729904310195089249212943029523574196250314758145338928052943216591553435493219116869223556304345709242547080431199025564785877790906098416617419357107229286226043386110749090394954271987977827232803432465406434779650266389694276491820455321393425767912747275431062001028565026235298989822093773663359582670202774554851779390229953453183518982610395119465657770533129363778113222314666923608421227673499299946102548589166340968968171447977377697900242508355606589738932202755008340096218452663468825445192250381383955352224332840348506132231446467207932336951758522274758399453232151696144012595334955954361943965928228860938866713835460929756278221594464002609408506251625355154212252468829859875229995578202066981147852635381209586401994008745897997004097163963732017628186431518175615144685205303223998681105283136287759469943729333485822464654581314332358989431332997067868729497815341240321109287244025031668047158421462457601599951907077650487928779852635556601035290520467587946304733571512439519705081458598815780456608059891858288002799348256871980578501640021624339163200390137211709204105397864690353508879401081253188136731661292167534357805558685296986888704565985170875508328041334938902481235644981622748717868572205658613535947285159305149901644881610712954806382330129557016393714541802560278607533926808938835212423193045320387562901425330057853387051351092581562192691545574970107755040355797263710380806319292022111632690586525032113965345189321422054358777880175607836902571124169050492335348239217493729648586434155604356646578145948732176770847963260759668849460909286396428822934644791124833004294555051657186489044644753343591307067948468786866430645487147291112299910889094270308549309466016361208819349690937611436574481490215551206640138969179394801841656430613710708906912782618578422307271412164955871472677328494540910428020341106206994621013722654104258002137661504308090461175199310305175580186651805781616868968523451317112438223096091281188104786298712890912571880992707425457833993200489200013511865762595401525320447761234440755119655852105944430972987246390727422916194513516281989996839326672743608936214901803271466409996757451260664916662209429671480261688597461522432057919772400288036842843599097131517270554523229997263478731683272799618917471451113738257929717789282911360983585925895377628677233564328570115001398409392763571453940966982115720199643925175975046128402903124948077366562027951934366735371835727928260935620932366696977440491118634555521443281936848714073608370548532027859666236684763159186804115545708197223284553658134219698030016810819508798632716021017672139356446288831001636093351052709929914051324864270141522306708668590006371005903716121977939870256362506760294591647123368318070473924391328748012985064035895466814896251364188634402322155147255637696131429911858685897806552367637393765782461081645910290345779995289929096369016502155724052188149274687556882000054556701169322177488519355659585563015091356596466263775043744050010487353779299894160391987464513586246196684006196393876506202366812146376160494948474674597217494178064934987591702094479778464339361346263102767822830620934384885640033826175605233732230940751657314423361143346302591575262608013051837832707239206683588144783217485410683509625345350936878465781198845430584661753887159834931649693542057118433381722308363983077879269948288997072303934140397365624704383480274423381395089070226572220305523387019159700859049348115849342284185338531912343235578016138476353754063326214501529300312428230278343253298695109216602803740554390573787684522262066685690788886872000990508989591270641832691628036135147440337891650363796199791629077604463598919584525648674447072499619281255113379996108809507307720143522126467939038730434808690865613336755766697244930453422679531592369038000670648328407321703208994505577695237968706195367057781647095548760626766460801506707884438094404936243268860778664698191767244856488938531693333460033612596957746682068835804413274295642240872796283211067674067118688267229261955553144406743662173670260191881317036584374361990578517405812547769713696377201359648857188058313276661974672064515910795621331698368834582338720509621621652623101502544836997265859630617040837706474042227154456409095627552461455433093585373399421854400953003885290875370403470099559798539214371030905852039028669029672450180194469911427832195946505625887779201081026038433346865470376305480965609327061458519493412814547147747229118645355949712061175887451637493730922746772555241564231972007882682430271825204184991197945714085738759427732148942501640300685058797854978287303795472299142211446895837472048071660124524827417255643962226874291074972203172144528767750087826597297880606842079729027159759493790621141641973600243732012220785005916581001305672770203574367061135129704229314582851254024018804062176027388795315720506348797895335452183641549352071720995811399349569896690330673565658019648917983724183325226434226817668755511208283794699957144523249197556052921033939791783130926026369453083316627626772100258242534563747247791128131130589089940464718213795007503266721422359837940937670241399811894286604681380480843542208664536123685748520945325806141224900330015618110159225436180155699171175162998337885548975282084667508141548804563848809856276117812880721693703064319161964706428146561053988673996986428532534049593038746086538060510554154178200602731541708689516378390453018270321116195765993222453775513071259372601472469546577619234332557198780655369026587268641563585821397284964092880085060868217487309389838973507217384794339599145026500730075052911024066903409356807315667865807380802491903056731813960742347314723625017920059887258897579710393703872214701493052729895117384343232841661657178478090709863668144328211888661486006635635512814414879474140951402959537373392358032672784648091172247219845128291576050623226152088518781816639631727331451760961177556839711214175701846498837417028113231940506427097861805576288564160566808277894202307818801467264220913169032338942695231295024416077672696384961149648350765494659773339839189660308038257001676099266863632319659735276101213581955416280357828256565789194776688498311768359828564889349154468326759707123648736134764559033804711680295479804778023863850491386767599346461152004084022427926636310011228686706412002853343280847385846622169098769466383217403456037319694246175133058278004224316622379119485374715840487353798634303435666968314806568515268303502978867970357898214751297149167695034140143686669700165364991113191608030736995894383784813223849129516512678016500891502462511226434025566167787745171176978294752280691176369974166428144118989827425528055595357792397787144901873984318192478388969731188535139108445922837726977939515783453934658850851848448310627862265937958357466516488166510713978653691130425506671075001933850058977446000452418520341237096176580875695739157481513402759295154787412724876962465355285055765181832437618390572414414685587183397349706555039734505499117028309002829944770775112691122068670737484512883883301427911579665492277379137348897181584739543899101212352726417158876196354318202132166394801307201597218485330855957226476327832214226551976045398892745667634759600997141953736282327035520819819399643962156709805813611479208326151668888741859235971899285057585973572904277171801253725196374506312460140711228006449031320588400318712501553516620079369386696039157193639998266683337797008205606573356098602997941605669341751120049163648777114741149788734453109001972206253381266600712351692105610303785819355358642071492239429836964695803259713874557612699794623632241619750949074192163458144456150660664319930091732266954208537383849066588734967454894364440978902323848569072828896125077256929064557522743783510380003707213452147202143753474864879238789346814391526236455736244550709033620235782401148166511806909158372278666421984002736417935672310123679590126739395924254464129727476028909026425481542107284953396995551924453452226622680689933049113902004155640331213536111039998167643133400206143953527816257243871326072407080946100751306173839425959258394551635364965262824012961575439016771859539468716694212801958503649193937865974380222868327945714051554207318404965188370246214972465248094566145779638439384615378616391156028578179056598147596829964239500136449796572275410110138080408689444200059457979222177365745149834647453426368807135978587997370378835256734489455691964422467547915305585124352042349614057346444190192716719453437673931389179287919690963903015179628180051976092945171856498188475728341286452997854498560012124778922902961803303708331230244636886779195367199190813599368581990301097424743045848025037153588130126464340889930209712557943539924800058826410543672919581258015678142853092067717458064471819022313777130394216102700266797395375942198284728945396100775769189202629421593949983034877569281790862797113857949967019231277588161905292646082426441825296157734463839906606779842876956612430374290769879225927734489497330887457398169588680018426421920986435242104465806267667929493283132604967784162123355397584081339527302373665124340384186844480154816896269474276105611884491384877424012053828251680346887522332265137871097076310498689869809504229887826858482206934341396334688467366323161526328817369449212054691561825859598726629206196788104396138439952476322078751394773378240996190304051801100972961730209603617855053818367069493540098977719635182324066176967354388485335031277248116921475377252604528628305123300210364502873577695503343639175525314937027033003793044164881245337602237766508700475809748461183748226867862450021127921173014072749465355262968792401579823474319815427439021828676610017663163314585846413568221482100645963889017161074973147283844092219308858387664603989466402037612673875880410068165395614271159586330949100140379214646074163155065158127716177672830978147333265861510415841058244035125620259373086219848660503417462119204695702315142458933925558138430025508758130374955016390413975092766562778198758951276836197142006634277937783104316183775815821441013677299813622792156736389855423115142518455763106503349117330179637218048526625178840737336587379896785930365767399490206978548128379560901548839003486595431085239334916193991516258471915878544393784971349959709002474522740797550175991248941606043679132376878179862895723596434662076368242456198825707773934251076786738929235019564833558374636759743703038101922602434537298919624074727407595403078808857274438579000281596065452714561747991920843755655123132629656205139528714776426170163027346343314213526054519399042618878974287665509371631975076005548661969796636548518102023150103574095430849447306897037918206649491039723485424221125869346167039012662919094500367389915477498945006715758886682630802086087867780359573959520177365423071007514067437790143060400994418085657997368961812837211030839375678218576464708172279527687561095000520283714074893429541097117408113116480385246024772945247943607556731844881513366470723368753510770154178483742409128078951501733051351764972419943535241596434729922942858650652598084684777028638520625608456629476306745586662737253352291313272211099415842910135618346829862081425452491260690452184731842494560237596212926484827925959203730161257386995132857046164191533677480133482244140729793483033858112400943333416488080978756971252844122323870844280256562711550620400439824373065216971198901515868935486296228016872944234559422834850570705790211570072299237669356571333607339067422681815761807798967086117528528976208096070515852593479527867228608494029827653510589161272406968965729588949587722375988122064126661638494660945824837246776005485304364138281421913294495386457889730839656018803108141376475263415220147471544425877855016703032489066776785730277623663865653400777852054210933510167945725475755056773476696757591207907219896646210279951326330559556024923774979992612404282702148092605990076749921620328544748340897649432879152504720316162406821183637776853866552864385366201831250169371970800636248349632676771855835977699007287392813810545160976039252178455291403485093264943510621162558875457425243895510079825360978112183170016969461181769150332553455009300264189660371408719653378457941464508922138382548581851241069112210884296921072318515664810308899120502142927134678826926089141885237552863214916945856956749921435932912019302705723956410536151250462880534432958033903541339856443146517240032785549330662108637221868259613284408749359724334338737605314725524114655996777845269352785753620598769000458044794535879729460863952936789142111435769375541073740262259566580984560643338291722902513886865834557853891119656188132135414664497365571816101158343119254535470922289764778203520849282428531971260527707122063097008116794930997164734221840756695177171417263585700888379492842390598640745920559451630727954578901289973381519627622462886469090292280618436593937745291677471544341324962328982232856531376516576328216290535048665469147548250563898505162226828323700241198891481516212066888708235769133368183339964198633008473116270416533888878358873147665170495209770491081883466142614238227094886452822458926513596439274842985317875058314538826786362665092896675526337544613218603866725890501300864986273713060214058491919905597468283223769332712304702882846305305215949938094856758426948955749992214139723865858910856953399823571481092728427487253278702524590961547663597900652245444049203695749585757923834877010262151326783261314848695979387287373840112072078056317552714922946183328436892905382167570322239724478068032165435260241025532824138162152973802419360874335145669834417996291005582788908024053069428873703427731545300131919406077724975194804889703216586188553768996591578434127223991212191459048002709532864074461058786471832450833183500736946521155014464396745651293332049363911002462877965101331519524810826351290469584443224959195723178422422576089557785776007822498128171628659038079223214721825656339753554627484124766522362980442001685129863111863303673492680298072062424467860999013484779705671052675036499895367983044584108354685859459114441917053261734960122103954621592789915286523522916447139566097427344292020429214610953999238589060611946618479288088056835348767099419735838452320912954704964985026502352833718846383758245541893159944026677735704319158747676197293795108602165919418744232107441839761606391285762361681154061270687616113794894345692655019971886493304156533314954696585292235168110123874271250948086914719133201451607946255430529648475273923851440722165735062453456436397299719703592945407596410213028614708366583568314463285174752233186473884271353418668931053367555411269183063673647271446082407638529502856658444564657282521708660441727858255479623658520221737081771617266029729347740463676383075461892674674569611118213872556440818248548842373827152954380921733896025185755277504865655030999991684464088155466298662765813203633940326333709856050413985852064882625871870631646409153514937517676529817517874904117749348499788967317274619116127145910897506553866617653154318114601456271046849826049611059475193629227504105747739288074632773508272397977002085731375330606518293750464815539855758700480126563840189485890592428421979642350758629451346701581389648410904759055924740622123749617894738583400756616157034572700543066114589232552937267009179730888727218424530389285470013536150638049653750801473730324431850772145506468627137924663033861762999961172857237188176735427791287646176603704965356056619855776911351810707599899290380602793305038462536410176160531792035776582746564275401558306784405226494977562784870861401195560021796490879612782204041438446743320964860542857406604309034741971854133962477839913029652852885774416862343386497611320218309796218499911145625765100709555980120967087825014236381472453554122919635751666118857473011387836074402576932348848504792088806145645729639915663590250980146205498084755172140462708888411112704229764698519018803300269080181238834488370142848032579591171362423373490669172903667749963559537471730126848624954624003784920882595989201630299088307371325441033370967550557027996328548803182279788956318812286307390830723526640862600251626569881042368070269057328599255242646900237754067677553355902056913140973462506575871698976980221815534652076751047348215232769569428972947071107950699549206076866692947825426049870044940308137637228249604199938187635665232315920861677536687065115292340762838942848218558925131099077577064439895135212733428946809962979397043184457594317690048950861394189175753397016459153789244770379665464985390155925476610418726806772959096037728779940497087307418559249921245194741716172032027078869443776783262655016884251146042013873295667766559810681505244272231209032083712448241796623825631812527846069074164684121213353473458088554274020647516539606244042979909662697053036792291299651194851211200718690173874485681072657006354390336085204137982535669215827897619570915273697865148940073930457849335491849607586069748039722567739350947972060671947654583859939147999143054205502039893241569927603940118116305310387609540703979852322504841756818830020858846453021523134056381918304000074914838993087486636038804945562560548429116555715805863411053961654895257162562142502569900174360729769413010740122924540017061438415659620687925491436141636338073602300645725534545515087519325130999262075802780239376730229782218859587726258468782204716493717995690270281773933994789667793536805945340930902343469451074202137807960224789667068432187127593660776667263472241390787107280137485143377843003088755345351625880240403308318957408892564707738866790323405945871170943121711772917402961512790678583581808535907779462922156773015036599988262026246590785740196484089524310576923732128206887012025252396120275621757039105413336654327373169920349650312188922024352515808735030814231450615990208099481624965488827134417379638253501186502484052682926473752457690052764177943157700860614822138355940566192956875498531268474347646574288897127865534388693104988952969080407567477342469204159488968837623416100449223724958734285425677284636350457793482114994371126526373062957553801471173861483007753864769240079960627360011038940313426110439611115410902161456696322372256589138956694747833785002250776914075928070075408102187043610069946996279276146408931797987685060805380743461317567989410570407903194416636454364144243030110620996082863884462053964161892090634361987518220186802538563381967436646304056229168591630179889346290512777472734779854411362144980928596089210392160393227791968766394546646280288065321188175019451394135774073305465314925431907742009213979699336471136517621395122667616488853310079319466250200542384227321073743164961026203652290184934378900853549208110095333072017195179245808704653434669272395917473163950385175552641668643727281259074234152131767958161137722393751491701201426812225615422271325833718817545141938116122188913484650863805902775762532947708955770265831329204273691692339593809378951431486955568512227348487059542297480960990356933043650512641476068237661584294861731853950816690127560508156919025626249933965932003925314445645025021278559865582978531130943227176053388307838570006339942436621419034088527520051906238293761763134666493445602877571916238415324144926686628932717330794508410596746905187803029900469408432299198175126645589430027724271286112864192486342225874126170039138171847458454275151212775740482281199658292171278400998101015940488583516584418486446259272331220850514650498427550933307927146096776236696146300011331213834800512350723052262854426894037560690811822334942830753293501596740836280955831708998382491003456902683420675723748548585582080917710842182730665164403452507141737379888729759424270367111518214914204324613070777507375901839661003370066562960721132429427431845098223977136438856748830606634674829156282744790754171702380886964713455999365040814748605536915440751735407331545147344136895302821025270588556998249034864108252247291157742558307019380109128841198757322171180266578741625394527880206389736819855653260745576583708120244192338702236776792130663147120461663453050835097987492138846801379147968491377438505600004170323034229817752323656736063127804641693565103079453598832153857176215872082274633167627709786886768159401744886094018814125751688305748610571263839019195693547332041121789434612072601514749207415238920688173093920364496935861393799392387755107934980076116832808973735715444846601435773066078349279649472251163434651223741592658727243694569720863330739287922729829802145262011905751164550042030943825193596593779151073088218328294354799543542318482738395942125003772792556653587477859457169061722633249390071792644806226387778542127291950248805333942888986541281791234496886104282799274412720257548528343812911492019223277726526676395638460247090926145673291239247290562464917998354870558322143100854438942461985530832963622460909172228760705270943307097275742425621326625237865662210517147577265663734019470949370274862767163603776115066537738688594777066452749011286894975576131299915077499229207019552399741087806827557751795884153013407600183993959627243554755908004373077541091077248234290617242424280546303039690605403925380619082179528847651370748731421078727656966394519067214562678645249637899117012588076856096613321735926837860120753002130878330998874209521518274522290575101850735671949241208916682194695323738366424894801160157646208746778994648353480113671763392757269863568722657177007400734643473390590995119135677749163604822967564826565547894547504283836766829007411036004863078552507392882597982198401166723260044182577397149631683191995738846415500653526821416564506515271520877513941899294196940644350920078902623363830291786994165133138228508044375852313998170489438775013258201372217877064003005648894857747901815451097053279897910671698130629962121593502850458394682380429654624854250651695794364723291000178634268900385475375686382896750099763700875070328801351139449964271683472272794237744246488750890319053877816405381279303661863008800692794667719662239476470824951985115582024407959875754213883480659417054520157031412845380413389909289998538297494549246167156341972200316711673569233072542280256779284898333171353911131710800458877806470828471946960755766274737574505957702567368190623288227907337889880727790593664309815138251093591880345751412649747554087102473490395583745959541651913099174634751952215768145801472599326352372944108564533578655377248730978367093622747483571635409654175006593322857033489244722202292778253009040552824134738484673739913640727804107614735071389690312199193745047145097201312560577328577760370258390715250760233948429456370625602380010271283781052459094994541181969530304524665616422933136611714244504385746355456067793167989113079522751007821229087977948769697810481187681473113555961804047321667298042644359682187636487309688144589429483966342971886650497469046483651752405602952829713592994633181067105383962236901826198351257832835164040693064498418738522948625582125779681771562333488119584698411327072361085624773518368533366569238795545213098836565299465920573950086921023372825835653025062224800770320024101497195660541484894611789457007156764136578145125389036806613931911100714509374153789616913884261818557931955714803411719243047950103043995217669134406506460391460140083728846433093781492965326040046204918479981466715299549588956672653204902166758509299161429790506685865966597376894325815893718090195008526610790240289641129343299073167704316984178254232613422543421989580244346455479841987177511503789225599946997125194365858610061030943667488058736763269167224907107274369482627992734766803193446305830068823521809859662038864369578879699122783981088351039136934508074696727370121760051962573716728344116366719405933027187600292611216941506129508752366779510151116962150594179123745408711254075202916387075763722479799698368668430914572162940815880991139019040057551086821832716491117008622372078476459296687698977987401092121393723371087701941711131366349971735320913275783145815558328276459588794139816067182606474565353251194769830568509885863247628254950123797030927949127547394367597409683662789080037498114462692116063195788546814650964411634435013703503206120488895066655205596517563483845876551255719829768454181706969081360130914763694661411937178597828513590321914366565067165440672630407927668135980779181152255119922294727427132515192155580801095575118127627219098630425211188068464404988903720653999431295913348507303550064198445880525676774201525572670435182308669668494427443072140858315049883705763254395551133181877006292380643898929519854747375050056151599457110429019837590581982682494985706220045641960123092847272256955760685428455191039315280052881937238248744405773586752111082124647666445188233938621452788111866055041779427663236565278895821635346509695574991976440244739252101606430480770132642370068303397670634807765703950616267100873445555252239068581532472082696783053534778128051586376467624559767140652050593530629492936189877351987848139959219529447821110338406799652938141286607910218323399014481669429465619578091619348769382655262005438732874765315757792449706982113317842363995226213753520676287171828386984348677609986030528170645234443869407459628025441785224436624049500487363455428347304802414792927298645974708061390154986001684598109590511476142792256808712423714697994095700590301290502182146685760533639788950406038579332394802396933671988284058983339447795212781767770280685153794036791760718411453603501177390000815900612961627382507458569210516360111966038802488126737611840078605452263661357497387968223168459845236758606688080643640882432841858383445883923374235716205800387978893989117613420640933612395115279336438987343621676801620956361052460935470438739001032723654755887383702442696534807155451902530958083786560206967571726367390477529320784218303092194532436909629926929897311957689414524438046414758050605148066104172533150674855256475549854922580829500238929728736725115653989859065948333661817770774531492648303876282800960999191201302900516774448474598747074120114034442958849773022800230475219116222720014234166921234142892515992273196712489058908645367592008710655074357359775516049970366714776896712050513706976769864181096526053178216108761154262765098365264499450655625769937907162006696073592777634379856057517347594813433306720038851541768227958826474842742436645586000308359992975676243947679896097690833796141688943992639948600036641377675546668909176692485269948070468953353085271522053071846313474746601590320990714737859492845498507144418428327824648093237769419063858657888870999140331773776435058907958753918416440303820116290636883316032894007355482605858945511203479654864482513798650284260713973302944221349832754061253719046809625375097763406691052628817984388662878019305766454870041202959518985904174707523483473190794859459397544972434494035519400607122932324595715545300186837014067697424405926912243352302687984542940463968863204679067655917038859720594716821444220562868598855650415106825810315390289756446823777573689468584734136705172578933028555234957366265312695227978733543815142890346170489452907295224532706092658194301495665119872709230796634838137429965501921255848470495781968504889020931988976755497711916087799870893519478404149817875248512324497312064362758289833151299897028148352562541621864229527404333780202186159581380595232808415613873338827546802622872994792079829424472878712000680504853485928410620233354205720465193331968870591572180559898420517205922416114774154295637762532386142877298374079642097975100625618880078328540261093468896740059356383991138301220430932172740370822775009120227427562263581593454336002786266468792893140913063442906347097450414105718923646871474405308398790870503905514580010312828782270330059925360473171605396566753849246627424169922621663333482091829323193172720773537239878518575996292938494063103687783915915700663429693341531992715462894523594073196791274034881218308304705596898673723959568190358326182699096129040529829671772580993004313227166518833960783799019197226316970813806406902939313963852348349775852214046841509892160464104821333730179768927257587903821709674958384226351873905647795877334261515953495265008689320796970259282961789087020149921803428135694200158105917246337518208293612734659743376273412785511042094073101956768871232415893452672250590014692702486741653386981712123877729798526662622540909019987528118038859004418170936409789287489235884384070789900479197187247619620055741650960128348721920269683714319489624374642059935565759447808495226984402854455951581593779866895420578292355923844700666164441925974629596436605598706356544641629694726667553175892906647590384269208047684296052655663234558801272155973049908654998254417505633934727685387987961030659777701086843540151874245322504790188433787095804682635032866892574255555853475696883261554044458908205457893987806483665710143705752813096350344611121998055444519827350649462677631269469371498052188456372955355446003871120398048389805580556527668660385566524820413920476254210549465951759284192216419667771161957523408839369109514800726688056733196259716932878507159303010289995164382373357018865040396353425053283838307183691821134287229358583176852279389437246788035936012824535625940213972055043967751356977236770642430054896290847834447628635443197173847285112209663982038952510014505529401859151470225146485268231462661456500605018601494509691987905110085333705701446486935411631303298048911224736218570108133244833747763001062331859722623300340292932955237488437673976940884801453690585434577653873915636092603549638222442305727135208715780449260736942515289881406687203337699708453413899870311193826172513984904703735400100772306341284036564630822193743606543084322785854803920307019514857541658724634011843338695516742933917718591071958320584426766832674446505256513560083713503838438281427950061892253999031488751931380516797043946225290176633351871158209791491707169570606949552260067719008352457561740470363601474377962882659513444713569793091842134984786073916445746460604488678094912490092412993983543091795157975750603976998706217730180950777676749403764086181853696736601602107054304166877744846529698688717418599946924797258091330708545716441787594647596476236681993855883612487275817609718529878254555415921652317048826392112781602648974265597800959140263205180490023557894355977199602184946397274996607649912569893947881276096620392901372627942984697608634283304877470324560370205481335306090135363732448096473082068765071119422623451334575338260707170124848901920142225359053365466282118324127754074896916539622329180504302161154668607714950365125551279252338524456263840423073612674200972794553791511974160276994958508844189938157176820838344679376258660721403346744745188483745843031360200790796994098728767320948327702156393150271226147677696276843502155894772520043742198535758619111722584299711967105633506444241054045628601634332548608083509277118453521683270285937282475478750424654001025010156624058537893348690204468616609454141349948109200590997048992942674867352468045564369384999547646873624954671004644456347794051416354409163816075592408150977828080876977615084085461982472990287279280369994795947022584953226149984914304144779504603566936896832778923048705077917919926608163616654238091085468516281451822710392389660409302128551466057061112017472427426267691141865005668652748537532234349779534044856952972133680949770053905424173326211070692199385216367588953616596183998118838962184781370354419906654874794712122308123035194453827893267055196206009050161635388635147286677917627899776295953726710637252472828495782440423697617537389549132079342883661826361546437872156637843400723257451047744248854732735743248552427426198256578784545153834554919262632603330142708681530014971696517985922493549925674439698180209102935418048993583981091353709884974299731770609759327183277812239539366614972495604256770328019608111937681588344768929653480255601508931624693274792738712486872190136036668109166958143213527981500669803990182952629556018091200814634336118733448645076092627461302795320762129918638935299894806795148732702736431316704573154464575857201410475811521762761175928503594653426363837497045128544177874814626148412343676162677515466876878789463662359729847134193048643893563724479491604646685860657319775914407847886877240507391403790691258889189177891421981536840375011026631679284611964102436222325321095281742431085508751306400026410580536183091153637039659077461838332211784436011361798481729292244906847565992642855432089013575887373011477991518885997057362418317137641095983422849962960352914121930775659686600410622554494272703257042693970675638424905546384529302336846573149586217711979533996343924423211904028873894343723924334139956047014372647093753063054707233330799265457572210078466731400720016331069013995937557714083983017236894205212361373292993512737224202115591086786768122150545310909240590875422130166788075735032381423034505682334007761695306178830450064675769235057992498756008497828983583151315607192651937997287566755781180533329997338083051188939452007398091713880176447930879289423191791997445624629644510896893268456803896020854137406935291236211664321530986376282322619641368583068529347969973431772703390846520063296442895824398993066105754147687034320109491634475492049503353696876111818347461481208741912022069575462780134116851299051577487792123411198997669236280273232747017539779767913371868792777402935212412240989322911291040236102212540172845862990982404306049866130036645885923435526077277281415771680075281874217402830111717594628387204812533933736114220037546416611668711532815949952110166952934820877712106427191175963386089047912806187802779499699924746257614536634575824487609021277803595192331711416173825693134478456048566633178242880574374286987103698682569824766324240983697640422963125677472039452087720353273482561569368884542718808804510180051353899900980716990446708466321184778217965810229422000287088655870853546015413407016471251118158490963498671846282620523122929087665119304997781376153600063520421960331517748017762217817189987340176770586347346128551305108942977467942527059598456835115757866747342391294031732762926722900580744314687546820425333777664569083863732997146101935611905985989429245145369538465029418628237931691045548153216147393433397880749870206513228868157944645431848236720817400372270528246027199441628795541727522502469898359882392289128924297871204707851164368414322097963222053397710464797017779936554999552008722602551068712997416118070746961852532726687754235435075756737780034311305512548470326203598949580247762645280435786151877173337622435872981217070068479397660068333681452385105912688201825741993793326022942034810899361675296002687018585728678936455805830350263488052812750737597374478951185401243816344758497157878574683405395472340329225701990458696486746535718214232506019847205945961977511946549166529998549544993873776055331527207058116586486653037391670114948538674624242789076705375885513879450351013738654384641389092699702366130303774039786741240830559667321393634162214851969995399626892603648738174887417793574816061530101332982604924927914624337642796320489361079343814314269227650259538945472425507950340294756319640608353730041029729182549352904997933815603365346213015132617349168271880802402738101591618524360066880853930001213635536172675264556959427410879242781989731439716015029633421479148971799802823745186081545831778254378975221718487509961285485622682272409043430569601726465510288622299014485611010485100443108208583314588824778720961176556004334910532668203560885209972092095978075389094518238197203926820096505864920843619228981036743406274648322660740409672695121178457032964153420848637460512423067116661904911981884309603613979121736752854917838749423057701382292117827307225486801294308464659730193375201282611451212536192583488363614600571930032818320802755547408697856742845846109150392829999147157133063160696992378093904667168842610456134976665047232379590292022990384043506296612010961469735167953617775826483424014604774636565601356404551536263568901882070410831794608732378160394020493104586895414714406286266204224763864611271798219543825877076237816143004882857327321590220302760516594389942051472521139474707546208534845105864400198898965466116149352332906615436183286450018799124125902690901023179992663286329940196574224804603537900662800135492676285296961192490293942025860523288954805047328910879498739846018914561686224172977942072418453612759730547842501709201625143560289222631102187930106736416933130609533841650567956662850567610375838314087301640726289999558875486618031527693025719483950578653227702917922186747531118237861466829389324587347219061078073351604867023965921009141322660485963149759570596673432820483288171415857015046724141159694840577235446224010737157997160583942790109314211187120776992525009228983500180961989081634126640253310902600495418262725065384174401711518687834331658589975709511358115892483470251665491663622065781329255702260093281148307263871128041919672220941778039722726412405085656872262801655011914875503319350494587283467219370935623979830514139102449773010809102657991505338448460323331232408771267143951044908548071553452573912587086772801629623530308363521993783620939727575237284176649659292698540594025189145534663620447010491069387669771218839182069835558652340296154815108476953735943850485415964778677637670761431412127329735106006219589868300617678524196665003621655480920177324677571328109810311933753749217304865489735446703505245744355421497747946680773932253253715334240003471453412491131410450236948767672341407620444199947544165953257246038823930494346665727272523525553993051292918481571906601000795620759507727525296101071035271536542178479830833756037401385447127912162646740614705116357904908829156964142482217788426347275873580913132511159728807880489568835089102939749896531361476917859652940154220919698500873657584439241285939350593636893053820038713808653536792130219650477938929902858269928414680507899891356175072745812322876752891958668164409861091844439712464657637470613345108626429041008392065563944264910962263419024266695329080040061136077619754505824577385202838711663297334613375911623214540093191573702211072317467968899392813781313256147743664349022041456101826726788878554189719543523059549934079613502631026268418379685190425990563231256844684733345766131603234112385225142779943198306943321296283534961773229008774092177680187999656843828708377241705150214567184534638152121240259462731394632510735454089874028693610334341251409270595929447851805271089629510130344848888331174571149730190190489289430597030796340078649254808554363306381867408900246021487090838508200785093969219403897613567697350082510876061324918740675149223528785461614279996879836157956164464632760713167038751635032057721676493484873154136163756835283890507116209949986374407885588670831217798214876366252683640248969744788533829889161961199809995369052100772907563301116702888588887813741825407233321098955763460424158547529944571972144549544369839558182938498621466797023073397687527787911148832643462471724001507799601037139062570287786995428882737408200087131140670147319225254926792578136657599465430362775706288661587041653657576108930927802421541983896593000505446635036185706691212648857202913325566145655626442147216942319933570540617600409651879859447178539042195850590434848587076228890807837042364506758884965343195885955153499185794613721726701620475284297264698825965395855285885877386062002115029275410086369325642436914062412005863302694861662457492798415150966730324070404696410213600524948076441959679427856848876461069750107966246738098751714122843184240531073223540381017644999716891240158650919769947210638859054987167836657032509737317824751685855199395060568622056436015784142814361359866678876569629365372291840471515337106484147647023044722574303078931134495271257127056330483968841520910677701577569256063636858655678065747659909505197020663975464626340155325401135876813693020258059957388083604178492231102796332448740475429955648556540466501806996935102464132065394132477656122717076557727728179754686659548169535560398939882229867228122437362890137038598402081829593188134826244948149227495156905147648875929013185267268596443854704521996884801071672409935172731173229616899857324544340925026409032043484689333188627363819279413972511573328921608550613559549797668580822957660249666811106884744886619069548893677044141875990799855966730727362786892297476117951002507526491889553048715269883982442759585980498609275044195523361438690870337729865215341004830340463801014997081201447128995242414764795445219639303023937148422187621742486503538762517529119370559816207483648610613398243921611404733552117207169113739976812493629977614010808873829868725824757275821873587061321444524056197833519656079385037197546941360205489740675323325821340449407167659632942930729446974476085204469915750099529279111847651561758216918134822385234917870673593392574577209715502745369822517350060098792821494070590364637972020027675008051917628667349987187950457946665047063319868804681155955200921805015255492625259867407071578870302871200767649121862244733354082458062742577710389440224989957739780033928824677146940921592939923515106290270731300184566528884136062514906826010797408547615414872482326894432331040846076013547013346626837318221257573299006639532900199004055794056349875031034097492317457807604415575047482575614641835248141615155599598754769418164837018330612924222090433802386158090223290228373150015369699913965611827394945015999124771044735901897727111044606456034111217177413346070330711353240116970905940804154955212828330202571411677018729490740411193746026253904348238574802030445742619229386027370929714502748981355088888736579914708557618331893219771581576331381610041108974565707011928902328256721106271229990784944208050572944304267400208039401788041807123758122382736150861346522847406036295041470986563927829743472813388565612251134383112424714996490051201139803305616556938109333175690246962423768426119236568644227265714559327566831887048567615633863781994699173911541279855072319527150827063960018225618228900548385587209742500366514081640878766002720206741717616436098240384043316895647658364968372583054431514664896104947538870515261334423378711146629652441288179616956496836149753656233228588295302403326129335695455021353022503551493246414284482298862167486756532459591105080441237897811211833684681070950964815498471540492573841713367704710973471889292837475337391498426909231162938593961992703689914825477043304525423981780353388937925668017213283872725872307946276040466712533045650205982652316325374697474021617111026137496082393515101445038254927629988636060323644368262085462563871607446066736042024652757797479637826963645885168342440989127739521930972590843171771107058443835287882594626326810365672550156795734490320030314128519453224655050269884863030726461072650049373206588190026145246507098711647647166058794779290601162404330623793493478874454840210942573850336336480712681076739285606338394144890430549158177981367832654202823016798425745502965710331259439589044995893398608654558707306870538777175907677843506341651326860538107759431861383107526145829816724877608396074342111001039555538449032412302915247792998004948904505045402506785504467351804256319115181704763355612403989510201981791555674232217984824133506676504566043315805053767388859751063107065855433141886442598447004411526635406853837374189416472012462946437957158264648683639917024875544766119036484241376425805195867359879540959027937339599220852009145494536281821709104520597668684482937747436475068079223917966862755762500291867868945824894202643803028589819032597562074819473458545062575752052267279315111301930121118509657272102149102471747759901676839307569265162885398548905303163927312270810988224673623261107368577303378307288928849172292065456267580782141598004819358648886571071087778339089542752194477779823653414330441311693299731808103474431137013438891927907491099811377354765712019495227105063503630804043519083885764309786273168129689557555008309981646480257815282798456105476439730656082540985661266070436622999429683514219486094115218363080731587271285672225124164371535811735490759572276510236749381065549712271407254125112730180397526868105336516687925429515149468990562389756761064347299071082423905159229736520802634848412404003951593960402311139406044793970046851053296907961726346278258833060265256869148795847028091256737456591116413028004729496261843771189332400593820993737263382371239013122809992220214711003297533368900122304254910300965655346942808814828326453831247679207663438923523180128409015905185770983905938157331313391509263985525716062723152535401723178443319710028527979470465512798411684471372093326448533943787095660954134600539207948126259646347112167112630589549092321170110639219042263454308415469550244698996852883588348403713339771987032682616515317943616531187909544750667584907748777889621203186095834635334936323104103580433487981585542408256159696694866952971570649948633225677962709823823873577954381048189226935259404838944127240938960225052632518328598431944637601714350207048050422113649520001447778512255516425978879947544757566864120715178634853436819913770825830644365715691922162490160764516700380361577535828781291646952918099602060404144333216761185563645969936283182487283159523608190322716105505925413088280602348258467264908394029260008269310583199766525743102548992205741304144274929435717632230248769074936298729568346148486521932349694619127448990838839300944310289872697231224060450516082328867275213765799303680395928169002014078191946274898849689147552982662414808657202487214618316779851246285929124223278951374694827476639228019926850827599391395680390062830562179166996701005625105873608007761994130720072316859157085520806711772536343297124309411668334348163149359735836903523556302048425867186835358693410709846462629959918830998977417498240455647663072385294888746062301414727931927160282059626228427895430034698271798577426977629737453961518825623496660600664189956552826745403582256098643149037636208683779650834728588993599531687066408182787264932014579466398274480979826162734588067783413946647345824717111156578767694583780363895567933723121824351312824061707601346457140579526268825454268645541291730738297388985199647169075163693403292423802820432761412936337849791825687180063629670181267706875878054210280617944833465776620909085520487178822946290240542116894006423466535155755353499268294483473192244076120353050501300683357814950870086568868994096193977710525170152671346938336658799098292394683678252918022091160091347550235770054148410781151617029696660136469370242719637036244394210635042926096088606114412447568499903965651321823033437925110387314665821064103968416831175863940588917844464524987820732749926447607827816314728223006504677832514789917806299818035880282925705101545388680306275452587619156948558407220246982079473038085849299776261925935700113766973093192548273189440535739921887218114704445053789463333484175555182346605078037776999408736743623769517662435084347628681315320166528973418683363949106419394043918517545719717440317341639396864327675917929478356992093505005624878484944674472366886827858478405128631556634599812062224143016169513451335465606576881581512971182449499279531939633712509442726630412394099993268842974677407908222382955793559350528762016276441291889605747810261424234909427968996705415004724308349301861143274317588789925676493611405786486615807297182496454256079018142609631784757532873001327772567199552326787555042009420461011158676369520978014426242950819568035591346334614038837105049336914300198358134209644814085286180966277980830843651539866014072081262116064705276307513412785822344988194171900649594189547756803883503227512215800678836675933263082694960915091401150644130881233308733637875284788543132344582782614461394437275034643766793740158508002730055659314238832218199362455836517476767697857732831868489883341791575614634058630671107153376611176924790365874866027179614070716626240094221480534887537132981928788945628233052080420647480073237549311907346090679789760429789992449182235350929629967460522439530062352143103274715229854901888912055589535981427450146233907030709105574487228552377713398503357804643159862447114657919738500458531003795200595537472114549983152229627715385886325226196884706830461768807512974239341790827449241782707105332248699652219573943824504219001269951760383744603643217283799582658571024448982528110870122669698974104855709781247760874401842229993420265187051887505649772872595892092521407680928277941246876888538219661538017327066577615665536822112494195466729630547302235499407108348266285055265255597410744978349481416794876340182379487783842139291872961640101028626709674889439871455084409227482988581040994738755913295249328016546838220372841006107641254460492541488246633041542937825858402724035620529830518272402637235623437629812011468422548509170259980639042629333233394681209695122700142031483981363353029611130637080058047549851904492234411707059022707027428411481076061272898483904473929506915340559441018852352657645466339597755525182797713592254648647305147899210091168202426150403968215553688477321205673577987934771034733355742789117874875777319890134951254712854835923015437256331175202794361737600874694726900751166959146725488773804079157735959236044333528571871773140696995793358083967848923955065282675894724103416953847993207968337253102625461586393236093161975226317229630697772047912875543705384555072920427243377583523373547952958544355009622932021075465979449386321195536901890916000212055465653575778413414790675076655499823150132083437681812815497812022957822954541131070976321046717627125642480708961939453950830174716691186301082411481750454483910408724679061066363269799367882973710663891515254948606401186221900097223406219696479182772630248682376366047259514694605574095025048955058530298290490059519391900875145755955391707678561598951783947361087985914565984825295570379533048931663306601510069406461300692384451123382834504517247755500235890446046217513511301893586208671472922128084357054383501337442758846637363184572783727017776503768491907804303958923169592681015293232969482230479326993525737393635763440176724837283816695203990739234107215229226683424460654038462829557882060439979100821505112811422355823534560708111105836767994260821239772245488467465776769347270457677304128325575550069733393008556550813901357341043668161585299978208386201037209561988780675641858484306927184082496915786470572851677077364767670021548670722260891298617484149091905733880021167966341903738234221042139657511466855694506961672022381451827775935258135752014458098980532479463444136861301202494732685989331538616536893078535578792976544969155082858375498611729203160418157409801709374839334238568676452367240152990044538196998217513000099615295985945831414677125052937608090360091761935993999785596596420716818187630324365174080714382737835360126007890095994665146733003747765454401410478722899331816173098282288884161772187189576655098511023820150192400739585844614252574705722614811028354933542715457909811671278016872734804391089006596649942799402023591515083405715623796351284245297754031534552490428788405830197863970136690577789966927458156645599910324823591235903214613776203209968405534095071443564733243552334893768745983925950287834912736487478417930598228108673562689199730183349035089156472669338827882307350205606859572842785021969731317329616321248444432828860501525550759679363354853132074290280297656753389628399228772828108064471921737588562322285097849547753028722490275631918681881273875979357581572563936956097822161291550148168910699596410683432980946304083521751880599794705034748852985407270391128227665742063585187269652974834180443316127896545297517607330555590829544071919227291852130593801698929596428835280694735940212538581700027869166604060843092420454126776180659014485374551694878058298280502369000976046541155763546305038564439900158079895526526282149051648277628405042799989700436551639255324455427018298781727701161422456929134953423441781027965061434254664697195615797486902629003399805788546172365907974694749885005595106421153287863869685385872783843152942762761629284681820209143450418616018361846526851456256130005498754616740116612714299998664273072082812944083001552944456207801478762845072774704109346654781873397551276278892395317167925677907508248799083414022375371657414564950309668519634344303738770754485678781710478413216599524477422082623452966021389483798890327627975990221298951880582585853107921247127351998008587550617347285089674838531572654478677232620975546050989013234820449447139253928082775958036586155954558737104513632293369321287796270553193117661941334606890256590034690957168120729026234740030265625008656754736897883663849883491058480050617378491594237920994499504859841742954716220144493161578961390141192042896392071575087991009251048214540903873031909335671636051819760824047123529439676557593733930942107282346513332863041238063703991831392931443876242196085106120179747985442780081140073978937388350549465469052089521188450195999365623727443969251853218587525580117431447234522411634419966945536433661411750710665471713162464589582803527815298368081921330725142329759224831431165097884311406315485095326921513373232723346150399843596244570469205017996759430794747232349006193157450651930635685235291930978686661196163728014806825701934202461801794497088442477219232002235438676105685334942619142484689569315680651960860065356577655613442284575814120137581765615290987749017159845765459652867428879933346859898085902258920574567359607013437199364504609988035101212022225633940594701096620773635756011877765344650782243144049022286392346114928919464837089471241337057976228394185085589421081665374181478081767081407900808485603830112966797747795144797225092162925562470211409533456991156930115009446914173340907434579615473681552352291519649294059504864878753364116495196249606774440194849787147095801367637949191143710544833486195816818245677962148476594413465775354921773904881954124559465893658059835613333493013079524053788300813334735222855945763452586078804788130652951085370527541434670026596498246695457674596061083108567954596665915769582734599442107955004014438654323679194345146660794605813525353710398516665052859946411339555216153909528944276382734762784694940143130249920037821861431493153719262415931019973155697237526110492796147247333635899969633139738585687859655944238561149724125928778056908295497000411052585766744385488882154706693443914757519348269516947797634488657926372378398102587142788665835916038279382097710143939125759096949436104159894223835925752915137572110664485747821811639936551453818909719398861678080507750371912963595363866212554540660592793176718517930319106359135287092744606490614950053544198441802422052908546735516300909010622004244132889412890521716089442830561718819256520964201544820396797989245558272649054612284238455693702034678508816085355860393553941618719970940128954968910166278114063870957729625650260773542638586369193711918826599549522779785871091931767870634686331758091320933335934254339127431112272499188737907526276787097093169011016283963690987352650404982995851953936908994824334444618952726709786091070352453750132949236686583486906465008600945116150416861159546513359310917056904612609182305185657188098642400666467866027224929826926580768872665184552419331598961120468627582487031230690099981964644198003875003464691566058225394586119186730568851696704115429091919347626808964401508367017518746945512034557902949553348685170651046817040082194994769809580206706211053712096531744892766147460990112841276098261348075703940434371147214041904976398645194153345018386732012441618149300665268028216598528808122085176659989856294546495401867550600497011419526937873302446906527294373712325333737389628870472513654730308442984232869224415280400038113993217139600133447999104392683730839803909871836185778620300530597836771807563007822690822364026013441698323555235635616804857570517897067491405449643614669936355027941543499060105973544721681184715937310325603992682160785267947111080131226939141343700589722283003187661811006890918653791834106057031703979841753348677453813621821603315103033055876366089057570643470863658317792328376199670304068921409300045721241695385506800571035784830137757771037027750796476920017987884988268936039789976273609308607734617960256227655284034054629768130718282796730338363495419724200907053060094550923465984173938093784815874029605484967002036571293855328756032534977144456798680924947794230250985207813688051369584580765261686602747972209729283216692182968125303021225254314777317096102497372020556841627560193780032632657484074949530676126036211494334923717864155917855375707447310516304719263363775021037053566779190507951791338481222308578370975477373129947442761794786965423989007901149921986490448619667358719129419948739138156364855944536596048760085962436037359624940504417522249504750167948563226230018281557588924841093555504517749738405231748007412402590508913990139074656381786325700236793451499916443673183481100139478079602952101699476867250968994703310908711710779427968821135335591468926516936235059879844678389004581713873918252655218224348544378851675202546318626054574185515626441231310353065486173042957092328482197861220149154898134991923626668335134547145719245712001240173595788950659757771736468675041285319243446353341867140909870630168572867183970411324904336382506555132655534185661869453078697879557207659947108678287778945299465110051681647754779094781664512298217535975618448056596435232957365462055069424416564719601507738861773271183069765903132319679818181524874486999108309269111202958507262461968090924442626880004980639295829373927834809864349540984526246114405003409995575731215455330212067811748969807050515891988755728276998249378861877960871071603009498318830313435997463172293641492715974689749735727434242819700588015492180386687551964226738767815034166960435814379218349862337806809601641176656456224320561267535494788701312503543349949730357919596287015944245017688933028841821953779196296875792917209764370689066796656099730219505104702440811955730085397949677017441775619604286901767366597988678277067868023054383852528437852926477327351959076709371087858211788938326313351650226929349888173676043130825919308135843747509860578605448522849047768379689694102615643511857193378174290857339624715106143055466218332342627101380369322779270860087312051469854915706609202352147675989931858758189516840057057685899907153069640267296959632895119279783424236374364413053748362029053133975506579715184228699723659241442478339372639902099388346715313758759644238468680473571797721588867348905340125569852703467145804792028914235203137731259479785772101298080918363621161621349439675002915205598658453958828093844516537980418695698147011822940624723097632309760788452588456783274145765005620063030882031096797189884376541036667606921726247978743599393400795313052030277428948692540443553156512208164051032483038131972211046161647886209830780498138107993138195782155421112388080516786595839320120951399994174902661771811328150469235355185369183400704597189266677634850193524729097629611250063473847085406356558647379203417436992806091028688919132781422124203671063539937680812336816573929139935814735417558002012205126948109068968624572808672861485724305119742308795710791970737182527766309366628427575844701832242034174618366888268728193338898785325665569164230501981872583931937137240024881472447404691037471676796984667603335053481432077575313175905195522799099661923893749141738939715407316500460421408595069833635380852759303057129754740400434036112383804159296242824577771199226642195501632337562795800234265932971576968805870717738285552421776110343990380480207772802244828068122231220856932929881501071725019562940679776985005356763374527878107622904621622145881753019362321111213519715905356420878613434254902433532724475619570411780005445560319379117085778087728929232928803144132725989955735357390517189090064457061834674890386710358604497548283065925736657544772109262582277544342797171321078459781664438997410794102224635800414481526672021936550616132336848397386201880626428850352526436234507066871109210618577804602368282227171250514517932576110602389624401834577659401456731286933563338290405324486439234186404413666259237632152104096033164189216010342008109582731342552159942480246993757463195686564716798896086387038482572428511627163098033111588591834543787501711839656386592442832241991290190613960193220263366929019871001012935122207067317475953025986095390866304111238182810514328244269097834358932226889488835514615610529755622936357729265302806301101242284998422700299246693659844116324665252024233538630127921267364037870581161613692730071531076513687323695958920056338590590660385987851496390012518595484943987474239274297052923503369983140310281236005728951828208640431832445537994791525732118618364512062907888938779136688520874605905185738466104964308225161036059152799282580593040542293238243988357747898530656699199757274798430239430716718258079222789477906757573784056222331773396112946720650153985219736598411959723683631948455421382189515416127747474852519911398566063689623442482268720585717597142586650737257625608258847558173843273881143035962804550269138311085244483240311720073049962032554219583484436206860805694957023141121775885581314652498848386020086522020930260758961783757642707986420467051800074400039185495675569305019349357551594186228670886209939089900582253994969496021083792591027046354991325241109938588687255665925329826238503914801404147723069672534651453239042073276611647185715629447853421052792201689985273624565855547766598359372131082756474463142909946696872565629610855387092278694039472593314896279474059288779711711787693373042142895094485519881278675771395698074993417401956008078389400192820336594900230215110450537054904781249418941900079951415686731235673597821267362024082699566954868927096436906122387050633213255835559378958138788023028654841426299025617039043333044565555173597987687217926902580784212170968071078375462352166993564585827660189391107137681472071465821733666204897454956455356976460903998895135178996476978643186227556807072040368765181740314688642044387154334779535557010042907684094153638579660236683526939300402709879174473153600342041475291402802320685039780215795742343977923792130415855537952639684732720722477813764956815126709090142263374092026933261765648005742593212756681034328731851372021828064274867346350355387059272628605427107028589105596273946209822542587024006410922884878196172708745400625178909943451494406239080413143727067627489219888680367709527293268042123957827901758235737884248384926230230175997492918211285555905928356360046572957349951294424673834009702279230506608200317523555432587882382597364389705409680369317750558063608510982584777017861773308025959280967709944212221576095234374210221991117277113194031423454783351955836200124475043651335571682996654509534417955410341990545283317129257207173254431282560655939168428650084062050050172728123874739530821979976398823741572094817076967302665044125811354852538855648196127670470959719612709755158797182189805254618101664126895853632144402810373156004746184543207328070078782022693965133262078815781991315240904010820219850978852328520025477843447770406468479651644021690234831879771747072828944402698427493296515082036292349390303789557844422938952666804364176975239984447792903933260447771291508507802929745182768340761659376870024832262837876571857255447007439065038469706248469551828566605843622769868401957565543698917299067835633845240403363919605512839658236757026207966756474384361967592321602371989330353130565551172717843060818182361783341934746517888672278290051686694817569011060615509606445853681092263773805615637779547622949282266426040128933238122055452374168052335648879680841495150645273681587588263156531057585406835893489843658332899886501037725172087881695071880241431152444772348620211848388533087300212411028064139753315858868290555531907472399037640959620504992100107329906039400025957107131725558031266086657524805505888639191394400144965709969009779488128383703695831286162539768138823488691621573068189811387021559923160088632586850609003522394145993984736823562116830721670546997789576752315163337574499410268262371431679965325067242496913369085868148424388890836525842264826178253028331241306122646805689916336504735595046795374824087784775960090938804624675108110625708227573927922580745306520739242421336776176758020113365306471417266470148483477288666421584245635632435000763006512199856636743393065259376425945877758220280398548632364562110460162246429434781095873688707916145764246467697218054181189757094216100290754758730756988422761673555228183083824379980890460559398166257727332696910002479625567540281481910855588472196204956243571760578391168242355242366191785284888606273150801588772504226468960554780944346161382048466736127511976424593727392925355344492085135939467448541025106215264132912569403750009307245085656558462208145461275490145596137413287366123564034552593705835821291680716124452945499249720199847987968549197645348069230776869280539969609420805099810504666905704477344433553373354846034202539069259048501471284173204146422094873967370580933250612170328454221195421388601342986756520852699271764374085922159730165179940226819045731022847218467078548960921228123249427956393405945042975534803413324937932906933338839780001191810466880632741252709216629926326329824088608345397222574084950470493900014811715873654045833691461712458928300365045021513315543988286346941871675464573688892635915572926674815069763792513893310261456382123398042943894718336385368128650115380105404215495177453950714272859802167220029309410914754071818083385388203695216959489428439240460256344222996804969137608297376755623086966027123617909234128743798080147681078453131211247603136005005820215320282442640329394181406733863465712057421269954431444288947859309540414636793293629029447188923694669014180678753144709100655383098656147792181363291462257770306568900875933415307586623660773216908527756477341160472143102491982379836431249472508039952495249791412500090674744337698457522965231358228073619955634407525402484729337444343334970392821377778854703567788182269677046111195403078600309365951772544259634866992922500210704996977545799922239170923807473227803378332997576724344701143943533336127359063878351751051456087595844974285161332149132500284224569540978710766297526077405888911695027833668419271535225027399953949092146742441977182950771885470927216006649646940702125624253009945962983497571568558783809110975899948713975744230666458524805097799688205975740720493308721179760696985458725127341225720661290687229648309142184569037586971144486137705463755010572906766598939992926935710794025504346850547454528017299967039031141938353685749651656229346349035943932538215185150935428292905042285633422444479580669947441678017782483780530546584528049215367876055241655075036470834393113596851659025787512647600263969326159002173506833585533849023415666881962905526901657308125294806785907964740268322720281077878942159667474796344760841674970575112676430276823543904568741356061086657911292241788160898688943733758415839859789554892127092010027686722664057619113653557576552580000066253747957299646725682147585304863147577978646976619402021143069748319105454443471344270344323479128880633537997468852256630939369101773839422958022844620718749676393382844068327711339883055253748982960407451777819054616865424243466557737096182204799389053983058415635609629664157653882993681482843198688763311316683225545925507658187025654653091519113549574604853551618646396130826307689081297994341417425050088554540727610229033849347450029641753723817398023788761938263956797888531001831649491382549552129065363396896147308119362398654299446044890107938490377959751083768447352296151471671900073981077216688235235645900797492111169084934204911152023213052283761681647299311546626602980974557057056312090110914878081692148360693254590187358950923883228324575631347195492917635251331400603612118826628534411560616271664787990289894911710604595717966736725606490850840274198123179027851184119326708059595547913260545901420230820310718126866266016799688932981404837610906286558156115816454146902693950399532674919330561733076565363555619564213479698721302103561014504038782769631929292666753346846076328503618264652918457894776709577502382548790733629835174879797528963710688729864359871336829606605394875146406038700329439278103468675539287117013521620705143251236422836112168263590751677708270642199168199243490069669696653309817948701312804895486475138921312514298578654214184133025239370712549809065916719155054543639146853981078925776139832034901007766857630985635091541132329213704842596521078373251552373967931151463981154416914987814445794111561213716906114371787281952993233903622129736134158271313800401432578274690571687701347607948475891534403945868703454150477706646385892077516542124661908024113184461133902561250521909829965808004933810914340359307878572938001410035799017046389082600625410719757598898113142967997789187020653759921672403019542245071025008754184905717449250097531064035528087899312512778756994257842519517842075498145578375022479211030469071618566910553879706351444820654707940008175507316693315018952553704782122491049235742411529876918035642793237547921731133051603677742956220769812623726937763249431525816418574543696768416303374328799872728746044264102926499115036010365740594446985906903889269434585170033336872762659003780177846587528498032669063293661466399331281601242207888097062137582848765840058120462149260823468413439315984289620832413612404473836794233097360208733586176504659114301968377483525713099173816034298874791677449363954129918578703223462272193556508021879524843422018584666270305508014976341056922111082421193833364868525872413152773538249778710458623223692761928109096499105679965707614573660706842157120165100617905658072731341723637453178885026962175427473281950804219308497128549428222046007836332804126735377973693931449664313764731419026291731876427410968149669725739964469539227024522170139344318190991170325821427318730188625417485127939266995243662630104244718961488548963722324216009458845561503258239860397040014041773303422355072528466707765825335415594660472697063397671229898250265027755940904368422437861256468123264217117100151378111331824689151463060369813230071673261843667374823556151655254728962719335221968132539915287852992792076720489686259358862776633662069966762371544038850019401875545494711390361017386174701177863868963420349636904474298149324489113137445411916871653720059005258202526019145751445535535818458021391971839405757279847741416646703319852392439752044894539783668234857983127153776285356600792182339575041463608071013073778230487331738312707288442853891372903038993218041865648025548421375676429466352689363924507706227202228487214930661088025794479837127678630874537179965467726094958310060760357981286923828428562114702842923733119681067659323461682447591577277249078616415675356615536816913518223505194281625386713878816290366317484478062620028728361545887250276048532792941589764905523587470375475501785049498436460106225827564202731048259303355163289017770598459273566581499154139533225686243023869910335526471047469661856722908000900582165863032506691365622392231501873123148132547724444909271658515824775107978100482135379351836245055735603731893597771994304663827957971047958029492149619090866141617104356521311317164488362501503802284353435798159845613793837083596035003404778451332750637385280438484204635991477259766546056010251025888666059381356497073789142266847808563800932610529055838521206205045060411262473074177876352704376978142393779643749714014122200382527918244363811030988252857629463882930149530638338033935451412380351348002207850048288669972193709646801751214249218357732506064203388534649563731562348388099150476365016242773987583246136508154585240892593532554639575881792726850124737777480533200225474504613570157838449001442583187318974100276325426007116749919339773878944088739875861795169177561816982226355426671062106201218173279959095344059247055124090967900513398832447828153543839208807579397707778311377185725971415388334880023268648346580763571674214563782306887448548588095884197289141790348241709662430579166948020474762138871013040330000363041380930735559015235837910994886380650486870565966305701394634357532799275404706527634499911751759960881169261097845453559547019987691723131244698557501723395004413415977822141835896615856596003954799547955822528239328377479642206450917309247228186155511177128989034202430706582471322879898188770983703062557171414970609145194245999249864375562560669816622100092123270047882520488842916194260090027983957854662650381460894847233716315483261133891110312418642127335193606530477287389325001927664719277934665011289417794754485812552157256213798383227384197124973142711006672746947375361407812506006548775615687060567558633938952917579438214312389976147860552595431897454913682396087953715338059499442509877476773273436558189569241958154627251480907738202119912828012814535011177728645830166205310324038777727261566127347954704574203859730760149935559971303745884500364290819236113752935019545407365293124229613791253255106328003164817562531676945987436576937067567423072359995977201990176903207580439054657850259994653597321217083319160632484101782781066331662552566733932727986786832757855050931553658141626530040081995371311378373327853421008863682009307647811045461220834903256390665363870487291845710924119790817347201362858114471879811966272704609574287140413527501542188284748833110048939802217758612686626860800523186584142200880079913317546420027683726916243741570447327169261786813006590902939248456589758397526080557846989912203618468515134108610898658860477376308517350668269706707413004157696902593544450117141528392728979636314050908050419870738765058401125588950008200999294062717842349237722080757434245307057614217151732201043453847115184180301604136772338236101315563583251157736470298321090930030410716781021470832894844275702312618859884044022569504550138768362429668253750012933981256829598691133376298981789384651841889462194950462070595933648351415467293250092024994205958305495987233482683208982082639318166608971993599700869470154776547064924526132007451412433590561562400058231632100196378307450891118519027867911767738411051929826521233237969851088137083322001904602933322807648950570772684717599366087410109459751541248624801232878581656083627389348267330070790368306882387292750652459014463716983385458872735470067161290467736343451124340014787620799619366957381850611745037442919011991145019097659688193648983159299678601079709282386942141670695202742396149454989458057237212398019406826714273035795697715633019642980798192937383377688837175261853039370788541182782101093348689226526847085498523600473898973889284305607370071018635623462362043028635058436267549092653988763838622580944941054751290138937940051611756606802584246359723351554244085831560977908836646162287811073451891605739345853727002024892072300282298405073112509247986888539621896961043993093028088008222604231659476813826066748341799345927011756294377675852528829546580891593269526632457635377234252206250481785861122639043230768217990193963124566547402074445663779455680473381778270346169272263212364825109479644701486053916655590000337667501435930507136933912654498916791088580626493791354968052527077349870814587305211557494534706210449671576870977906581365391816450015662873026254241294891950634865780250669810831885958564439663636803581538579484860383266681366033060173262790685205779041189305087989818980984515925485048204758027521179494628076702258655183865274148564717270521730247423882580861512209780757768429698815925188310423470815089453413126488846604574927936562861068595160651825325543600604300476498677378523060454759993984534241982767021515087600139635162896709706073129887063633254468139592073098759785797250343185358066991222893869134408947696670909828587808220219422421936217933735489225738803367723861510384324142358658356427166244185289249789329832603608608646905272773463918923723024079852655210574360617994072156671554832143913944112593244683495197685761394414429830121721501031050911122390502563227396456195795182058341433091611596971227861232985577830295332973397936517976796569352524631910130594916026691742568031311990714475142760295310632068153396645397390132522242339160929182779064368841699002077943760159962976764939651973430124798597663265178319637446483116332337587824329073522652869922777060303204279854069742510681503530517056355649422087837872442990052171081094714249046613254261790755309810257715344791525429681201096074201472999073120397521302640383756889048433728343340526394291790832051328937646505282155407280090908373880597818258932939453231867134557805831086757754923270609603339806287689763005797389268924348232467511987995460984912213024816834760188300303141012330941504259053217946243420604013162700780267200444654896076610267440243469771651592387329089697139740761020695863483530832323055953756826097257960559559435650478870882030576741129896874951328405218633113792606033390422824105440782480429582444852688388925020399029699345261235609260224160687802640054360919466606624942641094518106595263602101885535353961329107662920171539171076042009074038935500323772637425956231004293100214415575012281055723174873527535320012799995023773791730654480028100666507907350662506060215374398674951349665727199114516769150260913524259318980083828416957931044063874126106697031498053909646799614648842440549566238826115610724018716691173619747575912109674598739183750826992865515112679529251239391732532750505664569250099457710863576524177274244831238671555030436574377974944906580400919757469835166858407833186060447575427659709192123743227502382680129546942222617062918942069471559979647847465261439651343658794719321748722147401610916634768275177909426806462389587704280542214403537963645943781384254551815873381642544730106215191949624714773815668361182689030802952656254654480136667652980918755887098811730182629126753630197582587432788376552054193930880244440154834423424629185184100200731163031315453562629331042108693054188363585280457405374909535654589759375530711005076188484585416987061397813960744134890974534214200422612310944536497091462493840304852270798367411030413549873260471421049236906156254453921064386344164888918230355909807436927786597925682880838124446117968476616799656790098524765262456363032874992549097708122714881492444119786250289754998821971762905639575576165643516407442874132201285170360360845535096719206916543418444160996595547632503792341214002847806354390767242595253999630807383180250047489027308960334592044858402704080320072015666553768234207297115856026199472832427600523090178425100447411105948243816858163555957249542553195884664566953752671176842210412360624376712564013148309635216642230735237930225352017020204628833665223808928759148891565421168317209708349445132008079443083861349094189335691610965661385305571598815651562318646581539063083249034274594753667163373114660667336783953946663260510092992840744392132426875120246867846479524897667305719417101294148015436636325958588550283641245040717640765277136349510963637056738257604953415324333602756674375130949505483636633782336115665399587586316276905631616017038000849766077779035126363115681549075297329712584240524683468610017883004756317233745919862306054377137938784528133437793442755042889121651885043598896055439095108640223383568431045366396953193339340219681793551533904158911702644716170449351193094760060261756265061513318138563897946163743942137469592201718491566491843156596433252719470833797250919431541656882370938400478565332060635982802715291657374258397384942932527805563119757627070771984335090912127981735628990439745265507491265031135151383636475956141011898505528827991446854081327317891125608249539989450484105608702106731143440490698283767450586976703260549658229506366994048949033573076240657521336144267331115626590487956564112973698322269683982143713242997246607038802375461037569074645792698850482931357879298534963435611660321070461583364933553686901688077430758638798462958518442923370232771833065577325330632778350101598343492316129984845652168453386716858564889419469375628983575769969784231482681261014965864538005045542083096886999823624746768564344049778138530430624361850306718005116740864594325604349517397685638417391935831852331044121989063947831902047398686436079337928738781045132050389320462775657520739823639227864493971656848470271918600767811508837067149457697895349827170282915267997168007338202750247380585576824584330490133445975769749769134242047340137315698999025977267631309964016612914288718345781283755598187631310634962419812112788822457066253543579446637196455298073828750957719235550588491274371631726179947034093061941572777547437197853499023168080996214519604421114963169164264861468974460461422450712630784784921584888105382968051411320041029532885385228083711338877374658009323316612802416560584626279448029237757628956207750793584288970314095620203904095659783537629132008832554607204265076021818164569114583161283943847031934917430375219734653593005024970253900728809695423830138808059648613917430493434451062206091557268490814446521875996233970480687887796433418969469369555002624949361053000158722142720447762552579368631722169675697734028540882123988967815856333323901351234168942816778727063603997031380163005926620809058725810231342436769568098642490577837901915940550889989399354078585157097711019961021016935792838190792313562746409854021632785687118728865734426882791237918494026866893467733414069308869216814993514292532922377227747608667887766441706665469969486735750159676002011560244232167040509054750567771389569154501966921696006496861322705619079953337826868937931598417570786885309982985619950210307607742622612884099188467217695914024152618472338717140011860088193725658707416609259470571257349791996288836478621658221240082255912453004947964697029487533949068492576240360353497138265531657780643655581215665752326220928450530275720395283446710825868169357414903810021103991391122067874976705600554072584249300920217695205766587104019315636960851076377236256299343993436384085351519518840676155629285163868767825723509429560741311017356986428885981717574329132374610108390144887244317918197732327868918218529839481931885823808761904197546894009568309229733234141755237653957267309232110536176506944177945386350803622324744791275898399818730735465071391200775103418683170398001166939904353561344499188507815271045993814440720380941639645568212267345610218101367622727290490855371599692424756772372194282519859893265633172531670266614927736449445560703276665294475018103202918174818890729299579735096162240079338575508534534933019115477499537305616803548244638515527403880420286409683856589353745848681815288786206190721615930322935536497588481798569262092084124215599161183913696810200109799358962069021855207528210677716712913462640972552486671394787467219177589225063528820117977037589002646170714386294570419829350098922831633400386964895554958650284228412871871465425754353818756309067460400364781493340540313087460653808931877636282581866995063590631181742252521907543158459659389744965083126682446476967661062196179888134079703922961712788767119557314436806375300498286911378904743207613679772206922284444514890064316165553528497936649786944259707294738894206573038981513110126318190596244569350700076441919162223996092532265330815619704128038914626681394765675172955586596503110539810387305801334651820766142063789045758727495456748398440264954516573993290310013576220281626475645111523917859578228984825094244226033992647043265031823663261598751707607848025869192419620347513279305309959255897814576139099465155174781246495037142268027473994087951443723603573784354241475687193648924136768463200626741358488081442492311787914945615475710057199947522304750051988332358460016036402179451836749993648936796444865358937549908172865536047156551574035915140874905636453146023744125164205005774017183884951791282361960019084146148163564753928239977837060910999829002791151813759975837541145746025163985189410355342419910667563346782024511023917119351497004590891192452905788629884529329501082877014388687504092793436808455560118457366171679715002124074718042348961570256274158053021363510792755862437450130523900371709296219193887136385102524368157150458256459090014174863203688262556808672513032104816663125460809928101910796402487727408572660379052957888628461518813762166285250845504706471083318572448106815842899371254438413239154269058699463944771605109835358095802256960957718448998695217988089691881893718394185851829460153409752600559140121362405664242973667372509367082291556132953257928806726806143768773947504011805221729934667887892544161810786478662302234096127893212864230745435111822317932094249072900237445031643533006472912783842998014651831250833273659596389791256808668017464313540281029102308477558907934175692640880129365481560310543983946131056493740528725793649577436782265539505499626125514764110660206957880439994279280579720290317077545423155354624807437281551444652031511635572797121215307346281860306079848028595893679332860785616633436388185593308368120004961727381345446022776681386961768870105700444574250266033425860683112790343901402902839099052529056604729799260286328431011040193482866252579114143369727760352648109960531207243815194455753297475295495666916655399216519055284975409860867567608889172773446137505306419351463388642384876769192167809257400723410181742739272699841295198908149621518454037263548272542902075719633519114128170695416681070419236366734869248714170952601940786564228659725148452319740825767708399298593664090085223399191034173402242261058458910507349299575854308505713680578265523949793046553500989426970323479846644402334437489769150844039590686193335237076318281459698967428623135195438996551979468539102547942847891560245345117928000259184661536504795819705890760433815874585473011976825359619807810201702300322660477633633894537795329477292204943372777139808088480782557973195925375550388941246957267197514428642963333391379307517257933487771079081165333766307050075569343485242589394604747581243021510704790630396997781228763772913857592359490326179087614529620010333124349852173677142079379741724645990635679775340801932677389161373046133653362731873637671579660490477611333893326277594780551098464077461067009919805923684876214902292186602089381141247872161238765454190804291960624154410723310076564839621446987350969294100495414655590601784802512688101902644973467692936978169320449789728245873460209943816241474200015141894576166157443515935358289854959881770915699529931120247194204932895333792396087329998499019675126645100810262602843976792301968501378987087607345257415221036321548736759587321835265254900491245370748338168717740319597476486783652696112416112264808035457210888788020451580034877364679175379056159693126308103386994124166059942563533770418581732494121510305963009147027472937856088502094022361712843815283096090153534101194154878214255464175958735014414547560434195046073616681483928496452503880039144898612848878597643282935177293606349754046422536203936646936099699162870840272156526368949240897228547484968424890488486513965550622525253192107394897099523284986643030464527895308311054184558021061554561440358418432172535514511796513121278608823154942280355414770293979535064145070402735597910760815929599695184747624347719870108531159490793291755386292101278942388768633449159903494546118016776922761719176577180445649053540045324056802872279825489607454084004511150291726820481229112304708055146774704846503048982841602199090177249943689529810149038190608750234832905204850265292724064816873250101999364715625693747508354168900052394433638798928333483423642289292154976097329607918359893445829416917722465981952233073390925495514046717973208013984888918212429481274971272844518668377603226163916846539738673520997270902704720961188621398158812046880198178109953832337967027548127882450669843833278898615727091842675433313509945248202392022795934955065964326084682699494733654722433746522197690812775858106278121510486077617680575279404981439252977594680503182490337270715582365078269389095121656568223057732724687082514452410139662662673524714877702792500740355192281799685368510557226692626288892072147075216255543305222775705070611580076578874017356725986123141675698990462959621342020137335715255752078672320100289419257627901751028374027326176393073204422307920861937617222602602853491549494250798057149200960605770696235413575157346934039602879653634419931317500899619392000204372040679589497342314403366544559972826238190280185716190927291103055748272922719119704108220719290318055918019052438317338081635839174517965467159736673512839656636511314253589207538718445090370500015496512937223242664907055566911600663964030877821930824797256296635463021984918944979569758290672928262714724437322927238928745219280235222805994887927423868824210745734612116889856525174173304775687160093645732069136777926394426120233368465872386677180016699432192421882303012039619612069216224853973778441579699520137562994732064501254166530972293505319785055079496066458209270411294258697134436760107543168648040721395878262636019567645028542192532966104781272809093770173693255438652966425173769916578510724506259540318237257900129270640974683357091313561610087862942796058957256789855770359695447358772019763874003589564080340323928480856771158271444214099869061156105098490972603736929164361140202898979423401439567849051501261788836535539183004146585063287294849838345284812118728498459441995432363047993449338710565835381076242803833631603252359980318933475399851295944634813884612787786176123885187844256228415308705356093267504946662793126406152866076729068030776839220201952411452034358542311425345650710474641199667426963655409005265640810492023770313660901977945802827219924477909757970796854660919882405613948320122509138860369846370894925144445637972560529138513883390657236749787153389186574650613078628904122640425435108564441414089855411563898125122121232349448499020997322178963894255983602068511779213837199443042208283303249704627139658350364535347179778633232128313238185344964582456704252774944906476947302463808543452314604972681223898389145015641627010927388991887072195103019281427025034146290365445793944897484890744290823669206813976364908711359900966426583143778243959766696248141199872439065531703876582121977203116596033381610008690250009208375165238360861852207193870782577719599031479463774548804008130839912303456457494788302141555363323454452940122602324936773245380132042041892949642547003093936231090117369745677381954382393832362813612154267691996896905601610563923726690189424252825929492863006041728288120932300138090762950490355864456934889277384233694043875922223320096646548830931362018720520887012893596559966032961900198434593233172294538501371434408569901579072449685555154769744290719390142423742284769258169971673567482745197122918451651872050180144593558864932374810349864513979833917762897919809638457879721950729383490610510477678193682761804920791076871352820495065245641945050809302379391114383267572012681021265981378347136968755152199997253615190996342714389498779519144426533505020908390329449781460374325462482500026612840922252626312134246484073784419790643291741674430432376537135346414110338124705733649318335982840457651193067239504547349313123558021097869181602223734785772277506299159793781499458308185335529130159824050149061144661157390356470439240680980568758671649511361110551422036496848368586200002676017363776414999117914672525641417585179804491704113394847493063056403685560333147158916713266401781091522048067782720473536321352836045249858340793021040531354627037703706682944487638853595499629550559725735061270698890690126277796223431086628260938489411205747037518764619045061451509444801060280993541697633922215623325179933018186228450077108095943365762487390103814816420683338349082734519909172374939654956876947801691468796582238444743363129058068132663262801225176508045007802544192429983708290895231502913438769454385332641971776297603737801923224154437637005795071628135936640794577967096924093341737859892697071918590557227241272570595277214261520492252949282704916060949163763958238417240298395973930050740539010009498497647865853177966993410388602677309973545627915006577419932099777582230689497945220832925480379119499216258552433118505907853180710451026762569556240742725396776690392032648950492133009301886281016244242492728307876688947680860504049802878365178463694561683132685166014660525749423832305956710207151645457216643159671409687736621026862543895818777552621640280936936669082706992571561133249243681457082823608995127710226773205465945519869609763412212796170898441804296877958229855751870955840272322891951028311332007131879339140276999272637159763807187607237800336421570082255602926880226288854343361485480503265739437468758239640239353514875912391407953503902335652888026804158900204954737444837276411718390576627881026386115173611338766029041723366093026499482554379703886581029433935083117763294021233790025024621891596278447935684723510452794392202206915827550954072973378839574116848031569920097133291044544367644701535692718007672316375934195362050823157456984220116033504227589271626672281864458293986282732307787749107975007570562050765027664904557164997916063876325469824910235292429515026568290938690334876636641987757979361302380858742858907927699389730659844273200926156896642568206350799875103769315244234996497323524377524728333702242070108999430321558790367051747035686446457316968250317359973577012359948469691314879319082382818616993036825908654633845938129910743264602702916849501656781120123605514264491593360144307664020715471534508423985066282589113624729977645457774849860483818543411547122772902466814410190057308349505035167790669206456928755854651350933785016831582654023131010268723004630867137755684526194849957210827837668668806924182501790043668347194694103885586615524896271953913417946327139748220021685038579322036877026263199669580685223781938115019529181472639620204429290438519394041768015324024948946008691921843252149008593164296136954292344216927050420806252935276340412797448541988669195226419290000797158256218658217951990687813394286770018047439396063223477256762486461282078126601943538188518744206813752472038695458853376407343453244821997707037359160140411313706065807274947486858431445688377357793464479993891656749456910944431772353832387425048022540413626348643384184291787117146155398865892476692357701674460547096191990290113482148136556035468907673536643898013772040166971489947223566955002673136286487990002035387320616067301238437085968573326808018726625588812328236566727981452325185671700418444944808604564322177130908714324829955188931544144898901394558376074797977393716439333737184661728209671126462405747618372425800566651469220898209247889463404622442398279064637068002163751233071306518292206245106489702112902337896894664899799806065524495934183567882134508891919013956132804642897251224593159272134363359441399140475366641787302223565763030458637266143889130052039636283879340435181916258631902073242652063438510258166522599800599215402367848264675425576107370968363639840056304771006160466406086531048326206454734349962968193655057031378417368903002046531460007427237095794470402741234709872347116227938735133626483908583907984788743666877890085482901832346306126614158419285505823086959221058174177408968706377990996685461837531548638929080732461741235062132555387103807698172053165176374723833322558117307624421880020160339388346176972092767609207644738452250080457744277980878008856342603134332131783528104351400325783172150567921105793687696229288759994346347111111964867466797697226655034283502948230059941543466179245569517363642823399684176767658739700464895671285054723959100292632170509845150444568770130649597111246530580326086005809833490788355260492417278909142183267410084578535215592974295019556250145931779780636870901827166040570534336878273092886613897725846598824516640171530548090719529984870921554575841333496378134546660769597259332856607876550833980547297086411303489355331967017008763943787823314872658842928491953573274935210034368958692232845115765595224607341974947913247303101418517285089572995805977672495419450582504481754283839525235980766874586075429245762793576972855636533091476699125686253273766905254441197725476536065458915422816793705492516156435209356257567124492108160100543659197466360238212828846943055424952218172665450764942266466356257080993537801783368142293850300027529873984975150386034213460822078088716818348428320820542669865259130947781847917646565241864747235593596799414517674706067054000806302347841409987353045138229386430728117763090090693617730169933496625738351163215119022766581014580989497067553071742692066366502707103114757864972180551463740645821188866828122142270465543056703758634469859917641440828107144817890843092644968365488650699370773768614636209313573000102924767524138113568632268257290329560059576537187127124183941481206824813022450956242453098756826358440038692735011669660287561960802898844077025063016972495858707802059966118588387884429487262337969929940658754995716049711643520363218494578670913351419151154861579772187520323936088175092107349770760393292856920028636840927813095335208933110267561105274410190805503499104012524976723417712793625443595719498410893706117400520280269725003001431818920974548766231282996897663009624493782414845180390583253782921958638847970291494003489087301759545484481932528501813854626687900227400720575104866788571696933375008585149814454710649698816036081588372458156561404821297334246562734412111741640391921542643551399940445347313006857908460223738685291600942257330085639129117664770182613830038823476273533011652306896172271546169939172094827514477163198058127398391492582168508834668822686980943494010967813346653223313018923462208486023480566825955317374527405277797139734801789126756580682814960359362068324756177846366467650971152733563796077281372652905227418765513744111971860638437331680568048449865015074984485324011326374111372314873441396172458220723016570402611910741977961457128595100571069563796625777356454971616095467691896383819331954665970859452393185129141379438692430974486900643636663484326787703586395449361057536676183214826518891423683096834918978576675883757547205637619448139084833976205648539492876725461337720277823333606579112349629202145278422763026432983552951978461388886382311254147597095217326120668106980421921857226456095450725993659140928829066753784006264205876587952315676779156299918189780367675355901072298348347710737576869777888208897874922523547298726441357092164660865079185570263950189305367897821547984328027321771633362149877625561186690721488736688789142946758296421447882082494052011658139237254697425458402573841655622659779597813700063007985904419185479909910671551091705069016756434816902255165656262091789409521146043041426009613011653865515073956693527323763733271127137230824497854463616498385035263591705008906935626920818705161377570041381023197315282072479795067643667433165599534298254039981536890210642347896740327725707192131370976100902102405300893427300042374027667012760497767722983361542215760438187747137490085757435211092291827057305302310879933459029798784766069067917994356907269233016658571650160768680705594804757835224453769735163705268634705194154787855228635665243972312814976402513151722298376901459706817882404239993134819623648523948921411201035619220057522044135211584388962599397944813028337095225511598608529486215548879569159523722773821948206258559749354322679251997307098443960882793529322545227493857164698592463973926339595459253509765316857431412999996042861882020401616925008436598438004531619617192951099106336898864935298679298692046419573567384353179034319213476441664900269376092235847679895048294067421979283678002540916380286178197072410889502961398100476922217800586856312458637623426350568788706738812685190563045587517866731588135065074576902285357348354507518358357912069073440448766889994149044155213659859232686326359875329519281718880028570474590655903721505197282536866349029343238895120268723696546557146756220163701504115521064266580620370179801267556000626464220425092701937549053249199175759131994360137673337373391442415629538025552533029907138941560722028155462764416326678445156940519929095242930254769434533161232953394302598428987671057104314092922775366691476487268788965387999575029542048050909086641656782556130747173273256875543766971910726910160767282828601538296078562096669179086600783085014133813326031545743940181723709256057308717800112394011949190334691055261643916246019835449719804722758155502587607758043284758555279667013158089105893577141634498592717037789210890766597300940541421834416958623817111684402173526749885582488973988861054824685376232229175728062080438858475529509350897196754563162777734173030119038914725832167089234473031752237541914114589318016300305916243328790008568976005706070258881490753193596796589549379800812040483075753040620290727711596327395535098148943556284515295827899342770114182415924523415814872812217027551246232086722951797863193758238713378723560247767529735713391078042004708326303542611169108457262839175622814183061651945210471252919031335220555172280423987284345726753283118901715591763023723871349733719574517565653292883984143342253180931486264743686008389900518286139803421531979054534534015053221889454872703070480990873850762484195086053808814949443228777079658500026934087658227896129070917886370214157479401334214465531217414982752469859074930322963148780464606910717132355484971885212535036260509258171492752551927262486064550672743877957093699591288281806767997612021704054999706881793256407917271449680404818534216512149419455835021704170888439869565314962744467801888447302754331414946028935467118173700730508289034420527729906029710688092180872404157590539286398451645421620783230228083660265918391506755515390421430662578227133587514301310303262130226289741104811304968380060860962724778843141915479973418828029245416708762064482339669562222031532778097536560922428674705201451595460897317136858576996460514470204124427201501805600184486153627925126861154150556231359450849094258463923656139796412263320326405160075953848155567412809018457360715122251889367607448846410486230968609462717716688306373698494781670114432591171357027657719773939059814687523600133094101458587569543692634355625547280092795096237734252356641947224771601568471306923705360620276903173313716101828686498630626614377252825979023601677285120355067749614565312624915216397298933703637062522232623090676319400668591835116743728498964971998121538076575803953215174327258082646291897631616491429592293099838915355268839465413418855557780910739529567562981141869460484868766846445472744253052446695707807346621843200937895834912425207698625241813545030611745683798718332057380350722768054391549537794183023281397431932968124439409965977987852296729969687855955576896540061089265055475175429237064032899475593633652056021864463038584036969083957456054765998895912915928225791518417643175007380355201319127965277590297697286087373349656270929772926014406155937645759944526888407622411673904114997378394435275657700319214776030778125378010957294660858273795598261510699467402655078103048117759010791654828389341558136193053481120947666179489298176724179525325403630414175457803587204375555756691091868829299356704592847988702769177762430957391540988209473308169273432074429136823917207510374917768953026903539912145895618146818798942674802332868618421947315468225578859632535741579522982455548885366391092444392513774261845500600646481642645993945849391996861347953596485536405794630548799773754050537818532402349179509338888605583945250530887238001108890271081664946685213665279839215825306485156792050117490711223102865020317844807546567462510943156015950714770492495143586259523263051465539538296830531181803766935829572115603582732362931325138071304169758582881481015395592139832674405937771009006995316019262688198612586163028354847639727046057462267739465706231311269491000338080993688905481837549958708852712977102216554428967636677531432469496906073872557644558022996628498447239601242653918879165160123294755314824152101363571607445407259188390956984060706529816625419826659008054340560238735492440885554672012051732207851108204175338989429457760736902806547202120005288777082772963415361295559949259996360849777064133792687460865037677929611806161973652483041836412998302524904692412828566509944700463042633605411920592005839884041187243613598497303145385469084469708699393883945437209400367124425861854526672002306750514541548661381570071839627010778411998527295486600595603835348427566576985453172904674791119779975493898528599326565447621047869380466893189184442692810638258789024623650784466007353132042260700465052895087597893579865321369199428214099396715616401195714437555940481089847090799733843297028150526279042053411146097246714644420093828248648193440559197422769855762739895779064663715385191883876887686463588328919231670836720572995252360490142750598903617436550522144611808075564301427348180429159677272829232507060201295062814057921454439610241282395750117337736847151236423143526319189667513363445313010189137399992949024329478435499760512853258006056682957680888635870263801488536755586125248504081589291783075542060739414124092484413407811274978400173261312487677774795390579478272882647895491316019049160059698793465198729441003252687596901813261750910264581554794043648647479465378997304114983072261134484231483818602238247215924083215610702640381108072860455127922468893444053204894882969640507277955243149176070384068699859232509899063441837954770233629367933984405966716529907523009187603834657904144640628632579964292245577165330261527657288641612934715096894728496822928917840876360449260946025592184571090950492551100356285740874126769727278562075548651485953559598763319357305972024935125201440663378090414582523686721231546550166940941718834275007108410718122213124846003795286521461749378388093359474242420667051711716014182240291415301060682129801443225754261593441965683626722689767552364976980924157474853585301632992361392568046005439142006583643667531275909524426488312734881256850104841968350971638294216228694676786023207680531941838965312255775353834875357424126222963540199332380263676711089774953978036685422121063798712243088691026839804528355689732415309693063248723148154384713957208518766105823525978708063308160294702497303839795124131449663756028725182681794447157736217298550741164721057377864126763753386050128165736148265703146371365138900572467380960564809387733880832216420102614545400516736458168577655722113935365083741731172257660613865406838314254370730933100152720871397929330311592878460182891301921714997192804492029696539190388121245305217284850293798531124247987181023146569558934720894763571714737200219387630140456707171110006956492925015476521020786081355817168837061037771899218681301396004421717751633001763765631506985048797333704491023373684480021292324133868673502432010187184190812181885572696892523403930229496966710849347680414144070828222134841681446740331887101230560461250692933831359100574475689437216455436010493305872336275246801639736197956123060763284038182023875223227420842300002048241927496189489519097997683339124567109852133279272546281849618776306214197683518733212638158283754610173042403016365687072111109991008341607516724489241550447118248765270697814799442745143723151966260479064146178780307923794390366894710886270945298039381656689695393555765430453469184048220250465663528350408149661128101584179690518634208553279861433315795719382168019476680003410253573422021684141981500664729073123575874425917176274612802422701351660326794466957942625316380974757788371887173798610321544201708476236005819669297765111646821020208213094703567361702594967447214238147837106093689840307080986316203228018870995235265180587609101462098181562356930578435148586911473614047159237311119911468360228151653809568260489655068486788015616541739222251319464221504347955315721095592928751531532977577176784947667083349162622296848968631131161580471712405842031850930549031811524170574927107408611400876641344545731453783688345662646954594208583401756025328950689080016106552777813661879286116669575778896216648020447908015936430675949555866438800144663784396755648875913520433844099127817987121533630397133143766716548626388162544064014502583960521535927773701249985451113700457154001982212107707459268333573371134410150283285289237924995373487081628690195963316086676839208966742638716627462361285905904664158736712881473315026030194571939806228070111206331565850134366252605732410438246598447487434414407817487428039121318755572282664273271183605258016209294069180520019717022805018790975356079581201075729561701683076529007373309155001956948942389036155958989815816521148744359233367578376960669110900811078124325049616830670806808720411640864947269036041532073865499731189222765600279033842667704246465024027753565870510700552872039506744565499654192264127858501969001655964345096514428282648801945028408546959648685968990101188130255292999243689904007628055426965809432377639252366616741849017133674924277735031884718779075466663983288994210245617527905268303659097361427429545252458773254294540382991447337516350360311853613639527909244482239452003492790281683660521623222187348263727567832829484555913354706542273062877454342181748116192442765201570115882706145048435936012995916282804995201265380340219789386833518463567743086879305467626223386092515334550080496729813909736203766667595637612351182941524211414585808717949385201399351765691344864138492217908219611078396884663333717533548129732364252157529856814501071254286364498384050617402082911874756881640525571583401069678847947470028274768349839656537300097075129778812437184507319296476420395340963984899873059934662954875310872277065961251907049547993132571738309165234339524712693601443714888497859259601572207255587432389727086110753039304459116886092854278855928689360715963444368575109529217467618030637185409403269328993129114123375575893931204717543976865094430395225443216711758167068137050508852619275368096427668137630419254098918967269588588720355938667935893678708889254821611634013919947294408669316333693989375185816711792427458976998563842707225829029406484981325267716169385431272143443816691454349330304065508795555196167224542544902327451302750664195685009558929878606327451782329143981513777497586904115309776632422708037239692683393286444614086483807798525096274097166298982100096615782502396027494341815304808342947639505482859964966168545373554275348768341258733407124987568340178589352602727031634422828727346620724998473593476944456550610084346474646735133605025225247685156752094023503458425883863688879909168027677291675089732483744134782884869568564411443922851949068066158330026754499420088859705804286371739607292565539948589917865943490760222871835648067351153019048180000797970496410819414364456779057811381526446121162737543220819944020616345148132966030580950625035252933431599840368283213159183103258321012968732848814937958262482390340614611245817613677597035975801221702793150832517158507839032697125338505335627595509321847964683561056553438169397125405810436823789099363819961077010573952065913950939586322917275271140128665640416787797601875965180162523079231790932636756024417333859275281268151398149405897041491285200253723436113479649203233493977273828195322431398837368620174742619276125263673144985105761372628301172862189763076110600245682806103623583966502431800320673008759670117323719336441580468562453030208705645368733172273059743757919425789419011617714939662289144045681357420244458089686080363901924666524665408002044481662984258292260751858104192369504045233999536684006927881423309877049018130533089973005223425707643711047129257289920001545798813603340376642356560394064239995809034555936270599257976342805367886566380104803629860370808640566454900610740530118510520046798385676459385165247010105297646761761810193052693495895482385747692197111507904830473389441740400863089417023371729272779166730877487897301068963813928774802598376251240024333034990364293700248082617674112543806857356870566602112627531401321181115896960168421404959389536289601708057917636272623135477894297720706074633696777661881937668297361469530745215197647635514097693140783584131554242692104889112845867733508852168207693914882531800542838204310470951283465106030756629269174051759360243077589728528462140812835126978024346676208862690100044242864798862174224971482300340649874328180013807731268469097955736485960605287501376881952118192594685309440212564277503322448095652912437914364732479022891074066056400870577858510672467469303643715251413725272268724131047878589256823529646597557258480023582442662045249681325459290215589210507179787968848471833607905539278249175135214411606834888926567505093518729029872977103030745134688395875936664580596144517415142234746234533288733841348627452080127964186844453567793033055888097477088275663532145640890358874555432342413217966247655457529548241690377966004310048846696609470494774408421486293934033693334068825960551922420703284389632334009349264946370026188137901296688605389499538156345770320896752483725607693674663094585321922650693272175216386636081595151946912367729682613992442274853118794790251581376328562620009441260088942136387394130192812616504780064439248996487163281835262623061056437484482466369586263252617084128337321452171023069135387140239612466624171728089346027524669142631350659802006179749123067185123005753092764143849541560070465827639800873922184981866850820191263183199879960183241854925811127891116955625251036234982968737490010150829153840509395042154904020849566158787407846556065320893149388150234836210012682284752951459262860422432613760549368815855305990161385281644729412322670390437647456805312242309561771571398821392150462841160852000517999250420075694206774574567246149945610680888405746332390374442472100588199438098803624178960237382910022661539497176494482215424983992302517741578934847715478092476462711888117756999305115557506093854111240777819712728602811894456385517177424405082124214251537609498668827424668089709304334653702042681256683891370602860317571076040965145116668201060943911995738757890226830030964248646163135169833984243270327428171276925429497077967151704189095366107104559288680973342729609985124554937114227724843818412446124710501442234567139778759228670507965062141056885599504337379318631302225644835996101062231701858162119032983793740526686192899139715620459253311146365401424203739549119455218579844666417843311955322934385442302538967115969040756258551362438509829711060044913794821000186070477479719460749358302083037326851749646552321708166872221266303754317239469597944733545039828254712822012767102360860068283969563278597834355485284231589646359515207810280032513374894447417254878097931393446805330475597365587872108642947809629218879328359726000882098349448424542480321786425867562250943314198546222004587298040962256105439907899212765686150701583681446352058724293383684859920449425345724198073891671562176949922871361164540011393246094046912899729961814115228986292488803922948071823475057720541937037385903438571835751416048061446179332226746573811220389706104028405163483370919831888719564097471822503819471212832937745282306524093539073868820376155067406311426148845008005822653256748914496007659379151999914990529606105046997520678398989600130432377016820347539756769514078400215909383400096092294135052588545452358349949712857954477903594241214689424839733539465566657260195428788717395102078042979501468839609133540031980955336033005480555983072055008975291680044916749917824763841415756994246601571367715081708012807475979096984955189969295598736286774724442767048162472204059762277182666476006504884429136604197470058101924078444312243617312101992035766780614962209319756031796094533252425392309069796078089564893305158080724136926967052770279583403853727712669162721614402784134169995979116188851468895591661175883583841343266504085144582813758754183119127841321839761048793566045321595665383464609355839794717171970825719455638777856722387122700562823454013816018286991892467912874844879534498906716555347403745152604179711894548639940724026174235049429650807288598358537708853464929582971509050530670252942771841606687040630980745876061436655279314601241348069712812827459440621071871097585518483130656923272066336353616319493847233299845877357829606609838145056319143924337250499586066982708107093164107737315738245141312807470549480388699811168733503977913318119770154122447758398096628762144955636411114923255171503365853728220943379222807310797812202560490745929513100886850965187905339811742126110123873306032703007143594414059720307035681925741448709304021317144999874311628968551583309416796206674945163756292925111893357887372834915170047733766113146696379634777001131512789330503246102125576413861215398166199195622643942753818667766553559743363850779573292285928673986222632114849440438455459714742354360270740932869683611227295037020479872059945625913843462525831884780924331175500860024825194462426259061800570341518064521426270010218437582419287969548934828184987731134127088699853148232402951940849548740583142239644673929206054590297497864754563262324816749532658162674804600530976931884467303778712959953598393052070447386657639514171192957451667645073791940587786532445227864559393016411347927612380882653640782718222143401882241353201564144743232232261824117540840014079963242558479513090553522167943773060675194871144080007340991727813638518213100839296795234041314724080059330841556923297603588801042721021297607585256365106032609990523827045306367921590210143696156843265993330066413189279305980691525891507699427920723336569665288682602556096934440261286808109603696849697319766734798832237701951327569142970334795625941009860845410932780150660307352062723457023886696075313418483597490146747167982110005795827276174567094507715801796038860070721740677797917980640246862032643262090518495264542777595464612453999940508781616962772142426273013638084267236591812655602598433205804482033753456685924686653375323858957560336786738417356434903043820355459171278163505242753896084611041624697208128330379188915783187544507843754521336108658559780588316542738743703778859179463789688685042017785870436150481718589378921383209920672889026966140822907348326601260801594927004416883275997593799587304746319289101436474271544736223121429578071156265100204447609217607350510054253048601407855226896830268956192765479053502211071378162931338872561306721197460835816009747527701286322306142293810132612433625070622062796838260939450766116144958434187050696242449642513489257232453517254978289973583335400541078787885272186215484449128806856491769336663506235289276784258157526181186912201863271457760515194689043414309171266418463959429831757285336636330834193992606779978659983476806684526879189074586475176262542170823680596126031197387839829964238062692211445037345829159437879050804022731603344490528903899396681986884856049401251402302416981145401788821728180762950559588236732628205826839583403762129699137296093769234471343992278321283295175189439672863336297422290403387620691728819758780861307258454520717269778350755179165670751896226356397620243933215120209472545496366049222162639001880733266507234421642677430993507302874388073645038969056534433762577060833974815145244005226430724987980389118896728531467327002716455077870500073345899785094757947054889095343524880112611332787322738243842716664488145338086386359727244275597902892698819128586680813583548037493785340030339181900632397743429948221296212100124784128960903546838183407511284050030427882416650160171254685446228659533224104754283863415669327591587495645275387619030203490858255704821130176961254187375506172731816204026978216860335952652090837168523804620542398791649324097024539283594903285194989914767405226407706423865455841891121527173985531444120405097906898467749451773213329045546528348088804032656748879603640956354996381541521611394379876633744830010507465791042915612996128828582276861061767158272600795029105933396813920974479746691243955273326697886393515638758060720336665322653591799920939831005447492831470654762401263588455840917908248468486197126235950352159572656975317165340619997340981790454279564403525153010622435510495670712228562035368866784659219865828684533561372061404346014201779830427184661220681175655208906458017703022350532197689485842576552513425053818431614428374188728459893249354053077647455450393477178001485568022446715346359071110530342658428476073654121304458355468633609841638784159461442119262895933341450461987288680118704440718541950706259921713882437199290223729766693235068498892990313213566024261533526474432699243588208059827804883529092217679454330988041538035795074171429959706075178082844980247095202105650334344318800531721073183653386027515364649248086752804749103502441767381627159497542996490774393134578487387499454165079002309782322797101043903360462259613375342627224171491182733636435082271315234680047499393138626654025567997708400532536453775359444229140617075951518476700456442569939494519654009639397183658519466991987395695141017943760313383857221347377773940516584074598888614778803068818287975638088787028888436851886028011383808547676353461164468392820307977328007235730689165286703742630368996370354710006737225930962990108476132634076858973060039540482100963314644189798265364930596531067416377732330308576455306055669512804953182466187683597639011192939042301252120172995655249885751539450436566417894531454908469949273041326474417839900000001054668600113140595207023362499608317899922542935539515267664490863745856436050821610892413911156560072527580747586452874592559534456015581132347187334599599642361530064699114206660395305207687008550287330053909998444870874602263373858495347642380231191901505169391362842747582149898963781340377338703312310745005129563072017829865983471306240674289733500183482436210033888026125555808147857858100149860740648478122107866072635146713964317939861475094079542677793826565651742220843250752134178506991610848755814668513726813181006398254885011349688817362295906058074424801916608662164220110185410930729699852989407903734072294690916103951103279319686889201850921280345156967861338535942518429588562949440950488869149328664548114598584179213012017406241572393196649102801240907598732690495313195390692435345818504323882322517032655169511979874619044255930560677589527520426378803881578880924206711305858938936811230766885700361497436016480259308446107391326439421419186800155046141962954253300137157991354989054703643658950576475996113422607127512041377776694067836974568207567627467259424280907708952399653394917992128863727274905332282389506109091302618210344638281485805279531123452858718757246077386918115897764820326597565804120488543155491989754647284438894017108069044611072104334974229336858119199353117093369921568142908860380847930989477063265899546088937451741143698840769026470883261444937015258271968555119103496315757168740126413006327718799641863634927816770381508765940416495630300072609321203528056105234313420173226072354716106448992764535875244177595851936848737063760331541028304422780314837234688168919635634757680227706072595734228712655000802526352817912867258268373940491313157290149061696420500457554984809898784932527114655377838042597719316634609720177538465476821629018368365560025835121963593493909174917070284777339543972935206714479949840325380608751868543264406608550657492511875251961005210928341285892461784375808506003679673978646518017811631480977165246931584311762644794762817311319954106293012416555879623406881135570843027320706617401308373583635390327036667629894124471626249645607086162613480048989674736721532950230835170016137886004261191401931060157533072430218717256972241267081195320488748041901012219594844040870434136048931668685781800938987448797570962147146105910107080372950289890634949043667215262163784107349826553457500544031377148784381104192076598908126108140953268202856755116226633974413321526832762870545641701593375518445067683831200816586369765342211425622192962424915571613901815937941730007306302564143351228178084608799458103158315923260623585245162570424733195342384933646421380894006437085745146754338113040488044092224910550129903588165465386164162709302095842126117801865024779814539885447793629961487843921176780037442159750521153303126658810736962717595202043118749353889502315691832594737465856551430113144820422123442933672656392506906173884322826527282907112369750183841435615876852189002409562313274512925947580414007698916300273623036051216628771328046158656873627972280289184002092237623070105350890320387734580533201300859031316229623610853486690657382893820641184060348120991774256685007034193283781660328107265339126777475799032312719561379888484448624169037314234860128528311584531994059593051670130142764946703251748578698833304452074724518883505921472063126389066980293307972332211836607160281322309905004533157383633623185290772185864400982966125794952229853566997907480812475394792069551478276178229613470598476123605671648633716350956374545074903528362008291666604735127210303921218728695523214948668132673828182882549759087427227255278214250702509151496327535911369336136652653314476744498581991277989154755684011458657267814245763301216195843674888438914372655781222146024391707642842508650847219863125627492811481708387976625963093566665163641353165372387480887439552723522860432061311797552291882136529850293904287566114169381835912382064835945326242231749209796378403547996259089213088824820063175519930917243481726874922851462852202555218752803430245209568029831581257359691127003931139760850743555860210065674653148958826538699231983467060608701466598142579662701369283995111914313741650567593226148407986116649621118048473933148083903601916806738218322478261554359700464846852130665784941225636122792475825890001797170624705495066598236079741998882959217321227379033360549484067328101045816899333760187594979534796264070822351331248466837661851975605783958957905901109820105211110928453647192540187784652734585894489916373848260296509017260823487611478057074629368064897386944428908560289603776397264318893356724324327875266588604062526957919314725938988237416563144763051082738429512959653409163261111464820574813762026793765832173765933572611563777084949017393842575301427042910189983371660132825634422248258777387885876193658929201183734286939803763474826143508348149973199694968598040427962216312771255398454001931134644099328126148648648089369605688034822797704062810796414380109244725349979622865655964956130314751897953682334933131984906540989193807650034484547138118297790868313716179223001719180232832252255655107196416362076544535617795970861725049711996845627276275960804066058932978963740507842106373917889237148777983230938611787932444243341008770015666647733487633460959768923956937842321034181195643239916712703060045250396919121956223157979161012185104505929823299699600235544647591312271556150757542425372603154735519602418092138615604971703964580679967474540627897567704759455041156385167149716351313740499129400311971979938120214662645509426899581932224140351794150356940487437548075797406839288196087983086667882193345992972036279813336812984725697744443449767575733047916101027379762428331899990154060719563372941767187123249805634297436180628418420836275264160482424249520482051882000119940509547924306597282466965652015219429490126239073499441565411202017097593214960610901053619967764369450845611389029100917984515169983871581849435866892197442801928980744777248454862187026052042362564873186154205210793084396812666835034364717655295112874656008623881223330987767277838937450160889128668677767500923316144067042956245825661869041979652370419688990354636148576379276792150533334807842374918305329759655013786311034703968392104819383612898880306015967033013417755642162594294289910254897423072223029682568710115172345238936912956303320592933397377311904854382905464740123319120828405638611491494601143129943865678258900451950659890017862206646816322896009443019831737857375188925789238239387870995224380912941011597482564550400984753888179729080162139062412494369135615743839597112143322453219185693204308907698160389457845613212719376018768563850275122051184888237122550252309645742253539870017082488939459101288123803047042965885805659045579702674135355558282137517093971581966772697890047190954971983407876212883619425796907158668078437135284684394029420509554365215014837531289517218854545345708144511279310908986447964786543805044415403788901644457507777698425507769902625708477640399066562371456704996332803266224367560085168911366604944326431180488599484966027304201736855280610950718325309158993853319813749593279233827800301770519046990559274714545495340472939365968619611064300809800802890158359139929050670004305858127780041860705313964797456120004492803014846136848870422548233784583413753910246037106797764173911076948963622639941864623922376348686475258182241644427298332650743907290349589476636551995717475912965301506492281342841301981170650384737834875801576249155950258596712087292542068037031227878451069940532525553504256703388142172513512496433636094846908722685252162815407594603089072365144568754036775573128224142611089853235131094573247249179587181862377509163795045750382350763626752619017523260769787647257699477241225203311359752244773327042035429714720530556628052565920319063829913161431327833352903646894337492788229702865817765566482831083554435859738666641546480067943533525283491191629656903232412788981020799497640957740901246461610573560458995194092878890917576038215860743994269420276664593514893369372118231578710473369397400104308729937733103157628682878472602350456248169743148437695490364305094792429417484910508487562387679629672369466431172774116162515191913188672543779272284041693948651250350780665191670611217615825130659115369814695070538312174517261835157011152175823987850474449284470681006224026862363265770066541384655576277007068659672732285969375772658661535080600523334760056326064361493870397113810572788747851878826427737776459895607392419427338492962174127073559181689849799990235918602488903480240857100858202333016217305423863567565187803093085637805544762147199505913874971238794597498388240603778974745290200178153756743426389810990537862140144296586828251773732600513801300183314320433911536445518703300465830629105447392316776204079424774702111856111713850944080629290824465247243971463152189349685843183221430827066578176525787889159434669654230000483705299572630732629219035947207272568901139793440415358649633953935365666201569993597992508846961587099327005857644320498053735529355291327315349002236555663221344967907700023315280884439419705065153238826039796825405965094920760640776777414986178562898602716937056960836398866687591578797910828812008189930526862901238132108231218174752151420056546256428971949769058143617645345219181236087434351334922698599990210626212933863839794775107877159349384226694016182503430815875261099993470250059152244431284847460682760564794466853572104771916948218687823465176139833439907328837352907840219061515712323933263188200284434402581562447408856286656812903147872995300309389920817240989369779611724507662436766234031585151264331478225537501657117231734112531076802278057739062770938049008374380032366388135649394855576653836400424901360420348565028080540129028217669301304245012077863306393253152219660046038770777811731385006193672200544405999084905864619458766185968644658301126976062690812686525756876139364377878299794672257971172393459495506842263671272256790949652323488577497827228049416520807913462954106805752607147561575074006759844420534457467889974651567013043360929842310121650565226986828787601078027539698962660607862513012706048588864347273449754944761521708873926077507530756100972420870016730272400161857412954338627124266013642357852156664554826920292452055760401763186080456322640675551041309381863578315881566670498929023331095058110040733410853190182147520571029826533708210565358733673675489968289123263656397183527216061546989654462704779315954770166794063752015284280051160218640604462307678269537093184543309561245623684547863985680616881946822595856296491370964252846342338104140618251482632642722094536810367210057210740811370334217571214561554143444454378228316043852493941973435460576278564414565657247799228750714909915567526653231832849767658445353494806901112645454194878180308604844648876607801390585856071442267949811509673266801711320126898511215136281737643369744237104302223995363669952794805188054611251184210725560527797427220790884992374189152189667452471632183876182303271204580217310088731013892213690619329785102690781395297285015822652357693415594940327677467400723950799313902298608456526101598896148990040090231155328106948163618777832648902142812115313837216631691275756070188035295838565655999513355065563357697591351828264334490585398571917115069003720647174222098717294831400096567280045908992129369525298762964887814086224576061433233928244673878217108062768016344279767048198855988532276448692682808080826611402078578941612949821964369076301579571872591770395784662996398617863015520463986256859161047955485441827453020253032600967863407846598569827426713839136004803517857430731624281455100662131215218298978888236483604720677793282232043083004476379401778335818434549618370952830488497022872132185378992100470108766408332628395055587105505802201879704543914152933914189665986223914666971805497848309791415046487169844258955434848832536034351954627450973663427478407808267355441251077079774047423352818448118426309194679507863674986826286795403949794006599073191095130403557898838392435348490342653311840037799909120163142970818419753781287836415920879962057246489523864988356869835272273376626245876892717161281793525699231761645890622144696400113379652715797974245591440714232211561502511227814808383209865632008861914889460781524248057008667973649335573051952691749741720723022623409229766168165848398538228105803169024232701146839925690663103460936284376310488629551247472450439324736927712529396417048116518408159046151976389049739067917040831670695625844865278333077761279112223309751119346321696392892219528783270532402197659131620896073353589119888612499586440192378971619951755314382222092829469254693078002436301433373447971714776444828424029631088623728623288083825870373434499798058078038700667785997627244012752502774027992839238763968063413614579884827435267098241017291784524039788619265379170162742652267957107726145752809470755082694884808781221692440187036245535988136947300848670790045331673028289789032103899395553580154763491615440383062083032547425239407895619643822953831512628597292458170415989225686638352750305224608079918257293985327124750894574506999266471455131452027505508130096277842666563587759534483701057906424723693066245458239366301457603431811750270377734571990523947056485399537252635784160505394946217489073747996590702925743941821983513029597111837165762552869459775965552591771026333172562176627862362094490455080222822865186982527536117473321166883864884520802866596991221303040353646864298405499769404092360333554995151416313655140017322167463607996617788655780720377076672588581228608128268923941100259359755382323220426438432173253477715628726544863803443759197129782480123405705895451947218424992761065339904859218166275113913514073875722941371031167104333006654294474832488460355672299147309370261696265115335930147142101672338670407603790914698888845412410165566105241796089404698055238225182354833109965158995155311715149780483414278984262007555939371175278264904132039697729657456517233416498002352339034788856425613168208745178198641114164788998370395533253447837531776396589893653518905055553128738576935959433714211706661735304517902008702918309102294962851112231118979602986307435939636395221693694742843033640871301880374381963995353875375884172741940666114362240070545990695582019641166194107771629029349665376837884557050198657568640695475694998741717096286409141002423695146773890087197822874637968260934784065194042194459811313640049563310946439542416953416376192964449409990264915770008173194303662173631274669614784686539725097416983444260728051335206611655284437039797523270729678289831959739176382730281091981067500945372250762514376935707309367265760095562711013481578437298163800493790614429549719056095219926972860329473636776170054251991489226447754009200210025862527009807663539838903232720833843468984687091638058933423788839310696942276045383379640917278216220667672505711525503330771981276979656639684150336536217124784030978321013980833341806556452768747697067593879559869133080277264533116766302878167019581218234397493293442758943021148952757881042327114040155572824996176307713185017143986816867526718683110147512277503769064939681415136548731367391890971236490507310271833775336121141606514886952465622506883376325128981758279021805282762697974153572065360057350627207748292634593624097141883284269036661889665577590262361087922810469793183323998192871227987633879146942259073349020740415704338446996836385824639439381964693901325796512895844450598273287350505155481378994950209681785181873270510003439243282244739685804213166492737363097113872084880930307526836802830462330836587613759442789366539947343916434959618165460863822348354161841783966887626944036707171125437613724685289412081448875027145426248759791109964940243720636315217202679792033704470920615209168168457297977601370121623744985806111043610841884001448019784947507028617087368688741850158455741239302053281586075192475489128744367933154989315880944201914657216691983257361919267702729636330886927819395959605479261135229721375513530774514112956905061232519309611278591328709551366964064521500798722116815375979915625052964329557773848101508700737760871789310267647481168242401869073069497685430944513454626529939857251926859679959274508952041407799156637436763631553897222206487732878390986501572572482355191451048138003851392185652010881218436742760026571667478434000017404495739953906873256436352704705893748099566292641758539298785264720196848887286508896916522691608495653941769163732245206950350200714388690696211700519756434552923647469576661972243285169841225341368835317498749946267292978442813400280528047240439819780085434908709072313209688808628937046530484295362333981468719266361973740574886012185858106078872546030308605361711623116332821111050803120229573437707250068284066826037363732636540503671183254534722139015968361091767205442214981916996566194999841444715988720404914215907290848867434719385058310736838165351574893289706863644048723298468955143685547155861369012764971914742515959610043564316282115472450759097945483888964812248609198213469178554639866958482357795167023521866775433183766068429813070418774671757150462295363612248421643999880302220324653306040168753902205392440542898339707564236758005068662853784930206502104485281316662385126670767674673600775454827897549578804118659730953543627248974446545004050875204212615989931220841312309858129062673146999474367469673048256353239516922819384342573961460994216346936316773693177789368594257812889512765675207953732756264444443698303701636023447611911480604842571450678395143403485324208250468709826700624719729125728652933602790112073181351218224120174121085145042429058277473197443375827900684870232974574401670032402411778429322309022879010968952453261047010989831329831532902531877631058557046227018028571190627720411989847996818543049067370996062981138631554687898192997409110614241970044737469995430857348367806691026022477872866468199560406543723402671836103952205844920526726444249459173416297289570579077663679081676753160033360489197827094140685725555218476937928785236034123262289962052091415876751951668984825046882095122861796525879952615689771592142182836180918708534283521216952257667992218662055980759573149085542253521716789578830412303265506640881365441647322595400836812417057108584109487278284015556329801301286089907587342576306891285485709316398396156246198183996455374780806625793619137324506512006853601746957633154588599875723122706836499497025348442156749851098692356329091141295926989866684043512531837847688070033323353150596517729257660848132418537132495242635365304874623079701885146109911097511403159083738046537981743151665530616441751090347433731427191656677209157821881061774754548808367524529623723591488211482903208056729268166938315240180102303571729392235757418010030526294761839886677706273777075331368461790432064671352187212025428994596752748781353270219091166991972460491110340001523242168014798814993402452624868866811092375360314989523980897797942402570909573144316689991222276518286322943059610196573107826950959839046734139797654350987589310033409078287223597850122655356411014673311776341054401476859316916066815822883407100016703036259462521705452510107322280906331988749754834776226747845348610494471804094213747709499889339010258384869261021349804077518516085307904294589201837912151134257511559911793308138882090531510190648883108176987059008053430785937259643082328500541952675591771088079826550775547507714082813898391262693766589278311950767796674745042331847882727975114460651257605423256390101404287575197011672384815793318181116349467927333344393912762965136469774937991285415110453961993532287120302350314150983869594580416047658917757774046206129049733826854053167378482482226878726005528559012218297763688916802755652387655006181915946115169172191298398197968222019146159454120323336694579475451665115528394109279084910869952869670581085894622982379205128203245629057868459037591704958746249289621028593287812692221499438861793790957723021779201830786474989938182751540643283901386382351026423095588208196871413072860095383721795632260741612081931128307858703516279954967181316907437356367898952008221630200031300767381049210153920862889662491748455147057420594085344912377528342216468616293358564696362493395247698812907628185945632166787724575091961915710493521708950449564713382580261527471254269867931525310158914902683321251039932910446137689304865282884331672505033551125440014845963132388047816373693125245335509244623248307271564813285247027977186925043215091933429604752361297467279982196116174764072808630009843404260170267736688243669648723697044666698231773929223966033653099748583986470207503834581112471565703137587237270618803314401059221356781455427565451278660065723288134254508131770640915213005436622460906801777751463292095916687520558040872353792981037693187884409620607261224532424237355211732559008460684824358449978514704500910641710518261940316966450517105632686226207762176463029920280903013338652801868648153652103449756920137565404509020369229947814414621523607312562746642589090855617048912952066564240268611957988209609294058443628302838918130740814934469370979890055599266452998380716059133426218309581655410891510185765048480958716538057503363790599443196817486078278138958418408949870217325481636585589693620017764131751951124521973750911499420390952223367559593629357489272364601906687285279979066639661423546036999759235165049111077970395058503167198675990449666022253978030851921083956783562111189660090987209950247196976566299297511098565218735271575458554350604560611621501014689685828640650891256264877327071212181440209999346686597836612710619905743301705204661034138182970103388739911161365564240400384346446621881213407491496187775842188964430844897833030875695565602902709218804624621658902942383149256540857787142503880020109525089034233168892739282569195909536078284337264407123943907492325267109919832574781885429698170258902875221536495306759998126219934500998568791221114908684904813030461187742588100763191520928410182661387281267953277202126657729447127761970469711103869656948189382267554334468319995556884377104341793705492589242670853090018011561343940655879220374037388168324826749923304640716579506824518239234180878806212904456998076909725170272601010171114646265685396464545309311911357555653711029095475684392120560832334026495818792115801575362005198524904709253024406819770734355208605365544741103947850782169184839097145072671373173347196560047182131426170094865229716915791758288189017005702780046658567727824095743008270540145814396971832654492997573708558632918251800121197101378336187387415128403956327897900558313097639275502326593065992662581460353420508929427825751402269027183603399659890071225942073298470306878562198991985775674650141186054060725444934170194394321296894610683366016779108354238047859741192887818136020965856748806591776080263801332144475798028573074956874248617776075366865612971927906366163680789500934417056679328028319318019108308679180943206360575102183178787223896216334515568411273283963239212707726829069983175098836388120175505787179333521553716071605237542889463387682249232774903989255825880486438876150732137900357642972279757150126092521500598830539127597885446154247588032818657974173663137885981467550610174635343759133325932281798958101993087953485377568927921889910417068152133369874397163084538936619578607953173599292412887105815953975332810413738476289598320102587540022738441555667965296211483641860031784234244150559069831235999175743530149536924986706427235986631106143706931549770903972806460851306707694997474136121918989154262943575956937911638906718728801041853199046713031778020971140856351236869140871557656609295535302596785176603999411781496707193498326318857435141946459301647435382815714775944077158709224662103249476020277196574406920157958858524945661281704057410294643455886958788444631928673381396504884590224131757512494154025478809835121485408640195967873065921443328580231073326899406558159119392762130494372477014948985849878105203802561103274255877191899113103406217866855022857540876988679753341353105349929015103079062346216047682884299812242648706245863482186434380920338123221602700246123440754706290006825572584528167618139895014783633329660447900867917462298988208742030061778114705058421219202704020990684871505365285606928209632343586402893227673866811385149071891578394564186295310597544423809875824765894539799719492487644432654017821806896681618749427250188237986667283464816534796905230758959345072898435259929564008455633785856425763203676794242513449812006852270301876449127410999603968886955750056978703944998435435221620791769636062433629849487710857516436566530021354234151043351148314743903073582152828931088493066818773272998991559028630586631304110854390256221893312807927565445725054654197374674332527436335518294716800978830228161473490689177826960393592952236563929575466301126472868587578434533521291808643655176112751836269763949283386782729714239455598033125893291645038394670788225729624328104277859091612875969157700838860160730099638844040808646196551605279588570088706593281535555318798656168945102308989453250784136990439456294305811565266734430826906877216440391662317525935469057095486311145306842859281070480377694685159651573816547997292629014439208890275851671273782652630929304977367457397250976751964862189326716901068534020678818186016170570118791923075522264105438867633728229425955396404935498287251529517170117911453425347803651953807278291523018848744550384244671286864385748588008740608791395460275604741062235591209630047859100556650199313811960901805009636481419495449511391417368167119825584588580622634468673889355305085161935566552600451722295220202991819153916225739048333742375787900030559926120190942804320403738163846363209764175369083568501329675624822938000135588260223191619894653072492182616621522338516951730247782477591283954322292454386597548040997279901435787623874060252910838167229830756853954767864731377749105187919043181715247218664844510457847164780921432589740050138281963067960441291374905815312046227892564318951979838304244002740723763970213193939624760204412299598122715691187234016473305633130688708531612787961067573895401169059469304914627138685878515186682931058411701372537649786788428354301296302771320686792408644071061500101220589595675003043232761109849477057901862314976343580118625587637097992886849395755368357759205503613654744256180141543186427907162506314897826475610218950306485355677289980904412165172324031800508854065429554015974623020454489440756220228487501929555452346394162411254096638928893858331370719042575960634325697773483840991928077324697054559172413557698576040385707573344828882469140034689796011785429109275803371613777616810510787170634470854499466426194296020078385246451592725512131179579830311859016854099588248398786197564970716750628990299996273858102604782215334862407061660281558518610745103788886663310343735092561680274818331050016346893443336113892512318921137087729481465372490563715933567932263457464752624712040336251421436040663018004209552638419270430653338996452121770042229329276988784652667532633103443172001469118063005768513357368902202700596028762730546689838476246484858547581964432194763137829234845277432042966121150483120370392137044212231068281344688907022179944543214598877314507459513262305941824570834704897067356479311051096352859397284415450402520478260241070168702154917262247988287833325374068920882069349478253810360521350803382660537468648263870726976235378753940762297338208734071132260092379354663784523660812088937578087400534968266589230625195872453600911685838755188253535444816071469419717752874338251536422794826816008572373309291009461138090906940580567173016679491113168458848209036661437956209085874052648110462316532830533171152972256702678163552839017837485947264658744264116919228014191493948336659803085948286798638428346594723002793663131276347165446837025484307846401971904122059574895347258469341391752081864956604715453798117077968746763815934563500554603597933201768546831395005420979120552482038766404102594261388525413012566310758706861274031666355100553679084031944278363814348170255439487317035931356325526902236537947537777167003435350558246022583586948505646760992048067254966097845819972823595399861177999478285816489397142054244074695170453853903808185299989236911909359956763879209258882901046662461115308824927026930654599648865635672238601746978219494561979981963540016244405666292340957380057937325163075352187355150874649223103862243118490692535516362321748046593749468793275786291746182106637464058960590234758817077451412195236313639440076414511958059653565018766470645986105526751295033601953827820684234110526946423729218404320161037072595686410362169615771643696459789886672909903633746363424860275070952483570503177336106628431588147319562234393332030512692268054256134236159967859789038867672515173708044625756559313068246148150354715163708988775500216311168307453949922550313407364972575033091052503108511524153889452801198033680276800130838527316656893671882923686184474841802529775066312094257837207675965677330828140503073346966462558652299990521151249485358251979612130981989211081534098819142080320973402482910830091598261384267673673203316047782415612794325876487983793784896986535246509492682034593160416001588799830299689558682971403829484823793595738005658356022195560981103978723378064147978979792801931136668827610619279877041602204692861827061989992876090614812006229308375286458838357961696471956438479688409572221808913284792685606237874073846674984876161381296741607797296329689653040668948392228339256662137520611942311761301621659633412245709507112488455020237520358202121097765043741453520323397615668959559298400507661457975908501216893487402946831477153958812480358420596049050419124718677616360570767992109919600335744951537965897041267250676975447164120492250659445726163349825408976399664245805415541328502767226881463607665335050819092415375787495197757117050212400408715510294408778117178888101019122036159940872393182020454266263946169148803016171507292409903204453506268167514933475050956607828116111959438289713309833312245421593245884208520561224914557225811018773790828434495650845527620140596956989588854204859151491767117545005176814905577952926404775987656637154650589850296307110281010533218284183353915865927589928634558376288342765686041194469539165978868239134790607157843863709494382456940473106290924074729981513408755222926209515209509739421401787808618683535138607608384962428256775900336827590416737800935843144315077789401438355317990550513071033224701954039476544061766813789968317678528579661408090587406687348198991522860894453591741857060680909292141232192692642760983120547981762294001024037917788023941663326675416308336674418366996396462231469658934287053386752170592351136108052131469564302528620210102848384897853539189230571835643678681286558601602949082283005073676572349055593323633315319488580570335827837826095706272931862188261490732139539710640190270302875472070163837977319836195051468998493500912628493322177016771914257699710682713562724493811670431616894065963007249309570957773347164305625541859710697068238984015004140713148729400120580960189667030350459770047977701587034389225599668166937972042180089435400392448892104582669130670298049070413279148539011651953513554373515648937001264586330471638765070776903371725124508946234127464797787087290737905192405423586339391425794666601110671071119931903413395029736135504494808932436352265660298135930842587902123861562012793360168336006062110068749325567427912857568801146498264974004664350370139880205664780313573540964158062291238892413776281455294021404012066068952971802292337172216472751310967835306264330784377116021885222456566220189263410959863831352682978897057268002918665255750529715496646063102466382377080154758140741860899675802820459683867885091038124232178878159608799113398320114080199781714332876006396671717208497360534254625741800084773505500641561694788001289647359936585873532860809502460002193660780588039467223425661049808829810658392544498134093772103227834190413190311482509684462540102827231580463339916155994622381451010416836365701130715717908505333811883813194676001054881621134804616257401926641658102524557317170785411351673264222526994127506044733598068688065650293412454922929935775650749151430712107468609169799536017456454589273661262878509053865538583160037723942349394578876772944613942479436251965926323565499135386354082020786896393985561001973059018874465486261541679791675131652200481258646586933567744671871031712917206774029283154642798873018004198752951401806035354946626115412139620664420779600921655486889949896926581794396984759698400092648034424269961327343088144260332042117196852157706566870174872375253069383766896196751014138284613251917625241688486902225021494105842201167662863377435025871348955222395928679570442968428224653334621291249809211288634434517847756878908071807137439147199295717775176451848811940067279501028982063993923512417415794409207560194293837404451449393372162819722982589070291728100150474430694895088361390098529745835747503465334398221982782565225139563583562289794782213659430322539277452815361678177569618985566209073453787623611577628925112666889611787874986502588986270477342371991083792492852077954360255523150110400730399603329065195821507343383905112415512931926837883077864103356251130586651235755263940324773572467980277722126288531039047070377850539418646734735373437827087925654877144856304257791782099959905376867544130185113204582586824066015661821688949586885429201786296562629632089936638923564889462400803549710460527476324713693384427903518426313770865963837240134877243787990971677126054132858912470910727681292348604422847694414170454662473075186972605684205357207045915718767767095713580079065469283316250039566063958164506037454800643009015580771642431559676718228912279482127501871974478293690156069837912350097730831904644330518942354345092208232861465571247699629392073197491670102570282806893444358406378318036278777990311583415537795575750740887446010596412772125435570619646487728057642514812323981931402635917902670452899583632902537616080810622959425376035255727871608716487122876570808013505742426240954814090562487570539510896979495729558255953510589208672871483960994819156703456340334692289558698393718674995089634852931267082016007974589169682802203996979424767770138756279531453831858887870060346215720915095220369073157330653656526164674773640324900333661851920026086767797623433616721793542224529598514171911409315308367252805251787379568136910431516909695393767416253058533422436361517091545731553932125038908219047029308034110464274785506759318840801189788427035650472949947658755372006315317334963313823768319624552218038935468486368274350195757540662285612887462393780321443030610735720841126706945109932149629886714525639014126288354241787566278478064966907860285789968641740418041809402511091464722468666945764893559587162704012578318091216976310311231910558923341506224996811284127688686122539622405715929078405425835609783128972882177987690367058762839334973068632813368825691557721653695072724393641633146150222367817420185898807935154909084989221698279530545253538597244918066155902784413490479839753580061752847835927721568663787527636959662167724827117645675520306389134991235723790800219880427060805865544451412905481957450652079556102737067389786918553000094783882628716204523305970710615546524161567075377303721058044361632426008653974594438028093906478747061551584871311762054277386585366195972649636743990624364057470127858459573609915644751613977036828571557357487975703193408439206092840518074968373829637520962201107413538443344067158389642015949506691738422296284597118158056562265330768991781622175359565565995148775565495408437874572043444317608585046832718149416164617692001693091271609887618475781509059245128261933263755230073946926276800226132345709906795749162266522104751848158958629443286513116629834263775285607246588679303082547753053516685280439224412269890381391720125398743963761111909506986432795380809948640441146429556665843759809959324065895977949955750840169405969732926586125929408766436036674481902291573875509573392371554044627511914065582789035801011475108836183083656030359245806319901073131176885109526171795371154515399353425129099117194168635449841389863973975716068970052942189716946415500276976355849803600281631594562592000795354388913737320232946241467103674212180621157608646820789749126745098979936291100388971316977923714915400507916606557282254983861409870187079466408162041193985328860259496758610060654302497651211388896563739440255947822228577064197290287935536094532747765695815868366371545886277567231297250768855900325751526083356813827149524098968307234604956178946592343166287038036158011045555280498650405779085400121996659580494343638579238005199490720535238809376396044320257426437199598524773345367400974712155470028571606275256923767200764723399094474816793640544312842676193126152247750534642535795388438573464993077680043868485918214872905126140872495110595224596632553090742570883610882239004390920172611682772897952110957798454372858491457504826975459058068412030325552612788760936842462244969016782065224882619067662333722219395529437038130721534354116765436652605295833386534449398619819535685654450152068121595418177063373244008911948745130513334811561492933984955757656589277637038955933410188140541819224042895538974480256090965781595500127245697528238650921089983984725097851228226948685337377215484180061960337560805748329026263666102794802160404138878434793625635492292179840586419682497756821978122476611625146943078264898719459456340755507751899538532368429916707582081182704422752728165364305204510893234994150150031509661525363134770528526875513996808363617571831897520176381276912649619040037326466095602499108425482005277278703185616628060913138195911557561245214063362809521218454011256559609611986196476199744108289360880415565191775915331532368134582292106732550245196742923560116759751504055701916511769255336065233545732018122108557129820692114905842543658119487915744270081207116597367426753730021235941840029243092649862631518918041180818551472522334903090182497704989993599959655288113952830583756760903528997942472250201460012548075219235394758963885533936411482701701661870532967793829129447837590077240785658156073915046792424591260823784694019927145526264064263950464142019192865165787640706318883985894525424363853262056659787196442701139836263437642563939699909847496564846926421997512395880624312830546130433612129205621583304085666317218688482874593373137605231253365466047070098416355882760171241496067400333902186217576235435546357073929308255940576611696451646001031297676796292388909509777813059253504457195269443289284344732533042037104221873271340494144762763768804759933087093161213219080431485597089545181510947077851690371505781424691001260804320085272738116595688860201886635155813106740423945186113378549327765636096110474486535093494649513024708759898569970072030476576892011331792195156744282055472154777950900335203189533397132937956559051048346502588930279722999605677146544324463126752171539792644593083472955855448018394657180759058731703847953230468190792753369442666640461540610406829877099321255233492620968665787245399793688579281813757395298679970908436982207183186034241730944174749562709916435242131531470155568354600524760738301861468788156029958552794799919699852690605951494127365323666334481502276869538865542219413673392379493026774926486626698886198307653846233879930454386780276243069584801592225737897239319665939763961336071203160212561834029298395374918847313354145891890883207218922546843438765458222177728009050152299646626861943356983057062259234302237822894044799163313866251899143601887261647697121339192900872918049063612091313491270843169776839768597838771065231656690348878471209858492764269469362748638680575956128823324392325558475321076671503897622940858256489823073774223803932750045069914578349180672411431231322748343797940387658235563805917048960377408005784630096780487130459568366784715334276138322761304891183601022589921722688693377124233465980495719342989278388896525249457185376243891721169678448949597228943638051578274233141502071142867088272347001538434325902388693509442199874691748757912029703714549095490847905318030604766560707458550700788644489120524346510222593615622454792025554405764319573749349546463309016667914102533874426036922067476959137282012540101541902693899356961920100593980432039019158448222627890437370247067133808016500950939506886677799848757953893255716468987257450979875520205342116653912716832331450479350969870818707531778529537850452060884652212139936924248395100744104226331653719985618969212439940312332513157693031859723436562030555964124582433617666425033007170132007112213424171070231975843988071229618293310438108730526536296413032607861030647769728727121125386783477204806702325208755270790401691675680178878689196078632300774941464334151339119955691144954420082765561259799802813514635250626404793601835655504853200950667423009751563665751025838943106518511948067889380689954562054113000417831226643312805489045549194775836224030880128731033714866350293402363802571492964559293078271801892014178311959857379101459928530142187434084124326879344959046906725990117465538025959571897516957546287218178966695629830685064694561271794732830310018658181327022318597060483607122305456835382827885940925862431811432675234568301067042951941883295834133854080570744205603743705143669242820926665893008765514769085498167696678795108731459081931849666110441342591628922366565670321907453449115189672898451188454386880119432892379126917828634105391685223267875507629088778738831834796399250977944562047116421029566456181031040629517778756914462177647793519997740691436436766898807379232186818310759413248251804806910052200913800080111051787622943578307968379938659733935761350663129631142812851227881122567524388477163908280462006028232484906780814838933760070424262356761881071590540139045450218836867746429740867730051749691890726116783324011795205768431847559009645910778855526951425393064060934961500366947510492357805180876945434075468867215418675941046537933449873265352834812696380935415318026870934094738440737459354756943156385356514059684434637816298443508148910350250613771462663432526813351491103123062950219037381347254330221182781680232383805026177530933927491695452069072005628464781686347553548360509423614001806561426962480684406521973755952689190781646738333067238868334264067898860019810432010298372917385816148794451154265132134700513480324462542675909963453251586507995018875047540461812716851358082956247639794808326662476012830859884312819555401887942404340312171181454409413917346438952186631424323857372071186228793141067287594560372143583498377446791085342149327531937966934786529225333566157073439731093412581692578949917721562810025285945455985367733076906899294511200349048938203629681792127715147849117299892036279127321454990282673445758937222447312654915662617529881796063134826321077002102319065773807673773782619825581154368977379979078200064295508621509325916358191344972221418421527976808589243156440365638435596044936245806768213516369707508827635487151531241998018388865381524255916409642141586257755295054884988754911148828668801359980755406242995900313934100316398210754311682953120510967570130442123093565636047466745746925407913783576593784542940219219952330917705810209273068152828866779208254491948223151870513243745136185039291008690752785961604150907863305199108473970032348834680708679353873288807055546338866635933459657775871683124726888926604306641971152569612659084799199866871101088692876283982366934055519557960122869509562104469586233102269794150708998638998435227327110880305049816465238068305679405886781611376750641796862210249112519361700998018311635584661525099543041289297324880056093262120670834509670366951468374490233958192967147019794431958486808915582268079876579373289430656812363206895855769039246665104428039426084711344647593640082660597931070579414359466496798518566793710776492484187100572958817730303786081957624426103243822240524166384970978015387675378353713731592458461665705701105170571577878604396728946447754739412210568995897801088647115582525681667519719028912439859281497421186959063028517829068964945085396467535700490725685326461637159286692684684349754737598544231067472291288189091649740903101046044991038728611849665146789360996767203978898316996981229124288757752510914024720112447331031878081018241095233205383188115322655240673394827442318850191791580850941055912590953017709181908430069481348052190477072479239526594048039659442403682418883530951678729092559928166357878016323503594638679234064257717625713742714108187217416356439833247009431328653240054911545510798812381513453207356223183198550068908140274813256398114061402063695155942753064928352155025381474828455743918748022334055202180054433621254219322107431973335073215316940201541639399552117592433636214985317079682044800227085535966557062967432903104597587160243150937498664372787028636073516437274225386411384457387691029985912081906109628501525127320371608269960993026437232394792755789319310471043375315712547613037717552804315321169674303680924383060762831829263573631335511766447291414872154410126447142107826297828002123834755048901669285531808872962534281604360369180447826552256925129609145884501621454065609768440416040935731471352170812979867193640340673763848279217464638358286715980450544236765005354118472187169548204220143233676191610587349722056779831703729517324961194398991705034799989601957154979365485867810655311350245883978888160192416078187045150244512130906593648123508007434315971113118555840623807535499860609550834303447414077008727523762494249231950760686622359946547566487518741505253195599439226817018203953355392302484182429515068709880522523024127320801911509031221074082472667930329807421692689278264183114515913936449050120639138258279914227026596178329729262376926091487341332437522881400358989582633712562943086598050273054253857576890663515584329981666202609610473503185879385797081767395256095142553094526131291470438256589949929289615561532741586786936121370804601544707555124776135769095742044232010321301678949429668127746251552445300426956816658474017941551616862096715359033294510752005305869113563487088365374504347494584361012823425216898101252648583937516151687797451904051181617443417796438749485472454888382588243822006057490402619524095596434220740636876093120128037483415460819825293543328968090270135695702919466656396148202595842061012115075414214784129850816850997569522398974891686734242665017588912279774829077816602962943940123286681986575103557911092074071464227656996056867136748821591936802733665406886912889954561521670324450636262000550454737032312202912741922933456966598534662184954321025147595876575167129806621671793340010669431314427937643369218915617712526149015562347531603726252939068320386315706541067791096028723834037478424919539448195382079997996281355442611158064435642613467402078866843605969710309405109534695529733482408497768560394162079639220099277382567474670610048321140444509148772799002488970801496474730827083553922924254238073415956172060194318614054992108695591325625615439895813118844800099871617724694283814145260900135243526181873549384976886931894017976858136781114148884580020593276426246762014332254145808840710195891642819377478704985615630326541123189584655196431810757101457043446295897077409470043338704909078448898027671755396108707427877041763176853936353827960504227878144441376580671821999755014548952697019285229854717114543777577017002091343820501270563731899628336592123566475641783601321969311542810350073398039696651141716970232026248571253483066031541563445164483559849395573675557393172753567268129855113577317648368869978480518950166725460944763841522128562848041233196277559400378906837487364741474418840425495202234124552553930615374764049712681626350266666579277375946440908412915525134173805130711595202945935404281473526352061762351253382507427644525960404002391603539705459767623465709191187782693028895066603030284642728939503935832496192828391489314680341422364562806044756854107211465781552958140890038747625371059618422688553080468633541750341462244124297439533244463567320998299772717894121824811882612141625779728728676082594458680401680966953812230427540023006465236298313764648770299870946084485675720770398521384592548761064579477398109604147831640671327025597806823440092421925379562689633769999752277661556786504546755030210918792791935894815217806847057932209537695447498339536034025743949369893235584616063526187735095987867067813870881948516996446786934394699321155270741276229293614193305078362339771862079791768068227426247195379241926574099973958258396884821364108607141997005286490463907644988911969933288642483711810582815508584506251512958394991923510093534491986068892826210503425555332786879637462882559371895669410053701415288062893968113509902711353869871039591648662393538853679200694625619151692748995968085059004266408300965843545158655594423972334829453271249952441361461080120996749452817124564006052872986766120143204882748844287129032088659374480281554124230644828652394093435949944101310068360032177374538540305617500066918673184824228858320511066384193785220373593376147740851775068890885210201451555005621587835767830330363275959879765263249820912607335674453915015467345891862534826284331689542912954725157832506599283899724627292002775552792223190747763177503068980190648911239245793432636443050795793031747635288084191973643987016373826850615142819441963134943665189674837303843302421833229981422353278264020733827651387642453374207469947163289412097069891227210062104689464540373847755971540463582696762590425784999820933077130528684098790233480506883558933945462923307472043622477699276654812355967647890769157037930108958196518431041371167513111281259859920312837650134962010570139274111991757510056136037981645544544784741099858475019255870895730320220214202538529321818817998110751111867887094714351454534845349061281508170190080962860551694436090183683845389703500671857657056621902708425337954932543017783697494211921212323213040237894156592218526470488320227743839436402476056850713479542667673029061952519569243126310990281482962029299620830289155031415892434467069706143945569364383545918400320975851960836842611416244042446769108100562771133704247999825941862554154630509389942815615739437016314300293753111155656835095021276656495050257209998481402070286477446250122776972098057152790012278212508115009890861982720973305326534027318650167195896002026201494485676676925613852643212264144643006350013878567807655641615949813516929347078474002595479108883225307151609234118407659413269226050004851325107802838526601361373188307664581080210352238509420975279395518789220130056436009527527060157602000231561904545377368312455372136758064095365308343918487108936538422674559356556373825175191114240140967852836143562752021989133597324244108351308053395079249108666929354590642613085410067225494355591778924007533039994462423746138514659624641917282400027242293948321402401397430856215032749255831082144683180303903245919232196594593941857392576374498633902906352191407266449905975178062661791050890388536349263151028977553617487949442868873470535635296495426063212012777092141218456281438269350438276084700376735571596850430795226468628943339158208985505458957293006553452810317669944986694618726913229618271542292602250761662178085526429377145640199684864852858376212501582143344451469332820645696910272652497462405374903573811221460729197640211852669479273704398146463295302988461766236318798963235510357776351066746077022576796774169233706926316635281971426673643120010656252792884176592261036714216490457746705511471150443953199111690596757657209555152665677295517613338332609778268037087871807857183917281657160043318317032114673263668098500934806193221764584498203213522907813232870961004919990324173221360869410857325183591825073611172189778342138475832782559989415396075100080111533264349545160297191705659065455313573282062913661686218443853469369338540846072275217659173274479683673186588994447504778519906813975343454258153624963635897089684850129994895033443646734049761847774180857546693121141489580787286503851362068949657972569795312962730366151731457974566556225256516760132091317343804657762326138033187150854709520363071549617688005823678017164016991599565181636993463787563495342294019500223911942640966591897476251239118344997455416468177991583175027800807812779833509914168423721212821968058715651663640796285677177837348716481242328890916350237135107818033342978138490274492768964652067826509989704954824742037338306110291142554320995863437890226314244510253911029486565537628462311717337625527750719317557942188003779321920919355928494909006099956614359482939735663536260108492480226613843313200633285070098268118448943753857214971141154804370451831870512563034081912093764881459686386561940078113465621345188845764654409363959312411906248679056978490498426894419747761229757948000581791356473126068202512467749335838874033871598998435409422934400333277731277868552855674542150121717880391401431328224530740315924474088083311027808325013211557727426076537477992790351126050691949360799115246486508341827812796425203638317867645290976117353210640281837922331236220032355987245525725173185256197005385519502397689005815480986851570324296754239867449701426030522929673564161204078875515754249115322438537438374412646981247962310253830743036420864850198888912020308890435932077734553097737820027381654228591531674044798675404658063638950838338990964973748823295823057777202579641387142382937641499430187412501486049141264959459282425207673120260518217532999553754876889238287520982003595603022822192214492780600097044388825214293288781093444584758339624363030736990232068434275608770662637144988760941968199241452946697470538388756980237834303215115913187441860047345298871923197502169565686446028521598512093177872329675673287640234159322931677865519466338972936362161810256530121615696400155893061218079429698189982806958362311824524547753103408699097984471408698318837807514087671171630283416359621425661305254331853772652126008904879401590018656224490989208890036704175243300409181166950917005431158310172265159582469639126224782588163835304106992999759272633781653925206923789487134967518977013947656554234247159845842927162020593872699835547023063762359595369936212174546357568889063104236296713163877737402908108415348728011638486669283108433763440072427460299588410029771045398950360474223513818676643736013814318645867429628875614501683085381132461700788007677951368927987432363115244253844654014518614575562489716409622369688245952511692856619910378766213464975169601646030706345381834764403165945134333499493821896745366549650991360934233284846778176267503602335197197323267451484245515437746541136135605972168411863306576794367731339650225594685284165312196294617610167666441639659701694757111319093172909767313381561417188780297179453911246847897173720219510592077241039568187352584399118646061901423560284677946226581996940999754919598467091470046381949083241738673269729612610062829416448029821336629414319777465998392975580982878723087691267973162801875369908155702026467290217034032847633860418507515847367994590749000012349482010164776800354053521734137190031524505076268381693425384352725975468187123390030673520157690535367321628328044182401193200377755253819786569005520624770098642481043491679040520466349171939793796135310117681380274667672578538669125442250418969857678324212675758213350475707469033566907793490387875352510512210983250452589946501905414885245680627427118775554472722623867888102456725943057995363308807325132154824160383426885536323463785532775015028445188036035825290964519084907612889902326128906226519941924996902105075653714401660568610352776268099173478517465445501063469116448622275692171337608377533187965807526259107015956471121792027769133861930216956458107634835713484744050496504922967316136538087681849928704366065317027945052772814269184086595181513132150036277259497708513981257316169031401237854351334623247969175404219702835566601572838542765226370098479107635546041229611763039811177254518277270428333355959639929538085496997314977035852095193067204337876018618117673489156155064074849629167028036617409701839824909082995123180911110471332744506965943667005577410661231530014735887595153599404634440097814947446168928353326985657977849529147199593667143983754947653148067781520446696840401254803113107947730628809221230828201493754151688649767634014412108713504669175595120330339627760513509104168887604542932634476842868684505613036816625009908813364494235861473498239938501935690018541648862456832790512911401503173618288553846071256851099473054558535565778539666081572102942799469321603521047821798135881584603861157026907494793983033421062251114197096016958140352359900109782479371859470554068000112637676061039767870272622619374208633420449321939516497109308404279942565464128995892801549721185060836675774397748028192200303840518707369364833481015540801814178390986194763450278824451404912990207011746794830075979804119693097982639509913982971354951819748585120823621777002375252734699529176653426918757215311778105960966725835847922318457674711526533604158883449376829931386156039108725955106986727642686109213252961641941224384934073076613411262236376284200214128318289198153952961390969998750783672988388350839642823723751389693474849291153373353779259603146290206896176274530733690639397343063824194485314836820060876800059792861827980856394965439560239349441770869582269546342418294967540653733296487652428628809880278270661631155395624617995126714220452688363211836864191661102757692336191231239821732255641049763436165849517385959995039990642938851728529273516117527326490744467050509071781942356496766970255428196038103919795482981096414011494288516839235607212615449501409647327556759108086485438316014306383289103976658022079237234081630159660309736966756826716935971774447456335376687345056829484753633153230186208992638072215986465818595883437765872713026997114937783500996721956490603203822108389156660490285631231709641944832421387973591516391539668725369254177737327070362568750361639852990291707171674558701818979508941078019528293554569299895100199549104782811369417100077247456708309844030387182114288752292909892249956030444953116926733282913686218420857466996857251438192540091025980126612001207536901484020939900886099893792230106564454924609526593803441907230720548423158417524646465040057756155386626682619140400243727260101642418517464124886673574995564940353488915252371567168364079364956656378413864572673007939073596364518329769487489949699280808448385234336889259248175082303743780577499176256851720404978675305216806920824994797751300411090077070618074108449060493869586129632872848319453543074554543701313143158636774873462772839908465506988846382546542146147270348762015660604888889199546061380932828643562459539918542185581531816650359618425643496672023896336648714304577938743373830577066711612861259205702424444599174700609987492378755625296924495068821541085328903428598102959821836670781224325597041944479131653519136244894791643402810617463913584190334800283942103876716417450086208321348390645050130306651875552925325822557969002942097766529620779934810765541017848301394949311965522189686925417465347322814282198258911787732404928735735866880292384656077675970355838751431789653339782895133285804850347269665056358022555116830471704639046776582974742105985048682454372592654382062787657934872028046140680010634071890836462740361370636818501500803110514332435225922865027382339875225246642064361201584177249009370836396481547149092498375246047751550247049145680658768853160895271400253155670769067887222333585536544607794561170167704555789555472889734477226251359157295696716796941919004305190957890518928989984660606407612303734936165646889379623753846138989172087335225638431528061331596437751367641370556613764375349010794961589398059061609240941432857866120681805810558760585970350384037186681593502248926619842228847398981362055933222787828010571520969040588175188349992173139296002589898765246143683344312482431072233505834541371504030959481443392627039083875760715489453808265843234312113750943423635486639010596380731811092733909036665102962095148508972858603302612602419422837835262323851024192088413357825666967975360238907009438732367816069521173059640271323689539523556547221702336244103057200609308149988905177023529803883927867876000382518977678551645031914292437540229021769057779191610806195536278235542072108946951775227945654783806311570204365021402440106901243585547295235449769434636160695964254605056971428966396298001401887415482419970127537365207643588946503182070992459306320062456594989808321667673471828314203891610622624734360971660443722067929001421158329631457324517330333597114911670711667959536838842784987343306467200275236197288118437773633275793227953618711546878217470017460597647698704111258942100449589482525633306825043818378090689772221500087995029253425874162339429073606313535345737800558064079368020770204627471857664394391282275214925491184071002984715091788978961833851349259674049609339794792032424103466422799250068522258761062714216979589773590923177160735148251491216566141354931236718726879430790840555601859248413020161304833071396426958139292521131714385393520788913589287674698030912877810447574948133115040826475959735090952583572018199119121662704899570671691684561534239041868776847607628635245810450738091963582035081892552083572723632113509432505306552606123863933135930359939319139059651735463979740931284530881802363197603441860265641947600134992009959963221984921495839184463528844723246974300936616527141497253064900476390244889343369224910530617804960947203568473825165423126311006994895413481581169520115969796299442053846403705764406393476886416073290740780653210811001709675780943150545065094080259713562104655448251326305965872996816588901390714196599621036556880582620876724269228231717914135933097264122515883449893685019150107851499932915180631259488728660033437803110971935101099165425312078983938465921178152140679961883101225641010892565449033067034967884378420350138477304295360635081010563123157333626173980906360904623114951080981670239620443227612422121315834739916801685774456479581232927645345329978760859129267746325674511194975331426320198465589917140753332817803281607201676517091124125855780915276651209334390714421412185658015973974060892739678983703139865755527659045871491507377462746713716492106823929211700900788621502649489050670327409939804437254922683977709750473943875924274863336716921536316508389608533606965224777930936846307872994664589621372578648971902130484674164695600786885537248166349236782702006999745919455190088777814262749980715703564802227682684329977379563154367041229899549226109375223031946227100010697608185850133510162307700263537822956382919098398902805631617360257134610344013075230325921102761632332298992937418519499273777217862887203839343550629481301584808781947874592150057736440282482770043843051754752462728248643139624979459118685911574124820224178262412498050131462964960711581614778225732992885929838180606586096070053275316957947522431137749414058232182945715856904735587798514527638711579526792933106870599142971105530562986993810725093900461848176268918439879527239356848290118459648800181999480745188344589494503341814535059323516934017854978921065622552542464566973630103627836000521216220644284198066922782401887701530434045188281218929097489080754696494365897468948404496119420308506593391001437732452289275595272132743729898380850177233588963475983830304805573406530305287103425339981401705009659470815976466324704864841211674486055123586469504870230836326533270095398599366249701805078130378112438285305746704700118100203295527507368242750541265986317875077424038270596100786311395839647509203618166781879987057589860714603690164257514696466910294767267439552144837541551387546765964374438068434566769753530987134585704522987781734072560428855008090769979738546981851426054534688132751290696731861200227645046839371259303066061699244306189440939216539520502187063985608367430862224588175668818804632324537068045168044074492068421415485663745438832539023451579425689589905967786316723006572337966401856403825399097035196675889666186942374322160682797624010648460905656623961253743081773955953261641289841816559625157278136995590707770711241442099617549619796858946687974683579695320725827073392825285362015340519126554677234312646385850941610138824517138260889357300202514472339728408414771157277617633889488584413967403178356524250611188303395642448221555915979313672815482966467957937520410294022432156922830856445987805182672378899996388999503429102121167987071857266505171548847883231100289554747967578840352580675603294887690689998252983809661449303318490593395015494629132918516839963156840500071663962468872928281617440290132570732467373884555561194468149591533653276033111623911809751356227945127138827678695599619929785865418708909724734551174688839080503611227032579647831625683747300460304337257527079939491238963164454489128333607093654673416079142355502929356925051827224040955637221669864795975230831176763829213583645982781425004801553197290496937815178500178562529072141020202384650507116701965097728069574256234035744629330240068447271151470575329462560501699916537942379702323245912240647965365672783691593819673423371289137210515080327583306563258909619913029973605321735120255093011074092892505860316641781073934708547555027904094831309665078568624297655122891094308844593835250585620569870321257197811531703629124059647439476127318136107506557965269367577253257442001794416570275536625008592134180294224201164675418410371340301526685016030182344369516568054343943476110463349885001027315534583285260527842943407991836078980622046135428475106034609590383135948130190572628153782006348991152942901720218587510767981341276675337833749528932285482284829905559081362280841081304397725736153025604539111275828846040881923406339746412939027373718136496655853812558210558934550110790860233368169643203244360016429578238169303438002960747831910776604814403907777113805914150401775336587613563689777354838261694663710337945015449574077498426659925174856032541424901855761520623054780561894341334766169702444774870781710224648477794212372766758228613909435457956702593570730784784533970330395536549954480270899143323223808732106417368769633275599395348467926287060410328410845645196836746925597692020313227212696731236039986828558343091565432649340634300460431562826756797894657055122586817334300749469916443850822500650704283235148173339329743049802132909951551238821861149480474561538048255021519677220180386036550481016991591730802375290338911036171119556434678807760498086603198753824036530550422412632512711419009927120592372128202470304629071021936124525431454521916809378279723333855485869039235907488980012494579503296826841225242926357785385380904342422641358795228054774928466564582618339422080994053429768838326728718810001513266254205472641930387866179939248058892725047412819474283807345198674803338300319523599349795148925130605883233010021743568757294564263063373832001576634984296130970763653079523824631250012095350808092036548502380358460981020355411269946849875139436489078518904807735237355376614349032309645344876262135141147464163274239729296845650805337115500966463416318039397885047069734730241289378555703187562306511573855570082325577686386778624161151661249123252049771710394132958338846272184888513083146387852797224258167891395950761615857364406195745329066026853539625987338032193774100309723182608012323926165221107434779112204392185825744601018190963610902052179549933826296496905909985763239483155201724152561033661221642156850582286539350907560625314158700153255061575405397499232149039242974218723550531959255593606120000792982841172780636470609086727696596451240103500509830125531698488246071269309403155367183475761600929745835491789724651111416328743673580653849672401529199030329741774630153373232337714566600197977383988005096014847357177895649034912788784874309468481111511197046453857272678779115606097130211107804056946807110624221050775259777629548498565314305603415051272556454588993732313582191009671037752883280429157109971655945874051774854030318378424450758509861744855686587480830866030584784955526581111588841905688695187213507556862302445239269762996054415237346909060310189752678208411154911592639748438292911301294442113433700355952148294808919876978076847219470515659424396284857356499876195098101161873073708867678770922376637731059804754103876445924954398263748799905736985997380496910373036947149888198701548318135368004073128108365267521867935798176781376940657573004641806455245522790187311189241027930116062370237181315258974856229393812523845063025831462454583788180948520521763497789862325428852149881480282074766874102545576806815430523580620035121240138627415373071232788686305968333876587232440785273138037416041140082706040814900472531370065477677316755086222387982838924765624375012516532949158521435817925315476664526895340327146539160537265207729863255513407678121264614911910626210448421351059669438689507349349625917901894088859085347874526296135177862233507100172656384068277744597678966482814394513092270727244818316958195246089037720382966030878056655324208065565053098251952983756264661608242384567049117230885740180102458832517738758508973469035919268908924287213916928480253395062950642756403882686541520133634979669272341042476293086082711125122966040772207304693710722212808104617024253221132666374318007211624341236038092479057211646739754066561051957283408897994569524423686005047540575862633719568897927591532178727524409431091178296384038772533545112239546641795900389254884379748243189440938643842868197343228402166352304781701500285145521249791055794836235098498439471462102497382614944803108130043384146789943057928011283378897733009247586760267179640051183257073383661084334026768455864372199178513130720098713976695384771775315556272754507763066986386422681625091043023524974212909933383416194435258286442845825212858459713323788980976398710931768360179020626316659808269397877550755789349264585711168986551989983857713014379133070426588981438136510830035403186987700141017398645580105706801388425188693092845438437128281648444658852887518714885172393190773845655322147571312436257107785993101874617882375674518608334691347711942436733031362120371100632562043857041083190088616887602250681560429826605990588478724841783696513845923199758648497566907491419771463997225536941373657313718855427345814415078681251980428244319500105714756002322344817213184016981438296313957289055431357155007046352025193809605469293461764485605564733036061576722495103364927385345904354976690943938742025538400135836242019426603335302885651101477518397460223750335779915748372867110920679387009118198369662853928984629896605014925446966004071838155578318506583517823116893149232266335807320483298658534639711235518574358704101574379296317055409798287658599177506030044554382786236212882347776665070481481615767614312367136010378796855655823009412535083459800978773456758464323089175384068758308255821457935972869789272969850454542206312746371589318280419699502967978964192718834677772216957705946052271420475582785407321252931634196428515274155707507105988997072287038070654999492995681672488324649256761766021354150758039843140664859635808824037319199020459406821249106587650268720799822362562265573124786396622936767239504031134818627067536983132273964385202734550620192302585174148483494816122546119027885577458405662684397195311081606403896916355758954622319855852375023171188384088944382914532938949963072773962070531910626207386999081601404210719446749628227671606042503907040421316852793306007827359417389049196296708955291561252644397373923676459495483065752176607509522676280869335084846122817565699909880086486412684827265207947759119626186589984969415127366893403447947619866509767545309488532506649382242759935126502889219611307822767243600387627953729978163041790570680901394801330508882555594399328470935833057852848201109573972257450336814399755787843830808281993966092555093614900119554029533073553276832553582118219716738247299830856005338874178973022976497172315966926029219429546206586176456533538566896748273945093870187629636222097904593640253621874991371166211379907891778340174629339239853758532444469158213137154064299414045891508797612687955148666729611387338354510074162467069550150225932088264014471263282259122794691950497114537123220291619666775865736126780496338445333225932319932680754611693218904122756136060735048545711964597343779426966801956164221195507467693983338900208516096560973168933309000779918773715417799683863850774494610690716246118933101829045813358993662022741818715119124323300187058952016515810621073807504345964616709316099592254193424154447541955602182419529486552655943334796667062722715682441832303677510872382298316852064077923866553007278886456300259712951805123720406414304062069496310502043653138188812910488865296657608835181702894711962694752712154174365285765567371937582173219799076078108322626334157233685385528637983821502889738047174733983479989441716656076923014576566143291199661052391096357706984622199360434437120575107486488117337476151847399385069939608600561403259413511163926143531823240213282329379777699066861226702252860795056577441671388130499261156279836765367913551461855447037463045226247821472536453675962393408510064985492668963724030983330659602011859360755005211655638469915873477730109481051193296429342930162305370725074675059715729275077015674595804745455115828729853740784633228615287320150502883004857827341214356333498678873991237675694582107689837235078119644052529157733671961250108905178792931980062838769836384459781145648203893571346385445064414409081044201706607049033242321601248848626433864673857604094621039711659226621289146426600464513424927357528250829626945233193608350043136322448959729109993906973304222486439131012490570771611425461597740503528622763427336911803042885891016757501744070176998713660921820328040495011962554346215328540282136977057651350673498056381273433862208892853822885847333554928420754034219684188411629813658719458431051813114608675970006774689192976226915162003313664959799314582905776379535787495874955465454545238576047125818471509810392964709249084670083210542429277792874747887211580430142600580066235745388931269436436195980472137020213875226808263024596480198708645533910623727057036137264810083123230276449276628994474682257425231424311394582878654813645048170613496630167820065480271239828346578257553732578306747495379767353931954290549042167610803473630568961534478202355458828053839073303380954693325866058541913234123986707982249276262684498686734621204296123430785788711491308461512089455272994921425051527071561870797040838987186114121717554196827175324309085456536459944421418771790846134484440682028287610555329659591197180393175012788651388654259708353745866063441754859757267833820768325512737203092672028679414399121110219776523047050712456756149369504517271460627440969951707735460833945338689276911134046557649573863389442038947085806262373330608242429537717011905181408977838334766614493876978258772590152135368463176528371824065730729389054924066797381201237304253549271902970206797860433367685535011930089530459547874106388453913367245825697138068105716942954044399781017463992716353167582525454518059834901472642750074922118878135097031106152937069012723755793115977631354760626883047528418861191743355270352353080844406819014000170488283074634867625909030627547426951260188766627244412763954194093794406697872388911573392401916428385519505831556294070973572522603975049550471822057412342298501095917545736305015292647795499482052053707518029268190434133627435178186162669316585072969936649819063563757699110242559340240562664501151971523989602947201967693322277315276622865604307660878742601975584343550786042951401863769875295721455068070648861143428887842469638381617387925087426473578991708367418513520813187931374994708170907623492826638549166295025883553050664189099877087717822777191210305514312796295977972537506552748274819448832034544563755502825799423200713005946613037777369045054824519072590975950336663052862758476118609247786967981056310432296698200751718805627974801609465113791645402320260530452068416542122074199923247361987372978113184090528152766558220512146033957222334156630212242312987519901428626312724779932115120880485151022842562451740509074089911269611021472105637649279148195714686273676271648385003059094725562659066391430113124448988236718572505374311067525650898264473303390889763562089335980832426851732716643805730214788140781443735863541296455894585149368062523724686420424339383880505895241940943792956927694190028621924284767461883756811701270869268496900014945246680154375182896332015441621884282089306938224587587906528366439882113196019720042920891879981101088626814790865650577152680857867881044129139941208030560962388708275179308005111815782072913644160741675802185271680962134183435701169700793825641849776320462108245490482782529921968599244129421901943894343937553635319582816693057126847317234783377444275614700785453033520827315263077146676874276733315931681826990296125894252959229542977861364657486508418108504929760175767645323503503652378262321188718905015871413340216142403657897974689037158262082062741079688842195204951991963345062282532149874711297840571840497863328253841097006964598002279118967928575802721100246363102565889128668180180772909451654316997687790883080812959442818305061656240312568505932658746513886855527644160828956551232859376546897526470041930655457781914436241312528101056543337962261686461179718967655711484026088144685706961393458900928966012980873983097121819002740163492897633136584057800934644525234093100745537158500484313227381688149943544956158850169837256118316261633027861582130513959305528147230403560207026442324971823402555194348109770212369404797779802798233620058676112901033126144949967445143915137808039955510406156018420355043552895480362534068659093294121852495135270469921583055680274076589356704977476909374286470906174814123337537505540396880528094392471636740132652925964929062823762930970329478828087194530329121518567527560208723565058895432338423105702378311876580681275389328899169731997723751492157073973579424952004471991421429349777461318520265852814916505358753962268096514467030018244733847300409166179372202516230625055582780632201897933465746537931515174991885338427276234001579952739122195276161826861156623065122335749575714225527734257607145323648647975505429031814586200353734476687548155512741070248731900635442639558810380479953041545103803847221064746029712285930443973899707452691291155456480112537942668949368301843454834586057704425153269595762201608778085206798170885852892608320593783498486850134069119316446653060696611390326575143188938459448902527966021350773811358202794442568226605790442211884995362233778936066243162831955704167360266982885524132926498015669826019147414884262706570973836388520019627130007314268799679663897711890780749689037656222197140115722009528876753202023366872128378058447476840004608853574880232728259737205603001613839406664640063735586276661651498296692197619720739946171313707952706720708065278056854455711525081987044673131333938973747914592954434538102207552913618084066086603485024027609790410344127268856443784380404399664856592457415802170811269389679030077410723425230888102492879642711566857320348253845098606708200521677350270645741407815521314224595049191430155918547910604453586367250122353010911297537463293637679637215178972685061477920835803191643791489133422163470621606798413763558019821590486365784593444596352954319349662015744875393075441941647279223055430506800954761384786688969039581224470992161494210892971591340365344920171691418584500022384416329011518297682711219438902252575401169072025897739047853832447568533728653464240542293523186070087783956028390963848405953281126293819397049623567960279921471513628779837081381202421185310991238541734406708554538178118203900519262057772480495469934770944129611216977116320786661767092943614365861997164677941005127344986550187632158230341246987253636375342592360748140861412855185955600008816222541754705304320498648750269320937031001160550356283214973072925234376029565407409439173403050840191395831495734783941290803797817548003885993896335115374943765311001929142768183056817135921175087021822461748393654518072857495823600031251346620810015270755518617863608730310283977604661346879342649136848823202327948583399106548328886741085126545702972503414729634210122463182213561629614050385212237393470004088434522455209694073570850582559064514029993864036004711682360168374178133556978560678833263416064281163213946358090653563174407084697754554611230560456343729506463315903883820465594755851053033324434967262119781842878989673480669692284528357984180809827713644205729247755020983627942233400576111429733098735752747233385190074147853046196944309168753523488102425668289520539394409115502105397808385557108753530279618280085844190963928811547836082546556603885316912460825332376790342684871914669095108151220259476768728268997245131144683700280211608229087336390187482388002680870499906002003991345450481476932083745355363030425110219021253939592870862846833229876024659349768015565839186388452003086709457086631560953412488160680254861513265121928636966756607029866376382585702915162421002623047878872289287315387382944242620971165914897593157522990362229346613736720469408862366677855716477951006313473903620262635725597896514283370203704241061877078910466866143016043091102517016434469146146518130973521501077664885769621933326436175093261151063833098535747428925718754202610688825526137278755261079098793774686018510600737291548572579732802281245467884483281125999403182128740704836538900475850729109344063430399003487631885877142901333795040599850624685003111503979058735019859047792804099374398819965140519688001976586466153582161818329869103791153985706274281984873351884319426488403399440712761204092558006988775353246396820777053915786732445060279394572952776444296150930284735941706739901670060770149877124595792374195191577144904772853368660681081328588539073919801515018351522673846853518341979954003526632715383455257704433875105606064611543204891399128015991558042863935925086494483333882057763835973956223250825899520790239219440902726740646703203031921874058942459661623570749378547941685285754976387456724196640961683210908799350837642992036738753638773766465274774445220556739114771848931925121156537375178318646362415135271347957736528518471434542077509251559457511121568050512368485861078043674827997859276238408932168914352222534337903490508130475513287157614201316361538256268787646330661431115634136902370590704623000911989883203902295977549371714870045619651478149623595738949934125868638845190395114232706227763185804447224554404083446768557773048320762845421227097215946094351927194820916824094928067173011637926715990505251773416894322367098724219789077292348760952533182705825140447811070887283434871714296805251901022839424667624986732418899654037331940665471304023122509534689874187879628230119932986824317085855811308281887608327922801977428631647472513833121478925025303576923153970459682917193519473667994538520160389320389633523722079775723974862862758987994852083200315069768810690217742077114939858492991508745182247002354600258936901336814873216128813041157274571331855491953032874589332317716299198091021492039310647888647190397425018808964539509835430639937818207232103942895993127625456130340943087888979584025521868432128322231176244571370016454523896343730053966354510945838958322429620557078074148729252811353531209119224364426784962689521963723581639237864497009903413348999673569235570271915371408200116533888157250524029537669204641962073971255422213583139569539807613267561499576362468037119644472524659058645990836990944849738878250993013630469739049360124618087978886572633718374039665311251712573791538667575194524829734665084265684898761459539181380916934195996672933622218790311645726584663953776089140527791852366213903333234526515219369969614232001894663017415075778675354037010784745709633958194864722612206214216113649854441177655809481505955676031815442754595159933527685531615500089109813918395077703770826935478272600368391200202705925155621029079635974003483410307920816033718208224968404987783129582733243462012422836697445964373310457919679293668512163302875755385424241399660592913784819449257100764213520980618247735164881471678293399057657631568014023375397930167551894584606849386764852375739624802694550841124600912933926589240008282476044568980130320556482299917559066009235331536849648838894838185451353494829215195641536796789030195276390497783560422954129047785134604293719030788137284117378170368927302044169340710225787294582655918378228686296201663084171989428929812565563851299443032450104460932047949389664961126634769517267004106188644518341733364529456019401604427888277209451270967926800779131753908767570341216179701081364513067333310584298800751026585254221075066568600660816195267703077908411476428321546083702872139514083035619429644274930495759789702561563781068651884803372279330651601942844591279398286974116923347583116459857326237964607537856626713623604679289050466028922117468223959546283144263865289321178049260618947201171147163683108066153543369834885887530164692300123336474662326691806423878268879703286201883266439054974312229832963579547516124488305686043977433360465287185463257559470975939990200646721500487957793552883484481493153055872844109665999781471525213908707901380286446643451487380971370365474364630201951214017363353223915691902687904339658724897052984529839353001621021264205579648325396547751666303284551986702083361353768181539841710675499346624375884685350907161522396594350108679228353223179743016965705344768996911681725266472145188758779430929013708528222790957469325514436786259434729394413953724313756062829489251548456547775303843553104096980216262317084672779502764363939937075049073794491549992245650859386726023153084515936812082617432267327999308288592702795480083451259858381426742525507091249563194636014858676042965640330643284642575470787680180611845816204377474836057393770335678598089086534518940597208935912491583901569203521444050770258964307237738888814710306273967432957015619192338025519294723672688641736641742748202807806529248156288173415776906905427200352001401033314006626405556151963538146615818240532439699807992862818962876864038340447309660796325227145942283536289119120690646971429153205317719352866098720411744350256198794944879634395014295788854039870696808606866498803276006932993115405033924298499046143012003858668560987891337561747571130553653237611580330947110410164509291448744049065928669435770074178511332727251037000215845827135704133071044583835145022334453542610919765560033399269657740009917215200812837612701491286499022101838416268520546128181786988507582944496961619920439147619211319729092842613459657845949135096681585684098460332829242384172805212428346272904062638213148110774424537280033920171403653927444502612102759873145662643015917482869677803678155542329088209262564147579858562199064498649078250352938268515326185592181487744025672066885883323316005439671075755977437743004738663774494638454997513129602428469968622490346034644061609130558031605107147023937294828194727337320527231747235463529310950758026062016381497211908153427923486981549760471611542501777733065118847715388377804931273209808675920798686478948512967049074424297930141594466413776101188483459077566370803735921357606852459378141556597125961542761070305709564284051130702945638013218571022050769403734174659397511637265273160212724656094166013126386849875702626141813529619394676944338103758326181216695489669802443135953795239332312383807003686481986244359156525819804786573207272356430425105848650664520127720978719537892152525460319919803669594494086332034931921408954842682438470656081454773313484944258619707149339931303038956213304961739616716102366601143386651855272244078443129438604509918937296906877656016657666826887506462807191094866386908137834251027519285090737082188758266105832672232892651491229920973786548329667827678741489885183751275935060652099920945309573983132431939346390329226071518226721057119119605101660779574390401143179152165388840864711278063312576118674448773104562706765602217455350853127354939426715467519946936096055239533093299232536774691081954146706270903337443907836145350129401182186770249095813774585465013464361166568103984953956520049536837763976833753751636365452114367784218999663572319155865289470188209339446641083098669943135757313388735830363063975703213848157773578612233982140801516919579166343725213835743170513968718480601495551086923605403416163489217163169970741726692942299605585022138139058931244982869028322062808274318038058398740011180258443407339802361123055802736153803873826521435721021251869307129063833029441751557264299275679967710127669998517827145765349045838450875162519263480550632668677611420097034538268960373821897325199251051291836798884404977125674223518840108769135890144712496253701393947566436799743735208409623412414650494643190111594616200922761060747827558836841561438781357265056378396816178451395966117851503710319635530500758264836922256939325730944995460811282805797446208055504645751148034749050541641524710566685004138126219534051408280476928018312480179584382302644215019463587716586099562731213851914395998494133105067439434398052135184942029996072927028497409615896995555464254260785678888577325252221822405577050042224796239917230974166231469183472425348843700054141854212234384623236091937367265047043201640814232129558118984054641451184889741687575650728238950361385176861137783968052363278487284936460691638369893468427934641593855557659961347055701524390345795521015012474395723044258926848048314526450232928487711597959100601727733180186736092627774793396229677204446294477023596103252487395113584072055180516938225309000028091399394061264699961956984184204258365905731920967450573068722058179786817509695999589289975180185347237315796363438252164144899029304520123823618284588020868703508308739663779840282509258534779533343321176105154438011678577220831426604485374277802457325684663664227474943160354249322929667117880687972702971999253693794686762744372908232606624312430464741452260124325909443525235737530913839662429515875340575833915688593041898522416403731289275830704094969778540679555519701016586715745396080347875982980448857031214951118934621597944096086510735000588254003196113734386662157874096588900906522509143198806753779317051212623140846055321537958197344805913680663361129216828248867380167221905432733511083476084893470248895538054164370810050712558923239350493276925530250375661094767106070021582641369114414589205899539044812324944759143770084694627058543367582707127624389838010657553572244061262892310935298228691441283956921898040801514010184605022297009759020868332600988049310142948075604371683508774703462013394408483132837484685810997098855690675043378186441000184242294927994055903722886279725205336783448038433578787678233439191371654326176441820458405897951180166692154153086328021237876252275222213179808319042262654156355659496726581043503247095804458714036714885086078716699414382921383056406165292219215679839566187960492008548450728775841128948322642847588231996488075294971503812749715659296066329763550556219524608082556443762794933291677654483846060948896022988469571785563139635356272696698894202113281231766293209043068001059143743585109126474818541500916578048887560939521342972111759333872461195695133660284705285844226058332530757835117568189675017621172141105491193111702751569638841751557935041490362910158754128803433975703991175217783772963760618245966678505474327071389432832263462830006495032542147263743534556117533653967690434481097762206169229456991929327378317510339681736294916939410562678098842224014936030646310007568500684614373456897859977176029981196185491760658556124234577564959440560419404607060695252375929051282186156885924559854353279347279006094902194761129186730121247654610381440487800728621857003520740178447089582011645910571794295921145090806492014487794383803786777242540839691481286356706099739262972616134202600802039831202855350780006709239515068791537814751703739056911790415934038068678586535902674140684814831521387097107226558264111060986124382544342888570713225030375483315957697577723889335736545145642270872715559226151531101168003970257085509331483902942428688778700634860971654784715294348295828744336801836073652376215367976388185194280006519400806097123323571168872072440765827727311932533532355066058836249885733676352388642536851457712878094899687987447982927567448363843382702280966009288435868119041421411759651408646033386583838424186464229336863786854826421766381216963928915630685716312555790446953938949117268084044988262453758347561967525339562178779418408062466609171115224950455020340389840668366870576644434213167642984485569920136270695203536611126392393690125009391345629991015234754676679688511125586296232833123178469001331738947702684826075649451906197942623780539202574603169749431066632816203474481098799147995535072439299195713319906565349096415162415210460980073942947913065357865283273719050552358733046944589228302781573559565574762323226887200819656037958328884372184315240540625609830999138644781986702467421719276173543635615029044492926965942364424070847299827016961208940671336331714382850126714999721280499676833866141728478764493596124773848954319564002789554832068774051321281154949086805503334729067305402313552832891143698886691780808164129395063652723688016822028061369231262769866012786767035651837057011579700234678367057534603179827655916995940895335493796052331960158461170897230658270608587507914647471248717894384961692718732161016417596759789192662862225860599995973072062990427735815409443070958828187854877448312871407433684739297058367972767416491140417255218666420907763790332099949862420184027156627415784252845964941082858240726550850806393201379345693365468611692745086294261736113014089288884803395180524837568223626558854251825328283044503260523326010603965419715315135294405907570036481391478757640786528824608896254181943664520519450555090514537590456620442051343618792634502472232250794233348494854651061898271029906115562437920405533688484345797820572783395639677673441235405287474079248868822478989180280311231889739984906032565463964331927887451041014792696677595745645408958757268902437080859389641985001655874934883394976933803001499010222512562491340952434731183717679810402105889021415639491539512680820854809300532032415776701205612412044382862502585033455938400201537239855193720967559579707714278627826222719163715433374488957022728902653927507314616281640040264496864316383209203895874487156864188002289565272749697875969487026442139646790167107291181454500296302007190536565858464822917166538928497533057158204844197005486089557458990548305225273276752173389812858635851072736073590714352224936830189897846224421409218261806265021738716533646500899641483153608527328830895377983112205656995182532164846585502847423515309918398628898806574408975197095394509940442634346168622561677334437413956131721069779735519133181077196748723857217360362907302023280531456566406628601152182999472147116409921751490109133032333915518879992861787023632159936444293805467145280149655885634280176060976703919574978184587228998756723653026341697798701083878285362059240021668066985840179888411237445658949054450587232628827303336696010056593309591545317105005170000644333922631150934222341953992475657561461770345315361137027031868639550308324107647937191961176476106514249129768629490103099842131745360687215213174290544846029667614109299694118712123047778746258206954665634639987599241996106134687409652109346217071543643312788603332062523215252430390099231622880406382035442479358016751994588389390767364371993621525862827087823103668749525093796586828893950130729856511299350880639183158326198023256772102144777001859184739557907239346896021730406201368433317181850255503396861927515633733891160542164969823845671649978503647563984466442576260214096662211001395081979708516785948305730658723287514580146268673194498695209392467469326577922349350761770725912396525436352013808326980980186786660577025300096656240122246970334502411120986857443038988920762435995768051083240911878941461146808880962733013173401862222355450295672953692308084289613936234750830179327710009721801052132388398077032346602624460021012261880740675023009289224205282837846576078850205810559083862431030012028312484456264900115482390900030397179228993712599532291872743263721401937867933225931194015315294322621802841400831003028866797786868281553577287702048717190351185274327319123589123518069208728455524533864026449372936872427266298094759454370124233974982071898329228731674224768512108146639950392335555179073187421836418603257682669458774548099190958422743613207626990569048141404220045803474472002834337291480026816104944247668694277154984930358222642916598635146859054664279635119653948595145866384868012658475768774262148860764314029498508168804063957877083107390484844312433983367364291303105058262501327384168029951138640975451152076551303008285445890971904553558544471348789374548990433091825785017902157687219597211467430613881064477484380168773020480041140437833240101243728634886065913533520075758901047358630121125782259965639935528576452298360300698619716980559958178706187439058850065434635964610485939875860578524432629862730599347067724308028392162826618798367594989913855356683533003672327999670801993929388966604982064800576235643046309008681906063502691074163264349899058611073005369044723403728442955156751507232607920678617562193205505429552655568485098258751441317783027953107481416252359554814397374966297172964168357561969074484075441404295409522791885904032876684470435788182154056002348096226637085891446309687995352415018464458061823259433968616966582960527797577969374009790657695805796750702312850403227991785973603420606569627717861755793006109085362125975512317626101187511485364478793580949846154945461597515448877386454538832426685447159641925690230473789782831757630913635043003998171008529679871008164555657591473540084218182711753085484340952944606623190218873743487441944806622684005739112037945244443094808588540275219992721326366909311025201925979423538594650092691801880749536660317088178401581716236666226476115851802668572636191853389026690292710921034762985464410288347415518477590156600394667529713859682922917411659042615045817051114144820984639369210723803506641153660827994696341663038070074922126949943644915833473451360851711954529484383537435057974927335736002359867032400544453912115499818728956146024898571570661350071613265111765311754169107047322766603498727776735442483644688757541057441146838405626922026557810239874989940710810294164301176838452913653313189656791207194759525802809006128321260315920261044897114663751223439631943322005199138466569922312334418776803080247846805174636149430806723769958978698487915031219486396278297302920202550689498319907870801888662612020578823904899924771443815887873126384283276898537775237057378249059544146439280270925258325733166065404445939898152338290097052933038775196578488623464345462991139338393264010191214101704955535905861593386843497347167611323697905700670327100443285855118367958986301218538959341563526599569122695261058931366831753354709411136833443638307300977048167594575053374751632267673570637556008470831345033160228551778354012832387929344745876351487763565307161428491786785460075343611206108033034256712110288580051893526816910553906116414024643564746564948665962617728435318255191527808010824713810609455910479962429599689700322769745734592978616230787103415368671651349382307895551014120927464515679399738195000078459319802633697827396576489762377304151660233474882671680036161824769073771751676930813350050346228051582269742008817746824288197011681050396915489687173958583053625963857096658117325717251582008025181768168833307648455988914822485417580132067085905317239847098499264383839992492989096861911658778395344654547644107390744718954800141522536275114162567745569390680774496995759936222813397552494190942477865838308420869470033539169891956079514510656532996361977813667354953289477198979893633960303275050273310939278692082004332066153518214235122523989174239243215324031941213130918567467895917333271751884421706565706631870914220018038953685262345645529039847235687854326703851181119309748854844130812972487897464485937389680196170040712428798065339216684151588462791171550840349023515569846976121396405133103454744712511092132813588927420570322216460214077713310460380082432087815780357985369788275640874104643158114312294912184496207046058055149954475527675002353779867561917374362227026929743495538148012551100606884292334512637781324362087199669559096781748654009781335052121914803913573798523453433463039685291732823140900371295800305597443661974622552549722714118140458174242570445132274772315116035873237526494410449513284278536507672213012263010865848621004479248636096391609900871915910748832752599707019626692623851390525881335026964824630854960681858718934968338457423922271591315151458394286660230081373903103470634989284085790579496088074040596136568939235232468276428743338080574074673183422473799310743783454632822384281867576311799959666204044657045889593570093459269257953889063035913550903471120681908297522109991463638137495187639872183979557278984981161741401171720868648543809727296617499185795618056787018663086937383938322175893610288555473219251408581726600334075086874080273514965146591455093506916775453168692277196832925326078740831182182147748280629613651558358181915008831666260075184273499626153874669038135650230384215482294740954995594496796206065497037559559406561220076269426916345155831383880430718978186684288743567344264388651485165520795340722585706930857273626915829785127443934880861166125031275201497381004506423888657731615121185214856159147880233302363184743103266161374442166067466769247854704602428676537420888031979865114977457473575812574964542922296768547945220131815125676303905668792157950927348031848032757021200758839346710543054605367357789152766519087019129319036069832989224562204277727603253942508040991567340986951856167602625750828327007702314290799590606900456036893120817217925226011482010206691481898846943842296392890335775234990077858078615486190643280510572940181072846837852926222459670247803476634900534751710728109886229798518553742019749675839476935472675291194214960235641363724267501609596064284504286474142404788478340878867922794478771836166946859615330756569404555964656504225068127971105053772727779685395926619217046374256799205433502383213703222565083893350547543437173878972893915867336119403142124600065031757099630885075138865040789424154147493447960362626202238572236482715924502069550880975368161577715635205629377243982281833330998495025048496839537164417283034031797171753930716141028190700385905805592504069275026377104767133825052000950835707277067317679280190845418905745330780382742043625411258539843075657711419061775815479868170306502449834156462763051841954379665233868853001237016848877746832398308747407448857313463398410765010379397959848590774171416140423224509763547152654034789718769920625444544144977083600842166691973936909500642008525054608449867537310669389118362471486172949211057824664453729012301500890013154899525006432327007976122560852653886135306412438972892220972915408314115781356885353276090853832232920311388924047429953693363131578985825062579205708872631871891045343213478548229379603230411259390792589602309330479099091928746355379986794718137974872490966133993426475821295184080710767604140416944887588732956313224823681773222564643924830551639520709210849631638339664960532903143995954067115692490674689059836222307683912925337566782873660713432449632135012168576795731914814843953796989338076280430736359449207699239163319154824822258194170048739287588982426889156375608699296392198186069542135482079140572287205441657407548310599147871030365632964887129154228807137034584691152829958328766782907808426914675709484073268826736529710773247462649377378340353848717650083639965105988052109053863976076609458532251409536269028184698646477632466846292696266224981760847106248833576229089432232686425751358424703163501807360044127266080242466431842047275022304205503193829647998434598339680259635095417176142599303888080769778656465067483905216745052634992584704998709122326458540190720913385091582703192671571949674440769906497409777580048624704788747061796446363464919809304794011505321746390998417325984359995727873243988071745127330476862816609678881502214722705704975016353803783563192621652973129467779321351383500476118879785356643142376163773837051822773555324887122144739938219835957661340918669596586414329751983592989202125422252689384495356870780312244743379599442789957004179981631133091956940949301261450132090825778399174368443076491313692027469929359352857685449796902985406670888679120152858287443916885256618765336205796103471445852739654033175187190945130701922991698353497484653177956450009597668645931601475079485504775900381761750080880388721188396904683457633107311154192302698056041056687196910700759324772799165263600823813390163787773969145239339791590204594573038157154072005839989896166153216609861179853505103495967850653903204278253191227712353018245858879834299479221365067332658558840862230382531720126077441617740863764855298634462547329572966868056819654561698483015364033310956142279760480217372867510022040246901019112054699190598454374004004372634247084855145991853407072902102270269766867312101673344934069783893403889565180043367657706384031382801811296483583656368949021439175215944329251337565589219418325278808873271003979371301938470859978738310956691939060365843576744844703867645857936437030611510501006744080964347862283747895613882273118466912436534410846481356521720377032990236048948563794040758350930951773375731072838142074627394610967891300093937086857978124342616676172554470636155515302599661656532286979127662842375576089131546386302537353479655008329621690636567534744683117311190403227060302604855234701309195692161063488882213662048982304058298694566843058621943749589698132421073354854966873629680960641733794430723877358383832791701889884189537719003716074814796043273772323972010760667725983577047007819727388573013503248194784130838717751318227130137071005315353962896855162045317157715844106156899269584265898158061142291633753732040136023879871074739062644159189654877335791787166952491712430174352754252111462244202837378465988957821544719851668474275231119047935447051227694452102096797812250205700271570394625133924916593500095682419061693526004524411446255909276887104503133155996818886866731152946197365858471146364628554490519499785056088580546405797454043161544480290275053740790690718693325794794114673906027475225908555584153165040231881594585408171243039948701164343202734552968516673240506591628876865079768541174547977248212141895297188355836155581988991192246871152607486587128508136179860071802094164813179557928600529767684444214366216908919944726929024637519645098526848851828778024123180918144743734829045640342404106994687620665351940600580621711913280865815293696084786616513941617114263871535334841133567195033042354768343298655779548583275116503354220916111925368561510840578836310682884379236556897070278994198699730002804392963679884282962676883641922154400794424134598661826361996440394119366339043951009119341706312612928303982524903413936361081408437727836209705333180373123129769418162950668220657491574146453117484763993072919294337934293881773813041918624465746598007600585375237659787970046094831171125802468259643220773903080915090867561153446886360006194673829881239914527569984029114989992732124722660229228500831939972907392547802271787262451860442950429346035493185565870280194108177577128138884815850087751893467996470227469717626314526257262869242868538544297802903124995581649662830217201093609089792570129514506091077000626180143395732077936235769207740534632604774180827633326406406583884877518013619136564930702597688605988092912087572123685758011954086265553331514995841109455527382298843453370996023993511321684066310500666130181095788468431760843924970590576069258074700992301258685480309533889592794525862110636761002687344190122368672401333039705081333960250320367174388036437158697260245702714029681700090017402965078070143686051519684545489534270180795747585533189804557109944322657750949235138802015703944996123908015261233403063990402594781692366026194819755639117135773429201226531256179439767435791849060923983803040527037206249460565260199469703305324823420023563709837000275713868024523729911987697233496672686704522736308554630272647455422937327714221818986531966301749319609204458240856524556446711199537923372387844328413785966293384285986046370496254649657744667982607494238032341336982903056826925293347157540766856391286702626591353062573214590539443922267087251811725245818914613873041237151592241926675988592619779810535077617914590588640027089679867747621975142126116986711147583863173500132789295387267980430516475858814141996247005179115428106856338121933067055046265629181203821816666851757784453242102366127856019743677938965416825375022603597506807384845547469561555398890187234796087734887847336129794842265343543863849718250205877588301309965266986215864058510225765882705014974553708724614922503863828105128260781043722955282553831366432301680593939136145446164536273942844007964377773019858816389773814501617771394718579490452311118137638178588707414421778501513516512091393483188461729769086893136448788292648981851557396822963973489484045507786716843510596801074196069289352765509531623113541952049959378959985602441136029501355131662656748295298147570698780211512993944209950911377845698508698302321583225207533441556934003040063359084450553525820455381016986622352611405874945241603533618349611276542483419720025041945782340328048480252469484670920988484451107480279116643853700780633388087535088272126167367969517095417614525006286470923641551834006480552608733119298307250183798754090660000594837612932903746253697926026823658571538709033117104284414140496238596544984849678252496951627824892054386362579915537446850960929901400420653796213630428135197608526107293880634341854628253822028019970666709202826610575632207393884895460866573506466029901264774253734165221420149113468177265112975878922309162949292560263972480267348258198283521347789746619275228307481583780371564744093931507678765830412747367203565265785441686800855563149078661658942496336487776244782410403141809154241842006224690729477609996644585118585682172699763816409398172970785590267641837292164621750758283185286108507074367801103334827402187759566011671522694693663828395081444990833804871598824399061149869400006185418465957851608743933931584383851666532667236201145820953018774269160638569515558565170998705399189913226259263614483309454707813123866160749227337385787158156765968483382004254111859077602004564937242321887897269999303404998829280704872615231886403300168947086657572835553657264831481258550058426522079889936006142668944883079673722191989654641799728694915211883811581485681268165267985477625284131301792316449072489495938036477397210800595194393948331123081170025616077064466176557250993003240633108754606325678127366016427847983984816605135594420979106956878898883070229462938226268268575593947479448910833704305957447347605375484606446995238880055575876425524327706341952946032660817689241147956916875470022041969753026970076653775267238281581670462119395804297739222712035222042993590155849374333856569316033851180339223698596065593771929417987625491663849018671356457928180217299435451697214609475124613771527294926593547588347409820935551937894285146775240881960942564866742535874865881130008452842751387608663241076564616337772675321377545294600653268517182019640660081956516264863007515530599416032997103636680240727454807763480276301315392181618005356625202974421490778397703428318091044673238877217067728719023861680898672538485104657862127851741868289486098266363016353283565799095417822111817672090196123776649169212161062843398680656978534116149954877458043444511501234084520925827161007381478810747511914680496065696054105568159183526588341617508848195594047125442747792827980619449774230451174810301383498612525812428781135014548731789046388763284811549035374479915639149071652548660539945123030191431316764109316828557646180182942864362261888326442192780812126363453927551010871416822696733449108248980478696461305256200524137306062936743490954796144904799170164695845594352624423578204515266925657497966415248518403905335739232483593107854525678737117143602423228271192080231432464469504424784415110890461343676884751704223908792541560663219546081272363546597489137226310504725203576240583851566512532764356159886498548790109937360213886784140309064630321148375845446889650301837653501732402204884876330704057428733975007532253554257152430436495292666745922144830512952801022195575167493494734119184376496043158255901357775017821114567326039857277327847491518991367434295167747957232716188824099498312644314640747818231928212660771017265364935816096665717807049028276817125853298737893353521754997042422930862152115377298079322901993504843899064012634450123805796702422934206425212503055310435894511919143648019683331247558283529024287501914047646674039322357708146941531139777248117959236242361233981907658042514194644073576291354572270211739169160307791294490084172831398674460648722631829565870238105524772899834818171586237565686282963317789830608486930723079407875574226971336392158771434200735143625745522595548223171398937684695394987397850760287938119510836402912802747684585270580040788998912903389327470136177956463834546621108813789494091645929830545054283945368829097017195714045059619767789090927917068242763594551471176475578395439784058682103756826610607172588166435941884345453660845514550800250045384456532752405379414342119334422783640017883353570094758758702700688328155475321145980891517813990512848655697576648320389302651199685315828147029767271393494150365375885995962285976737734835081657872554316920112052614615042395929964028598873862596667394076750463545690060487344486733436970501924606332057024805646922266563441843540072433009083327259635392879153733236680650068985749130226812815221296281186827131126788259312866871057961839209862341851262067685237958602566749552414044081022914727713918548327896620070543891743440011150098400352245332354795716201050988741006056877412125413232935588360799315728834715078123629779241530524303081056703636524952232422142105690854015509939618699702574327787383969295260605788426695253697661226345733458295746522503562609135923210827143863679142717892788938050748682279100906858510410968941903246382118810869409609359819212633110449649146485143770741619606315859417214301065426755239400257101898513449780102334298653995046482847585700794782753690769281384630042637500262175643828415378259696678172985051094650053587405426970659989674107804297031464397798981696327733884186235414273726920819794709390801433542898273869395830120632090628381439740913728877807733008305889791276415521872512389196238200464851141538977854446044297367568984568529190395107325457048295138458427386435040437913835189165650310636683738579871628220679946778312748476879116328288068411027423072519021946472715127759791470044142976655420711023077124738561292643497507937785497039100538358195417331487083670519185680662402827742279609297654291234687528262948358780418837659098055720871353848704662571198275414053657390460351089669300925605726294835816242343840674333166039763951346682181191465050682634804588766459442932219641969199108442258290157320524827941209502525702158080131706029084235057369152555987632398816495965266977776048984059841845604515435458571990089381670419110311348562701632307682217624512687734340767705282100004291446756341066878682191205125295037161702244994951788514198743210628484388608358800226728521618848111767712322781687602964048026222335144330854938380234542577228679213208092778315569870157189091266844667588827699796085753137852983228119228220005315896841450178379056934429261810652491897148959238971256352277633240534756934987388517530704272332729377376692899208128641323113023645825139741679442655031179654829025722187530280957423292983200897673360073451307561518446999753026984443943181806488397396973223037441410564036004722164046096201463946284949970849185587142902256183555648615309819629711345310879244811269831514549136071901958725711823848778622220229129739200779336316882255519728507299763058689745106867229416746549437551124076988779066237033856287834279450473707311458207055074992738161672418401212977007344111654483771624228202182408169843545028399614126202726652064860596769808468522229478239040636221179497196441668101867798094025192596240534223629944943057208523411973387940352868999448883519243200457716773126282976666767625036290792301257225588614152140468082995565891924952117887013270414149234868622376517386437380747873996179302872707307111320828430348934812935620254209398797635180515603975469578685760763026198347531960642926536784937956292059396121285877336179152229619688171090017512747652252037932002509415452714170177058139275641178405569099788791997761918224377345499122957463889289331604107465117124081549885824863459241804123087150046371617637314979838718626755693214316154867660276576518621197852742899880064497157782340575706991833992988476835584679195469640878257889655615255674773305564106978632626858087721801078940780643810390355750487483370779906972374796575739064574857679125958316895427680749476907669793714264553244072609634042572548851156413316929919794787379217526985723434147829866123572346954057830594136721442601561018954707432514894715501182265399990244304152478922382918986904208863621005082965740154193229410113921702640195541282842674495566593837016276450214527727001959349890749337864646344495658622008373412800651787164355216839954271949425473893028218503189485646410739726321985437363267048860679034084126657097118409129234791001298227307496350787192588847928973098129599069280151881153922294083471385462567396087027850365630892246816626806630786147435663119362344749818023780290609298741555267428984915959681818370029914630429589108169719141155246127367047952164786856165593320562167384546429960742683519660611350048980102871867541700655915924348295341313278014099331581138651050990870474940146489164478578387853965204846634056474702300590448397875172213633813878038397004786687995316738596179374847550155113303441132032737235938428772358844203761977836734760160872615192322555123029624614957413428796280673822330306436160444947691112685567796431285538491143506597651737979065955618911085822638945009692710429676082885889644608098828292942999284080602117191035186238340576085716444269157354452391928395213451905573880450896071329075202335606656321154107754340076550421688069765697627990967234672479848991129325927823719914798663352481219915425522000628813711880622445173197463236711284883071031830522001376426085768672178892942012695831845615188499015820886580975874205848770162431089710285681329936028719872099255953747134485009563314420899506259971885125974597741782722414281968159424334456705314929181992826187451214581386949798769013834616398799467475653000554746201220608656619339842273977963869562478608729971152655887220831053052886831226326470226181495610507523794841700281688977365626616537420255258381013594337399296306410046381078964044476808488428078896003467350196546680936527292216061637041405036430746531079870598172511357050605457771609508042073240486526852698341680238633141860647840746199532053034295689953242752823340031216678538944321146542701293441846000349636435256673027159229291300426234000795108406001399942373985659940102482953465832238193475451379668942178699202686848518492644139941740043956720012535202934641377629225256221778131222574660633117722833801328487387611993360128770168406208130630744260252791487943525982515989847143684856963698120973125569591002557658745411729090781639468555864569697884648977088686170634521598320670002088844317460093944976519231841355341826838101104188980863850196829136761919879819679251696347070818048152293473474783321373957354943566346891566046922923451609327154694329278003311422451367266653237537021682122375477551159077255016149999039978950417828247361765140940963707245792548900326305487250027476348214569748399975387250919163350190178626777126798287662267278955965273445921925766313261409735631610510551130015670395889451331240139156170660439797142506207719171442206130537754280355609525697600598557342829845877833424526800592351908125811085386058508608543631043644489350044721609323097350827942645959612376230424498006826210791566432760614189339983763190280587368956391845818923579987285655019760493304224373078893566788797888903871111629523528837473470411539188450119772865311714475873216533341495907222042432936521604100448348507610956619210688753097411246106502525690876253451087055966148309032859164902538601634762799490528335525085290665106431896083858033621608944757669555971827468324490351897565002622292117967100503488038883160486904588414423348803594114642951261211182148922835060768031678388258493615782389674387791058874044551718668481026228356248229850996631253945143934028159167141663192545412587691937774722825448226416902222125413929183664964493186560879625038069595612755146977515976296354995980773294440514365161159644987539186419735078474288911596768643096632380240396586193460213738870859190408709528705282768040455535732773249610108970754773597098886243498448585255445097425487407557682376343294018995570816456772666939115468133757894427277523970952510044787937357166632147463398748659530790816675116616655340286907701553562901389617000461462852352766674164352226817354280086043870629979802528764444472254081933480437621917059363238560187638015949776197272386477415817041804113538654858696686858183514185987015942201835051555400663442954436022312471062265479599774535532831134439095907059497945286355745130042111088096018455895390781390840470524074584454948059080922671790077036723372826909209076910020790163768348181000399796872303355767432770016763665420538892312083751535751980964230741872907737593061117492314712159310955813349476390956097538017079700623303372356106779742566392539202117921883567717875666838455517403398197003226888504504597142682666329777927039613334098659174649531603712953165904641876937767097866332519854041475044293652637883579935971674286858724024097878187988866038020165488291423296013371388654183837308585303021196351728674441461667488313707382967858486648060350417919778917802336623551581885399124473304915107839630183976174818615610715118842761503576605988277668596323595427848599633722320609190472698370371965973759498290281806201079578867475589973012139802349277521746351048932741553333653536127927385283998838372991970858952145917676728093497362806434241657351923213489180401345755485360285172705530140112299454380304387470625334957015488202974944370398649650535410530114723439924617499870680537154922858642899931740339204923986419889421334005607161427562064173562399927379905685566993982791476371393393054162429248456217242584329842854101728531762520441648773251644401449349421793735518608970713001289560729486777438275497705277581046778327103423413466233806011157043508018626418712162829436523379693119395708774681820309056794527136758736750037395453231656726151129210601234975604731385566874288595349442328965762823161850065675375451069737861348125823381719539362532076479520820910621642228035303761706305117338777125216496452471371231102638788285397738140667577196709255350225472157642712397531548055999200898670113339926137505369560084319337364832704223061161667356551672576597447665566238910669530356746041082459182775185228935996270969495571089609144626057296263401551434134864126630965921691456559409633878691013695314496523273404817704841046725089307267443209223316602525728016329052407647101746938204374922365884930449575029814680335481450057019545197751977380879075376852143083003270324291431860769811348577215806656571840052765156751473801824422956626266879547714230217318996912165212440310968068704794462423292201748390279635824056930886282314622012798493589857217686757379652675795178468776820794620529273300100119254598267974700562146769939509543914681730720986036096749565304772523474601169556427012484308867929219715209019979270277225003962684638567602534943697029862451554042095370570218190467797781616453500673097882042640896461285002295174781639638390192625051629791587014534460414344811689585966769925237504193744360075415912064345371186969525626996353294937226501739187859623039506214933881969064525655733658564712236477290909055822331453298663297796692659761424043008670476768880081638506664033998995576205629260817800145524735198107751348772007762471716996565928049855679157287531210070820046129077078261861757783651622184915674099312958348915262792741740722863093333958463570693505863735384965365889233843475625646801830443319563230989415450425678758017361212590650773802930676736417268640436435985276207219493306036230238678253141418761329266271555683265103902445694612607585629268988318675616461198562208970719739572006403577675725074660668445352082804007827042555459353042445940237053245823301708371970333313409868523028951689228197358946713243821568422888138479274578156893609341586869260488285749513496618282601233046384034593230715098432514689675341197447869994707215719134303267179998246913522280635109159048996974756800431841873698586529283312116384416436365628702316634962229307785871143786686401963762738904653494241713610773090723920583437011776173444332009455859487057181535839130253425464087440819651731677072879812034493204157961524878297555844742163814800521532528353688246036717413513847413776465818771536118838502552271102363603962078253554857528105590588867839632918199975865827577309211682279226945638883644113864198654252397701052282147459150813177562917726900245992064434211135894124454651531458064350380684319210113354667140434102723516122720666755646322811383465969733011644615968041758598161169682382945383492082702602603685851091082565470736426936560005221563770785409390350637333289697000738032932562385357231417570406753837857436394294016247331191916894101897333821411184004092172950615326156977515595246012071111271683838002040440692179770406843817939932459988992471990279114445059291229036084656780600383418609846794461999370004916167208103208666478508393577279138202840580703245231497093587066232265358519769686511265262648568927431891836974876642167276743690820327796436882127368172668998610354558142137221290741279248249550768684350454176760883709854970680012690479885303338635579501910027910208323029331557336691508565228179985172760434487590511602472708316730721843948871165984226565595675747057708881596413130849085982016678898829406228221153623992205215620925530444851761626587353280818108485881080357704727270136290389761055344242426947479275628446421015854228134745255452293955059614290202466750162141127740948643941461267260719806589124006982902257438714952037457485945335535435172620163859307246804575876770817803528087493668263906731702730369412205276114580457029074571656211229459273792525318301809072006764777213658964900582404529304303814698463755978344931916595882502423560926230416113917491442577602038598150545507497682081907739304625403966437987036402775264846872760312589871369630359815744892550432037614103300881686110890108286113418095525197785299006387883661794781664784881458906928745212814665881156804475327550412431983352299327146469776970954345870154123158821373054246988083155068326915352084523142901417379771448062907047646256347689914678975458702101822294835414330612472283973096142215932135602527697230048489229828923071740762130879205917403135455491829818018248953009662016782056321998495900733974563653662948115067433825177691074369945318086237219742762286925136122418516938340119089182653377871059591576729156083156728206583185893676614618016196656310291621430307595026268219906113236092405348057260882529533491880223467976862691714310933597930546780146547071258014672298082927126428799988910803174378718807576509913160085372688888552478127828948237417824736597589060300136800956393566737475049531431053486401560129242717259065566071713439043977534289316418155990025226105546454933633209475931822655543298230328378052708697723392715192243923605448578121720134699683966503572542282271804565944642779737434545655663570422318367107531134939418719856233751949385130326679972706680785031417216160713938257869213935388880306738529608398576711913512440312358672547871011773566913446902012762153618226500430341523723191941320866754319242032179490372193413771013753098906719439307654085459533678533449929128343801742072555982799621587882082588415460852213591233311410973091871016826428674601048198391190225064619566268254465248714524958116290822888369555405334832378894853502939050437074481049114411835249562579690416144943981124545901537784976578370137873234638785560393312953879785222925700773046997865247668009101228796313466196436406855146832562054365776365273828129622771529637143527526483398256070168331175629477755123187132613356376072054957898139232302371332333899050090259038087269546400297440690511630183391938232569197401668399540868134579534364426797854453415047222670954878138101874875157216757571122780730869989483120323380791925976112034747273743063529475636574170963187434101674873068361887370046346712994964691569749296071967715008087552426367559281479938538912624988717913046224987352594945226417510606067347925940966591608009175581535780684137018353141300814447625678728720367074382037212176760417274034437078002956849698379730196510804025480702358306630745237732092645882309158713009736918835405679451744912356158492976970151922978881275584910597934374661818252255033924277910202479335550226493365480441073968540664399079977745542702941851107347109562458732929037052445809684425193075423211100391296745809496856417608720136257956424174183219653381455002003677721848993255774275219963606202239125035278067432209572007241403658733507622992927923790915908385756503504726965039360154463102848476802928928588683294458802420727082287399611067985173639974405832868928822383082474274941121634688796643008056804992135849482650081235817076254281335706506049721612620902089787820293581427087775612137781680144999037457397182420774025639164863192123992922886699245274662073402425093637371187004754056895868137493752500808902132446166366333034403238595402800725415427155940416571894368087893634659164780538174418242153002617230107594597462460403908982883127544033828339642726993649042840115353137603337605126925585283222773842412026997758044049857624559081561029520201706342207146591663557745313121816995180729494434048142664278070990327043197927804153925990835447229588122654402632402752241868730792908036536252773352929449399147359783662575125095889892076703676679736642930768632004923813476204744920676592594476031342663519034258579676245826856419586828455986693315875393543065834592017576507633501688446833286744325756146546796865437553313500491768646924233864172677075105277940001682922757201269991807504792230535800132414229313677890102429169260085865098602945908867280421323103489242710045504414664822153612583282377917562968053151542749955079390110256738221332497861823860384246186156265486633741863239875582527960976527596105395201017890767823967468155025723976998489847506725078252596254912996963418944137153486176745593135260465773341867219291654693904921595075916384277236978289049456558598640239764143038172694951237670991861329467274165766054013831879214921805829903945722668429141067184231126443678628136966706817955748394156187477539374491679967269746628332882868577310748378641813724687914520618922626485716746003860250492932264140557626124028023757284055732502801324613946880439121925057406253025967913764512079532185879540849281926847202837349227641541065385121270662406046086004252339465847960815556714875728333296400835279935238111432994494115145857531217371218143418572749213631215037076632010612389142790315763794190402201300862648305173279613508018465530928982570097303247164817686840810226098780701502661545721539676587165873783501329844374208138592001934161473068651312067342768871952205865578227690618257042456598720627398808233123765799770427058757791270545087972739564461030410929162517388286853969628196426573087168126735064208598797800893611500824876322919399084692720513986247326154696298858607143134976660721523029283906363434993968853225028505160647103962389979304879008184128944599531296798926684109199215773411348094810195180979178206391597042653813554614127922871605080680933281367839521168994180210866458809634559575780404008097043112470281360984822794150669047306932940350887540955310072941826601471097072726020173321927011898660576465858088133588589815859651991086875318294748077506673620097746880615694888049102874052002586495395679912325172150254119508280169438625932107850879467402262816025424977494932184846327172875840073993963875926283726281178522152429442901730749121392848642516707023873834956839947054807313019821810691744625519508167239496940523312081210276510377204850887665221499802680925332962153034353475275558724334301715440249874382691704265425171114530342129845082493360227265480041433748694864371644118668333162461351587157074696538071081882702775933705484697073941153344544824034883796124830171695042056236054016982993199777046514015123814998158456168127673670079932201391841939545677725132317508378072655397674907395883641527953340279127912535915855316164707502852603368631209395759486785031750853511067305377096064304373602156760642937789916618752014099418061200800169998914411300734728216200517416031990001416833645769605184882758272131859032389912616423202557600526308445318294121050975847416035648444796251980976207110679045338045139041378688670487179852555955994915446693749279756532942735491318976091754246009978797577879035363897618463559772019876927664994237822996131317472581157887085282936728856903747917901142534509266602082469624223886471086546248601495702636819772635119238468933740640922968467941172934763073216049896860054200638724074995073480584425639013896764832780251887804147131440361382047468763218205844966224626141234261737145346861333925730823934016966520231774733181513712821517507090967047965596370240893683003439539915927508599134694633988706408099917676689934814475529872129260843188517558948525864100406634772631911936359454680857655315923768747405312586827364615498373407526128524968345295053955284688532673478572411829332185653260762484876752568588764991582440739874928593464616854066598889916563642961123607962175867936083351211420200097137837118012877135946879480219210314819395199930965727380700146838352216091852602004758532363517766900540798000930065839641481306718514706745499322699712617101206903718676637645308223598210641508366521942242985470225593608564331100840623271279718141399336868301721584703555347897698999125692070323290811999907427654522236373383129871029450697571624389302451966831238484286689219399762524053473659750888357602507224663287500831522802273478467196013029635759134499792122264830420889296507559669365674809790445486848808515048425900731661959062637362430148847098926404792522322734279209736909231580141705516258796931696530445841651498622283818868789598482988890519399141878448415064566782754177735344587060586101414225718815351393511876246428080191475388300870119076488676317888310539771022770527797805213684442906184672513276309528734064171582131396598067821153854599798474684812605586079811701419854394458497711781243294363602591393998467287677484794367141176526247369292642584540433203226529496525600616596398370632949089579437000598027015570299342312298031225287747537593078582571913383716887581947322221716426953792325420995164675372719770868912538480924429455056085257950781082232305755020900258592309413845319892776336264871435331216495695696359442351217328147561130853040138218587569952680657605034948316513378703629697613789964254764190622970674259867730495709046247615201401600283635085328114805453033350688103748581569676679567272020248237554398815379035928927321364199432400005359786861569172251466833329459165064833618804722531272217172309235037323597371467987554314446028052221789606933330212796424167407789515246974253334630079810657085841803265926546100879493437628750737736122968228382065197316556897609402031433753031133076479053265360234199364114336110331192788621549578869185477209097942188134423326460352351000975409642190313603982963577636928396621612824836028993725056391900719476160963768946679754455058999985100198002410055285504377469399087760648881443445219483528546446389997713164329748478072873754957120767855872609846440705574775225634469660210941461872082644837812328750401157126526025686015796257802533052511296191072920027020183646102623671416121723981600550383539313544754451716151191129070803828594553782003834723926470175085794626995291566539844080129779569842001176259010800887811860095807763630341553066790442649605417196635958737657943497907157730115061656005906241485826302125645177040524363232692037338828545600970202830693101261105621977288098860769175798482816026755162136021036728721730945177705913210413356655600190008500875137071240786285844374299286680434984574539955436807768684142533010559784276160553813664571125185649598798446607231259524178244988304019416227039355193691541455923505317295360179770054819569062214394247469826299360552620487444754361562817081960429242378145656030918180322659497600823078279661715952771123491321723543402943290900820781305486656047002639537054877097005023593674784779778814881234653978057090994386667373247266944057208798113262407511153557980813037844225426878280421897105903589971453310684976179277070972866219374949786341265037183647442042141347645854305812945349268181416050038436898845207663556925682940743214106299351028161319885835392701323377760039140299472960122626710054271328877316281377824766034146977521481450640059225914182747122463404339368232598021023514813098324854017411796357826031176509246020826940248889693108394338879377371646201987248858497613474842678579251910440834034828989448167001224210040962742699779032536156208159559784139092131211603835739748147668286800344447913816408422748268170892615793432616168145965859048699952787852755789800590206151850472642883485912756098423231670640211354272793856949520454430479277376175263021576337890581841617587517024764050595789991828660498813764567003742365330507411730973992954007593235882441503592761373501680929363040585919681681015269664428643751788425019118197960303731179337470921753296671383856699368419927787646858197511586807840797774093524855064075399472520407572365181990495120714845507436997261810186069122932872656409010681974679683875536465602548141866003145855835430751931477286791062832432427133798789992556362247119603617221026271816424768083108275462553082455959184850429138597000204542299596672386407744635597695393300638073179382690361137796003792276909776620619884066560405607371595277090089907796378782351844816930450539281307003223937363680955810107059579899774502776402521884516291941426360430780766474677036641494508112029591210831495155622943382053957598408643611206308841382888453408943922535035659336486662805499896918242025129398780124891720958041617584277113247851619894603853158565545502152082828146620893265134879671454662931356339622463280051221895346374383585038906769939772630445656384725611619200438166561556013080907235297707574798466341693998948101737882592053947526430312239422364688470953302933285950790209103028603075365078158367300558899689555048962658758695936257329471543712481694597919290609375292295671656430945519492656373045915698821313284395087955410465853074635399574821517006109560598326608070447640590953407579633650019363490023044840482768690989206631001520661978064567572027365190944662342366084558413342098199804728769031258576722841288431554644333400818706619957944015936466536943078590838121801654803937425440408998163513714572108480184980432047980750190466016238169775997155630617076277455491073668315173157813630400293218433151950769096430540942918927884820400975723312569228616506744383166749834607550719564635557093816634305282971080668448981036641179337129341258483553040971709209917104881327198408923602652234291970152720097662626256818305038382955918535769271345344703831604149327405820450184656212653231019067585504857098124068433308929385359890001287616495050144152040317178802519820343832991261440439553995351643474184901333195397305121556514067584157699200651508642539880315041527704555520258439133538839965844088947685033052170371992111474820711961031285888071314794016946666985669074698459298592968206073031727829217381446985693743684783662152097445684774895799733799980291535063222489243379300545385418266478235808031187709436873280228943266075166019815767357010939797240857791269755192636765416537684703594605711626114714197646443905455348746884291620872785195618921986252919690014611357460539907659147439607808698855383913578227090709905128980880307205823313432786575070450241160746922090982304162324642844289260939225501887357687230445260029385977494436483804183239790658659245283246837206393727955929700833826674878780770568240846100635371560334329558101794115062897246896375193775082352640215006340079128269589843032547627751667973642481598398225622138333979617286020009000202126526843217173018171291112186629598753882652280368356725735865145772749155621434934101039307837016034498391355971268976411090034047815474882300054273085812963291077560318421829705896106328534821937239932752845424615726483929444332547271142696123396032614185815061666086854946951179772878144468262364763238130072585107273761290839506255164211407092080289655299402057877547510533271714267043625299948260720809913721212714646285329333297616006520450173609157001750138320195334467370643875029001621106847540865092001724658384688041152932830427223280543482143511268073119852481914059958798684439080508070431730707916111399310858453555150138768560760865775691813965733742905028996690102535770305429404510250602115347908308169826521592529212601132376672526671914497499285628072460354503849914997688387092426961348690019396870152029747176161645266646181888202031152535212791257685238137259247859103526943035256704971614829211339407390112922055531715857581468248906761032112768365376353639234843473260071124801383683360733764116228679603587251307946863766484911997285526340150082324230887512693107234914126995761033226175848920991283042352596539074904858061356643412719123532640687990051058699475658474729528374868397979773353244101636791711205561440513176044622661003394258033014738514260917461987453267023787031572514941593885747727769191058450841802190199320227839708722112542139796008709084739736804679236340494978189526686517368116850731759564255917601615237849904850596154728794222906939270862992637075660428562775162715064502456274346850240738432532951715076572493833969987924747247587689758625361991774808751513718007008690901807087754489036698753638262617181237183119054932638676284663507842440785734843855633911918163695654868455808704054547025805876303964291017667386393005820057175436720665803478935747263662914197543394732095557893178981313791316274078566502581370808619771805573289036739015796762493489904887312407457319970111350934760435141351441821453664828704347466456595788487630547592342114942752505342124476995798063786816474631136798302884580537130990949941688590718618980222490055859078384121080525431563654049085317243104384269038029968676179710142756152542824511583875580712018269910695126637566609177347276601211295643166561115873880831829290283396111090020010175359156211330329396758656210492251887716433845105272647043768796357443944076132867411220786841547630866985970129416792921764649489406362455036232394122396765961785237871602672056012367057111178022117183037227603162687142748777143147797131330902245199028451591406129540906118202289670898972056710222051147716377116429248432932579260461469879035623314539235190993459743310859760991226647451185126779694164561233764433418323418061571779629302164117368059340877361061405813813224552740633588291615448120679307517311114941958873685278088126703102253983943339268972423654305934261917084279788921762096443731468376200895500478887265726777477104482547445919224963804720117612556519960879644558669620162997464372660209088111953037013504502898378097271163461999752758271581958850913375563655440619669482188219420461940680804022569039801520992180707980192258398469058027222775128520127818103605577566463781525566947205912603455199611387997731764624046562172850679838431957855826194355854903358091344994075525376480120277153702418391613065587519228745836559116211719855180294296692175630081102372206654535654048736298483509784670840127273580598834771608489808573541604395595664918921305520912316701460159549069932135802575810595348427256218058748177158776827644024388590837094174064975154606070951006817213163851632589417317772288567706475171241994248081755057241409056577703171715431370456988740938964054726923670308044811577079471834161333894975630190481694822085392116308235467450988738547025390232340503679711828901135114130461976086578186725760706992582006395553959732020408307020636400755402108399329310765704689809505163021246066972542839205989969893712064123476193984583571235579848140744730568365673133078283486921703855387478482910309863962523025768472769397867888796361031996819098442098258893972291622714272580725070090827506453068493402670253963597988753256973721562909441150022706247963721319756652977494222621037061733656592576317377563607887531972345405695954753265105181992406117065667213293639084451990117254746149362505076866114353787418367296999286638394070681697933689507943327088283790016455333478363610043449399862993838818571346134108789626919508557468293769875307513059471335493101876208062018977844041710715320753327605960689902163052665439798676256390960948156102042696232727431266151811965080838649095039883537688750543845449227419979807443829503227942539314770386292340874117029706157345530848172333304813789654523076399709473769663545439444400964662460398246984313360540126634948389372671463885579410347183780072336162013700995003524957593235255099101600628293812966294808134134811847845031615662534707153328305768445417743998564419240465226521784505046562242858090447023620706754767412832314059443403402329167250220823687683827034132302861905522023763845421016375097018435369149762857189144481079408237761438370912260113607459530270122627140467340564106147105585529418181498473200440462913777125623969721594353801566517286139578997004428403712252497755039667868699080609756300089663207823596920346867955269158443393236814296198855748628538803120439504895480556649116656146568780505808957630716959703987557248499366481294472359362460869499188125264015159183318091973402039704231056910041466739745894890349028700022214166934021723376335460230873716824286222873362223639133884594659979076386413205130934580235675721558664372028997872184034284992809481324255642645651774573965767088810623853958779347239132323745923958330763946981420711198580628765272493587904835790841772605872052330844599109471240780675227437179385114237440146392565886843690511567076056236778544877546592076861693120933970002579058970384377083904278866729343095653200114186740681546749350963318466834444618487428265348724183939522677943766252388535317735210976568180066403538406328695576438454547707189798724476928572699610894317970025527007586835277565634626563818101346244277610111381388863343373689804014012139038479532624844479062425271847641741031649555607721695314763165587588809989974818982702122354447533193340364409155629684242570990030518880917638034076111565818500521684147926050038376538618773446617439647339117102736505284827148746177188857472069832891176787500826570339990937901844229937456479254177357268092334254896581867897857429360632547273736488359335330106131401233140518174666238667973258222910984472825275861591194094169702597906927065139549271823240503221967146151373831519608776379403589951267094168800023444373870783015245924233745667076450906747028089102984659434304594341654085594510152098584229673926469815912794674487284418709740644121206274304080923745086775850579011182206864741868823193347209609243091987902421732647652929179929632082608807614437421869662087506283811812494359629988005384100815840987727064791194070821271536555838696744718862171932270785878706776474933753591301723443143837321061939756342801620719543987010371036467548406422931791239530751360235792621195558860832653961560887602433689903823052847945640880949025820146410935367422861147374467361474390964491201818240549953029875114836934645454931453238718627048394414115441450664387040129922805801896533441849130730476493503141159750642958883373300826125309587768917985397364233411501959926004864462564110490317775468411838730497658958944038634050596551448219688512007113609166413837546043426785275542150585132395944773487385210683094420602983873018665254915518862791901648078083076358295173219981576132367489071861787375377355751377938352023876953116004660897270366809400772889917740748010905345371400161509244641477210768868668078321114855594334289347547190244392311924715990802306023845480893025129718957971728500185026053907495194703065869056228757788926909841901452046030976491990373234055565182526574143901827088577705451274205955912534087496286334228003984433517154257026228875236205963427360775890329402006490016651126678527583651766677186945606797910662498621366937416434525246176753376512587749701594133964587670198068760746297767988599786714274759834743761459271750254303869734405166751618791819300943661252713252697587436671325549053198663752885534829103860585578136127564590431051880598206668662334665011310879579767189786988317054942208144080683440918986712890696771735538442974690098018738586480691159881429181098555106601840462363895640445223912247778392104461250243082904955885823888504927410549224780679336513932659113857132657057443075230497533724848110155209387734444304292030901765740257389077857785971564609249205981733700229920975680974088761363081285249294783754371339221592686495277722373781009995112074045704457327450515961557423831446673441424645150033390804413969879590914079022837411905763290989634039404084563611563363268089042788097557739457197843359707738352226051921128546709613064506586426436302911864322565648339151927695518753459562662786565369174203678460952672167840860276141983746956906153806282193991340504285417875439634732420387729972253949436162680648399269801495460503396100050868072962318405322210213110998087303808093773931608938682705740191420041999969476328796788437087782024863403408333206981849365586337067624296394507638278009490187790834513622502769099824369456546598501584698295007692589497660965495222623021044443333354928851518924502859476182676659785229454145355627846056904822361946821649879914044180286451948614824802057845397600756532209237952239797131592999620836587559135388138023380741603707045056547213673737192044951960332545906580954777930453029848370251647013925628539634614291738502718331682367846372520206218263625141291859805503269330779640629831761247984675013198072217481840787972601245687599560768224660960050110674649785737128500484139424134688261747838756815291156689277301122865018181505810692079723682167439511306488478642212726842294001223939729283797213545985101500194566548643923752479008248923632730096259287195775897302938048088627473524607902619623092704321423223191105856791779699806098497765837054430754861547742574623008511887669129430036426861273262700833478305030135464115312680617416352745017241179780340759267082887094996981226714400171715090126634414272135481952509656021724119049669793137355780899404284382072464276379544585305710954293166911088552562750055845528475484545691543446461740443311080381442548732587156739478629384202478097809054240353701279569404543854770536726427142140060072211703899257112688745984947821150016480046403820838644178964464802968671004656332091328792887970267140306706315723408312485293551088705614875978497825630801366443820287183752919267047447858969173477660141662439502512443715799428028583146605345837886533904207415910487195750729797016303962763240388520472239608956570226209955554430676606803206381737742047481059957733782094537192288668195721938248546433291097755012870700137711688932910897238544853911491949498464969322173487928731367381703242005478528922982735490383416891348803125953741853407310771586188946145156255435254003068717791379848214215207844989489776183912146146928402425998894158878956713523634103843029600278045435590366388573049469860536526512843118704230011691587190249001849726243885401814128981094740840433044473706909632200406912891460746752221127060210291495152645993944675890407931870463715576491252423867152348421330131598150707993911604529169003097821431020039281984985895091424127111101862240926717325076125720234399693986750781450918494490612222871911250600308333358618447636570728544199445886035652315717820512289564245365928576909553028871030282197792050482213724525067553564146780145092196681996620587034915421805346578671578755166969403087582445294268748057315125587015053930543270901887487594554426605070158145926385084817612285715014270805525605173071343364659782384921978837986209603769288761693186271506501289891772387873569620470859797319492319258149867593933501350302725623937213848571722760108704989992005281246688398808787413588627680569741562056349840666978596411752346321657243729735692778639279464179568539422712341747700347647961970231991925958944363841412741322603249649432912596648498781060714975610739808568334812076109757007097182991339245126966851151402353000881369552251212856241933295694367938845049492570566712049652332770301798158294508435434190140904365264202452512801731472233884722694111280513790128152929010935116737968541874092438220574642645724225031711615132401091987414442628949419865365508183234166845326230160795012674768036132524672621802544002849073890129445301807791882692536424003835900660094387822595641092565051944556239789084757395473123632481087007503200105596419953479020379396648152009274055944103328006135096572583853356927698555759448974773691173686692518521235168252256820676479419594237136117413425864502261345929673337839920014896236713984952270291821772145224399361496484435431285105323872441064840582945002775750987913829197978678015951243916428723235235079014066054424410255537842793603117764848013076621850418021466361690115923858453445856019852661327112550769668424481185129424838428442118866895019329371654178145143187604074490903424844451542156287845299745963517967610579779875450803936672128246381795939057939752014076148483061492064935334053462201191260265384677910518085553389953021744063702156115682637227181313193250738996940360760218173122623692725086515902401244239056793370329414906296969113995152520791151348111506953558837251365364431930066149681822797270850023474804530653686058621969879334314057072399296750524300581572361057605353659929912835766801870087164075637878639100542816652564698031840864788476148316428795570561215693784625269727181041987024782632447436290220598717307121079688924610928246822982965686395535899695047588939440881735168926500895993864151331178898723822853258855702639764311831997713283064747396737883934121901421109133527088909213736920650352718456461755713043032917928150887588128121428526000096290878633950976773771790002967563110154107891717046746488069652654880920819053524456251344510768800335577773492847751999279485166905911326270179787441885345350485859880953465945668301919354090354451211471234405726152089369560330506497513881785770063368116636247265584818990330787849158711391282749479640998641750818638835056500465080159311098039231351853185056168694026118355192910194134632275746921714200596903092519794321103749100946458038602795124695015211680438331926686292467111927422542876513980971852537793565482857597579352892673755854529600109299045843699959344979930231460236014998644178517193948373421268546506025545124315301926905400929527691140967326472118838454824601741246680365200326752199270308871272458163677309989184991384366610930125898935002637253250714314625981576314584275817158182626346496279350377382970777772660772400675436966045572376796080972531266594094261168894841419863478653378008625199728090461630809689251364854782206516290546506301269471136368736854092757407338239657153648064750277473880534145178679268204389058910438465768736301179491683664387622811863907274772001858728378232177240914767985095438621372472934263561301865902521990411459916505679794020865133258263267192986462816892820677516181587128317998536751162775024776693939305327708025383040448982669688879823633488901336583739658795028281039856207899814272856106293958276838466347614596607342577619988746539477827266982961053122347902792623601133431845390622085537502807882597428987163442666004277354833584534282420750518183180793703174018013298623754947037089979454557041463617772267880279116753155368240700378855910761658325221485796976697163870880513545411942575301819799133930296249108377619545367336662045792255159185091002400646009909992670368531118435081012872383493234904369408919187272226186538098378908329084282441153143852623161337851163147241255505819982763138286926505398380757232300570291289984469036907446863779228848570610774442742335532162886906098553560338239688950463404350397924498584185514208523275224832768728336650902580200449981147387811242468004917430231981799759536111547149654571702116677277358973837647945343595655206428987552650528400060085129964186704367842319249462983175249897593837481008738305062124220885271755365982977740266832996711946989921120849753909503653993091699794773719665202961558628691546257127618199727995200648786222506906288330338709643417149186659357946770197544518075902388365979005906310251529381173742343039069683903098905457750615326428976743105600859551421126680221867210220568314985217434761109803732737060307268870744195386019754379319271566782091767738511840875809266414397090635138519679668299720092706693855102535331457791984702292253055470079853590668629019924329459253500991302624528463794713223886199838103609302128423265474486708203756477376089328021590661101624788492083513521225220378522487669650688774852851304831784096802207084972984773612706506892405658483349377730762495944089830350192171634052124824465296997561920928398158644495228123512867032054166502571412170471125062560559041117994936704032868334306589708401878639263216260044448084146951792598778692278933536105938988096010316825274351547292929043274367605101370112322247646784782117191162069001923542952920286627338255640244549028048694067571391256057663815525255496998661614042741403269678658054158884641728612612917120143242028687430559393649297836464693922351631621799646776652968074385823883460064461542488896314978212995105972755140111322059933150312627684079290107332390786387579149677998766831284999488029420402940805701795243042290246680463980439282834626327543610922164487200568708797898118154600187642224421271121737457039577486135446587858879917849142490792876113088111286564067814538500738072131612780734856893531995339430745138264460430606692390345040206946236594741086206627208011272259667073079667560849298233364619834651622555710781576229910970322356057945863106641886699984839248097160202436999464321191989323815916462556273296028343523501988679169952831715087379253885467164316065336814797868321339728063509721523028972938545161263852034412510243738193977101127432700078617377519136270613125209702320974113692134202290782597389508265745274349220304318427136260125229019866246744487200198775161410874610175415960957054247300695959224912612422681881247340030935321740676754400777638286419225631618220995509641800388555658723456901749397469588489811063017415444716755611482434084960339234621953537746921816170164959110235514628971366634579972374577013256846609466447805881033725355828166401491638185945720108056597352413508043405542839918882257405007472730066595163057774816696048418340374359589344987829430238883343600759404593439808479518369813472207496423516389208532530823735680109280064953269931949715566957826051397064475536815679273864664447848774203727030965263097886763501575333278883237420474905452181929295571677609828380818637320092801531061752607830357990937569269452920542900554920354900662136524521125507286234203535996967752494598848000418253484291629505738000849447022887349837554509910453471732771850860403783269041252088052210370145097752378584675669426615439832160187300180202307792049382515856810301541500655338295368652907029692061637299044139121032290629731483566988751738692125895601386502106855659192997875279131152970526752781387671799061312121353353786262954657892608430987672558104759347001563804295827288865943920813682237230671831076516347530631533824972796847418170629861797116508288375060641033223360758977386770202697917559339872872673083119780319944723898307933363458826158803154572771851541021027744965389930799487023917515855956557317921776593397218781628273442768329357869179600905725905596904164274086037017490710588008940912971668273564168712519438516612452537065944646798168002138310060234998318672830959139081104976240785571453776949873659969320916403012941724251913705311732790590937805400892291106153979121935316536482950656740559284028758464577277439079354628925778015369549648242335929785546719282845854656667819523625140021240704963289640279015310089188926286080978212914634691663928278840140036504271564919141956934268763370435405640177403434521885526956324211922214177047385186189898581142862766161825126344710130225850794092869269446612106239729345058379546051757016070144907806718135859411048397874663739571942304794916872709233836754324695239787030992103965405253559682572697247409843130246442494116052699034248764941030079477627740436603935426717750157360204702255167005155515825755057271753757908805009702856588983172063223118056313829129949738967135292225833575942040298896817277965444357921858193961472867414179063772457746156279467397768488238855557803836305581838334876598213242534228967607418083899464608332211121668682371615659489858230314419928309368562218330082172408493316013730805416496269641884496419694484487568858828911054433294479418944299403820663391058424240445537096121525850452915671324755867268211908107777005499617640348628286192113989323469435787539852135388345709973616285554324012688549086021492769596915056698660482626519090144646272428563579846139133259833850442142317297804285012758156074375106858220916660954312399926767045645638585215687902582310462185926032674377637981258955775253192159814625866456464563427784435505365171902996475782908742971568926537321654292807190281632040878954359515548216918363794297773109626361796701815765380543785194629716734588828549520157594847884786363787275415585908563178609521876218134613138004709561837115333965053878788025191332710556829378763970510679458742313111654478780782797545336310486726210852032147731031675814766367890143203524085140360694642445067196278238299514676737021622735749370049769307889484471786699533473136635614178832333579333082105435908128119710907813758677666989635573722106574990244982512236322856083234656054422854512738980795746674576854026908082191388245883634795584249585805036897135973630021154629053966953251828623463831655747737354052808876847305344164696596529996747507473395958026215474824418523961107319845000705388167267255430534949501054501997034501609782111498824969351559025238115304741631199584768123645050381013790342129404653033198834176048290039715001013747693023150008957020839022962533158927357716367551556626284948537602867908275078323124788423521861348471948604599876928208274758361935086651339477125645405012379007003807470091335970959595893740122880379333520296753954120973672925029395043746479441983240299572706029666482770676974379627321019548478713677072331851885752959789880613626774366152345459275442366689947725582901166197356970663116222094304267771144911011016290233724822951809691506473193357287669256148365208759066240049335768538194375985214326880888537229773884905741369929961783558342275932880236167101259219015408611790230645016502905163065579331298082228458209392623215348580851279693420603430850762032797177596350412454194925343919741676834792176905803053837880555068904498936642468980764830655861923766797051638552007744150754551695432463958677838471494202881967780240982923076338218420224842414866330408362831817653454622494062540620297433783867062241431780350839054364098434411393579370596158297341123254547237752924306545615132262689078009639455203948372804826512632012711188717807077102381840541180789074242456403366926942439557103815423746472770573506249381795657610515510705394378759840117124212384718715519863593821297985419650472556483671198128919405479381015737434246723166185312782952753343940374043351402545496023359553309659018065302391305671439783721699321553570677192402868429959809217699194689490705294235062337428575357019882293771316256086997032491200756149136675940377227217576386860345935343848850900663070902454109486347133072339939752041110300185220687173057206366045319648861297313333703605592612339186028851056830153153941838119223637548023206224282511956365551719812381223286974444330205470832342699442682843954102335766201776273049197772861577038785844383335253345278943986898854630483982424305443696652072729218801009539986241201888765743684066979065138896653701398904107442391241886316283593591219803158268886453041078701995996014951119170784250330050101904663098917637334151430249976090057816690985220283023052349800330007876135386932992702091548456126957427402374595043031393296675578945991063832561247241621783972528949621566168669278820096870226143940644676566787663558832130454908166344905984350176766488428312982568888511907710508960038075288948271178230754384281955981503328522868828101185960471412230519916005759391497777982627989910680428945867602710592655776369014053358719446876471958333074614168374848081261805370199448784487039535120908928466610185152777585858693905403405063562035688602306399892058415278044500613123298773409887219440582066899773942332159360090042595253300835131328899601533518002493329243767867015528371123942932593454032977041702609826841538823371162294421718095673484826819363398120473656854663214368231264077135278900938006016937420652902873246572583514910217487638866412923823794478774395946538642735514302369036607710145414052734454999572673037198378718139755326663115883469701094623276473513409334355344166233359848240731356994221325185674999132558387512001029779276155501967596763449627567107396541750229319991603234486187548933588640626444782319327793488899461094578651134496120724423293057075353929686493034476891374151796001613455288617961950336813842218948983769957012994857851969755633441154260952452612075102719991838256821012524869153596907085245443678746713148539782826540714627830526752639592454410092665428004358007922263919725167443872077333597618995513162919692638185015034076986029196351928715825213376647031664423726896320686583739994337958052910017646215828870453088340786102919581251390737767147537524612735886569951056532875527094089180461544728415971390645071876329592691732248598955486280754629410491471568599459187238666591948926289658690854308979954628139532554330364910185242552747634799571807219304196893667333647693957535257227868193396044428943781862139444361557970675408817644626338457687943869954996448590135739712160191997320738962179810824537747636484034278248570251146291744356074338377464758929478843563561823329587526580745030520222422182990772187732992864257071799116348005008547100686506502725733470552826969483631706200250351980743678733643624184259201832397524909369846003325365694583392236346046526470769506511257378550320323919606648381522313656112072598467830531043395713633147451843062486368184412335083084623799908614046504813745453449888146210105628852479280730310487006713261222746181639586056915197472012907572189120698693181573806764260490944534976789296131722212705559371602922989325647631532296554096977244063615125568906403520138992714970859366943986708426202162599929158870447016146057616444771271272289555788229217771353741209559755131210253202795543609743055341555924676564820151620984842350668321250501689137872749275952889902885310551136250064476369989475710415427407897842390072648920647277538615146831082210773389633444462745824641505212562383179094420762291254101296128467480328151427509190605813477685719459796171512810038780154893354240522368400144633802569206770040867142308724309209695626972824580315761990377133670976370252727493997189141579407407733103897154359629010943738584087651411878872569977697295308285329891730661355482254828682735846066147188369956380524210748677353329619413102113693098161841880164890723427638450396320379883830349309130182954743500667111381790181228388616178669720337374917031932204074290219341218795523308168183328707628598119072256037627498146225680108642190790183364428082901173814316743615431273742116156331601998550464909122567431370806154578530075971799353282232374274040241772044557701578281689424105345055536214732304877615639569766767007564626223565706930043067604207778864907437056733743548591961881344308792346717471905969482426304690748421799768592779252516235616674118087302552385881895522415712740178947007562882079909854229250027552538633808886841768073861962298850320485585559675438559800388693150722890005419086121092723060983367367724737223110454603857197763030412541154264045377450564218222860077138698319535695504316625650255474737294061204926819141817962559573221436889157370714234634254412371316029934952256845878219267391421828931298993740355238921571865460602350975114444907472085120439184406702040129252641779128566586753973959741086378141377939516709469346269183022265319850723239027367823086193772316342885357982622464527511409841989426944956427932387527202398639861955620024172043762284883985113046760303662296336047070305412214391811467381473751000645373805641585980413411259993071969692977039645108262729107801096289636307529414539004788898381102439791152344238451740846607555027911648899383448928036731407380523341769305562701059436426572609071108116658979681144835917927467471308025525936540016406795579203631437855851649812639810189289116479447997032604080672610054393059676400598587362351972870712465383758264837378022331596559452382069967687229502732398777473864322776233079332054722101790186496583932649312483802827054656442221642589222793508905565797510850416794229248633214182502566518461476364196659773135503982044635620492931963934809143776144399024191564239743144374117082701816599037779685980921034139694868083620634773412693787098244618899713526258870239116319271654855136236294644652373478393585466436846729371030414467919491166030041069891448428575091349158075241839962202088002481960850159787950737816809004109311939882108211053855013100079403938923683059886251659382188427857745871032060988062359183529702444550866989004725845109551911454733909470848024845690075773131365033128425717118975088488501116103142463718115435221854243464884565266935497973537687998924076887538956250451668378141326117144883488939074763672203225347041110443482803198295388407327201105983176574210723674245516398934497842723947088608383628975779779294435943516596088347169624120418751248753988774044168185291201716989486266392022174707086286385806104759217113116581243660193528859945928287610967596355173682553507059180434228402891628506975166540064209369131373722724125083122307585699853090643234103349677636631995630809304581264299222852196538125443901954727705112762229610388623764421090636728445106257014638410774498233625453558313743342075558420255849650758394758227772895769966009345278146811227472046396564071424846300037281056877074691338229241809450953912710977491291150495286935843915255105935753108734567622787573001639039436114085020691691757082495983409053673337556814838340042961148732648687996610015692442395743586231204799053537351028273244961789367051291913909031687279758730527122827198967757043388384065793893194343787191999216955426051869153309214906321675859568545327917548461936001704691804828952522713186627870365409208590097872195946442825921810484115281687025375473870922020848591260671791363010426576295093375989737509756459230157107389029717116741389461595639165767925772647734844733831628688165076389262711690973624695854374778484283317011491756947083359742678845417778090693752421063308180664190723294800688339245560743554076643728133635109701087464148673292707264882364416413697862971419881682256747529839809942579809653962182763901117569045051788656651137948743681497347817497642913827957115738251091475990905954813212014426147294651758953484142943384250432630478290999417524157687528713172594105424617604082490486764529343894518377847685200534928203777901401637291270280372356072074676510173308353937903905460284258262230704741361505805592957368811120682059045404195495127673139634167004520490895578340298090667367836672482307365946727032418415933869377624833597196192576936737853951490249492061939547166596286431802298266206248463487378526709233637104113499045670573782297835489295537496010715255942600480439204582039357095988731305885583651586094584331991997689535295700134923198210817524014686675350903616606304759624016334413656348273469575333195166705485200926279792512194295905990682968989526358767075441103715844119844539332711595543670973913206252286304590093110209240447966002704563388419508648813023119064656034465458700023104668306676998196752681311344661258314359204468234609254436997082663991394474298908331527476971849675506210795979214443264578241313441034349207032129401055658433638491245471493636362264390557580296944374771660585065372247197681768662537666162364710385782506713743213193417880747985159132606280466239714231631166632259521769246949626808540290276496883247777871900140291918590755991342503281830712572270016693589187879348613711097364613311859104138339683285730465015263675869824414352540147586534320522091146491768520080839546869967822137474215077794689274740059741203346250861946777442344449595760590864785296176532060204380946550118690516204744127220542066674424666230449663660285397027593773645611246722383366526261585037480062607268392327003089368467012752670638898087319575040153838787544348898250844880152256906309157508203046571337307412199871101793048188814585521238009067935922268827274837601342360137127880514305873781267933750447447321281300506002798325654294455641668832149567656576463629679731470238540146808585184078863144737689327398168285234618456500752065360108784473927123125605460628283887944755262264347255967184006869538873224665445532865874873738213206721892745791309776535348602903886049246041748330257523150154962187333397495913514456196032969997321146251812932251437451494990952341553888761834396492625395337297829023701031266910800426270632314416046029445704869560809574803833626241898465451694991538074986978577785156915368830129354671425279702585972225514669751455820582186973719919680344525766108245996132457681551650238163983514305904065549287540366416614319839652761778226169586034515637498805077103723589429661506373046561275784822565667074049592426540790046325380830265421898629801588462351011279384886908532051599072644445042273019001205189946667337050721178630024670710528307788009974784621084007516977480675924436064765308429798765656399823144663756499306557868586466566129965416508759824752132988741750382211345053046620757094974488489681616472660941514874102054608483284890544442546172206589528788480980784852038335941214066356165613693621954448672094936993904395262750232388855798353729915150597781961466168843638893654692143828695330725273171799496937365967677777165701119250566386761410818803753049994304341163293246425456781656607544050073154968669771551783022661504775365040259925045793777718610939103023556200155346539552203304583130509153238372864590109880548154773752617112021477928151255324300735567572436504362847112020524435806662273971260988075330344297804108932556720342735208013196369317777778161148127436562672895694148399236065525617741966874934654592801993098873404898425680348499635237540899009655271048382347867156230058461243455070035852087370812706149266072738837526892588485205730231841639031971173031813135216265189386009602478042118134147654709489203439570567662031408992601397685370798679685347194514165022654571501587304957360873236348321506565492977656072159689915770996922901172244859330358429281021851682355728437740889697135230061717529499376643327074641019992365922602182890660202974698982728929563026640907782654967256503888194972144063586544175384795486062217269802787627820276078380110684605140775432974171894654484174192847689917249065694738519396272769448022695257313657835657710213593791604018631836165121008311109458915175625798992627279406910624398041239033245784866984099399967962127065370373963641256237755485835966506816223038321082387090923847177436853098298600331770631519133109406637342376264094990815166479299341366987000685991812239048420434654884819969549541048707346145411781443644040337671662540041791708568612683891908274488710938581839936145230988635329139260381419701782792412519885333320153547907647938400623423504918662718109780718702600422289562834463619874786297854542450818014367814256898264735792805092938717105513332086071064629758544983582294696587473303446507055479378023759644450477950846384778686991602033420981935406518878961232969649337579282001014210893308985032022639872750662234540885469119823405867811938643906745675513665520826432588163568063250918072422883940027513086144224714499711016982340395772120012931422383016963932730707619538884832043982899046830659790721701383481152821074512957858271894926216693175908269437414511153376227484662664247172844688974496250799321360344024961329406622511250854482013709242730063612219180230468737833240581994455603518539530464532440227087681995270863178598344240968298845277166589157609406488019619932474901187754545724101706327981336693460333427117543635374441492987864424633250832936738257028589557476191001665346302351637067922450237901459456855908158331601027610131785268838009574288489511863946851876656397874758207741843588106815772824234734638139153771188396758181715841578010667802697929182805311729346701770115946010037930342030503322286379076108470316033250159564701952697552397140742883952865921662522650912213660064159904847019527354843711594971803052697599461547206558591962649737518180164324968643111188663586180975209180913445355498259419561740948305507403276067689803791256484700792335434035801244545398885490722330511258720112234727746187954886315961010041112224517520886966539749585554527803670242753352149422015848357155655197685184167564395357549694055909021606181426092637015567498593413873291967005597871636283960989316432166877487486818431163367591835520373105035626060814479257583070692351424050175871749300441351877158166333024495233484198888726350118008874854863888255103401232177804614800309799570910306409422788178542634445463728684010861892388227284028740124103878895459508709930304081154372573358595995756966493952754400446552830128019869655548108727430346691705267872411469207565694686074732418013489298375087414546400445381184700813862316683501264739954365229576329184833104297093324573184365359471280836491526877804453686595699591706587332184252578977081017627331471880773548709399483351205550083128007867364823274420334640153903681864131063351679354373585573772304378933966350869428829525093239135766284743229639078744712841659536181681149294948173350182803734862759091024101683249234482367913067081395995387990620419029358978523248652183733871468189910553640510904066355606522290581880938474134920494353349029025456165991053970043635817838982411280403919359943194113546922001098578681013844510966306125532644854477228716809001781893207340581781649976496527293765550344684966695536674885423450033343561770200617522868006433573887141082082702109936127015308272944956669566598374269695645543529323436970720608212781251819408103373734302575815190365560646945908409706649183437104249935137613816655032925668240271262670704271471462810908268371488601145723083922296637580189369108685966989977512177342802610359552091361751662124632538892480331505631472056246577074984482599971885299177407150244851872599932016789882434383216605011206305344667733517042380283632620978297504487087004403103329302417255043925412494031034671855933748168047940118880790642048002081652893018502401384146681054200515710997143214421632098253954056971778154196170771171628400743355062694543876627465079323423436905834160653171661638813355916358674090920959642932466736640054495481116966480233768125888172139837617677782734516362815200034369623294477432316389775424205260073727907123421439907560328797309730675046460716901806562927932241601060729669563006564305821433026645109654948800974859056652237160318877850394850985900768376001397241890581263272877447351670227601125702018031729332470974257114104421255255706896292038161355386540162386437608929676506921400747288680248875851022014313544972143026468711513972656015948814827054148288092068532119580343177477320824639267508974754639878924138703779282570035631012968120439999011138905979405886409396423592638982398164889474431405535993971094333588475723243182493686806883231489726203816248803883779968128471126770226926989528912246983722383764331295057887629489664722698924748830406216981705821919784939345447978479858549601678150983924595880588174760377649759393522958618838921372481562193922775226536860632449728227736118064989814636489814863563043580544916653783028534379926204692283263815472795976650560380074665459061457069834036755878016638528859107035010560571748560971163881546596059715331040258417931553218658833362496977986082376577721764134507257970464048131402754526850638059526287655540818581831930813209600498090874429127194561718603286403287381840985370963656539625169723303168121873998930489809762474227065164986521091734864199871364821692983021551293528445748934062516556416613388245780605892811438496159605788732782126645170748978937680989938923690986380276937743242515259008623777780453404226634957158320013348261504113213618634285023496662152826732679578114890698875659894264156164246393645828446122994578616906030359251753917797811996197097335674979181218485954472211069400354428050612041203489414206464647095846001544607111352212865149823803947951611719657684503710384081707716328936863900448908336374031893065148181985054584774425303205345986483162440061300200878062138790160212685168123744687979811549844208463571997681034750078909885472555955729295426819475049988301393631608530562936892136194297918511425025461310850083818138884775839535702748979192578487986624410472877502259331139933325448914733673373740394346611822998625306558865746111334978804228116673246391251115166208965349169581871416773689566996790142407843758505457163291135564138458714688887268723667251388981496939494243825777992571937915913873595861256436876434092836058025481993086538750962730309200553666073580297737779276368333217402194637700380493585348175893581159158174517884614147929562240176670550663307477293521228751733432489137643934577105675656082487487453121843511519679694822686484874667283149922851452771857536182874428103615405789085551548575258266654298987361868544155566140840699828733781719271625153294769743116408854952121590606052117502995120427009923776437597065570636202376001246131792386039396081834901093146917077920946339032908848538696504163886718217682875791989527650083257377316537940852283228804919482275298402313825227055695802481617038439812751901552559305341380249326391846530012773874984742119601773033875454744561364787518436200324016209050096231250173350844762987032225134767147098105417389637221131846012976900739764599937265499941960065915396550817492578028463884524920307408479864367617055199002612757153619674991314851360319718820909598332597333458693174817581308608540397264064963528224941515221522251894470358431527721297880462308466504501024716275675182496204819026415795847316279839158747531054934340738396092233563908916407778208421060197062975086452606878299709988115280401111701771515029323042884562839938713475547365133958069110052836998635385541498373679035918234943885887535544766107356714211211313664344953331642561602285572806903446830979805512648738359103015321281760432683702057496324019905383480752165951268106286636502810555476834977206470442172709927537850781359873570798831180094819414869622921778647944197929377762604145022221521268740398869829471679414931150189594447678768779569025568543070318867735250592107310965498423046175876720714599500002093292294320550915423367275309587662465024086171302402346532751531117362541910655331704446649099697936242138128907411686864859407082025462796473997700193339220530207763658511502114561873977154694732676109173285826937478528756269786152985942531236292812212563659385165287195853748271461030031078035815599285335416316162395518013317352822862761963997368038239378918509991441541770152986165446778268456596306685300827173510735092671518940445449956077208726083167062146844867157842086919468207082888550332190922891976222142921461020492934663724165850364033097887645427003765383528103680287736692610300298801388357789372485492768262762874915535105133956504828478286294575008627162858057760016751003156264793108843535404821120553761868597438793296769770474363680735610152381163344349500171238222599245141821782295578997331300935328832384103498362676352649611241359367687691218914501895045299176159014490662925448675149735565602525824458098429995908792954909826422239521690992881679067886406426919709835181750701486650582924473477389352947847566782184437233792542909557940785350064375651384191172297684048229608241683556901652154214666557364466474036284995016212919309322206160754514760070046617627617703077623160921607332780811337839886206453949320092212951564186483006231047258919972486226104267501462351622680715128965075674058763354917546128572798159762814657088943464780844996666322934946295895674775555935637628411335917210460822099722923688174246926052565588585279676570850880622617690845123035679289814192504713998317601652562585090328760378741901632401650247181186244467227966207187291666026054807538632077835401207585152769074430713250835755005295844010209602786395255895025042722347813220453705590192629273347332839155693726047044081568537567779293646970199041181021924011832229275512589536752753936710872774040304408068469393213426013296668496818146688910761083157251876150400281502881948656456152076134754567031646560591260977202984350261064276105062779614732653688984423482184502620552887789837547597657993762251498444097472964863763942075410961620542191987278258595387434161999132285831342918620577835515600778723578283836933949711734322643629473877742548628830729105870532385264714953999500233883399682495858304960522413212275416984743633229771653826672072080030654719841595918740232030469872901316884161341664110885965851208725915576443922511796199413690109149542028603311337585581613093075740564519714844834890103907967164429949591171352736846188708717115364900884414399802081970474765477777110884656832441886926202267519924466656045218858803205199596871868127858882352478608267405699921896687681138340100350097603874409497468557593579083330792081416511620734740331068314367258027751518037100428687162807844404007498152896069992147042741965024308277749808945053394203836035444507421574306333259231839834074806281163045181577418400068741749540304247231382104162154402115675645671855238678534680707196884851684479831264952670295686795878827289728418689603838432370122915197400182419196103481422288325149784725824112028502725617361648129274043377653744766092033697429834474254397138984658515895454426349879744863915981723282393100607401558156576181966870729685009756249043106341790088132592353974039013959494179236133570496895883116604982513733923611222381465362302999270106178693876282611362165077056283196919589924458072555325927193069812037771386529726976575197753628127972112277646311043132896002958571915921915122235110743946121394135796266587397148157204528428147477704292787687662599631886467884752810757869562230704799480156540875515251958675108558335372889136233957481021051387207469248733850898822393773238232001843711853426648647396691368953140241235672691517322818521906227023091265349747277136699953845847794084152382288958917466711088737461659692933856912557427471067985406733982659583338485995761177031523294493106486137067651717251673800719759873661524840508956439743977950320951464883671843374281667410686506588830847716137387878682912540352874042775315557002112921750303704138517791347515732204552996822504987319230799326533597608634770264549081950464770042505282074264061956739789217966501068260405693078306153870976272518021662556212463241803417947047840896063233636296964387893287828507400079009271179470743594231295690548224841743544764155115166384988357368316172241965966062791456918000714086795471229289966536799752939453685238837599496079070807373282904029005141956398813171936009323514667620562147653633431695743811043279119624337965797266578671242541060533466701059246055013227775138020024724501193759079918641345845366352858379127887056103079989342775365151979676787738072709268211059831114432187778604690410756326024329264521909412255066851702482493074228760886318121259980490766909660921023529890311324500936612973583467080924070902111527897646429874363158062008904264091589974205100956963997844093504193542101977078903559835967469704563606939410842377578976893017725762115296773377099845953430664475498621703202961696749439001131084985848678147217263857767564938778016216263862126051919045328757972928198791352550195107257262200794892235385335240181948368652266069381416650586020887176902338205970087764471945483017910954868206103215697438245926918040965068374698440575572544827531549683228955275371946073694140662778844487360233614201828419940493631674528239830262773297675960944532607375085025699795177792299445120846501020159498435001271482013458220383410814965464905041423203796833469591201817953287289599537879835964418592058582799270867930125324354048401967287935312831149845040588871372420843979913501347916367981156034526186732688933264916702231451736814335740563427199062680248836552027631880069553639030944924458916716890546115335928129392198691761676457413895653726821228200766399062955388003658056438153224913303247075202545434546474066403569198748978665757741870677522064026009241988605517968819184938220864675501115971572948603148416929179660164201917001982884263603596612337801050817539915976158501017108390557353566077987955910002897850710548484932630879163516660160399516844460717913213495089592085879815005234565297229755903979319441087471272637160841256394317826552791408642619027005208474149007251958207334360139083644994936056804475614127539205084485330820278542428648051400458312290191844394184917186624732993527351126775573344974327238188589782262912692962082380499825858007572547592730549641615175466782450229516300850251698483958822474320124483096245870837547433826888664793765308763992132383063015791521322349591262917167990272567691422798894744602112781872267115469758915640845190706585830482513329571793451843488508071155708827918878438229658985340621621605095771876911396259512994909551522203733552907495366560730365049807428889395596261632715008234760114523606695487085427911766754609732764637762650362696962500187984999722855813223695731725525414890301212712964910888482878730085187953294293350054760868114706215092749889832515163619194727394309373251167605797831782616766743519019792572008708526315395951712368578016714411668322779494602471864537133624483397044796279202838104462542705675763519830066029432315687239324679126315207107198536265321376950214226826790033594126577596026317965852694702511930135504591548976616083188146292165883154229342377537349447079383113492495424493416140414241291773185012180053333697173815129844377057221018813626267696444635243068030047654078838031481210058675916214649731149060791467295905481390560631067700333046421406747556421198143012393895135487301881106897868463899402034883495072901310124940479773142413529776160881128995123036788884215567804343722974050086871720634167715024144435485707022608486844885817431093730234061600228493868002545536738748637719400518454030450912263889078416579421265229955184778789428604208289669404246458397249619919867894406010899448026819158692791004794272787929961915612902433033381445634771496775528330005110669980808497781696468555600248976405881201255606101529508971754966538988053110662661882626038265817943327231985469320075473042074565702216962864839172812804081211067895299141028477660713450067886015379053679683674599565506035985611718435936768228783430028672434719845304698375182118271930508942684692386188647823080975235361180980899889784653217815458128957335709003130558159533943579138251253315996101718328189869405244805887237733089079852769395682072438248957363599905755227967310151363942276726063911522565728925981336355969271092536531375740028913831465010406260409601869640577299574925792172715293155562451350332082165833369497633615695651010312716713170638236673837418568516001138881043781895406102633593929474348382877022240569196601335412723587021375703718029586649480042589896603411038715609758920525657212960547841249662046717160199998481933790294373342772688189388144898627682954096407096674888685174104938826944254630549812197472488892100910402054083447214723430968007076304726281316683983931575072624447880096414004661377290926472673955254826812480018371081158201788221496050869249242880649336018051276821516580524214237071392604368898195619952039145764497369032910609544898559688340145251478083637233553157420742184071732770923713641304518142549136393862070581723498086860627847944274217857173943783118722664375238523047615105036276302748589369148531733849825066661836545028768446011662666937996818194257099877885273542515997811732994694633430934764164104403175849191032776033070079278095742485791556220915738794671284137509190263925835627687711615118943910263396483370621272535490504617912866510525464457731302714632966076314728715205612564029608977190606557131283890168412552072006138438544618031032373078196489118456829792716201689761698602547384854624451086528625782022901834984971332618453492894884095533207001982536146059723271974953754227297394104300169261733992145170290172621319192475345732872160791160720437426883062788065620586176611493294676921397322338715639451802959766068917899374575764223930035737410453104961904899485390710727314423347165434539122038361838990396892386546700367468038681886794253086268656577911949296839929582994679008580924785467706349217742065927603823476871521291229154304480575110268947894354229982417558869633210596178526121179803259204392590598668024291886084001860066143921087012261941795459427444385214045869092661666183607151084618221676883642170482849941576317003695586117197497216456921301909224740541362278896026708529850608739705694037828246437981362194710166363276134906386315341453511986362097170536713455830211154009955151254526166444782726980858962919975773961822285182527993629541878353571514035428862720582069390330374480473793078311923943081904530141910635598634203762860338594995495105912876488954313458592317903215793775216644553860522511714231935811537853930805313440533585860851441819213930129247070434862322042140174610266061652338201603457430010421315424442462182869171533727379442631128648290702505340638733564495208370999799268156989564022517401432572870202306337243509553605789308602221309534625975923430460208438733336650981995533824780877840454315667201395118481244438490764549300191671292626284611185503013821147557094202274655556065892452165786489387175183939767325772025288730384549151518605776210901629449114393942213427845163268502562009113470514919642019910381454252553382107158010024456202882644373156956558679328515341555479958553612611936058788449906122037390982530058645813646821820934780154913225723444448726279647988356839446486868852360916896799950631378182036831190506037967478106733570553959792594752087266962093608025116980864514496031348028332637731045273903389685944000311508432004961727532175715653990285578013907254121321496620781453425266224334464137088193179793299646843508716321664470253990722829792455016511715156125768485543775224834188243139478743916672693774356349273031061471919067195240846331621382818194309191733393873381805375404498551638937211417081198963791380751626997871233929718350295574887471243692386257386101451438566791894723100564101002419146123784489418057220024180831017187227864166194798931271738152709986385052636185838362104039940693330765985258890718025757579416210865223933248485542301832354386796992672250392923157032480417577201280703219142994742373919982883514008868789734565967836053248518399449686406445537815738022415340689663535927885806958480311081548118979577061809007852012908383547704376672309776408395192139802086962069776068713919484998757120503887892991084439752804648172049885078212360943905620809049077518066263638401578415944258973987959810334163767748771078884997433450604071947044419368344834588672920080948359014548807693996235672948246977153656770328106271386986035409575784914272412737437654922077310060640934780546030059490252297007872088818733762422556676622268292722048343831092477548441748939712030813167156713315758687398701397184993664255502252296411294694495349217925820245574751859846905387288442473059698745872256540733454706718193207209947983617486425554086100458091198262246451840592591418610908952943594623733113154304506899116350455193440651580432761511383580978297404385618848572206161061491860040354580423010766141081510558346918663990557090100427492530268743818111085319626407638705888931033154695044060545241604423729885353345345579333084950156481701900735641045618632098132716186006948977089655749525587590469753184566915908283355666678748161334546943467809563929164595540449793456634158872890812296275056103172565585252339455852175054451458690530173529749761543035503446583407175160735295073165699586401666336497632832508805981511753501658628526419568797732040354333028949269630037759591917313401036907758492361948364721110963276994754243701877108113040212434904175847126259872817577334361641107395412635436752719731383875416385892599313919494835993633052718573722320243540755682439160912024055245207046964116091748851827483733509037677570687793570712556503683845808283960963583778896876603142714601602900797566538135148066230378055282488806983146163129101673127472133933067189589967310013847803095094440466143215003337128930227066494262550698453428893109857124281835776112813059659594219146840826763022343714358190960410829925549616254549341376915974161166414166995292914848297353529951397332609386755689797218327956426220801796826098139705390287740340592628666325316908664893987607891860977528485409276995185220641894199637217512811363504972349894537913078778675964631408728005932242150645678634276004265598186912072075011842736403138092134651109004870336023170933547160899737766738095037869269276242195189254693199140797115551883373585298561283265790076402632143189299333775345346512166907397007671371666058557821477888921866877360728885620595146318662459052951646301974836195434244493786006399605183308657633850053868015501011414279192237051829059198023017234148466611696597586857381764132608263746495093456124991159753888204672554836014712298721581961030950723293250170869036707353114371158836543883936423985717313772570146507887343257691176178743700897130825766077994094935708481008472823612568589455613068199053788350458178254079463571695576694970846059596391610042723998776441310858040125501731331844136296979535964305704581191356403265097468076520720091483820339647707421431297167744060046784427789229562005302442983908142783567362877144932126519807078932517759707541070870116707940859937292187633445097782765866602826285763628985926169553030875576020982359690536087607542303071455737779017645243113570174242366040786682417911459334844387528254042300210248696454191171817413454896113862050087465468500926118702897138609483096497895993461774156871492516903611076643723313692913171082745021508667274256990550803192116892457431995255953439853511723448994034839550409726198601662588996522553447787978673217284982528348473937648323570660781335049687387766621625146492122728740651330305444610388468887722430838706167336348998003632074714524647677206545445532922954535966569316305401402775588764630947919487403940099411768792053727443768380868565343507872926998425588016938944163961843821498803201255779129286556860184116662207597771525689629739365272591223501898275010770421268232281521476456193664052590858073600235884008607411077933667001421598300262390311993970188050494584558526705626373869371776803700243036151785672106682924937820732500438385502630258421580738347622453251644337210723830896099947320904240655199303789488627765016752188987826827939470774935200101893926821562973352915474350560255247753588326055502662196518231306128476908105992669066931868394430862432342822916097302470256072900836111985473294509597781185726252415903700375123420302534559888970258476916637608916030570353505427656167232315779054590033776903693739652363210134122788314849468246827437743559612835750725331385275377633380827158959903559019264343977256582535158233245890491511017950553080363150139804968542721290791728411095057774922575852167363861255691735232518507194612370400185037162702358541491304363142855718682438113733210306423050581643904081884270265265320166028646058713731746775634807401040638194977740125257598467636453618966592680701776427491803829161643135057721197643054635494144142066035325112130598380426971997809032602539325737189880947138910174633731960367414833938949915696376785491326470849146695721656704356338619094936282605024084503028156330543988621607107436716716637402519728681951076482573949624844264718455429052117343988452768500117789115345686154480263774082058174364764778296879752629435394466559554566940712110806421890414236862647161994112486887704430613957897264663458317584046684998934877354344852145609911055492587479159096155098400912859414233410542880829640382371696665177659154392275204117149416676166121773851887885259484870560390678284225216903606593770885187695520953634530891583788671000470803721721857517453124211872943351865886525170131676780009935169551798602913287964274161717634866291709173427956921823957555697107459090795551364858252500655820734562694423731806430086999825163592365857785827897484756869743642163516608021417365154405409438767211708077141296769509620247430389481220729602659592336200288982297310933848684290644689008123800779759316259766441219992426951849807167058474654881856849885042862191273031152065811677947195885055857798888121012058075784226808973432421588145320468868874717676733202174845656458283374981518941217360891774194682896703990013443585031448213562300799924789097364544247608455237480961781658556102696463667937443289722733653294101056869467110954479140657982041841440683879955407049401335225087440764099149440473504512145109773763595217547954787382009643719742808912504496114123032171016690565585690525263141547840653500908620622002961688334193625958061392427729443954039835344500299207100210661076834898243238256231840776439711473486288926366844846615749559124273009927618367980554591494051629063046442764718223386978850487558677606561202349717525596815549324577537649001997505515273483931400190048193174173478704280728501735208005519913670729550851656418575626330423954649400733389295570515133335159993451669623148269550327831021490013324519751238008548699818521783626994115109259851805647880137014940027527576611231280387596447650989012624206006915074586694534960745140466021681374114198998570811283181433627915773815715509715406813044462388823240739100889863457472369734338310620499519888373440476978544733355696271094937080769373603193796873709717847134560566986359635794289776759126644955706731673837064319792311006790239452002747524672215732278982339940372667104616716180865578969715501678202334844609119409463330472791565073166189184398935701415130740037622488279202589018559586855518469450603399864177763021083680446513565814075634126421364456990088601633847148530341701375886146870667902672064130672844603477881469658208589902749996532155798757215378009007193550402413275697171964552834135860855702437998982647450206871311850875766584894309228162750068425826171796133153591335571193528119881425131586566185223400853117324250182236933366858696312250139961589054871753140573641187037993476633850226868315458632083701782465588601408445673956308334737104296264052144968939494947417493907018082360409487615321649160681611972087409983357013923732534015632989793175336571575799774291113866466093645208384098477695986698507375742034598934060340320564429211609899262324125446926130775797897377153274777909690206099230483177590709566187229198622905959127518025985139699578771100199178650402075182219591069074851388311283752783747504947203024176173794252951563618677913577649140127819565744709395652550803778486254169705276687374912755683580438883293618720556508700607582126523787011586205858711161808321883491352111926708401679958812266987305986113276087097343795117884903293721970460267086260633469402531495185979617698815008712327875381393839386113140854119140429348257271342270975692311459333604210961907612882679060488228689862913116029044732815954053266425365801712114651584234538213577317916066092722195061803651161068247494922954536935765822983721747944455987952873883684596779666638693025740443042312241397991868113685505070730896465098657230182645964295047373687396824235767597795348868795319701966270907272006464597725048100205721050481028183319007303216575560838984366273448239115963429528892188674629787382472796476043736107703810057416963846626390328140868431660696088008817763620225899634120861219072808176924621492686519669679881903694176181734125839159086347554937080790857305914141102469458839554509529053532789540641476545986618859116492983677488131715931145301621413822455829952941355128974254361195487093718806502588716072607303216325869576982426447085605587442990842389652794946264707650088803442806316944997037654597316816541985301456436751698655249743691043799735993170299549856020298604983878155896608650647335640137258933774935261476822115435065392946578388837755231199447041231595334141308416303239182016125715079194991361825159690062713385922415026269719826111886837315597038805389722627938151688766848080902902206042483645519692155110973793633589406325640580706450608897970223493444250841571176833952391104597403907490533149414496619827677435156382930435028374046806572824809411072174157736568563015977251652212550101547808048434757706956617855284895167875680106451321178529601194472554924738979017719214204074059175064269752387658536232587360250618005923010216731410931655385390733973926870635675919477906442723415906644534258926812872167314467196736751630183512586266758272429778559464334647171004043886061133796285733374046534734231411838439851326188297625776936974218785069428062803313527672640335682680219116807285675109595491375097171069656553592951303216029195933195590042813773776549366998573824334376812697831551700675941153799523280504149824096193115156690359123888006004938537587960279624581315171106977926788938189420353256431775240936388253957851878019170393079540338509818314933388963960032029165599563415305744064727435597103996909556355804850007177398934472840789040697580336768145036896859314705334278637378627616502439482941397589686687603368032936497980633754234953521141307263649250572885764295712667755242715653609026730237482483042991756438517358388487150004494909688055661002052094868244922753193865119132221280188625475347866423899191371539350399885568078723514674377698131431559305637992327667776809992985956027876870965023320890332938576211689105323915671137243696026344515595975746866528583539949493736929142375768701181720826935151522811310659342429162141193326202255104274836380744420405704677043757032051904282918319733757639268802909651949750266522425500707385958866515728572902374962771669683810560007338925208006845533809118551549828961858081795611368698761799433350822481316641566171599364321481238268669123543570548455410893854331663888229690915228926971987889347660062828637191444662677853451604835052413663049976915593396856573904302995914095028412015346221504881510607414283033111440692797257589046329636265379062720553131347180218485201874983541052981128170414647640695332498641960401498910626100819879179773705375934002593098206405164736437461876008580756647635848953850714414822611369929068072175757612429898914831908415948261076121822581023074832958455075532354889710849091397733780088930972295277462654711819257006257706569208070606758230701581683628294397282407220302597346808415353232793620402836727863101873696909188347964587272648611457389976505510521298531317053582635928134094276641762313031773073525684747687310201913162886109043119731511330589808357186419247378568981759793384496171799073844282050377649038845281858509989112552487650417099688591906330661477296134827792788039644976096564277514473528556724186243104817690834079375902644170043548013055901758218851826773269033193857014371836888914899199132192840991504275617458726486387560187988398677436089839307336531505676149062767060324693047382663401560180564119076565847055626504227237168982951272875088492408511571320410927110246713258585839014918535294052389937183005852865953673645045127327743659544781485666788079805391112242018911463399613619671804345089394504999941600700738687734912332394333407907694338669708881173026147189984666713013578782121538345683401660193892844039338216920818877328358914577462268916941156192486996428179897721500699403606898474618639911338216505178413261087218739868684319269899741190830024401649148631170249470702655885808758588819707152571818650931990904291400398207283387001104277108116759732541615775817621892292185476846938141963226992825630226886260592480471178330258626345440496159956589006122898088743362757641255234313145542410203515803578803643905488442719928957529443053745629269023584878084038520073792995566693887228755391815904037107347546828467991096850164045215070690990043232282229968390178747266913104350172570052208936376132853679982849782547794426356541657339923030536974797679501220789741277613701069322676301298022796629382232617986188479684303442558804723212825124773812677073695296746005724680369106202707334484095402542188758647602496541865150182051449510034128286721784941725428077158011606464052742363948758246957771465378236227330409383799233716641893566739903586297041673133775092237243853852984075619831080100693661293289018352178987755952592390488586102708578750277628805829382203159684616469089137841913142172166168798564550933484617341565176072815071974849259552445438091020619402863446379878559306809644672530059189928908548481046536882321620397106222327466172721944869292649310096941456241805093385992513600239884497737638364412497290344774645756120089329848781881829316632945189951413684380529986910643181677306673268395318087378248315050225121389858011746176652995225220778610157424501624097381346342887043014899285930962391179861977739483216042168981549492178753734162756718893760995608375910494960102193284282983965759530073319545218171961588868172519540274684009633760450710236066267954091960452572132694794664885195565197221514278311428500712571348981386325105119631947660959162854785884203660684895368905178942153985979007005567848906915385186358165684844984181475802099321384735092161396476409808712296618225510432961184721811090383341191917668980429753087425828609845726463197990941064106876374285358866862952845714807396207206257463477800696173513433082828229876795956640834520717204919034539435558672396662210941749746168529534698002156736278060237266105289889434343222140571741262941525757778514339003656607863703863093481880915809727134927598379545826093775716188246927807945251037480482096090930823686971062065028226892319538410758299266824241696753564398840647096746935899095910100575891690026869948053321007063616341383525162361338914713829945114314163868620636080868088026802433014243445869196669942702585673295369331182923818237923290931502614452145219069533249643998784307005999324473823381354272527659721834763093773474280610074345172673978601843057311819055770045133624878446282676755925305525807512873709753548402902209692558399206971212233775924472912692107932306502235139727762433841683800214399560064247001678674179665786855442690870495470737498572597358099071334926784895844566883877641909255500302921821274994315087863768744222896477665033172494425618020501064688144092737738902849703439772461579840128086146678742255282659044534851212929814185849576280083728748980881996497289591350616481609671201487305173434649546788133374012685310305329657126260911161108605252595994538937391556798392258803753769993396880415162736190123545468556209078486860753783259910838845086767868950652534491826062972562134032294825486456599981716496429344951918299761513720588531070154011699028328865815902468007279130234829967082875655766243395378139285734727256761997077886306229266541455552671855645949150088131148626301094904694580433296076059917582561401755483763416731178887141989900304506415362880041626965826464846871317801622733539657832362996042463801608534593024757208942866403614736044040394540871204358381243713823713048853223036035440650705459850259643061039717657038408011801820823094782786272935190173867998258599761567393174012267436532579922697832051837766413632607559002389092703465121561737161678331663859636949391499323373872292645901776439683926661186845122170051879312878186856908744506411254777993097805461469486330021978414276669502760444212152379373686445707559526182044875154595658695881504559405841801572899307943779934356988759246159340191284617937606376945855150074063972840926531734677994253918615918591786617619595994177461789177475259902886932397255766919479419390016323482037422322141759613535866784357117200601792663106260762152985906596784191839919715731081131404875112034324302983340578572290778060761751938213779157361994621744127762171664681406754821496933792480319874702521854175186619725121295975459116090086488528838767683613206291408495824056257710563708177145115795617767424757231118567653027254425963379799612874841636167855422052188523513397651659078552951626198003022898146804730836726384741023819702392148319277492685768882214720986997560928364657323085855772013371175449291461120158520438337439737403084814571264198770508494935130310731199185781156097140742253415065494972420770188658183601938597037844009126862118590852814591154757283619309583803440254482174689135063572953540886444753386910814838244872076134328611569335020553945358350275493725749734002860143302755177116584042459863357572527310152832993833004831124527806466638887182245575421606723559732790560725833083962648174505182120955713076419604352095581632555986509032353953050814801951104495002080048552665428957410815877891935856762670444712481557213081080567572222303394479730885009396446168624273770850836840026687642541026177430117178576678524912710140847367098043411475614883521394014443614717041789519500563073303780012341272346849156364891124116975440268367216707540495470742940989853453269029564552182610707101168720253769361059143283208592857343354425407424743859931210615846439617167211928175708502401055391061576093367572211521962652906786632639140970809822231315579516529622212860757589939652288860528120105590001260145693671362413466775945450673760534136969503975334017190603105001154485277159864562562802160572840711201317727818378643462962168013362573329617448072942136526083870751282668006028215517974841025150097787627837783420439714512891522803800398164369694175810950747538788753901180034400878763261734410555633230353962798289608119118667727427073330912764908575878146492932757038049067742639465866812587500013614027666472251321990340147022103653083001935645166375798508148152943087942098314578280320807582721201198638502528423707770017193193621558538780597968827149848696821789539343099007475898208124739838449510191279515852545832611648762420293175133056412009844659015904566667639592044449764751307517047942935378512754685812977035039708547554223637132245885283491161166668636957772705035871064322860771727042484118880729237496987712774479616657034335196386260425731415139638176631268263939211091857903309881373556092056600429835802032473699404707692231404285188476561123605743647158175029669869020295056706727453239809897252049950779235380341653483479960324861207839533923220242167711726392404001661920959361780358684560785300393005965447149597907911983169273008081663738948730044287176303854627055924546189816357042676244638428164318564722382164863546380672953612861257649305534957767321772318960545304471777460266044200895263786834807613607717213710407128101348341349602377691854134382782480166833215130172467560511652884835784741113082828137374021172616897440339000545728582660298457514461622315992820549392566543541097714815823868151218775882383211590509604663322863535668370398082608283595221858685138822414163845284645469502824419590936590731821952797141079569926023329230121364431261578737804223607277512099412754676047397212752136612407592850915219846955698009074171128743862922072001095551962681717657652321238435291786526462112497838881293451648877179407574664454406220521694728385487882153046973057022487199288816371567727080114059295701719407205759366655967826664184064116653204908715527841610807133573564204351924224002612940982924034670886233019020636150348394657458510491673092190703859040789456379021342607316287163879470520580053997128615117823888785777285724168427636122667168429322564755320637183110791072338891119564252510514097868208012010186943796655325127733434243088660343106471134436874766980343500584818067057767928576604278439342347530832895022099605209650905029807216244821042744193906472625937941386382345455985062649999562756574016970070619850949865973330635965996957365296313769775377961499564207323384010650745785577671947937265757169342180840594560888674132536133440805077210323719862274285541118981306696334465599370515984602285764351392892758242179690125393849235606058081549549674259462841202543253025699536479955616250146830086767363896487093448061936148236509486295790801265458462125997516591805695857910803867350852411554154045786137530814003192665272302768919319662767823252111885096637593996086684532140207521582731650614008060373976903410337056431014783806886295436419330487720678227008823175420080526458067422331386390881177842099877719208628116213181815155273445743234706671945756091832042567388878901759097566753427882363560929534544661379896752260021911924220226389581629506811968321383693651168043575702745034831371038803236465904398917161843342681409343186827499665512683245018940769519123930419131833056684370299024597062398189883452695413048581542340254162401476909490350189070073167783099339724470296358630870149061989795687807012907048613783166952203286623215535205449775595419208813150504775578668118891406109527417073281856407604865069809995529976744129222106169967061710398059884191246600420603068304846741044971562341234423249995297652240050908764424286416692413720297604908816743637372257662366990014265459643665142545336645787693464207322957955484735201981898806175776382208349483473865729780486597908811511222662012211274109862342045796143497384602582400324218454824014267969516385728360009895805755259121328776595202724213021963927229740375488659240968649288263056267178835210597222871267387103777436120957508817752282580000043981281915572437038362515682074824364571417410365637413652773813301859814291743657051300031991028808276896572217419888196650773644431446851190976741615250968558740504889514054289722155853900809750947532879581620144713396386179651330183051000768994987096546920631139155365396230978477270438651576743679707135788874242593016131097213268994858547358744402111368425083965240060196880490585014833981714603858263739769175278167703701638903172697094020145303920359146435050055646336187129259764810019864303492719698070893274113921234476452157291550512355715006060155713083720472944098496956208809176098870665465566768129390748536284591085468994487275069102591362335850368721581607777455830514012131506645142116297737564150820827519045044584613631290596143185514362792167433030416454794692796000431514746990870470537069805213028752925179199285750341790064840814536278456045028361078291684043214136589721059618912715630642866925279359811580327129716202956600968679128238664915311892757961420192658942172963535925202891443061581623602206087459697153589764966206439466665423608036171486118639041485298733524994001202473158479389013825041957827405470049369089462677506812683353018393288404126525436710673410138918222149693523851701232084525081411581754587458556234536458744342271220402211804915054728164966316859424701904178510741537449423322331965564534577239486818432794932841074713912097076906826282344662077250784941876298761481681946786556953211406679189525610127255638467152316412253826776513238196253355229402269273011822110968031665661040469942325040287622187955287865882263065179124555151462249800174750341789441983647641397690630681157126885531738778609855953303942318624947201392695653499339550236655357157150005813943461620390855904848217385736605913483449858772607602773446891136330015316637208098863289026036568141843174058391193349885943898240097245971336934563687742314308833481549207941704741167967727469239878664317137651401834008472883629281511868493360475353902029770372659937787455654584175841584657386539429199684362619734761362308359513115484621881739373579716666426508188602875592925814283608069682974586397799717992783329754476247399748024601325245451658623013641782582761445982298291321968399272046291452430551472620094541583296101486945195035632780803918025969279749915603471575182410556673828023016754922655030762200866251629560771607556557122523500849563603232164285327101855806350745136656082705471661038535631521599085139275504313512132622685172282846114639401776473187747259561161476689786512584738762181206257581897990451792404415557195887516055524418582719858521068940604988955526628473479301460421252717526850042048312899720500782221942108134425839903174271575860160461037078816428786874033796980736995963509299409091743888728256906348599443464525786109242249031337126593371108490558049125287374537494827295078889424210864183753949346542640867312625038792024142256403023564244139126770737788867545762100095636524570513398693301889383996473226659742304527731184907463827111329675141192760600002341605985544152623889524378527116320659588756051243395532269670390930981275167317001061083628647563567710784785443165482331316307387026066873967447048201465855794978433524072639556873101168982907067356460336521530070428237683500708405705331044188060612094816327041876532679056752705276848009562595392212016016095473884606658542023405582438260463698275972421158412898009650011437509614096623606881704320147667915693111400527806398354587582364513950029664852275649090564929157619624954654393055710230464423668593809821159039025548380757172098283101063818347525968910161810264652642092595627481604643367847178935447634382971231985683424932606400367556951854925775518448746776458112330674578412784713021579297951651843892822031271358051877742043888127242831516807758462523306644230944383588699343016844819668442760817827916158634708368120888101154135518839231194216852471910955018620884117648766077289130298464089998926771546186757324974505991160119107584945631475103104474453016873235818189532935785564809387746864732054996017240707943659942208963150541238919839081457253895111682341393356157040806735488966266806899112922089455100276815096461785261271837939239590758808138598469184829452429561636372691362185675441757576235316571929313407493258698069841879033277060990848282434132930153904421329252626629512399894552471103421883884274540424138520720382605888639985821043087116647712833579822816803193057729389595073185203695878106166071089123436957987486344888851583355984048218336411029047942667902367713435457609198516716899358895682331606751123723687774301059437532480761107479317794119549910871197611928758323549026356101747129311583639773305425178426939765182344425965685133664715710853912227838440315917200581790534027298513616892097782137945247238455485739411070236844507898596879816193658614116733399685745553044432180263012249501330497057125382198178080736874322706802746335258195100539822151252916338673264533807892622695055817319947226715131923978779338383871358681220981722554710804963115829582795121683266776750826867488980626702538786295081789991860179103683219328810579564173105291466523939393385858953033765213422179501650546317608469359384166260470373626238676105780603946032691530971434603625255293998372115110848843471190646819124644279857077152078109400205550521935624338253212280976173571418667327133606989214932744468330298982961926204217583061182180072238346664000196922195945083769518796834730508208213262788045453791523571358971068512374416636793358215951052460702855790933345099870768790975340463575295512633336723773055182981496386398564484688431789792191627468288621872067887852873576721344757851561619850364695672629013235839190625039059838508955819565977801079167812693291127120692621951317096108327587994887440200190106131060233191778562931123579085457439774084226203063543407197045477533954591185868490455018866492936702860886013153350837380065982071423101826606982113541793195242479091877790594474788802080153764939193286260169970284669419348656569713186133356450580413335125443796203176874319260469009513979408774676888152968815329500532835390418328413810912135657197210227954149617537996591005433973521754605237374634201941530417601368098837015862819546504945321552807156142765293324828606481885001423675882426804966331823991401954220357757754795731372957027696021508674532140701796715607110042460750070612318212775467890320544506806300845946878238410436493386127165101395422077895676616056827596079977495002386383778042340976521002311064475258107269957328154970512671095688800128256387435565158652251557623514555196233078009687122029823888709823377162680673784390797460559944836434756414516003788672878997930407369570183463393758882025892201265889983281261172715100140236319149463472410407270914371063237511872714225087689893151738550605746402071072538300788879052797427726326566331905284557603620161663528154174446920768336125850842766615037800414425295118699812841457425340960458489758482052247041125574658085021072157706059684391677673935609406004596334522487893231894944434423928667342111618477119696164196882773152176916358620671230096304808258149276916505404254572783104224965904150691600829633088563751308669074445568990129946881719779596891746401931783263416710226012791684799344820568652087597893326940276169736080932541073762421345853494852595939837017663432402618509748021140310939292268151735589709904669925645117461176102184093883993091225410621603550553869872351238303105712583955998534395450096647296953537753927550014083265345408967267502527196169988470172914198161390571375928302840421007199615327266843969120666892892348357495804470249458940787283502147257849993972217212002287717433215160307869934721533086179955048203641661991281240236087618607097659320633804511796533298171039468317430922240374944066742642159827213229434136681588631685938494651252265107701032611544538048652459196907281605847113859013551520123605179944806248481066767239536819218224510437883681361065390517756567949105699380664887272031825735557566633718132823219555910684473973889546489999989662514595779090634514186417544610898777904138695591893730807101280195662750586111314971084215381314661213960134658694004835963483603348669668717049871831053046906496031798861169795319142228969313751895262254227633564643178780471645415071449698954567151248372558522582023752562535911622381339151323069768218578260765054920565980459991270592090195499617929292777356595558746084753737741811531762387821914929258339214306853374014650313604293293572231048723140746239273290206702583775569333704943654018804385381554731715138248852039604541715231816091350104763800940155455369132314421383278261393893617724480300188358469786787767493608193868776556437592127578053939174912534395657074597249492640379212248381192347947913985849883939536636551224307620597562727754140965260509315154124370992346703224433075785264924182527182519862757352508005074137825996203292086889633399989674026681254663534492338093874166747974905665843066496799914350328188582114565482032232152329052100204405739861793158700869169180640075277944816197976737110088955947411916980227682092639336218438521737503420013567294540236332145327211517034840890152600004629880063311529930324126057109140576330469540881373298608927001283807153285326591656149637381132406007878445543813955241286383446306823054029719043326188184067091671056299107685297610805915114043964560407934170587212775696469662547517377603804574434180923444411600205367734611910713510126708275878401061808513394214566404128905785169205416329301043078330473328059057296355401440620835340189695958047254971687306956188196433763184777357766294936422950991405198640811471063546695516220825120264436999877574667171912884561284997375138261060204687646297681902340299330057857722878180231165949569312427327530089392832192554997701016253563222049519099480219486250871820471217066590553288600334179207059286275305082206174617355458513221377870447339415002140305168134651247675943697981284527697949543846858636822980665885095845229590855449466880861089119470200827919951644855279169652584042390131430379510622917958372987247021679101862441117130940237482148518264543110729296180822852552359075125860387890041392872828196065542488595608418242725081070511970871771814346862965328293168841382329432318667782873288650524650966884552768404027778978172083913589844737674183099482793533824763635855957705325873002582489856353098322994550397769443364406604390184484199199312797045619840522826292367950864473802726035957484439059208398365711336145865814914736961937388478226517745017827603397232607292487933820563592504022213595770379431711334687826610319021930251459272617212311187141557459238782380675397832843297738925489030078551076497762906276951909982150420706792585144611170215059588104894774740199365280880981631472260347724053183598735172807239137019439119931560792421648429848844916140342706572753368799280243054787833455451611477052199016839002588686859913428437280399324263635783609265635339187953295313734934303018013683970502119318305218064864749696488204271828534725741638293295346990170844314751791131936991055622271776998514633128962534520844773249661498602652319633593680863981057324299451092753322895523750483328231591988609610701032853576043785027912513396112595162999428375242204562442347776743696688054252694499089637808222723757388131464371743120599920885649886034171150233537436116319140438821329442538443047843991664668195169122846562743507570142706138789128796121993105991776791095654689758086476758833821809615271421629345257275260067519547789258119868237673374516161984370604071676111772984969216653618151469997335564513707094744270759921827476854703030487119791160414267162735495486035739269883598416030394649697037901647547935712901436749924499086522588907223126122354573240688870469425929137936228593146387026981937239888021392098467030575049715426685521483470559292988455574478210787530124377401318656821037526822741891808780913404324951415749295019906259433741084092593517780103550223309882803048819620719977021225392017860210573510947140307015152412787440390383852021308626926309739801527937916995641150436576243708346311173549168033544775960991825784937966561508364053219427958236820451336940864779107997091536975595474569878349377940042965131639862591807334127427541899793787973097586779066306948205753722252370014511172501417055168000158673667727242150664574428803980520232602627634260211227098136885862995874437266894203817282251959107114900944975931361243351398103240579984445852438678782784945963956207022206077566067079107600978375917834051283766891179896068317737447787736156375102896110876373661115814608269771835636735453260946274906986584040882185549299465040736788157129920517277855757100629745097528155546340689934931332929817121395021010137892992405958911736059282315955993110534291736415716828602342479293406816770318887388357444431780838335141392842932343427203422242434830740116900994074008112653206330675110776597103158839289023808690596552953103728119811019876040402989348117614926817616747852690163548680126489215133992268741007953426275290828901600810115041210064682072018990838402458170975923721479379032801677300822625111697572927900354274363618040953806615516069253466185946489344945126775539406654330085804919485222513475117798148128065363537897983147305246309029186195274779999042019083767230893610916727768641328389980305771288864649777108901888621139270450609150516406287179402896389833918386763542432097632993296386647088867580150061161934207449235688747216033397615445524619048746116753368623105013444187108564453005994844412295546569245530140622255353248725787154092302895084897115179309721129985784279845632466661036365087888114082447813948209165457589384320886654546797209090144935790804078414383297570445048528527667976808276214978941415595652532128969549422653316752451059488546933894567913455906310603782267750214574806512350597835889675785115523552334415420513878393694978775450004222011723096335799978748077429690611185278896142390529651714198363835592914908538826084841055726407015150966767595962442467946121689324036464674719716783257985538731749955853572815758164404683419922374588328467577387038190354920122849825133548430348810382493030315124880002197757121583422099976716605502838339259731131650911669517163184167072206901887540810855833469130297134094288925543337558608105898402518230303025373920170415650832758301791883040006246382428471869158143843091812897651799679430310798956992212303272374672916609091743376863749037146165723779724332837577282483347908324143499602352703058951733489432916343050753644696921465397928025123881776011668425195157724553541195601254149542483630617862126554627389741815414683288133721697558155945955074538770980650781525601043091982607570413012931905839430471441309056489655565765892308069726912997111840383611362021597587169340521385218139084019528198461104654360955716315665426380322558277056262521380726482490624231089252630890173935308722385530030214486872530800733057467092536269344565883080156010235120605434984129660439463255044000063873860447535450106765061304327686750932839936574542590943100835536930226294119944067430741006693577976960994488059032348486855433042161076591650620458337721531611356389584231938994495449028777366095864671624058797775361174218185890960627613512738750320738404990885060060566619809627873672260275918473444640305806021921251325216901042178470585737063347881669942525602289947401988993349869647394289694670336493298729203627777465442389598699648576322154085497414078638925314328490149741560542783269415490723504092393289290067623540046204036875376966722592653981254798515736372695019474178367118437184344715293370232368440820738502710685419570678986736176817222699219295983098899669082567401916868635875888948029100133538804382553243329253039027155202728552304032985407054805268785319038885090848928997477036498046858001366844761754568773925227427799177304996357029268298523872785427817378743174268999062586448323247091574194799015323937256182431420406974246805415474179340178366520716662506406235577686754767337536377197498054013644161512880021972036828023863417326254446961756611095165197051927832153761830208258466580333898612584631549369486994559524181587587596516058307539085108403206574229337993615752384711971138561011492519141894428657529836501034800821661893292352769327417586250397300062085299135077636746503961075169909173551353258505358806004043645689690200619855092962397271085578703564115281021199668117148395331122749972156459914383330679132801672188420555288003965795199542249973896174201107688186733230696148928235916875690353164187852927280744719066908262599576828375965386093583661804738352335974887141838305452233364080892485200761303762376047338506857202289135080693624165830832664477807528901164374869375351952574916160179928305607355573701333770557629025924385084835500411889291607528689453168969982815410853486458332222529239603956594789546697224886082900074686493570287642114293856213867933015204163880209862731934621773189605466985468716074004090252244075620599410130701117433705703089173258778276933570754749885546897292193585412952734041937201933195576606698050636203706550809564975726723564512105775635002617386212942840791787449156357013673733404537504737331599105307853679763496499661722400801173365015088604759563793799936041812762954861399440792144713857386348039560001291114682705664055871477952786177672053892143982432142452614714254850568357855178617228996348303590188070804215676321864746421917544650305009965945240544633172846863733010014893587605514823313963041926790066090301589186715764342903246772659339820163973134177587626232949935100271016608454616667376273129977068614791566611737969402566987746392042223810343481422315241104725323221583924982539874385640905666770813465995955278881640378598002725243954635531379111745438568080334527802366261064379344225832173253426201101259436368325939633067780160429831610467826817073605901898784861258458600445788537504306407258753494125058420063705025597228082002603771090447768125514846715963308927462491653795942006951296571448227094842636928645839941695826738217762367301678382456305661261444698718895278581262481144679807222467857875984637786082146510996903555725449782372110568964288286164050357193352344199337336639819666462641310835412895201005511189350885154877325456182165163454570027959896381872371346058670058946626684463534512861908593984736663302442972412998526639654084656644655987014091814875232361022886342984857280234177766806024815256947973631387275956538904672964028024316927168729108676688622294701406121830359222677730908946879569625837595301570555184052406362378514242568111989220041761771486435016376841282445813520751137761853646045372489845777211895660148652339878905428386111543136217356221545354986083976943691517690086701883283806830220697911252244877000152030233560421452464484087501413164184682871573966443237165886503749041718517061006068793154281735889374166518402854387792415294189798987546087212809037167733891609956245387215469478218395583123394008404776748480383777798547425817922546125800144889555118589759360609436355602139795127125008429878430750489735093370799573599223111824323838273204927046326814926478426588037781143940494115758146836752907116912596846264272967114062089751800518345208031406054507593894113108394657789659109544219646256656359014419919010246705824964032172351431307193030689619520656144334773709983887336032530266897536111040451612977469167236784044168643651538945864650139623255101404632935282616029769105828806900363724751894522578172639174446569619845532507856817860673195995638012607483232637281945281414685567700588291527193208126767383207181081030823044624947108988823519769590024464261098872964728867382578750597397005851589860450971846199287721768990766457315880550704520859750442293394213984261966686882960261191437208973476545321364462267470867058745947024383863584950335508990364915136984945913407743096352605291246702566017984517855496003270780472154368646475788609443027275043498731621980130057181602459277850759206386652510633830368421871339289529974446765189511207424509514415357060205422826171343492818487631547340038120989131809144950603450492610326091486919344055197398962271495515049735643178799366019636123531499332013883431216843217954675344405259153249548330605826793778788774720430235207760045411921691799457507561500160574351431536873949386435439989748676825286465169396890500398015384433277093657354779654751578604136996663375831947158000976257850996259520353708330563007210894611443653661928274507948845227732576749057310830330167481851922027960946716962428876483002059749650302741695345012983037388817997223087120015252595689358343956949653777547974516609250725912010657290570976495886426175956617389896039483977244765339633368725349858723964156403948569347865853575173220211428097705688719505620265704097769736114580744837916463872107470548839238282381055054546826125487667745075453982524788939798423513660685069898010191449355314862364264862226853912747432575996152270084481544864486307998426097925271783288529895531242425819588772738190464636984240341727266438494082684862713776475498331913685004720422376038709330843418884594320935648455104021193626087270752005724981054601692930404020957855266397676235646650228712180431041669852616170052667570791065065172565094492484314318048041016947139996662045532590091562949592027465682090729500746154807931237349608328549713200481502622347632735501266333209926865423372952068668691005171138321991344160045837896858410368795862128563150782626387021243986255511538933129448918241019490160808938311743376242751947164310335364160982571118267400710404604811620340987357599068618488729649541136210774792773239732828702956829847033625174236732156884124988134780734279895255886271034886931067135912030306088605240719016562753581894936412350547815824678634274844777872384383155679797436386808578320412448364358618229142771802411000376250841068214011052714606495266510577321682922755134535137832822532389813974379158315037069223522707248364567725451739747966538261323345530810791778966384850153096314484083932682706111782659488056275587932177890354157323068952136405621908879786683773290989212279069937044211138366702690866799681870224989171952959513248612170277535519391886261849341255301983182144213125490238539842473501575687555925025171138295066752476014190878891109076703348424127505914572382638132804955061772583527201995721505792835038693749101864244945000785233320732610169064804251134595852720932440327869356480293030071619420659283664137753245926725687090020430721866378810735476785223047759450230019747973398353383776096791069831737294005461464010294652320192206874457943105948555837649651702731961563749337105373528695808558194009367179862442611350299443158066582571745832984916115841972474932377143641922124488717366265801113205322169061712232391763292969409752688245589140973773328617843676752258719712087927439865099723281261663646390452904904708670429973680454833152944211076298244923891159993952982481703122365643820028881508564338252163316611488686332260106940666436293239965502342513288444737382611977752270614310070725050187313265865397814609295029940747505491862048766770522176437196813371217242516144890256705632414176293956244477237523643552131772460825723050175425948391193234492458716259477596203657205336385989215487163555821978561501199018816432412251868893238263981977988185178944297600809364514253221140080262246199498531526649593940800803841366666346644736289731239086117682916479731301856001372689199366094362955137679144445233889984674954252510781614042752889793026939114566789207425495937047897442610942640350916451284340517912646960608661299842502711602418732886068650536227453079984086304080924215415736500616880313541536383455976978352338783233609325199019244964810510471070960913686511475162137215641226514250018798638308550149716765366581706762427801666882479481642933960960712861986732635732682563449713838408765714300955102987064347998346278478609323046137878263919646019060702185696885785893018039512545484354032629090780265610673761457157313392922496544141231482113115054889235046134415637886806414422250879467605040428052908120172941307965122629546938996936552677142174036014401404007035471583868569020024339872398321469529597898862901921695036274056032629737904765726263619560702645415407594154832610581921787260839583913618410693155519925276743023211798383137496947062993475636877213893664469336982550138730239484748731066876561093662774604328299181080305050780140249844680915898471904999658930868370171481515619197828412532934559981231821802810685045079734853072497738182950795524560531255731136555825614898932490887130179829096407699010549668382296189237058517965215721862491864153678273584310294551664886175223578031066893556071702695070575622020104513479269534064758052842897397321739508563093307268762676754255515208131178208449881696976172772430157062627689264120982102772872072430623130472611965623055244525706865463137409457545022520718323678136290755268394882461092556957994540239660015481207468771578553909464221344973939054827988514763827401641411199602434149352666300389791312197940282884704873953136503099246850260816206504907459254297718092299656607454348055959238357157524789285131993281849036316627413352509368844743032322671758371106962896430291533762567857421664904249134868708848893696206304129032067363335507900565526486906349834500022408071637141487392916793931641275447409013330894373851445582752225846175151994547848399192879382229232000272141148664846020680256954344795014185085893478762523397443709122727891538154010808228704821396462986178064818672793519530887913457216310720976888483789056071994299910339560163464358566518565931754741739826143305734334092610027620184109855441143303756126204099449302121025841708173451739071964477551021012936034207790220796460017694191348960220597296887791139948580793287762335760861551556682224006429952802336070092853396683035339053194380641035012935796049293574956296977576412456970006835006223654716087182408222719622061851696743981095955880352868974765179611592651835601578493600326819835835942104965895736675526499956986569892018840824734062439801521816495256358818880493336091251309152012373922731671062225304897524668084139199783128735821233400725932874856165978735111094872083396288761854748577872197568798993121552948771046235010508673653564643703459900459604277453884119674440606658379652141200643537546143572401327655538004888968050282796159267737597336847687508037590715541698010117823997696610695190125600412864196704623034472138769173166800100714503305468772482401602593459114078351852792773579929741108675660704347827902174565072435986958778534206248103044469766618098937096604438862683398249438907679394151161584372368786105941375256846485894753369613663119894205151760273789129680215718179869547602420969035291031854158433768692502516862183539953882947859462810816693477948014174385292700336140498132084050241051560513751513807960104613748546324922184525521812034851833813324471324881720618602693709956209347591957087593837857049031353864793943805031956228311606856974322668618593994397334709901900540132289576722593026768450827846677584932889116088895975386516688800878438752068121677082370743289547134545887769187089598777275327258250132679737030051483686229048552011529622739143560169501959928084304084492763812277535420426362294880658933612355459241174856313823706838056895447003347207294154557512722253407936135208876431773470287438349303662770609927357056274050455856887086059523865277584218230592712385727335137001380842443365295894637010223829054220134798030207268104987939192891486109888365490248433812702267689453954300831107603994926930035771991653018545484392524343283203362172273061272990800764303369724949887072061051220526494263206491899146046715097466351080885357454267442664192951888219653605462503380855942726082324221033738695474975450318741995967922608750133947661450506507318424145051867139263958831425245232730472955845662596609978142256562432510700638301764471081767718696077181101722421350664811400997659676430191566105157394526684926407744249391902127005144286916038900328152669902672349425899124166822186325338177025744934157527551835707797537435333153437613553778902374994276466535918165507192517687650844384202531187957862416904232763690868231193637622415876228932774947963921884695567950311803090015836659172049115128222381895197303674107425116712371512480180411738670920462127369668188513666338890955674001992373282520718300201850882274027347579246675821786903655936657859127650105931333231372395436499179577947482800062997104183800730884629914895474026325088931725643246623918380319072410153511671989466474841138123187058040122844803525819095383995414139067897749605932159998696482154987493241274407776608673956730933456101233067776216831669943221310799516704646999626430996430585981553457365778246393325619040483229643396818833136137694643835080750887407011044812809533739282308289828398965226885204353486479737837275972082864283589869294688178693239580414472865897911495213977698083017320028760393534809258265415891271954868851628860342400607295888394193551027034755104697107712186431433086830219580094332952774706684857989319563099976333451116327056449911018140334277483970816628867908896312324756568337411070728454262847824107215979313341359398984860184163655887589207769521547812513719753252900250649414449216862905558357316147450352366271642328139878960769993865834687446521137290556874940374782004455406482836874281657548740878476067176990230595964140381677761979400059003486189737624972983458660652144779785678481712500719668494211353874871310210600887334894800141394510289457924257638271747978621849780783093902043840467479504934681854003065866398686600896068371481599667286785495316706557358179337557422611632049912014717243340188229313475228067609676176075976948282785352894373954516981280239240884006222450104211709975846139119049307690873600176991918545200542489049974924958887628168800761528057473075957179189840921780876774142283521639871678467286989679130055208417720025470005701091136386280642749920823555598042029992151113301581493238016983303556395466893137975322366463736526272401374212948394385721762829547347592686068185852617162241811719028165141004411169848448481302825115982665434092418036847511957875554337667182727279832685431765581038326330271179248852482618783803091807666770730427090938028445788356689550214572675078515752102206567686068418521037398977672804338236825335495057510394358410084452706488648788321836854473998559137597323000953585322715020697715956314978990691119344838866381636594396977694707090287451808432712372799852749689275491861211030372397937403908154751744844853796577876627199837760305931429082914153569145261936819807879383848755042350820017539095917893167890405409411160255956501820998324188930184973859707694524985179489766016158010668605688546066501178109425241208997869688549755332985888314127087349144856799253135050606640464623809446531198805616275961272833406740324523973845863241749634945887192198816176698089604873582675107461514048853233813703858324944886742745782566100203685620556278056974860957071894569316988769074811997193530187983881771370785732459885066185463727890313011581793890124472855397471490300269662296587516242844751381770552068868716761752354882437924747087161440466635047991340730030675137406300566524039226691097433296175712821472536320312788394733153971978475214299793944945790291567910413893258958601153722309133670735559197170873998492600323804485365287864508709247569393451803437214745110644806417509128050705709061984697723944336572823849599997750004289185467932017753156404779792793601256740293411931481474545825149089814697161242781488592235966140800258628738740970802194230257431578625314666821923614920012722782588803027399050054906622411612827935477090264737559067092556095526923299978298414173614081016090467266608368559824695227779163305864183655803782953307622228087497362341805698903115770927914731285910858060193534300001924291350344090546102035854714900839895383833282073308778030604122236040735978267247556667829721014564191363020555652220030571768309622389642834927048133265217934563745608197198566000082342078057438516272100703994532058258407173681147279683692322507409307426848224311942352562083835082569826675398409474130700294908967653085808796290762280092212340565066621895394619006907231511238969172869047064458261394796193450347025485062537518068845624860799646857821775734736480298115506104849150613555918236442688336295128845073204469006915244555571381503219166626921208717576921042302529390360063037915205462094789714797164351038661885763848210722932392801422437380246199680396102557712893200465433311776755461459950942632437308514055220402499733605561546517873482349774323070460144156409976484226376744756407545850918482924182044542919866624757451015947001842949736693085657277924472587698465011320615300964537137933898023233448557274684929203360732910480717990638238842930344741944981357113335107876965900138656615366948027592003266942689506575798252717587514961650873670104156234209653610729761796891340052038165889264943789036915477941877940865807281935477636686884757495013368314869518492150054825290525548610051899989223725496652133645716707093304567968601084224412653251627171531414129823085680427450053827022495886741734684169523862932426473247486649835147503723685042888636851106963074152616137305023082044433412266497400522442479137728112698120901170039593322036398542229774453237843404411061243076055737145947181438982507999319591631963990385309302168306664252947685588740766314071664477880026584856135182948786648403816057093584122778516627728240137305597488222557267346602876433690680118525344382022707975835743535053422565609285657266299670427433627853090574615010560350377092518470482062704605530617541485852579104281699693659492197685059421697360557666592372560626032083024258632060182884973698063531841042873832555125198639457616701913673976950637515575386168644412169672421119793848366101009017628036372377275557982063200350890455055866668010465235503545031953630461088636843696675330246792439879693344546541825843561514635178462985075846491380518190263059526660768444216135843780464261188443685763947631532291841314636529232352118985307208253360977009269818993588070123243268965489728671675631142944548130303367221960488451116812643759654664123670324830152024050251612474819486010558991368111907694170429652658842525960125997655290319734166734508616253586402396858125893351795727291112065219134688147337249217016356230502786836631993196328551272803742769912387225801305175666999326967542484220602413797040731450624779150902380211831126468437141200979123014475757942048978715428273330465304957588899426738168567932490029635850264718926044151150327242511409032246772056525643819007726948324081812652548885136020046771206311486545512670361526180335676711965491286047675736718840349603273773374457894976102838208439694264112399188252315735321269736987745772978694313907534089596811514257410009185202693609756909238958177514069331304508223066703658486006766214849524359540716319351746337621853186892045399750829932247059075966618665697205185603678238739200710930534465079833781573579669759687373904377492962491950856561121447562860203146033961083950517695559761405393781985069732029984056780808349322644289441357843229479100555233753074631966342516332058455961593445709984644794787342739545787155775809784150214652704692095610739116760355928041167347609335262752898918093472352951550458710888813215067009506503371655139793796809676040146508555241306316914659149391949566062597221816347736416829110742916683645451396454416229434910245941610430028153359166452967559016027274465395719826266064794454393538533448303050534751987154292623094530541217254008286052914196005905704705986850782364150490447355807658798887451219896884566087367141222170199780969545772650461288565763001879353201068206471577368159490828307340242009939181760758802550282619121428377128565395452017994863737505489603614816191673941708178877613121616623034141464119280040390567899398516199815358835455098427256319265092674144758454571352697231134587490932696544008417187938932401751718360227810460957446817032821070119283321138185628052397361926479719847878755655109981242045084027202794626040250862684674536183451776811614096492622397909652612868213076885309051497619790784407502938979560890258849260527960070219746334700143098991915746312677667193979886676775221998557295575972305485679714195793080199280023927211057822984439086383472473434501260758738794496003342239326180373419135892077950939023584515222512715503707374514162349931733200293323230819368417260399860377358991594630844658585169453056440060519449730272166841458443403833624211847122676935351040313735579308743295529414668078181813326622580927570961459145682898560306681538230518029995401325780978935429606428288804914497723384091442108116533140943485477844923826011765689096830168434475856827482046164592712451951706343714540638602812568741967177067348763306687425982401100501992384178344974024879348303050567438489667389448276850167822170615672683484855541012817205803223592554678633428058250963202833285811677714014432354433620855680762937607472478777716919445285930596808582453419561138487716877910382696225746150309686947224153131033457150859377092421908801600032065449275337204883204472942165658385892958176037129277616935128597274863975536482959277135686966659240769430366534865521901319394107775276941688172144507048002575179919402417230690166079995811490208367571187929237533637519653618568296548158077090063176184159012174562754778085694568343508149728360481755188698972837869120157701051972134145875236891810696350085029935837620170887607139570470098302681194096997272793341721778482591970983325736542249529688062383318189321312210046612841939953393618276505711698647517304885766369580347236624550044500832003986856805737130651810968307388929491543288072510145718061483581884778407938314661528029424607792476471460749534566491640169536573899100625522408026068219202611618979566945159923503341791697581594939223876331201134081315308462076652639725320370307440519942523925027533262369703841534038972278058655720319003334055323620983836974415632846522137883416582071945408032928715405001348003279992937199105223492311802715864257880858780674700702412921776201779681825521118394433302500794976307936349034990617592844274534390262475599183540885326191273820939664093372742128245975922661645862036875768424931706314986775370615711738095474754404014443442043047193527787503895785874133694982033534881699523203869361629973968812186813561994131119901129384738361279353759940172302120436162483673669629283507803614678453896946473597429816398615186337560728290593990511266502164263717492275417375526925811878923546977233972415003683207811301877500009461971743827584118307643053488637302579509849261814372157528447730508790858046325764192238410990105981861275356891323601228939155216546244387386278267788662901836144398396786354498631128869837963726295220679907414796168424252993260227491527126892248307302593557933135277452824519220323875206327297074693716734948805936652728222816796286649076389974612281362940111888498013279296118575423300028679610784440786394084084249275162536067585788750481871390244896050177265858646363250428668560735833510164132980127415656517390669917638112646359010650321915038727397640931632534573093603456488324532010733602128056690021502805863927598558414728387820968452082641983645032309371148855654487663698338473761827863052463327373499553619398526435849451608008795424347364675632129403146388077073189705784074463772038315192632173001287334584035267887578271453067880058538222872890801262000445222905717375508041325037962490026748805759316834367022909228328808921380879912252889795196536935493141385985256687533853100240636642872744833721593708347672435927483919982912157559917452789525035112859166090600382663764262653915866794784985840186268028171357200090669691154327491512488506713482617127341364618049605653352874908294760987590851729727671728995380888078016952634696048776625103327274617245124698425517547824955221374360580596835742396063350687197402243485547719363860103839841816167903247808214873888170467114392786459059869702575446351403208281733538930333233662102627472226629012412641786849379960053057258307710633054375654189046076750212143371507234236812810572427492464847165629146729783881531831122917363312182008247053363134018448908302316952015748645076955889763522595723659774244238532676687706176556867687301868891224383655018546276458944407186513325297152404417837030766240381855069614627842638021294114229162595813715019257333236303973944248048505700182603940975365413928193410637389222259628043298905269811601465074738850922124954133042047716220720557530613561070062911282629244954058790584777285581918780009706649314949928420691977022460821301308981925068038748754778495996395390278125421311254732622303682268473765900064803463371988069683411977943903657580571018600365780533836355661473940217139065573417166915262809810096364687734647760665949672993440165844488388957155392393844467992132870354789355363822239197091737206665361389989537506716420045217619747406161329031015202443816700639609413729154977979289872895533015266584848183546691219454616658464239182048912315135354850262414879696009658403497025992855108044842363839239170454910465904739447710724507979886727564115924461326470237413870128094131008489228507960924756138025905566273972268128663033818372002500363148103640243643781632846160711150371827606247937078248686031339318855524623643198940480179832383032841484346902128177790153383825368377718450098507259198461800284525571526264961671899489274158375301279872029789945531219975018348839899583468210863233010016319019595405231850895248636044865164252467631997518430494047770579991413530365020790700236786777315447864154909373725724017769905876953836910266927081271993850705028609709387902001249668971028522277690035046803285675514842860678309541108400377020116605168224788742117675474490052534699332055407371556958203687910034618901841721554434238436113567699534480859860705610565943169870458858754658315499761428553809555738264953907560643101266281787555223368349470487617832230990499856973331423532057838800556734157836602445535367381922607654233719408130752019920790624855906319661799324472745537681367924761507526518146256898492717316122780203409947412382832426240558918640724204964192974640640523960767056198274253984095061546126101194168724102209602192661765989888218772585374497802911500548103431363977785282151669248529006101697235830514890807154709407426533346065407985768474587711646615699912366125749782332326421912692721298804324763953877591345848243822939805743655307724225087876225601143915734451329617703900845274369080109757726313883519916176293105317474445122475200962625082097979057276664855447087903423625832164658199600767378857682018964348206700859534572646752808521167905405912775318046601777086453122264292921707230675189801266822955072529534170249000033616297504094896280218091720081067251446639790765635531168408615752276159856776106180582794327413885733396840339775258917431364240848102928703933354925635913231735990126283545843029015894188106405133780374511889552484758436957726337859883616814198806578729256954705545178478957337057109687700948331657473689193161698752211505249619612814067898649777640829523047616861751938082546328725998998758067283844647831829846014055864673245485408366089376942826834341192842332118137812108107828174686360578395176336670263081542072246599012933988587355831604879615224305051587367855432573148648068044989493966504263231289524174262263753830920311311157014990570768032488614370155451984869873346188755010165300276948207818737393157040165858374831741941302365409374476513805169342456934011923881935298977088982648544815841321707355782218071085082940702723970367160901125427145928350115878072225701216540812163763645819033184128692785347866845150059784795061655118486981097609551074465580810961675468080413603253898193239574645627497602138538378063464726368278586180761308503856066004454515884256727653302380437666136141693764190441121598301925916943572875816190839184068896473490276080520972676511720878603649836266179081518754699908087607064374999001426695115623821472001742064422111462670952294734637457194344122252411282136907532777302546426906486144445268132936328189541438102901519287533387434429586198512090557438601842322774672641029574964629705622880474874336353606122455200158223893132614639685668521818288642504653750422235166696154333380872613812036420467864790667979019960586925206918328641629563119762212529639975298767209278110362485432991333887854233356975555927186474379143372174374113378031641254154956303152329459153174318864379485337190682381917263657642605405436444479031598779211086849781280461591396117261102006927213687686348425640062741678369008487862501505184372033356857051809577534067133914573574978398399853723541401345239767685165515001973500135232624589021037315921689012081477939730402091621316440625260378013947453054590710197383442770597596455047419200462998778539115833505624378538598825038817869093453402102693771429764666796988525722523612938039758000639390026195215240633258572956026861248753101070632366958836658684513957739171268071642075244513331982039102516764532682800630997382484775698238439473170763435456542546770686397729276676060463237795967118429324224029049897868754671332354296875828439594398832968118112061968503684388317062025486031304753320933048700903223022367799757784241384030617076232950029100525649116384092336029061061539122981021555219890153507417818857310703538753622487589278961253284502455739648950865291576615685592110749772162806501156368139255245228367438688931033873008320923910146548149115106364825780817665746397454615642119583370001318947960771317690035144088227606853307386067223425308546415525047621976335996230455025717966216469646605976153028077339001421433716362872502100675985293535823982051347024694160692365101004204800607353592300647365356887682796781899850809243310300141150838929322730149220129721889076682655506762387197550132648859755894486850295093539905967985348179869586888304458353043968714625062626019276403679012040053294089714718742394337701460983254565134708480431659261216768394552903836213444824382651564278644290518937774958162348070246343701670392077995912320165320401830044901616777419687049635545771949221140941640262023805413319017109822642456116879639516899493496504136433013725003090677093917546687292504950442100671389278562154343793645029242156247080388784586599644604830713791927872405359194477036486718441759877434588029961927616325653510550244889792907989003716923895139647873351480953429321572761014469853400213919001334750992755438828966032975676203291541498248928246924164316854504397796770832304298152091551604568784463775040602605673544935239329583791818412155000608832228585216163189937172167753924766615571762031328102561885424891854742348940753316879444247020992044005034505207518007358254275548054789190774907178184500872088166304229591509092083551097178950083546199715862829322672363283930544479369891263709691148183888402975261486868802231855829641736350514968345578948909344881643084041646625905692736201166754396555505684213726091481376032868779204082087333169847769874715926429920682267065335769192334680106310469420743569224843576867538534436077405814542798631010551954494749472251100244190603672341726499039585702149505984008352764491858731778745020496149967237670438314070665938250994754745965900206377974843815154399308447891305331844355397979781590094733486587242194386899612119549174307146208864291671552006256961829653341989305343206377317869680333495563027799207637680350394715598158814997850944292317792507071564423374729885128270210793436154653081767347931762148881092115357967424331161547722239672048755539649773927457766680317291220593035387521865277323064335493837093419766655181752244547999751445288391460904227243513914919850650396934671546910861090850692253052406564105841078179107096261255948812676364799479205504447106653880018133119056037731581681178882011902832451693691433294379813109825134164519980187139051656810253306951833001738487372470687245882999563015748749987601978988214732863539188535219034872155235312365043739062008261680080584866268223522017041416766766894626619837203831411483013946360432883347926959578848596528640634963961612330226791883596202569071475876535829464851818249798103144287308317145939890612745731820663479628799214689951013306524554555963020068076707204565491194613509348910126118904695346462167760597065860967965520844391600919026678699481510620609982573494512930106142395240652744045485672058925529099189544565912895580074342045275833705778065209537313273124821472171816077225973145662604399365948902138144663315256376236057059187276184444393649982247491232001016118121562213098876256142574566461533207011100962173448885969450431779319041777502579927642231923962784781674970425157164409733900682630911876216465029624918821640950194541260577955747104518026096780416368469070458819706542243248646836926017329185371395940400175995771389762938875828080093637463358979194353650243770601154766720452431532901494909491821007288665378085341113893644489723520549936974172116671292424863544500765466950921461151043870492039995333202749302321152123812570492328711548415998289937153201868099279744235696153842104534583038969128940411701159065583667715788920369866373666080295880770660455529950280281361646217783826630639278242679167388338923723738614237846376001867567058165327337890428807271009614684263890973867856520737388368167044773044633574703778046599496102817845286009967252813914216518591324047772837223273889749467474894563670887934837697196972705324572999862968910960539236163947436031136968440950676618137171779163752530040935283243859967517430234370534800793117867952739854247215714857752853531184484340989785548796625824938147817731941346738762233418350799044741544067995458476772609820666548396965953603804695170437696643083713483198224350438669176521452417674421959518397740978357713634909326621171354285338086337402208109979662102522199010465375607425551198770816057507029351222104753337364388536027267377175818393393608753621213761564592099480840331754076123685070919316549124105819491095816800926800174823054135476198876062680394410816367046701547888366087409139401199973793141296289303144005796247569190779164138004266629755982992922499653447610593810323007036714821143924844214324771356853533690829936949375729632502797177854930345162541637731987025401447379721231914521840195550794424665300662241568732400381715087696775893424383148644040121603772866602462936328908616050878813037851010046883414253254262505282943498974287899627905011178266231166197521681281425986540597125259024523531359475854301152703693569651798459206060352529273999389217554638222885218728878373718214898727826639935082604137399474235537057275288134797852984898963616987538284106992958428839140291024828381888705090346107823092927292068461177742453753113697920443995261350400109613218239111213536029214745029033294711909114750361415026392583511677525760557280677423833462070757324935936419769862271543845109684348143953160097205235935266417093750575506882056914126086894601561172276259276576530371453877930016164352940071265490164309762479803295537312994230991126187081827924407084272405373706996303263772948726396225885606531315960860777831944040702462081662495702797054586825946333292635755489166813753863139586545438460270221842318019106720421362036176143908562921923478141735924307391096562193573732457137029403076328415075313418070086829878673395225728821099249127383153468582594454727198683505716679318752899289636134827232655286233141765921993590262865725234069688024402500007168582447422544745156016858558227836513090342578450189940482739983651913361231898358867659510979816028010626147616573955862747454759255367562804989485837897797403925387768978223615200960876171361767536311910611292443233886904674063095683542460095746334744638503200740224954718989244230480105470214054921424286719155499690681518000606153109195951419034201302030470988820496570194855621274751658659675325846452360539484306557405406156126804574621535110151955931626791187464276039948609333363547434497766523071430801519896524612675836472090933676012735329212728922598843173395195226719796202785743141791108463637170549141185755334223321238739223709529756737629388030930272922667619120614484212915805357712837771075798709561174744956658403505735366310437337457626768485857665892754601981434969684075786999115513087577975071763392934200423736576518081200466424679259318183865579268742548131198218190724885673401766792679855537713065534915514715497566429852570294992397830445421794911970947186516915462442934370393462075686436201174685770768077175847513697963284786547028344142665764203403388681648511387333622916199295816364204412564936254586124455305282294506239152380323637075097200783652718750691693383889396053942149059813457607374738377148495219474811528977329791299211916743966720718659833684716097897534889870802612839815485075492152902581401620409838001212013983368232281510582136982490924106987030339187329057911670621036906490736171353565242844798653112793179145424870234213656241255477876496016751252951689125215785997907995024996572770372946068354072668875581532194872304793709954324564079487310070880704471036711420532401713362787012073235043835915061017212392123590358269737726332396211097790461864293934421941286325531506294153415729789281049137118621601483369580920661185372429271757257704064302458961692699619181879604780473041421530232642251093632748728570793691670973283561780284039709710698055378701870515293702544491295191092552945257795759803091311421137384402076518296058441503079084146352936188868807146382164393689938605739014214319797370560598476349514404839755794492976938644700178853431643288210088355692536076266171177202236665924754481881441327797076512099503670401688673547057112477557832445217407009929559129594216183563646840051877323320611064749963859092979726574987171794840354255318928969804308202414105580147854656930552361862124580156858925787313916831453825988499245429088148333373926857059792754259028588236424024956785920267129950637866107503775897375901173112415113005395207977478881869074108123084958299325629876989589280140965110390492371195013237625073846008598053777081267366562730524839334205462327613799817701665065549898051700571955247298728169082376407622473051920693767544962252500649265950587516104657983637595760724341744537916768515431307232462862027536078293712436233347502939326954550536407000129161342619577732955295334712250036280505459281179402659356759850013530290070143631688183418188303655196095240537807976970930399095579419611107306908297577192647683114602683864381936153897012457307875389623798001153768997513945299110163048323459382969131737713049530291590229118623504644884666525517235317468105667516926260317792581413305754626424807232313654572034821136949097790213888916524657639177886275615794394247395680131540229859224500870949985315876690144924641922495220677112414491139433898112059121708296113813314356824558346314012777709350126713731891111613113188553828440343533354407307976989464318177168668186789716529631970040471374476880158608040561356818947649035170939950871387215967577982566866892321756808681575798120804925736910883962376942842956616779309367698867772884792708566730586604543322104470294003938182295788367980456609600194451235898432934753539877835573796501801405600571996031796388879399562206881816327908992944685502757542452183039859780430321394132051286632422198019287827626888581739693017608688019106686071207937267608101595037682281583679183473018185370064334512170570818489793777584945481208187189348470030724502320372104809693762432036884420083269028184406927207282684108515244937172722493905988752694775727064585058786915738647044248960047588725523367267316423651291662208162106241377003492517789826465012712250194819887536933255297815401080557379270217018234804576155516953600692085568580843019059245635529057697907450181123696840221441816901099861875924957207094326678122762670875365302020114656405721203446647395880490605807833205826283506343908207171292213696174841738268905944475433604545404647370655040663323373497625958514031819449342703063826399861780528625567087305901119712469880826297858618254847198057719577624340582311304507751823655868816286878722289361925648206626471048273854925763609792877378389625637665512993834054150563388716479818865379738613226626542774221750563965164942235731361684834714501024242034927018721433066664733463842508858767049044220606114624612471972847025777904992076620982399755179711571636674585223290663295218283195263913488571350880202514626024299344753584734649840227246409182510353613214157632132259321597374972526591118605633730491149438786825891853248743439416721638127517952107232794005810184718486452494372643720527773238375673103249184923207358275893811476450470747176234442645036420007704242165546172771351703293796526038745652747874599827201218380404004542816229692130024508781028423107643178148462091567797134569153728123071628093169836803483353586437544932120801656285210222447930539326123612678274217485682230951541620721507892572326711225672591249480262809593682274115057990516526026215368768059575280814440692744360605857279839933284501048146442717278573842072469627677243046424596035822151576278213736715898271737682556060481047323206969987363110625554980372258854752064225181078717681241309277670023668486708145625383818655856052324142610904297796556072588588791067091691707035304176518674817721724616697899876440583617424466114683867702400972001977541620162531273787944522900672609928143052800789548689451910388760447550975015221585084404704561987971776897297221272659173368025302809481161318027635368945032651631322318376446429093607268330279203459925318775677523831554497042605581157901450258821977400397567385979227251844636847606011877729634725184785303178299954255332240456120689793491046246805308855753030460806901371933861940925374613682449322322893711075097477774416296109999607620410873198053028316853840598761637189262513956541102166756276928750079367852717814769012744187195578070687899323401380995616525587952392044124850482336653361180073244382927272012985802521750727423828885883783069795903031835773521666329258022154182735662391657683924805868547812370133007262920879550030514381535091286907822563036567467071073534700163951017916457280845557987782850857608042093508261109205853943369605322182769123019712109560120491846988632172647117412196200337351754298340013505353564985053546397134682609348482567705703927330970655037021730174504629985484911137583446932846127575512676306698868213726759589633694809738227789619738604982934751684290780929545707722443140414750076395572113468579990551144950756552165194461543376498742723007762545534549517933199796582002418710909759696205124442295921796822108976981582676009030274344819482796829183856792629225789301256995070486827051010021629777908190190297938960218830323487454553326801705525420683722440670682487281907252735133865878850964284846916886387593286396286990106465264879641601736158713863056650392728570690719875411132661680705889385146125810998417110929519677116431313334138475554790898998830454010203506353093593225796195062771333803454881011422032838032998114339717961234192419289433843535523596762981727939503854666972132777296330208294228973116997205678750415231593305042189812389999513483633240213251603014681124776467813037516250164716153900679095402225316972915177534852067273597744980604163929297015660069923751468710831827639365382387722486875882647040968579377204919141452518715014661436447099888533245733328270203550823381996262987395220231309484106310514747609897705104687727855996479394161236132119929536025553248097419591897541754385286456014851511371325503679463262394082467627309965894271104162668954088637671030967465732747593379950953432887116153526416071678604078191176626217675130071280484833324054661874759956945826751077551737341517559531594479582950310242804919697608649689437595099383826437630358456216848684626076701776018741828872335109144346104998444255969317876315291356403331089738921793649509503207758278432557449672049929818410378457979346671450474657353518668114368727669336753058393595787547439397635845150722707040514378278828210428379068216851719770394793097177717676063181147077559502762792824676224487828345455547085353721626325380001558924555230842597368941563931315889676002503246619875243056591119424723468173182595699732961477991487265091905613860627723262499425458713665775948127587750618763415129159677768608538353910394466491383908119341601036671340168153667520684144498448684079966809470706223594180719534031636028598639071912760823687911889220060243509057094838255598923061991497827329308001395675897720762440103384262806332685650545606664771768506771507920756366008172413247676587396912790773696840390548657594080938886742554849706612660546280378566606642498982480119328774947425986945684753033190507386479332075690055389303055066798217513755435451113955317540579201470923250091990499928821881658787070130068341184397345679277155500268414590338120342019058685282653234937483540664353073072185248907077085108248220414646580062724920495082823063591574233749281345879379958832130202286751449825693358940226145257297027493977855052939721015307132131474474455755331572015275482851216693746910054241449230980733476224439113630693097534651501792929368154214019770953173154577887205017350918905236976852442662861411021691701436721272489237385965340274386031731251198644924788655154734429228040833568222201607824256616667902822995446657978500807370380662949742674466382230172037723504985755085523048457042044589013562615663382193467881166977172048771717991402614180336895143358607206125735477398930724940303714568782753498437238540271064069558044297516576033257968164414411791639181017249402365734889766105440049235942410314438493351715353906270019270093369826567176203224468033318874562332475711911354630105153306126805111228350920795389444457230223787429127926443136342821688877092760229165928442857262100681877985740273692634838410766377100255164169144776830220684214771296453132704204897691470324067641257416418913183710887950200211216456744625968953011102569143991731903543372444936244991710785829210210432475741201076164881950369384219234781857124675883930883352888441256528917268813968567392387814426888330281661834353432866543141793888881503351226029807516825903877938609864181488121560695460222048989892512016380063301257505122415403918256310428015690513595510803880459406257677914322530008917181271378647997299426699835764919424176567066494339890623602580615499501001041481465868843185910861200922309278174234754363041859155335297034794788798632173668720160337413699209036244289290646264938016069918596181413179572740139741294489700754784984254489997930215806451844530085214225648716103732813226600906212469581793962638602860500318133555929403805766532013727345661268190972165874391644433772486966661439984779939094721092011217162036682596477339623702653435456220834220181156912396969561211927439680712683265099513178254786408752466060546803943570425572357882561171343585227086824262963444716692540498107690121001638538863971975373562286979322373910579982625141245403466537199283111268397613458313795614740980061022634802243360530472136645737097294289148459376717505411768130912594634094891098089064507837082693630950306667896184579751332164307316627131046986459626215342352810506188868265437706024540883694132751002265107249750244097555252747920514010666805065320497773288363447070595116026726331500095917375710531946014399138755854560361388362699679683585886718560463467131762406772120001121903609858406466721512630447214943497421904050492859924854069558265821618077544215366151515731645288615531982881248999984351762664481866891471545429532312129133271085594942495195954757794760872541160889094595800223985852520496388078189695754872221689045327311443748846091158214052833271674024280160633506138631271390397391730787913079619229160997129625436115434357072580164100695407802013144329481031381440352719727921199463778088650135101662867322786342488707920336435941195630581607685078163275727265315215158759791537008159223690108793574181561771034932461319213290238692882007649250939664062044878345839811656294900615706114799778095669705498996259753572662229872835064515423212290569049505750069649308515572796441886200869559679619211422105440970666040186041675165543597703046968639930616053049863490754168370198589932213256377392195464352367097036530955700909998244824870034652149609934594171791116648818915051965231769089020242345298248764764764979282376899575365201550794613680062696157035264531632980736647898744648331656082629583147158482289641671388157891862709853687576994854865998585506319510755086428270340652333791541074467165245410829113114149591596091554512168689412124320170712895799383099572022804552496530604675618684016496928739847491049608425628200957486820364636738689226870627953556761525651368396152599296276641576569783253310420354870572060983418928308773503359743562242834929026032838269883283568505011309018103427402203837837631051477108831308294375723934704411753491587751667795238110417363063218450415764366560993373578271154800177218019378051029580087201697659251524050190149797619940434742946464031881054127002785920668412056613062047166512456971195395506182239555345664738235477782222109287056849489002987293521635621053580891572059173076012398271536697226589203387751951079567228538771608000964975192597657845814267076028094246574439531515261289016562434489074309456535924921352661536834427942885648065763626059981071761605994543069030539890943808310017510424681873071177360522710733067795702914995858691370679512224456813330152509184909439389044773350204645725291520002881738303860583018452992879555216674971069696273190787820921440096712993447485384912231361875394326980094296442663212540791396640771169711220201922125486803373296669831044171577040351692568365276594882683996508758837458356881389614490581059406305925981790558829909926378569169819021023059395573204313429221915172045670774660565598413317746352603050556107170793978586089376772738356960556910633607059370874598726184636427559887753353070847207251375014739733437643008093087671754308927288288514267987851507017698156426149077119157662658998027172973320859617453257175239316150695118660573029222331443856656227927514999169778671028110628496761700898184608637336773945159344007617563988548340131744452108812180138089042016538217258174773160035334545108105597472740147886614944531935248945683949510944614337855698733339440781496157671484110971944517332886320231530390398683324865308197666335715975664579026740409745103835328557678577038510227824134649644557510591834291407485096565311980087843033871763682761527438815978592379200730751901923988604751967966186480072967886403837016883423252668717499519718665360377434918824450004478185149821944880783195803088439467153891493997732647515914531245426750016852519384141132150178168920704893551253599199393890929872718698482250896068671408856373337260777790968969261002470486703516888856142277935146203141326222658625467389871377710740287851945905816472142857709784106157314387512536018432484425566137681192564509301584158545962570111974239019540389113774878010870123241478071365364170062526051418396795408792285738932904861650389649904619767992296483745404970426889844442412321013012258522437891732684822851690301939955785666834301320835243042012613174623507413959500708521826032885995718762282054166373807861367058940509294262707148892399416163066310134049082088958583272545524853979998090367471159997210303453004253224028077136250414599471986103907331493763532637367248322375267013300626809124881225903873389107974295439798528174287870928240703678333164026991464256870644262352737772440108004412146520380949043761273844953298190085566970407326158164105926361168199139778028866611081108074760381468494908474012033708973804237798249445357752181139777405742013669973994734197203315222220231417595802623181678922206432584105925110636505063515058330892202715900192885495818263029605892867532681398990367591601381402798414478050723487448999478482003041344954263412368479462408645345877764273766330619227300155082948621125630537581349835241301658495681506794853672124133259234041745660717801936481244227931238821227962868337511910778433339940775408534811263791002237237240377554236897612883301808442181890415944576865938892505183768691360706241920141454578639850913360606423721421621111026390895479912787345660290721063946888018735402831475131925257570862479601973889664517815681433138348261982590505815214842765413926135518525911332220905153992750740944730058877980790232825116786043507914571067780036860239109699171468150644719735818333909190392149380957939830563588356245358056489996824156283560184493775303905015432304183573759638954580175895027989739437470383682535931307827218402414114163376100311318061447763175305016215288875860132982850844782258891133762876978900438366996701575698070842777152491420097810107883190117346580007361413821998746143131526714936856802795626465451228498042546064338344215079372805862999338595151349156125127877037120685822385730457046577975462292527434600400626771883664083716984954302683519729028749115777566270859290261372823822729126556440780591039044499098725088105203545670657191982134668907332720203073702990859558402404043383202927326429088599073160270830530157244317115216131487373754396181973506343717897053962759937068481267326946696461149095492952017878783833192892919082519713623305642483140892179950428403984127401004021074672746494496063754221162550653656385997999695004434351730087443489984008349522311890168307398269528219552584877985948385824603098392309040548153791037538474966781719124548848836551489318836765238534024468572960579762961814266599264778975938243420130378862313699403225889121905389316989600693171802278842429695207317748910414640910086121159363239579330709652858422383670031997409600782217380534811826568472168184604166538850338527076361862996218333168572890760496839119755462683023683276168484341067378751095933545175744063019828538068090858329498447120562055927084529434938838498432542249780711897319384298663156629354797166302110384377619924864663816277599251434993304989789752373454345898466107008364802507806587356728718928594259367439923399045420309584723573234411372313149423766631498404991485850796081006669733865809948487706406669804944456177296306997179840061295198728875168349638425214170447445886516534944501549496020809337399890491390077000412721997603358250134537709424809661524680520136233406883042875896108266210023481780280754268502152221375475692978500252116661936000325908639845495777851353084098346178182609065583579957581401160678935033331621198605479668597668915746241423670593833096461438626028534570611517632143365793439649444214081209354693507449191345158570857267023358401464484191745664125825810702516244419155454773604780660639514028866057494700709612939914917578828666515081347106456526875787930171599309337481092593727591631740668999365867858494499215575654591377082081546000194227963231100825455136396806850801934548327009215225301281036256358833957832698966301906779953637641403559215739529028630463093047302358604908331181282107437558169894273978173737888472855943519394529161338381699340734594565378130032622830330856599137182939647414635472877007305366214087841469607472747553462733240269938780593799737024834171557187647806689086251929431226728139633773950468581590821612701653291657697536624829350248291777332711570634328294376845397925659694476765042420999033836664884415275452978747062290181219071720351563025785046703953458142821374310389655715315455126439055396941342136842836703599957453411252451318899711411730640428099313401880687390094957256076118622417806610113794521197482934552323644642756626445247255698847539453917688114406305733473202708519196561034503128843379551570684297787234310325179130667366350025684302870696864410883755192563703932145854428693530471648509552033329407355677057214886218084601715752301162992246179188276070451165403060699809391909158139377839642928850273762621030436636290227441873944604405308533919819882412630331506482183430630446645822866370611582865313261754156826831500163053402487868392484276063212350726404138656927518080473307956482485378898709945356765662465295537538160075289857174843070229009286170648735994246691901843037263664932826481953698858927513732972349441684297438278888915635101373576198947185732798603690400461707726212561609215083993200222870593070227008854483553744392190947319630265368656801995607906982658556972276234781022729009731601344274430308970971246366957564619267325152645091445351650103632038694986153633779118599258048821720253075820292819370961642386601075257645193811511001627177083900322025571302583611864156703148740426271393722841760488967363274038695931076799096275254206223442191105828032347592725153976214169480147598013468074176620383675017890703846823803625808541463260234932863414023372777035080987217029863960101768345606533232515862029226897469948150282782427357677908813308068928933879051978269629881532771626657437354396970458942584409725606967433896352573307492235351213555651301388437890495837586559170952646101638739908408305589602043043304199491736345956214428853741576732281775488530177955551170418590851790256813981147267133232299283728566102788700265725408861139253737912716686145647595423444425163102001809789950285899149323139058767234683972564968382860281637018958970235627845599531273543961024479281591062056977008193533331948980830197198785121703286678679114449382527840521098482399606790216543712272512099168027751459821932094005973766479584504193416811660818615601729210936741174521463485427017033872734370210067539562942632558502996761228645072847904537915356035156543447661270306140238885329387436409852006724804892080377058672664625145538178521167103132844989034374435745084744335325748871630330709767478141223240450072122681537189837954224536784689628642330525823836531525629189931556249661219558192180362900561378228893689128519722550902688029500832625376489358539516946785306972645982562373952081698449370568034774182448885776461336611351503456027909453802619248792927857261242409324167741579560676524316251048680268190204675629302588366511013417720450534675577076569739552560180500360176396748975215529058775571984827220920833852684107471532354446836603129379757289382037061366950766632186755777419329197614321727219132220878416497854594813831835451518739793405276381073205972816483444986832200559002937921363492616411704669631825331810409432519278249031758236484572880783417788642369790906901690562383618358633035881410546077517616498640006279949142005438194402152941260072501944778254505490763075446950079974789811757516575447257085265122913678488752779651080377993834937497297119701369035732746035218338855688014057542700029045169469076332701825261539240431534226352986502837299131874665302307493207419187700141623396239211277792066507733778047170204691306794374055939398283280331087195707321515492425234665818483269399532701730639831243818230916714186230885447745036310228911110464547759399592030095109105078510297054631357147507845884403280329619990165891828046677713115220549109244474447571522737831774390888439108389794865081846701714725699203083435037691524109964869577925134205962474898055390572151469274424131666523904073829527086340418796345534942959686870060286742537995298132041606152844558430658693883314722355310331744982692591373036752533038225678081353025362894984629567268771924059831500021416059940067945949071431754807889570193280809236979656960009058772209363428217930166034289460713305546164785263227191007708614150921038457323365505638444345349833208224760133148894628607433301210394503560377343960720824422950632745344761041542320208930674461905628507579434677435064963610160487212107297931010343762643454727861435557298814218872295603228903522924039730181069699514327682185620616309080106272194968607597097012828871561375012246932935003308368198997229443167946792430869324633054534459847788839997487150713833205399550765047597335592801397509580259552698914662330062045819360973665944709271147305373408300085708114204524011311033386549235461961350684594427731020905374652889990234999069274073594613510691599603008838791162505696773303592316370145493275818890989384155085637767079707084418596695726220138513881787213474810855745005479062885151861822721591906459544540062076963697614087414243606353035627366307952451099038849170968244450049091626216775465740653714063287162889828683600441393898647358191740162000454944865019026048964825727618393462127040475556673153881441693125759574452839743583887756040180879092827280896319025166409434091738148809162855895390416265934519090829986373149863267225543457238365394690855390450042907966905245230413382599316992496659968638565360509954809823638549526762646830921615340054341162035124179340372455194630393812884639724669102169582076609746638790542849699998698967087818368624658029288639374746286068024799791263216336677172180988939068647768460888795659819897116236013891529927021381763384707954106625430424525853879126659789041657805388803756809677261598602692725845353861237278441663278623732447838133928527762205126894932104363100878613362811700657514260597384493239783433239711657791079912636044976525843155115188754259735379927165799083669596319688331126639960485970119022527380498673390681148391828759037264997139051410847502529135716542608700885811024947224780429527525419000316230213264879711921735437836494448946388958541279342201654077821102527970340526290511668391080037890825160865329998994395172241316688926388269421115944980550765852493672988229169785147767725738987697328836854743740452602160938214335191629094405692618771006021828417181339598947068722134034061718085471617532129325369404213533084868222233831394682875201387134745454198108613297204964513657514147137346475184760629763172741401449003927314681136451575381016394046775996655649358466174734068075145951917863431271023112940884612716137478970001575742582372064191974655416507914015743018184257341690098323330779130247422993544064902391220780619316429359273984233608727882515827747060413703457505869196238262365718965420680299636782736457233745415754503743791566018254065580702393047235667476370226420986401112855247719511382863090630466873309000328276522042804263890559920006466246963918947245680958801306683216981354520146438398668351304116460435527940542666887660008115797312810660319284511194020735516591937014616331066743078206289031151905358392195894355118036200772096488997682030830576140773308146877089372916460166600903831897737318476668610443251412505127449658002093652182008052546820827221685995077601904405414186491453332159454941648551200540743077251662903729985778003483100831452218391002742789127643667300106942106317210928323578662210199918161035226110957151378890380516345217558457852299257763496506394549217461347057069959209914589017394444259535927958468710057391924877501991233078028960157345106974131918820694676173123170205958248564759652927321495973560274359728510195723075379916066752899456956057375870091370045045007031444706625159378689196705088828528384144664968003287829010346452924682354904411363287263231960252479219426447178144612560899084210550293321721781758216461241174685622718092313356879248053715668274595702701832170901959170131208941915632898087283289061326824816959433787561904496331483214242782027523256625676152664676802426329801686494462075024042904119683044895135536702960204189925169006775166417645892238142882017926403365952886054307209703941534899016487136223533832888283192833798450446625535143472940361748703216641286105255265324778835608129441059204649950777979355124585660949146012049382423394596380274201179169493561551376965051120605086220058876281507853751760402991717191229899189953774888892000842033792543958773162736407995442074814266949314490562536637838950609804902518613420461647022276766562959604890137094338572248826359944802191098455974100886757333149561628865006711526051916646882143186453918434029655834819681730347301196861178920782904505529552163311195627161255895059328756144512627880806452276554762392922936512956557252445382388332659819475336848621786437836027112221462166358936602368622043561137904398314705534525928587606664466233245838123517263473055316712963223542277276126672598371394916099795767612067358269699768065342580520655166073548761558476215253223990351359413112045151841705574223686009816423670762983969171039435826551084045088607514031681933572368138324811064157428508356507138555433935400452195983165458829879109629035174623611901434534617187540169652707738577062565293057398604107873980563049515948962057741388890766265023052765064125677780423215681401431495171974923800468214520856735527941440063519350444731655463645162542935515385100555472700199248115160789370185640975856296067126588376048493101905020016842234144227868398933648602706003356099473022883282365632474562809408200006248044668531133722963957788315328772315690828889620552489784921305205403636971875416531395659346589799896685625929859761404483199108523557805463368038990616620714800411331836051976009615708001732783569467120403676239667980140559826034162564973278375467315219923012068154177972094145059803420123455177860404845222600452928433999268573420432828403832512672785200846298926729040415171549106999156942131882021744058596266306270391937259600921277269672902392907817083013641633133580604270570759591000642504048801535385872014856427323034706071589934243687570962055994422769247439093411903115552970130469496968908515741029698559154943327537909640263347885006428855505407024253019570536282966333126567819652448563325140782115488106486421202393306609167183098818702514200706420613960099920360617543468701471248555495992107342691794340585549974624927470312851479445097946854447948900056754232029732742127026788064987447325673779279346182507942565161203744905808808626435070867675615360059365474866248790041971229820994459438524913015083062023738411240431250175002979410982226913763804470448873906570578086125761156711247414383786561896536199964193728004874211222947984389853629086877069210381500509747341796088437092178226853607702748105256831059193460893662244883413311420246280521434301537326223277531460503931698555231628901588764252431943148370393842900931323668481935064749570092090624084464280347728262482736055552126880904108520528128751290187082609056587773784844879714229060947716293388562965582880123127431875998377081730610489092501237717560572678496381136244054276030289105825396918065787492324556255892378426754422410732373986018394087824028461539361119826750111856670463167878791171048887877873527913034418334193751947027870008364354800952504217571025435755711334597153052600975335644240510263632057307818143470358520401181772026852674236081322374729851837965944064243727142020330641979368254621992620227670464756329174393885991816554376857319319837250751642856216971944804545685785865658654471037674875387889851903470467238150195102695125231227924451657404937531748267593398786603147380447839988474623183701970011507868300137814682882247550008243916285959484678098964548038354055530533054704550740132824635663950491691610992787139776588604970581762708783621856939389149673637011023912275255958479932634758560845883905031218765524995161563740007815755993330057665511509636721316560846107090253216672885138565559489400332119112743275522860775684002156468148809421030715231897619485699691664284070399207721617707589897627291192919983279834737974969454607647253899019640960266924426822307057887535675788638919437103016752210498604052898593202483589147832680601757411163043487620382846701385154974214249820757763768416249541442024636714107612822120647545034727106475841921047751203562156844059964849869830574724738156917502881915645033617985451890651770895288868824777334189599103047215141454754464972489898779024061750109133873694094102178688478564760159053028751208635906887019107235367142448980705995801508171145681260992887982426130699816759848485759930282647733846028975051773598948968012584054379255697601600410920824285552206705942363688101759928224873030763186318600372454182175852219320100979372875534369522109978416405544510547802285821916487765125092979996557100307073547734332353954385573668150801107994869540362937245924448644373377767485342404781653821628948487556191173333012215373741846995192163785661352294309896151745019446095944455222251262215166185340142287498862806333337334014172448442238917547710133800811798344365880119552247342817477292959116178729345171024614657368543633184045952331325793766559514318087513658902112908542141109457841673965631517846334499013385437245291077059687491397012005204020002412106583455175680430121279189889703507934944676580386405969979182445911381182038835007266448284117621201036409201522712660158694666471066733011537732743729154613764426173406965782290290999036016859254935965750246069681636774834582232345131106672511140913510837541836582641982024119369485971959203657081439185997878661269369910469525855922728899772336134986638604020385302285385180040740713048195946454538322291772567739274504532040174929574990751371060835776596412307482074829596457158274329793485121611598431082831036519992763027971992462145717402923792335822483340743949057779212567682381113584099756361856885211804116779330738253913872214567424768854894030767496006040401080827739489588150618607182583751826214748685544042559791853534032389972430290038060703678033385784293702575746999130476866059568306560846019607870044229342415077974307630809191072643611128909464110116499956608149168681984585116777283266343733408059736413978033681857009491782645046581777936500484951605489692572108395261868039858560664947121014177552250660074357371216567838604263215652484830268461090425810478276747382378289902727328040111279612432684698017326205482034430310435510941919491823191621980736148265815830344898769235999196651307334679942750558513246704842591978019901463434888283177897374283763586412266622685127721142642846086631376622883564231126792388947798924094444619805048188615925755851936844978130581556807824953696649473413406593931473801512714888805955098863226490547954961238629649254829942185454710728328377728231137121466565253015625331156726325453013241233372247679664634662759161108276097283935794219205235472339815461868065967656129265812522351185516787529272747348288778305887549046035645255799433261304050275233555111188063781548648759161101809253406488119065002845055587606764072193838082940518000830830099780462366077029814298310836602874432085410244511399830416217020605966124024468574964775995883246164073874051437242277243740720986915905827925488705470148863389307398846293547732503573245959594526918187663771720220218209418617838130496942194492558015205904184074191423400008623960638790239610657300008213474031666752167459627833181620315366219513901837783413631642137714423007233657184060036766836176496002548106659485560951867451642087429021095512081029771178285482411949194353316220263534531767388381288460589826496011402457669025768029516436091316568798129515613517107713836775339484409486607355684173831420755052982812804282102573083883222359829694800490416785820377113341173855673484295554916396220273748538481559976073140507763701549709825260550309031736644330198172806134194552544291036823582588381143710604504327744091085323081063760436444918361550550305767624222705310194268558088688558259095597962619143871407564905930537685303108082285916415266667829066850927441304583412257407132550113607639255069714489495608186660105970285906860436348800613871660220529791653188758575910819471266219897468213097562370872627081280990930428066475748990733289981925207480030219098994683714666383542072652163727088640152383123294604353197391123459209330615074340588531031800599209570644020624080500392601232706639874628961383182186913847125123244094550370161764582251481584605320175322035262243590103700679070980035622411235624150859640984120503750366057119420669484128729998334233542905143197958021997126930793271203987546994356410348654230985527745234910862570119898308841515255705575990596529487906234861879803149373785427582440619064167638675434910073100382742860825735557040696346298109506106945229086187312863684626636379025633289542786340650931731750012583350510358842963489737959007985652322101998681006263430936449555223665226106233073751247724189536448626764596178366066255526473954034218719135025543313888837637738259470431016755114801687158231892153590268502210058995855508694221865442212887536403079105068621829137573903870491902973300344197277282416998314043115136720337887583489592675859994165559845535260986776426788993689245376150555680339189942672151526107194903386843713991012966002561944550279848014231939243117682293649300696252265539943143319594218205709208296677661655971926074001189662569162404940696507260433194281610333613340558049138629630092597924345915129999480443458065773430906747304496056527744549809791987887770642893389450514274651366898851396569638052643070221973908541040058434440661345983558797145827791789827171985704235485278963399785931816885883830429039356749720645914268407077214665147632901461360357995267432161915455526335171029065641262737924968819857107850082129116653959204071882742648102105198314933596785131025113610430585887070754460362330055876319176724387184177539309889732196849652352940018341876495339845712307697712046875941754798875014602594256662307416190883861215465581398036387410362107383846435682941375087127759019859001155994572407957636730113280535141306702527556349581432226231172622401683478804024840058255412709665271201383180721724752580627885327177189810652314601377276737295789791099598364544772061901038982704115090216225945051448256809749756199413810926890377142874183876029131877374532756058340630964930233350749717322422530222830276267303297334788000480062338658192945563684654742912808103157004428847384370024379946168066662215280436248733854572845874876487442762299203516477469328123394467970673991457482697573056067406050703222791884950202232173355565254619597299617695272814988829789285291552002997027899806129235128508672442559011979206374041596989419453182398926283913467360399262166214911729519555460965774280321461449956968294589058192007646550189142131004952416780131613627073750763292287960944543179142302821076877825802800479558056387470903405691685793757596721568443053025257732047963558981836205843391422381089360203287083486487730219797067843545948437480638206561040969086910432037425297580981994285089127271525163529569647702421845149607303321609990924448971597974611944178495902682270584257299092046683861638376206472111679885838782951437248766021167389476674973840035005655258541203073196675158147353755569094899119484232853471223389629310992100640100519714611190138159567400643674271435606216847689042169342509167696702568408784463596782878644474023094239869067307851259090034276633439675770072507245606219684537156428796978683860346748912960794420450587923548584387882639604694440693946005359512980993319492789183004557316554062942068871343712359121729890878844684229764980771208964869492304393824782274447208834222839327707090113765064821273871077118970157593650591110551436142898811662923506307165294361072632061863451241901768754033997358044157126295794647534320030350431656543775871258765472580886748872617817680094999606422255567027155265450910392381214023136231153600023650822891605665672610410382129128168986278693622648333036275376386717997796992267205820094099744511367615448363241367946522012817130525965960079357366077339369044696391444776670698749748406407676657489779962545256207156627690475650001436700946822985039700461491861435799979447125949345647856402013539551525762553186303864231762858499602510128715770871164671793905955474683251727883313391798818190416594876465289916308937883088169921520817836329190229290084799866480401434535780089892957448485443104108335413093031731506453855055647992665942897698526028929422798231808523456254290975576461049417464721554791414600944753161705538528068344150245351045502365512545807961441789125138712148454896945457882644934989024464779312174792206455940047236951688435204279702896325847937767037067462900578259295338320643260906448239789397651835697325522984287322958097160323748906241550980491966805547514865195730573693386496291524312014944323832392488046613156917288431778384109840472908605252257066419254723030900443538163476362950376267877104923946117745222940307050378339110333541902332639078895462394837452296210535240487968619427566792479682684823650274507022143185527954326482459000765130287881763275363563037839188154274945017478689398532330243518240331290206450888723184348143415446847493923110104359402541051952191028382515641979426739205511833446854020301838634217160683533399905300578740949950387828706432560325138822220772540726916960301540809997391386801926857315717673293815447176552459180401060795780606807896533236451999392159792910615062617224046625549749225383095719843511632193052344749162412463441838269756629579519111557902614009733743559898255620031739379897227508155902624837247642770004580936012751163099246160312283182770084193920618716321910689405655145618937388665456204374706043445520109497786026820386029155109995709002010270144723432364549846904510083264952419685737369082254193332537710472012812459765859273327005559040686245486537455124564529909131378354277270416190660644921657998520789081361828200355482229458450397366895232044498001749520704415996443716416517767971950882001043744899936378153397874657080836043443343429529172668747903498078087700571001630263944908329470719544541531341760013380424314066035240404366079267177520837413967053006186580505477206224182183952243283845545744910429570827286759709220547830927136498520047584663691160814346150698078645899676595477744578880038055436014968740183857473264371509924495746791043379336495875423650130283309495673860855475094686973330108242466379396756218611002465368460300478399199595306681808214551833935096443159910563058525343285059224168643907579925140085135153083432753645621190150613377821072552876976626283391110324204369833223946845881518619153675360501898629503915401856733922260420396514776679476434778254320623990763656817151087514818132121857404944396457357350973248549807154017164895841740617852668631374726860428048604186594794324628599924490624172224959768995141981628265054562445358036252859678453488853620669482478585669366406350118580195429038408919173674072596300940315157512648982213529038838085895070426663409426405642516015680263801719458242234489136301511737844223131196633284986204382779585129081388208584774235859603966656961213156535379717401475670967120947529827189318208646881639010793809363296227557319254392009222355667835140368325726713876838438901128223456538068729665769338060190459155272630359448482171572860917965426251670657907039929514190813700480201659515195517199177466819755721105520077638174777296118718967835071457535733099022342945524805596723237235821299616179370200712477449812728549423882179811420632000005487786183428605783548990315072806624368028346360366497453321527041020925444723154139260027614874806401252522355322906727552687487719369475791918836143516330103234859460571706154880833363894405291149024125027821248751790157153031433226120177118165864329916811945219437880398879069193862964291461541710540746003731006303664154528840155565904417868323378563576154494823300236402881892845909231019609193990514450924983364423691062965814026474167894968512963088483386198507779878488482717565092567068366783819248623164005220789421765694799266448411345146025058824866759759105627333417223284219035664627528225521564738158932209610451876883726860843858157374474829822273762890396989820032083118213161985530933433306518612516444770716574143005131771864856034680549580139481372146233537570041429034449308730362669147465678362758857703345842210348363488576581682736518568282208250203139272705101362925739635339012248156014673075094209311873015965040022704643686729992057770536664390135941195318613276194863033720648327192937471690032781006412243150823929660454428250855647838311458483372099561437034354646146912990192803386143681776210423808023166634592353142031410727953135941378204522955504510151934021174302051162488665088711622135209685599986671949691507435983765302117655346296425280653449649271801469827071543092994988881544623568123939619952388026825014226926037361423663214335316893647804882407497308116662722916232727687877204048098782491054423420224438820057214836121322786756412637114752457363178186529031792347175850618808467306193570897202372413549909515515890712505311319486654158942491396746954307523408931158984542020515109885288546160392883076742714685189754990426183098426809747841876938343517822749347042299996142568415528022453388389324335495508468627167827647579512399166003132537897480082313525591126835952118081782811984458377485415241323919752481641795506753746559780429061470218588983094985896016957986289491163383663260242452244256105750007125657428677401039738305359430661764129063456386049230120837179461317556397850567375554802399664779499117029768492083454442779318582280239315349306885389010430132827703022037052736159533362507163284339087862482929299472131956549894562593599481513721064975620828101790729901820108777996104490543978819626123238325099791799879783854083873651206095752441759927255847833602746724178696759576942213489688881969665669454160667466187617626570447789214858341737900113494690102911693203098672071117402184961822600804496353739937536140183278599536922399573374324810706655936196768048230807088057189921951248920524172860634582994373010071402320024047734262546070126757645939799988923751226756762650808311566529791312037547771323578744907180696736721015305271321648606391912328416260321366491446180522372483006719323186119651811702663472171999166915802121892235818555130712717282600933489437969950568670291796923963988446170567990658189642633103115250089818761437616731476137127930455850972028413744225530818416784476499498453267713488081223530708773105755329209284246145457098539862665476736772939377837637195183946154770484499655372869431772333415546770478223081230515313582943915586827536858977800274673101103198508169920604570590734797193727093259765298041142881220719892144940805809032303224476371131299882330552123973290126819488497712858362669056095172203812771423960079361637296430021057569295454088136547686729798124076189723428737709511876586877271892651479793017674934429430373389902883741718632562683647584897914589255854839617997397224387499613606219106194767920784027109070820704437038246881055128880077966366732484788240313052755475881547831429932463127020130158598521979246059364328436721356839978291610851766880005174041250082281113837845198434501929388093625771953019804061443105383593543114794427246213256548111545970387392315921628996517113026765487263799063014039700586307206089728508280399599205348676577925180956506051027585883210888108173499745089685820015372823200961687851163592378291772065269726143980892340596368815313213042444952294061930126096882871720203943648691064138624078678135683609181722602754049418066389278613582175027087857646811218210272078187989035301916827909504144689427581243162334194940054912330434537438142381349283150108030194820755117578894070103804379768200850699774440370884020850064524110088431989900168328687145107653306093554701377366927094062132625209446728817014236961447375904244996295683131023544305451816485402198308552987387866310718752601700014870838244695086346074277940539317938070669551988020432385304566593860832525806269918320171657038770813030303679870149574735817513413450718461341102505474225003915340090203671682476929085924687816528775847203764258035516749514259779958350564901474472495749241811460388187380564784020078074924026760943205358438790609976216535361689666427249262417701289643033628225774469864603915639377038557067244430808512386217751330023581137022046048264092077967949116098436357892753132297554664982103761939856678232794450992693702012849039177566208873603475850012243039311361938663622648294536893609816071524999971236987472866931773415610861827576706303293438264961374931185729383715347637343368813341964579117255013250370576400632892914308444549477118495493736772776224322023361666077759232517998881553722552007253596441093642223412296920469442829703917499180553558875149047657637761343929359742822955914218411608541987299864202233694270347326461940852931066291339405859890137845392863708092811366770907481138455271265413589090669455497750881499858665748220447809301233486705813705346770996810911083459821006929415008187362799970525195799823315300954891147784272320962072018037918029696017453239616526432566782558982983250445926637767802714367259167994533745359864152306243707824968150743955214901556497864187927048956602888918303482582116903037372873453040891374025352909019572899675239253692883742837575212306238502405086428117817535028030200717266386861726240317062845709066208976553201963410229869487803418737514453496008309356210059956226292307627534546762648305803378964611002097947634045445292277654843488705162262500246672679833925608221970631787240955837869245398852225570357309661373803964225046539832185829081838727268969410441580202273883770877552882260824164101908914556213187307584477811699647630704932272885611541156141597677727211531398087583891833452818121002284651766853093484165024628616001227499293555349876423140083204441602772161744348096452287224925185232991042280102381774038210564924509344722697044070910657309762907650402076176597868373239048410448749203279366608188720446721846473860303004804944209248326406384367483975798803241945531997978267799846327704822624413690451799051839311093639105738604563976435632678197575429833252287786550009000155732168263073617798726795144596345544491370161269112739517716081931787542229542144780951455946100234948656526610356908567914322249851718142529563087927046625600320958367484770920270645138420715520499324001434374590291437803616315385675022801994857366658729407394047272771347220567178185499510831038979901344933355382759026103279178167044196947727135821977518969502908390536118755421580663631430689204083702614857541479118229950727854272296730776073481288695193262883425249461544436201741136183054941286065993700994968078975637976267208204604130550776886359416257028258757335639034799043408748189718086073937762355418423391367021459734561228892323562958716204581934189903172950522993591096146967689672759371287496119274788593186746148148560754050603616521894897661828899244305208203513889063864458437217737298815765692878027128336161431531862310335373679949860578570420503659650841400873834267884651555570467871805077923723562677628391583137266333374743603988005493611449928912770655054554881987908114249111452825573063034567881204799576459044566720090093719955210268737857640055635924034396382581426156505225387822269071110633266117452842644575181776199972382749374587064742825115986114068885257974709360426164682508318983807808270258454914254239757684436518753029286502316558161890083989542904617773197242545900888577369030272567952798514162783774619089476187904327073940991079547838586449787703569723983825835483449769309473462871903118386075487684378658718546760840759748394394353263165511123710067027452148589877520613371916213701806819639707228081120802255745407405951367694686855423867782408811653080044666497592200060009033551594565493997896490568137801673531360213543718116924072020016807389518849176295170543610007232152160423498842409944741078213579360440906992110590183995089362261431974613988223819504054489644636908286890142599793926576152447007118190180846570740388575144847728713081903863586430300576270581910530733081670596817926172498157521481487959460779033105809784591335121372154858322100239583626110154241787678764277138001722060796317007752991518824602081941398254364329874516005447778750925130481880831167620582800214392514638684548117873430742132075860282476874554286041308725096681802713201923605141499645574671879133960183694025312904773909670566220185850440951507828028142453459712778582806649127647713876550006349786686032547326524030085117874458004927623770852774449260842733709308002847184543492130659599398463383979706855013212603399672573477499015387254999118802209260781623689956610472616201173694589479142945793577228153830570679805576889830853901372827388453802293551602136728670253811962249466621908414710277695132445411017735644091587517516806623880007023769766840582592998397102675957674979379525708494586961164376055780996183756740317875677669369409073978395898134627399056534586241488851806133548159442567060448004879864723099168048249250751159736250959222318178299424320612055830402410853461692995570463130917681355731447288010955339707894172877274948061866572151706860625070221201027083683762132116648044987329500703611634547958653657820500666547460467407364491679835021669539606456717741536149819182408706702524173932501718982390729198090187315572193345827132335223451750546207400692367695772572840616501623486555932925406253297906634879538615645561374935287007466965602748222105018203251320955263539746139824474925259065333714558042403502235662227788193389399999268823591488821917026153602751477420348050032784999592602689105318626910193812448271294905050104640021459379596551751353696319827788271743988752463177954101555267754666669476578963174283895378581953486290414615654539354932499467514691301594550075797647515554202446295110721861679044231210470611552153589792004332859446901396242852196282296420731633719780993057097979888056799959566249811292733144269935093724341379423755714461714527447800940939044685206327280980668661764644199804547057660992467585712701703173271504833529438828871476814917111791101237208755862052159846079649012904521664344210686546554612340925189915142243370168442881914648741564844380753364022952970235944982722441645235820730645979451233293688389187703561461734173555350863313134514501917097775619909585558216973016284716440482279783443178825351703134417772994191715908877276031595014164713299152571620298766464701440583385473653414432414038913687116032860467382959176291501708682835856521601298193350703669265898947319282595601034045763813934838874241017550811673426601412343551259081150989197808341346922134922903153855572957600432208447858906112305773088507669445198179622579355967766494305031357180806769726135657432460093885000167353596812863363509245202563337678110644108470717517784943081849146229758065652072418598674824175705008396852221334008855210211263137093135278593416785691982562407339276811449778137504502857362024392512561295583072190826014524732149835081016150254786607569788714992393680964885209079100041315973097124435337527640678160111451115871662185282535528764343283317563465625387833954166528920360609467559973092366626467564840729834267060401439508040176486318363209514209082572050302786816405495636597191783011938061351248335125516182855726276164336680654406123813871430824352211239448408417285945196654365526602777483004931590936210414666256394507557889737591073636266497585509241950947845851905507679176308731565464330439922563689639881756114069297196486050262683934745269746399779679011369705204810120840080279048449703069503905447447658492017975615300785857206848039562230776355863969072894799171536908844717709874026254817550255039579413295717191281732821636686639305041408494737370933808341592017102755398215433139592527873622975851213733057514413948856303787239445613636080388700465582970802649000465633398276478351309576627561484888668673881888098434789643527687134630481086223038991308904133055548327610455252341389545672458929062974402588422055737828765068987435023464207552751779190814824885284661827407079260462942680760090747990685833241006091115448454178737741350802392018178086956388328228417608581573579569415698508058104593305067348277981892514370858816172702146174995119120407859623771412559544377767864503463841797995643000768045915818423909178105439555561702844814869451900984642177587415853835365620671233405188337369792325092130272980715101703698293974347920624099156247407635161602922021421184151602871644674121193947823511197796246280812491193003058835689870457849614067057820497754545228717103088326013506838506473290114285868280052985233546339348352834846833851259377241137146709720361951682606540793995990973445808150178202441595894665804610108721169801659274815937012012210660406216263823102895230192433143213157361686897794535000982804876685519816158221887508996299838909175976258648139587586016409928610340054211028731175148550588883993573781177452781729046946567006770632329324647925827479335247924921212129309509864907947322560912545108717652695739103430026821425870010120938628647367521902357537088752988870788795336550508782724358079938294892641644525961980576331345397793307466524312607945347624112544059283867027555252260561688754752571990557717243696275926516750362883504674295753990477610708074893313962393378583994483562606616243379546287390334251705747416565485298877551069308626810396842481164719168848306799608193588524175352676882501215612720551427917187578259230632870507588525220755553758872953913984657378244849812992396516914261111674068064101003917411640398693620063834888240088898388133250430757144814409625563636209035893186826239105396397806271481775023416089031174479357987185266936549215912620477751774022601431951556964740296844893135518619665701341797054508189051290171623706177756857990233867718148198356578268983193177376982512653962923519812260844916802573862218452353048827680084989013005958572560809433790839958622686463859674162950659591403801364970894654784253084143184066893814534493906811284030456785161358975123730482779079704999096533389882277633160939818527846719812662338013197141420439666639479595587624378853047217540472399101136068868633363172516582668644653453938200103457711638242843174000426775182848089425474727688490379932080725483739012432941272622457848467620849148354113117016790813247939817927847589484317314549511844561967223946097221807530800119065651406704242144920899093854962318995153499961554948036833034711201446655009766004901846362828600551292218609296034097884838937692413663994104700688980100604014644864716077422488972221176415678868824223939693743942035976364534562286824314005484492534486939163283258329057639575359741490207040981917530533213809277948295262247331231487538403368836147944252440107622895122220221753856703596460272835364884092306326306728569907932973363433146719350864617245450380537328768231426623535226041731270060650441587704613374427722588029753470902081270150993060227963519169526792035284860892083455612907454338885590310861634169984395302074185436147066853199134990579540293759175295655301210613915420157347358002911113258493064367498261378345654142534905703626017697681604944559296715879014021635903998844055667390006274806079056039488864619390385987937368073050891041992067655197515227052436585491592055434816985849605652170451076174723528655062829856553097295952341012629027888783096119944780812753752022760612617450720162994127341186711538600452412139197397825473382049994356187601513017295067291550866197962791100880517542578060092445492994808025129048631451306460645018043830675271741753955400970350040137787159299108741297829950226104370033453687174604302150357498342196190128009505610331994380603684667045754348163540928825229180312462258758839502324031028375667173585938493586601550481271632054044101066223082582631328795528978658722490835913033862475080614323955965808759509896143710961128646201412780402862831950342052342109252769621346271222120129997682914999474452432804294435081732388008341884823950707470740908285155174444039903510181874545386785989368102051096395569101518627143903398078446032293009101950299760933655746304927566940660015376414790946055620983001746510741853803808177870860148285677526106455132412489337942902209136618693298372897711416817297403056012493040842713399350325585296493637215282764393103761979449431538224100724978682884493582058592990710290932818697164427398010173489933729384035338475761822969015201702222567560093366252453031877425463626143539984843800371524279302537471244289148096202250083185506866139499089489465768516461366700560258788841627933666175122647995233222501886273748194796965930271439587369669623940370245113945857939431455409255741575814301181917028888818565856343620483388300496074966822530394464411509476966640378495952568306261857066557192100798253218984050316830143906262638685833912770973260356328609343721226151929277283833339664190391636933849568872218260718671348675168393801649021667197045758994529956841174963437832413927892497527538074806925696030687203740585488414503695144888988919506939187040427532198004517811403240102868582274490083633466975921884282315580569267647417790543987830699053090200691782249093730324184031208243128099450639343834285164157726477409552535295462764488166450795360245763509076090620868450558569580948619106913043757027229783890047142995402227772660563935789465752171212555616045097603513353747661332641488945976691660110553753859182141016558316584100992184178060271981486573748422926942611601896730724655999352631719439373579065044025362856191469249468389257449780613685065798758652344863204266203650978192917837341705095537272864568237931416396286648822175388739689131705511286610407220788711630491486919974511179662918932246531687395829734466556319981614838947367827643067802930721239237985043379428484424451217217554574043763965199420656712190527651524257239882389507282132015040871016819815527722045788461538258818822024930134809025003868311763625455868857197483229929485551821332302122940600945583790647881603050018887937204325950518520755163424275864746405351710662679700814209196068825098146748921314039158166684248551952979035924902175689632154832502158688623967172580284670144804538159446306359285592824603832058916427496766459948848590870410531599811926948454948875621275958413953797043443331700399998691189564111866954602278375714652712291062234034101308201013909571401748004124543692080238170685895248487351383573331294392053794185112716946683033525760869460736736713991677364695319730945366159113416560742433320239311367536093657440068882557924657497606679758508063696173731903730099349836565085473104496587205366975192983699801018325868041413162513866597596092511567695527302412530446248635624006532665216222423800545618740380155180710547084231548887501768851449899976413365301242489731700390980606596256958271886045001504645849256504312538612489616090774850099033678662926460569975416586379556970349472446007779062250828903970165192306162075065192891708757581731838086331090564542850768270206093288326996678645528976229140938328922941673032099227181770790371673630239783394211478368276965587024959961329056992878472409935887927404748730240559062681700677603857636159254668713352936239052166753420330400559263356259204381486735061902383891701048847589054551731623465974316855592028471653703457315171184493974998189966463940221473448925845176035753055558239286210959999974593337889800611095905757624153765895777551715770672505962837244734070363003258188022089009059076614030420532773107095964095982900607511884905992393274300811113863802269739257831553431049853802645206106743254023515699191059486731836616879134941340047766495426692397809790044396072322052507981391236141302088745357144241690591548786160567937039161018243152133118515516889860564324183942674255709134993112290261036702923421952298461070197797441003281660691115742671343400906252907350379190696229064650150026019766778948341126976349901658401857138670377520114332147193476322452046353525295487282229729379836855658056349429547516453634170459599456923197486869026224482208103393705337440484603491857084524961250230234331903072398105418037958554396052853747620478160137299632833519460630202520327846036452119964312764977474118579725310670344243162676243327233423497401911302768700829664468317334644204027613870368134417927570769150361970745347627445611865450277856763424159157347761553915318711395432419879525725900524026936738958639061568549961829643286241861777417506548535950001165475507607784251012568734300854013796499893638514342845534537932875309729080712525704644975842209127661288179927710360473991986349296707577785311320145165641495747773010234229124308623639483661963764390654140449010228813201931488966034321422515269230404457785945699381026441977669101524964532095428495288325949914854243302218256724998748325891214073296307018169761583481290607038576008373578224399196286715916021415965621778445865792126889872107125670511602542666875237402625456953105513273702578101970295687456095960665722202317204567727762924714800469278034719006056366688841186094781758977651507527890033271599921591449972359692936711958619941514925253838123287633743230973531586121493119830233492959393822377582552217166923500893760684114375111818941478318232890402195600349545515016867109123273614254680662919714131866568697160292803217927405028418808962564265188813378883009865522335983910447201565361116224784223939029711044010282252114284766593248610864502020745249370515236586053141616764343753389005526366943263825715118481370180794124404745204369218826591440780513764669277154002066908893317305832241483212482721398357631246202038386149722671738163155210319870420953610944897622325649526425778728909485227028958248421732056589526916125053761977101145000122015979883307993164043042426179776055663685926224794167985598783162761145396813799173107592648826961966237009564799694279838323254024250300314139605273014459390124905190523854050891075786362631053214139447966988990012585229417300819746114908476059914961626090402394722418515370999652240176041205945163003422011391287142716445903434016203583367888273898534518511944033192234583899203015238048205387909152229933052383808030022818576474381127926257248288870384206682285972445797548806256605060043650424167426880722591854269732945276699773027831917632635869340737059901371132292851802655448309767367528362656724553501357260709229127276173413747056034269594403666589969424216467588321495320267896676840916557037712144275624855471087745488509181980227706539429170031513679267398627397734770109716162075808282239716821201343877330694474514337110576617938860656899747028544852091978972886103988915341679564146757424900599002321915801474254796550664990489553855920451312905127726929643774181683436293424812879275897822930054966738330600248811844302373739459827280817141614713596384375644758618239822573359207841173642354853897700870021578870397469353320881785715997306005709174033289418313673958265767701379048823933359076653795260140582806387104736260512914070540116169024792583738926097211034228219649988629784683247265183375401728665187311937605378756584320757734670166550172210115267679723504296858581917571197317425487021904884198768967752272055440721460745892484801171097829886667726673705185432395670330600936295763012448273723391536975820268080360334289318392416490142667618085033402867600994791895734957012641234553143048427445118544460285045274588247315961696198984437176912027214214719131409315383818838112556355820751798191083615296427715588373721355523498907247759867171185978353528422581400625509764532535816780332229336161410081182907475267499457601857193878738901944114151875500844297419712123251251352058678382691024723366455210968740304489550539234808577931928704473668875700477813463375856516778487286865928416393055917194149450201334514051949848154906017800149252446229295137868356472883389234643122173005114915003725193898616533927568391185469950862066999887834310530511390516551513135019834806477520557508309792406570897037975668655905649628897429623744700710134047542548314928773587424982657325969849258968994045775726903758074197159384729398656512209411071239855849675164384127191762765128765865476769737887866368092874665386903767848931634211218545367200775008402002972474258282004703472778875556887516604977363970844530722017593710161639923630160526360774529045782041961869071110499754332561329678073356311742600020693408579259256626579379480065247314926981112622852273102695268089229897654382622081888988955267892927481708780131694619774550900314155410979516667661146066865940787278101528552470887145900326808778279614156725235505813508814965384917303936099284912869961825617778182363288396973796651585019825837660613984189290105290573154022578050122389968351550421616818202470088892462604230481179056740195174002939637738391832584420403198411651059610171951119547036030895457002748024164098418527380368644226591437209884326193315633421119536324116804938005085234964249886413273518891594736572606923433199801153986440171382517373178425025973057636449125899833849129163082109675496891733358767848929601340953902503210597556825804583141689182718197427212283252473073132535671325934335143227606933939886937034474270101459793197969021416137513606504466525850553342717403411296250121142022419331281168080401514774198990340492714155524910168287193843021355388224940627559351366409149082510550835156252383451407190605054976161324089770877577898205686960054672056944956521395599047220274906537352948652695979927879355963503903942172091867658086220144660228428956938642192136135713780655717867457843508624722329681762346949794494431652027524149199084864846626476915140362798927766538799168080274524338561677224780663089268553884047530686126287396288563593747418844479840701038326214907220061796167608028008500504674906731503850449823764904363824347428746683792213746761254819211538324818366426694044797447372702368554909269657893699211417581372255714517695231955705512963051389573014990533642100388521492761376655511451183604302851297419245083637005644856970600722873630271152400297064188240318346329818268414906541217617858212404140584656670504236843563298834189960551765826664749295313448700204356737059807151502896125520601949215847296428502739695469679697558574278199550115058671194274718308495132374390547045684489542807488078993628980220473299186022825975904073766970568364518246331958746971868438873120743998070915142565966131525854181748177358078001450727761682409453869985084298211837857093702447540890825457900967912628581190879402330016275309226364469295807967676266772359311767972172146746587075167814561570570346929253072573095067537628249674647006571728614729155059917762191266425616094801744692234097784403106479223166938742612389864121085844952510430484052385731420536949244510172459324604596117123137566567605524426206173103099535369240978697489498019331931974137454190725499084773505868047628148675351623646135256535439896661510438797365826383634827156597300176972977846062075382663948567056265060947626671382710102523033818937925987280381966964084220625399846170928806878709593669188304294891176456759955058648834545925854931997602648713151274257660449196687503623727471580799227353844057939987701210757111886043606040388526229245496887848122092552861511335669678666282330455073652626337673292227839122888945895788201698640341013105571131660408606625355690558767129361093118338183482490333636728154755408532721689128716650712973928113081679282337724832311302056800081883403979579596798875939747507554736852945477779641723958661641704559073386843012831622780858319609526734370017487251968450690629753681349568725038333417872802586516047832542956004773750591960666730858810498009747210099101233438029812839952553897800367314285757992551760424788024231289464097099880783337792061181714419755060195616613917595203697186869860818076037921543034944055005018918393054833430873209599745993987237134188529248666388277290439647895461390895493690257285467828660009664019507913153988873677022319246271263830120116521098447717279572513967014750363917583880801773114180516319889317406286351308402810409266875808996096399645288980880313389219297413220946293962236379760867210157194102311395397856347164380384058517863312959192775845043978779863871040585136679546571017783176543460050977687431608677226365731377367431541454584044411688330314537538133432552366044458872836261054345830600682782680941141629641322832476987395851574830480968253476118370469456314057007693553372250487957284092409869822217472773264447678101614523787954139621649771363098570692097450384749518604149082709248144671349558954801888624499339917015268724869122635519357567182040489764014842465403453674507809938968801109468279713252315014857739545848010726139501686804948407546917412691853623532860117824482100368417930280163255117598921276701799361272703871886598568668971645393528634629544588699786495914567759072446940369532417598957453336516432833045459358165682487686511039259043087964857769681644687617691061900329755888655487335317790641576920663299183694563818334479291089682194986466183198741343740066426569023074947331044467183015835444173007478673933434742798257277400489748069767042966231345974823873793870932893747271356338858574640307741681079308781057149537924818123598555974794681765220412548973543949861305137199146151682778229874748248749331920540576269340021229944351993079828646006514317036877653010614519234301559956026502942698073400217766918454774052834765728549453204221367974940499221894521340049629650611952241906861294960242337943004149167246957016536014324755544736658187834113960125099877615563551719687912908289423706622776261632673610118856808927868671021537898854238585523370298397078198758436280882782878776826327202902070440841256482994622167231113000857194804503226716751129372618323505946352064343758149729636166387271304743006028768248679123119154777642847785210191218633292919968412377364351091730313797155823125071667005343972773542531002251773294329758830110011104613153426976888405729336783121207398003023438389830855381087137842455671080644748536656449459558764266753352028671188090600506975082153140811141643866575703028543316604415430414994873704101031504293988525636763719715532623437129560009234132559082589522263183043262887120132553366063429093706761728987827727221708626507616695706230344085169918963478418550649322860135174220472355152642441748897161499440510989677630432235355441739272310700976708254252066206907438955769958031176716058939102512382700021327017996682759268972795129041312300604810981478014016720447369643301745176082362238801470447769563563011350008968915467610191860492489313133096124672850409826683085889982488106412411598100034241568206659809316437372761229074720820552283015511601638397506176540264621923543102213945029677914892937513045508972837219375709612950656444789098468882279757992101246991291326763322679269933376930280669860737668029270740328960223036975855464698127663673371505751490092904364117575495568621939037672637560873825764531707117978156699998304128219964402377954548799287339937416680797823379707231477412986711424093192633119448066084343576884704787406721530110825047467086599855463990128619767576712632453752156566228286927204215675614868838989011621571831650913225421564327359541460822269012056594875380312418511033848441224673064673819571593150252783424765971170074440873692431954526978286901451471011829855053708785187634149181781620998584787481763747635084861576550324751527405938728023640277547963877376153196270701911424238275143304762346940190457235984582913889455080419627250395188209404731641542293004511689958486242170326274816343206783992547119037903642999558572988959285215861494609694684197585283510604124799308820209181639931206915272961459990533141236798981717943878273547521526899848493515379980169393010585169435309711085381049185603675273554668672054585597473251792307085887462850991302153988745504739755661791341459053857052315263713456814300322697583824309471869325516749787555937805097845212551328920733681852761961532965828174283443970715233710391068683352163385155919273924372229832355247688797767667096762687375492062634348260945345299007067155889169805616582574792415976266075527276542377763598860953768899427738636418956348657522964278693782120264409914050087840591197474026095767994368247342049398259775759939115205457983446849573709470016783361887798633525308613648027037504805325066564251236723735209152666009877851241497630242153851195847666080848843521733166337828219675785101815816442753399015134746419740106538783773359130408129562431204321329596386028929813617807251858742757290993993040100877728644531598494637098884550823629133603917109960307196833927978142984460767650970239179721818781719025575511021778615976614737230328605261133171090897013918836070703980564622777743561938826100741214074608286456218322806020509076190581719652713250308887959438091830439979007133152883519587005925885039534239494448981134246163218854034342663593861235686583978153627356741054573568000840114697117421039559753210893451087938031398961783449387596081616923562178794921786524381523616101585856117541041702233596140810678502861563757638472741269649040189211001016055968018444294472921931528843576419857994454446764909602364998809559796184540441825325316633807973581387438113400186432081532870585618734081245900820555206824434451205750566437042580221751777347320937345056335288317430686116825956132787998892758274471003689301320632435184460427373029745086780937905554608255436617729987848459413921914441056054085701003182036959568900639557771440938757520295134797636397665171539475334346872653567655229264393653807997497333047674528189884625032417314811062878036876293094015780559694954044066717671672094425140519989642643300741882487271196953353068258387102533083017379292899491975194420003115178167456089014554362878535347106283580459784406691856402848029504285316494187988314012298006225079776416379899894828380474720355026116734553349087363381450803483281255889883610005328839619111914042141142623721463118464406295646985632848180940813290015606092304752327576539934434431979800182454444480371314925522660316392284986455085156111113120701164459692284569989830271373260516514583130821039185701752170524872047318870449255615813954446818921913825780249823023176950849780569865953741186509580194947890884631713926664259408879480247341080265622699350024619712699600344439759926365120129406097261622437075081123473468732304451335366095117137491783222585991758319655750107565623317154929673185841442014248376820448286517044596493619318762543597745715220963870520506798926024765580123967331002652811187935688136970872643063552617791879181223720298568488223741172635262136326405055710615571792611867822371710284173234428257834406531938517201235085326621823786293726314656343274571708998090158926042881273561147793432238790648008093754530576812876472863367360075912778867516383776891865515469167351352166080531919533936068054402335179695674599187390150116799813821303679748382031459186873924921260354848180073438388778446443267000702555489004116425913792167874482845204828824148406152254869563785288334287602664172119425221885986082669967406775211890210975141435161332368426680387956637168360307098752893324382403185198906664456669509741193457585508279853399745853312918489412194856458015989623492398180616282924363882796153760456988851578227599117451728533485062210749017471708070990094319353816321984015453659357542943909479808256598370449475106017912090099510091625564279918837673829443495441905899751785819001823167103163900697726875303022468458798444574419922712903185737298008713752956728265616973908328341800937774422255296953762747599565936539185702666298952341833915588077366719101073266894280140605640282327647121815213598178262191570948528719845220097332710407185834961491239020421077470425099289616383533776981724685008001119579717361091700629179540699487426744410712071365557729802073819594262907998203462162278472830555027677282192956222046828560772888701994385490665544615994536246368117584293334213720018456018669779773452193264612094835589477900585012426912422745237951238642315920797161396087713106834266238457563418988161389604466615376883896091451528930488315928073242803573130992097344079873187872696527209760060715532683491209886011230532700816097517837856632344748139960204928031847577778737599853838926926741587092734150171650615400897919292697723707222151846080650767940706241922587072985193494710691040184897968288248093635970588224472424257745019309371953489120864416670855080818979406608000333598318228719936816531131186971145905522089294196168954613734393048294891811538187494859878916433405115993771708002245047904890197690827461619244087565042114454996372127613522806015117691227028305622697012023775528894689340299729201399319001880443236137631611757200429456600263246052677194002811176063917180985401235207270430682911902876596309636205839988539300316007699566585237939569357042591390396432048396619843270303151595916217978134947145274661908866744115392407314237419026813807853538337581442602937053141479531946133068917864727442125785236483065671856423844427923224369931941195467292569202453096750348977578315200068322936519715383781472094378006598197620149190841692134602914719713592671440439784448964421041082602986831029459775761483282580684846643395248203358367620407779085209339436589968548391201575519369644238436342835159310552540595341189590709348658255175496500794322466503462855310438829617845502301472051909130307157402949504852145820133818253742329091278130913700465891164053213819716099847282204656908570299908129569358609710732464982479270871717834114496332184786229453482576275563107998982405365029331207960371169100063906509705294182000255883505528732662786376875231855158683612305902794492995948826545075986433183716504308394199618668995020044248632190543543367963326225204932027336607777586919101952270482934350372887596157363466437627351107694275005509280708946515447279708615410825378725263207355844422028918787729596578494713916552834680133882560110643053050737276174870029710625472234886330948716315388646645710531242874807119542465173738532775165495650354762583950332680219612903945896265298393528698599184276821706775050737941040357233531946311864611429892333872265787728721967381467483572684099177616833703573347000583745329916465783328449431026523833338451394190593076911636816555898665688122212401086983909392945270372761503212554687006622933475520093231688944322604207970265542956696063253520614400471603395529021723849371492379594686092542191469697994320417350049327571774968061277681169533695882157851171847289067827766364162679706399882353308541140352961583792506995270053654677731408998238343728172547720939848445513232314836894860855760706876247116681444136169893153379794803744394392822502448853478718348318003500795730268516932831522545785036888843258141629696080147070806344288556863014887420691090761769207828151189403952481979930771869148150208264804321280345488755447216954921508856121350859090888473075318445574237322671405827819314130191550695401184872787829928813833263058935987621696364967852550951931858788804873329393971997373432330853423576812397847134533465361546865745746451131981608883383115882769065012189900870548626899963401375656542316767407588025130540160443684263352068877498749014884698494095245035671796829908943180728635839553228352811939467303966491771742395396941846634206422227114904078750291444089102113580542851783459025115725736131592229471434203411483193492042208702518527599288185910044246743272604085361080184832132458408781621673417537278538116723705767841873862583152820381807518827511962077139475564374578909887822492299505938060777217042655967586510442515965869390347919539125223481956392589711930502016681458613135837647158248849134131277186750966198913667842093898951864912157703488862129975011041180099276338998604740086221090968448897465086768846453241652265494196064936941396381076279131085552911854420531933983517623922267514954779861793245391958893167163378099534185393391796019126994140034846130301777558522938340514696718406497432070776333178211739368707995422041969309954329532902958634829656751331566975564303320643608833216399924192610149400315798609762794978658286501640519763943177278015809718640260329022579163157128610762071526195779249058577906068251059330598047618577635338371802265642272871386582244435376970012206700465098070358849393399785748039523652542778413969050033453989273556935667199078931160819636877842840061553333600793421587388153024769923137943899157659464086471870497415002134259372410994633682514484644084296036480076720799267114469435518616783925348973465310938734364042242319868460139033971113903547734382261498305812677629919450912979622049545944503583826073168318700451595108853750443021159436514254395433989361998782146728803985891085181628913276293173411613083397337556952179417122034655630588381257809726769866934830484232826166740253160436983431920945635832000647274649571207984828487950429410808576474138171422222847916299613631351025002721577749828200589086126101230164735618298516101568804156448320790286161710706394698286339688437423619302473721034945405513587591430514638515363446529850859897488407566610438221133544382913091421575960285544128096238302549318621674099945769865565182917941819758669567152777691657085768191394937190850946373493251113030717937097672109778338730783040125795669341448297675780762279667824832352788260819814534835496081599110179407656698737462510469880884246557635824628278021592169247095759733312543733266635869205002816302877836948366437493719781493988050122727886230902436809325761395631828435260431411849973824357765966182084425279349234669848525144893854308699467029597095942811970845647350521970911845494174467657214944281421614355807821791161154314689476298571484110772198522802449375911256318851855621523330867391996951388086054052432510830378746678808792957505443353934770486089816977047032672954592068563580878009955210931287362507447189122787529280701469290803623653728226308764073110088911984943201788448333075699233233908371406221531822628657845877671388942319107820479764131315539804084020734835643223089531952711574400007020492587380865831583744206055571224168643617520795522780455960463411344831309379847545333139434040583658446825160607217161360283849560720356465388500488789365586347932525571732084205827460323951384868795959433487339394752517630477206502819778785996849860820418361174637583108635021604370235714690886878188666560174412571020540005561058510674315993359185729381380668532038709280791342619858299045905689240755165149708978421887678919183645688536897032348258121967654002736899757786671508805781710841675557914073762322300242819740883346767670562531841263959854070838867354819628176474439187136036479083893005505813222250379690426574891858525137181844464533337514552419734545555946669480264844268626898251871316024070007587307116640529458676727666387918450294762415681349995935690485821670132339750309622613745293808069851496086499725847733937468367286515419961477117514579756798588646596946277293060441146770933263356269369950600388357550320748252482060561472005091556355845394064034862836440162960385217422929386316092766659608034218197137197175788017624987860594767978024570713646212588806975261438596878466587084327127501290474833848415810581277427945895424384419759646077167771517603412033944579601153419118631958803176430128963692092814935324175946564532592762985918201391219355476838124694508609457498891538148062012790900431052333566321951658665764362483463995595048609154527814918160465799054841628554230388215436119009183934269756252495170845378615555992472125016682577058811328580094518981334190014293641437189214721068797364094172241990462435805923889937948548424317711059049625638426476244356744989997554918256316988755605740372469145053331255052888991843690980174797146861002186881759297748501787245718784938732538887820385522427758765200858457236818978000833600173420580901262584251927597323689695041278826133671634293779111631036806961745013281827388551851605036554496290233900159130387542758366579711052048361809360498792653955879151344767984609371263076521676740711600923444949013369182502364656014542974292935069163028102437566446194557021741552648728255153013004445288396343356238686086311316706867428487885046741824252639135093365222366076764393122093846325438948461329051401826758630026747871819109194605008593311335803397749166900527920440604843576849739595829478968348167673987398160648128620229289363989452610959304355817261008834935613369820282233814416999413557587384840570336988783645394437781832473063571355519918927861915970028876960706685906820997974666250893529097048876957929695100727365365865077898957564955259767526814274932109120047962545105073658348271065885884795806052243506543030677394001364403852248722898033948946640210391329853421144063969148786084361437781489385777109976500445943016798671530731758650783215234047983488953135130079498453674901244406140448051173829976914421407368060752354068801033100473039318522585812448181644332589536934289828738539379794979915198385648231163996697730687708574879379620308177973660479355899512629243804133756254437424137614677423167988098424924433151134924653406969911642029254800490027496855544933535001069762862688734605824770991423587329054253216247783200864666776679728871521122293592359242137541672320130148528980180327965345369905496265854621653723913297116894993206286354346295510749793751272474865568700993275602664521551373663191609119639078244721020586779762707601886264831574866878231318739406366013506479782814682839477098556133227239931510713969365912157053424149754896780342536788700789781567931848096138830678168847552023070460312937482884911526488367639326558140829085666561494633747821791821746616280870051537985202670750491351434436306585331816449328054432680978036367156328911279930827971549219368017844120345333206959131620355083137181513102946624893333531244103526245681320210893557123538154562464805990837525438617601074787413070339684520922027684270852772133001678001309445841004273100584742544350230163539730361382112725673892858596922121650389633151649429509571842884057098987211851744102113813194145867277370126021321341572295776403167947189633531476304554982881046445988409717202581487623555584212521433719851586479664413827960827052893048792220024645061308755712577562521470045784280399960238885045183480995351966060240631240815417692702780859483365266008672193977104418655804172128353121011266513388886935013545917383940752468698657116352898309718553843040105502876898256900394173982663119191407440062429079025905881325201637677754289754306170671933171694583476687287056427538153597243715492704915005193603699350686289949348141571537380678263866666889908241154906259440384209618949767570003098018053553094596301917055607252208256596895187932720158127095358327949177771857359396055953444217356754421414191484453235252711389026142830751820122829559507944566556140906789914102797630955079433567106983195257432694764758482002000117168924236472111289431951963159050516584612976766834966174486614466852048573530907314597992974745390538994747268229706962203074392519768611879744144377979949733131296471534928653540520692506895573201309367593027596412287077171963502081964328925799515391879304535531142015575183004942928135539346436969755655828652982431884479302290189836534495919426472783914793830728274318711312267891156845307093759446193764951925958468567748029358908118620320593327526504599553537597724399457838897608126228854918914612922830222707942230348304039638034364494485240705014974618209325663275646918976263555078017660535442580754870249985205727270219096461360985027936555288613423426591499437013721037375699856720658042522126301664806702935851908258758383652716780545094254055102221984760077176147368639394314459814664962858052830778785557809470382611348403223822813050980884841183121740071172747974922519478999017309588308322574375205850692766445303913581692951767123233251180512675667159529212351458897416667235004649301206419641635496429251085731069693401101993704010323541178051321296186710126016221961759034351449877539622543579548402575865501895426922947297853280014995753028709786753186094388539133364237111912542706902686839868944762952837918517462219000195488683534743421255769316791093933827149636675229686758337154888715179619728634915433513453394010037518216279998220018644065270004412468456193273556497664403852008441176301239277611846225226037772009920572867010494259465381980186449684365784838510919414031381694968987120718394020196269963394701339193267261591868124272033790164902958852964406712810251510119555568466325434610669561772083318001767933420625759458151011776243851994457154234993085876955086274582419354372209950958727864492303217874703396750800913147047108312499359648675728276460645333750090902448996330728763967093493170460938351783311317866645024948765500906400491376957939955743733948557286860583895085991125734129529635771814761196045697731573666306476909919877741339379996148030390375388737088836177885771463655924473290900221080144216531007097971909018387674516466465429435964031874511105418804859743893610779618753511709562773644264390709604924498966891998848444435078893001061802508384387079801925789476902370387291010561674373658175794396654907395039055474882617249470784939995199515155729461459697424282957423121923023404136173401794210894120189343106893443095299164501817512918644199617908897412973493064683744278762386534863171424480039398168950325901631806229929575821794496332968627702443193393600543928971761121802785226793715964707026910475007729026383044122984387140532993681163690363793797195017081096166724100560017650823527115929029029435238917510273171940683188252717074100667357198292696198583364349014786492550786234890176544774316949115155378730921431463595327607565432864153232358481247397887586928763601066162746283742174355643915105309700067696360853182767649342026708636055234561928886934042418407835955864194749073513121836694716038700179772224487772990214099013010344021379014257421910183621132722606347281447120615455218724836829481557588629630324045056595484345785297955346891699117557706197740742053091906460528540093192048224357442025790176686571813331489621885853283470729789735126175944187519858059131446753393527818103090742496450076379083392002602129301999712323301478902434590261847289850891285976056995197900961659697076588791883848189802427183545940196306345363621037607421833297802640793055313268060184724074482368689275994762207164865650510291904633357964447054640702312995224434365982033865787802964193722405334537369566508560619434528107160935386003307470525761955592704935659243815867700583539667614218435311594519213458277348715277699769414912121721841368558613890662941408401340526038401656402730123864835859840495306747178316968045534578595567605253106065762535687300390960727141740681180086906837959235372426495549048584159680776600367047273449698817965956172036649057718571284744786255952596841886878606306587632867677207204782868644005562134378459858558507986754591609236272191646682858009294952766775499231635259036486712424887252026192953937935976086329495080855701158739116919755584574357225017417641996751948495369681924459594361011512628212816405644281674804697890220876009796887063025401299962263432337970632509833245649131418513814672672168777103503345724067784754652219701462453777623714069196818209251171126955634296795855058372464018566311707447677881690664229751786558848202821311200933129743644781478329853299694703996681155251580143596344969464057244469430994973136874145183989897091500784671408795778214579711360387516355067073334327371238536472316686920545467299306511318947715657011648481023875431376687799573171540290727146110494292266447117910212775953976659763328887338303909468220288920955909780326835383476299874028224202912839431973880102672922147948043160519539835563035357474968446008522414819397624344860012512423756196445417580136866606680504798596611484898645524624871349750741696052153164604998832608740552286396354057635521629887559606601135333961891392699485155697675031473478931433971724833205906702582734160875684965062333375103332901213375916940977680467373213872106576695276247791549629982487422205328076340026480172549622191982153900092660670677460803750593568081072539614298228646404776197324327599281202367017443511966318503019827669911072261673309215253441365140069656687255822077313773427336174187237537172012697916948779640277530001922350539751730469354351983551971920994979892261454407653635298135630112739879759277208484331856051979745276725591365954515743510547656396186599202240003153015926953262892711103599369625963783576420993598638097620950196404461844566652243229625936071494847895014804948444119025554933050710894222542086452040904753820760197728042035600148476701355271591774259851328158398226847001193630191006968288852536259678883001332874239747400077705684209309132486885707031679439132321097464224777554214077281234172596790187247800419655165341789788015445531996091519069929584812169130168144626952604946764855364347422166724655381554919398361934287609513686337903278088550687075326046388303358708824575941053608232143265591565473621413969677426962107215021528680564248954847469738121782540198467502686709836280717302232069761577657519852422203729987830215791724304065115345681644824469772818133738054921624225757818330504559674014268955935429817003304533488992212793455106165538355785561935075617446892314461839042809199418829060492154306813200698462666003761739619837502305843632643963715456791285669631782913931467406016631739700382817648165274088414106161944606762493769578038711613039014717215651790215020946977097926840622912471612122345866666784022653422406564561110064244903940238238789558770312726709888538414337871653652353261816195022429855185000820270708227469709070191571889990530846134735439488392882749135951107994592275753396444662182044807763944014732250746365795553794416858020980597513699068395998659997336065472712019003232809520902664360334741790938638603723777044016033083768281540403407206700693257606058897323027788081397523539049823393414255048921078492867246167428712921785382019745626420759991231275835434167012334395529256291794157310356900527405854422631545037058102347172878268298010101746232175900287460666734527405768346016974854172318483628570078406087119010414582686778192836390899308625916742572463841426388666454182847038534115016079861385856528518965127666404031476293107431817196797517658430036836600177867020423822959024419657240209579762552323401514831776566041086058948196944553393875590308963142729889264707842155664441834385812394496759992603602479554166039845150947292972604592579405445906255043773739398993029334833726578985742205511850692814938543036681705047439445332039853060368938032095322851386443781871955949343226009681422453492468238237780303437161824170911608765831228562848322029675924824500162888614979720112639059395154030402389251382678506935201348588498722475697751212625346063111324777885017063999616686358030493296146232333967727176159547721723791851691127584766284797550134830452447849304461974296112554431211713801349730853353757707985988702690110091619266229207348215694232337158468278191042966634560363387214170702087078875637228198666985420825456983985003249408798588696105678225109447319631632116977755899810112314511938257978818083255967979523018821859913574954325351766539431514505724403411432019253174116195839420426381026671706936057332412849151761607894744258863862458931247932398916609187616513105646188745655987716120103169275649418062995163164893442570444097166174966463513758101403170101250113768062774935717858044524952307840929937678616070701908958488513289092798365714804908981519668982310247401845041525051521140740048790851904162827381185070995567689563410648270937752057094281583480614514346432147626886450497149012801322407077969814543066215087607559226742345938913745715434948715503059224627113061157807816574388597832500201791870209039854898515080705636306255398379879222219497929929667246811133310073398577176506446476798177147516230907260761298145141412774888834276888240649514451554563135920207657524203983164719953760568897346242800528966240973534087617527444066321154562313379435693464566501702679919413999506602587356221665318703868985853747387517799853966852598459050088315738334325929673584845993611233770149102520582407948557229611691720856657546777938818404037802962669107655033522697922541464798034712945955938527817687479264369560513066787132195526763114029815853838260324989761160156487344243004551486707378405628688413553395217141578937839036902866276141018149213259018452549007334978748221070916967709729721162167013935958519715191242314265822549088597130103286425885667962483383278048829214812893808351490518378602449292297577264484682881181348639824880147160646421716283986652774893395343988901150089510748932239643126827410417933087621812632698398739114743434600313900304139431955418766830652677682817373422268763909876139260863774342557768296345439876329285204129604525617129206366567920289933385717559218285733453907400301031332635989779272796930069633798066549663691419599320528329961226219260515046699911000348913887808576871237793150453541325726143750021856196369954099889121930502179569610539793723014292989743920956271458259831391676524315280144678907231336360674980399515747560046635367650025328006861182955644522679435483443830612531138705305504439409330131544550986564623992134640704623709132197308066775240340881212423875081811414014588072958326248665176586230758370226136877559903278190092447194063252245945852958855161657672850365169847002583109296210268341847951947777285630980658963014479609762293323123968160848089651207940843833310623555187256999773367834350836185767969924371734602780578825558177732876033124651772119396331670469114382958686862761608940792902084629842054956667896533725617320944130568436654406659631839328229679891456717639373441837855196083640640207700549864039381567802297957577098585560425190361936127226732783720740519394749696648686940378604125211440083262367721578539055324922806265682607408611738937672100080770391438327210258943861270855970623261156824147285374686460984801332770382792328524010458673961333146115418146114562454028624709338471084146505880887454922571166198147111137469731848707234601690763463163539748036366066453944529236110173774770263984576465444589734342874680682534897160436371798039198272008266463180263871685026277485520119337749387237234672662364265619000559134756449818635691084060754722938340056888051278683711136316017932252743047706315328262418809557830601863295437961721872041579333527176800762177885633085330721325773208779510933751401058140657770430173222078623062361753999357162916286055683208715215757388306871341560489245069160029227857862110561836807325717699388338656511868494877077914231090581455602165457566524351086171641364812689919774272766721509056000662036561630882865565179795699622220597298550582410569397253975698177259631299189476194656133575467150134743757591745964329660302526184263228051375149909890849915634957933794459217241805827425458082010717859282151989298802138180269651699675805342935181040165089226584400387754131500636661031121637662486844806954016535638354795317371983351837360823853709254380385648350689101441253247650423166447443742595302329504740417899199515720860577167217848441443885964162572637999704351293302782645145797137327080642242489739257581747944745782849173490958606183293844163356908626655011175259381210368936356161562434075577745677241099784300686668777854341346032001176551971680463101589271896827185949418549638789604277942821735629152975811719038875550882083665007332564429195056601185819669279183562143766407107714660847056741137674822478094988251376917942912270912742672653816804670642831873242913153106846139069042739446831205258174685761919919504899136913718924838697200248762289186937725245232070428859190097667091749589024339705531784817452813841166453659032391242400536257303939023914538358825356966036693187179190893160315987538404320869273721592479258887771602929916018685250662114668192320557236111162886717628434837703237403671576232940669920468977373238899550486004647909783317005588030819717582815899346069690131134790236734396601952776453919214742712642041072642948894852389913918038256544030591928629725370061758304120592952103110924175969018750304040053110242175389899268722456672355788863391196286841990480632761904191163665894925832969229385211685363732532789066704107022667450036374397044701316471647656889390525166272366904044295401685036683986925239589363669124305886377564642752686019849598203173458411093855009533081040279252725250642282459176064679854845660512310696881580366506313334800302835109930933201038555314321859963178838899322026265762543394358634552469276444210161608521950559613883831693466509118527709353725531157545851734128255509595231236328405826351453869187530412447458143037862504767576906644117548948707694313977314335434315504233344085726156747390096886897609125959085522265217320514337915973167357235878965756801606033626719682596388389039422878182284629028669532008937220220488225659885630585927980574881352182591044043840321078139442098936515581410912758388271642721719165870636948343456652038179376385970307093787882553885790477218257516222919606601227882683615909786742927566462100277112582759606224159860432541033386367686659777014918423975107374678695345508051539783297055532319120084777022058340909391247111319246981676679096512328823060760110305378721730403603078778138312243057864536795871408768655439818765325249477868568819160869270167527526460653953255587384832307034086770187663023055700217993598830849837428624919820515970505704893407446253738201948836816730894842130924382737049073261211945580185667627567476318369791670744104203644259866725141475351480491733788832463732958915434560611723510492964193445474501315489421267001439114009722181707500148189937507512971650547105179251002680461329160590772867683414502987371584991187032298287022847449642971680355865472585748168526776915782998765026682551415009490382990106565624714992037394389816092761857411026031941508357780384380699362676452806381666957458419438379736779227967052210645467144168236728503566500763005253012003721834416443784555923410999200495259559303859670478029325162246791390492284850643153722095620163306917290102026398551647231285472185587331361064475630579008915081152590680145826723306416440574359981754837751932851650713384909407326881748839262804095746250978770599587641240831006754507983579228377415955982369687987257891184122890901372305498029063738223333549723152201711550986170846574971833683909933820987416851378047101920821631450261832814004600294396204633991866810043523412189123668180483688995690942407353289954352024456825556072760242272366491130137634762780199110229886506445655340669777911439501663068222756086382811562501014697950970047790616706083556895915978539763380865563939780804395762426939647878413590970916708556655616887344070134183847303794698018994575438192616201176157985594837817846306756329876057443973379368494376319983854113123332735460053197477607057846150600964972673021232485723732136036995138772812877397677247355239448826865426974454978324583162372302337437038422880563638041531718313308578100130100029189537592939481130650658481708001405880838130332165794308473760440096068597571600963676575716527756436968085472631593785644416175485375670279253695354152805199644476779595261549175717861352037706877205518719422463790903208463709564429314476937454643053285237922590804611775424627253468991220730013833830561987034443475243772027658062586882418692642373143814061574678341784048977548841275171718270817991654321650631017129742789216374568271056061618933407588784501277575230036427936543388134906662983573504305794895755596439875402396298321961159472498199145709652221811430554973871971725716598630262061672986771764647520623110922839065520541279738536709469814493857257113423917755297428970608684513413384684693296017950615042042793852561463667859545054370299068474982463189513814728785718308047911983443412101913278499598512012779004873115160145738199218789382720101661376615286972530232575897569654490308164212350668065803811049737612279356858986772128821509777874237496813469784057690970160126509617947626257107273950935329811757734595022476733355458430627520835089526800223349783136310207115735061277750848696984328520029084688140189630449885233961826185351278102882514164401155601710263572068079647126241351898735203122324971333906853550986176005599411092147837799237970239282608075605465700536070013666445383417188645602561161857191801776288860534910944583885468825034882600763503139318013476599270242233500672001096960726434778451309996450613473753287039714734603629240505192930824193743784294365539884474993108667877612537998410085268674393179990183488621766578610504339027609816038843091137066852425545691593196501822583340188604519040072595704811399557883889182479751759505893455748735192457966104243833423646686112034914130714709478775864685342263395564838951261411842574364000887093001084855584622952996948679079293459332514099786265113374174194416378306795781343591076477923874771012507873188777959856123609081126867937311044820025123969563797381099677445188044719994661155887747745438123983595818094886761836284719558903113319266269563401419826121172888669205287069659809739418904208164420625445315066023562764917550949663440983194334727953075408998802045232372564173565139104365206108778534522697421450469522411472470214043201476332660327559303586366154413453418748514717370318783766654519705389787983783436144355866983802216761484727384671143696414393330024094354963051962467399308937652301600231798202742845475311328867601237902744026074905369206384273123713459735540781611316454224440775074206568339672432715830465514586594921791643922619574154176863311854609938624912703609164725787947557563341173084896863202174020683633738194419577072657302112162751257071366115960467316397978130534937035847376116704480078977103286741480152986463479962950857532636158617996232303559742627077510547091729588507773028053056103588218323196547098578072511575067590275418192418752173436950906645713249186615175915551978016794827735388046377463557572917179701091503508652135206775469417847701144567817407107989933182969407448169072582155770545969296239904329427660309429778202203467461697816077977319009558787290656637621123304619572466925094341489960487534217210516189563873884519754112481476304577413319099598140414151790935725145042590197731314376338651169977082042188358382579481553898507443413884730361186822125759208785365271520978503392761715157837581563638662462030989105532804841986240996082371081210114572941121981874852508093812684043073926482109946527085261094535458552965190455075941426439811501108159385679602957401628278807474425612735357148127214041902368630834652107817427793000430004411955367495818839892945769858579412051965973015151015650398350264423427544486167654530081033942590872314020628125317692797392875138550011535935885283431283669487956982121867054153448022797606126578757657001895418825118401446056752590021625265933534750324746303536836558189234329880455359536774195645585479570914312974696189236434799820395733670253101744381719297496135802897858689674926693099163127673632227010491013785333078677654537877157679732079425868791150703436426022203754290889429458951665450564431010442439148841777826641169839281223194460978504152458279185107047979585327199882754673606843232367641568187032661046493439528010767340306378759864146812527345520098631687928339998042011568906731141380427949002934803856029722740792788923449946231704527209043605391434359320982316708559231840544517459736971133758587610009931824553923295066849859761658751027363630028805756913976024808019535476778627404930636984854101770828778745707818305953967471630424374550372006908714881772572406740360761792722770500610362789791274892855437348388188206510220076736971244095773963603154945850805889427879466086186208419629127727976599114932578447989031245875302839569673283796826193336244882573455608691849879187858511549324301637475202117160591730358858722225209038818176326188668279107381450402590418362730123940308078859318720901246565286965552106777085578567454317658759817305126219544477037411843169985513073830539265732094611737909861214309816074664925647629505815280220273117319441301052549032048742542607089968347002782124593925777739110979307560351543947980556206232014717367146058377296508021404274863007754411838344669676537683977191465589824678633706380637771972837895816367115121175200550687416044308275613993407512067862220714497256313932752003660127386530294930431642242749859721896722435909505576046212613687397419228159366217801155407878064018798375017451502591760803060830615086955250479320189716426123039495934986688572830198630450035032205815322499979037102082422079873070620808509185421037543753017102132428324115993549119241410285670617942848300893909305496582845324206429888335187524695071244393288491170508345058253158645074536925548122411238860895174665310057166659005482206386022835351303254236827791991360830711587359201315392745904659492041029470521842595175005097185894937442198143214424293168973029161742887630643155786539976621421390691639847870464913383726430220037578460887087822973956564952726926596234453408709172923698534484935845630323932550277875706800019060559856496326315902597557818397836255929995878538438121735647843942581218907723458263579594065463017969642743606256301818859533641159436794423104534209471268091591642668773540180131774127232490059293085918308783400679274652807031065536882282157974072070117911803564758670062029330157021840402686263309453067450177942781018049079694247220797515976779251450555615494406476350532233306719277853394186559830034756044910615320552695428961061262985383330087722563026784507432919503350712624335252636788497881906560607983181528609905665873127844524308128847687987476784720420323615222772553007032039542035000871632701793736394764669342165748869910777394146284445983352588737260454044257986673706286270678969359227201702124753035705276928431025742775764670508304271147077501497435906876975056985673290732264305348922845058554234466791269473663625213831191046713460918335633468611817669293558611913430716329618776078826934968599687641177302856451422293863652775279063980544558164381031095011655318743929224252013875442884359477450165773842112151648608527180911313509173294980501199912516243384562446018260494386763598071668207899897784709814633838492900043111900225690025891683646282281954896517466848513235921473298307029100286862088494784918943489760761153332691514818269079652012238899061543872126886473446791740017453052516405362833234616764651561700779303404077205713119305532060598315809256439147054966123293606169603466677347225791520180151935036872643651388019300284017619592643495570674959400385125118070361945875434644693339653065198248220193170527064432369873945158704479608980554124658683931204748874293165273855044732980722587946302425996729152756860469372150090692178887035113893552803431922207810767800540338475753517238542363138828191557774407056863010844889782337660716732063004002822514661869408426588900007230550563375249968621240588080500358972112756756453506520282893870831342301687706186995560670515662470903593124653389082451083121513849564528962163413018382192200506593621095735964218345848126823825955979924160480463311962223108964589764159877680307706449457123844671594632275652978325079935061697629121317082581163535416696684988804598499607139023666269567754653169338260884078339222860731780933082604380163965321627159923480348105335973399731673303223288264288865966244384062825426102631911910648163022344636789092772281689531444912804406314423796926046570206266458478592650107054612809690194293195671141193178235922342275919210009687565140847236125662885888689567523506244896254488306715009515423859389375501185049131151817164025804840905312545437158972217356028162674516600375442093868900400435799938816781430507215949791134646239432164788472402085695929985864952181310023296497821491981317650475507244522475592584518918938969987196479889562432468139037608848185964339622500268706300276084401355872907642186299473423047014060361314399194360692850188934390362807136577800682152144903758409330729373517049544981707553248733857528776952979858614107456114136187154369184003483276048078362985905979162689072341465452050781834151674754993104829079684286961850232620796154839958140385832905479696579583214269762750143548802445741702818712247384591069866889870180315148272638789510152008679521575020069576563326586307207006401153146068077640334049269347479968446525797209391779723587921305202719741156256350369062513335545925956397362707332903477673559259314422305744282509011262141105133670137429264597948007354986207000963988535697863752120853848909908099428736579514855752790832741168538575141748716763358955427923532217235757529839812635356013275892804207518348774142876116661132466135923817886867218639249065968687175298424680051072849435507044283364311694578721866090320378919722406798074215286926488720487663559088665640221697258690402340073598765866959967489945027242877126152888408593663006565362256417453821928749439835413851242412725604301938967290129405361191885527491175022624131364241092604416148211818451575559664958005230442627112673961124460790918023857487253012862452185531386536988046766034800343000430896546864057265224842912841373436641324506359828141007541503381938827051761713015530413915918786247425244176733091401665570998279133303263819759062203399042549288029195063508413012114038895907439993873186241881262380721737085071647035348125619362216130218568790075038503494274842857595920595588472049259474601217349130872009720071317577397567722176324635801241931854923510816736352689945829277474744689327955947397850379939759889017855004871729842020659319479486096518067599307622910861587850944230266747204689463629419080015842482298919691718832138164557156594119771261484482991652622135905691053426834483748135760453872163060608682474510433725499197611349282011063789869602714783020790576599167089145278407446966538358637605727995813945625363263408703347238455383600640504006671578484963584341883362483576999979925727689649825235814263906084618384607828743386208298904684168040101666243584617066651265861954524760608397107743468977296270690360767920410482664008164940860972098047889992517673414746026510884473664098399745593899287859351798891653160499384911656038360276561973849178259525194274501282583617981202431374765526153532852938786907324395770230564288530223672157551380299535144711738302589585516836155647885481661773147537706747745546933413197887890125976200420703649141856821903774120814752374497614929270113739639590967490564736046481786008573958479135873474033551583147118789551443299167307408969179505337059150013251864813538723709822549836853099330981256299148895221221868724204641087968261927284738796079620487772768275341567749402807448430434526477958000670882963417164388507904769880995818244113164054689078574509598876569702479437845767799311498937284788726325608478444026949748276522919490027260911974783582200390177897965724752862764016096919616805525073796829606010375714646972779559946280774562997473015074171465215970683655466775810458252721192470442151419355654122611265235251503777836990833537645141421979337117961109093311689451878071658468414822814988016728787001953153193749206350641199182055285298317780025944949785346259896776101344098032010784424040636597590443177012897050086177167184387470318510354364703737912686218565787173090587142393285373120150212515826614491608891570664953826090152888480071393188799257072097525464827868547745131920755949025054810213119403884919173191600719050527980209173662083373699530924525105092671345458935184105627716312390658548157923516647210698508881616237609975559310534891382971642802794571405874983570640773152136541693238534212748349650587674902479120296547570791885101558205484689672188143807635004837395786685024388709118427443411721352231085487101305163077266153260911973515278014703445191064709928230347510667974645417882816255284424790437186963841509863453832232985358108357475480472697659875003180142184860988573861513324083476169173054191525887071565094605954576299487551097250029146216916738378987182522840310739387225394382498811528780701980067267210752256402439777543859122229438540573578884313383028286545268780952090781918520812723802134521596964731651970732010505629879002077752332109612614903711502667210338214768093628412662008545753730448119093099640199538328191283434659564143032197069564980404899583468281517915166189141350557709720598008876886095259942459643408766045946120307757089910200053339220917168205992222963724344916139165445865686989871080370768595128059612788439588738437330265164857186779810663582338250512562008066399970139739958523045232980025261102142042030895375297745260215303822167736343694261547893080484356390509729613081422527043210607787599828793936441628562051909854714284426950806538437848608993212382535127211773107501777051095940283008475666330064652477052315923521999179882575883841019105368292319599957067517320664608858550388185234602979725653606654157702261847811178248372179412716447991435682161446384587433391785212754665981308586411330791164674376615424702223322202600811896648883010242064344888863789093179629479481099291610297950829107722641481941350600875010992687275957449726351183827626713479353491593671678269131731619604795117451876896180987670372632569278145632102679716218606598975314753627765456050875137913775976018103554279273790961424880929516485663950394126322522069145182292158627291838642686683051052259880711844992289655181594640211939757043736091515603057902888891686434983788155690082590165835815483065699634485409816257377026902765086269698282634685004605177233101218431909811185929790545971632180406801953512882157637000482891494540221702367739683081455915830207387170625370397446738765954668394054731540996400914892510139671419681437881157112106765772590280244805025898111113257578671489903342375463529528194511232093782217194160059057332501706869394569846171860693604682388325346251503846633660797084462686906537379357582975559412496444068570673893293034413818604467981010311805958403132757041493269619409793294501065950127085676394451962090604315485727848949615450374902759519955006826516270538901143126319690147718981640758967312261427465671164767590375839705658497287258245763126269397811388316258347719181635862188705321265110202745954649712115719429479829352229906708661506998661762587738127362557324691840886965613114829825294294124622646557642552907325967212069731995345728525039377919954377623014645126170237371597095965655640584527930428871837006914165546298062745307660002882945818479591893505227318290183115486740294123332684472970957217942119937228848750336786031492816578607331782772767673533915106035217822508596383451597762820556882699354964702032313550880705667594006342564027102268570550262341712948198054642431009433001192107381133414825329034113079632534776132729344073265472251396267748138566974613382109227068322123774194144713549437135077035687878535185193756672962598738417252588976339371217550444417142654090952051121094381929816871629632923648136646595602498298727124779936845654739720176574500010248180051983384317630493268280644596166576293326305580207639102418578394663039237797285504498250537945097479632957328411983980293280486078598127550961308964351092873610095219614927221893990371875939104028815488919439771429441960457725002230805839970189122423709554303802208261714961411299423435165679870116079640761806961095224882524828563185470241328159525558852092033022688155549270031936852062918308392161556547015138584957563605429924298718080980959948338575668626595977788052193095451330358379482646603613833049825072775656943927302773318012308471300143958675532918953377462635044387659765935288493550027493905696924602964554004549280194266587463555108054816623757168354013476421621792740308387809382850696377603624743339823033117566673752154211721601986424947508331969342456334790086198329466065903157019673087880693080398331805117369396023490745938107469449256267967276754105198112541418732503138826476815306970903921891844580650693811781225470625229269832583907271891609761942512339730718554368127445415152150152193034833385128928950442368720617196027379265040076218091103843778030262840471727041955689547409617077029288524148140208124865666992046002062905504113469845124816040029233260851622679252552620735705805185672136824514010705546626993704809631280697569745092348128149538355385079995590941484012121217698840286327391825857021212643255898626387217312839327476247128416449101574890563519044348795728020002416616068690237974395786282306368065260342797355836508865326914725466464374359529717355841804968690425528285982630023132147577249091999187145769264321510329692692130477249014380744678280873794312915989169658651975916415046197642378370003431854051164652639872140992928815983373673176996582354130382453009646673347060574190450058720549714345849532243970378461997267350437404401742081433506875731468599040611922898195049955953996305013664049454256243058908644346520047747057362344339604256503682017318923951811741153425904566896015846009498228826825448573852501192357383040850698101279810295326273380032674115514228447521071603648260832700897654607564902150695713991966427115269322974905725991601369630427796188685886716933557115013838758941561126546273951914205267292055519933052143769165393900384894216034762214784013871005903964688704147595926905200671747245725120391026448567382769556475817348628200616745069502511650124957952223620460268523564594438383342295528417978230270015792221710624397964619086739658426507059143795894590606449530341429941777138907175034070506743329147644511724064769798649276636694976353973612252219992543817623317212213057255290965285838248471251533763245381133521393143237314914558131055633175672577362256993531325812195296369814326696628168579536149281194919472278724720881070884048482840572334020772854759445543507888318043889595977677745784203972192259598986995978697779603583876534313765286974806341659447217895813760865705273799564052124180826619030378885176098620681141012107013248178781126975192323065096447511138433995292574106065724600881222077319663627254156879907878767433489515864971855814054961477871983454411532386723293713559641725884059673459833847297119355595650062448413943800929207001087841008600149377053285237940348903166446621089246277256822875141248139979379969999123274035438787542772413186863480102117166364863578996655916699961235848380763067477660873324940093578346095002653002253407959979363529507419427013202199627287967102763732269096800406457509634824774530926703331325611456312048211636015268785545079363720287931560202793322564155272082377400125898113439043330939825859464703188474918341419715578409210508432209204448960529470881954686594016151701828040965791370716973461263155207190607438825186833478642877117289390110914906003398216230143301063073176856182976054121566890608851823046775285769063503688254763166942198537402065296159494909170395106106964142063623411254428719179460798616422715876380944629816431424150500521649768608277032664818160840214872136418990627906816531747851675744888756819708406299602050872801562229003644431696221053384322527409647163629240708844592069342034930596592106126464191902161324708631407866902556732000571838822135493760661768473414962960259451160887871424343481216641340974143485241352611052389114271713204307518020367315624832467074791915847242851437665584941592539290674426755881896201686996067667771710306971318648809114249590646681921928590886970139980100460053551440091807062267673518422100530121238313030303691956637974546019842215759269604237546881437831450464064658403830869669929353653620014869862111023851950421703450350829126097303908992520902787117515661421282656504251742340097956744130942040611376283470621566168331406945479062931158208618762789756000506331460329308127790200139550805905086026874405736538936257969546281795769164734433367821132819636635034860225177159496653916101033432038361644789262449220011382878911707090043836952529391926246967822406036815057150256218902171169214085827769308583093234316259709914443946117803474787770772493671770646702387579090246175497541033781034801393612772589852662511237254317647103823792323133403240401438232998934680897243567213321183872373955401242525469407021089671277284394886352267866298647851219854170036496768576417254868244679779618724976801017969692372679237558905668760355606217684518664072876293992935752179108451592605389258912199061057083342914472166144242589199334585794508647715726425506699833224663260715134709124580296718075030983805100347296371213751748820432449961124297517165794188579828103577680881712142738214183062646701499861009782164717818709801545801600724945123599605828420293086711223446952607805859774161810933705585256772475982526740248052769587508412965758480396658053968854436806522518928942956152589737815845880692134458338672115715009677309361952823614316418451919622662654792962044936035826665820393669569416724742544845901675393444695036734045647487386333851362394233785835820670823687512757017889470328138995662268098025329765996320185056065871949929808291378329421925767168939015973062896662909880255193025615276590566519474395650094668665758245683060103541980948865183143718476944282171523913138733708491037225968704670853169444167963372807438834413528535819809501140016312422319863972977654300421752306269350344226489049019679866256613597398927640168332650373414038307982203226808590757938578400492331645398210510460723544786879757245576938098937468178891665670785782793386636837181567595518545578452028595863645200956770615503447801151935290111770570854123091294026718305910292150014490270749683265269382849497275328419660372189187847425944266754807159890208656340510745296023214121238545699694559516233870883787507146593490685536163683779787864453351075987497100733364745040601089936212413688216432396681983853695917625504695608304488771716999230993023448075833935699319395817261865913118255915808835090956857117430916188127033414594956732211972777654891724573859787548769799962098400488090766903665901685849776776451771881077127612820677073346009684865357865242441570320407659187326317804670714602155564083389367359309031741711467444472851588326812815829456570156192771475066735474829772796215205003098233201305616107069493974416696972384369538261594072693804984937892885971355155050092826764333834181860976892694732461709320888278858378283612671231484225833749524195743788403689513644830330841027487597800155509826627402575143772134126616186474690000539048486231808196203126438789778979848933496542026892491682920124239799522019534607950580373811260846165800918284846470095274052296478580031323387479844653386744764430839955038514624081731687434752388990320783233722203646381905997219537986420411371577298393193451779268090553800138654253097828342328218181903668710885643314617676574804196348310269467416102607704035954184855866536187818607404405475396293896151139521854832622659442677840030461769317666738891183819918016636197382249226315484389724873098162792154076757056871765157319030252788869527853938780047002783735590950146643764639166165888604265921822147923295511079806654483474022152089144178390648315318304185260914279636755363693170959946907324937253726239848256003894168724971704889408417204028959527972940261908902312510409898834539786562078615177423796526734673192170067843060886545720749034324600028293808073167080865016056804899696571565801670201844628078302084054103451023504731194535584875731462878627937257932598961205185201512055310348792437341368979740001290651218476255778131637356362804341648348763819133160349351893734149901101334726124001342532422984947485410925341740407543371977860374551672510256283668255423116165018028249427446839964499424505447978110561050036661753364369552094007903838269668635791541807013276203010508485456351475326050811294347552229252114357124452719032269091341424034289396581053879942220121587092899146547769488203218773756031697552134593410937025211311308661695461500501801182012278453098181430593527113751136950236911645373256647702212387209954600274430674142125912811348317864351531769490742478815856449693519297518188545807339250255694159301504456237924026553306138424198779063952342627660424562252935499291021664113560454647843312213654196370757882209838890990125541390616317843084325350059460974543040989445953126971119586307481187546089751469012157529135688730442341280985865252657537473982753414588286543051057424913770024292497272986073916399266532759232655592708264484755854904340147812848729052818144007054544836781099981285444711922786864377402582429143604104364603351543804896200501376997585439388493770469324976559779705017924256183047917223308937682191604800386760921952758532182291387527667681031097200204022903647918058092740229121416634628896116799404101229887601927516690076737740222537139851246595972441700400372798256458636969481819214543602260100765151729983958921321853530842385980531337579360728989142666436974869489207437436443801989519388655323367077866651304383166890240258949229553490607469473844930707192310021548080462307916574616559668202480728298083823489218855490072965814425291644662887061726853339129032517449043106926212331783285860420122749570970988036377188577146129956595253255924769040503892419637009459780243713661317410495621018849647153105666878471106023990822724843032510789263541755799714822549283250196058140415726093302020338941659178174355594892632400266145250277377286585343786897040134442601565011652063512423255759901072530255329279682855535267253662735380066757453704842526287108535273413956059394338945352549969447582483607609107717176956219863899291306773476689032761737612018018538646409585881579016988071451601753674771118899040267107809103607560859813814718282705303140091850139161703748039750236902816709959930152073172846472926949289327415330887323619565833879622941964281268804544347343947745966916031245151167625779175533161317039167646789565335119046718018589166717089946020523970492070687134826605004451877723164670801022831401609187981822644562945250431493278599321020039173454199111835726425151717868355228993235243476588794665377906852984339020820473676861337163263111048201558517833760395921672972312396316592702557360594120995210682312493973774080046381268752660798690601800523337154683385657501391438754349424314657663982329114544018028448297888437223021347641386035760826329253894802106319278065999116363756085830067793334551085564614050379454326105624367138043786258665033836165585822518502241193076990921473514853785055667090749147057357239939460328356466313744393823355264402973018742449461966596499677540541976544702943708207224167439798354581751502947782479635504880824125244520912841519973527198312601409857108632437638887758550325489640535966246760100952581863496090658227167517458902331086668647433674145157445531612800915658116153921772244767857735918203984377747550335761368724056821192052553118492990527743580245797788809566897210034223955105296808666694867828918237653832264976157943150857601216676997364547427193296846938211358391840427119512106275563297576776310775193123730414663134319480125731022106407485377532395080821459063741967171883508281982081628493657628566777626616525654281095954833478432571919904287301303407024780412203136774188922865802917313833576542649722721522327798435373509900351172828649714136017457850648920869375242198547048331286178616595035200445009610867817838747532902770774970815372381121772538319682616937542565238607784060806580544242665742688877622970924717545755342233222893705011379451420436686592021763456788894513211115583418956109456127799048883001284497113142536371751523733246762925214417931293522415906691834549854726860429319700348191913595333965458168563338040783772652049910530479014904562475938684276976920214376782380981167423458774566468337229982360637831445729065722070159429541429942074819804604457578642366953624589391958683447700185189652071066187759001722451194165973293821223980441139772754057802022000759236676964439746563512429997338737873722815719582257173637256381862270944457094589219774202281015250543838475233613644227757272806838462938180611520822448139677958229125444042885831609745958220058496285859502457823597591985276803245683798354594335592204707985749055026535826441300254322987798655996728950777997591247241062812651340418756567678126074911908258014307151510250418120613094310560639007868311059935835234477460655157645593008943756484148450193352040465273274537127306617629962551372362555756604916073748873522034065564981856932451199606539869379882880850056086995958749752133717621937622711412675672772858719886134266392752350641158864385150970937975222447429743142001256126871540288504143140109225346413447719250296629201202376439462240852800291501516384658188932555229791185539276515633935045445473189403291963501339808955791672094572507076524718610334417425674426639679511800921737454820758667640343791367937997060829913766911391724804316688410375399857666636378061089310769616634938223380551494046821624058303316974103612251810710186118810422859596431877835663628385693814530220682555278627813455493857404472490419803291697259883698647646103099687712232806581365971197157265979785466225449800281094614344219348019828350631398455054945895470703687894109990259572957605268635946981698173821660068523565981810669271551944609809977054797170292809180185161787964924847441996638683365655839712415030395957585631985895543988582666765741600088926717915781921759522966615748687775410666742020508591619849074474053100438363050858707427175812898356528741502778838708859117797249050091587476356655219665779051749565055517874756830843811636372131635499891349301799365749542246830774730975087094272518055766560369616858951565360159062888520829210098144427327336259506155205087801359879668099179060707227582412147649624541948159779570015276833569152307838989598281803916313290584395163924236011149851419833975361183777669494933740220704752063571458489285027995428401745507633903433010600611042631094731205574042872008311200526197461956290846094486338570892608506089901171780141034216992833897109455955154351082137460859812066187910732781530104995971401699311052889527400557452954364034444667559509811994493823687599275501974911461807966164902789736493364619258793585333858731551150206895045518240482832039902982166803960785615593318486069033794137428851555908758394281909619222498387370006061869178515762353860488042505146699887559167075413238710404660054813419801501391969969095208349466452762339461581321956619984818245340536400401431725909139563551823828863256960389030024510002982080775068074593738403017639924271286870373704389163018928942911355163342187045232987408768379660804085891611596430571096997556116601170025533003088630248757575068383288089581387957482746433086440602860876005093350739643941123495088515593523826164998262682806783743271266744674515141382791340964486866738747556233792520787884831339163890535413107859734654762024083879610065369931028824799820243035718455890463315836582280310372171244612799712562545464728269581346965042879801930585409182506301503750020351208316462049788950762148989492046246832971250273312926616417445040032781798841391171420344249912139458909250767123441460980456783133567310201767353508878087253963765069824132141948356250454448874695887196454106416848265868934265085387824512067188775722737263467654935010276902241353512592372429733997280170357629442497718829324780022944880350672555820640370838529297770602841642211233111569040420144113062543853434376113297227792052817345571860256337632989193458876626058513485101260504913886490791571948955561118516083621507397891934850880798156165913478884139888676147250764964129881796362767269581674188472622647077225546595437286673064469772904448213171698187224193005507626470155775659747863204511009143801553288899288108444844375790022177072891538363904753918565211951315912144490900024034648488821340483394184302552367256195221923315947988174811626474486345861415450689079556569776682975914630551346386058933604537757413658617773300149012626557656966432684037573485300057708096969242631470645026400028681543455642418499185388052512705794843820360033181690104509216959219294431599487897306008236084410212469497285848756310189403602553755489035257310574351537624133116630662701923648422030222149768509228148577321477770094435614769440756507053436531953929702747899086597550711928076205870136791120260107376058038053650325481007070070890009068636917158650885395208689398762437746793975587593030636749852299364362351619527239847812761162949376139520483058714021717365478255452511738854736828455320121743853816364833398021490097394802135690359676174953801963017457478154238762334913926139191874025530984886120252656369890803050161712574259771272966845776427654970033684044972640144250118921430794254827567787603484983058665098454815699780032649153617975990897878188948499031257765961324879004881898178793233280075411697975879391990424154469155543396446258053918930570589307325233488839695786093757892460092138295007410957614013534513634418438911964071884120994827810308325290497137631085794870240361563963153153985207908450367591398680077737160911462669052862896845712253755254860078761469060310329483819951852495243937200718498751206224089780256422393926688952370904661610207696080138491896698445444637096975930328241818009509724852671585714430940542593520241629467284112049522108080665859354207857394716430171557607842813455240977845740279237789299519216452877242517644087339965339938514451917951213714695434290250597451046628185229145346530816126219720775286993905807816387960331533901422267069982412958219233847480329741816167625275163934870858582269482667983720864290509250322372011523744895383172382277477679176275059081194173131058066395724302746246544446069274521914821654210042274706553431292311423568500675787005434292974352914147506819806478607791884335088583106631461342295131523494936968884112597321518468997080534409901414968081756886731006496118650903680265881404864322361464412087822039576851493991973485420377069771993171070107432961176026126732501484057768375442633302070804820865991799147164751797424408525276862172069659750882809057108987418444825031311370676022395132047307672994007304577600521905514853586148392909940901787689002063365614601305629883891055432177010072567743695729336791725007787472754392929276574084555973068208276418120454089483554561457149372229804368368389561947498272588494496268272639962146006371050338468121971307310412485030215861357486255822097799050790926229202088692368513914169536047799961521601553416320314415975277663427086209272020418786178306139268414257269570793679494978491676748021253902061338967902418898092551783418610546785691085079313342620269739792972362674631422743769501225337873666392249477137788879816238499599456987633407146274360535258057292510818163130316074784099043678634814806626503992704985964339072548707820212322423040821776448023934542182070885546803716501039522435334630096462488614959835554326709118546259724638248792676463398170818346544881587420863861507978189026384621809709861227442161515941817906271205503194677684293156487655755961273354379835209846987489285619553100808037695606324560747011025267058075267402839855346591823156122189496643637092590647880448255325451606182012097220551642180979803633751637440262803494200009022400404001582706664892855703769665127039480903167181153710728029608222673749309417094207325644658404482552815008407687057673858568521261763241679940865396038104151241641238509125197471201592663400445509307964336386901652533221271723447647506093594005367020917198020239677557205390397198630293059238419972829350040330540373761608555715206647798037949458831945132700116985318949771967815908592778978174341906547834234136733249674310588319648043235840164848035663398494028005025154428171764554482289391470328208013185881919863711357842157494489516867344318107304411792902207309368708649541587658444039674820098594119489598058639729470802024939271780338318004601903283228938359555891498691111930067275697998151446864650097038349111062245862285358503386820241492794053352843096890367904981449096936666451628272758408121096044581251667175018247975168545633464121859924166820643382980970873330733463770713512099069032561879556873431118227085995413746083339604255749572202996066406134337295688428772089947059562133382495797816181980946018844414722567210260981740747492625959075089064297658776503051753842077141405523943846719485714306335367572923013183728111931783762015022546785304637948449001581969076284643924777219371390372278723954026487660916615298835346014312578453772526116615170557406745612250373515459361826053119893085092925859664911971600921878888254589603402120910613583743107981285468145963289551321339684605585966027416510748091211000761352424501235935516912642914108268016747843237747769258660036238926568482092943073635852079906006884804977701782853284577402670308903064778555314605954902802131369306870066833547470545340789112366608213841928720791751219949772615169802406888833511392734749672338166207935298987761609492055133792626895714464624482120995468246929392951188699454914815047244272526586205702402164075051351138431084276667601742030887423583384697761260820710661883829938620727077160546820793771427161115308809930780762767730982531236039789875078289128800530139750468101162755317761898497411131310020727222065683193373009907426650961082491626488530466545519518520174121961361050851900489106542926479129203078170965467000227170525420542030891526145962564015910340601902425862933321850374223475238722769041570084985458585834717093868102300396045646900475317202657756342855693637056257532604030502603936825868858013289620719427320168371246379539647272746430969363526155401258724671972698146375207469389493328201753974052047052564668457697003513538256692777970966921566855158241152404357707374315871371314836883086579643050528679301708819044806085804191122802232041425916210477164952390513583064454280271563237070389541032747267765974600460902349335270071734931624615646055141634995800455376247384090326043897392780137313296789136216430128522797631110661309626726292251090466646572366306371562710020702372835631908067578775228799985883839439134896310164793947367722128358853652460122074904818714558718849513936907670575978167683899213799595232776546333758359742528763864390555198636680159661737149479284281816715820206522904551934463865473641636728692781737957893343803026077582874166696199266622615922095484907005611001334553097452490353480489148879337338100405807858139026428147396284940963863467911827211290415943677309997813998692651333964412689570074825067021982405232374228988003489675549268044438231987140367033916840599105743136621475954852230433888055502486295531027521128825170372595384460086128781799314801066479878220028369236550804047600037994171419559934732130728552494363467260379391250805269919586183255857766389644296227593302839379711428594615051481759351541334081112432296814018756718675797344405359124709414849073828217232492460549574710722982917810750647191912300839505247960998133043779339456756057032360403117501554914033486836846555833500944981628447609417256466778771604975632445757716757615845952519396268692696484749019480084493351985725970601009133674402138704379271293428441002857483340699804374075373777895814985121506483670031361061901610510195934056576906843206605754776023487516869343794068458919897563928026836227363826586383441384556797459369082717418013767561749255819657736673167089062207993806528647374945135464185550835469896577020464943158500289200659441497735371300035254532348700988158435570846052976025462578247991655984940667895076561174404334466057250236083220353840982371795058212679398149166323319371884118487316516158866357487226602308111930709283807617128677107078769609721469242240005386796960523929676211357420542363654862320334459451107109032316715301468756911188044816689506363408242811644061351052604382081229121559465013116714757004503343723481658864167216900602834310394753301241436937281155319986606023114852060890060977539977725326337596157810925739951834454885382641307432542527538714610552236992720143550806333247197345362611197762681648307288232822220333638411946030712130744896832940972595739561581691256969083551167943287498762550601904476478638884186413946569216575808863159591862691141934433897577501772183072373396348723037081236824524086416038925299156136358773850149533480196079531571793189881701099206066110553469525751453463250143963784940167991048476307105587999594532432203366123256952733925770012984850258625793736373282212089052470478855277209015793575879586819995090382989625274222983221329772912035479422009608437582401948907890705997568739247209639269627052650334331513049057352089867304515515285611956429802730806269865544030645048507932030540702093347019101067333431131368764078939348535964692529182380725792170055777324774077274842204507521413175353391064697231792852857547289541265794097853546178910017292231734794637662563758220883008587028862851355827310564963343932337266251131218653099468811833440191278671700021802194090540039605475437543513511955459208625246058460987862158883473260067709748504598830577867536115888495261362864165012298685528838457960663205525242473909557527697760444771374186275174045004671903244108315451385229247304352345455835492709202984779119880064296260801418141204221021244666964764351362141241495551054182730499135651299160450335758046942378016562746749122640774397789662786884303615000045448800160768032670188486327394521300349040584902565109709239090297662043650660085005776222807941973269474623141288527009302039224590873782292887579374999988112654478405229742025254387251977761278072275612574609776033148715593147374682940450329321495889446009372238251415521873940521086221238156088552889465356895108680915252432192213258075762331084681417940101323960577296657862839044126764201671640819939895540978702940746704231709287583572189354077670625163005772092740039465265708541665783492419779130900201180810132020444270708310679419493380616343153113127199270716075677833392237694854511522965082772039493095688856997002104443495489274454837005907916347755440891966738532475484956264508573737308297905754123204873567289956528475129590001924256378883631401737661677549191945231294734781570749525274040208326285575719978299134488628567058357003182579729528138928383708863315313795166618741897952541750372913939890827752601256959768139347111313015867165465124567114968507545224150898983513713782736099374641765859806657917656098479614770286265608104655316894109409912772982298733467654071626498252562249620738614996879861332729833908740427126983446579645530729055216483948563615543030154038336701459590100559482835366481448308040428218420018332943192343010433759368973576226801869612735650744009888522249971341947276585741941193393154804596444183952091526107616205947711272128140084621526433752889360201225908094437595928074235949159350825493134131468511980341827529320316571771694365644762177375583208198763609326233377539588756823862051980923312687123270526684523204698793005739503230174478392846593248179243682176729200950295518591169068802992808117718578786623115202591162388658896124388373276307928749235491264675971218526173029214290259733738053930161473956548793748486828958330469441436863292616665219831135019259065610197963427607338382673078438862474767737541924655084357961796769324300202989948911339016019792810555978922843290313273562684640723594304968939486828554166821997819326574359634938729278070035035216749311986147711165652301471374138558248429011163882698762895063496793414885576315868319595378444141034816762234920773682293619933376376930359450157661699768361459205090597686246974213586955230744650171720881024432772738325796920253428328831883190201136903212332883738867442229751087679559304702478897251539055160126281557650515412862322944191375195518735987251953850458907455874541650236223530828124518637266431909899607750210836753128182898183983645589461605532142643489092426399946597756561493945817398511007325674083783618800809749817431892555346066820378226010742225713442896398403751521566807244081547661901629764607848957114155167537317050556207007848551112978638149837012190476040930304948728287262727317497229051947759932595872418057205154979937185628501903122698661513394954271626661243223366976003303682474143413157468399194970551748064632254901486839414764370298733782040529447316024954301451089046947674235319647270464143094703280171313979683866949593551268719296999504346028149181527446442782756188823056976692749930500898041196226620997931367377686605738262060634341675570637902845954003176268155676379310007825548419618741909837833818940769348219547352307018191218905082517085473019846262336357304889159288172723115434279036610721494273837442095524308215393828246510973182658814330232038475973815180354056353699770884167151699789572416420983804629070125082336855882636080797344935698820327587955951010418590715803530445481112761394268255200224688320158150374250456852068147068537675123243112720035772487453382800959984422838142074201871308720699598808708783277416632061534630373652330225004922015353768246381318063113613227268618872609130264512147436810419004879889193817039807709747561073857999945397016584114595911006877736737566716258634149464103419426504887577590171046527446172280416516752579309560408181415441742086533747178852088412962039807163002759894434924437922044609591387126347373063955719888471497891145023944755674883783121438595804757264101115313559988419343989079725166033397710201390310017541604683661865610912661545685867102267503865015047805177985590745961231919780065345845074399559930358004738165254879659895366632172585562862178441637857951764940502441567636975923557091432918406131433179626749988442518355475761108718402240425604356719432192813439857627415919744400182334837591102014555545997007533444564028642873904735418415352446582070855811512034725866266583074460698442422597268421002789940886564015864193114905913573535617596163191311622797702108934095619455638174070542715878076334044206123248160889424435388206839424102939086984024291440579007507894133380924062391612328332066678707624056325946851935079329878954103603774824008914331809674558951018416515543037696827800934442430982573822464450055096386153214462120543410180270723087457823800947542767097426560888902589255293032629999267558996880870321864979529590848697633844138380564937826724845011216919383295683272684676560977499473867048181783950708572075750896019512834793760991968013360586284215977066849636469440037080090737734104711776612515126895821305968353894359197705844897492912683761288287914752383682511192060979931351041302150105966866802434956789897901386153959654689060942092682188804830499593400107189822873735764296669605230182115979304372918473602372302205312503075104554973148523179775428566703742359501970287652506963236736217460162040557677461535271940578123835021051668865622547106231426404946926791822657106075630271898856093004091478866607428166846633501401963381245000696773631069783521996345420904412933070986986117397482157976044134934166812219234073679373159990588693994562095622257583075567741239352892877113859039246294789024390966718004705448200302794059689765479263061309486683186403727512154556272528768614830665663452607470679728176154196846555000740818422380842377702428728906108416842349204244675017158453239629420673382182041892359554155121557261490747932705974822837946585771804829592555020951649109418433255337056031832526303173019184879706984995554698154132385374024269825349179495553609630147738804538924840265840593182647050506099871921444447522952735192553245857405839352217978884898987984255098790911511075466577567577239160657791464626562695936568110095039072609284377459799796565309855646458306364005165930072436761045654159920678478897950033510739276477293227478561457936181269803155625801988150658925308612258799500386996145803120110663224025171001895324602096379485315029868654591676025476797542140556503945949296646395934928862202863620631862010731201901065484109179401836633565803072765283465880059799562329848186124305860509786600938162125980583370175840875836489324781320504129158132595176319077322115947181221448018904980104941534219089446716226111624273093924071117041277980009491554989753287053597152937214205257541203829432357220335091903846508557616020702043676428031984332360159501269007979546425640929882353463510025514915847323463520402113584138305269822901541233483973449326976543423306267655772716513676030636949738366917379492989028269968876771860239729389818590487031487124138842560848618154226804177528254897658658061551782196605621260732480677245275263088502000957521880867696361478553291671202201334518057184580471217782463226465562910554582213795448177624147118023710994313225403889863164666658456785454666375108030128778370275321665717630316849703164283417754435455941383844316665831039091573116101129304261589498635888351639608838115382430117401908610851681272740684844991271340436411403798506932858531404809919887832443212658881696622565167086328829554082170850875004603546394058203781781920341555125517577412163755646098162590160577211844658598599614086039405654429008559051930537458538931397189904139641245561483144094109593487707058648096436863157471138865689801413280046024858188174133436580646458976399494846138737585771059174797058005603503361825607632211439970619577087326540319640406758965287583858306082201677179633382909393227309392642184900401511042714788013504074556307468816256635646978566266763122915471287417063391819515316105232051343249926903119531107592805102668817404761161678373003640155759337528993189519032175969283762677492995258675518912729681351433137934127846639768724600112924730827055035399538170047185197481680902203314520909002280802548685085098949096104409434387723701245445945686691852292326519205652068185926805912401125036204151249589862949169304515029275048416255219010410939647063035374836861128102167509328479811581623546689713619912444839622990956594933202891730820454627236163232202516054602785122740965929402242438485998106497174001177173560294463882803215090931622724457468771465188857458293547836165616197239749368381824499783376557066737300161475951705242808568924975033215206927696290835801391073551757459439063085312246226137457208429348893822751137628656738075103638453905144159308488225712700454552152316651579193256423099755214078029126300271680649862696804685580132706976784156433395336794793553238825010371805838040228591183363658699684215845634923748080811367574894804058325321438023699007723428953440461720423382453299667039730251479746631961637413560394763312619530900984052846041029908080413021241508811703544287875469805322039970980620092450574553369676224354590716927119463447874890095084358125937183389654188716546493367651573816177304003169480507588922123011922400835009264420652360998616218197988061362215365791561642072980789525458168102127571553659775936289714500901993680059339539532213481826194091682672192470398207769032088596797999473905925637492198738938070026079461121549259389352032859126646283340009675801207145667364925243134904491525588458038177001234906383424429804762457967300697737747226436999994742469370677506928180916507893259441662437008705072155569293760610259588758515341608784191452947457290372335067010080601033688625554837594730520177159708642939582283159812251168267007999673011012844523496158216645975820795871426980610750650843877937199519655084176487098372566513129852582973139458567442167431571218047216587016345140214786557116169396788522166431930270296112848653255104576558659515150075190041505141236330424382393600264897266892824590226297031013077729235783602354585384349615948659915591565340650812649052836605242307402293723118557491228649740104497194058189589567391857465925520266013671611531941852322273878786238917700664928978531379277546373261755539987818391573614834804034862711877196168811035785778710297631376241697387526538866782595825695082253512491214728925729942617178426096630635657213847249492122317804872752748925982100888660104591064289174775147478358162824211359214221837268528871627776816284241326396883805905169695360726135936022318320420833456936031512126938099917333996007020283039280766929938926561936177116312888097312280733429457285895497603062704192202492132504015701705509532441131382956399156881535933001016255239557520799181982450994362679523467323038710970545677980851360181316520480815379928328032991354155601811908393959516570989307900719050395230184501828111255455885376215310555345810083988063441639622345721888423033304572580983418870145451211529592896580858015848054915795450591115124834456763101908583344440507563165702040069926161099437973182664923649732009200518917486110093209053079252065778114142245896810928592009392933048537226310472441487076936142110685148338579553974788320307672475986251869440244013701930558219972496526096569914933526441007111558299721093330217044563871663928330127696859116409589444663602373876064068852414255186846202610273279001480959519986065692815440722687579323473444957471794080446681065816967221696103228172168359768437202566886222998766913765328936695659059244377657621844704334348040945291178966736849057585768310262225630300748677845636650177429581195283168324649198642411684893665641871492811083664312631939958594974634843392045643819449062520157086998901330162238469264375397047543514424210896014380216582636366367985706215489514703134559359009269100094821013950852451795686692684222712334444932422272770721802038916469534475000339087656549885814465065354473295339172714527070212320286850580505533691227833254071080951966908552482033439881929024314544980566639564951884584604716345779828711795578107360852425598619277934168220426959556612983944458605685327859043928033951101131705159591846599201425846644644475724379790462356569009368914375634569964568184204711926055141670143836887472931457681051741437495207287627011731103472987808784013219600944783200687695012982792191180326938188813974523986895821022696315485248335529880630234668334227893593368311553601667639619805817701174754989442605855634367148285124177197918592627778960727301318315660499390182810840702730989592557326126242996631585064585648309477968923189077543042254292404142932942112540553169934307644943144078395376244384901171986867859321552290361950880868783603901242398371721329587757518037885886177387418408859746338973004901870808793820826945536660457757583201122722549041386015780146617828351537065770299160945723000274453017241353041753746349857994292335256648177848032747632843371573540109936081873174233336328835691480101534679826954397066881240223960226167495418543290076889988872375340125220745666969034938054544168855244219503020736383400698926983466215323738858162524341796673017509473477619943923643129902479442272644458304570726454234276209146650097625361215469878173136746100125186585225672487347211899167982906427028593772585159011077989635345088009353627804577219885321550582282125099812373441115411942515623374323624312933197836470203440140539914994651362580651242154352010113214758007708365641449096215411643016464602547364942086948438229780176198864053033334384172701567218656767181409270197500010834438337562205932739453412126590698187231364397641184281053581651165242860639463894239811365316970364134626751001662834138089801741186866991681518351001590879212224208918424880999043567374333732814617112784768105400559394831523599388267715304360498070248605717487948281053266044695189979902328372862790759569950134986713020897844578121527428918072710408877039723275709531802997422562598697469050242068099638984045187205160879634419497254557715142705621273686193072299082032240999711927044871158181606032477912408855403297480824459424359815406809006861539908230581395107961979785631513316780534791452790872524492329884555538554985198149723094709601455183975367439489253047431882889186229811961741898220703474693651718392389358761944876125031566747480303713852126711305375146834414835463632902996332111199249632044769938561837363924582163901302341888227676278158835469345792760338159623549760036053690383144754398433836015207581823986059865807589413835509992997521430930400676456867267698826264082383520720854642950668953091888534889859256613195547586877674410985026687807794204412814946883876745985574560699564090354295123344629915475555336538935235499257438884912786026637938123818112463850698138409132570060065256448658139634550982587491661449130295300874174341548292592900211660455089491392483200585990150912310834506408672996037479619047180614559750459319627669358286641423967908263268149387547532652213673589519077069315289267551186977196935154402155334820606139161192572038327070707329644043940512378067739245926318078260240579701262979016748490137303866434004722931711495113089048202421580482839626251113338722504831838776492676741825762422424037320962303052802839716859100356080253384768391545660713489563054564087561010484658044545324083988710089971924252291726299844883922083186763050804836437193219812792836931571684253253132979879375148173888391375055828522041810591642917509434394057522933030008858377950943217037219916172416753695338110179855937408354264783579839142957024978416479113163429891871139157117916853408321302108863487690292749982045771023696366228163797402229900584156601433183817307317242363776390562631701808465015663983127885159864863643646846400850465447527122392616691049066973454041268892741475045504177658299817028155562998097585443000622705233737851612298159316196500668379083800546700991413560957011507270525504155911391766499916776248859742706705912757183322179096755016402431585789011328142032528200495131320938190810839919464001829377465846337235747646157397517850631510482403671522130183935959021957618904791745859143889140786475386538124991806266901905941421575849862011557790430596819763450992506265153392501624855320970102228129663231877990427953769912744600196893332544219720041344222961083569604136757560979760361610505973945613469484998026273309036259464184416224892606922162897489690854875363113861832702708938110682201935008179744838488235403873628507467549574552154182458452002493642187055433486319586686063240745872749856336857666856659293131082174717124987881276202946608383893133927538014191799876553063878461854581801034310451645816846217283495282906695578463040593876012347471567580132483618547999134993713701479151179353693281415337634766036929165650358611651953475691487022816397473681301516989807605354724316960187013000037643195091451317515670930034318000738477556087546111700832997411642240063382374480247616386994985346319635031646889864257137479066888706284370214817110580560723461636622759651409557378200800183720083778094815206084160224179893160457175440673062925605100810360949913594007795990359668221504267684890645955728266465790328672224529493045530394847307517315569848413230142123207295448849542035964184183858371740315020595774362141121406626168179838656858863532928829700869531358739828521626032716154419054200233559358626541745468833322340282088615818462037547102838194664441394670913143985750407915936223326641870125787937994322293754219328414109371706572761534521431394882875599454116835175682942615395562442821639002045774605245647530898897154007229790671695983794348707159856982013168689620148366802001711168586217334723575483013849449535772313120303460802483872062766121283032260901506727954465699366055707790376992851802185204558251989914576348110014466525384241133236640480907297567771608504310203489539081780962210926831734584927889441053095552871967913387788290924695269092564707251986723617812150865291871484987298593516504203465725605368720733905768068544301651018684194725521077123396865056079140610562142875483436380933278343321757871582369337411658200628542112403054577918823263608626032110053172048692720208329660310685415284766820872659627883034337667214719263555398106475348511007905344071454067252369094010256253512868537448952779367848300047425777687969384519974186258391501456988070405037593574862478552443171580031566587398552933083934558354878276851315576231753359089381945781205286424071551415835811819700072140297234232499658401475138772756090739412898193726447500329589840133037176207424152194289218964650846065658910708919728045599766820041510569371042660670791340136611688660583329167775321765051201290914280167429329065274853112537858958096676033328550212673616561141973616754660631853231781349099172766433631578191265435132822663322031388746789415196134749426644186657041039914350397328394114138285618727953251542717902759258668732734954887758813671985321501652579304640253732785039627897321168779369453402050171292308132189411152830022544580850444668036064774244253587377374007521332317176822525266057458849756720931276553786148641335458969825529998910819611393469174836023229440415292225384429909875066525084611309652207124855766949375957682519873944512098302159642653507063417454121231876928695679641093371805812813262749869043874166098989401454766336039004994734535118756418453909054996068824980641086524953544302050582433575423467496391013415754328786126304834617743725628898173630299726089003557244949901004750584906852111953713852097104264189399105768130906373905553401074708380941173919883020146456335679112831709962548511362291135872870042190410147673151334000987831046717963033995880631463401539646024159816287051536399804308562823410103563210680392104655886572472910440008119125318913363129242395547536525912985996029499085659505935064895311272668557016909818702228545019806228152530611261214906123005872781143979710949820943047690069654828633751824076445643479334461357163820125166581556253859281393345631649922070710414961643412751540222502975792500476489480916475688518810269685050443608962684819776650794847657528820839217242121690663047022949187958193395764067277871797759951665539087787577561574713823290965011562277570115341115673538997759576110890838369976445138663138340146039331253604894444579525339717793796733875282122959361803167317924080669852965845797235492445646446549799020218394763672261084479086873614051289928127095925493811750223839076810316879561605250366506797266156994138959904627686039857713874239464799462255491483595513454296493299616258235979052053883355369936996227789826433140152144063764460281152300946885496055405856402962831305807931498006811494224810771064992118432998563451336744903139403781994347445210093553073711715038770756204690790165540136345616376159629005418303989483127641889100947752261955390785115727152329826333228597289026052869049884660702065245947349608001555139743555734981007310424948990179034891039274647657133037920612470143610503594446419820806923279903491601028814032580512202846406088776143609236954939338989262180606175389423616643297840628229857909816533995335434579892311200090764241932977739161020286851543897434038076742786603049989596103676446999655780360570229504206493395987118238694723602694535324757591670973973382480741613364730469718137377603160940165969044624745365693594029469898184667942038450259418877185570747892142743023116771386621223781112974661801222228028318784840138721383087968040650927672128999049147380247355737235019975154074153257773524691236358684642450492290168050129627939010385540172732659596660470240784483773030435692785829911493744621287839937074978469461838646181455893747730912754450658895459788287067553031305422552030756106967774040423615846891641503161561022006635402136181006797538022415757441374438881835958492813212447787115373579748406478910645313346498932177003757696926946059803719774547758688158100120534679039013406166906779824985447200066984214350921570166400088278407412123367083551936407306683030042525921260778112646453693218931402844806017182522191875957345101709874900853450524051069240927606497652753735008192609968596907916180406295821925228680694476739142057887910297362586021253031789481387541408400434733775674122851531019008709042721138891624400044022377691217119455466195346927110033517509004784463139985946109012797304944997311240039540602034519476629297178187984863068440044782276937056396114726796264471868368722540103930803544517180494367263735438467948616342568093949451767028954277490584756344095141517284916811126362494907667289540715230343387847156460839925369690285243043921596628124439518242985694182931738703885266310961718037982043245550308356358530959034396996259348982576653743204287461201348276036170357064140337617121841684306549428187654862525088646198691703964957737846180066906994169833633717752755193890967574549292584638447163168534012495065828301159244403934233722298668675038077772916436651867195071767528235325716504168255020253250510425463521858526442708003445885854066163089135280666304451948729744039297619271497546290958974904141651504884167166077048099839987923881960268648213571435375949128314535954557007792348613649481478412853014172088616657278576736501505055976780703255735984390170368074159224176418268130950333947370733356355453650293826998816547298597442066334684039188335310719352179675531387225088682069686271330950867493969582295732709658504084496033455374532460153650581642775285582110171882008561507461334102034083838338053632349588957097450350877504019833907810124598299982484000796807650040801449469908622868557666859497098861622426398308746761879082986073832616238731775460594324555623748230624654721189409509998947181922162231822009743707680463440022933721070500374956256225638179932580333876702001639302319775388641757323482690385049503456711629788146982583122296897546406495014768068614611126992177163173128694376954285540164523695818282812986155782606579451398139215485781427697912094608496664899203838864981111839727305740113756147923307511850274140455600390546388611100586885627487171243806329437224464250897022173001312415781494101099118134328302932522852880059774748461465647977367287052304573660945644106582438909087617403097312366628434841895469253318716134552132061297946700945639998715119000334744689763541017863091180188386091967134840240222526894614774854410877819847961940940401635995316221702340520236034836482491271173925652340303088399427460228929676500932381286229402823404626856729237500683196989518415435805240104371748750251028767010306866393718336082275807327308482455793392408803924993743344410092187040739050880689895808345612209469588224499156269782909560925577270485530338532194071266364098348442842649464803040453991969987534311758419817459638176317712879779122506835499782293597712694880815031689172791662807786696837764088777207233783471655324737683137873777829258633179201862373794044624839690917037378088019837358575479261298062203638080483782014018933461885409208304406774224426301565888267580055001224429540744543248574257581691291882210078096422746217516944532121803163573366771976764142989355564982170396771104764922653351226627272148891589337865116324510193847542403367009088542894392018761248944450330698948824733696108465051484837721022568238438655914280652393495035456542985939748616983949738541241617068474597275447085188299190663327904891671312481151304413993083221464653313642424042668519630927034756387641303158429705219610412833586527061736660611840329353394636846466847462568802639420653852442488829830947959532005578142011500832970824736243327272781535734534499691945022872504873332089530417871389076266864218587322508810691477469206212281609523011354649113232872903737236279517277528601329227230712530096899585603767311515041853684215564185985160489333197578210801301260672000817081166589221212364068790370010352601021998114583010636909096669598415561153933038928404252208016793239148684240779401131993776139688973943572551547106749260275056522703319858463513519140918240173313084145067153277305833385469468510871858797658652196025617962148035934857636264278060519025818321736479354968662303615389309740802079943060686099663253502573260792615219722868072234118122100978949433362938099356090995096259779913968512506645523912916235467692468373022959976784135264045019631936424600295993392895454572767928649674985234325911936027196309029339307592371744508593085285233889190753344692291787566309712148860556183740871728502401655670719776252366367062578869090518252586528116342599004190373629433642211340239090923128904129231985404418980949104241831366332206584657515569805987494300436278003821844215277672879436570219128986741096071082310963129545864072399145098403259500119277342323259369606761614261631413387149381900297598225491638723038019035545488597606177440717123438394736038905749245697244953290001453815948832904185236906992586763207522260273374923115637434348158516563120492713353856898345543911798168344410422307196642518926387900435435803477313626126566128217708514131688800772351303734962966508501681216984730871814324891970827555551658864140334074274461349788453582719137168436134626522033600492979435440744734562948967405263658321399451614559525040849403669474769821140486203727335546775677274538190518871853018823711268524768273261846036007954600406288742772037428609110060192180368802416532528063259280419098883642114018085814714657166469541279745115709390322249524807651719355189072380955137721805181254468722631962724304369394368158751696262034953682877067064598144029483114361083215910203766089935523536655961247752977550826243501922758073634693437167273409087217597983550890381576618407005418425364193862500616878796239498729227807822868940417538965633523924690954733992113855423046998189911116389009549792061815397605778846770412867984829961080662909795920427619737553237784252263915747997403217283997608232532460695347780101827163205113817147816909092791122383193159776768638875332435998523205044429770525401977493506659789950321428782167598329895129887930193698406832936663123118702203563222960426684011978204193386686729128352398752338105984405416603219043199626122072071446207921186588901937304689587645483481681510454303912401376431319968861869329740753118397615301259822524507711393580783866680538312102218033074087194664857026915007176618605134827887860265465636048812467473957184181439276398160272184485885634797705901186205439963685398285713790912856641933881758119229183957964213742621103971594698538807460971023873505077759387886388588746481745271461650358226868002623653084247998395285457870563620625174329164012670672543981178934150874142313247212324594273125090899795628526960645284508670816581632358236260892442639605206619521219479692159360543250927517618737079532044613056859316563902964737774390229051551108014926315996344544694695057982710805898876874067303833572220342832103096659047264381621964916798441378741027886047733786157993255391848444085165399455341963903026280828861229816281780774416094870098719056103764264150364248076584716950096543266226998785918517732132929414803716215978469003531731611213880041840597136003878137501952982650309379862204453767967899996552251444576232984887623552841773535124554872200940013515284992326346165646035914931797129999740254368881389234977772210787195841944121417155343274437070120046237497751775298601233209150531569051765736034358383187592061115275223830610826632321680585771723281261591265097552150009994711275148646937005586556853439217930081103055699710186444222905332316642396336462500319218385296813410657935434319200948073295713164482818982957800751307255268029265608234811834746178751067366975079337503288873582566048998499473215955406823401936333116394526971368330040953298290110475228085637235265772046807424649168462240108157027902595889456180063187095830902181849708564602879230190148376566266501174502173959592366511397769263001659310294171332154012322543631599599906346085299437216612992299066824218158191895767058546490986748075219875306448829966213703886607256168534858152340770481888569241640968205422160454044945533969486543924174642233299435943493487344147067370857108491232144575241623092984330841985142490529656914761024761177459299679007101004571967288381645637555714504823475354901701476397787649388095058710393246345335320498340575308444528325439873398709612100580672585723579560111524297652648472017380537709910917307277691416189944196041655113249726979984793712351868289765522908937281105602055467184947660282410955553831378931189494037586752339084150154989360094888672340229321508630385146761453485784166518621676013256297667593372502209169572187883852854558793280175610498365619767842320838003998822836940793098722074045284235657430019410904071702751904099513434419267505325414508669720654172262828945621110723077956534679962212166922312716469771553029125782653876034264803587827434142330883637955220634547545977247106759104184094457809757612551085255062364907801583361818586401633688373787910530521513239491901094226067792769855109672761333350685967117002035718550347217349199738684901941136784454650710957801302780474753489717036973507645130530465932961690135245093044997714489374860189851747720792648215626399140223899123280581936269455105681680250837522747391889861810845205839957654751443980797984506527176022703755841156926698291187945024803634417760980816178319967789259428788186780592186786278523511725077673269739330054994169650955598092063987461459898495262087523350722336225852246179177863432901496944957112497092464521874144942060090949384194437569476604934307276640823508921681416588984493206261942948209339919677199348348391326611103613075789572753213369112109821278568563981478662606448039321454702520180960615655495065875032903247970009057354329349790285178767041470834223962323110399282153111435038801839071108408036519916277404645046808771261782868349381101534225489623947144003471076299417391086555241808962487043946468712096110164218907635704497080715700854258813051794154212039289684198955752730251047067480365857914118748374179956461373663040039005034995459637494147018029500001609330906952963002326007093618061526598821651489710532432626780384028688049055370482580291803911139744079590910578435708051898210209876438361280946110363315956363324352726652110086205784881928536644014082887120605336358863748465370067729425814033326736886208012650522331379112867885028814074245140432889214778736133630620297978722921845130640257479326753968763849859564090662470542493077571820009545255466256461366784918739277532323939560241072448121185541959704033620276347196616212530742272373574630523630991791545010687254225578999025184232677330309049079220115219937040477061158293581576614458538753752651061849966948207093931619178138187551936026627849513167185072631363494626429175468733392074411362314676000822714590297719777141602966235794833690313910222933644429801381760507630891965081587533836063161518830976593582431172580814308548439884207293423437624692682222776111059600425820759187683753121082783285928057435906472865598444605440404008218489104568210469917825515323209927042086274960366277495284283177123173562939427348455450508889801403218469167026895334708616228494958056895804926913311056589361578025543662574438737366841646745953863204629022395710855850820058147639028396934548288809205258688936397174117291390678330232351061213076889136775604262554761638661645445798726288236912820796261671766842920165840971936689301356509973330718871956988859979139626313066318240037052879107200955850683281796428099492619059636932710233082578411987354197461577487884270760446631218996060921462939364858221560260389351706008403797554998813541924814426306456610236450188554492124356029449035803793850568915432852586170072886314634698768337757524588359710065602046692451139347696928897949310134620173349442788873590414623263871076729664157530877156646611504606128466321814942621111997545774850586801517991086751219827755532732625208568130940757868151564454382698766983356275385071096288907025051127329024709284174563968821751623039983611002646728631704303280308398810632263330518726550999195992455446468086987657124190821119784615308328379125067783038207247286712938015888314747935036341491103484559187812508227746034598495844535111142488990658283787668226000478211544585223620953381197865927143246553120760492473331048628235469330336607940999196603978506091526201756480216191639258275499344695188210987671171759506280163846546961945320687965295364469385199276689852634781540594483809713544854149568167575273310972568398496106224247427829645653146846170634934311347930887959150026175819333823925681298161303006934375671040945880846232278354094138733801718973661092312742887804537926997869040099441276506876424749024506631489717712381644783746689853533027540364741646870736137704178859576820381339117645449089033784044487834032360527416822315890257995829873574991216650530532000480017025983847486049151820799136168661023625320561454929359218095644451550673763436965998903052028659424164306995892016174656412242357842858175085103043409602869579435457779981090438142560311034536181510993310862261896806814497516274896623470231558892201915530389831258464467663044349992692751441224262560965105345306041393408509160529387617915565348029816532162345420562264738923700657696717733992684066590124645282883036533633495017569757724619326021398351554573547607692219531629627524999419767591082126180583652908910891835226349597020184704635267203705582578478829819718353135186280509267861054165735805758236309983548528913071703306501165984460717039398293415417938747565304291274021589895627701144529571491475202841521762631037266732146129128408663427091663618090259097030846688434349216330690796796286306833825954350784127199364281299833389912043919476925902266385437259258742247995651662662452219433289360309717490695083766257041745893154578504820993617557672720189360690622024209910380510959021092254489817911913184235576869334146700266990425486478690491610921451201175048245205745482065993206835294468804357822137791780100814225669266060085136050586791909580900944133145634443360246611491240749231465686569171060415916752521775759967294325208491766047000804204113172932683901524270451141101756154960788112652747717443045739983421571953285214269000777935591478304331890397927316119895247125462904210718751621829456112335610043644975170259803261559394780158682391224367748893401452272875752269752274713846196612228568003781951783413011063370441117096534379838410975751279474460871015811631585044528611742379956082525649164977367341530248583874781217010858908635197081307846903411819888329893526402891647797773218003900249549682685693635134566844515313799144788558780832862455820746618520277139435247008102867116339601139623230302963770179977797968951545666995025498477643089679226697022509680367655384639175769555690443072440632655598648330076374260019874773944554950932746621516052581675571012097378156903333184888136684155602605521803791007167559671064567415819142663923588252297266726102742127050025626179652820775819772323187027365867302663154771302036372280240940241881786939358283344062390327052768403809763182630378292792447983798274372631296872385492925923543204990752752007004273858486684120982650627071143013334610564842191793919605291489506625881298155711859175199695851098021897177425294081215837490295542842320553851395188607258597583362487839357797550815018399376423037537235919183811633447225027351710617167543171786189177898201424120934792936723709738463400357641798562479985119561807732789689408131557000140208310133096287365437704946230218728894298581191308535186941187549417086356008839795553682157087285302043135380587880155814177925436159511861059017805602689966815287294732639289674619969052172300225672734178757560626084714149739601699167576978970739225933065535983794866093112890247505630247363655176572616210421510571154139047635307169805311500219654920060078636970503629762343636950528982262330665599204334751934918735159606182016222697586392067674388915163584636401717855872531325683187146389223450811867762369645234504182527740204637175727317928549837062777522973429505273466012178833572774247096051459760548067720976049258470705811586954254880101338174474317953799117459578059467459580469847840136929876188556257190494494305685389957247619433299686644879031161846090195966843159439341312277129250482761352577614803650290847978912677402311473240128854094522372241520573088626040719748987591242651774961277799974114755914066209855427247371545880316015597937705747174049961666550288587057591032024465534805067152150695282173937189949523306039257008113788367388625660998147710939556433031041741951282465620002933513584757725383116451829781386750200361799731921683183472969677658658461082776284757930860748680419323659852094815609585867007307048077998863095632469489977953589448952238526094781977858988591782076296971252899451276652328942058863391883556587219263815215960706036539655458286656373643946122899055252012710417281966493642741333368384708081487418849108892524023272917247000792798326341219110712073872508613929207968585029767147475196505731915879209821012648223957842995319529543294350395562770818033557455285430565841293351350363081122289540536237628342766684843529100360557601579521531399578341266873723788131659155270564918377488318641724949992994796795113611310814907150999019023965769409851774169371829417204798530959542381124899973133936296566716991413307303352597836410164542707412030858872026629909294571513661039659553936745206509897200812956668408555809575006224918024714097044300970943455913126960393724005198136712900990338889537033670594938826852208626669974202289990647792081292280941325529377269796885250469661695094369592472686815479510232391310550980046502444176524188199355015505168351743296710481829102821828349867218541358996483198563565260469435290777644005863634090705033094843123765719051275528753648734412154858510344084979596655923203399233450228088707252804380286818771701368615483271838796207324915277295419595713137524911854069638732801638165679081739869363657678146829537133338684852123494555691374261023852788960849339798702115105437434297611132629783287781782459798120247276947891741014203803221203308502627955306805116621483293986753476675887753973089225849547745493167092965344631347106235754225495773102684803567730094301615470284621108993165248979605838601544708573355648341315817089223251828822790980874132343262371228034797681891802497222959507908691237404941368238663541756305444898439631003555097823495312159668463862864195596372846501635162038133092861738461120902149005733795153881197090387130162612550749035560901726025372742077455791614243233343268836737828406107532696282746397414915586015228901187260956629557557601139390348805994884508356448282588052755914233658429865806619692396573416255333388499302165758156525458910645826617704729629869201944246153924961079562229885458282092712230594574829255453906857185140468266963912236356835878323464682622997054154931322840684716337061691834268450489834666982023622197941704529244811075475992488511138876658709622881082098083202481117135170243807573987077017655099499774219617482850656640171730130778512543080778386284448350607148626900351388464160415492278465366485655757459429002169879298507055689091148777252173129959452700960166957383099466864597238461479947291105012317671728865529755001012230217718696485786959585510632322713850418676040804528170682572504107981619988987899505413097731647430668391752517398522751511873478970423061947233854625490130165981463558639852450611732705195060092704239386132184337000079419813460800754310735366916080341585353991316111023048947198345403107967799091773268983349788410502115064125090084300539530012606982210437209468672805689130589492517455434828878247204776269667059908792136673355190749990568461117847811093629862345057372503056521302231917128654504413965308292968395160262371097394996979960609933650166102036411091605763433654331734276294676161105563576185437760886271333525389693375146963226247216521579518427621375432367378072239253414142613133014417360809398020256505732429523767561239291583443210112121752185572151109178072106622011591279704331364999764245797006913893471136249803592768101253396731700136255473114325951126383088153474015673340184037661203260227577561137471024399842788713192783947167062298949016469999951031282706439986649200599860816535620149557919279444151945332316807944977430401444224528702088775723002851537787684327778112336802224978838220978499738846419803813500794744506559862035491303609969028971132116655577301062110042033240173121081474402282330668370470252169138243650123002420415014269673088491939085215169845643717966166943500464563626642688330544805315614346158138919831898054803650191107166290755072673371727402829795320268261396594037847275023568427053755018770524113561673305541353271050121702275542722894554901283685663280796196464045659120083416374534506276616481759159514112585748402966773039121307933977853165934853000807917102004466023692223317748742057619960874913626978735075620801047405668981959781621505219967645132676879847265379981954178640546029601450854293659115502142823630505270935618178723041014427926436160342003115245966150227760323116965603892517931318093723994521846779455498480964389219705487386091976609697635023860397137483519794024045489960902712669360315794912775507676422926398773142316616728524178975378340755717994594880902646120395161980973292879447159656084724169987340190356048524752104804090772177035644546973747214057393701634199541422437538762818593581601188758997831982007164779953580306267303774728142351844938490980618644869534519847846373524491756352401897727290265839766611656767769243751568246416435227359192069616498231494808326012149247985717082810531926921277826864737999582406273946769954373406044665201844480470687705081979083848192917927660726225521924873658457587969835572566503262620406888527225331527173930639891406852050846783104458535564733245624067521384999077286001121173993016941476644605282617925234063037902742151563663604161954847606965348418940405140897347506399144363477855484580010849925785267384087766024580758834543500324142655648091688319371585947170847391417675588665303592035077237833958027033848999979494043334567053485633442006429590063637560541194218710522073758118390848193763924122260491986803928089875102552859512644366130341280776144838056143564856354072079053288290675685564333500196306214652995514387285636397226365326557026903410959647441105599378384843583130242212428284055350084819958256988512916438038702488630471064032782375304773955008837043042717142585535352823275125324242592199971293474146899115234670655336662328465035870855147417131285306540434567637562033525596693418756229690489591328627076903771500002881775850569242137068579861822825965236047553214713615047052778022738902528998003433250191227924326746396676955682587723527346232844123957445021049645826433339743954917782599837588379337036846668978098249935762256077379287867030151965137144271177754868835768178145611180540038772932716257434290665341207015643331369518251460225470113373130407959457116705874068443355630273474525428239465076675067225374637468292926825055318811359707622736203972947374622905101300023251880392672255420623014408626359550064420310412607043143275962142127438848127198982609861893738306109609768842326346745598485490230727526384680269453345609040891440897728319054005236783816749811909154471565693647394568893418961455972610199704218896937100961421380511342747610615228069886618058829185534883330852761477619058294004573006326589757125744154509038273455163410304050685725905249289849351313108120500311817414425452919338958962830586283649176119390350708761856308631680448625265034659010018639058942469134853505357269194240410750411567927469178824846873819444104280647864505947243735302008112767835346581260594441755837009841147649549427913366825461715479997325989371427125948423071102980589533300903750777028574966951251199570882304129841252538120057508346010850872615153194229722777137519755516427332324550457253523066015569891643036523373521109218029905386135692742925711109933201794795256800225795181634227191228642312066452543006147109965293870977228921552210388373308891020783332588150739571234303098014231834822681807046437789894452918261523771259895179573624577879437484590075639337224711240386635810030558476998317659663555365440399809037880389493673364660310100143281627747211914039270875336344420020646696119904056532840483470689081225069497234166121143910005927973242584723224266544963007159068239684804522539627596709458175682428304288607883537198002621118459560774689323504367510958860950055609583776359108587414198579896850101892796923379742317117810013976717264661862649615410789466967522931239419342428946490084907837413114055548743466087245691643432854486513447491698593382234003979371552899574637582286872288054818100634931243457692617233182931075791974589435369195952923819955200571623830981143328817401543119439539675762972493930616507817660576994093033850730277492294233726420683642082855178749267905917524055598147712048403890174622115777013833055677076869269994481691731566241424070440635144315340447301194440473404482942773783894944525199216390085620410267226000973245456972450002247735232339528067298465964496234241807852994478543000519246118586639420723083958770115126135805902861827660635848035305404682776108510954425728379399384529251025347379503179572582527229632962117675418670983983101891451039478774271723040816196757340492211180883443370039283550608344481346037959921764345648301124637902843672876288914442121131680965797819272665905430943339522378272214278504311595731146650614485743797647137497319116338880763441771552981690119748728271939953800191010197395002709631958910517811220814522046804279903574287565496864059851375763958226194603324112112538899340606401674456542869627666353278612242225719908006500272208528902640854045223303655359320894168050289365625738197524176911147740358114435696918574589911731793342229337922286583442946391777902420941662802564732522227909417542980402152335679322836467643119675528476770817803228460156649983151081582675204819885106461243227270526845615964132835475582884343489412396804485919116479295704124679830903726713272760467822216505036926320055494408062523030036417760422429231122087654115660610430407897439828819933283381799154169707905405730011037565857466858092298755671864332049563169095170031562314383506412387012743536241189186258122879740113748473602373251754931378844666934844782240567418768213764347922889552220824545744026525011676295890946410439430115826260014317696966868046181949558056104946811440354906509290977582563298542682071537366382659163534781107506334134869028158286490919025019847579286439128770399082510308396722498835590523463460764639687572781023241467418199600296449975225986165900062211638625261487055230966498764090997751795672071346320833535693978811735637577894562176279593512762723337079572887891796505551395299160311944510355327225141765352132656562568448241081775496205899744862749661475017168160360797194558093187333001733156469171404774749126564869302249357538208773956786364259904053531807984682285050379103464396819456989382939619902011327745707754233053591169214642979700041801325937330838219745882524609182849680911476807252390508681624552613663804320628517244376707702695003883491363282739387052996694585893140436294549757900996009279292560798955667221962933255719478405327610146292401213150820934291738387838825420006597775719166180064661866130006647513418312737546084120100682173118296765675000335277373059899506116159138148051730818807719893924309914209826066498993600809979872692746521686742117895470815825747898318482915701122242909484839151387138406030437182646268830178715725737326539973352819253923191359390578229281086071251649449749181706810731815737245646916367701151163118966979389772679967520512464901742593530360821408155144512912480206624527100803466867591879899526673874001834269634292354057373315264261119710242980654617550355336638259404134402248662268168812289698244681391797647010741906337203908170020165454639139024312948250571104094153787524218875969677403446751714822277782984698980884573969718946324704786022963759597543043246342424334619736695122270754539817924800851363912636116535021370549455577741444665163120210552574590741938651364787581542774660775744342344022862227873962437288847395132861169203723491041104152571987838902557574247683067150638375134588104588666892838252884956721721497767253921357739011898017229220690367853768598866169893212629325961104482532917990871678369378958254548924716064940423466103024486513530552375738867497608816477629233886603770813813676541058177944261643112766325859940913058285493182902386149527613802900133000803683392103676662947370391114420976170470472550377595800505630698661558236871058671578217252124785956612048254058825603724508997731545115811139627504343147710804987522361907687878087361663951569949948501669131168153499141759759701683571086545902719809306318999972088870511704266706461161145691531658397042614335097620313531954660755979455227947696838940624282145881172371227557368334913428460872244409177997855568362256968889906172158684827097509541211768259931945680174724991429217162133912103797621153332705262446622649526009505275854034762477552853170605138891654036588178717411279591844569030418832397254310910536254231359568762714991009210931130228378081229442359747590710180091474949024475450294342909003642804195252883648927068218507548806019396551289382340609508256014989873415138579104227727517891024180710408785546585000546021657170435238150871584925233593004723776035953636292906576457837468198670369366626542928029024821182916950793160857152853546770271956423243714897206680508215334930332675010206764227713980207958291620670996803730258878194586088663810007088059587938553043471773744066758033484427443862446493737659811037781822237761773880185309302699522206533454595700380394717680608261423133452122557231693914122561728521118593895959815844476169384073549243864509440636331049484433633575337156404188934759859031819533994656217686941993008995964732193714942247560294183191253316253191609562991605239413838279924825141345784604712583766452810279496791119473095599699185213767253527537973234508964052513895916601565850211714678836242615073052085311826657818951355847200256542868879595707449592823285323505371655254384039971580492989384517841828890658325188231830559202345565372298024717310930610264462877751668374693059023340322575226165488545944109443514858664624063936098462275699953526900326129893669181101818368130682336867965395590524444113147661342173290827516745414198680100330445546802421560352515669968412237211405139726902278794307470247065800581222164540294971508401578057870012306906038439905396324844383188539491779846446767539770779591281354518012990630613999654493238557999266093770630350922235204743500513210869639427869672682845782841633643997287453671203153212309784576309330164462973526255247153367470186498930335569626934173437895935103542169164655774362054938138585840112808638942157489443852435508273199384411948270803978284089016407148691406760095257751683577244539495988189298618045947760815451214107543089958419382393476094841090346498891973167191818401583126192696470520052146180221211133316535616224161128330001386031246012533623326372082543484260412545509341952229984878867498608103961373805228664346201116504571751954623292759852759458480727766681098841141177606325171664394857101195359725224087687324183236165202157071670789277588775523381551763347540879878072293207819631928490775679592496740227768324839683307691135629191793499115484475850130106654059456826568314819151393823311681059485552196735943136789740466825066965420848178909932908492515343537902667179014737244246910475390712298362366251741574347458129099412247948496981191256512158141335440385857066022333108403130985425064668070831042255038323846928408464108470032656354462027291651820634050259916149655763541902102311995092412571691190560458295327511198007056194464254936168531114302018588013142215341572726904197750048161016291778088033406051943331747309871978363454277463899190790730797063361538349886946925648039638898734225579323245911317213853797620183854372723943621426339658120910382453540211721268652249575015125595615661654135719933907264961477979518879549679839813144685273005157545771168362182882091253612017179102038568581067527574237042731750364013436926371294144990677581539950366552454362830036768065121599513233138776825413036183759021666777821169814258598968443409927209398418520211200811000213636430208444141681843801371383238292341900407256647901080249737860145471161923250447183794624998094802050987968723334956054621300852114912430351644830056647119830229644648934753299411233024455121829160845861837894162042489614641259867005136041368100089297613634674661264467647379675392834110063135045565438371767973271216750253178680845851961357235632250962465478591042089963316172166001075518381196091079150439101946708002085703799480936125064519789475006112461415067172944214844154618677744374481242604522019628092132045191385754337380791974620432991867408130663764913523207990589561056448087283761076927174403702670176374903027666488344900153866082721205788988883560205541678898951546181094324147200964981424441982499631549636651843568992877819885934286209156163823495998777102225632870101412704238676005826407169727560799891403317732956019394431387154878580787782839673566883165016755333072105253041113576462435523955151922195661133743441362272328347696418732236392520771858588922491112268941438108183545243611839372996867215217153629003282210746070314765285932157897915581761977880024704268678602172717417621678990570586416605857825812928156265627391069795725593989402318767658632874420867219607562089392386266533774725580727158385518806958751031995105453012036110521922248887051004818944401624862708333923273083908688218586296069453153413029648049342933541212875287203253765012267329015541326476200633540213549588756704004457351063010941443478691270465245689071353187876845150473148167517125184422969578130925971043309148135115052238615452904328586234433592122216104992602337077344816137910313335866363240308500093440135605609477073061092150913588333361400642035644880471180808882199079158044603528658908736626110966103856964955273543545331623821321878427687217449772291011425744434858549462831841954260818903426088836365869636876710560217321417847290894518407369882757767861589419293179670103987141288753571665379322631324592203864060680679145697401864161004171812634906807015885746809994881317764486815143436495653218984835264187215541898623050637963799821140692554669870496394866141053178561612074264372712889293244201886675984911523333505623070233077276133908875719052533942508716801028525051338415362876967519246854218869156727976119054051800449742635552681113444136316692787718370648258183423817479359595978209449346961940940541366471118952621618057572441324489643276362612762734810015348018416095831375829515842484123394882752501339223728282282117693458201422695278598530015969699715531411462717957754176058351191373644158105535557993257571330851667537451789466197879065573516655446165631786523947133665487780425979343238323338845745757717692536027889820649133890575206785222114891901067285982822976334318791979438173557225288731605188866562171084141329629963939479246443609201552885039688614526421732548834398439597564479396094989405352124971001012565225501247909028176020666014966093532048312897734630436164276433808419231361116588162958618041591831153186730689997557819052911198338083436598224516090827750008958511173346683542826339269613174292495610380500419670205735676093604889210002163893587719607868097135460790015602345415270659321404578887440687902966792272007231935858120190377257340149810583368958067363092460396996836830574069346961741389907895039992879462611611035095327328543868892595279770221411938470447398697771252010172280978231587680771640433903986290706898791570860723481422016739836359813740946191985320051905943832016444755630603345502144630995520060987563075859999877834090315787249734499247198025039640177006392640598550217530640556621248334414677156015268534260263733966665213074244512426274351794071711859529174620473963879827339309946443137317639781615073701693424498371750935489516138810383802453647773789456984386379691003193152245855954177378451268460849562264802446698383180753520860667611634752575959937134684059702470517380400074663045364545832043008673959998622046035773199723683295680836026798962759370252307122433989009460159785933605706029538257913939427992021593504724329079080462649796479704486047853874205788457862692508675042875337692828003342778582117349541769057457032108066879715879373889472710606364607459610202982779297995656774597624055067044798491312966543221648599258092139393458513454117699573467170627660567564761448044649655861840768807055767034016487815149892626417559405581194512308188504273926791152852352936621827920328406973790540625172320112936331010371585910428888056500544497295079950043891745505997149265975616449177165773686919893749359440190629997915026699861654895915828814963712730458859755735774720743378643376579910983350100937214462321210843959520098100852091861021400712874662943053195562873362714195547218468141789980134445465841321168767413528658420171141981334259472810340373411208377859950755488313457959685037559527615513779246696527310856654242501074287284914875416290553232916705688438009136533064793181205624157470764371654304904685983966976113146385932489821428510566257972847970158728551438960540247146834266819273253381281569846171770549914161946148319995397465056768610819196928607505984987493633284315536155211703704929524427764124834423336401378959099408985537339362439153287860671197333575129891943682921224006419836125648486556538240010112791441037300693781839856736534396864118473676403026684858233879106437050355441753417581176696220698210220357311833761902360792950669145230044299422569045267896184487213666596340176587804488793095420016725547582335813338840758987935158209780354135605449950600843719208153377593343663620685747973688289207949961968001622724568853029724491121317183617892075541508637001608853524440051724642009134003486198542733008491798964670997484700958910295373453360491449158021376755441057365556296458820602598799914230757708856675222445916959353785108977695744802942384375943949539071491211796229024774444641094530879092144939752194286366489951089698214151317479478892055803962150608907767524946372544244298876966261443635276238156822755833226690889975299382341134375328462845957919143184770568865230169313218755521967580541699004165229532664252260167426787132185316038709085859443869331996980403582895947212468935612125762092253632994266638600940271267251165052077463135341968597098135145748755580854181095368855044302359600527496797560250386048625443709416210029131820441563153971283056636397961369324403510459413896643738587176422977445844186780505664776014079084955289109440420814942734935021381411705550873943814944684927175153379901359674369315652189761374371288625355709796119732463459911370251366047151471290107808223228993177906409288623903873939310756250872445993496899205344966292667565337127256405625855684113171754144413770366975091229072734911495683638625979756902436239638314034819012093265818988947757811259165078298433291340470631643301732884419479025921201605147741239661785063514750793847978604209974884203283030666542107497408597030292446664545176683179092517756962601387050493517115928647693532481282832497133869521505816879033338993931324124056652913460733410278579519960448221344374457293551659993632280057909620349388707357195048091205209027101581180709346130325041017037164334282874071093322193822023180793791115634735706226235444985856973805256738205721691046221143176758204502015298279606965867857398446133178667447752598032862263444806892102073857701319418667237516711823810314868467146878249798892223119154800077372340157177365775916476775482661169953450712321050009747401635492213070664685785016538704810334155319149585115076417385305291186443226640846817429236562312226738515582351200076426917683919291893564498899868832924814311096260096161310341650752159568652178923464376874075067622879496382881671522630296969600172891778922316607539344502696595866398164350518267995506855443606706579297085264350094598570134989727819838193970163253230121456172238901022224413676894115960672203228191549063078733782005139065265774631689988916558413686744268664120466139615165086471865489360332421336180512284808220289492624195906462570344986416176955541266965163753157300333955520927863969217058060697752866694184487877489116235203872031882851888162473112276617371130813807012531162885411537653384195828638173100118560313938589798029781249988693931995020653676356065365418999387507628827621993574933092736062394116071647894798765355122683903386414914934938262719126901649136962627279054993917508495325128891615328436184638869896508905974144595582010906806685079287248255707682392416276925747003062139078580429693757144203385145912025298184139206408020455395189387942360625055829418544186954048777202853203411061795786790580577238754922687678692582229083171029394536889705274725253330795408713700007821624235937298602514821554526492548983512961824289029727891962564647084880009718687940233814717840855106731865521105483438578752866785888380777917501638332726363078752227750397557411283599741645646413025707166894733907503268833260992052522463645253545121636533995663813196121245531372461719796533300731071311018494024991549734195068520966192255167528246650795916005692936911910203262022277644080825722018928911767008862378632992327033134443102218497416759255430394428296806284576474635115752671640575918549440562307968562338809198031559308492726479000325595818797460639619708650439706833237820566156096988105110109693640094486236832503049190645450787034140324411245052729041372157575001784133218189241323627753494829905318286616967900816336347431727382483000053449223105272538165415828693264701222241852239454978470002692009157404250300316793401719956930348595292695596720561767609914892361035462254048405066080981370389536122398180579679176000205058113537596833919489242675987453329792664834314999598029994371650722312976259070184478856187266653905143914333220150460117353583933219415951121002780042309729445389877845548931067583231907131871836812218669640380813385816352027301240251970341149188615063846838430047622587141290051389059854197876582956313618592955769613415554395599774974002586890120389274695271325671359994516262924517326386256521668868672556833880344625709792465413970024569081224727300052422134419015963399564928717371388560356405976303795880452413981465668015867509473673828059880303544628851962300283436233629732612841990853916408829378503041306367694383477108049812736169156693793720211870340041598224038049960410384589673249684991212841303677894564982529143722097057418168603016765033639146409424950749143452834513890990618081612794783069426889159909219293581981230466548803625488051865116314605148031279120315032405019508818963173108208036793525142530743913915097286057466695809317210735901774065747049418244364623982160379724984715831924302181366606832283950875729559983041580601590615789176828292243389210495160264048029983815275174256653418986595897491647014563921941274760677810324032982351215740153353953193646410449153163936430469062677893364110550878882578143414002231594030634744293578751993786535704014921201818612458040959713082313396788737722848474766305162507872434179379649692539964169537026387044846196469509158972686415396567450707701721187738936345434332443454399543423116558761215340931905951334223415243872216884610479790569160304766096176588715224340159132024172347629243381417456689436761035465601448640432458855775533004288017518761734498937616886120523272100886948830791852103971069653070796155616444319396192876284240997827956603819383371932477290093172655574195612460047579767001024533719552706589239985975682611108074630080611453143846089318026740283109821591660201775307471794538025444173097345699665368396528104831692423576247848175794945803328131639480768800755457042112349897640722085801082292538502235900841853079817503655677213504251713660149678464365750983188907266760424817806386456665609296633379419112429727392466469161780577025217200297722147834364731260943626577113928044105108648578603614664269231639806627743472760255536223353720479148950551147847757342308164343247144292795159001053088564964696048028499959532641877966897669952425090472634376775203075162570838771968842445290154480850241058662591425537124827751482169998087543136350415377808472967846802217554402742267536652469062434556621210038585283256251059570453305745806694701053770502533306966433752768111651221617442064772875870261862220864610275819726735450676892218733497617062968780500802308566545986246789647838760048243164711870718222480675415353849920460425210063006308494225280211271681021548693650868337712040453593722628861620929004272999665594847794308632660172201612194081353382673520775024140274866015059859374292280743843565912568822381705651142232226983372834826447856144336774734525100686535684316796395760104210150602081052916588620549055872376700591169476796870751006281635706684351417389211518450195766068022321853562075466653832986379758194779577956918833817387994772784976032776253578139997474689534696280354335409657440270247080979909773709603228014413695767482202994616199704653482877247816187199389050576783444507279524961714811191003201903539989282707053561687466215427032666611276573358982074648731078696714265045233914213389765657881498323185873852688512437067266151795814571621837101895305968200595448264824339727911990475121961979483547691263692510419001906400621067496116392603868498900595044504935240494751135237061966201965588504983844980166456099013655843157245765372175330503468734530719238032778176120903168137150255322030775294358324962441416273656609767584666218602503051881208313913329873294417293825384153227847099585176456186889713883472035739720989300855852760341808818316095537850444290833290170802919515806810496982161106662481761395215717231411094173723001409544659687073087641034624155041096529046788528559127830426555084540962855097071149084525667112892889990060935177460644467364164119110367221668178415565042342874469253727411603486608638287158549200629531006809774015434261389030208672742124254590592376730750309483626172095600022176839751112228814862569979607731929820786316412185041774035443451212071604960319404132974121494734547457735095301442453025049720696934120049315969658153920617199235340542842042687088403263898894303171381507403218916363568892911740415762249648542975313681209187422926243314407506920546734104443129350404787316334718544111208203285014455364170373789781573257114512594316394547677879546936391159883436392626282012098047350262147481590029306924021690518280365739757680786476363569187233938400721652626011133990149654223883247227963259447358164646271467331259889298289089460875026417567341805417668086878457971812587706314279090032575070819576622574695378829410543288052283327404290178165455588099575222964459639600939369837528197713626520242501927858306615870321582731079013515918990792175374339480393832725800417957270638259667292819768644827772301928410000798850682443928423481525854317024323117415014578790965367817608559950400671594883007031265687851421983425896886949358606242443621515095173371411056293336243915805844277684692453718645030030357320652703249178427500268908319710081976062373951080396490759618457591627863024430823336052468599572227992397912465809528095748964547832975273479477003598378348500199520063927069753372101899048085945443393475168113894664852080548410907237537412717663988669046071548600032810111914426481610440060581340558317717952539459611241459809930793897380724561413651785933098045066179910846671170407588996931177270183305906294049249668705439327268782784178685072058722345370221879094384037516032556829707485856343910506462380614877473654486116115463584386129620990010316875677101812759364658884222911437908628631666648805438457841453985385912494675192686200393800030664336548678260947154968019106856278577616899599480934538090413325559576258912169023841155456962971187745927674251261117938095526115090342224194855466342651360917326426017391850035300255215344082292811712951210650731554664469375113824588529963494901007229153020159912457232537016513827407499209639558851988972517139025255870492061219727970350672777585111215842511922818594179425397843181524585158694606807421168551353892332724086379779990030480416414523156222385469926081680368947797845573993319556805255740308558366670538973748748981566004272835681364419899302664134421247484880451792400849966492148613157393130452002569260529895638813609099478287882449156875413304895803566285759523974017428628399610762984866901350169944648001373724775294303617669384015296636324210662186002327700171594364470757322333100490394775587427333712046396467532859621354074763530512861188337884985780547347595638144409214730833331624433155102809479890159789382142096170457700750670969632570275412211388271616275259728518349223770335326113625304723859706738292467994316953908944608128692044845929171610362447379132285446012424381131418099380337045904405741727680174162422732628415515636229767721819574355446653866503488269303588363016921915405594145328574948722727772156180520138664500029270451945033711569398979596759230617650172008371099708488934856218715735066442713664275504768765187401497697810140224119496736659052467594810710517596102790829488990178577218322238763785602602189420681897362204429059023553708803679287842869230641631213809161314986233845880129607642255781025172575595271735539616341260816706473770109486373670602512252408180297187436827803759507320002490640371631843987719767799527633405485662981532478238115565512228980584508495181893364299283854296731362754276576382824486809582948633104424327341440310090234379944892921359742743298694531472713077586113114285317445925010868415525588552247175947644322264629380885161548171147442724486888093338307849335992896057527982068569890870356923472054075650014279850606320981569281334893435438498185543898395032861973748701738760280502903388707238355838382457175280441482630245543904023586882601483902759047971389794496976523049242080431511766361715410145153409612993231184677814511571749888232378991149919263261855596734722414286074912557324768665712936265821135250553093060929844033080708484608938959482558549034641014003767946601832309500237609574281662384044689606207084641019689713430424391957317322156220901182283430125616753702621643863775866359166641901058309578126972108472952463974998950600615734932432528456031223933031210059321566449626630624715556370711086412738001233942383403865523809173200608996609717919913770372848607689231106250698340875754238408302334855427796892884322618433012228471269855649029809916527133508985740558446060509154247238208894563751267751709607763842534382369643266046438612900687173777261027625717226624693136887805413082351973604151028379516328111821464724212439626245390212569289515270231680795348204243137569085546189780903568874170986568241550524646437649332379519485283518932870493692197361153615143726232203807719621800181717418745620514484863679783009336433645607780316707370156806187078736767112604797797173577697040836668915909771873964508653887560501346042060622944349590371626642450945414543151982681743587663935439901389470756740127532443794674037557443660452991868412651172030581633540667221376441761092257961071285629858676708895996238036773505509422284180207648742595569596291671934618878633789283583131778330858324466064034969219031291524695874844742671846612370732166981554477935337495159796093877122941011749017789041831890985721300935386105217561935794005231251077913112154034541992164859198366003565453764008789090687154233089402014499511673071801862701367708016930996160345613353462835754479530632897080111668292623170795254997844050592550639019585141991067195515859189333662712976191849347015816611839375954079460859977444501608183007614209959074723072337605445386098143189436736716652356263059017258695371625439668992944838012120870975377940651074264591177402768468688247020170631145325744007110841421151407345946505616880675564836829510466488089812060532679385082248519428290629601522015559842567254808301878463847234525208935243563589092512988287914122820671480986769408865931023167178146824714879595687957344782306726842880538677274099395576617848221435882226624571446773341603534104290757053381196942320270732785079332048005433594512340106234800287357064176233725397034409645767431564159535078617932074734166829879621733977099125019609474692056542891883463465596978119940859944999136421872962535592615003629808078619041696655157305587825119678812843397549995359661000920749090927753375658095276590757274580205957593952896660663638172681053795903487348010429550787065511622398631057447805826267088036208726996439932851977751723274787896074750722228520827012468034593840256922838504711577474491384358067276367852225370993484475390490393278294087075988456986416253373480365563046851397938884994307976080290306465727255178640505545053960956853500464967885283300736380466280116218405459795819071970791777552214724717801472303815669264980431625487988948333449393210269778418289888243104252317625091318722167571389565604812164082876871223285814249683718616095570517934272467756426212143700539961837802600141359911477263039362242923070889772370469392498274674407203835620102431273228907848836011325000558913986140148850799743592855749543511201369342059883409305432201638716375056851244046214123136675142043242578052431696055270758505315683571860978143022008839137066987365541440515109229778740235777701288545511879233247284157941696281626384855935917559129553452953384747511789986571037343975058577130834731571944413407346256867891132150623783477784799361661740530899119682196145151949668964801969055399911786210771246961592249506659807564283962839907014450539098809669781782150355128042935125319620984547657058369593540758642509907417619186823040546831309123655182083458462743036446537617374734079061071265071079960759238870548544497511779126823126601456755248658315087929206130703782358973191906477282278473066880921096284639715336540851347090470921179075161188723713983962553249138735605683394245452231552264873252734181092265351126939084579610705081109313848922509911053460010923105526085129339450420287620372080860777154527628897232449846948879373881978520162494556035321571885949701103349373564182199556603596844416547411907174380668429994768424552492436281765803147666103815522365288469575223826536027368066351362461683901784731126458092547197789482359965938732284996850105677936752616618832090819051001275757745582453369274895645540933828284871741803750636813937116276987898608619246649758864145616119362129777445415282481961898241158427684912590080210791106710106898771479291430301315927492513957908257482853558059732745511639164145843774231264413237821304822408593347751036457869175602410894458188482513796275219648962801646687280896301522993860273287092327939280730005856566037178695435161930293055706255749617206325606022047108756897526331747409198777695646097471058805110363352421186270813002308358180571829777616572314325168870695992670282491192709739103165721491950627573617678417423280724871453398230029801001600855547733947665628420408952298660025170311439866356492333192453640964098622486604832674675882771919304149840519484218012579072555234887588157711974505715659655004304735090446525966599741874287250026706270017235969697046784993816373178172237462948822055967264011079860319160679718754389793286668119004436837642511443390229463066061093607940485745152431546825115653751178973824392474262740715620271387965558242236663004343997599457978231486608461819605482834863607550620464838841106192728388847402902334863075791931317639418011903109971208052062295475254833050418931559556683579956366036829866608415481802938025738061430188115471508752229453726476077143666930430295079487552054508432430386968914963900097327132767226361726069481831768997183062159489635420774059533285893028775609720540923808404014057677295483880460375768502445585579960207420349089036725771464489384431010554388399312794542764449285903741839569154627102661768594025399824162387161422227895999925365508878752490803920818117955807287966430545204071144560707556983377294639149642612147159652644029829457581874452821254881272989983145179531962107165925000758030942579350837390487607684020769844694856339324138360054318544834732989604871656610763724555874556703133827950113726250500576899913675990728763136545672972323748310637776826867718285468545717208456011844920517255743075962195410990383511722405629575020407538182445693244506794057695184147519238308595919008543078115178064244258704073272248060462300321209518348246548864588737007912406392684983336866743083732784930250451208849529363238094896174486414102539477285197240375653084503438944588801857422561242649939112458074848442018638108317032473968465087032062242938896335976501042547307872839721945407752834921543651812795080011936044838642969035194595064447732622697390758918874426813213183525655439080972329599360780368498888065352163217314989697219010222030755961956404246511228885017657182103065457523453624605631190847887181405381510025058703070322217452221359196723951983763942883960334273983836510961965354825342171514894850523091021098850640964824477170693463025811796889365439597000622664639234003556001911346973258568679658153082667120522426765865309675737073395654988684580743018586363592198935878255311035909291837106416704622166994261243218645436612222701432606094609802682580632936609288980762981619539697663150933231402518610923145266113857271643555219300932263851630146900979480360863716757969452870247360992248275528187707091913744619489178909181625371405691422379964165575198377930097396333523449549269702599530806151365550221332668819315400103878770036119894191757121995662656640597412256566118490447748280826093597701789270448756909816667039470589847731161707576180045397044715337552061618529137292226422242527878571141708881247412357024958015587478897128656773742286264724230141521817081914994439204570916337653555800514755235145994765795536627990153218482627588234237724514473378134933802827725122289997862715535733857948306095481373719622982504181935698346387908552289019359545030086482181139065820238587143916125509188326018319682183286138765118190739919804528911209682832255493918948377241128628938159780462018269871580017057573464192798314170803513929842277152734725676858423343875259341713497921402446054451167026019190875639850779379843930835265759948323811643163320598067305077019989816788500016602643703858320114374301053451477397138561527592108206024372722916390098910881951190243453422410958076568799512506605562910496460312683977317855805503782891499993993563994555973361015610060371536178725705052447124255074627082089738923127655544598247387643983611371089089700413766950598779282459801587872390949864701541670129506285117971367417635896262401572654405455403745182760651246473732341297774264220822630584350470167016918786245742286632306762034428258969091194374535588109119078964585648392099613520989521636003798328596647535040197749759149972019563134055530949275436646224960949320856176937645236998555881228523113809341288172503083115847216766581497606272236791824281618221452199083200147230693578992952997717550319771595854847946995924479676202708874437140036851480078437319016310830629511555804116799200113808926362634444086336871218241689217744191654542965027726401806394686719426252903801599911388562563454520299021191509136800293324724886397685140431801395298166031489325347315037520708215779524040580153399708393522738182855747999645484992706412833653348335667708582629204153328567432545440568083283732268462661158226483485926911395387277813915393779931232374205312941623821131305097579081871468878241887120077054070615499558514799424958648388084485762203657069849962560770310019611890711312935604655535548428139066817062862742749908541704508873985463919720070176091803567976201342583421222094145977003914069697162343383266063712057217610304543999902259591403133312374856502397008148083408313328041091368954211011503566597905955419900065421100987953497885891742366005020892185030532437609730930363912320671405647595604266625365670180420890198084507540697462434423868795366918255252704210680329131798343813997907136626141979085391691076496231691116517396736404129675473684782375382553395610993693096728428975842902360066889347656461759598052732835645554624645455944533423941401931490305660033839241615270876635538205392234222382603644083965150695326203064916651404730589637065487564974225421921375745872331737223333052437975071193063527222416967715784904015374049468438595534967294696542079699692813711775312194997471561151713945677704017288687548938434823166049184095125422451579103913979025714005648687238466777747284440821221356332677457376444873461497931020802921624760750549457372557479551921920986339804190306157032403758536440724900361325319225419572301271042879489129884042902523790361731015184883397799784597169473798532895713739980894756250873298993520599671528080315270035416487706320323688069703511292703443011864475765940504904415450598880427934235974211191592403193546996785203626047236585117304158713909647593420141430072603039792066218184563500946915739977708802691610777682865038257779149338383085419094066691765166515820070534164844492126767571895236664029690611590447116220200893500144110474530355324008443588296641489548375029204337085090882245322344035799484464833275075909404195987830876579354484015560229313760633785955202388997676709953712911221294448738132494438377404219404557839455699020713561165347998164160401707218449538238471517611188281034247405744142284680229655664609944370130003569633895759136639310130592869701916065255356989018521730823851772054601528132708633701373593627942878326844739568452984847506721811712860108381713434327999254116227526556914347344044210528800861870541630103455242009582305333378727674494515868532168288841027600517759418844554391780541448149937965427907014865770570748497596077381863977942427355374681672022464560367273216902339040496857807646288205896012727496588698749324549806590372813310534398193834495710451354130143588361067444482693106580817998565332453078811945562071218209596125539723431899135098172827265200726449496983557597164303270894783052965364897226268042923423486024617544380151410542704594489112882897916055491047654973757020550764789017774553617130272020338151836266819624648958012806910288782470375556925066472786148664986607441962748365232041116946979158561757686216754804606064420568627135152492467323602115298926980776220910988962499702824718123676184025883183461426957616230663589559719364888184815437817010326167212524157251262758263297722637379321818101318255015593485229958088743018265750610409872201833187952587380410328864569363948318308559009864396473566233496369187083436615398770462240146824743053517538573380176834410496942909296431866969548621481766855979041865919933011255909195118419847218482499962835585245645460339840278378467643854859968326806483500928629980175355220936930595874048175478170682083413509637305008786347380433665148750551995885447921568625820265756590902488225216935948800431050747456073086838781512818406263071093787206130710733885368785341423934367909281391827484811004855491186229588042351468303684204050831156571182274082987408223314512108126698616074160263008359230976702701865259982812847253091807193132324018351393196053470138656027081012122471551370092585433271761599963424379070776559987125687010785147471128013418913712766474685647414192089650871310528970012297409499894850785953369434000924109849649600712689706523445681863336210677381609879800940144986921835768473330531496291958690365950672124085137163925556708900941596325716072817659725738801130547610336681724470425213417689667789224710802709984506295843822971077339266097744436182829835590969401880667766383330301818727119028532509802147735884494497725008415124455162542378876546858112534499210830127703957763965487269288758662227645553472462561298870317073397089319779862779883130874094457581656722722958736773364954529342801619655610166381446424659888789186814885648640713727627705610202069036998962101921312001309226813637685936825450250066541598868517949381592577300105361684539344440524565488437457639656699644417148694464564687347851761204356876243359434950442111032847204848836256519182824564098940553967055197406974494299424500843528458514048456900115755175274086150137299318881869342456906528726697874299655724425989841460039756903422552234395492337765872393626848316638412091991166437199444387087427787504334590791538989607626011913628437424526230612459888943764207683935288992371057981238666938125452352901673137085504497854271561291499453022315028898491173361376443036068578253146989175100378352310654483212530537530698581240087302420483684589951567972231949618152725412860459973810037733583808682269550823970548081380127506116048878018859342505004963621920406961349516120009593194350257321089087552429986811650017948225899734104788131486167832201479734104557321234507990581772738781931406098632362987255375498595352167237679779824364734776996620356423761187237754556056555877503492334220838330061688026288981182072708365157221308006521533928584083836721086436180360264162361055366656789232669461847936068870584562941589971418053598136710744319841078882297721733091989069261341657165377693626474015559616212631184515757568797841846317715234745910802446395950574504909340175931085819297235271547167977585210786898449827857786742953860094391102358054201391410322000640810168911173915463480974970093271017646007450112068459160857744258442400694283373100659865537633226365415177069686380457073586856887858243983702321654212875457451499296265114115372160044477372359111469128714220913261196501397070863189563610474535218085624114945858801003720991996832827667367692754235247340890953056164583996937221441392296031890085502317653722041849835462436721061325155314162771734768912681762096447997713960394879415455742658577589284396757775510234701134616514392009601504332552916196324617235742514512408118390926933813492702245411238980822193609705233847399220166290141000080481823355612621158763922137254235772039028482949401085025252836726784298806168860680912409423533123982203031905680462784848756032819445788606643393364552127331333402453824680580870466103314077624096544996626036647617614744641542590718059119549593309027599966159743788408001360203609639814746817989468642404374324152743402294892722111079024142151556284312667012168076375290117887702638974708944222517747420306336243078864775044592756509489240987917906754298958489504225698572601457740066459745428206290390068356992247472805061846776626801428252671111692491591273439571752105800640494443074343919452955527081835176524217093870461535575260253894006419084478401225339934680306472397277705350894524948892981390286655429124845056699259567348787065708823526085191824561377800366901701052547361930549971401559245566706285052916190558863674378733921579748881699728948813027691688929754285651521957780564873693748557084413477367862511404954549649595148308002767542371237320069831213077257376172184432436961142150803895230077878287325617589828595616540337793860483301657690722004547688864095934701643533970417316770397012943004497891937069157834058413517396814816142805189064855034790048373762406075871838037631681040066751555783286644241496619654701504660346230522657160547778810798138373575427360653145660424430932703307492547720335048498652712176932925188236430911635771951952652823786613723833472594258032063790518020023332801419784296020220142526328149311528290036976581075820910594258179871884488202139056367486381835809898377379396644680196598545810587495247348997062322000515958660290612337380782512383897320537190252403862035460852043428931905327187014946198361940669134060800180645849218297241621246652145197133394973406803481145414879114611378393750419995089142637368633611619346526970116631057669990786704520293943912654830746617325653449320649426395776899411080274290655014378441793919678466589857039155364635904012726130437932741659655480995814952512573347988314524179749652555120316346016059976580453391753151915957977294662906031434640931614763543148227952686634137553964362401188750876449590931586968331989042266434186493904569484212017536458803311502249505088738915736385734789212444027319165479919121554702505788904080016840788731521450086275566447214192039884452843687628204351112449256141812351031959085365136397729524657035476213347044391835372109753983496905788382810639299535754124866774204095072359031917843817440054947040267173583061633282018098642039125935686961919041681680365777396138827824195701628672064637527924872935569049679891679719210464863147211388918557490728354231853760361885211506902957577828713852857467347701043606170052591132738079566162167563150545672109597522842006995842146271880685112327583345071597300445593990070922573417207900013275149083646271635530495247478849452228893293723791178904568816596668496802767956712690840473849041212812383305090552422119833926582812591598601699028784389222182566296367443563245540880342536556425822039225025628420500427789593341080759865475413155245997768613198171013236552791422420598930319411921980760905335390928640554979138970746165843326528852321754764547582944471371530856476479283202775468505713939024190144593028052853264473401914630267189614509587703671655454773397644914862401434340878405843606360348178555011059807351298372265378195056527873565200193282845498284698671271236803188083273493074322001032736167929491449867725667163687624702424374503156761145660064028886210621193568653235402881354180789948038008391912421446520608997782942124662918481612846113316813076609516810787162104352669765246748360997417095688102291425871104141506360329108096700945110597610334473253283352266211077314740742694620848384175291763337178783950934477865345512063728844440668136814989236656598695030555368033128646190840296133525228985538209143702205506534375128587951672452161681826707952523754423237340791641793995092089868341343078298397634481979945277871004175592094377418545853958474805654733664511982947016637739261513390518818086493849472081109399448437135761142550014757613200534110602467646815758100793979660444950750585058809559765831491945611372073058853796833499020650047070377841759045258569046277243538317561784718402692543800262422071864419980022052028805638341918147173136678188467961288066207340583387842418981832012572948055095070183394076083776510365401527255857821076791970756080099170945151871126623511767399531340128248041648023289340044671216886696119511678279461621424951161114598581606912336208517611751756365899506075717488883787826780330102692760226287784229222526662104778087980758703911107113235937256456959870429727731228043053584640883108170105103520017279348929347768079974405084901766518826763301434904827625285738326798534963117293373060135094297966882293197327897861517007644948111027520908285058521550247226934621386225505504416336995259957132401305661473270640969084978042106377957713819545003689319196434735777701348328348973776500779569558063500693521459377681510423450519416009628387264964998937881403631704892266483204823451865393643299656236404142517780466234746924592684886204662762140794514401199008554565079375835199895274352465538430240205766941405213512137771278479919572970877247480645209416268211727413367026519586117267461202956412977769358882977398136869228554335589036546804727099630000076785112949789384545139276608088500909142765977029231885352866636252262429442836440351778050766543908999739918316950739210697890366453089940882035706132175906336413430401080227662517770724316925073288061005644418704812840745575361130444399879977451947702729248801922907123396956727504937790994982278063940519351466800943334446608803282503307942702428961821394310071476195604302169598028074770561588835265990258329423447774278642026836413338265167718102506245998359638826613803935053801595098550823422306138708051027754115135880953645227914117975698426636051196357619221249941713654039158851466523725597078372885894927082508309191479510072915769084269021737958174302176446446446519999656522646395058551745521052700193314460097282156654545952899218154061418857772065861211217601573592898193079979692619529815195106898149773513039803060044800588648814319466016273403021500227486845883543714270745856710156850825792200094837890631283749204183471755273912623037312422925220392913618114220032575317087278315250536948934902437940787398679549381127637452545982462095421326715366684528727724507282449409444704904864132187713065834363802200804297409561543685551982109309171430537873937548514055775221127973879404595189198791744855859835317898047975534670207581180439994832660238501889779858557790814038805000481226804326357980497280173018685028254038680913571319658027696031863533506963921899277102139376833539603413631716847660056688591234105114049911735352757752031799986335327723556582726772403977920852963860075116018716301892885012284406723114503305575914738738467061039030348449697485639536570512561923055269859560515975453062877597197717303726579211523602291181881820168106363115333018705597204024853938386691528569393545472166478131139339791200314196781034761381945557426174023947253084586266697225268330219778788274793882834185133718255323702572249063477126613215300621210137273519703826341183664232728445358028174639413182865140672213726996213396627561300049191594995700991494958279731139708399397463001674124558671280002539967608332791582318776981173139656716978693039601438517253455644227220702417447855135159455073882285769242993192754073204059478164459152736377315416814347878054297050751353571751196723142602495612458921283735495387739000806533718266437922541889318148217541565575497623669336279030650550442382631501735154152678632834055678411884427113155619681453753793838192883821046257377421860474510798846538674638253314374631714983486308110168041641102401305814357623814185876487253259555451314754097963662753749787245968328632607568434080363924004333970606189477546380680879942369499416533608550133823332080393813383397015309498805757224674194191889376686142448957931625027267955341305271307299741523349253219214323031628422965076469198254429352573267628338675597919893447388753823087882692598167778236562125240277597328852514036131734903870825522310789711662988939925917498874542116685712717703611071412470446051173121768338726126913810246380427660450199332619491503860574038822729838665267781719537224119267253276577228840553672090804407796386138204596719111447116242792123807334350729135961130462824626726991034025790023302425237451414835170284177617683275325596648502183415429238208349425009285168096737682219726823329006260663365783942036916589592795993196074940353329804289063625830571498659892856290584236754108231471551510817055298851815672361286336448798552602677307305007861417565538819557268342171828213557195740371857118873108933506572897755676886392461555278355872016777700821790598503478929678573534915706711187021618556269127307192982481808095022962387826837256764363093637137511180370936307774724338959017388507656256157624504866670082858772699254474953162007986226267418205476639542483712150714225555247812365695373981450189343928741752000614705385479089736453167078953262721897225851101339491451593385972551453321822623377726490111868330778468624570084971181546607760725552132588160024300803967977173591337754389280674753517538414643543346376429562445702016445014332794050877606922289903005449436045311457293876530966819237078935522651807140926404648051508338501591873782868549899267393985402868504088445555278728019570602189085149233097293369139126874260812910391904931676838005072577217130710368568383774182932875468817862986493682816752500629415119876514488624366685883687774996260131425630018265099476012849282079390499909429242894323303878167648810779274140252532316416675354353912876697552735360710057234927655867193607716841988282692208694449600071403390844577824666675855886178014029740687278253333201778336345600626156262240175300097308132990191610240259463669930047415245845316540544408704874738595276273682979013418039404258516155566605375287301264565741665708161360630183842742896606425083105745058024199882032168025174976597503627942378071744019811703118563345027682239109981907518652526203573188353394009054911239546916426383164907767372964239976986826359975364913200285532782111955243181312403667087012219140003289046373986950999630393557635423393621205616502816503292786714125394970395066884188176504184066296368044218210178733632401694421756914541716614128999954972900528303939377189560714402453149589443380856793370101989975913857177016812556797985298730666215907877016066655562124160058632388743275783291471270489334351096333741480323553113157234274421697828665396337946468025297156646940370286619789626853911081320497268218221175118707657741401905229145868740966432336529787025927211388071583501246161312952698836987073010289216894707527117889477060893078099627348816420698614108282403986537264441018068425387073602603234962602533038972643903217108422150173969774178345848242813213216201051055768357670531139668411702414903753711090861742944450759672878049421039880297096796456738877156850879645315319539788975942545437075761260170154373466876849214137611271557048783774674901630855452734217912948814998284150115817204959688926884616584568388473049274885941153069821768533997975758713117491442457614171551729827949276632991742964742992850892417676937027660728360583450044059569620084256116054558501827384280195938680227383407280757685194866168142729295787277810765080466530306805365259130484547287332754615267245582821427506292050643689585863447132719654564925593405702761469046046889790361767521817689042755848141659965194319608163519654627113437913097124825218721275535728874879158629091930142645331080873179328322254349346121207632661071650725185450927800061332848847800185490252568546869694749394437168275626225769939458294172639271296273702091740882909324598853937397692210749984739415970527795040616560141807195308136218812101904814039356106292650097784637939927095708151277218593769806616294951833116301795808855680357008331600327199955383581654610694021079707084272957576980563889663258093825741004697721163569130711866624702183975976275475417889496667479150311770920111081249771433064068940392420632108081555839707279140370011489073387825683536628022881461116743537160604364463489538673859595927410485321576875663703830087295901057716478031599945248680086509404009539144325581848707399795793300276681764471574833788205030678116669567469677058616587308684780026257116391264764608711096700555120050384667510238675882199960292091093325675084704907170738939528787168476964916843238470461654011982650629554663486987010610404599424294178926365805826310006072190858432770283415665380422462457838315076498307399263653913212910421611137302051107966519539171547505630905703230890354620026032085816366336768758044041361631958439149952891356082215010567351478093743583428891237157026641443687562789244056246024344329278386111658361640964967694601913719387945745187113569191965934932383995101900941847426345050127877184144782799102020342186108419851524764456280561376257875265456276888840949117248260638586095362098558405210063134318362052117033848382456044376645773374373908910039173831812735266977210145695015572869262720028278663769818339123604661007209166954990994315529376818083806349600438174164556090182664335357604147812538619100723891523981804561886479119560568366178312585437287768088428634183363575518439053840577790700296277138308719620436925262790244599880578531064384965094167079266656187851088513761962986638709673081411476558517350356439006564497138791339959405259239924153371872534169763228588751482949626056897944653890397612559166510053476403392415012066298109083119251054735073977129106828040018122743375191872824221749545766044753050226938552213996694494873106834609370481083008123997631052347149617779872043284503521607387306019935002817318797523368797717186054946009890498039294395136827484237230053755921785809984117187676826598648969475984115820808379546753080189134339330654662928491624834828200067667245692024467312096214101101275153107521008164525687735395533787507325061926041093222941247244242391598535797786393710896541984464633280426349030915955740487849638757978416500924730901683009481653450178345334304918580152412317759222512488431563868824532700389512028259069738455877106209962130372257351090539162910053231136319413281405924617478299761164029934475020643027757073885448275344923597694694811724779812741128103248423283269975729021715778888781931999274670475268501041389191881322395694082720486682109083095249922294765532237370654335824989888673926913168195197566033318563369297782112022425929277843244620437157877956080041844753704483109571428471524044765078692098812262441196875841708911666453308906081713370484106969872123242111227630991845977722030126910383614224030496496766525463360152533865771766384553716608289627747794509653433022443286100214499394975018144976251248478263883980630762846430780460953463848153678443482851676314494073788812107518439550900294364168736274732919288321344107779125288795141546413134702372567610100877522079811581190457816157490422553500556998734429428517786643788110798015921914049984530410659762754801128291064733915264227940792902845236922304635801791467572470646977185450230856364110175451721268212944128393994523159775502250802494996071678053201080134810026264629043278364778313116749614960888317991427518175012165728028127213306623507046621451246153290934243815473461250193031166855333413366767732843733106618601474850715224823795651766539446086953344698980685784329894264937862395999742945077050068726491296754487112642931249043267665864304622085939930936392214233301167798207838023709936109504527224949695947537154171275660769928893688937791004223240261484758975226948116255650752474694899485302382209692593437230317091300149042078173195710704551349846845614958393381621831428548575043365303956367745780826612867056775021448266930490864443933762110744197767302007789576019954188038535973239817081256948565327551572864001038750790452591151816038971814066963807764370594233401525252849214049441894716538335805844036546483226283927864201428474629220338719558749290231203421172106722639633112204100641759010736906492066181982100147293367134611297426734225328555851264333415169145157579208982098339800321165437831962964202588665177570623989414828023956848610661701872933736155797369481782654354523538248399515076552461298505051956087994239135026652400273416286901682164828319716839407152597656239934848028198295629836531446236324584029395316209392326999168371752623640306664468166927386890656324210669860483902479194221916368008769609376523915020673497601295549015149259341461546707870599207555281464459175713159476552267252668463596919735836365095864757309568378952129402102614695649064011354306210579379310461074549639139641583098230156944572550932892131020689931113891497584900670148728517641415889140090073609115536893038540979621519404247820383592901141168031279295068744913886237678862809205843585797898541442954548760488479413049581378437958270650845804107473571567364198836000604137077044361130828944862226122193257406881367282541473577000896313846410272384494955430846252359507761915200724582765413580086008541338110680002088522285869120346468132419699163011099391756993254555268085030011456224070873031024733555024834651038095312372132954032224270770342700336505189972102985635034228966276749722558798571846876585340220062182926348171988464980940048084016447467219614957204574187052634782797859118062820571220289789763603019595422634861509755759350951317631030672483788664497300043669756829951187921592658373346655091171317302175379003184705617539772331310533427862426030114115064047080672926127210926972867711050079318142885279535432173125004161456421529765421019029292896520882831391737048046434709763657982529874325811374050728004525127621431892360697574531683596658854125027812421352132247912655543114125033082828236395918544764811524299369256717959970770699310083668246561084584078394222030506925164334760234841274829099397921546936204893611459395534187264222291805765801741180722329539361700675353919695847280263169472214344877807552604072499647460302283320596204059770787448812212523102169224939613359453619083753749476899511070738407565034341906271115457619326290515133752763500556510476539963918643576518523605360095146098931809331039859495668006338799649953884685355861187794467732661877715721661539750721814204892698463432685192435959279318102979288307252135050849866594078743171954039277045942723168645131264957273327516014002421091838711939161964512158817475686469655333659391922565156707294413531998492482896137768411143923769872965849539846120111068339307883697915176804187741434372649883520449578437980446148975366674239134513895131814497788030068262988755057978943366577171573141865663663872849415710854284040170343713800899854180967335407095736631805361526961630716804819636267259640592184275067094101231357424963079612105205926821769429459526907923187430408673107326199798519169644882940375044004991876960259016409852054077943449955383392878747243272235173073785489917378730314267534910946605064811494209548350358949072729292742218976596126742893789697699534753020653922932824172524297474838070691502277321782257050965655295550284932124221717392337220458217059607941833352994782616846385238297034345397245440548064598960254715748304996175685707271940074623297489028363637513194140418544577848176033769631453274458072810580134388294424476412468198579528822825390532072619371223882519659235270319288474479801047796046058416884353199705873216317975443446210944298441089205600068799163471705155192667973595681366083750633436016770959161127528770881609269427830690978057028625631021127369598105251639413142493580083750459419296194974315007882555829033836176760651368340609689034672608576570250486428476254279110291135478943547210907970455485511863634993377565629009044063145209143843207662928007994595645613592190889893450651457670657821141839261514380250020651580137464788981045696987412208687993595748474460234176976223095884757052795111244341064640729149225154085519946079279056593941047051568404246230817441705461529591494870357842209008079887434325483415055905620298630111091032651674406531236156512086321086777646275036786084680719918984024235888642741697844110396751658082665256158731159353452092493259616282612292316292647070818984038177729429966372264956823605698932170797851392868168695825074070584064961070232634266229974665473240042971943384893577825211461090507577591938431876960034142167921104417687307899096698814860893144104355279726853108476341975423775265436537387811078191942298797746324394935304587479178576626896180538446728774866339352757201606837333970880479956482717460673254350420884244918849045567521188653031731602221890147469796292904330201420406488693177137794278430658630680889241142106354755657165007959049599903412260770453934644956520957889785678395746582897801248587023717761811949525608044293837660767122019821209347567020064636451021735421513280717798831706258313385725023281361935649159601900233754482198351651860380267850286189577373387255191978820910892106643320940586290853919329516883751461913085631263591416793725584769407506867391372960118241429486962812642594038021794806370981465543784396452851511152650623666320898747336390699593961848274789594044473335393768186152572068152182113678914489462548725346685477165863697967552838614137027662564868406941066248356860599156710286762518032684040229152806323422662375898909579695912358179971050637479382833784604693217321512302698899402209854002864443025925028713976091637886278853347598671570583297787726969012457566399482387221332124066066409745772154896039717767093116027204642961115963366861282774887271293066468110839742046896553041543660554224360592881422795738626769692126977031201738601001335168331864380706868504020606355526971155768404423878775988748000349513830991146274867529001542808110546158265385300754355865374558448786187292809136652487172622696823532178844634927282949181939028856499322336728842225470394024725880508915066690723005416183407110865353791525552575556017516271159096702128019196235000148921963889298713550217025005073624051568768295430117478582362503090615553279373111794673784666479509451661488256624412167250023113168373795263746429956380751769586551719181472683922737954847877146297715241075072472681981941880561570042692636995683358205746828900868648252698817489251172792805519223910845037850918247150159921339773108244799660397941850745891329876741354720636507880656162759298520206092158096934884756428166528469567960533335719881083633200739483122049696730642126356575773782229035030593193738031460247395787153328176046126067569390096254468618598904181702306977976560866642071494661725325837454720494369231070223433787309755661141066973566823021298217147976784171465003796203902141221558890327546533533590809211575219154235693511492569454858351684679583869382646987421296753307324742060141055026144603624391124844183290671071798510245355453750237987717553603333223239180786426688857434839635275105298478624842371784522381889135469693858498680328583409275996406387588560997213810491894214388442390000027757693746434474733384734140605531263177032475473092843536500659797164611334430675067432651123241741405242998941852817731810880900513322641565662739294437986806107170893425016420211412709852810094551769520249214994317747942233914971248040011117160207988947189186021759566984901839113223516509788176365253269509153812700626937516094029246725429482623508578177784812022537114348228406072665362884396892569565383061774511328163628532677102054157080604807813082511461651110411752330609288095545288094893474697173664811471993055870363081029606764395061205791608361035712908995779565564727777530246911367904875684971873548236646553407525759242980949695974926370101528633578456574497101336931453510971144496613370666946723773801022575751001419211769894343383566119053965435267263175916451000511106057215130483107108110707652193213808332701465333498655867585867894498589912751365932585472085256007679866636337109879167925126481244957921290916729839300266343421044301967161332051132900718864507229686836380125517240095875389042432860983033841871031157484728397095763377009886359707650815745390460238088252093308244270608342072806957099407961706235802161842393349259590462108087629665155776424629492088499614997022220822936272700999900419978317684160768999536194048574817284114864029073554231949829177557612259616866506286065887755943594416806432049884299196177011439878434031553936434589767337468555284824844810263397190457672570578810352968696477723137225439326055757469035025872511370404032513502340112946582746136798264278723845890762263712983116651748169969947420048732903419283401778092246847966121161630978788523320740583406265053663217592934150235579929179054393945533159390476205745172099379588319390224609143571332540135646839258517701506419929663983859573095899989893212769483861111277855141211339957117740894205856019623061629365790965009028772798993234513882861144457276968418281801490933773382516397036760903235868237319302137606637642988313885765759628130136446455177673016850483625042114196021099057472957419050769719727895593429945837598407030748848315005439719096393280003318087065183997597343929145679868452045012833095679483399207946594352119024265327231655619097852720509805128779519885087766559495179999213028827140267275471301589759339669718993615999072707877458926023663325426034050476866442916678357357488202577507214572348766550106570261246793813992840117770981255506955898701598586911784996815139393302986927415194752014364848150352243949611065780276779228326406186050506333140460252487588397923907464301064826415958562072597900878367756229436649437677055992294752002068461203179504988203289954740533898848041777794888698724372523579459577530401836704675128179593056311617572324958576899996818294805602622530998509742896043945968597827936298872089910968370946981992129124072246696458383684561288004303370560904780452697724791560187598366209476357901641410605594759632038002740750998875149194602221082013846363768114844779512048270006314010579787020808525520153236401057326883027216578541550901017122493783589480699642079440623575547140464069885408079337450328283300344958291692482505600728664905408541680692381319037470514225799734120736981170426194930477008715244266005551109528937070530130659327649471314683362065742363840284055326524340930143709861241523548739897046024566238324284726581154059489198195688727043877884357585815630211909205847387806282472628692414027850070863255292313557719045244262043115325345485561673420084858301244438754943890264995924915640877796440149650414511754863060007719896612669036007351590148916894645214015712144730128641883112310084926113798927620791159473101722013491792524149477269794790748528715838383953638354218837359768879029160223216433783105586580947430233332338024475236876977007526460309952421449119625166787747036083188552831744740993682594508593469423359577935535532743393974958822293862918693748529226681750232269587318072286230871217748132685226238041176861379696210366571834999080577888151354824522289446586251989106422284686374059768007187002039523881800426031361800076579326425498800004507134689652791898777776279169586475017860866543472584306219280488488567612223638358369308518112590817731587585173258057749590347947718069326258631593120864860307944959786847371487174678168711283612449269828909025087041700007753178746721339143020129928520119263586069062440182000244816112593956903654281339054858666626239622636876581894944080804226672531976601367499715216978840635306758213234536016305778470824753858344407398300712929245209128919094914054132093952549627603131916571938583497400345888383971385932288990148824305766673182420773783635282927529356703196965467377822476807015568002590559649948877736560578803586396837733219656030357550315313696829105878802270034573183481505794739935026890507781169155947676985503367529939649259153298566859508955753736494431004821967665361271932931533188787341498203610860084494896522144355817240750363763558766575876011037449632722950676100826655809655011663555522772948694680607888943336110444505704593367295672760259088368421840946141771087174045077745270076846653509187145559973946973573339973345829261906620408937968341688047826725854246617739880350889433782996004807202460815051410855099052897902648448417176215028705100110883581130862628583907061181102772902781051819370036908288610596658162487159370818550753808904817276773919617811002140365654231957552753995887500167775071556113520801134706420136510462173846984586465731101225982495028827383257633275797670457562964946981184589479155491445602776527173953770040834098829670502019553849405914658928092392843184318527144149125132624160060756400312088694428159978492361770948997287742573875586128192083639612881979368462622569750081593143033646836373643316774360331123061471726920287295881439153371405369243039321214827109710873673491087422881669330637116346766363823539549776231996592770451633963288815253028342005511314754375205235672284654845252386236102469993208289383484769145989060488416217451729378602551293942216011669039924916057794188489404550420718516249863829982825516226713336711556801485721453215411183078531148013268493998459002355233568084264862521045123379808663533065205528334429126411647625007084568709519036551936642328982179482221266646786115109961713930340947709455703822298548629806634457852607557428112177586008565601127796682729353401395539249844713812996457531722194249466624681721310563055245244529096593001437091831260848768413382480186246969186282832629014680479718180596523648841791136911319023144895490129659649489991726747399070057817369690189847287077450476192205540648624089818011023203323519719842822221004575674638174187307993468308956310013843886122289997057908180095571382967626710713131021601414244513895580485914893966446350503120842962130541283781740551107373150808913820980506203589031285744470003965322833490140082720065881863919742843157782845589265612390612198712073584922624224732402684802207273107868627656783215801904951559205414054065770705988782533226876598637108118951410572841175945234254899590802188236056597150793359473329933142818957324538035581011700339692239394824583876138385574724286214496517344077161462171020900939421062964071364375466440312992582240637184191402786676494722669254717796116419447314326157052478776847851921854913588388166622562065065879666783367051937618486702163350741722986157277668111509014148226452226417942648230038478656042189676861893929476431532543707186597558030361449372013599000393480948673630087468017929222215872809535125292701687999237893990081547962126751815699711430025456635664558959595413322208684119876973291251948727417065111141315168344458994024339666443680630424292585523481420070217610867382499230403393671250686781504160452546582326836524483980752161911234239416269085899804951143832841290225087151436779426430101450522933939281567617989045949566442142298132134384524991305204596180071221886714240621399458936598725131787688810660744139742618041326980323330803071601089033886556838770197410374919933596733079693765522776335882647897697214886560071003419871071156102717206470681115330893517248664730135934981806493848870792452530330860393481385354976660815830828669591641825860820658290819192276467767953022333217276909613259619936231902252613104997777657991435405312316617631553136691664805954162680978085128919751786712247708464126844892242663448599061210015604860348562335927962294793220092842870767521643039913710984065019789073005370570413387413034765769149643574565533520110452483340867218620806038416381931786536250694006015519880512641530577148147979155105737400870228165940963114442315411872462244195257689882317538214182326913694552017841546260566638404331521568427375338107462280394294369698482999477125113406277038033086550367188901509625448587027109711035169622278873489851236871827397545722744485794818959052869223961973864763605706262677346458501703366872552935048403493675447024722881564660532434972094619370453809268626712373832578147179508316695308229927655538989615594282034062124463233878564009873070291636020864345283307845502898406473281654698803713784206655341831239054048839396118019740997332889325031438126115531106242336308871214824960737430594390811441339941126542874262178403579332070768290065026426590254220564989667401512598015764304762399923015787200193689333273084518080789560048218761459913858342682366234112762993510962778869129464995327673153505492144761141098773185194731304362165929729540218844103212839335404732401442277739030699051581819769586821913946758051367711304422822975123162656241142584646766620589315561468308201636018158094140670109125084202470251253271368580106910761274395603039167839338109960052676370078654338407180555907330559624275163770183917820514386719524305662224439659306438008436985817796400595100267979024742466535842513993893474896652835885986932034757813779478926661699060800001537030355431540143207621150368348800202869031234081575453554102634874562009386781101836094564741838498546351877226786333516981599689936296153953687962815931049665581435809160572258758089531599796000983783255846247150219569423060152589258036329739064980728373557397429063918809445754912144567870184791044992903442724976028058644997205211734803163555836095702471555009004637356258315648715868589051488491220119267174081236070884609423242615097151752095443851214352833599644764584971987103652030527913477277626870791416644621951332628242083305952685849488363809811192344913832394836357907480332650261562466689588058884757046707265043577862373321628982632340372439559980964967538305312031569490333560527738454332178234128469352006200166010988422843045913655038106096363633333273927483488528772154690916392470160535726953873208087658374106470568425905041485158087029628755727423849157318493567725776453757618809881307226262160106755843705737462127539878494651940696893815494370270389774624974446875735509313134448323610082716637061316335782412003753952875332801638911196226072817130895470583876153424326420637896038741776173981440374857274921972079599652768961293657487984965889722340668363152467387561990907356224635420987077094863842560034191217266852131375147201435054300959975357065446937941333766097317842787830085194782354878179849447046099181213739594809175912843893303633765204758745670560115412474872473927968414153918173548739364952595612682758073024500399006926184915100135249036935791364645802681134010462078520016020451427671596795333179221307259544809514187114470680290665374749577492351122092755326069798858081773336506450864738849607301716216343858144049351554469963422969057765477927496513608597537997727495394425899595893505173193758463661899596602785030721871307193818755706676847862805527689222475900319304269671858692611756809298516622673334969384407085328682548676943209519613960591770284878003422645440706224653552169072018467561087192203092392598946601848082186359288988519710077498966632565905575549480428319062377658548004553632767521627392413704064598755678751214917419269480544337553396218935616648946871831344346804035222439251129669635489217852536314852184608810702399924230366110060941236458869510143899218264615981223414249051252655243259495642921992241970424739735607109754705082594814316481220177794854013974967506525521227213324576843350358327999559223844446506887815771524746402152817886001592743175491153451278258657440576738930998227824497548776226103557612860080496429046604615348081317223530089551740932063627844497778450295017335854240102849320984491417546133379730099999398706108950374470559741260456642653892074325767441877343446331760872889437836336650352041029176678251095038754969625057430968943666344363792673511257720483299668502730407022094841431423388430733231994964051802481027004517740731982855543747966690755162793210786629261655864833854565281770996653442809582873242979931017488535780291138601165924393540135442299027259049680133443176805852278054006823207024084309626900413046240375345334359027570999996724114360487878763880987395361206083968685960001988009461488245531949245331963447967997513830840067464961998051004372292067658394818100892356368852146159243702332549424486211137265726270970323451672414785303157977758227078232177285122084076536997970839448347050058584343349491685921765641047336361319655954781224861121832382386119240875121617248628377183070452640762860643992352642733544722197358346477527956629881868531955839225912559535162137300081114417162782520592970109174736332679048690839249885673663425422906157819930728288578613588100443206595217974310475883975184816231850172368477515363857312373768829703205493913602914689202036344013135118781854428302329805635880923544500000604118128916527123592114911498599887202389411417853845136731247888092168046309319875355460027863760431261517531786603680485999713472221409908031614650935062681278776386080328611703266403506301267980101204909496156241573019782748874453633516887109327873543381371156415604130487612165421850266131322524601291702784593842101436566313802207639126237783234476417983097926346515055799072858352260328617679455260855870064792140716092760155854564973075124691291301071967274399973310043395170492855532114401595355921468100728842675252477304906082522914198711148141518221922995640784052920237854638072289107736279828608455168817472380523838518982730638034073631873352559293408349705081647788592442369324835382477828484234565055990454321735412457415717889229821656643814939251045184221547630908216317812037201900123917239275822207504144994176343216984145321222994997861842199005325994782980333533719218979394216833510405768304271845706242667251522924652989385446602545333408081145493987011913845502025916713112830897449358012496378241552003150769781334275013891298409300489389017983910135915529752935125465815629199583357110257674661137208449184747815533893745329486470599832280901937812484917256435935947360650990768942263963867165657867983419967277746966091820249384065299547969796659513312599317085342782700426845525292142488933060601528813453125320318110137933981883708747452662142663867273044645842818400856378975224581218101855489644610639068488880935371784177584384779405693117899733972217062057523516393862051379461423076721566112219479147105590875442727372013504871845859106399459747237631711437492253686076832940591144271403914822203774317224149494757541118863770288040031608954442337605951349855377085475037900228690301074013447159057690770515224991226842103397591795485512465974104722554914974329127223470895152997943949341118273784045288318066335397990655184678623374205538397154333345633004873036816191286889216357685446827314176895643253778508551732226599702247946579934927839132022657665666970922987404879096277393776057126682061803697146038973352213467690220989808400409508294743427718325166048575234750402164161540864898888284780603972219184139692248601633939552413073155299182732783340369389175194827429716031376212266862346603035222410310914856887563671782805982475201831807105086735049072986431066415715131479765076762508296965882643584742304393116975226456646292877090365664074862753899986560136629050252640593014824153642054766122723961723978447947144978854619003448774544367135029493447083768316240791865332654811888631814096854728010078982269087857103858731395491571646756554340997159253791022681407604511716935137763862476732076917062566155311811730539692563811705039045279289406534685973312656888120116853374224751214612940228760127368868501914565724378139229007731418434937049451731222808427273535460796056393607833464787736287292058068810749373823106236897984078028884904034769358936176569061245319534825756255953024019458894507549923281572895537265643777754751766303964583132869090553193427822503392748614691789189168762353276313598841564580944827237906044417558951400596657938318197915781119141512854569288167041286033186616704351084089769758142365012578964935993415880165471547491905741905299173325866552256359841369292217937015148437600528325467391365711768719245009841140665822324902680916843042801884775051697867573580200882148588678677366059780373694427423558040299267087911993949782715761459423231837856519058841950309327155002779840196935350824661295468352312749890448769143643910082178043392868872294226158569863951581427724293588952049056323904076556222002644437289798546283572876077151979502574278270958296276628037594093340091185830883204790264866439079272474055750114147954498379916021649594548829910092461279554511729386470000613965217580202772556756011435824430677093106512437728806380565250012673750853153827487161735506325127287399299477317063640223810982747411141706711219565936473493652500450376677023762593657346462714554992733987426328545716065087171090453123971814703740838223583269440563646432546428828968081352718514151456434625950296575016282155049760454659772365898227710809870863769730792279199881937120329291000583345120727585793680599232947507246782103223282733171904369935465849653646882018272533116410030694723156196753599181137710815542963306082320553530513420143551744349205530613406791623263262523776166349965432445059455575899379559237109411886266488759161701585219907179484776235547705954004010688876717649687853126627135261259292539483845326380959111826666372098436302335520433531343657338478309735267588338872174942341012173230366581704068785069050987326778067674020567518124717530180701458624637795942767787626985169605362986785117937360065905825753628185517600466455660221072003412732774007966670884018965637339626303976061361854477648297364219536561588412041206815256864433561020984582031216574401816925827484532552933044185717815017185203791907339492896930946606271251654383540475727038081559371468619996487882330388658798714767796753272130958853095858008363813436503048771305263943344031032501196260353230481823282916590644275965577853935049871691578925549577377938738982851580203495554817960095407581125976960547156941020200230269395404937519796774734450874311999200896626328518344617595454703420395522129124263915296869117787260034188118996995356033349270939014198135789976184587082216651364352095571807387582074765915655876378904978852265920115470085230444486099029837481912245545291319595100374580996162994930636961047217680835614692016185120330333141833224738145650327614993810773845596759939070067298449912581190062044644840329041655086728108628629181005688946811844396627861464135092338974654528708035455183344331548842274013447286701905670833492668278360114137462588121276071935812351850240510916101053101538497337012548342539719357178633349840865339297412583242221656910901149002394295896595796042820937294376575230529915270551878794607767924730469172713641118773000127180449207013730637164546034064761580151960463446537413466595791427920532229933841561316417918157931133972380700873284680300626030892840895794693459223447571051653314492508025628299699476936168242821586067664385929821071158919179556032400963389572446415452422869717209847348394364643749182737859970835366011171772684082125915522091849736357606187640620955145432102413858907171421573066613083799152807332391439157770719495675057082133937746145508616250046238236335694013696766364514528764643733238911460609948332629153580509112371812886525868272203601032625641857592529632683176451745212366299948472051131552276607330035793150693123292204362460666638156020032867257080464292384591503725183317801643778495380555276550487904169962848166875682918649605732014117951331860241959680195405942104416722429060285664953380853204359471439952749412999242439616390870245131874214115521549931908819342006838100132088600936914617212853728519881206798779746612084323478187525831053470675596227603709591944577041506725968504623712546542498222152906397303510497807231332565726963093088820514746982562558400017017555507561742934178483318991466741961726656877468299055785410201424444640816561107143954218212893644804398348884826435550525498340303080419578523171895836521605705954672497881916170124554601953046024210715049618299829854860700581312979839705636061678407838644638995659297029229842539879068392286992022123071108474800570780528540221116476662232446105040451905463187283503082419190218986196514843989756102300162916904427335107141434351167172585368972047164494407491665119798093391191381563107732458679480906255784135698089160440919857816015246365198037358665788651043109743299984942134194373801608912866607326247507431560695155146745413396786245797041356797446292700643670507916068509423663596799317971148797636078798141974423126783673760366756034338153790169278619857540179357636603978987095915508088231014506263908529944753646398459750142311097566557757280775715768905775140411051971673976284791072580626223826134626626811987009641020604444720205434060392455933675268006885785248884411227578879481190570993513070492606326577373380697189864194419112281998360319617500990189301320558246903641507418060760608426713421329336638125467684157744804759037877890295699507585128055018617182550196757973719127981163457344284832112602779837405495434840880543905303004740681326702963629138300629134308566065519020153319990919283685349944016511803947777526643462383416415275547734572722312224063598659536959564935332560823984262503317644019936606125112010398063328088080920374551069564739741198542708571696771630060018527647440001437677802930658054908657543813834400736920335877106620899011232369778944859415955118327361569016004803211072331202854366519159243995124433602593202556104490724150231221519094658252988452539745236803857563412707475512889502395857745458091718815511799130445059493669568505438405093340833047474777286612843917388213080004032650229512520226865260279367924645057193490869034703413781161478887970748808430290169225547851097013233896782142336022710001972747218814999320859684192342342894147247362183934083644267360415952143340150822397224764973723353076727993622454552622859871058837855752078540020723318079499601604903815567153172385617516204818649796269648646341293941295585360386773125212332801395973925990133268335217197357184240235640674975883705414374801468559524290917303248502655139443802794515236560588345670178630563571473085446747284096170599271521923656255430456246883783684277376772473549065283818377288374242132196147876813844209073557359010827872487142599125084156028250898678076875136808268440690517757061384084287775023487649868833157160730144186822329428836894143664386583017467522666930159976611976654004169561883970266392830527423122095502996834497993378820278442080219523096570370375508820729504808126350630388775885359624948507448663766939433602303084057967628886260706432919986625571240945695042185211733508756191448036020790555169778836348911641818101462550979258753023969093342871040049334974401364295563045161322286212581189273818623391203599059526235722782152106641044769083627735672765885662186233649630823493335900791086884108868423923931825196003204779434821375709100946570311992370554329555792271215008506786585915654864100306774397509041682336146886501674743548052154381252755370620189741938760167681572750928751624749444242264797238832446291052253891357347781060755660791245260763861153976781691893348932832594777222963655537144261712416517850622310435613952592914348266020504381411692989858888189449267653842372823200571811413033424147702343593809284004767988819629185368528133238550070183516993379915691449967534116949669143095062247236450456887165911334743813872016089173328212781649552901163703244012874637809265276863026873670728943598344790235474462677158773475472070401132897629109584743680402075068067294777030122659449134881881915008247632036478884711188321639336501811072166772057707023879755270871835423191206026882919147889427862664339974979865250453088538320305745353112377044597019788612526055287933769115579214309566816890450470716621948629164683848812980699166720594394341965691671018728252452101693224709550329689240725219777935912322172866669207731966106459865531573146739952541525930869761068284142228496268560235415640500983257673581828487134702947005961808926195895731975214440358809962535640712787082310812532497539033623020445388796559624524348027286712225060785975975169586561676799671987025990606608721254839959752674977593400182598949353597166215151324977391764225497218767322379329961062494064907892483958327661406748791795837764054663291941611236238854334636644466826575078173761433042210754945631550982976915315192417496066243103516658872953342326481756850406872112505967639494820012535430988330533989222228906736977732766638913829503067258008625517867962437257965650745282396409509343301616933137476788109121137987135834747069358071190095127129679321223788032760483602900421574719596052548167394051553133422685813499678229507268264922320998047101218996534911926491820245642251334545608165735131799340724124437110925410436557092519216291902560173976989077736026238892368509317499545991751565116315622047907874957384360611147173773830642950802037753870508699323355250258143672351895594519070373311941810068756886048830750922293676040589172434867344618768128169900544803664206760439392031546439142116694124629751464297912768831218338195748736436924062280401008140193707270315418570393395367666609015498472746475033647379646858917255736348927710606392465955448785848366705253623037679076978945743726776873889570591909842671576419391643813877069723552765578035549258448522330533063854959609643386327272833567104156604358141246631380937650703477044903092561810758152238564571534145674829823292255689790543058140099851914818832302293871199975542886825694086723570743815382231029093741570486997866371756311302120218076721897639890438091641513391481386860549297111867941874078795465962520761383004872635500833892054932875371251491876863061409185060489608379352432631060471173652401218812143151291359331009785595381340836630088686782112133486016352590714209436395299912008092982946414671635077230120560553410028549534171904335037140507222430728182048166082875797622075062481436719863842073665073699469932063991972642004707778555737376360593537142004692472137586672644163646991522222041171008621262005948239866827086873397506820462890456436446931618465004383625020458307325263342897010942048043407017461179444194649630926024652968959332747740879491336294082822467382821421867263072127445289023216152768214905038390338329897738137083149117337378039500837015823343298697650762146211163858138440075659129804709135985992083537504290041303235753114998325459079763565932776289915511328708311671695976927595350247925941837759634934542099604024461259265700816476546413809175730468161459130182416721148714472768346507795729532643968954422042679295055128551395426351782725696642786181019807290530317739360069191534972732366643695133740567627375967878062744703658635813703129088700636132727883298488789677307076749225162908643678387235754101162862570352435780396859467502552609923401234665864773675515197685879823771207609570740562513886097628413719052207960917854344640228771436403220231138194718581793201639117905344241002026377484369325236815074942900056433710487568534417566705918459428303467112905636780929522638167517141389712305789964850742122730106508523394749331759911203051045968187489911906052560917058235403384055123528339879827101487220855438617266698855516043786851866804810736812771987485772740111105443319833330340651900858170214574162993817899634531651705287413871596391482180598139381181269361999216802323892352715247813941177163249345328333589879840329397834363139743508851602143613082398788959720029759359879643756968754522115974373439982784753158015335255275458011885410827925612338623133673510013038679488694512059900266976099956276101101198695257971371729494059067406634180112307224421883139670507088236937786988969534868738208054234618624191200104499509252255734327779054751983527982387344163825086790597004013452354873186506714938947205308711794592013510898957835607144275596110721140718323381515464709584012493691089564140057419667596284551309059661736677885917822495160181997397999295529173614826467312610965943109181082737229411366616513309963563458575604092825941452145336805401727440184591048116306908325300076541984414076104293151050913450324367430867345070249714286067937042653865305511543524743811190296662083335936578503763898006059066623253886313227782478380581570948995362552597050231842249313713772117164474021639559115867063323246521099808286673720403619473860246707039910208259471303012451659043119229518621108865098171831742826901013663395529339768233152286723623385020144883353854230719045308391377712858734489105994233185179216415456318267743010969976016738134282921996501536480379954070381933611836223989367656368929824651358319693185059281578602360817164246155393306300251654340869658210759277032208462291761037356431770804581350789412394210525888756709091091163475566059818117073926130929074129932595645465684462782087977520725104671534342504415395700397094141241837581322025024705706042151072699917672314419383499688919352480536011036272475461932396590445694477198822583838384677182174950231801382989067279412631454043215160837149669911113969303646526050617331068408142878358131939306025540226608201522683697081243310702233125071270583591027486668139294231730292181168025417400776527916169397482492625794368446300686304394613940016033764078675493094068088912618266199198396235659201958459460274319252898556459847837125421570227095053233069844288831097443351930263120274947500837866672456124890271726576810893820644639621434032335713195553444208323767864207517499044241751483670552626638911597161539222650423608435924973291614229339202551295886755064301795927732599481768297367066985267512089009645998170998154076589449528088296981387788090096190058523199896699309646527162316670710376555627735315021242696141782651707461480833552240825715343214380208607822359933429176227492118306267668890986861385358253801600261364638104518459520358726249674455079722180232955762176546159109856548643023943145807743967488328126677789219963026278534592980336635578891822529709430839215874908156975395129417028061600687558363275847199259537148519140247385175101222110254731649147170321533371176828996194763695575399670803694090902203004902029836645694627842205779148111785968900024121208281370305172869874957572435883808682170758508089323451805916716603734957501260405038020828508770658959076013587093568179035811095009887638720065030876604006825999918990389453543002188157528744544350177245019546840633204042381768556279740592140442790503154658978027095032326767316942307160503766919275228345173720129537729591534488966710386570825500277124548916787973792875198741023805443439484332150823722796335613654183631630834077801504447489210344837060158769449273761292293436328335909562946531923541311188546311681836038397563517364329191239572878714017698063724928911834985182174034909044053039171520749496111420566636443126010586181058751144356840161710143160985997631211864650544536515325604002452895985267459128044902418131372100417458523462989537016341595825757084491888099994080845203512362951763641443604672597735780083930427762069524098962871187142993167735066031997398479130415556389376383489341287546401129515808489840315729046542133218989026006292314096861203749621040214262192174350802878976351276099297691211503678687635605198820951180978026844683376356495751001516412567615584527419642656847653787133814181236823843283794096598617239438008106696926505388098422936436790852584916319177956048721703930282748130502542275377305993387222739506723136427264646315589708695867208634515390525772980305338888532357212280096090412578285130259599492232912327535530450882020342061036888920437599976029084242299420725834202007969643814186509598305611151472353907052016952810904607214135328652279981984235344284034519468949209515155669414415064590865638364914443920421188418336940900133786721068775226631135101451728596472413109750695435816225219091847226654619342194532935636257458798109052583456117390933895886690241048783783867191792367802939453957447714506062335375371673534625571558180261361863403634864045137430126060410470183308295878392956580419490330670236221158795231068068249880596382890886219792404780989295986904634596587857728033390423113702110016208267746107017466992126285478019822295078058734914009936248195762743865036399312990383973902067130314543577353609996427496556639697398076160023868424278130306629800270480706185308180576195330889622914103472617317349912012332072578601484752506754307694995926784344329848332742167293150765429455749286762893079486645204409565972390605480126808092054355715555988517894109802588357154670167511342133003422852116485744335749373606817878782158557591937140246932071475950593987857008751291705778874610957556655460302599658834942118288805792351443636961599764536972545468330736811347127206595671980674767117654480511894805785762446571701895826455299423199358931155698291426320811697347200315057665551482244962964893347562536324410430006831813365847383184807065706579280585976779380077961997960376466255185736881367017111460017789571239710204460311944518050901782127540593816002962657635935366937213480575381208442481799337938886778384360753236935681676369268551013019240626617452597349223151668754423023160852559201727458238980672423006104691432856029280360555834962124285847375659575899400258424436258545183092980630448626032255212340955133382730769662208035067287646715208355133271121709007715017912219597586528099685114916834350568907427859188950674556372794414358401316368128234211525163152463668192085499364402023685295161096780011022312216914625521712318929533577092327416236459270067209258966119365749736899279359717215547982994155198307866830504091877302957878095423267935154198334911105210024014385550131430735050508259693927209116579561229689469624184536881323344643255045859918957154388871321302066922962754072238014207309215809515475505383330314419618542920250203033505913603084761081452982786172635433224830004937216676698898929348783745455542212288142521630331171999010886804929902565249952565353774306806796504762109500492990848718018525123231970270256302196472225135613926085249061251384860655801064786004895467834212190373795334935471577274182507295852332851984855160320804846599447517436218758908320403588076215898841314097644900895579585511445010961954545897697494200220871047512544376413449191059382659048529303823811503097420184686960680607925024941639098585228097835817235025084167838550245059859254245527319628938743290481078376788656479993927245062254517603278716460758589934732877226975895870817606965664137146098438253437714905766845264567122264079432706898799677888148521677119428054572388570184282808538098807475892289231403295302798612093485744215813414455954567426155411680875947857379423477184974911836698337387329409835661611638344738212301594143841999113825170577891682105378330333435577044777663670527664546353245246266062553119960998572715548548508725516804038110557504650981581961513066371499218178073068739161403335107509180146838171476778944702969408180007945544951785325725432782201505156925733492843981737601764321347934517526298536344838495440239142179473501858339814268442739726001534201789564903382053355001847370878601832152757180289321420246286300744674168729386743850411212835560067666115651875216648932587123967726450970058615594349113816808212199658146611661673317980344748441496860757487006119432274432200799189562774415039612404205145287997674326256105498942260827565438322074888166030859308301416373808359501930209813706596803522536309202484209798141621237651528053381668153727875346032537305498334962136197796713977972686332172943033777119775443707240594891725792119759323145878543419751318802314393303723177573463164936391228406294914250110184754690781233182038140921551467090482564096063654673684946215821323306377365088560976488219815808276702930347152158243560583263243975843113793938730152356461064007556980443362504769846829942250325506154321895648788571320359261611042733137247635598085744563376828494551100405639482918923440548502343812522353636263644924654152361994956097150997975430043234637053890340222376785448431051461252662089351459967211806555416838326895551221301945242080119331309312207761727632810766394538007398102086708593326927132002267725786964900591429435711346782324854023242796457610296779812900897549232131717670496343361248987005439001511848440261725861220834029383658574095544339084486073220724556023874061501190226675038601484063162498651779589983822528634310606279260630124296705982784446111249459805004741300045462999762624646017807938684166421043255818327169859169833499452694493294133584696299448847968967296211701563988542268209217374965422092252446777100641496738390475874186313836086013432885009847349721252944959714939089566053983937212876517276156732554895935686804570463530213895537422027592135493051480299799333602839225906797253277608501569754875278381049750967742728927594747262961521949995236784283683121975358357830060653699136311425870168196503286199664697313200144178364504323881826772042118785694479579968450553444872640064665574058837798815621317035716173494202482132492983337233336235815533163168218040201133560987115869455005218602663286005613435854113217727562110099256454397634958634403949753572178506920921956163334947033944385516054080537235070129238422435704089393581587696925238274138718971260658995989575530493597640192388218958171443350221582796611778922705001300304057466805148023575861918839162172455781534976330014132230929288203745602616375961821920696609754181804336675057302583572702720759403974344364987155784485935100780124270756089379222914401800509530048457292700643130320376392116766942205453402725413751962213934336025605953906616308277949013027643562773575337873074400288205069931772741237074544855456020378017483355370470516760020752590021472858274095604133251591553046111300984041448314548153800914800067445551168707428811485727434545208775015587054047946864032369536951982893003554785478808694323197558331025205276184645894925064603535147825903241447091808500168216291098330876806621426892904799740183100486693044445844789538964006955761071903282307276812621419970734125250364048816677633800132268481690631761490844636680384211526898283776924317025788447336563450368151018481235641370613191794913523209728523486194494277298580324908561071443992251512370021390623770024673394800819641467617442829304136599263756229865300560103969513347921456584919446527237537350962251902924915457671197961836360721386690859837212102399501104202665412564706509783791307952078071444934160595269950515267596300746812424153076730731005519517411609378071177796418009128364011266616409685400984224069762734145888999789258137762076668844314670191353808775536317133672436114012605079405328533419462914567527309107882030063454975118310526480491639207026609655120187424222774892503477248559363718545025254926700408992651841499615246354168644328922847674881189884043406576354705676410994926591237456271233681235479664443137513939546971533786276972935531867917399886256026267296166695033488611514894335616509216563677991280096648501496924837761601660285171387487077910058618553272290066454128699558685472736435511177112957356437551547617636994210681847272998719978703114342533577618862540333187836178837481696544675036553405704911862200771226497871970561793822115496620165905289034536523959144473275655861744937266652306251160099383196240013637583301115295476070439309420046384921548119137634637833134318768662687082210923249341676836120909878261821235383296981995555329707597621271847557300141251862646028477820170298899939385109888036247079123189919481997639128155404458536725379295970919717645655438463910881307612101863756253634603993622083033892447627092145458134175247169152705205431891961897611006583129230362820996318384930962141241876436330788076555437842997524137240761572097267527862555380893523494664050216272918301261249338573406598978689513154133385886414820336000141117955977105303824366586726089406618653331363645204854165940655055209067907378205613992037253990805313226311194175698161775884322115421772965772855312351097422006953400413870577557350842808969211033101522673404878886168142405434454060352359166144260570008832328784705035595271942421332291457940223529498421035974603655865537466981537937434823902543713181379169999291800096278592022762610621365782910488896740883133516564523861343947220066821858548894638973517213449755239296369360872866312840141378719616680203408935027006323329399371238601124697354515656211087727577006987173009699923438030395643659742804252958810650980853894897293118238587927508761873440521780527690443503475547805776928394825964785068971472353460316167399698016592359908087392248129966943722887459445615369677467980532528196594280771110232259814815939923469928307212419642359023373521582800425697134990300147764715938549644014368004600486218688572403532209387025647109769444479853980324183626105926990963892605434388768227692894958342001541834620597896236467265722307393719587796942052674851586340018770224424553533442443860684231603723020583647511555592044331462311265309676191027693500920387635987768783843887775059017196430339844603836763144624645973909882089350621872888199613972482215072186144844997847128954128229067989786441382729341392802954008959217561146291375576008386926326456661429860292645028588291787858823134608562417305161650314300464917246119682969689952300430242890011326302918460238597703192063909666146030428554771988777082545392176695826449807869768428497200363520774739746232786224154793472485467042863279313668948138547878108350748019444820917450259068622060633425986116099148435252683662603249664947016963406692529477579979171040454726616352567659292619133354628625844721934559172575055891231045312476552977812665828222702807886318161509839434418780298039600801353089454020054248867827029686263335425468589488160791871953787671124104032034066104471146477912104253590062453574111700585129804931465568828508018512436196772027382133953035691991244379105156493833274536536434053590363046479492306435163627977306899608939960421088537352133438404788277879648919874622280590552168925562377673211965490321460102390202344846204957431274470373087091425863423438569584705213622275921828195950958501451691270652592037566122649211963983388762784039896267363872740244995491260076682515385908057085855787180505781464942412050750716108852932799025053391679205643133256542499730194238808683258541411954929630766996509661344947481844371155720538794461953355009131181452973235316607535204799352938390852672784883874037266029978479052742368862530947499967136893149838048135877756331912544629633608623184916547102316450460026684099462935370759137069514779955310759349664443047046971591820057431524124347293740271709437279504371884486659076802959138614972386930075909663658964405687699001223188192229311565850417636841854316043767385917677806602626082868129684539322522454637974659279058543801620040748705174181510913369652248358121296015277364045061323958979771813364556239261573160385311885229135218132689181736230967464858157011041400076243045878212399658520683571732299266829046124094258406015205161592845556079518255812772709539867065039044176145224411038360462397713011096253544490299324187806471264869698682432773747135385442046735183351047557811518792889325926895288070122945518230403079304050560685801962673116732957039497909005298527561345562732300099460323543368047106879252902200027055208780875491153881342216035409467760858791341782557427477782396754305393818676544020601696891076550486693096237496041473546179034585990382140948098100160986876110200984213518470380415183018668609969153181305611665048194379051985935796211003493563750129687198379364080719690361285756236383757983869928508508435410667462082600987401107543420966571362727669926899528491860718632241134196177504098175054566259856509896288221596811761059626416150310428058747314057684963266175968423032186192401235272906487635093685012702917206120514945229074362323023762845432593552185947487139470300321165976555849491220997013384695068098168990369370222073447098017148915489403063284617281471281893676096377627671729584719121321078447776092599367662923101451858618694551337068731037892958815634593826877107031355864055657101298998519095043594238345559494781627329489921740557749776980024646071147672125771073839319582583429982880014839193619778829071632813323808003914881049422725540454548417668540314336705430889751051789011185729542100791093070843494508159549806489817330159352187780374991434781535909870611973982658978161782336580813995782573569992222230771600289670599753541232606026819714230064385320696147909679598401590105954742922175871360953842150628485590378389627270098281731038993490303303931653355027762125505796072140349386191189054516325272543842905360288916871283668892352528208402020690944952520035161979663321172332615257446492375888529898992033062780651927506860205455495056685388611417934518497822769979603144731089621947009105536069494402022836830089357072233185214364939413607276027881211137960366041680881171400316322839386392228445002490403651117045492781320479730884889356404704865345098093153229233090628412176066076842608971849660796540745647854179732279294760937535968604018006579520674193591248769300948040096742606751910707613636267651067234654978152616987104342795069334244472424512000447354094233944764418341648867859992876339772787040063350072787759804536365099342938879151872849836047671388508236969983348596977378274774182164666575541153614363679798529385151746695108849522722859316873000221422790660559169015550705340953762133708358022436034993578969751659444262071558706144553064350307652387705036615910470187664142539622281971752168539429258932939234846666382997195136321586791698102985614936172833600528492128713282990353045519983085078962410645499384070032228424221708080235862554001975484842437081394785122973359961728981346205127349109657161424027135132653693888962751898458170364868798921794468353785577576305952926699978268698857907695647475441012817274735092340451941954152876976617223424710337629269106434315519406570537942209096409357734373683218498153982567289429104931204530365819969628491704594695713404052997974606651322669136469218649545668350704500239450243292781881214988290221241630182439164052555527898077445467254103279054013067055476727088758869365859873137816002590182849005069939159182787314142484451366718314704507502305939035508992726377117140054834533151500877764272604120602812884149560154467967290236781323182768297743021099622865345324239973632474928270707441463781182745223968490512792760000139735943418229119986863808800150556401901078752175457593508822021475810536038198517813447702400210883012154223955253473874537244909680146520589579457802335076152646096253294199466009400199559453335371300761141008863993823644250416374875922763411599647259941292491728369225886181764910763559450231294080921469284279877032403553484334213355514166095135141108374302238868261507863248977946179980376837399425074853577431954575303766832593761841202712896144841946811839390301714065509247567960203617795571137579368486167798958082418777272739286482540026176078232742307161478336279750982052233761043157558814713405519308812280745452415757802498625352537541766312252271342422285343884112079056196291638568656980148398897665230133643830011369071581472537364118624496639098290265210302510094504941192198092759768921147082658284932932445786687119876523941950618625765070966743605887491673353819396083479350852168551276521185574629386401619491756484069804084525711129372772619051087784145704015857816558975437746000079758382712709936271574097178113794263320224141315440398497748127554777507057673034519910762264321531509084088465918093956849480161765923414175541253876196277096237171966842244437384144477759291677534899501521466505488652773489835444615306856704372246054047283198944460648610532728812083464653966310742531441054635976012791617205300830855610094622391812163913739028692996369387355409289634339851452190251368344041532564837008125955659911583246262765173983688157340447400682037857311875387736558905665641414765898802538251126416906728651817802776030394950929470849580360079816346526365016942006240892583798727973404919822355511006794608166709288611221225907745555277784502720433777701383271382435150331594149742908974137341178891909010126411070960899538466150461157708637365255200570117127697375876589896307419987106749607219743507099994103473409286565083735054205032876741928907518193045919828923704145777693343115754280362752131637731668501088368275229460666092337255881663352526811383132023674485294968701178518376099475384544268668701525909012412754729033637202044325829477733053161679292861267156883996461542553033325183259326573356930534085870346742364555342389020903350918299106843556964081965682803918986342288017635261309450672504339661705866182257937804912230230714623403789831876096573564711702407650004863348284525849346352858425595642060711648598070179939670936172103447588049438578582834211265755278613321227685657412491082626285476711279997848078619019031056563387470758482627058640171900893856053620005187120846653024003244927265573594730835680071147179310972373570101277746787075930099250159049441971487234473729137043006290737267834431793159555955517990383582392788335612556584874234329521368376659334300215565308721779109971340094342218132063969532882626573343447291950516014309350818777337637125972472012965489672655568269796406433578593264766919247041525306665328250612585780470838620949678301184867034688249534412819628516907642328196951540191990670366383604227280870413694264612251143354873524163030729639557589497856819595465460703263608316428807026730929242446719575363153540344787452876827634723349368316804262287429921990055088184749731171995286633619825359564843173580426451691283858624106126945623372672857610468383620753362158475352341099573780563184008877562295097433388858927266777127564453931014534003561537830927157031036143953292332668139564438773531976501320400572867595100379691104483333089456816278232734030474588863160412558628964863605639487539985643005017364181561902489969816028982456882418754149309669831342125902444320419069014743880469414643761466408284807165880200279919323146030631362853657981319075054723750462344963853810864945048510890584190728543096026339143122542717665931901749148976322948744167345139075851580599266482915859325861221332471684610753863470199854434672121328369875414561215123723362446706267701156762051266641848864840609146283313547767357272202376172977289629560434008400063635475454597148521545286963323467130720023034755938768512518072285782497014914831412052505536345880834654261312306714661826512942407654294768620366645546210357731067343095225634844191385907332231805659750534963111711418745650886280976442300464888278526679485858802035814997887677616019221757166800935415280348554184972970314773639401344055289732554856107735265234630271121371997235761237342309356809033836562932460020602959116998967563943736139386670474088171968515583026130250292288289593102331087646337698925329222345026024195490561112940791662264152469578318867942382043513823269856939275782735496384745913473589266291346334171661813678867758799293430821588646252912264513633300236112490298932981743458065114960033358499063534017798439239982583586673436563642074167156422729223675041786951756783132577377798529998590215541544645112037811063991776202423349653227527442085317511798100843966728864631951226703400496288132978774967087453275003490829213771879209573566792311580435961468252942856499456960211711472930280159031218537448526426205617530041309201180290823854499981584164311297266999832926110571058441640823974662124568017491622841855957710991610454932481902948095723502663173795830098386829922648155313665891868779131371499695650353910915848474264267587323571296306972897736886666682285781186836977036207799081635068744563696294517291273237570301979981195357802038034768021661286336367017438953960660009094462860148228293192929187343083189570910692491343043565220000278545278334783703354173835175768803157943444680590529770478617383762979451389031999302578220437155998832804148135010198074031345140583365555414869966729846914827339341181334308059656635104493652473307336795340884520554913340699437611704105123306652268443959591002184669794427702452926089056711842158770612809198548345422098052871586034482631110887360199342646739544636908410965821227210528926219529337647243039779812453226714611040148656822330330747084679684713822729322379316433122054885207421583231780044157917271579423286320358113870154302970381358533749662749791400195709104092539890794983436467289916069626562709624060301326786970781553062458818836994595162450381452466547972611136661645108005062839395890042922663217647423044599741760345766307557430716101366430998769645967342301028507373503383209349512677032529766622237159775225531588480572124665166338410351187150258283897515803094128017380846258497554655081920298565051380213985703722306795795854023972537444009156067616198600437617367798242502143562112765871005517335320357643413611025721261219540225546256426912236882414151810967934390085100930081898435631393040010091321347388588087115915101699566894689900545412773826818894955125151584355978873086506501697657358580592477880892992586343021293025561237771424610311237075169375334676835807730356537106748897147809290099522917849341490990233909810288223719627314827897267160971506984199320077265475673350482010398087572853045549293158534518390231252483811809819354132739989524706137278089176103246569075155387865402130467543559622633652892238652972096403576000584456569332073688238464741434328150229172742289812391976695297003630481187400554088976914378678146637735392435759968921274672414225799556917183821366027411728341395329688133859782468503558223205804224358032940563229662185100551005655309295363885605945578324702608239115532365179419693722280070207731659472276889866953473785359489627570138840988921576290306176319462022878112514476326303570972596145273650141890417282915113861580080050576613398108078236121400959035619621887322735093135558856815173249811701466990474973920488604364569019948024213141176737216787439395531794168183437734012399499043691896345435014577814647732784580602292328094912575144568891541322744091706829159030991827658945954002651964049032259845754604533685501235664013898429480332533658850717769728122306272309220124639919806158850710240072506661904780513919601802535455035173151307181410439749441151732996889778879993893275923182140414479154384238496807089264647064746010989513583141088062931426143904039866735676594214776259524046177827015593995023448494558388242715538955517405681475506188146734105421548628438277037592011820860663874562043818919996637446206011290045918818362678867527744067940258324216498690390922936126448662894981698646664865748947565623434990911293752728427068906995650295247175061032855703824294671360652105271844385129560968341452407460258078530550756572515149364138942298022176810733421439380313590609109922859259077115373481123855190120092146434229145211143770432493643609255421420831821552438852576745958270808871951110425656864132915885290538695648442975207485311786491432381731497104739981940520701028240249685104388828895624324377354607754777611109333506544880272611520150343373089244598393979929494806457403779100094278842161229549489610597872606675917287096064641227624403367250348571428404647476577091594452315791378325943471507339237741285055946764356655520015118688989532540257767095628876474520989708247559194377439121908193915527419027375298318063623074817552799732469429110126815491857034022835971553034958106141182508031824343158085742635706460357785632562818800801713892726238569354109979189363925552391336144713901979955262153491626489874545079024569093820406259375082855536124387977613643611509625457419277364977986363568225427602904861365290266189766427453144596869753785943007211123304242451179076794408651944559654909515611514236215282992973392709074268220751427517073180715763946309665062821198756196048572237541281666664213374583730192814698550147608542519964043085355127470600886030141416833553646981711730530267816596278583438181994795842860650763285897868409551014719556774309744281469599910298112406203790702058174957839272849782025637297140817729680552072386299544039292604280259584412244472596226063252588703287142603026746490105405162135966456647243796863033483397046256916371287144636381420486721619500145951838103922691861376714500889130156621949242857791326621731200721514296263433092333672038346782920940813328910582606617913963964504208415198861132408101815554654295173483376819736562708661714506549563629263317304570622558391096092316107828033992657168085444665039918904997145443234357395959487826121743552563504720242107838241606318344945939774750370908249320670208422351401000725753384648435758085165618727789272107473350081149275694469979192170821873910795426968633687008722939557505672396629199381682469131365317397321624901422372456620129318212635294602888266680016530739435071980526264325549126317617542920476857588194076193717628321170581237488828159251080768492622254175420852713110128534730648787917946632001631248757568506108770074291181598862027712730336025263518346910669491100916418553983816991844502392068885096708572876214130615664783350364970394534069020589002568251133988219120417443928539574269859085617751141251615964376091836179515151897288000543688466053585923278451977548367728661764584986182909642186328426677074946688406564708450659022450418111718006701071454882680508575766959364268140560324612349955236791866853303069386893287719541193814274640418018659021702742315217770650698244439289633912812271052679942758322663380751871090241408362699203318646700405506604302852916879267146228563390474406302811123749954516647185142666042247652782766181131511797509893456551505674408507364995880701272851937139451243831844569696947398314854113951924578222369068627930645847962038871080946614648055484059136363956546269482796520797160486961366382238314363233827047588709914833019094770394321823301072132126547476226373378536984617100934715919152183472541883018321771000101502402874738537873527507878840732392524718055853529145646260492520701668127255822514835586031145848824026426145229559679174732997612927718950361982542559996558080159917138420021967515949680450684954483176966841808748985630579094037460943057825750903233283108436696554333173440232956170452675782273013966834403851664883374538096755630192664447834198816225739802984495818801083809028935171471771170556087168430656750880041100227782314085512057812396381695087326768181190833798427966482223928647291369460853042833046547969934944573690532652356785608415716339588798734910912010137256939348669520227950265688980252222708613865274887851583075097863804986612929092197959144375389534842118264165050608632414449676391945455709907648567598723648308946922013979993181199229380553273628016659749783395818313428537443050287846849139584520820733852035707755600372029085992701788041414720054036939728682837795139463065299637320607751857934783862630282514214138225113322797501826551117689131668966758840661394948553087944794246649682556258264903109263562411346413339190477759893904249485263496035792989658886014911975888525829888203244340403636589459529143556715304831585708290332588632862549501278628935604671110166803134216774463389432035057686619337044796380384023607270849663003304811585910804614323869991075786597461450955306556367316183112589002785681026633445233692063630046692474567098854750285008974805116696424680850348786600141376865635169232566111028876773814720153632291713349095635861649661028822293482222874336093601284511488811057582548627036753157879014306329008244885151171188219645939215322778862324047576597334909297155559234509377902655194948416190482986107756500467871105740729365464110256529034393267019406008462676500668080130624888808141832607681060871773104837926817327056574195744468951766276695905718947561425110198829694259152930887298555193123990480174788677711022541163795566330806891855003913701115046955121705185777145627462753635117426094345024779539420068202721746531631179048451188027097860159101964223750294818674078336503284015605322559892332354261650252799744558343484750279884938365364306399708783824647200254113438664426373695561774967184824208662611902052171888528453455187027532986224050699558642449638821843698138782740377451091170193878066653784159698537353343530547309390194582957280925499407201879554344632163695761280684090462207531555214238005040833805524463697223964277951756498012596138209646277200979136468269803197810844244794621127561376895378625952423559261134474611869468607701954548253099285758990233480622703711002733008185757118127154511458351958432594464707897545113388031625175889534950513325497886183533597943265031237480007228126910549418544387541580166421975769764030014738045656636059435445092054119068436534825292369428303812898416811079497334811643575819792517172195017518430626467539784708457730437772009961604174886995770705995045971427886212024850200206759947732139806928940590600189125171978258675039875788548327127501251222547759544572761928625984063102757124697169476086073284883612243960806983701003434223934909382004290278219836017426293723412769004423126608557652442684320664024052451989574975130759535617412696353544132569387057882166349394189793413560556365083888335075692932766725452952760660500860083483027764108549486281479273793666820997913283134733893187980292081836232112437918870014142358828149569530171465117213844259573602278783489878530646204394689568759427128064570071340278594859452213875260748850138389404432694044357348011938155447865378796328735131916268015985034720873087156600313342009398349966026758754636492409421860937123593737305939242365845672842638441720262076716066684194756927011323977914243522393165229045964369907974732265468514351206491039139496227391929194784611082294307209742664744522419481851704456751461056607503142983161608802387625861063502423312299631588644852297786807530323878736402443759788098726922555665453361813193161930888211112325110334179183976839375010540172544811637941655219338609918738996344754588391724084995810256829377795918781822838454451234587847277699680993017240452736037325553639863855800387249688443617735888882409115728264680404234292732984481445812931287100734904750009365128356067187861681586926577007279270296134364878752234450469447790366178014099145735157147355166502116137054698256075414358392073025435302118627844788570399225512587262234013095893219765964251923838222045846543796320432803236924936017852868923878862826063316641545716681076293033381754048034641465014071839015131704510880895733306068583430342700223596068730810291525873542683720326406832727286429960143700695296927562860069616146404366495207803589024535984469092056193696596989243909726521333959698857416385413005753483569699122838236184933740942043418266424429095546472146740308258940098360278802698217608100643451422349926569276153555055503023165167882519916856193552842331118008338714284540272168949409795084316990861581177988450873026108169529473040053155966319227887122887554355584560829619251865750495721961955216083512198677927321302114354104436950245037912569776462680550902080136041439857185537432594685512268806120272512879046797520261171416519559576772565998627745820401953182050539411924815760548310983679805600890305299056541978251731917575965128702537069993838347301028429259929337676380206772640708761144900849920966945987975654654133310283633590605752127098906061140813975126213797170166007314441096298047026124510778064593827319992689112405090025668942179902040903772885567062029469410965851502916832147195568222608765421318785812983144338130295070868264924843871531602117779830851595027561519450922136697678026275120756833038285942005589874906483657154296214445846067668670948523493611455196361443609602659150804537243298115184877962129574761995662115301254422580057566233044032539144137285938369335095997977216740966908057105409229164213380535491855129709486051682073001180858296100096832295070883906631313895155039954857651367452750373585943471614792174096780208609431918708602763450922332346547443119617517934026884245465882603740049463830342064661678039028747665002057981614779514414879380732144734548363512695317703922523641592322227143912387117912883073004777391315810807158065328465292322190073120975097101810856560898144602426681630901093376082206898222184879306491541531420495723428599813053578346583431647432203013902147319953564101820517371090265915034189571899598562443276119192234353253161622813714624717082339356477941802588543631407594111593936304553868848957813467136476579202233096604686060804697573427532122979571804282901700423944232250918070581536414315761369056844547529212472377788229571651271321395538704892156314075388581397818555302047707993813904249199159248988175059663950598825008761253145380165804152971928040890212612080182628890631358860781676047364972091048354765090275287929386467917771484604043661479121632892290668310713845659859008385523513949419648766474673927896941472034684431582063971092134673462014771043860641878829933906103327962597828314856506700860533588506026273894432982914470234861886319659041767932298020039981939762916495900340880104542954349649410062784893874970530672631418069380109040629115664977172882650388197508573525389168454333536179512865276041969691848527327175800420893902109238480360552142709437316701225061464154401487306893785965521525416535805139975959734084102301011563891838871258210775534770056191850228126723318719785940703918384809029912293358152691335081130925331628865011947390013812715447478605553702024905751282503330146678479316089149910075062427916068857653242111176712681727095468664644547403827370696845964207383958619378951629168363464891332619452587850782901678555976864472867445856026623579765922509901359527227421826196700326575437435512075297811084447922964259674267422510771364919873633513514328117289676359297632594814039054502120653477949533129511810862341032889322952969972048228471405896302451611940157790999906457142794448191187712277842107620345675546980214936453952429978697342788829031557383944534157823354252853719448683052222136264328898900003901010843040090894135664086371982804634200620168580100706794917294665652367417662882173549954823046057084374797200107884364785264585580682800680223576880796777735769689298064425409747626534815895042751297638505035267847856664982378734310284328011622865418168905150582555188002803202742665115115533833773057522249822358092095210400567716085876187761445043273174639134559073976160921685542142585925198437519653353266716091725862450389966995514082344497491170790746930384262034241155314371776207425834735322892158392625999915720801635796260692166394046840537975399855655703288536507564855436906519634079283382854605365137024761549892590076332128473314894105989668068311920194334266603943703792726409766503291543855842951524501766577744228129515456980604730136000950225480966467230267094586813841911822258462517120393482828020416145612518516354243497238617423585063425204329797004207627914454291898663534096047903540870620931703920082810786145287000123626789421664087991455110146157261167711786236513306998434633615426756034835323221316093465468354619999119916825599566908721720826853959829163957589973414798057714096540959648533098547206670734283623753674007772193932659157015357487587823109133962764545320038172036290583409122148250029644521910973636223371355940446834813279081784976355944142760880435131407025271357332977797209956778851387251541778547054596378010048706633905317195485291147491279338254553935628840870199144523216072017740845945399016298084725011576441171224986881242262944540630197306936493756734417806291287485467324217007669940830442556274675697414352254584199443816460808853405657860942009509014893921882845721502621252244730582332456229039066181152555488786572519385057865069189794318620387179481134604995851591947483399991351736026340668195272825961382379747756083158853842960518651283641878913053295186781682924067540525983893904558338976493158954924145900312123678782636910321369282060196084413118878633369754637216393035369673443481754538760958861549352806418179964991750510525070496603445813684820239176205321346446368077946522329068432582508224582410210697027615025470523608052530239234842588347190668761011264706382254675400368450919174530337548860337886720092221312489515593458040700638604288865403710976941947058826528755948550028334653741654760309348168988229915324615281153643682181469207867965803325782314951293356542943473219946130201153060844169775559108837265272797223667214938815685695381019586353556827803894621013961590844616750726437360915628276086339688269244292669767328598908943545347196559442581612169367280083849407587859466295797926276732970298964024660130688603524366203085311692151846601277652406172781574697117414286576118357889492030425048553732385352932067557877147562016799374824605877127703441974299539943508104366755843226025337054911893641452276623701418459767222013608474183122058889362319477454403281652226731133089034412188616953719654658789992697427090714942689960877825501256832026397402277230370646907938828934537590960587488597159529501064522061960577895946173619061852880075469072002886907370539950601987117373472436561642748440988387035401265606558140172590940126217526313515870804025795387971143494831092871475563485861270926689998987708004253273315294431404938390453006468833669602213806961290960993449327407644668760005118159359708736770051528233506114213692141384941070356343484230762999990862519100693303744761597463423799098857357079492178011920873628249032058775851326713379361754972022143066313591613788301176628496248494721917412284884741528117150897724301105864517162312559876853941557438441278832183072707493015248856226533735955761145279262339465534208200120171018042348525153988927091538348067534216483646502018142200681656316310543459388492029833739872543256591327306462859246163795655634024705158320998595322667554626471281365460338495839398463251859883338817510065553635018515746234946066275364908933688599213356218646780058005410189416260290266646215168757567819944604467092359184744962702241314074800682329196415470588906634039985136487656842628211495654154809992352057524315668948516427559918388282851479110994162159576136543876995991862879375675132194585511406573937386611286484083808569661439570388672477068289727470730475420004403186543543610908726064267530313692395347129273855274033807926895755410971758008606299386368710078461809815997818585428640849506876450508568674295409811579113910013887652605366548959197294828441289372210339826114805358859008703724367812527969731661622224274680114200879119725606373391403365934022175447698462928599870224853494380385098585625042174135205463855606726973864948315415091710674596197791375858002977543695919920610074142774392929686994847459251794670369873803997396773911227976112313241710241925284476852154924420989525792652485406091182153956553346103619528429010979789672225538762746259958661444183254364295395821667227098067438730487708473971261241521322924098033377659570217968814563398389033363702377091256671297439084617676831139162511676204045911184131708822235371414561910015692261742681050001814743727341418457573607988813526213314845653638156068890214802165319254020347296306132477537542651347302151900146245544817053405745742301311404871645117843722825015651532885162125120786785666117298788664449258190461155767738196248676258955924745386211249899301810397459218670745936383572677009106393971123842210481870768348249791672548683807668082130064823470270598049759074986525632669779773299610386627174462169793267896694744377055720142983909703677234661463519802139413375105517865298295566718094915848442758188059108521897731681840800286393131470297524849827868420522624789668401591611750295300307579725310974243179192682110262845099754128329988882071927689206969074128470768493000332660677540789521730568084949352800532457927065586931625044080483618886841241827035454896835341889394696603530217400380270729704366429138096973384251435800504869909477925890550331620847869088657858071096214350976501253698338278765558102249183280090897886126155319739367235764590883037634369194929254044243395257528284372069493856099951646254522380407106394553995322060356437847312090986618229163671133546405989653646244022919198596891531301474074275107335503210539524312346632707404276368884029395155812136653911433792698717899508613388029052200518078435876209612173774126349947480311744417806346606948968786169040513286158293438583822782566224554999942134263418574786102660541527269116371906699804255766121900584995913528614712857710155052069082514414540122200357178032624383270845211008445216656122785287038755110046505672867124348682140961267811631795638196909045092689394998062617142617983003226653087804656313379090503229483457509829237602851021636574614357346460302653326589033047964528792403257022842248606969454471195333191144128162316236278444239813435485360178968315677769389873148655399038324019611289826315103664816237629927326751566165641006473778710069522707718918613014273302987009084595505492670619531857225318191372162289890506600222199525438402869374961989087949526095912795399555319837674991652793875494759204439709968872126916224058194802246490304385682090375171251356379442951293044519660496865026377173116439054978905989747429355911984561379231507901882291651745890104667405603540147706997040486506269752598516662766158539230485730769438261768114157841563437269578725293215629777479292446448621935277439822854099008141028937897653328565824826595185102582016704525351285768238820737154865188043412988188087077166407641982528550819571436229073590523167313727803887810095468341476315790682588248738755449262575004868513141645050589403183621215475819664989578548302234061225030468783256624793152777777774149152360602992560363697920784655828737945932693903237624173074644318380773883791913972160408084871423333992795463350979657638786806163380975886018029361588997028010509172750473918115066501378119533450225760156512729900923699042508002421731946705032642587577074806479972155840011099935996637803092452585334470447386661113278551077094728164179309862100405047746050395241208341133693256638887964257041927100992506957792685310121179492115091705810794840539111921840601883625506345349364710298682794741805694954915495873947623374851259727182649325172402269923892645252267209694199110547376392545888494753626797917024989769949928983265819741515865847528305118569219446530339181317651843170973524873611950499470802409203384022785359405211361507249910855439592963293621263070663860030802561932192843798696467059559021866322352944472812781050538562522381556764396898082871859800083609828302799079478194645080110490312752808375647085492759006466546909496544152322735878921026781899298222929314035210056192968293786386169763746438041699022487011187341505303072748573119066638080469341966426524285143137461852701564176074838564956972087971832151018461115123149688226597674244874795621128343122431917486745302810204546171329425477694341645402340287405938612237958340458735930607904834115733124862705776157131630263309337623118146426107908323464124181043293371955058099206495667719690593029833002531743859571256281505424139270828789018779219079590864070329415199697700686042294166934438922804317833935714106552511790358673264353735312991024379733038280689102470811524572221003295250673139336076261641898150055103926779604102538662966560548696602792733383940012790210136662601843282124031573187944061129025957272804985582669673128054487738455815459182617442976714251160041161968460524206396952933564572818290677669537969489116435823036000229863230396247665765864875490816399363291880775168544997092299809242726810433731656666052757926398742642333627071572888928915078876524680746947134353744155013885729549634855067938350316234757074351026806827034925931264823893650989938338105397295516418216834163425061954969904364018033578440535014118947843198400983217825178202564128662859264467782381744025253246628294169395014096757071284763704392321011658708835812091965693369126247536978591845123939601344451141518712280656134666982226876981115378169620741203832946527691432612250107130922817699876464152466907446788454247624418339966127320765384390622623907891688926772159888430344496152414900541487382418413902917236607525435601906410097455667880122122642349346006968842208569899984825973395830653589399270337619032516041424808145543285524689544601974379885977759368604899443343386264712765227085463850614057084879198815961368315643943269992973332756215042366092007795046594482259826564691298276937762219846116844607301737011780082927861280014320112087990476803960544754341463763613657475892004693406944962946033395156931191618122665033454601426336187746762544202222872691274313199970834791537370630854682864362725688584863800563172295191749119384916501946987885001770581636557567184939190035673486560758741594622419045188241083472075713507718317400116515130383369083203967281917400838642453240926749206606112861662708423651029367626425100466234647572010280952365124053076058782924339544334396758142795387991817880805858990732868473906988053097353724309681123204732831085815138567081190571734568364802834927919744603318082847387202325667495794973661749128962205511459751697232689053205900560308680858615284938874121130622894868703561922858260383144223984869363021500327324350339325437480968191389962259753738633449534587350139470400351622951527596105110822557734788907504057682185072386628067349388867203230736597914415003410740691335735698056048611013834068276424509163636757824275634903113658776447230787107357092505777343100387047399429117849372780372681595346925636446811694317972003450497093474954171019759468351906104961365513896092053619329409238949774864762617461697047622705230080709131941578372872847283686718017956191640796719917127658336692424563902861931212733527328152790046165339669367271101083901296363859323979497801014984061070697082977093143731764420903631379627407946120250094711263461658706412118525235217045362621782131327472345946002388823194927641026931290198385678514486573829692573779743489175830176592719900580349416152522681095260223613579364562398818473771358833293938912480415454446449455408551499879077044195569937330947689433699786198122208311864676816561021653200613399051607781436445052261216496233682557727810358325039743258212616353840653402150332359802280010196736809924559486496988366276934792501269895107003832164431628967612258754013144105613244323546052140511298232517164281638971970288990070084933180368019324444565337167469993055447148602712808956475026062408322862731249771042535141888147230700315773322253327857252465107688966132497340129933269908373228635536825055679785200631646181718175583721930842489397062942459302887016696898917512846202805519094583388598894121479899130215547596105347161879512342908441186028993541487904687706628596957462267205434868971837724424338165920333820994853634138341305174647671001785498899930943944511524910638756334438738925995044123942774368841540162062853835677638957501248810744672729971332069694613562553735956754600623750307414880944209983722877806288113782085956252892966755013429496048183912558423263445520253301844697913610669397497250580644886791946767512437815339676167582918692730319319924854526298225018614926089678023066033620926844553065988962759067650856211789865724527113925997671494135851883109846996020742000838668634178788644819594759414785495603247783352166701044053603821054082196503953419602653048874159505467928386119174979577028927144888461501082535709065531430189235669051617836466267659080731873803116355825347667614605982863388055993292231200363417959287948332713683340727751140530932783055207585619786336774076210201953167793953069534218656015203696140347067101043630957199035968673886552185425216134669177297545548251866439850569124987233849523184757956073706865573491803095879354255331896218487013294402800951376789129972485342721125035100461052133136447367103402527456484863964318794321259714442376986659252625815773459394955668127700160374199186552750172271525813748107221799944240267203291411710229492190543263681920708921266084948216347157380402845824860557254634403178234068049661631986188357085859603407873762663107264080753503323499208376508746342272326040582675241296308683105086531890077679874196223589291703277953558014944377267778978160794318435050980815217021311886079410629642548920795543739279285463003696696986790685853972945758358526909481005466222586598393934660860527411159887652823781555342301657617174431602464688627166160683126979505016879577053912593768288195629336012887055441664743460008522588380881421033709179599188384442072544554269026442632188025679072315332617414748825986257131888130391705114477679034465744191278013242320191787051813112961092529822563638476793343329852271776617305699306000905658273287911897241246412527811490840160333474104749505234538322213517427017294499124982864921147301033016589060878748117397834446019548911563446787440813465736753216218885464971157763299287132027635432114247039196922744180349141567692950792218454148048264996745586726632794682732500248651670066904467599675070251922787148775410481847798087051016928323836953976176176134750721990837749068177980666627689264040593491651854708331994079750719694738101838790275399251660368040609297968474138453396035906177762935742404906252995316221530670749474473955158073138882834010157230329020365173085490467378458797270024158364885002580576902613135655467648305490708902158070199259601839575435587299490446230313739443820860646653369008988593469000793339279772041300657825649277159744399038787801508584230214258878490189903127816223485752711279927746970965728658871169212415106427717305037932695195473622185204541470048403915868686216559745098444622395522181262614339070183071256790155121371536267016016647249604123479919985749688364177338859456659087475707303478017065128802471566011563847564595531982493341298450379759838063647532428889970834704224561791504584159056181922508716392879560399691457091511581144877052199456104433355807430124713454869736350404288525287995013018196273885143687753225205831405458041960080889844182159812248799022775912899863757746327166790163267110150234591484034029188171238498962168104169165374842922947022680670756670214092764569864313152942102698123176027327103450942560722536256329789819670283855552675172307101376673746714745434536541632619434927847348970979945155984726809530213499844954513454135601530765542204293205099688876171039951151688066521515676081131277258385531387495966763223981409179613844072704543683249293358094344784495478441921154722763764642321653554217142997045738901605879588162501226271204555321132517540208337540829958923472728018127733218658034219168666737905300847799110677704412893633905150288859288289281150325865160290555221297113654653073362143253027975065334186133452953314495377001035349150398270114822135032895133548285421990858709977466166377381825568816267867861518897035055411196024344795422882487681489919694056749463305458963624557268839485520654018303552210004669926577645145411166717406892396129371339436648124008936758397614699780472639481611449358495485471750664876083089047757635555090374256358436788527402929762664293452118097099043679268009864170889233115867489157026616697047502564903981850340888002692792854037095879261927088432740610894397229983367534678089659641400617408122676172033222684107093391390618706681232861686479551737924012147435161466228804306923352146382596904703635530559347729987730064303013958057813735918902860249210788303970390268827610635547942916531018221875985566947398923073425699917169093960379616797000885001289446572612931220764741308955874713023111576820381203644515323254466414147474702969456151234373351908150825320784834229177148887884252685908099067279249526837812491779638370352223657275791530691147021979315369211622973126836850383695639178160702867885883260297341798330060518081830817703974461560764639482564319797809361763862643311036846543911081860427166967460629826537379231013396605226946657823679715526517367378532536661845028725346490272818103862821151723748411689748859100743979420801901348088011129812390788237190691293556447100198518433412419734776963510942948638235201362264456943170829596208500286621186444524986416609498484754112770711207402399665160112038243993342867351539263916786412459369498763015034361293748787350419764673329621583739058550666824568728671467622686638155496824342210612657699094138955470350196168828752484480485781036417205953253588441722466191547647206136612587862602961087590576921393750309517393332091858496289372365363477508475491011801551969670695511366364615128660459172716131441572127489202166241208693348497891689133105615075310335206133153894131798624911597514327075116652939059494881343781800950296936291857385966400097126720176502456777171982967997371818905434626958840329464791848408475701820146487380824560857041654612816492485360064378745663579497638326686383031250738503454143511695319745064186199866925097933384078974656002095459949156772065210057629527360383693770768920597165093144755168640425715109797360904055777254829542441384860504468759081728177306684704675847529379444184101286236173778949820429041813465321631822038491126904995323197113763269537924022063426713082577928363786009147400942586541478680442047677533059039170540815783386658026897392966866029610453937836382874559757072146662580740021041962672643104553936086502792019773935642427335333727856990672134896062488997392125851215260762801640330422478205108312454205912500108858744076820252762262308791685719870498337351496656354693073836372713667005293635372638557781283850473309114490709318578282257599626381262659678447946434476906511205676436072706371536045168523366602617316024928553335573733778248386411489757819262572795594568973240832562631460122566517135043112981663006227432442373806947954217637665531305195735208448336926816882116613329415096461358617438325570475325482010874675948383886540641929801257548832662460934297315800644992224661683081491533108572588781103503202323062590161159173018471840975197921175892429767259905186538281594085683478459624629261326806817128032661687313253887370365732474043575378006438277775761373870183600341527740955079466456919378543047573488786862971027986276229840757423721025754609308266482654819182635490789399047155569689804697142651826002482096656772899706391596749104781444346241145079401652397521565637529746445627315731197530884813979099692715405334755598767768402396578756368530977408685113860562545982219621915407994396093866013013389679435784797564515812391892704458812399106829404941488711257043743926437115593842093476716782377307178357886232081556804757179428006150287923118350908761836206992955768597084481079987017741654368306799132330639858240872452221342433346104822409746443307045575246064959838173534958493508149077535566589929201465958462606444429423154919645577830985315708976793341605747231688671824931219457251788239203587824596978277876106238205723483706553737484699509343018932110346571804417585118459264651799010399848320026877492182318136251563071211595336064506646260064306649098529899817471980894324156660851120932815337622842859046028032049898075241248181674415663684084294360315687588877420248794593325258650002671331170707848063381895173998128284793145573851754408823765352311064035134291885646510244757994224789920825626647845847012433115188271505617928024287766567843025345994229618966509784099775640645355445715099931452285346090393272522767277080506270764341664238644100209292158974600311559830641061718850966570703316099403487920265368563947427565738393282340228553471501511197240392814340167378831333621658364897039600241260293326884388650338283643399150549897732718061493613199958409741917613487903165706452283407349562582715029621330320582139055411039307321263305709134097493293833316838819227586721426028553350851737278309563455035325827510271850231541923385116180082124828082423461995627658782721131586967662451986539519768830497431416598474173930747260896709567889765032335956550723675689883764169709279576273092216586012424023780649951186904818314623283374941077761732005555058438565818269979111526089213111701459030910681377992170874236347502245504974029012623168497344224061204778818940320418408306751323827496540099753553989531584273759134956978000235001998346848767504476864979211820564498236894582319937653966327172601247864982055517502922966538406334619562388140318367720992458719051359250349935736574374114560807823164262217008426745391001972410340963652237788768584233824862832097415324775101142951274889716029069185890233708143724685771718843655304345455018457664972947843467624664525664175785023303517270050301816836410568676850737891689340968974088982029842458575064753225153613073098667084044963875883106483436325575377235151063800097475389637249298564274710753597731068707032323133850763460509221501669289615028564578367692540053715943592483284175337930409086831183660263444203285984310334506508487825253447509639704562103138562165153054743481167754638243697656772952920574041961949624686352812724372743193157333372888915269125747413980205394258907422399622110894254776245470411130780839754807907901517218799634272374610117504211829178374996218094258995768384576281515900757748742880024653042921019665429342398030561317841587639437913047918676874194746765356333997532267152790339019309841437518033131334656158757238507340073094617670777198347394415369152764455524357528391081020819144187963119033943936643175516512545679060484407835513451044696527806034140359593918564972674694831388287706258944497633159869021812249170060606395722932728141581313886081694914853191964508276761893644744610920983890360338327302663390638513351803583620297016165027027923242505957388031800165543879809977644001185105841301347224175031593614971678099589494689757539921692923751205676588380033762447786290296541610313667947656366207002366321737714803871491440737328966460775196901654126916261970639272055802899358673045417864193331638118022575638819801199333704146378072732303957961731648882139283710968014512519600207176456566195961142034049122981157227378026599648598001906347593165402094517705710242325486320511393303989131720853401636787781044844469977395413543578808452479742536100511973510047222520248401227484213849474054328968036516299508282094093479216043437149915609620657797601876019910285974119675850876307513474964067977286732895474725301207992892134487933887856230023750240755944259110156007718702558166470357153067818967865021277831522321826863661080412185562242438975450026105282981482395320585233474079627026993456081717521377973396811605578256663770411582504679140588870497242495124286307906475725224734721393376143395213441445842589959483165985021331324986378353344658675469884073812244877793597351710195279788311928639997058060406762273441315038675621093803619601464978599294461626558367395775848277401311600857568961051422786712487989912105417506407056616754022735446009868582732838107508815089357681282737856779839077736578164145984561784048091003990538341350765074326394018418712499709156547693844295488662635378123990543379002191869840206509593805609940292718631219670183467914814829937056420968433766092478018663581339431340562941859798080238086118110620942454082279501502599856696336019290064825215217402830599851779993389742055405828323227390984438640300519293264977730579176985537531727783287586851552471480060289980353546954000847827792186382063258360227841392131176972328457537799071057679801012046797953349903968114640424059788670370935626423959109058543166361357909053710789803220150005476998236257758452881172601282726573371045685523814406053021958620438639385655901012926993246764572681382871306843491151431222146961349053647916484252837734093875200688332269930722135337341443544221208341868365979956852216655328109511379433505508585981538780745102465824857405394373643881081193949054568708182684494397591964010174227732322373832795774039863491763393140434776842624371252333167191872475359318229269924893265921640554358069381465941015997949506133039442582551139629862223481237237248510592746610694171807574382419016139868607899931639068083697055923337737871840726475176850686138667343077771718378804229571278781868653733715882490050951327722175571699803110282130713699181326504732233733394872505289746704369052643608174637789755899119262734460858924993307373815515773079942376093738954152870984655178197785829150783243858822029038940282582431561977940209537618202321851969643239896113920819032125828202676683956809014114128470702861946709190469396620126740554385625069873121064331687223534837753001461214043342165638663975621338936336660571083547014872572157101657587801444537169302023977273364790385922179725244782641315591155404892247025382818413939271219824191589685901022423125202782710971191604031414290012657528054709222944524285164504557029044269762009302868743279765787851235958703827276163070328583757672511281027938681397675542081187600918268623786453040833565669426176567526885273748223080109601335911723621904816198862310468863997049629508881280987397992858480347376310992941594128650586969725148820701096819336042907177173482987199747135249684459914522226453170015364188941897547501627361443503542117818145738545425588321619542091378559125959598333718120440686251091002046262272841820243314616460106629338991028587777548213348870614661996281864793948825263852375769069591741609593221902050612435495566660714197072806687050907475517550511349664715852651559268700701519532332045266846427966225285431959785555330844101106061026783219213669783699412623302839539597010183591194044250990874558651400293563332146906334532565225078914611039867522139104743210838978587462286771109683354385835927076574882040861031822839275227983190307410628482030348744268450863147680232270471845583742942607930195596363749755851413455424095671608683093289278163480579836578784381051845577702584447572420277649202088427191179663052283645351965185418620781601370214055924440530192163755958428208138216309323562945800526825622365131065754011161315599872522854740602322107643023379380077249735841449218443615595038644885202238367023194517251999058460227729204210628536270009303738460024023682245163742175369977029109484331553709657576555026598194733442823136740740360390526665231426820950902360276338770407965289083608359206176611622604019323072620670849623393469226839924883936455610927440822001105951978566600730212249158833297741925037803936187648599338381519376755413659776993577812782468790958713224753246159936131561331203253323919034065216025895292563504395960579792121855164569589414852398639839512885766373043252334719384827389166107898125572285975471713816072270814400894636376570223650077341450152387226644269771445946464791613663988871648094758473792941787291517911681283720552732982535189207132187216820474551147756299217799735900481651070078490760513732513207988700675599803798582069282557229054196515784603596528854033122087183462043547206595052882721101326236490329763383804547546441964524597856301838111539298961897559999942133536495439096134615305250325970610661253760373605673091744399216583247371571819526642574173795580822484730856522807924174047844397507538523197049539237289774030234657547580682855322247842800379879291565957045722290597956013973291181965119148202365416246677744369761782989918848537235706804924711742911055839838516355591116862683433567499857678051907613026445712924631389028868460659069435824735905214184240363147944360781741722130020689421325586828001582375277860958614763164049809103187854882963598937785276294605002260737639365887037730043524641371251175457891274726537132123734444019602025525334458987305338072861728774052276639227852317374849718050381347609584844982712978056174336627338301186110430009353325126713835786332235720895483796476809562755264661283362151211102571357047664243715422384524753177322217436056342705589784995978591435568445921870598513454442469833025162235119923049042084538302137819447357179859025043539939936075406072567410126693856225780002016830389772543114959634546536927379111376440014141964382900676577565647001268850837999971410247927891742669430382859220458858607389909194944974396088851224894288924999369801779590733241529565595310922391626830344911489255194234320643823291012375537072119876315087836009704511169437952760672821114166450354661884566804738248615169309994626682950974269128999443229563812532300468369582916022832223335710004356989198559906915441254497877992835849013699392668679476384267048117964254328912085172999272799862101397064812619083391803158718494113347743266579670582783351710505350447981911164611522855472688726290881246476835850139557794648540591287645646475080942880668501115354710843537208332796402207027553504177706793781018898672303978270000615168904264870627731010119787341891173067638489074703061046666500566754262816478165547278640386662503673150095746594663516363861062801248964868285715507299960405415711881240858371772799877247244520768417059143489907615364938878326194874064930219214750936911926483339688570666730382853876138329157789420729518787704069581549649243444671079802037642214746699326957579810364219327217518944533299641567263483112136560549010850057607510756718250909195605067383058469103320628473817592959206148101122879319224044241088163931597974308949602170482986633372029890319012187274729564031714840923601086434781770731890228639608720237160957914247418529121142113380468799033531300838947181519130124421568251390101532305936127844609950122675139072393258720459951855451497518378210544364795157699899026808818142665225317439827174256094932566574493048531076410660857673987829560501964645943873235234108683140046288697421188814215823209746132952224505144335339305812632410547110049128930950656604577583012603547535504544457774250934858817861523728052565715116287580779903736287961728564267564352573241227559619029507568176205337389531753697839746922070786770911244872913403477567209625281040644395554585767121508760133032782173111069915596118262983961556408210076921625459483730991377267539029133646186603161125030979694623288947279013666749902669146985353180658695923148221881209180424742766547765215774076532145382505506634017254540304801263792536306694973210393131010403887538364883627047067150674102155710045950913155361491799953275073456918860215064858801816867745338743429799034803580964754899696239235956429683604185794599141725316983779180939245763725054187057929759162014181732042986042326847588920757982137844383055635372523577367145781444020149813353791271308199755188942415725734552365008573416430686074194773792210138769236007504987118085911162577646246557412299671618878273823321357500309771619839153422937094632602833850123413414616470198838432461526163422015438605081233185586077725671582704468506484116507996180575143858628613186225619925387407486151156584270790881222997888971138835591050669488106421965498382287750665698722607378108738207111332132294451933618831816387786513882191072931052892203518132034846346447524912316654808114912870750161451442346746578329106015642039815645686183357470653829699318707104999498371794757073861335396874324942192841143858465710821270821688935012699692306117661941008902766329261181888620068155063224618576248213011120272141868891293425170611345478461866178299017561505737947961427107870439039960054610133047684828886185370037548889394871446506848839842641443319184213986784598608864938018655422497978373875502958308310849414445400516026215918237115297033741923458352524570692533487905446802451733752629562225575617790824166177603030125173759856771104000882062777145495146248046173210258207613870983482220504715784348758478665779503039219453860525566083242879033509572124398786264996204452939749667163303202836495747904970515378825449313475074725439221783883370194450492992823640030512336186797007399190624388004526461072791149604609841193643265810571932945062570526957232831078089805148031801747606115083812227590150293971751955378008469467913235533916128691780314808496874325025122139369489162539354047008640604720784390939208197166499055093653938404678759316700904764478115310339456930626918414223008593301850157123648232508176879077278831017981790543870504796494049928437140272196953658927910765466587249743041403859972784788735725627094980750365636829442312473053547570318061507890254063587382545175260917289179077656414462157623152567195795729477669974716210983884351455848146850489977441712756828336722719226920133082176058869722016850565973218389676255352698094075057631731635347969635806591236973682882262123403091049495331390150729108987040110162668401490896583584626922731826524739706593413296758122935361299222839554148676136640863676090013184802031317909473583326480502225716719055730169553036542632632085652763159097740584665878887321110603832188555807169423443189102813082299909913596315629055154219069332646636943863317162683059318953298182144192074226492413944487519576299960703822776580188655746359927967757301098786422005028308042921560867416762442087355724316732143843480131448107158307929833015656418380040703546523729840110856943201211670273462473208872996637746713394975442649239131860350650939106821734510349895687298422287006743422460713273981155458564378937864021646185826934408664602796153510225054257746757664897405820041788702459461904127410618008591600022837976665641949543514960717128363339507683209893056493464508749218698561844826821262731299897411430772496674605527240596365349194774581147352253291266630361751809138169162613263752440135088449540016255075266868083310584280434718731038906207253895141441422271186660784135643088505238150531573429080032872251458444627943494312587222782135849543943356664712384244260490542441589348600375250073541702766766944438236410926131582016573195020176250177722085548637694937195174225934178536484513944630667351403372109487800705215359847462240284754748453476772959789718349959578665477325888347642350964520374517873879632279426422001758630269269237828574620977167986064657759184671001051581842251956540798954690242192128002889945406007737343431190948507198380065842954804105402517124392031051436679581257608776377748578853377941785815025436833605737460370305437086363863367755056944546131515374961940058391436570012783553826409730780201974487053991368784524708830901451093780273482225373741615025486390351721990598446977988326622120387202256474882050144415795834800432048111738767893734549570507929675207725950088731375179564156618067864580090587449904661303443414103314646350491167240256540274533610707559297923940447862282395719738346783037834508291975088557373110771552107088738036326277601604032298421633777898238969208571353490931836089337901681943913107674270434840760804928534670657649340376663800642017895336058165214110245552791402151284862507223128087121754273611955333214074011445611095288499314612602364832853902004773821010001917363355312216827119530045287630645387973365557104212493058983077365788096790340975566242603816637452292625811149533034170399887023586599188150194131648164504391924645460943197921145181678963862903221296183342626131931719833083762684320672387097061622814593692339836233252837430297307279459270520298316183419077382800306859945839107806815840242383687790161593293737818963277111390917572742438685622524033193971272472353904543334886685641214047751875154904647506162823961158717788704886704976064245245189369929949816555417322179197923152053529470419286455514376270403390790749452246607505346675270441837943110192844199546266412120185490490764913142100218035896495749665216083141151902392806068838273455003255943057903202689363694769379248653856779024282304272341150826710820045640393592474071334977006325199563790684029353370526359768160315734009745893733926989461441707518240920132403444450308841496889562829826788527268292045088784672926738689302010702033624170825333643579350186119560418664507643561228324175754343944556465385359685274736558800791585766188995821951466252149088334461281909243929511256358868469089292321438577255757935871772612359740736675975453465750040011759990309989816161458355236619147365977842452539189981879170601745162361647094512800767643816415476002468841887145426437170525207508609378993480761901701517646562940264061696682831833883801387792242980710979401772921284847243219068152582042324612953481171147654359680155467814734167669899029964852987894229974774161350447857404698635961246565746938517038157023737768189265886331389118663862542520628861622617166046751622306974781106928357008326162481329196755286902171009422369815500343638718195361671449534155025169939151876134528319345788711116838876968069698160212722148687635367393467327704111780809950669661197654357349006697804780685124316659387476029444750100836533170960449383038076013178200286056510516777484489130101414555181935748528373173148955457558473202105199477213205068686485291949531884684638613225592780449436691438362652095774216043262216356091786378924300647829435164382285596731227905668348938163510411103987990914437206041438524399946592869377312654520679652664378265183218222408934243813866505599526420988175905153101550042652499728457800368635280516441073065865980453866705634613008609440483015250986575422680284555163088226768817780321027380112164400974624381820635367926452385119401072559865171245313358156504054410079966976709215715304290805590646523853702468223604880569203377441859006956595691912202919968595164675286719095064697373922156887141484758513318297969457983443250606242539200919989310153150125676615014351886508105021190555697848575710109134883571462086956138841717434873878652250713530628219665282810708281538420492292851307192239630734375054896382936971921094582065368302939033005786361918785467876813692670678946615516993866828605016009944003331996637592116217323811504858962770431588017469578057486245612153707454075441308252302764936825976996921295935057559032738540560392086718666996235350008608510050504644351862165191480320421474458951952920439239293446735846246958364356096396338934777621953171389780988150545098958860860989634989717049496277528648234661870772486889963209745360191933712186766273657098882833643093271323162884947925657942760844623792886196903922707426135360302767065598266323611889169263101931685631790522235683699249266096926137712702436729747404294542188794671619042301258507780294830578716888222076840816289473176006307920873831021715945225028398900917582328193208312755048341649052468343256745527265218778494272064783130022319476677191132698692287354686228103429732338491913482415113856655413159452609270765582786383715151114327794332211107743927812490444571797946091024689062349757948182176696486937468639592218506509780051779796517130848640530013903005253992183210617802285081293322662744884712103747006864909699000929213748021181631798179592819767555115617886051425617253408858861165631641482956951511116787891793157730136462967096296834683455234545139310119700979655552654096275797241838335027636842430049231290931587125170630441807748589857842334433116419082584099182462943765769421324389285764096695383989431784670537675022546372975859290449736564172919373186681249760146251631548567897574391368557355901517771025925019897324235480786428093691018838462560463734782001918004982845621115638725906893064602079924991230828512214042309670504095746279641822881491110436714794895230135496173671558549137014499930578383965793553837474295209671539460809846695063824441938479370226327048450379826349338699841298764997865067581263983598328327966216634756138961157964004973565896588665134737589687991920523021617580182359290721774643439480381568479028720627121041544433121170773323429305443616611593127258869296219718868825841499022233024024722130674086446795703537643821930038222757517289488697523247826914412713113021737848646233819690060271936214793878861559845578805444100952494800275950378402841254223604653531730425888057718992645907689274812096280188965444718983257151687947880599029346785888347114233565050147118711974061512071916598617073000803808094806211121643292302669272519528854750747675877154881265357673831050065632924831319251272492790334119298712894971681860811111821621621449347326779328622680908010070845672837118547709984389309302302173445873582412073199617502641498838559495730765132064668565014381255784500255992803962185763159800168353107539851960539144166826022175006120440961033303235143810992919635115498627909038930838265915901723359884388424017886862971968539026180671903208030570378628111813310775782962667579881691327615681223668972190060576889921451737424320853712707345405505817411393522924167568024698573459341614216150715658191892739027309260806595941154457808207879042561042958121130176827100373107133167509313185138893491986582692525280201912483316825923018023616261798611989743024537644524359645106433714932246892161640727179144955801862451361221979863699309388351779881255009176672783066780604419439716239635930164773212652283487775537319565157100231177445962126541474176276274464315890622564093746956549648884491816304291613751736902523219302747288877554531818693303310676976067721785269814393718222573636688623586828629472670453039269480296343982632113581105000058060305284226541722490000805373332141471294593954513050497687652132796397349264810586588702846910816897078688031339726720231142815406818028463857680052865126896212009974677825414953390691216367968202708034495068552540122974522231988004185072680242314237162048706291776462847252119312499457369008594413060703193293055063725125104480135289404535313038900269016830443628247838547328847565308569768575418345347363287698186489442181168858765100940268537713478849846329008530623521708388905609038246264841911288294919099340137336831030703365648677757808244030899830074298215202578932429901307239194012217792236952132812366778050708436662384067251244114084733600151987693353381229799658511230912538285892674656347032871371549249111352955266511889991236645578976761967782292860360337364511298601635300501122916922964865077369929686999379820048503893440648522367754305626209063711126462010146478964582677868408316240391567202271326500392606847532081763255046334542664590722642118478133494220207306601418902321744234909256939094107851742229034961720799935534071692706137256925418957823598655603015220881073063141778538404473655965013366957509670435838241490283828406000142644998987941343081503117983178171322764297592200944222954547832465132495495108681976851273093087378215220175377972651912631513337598829744539787558366736903931061839158228518014898648993708684920095721997376668107536661283187654858959109848046276889198631415547645476717693220280767215392137054998811335346712951627515081470187011812495821119854516567167996752150596818970916498751612988474018266242730139474925655407634932232512108686595909699128060173797019782573002799502672894523671575677661206774504738289872103447312679544820468058938451035906507845493926583719968301248794998400100526923005476936398044336884400762647454705968544649367848869881865049344375221602949153339252625947657010861827135754547142049245893833301259384880191315158703232868929765118696033584416506926764986796000781978747919070154997579537329581166525047877700167029906419116603303923068590306075772923549244597902141005842164253811612950155458351651029354046079951987970337907521295365487954898989457521455039864392926889197315759883944532869953674612010599457060477236528104721124015033369778921068505894791293571954313118631538954402045352160845504442167513537189475541866111536623836834046914243487639822941621423557152530042639474463767095692468295708546431700682079860846794457474509865309553275725698331512155391814488639779656730178412358621075332834328814781869002015616048602625751273218283820930702520135271514152586931048004784723607554549851537532412812282339782181894320853337894073959079383681765758479313960346158453745168790724799108828226920707123756852978278163683928980645513790418291622118407417679449093363162147269334013618862600700963050771170717763422254505379544271569605266708094410708598051369699154274395832670087035892440622370237528852349072340535661391226413988887017608753568443036668946195379754543735890320841893770737199691841461520666547936632308799935640226004291641216801242017109482599791002292211506246186097478958570595291955355071329899844265687782019013225079090829517793126694134273732045051027324731430165149538304471089281593044212820262716057395239105862889991876345500448777062947820696045649291306249491051361120731096130712083563171871321520217244047447269586845536955961429842205275434018045283166742042771061904756573233145401162791264213561486141567518850554908478042570318853029056342540279688101424268880356204289503469701236350034493236455291572423319088899147987930620613763761105110088152827387903792404256308986378061193830941561185537812591477270331210974840973695152596464801967274869607084422753428143511904358258908601416587128519991825907108461782447394346741889571527808874887828220738584573775339611322117552526361509151272667887820929382281175405237907040281971092483331587935048458414970332044929832397151268839331630028770999308865035257295284823498912122312867756803889512973046298300869713118805435963913749136632315419784430075072300982320826386657735680254231398457010275007999674550950855207200118839452175040030819933892490431795626372727250963105741622487713749386391127650671629280558951601479322728407604922628209072660435408739534942466033041437562366655528428670285307673705344587853899582739660283529252319414565451397408061257158078904219186831107081724184173610546913503303736037388542894179548921390809765463923978189352343121073269228802685857397735663919717912200395504348704436859641299655692015060959398672694842202511022267699598969012694615169071324130703882228557595685747306566342425362865618261949759481840873370828646490843313587526218099541542132958094545991755525030369175634071354763747941448601120860514710181327717671499186805215777484931811810523418814746478708919919814516694439253842943629880747270039101022764675427687864544079663791140934268276762073653631859492653281251516663133891081356251245216829438495557446495368287160077996719329529458751128776777069256547668101913362962581808979975826319327766115333762941547874083425042938530130399485827649972106785113728675384046483841348900182753733487707465270587212794305067570381422206779473864428240260084290465884305096226319650746928977483189881692156302945666164648402870221925035225945220743787895608206871799237206564492827849256973645965700105169112685576355530713243405713008231822730680714356357240710897919261317321321711305298746412932990720320067363688990333994256625049132499155892111680382036449768223988954024130181113250587468759182016011994315962798373662818851904497295339334102839392579000431548850377433507415120309132322212575104692627453514769277340271821529789651098007919509067595359137166777983832654014017003819256429575053800079228594712675871281382353100522809668847828399872468213916868431324878915234208159000196836840148993836524022441356039473315800200019090752968073372611298060484740786193934494482617035493170901873310696996323420264911490644520030863627598955227514356133219328244287302421032746387454559847721925077259315921018001013224188293798961034801679285948207273206393190743803140793720685903058260859517993266286508571545199175476068117343416267310395609417168559694530878061429098905332099067564081999339824564226530936566370442529460564223812888549956458482959137273643966863298085423314248585685742945508954285928573049889999109204680905056782986379370258679304121971172091776319888871435495256462150007676558474484372511426194586068675741826973868377446754302731283751614551688104202423315831540658720686003832381270773584338971013748350718513788427680241954540139717208432684635099866966315738816192442544830629280358516757125585080395564375618253993674066883109663975960130385592647728332994050688384496014639586960850976456550716239326539991403227582912468068865861256509126773645106731072424579589427336210979290984487040068354844858432124796781183520855306410652208350958670991008018756176360083517820210647203808001698549507481640900182240001453621001996971956444959157514589190057421629142927082418555404771498051765390921617221588647264010119106367824758986512409562695407876133962328980674915209342651325530458346952452034351103026589510056913218570164424043617908113640700752357970918836985800460966336397237552827897186373790357960803292634063966597649942563882231790385529531803293555728487806101892704887234960656673245777339989740539589638624907362991301199794424426516011887254033469752401087379237835943790809089347184480775268000102495222202679892047013702268864111143455665735961052878031873378579134083082751300158250946750683508853064055444404211824174980445139502515887414870930890271084206524307431053920528369660132315038079400994733169963984225045869110738315740102900723210225249696492722477277666252451851965281348004375559974007935544605217036348236859679924454412509507770293790611174145777679331805537755335532913719836379262914314488789761866335764396402861277392275939751643148206741170450798017447788143519082606874817319306669013525549169117968640527033641645097501286035853140855215978715674139270483815922898890410325093829672466223950655184349106124504810854855240499651273572330561545340375608064341391450530229337091224852856634901102515838813511793405836896486635506914051707685985805797256105742979868425028889712182387457918828688695239239725187733296429833983078169324274479899456697604070847352104987814141602517066925133587474945334081851048832952797642305395600523166554080940239569338287263299659995708837720498959311543521548532431894487740448633758838992502593170525460735841076273069971337025987540138525010995162322996549495199668001110897250195764977005966523308217381866428623211198024958111035847975949814526602255023231641617259713025843022818864506719005895352033238103546129489987875288512394614684680115975729959773064079833860556121274829923904675569254899521668976085663973790746810443021908932875003686130274687690755911157977796716642921406873956812897509158668218375905049094114053324149814074477340671142689199329058232551185742662694544529218332668362593340172989485339464481463251024456089559211677917949285118109922581682313174943082523198240221451998996105356854191166202741211381438224083866274116620925629699631667143385759718770704499622230222561637339368528562837446562227651753462054700700019671762862275453877901069313529448650027723985623229871956694223911294009398212591036870323945695457870511573814119766014243909305019190159061158438182150263859338384223527204358267740531258515067965990441288509134876128170127064396815576491132508352775751411167391026822120379773148402302199803368930413771979909707600675006115186498902144606499595386769510362890102315435681140296557305901493833321294925719368380901109776934293074327232420775105713571104502722230913258004097601358431406709425831824118708716588039652198640958272309936264425277105580677295531607662415524933436658079749352441268248372460608174744065424311733460449978559313058593381285359903811059131885051087548185588601358749765863742299100957865497770988746392675220692954073959834778040348500243421145316130477808546683443545229545860204167339825360851427000856400093346894292591845594252796408463876435318215365219934027035073779429556863017670947520691392988051085472629651951096470092588814724284415648474500685665255648943204256524167427797023698542891429335569134225533112756268612091023153706228917920982157891089345560555013298515789945923581861700697514238683221229553788043298139358123711606825051347828896878950307072149901399704072994434793481345006425693362536008403236197789054854523338462420284009891960643132904460495294500130709197431703184383549934197944974677240143861974551236476317698718241497319448305900336687662398199870810460097764039019695105572207861494797565620385573361906155480606684524540014889646035949931450386099692291736452276636816052035567985988165500608214728960048659356498821471348773486997277633080346343915857377052690526699005792427420462897540155843522882923650608202973048637966651599742933707385164995097523725176370994731842445955865826529036072694556000002940067292571255343163941576886467947790321579229433852173411088327812759048195439400779785646606658298353281046976530748822192764563050846915681080219022296040906547327716364620552286702440400601146602250044163879054885040757797428021459497533265433180830249689303020234781564133071129122084751656523743436413174752285208207476251070041687554320074827570325057403249087056669196701594707622816688775948130820764552290804793969196357041397990229322758152548455137929668554539137724867972356173948715853928220115341461984935577682229104784869804448452529718297355480729684300862203836953877649798292616833612609309343088335930734083363999924360455531040260884221808836092525171750375936930510322560226419098012975749622812058493169022100055483355765455391530646444330055774387926126596817808539070340253333571662935996159369574853712987792136194462206436994900588814240541012147952193081429724529304436488566201980717553249649892000618101439641448434967878399883726251157985115674606734117069856427613500422262756671020306743371809441528688866563469953239404131448776739773403579640565908367670617450380599995950544210636507972185293679663365397561699589905612109547164622502724923499530276094867553706649977647281941888961408146622348449529519288102803255506238261927576697540856162310668652154732010837996399826655092629374309197963481297225285006921447218162907405129251253144180539292594154227658261512512635832903752367212625976870587437240423474413703640313508377006717899470399776734648000524234945661828184814570510304164336430446958607627502613569292513476377238868845004853061556504002699199000085000884988696873754029707633143733135321654532488252243459580813961156145957463085956914230439800282536135544714789555068908826421173460476300337435631314271087050528719890319967878730244366721467431995058437801386573832063547582640914741466767812285513843952230533113697841770877584180106128372710758704107947005570769198663403735678948187581585608479111518132820414672457100367166403845184516209025593500312038031914863170289750941673515550473096751057726595212089874521353579427038475344159402427243387250707405170208279527619058427157023348474704825339759189663563786885571745831918988896525560924707342966197997098024220182541144207883382843948195161816076114779810116210916340729931984646031163018125743065095290930601946352034282661865261888056277621777905650112546504043076676012502055591117438061106768331824023680203501590489993446670248612476928143766132731289447346114852003595518058704097777357730051030856587689702564520321112734632140216591661167342249117022572022118625593619448776974940181211404138890405623893444540612796218303984014036564266523296968419887960214185727859998605165193031318100216488814704936452439127552729667337183699785718587346584590436703416485198214521238773567250129150827522850752390426691643711703233190408140192481774887972096739795994103682842620418375337049474934169450956572692154670474694438726921442880794674553333917183787634215564713018420067556492298064981214954733738562847599532504038957131342608228614807992660694206514924314003663627264442838710702645900217047838342350321732259435542690601841018433126661029403745183645245799633651218691065281419463165449836453630265531902386381399569978735897722175547737254693034599458924747965682207750438973132672843385701442368908125377005449318321613015412273180727368281157927435009081003971916572655981899768577988927286554017702381236692359385114580243498134031425559870378406102048464919439699755611456546406134122057026412460814193106437967564035041404680434292867168692665162940409868494156710477853022219966309038358838200955261446177046666172808289331575496325970367162343512137737543812414587415697782181239868506970210708154539301947700523927481629619536994469526382402924638175761534294899460651419016999243090747437649358255617146247584334560577406874554343346105837732958139218299882731601267944822584104921007229684578908980044565685182763974757606242967432808897538860927761743351742675640622691308448270310839603660016994522822168587180542858280073442314371638682637387326879913587336196342434272832847429170743031430874459501476718128688425808790361035301301570577184362851212263334840477790158330429098003740487337471850963053747871346762112842085651896287035795400946067446385341810093627219624281203491223173630422719071087512381584361765385104397621971881429552200654619363989891778081411868657011100745149278142473689012694206683248315114382091458448820335178232616063176004035844449729523700750448823207029092195357900281118637124628694709080086025448993245900964074166045765289991177114102891675575278267010269393000127238797625536118254605275153337291028933917810663612993555405815233546022389135364689916062752379220441616872531999275182193460807661373212841384996976267479572175854320912315501366128011149853041710260005269650612965442397147258938346874695187892419247169260522735191264239678743876168034337118640675448869741397145207309968388291697590339101290873889809859270722966264153416991756135059655501436352368770059328613326047640831948464084865742001458244477270082892914431285695825073851204616460629364482322681565779427650635831409242019659086453890492526454381554826613344682990884822357289305093373002511512129344027489280182587537626217512590708091078546809388787558334500353015078938818642368840358956303455225467997834832640653504996315568539137089671388133520820904772500754733837011625248839503876045678887833546268054156031361095709511679709041101928723095837752533093269943474672548689333653931569996498742171094772084647249597824552056399319344079502927792755871384023477259959108995536763319166247535743634432963031783884681143127172753695898800681211314837458298294027065524249206635994646980055635162331759250542612042184576411929685960095947971572714179024006049599295815002588015025724261516597723015408859947083150274127381013828441110042617470502066738575335544707322207830552442565295436571443273561892323791465364594612279558009710506476779062148847965999407511802963543441361716358961282632092161118212028181301147193894335966545528559393703140329845522302700283156030993238110433184979043623403758194390780474863068379798428085654763406873695953460126609591710895921586943267347766027108444620343952261827983088548762502210590508473164336768277952265684662841014382273166527128101266707758306818582735546476027130587306302465996028214199459073124259390984182409307881978533936648405849997464623397422510130426835828117094716809385798494278611601147611038883030624589705869487904508669256969762591788553538950575106526318757666780443701208404533362186948646788610596301085260316222368426390452250479960398153150811419759357714223838461026771387826028582992566259188011069960543362701929700617342098724830174412873633234766902052018224998629973894253643551279219913681375020498521237761317434680183832511277802808461962317909856673364487681902923115025106346787196423534555458956054412278581554711157848640948867721402751343433833802495731141665408726519674012913599171757613721328134081142213829560013139424051131382486201064545366127456264750419839555809878184191524718358377855012590154475363675129483799629357801191742173495184278369634357903288425694011095574624898715427174562887566497835752159260702684297331333718801362376943173313056840903208197634211627833602637987617852719800488099269688045123201630415038526634598001300947901848263482347607474414241300366468475889299496593671270302216300444640758063890624749726184422337092690648058827770772189414052348323234716162813706242286261746328184904496030898285670351771998458720477923998903205800825525874151332539742071101181852147680281684286373875283408713125906816465508172494242467779726067055361933546221321702783410719231344429039933186121613893124569387079738211711200681925127846035567609325078715708392837601751209068859359737364428070927488874220453400139994500542506234060938289443635044188028494950242955296159329929398559478305052238620497185156854376987367901137639410086098339357818797024900582466867454762904050266967002296968927335393252924720857142403723449991119388638565295185049892031899602466779220819011736917437527682971059488440004786620397893572651597869222395124565837952119163036681419839595837225833912823725842796683613242020081370353186524243151432594233072309306392933841787345379190196913908031343669828797555055967643636962871369573597015610154272438144360214937855235862552318786142627096622484606402916011423953585251538977571797867297043648768888456786997426119655809688241808928943145734479384874669633778289701606629099414686522724999514120451004873322859581361965643157442516214034437910958572967991241781442553659455645196041188594830470338737294835663034091323197917983399955169273318011015284012656133403714991783423896210401010782919835073903739026922310222500715642579019901267155396982333816593972358241846444274978653918873301428741449325057638179565599986945614490211706746420335930749508339537431453357964673661918296205144234722248087285945553596784212334946666391924855439125066459650441340626688026874288284795808662172632988857027738279183815280068057155657049890464458476270409188385527211025848825403830176973740317310398186690950121810141655798126367268055434600182845182708416035782148749433680351435730387126031332274732490036202489311554651553816795965431209094025795618524256726198527480752480168714794025561447602276164371556822381801878232391107145066556751067516608445541962836680916288118005093058202456385150569579500552014359566499792367846715638631299985475038706702344533178313036001229017152938014852963215325989831093081613193035705934680070008701354544327658149045964977149129089174762426372241095570938539934642443643566247591028190702121894862556028921436155469683786450087412928587400922563808051767797412275729793455961308961434204665153393817754095191578773607313338441819870774985605174372678635960361518608030052220410661374772333714353616933762699181853618235294586292911864692078906748281499753780556707015562770620414705319799827391982714773540431013867450272497550464536007443474363792100497719218741354507557914006111287597214632291908668520120626728191093389961304028311248777167512655366382674315727447608829617931304998847147494746262716258732787161970623200629967399796308713403692576602819127078130358152251267325438660787643762679191509928716466899722446164687387465028253997003082205223262151404340965524223816584078140384982950129089942185421850666053502475381834533632550151344492287091842286799432295861175230256429257514904678984812994288456204493009215202487322763835159278256409018750052281142669607263202407440312540645420399304407825776675815837279082898179450835958767718089080063123099761695088361817884529486046822851326583625204901826545199476434724928523775198129631576434926775258197923818933471406900136215168952764283153444630430470242717970639081579189208424286127445425326083412618206196005414199707442021738504502421379514675864980420432184532304362663933164338960684314534825748998330653608534803845635719209935435856320668730100875005825910274734565174491727182038491081710978339624759216206535151605183197197665456472588551320923253200166059864181495884656214092586930362872196411323554934320136951939382835243849801734489804244764777999619196453917622824966970083780994457992836659916230076472158981531533165080421131117475465799818793548678433953505991455570712876947650299894809315703319951070585431214820941066093324657327574525688032219725649699081732512288050651829688010381526621917596613765456851514842818157175697905446111452566869152707885438942387618210117518789196338533233445642699463753004418615669583900956595560646721791527999760363288344848136532886547987887847312364875158701698935573294990648100258442125620068375368185601802503856711688302790886102594687598438955162660331102496644243418105889494441644239309813258353651312424490306078822869390405461218371751280226413731766119126136442843633272385649874813501373358701550804341169602240332729995500359489246966446084116794224524164208658596550918324284104513257940472626359998100276124167622079722692589021940870744688186280174042657714317254076937067627391490856153269623120367833837516885138606503155670825666310788292687077795487105351360290456793319729523721384671304708770895884065936706451152345127133309863658356714018756235426852123726407792877978359255446434468251717630367687983955032924001117250704965981664585749913307418727084100946030422513276245526858685819360611679250434962352208090154100298138898701985444054372474911183115465514264394456789646834068774708220349899877025860786897270335443034685261917801150710499073316339662916960326948615343342939685452171251290652053014244487784760538721230821729073203666697545095114007827212134935474812548804882058927322166917331987166988692723760999744981704477991451826089294526231650925495106423357630419066528175870695249960692038542275970597257486355880145238578099444894814890436032904420980157287879924282122672463758941528561027378628994879124341550280952904920921897714206617500783472143440465914398108869728658114740341313552041039991391027466873477642819441944270759581682282542514547509634950562251125301969275547980248213080950162407366855016306577286731081162186479266208230263883131397974402548576519403387246348277870178949779759339871676040332708601736289953053807279969396075885571592552507420063167588563419448524995305918298475287366785383961775597239469076624377548123156442399914940551701262438856557232508789033535819593882980622378821343400237375040587825206918322885259948242878808451001496766471047015742159530573821211408047265066176929774419162999569914091242228328733298466972197877007352116303635883864914645504999469912279992925723654288939310915906155319906253021688486108506091604445730766401066998935926839845053494773380342067964433544130558182696055218352783529797312446093595979000762260516813563317543520500654942757661323336474935760507770955634796907764547582807930993965727106450395355186245144639846952349080405927143663955751714983159253110179181390344782875180886732136468010288512945050003381019189294251877398495981933841947773722303106259689998251836799808057085836684435105219593578378527906096317092212030189939468935519680638198478442265175759449132953548666104764838703293548799661541784521155383227915728985053551114038855721198050510979875766755999520796517983921240668317090028561091477615921158945529765253670778535843637191240070698578623311110943125510695896870091735027830824898619082659182162028904920403273895505575447081670209118165628780020624512161494138852063138484490637703338380343432411466961533226058212671104832917417270474333752729774776394844204019934691845555575606532988629837477629113249154532771105041263235102816770204484934283579003704277343429298667955487181552634987386899572702923761494869428339605952881058961035985520355046889520701884959398260648950164690163170739924857160698674583404489470661505095188071883146995834847795847196903113879771183977900369655842175969897772221316467484750097092597514956887219198621407983797276537175992752173122649122363410814608567073104288684512516622997650084773481909392653904235799860716038570597494154065358638119204777316679831272784610457167307550334153848418883866866857326547526075902780938786550068826838069420670221910441226031402754694818965852578527309542158540981970393872415519621039659497774432953302367964487042302325523942336844912349528309788526960518613893944329080183565773316657817749631169252443936892985641762316882832554917898094823908366186368723659614180479185979721508770860101626941331520491472571396422803382965206932301644231132728825878851974243541343902591438041159791830416696813686256435742351661743711391738783945194554832598687302081312577354055691806069246653712112735291003178099991387249454547015692262550517045354317813604536988095644787450438020938094938268587903630311748710625526088472045696933129207052420000448836939158619374167434979227215133533091541796515770411476859138105615951938237239969480619104056525280565803534622488189487107828975121504106974526904130550797076662949340698811998922612887504628707302595867267906845253315726022113148767884548849134587469098040201695664234237716877837515704274586695250602491114190687144721322212803430125424612951159204864201906437203701759022603817588724483834732439461993863194255212490630817893434977948944339065918377127101094600761685490941913819117606935144473479189327324701234591100519385052283227093680229400010539359221810352135300560258694130515758862253856919652683549673023563546845682427022730456203069116944642741188222073294669597812888645793809248529952911554722077729957073558316638446901440566580925627921742009298271712301487324989171572598086841184494855478771970035178026834990560046814805665191415469214654167542518004160775453579365174502160591265958190420809026221674466017756033095041517296520596369415916065591376398217021757331039858111886860489976639461735728005629910658998863297094017564154584740513637306719946605041550195023626737256524145778363336874522960753654840531166668974959556785515204818493457761326711651722373744468131457184455323415310240434668071563759874057103677466775380423298296975801786303171705386269206611750233523660046421918877417093518858840760784029327157008478542709600288428334402266709145684057100339743807615481177346198969365506702305247425123804640396696421034481400175261080377931214622628954978058943052979156420919768622562045358181170978177539438888535748870860314177757972382431768539680819313813258055057416769689201512698987514157869278483205399488071446686774752634486063990365905675645267375277198199445762700183910852817573836783068588660056036061496114873526574007413048306693983339566758977170215596004090545021064774025298428258285277325873867386119463842417582295744725787592108065884680117376727700289358733871603805903750931130165062760657363640011964471800613828729924513065575224285540736733551347686029072900004251756799561394081245366833152921499458558569742889951210572066159454650752005417413422512890546527652327407490530026318620645817576049104950620360180662301855243881664900306797343306222077184996659989837258387328190093444661647319919706774832929907419965579152924328663011289949614727860006137796439152985482548626133425832790420890530023000284312497080133908306287196058801048663876287324222633777509444834929392749668818024116778182755139794383082788318362576495176125304707481425994494010279605995137609201931210571574610727398678373688461631697441198406476967522320361973230123761791324304673385871940452455904695018157719385695544591812705930762253957744474629155249338475143640230324735927325549389036677308562325622377229021937230851273782623143106834375311001622296138722374197072203173707719874034479767527513468513541172914315629221146183444145234675622981081808010525141666253813073736387317418941717658880079898151012052147920735768423928465009846239858369716648110411176553449425165432646195470368755867497168800341093865044874053211838895289895159705190777531690315544126868605629803045393916472333131736480997336067375003011446554364063840367898022888971321362440850086670916089631778864105627416254962331053701717650580608602387682236201546236814342202826094882088880921300455483487508202698600205528483927246157493151322392624894964052534058490061538862259817456937376559049185900965110678218087468965195452905606887270391009300041973312555125246500145510063822347079269847637543133988282523399972471353297035883304764978665042935658027882547905229463807715854245341745501331920479872928795325288304182522329791207377830705493678879735358776498317431057872045907298611879934854923598679622844890241546253731217419255595888725775754397895890528487394750004938897303797595176374150874119811732177354457768819075526636075111240123579724549647714606910882951353346156655944862097894047518406738897495336627223811084203441724732155123941280435680774848653139992274230448989326517435456993941597832992159567768575955880463706053163098610524276716167906612736953377132290118886529388692348148656869763604085492869038650401927703679333003651125421165290297063594114469196795079422439473326945041809039085116447720480740402379143028376571531258648309270278482703137345713328790009614763053260131865107537759021699840706241165610322600791049510026399917876374056322980642337611316090307123409733451884279998675978720119971038026963212895186243932264240083410860491182656317163477361899636556250814376665320195018115384003456750795949742626842501427938842915780455554555419012259886825348939304448040904436468572684479499431000287104424201960898274147947698722922928347876148874136932964614810602489484535365628712928939916206037629548283085588223536081563438671292879170060279351894682297454921143687113653234866458537895763353599389239142213086174927471833661984492439341810871016375258493417363186414178504006943711236786528010890995242286008528075502969865727693560334341276371679995818768168682808808514387931077967632248356194922753418660807371608389757216223669675228585023202505741074273906680751832124490413553438319501315480901704086045599452574034523764577736004523867102674765801973354038160108892994454811190899108207314412775874968206869734086378937907564734223353850781639366750860862584319916586672572647253296762459111519081635370915628730822933191846502987690825415296659054010720658294963362271028637152795096694913415914184826068933523755443328619265836072489017571019999684775953121084754982300323609777896533637108168753680845076467570112956226453328120434903897986739308710396008759451583041238441103750871715121762156200515483536292151714011092705741058640265535816187454909187923307543276885516488965843526498725806135305507651504299716332081934843156766282825965943601157590877516242687016669246554058574306823626691349140248535816755616655189278727000337061402570669377695321028451046897292873584742201720756285839692277928713992762557745028974935838957982873358846963747849083362987746267641656119271411879196536382093025014641896794306949986460996766474340114026178989710734445363540695120807280471053928761298163763471461116108694593069515581443107222492168775791542518770030241480450146610577921527715764155037695362384803197624287525589063628100256982160142396480851487502820447329743889639722212998807647386397152399590511596949150014932015655776223152839102135913108816261538065355350673992737126264187185451317697338593769509804852590135152816720119106401729819656885944082262082328908093473452134803018190436103348159910967123433009214675345955171755781817115493836388416105233771754843964038281320223064740048250802873864478454598198759266076670766188582182899673255445997992254745604570689992206620629159435398745071928855534133800498773486699144255346383458726480301399030672817812327423797524001119308709680545867860723868707741777464042944261922325833687551999839625065811014631241244336726779533034734630842536047344248006611801431598976315388581836910206806730262110630045875022872718763573687458158901298384162254936609803165431213805125440064270525598674075579587033417883360127291658956214007515125470232440072190084895087841184797389203134488075016578619584726176575419199191988740100351749309034002347192692965875572197430965887187854680246334566972560593136793853711009616071733539829643094582953272678615191630644672621572947300734054441193172071295488654660636745459391030781598346775453800394123591722010701254307259760430878266626887264504045780080630432626285501992874808872745252070878495950571901896460915578741786176006802005341029821953979681319158807960429047959445801697532492599740387615361754096300902388809205733422019333334709293567165566361726703125647667322007807157407937541311370695865843728770482663375966645974825129729831614952379512404978727495014718159787875036830499489690869273743121951032150220767954596655707327024704070164280253619780436572946351695179900233713599091378775098469476381188606529904343361300611030502972869125929663861415957629034844057884485793296586617437551913850017248110276632095472510308067301639842918541856059945195875049713386255515113723416971927470399988329499809101531635246191593492320946764528152454977551966988160274279128257817689892600304999101629364546383024456393432387280671715481955837985983972523412405563323887548292777974402293097862512732584213466536779411761211787851297098502232773839968648766262796721449685195886646038660172065921361030599434486429692865563983023421727636338640448494391104348458884777315442253904893635255159622986001579052384776397657207246705333521627919434678183836209955962019337798962775606523791215706262214136367711174918534080825968616058179957880593083726006748345151965784219438930002490462627530706827758631678089056410602352698579902164809245994403815653188522819417924897166677762921212789577923578620170497852147170809311855695774257466287140001206713495018672422571195692769575569415614405254960425750062353613988219740419417943359830523493276269242290332811863410931447298598767500054298135883246433877375340987201061569000342330350540114134503361987430914972262221226714965246499960085872577002153727796219794952189152579992182641720382617652715552217675181842334604655258772113839668158320885586910096752923943855115119779971173333228430457168850990080227474292950969218882254275211863093628708815940247943736006531239124345302879844708132155308114230065113798570131061343728613131587205354902094725941149768943691387919116347498012881863084684815485385526210548737841173394580287997387340543616493607546125389761507290207826862997693569372998901372866807241454292038036870715622269428455376018234761559523036902932179636137643389439108431795203856588704982157303017476673262083416943153048254229297719104568790985395663323804815302569096175174105918684515849860828252830805095624965539757508474477861764136935751984433082976907356527529933411657603060217571391969218598991697654057097106501493104802942568113005225213903816708199387894462517677570632838435039682182775296308139339921759614759589064195345369379928066896735711587127892288890041130553526566030064407284211388409910961587634388698335145524170000249752199647019308341571091691562250952875646271286954267416647638529982922802024354932698934493770816233013712429720249457325888223696379835882184802909947094617295426564114676267558547541455661144024707111245926935293293923827198095870475941263516428147681077935673311804966033299505765077166165505331315029510191477873389928166617144046070689058933635455197697670303032799435836483843773471598522300800080962979780638876712912226324776825757941922982099723335419581332602931667900058162353825979288762926281127017570257008636172944871524067428405420673875486951283665835936226013171463542977714883760791906950469028465739453293377608366778595684158046631045687496464513014735404873831734699828609284925997340000248524569217506265209665128453295235878034068276317561620699129949624683704260223003392673358801855242850397153932997572394910744777931424095864950737622070634872807390583836526172580232111419831966098237324997565210702625875307646659418299820146508831625051126875981057233465945594175503333001536030084720454277649763605777311308761518806711356028663605231024551179952409335200479588699953521450746125051174299526445873884100068950812280878652364997386496128989497951754445952822518400493500833898979547533906136380433436368933716574574069536066572420018747293664889749565290951928642548279306018428032521671256660201490447399428258508579957213636647801628864118850562846951381220250971305692931016533319133056649025853188677750291527889026449176847649126359360464606505643694791079105563939224993348552243900517511843324802018609737139877271408966244454342660410812018669521938804878366700999427515297594295816625722973671986156470947417837484022047981635257230339220269951926254374485603316829396937794035312085719104102587837047397275997461092554095263703218332402487085597827095340792334304542117763224951011694786250095174058460739372354857106746357551005383552273025431961208188315443526560728052950945813805818534691182040921746439460711148605454937663819899355114570119759955868646365832049789570131857228389792761282964349683279944548485229158778591176073247663214372167717103935601941621252801222385646557202549537994698166365046502872317514727390942108268980458214015533684583870235781656491517219817657786553186389596977596266974933837979937576710670862719399333634484868499793232318942620634240213676483833009349018672229121064468447811441894192276235372501320480887873868680028200131359250088874195606113607308964286191265230479458840524793553754642697596039015469372153826262285617959672477134156653350948073631046315832321202981117846669262150546668031721175219026312037666722929629212754099987472863314939490030709587961442372038271483068209955281407902919237998614825710661386686534437102976080873721113796669287327518637318291046727879604252364994529164577979700135010851295909328610938333541855732591709998894018188446603082358720723975492148689864475943087815126589189681018281780968652885774419253692784954042578009729534667974695924617495028413852967491562748670214754810859210564123907610810335607851061865909066497879913951097683440666110343742790662450310050753002968087128758711208843398873443399043449278802365959883650368548195326894693627516739959354391296484487983460581808768164875539737414818663676919954824651029116974600274461466905709828867544604809061662099536864254539183579300498655469772911022660012755601094834067987633540698137564348194693966614575798181809910969139585065944038668137838750747943747469415204999044671271917382716056203830602134702081607482591212017940949259319241153723337560455057930427707885865458939027840959546709293287850547050511149361687276941555838720714025866839176677413920746791728818209053131617925131243872872431839401888524734135062988213791393260925963749549275717664571518127402799969210277961881541849207158912464358415862314249444195456628140288466358484165233712942462307872492183546834143499299508575634558485972452920459640656213977569614665441096300178049360455030941418188542962727142012489524514261213008271841370749600526870269852250142934777405984013079641621801798384611267741863058266914165168654862631428229279717034421301582716772613478678274184176420019617395070908254642142251118995535057928195367682187708895365215244822479743853732382998090814283853282920502998597310374228812693120629649961176008240511724345501463735842550306445348031245130875251866687968665509064291471154318824973989158184566568029052442756429602341540725859946204023726872298080371923821965196222175406386597279225553478274188834260529981446912924079255140974828261057010111396204151251645141188749032346022098693718448117802623634491840728742792600188882943543981767950309699325620319701589104980461051357865945075479486075602678801362997485113926679579099899014664790786208165764723814887747664908979883937713827544669214122248518262731575462959875573788602876696479476638102606430936807431994105342394986302262061830999252353890825943631231927926014439774292060117871180429645084917846742242842016426114488484459549487793565970772200687891006760484800093178883669248335011587313567584579483031279058583833387917594106184357848889322908845184625846615854313493063599880983090347043597119409554699173285047286048103488452294862220055566049978155330578320995782466501309663473670739385549088858945618581680734885118675442828580252765787361452340483516822281701547137777552787035752731404921757095733166433501730678794557273413472342010648420693418368342184138464812914944251025412384081624454629400585232647164363407231542999674502958430937327855038698037096421292256946478912150694519814322707428694915540329507092837716111156019272676541308147965117665075615741824600844416159505824543121587052024134540019701198997536592935826427102428738460710825466583810307321858165581575292594694405331318555920657325911953134639560843514512970476611682150914032081689315702003024145767343979528432538326525403671682757152277477691648458320615679992806089084382945846019294703756269853031745422142735122803047668347669095021869319500073569360184948720690795629292829174241280873646380095357933704637609740559677433348950968952285001022084362492902220263234607830429066806554021447471625674687889499862262225778586798448645930183899120032464247364054260555498456055520437833565139395260293243690159849856068723808519801141073741870650110573981360662826622763861359501976022844418853142633170615166191111013279203489490500950632837046972014072049110584301919983626696364422562449430558990264306795758376231323573779091070452046764193336796870246097781045172921627737719638384704306339916893833169694965647218754981910194858473057139027467921850473240539443425203202274821024994924897684343823148388350797426768535013333331865527195633607371048399440443038284289849127835206124286404518199619308447916450273869839925374849199751076293646163072111901345730097790197899429918717738910091893081064856909533614563973872139019155515248105623474983326824273002851592581108226392085912634781151900133407033656549507457348420927906689546495874094879050060405098620382456267932318655446195528381601889405129171793681848367891622108789832487036083587030129424492135081994291952505340622463429538333693532242434829790545437602625982992606064220375373289478798281611616691251641055559576986335713052396952366725894081577729497121573870100750510456879823435088380288326057309417530978019000326158943328251571533844350706025136381485429352673160889843615692309418631448916418567517518442091931940856046040032894594292209337023693019875040973605530226391331297586346455488155576623188296401670733627272468089861349232149036231206405018123471140497988981718570953306559653252756683090977233998677812311464790803456835936861751814131411115906294630854138163606121018240128132394073228160321820144431135126367923227479821723965353300431835677729904799948937221158240225684188023065364966847002464951800860259793821627243005709506360225426800418994229239585484034562935028250713838184417947033371630676309612228203033898371041793525071851270776669386332653527597346788133351411806785246522138418208909954047138918616900563879670902335952266715474165957347168998226908770707134570447585749686992711838903182328705082873833740304085923399572406844506458283823590574793876616162237277124556115527850137917713920400445027969817917369102184444191466930959894006004052689573697506011296590633779995918517189704790794738080722579076662468489478294366157300492253531735938184105730724572752104305213285466235949617116554563252696878622267165006013680992289162008306208712091524195249547759391716354926726227274120938024613513135099621813299483084216638533369043165879297227362118848579491599020600571294968795794932841327286566518520882345014266136853371991621368400195650442448301869776918436958090356419544327051717669824563450617819051349947738430454147444710601250138367536514013110316937450527402129180442940868389120583489244631501579756289844242755801842633249939302461886759345476814924739936691900113439855033113178296042138376882767469848127195836342567394927148375008225010450620377699388007814422926263909270921913052629452502946202868969949432015655571119639032058404583699381904504334079881479864117007416663365092797470913178971308690429253302069307426503640973820958933379411048564575540868149324570538348564358840989169188152476319814419243480813340998955423072674821385541071566527924673137015892267174779924901312820440164131291245399659690064222270562587108573412061715237749214809791415086058979824438319427290103903866814768466148053540252791316779071836120541944574264659726282953223764400773737672916981107078748772833991252905850715617828063633204103036266107331811325273492478121158720107851640107525228524223468725285553066483027665977855554801605925944977626987292710620588581695335492755108544451330015231735354982874114927557568735616146996261942400375702536653179028925924537497213686767031203906141573427748709307031127311885881722910020464116916461425479660938904236936460011304048831617709560830278176134569776870658878707400868802951722426729118867195034281791836566305851960210812510407664039531150250476011925889376584097386463939645949493898940999855921592370048459766455635608672346187568924776908439330906987436038643226442503859358887208710055394659339656268458530053466604259049094565660386815262098596126807352247894330120538651317136386311367293975298387624117451235181351916546077460750862478536411304776130426755244339269467944359281137998032343902260408095012708551559240088164169985986724799791432670638682015954320402414513274197172081511163807714357006508416106517938184184700195680899221112604843183592906452258353465912118397137344136686446326865228529587744298484325322778144220518505343301532640507043602724999672700415044455161630091308050772498663407670041792257053700627371882086279665079325035041188397388819920581669749975667542715412199807239891019322164025558554024990874771947278062519849771023456586648907067392333532862021884448137409844843763577108660187013126125650793183654024360554250631244840940113656583988616315175666263789939268030497710501831945372184442348941826405306399743806741953034955692623989954475169156771010208326524609697508582736807701063830233920171446350629540041286867067483170636678096874311154191862687297269676133397200128420162228230489021144918080303808205710421733838422260141595278194068958819806678846734121165454410266325504616695890934890331512751182086392095847461074766748187101196913297686656556050345714811507691435852791537300148429397727553646849390004710499842872482597911088810978710158013735130996757719117644596976838493367384716587893717969685109330721441366599215379119970513575718340030465082028759018555956970692979628749040257395823427002997074606715505699419450071197526692773552882659076438450892957609099535875686367330921886768447301306001831596804890810301873949919045463478977823035584051503609468856412067292738159072345595780245431687514077508726899891432571923120329906360739853458167667863783605330657869827265212453852968110472667100146662962898200460477482789395240994508094292630091621315339562681671928692111706964553010158413431409008574077966535483067007906939391454230359038729551195494725714105778494278256374925084988153697746325788392209362334306078637803072312942790779286537036612145121221575601404669777302769646496319932033774344667011738237257388322873905102189174557364462935893968382029440139087260985220881084348527506550069143292686781960158535410074847002731371459208298541272086294477214084969557048033900039757863226672138397433017331099992464647444893008025039670343965024618411365842222662885576276544292532041925327536824685502516735882868131787656829982478142834098105332122216561153813695277360462751700448992367531021152388430427448666428755551487662624668394208924375635886840688093563547886618246099718715038043697166745450636912742545351723466964058337629559355565220132893327713989226245151364522215774599122485519938162164571216974962204458108107374786344437633724522792129905014043921680306546352251973333348877278852044335141998917968267175100867322960375598546108603877063137068790796810925671769731668708222908469724169740589012258148059071054457953224604375602398837599156565365023623290752596963963585767787492575586821796168996561562212327174603627930290625215944318640922768436391863390477939646809640382810303542307361117959856008625844999763915868006212160687806362560189330368662629853485948468826761322478216074335408020824156714877035886289291657138354748266780503922922543867339660814699211283034092490658436096272125939933030595115347612890063192616685860585420566863515301712771295880217908422167030501558083328797480562967509042188151814868588504136245179906605765923786938528117649688272794070221032567610152372881387950117246601770360844338204269809873106358986506113667681511315080452730251062964724584767238799634970240306866798528356831925886653614322503365613096860170217461020669825809389899361444474379514072250285314693159899635978331115812931935941951009201738755375923768946689250455228739065664325850249859412033646384324885596951355199818236296091722235337650207712277354898601165173875968195854370930386500825444119264564141258170549855202633392571998519480147523971483048147125002558232395406929996967882117618399429552956574146808980001051390693741460688881220200479254729626695409520505240284250680001295566932503580182202473957495359198874025576362248863978282418526331647591086491770682788269250425813054465189184075710195077754599033160888971875055633726306061777500159750735625523332676083572311553665166756488937873741842939697775670390050493052616708792875909530756402308112861532775882257922655248822400907891544608991888825679960957069488873722022832253095208779548209917103774704171820553428793501433367707991393701707402967026254678642686559406960083911537909594531017418723422480077775617055235738798402819099618919196589629074971967428777801420981076192072141506618151473567212383636789631309528567958118295878464505826763237955228453440522947398600120830079967096811741334218530978584579123117860714396541732796634769183951512062835070536322555638445243754812083759751891001032231860124854025051149247855358170586687147611759326214160753247829475752016515801831066260356223994823095734446128696795125400659901308132012393457179257223495939383566966340624849809818908157057990328357153890598102015876851414235076774588193672317155624133764865668137322539961047056305740445766311718632167761966607547718445232202037644427527212446019905241502844459819223628433721899331678588393462879784669347278757440152089336076675171407593632551611513646532760187993206248832730221706042775336345809938665205005174326256320382743567255768627032100146915434892659866480303607371416956614938127400997378831219687370593881118374218642318050490424141270211593580837664593622124329348106498300692577925808727402564932623666031863436482527481678234579046420273695873314013790609135605403924497643904718273821723137393554306638925792583979592476624571340132972401151726164056975159059858077551471303590068447461647294587662467701899041828378721461536132264340452322390661690931333290056407583059517831829127042729322348423995333366352184103907721086131766864424623028087159002238899160311651480219964946379332666321769502502556986774595829439526962833887782952738327679497159699609219324260501589065916480753050770459191924122121861863025359582149714257486755942035839324137708631396997242854221025789348488476994087984900476957204905239876418895680335801356460218717381165396826879321600543313761981181052342011141396701224301978896927021141408378057488536880029214966059728377052363302032080588598786788730563959445779407423192124127803865551128972209091302808678809182592075597251052307662746436657102904442837731497934381417990558141923159716924804879395265752811132545386225260894006502709311146686668751673281815332543760454301626295182971314359117763114272445248777794233276117442029877823422330892249411373768473967354917338809676015747727269105865816740315591349289413138887317204048957778940587965686435315647081456283205935667072837759485911221863058592265025802332132733473696952841575998357267113712487051605861487268819198544847640376312539178409649396233363197126753048251308587827254856236867894404549024094820851398494723796554059587138135731488197250759881034414918715018242650743352453303500299599242918787318427022364069698395996854265488433580362119397907644303035915609054125042954051010736219711038173018895977549240802573292543056651944109220874931423187329191717576930435191622698607595915869229292140630189568446488612976165972404394255182193144926700058710599254357649784818293117148556925594449220053538714197816907306601163307629558659472418321618583967010264861955074912255191543495199251863412075482701168744245154525230107366129517645245518571127164082090046961585799677424206756621550050511061934732067107605958203341356995378652311553671212765287348576757761822005884125778584503005183814458539922984745918311671972441858552101668153232058847540608061840290179614621407667954710366438931562375785863330234261817266201692673709278833682939223498052890561302228154183209635340865506933495121080394581337730023926970760136281793543334367230232587774794585196898292921743167878421467567780507217314571388187131044006887324123965972421347344716773159950596752246937221069143084657463105486765381332004292855479717001371255470805060240667644556995025594277192004814625132388629093374305418356812722512294741231486316749060856328781407554913006113677324731251502814236619190644880119115572745716828388584756457649412020922245746790268400017548096019520091757501869760001424946028277041643490385259360436884173137732653853311258159801090956488106907259432785092183754273558010867174024042412788166535708467757660271245103804031342360250728368768624290609552980483056549493637760282976515850685195389151325174331168679327843026873574683716608597036208787538864049243305593999634893439839107970089829207233693751175910102984321983993091733143305635125724436740078574416926770211807575474473803187873579242687092913593124474026058327425686139063168405108849075228296579263574963708891147852749827437358021819499563014385854477563099793888442491559645417437318357272136831709119672633590680366801054899461036661693925097111578640864890316940607993229904660377981875714859396551299862890598910179965592939311133111337032745535059847165840354405701962690055841390550844471807417322390048193523164139316045087392932613798885415737824172979365034600334835396444138967037736671399096774377554154516205949945199304582334312837232665908678887863710958511796069348720282375844053626776001437730527762124988825910144460077709866405606545571560993642175245315083538974040657278388919006387211115166906600280043307270824408692414541386796342265480168488949928621893224411745418052336705733934802179291629942430947497075416000351659502441257646768255932299932072692412254822939682616673326408491792847405599397589348149050170618319023554105819775179717242759116554443961444724606349708928890855659141563242530931645024837456367417549755999376460177958775393093734496806911918759294349268637195181341693947953643085728273276236742838417692897475567561608884770013527188391443979395686141994401949608943600330837417635819699225531334628721619342309339037518370268791747051727584406584907546184098601713481638312767832526970550626095972033607289064481693220990324188061765802221819667433809985508706314578947236178265854692413846150109065411262700002706348823509785926802705537683718242365549556804790870370687094083258316012509389279794806427044373642541251011193768081837214814234643092108090098003728436325401448478528316488814737281906831838589317533786366581935373370826768632183088190673420513688091452375477059453040117228882610917157897736971493855597112938843305586999396437940363078654315064607849062565789883630106768552976080750396865754733571717112341272787210640780474655028045281054044845813274945090782757454652013010694227544233018591936406263212757901582006629342452311304137858224472409066527174922273249317228413956957734865798897823645871854693307283528190095115876749124605451253071861846795600812355048839352883313814668666731572999321830921683455934655194979128056996312042451928455053820693161904999887597595737017873767872145394647270784658191010850525189631861456503758338340673489031010832390901476566290038246872169102252057194445398100756261672719885858251332723549541097154238808541854204533916670276147835308437098829544872452314324945449488665136897996180154822126275096931944748436628344844117066768429230468343730290955760682002295258783019340162138042401109786430361246326287265058213792688746308122099017789362907350487364726535045980186289782846693450739628073181909929342786264626655971010048424453336867111920889390036630919337822345133121484563188276828011375378735936951403496031748719226305202933049682086329477156172617326415474000399055607318813883038773595950574684881383619015879187120784975662773489783024790523844137519366261950656468771909035067555143982010274960078335086128151394901110343479429318557877359661631603188111298441778659343000419607817538627398509848359339296286115047081103814224291098384464931960676285899333519163375336065166662373701615496331951931418113657076753436631366389990310265469651262281091158533523362201126811591764332285829676617838672940046541739582017228371358258412084004657358799215855104308647208607630361773553610403379888232506658096102389055505533334549698529013323809081994693191801564304763676752649204241309225731619325360712394669205178379407135267896197779858652192483686908437324398708279978811422774061164946858248504448352644944082168009559073305116374922931626236361775637591327582207727390077420214847283103338584649934590933918670577181498759712844407386796355815825971173130535265892033531159319956470448800628473397653805445904023059467714503036703262621902204108893996354104614303909740935922237035288320302493478142875255900513559219817013107834348437117857878857390542085008842604342015949133536996804326370159215340901161507046339300842952821115467940437138053455293014671249964112995574725757187114018912336219495343775457993326622460457245151788562675132390270036581310858406246911555407490927870938018990145297840009639211179722579575936020245074457246739873305458940415959196055282844995143459816582841474047903218343922001413209086437983928953149448350922314952789287182845205440233426253775706810772466991321958643639585528806871023917254747145605871439877716685724781991337337972610799276825815527577669222030081694731186732061759907925726165439106145029846967952605665063764843809851157307674456481231724427701275323234255085860595954561176541492313501498981574301384867396932524611341681019048814256094632467741938679733157390530335776644165721120107871584262952508175929025664755178536748482434307527569194734923167733450356000557387833726829106381842279733435122810706997444423064007472879189259821916445057724778974206016140400168951047940423015172189166488833712766864174114142932344822941584136218186210536184226200023827685399257926003435371213587455105490528764524570903849030253635303288277838132744902516189821647615203515531723631797786114819142377339142028372168021720152841292202116306601551931183308816719085659799417713050009610551372008222311832162385795235507842632800927076897234253362352644380649572786960486022444783219043978359257135562843948968768134091813674611789144948956435912294661786088641096460278539960274379583940819190892800364908912100427110904260259482295369338626214885764495909164128073597985782243175524892786258677951155983691989876935256221438643822704371585906101047394451299962391670340077118537171911028420244181816514132059813059314163870417909761269907401438147358091460079049713276722232048870125621315942961698813394290220177039306923964119523132304468155671648279722961554956435792176497617566632213925694497847263245009377771021383357801727145603786287566334259200497975447575001083177579947432587351921545949309759482296299036728912784437100643876063274666406518316808337003021013506611864688729045095354014338960252611673731907985515934700858716878951470450762004978042929545951033788635624940100206389325048918267911392811742695008659337543756442286758462507507453057663773151125479868697923491574184860920474356554861262552784414817378431896129456094514205509345741373778446174280875135185747772325287222369064358411578189208677746131443266698921367533631767340897262308551846774734486418052004169234785100420050232461121821073728562176637362947792015851029536140753988025988782604102010914078319928801640539203807639104145660252354195615623401478465944097400679778280884677638142140941934730029846948580701998201159100638226163092353268919465436589074516368268735996969516211632621524872751110991008809360142712017170512959147907381874255688754985793130972357129363831251386679394067793415294917833929874035739455346568640210603948069361067174774339615936635262582320872457939901278380368181252899959316732195113873930573853277833178879135967001647190307440819578858225069137473852617381311826423501400938684039758621506160780501715883113684700858230014535722672607673781678368923217681999543598610396197212477397442219251998062016226431014593425485353514086773699287487708741496720812163991006060465588928201606828067738197153375286912316553998735875350249788860405874416578440012057653238717313520220115236537124308557192292413539735710010878504828574070807804065021479761447661854272059315709584208900119699638667452178904814926229496692353880111484290918588613152632301852113395933636039212664321665394485288756625212627574147004892719026786233383699053588737363036370387689176125769591182075692381563822012077341816956555484566415915684356835121602049112310239782846387651092857073700888297982088782388367290917267738208571707740799909425482274971276367357344444716799943700266592736024060078998028488496241826738872231580015726764427953669588298253819785975460421566059862134733982521847654980965168498428532224968742110971815856422594498226608531334610368311580376249448140707121969893814899321861734345375567494358520831433215063594247185880922185816448037953922050635956811067925021287229230757067221723897023396104509800552512944542823421608088398990354163799965986773736456158014906969168921518046302332939993072585650542318920309719667011600566677785799344899918047470806830822326753605387169133013976009257246049056185024795197236093174540333036163738725412500783793062889203281397208087220638481118558940795144683294593730153502038273827329165838351928244288040417100469737138559449608765987806328090243633736556359481606360599406343312074649565941097660082966420574011139169312937938808978263367864321782071263885980823157342338509515935702430372856414897789998406874342818762418859390171391898515622936959209667184126292199203219168747447181741529097941027696174009380829163769530978662475295711744111168935678664311442549174757300552530140144717515249419747877287498216646782319252441076504879105112566271016185566849182246419492357391093336867404370853833632067566451739525019569529591210230742303232241425025571162094846748073883424737978215219531186238984941843382510091390249487159304867089673637292248275922892348709516688093118311358927433195121820866139631069969490198373421549405253836235463245766910165687978085463787909053628706303013429561121437642656679932717673424866458315738632953335045970820905038769609801762241756213836327623689500393051130715248034177599989539425341798273481222515554267490575426027139004127247868502254466275608445416337193862485937538765107849485527868952630993045746988949122574795254881109878398160804004911192932854248686234805275776563914237639119228174630237713581139479350982046006487596279392962635180294754371024668158379363225675257394289422040023335535751227392881101741730824254347135621927523008193039061871749297581482543530604835267929055734344276596697223326038502379266411432011698294294952776324360635102089666566659087628107462695554626049846962321045403630249444950329005829263571220496412522713260533385445904817524735090061217936819132253065490930483560410577802657396204278058242735118972305653666619903714796455488224620400145739148782965103557617803231910641500394201061787312298182423946356963044164368569169234203842198191842524601026570426190913201838309531901301475434160379142416866103993858759859365671793478383022139690357458977338536876486078045396871839665259287082168373586356385255490478975036280159603229122027696098663550995904030711901146869250764167706607867445388548988207448098629711459393522479567873147459128276018413997896560905384810541216679720315329996892982846379208772952906084266178571534900577431358187979884537638517461150496856633895036077340674988010163586279647387513494886869081876532359140075140836544248916593504296469672798789776788584654821277346341454981984436637842078864846194206316814688040770503782691778165615289600522903905309735018648439725947654774499421091064841968620801714841160120198125434531067739730321573493305142323910300059829273128061412774429524768632806455389919030363824929932960887172124530782002874723026397220007966251118100166181092766363489662719981889042734241665071873416345533468174017509255453466905279991119995229310783864392170672433352110537024587547943868417448098227285042690936275281392844695452046098294381714040166553325047139603241082937854933567614145812034532316466817819502855473237260118425176012440206160155932371526112592041298164398659968679638725799465582020542287861900197539364901390115288651794902801305599911948329124192150572005101448625168607886030613080484904746048884795128393893262155099631365949763392956815092976141208654738190735832757096656915211175151131027871998620279287495309725600888973987384826470065960405821100097078632592346773191257232047369406571872252362911760175010299699924427542477619227122818331910146847408093808665678512588277110497544270718742333364903354117348540508790088190561681683380366973297620635053036964477545399915663940509055595514109380116441083344591188012756971322156507156289227785069756258589185285124303727859580079257244505080693743768987888831549784651843513267498195546296488175508782960427649397115935773694947294746675642212104734427593523313332835160676041585047650982736213496716414904518565330380144882359741749258215716378513641532294648938320652994444052113492720075039857454781628494182415674264247775127625709777747968640130732213655359855394836448219173385483916369132829764985672120594444100049840389895295254738201720406451976519709653025257740295390722887026703877106463669935553821478201271760139430903864500826612853081327212283418658625591518266696478205435686707811235978329746334907476462714975291650594952781864330525583975517671747960482687979562865631169656406721271832679225699751120451957229870648372156647324764773550949455534179833070457179154167682531068566297517926875988698615371368568338900712670275428900361833778080182628371645128748080154081087157807084324612495965932875275934695386815334142331370752731186190154553703559154922877040554038925045000680276928009745677282961210810957007836183835472567737133133858693089906498643411314160982987187736152122341879357733578943290011725525887543224688090268692106781545962994875714072039154710403860459062500451827979210314012826592420508438729904724312587957915821216972733898776499519904435773356186945222736692936817800096787654511329996909484677742424801390058510351474064538121368536020752623539623216813645220071596386944062348459122329708432614400648985987714065161185877672808298719394350100569870048252128973729534832631858138782717250985729877495618270991638160954397888742393323664161316350494999219721985835963979476987827834315777742372384940597088283916101533815315158044339555122488637515299190839181956404761062207593921163886554841642218951356006162168468796239127469697471830401445041912287501346045787908913133446181317227541926641935791179500075912761760363081617491811524370616160824663085706795507381772842081724926907618358249748752194797961933041539165049797880347556213885641818595345701254500038893085523328314012091243960040442334034058125000455613960358088852032166663524712321686295508261413067877968669367986317087077723337194526471117919780568776763176641098398980829371757898951035530254595286267258219313168794772445741072556447279870264495723392765045778984074090529255599515009939042258564223844971227430761263771830104544454965930577336024511750029673028087909618356960017439408312063035360556128958662346239046007062255772767814838336125972992119101406081716160296755419334093084819385718135802927761804045937136366222169869610905175072090584785862737722548639340842269267588838404962432173627114889622237480230088001743511651544316238580885059794600448683477142783811693181788769862975778582656978657249335865139886640934297215480926143448507165239712990538894086498789858813107702909780341753819616032707372812362723241545070055915252876319160966475826054235860107264432092087165330303250741953583563422984122596403326367308083945843532614724940399619391929516494423573891812633914253700827261966637462883636286232068269797082371519714589070743194698479566171046087401060379456554371521928515772271929636439954333886282504600681178536205730352690062174196046560555818182927035806080204640331868083087200479608081114004972565670761655751199810287142824371462313016498036706705266263459071529249835350936055129189292895388336285028057858776076678466931696840918211967613660720709800963903985773789933736542976338303494909315658898048272605780251964855521454926345076130382382312555323486777153110401479519937618293682570133296112067981507658924773062875948683534834480075106986902243140080823924144715324779283521359371514900558831889781031287278467261812816779435114585163626440363889669250226389532436730936271134426838176468082349254804784678746186033657516713225860444523248414497918444463502096561793811196916293283080675356003724376225868493487582285985174043817993675291019821791772036414793281424835895568545660335909294118034259859044862439056867477896580952143649628433932111599277033687247183358693466759503660479145745264556601160498730321592148008127779611993053704784518391013308831939735734232077058489182521737604459868164585933513615898214862649719489097651949028691331773829482395458435528163247318597087045566465407752451476384902138433188529789114943612776193160129059793126076927918017345696098809886135230813682196948721951897563275266439350674561501644468191638236745247456504793940409590796804479349253427500732376281507059465047846524421171466281052262298680610416909057775623523039795738972578246844007632310823848460538761365337057769266018050609538360861412292324863537128120671330956179002449539381683983679690090287839927821049843412232006424735570780085380546690533576699567020208294317521938463532332285387141548009283917671026177564891963609202443929593656738327025030418021461402941007297889688935084561264937255041772915797780448406222933466488246804367149966341480194108776235075827098990778134210828805960082917286718491989236504713420396489747572989900619637020558400332138779668153619544669442796647570718597845460519934485443213936862284231026245241432473375021142901030005431930885107625487487938760157342090955246893258346507586232111412169271652497555193234226495566152171323583526215631082827669665315698501096431498005014125321088800342130323382285800173446292873801583258128709553409647015437236724339428855280680628334057538009483647339080584352623438949974747542593855218595088642780207021416687642833577761597287761948196273308570249766226734941257707951095871388502959721615921203694394973787717730398055421988496976923817539953150944164137502577650848371590735741933059335323858322986033218166557535650928280253320705309685572366874613654289751240837167569678955669748819904731660995813080987448340103084371962319526728430119045700861807486092123559762238889757900995206289386900065232020269421878570056131919420935962882918961023090320436045677345192907450724017804346764500318646415188444199219370749290402190332146707812280804733982714020178830225720892522309256674579485062321403936388429841735308362788900811453067295664399498649811966506487420426543690659771669782075352962701592285247710878149184346884828134474722961104711750214360011463138737951823415267520909578746025889953385445253288352868914959947027532533259852493063982951865727190087183104790445077045552712823319615143506619872308935927337889100720352367350736978634466879186933964269680264456434063217213761752420060304183182871008992063159450306882900121839812316699259534050293382054168881760909014344067779643742323186913317188804158043348814820133539241147696546967648424884326161559662271615846920547832870261833555655260937168531301837174168966602325181597499743362166593019021040909419770197759232333199586945295500811758076504143586045070075108258359314832028720242855996240965027035313312220445779426693222678546236063140587185993984889592953574613432934751417943930758788199546906684108026719683198551077669628375745274132670768811372122461183702938895802356152923743784875031917309854589734170223809690695997672264049730331777171587717678628034749982767355960920246339341267965703839840062598476561746601137842928013684365929787877655802953749139198413494758804157224561381586854417232695640153470620560890508963198408829585602160916198237526712241519655616214715164482826853986461386287271368150782408158889613582324639665887165610530644505040742006722447861900272023414089047717859437635309694826519172344032067490655726182003913766204233188676905056718629817115976749419079789482000630094445842424020618251589429482758469904773520871873354263113457027985433543444030487496172600891187853779239702654445872951688879619621009705781837677025785559041541280820426088082991729961676891877892337055749875624358013493129250642435669730868899649026456540866906709672167461760811793633717502730154423665838535335075564968825851932213681183047535526092055171111002119270308856375073689931582290607850476760871932790758448569205455229466615076688377159226542820164147120929303772710261232094120908583881324166670873975940502218297993110036819971110257600845866621489388034230638059135746719771036666999856087773435915086002833019035450865884903281099845856926935218078965587723129118519823804011054087968263382666935414173703814426438688861822556303879791131096529708647057638196286024015225779136998471721570978265164153630639293565864565504622007771907827355612126255877416278774437148151258320187591696389332578738144913565418512811507534244010555402018430038500822861368742232050862794179387877168268118867597311328580512623947814894766736657673258273700622437420321943862902024821872042590088249581354552887720630145256856373338895466614575344078588374869640344687664194767243060523180922434298785742373762743144735547742912025649874916150061404626429081976872692004318591101398996396373138954705610282415723509783129231370924166922859323496046794418341283816869307300291586127356535259016431048384131921627272695305588506396073048749027177833476600085915334006274257005077547696092171383263304044938620354458599423578276740440205817320990970415294135029676941364386578344304355401921480832973176129557317151777681384856775960031258701190006072649737388019881297504158157267444731085052815570653208549311006399288241283577996092335121282629428693141831738442146552254086259230590344174315044485133603754088106662112408149660940816912351452228399166610276293674634979644644631806148911315256832176643346777189578967479654419956273623740659595553926677883414795175511710113040326378058929026869023537417052843785821866202756022746071013591569126912762648867657388956324599783479156630579323165090780619124995062461909838552757195413807534838312199435114066207188704812651662844535489481821196619165640731817938854570228101824315160046901680608171816017132963725596625042608691668272970007023933840784813553327358237904452425405863105793203101929945034227300689424640260783934785585152837733727485340055123666293182729827870323956449936926552242515610063414454168171024482541297877978526582953397361029512417545995070852347073248695157145848535805476493237771004311257995004379422152162325105548903666248867169464100243970861300347466303346273939869554976181752479061692488831981573946379527459450167254330961390456839331318484769020091484354075832292081487776455812205093510365167002616445616402379190556454666423734937886345152133381160600598016981760229138828986518885849558644446931156927012326734225229854535644052730386343108772086089882394032907587318230819040823236382720573022150899151842926218572628763052602435402024194923378165548367954152413147984032167559818633239229982714848984190157964584888650520094430180376936555415461624589518527682709078726871222250711794636176895889958411705755432793415097234582351885921636423912591345249337294176965432204912884580207612555740803264935217170142491478854527401446756717316791327773960889114369095713747378698075061316827949855871176327027630962297886600972549837211565917336286822777180330534364407073486165747488064482663952421334245874968153646947586831637428316130758564926839390866417286599308207845955621919284319535572812768607396593108872705457846367298693369562361807236064925936354045167627976974747947464899467443208350764107051816284150033193581342332701285504069519159813889373050059583682431952079068758410804529934452669019066122062514714704785618614356237170407725822452801247493712453358845371656408042649079457557740866670196900635705310255741460007193482061881034079118184618207678039195142656262437469931617907217356531640380287261847137151951940480459668936394824129630228609539056582438821873891551660994160475011430420495261890107704840628794920981282495802258641903319432155398828917558067424829450777983048798528394088078448370797926872580170040401439763069797070711926397223749182092096993319398781740384407331491706241945620046774283368192078919959685435856003989245930144592838815639779023362687462282911169364388826352722018967175429816295004069237863982626093506028757661580945757334607193070509246284296346242211222182827123606388400071637077471066294489089926798851052322071511265945718496286336645083109653730660742546577606375001271182138542099298368399629150124555370210083780489420827299814470299385514720486871897289364835041446890516559222479901286416513837991475128680453917483319045422140399583174188927392005505164664655901754294747725044307705074361178693801168481166033222900209646009740249679219014902450246881163948483162860867812775662689253509681575215925376538482285353138274793334317025309839553294931670540264435414088071472217342357224911907571902355424537365539999805017159100522773387795547457680499621549422739866480478780141545622519425250304453273076217043841786238323719694227303055505515389498890314260170558107767391394317372096972134321377491620858882220275955513533097361794398112043430507710723207496177266243417595592957998696971966390220551221783316532325579894931768659957379655975932351124900780479065143068831417491123433244712762872808479267171096645602073580351330549922345900098868218462986265648999813011919941610735984374580252038879729564755986623392162022521082231735985595155113672105678935851439251642716743561278047635246196735162191699036990113108604969192773269267686382952126203610974405963126588142127259784871854597244139557971118809346197435086262599673478096066512824553165139075208973652490931253379683507793446569253645688397751413828523512590379943209065534743807573135806123701079507774003044753749888987375108708676453152664992437892871403706524510401214422147931718496564739772534652618645910506900243736932309928446597869433615243720217133078233084216342069439083743682717360707279110102718498440016979598121884585255098454316129580492494278968050097699001587166239206652989727248472238852123443907184282481445694410915283855825529118311157005219649475269509923574661555431133701749104718319956065528326816860569187778887870214764161311443270958977191294615036881192195952540414895157268746728270673490515988018947859447609891585604053334363707668252444164850926285111049204678008193427789692560037688790992644282587557061569527681816598435573534024435079073804705834104679160368060832798671321271986670183102287736967231276796391740016098030650214107627350987972590841662460334029329721534187118634440872323401248236896394959355331626873638288998579653511654992370792560313465839055658004807692818148876903436031833898896106102666502369660532155370474608719146711382809894336209151507005652218019965700305669959721659615950845402746835760221813637758566158357789374090483619926912504163359515763112567086968768438685472976991742575359320824770135317628721229397742682924586592079737463531255707908813017194348995270806326477802083427560700956022616061866611163121473003195621733882548400048296738408096054202060667841054526990950666059613622712589933349397626619998730715928921428987208160222196360790972225219885416996808950029450113422117963131865637581848993422850551041363992533154984815655625952526167471236865408190855159135770451338734517094643988026217148018260779665889532247498354556890216265764414494391616217967579261925007237117462209285509902863356958623041533700549104905771746175322676911515069241277792123728001443348422623916391620958246196124359309933381115616386539211591627853152267000614288289372431530658786305959401327959531886782104924156646955632566396461427305721717690101211660678207046854343421373316742862074189394912220926081231513936512208624119702268577397591634897574045029694598864425954690863222817098849500622019555467178123826631272791377976782584143481594414868125334060910511259495736175143774546392892545571967602909509033261283630883478601492581974707516108060463055399833721255429315918161243582285120687691079712649904657484026764246453452623182486255976611476058281102334701577679946318619703875719348557740656277183642280194105539391862404907370427176463633182189150852256793282602436022770660786860792700435563199493441126676999930344113203615110591304816055142606221694117135979773660902059834971466896394591168074805994622674961618069113248917972702533926950333079236225770259008444464347712767678556453360974259888433686487426734656264996078712914147488663634100059290870600389606657253884197622011614597263963097779949380869643940413235987442713786174205175393757429496031449808576720730536905103366906542500016494374253177673864983391264740213941630771062307492049189018945707326179117225407335346077040372538217035204162455801311570781836388253116281611911076794811155553450289494107243653202148978299433236374009458555989773637329034476883995532137937648704438743854546272680560223203343511059574067518335576565898203293721910217539300880456992987751544533500660462480039918839841957210894548466369873344702845760897696693050193895711440047610203191718360144817563318507115734963228786073482302714442807428015436241286779392305931134038725600750880650676748604916703228176465977683058012093005650523395288874024397659235440368991225735697912717809182844569099980337517887030841620564388123657213393235744417899424103812536294056764409606963873575863571094011391255332939788720375289493389112860028405902365386448079108843102379130251605871749393086644120292082701779295039579834041234308332162584526980929602463501295841500435932460972051491136537941922987584254658161244531460027753941365460234158041639427084307988691966533897364172545833701895582741635016416810643859747890616031158709958062683463014323231181562556498221029540578932417168995612258519997105027560420774986134513813133325563088146397690691550908605268573072208174776429896260299558671572026572377412582194256253509632482248101899938561465677648094570233715993087214395437655062779655835730393426162205014668848346675667451686925835065332250776914552930046707562223076527470198127772779749532781592655216781714578568364077876027092366257322547832471911563992741382580811554255243678137023901036037345776070211440373112781556415396093781166010691969409708363123272684294468046468991434010475415687560316581635057974797696060546764378228881172429629837438315116858685389095310797567272869468366951158221000676104177065772458080612407213735144969338965503590856221929986209578228876970973410593695820574206189962414349696352610010382498599390877619441702945126108391212352741140575887821175626019332592461717332398710267660644922894472275390751886457488732683905159908630585446995405525308854497491970749083282755792610057114645721381794344263847108461335087196933267499238929668859566732685635035730280776488224673154452631393271753538317220751077781951091360754572965385753361059281126932566482570854461905816839457602545550345676823451105303500085456159732251661621876464735373431579629707754278362978058551300539001867757692526873930726217624120297943695869022316230042566732187031809481273398682620116300767582711623777288761704865617616859090821428551393704962187338598773034874810622063002047509036651809700696095720151685278061584742109819327634100516380636048327566082314800897056226229438793303613441913967465844330247445201133707494611909363634024217286974299321713131458182517873533502933367717300452041385293053040171097321963743116350781215566520077278492159979275428682274527954276128346557329812859108348190004355274466192640919950278747017532191843014699475435265003378921216090250528713441950597285308905615896544983525348519291661539847827461477009658133244875866627288524694741684338481601350156256275239121448738427021134747413816383243322936786901974333895351401098121283193548818773095002927592029505688514813248275632576002267341239906184330113938144406459636193848619414989309335782534684794213744989438401140689410269047959310882956062688195035418214757806148948814022740384706644712724486682653114366283847491472895910546644993665604983850667392730585459924323013568491439000495917574728500280110994104291101646610613250634065230223533335576389506202342815592583230404594424759165506902823776122062883540040361844970715549125354789155617983105340611437673171840002905171900090956678729362778487593856873158918492007927722888417062204655644622883133180129910317612102033842236501070465852237156962825792863927482770581424052537588958802207694690930287021479442509746918813426864322949878728917168853910312080075874438621579913069961304996453250823374173202338620029325052393853819518647610017233428125102114794792303768991196633024610009350263807687607883312333086427052963222887263034135393630687011421345329769822040851994910784290887035317064305130562038122377562249821463086903398436841976397828223230395559312466488252216188791376383764807567825081010795435465454254702194522036918717701063688599567602596337568179109488597384970810407668395420877113875190118857694115217777925282246329294038180723532584178506730238060986868620452216548834569519856356651059587958847752858801224064534616399769600502629624606235643485402360596451446811219235162829941100941827589176425533368497599607016000480986543996213408714150873994125265499810123444915550234167159871491335959032129531208300191251102807325824640587517182136548484499564711702002674234006020695659469818408270808018262219872128597558020424398753016035158750161910632968918018523280904390966041850674830466413060844741364220472230410934966014987314794450976919577798434706982902208512817504556383869769929377628612144574943965447298938968812633923884486842249087419037684868581610560367817484810478571616645348202005628363252353154748483876168305633023225181512318791536881380553976265622729998398071967617830751353214366559369622144792142605533100263285920197597903238759944423700199157781262509758940613224137852712168116600986181405465240397269880032389571844029064516386925439001212492173037426425826430785423511269644978260001590040486687921061094180977572317985605109401602403475560524636287266540613505094804546534562678872391216802804532344154864781353366158186489254519503970660457464914998208117254647691067666902122735919796286348553471470187697623283495635164421219591918165565523223796586561178712095353802493264067212931078548578133420515143723674876517040471166045253675272180994502641802624448288766747604890084372883003850016875803398116848836669819075775884896523915305553633042116134502949401463697780988510468283072093954193162258635234126392616762270457564296537920381883633973381408519047435094976261817522747483030844222013402383519596387744891772692588442018395370178079282238118072057953632061649117442777296788938318821437376961615388970864142746533500191307290430370802676684983554878142303207749363593566076129404122401476933677751975862799155892732940738772294585240798098362251114077774661163716153064075842343845464740516300673368488745984859594606096889167363977249333754216123541409217943960564536219983265251409839592796931152769593675014411102004234409607955011721402604849865636491094860368278068213402332814115684458503287440226728518833442160036449279848405358593141082475703626579933329839774794853964009426400842344751388472262605118079439086791769955714748024787275159449094966649953746358211738179107469259838062510202724583238692173881402309830487219815924334634699340223329227583823038536867561364174985415927616681063250684760340281815706616238705869108473118041378531909014180787447197443029287464068954854418556081229062516115146213991823471372524353780909356398512070585595721177330957815734221583135691044805591191721306610788654938439443761733164308679638849067978454293761138734339264802808443965254657709784110930830699503818508227231874690873619021334509579350924355790496907345909453112999578225009866492862765302855164441774941720799204400414292966007353065536151483863139247979024762046854141347751831611980859693063003993468497119556470572054784040281606210678081794681592858098914446213255630199941787304193863991991832766254107616010183276199158241349694180740693440938027758392599378738631252840083422415167066013443326677831932727813488726482716434713113659696443024600585124909287894295158775778654682187560683223898143073346097140152952231884099482784515651840716635660410957892532107759302040247917655388502367603409203346549828330984584234741459805138286118067854368080408398830759245372655918454317338497216316647393192517368578561771474409876224374220116181942863624399368293678658029803262174172494524853083004997610581616821500434254715546491052711442828186400046533206589286310643214765635365678083555632508981678434427796172550995741932050677598334295889786068325347545605441316974517308447140126583598669142005444794790167583227089020659557548477722602046576974603153106420212061927154470034184315525289933547939078253736476602401213332455056725750728086865170397710936282680274317713941814879532938103196922063620795333114297585755708098264516933810328436522110792896115916177306117058867879585049764027980010581121944173817426517176396231292800447393136269208595396875246172108300380590253266536471452212350521203781138255531540972302709925602764015083584812064135952442621837919236718447033176920370274555229525230177517550287909546843878296449333430818115000058509352880618121007171863849479219634913212331664184038245165829183386653446510013002364132957985846359501755434050575212116711965158099611370200572397094468715911596757029444381797570984600252128903933498226032315988299187965952862701730063421468162003321633984553989292291173612345285968035706604997212702465464269848252674143777830305441021466496698981684984048681046506520406255299246543961132959028620297533155595065262751748525795924246180132643915389787320688298789873536451838071888738708599767866943403786142352295224715248148569626426406486620500489055838030247322821850842884253063656936979841881092535582061384964643835038649292377761810247960573105159769550684411275884978427050500255629887233852848071643497029251356254951642775256736023665842937860217974767780490541134463602908829537966375285521874120314510592001570753766214021103761600376595278305499329943656923005071916829470960852442330043830616306476343647096611703468594664620722622255689625003653509847038853428581109998174744370822553304534533960183385008735741399972710683852205251378302746777486846774578788379334535045582968270840468700658232238683696753021862703259863008696136974942299364108449762893465259723928100423937595799992194320923309889454908847554638736010370668656959867932477517975318603401458373104145062980298215422473862032913874299556346819596417258857997775259375397049629663216073919293988721793568954465046829603600906589149439376278407107714092978158450621188650643340977286698434141175113556077015114626437451625782738422127151624721543301106079021733399044565047451996665035362948776432105599009266637707202646746264142113975985834462174775875484798162522046258085285563103856103840105188354780462445304642401775909395376375214469693429468151116860306317562249163523094170556864371493890010563969491456771816006793012874775150136389531652298696669489386206188910436391148296132681478580794813193323152645249140275411677095651076659172647251725228812507239451244896043749621791818641548876828177141529128461375370594872320318972927706506761906526080325826266163593642173412472629453454459924738827534833452418960169517727388396063786041053891290468705704858066758462796594789020325133780057601871063815048192797903584387389878059470747476739267305174353955895436663990639369544834796323743236664057236844493573650454403746089409466021268226905273301792821631691177135094996172589311215436686384546042659149773476592772582137807491430713437944264713037292976449580547197071637104278783979492603659911652571061482519239264352153377268332831566425173482968916625037544825286044706387483082195810446476891868480153657193324176556168730457246505956493447772700975053403001533132606167778597708725008191540893825430572455943983754857888195493925134429265100354011727193632151208956924591454747821151197845729969493710843410209442774180720703425012687102681232861552361249315625646906475660676450626580604508752217453808802743787376071968840237651064022215718664912279888927677703493017979009711022329365146616561310029300698876780123154353904043779668961573986020275496176195025898938227779503446661370713857679919435645862038932312958830470262101541726599723775057348010601695778660275468579823907026676064414851469448808782328450324950402105256692378793599575248790217764396804650359897818260362289333623571872723664325000106489832764484473034136642207479652909845209359977825884928507898804135054815899665196954696983191832666447460113218889178226520182568982039239912970981667552137833097512614876535199514057907031088021733236459757278441870605146531163555205740150810125992813436944116325799731863072355688436267159336727691150229105923315786936098261873481553289259410333198314539675891368356944355248426935339956526608499164563520652033172939893156997820141579085636208134323933611151846414517130372464277002680966649683423000023671349717940050593152106728384192317832766669705171238683061748808231660415731643842544154503122332700282195200199624410195632539709474011152196136971526117351396146885834201613475679771572879374420589928373294032918560745032497414495489123954726190254852662843050282029171293822624229744675137138651981859395355005582415684495456163492027595058089221792095009939153837482844318030441944042717618782832049785186344786599381092751799851565376101937566656252259392583273521332511223253978960976148478576489085800727313970850616897961065489759278897564508474961257346166173076356275382624063457670574456688391776776591439920112553161483784466254224581567308849646478076113375813852523689913554958817471022170388401840046715289822864368901452640195920098953462322665639996877280286353348728231936630193885384451775923679418506013600304896174893227442487042207499328322807190668660115749439288485001544368096064979634003122229061278441494974733390237996014958219530989466055485596370937370989010127086156026716652558063623088115651432807793669179674646517264509014341403902549065650875193900584535165512571839434496099639366759874013077046704660613980157059572546577911478574607196432150471229115360681824309371852614028149553722653384611135603152230872126231474561839329335793476814984835510845495892851869885914396048233926378490100198696776201499847953918187231626662603138408908601540892419852678298005019401296056697697270808187494013301068835283843713619396507413079409732134232687338428877441504564910394444541785490881534985656486432626280486935936566023309801655561577245990077283104043334849303697428497073158215746611504733006363703131221336932258743532819303219735126477817254180804502254211054295948580107343525437299071271183906572243218316958262875205170851346971902632313515624528447866969535619815128586427954737525061523426817506687429999709717836938314020502974056102735162791726242928670251828708820682933601554679528182924262816036587995089384024534061733098221683087763933335558029144087544160282520829214783548229686338233374806882619870658859121799097900655603225608312555829448517450359915261060933932213265049894088284834778955423723608726466868786118435317021767235466181899525272740353322290495737219991950375605864388029218352980340006329617112939523433215702705343707527905773254716974287791752857630474786835546379203150302279234842412523890496536958496431086367268287570341342592989632684895883960561295366508018396886783934905297655156041648212763152445424922170822845670741759474184419420018372480591086614508246417474735834740782165546066708713502425516145967320722554106489640984081358585259549699676284418287063173426763161627000310416769458529555839406365033511212098358315091025274048736857474389345519069839845078536497945715966237460169580209856764268314651326760271566007221670220240878418714099378757933641702733834230752302930627965392436294879877292409658685376581005381329650641137814320534235868426797991971850106070071343384728023908805239163940943936176245708004386650450600515076239947605617041803629845704291124483660318571089281629623728517951714776513640109175799585971150295067151137927384826679479436557355446946024888338163459515066789870337268907351851382601006111892472754787301588384906012269974070518528899330198581636326854563870993249705590518577332209129072578998871700496658992186874355169754535171291782103812192872906111146636010075688649735034451144305031873226064160070106032108877273247025609957668924827330681310400404151281609739499705453037646132149962140525685116570384755147891576116221102730450089304685198120945568811952868481695204056924897404768062754611606366787402098418649056083804408821063893293712289061659293955859572004347307232793350546704629521504549007755864719941905804666439448257371957465328167418497139218001607567826517415934385933513277040395869160975444006770085963737860879269882194752856468195316944368171953011076929035085860891416306053069413263782697983250914801778888052510392131921358909337836407210552924623641634089013409967874519564868918487119275194735694698434545415701179268724220373667631197891508605808335466043053795873416919940885886282438473936913269318261720969216340510760088505131782277850680792618710229585252953768660459530501954254204856675810788859569874908963911355047959476770032253213933231482681136459483680413081433137255505685940666131888429643989593910064922875378886025569559452780450221109030252221913846536137497929044458349504919486607641610427128625549485639528456245260480212068837852186926987472723717993644392578592121873971541255963634755367433120795876079244568916472358015250728006291887632155246959187886593296399295031148465766335679611548200546452123352784552032172376970726836749779994961360332203309187014498973530761381271592674888435325271608275364082829436716155317777065797206876466118719682054099843885848422184171345400733934735473689891445863197353180190745466396235953599530853841145177321052430013913248151313441613461628820969089268829535791558820251356122559853870849329252269523881509680751809325873653576713648455612166774752797532214363529372111889746992321423969872464429020393246819833717799670324288729487707961657480521550353835291402169050438052927849646635444528209400406903636493325638009574131837245431087618346230553189447204811756499377129823495996335115576720235630571558268275967563751049738450043141282548379730037827175975490190391664375228126839651519278544424318007830897698940553597058008490549852431130761918276576387805131899056100543327724981755714524739676439115670249650872841909827661589614399066478221760034477592551134187746584487276652836925135605612925088948967521704148486936749754906990258084614785315429401321770452614871274702662556334007556465523568828421366011980302648544304470744745231531973907436502801994709300219330909802272333530112850330365442113375475943558872770769698981523473270491054903996809988500598202402260526149531571528111529513255912694654885739348293107804387870206352876279468116896602071454399597626155526550770898471068700271294909081386347977179706689435358936699498179648196246824428299638379873392959893907302281368388236970428210251665761595485635353363774143883636071588708781708287148441508356407038039268700546597788241703623200115858401600522587784880918072454291226676287519670280852882634806022948595327777258342313257315514828139209325420317021863158223808104318134806886588028007650689916932303852170957168046557473478035129995379780292329162755951287571484141294378323585972441050790065782388808172421362616845452981361107811623656259952649318488670571393011645814022357472749485088002627209761146491370501658796227761132610114952523196323066441965908260944700976721365483975803295304492919708349463207103739046878858216831293240729582721194011123782803394879067085144291477169975013591608589009257166369242960343363177647694421199242677317218829614249045429267070731951649216640671085597056587871769803274302964623608325857234152445035795184427051835073016319930513988036925138701166320628957267060817790771601262028983235799118697344715145070782897731636933232419952367911229322109398409379797394955396355672901923267249276837983052673836247662884735429477271631260322136198349799121845613458974441792918015378302533986936275597593829189367222152319886348975245453018605892601884560527810310033605373297279764289540181648934382636874969810557928763313057509925565696633731977155935452506008636487404555216181384976890886706258699062822135251010359604800447668810652482772791911556701202379262597594147720973025796119406195102960680177244375791026472491085022985518812676071948382189084864738414364086238123202462259354028147593766555545913700891200640750347192770298819434976794169836967758497419458825815509325056504876620770555485145259976162534618004698075439322053889932979052069548600174646621448921449181545235883979074591221865028360852958807981801636212163540901787730576342136601030283982749925846214303691632012956907494756475560090051003285227492626464467752821844204614225836170866228313408144000314314071033425328118978257230156420597624810014551561848913933218294420748075231530938022796229075090392764233260281633038657566290190108215954653736013739490655711192952697719323347504511191816450885014219838264077102929879546130514321608777083775242407884332383586455959271041893583978589396574990786542288760865066217760784021626612077476690306681238827243589462196473484151807916830863379032805683667573716832543886713459653754363348456916932489615808900364820913149111179107920749717065419637485068989467734702487401734416625767443695361731957029185314163310927177062800431836999186664066554555933260711150790927669717111925964054215400373378394391827506531086220557619165824612719579934540464373584762855471692247132695524760876701603305760596975625502969859263688985587928954705322900298964234057346881818744299713949290793169027897045812577886575953682511002033555474342217057691765523971898778051510709063086814650171493677752428329666156568023744809261683064988578675858066135386043624090734766395951321881409428400217560107221858610642941610307703798794535382391646928102671169936722110878556913611594145343224784733699193896939334187230649740779854580950872092922447414972769448745139041953365889676943747375639550222798700220045639861079472589029994975852112997560169537779290481816460271795458486741951300415968494293835705434812809736448862595689073328481168477299390132888509269537374549365930515178539977593298417769343861327988262081978398311813756762154903389047285576659431723259831620138962553894110466267697454160663871816297238571738400063199152483882216183470011721292223451908290331995118785741973749191333986035428577753481165567607747903307457144398132647537491620128808132634767787618462530714775034776788101113929741142865094217233408263481837239973532173738726825096749793515425795226864190822944093458711560930560624798650165083157089537380071377046107995359788895318870270653336608909426497045005903142700577741534831650538871685762939136085304577492753297133257429548803362397176160316631489047559521142782934308422286714272364431013663017810975910585378315313775993011475232865822062331440425308626186616706683231772250830088254588565938612536794701418251466013320174799287092776172339490092916756441148662270371149157907849509182122011099570524527701031369027684324302701442745942953171634464726708673729768959795033897218711413230786999710440463073902272346750444957602226156570067449606442009694264028872089861620952684242775956495406965722308034569577664919094845065082148769078880050639209772996425580683550585201805633531059976175328256138587003637942377957629627189794442437929822613122436877765191575782326554544617485116118448057680979882925781610139876621643693085020551752734651201562541152836096214738902313815169984609907939043430122386057570925055188561045944091259665382958430156371129448751262960128907795059756636094578413489238077576268629286236050876854426551222988672725677735504065327821474052633150634589396755635824726452048176536076446485957991181939065191191638714517189031202926994460366160084679257479059135995584241614102003840817969392003637884776019582089110321663973046026953086911661006284562146873664909565987514702898701467688662155704966082718772506066802495906642641987689951958505667726948164064089498718504536283132426844829292034381353111182880122830449481681150118294878963029278608927352528762981726094287602661622038324430093122792402379559487998077005390459519646082058645783471035340174483878324017960554727149529304364488244427257466993825007710943849260805137112173084737202944996332163362536408027073000771545179505559267051870562861909920685326199584587832502803786401344654194274795500679327997604221845353611545283131773332108532905371426634964757963197586853381910127470446409792361702098737953865254992963899447056992952851250918702638961514124756289559216393588231667548609755740249472742975912607446448107992220913044953348480793158577425661202795609873855730311470527189162355804639468222549378230579745938886000753944258042272355980090165651385591311826431684199308742425680365414868155164422544695180422135694050603847367404285734300892339371426485282734002316387083757945340744241686064888988879303305287109611760612174189260448922265617892178715585213938486262952577773896330494691761529549895748795445791021475379426993869446971788009768399990651808774233281082327844351472830392787756354733783374919115628576636306532321037658349335118418249456706252001824234675830364236737178681914796773205682607107553255182574466702904758068599252808286099736822531737482476113583238284634089144871652341603500891621538078656541675380419376136674622025588653023228688445389860997874125776568681395119956852278473568461731320285449719685266787903728406721914469048666394808868506073615612409473214563468410815053476210206864464021099542881267200471111925323702815739350395580458999310269865117739197233466539394069413019453748815843760880936461106314550911467573283769271197040146938792075021172928218458183156974962833187989495274283770660081660861360161754850238206634580265956526185043087387614724958593399579142390146579747687819653142512009883867383107766115368683926674277696694823773073393156093174242726813784499217982782398028185514819626129897489031268682438368209692656857689172534531736127752287123378505648420859989290685854998098497864227903094922167319875775254316179490919038148637677219694745775958456102856167844212149875227219555530409327372883107462188425336467425506626578143927278916456038067329436807376338311120917390182968740495528295540484075064067951408257632558590883489499022707328343906460780145918963914238197283981072277842243701108999339378321751718551840939701079006403112539390074441574026145316233638898627968927804673852905897098801761188467095602231718953254589324463393326697213236555394711473438364298075593176753414374769767869216418571727411118337189296473541660616908106823866699995133285847411431813277013768604899563665088240990190492921706261329559538756243272788934266747309289202811930371996620731007264304584516541046545143799811333836586524113980001205859511869057832281078350233311169800312864481055168284866819152332893605294922685870187875577772786690048537715757806213748850648684739042450451180402394645105091771567312347475441734012690948207555652509987580462802295731035318505747755814873134796910756153737151877755257776990342473298885535576227052656845755601367048762727526374246163306886688477716533984367951590901398164197920343385869295032999947175327499903479576458997841006815958053482634236699158571835303622462466848659231381481795480037917152096866784016549067295098386004565527119272544632919221136859519961109103318267292381243418036900453923208678130218201823876078368994946059011829982516693314979248005864361792960729170904306429348084514899181481222652861392377014087346287252475806011716729791053712809965806273245672833009582039163280323215496457309652406639504345942492542439315646062921662011724758269298058354885339289873400714303474006235201384183316747845955815088430092645452193420360527758764405435147012997539396724468375727782704562957801375959764409981926059996730059570627078043020101597328535791859908297606028729884782903902829483491494741256665161632521485292337080827770369840284382286246899717820179198097393441660126194180011782770056173527757194180392907068371163069598366348425171726350099250386933382715384720678151090078390617846800228222361106836814399742171354688600028030466402062862574720469600014393864539616176264518094610844083124092188333518938737990011550600972922330913541052769609343635910484536142479414230183459178426150178930835636839732373845991844332061192105440032166510783981674741482459449647420737861282972809923858430945681968407496393445621004868142374195116454846009290471739490897402672762126108757461102007410812920861134277701292276257632694150954128566716507950606011554819427598212556536212134956824547238460628775529781064760227817366561857062808118751737597268794530265861184885103134871682752326844539207552763778631945966809572547758324982712735436490784663187618731324130051434966869325958179793988717223631715780006477876854052905077019907125162903089223667701107577932793915593935207216191384496784446339946214312973267015175548444772877403773433057837847082605083119348048157864401033385641948540373293747562133653795780483137321340033152759933225976292572607317565795537579653413566724899842154020389732560791673418085933546778605337299466806841760759761246948591125003070029727956196576982680870066611063084054399914210892090880389308603654545774709670687968559184084954284407374947106482444268387302365742336014190508326835139533868893311225601846031061040896117485201320642162556150749251673671074936529363690889530376653965336213356527833199395754584885671005967624826046644576081675467751698016011337241254697846386281168078025689786379747248936518324980276188577646935921928753847943589111818556690338667327578792297513814897458045100131223844403101887981693759464956863941310092753891605800207173869949948062583874511549414148304699784497796234321418381268724883503782472929094205035885454239990301065338724359648706040490961188092642150122220279185377655227511283310019425808481590663083302981470521005499142127188860957921836465694751139450345746720269238738103213728522393595628003447385159310081800701972099377997873097536617972939743047383036377277409404417413980637904679820577019998011250341605361658051566276974884628939392694634776810867171996986187022287127253333252969276210278780045423592433261866139726004472497568460361739569415771359167740064294441330137736503350619352380202814681843071987387460947564147357913442818461020089225995677856858564079393237923778091829673384100208780266730362557274244629651830154777071647986557385603185680686254147222252036479471463195871069033861923807717040877323047356274615225071518013889553620163748868954805285198032302060735502863787029261054851607466824093257543657591896290826705622059367941387719347539739243064906712747333936694168734583330025917414185817192479447678398115537755987736260485064570886598240626517848919943237775820344231139304414963821113016508703168415306121003369163996946641884138874764207822187732911926273650991011152971363293042136979602389534461227537559928180435162871761898468763732639816858851720674786319742513450726615015437300865005143264853561221003576315710443477376415749141994170431317823607746151984680666936845852656928090793402652403009341587608171294768800306573418044822124429220225170264441546020070620255672647308550280226744793488156893723371161041641298621844281147886952952823856735840390789791478662463759602361700165574017172281090672335661588867265044546154181417878807477385372382119365703313370665355041901824176345201054643045674242907813739845200872100584723146804049804792526446055522641764832527982321507782879331890770182077432491673296527906998741453284166202925725847663034790010891975455310080946740384305925944990013787238052107616114872252191214202400153173942522328722241687742891124645108682946497868800828180377638230767752890861677828546881229442411182382091886673134740009639359046773123549285179032835651032176399039562041651245322018643850925549652512281116986018232925330998241774345515459603295956598980952898797864164742595216504689101218746999206617464380518181663091495656721462595032816597653432253741659477612090785034901922995932373569368073704636451663606663259885273658127299417369145929023510125850407954232374843996605219971214767789792958203366729432644207610244700202902957213761322161485952829916760349413266617587397263000342455280019044947797647248888571178551557396009110581178064322555396274389191879028486210190162010612486729817517213645355954331790460250595591612427702868028349187494672609138243383293613441629301945960651075432645617444602647957146117420044793984100142582871550813841586143447485317869041618836919211402622275450529588273959858779621549136215585649587387451079259639297201176485356363130632034119220930348645890970784533927173896976615806843796214585232886224681154665555784853955014001185536864219030321215344171286911350978696180707499013787685683804335237629088471840169926885198140619221236956239260629748523850658903853986849613970291936624849584337259602464301262611152407167936551515342226094949599900935441050860057488633159644838667418092410568156336076242302695620543574883721318296644166885504663373586582040583362593875196140752472069583108127262572310010679548135459772654885417744269782168760086033905470188154593811431872103181593463614624992874819484712094743717193744730170037859078214295162151856144306524526743471517270757846019131926590673275535230866469352145501549897229350206463163860191350061696695539776232415497342488708560227950612720640631407771484842021568893872315946968212262797923023174969147750062017502463794883319500274454237635188889983118668383490730252899147396696812270388090465162623323889017372036937684131994728652751971623670873966176841627082507529709054060392681477455564145994058975380855781649117310495554232917386124935863229021313106249407135751108906208445523781839489818705582908523544114086693990801950439461973867598432927213851310334568229695968278285245281951526939051545560767823738566359045631660891819854992934650115964825367324096826227409399675072349528659516089424909358525020691787307724937556111997330284479530133354526856898377387727313215694478003780985775904037691802197795203654329434006178011531839212706424936845649407057366056665922076282207389491628502402357362431629921389412872861166043405390502166511694120436750452171232739466519512580652790853216145782810941532787936474185994806227502621153926957356284682729388954590039568952134545679975534184017045525735397750591177645774201830979050733771874454789435744657720141712234184548940364207187699961498841871410869634298910830071716709140325234090843406454871506953635451707380190986302714906596098497974951660105423983496711046109532478601477801688334807599061945976658501429407576683789610401830571567377400207648942040318495366497227099175382789944065430499531645318676972286502125495460638253796373960855868587597376026441040117717266754340000773693657208092574044864062557019017247156578775240738673591360851838836720413340937522836909057728127189971786041125865287353550752402575751516743772230425021910368643960943557228450408358370831488528779112325264515201455401148360535914514851326644133896519683971402198871964144500156413902914024753475998036343374582680398839197853782432502532116882995944779516461112923341048947679526043159392654852812711343642491588254816008205962935867507568887920286882629054289064626557582908606181688094549713318098333312219891835577599012043006061565113001888495397581183722477409362979607311369962716646798706915868946670393208391123272628907308095634068524345983868056541482481047942876484156495579745100348733259886962236392694104878810787981173017710728891927190145186160954102119106382095902990925955752112787796602053004938328517148996650363185476861587928970304885904103730743050862593716641089944213092087367859453466646278389026308604041533757656023289172571593289202335639509611861605487151425815848342916922349902145278192073016732075929988383126439035190931239459341442661817403072558856560422813730707621528937504623129636789466729836404772373242000188321845045380364967533666999874298754159668977919079756563720954221315525715439011416452115898789729977092318991086417564663786178939880602885381829133337060251311049444991139249116339944483902513503845870707988946428734501906602631539347949362798208994371197719475025169485742526669680975510760578775688303870755340474164777600424600725291629990052515239699446405952825457346757611585379682449720389921518777727357554881703833643164290544710161217845502137152797142226471226766083163173802149370246237019882581758008721853113706041740582411158496318203164434717990504217582262145275508290403532767031611649607266067119793701920599050508583177566334579410797081325692392479164930629030712794314157147945682563570937216085595530210914028734257227971546139721465129498985409083890551896270177579518791080539507839376112176228934539711561993118670366229595456574440188498281296046195591134841363343464675790401755414672338428296567399482431726185038542001479644946748331147422812524119233487584048461537571521552688832461944325826858770299567016778722170258636717300105774617003362356068192893531182438594477569212597147866299606344124932724628067839293439776787302239380861059246653753808335452690836562545135800192595153749309781842806100261883817754018155434091517856738953084653039875005702911059623700552295065940924966804104612602057645445876261653363077143916360375539183609273244120361588372014189625806087211035242399221232944827106684344036555585890649256947491906257686333135284044632552176908672785357209317650224442262575607186995320650838245561253982441551639617026293686373535288795816342976406376687213278789749276108244608136437132793952033146993349085431448461800370727681308326026586959721291297570194027690917019403127001902026302001809988832234482136409508583609616217505895559992754049217807544804667331802862887122591767529373006528488947528401324353182392384856675746691155417519603547177868439961071728324829957934812999330647575982363001791939299766906516150561285948386822555420413009203183196354848963106847682908386154326454244691278483392916116579939112512065109283973270538450179579940866299432461619281584630517742197345094699676896253099722637251734375552432604683810291661470562449981879107143912513120846653131204205923526125649756827720832562885991311890681333541367494030161368448687109984776834682816583720881544899741746180577333046677790457743254705915359011380412952133897894408062117444977976251159470213323196104543714871784751607738222750159954953783607060958670338819872280330870914286815394246250216661945839402402566445306610033808778452819149453810329918894753718660931594364901156412366263166302476924919813833336138702354670012395690549489426186484611031205027458304985918514409993287473586564128164827809089101052219358485394523604890879793010855856855340713928920847360452647677508671337906849332873977252118993727439194102181630342157216706894379438046125494910127392000044752497707502098467817759160131206929731639004191641670842861457395431195804403609634995483127528553125323250927920352938797896478791611038300546612343766313640229131921035131127549510395749840153747756967496355785934831016166695473186702573896291451366599738439051575539065033141400761544663903035109682998675284802217196168047964103516364494291627226460489219844968454519846432133792802436516574761306273511025103738357839558503479308189427761735983318507365175768407559948922773672420958630214519824452952703469310548366589701444550823933879759696169264938179740725892532665543016683800162506236107329769677579557542372369233065310804306304699611415534487198474207378536323676001591348980205406040604110067636157823886682383914722340299475301004857600881581390083059598615877879230010885575093810602385464476549181743803429738635511212181642925765622536329642095661048767453482473717007065756044002961504794416454028703842160817160094338731531792701888078158483842098707367749089840906615204450655658152765486114851816179253622160135218379433622695528570566026129117751730720587713670079397015499988645759814006426453720828704982260999483710374237185539694260640667018545318867484889950070227210197332302921009228096144933781100699573902034940630510647976076695288608106559153073306050899725352907746016844959845847069106733352363742830833487759360459426256682724686514953035036976696320987197798450472999710604846833974281139259180860857422054835689424592159566577105988393381216303026253204772186324152717707782567960554289505345142727265512934616209726577987028213174742041241866849651129819854254278716768653726737915763272428224498356122280656970416083313677867394560577302312010809038940567163340578373468548188991828002024514437629533683285933913309836679019079189692015325757608916039634426301918436635664252244234562456452369899942169215720834005553164304819798706980163146214483810439794175353516617180248444670809611467989357692540135698662588810522324695376269465514483543584517071670383911028925031366831097629402277053235000877773941143438126845833507697021063666341647554705605332066148331789499341518906521287255562127481418781578217240961488392086071788219742815923487784539361345924054923938302041303993755175429338645490279974334097467114606348252250455742803982399761246937314018299563719764060599587359855386600556886201163772316902702075902271125888587234723687163901625468759229820416802260367728038263841418751411951261180055826292962648651632526329736006131267939448117945190734033822696170121576316388456711332098405604563598858692423842637467781483150501164829886173917924714366097421111016686265379117634067271416393222403325989505647325084472904763945143965988305338485146911815639413389356647458751784475945460447545003658816133842386491813934944030488627557848622466031876763572848950795092076728326388486685676285010016411614056142198623764624197501259430602759805909696455821372080037593687176321333191229386793649661139278668228408042738023151127948115965418263752977443099141284145481028025094140146374488996453494769419045710791267176002946774498523580242601522084902955720347756906581082894138090235470290072799466021699820203127302573148173439308069754348259458339516175949563153242785907640920793428674167721541089462733614774621961813315684289678015571077457935209977698574014161676231054032574797223124736448812866774405878266139905873711038789567569398960384601107114616293996468663477602775933727008770785297587186053927270708054973380659802044353913900760522912578958476540755548433262961423146747951396913964290960629279622967062218781300402597722286614628228290642951685095737994002533842180271251844746079908654771306958332858890285772769425240708770947065211807166767480070068396626969797207381710216895601724971688416540099465936083472327821056326210091085278252282938244852241576192822866749366851343620898109962081758907614860982582951957043519712950778905929850806038182434075553274549202718113604443781630458864730792715062599616188476278843320663472674098159620924503591129900485275940546457817694750290789364063350369710045107133738775789030758821599012442852609246606138561741651583322589245164283711494762700207234174228995267622606895699087498107566363795857896229350041940244099788917616943040187788049813538488884899717000798313507182577220700744270284129989947966208349606188807793376319423377584381191758988931157400941728836015835854402314634689139695799499387511872323409423690767567896127136295081790300736265143399276882014113863172098822819111424461304060220596328818097099327302860046919196900170766793967202298681196526624644326304538790386530847130820466745670331770965291518458682524087816250182250916328798504109945835779057879879945710165826055343827722085224342944344141129850609408707128932624530172734967514549403135693379183558089763332086165748677177290399156996634662876943332835046976670264598943774736595259284184679246932353286741243532941303584658834004546481900965396281984109617138281073709188987696004650376959126678508121039569289207110080030865320028540587396764499716865692997225976990775317559543867337044381537747507495893707443830888719046674114633148851972180051330886670358894123252158688320951411962412945332901085965663949081190971361777325947199181262274501104317855533116839187592827119667328803380034666703401339686821504496927287233149278336021605719593386694446560010682480519991290166347276937502065538100359739758006429379282042438035034260979154243487979437526644195941866367169258801936814628285074731185258387582115539159521406732207147471763856632473412636628771700934411763071896889940597911687975104466052072483463338061116744391208892515940123502810419130846703519094263100918239425430174895667618687858375843639679219366150471987394086174340649517591875523109849192467651396115683499375055664596664963788770631646268666914325518029804668650071957558120463152017481587854996171968509233207252131948012668989065589484825083862836434289990916876236395745509824221825431574737482299642994402622172450758513396150289697646827528520317873441617405470615753302163694054490755918058532232632059557211464714733255984254818011158233839860283484637268198928993495279000640578606001326722607494113207175939668594748546704701688069168013269562495700476303163240214139129686413506063222702108388782579622952645789874855648051934312127888211567457717087072577037363246288474008960471650194714984811885708255840888008345022179261781993308239262679108313543382597730301732202460529654303923909659734813471660466961771317445716972475974482707795290135843859477254044565423700712546463511506842249155746424004746433508892371354180470305545354857224166213491024563370472998181283013476644106131422066625793945087085079336287495781199010209955377952913233083620743637594765176099045335463642330427112101591499682240300749055050465898821604618586157110975361050237588934943056915213151596680695534467233777242030887126158900900702009449973298050391645361292730178375155520107966527751251900657087393655669982080195867798581927842367558795942083579525712366656807429715896835372759639939410793429135537914959271808382713614014439504885085968869606719935207412934412973021193151096522568058410030243537547573611779015688491524058124937320114787569604998326011389885774322446374001100988605446614248520666953203955434666684097529498380161231858332153168692354971851606823745764018182210532520735329645974582733758724517817661953291646049679145930455497823653391399106578448389438320592761412855042611734802114319960847561469922890763932721774100500590759672940436877965787859555070192432315566254052474593332509239063120689289286991566113660257311729309019215144263585569048513980730941002480791957161931224467591465630199715218509945839529188945260358228014187099052341669417041786414880714459699667116774812745062116198255389130504508047259891024576121348096981118732589650662507689069723146287888502765754675712688636068341261481798191348562492835834545514847973973762003327004344457161337937732004517257942534209013422958691281906550033170227677938649268698425754186036016660728673045936336832292475551803658028509264790634830841312429535283930853432431973363815906197663615604771331863038611546848779672439602260685397490079812165811870079826874162822053580678877194991370654325386108549461672613120341644076346901000796111403382493849882278284305828891229363354032485587198497593960909746529298381433351409999439415884440359435637685974278687388109416284617903889767259368332817337393972031255451510625618074568948968866870115744047690438067175030532813688490793038084724926287804026449347281572612699149505508184751901888026788778189812431026417370355619585735184856617937758564586498087785144480840900431777450188624392598163068038293583702236885558571032581168924257658147533329593196001553148314771264225851065843632002686779979681666520589292381774914768041737632149985000927528294261907874562897148979133343512398620117636784154467377705947108858260846217171580774355252391702947849392047876872609997159108071127335945949250098443649913730098052480579303449525692370916956911569647745591443822242261465202937086651809527736524841964713595325790906589562879539877509993230135630019957354299776636824872256663658636255147452432932809058636128015461707579491319966436146645779887229568273310789986779345674107953206038743309010986237674681220979283274664471253724666475967417361647952049030527745069546918535837967052609856441221741792387016989013866104244615205214758379425976523324558999049571319282684265962666855330680814729758767013127412043973584321197071035257684226278628264268176047256967129291176308409422886198443922316774671702957680144296094160496406909665356930598862571838900639603352570096870388810872257592348504765198264186849463387390463127225349561995662288901978636954158975932653379465744950147884939328891497952835048536404940026609768737616373059637855181220907410561959532469331866766807038168732458925334959957623586051945232123235708664069243904189148334506471210286302047971388910771991100664570989930623511606581765959019165550098787728013323098090096773211320769170283772103296299353738328586218395844622436985545806650668779907714319120530474963223982504447616567168848194094221935398822241807281981610670069811883480341633537643493010559362532283288536415215824855854385785128444866229438534086299580693149059317443969844451359674882439413850821104481162327224855859144250380614261740784670004643228887992227511788702714020868564380726318877640621903458729120761137991029063556625458507977888632136731322477384420555020180642769945431698996591523090365277620382685132685720978833944299219376585638095080912253708754995323935966698694154072173975474199172937594472362818779682005491784907890949575308324453344668305787034268339248824840056198136627415948113702524994789285172009538218260850533295696733194341706310382650498535971488695905881355290477567005881048522991809633243761259862458513496905134300990987047172701329393255301149243734871066467789842295805296167030177365251225058487874661833168689360990396025147734151964810720545530972588107575383913153009888110782008038622587431945324302202959059867216912036321640096962482163116980252845561213914501282846312013720680113754884850984388009282276749201971868133679511673558225146268418076792342531731278064054482301580407899836156507068013492215928503027803809291133903942194296642694434865263407676923929383575497246260253893701201397781316663690314023212263294561696660445976489340173105190968528001603185883943561702057957292775698948252253998859371209380960089439392851135356396386954561557516455258929097619754836936976042061404678358811752765228967780542255617365660073543132286929937400557702370718666296983196698650651708343337165014863435643654045743548452420416961687587904057145826390299419580811514420395412556187052093232281102339619089231734167746957373574067291982063629227580301416288621743485884513756655677354316395294577354978413672838612900907412321425406648128140152517306919260961866485375226786474358962910121457614628798452910696136145337344586986993374920787321334287990378351093993803764675802079182016735048062516316879678849964911751110820020969769128360966925096484644099685136332552119310598499841269122306430041063327417441309458754419492534224321555255840625687073719017162303020230120938747586961837338158645404786631750453925337876772692703584910542846001984970203228603988305286512463175814774539974706845795084129774705508704138645402876624408134087491644963352309198710007292786583913042654507687162566928400155401085451675719429219060853439820812583315529624504575245131988705009013596429022296568946165795087229012571157380035334018931539511458210267277758932677721838874483431720542322782733609155149236089110624467605587260099712735667449625146621392714542155264218168953563531526570108515076821203543529304618364281802374303385481283309787673287827931026009530199372887145956504687462135850370848408142933853337041603320104092841230042262597221491659188252125954425470892032148790601955141975640654053941011579862323174008473613821890138835555431808570970610298712907563195882858575983284066622139164845168076294716812384614271515730931159971830321784793438943171622448323553073560181937511229899415460249661577884630587575134889523532860293423022009370173055172533428815366160238402917714435207690231078707096086231172763141797500750086822488279787980720014065526208271700501870578347345606409175329559204842266399229414404714131063783926120198756490099061562259476488432504410201652845585891930731441983729653855545142530802735132287587137839132369527406703866823063688935193847725088064215902787304541826237928243035471053686893929283014254216508652318424620323740606541425382856824345420521070835804354340439123622258506853030985870161727295575826622565116746380112512073764229815706489288067507965381450209558909388712505444054340190723444670205943549379070038013958694431613117521151059090294841583087423267511553713575015211188811279013818575877886388041872393841523089857228070507644458651564901215056262803720650789777320577398198602787688650532675576585019184472642660126586966538537621451217325179529401000652421824403306413238931500356656676496681535682662676679127413429933327458414700882635921921443653765681628592052751111580001868525207633838724434782640194188178542439481657512662709225567743720168855013302404113556576476291143128430998535794497984757687487497751437636119008888520414223967977611913699588033506467700542059484334988289016060190224564486355468785923789683783918756745914298699383742666080474058125799137421656087883398379715633568648689863806517776163646215295668104283908474297537965716473785883473147002956247106028937896985406781928287663449979397757754018267962094785298388350229636980438422873839074695017155024219460460887916012238001587423267403199356106135873080910410951368243091106779245033262970844253341248392862313315150176840740296270983941393370470647407095646159507815335207318640894440480323023954528676050263706318739412718104445932135874656895968561014697274089211266167313355213276423459146038376346229849207146180925633755976445509048194678638523107055354586718756870470500540478331676352235729482885212681441295752806617545288388248532791851129971816522510361120992759156810259751403478378375522136550035880748600716030249552016604619077493021093339469914273461046684231411160369779540847225471251725252636160398237369613195352807502409164104216828228941467790837265526121298421692294458754864881318582570855141651944251931149521959024102811032993324934074498223827702003254206606407694245509746016898980207657317835202651429598363122755948773711898471548519512307270510421050161459635930129410112547597355593252930124299686784284782835909098995028167581572865032126718665991241642033167249996244877820968445228170966904487828901558807063698460622987976635060163321479359021514400793934094437383063526438566752787582053678496896850927377104990571485122439736232746608557222015757062794266139194686260017674554315275573908120479517984839077490062076406995886815795138008142483374104787517627609890494732474442224387871982401327146401550518901980366606669317800119946590501035380401722281076354090337116307709232962679426645389955075182528171030086194617546462947268009177512471132006838104183034441499264426154835786031206400817783952474490703096032959597404510536428884074772961447498577214807782124650309203780463156558327772680897681076890210391987499588499752655796189265942145281942633898880589407229273509167686304518469219562603545317186131494272062214295723711128340449325568444041217341998247198449664800104790058714690043154398038065249643578195128464161931062980318268914009821497387770659841427791062904147237047280718494148024000678953777885759513856294046718522564292705399746592018888077504279953894088578271863639880669434667037182656650892926504312088949282637259446564476050317097057549312634824286810763348720495691452048457171664312591904312556042211227931568776625627688672818662580689001203894442013695107105815169483871695340592395085668050237068988703160071993936871242474167485674174188554280244334902016584809180909248372952944569289234581943998691501386907687016621877335777877255735056995303667556658552462291472396787876758570523986008489964624365035435788343116786831499078363951445446595144546796724329388444067741547519645385732881897066787666407490787916829560722461206084614672262068840679501599635020155411634159432986461526771539441268097942195078810982039728543619611762554559063787482598953643469548921027048967413673597554135148755893793656901165684978530059703454700586494232248686248016098020464524587934074297191423986252774023915381403141395556596400326192829054086416957881964314293624437269918501501095324658400352292984329479166165275615681208239371732722066580017052095369626748343670744112525541001707556289584938338101001277270466294195683236693327197362127510777855078008033277239177930058935953985485301886470681255372733253421798978309562368377670639654696163342292535249350191301769219344000763533293801338941732651361610345833097152764348794444736771049178552187116158007610547880357482519757988163879010829766711254543811720785750682038997666473230526748015841240098798868508283212039542791242478753603438987578080530854742700442361982698996593110227153382335418407821906889059434355165420311231254932031063106515008916287668130081584272082263906114725266074774026708953738896285412221162003840220406590995281475337128347043294683349609347638987299884129881156620399329638929772324411601342165131754539028167464212053783960881042536124335720847850150403646390239660998436855743283363677456694441955599990986806692775662313349806467911525024213926806509308673037319589592817052423022871112242404992539961292179043569604260191137411483794030663204007290948501920075197469451836892844256010201389294105664346268173825420724477957499794911901903951861160198620540692878915021297889411396045079862555127239119788745844975552408202855823747836037276645699587661364495229588130067672207194135383876206452461554039864025156432534617866765512031052666099910765915731575308991087523505727172648317104066284431488114385153172601670970485678872136810805613412029084409602939175608967665848745629836665734902742041611705112505671457910134988621777452608523134397118303526329599646036725997873580288815074118622744947466458303929158113098619803244245444368962990653726806581696430992636154921601394775036775225476881013351573377947954073663351877218709345287324921752584249322139980105451412262755288367824066325106368982355827237276089377380474934871425100595868111590577993053448811163967946015887673279148394689544679957808609176664297636679236987140719576620979646026061722400965083137239073305041024564928405765029501802997776531493152012923624320408613534927444425052373765386904045165188593608659084628119527276621538155337938834645109936439948126017946732397747070781818193751153847824964958488976183045121051086305374289123491539406763085482522620586167278271748288673057332894566798708785336129636077606774379445724205155608491322217170790464308731405796193701483187796347934964767903405649154266234952166582686426102504738521734237497702675430173640561078805763837997697040210699667677355784871687594742315013884213363658481156182596077467803502875204532441512344690294020864071286145922334450570558421371809465792994419830011896563459286539116798807688484996781058099634760381008518315777330122898347746541041962300580818200582360985576747778115398620370138873464029683501330535540425534314318745946637778466067810444443746847645747570816831046572532562389876188335369011913471817571604115875062713110117256701211140031450857485189857882666427364087041725928874650674810975726803564112930483511692999616960881872128749304774937012953303978111708760795383135294012501856139610998451414476504353936137343738481710183290897771489939352876273618988972760330428845732317127375270169129318393266427484103668392376338258108941971329567305881389559270785435485433408247225398966473661873199277117691433148467148196591685709031508442916673406577607047632971380418526854077060299545894609109674550067287753332714465886044301728559196294949386508268233643422265307997574763100955794374112984682739236128498043815020278394707928970638426207666710699593680545769332307051582241090526928839770011092828292699588336586680062148656593713856139806751121222494765624739936920697214980911678839486708152736521845156653590507134083533339652481779176117339344864886438687153261671868247494528143969204521409760007086774845410820693283531021248553136299448840143509282878074773679937246039388178757943390480743146719584087374078819476423385569229569764263996677747722174013586387883324754385392679860506519692208461124922563410930198254689480477853596882830847374589294023972785531760415686760415678236314415526550793991512507388648618457732773402798983783255971255130517793033320849234895148114449363380604321211350852326796625239345182440830997423250399530659764306971257567699017765809982260120549195429600016372198443739199617624070154910566649691498522453763394716526650843558368569072331145817992799518246977637593548926056997832894997844625143415564275395784218294717558810160409539607407124074909816229391515788363321470415674165710761201040536972939547738661528503219394838258582467788538384454280821294175951739591473162665004998681918545092296499067061097988011076917114794810619049210880170711847267869310465841159617024735480488900743189111278923692884373201195096001057820529072576588927106149875063957022867545861836283403512748837983107105128083367450840126807425621561998819242267441494806250762816695961079461135283059121395029532815913818311118226955990035223106274795047058171914969628481281846589513019746429384054937935122717415542524660346386365766619537471258743067877242067953396358267855103275996847981248013067859254202818336489145639990165464128743216502558717143471256488137478286590177391332031075068180078898317837633493610160810635796240132227669912852504782156749945966141918340416922297552816393041388061039679731982123788461448887744870773627084028075343956968703067108844637910894235272469024659510968452459755212364760320380484090259454736984461718689460112134359012127174807203241493632204608516237375302576068397849259574906743572350883636032886225947695606980632370793588611006099908769231461527627317523382115299399103313029934452502812884485976240586609227846112786604968978136266653934549058089294595423276127996771518128747949173282291745997763577173311089771312643023297121660269854919201848420129642078297320015287562193942090611082275001104433256827671257244837948384815751621363464185555545181754680627653912532230062919271740841271857329183316407205247077051876121966367422866054486027659008704851644272952094657463514707427366432241672575517081510899133330984710516842069911280809144104018629760546327877140894525085649821665829211540993063195827426198982384108634814243385611363414542931637515306496758376824769341926070173136544567760772579110183397065870933799732024690901493327002454963423344304660563308001544601926198601791789632143106139786068517738493456646227631451997150233847033631446462544788199739283951588237226661969887741219409929258066035298417280648324275347946902464967125932582463077779960362842246102447397614808739618243710705412777958439642050944484763274508315615264052762103616759019116675583508974754241857064554349806170185015465320167856155254521714870497153506524318049494076771107103063131092215988047239565719020710599224280239604220362687294559908056448318086019864979137911555136931689442159388240058126766662540480434956252774253910703581954893798315614725923096272274378491212993701439300532015362852869704792441301776029417761294413523132663126972056322822197760118304072094403027185219936123036315936715451370548660265571883748782782693727435501368560904843751029010407959383385882555227790815304071322965999866842128786763314936542152910035455963407710309799027829135792974711003681704270230402676651801906741382510969976840982368687047118490159123694800962042643548146294119332185201725929279557179186994710410992870224189746025188490060016493236338062043154422636538277255234329137728756835063914871362322493111446671648917227027382336057633318582770477917389374829087706504121817942567984653928431812289483771567721738786695073188495910388817941386536780184537656067167793736095005414251588851706184889181183924313162424898775794006152735710750553098920980049423055073027201050548647356569713966339330973288179428152685092363928749275609600923303623224128326295305879512928834592583636502684819771607225062525918616745651799052031755305786260714004928172782029179976482393842183093115955668900561844919227104470428583334592436254921321972362057326078554531193835385449073949839275307572213389764372641667673907511751661591978872928124645454124355470349062005769168849856036667518338051207245054596110329082592061323485569684539733466862901561850841304927137284529880347482094368717843001266462931381805942217716340357268746781543638817858690636922146234180828329129299429128944371124182514687563083532120541931206195089758695917309509869090594282668744782586315201629222755812120833014319522329711097889370576130229355466599881434485186989789763739728067210663122773751546703776960541914111849618438826212854328550078767320802178141107668185594223829842848332779223717787829441137707067190344550286286405906452047763616609583444006091745050545368930267960795511292587681239379178910665021290195312189216082392199215499315076669641566563504531662465085357442984716932174427711555780208843194564633129578225541220762683623513438740712161285717686974535371866345564934094287821485485809013137725886760688543435576076186893739744672068659329272892003466510015295448416584269108398340011717429161519139008697278039926439824040918968739863469344277140898599695070919908154303249600874808435936836281734127897600239995484350039113123674922125171631358059060308819868967435315743378935391857308822391030151789866117079963935190221433634256312835943725343667359775413184984782638835041437319544270613489382580401974286504801709200300816992329451137103960884246427954325016593608713128024590509951342039167497086625049580302432156214569067446534981205288454080783027239749175923071023983941705533339061547148237222872707410679254885620107167617658770026980313731437151105222327490695967834692324106118280851619565092257597341034617242523611863162670231001777536615342088125413048198864048841016585333439855280335881226957096195002664985544380049122176698271386618745780530190297961213590618336214002865808550588066136797931873818024027045828218391870192155790578968220315184901361776030771166770644413625549875970632367878324726655835136921248733639887455231050738835140900327372641432448444225002535619484660105041290548674620467531560566934997993490296719279069786980776286686076280704569236334490471870289236270573574284136275607385547163510669035675450210100866998010813848442382083586699210191133670178040172982586832023830588864298567035733015402128754297545915961733370771350598937275885643112642021886000474444824978974208299312661213918998946783505028390441687512565986975890600839301000358815598974941803687212295440057695717121726996730684396774407565849747188685871252459247297909862457691122455994827393344904110576880012224017461139910041177108073981002996775941641712550916634758650390076591031848881227272757368376618568049395813153775567563746371052007513771526156050023671792815560016624127997918222030724989680760704455459909300802954428789168671855668013324969134489131801897028934007724436418311917604934067175859363569242798980047148862862445869492831323229732488370860802230113593992706331492496592725316951744466717637499800954281787206696383147499960237750020876180587186720420123119873359211800522471596354096067738942013893366699017363250942116310058217873403703688978285880815944780344989201533195856031863583943596051703485503666713733601079194656529752824949379777670796895424534907265391045274943405428603123399607432491458310338290724997427028277094198914643187814682130448587342755585498360791673136504657142720537939021920228311620030664038977331003778854180936512710868266446284740622303428715982212861921119581270604670289036724778168704086703116776320391531399994881842015157982418013232350187105421068787768304213176442585042571704350939826062964255034807535028671471967433420289311824133164143707025234962989954116101470297078618682877528832913201268814105754078181809421189480658348353928084554716739811074713676632634263744967363293279615910683033175803846413356458808425859819421172282801775916520124151787364227409870807383904833274498532899986489372547207383478946629103618534859712646201625159429540908065100398435533300053218336348805437831310285654300957555372738839159214538089393738858762235249093214849150906598773266918600779695575835759153821866450338334485935406740166908164895182743158900422388507585418742577427691436715269273810658073065199076213524966478255033518605397345144772424171587763995894458717158421646476825378102453222218985256515215115883464316204398844188146964567923291625390308996489735572475105061268030459938794183841722070071526682578018748704768102716661453612225951681214983851494388409828939088181132966088515576477987324016906250320246637329587826091007634157803919902886536669361599667079404136741026832177006329047004267478192947891727950274377015998631378684344871914861870322630253540009124527231879500649220851851536586905913093395379482610771574614055528797299817434329274632761358379361183297689601802220340368045212404579445205415439013248395902320133748530309902263755174026274800881834183354898875157274567642360820334632312517342768512432928051954503610156416641187766694295908833004446302741815098492403275503913309137631187817347903084562206028196727876123515210273265737951574711823644388816477832473693951038486279776584785193779420582993387145642244834158388274445795089610745161413885523755014356541039787972940175599228439560173661376868480509880517009941540764972840297150615684194288918091938938282930792540048158718573198020222039667640484770386859118262075984410827229238630004822646324794706015017842466044756895220336960278063671816142374579342983059631850135351010692209239612952026687946176493753128195714634015745926736735234201978803982192681327433488726077133159940689938958361535984001134644052171087654678450575008173025827652714285435844307719690667250861670705692231286478394362477568553925757752175398490116794179565244816744937799154622042076814951586197670699642321696270012572423797382590892458362535609409655750812471057631742291961769002808851238920319517136523535055394206097345143058054544964128654636503980296875312873808330791765916405502254374055348046877187960027402189330695679811687861369423377991765478006296261762562211004799579306876626540602122251759476488541421367874416430651723741879061696382904612781789475571335446247871460375737677188532327212376336434951362769137401078287366745584709173714741441697064434617100357963130251646014378121615283214330585863982254381943159275383721646635725887547999907687504036887316091611223142601501327897628225321324183296125259078156407270280673655687677023164272179096337332543331359030784476039793693571727247040304881205076789227968184179207430641192260870677154978873289938314629265894728733067041701111175548606370109503054368244472941799425795199647351400292165021810254258907774576860553605242806307231728228311623824908830840217367532148237237013645300934200528166993569316155390135815537578427143620498746813362588558585313955193070777135898035646567774534746235889964236765600706416178714081400577653819653004477737305974962782566040017903975315797711186949915484427627904823527323399449735045512629867054153024173985352349235436033194916544169367034384068062167572176829166590219940048354747976922375560334807651698452757508293223060483149459637409166461680912277135771663625081100535589864135344479667418954701005475884034034561946411486618847696123568921293358513785656607206919225816258926620773960009794962058621242277679401541442732618548738597748852326425336165786453403339125900951928855473097141835742429149956353273727489259263307047187522532983423929500995746454797567510599910035170921092941572578673856158999401708216246399593547087920223931305614995044900486291168923665241220291953796087624922643846627967890566231386437405259274359742003558975512333679527028380535419808393881990702153610562159834347898649406523706874569073684671469285200590522076436088839106499008348668697403973761008821125191748498715680306648934272989910867941749975144704281064865944008450374900504259295693780212388938604538648576243728039396304963730475163981244036850611637337362720216101499123635683794736328584113006878654348108142960870647956356716683736390173287698591859329617622252449971520871721967212606239235364571755663243088177700499134469441340531913292256598332961927156286785415477649992424229608356366230758277744018738957999422550957132739300415838910417873291858397673156844721464857413926183733794867286703199522948105435818669985183956368246342247750552571248091573779523447308175482331053680026525896990643444919858167636611250675303281815783080017665149676296391807601180518751715111929878666690270275152451863773700818642442033028162407449030636451266019523387626747496027335429116229037634417445022944953137125963946201701712133284480530108570078778544583152331537618061430514895008671972261752636099398387423236628398543068847781508364125411523448942839701222822373862064648899426632122323191778514849553357147643402521531775461133678660924688760628715209318397737693376107168760209682713069355131313317250533142403889751710623151502842516742248889545240021472440689309953639395683725771259326313109939384480200855467848063504240727983648251887010730079769302627211187175491698440832593456755564199203870437210684184780070941023994755214195520950817689583315869057704210155535303371993170310114296093801498755686279679397766406998560494275831462417023095908968165821217109699131323032390300885842734306177081390437788834251695551994069595314889192776521709366763410252641335324924737491709709540157859461662223017955160490761349719925425666962072159607072398058260902219185888811730816839395788640355509891874007604080639327937332086531997542568772597415913901707452243372141272098391237544468021575046752237628124745472574999626198708023521593868535722934574536052222441692408501223798456374010399141761453825037385394391474348845641686170508979107601552485264381858366567412503698886152762304520705421064525136380600022647785558286651875652112485772882937313947187026414061434613567112545788169792911227779106731095619683434546953252973906032057318717065471251826923825608660916641881985820860607040065938740568008022733719589121610811479994429316386342949707494638254833207041610810813139478610123755711056548493281711638493399372153133285253855739252088111822177759057016203686905863487710879895623152530417720453944305763583678140771097416075432872991956129492655577390385436078534246017912417522102491003709301504460254809306581051534402483313626092539355344321019231599736198670829436070523597445885638143382351614764491968252217322014211190395609841576167009689920792461315522578684651617126860018588364087170866861229680871717061606756747615062449668105511613932648650302221245906363125243772591734967690270667035741758722344901208803884616356012619417022003629908898774243067478334838071995900240634924795252825871353979192326822982915435253363703143193494510619525166987726355108000596477203720416302577241082970885182858259122937636326726187850453714452895425846507112422792809030339692722522541318749447615614003610394186579981958381881141571547868901068756415558741272909321436756022205409722851496670236195359982431832545481238044977556643305733031945128986122815095564892169327311783539428672813625422858777444154809998199993759179411896766923683777380945275143264646177380954018142581371680931036859572586612967306523445247877786511808285512548342558861837333258183725891240178486022933219279291917927080665054264727983867337005238772844541499702518429526077894684584435949017953835077380130839469643486531500927074105100980868557115098801590347656541779905309663517801826250355298241163009901743233301254820375044290469842468917199476770169641024571037714264676586509695293502490804998071734352048785149796113424077510895474176369575342066668951712105465838023591474207199562463971259051441430435932076248394008285073416057315635445926668317081704620880193530343740547099491258899789231119466930264635948117834018895348786903588265701413836824556913860084605574717927378797478961120591571629409557689612691961914970319603411842860112401579194420566477784402175674018351476698212817306002285024019107390801465537852827124539865836933226172392469498788580444564797344404262016990717298340286100928323647141786048599788952649814669220200884244337919605386138162889530212902546536523518115792094939662313605711600396098348493156200662904969422727596946355673161265603787882479967593914981120816802829726973792676398485226058980096499009418766865003656278149307847073498821706898593489174969715468798019975737923014092811494826092828761656158034670148932463611397501559093336870980260302127296359593926264142629276774921612811187744913053803942869396252058418339904041710646472759296373621068068319756724305592989608485715969181613762938708299801955838328309406531378832286237675204567772186087578448054110366771329538738393295741780733701449164115072005347049108411965579011347362076547937119052993113658624603593821754785793792619559346284639547977639662785070148142555213267447183085218200600954988637120314171078231309541342728323175718146596000356517256332373617220549367966394021967587430579214648653328325112883367018502940685075948059034264133403187763729942910292983099551083931314450786873032464859365651424556622772185219218034099570558375844491116320031379477889148959114373540962795615615512278196496419381020463395808539044298796214783607211147985093223567824296014326737788636491269874987529950183322041846707125669385865364707928604257842166008453511511361744909877599660350940481463408446396535872680558841155189993996182710843768257225250371948990967646998046850580723392370443814056888724203803072771977982027880380013122521590428834559012047447771576805191763341955928053941366807249659263831208733478506134442380780383036236612523816782933590080830951451031168979313302287568067915290325878457306038771503077572770673022912137016969702891817189497703521263144967205723184176909113420302999758707754002888154983225514548252550833609291343641149150161307822521677490215438877879543354357154794467515930176341428240736458972662145787112853033621768029355779812280671911327225754750477535009543184212115503744162510039857698953286760077531913601534378507269956585138354762651712462338607833353295649254705135660459662918076740472765437567709898247358399904182999512189132779555787325823773301586400538450955346068434937577228169120437240118504087623439778001757917616750696606093990149051800584625275388375864356697788675263656847632857439909666737046568032783113822803111375981265520141308377750651095670744254290182751146493029523124741648541513449914706968657716571437257041571343420811632262999388241632624673146604250091312492090284983178163140132230857627179920732669866975615937943349063669526477905754249987550478346811601745944296198776339758244190719284227677480602039457509708471073916884903572497334758594196685544757172151419290846616459621630563126300084658051363068647464790813181918337533546217300101346429164799811220705498151648195044486901409117833476091817021724219248598418191425309530518421558728436782580792868097827975853186038088989528280811937828522609896502922294521989054702217151024022220330859818663516600140098354474917028560591287686639999539875361309203913518950150273437136262503675292027059877005091871389083176960815549851455031440693859748173421999794275408315338882867488333265778426436053914593839673894568447165767748954992196955260881874960747117259231975274165905306897977040767336653390568044161596177749460692080545181797313040539845884191449321395893543535568409580485541516827254321223561516242606222965524196484978001540729863442627208123081766611193083677539866603343185706849056113112262189708406427656728069902710923775333570311148436683800278775137902618282418301754868141261131049893160821835336763251423961384456558508766351048591213849090050240731617979911133592607976131836932254123363584072915563324533591539422867750642328983190794598068898241219638412306812914405810101247268711574723888484783234216074077592783521815451740136303796081446865420753576328062811482781267805269170163393716673747251808003126927604059948536269361482782647852986665888066876388397592226405811865374136619035510078597454345596355137048867677949662276296394872235614998539647396705988876503570336018675574568256947992132821047391574856652712198236084042789184882258204552648236653641613215962366886143143408542793467743538001059439968002078637992200811231408584511730102596045699173470394552244959158981395649696708050617427223695885086022111233873419077718674398303459885290593577644784667629551766611727895073531225207672536043112312894092362209540084321786064338415533771837028516722108574147259177464887428511415850071684027693773592357123051513689610991060914333145841930814418315416471038851022443109949238594582038952486870826888650067958686832327595095372849703722290119108649195485602905264217524146129992615401290248487679690572621723721378329490391555111113627456278863174555826721428532790740526745333222054652144131335849518088472172193242393345930953548288450967774722737161729470296477470711062155403973307155814785819244568219211147834924061328442838466666564691417818904797012053489724164194530663790816496056863470484227155510239230342955851421830657179648453440293936822372113144022312648980587580860354316573670524308712773244163249722324213921977850217045302439171741303123040690153345698812973899024944282223952093205105350762653207524927047443937854416816929990290706208056604849758446637300262124106537195348061137551162401524549068094833317292639286914302698509722352362367030361944580285477186712459689709846453202940332946503993356976358238705689829061625599923798847785620076934538776367684598614768553529169843429974964157949960251674009426754931695154956461227714603363911626529641182783010262078398014263717100165374096904738898913481904199968981274588808850125635111790430154452231720935634149860502614356838006839188079153169078160764161262936934862722737731279741825395116741848359034621506974011218404790638444609113261443008600601037316013127260937581072005231571107381814393314819347031883714554789531582344328566506892997057348961393456357221386230472137578276778648313901166071324924265241853868239659933852297421370682808904041891683239699690583942304678910264112333921282957186462563585113721170061131497759625240782307042210116789595255121025670844274717678528141340209776699152437834049253799964137802212261858769002577636577704515318521146538033147280612488654264347995720619343954366493125897002192245916810717579984692870093527854200871430379258276358132240189917747329890808112473583424935580513559266369050795489324236241687322663975455740890760128297047684021833422675635243343885859762925959804899033970343173650109806788942271218559280227674663556480670603157748744929739882894586339163840459937739068490680922753977633456903551559421338393974073056930050227681945741087179492752165201827915154325359658896214274433388354214003461097120122371948593630999002993790000570714879694516530299666257376411488098730062677801514105256665232608817935985675683463997249237660953341341847770339979434362848661365486277570217545400128088936216694499435004285896496988821216695281334131638618593904923371189243907725822229390602592872157229277899820045938401004086910376998657255112948028545816615000538839570731873069763348394899433244661670437228486313781861122075480655811126161000234206878331994545249045412733556656759476170708823884213833421512768570765514057856088077211469874315013901479597881682533298406186069677502844407856961428883153422892823598257193763483987250333089771983935876220997972577578494118454619218669716413721686517273989430238817026347046202178681741325305916730095587585924533740659235438984042588949381687127566561593217794802810083662422870148641689910082894203943826667704410963932467614137560144520509820482759512286131859882298315140432683147971768775659135536980061400110928744333917153950638217150816424242335794676704240188294722173768758650717951136581390790273997610148231466791909430515530300068003238774958894920560267149907169884849112843823039551282290063199270951358104540396342327106320554870898076303002972820699920718407633479330115151744643154747958080733281318908048549287770782188639096746859704888450098293591962998442462384720872707902680402640572623083190978744168132192869825169156036022711484244760967994259177193121003567803184269597196896760385398050487628226395079833538398220011110822470706584691943919940958114370047294845542568877667226929748456738178646967528112631550429132964478262060350904971977808474305444332742888172916320814819064320678002852170748326463719835120553907941254872359949450454409698924102884940410685015359818920514418049691463964379974985143201439959519531173402408748273344822634430139221597295259605620190390042707802489408035454683609549153177527294358093249703633273440062411615235064521896508681031751458776452394244959408780376879436194396363049323448749653591664220014146234671206806904056621142010436957534623848468218981662074292537059309411832473214840044392042132772037220323900502478827301324123759531084288348419991757999917060722662890025889107806320306948383642543309754612662135049450764045001331765954074558794685710258737543401579286922592745546197211783328526483387112767156019070529695226748754423727780058153170441736354502453191680341671372963539528767661595663280654459932625869886727560230189524058463519847511881528646865326785581863833459805364167605119467888285522732618267412431980857867079218242263133274375707429105741431185847695798565273052682226746747960152204292280921744155172614275399540225316192016228135414840279998343093744646910709360687619178993577901375746299262636184604985389579377883689245986649268817256779609200374891966124463785083938944151925987435271878398432105195393367147659395495880250545434179243276778862566066449610588192782281658399701535763789524306165899656542623362578270969501394039448134020773384247493094675154461417855547631027301146113174513061220471774931371322221064568398955858697670160033956660330900804022464016246096158271286219590810035892347924852554022054185717416738560598511395046591963893864379519750809447016308520532158770356722530360192623746173780240212115250192615931903647370310473053554141707940029672249740440325627229641986142317095852840774437928044993186821669681300488654584220103469927161623635870310398195466811452912615832931297805093847446027252641929091699592628455809188289121085672537437157027505045204110739868492785400916267295718448938908570027163773017987437217789931058492227763467304948886487918222505605540880148822420543484388167626726909905693897199136510222850801284829400959661603782394871741173723827398181268877730348692810040392453109025456743527496956157555789442153542393713457502670919915096979922749341487174932594497389153935895423804938538546291339615045921032857628261621893256580010870355638885976021136800033263877432890824769678214706089646757533799342864372987493808561827385433920494763319433917128461961477371431767571730250192896425601482949166075141979039646052435959604999073233686348277102932245443758077653687078535059314925046854092209719516222871593739907166280259892367731751266405476544677444464141704822388634190363516363763721117017858263170035800403346127785099782483347461033488576218739707459782863109676141244164160765118252348311217005924439509477141451414177365822918051634014750599648629304902226079175712821246464013674412080989311935488517690398022112815091136351973098954205049574415448141901575294178173801579872021879246165284863344351355338409167052523708165130972279868719161633343917728405397964300145530168250600989054128790365411637011644402511420754462333337018074743544448379260905921140234125907638326086452630206682390139360134705656383112314566600622151166144731472852309338840118248551566739354468935438142888070503302543572630713252167957318308958491627856702171591519956331187999108771175568306106806586276592401230908804073023154274151951038716095065469692965910988251800811109003697105913490570867060429527088092441312450332980556838071393998860194949795427164852316023755739199939433507896535785504029068894035357279789445459771129042614852177615069422248726293239058150865663060224644048395466780577414034824095230591113401941126340227716340302858160738043809343001326849958817098984894706443248929864135449449513596079752220354977806705973043914888520704962608858386237486405158726429083221039490445549587789661865533254153192904518513015979394390698355963831478589741786115104839640376347594264531056203659718779004292040369019302978272293991389813156326098318397768808218101532913695466445921463788438651818917458090366382071584448191412098028017188735933045136648536102339387795483653959594322676121579858113779495006246645303020857163284698976621462705618665774901785903139763718752776688241058562486682820730708419934723473030284440688520497585912038371970545965005755957359242939748977863364280187544206304948833912176316022272906011850354913338128065577749250847187606213013527623822737306671114524917241114170405235918906093851862282398738726963308728839983326775583951877325887232247930899940391932000453432810555629197704464640859248604050409112768265680743240386535275576918617201283534583894997721885225201443969793813012868609701461795295503859999866707798257485015817443533792632116650725806337153727893695096525025520233562993934520434098677304771724953341399415863161790720449574848424411919460875399909107292140168836674939387373529779265576815418375039510629861308688418719162324933814941345333785522111014817764218584868617760867081572192615115030167969175065448096985839142247204402522885141100392411728420390218483902253483574578305471781680099566878335366028854027510528901702326393898014230131523678488250437239138560543739147318333573015843179415882336222894242895655058011422592653327645645740858485809100013136521188890672418906333828835908480104857050856747293739126162336096931111685437931112514586581067760430574189919068624799281612966057030280954165911607853446503389276552288863517206562836850607499976071874931991222739891672088784426928981030562274551260318026159313391029452162995224804807950758282508415700689145981724382262352379312412446282170889821975578195622021071789341953038704251164193015763101038264399529793339253626466804701401756275193625131819021209495986084912954297391992997925710102939759934146452631325027130712100224455491390548437981141831482293300196771666610909325040619750896569769059909553033432909191691044812230490040422824904172931332229206597762767548941563505186701100153750820230025470928252522472127941638256965115798305451653921701859257544111111637682696717846231689764014558469699743015231265529754363555877581908689545823245579609404963190332343756037971176923762745234618955227658162029159579353354088462327257853994241614511525246062321454197269171480141756387835438064079375857533329566471702764611690146160632434023008876371046837724561077823661208623817839570249105640155381036395804122231958447671676406307869457913122350109187567999408668196579238201883883406581946338371132096485079179901320111137516927701468094807024007180566468590126758065525776107012190619117512966219061020269769492271081602870242556269150409958687504286390643770929077679868114561346304809769869197750282282715059509995236742126414367342522945684158596631064367024482684076905927699126777491771595527843727549471301866413263122701646132205416582712158302345884648586058878570990522088054897172584069893584528209210304841988043265640403596796551249602479498024652558884041022889819024368017344341022801355973050689473123574624726214310344005593613622137864420594055142803974158191622196204281512475632552356953053120467486117644893348855913992818092470723680819906446325597163852839483319534351470809196525213111805297417520955017985176077007893662591189255545579310669163797150427550871893294078560950748436579766103518581512212109529244550910715150084222873249502771862982461770485880525308164471217438273229317985671639870804039231161257797346856378739733536204774622190238506649933151028597491422421763723774517977130660761050235559704510154770754925807604123069393189594342032731909859330535102872675881432430376064967230592896805601112654630868554938175723660601650491617738055684813015208390344243902247794898722652073470297385506781679122570513006391071615106056459319024702539252563838287103961045693810937158912828782527322952561805208809449395371575498653274661128665801787684740720442130465878984882058904484973932710756238669267173032452638360870227152322929070958082013278013502094070423032713406787584543687528542013958671755975939535817419358096131581357031946906615751342937288300976415058716103533517756571473987974265701540920100034490482848710000937138748778999062008798191357325643251706297376960553327537709817807475367220705697759118562306496105206847731647935860761369323378123454995693881503931987884804070843081943557203744356619688212324682267493480827282785548312989313294998215307156557405162450034188916916328209350517684843081390079829159380116283495507873578543691079002155208931809485158237934039360833311661998646046718952537147534083113168478469717650293136072709237467427340443642341822977187494737438225311120474821558666379970420543442476826510197971008658802592511151388353362186670997040358416365403416213830513934272409545900698212226758668386476064057370876799584755302643355911796853066837044464731296362529111580358603249435892070902296559405895694486074693327609802269246023128152189866918455400752909324590793610947454164156894269907838288557875349584052532551170656691725988624309032270346920286394600128982735229411005501094032293534086072512471319634494859320501736831551165361726833519666441925529500244733114503223753370231769006939069973715853965824847359663833367928539817012203447664915209214333194704809650818436052644494491754602562529936345771882885576822281237582012570450326789796299016072698078909566608581577688679647118151611949155265041303690632062130474099297671313044546899921134441159679298582095871449338357551004207987933436732214625240575601626497410297808622913580565682883790717945006871783091524311240535770293206396410968004691697083662653036646111520684854240149270745928811682528336259213219766414992702177127562912679614914845747708347701654264947497492865954531400039668663089399727992637215290651731111978348032389224601397050267870182137779854072747684455756318791982543798180043379456721395178667679433211528394729457020537434802032344753744725654508675549447117626158694578450575202058264205017517755940590930263417753784324630548399826990372729416242812444106201025002649705948992794702949098842159657763512466282337510529917665427867574814340251908319910572666994562536715863139210607782543733826430263980472572762609835293037389476322266408091083130165067869458032287205133271329254566885432418511186672588024966483288618868412019309052592643227635718230435494252248104799617108390328428372458208008130389263555135680525495075081445054514999003759799196092371567497900365212365124709481651098357273364237179671315057222292557075562347931849010992531238384728148988749252500761815888951721983581655425840271783920434124519831670679529803864552032689366290028172802729906723702873659762841808137089619645239643231928745468628048111159069191409377602453542153660028471944520617773664129508185427179944049735607794126258993276774128772538375501629336225864336717020268376398180719279499973401841427671875270724215094143353638764470695920091402785245611863522798324774149399820999403901931383437235459532102679248309480058911698147345726125973151509862294663758744612908586439465053112817354528253083189374499982777029283597016207343046005278897117560227061991502158262772774939404582909507717970443005351294010701661133255076141203239964595250926379159461269956408926036313325546821103264371197738027080541151723288956208807390072142659634025445805795359197468661257076749767766437726517752730963725854830157798917250030779494698967995168238479059540408348331555516911448096026039769883805841299647184595118841821867939173128380864687393643909691855430346199143985427711742063977511093210121541582456146095688004368325988888181710828288338563410739164516491489959831821752139088466740211467092807919237342339322511465823818592435541479171093217428333184659861746275628518795719943621094878798603780012277666829721147637960445329972177119819294325080861813295089244572200728166017478873690446301810303216668208749176307907784996666046960889252238361518794183750310973503654954321414919158957453630987739196466365136735638455839097568784343070353280992655736321191277807987671744371150513925413583085126628610103161443570033037661558199263359474481198653491370157326610576872262363277110104481519947903695292418062103841521601829701443593259352323937892968095342525094778835434789198000103246767106243624379735683160364470915992731954723845169943578945169906738149012338216479920588752261182381399287381991192993055377018406443477893524692137977861437085770940396557173367953533485041788613299081951406849124614433774696506931089009906040907967026599260622984249226454069902068772219568300942952981621275981600953678580226481965929047513084244433501365372780428012616615745545322916537248443033752661781982981087399266482017638412736898061661605229768942638660780266662115128746182007001466885493785440899988974614684444461488768698187893377655047006266522296625576181391029240842730581387490064656177275585400178634959113763115369719330443764379346556057308006280560972632768108600811866813974648002106034400207950153262940332700368396643338578032126088072168625069329115280837664961346871421665619479571728658391483171830173196902884002918832694283580504223734875756212866409714480804618572208342847478478465652223489311650526532243913252166447215052548652510731904844094777498195003863443048158485197842489403449373516200662246001208658138538466707156479539892108818190943814654710605198969291149090020657707988692683450219357005126415539111621447249246364862571600129529146895910979137656285498865293259750396510105058103396706164602794886102749698636982884594336912864691527764579547513395981238936514079416875242132166977215294895293662289679414080864817484788837157837128075272436930921429197048001337445841502838670846954672576998967105649638952742056815023936373484850220600429325203222658474599767710451523015379683173493910730657820019834374857370325049818309861340728548298660898175880999082636882534326710954287896499578621576958456957438741719495270130039780624174301102872043750863827858289387833451835955468983144763474784383547620903185857030581082303097984329866685514130848789104119873072438449631382431708482017029773942925393083849665745546161951298495065021723899229949725986511021909575090997381370646976573990788531549164791712764548837398645982977514305940974167668174046835548458917993976028872276170871942239294226783717815297503904649091691892805261758741966653835309595646520053589710368947690573518749964409195501420751225513032992386542610746632848863129176601327137760208820197310657012493634817682182205724067306619948766473357307916823081249204243286963290108662517232086214467978721309267841830756128227170595709577608464329460593575784564498150288033037466650342575330300847932171583673848382531662547157837514144856243417988071790009222583176342173366704070045246821840642267405129349599232636956442786204625852115607252337170689724156316335086360975228303752434188785471125375368221154854331415454589694810993159293082352942809715489949317517645703940588650637354308085001283877900469219438097593832339099134098554006170026219124125760976993865738799295305819369950525667750148337065800655625557728259213442171147103568637390893363185378182528689215178757240709078861481719112602200028396559415036090107901526288642472368226892925247402227181700082960902975607530571224257032997938915062637385643048258795080630395090166623957480700338738438491010964328467825523942600876663072028212356588825363595334456814287565850997651556866686575006196857471638315015714607845525636826549120568118915911269429338816374235129472960160610217790396969960730159543562233793192950752052817571556629948493950063317337631554568734659596181228721492078760091452860951493230847612654031911071077497798652796917909589568541649425159347886295788286141608621479195770454344783967493088075592489483001304799657244699938973263955672722017857946459918435672384948492784988218523653773527288621933406430030229274558195033931657693092780920370682382871752263429924196344477639365884041312569846439575819637836242499180498317019891050462620022938902616335003364737130004567798427280275682401693458460550774803745327478029922227711522373921022985802157538091266651055781674489245976035273229759120447919735302084866717055137912238133188737970327967354772469652586581411952575093350362147886644356205707019959845631688678289365241773025158757207605619071359944006540394385406958991764157224449833216925799917169298359105743262690405412372114371403106524070260949096688423364878635562853698563137152896828585612512662604223938323140176269772000465290168867934633152824397242925780898411287668056776600958312520811794707891891907676499143558594262275735073942456450618252722049352668035044400117104054750478251243944997178294309850670715761804841752280457714979711583076504518044290382662941372023589994954538593933942210368846827969699208426470772274394484059442885044247749607970833681468555655337328522623037987087628251642402443470886289888761351792668594706129767159278734132646001301540695487750532673337500405473888041375715997588134173490755542514505204209415018296056684739054860220812978071974348071049387420571562465345645485373391033826677238692800634620223891255700108324291328417838422801509359785469803267862261911525151912199329854109302235096066211978490572514090579113848506673314319875482291166533713468395698189758326163489492018186291756035063079063714820784541401311965403251132431568545314121321187665521145760650268340250750428164188823124626033171772934374051875369103544492992832553071300045617335180084246659180245452907574170750212208780584702552734209378611023790722114742322142912239843398057423676221119565200503135235774870991850352072645311754564270070077808345220508727769207518204522166011565873875383820529463815524724606901623398870768621749420399331192778866215970088747558766642611659619324049595413552473256203423645750714280706816894611623523115829463566350102630227045365335121252689727774175160409169432166338941666940528679478212316690767330953684138571305320156244677428523703233563242355997221436129945561853911539426207343508818146419243593445409189952554022102327128308162169185939968765721385905664581091444602911935890724369307686154431681396516266253472778296623921409766508697699153767959733141727167445080029705326190272596115648749315116936426027141533588537577313096836411496626767265691139653011014026167950326976809125424510462032876706877441823640833938990458633227350128820712836273216499771349097001837075428747588807787246234868624328851801164606786881647982987371412437884457962157525252945382138333737556190786975887079762868325522856983922673139198014161017082416250674681092755147310798614970340885551575652977993518468699851958658576646934761392136741004202104014587554975944460507424349627371742971996401822393302311441933677354840807533225168848839410145276821850645755012826750458005568824316557897939424141184989462109489255699627657270845772934119138953432791497433732629791731828294810525565864140535123483934332968496959317012591166731427056700525170460027636930994884403663238138174745630277501395825957405100077959513697826436271923376325323138299131132081864837270498134098450886825151762634007740257058706001722559355927798254930816245463800406252356554337451827105382409681147367905813994451082209412288159133245976708437280092249449262780740045040863131817198424686159382202062736145659820956802680882308717158194244682552915405999781630914149290408282122907015189342344902968680461383107418426713373249362075766908566291863689901765930968431626384331214865454447559096681297910076225155212328340890281744812011181503747440946483561716506627641514190300406436876052050385178843311838776197211705418638585166924141001672344180209340706933237767368034555271599442419056796279776073419238784481782546662112625222406841386765179720620208950548320143367844764065383352649181590083070585360085669891576281880479048551047328416974123971178128595560546735023246194834466369364225407099616162822681724620697483642685140804673070321383417479010557693177741612109626903237138367062006072958200545027107584067389100232239814715144326142663567760268477716007808610283399644954240309251349507591243555750534729481790526705675624425631559278480443317590246405256365052541095183396453508560939885171678616841208569538571516976115318584486712546773864810031703794710227731792092380852921640824979375876472300378798799869192417097858463622881324367428075053193264461678110149705107735967167817827372021362507545667819735709816939905207122730463200705889373082155135245579835881279749395030553979651454663310317391353553473121930434493901322468379470801382199896355815143946407473395595882147582778764812469503961196441552819578456073935437431627141859036989874415920358209061511169141619991266747539925248199012951055741098937653256563035030956497525154673222126366679000184155482508176439085792440128516339333080703281416304813962319688663202455920027836000772460250910854839252834170371266548682884486918862267410183129466471943787785035580303819111763825127731617337136132335916900776665592193300510489852768412244451145428481710664710878060315915064808323713231461038808244240167271525907781103443390466843602756821852335265549017935407995340547631960742221689718111330586206931386466532162505891491013440472692721579122249921076583782346312468133539042437863255721341304383416677415636093744407487358793712240744839993460625744286174753726788332351107314031761348812394412814366404453923450516232921988602694607758295488647739911740743463998229655359929793413013044026107382887990958215235813391005748910023192209846269767470641016107139384084662193584760227488937498392321372528683785677785100005574918409836549277200041024605741447694330555073756110323718210620661247657446542522749888991030284339145855317542990923468215493283590098878025407950836465892057696067259436053496027886943955968477394194957071468681722981386354804654499336361716913253689083789243626476189680135337090887732543986205745161237255954795700480363969217802918322396171787910216941796850614056477826093676583895149491419112014635620153701278665225332125268070788664636479203157247651806083913151476813057679842080536564403084116597963464449833260769630267477935811100845678359170352021308870021226740690620901290188879713976815473096924096978180824009807653734105076793112522594553235786548057471118065195702189111248296816959479317673052364756814467730724889687483811317931796666232881431475877276899742407519124024252231125390598759371825796354346658564241595453701924001555860124897384860489283960270535619798501456290574426847002156430303572498424617573012116506837453957499384113914882116212352693603378614847595127335875841781575649528141475107206434872953806837990694288435129428156240307051283325252391753003943894772750352487439358946130406660324698832997813222549979845358126327838136064014071771534040495204383298188904265022680807965068982778966015785815306741134106132170123638501491224784959026872931552016113254804929181829406824430862849791754513580107378985021451694377784931049544436764172513260456848624236152019032323471168431152210731171755610840382182729894815932453057956938013001123638566736800161632377317051482791188203487215104312492370733733868951693930688087335153454653817392877293705524446062937131092806323994483106125076952749989035171123111828127291984202120361873300105365309726711349761679274612542293825290534938024260609222521969332192840287945057549579745442430351475315771994055860695316680580778416858821130311491608522274343687246438724278980324297868907323139832193210833927998494241985940456130155523231757690471734361265258978367776031925047624687658898660537781524952545481597455075264552056163224286427338416585332406737519709528123235938601185615292089349278059427975423819727483835715944183464453961723274742553375968149349431555376718218217993524886856408116572839759842362281994561101633250635461057928037940423423432643863778370437466553426323257361603036289917592784548399276583361969964643374495617142916184421067998388028795809271227406452729032909008786739404850631245571825667259205756008021524459688190016151163755194976934904971046068122048721638027564368640602155132055597183036020248271381002703359844400288641078193687792278299952627787188590770867802731364574188012556356364902010475797623897547648669121325335659250817282325877393581234248221767084657820645723901753004770303824111622559740822230229323681232539980938403364540640443337274920838854760748528005820468554696793311718924785511492246262515048398734746252512137739570560294782558809615167976952471469032848333585876222697216528728862614694815301611150429284564688057553231513365431901177223410019791126608168641005454172112310059278264246900975027002219922078908205826292965890330014915763404149806707366227237997001621525118150199632267315908512340716837021812648708710572199318892040000544138038821382813518992747650344585259972764221512051678167213558730437462208952016283500375630070240090571208773196317179238041476951430531212579336195527236118968459616846807709820659773620023461571577781023149960731913332139370071538200879404057195644686463907874271901247611196026783051144152860611480427961454388672135387816992292534289363639204318410990135701471740744053813953413394041630727412995334590819032168614568373322451008089098890358623711624274686557632168200133981742514229646648784851557870126167530980714890919311737110166656947906146316705645310348378874786788167237725093175597062181824330677934965892705605287580249438819842351828869466878134818250354172919975795981412453326961118854293690414256552797899564425189249008414683995353459309003699951208572377044015211137906319225126432222352476550706680891726141267888443908561258906457820601781846012490734354709260222805674982022277836836875699733881896813984526082507114082618718033163229952387943881632781316228247395094553308272700167204388899452891520121870697500262252253895006176138338100041528771031601892113127155012383975418628452721825811666664766659611723633563670786409947920434345115952769945982699068708908677958932504849948401374154347829484438502844437357068979793992548061253072944140151516594505414910637906862806413126050355973926095333378258451036404705479836298249468131377352376069485724027790494760834430518613681495573268941261773258955780284843448080434739918286989890312768609238986428708687938304970090853143167961615411181671147391896294651581290616461753142137090245112185786787486797672732520648583895154122934897219442236916435354217766593022419376342879148105038295491193493237625385819800539191455828586013410630108091080741308323303057163307109235379176584031250081588739286433913184038693273874518154669944221180467036872225383302179762443467413707644375640573985499719088121593036390829357562827860071070303635732477164005102236337829917524448682194574237940903752001711857441789988003830099015753719883431315786543912582452543508496348175124137215129164921878018643824944693634522002499326572902747588238239189638006484135666954094104063517978031998951588863067173375423222062431496693882879927816415710011988060121532085890228514157739342315530023408031505807144096063911886861186651251725859812705487444952698900368034370468706808592409433608596098172920422671942879934242255965063168491137721381724794235072938578279493481378098771829313886404485035533651761759222863426332150782304620039276166920107495830059612275968218810575631703708371840837666131750289767030465090258225573482743426600129774080381595396220520922991112933772105758928151718570587303259473964848316108289140503005945459022451153631488264996262160491834283374703464685623694350738439195331740245887669050349018273871301270762727639000210055793090897852820926933258906535490000562406051021412870145368797452437174229175997553636215275071928427265127027210635256523707158405210324333251851466169551061040143127738587943769146687621073991637574942691357867195110740451383435843965332713688753566843899274626855414558015883705425584821768563321689411872738934120272339544004588442550594520098167521653909028298754696782503921552982438375117807373748844493658323526962263259161415259325672351087755435215371362616342800695530616571094826781661595980839680029119122654521001009548196368262319275138421495372066877951668948276593928357022978847168206820890402190878690237053884840891534813919745714464644211954865986987716207492838940693654724560970813846132365621456215791913869673086171122333579942377483950599792955006863911326277684936797537540307483276871764108303023844591945540634306136527424294001403441761710142449151617049726299519286757720686996993391644055477129923300085677609735524045987788490991292055327249042965413761049103457890266926012904880739950932519267662628277242683305883581853133937076757106771803401726754268754091659853003610152481647759554667714339106855910184617626070347374072608224527626734531496746857472746677584312749553805986235796364858951362387057273305929506324584005185394320093038686599457268087879864009161290999532556701884199910171819902351011233305674520942081457296139999764219336755065418246309234477008346140151190214204464007596100227933722252260957176412294882297121808096847376443723686219074853554167863169759388528307293098065722760222612842358122598950001457612011023574140272326952088290926822195047051506538429900935152497197939414139064334418961234990833031184469566606651974702480304516085228332780799894041626492762821435796812984249910180795062273815168988563008215625133387831393590561822788913616875025799076977851091438615180228698988762525647630952055223938987185727540440872837675855210122435277805133582233750999489086604871768012873780805353241775839687349824964105227359173217805798108137138014929429288374631032279862990511434731996023125360582051012363538807681389347773065219567265376158908012966096168169046160825918681028599329594545111746668818147383024218431810006563152008128338217590728318862223722717980077139929057598588962311391506448571111323995571818221952666582270186800413099916843295108450011993126677634621618764644215953838033053573482299929141300991119670237997820117968658324056392550522572941539067220087122920404861180979977370927449304515888515512359323490129891454876323173931852106787604686652761892445169115238813473293141974771998793294642307585679620627479317785713509783423693115263304007978313031736296547191083192229569020704706166328117404067315500465734168168256334252436526853336332124712540601046539565920215397526842081641080173909615005638784377223984018285845018668705422634551977079985761104313254576457295092951017647530926795712908361539969429841800589483435867654172730611600536248656751792960646857501618204171020393750862731509857125489877050089347635271051130270387407503577271294862632074056788786635383299213658754150055502759195831890112646521316332431260675498288247850708318091998075003402395623383895656270429643773430914622754169043898329311856825931648685367778267347453051990297488860885771665571468670069197459046461233064697017900266712900280859805811506452704889059121279831511831725594137004179817849126712872785586359661796470874088185326966953727076354684246042584718075709967374638969700401987643201846143984681365895785055835107660303471251569373167059909592980446642513720755115494716136847614686366223777951999688172440206261082703578526042559031815459424438138134436993831962073513054783718486344752240983283197183712814028102265642595705522896536017675894563648411058115214332537755442139522700187595521881218780245288532726653779162317821932035702733703363500494871137829595218181534859046388805139615590987370916975640714754723305818419727686519552694696081745986715327962581109026253350453666235552285216153069059267606400897588275710395526966797625909752245953329933491467818632612553498466898721784648929578315748981497581197828192122035486042097478199172492131893347831858723897618938603802403985765696809283820919547514144401617470433498518903023676750604160429622138291033826136959712779191507411544111657435192001428896257223785200588410270687691778208557170277639567957086724486695417079945007205000080766081674971420306403821801534235875674943896374829118974856474994521606410845776558080806277243741333710364145498945928371038438828269550484246399180073906895770711275912532842694997432199608699295412499189755408426986504076521341208549539510227774120637972570641262642440363753016906274415379676950386016581078060110451968956336061867373527809955173482007735244128319008729496517901176985167129615705831525449707125604155847640901429816337186644140971223236870668120582573790708120553906824683391647519537100054823052737453931196145911909774757714242592067721948741666437266862493641951883056507676092571969246258222059849379304707314710680896063628754487859920624890755602045817919959754470534377950611557706160439830127983059253956967564135919895237112109543797937876374846381874272210373437421805951111575017883125021867294949839385086718499637705103104929684985616664074123350495941095835087221809723362694728498777117414678480408475894853025595969270945550655046602932904745410625042036100421699191317960016893905279347717272307817463773447010062719167906036502528640038455407939282991163956283677593651910842831419686572820041493849267197171409482655274771489917369712714218525566952789447744678532320983772679965139816560882831858143296389896242171213992183634806370726712674745175485953983782867324602705667677868490428699822398400135834950785126725068434619814655811769560181427689282089742697498491064998791338620450717383901451042358130188519612720061611509791577493235327879872807783338809050897731820184978865648259532785943685783349082105850438018181596343103723816173551125736815219968288849172011269944579625217514647314992001988316974000408996092754455439170814997717577218799391243412672597166429131178411178980510541688700698046194687845496311047030321898167918212753073277148599794079033062277875829138297089687799303594236246070136116300152676520083631788727175491130413784123936561882354463969146464337082713335433837978951223919952569782875941005484197798494434436807340803461736885736679544492748809779033799637546942084302284152907045433315069172911058979655413010134632343590894594330495552992174029628521332318160501820834978553688770150760650770225152424723494220487452506569333281775331967887865621735045906332188243373109411090672116514205026114494763951264370820992065793005174168211629296828823291890881730382329653884816106329912118363823401664544030079713238689433342950535996006945248953621235386260170458895976597389921503663207358042551977738312639835255194506728360747047906178155568582372088535312066859914914695452583517744963736410049739342085313836148003239509216587389306304693604880334834557935313414394117478847993052992114174603353034444544475493620344657552800878440424286730482225427765527294320007179665496204382514431259161409584647786531756806405162087541843764736566017232436821723200019796380070954605971035335230422475452599589264229450381493473276983038255267663057347958343313798630155740758007911130192194225814788294350712530831909301873865430951677102745720460497676473819962279677959200260596723076959866098911657190225279102667991912939466039610270348814750640253252749498495568775630391657867237537244685046387222014713226237336212511705143559696552312536957942114831838052622044956789885906414913700345552851394349114858985015804623017605979712590012715380046868471512458644279941468804031568100400168152335165663901216615048477966958814480284172893938129154899336030687926326134803399127545023995837473959683730550010788476755477834001368076854150821652719219135661599143010781401909216901129835059680321600408835525731976711698990583952455096827408028143995200264836900836345889282695978086718459276899568611422010644669420949612547859084382456119275639008950447541951419752182563611796522602581730586358532613036429037523111385895325332778966115846569480904586167884897544698836489347131701067363978134389021327699371870669774463496910987847685403567793014764187928275231837850286967321787960862570676675020640862024704175790305192305644882953650286944887085660812782876181600796571205623808068602562467245030637478060842172573935368211679005854594466189946497738243945355195894108085640937882367855667536880655578647405311946148948234653976251728367148083808019036948657731127131948392601490686034770351662377828840450909538413295208272496219984462303208629334476473038919638299706149708961681569668421250417671519181880419301416570145522308824174170956611991618263391394248069702337507682794889607965191918235025860340813927299177517118735023563515482570563795777868069906024091952513754726686414846866675531325130038879533346903527136267350049919327053039788600849561971596289428042583918119610627787883222327611932700061969656792661592056119756909988537569378417379320195639221124631458740162689722040939367666214002086128210992799233621525136816715881637824510164549499483866982600767432448849127864123062543146476590184921441110247685641974795355195449200217871723070024438174170843576105524735525002382958654766348164994086511524630504801347486433943100330096785257186541057235278826904700945286296234052076232428220101921685672495135341349460282123442781389445472428185404975492222729462614194797108347238037404932880265477618499378359492416341092806962145726247743754899025732266419432421615179684559323538268147803216163201675541633513569541594501779587839963124206742186743716452997766731118676899339358324509550000908906768949540064801817742793043657704125179959393777716079025238407910771912111144117750161994666928271141609723061358779448227094633743955571107808361038805820507868949925119054464753552502484896768524484732145268669073184858139318707034425951951303433106193596191746702218595350963327470342815337713063875311818271735353898811364482448672318867558489079144480111054016430463153326678823883924500390699680355035184099350740702999812812736270441374918854199125128878475777077985113564434891556230508429764641938585247361143639119914939800852872076120477229981268583620410140866119572655332676570135131957886367065728688788474969446176813381926121435905388792966325436066755806404279255887505402067542295485258075272925473981368406880812669467778590617538258663606983234135098172328865949084260207483893566368371973823139469005574050677313957112260618651162086357602647715553751561965359447577225909451450161897040731533466709550007963887956544914098684789215984693627361534404566556063677660888575830397015453371872263535508639840265166206273721295920470543325294378875468863866387895103942042016939890531281869720503995014082931601282341780186149376714545964730134714488502013192292396133690058797143221368822094497065115584488929036072112492129685646756158301419960244372809595057563898123260012143081766524193517331297862323084225983151620670367024796630177168168022090814886991836563030441066000953813922128841205736373914547380267792897920857538413443212004839122604510197318779186912634142020964419357326192760203768196546826156547866213407702453020812172282985450127306950248752373329853554811848094940016543294680998333636359635622601010870701821417047027207336368734689925403913298093384807152680116748148897523101548495433333972717504564506211030272604570483137772882538447666146219128799831326484987904043782650985859173628620301263461525757323979502554413886548412528465389634617951585469164983972293127217319765859257930715937275347088408541382963381353426665717979906985103432338554057711738627831342068174280464508726685180704085077088661340298537371387998565467589024330145571344749984787680594587368509209025315343671336691921144914823652216591731628417113306096343383316374421725503223819988642296297832032065245860753291466175607932823102048800685666410209810015103655122100110965902084305355713494970017591519543302869900954525738949149275216730625047799110954421070920601103000601100427169629246400700219954860139026271267933228296532494626751048836036496984879266377459634046518017922584711318411664127065396002524124507533818302323606056106828669372340739435913235898317937767165656862211281916777776185318686889356390281351926925539745301577194577163272908099464111567386165545918148922516529371346167746556371271184466772673336570048517490399587870692378922156331912341382587440215351878400726410924741523881711604254387320568372681412534960073807515551906864706028716510724567615253753366545670149018441832595112847376009194464521644671958435184143864808054120171172630025118444179031681315949148611627035779460482841583187471991351234166768678697712861690634606661301072408007730367964061087510824910745300033263390669078080010445396197365143174258079099209458865703305951825883151543105241707208406788343943869048890926062971743550620657266592636305600067024908206735601541680175264918705016118366619332872047770762215605165735656143957308791440781249437903522914450835091618713029318805263379661597858444152159979103875295507879089520891291173115687281257318156345099492158296783018587869822406984484799959749888100730887906394010788429934206375127736861337003953458768215783346343437610570878050180922150234111815475495263184337292130420832000671024069416448094396491124566890808410061683057919360518090446096471081834262719763328443577405796777412412205295211273537060220761287465258470684899063594754756185078184939166850995249249656154008468320833346114775172324235243898917909874162172522292345722774094635160976740150577516045302764337863068644081446234294217275834545725104962522513757848488811934921335474378131002296750860565801341901331395202945717425909784155536589810255082543700347610111027802297987101027038163408924036347073292666787092340439414360784168534266885517819069777589603531045196611155364574848056411819674728422411700893671502364845408163517370374963820324773413257725678700419775962003217961572928597730865416226930753246288763953517895048260353170907419287309949616400304804435483895946624682001199893366272375551310784251608959775738618555039879320015109572858455058646385712235736174367031493132750641105407734243194282089809250345606721689082639114894875476766676804443656934074130363025754586281822671723690400385749058177886816757645015284466852820617146295065881883227191664892542207097649652927509064146656366293487709326534499403229834883382431669227933541565439648315880159734044993779153705270396519506118094590771578313280061763492595017995544496868702774053907917322806019738824011504330386262025348513903267629511085235445739798686103693689439770926882334260422075779485103795280692426466633859128451233378454980846984897618586843186955735088907108080740156802958603172291665928576784858151752776275381890147294917760171024250015676636775428360002302696699428835251123772237406788219037058198223463856082485694808431350930784615608491884589196576629257762634164030094102235821657841745488801923185019379526664411248775869500578254389410786338133299583014970350372159683304472321406589633588817150293339621027693129776518158002957751639661632404898159943037754547222221148973881432111873215229697192521952342292447041408959318627553620722220346940729004496889776991074134403481231788367492244188269548137140787307763327885707820529828627623157346358491636014180214305788630372019120462539873907375092525057149020233066309486578676317523558622001664958198469691148349788412367407805598147198592664164820653539772187740050084262439728721298143472990464569798068757051018895841292629630105336962560667438996340971317185233860719513909542301302310680336575108310878864998559812169077380546092982316208170629618110582614455689719048748633577191764864362704124841971174025415049304794093324114070472015251210259709736546623475737446898093783319223379024274666451550744986251687277292117428757028471660416703274398111344050755069542520937199587451183006586103216679722368954179890380112592833565901350866930716856333446733922133550709052479090588922717993213214227686306014594169552442248052842389733987265187779446855632817205714473593253643148093006686688837782608507854352268159116460013081177279088343983064667527958028779154866563196284577569883048099941768039878672845051334458464865505452809434627792480422060237505736229041887641000770557749946459279301859616239520772379194469725197750996823198618416100525932727084236735410617899366065139622102311535592059279969422305690531339459830594984325552674100911184441024277660941801738409174325171302548475194451493005596666119801865028471445309488809507558664884258203234110773058988770045486684634133117614221406620211194199728835473336247389649300116643949120458043706343288195167020550133230040937713232662656558971902908100261735856480367301224292913207550369357063686572321773416442024704067582687652339207333328303672824942682384963170784717514640072852794818464893830567882539158552503948330970296038427621842511376564343958804729652770572473113771581445163114941090890401767462032087066712773776819418409072278668298144064252909426022715676241230399743338001836502276780912735874402842132183691992453420310636443069016512941734629681075038880900737390373436453524766694214546554169978725055675084960745579968502217714511069180430161995520475835029837520881548901935601267398473706106143216223059703799184684316684644567989007006807989832169783332151443073711226362746328974957617352055986850288049688163282400460839093868040620236072301979462290027812209664007060822808032493338276553743524509006079317164703484575991236715767998052424532928128409363882371936788651185184058111861743255417548146373232328602887505622619414665212302644057548260488000841151429473856233516455177545814795971499174358959261189521234308204038522409270571464382972381782696668486968735106411048661274623507069754386394556121561170449083340496523433924952201087867512129894011546967975355989543689313169906059637232395327604295564218799076441535551364612550970875041568835282140313495058027622505138387073052942891554347811553854839660088154960679126261204379452924618060645943329218928100435915244388256581058215452583197348175476056253152212917675263843040836990331020256532760098587646981156002487247982319758305583618873544669129811031226625762696830357585238415648071598929410402412009489883911472531101427074845622191435755893745869732291461661148776574792248877199394588672645757222671602985288830287029181605670908924415509159461174933617396502540935585248146825041027198699215887187882673267723143806418310595750212322333348068511251341392054038414894436752364803194417150717974579193418635453602085641798064315392037926265515950461304295688294355332455241607657850494440063253984887094538754829503514097763564078135374774073735922959962397734244984537771660342602869084606110692776046593391126541249657038018100271617341498854402728128724516208518931247551776731826827244506875574549889328366864032075111484155951400107492723259229493172022576748768231907927731871410111353434143712339052130479292451827146736973760104203541182560267517566241940142032546415836379574896078370102535415985555838758963497446692126593709351531475672768271200918931786821801983724175923026881715813884428135460794238361518992053896668112538226309439070752741957461610581688413521472075184428624113047830414664102076090921420977795809273224435765072327970220605902972195820189368217950830701711104296987651969525937816975264575439661144878234205643620552077509862464610988647164049803069660145357711969577203072015674955066009131757521439462395954475407919192842889325397389565235888544093444147717284407337055469235044524975014171329433331744130326713725603964085851353448063983027439553616051109646927581451386381601540905160503228063244427624407486305753951057787254838943049183027554954297401063103697335194736528362022686793024377303394472216325349764506340707007781643465079647338870288630909027861208756420299148499627507067729534777139240214911457100931832334550932580879026310609549866367738410096035305927016789934556236341755162083794005944780749830793464426000373624713589391674298230886336224630298373485968864574117869558223599808955662812456953203852972250948500402349645878277585533808078787990679229301775357723134774064790937242398948601043278035331897689383162619698716346703525393706869196561758251413117991230858038608082830358816259051889737885794304364117464340309934538818923976149937321192992545134215473316925150912894325597196440799381136259017347395844561067714018398259534194889297911258315290666569683680276199448875458362027281480532720439480147785833279206803686202943511562910501797295768872205678689575214550734247227821459226020658408240900080563117262123479334933176604281426651283670426682991340483698246429622108082262412429623724603978267063387225399925392541456589060020039830364390984081004789168130190159096049514916787568564716312816662779786511340851932445022275960633503250127316080857666626286982705221963578642824790689034396278992092978046566741363396803327177558957363308957733669135175532144525416001200283050832272002148846162085061210365788464354292230214159389709496282973933872813884481507870211011283763644832507992540758429964225972370503356495737901505054166139962887532571771682185330891781362227396048950908542805924274952850643953068842124959007875626856074031709291947286478487029007182666592546347418358230443423949450314134617314636050989498205252578322288065642226511059418800615174691368648271659151415923004538883371297104915315804162586429380338859226911332158071079076379146665589909923147913619584150193473717903480261994728114388886522772426314515639137599965720500157792920511920006014335445771691185903758967282776566786583495199866360435865106192460030958990412171798715929056632754477003302712664163179646052614199200794998520369021981833665018569772302293537948404614918067664286613179585480178617274112096250296456889032054320603955434668199891033364466227665421578677699243720430118243763161004883684164244339954920907006057849490628645189794221482341376564589360302072794867115218176432986444578056822533038733648130708992606572200673529504562053335128488783419207790065592197740087289043762775791745203790527992707977387156137799212492107317823173767683229396332221608474333468342546663692690035401539613796489227061751607824859531060572104297687650776499591300366212173838970956036389945990854221929653914667933418085269217198175195750901408611057125364834778178157750984135786192159843611994021107835633982737163270831075820558073581721261661451797098218727029808980557573778833209891830909815763577091863229767277907104067223084698845542773573763133039763382264412583002146503704760809494591984130900588403149707755414283988635398207924260236074580482148767323350173824650600400289320053719580265697111567901184156611424540545346186433464434703267350807648736520948030809707756414655218933851166557320458415509976862525420761409990807714082741766375112875797597617391458432226449735435340375354023823605549700631936400189695791359145829742648556241676405332515047999090660208150488814862752793635168703203574327213781471200475944003472388015345356437085179618135347094294747206794475647137739781115769481696554104556338712511565787807105645465793452632987517798298797048182417695175677589349020828387847068031223779793325814133830074476824563306397052386536483420096716446821964927813447940369634796158386756429050398739968698559163965768406215546649769692007415714302856929046467061235166831167232340529727279730627426805945525750996417749594721977990344404684215097878642461916074014606168208352020176921285549370123929637862770197370497285219161606843397197982713612302425362527028776501915759644296294696212302869069352802623240997852638719295368903950839839519821405560276923951019976959348551969438644351577910494591915797649959556293891980921649881483263540802401151832010570592762541961794690271766683617478048475969789613374251011450684978773782975428432345954502980161546606052462685312255768307959505128202678085260024341972941613222186353848115120492611864625262334263330297101604018258100636209138931513768449033886831363395716846564489911099469148257965179639605331795914739776555010912129392117108257099243204554640706755366847263913475474029418062927152166362221133791383277203524133195885497755689568919493301016169881285107712508534764589577901307595352190578938884448964825298661849976449651493705166307924939826888006001198183825698426038624770090420699753864088171176470175865060767992553739395730518979644638945195224251073473077223355286353098083246462178105606295644209447927180719365764720471384336625719822601757407814228328169630923776244332010754365609098823538327304911289042781492222812989369804337950742388550964441422211172206057243676019670918493782544101573561252671552098736207055487738784634190408717322379500039096396760654366783336305959868688665403903852607312043435749545092378352157345715376611377754932182096748203039385476247646003565579640003784800292454702158048374257090930683942291253259986538948229060773524719271010747029132523733415728955861277398004433124989872432015977701037347610807535404958340180867568180504660930421319995098708741388316058541890753746291770921323320573629237405611641288774401635916422076715599162432310748866994670164190419031034299038447213225963436048095395676424019367635131205254905851095656576949351978894729606615855742139321788999025260785835741258498363513171962191011216027047048471376640454983508824699018315229752488406934149823117982504942397258203210704470762215840875254733034697621209119322115726553488915090188931652128635934316287410229578340142316568862317604973008374778274040739602341734986505766424439778843781992990881683898615219761513569701254030931659434303920734564023674712685023304488234569681582991449733175950387038185541743512808764797114908340551380905676998783721094027556127009374391415334503440295027241488718641359311416548418564230842180347080280990579141087076559005872173563366825154519591257870191654394325858755574161879177950157746267604968669409758539610303053928548060877327681210510707904496749438215918312407014423163907667218213955759228457250745672918506950256155708594731810600729068149503238482908641211772501474928566381376944204332956624011933512719668873255949341494763109307682389178880458399803336432404946505542581138548911516892696394113929971731984356768447987348113631703607445321403413721912029048236381100478764487151741410640038874283319717102913911315207708039515425052184504820928097351487636134712924128604633180580636312719296651214854132998589532219630248625286399486675018966289889612879078103319386478944113607677749574848510180189447144478104041702545322610773150156734414631671097668926839884417569685764825636585144100234992884644801949892434701237080234479173274570078847629702371845161214450333434202181308031092872955225243785865683734642612289281893887523447574647244466896984809018366382331563298057494965948352719127264451093558210712526736505745869085407894639481948892377361902991818742009848947711088248917030952590438995892758640491853022415592621213762435974896868850693974276122493071635327753005355762666168205219919931031591952125630837326492572586119909641705268219572189740191774137552311852547888908912509678400657292866837939847492715498269275984893382601908184340231341069197568258340247424381049931101419040487082906360888833633972034038465027611773356043300749655014465534668748489178414813084343922285353657529163113948137496349583283146445304810556052937263116509860295510505587915817509547958613075849765418372481411313378349038435135405664100300545815703519555206700459070393218248102454042131696815890876438612138296618449018106220205674321218158656956449480425359565667836240302022467358022211260617177395884650741821647926469726673553162850693600367343673335004685842095683762575678249694005816231662559797084510749082521266245382772172636892266033337340487892049650863228851452094516098231168778595159043255840002103593937752346193311445283122156584153679269073229138593657792185887222024174990710341495739201149819054627601127635915197322938061622905642305851497095296273203660322093887594572125951798179479286798464975888439566486832250192306959015580305087756203384964067224743339073194372312543328524392238637937143153289812138929445319784429870302585795616487498532257270295284138323066319299669475891667537799478921753103892624085617828686130175400528907913742992488857301882462168591750439248932744078387215637047291356637832661212724551324052024843547952578524123415134101226485768739986275903009037044941121349248796471291766678953263149245851409665704766993167135670713327592761976904810559242801127406934752323783760677795805755059267681821511885621670380477728708923826351291864741241643888594851550547627843142394691870267567386358055888567518299393556675090182062373560469107492289090124763015928971713410562397492421052378093395906545017960171356531582098465411368851977816444831639065978392496772070457907048130844155669363403289656019221486338602630520223087072875302987020146743415172999113890723748253546257598437744309046585983132570539406827233478239428382524004900391173242069737352225396498519601203610233186613321501773283192840501346120771830762298339307777848828710024964823671795272593175931175817225179438661613548748833943553765560646214544613958558018471935285101014885172730512771030496123538718692991687206728391254290070155847438268450693031568787376117168071867558424403640974959547069228905919808970670802881832891815836772742503639354858727868313978268294501572812505169191529491945900875879265881873161462558344415086214668729136094689480502968965022979695358633093858881056813729547054261094989690263047195556385687479373199888933374112727492007988705458413673644326835314382472520525688204972331388879145174183187920140856691213089142938197514908625718058293167140779583695890877608957422597272881109885698456697125675947316063081586489213472015073141699550023377434799129067108425121640471421845756939215049039180185306031121803035242495787792300469262891063071088286379356638805983391597149231544006770102280108349238426076574376713835470306214496631476636023463402555966052688199861627539867659845859172532760985571921216656836723880687789801048439126519579568722413904952980294435357658246921168118081439602061295212230494852497719345095228858714994080031722828391622331460025649116405701215510277910734008620789432099528888823403227068613881096829501642141837760922352190967165949294345311467641658714570970564295219240208374399142063406991911509323629642360727878105186280564537088875989293874737514363718005815760561241329736850229938934504209816718530953587012726796568681734896412676486713342048885806900033387004085640053054387958746164218705467530147921318877920780236472772691475982745766951576183462967841791499243102504248790770841703940709090518271264924324497031834678046958280739354570483441764027096624206147401398925932295479876360982889846611464452526796050093679881321315150589837971130639680343827646099147071015842978590804882547571230270680921668155708759830677195249937474815028565585001316840515004182079690188184110814769278007457614581304929821894701930824274800816962310682926098586383773657654575767168149050343753253930281487371686154738848134517617424613633788029368579332625570714285243249846437085858973732710135954358662969435934161178458796378984877350514378970884072922859209472347439468256324591802932368212518537417519195087753908606080570905895530824775094766765412326327209886506729364250937805927074770332277943373469634240929045627404784522205105047130678763702291991516007301288055734518548164562226337978727420853928973671284254046580978569914946588793749846629400983991634149479916841287604883422760357369834837796732145833194576717326140412748306811358482170098075148462803057882033679355511373836765102003613075321066405508366198889988089778535377593158236392194709469817906156789143224381028580976538141971917457235441298957733344825331136293012100847452956195578066165107193387524417231067162624964777312408206494663152750902597838600541257127393566864206963471254771930472914733577726080005394498682724132873688680759927358856057677635828082732623678149786860127300043776402717039510047256787030426351617622137147139479149977939309129706667005096909951501409601195874765938574119966674791996092963529333727329432233987237397494263257578072383026867474323129048433325538446072570234519259774348236167982582741506753005689236856782599868479935695864381372062141275218691064209907937963307206731283466184726636970586133672350044630821658651816268096799670440643979846538457492872642793491133040583202610215968375165481238187638829729397070382345838046901752435320928031089566004499183705764128479671481222580379125008997612030338778529993190980632461518828083842982378971368030908004958761844431972236237941575747959455356105736316233665826497075260767133343451370056886852080829899185677773342511841562214268093629802713865795375613665437590083186119983727594101234222783303973573737001306041867022091931684513091259650331860149078713686011051358026479272222971830079638248726754016533538922521778177310188112249924593345612399833693900718084628202762550745235784734660659363844905671595733285689435249703834980003931897550755899740645527793918257664875172429587976549206689299613552698937856506369048296117452787933734637296144335409719647723865870536596031868034955805041772932255275458075150557582792847969440986932521471804364975872678024712977540995904669224806068067341720079049457607093260754183448930928898073782365440554521888559926534015064790544438087820809054561322349500079312832380710064690588799836994031593171298803506211837120957414590959773657683805983297070704039940682462056005198777389295855962423356401343268082119389267838652941776202525827235745444954653023235696962581328576135378629315537429950358470615940464154515055229181593608725759800666051381966785343877727765768123225531380095045771842206030746244597059413899073214533154993901854434293346536111195117991833866516886256410912859070240934513426143843000744152126818909159667146622209511793205780711267031188415002301949886590272846415359065970481497843842776202266426771382226410446272653474817321216548390427063465681963654325356225334917701838188869731723945529839099226667887241586439280344391235492209727834461000846308905672441433824131564194386542413615531318036646787592864674877517450935897311479008714492237075860042321483623121847367939849348532812515469392365526958600616838926259280001933112892347843717768906457814596475677966920491296570817374527568533417567160613022174200681069497320443099856342834171688169543244126186051158916690029308730833797526240368511806073227864981247531207654455801892420767145686914549676073014927942456322621133639819329869357073273065626337336232933361440952993031540228318595208630299281823008124655299275819689418877727659214251420040909791855204944784939016903251520929812694966576883559106729114940078918257703878636293832986993182760060434005798819055248316254753543096243580400025722960612692556514327307985141066135262772693283527190423603139843549968507814113486993270333478620036752676214029452341098626025040682188615284540761735959454862632642771884015552761890638759946012495994461612613164090483020945585343556728755842384752852148698128862639902407650187995391349591541040574260338396584322128951273232646089504804927858018893709027357584276548482596640231296042694651767872383318036304925099088324111063271892572369169943438075229868833012312277386035143612459588489165027477721535047867773381813393109875655971955684146271764820713952495301425156296095178490872119666298733367196667163373234812864804231437449441435182411626492854691766623488876814785102684283629393219255603699462406054635180030787351998211352939171546229102980279210055334794186904216453888783960923393589036933024788900445194353514402560813900438163434500183044498633593167594635104178232278383088208455217291024386107144813838976721486555534265111566664680390199574288237132627773873125192917655663683125451788785925323225293287553814382760437100218654988087253936941316684525837816435966908002217238465970170713149237092433394578217610483489707985006585219055076216193848069448385103106694914904358709611687227563329294792920313099308660169416434474840567466900306282959494131319965025016837058740551811984255413346412464564404292565589421364716020672953207856370446239736160594762136656658753636412029318766072826350085991805766695873900023834772932449388851490620401258102199966210402727848817036907210460933262661887987606932956893095229671873902642054318456441227073653426491919380736940659463718284751318153705040513052841871621922538817920096289129838032453450413326358620482324665764722288749482679138592701186471676422171231589189517412657538568628568092185978083691663470602876338644436735152269585334074816407622362831960518153712829180971274859698603894147657513074835439370143833282045998077789749981269127724593636267762017543214340163864621961390715837687054767291399751576246204739437878828518124413445933610075652711965085208966750171077083917493986715921484561740475314325458488988548780131601055814978287401305691782753809352455268098562208489492177837830101926263126362376735763554610576149787252749756117117776800591882184157723518138292728427996230941846314796828355637205047971833706339755416688633295223468232192784311370203034151138545964638515362492621367349102924971562400910150936560335853975237644165393434350605728400296945655918035735176252662486527951101452668504594558776124460483147984964416841554167125508285209669235806546021192310550747599648110182970080505172537126283656803616239133454287027965877470375127128334448534866881001026566346428482787728698654689444581660637742517979632166141112748425107350413763977508880685708474711154628923676851330712849652773129473905015520247495873409328236208817356495487630318948095792910533628692673639738209673260784512370848097577083896308857497056926780401902138414027873614184729794448044203722619980953852898841161727715556366906386512669756330041275935256665598299042249512698656683821862445985732757208995609903558088943351932108014570490657364441028308129088091832659556418523905477805550971356335345677413583446595993861305940532116102117013681364868840187646453225409851935689978774533908769063689423938538676903737463171863991423418513344144626292723128279577489428564240619587439806574942341077473520926366162563415278894736832201966766954785469477920758851989659194218568151219424452540400458949434627362533292821756343311278358465985991208346951385649372853849653244951221992893796319273861458743127152782794729367145809970613340835282550116831376683672633718176211537989684333911046231622889341354957403983395313444857883831901576236178087332039777067456204334066417539490253251235593008137942755276763172829864686985944818859749031661908054031693246332939878986660642722561230899475221516848496666570808544609407291062489377786223795066766363806789983524728478290395624488980325298117783937432724356303439553886846254935550945778856759246647718545730078996337936889103790570953471351755377924990189484644111147349502824468263867118653653024543468877693326011420986933963943406301956334389111302643734858700230895445126511516968075516153581649627168289836596680978269683806068290869921811551931409901358009006119784483510057161434749686087244054482712281934725567185178428270104381138116872709327481054995277955793455902987226714659403218356492419221928900689249971600881126654938770698171823154045050241670344283678557377901518570662873342370522157341231187615295263893398646570826413180468741334308219187877458929746956117216493345277705888818036349868663854290390103260893251961855324249154621574267372326960376355317020364437263813669056638604477845315220273250060058658896806971722878020239146243350360097871544908434415312241220657348557601370914434848256337095772635770313655250073052641681542909621965211368892536238130564575860170944394913042497384314037883542082710838997472929328927004082871806444789998877032965854940187146657292682456025572829234313114159277542291870185992717143457865773388386125532474570757167647542947732854503739308323777191484670710232841028516446555165522857044995862677095455559927008736016632434753584786617496447184419669192983349793207994246618773486272861383508891792545431096226140746029342195921137341710336109081387162954731679883107610306976965235262164792453757935193355055199616629455262001358910342873818114814002170306882477718885192903960757528598118257531881689585291040210441227256046733716358063080751349600295212415464313863073047192615833429997811124041682708268449300621861489917424254171086767332341885972813694043656289603284812827293213325478235710900883053503533537585117819609774950908263909501442357936888141756554852971215134125090421995354392453314140556334126311247499631172825571225418071051015612548017940524016434133154273371045457613135362053712366712044785887703836034708677503690013687338542678437906505609222353115361267802726568081582754527688894256871193362527961778313903316233381258965705969221673767966534028138176166420329735860743935046408424024340759769322523600408599096615316691250157710959433378260922324873147411097759953355309453056953140522184257906243282031298115156705798010722803404333598757124793467249970073735483235474016677911533828188417298360087969960029766432930770303961180074998946095812610169532352087670545662267185423168683644364084134317219459548639286250837706375068671953630733979690073356989484486613182306327560604891816269643841453819661088773415915010154100788603451301609170172073651063931386111859917356463721479327730289183263438603924178993285222518284602330306047097250898908000402739860268537482418306738566304020170437732414838681140761992756476165184026797415487291991331439308576435287861339725563529599036250673810096900735534509457547144924139648161248117604735130214715391127580773952843552556573805755712504308017875448706365970837743737916324522876028452898728108690079476773471345942099033567950150552811564231308069014552646443159345860041050450709034993262751717534012957282381511300359868500907956939697269504779317178001717215228720928932354059960066307481015872709067377995133974902108208270169536142054832421450914878299878927027229444589409131414961940097163913725107435799228401948469552146167486538049274894743122980069560498615829146745716694881438094732714316145081817256758698749423826831943597022315842930055943718417092524687397949918846263046204429097276457404842435308316162192101966110379724207199060800953833114922879016698478157529132267700302599392441689596851885132122299702997860180287495437172710269605483263697454131735835652334685045286171794964656918485853674062982310354961589545044500852201018140066324053196114202200754042002426864227831159312826607441450143717385947864906056524974256574273914106987229691952309469972753643160281679446804001380991494009616815990927889347486867746292473923181390076496588490820222308801584028661266600738845906466750528812565062980602831748836949821833225790204171291344323184973208564906359491465405574531484877040980324041443995765307187024221410815028138162359581009173666652666863416090853202328855041553024205837566216908158831511195384207720759593448998752007264662897693188374880479796942028990402398436651285759363713912013018586828949447107034114768676361651248904194237113653378546254162343308610464717430603033913830196547926862006380992793601803694001752780318714231008207688264877038200525131221309784799827579544364037788808311996621975658869974085513644847465218548690554725572303487108442860757431378284096889229866408077210513086533138643659785881774167981722225322837577214772365948492710552019894099918104399771814346379992330574389187198087339827193709626673749136048701270094814625419956795394590085445465761350750030756740307549571946288388589268050449212379988361458745564906330406420413626227592072544477930609666632203898282918061749545438384890342515740281255281137086353048611633404863013523413714402572874850969644091423448024661419597258643024978504908951066727619834495682734987424533004389008188288092668242453552536656791389437803899747347599905619855030749685518090494910162337124061069014524919536483511247546990971955162083326583846125760001953594743940759205455325232255388050205857102554090519036036467990748064917097623494731304667485705090176084838201367937704103611096381276723035254011022439651451900364695503106746110124366798182394525641221026123335423686461703844466849304621966398771170718900475324377160646823247158840040525517721185356856253716993603882774315477718927638685992116751098602112545506695796666302347135784395790203737858429461735323562535986588903706746978163976926930365159866246097265444833094816248228691091007936521367956030831129728067271276468673818468906761015894987185678295310182597032129734079094309156029769385747030266265653364210406600760088122047477310244224864682835487294473706263743333595379809490600700660232936708685972806949133141320390665535486240297202900585031111173929474685760593836237829127431030869379572116887921370524940337887622615463431949355115458056737471809151177522517402249367405959867893915210306034152176632623287960524523036284073704531833223126545185173242944354729530504156562423175328503116757352969076164670026387997144005487084224243806499458350686536078093282496489723705233322579405327782307318594386356866217761978260077332653574155980099583566765094152720362890180971052851506151181520609052305887994088280662770370922647761174131342308205081613750380946159625213197894133132000856273281542788147294723003048985351356574202277134916923065102167792402491351969336802239617178095011828385234761155523980630673274168632194772099343777324386749413560495443829742060649928961996622098777013993737035318360647364956999991314070453977406730895111762325336264393636636855644012625502318643963708973165749037466943787963238184610238324969261098706233563060108775482193181556708258767880911679993054348897698770878612613053070481625342368853247035838612557268712621921788762933912271266852588646169519277139815484008779171569632087629082122168075345829675764927187498996118782957822525886020458198353126635858799350417043426872970411801826310358975624802265560861167027880295393452606694393277538453948573448491253338779144085925372479253111339699017425446577892789733190112042021294631519264385851361624536254716186698617970235980242336060945443845924742951522717157148999644890314040546114930384883311912043301329030792092120394766872179137842188337579436247915715287841564186799770071634642547170338086610062567775486926983196951113040264197323180423319157076694207881068897017584006510203511020866767270067389292246818436528872369959766796527500038487574800631786268256868117014050309651861235124929911084975087526396804980923475105036577556678389769454479903194831348753828823138758173329468605127273266846757352363180313518782149900657144829718197743690267616316475119374122642130776505949878702583279046714890179290716542221125437898004531021070754775903670187564290831965714641168215042688643677417665486273090249625570905697883361396102350354937927702958809013460647311671972201220861188034025737283458554218147445143964587660425334402508677829868742163521744243611438242873490703672146975634015436841940284075520975528378111062986128457734671344647823690683262232445001401038118195295096755185094670537599531767965747065795566642203259663876761372438350181998378185189040930857706427820742984578044453700663486182533304308420478178506838257379802866800856179910711515744966043854204878135114694201391066564811034747895698545966792174050090552214356431182900354501376223843715818651122778181125949836889314990781487734192011340213813891474973306394371976028985097572160296527005940804876745528388690419971217002577630855283229013833345641492374989721024764190267956431442457401090955023466523619126042702647576134611289779045359912405688145834591617962919942628080863607711180382407867525174743179046960370495437016726539232267379680636132520177455526027495057365835022409317551260108919540490500720039497913430519899117676481478314810526817114967561648106089536264541173617486219664273437761436533084946012059292778260580180508345357478527098775106837686780901062691848203476765549157215541192323564902326404960878334287204825501982735681158877780122836910589584945878026722858303077078850904283624662025246179647808067900608686792215990039746137557507531823529350460911032571683983448878250749197832635586178915068682234335145589116848808558200873875594205303896639362546954489035156337672074041847902923283892123896113204280510835604879649059978927781928799423044210528546835494943808473371387357905544194405553338041098941819533309288706858702914132093956480557444748206793652526262639327493163404283937287927842544324281520051055763341696112412599275568877537057289986364288401430512772014709934293187389789005512728654221758562206702399252646186548126942842331013277359013536690364544376413736738205165493195970501468297931890430938691089938342755690411616571143692290506944239734511278555276014189297345894772609036053925631834713941089360375844331901153024472736196866050554088510802792752551720178377551372028879319112438588047399569055852175138324853037487232612312084853801983905276944249238692553093735038797300163898230733433128018036631386328348845142384553104700187241439042955515220009597980185875394050262709643259721045092358562499170857830724490500342309572712962859665136179783048377943302091777938667860469147650973927059222950974044843767583968110884245671678549002423765623264841303920682526505234605916095074409087041055097046458611428874371763809975761740542248801607839647902687671551206877956663903710173830453550289717856938376485922496673591204099063686475995941975075291342180294505396002314596720450796345376777147659020867094578209998519762505700592904235838138620470840134832643665734071010528250804860400195283696151188562252463357644455864094415689057213789705810826527353842041271144085814053282614193373482318984851992727682205673021610320405298237968473821516895852561372195008852801548731304166884646524637394907259099043267323760432214101885799663758927078312826188131201998136581212735172857544956760455402389967414342135458570323528538257609574120967962772105026665263303703407283117192341472380221833506101695235689672731455670307038766884004824270630830798291289102391024751656024199081139733578255129778621672883973995551759296279645410280795217484996714906566472290772895230880202689886688790358831818645919149738724930668345408348435984691414490495356835979032936542117665912771205093705038730845405086079652877931233129364031567088377440646427018242601248622628961141119689356019853828684324288650076945144958672052014264506075129347129230254641418774790109199184187126986999572587527484019985684270442790593559942033060813521487606850312267124220112286259770450745051403251624102444337214813600881953958585840148295374046414664231696932352233309276970285182933865672989555920164477850985271609859486564866126210164232002905897867043217832191007113826557165747202132218094034172999961547069077063456634947163845003583830299628623980541831705469594530013692097054339530630885707101034399486958582753007326633285185802698244269293466224100528109452411360269048969920510244083213248808688830677171015699655197928641680415135826762323667453773398928934555501438792316267740832360592158219869549044362090255561359087572978855749837455390166138472620311586834638879162412303112207235787854051084951085337915047739461519987671881842346852595261747555561632440904070744310604351616256346931224232663333369046958477831147033800339710123512444541741280957770606182818901234485748420569784029646230217855463584108972524162504017092068249623517893559205970229641546523416319779806527770155817748754813174354670719652734422873704955709426910839805758259583084258037269543817990045590526983613643891158589535435347151257350642193691516153581057950691091700544622759966942833963191465814852042602524921091202699373892164751384876466128186797770374540213794695518933376137209296510811415514657522656463357028368055206924053135277006001360579830547144457219747176948702758288473104719978611334535008696090600935931410497443498651227130294093198599168309288316372673378584175858436276055269295100108673163601817653244188719556076449776014560000979428185436320980371311477130287405512897593167886836093554862867867393371032404928844011197013069154347435048155198737363442757906961718661173255512826478806388679652695042941987274926657251687196677942108243964260398795331971352624457096191746370423258238366814723600927225218240305815422088932226946938252921641381645909551307042634577889386556436688957967590950836334245213356157808795511717916646601748395835567485650467989989384355558917327564562414041727728557216850230965970705516632815753328591277684477049842964572420329294632153077078069938006592959580174135318205639188827163652457070781884218765284126935485825671278016546738884127056558706757149288923216077842913195415044235465213503328013954263233956622716875588157038176001491734162887057719470208668368187683811870482563328834353829843523560954883577933730257296662775046135055542221250597837326162350329109081765699116790018364033348965450699932408119793532014006259608390410760463362827977709599575439432767369716844551648445401255911365724370107399206347073822343102409147914602865474062084068414126274481971015671584348937461643038924388318925500478629928472839850903137667721509171131684916617383508424684739615572931247805754265683719931888583312948534498199492542466408790587396120139170670865421304611388429099862957915820178249172091113025315064066270185523199197762676072202021505665208145258673528693180861487419626576275074729799241820000873310736115325578177885252881774399834310824455576601640752777238894641866496425998957626489543490891600347361348703494146525826261728408820019560730094469849303578639037726467891881896807823172486414421368344011532306069268617165952067607217036453040405485991158247543673816083052299754012258087207206216795049798901846152095357656119815398648861924352068877836769563899483189002142032576089902244713056673196123295113835125518519746869740236533926558517628447168092594617072056616358778587384215668569190158930045271210002743417376397565326476898671992958325459687482523235546248838990670851302978940900668230983972011319184990692516260067646141850426805249841352243975989938392011721697922664395766574387712289854013485585529622845472728588424955587255451470615552191482589888666415868252613341949166699744962526116781716634854897034526368659394734889664833995676050260492102545520043022328305004977639376170784677670402251897220094828616034016899742957128926347525853196165079322693109159167210592792133836652515325037021315258138047852526592750393774364058993824265299564142817352124329691573747862170125505168314308449797709602830799533618380854113378399998322330441171943201115848781109167469814394461708776541145747967268203705624927200868123465063951079110917489723555928040448137311819737436064222518031215738371684473949254579282012565859954090577502172359435771823273239532391192282949743694268994395150978381696308214064648647711726223422200080848234440271818386064876692596643669367235729095724648146191334921710183499852918991079213020967945135142797034399846104183291261449358562194065482410796010945757130924037519569048186410303121836343204129836810881003954325390348325021481768316295704690737333333152664554308002107823161198145404834629510788129860031885653017371519738101770697509545428648424365812417420306465378099220478200405091296292007722950951826112571766294343106796141277643912172857389301955944555506580344963781159473058819484016300214460148368180534987039544364367913164022071590243212433836984069513976395604582803158014224317796379514217376562066923401998073148388772095084127203920371266703973762479679311790285365005726244277357394147557520326374659825100327537938224896842869407523274671285743085708101952682314094975169765516557516932488282862978477017972603721616828304393697965888212472689097006850409516828569105216838110334397212274528980232486721530648872081135922079526153542450131965092349458525961080784613333326899241811871624108976847720085685782628611968757471544204588710980559534600711574550175036751016081003906917420183471449179245139717412212744374448426969540205663866060152216517989290072442529138930658196326256479928127678045273270210346110479343599985936941567592868026794596508186208985829049450410786372009022972316879437518641925482705856268156796434464060560851838985339395229850466333432441384022186885801983543892723736850723338714564989046208116902332670893703543436484453850265801017478700126840445025986540448699746084912887125687471432858554741043472701206842276305248196823832214964742092903279933180157889826363717206322159880842797525481001568679962543125936541132483480126858410580560121445442006988345610080035359266327465510105508388791670645753516932642269985540445650561151516419704802372977447384219668028690244029154053389686922649631629866775895243264333888665519603734659110255280190869199003586501658519887586335667117418413098457930626557076138986455558550658983120317445093138715690454112033761845021286240537378130662198893763526904778285375824911988886318229316857765691029043922817536521288275330681555470467667255152345738229892233632929133240922657472456502723855828354843801681689133643808764950633672661763529260091606186504379061824300598040888243281689103640745140814533115999213901914659300157887323749769226559374989340188938355324780205398566140414881835403732231780966722836861605936420042305142256577611803806410604688261686936631693278071098442683224716385467168059734662884400966269854421700246435408387181264133041188782994649697896131191870853817142314064767429962979477742491681608101784826281203891373589029222776152229917926253328641611658353203231251956008635149730716609559599480713051682971097190679348422568564781626428938574988687729535975389608910342249386580563543122601967203422642024100257229992742722764619154787340950513678669436308613205100593071223827133070000870832274529909774172840302734519130074913055981476871309378637729993954593624306513587671024644919481462093198354853509378781850273841710926554317014770556132201375137168678342072714537299557362558506496552861704343665622079070429028042834942928536934526013978183514893831208404244337430767256342844540612451327368961878966296378280494405806263285234633413066721298025396896339559088465752377184411407338440883329094935370843730742175921065123175417246987863683748107862369676423768677245537235391767026859055088373250202376686229598301292198547951702702906208788094572588830290521973814195313323591979045678058880586641393996378333319623158912199417505411755752542053907690243151674169529588616751786237411239677548386714761411390219413711512655574288274146525410041762221700242139482892862671138518400872589816596155954652891126680017230451929909506723798061849097452187752100089028272281858570090345685625036731752041001512028338650435834378182856285837667940040492535809531225656545289936546093765754339117212807849900093519601139020567840627955333518148006573475012043605502866182582890568330176121950890963000972544260498219783110542567423531894787503884010366881488077240256518318908676935087193372843733763768505075517821280341969028000221508643081193250508383608897864254407765126480379251316111239908140260383416446180439652824667739659045652985688106020471039720157886335469924931087978321880139396289385583553265149635565541724615445654308406364895468347397623767501895834187560199634708572321884251066658317380677712960582417941825788005550502561802392204606624865409743998991779933227651089746605563394516500539521063764351549222369397908301810584728146146716469261910801387928383624663201049253439893899704318520872061441902492766399854187126772862715811950318443151324209009282203448960446319917886066584099171203114607302287549976467373312199054780904502475002226418445478274312724120225914569767220585098943050916920245332061179692465749740814579125609173688005954701452734659261478358005616304741852512257222189567574365280524340538178101380295908197541998229770887095357015951687996953739039334737939272610352091870810045808309092677524103005046335092511218864172149173157392609107196809103629585543221626437651668384440481403445296493729255971406603881841991827081868040988414874355435704039409132294184637312247477355818020740627053425566520598064948176356052092535215037044484588228503062305279313991428735369961569327205634887096942368260599514911206182673079925769921809806503818747870231618541542091005740040977327922554981356739977591668944637080653940929510361713943132529096549974975724588643997004705841021209676641501174739026900684812713795650546008783487625606099926487949104023260635500351889124518106615627998028017788811722755688123493398482658831117482630386755685733752229635984798273155934610752996639025355943154608764241655421331228071150396549824344794387290301911849932682508427621116062943898080834668525024192823112159054322779958972907811242805703276031540960248242883414904175601739258070384323760409262981043762990252086664557710282075142076809172756963127822685606997231063988380509632584117328530675878386875245521248839076854899834302064287149660358384685877751796995310481005015206291297061220485533533604895088278104456607626863637021626303116063693100617160275640398837300751397927537804732155008493069896605789106999748559610691340077032881257774668898426080233502779284080210033461252674720852438871630765668715982833143617740946689827222599087814983630858858595897357689574209465559799349458379171609572283489829223183116539941288193062145514079566547142127395173528170732040787974506167923992578285358906925241403321091249561155100489489759814929639383880051363250320550968412588157158762669240599118872398510433348913669151528501222180442068152615854533368643194054970169848726058946387646008576434505001910280251885198410885183856814944929950551844769793208993322425672514622887166359480155866011363819003395249984709960092491461892410665823190109577189908424829881542761171166238304611519781793619421591649250669323287149698400058966682951897910915759207364495004480261386490813302921296465129508288393457569830326617310625571908953895941508308613745322202455724056982761072904298377398678826310345490742817401221743564365563311286767535209452912626421911327176887309894835579938481374587268089172087918564319136080160341573167965110750128073321929067098803746975485418345696461423973050465457755284846840264177067585414570623099008511170758795071688944417729935861852147674036119685918090718156200519951388545549436478502609445028997667590539426902122044675402682922123424694118292690155377126503225917841125065902597947057229449887369184137078788427788569831254047539240758945861723160622392221952547923540599227485873968026816039385634805191369044686248910056438842519373679915069479693550477632162207585063347831410671880394401838396232462555038013143054283794719426507248040985286992840829313765304789642699975380625988473520206639224512361704363991523623550314862306374267534809093902806856886634487249506045390841435424166177524507973231674661407788448784287002747693718969928627080079182382745472581445418475244658046177797288375150754060651522890740062158910427316615045523522546294858681962139260303072167513109348231731560365519943431175904105279504040187549094812023448377317880644572314897977005627446874578490232982494885914862456153011096811123675810699950416482472393586204717196875430964619524588868536012402677749403435971419445717414880053973905386395377103335673827874576430048595500057209498244120700067568247824105645443394608805399481756699299480698686058537237671872111505225667853153410145646746970327363249796694720867147510386522167026552525288635601752438716688840442655421391367298494907838170074055758181240482579827516815149638748867333902419524885308138795559064161008878125313451222515457082089222221372540972296543086537655483598768191557744648137155369405663860978986972968058984674424437750866205278553913842446460158225213463140408528216698044545863003405456846515285870824043081643044006810099942265979097500551584880153951997685764217857822263375662587674810435256860140690387627061563293674267252556583344428822078470421186460588832592839968773208558145595276705943134878519530365399277998896159755650177556855600335940656707919100212576233147972274924605208698682187262049373609362275534500254277593870327079873450988643569785444941411455325883632290860199309886632901629864261563964577643466062014429349757282402661309221370007931281546049616183676362519534105228611058045436234134161684581005656212510448421721652237901137998559213107924742072383826830413717723960828499147695730868272517617685044739893606722786073664765248778801964894464237177764184595103988528257888308903200494109926278786620246399632872235067610681521831183153763278455736712966284263060836763270978847267600754923367445145833970022132614375578744823612786989137889846677375280721445469438480494022161812247190610240469921149590046454312022493571571093563808628977907886548109248771079030098362453029977839888791234215576965388485498516444625913568715124059873520354193782093459079432527384715183275613573412918933221979831786553844655721878778242969518801633128555930597458321872294552640598564629413154442526106125130223761945248572853062437577667261470954727157639494112553090446781723365509332704785087834722500834641424999845523938513107869129980124591723482715041338457502814411820789403926656702589321298658308220266815988288011695877409330112322721344087527434520158776826145150076944622354382120978775127141183110708281836851727712172460149887876502065909748327277151577457591153153715106814407412998093733437836165415924564414126365575692843758239854766516920710962391812095613769955098163326195501755647867597582780545048538252045877633804788508776452175002678130584377251908336211413214386930688526007959201840421347401142224327363798334891850596570368662003263712465102348743354546293508606558575649765289330623202336151443892119579466562467484847401300112644319586025467958887787630893626472192117798459951311306771867545505407167471656469671426171765058520564478235900152110539144751328651645565973189174002645085558600649899308190784982281615851572586598364833162719684699131605363412691995451991970275709614897998012858248532967042391299220104467522413165087908891700499840243199570483649768620890657376443949095635767892920883156008566753549621915569897353169965085412229505944185781089841578461668903832301176989477620275270044117063123690894235977811928494239363406449551399004150002847556457511707160035958672972012582780420399624668654971644262949541366087746488305066578629828506065784903687226981866859281647825597803083593183329108008264675591331624098128617867704404605573903258387706592445588813975455386295197101367874497015776240163214223514079124193413446670793991209338563154886130852952608859989550688525865129337042560975986618145828825203287755664596152571801159697994595060932495478360212620058371351012759532881995691855145854899711406125855852969027212860680071584082852507038500374418706696925009756643019390119423722542840273625325886953851003328519030105514937060812412622829452799387295329632202837793812008663400484597876050366651445186598691723003394121229049628421048124612308967917332047952702804345069437584908134735534362978028067422403258326720528178919481690464090529630929753422200382920672101906528425443734850644183713695491118569025380671707947990312182641150747466855521401665787812373266866809763885819828654000766301545753985223238184287834677217914619618077834441004167493888113680838231684412363622288334998962370712330068961913581901379899931405584960786795984883082464732840366542455775668468755162985464905176199328296247665792417306564879677193480722467562277000162389565442444190426692129119639779320828752935547647981714764029624660181079551530824297910262070456018354942720439885675946871028366321148025267163763922266141031520755632126753898979773869942710330295667780481771606278820771292933021108428288471742431287557718864311206755517052503216463628078393063398579700762491554613039858925043293531555006923181671634458164606104976029629899683417084426252370079365262697718230734661859515181207201670559487511109165052088303856393185257905070646961521905797759371499756095080463382555894260364484411769231204271024025530971325548712157845494076866106344107194271992244793718748522613866617733229497208259516083023433489621808422542263612228815594894958458037472390238002388615088913423089756655449061938795107565063132468548550443104805763807875229882950046464707029160942840664059793786173054072954866434947098236882534761473473042478675856629764359134461782580024738013896670969769013737974881847739493071544924685032099921990157035164381526042109342912864201865588043035221822301192702264683497778942692554162739445338651513486404889691993773365911051656494127454926604817036926232007513025090129391769554595826687228453526217478591782003560282010629008566782482935938976302549495807729694970126164549552695377790861208527407774981627086854001761799505028679738209465037263660432188231575149354290284298778178598015553291069199502140925575076387797967331563718391827197092400204788160987277919400721979711869321904449226080903135430386247960822602622515147648263958267810518373397429691470655195248405710397259485370977844450097903771995666792324306136902417505956104003125170035053478027353359884266057829005806297845876284576728952897326354919111350335780462415229690201549542415535188671177024405427528982820473534122535017787358766634309123096248012567860719629926025724956571939738732803281230245974812643041144021305872597050783603175709678131131970760540890331961919190359790266378638348970056757521035995590295537694380858452012787357456493928420081344342988497407243381463926096174546393852319806074960728114758461380163696309317559385768114230067169804190323710557625527653685468453699823620215354216381356794883161941624599987956976216866762951683790527102401966984160928704522803387675319152140434987120932897667926339748113399812117921327858629612302665975274556266188953828107257085111927579656817512028507997783705879415640507418863304454414165493022761019975822598366106768519808748973748000231132523850254274183121144894936789914446739104054255829057132880195287008628510174860942434448651733479529029109858878562614935583198556210789323434218089641011788294288551772532645532876299162372033770491322382195479180347495995359067656736589750784912925271356636978934608378804984076042427720074569066102610802852035145413493662893908501114470280877462599980989979082111097055625915064701505103605802512330835323814589410302363158992457888510531474439054345815899998171790380938266092433564053298759565508369755226114787800328422076899536942300909099972114422156454207820671246686162199531286840079062906497435297090015213783273276580107003970173314171996079521849466372790659183840203746769385112475617275876962770223924696760448583737255199153687489395467263929578973028134763661096338939027496136755978719460230470807768507094719837147298583019017732672660212555287249555614481822400835853838274410343336951397369471939387707772145958447857087937493984380224612127414642591477043360673821764530668295638150245441293657478258392214089329902371301571827453990321919947935685640531519222335083123893169122284575699327480241491721503483684895836138107335360315443354326590002721185774002121314882194125449847702245802300676169140533856675138065706116099895604983284145555767708365437586032513820621419302677858474644747267370025184191001356538980069112887111641639672893355281538633789154687965884074964827848566244820794070946651720219803018301407578627383067834893403800530898485014819923282957824698650586817050631069017576532011717308589782092909638896075844674248969614160860487696193271203101547900975440414812741333366174442792882938133223246656312640077921415356381128205018755727308622469810221842608610149870825312370068926661938092467521155246950415131309680286140340192241386201927574508402845336703981792861676091181477748534718625095050843502808294768965043847004947085303157860817524710993768397783516573179963071824515532429128022202592085042117099045166724353172941552942816441023095013423420723092959223693770861363046830261337962715431164490788477409600749712867227264444195302322261925892314356803162802324405740899618453441383982693100141944250214718805992354759402028378128409861151821031936959359120319085189839194537625488985483294337967859784921038280596093666425543064785881761252053269456007110773056964012909142182171749984916658832779656715349006288759600921572091287898815706046579048432010991989660723681186806214412537087830754212179154376517369948654043570132909627419493610201865874733891140601681428339770668377814654884118067249054325856730391307439701722199948221406651159977899463201552901192318761194919661705534688304851452977493645616825253262168823979050424646707656786286221238288171369821162648668045571948543195872014350908754236570273058439512100403634934765174330370536425468059088673901704772985991348399982146717257076128709589986924937216013015485562569252605665417380902709136341835477589985234801305429766880345996951964935362498883908106823479578349435819071758679417630619981476374787925241064603547325660194477162801724609847641481980564705547081433107079481114694971749643668551362212835313639057242849788722140461682771363327227373559112950443862573325491026084082684605628390228473661853456318878863199049289619075335562739500515109131471692886353005229922150536217840537077271616083695313563756760593752123806693776185831344330679363857978762495008655948290620175235714365342029144154894994679553717191391752247858163819332319117891662260348356279900828191248166640545314158880672821667376106272208445719038354382301118954592352298361108656449925937819611810319010606580789455515831144278736756703377876064261249001145390865991404051423413446017221314559512581882055113927082975860219767160289318757523572108905868766765601068062736624401307371077114585971322183286152457869454214627103494660622410690249694266524129131031807612352840455945461665489080067443013648171150448917647731420621087684217194712069068808794632557674868166737674444560128864806610039320350981497020247196290775640766618136306588069697444097847520593270064552399818111295197492648404338030772649640432189830949762693261543347138243183683126699129369936583149154766058758129343536652519310461376729922847060431447431707965377260157028690283804851981223716502623817809451809667356144090178486088192486748719383695921687122671779535764653695075929255097168985224836408741455217986553413540648224739279105216328140223360511073390471100494471136803155190434066808666603534224184268701977831590446025030364594218793045948260015708635737079212236136212321912137388342792703023080093172266945873749588197310794830924627685485385561892401620671339536056154295709917111451351162039567002166674609410308352300922900111725937323359193056517598107640657921648561790137440888981710672636864704031233659485860330956480187680666528434776381715766202845591452662846227013925728789425357672235815563480604313518425808223119957571979819957529410748843698209815561655569975693952578604154585794120435897466547312394653111443063737321215955159010417073033238507658389424860556379254632847009924599898667796948106287392239485399372196096161487262522631312418342575948805056377510567923146970502353599863837153184811871009607191292015320517767495455519618635488184249889382583629853505847761354806338461220418153198248230403683755659802568039167438372537178581814842985322553306279019062690725830615714483525020269946695800629610491967490802401094121442971726354124644883332311369697279014720354132835272307009303092715572091596009747318194055464969540993983186969704649319700131343627070423308795928658827368108523753789033729022919143900287667349268129377721636844278268457779992126392465011710927094986764718287752217642082323446335929555517200547850151979677311376453299603590262045622421488775544519598631315260807566010515009696066050844039767938080732346042893148696698499558638769339707696394616772886669409856690235081070557461877321018394294353561120051309401235054852318929584931191716679771501492163552425934793218982005035718415007259080132624219569742463725846712617161737587769370284610369037087891983648599757912370499950479424970998391957071784857171075008277481642726191788109833610694109357750489411771625484697104178525765552949500603483975105025296866901173908130024381493750454824332055983155292931486741049156058453858365454989805614411282307840838532807906780015318287832363304666171407126170757125403985639001823028184811066078871306903628309182568257594642328698057388324503068851063086291474530174635676194114983168035120580830825835800085198849335962067219229265277520736686004966574238555409499649055596781083661086972011171875160518791705149684764780588837288736753554696237729807551976677680935457923326737554168755874042368919182622050938977165252539932540477700296328428688726443757352971004589284583499405782839788186062054150176724290780791249453285711356254219027950123213955220184461519815910923487516724139715228026688187386529474689312983708600199628409832013072459063519461676186280565964452082303947600383370346894045996450236678666889149377938161930979138895925721034528393316491004492307149609495204793752767474391071421465309010616340324609836354624051237466580178870433617448562389151484280917720067870066193538361496379560262754244087973921282168189610694547497999842475655047392264755727076002096483520060597415272782989792347536118078812452323088297376456000581571671107637480841356199610263258867944730679315819720407716237272969328434068753460388042373729671706728590899357695608946157076984863948356621714254129677841944956265502620397533197120616028257332644152944438687163312215528585572673005224591038967693554366898065635363502175693564640097002006756714340594286844869857135728712921260797057838869418425983458581686305002429716877157746292282183323666241973169229218117514506656975641746942832679860933488519289253389901075732169254689736053012720108978726160887553694464149636335314401879745426848016573708852492830525110989973612205397667530684787577280880043672156211218753346316242888576932180160344793929500109180931225699427881603006147947107259624802173327720742613543906446129628993441845411265777099563705451633349938120512239834883088379851447720090052296271297885876554908073966520507181951780324641678208182894290983806052219551223532154915324928134978747826958205317962990747586214753834274512073722862584945325977520027029929370671967796767132383689176578050944989433883910081633336581500678075402433579032170442320355511810622589781680655879032421310046774023838902327383194835544050145141770322111645036644150864477268293311435601854979208659279769140297201246476738574932627076738763546120934081463814775033632386176573581170687023438048867802180514560110619437285064708640026161615148914101165455369368926513647409618226274223558774143067082277326079051802029488008884376104064110404709525760255660237652869514808789726676790112246252660126423040299765212437531388597877714950426380603171982729756227911884154629907816984084464933913943018603328768950367490743899252563114583606763374592211338729076682858159554195258382320587674801176485524555616941925065603485473111302036155970543185111439359113625539203294537738098905950505167237936637711785157596697208281901331645621946318189096049721461874059278444494164868876608855179187074063763203554264177532947889579324531229580415952786854086953356221771778667676618221665284303638551025105835934914965172728083396542153037920428345297051746911590770646459666878575379339922129956438015934709932624448847163373388815084929377239182624482171425795772320882698285288468926084280963465073219243142650899348185269301065870671787556386934503219526124619724588739676207014338521979214996682832257707438388679223015153991626567411950501288594058975997701962299565351075164683250945364670792453135904614195324221071817747842211594049244347590140289186695979518482210311016684643193568692908426876237222411618863078442301382853285986234610281438943941368030719593334586960261005135758163822018571725993837184320231638391348543229334911040779606921284232420860409053424854154051089180084676867156175108095159048880279110468962001462283579805767546432028275908221386244965092043264963462029876643681083555496992151668926653078116780184949752566187889977045407817152209256579043015317791989026756865969142617124742259691476978532136113694518956625882020093443379169975715662488876488938568257022216379951709237727811175790700586658016279758409507751303085033288967074865553976827597879951796375859697116571459875729636178293562577584384295618750522832651223446130700260035463086497333274428226095873139957046279936993289836866753954537445076710962269909901809243801965827617152727261920626273738433216652319232284403996371880285616112007436731063620148574116453214793912915070568176833283881528343342417632130311815553821740985373126943528496624137623746347103136587937071912913120707594662475518949771187779300435225684928275403843587743754848163777416423318322019799318655302261399123487888007912265932860490383381177073404907786451840490108616669730866031566485716427639377634862757231766306235501932004635653838737196087251785288553257847302787738092491052216281703818981628077668587085767130746782753026126803852915528659325113182161942569028120731295570591532183064112155519286122190501902669932756654076385963293078161418042482460114286226726589144014664813594806688333716314592786241360769184085100614013408033349392659973316189217991748616013064672377859099268195044953593398462037171898026409351373851806161220338377607362849221187576198633869439347053237557326468238977325432922305560536441684283120129723661664936885787094602667230032013350123084810056313429963439797608695415327210210431178303093531290599959547640533048416102886183087834490451483760545313555465446945460686629228664456065739348253009424677008843082557259446614766560766619272731403461387442106580423056479293791323265379230461165075801832581305026895277226953711548371776443780071464350523364321185537904026120610522465334172603092632872021648683917298669425083432507302323132630040043795047203612264163815298743122681230884521314803831129541279109630483358412377935408055382236982006014350161898457506858259905412297196798811850578507325678346171788992172865989954527361246793963377400612923175745407273750645977439012397691636424098911768322844514340448121387290980378999460487272971899568693953329294202522621628337468874948274966298371281978322504074723654625548073369413527864152682149602842133234096662570656116291575707484829672720824857318735617384163875075192096763621895608049880621352090054075391252884782240570526285543693636227967080759228954164903173581309718471591229815048236838555974674555943073843075074669983242344101545260110046624302318933021464441383084509571854899516465293256194214959784085582281092364063935812279711307742526139709333585533905794198020256279515892870534804714342466735029502747012389563075400695013849884332008671226049467662471836691082329823955395466941262532734704491067698093311512547998894075170898535227437768461579388902780190512092390765461849754572294245730045733914250418356274682552780167999154077429557669666629746914241107135233328020267233276295464774259467219651998753500479647324612428477385535908762154457026419163058811279530411102306684395749493225658633332692120964861119115104959212263032149609066927324451050613258613616825582659406946172252887483992495449011113082321292665446092823193677125549972926550516416287423639207090271295979852612964656361411437565437549891499755811489567779594811811896353125626350505020208857377459328233569702051420583515510848638967901254766736487022255417357191373648780734353779182814135165812035968416712570380209626273531340307188285473193179373419547491070444872024240790509651394918467418001326659629467257513785354726239452562739327029142023551441208101848989060537142712725769574550477096923164508709966740773064571836015956077993375083734576670570217924777964034517957865511588465272632688269921380225246876925834700012934962471221140361860007048988267207068402658624949062968259602633532692010858063421419129711075142748213377428029928407686869332507686687095534292416990786291762354911780309331915884612826328056522550679124822531843050579518413235532835599016173850701537580567688303780121074493662344319270360594627877822535497735459739925318968845780541085793993537569667693100213667497486982813089505153706886548391700519396928618669990525864052133659185014845323881239986790075695978441958414037999680657675902262556938062198406966867847152058692625402928489609717875905909358478733342421787137562267940047076410164884933773530811305876119606348253689782683352636110545369860168778074477316331341842734607974202490795657222640474131438514485059891288734960836322412307237911796912081998915832497344507393298286497427948716206920406152920037958283404131668109248246232299272231422965746681696998919900193061887812853069061939860763740239550667372660114748579426437737584405497753589905928727157241126590810474261709947084264271803604170545649627090142111298312991780024706103876847492240966236354223679408656185033212983727362758798150227435666577314556080296867443297039047028194114465190634792171725472565243799981423382273483125599055653597452793303281452661137993517807795741123375426054652523991969742031709399589020036633096442611845045934088551245870850765197406243777999616759603830513653424615969002314904036229634151724847066967702822643520183206107890843582581276988816447596401210673510042456697931014398164639415241700159395535287639303069307540137206890217314470714478717501219154181452543302493254191235542444494786027088672142122130489609401851358075411082491435284920827173779088286012123303845684872342801884010368551740046984322014238743464534588388519685473797283933804008489943507520860477127762834059467911448226473928980078215121918349455646663292299845159361624366036327257898516546077309003547424612416191731954582608069461303062802537186301124473205596770504817811676727013317937533869434843767830873943438383447374580796492277892190942645831159198116240926586943144013164020695504664402575933263937317082213183547134152785973657956837473375541727533168127860336629570602738428731993843932192884354511985343782765594715432831057692840936302116326205327390972536969216527396108803853019015131695635329083719370731937313830468835231848623622651316985085110190290137061527281034056232555236762765049399479078420250570715896722791557106079955581338242725065730172605482843858165070896970174596672719512004005059549401739897416902795036502042330561774674794516154934620253881049969627678673052782285404204542054696738566742185594926142935840324797860821582519263166997393853763016564404931977198286686322131788757839091125473091013789172990558462957484952181996336226072779528580606977773855563472518593674973436275105521611830049898337835504980417897975230240928389189055990154303501260730962059073540526715795653165479118627274425839249042578875569808865003423734415021290785188935070909102940958263840763229008661356792426605245112137190563861592226300417361546443414740813167980481020249228840252323865153774411631884957695924633638235550542547263576113465944888322182261511530212873603449682083573475450480075857850502769575365527635596316151198110039691099679161875899611714521112656711969831079895956763746240177562611135322964955472197389276583671917141106876946680056065931457763773083734279680754679083114172076557019276589448490489046617842202438236991037012952053225302609816122712851178717059761785657217240542661677245145711762551885582237964258913902515723329936725223617067373403242731021699432498063253816960280903939222708663370276423209552930529075562493381765249636962381394826749789659919785614192090346389661852444932978810608921668543044591402624281565236567303004440885640081308285458010292913786689410607477931563165842091845447922532809595759815761317326954571242134700664147560852954782345812883694600871563904255164907858148225633107765992317580898004243847403588589394670954990355025586954210891756673280090512653306260960569108475589623625390947689852534407993900922748681255529385109103813992226367532169495305588085344264495249961912235876150997897718751822834841234725139584970433758985617381547642901409066548340645129029953240915094338905411408021621296706261113570341187949882871601867633417320961664528484819609252588745114319227551171393786081057217452037175363140428054953632610893929577155643168605339246305382057653238507046057288093914794274326936635557745986005720455509810908043839726348025771295671948031487980163226984809014138454535535103158595624807745488930810340083854967255903823618679955331753237371463235247632888467357063326785465254596551308041586217581379337652569050222154839889461591484962705312267979804834982584660232035884020990598163761499414264402344602012445173220116219987938042995075053961558100938940843291441558951360248637253142389988928587632246612547812311095318068183146643980293539230791126223940027365118239423830036684125993126894341728971281696495220821890823891557393612391530721804246164296584658558478312817522013474642362934242894462315707465856708687628511049839011019776213594762287369679054414901955537360057273104887187098438723732204215961325247410570551088766541306344395020292428407196642534978736493275634023076675745419060707198202178245514168465266094370260316041849394462797539189730154160714133818238482144709198378701615065372455423890372202491336564229499032272864134571989131945477383915580340555586190426789495387308719252152235369555962718430513900102910071283962075440352523548428261331759823851187314208202074236961150121371493810272102552524794631279616198551800503793414045937809791717665741748605638924638685276964382524355513284198447148011292065282739439201034044379102978819001658282777209721603853203142773743674297634987478767681637433723358744804777047590205082610879337518137601152338017763269213181068682189806553362190700260254283501407358383924304894609211336348617424766139773860560950953775460080366244137901233655657223723932959960394706447963781656659266014796240084694395503742203704562551073825186455256636976324571249261488981274516403663904256376736703664856979362132141427169855888959549673808027130116069677628354082005871592303008694833322249966799930687863221395165889520203715972048704587713753852632048627207003376537685203548939863014239961345247493446192761837280784949270182323043635318434401043130975076436402448869704635085808061530043309064128814568110546524771170001658796441208079873658069095391398801217816876777525509084086797440587444184658212731549463295364967836696625321479361619023507127304816142966382671633839837027970120847878800952124574372910414246649043117842955023611177162240055578910287598241711160938543748271228367193115884518334493446783535967743514993418864637311703165624705147511278242210130192687361479966831808914694689836646092611111889210439024448115247136497014145524480605243338685069530622440258641166459843089526604037306911055376309608541518571646457432711602417212327485448268031246528110001860571614415623343574079564003924439259477815679598148678094482624239709167361260713597369656955435764201486119601434984630761085878764973591071954594342703969690461571664553611960520492441536536783716360868851415341355419998127304227909814468916035220066113988482532932818399563133869267341454930759575823873417616483394780513779721732345304247989744842425461827069361308013852192430033497024277973449352372562871633558205231429332971992700274516610264266039628760347063649422372932792596342439558429836681478500738752564568598740784234328439891832941295225999745600760307628226708591102295233909418987878334285255280613058585567077931064577889065252355623496267050957024915910886591867901752952685852503331644556804351573613072782443451688436158896779955971254942472184320947641349801827806123052926516812727047320340315826441337022197922999004668906758108528112904510777438060834713142154374134487396351541976910087073899648095621879097644398391634969302453957152305137472705726402537900376607367541811316234588273641520042178860143283214415642899698022417396123175870493157354713275323368586270378991471355622132361007916915709003724296315485592647017168906773807928572078303823387614122259273578584654792637040715847429649656042716814369663758556166580974951520590377164800248581066842260780863770535123996981397065816433602559167885173581528098108513275812358527829602581349588000361179801903086999085069712364603957023441904205548412803277886641077536487184892809902361244616074425724869375825675506277125317522155680790010880616885829813992207358125338472119873829092550471240998134479115937328111667108610796405597979865893693220734847718357691922295164355262594025664544168285589315849546720716347992940349233398118437433360978914277180952886174963545613493279677194838253980416817918044359835774985313409126937611762659336842727806597206401594100656222947403293756546277051856763466637362508987232705061519767033421809365003967030155405030120541064122696200858437838065924111016995079340604830103206860189943184505808690700665523190569652237808125213925963814532639266189001682614361557816860985111894545771581186816134713348706439327654579874116441665071879818500447951753907797109087758679543099828836757209160143379941263329671305400489438667656974859631754414071902901673393944275874515737773079224300676811703914814012761783847922970799300720120910916353879977638320692653338027565319019899492355581337982208692670321416310027323385247822434592678340171737408954335336032023611595682661455857767508274193810437531588040848591905559744858724540464686533043685395325112555234558027891232142733564725993052535378099023760457922450029107764031353780728919295969900909184484629593717913554541287960792072286881008910594236690679315314793790659793607351980039117674746480823461195011135378908312535359919813999106864143079038563121394509277846064240192466960238787111323183828711741298658088432007245875990405211180071932141660587984733017422140291820886370954975225928559176365182211373911809853919410155421876672906936579235262970479982145515713426020097275333639773894529335600520269564162000380560417157474274807796310381900689055395305436353048633489522114819680268059266042500386554574265038146984529559388584621977484496507514886375332242051914041010111895823298731565196382665848811531579170802778462571646695570851258475092364498225384197707368513671869157910622397245605884638934681336498478776479281053494561095046074310908712610890294518267035867569549660000969166918714651063317492086794909429698822836486275346879171395870949609748340526689364493683533389109253588016194874522326566630589164008945312859404336681295129988585185710139246649192938947598769539521384820586982073207942611413461874932540338196994124562391814004427071357694422042536345270928181707896129987705312582012724027962269209252699769109046611550699720561841457945551359533714132129022031565080516344075110228949089153035478572223422416183102688444423790246674248165096182627471677672941671585919676209114333206038433912964933151410657626449866316115977173184222767577637819334763270583865923383098032878006418223804092588909580011714202914975243794458153679406607277898278420940922029057423016589603855725989763127282111174697929123671204469872487509493986539091651845202257134088110636792343003720142200649200649152200335402209899224534194526165261349585401910085338140860380014402495214206165604764765490557177657589911835490267609926843839338061275675635777826344300519178664297695988586252588114295881682255412161383162474526850063277290384924910405925596457526594841389406243204473307247497558703643826820527737664750249158478216470287934233906989734072004204266555970244105454826371007130304111934464060105414569156441674583591815425863558052654088361736313566987984370831603750850386279379895311692868861539876609125779457931040311400702163489092270269591800811302803673759866977859408393071684381760907373927438931530859970830365235557958984300347083233192976547095230214164984591112271935476385308600841949205897782217343207843537979566104527819806048622344552366393492289534525548326065484990802338781900166010569516673993242759498440000898220411582636668230535097974041493742222454478280158982627362987962256697115497670986267282577537193083363127336663953060780124875289973665210335016632318810293906847715798442128529503706197681841176823516965609913093806493601958853618031392642754712425096081968035440924163509582435711074083331324299230747145361989975444902024076005339632900628395587992329789725673609135921384288170701294450345392791764025658898022625931901017918901401827626752976736124832509010009107516393862730717277182541817006477248752723547835925705351969356265080288488425872588371426631730798170013455220320486098664810950707343311266696640260143856238815495818231784230333756150873033531880298166866441437292564604774389319230594951617668003849844221278336480092590909098951722619858516365687713366387432511787743348648335056877149264700311111718029075304589441436344340525457035177787996050654789214797442442388650730230136721166367555380646433298272705174902887593082946872340531318734327689774405750351631679827262158257020535805587984035548102567512607663256480015316357445446824292804421938124648793467293365604582631643229157630774281757703096718218822623954948200913181696901592001109740642720645596652652236102013314583595730645741625966763904133731502177183112302552520450177984703301176006464246966374651198169167190427499472822047435805227679941824742972165813600517422118003487745108060356266523757968382171045515566206935924098022390663113933977787973838730821466544048214464812288941042203095932373857588011693371568876416388871218732776260949545682381646467588803951443394394417641482529797849758328883154746507308194147920186691506565619032405426801338939162845156555320303239468874456473032195762946108856742046575589230936695902737007742525188200092703630785378375346426902825305726873735344115772624275029011877757236635867637108569127655396822746281135804423265442387377017238946557367610316071067711971874879086746804144112154521128897161873333004318026618134331334644952881533989735385461600202885775020068921413347187294001621862790759424459854850008560743231136339742496422096561186986377530880656160000268229515886826056369583039548184594579327405944782370946618787637746472266424950383996593562227783439789682435312824364043072613577689229366984694300805563501654704231401883940002769114042165419335048736948991264628683577237981192245878512934816523739793513223164489732814417077794383735487234718657781495185387318898705444251772540626154817423275347398557632662084004936866440601520280519733900074243776282390986784036029864077661547873951400428020543766496241397164168656519706923905954271502434627522439380058507155205347729380627759884485236704362477208582038503930136749074139017421976588736139976669069362388913312651625810170728031729950817949805265656226153984862843195724406680918729057143277249406293483700371177855360497455938492356228165741416654026128791478343500594876436062935116271563308051339153770481542012511754509401761843525553979566278766240838578501434937482276039204180678758881973939734420276013882603679536265725444308500832522786277122548894838543647300275854581484362758745636077128844398448317152100041966117054342659144924657692813095999782124630130038247326584485561880191477796221915628163728674615238153360622732939347140655765666198736458304922349674043718460557985732122274274811049151162313061985073088682591847195361476026654212696766063944268310612492747117998036373340751709543546053259779274868460147063732045627044398022044616256011560161430905119659318399438055734132571045911729046798071821855005636779615091780982317811613467392306555006878426608155019872953402684347485194260920355772523025611941374733280976124667697155615766722138857184185879352102391266688578844152037778051589161403089547060469718620032023609546423108392383756544445908406864187298591948073581019215291494504728308225456563777824119511456292655810955848247725177154964761483604345849069823830923476303110205923135572738980658698782162181994419565466596164034754319406901134724134333041781651801537882015655665286134225371811646564734408629605885171962155841469130985437029314041590016372138994637182836179616998079919655097184314910957669946054182844238038880175805408381304562499332976452957542494848041648284744206383633139362435402739050138794275575766992929939427272071628112311615038996188374799620170355480285279224131815326971127128727133909543066062468037582135847950510886180724539143557181030019530783643819986416148755980417065718064162718953785344890037334626730895060464010619579958590026722301287122933139211716986315780259673778599055318512122815447483327328812569588869102509591977765334188997729179520284033890101105891124057914770535907510699998523251799863364392235094337776272513451106055692840333115366741070611539305898012083463387171399647623349076194548935445543017127873092328792520147803446805983390592485986282021458163719157755041274042688439689955234251667408108784936119591370877394831156661606640440973937360175255574019535850447806536197815104257303733076907259839826653104698331024373105029726569859822210777728827753212550011593751450304098110433790869266599555325384429062606297827398585563201817224137053021290069817529645306292996239910998430379854281946153491954008038456847786571153199723460314899117571060359669693545831417679084676189625951545596800295763030461038266174701652248669791973934819075176355650001302246304534049811637791568805347565090808637111061935390963941140400511393764818515194791895852371644445268952798536454368840576522021072819836271328732841178391371176551003474289645007978280241797583164816961697238474654408754766084561254625889396821947673204343952449548987280564655943601137129923168976368420959525474489886537135816456806392094768267302242133095802086685501296578023614554354200454740635915741840458678872538636372491963941188395631045000876025393889720075290888137477495277942272905624542573998165936910256228688711747498834234668599784224346297470279147502031413989689382456525880782363591779717490827529191856099328087323940847431864801372974645777771552064352584977375544625482540987539804529523819408632822156993721334032731072947007097738715701962119638682928103047287641855032404712518845013990218426203799740874011804714283657475543628048378537700328823405455671090682201149482074416300123870707007112350504881168420942226386786099067234430785230397910760746075845444968476722312251808721918736959482709548574097605661532302929172052181733802075028228202980053840162872183353435871568101659586044777547007957922029456493850614279722501830202623742832738363435122249151520701093987409628350038338146665715287960867322216394700935105332564974004209897036297734904715864140343861669050587072719940023903289296226657075108600671147569328702429123046115451461071525203368191054405071662812038440864993644758042172802108172750788069771118377462657919117832908737311324476670693874318863946910322845630765961019471675946480479243466635360674718591337382335502366704184634525503163480895149509602702025967010426128407132881951426575440381451038719133382277473478597652236566295088726775988922394835997158906865679610880647961520100050045276938141431482556388646064869706662910447505586485157194482388807517178588124764834814187391844490472732032358059192849223368911002979261389788809875761639143698051097662940481046476328565953511734638578838210271055281884360407616576002577616504829694272311537154787694367416832268380487545618806265667342152981173045663616208284636567892189990431623505728441876209915449840334797218160338480806844580132512508136228593388073775668093494457116492046046750583375939495338342781560959892149756833811869864664258028308136681752731479995809593137850595956792542205166641891783987617456062808614905808058685611607382186119888008526767391928538457329832794201402675807851114684925657484261057614440324431829775515507330335574304806411812187651221220278479811724018914084803742585106555392052026750711598099011063481052214107921362419243387484407836881627791595486779042843882305894989026232322886961879360458112905325611695077667948709991976370425733284639553584308793182101326439634087415429435086130770923162923242077882815160043709083665565555980257342998729066875634902960590568121368881541902203775553907076613561883065665658566000623434093271564792611003822101737818809189635675073688145853564327348601548000552051920389937497220399329096869895928442803756295793317091679968241723069191701357467722227541522461932381271396191839492427794837257836004733501069022641962755323323315923976757668281672522338421112724487784937332196871249296704107497989197003152877587595499822004702042709133621589558224665425617755996737622868884541499133199422403792634444231846966068926266643177534465890106343239350270302054974710994685287553851513824384058391655690018561409103658192659885231259163509149870118461870139282435247191247764811528916012909483124153670703278862349351767576411739998466440526760560068322285925327625334355824765357525708036918827278626648924078853622997749968726294432353417372955872979269420115945862476526833006443902589466059631016696537609633149789326050822031867853388014507489654663108586770168957468783382946933307904129933151164560021794312300628650770735109292752342662608276241661775111631889342079357301069518720060060918719408600062338738605598361866409769067959161866218678180138642150638499462958554471587685605487939719377843066731769139582172494843788865919295978551929226548447584790304739830286466300472785350120341449281820191919528313869793179960937435894006506395935830471476908781947986969241774907090104498991614984757626224250072753977289773508539196956038296774436094373002920621630404014371324653515053114392569328270366811212324592411696486492055009675731308714603584731384286106529582755400731082338246283309865942660433555452583222061345341568135332437412031477053099851547321595719792970980090507082427766367788291653476388510020573106755831309184114039656257909379294515882084249136179512988272038397402988710159751054760364987966186280246334683724633570923482599231509821017227975664627469286478521788010055897030228213332825672467018122970662132460909083697986796006602595217775817338993526634893540691373179445951773990084357759231576514081164986465439940694585081929119342947221908556635921017549775421542144024823309258069005222729148678072839636713515523541876495913624880060254059419910845995013523838444026402900818825866375859690640411452205395008171207780265661974600282623615011075906877687209089526051569055324500181820184173804721523147454371722472966187406972834729624583507146187427413432227463219275633305955023280158011854081147133899629153919149921648221367047546903979038312232154488255078760255524276776626477083861154110386189007407299843661693349251174947020274469586558594272757142018911897749881932519725912587931556207348000740764776619101453040732173149354683802866588982992663281921656997360890375021175700677604219341268717558774845148766513392407041709797761295985808326273760630111950535111393849713088776784433636462945198835562540386817741055112014933956300294862781119073080468786390777410017471797705620804666839018896043891128250797755689126436111502298671647316054435194837287922802913661298566518760894719539336229643269530158274196647929347968966792317291540701944935303354903152029488287318973131024111670486312042788583383356531766767134169243995772163905639521295260533949483211648289272739355120405340069945318658674603072524211132228593982996481874888529361274969847231666652494364669805415354654139636484911308840324887765640456793277498727249852668533397424575637152793298819838565376367118702115838825576118026238805671259331222819523816337632261000920274425583917603645635501281437241594708594329814732140710249939886365195080293398511040298430698026088746374960544950848425730207832312442393025321254189631132740642211208633863398172590624582525225092411824966551979777973801372081960457946078297062861441138222444729748321707791564587333289168708275289819767751846920692990426902535046881792805952607698223037157153644945681525989801585811925684902119020177278411256166572707507855518629426251907193577917526440997625169545008778471914016461729200401422147379183786353012223325347745656758918914206457688630839691029940317194981273531930826178327309601863384142097465666564722765805112643356919192267214947320254120568745041331108126650461185738771310795843031815977222405036624036043266000439881350394690489829729238475392555667238447627119912362138906863239781858033084854345504224805397230021245918383976113438793041106905465044044147510454119193066069345386666905879127146478380229625539380797025249317927820300361331667279063067138535791386749363339122358479954287403714057987656875717690631376964988188297376589577623661039707964632857011655746461480226307242698380001708545829021151814810624865224610647092773553573929704829187908463913041554295042796380038085361280172903206150659705053915744475668426268525885092757745704681338467809321304671039678549936034038468047573600117714314108744395611057127975631159240107510258379378330331029335248229566409841583115514120138925420180115165263563804480387441159116643375672501513477716140124122430451236842303204640427836124019576366441212661391567032416512296256167100074354894107579298946986958928789994662984333489114388628267674137587339845558790627799682872294558603413068209527494958270005208666826497925212152713381785705969791949439550908194861748458712997476392877655484305724300946277748167366628473596830221496526648345876677657153564429041266097455948254115333491302974262318994803474367624931019478474160518615411615673311071556403207679463459543742210660865428425968177602476200188972595506461358005050133748490690627229869237585536205138326685509111027325193962877864639316598762591820509805273729739610651993129450491171607201852743706166005694272354335474904078931212513462351639390512941110450884144392210840875280609308554152809109102238387290827222488863481137394633560811564597903823776620098833735970775683154091077524689025514000542857385046868761300738694706183949551815120179105128234678979506108095281541250124672299160394603629452541643805256920779183381106212805933158712197092734164956872632648944844605837169972731691140375814689850788414919447153888336272359909269367651211274903112497978631630130314640976329706464748629040615797891011997780132658696428524563420310047831685325842113028261513507957378445016413856583939300349838235663774714779366296127463154752139486908806206645549016960173014073994110340717434693758406222222154406210806707850203436204423287966199432095115751424292841007714834542772623106241183457225891843871207909194591288742840918059058958820518132284698278215296591997469659511297808888803664884666518795635960612732497000890739278782247622924020284950699909786091855068262447447161108214683265837595623269907825145760903666401193532937426976653746384131941356211320937480593231513819006711940374959770175647766172879562548571451244916735004870274808241021680003804054222853545854372520020565605420079003568723551032644592753782226124879324491803411866212296199422623171027346130349118682827605068586989004891371849895517636244256280537799139097055270204758471425524407399099049031625769542830959142328727296618633706918101397476895052764622410035463633909870228908735026384974973123865092629555366341079787043047920990554086030640984865002848003298219625509150852471414670863440332348029537675879039563977594963677472661160476142486776131833202196534392500890358551091302091248176496306810574649023366129262668791412110061540940690491122301950046289420554248586378288201202822840380472446888811799075884301286194441237200222041812404386508593054121789549955760133857281038958906203216667339183343078379476193862838368151255441192570192421300521636665091710262565320505556733081320255372952581041132263485577468082144785480196912346994433317171276571161616293776588628310602249727765292619653985779033211952353838108638558023718734068939975004667692832035787691397555584439600639159915859030084748479251130923567226381959725620133568074995991314950410546871570221680943188404889826484222876247705856907138403744190912679317863864548397139328566437991892285909618996462429718693794936434138480902214064610026971620789533781485320930685110867395692742971003489838770132207111341630642559516660958141989643379135092693459776292136926676303149095362942978036843062196553750434789463352026078026704295822716592469451628076500870433086819194207211427409191279962733306604131733023893083279448460468882203233784585011827548887128389506502942252240003828192175413951812852556741231539798644965164615438101773893930986692315191068744793334066090678340448088950347638263642742144116046373136028904200853584552011052868323016156094030735457952178794333450823412428233774523943877472600402175386340316155249093907048773778403480659897499394930186198941373825262673831403064759157003906190705591258638493175797080033059183702572665654441010002634357897086735338653343220975577408014453630559664792565398827371397147839280106929201651977406941912893932787699410135560056392225042310087819244041870677308857550813200174393378814551150906457961466984729958348025702283318925878513353700738091856254143651985283381621718587409249895382699027113983002815985417404164761431968509198008636916796765909929682815269274656987717830397821682533003122806939872531900314244055136042649378013509508793682864094659883628655230106325887002708409759126549928737183139023725689360262250649468335115689010279748852308343552980491564948981131610026656373475754627861799421757377648267633054218639047292492638785936353628571454007007573397525375421266625306150021632077386104298562326879139279548472054520497195421035943832922361961947166987832202185090303957637662628063760460433938223645391563329033537833762070782882216637741066628433171892180860109218057700375359343902906593951374752522342397177650494323481562443132524340314778104246301385922378849773922838791481225279160897612755134216084297861718248266405289374876271117092344518106745660562887425225312610217984839609374620138471033636387927297888892841565234715861904189243031630822501944386864036338201736660022824978636077976504812869344191367099102956463493268692006393516145674433234131128011293212682870946102124697801501237409156114685819267707907367151127238066843557735376004471783352603293225159138085602273577515475355788076545269889307825101612199577483307063902313146544299460405736208464687052580949023578344582615267978002470590598238551750492008456338852878175882217761573138574945434978650079979792037866865134978562328716174058098705616254818380295393808039069472400819550125618418284334346990005179015236695422463519767862921808574743308768970187025224767538298668342550545361303569011277108342719649454369345920396823694957619557804112266080098749035179294754456754547867170096607994922213018306959974110495152375551569913476399599502418404046273966629892081399811225195607754321689338044513193389825033524159262522119539272249556508301434843586142166057376781912021711043418177627591144504123790308041585722822379487051277850068620932274097225132413496901271925634699968679178004448755998513141213348683138567794073671419249551866863733005574256060802144990156657800042075707996496082326109124574802027728469430586459448667194895151897162915156083175369131694713178407964745322855727365865877293706380609876733462344830215090874240013850098130618848437098462705416657172880136783761773110816043297930106677710632395331125859937879925644654124964995328621616227837474583920412419442967862909777992936109125207355004170988278400610603472766995349181482210688210358863554475802503169670036140957489631388634462795765984637098927713824390986252539091027117126058681809233631918828155964815676388275905282140508149028314959340048456874425963087520190511709973795267415354827204288931510450927059069592947573798793101283308758916464765359240228215819531750158881046278382053790221125357657731222558812432875056979085854589759709370455296541458370980869864951200011767149187898841856367182572291964995128720929683211183784209168849107480149318018317593182621407084732280278707259410873312301721319895630660797618305680779951418772984381446755223964691382593308790897364599175019920423358280942700294383563567306462504923614708514955384936571488074767445320721200039933175581203029095154280847069449229736455081206639315461534431116994873575486395342924953210929634160845055712713237347667296365270004289561589974873852954429447934247883028777547587163676655965843400929360729942405607509863502996397955788347451658923652002135443451868404760693479576989279014130765266769491401565458678495582375566747270602836605628888475237921998258811983386087226442618457707691564277395073068241410493669039890176709542471191907214839961306135052518938467189444812614790834592278395356867726678436945564462681934685563956073384237789816958913698073836087284884526620131946719627488431726628689259040226222298873617611333920178045636529912953514493680065347468557879027896503774903685289868739236552187536818793742626773232244810983568715714668289223044443536779024206023727711121866418583366463319852730590493224492536622766717802828954157631938325801475814969165000515361855794389877861006310317407972449481267529396915140903338663741897623218166106513638900207870092124101573673853776693110699905052840536223270451689612542655891531182935694501257297345259183296334682471225348855427351957309807878937089231742053168037370102962242585507698420145876938825779264421481105641998474062080310867281268963268754968761638514956739734519941697731782310759053285758956062434257288220777335006180534914943455733071948890399591266737653871059024015620380999037187142465752153380795983636271906800133207443839020576240352658202532223189841002156520469117338046122854531371580801247950593597981216477666792511692604555934641428440930914222755094955420009789010798053168641143236517217851348551382788842633617961555721518658151331223034104302341752716433615350963892395541656474981700544272602588383903795184254994119411960778885309715649169932933007601515205955113149756484484946791797948535085922504452289597127639547008815629476969802991803915707807871985202093723256415101545838534009114205535140752059328694562839184960537559703287942770302233648835924927714133533806394553967854731758139915916448362641413034595859118113531580916501378690047781565973701807356547803689789208152690955173087261923961397235494938391517604459511051548304782305799489378588651804438494914465823631920299875264367111042436381895147759856182868370843550953779299232321312243333734957777462041020740328780174273479202574951631663355009636548622136474044161244242765048715041566235650232155625512129170486477150326027078288372392312412933387318542937976317902345688764126136851975485274385646090847723983207959851073747187177753028256177541024692605499606241045995985548049147442322288483423768801537448271767314510116865006499526264214290720969752168678743800919883452814211760672459692102646862822906061534502570646447653728384510998045221465938277319061574891879712509834871429895967988564847160687688329887652435037488664158716622161180233990964916067159836262995821636088705388832446298940609614472912125878265572305865310698654485640193668649941498500542182692611105652963835124586440955022538218922024479663629144465087946764672071626361274488897437437401234416557943939850296920817675236938988417432497277321008987110129129969362973276309166710808730216750614789563260535645739951909245982508109105089727352174349313356255855245515740314074981229481147797927564273407578054067171761201296793078049170014276404185796855963757331320457043413566372491220055135762092233900985788267373409921054992378292297310859775445388266987106656269528161175206184157268783515067471657494403464222701324108185109570113382022650265932834251580879738903532289522505272018365443917288603543510064996342048962311555284930097756295869213212823677027226523976334685638357271658781177744517627904021066875231875517362641158103200859256635975464264904276845060620263186214444314426144965065491489947393203025187428537383790695702832602330697956637509274257700948635273640779673525512935226195915121857622310701843245166187806026200542147579136869374722793431552505757627618183976552098014137292178036819049345038522979183719778177189148351589936169704044806541809534409822630172710834618629412660032421701810148755151522141278744835697612029687190540409642488325919751115786778803218052518908803978421386544901030801081011951008393788983336079496402433997992680170307396775304645038939488310310504596948693154417401259011355737474216462844592739604922002035496775118153952553304819547687544105330489286960926987206422387144090720934419140351632681692009499860594607545624217539185401458372469212524593604892757640351908536269259077590167828898724987233140846947258613416665469915856757010043486285444609165680707508844886288745457858587946913420925219336127781813257688340457693971744532039832730135784941465444385209847469334530425988759255596840769034625818432821479272192509760151095075420474001501602848452761453376561859592742171540120903735828104118325477344423954280233239512611339119149964706246146021795305923301682438277740487222659317310533086476157797775788951316004328944786948532648196722640552580181322506660285417524569024032807146573300944359924666334560993073120372418845016920869811390362031262748429373623283388277706943789854974265939488109543760886749183290028811166166688001565746411641257282454926272002157600995640602880653252184248147616126614776415123653590516925155904939397287315411462229682990713950783638773548661457591579791841063585436620004833336765543137653208685620353296796068693741544123647806896407044334754525204582036066911345508857141120188290544282532429861967865099245551669300250782109238070383037842138162317063490301398808300460186371600559655842732926941687707559208786941884400196481505948040153228894535098797702634422609192323891385980901080814364811495892757024221145658045339591838435603563904007197244659815153970589194614408898773203846316963537578558324476664763423631085865736755524305210146684127563338462459124068450755479989699299163499542608694906265324740944431998901494650855772138459389587333166434030076183904991031944143669828323127891701402205768070662892732092236016521873781162314637963745324353539463991578713517424156621653452649392039423871235112031897823004810581340932573455856641707970608966777394764945581947389802719914906182082217730368408186737512210690416959447468093318329169048334275987695505928049466098959323254020719174015343406440670837185275116389475434732857966336682979143086539467502406972042191739663622745349700311014939309047503364414485118718884734728562750364109137717449213680097450406146670159712029946423176913987430931442804309530165471092309920487443500017620846745365693288363611801684898013994519687913400868737489571670957783060853565463617139155837069654516298974591450278255212683761627072776148879906381008446539547400089905442619658514122944871345333459259091476518151654898143581447132268950252173046360996297023763232039445113174109080881857504360645719492310823808504906334282862379956916726557718852776270242244395788474263381311982531732163187138491374240425389405694336488300191492568474786639742824299784678763182208605969005020085848849148622664309406258344592758931789742706138705244326049946258149738957433175878121369641380997426687786457818971622193047346344891354466514697539997508185703475662388644243257543532183835931585280795870915546458709063123933920528682950949316339235873886187096135634109414101054185907883588792215715956233660332110979977286092092498203346801724610462088246358126200334908328866949997193320789423207366591653919245663209711218373115742857526093051197700001810206531241829945480916301645064967506705789483254758157971485827430804974757164529270055915414065442544601283489025304448833370166837712409057920617956209534087955078990798053521165198978415818714572564982279825292623844245544669661097982153232240302697673858500836282053558836146575691436333523451276633952948787378497080397861502265034103113107116118274935750117442790870053783677569792149110488846925185027216347511178721635659569822129596626823595937672295489291071870908023823115795586498074921890785536707728175248488294969912181171499766518062237353290258573354550909305335520198122972002998028625027082783974948851825651607291206843234818676027485440727138521581095306874113648386942375710452117264534529255122711537792187727999721648749144042890437179810143877966366134079478878425359369226143455304086828382476967995775188334849753973500274335540649787447506463483393889545814254295510929044785129116754795504246672234901672136424781346197667484850327370491566537675276636885278400688620995594351485448861135136120779717881915878576449662856080192879449567773381676019419479689290359103382415090209379352931168162419072772507799442737404442205528787722632621166840965614213714763605578349804719250258694169350297082783703760809067024861500312016122647178750172545559364148098578425032654544808394706866307156192992670094439292947259174057622215484537377690456664747524400965783893632775836848078792454810620720251763905308907107546959728038698722346006794240684700505553148143389820437003784123373530087595418820181679544478096057657335317820940145853770764230179756712355283885448383890221255691438685658860447674527010409007356460724920847631982529774055389854451151066626008299342404693402307724601334747461429851873018212686752824874790200375394256242162142731010540392173396677636853720994544995549595712584733600546021029732247047047171282486123138257304442734235555465981382926415592939266886756729449559847754504541232228020439339127299484834369776456077747785715803314907774037336654586344099586567547765238784984553552408905471116592275848857554329432445721963056562027566681583041815068586803459216489483952083613512425896605755818356609553783994213268008967030871121308930302405515389533947526225587639295017090162181793096434934558580714052548862152342011320388988545686557631609495449731092976800594116105256122649446335124136159949848949106501554380660102483870117538632406948135044107156542966846816243541159342781947176643109466780127218585733815213114660479970374546982322125448092725973078645692003559796026195698511703086607896759157944821309699074578128128148544407929433516122551621889497799362534924541214031978310730427950127606410210378375453968523940138593316330180110027006828626183389630399985200947836065766763876261364224285398057217962564325978732280659677272634675029576492022605423235938230352507063402643361482023967896667818964986669905106802406247389481752801683510118847823191150734690697846680356438628707757188428745476386498686048913785522160120263841160123045613968968496308287289549087193605442200706408204306612587297200319343229691595810129273516300098468243498324015157959610068893518251551739830262246369645952207794467059952344674565289180182169786999213157800128571830335974361960243657776491387584266011330345710097488617388989186607666134688837559842195003452997486427184048346338929956025494295071918751771743971345669655806557111141892293871358092891337052962251920611094211291042413487811193311818392419587927913384074307972454005414065530889148261764682376485944000768980049879289545989749812381590259746756044077796832662981777082999513272583056636443717173650504687031805043307627265119080402501229987022074288629061556998832757797215044802617036537527524878750173627022917035588677014660749532563954508207064168136946620717564830998416272888540454832280260019741810124682968610132184868843997113192081277161246637133826768055501107444805159211348588627464896596224432804294327293324211843933349005194229647159081856993102471253970199231005409500913260711825878069593252981242193795571058709603157822673971216358998017099794192263786767398766858470399185202968436348357335214504659247836058210656980069648420077453003509573400537810333613825962187057391281419182060369881178637696639529609516226153691609371881055768441562065436844107300735550493723243649762396742109553105215151485855558432133442134856578302111888329999109925702285237370176361192559921920983941226114413718660763762880986008751658929860459542022062328210396012265519274042728908713157137182911017454816780730757570168907972548186489341556827331736321644926455859227202840833651371061682069877288944857632133351644181693034754475995225083250916630232009664932065904122773399481195039197346529776971483329532554444648744138876168189950446413757932067277956275182035584680321790701135101928988405370408179529572443059814917816968144650863868947907042615827354858993070753542482201105039168083202994517893621297082774658551378099331678980776762651852490101426521335077125177854737034841206967627731759325706121942200303994204490931049933564985315956109770895767141698027496496633243853605050753908203681836664144331722335944149254838110203875896700821948842907427746137243969142810241341683707135018704462396561591700837348157900981153981530423782067267152397467005352484387097722733326324616040872561537731839288293708201813779838561421246033625756051256985581800141857897290673139210491384645065179755460483660346650716330653975330040200427565748820800099715558245490916270834106017085087206947839072546051237416907917193231334987723295287277188346749016192686272915999311861711454965700797009541103100520433914043064972151750270365947098597504515719568975921870791039214672967768976789188695607402144620878625897810511579437504149835561490179217141875101398035854105049113807297642245800537700327405697644650506599568563440328864260108722100543871885786919783457351470955403582368284686297189979724512956894028483511128273408320481002986438534452968113278988707570407722763996795931635242480794911196930520993731465306345572943555389797543871962195243052982407548037058482224783114991737612425822190737747733380056936871783962890154840260614305668485357547834029387996766630697670152010629861352443016919257983584719352427893836273447393022999897487869377316743799847355080795970493393821387330794489415609311323675579922964326049289380598438149614468330360826755601818406871242915674046909801544393844080183160544718362161839221809108029421793224064532914852775597331883456614414805041087311511405989822996388568376467648153720245378318332391694647510195470340395261872060488033004671780626098364585670730454030511670475112020399308101195115174339766706120496915201574208202085231011938550906395337483563868466239149806186289884057757042404038975537501121020715129402811428686928307576755263612231343142126007082590986847014852854841976082397638191170073489654178415000656359978677414657751309948866669956595799845593352541251201227675055455873070890647529384530987936337528539499893239809402044303802007265367059864756632364052300969851020595808103598813628426753523722125429752850379159573242922354013781741440876091768501588069713053378755119882357651246863072460760490045657908027675190263582856088365248860485031760138281560004185125241602675634769571181844894830424624426187934171717430151245947712819390120157079607995449591873216547317156233595398641582283415018683072371267149825713972944574973272026791258658463849998596994084980022081240819280769696111671663197383424513940369176714619946128753431496672763245943362677104311775782182491230247191863938197990768443702664343653752617148459373722954694961306799563681026854903788075749417723239922351623707977812271078903159313636035575003349477092373197105825912632642211063919757831032355612204603669306300230537824687031643638089122158300251654386786935149050954515344495042958821430516055018601000629538542251802349105714860324724947896300342239223283998349589322097600026423187953106755932881750570440056785675133889701096512009885451343741714018643637958609495233392425634323334038674322524354394768642964929983643864071119390463175787539167580338513774419322742883079135529010630715066413104601001754146283732928202662049366963168988146011996020301154547842886827066510289305510338117272935291213019631555397067083493074539489251541277907248248788360065245807766702962948406961006756982929602823542645504195101713171498404996235201473021723819296056301296643783739856143216453011568271278181600928703712709670730552757981983438135004974413030975707470239122006905210980286980953529162246950409208345074916574078559679265518509589303622705211130529845667436000711129737014916903881109277428804259366578297428041203998612549871016198796754396689470393737564099918552275706313636573462159573036640203832378346119688647524678213758048633272736591454627046215252577669410274389602762987257968966273721651486504167016586240841682697635374021284674709970788567523506794863024406995932411825064800074262241614619744038838404504965189881250251368745207588956063181572837201191094287490585187666553865531689078184212405462849076089300470606550989750681727888238788300612379998666316845492514016176704934714034500915202770066026248561858500261087747426492953415291166746432395164230375266592440271194523355516122794092311936213423210078879938967787516183601299312506399034891956130431312856310213031107672698111753176419504075470051345363555227153478379675658226379023577999571439104753651128267690132286177587704145918319995433859310375243019113837157696253175050045086513430736492004264218184961178019398382696090626903886829773074494548606048564769700588719564435781911705225475089689318114950467365532541134786010796242460353169296427533749781883061986786515189226505973377763038956827229103086831003999823078585884301632742084843902284264035692504337834569681302597799809763141290516703640833088206047660859808143252607837491166688224690199946089884748171876162582690143059043128765300582698132383475844685766435237467803088354811520098001862716411982328980299334565924691554393080485842704040660426556115688411456546263272107159129891811039767358895376130394068023870740822545276159803951159871763858410559994781647431089863517897203484286787791350112231264585787318772231324153259501124755209710225976387055005583858128615474498095843969856650596772896749244249500787016402177087472284314647135056545377918638973028536732785227295757503859711765480226155885738526271215543929283687889257838120535002848569169445238429464714957250200258210720238352587448008262827074506927679844545366951905710437783295035027073524478275339286047522798426821567910202100826636900205064133626042466397084870309266484146028426288912011866527335062309888054164351700897239759159221818977007151150800676598460275150394704400044485102844338616496622403453876024516452696708176213828392546323835995807331756987369393517467122503745306616666583666603022634086776139072518338559164072701644646117360408999247159890446719317336475844139376469295446052980577042921885364291356332099105653691588610854723530221914436040825369438456383236445961457088328636738739414456558414738135701576135733233633270757611381652994959670049447056540843254308454741451187198120784823554324240531677101316962062728005047738448018659035531932108983819315810489560160745186501518034913599495155425231730376591882700907099310068669764294268523759529907189191570741221225332647364894740320369628555379113519167534733161009475332952067574544054623558184396506200192423835111499743111593758740209956132937533641543027872299095817515541154430975897020547210397095576972029218930337324452095897903862255046327721211910516185453476383512012815515444090751750091524038852752218576222507055269193026379121085362044793068964599343387875339670372206608805369077222211987455835936883448579430441278776278477006255122008813209410851136020705341823549204578349871588384525764983434113277874497619073480913155793740122290267019103234407969848722278654753791721449707852921517770420063020662887390950576059360013829826940241550851496085292454355494067363758537227247396838601020775486558286593005183938102738087882413125305235094576958603631350733330059665290092628123309238843087518378311313930651504163360317170009342127803006502500297875860115170290141540953456790211475783199522900618018472224427785632214065726886758420836142696349679326165583212095768851989122498456150861381081630620831038682594978617580885960605563505263696180841445031123206804283096901549792760817538691772077544734196086244257739868704380132674083782225511697988207609900826765527725500984888129446963735930276407580382248998381984094466659669737354381103006378327753224358253250443090918632398612430977364413587377613299586882320141582545581515039037249075101956279532582184400255074092928982854088023873345213456611608307308199167288623054113783387037671585165858762004145026930820347367795991645278224983019527492478800932894716635900501183385825218782031899551056448185673602039765839475316874243994609684148438764759129754039677643818910592806112829766112447280765921722726312439516623961219743510285198267421795872442322497082783315397207009773992629559094931001971662496626190089389358312885653758011995548275846678996434877536971187332679808778928079046778803108406517275777897594411877189183962492738999800294271795131508308693199225242991116614442285299375139902641663164581750109042451568168712859049913419195679069844057766951934403091222941472779964301503738443858391181895046931538540511575425297112160744513043659703715357297555509965091989125153566677885729998388825047774011227839461685649591483198857105845571994212266290312730083349905837829312278585383227427585866420136811927927880885727638354730999534776613352412513947795792694405696503460396295846154352072638764333437008067573090735780294890821415501068881056762919551148932617358133393032922827982647209097193376161072000489015489668140415898973677061491669309720238927329029770896142237419776601368876099423640303763307933449446868679095543054199542872331763039102080861436708263217926129518015315464696702688718984008712493318782875627250578204841979231699559415319425162866499765496031415606823772316359858890417950213239254410709796778341863395943298961569616856025416591671692137061790478968282329735366366441276858429951707365219892191578213869686702815180105104060308437539213252136025241786423799090875120884036333952479976914647379321595089263814289160764386022092828282311349981919691344463025871515106248199403495584521822819397225598100139529845142221346286569146129965050293110340531155908359511616446125111465868449150900843072448521636772912249191207401749458690182942798481351018887170633430097722745108626801714871487800379740740245040335471350762533812833286643098816234493828422901125532405333844721959646274144020296256778048528250762232026689209563551801741494143071957988175669202212722656138539465797351645375575739248547746030693176406816533618096182003880572094732538697495228064601243736632616124754288102078251475728574506946349160907405959578271134716961484178274680051412616916961206501273477061593806982981620149040192520599094121445987199389813602103299730297652504462074547366299956005146970839802586232447413926057464722379394635963622836692198988419372517821869419174581467569921455248591047350052292277755146372781689688546447065303419980306076962617488293688824314164293352001123295449217268130167464643710562498270022919877960827468406046045022892038038601601278440913967936921509211214012499316507885583715360437696069759133065360126935158983047031911078905652452014112327531722409915484662761926873664358238639717912601393508856338412125544684270080671849912208740269428936343911543756919860157191362861911178348765546655203264326486055346227707205796839457136593548669351118154217160032316605918386452693871604987568322885412769915028160093133528402112871959600651420798068005524456626382736553558989242744811304858940304295177573110435031006279665956250787540204517657262806479528549841133691184391261147089131705725621353703522000325450645816215123488771401422526005102644643161246210115497343930170444395090931976199288079334263181018754231434358471800156536458150027879513414101724345817021632230804994056774057098228066635570931448246129257718400808373474143061631439756136225976235124491228717484736647425794048119662062322775853385159260071854249408286989884221958726609624837736098094991875097162078939484352206603287611805802879805277689317926422054314365262567095160109227135706920856263276467282423361476826397974483255876092652444197957685393439433307946786404152427707157043328842222932315919245923374686699090905885794832507100982812843407109130361261073725324830662276337503252357267637312764833831350535065963773098591180412965391469275823771514136933911370704844644254265118201004263049832022316156631552479768739658491976268942023627589388436978739446082425630923351912138283635200831429425750728230414482791387812109117212881872659613176515875568982933601428873518335221122188029296070643138962428171071220124494537700183701307707634311306817034968337682985290023881300538563722320130175598699758197773560034737965426547058909572892004494404862300120697896985459108256750465196827570077913761731241116240679068431138527462236974979782400009918554755590653558551187524093601516326240124745623072128157082095594852662357249849864826342283448144188033784303472236390567649122922842917582340274915832855662269584462399000364297841154294541290480631421316286716651371859395666178760439474591163614261769166295019997698618815254218210383025850091657748822873614718775509932040742183352431871704411682947537263472159884762679281509409815270661496598678261846967548295379540639663257271850583966085180789207173094027924102003716967220679500953671816222676317274605387942861483511279164914449881232042983093857445803360425540003543924531500741953151657889296230595996664729315355412825351772963982323106394267868167161061577903311605703659560812360448135344117607165967939603977246593298339843258916122157479829305661479140421280980764891558015637598802248503887614262163582721787399400259434762808191409433794189950623385290662297555772620519922046059702261070352050917593836557478259373781635281861431296710005751018085453402151421524442309558184412359889280226513160378496469464688205756432273608450114287493099895781378227571053375019797218998438793733090946426287854779300175039899175140880043204043495124758492624416563873971875477858625821200881857805914942122092853729874559992366997092830398848522665556901160452130405436521983948570749397328862352513730226552024823787642025982409807333220107549831022519069777809359023302992894455016701069431410760843164591419084122439035657721137116694230057692204917670007270366975956980857886299652504346631839851500553848063942761854643761490823589940924125968980080689427852696415797399327411132795434370561668969128436418967530518412951233935938500593283273476574941467127132308817857025442606503002239105956724024262444594554867908529261997370382893360601460235644187754705096148110027231557798259040251809537449186692220256604723878738019626824579726582240192755405559182988488144788277374781161268666991586364771171028289352999138472789569241707341240066323508460637937842923341525751612697418413733877624194425529812721325017283256042296822512874648167934396865025604829628109227319242513642836740924756396891866227877220531788053047330814658589781789808066101746608410709658704785169246758312129774949653787848000984183634296001670112279893403498817654240517787846616800265047991752914665939160576853081635749210655969084014828337903614059499551528629758511644130155263974288078430949818639399614527378984027470264702080269677083342194425368300039530016079387899257048495639533457599053585810913301220303892707187821501933598891906433447596934550796870200361202905322098134720599677920036824391266529817148761324928621197695606042337000593789840213150931002050219637948381314539232360771241049662081112367780758245638593007968989567431291188085999769277309732005891962507470145430935503991232575698473134521255019366244532972860928906750494002809862417371267097719301211003660303918198331751458661346964596468557573488121355516088271313711706125850003568659107774926350162728769705752527278723778600369707860987672848858610295865317217201073692203847435130559814507535094245433452937080133936455220224062313745755246121609214112317726745489815388993569597994868845192161230168336915705137758038112150208002178162053855582692720495275196992003429145319237598743848837054411590224410366350070032136566970414763780746299778830188038222682291562646867861219810345300469836670226966626394985502569046807129080254151388775755887682940442311521625862774672908067200334020661705487633507760408664897865409222533853803930314155973144368621133161271649339145777083919360347132132473910259799415466816275480075406228755986144327953483376795326835447014139675302249031909370654240010366887851631739401561460308614326922566034646707675801746996728923474383529652635851568804063138476623992848530907218545752364513976286849864652606957096691459505732887044877531066651282153099967601631605007866292068500022494418925355437869791542549894530186699734598849153053539678355111771745181045646002745071800498620349472674936380152936204423720840212436613007987552683861672401250232835244029719077060334307659799437383555434164569534167634275156377053666374224692317218743117060915188856365234042167078094560436930005327959417305743769908378936760448178013926243302709655638325061697041048836034891257109062385499501641213640156110437076581416774662357352693606284134549476075944112238317426490234663446967113726279953766152074386433988230891271096903827065144096430796791466929060119395012905691822853189685743807358205737119554144895026322905363957891079228094619395838323899098934709753150505293575870355230165691454810444906105279647947381873437714447409327035773082842004754000780183623747797441042597504561391765496790169462393584324257693232412599909688754859398998481444826832607626211333941699113220592704153962967827531286666419952370822454061658155684708655813094646326269039007746943180591406086501906723742008185602180068313707554585625732615029211199337562550592201365025631226342031427251384932184452353194774947796736180365830468989087857149715947159765859839452114273893676278586624576529989952790622505021493289876336968497350942141252723640720307175469596376690900879947717872417581397387885901165170345550494651109979609788326413813707487618502223092794495820700177214402324790239126684388847970565224804530085762327215553373534674509035117676115944585486186083416760860326846609576329316471153017551914405193030044528301426189889180577434526360673754288894729439272467478591556223673917770128278804315962438842806056849897085027612712061841972145188645807069647100093530174938654208629274255708314659171499738600050355168166792042575589865772231330184810686933809321732122630600678799782123780862926124799467992553992594479218626663516412814102008215019459976849491708488893390758711544228965926494806999575619844039280773668245485421572992698817244510460356908258253467661205008774790272957871729091020449551754691669391665463024513501603401975197579284604093759642911569290398477341534260192055047904622987573347053636023295316268372671105676559060241816505482462690219312220547396030320526295078360994831273007801269816215176215691979497367675434523805274007970115858769701841067465081176570404406706110419987719854931595152787957659371317991510952168433693313753400163307659309787454334682820282559555292499415589960961317130233071120340591257225983863507064851667932339964952751663172699949559845323903445835067034708395306186271547549998644331546612364593625609637532000130346312072037171354704709286666832444064079022778207629555518921668346004737975097815182968647555435252228648943142639549077967809313901973884923102077021726545142117489695260162486879842312867314022610769984852292949143147615559730613876745634074483377193963726307202128686277333887646094925619726309172901365159859516721571469594294849542480174727399932001701701552749954566408194668665721631981445318208845399395713335906751969232800571026401562506206884772925947509128097287099655554553337701167709418847297008980426144354387245617464244121320180998138193600880055872434414099005221636072964755217644869483707156981859845476454599602136756289834028284493544939335759034876706206562734316597404475997354100580622519632173366999863641942332478661263867175868207553730706513942308664818068616457727257745790924611348224638367038376831511959985037552931843616891301020862447571162398020350455615041898043934015043621350864144000913902241983047608757507652505246868352200102063200049660031318246883345873648222557317049916991558323197442171900806645091464865385471720595274234558730607728371658304114352796836744360423426083618374386500913357126090555880829833503733944104029346828633858599000342012507597917333341307832372962148277740579942323988401655154715996683498639409388955657194011790110206364184906103060185807051646388335850540711557361341915868237153992517721449507906966592383594842756968589076120842698051653330450229679966061189953740751854892795272018691623673000270423526360013926553869736074845997440938958864112137296662567367080290688878302624282881621660541043694454526985003499975862482000755845735626377629085763081595124550623575996663312419092950203666594738606544606496479350605511912149201531038088228483504343649950568975001328554461821792271546617664481792233926566524890643276195263605605599192470210294123573086731182252824178409922461234901493349754711426716244058079977399114235765870636840234092026585712812234240100823127614213433319359403021253045746418865525528853018845746550592592751413146475196019026053652592121130241710738369339823712549116458974680955345520068969944163335166452834381019331516505391335341109591895291134680824937894500926803627343247038515993988192231301615878258047406379510285810891215251393240560553270515958177983668456123652252201611219390573310070455542485595480652507396891090288987185074564038620872367231444567122047886021523857331758590994315297793881936865719717214876716474277152330528187739922283051095685179372560635091369964574765952832608222523279566631321590781722461004774914186064242451469936897603007821049915495503195459264748309715188479361328274144034574927210939184795418632297858978506555593981792328922803453469108187167935531787148246406033012818674931095810430126322858540677050144012324937121490348790272695001536013031544146761852029688152770093006300919834442955356751204794831114125740712058449063787410851252970095629064542692717610839081070049545871243691358511284645502857257424304348120161570380917637672508699777425497588485830697708220968464853842215514169213791275784924457936683390076658614851002987636803364268897815889524799281600885877319360740737146210787847251335559491576358617547137404442548810742852882095107582848923911461675094351763458724795677243443697034504662521042745435667755288076017883233774465103325834510130214685612913631331757768957700326841341893441234124788124800896376740999436513422447029669646883955713568076836104793965251756778825251968631325110378612265449609235256789406691302585708469750916784343611952874480549897183025695384270431688866657292042679296650489529543107027399340610547997175127122454477027494626702407403346228407881993618203178347759591870031916062386361045303779213078472821283512664789182441971252110350351068816627441594185386007419226569662136295702475789859800028208784510578008624000302894766890708596418669592482500153589220594992946870499397255104351917405408173900037386880582819518151259379664604552562105225793645462744045129047165387821752201009968775229814061348252117657888984743922190065497267006874170193995168904689758618612033395286583821461869113291583837226999819977471093743782324710002437939558431763067123293241475125717566110863513573050891834113132955895508717725109184903884325308666915010999967335009476366179926753616877046624325940859685001979628738101888506961522123445402440574478463620659428402822156058815420749286236846901653932077202006214014103014928585309630659940191505607596609134587375931789954491218651552895899974886365768895000197282496853858801569074730095003344793521896329425544243079542483407497998112737659612659183929073923780361140098864183637803922951089802555246304406776253282404379789007492340043358195405629578951129434488787822345724834435937612185365176328365986036534914966469052793754660777097650826607257953113875970045365652557337292110504344702304185095306633946470112561762280475753458479230887103081045784327399436637367844083555330812978473639721326748497299731509978069478538829956047070976149898246147686822144134861650748847243951160370853056689212814478815342223759751493593100000818899625746774011369197156480354243744782411272390822314573909809996919125507664253308046493592985721234969752460525579196873495610491845956678970815749925252175000230034867974621256792841402229583404502954949863356393680033818035032418938395913656966455946047763591689957169466531022404172154179136140714478254295631131487501121381804253661209601557282705806371928839065745998937301705299910144921393279669539908866603620982452421397831691659839768880894014828157828842120074822852100461184014242719546007461398201819656011528609914936338139407852139586168975526830278699771850880978632334922942613212121759667579951615880678536141300034796989658940902474314895778249181708591036056765123343019067384716676530488538050342059389730432882479030796044386254657718638878571729001760611306638589331518986672555313704715694995703151879118279246421707867817058369137821151783856076849591604556838583387262085252970253305608830033231752698964248938653432751767431108650686095057594806668201300646114849111576143277764472860001962753134889197552645849446088793246333621882370703703788398352538983517857767832190465735667277870927115730628409248551730855855964603493905229438825033292402450853613134624159092115588887611163450745010997823602229347089057710444132112331812459162241765086392251709343330018874120915580882832120649105787604300804258828293336944951787774948454345783923184456628525519732209521027081978591979860622678520183203089353689163163098620718633511520373163800943124316758064928630715146520127505323009999291455020199525324485875233349885036650416855422938569777963023726700606512135167553722070073660964371046472204388188651599634090573499788427453605273978478336770487465556170313976588732560229643028786483309975597768411250035375228062444356685899911019664269597240415892255239305131229437729757745207204489004989118687921191711330055374319680774044577881230403175870248730604508817137589084578064752410011525205629247689273393018537227448048992850502627218894079631773680571392441155649399493919914756576424014249957002828136135120880262018298337052002152526980457224614712989573981050187778319410987190686512029481785225763736837980087167306722622368561474160792217670171223872620615565130547856585669193099532706712653845756429067249457717805782411528393365336385583194239381266313885797157879676574502923827508253814131841585609531387705555169117552801299960667446951164999126098359462331603193563970490926797899509295803452058445267136576053793096417832469818387814812725094395402155220670822001287836173977169664564509703439556133520172640860890046545689796371872485908348015073860699343815293381103773707479061392192742817668252984204039310792629910038571371805937219922888962065031845074030058711835859284414420869473647252791566455906368427676371048390348398309534919047270136279576760426600999210072354878237822023575273023295858389961699595456529139185993318842477642225065931698900223813289104891587844512227008411332481274214008023931868585356555454572990233295211859076622162870156068677378623747716779617566287118584534919730963828358646742290311692419105123787230890238002169203033359012411732419191700400529555511730372745299883549558529985193358342679309207497282730996923697060771547743905115777889292926555444049107148349961351370566987061307320709030896272766895277639319799286799696285904206970353857823084475103691960752734880816362920106252177174405135439307249395984964491277665474377284099904740173811686105145138520217515012071409993136735509905856942545038981486513325709459386079855125458877973446836033338041646827086029153236462629346482791556556345908979396277072784967907234161196046211236206383482694576598184074306469581985727329825952431881952789201429846844073782175507532590275412209731642723373704609643876605870169306127162157745011668114178580381881797235796082470145959990464964946426694337075081787642011035857625600525162704744592722289938291199440072823124514606239649403766866511305225793103965894425012672235483747004858703607010057383937557171225303310657203621516101765935659033906834418653495422970250759392593011527690368179991746235801180506670716091451281312356838477967029899883276882959166325016386648241224871182719069700040137744302169371952040864821656673045218014327350030033038664009649371648641156112175840157079707752783829672418410123689192442147519858397949660154936646982751745035658217787938858433620720091250667282450618016758958907052413350132949386816863260729114599421907028154371117368942325364235307491124742608582624743519056562195517017826417776921940602034981861730636570752968583060990642563302011198972435412828341891973301287619818874185279125083662558138766853574511977887688840914037632411983710878581414240922985226472077045038995332980867059041562948683503291052820441767767534432255014768524875882590926857202665419497371843308118662042914580485219648780971465875074913607901538604892246892596771035184958025892193056518836546849061776209062626926320544383522015207585143378757927847166893989156404352325565174100676441411203975843132314884515938596839065311871997535738966296365401333600645642797778310250357974404026893407735553737588405363169173444224606788455691370027252097168762618158489967311968200224422446059349670891032612733818053084051566080474214423128313975383783225493161505414714860184820054366369757081519817766121438288170415086696932534233354241411479454799803923544028642396555786578543603570094689328827887461738278858782305740913221480229164837408532644328390421538778621890344271157311331426449384505317933950916972139568860137952649051280643053068152807226586483998304696615261245420831758152718678864413530277572956869504024477282714383480980678604596212752801680243595224033971290916525453215076309386277933287462043329257897569200885672764163234198843927764748018429661763343871997983271708535288897846597307351984996963408855504383217479469026295887527861226927234804116589374814652410559074255803670320825744842075922079250314845166930659500958994155493703571881844060413146771782964749136936661085681931999276971753620326663633664971620026482629767925229998169524057410955955058126468621309680780058932069950970087628853491967081651540543024032356168738569006863314237500168910881800990968759684145996079466978114518771265589776455541122444315354606274237387694912133701127401825787666553132918893185999787717937499350535791830396397467975612602508325448912130693877733727550235592856454007069144090661316512326676080880629098334340654604501280953732319487195474060563698913481182460439257348787043400730024418475196028876067605199031355205008450801422445052770069433389956091739506248602558361349208347228143064041241904090890680810554713957631875005488707735030762571003746789965388969186047499847608203487356498958344402760287289834254146012278236326491916920589245558042963824500176705498472173884777912197306707333517406768666275901270933078616557858097952716263705134664718366328893130674639358840522511726912247942271985609635861467689222889654321474626138928363174542069032807270061217889631305526044458960924968055201781105023699884143380615622809129128777388563784750958549150133707025182007094995078450253878972061437711368295492516316188810576264511862662434112321832602638291005572963565034000549035262505794769553750998761634301264268149650011609806123918827645548897834033859611180760479525127076584694093748099556964319850835526339919802716085747458899427494478979497310438497005569793804047377781699931801940863809180844158193843490342876091032553746906919736391309111734467774789213322472022498882686131186454989820195034071326850517785784412829878273488912292644102904546553713118193672468507695868212995954271290641128629903877220281009623319415216468900556866302751669140738987816542309855210319794144879831541198885249666689755691513911069542726231054234715670771114328105051658068452094165258346914586698201944646384658896376265055071874056818527869034806136005257946684645134663528275699136211793432090795367622697893531257643918711695715516945169580186974930740182876251752010151078996804755560522692439831580954123051591210094798637618020719949665432706459063059486156122742244177737511699358127140541273716826505364614273728863398683173836397130026501950548843095474049925527219187623495108895918244269385122165643864853645480102270863721564887414074790725015464550460391761710340681223747093721407041854671731883419544287726665060580839489605387300323885735601157217945463772703966132346378673320379512719783950669382720364860598629840003987893538028398982010578389818370105560287544192060385015779065405376377205808005488928674170413074556366981470062856089105672645363235993642183013453992387290750131677157391403364401142218486625089370390161558543794138824762516702306665225500630168865895196544949367149565202848641818194069526857828917139441449011931453085829197749513828892125686069105381682297533064194182063192177507604042747383508839819174650289247948909484864590890822658715289234186116947402203426707053753373375095511788540663383850006052388492970835917221909283126935900941742504288190063906698604884186661349594263715278047887624414928539220361514620826387908986947816771179434642076886152680839809365824302106923641216052453144570083277866133337304906380938129163319682220542575246070394144245786628964143306610874323687144684793330259558136407013217948255483817781708910477818672454547185350726348446119601503644020546230027666430355243008314420558400404371463700116797546914399347070738503923873540055970597965299118431828984363364066482657263019406153802898509256335654683012748499317014735079924534095031147843727294451054887829277616838973907003480602545502226998821513968990798745895842811950244110164321746733776225499615541926401877182374571449295632515814476480979790081611720062228363767762275650298926386525186162034730416470035025690097824040466201729187513635258362883890884702205707583038947503890408556891323677362509137885542628516464794960172089976822123958870856132312477111929345516354080220742297157762355260365032291079263071883664217169525837230894629807616014867847415865522855945034538551901511382877107846888475717172927236052838565952265312219283406700996091687459120147311410575638001051319823994899520308395524943016874876490697291285600550120964696721304183100759306683672730901176218472267994439051064197401555713324775003851025600305648824986921207896506979186653550604927505691673274676380346638593838725463686406826141556077705215786373863860936677147837844844742826173349097434083067435040707809099869840926286710277452542392187800590665805099281675305021635128337062247251933467029938109512534344237511811440785834758694025070200563424082209157766651833231361183348586571510208954500568569496069527944881141784091013996001374102587152352749913277229136962952785275887198414115515628338658967365177548002962469367848838281810987871783522258719063827581281084015780541388339943980903022045223550217032642239873836208016534544471613819412043656929811373033715871694680893297584345660783207409724117563984272986160266709914256144004265143362423261688602333012611451764141181972668299146324913205949184061949882436867560456385318278265351090408686526396780700526405585758057889026262750224663807883032723725096155214689872186783795938363675925928482220112355879960216916887947694039617964430038740763685483514004491979223584489450209945445841529187305484490085481002941264648589890931631348459639213832041757702207881311545115092010303282428147908595377458203920630071919869875189192262816436164163320200336427094634957649716896641140698824364034502207571717293649281308285838310757596696844822630059857192962627448713769225533330308489609118480709191693188442381535847184907328097395610287558359969577754520339736304240443984340756032713162835479385104068267877701377149454050788106375891626761763391652316750976280480343336227527562120972760098954706213578523094195343206074532748234367654881915996477631442316610135632226848607189419658634909493302191226754700042449230009084485580601092504270159623134588983579849922444703090098796253926718430046185825866289298423804421019086488551481092106969695496264057702335350145792350250315812732624813198945566547271352300653244600688080996752739179876337996553210704036754836303660203773562487364171227356837582022662948908171383129262196611698804443535627640013915265326922325272620405052003178078092560672525160787774181954555852898997193002664830263480045072776825541681584143941579470172155379670749797608703814898995430617406877780908424993183728992399862769149357640779456761069406812170951985042770920149712280251669420286428598026077756396546110357869786401460745099461409670757941357947247366211428698054582530328025202838111662779474156389880105642334322675070015538470838682916538321974992932442021184921103421760318056461548787340691628162526714717176594023623201273180622444717835942456467972906796858588136818017589880080319591206466995596158705703552293702535257077547996536250396018872691576957964590737915958331569873384364622077102301311795022705140639709478583928968772660827422558543256277236681611229400124031774009424885475931276640651475779077738327756652534369193902499976145259805495186438460557757310715245451240194863159228231843816814641989236846677069153709642971141533795760779395889814609148985144245442166107152806089739815212781396658424291777240126361671575323292547292772270658702769049335676371599395591680438868966517267284563771943933351334068300109499369782809336660250032239007631050632407015856003839577263205017166248681935369885893584957742767497580863069175360590972647693285498230670614936369241511478347719243676875509792030485896271038051567966963440401596989003136018828199358375270789896887413100501236279006796451959266795853817947194397348594045508272008510529249579452341898080121212630278530525676200563113220443138109552000826591641873105084184826871682705779940501355535167642617199811231316821939697883049284552652867541474661081370615657907472252106262120344662739196963752644440613651753740025601345514316762691912665102080692524845302822667232475898065467829665542157055454308663544333659271489968958824938687542647704039950564099943938836879677193687739382452469401252105333829909625305026411139274577405563598464079294452913616092029150815828114806314447005380632153983494515208720993618688609194528316904335500299741716947090644459754674777552698569830443048607717173409690077082993612209428815131460266926753921800781262848048415798657961304155414987419947097173525961190937065395945881113643833450022164176732741485508007106609669230008414486000476445136653558421271100494837025608183419057317188965523230459062149342991669718076522093809921140766375897755754888384373774181254257800742401013164709788172688507631670376296143277836907704864872176423442955319429267028692465559738258862728642125159305677498718863680231538966177694220824259946241043729138861847480362048862270481325382599267579745942708845448394725485638097130661833321888607477110061163120551908186044854278364052660778158156953526824011507021434472269240115437376511852066104730615392294398983779253607493611922786454603787286408485688785947659851468604855637055050472116125679972282340078532640440216574708597348124915421554171344120419699534545682025177067446386310190832827801530386257241961248759075591763236236475535775754481141421531132220548676625541173849354666524705208387846142863840680755995739281516731183563235975828306000314215222182624981166114819999304491541592052657060266731569244184769538317917512052329863092888599556797711239182447612352436721855241822310339257161147935551226240309501907284374060052220366499075396782294994837744243263868105970542879826594886726607173897467308188532342839406027777892213780151369066642722804230133489518524030365745152022677973671186015506325044405747703273084681719711884606014567485215454004714497977685906519883903466652737273296525348096416636452241091789580277396206327713041100295260834110747355480640288561692281782157344859153825829072677444498785553107730726431567870124428321121285416640570035037298064322540605712637322958745227211977169410120725711988928582882050789122053997209022856214558592984941698932120497662279086635598192170155177805303403380946125262675396403907275408389083703358921105078174855614789124108634121393244030698805034597945355695495192741893068918306061183182474836809555357686103305974842787795549306236725544135187423030350996741078990095242827697244764817229888633224073282594028063624692603459487710002870041708609571141306193857288303647402265318695040772720722541869731958035217759237698202772870420671890832953133883987838581878700156258040082962773466230142371293545724750726102132699980954413181764008223295342049706741496736606840298267480634833573663900015797857015316870541391818138514490000953179977474716362226205340669897015700797085713554418014490238776863780082689814608482530243357806207114880003263351339420167864668478345920662594002630867038201801491209041444397313888070505894780664509215270807449756560293667167218846805826831606206107086920109434624918258215187261207022887756463061178046747885357126655104798751779169646464390764105533171467517937756723858571704472527273672769868420771339902300291238097023036454763664139065863773542812145992851042794147507764332150520881943301916609413776968522866767285487585606342551720723404365359610408277921212049665852961808136824651913093819813718185612126320544208669990086323316159310999816148244331095654705288629075518248356934812531024081557432690215977882874454090410812047169122626913145514510388157090737540135527109963361721478223799986611944191697819598855477807388992710373708594332270038024415207183036021812515219836849066485394652179896781376060574909010977451725123618427772848534943350620916454003696293856161073930432905482114066630799307967020825622493015853110742337674746621737506892338424877708054767247978838744649086870155469311345951534393621064691146840706568890209454069480429144312139372586072891367898546558642232894162450723058748482173542332491037346394935736133298528340639521532970106381278332018503085401266373854473363408004541947211725202132020808707361866044082864084027057797669500021308315237276461558813769829582981747005423518507526136422778095220756534524472980779016198321902601226738294610510419293548810273641567605391626176490847199710051894360789825968830730436209981133725759409465592949580572038004881798533764931421567313460135801126591679050713107381937302272612958592670010676746331972312819873390086300404801068920407016214729464573886344164950998266520249035935877948582440362845174106765753007232922560731758257839601885437579101520563092300570536868279454301516699812059298409162515158199337152850309840669992923729876021278909386256405281350285386419006499795218507395155693778665974058328721247061613397411398089161460716073111407874286644899140676439733000064217364191820259431665529894067132906138052689865440472117343016532232715528398008658185757489822074867838930535612876106617057685066223710894921908721222733436199241680650313988826616688326043236705084188044839006180488376043751204312410638602536853096618650349978167905631109169412831320526490928923684771573770096262571506302533248125444074747759175832810537006123188802943821269110031451318761040495069798495172495581865495089604048690808346988629142381430783459284186196175180844258181347891645657442973927285669204521450091172457925715422134307282481141547244915921535407648165559799210787775717546465414119890945221661730713346691909861202580825253604651149061318462524331565062574488003828679292394746680569060636554411164198198757704670155770410431359303761487311180264727551850127585412912830883508743964216287490032237151236538759237624521609691028077025375638543829222332436858397079045347333420359908379919682137242305828673139726244047011397320807454114916653571533838682027456497561637980660032937989401671967343501933923712405994553835707580522374627242595311550513217357152454500568146682861773921045108711083863619654145303573572123934506009230036801349191227278762884101368561437013585948007165604175286153519416343576187410590359958263085669514943737443066620595794008045815949356348543702590979991388366925682275534265038420483831143877097741442484134170611442630533499432348992218033150905623202695261408183751809593691540732542206253514566564219009809301310209235876436310890611552226454900253676619249818466158234176978780799180826498561469101908158289195674158627674328363968567348218967016187564683873720742849557722904661909535473770635401267730906467676439222532218081165406058040104973623485634578750682406155328436070269789026415550232068381130939047562199546089082652288913035561670816455181435876168053254041118296713153585436660697602136460007292311646217337831320084827908298567189578003829360368974537290141513410144537139410025885334141726411049182829205113980083431987127279308956992278091625715107812046645275765475662610811599102294474145743009582578201329676274758628915341128956364469498222990523531215086713846079735040464719266816863340333286310039896984988566238047874585078316893846985746978706472005768634114242303930328990381371769263848619222688274320089396647246653269555975313148857491117822112953027417296779763964977098913555510609100425753149232452801274374006123897314591543944293318401687255899051070824355031040818835598823940430875692479727221245339886053801631797099680163873263825758996053286839793794646996064924857204457015490645660483297177636280896819393244786862939581269403980844652913167318434020174614627826095150700555837063028373962834871520031559254000497629129990800565088499450230824738384382094217027832009217038399810373569503998542024211604142789843835415986160247117540566098597983311816596441469405603209894844151082477032814194062906723882793877503021310949906552227078632980880768430144961017965733523575739595236459424874162001528970011894546501367424505682503445802295814819229121579244402812414299669278960829916732017187736029375278111885048166078178175303949964855799162716459687632892729883290790594503617691637017881628980468229945088609269042754918365938785555688035737586445076043606651352051455246857019964778174581209593381767869904616886233303129140124408030309161530319857673140195744357594712005930526408799731742204110210100321989237507976117554175008004265149213430967384637522017643629460474386905007532783406748650597280868626816594359675739158291638158767045551972059421881482252127337417874430125348835472990299747004601096146066928492530369752466119211339305198739549162314813235750389079024410881254953294225758727047103998369570568859713861734459642732119813038945755600479563755627579495364844362881890753234266342908968989614054774785424065191054385437243564844638579378656057565912704229505314000902575124840859368281689298615660692349914206454587638910195560590826660237747651277340292588097695677285155407612510432295523662343338472244993201003582114182797160840176344291709383910356947407763592502616247389127820404687734832492156148159512972859947121001627667486791957299874024382819004772411509766299441294103463031648005446931837263326715865538308050515949595748814438474508905815957508784385075893332943994654624076117041361981174740644475105428262642835261101912950423619820086252839528932244327175747459281282772380745448873560423771367488106758450591296033426864731873645445719385848900927283242689061414536693228135270938500715443023300151159626955218039320721240374678580907932739209507281755028209660790255257196231745562606690234878092810771028103744862467199001717748416829775093648595784198159726185014617706956338705990117781860146587421533698045370645324443024945207729895055488059137287389912427098034626033601527290302433556836646704965920670096471938211897392435536933351596948828204981707144350990063376172825394915263625155699537257655912440841875750172033602470574380027684438282976986533094455455329864202133022575005459244424616286108889670247357732107477931253516503933364925567516127735113978320838455065505387819316101459628658577387911956003751215825029858656558603654441959090524932169123729230883691359075623946876641496982145379712593896784401617683895079678111845262231390190951048582323469332718418953968551494543468099167108275631691664648643694134800902481417643776294871632255830856443377548045595335948982030641743980587392540164494874862654412818495253053618455977145130433737883020896538407393654799887583971139533124619455012662705424297148035522096067410810624277463584955525914386409210381179090749338530252590900748163058621629250814032285073337949589013335099377051151833616141264496115663929081418605178326381832737509229630124962477974946422378503227239604296119886451717913294785158099904237748425227085975452725703111576301480494655935178658201533019030157006169471678064669933816868380789129754985775781307087443544780617282482941680090654851979349572222752223371809125994454713128383258182108074907140471577313124008273317488686578600760302984880281049842451120384580053247186622061074125091637081880493099689487903411963630585255325610102068113345217876906587194198431859961568537839485122203983094351207373681947212819054187829511741258306959053418649172516364971577098065441559196077833780246944795447573970067030119935574173927773707275271820780747905421497685941743381169443334707236208806359194667486601861745789430499285992639703160892103867839694485056751011571729686481200173018214684092815671348418001567113734500448443582042014155544795215666830654378796399775316762233676157386059472995175504308636101698459090165849574353786651282689854005354286208014458675002595864471975851431605415013127116610801432948922516616546454056875743096305858190251297141596140102465451263648913520466321106494033382294243489531284577364595044938418058728292387473826359013676172066892775578872927264593792861982182417349930957950127654241468300402858053647523138567534204387562809551837109234541866904569744824293088884194592328512180348454876308875033468244282987755063786231476751902545448460537977292603297950028098925491061569115892048410207084011068022919236755726128389281910774018772070896510059994494641399577880995728725599083593133111075985613654134690730503950720560566754693458831479886238730039480859346245111254715957026554575535731373207044037816461193500017496247499908530336318164935055126537814318554502925945525008065585293640468224445600200968548756726264776052345816873888047833761032748644255740224655830725673087990934083329504971269989767858726593447540358967454044075157782996381817819901502812387003346527263699268934839407818945035682958206793158335230587202070089375512054161087627184444650591004771199667799419556660166212686081822716287834446702584318123358930752267118303393264241272757364592494529834603343122262241280416288701327410563045886274651724480522314980160243405132630192339915428898185221128928361128545062899120713623907856696301214081188345204143254436474557138414836877801939814774134126878869243322352267166483156417486545228098711345909547582279687708794579478366797579540245534134058172094679244929444725049357593714035693205801390601111200417354181741507696909767103259307732487669350622574090897828362197650562681436191279431009992019902918201375579235344872353594862280568206511798439393142962262863713925653008047584659664464685080120234138265341235202557488858682913258966465411344931748140689697611732940543272295948528047922441256417107824019814991312130756014582060966823479381338703293015173604860534700383875724815917878911349348058375996022698482406761914227739781662421276434468975002654357250980531909112107099322968483600008555242636820138539211418516145347988561786854527479458639104421328728513059437517503022037507446121382910267482666657402015286630672666537014241505888894374201148411869756647489208106886336399163763279291830109192735632136460145105380472878197885560683181574151749114217526769216139222352391086587453645028143684322587108191805490369183940564546573892051820897840288587737590939392399700007659882345645480368450982354067323559825740998464204929874757539064084493394215515572989552854168853925957941676349381120676871018751991407589031642316976672698840788484616396459381043417842536403184995508156559593426191905769054211643214321495316140938012513198774369504656951300316389484404101140765253727728991930464157370672287979721386900815033555302255651824048120724336760072728241340226634968803200599754672269443520120971453367732604562316252239913005292705579046450500176961816920031410784022043366531074864268881196861602778720697356243155044931793977870552891732947108171374849431758335238775934622964562664319718056463005222026360500380283508904448813966882515348627956743472855216441870612713770231601404677859220583441357248468276372324456041334450645544743952829978504692693037813858929639202392473715682212083157753411511867810606232468201323261170535682754800258847353759434204934622512963866633719397052855136631676235785380625710837380385104656859404207152556789745817953406015600770130537393125570217414976481132091502628872211973662246697687856036799217390234883117642541407731178942077938179512432826889847611385213964068379582554548522003517698252485675932588390818060145517631016208884375815184617794534340921193978882214392007734052237507804605886534775306201882096477636510942679371873369767865427827592916985469900805534045681492144648994569092803369491892531201928763934526731936224483069090384339413344741409352390183007442449393923338310497027516912627065146062880974744728079713391267907235253772695200155245231238159232166360962975752894641506714432910758740465175983980671624057915874843801241908793703606381000726040020766191772947758203811617335236973843964444244636206024169048040984648275302845046081037339391978141582461285926128369821029268922666443445646777157031963033014776037306296658543871688428280671367896381064194340571195900427396052871113125419249920076745620983414781123538730151203747430853788257451404524653753638479130296101764508317880483157792280484194304790448965076619545817514950876039275686066646429671458959666447141078798781563716524462260467705469944967971752216287084277425663954612539249871378187452627352193515865335473053802080042719620343480684580857382045550785477487812873387198953577631363155294981587204767072967098531899150933231523873592914059195910697086703387406015916255080971184573063039777658453984851792995234038110018659194588244499554597238173521258815475800068713012023788391487221840008703988729894963813948176518972850542156882661758281102777967704021075137752985270930219329693229987494578292153932805245659812319084088565945497617855925487357909823843411234952084247581860150624959379996546338446530062181910071823641769723974102009185655168580418793184580925284973784686960259266720369384016985385131385035143014239478206113240668340293271893131216957910402075144503605058619973490632797502340142496976475340255834055804773923439319672938869700601217368430312288202197474091916490191668022742742747382955027568205414008798227732420148981600868621220015419417135668778703761384066769773725532845626318854829656462335331781479584931421562207330016750385377790974385685575315512992869229291649170211506919761126019289413513657113631872397531483938566805704298175291074392726218001879337744777894700009435078252464235732615512454660285921979692550107615058930773515312028132057649984158361628061363609576787670583986335832985341857842090717820843683365265506485958226526246097130531601103251019679922884075512747515344955693695478641550411935004101443842680342908659263252007533324261583554756974190279969999531125012247790658407981891759469884046834186833411872828080818306338304375439091600796268578983767419916547140829748137912366606498496495329111015218051183749103713197874515082041029229128275403675696536152945101069429797799913123582395840272784910505432344830591556826818028497209663394370811621630975308638506557788889731702304571076322313204995612184037904641175353591891443113588505953337362727637299670273488720004629129974479646885690578848170781968867426936370290156547661252282048042577429485115942314177363280843521683723541649017822456590435768231125914152015363130251322443340076934162684783947747526503192932482504780516498124233211018628833969987892612679582874933539536958138694437066292549591472590504164061183002770100813093924497392013657890847918639352500141962104282020826593082163296139886980803265422938244875015342268211655798780757131516622517469716243915552051080728809805709539969252587054870518803218697649406296440150054531392237636359356907210865576821353917009823289295345584775399433219587370486480197506900325923697873287502502301521980446401734359743349170412909665131920491969922283230754528166433829731349129135103848602308885410981021334048679414602291230847114058008271946441087278238206460650757134935005785971479158845370544464650082146244481527211679559451497365434476072712324516676599559394997174595800663337185281198033856074655514082931097527069946270726003647199674552941298477886610906431343401628433683375825480054374225438713404407242356099118143670548079243318109936101021847561877939844211725987705119859330579433457289281459150643016932367058757148973893358602461198854197115471553195924371170014758094504741217095923106439268983591453717082213054422690590573722085092480206566407887670739573261039928625499301186481645225711103005120008932346557842670616760969394574450498798510334134584946210677208152550099671215981961774619194537117418429240765007026135680653990093839276586097997881597999898003184040343919402092169631922172137767663582903899527087204964170689666777921538462236443749705068338030027622792053214127145319232296636582171345368623482158219191257040132818742071845196243673342277217848395333568304304111120370464750607839380226973693875055024978475886254146813148650430757795384994770223580948726832310842530549463094258657196855877973096295738149213469412361732063208855861998391437973112837307063845288411379748714055305651900924408988522525585775842591029271384509522375963816652920703978890988546406803095059255060519146844104477422978911145310995967625217773557374149143546076355974061798445712981602983023369072040074799327712901505596898191512161672317413725818559958371053214533315245530565804618746354603142168090624657503155924961275763383306555897016675948839968704312372487176416785818650729173234753618272460971969870530112230109419775924101713140058724029535731750680314073396012751477711236686059646588826762019611803897334848122606258637872034093591351751272496704380794908537716599191394655675076834982978322772361363129448932029289235773327806713264214073486945070385254529909425993303162172250145100466290099310234624669416095245904397065565720675632760169762247627704376750320046329233306681972786059198383667974309964260175705749059069656293953105008658883098155158914756762127059221327272556374324084442165236667428712420791798981283158747012225990001318293206408925477239656606813207906737997209323240045490238959662495685548639965681346549419592526955670223935685220249585362434487474721910859552759346643957647801657063822994437767440894327061576698074278286922073435785186488449696294674324115480208154167603340415770760747537085113966357988432125457285893977301176953910379638180143492949645547781659848721939030718850766134531083618916295890517622089724610377547832929218138724130411809475410881676009731859495042463455270130214225567999643347051606412879458183164000405056474961418907915438228455197397955024385042199724316341019399589885949159498585337457635405601497618694559349817231808513881875609386504237806906518100637961203550507229058280845129651793122089382247371476182309561254625090729159769699008995130269307001610685750089341870967843721265578959573414086616657162193337717832485834530690705516963890605603400425941648629232163052349667434658841486960467410829295087634388809880288489932643168583224598983255138980181374059871686587903179723187031073097654345884911966127816208643345745748073028814378702653816522918183713243582061589084779631031034516777811419038093733950224924870562117921418619269621414380209285526284499594089797014862742575940900031076895880846371437595560050539621458307323965450731724797938788164761727385516462227309022684616196493956001330997730442283493285136390511513503049729982984110241271608246249682916480054268576022837506721634017824642404847821167326447731478017136517107564420459653530521830446270655894942452342274731951415440440368810279013004915547191022257554864582569935696158503047235565921302315822544230112388458394926079627995825295442379333402386332976234107224806405402541656337502154258119926709557208545014379459040043955582997754163566357038958870860358064825097689385184509492184519555934422469546567752269454567331347362261278493183032550105475757446622775327235750525044283925689162291127118305157389637916973651929045129098136181472303147987817528304792617678696716921958723463525089552021097011955159957462591811040089077740946884546427683994266892513710659354328543956646249932357058327641318011856456999264442259729587329605099446458574754129880415560146378847753176577709571093604179273673095870768155124307516894203350624177814160729330778617276340674935201559084479964893153548252763531903978229339323961188808774599528453914995749403756118805729650705706376561263938682521810890423100130815271647855746410252455966133836525110414581975348550473085776677456754658233025396548132852665577524961605235442304629790535893770566206409851219933492105302089271681972672066433972236261087791632534862547672501409349470657153922449158355584714681078703873858955413142256397961146610549510554113523177863090188552530805301400794887941808430532407827698901955661657030275091679534244123045744093418472273079025273591847461915458467192998823042082506710769592878409391201224457085711004496642474047538563024482836528726127190367158776560365283384415862470007674389967029708644122442161411780370096730375508067298706824724019281587574461961043856247944682540981848183133415761015575937941657685786292444804828292546474826828993481555008370603431638910028532058307047002503884406798269586675496556720015599200258785332548660110553753084988739268421952778020292273974510331842009774142651051282040883893979138528715510149331911044113663040001196272668142952875396624278410972778795372753777077166135574841321206564364505829512094652272766696985249151395087343584214555620863648241945955752525213239512219047590496372258485917197208765797889808653342561199819542628190345023956277305865773827215305184187058338719893628382284879334859233704167142331601399683228471261000320332584973400991769953547514900008394549629760749264435357371836509961356120120041752357601587270966599655278523042615772920360407784205113869444575442987906151532968020510172914887284440626701134607338924017489683374017296540274159795245523563660177447470862252171816323183817695186650225283578331468943379122754450936914270544762831264609601507475617831606742852752371174753274983887036391561294126240755540920803032038244767638190998410431064152714859503535999334282892311454702989889330747841265854990894875688485996587699988913731755706501978356682246877631438796233632253429964938624986611680740670190301121965003154845156976627512842115710857932552648882878844327136586289071962444722573191017483986036204275106511948098696628280925080636123015891150375901774484163536731007866547048837481637516990616090582247182805999745503163872978517878798160940176024434784739035283549900168434369116555826763936825528316343005613805939748385899113409791278263558784436264304725011433358034642368651397946578192064890805901685665345748150865414264263344081043615617678992946435117475899378821270709920175010534420673578925353644232959374454689405178238780177722865268014798474260458039319650692543793769876064428399552055730087783696194184086543163497727484622173675202746154167402392919319923317605086709321365972708581351767037123134218378355300439769494655497371144723810528698230293049594740435029882021568147669542016001550271780773153909429182053345228819733456865022667726804555590756694012494374587055793844557437685697303019516631187038850070369168041383954315582218840357760781772729110668147236489581858043510139255948564802914923543685911960724187950991417926814414843217601032515767745493582161845736368379265447343032639322606234397076865635937354400109175182306790606148769012621205320917189125710782052644101070292472268937733146085834972192370857424384777087269374018794124213690969502998876128638020026218551255531976954188336033009451106246479916535769763978157565986248948801406762899309969079995632199678464090544342510321934318364260159749386054960599760835227353057757359907663209007518490993289507749459440655155186300361260411180951929849283151100003005768683139801053090065249052952855424430029073547841324956399169282117580044288504547934473181277287124259194687933272361677744713678300937518731624496945084350795459411072600043488164293981178047222965122857153511939414444137875203531395025133602075037186556435263091290134159070368229589622471014931404641441373985051040235845642957731698384030478932790452559903523977967197501106837063412378104935506123513262926907246516647013574553381952363742404342203583908416914280163674136443028142828442982931708028283715546285048430327048744338669557715606602679768109469658862964092702907500226919266334405003823548384145916469492526724514895219308703143136663906590990159965081605694603618991444069280407894288438206242001591112472071907204687061016714446528844588227192241814036696060582951435286934142268757031259705514845443002325777726515889495004010954567427767309328538184454161297370939035961903921187543692408664040776921337634605895876495023236712904871548509934758130770825066258300127286496690662048075289132035673210946362046354041886682382331777508112292998518369622199053396536620608652068093102056640155464904368230508233016247216132381468604787090889917198168928617830692690083286634812015300008771163764676038756618306476717025572058326766767009562852791497938086381856788806633691042384894835655493951310591157660140610973009653191965407575090600967556589835564569102645698502786627990266749053307846350106834276765725461040775592675307812862864241825654702991318888443683313441104821944447784835140700778936583144650300656933900147159890647947139973447721105924741913617050203477309922351125328328335109424312648207267168462623350453318850697132312351871835239872208441699312984176579118479935104483910512375125435062471693534132201241127349806515975103387740106697128825278502634638308597888760786528957783248978065053440703271213279765445095868028583078853388166763989886370085873811000498042474086355822291431202141637548032119641511456216335198205345784086302583678240200110923798081256630457618132569382283344686186889026868992659044671454872386748394258437156921763182559907657676324155341490007211040609253005422182575745097014742118746421513704403247386365107600732594140053656356304455944029804834270292109286354437771566322019849974145390689769947572292778582481156539962582245865320599950789404268108971234148029849036517629166014910525543025001745920929468378008685594533438507366809478341102599668215580833548750194922000068538664838355364766369636176200362510721962334160289889197574698900443505383357775660875135089155082930972530910278390570064896347420953773347085694337793297203453115099268353305825041909657453659168710035464429294154747069491179723565168402877239712090021812841580363179282891691282813273502669219028290594066337825389202355260099103304174080898994551011363991069076823100059674010864344799084668150004459112002963697655204575920662693680856498148072629591179656948213302190203555572776664083723572032073899744971242907540756656676775673780189927552328249016510025428422673856156922874478470147933368671042535178804220666177017793589014060564751254887346100185460118097766800921487580300606218830166511220435553729156298527451385404719550664841961015348911992163249320824206669723759479456759707030441214624071907203112806093897990143916593350778321779697588215051790055838638797602768461778855005530653118131103475141908323883109019434605265912397362647572363727336575204440438404526720320169904582401377905074972494458332490758394940178829980310129007298949539375834975226962428915839067821639994656334993976279073411145020577037349755394192731209640549391962578269055221936161292496222449178609217633866634467636155297299903429045393539614753623021746708625946148043831974082234311141678559917477400435220643762510825488914224359663862290193423608156115882329351019320609521722187846203330427634258609813618559454889967081909067207060428359775580769895548258765258106532167602942485848539067064088166149094119053280103718269488914496419679513446964847406400510540519126348913238888341697270232569595594455851090542769316669408883983041495468023042890386795217239768700140089926190328437277564346123829823286947113056340333276321997326114919916023961762811546749026368982399661886344706027991018688848326692919449058377356158881952116700693204815662672772585146992078078193788860687047593361769236321006434016726096020187179757080345857731876329440030236144877858824552454625523488932205114683793444950551164310514414678069208296240344831514649451520555298496678596148157382346580741425857997385903732812669242153589292125764106676284735819917773786764597450960059865192433173340727841134937848489399701257586856277372752580773532246572887739225387303987456885046064857757085099986288069365814511812708542273601984305537411295836971798496315862457005655587576203114752190866867725273879203256454240647023898493944349487696060889425519709159842956517751585029360442167397851784164825522526399428097450388183174524114874226478822060192641433741195812925903485133364833622507439659596836627090267026925673098918090145760096349298543691473620099973134287351990050976751160177319347950199195386846114216722043525257597777071877882417878994299501625475318702191129247640177283770225264570023248287210202019400287364840683350084519634853375858138549950420186450084995078996191645744186060933950445939361736755406452373501841588750530612669596105689028979010182540076122004545808773417988470902101255542730169245448999789105434130626274383262563044769227393539188253785187450559391833750809669705002028098875128521140365178989798179516385451532610358603948883208933996706041131990188521385886080541860105623020958319038468243851417954482823378655239626316845204299203568349114070374908819986753234104718687676607253307371168465734275928492433983645560988631334830112360497825902824924271965511399438782744971970454632679345609656272153779747123620380477209944597874896740858377120590211588059156002906807621629688978974538893430609490107888582170938990538967038802540606907222342910604558601178511352221334311343501218322225566851134994969137178228782849557881763132863732875014324045585161595927807849423296524009994526457382210282577463136568573408677854013660859439799466948840974887858039749613039703051940144903297324376786296195280691819841115376449477615189992378207042882908717733681583937127367171070994008598392533492900611689607408474567174766251520662267588789806760699149864795435180405292136173029756107238300224245147291014829854735657209484348257394292054501369833430903533947768119917954670937185421811358670160195846522126012897115541203588848136776047809128333067179623970583906343514532271692428576611901645252482742812382406291441387937735591828798769499030402845401501782792893093046480932936357657034602838218827080716195132531788488310679536356508353529642298797262376376400063220976195513634203922281837011300998128955249104645476726739288581932418730019281384037403684107368331460771091074923494100789873642093149456090475332871103597834391416007823039111526438171679792334044335976353987215118867503552457226797471416686259487896078377870266850660696501448808963632720019198651863457327989261501759035083161397775905187346084628377683281292786514379192658964359977776457186660352432634539629070849285195860682052171533939783094855466468118556200873341724387216302990810668396984188417300513621219069103302886894185422075757845075854005199581267188339870275967842206149983972654295828111838609841232639186370702877197788186669334176744017763914176477949991808105625405909304566010000623785887176276497150527998864213635159360892010370189885892471011135585596624221391925392589491199806527904517204098684559430759406431134214965161795251161903390751977097543641346018354500686199801856202678149926911016598501829231958551371747019316595644049407010105600098508196785447165306336537996046292536349579690109697769647460553964279562932265609146513412615338302490972303348961289465422744902590952215015241832738111247164518693998809697742696625954877563168876728735624087376774366467345077282026419674435851931873285245331537737228632297672596347820970140337899906816480902443135656769359364691142177418942573729535275638231078101022795013123516081791082324632998136236755965402717008783609226187935427699296500272912359469676200073109311130385844068578855633359394102593864969251730733236514502641431088854934460840035570901103224110617621303014962987176241287573735211391810953523408221309711706954696230610598416494425454159264055008565813600774352879293691171786295106566557559500583442172500897825120557894261094036649054134818547645062084076331701987149155750300839262713426418298855526457736265558268967438824337236223400246474998594145146422339748611021156078171454707902201679396184376821907094750004427844024958147712880974720688487035896572276438923473271888353960468018878566368365692322207768259599165891020760181306453866118870148588131346523605336784081215319164224793598008106645912456083224323809562657990958679842668341048938363443299327129745818746149564337196972003214873725235308344370828082068193967519072323286406486386179276661924883639492191609859879178717372453844816337057417939538867347196718553799679799330790425701535776938600155063317176217046215580813682869066895920188597129905675602160120830417356705923791234231249544410260732122930491734938632213206420564333777044264223559448431484774561773648818021020639412893977240221501203947389397400991072659839834013296685403163623522204073017071016397021113487999660831240826743287111365293505137657280191805551879391047018717838814419126252895758922615626211438615981424716569315177351120283094105603380606496465283123599667828139215452144315142684191572035622340880455547578708199713539034730508814550437042685539408320336861757204421079559647687896782554113765932071809818546437919262440417853594992496941028979549704863478940707517551870334214499885661904820364151523798353732785650923913966920722421783334683763876546754409971514964108056582065907827224259314582421963223263472803994637551206500641248731087730852346761388050336701538973936337649414906213927736229513065607765961958650901265160858790870634264020159826688006252200209464414084653606478067739837606047199052967876205740641823248185162465697705785956991527790433594023749787551291863656468315512919529132443099400101479195847444573015028897818029311321926438781928412251950240514608886338371752969661351838766814688828365410260956347340631906040788569295037870353583452689672550439401383134965761820198177040783128747972509970990557439842943332039180561808990710881892948256305058124303653299761630673939416288511198930335812214666639986180132809284191039530536697469439616565819435478950278310764729501361999848909394230287544408909145731452077628773527199610304191151940961388823531204275916524673618787900875538594434237288425881211571941373834193713280343718034485725684736817204987906800833597220753924641252224511098253339914611374779567870190870027135051131894798748506870222556789234982241400537199406078659993092752017372219047710393035501786716965667274003816583200313302446794360702594667881512548705999557909316657139959444060912303054628060560548460501317988912522052898742152288788010061154348298895804501022542135757500918083035839023966516765816382200946925761491247023399964074718408515716805631729631281196940316150713178488085173329796089915258668106911277557884829315083905691933608012874090596685744408253740360843705003360172878072301240779195840580376093025646662446467002557750505434354418654646737315897854686370151805721886695891260482422256830512932269585282919012052843198539584662670884038756954855290033247280181159719939148266074141958869893570772309921350378829119461725696302526913836509820015031846599098912807538722396818127747085054295098133022137136663275337525279911114640820043415749770697794000313739909678468993529553146925748822380360790217990970565905845760622420807279457571062492831657903790139817740909221736048283277097111723319060363851996712116214595987381620431195515197651636509044195888685989294518450818495638348307018557213045775140112223915393594523244232116297054395531941739894920268295893287160332989024800170757366592368697981549611553143287623833252830175563242067271091937754392838836216824493094258391234713697742948101822678311368229020719553761499207466484764862522133344508103628889565218913927617834249293874126901685619430123172280587434266429299808067283384271364245193380943758183678018410075552427152469976666154252236980718765255108504146584906167860806665456359653163401507805324043626460064782166729241557100612004582866331687178497084757742759653317580676992309908650734963063047230632993942451628510343350990899823330133118506906845294921447949750711739586719683458981333169685373443757736279069942591152230061275605928524815037033166805676545509088998480796476990054035860969064613933451642217018125185671276002935092990595611291383770533989790628594247433933978023279005404954390564530810867309330326514782863923312741944275314838511931323533437746704676954303195835281214652736261778146951421463812231169217542366434257370543004625309055740477326185884179782248459324759016456502703822698241982424734039754632111794065332396365595425152188933981556182682728332965491879650572741670651570077978527794479352591061408790311594971355360795189532677577770900932002080697435037193269186287265257410150366810358378493929892846885513210508014630147979418353539229448592746904745465024616222999415163140651071574924845037476806364894799400550843547130201476458516249504293511632535529194339902030789332348086227589010126280821436647130608521970760393275209353635806130409155101738007827954186622606027772768269255727632793051424248130989025151161077032281442437406718129165445857987366757771324545441702446056708030177782267813768632917428885481931410849796222376457211525577576376470690204817803097952137180172195962447919576187975346057233982774178204448843344659529874719651309754635166475498164093042033644086745451565236515312514878981999491194742677009676718227195600495450481863275370727761844424695255537187708686459867245515204188941593961926336953464734604121434705064566993512212563116013714148133376589142473245227784615423351344817296241117664855953358488785776957316352496402182542329708839951588760003047371597982124749048305902024394426873430503262894580822871329604037252772118925768892152278953994271516393187621103960901150858723638628813205968297833364194328538719595157311398364604362001316337711804437447749374471275736893237445790652554668267822604183052779067632948438576906893962760053658783874211915588498894959595895935374064655274491188020236653233050431344203567417616035335450615885749223243483172522734024861968129240717157217738481149120359619351083481099976134185953706938735216437917130032820214062017058801269296355906850055171998726556680065213024678594667656352779484838618834963564493883447909027173351006134276666689864589128553754721018031760392520587265097945141954937991068373073434353924559327889140092057381454151527913731461160121510597003134398841813593258874327458900779733776866737344478371275478646500481159100693369110306611811884749695719159677045683497874937239785566290437483213126778741732802119981967245263014791093517679362924473000991498251956385992505085886150535155244562410644366371490591536389515678553787847288340927386110432899274760008388866711085148813361799656176090443208865217327768033642827698797694673885039967221045203849345788720859899825901875385245168495650922498964546957137074402903751818263694701432179409247272660636876868751665133479197314378218143605520721727236774559672990888581780171141850294607883827339803468868724499606818475173174410714675217973024591055444469072750043344772628749880378466699316573291862702948300845033673526057076553344842050011975490279199485987455036845039649548093442907231867119933843934805338755645215306436757878660037218701852797616689580063144007251215778131599623862169912538763522262204564373281229877544427395235502862970853776750676261016547888241435167721414364833814848127381945224453568763286684847612764949604718418444634745867795523836180290425161416304356160467788786602495961553576593451959453044637800006597397668420276720084854025114220028613798284574671149533912592460675991950228819254945742121083902255110631416093077382768655601022241335199817511483213693142780479367221613300854919588017316779995467729797113311503928489812376551814045818385094768562885538945521309421606855616087250510519816784527610040298354332581184636311843283698385032892157169624365705276344678725887928609027825064030239495960454690031758403734276961904067779773426047167045087542236063746730414972347185361012343235074569681234462413786285312792912321978500268546110004750214620832804647600853410469463683352513273182862565929646071567399447862606511748576261912971346985960786258162479746932486157099832014971402288986665273036070965801444034498201562887837540584573281125208642234537072233849816894478752285405209324461822558084403442980296687040650029254401211694548017700253526980194871514891543080217903605168914482228409862033377346656226611284846877949167548579265031072323279209348271395972444483978559498977089027518149239889142556235424762262774601406237234985711397747633745038256600981117704227347672489228941422498533849752744216681717666174832428195510226326354996869968845552329124872337611783297468488446325832536862463824647788327550609196783312322236496833802076105569563671958151462200699880162882746416892142108776381049764880396915320580229745743780725043997947381689573674868288245272565164694024696187822800474721357397695634249935390061361311148691568189885629081069917639721541936672139068012564603456851754520318816583147590103585149170939435971416397648203001603649227466978453919680380748277841371262552179927911114232816364798321523695549791919863974386223682764820160472876356438494513490852211778162027058662655338707135660861132709781092973992289575227857736920783843135927245254323408655964634386561683339040591148259467211602048165008590969505668974022095493491068961504393910286471090924467545005815865933345368115392452913001242652119650624311376142001877888902320752594478956240149361565380888815932083327749183658889838661168649351484288812588653858018229185395252604455851962873682156959799474515803824963312074598026952255343197485293416067334137024247540517861128443913606941704385396760427227259912393426773762544783817937091660559810515887239950868233070467447141034848758741917895128608738102727135894811909290066829310144068287377110685318103050656732698522428643249896660632752222647926940668807932911436898079567719418749493310234299878795039268598724788338004212971243366795546689818710106983442527223211988985610744508269966331956192585928167551834588886831679856503495186051173490119754573445843768208530444963091516769178903220897174487631647338738514877460712663789443704741931247305655693158914806064527930016920343580099647884975706332475772667479789882844444365130595206090343871926542001969100378213024366766391954792911845298368416462556915865459905259517333151220332518921959508069911022178594783130858692285225809077565670422213708041393376135772378407910740515371202584204736636838950738630765069214185705494243337093379781833628626202091782553547570693978516945532624105774723405405400249965081909709192197439728361159743531219492039795265026433621359433576482470081309680494179614008515817358192313988065434456040422484292187606064871049726711897878206560256302630300194448648648452383750003458348922518805975666072355308231305700811685576194310264644601901387843141141122238575753882282686281931712002631458301153117664939006470792789278657631753280189252451765927378360993343201254794433181863134587148594509347067169159969508609586723799697271394654921648290836987012283232859644074375612828963486249453231203417757231357119557155205623004969150353244406975757262758640905822918935287646896981744040659394947695967725877233826336551626879609139732011308356664349928968433513916063766757507147294268420363919694293461726075051092973689398012581977319511263170614641644662716628365573218489493620904901104090363907750239829645284234383091788210460098900921267852259963596469598689760043206957042034992073270263653010154791866552913751752662229922927289370632465916455893801494566508748261133729682876864862392941768913712808324834491468802957543544620666489822849473993697004510184205450849586655472902000503239883872973587103881983355618559798451240881789086661004580876401827422979546659522529185026729946465855182908097549829039828110310004755826291133409570314506961561497833337168358245953497164938089465256763273086881130403383896488653531897829573933878456462773886928255361279753991319005559952814284802024523455396034064123759166838600304787864748244395586639602186757421897549237195449762099661848686454410741982733856451994036634824653731386500946512844868388907236831923743661854491276971946657453467627549200816091896928911003435186776238783888517829526207219041779058860938574044876250714123032917434339562281499712483180617722515932656885363581001728704833848687550981971749952725162581423495255637652063074551718063607913703853927101877455514498403822714638782784710458099167568203300896420852332676408168014257295915835268456402267534602517395680094718397177268671776931020997684561064428143464342273196746373056655134462503757678785493069093122801838448758770707328295087622583313747997804634241986082326463060303673139856640942638425028058824507893292625431502468184952881174493317677202786059053172484354932862593434702985421748377131572981425067853676512624250038402108697612995938315243645128483002675443091100252117120065652770603638009546332918622276479201303180511060460005440896545644296197654463815722598262529777551389558051142499538596516497361041463975863523179748102377489588980718528622048107163632639671200985195597958827302523030381009909474078293465833619178330839390829604293747646799815784330615934054353200199162593270152581684919866902039934391089649068918499838687779288470465905658748666962453804117517689725100182455806841443511364441876194281118372128484150349449275195695725768435798052930661989478349591547735162603152394651748137718366699773713466899082465271274837672143530567151447062990300336074263286695525238684850951311979753087380478317615382104248052623533904179104982180030600552906475016650726520253917810255840117474854071520912060605551153830894126081662193553162960552237132683718583441825196882155002934404755754865967526068633129826920997401455443394187885130932373080626483490617105323249044436979020972905538804977463227998283110412330467040795820285941848994789854242883974031979634362504798363323659098348002064322597072265515000294481549657415332411156589097774940495059295229445699883927378822257004506675455523518589270604517784669303603583953310355603335069830621549179590404136355138262000345995597301880294655036810216297536786102510554692491569659607862844860269053654774309385980485523946147851066939728753951768140226824110849328659117474260288768204263121778892620012536163118418382321437778675315953405515337627114343578117796903327998342829652831784282682117566100094546557772538623614748618827830294007628661547531765317118616336857648960340907253413054105064304952475512945602537507265745330067908311194604730454507702151667446264104102394292742198069207558698741319295204714240176123218982549816325543692713683882140291185678007038122107190226880394470119645025570465192413740811850790657727479813155267696282195231061093720856919182068264951528701030308491114134231423572163927600988733418989524460612892767302034229700104877461133972011253295252151432108388911740477096231705263599925301691425975678110227476739362369198392707989982582140943255666873606348615876834117329485818138617898387646042661059536743520020883836463445814674029680379623630689549733117175515072702557639209069448290824923531647879947176474482289053538644278065774811012790907875818299854917166666474514003360366437053470579146835858405507559673237719724768241579786697827069739142215717923148916195790982397597774085125185840697652569920107600757479869193739576634345792959889983904561965851144090449603726035805353775888315905149241753860372932715951008890721869911763607861042467824945552227754348388659051340268041625095037505794072680087537920316850092589581478070734979997434849408947755636495045916197357865881957151858607852278342762210704162117983471931123049573949428601974741077080648867620235113005283023607992284395499813204351637173274929601640858386313658309092875229416545773543145370246793333489063284534429713949779841140281600473573885528961666347259035012814565075773801097543204348440976940903512500735291413674634145206521389565857175743140941294351330178130443792259989791730149938625105904887016264744787711482954829203144302845241291332436452975599930919881265976220147160781160800493750781001199157767976358346415621901399570535450788956799338510019216642250790437876607896205132889841926015376852664664917635644783197317600371261161112202791458025232692152620657435959285141118908821751932672360798687109546532947066653328300555123802309818327753863677687171986399807316351849510834370001050531317292940090251174352952600410589782583132714156420919176805464208024528189170073835391882252748514845119468653426848890957290873225772328856182149851852920861757186451639790123182697112349752967271974916223075823237860836367063913383440606942396838723684111826404741932076210909036386211588137791361445730880016792746569819858285264768619587491479338758884686307237292831299445381443531837770653242597484557642611293030944489981166676273744798360686785714735910198722660824173274785177636175116792470898051053088436677772721252444048957565043407357087827664928975638117017223787951371370694277207427060235545191948584289073773733416139101169736148877795007630408190145624017934027088190640634521085962193016742417985461474414394607489082354870307142249444927830293037100884525698464941172979203698996164805507203132893828113867144824508804406557527500375496626538817076042349012546943369995499346071691580443008849485954470785490665495363280667664448019567925643710460789106498166106664343580849210771382912994599165682491857959456160359768772608740201052132316375327510842903371007765899044471347827399241673283789272294634532513830114685329062719119075345251723972293950940824650318586036113002562516747079042511770824180770690694718227551161774385834260405391739949984512109440204760433547600928329000306594864667580552137095539208308216391144900836759131500815374273905074034693188059978965152883570688805995471824875763521446827662181084014734302147453137427237860266127985428078398557887265928148557759996534301129047562220611803051615616336779321232896222058560225518255754500402707161055464027070479884073599073347329933508052375694220774762854296917746797076459191579651555478940118390370824165984984468188254803313519384583078040214768884009649252043613506796575657831039386416880245556480595392651503074880635344812425915863898677603217556622020621310359143428480248614081698470945468871350043375970666807561284784710873894338496003855554295205035821175803550454938298076044762390551969814657106514339463938504145278898408327611832073543390608099669377415537565727485398709785194594333364853596757459437648389426467783237381163973365412606065886048533672463373574617599067533828579189855374750021427206997979948264798466623200177331855406462515375564726816284056612809145376150565136183392569838962317850974700534913158957203761506785150541319174202998138128914922914189772384788847138427289681523231909284852523869731544577598409132442360396814663601012970751815298902263321320460121636160011105647725327320102101244828278355734761828462601748256536535859638998504817724947352322376156582651399064457162636821405211837245247932000671307467476461843051374464177652176729542862356225217183970396545228077071150411344815661533095598512949079230946188645303261049710738096611043356885719243774522522120347179713454280641791543464763058467013271884338137839749189813284924269416086581849300098943452320388626520747094289289175731181760186065656193580171944813701945043063575979615785987842054786780055693415964285259134926876985558763826339057804128033284214129549241172365766468354203733813783355242335881968526001410356321829875122727991216712113569229964350996901076403756695366715280879410820418667819003656131250569989783516199548119781072495600186791645441901475373056630664791334189737706611787533429120779974148586628787741622097975920117084246043727727693466438074670277005330933340701442330348719144747537429985709919330286283882901458553658276763434891120136014694481099325722998786571998345534507041292318642092581853243674347028614695741724141808779486518531266103497609933972795915100923509671247930695496979774809499832917790227650361525535865628157254400205613744196745075880211876334015762189003511459743858711551349136654397620671960850419333145308754295738246934160628601882785458006654164558769153109905504823083763747747022289594165555429952557589751136088184413397997604370269720444987632038022710440125237054795792914734865933609287793766840095904588057524287247586754516525488845851513235646210285793009682947523059606599001750687868067593612135364915704029230533813036786080278531759664761327902768237052472531587394850339973217160023583889278983995546041099112976399534784918313325232976692228328777042180933802104989261972663191424312183571298365731142995763250631569962292077633980777900641751657392276550814513176956530925448286856707166168409668039353019688873688820802213049926781836276474970018997999326887675925394972317807813700313154127711306900753077632404632802981678158445762865471869272960202142822856088548375052045927053580108501309426506368762411613002377600147801341965471555574549696893677381890552975436356345480533264451704361705627441279832074230460657118372167027609859396028776993507007125903303767117170102323074710459482309473744117767445820224124370508574027986973753328837388197213831188941571134577759028626053029350095864893899959595802175752074705731781004508599933606308291972058807767421292531807212611214179387433373391764519799116914131424435947835018488511231251414310603603244850889449404014227748317030108231317037562929150082232841515241174541564626726004526562325749542797800044201071215335292927007215332305027447211074603467920133083249547119539611922758321078589027873987277870565794904843562603642842429944399451409886640397705713440643389771813386341880091577469119004468559253815478552780837570938938246563470898914992186036262197173459437937421822268197499638607488854155429773711729658504324650340261198308594055281113671131535762953201871118801596108788091713804138763802620657376939759122689326082239106202736060754479346330785051917696617611121678995556511236446940201473982365480785779617245979273019940216823392476289570391020524165366989783193350477974998716207084866090236299322634997300612050139261248275812343649893428948733603978491736586399264925387295587545402266615732076179003784126013631278489390743217872417937057633228393192255578730889730997700052931448861473474992401843341121929192034933146415924224966454305394480293509272669544920533630689635284841622247013932061570429758934923514677143751731461831135233569006312837005111569061754044625345035556017814126997855995911118723911929165842112771634282930489046474323507125981493915760285473539609680970458105427456149909723418311947336840480923643380764768912646361367543930126079571300547449543075364181518660342321025597564796978516279145349859894402655485670427048639537572561494517664472713346547200265884878506514239922876342783696993969377399569960045159211078920829829643018244140472155820113434758656980172446454510291663912827225892151385280364027216918251343542290598641584924443803556503119338998976604244157002330898968807092856429790832601778850747649328930469692548201299173319940466647339475665242415102955888225405481508288965512473310310598845511436069510618369174960820118418517787644486085461210590108250635402120791820724024082658566265626308611367004981714336133948782305180021936946830353794672883847744775336132434584603088564983604834744140373690957373845932871203160391140187966085011698322325107552728978678380806613793257554459563368556037550585622848636493640242507320955964312774285669065721850818160441567579523478672441708813231871762093277388546884109703106046170978286986133525550364485273701751174213677772599359964752992120003173766696363063003431543170103143987733945976130594762355000598397171050159378328707369829696409442029818399357403907144524787954245522921196369856103565944673567582596400544711460010765119776404803284653032576167311648207876977525224454485918187516422172830585034061422241274303346715749716609364316464158883773011874742100386575454641745052272782875121048744722117547978362601733221891228936664236283572004045191229221542014754305213141431895417066732386281192532112837599579007935531583816874842826074422260141829729799029770480415427467020886968862368808465757484435581562764858187026848806187124486845531575142083084877349282176198948700073251762706608701556177858705973776875708988845227806793865805224584787531500458468741717325260721034192611666124432004464149360690178072324005441082355191643570855039763045474031933978043445541247967832329518256884121766849304638949506524686088775723766402515992196943459514391645619081627573303663649401476146313582947091476982027227734848353632315438602053155177775034721079558209736161319087970388235804625189958076820747637282689630346034069178542752778672933440123714837332990386380538047335163467583091692366712110293098855220491945931659153097778136606770770407416112576264717203895432068225380557450875236946517695233837986034303549606423021850448791846081564487783286176957895957144902308987103326332408769931113557220918510129479004849102945317901560046745113191747358198639272238031546359800209061213157471895821773513642640489771710163452227727861074901243047487394355488748481160959350905446294952101974262347937547829263636346975177167147481257918291254402371682102311213449179764682598915034013214320604734407074024880533563475355091059527283394324838914518489957940125828379799635957036943851117393342481790998882842845666639235057525423556363187030270319116735131334452763718430067006972523782225339665780129727050812000673246119795202926379181739487445645663497877638571285402693555398505730126028596857696946259871759298151155653493111269291688137219211372269448378069056674102351718602207611885490311427123148685059434652920610754509044840197776437448152369185818674583021223250439160892732219634647339183850846495071122407238455590646155109838821944133292098625907937508817896111688419600825564069152389588123450698549487587126052550278860797990177653207065166184621856157780657710085333220185471959595706397493308811914483426447416291889906149745559176207695157098692701445120126024653151514595717320495369563219637167252315826004615884696286223460442611642022456078923979162934977581941974510187169105538915034897639111130942569971962005125508953671603666154712243350663381844509813167507445246314562360547721979067718788112982609393051291045757299128757800232656688081730646175402800386979280608727946705690368020680081894350964643973644611019977180262822136187572117307239652737362541479011004406827826102803605950162068210692331586794394144704490476809036293822396934481055739730479454843707056366121864213758903821841402957537167120891231114221476753287204233818706716751618671361565987456742719750443693291686655203119276246464983269421319758595000024821008345658273108930835643745549710549981699739532787797649700968161283822230043244433752605056729990531677687468570827922914500776993968202970025026012081561690326324439411183244781391407445603955648841268212609690509709130723585888459143952621088886829860056213384332188733811180449250024729651574647496688834231098439081735083753721326659571898274512339659664087606446274424500555175870394145465886582249928206353373860655519804016660008627010352542583741567637414032260315708711424862798093330696178650234828099403589002379530031170790673700594252463568168149118330201447130777561576839038591215474849082427450518763997676140654464153591898310760538463466883561585569749775907647639010908456541912537043492798721426182737396975242881750706005575979833780796456874005618392381150933888201654672796911555124632687227406752942843397320162962786178476602854618502720218236931613423744226936204662255313545272873365344395787971954575731876946815779099540698587667852694618664841693058685181423785512661980185538266075932349318470215285340523973348906473376950236925206096893715934189797925812916465011718169600096299047692818328448124825262596816838647777942072670402298973786955754302416056765679148332500257578981128299674183288448822916671533931965400470013488620245803417310520337643361500232673988185116522965530236565260482465467022687667820016092295877148186278789722301071765044176915625769293628088385584382360469219591593115455180998280964650769583601130584236642888882779897995159265999117001675325068693791949875289407694463495800254934965370329121634103457994637466171950685857996819490813857691229293120694776772384124280328654842595025358342967627493006983312603630456484265787848309903570137554554092090051264012032941591799549830936455665582707823858653108978643806640318429826981668034344777742005425079298193480070761720159809696156890856392060437006599850314311869842680958955463886729805451366461553445636195622108858856535282453294669689683512352276084171634817556513763690975954438020243530693138070178106291600695085505508504674250643992038675803571528158396580571330522543226241175631047235074859741435566361782739112235251231938898611126258120686729063869435196854438868805852876425949274660234196040300677479920534022728071891107637827098925844306231167156110573996931796921199247460871657030606465512248396258214302783135741970666215537461477433893513198486094868336995134029735365123077319158795764929143759956172345626318592495175424998583583590571190573030354381918707601926782344028466437259352330496544288503671398031675353059211333538705768875223823647976748014935815896093770529871266771404932043554570867981854421571772340996198570606484247797080286743752139251413204574606065812928049966683352335136817694284169425005965989097327627214481431678473069989165957737725010436261613263771074901353590582676117743418895739561513322935144862866277548631522193023937516802009859235614004914500309166555124003413499666408120872140094008567243713309732901985511506020887707586320161684520921366918886769911707285843390181019144663285345367197942630865724180445406015529162667562064958116565711427719644719826092875212724403889536250517255739615523461646319319683175529016948797885780477437575864969155558940853294450631993914622501513831881512028164905753723816521018986764011213752394859520054429760817890285195973110242783349497772976418473573009518838080684559311049825956197606737754770477554132972498254784466825591711953776514013447313507735462974694931762961277423515801836842121120104250523779234359327877951149672466847347505199544643637478645233860980550458051880762056867862787614318974458473638622433374601362585777174480989543447533138437232744033603672551998503033382096067428738751355971767353825997854122790387421423309038142514181193987010167790020603746911310826344794137652831377546097169277059801879457722752157563042229074673267376064379271298815335660541797045099365986510406046019612250003810667604143892993603235043961977286785114986752565139399578811558244426710216819185493592400246445939647291393513881010445680436806325357710035491868469063963229958819989331689058250274970062180641946351672330037175241291707172994889448364987226520804233934440041032182190314550396125181756540841106537899442874570086047323144888557903474762111036472758778828389677368508380492653710013298357448726079443222530314908137508429884988581073913006358540198258216970435989635620000414237808390657785766120337305616537165774108292216521249216414970869751448288150942883341904179683425840557575794700169786137985748367570494504762405618464978485201373226131555565445820051973267058583778506958460403387154404470919671831222972091005895198093364072546122318531665886885023943885267621284495959444583896767560010229874379328985861192638528629426322341745760165431823380060705116966841179098881324073899185945496493170212914770583381608008945188250459827613013950411190415125510262161963825630781680211779811461755943775518976648376871113701651522373248741465240169256974229983713847353221385377682859802180794760935822575512229876959009472544521992579618638760599112403741473839622965832883024126695101409047363153555926602626428412916821248603204063873895156240857918250659970746599483601413842309269819090044782585249861660481181609645372905159889790528356595583899890622212873160835760214986898520846454878589758689622192311692695465068897965196846705837939557705921977482935134769707314898978723147609755667744693154135249829633506125309786618245273431563333119439776198244181385481603817065916556974314404334190383348090759676098725825091751447957762381469517058556915502890658150084928004482582393266134023246777300337010595374823287793384344739339236907202036194824117330519615782409883993895650833433310846138753237733981117747689024361253402161260746944688854858841946376871100157551310130171431113142382997706531954547472473317385293648212285093343414600598464732250019857178782381210359158190076203563837391117408215263809899275812793262648177026944536282835925936068901176798029973177034465782980962742794708056374691694786190292424681752878610691568248303636330415057195287239504454279214510305856992729767195688201806251921297816273929695668677325088638624560680873633972462005994745111203552075742942812316036121515024722653344067261087574294760785966298596764739523160659084843583996733266595819411581516722381697266416791886173054208723326544379525303686204268269926003305908099794408031438695117406173392579062958692623285898805417469786844203831727167148232672546930139373272963538107298092664292995940141842708594802083259467379165885432593918541567693075295700695144261643013384287979564255409111526465295027346297869402258486712770855134130513607930315424934432467212913348086178175497839817305744588513983634792518193474425956363596146569541835804032840173738992672007731488439445126959020218241008674242067112673435259384965675971168796962594585843008972787825726938968673024444777641898878247743208756523883319913510977369303628738748770831294508055204933777904684283478841933020899098203340068093903544334174196444814762228247031898127250388394820616015724707969290505927527502579275753942530625030045625744734270778894300389470385168821540543184980675259678870340980100508659918883835057200105662447660012501406414786846312758443765798949143543963717264091778298139667709819166750545705149331193113483325891681200626100218771481149693782766370770658335757159025924459983464697222711593292971256998212988222918541191293096793772770834928587715662062004323774589284162622148139127070724747145617126223901188090050547400429764837871114840257594398786352603880432013304299777160271609436701533969329843016894687061157102642988237626078672282480759900549162510492263545675403466428996513865283435338209893977832548301178933631501829764706914997595458736137338431914295899101170494946814065345846931454502051027058178891835907362974997515249339943513858821788736460330591298957966705956636208319502476821255881664972955244963627396934651143468898581268280448089296260543659950111381102372577374482246271152748442827704239097855890708637490262805385146439018165802305930764921930420234809798951779518584712320889447501393948113695231306219724706109142160157403595101912703895312256992784035829238586087607510764606628429909332380520044575062296706410871018839850920633837476004890515091919597724737013640438306423337575134110877290555725334054471349355172211350141401431529487618696218992884922638099427429745746781737117637175639520624542137281683132543180218687811709637695372698741683970805437475911073331499528050917595246838366278507470609235239493079910233816563425933237524526275065626496586342529845247597886041245037006493220218827305841662286449823948822772430444712766168641326629136101080309730011789564996606159599495761461250454873518059134532757126184297684208430867535385984061607304639710880314064430497434717019002549962204722700170807592460102812680845190732062384060717771975417255416481139796072679648108462823016527758049999260025581222149454359575621589352191039634393004323616983948976913060665790108290404165264541194088404103565760947139495191621260878357377129421271881947293283404238285999199610955573703295692414236833701463679182276055496774080337707532000717910126065632276104855089251371006467652216296237522345149617421969944704104503179513303261777629135301506177809335159374707938225540926821302719021838250197898638130048777304280425747829641730169583300401606310060123627006484849210595866277508969042455937601149922437884094773182264011466888393501886907739306905253464522601092037912907482566679042738711825200427058632760706461762785869631620431053710672961781264393999860369226033120064469560535285304890788206601391066004261829717888458264534671709791198736194866843742054678246219291794111935779781238628137258644473918993777555701175029193050135037103467669406629413054384812730966715230385516298661119198299652238451896287384294338998884523405824415981796726316601062709229621339804772751949681056868323484438970762640626050259301428099836438478533438430354250864066493633190883434664244732151234601018433115530270369298112080297269227922704534588985038511658388192669193453268461690494373973825373823247013614805217438091541002578808512443948960494159337477400122958690862792394248914199025105264644696815135666708918924903871878023764055315909600791547617335838585569061304376224547614534839400678248321274642815753786166697873375530510958483539930023468107406822431797148407215861880719737084413515417137809725377388478721665978458463645247111636768741858141610884383755052975928075806667907099141835477445777781217306168801576924778259972889939509655476818082735017878366259441011245484437957039040006687534884084004124511129459447765617195874446649539865237255181278709387892922783365683639094715231293254829317752215091241992592635888722777730928672772207389186357862663411431868114527301590191548226314142067589097826578012519502619012986427422214660716059570443605314999293648118100203125743760269218292422825031837168511579186761234752385177006418054760952312022067144546458726766402344281022656668969945543225246735176571547389275787691794421995425998146165994233698399556289050036168510685463335933344811605639387289893338132536732817591585168658036946692696360822629883046991980179043920691753941692492958426185690368046293728936243660014706261133472578784183210753968623399747920606603873405952757420823984172600172969176800243980341910924059906321654674138539638622972510104853475032808731584578102167898555531083806567855766499008099463348120509150746514212885156953334910659740185420545255012474671277437308188865870247527775276645431246614759711939597625006512660690243533618128703904887512552796561179106014893729752943361007120524633518499801980348076088112243446173215633685801572623145162738214066886669632507645627062159185234776219477388871173356192443104089365336583590325091822904527403532586442808959166543924065009842709817032762837378338177531109699906918311638113135746285954533076800889608072226927492805439797637222454049766288541029149113041083046259194581552397651474470753989174536785487352586162624286854983514930798329933259530595949890804466777878609537862773293764553516427386908564596931748120538997459461501367496490124828994715835688726316962239857473529429024861184691475032546906311624734181644119452392458103904494931186457374845859483160308576261004640732398008834042468734398351490011308362940594119246298292622199157948747357614580658865562080577953485390754759537396167077868376323525994807901353715858562808353536121923194843811041170740092408895009834565947606140224298402345680673637409287450787965897099918516950544247983056386536980201459780164762665098327567256409537754279538225473474288035364490044747865204367670201766037080855275012859726858380053546999101904561477786795460229304863028151905278842829417733033896159754611222551839590679415422856130851322030571941202613945401205998689993325547480800134442296389104983737941545535940370067786945668289475102103359175464425114770187819672683851634379187958828384135646045446231326907146360388887774051318234783371569225050932219911016320696473486384044551911563507718998241642136929428630177573756123888567995707499937558084442981171579540859855156513544972844645709142926360399733639007823948174605326392663603567169723925085428848332119910741923392147758328910079993430710077616299553597849066330398401775798319551209992437293127668950425490434826992694366534486842466046507692165049679875424362142159486428887631169290418389145841408804797787392214061234554502118076588473872360239716673486909462475375555483181170990438621700360206679162344084913473707515660304394745800606347460842853877335383622801172412472768126029024630448067397861483388973725344200359106174025310113883091611637694923383203400243718752785391555172737383273364538324599729426030872410559946563064730715856927551031406596670615154192172124026985026202856788450827639571096469615691766182615576555399246679960576775776069979941294820554410914243872139960586528724820104168214838023774585627278339098412086215688074430945389047726470306289302590291286804388693960824685224025716502776142956786724634737489457529569957203851971310543999813929375526277473977234449582941690792031773010792403983564941431651194140890182154946360039414727965880949856045409625408915031645681908550407335881711198429465369533049717484143450294175182113188294325384636397487704839287789337169484942074635842710019402358706447751827143731144442420457791774938997929927541448877527635744775273578080399187717299835965307554135233301365150771118722756763645885216105477873204235548895248974783790858600443935051546388504839399423595481119308620372376761156389307796251842790986806629760444965661675024003138500777635838631030445660464956062182049816629526996999254768179292125480757478938566735190366364777940675991703870498050714631146953076604459304825758739617862944973962686859272109494850687245873546744575367186234515735511422063873459412081145879030664622503001257606313888257902538574458484190310908661378016536877962492177947745211156231127315544191107813822491729200448857265065155351127663999222248559492090400778010052880286233571965754391665908910804135969227768904699520846195574148087035051745796975161711213935360745474878038940968779664139959008158131412939139280016378060091956093992712654556340701563488111461435557690410366368887705100000003913818433469955063748821640938384514817907080238902173918729990865648343904549551457243496164273028790082905374330476330350774369865368725979625755181226423083342786634986942474576715589259588880687896594253071043415329573174964003484195217877277435197470053378589368727589461356495030958891056704328997194591001189412596240654776200980009200801611594601236472424872550885545614035180992705210781747983826354884818594253750180130328402842085016973012815090108517541975796710722085661757363371718647688248705227767428862500340037933046801712714659141000790250927648435179326834267822549864550377294722384208074311062442495513543072609418830724484654705810642836496050707648146329639409250857993447157758164586239069135000421677484093911974455410808127998576524615732472498916102380737348507510248817692978825636118542190900986867334614017810929942734986054595612774574800390818802240234674003673037346544356570443125247756937917323762866406194841773118364197856037415099033346805318247332877290845194489301993621081596738772882617084624302030563833553712774599061921727823372098136636435521567882778025801146873788431180216274318321363330235696571018233567464873730063994060409431271846730404721911191601726447818980190030004014732850003336325029007721131837553763026761009710208515171226327479118910943261316720455411207924452898656647626836030873243660464898926095260450066285602372706788380854471639696796300115022568002099226496451082386947614148953117364704968019964603730536115544353757651147054691753908222717511645236868848064606831403906557305210771512232828648811234129525121195146359144323226493881679007053726546029676257144554565078873649644067018269658563863189070273231297602073597898599871799102834380750048751936915492091762048851444832168455037922618971532303513939821208679949582418039708086838704844569097995493613474602843625935818371387298142215157949723393244437536963299064994463285690326854933177801897451856841929675767625730929255638227097255767819635448395850026995915020075183857444671805451059257773115767704381118424896029908089566933681308009681868999162651303277637227203515050423353998631984680435635511637386036397290651292466725999730017473423666390364151820303174437693557987724720525253857338939602024685086322008249679606528386956400616818821732466602335975947108783889196678167065010307350135255761386351172104238697519111491574133555588234971832739866769271731796303113605350268724144800996226283080318941013445668217120190930510841588096326048890404385339672208702835342761800467652979998186693609578116165174625840998135792922277245818238823241464302134002163455100516857965629323547025035026039526918158563249854555367991577656117389712199999006501873444552893701441820225355660929254893337043783665699420378782300120652509646756318508409319296584514775994491986567568903807236478648932643461871330481589387010530390380853905271366817175945658446070141934902638808523006254265372371789252970280269869124354388408635410253540772001229595164052647754631570113194067285909145826457739506342180754939795533003571218244213775670407474005191123574932359695531510062841443549272690102968971695918250471535901376290510598017468493804715009903071385092739067962982565880438603996749312480074711042377164305290275687620282394827752824776154155753417056508757523053470774421163054650456784751819868484567441592607339745472397768829558301289073428888380839787117858577471251296272578322360243627387275072436503721164203176103436420908432268178223434244723461673295296210772374472029445460803785650699268626736941554470592053045221217415344744708249878985711182803046996881705157712560551625208645528712594232951503258001236197135289448636824440289557555866885295967348814984418949188904571560537136631943538009587727094279603096767792155579640128394894350930481898111471902529662955913462613578047744261111617492726041688818417581454064880790011207626064016357177156392023911769007171583943652319737511005992628223499762582462093077188404536779148007154878219983406740349979356209745326638881334454999354467312816056849662100258234496244003860440856027570685240837036089109401545791574034003793107577206690352774147892325057501246454164811157255329837626781585712326315182660781515976441646082959809081585297188228496644404229747149344632996375542044117290095532536553954420870468770704001254066311780634009675139321031230333216755185980031316200545201293714637403128735598296787919337392542069993690160313864176137832572996842122267590010570473497989603140007679196390600116094268387644149852107483122860814251185478191113519336788273249130342568324546969034026508937380414197233529270831126604630293522655963218759203816926582234911301012000755201731377065991707289166653007669764906140373187932949969960093540803320386916719394086020952149003435193339856670921113405084082869341617946083732699040156658054033739613744089144469594961034521558631263190945885865224185803809767434425255531868269516980835486286341233514814291145501838928399552896601628034525293279578543732341334046312078097051771762962354756569667463588590577678133625539551463022367634531490244929860385439964989290916644641019589372793097397770812280544958254486192412780853836078874848871644999350709283088102328383259459184624139112787413095832903180283659123137142362162725832168141813577729692383753312462273817098877348989207271895879968477240044160888579339487571680985381722814140520419616558763934075864538425503251436254462401094732691752285552485099374704077792862463960710908844325304671990721480264189565325893573145083459552571686527486191442266290335426381540214765335439557517168705984316534487758764352612164345473109914224323002779783709520864288681275354040318647667849160598117490040926581163762539953114091756945842813059164612536296078839093682574595602252142026434082395000834576992074535082489340597219871281131706690612966027415229772865096678260699991082463308680193009146778057847759819323192028783618608955590722906485878263362258934874552254875321324306220738838316779756413215266765010862357472175624204553133979693199234931706056442036374162772786074267309603856398512790638718008850072896200838249228023535102662884154878847924335936337205797461380734834349386120261722654316917061112949830185420696654247374931610712586758545494758518316684385322731021581803731360441373220845995795404986823244299534196512271192066772328626973871069472091097254377748056490825833527950914230684994888290771706326163106377040048948033452785096830803315874752047698884383163247282998943443148889838551792738109813244255752821417633154175459360997996487545128843920615662552623412387384727345480310324076419414401676886909948927181702382694117277507590522103286761461593769845402089478344441342055267445470777727853638657773184054106003825085749953922372455545839330455524563225121282337762878277026285982458705392554044943901512489281545152895824206350326027238449847297482732737304083385724041980299903114789232041114748093083313306994934691142548039233723913189797528084008386385985614031252548717614665748331603678683127936764858579249784157118786183529553482168112564832533247094666507895629449622081790892483627136270052011882472202323482811604203343574344939021270911179792144064856694830101576438566035924628384258601382511039260393458239747105901759365564400271318091705067040830982977494738956482928473728473278970524062237755246917618596190126847744475743831920975567886588310272956613412103284213004164264357137112558179513214133149350216576785711640320610910583394902538883247708156989855697503027737900442162258041875322454738696123800212628789928706227779683924248986332792318667340257217023763898472052978405955773908224851183362488785428641923724116400068687795305485782951917143586483320054891313487180611543166729770224409767975014361578093177382881106048764733490264833844908901396679836598312640813721696595001766305743862160613635520231889430475787716688960929862414953148071817013972603100665832006099994641613844679568659254101721300013068191894319629893421173606507125119025561455839735283236968264347478894252828435605716372253346457507365289809154645768640750917519657271487481720494279180391478354778110993156848862115377632572929273580413205880065402014373593474171530299902106554083270433020762373423117937506052983621186707143809056276054443636765052963320286446413675814609929495209663230515633281348662806437239029967714610279083553744444362051582138787954401878851347251647441400913240111790573788044109149106692581523734234688923206474607937964640892995180306581051752671502366323450036630312377976688016086643889751260589967259000632473082724685198753854189162463589468708588945088259543406767945906033674806286232443954597115929887664006148941391769148199424578288238686400687596552787622882590801626408078368488556135884551346407502804333257670799124147785833142823875150082326720354312418548964551450144628995354246924440267296546129388538022642988382902512563077992863220803395724485631475323951748779172267125955914960418008354166563123150079935661186899758466207291537977743303284266679155124063259838112301378105815307457847897005571303756385428565582210802347954884610634298340097199196797351097548842200910437836821303395554574426204236240226511645480820862848905653537942599198523720994515994139190731453502468205299363205243877620035843144159866908499366589408048952127445639568268842140833473753328042808066906567268247620752590958672028115774106027801244976255351044091800594589761734133425874737518404227162542867955547261187814966407744392842283718282617075316155351349680544670913978904565712408074294188425268499731464582450667104954486297133658311625269721457575506423307793863726999007633370513462662612858650458828961663361537011887521991831037963912807052836395126109687720107021339583911620926450672032134477525023117732086707121307517426381847023060186556892879658261764623400113266034960400020184053944719682115971070251575308413727415167895508116863643004741336878436065662594670612597931192233845552831271905296567598810373929812621388538755989944918126351975082566641634819231217971584485094580060714059991422518436948676319984590835423170177909072141259895021801186496674379471406961939011004235052298817401326902412756858137175225725074376123368762177164045360029763169537484383658042700956913638181962722611456356418949693295943553827065068755451697745313269214625845250387517075497355381424498088606762043347971599112189091640183086424552919671631389393438700343873187202323815458812648262154847409725079094164599319514437368088564320316157464444770679438722036011850426511740384014188059833804920557403522723461426449893722484134374445919836540813226749319398477086656511338070425360741509972612213679265616350639039591240884353503713659614050334251082833475037781884255347640740354422997608670147384913090817193878950977032715046875240496369189284617376405126634794705628016658221613761549938515225912381406150777135564270836564504637602317400856211453860342524357280417660141359659202701398010187877970905867452727363306683971719360040953576430176731817450993675774092288667638715741471777275278662901928986109757921319606590723527710598538163671804333125561426446589209192424592988234587748745141369798511504123524572109217223059188516992964340589746183526069193868889826367093316447108152115351777272402455122318877759188833264822440639310538981269777978676449044922782438734599576615365836529994952371422874089559150637532192342129464443927353424145005538215930634216220741154356475568395668006114965098553708680415819798736947255946281916656955547757265036821971884430533385017209272834589528584364301666363860333765188899015141130108937285414186240269541398033761260255155360874731821488123685665439616648745535398658402391419669320235155750541713048031502785754904813602189189063347622292921118876817171018499127092690559756026294509312216271516604241577910988320908357648377438656933616861197163606723691182600567917665506354876594465212566598387394314523790464633316237178884914105688109279491657837702982116628543891330789919864050134341242620179486222639731159328255058708193075329800599852839682179762578863780862072217382146268966388010599297882601117875137805035785663313165991599635069031096958372687964178306719868644318777287377657292141970203095694239795594320446754976387221869370951533671728006618557441172823467346417575442252768206591266286493454137902076382237344270918701871918692562460411746548659993550657664765572738437804600934429892491021620993441671924406368428924856896399462330003985937377307198697348169370971127134111927307425977211401363545855233741273874995531686832343015857327189480315820750724895186400782760973670059682147016292679779789141809601338896479275257195725940955872776871520769492381701073889919731799940724278887859389141635537056562664142886296059423103058840265495805691138758848698558562232240311657952268174947096151954670360570906510967139124251741548923196182767887317059059137491312152625699960253694502723239955581365786839374267894031401105242222372129228974896560158180452006555331902882240124686550937727981486921097752716009367367258611672620570511095252302990882532860023880107802735049408231292492932484778482526516479699740260940830870822956969432960706375605816133905801177928690171222723469623279087321855462169046071235044060217080215954058464426518998589302737978121961944547760338325997242804962134900290952029052304017671386400352405338866800773546066904783189630197448699481691032249740082287863508663685010029200229978973657978477970660713184911627821722016185469438564821148082480781846446531979312213121109489475295254488681998312385383004315937113180795519879430391993564884694671192058872157381793333435902253081511548927546541603338317012883411401960141720716103603467237920620008647961519203943345528870413406507239919695742956111950502628553378269156936701954455258160257136544959775870949190993977595836979836477017546033838584363271259637683623938024411688329347433477722078775555300552246957526497102815321036669812794810414003830161694503093069959955821605789603396597727106942464514222840926228350138906929745324367855405454217600395257606237313693875953436009680511599440227038144149254355702617469097344482658251964106887402659587431134241436542266961462487470221361824852136105389985252743099206379289426055551841607980846585357583484148767459838728064431547503357398744684346253003793950178935465510384667604137713261719912603671340435334859805998469427267203457995778123532488883469974111549120853911662792519328113999245328175623992325797193488192962506274867472568729462344917660152895096606097800388091146454993516863038853948788538584669357021922824793007137236423996081690194278110173102163151638053877171945702406678636885401823911454826846934823186400512623363155460730197149073816257027931205079589040884899192470458852775605638837410366271660925961018700103194427088777127696735345272023096821914251992662103007017047337486878192402525857825421892310458148634861328870566094242882092930634533729596586575379481047165898112685757681699577678290148033873339492668818420640480348670541438818163199556331650353280868714195311574014939807538864441703976067651038033888537273360158625405375584276440373496894699838519896339026586854366044555505408229773297770325223090509614359413249661062273805529015892302342896623267568175131216498656674678716509111378034558709196168712363798399086070076108882907512766606421635463334509762087355696748432980483822483005556083123578350560196054101826395208853208702736972834583120113133149699352828732920276440441948463921085428340240340225642957722677721518330022154087807500965574780208865575816121241880480267683942683865292276730791914437870589607306820832098098068407690298311947374764042340297311043629051280779999265792276842142573351946975364746473300107639327963416095811420628087157710265990320141649784566749714630917715302884500538776688563479540503233668812997324504897955714517931740641012282412535875788925812610687238694979572831786442016524741055543442768878347461178190793900810793951542507819085033094982804715585647084137719781550967849718427279315278627771696860395815546983723974250483348578512447439534346884512167228185049868298291418671299152614557100857595483193397294828666479912198470521480276289724165893619706148730008602779390587403595755574774652103053159223405162466821766764742299861026289961674745115907924109371070142957125935937579700499780232459235707167652782918607410470568295780464532338657235969117976822983721009949728331898266591113512030995005288552998172344632791568992822660822335041135190791933674292223913473363135462881233087437153309937806159454542838397280593081116307806854050192652841668800386591164114534371106081931238724381917007441433612617886808188979391889641810640992571474820717245976894636155777067286379090638001233616217091168045660287412484916028193508816401515379317546620527679473076622578443937198074274756156480160822942681384372409715172766958327097232119406697301402282099574743669264024591046440136879216047808250572606920748515668418403496598705238260770134281966145432391322109935085030953497678586451297500357071135407591262347517904315065366477716349974979472781191077028687279917411368130659433764596283786739057353337702868525753471821554862171765143318270077153447468920527953357612238424276493850113683756836141910801117448401348042050104761114281221779615760012149547589789695915438688476569315983872037093067575636208921436416730878657210870624601103193988829026693366567889267250680204013372511642974016239034984412664090905729426096594917021008144833876200475217415013379187230588514447646244806863479866499501355246777028978694670878157434924991448687630999051531234066842360918644821712040129304142169910764617317533588678685767270246658695204056525650571906026565402592742379484911389665130865465887696506737695558652724548211130706224328324817963429427922331981408662830660810383452324545658645933302191101028400401416418130269831192274257779809498116326975640329776385583873347387804550940267345572207644796165766268792873764830710622059992696093637274991941164999777418830167762230826965015669827208454546997457104910366384700846228037229233822730906460666903330349424133972856182714451858581633535182036759051495619043536868846693554789117448528517538903921570130690047665564736782309248709015648684307501764079800358422167286752954848747113449629104595870898919146197686065920493618229525242790183325917387809881059149775948491937066355640103068204716163057978219455932625639478128066342937484214675090593456369316850424246977982351079434354108291724608194438738686479442738739087113653702650893916896636664319202212065539723466262187458413953572178778840369876362545758960540046604672498428274773837420177040408324204183213798752617421786944571347415754798238334720333980585296233084919487173017222296368296959593222187183087234689833020786462243956467514295557902159263039943320003463400921205026508644400739244122185415907921299534304583124185244942039500479849134793560588313568201420537724851615402729815968143619804383151614110490780202609340649437536329108424162149207558559976183632448776630046575939726644833986452048316512341276951895287191333638095268121083764595514368067872834544012058347397445431854180451397326085187205880773422429753808698109240845853570739736224175548364217436666734257433914819842659398957337244854542507470075878308770996171162546098735771102602191390375221295761493663310890562433673859317804294651836039034977182459832508732688319961799471190885926106791322217131479465921374433182225985524072350202829532051845891340242100278795620737857513670571351888183848842127044256177338338256164842732197839691731795798154126940813326956785498490535164994355354793899348148728122105895842328975139592457689203174041757373912695276016211810542453339374044437500045032887237464742294012184907426235865260280162092468909609621154302162358618613978008210552014823420558892689060620497543026357629810833694388251547167236449438351244101929846497037133756247734193541267893306988442120972508985401252972393308030730061587764247981455469736893063544886693518992370067958797706750304159654654559907628942913886292117725521975495172490396117747514658286023125705126358099575609169601060746663177230296886635418765474306320897526554456432777011010975051596406839508730014565052011060979800011368224668174474723149571870858868870583415093129469078406647444504079839461241577018716016077397367432702336686053175571373198588969487378367032040863350175643406380919720617386260650591741906543691058056752776164732900634076868514083088156059132259341216784417482865974715273610088670669181893251566402908226337610816247179364329248821315537034572484977237463391623860241493097296842395845002777556993266032511128801528091398607627210351185774799485109752785273758162616268547572512401922982661280714556723127701625590656890408439493986196501669164978145863946957755009180558134348901004128978314970404395481220077062054269734386948433694062531606013166775641444002065992980844255281950978862906611725198824558376586710778546399472853505528594995234653840669805243873601522012115356420274602733289853434100214279034630034730514560819856206387159728462111665229688471203844420736672840022341104099879528116839267633671273740558122863853313997279659335456790476217225552613731974266597712315565808673115683204681964933109995819248328459553206686914951307479048721503719654068084836511493374385878333306047568300658337972405537878030236712708962192372871439266767481259671057112118607222389027455738651823624255119018203530354260206053451762801752699030670265932342277969338590360140261372085350473873199973513879437625047228943738978439336879416424592514667064549658007388690749395171908935184158156745894697889194259388127486020901909231347464322267556785878266918497060699922480695523207145448028796180432439040007348767088111898107112692979206725520902568618621868322732932263601361840497933563868832694224434512394881010638880156389764673466411149108349134246910296425999177874287948979962655518079540268210278231523519210268468632618919923272627677817209732979591633550028698590962266086358011400926556824401460108453550898037951496287874715480437997054029272915325361851253673952022530595308633596678034470993249429253156182182849901751820637238565752995831696919316921029147128530456053248651685891646912205081883418159717051296531198903880252879593064320706404239229164034806811390782605942494857773993992426156814735507383074443560966803342019501215049727859523895803651019422975215710050137753025716316253698083649133915128314515743975120898775107804558983066760245739785257132632314833299702977604552189329043879712914482606218973792719261148662125033491217762329248506156342586823188130515077275739108453095003437005647496763786612243412626354182660682691146450842534146459334939698843339259897796544251107961366595488883414184281058060066240964855541531185996927655788259260424767310624235072191768349468867618945160457698879963730251826884859594727022743096600871540038332386237731829570551158705840740572630473989697253763156922953755436216351774073959646262439709097321387678930878271255495606355455914813381480879255216631137807738614860757893414886235601536105435958595766935883163682339091693228566768774134719610380998629055300929385915360801617687424409289779377181173367991757622747961749023395125791680768417200552584805995794810928449895530418066459335128793956894967231185821436568682604745540347161301997153992707544133254051560914883170318402288798542638102169569580375366304143213913238689281946621901724691123570697724281576081986881890341886022785282512874470471211889914623017146792100340096169049639764510923488464297954352027490272304196234142550488282467322554712831497560358421994667436878017131257994018780295123485131637152729755819568833365093701797969156688056826016778786519231112648601588685760648856494683278934064076203680263193737416975666884586928591992935405929587318303834944679758398720174344885864908623404831281344463304971562375893581919807955476911406383503686803395540330026306953669465702433674730318015067383016825622632508571419854682212843276974891747699084531519512934783406415898472163167930595857258924862561308550616710028803990379656681220433986325893281637553927534472798975313050612728477410985848780036587103719453819392013002114198766345227366015267621915127670556179108809653618862862172518148329981733867148631170372712144942289248587254852527754326953023250992793465771551265662259143278391521586244123445893903603775109114790817524593488089997736552412027142675040131233055358223549462994595110442509566560010841141373617025169190216968483964525949170269356504478406930064396238576484128464137256291158486795107241864710475020561597852533774562362251956621244300798152506748369705815736884428349202120369788673835834974719046845255535810598472863287427158832786468318978464789951417273718833555812197142968299897254614844129927023867322827388629794025460819287358527443465101684827381146616325959765075659019981025052389410647748043303165154446737428820468264261872694204745717470971479868799347142215489662632272599709699802963440428236186318928497173819074718265186129255324488525827879907475171317655618622206516130062378175201946843493346387042796753778539756658838197829584335216882646248036018202352362194280831651937507168037866674652992488070511529677159281922249588090542696368055637947962109121787187413916726446618031071679750377412202867905397396435914196111384686972165667168940850962627415804134898761998601941310077496110945708550491251166246381302075734129025538889826150927270657156984467990798669033544984781988356837470601782925323080827116724067647907374582558257005199024785882430289016227282764711201568185541611704491444272589928100111723037532067537539553090339637363085836138157850321070286819897826279510227426191771436702415152433368742045918107744436415752913835123389558600156146007956344372815889025061489686674136739440440650347544171974495658147511152470977833297257154862110711824627293609321097200398216678843376114143549057346556252262417512374570466954215600179853773232301856790429538002835534417160350492875038012897846342409313497081823056927532542837978285935543424298503422439195081887508103954712927051040915585475477616845426346000609572862445347161945119781794826040607508275779120778842460918687987557573565783578001148225121030414185604269553694804589300605270374301910633101074539687972191367801772344972811779036182663660258193362760985576375108266881025102263558216995641860106252409678232548739662548530261944316425421658902046579093937424019260439606316887219208910458843784695165395301333949561350656484370617402528571559524444914590242179982049229392952068481003802137967774236070269133468761994159180432933218181916436908876756918041629729410616585866755899096140467755044387276741881045813882223167730875564610907003831648190207620756100612919283594219276629481699736719591940649438462235302441022600558465172267706455692062824369829910189307020768818731413648470104773960255780880897445849490962120662598242968878539228509557499929110241494893210306281017817010213499386439835117940399427760210034424432699310680801077463290878331642676159877243625496882894605573190265048165924513984215378019684743427410126683660473420096885864139780359737233031884145457147175900050239667836044541345066047952576875448449797254192262820288940752618783851166146457675294650684564976958741172972506013744711020342424471118889791248107398910163915563041515738583040343519532046387162792189677925122465601777428874545611832328810532769059273661602926130290232860701564711545656099209530818690230104208679231454400748050709820140675718719365302711147973705636623991859325075935084119410382517319966406375811065738466306859650204735395586326517424816272832214301904458743865177657476833265605661028261502984730212676924028769710627368653885131220705047369444090104948748263518416928907022593771095466190609253858610329258345828677808714154114623973724204184528982438365793888213253321708997482759516297382113537726295925455180572567633808963742275603173912220982918994289715369911061977987979372230298445257171048176931323572658582774068106068459341622974915523821554027682181646382759612544038864163740119324390194595594504758055061358890240446023019856698483314831652250601682955825163807414736173904103114346629963163207314775712434269155726567533083712142365433287162316408025785640565879680851859359501272861702858221959777739941093526046130433157908251838851937186456754175476155999344615867022576819527942705970129633451068107606662660090436131685133191344056825038309873224263720571667366096698927876290035681060703672757047551878282209786833947720703725073021918489164771018353689273957925091563397924964610118179751741939478307354370885690703938902997154965297186623404372822357510527624027577688875022001385186869540647649732372196966473219759625345289319146889251144594758849831562900821424873106266366693927307031363466388876720274626407502569745387086612075435029834926137221903009878696025693003839098619998632450249746970781464206810467139408461479344694028320992645617827484516821594779099582384385134278856451940124674165579862277984815635255903819595639111331079213159236091631376955833415985145603199981000039324805398570648181278857617729489974125646531739568862261077203053278230238124474923043449136288475593486394968014633781999955850266073905478898766138226733872780343010566041920449099246371658918818831663574911200984767689835308828648772096967806856898219236248610743666555994042330601945678185540967740152395919323201363964975136975658993008586922099524149751741733967306327488707087440480076552300603111402257524060870990341969839661486222148622366572161407982780805873746255057728961682799428677866619345883908983330668915676751993673472153332023932933465562536603213852500942254928527322107575821341540492164762600139184061720093888852190795074609937149134368579235013628978218334387256677883636531874801123952018946809042190388108389992985378344796641469891647649803530956270574797425095295203108404418226803136006959440243229038221293036228915805923909991992405222799067047552647879984880043233797552824661707660260292425325128754458230685865611575113690067106181562149201897577983433258813722325227877484428804786381754800586487569684746474533046627274066645464125791036726154258647147554090619795737847432580865954929118720423452452816583025025717752790318017266359124419530547243626253965611725479045387847716083177180038493286307448877704179902789573875499162409309195714032881142519258734754154426949187512456813738678319867921914185212933925494806162277101329860909239922007380937077475828634337858856348332007431968842264543364131748838995568362498291460704975172909909353791285875236693178132772890728729522906095603582636436781914064547439913445418648441603287459926653591309448739370792779682019609118073220943327007600763674917186526098677399726465002242464268063254351850876217816540003560005914343915346196810061595137633540175230728248155789107437108685736128575986167721555176331611593972262306318752875442911496533631726014710927270939106463037908407205029203083277986179795448403726751099541533257801709528924880703442255204102980791705334758978999495399099568816172076909840046115828741014906339368843253543895315862708367277684404272639370715493289877863765721378909098892509746049615946193430382098757428222756185049366237106405129475722966747302502928970352066609992199150852948538347989041782399420176138375111563012179838511745685753695009150800458021362275995271176792220825708113345214422714870329795290795882808678854487430544788843969882307654973628299665910677324671002933900798643587885821220094509424048290840288711048434554584138600619708720917431683910863890310079364763264758403405779712400303899932444606052876785840401468813651780871531040165199061410146495842493849328329032188104416745771766591497872557638185782391334032988662344303407285165190191662089940302282508164819981117091705037559782243808013403811872179945378078978491523358175869757436678225160071969138971438868090062400395754483965048107510575339386387458771604475845383460357692598979989030016140631640935833736046783598086172744411211186725383896535856287678397024534866884454652110456009701267937886650447340575910402474692844263566036714886532581375640122269091185145162688827698564168979062338469651875574632072657887156665272372566692613443415260396828450248581631631921652133661613997615616471619956383604604015877297230106731206472722462682677452549194950579298613900766516834770670339457537049352969263493261991542656873967496466801104930479883464230632672483952752180560199167269318555137936478448616750901900429315117145492536333448503429066290800782236139905802614211353014261194769589383917749650702719698933875558940460186016287289013448118825846419403028492479782938030684334750941637205634838450935504202610892670035660494321702998307383561535343386310152583697250364462402437146380161168662456998792094786070734810930261003356426086719762783561737573967698910822324821399262928869346124239141574755153565034100761080289224764916529933848039172267317349096445267383094468365449375583182296300268754213261297828111036753740528691190460272650862933058817772826097365656478667951257323351784407214008976028633348753343172817084572603804166887438195749634034611684378839082506234303688353477792488444092592197246453967763210543610412231111128979664149771578025689640983460934823629687299188360838238685315039352399693165533046534544569756359227032364863455690186654312310357013455643220157458994740167656596221523354388914815150792486226230946529539966255804809470784403627663384042331040948264462060596578019868468582787863190069560848155566048994292360660842108953665282161090989383792007161429011124393122729832626887429442057283940787189632018853416064961547306344117045340207326349252261995673365031609330957279800859204948700753491772054139889417346798550116026176894524078221514006316740350029595683039645743524173569010901107760846570209012479472035677449891856082780897104178233722787982333693411593899401028781878272929319125470327903816061445966979257252174936269784024090278666474174840683931841923496228419639051128271951048473907648986239462050652392219052988734556811025568746967068116224149755340844835526828646932333550773197864628874938381316856301269570073852554473168141587809122834090910132972278453969161988761093715584679858136015068570836009955953781710554416959226855806447933670523180846805554446740593730879533864068636795993241644375344102046290256899783103841544067912430859695493167698731988480469363340755927766160097127267862681797633386198959510515153378334144654639232473445159913538096602069801181889281507298195201892678765582993412716076209414838079955906053036290857877091988379055711146467507413986392454278934697425987806306588106741261808092858014527435327954710334760512016962742216214347395306358980015623454840077015682319734414239098068408520702292945763795602955019217275571472493599488129764705116051514744575273944145772755877285697957345053046795422086633102876626890425554658417332561407507426297668786582819885680302582434623371412047847162151151841854085580942975784563230242320740919575264643836460154701112049650600909211288932646079499733715454350841670612934286679711466326754908109811877570894615571273974568063503152234182158706633787893647748732528517559118914209241109643921892198959825221641020227725856893868001113758047193971720121081527641893253122851537789768103772640410428398323801659280712039305260528306367822904803565323137233733487979161867984115998142733945359934265993229808276334095236579426628907129776606691080625031063229070137137098815721170229671010569765510161505169454397406615342862754248141577807972547813481863758327522947450493118862253077130144543943920163556966450760721053725731449340305221102978134121999277690334038805381125122289300371131197256517583270912315226143836101153313765130348264448347314409951659372365160728944996769655121022099814762865929480567578322964082067419539931017467554153112845763896376454132084890690804325014070999811415385323027362002874686907276974148094302957745870200989356316291139464232366121097526902862998457264292177281707355231968491076294070492460917526337204699908413210303656068266843838016234554383653953130826932584095384078385576116510660423165856951921072806403412527372152167949087800583998532837927978711857556393356497819471462982401971200745872990005847195008512310680774487544608070333777402649576486267174793197546014628137758946234123519069260990247540371687803337762282611270043513694293683717580019847481298434367755499305667422522493273943443342111055562304822790465763723162498693861389552281516677564890515521703239735970708694961319482252159034933391706617703625634133684836190124262035995355388794010038790146314512025190343613058271684150623945272021010727459162546320494595316665297522107839465682961919175442083525421723068538677819033665667353978439066856034177786712503799349688597888917117857096323267762968734036059824978659902451681684976905549627250581372967472232939181249532509833713236137549244498055002837794542326396234415774246972637531873033595472607357957612069489641843096942840080830535148970661058601697007039829937927934267991964113251697124341594076149210336915779150973429227931441898088598843297685629394021247955109904457583015244555017523503377780741206630056965329241039160663816333665432054440298064506458592328794361939594819839786263182163833581217451067095788806926064390577187270358046030643790718076113833207632095705620530618783955312814270843815724002045121622156892506760181871768596784755518459890750308856742997355791727541525755826535962397373043789248121902514101981847579834137836391460875880779614966341705353875332000837822500879368653575968782598406214805608928962190197051742051108347689191202047548289514212596424932969287592729882901221575910247801934204318340031772558532732924131956239004981060537395021311678692461837273477728498471143244340799256399899052064827450551521240157559575739588176259127811154052090707776401569611226614131874797943808821617947469729583632898490784655175109913417891122565480180449814551564274078279280997051562531905222879886950857914581083845418260674988839764035031857607664195550930919439618104571747058703266539978427652831037212887404585753686644731333304049587516850305497714630874987830680634898118324314772300151678742397669005092068446903339027836643754615197123736275088861279556239013076778859738961186985025348077937118410800742751098421575236974025804120995713326417363102596620309496878403102870673368987312088166841967590716145206998502136236532209232875637017096811130540513872581382533875827055991239546880858116752268558598477409227868154075932973799116258034638394652016088218673225079745734977793506612935975824286558231406642531502507555233629666659836105004438015297836987218657620360573378505358775505856858449590787201074097916098177941564358148749729045866497958267368430874674017002443472789266263795699545922709385919817715514898686390214991305703030035888073433914558833804437426391678736076121920266089061454876054829918054586241759339597202804427287688466997257584538803706644160704223050137078373437673705265429877816110084579164336405826881343160345945816191935731457915114865893174196716048023709200193462303587447587542710032218654854021684477284547002697613742321731145164873830519274115435599288389983373005333954879658184848690760243495404144313627055081179172147767671171938106643665543533011010162434045666482314966837842190570706636860342566648412806237928937788181675471323597255575129214310537725372999108033994155972887418390652983673852100577326275887064587421709745742651375664521230154746760510939990582776360741678984603392568297161863169385573232222501814674304818140797878488628003898084591546578054007830271406137393985360357553109156309437892136442312687679637778703120981982050426098586281526592200725639610998947275376161299817264374578720944143446146657751335336617431557189865002683980688587979502002191201753493920188564493842081316688387339478056914108226504211461470361384355558873539774419076926960988632719492321621721194824501344612024990640108472311779157617466932544707257169025091522848319803129944237853670953365773355677156196236347994710234806532473109068740043327816352610534382618420958630892619558970363081009959851909416154818240091090391224727515914427794294781213240925216329799432510842275933423895181461831980908650026240922763863899652142631288778540793956149561999100594365435928198900101124101185981362026947814551363859527011601534513010742010496970157476103394958763018854303097613849986331043460920987178941344876503073829041571525128335806826379232123742672975572861039442722590358285805558524361540138926205699910064913406586465645190514670656332392781879634849387380695301575589480120565805002507565570835495206726365047141278319071411567552419067891973832648373891613529713926053104742575161772579540481891852068376282415604329123864157506011871908619348159541592758978800400498224561522891981926733027998000023598131191693764917212316290103796626291866715003138412363172873052814388608816723668227611668949071675019439145044076694476642093544776936121887987282383671074390058231748980954838529030793996268691658589247194955232183385488344935293646018897718656342900472000969074707616560201321434092112158393827324361252129008913886471171325562009650567305900949784404694138651580953077194386373662079343587479978268032176049997053861379517462723159342865886960420689466323765810249240620705721398250122735266329977931771958413389216034349129828411493801446047818632744109012874623544436206506775284497510337672689640336683408245011082148491316144529711650788571929436487570438015332223756966746234939155603373830197903854035480745405112366848356498995360462477461266696557899588236327639599364401967045483051831772588490201166006984623125220272019809503668560583728926518783898273602073575432288269809419221587153098357819743314019225991176001571533445096652802261352070550900760295541641205255829764396863943406640703085657185830343949404799716830706897753175835677496583565882932477472438279579851704208735522817375033988250935544597898757389396357655015686600244090967108234598772440965571900131667207116719935188295748145548384651001276366647580210573499226198749913749628160038839952472219927764096892511588940772436186514474426275343872377750643312651928355388677458292302889706289999189670207025760461197845583936803894418130215609949872352175976309354499132612602890088768368988994995684209039719068041556027666809914174479119582289688213780150116737869544652828390397753002219353617018263794805103056117760608982398110275750281157291727955740122434044397643835165881503497636658638996328010566085127263837448424253058022198613019861215440231214934561607442152396003901642493975625716227065367128408854294363432735522519759441508661836911313493188608657864206641470196263896111528168828502640509512513768083123799604511888476127694231657910832891937865627072803414849416362387443881819812495031406994769508691123317606759975112636771910547906609122388042224646310816778298509281404569315011576270409034350063120002408312600581380499672947898274382810091377108867266556434851413845451905510459885853833165124075084781462411017486942294051235993176356847578359866789068435994458498680142750386017482562660154152115686738324581304125905823273924770975706476815160510819385612852929434473842683632202692202733876117594655738451327490879679641531037547383312741775719272351394103744754244152005963013583818761032599617196730408652398220547010860189390871431765119603514699520831615661927855874537159085767369156131546085374657347604759841956421519527476466701015711338387625335074972046817941444945073771358776843355477619042852910799810380313980772248912035463798370997800399247880756991834905894275777973706221341788651027174869167474533491565115730072151169110150403253971512609325506051133898026400838129141847092589557232225609850739878673655688639277276431982427946162130075574447943872431795394015954152011762071214102130956319652052579740228920267098629103545627823013594497477008327533261398487856741738062615946372601784453088481343216894356334442373400151589756097400583942998817516856412110574944579654175948624473233145902852830445804056777160949201142448250815929505572265829164653654594160869617259037417108831117317430549460302214691298902311660349994377812926126625675973015870396519152224454144647533857662132371352840581667008919327506761455687943539203244219789065008850547040380765710082724729385727490251952190291666261114247071902053890731521407139151741863306465313974164983080173940974507747405213750196279827757252896715090959283664563922572586465591259804304451544718528020631533498797447287999516378329204507149820931680884336024076715249148379982137910989876520880902586227771918380912136859697202611241069560582351700189314828310101899152921433239901459108540245617852882225405578800952845956450051804049362332815796968302323962156394078087132789107984027212380774313628756351196755269689813229017196131887260150175264581787496474080498716066886211280262015408286570993637221367619518008402733646645446071749991598063207628336578215734177832460481863519700856534674954514582021455432161192175256974490405232514849338719037486615759125532872729033173475436572632258379899849958275685677104424114190866679641276950354370939075384052918227784894889203284548301652995588155528172585671236731849969731654493057624287715743512948247473519580232853068899448502890087893971868024480592849758896497924522808836991988135509542032748471331036833673488316695221081918679995785421182050543454344991577944682877382808414811818010204770579327635164358767927400819681080356035520762694399819290070871330280055223930018213359636426898297248728914336310140413319111844504243069376172754338708561729620985467964449116477285890043117399068886753671622589336440522744034063547482494735186367044632382331784082479521144373161378252639128215659507568754964451606839100725584706734577458837585874310183391103554991098967429704021741419660469760630993661379280226058303512102852472669513987853596848662880280483075690944206684693436201570209811601378800309880888414662593374467736055495994608343783838009040608546657693444409443791193800820495305593156849317922874197630960185212552957640659927035113067080090185811156834041279435140408304265792697405965903341358242008959309197963431416368290588507247400937160572510620898910920566800070695767650929101990985891432961698072442909858869791301683399137957628717888824354044238017186331984255099666537403899229122645493610835856208479165998688371966856917383166635772077477908073919836718641554677765798443763014019329404885237343635093483765355214945255167326316066693445473523846112206797340805949431787034253930622581826837589315711997862585278341345274917970498682454703014273776892127117996458849797542090837020879292898588519268425607294804212724206606410402534529403031642404932520062112474298600893963806271459004436610964529413157313790818563330186783487865717474083399466748426118302040851536962789927887065877692165705133342264445498486200511649450705216090877385960697785588670039123233039216233856481167876385377683439951017996156613927992356798602183508379961711444397521468391405035929278398797781520940110862593513421277300739683776721558570346685037042579727150099993608133575166426023550857691474299240061533017493678959851050888790528473857619979896061437834225444534353649676115509069323737599058341167082749390882383423483045423113959799763862613311706460135642346910122840609039732867495604172047382776719861501912331669006424370188944520400912490995838695887190305455217523611092709753487133166185360387904580168436987262776469183554089626640704645189137595478237949453796463791888629700100138998126936044934293690471767765557040935826465664227521625648551218021275726267117191634451811259973224445191636123158456500696473220520957678913970135853828324652268943328071878942066511141757885953691651860412153809264670282782079479469861202614916610781141343787468993240537613468108106237205816000445532217594265032865477542939851219651141966653219759859386507053625351797047292166393038856732038242958578037685436762911553327071130270962213764110534247591891855735045585532059744829658233591567835548771218528037952228931142024662837454993778194754198043339340509228340454453594920312146070818554407927200728418312055291208122133351013602691167192872743428647329250125804410259670025264597663226831217314965810497998205707319355409232090405792104399276193925928653519765151689261265046093140226104375329693293680813692165845069046656494205675267828728382476116829292990382537983818256356222281334421053537306768663683817623673601588420995221473053776806779205411464135441515457208578245656333051424513590776231895182692099359154217399554052500898710190754970388102343563333397104139631937986192514728071003219615258002597105134253639961507777282474964279257322834644936343789872851668955432234651270685097513251400357815255848512071991951071514508315402302825293547487035905891318607465078925769239642886591205323869007082875776171883402232515944622947242315416051796541924382664262231657678758503795159989382767605104859853461613016415555927600846157807657428781894046806609620859355862428293013407574844217080441298418394901753159587837692006928138026388011554777390032238483724173437863071476843311361989529310295679606944275573048391996739269703065243947132710891236080066144595884892911783345729278783556393038584720575028644878473939457280725286517371975593056198648011669033080174153487163467928324111978509744101279638576422065488044138305628332959367954281123970803871074183506173711951240756072355415932304385013497199167838668041367007023612146909244921840396871798976022675008044916943417919561815197859897670737636761675747749857178590667580069329923570058773142738169428729717106427227720379704662168914532886238886172512643640997057705670116399157308297048413049208153912408510417433859525028962589945678161124520963072617649150119800754368927498831837862894104108326148301925076341707114941212520890529611762711935037916288495373764426820426616034768622297279890751489216473215182108823886306361127128489682660555892766990176813445297253137229713453909478725627504939000183461884484973359083758547414780721378022027628424080734098135523948308071061849207021158056437362723418904983350918823796181214532321142640415258821242513390687525731631132794546564499935950133869846872129008424014686595304015043536869694735099153376659805471944622931160621428367630620507521312924433370490270474911670087692145718519394349665690002612867624373564054669791594319905493898291750169807133930581534770085839724022034980810386623452744318134934639620584664036374314936222501750556644213917295421909270309566284715248666582428861700998536770474462501384952019030778196936017317369861848128102817871695543498439086394296388954177247385592652774555994278224508451169349973465953754275725477388299998354896234641221698357406336581197774675090063603073616314385404789381977641506674690613416063515691073294723153120445439931185427995844812136583234656823536518513867680125814746870725867135145427944421922398832392268468145224180250921356511513440648366234523369679857796683956897184257480558964339589917631663382183358303640201732998570206761400116433034859428200584614826626885235199631319622594552455778681257892555727958140248480187547149203998479109010508602308392619890005790474210937574574915310773007749931564082334421805623300417376696210622981767260095752828365406055744004462815603552569927121859021261962487535574011016462640924076659569797110527004783008379415720677092378353202974216009080721578578371114457612560679143572134112658835012182900529431466850584735395472833289700473505837596121559846076575639670977244180578305113532675826013467190577753535707769899998826722509037963474663627831812721904284059488789061264855937736466911108512734453465511938672326852531746882083927698786157000814792938303270259115246491009955381797585044729594903861582942447637354819854450878536485731208848045271489447930740938286672427676651217980455076629608793583146774427475763395352609945965943164840578438127748230927012585556396762455277126022309100861035753708637111402825423348376384988518936037102735925164864238525451848437035526033641742467286267771584193543509383975789473830842252489387179545237011353485151063783622275614068068940916956655543873267812247151570535716436517558925735569323512677532884851564879551277916871768648034098612860056968025010526571546442040518056892201127836471498300436375072556559765170137100064825577796550816535593575629284619139459144941367662323825175351045598456913923491181054992424675812366104922647714351575278762234222407601001875489050319482077414566720681051688909571997154619949818945137197084566204026382490607312494239173966712968381529748344231342828080634499140334644678073855126437707759781482409882937172273305903535795165140015736112265932838958361408078254869354033993691619153866474914534532654356269998393401996535197588594497272757788430788477559413742092291540422812827013288336833087815354027427672261311337157283071144184955036007541831900461577952172278362405336245522811689774056984685348552751122078578264572775329651596885619952889696727046767665817489331169900007609305304967028824940808807754995668177141862989154975759747512707605040035216429155296961394733286084520809741475289331803950059898391013261132290905213345636528623323709039193656402878115232284254546724038408139962175644162132095482482366867310033969543371091749434688764834021361094221330183539000043726444989872875776381885050987842041192219984513769259158140476747079853561393261151085703224811795328843979934273217462360409100364747552615282681501309199990895042445944375773011477184769022058380534313184469062638914159981511072983465626110382536029843771415160638380170269120550843540017809060444611574136129955114508943207605887295166487650479334650489552035737507557682197729849399511679400908371797872850391073988847951764384361422423267941878590594724113236913188257864048060898134704753659545375839718427514291951885654862669252491527907613213458449240602991159430710464411559184908522866373755678236941888237072610058953720165448147078607325028421404193790703070149149504725888426036910313754757641590838248130172645196158193963324084684360291572847595241160214880555836087814101901198211418863126602321703487457373344445895192229435326595826416439480947941022498864608803786855357403923556016214040670293054823927828759786889817798128544442203501450791277045808173485950536511632104177003574737816731624654211584318830260131959798453165914076151799625964412064030431160616926815711531899230781249038171866268104728428260511902952749323394110227710409923657495704253834689439530603225753161736524585032244256909237639267731178769961066513198431774204477013539516568951128560758084765974423124209448432650997061052735575974892444453956056004710050052779183993904555705673927728623019811768368461302889378096484585394582366845288492419619615382771940260679805596381777251036727158712589703816221854045017793986286330334263796410855803667309246362233198112705621132963794181369080342090437567140086809714233464963990205915306039654043768026751133681818871108166321024203658191816599290622021943157298991960465757709582710856741381515403671204627623658696112217002553690532493659321859677812168840578562220108198619432072248380231228999571514126963933562177761103735528852280769670668255240573777503157225148968988762311844627546998313152851295545298399665208298483483840592922652133855730694985732085376703371503780931392319502860962021442266905473384916791022565677434807325649112009217461081378284745875973768487880876450924215073533362516771385086717600721728852636232922798291838671685495164383194212510045234066876734950908083384760347201398326676132337045408677915799691138357483305338090809405479146682140173958103051729055523781938900967738401076703794419832217726410180248882259377250413495230260524595582162638358346674529190754316721421656579510234693703086843544573902240265449671391725700761838544192244636466619940265849631792572417628546732030549044145312212163285683583024539484605430411883188948593050356357417645493385164224334348349258269930452708585473854945607762314810234000918719153189890106466563525826089709623282123406169131525454118114009197850686656595531536995447195688002639158803070674060668006115470821687710431093845977018995204915555997167668310397152627916633333773126417374455689902825567324299012006107447034748450526234906318220914129880324666240827683970086304319222077023989148122017305274937335707356435603401005554871512676576753880825190913914094904242038213521050352639105403327888418546844185945582101857651347989181645028118654702505860671045665358339580942215826342120085270118330423148121221990245525692301326349333101362659079085832773705975812875029258615345229149233963800004644405189124100267668520148301789556595391562967439980506869034249175967128832624805868534868515007378521422647331882665563353683583001914674228985885843340208475987707833353062984459269836270324417275503227273221360499522646813108439195184582486502214874663414401637114405117403139429578450270825592862606311876796511871182793854312119368580307550604579408475822802556072067247515073390265398173189674383327983546587479494144887689898429635613581938293216031848377429155692684963849659552801195890080351747248109749871834247381853998131254731067006260807230502751695990948716243720866425997384088575755807832699159192964903913209293911500908729249998149061622538049624722169786459998379479715558772530879354449640688823306001411879383571219937845691427344789643074679751859138024209058228269515464877889100851487433669020125517167641447660256150660229087198779689350751505995871561567876600484799811820194936852843510730936560162373213446746390458062637438369237849366729922829724379529043447563431347450395360658428037097124996036295719702260842928812024168045449560686000443377459734137888412866356851837086578349547482516149268296408770507928891980390285496046467212356457826282557882474063773503523876487284399286253221660749511214837280721534022621270773954583519922725492151180244526280467823537650829352652915453562695508186096095021379798948430290117555558159897151412932027749493585684658065578381292292088501747807530330700616815515360246147638579109934546411479743457926505788245640025181446092407739985059873239310446065661142921711462552691064978660095926940582397330030198664637454190050319883684853423316160105898662540937780804216898782241944189506188154924713078548024664480215233305783468812741813861533322358442326740843456601163279162846598433913047037111509981669053183477217788647693671351939424290871342899418770035581943501867029564623836156226572728510837324312968941460645166862303040685614454638581135647859896166188037982472035436493882797887494815889036817602684027105485703393232457171148751582338088938357939807269721503141464027502932548187349603309327874346127403485654619664339867526447028605115611180709223605120014362478544103442079993845789416607619687870310861434883240098207778938908737905797781145558062134325314981097884984590804841401721390702974145660719970350098344116830126234488468992893161911888567008251628565452893348751384502399054153668468223620634044083217596821339960404238795480347091616924923223662188990270260364866458730981997348354148274413533104097036257480446122176641248719005154898388280850130605522672519551114208290024987760809626628806831074309550374794070469329999202986861168018089959730084061186224055249322260974606316219260617413582642498515831007961454654657773751756410893891689551331880241421307732816971259954535645421331563263526312685189609493071115059238990323118200702857515393398741974308971206275529532706849487597133046769912102891926797501122544142532121351827771785297636976612438877794620918334148753784777732606130843136350015070407997713854314049222381862129836357335243229407084662261228291835134942226792950578088253344803222312199463904413205552637892869680227376102481382508846096647445772531627716534186213671081916883309084197635338239472688612569656066085069769217846627815142725376442662262855210819648104181053287392672942079808118938813893307482248452829536926070463169766564245803583024255814584321029936221449574522095748819835335894448336830380573853308712262412425523755703828112477088748538411851812819835174392851514949221980442314118887171564898295713459116452528778135619344692381291886780499461771824408021720265246642147722290838220120555591541785424587569097129875958080616332323488697177319882377929415704868055656510763779393126738899934176724512380573134947431449304746919216856001129762434846568138461731455047216715893083884768451125424647921111671447550269103894396435351886044638611442884646405658013325589864361983979955267771483338953672374098942981872738901727041810480866124064112776481599956393837005189077278366319319982655218660954791570063669644761365021573631719655227529447378761473357739531745361378907709143079518837310104194261631736543127089879494427929844470727811041499247598663309197196668932960355322622190776019545157252338719571720025027351834451254671385697820527956489024836994702915794987016569361959245651306296324611058532783951999601958431183143270375516103768503924082188881774576670262984882219968659308063329265268674856618992592107118773050126913373586396078209504235061401423319147719340346368290954415636657516801668045984494128977250965082654034791599894388310894930542265551631342499455095845645319170221387616898167686597635637984909617621703180702658296413873019607733965179159814959290458151751928619945264211963460119827980798116837079070306445175280701856823803394004918475511697776216543626911371758480346994461819326379702873285890958855506443433685820940973563214049995242360745375004393275935424704826311757189987557827052252511797537512294642991413939161819669725102315320943828545609269944040662023935582664775826560147658333388963145901053713741897885467991997890633021252706866013664519901674593762029402530752124436534961235743505388558071657561990242278293548219642219550438023708845878168453320448005728330472656894676454009847630151098200026174243989319961731644889265833958311212889149487469829137611624208181227540572066238955624059756250165145158994095485602768715505441935306605606852863418717532653678176609397602949554779949031295792860153745640319795964243369376019969314675869534101856231225386203342077450086177818681610771564840709725710479617341418127516686387561754540523971573399799075924457822676025226333580521612828938814750322967254941816446849414623433526021859023487427685781048671641826968854111855341408954038803281344895431473004235391046532677230796254992812453999812119358114753034075750210781782094959183381154819488334962255897457574115854432526007076899609569604823713835145366013150410973635921369644629691896924750061416948241384889529593951765092016135552125224611690214546680835247814708564431230640865877422202818678212388871246795125735223535417835413644288080546827306030096145886535282839168607878197916491819883430969496835352474522566258042859519757492708153057645333596486388349311497967290458597005029992233289970403539035835059360017317939140581400826080624970416495569441092788791839021614948754690293999952771971164677557029616051427165681475248052151117922803531120393071404104336363987163601463542188425626596598429627969268905020708789096578498078075758440441679807308273229402308751009651411256795346177010163861151679230063403758633375339209330661749072749604379293881639179441079037925715512927626062354932827066769446950072463277003941823122981712156161425116757298046465726440744301427473129094408452050319309073564538040549612788106822432766926818605654391925738927838668007849878935815860219189565147234376412439337065081960571114836211963486189378932956350299620783589489138688467690768151398483641200637987804259652225223362065312450011727990908131724977099661867290658082640355815681583327823688787998961981733282287690704596438134566061807295898661769887398118092168287831452059746747539047636486197069083149020557060938699477722553913833925794995752967227841774838605556710951674104794554139942736198220249702188728936563658711748814227321677594628372917078842746487496085173029325315177491537519666458445338302164195751114652014671201510026950529260577032067754730204709767222219284263706184230081304887474184780179152171684798582103838030108623483518053498338243373398118617463321488406387076827584810123753364325586155447006332908215392217865742086575239816046047683959636530034865358396295330887427612132731899444997737769551764696583329465527456041944102744479237568970627720130282296809148286061102389721678580369277736141492885041059001888672717933226197141898910102394325758451922356454889882101740850262762202471557725589532089649261829799485486175089790674724043811306447776496789630691728686494435468537212080276129693737270126127714762782040210003632981060770351160637465841871692958549420415399665653439753466863917305636001439426564424690759487505086302021808729677869486792311685253548276281435526398974480863106935076020107840636174728803957448996261296252196810750971924849491152503472062343356295078582622102851052574882814042712299694916392596859027504841925869730621393566697398661428924342505940940830992832497925269997494237557152764186165736380260767863324535828271462845709940734412658167937971589762306565487586909471795951540612028364073985260247272632972239285725500108418757307850574228037844786505422412964147185803100978813604349092782774176091980122086450769726931346520637174199997271945637707170703312063507628222799365270977464003793314640866655731775313382698405181562223040721913299502121505616711225127909192547610234698183016685005305125530271073804404018309148682810257775470335837557764218586651403731471314786007455189151882172875514595046129034311544446324027507156695098510515711149643661713514857626025249511621872855559935620893543571734507164498301435689059430422835725150285696292465437800852683067795165617134062518502076099115827211064528098297659708200769634873957624765697029894930522802934065257164130861847500022319347288387039068135319501083319865454524693379803986471582512838841644703012126161393742769906755841480902861830363120607073940517451145474972327935693850346209337811939644775207085466996300773685816339496280399517959116375263274497019776604057076821634957236351821906981717508135688579639280060133283953540507831364086285453013825286934041249969347262349946659306716785207469180965792951653259802430761179257715829884827236662551312098394434284929898090630970091001844062325460885074632811243786383953068862775599611386875684243832276124985296669188144637850793920355919849837799998765963777233913253662969554135512819823785290666954425672525679630879924971300921866161452471304717300322963469179301541885520492566676101771016676366673456395497448152908697333977077943720396330402861162018051502458985945589891257599549029157691354924006763391759972124488993925523344203902522467419152813091147394086854091514287752273025475752639130999299537952557964131324014837221609763117087859444481119117033123608911163693527414222600570042531577320262578125914612099343227246098008547998198297409664689322113917036065507745963097340732284458997353209002583189649761384669941299286338503414825737886118269446462434259168049487621450655394180343446772279172019403189846860620051864109737271825039682611648472222994239617749716554592417585250515648384702097492453102267166332408012272869571690480632500176332523634783191878578680660238661577625162285868428506683086906888622127614096236709520624608449590757370339566818548891606676815072815964954737117357332488932302071512442777358642063189683333869739622751855581648023232434051939960852873212228149992918638046076858377428390901552851879095188720250379365211029697636226680830732532169869610459275396825253318999903126105394355518773100973046427986286443545401268639347446326053962520764524081354778968234737085597110627024442268855341876346638514617030803812001638633822057761680752326572653061430561094780260854241985752858015026202328276663645781452789537812102863484741757218497856101662350287454082255084608683215105961160346900749302839187067558134058522209104794808845491662756479739254492328142875264116729944584059934897329903069402298603625455460996547148969822002517582947040719047662321025423729275146623149165528456224943918579161056461030912691000501484038724822053811917742263786688509628209391309253118588237150753618458983797622602519827783969410295513115759201941584821756444395826620100830627718251686465873250840631225694290729285746334784887344804235839107144936713254946638544722997613066374257067368168816068320016963626097540581243268465376529247739846151087937131272719792577763405540707231796168505479443974266447191287030311534813151520161099705101953113333665339399602381459331753534484655534449910884741153576346617212738420716012244702657982409742435570322746285807372800161051643555981840386481858400347749343215548307147304997166269857738383234522580978500332665706654903226590565954240048032436561034423716991586296440391667983537704501726631674486287797164333329163915396645640368152434738962650501456757799760047267731489939450884101926381075746699694114840089081207162877228735964050125337005683297836071277542868981469729754786036674232186067393325208387784963432446745216285640454055320963739562167959634662665966676797311379142462514674510756098907670970695032203159675797382286223235285795108729461597113426579403654337457088714875249503904268676483881953315686226589107459728962046295612380749840152639699911130199814800172733527527495499033674310798798316762582021966920026778388904034951489505337077444119194723698505259570139184475009684567037213867304894409885541493316384220120652853990366213443128397397702742199019132088764112048255275236981686786368764509791371665864145031000897698019208984037734830168454752143750661991774127997478351785219354096360629107019362242473376052566447852894296191603090943327896321658659522134674102543019048175573287546004803229811014617898325314641151980229073958422285629840643389685054781452415124394039273816529866032455784493843417046799728716786774094850649937095335323004036911070662433405341110107878203296738991345373786807367284940349797352210552011880339253095706310549648991528109748310927527765533971661461505557402633171418203153440212935198708751285563295633708654300573540762691880966142910481207309590737148030221039211323626964614797409877972570688655329496566821301970271316264412078883546627864897381804992927799763452391841698676506411040534572549240850720374872220016586545225655429632344675394027299054165171683527725332568521673669951354736105779129921013353544405563684113760258036095190504103451441829656258541150345749436161121090105032902641730406146921409700489377250752913190165925194765249303369972601678297854025918840676075519779486194443623599967339997919501866130329858746362085217152130247013764872654553444710067780643284156728279547821957471256900406849164625804833516888624174043327240391964618436616077453840840561430415268832845272852712665196946125394156373405794279983875609285475813401441462459147027517281487410068132070774956991341787295105219948638848309641940950622038629307773668789881271813290636120749307020365563835162165245147934852716915768554149729150328790832410100697470891252413422690544854918971685986665979907284231683461642472905853853997589772648642181073196252173035384596020926928560314111315092582094280223159669778059958004454925844566087856068000696639271191144545043027262962057977160238897747839513056507814552720568406544099278224527305144681698362147361714194902372686468749946050631055399131760665547183719195932395184826334724436122056112564593445027821240370110787797285905780140745745206516537254593980136062141862602162549295202916143720226465184298525374859655202364670574051302076116447753558282218680797147584444827711234662856619872526646154759947259790991793832922404164268333069686221220105972547547122252431181731790919246985431031131790545072558785448376033598153764220272731332306918580878379728589928719798959645846835578165794734416836783168789633350544603333323427504311584050056178003135627881939087128557898707270877622439923047748216761136399307900290012436946019361540031818817167540196536244602967690000662662170109588399460793769868532858912074290671145649080295417742723388935767550484050184660614188108576957107248751291968741855559350619870093023721050942295933656800837262571908691852822701079948352552441513383277619227559144599348511358222743566717769811743869287659519850204628383366044687122335455665234447398484458352175514653671611708899007383324652723849670663179914973915760665189375996133580340533327071155211154398629332084163916200198841051536648367919582016273822973468081450645536946832355563438206385646538742681943798774647003597756166972506486951781561421761607662911275104189600336652566208462549148039182969511506860318446727524770745069250497299997946957845928833459996012505246594396671555698999646355610683072484672883754825568651607814653903057254694087103162702122266851049578380616881024942855009883110937494632511199720946847783831085966888433866931556578304605269469249290185450956036766134711835187312059894025966148580245764482395487540195784306600620277635039810421170915250336423752628657526289095223460318456613807112985685989652784713504517881647542903266986471093926153480325646910145653341544625716698169717080240194054759935695257177389141933519682734568445461039054102360889213603589888694877196617328400841947962795088138072582703830458373111171944100392759654721537305260878084458713248634329053192851244643836400196995417094434091812394509983106774891413608747213936709193091319889553176606162157320113417708370716536330391117943343195223407282588556417511903353051391878743004246440529695024242025330900344733802185167261971940520185792249214533349435219409974889420823206239719920602983541716187720633343514223311234828977650526480686787495810707183781683828307654804365878910260529720821748999959335758109834104831223715532266654206221894012246227593927521031370585506800665981802927914030770852342449314565679656611126029936639035072628169437518102790093653748422153567423212678277222091084877158644499362029147616486755836686542162573365908749529822014793677383922144865724944339351681071561550011202873355721449391739996590470655348087834387378845530627095454947600902246995529047220568542009704980955861163576797443988164581538208333939876396771617414947733976082797803767534244028313035313315860664736857859880994387095287793208544215045370809048088671622585418257646668864952867880740691513526240800155116338474762207798640586144032006905837097548338566200670116429080691470509192417025057992586965301525720165750774567864287564273587103029092260754720715938619928017414221560404223591173584626966832248856572018765278274821322363493433279565231701819019960597869133266025143935980154888751736383515773457299520310501532817570779175779802051532166234705005258253655718082609321589026220960311013701317891735704348418777997236237503039223395044690633348937238413761856156929094029643359092870294027819453572194122398085668195300409544927858945416489950340392464067198730062193524481867289185125080950827183481801874852615770856886509425455151711693601353565178906981917889414030358004164259459286454905912600691406532061178023401144415161893129048326206411111953895581103260547336707602398554538968373281895316699460986868327755496527559745488083812539323159224322818380813863261638367904684465573753662952127152450772853315989410852648116454337467944181031600753495405729158949704896715941808750375976911978562586415637671975186685682142133291625144127559427721865481820204327464846958799409733732328082049993673511000641851882079838633096685413366263823663775641119404419228506836698922013186993823192162872406892810537468537260875307786204224863461374979758160517536705464858943798157796744314439655469047363456656035914106004458246535226227406329895720569086416062260194897418803378911437206563306564601979288772325914051322654920275071241549109048213985837225441889367464100799599106951852613682735790684831619015508145876388867819500126035178388318620275462869719779028929783246260694422924233658999154106594810251871397335311367883540187089087397481216419353008015390034269713175431640911763864232513840994859696990451791995552921814976735611520033960797395380557826493430178290451054221700561362992315328544425886881099640626142328206009478506087369265402709154948221117344090513272029772338876869886047154520268794155483543119811182295263824106645771262551404473074632038153657225886770107006800204854608985157279132238173078142431512507546830953532330095400547475140944352145061625533850421810988930664352488921546904962626899658150403045796770674163241375624957875748048793639237630345227689864550066682037456525072940588506866894246326974976733719269408707870928348886284003747453572007558943815724318917614503018794307014810034124908802501361850251247905419110613581004716641956043067106952578814558461619027184708438909287286417138562050800705735490304218565233857202173000483883500283052880484697407835537523556370883930463374759699105675712545023126786568611572309564552716648060856067781387377160751037668031577003601586700536394908783356556465827914334837413232010683041013644575104547454461057120660540880309782889692083074320714040208848312293128354874093962826707206180802038604510387188116639343411580036791860679222179990923327905580464828840320211820919396462887332629130417854447719271665671908261852307561802408558991115160344570293480460782832626974196166367953362727314101526205445114592343445109550314892972754213211897218246120605852284401146131745781090652608049812465187783406226222351811618236703866413138299354975758297967991309815185384412035568743701141315998777430883970104010368604763968578398963539772060074120390806745836192298084311003694788507662835337095916220914281374971318068388383267889368258787308601993629257929161830110493935402362846322633268642696483074204661828922602763786961796373493774649667957921822015544462088856525868215011915783226659635178307380624241949382652466731651840685211291835529161389610067446658459707149589341668155626483062089644866576406833036286528634474924980089317241251549178272793007489967793465558274289520874959580663021008142672017716239589342016957121910148802484452266983195719956134930944135683831919049767292010342947349171387863452342546569221950245200977953487875261881810730352369654723518764411185944692534227822283093491068463552932816546772988606132396621293473825373958811548631659201065404321464763174187526371660903115764185487684412036355728919209902214556589914544979367235800210000079881481023598636606263270371976943216471388672768482878559862429964918052898606207510104030858340508915837694593570830674704068610936001865975749935418257863058471313774529974424899834493439014798607856842550975557423365504372349575197620168098396893604020182894528672596536843577474886651770185819258398172711129781914572477504439252725074143894767849137435800184315071059582863794427759193869553357470513510565985379007075182619172592941032069618913328082600261842305383621530850147965942142815611000994852697774649441154187668838057267104006658769226364502115950322674816103405304453438453516250768402978114457929471656998979352460765672823828780839486853077776804358335602091479525451387841752302194508653208992003652011550848891900241942684849804545739944204960256823337946547895234290083811302993128092429311051952990610309196589732456697175445935970475595455925175398249710252684548358527093197054372380674045537526941604807860188812023600229189455257824776227597349276408999863071658557355301281202306325998863215221006147908462451160494013183421224304880572087817562692845194921873012597887419274852474238434872468396071337482441910626777905451699874495078590178503738544075389729553334294516706841141108363479194070357045169226615567256110545073384557125068046053498811079699438524721470366135079753303039393244406299312719735976779323495687391168816895976468645688285642815031875883987723329674530426114565209668026192026521001524563322188481771211137356730859471884515980743330022643695531678866488954844040622070270747501139032343702329365120249100408117154358084303446507960594506051546905914750781866621446289084801801313420568030020953885559839042098502201784777179969194659589350425086349302647201880033409499786469910528906013139125827361479065650805440582719177793884879248240803205081471360094564595559421692443043769300828357548613337050398663024977562904073029531488457306622901550293633024014227979921601010471109834616075952025267184713011181431797985183856427459905384334729194885813439296802426535575480089247443468128999090595129228353320232084495534942220857513825892795192864678722094935080897058602717833215389332583210760942801591270663880145998387063006563269266124705378515852086999593087079683762988464924863639855931040956095007490751814139062403350897124269874805102289189984232124582560360234853556430729371890907207733447465439829554111220285461145020903359980300784067929602364782855227664366794699387618048036779812397636867766848251673691747548740771848696766815529899827187281051242635361455506821377833857102797239116336074008376182011073280439566568069033563846564908567410266484533119276896636293848858669526476192411791619089580143183308779755984318654653876174671684332373205990945943332400486271127020646806793624505079583314609365255720563772337107534559281864775679817797040920213999404006135396108064798807337410002768447857299540547224606026283001355161690794802111441508280304414762546299575893136017753208471458560111525162010163031875869800161829265758581160939035395411745103437423049198249046362609951729592325227425129330277096343969084213689642502555978067487134520509120915784128037767480976269652513634011617722093777086980460339008809362004652219116037277722514515584141088762111111887562749992471259946665753206932065122962382950966319785007479665091753322086286461730839224727466123647469317662031189681692804862750707199489428951676691641382559238610035972207929335884860311047033975121211148718505129104395654156137467576155661698512836169547735034841406789466658798831031128641565499405011950820429399317425787962134730739828452255629994017667457101078837137360110204490633261295697027778956333347000857376167780037506826243390966826196975962988270546801756005116409062128628237489783285116567149826572330729862174262422875032745222487887578571856056239351193851326458289582256217541637312812656347456025112823840135825359522114990545959335460052372934719219026855606246493022822667046883999999240944261475035539128083095488834589111681676609528242572748806113929700429674443844540598066046999576158992924847409011866957154153420260502936711880128538897926416313817984606398380938248669207328764566633544413603124099507632545397014562784178392408110671964510896478750418093243965861459622819097626839959930643896209405185287933490324704678076756586308532958958930092845035115633232071327154188721814828585789847054568062908550393394500490632340922497411063961824630160941183125979758885250523867678830644376453500850464018069713894932984104138981774503981588146747218423240527134090411222668196014195046354058789361141731962305716523631499953423835182691513680844644252766023734099346555179616690180273223223834205768720483605983736742045010256585472979251529810294166502735698737987053033839764614339747454633991882186199366711577415755509510103102625599318518408675873841107108419945500768365458018412257940080922546377363181339594370445606569918725164232076961625535143017136804492763399902013558713990118164581602447255588080569043804171342786013745867266343604643581719113495606077039823280197100190371106437716402870248946552470030330079600934811637077001218910326300137139372903979870826977947757886470756310804794638787018616830082055649117931104730743007841965841876703017714436100633505453417523112358268009824282969558229048127749157114568557147604565666382067729063156454529139299793198336935770142461387277679720224233855611626166120622028825263008810152236762318707614068703946956929948924744763224266324698936665214304393866822030896907131574735528039686878658889123861028775804123936480771484583423729942684335047452673485410229147035004635886042082032307294442646641619825727479744207487235526500188040312885727540036143089141193535101265603924688757834480434576184281463135127169684988431955016381636632367371307819212588987329097830979175745451866351207017920492535490501812983757455888557334454544795210998954872955165669662760813055455975142017224518441389165517414230457264942230148556908921645926640243285586739073886209182567993136608443848304445878873803869418892693239874926509236914087207007289842374010590256090196202384346851900670859616654139890238753552978010877068148085751745756685823879423260959236684449122460530318189034178876748521203723541176765473543153207317046640755311243529763089438427535069041649619777934214099290380334761851810427179708968237104015398686167301453388086820699081715172675755781302375115382597627519822348166005707304496374888569723210943234249696793207813128954394272210983185094918176100310209873103909033227467891929659500110394755123932241397685153119663494302296756674178652773257409072535385839410982881390348696498406829886642563472921908903236575737972360206396924769006743575785137979229019143531753582775279210210534623011420015977859292699368152531613124556557284935989535184049122556791177493268647785336896748776172813805658131737084505338005701138656807267530401148862305862231898530495324445990739781415348274752389729501303634589225717292130075429744215180097730355159638729235974653491986017830437505928892958383751012502026895482851956784783968256789185902913699001797233963943661841245386454317987502730239324850888098993756262732816188464236489573646757402138739143615220054356051996377643648917099270136138647967799100207089133079200812782867973245097688198855535354058681423188002122782803564529616764559497946392122881264747460826937770985899326602794034383686200082789635315645715783179233395846662983866875473147001750517655821157770070189945702967617099405306993691028203820413064389801701641253429866727218239286527259632768732331821711085379981966013257086470314962110467032236630036770410678673293852068279050752240046058208765127671854353011345107932561250497240017930523510610965326971941677059272434846551231618311367818160742015319319734233285743192536114217148894039610716533430779462484944188530236114655364681429699487308048533008918490702854602775070288031298615377918120986087845445670112560636966749398730068491120214806702358660667821666527427673076638268539719413901054888644062086622029108515677204049052112176029816609601352418738175431266291282270268061452799892115274956742303581872566983474697135016127373598313509844227963347344836016229704212008392723464494263838197831956343278641550216098840475893627722457135969739678804262080946545612214989901326515025765881037552071882140324720177187582098432051205082382177876227774524650435672145542336178091096427697054222059156920342046650241018704775167825487889077224323413628215046581675162936773568056606790016759408206980377406486804172479073018137101786982313183361078254650952768559537965762854863753475464694124671770248771996464963442081720894190773931156652744146743091245419854479179596560523437715779378545148322591778797847321848561549162966531420247531988585729018795386538072585752240210397667916023333458477272299548447556762024698756719812039490302966457746097671157199926967892032393347599420242018406086847326553234444054270733866420949459786500596940526166653257179496748139162052463578628170777205871075833862444610070708971632933391056161650194102242825734561864135463793409826115201225650058373174927791933330098446606089025454958208326520117772596467829942641953485189834591637602287323522064148856502524374070449665713538899858764254083207062044116159543075360348954138280752652039188757752233542424879533291244567705813722909373674851422552514798668415471725385420373863637701495248444651433787796827425103465130037628233030804153457276419796009860643542928765181603818062330366174601301120954630004719711119325122988009078570836898001897373069271450463062559823839648997351706993376196155427671139913862169352384479994727340830228760398838264897122024428921943926978949921684110681754839005766507561257584747244326414851191983015824480445691276797481479429992684684194776480943267360943222627483349267970882518049197152577928814232442514155948143758201685309646091073224282800093221791543862703254751389861329672857879615553203273600533832213605590647575590359327824612770393458701977469173853400320547856353477110372505446173710267126665106488798530653147498318496713182733830486238409319508491999531731347112485990040688787638045950268574432842839766144297765940061416743094202502447245997719651406863610415445251914893956408485705860170034909979603993485147409072979407583996837389180223741790626335336995331514439793300975872514378923955219576528475349128869246611648847529401535144119482569381862579570111303567572186781734242412118199974471025738747698407894714156850142131657702789688713883146250519573811638554300013499686262282366063903225347063382573208929532853298704507906470171190562714264919589830235462110499053024938466248742285959279500710832163846123366994670579167911072812395214888386808789253596335596214884569505777646357372123955563780295167113187630124156763152945713475409141221891910854387390684268703485684567245393096484313315652049741516212043770578681776439931387776672676414240139216762504850766240797559855400332295059582543337140180083979852852492785097185142961866028921026547483179675261798186550559505316394088009663490011263381537430052910235515358543183360973546507166786989925849353176163385667277009977880538408091083768790605048279607407935577352018001337869069152363480262373020315932357378405272533085741197524810988372559649785033900597689450597718320322157193562670163125218797953843651083115547507194291017971949953587479608717361843263682681331289887380201256269351691229946820663735021872376542601378811932718540909608434085205497070899318798236738830713095091044048138212344254643307527621342260683945671614099711822543468117064742157587902343909472722776114347253187699059371228338336544544219571711764571601868736405660674058440770448766286961946178060281943475508354434708783269378751925199336097732887838707561257586580975092243030563674414780759861580476767607620237598400821917643719873656722896468010150819706748335065561557099423526057189837236379391992866256097368434913470262261744850952485766798927402090153108299820960754348858590249976046226730693552346623570860037610488084344595206646637835045202701227941358567394230223869204629117247048934198962729075483908551174479359648319910827622647468139870480008774237170354508887298636954102790876607402912237564419451404533528215671618230786201940930528249258215020142834887818489483968232275320145965743872752917767320427806385741441342295729528404256128911781051825191104697058101043706363093660161210532575620470019385481338995272952183602870064957846393428797193891933083699334028433667318727330214351778921321214270871639350409632889462128468658897837543194747111016827731233037470972583294405398754526843612729881335341771685077749479742502977532673203877445227652002854326298100289937389616439043643628153316800702751241924554577262995528296657998565957055397252002303132824683965386326047118217164266678487024526343029208862817007427525752987240151973342312887389267759200827838195518613507418557654582708906378980766732758264157434692473294590660119878000984775288354980094618290246687949471193013987913659227653343774726744411790010517570020645488151430145839629550011253507601134027774601665477549075473467021426458183481364608276801847686534931960655272821825034247171286176599758135257423548950932290236824555980886275317588410982812737537192505376571172107006927294821950980476505925025833997615785040825294307256441946071575617860896608274942430984178674730793986921275889748712806568878297346691392601677497764913619107202515003513138214526330105578019592836245715211728301320061047842421654217865549596954390801917320908949416218615171213684368203538607540460244478597065865952944641133956225524523477356488065578911120521346721688785678079428102021968793959822261095378224831254690427793461784636148664236961325552486406729492283721824659392914636214753780832196383013911155642085298730391959446789938684537037883315123481828468239377634578480040750363107850251622994031448612179368462713985151549845946162136340715700343293655960265537387961856542868777603489176252669291056602441073949487133914941866704039868226092078000105273413406926995683398846484711495701912330060153069548971627240327444875034322007857890972948361956873896022862948147619407847774622773530347750666454893999355091876196964123687070334306951195920576431817927052519971769361799581850074040954673248771286977903569823449401836629916594113139456676971979324992584924993397362199941734511705424916795804896075289996519055950737370791676996538440946718445949732206488201975022606289648867005974108353263018849323530459129534888361656239681310212339311852173466185733923557669783759888450333790598195542913273231093227322316987857177888308494405666521235973562284632245036888332620564886157094947434722511757234716677210030706023859790295779829115192130164572967952952504686638690759067318688951067572214754728066659756971438796999261369094856621600688606644347786064837426001452937338426744063911969223633462518359941179472225859759847516727849973257000604220658237486372227919556166883472747754050797037943346490077084633185081167030239522775667622721359669730775766677457035169122855555675568831798997704466538933976072840319959621171829732338526511897726292233422887436803918316199429361822268839776848463210702480108235976756210610430439174023501639175167076636349721628931654673491279277624842916470624540544871696222811497079886129928687827693595980777202684329593825699376991027684531711622223915828417883677579333941119200465752993650213905107236043607044874030634519643441787860775199908835779265803082280739549480790751932259661670219170379273031255337650597926667594965169322851113085115893219768074542536262556914260781778458818401618014661662334359982190405611966319575801354286908112209397265955016339288860194912689170958122584654291538599552399836376481624371134380479756165151567416817979788664528854434788511361383410055763451161238026528440732661750864696819264046310635193247707351399885409471088782383253729909433406122880751766162091607091221491490552939235138876441207188912551662425856499443779651062227057005523341152089769581119338893754444528695795494579355514492272728912777256168978081489629740700941492736986614439817449800411083189080819103198625600123515239974536721541780499921771629857140528880062350331778360270357693537957585952883298958958097224165827485014077709595225870360419258944973806255469845232028719752252493985882370937979571293799765506181878995039854823598206888424522466976356128673554486974850327146431782004043222715221545437836440045853455718897641441815914213383745502660422773893669466681318734776477412770220723826043848115981875897642322553203207407449452569659829293901386822391243552221652294499971701208944554138142862850031383389156464019407174699428904349211540881867510797006254147732500498205633302404223506866787797972181141349796596742692532816160365578704706839153048755843958259779227095153431875644910477636177919527088483941651588751806877838816114383407421625308636534830243012507986501224733507676080348955264499161451034082332616763340464493569554689592123495338563300807565063779327891112843567232116019603985529098657881473197408963487127906374659063935756298279017105734765199078798086359887291389864165102377297681826965786568921270397498688988319670165669865673726388503839709367826186467699084507215939717571394256818513616477314478385481754693514606704942434565752143362705687917302049870807365197325280997970836183357428642269312238738371522024164658629944772263188447662293596321985390583842793377733506398842290839782429326977617769466451697688643399678837513997117896110868812901637354854421067510535273036250219686402978020847416563776512429504614327978307325817452502678561560896117745325966462078150388245173246690066394255825168371183772962101352883289139019428150091945838476845099725557200306801766288103615491484638917504911735012720127598538474198560806001264529678039577934804154474865206039766111936979287319086167515530072668639644991818574464626872520906707856924776663071143109663874057679061573768150414872713443227419472418332138117851718228214697097400113055145789815969016910821459803582843234676116922565181249214446481408424097567357142505733670919463723603314809901784623480210064924572461419385957904200860446850242525050857929356583442040432300252541328125102023058568569648293169530599268601947107331663109980889340183032417681079644156047009885501756170974832253996581251297941427253450936457466389990268408589610296741580665471811735292241664462740677632860127151018133496620713492748819824576828516794860907680729603719966603858141027601603756968957292915856591152718371386087639884127986157378092202217646217324064999258281496230132370240898783950817047690021093583164619557704361364271957100848220948033615880009426363392730202315931342045868724302363348977631573895107616016703412875684077058605100315482942728907867598195244982636336636638190590033377384925270621848600931094834556270766428888446489771563021137853662561859906070160607935560165807120466095219184734668138823397042375497854938463794372812299451906473865188046063964606891841844199156695956356232561559821213537075403947279759092241360062651712645792321491793283493933800296727271753256412616825473070409974162178544749112819763155037633318238908573271220578176136677470997330279496226919380958711767564440941141732049459217388045110330068865063855158625605674157234160108595457444777733562523374728317859073514032497492824584201190527960958555935339396239302411868158237200670918155813227119934937230450354166289359631206347510562825219853938091153765373556928749924142564537859468924070376252464203803672607162693181387301057201973827852068435554798764138111745792942343529366577230384891638141550655017640958437317261971894111298635232482769082585465862597021437587531366142296379760170090924179918833235414802044679392427528755149280700753758216363396214878104903244458979192007338668712950037278660998160273440411701884229008278543516394575367323488198718426747752400080358870816641623986070959705256049018172182092646598622400036639265947749873189491598146161220848199800110417381656321962512843679807262942392481677675582346762744022060957297635100814482912825689756189593692419539374523827050860505969387904070416865607421898898346453461005972972813054353084218776151737340265603398561776741710885993150864606048632944005352285159022679754439001569461186474634325689472700894552641461175544567467277697858523219931924420751524358869825264112536210950080195652035670198831307856729910884317043902377590902619219939748847837976251694438243794359656936419670744635574708624228757753879911186230700615141082562830062914784349475513111234412187302345287287627575551566338688634242696469799689134327688810402023011156286426204681574821708798559533392779569959217649675769212172856954177224793634054321880708213252222885399448062336728905007896173498882534934638074594975550448963796288970538591347677293449829376191028885776011890022284337341206662570920003959283012442332790974900819235890851945649336955948989551990417969631029000582056033931105406144274061072723702677074736847286080027053882115019890299660519727320606233757700913363742733620869123439797856412265550912612089668951186314844772804801314780597783419224307516264637033754535919077919473178291961154959779275078079479327790596175425123944831302652611540489807361862108702729912116179611272820426107029135054897393312945787514600565408259202072937158867107354004517610801574487656189521978439651516817419796645398318796802604991213104602727634218107891122375872952185272819207932422212482244839051386067871497577017362069121379074163202591128663324510768668781218389261801449221892962787165910664511284694439167323347014008277545010545331925880330712481153489381438479674311303307562828463803921496373597763251783366372484579192919920352650029238206405819276998555153827950236048853728760708993749519332107863402433984057903738695736748963996728427801679116309310102312751994001827998882608881016237541035014271607393193093564311634351338183500769898126088158610285442569511370277019315029505924098524519596411503257986488152721565195325197068145468451009929558666192527654278423507116480208063908444276382698054910605275595032242964306801934736994859149298221709876821305006795189506909148348516640093949977050506487054816845380347575704591972113809548469596975287185015972542317271127950044593558483358748763273338391377366008681426576786508347395950255813742015127263503708177221408288301876575169778337593423214968479696372575367694063506709432011151293983244046617448234948276063023001828574364686293858485724234702125869554623509864141266397779501417971120471315133760840253620509740495250343725569476744582125668995185643345298931370223118646572683735552506482982867921217084502934240826928319519100598964660299385923668522765163651770121445633834181754701922162929663427973586249727684604571634800541240980249194974352305576476279380419007467761352297076563845889043551895009093182066422429885800831674529063398330792482199495803160054698314148750477363320717201927827545765911946323179233785735618887471839209409101326453322709240078187787007414137173633647150158196253759124772470748926385357708629752950772446742585178632154350355804447762234549343311543511519389171253288050757557050719035535989254957703198496833051375248966215287180115505387678110592905537734498769658566834681416090594361172925779391936928067331022920523015163180026485562946006254905587921421651615494643417139632694539066653923890073354373165807475164273283794426211631437899746270907966537536222158713287028048070106214964375922296616018321388425369201376688292385372700903557826597483975610474747803378038615434207901257067716192582239348297878337271336083134764795697009843194478682033240275891702097199292807145540613249323686135128426369254342160696536064253764361429671331109997215976331323942969005960807199308222301392213496529082643566249230381095689761134276286383367059206483477766375426716686557727531008667937522863031252586020647391348844410504899348494621810644874307326525865663229466526543786160559101301251733984875439791382310519271096930565938319664706291031753365357733528278372193675097292797796770925209199367316340310286164185115286866170020841013506324057663225927080960686590178956381299765122133276639720569557408699263463989265865228290338358950235889053965339176178864507810701719173643143961414847757820172354596881571962359430872435267467832885850206615813718829121863102105697706648467933860091314423587372131764292204259448469457408310338519315831464962248502108668755024846849491451128468063294938335730940449685577906546102885057876827742636467738559227748584632870090142942155982605510911313311515807621952662437423009221022227060451160792133516940773096105852510637441769585186624823004389810775226917229224077391289888175133954028476702294201973275696660167793797040294131338870986444172207674839233460598159655047492104758639523384348603495488888096596840081972247553449227885174478436174315713122402367543462454811395225756022879266344918561522692244798920835725757491277514621081813449824077945979611649386349014845194986745136407899636945379659729329759836061571544368988967058731736590977543716360212890935951939902542112347910705228432840403469132874101763445631586930544893721259336295575919087685266479204084558424564655720187894353239802743356554425198435560134963275073376274124241473444949158730349234493362938520588766624743872803013719125686044289335657175087665280382607955591576048231279082040322441601639237248160049589309585296523152831304982196512623399764409444968552632355612867124266392351151613298089637457413530307680589886617505793771521027134377563880763694111760136633729921970881962014205738572387304974457279409392964304738586124541439446686839147548375476152135106915608522889527796396769859067441534843222160827826261975018806805278168432045191715655405589647941135523846441043747905189654992405138893702007370024458820916831712122345219515370184565691805500824717906206117165272234079131416672618905935641907952078329939269054001199791010174233316587165274778490843940146192353668534426153882147640203493850319616848222362780959138119239552648681147696792205267947011092816240383685315195039789260966762996583600823626979131421898616655395288180594678994931012703283208815175293809198890507391655148606416916843091572958810513571329146855932178116740293643305218973556616848080512038433024227080300694623977742032310199710073760304786868953422162379065813677614830897005497015720305509922173416609182497859489711618096107531127335686064139308938430322123210266855169396581582528742222653347827377599533807236438728924731165692176976310097120518505954073457387845466241287219037760544655896406736910935942495264164696270114222181281063443157488175795698799289586996992731431418022249390803530632106469030908290659872419427309378719372450857776843955865004851614783175342790277584909536386404279565894834649707520138177561253233845902608800642083532323168387590993390184778587528443681283451435499548729720752977611939874169209518550258480429480983096220285488058340045170610547792651623579427929167390892737411141383103411496879242007394243144626337075116371762941733408204343849917189622891530112831462078870356406413498392198725142893156854117475400466152296265808320730716026424978545619448052181577315904642240669215547224199793463126058428632087430138345953201355047424249316230078596935364602784385888241147236845553094241655689097806294429772763375711406159249870884659994159535857090845138235787815586189922617044847429371096454414076296473336485851605675780231463644727421529187685369683622054556595654404664716604562356259464801841138550594568084591456104582432852314824426160973482927484091949930510715174256898703123617432708852122393909980163435239801646051062742635636086905641425881343406138914858855735306657931917551171883829190841072873974570593392545771320865445888787937654450237819304702908174621972127344357469552703531375521570253174254720667413150182333148845988412924783159788429522543631565484454006809455842261325678044013282689154953892746045084870714797439264249817555594011205701741029396443962911034781032872296403405663455414121332976076024522500027925087085589044812009070036748842061932608481823827148065600675412608944648523163112601739980457522984109711319167624016435659500724152432796661962973722781780120627716609654613315289858177662625087933526351679262899699459475882304728364201010884810846077598252852689437676641855505786454109927903687407317257935779445279741317079225169396850125111286752744635120688713534269643021613833605277126334078375638664122886272478192451569024207005074996720759415995868154686710612932851768067417449633373058874902546264242404522238003063457856383666407179796127970254329554667789983224007010193712430738898813751316309410463773670499366201840800826057871076018503187994033045617964536877956754143168625166330367304330327147240688915465800424178594467099968326563762826830737467104140719948563271020842591115860190488193895826273039312246959748860857137301687019710335264883910212620461179970546734345177447413584453234180030787825244428504384504056998879705100535564944536905963812323251563703420702856549606160308899481871912506450711238828736030435445286891683514992417528171275498520607542304831688841583237724415387278203830133989375588490483692199709868932843624790412368479230812251500546748005262132822927511210393375981842481646704713407718829281672803956590817426043952448200295630650152034585422883933004313919250388153840144216599584642702388335869284566484485401126269768293453976717309318999671140442486081960321196549536479708520034014892673891212057465994023904891253914663764831938098593972425818939386322587196877960284939439395172595968471597376999949857266206981410686320386216924959300023596109643950808017935832210749590079064260055267854982795023040592606219896423740909694367820673789368774520306319483991368709624348581982928887699222935613117446106164327480164372264344972642017067917063548837720243193971923576869922837776511806919347181569664518955818182898740760469268096236688941419571996281362712963536639286120263605775498434615311808524717735860167113223327811885339032776664899399816625486924438917871042936793607036070142745033719068061708554976352944220823569998793806610342272279815437414781750620073247274467677142023413737818367786931913203563816638057323312452417670002748600165938752867920932864372671130455449999157214625242193273735845717127653129859250110361616638933979702698814900322666079694603564300027245544694790784913210420342370753181765106115834708850500062003776902739259465559931649082666967646427307031855522388108947683413934816656728071306846258041528020660014839899447509772201390114985665616363962541174032808375067303815982742880134555909504348839089660541866778207703051704539849542272746564024832170873603124825796066956747870154693021842048108251205989644692557757286175113495085335641948530162337691100741382743566623324011614239579648409109649431122241498243182082711067532379309511557530443523563390512577711402102347379810099480983308261728362410049654446425658238042027656579275705239106348235539028541925192034823018805823295248983180983924403604639330122776730993162837110029156949873063677104613280144832158382967144082286974703603586733587520935539797254969478325134479944380708863778972042786639808272827780964712837298436792737953704769547469906544253276294449460429057352696322825555078072978769850102488217620482797709654584986894680618305948956808131505453086725178490028084966460429725805194370415132601154536615912251191364880726752948492794046739594855404045270480371654810472296683396221990010018015293812885995641844412312897469501952095135741869366643365616378050672620783473907734852013827871742333338276976248617786811670375889848969729484410911973065391267792115909850663742764293086673080655028065835733997067183119525961064617703271403537109427803438157786165606658678316521464539928065718859266612916853031718394571024552309424700227455458027554456666408055130097491309393620022572541857090752272355699160614675934535626180456511584534984578714422306775584468148438964123825217075864497807519919655366984356627769236631044131234263792411184832512468145295370395859349503162518258804277125933786761038145773461209554386452828628641496824926775378462379746232286507003781610452906228448171702115974513044564766661960299590821186651109872327221488073918982825641326333415610421234918804059247765324014993797139837044545701423332817416190320962144001062406693841768259961762147572408321244301995071963273598596957046034330006071305712642209397438152326729266082254486705640978177270180688500403201661945475597224277173246525724720293833743441462329530865948983172504277986433654831966904554867158179314977170140858145346784910998007930451958070577581869840069515821853495324401243965698004099328833670736606558416860685511600315819706683194935422633193531544041675238184934723311752992262553592505863580901111416334144774161307633766037377960591038446818408083170622164042003755895634338754844391318122813302770833523734361522859892267303861762217943448470797616700601562045599644377921007675073241897272953137600773357574906651009561189285320495377921122668794279429287617211871802101898333817132730223052712904310627674334876803157018792693324512318711135114988380326027293932099120363665028622975173445696926207251736632278371636812395979930641115559161772713652334530596819148749465890779279149825447295424382821015289702349863692702233144416870228695068621629267782473078765319424100601386811426655120458228245963271675840043197164174245951245082540378968886869136001822339022925023948643160258205214314567269614842731747707173349954419874714910604352477435257728760130017187634592651429633930340824305385674043091180412397763397673216945017779673425400750680043510465994894090767438879992040016810460220432125311617066186664314284094490250967788612693733292301211391370114463116790582249815998499909743606471425299510724515444248193719946077258481899724029795317848495088853604566928387611353818085376351065061881014292986341432914584374735333577109141360604329779185523611911916159148687218152070355264863685001397558784131632562646562330857141859846780903366143615535045245175623519374651567408305913738018047238264682153986017730451396849248785966363882286613566656578611678109487458818358617845806731176943138967143331691782507043432445310145576361848316945355154191795522402919584708815162574987908957619449933823429377316652515611013296888382034790449085760896512520424905317203682403767371396567107686068517932972020220290542455551059089219895502170423360406280083274366865035200267939156568269731589446186851264738490949451839054137050463657079030396673270833904433584662031918505783204021600713186226194110288484490183888607526077655097315600109978760712647396682880299235992416841691717585180916404883199675883284113050158477117415289539182284710066086280143590072336390715649065943298097131761205796210713131092536523510273922891748479300828434866689667659313085776929180815958838405169434981056028553262717624988855111370868088815256083336595026039853092697212505906789026721567087827648403360083167802830658824121292247787822096096113916254659679047763636297629171378889957595181479041091008513240543848709760704038993182890989513429057941600904517349167409267555039213440271033099672399004225961751212129462631711597800667351161823433030183684710832527450265240774805684379827202593068540432189684870792345231379448439851194240567474323989780373257185228230422263536371724687728169765012928160142829086369264820461107002570575265021605503651901011281219271504978035458789912667221105969565443969125382935151735212460416264831767319638199519762579736287638301491063387349228902379484209394966462707242444949649594309731414862213565935341893417796682038125884086156286916187209191573538765105270253840673537881535728733801847590906201290151367978256578884995762327282909080871898944056871908171579008417034381503533150339955304136321833396529976972185554529552402180923947454080050516144840673726415702410739023949486746651390410696798102917649307458814378624042040170785383232174355787946037652343223070617525521088261459007272793404678824862333223446396782186188924637166020524805292696218843353432298207064145958657037132847933939226734094811851323066633605317709285538368074719443120387858748976430959460373809659212423724081107184894170925798533878048800009308635769520629975790640648699336122770469279283403243895820354191844803408810474260969596154959605003243855738864073457055169146334074210187983649071370231606030460293185289870069735299222826758195852773383236521005695388927745307596307081862858940505221151428883558904825236665981107668438022568080580383077337145650698614034143351143101894885242860053392199444330080356598296650807197853492731025685628226543520997398003819328094929243279525622445429765574571318416199046551646801753182963366285041416195504232427310521815008344275852827499645767446327490157535443804152155578337680417541234383446884088353043778240333383456642897546482814813255127043052062756296250620515961518068222524319963251211199992166437024383094480778024276123508711780713200759094434770596174859610751079576239888714027683793850808546962794091450815853183242893478065512347636222973195965901071780143751310394800645931273398575719362977704955406000714053717388935732207156700563487605013162413852787339536817713850780321477797514786340514604554897710775844035199270126985872851365955257184014248468934503638819046657264773792192658694868329289428722092250201187892835865326632950928185207875928960799249588591420663993601179198391013122468524518031706512461579498763795800708789968535599904857977131749667472996526769158154071422007743897638157431346797248876334543553065485526662431188458775436871459964977359388999107573374381293276194969266425886320647260090819391929828725267228888617858360304424539252912834085122183265862666974964710795254355500196259096526334787990294250159980511286386424924428928302684796552219066381453750139235296338534487414807219778876045715760715905893074036467940251352666190665077751299135276724366637423141592407170255235927156015531352757784896040822142874462426368477958112634451304983646838955276765742519289997620139399728747211726719934608807463848642213973451022906828609690494915899547425355660565906771734388874820404897690177722223779943288311496497279769811098495686430289045306853195784140797369655288226184522351019708571548704386404272546990615631460322642140555136356315774582340270220025831818975242400180559605870022877393277166411430675683141746663387964456155961819361539698675190796919756402194282931607253601341604903282440579092519977467835296633581474046786919238507636791003485757751557272096235204679445712070394497833731496313964070539212441292784604226088805271229460392942558019597236175014097946812067123722314599438509214129364866011475592030867810257056761760617255071132699335791020156965685449175673352931293615663904410349210956263459573016637771389695017038789650266185019399712470724223988521638583753509017213713716867954094132952129932846794594771189319383398747293651611991865620654319143857806837097204447352789257595628860575496344983338092275652488611697366703613178402811358321333406666496615842274471202238241835891906163840284812354571746175868330589001844497083798426856217351478845605909017193644284889520763789567041840471068625515643878800946146496525786704433797383343824195980306155072307400730935151287643136420043648168935720625078829911139439757069955551858191728584866534781341859803054250662268305490524565300097990209335611735263796022635925277457813919137587439502518479768991777602408845493698803336506244784297201900803527525478460153744548948353746833366247219292381251465630061983327370039301332113314380013455600817694123526363171295113571664761817342442318737070921385579178979271807495951847342902080114674595341176639791287923708959315324806162527404048213582385579901047752201578254931173795059571556480583114764759683131425851146002980317276183650155387033198468507249736103934740826003651111339521099801103758024034054811551926671829920689655125679291282086750772978486690701524075560644675486392306330299597450971706985535764653175024042321193639438059420388250303432467009501707346635476736817396056284070241626493168486255598372741993306361472978013093947844099256283120448979743686095340121984501764525063730147540998642725571905866339566300617184928648822727233003644888908918804702659417259123720053758239292585487362925205139428396507162307696384567043020431841802156713614618477051636846553877108157493644876344812347522875372884019985475623506018775882659000617948398267343654387724359964848015928903314174389363697742082725330552698616272910658104031223964506710618162608708222367627108918760440158922671987159724031877662490076035639647840563100997663531664230466125709375986765034022024835748497211252892378501059838689763958845727032240967763814306321742018097052697361571506767147921044097145112254852786929897290250469371885239597320377993520706162915242351630626668476379829653592482858244973569755673787874960082835805127577373858156977352367858666431140128256676688364139023125912249717216228335021633086093349758635917089137588500396985241685537956873818672611895747637955131064059208552472453273570645314033023587370760420391108258760556400241840044521774366931158582484635076644513940232076677160683521806450772906570409250068483719638177712952282671452201330002591942300955826482800935610963328229467202646177765692352250401541997790878152263380385097503727310029091876025751661745845751901427720160387329174470182044494340231647891643613269854635864836311773370414843258394798100549752448922332498585381534832057958055242070798874176789744113124786781388679953976832809432689409720241122932844568778558804013684133872171714601717940618487479154526316914186665764323454027011961971564101035816473610053692626760079093823355020569682286219904790417095671111237332471898474371979757024935754468079921838354326907388979752219775957267906123519922233532526888975139329674925749899933235137851881214170014721051792265938736690229004883082616994542361868202838245276979160721392783848471151367132734760653912707707905333162552586511188321614302005302915541312691050123625643841129301640860253704931046224893249145172569541331720484745300175777727562436729022758474877545612513490387339088082598006121516029621197604278074552148316812912095105272970911149613172771374690811404492006751857738582210345717367618410350863811605651831056725906521168207753023586159151998335915319813953945927544867131011023499962720996086093373948050150925101627948723355931152943111476993589070951656937824908925422148157916057399023250258184699523933832913232316228986807423828365498825110817771180799107285270408863847054599062010223878467962504884743852048713100901202278291769925080602882973349552997089355405627708634143530897585865574687739055465314210611338268279965090852055416385706328017063665602937744161588980849705789239287812505984298824066873675679073439908367436112919848538127447203100814217276324237173040940874480670588319608612996711938294843106458713683046184983561995515015971221846488113226096135392105015451538426545149843002817697968278405575635579848488466334966992549327628741634827156644624980532065458818424571772214563127770976108576220138102407277456801543345984245539045778945244644716586477281106046565195949687775416572870552002051375437193684516798740608248592538032594059942430127443798767988633481485614406768551278132931623505919203825823867756422579570691962853235927080187715623485590670572534250495895281044866878704792042921718152566880782821145266761022759623316429897446949174266890049434400629038190430432047373097863077978702779129926376304492528556145776904377010672192524276652259275828044651695598557996845061809551034682160775490572826973268416646507534951459993452970537023310648206228544292202658192888546209356962130834414619673459394611127814603683812289095100075411471238774601277146226215381484337014810578154554726185219447920806974470825400048949244056366993906063339988742441912184544140532461763626581759719586254230198126990232439519563603008762208144444478807034888591244126237505135366147014429687728018405630625804830303242272451787489604535617158122067837634944234060768022549890191711462597345487278840650790899530214918804855451573530056102668390821513072655329348999017003264920372980101910651814778569014042898711089115031160307681303186932075942670133397223609548766849027869030322462011010412926188101329964543623773492428151901553748538607892020184716890966949203443665007847112559337473083660970573060660743712527633209774095519591728876043397256748710586075351186251733813110845984709929174962498343832429516811800433541082048999008726681002175270859283085875916167603948732766814023971933358813006893707013229499142762887849028604745853004969513965777499732027285850974330274445137421192386005149209663082015851466846436602002454266126521707187979171783922610344040786467042342196423424153981223679476241880450779820075444497883033524902201536259475810569359550149090048997043951306013052699263020170554495486903838542545044830097905325050182662022801898375159908515181179197381634885733187714418925244061831739753915019093067338355031962952778906655868962190617113319751211853668401553591299348746170732866348417864870783285608718311424220629098941398125147026186113984983477319363749004170566047105494878370633593862343912071424613182781443683540750586849469707290771982898425014768593729483087422364504114103955359071370897730131199575604471053032925651392157692023966165720125846855829495289892147362823494080198477784226956155063326562413540632325519969944399007705790588971118129669283336854134028305660208508876667652541971167053352106055828978024694202711028864629859097435149293366522257682864376007241910386051244647490898807080830656009820236158177075135989319128750782638774461777190318335269909303345059144577296194845182454063399535776942453593438843817421003275593977957176673559706524334980192332561595361856457726186864959781438575784626203219033112396793042749327112365599547078285360238243699653449727048000949153745134476769951412137415909866399909123342135420057480076071539866727381023935364770512972154477944666998684819446614004658561186605744376896447097651062619571002015017426522553309727826494997340470790513325933830953317320371559006150274177301972409432988101274269971352985197578441555452188910970256546182757037068482921069987935026160978861271621867427084743234385244171653898117768812539070209667290657938054796764976979729742268892125635814324246948081882712332627387907181419787912414166831167451204366592152953944162673757230338841225802797955615952778912623120140298511859925528354129942652478455646862024012171071894385693247138771150160880438701049418527508360541423492526260860255532233225725133410532255995266539599496126420302723545448582739102488257917738197491986777946338324977833705384645923260796275471183197304360324243416753797596669046343526322488366505310133775426650508513134507126772600406662422019568019583808536928139923716024409943297758692206263246577008483848416991173508841465647156521940563327875054951502684533246093604474646540650176180508832725698351693326856556373367239677753525832496971917345619673259595967052814379094316922457913697856402751738861202243651680272952059394132203300799961311925511317752555107990610596237785316829498988736322936432627365907006282729360119168845832725180440917168283028479192155556076777490133192792929757925511522208321817004163809156250639402326776309642245077393928130700383875051868150024973241367092003800800645359892028745746653108090854743318027061635609018457755824624271507394317083118146875801726610550102732409939045981725575015065073923274740886999236652403093351762094543556544919643592396501360378922962843276858341189558733170112893138665894723536312542602808225586931287045670125826236659821420407815507348507425841635003230896781138068269009584692378653218547527273421654938685112343615165717074592595246609565991036269802734225465151866861348061193077081285590450496755801263190117637590827043485352672924905134068564461558005094986772409852336124181388808929017024152300143316995483723483713378684804140199887588698672608206856663581203182140907671666763212493696465460945468914847457380280010575957458349055925945893754862026617025485620239062656035648047502941299666071119956189168140464191196658093066353870097688149844752711384381751985402027990220173995846837092982552628649249562729497421331539833712250605218842967195807932292767761865677379448845663213777388083240996956943606563624259116687150100708904186947854651254867560009077239512249442684696765382274907288416943510035012241593914695381687822569932741190222699341015573983961636999683970439821895212080359120005325256504606650420288356409406752936250069463720695913642339099870368501594198643065352197895349828028718094303332122416663010402104549375799943976051408345308624369610088755051269550572907296426677729827581328468101873718541034875361006005774692252135291411522820923711797036997723324206974069934239634251463992476861748459196994054826608663980176394952274731711801239540456274837965277729916713077475205871677762364923249384623835771636794688463575338306250471963802085060167156316911396313942356379139420057989738781862697164446289774338604805826933291066237633361249892627695599680255706219235165067976287034218676112581326383828241740026765418439430633377360256814015522834930278323187815043959519883153112378815966170280192766292224469275559652839838169718400976983348845050870275360577291439644335831241295692295020516830343207564469546869793086447222041209517834089466250508586438289407466369153996429129933471295845670795229058598567674121632251639738841864902875582390252313218219449495945668933039459314149230655695625506655518650163454015834916495982653761739630039848706845581244201560318880764060797091241667015124171799501821167821853109291120845253945945515192875268203457352862760905331930245930639301730352924253781355454244137496438201196849645011466134316113257089155995755912569342418151502304956683602550676723929077764622249677675826285500020458167479444385799988379821374882373097953031771272682142486825324719828062623960608124779569038332852741607983843583389376117837366781243321088902000528347713528492760851525469505149845576108066538299493604662447101998490733299216470574346116096527934375727753109445919411506788990165404662374302281699276728276935335804881901538891242535021299325932582717495777222421443523308625359051253739506090283635075405101753860403340951977277589695043706156786232981699770217758255648028220061193816892225841888945585303890724501247691557220052023351403378309802793821246616779522105821215227426993054081435134431718492475820328648273631119032642483463534564669248883528399648863904892561998693264392756176651626070348610002217435824731041150281002413643478151515106398069714837835023566514834519436532545005948426958530864997589425174979089932924133934086831912828211731686409416062389870295197178139598246251183491641893074872429877599596841122980901961161221460976236376692171681119690743370435917712860113145831884893404984138500849893638801598311132551068543924765146028227117538835806091926971421093903678881391116214334782187887462759032150720129662193021574255251888911432668226242705795441472502330184689026012865922477318208251333318799043260518410480281020241681079257818766567890279569007197469428407011692497300905625896032138800707462991216592164154031876843336605715599292196662272378581273110767951479277553207003712077716821373891390552134176490978848645471735297431780099921679704612188428911080975952386360096404975410519861490128858805853821828535894080467562236386440301078259742181671947696759723029169908627919429920834863628513886537128049001263599345879499637443223007655983839147794772052658895007932977612046193250203146272809415025368897045625078289681342111483563918311784026420311107276333844489652285271522974013450871484441890319519347351150782237569622968359341218492429400310854471108363189132559739162729150773433409081052777414691739510456732814831995019429056537804779306948867598077988140433789929403491344671430927787468563754485246899711802085549556778145894864280899942771629974862979202068301637375262099302602300906469709288387375599216147225921888085237494117350044258811173818869882977459356927232686984913350361763271608927979687144532464742658485691204883533745304706999497763740671946071561239692051798940273885783253980606873170671963895037803179978000813308636881592877989121648101946485770223604163944872732170514370019668093356850012981087698310158450785920818115507621885180591798902290008372947847187397937019591394507201438902129148173350403180738508556501866345377247408855438679746308684326317446183006710866330535653154339105488217962099868845852569226462464516903705926391955276630427682639073125889653981174793207657769368476073036787039007176646902569535520286092540738653049382676230715425314198538191836544969929892065720187523439850280433327003801272454446564474631201271514011868466473203091994349086779738989417818660864728948229776509735026154809266489906171872225536758271349210059479092293736578516998461714871875151460106649525354091386044473069192650527739383340555125346320165316007374473740695212203053802580230703158046402556587504183290731197953737854091711501768648747665738917555659592302987872871611391624323004712238386826385598209397386149957054184457297037863605811308166987088472267312439367230445767729475065635227530558371486682409956117623178598811687930689404320521634400832261834441984811713881666314909563773696442524836371241013213205352951450598837613521556356924401687554562262099132591567971165793826724932453312431106442369255694554860042895687290993482423038122848519613829443708385712216525815339639197071854743721252715515343933868021869632283750514322444426675444615360798137975940462175147921886754228728465098542977173348860289093701818766516200932652936381009714695636815282821416412754174858361859626401583885789933487458132244810876605273496349703502533869038343236566044748130811501581701156485519053039244294819964064006573806173563126580047603736700112790865134875912452442065706935519162272223291095356375971489485519708031285534850461291693180989764239007012637196521360980070801888428962742398168736886191071680153181284729487116679331030672732435744292990732490955528654754908011388039901188134479697906945330420982509307428202652568372569904982210797684471553834117663002354960311420359735307702337220196204513425631463074559696320201293836375024787179189689591813656968202169505534295369197421407609033398045858043174367481622061629505885770331018063104127854508859865355503759273176922421366962865975540639208723072966104142472952226354293542419021595883572207901890993829835991161587731483089026305027671461432070353367411941379953171899653737019649335852748100243454752747430748269078356512927526619790007320826521920656965600537300324162853450675372371959753825837161119994770338004789607584515879144283596881365811314967327714050999054914905184662971222086603645621957070730461301870352619833817529635365488529463289918198919385325815368990874834800425796402906393259136772560969477140587388309489702529011934394172337611943954063405135458513129151131434712543931559753853605586361430457418441603078858409866811089033899220585038902962584987504385832349490654779485141032309683127807020677707205368469343510893197682491756248421178772584728228778193812975608831338504654377433918251469466564617639098988456703992681234311469112201877704411001305483282923327026749149014334034202761688776166757844386713741333184438034973741527996890929117722112993514200564962760867654919203595365845518475827956725592033489867788213348566718031333470978971790257752592818765040492487619132147226220792792211801162670654136016088336303325408329778653042667860084675687569486326777220932125534708977311670704995862438263830233789387193133720518925409530253636917984653445849920363421219178229752105379601852849554703832428760232072017558153270547655639560470383444916558815602539335472031623929840855445695020197746382040589397522691400409645544720650084970639531163780143064258053988839492416150117913232351852411491279179498147101133519861045214058186001325179650928601055224232606660957031055744569717459347794096663852585508439767103822349829439157644271485128158751329669153402773401493891115686797251254868765803172808766807736040850494240106577179620463198753740652489973458689635955171384593783580555739981700555295915683797663792448953308772715099591331301962287481225529364098361263331254898413777981048665634220993547139198669049846331027576415655098534636586946944562703847938019921790466072153137344496576917837571174340923432640695218178931645014463984057198749795896066907012298998636583928707967507312548308639211526483123657165916604245209905633160711468856480782258821369462348373694718204268239330181483442831228781954206374260307509332408305302127440323684453801072620294000776015475489939936528092017487208651219246209849564922373439784078910575095922803866950877312269235176642189794067057200484390292824697532910285793674852069253912622986960621863723117780625339274743717090323262546122842869961302128315361383648756144332572609943777096848303516882806605849047510055925466551876256979383848515095669892268411858872959852420940545929342264474474750181484994340977840273672843199705857846901238191278908029216944707026729520295556589201807301243174368385869143779138365915791286366193526562240292055908263786710997062936955125210983593711092096356021737591860947169162821857449025673267658065699488709672292775811173908386614454264928163667725455844203126432378832493067420856338240719392515672688262595181164261431995715699343512163211272518230049652325259115601123747585117781521658576520827234599705993521123766382281611382027323140033896450782376366567128395995130302612888867302778799821674928978089689604534692412572403722715645758949955191820643778515459556902136972490463278471315331794303910077255710515194071586871667189698038048907989765626895257754546529089073453758225017525188358401737494495472283710746361687547387836491731625333656799096346249107983126110291691208788934455161043551532399940740921208653757536426531037865440839806965279824352355193519766409499137624783695857119212959689046596830135764351434672673387824689131769118646567979422198160245933595101796068715879336574390915921729914767336270713482492319136530117222208706008216778533533330729148655785029250357363937777869695059770887160556237316536067364789841294402127913889096970430000585458858357100985001894357758364735805850515622095162553367546731869255157826175373567981255752100221826475691550232155724706898594478939453853020364564810688357875378145050638890241344892467801060795828591458288364829174430918175559202077448133370969259732116244303851936748094713132592393783968102893858105895300301243944416652324164827652112568496487278009166876616634769845762936769885896380777036667422449286291853895585975289308759938873669947498332031009087627946673848274920373394897190186703652858481809063719125966549067857116570397653599912547589889023187997270653015559285249618401405710506214895661332822200284363214955296105285970991596105601406014733319511447964953524323358019563807088635415341110049674806872444043493998649219754232781259313063242187286990011302978375698953542918056343588639988021173287743973531258764825854032202883625932854408549303122047519739762256707608387716558330756505670551077808974299593368784714442243064615170249799506635642940640723713759933132019968296185836286293867154622441963225164292463573790110798465261660506189927595501031736441842140996198066713095179885735751156417595213260739156679155420464759599821114603033872352656804639605388571464491162839006081571667784512014987691654011502894502901330254582118968071389298716402031442854602094379193954778796877355844310717796592819836282392339171955775061183868848912835852225155241516199177566689243023603424508227321465651007157160590830090814461115967972661378162949431184594119437490302146506224494968409400875237031294680225915550250646681152785913045676667620119391340995382296899369591910464295811561124051002004226937659421216502817276159008594365544188704732813659830781270387042967026450771571593593140652576292283998163961778042648407130057313943150138182566499515781936320002546999220225177318927083999528662767174631978554042946485788012153632499041913234462858007134786170599382098102332310401072410952952878580750066250425620373405731263257102557141874634717996428805506721149943098822306140928574219954796519935277683519642429133714651326483230521101287047618368535882349569738135872856116836857307774223004152155034326923407981366896675260542401199503408937860410017183279566719478715659599682881589343205261880910391959095342047152946515582597230119607328918065063941953648403983100441006581558947562902512985632000592230798021723192660449669992386805696643193474192684522963993576789585212969916503018245411779535140538145811060639980020721540731241327510988003476694594218943015866781151448541587134215218025850485567301158090320531804668300132127157572683726757668655538134979640943606643510008806886750427328617669231608426403601194872139710264089600609377465502255494205388739710795257281525911536251195365938503093032491078197189280583816284329775454654772083060557908120455618097752860155718136927863476427990676975628739839111626195128109616835771374546740500872738618641804007099031062185403677848890512132324485755529424224099892748826000457799020728574534008000811812723021244523204635708979396795258889135582063895885354847623631226910963032394758330096022336789216414619802292689187898130563142238635465969910743141919435449258139395327982350934785200471303970841268281015436015737957627756159181571202416223550886970758029167164160465054978348402479468754447085885576371909665534912708404897234959273074025116940266423474164928373967811061122523664954426715920970753996350405684594856919325919256348176840915408416465028387455343351333651481605117381278073199803502225820292030320914937679876480180762501921297711542193549138368045841953045833517917434675301119424478757936705521572294919847784713925478402381301169912139533811845772517929440646061236123915772973720408012769817857326108039043624082088972223047569892468716945183587246902743710569564051536386052957101743639124273450838610277077545150342359608381754344500859489542952706300974866571224921791268327746150289714791218417546805183125746340453639017500341474410214120348756683907855138328886717517886551004985379807060982494959701091530569440431456239385788360727028945138746853308559855538676769322926266910896688382450669429087902710108224374596349683330169822370474192748007344393918530823892774677727681954887095291225139741093226932202308439531238225556216355680657889930534880188319822595442233168715522911382268653272301226859603538768436581780612049004066423467388540063576359479939134997441025619973128072108022943494039941026519541411899960938765432926762700418401630762691318236972263828635603158711888520920526528138774149851148688692010533231534481633625050863902091330847853678738211343305781650635071987896136211080938695014064472959923172122702966555080919315408372984762228414458302139088727061686466624012503553019014310180677145912248091764125286401178888000279885950551553879485705188212391649253958614808199073324849418509700184297318781942299398401680519705895032806414840614051209771581151524023169084666393635427004309899433474713618600796700306859693302876826963891762527936526909660628545368302558648506493478256527311769179134346233077239386746883188967677679551667708622858979862426249221632404624329052180464119187703550426383754295233800949806699186259846296985719385025182281557389062833226572521756779678472389006616040186830825613869233507980501750227715176625514702955460585569309558993853252352254188852822747938490082851064430782510803572502288162274247252854222409531928067094993570160196260161289852396439930555662548777967738887632629773128402844320770157957371147684143899761647340398861577317395301048516114037229280229265317238039938233362195950784082429985687156665163836672863795738375482906930041248836040650915668534674195975231279156982010214280091782964544497836238069469538060010273657332214198865122231243765274734765965906852894141708538068816117325812503196794950140389156536324876073916971898111745755989810999177947234566439888738709262986630145461711035122281521040039019721737730105214297796316893883494272642943597168076106572838994578997704745535424335891390697159682122716091075817814497755576050973464005671558885519671744906969266012095105284874493904815999395714869431687892292139254093828340104369041924597604630697192974513621519528679200573970432439224846830045299677378619515829320739883142654169009769665059903143949267040284174219539917514698881467576304910499647145377443325360198535474062249374703120820233526387990624720217541244295218811862791698416772438664399252608422378370678969743429381430301918966831723975748374268848293256064548067727128631344266380925423160455145990150505370465220545437359336906919970638738391639107301892106109556692072446612989463663591148617797313394023194735208414397834100852130899684214394704815464319468020277132234970266280388149958454285863755192491263338434730966132818271180856266964123840236938339642738428003068310488293022675604791659079282584451649372139826587827307036081914138357209130645111330339390740222663547932259619744619319116052376929650766005480837402988214803543333782864245027890450953303419612851051857486374729236482098924832248577000195604899218035635429144027629278295363506380952361717187980819417554648183920571700444881204990243985034472997406034233291028241153838468762548327282154706167729882734735424396961723299255011154321154213508280819229525652377953360406143368057442965101586678731427501133482961772953240337791692634465676737437384752089409309995522150122585735794548762570330285895372696089900490227795471451131437008718451232997746806564277051134396765799799029108550008632349879411988099035162335211080941279225469441516628955218496528624159346696863024926417824951873460754418075478062346907401972675410737378126327272208608726780961745817127269375160149322840324646957607087778909019740550188133921951859245552955105590026523311793024096442333550151327434711241475326242373712217552495918629715843239730430013478022444622098305571967900410964751524891901707418602120317388537082190179132740160169416213913670391780002995487477532925371043942947518754128630986686139123351148109049568430858029381417066047113513477394555583238116614954752403769123250781618733151740147623390779891422013402463749556191383663946773256557622377431573213277290596184301534104269468514355450699104579713849820819499713094351131738489547717948813288054797574223330406311134770097728422823173353324232892959314687529050478614597079497962246265446384524269148999304188581342150017390655092698039125662452711519191594416761473552225120808284433222566425942818194906668616515264563483475742864167129923266552902140751366938139771094583461846965666384022394896401986917698799084249642956760961031671173581461264077413930212495734277593691931353631681883345444759189172199919616373639255843979086098795568868053739224669902251557935403375511087157605702532808765265414249544663138553323472892778471779354535188691017708508418801908083107023221600105880567181617638304191886230931002749142553584077511787375768079842869226308620130438750111919870428239945399206171016512206660283247035481257842731079104460068057363514613995968973935087289618326727792864125633064349682320191975843060750775148869478502269555846463580297148741726774328499827975780973514529942652163212933234467035474363950092389314120926737811640560772001210976905159538535565327257129974695083003874093485988186082125200423451299131526305527091191128275555135110241155802708309368253493086782133118809876545589345335371920190560584128394207264714912978846954347051842101585303885625207196300795479860850539219963839313285603625059706597312840759296947172144102863916757025481899575360965748037701373164720522517255896625051238749380665383209899057212127506885543251734768958214577291295025290439446935717909752913749338192489997567193054862713233676889439553383414231911833156165767945321667069082545610009975461498632391236069192828621124895030252433356584008105623142497323786517058312219653166869609136988640890356750751115014005869427390343767102842844714846557214851301143126000762897539335978514075744828079265724478937315171996145178069168387346243950158926081119540779625737943138118820738412321037062068313239679764617315683913754989133629815317398940022270118901696094585255361910486092761657759799824277539998077664514827205159894320929037873870927462263336628995293407299142719128492234265913718372085921321487918855395580654656140371675823545169875457395872937182445395351378026864191579453419246172670931563494199710344143260105150170852650815055066218793312701609504870561015763854575731158002500174869736538390359808937035512588561050817304795021481790684620518553774635873666277721649924539181044502310918109241122955242440081915957620123224906288558060011951572359176901684214723911420407378172136893369071785593624806320087140819222716102972781997629604770688921354871915506749620468309454307983702506664641317475560546765758833879147264810141936290387132551719873973791228610196268015800493674394751002426554712643560889358652740868862010294676416329831139579713850629768627284682437314039833117754314509130504683246954594140996855345384615053360664509055663543824394768116451520246739190494325989364032856395591361356821342516830349152528870960543739911095345249058216708474734821344369621081973406030030035196130997533788613756270006428697723829617191012524324360848240680638803916965614067104644847565078299269094060562513873041448176290550950903452723048412403805916740081782345723438379816885119343602089501567080044535279816129066121834814227295239156830776318003301048825655778071440200146459734443360687464472963564062390974682286264853565790563838713049930646045455777130986173763813609209685282120786925176264225474307834257290499604501500689724502187252348417988355267843437859638419038269949239062767251101674425561897857642670631217270770390718127022481394513217148351300308882744818568700183076007061727978402180853844989574565447525959957578781732598035661794581859651244125029455520303675846738596419005017895666283031439310353083408086319685643264872216823830106978504043342832241962701996820029193877720324362755332772255970296746745998966442977314993743797645351643301180700667174515380266908904813307280088443435122640260159271254290033050167694714076069988484394286311053805059793745629377117248304843686166990500924367240888486496094267003583772155829796549884449862846411745191864876672589332220234829431925153498245213851087969168677880922517099142280130654699434268616829187421253476323825341050747602253677682085343214460430946828690132400016861708185780164326830569848905155439821577920439150442364377544020686932979131401375179871234219728362425957928697771784048459405342863426855200799089224909798690112214684986082920686331149165578607494211764798607498726062350009914687078424626821182017857133819533031164651674344768885831917936686188617487577873475296087635153055075198123745229696426122805681965096092804023614159624532813797666910927462928015953412678390337206027491355784174101498084542206152553326328226917696289621868219481703887396356285626705238145065281546797100911509354672546356251449012166201271215953414582460915236366950704625857212794651313240500194222338517585175194331872142423175255378525672287451235000288078682383889593794697038509639204761868700698022956004666151079347226544230965478911515465246271801899671417841068408519699757296492365573630094140227772859994696637091787097480684832376120867271583799377459023121532086229307836453211913267494850532145033849334800552150761770991203830456781352232520414539684829070541453299847924803428559896466169932133708686575632489584776203863725095211938497857583125411627948772809973292514806851105407297714861819700185380024073203575486126476104049615545097647766129777297828982374602138755481162569368137113408461063246162704789494462168497681648206840185819055804834590289096604619918531627527777540865658027440054114800801708575454935602101399010720536175932605506532180761316850689131271936710929575401365644085824345382706693631342698209929203740359889937470352211196995414193043786758259807414448677831780286454656359082530692163206147667196140658486151460803977158044965456170128414770370450756469228311699514838418067739908502307801421356749770750031613950900184294902915315798431530103538528707232561884025070936898604155818234868342918564912207653845926389397074800681375366753041963961948031514514011459222539263309323505489562903006287248086766743226107860243383885523063868775022751151156286311026111948550505587485993111609845708102228089544833259076644645532523710363306714983818398587547374230386405254298760771553228298679984990325184048741081131695670320956319979588243240489122998867053436317683397831213401930963069474641652496195479066979748800998491544136734578384752673825800503291042136581920626323320417214184427563845010205629744814117873051351098418345708049289957731523177088798420690324201048903309094088588236430706432627382216298955412647391754706430618161839291710874183178602359309004712992894565918958610239982685164113851364429867697554292460940044994256955439239592474204269597308450850130736307880041050636076393672004275518983584292486057024732415162033250603209755121127022396208356183435773320365607028430269583912679678736456255427141620336491620554878038442020479932383186739048538424931402371467532814867970682373118470586628204182552705712158713403880017741142338411373925881599867503452180595055496202280844759019164913523239715714089207863616115995674212046452018402660056381767612588071637451600080887515477759636703868895086292434136846151930181784013806444936504909689259571924345077518359096219391843789642598638175052833064401376882452547929288134046944797564663654918975527601456466029457320161507195604963900908968023330262076779120157270834122354047108496185329113616740679827483393440262966611769007370826004177613078441013486552745438615609034138274832938597818189988873573485083978839977586390085712290790228217280048382278229460772573950935116077031121069358657552485657911557729648599594930401648651313821179459595517371570478179508491214538695683532764727340655300216032320212212153852287460654221203562560925780234237104218664841901598778651101475919339248048924368797802533569988598133409380817116346397196842857998227354934757910491536410505802412712099904596969061663853753468800999412855054117884878868437297288030806606439113265877715702893244507933353817200838631505845229773635866439743409960281236717915538750214396509119519167078228709055013868788386724623917700435059397889042725823981024436812195503262498616553161531802439326671976814048956544533998738847132197913990819546716711913869594075917954795142905444644366526982369519736364026078085028979997528428651159079779741674847412270100423598291734923184528532880152819694145887808882724807467833535986363575859926907410042003425037154210501264573492318287344767880566868028897895469572830723376286381042240882371680217916038741642790644074151251669392822842987526913579259606882978846450077821546650505721619652123546840914553772611793350396218307589633067621808837585107127970609613937960237737729430399841651313810928439400446268815551814905463735727512270483634712162143855969065368696766247103964549429295915603650458734054391803442532770562043612896437334977684744789927160376761189069618566631401865548126779453952056760510817274854603676638425134522970706938527003272507355969617047159591868630012576939597087348924749722465407609647320226317201864191059663654881737548689774933915659155853959479969080382518599301261197659166181858300193075183304507052316388329064127648786823067782247226199551142941030468197899610990211312983274094594541316424729107763492711092221727636089362121075243665945654468981247324130310796379166626208095176378277233201963400563085808722626825191865838450689806129753584543340152855182017439792715125947894547537755809287553009257633826983879947979621892552862432964623302065805246932453810838817484452315445954129331091095881741002157213987371359932797638831218633698396274292694876700269043148390506231112878941650276844006990042402954319703219541564947647901383784360907835613282492102244700729955868676804198858170075310374746106898656396858327611601043189205470189881026697522612468804144229626885274470175518026396438763115521657142191134652470939462572477324093352306855587012950893718958018024427503053735905995255569494848428839735092017575975673303446499747442996090593562176441614759124501762863413754280716971026575116074543240437666552606525766211747369485714652683833354386997805419011684512045789094032555457605578159845270948548048778421860794961108052546899417232912104200517295980673545357472822281930349848976215605512046168569346281341884227981309112000112221542526965278255233246914426979558468466631335319756726076668953998558538325095463040300272951086429415314245613262836914653629370538483371952682986629385682385877678834599072795053769471247820256546667963613794832912884033528995649529883416867544915760018706234368170537333375408666007168536344177732738487546109578829715858829236164131356271777669221423783810084698649491777104387390169211997000738925844542788190139387192030428297038478914770470252898799464573449419050089590385766174464891323451979049951108369175146563694149079823809587289591462329402363439257503068195614334270302163822455988817892574289445642177115601844226780164119036836261015267385711779701685790226558803796385097134554040360373674787223715291107375450624849146419492141514971297197803021621720802159425457773264155558881867511226533249708558234362059102574458548888353272346988031349452106151670927732274471917790221257080264763121503714424699390977828647173917618378252346676412408901466854687729898244610646519123667815841099504942611564320135672952858989022499002709216454782222262286879916755003731549981747132490211922111045581615468236687925108444360200450851304323449920012730936148703467946546749972002750263752835595070942495835408848897716992405114108815692741210871069500262360357623625676799005982689440483842523363488882074704977443237385460420528819449312996433349323115224198313106848153704069698696354765890115240312066434849692651893952485253952810749262390368784136570736519214259408161879828246679388764853549286237663767684969808271090975167613000038611594921227587801009731795560885876697264263023788503471421458893846833421497980539126422044532582173854387868643430934188207084293360918257377572599392776452901798119567507571769436263062846037322125986970904050954536021904529299590853949887660474941885719282978132194001749398978833301915706739090757489464521968247233897202913153869355388102329295039563903709872091863763024489211440483718889951199650737498073244281812193921513874625786336939889636456050372557952719451835811379494968212025950738915344100037047997189516876147470944631239882687916673752625989166182720763146728558374192551911939716956894137870192746376267570548619861966527923560768476364758667889906702999617479480602111451626080830146909652657728834449178545448671718342694214011231650638965206422249796124417787534397771492372001623870941885650965251238933573386317721577595976881919832905276478148049437956658762034561977619890180475833713739429532759648858828437178856579156147774682568332064568771785855540360066285133957570755976373685105003351504915539198308746538430051349845576439168012729756866020146224692761143321012734715007405853236239806030448084820885719222200501331181423380063286277243373272836249889515266014873912950568527460074577062595403620252054207011566991780545049513855010151954127632475078616648445818268464469343326431943334844078454808372654329572900362911224899197820531233911250318968829405151923421486329044706730422791115114073973004481401701927110619839463795112893018352265985286374946695257788618797534881458442591960039614029294782265410500995344245394603928251372535088267577490030016176403437847277841781288160597984694840963217150890482645144399725852252742599112658820331491204550935244922104800751543354979879716774907175380384335266238825477142190949924773572234731974020073980724274009397681867369143600558370183248546365043280424322273951753144332905772129126786009924820758700055605279861094004795007829118532757312330931556622125240442548101277441928385238856205634091370802597756564774103461875522961761547901564141884685372702024200498889728781699319379577954837734534237084511473809363234517384955833643674928289119849604591703949027258128816664236512321940558394718053160249936865680335543331479426998271266817435014750330202618253644684000260480296290718354856697382234482581848941281282696826236265014776254629208607613093257751362746007758245113000134987588942108777407556260536472470485581960781126428410418905494610074640336440275926912035973433918279315600108006824396871716259057144942904488738542770269668965129947830372762000268431456468843940707742509303357895874204396973069893364260191585662420722618039594401446892055147779894463739136862764936008112708077666671342692876298797658738630596094981701537552010466722539035675521304109454155345847615155641332438613214098028560072724119435383468609269448279269675650906881970328427034683023992635072117226516097530590824943409178697730548424365286806957213037838642154254817096090240644793227906804827780855304470330957104964603648211251644788439265482358655349026322551072727825252140996483006657810430790208758716331677670524401725681147314643124439479806157086412336221652154468038218262433796778049265220568198786191182441168574500291011810472420577741599180175311623314999194629281924269517523046016937449501615911723980422262056353608414001511990345935776544726684494781053481103180548528076596599759080484198170253424318821755257069805853890595245007808637616399561024025656032737800656193248192041629654520330352210119719495151980926733582475257520763193722266829417258377640885592671880316308278262827249527354665069144841096118077025306686492613955308106801690412592303055549520205813464267704456793996905251681632436586881790075935289467992264571103506415211745593570538229365579381390398719047346120699381188249649255337289840562164948326504293252863927674225867062057817171020387235754446452429051847993297615770387491656065437130011882109613176007344366648352875009350959957258682061685403114637358127032715512513313256489212046035433926517970767334695507802290522763519326222681975733220526426798300745373234412470047966005917732722765113348486137517175588065407056163144050247597871911399908228849813827241794641100359372944002323299487258988282440469899003069539484637783036748004152142312698010136914175086329256769732498221331293811618203782759813540600493468042910225055944805273430309770941767337354357845595474609599650734276950811917461004834443157351065375854572661982362974637021024511980528323699205487692386856703419946915884063736067131833475351389330247023244880478543268486567316354152401082597902956331923813581223645294304117555919932763403957899030743208476545284206833568894089731232888505752500096568985764418224526734960625724503291661051683653831692893712101028648070265758285421018690064551878992801084792262773080035308624206626825764470916586275937479991454140260300802425686019503472903108141294729822261843979058668609869052669882332760122324972542074490853934746883299804808247456982323603365935784229110748957901660967232399992288976058883622439820435829725366839150761801120365167854850828793289673643557659216933330025871540002416820413653898046065564082694551586447176277508888512589271646721225465602826837808782633596026456223493209383854996756345038703619144006897627170321445165952375187976732200154886827507676305750124764445236148941600794603880871477353374839757573470502316500811462416792818066275223804283560402611048674327111937716945427493557982984289161843025704104267407358092118503617644532537101490573289532558425728761971025365882954002301226670121765225303340278240624788713308155348268832248272702537613865160780601348896598443628165978536803149670352244462261750417467729503406691290420513456664934670168261201162626417064778137896756059597225736007575657949800132038576381316450988514576969768006590274362556730825626550891537389490764943600761209273683151458496338192211125643453035424040213053180969454119800908284851968230248088125322018513427765228392562021785906404183209192100221086822676269118034396935764620225084354736932358045779514825504657393896041734735447254419079498804725767560477711776347358629595073187376707569182136315637979589401221073000694873367042069271412633616858056399951770843540564786810564573623493624607723567976524938567435944794876691616874045299219509148953372059260926958229160612471528445784756943698806864045867515709771193819069783171592640680363003186580279210855286898915729447907632460998283558626796798156961215361868505710302131578180989242655168166378543907453627288073919669732164944840085915608530599699358641609147106295009462721906901479145964153967633180813003291866086568993204466251470904142471303732627184445900740158997543432018592660102386662660430815389287161069182676269557758598381715925124789009644561001249727883712360440070600261537387932118005733568810202205161220655322416598058836565579954718050471325681472897550078993918095848638813680759914569002840654409481892465531762848939041888476966355353927922643495701339509884551190875820109905034191911672646972640118616427047246867446749614663335168571800240031681225632618032301438668780236381171667839761382230576913520452161400592337763708579854250863532107430864469369556990137418717096312344532145197498132171606823606405560835704446655607622517686354017318102646335222348453311476519122326322216458076815857122703567427640458412983872433395104327532716501479461408365416634678903880618682509723281682120552998140676783740464621665059808588912743600517403594122231809964939380826014230392682485553631234674660851329951877064892436011964514287814014870265597703936747317080450923466709297078642276174039656205994925097322639286617815512989688508647039735834813592160520138155295156921073433770530672322113553320664861032771453649245030331699793984231876788835737090638184710835763963980360091982937622862343060597475517441437707927299289251404002727621949375532924841242190393592935514940048467809803357600529127705801894390258105779690611827576897782698545414602088724373105609285785404066549899434047653492207715986552869847406791867962033234230847942061040778014433815208923365866671629117586760591817429911078194636957985700774294827788921351074433874898078360252416731101141441703090104378373838752769251817541628059153835590718311302095735832347287101784627932003498310328441475235899849759584221737215622443772880240525299778999992598465333265831669816614820210692477148776801807808593841178371930185192406489749296405306496302617088110429434879343632337349846772352831824135350893734267693610668517139781420998778020841495927064242980102057366202437723447962283480504742998324233364125271726395615394692580711838087982932200324018353016078878381189633976841032164399473470672365681578067251674826503165979382400080650942154711162831021593176276044437317933846782279880856979514606465760285283736062206348271189778967497191729506434100350979477881292903093570016135919939688254274215341685248390360963224032890078009189408196325994985378571286444329389803865912521566816076943393518391575868581541266958484152962043839347306287709967226877887413314178797340481949889030687403497508698413899228174181716409599269893724225735670043984284134556506081924237098821042584018940504565733067155993840634074247364797918559009654324026164481264853536887083833340438035864590456106221066309110289887820671906523707577641130287097686508988070039688537670888813280567974792266031555989737571934667542574295569519243468409137388524224589061972262086207084380311153458710118621827053099989051831604671005186426027513409577607129511678789001469934210794385851907890767776266975496108195054979450552518796718618319929057582747414115974722191757719227967504420618786188935451374850551406714228018534873947012537335178982005083777779221154326342510030534944443919194688076849388127440413417100648147802814257381282567608107866372531537379102532465154478564076792754851680659964653544893327597760433720995792181341677858645564158719245561372294713585213524354282387500005982274052062014305012264458394302333393293246014308869476890110525671350684991659745565504009292242432561192324837727256299599536144950121818209529540551679151943018394986775198542128027315883765736182797126295292513545230159593153367698254864394034524540797713065311621260108258507873144909597433678528908512652446778125914191004746174292186409915636039496205784847298845541057536760356423502139748631628052325837256655296100766310169132664191545665258407273139417037253639393988391212005592637193644382872668119811941628573295688998674946083503645765442203952009352076601543430797449885313159097536705464940435964216085326780679993741314816067859303288121456723187205399605535218935566556704530291161790490368043469007637100900016655295710921701360787416769238562674851236350878350582806283943246977441470729746629330913166745494838410546993038984567434893267731940917463998101251267635341621339943068302703379394335421742672493169354482579651936375802357571803209020396799762256024016530364768285201033175947917897225164074953745668068075785898343835233358964918265171737822476889663160747274181281916915602691090269651478707097854468035595920990918388760054563274068623590493872228653909781699894677243052309488991979187625653475145620621238582794863817966114216854889922981277568410824903554269185509994348867614335373115927187157097097569425165555879806697625520548065610068467249899256440085973823093191833661726354638043348840225737268518121325110157265213196267984292372837126957901584328917471854328211505171073664977297191927679526745501406584320553505634747973925007436237274887166143059704217317118500387384117713977728634804953628590506418403521273799838764272328325276482275817299498998957007295644858044934628221045783675362703286372280881840195690822413600236465328325426351478271571316710935054495610644258961815336834014936872148156690861013453346752571918448034843792942722111608972404748250853474472617330106591044312322805797669897738066962603547777049120202578522681416298501010007587898209877383229689384439467848717664238652069598981635170429491661836304267819221279241446523117787415544185869585085578585398433286281928270482859260594812328829940814357272005170882775423105437889860863727546469295737374915419230184947540892670926773576475623900119909788254633718294052942702228813667627039073166329598887050660311378122317691633841474102438440469351831125176210910728009787674383431173481089612756670440022320184447785017371711459959616473578974930169020436699270193797474839579137585131491675075105644333234211537928019843407778527351662483862698060281432262861515550384249742878455525150129976847622742656172393654174485786079920436923093817891350152835207627293825599009655189793253660106710293773502279422172082081543751134259399550569978086103114795886381984216227033638450802902531082331254884853447447004953684015705197072423699023011095248204508777164340100865965585187411822457899960163800716490993007734114586580411888137009725468685465810319262206767867977115933194798154536662179830814123655787352981016621103933669494606334222560973017013796020362517658312761529304915995889476650224075586823472355252499192175565790428427109756521162364687337950730377406502849755928681886058207950220253016646021624444848268707205855021323690189998776141348631843740031140149475788930833093926680265307547919495803302323726236453015145658816880197415531816753000749007175966466887429488385935039096661080122919574497477048580270500531817420269514698277971341088499604943724544152702984305368322018636571110574122978412198373096475013835626952087320555871934710538134980426244585003631911108570005388310665387211101775261008532756922305540763978835374835770551358608897656212071231826352142946924867127390229638596681963065129371477328763471108103520621326614114363462828098877969209799719945748582264975081131841629087512709456651910996747071962103195364373484758545812828651976199543076358426654597455731595335343942047470837360481525826569044985283983144886982508501709045797239228969313353184017155112129783784902156080247516137060849173318192427210792591502995922583402024865561338035530070391011856485663697468584811881574031557757935382789817910436893758450600280913385042661563632536198381075935627820821077871058895214367295506354400436212245790811158282826965480697252525324660724969741685051356400863587764185737161603055569230358086048377477311916871861266974276413331825257749480943397133378399438984678455905497725195031693477292108402604426124030119703229983607714877872777166178014198336432219094117233600435926956179850069599207508654648761269516656263600521221505278330164168996657614883777625077751948435283171777792658506565089043173952379569274830101806866465276179529835608875383768418123962984877934481084906929896429908181511477372460463696589817792718946706600459619549971873657679831171253669137196031741227983008597092706883746394663286347710003472349482045927558169165699701680168891648852631382494581811694908782375533296717875149040259556173455693920232911117653394616996039790908149188791147071874850347877945710426384883353606190053329625642402722992428809282697778379419713727778530383329473219933211989915086222931063948526897212445955427380243733080678114083135251663238259753922719470786993603623651853219742449700847012824917042474560580255224744999333790667575938721627871407616165383883725351556827918564781263040320114326073827183052582675895907042614385560597304119613414485886383150930638142726355128296531296684231311426358573090889680725413189324716067136896905870844286813411386203483588804165099404223113933988482137201264759734754446285295200227182051901778796148470404453081093211162385702127044145223992936388933727516315054844518113903571294739116694513890816575885339934432007370776194601304628413675161988034679329774512430143048159086188665451918382803257780261202867903090172414795122957884108029210635445234275713039928792122817309412869721693022527467526039420637455488136218487765565337473149018525905161627382803423342349804829448544951863186465509510387637361641301123304219618254770268893065041950745761838681857619659988159826916250092279424049789899431949425547923771218702685092354283285900791477090131616486047652965227508594074210329701337625986448650814747322173941266994970593413250586079497321965103032904091035893502803307856573172730243796560241632572955655860186821836703262985889066290425764687606231967743117051977007533379337564776105166437566529407228172316758880223256338823248514555903675586364969586519388683558583512926627768647835173444548650422171541011409195058661127659627870307880283758274868836269585667362853080693950880875054357494127167964086438742575175162122814682827998160729115988301524718732684521231713148998282347925361963356921322681562395842355192976476337663376816562202564059961280220334955382460221711081405519953801786152846381028246840712770333521878889456670260985307204917481829055452071383527554100152021011974962805905685542898464408701760602351381932032020772324617551177902559617028008166751738027416608498675915859943842461602827023258207683350200224076256400269440859495758388617290654582133204737502772125837121300705780696665422107200553266176480512592666168781340142078067276905906226234761791403326690918926026094499700679729571390838732911786683157106365839704391404936296560537964840328719024112355030157992929335893042171596417281396150518330494042744648469712532626854112948845593821128415921714262911222515113477803348828793060779223611999384319000184293587440856141007401454960487353237406034968046580130159991122929103377782127827136258479782134236456814408288142623425563603483820815231191354043625840245479329602940913724325268696067368009614250556258602187594289498402219911361006316842196085338208657429422764826617248984780254135187315316529957780945936430525605080104322550393814571186904423569885363966143795725486557614749789880465594590654446068183728768042521540395704336992378288959229402370300248366504442807561372351921538967720278758825326268541649040567293698938126184061109860108042238261573232264888029103912155830352020181225173948394166428174365503332610386888878152453944182452137907885398619838832468960693053376432589323318282871652848563315330636993761861422152071563001442927269363093093261454957321711527944025041332642489866794245652545937129126667868763578176466901894277746001173636772239747508324024517753739148412166083520624609007899997449865710407843101994002269146024818350233855464200329442789478726215031771026177594468238308315600791481445923757082021686109327017993926520828364309905228264591995794990572601578053732408140337665295154409753849264099784025934842960351158518733508316797650198797714428058434174325771916125762354722109614906592944562638622227975981703077854840705523927393376761233269276810742611551126395735621774681406912611341405010710975194498772784466077350624960580660218197108229611917853054525387581082917356257804049915498662417313159736219793384054672926262004708863902424463738225328091450180458347134644164828716090128746761380802801954700815127407928473097093510503802862779021739309753508648925299936132150399821505950096920253871472259138799430245123213310550617033375700307091364457393362850063023998739613457089751752940417980921568431305177956070219007915120684319379381803691179398807304927576722099962942787155433994732010935610086736411681301839817822309360339420251269610514865060361361626949757825003404322975066669581127359790659148649966214824272960508216882380065162692265932339476277823037661434330684732841804025348491097602913683632099675323504791143218083860198151574096366464416772237483058653415166271469324888302996333595242282854394518537991311416699753544078941990543128988864998855381132089058330979587532484664124993773068160960322525364681597191717701945432501279486159620723923452674319463231810927720673926317720831981710586848923213828609965571203106918036607448128886060874644042598402717662955338418993418234946621068259693146974368183980241994639352975845500486911333758584649475457941386389746950159294356546680978073310638563224947861245829082509292245050669547864993708316624527973313272623263372401710481180132053116704010487476505311996235115552245269019145325676387219222144651357925361224582511931257018924292169800860013179151304861587226721925389094469194481885202491903533223644405262795559723779799107840253263037819962130606453682867851008535971901875798328585951402745505206041433339330359101924855024357301823664864650182988822825491435548304788654652145952740135959620311356081850697419391550061592335255814418107953713848269472275831324972007049526571440369926532062672239137693320954586245013622766659747704676623944562440041110857942502949096030361285847500326104222483887043897181912720911305499886755498942835679472423205433109597951114220586892361691253783813776786819341744221541597894968152184431388128043423510623497876377484362787776929096436313712500819301620826120432968276257867927003741544508984324447576068902692578448908807244125509955688709870300849889658743919721397472379642568078918803541811141121108847172116149452765954991517587808626340504866376522645559311838238829473532646398717389561942728656315625668640913946791664699526218948626091074093646089914058338586385294884605023606504610017892271148255191014706711583372609876277430526255404943006068524330566540659584537052253315611058337835051301683511053356568408042663202311699657792894777416571098036502601125452292818038184599648782365671952009959218886573611394274735166332772334662979955636246065238549962775150368254851121203440112888817238031581317710385583893048788040909594542365909522165059004125586896087840991076386134200771454751614620696237861858069760515201449032651931307175520025905855565631909262081907935079442354851220723094993449977902870576129333048828740181123202612847669443493579058712391430271159188552166829904355930734094855784636307790235585327567541769543976433527296269673654133248431942297887742469928481358947847728997844972949912363230357001797763535933123899057027558801727912365610344683922355115594888657669299405267010950958815297396510896331886662426041176146745574139042860879363497798324056477981888302104334222942714414464333347542600852389891794444786762177886489564212770326356505767188600225272843043869315379537282829792624434695096601217515030107839441006103460530570264840602100982068363800925976795131731557805903083298896144457868267010670785609772539984221077543461819230410240732474309083070035422304312481154902986332872074016486953264051577104832665475260599340249451152050814722420822151441339690579209049438345427543060455235634884043610384272160824990907008405918922843949094519135886902605076674056102877210866007869262476366417599756923082620887657410745733516259823364000943837737872254185434275011726218029569874883798609516366416798748379612792600503703886899783153791987570316508629870848305930533395610649077513370187043101481421236274594333062931127831405274254662084734121997376018997771641126370443191865036687876541252021801877503408906295996232546774058933130046439606282941222388276855317320816613480072074079111495668496711160044474196178995422750256634545552774516181138572021173422974432868036631478658518432913955531652119471909992539874482048052458781066253855841234929749719384774849762554359765603186211549295813281726774216973438030984689771225806197081002391950264786614835865557426316556489443060647891360253451403503958951094240798351223971449664502234674891907633609482344993467468039201849426710740190192046601311421838793622985667202975098896742792262070874884070888884649330321902075967273359556064791373136259398401279655048089426734717715096978112109349164021400004815670801595718810062188489218841168943403890825346609005459788302955879171936426304633208650083211212245962418403809749034888358918604698479686645921488261945278457309759241374135064210720659662411931097980687259933206338344892603366729035770768742428506702514496018267596404854883165883123489000710289848616226815696372493716547596536291341044058184761154680987104927685362324648498059183995020723547522818777486179598493487054584624199136859783989061860194968953222284754193350640838139353039751682240078069432390274655180357826613736488590829851062023300833309274756272168044674976255797113998500419293452149596958588389949340524177890129321160478852757449728287421080357536374936978053946293091187517485784319466798902570582654666880279983577253733672281765424403190803327327217646807270592937931211351740371581955551163593733916285300926850844737106182127017057061797062377422848663641208432027850432682989772988102779515000561771363982008496748099157890339574826318978428292745053828950512287500435236844672431647680362338470906201222338974063498888830972513413279265534752113779255706999670077669424816812343476556805679004158665300831776644950601439562165461165301853127698450783229284394523503566658403490379849442263517437331613262328972185750895104585694981504036806655150726945191104707153007929668646020544144895544348262012986469430053890522940962324712799832637696621377479350812071979539850066331344953776839198369943955285651011542391699030563200800850427363358972663879716812201274218870008301751729494789417607027091296764187942102575911351151599737437743677707566610270639017732628640164894975149013805438882474866785678850363891395520512651856761572042825030068783616847105943427737995090070503546423328638990525138568881314947529026883711158987100240380222714215297219226521718945211052532734463789442339967746286458094862569019118262431224910343427551820596094811378086486737426919016675622654486280920063025504250913840165726178066779684382291156354687940190418227547452334444922042649096069921108455808502218858234425090086477630170202669627153192366533774594636691909550600365833057844889335619086751884761523817173269070343164963266721352861366902966346096823188314786928092159876198784348628213879834520311385203185495256131055725855849438007084140003314773290131915749104528538240992745733229957416595733590767583110462278406445933716241112282613149494852225315504561717133252915992359943574409695771710890681112078678228392999669070415186755169967545008499067164452079310944218869191585600546151984478651248616777944364947349621832431687994072537212416239620606435061745289670172257935572411682661593669218971263953093523313285314648168918991832345174548027725537010081003530172472293609339525297109211850608391806389685433075267945242273925386600627592682588820940603998779541260872969535442753109138264848057580067283932982701530343028590177452007620940153810239802195121322538793032076138946308892661737583766476463671992945535431612713713027547816409130126791292006682693173639492612648963786972111164828151007176730286326760310415665519381265254775766374182789477342962346868594943596930309222781746975710461966491928274951412671130283516096169598052972317759106673133711677155301049620225080038394785974650188437043109119697336046936985619932484582633076195078735684311456635295662042586885067762898488020520768257449839417254791362891259884216925810627319590772771764669334186734071893203588893272610627459173411722949725970134866615965255984023242172075387961282197164923230739475974659369660580621760642622816949868186376290017960526509395544480607032542558055232067714088954707378632074331081452503241324095017585980803233202483183227669549009944120486877059052586539607179255524692416316872214108786933076030851769577485580674288647241477114347317805876430481421424812641100197907245595365658334346794440688688733639690757392587651440347730207766164898055668627193320724234981919565341297132070959431982120728475838776598799851510367835030735721338837724927565104896620263942818584169918116577361358952649991282993464784205114028942518682744660086038059325822492938630487763037092390801295899608275788487693669223137424290541701059693447437955875440266367278697674175110294035054408082721359488979714327319442399523817648292221877515581150341153808442875660208334382309626317326263591461065430774301949749110972726927001922759242418380049540797960178198610240875875677936558943057440308200279052900220411500508758232966875247255616569163249432051439549764945565770760075925474572018611696423986094837978739741822172320298675070813663875525522324896367006086633684524832611693051619306537624521174702315312359521022684525831402586684631992861627314919727786913412875295940638562518003369393765205131167746906143139271689927655203316091545309345457607903544434202606108100934203002961420323931155529953469551584554480708282871741059182107885022091802236163960004483700918147203790121863601327414551785728059768928616363634059068909245328139140891122019981404785489631572866715527691362424255760290676218679626017670520247229417404389471470970204174072484494197696861325535633471150109001858017837504955483023202578143831309531886708766899844264241486920849482455492245016906386442157820561152955557268649579655039453918663631081410122630685687695824548339128775087742239073502615048144269545787832817517892120599668773274266793183346170010055929949929067837207300221101978410500192135059045322386306127002881862460937987534212172645373558640502828715310801972118353025717882985642277989872709553067792195625722698391247021023471784699132572178639942544623866677554697489872159102179584952541256306588451524207307392489245001685714533515701275093235422462279167586727246975916750597276762673138620782429478396188044272692056181067541182069149048558714739759556110650849257502372453028966998540173373914405149229393676097534345706395876656313188918539521284951160667751533207655958839690607518622022432214948958063706075896894341962722303035813658359515541475797505809611535426637613113666779770547542947773571279143804072513493872292342022732771676941971767494784408198521553710897963670327757568750466986958990771588604997300195263396129105012038616481247467199965461167028243534082119314321607070425775313964996505574960002365458376524313834866453723178137968965527193764614235480201293121118110632764923024240892007637131128117447205298857841852416122870125353230396520641636435026749479479235220478833024362875360617587864830256757248693373633139406860276725175068819243340178782880294172202016382487781708283241959678028633031785855964443691905304793065075423119806945073289589385571959303590124851254694494311361969846114077343007593510288722687455394439216243084355470757939887582663441923615685161318538650265773625416032122491688361402154279826808143162889746661304472483361422962634712216720218888073018557224940997565899750863079379453151902391858739938599449206930542783186211173849824069141248596555969706968150483067617314549101807488702255858103227329874948255782989927344393586692082432138369586716330643633351165848699771992772435923152612696789140277277017139941552375238039013620216187899646736991530403073960581433481186527301258290645913336219075970511312159615384402715777019006801933440526125424894410754008193501289128506764155702597601478889875184034076087775997728023131928460183012627492135195080532826472789407726803960450139971782358500984668704930566339374870120134155508618837621360347452544778110125362109348271477561375951322982223141530872749934707120543257620762921977856329848620476421318397082932694300231342672172716305575387740329084839811509834966273991463104887182460710993067528443201829147085759292832678429709551286671683572958453331469015927679372198100160393596037732268307327949566440128547339119064457298080040459391449501805079041151641109884600761015170146815473882647222077336678203792447326664037850691908210618845183771997623575819995073874864711649805241497768129112831081995234820666116910507368051630054142571735284163200325952616889566858850473956788278203697285229348281991082949231691695209217899864637459158951587759057426505650476930163092920266099436623167716172742606262850406329335934853905727001114215334351113535445935383487657041368009078771183462422701739001563591315962119780135279679404419304586455040425085399716416282354160211293484790657657645477077612895990157916171060446820471756139766341153503910394592526460223900716024461893439804437310750856539860242911567115770273398590083237727739711993362419308105893736558307783313618556282770496539410341854645051615543837284388683348957027884288445846584600113525677267526032570278650726726903476412420463729296261685029945505136392072572647636389185641663120710853077778594015141255254639331913631035169302970676165119445058220087706071207960285291223701135677345862339518519198515038697034794650152643415606739897303386257185286139122974101472519602451286527430582209189064476201879000492650251568574439815805553921255279310934295232589457877241438720190463340994769722035061686941296673084150486543869569847966258469808604949372405114163824470316341950021610740081541589869597811025179774798552257633498602751171038375696552583631393247198410089217756832191115103043624163222704790610363135925837605670192376722793164036601898279647262814286127616430119863500192302113126678201330531971346770423986933645762667167967369087980837899964593087173193106276095064515394849322613244261142706425842896903017102349506040072752998759569106702851226232483732059517895934954677256490300191138638676756234654617279543711520525130636609101785223415166614496270982915495820160970190964594494689665911509574825944449014090945851746997084141765634291375207384189126419173680047829882500310018978379902520949352805733404839380553163240108918076168585220803405071863469861878624285237646755255552318216456503535664221461181360473192629070458911520289518905416956771933159309869112549182523619583136638054999013177044779756657314710589789409985901761272286781179305670493547083257902675345563897843035165364748298434708934813937688970365566177321571470810990248460233095074035005660655026996642601314000588419793618764094985601561597107861717755135803110145168802510512600597934566767582774278874135393044435470220824924961950168507238975663641242635029054317004838600959278739726428320901200653589158993678388849585851734891833890297635139463548554586792067122713790391381223780726668622307385419347715693032231507551842136952239019458494225045191935737067512282663473010968618210105717580954225829453507410852787646136401696983601640668620459994375836219325722763213527391344418433952957839451133212213271677681442356803620665617038986011300226736565739239974609092219188988895869471169358744415392002043365139541808355387454858401043781328036454048247131662948035830006472057352266553364768579422950738088190136823606341523224946135887236485454556556996518154976308927069919634667211693803049233729934052908159779113105282554333816974790241809271670936329389571470368046633085489674450179845615872230874534490443992993783833738782558305021600440402676151304054194560916761416441419650701422697833012162804015615251542088374509705977844522996861527946500538278532634739939552265310960679598560589403794489665513202315170438539072720485126399173101670441090736869395970404057261995400359175976513328260788072762758721474637606201979224993970152753833637351904612395006486999405472183552735381544413240870292010948745273726995047407727483860910917042214562811437644511502528130618186334306547277047064871315410314356622847626791952880049969662918424912280784395398570202276162268366981841771686620150544418224275814795079251459974497468107881303958328521505248736270288775447782602190687082208601867026140561622111275132943924937823900635460047708316159108830741798036781432954747305497338422033013343291101939419842814142202189280153493984863266795252472047868331493246247462504483413363166009574810874610437694669434759315967252551464734641372969721843492130609442021321030389945941621192639880404120712099594025080010376953847853687226239392140871901339493665912593586264710329978325228338749844252708342908593561885507584491268058466395589017184466558694820282416728483587893489420002814001039200825620381209812436056439017031512247708284812289617962080482249063477497881190690114919851276788603639137493121654772679164609747560288536723657647181129375633995588091636944848565297341085819419502387147808165666380673501651010833744307209392587245587997783312000781622121096794658467843200481178200958236786250104857602019664648234421566251065840383008015233150971228899458212367923303277882557818423841642227862259464656265277913423282560186168630132307165045166493905729905770655555265866751812952373923414983870497768549746159794832811092160209457429464823566327856287806680574983758473372366709632568186582832147925409958278296438229396901280610437868714405442779046230829181928769624348338524412405622232144055497872182054486234867091122262178037539661979347365269812981499924045199297679982726808741400258767616368226868367616663273668747311413141749229503879045725454105286455797372216215299162313149732645389856998565198428682740612440405392733872513665123393595797084368087912706918243257385804159783846673513185724102239457334878425991362475632145509489552637434360677007302033389807702460864675052250053988020199124510143766529717705679859008383067421270287727066581159166361498438724269213141906151478594971011497802151587015208869945827423410213521640029163896800104091545005877170160669941394459258436440261856273139961435801545509819571805348079162398618573735494887573191648465319987607039621156177307615477560563616949596161228599533652476748892817043375321767017659948067988225124780458917707117082494987392308075832475552022427209712085334944584111090294553965049773993305512719078971770053314086510529328714055110045024906703422306813806492463223214668060270890461198305642217231864642051747601622843233444291236336157442895322711260465439172750234164920881745136824332187636374251567544667903765410858307797339592534795433826134524774368384792486321338277347896636146762049889840753510554408341009548451640358412252181343744598463584673535294885665131579003782503052745592630552341450291165554822830739605686958796482639272852478444271252132261184688762258734385000977953437302621342695915906365839585577901659656437385451946620603167715121441476492582373635573145575205535811622649115296647031519390016507641844489883679749485625030298323290643411666864106834867358813992420119721495240266958772770156153449422732423588229011114075088444821828831248901154464536674545687056589273098058142029615143532612236295895578659749795686027180839226043678442315896486464637492822889962435365409936867156646149472013935877887212982070617061109898065773820209085971600505380351599173214238333266770342612721721808624084301454554715295694952932449511689785321515257294215670413297300555885845978644512023833974905427034460857753133845641653760085066592561045068899240991345244832354050942961685629500175960790750687313832693871722856315758990323574597031296746246323419913174833531153437004516109331206517378320577480124287890472454544410319238180684474502009132970322239824476826056643889593258127607081151314648125419201317790449090619617155524545055012295683525769480761583490695194200805241181725224271693859522005907646060084647918740433815114471862954141651347698928432985760282001071273072835568335909066504655680413876518233962969932958518064281741201162306366449344992896059207388846487873180550367881451277075451175818569555305472800750598526866663774042137901259821164737686449378861888668645238063471663068489806536627668850666114723569693975282066500813906939044676162226725349916640302944841669401491836007139955810276476391771165160613975440234081950273388891161988796870856803685653376899989809479949674355660384886845305124385327428200661792882209765100962316874918121190846893670451146762293492701100503440785515028787605546301856503678747989886339679454303388403274840892812723059965730478514876112939161824681810725772102976804566676656176063988906153941666700362835995429944296569658889196755201599611900075841779775694190240982340466300961340110268007884771254350253267132499249935751009116499523774777224526410373228959391583901853670010255445939963219147703651596693886479881929559605224235481038654913551033434947381491706356530041475584022240623012776454499705009281380585941482816458945097793928124229062179300052913828955909239285708836463690959203771297071537319463683065283116210768696255758268060890025534719731858704649201268455993283065333805537632375973975215048106086870501891412733203369115304138338947547193194071133068652678549785058111809451487334003121510913575873093233593794011722245637950260251102184179191534834350874965488580853455275668838567042170502816217195879952045805208134061945773359355935183444296208147689970545126017133298893943451478145437346548255777457590257742458936944877759584966235656353050591270784003675807755964005678875707624960670357945188715427032572718742727125797867502423744207104953652881607829306137347657210251185904272098262239191923102125736341844481769055335124268824981739900156346158269650971900199824617091719178626277424093363181533244188352338288967262632076367879512589616319681433125169500419658066247429647750279103052111506589111628323627571041759610934856578343155282046227691004563425047181839606452603973401780815695681276129052767246267492837008692140989388179123768666299772692375037180102736673473940009035435197129448561393357545120975786873065306453139605181809008623009464986973446557806067394355837329362562693436547980215272956720978097111044199187000932064742333703852888304289820047070209305123160751369183114331055532446858068330360915806674980238653799991398433662017361855242980686298447887312216118194061346837400639292547132626725018423280503886520297676300492684343761583135729618517352826458835138368346852184330160944500272906968054237396700552919708600598578998935460725097425626643871852689956759924268604387255405827962646356978820710530520653103033187524742941699494408821487208204936447391621860947378805628463615633174135371415513364398753760772387437691199802514648559119622089640563351735212712389412590942165237578874172091694900324108001427609493621449234000927571751834695318761950607700294782747234618361273559087396384833011975062233200578783275579251503406633607344181196252605720868154225282371172605525834804532391777850810819415115712120533024902923916876125048968973380325058684269760509456711366707430521264490053609656814275978378633635777108920405407018528209809454146281246098477308402377371024039392506128429395289505691932742785852740550583380643495558391723498880924042285649801821724397308116520334184678007314874872437830951436995336999544985376237734300089811610049888969134199017329296574127252509182448502663764970180193914030671473889737688047227780484599450743705156457531778821345255666825623372204299364896345000663099924839810405482992618652381994966190576193532582965779022097118821794176465556205799006091843058691134771721313622381569067069497274176815228272115803398861045384151994751194176921179665350731292667926712618908943284014721066552257911853130151101204091947446814843004295980238591843909552032811680794454836018051098532893713529427321458960043622920956526759816400883296148096196837041990143797632170258983603680502898593007342634366030678635257799869928361142880968663130004277296048338644044298093980270839752858793970603202990251573446384281217270754109423526780183157923510143957458338800177312185878670688738592929483164563087799934929759022788518496145058438699129660237429590137736398061707623178400591197930062183796160488338398856071823582585337630794007277285699934136730604703738706720897403303756811057250342947533960540026434839273382192373182736869177310692818226729171556809215691359107405296093716001600307590380123864483185051932634441542341639491141402209243051330785400923841929570472220309311969923413505191988743448409873814751900514374511083849818484985365150587309924049131559419237608821105201769258035185883232245046931452197846434872452112434424840111847994490223691555322739273826394999833384149595821029257214851599700544957622846789828468792502167424612958763587022948400212828160876892537050700337640894741509064779898497305614924046483943107172175436203318525658938196194673234070438855640563556197276549854235835558267609940266280154568783588334671479514574129862105373014398815640036712048675685235805374144356610914419333998893854387864174729255092075106491901342091861050977211979038927950847470589672032816152508181442009806685555270408133576798332523295810219940692526670409266864831787863407963772561675158638532999843931878957451548738941263951152652549298577341964247743834934815791620605714317877747116064616428619570336134325248420348533106651170486641246897566638132056017708833879788220615154748387935700595877385947842185650313914886496198079654060698874334971451587718300540900059892458793817858166489916410251668910040391305194322520439675563732061560846914356958263983337994268262695537067452951985794780218239531425603664810578048408451653284206096235271473746618385589426627718450171393042215822804147610870127446267246951589873534539112274988061784211711259395389140374689258732238710543605333958085665727910544437394649312709606582600426853222410313569533540149389144452232558127557608993142779284840813326653634296326744686946789848769556060222105745797587610432411120689084617857704257806294928614753482826827220407658865165110016362128213706072082700027319300248620192774216402039048367938771431196441045969424868974144426680778034296786644157618823867310171939299206352041797529844098700725396776672132335208293886893748448035372874713515153534367344083639652198826570648177466783683270724236809738991238623549317786895455340860860640305953416902356679836048916202242199602580819153108401671617120440771063700899118232500861659384003885078510488158306895724991365251996863527318795044679798083827031197573492784031203023829149268850176662737481277613919275896026511609004792893147320533170422656747519908472157297095830930905967730509525356587009057859981281008496758707781304803470921871198195256582769454904782487413504395253041632705624987990550749983009526857558167326619182708535873152958899419198361391067488079920560241625457599499359282240570802381580228538316821749038841276645080749417983849259328813138099265835897300869199401424901694076300636113202509237809348316618137123157467886348956699761639778401830150892183843023078376810268444793658519784649238092201878114538984226653871210555825191420393006929553765539451028677247769463062051554062448369618151668518635711515390281214967874212418026752434977725541956917585246370827534934769564545828341945417988690911027030000675846452092620363822804852029485739683015691861986404461294413080482173133181520834505609807391400999788015663859452881037104444759237922055295781434934059056264703005461186367253039081710766130127223190971616710980973407939616485862592550006815317989173911441767854801068310302025705866172728112553411207471052197738079397647138918201713507960609229434330646992649142808319077567648061154329049386852537870766491797308022983037076493767403734963092537489757545807193765638798739075110477819892383605914702587777499381088049887201021065338866581657347760574829160888534647114891321483167093167475566819118586442207119534926740751300660952896372513239425885044564552442669639516741819238066985282795540161634310049139014324646819131197311781201839977507324173360882717943968576846547729072146166702618127513110548184795379784309117926744888128358471334081486455248494731190431477258189552345025132944241462375975274425550976002442117858816107066501079912620337832399503534061318449188503662194385638946023551029322559377056351405422291230349638383289709911170780302624063847939920948159230192644551796115965040815683926285458610652677232364604979820731781372909384480149863237762223774679622453779806534640041934778130322437990835298050620251740953170493358443290203816164682058530405752627751806897381336075754718359609049940384932151226590677152889293325987684321582868714496562935404882276829094857361383930341647084879259137661467533056050177776127586739239514976120178322629190560228507756776115488883815258582750095192661952146523850867212412477740154976371323543021606434061344555419913706033103325894178038070681409418250826611632348371889894820927551604373678229790457827843215642084567172956548902880517278122149768158338291127231690390425822002561838211327865134407257102375612349265089942752558024812996234021250492139217275095951173122050074528133150538071151893117805131128753415132205594871704974014921400601592955088531618015567730902424339719763425218347680311401319812927381785332166639406299402401564534487302956256448488219947454744106688820388229923249737220953641495587991479675739900679042986189954807361225962643641480539134332095182123727745542794707759449332063409699241409362751157314206629894715268012838340285911669188473925999970007861627366917238000879532796816292051003400141316412913614548550911657162047142748903326195978129028136197770893708333231206837467080177523228174233615596283611111963601394016783627302583281349696804861394233390431021900130241717232002695601287324664535318140464314903037523387722380849713957569548627579529240135956252750676734103695075242356496697648664182830330907713685598494374633683168752670780431140564981718859483556130301251873616379601362776014911892379341487208573637248891084493099791952052320102646928851825181010623567293840462166349241004690511325062948419285111042395262777956723196062045255379277637165200105400950112986767075925559251489247868302575970897175463102271930441638359860398940877700705995499318198221245142174268637886781449830006926250640853685482247395426650815952747657915784967258236375204831905151967793268911869334587811702576151220978174001165729240519366534164788232362618586125176274813109187708676600506168398364757390666707067212621787709918513971065152588758226352727965877899136934881237849781302128623542584836533608443268207708027857722119544543089648652331483023695042524930845601895243466213393842416126952853667901561529659322417166472834079189150861049334922558603704407214755143519515087793813776305372918237168908611853207097373353956427101542083929221168987050733972930036973787403499693109804155754982144327394224857553198313215907138275046751530058949890891909414277306708530033971701113677031313405354983986545542089498738694824117044442444426020832650526100546437980215039598553725384057222016229175976104125297177236328126855102450907549728435286558702679155206907065335988315118846876973031475760905076121078049126146536838830392865115043314175664749388245442121074862126362083105547171299198700286383414298763263977340162310272453236452707537251014346006646226839008950458544226633164397977990953461149108701113168020402272337599113445242742946145833440882910186064980199169359757148827999871200379357828085278346090171673863190649101387933520987739309674306063813139898062520669103696011200226553888651942501606687599723691799564237412549255105984890242633441094320902397123331743496791260136678626273184859944806448943474807824140059401042301249597074988123533977946064020797729827033480849862210300866248826650583076235334305272177789475890993317299156901798377862303059588226382497608524687356924780080278770717326322215965583552896834781793761906747902062586200555043772156357043637161260134631851090688158897368657011651028688797379738138578210421138707855164556743187745736231945239743111350047689302639628365552402057377082275167371119744420557323372364900576531796775459644495893261937599661789533395781669844202498112127455379762476364302817275609036123123139432283803857919284272321285358601655175846690902568129325885193318903153676804365205510505413612945335123213573907300224362411627731466515031037944632447281644543718192566936172989675826578746132551057593228662516639046663504747677765816583421131718107427097091641033700892795867407366076516822290093529201615287574086453699790428254604237793852043676159272080087939359160028012326738811962764026273706860846960488668400450229375825017784343543485372227859811900533159118065547068134834383158786231778536470521927630896000513362595087427187295900948363148532681086058098676469539710335398964838612883971994289083637909415029646608954298012926682605655691585453679813396223490472133054759510701655748604978987636857121385515418242901987612168270877223608509388386280595310725145712387646255502296098210748704147170090710610356754545898860608288894949146526596621290020812610752622542057777921290348553779688399857328766730848461176101328283491462646777829932603152165333818282227863620503934701994424062641573633038415219785995186975002747090501772142030240910432444052491979273192249159892610601425906260235062144268674954312483017981564508004215600508759040497806934988141730582693717611135969977207858301131261396700416040028153337462286119122952332683488657217958027093868406902205706731785003641647517964469016108486378361091587035455020510020537893663222110722110085283116568752323822079146235667945504556040863294070921538642450833886642055794599555020688940829710958953151775857550942373576053380889106687347421551707263551063223937314784170792934446585986089581185201692725949247084870763087970741341559862087275209338812264712755359053782642499484275514619914229925308594853971627590238377948747584443777617935023673756394085899598986385081359969356615964132383185284728718679821650350518336155635028775951811946668793806415856456427779904332225986318848160234321281653532213404977611862972512673128554563303113199964982642113651345497724038217035696787334502677142872130529572389626062793332466379604586777895631552769230422218261187521393120380858018750380932575304982828705122010365373933680338395993900501013812618776282146621044421170634601255165515839205354576976196133928379145697817445938780245967816437732969844688557620808996711389257656695534596064076589731139050941454641767002841390041267528930281470728823285771257355625603086965494043406391857607771647134365185549611938969284162534153805537036972224813332248819947159490413234252366620369431538581641554410367367382800043463968348860973185363654583694383785055123681631258243307980669574280927563379336439837781469270199549015882552406022249713032883124550717306006358483664208210785875172782152513115929666981244945882946822169973728193487810424733014890837377887031007250474682930402879538596611674936105750708224413361694149969177304881556656894449388647379741209318510040268563944144007245557955724339666106452320977340734347832708351619531501803041261188806544459978175305545669458426971484748893780715214042605806637838005144335567537545525325141676566675795273044913044801507296198247905941500555104200421330525258411047836186820704323210769446542866571415898329067193911492037652195647261708069966940228330236817655863072046459508986597618966029175739507949983343804703735139950518723804239374748616543440011840687446670825898094732140437084114605848257896469208023944782016373732836253342840761520963059852253595628671474454076325992853005922264284699012152769577109496424894245225843999788599096944321288133629619993567732649009624761067107782631916524096438713186289599225479505742875904946351479871489297179040167693960131725176375169855734950933959883160087491319550717756837323664445524088205311929610356046715455131680005130411278207764499223971538879314429743927802783895810636547437967741273193044418383104846492100545043280904364868187653069939429477034219652104260366638100845585987767235533695511703946998276808038066752763586045100342660253684088368373764093474745922648788174333786574723826354402750491718328901362234560868367697511900926601425180160016805893257181631048762988795379534948442611986818351622357138114131784688257689182564470225344746881109460831867081472152424989342652167090052846977443232056071985817546427411771489096368979545135785460651064797739565539127839623074302382130448614735826302771013990107964059544116035775528574584737459617305116894298590049342349978245136763671008478564689508257617531739793850922027780346132105750246957664264806451883607101387539015096107231292620522904860744558537062495906536384219413829870607204672474880583718199917054162340787838247464511445504547134862674209333114698593253631774968955191282848760964393815503131546964843495643464120711952852207185057401334801760283459280130904526065994204683913023750244902893387661833783653516909688071338654373218972257175666881627179233126758095260304128979038041335144514038106362767264144771312473956497816420560753938483780953142270701388610869855467953118943052583682321008076648263327237482797780331039248869072152157590891752149105878537941062693630619351632238456646389208571290996272856271022761240116327129986302207156918915641286385052280156059547566948954366937859759372404910705397097706963648915757643584981711833691546039610637380550584461174966688753919288311436245089483307008253720103256505779152644057279750655608228899432945200100453910929833146113256255983415734734857674485999271738403493469935360356151777790595469841165493507880661033516270987657940673384196095887818319816288076613418126093620984986846289198612119283219988539872908799554958079032990853365197285153729838490391175898223765708162270276110293124825381470384007995322838304030890886122750846569995467749730350985377512359208239061143462505676940274275023219159723432669006092434682499216337220974789117988650958551393387340231043932932293652667779393736558835143230654537214326992034419770676253704267185166948570371171487635337526302055642019412703123374718458903753423420027604067759949449588553331474352051626847128702205285428641190975409822246848438333738639703825355466133855587231183624902109360921715706879362154816358758548420512606558942216291482378771243745574736009788837525906051459733692862533718687791862752039856007823470639499977054418907829636032610136760961027131829234139597223836811068117117691900056099158462484764958789050023438985741853171475693896040850801865099906333079342021253951544507108776119248260779057873692345202833347184590668003918834729143854018844823710777473354032974793295121573356449398414127018163974346589955856665550092759857764506936335370313261450297641626815720261130284244741385932296324952864499946034077440344109184143246524717301293141446112812361445846366528788368175476681315855986160967354226753482391378753250594617279060208813644735747490778699292870921069086640598226288485858604131186195739558130559793527532189458786206657936449989300698873489613653708767294792854404227146914639974798818673733779568195933832233461232062166347671018340966980493947598652105653995373506158244249285348535799499786474869414058593007887398498846818038596654272844680897997734491747225280372681464049602305376511920505471815003873265621440999839866316207430641417112205778229534620214595306661380378454482749187647721392684406577519376009018065854101296349717069126365935961979473901117471226899435693708162742274998876296554345541405672143445046035223168415188601375862300749005645515762444500259378394625994634865885630914918347180513293471839307822010612287550418853524782790960482874623886687956906754745801617208739489936412111598492597654481407029874542112995206132015738924787445582628270354732367421664124494858161894146966284127857968295693917571091179577304743572094127935441503617981226532494857372122150588988171782992120316637828635304662367291140782047037677148514103549380169804906274486924320127093961087948114356430138455072988243922040472231094530337269760020767161491643967663559225346623866540822829175613224351291600227707828922995902721422775191397271032010536606448216803941422793697232180064126665358302977289558453005269536906481663362176715845664452421486017567206131634302663357086881629780390612756595290326742063490070117467387313202376805161876853788790251794259987376295466524079860615452336384896348090949695338940036571688255084582895645916318823676752115657754494351365248179752343781470680186301005793223159652591567885081816121343157552327308374071387105765504441553683457540676686072980849926711745736323335798173618848582699120419539222439216771279105966860055525779502209019675380369325144982082338780495395978364828765424775829262892291826031236080257409201090699976557714734888319157760976142814797168575131446074985790550281291730006183243209733223098195698706387844457966207076537778027891258755620656658102984308909341308642203002560056100751341850424312778962439807241049065593469578315680404201616320852051501959875443575871351861036275840583651679954134938757984349888799516342873563110891389789632197464934078706413340297614489245835143380943231889119275951655686399712854203419824767882779120315581317674204437008653554193062285035594630879946487153455039357360696936132598368324498607112371995742601149308097470766797329628207493969412664918560682885065413489576210312602793330882951674070896066299664784578133630983818151507934545549159120961186062521697774054157961275846747054492822284552338577320585129424805633759033902000954109604662530428791590313637468355290505055105650074079550048229906987010846610565900392819092830185190524355773868939001290601681862565739315253489099232868389533315802784748370783413525045633943148069180512871121530634205235859105807307367989397585696355987869517988159873917970107317703536837068217274769939746670109187595644699198703498228569763180369915309476597043406394018547607780443901102710572220189865211984052972121735242449376010636466353283552700760358718423826769156981574799714207925384455764928543734914002106072668472480347019344861994347562012349423643494176761333249484213586925545219870567409218711343823888503423301080281171340703116445883172774691927017285216240057416110777501680829844135777434362331597998253654903895963541855195227339429696348710237736720276398911630807178002859359689388237804021941865007656146743166564131763112874043724395238089389089847560284897030919833804477367967883369730959868581691507891571731629055892341521463355247370763502096229208595188927138606095181169511777915657047968156496606825329273699686529309013913557917753167962395624678599878414462777849433010862559360143261540280122989083385966828771823301347894205758372579257846760051924293134191677884812652158144794882108167151734820242315776251964223056180618690397529513986241047638959464106412586533967285756723174016519689873018179393009787476918541448805954094589659608163004898677986438845425941414444856042390548973989434611644564613127076124373108889103894355830317515247932613755932621515113429079724402642641151947605956985611216958549093053672153259956424186555037656939997993423569834371378657974378837895503463809423918307853344404108105772608859023973452301357855231968255699761264030744879930948802120488488569819407488936306797052904425186895150777090141208084279767089157877350934712540714138941741592171680399908863874775043224764223018690690838303978493226740519462435648775797698916780793175129078869861825391495670456920234664802829574656317807742676950543999904851133479766372057283921773771994274123697080533697583116361923990250292339742892790234186982591262939334201899968777259031874200739240669838110249595630225056440156212177440325836891406814252262014189286427901417877621766653262375207976103091842737463790643970516832669640395354426705296076360462435850424179294641991597993369833777446411863132599249395449147821714596828708472100423350159200744915658860543577251702313014720979622407690690730983588489798355967121103149489775878330162019095630728978786426860208686022550660344663084529952755382476348095568583657083526387277202904186719825781936849132595064316101664517505231567852402163045007202944323638695779179510975076612547449283184486050734169301876480300216242848666540890453331027019265081704013474209493986351219778481609217682908926798665751362519276824903691693348654398970584358224797572545975059035947593302687214117711429022056173303339056057029964096706508677966896530505949145965644996558306455700753848503457967498301460016882039443646678516043807365359809460973356361970231285856774483380311423077109806280883468552158876103809945889732084330184233103576992859814498864586101460022656155550753620823407349759073448303267919537694214542631398113930040133320326295503484926082640667473807447317955613034233642584154761219028236242449900829501695021468922791556147276977328769723855693313393195327626643804163163831067203125297144716054199085966131627000655172882434188453404915237210216641242471411344000094415244225085947964706188644725878037936319551928777208157774994631429071569361344207104606541402980515050526862186206151562210552592492073550776760440990689364397583164364924588776651268135502944735923325550063870808969667283262648302192790862304843050689671062740707177810663744548911939811488702296256113811022296218714893296130112968242042516649379408712620981428985974394896819962440582669422917130774408490565629352034611117870212369516081016362422752964892882412155197690692187505954764350600124955378658752141497642850294451973337009386339214516664121036949090888694230549940096533985351297993797724644671170326094323331005646079586585497296700760155592107300887186023851953672787156875410497101108857569931306116008931584079100475896798760793203543800004473107820639307591690860681199751516684716390637624065241196006647938219311258325475298623286050991327063160053456611954615591138876662341697833035235793026905473235126899271419996679038638724890382111513708059018273441253423714056675981173433299646086712921825461367530464328169277785615780194083026938925733888769963365746033373950332890981362747044501470234057125787128652224633360996269327969093863974986022031372360881483701131658485896774428187101819296862567434375692613811549150991635454588510431115983674961024709970461180957595982745556971858714153532593266166688999750947308111595576606576395047930682592554035438504435766172102345917221037984955384905161976016018067711550219625949118900713687581834735771800050262661805662203759010145138059672554664940315774396528578684884757763315723784203608496726448555598883311777017709002883493609815496736029060907526485084896120597728200793868592886382761049773515833930603727743452092772102187084844088709079728373281243624671657496719780235727813459950987423913115345801459472375970471884787147723439764668808518283498273789944324250211616270232502333206006608964572902145158986572430286520345133486990687789800022986655519715634616768800408679342591337967345004346565114801927164984234701644758481980609238769380083798657276281638031469700487622201791080488975448203231282383634821520139163398894237824764163235617256786523563598904900174815446391499122474278058842550360961900937932361732577693411820999380577086540030974857280775768001925540762574273643776486676493302385111684400943504048029907955909498942809967893820398993017416170900954919600480930571025063659615753379037631888366104919349354647026670323630390282931689069644274496964807405834351888062992488721007407658663972701606544575972546684151846796280758608867325824295228542830176875072029742685102145209401442246875575949170680501936162767993077870082583420430053380847765116672948539294406357315205858327103825396967716001589943649141715443053367981608587837587125483837962586927337931919417361639424757303538519422195186306209781275309503124438419620987765865226243376491485176272700075433409867676511019785510633881226434580549390856941599927037246706616006014726362353211436449314939503568742908141269919919893920612632438249041126878977401141488454326942139044812832788784598530192635047578728119901731692288954196749303376963838535145910663779838202968677687438148303150362018075915975478664877619632785205540809399206574305140811257840322657312468022845936472563544738091196732630840821047918992251367335491313412424304886257865699773569491364183424492345083428902608225819696661173988021560791881255840511343872195367750487647933579498106209620805955981173780903923025427883178483695277129863304814381138037907826930034484758312032060622347202385413924652763301513766475720054042661238994294212651701827003336521866303963360996994964073682650134426081408775133614224524193474234487826439173753490695944315978007883545830127951625001970203936973733365773061181408815967734919246323382086095590129848023768980404429693585467125102465011010194053240180004247677643903352719994142308059015963311922262560722491270053539254885315422243310002425607128601901898706714449997744225061946027043165191841548003525796732957914896819266697885720472698808149267631590059925307291013897935009328856057137702530025195655674351904509572181183146198578630109809099317420444940761016499424703398275107711627160962707610413486154916070208269527436791499281512475305505130818525720760929215825659034450170983185866476666152707958578911334742776513015504788312087744933109094718020819282103944920638638748952354575047054693855584840312925272324404970747190814277622311630132197103840594058902072633995210493426154950798372509070654253034991740373388167638805325113427570058779430700043631066711693086450040450394796881874922350203363717170650662039530919527401927695591982867644684672031466706679432158254057665342257621479166524556686774888858207952502314439207569754682968709571907439743621229456852715754548838302666287875074482937905556263771970732368778547545985051971729743200571943785676626095529371562269673854503561092760792169972454874060123013911733023027956323064311201792804992217650853106297283165939679220416398006025782143847431019001722104047747824118277956852940240820855945316348978971163776030252530389739904516949531768064510786773383858405171030323334072314564509027794145501164602984485792170058398586486144574231552236206434626673639212450644456255200069642206557555748908656538974493855537565726733307429899608183166274932053935064645892183539245036075187603498740196746932306754451044601704485564622858681639590072278255436595419224989728370751891551964209046704766100207636740151632874759465063287203356898283098896317379864808941994899095344344074673251130836249507407599972764097398679271825103384491429126709050997453211275347269913169536837154102095771135315847828572344409840479105841063205543230056241680801036744082358229594921521171364968763220450542923945316728980539813535739642671888099944510423939290723226804133574603975638408613071978650205355692308643418749718752315266660271924935927740443549542924672352044764547178511424829862328448735174395251791693029461377107303581260179427270141778973122783495711954782891207505371264378991802720997247267057948558514304156612392455759514015144789178363433496432994193386316997984894214558420947885660096757511231377540458988575349610839852083177799912984182110354304924072336112533668064403443930477121319353315046167359752219714019593611064178073089797690695826727034717764297301598677296638363445462402802458954793062323810406298335596089993436337408069073784789809755687029652960240983106009344982017407460537534069137208439774972528312651323385834669256647617773149526768236962482838048365938068873656627170576640008632409830752792991728804966180909471638160899420595333969436391957443032046448677318748980581753875382011096334948183443448263811900575920173166971299110054187474028343753915221115575141173854682689414766199281873400078096857774667215518132250283628552792597526440374551800172518200805803239246665579906431111611029289512947382437594977022550154710051990343892464960841333459779405692575825954176296788116999963298124731375771256167027402345891491204591930850540958792076008490129407081544262477722601501104998583264651736008956858692207712120294244798839019978196992989248068535586368838333504670937665507372604846409292855321345376175883599517734572894145838824321733583411272909423609985905644169589398439107846300553842418169577588144066091315976029898239967461033739117180454268745099186468915438637097208580869407976567586989008065363934627199396733357269231625386621812313948311910584998505857670955447803495169449004509813438011426803616105621868588328086333391357702286848009746474507942167729426928970768953753365091610900682615631722321843124157348724622343399957968400900839402557481826605505019793794300907323945486448585972545638822331869566434358286165015458914170373528544512111389568281172901901361230919390984442270657745424658703241611531628122116267127912016812075733570674008835324221555677874743002236389701289460545643248491818110566512686847138486172813540797628403112830043922372650343644639732351817460051063358051009527007787992901666156909464612813157110403610648932769819023391900880614721087885009697321415958121719819133141062452215128590382587571876341600412948377790344935481688564096125788816935796066742167888224278168950627369568122228235979176832906694206202920063072936020766349480655527968285260612689503692036587313558020731517995563342650963872923220614098559933392940677464675724890587772100662396739437994438894824816862954323985752086378796820270928753294342915229774834831049099171189980147741912985140002131732828144875111213024978473220748645219521931328335615537390202389593863698519205881282966055105097938320308841834554336142117315688294389267673471158115648958898496312035421975812503252374716901631621659961864549235844116450516621822754737307241122502686877188583717461606873066801136611751049199433853459985042420463477867558887901258777740071258366547490698946518397498236968079359933430028875622633354049699033009612447615955231739552175514010946601439534225110329631792116362310179052146485426325368039495077878171514071315785811229655866009286343050534460683032987915453074926521192092504199739484181260725522688632373299597069654464583343323790235525183426471196063692807656868279901357968724133333353127832709343507402639270985277732141940246848122518332252178856477622701115503971448439664809688644369749669567392727965672895443207533416677272829952892226874738873152840193961314656310949888334085332025721660815218794052630514887125126907975013917787802444387321180977714302299494957527376174606147766338313777699594315194246073976074740815217549245837374487496710798547429780973293374197826580439615388794070591768663932678374531900872342052681074677430985716921756802599753645192955699727161035439635715054165043189743705459120727730858449830257162387299197208865773265530378274584349038932387184765556223716794746674575907013943152910756618706155586058635511575455896971536953163905776889496321076389554352201957772267670071832394408323860791462841123741119540771048473686317402822119989545483705480511875713884522769842823649819783255181157703748416200426106647414798422256590665714356486249368836453605990214141423751110167674355527819915395931382670235070829376679927134333015704234681238957551732558110050602281161071347752321851265979986381545423466701232519997076703163490815959500963451177916080229365902299015031140569715953139019469708536672773079919452631871667684152069526678122469991680878163021114510674290621932790012168291573406245229098330256684580266344579974574965703541127980103719384824411337518127237943926194785885399460540260989967481180954393240255279155116054782847328693663178521550266794831825898252184968701986312565256778215608396341549117155017562678870890981771524012855474355578081371397891157918980189654879863753128554984008904321242049710340407756671509643210365496725473052766056321395777935983630580425934528960923384844695921504468817748744446289549601335973955940199043081018019006310636476871918629954509461845090643302047712061611302771064766231319821262244164857437478015516281744857591303514187917224238849655415959461162212451304455283069503895850512640684745968011270589611592759844306102104737125334541131288483449729307201782271221076580921107101607268570564823156651351167314051640540116281956670647847462342261507818700607643092550722123573555784906949425235865033262677614838811362474558540946717568393644304247046403374187845428429839692661148038198762656947362053391536682342659008353985194084564001886620416749654741993505610554171695764926005532185774664932263959192258721361836596656403541807167854643624832978151523979427491712552120167105207497718096773315302866243137478026081356639476742269877755250513369467698995991546423253020353984033575815233574066885886703265056159350411902993625525275972077441713441169416525246218798702871383998655827022890289747354910154624849307819808953283751004908839689155553615557279224878012923934739538824643630829130968415453414526805054042577591948986936010337049349302807101329298991439478661223014928948917890231933581609741061194574298556289460081578960056622184922849960880551821355108789808109729087977406618363762290778819070255262438498672891376681610502500983108930827820726460103670789691345196767889914204265460526149960484839326754243798622161241938555751399570419266107523823837309807527417625055504795851419752229918591978846396114537574977090828684019147252030095427748983873572953275348644000645942463313767267360201643051185530756709569890153650785567828962860732302575131646252226154607891294324151832129410830374207318070664490862648503555652463916332605817495130485806259516875726633441999510513076426072621103701559368548220986939719528711460509998836403366495389735349564198321234580453225314230937277077789846073138622689700491933342240065078936439659548393253187195820975561298045021373489737822548346924231066326934372426188844201573808343171411883816891371596172007885271416699759034361436601897921642127444941999433336197003967165691930793961913540324782701020674985894188474446933854342938855685662477040633377227745539746648762009075082828898765549561317140063873811516857910215786212736964345558665088221884955398901870496720406922422880038157631890858714104679691961303860008681733325106900986771073244507533220166905979000227286871121405506522612449319533467910529206578538949496307104556291781447880797913251576677330868170045214435954446380351463314555031328558041686899629553111342272145937345363609559528160553588747671145192051791731815082104752424531622250668744315592502308152180653977376590185492112993942734270600463760723446620643192069319012725924264871016901732368801171149608451219154267258099637501821079599424851782977434407483633046395488022906576383950638004255117504541859352941250914014934509188023963420886655289836324837495386008615495758941345941341314594838724608393662878554496497028528196138790065370645895134226298257995903833878598113626625715293582974689823845176309602786081977051898964680419971811389790029717613148801068318371718189790928246537166957585146158667593101975202368223838520496444029475812509381448792698246645863384908344600398335835675854978585610952542771388884007516642351017721177181141669345441375743817726395557066040506051112594538516426395720460562368121149291052211491847073863956345665879010330610894687991358475808708148131055346070049863636369187647322487273814502573693936457574540977241920090683971573461083817136024411126457327322856398485279187527502845447686337445744546996841629271839368830367278867905500087358845319368454341245387715733004721383240880614381282802915554929182419469744405702505963913097876925146600968433792115691219733670169851186644767533370433594060858436865293049220923741569091843575224017676579623203846654673612375385442914340954092330709626411453814491821080917292746405206324491334913651429810490846847568095296084454654126084466269960887996836279824305217048143716765303268224226844000168267413224973332197158428959215658108562254022817172990317823439471036312547101759041536048114282643652054387078805348623410021647044527657173214260756005609896013341401028927711812777301004540062553564109336633844913721693868547303728797731379817587768851724966079795518784183299675353925356181400176803970834435663598348986434854870857334488902881816881084230441117145446149981196317943067871290031227689217283748650155160317431672488579577372709455047617458482747811584685108371351120722630417149039311362013214623918587701945316741440275594634047684659417715263810048183519815026450400781258088685832434460885854742332437550168525479843214299701323140443215507350171459332087426980942301594229845091278691106470740331112956988623378647976962299954858154300174857428648536454197839253133257747518759721184483011536626250171006042886363018589763994214605605579880685125847869369328549005824836066961815078557758323540977271544444074738344710593114407164505712276811613880503224397328255810636072577645850474328800275959660972294575499257667314860885021529114754732382816861778475393226525310279523754193375626999920884554104161342822381671152219392166089926877285950314727256640577921950875071753014045531050284666730023792695637295348194840042665339398971659803174644928407974772452399781337204100939992844094177000612740372884159961704953971984462953442322421659530452446419139415818874458156720923679358737819070239168199023770277965444054768780012065158268752186656539206066426284139825824003233273860564553721378982728920811995221258469877036595875909051553889914289532386542015920935624805144421676215116808342440954107896062024692526193979329635884677260557799950581125781315108952708789480482335939861224901129087785397599922496550452777310945226154882020646776415011815707822862891162717439621681894131364829719071220433599154681885976956504528887885001054591052604659961628583617640491390222990673409627776302381290999291703930794918913414569577728161246278349161713521990527841059581874857428034839628351783655306410222030448536387634443386056323557424955844969393907378929043014086093773767445885511136383548111789554348077166512367037892284636483126965184651781929981790085533295991578458486465073262719381621360694474765918552516589870838428979795062624908678304721248419863499645937949491566856233551115208402439690592089703680318146990851298259493638234811492065785863096056719468093760584946521554836619303247771140129592735222851400311570176371736447696646219824670832229497721058085684240255459547246833548710980830394025864089603527361632174500745936877239119386912486613226519134979028910714576754756535392434083658266928449489562131584671985743798792719854358536614056705683893261870092504968554997724834603760506990398771650494511709743768969721314220995806522101523357750034580202194700984374496200248309663396994952838596194153910267719897815192361266381903076167928591912140262509329179291112880708465008999302761410195927085913671682803983884046969031512830668109801176309150727187642590375425137343373146524985162939154645824793233635492067292785099614865194370221299094823358810740984424950356109104290636587124331993174120033101208828516700408223508638608678153908408044700165244122011579081781336532861475025323007540172567170025321046966887599899407636612241448615612837013624210171702936574518086671781366091655671289561915823643992634995911524361277316481333244256727011425587831396547948635717287274025073869974809867486177264583611944661467536769776931789227838198235605939731154528296812209611993964126991636673100108874265953302818319242726885427070921637035901016280945876163171864832519069539477559971618959257360415585867323019871319445252583172505959454870603457491067239859119481216883770680244204589045200516253471810746624313229998806577295898076278446480691021084700769936089832534119141755694554674061358138710990379082366787978501387768494339632903153593176556823769519339026968944038367191273190898142123618055804461845972517808014477573393418407673694542901703249344848313319242194346304195695346117042893988454286252999283527163001026313102666112192995208567541609495473148252044064546545229087651136871836997626385578815724594818572007139730904687287811706842357128958257159761006686254446220244430275280106022828244015076703220059372287403553211761543387813200450042057766988499101731622968882736940033397058157108520938993694274285024919088335279655648036126536205081113364015156684301473328762039966567820649013003307705282227008788942577219787569652803950983394288596016503127590953463502421727373223099977358776892380723113703324237670440959904527644396243388444671004220094475464375504267277589417124920987115431968470461552241539791776161155643225740656091956344477341896680521890034754802986693921145625489641894862399694955404587729631957089879736572836856012098961801458586086115323282420152545164253400769365488364269808127268122092454356190238449073072619399478379008020567054869323984091958559897184133361068643355097196225293018116189824020987557689353519697194199410277778383228321743040687283208935414323021290256411075056650844687564614139345906836546014455183033505658018490024616254976760724120593318996588860124365742247582466194882945506931470658662778716140089063404954684434733041272638230284996985378575200093484341901719053532060269211737938205645803893134505634478016067792744294852386830692311840102972015638286825220473606689693742622740639265309823764413109337589170431545655479039172221563329953307675302368270705000749374503688804942822037351248887428142073002884402237973656705002767444124564978248074359228807026808040531444405380740657469848697528062162521747148942283980563041437143094566886919916162541237035802736646055412477961109548145203208111831441727715123267043422363988586723762284595558173208961801316474103878497560160382210999753357720762831420890669234250061691893844392264837866951239666582038760104754770886737185454156279064794874375115728579614513351274945349699401782072502987544675114214202362962424388219447372488785024210224139503704768417219281829500113164476869620595759754636755207779931387913106871598281852390010780450215187090908086967922401200280697375350932784835916300016425933478638318235215316755049853464124431250613866713238053302122684410942372627956839115870614138647359160616993216668275093256379663302217700571031910202320533020140512291011520742477413093231033351567034679635158168634064735118944288964007243422093936619068020826514291464726377017361721816060508896791948403177171447484488743812950995857651974395988712339336624038761492236826893256768097310157033949994378574002071177846887027640274809671769672388667845761426775493060292984633633874035365508991572917078645619287489069767491797827317637457023910754345139790965897962830405926104246588152951201927224139183149884761820524131904557375915794565510222728756090470834418974744147940650169647018046736355400600971811662306693969783815187576629817091827596087921036571527882589273871667996259561777358035625684997259235341405786518261625197351515800534786529799652008854548457446719361104332532106559929528383282007359715272151468542087114336889698257026501004255149824846137974774929304700972535113706953625038714293873650249018166555111272156937985629563306280650838912566292634695086393175886913911407410037561274480245167950571621383548055411177871323875949509066069282955766108428262924536847078099647572212461120790214024032633885784772052108635164804659850996793382244684210882714877984783191554781711075443566350086245538670917228589449632486097935360426641864145328737558365999637093524241470503890951872117060673645126453589573346701538716040732947751463374778569801700367745917596629428981574320240481855995679996354020659248791954960848882670755327703041293626317170603834159742898341383211401541074243579719734342071501824678634393846244961999458134836000556383210185597567943544230272148400322614073536834969883977617561824899328294783391272194500556401467855212362860183584466724971464712202059257625324207527145461682959136997095758825708621867156797392558195472284729659277354405159423593860709855003207820134145055072598755812059900065950613150964451772042800109996723194961639584315081580899288057860679986576676043316271689287020857274053346748615096473718116160188783914049835536930738253117239784249027259158875330325327196392838467229002189395540158296053260401066986892840803282493576160575401584761645586502022112337268602214439689805804249881768650158632918103862272788327437743364553067462446993531740175625136189846591214400462344760480905316162819850105663946446995134007289479156227200109386412192016725774965184889671780372460844758548273949958490512471046778873080758780663190487350930317900756410584948409749661437932562265616741098121491620934903080213270616161045155254710220176291700744577121536397185982713833230856873289186519078037736330879398778030582645353768647592497725528323568280017434146434715738431692040341192257193366748215031031004168406490883986491453124288303073632157402415582662020344750486860975661279139986493546382913831028594704284635194072760422701998607026016795783137903143125182384489135081445602694827649453489864786912582227474153901780440505525793183928260839234665326730551275491283264866095292298637504976349734211552576810650765590542351482071338967823176852676632602170482535607139052712752872942423919978659030712207063950231525456136607968275486053524104828087843430058996770714720305129776811848719768701791846361694859467930571795848423786668820761937030830181625726506181437991834312932094525491912866914706690888836483081028323942910708237817617222862622134028350565037653959546583163841646108020196703692713566713116561547505948291773715782818562704230791225963699676308412664962602049697038744801348346054432467636571295202840108763626935333680577429246238639204054697581927241820917070089325996628172597110160716944607768088940662488921810494999780893341926894759070273172927027172865162093019102786604912751292417308847428003744311990613553501126100901929776462399149228734335861653001879417248952661222355562618997932135283573574914064829068152803642752543084725660132215817171423754626336809946019533542201858278743326234215454291175222285151780375963979002595031396736679180639345735430161163222899315485587665623549657214137725946486728085954451004228283805644986758834239264643507349162072675835148911593544323013915953208391274486895226366089492185023032561806514631513613895267818362893276217921282516360112408965099677638341416513831653204198982487882620274956715652117909125515956461830402361776773457165540825125457550221713680692144777008325307832987437056558445009206131356034194745998862179933701014539232713533307752425403115257707775682074133603332303149220535936106973966835418943666623153636705822590082789080364740836493126103901118150535812318900847409766818026645707602781043206920120108202440098654204487744072375219905300529771411344943471393470008743248632346993399395335753286873045479169172757093623309071799552110723695247647202180190076575866284513813237076688814534326053838130097931257355926979487628779190217354867319398148379787061565709472867648885047965368181697628657632994320192229309978666929868107410765332688521783794272241663306194946719584046017172572328344978234434487213109610318476218000335096909765110942309349487790650074682449042889519158623461402911841218942108482964201265470128594528459271617419172862045727287773012046437333366897233674077901066285466724874001568134364776579342860248958622150332346802143680910023041325012481710323911584187901190153327294115575452129114674338488880278161465287300675662155334697582366375797925679899438609470531717416045848543766397263813779324322991550911527501901685211879705020241727566664111822482972731778461973709273820924499444041016681792202940766212128878600005425661982992646457106075173045093999617375891876810601258676627803999912281731738353881517688454842939880972948974043704441437324297805523489926697490931892976243250533019637800357844467905386732053282567572782326827624679089217601017110887807217570615879090766391529008701764538673776370171327618923863345010842682412224318488192455563293656281634331157942259793424684943103263983553173050343032079907771076079082353755801330852343826133638298836543760022762315537705311952327330941242609622858772908759954934274735016108338206763569404480578026903204712786900979942525095624862357086084289194344949074961566804901515702177808691886412131772857102385331547795365921449434242344231301075172259381061884468096847917141377024037583985567460535253448257376803324187817779305646150609886018884980490198676761765161639074802198043333697098924177608611819104018702614165791188756135947456877174110863635791335800044515360079843364722880473871620020802705570713927063803111419921411760993280400014268201876174955484831926154420848497609236715279289893375460413153538106266501516464574172936613587988236471323279685239968909880805459964675438526775575518322869640717584811633528885030170540716096767034560173455135642515409895714757559932208111496451861630049647601490012461481891512866198932465591418069508826273103821926294585538566669812922587238242279915459867185236058950461452151408849478722122426788795176208984629964349227056852230100230923431234816821171884254808247878889522874814089551796593480389444447856054121767598776358626436182258876505856637750384204908231530153834257238760991660629343149646483980904365015266019492351733535947296501870220038982922519309932117774240766564918636043269110510706950493021539269842330808377208016965973451093253526642644005747251320877148105169470095740529455467069533510264663557890062926423018517310817204727776867698962857957546163817675900089149030027490796270660148852255129314534571467523662347213613200641292613078745210230562601279833868003455273891149398484464445560397762272672144368527264653354584354024434048042488792534987838364098104708056055003652840405798935070590541904156434519663615405017409590343088928878446051273548916402547373116738490293619601634582448285539688184401529760023965422367690751737659817098487748596689174470429238056723735347710916431317709654448552003130309894741397939048115531824283018891010253556774351893804039585553376243882404862489112659589907401680359653496821062832907326753460848685618635844312573059074008630188276904100277164669079264178133761339052462117088204249550746199618656744537355036266691604107733430920089888037231529363099541678235897335105791126733167175585153504727680347744517641879873583693376605434463625725964380156046748065301045717855685962875938204532692558318129410178610932236213205053659822862723415884267517451173053046771632877260955312713538249816125657958649866970140087314515415684497048960640460376098295558558481647106331969981089094277488756588449649865022320401914441765443867403093223422471098736913976356757940920092394393890682936192437448713204704016581423278148150706787884199660501970349127059749083949740352918924955785778698766061203502309911617643879617137771787615556710009911217962839374464922409566999947116385563856472314491576381069524907495672436521969889937556068437710777024465090607639722436316805691802284862413169350969532825851704287459826718121493855978887466500122164338004118290215671515765940804412759246247059607746802145809736439557588545575173282215003761011262015578488072378655376120796920758339780892954522112800306464537323021296072084483858916390642342636458543474327480510324013033274958351381066592019912414117895883844383412675830685359447705179026969775088132833930342358363385059714594532562025979995405629255667534878136659055872648655485013268245120968217183631994239894756702770485432928481931930245154040490025825476009012029483352955511673541343560035617843110074016175406520355396890659008831979651643469828125610478567839662814825908177374848556179217464577804484575143305634981586877753666518979101601680198926806778356356292564002100718802803685651909308324467118608740317310878732732323971253817084793044986628685863839871689836504705649416563924720819117644618087955819513692056200718420430889775213126249886650392519118098876355949535247681481449839623986857000367035271133336643474608114740724828032635417355264834087338896255604110955665806469444024160265495027250540625108127914641407851906720334029920155035543209187404493848083012330239819457482944796195814455533579405698761162021979780491660731548276955182309380669322117486426498578689910736975033705022527844874500147304548444428734438062885396178785230266819576908037266907483101107595691886126322542664403217638546869020678166267166260474456069758207041074833063922239189614562476095546229057570261957270924374199510567254327516792916795499882423402722547376099250760055272512563618878810752667019508668744686218348247247901080799886397224342261243652328132305114750756601056061123516596599588736989439033791934764571632468454988575084499010416996489186899069724046843298807539684671878506080685065732527935660243070352469163130225618785522807147248141729453870822888396118466721734928340540248228575098046358398849536439407434129337508414174509597180738677629736968371079623636665584845750370056207013579857870999056023601719070985682381856274920997066726391910837868484210139275500747169544663097598085530034394560042902004363885413444861829573848470363833677266173302908338732390215380858310171846442337325181785691451355686321342154063958888924847656204964265703614687275869458694943809686472703763241319928637130118337232451281573223206576317812157934802187136140051287738110998824536646591318371194299534530873629238045028781687039361619036118253936389543141588281006309013642742625591360385529777331356759737524905815328551298219712528739572166269220675676091776690658762795425876157973309424287626249569414048225268751153087518611935296912734423784757209522760252475604038564248626262211200678560998140164109524065362308227089842925677022051992114356208985925743278567904802291744241023162228170897796398504942669239165833707047886080248454061668866607329756714775436460266207652815410298060107568480673995409723536184064086896656599702012596808298472295833085250690588437846221804007973758282359392648803880414330291111215537056104372492547054515914134456217168029681465435733595320116408015120694861063105433023260810794301078808958190787522703544944128446717534697839671746397048941936209690458774446677482457790772977130226140556423863586291815873234058870978552849434552962424999783644357651099137035713637708917061334187184366316883361751329611023665757732024029970406020891259935894580276846418043471224512284467284935239511406330750568609147704246843098258744129127106879139569426487249582535193313498600665240962659661372633321478577684272680903334231243915883994484720706296061280059436393199842575474955667420042499818031865538917992262766343186095463444400461667214271358687919165736978044015338846854840765805023269836671941729762476567825729777959026121777558772991417909886699744810310689219568246671351497727223191366342126513344535079092792253014546667047668075425288463777283091107259303316474025447679903793313776732260112645226445647368530106813049069410452791216026304494775731258475868281987445865845424765405999265291752951273864420045882961367782173635168780099488308352161556706918141291447771333814974793543475881063743841633381858778962215288628022995644020803868007486668405898766892214635214001346103058379270533960512619309897719624844228761456316534886859989712792712153193313288280569246627692445040182813509953122458880901876553040118784450831037991872780105496468415400825287133166960249137438784112517782191822747506266128788077493233501041970156135729011967232592937078310580114353525444874931066398352352507079742285221019226082167406663826899655965968738921954809626498195982278256897916194395594524200358765447695797741716918190715751758543969994283797388708473065129821611157719060309144011174611128995118935462596600172685925577659182501619842549275882604069969769676189489319183435731902832944411676011125073171570241028216771335685431563502000660345881203988848105405041290944908136673249046345333168345401682779876500369625870120089381909275918313822360391767480115714748450303208094257285936146911938198738533157157295723988789643059516604874308713904515965948749658669776194213119166757401883395101276485304354657658236017766819772490536701147471822480815490612295191139235848471855924917260205412862753889336472691639011426041406645077001830907038435256955664110543511508739775069656537813950682724105166437144002917633009976865332749834155242824087067064732990991728471089416689691047455910239547705689878806057485222145148238603466429975806175027296835954075703915871408995230817863202540739365762933648904204879141148213249785702512788541488284094177066455155144075685389592375345959195622990279104631529871636019944328616647713834741667949311739538668306560226518635492304268040603085645249526719785803284023362475253188653393220607551595414353304963896866460434417920425578595062599346460327829258577187642635505376557345495286962558295792177494536785207481315991394535069901437538419602032822820139337845186129299846161275860398318527741021270711254782146891417998602950586161545661221676056914252561886213411166002621550533922160578472776775484907972040582199307338885821015781739264530153929907002184652896924238931868553950523373729482191230050300299641464452352874712538027171494413834653021696167280136151070885055135361065537267137334162164380183023868843333829837256712219624860560067064248475606679119502129401951421045645503176519126994548789609047279866548793012750947998865090887827801860182917647702904480288298800020716867591117660569012805404037474962967869271071990053913686579087891086190951834084773928153985761234600096088278770866253150125142529701611912966748283156563146679106508231590853937704744894597999207680400420327793248310832681861506786521099770015846590807064508099700203526950355047031656596225529068712229867342638732218140070197888350892117489904434722948463230927582733922851832577596588017958022181171849720542149382325888658480242126991026327963498865761833335270730006656091515504683032587333553952461361545795890328887599563849326734485071369137369677568818263199989419199778238837995663037468866908263417126363901047860572030130850398647846843813516523131820413717676167990366089192100753513640740821942094005471467052854786058192880623339528815588068159205702434135167217535879290416262927939291750226624955316507736992046945308570217177142410923469626855196330548934169288727646886970253916669101081082931510593396955687803031877803541735235201303311763468298476570064388720905596919753768247211019036581772767199131718837503462172371646075323455838626868391081080091531663502628681443429862800015751710100745729294722522863121495044585711954871942149485137803182690868585612637596856145276943572342009332463212523202094892283255721405803935322582441963248846805142837167020278201775848128091016796616427689739678821390335394108037066438685458654676055442838764214939801543391560959441602380576432126363542791047755156241035104447779864923577464092009934510842411584891723316574735083251359030389019322143997170743863450255848920061390189588839835784498601109123699430088385986597883118926488601353787964679940005955439282093574382709684947747586184813969468722918828091384331944199969858188224675674786143666024235680865935814032280069049936725922386011090675383843745678497127502748788133635560843240327238546213512033619135776769566198185605185177178630072818400577389210104743377956853629562406657075776077130461393452930094674981270140219709588689295856176427663397170696802188782138259816464652085330152243224666898960578489687131875622584309872354989748986580909840273835313431251712134986465464204838809507313992472907248268212891314674761319729235469432070304932524677389547083353613449443145519779453837366772655875670925797078746734284015806536724878418681007870648537630064003511460348467520620494202209760925975164400041844462802588983010914092621451101057425263124409589941462488202585378503623993614912665377676046936945017181817741070031516369193607062848410486821495169366729922012821749006642064523719241091750239849104311566874283927284555996847959501963101643742615322622149070246910218703080498736906030985171517604279539733185857411172680426402068324829371062008953675459077927806803917344447299555885113801883577025831463936982585083521144122446112534399333387301542540105702079526942353360308868629432912940283812064112072096407466137803533228212442274099990206932717233050757286137812177993514622337025126132246720749976047684997091791106695344788154925502797881931443769529702104002856023841555685628589649824452281107954645078030644742673896571378603091958243518927303811570880006605744899942823249781276655484094262260851099262188618444381113445454292650999302241600809971317366820978936076920516385970989949339754746177093110977005499182165457091092873839475579958220173166574333229518728880766181557418619511908705427874965077838376300231824556809599818476078792789587526437618766680252563081193670345032660239641947387452237701807389495244951499314346429498454164804119932676229205217398130400742287883253990542995109103241217563699136224358005151577201885962725829979052395060162553520787801242773770798071546737731192578077218484425334650982896707113979693603031680975843768095117401029177651548316810797398737798235259568871124864901360540332764810065169155174424482674376511871147412861291539084025752842041701393251656468268784528150468968859584038171116451036213471706023242818156088289335979041342109499393471060716018719380558420915756948237414169493175709926850037045941352844796876256250505806076405997387367883640469958723066167239592620171163514432938555582628039037095289984151133527849104199813779287732797950217366588767523046346155884519071932678487287138282856002193867530740552072127130656079770263800105427077014840539206260124690071763131086645266148545579695704033361447446261273962074074452748539289792969970053516089899314989423393911946623600223694904340833566548822454213327474203232978936180109882514367645366181655024826179131183361974110556814808709692669806495409459334484803194640165858681680131187382635306152256276953387892728913379504844369014870741359481587621119531995554356079510784177748508595067726621011137319792484565217806969321665529603959153872651369693656114532620865385932406892894953544722720391266277143349775837106316138845759206751306789251738498898702562381497515714993534534418191331874007696687747170437715878154806293087708320990497014020548408249739998427682845197757238479360633641533575437696727545078966658773441392364478719441661998564630784757059195720015400053352149564130693656431936575938324008102580142225103905328536535541807777660932721767248119760358376568656971573770593833099279858326971391866767733626942052018423814508715911490290269901064169414266966287918715006589522586625048177855954536278592455116757832146032472399383498177686739271279570047501008775148544704401408638379124977448461682319490518453331039732993247633592923460688553672230096062417013207104392816107233667890803100198830684183768293330692409152757979176237242134210490268894988556226369190042100451936491101790876191451167133398022772115611002607615255432258936581151496204006992526379398080930875982946081670447468447487243335718291012272128975681777647229006561639700398608470105668131009868154444691270587643784236738491064445226304404665482599797606287871901120381605413149256536193861485540302405097377470989937767918858012113004206436682262208391456026510369723414896286124305651084983974779260303942021864935202425589516337255280293632146020483550695698300139302313162582325144848685169638020828224691173506046077082926674976505124056203529764058898970798805931626238318001505663969306185159503182630967762650998083640071209241818715810731243206491420004322075894398868189738931691189828690270271077705513894680636817826371124662647965569789597159513813504482890820452323728367483212638407599381452649609098556847144521991808291097596554793754137285419332862736739071337235596986852250596454222145553337849999280858181435130807572627593724038077302656131216868721794550222805118015637409414926983980759606139792477109668504199688556778375327922671143027829951596638904878611943760650844399206749330138589399439778005943986896390067751862650585718601226342807360563423941323247860458635784343321370910750446623248704266316113045868184865212383349447843812045942829817614523885331579867193003085117435624164701123029506498094644201557907810499276360644857473646199753953423376352959920157913145834875063511756635726178912688430886489647872975957085915181697158705288425351983190160630095167037400908812201547975053995199249065437338020965003533212243602823630857045062818909348306743197096965553733925621841570488500365760363754493140240347076337603733802554498666187781301850808301820502768420937981941774541804246781974329453245568444562931243563866065396172075912328592851785561974258183153520474932081916374317526903260681161469103655630518270794813167778984162666001047205375219339005032342188525314932290435470257392572986314688150795586011871723841965114032873882453716926879095090781324560820577380977711647858205985119089994061192644860102768496493990901321194023354776895961655165954173619294741587538789538668012048006640798622575360619373370742286990416736646615489370383490126511679090892545397158611257218360392640676709929847397543090995062680819235655871130748328646079413832221148729456260872704255309567659886455505954385723102872787026324244932085098755914513055004834183386887020692054559388044529859324440451695717808790805930026083545512355803502859118956807054907727847848315656969082136743007618349891423691278331214987355803984508109118012404736364868629095569942453139319824922534216407487637788663995183172712033664293237745044452049372726061034211641063692267355233704732297524282694785160138756873383349803315031775894892064298623639526754162973838737865938013085101665523851401915052953995671579137773672717502609653440823961494923752458374522615708060588999216059492006318455976464554343120249413315656043625123133758931686389271706761756069746374789822348509336599889071872829791056142157505998484194976458995906392894743784144885916360511107293473167950072657274323542888784763547647717612857800448824862482820190244136774543710622746403706949011894969225382529371749639298722787721898951605931889814619739016801400203154351625313754636876299411272578099437247151493930721977062858000623819947385917659768362397478541977938270955132375413331159909018094267077953615557946016949988597581105677656575084812060381885700122404362589493732644106450744612123877665067233081526899500502214062121630098325732891087031053011702653394794442397183951191235052921535466602678035428353368662000984786894762299980130065943918393524561245161601957931168166240673646525581946449010220943466818339484546137082476686238362521488417126727473128384041261002087136926302077538923155568665240378665132918881127590729375278941527486255466841291626545670230122483201972236408075934110217880194991823120755413487609433876204512363599710627535329941146660832762388761264194615623583989384282489400580619585110989808331528630171293114653332541879855852373759424236578211143229008752768928487351788718896369777103198515838464633639841769079532527850788269928813293096633964627725989498534896467265461782863194237846492671480174659108420650951476898183349869198551954084095841308083961614557502104259437156573518149515215127983238159014249145134026444843275290222049268220321479504639886881684947724440980603694134142524228142974436460332184554655486165401802416919395101059026650158433888939170764804346654653882252334089945050713173810366363519581900438510586606222178589993059305500222442099315217126415725812125527109584181670021315351569578787960095692056788638640329157071402933005787205339453697798672834234681727243567254089702370041556834729643162517967192711849083951954996110990165522308486453145865145196695187087058558982941100522718508761162375844037695079033672884505716942363707204096408607581795170231675394053571158942121296084379526766492692312734805583850712719510296642800567714536425328502985169650427040588151633144514085940150674511900731575180047280913254278092894724536591630773689190383227739616652648065180620349644609152972561062702483287423645394493412943281853685544459833913811868782635644455661600971532061568196986359274153797119163363178715462286281492865270201290969703674693272226402164597865912679538348677984119408674661902883976020555363321899033048177096289771838086098842332911213528201842772423567446460433677540254135582983262195753132115393218634687038664071457148911630891850676972926582234074432509498261285053151551360896945340834769882557444517838769184713272605086193844333887534371195287446088252743569145931503075297216327019281073658958870019465514609774721975932151469817852271932287073205755245551545926338312090477164415787984793621101348284813426076168210950467270474283957224389518268270924352117317021372524444469716696731321311361687937921559828734431148638792810371611485600258305532731775831138495516546751766700529821124147202506594015937532769080672487070618784816394094049283105871125610128482864619060625290191864738570545657932651438639069558198938148695383869359716959946058524050668057196484412520062876051956123314731983777339321954671207500030990779542525919269159057980315151855962779229774984371655189693583735468241160955987167865108030695796054069571606863806158679315229809190794038009420876742783774943300309045316227862407087666578787458564689633009585449954810116363474040117528385929012838777968770985467539980364571255454682778853109367163832778736269579648354962795066650609146072501372878041440750063792042124563712309761633762735515065425574745399810866636269393737990711224814322913970881124750780670184671711643723175431294165595666263010418854269671373508446812242895897073015633420364959712699037407543041512842197147715803032176505246376391406494543060800682100502624028871254987206842129630091545543863437964198772364611074938749957637687461246225279333548082988736564937508501376733094735187332681601310905009333017750056925424675239460957570998613844452624632878403361735756329922427421261685280882088608097519149421085906477305030004813032145510171060319905640815825781670006336201905178391748977897962734465558396610617564092497917499656440039102403174712011776321278408133086181825872054505204682939766200157204042223049564158679234573437817177036108273185363893609949927429467742709450572956492191496963010425580148066545664346543406815228458359203466910516611711479567235746184060364250076378595998818362239098176881516400125657010281979740538762803972795358712914096382097470224629764144299736038457345831456051125242827666116808924694957130894380942299957881039951368003134997801186787545534117044604085458540244422446876493182493994426398004316413138417503056943994751238706411146289445510596657475218664316236402452930135836387197921419451334274420135814761700275315498792655684779203094695029277384443457534171040851278449224321839645746379441326715178085273929809278335462571947721680843795528257006140825195775535470959413691099567487137491207810018446543621424074570013263338571618811312427241966904225844097416271515213677991565041774832026976687627023621480929350626295727409028772658967213922522127167367982964027178201186739357863404904964276859980941598874785051906654848821899433688821075732934930327164153762088838250352819557314637690408671899962639451457886042469575589324502096509249575832219383933173574109516440270942866996871865021371918010405195295248687830774523691457411782982472988823982634245507132310246128451757950247686456540695162726817122286213446228649176304503950467781098723121075901997098724142091653333480010981844853158499077436802849441035687985851265550663569123449967875429966729074756358357799210540926970567126456103209769653895613832865718867518156176562152373107359457448514505027477171487107543907243163125098161883156854992276327606501509026063806146165288858703763297007936993783817584379158330596828371596148582250669878628618219229762255851463134978058841810817990034670870770796049740625911109886000734836327567018426739624486800337764153460799835914808779405153299210307020421789048534247717005871969636863593055928766368106388515421562862731651115452636089695278176560733624997452700275462571673720178332137684317960185128588299348383069008532108980548509677769285833541741570820440434864262344727172541500401869423885146569052135847830358543186805700761124466872783642233104865514753890511390405010641391913983426937410495043543256755740550364287476760192981390276956877428572864601333349005246404135867875012822320222581360658240788282081273227372226010308011976061930638420715219520187392022145847173685181793717108718438953789206177543524657531347396374165007237108845112230284336227214471387045834760159144511932616620207335708437197470042886174153535225226217247733836105204063395277085064558325453950184995415501664213123096618020587059190632611181994138785644847143992427541250159430681787581132162500569091652830226287716335367518288349220136337238137223633633014774018742002932840423424977635676859479093753401758867711738940905436916192706136819746837890194159732394399357450313929799422617800535957539139132868446798720557682920646512991223163733219033546740418965260261072830338729510964988497625566632190864808980986781877925719097830899495276641735959074640572228249289882074810165387274566694352266424957494305526810397058112473514763450235154029158054282754026211854739229195637228657907847594769496651456272275263163272421781850095496799578413483674097471465241169904074003562710790273455532425287564988533806147229641599192488213894420695741721901210718273426379475476011425386986004620021621554503151021990638463779014425508562845262347388848543022021538917149619255464023196131357656944621632923995133827280161334878874725026194758867001985812168264696393114064777444410452944563411346802833468001983509790717221517121316607563962571555031676911486018720939687953853122645742904650675947840845520353054773052495327430682703877642016266262057743324773321853608154618449724861893834512376854247930560892767667317358364271983093533321649373724996886636662376668042716867313550659063153790464091998469879753707419177889513050421409318665372994957070018912760794835611529947080714412886039616005438244422510694974560205021917856047989742925641755429261295820339871754415296187608718710910140369266079861516298392930433558679677452753761023117206806398035776620597732178552652544699706387401841475163421022658081636370510406775559289720510739700317446232831949963780034956439440314779934675502264902823687397555216948577053942754952017439115967415355433503446167397915179005777830964915009512173545872736020175851851501480514210112373254191184947302234985883383701701108756183550479477867182863290320954891128923534157141123034970237099617028764349885631163246698549972301109053960274731518378363385333907932096155829225436303786210743687597910190402935530925972427014555193715000727248664342039391611489951300405323193798769314753170785547437216574849814125106030972770686858068992244703424031151931503506502747895544784017055862137349208564117777713237374684701637911409322633006139173860966956368077138303966271888920892809445108540091081956316719456307558263166692361800627280896027909524807550881584602708196228870507163771336168967329417191703073119774098364418164333923815739884442208577634124373697435118225785397601861466567381333671194967494652357583037654313516568745660954230267864154744087612971319003441680697965219319170530712714477751757784706393983716275958211175108004114104686506065358662108869143021769005481357367362719557660498774881638887443708358725564948030576766378960645053128941329825672019784654213348068207687452016234082160857631600545623647587482331808681122805938112096228940970842042208450854710455856966601016913364524330398086257520456642363945128071656429637267472861566631733867567044294170030976491835554814793157028502435835245705063154311390261285215010677305149473720209927291034615382750669938646075791546821134443373316693046129326107047529355257495358955410352667257629124601602685890038679772017341033329572272404779578077121027969158645203657067048671798116798841093033631892592863838890511994092648743940547560214006596165678952179878050104384323294674199903957846715575171681121020866066743558432129541810100039362071679439542105513391176530915464108242596341119264733420576153469468336913166595836747918784215053862484408130223528746845499155718282391577827131265533491426171936400435535695384672970221598330814568158309777521287609340708366737038040136232650076649650387090137964659596822285868631322820364807191499982822644122725229445389382059884146083390772469657913224454839307876370010247695921142443140102719655825662429243714642105551093202438880060246983269718291210049413058356634982231912313009220533435906103916171754536908932323467638730720025884665101672531831985668590752416712718239486816233347327365238522227992516487864746460269321326018396197391451143328051364750331683759168370882932207773177994480790588121437794773213712498979324686210649942178610985625415778437720817893165150146095185655188299943476162062722796698099607890829570247759031339120567340732118271443258050290856752362322857909762242948555881750373373464744425953781290909570709972798499733880310861430512869132246135487254701740149786462485820590274081094596150455504977364306010260098945359185609014271656701847352805721768034874582811332677474715341090537261994445507578105484442158910573564794775196902733123981410856987954363862874443467480736957009211950144133214553607334841441826936788593798436576048000068868099506127532300270802797860481069797491229453023003644570638521739589144040822244081996603698941818185279492432056594048455812438520894646411598724907888321406678159518720416592518560665049852990876457774902928348508066751777133354897052668314777291663694099156528988259837541053540715494523244664558603299079983861698409274624471913856912200138398954805467520564594707873857148429798187256845041082524845863016569775578147473426144608443825589522301872133657118655503566195108957058393109318363435281005439789589371272503643045462060963453191814748617107119069202906702440009671409695322828063796080876444071181107655996829176117916892837985891492585173975868209144713608399795227278182552234466086710818251208141671730225035488656266007794369555112072843760292909124324377316134109854757174956954176731592739868301987897410966725716641592833153362567612854342182328815569547340519774514089555216121148201160591369889953675921197412232976973264756637756073460473978009972157202054747955156256190208476128493322331102065621046391068105240806168536529659194477747623746661683997339824220247802573932578052281886121952493958494162558686659206920814499090451199346624346818562365919469784674089484937810107577764816256556538867823281025537185375716499964926014088776361723637933824283875756671073660015187515540152271320205341134693450432969698949051831559442335591828674198229953146521141810425937063491640547246881669998719382210140889042245799213598642057209426750373518962936387478424211830630991220357672200267097045455639109440207766700313962990232898883568945763116330728646220804765910897923550882097487107092026059839581112439235973965187149191560153385174892645303707607031304122627824465656316457510545777217582477251266411518572330419014964428782358006788378188906468799403850651587538977397599947733739370913033291281006074959301410897899609659183851729684891549487366223051579127818614783576782631134422832642085472962637878806362826010526180029696282704950456738470959418946166663324978998334398784272314350563387236722736542210123117603762014149136627183857084798580144017459030380501560791285815430349966021080710130954832871443594057359221045746212284827472204068365217101775144875740237858620160094299884939834153284436547029176534238045948920990771873848351105323171909449118454067958414662475439430167616391806537505224350456551474359083913588609299781410534426096236027232059073377333579004983117935136131617814785677570924327766411334609593165630919666074534669022967207354891679574753271150503880840802327117012055228372724625677909337821366781716324582319126981999609570634850241091242425718685241514659310241119491071669842175261891040640876755896560812869937873200676767044313423407944470901262212156656565591021997769336736461386092849181816216995278255865997294160876193246648845254580714104514001252957583756688864274227889832924228173246062051880686496370573557297662241645842018773545175342588200399370758051602886196330128165409742033022842007683303785199679495033185983039460268277593074301388493797926620018865317498009458449573802451339506289541736454906721316569385673678718637812382186387751606332586893626973265132367662141258578857942815749562231956129648688842212029499038712948729786709452002312746499422299775352136903230687812765471215339380749748574006394886888776521662005116488212568044899717507799735596833750708375895914325432506762896768008179320963132069017235351920583876576093902469961717177966851220898586709914174681665264153888522831867186467223305052655525604479195718390858892962802346624094606442886900261970819566078547777423329508427439231398372385100971295827404115426046013910262775767790763176214929323657036814319788854169542542171102013214231042329894877951987913393964639272576482432979923422844442709034311547986225927438946328164275932357742135537877504122274728916558764732517335909414958323556430568449838082563348854850516771868916683282223337720530562613135254388188403782563081139310978809584256160095303162759821464829610841632420188997455107136228948485880806868173865277356119862074505922587922977960048065080995338814556035568318028948927628789399672813874418664577412887253604799452286404134238536360888373574656157045235936629848885718564885432897800715059832145008445093940845010567581982790054897648033582279565022333631740493942359160746137470261690620789644739673858932485179207499600116083002289952520399097433246332116692233858551159109077882095478882614138756766419478444392539865196251499056842059305332580071177766664605208844219369117226939282212325102631555472331325834515030024333848465458373787364262235852109356269328896226200778130442753798596238936233610739914733954558808417912390479384989782114241948955919083665808640468203537252824464413523030631622252061113905526517030352137903771717689079646107542779387784280912828313988479934800075518120109722806448340340328212075658044428555298876898058392604296191228866781946460839424866129918424930899510057164803746038359996836599515303876063115132821937364661371591729922373403403335078004347629040506756836039456183164682894436693893694573387368647196523249905414650795537965887796888242157005706657648938453168524618226593221440927147890522110445652367844750511888592111921073692023247069241631667994732158662671843953929656265433301770012488488887122749619090797965959452429155468973676608402166228980019488988256292431651921615216767695668616832359036215386720468613388313291717746933729285585101877055949832485823081786420468113113350619032888017651849883372728625772493565656100770091595085968016683616869188378990456913061541114344743249383400091856261993815037864063979943719228016986694344294838952120098310385550378132157858782478435822138213894994144691147971575789526008314384315864667899368258660472987805387909462377609743391246899425060389118213506731146204802359128062682000299288046932963969941822929210211286478281892698523812666384526352319770930179624432616279531034355242298443112164534914117973574710729419491724027747439245279257877830255835923046057650839182988463879347237175263410182680465875695090355244792217050782545977013242528110127592576284924891599967700562621792803829612634248582424837015321914328013723484902271632714716873516755525954480859500322975949023507671029902070575579231464614331129709091768337951359794149334485880117324301337848875023965218227986867911313913171440251052820896930275695030239715197380201641840069610475073599220899508251787775252826115449219090188498965910623629693417759599020845638871266885760897035838501196162116770452879127340553886220948882140564176728979429639753065467423265334563625923854016317243369672811787382738024139591503959260823405667137253817648583719895574036191917607628735211418632780627054233829233838991697219011507467849282631659614854712168716020607580182886221781887109172597615758163498111203562539703462878315225830483076676064730929365090488511681389797842843662445676089865295646892965550141272785057006425506390411290135356070283319350519134753457078096334803957742868399326446688848103586122111820295545646521591406273225421901441926369920130378540138832350033046821925457420575801373894014612781157543284622307433110133186704368740834320508286925253872751082949061280146762812984190009292362506445823374557017415165904273752763693922510117720751950971635420060020641427509453414653244816099201547383348524103719629795275202700628359529158344360775247330351797575072236962294854010055800334908960861544749283551077935061652327445735163002258787693728225962157906695510497337539265853635954918039858425286140870485152291813702108900130187499900054789886654648119031126555484677272267153504513807595850576803092273245195684126699509783505191467293329006433449947593116121539553952424809830903360423888460580135212860498777610498630617549075194229838152825131215391039792506167901101925011133867746874096890646630358650478699606275859074588525633229339024583467797788973358671877764653744446020066345769879110422332630187871188396050664500493383632956052692572442143601171061993449452175458765913218183038466699765763603269181937679832768118541898312383344090945785173800637703557894508755578777132644339987373074813972812826176474936674418863682244133011313948319099435080321566400912547767018013529940321518776794826172509851314332669966975210000477142392904487938251006078166490433816798093517938406591705297738678924348600243568337484164994450016743262752318572891670869826086329129818718652276338212577670318323234064336296651283448076370197758385308922606074342397949735742007956270100997849294224074208692391931607160338646811859586369655575898192300234911766493459564361546329127791673210834457402883111663362386787557516258947546956551444967738819571148290826856894337498754342709010847380349369497652046388142028110627667315112660669846940328100027558010248438733390434927402587192399860921458909432720158463399708778369205983244627440400308157799772802200575787063847265965400179867800012958140650522468718697018635909168760231744313762099607200118198296650391849736618486794377890925541501924474313712560034112955393710420293238468013193979829874253092426106595882226651174054288564693365979155280963666969415936107183882102123410794675126515582484446678565630551820310346768902606360138087311543123371750480671521533118675109895453885856428470042174959567441301354109831065890691058149416890451538844620588432783322712428479374216769921243843880031839130067280598935332031055158428427431745892445237210737266858393886993004840162145388948819018129833385366663172649519701844762182167400132808207460690499230053039392298362860103737652317668851989687027435100678729353721525183058392602346211340858268041259278297951732834363588566398569024075443136773453153941666990305137044769620671564602354227818287863850809603944969583223915011118725151077386540406464546686443110371413340135939373379049567330829685396630537131164201689129365043978438986436923192379140834006889288294419160303588474692105651734675071321468590688398533170967836563630580392464760615483914163327088625794588198279908528195112668152768651351767954194330045433063168606793009394029863895644780645916632989119006191114777016158418647766426342828933571013682000818394530925405922223378698054532497007830639920347967455808119865752156187418393527685369553938620449259928347073957882505866725972934066413186243127153511782385071275112901188031778283936077415777158110727644129343081896461612281195144361033678022374737806681609461084194446127041696096168745836087198922732535890059132213643045823840820903778120180397994694459302939131091838570781221104607206944988525897264223128083214403666116986046001342597062700625732221801928277929895933321441796234429111047128585287615172820470418919394277562502726653282340108921075833045993975424397897695167739341905651861678143312638582350177168611092789720302910451123373453662802484163520430482766147751974459172658601148985357557915049089062757257493575723264102695895103845947119101679919033189932645489058433009454359122872024158768845176925959467490840232062945166236400122879792507268764524276856964822630799286407840551777397756784931015596003444084780865422121671719023391363834161331614331199333641969636069966347749007929974230954155870701453813577223672309813766254379660449104933040995233273803440229359788985065500987510273910882885654233168739378894117943632244651976281335239635062679871383797462294002720152643569166556604274453855182965022620408145930438311615015907066500641960673032629646174228113117958966499535528081931777631802298025416956652903268447178004658619933074824066708424981433640160617876953152371316313444499705540971510287070692552652932746121822524068037657019557404597354996932343015277840238352670109921592568280340134353935792395082313410460877100263379543212596767000492125964795777414105810932068718794965834932130457030978539595376415484354347137585811756938868603670769304073723908113660995786685058973582597786710395935150594498373284121271776216805726648127708482787285708253983043492096276836692335277589981333873628689377916633868313047945356714080594862848074474646596890128885185972166540769824112316484345137255328976954390262600373829633816948786011473598897290790292753436149751341814819458159198013943671173522976208844788235319537273214161256850235022076810410142767846361645215224496772393832762012124837509062295637023231767620127063890200955730609438340831188842241362148264372917837093633404607367292784104580726919639654934713119132712505745021434438224063718860029016997691920013773198818999219455923184670149509343071374677268005439028752892056127477257152194680712965060286489152979715777705198063306985957015472740441117344728024058333930846091840650930292401729926810902032069704343867326113562106513315202124331232878200162593560858221453993717858543798892478974047300184887060663878502918981442973028470160604950749777546349132608134442829187919749080020242692843267180099766046486981158339759720066804272193035248471831018761711789977086548456318179240360038432517833239077133084555139808239053148374488688946549514604136200626318660027674480857752234824803380144701447695930365272151651787706467239321702790722887465485301040927457189732351794724307722056501230064313067345530642675100160386499111428660958091041427683420580904116960482912620439601526324055739594894822452327606497938363705929212771310518473109031001695869214242965376338575785279380565071622830810710465153866438820129747234480624670364736580069211899576718034580888466150280774115734404136650225308039913224823701301852384833329257393479595403428280537961426670919753009132792896589623191761283506013401349830079796771330584184937579037104170670394500644202560639207323350753779064471235247773395270119001800368089528184064074125681201349165002434709831193926060187879293174365606392149211076659592413013040870900145665053981764991331664985650849541245013601908001665289532703068171513542294604360698650334602555150328509472622433385088634278651824838440325499585541634827401782583583661224817125100457179969190599389509267935190728627613958601746388985585423228553332117099024362291653984191540728439892327191003298424199565094694635487180076149289939609171754436537309088637393146338629793393140112913955579334198951833525251627256164382906321183266346166052830664475346407105496359317035360185075599048604105239599044438705091198859423115848812411553372339090603208903232949784303024309497665880097673754473982781224886583251071164444444454795762218441651243042464875588254101313638087197691254884599216291774830330217741240316075058445747621270121511191759027930502576361166331326838694648002169783224777871415017169832768956353353678057760488551603202142128009304934879236740862015661008352819228245457179770497280333633236533574656474042003261301162233763742248258050448300782732243655016846662270428722224581049052585359033015581298524149248227796754862180691791946131649494363071293754543752105169837074259523311281992620276159986986846997239824231016805815947617578754684060370766681218005243216385686381659402904014447103572252425284128927982600618877206703407022185157197036645164291901020413996719333316818788510010132568462808566075364895279017280311156978891843825348444872448404916037583913222552255458679575411787689194412070870756261549967724627545440461071604585320200398596283484741761262849776171546743639676687681154675690663352492686982194598360974768057606057571911022737534838559703852511672424760371134376174011381527757115938537116769630479650237813207963040635593820957819861627961526699675868555215337772660317695952853880301155545503495681898450100514790328879769785000608581436017860004286576347612921891325472445444916101872240368960775328137290018695981078971160807580446364658353022282057941685913524386693234259173335366541837732439073673852178844183131752380488574103640971551493953977419549056764351986985524385327215736603133035917371004593440177895319297252791525888864126036907761706584949289677045752587260066427225504334832152986626399689751489624200347941898720103533860391415158334835673376582425755196984995938527080796236082556793981884322283593210650397820142722265554189839921476135759033394436333444960160040232009139784360745802509422445138545214110733186117505297421413924946461522557611228919702631166785070566389324921787467170413983377390916006899278897153988534233187916475339540368286241170952759712057022965985993611876130842389887204406931324912204602608083833597786487553353543289753817708106154596620953284020298357050473475516196063755074053227353823207339343859122780365322917008960406185421820258692601663406011969134827617851755628728903839818770475968252713379718619576997455852319943659234236519020540218082957940355818248314871430158426753540311159326817774979443184619585200427507269633130106614926369409619687759474130520170980027851511310979981930834714562646605972575637559916249632295361494997915642926508197944042635216668610907858476732775894151081711255844744769626528379609132984304982398760233474355965635551518169203869100051687975431802011748294355178110415279955487594083923482162753898603413072195266107576243742560763789048429514564898425367231474086254045631848825697834927384264584654120417239590712164851208391694399730537452210235164675955528375380328717104400334960095124951099518760157396174004568451459322233617472758432393634339637420879841197168405042586447808692061808587309559789887716056187471359558367048921601303364449844538385054515768291333214289887358972250453086631643383894232729221545003247075801973572218564794048960817558843304454965378874377619135372593810492593832935565117144771529858420508685068932609732857734174597508367491531972893952852043074261671403940397995091182003856782536165866627313359485689545289991525093734603678523841984207480340666970221041694344606345491525074643062218227608901912898993506326738596244030609310475137339942151141674940033087783218846730309323863562221794384417238375138297151667950096969654775761279996984309726504394013684293689088902396210473358093624642189873035094994530590545157744616587674210474315347924910670793923800813082298318808049187546208412600557275629257993848124945485409612311841932510776436328973670432768832170098962691642722542723786650017879117791747066715265932964311210262355463299684466972444794300155091764477797880264828304988312926996936402032291966005888836920753011346433956674230673118773714517138910787584548061036359322170743028092338000861351189756195651157503552705020405061986506335299373148170928911455337420545122770210886015801385965581501459087811266352685318405241350696720599107030174347477951845975061818122760732648661698930801849176411251354212363450113066204284966174620488223128921373133043262582781935848617385512940268280365735523294614155448810240935184767215948230170782522607257338729283912134368013636046539783324988714382437804029129499533350374678281367461065865781354462681923915646852963080007312561743612135014237507468715544954606953361210924264311807875745290252860365735264151418043015403823835072183308979399598381385467930819072217748014322461654744079825926206264163850194497985706127918873116729127621707820274433626915251366578257341604873112914874549332083964663516913662062619288681519607324630909126348386810669794194638685108470990171023348925782564194014486249427338803380597988508736678546806038509666498256317023314868966965058548615659900436888853628418655923593018330481982608769212343246469383806619834444693169368142908911630661314685130559224515684449835237907861890592544845027047596172226401987431238725174627469040321625303741942633810927882683367454465890053377431626911951921393821422020791253821352739389367779087670190983658209155232784965665637060962298486083052781448759070879699206835984681475750558441580711560544058694904151300213803579909834127805797472448264893111797015794141570298094916187255410577858576771364935901518225238000181060556291163255792674669888064415046968122308119942557417003637326263023142945679813480890720097223685807865651172090935937042427510617480757054414350056659422188947576415921417046046312567168819960373462903648612117876032581163133252320714121766789567482781866523068737195586630582609942531860418333320841449567087624943784049618059457751712220735033276579806298843818472200352051072678718867033646711493771397851874492913058645809162635514390468385822089124882685004870511974124531356148926178491916376662881376194001318973177316459295142987675026246308455739598271740839762341650754655251142692830722375683372343087335776527542848245309091731477677043215855588744651464841021446754766141197707509759440813848184905566981613678773944981028631508142091222562511549581887758082388386805647960891738393250996690418742716249040822467700789882888793874636970038777930252594957783015588446896506716329582872140038153527221036345229857111717736013497782786806254891291549324274706315094661209338276930172317265810057636883861422590729172142532110966200659049375993246065506021917696504725348586242971240985574710250371151049632570703605501717734847856575259320243187106465277268100306683940410081603788123480363782629856194995603543556584738134757140449694015687070240447074871679208273958037336803293646872078544545190829555681774026385231689122195064731842528698465991549954847193279515428709195363239573849459108786668061731317847480812519065645085682313932941759143584540571593678705467209380313383062153502559764800118223407517905500834088486598122394481955781809827264951846399369224578970304571035407419345781632121107504846156480621207955326496638009447465106911784561755184994054847362932446579946960243780993527758537636164872370737535135336289804401498828856469337534870787386350868104010580788012570530964189484220489439869318321465284563858872388189198307369928651919883456917996921396149549687278163821559455115651291011837319319385301816461157937641795160944458602810615075819830541809009521466486473938043543174555305459589453158469212393372393914133602214636169566911766402304283163244681272743305290966976240661105476271917559795527874091420619822644631616086577951546185332555625941057669530796493788036642528788566384840756208497807667725333250119626129623018624900180227659738444047149058558971926800000477009541741618110748969659924851155266591304595605609536835998184992968698566592286281589809223821898162419436965529712662875990965828485089390960021090745102202639195625895351683840930416383426633862196857117765988120803325067272428769633789696237040590550236646428663943703283557216478557616166361946189857685166354907758584367289635938462843536366470060118870890792764979338048256473790138224040677526249120714963665925710069002877203525954801421669203775042174893345320678578785980218248578909533330167029475428554173049423030725227346436213740035060798473789220256908662014323513850059883746819745065717113451561706237250173210974604777906071475989362102480112340689942038048228297295591961392433221987909288479200737556178024104389512526594938020317235436055153530085894672357447048792753432291644776778972819695902816976024279785406713025282471540727350161974115839798056150042306718703146855273608212541283309920876082576043978620447392004076684903990655088145060308059211276014271865940970512025144360706544490495689189370351314823478258187719071125599985596766451414849778258051537422314631675670310425167641317981400088385676287884331875007403159744656352970432496660800133121933828415282447406420276922235859928671193977665302688497991443279772520937549317426327881947920004413849629792905781387640483085309499740148636325556715953220283468431804236183041682812067317109491094873337182857150966127994918129705166451347345723604791534340351141389951644923237165009565841971669641745765361337464122984877738977904791790653997491049761281459634982778203131472885415637569508261940507424698862507429418564627121918495055314264950265713618056657065179195576498153822113051747047767371864144450898996802180123285338022959073594141870398315424318770434988022416743248838528764515691512975029204383426703901254342179342692959901565395525819157086278203558033201687443164652180849298733810620563665668262628172482843803670100691859036227061810653119221620910336851407696809361705785989211922204039326273415054970202574150692049407048361087298145327068259393282645134722927567671611307761720289571285531169460768893580214205781212981433682479339209692801051301910019935386111423730093615985363737998582949609768039194580863078041301861035213327740148073541060922953051147263428820021010415026427181579839761247321766907652636748835442217999372041244126213551548175790470248969162382802474737924916719778544489794166893000976542171765232845546984798404594584260669969116309869206530642901543277668553861991672535160782220744131188705023356417838209510926289904459606236983421087100459668312228976012900560050755305654030971213993622645495493060179343872929915004223427222908388156390203037651585432037767017312456381506207947323683611615879014664008168341553072782590722026751522772618026674488917469846774524490401906494596842016987434762209179543363343532258863024006791934028039538020470692168733539802778065611712169219661919816934830285819313624473350115443463630790347856028845832421266702508077786803067875338320715910790774555369350614648829021231416151060262752009861806344045291179213477223378843922097605664733206624756378471859189241107903403873125281934363621065223490236639947902060071183325195442130334435320394277803281522827160006944169000222192409379410807970096117008277519042988908077924424757076767505098459903060660636327720626251504784600695060902945266883512809135593371031771810249073584628533480135938256233840077934910253911708587017327646725725820160044024526110167068566187647519495490879561005942039607360311288193513288910319534871420473279625174308931269944473006666210964419224456361914976740751252068123841622785331152598871549541702950824507643635341455727345328953868449339526851044422000670862968077885120918204553849336870417081686178485329855866819644100710978400374847790820569907623375408256988462201292981716546089749319641607097399626374721478743613202438641674517349809741982685809551150843313130122473116334728376256341723894936810970329727936012896625876808412094598278799190161119861992295437730920409915504496980240618926649449785438035312015286730492255480759333035592611342769240324767783611200676551219283989750438726967467152518338354656972981728768804673362580622060165382935937301786814197916749975125238811581588696531540591686382685378296965444176691342993745990303622861163291397359487791345936193352401158285758436867746876160011659354357888320595765839972306325318340817521564311629674311207038022357289622931119361025827288288111593907762920868237936352034700222304049060781048369621304710507483639060342950688572346124765565902833917756652431823803886151804446617734420953022270980423662148875267788101288081393108307716115038547039413213830789152005177364447451935470941519815899525126256887204179047301408969206341040302578689421624963240516176896087227270412720194157177751459258233583151898146916967493316102151637280313012554821889187973572358998585983464299307198066352625611742501325472023545727316802708346847140174071826110300605871090883983328537078997729713852029897363913188237590280461527059097822301889570529089113523393985450385500225122686327585270688098208071309953137505520176570474194430484090750931959368867018528402368335146130402689807856974128421914045669060858809469248898414149386528480018144694467038602204432940076496752216026658140982666986147789879001374350150090216613757372774785420978669794993561234099374141961742793392230383916917297518122508560088555694670735846314104671112379286811833542115100648084035641570423534073903875940692642249165296015513391305805983106835908888003869719107667997919374327961684859853913464190959983730022720196528621998600860384718998710567826489798986327481678889789891275973624485861648797847800771355150232857765945579965665113451998745832900530565445715675779921432374732112719942879039764326852686445071369402889213208630588597604804367525493768636908288717941294853172505354652777227771136653814558601495488203916554509747741061015111925966862043165395071557802779028103320759851746198326162242335401187885148085356316271653632217836384284553050098294818525001334245605472409087058081385189569601295001006702889902133128206569564087225961739972736353655106041774033952169635436116522829025271770880399836873758668313712554359645167709296166883091794571990405921487937736460340290652349711892184963274358126663946093278303855681878688198487552589022167357899359578611288923855217186811513297111852510033271106735027072472573178771992196624981025290814207358901515993157813429204388573240093490653504544869408023778537049974068715036735485729233416820044994561977548050227469312465596776787983940083786985649132849150440920629491524130687006223449121366078472572686503030472376977830272003643809180515856412144137820437939126809965523874624767410156575412168339758465235700918830985251026188480326266291407829168269860618001976540523391909830584259330421099389243901785144042571530924723735319774834006490754133097304939769404580063266002758060858210172920592892230716900850171290242432533065773996461890383515062408503664950638364196808953234154779405143482100949357681649462125444567959339589733308446436185309555564707079507351016387791000151557449033061513655997276823673220574149479523803981074008404140574837475599233997096579763580189024851665941314293126927634828492667681413177330017563931121605117426857526601767133289949209827966837479814316188927965448208294814629596137442359462019336019234553817228681007335230604855631635013174039379990948407014633263132973022148338007455121323452525197085802748439118228044359229401269854859421036366424914975609270113491252035652811255439430092394660354616285066359215864167916832723471327056231679505005601556729891755413993787189227997651978848946475304667882187501142596014701257945905400686312723271413762017124048718453506312337518929676322310631662545520407246962115636468215926930808457415653950729501734682214896182757318441402010621341704418690016603662555265877082391520470782657526414796511564629095274706450018025281073114478675641854367089482981767064422153896946475759616431521944193394943910059077875117849224663473356036782634249742886366777829012148626385016277813289687520867361228527686913748335621453428203640867349746909535892173859627420750435300009615243492603468219571259814597646979579460267648030556846390463434768632522716759809279956600894441072385198598696301751975291990516363679474199197263755055827409338016977812222674322563156626671809458445730380660304784228588364548768973980507608968977571435346195977539393552051834367280968747519763830079807561666965044694207413501071984672253211591045293826653945102970330453277187804958507534891146828147979334470342847732997948440712644774525207845268816947477247694345293555844404549669874840044780838809185846613151519026934851363447191205605907282916302897253310089099886155170302031629556271260438027805410034811146106982012842065716877101451425894137525778862340969593628354211570634216601705893810683101299733020666593854320325019842376259879032668033625360284349211741070673024728681920508228697587381950487901745290273196903357567074961629384702727448657455124884449948090367667302927157110387031338206096903771116557696061516373312244427947753318104275640478317310426029920116914536524354842325358275167949725970139168471438230157340614516415232747416144341234639542957789304213527906450641756541125207041903849471738511486255874461699834176936736093517348009912420028774464278805727436840801715402500209674632535725541605337385801791939595050058584880261317532518752544374147401751830833058976743429507598370798869180077769980724001346631220187297091388017225067758065962789784064071004527370255529472132162181986992166166015479787793269997875070219422833780926567884852378731869976039283991963262854080789787722701122719333741842355233630484651219613454918813245976423433717829358526943430645133527455080229689536933078992705928740075262231757455772439772651770372276729923599919334074388577931841617909889542416167265867369009137055388102875082081993373206770860033374838956164428216262620130578202788823062890100905622997087033489567215561366967646557538847614367877198829618265397779262147462395400465821871893248170821184093909191242033798196534581959817620733825685988414790070984768637275272005439764716105931445305812267488540567266644696818880070632338590157624937728016462163086243970901589960547865446827561535728998287889059093637590821034283118074881173761153557569922995749081680318061922061083605024229285337313775283330625252942127745031544472619004666515637001809782687098244588329467424386973266908495344936800532200096757718793126951717388807477605618291669058220470036302253047524623289859969328114603606568357365108798996222912033367042066040069102772961095318611689073608326701021912715624665548435502559172600128919327778090912530338225497684913062874159491585771089961620873580738537030585672057238504484405155977518741130388129010580523898026022659578338196687208723605495968193564468438955817805570031106931186205883336383115813974768459301263969312828639217616469094363594732207221273930681207515553358075630596196743041663457242907348176470714487520015344295707926683424160321114731626371935723616374453938986351964555201205091717881572693961048932961042902770586314682775260042628840727744260468823429464867259200816982716350656667481204915178476003352088471212927440718443854658904844544040247053227360123200944053193117999283547319039612652189851471040396344725329041477488835892693368386261722905094673348118267369083712382306029341437684977116281652240788533239682653458028684960761053693081912565988573576340713769562326069971010316657074003261981524144384774422898921165567125006176270627144217920173003175744071538948337630830481474823705004814620915521501933613470609736202901859181883705903778307395350162633249798284888980161749787067778303054168417264784170448401049523274116050483199693630892153444688391439353480985414158347152842004609642805484835645888435921597950988949345907307675116386693811172251083495830947222334251203256372439880100829235573050714004376111294697187067292757819996163024065714414881530067331410480838505954852405371551431677493240136636697637669198385442850355671983682084353342524447917097004448558273332591667042425901170381481274520670970331206105791661594405356546448671278017440069595147358768110553975152361567656344937421329964243158869146618583365501924387286857853930399237486243609856108082814196401258268873445477949777941323928206620745751035559877965923835565105771864639803310056603171734568358646441159804917824734643797214209366235732182164477440320922041573782277670522438409823159814732444081015213079718983569559479886866874304604325360344703483258008145215694450647826661618797866622833650666225628020057569482510550550018114176471315601655155554033673268689326328414743916444489538295874897365524590211617192256396300700457125749706335606166345118825139383842742495680893870854719442197308315503717740133253832562509118632996638256993656647817537675426817956426667400745905415210760531558229699875536547752436866444849410053856236448470669344415052352677153719938849026595643529030624104981897852579073812992033551356338956049658700621511682436386536697372145933301105630669584447758061730007689694684710494993158494033302179582440370389025025419622468859989619155723292895616957765858853822909465649358698238533959023612851789072798585208794579722786842424518234892120059130778272595256671876541347742488365075720584251901532321860591153102938877431572295012081432677326068536722830818240483333610375017775762613690799058802167933416882669331439996098665945603393316174134762533507724999255500992889906647160392469137869003307725506717050367953458429301593563000381964670008155049045795838162049305191713100543686130322281973390758456519177120310553217797957669138166319294014520610653776541189575713129657742898152786467075693233175455856996022981733398039511111350105848619808985688795126006212375270612108991988542079252138852597181993711261133057462948204157963701225821409992506203461150615801608587189088010263976940014531716355372596100679843033529839242278294104369865631500508455299791819617617194239513819401680894701600975450686027434746435380544420587387221887303543455954936449709380190111845486504889532509436386995810367197183123446729608321379459960457396374484484275025288490106523197478753248134880261035445526956965819560001331112758859629622440903822834011095685826542562460652832213870180212446701941681463758445621059625995580755446468437321392431715075222943917329725396728786694918700532022218005091475936323503802333428811309253457399519573840982015771124094891843435927173219716260191313173883493288282410231382885783782582166077605522680991276276409725695087687745406850516505068863818621275127469160833494286104447598359660735492050270073593826520456366587907122940235511693351654465885069519538265619623508384963710611416280499642017493085523759738487889079252936174451419049293970446545611291795430582574541391455714760609535261503720885048226308797006268229006136307963537033762885449218657514853905735447192408991272907028308710623615123958815732223033839007635104736673337477218613721312825172343960218600330422273020786123150200955943969255532691341350814120406897807181845727440040569335645352799557696287391926509470288416412204455580285479967631616712670929961351095230291356237888143169442745414307687590204740219694888070562315815458449593105860117473073633465126167426710918394152567625064363971780316782889288782698570467198110617407221068381878390917684196041824450699286413415151363487081925158834996526712875870629350959893363437600120836984668720206341417392986644484824200095637723791879313523316201421804864163042904846125819577272438698473424824137163137038756850998855537457805692826251787059991114184876765293010198910340375283467016295615795908500347468551654612722975110338240166436919528150201810955877747898748350961328235832814936419077700267099776484004333441852721113524390368583558733342632910298943298822117875003545975904959462410791273117025885864316840178684176024448118546358457681021660238076560474772071542310969602832877170810118383256304965818877089289246633849134004690629888745745791843683757215544533015059006096436912596933111064748009883316561533830137564646015760671601256361365865691186991731677772884182297432702317085348890603894643014778483476786164325244895010738570830086304750621329017693242671957121492283591180854642702996725846148983927959033128853587985903999925749847684039967709598463048470186776070705283972062499744235617361947711798613785374631396044942822891544035109795414792423833888017231324931852067662337718814195039424528518795283586070024183323071047659236273830980463399367167006628777425948036785438863638005015362713181096721063737006999232473068913241021430420833904047473587099878224617771046131950254634027138280002232962332490339988644565003716377460994834146838022723047138552611713954389837440111156507961161512594200779681289646836167206384493347821717702265372962301689334745700891294307705779870018927946373077439511033814621718328793949820843243258079657013316091691517327522056681895490675514203080227957604457118868839689813587262736930152003893963116490841775778668866816516510106287067707295185735399318861165651887751421411015278945538155318931107715178030165302299385036165390013433177937230870166087067722746509138636651962349019354434733537392959244483498207470556822701881536628099930435261844685623962853812902181299219766121401202961620400036134755612578788534246174744269686220448773901293362136133374606296450321910963238894624961652713631287110442612839238304603277995335194458711789304626154517499663933539062692550519291001076149435409201499418300342176938146959139106954290742121572782751912519395362045360025308333427891977000444716823021857625946552656354710859848266313165643638112958622905206425824837000659695636673472801331846721148742671920772621432570283350045085274442679291572647357265116374972780121583512448226642622023488442901350026139647124066299588543370851489624990347675826125396817212383658633856315608486092699005725105568380615798775472622805263632847439455446933659842893647034843766008041407086638719871048740839953086887058585602662142347228206442212356474768591472780114969896598338085789192329748601259822134712193265779132594407916993952760931548773967900143834656476565883949342480412945467100555539616988952339613561855776561402879459715884719757880459355517917996391068639083724463014225054456140405087813173655403962199777784187421182881256154326701641732153336941727601016932415625492149378653953545628838348962873882660120522251729642180412494682361466633078953351316930217541111038158214300310371520870044345406996913072031206089431449328663175720650373891426684094960124806566590822121064366870835459962420889192327681052748009809299049092537066796276051525867116807441139156525611108297221433873669589262884594896783804844643148554846931562463368923917185952190400363771743889262095658667676872793689076481991992754984871846123613133477072340737936432588582619607308389049516118603168467096420837469919570290819283265511680733131279187230985894565379827421900562678610677743302525253168580730872851125634548319925770990247097295510738494520228105541461553666769238631099495020453599686700444780392911046321701789379072797709485389824247746765049974208920650665803700193072138097497629010345516823135224172169864491017311723819652574789798397135362421867013119552669294227768228748691077346476856433515889843106321712508357330493086771521128285698676147789806404181206358226970294229812345127549312585814002526834143783555915735860747811123952148583258824287030888487411682978800090620026770260044791109562710540982548380692512092995272240905504536500436000510620291137091005607181349069116786198607911183644155149924599127855118656845595906440113131115877917852734516396789963116497556779784664611543895091730617383838043534953126036828391659428825785365356340557619484130227539158518102760170161269871714125317793545554207692863928258148493509554575523731804737906318795027206566425998812226030476285391414130670699077476849100427278346918709162165491123643968479720106269824897707594604657878515283762591314629312152289985147427043698844414099039811892952894614671428536681504537478642497873744533684666379259242334713474719845464797218848846251281930857483995336256867278797859586673422578246614000849802485953901501285624721618961142733044319010258198885183088557915938481645539229214482094298691087729829237812034390195138137272730036720029510869058201885213510712462469203458989305306851404027634530391320276758173123745895141087729319408281290455667650946051924494728543751943747447029872185367889114876436307303742523727862785855651706188302621542057097207329376208013859564798175528618211453506133530366249228218709952496323009900713188739676569847948994196172242820091075427544379700378923647405789689138752407869989310235570708855726657683008047347413003810025832983058362284737634944814517939863566672369971174019713474807656120379624514841111406881300722311859702280197438645209936792367514530087451671565419308614266356410231532035803091413036980859285994241898705075679355872815242236821833010634609556370054774897165533397137617898345076247077947847058752612358798116954815956380001954604914252776630496902444376054456294389843413534521044728442549096470344375498148384369851605837785963554066880883563236873943197843870522127167915975321712918270732887794450501676988575625141887038893201749416923939806817864633100800848093387463638271610256649405670667197171546686431709670711530918638460195381318334076323803363814479162466287404558299459312057541751086794301921767744565722917849689798831839101939031775024962338385052726167351134683645146282767687141497225322649429718557419212751940081352395160895303913297251650227243989241007671591693968640854658056236921955462439185851239340795495463552875988366164186456794396332789906434662705642951605626749943930171066734756969081485042792485929647608836009045423219420724906039148407513852856941725672629711717369384503014516501794535984665248439710679839557813494992462268569217528642177929564537985010085306599789357527865048419319573317586995475822460245610017655513209783543885849676316920101216915762219495509244311397677431277902276912833310377489198806701046596621514939730944380880482626064454948682250464087584214186835907047812962688656386657865915006597188936363449437351174406542578139993431014709611709251312477837996731132959733416121822098442261426120414596915394180214563926939974415563364649056497192513981364353573280136973792197394972283922457764055176531907807020103170681050212918279627646190964851610925024746797186126658497340465868559483810049182388681111610036806168009638570045805393662221356752872475557354493606247010877064336611103215177947830166281554885294941080843399161272927432836653407131238454701241437473605218395734578850010101925807606747479164406947710491340572074332769412272428943905174514758144700406674639189053588110086388962612974323584489425913618142508539669750922487784100694755735498295932370720719616011497798093898321895613533423231941463944695760349968666640442214860883918690255677993139239312980415283220403263042469760696075155483052876406946249016557314488668825722629929382450951776268382598245258027690883055147239915304347582856184963077831532050042140997552980308005746209246784933797796541510611429186119829165672633840296256767122688620996952231460110249135133887757522166789781019354064879567654857330750369808481497895701502112925476475129990531167123688442030265584090876649075158385719656622408627124943120560061558800420932179171426179507618973299874890109629024294144766521323091407528349446992683453381829350452106786394093938469346886836256703375075202259529521699238164751049705852007212918118786906358587179703689694330658650361047731945532808468370647334823777042310950168280571314837568657692926555464430213044756057649586129700500436190437803400926707858958351117007235913748836657709919790722625242348832475954763649102487327155455103464621992122719142893473138778504461820028457762194074506967957956572088689058180325901298619103174682705971164487619243654061479433084954212653623902629189745920428367247265947017485271005588204017562250037611875205655291283907351223728711255751951501511547309376396204841693436812827012499006876993325924327656071618840063677686836003951514241193859668487344004460238298067532411375770709348820338980053209518250386963652719994990438004337146585781216716454894274651601714686432620437683417907621594424541521574441061022735396939859025065157105080157840385066988391899051212558974392676583855623359448618283486372376203082714297492213604041049277381855573078023514488113756355068229657100609842744337318150344608462881989981110942960834583807465950215812706828247276236754641565469915905599061612008436846622155968415941306849503301636205461956004004326449047874404517616767794122189631668140509989651127122301754582961252640441437183677180122942461134243374675482520839300374258152709908377399862715335805547927803125993132060397650412012674754741412736312739458398290299788646480897866247010603492588409436719906332247807730247237514846634271183400234532243118954504387863455760880328182347725912052442089905147732329804404022457902275100926396565795584013492215989485134760182243463617326460512045176124097618994770370348278406266580470359540060574827666213676284208892813417352550556776078162816335587966947836313170915092791141699920809937741473532637340110538707104159455025680505641533206184046582078969242553989265906256792874809107681069886060766662161146933493152888358951068135558053849428258836834569961986725432778829531842415909455854504574074731342969331406659485417925523412984931100811069543403072717397471840638088085918528572578771163055972637014813026328313418064420335444318678799673536025912902682296551966796395892299624291650234769850602987340678137457531784246409205310908454226812961130030237663957273019390645146913632515166555618645018569905581994211110989683928018905064222367636026961462533924747317874693379733164511903560037754524023587322210359515751075185633470159386433214000917113563428499786829588484141136239597369749882657336208026795665550582617429453700713500183113348553954280121335660950509300453225087764427310999716668727990611588122706835580854462085529381674346051499744276470257014812704697142201576819894346062204077313643530084603116497723393181945031747748686666406578353473643318599742008142075493693203539576179433181507584640029580680809983974712889913127791104174086369947508276816241160910484347970200031865340320762138988612898220585615671332133091756698954678396376462616402931915683537637423261641218332484907460284928308826721565406734061199783783359964994607339479207887644682241800248357637218527658802556603621166958486835204841582637996699480607160853821910386457301467286045952492580238807138102262457237927387303315896627499009034502229970084521810910914643723330298112094710311335089772999827727872025785134685058114898645189049745798253340312583094194650198987682002606590043624007758703521266293406814065524507896769050195745260929798607005332748735998270497776541803556498146248067246353674317699312346244808626107789744583415554138893281919966148747097935659320750573535210064374846473293650745628652119398022107511881310071697724500038878356955517818174687680118902850403048408418074617141537660287993003284628404928993875506012710563166965267518637982569821789169922000304755008059957279438974133494978124785106943860549958709780899630473701383178634182260718934179206859596419587720762814272464542786195306574830984203061056143614493822767342656933073636608521678923913377410003803359321635415143472487251608715886364824687919297110300157106057443385441185280987218383266119390152497941042078764748747110881344606941181211476046746097544041332359104177781042390436030721520916278110469118567652370078238843347592797591336258338081993568559847484429631809136380154140968007804260758826399142084607449241649439387866738048711768132482317533583564655431494631969723155652998433482684014831694259839629576363070319392325923493433419778901066603690801974422940510917948816054403644331727782381981155182757878170251724092529073667405998863243740913953404652454030619625910229354419630711293983710499176774345591028296025130111342713560175124490132634076785532117655206579002856305867276989560981344236318850337498182643195828684746515438722338455046322617043744758372296916977021078565132299614049666313657274399377631477540659190679321200727203411329853458560801640532348988077103910016092828774090833982226152422902707238846821767643584178945387056194431048131948681689531924785260918886675406448360131353899787532556086889102388109304014032767999849182814627131288758720844876184847502014484873250736901635971231788044539722927430017932622013719311493630368176496909879476166167184150568885878483527542732260695143684727347744285881852310961324629800856347266666386986999146063490900865406961458896741351396491203885799236658762463804935181669947722714994097460471645043828070060859746844884899155528358845226526657109407455495468720200340598277543728454570736491542698237515774232301685806631399605920858806112685799700122918819006605538561806522861614449449948501099363452631771890098979080712869614736555231750091530017701110895990775061072611448780378587069234710897851166193276769711155570635373138828086455313079973145243454297098834831519910897359018621296623146854301098843633318937080140858644710511392000964497544120918222589448905462752048415184795300510527783042322428267234736795668774481095495522695310954379494248219200891166232201425795117764490298763574926805194272727558765974882532732514482092700034731133033670229286090955396296431806409776370563294241227514837456766676311229942938504996311487984274246228592056465538695299891871300864042295091530403204168266366744883823557420937857000025701937199950985406746841860664737893118195770646027925907551506525764723275435574002505869467693744574933192813847680292801518136161569435056467991120077050299400993495666998143972984848189131124678044170430293872060729475856717868682288140197450587308044381922305732859262086872887036126904047156087566733764004124668570134265538213638591755587811729766593721054005854370654784615330777448081195502787253747952516748480172560118965693778775492675633759791085331260154025684902298102241564392212794089772114983661420226593201785385764683338823619933548318658261092408078232963866907966016813542516928470005927189042206174669602872552131309600253230819265075459029577892471893403614832170683357967107395937754146595391878819917568835333045265641246298601051646009988638937630047164592319642339866378456061389098144233810572595340666625603081199021398114791150059026470372916844334323321702214167007931676872712591761883007687961911947096330326541599649542646496165093770216214962419890017222559963913066659078633826890043206114142668116716793443480358716314741922729904122618111142749830569419890815656859229935612865408208528549928531943090949175473959389466807017504712727078614855621691122041267830319634759815914142449056173913891779204760209410132141352695038198990514893135165008092205318519461870298907477577410717670480513575239607468364825071709167474850453174525145878116863725357732255035916653540900678283210050535462370759230441258372231792820256790920982614932633124375879699488171422051091521877754465992419333573763375670473987394526574026132016358576713182672444432430751008028728965352287575176198022103157210535119741297581104684065008808156634910269309092540738479008573426822170119563514078856657702618092527064300462028935760514833681738857453874056738267242919042880264866517527301451504648962597078898981567680044231616964954702754139705142769378033865921433759083373937643819267375620905754612956072693818790275373473608455574358179632113552219698118813832420721605733173086908245491249716948015301644001509652398467217669531172185922720258173761739284382816196874387872363690008785855989622747849034148145239585189225929025065272591416902584158293971485236785657258633222893467015457027407390028603436554104921503088068927781023316694968293360365176258560528352667801764636773196565126498813271347582992867210039627658428199389273920061708876547840725727559963035586230191652078529220404146642794096230063668838610685675337500848006909695737059649022737205589652669754588608514826319688691714588209202395883758580951894768167785913767466772705109831241362180043856029436930232643447536815420978520467930143126500751342376187610881615297310501889799848744059330136243774829146995873337500840964761469334028231859530426480126400838885436971155731645593414175438011162266512488932676914628484244934723751954180601889056494414509189043068082230932290260691053014054986016689075129115389142898157056365652631557154243772190677812092754957830829521363609069791445984912033553937586602163426730431742500730292494599981456980063240351591987189108869562161501455335616786657991758403721439917095565980394494992217308492129831087962512297659596491828530264806416637348205241643746365899605508843774138919655461586826398710196270210478335609452396031811156171212029937568483208360297895072664295726119045042458946790001376285918178118265426513412628419747723992909055551214639512892725778691790749126330323208981397787674363416484721872179386164305202068536468884990613393851011704650879374448434082823098229128927980954934091738716631605785077370663829574534185715304132457248807394647649530124331865016497394200689922030289096288489579312728863106820431383898116769791630510033623223369444021210383001644403149408283613543354512049270188467839290264587438260961345001428714534231967434796845499243453847470953468408440335450599180937729410941906114305570947861075985782017242525618738979101909756580220886755474156749387654124300239883292817311934930755103314982441196510663603293885961358800862093585502715549140118304853518948570933794753860328339804481461188378094384062041670777686819237332432505084364955587318841821045044453033138719075660430839025229187688127882455525113380004595952683095648311169224652229275372467356337423650190477670824281255620876702487947364785989552757595247520048371840766840103781935181552878421929125741042141568058533186985918581965250270074020621376656759303294276361882985901880119940424961669518604667022766126515094780025054576219646741068546234700466966339092598338199931288953924340875236073921750970703679542339608448094175612222262119768001169906544566554224321989324339835815441375205126053626242456855255940371004400629467919750942961294236293183688343328263480971778043553929643125313094548243808281796351744298437012958755114660299802414550457375287422697048737595816885463868945012375517031226174003947589341255212301151913946648729643266714409230784221102492012719200737285691859054025551580777913100863602322231626427441852891339892281546726301605107985593054345589693844157611272421082046695931963262200323860308538321340965612618175578788289002364767787667104816182555945085662872745320764733937453245969075446768792260059759068101189714762686975773795640274024384737221590663608130448863099034329740786794479551312470512753954645779069894577929115231581184779451486875702535876657269950565246473614081832441539440005009078397044115776771278100805727172688557406030120140152577179405063133042445345435146698389723841832368348272170778573616559424145488230052707323523424406237805894335725893342791905744804054344973046614233320528080932616132381713630555282134535581648083953168202673402974976279121280802991760461094731963781703446091134685776566404249513353430310296351751129232445758810771550084067741157680232481612677461507856341693984533010405166928705565863481775942882152103940121243236213944297534546129180354097005479429967670914121857424761222427754690172607620540501912299749730807031570240971544197520438736538981225626752500842452472908840460461302208986983369769951248865800870887107035671048640207133542955142138689518146835622061516233730440190755136780608827880156713447790884711536184245491587775584322819204181166972982731795520912620757587405175457237150027254444643385119567542342776062765163232376851405075917040786148074196420441732216924459361518482714285684529664293487114853666037156601884393769180054780565168292517812558383961117851658881470764955519966515898898734063870079047508261372631884447689433844709451187962116526243227961999381690293829147344234541728308027362077430124794991324305631354681484979600153276424722103290130706511330698231002027275363557359968560123789316282738709276667595129962709481784863153021007565467294994189675953642004531026354130748896179708689816049334527520302984755433872562775335532132428358711241068072526661652655327628075782157717019006349701380726593433666476930866234198780862160295183315744092368378479237584782539963940106202803971581896112216759797256666815641768693404658025053332796760985335096449474008310658919601059656456554680976838739661004144036006922592061242561888361494534398293771535551409345673182778388486936468869958249429806270008047438510010498525567429199180690414580031263774275734350184854469650730205055297996412410082676643816848426089738626746292407305535628303024908271644996616848323438376563456062568061944912327443496573819700826393570224013658755039414034260466659079938918556560428434398857103400617826453595061330142951652195032746357041755751463510561666853255736840007050634579290300508489523910907701262412520272699536192883572033375524886988817442108214439796954934322981528243226244975126994448712607468422486888813632786067838880110735321561935614045925562617520206553851396429354459252075884110798572014629977387958202426166358001736088964794618660058448718969634988698603637535210801565291462140425773406383791790292435278429259210658225004630194854836634720878820661027338984866313223527232985005566138607125997365604020199697139574597901504309959223800723766947363545236564190203028025256468197316728867754323879143282587211935564723140448762588100719579418103742009118181535123610947308453970971401967720718323733804585552226679216939667335954304138934342895283177258995674374796628608654312334198323982758839233878476187018186501777153011362176038187989093969146450297909205605742699349498150832276241348780626850686567845656000172318774109738173541003414057746495168782422714580118078472790749339010434884382956976245804729434731114348881359925002855485951074129322981151230178914972017312091499595887953980997375514212500566694625436959873880307754810181009043847035823477132489389094593246496550445738572792284065004511310299683041051198431692163829690790841461411190683301398369992474699326336045788897106155556388803093898358768884484166893488515221636288608015652012504156447101565158650047636935914331639114266379708905130790119894771074746269545143469631035313625958308453815749402887061701234467545511920014736595869248405892374737689413759196129449137350965098758837066923663255917513911114856720040927212078606178619290236902382151731968302411502931632291076166153378663925721452365196222944575379965988937538192611646391529616880418078974702116376978496254521312768862399692638327243150423729848871249019075639044506730154654136912324718363003637323751434182180825441425784140820098100069087729036990557855888078611652483284115045511067529656551780944242663003608920757769549205375406019736161140965660891047989551854971260995792166710932796728046894487533777584094235946317732390956758632255123281960347653201736828096870068272634102049513014434829680211045851862093036237431122140278455571847312855143633809074262324748966059029041173409790532741429631222115888872244081851484112668797189268518396604401017072134917016684519826547731213426241903358800556840732639446885360800614855848942458492112485110111585947174619005729002086986977436450438704523962606415710287354331566376270474512327350649842065816227603258477261316944261666093038283470361030610465168560657230191943216881211932126857270161274321032126515025498485228706096285149650470730767126164215463869630913689922593429822796335471360519690888892989801443808826943831713723726049614144116525158020698503547654762610539728448850187304856978849500149157357376983494447933593803754455582687817778996224239260130138009160925205427211707881907716115213994235646601595357317313200297319323596021030488567923432426232495802084019385110443360218443107931298358492184112352921831900972906543726803432938788335344082264662653845458787933516755272667429921286901608261373929677854823462295803036052099899832039564978681308686776551044965679607253377854227489637033576559853608779666688955835886791430119134450251293406684678174592177718558816928121965946141567238401325973433254761718569444609940566568291376957202019428971237408473935075074498959476397418672429535993538397918226250754766704536458350807501195885718539527433182210444094131986039553836579423186119883413383471290725459720463851930982536152046574853900326961821107765961666184434617902970899909218708063979280428686503037982954075635298159196002679293600948614785797741644683717741957202436768213556844364373346626163554431058945549133074736253220643511157066958725486935017868438282421692815564342362035478006380086462819277131543762722817133046504313874237656956206757334184837451329506083382776771690890376923823212203332875333249453827597986263622993291056868590356227008535963655758003253171893343804646706709117512736087384484526402367194058281569566306449127666506751562561621396995219612953291809835559573600404816862914747814138679266959219211086156354341499279140293299890191559952737383393962257933900688692936231315357170075473486549992810034761949549370034561707427628351263530342925090511876438736168830730003622031723559741601675629408315642278598036503263534527194442195008562251257935380686613449378037048054477362557036921313185779167985902951779050460687452158406421143371967752857931069374971881672762587466029968906264732430707224114114567235353947086419755382883070923228641050581464055599171559188696031247135744588741999144255062392215955046717653985702856382836227882396727466542733827161056700592707725042197288139664288132365017854318559141052172894495403127017378532590672559810887436369984868744302496839382489135023952061255765777948700684248879225358747844993029261471890579033216732299565935897226866689801546878850042231047196905662834245410314037282912226529102459928597519726386931664585062633383490953574956903797370494437824848326796801588002745619015077960992872893452476441188575440196714228426765600500923370369097341811825202934338712390170427499313436236532366336530670997658878468406459500643197709773568000475848365550913839651339737013002938118219930396474035386958431185703260612598742665646346675478595018476011895565052154711373162665873195755501783946304515167347536974191170959040099790117081198341100099433684185953133489527047548896101119739772309650551964998695715504200128598564257161666898977662021225826495342998149353548174986385484445801775341327941316719749211101950339517544226470584063812182414365727360786296115405558755691451836965584601546032338884298787161231554185606061889249323952720407384588536599255388781850168187288367313730533972447989307655452312232477152017350445863207960492516277550188481515412320474440770514200037266597864809533792674565399806444665597360186343074414506049449847983858775282529651792167922824902457993155429565649431494727345700253974115558026520267084172787660483258468870894060606407011598077233144477035098954084535637554063664061636334216141762321649559424543107991535297629817183857380803545110868795485509901837946130718978986512283579689125611911561133218245527138759313922721929790170759243653317757834908391053545899576313730597738396611114929619625473041954876292638194168918888613330521926783694829483155031667581741653493435567868017023519802120635882963785493774038760168347332661266109549097338688652357908997433281124085672343120630237156746305202197179006101131780915035470610827032235496826270337396831676843618458113779031237355790742460193109933164068058496815222220859528807250546721555814970777193041794694778261698013331444811223422310862171065875088307701507256267377998032687468186928972473989351658147645243800392691132470981992158618320745158368135201879367947910220725756702189287189267258321315372473477211103598851097888812747714040247761089292232993327956381671969050450659276752610755631447452128899873169875592439218640521718414920059834730887585874011229904459050711137143251946641711995553610464436433275089884672003008244502533928969838219096890263034825928824501492434542517650602682431556144910431787621261703786810244121322789999785144054502145444247788624858134479968326868200919302265021712976236683789714407520833067299756937609091449833037593793593751830099856340592533568521870550068793179236819227541028771421568623984266933470806265565729268396554564886800843963771452378138199788869279343132198062132162040677263737080843123740544662002672384897512974302124160230509988916200045648595685065645742544297110440727016460668779063821527776196950570329362944085868979449615769114841330863213150286104677493222897440596152132215327937503968067352005280236706452236798532491756960748911379971093391375428138496162757452583109980491890749823072829204427668079837924691291400845086851071775525459427061863562634181113898736135672551750915178658186680583702535095318294649701169080542130754708446609310118889783743269468877018156830099464805807214629685233224991565492506121165535234451142628461487332153361734972822872036433274542610696626153112249768671596971412896623502214519670380055552070427828451746259609361880640657843308659370033527812746829278816171395792794947562555013419429926918391973295716838655210303105872948491980841926728817307057168264225760157707604803543846552153701019104564442750575710109663830869350950342163391179149651970534476246435368594011248707414417723279789320516864958725046352596119575934521310371861064521853260946537563932430796564206272825025448108911480540998697012503890805125971398148930034554956269403425864659973176751230333062147768834208058542955983644060125126948429735453924255500458304511143668022529020413516946027910040892795030022407793732993566655795488247411392975389260637339745714791483677778279812306642388153050785906249544796148330153662817925192131373515173130580179374579686872324848223137764613506541822883832001462500669933519428916763359720318710836482897664611413567075557711740813232548199184389605114234757210018904984868091982838920859992907176246815959226825853447009209640262075311275718520878488048744667982815163087616246371108139685327322207955879772272039348094733782157805924817851153557539661357875512981790927448779962112728334613174664447941487180026669067552702035845174890626066063234454669486329468163643823328065577970488991056288269861938900969238056246353010013943981043256023694481122688256310840873752721921531361637656370955087240546170315998567039161902280835181141400914940128134947444994764860968117169811470850273205641441764554704285958334408521270288876719084362687279061091291753771588532398183687671773612947804978635616538862026057404901617079729559931268120257502444145073353091376704841667085388749253807957976373323462009426972263761468742501775005867339796331185266506868315900904893030930541116647025905956551258582048107167579690483605820225614842666415028003520840431008487379605059755932886875574459847110178077085919579110883224366131178042596481578343956896759325299071647199064619685417662400726955950582826222549903015645545009761039728320438701075258701613138194040526381507200093857363252152190463248172661954115885596257849280593929015330758399136577205580681672371091324992088721127433245452857223210840114106642831154780333981436825356288770336430993516713217420654919016050865702160056664404190929737340234091718528254227887913484910409164247509775253130592353529547516310152133066314298128685298391738035578050756280100423299224740277551531016268558573853826773059086350246771975663773364094316723636038149860601192722034970952917590959406641900136627281035795802551162278655212934576476145342589992372763561059423225954169456319435326505234920058522712617687012164160177787434952147123619689751755238196870445053312273961058369932517929027942074001177754581176805253698714842300742747981098801805161688744252144024635216269691838527327879017607707041551680580838189011550477409770715414284239234621720393339894154648044792061535593467002020369877117537067898498884682501574956083868929351617695242937376189178484078980956273772223542329162241023440405256678822928332021925733312014229134416295531327835541424543217921158136948181422112131783431414637651787872459731255448917869141725700661322410609414208236086804390092449428087013270523977171414574407646321179952522049942765345885585773370095993027199723209018443056722844912651490983458141695991661585369120921634100633682204327305377054190376225571969370814876569566268331594025976859076243895802382273279455647983309127865864722722082780117762413257017291304312713960621246796455964775394750535912532741629067469107220023356576695230862066589194295090219780095987937067371370576274347381923077280147230846393803662086061618199464233692105111042970171413496927221405781148737840032793775290851255666406575342254218035250841363910522069952005851032433003385438508463990323890650500592012978605051002513608824230938575438531437470753495174593784996113613336387232721963012072217937562420065339775486798060639440597563690717003137041632940716466033377737856769296807865522443913867047096991282883945892504937243919832497899202672090877099326275426161210607048325672270426999769742097432046877325175592035352244979631892525930363916374137759607051147346884787229651275964302106214884078533078257160272558966755587940131478039392616581607633756958595519887318340731274417894213547512067542693979231098149955731458340134001913483728073330727194915999154163381655919517112211021511679303595483600271776138834829639743323258282256585622060839118833136695422011080588220004809788031293167252414764608355889007535910306248107022242801999035801996610532349806159958366617730623856429082237971079558322104748623292059612484938651869326842171828098136291351631009258723423428028605913807783190523322846479300049413954579568530397224883272746378203350883406245806944919700541189606819343881457506260685088796114941960543207982502552261359483405696932118569184808842286858789653949899992979121575655074490520421838550326749995390063255012678936348414512822061412894827114353251566874929623025812663272499283284216333398756695591205472920836792050889755996509785486790384561065513532448270077075571048667364440205336043555502608086615613128608791653307343970066701622789100551843697084701013013307955206800614577366366869711651179026326379739482611985350342098761536271572986775112635540861575566841968484596661841133668859986467610777606505323711137245644302233182676919389195331841775760680501228769881460027155125154208048436724142010349519699216225117402865247868105386359426509861017147255907451860953884790977305681117652654494251290679265736677144371125985210283730981989779499842067675503842229142782806274890290908937943992975274840232763496939969292100133796632900340549379836026987375469841934796517825392595773942213375130120463450023200834320266904697121483143174331458465196312163675445596156696482155429123370372980815279832701746862215394422965869096928112759782471393865253157353665904964521541091306125305063781215963850416653098650146725507055618530269728670143562100440020085233373215705030592822106032608181077882214588779849539719677265873477953959346708549964598546587789907061845992869173734376812919092977376212389113265440180146447143059316506350218605754371192709790991121304190201805487764178510867814684027256280801623453616258155153931454222850034185491623772063122348588197669993119967523776152202459271829577802519675719364581807108822304036819749200907877884801222980999266131836926656994798948820080364714911162842209409384668853309056759423739349452590296725414286514874409775068685918496513723708630237060626398672790765004697620138268290770077789563971483881993349616727249405891290108741279556449264719876643881052827687696259253584050633523047803501578566562698480478391759746984214589699659880571206628542106418487059550242632452881296019590320651030488375709763354107090687377756593639088290539997819620378973609405449310687213062413694435887105999497152680612794714506690478594755348746744902849285124375230945675919172593509750899211837508603830370901757552675542022041913056160805268485666924728049686842516208592024631430941467056212738083637515591379775995135306186076530596222008536075689289641782607240296421158436919427627186472160287168647454275197789451624105651482281973034538465679088323420813795731173807022966339920955841859846710750565439624025902441127882148665348284823595248510529338536855904105132296804411572089612987158318291884591856332252032515542846814786355986182357739532131918677327921709446057810613355993461635246158600647978122344619555803204739823642905666717160386771047437593930189733510559194875120309316972946253057205599515377824080774354534941543068835132574623068319509135044953122482779440425974417007620263234375106013451726039043930167605936686779574632312927297685417262692353371600892058960478388657924934758490344721036791718163885009558471664969054478720799289957379376356889591899902389579441556981149352929808079647385076028853966798315711714610324454015802200477324480225639090802436169006562657405150223073768643597074372973246085888093763133820378533297598058024262948052818981393330221116011233879528186768840052085324125349640837687669076663429280967367822810993487812660240331933949213961107047474128279462043396933852761095805021182774950459554257808214403816467982632850521011225192703409028986742207443709298875221334309986875748957285578881475384377818680734757544529149528258638107614439227564508855921145042397999143587549627000788412053601190850318267461035753062344762554206037773600437668218761071008164236708819382123821343363819643733886011636550881982549083947693042017626699871279167196004563357808845753933361493256578313426136281251954962586968058465595535634984960856328578237090395153101916569762971704368210627503256184061422270044859917195529655710222693869025751448145789199665657606459534935756425971481459218316321420727539877995387868502647096085474545382966306955250647792021553270120294724643753741310298555273357957629998545269719216663375047573621306923846919778891053593801935139815013384846767545835405315618689189667619264453402326888905412709212475961446355228634172167329747648257277909556439735468945073704797450036715380498608831289107978564728185228852524401526474919140629632147856907559816010908204669380045251068391066829855041351304617426099171522408025688572789853896589022576334685776745615999805366210793800248146685157102594093982728332821294266765916916037139099185300500605456067617798444637154644974085540616476226702350628183144817078691641677146113766020003400697474542620787517332201321793032086014242266132506116587859373671269327780898403127821889635337549888125245153721260840070453684205462626875849723780422194701901765494071468692329307820240669055467762545566657323438759199193295560257976881751326747175624953493880173922638680020064188697049568081198672130407775185620014982153246621398930120047522606582042799093281014446287051194257116933036969242258768229923616206767516357085582498333888815039363941079182716048537696401477503014539260472946034297194591186696734101187473357410350185967405081909214520955111782006877967325390615508369274720744017524819496180911829173686724236859362852893296065400904075350238744045432542951948151717479321760899931528607181503231077699433934557507006195517061854530814731362113697063000721887320205794564370752352184970862178660258800462216431495475525245159868303853873133743859604758996668503561189990068799908425488594619486250520555540035378599541625330439225007645762751354159633808272895019208417434683312567889476294120335057519590658302514222987627640767000929981177166717192699249896142939449974237202653201948300790616229361444597167483371239881240076604543807268645452169175547311194660519121874650329915109960954582407963559869221126199504513992283046393841687874155625720975263703540495718130240836048549819988225021293641782232557866645838656485733255636317144561568597981310816197945591770420178511331434742720901425517380268329587553052458982584130378727508451216675538077431497941574892978480400995424445499762671830030855444770510528364831040716565936106106605502608511329796048168854069645124570290745377039649799265725558931204049272864427682422084351124857469203045675883340513694343354456356809985573099489834192447014999817936725979155822733105392135202405834000420100784748753236331521066475516591452527079641527498434146864415016791322233589492989178948520777050727929517132493682946060538242566270438244784688175321004682440936385103187838988525230325432524163648237729186929244331224797609484446498528603570255797920309698983063724411911114912369362565463099530446722819841357456507363306490784081259658783933823358122753174421842442001494301672800585706028506377573377275877399885456376890141656579953538901106959383793336983786277208750526886329404261782271477328177811567740737296688545429890883025501563489702063106936804939898850135934200090217352240133661046506258538781168724925548144990960973687835470816500221411541795811375115063722994962953926257849550796168750088311324267589282360620587667742209530277772278062122766933518188440040963446286855669089933115199875795914224260837154585526684328093446690649905939147749052051021755433926432562512437972986009513527049089222892533953617564561826378752837795201109941592866753709059275453226768071703405726763178795000049035230282161038596039464603170754227586487454205795737160422986311128020418350024602892878867133691489128150569501005125481504996713090990425955853709429620934393574396638368891104813591468901545618112252896469770002249839411962085673638917294817626610497648256520922836966154615069805931148405001946937407266852902605143860971047581549534487910429074675805601039618579672642543551767941025071443117411844565082614998936866592723534302644581675260112548658867634780684645987428281696360893563841407070554454869324300895596243538883766197939700475161029471763994284357813631155052332497959471717586873620426843163635855011201024488204667334086528354872246235874330866165701963032036657019057710162357154511065954998694669954848242609665733585247904745617786935063997756170398464896725407041363281688739857637268129898460083999295844436709924597036075136648774400296160330341565322682246896389531793928571222494653934870454006064788777993507629997635585932191738053556392150801527451910901489404858255219673902376007743689692014571916174552753814563450253731404620931740739823366257760783040827508371866872205548059513465644933533288452712705655420392118840266092320861483483101289214268911158866454547119296394144338552489542656040422387026279701242339025886980272014409480361177900298523501419085920293700945364405420000110278694131585465655621530539701295697285561450464482696717032296402819925307833766487153766156668274720767935786214430927719901219079784540013077340020281489900908451812748777607234955615593929249969634419083974069126370210658267710532000209775810624117146767911290127562369650402323935596663209118493949560196993471430168743848881743749256583716658797695059907901184769476174258265546201008555922441354489536737497082646178866236192719566801546689180812658907803981354314443179037130572897003256060731413575441665948182500278388440903804227210718960529559287243958184882964025975852856107215713343676311196744273007694551558473333410940592332926672252514233923558178823391277126393389420598436602930174405677627321778341806370734352898183783011231498278167976587618441851842691412418181997300323525528357207071219922822841595563987688090761988986312097364505917438552578916806288345825172134576085138629922675190736821924573313120072919122158046541989335961261258707214821472312452544765121563532851526675784111171247225114533215717631195121011013343474849472316887527865143549083201312053082455214808218163721608699788880220597845724319176831452900003512590147098867294324711634589108533986989013387828791571625055277355022081682743903707032612474819738209881017130367913358338643139485663909322358830092925867502750120720917627008131990514423781719132570579540456185528530970713897299837261641745389608835580875378711757423804850325680489311389780604491171620524455223393754467485007117295571257991243120052101656907716850164195181952012044098200802661610073230543772447391194299565973835810757751501789742846512649054957848843477787160408577923374675396788016864862617589120295911415425729943257284208765529513101791567456101517570338427058391981588088895740500514091802766017255761137818235772089678076977457043902649230136955471671629473591167324325124452483798498599920272179513480199274864391935477078468173845595301593400568036939502650463809322862409337742945365243384875802763293392807498364469942062700893540005313686669140800635753611162407844937983228018212623705548787995711727354538799188504185472548153741197912500656252748999676219623290999537676394778303526702910850036711520538765232511931888372447502516436923655564297398641921163570781336506875828822047425390120357297410647875317819874738777531894873810012209304390196716600830232189351104439539776603824213222747069992837136803561479048753408654215840127673955334530194457526359291330889333693463195329653526677937904167154790169395433375962522535653376512951066307871941782391423413034507864779427712404401224472443245880286510558304017830874052074975170981431282464241910176100664020839244572637178098385494951539706658655534265543478386849824884327299397752061290909786817355478269695585439706379547056693936676707389934216710897700517244772344573965427289680939564467640486689997003000506344158044110644775893584554280894859435752820642594697311319865598169440267850898320410875674921919942909442346713087146297087331974627137238244338714687682398127172744683390179794909278441352096777059583752978233565135207499498693118403051347797484263126011214020966996758743521168030513999219684674035771815558853995015722381420166105515374110133284371875683084502433549884157615728452170398897875836702897846356865392255147093493777135356924004909779834250919151512827339915378311424173695981285944000839730381243927089598881574472119673939226155311653492982091986729811549043524879421436362515723397327923478678306153208187548548460400418134628346864589102680178358278939182845108760304698048620181246428824921587207668009925524902967010659670257277718308060105901403204947399189095539508888443048377757800355961696498003123604034621304974462693820274043975791981582736079349081809749314784286551253221827793799858410791945107959723902296915097612461240778222968649385290169176709665069108003255334752566056644465232976955306535900268536138412876212118482357856126396328567607509226201389020380626311185128363157373647079305626189458341794823871242179635478488276190612800360237274917984526101663262546465119114466658480994305670540290905902213453569215641178645305651606771845438650519659411632514269402085343636487058696067695926671279795723715681020671222752983056502690776833522793686628630837562867400910837580626898639070504374079145470215125380357202177068126475121618052639094271777086937603844828699370258329298573892907960928621553018661689223305632339239874797652211007998071272158583536143548987461685811715602702237303658527816174068517943775218529365400531132509308785417043717718141541635991726629118238818259360204319700894197070879950744291319900489022637394977214801178715905391768317610214472480528104599241939605877960150544625045428555311257526657098499587559012010136159774743555166329373648744047024056736355075777249006614254828483012748369443772419999055223837802785175900490789421417973092362768909229259239750778075315846333439264311369267065200548319315376221736966393004705528993488909278993903953433600361284730364346521720971299730253750379485406924675798137876208701892346460718846656582570639503709899768498312928732237446809393200540298748875572871016629712224488530659098791246172216856039578878985731273574675643702141312525551137693012527716981793104990957934335848449849790410125224550881123573920307979747607598033870775260627057777575020117077769284177180421265850868011070309658029153967532827161171596893790577526058303232354257040225390014078773080046705791443195422771502847669070627389621518072868163731622126362608426665323313587815379228766149621784557068829387090308836616640304442805883201108933519296368733043403126546128691760547794173656581814509166628201974024990708430131131984850310050338597634692695297239254003585669989339323422918184889888873471722919375201196980930733672396709758359817678683767406908713268095756971271297210143070985381521851053064282864835396027354302203954113029337555220663819422502306053058583499915313002417816335452631776330306349799057724486172319567486442392020572099847456722441717097777648399524891535681465618252227694740840862700826252199014493137553534488298198508313000810985903329781013891565968785214662615539302786836485471536795849730701542310991055115957476130128625098559801407227049640913512233022698595582018988408794791179166430333457024731422675319495722490646344180345233830783498121406169974523466333831950906844226151832422361853656348913390419336414724703431563561669397336631052450589411147948906928900604088197945336172774807567675023342471565063235192821299343171074594789619209864976169277592304205331572518893881293550220942664047288378899283914422133404849235917119900086846877870066120552212348375160653077132320923938380729298504992812340103857443661358317939706527396836381477129059286022218256132019133491275972949740640158510504648944058195178069594262970919336313070353938723075085103850965315813151448268314376187955137373767676664326221313076835303046654384264767486357344353313316969587902158583274498247322152615181766617306048755006735093222685575730172943270628382986333028517764850400909707207192643079449759442491295766912737408302267000506615721367028788192954823624619846148905134510007689957437153233595312590050469417455554628713391705981573178071084419581976590119208751704318551324339047251345620047047647931427556905378035481772665289629799991476408416237276857884280976991524116829475855473492825476942332629687967991600676056731282407671648788380501541718400376545108425938302139549279389029772494858688649435822341621467162127046891259168794695348343802944934223112382520049412781004622438596955675267157746259102356262812259644821020784834806319368590432858517610952210955977746428269154101689583209142586751024737050659128158513056637273645465178151020943568212177839149098672505161262056925038044531361173902193216414422190232406743999485534055821500513212558632972236382754040756904640936511739906565747281231066008874084958513392704426233047504556577654137031135380258459930316990728651639707871339743313457932630349954750768411307814689029751388184632610690647027657765199666187637163979734533177594317739908407720355532357101164981774447752487131734585395037090090584515061548585394938809612363878432113103382314853500613611727808329057214885208803265914086099347701944433269777353521235808639659556842460959969997043474899817289462855850487134368614268296414182979344688349519538956764223469965585362230723177524213437550109283860727036826497154500920174440529120705874909335636359146646232180064388967426934558875081719512411565295790142118202860979586243750910095453289351583490674413246276802099349708158077268130148434116191117887975092149912252740106012963499357135671842458726706881343035082787878677698931645335692381108633229014021523842823260403068315605342164168336193794806932029825910738832871587675694399221700865090453502443451418932518498164162842339966017459895937785238987936190318601311400989381034565571873853966821128287357790783161068141579542090467549575558166570396106175540450665559515190441634113353804938933880181223048501274220850084097133566673369715854554048382236395591554564426648477145183425745776226038335906861182012341167922198003205511088735885332867242142355344128252290276464567612067586955511509304151008192879419699972884851912153041833415639151730133789555950117725593259682937684818618177935644989060254394655689844812006196707923189150887356285874745523973989396998462383503719275018651765784774840243556547010549936747247543173924797660544306955602885980703118852724662745480349130792188191582102605692209728532961924575164934824826366101458816591911944806218248688823603999251177167641795377576031315332576310031516225020443664297758538844179836242781414027340801763239507412567306533287857708172434241946165162314454529943523283844975847806115943269061041131638036770116275660361350071392713650029914636366327674083873045785699339240817109503471768274670907304096982043957600875304349218521570146513164430420921459839117415777605108920188116349146722792091610096403930279758968260082158583168068206316775950908467632795370795615526988765918056519754551517800424332574407916071493490464722971280116739635251252625918786530766582011951067683361278891467064514920644629044268463391670253138007558607723266257114666870210581413107764946703827794942461605001718334701565241321414985082943347914617628840496481284296225888985766075130077703400584057429482906760441770851866059615391143250856492830588750014101671922237623123965139972351444916896477112957122226583276089157657348631541169373802122357667659688841625745143563678143355887228322262637063523106628259693891400509497746262462574538330083745313993349340972231332811675562277550419814363078211053564006744961708580513228346983482356913168267049875467823319481910822211499741293893079117130975162421601486827706052075740466051566327923781774503139202002224545624875862590517601240787066906679457271899882761599394138089064511425231726263233675739809330685605788818182598135848994629538035374628838744136874944242717739008158511448896677794854798250930433397957874657308880168329413420784086936227856163164289685934285905588268343296007277657253184388364210749060110066402865446174031641080419627111844844648159740527404139412363422776532446572069598400318519185366624282606961497327648653465712135865224294319254388277259255587667615585213820070515626929663782496867842834945269314918304613300399911810600577076521261966628385600872136418588477823070124583222938969900580785518815943354500244657410807630612823118041597992553281522266859913780162515808941126182692477279896651988939394886734162239545561721419083730329317782406746591642916026628362875512356265085080123981587506745084841187220818416348723684459691285588584429131731422787792063519215847671845700255239680887903831003517114505789311198557530122943387043675715803609651951243549359667862422835164047715551866325879979305583077724347570335702030021386513759787647415867244596276344784661520451858867655620546151479547577272678719609512162541259866800125531015362825418789651201684212990661330309009965098105025261050497879821278945918388048212503715641940572383369831884037995014070812470914309707805282315918568908968592646685606023382390900845194993798909077102497771548163675585869585042847686162010853270968387386607749484132155461290692268391605847171712936282350446461193988047396517094787018547567903124081352601274202790905763917370227640362469423870277838460612991436681020256859318132218579480346629836316070053537301287724048211891485716316099284319951840668694485955061908748714946703302211788071382182901210904170874315170506087714177131078859266063255868433648859998295715832571327175891756336636957562076692006649204624395095492358992623454217351811286735908348961285490698835329967876319420819235048522841157351311004209185241301012333520780203252579353576397436513131562632107512365788719680782514741046878914618375537893406059663078429721289619084584160048102836297225337610966694142127446375068645049634913998286326266771869971200204193249713593318217226382664017861842259732575567917940115915873418798960521853355172693850212224011822831775158720415652878305360804472147566940747637704786565019645020702474157037610810263052066637038569128874280370770096002687463022875213874664195945996377025839119998363591213812178450570781269898676067773284340794080725060164425361982646707646680046837015813709883481145793526738826892180674024654240427465190821035358563641284020324866460360472198402421564613134298526739126558302140381016603947587473279390869598380213149444748545450605024611787901789214606875608849790507273446242296085717914046941348263816916210015707836451713320928686169946043737957807707456968236889391327054800073840407565504656357130638579929140659410377039234108298602738411560170290796938774373398951190769476797465730986084785901434199020164991380242826331158713402831936396021332282132759595124944047078989918245872471725772987751014892631440734237130236327599759914114312714869074302863002092966221287952252480013601289710502606594018150576233056198060294646031097807805221303405380329581126229663915066612264759910566619715279612325958050250829089839897995901954762840550086358368810178567778249509680587850956466697654577153135404958191836624626835551707900557573262583013194481399087003826042117527453970245195535161231572488443062562065743713360128522668928393475457068500222640220266505127561139512398677829652377338851361335619502869883114479719997207283123615982550203521349354316431880206972312285923287848914636386460526931252472405889153811426952143376587087928276524962793050042332200620914047679266921617015424520632726056370691093451455802717132468935725229577084302781951819876771287047503680493147089598810485491669250919108418614154664071698003935359214042594437168095978975155891342590061217225980450239124583282068186960908460038934678148850714119794082019330919416686720524696239373734163609511310294854783070643749640735460093904437124056636051789821641006490037816751344746195752598845434807510704774854733378327981254272493488327903732540136491810408891937375384708476874258190270073521194257656799235397989486168160798015463316815144887779938572032142508230284332480491274619154834891315679215866495031085229545452929220458507050244801013915377183361128386209162665029573941925883981517531693414185865276941900655359646625963198028961313054039385363955612594876975349237188988751990945462515316041379437958879748374623443830816065856070736773419456756458328220028710952806741459459409823185024774652692574120705611533794438898208598974480997427781507641975885828347610811842150053416727985888090194490450589188050574749761473467578503384798530395658068527609306338358696645510752643161154733342677060821645853051834513985604593306270884994056387650536140140251393779240939520705432255951308405915704904209969252688339326058881653339857093401045702117720793841065548631454512624072352481863664708018700093105496818886985521228479640478894277357742799594517702250428266422387129063120236627495253700900234474334660457250347986569453336632771092789515293373111153630775348566375631920583604365325562498601970433284275391558453412733190377261496780562909811400936162657295433833111508291847778544526646893616474138041246542831120426471867233323223850254677677007783800772881625384648245497932506481053760068821843256041303738750926279009085364096590326985417096812513331063208708459190061128669600494788858861202207165537941113330432000619432315790924309173050599221234627255503849384305690753202404159992367509446554335873304390960665773324821378748708513018310151579491248767623842944362058032359002354875687919690527363068187926258498606997662523600046101670122579989566318265153580769838929060034050516952964849914359761542553912345362571786801107826534914769765251301494523007866200085867945624566649842659262534518279872277816513159665163275087921520839392335841690154006703090066311193895909258900319470526882320583336357589222336629262224094067308804697709269932619274207102626683721229985282763191445883857861880063674299748355165542498735469105855901479712367356645641614655926342532677472571787064945746978491444958925088152427881332880429104552878936483895588451597894035386560270685689754971460564165597510048985985016870809678846678720049347382292053075564860080609649463612014026447493220872631954732990023713955502441844282592772401956862615809352285268263717334675377812131267016060884401724180434406310373091139778617958086421716760836659495138052740166136513589874112919506894233714953736165617524135903603857736816563980351835675793023800785987212876966436890557534222527384802531876583675648701974419243028169055761797501337291386990876169033966385081160215917157856829041246733341486926416238881971084336134628492233330721811761286316582613590493010823770071911565389259427952669985455566763057401952732178637035093660009242737963716909979884669717925908630400272811615364487624618993254263864509249948200955427687001647379157489983049266717325882745716053742827883810168007286413742687766965427855837142161696010194780485194688211717389006975233421157269378187343781290289858142435645048980067747741332702864592354738185909203468072440925420368912849117893777168668513404314480030253517773379200708707529576248513910440023024807324026986838910180783418606382870884727800936621840962623691884914072700436850783796352677571948984350353039035990439228217477591797407251180826140732214788081400587067503196556844635859038306281150247935693860831174192445589038770362531258119949063704260662069302157904767925520920596631728195032626785313741724499526961328142877882347611076904760907169366478669272326440331354358680502671757178470089481658561568068191171697896328968637631682191296988001421169002322169878206184117231420907674140358395929853688832531499857565460216485745246426618362302163854514771649695217554813573071098177699723056513320866741170202677499737763794949754713797399330220410305655499552564084405648382137940605770945822535880557610990964947000583861993573057308158608648953744764707225262661376185122541557259094115992363129203690116337981390562906284350890169786597530359041474655179225248098738309000516932463608424191909092255957291977371400345023048790187605099333347426207305407194873075635870841302921837737059337570612603173773404392128556476174977232301240840796926000372479581762551774684143685073506432255120035322601712197349727859652287996945171137180761007753162625905963497971704133138851502313445743478205740866141217361967431888355440630044129510131912789744270364946935490626706321013160067594918495048296165722690731312052384502555206288826844979595869701354218169812958035674986289678334692604206458918867219705631738342868044614537977090295651391162306038729709565551585491428170404819495171603807044135218761560894600749046175591773200158855572884710020311166013332085820398142894936461509303913123543016803752430976688370612918810266208210757714348122962747389586056656634788240343539462037627841471850077504289396182674370576591117211831326392511612049681478562418995545098201747646588465185089999440137828694096360590977785362815176016026066852003767041532359482400916247203587391400932486423488571956661648462388521859635551618940228443142516615976187491644283186472740255133128708560628797211752732764020702462424957730562212297306174136233710331251007691210150351016652876071376768407377897890593301116548343024225305285010034154530083528083628910855359070378634866924812145608299014085410939757784060863225589389397044627359980516541975899214087383762087395508401004866318066024636014959467130819325401045074052499214921044761277688325189429161555652762574064644630693178276141999052772923641284866168604203977013020964981168436761364778845242051976053436107696695154278042508317998280250902308172877968109539668869653954399895447409518246988095078653350091025652545355058396170134897692717171731327133781152563185197037865094397778530438773103596201930773064071952841892511611452702487375215239172004441830905563766761926639321809097268083059045285698502820510189176877556868914272760710215071609139025731506226731533549818289518631272689043167721245031588452523646946256319848698184524530024837394487002128194836153579509863225189657222561958470985710597315177775029600161858242763435944516784648437713245090400614101975319195762263039383074061156179047535485508121879583842075845058380611417753334332121712866081456778588501335488817625840692506817219064222615483918666022859684498954962235334087875188830079993444397017095346298601224120313490982536077855462729468737953598528392487823276897534573243339463103725370520928253982484547192267709330156034157514870570718081580993698968930965832390932518392626834110900162116263805478246033495781580649227049556663022222598785705954177313791345811060846749608154949759262962381372227078707072063821908789274881318607885033591049208983723082247135921857716424724961078075724841229192973262401153703110978858422598355476745642277118768937279274251201004658321768984857747266247342858046440556162155640482674140796325923167234121721957054002068543236072484667323273207369565076245343262834814404303128759798811574178503682531419803167799893088678376932851800324780614987362216543647567458075013326619595014016633462390351991240307694054124031320739047821542168841590800479993342505464711902326430191606105532938132783616940092803822452276415707467701249213023484845528404267206863075842598633578096687062369659299970738421333699092824326299513328713831877457408576703966603900385943256431622114358395151930412217707364522043006971843324321201703323202798645070462148426628102806503060252090236274460600240681426642735855048097099780356970761804281263742681104760044134079675825400529778604800396090301368141740731706384568625929110710834262865312013783624826912351286478544027721841971166051571372911083402775800100557362749231760251341047637978850288023784783003390875145743856582033399902893872964523887454837148643341317346400413614730265322612530126500949263239867065040050560449572297863318892041411717509452008184526646287688948299423000271166751678272245111724988906977479272874246992664479897161042979980760113963624547501701012924687320696684966787282653230448662225915289197027295091007699518068563916674921946860688696076074456039301864390479892517325342419513586686362056625508700616321351947132244446129804693570350198374932803876748871624231630517140331406169792907582807479472202008729734127990389374606502844082185935234587932004991292338965159063388809787100879360127017781632168241586015711810041612588155232742495135056096266470872193785475687213356236405954654197489819959771114565028160084467989358065073907031754007108669696406279825204747641798366428674336657003616179706034760667698950109699199897167128446987458519098856983760183664737282236279159426474010014886162398117961715864682315603516385627871244471622181818927589213056053507859256792205103694141412593863727496034613042444074462197946576225669405358232769682170096146889997112492722736769535540111442332090068666105641755810760528320027066277080298814093341119020452388077688450047748631169470826199880265385118018253793922917028792093692735930136320489892111864935568391944544228964396775049768384652705104763398518147289248311082432020544318411579358292340945246174282645412267724455989184577842311680832836535394895956276889224220984439793177837840618002420459281517902587490036203077399156552879145699231852713263772091220519782640927465919094938543814002715772485273441621890347446410558718894146387655149358592415686645260175002356884314718824205749204999213633875063610471327033194660335722800419840792219423302304901688542461085471805774661544822960915394996956453940826877483957948622153427957726788890125719898852893250538010852261907408696305259136328153937804387102773601992848333781247998782040192064907355614953583992693308791439175042924809312309627889255882273765402113294233186416251069878291952507186959757380526839007533916788655570558489592795807203313386878064851559075083381846443156176746906952621882625646995416360470630208562765600126705949030316861537928363788510817834491531268976490699692334212146103507039635484139301638281097438657847052237260937103419692385545941065583524715227298407331068652892795611825428670010332463785419913226259145977249034435311588536034771807289165106831654643106086893899609774220603494489979026157102637497688782024059488621579106606778789628807707501403264487183326060659284860636626628147108435394570405326738304875685255833313410191758346939389009075911004618405558254686105651577817478773810559439893722183652912725675019752617566242980846957101872261515310163200595293850491330240177844202606087092237719630864194896294608396075485327150205986454153927457130003310381953026396936090252941569062293771564849031159813777440262336077478487339692679023658765458419000832874939395521960775281577579595808480745563272068628389388082597061826816725733815732265683810245198500450312499548396399230268362109845421721085407801350853852288611096696836036319127959672235913692833791939380022393607387488634411920258488923268311857824545813168758604811346621013046811013234415601102753997287997729982377036032549756032537802283807681540685144230931234092406226440807423899051497614489942039290796257383354733016967365733465596908350427365993752993950145140929191852887581289932834153968278129882055602163710861611029457148317190552783339480591043623065991487749731385312304071408844187749843501127059062940970679221184199326278280745786407773664198170410367502529469799610560434336819649561370708206841649337675915062407567871847943677080380361845059026128468955053805343825317308248250553200258146997516582706257457088509122643565647738179206135703072941837843104323111746043346796515936650643721225436106039507840075777834186691009352652547511076427277954830647532664725683844817876344999837368712419106899186164938554715059650130726445706941023307786745843195505820415917132614816488675482720973700874918470654083698044037686412818945966009574041747020359199840733947016035115659103150158145344507587656477384441476836012900056085462622282523902469090590859890189242999356927022525947044162914170784350733904411999794454448421499001185516219967416971828257784805663584006797800746736356696897716998459731206865027024421577816992423513402967062414213181271066419952340173512884097395944144971355014522736438720717299974159442124908444861398963068944477047682624716359274892148998927365571067887242996520139632506021437341081380339733381897100087809275332164546735677651914414278159466533272264139400618760689272648774052919166420898612092255643489896294819060929840175700260757921742594699249136777503828831083564676151078399056423383968611901865272528068738070628890793163268065880571397339225903021980642554942049374691440668421447181162972022315516590634089664100277475395086133071347906325391151437821646191467930647372100097785783291666203794277717589719846489588139275196920422450206312514105367064376918281247625325882854041773297626050327567415221909055746989205669745694642584195131670148744661408901333038009296592174707958099859948503330756910099655798754715406286140641316637087299127714418888270186593269036409741034813688660513063752335655330619311128541268965713089295954631208949659923270030581195165097128093914924830788567591621452048982861543631435261304927265915666731281587752699272471801844893589371038154635525888866234551330573470992679372281298448631656223894721906145843413371524455571532037301195222079544489902947389622833056544141295031433199454087248175628278251250571342056293387094171774316635028158354453871118275961720392790525021752565160983244319314579613682175166641078963861289446226264714477012065479814711771312267423234199608977244460880814191865446928010465255160003862349650934730375998955020312317859413746707578795869058364648334963426513132490864097648196356652383479402610355784636805749178551898872195853206331078370472751965920149544684734071754457082429616130862573343188518506436969880392783808021899260477225343115630263835102341512208678716063349527882107356075009168573014067371321941110211553518278917843920821739742712395800504337340263777182185357548020580227472436101738484306262984259837575078135557064235747826318792788623087700210603504216659064273937681501308947546471942842705029914765060555846602520724694498272016420992938073326115036625097342207336506410220255931210486141973508572501790719045301262851778079512817802928513257804561254684806427954355919506619877245015256744545399504997651430638538102892793086159803753071901980553936234053144225196012340626903968904939275458882594181282283041252079203115002323231778514359993395362184015571028579885329537615873261089965861401097601661696755644003754299121228495102333590725582971729912710324482966749816658572816033748828172481926592033182526052610943639022501440440240693996328203402754063383800966509228818044091792977482946892934123679760762427624501688616382388003686456727391542945194286685897054355509479539512296801950015269362443853235934788106115334181374531642318390989394984329444934550724091875652872942273705182358477682967273028009903286601504412577685578129779505699236808923021537050107671294818435337147901075694749953212360147073154465438176843399797493443734069421865828454681852827855039316343580389786019438235780185091012038251875775392183555812934343813385556885692755002197984727171601338598520809093626235905374896975029757358587114284503485596971249157111923751069316445921570320353551829317134404229433808057843371080592637828357471622780786434769726339231943853223062874423590231628394822265414264951464683279742411059127854445084730666707354617943578671444188559587654537019315989349061356205379294237015550822340897126195469909656545780114481140312148300518923300630353051613166223636758202865852387673747949562320616969703857785074896453562625188322682090802257067748304478917141012968112110638096768863959555016092901703079746803016260457646187065283470513371173352583721406325002499675697992814526934702642764556158204969589597206158007984321536484852457355500190985718310419267264724463544312637314868008161477425895809054546681391468468656379219435548668948692622006244503462805822636934697896292936256862094062009117798404828447573811481471334534634346339471985944822629147565029198923794790798258406093243790231482141548412825306352298987783571855634289082474928073125111776588734477696835074524892060884388449876522874943859629347097646813263599996285048745241482500074997596668064531721300125468740269507184157737922434100616734664876183518647544112911344880342621951705598091445619743916194729856084228305716657568950249741730649920841912698484245531245915548074894551780820726831751328757187192343046468769602631878749216728662043924825610055401582510614625151631488526769254560208570116214886027320000149350753220982925336717065978698248573175569579164733878525862357396631539888321248398199274416160340057933309639842877712141432151149661156752464228830767905354139001123825967375459196236889053281127305275027851691393906711717223258366368591790712324385447737425155517191122464879696652036621502077757465814103619256251078418570686723144149110971256194210806044928656443951939944226485565386224211193943979207128976976717040791499782508492663355403649064061558394961766272527213910117773754527643524113020441952865354660987725076226833517284583189246986537076347910184025097096709202024645006290143690518110003018428241669132446282505521753726952143468286803943738018435831952151503804978708634565666256265597412124974068325557766602065162846007840731359297739282386395493191753404881221314247643043435345458784747577936901249480077647134087849648327947663193353333111750302271430578786449213540351063610939884281361955842275692211375898819414474922841198497007847378427004637547870627545609270392028382392534876465039205753081153535577735479436208992433790073203978359202874646177629324885056904518737513753623909835809015750719183382388853895846030137121017014002846353096814626444893189871618273231682515562156425941647156204236534074139474381165575531000129275878574879223387877166880475862164523348084198033138350455298322681960652239292906841979573754825587291266858088629264652990156159227308636273406093325597840092128290586364716818893711345941315243123428732975424068363383313262157343138453509588620772144634176858062708112070802319663229128235839323273773469560039747735105426726688347033347763486892117302546051274674047994433835287931696493563958968432941696340536318433299473833974069291181782437662647668528953043652279600043349001216738688269498544491670867229091607014520669538733537099844673053687040692382586238715288390802334452953991393612938873805628823491649778578953272039314792546785949078810609748971336042168507972477620795562259492933077770733356254022936405503763097462250714652067220239531631783297922332612426735040722050995469091906004020979173437999377548413702902647509266455667355188631327332293547736730521185368167156092678462314604489940137089907597658035477426043895075900073204921556337146669266573902112847410113416615355734081839544618904506636018329290828433731968239103302896436865462226862294752773462391708357549713524281474205075683486564532486594723398938405670578458890408929293766674124722752840133999789882253616689845774303762843259881011192729037065195026220099612743050229315647774256725191479807399055479680614457181718305985875539948613866192439723495750803417630258505813555978873141309156220374780671370389194556619869688316698985236387864283587194612892615240445779159481619726602539107242340149345592716154728618394451382019862506563633956033728368947295844999253682892463362866097783142146266697953137282132970156547129859025424658321775371360172108694957346915150526058488616827765995219357008258730940479651960056728808512568209164556048644845417007094405324192898197145471940156586693573417058952831195641319529789405164654506762573506918058322717288888500665453556206456048354761240975714408219389370523046925468821653224578303245481428592461521911420071095520901534585061986276177876007227564212629511475113563592988181375963068035397290010757613637993178324141451676062313846741215588058686301025642218003731640992722240080348232852680623889080541833688162427296598617994648174266768901155865330085265755068246592065154817460190603556473004789182353281026620438150737748141269353768035721021701494861564822573611558584341182271510274530489949257720085603603216240600249906432819056668700972985537472814417957520140058574852592882799969900469152866253615663633578303298791350330754613495638180551433465123452426534336112000211524801554507851341079602805734144587842806411260035704778955274156767832195851949034426749676719317667467299893338851510302603484946931924566952287053467731438667256127160456873186638606269861818282161160783487479856399103522492166523141850273210571727006674626997373104115392822844841425557135244834842048582625173730314252003913916770086347493412513210559181291535177881085799987608259840682133543453461161571587487098171610477554403245586916573384742397718559774295787007448646050954717467442158705816869161158245411978559183555768890655609514519097603391424393006259854511300152549239704287041902508046832753600935311724087664573990547901343176644271949705469225433454161450604494973697635965708752446569743368810627168065743381866772205303082878578494386938194383424395295008331139853873446202873713376988427809323891366245727314770338118588558290607929224724628166819758264039128348805011511291145034878534640285727797145502583318929098232227987739560430050551896980568806976387328131473598402212107810938989986626845091966510513733446812676154784324020203881141981172939515221816992789045068470944471940361765748971943045384930082278154288409272234573585749960233913780200027249123792326996264810070968779707227738414002312738672654531059549385065526770477391222393673256178393788480234015381336142216225791578430581456608982650312767216133509276629912821330515600767586211230765287986608888568189775951556243328172744890597398945115748752065446391796762605726154712315152465173652319570631824529854220287147519760543497236026800965089438737752737280190424065520213005804005671070075633554003426927835437665762272863822898929927397132069028615239027287935965502110849416120966199621330108280970551604827052245508374140050307355007106349099749011605449810647679562838020007580518046230955938908729075742660605391439007900418487267091324537660846993399006247974383381035624795653149972320122873729227191936040614376291476945912492538717688517467475352535437025910693874327019309799220398518083206911504561415491693762132261133554584606941749946711396121830987348701289576472808576167665801182582169534568412628570693331839702868173675708665984181265202644875528530768923305562041346045127904283608807396169155992988471592146128758183300369575798271332302237367896073536357264092921500128158231610774769770445082948227917134962445234352732118031328580961656715699904546100699838294638544374403417396469550534764859469148012141179426721001088922725761379180714154634464253188333850933363599509909899105645661289298441176743860170308315141963833995812106571099420121889725229529383315735394280447925612364556320843771898549593823729456102869683221965714679089325992429462248881857649047915359038860475423734881998838377881188355695821769180977570808094561927091458018239367474134632575023222465934416515372241861257081840848079342881215816095681496939951333887591745460916404131795776624291591367659610122564638540643404361414368141672872659811716922334508540967465354270220553109599517334175336722773670154283100862110281813196469481199242370832021875825354604015109893555156885496942429465482058923067028926974207247584658859833443775497596999795532332747431287823368406237731092148971670997346182522557946594259114514612555942156412571584915172111444949783852032271748184804946766077368373594035488602997714319292132040025450033222533959967850155018727916974780947739333627382355168028451826120730869747758444615264256567759429625025862128819279904809308518635604805697839671086133149697580650731410361402939147346492941789576379351729067073457975838153236843855458101316628896310252340521952488257638121551282845736573460618089333288653526154056319518603039104962856209471221594933942330786845484529563401351992622277864800786589095822438649304721292847837039447490371517253804682236629653719226035203232699660075887183613613698812368412339367168236759991133138791539441352696017074661671231646242124499783405898018604367133404567937297096114204403536174373200147331071748464987617707566815956026227813764788462889026222975192903575497479448301360533344990610781722274839735495719830371258488877819602828375403811360966813033388832803315442723323677187375210858578916044027998892255350232342314121901864242514172488388504637278942122777393479373171608851270308627683255535546399570495075926131454737516016282667879274201449205900016076117476501276338407777861060383319536866886236813731220094368333830486173165140448412890993392432787218850578950581820063360915058123167401444146696374320437598017226882403478080151866274690783534938442840000819321285703653227272180817175013181063405230583520346908439634271095774129427376857541500901508841006191936035114398894654033839389038367696210257081651764189730298162931377138190337129647562399707378594425266427833927784811198924022887343684869193273296963192700940761894536703131403526351603476299935360428904507494753192965824979518299257409611862627399693123594573277695522413697875538689591777117496782032198254148567197730883068605880745043587579391034353352234121218466619577246636625206582378624205512742435739749340625319065049632899459809145818119966890104671275691988058772220218537351179696762753701814277042313823379259911018924840285774002560295869209769128509639699910077503968036391963867396224479123850334783564870487796311870136598745126973310002282243132528132444009534326864331883372576141740002828494877823332759456527639864031529281066986434352527649593393762036911558006546121012406671023006314660185739678811543627159936328823842074589160450487769315497125611237145255813113600561850180202691210990901491039153869257790390072775009521296696308768211425167735659385197523944251490407194437803144417174861564503090641822598619862322192121816546511625268257450934231045566855903246633830744601493701845494314409154394053180943063547686306503308621953170746189396787604265317512938628239275702645395831708495292177988816733269104883290731090231128832634183299858723775547312374723346677600336195053263970319531374702343891585380204439202647447464136007447880649637816219276223851217479178489140664950609234765430441123168189972006841831829559531751542972678145815917073691337608339914122237113724322105928655272808070594000711425039575273366146403827870016480465380994814743797154680450793525351827425881780719597981904440307058437030350072574553978655644692078708397969947779191029657838952410410366536205034681441838790487455166865838753844814843320390557004006289549753988235390544430291658134397884289822754976115541450747856054783958571755114859235973134363415384737609350777756783143893299333367235061676642135979773379828331344000257706428549468155729295740929210197213738170942061603668184995406378049256491820969669882731030067191079268307208570794720665287139422281529389509692123843659710059542037353711225277235493892403736801696650526258636551473484435036108138506525587981397808183306940155202799301304071615951149362554410614656163319610366219229272113019831631261433749267257955941446541543865463762743335532689058407184697034961909192006996713355921773069886801345628897341825999000755607364324803090403886985178372351559423959926397714231670679356225879567637428975225275811781429538647106463734478105277086989729495906164033283991081056375746433022891434126712887750824373657768921728828823084294169369080467215894382542182008355560420157192954668119409079874222091805295633621144673474406359751252615998594593998503390737494757658479940034938108977841556360505043957091408042728369410874238678759346239527517858000559093761567302174979346713371037444037434105289960713694031497872756424318475215181735992936908098089810659918823587243471760331308061102860553085893122265803717671119608351047929285264145896334318941060797396191814612387450732602345037352121302814679578120019687721261946722302859694485336814479839957153883724097398019089309926630559598815550840494836727902984078982453665857606098581863138856083342119979812300835301185338539996563665145649618538222165581272772979866946095667942816035335472244212835810591612868300847942674791333972574136210688089346871561231064381369070767147526249827727599489762833163657114377050594054406295212370419014105670786155021876701401661764658802699160290658317439624350292910900252622199392360859589872694610150698888004462216314818393042687465045131707314562185251036126196946820841822747816730906455579563789546498826431450996447286960870223523361398524818972855571512547013219898478087557971988185324908875257374550610912650469907304208851580349247308412587753816521376781007481186014512618655077395383635236328669441238670535722460300964729428685291864462252231225067648204773418943105180247732334984739595676017269109747070497175809646096738436281940123304239303947140666259389755478294060029063810178285342768434407908041944583479876303388793007993155268955960548247106379901678818805310266962863185356426981499983360594970919030898449477498364968746838829434325649060844667602381751489074478191943543939980187128199178548176904095002136782026878855067590846328197228099487778916459379949506362908849554405945549893955399201165934473997775856456429627104508520860950337178605361181681611024109359074601807642225207946451945614093897042859762188889603115306959447194488403556566454552559712349439430746342537607120772903139718746299457233773783586213260909880684764802817693121438487144863388837414133679120562323149009107898737938210084573703406845928472453950043187172957008914470787083472360191114468267710187911538846710538281706477055554557705117709854836604435509566340992324518606012470050622619559680334095438057690961694526250882778706515679803270980557954792623323086573042201446548437051370652602936065726418759916900107103653663679508126503438726417237747006905745241291680159107513760845388526009026603493724732600573102411925186935979249560329352953680139123041241957986047177905373506781189671283098008456597033426149483986311101831600806211820872992854707113675044889699621756312575399783278523807516483588998520201070419389136797991931946840428612995304250436636481793757610137886079017605655437072088061236753744150745308610822904811004912590766018841612387505260652821207924188948120564855476881756235294515715916312741735024614003925247495592320138473019859307066572375425830010851911409881553917672613618791416667160126887085275282896633367113878733116813779373500814518492639220670094712329108141273848074499410584952414851419246358933283111527010506931933753099629372518917883842474578368395564272393757475543332081051834441253857416444625694125592369137235308230246007999752869031770480187721758493087041116160403455626159422604824554923690440678917296037906722868406915982789744513633043135214543962868195821795806684412627847953118570987067405484624539126330898176370487666587295525621979609027481570914804715768920680109144115465919019364978971876758430761042672110782688459001562785169625613730668645130630448331019221984769120424685542492841152855341825998831526115680906620308797006670391100260670707371742104136654801729681642521532759103923527184360873267891126400847396774721351155704874199213905628465927346217312129932838069785769021976648777590594910382098666755596964766343811290795303413905691039520726963281550800335106438695857338629266156763184597898780487332467233795652905499767975374552566434187445629861010901283681223016870849054652033765150776572039252404758465478768759107730784847110783559788266178905630178840436104247045920305534836778799493717039007458025437330347179296130857956101867995497526899232370070330995157792803053730803734484324064160440515659831662007886656227577559209739347377027511706446121604135702014348769914383440970313576620270190554371420195731469841094285530901583595016695853907230168075819929650275969101190180285825624199166388378679495022781057011273103986123166130526412702242574934574060605695939512232063889576068970047663726977985099881203054206301845617489126388354070683265015935540789661736299589436178257301764707072184919806134391609112268176764950031427704282919679224229172637850920759477748179604966019974289817827813634857989532048604865849756206761910937458126232507528036725236428975884759737709142663379706741069079641828278826410681226344979649638126098753348050111364298714752551576096733068047658899881138356508655697227858418258073104548946566774184943215956485962463637754724308215860722897018412995688591411695420600960794413819047248197893286532866575189211245243291341164228164194837132818937706409896655254788349435141153269275874390002854003472765662858241125155437186081951382596144056119700679299822069817462393214611120921643065439679791185262641544760815110863727836344153355510196872324952017309067370338333049260948756985185630150302012183980200457747531433946026139667430120418478353977196169073344371081508941943454435721001064518307755556548650524521526800516769636545435844660794096964987631675821245065521366997743485444182414517311924012121850252824933889271169363772439120649390381101703179573198038567314209668220544348876077413531852929034333640488861095131958262923099591680628609338511382261564820194417734119150813948217570048969870418937808958516501344958150803558809682899633721704385890097401362866309975864525915495237809236497987502670081366060528545948688330930855389046955617340494005469006029147413451542621652091596447960781441140530072832707710798534663848383648312759831073151586187346057480415057134618860887525096240867111526826189355461310469511003936378020397623177588371345770902523668094701154177940758946732187287016778370348327298838808701561812369088478591973616533632726185146367797853139291631467567388298199263752757643391042387136680528333802801541663270340909714632174665797839121241944066538192783798637374156904169313573074720027082860872221713312817389024110574173700996028756713634216441057006563468073674077950078905219434894268381216116104745578223300258307491979902942300434072810840918660724054915901316395944471604090387081698831278443309876727738666929601792281041449065677505504748038717811723661436244851216185218203284831349356310194439159960518649301378231236436595157971307961413211513472207460423671630190822837495179128768570773187436900443524277606780837904757602495780635451630942430567962225597292889043581406940858122324813133665414090913819882131256203482661995050276646357315398550929446087707327742262528657553137707253875894242757674763765640764072394527641693248233331493869418274413622165497982392913213848463488982677184896853572984894526763493620190009169716467611324819188811691221424845673486781148322871275049514737610592492698826025909515041298812892745598818272093761420709143102188802016811470352189307456170300471212153135537181339087961216489699409265363860504447002638711638520024500981775062862634731824435135604510949802650136015291013338272658244713448536562516505937251211998068636248190856802683074050557468587950701946304687223023822649370956931553700413807793111819639949924163390215739836803895926243684071703245339986578633081553611066011108790132315922244364158968880181436544727826196824226905737798529718506573694217780677156872420648133322628682757434174033737471369683183682812447071606513007184790064661800797766757906770039198611849989594031214050218488130418175624691505243401587541162803197760673390482311327826058551304040147643390380439783563482936486178090604196190041509895666935816714045285718249535135421705323360299028027660503658889464160844075680799106214682281574014379617997033354539956989474362518435419335041190070026023801745211081937608660707585815226602527115871443128077702067097640646281080841566346942292855150174640594981443454979318195814021160891568155650108336358848574896817715394275249781976921032275628052682370283836474369400220113896297883309973226400222104649301202522162276040826768035067339242825881961063802781558240613676093572577767926994519441047513954015648082065549491849414477197477036965546488531929351439125847179725842217185222524732593800853750202311868997379187189037304993487964156190252852570343031656723218584415799901858745866625130275606378815346266491377930148150379051250128652640716612231846678442929947505518853439414042172806839979482201976104484493253519519244801855593815159121037152373511500129835827347496145748158621287705701083037265373268011019397857141167222331793239504775115881054826365175652421548492873554278705864664875499315691192841365760952056561647079555682875479341850175914932162923461115714339603907389069712430578400707101666121986242664792067388010875920567052940998227970334836060023567743725446887569997213856156424233521757259252664053294808535116563122679347649454347182766543420086121852089891652937528222367084741002342862317760790143367932668542470425078193461935629539538897513772088886991195188289902197503591185426368339704437098910247533151293165809296720332673349188537864738762016958996376975950864575584622432037062455258694536880368515088910979438916994090447757270131659307206756754779724490476017194103929277836680435442177058917057190496625655361223346863126430701923953105306177888354181148901974209808414709254149689072717233296356285148929413071373865040354598441506168998367380202303408921614487128068073191985824709790649209143639114908383901686696421881749155078808930796120800271522426050276580920793476659650894387270198323518632171691583867617325383652083310028786471311915949443349665362397558110911823819695482227248363408336430051437197956822471382780538803185833302479547458384129024445345479640608983176983417712255224302181276570356123488390823827018160411403093561335064138270421109043269645218553071253965392963592092718037322455961263248154261660247732342098275160043344632558471218415126871849648519514218167463098462492788151379076352315384097748267630658980852910985692383578657852450874581292760173734993301717594743101233552266684645520505789226765820376059678958034578408358632437146989389669706239729229934957125053129742196495150782593706906952124890451384601692870433271162688350539374199187324895734038484217807724411464631935212869456152503392371603738484239165718528957995971807208104109753189926778782968635493481714724942861085860419917426401531623758832993324379428239922241911759424465758671164307961745073543995232048005160236683550553612589525233582429123249239909673242163334677422752456375368014785613003823323642206068625645317216025478300867940457543768011688576276785050551308560414025543015652135698638475253924684843958386928713922360189072600753728740569662058676999046021026027841307283217505907452187429084836536815386696974662974706726763120427580945474491094315000142855935632546907169736152151161152072231670479848728739069960230798057880638349597779371055553374959431015717448877019055790947438826019384194421073076255037681468785096148632780980072957723533461894905637072936352456431125924818565576932464536429125225304323751535237438963893218354199346841064729923395323123108023905544456290843994446192713651096935690363751692719905027759816372846493926090755647049788694961875379362660335852143016492231873078602673888782388112040252816320968223246191827624345291463805385481845553542700493063233531844341243670417817499830399667979151432073370940001777366641683073005720961726876445845516222971269263069250611418887437372960199242930900834640339795889126569587410885189036073187361487810916234450621256192124775508251892617267870800327245376997781048161266765280128635030130731026519948441902805039941420353985833710679131997209125350751214625598403248530392590502241684844948634567915976480548159309063337764224197492227413160100551441639700420409918630891807184871371413579507690437991991078871221934732307623196867477090653614877537124907796667839184035860383530220353318351972432918661689360620016758750146141739689828632834721788963175825202352344180646085684666090774461600280723615519832509285994516984322169860688853273071764639584057907421900683349141419943624123139694614117066281252676783911715363906984418563070884508910777196936200862552129535102194830378000368130096428379831053489593297740550564240527908632617367317902889148767025820152656854643180002871268227544974539966710262177596424459410215193620801651476162784525107323310056603172273843306292655647203202555534530934946068215763497215984282715695684732930740404392061688949507428438697945959688206776051253210497854110661014626568280626288477048107811441589594432922699574925073858385704676597283753496749143521485061487505120195450726552908314921533522319037994494710718102881597489001058834507554641842291558900724142744385597654434900856579374655681003026473300667534131691285455895872535703005724249420832839766173647620490402682361987957835708412033141595237115662632283245629554063916419841543035061205315969339580037960583020159334517959651266360944090648833035227081088522209654561178827815400432233614941314188284230456533603488903079769541979110048459900774249937664303829027489353874874233344810698989944444390751099594139689401802760297491237616068684454459555207824808781147252388980111711608012297474798504026402452559798892495579608181992768050127737052003511225990400822128190449469595592485011448218285796875661382868045658878987191474140119296353453133018550490148517324945534253050775711784297674049840119151161219228236753653507513722077497051109316412487805945130252409041634840838175299417717228528453012694165090132708673991814965767626821532054120107890853213422134283761330165939493754632127370032142841406970125716692808041917702325091158894628233679820314291393804657881346432293708540896995455520808990992548910907132566768137917921854582280367796635585592433734006198428595497639638854240499235612285815807944361423814321660293088293558413327189634939469631659400004371107165301572988243481490822695226514229323752910365084508844353688877782437962744497759013373750615660687697442005483809021808327499481964732190358677135183381836057553215382852876663018871559952527135825896854890170532775986146544632610841159332692417270794719159040082233533236837609792681398158430076633010933351264578551902589049626142823767780044147846836631046244980107150287537350791267170411093391691346182370795021458727406473698081519446522768448048079540639326579683278793025850704354062754013316602119608302643854712745294957136108696814129020297898680191718452902960080110821232111162276874105423983932501524684150299812909832538175237823791830743010114098912889752927329510663093200978087104096665629248353368636948611186229184085687105881068115673473780944511244646947643758279740437347250801079334936443476559383632274081074343863185995106375359020666302888786798048038761516792309261328945541626983050489757372723882457220679481204522821059350738487963936745130977222250435634149340692268979770427812289373349535227519516338546825724388321239091475253996267812360403738203402265003536184530828246896466817370349255391695681185118426003498627704910135851844914870791771350517980651105127468125815537386311660022054679330390868208419855482436607721047167845922172753677295071041205869544843041413750709681096880646292311591481218643194713839142558716284134162028212409994165033825043917821109856339925855425926635878860884558078475213726422090560439763051704536878173805297548291496926879509678121558971906356955692043659409147137371717958359102713174465785320480192085792369568701626159428845991630694903822326792703489570203183098267264456622550878127869304127611402129811856934736948034708153694685118584347216096391658406640244721549864469984471126789830819547804911123653129245584275219699753789217154139131138253492379559203898101955235741509372905854619835212160757197762920438660263868364816479493041473995211754470422771123685891473066825237777357744968369031493358231332158887707354634551289299854172526184876858162646309107134497101714553779209453726387949327013245792941273334674442269899118066663175518894270857356461428368452150962404683838730581935829578583828895655686544825644914013799835340437241316585442599328634693454594735958055361737080768386825563778860372665662047985721026692605962970974898514987835837381562351660712152478471464246397737412781639049802414589141750580840291233462722160947195397314454322946535123165367864849595182089717130871375612401617885775900907023179278673201167621555015904690083041007585569833972107056280464774474629626334050017924727796234906142010712340397327972449328309661575292191444287659144935081108935941900226859881451045610814872762332179612059810811144072114200130410365694384658684252364502785478659260978236941070721855374658044828179172426526770809930811024819873048147137302059389394429377578465247437115380028099112701425096808358075027518371551532174655998208555264112793643837074963006869098084075399028815534570884558986626761732800298499013906068373806265314867597440448638921873998809271429067017332836560117391340295395344875222828814105949814199613483398164581418053824158112976829833039729556320482122409556970119846507020464372935316639983070920080578713486653074748954736433512679189351797309895440990049921107928866241916478096820013238315412378389233449872079304659608567955035970816559744356172756206582476745260145032447195017113753357222678561502970110262059299580676860893836251067792155575252119778297245896296117897358842208822330380354341326537844630439416586306920941527604296056534977793072485208796427175918944073690009421381367579757434939338622795102743494266902622371087227040909303676182790760262334477550837058295153867329862044714257831422709665236957846758745938082697649550475137153295750861119524429923068957218854286793720745264273027789006501628940411325585461491706698330868996397483956633193505043351565849791376587883825876840042699074878729154643898538622240424418887092159375893826536353115694401945963758379445366926475971484855782505730653789801636032067276366747712998829428172950253312253583750956365887026253775545357483829378308498928303663906745494407166434726065054716150330637448855727983294204480374653323829524340116760245943878170783695442167550958705148293095101742496195769982834282440493406498598323651438535538266848600802189033565681089519658071568837559805496342349582512230519330622847992522963869387288796168167146040667905656335986094193715008422786842372930157260248617000780612283233984355857885019396891100190983050522414286876159900312699315637521505755045746593003534676995464814048981987809352690283716482548412775495230528921092817733839820029203863960494734038582368347371413791829768307764591010491673921851510825857686640349580503082991052875036953009562177356605883924445612931168880054977507837711227613227187231901802349695968001806856156322472725153892963848748185921039198215535663958901276914419961862241228375042787036157319576937882078456381343185123013279455016652580962003120737331075769309547767345310451546437850520700077950071396543378430938842533786114633888746667210903210665299125985683175842913172366298699438224451095236894431041552772817003501234942671961922846009866673030693852353571473873852736911187089408940940502434953146090700886476431071639457376315738022568990695423622184351600233879748464097683409454364097128720753477158268353689276137272458373591433722639574524711839050017785946677021164725263827620405585938402828512090447966712455651456541074570622253834262709279921523202970607734233859758093044604880497115647544391250697582502322224555455444002211345401631848113264354680594523960507088669149663075206421350994079334260643669092250468071282506661377126025266606427502605826001565019715491986363081138696503404958612124517372871852568951042530823754345946988462466444389346981346322375361808575445353031856314834524791850086566008674119781248408458049330079187219519703486806021566847373834973842591476798675720827018551143721533523930545785676954368276659171383760484183762283417292562945979013089481743243826775069988921529209424140255003281383542401379278450040310047257316186690996443968816708160963429081104112999998838978765419028989689209466635938886542786247890625137818272530848133220654984111979350350004514140042465242929929240630533424517119663785699984817279879011593986001093855262341698877745653870492795729193148066541510496322486742368136751441193127721565640069626034490486486669755770025507883862008142063367946422421576578386673317442199229108388750488265433994066135054479816127001589454622245955824442595564865121251236447346099791898444147447529695519085558802721332266907844097168231676174908766217132383145012395684996256727535081016837963303426217867035493676077500055577268934132243097810978380394417124185062815874007257187551507231669899290172938565409370092492011865660654685514084985742152026037861269970526921321289454694590453264069939424726252970330394007449097549876034584011914109830867814376993925973968802129441777805328438731105837157516521092084237489703488759215709976150759148689432629340334454472769193619174001697526889733968216278266127720519671905246283067465145208609599357507843811998449109593318477796224141071412139982350134391352181076387685367524543060701784470910337443814853784254470872927334690117425656023703906789297994966230378097105548010489071234687988990182338586091878516561182177801444741888519908272557149540106707639252886468565505106086539081766470330761072240994550404192973262939183529494605152124848849908055973774378916803233144134836852680559800610983698915744778084445554123034074808946697072881643446548448197047963003691888743604778808221766443654179182508690639500883371474200311654126516335949937396692465036872531847995788959335546641849398790154801211369884218849766376285997295204344777594290330870165041304651111954961298714178527705412276200332971754199420784907396270961069785459299011831492040821557861647274693664795099187024105174355136270903270321935077029771271180613214498377314904038757700790827794323633187116283657493489827863974565100171283188431852433277519983821701787297730274707858970150431276458890761758681199791210749775028845270956048703545159465846885974005222288223340029640905735691227922315828398476442574138590871055211364155070199934743175095352694341148727775157765655289013006006533847963061841204552742867090108720386080530977319853451553483800256892974971772367833437189524525696243844475139301931786998672891494481774054581013308425006965269293607854171126816885822086268339990185516128180056658890134201843476020699436153522522748312573810412145211772850842650693332709272251183344057842274313642495904724867770504921843578876182017356815904889032369782120337708403080557531443840066236880814088620668978952926146788082335092282422616503510959995050916487651123460350325025379657245206626703860547680219928130145888303649915963312844057471717528641604752336228668793714045608580324412884839891016654445733902851781416496119816128584593424527672811122236202052021418525690120376639605896263453047008007282403591086942136772528910734708621052390910280112372290343233336061347757213130110837096148152371636391312100875603521079355125956765381884336224329087648665286510254075656761495251288974080248104788297806149000924997458675827056113201677686358952615368401678062993543890436319939803967026489661697563088878492306755962411536730509474654688746828023468456515862397263575178079325124450042535695481957838419207708764049217393989400454973586638090337663003076580203948756807063883299529177960920622340284518604935720537060073122072244391034108713934201123863201265369108296587079263834051525061989919640206219576735147343114729331871538579492325370179607800378628273139890320716214493506753947036570225961029854051471902414914495472997887797427339973008753540177625990788473820622441544678605127330283548190434365256356652171604377262245011034297948909428947646188352771312333299483891031947034899449101407675739047875334368050263426636985976724513317294316175414813498338551865088780594858474410160961119654761735028095908431667362606634928590721142743324064099520678714614016403441369740560391309113520645998909989892062301386753152970130168484179268250130528938237184345588481288827979568298372725376454423424973255780580784316234079099035541086796526871205749272628824233015006391878694928704712870567841450773397703482406366533016851639810709983702354946746663117574781532342101589094692936250579767638148055865853265709195551112591090936487346742734692324945122372005060347952684735521008291016552553225591240057813517675918021739691960283454532988125250286043990243314717277489982933773909011295558432015141096131801477573127975691998447757749803416760434402842882266754766761762974087129871560259499620072191147287641428511051917826795510196855832889051981194205670923046488437407407086024551274616171040465035192332211704327903450877487049304993013933015617883549351135425334247553148863449220128758199014457035789496901997945619842789818335565989668007846189986286410226154686937006205449621733822968477256741515201715632218933654785078229692016738801118620534296572381475144032837099818269056033717604465715362421444374109347535532456229692493118984207728127404005642203091215839384823456641474642318777754226081463533566716265856777373968025456537372729320952668448985433218011549718948283487052663356138940636614006944077972892049418523214110417833026058539349925552079597651045107132857857913814319786926487952327299043874762050406014209651624204344579730989805900736063704810884083055040601844584473131691198429325897006055544757513871920760184842872320959637978405386400585327580603048903489854825614299849992345273635840972004963190877055605257660999432538066970008111717886022099138807977112953073505624978923933255019101827049269589598380312144154714186327087757394748389996563011195768692730557965617378292454147824398761924045303179178056925495754202545563059322735599840995238501229927541724093127545898470881865328988448516040406698640260494335856156781997033948364940867641686954833148535755861029738143304899735389713154578456162362489568190862101821626819486528328332817389679226371947433950390943749987120948560959714689140521929399130176312815695104106400441514762838215079978970462725808691715278550849167226454141829145094910723831343798463640447095037808377799832304070027493966971957393032645185901850744546713671677136551551302490546540814708712085251834628005672596444682742802550397486844076992029617980017578623510289141655687580579415086332636107840290695242302217347204875605202735301268903438774210936335732796161485748977602730979411758097136615658540190727339178629137004143148377016763413635288795101040433185201784170758015206941977076471826365731774428467891693054954994222491382182112070113099286795931750490820132395470771248533343603894119151726416501972997496420593052609987169916286994484832884195179763945219909898635340867949316733698395271638330409593291884734823431117058117403542021040456511983155774706682059540717838220906690431120812640792038799064637199555109309135513251199264772530433799202831504448454261569196070206611225214181174725800786900371084674489269847668126997678792573773591581977867386225208632930425415406990752772533679224403907194786277008582357413135048441345493823454601264827501152799013606718974264888379247504723417195683008926293804540488750985169609253396416245147108769209092539276564870317630490874646197496988031550607766592462489930791484569331451179550113760193494193000185630314169298852412133832595091001212791497779997913732878146420497565501524342155103785636385487477682524859669109845434013225052000137485736868009114130952192471588836569341059409066736723483165084578461749756196465086113118529423189621467730869332475731067621153157638029881315416936866983429101876973105730218323372758728200019647286869341372160306043309563054759937942017068889557749450376884362700414562011671094780295126344235382146229231187238771438390226337849333894854391771078612275936583415931148449930612746571940362614443009411905119883416840436109060465847032831343020435560124661680264695355790027502125646688187791171626944058388040770231769557091888020802446837040291022637335504436534003849984176558099488582486383501097496269542505390967171683659493701892462625784910653356881698969684410119646366029121165287788248705519209290686805173922757569024692886093723723984990640157318511498792500838773154555875870394644238914825107708571211776429017642129189777978570380875780038139987477072891391835338333478827016315119934504195962579297085310521201149097440323412540818519941295259351999600522528770286382869442289584517176667825000036356537718029611899375477269078416524635764563554433491813381184258818677091447673473641343815333970717554656937192230678908149893201639319571407468727690186743006173356587062095900857219563529804742121200249343577687197074500560958609571460945768735451924551758443334434629827754266134583138327535500578272359922433262822956244524313235828011284816315547246232430772029976324845282577441552480061747280857212604182596186797686839779016635366301631915328935688313690164575904686554922045399000515418515163631916152378741301031981255963227237207008330724178904261101821701162514338852587414075112769861611572704565221307536798549571069088605082853832749429263911692480830269307084537657935106716643070539853361751379460139215249615369830999622008130366330296560067846293313172999062251819709753827029015336072926151449153186956949331037352216588972737608187223032501569629691278658351129838325145165183755357149319131612059619283134376472895047122328945236535971887936518319086861480860977461650940664204749068700250256480801439267582380298415150172136311829772449641453830001316487901014733148301165126511470499490996773722646542014039501149636248388954692709155830939403301513487511455692069596016232036956119726846079992785193696942214290620459463216246682177834269629301214499763431481535640893305415192085156949408862402550084797094627167806659704043877512528732316950530359001012087973110210931699891905205192056024733295603506801872421839310688208453400965352570740465916634977719002599777606441955573710522234199816985620580823860398704821524467568617308613815823711137933779992397681450011189267660857268539320278521714495855013854238333349722103068433541447650595400748422143864406125239092187055511110630686512972621003264308493043696592949757494090091945884934951794079688428847212496626056097155289445028094382388394948984160829762738718476450912354964583994337455567961875603597806551456012927536873484948327999474060385219318490720845479917965728150408901418374942363555143014139632439627800960813226253450664085714388345376225323519085281715858638549506288223201386124487295233292654561923237885353347711754435573928239453799250752167244118236597388685915653120175536927870968791830440312615342838932908372013145906972403663008377030230516006412251341843229739754018664191131948285094122509421484116630733163674492861733735805824716564698564730769957938011032030940957962113078381913095440257161191210561622738982918222336056296711499198103896842499026021433787271405023780551359165962877616470664966005328345607375114145305757412010648689106372892288750359586865468808249352545945600717530793972274371369695887428709563930847086466168479451772898378112311276989888547883087383420052180452378148232224079886412152975844183435274610043556283878169643686661283412054961382203086990459376715214664853347012923057472372860733661926924921335288177990132335062255885734532464267622766232441757339628939091201254003169313306981521607233343118563749210747038236084196446277168396942711546334317177707185000584235339396014870757844856926342627392257266322643038856107003293008187413655292149742576628684551091129474454121404481766059194113573757426574542160715657672685976625793609935462052267084221723456989312925929715004153693211494449335284564184140641913741231526551427736322899789914649895366060638630101760255319923913821380098671741772056401220967724477221138000387249011848109036962962115278724725434961187737809677898237009897819999610682914262003469042504349389204007487340521373127036601756144888375005601006595969269925194217990412496033840890288075949812964748440950239389132150714627307315603948274643105501603087558444811558393423417580296100958029471760693052038305574116168597302209435205647094516427383382777846889942663854312310013101079915508863450409212712211249066674746438991743627212440948344963366325448547395229169029186900124811387826511509447964458474938962893130362723272774582611106073705101460044994346822913789378489942189763948638787656297763459017739108985960278600244895566176151368947218781480255126247457430396330447062845786132893421092392890053572288733088515392773442432761006822936256327622101543839728404230134441068811305658976167451071201812301256045873286775356301563902293990850615732331367465708041721335825369290401179455584348116032950335178360565059836958430372594681070571637994934502376167545418559694324620839493409609962454005123233116471117541535445681631980642585286913304242817296708857542942739433559563981084982309156579879446400476906426226004599598137717289982958850434939841540975751938857467866107399162304569231287034564123402147656302544459062398731690651098427719673504063819856838298151920604953973296079083111978449626044036540377021022331530076218557916131621282670788497147698903879357545086877869674200914392062112795501473454030469307695652612667932262508767508517507450329348825276978323104212522428950152243565086400723348396405076721808918255123245136751542816647977468079187399335599246573169063523116995932273338773487108359532912814503976193592682107841212631766428241618777467766980440037378628235167486636446281057110918639590853442479535893427121225641951226771129401829508450047313466244823183975063331563618407476498252786327438191782946314466218385695901255417897617499189076307351929242013707825932461263140999951487675197622132959293957542331868091764054129152627141821401928978058173679004832641707440685034665809193919829279133465801537309949584377870358361511447578354232695953599193256412172021090300519392823226157629007636855885816073721626339442557919214068751256492357251826527998935019167483430887940201753144848439840611329629433294229296718713759252993559569473378872165517769739631173155443175115572118886282519819898995481886082714531840865083031808218116830865906545389476428788176904676082821956606228086378945897408754550255771302628877566759678848493657404614931277609585058727526637180977776754679981935999967788317464072307238194429081721401014421988975585472899740483957414458612218707125871432741292500593863975068127729198716128349269779165391160193676819032130418956867397982806782586469631227872271871584502232806579655707574591340633676912714039336695666446213355821856884506066601467821354909700410811497489368080869735400038296279344023064375266258319976042147441318225677874143046830018908278166384553721926898400370734086965601734530952455214658486016382653654529934876494809430585641559046810034416331201404255152973264826978578803123199114347272588150674158751409254428304916093626512437157486380194035035813715824574559786824832655922187946310146324079070688269539185720550432904247133802942431378631220328080400548497304918777578681121344340192107432937153893066364921475289116170684719299900993072807591157650912372173253008833898682778485530155750911349253486639482271405792288401889043618819394701519214345141475617380204295028001855007727445304120225170233106184543086315853558071910527640692064172233149082877893548396499142943346051830223754687683901553663303621881249933164394958356546553577701264959187913098501277626661364104315396996274489660436299991398144939108248548103901746061547870251349110944082088821262606278279653041028550971683673538935723844094488587530408014712695745141130667469147023777433024871759745904458808560213808762176455064798246643736798460291847478533622569340445157988872330547017684510805135683086072214326209190053186465708403256767451782651996686390297472708629205584648360241905457795309843430821674785266023691151444257917450239853047072578537859798807806633657622169606676918934357705286638373974471338777870936711114380861715120058582627330573549009203135539132247420299737468579698469741705044995246761644237181081597859399111957859701133737875049860796808868086447768408735001309109756939237853876867222559444798233838728171633522821224039490552206479392088353304238403765082669858978807907526110392035658513408630533125570695118408604971696892573718071919388082230776172048227613096923634867468864510368380702863843090130943088743123667627956050348187051019194954458944060818507721168817455456313757002395630110788895094056669164069954122135355445808506630516530137384061242942020880372796164965297754586176365569193898920650051742821679648041697013865381131260088756862176263282005234468137706161263699021351330425205519785372009607913333135740770233358492527822112230169854376234412845739206882258580015533019599514632910420120233299840624236716046413472443851876559852903337591123190326579577325993424109636611748880005378730173859786588176691948731494849828450830695780436136703263331130990094970617040950238948672943716672260110775232019062885983939547911673155865283813985279555247373934380136245882573581766482474775176873534573233311260730485149028359335023979427195833680777892723668315627433669102169886649672854943768457210643864999242739913517675893791956870638494728691636573485396747083372730821254432897202289476159524335556762612776200843825242482670641505418848115551109432975455454576416625492075093472451537087978248816177918144293960244777103914465674622908755451259423596489072111495596350932011426665983144420973416083650364386115409075078760550903715899121650478583642027774286380566908870344252520346855390987059462047576917911983979759768018770052291254819599031459137285461540840381694998385619512291961604543224095530680856036393823548437270648474940322249910972525931808940909741699610371565345370740757591223950825898848090851222815298381677843486702707060496089703673505445924215305501637330737608780403738280004483720183378413035430877742349723059292429496086175190655215337145902906895488797888671464513118962743479262289183220129626088661998939641314265848915559055748860243079139162413978448346703736879854285938077185410592362168876248747410406813864681992957758302693936467771805831906335219785930934713548208138754077202168574553256369091911238367985105578279401369205730511581437009127789604617267912178791337016788200643101516920172809221241444966069606748236018245558093419852967359411176385423454537463702868750297898647025854797287277575184390117118171339234518920914601788670253006167881789160502839037741655579836173510301760939223495758954260537593246002162020557249906972141917580415729524961274731851259949323705424438029965933107757272990384284900271404123323484590946707875960772830855759419869968189988339312684773628287920762597567074606167955569651777131333597615876148369585257425212429855698444433972225371629381897078428568828983813799794234360125633741206246265319860026622546594215208136779699633261257132793110275260808444952626114810112862299951206121291293207160142114530535382695073822298643633811419431963071271687128662234909060623061392809043470123250814502595436525450710261590782917386956048649749341358772154711022549142489255353175085436575314368845615624369073625908397793413259254672582043868211065492991636394147110566014682899686987961272239847676056683034012420257606667721594168399158269260139289321490516073190965529606583498669525038467255465379805376490906433398579090841651588493847254573053576665804712864152898991448912119959236315094642563654995431061964319286219976826712421629853453718628154372684613310709691466106783326508233423180795986479038628327391615628431816542996164450451505714105730417273833076148760358088702457310789920362913120976387029360372747768590477441540626543371377905690845762397302696305093827526631647852798356221842356514010298960463600479407844968511302471217721350226570439472601970225057732756744218035375947583363553271059199805376456761893774041476995249080679591901349833751829321181249987527008671263082462150260208031646963866527213266430825053929174180833269858776374657065966211034473012589284251886355996206053556536148082555441670595519163789775184074839082641681340017975278414330456972571733338370370081831006416321462229052975875012126083064696745389625843533639461332108556409292177602334077186497968103686766999442165050286887164444351953447166437820923601793983128925045063461863212328436196479517886428528452661167394335843543446103437550840375095587265634327799333995406440901646793985782804067288106793251327909803827655353181074421715376288478338682630370590486655170857813985900935754017402472819042800774612392151121778288605830064247355601512161195271254758894972185627451513780434646087149076733306562296074113307056608721908456489013939719455633087162449402427622252829219637429360955212893917746810392565534000265409077184141360313989612403889863797398918475293592197793147234823975070752476642801450046560259723382163710708537681447137386403113911506192237071194692968676865637087683288228831390399357776566061150881972209312140523446700101935464826955680674706256267993709433452182721214227238360075714444962169613569128487965580357261683696604109228203865359719612863280138332003754647339531932618148726279972552733146089253293504185330449612909156971048589384389255297753412548688198346616564069226464989096437103732486731272804828772068960522772319624200417276179455528247615229040428195370283498585496882815675419206481961878379489232433163999332104399191859667043717423743881220607165842435810788933569555856735047296378622976758739318231335425204239558795108342409738369683339598449459640460486907061557144534692680010635610577473625957476762489941618961203030794559999144581228971189404732187881214961083536561390121545809984929966375561099444053596228693674337688346558782098751648305255611721276749326461074034067585947039733739628474588603499105212081494627210158474513851330603013675739961847810076125830112274574289539804587281284554859635799560688222443496847963985483669978800189666450297356134681648098112807932780399199098324626557582059708822567351236605394576091463559951914983064690917482397279661837251379656856072279945924056762292774947312567858637113221736490780541534921133379418655719809190266870940790855251284515877611557914781647682268355661992490255524708887558148063571386081610455122294761097399742816055962136031140071583988659267268963108669291647180544680281431468415897797688451329507021636000007714806696462240100128515631065999682628195884698812073166427115860986238085306179708126617949239033043692101838502519826308459913996249244723192953899627576876854628367989352023200022529695239901312618167221634829173901193965685270218094507568245413229637696273277117978086299557673377557791999883582230495635794281359597632945915175203450296357896284955533132561929055659438014192847262176344364922287222714080902055056909629336201350093624673843897793236286951994801671073500907796416320521828575095375175743383032707710906360112393729532177168148863493362575886416871542587125723307999299798075322841532690040080917617430620347339340064769194367420964288153017470072395512578212683621219850189342590007753011358378182726512922533869323872078510486256325404427172963740322308901454066908773541621913872363653561132756167039108685596223849566092861105724923479404679599720598659649817014201163077861995679363119985350120413959821364968907389017774704375970850755641155187121938026459699548736372490060606075871012582400760247990649994848157523277141843626337596715527098097014939491659164599366979368551523259088949921793855226345415951795808674188391344942102857782803228581765830858556521354272048134766767424332719571980324728603226044064165139854662803020499273228745853455506946579073910833810248309145207665976745349107894068095693957566594699497348539060565252725178474148433000536600714355572247316438517529006095847684060550020656715788247818630637541769404271538687368982415118186390340977886343280070150256109700259522646868946723631314944315378055706334437313837210097296912262153045898157549434407063786710414360150652804780857492780741483180765656566198961747891889893261828097885862697004823472206446631167840517909823370172408935230040314482604122442584271907182954437108580502543256157875887738026925683026477323929008752711943346249610785754770258968047354704320651635434934764170259749469483053864292064641448568853309866320053058456465317849749023189520035904648962918024616195656592524854331950852275478546292375304041534897942557249332695159154286769373392997716584070372047681444680769638636492415723554258844789339871827770338742565370079543809916406661844767178147066965978602510092722038789931971062902895631442530412871155987041155422077950457916418310541528234585274495208040614656471622609062729917921673644603923615194245568821170136309651184741365858222811395571206219664850882554874711350528033151923214504731444490895315217250141577008616534298545997382805615841511247106172831760150085456672490151128928722025381361394566727826914075396981290313515207105955531764291700629553344603722169443164406851805711280931909183354591246146030509011253072076085402030528563390258137286911427957478389511791267576757843722012827855693203555426897426230575347326921165833001067672398174059658451763461169089690139095359024021239501128579803181060739943443070899568879655336512646786314928929213390458356941369643484826295548854046240576602028498631532602128457783596690818699560834809053076776968856783938048343683761236274259816972612587929137887824823958627541685854800633176069175085175452392802370784242068955209238455612311396592868060631665011519259872496804378295194965595529524213041689259726424597308175912670367156377043976959843459658432650811430409475328112179729576285739847212962538851170382326347810736564210243688925747446215280805334558624616124773920813897527736722605485734025721641136178820332962529895358710789219498495358717761299854571329514781090093340733808358806999300633427160558465579237354293203806986204288107360086431094848890037287307566324267627027465999958558670744369742438930679806571305602017178442107111495692428388569221664719925986114559421661293553229054834824183808019355802040287464432939360015013483747191260500633489990494046132027247144611229050647920924033376575572648449073516386912866513534190026624116757358264538675867112596321456126117815670684994994461651535037640714289717280487300708056714797824908032893596757182129117972968088684489370886757575292084061089320111406842988850639842130953000540958938073188255367792815698145681534001504467880179658676400302722646836442312239488385774860900859134648959610824692816707633296014658418466732314684688447540769347487972773333176789978811206390834734750601813376929246478953040699533749983037955776569631361156978248660400770846538535439691744940712395958005754219903251450840296255598858016269378562446965382694244824873030537178562392085647778381974165416479191265340592281446203369551965113732859624521952851699274412549037717033449058883991384526004933134249456816586335969342822507825374245620054228146569110112168946805628533286734620460361546770934887986707782200566452244823086816004589002780850311426017740227342606252557086937758129907537139063378668702989589071464325716553946919269484503839208022335038917964961713069950206855417190520257808925132449159047828547130024581635240993550041864423210072220546921179911138978430502907676350449412789290734274948565610624003383050912194956075802618028898197616398234539916060170965459266277918023884565981188437035294466054864620608401114847984322949253814468280278096755328540767541776738889910400375429138540994458594103823810747073309177792387675134272814822196593265453412541894809320926162242177518478104617690718019978856905509730748569601464404402868649788623069407233058316968862164877478113925625914799894979430212912122396996714579064751275397217187814145764493549587269863613052788199608263093586533634827013832087474417347037817702143726830972337625974740652475849214003485687390765372932425705530667289442605072001076201634401727776562262004543135068063804679271862486507135010841582661697382235795948352519339598864615428200661252931393134961781443775822663090288713036332151652338677260122877404846465945091332827239164951860566605872210147608350294262874568906027910564559371391929115505504439859112041069311832061859134227180198268448168687130506315316131887542265786960297298331930132383860797228702264669599817499092084415683087065156807231318775087470349803085746219116829697187933746183119516028912738773388198985206744386990741614343653136871146283208008493406315982363700588550410536831241358499637090764818224244516332551307188063640169052221822427886782831146347270194471234154080565647743992005166263687462907938266249245785462111672285852905500599524770608517121007892789683289123039092923476099218909477391437665616163901394368846386394244277779789937980185398574308126701822700446075635467824561100769597760831950342918496968374172002815220780021389131065081868284887793780359318514593382412638820424587165559024577797833698297122008502795401874252776351413375915983810222435580134405312664465001928513314164649773442152413150713276079361501298388611388217438803794977224037267416927570843270484388057999061913720533140581677688635482894571303469100645150983858324071719174946162471079476368658842174352227282966168282166845976888421604458789075990163405059949831132564910840388773958434039101594127764832137299946094454223698785123254261171402279761230701493195834509886003931091305733236479917378155951801041768553460597617187364080761934844737979078648410282276587574634815264180895541800107814561369476050294354134433763307930294827084364060305882970295009193361619622804595091671774492881151017879729304141259679500609554349968765865465033984910514223495166153562609420755058436033272728638281346527423749540581023952933234281232483419710836915639142864026137684255640347060669831628750557164798460323459839331394482987128489974034410199198132771210766555215812272963468465416767959738772368880129423510699880810439895573049629641264526631736450227042204744434221166248070550891031271381745084271912900920100152388347840062191942192310010467694809753170910021282623359863348412750336038901931811931144149306423646454738726072362679596376354188839726787554563424108519081354527784398853781297553212931735652244940166874524322108293633691319934874261179384584831365093582919617406551863526365662542943558637125058856846488491778394477001228778854773317630793870862741065218156884764347307859297845500730908252488393889534390193744916722362392797206859113240317394894825206835538573778470766076862218983940095742065491316223733834326729645746842244560455019125559732641864622063881118981677354008060796026264714513602911994100327467871069977588941684485690580655504764056272707718484540158416841282048134778687174388670602902179009304641191637399281301768114284838485807638891179674092190155718799620542631965217686678460145544151630907592210234640865507893223266318107999012429267021220092849801468043081136914759030460518134803875778287098025439527957468340482312143086584425908281440890881416257587215384598072497044356560549998091417217234880318178351860827047942616594096893156793453084721152790381640211005968298940506947167502307966358305659753816046618775631609952012966664939690031274445713744753472350373816500587786834285094731951038505286378531115360660564902796036246746692111239756642512136116503265174379821151221532020522023200110562762934883429688045177576154673736133529754273343042576204293245447819919910212062930054865487781302386391241948564667480205338084884563346625404846561925944432625000251748894171319909837625227129367795874362442592455461614053926519339968769394316354461850438783316953416533069780535159962939339273938036367494118534288346111746472696841096741172906980939784365906695788769679961979523020689065465012722019577731709267253158964306434657870852304302997384050787832774580392063051059086855265096134593312776155286565067766202905987719686385738273470720179964481451623706017966836905761489337376270374989864927686943725912540780146224166242984127472178529188417866514462160563430638790383312620954124703584985501350784855149559507974907048331860305993803994868756897085400050590806258056798534392912942196469558050963555631276956144281065268807668442928485722349699953491038510111156159098679683392916333945532022945147751862008790031188969737731932532644644385644917048002292602818313147952379334855668696815738719803993281955001665839297407130821654773561446020011918908626421152984030862306645911381749653433953529380602712945635082240011904345438602102412109746971554603640742384241804213563701164334847396004889685091121097111747185570654489384646182299226244084629939927233808482280614276777426659207139442737062685606114890962298114042823168273601595230317737714204831735733591616859086747716322857888750156396971582151104410584757518981355919661991123272073038752076626901653529737226184343501131570907373899980864589737052442590954689065817346264464461078993627150508887199159328010701362109981957083548252798316623597515139341936163793036494695895410075717635845267156183886215338519015838277660443047701402852307500469211748196978152821530348852826494848294837183219332832187503062809370790530902945000849529735986406887147505869224377892562379663271165699378533477132358130231312890654814611013634612996055649835596835589006790169654671232345110421184830995277632409652528528966758456350214778651252361148832031780217604599492380500774547406931309232543017797613036431915882572251823984426584031383511614527124948471670462475432389795564179334606075554161741128454763068686669145377420275908041868610399583456842853265221501938522528833503239041742921929783831014018794028518394375968173183942592730124624330224964608181918160512403069125705139494865152009512014322635563974304301511318303690685902226314846033820056721128847984996497288655319560776093618771506773877972711141910225033806488461123652969202560946419508060432802184547311394995518842704748670443755358880899027204466880666767110322023269794611395191966201376943180517221240623515685632255171613745348012248479705232627245544939908528049613522033303378676908501916531889999408785889184543560963033972282862808364787003893348407844720844526309960083600518855588328376401773906280505693110876007709478037351792714720377931672370460689241229384075160146549874371488060188368322289434667451270981380953003420881251188790451494799700173860937008810707496271476305068484844382263207593042385620692706460206098987512756384574569931446487660361189582879013288198758767487577321184162800445133420358354850681485887106389612830706183665378030150352379883248495704337454984955690255512787125893838863092683270067823005294681192512523493816395886772385654915653635432094559300379203936098226680791209646406568222270002005258478165729553532451218248895072439330362583754711602247350534058514571758354921262330416133549679007794195326701624935974139971711295386331449359061075040869542835659243721578630175563876657023453530242045066552577187969849792325735313369598277087767251638902449105171173966702122213453820707389538090842932087748011045656966138248004675621755291857711385674196273867735906886386163095217622331500624987934424203306856967930289575405955098119203903427751330649936487056894028316003507421357280919170083270261756237787965316513545848477675135809062607381495916080578495643131908857773263126154529956831346633206101555670772767557266063749314642486932174981818514267607452293049408625642691808230055579872036107921226149596576419819590361461437315325440534044424729044201654656787091145277337637828031779718877440797190971288828577995037175558580937142931188547523179423008034473121373005371067990077579479406342656540111284498379596961344121080465859573662858707293133067663241702030577832217382098719468823411513688382216653196850050215471515780275605192168896606720923628377401792060983920485884864167435315960179685037377204548607053305467031095699635698483577312583735824283385118170405094867840410752589698798808685732425125358904397136606049153278829329759424716503690656187385041619124675295890391456105578418565967462671884412763240684553637687435342425446435260622040234023596995385911029472792980549195538737802761322253356358764035216018253721871428983487160584626196222981845560503782265276824324020857669085162370136984382273363023974900747786276111856013925803312897493912955736025210054824800361470559858248246884371256964072701245864256235689859914571938010940355498336821029065448315710508953315686552465790384685717518143467090670754847162058968091744747262926436432471695050306928533672659598113654539144627356780779474332150928079606017378886460860925138528573184885254645183788119086508648802197337164928942639969046570549044359878084954708477236803772315704859672702712266020941744645887917944023886869711009384036903866470813354201365037222268424879884800292035791489250848803748852613935440434708370034207937502818352641684570081890588455652213321677834009092175087712159127825957977424473703874985491263431354640517076016783305852567259826333737397980006024206681419850724292036989195931847658824429420859874097220800639077972716073477509789144329558356153289287278547902450311399619830695081138880465523157638521388231254006274046400703933716671681965866261415035557595907729203008531043288031420353912838187101003270886910762532071023436352129575959157217659619084845553154857784053041653547945458806809851884718238400484075339770375365668240058381656515953532626206668074139045215604429602259310879897454367956185222651448820529421550374380160794181167025466989699379567328479887290011068939361589051137625315019001906562874038531445677563628658897189800808281439294799148262678965130403904818089861853972608212596565246263075778384100638689911384219700508262739236213111135838030409188215095466260836885936252951428407340604122899442398434007218446295023536171406969324521955817147595509898168571720137197393620416403289300717840324849278346114333877708744215079639200194156540956283743418874803536220723366877192690902267019181527626332544807107096758288177741832931669666070260939006196611877079946485518828016275133990816396553107845362024461534000537025032618786761393987237398778674190165382055037018387168039838310838816159303400611295551359661221149625764136625101166009605102588207012656868990794854824469425894350573399015680140151920954596742492358757420875477695563006786019581880431750297366340382017251485326155353255959573561770310543613711418986356272360745761709798337163041667459935866365763811112066039603063228622049937484404051043016993776753918750624394692279699700223149107496444866565298099942129817420590408611162362024102540013338540909166098671106913687438524031581310086207908363788430678753274509079728549811416064709910255749482329983790190237882610028866786217563836385662665553928800625837547701256019969288869805106762857103124572000819432732242895881098545709091316626520461623578067572478802774219228884379670387113014008008627542679100198154272858313176939747851012601464587573562124613231604100704465064143897674828001850939685078907127296088075541292885894299269248745554122340939058772737270081280075251056661600073185966230507334802852926210844574241606100841125514782656052491352360391166355910743064026977346333387903505069823686478505736594167390079876830862926343833478538694805040830596608243376298758821280276373596858169988975858793757505172812370796963951356389437252265769474633674672934619551418495180754362204876106280756017597646421019607002294533871374610907872733966006148308896831613624034661126029983666755965429737886324015986890499442275913476387329097541249969516472835987589576521303107670297969610993969676613806097412831037765339759994599455933945778688940211575730254920328392116523231922735099337285215034692689176340031144103605413651417498157146842145589949451229517723356937176818385011133350399922418730946092321839225117122797369529133153233866262373499391957930221035320157884997443352366739339812127091138190212547166199681999762110713497252917766178432555164240018312847055634561516745589581769905578449174507522221466314372746294136472707203393227583673616225372429998590967159740000535631560552616844847973609084229104638273751763927283060347362844759264953513464914617904195349192506105349318240527359318732862158426885935012200181086758534860888599748569457257045208836665916631695239452322054753216091911689573419996412572693849280886072345253764828704749266089863549915579343170196118320568513471360728380603359969128928044208738040999560565283090460920627513869587182287280326901191014388557838747679617161921405934325759661228145383284653905835645810184311112309226085540446117705390994250391969435297656815221499727156665543002658065791793259073251117779106860283864836844967930809757477691784260053327553501592957808545753323380169219337845127492280510360755703946503102979738421578025679378386464356459010617273517125730415649305185969507080450731234108673443379761139256029526418634023025702436620942354990731720812392460404220091982266642143688564596100993744523403256294037868045589204596030229482839355903415115318783732537261863393613255839843978531169586985038054394981567460930064211829343737323695285050391849606917203203577000202578499251481039248298705087527962378560155973830466353720805286378241344944452369935667707501810205073981266194282860458808238684456923953080889126244774414434636873871186394465589795349523942864487330484626840476681902527023048540438156505669910651639682600008396393116224818367432900595157149756593405507940205870678398184813803540940377469827485309649589383546073575941390561552482358164385266814955836044667859386034235705904653941909011072345235660627660219339129376249502891952637327739502970546412349058985961257011253881563372763201103815200523515202203527614768743317878833140740115692068463907826672308523049258339485335964702103764731478018223733278130746356424820575647874680223442301630936264516238296979991993851962367063808043031439683587149885296350859228767715110262361723872020188411087079171435134833623187650096262757811459762993731108627288686104644065601022791999961537703167884940561656217483091223747089795784830697279335015277206984644249805645124468155976114065493873098740174283839726873686408994539749930589818580471885459981132700262423855314758044835110798702738861054390285918979242107656592177842969637639470899656431547176992951030671788423289093471770043476189970297209610709008719206175522013291791799291081439481407069356476171800694873722526958281892828992986191229267846635984871214172247706754386937965234883729379596106613438679877511004830572727779441983528551997798607100432587335317789477968435447761079757111698611720848774207011407596582592419067717065983842150830793362422691932839292373662494434566259108761747631222749719769162895277640013135883557501795223975121196444970594836778643263598143201741639692560083909905197973556749256577502876188977119387954961705198442771548157767019931415202263244551069475152455182556778838698301967785319546050966019394358665319895279052543081581538880144790559766717881045164480502426798232790387035309559030109871919293479951251323369585432692898809567897884551874640960546812897621992468154082914810308480611474935769953377001957218588024676837155578938818662606012018585756873843927549332860146951750810063543203068428375173466827077539289509758815528619344980927281162636275931771317029710548214328946769350433673328430276138604748250436466643256011985391497565072522218269547416778012054108947232112428924509865615133661582172013048282657777164384359001712000911762262877123936451722181193725879866387813405770527417107359972225651139459218488372152610969157606249797367010240328926656558021823162239780861231059492526323874009795066083157232965391500833046225866869372803778596908386275641500162245927061300357408101147668994122122738416878993565820566891300449565706583712011848055510820885335027641582430315267514355893312661567257001763030059918028709718508109910401691123739232841328615638897791902103897774264749302373325419726591029270978872467802227522393629353162208290346024536947998365389657385102409528174794111388716135114986340257883664553049952707915325392833337363521581730108342624392903243133021607025376419495968049313831516543923370004402149364387267465898863985578120164142577890555507049448983788724986418958471096841938582726069562158070284730970432886745341434845380131314311059259773494254288683447574266098967211578278499572790621717211121032701962772714205280945237584169690308290609740991019616001848662129424493659152077356746718760129491031918192703683285209310843195452278025338947179887002037714374463387683599405029881160039823377108093581614689693743209823196920735748263412758357843800216432991097462606048628393992282217468940991616305917839014667876050988384075746818262597598838881689433110795601642742259420853113004139873501718511403682424674115679820957768618725648477056006041198670454490757155762751151856350781967133093652122128720000478284576219357811612488535375246072612747825448293120930020180067196237792296969357220647275915515050392736575040428354693131052444487870654652597734934155164625844337426350427884708802686292680715650830527761334853867627139466402656206730624636911272460812675848620309746863795314653267667276380084502458038703741973409757654514544153166867318243185790985746933106329045646896027346322291909046384138124628009457820937232655750917096116191980023951097646792961985166257877068845185160839139584785372583138514661542098994512091831202232008608551583825707172834668866536833618391068667807266592395229250961687906763457537655310629176710994447696020561624129351709888692216960868883264836772744307791427900744056734069856304022069654490162469242075621645565932183736310604978055427094842534853365541236620458282843981595966498029426181063696352140653792497634220233690851702172774841309483992212785210901057406133649951153890106919936425838991662562765383342228558564789922699428393958093142307319180415382339004660625576952161927767867795564528799594817581128341959078121007349245866730185554454296356070424588641315092379645163691203578975826314867755600405905354953966623826888114212528396186488644150918585210570891996360942084575506715717051354429996809567318951247266883581126646771473098484524502278457920647962262895819299544226243347406193165605310058600595180037529212439553620112625061855381007665267767910844793297499047448926668851822799827151727534585832286959967038592930140882860303676751343903372164675092023096159789045904042753053448617661089849233166768827409961280770835178854877861166453322448161401030588046672814358228731699701088592075312849878881704761411784654948067171415815893262663762356600896580182855159378252752954560768749630311214291668373097092301430296694383397355159253919670202675369734865624858709406994983663713669511214954653670664474819478870987122087767143886288920690799925939660320528627948474348671904548685149296494862883227215969397719894487074627914924432721962278624798603551089554437117556138550360580507657485494098933073026112716385138612726480193006085533631698476924659715263136981181043904095304717270310811186086854036466269306458799758383210694199115572536824820315515426239205116239901945847136591842406363775598495686210976747916592829169169888051932283131226943205144258219995858856107334619396693341277960686054056401050760016046398943711271335979824055576973352333792666175308076554973692417918343234062805963601766923754388496133511747466177661198473185372996385312120188497373423888658076973908529372258451487399327493974355477035060790585897501985303093090698986558408692946198370663863614836411555417744224286460022657582300057782020171344235065189789748467575912908653409352139515249812783582351409002376745978599237449171624598822298810249602731491848512868776580293645737578572408761554264037901688678442509551931474268053055744352242896054504978018993156919239160139762242553549865159505349260229888144440550472389273847761344143555317244287678080860999080892283369858556460016977039764211366934211370889763369934488500598443944693648522479797334037579920487036361511971533916852053918391256864643719410525811498795387288774468517297851044075780634138869018788765520209730461531009929514517105759567879041960959674927029886254533030797096527550683423788562863299179394953123520300391015725380702082028506319516232204913392300007839818668754472861304643891676027192257432208693454538400179008739934623495130965813957051295486007955823234281872740504380490249919595242901594089567715112017558171661414607916686136502626365695487613092592595324170284049921458097769532439764226170592415263153231378996922474647615194662407975293183900007940619567986131113626233775250690617917560602547681358154535452467599463089205160313693680501097334304578580868108812393734708534038651540031362210097541408144895860629140248060796268804767353426139777112972233909154171294838652973687989871160819559031372297697324218496183045391507918180407814768467265903554125443649484506296268940577712437981124057486100096738734269543391132556905911068235664600783939368338652929044814806322010400902634034039585724309076156935739694701320442863739744452208534052968382364587430931248706336220424894236653637371632794379392042601533294160198248556432107032154688460865423958930615265582147761986736845523454599392253069728654871257373763214609962760879919657422613851158771191548575374987962220534711896759931216793743288656702573270198186066237321393340451548570190905718953677083038870697171793179241720732076355140512159964242876313233088227597988296198082759475217789225426365993540028880551271573851923979622016506702482011441267873541464457386637561913557793264490306942776830537895104098022121126687541549504613022154715485070670429097320119169381008016465982450497998735179825613369196325411551475302340518526726419347596427802072801812615326325869118981933307018686956650039774344736291380957481888110468762419950559960503648280234605237510873802791617456332896405066301688110181449841114382877386994845720402072043033062033183026249653707249628016418322847889232933606800601700665042713123057720520046720726328440193191526120016367669512027950442520367517404231930592760616919655612888540996280615072110363938703495240497697491941091401101930052059103841566893458577940423060129218071048712211704585548119970551051953448569430502606486764315861896373588904921552060543208039044054915792834919272830875660215698573226689187483753363372789192041470521625974745080212799338071684916510003963526144422656967452664117389372407832125548761786758581811528817551226014872455545701843726345607279723241281561714390510992171853927201057534387201908671547689854715573881402131801887274960145366547516783491010879582293413936101221824900654380794650732823616193109853067494268763958104231069631802702851041020758026955426832368438807545780196696613043905066043867520944916089165861235531214985039144759545781213261328038635329038090967829925888729682382329679161421126324014559246956237287105972191561350389359038461005362024462554503404161289262638742401419630514563626464485027313904843424352938790024446263274209047735206388745639719748213912817734246517135601935355179768146254239886239653175259231672089924240394328073624859748388014967141758349385695390579592007210359341176662935627787706314999314090165349662500631730819888058003519113882573709243390836683423625281234804471370481998592226077264700823926585052099902361181922699041647622292693901715541035525900568060470424884372204278927184536613211613361545825833603302988779020989230543988090610727143204499305708385566016678949685113995575417569014420686508725376220111482698727648887326171622553180407815849412601230532138565452317407366461816701690086442498313001867140677736480315324470702126741619905922706410580816952010668080960979311881009238357246684702533379073484660932827084564693206205730097865423798945023020008092760355876681898286331573557552654081879555291446832370602897323561667201666871417184789712125348500058972440921791241744154036033557158634617583471987397870078712619882435825607610469459835623103410334491896878485560347986591324785800061742252660428024138480064382303279643364030780004362769826638499221165918480723694924114523598368646274228648247470386278257130291897208565865047706012694555505571400796756480471647210012911876117407920804924859751892778387883606798753093371049605738911669645957568197374246748855594330300478994836793800541828482645333147251850217142182202925118858986039373443602884427955948155373333890700880190784181532222199347658879886679219233854572411168074954749929717899175381408988179945328348391324180592992919517579491912135239854556284028567998255939458933209400859382704041027047234172229736036234393682752723824789755629734830975736261936571207680846183227138042856369597476698577191229326540715938037308934539523374763856495872967139293734967842019505972914501490743055116281975928494162378433903567997500823897866998233167844849100275020345863926081325655668920504119902506437652662621301500393418082729340881011095537974805825227464346839689538202971068614857346189302953999803853786140960673744309011622774660029619248409578788801960859923460869538076822426185694789335670990223122858197257047165357236554581963999790007041551656886989991778158618058228515265663587658264661060464442230959217236585769617923406378447800913419550231852865946542310165934474948443433978605824512655622754840928932536446408128934268148617605684011382255673971948242958151854117907842163126738938626695343750534111498551048310023376877011429123982425372485663015124481172810440682289087295488832520121439948822332812647204481677996794606072832123194876864549721693342716039095622009374767336011590350139318204992579791008735043615607595375920117756888828242241426661424610970266074671408031659423989833411372107026234768585478943562721677154009010266643223757198224242642467142000950795066070120746817223030424709336601656822447679811346198692241095645808869413295273105334116990122814949006820656210103484093949677450064039336539750466751094536378962856180605541806765745962007207281345953515611092604949136297082704279004504855467464871206729839997039174032068181745883042522604480606625274443638918907570079954088749107432571197149286913029107639775427229342845618802482836916451584919221066886773728119180974898513455498055607423949310009549634061460940582364997748167803183948211613023264971083966843955698720809575973035074356032806408927748082182199244411079209503060230704431490183598453950388560189919905200764278412823486636861598644343910845621872669939451969665411898887512434943580329132848651949352655177963532756291668995355623765176483271293348617195527770564601477718472222886602315141988152770956017732301751088814910094140245371574600719261585389349494277423715828760133556223135894236714580929440837139965039599983018008143692246522882770471055101025184886267449267769761937960468559957929585167700589060078509409947389842361941110158997212687927369307933761065215589664551444532032346872588058971968320412058879514196654356233652314392994231112057905168675803596791645211831817651943128080294994149890590370683243074238954266073535479312817258599899022948705872361126279743770780737127732487924563984171832458137947266888068791727357114665007005290380708636579368724467324543584958827106802132144276542036202152911101005286841921032995694961110661940187158676858983876518600931772369632326420743414403500072408254620285422337355342253099303447302785246528514601016030628686101176601153695742947750907388844581156513401370267391455758942815924737609386905101601485727170072764654429924316413595920464951330106980486264857595739980090689836228399084676595749935673080351233072031801155046151993400330200547255566258951936238422123945058178063608323608729554578209990784819863358708638747646276394110562220262253638077774969680356154794809574632477331879979584533480040395788950347423982724785365886344223986135412162285733464603471029731901679109688100281651987587460120025284823705955696443285415039100204791755217105583934792403880458882748839283930836560010936367952408561845832407739124501390287009766327024778202119526719782116512870224714696522904047894684372798685773145699702150812383998687327495994364301906479275110317159097659077162709626238730607071491517485494539366325350853962212947795132346268002379525172734460925305237744517855617145103711390400047282097802058027399524270269358598038442757832208118556074911333683503056734935013249148260286838750926147472633667826032791081118256408579227605117222370076111682321348070082150626104056965347718600233795653360059057026181249025528473097556011120646969740078271329302760515569604691313816107776708768593777533458887890144722689476477484715518963460199278171749869581786354024499502425681810309303163935641571015556797316694023555534669934395023157044852206903836331527610577044205847500057969995237016841122385392594498634207434459948286770471294960085677274782322957207586616665221805067165963011009186861376823518482455403824098176831663650596566753746049132519189114271408346240548217128288589794663382223718424884037958711830179354088077852516175980581230912443331751615595763080576938678898297417667103778151482851238890823088680783730183824759403082687430351938080140187714537914048124382388311754264419287050944469585852592629758330038524971324793433251166045125129733078194538311234682517429132317315698529755786184428328611769563233772035088449373259869967044849737052618314994732205674028971466739150249621350985843012903095119828115482691554706727980915466589085620635692254339251145953472177603562852671682874153842758259163719044949554375310358040796091142967332640227955296998032549919599173376839122509434799168669006429312942693885606901494063981772935850864596598451828542251564580671925687857882200216743261369026203686917860998469580724763819460127609828780125449476981537022442876631718303959163781571474004920749225971115340701620800713985576308224334018646772034270213024383954361702445586692943940147649419288644941757117059402998085727547274341896731476068689524278946196244004297625987834711906462678309869804561538451854597094298113662906688356227690071059304505593425154903873360427517469790029723723273295085435879698090683875336385436226248027687944684306523352032878426683257161950635403184678838866605480093748780414121529058369039782181284285247578757449406430731860775133178868689857071859132539135587080136671484960035591790580725148192484953209633510075616886980012694587727637542657240463267218929983870914141175789286633702238679844232689031230905861366369385415669209604018344944296975126607822237334994289754934977325612016981566828336154580373973422419144234101733732228113448134167678284600151118040351543158945067977976261385763242557269420598712696483008809117396760134087578778183959987394759330228957036872122227777256124649242077130960730096803733688801930620377496572209292087149688430907097824657979982883115791647939681396274786657712805861126500866604811665810132136381906171204071873210489527444927843884320483116303541361237209195741636014054816729792400743123618495890645148178009820561652808007179113133396017836432182559657557987682884242949270255130687244046608863072028369052145419450276554385347093392085841481278515993510329805811684084292176576180903329323859935404842513392206491748786254689660637153585365886375320272129734666749673870093021468983887111501433587222680505699245072134898319694274885016694520974800921103349380251507378214708495516679721784574653728341925900806392261594727883543293898028346471481968988837169390877908938091738780491483940070945276883260841922181776295580804265455346929031790052559534060405799642472584091095956041044486505660987197416000549708733718613856805056473886312234677212138717551637791889088707630653981693907828070418238257399079380077570829965197142554856247684770793925016711914259338081430892188722581363347501792247295206161548048834935187040466767391675332975493172719571250882320637075551275352557275000360052387781534164211369109810089674167449885744616734366542223687625374242072951915557799657862132717589649168598915768568713289429106587170700630189117503543006200040419395213472350829848008835411580971368211951289165577345098161101617585810249870944575734901417425764916292546577200255423790836403548637303322874026133633921519768524658347791019163415524904380691289985430729973680996552723470520888537009125071253682612577860927933267768581705861789350712517195552276907958087780828869626503139427635903029193541049735752241360697354170195054204055620142584529861055699770727735917114854826064184107654086382050705667812382369879758872968208349870800403859547876869370360475724465635348303545475988014267994199501551256189800790804668946919939679101441049587633293720141151871217869250714628981223923260764451617464603168312245995305187594165823377275174129024829368121521899880067803257039959678235197622951777010944592833995995528357773238270145792965009713142108907450086831485431424218676181146900624552007665409428240393852363538789410350499841786888584953458827548128951804233369760185165911342896013961444682619015041060163730411264880108523198578044277619039912974001760364957043227664281665726399890930464028581440065707754306548694477857483181750102636118621804165740413802706135795854321868662139410040314720327781204472725182447959208012607221564432590354422485802268214417966314204057370916244437322962738575384653811419724174382098785600377424009775370660119312977334016275907100744952122750061740931865889397549283564090063365750263761051148051876401635694135068138332536371154294672713934235813981402793592686435830297512823932504893231951349507211433207130081478087236110859220260870099355441777407609763065430475954876392822059674540819786553648121544498977538022566484045361889081883029637958956212461479112738006579610193786183248740001967131636226564697450359812965273780624852904966981295938927057567955215885758161510999583510296382940455925568393249787008125663615436098541504428856623244220779596972049215921849425166629318963039107443829281915850644590192283403052979619468253680075779825222370889111371001139939213505779327895358374406866783219182240870966274879056101696523499628722994536655157147833808557937101275156859366013398725327849218256340738468011201886733378378986873086512545021389093653866172748089644131425518974195596846318470092974291832357084351836410389050303477692777882649588874034675559105506044114475361484286283415992895003918392034050907485826162194930043642176856277475375157743754499168890303223674968616441264400902053068386900009652377101536785145326887033437917203126040805915292196213058417058864579739340195556033391683333797808983773753998025305414179923618606642781119886847287984949029744670746519034893277185118354932913200092111967328052494328533021215757309687800321531167997620567176193155960599746204010856775192642188365284814149916431356924258085537873883739254224786552791319613198128057681548541996429026991347923304998704652442746235228199051733750969391182515925175344293624436629323469010387110483269113835950155097234838523258146067127283999047744311539859860864105005004029700495966403688886206149243601449197004724245428500454498411193621701208269130161255803972146360979422061353809432274741750741554537925226056389275174811527577950536289307062788341765928755168879928166027337264292652924678282616894726228904002487788492737510349460309397220173836436636702711732669930276046255433571208114967541288739774502408078733370394172089584868044098502131192035853456644226511605375306751170390562610100149640674065565176331714229730554117588149552564343733651400556701401475327295243277687856793159462581534143426976672769204796748304917474868956589140726496343804998932044864519490283879869913980561163626166260633832300115783573974522140117537823713290251969841012087395869675863786517166471670788754861722991013261305190343442980713966360802685552476416568229451623680188357195288490933249455532296404125735691722661762390279496295109813141855868619740390230954697005462436828339776425413835517247438669663204261433242236580024617575360968535369577732783270745509940473259823810336605581434987082672467122292092950792061464912383186825769103755732475737324044844573797576521828916375888659323403672381819827333053971355880185029151559819670815450611943766885613904234901051790877049194121180463378138156195758492349851941334042754686522507286658251539058391258340914788220377910891989126649381875502186914612690525490436505264222721694134717656706300888800218052669531387850767869420230266826480184977704405562831125157439535134027744171985120808724624927240818359108704087747017339093605045203429127947576740739508915592452743909528576393324017321617563254357021404251777653031074795886914460520335023037383717392205299375623865075222904234506981942955970538995927210774251382228188157082756702441214945392925408198254717023757741148234475920192596938683132003080667022379611699891181909091020511890382920285953239032121736704355420767267772024503497613146318702794045559625535770460593078722637906003756937236166026368277657142941888043237875425127636602167433289538627337504149516481996459224247199738197589403095003659378947401739108330990145389605371076031360973738845989385237307978414118147286775259002105077876948573481069344660756822563761642255477086548924589610519335393930261172762675433196561699589527077710911389671986627961151089428803314335154595416531130180548752490876501107380646765577587488603577373257197995633376072721677589330014232623596059266590072217029417830764455873335165522851879386201707961310251197085899895630273016390108331276564422142051869791252464223795765966246884683473662148161727598052005738871370013208771281531136452613158547396162156937860256058704470222408468384579648230659963485439617905152178942741532275117396943040426871878287955045943434480005452872163912102126622911364125505102020552978134651186082707115302718241615736176101282956874904306386354923422306762407104348960077590120710193945996967917224412235028379318652083440194341170558706748375745824226668935919192907078565934897794298827365884589641535141799029577627879957962111787886980084065633595748040081070777608067067455085690239985476859049204528029641244660612127361840339491085647937064918400824405222405322877834475309116245958218634299893834406052983310965099765667721331804354564472714163853892110242325474217402612505563935880144477597636010301928794889195590493862633025544047489677156610178946046135042478984080905810346882378378952297280847126838911381463068023328272659391667494272125453573381798008558047833165858312388119438377537046240109508233084500473070314123567644961499102144294866572222889552627815897271611417653736437857921551794778733030836052506080925829882576765159801313980727469027589919753721892869569065861032816410632719251195042283874067584948613275367416878924328688017177939582029612722741445557226021315863529504635673735361541896496717665424837591447278050018346298790124540833238538050221482420946653943370876205489933429724027502460889694917781038571075373934561984391618802180453301959512364995862264068078582503205497652240124908815253860525039536601343802682904116114523277103111301418008912364964425270047874578558396844764901122796033401489060418647218458969358954198242717771910092997077927910431751208966074089714105211181415829402155090947525432914531126441156510600429687362028356490099849689603314743519082548439974714765656658143621569830323847144525869063364726351830283773779382044819355111188786767855773385349699291157422458180335635373609703986193009884826887635968494353214799760613725962490563319078871937582296194475604239740183076657845119266801954456346812607363129109976198941579226057364337948381091152786384608535002836562796551919859038064475136989768697351623877488263565088220259605456611925566779378841596734960378576482530620893047298169326829344200698964851456355708843108379184317580049048939550718505341439527548362092132994851738754120840017849501338185466598347837050306393058672915040408644675474804848772810950814920394441134653494563274242679703718983922346323964008596616765802848769193724528734000005853014196251827686823823869906710618032266515116943719020416627357141349776329279089863730620344697989304123274395613455335659809367865415271532848047869475106028209081620603076435450752264129128744946085833720932799476536803723382409969274376061544690003100563307453160500700999853811030448833510875618918705230290322527665004531131345104509021721602126176684739754739978298155435710897770468463952060302859141695269617778877934405589729920291946582499319453214626062422916829999589800680360655366479940014052249779022840879179504229192417950551213691856864071823728590828976741428126885085504620425795927600764721422413350789117239286704834407531849346187637125138535126811855569105262268382105991665350608293386617004330973790759583952375789404913260666910702605430791916329056307471563680383802881136967925684549501531585852823012736369132273308685003359326417091334911118398028102911277562381213371551890914864580823739539145070299978783707990043346038714103192688013152799957709948301245565357073596056000772570465141945459646788242889217613112370081037108856991652979642956790669208911192954771419881107215201991334760384266648167232644675671418808927204033939645548935818030256375679026963612165330105560480043831733559538893411397560071748492309763644626059096892089743399801951739855917463809617103367795655916167484231838300999129928703075270062605411786637417884739444893196381609617456469380804574072614561012818280011510357097180499102454061078287410389197852644241387245614144072095337553177848361036365175660916273608023899053994214629673680930483346449210208386477419172967063435415125393726640841304280253860171977491309134085120120288416621887312149797159750228633040251829555314474542672881056429806652059362475602919351834602515354362579766844747271881511163590557648681212870949656622393527050008943378910413343288347511174594710741876141367168258456328461680195172733758889286029816029931257320266094418357771679107768855297547238267239165977354822633287382969117721910995859594652778239856938283307023468180016810097378086080730788982647817639465058277863843323008498755875638372477715990364235254609861007556884534610309276811725805310835944801152936498553530442944991510207873406818351790500566735681101734865683320322805641741196175886678624372133720793796291920031520003537095829288064791857216507767640576947670158560323371692581318079183415808923144740115861485442591472648878400033573808090303720961038938284833389943059490701098205095606893483327698913557813229118084941134450492423853034706108052430885211640924301497075891017741482026811283885445074294060533307351870621044848954779080817852198538460245925914736888410416955990712525743121486354623519551101986723273980941147709819785381547578763700868063957769687865797744084123325334712805708342567984408401475193222876197289886007672445440966020511497059677583381997714745847570541659677126773126651475038595575365485429963072780030437981624000718823801338099775220249761861402173307451005723443448845797176940928863895614344542970597708448281070543466472170836309268305160816666540247144382889216744306945771458570230400292787809718699245060891828341225423156180713348263931101558528902234489013472628355407764711796922022145538205249812309391398898235812104378623144177752133649795419603335247664302552961469348694403511654536888183910010564347442303504232755930489240542119641987270345527374404226374440178079232265225458151783176264876919267911847379601438820579186127957211611895862766040482807097630124899933716548579686848905432123041313010573096353141989114472287604557940579878233837181054191327241691282631788465613456157644966646598862446338260753930799947182823717056569282430681384997408317531396572363507512501859686935171585170828794282129328205229776840610482650829567548456413245370703721331140994864810594498046488546340920482155002576142178809000779351245206992327375744835632542508462188740629546076940133242437090056014588613579732413067617841355219505288272025146884689391267986342120442157123850300186082019800630536455731339334967436098083992613807408612441542778371821641169612316420379323746011342406558419244073350715660530478782798316130936739979061887262628383260505388646385540798512685572021159075952650645818800212762516717466589712037086960761888439334774515004352342910784232180787285555415697738263350833296271973195903752853665942071143133163025602022517102768081179504519982463242343584790965527546172592808310698010335751539795646985449256566712209479316978152034549089752042594439794004375640127212521751113169748216407942172112266258104633458368770725127227124980865882751656333206029163725333285558471702339781376497236330152866272262780747416880220894245575199484864016442446095086510965299279569904249676322885837510158342403968791652473404357694230899258434945351176485978313188566420144407356834519160467933826386070282717345127850001440948826527402932633531555243494797983429536707974392888661100918489965066309125503246769587253512780229021120419312537352773067663719674099285522508253748472265714213902721958872956177847988834032091634981231675391355331522419778197958635571408557309101083471096950544222240286961176853811149842823329055395342729369081488446908450515721712590054477192580858754151189136192130509653414650908429436448839252644718305836003649598477030826221074230597660418702250530415101091878764601075044016194234299906944632552158007212384369127615689704731814886819621949047908077498014292486237902547263169088812751014844892595206995146198658323953788865968677888572124855709739873720069000530352228630400880259695085091374595158007991697876578568898754187262453104641941854344238920931269963425573281443682737581923325330714135333498415429877084742710145770041745844200241848887834798509878388612649455825914808513557674853324297490473788201550475392028662267528002788194418097624235341498239518060666842739201665827803190672852657751771893310298418862564728782490604001505318141270124711142384820404155830090207477044889902565247607094320476473382362625247113521380361037946094077358004085272617441306723002618860001767715333791873362957870675886400252796969492091476915845486360329361925921196854997885548714801791505216048883047945693565298899183959155185825586539256962695748566265490949428328471091634815550843793729400783834595494400259463826547939112238833228549818865604059342815486517545238617571143241376724903115458998496916566334994808697270469469610995768909575183634060759048727014083293883199710424160606360554574875997356003536685103731227720223642057745332313989770808555122731861279978919979508448905454034929757782821638978174503498351670037118444454307812734038935448576489822477685123423039676436034162278572875670576089132430098911347233760444836672594508785194293980652573831582072811421138583709074864003514978818615782924651463820799268745250761646913152824524196470231579975279789496974061678175317345621684717453998364471193108589081189403829716733454456693030931546418531759156779932793409818618327090424002439828407366883866734183982464319369532851916591131977806617222473574196552747834249586097738370010445979876952648159469728171865494691840856437014518730921176916287038295074653698178030334213807167416085875017524874322170994561294737501279032884859860163378718390629757379945522012074986611534055122134700687127330004831093964882162457533078486490092242330832781230619595221673332180246737833348141609656871391677384755505083379203244495469453145377433383294337998710737014356219303160211435126580092859780638935507560306871157157005668125459250335665419512555614874011796721323094895586880349461188875296004166532299624776486923390199353140308289113941299787060669514145233192936649833122894536601850570479504816290471125765520810319110151252590185253836945807307081534595426208978396141691954077267456532818126011848481342581471126917651874472283235828794343371381895145122225280020079923715161853236189142896320175914823689998303295775144217982616274207511102786831221045194720329762536309455581054647126769444338882408137721270510817954002806490621929264534231065247976692482967355887060376283537812217571407943082420895546770390373533536333053862335957396802982739071767796463929879236571890323615164933646911699981477560159350982950209236365653740445655786153598696772779331315077302064317405291579019616136950829171323444119997963142587785506727067847999546886556195499212599028476985143988357127522373327645721640079020749286303630462377496134744642553037698298441282804777415447525699587710532948100348781876815377815123993018995704826307849801881582983586376661934041308820635213810647980691434401263433345405930002519411762393874797738789662961765178729856267100738209127481756293977791341571376610662712767220847539459415855580980709303942303335935947664452147982800184717988498781629897813264401538371778843217003401470618131901545846989500914039469869805984158969282814174915104487330929871013782629453596693066049549345453836965410365772358377771540139879991441752384403235495710880959841158779362813087705913780223972400099145453062328056732273836904120197643641809357081909289676704731645825067612766934554654068181335167357533333622525398509571953770312920045317273341340515177415210228085843168487666474051451422839676845415615294253289799349364049244624200580567234582148879609579473457154350241701403085966633324752282112990357604605418262099558831507255092864302057921175478663997944591736350330928602889977985309070601795236737672278596488936335245989918313847677208134534849188924826236145596829831534982524075743941418508529671061244954888644518655371605285681956872971705155082792173692868468210303906569332175472516348041280743668941742296548338582197276993690896068654515609170995630716569785176862849978045473050863768780455920145971418316184284201811398673327440036757540311503607701022600799228633722293381320499965805333024292815396537340360102772533089805532791247942390297882702390891038182708949058406548362822751695228370270421211433046201489319063462675262257411421815145606146911823765351333072272791707282810022618239950896253423111371646770734318852388189597968237002354365655283704114968013904720655703068421891926391319823283087284738926156159096371196928702267982021534623491618215109243118299547680678188465679372516647168977516193737177604278598724536459152406482096001263726006040280000716139348988813937268575731679852483776162149627945855004942859967732260638695005820960671252130743926954466193587471761760583626900942905830224308221154634459407883037203305473554860250056161601700932017821883184233648638816423563371676947467999485110574101080015102669918530840125445376374400778033230726723467665222180652420044954266516542643678739290688753699485010112653854588982164182477605048906978924220105951618530542111919152352210916470210018104573073718396004698681939115401007866409313149867088044807160413550457774523243959223271327064623614559431626893840278221503592939686872219432681324931594764849346596974258017195290059205015623893531068824710662087109775639068269897884216051835050538233027072309927882238521232006911297030121338308946819424886832075772391063089096729566245455086902184444054375339721715199074887799180547775710510974681181034123393903605844716882133001246287437822104403320860134766565737154507789508190342588708976024065529773486147355184333035515486712920718148806570895310976740055112522277858579032623780931954092041304919400261239566894102439096806741798364595640806562676536948367353438204703165850537627095513652833492136528018445859811688444521399691229456050995103957862247565853531051941413897336087204285784023057912462484638378977968081265515099545833860323632852748977846650328363141026229785204933367411893646746437546131955457197031737790774088989415201905837157329944830592932864436194517265068424090229579789817081615492462945430953363526497474352564104568013512975800956060948822575136845669518426283090393712657736159280899088362258845493155074834176322242926799699210011968243999036660458394398087531251870644034994377094985604744017455914375382491952584789474671968845029093591158500335977341747690387667217935150632244621679749552509691371823785398253741433634391430427862239953907782021035385762546740816960835263401551448881596860954094955654690724671422931835379239740394874514053741234420545233115031919431947404511875857222411187322173687099846156459333147938437305897406569750330563427577173687808848844552240773654035002222646385924046016587878996325175318615255351520398073034478683621275022347879985632291757818305875614224036629568119014197989651603617683003294811195385604458499122194363731620040914133848212109145613337987067474579965155562820656018320119361153375686090850706322980818671696250272153246998735188288888797585233735820267984910865703877815739767387631051730237774243964796316908758081816487983462137826436603729141222125538389613094814276931430928503516970920869186825867792664082967945360661021500412980147320232331715413569118391863431747301573735298369778662937753878013143528875037288613140138323430596804565992410697707138916024477645110805556260397299007418351074406442799191953987760748853821145134390773683262257074467938750739633683582671891208748580208749045169919499537959168987859371322464589583404152332950444376760240622405946511264216724562536276970267901800282192806160713642763383232601819181578035960864824745005938057351282526389832354953471526983314736803072427250388559450438136954058733810939211507439340289947882484749146179295710573439841308207178975207587640644252272987332909642963335881716793317080704692140160357206908726869192340364540421121298188961801312027932627548462762133114358630169508934412834229486910257077350609917267353988290178860092446683360638564268220019559633815478535869343832004787088054901514199226269499836862217239402835010088584519123359115184116566830567381838380122185001843581128496161955090233433881246669493711678414009277189257717527967795544808077373425528344963375000214485886154558433356286867920107186399699768795387108293664047790402031074741116757877063364987237267096877039394423341037609964799430328722159022222063973999730091193435067878232927106995544095827582033029236211684353388468465869769863987045913460883197516760533712830025153175058686920494882890653704332778608841085433463823653414582277746881488687152004779903566466647333619173738798969017002208820054174636793529567360311638535807186154830514938547027612082255394282676197560363573253177052531394558555810055715374622365371472015322940710652248358715712283307385618723377180457442485004043978269227306947076758106167346900609961555208905501702619311166642991874105776869572476706493606116339356460096947979117517537306165050101538967534988765860589206591733179070887620724663791962142899805987546124454150012622028977756347963611771755317108984517203920078621404309942031133732119952097621164316689303967962280816435166679557505593923770690920950487128602085121929985943859489801371884384515108785534486036107415956314861833099772410900935937870630259824195531105250443016862094976591208536118202977534619032244449828298808062909655615746653041408939743391735531806053550660846950814613276717400446245462403964905397076732668284252431701366428483315929181221158775330904061374187795544724310584210834062534136436323215366136472626238580813653105210270234582580131367782864619460116815776665780384198430838140057457425854711533654509699368817133318751705136755988726503131907598658457396324821203200369179995764614619666878410519795806646226974057853601566378242355427216045429680236887394880188172475433235515893172806236430676991216127049859543582045036256302898899978206913304476140256135762018344611805444202491264504247468247668806695816324311028009434729592472163249132378401800015355112558645668281448425548277254668215450712037393920160384162077251963644062108575356798724583591327829873476224362728957885871688609439114482518789537693530560071465428299314081466284626736216348975054014500148885034412321422066962218885087913252203955933861076278827409513425463674608867466055391103308364657479809906649559135301887918409541989905623402580555973630247039097925986808724891977574530354789153057124173376504271071426403324664502247562858980918708594888069454700746902496623301440920783506932612527536808413480587688354008921370539539719736816321510595986120482115752994644692544328070432328771208828221980476698683905985121138568748908206483974172076038348669798379761358078734202148468604038970157021082251537423023265477012785158792108411152328229907852515889353609836166970055063998550823601326053279102204610371307042529288281934487720232473922170329340129105934141061859890878031070022852891844066112943678055531766829795418989122991459074986174640840182856520675697854612387421008775807148091988567481571093223340561131320465137047696741375057303819896582566146397963919140478693902763564319307663733703387895955317151050133752368155104532665771987941385958748212328761522594296111731343704246719232229507011358590644550695333199449233886290042617398748134358055593002949996322167808845736591012346309736451818779388921290876916450903874898736029429899959655451072370935848734433142237723081979918559578610473601053599576417019893506494862321333460327380038310658000043483753941856731726971417773432779290708039014283327122240957598461005117430403911303316365065758963433511832669562332988079498436938993695530384358487199412880947188746218606550036076636165647143153153079439816595524987164856264805095403768428753482034449799976911968477221102866447655774213718791848664884032477617768456555116205180730153137430223597476226653618040473513262751668200453524310730804661545528966582886936283912389274904705344392298941328089386391870922101870029780375666861994917522558750475615609025013418071612411935706824781327741615626528098784594166508789831704306281394744855127848570147086089635619973151672926681905122359384511663228466430555988528045206038524247759546699123857091153319055312688935074319503202856204123337648873888615436723029949778498854229200528842307997534557563184587593231650127537996891079004271292117080617773511148310003035691322711773135645264886675065279403169098183940594023386548438435956389212741779782672377769371239661188713993086153109823893593614034784707206782351900549357387241398523708457615665495201018239344536141259188910455716038185517325239106567495702563777374640094827433989827774242190544756882719579907613246238030201139203917364855786804976788119522234352787988481574275728915845860048794251002650895549350948745596186481696108008303955939645372174797849441198537566960773647892694407529106163339573495336967073424808981341717974883442811531568588136013865460452228334119796449003873970341905669951978829665572849176400149183524381373246244373283593406869499105375428760016470954814976531872145475262083551641344676247433877043540994978526248175183705233240102204970916982554681935907110610817427076119096092873924841025962758179708491160642767763208365161517183155958150636574122762728607699911978568266220044537730558610093194296418883610736373010907142693774624467794943709436852606563964219608422961395368134130015638626423435742189857020436236417258859985759110843739113372134228674898432711144281910436459909315487594897104100725456718428329901827104892171469798487329110882080303935941240623420812150906036207831527980619427401286397357676241408787083498013134315131767517285991777080317712774725279854138547452050746623977174149791115279952606971443951149781937673488696839406373348161837702993695327286321267478917597449118810351021417058048807616977651006158459172324847144273304809178255223119439462773090843652107491190871833492037071731828867668600082492885821577689916840951838323226886441906254699874042470409095934544912005576143941512516995572375809792449236256599766657102749049885500631990094235402610024958383957642867512735275900173894743700637554442690041217711818153208084747811133007300355067426724728562874709637479746546513030852231001640019431048289337198028144848579461218186809405040848743923968744439796096703272592552064022986387782451055001603328829881751799927513892300941707345214463863399626073440414021788154671208178887790043446382549845756328824030851104678726045725172505015557140757882394212591002113913362462161729057490281193867892315570784990636598823346663782503686719492257988409977217479377871906876935998066296358541116651085322963561997058639560343703147865769690198698250375986953143328056075641728632261976891618773554004639997392484868938524161994817209041597549521122122140362798349583394132758491520207115551831071661305668342551448382452398707170330787895423464944993827507702130374908868903143366989146272715414423755734294675774301253999775790627901333367958889765906648432645631497364869634987068279923093415942827886802129666663144374756010919660362934740865975973619353167699225549391566034695902240694375818803090556214309622213589086993995436021736907996369726119780180326802706991333675502997005065224443316416998992260279641880952505657997982344752199296767537871141575460758635155549127200730193745414773094872923906769578212600119244775797660520657995060568298847680644365457278389490175454541547051699856252243459332291276376040345570276398575871257839919097388245206150828513092619440516056853785776921552054912505898039996591624473216813534219569786540995912971288158036806501112334933549514780174076519909736667852123209419857784741993422848422654940426080354484960628555721113492677262200774069582370970354175276833396967690431951637450767501052997934503003227614479873980201249185714722776793324152548089648960460651984360682856565500288651989509490456404219105732236086611998541109014282204420626939551262292206515686801362823202351413777869438005245914742848681791347713244649363588541746311616159822081828291239114474076119913054180709345162431459907904751520447479702945257798028603289621429024248899908482352275624315650362694213603167017760703303999013923650933624367793078224682669496376813753506610764007377728326796424064785091500379108944473462847567609752534040208424787656204369471730488009732181104126241783524169692013863866500508592935378439267333738722183989297988589818375525661809986991638049342708285824306664585842569568519266620095199411175006995628244868263072448204847898641508546168977234977052519151285125958234841901691501699367689200038691996308244021483531973792308641269408070547144572956018074375836323285421873104227615982151031899872306057994602612191384720849686959850215273983476135793957906165250342572869299249798320155615766191526483107773720941756870822828111195118321252558187530329199554462276835411630420140288176340723402123930550057921197901253286425225103206992254859384777002323177983956921507108637490525643525551995444761708478009434911411194417951315348892494038581622283678471170001533832324740787295055279225119552200315616748665830495590040480380791358835404113177868702878941149844502704597311687458565009836426924394470106681767525592574337203082016009099643535979521531074954600595287214129050971368965251493654303300421040167711902592757936823408287498073012495151220984153261078614543645595289746358245950640998217650664829493205666600438784400514727758811395503243983162474936011128629309401462597242104630516598722143328066862643082849617364451829010317702127815038104931289978993026758552353754962227923483049800153944921287576937871595464322834659225076327207060873788760087597475459981944923906180731222687008842831625063134126060364043302586123927096428499525121137057455463136369046305895681484134995790859070273668889152755065335594005339950356822438346447143315850180667630773054166419847151302212235378677963131675967923013916481019752170439335471844813276801081039922681055727152586633445846485974713974213469030661710151616217212790679490718315115936926054161160990521921060625669136617552052805429354548157688593034459392937097080480931343832748920036858282894561643396992997128138114324215024568568274709009992297131818178139151548790195001834345064691586626594515480204902280475506287099023163975801483536537875141710073660730669423393473752633871199920529963292268574804196670895672639329332625231403242059467625695719089946175206297383106583500701668487132556138814674295983560023681340034723182739208727629339388933340357739599932855715375617969716457276401886941641639945834236953829315363631425494796074574266173345837202131393520083293224536258828025472645458073099890215368813656408230771231230355951076277083751553543974159214015547852765314837370414972300033765116209379197696665819013508940911914407034085658094084027463210915692132561919784144587107049461135209081969875579526274591600135489419584739329039839586377742993175787001864725984938258785205488723895109950893525187845256173879403536696241462139610562905107739341317374170760317308729241400152893882515665150362943790177417102883796391695213237564079668127549288557543830986926136322558825016253416945015943151718325589473472666038525455272848841895099206053696703447758362969287459324267678652154234379680527925676215678588920304373233223677874578108763141398551543997229755426863151396734522039921854802726574404498854468456713819739913082322032696242789101185849269286334919926597800486839421215997840911326416873835349778734141778858699135011422112460425281809421111331754028524294449157490443327325408037606317313608578461844172487462649251805143602226404863152574800578887977309636532100666862113515947558365388118650512239048362548911858226059662811697109445125695932727404198460123129677805900299516395281397505118252202610765114767090727887337742188329567952916228353147399174937247399642929169582458722428920851589011235442847729239508709325202796851112018735865092780342069008802011981615231395346877785864023728591544713575094503131204897063876616445744613952374399742173457738774972964352721586329966865286765151472854790860293558928820814951472406965235660762486430545745790627857622494384881056871886953643879206502626128560676086544266022325465697872366064876965873088288346266683072561488186549177165496975233025583377520871168304412208429484086310166226134522037264822023390362655132030237682775227444218503277292005704750549087054265413509347682522131619980536450574109354729644223912546682981097163720672684725261675885016993740598398236550857471065371016956860250860633247752626902315451935760529312839631429093030953087544623588841387429053380933848880137861182284244775312944990559263734503243242203160060295926532451082041664348625283865417084360759545974678323612137031775932448276820978404433320674598085046466066620181059301143069360888673474436029582930344309858391300704546121378063725559346710809391137617423502303442558552087942461240961364157802541665850874332076694903893352016797025382784075494894061367095939143644178327702957242082335150608584111144860142434942715051668308396409223180000126714090020593227092632027634741682089585160971810095124704849016830125496477642011715986795655060102087939042721434424417885254205722526222913781636020282708099285256020168176889544554885108190209808565185315520950736389367147908653231586400660390348645516736967709066326834434738352447460730752928943970029856891182781909666830444578522422348476597093854488947012642310668140621510169945616248267629725127491989779925924805711051720616570971146163033844723349572783014341737734848781092236094670109091813362533385869603450033158454945792952696266549500999984972884935417868824021106874961440512506866969422658546018468815151799699000975726422790436609020905396375588090298548219709369654198722410611827598318895432578645733787096865405067237677324935462776824022335210013629684375540984527235264142555802395301678502433061011795459688031665865757894656705400938299806056913118137945356775000866473186842456930624644701231407417862496871014987855560712467120328148831131959420888911529437405885889572224538412191450968679860240796868848596980444962048939576759362706219460077130556529818227965057746292605092405004386700931035294370020444831575520762688115049812771610153617209094768060554858015456276229626486301710121924033403710743703472044621945545580194655982448037725300963740016879241646121580753900878941937985334265624370954414003020881241746492961572835587979185804067397864478001492146554233953172706393900667914291273891624927007184005760117132994395645594053709871954425593359087467193523071749395051377159103710355762711804632965844551404118719861266991109165202584959558478159550743979569437288815992765379218102236754972732731919375634673282247867808096186161744414733339379672420515475477416602185922373080428704291695804131332178497836921122639923978148664660241091010947636207549636072076212300853453608368006299753200832414704505907386322523989920554469429704406623939599681857297243286175090736053959339519232631689889147892089968008357252894229357641389535899440093371601383894019070495489246054842289036469134612080034850348731702162167510154494234794523635875809672250001021586015139823149489580846647882969391355811664230890590317999469113964472536616337468260601297317063007293658297045419981901502677286063392881406760411850995959575309192524315821256866710655185149912312538378015474520503829606571137866283722840550851136245737296230702988592144422265688826467628089067402357517537413245571786424583299473730519196725279114672252604661094744993161914574295708281823536808537023469018030314824765006134667253040193392637310258250593959142223057768387603631814135938627586227319801253240633827328707611786820036954328230990430738718032042146519054970950745001930177178650473234140133685999590760909233266774019622577455187398552748391238818679504870973751879319451860730322909325848783519765860968314022736979570364595670776788741975643902711133405159008641920824112824102367572133548280541437318353987585735522200838580958044514031907813091142856566858666506249045467979808475822247695485037986815173331363635038163073977495353363292159385794420310954915117497827670856289498152659282880412633613979055345643884094294736329271793710847176304844093682072652302150609109816419084130084435514777821891338274150570265426922982013419722268872772242635426714094214609443383588352469149459179366820512206150129155250089556897684226571027001278988384145844880061874030015057477399027278473093056625481272988391321294934546081627912083165641211790994690827175390887491161401461914405489028485508456175407659535952131975801230448357432214206221314583909624049871994840223530299679723900545468427461699618712891161220628671588172061996308392174570994642528567695486186153723037244351247589758519442340809570069837457482235275561542980052575959970390593038305496675917596357379297515764741548560232027840243123438496068699640056817968048725950491346667697216274687239144204120189161100046329099028211125003578386759312407197410179326234708170472402755747333303180543467728377939848260403650577697012352139507182836363118522995212326819284382382424275799348970180375620203569313134511085451859624803641519790414446202995863510862883245369274941819927760784399222084560164998998344196343901917253100550863929125188322530378677496047741489834296428074343001518306331109922115217634264170382721632870499535401780127917308927455345538965841627996957877049838573533565168803059245024064101551793749583154221225216732726055847738191258712646223681129068084566635625832078870566997983305671826129546831122762723481132400760603727731667771169799201847080451584822089581289345652074092461724560756987224652650258498650917896447419037353487964903587617859309651114131555165559896096301362751525658091714173437794277594413480130092144956894936204111530213453486617354853617043696406633757288642677834292583139834473606232339982279311269353480504849411300370405469198038382673120868149277749570144648289244841392577738183113197336276481484468076027978413266049718075413314763172611804893698196699522559970923102671463817424644905529771974815526572357702029600555531594694543117829748898091775726464624584772678803898385592848522070598679242368529505727925368137608601656908794629202909393609436186838846376384336913776339356224341371243471850939006800819168294031392671739086853999133594743966757466495469765223871515156507413020331102045494421378484765181594236386692989770422302102381822570796895937885854348090539070380848313300592676193528961754593276245864275601820895059423157658978524317338324173056628852943086705377803107536463164642372472450938597863888709132193579823179114182453351186486249059319801034529950153830704958401946810377288883396706776778703876479083654788709079800610702996940238784863190694156637985650550576889225436320734806952047236544212738296188420098021300285337798492459099895524064831874796373721286409424521541796919912140933648366912730148013368804242166579973216146170309332235301855092198860012672339124426519951202351091854558217858788074182605616480628200327457382104886074732050843990613462089605146568577494890838910884448443174760610654398656432615065790142499144237142031040598545467989254200414738486724402262749542355992685722141158008661760726620037924899788538398753075615842238045293739629208800836545459096225881404332717026051430558031261063061047289879665994317230710906107673919444931020125529218302033177047211548331646624306989031000914769317155216365646692215283016402773964715786076082522487152607631115065444197744867040406803321062390206101890165013340568989617878419112243522431214136776911776142195066203275770989551937997391577781103416788420361732349353433787005205783112503450483386192845965543813847712092343996031833980877492303661632041651754557944387831369185509128561078131913185607837784253805075448896076891332802769255206871432011334819129869073660650691597740785759526095698553054892877802557644606995333444939529717974975824725192385456294358468766118873450898581227591315778799357596432464797107952099771228113470020595077464082518083102003009600352898049561969574540077717932389675149959537623693371857934965030325733020929139793946036081583545315687269051396960868368820729848530116312343687712408940134237836040637509420095688108060498212039750622121062489601661234053585412094214110748460236581173907990216303542003923028266083399290537311358887119737236348069556800634277572039067385861622146362385797226797846300848037696345246180912248578985621385762009224953690543717966196101589711456965801515507309392003901331828785048370043320668684654058387770478898608965017520133346530033581113591445596749317642258037568952486149782208433724592654328717784164471510655097846714529901466092419478972114377221928774931650234567225778127865780001176531431421119800763026967519424306219847395844682485597082892549752260973904917708790020492606546524281734682895579174012867913290214754203837644196220358783948306357569093178521594090839762403303609457711847669958903815097867252577753058116971732579956861127942864137381124853623327720009582531218893677328565956377112035051046901965601889728064210381686942858224115770420819358579762693509617438304849029073940010559202951673625130303379841300137760062660163646439409203283583399025480199052211873055740179355305127013120691580554700207848158203049001360101552072859535170963704326566341275875053429061932680651811624678379539641721896839403523101696759429479999942105952101211361528339523068361514227483400755174062901372402524011407505681508653886304528566857543941551148865853959357274586294037607010101551070135139248185693685351846607510239360475025340935464898238116933982725037247355668965818163762344324571082902510445668095296478010245419953558593202795330474488776083068422726922781826328661877825565308980355492822825818430768342528490883199480979666638736980594955546557562840355935015053163719719900290050702920218936143285637486218605460764802962075903216890359674347129093625590122421695079485352589657971109972637780545675864681223803667275943453748682202244390682342764827566620936906084704647701885374522759107543184214392597528864051110625365555869969746227293344473739584714653242187156272290302495339878346118398135353089843665564550127598608590351484755671491621517362636850085427063637094784867656511048134478301599817650353788846168827540637899032957514887994313836417723287580054017437445195858131926869640585591641585616931226297863396132401887285510561012812790224826583013374760289382554096520129439879131696009587595535979791610832039144737193444844271754626998413488282492044217375220244269206216658834639248455893874819553916624137095533392224947866024317684636273754219469453386835950430870705055910991991587526453726618226696834990575709567578480609134758411466437386221459948267793611272056644051886530484599078304903778395984872307936637027969244356239481285519033299147355213603727222393455848465462799916169771239889568973585495272713286144386183230305569088123518854612214527788506989226398653639039476394644638247375637099838774997718460654588897870635107291781705421893627398554449899000224859338191480539975737231933136804797689371663570197436250873025595875371410385538465945129341605768814450823508620703775799438121609805637283372306821098744955100484402721341556178734449373932825434831369097247476525527479269080802979049575144752924966357669924416218322981560569560995455431007414555256782749889374977082418679264886203460367774283575176125887119280371355182171806965370264263525963734812186610580263972852759507192870474582959845074813390897806972081406018134635396434462897393348021543145907720234765839931197188835393248205635526927804360306743734111359350950828311846123292388444365552268776345768959631287601531390119332113591895254166132939340475812527191301327209071924847177717915250348401179006936806094055150888510966088870916793109452975594404358667448575511109896797566123548674029275415080817549744975545997530074025184049146595571934464971003828847751788986457981126160718704560719093012177354178346924190033502937486907954221224352518081714758476577334166586302225810043415095991878587792261842479043443664145934273739583463224200652075234958069497577498563577445126512704226027772524818153586344944073238716418927205195782203454252938300761197901888191447337076681881125227737644440722558033184383136329486024293652946817625274834234133299257036140605497714582087637244522415667815115305443549661193463338136421044396893307694758884652434185567727220799370146528472219113438048569263130699729123669902832699523113892555257426714914581341337821869202318772596251575530052962586560259574484995090677733669943139139372612253694187264463599082846712646711609503756478258260209446365612843008489028215535402874909281825893016647824519540357052102263252176787504200013501279674956840368863155124243898401094229013887037922675973340959484825995993816136107276471027751941235606855518539926474411909248433780970936521607654743588130623297718604699977315929511417731962300402901089910033093003947027740816824982103630559014387934502561434852910242512197444166070131298540842543691372734558669437616157719705008534069123524896343118002272472380928532498615522349659021720776500744025852094108831459515414563331859250341170962624038326760481837670413452068536203624324964244241008994813951517758164988319115326202216560066665180527457369740148397805791040068178445622554473576992650336716420967354312187611010788206393484687946173406166831014885076979884064584849236244059071568538903147876504093287352332535247314898820317369087242148074011127997098813357803544543712021434610943839569840203156057166584712757209929926224708621076965053745534169951351457854565337886476286793404639442514986638960891365425632321992658118767494685313950199925083329694738454270722809163225901187829066830343809179534199804237723375942198008252427321783944590328765957739574971041841063730613098220296447718773669596630611823601349909211758834896951985875966723222914520256029380251547693877224947817758762026441509806813445149294571006033312743220745565761851967525913932936385127683239791711952675025195328414783903016356175303915417626522862148064827672873456500175501294274003334476847632900346395880957813533501909773680563607259574262038040693764849687800684054441476329044213942140545562259230224242846031881688328096157284196188154934834120886120524754371131842716068729694405805567881199007760039094640393365371705690136389566040225718826790941070999720451642438525448594103387440039449541707237387219430177314279543319542078787354140736959081633091978424309308192065549000795113074943581708449374289443353781919243550871276993934989950083032038785389494127641991714525948889485114893625500857370827640639567969678790502581545360789152141715415562418676543235103785358664557970747755991802203608206351726551193685792461916856824462077183023111413023121370191718615295692140376627729285924598149355318327734994821914313254058097655490651656768020918599619987603134501952651010537448258644076391332701828052995766856803050658247421801148200186224553323040488543884507030196574648489124601894457961394846601784838763694610643172035286004582580064820079669082167826107619430928071802263869399989052739665523313621802609821988332513944786546430554707849633148511035857398507466006153562362760592813455471711307399420553379369545496555639307813965033796481189025257136962201498863393912063942413790203316280336068471365518861905304093083655812383832259192055369742572664448473890794759282177790364987294192769434357674682522565971250319880277590131689418821892766438435857286217687426095770544995171955522119509998031325792139993508686778931039826215054339216521089790622423267212733151474694905714164401697420165465130688926467183586634887636059106962711722367383343381633210593712443360113808730939218637451258613276385741122998737386874068542201194327769523312152711666054162411334168662761615973263241697031719228699263687359752481161825480292321321517200844161949519939331623323486444752915256153591541041888508873965436869717613661611860439211026293418830952588887561955766715082180450263463293426549063143465900407893767768604238900111001324046756065991066022338637671928075403832781166095525432261517051745323709385862586566562980331598232076911345136014971080534684056815534727441132554958475980684715810127713088714325163960694056074128121139267226266179727218998221707522130107563609943319883038876664968673447756903899660659035485821062493258344164804032719541775888943197903506809616699662478058748088212607820518363452302865175160580132622376256386192705282594211918139096094718671247425253468285524119479369387091924214317876102140571134825199473527084048913896816221882698421446343900125915506735567167059643901928168210677648634019072444709567636819299918632425865756056450085981004374915011203461167829538284882002037718996756007864226481032153265215705108830136263028526483839030342968876793495292325934125738150668483893856223156518368765717046553900379030225675471065562940039387939609835214864902132320713145035975135714375917062856376996021797838186065227692000772471999396191161104465751001616800961355795710223252936900070916269887054385820224286341820145952350605034768567019176949634159905289318248154357270885135294505659330068612789220066227455869776761917234908050559944839264540071006869635529943213168949261719877910605124801802754536931055314452412382441541762764797909111604037838068374853772759909333004535712533187036498493250788399327006748011301524219486859312177707816303356671952824685148867573485844971926596072727566404374180926782485038586818327162575088955593789716736765778558559730362645695031267086744961810527889913502911311188439142009453574285828195479777933265988581514432043718416750004968372242746221765443526481106217908080566793152916519449968135097985150923611906962428137499974605637792852596680397202492897599914536595488881973081685374115399643281256079837093172205433459972486952259269447876739891342582705820236442182348578867182828340015685123791321224309552826382496734038045403599628436330130606963148074421258599260646863672602128213628319121966869801733693140692437002523580074764544506189395122081663849183961786596645654476273338481568602916441505267888236392768518710310946939281847580493914411333642686323144033960085003448945497643275801622312722750610864986246747465273207178174813896096839480202475165607344312664088280877255110083879890572420176213496070426936651373527652210813108540215710360818070945453348634142943299665187771438144158961135490630294416620106493536332841419204206140101327272669254874778737871876634826615173826354283470475772407731489603298688069290039222700425984212728501310707042581523425575074808377716343812870626890462312733920789447894591419908891192806556090011585324525415939803697546831726486950821562588263319491589524640690555331029428419162898454691683571043692050263042400854873080931183507574571144080114836067088402598352353475452372447914810163251189616691417132165494867586804737847570526367421546121602109139405784841167892867935587000983570241628974164963744093840066904483631944543908438031084501778431383770460278485347537661808141251975622847391378378350370735576479074062005699573271557105885111314289569684058944216143566747189122562750073037779663230499901600637986978665163408743190934327283847255262294141929497019646470352373581561015354333024234235709704077577290907221278860524122325672666320285882345243055389426373670609505514952905306846871876285566001560340958738158732171083074653991301245398690447459057052472322043187199272147305516067790245037608686589286572822498275427355278398091729541293590493034463129835841967693482562479184974310800272609292230774321484275819295834487540082103257508809375460783188285322443433215723108094169590387420419057403974628192099727199660899658673649667822709096099485172606868421861214756353130438833968707093739322550200011708008300437282647517874919430118154028413359698733947122957049095053525196298443982890765525739697787236537743396011630808897180921622715826043810755842433882576129242340176915301665368841914064587768040945956698580162313543818713600363358466922551552894761220422640962185435712598428614524955305872560486896519210212555637939580738904205789807940191825187321935597470510493397930823487877271041268742672431897101243456792505913944915299836667013175944801259565027238648050091047677951512769783656945292852897124779195811317462973939900049468430135995546304803268943280488153337853440198245072918058169529350179373808595977755926221398510912177744831386040296539340854908897512052975030224716881712217826933356145201249006211569473427540815283225403015368196221629969308712583038491549182614366034072179576420835131900097655276645977046636451725202401045611011423684138014649728517182651116232738632393058705052776152810565524311795902913967226054395529234277099102971494103168541718535775888989942591811039009390241514838493325638648982560540785056639405363716228065934103483852937925170335411303621601289566027893473938805058327153883960548767140152712676092390093454189764819831926911751388639020173506530043454543172663237001801304616772332628430331568441465130539251549950725906446244088458420799346331904876200562674154764945748361615089890061608799093910263387332926079901288906811352075268422439675981554231174420086843728648152037682585749471208991080466904169529499953686456260386170983372318675179231343918395440975733440193699045590961033440386663095180764571027808330489046224271821589831682662973815828205389853469948190099573378941400085833545879715339561411143710553817474681068659760596056091637794399728099876635765934051430299740537470535405085056457723662144923622558484418921709600091375375175570348658750474686817798300233694104721934538934371400366357644094319076465999267132640185826006683125290485707958782330130047453389344254087223030489369200618167362949492904748089073494323343663804076393927198228241596522258212193877552696416396353593417858151434995432097239267173474455552704002848224372704510258082863149943083098147725177934702090585801134827335874640518726519239448103766923579848937663537833395140346718945866406284613688651292281075690489429652740793730278400003608580070664393642557661482918920639403298020891221278563916548606239307960843039936673467321106306586546926216179727561596213206953851777182697436165221818311552573828379351300437300397962155981269234326414986171370347508550818265192576454494362305237096737019828004139141040601078678790289289910633137149329613175951444569370786152725568446679637762964292596199553408153020427835728084443712975037444425781938654904909177371951757211560912988975880121653964552602808727807587183050220173180072898826750592586368983375522458947726321787225641372364356545946121922752569485410524003349605594367192560037355711006179569754417136076634855902337180864959071435746927806901997873245145596030124284997188427124131481037964218458634619270934872223799485630691864550842329395002462376237886871973559734028750540807364704687876684705164513329562522123077049008602194114566949695617947537249079208617826819926502847924473207889518047573172335211450915900851084131217816711634424310534459602420083026946829977375180002552629444705971164538994547738010437185148829183921017184472137377979167267490447265931914709094046567109117766627583834334615803704372040957240722371175413089021632648491300364958306400884803752494969049966988693895850668611393834563657771981541294513163705690191625724416106156062274064851714059912613865384466932983947072982785905147582779191808016149813690157993559442229960239157047257083462535942391685637815188132203211356442824324537438240243700868513792577832301138856052759327690038205656261941953728402499149346801843571492057708919970219447612713701927024103030426904062155831495759903887181984500979781069974808356956917959222769063352598096088925989597705582550476117179071830912128275998530017967916128103960488984926428421711342962113923381091232241789288308629724388943007081071074845840471377203792990873193965876278143401733742367285639506737907855086606270093314457021551893119278946994350250763720576384408439657137361677337490015935941645218681708120060943514523826161634917242415175576383508583747584804045299879993024609323003622651593209007138874397598899965727945961801685886265977426925872636786075140260834234318274614424944228259769784415957376530377687251066825790897926871809951605181140396113854993943236312160124959869086688002438105602675324631759209637832350550589961735039356986384513942539073308039343600079299240696992223462236896835448984768076298143825139828181329129958259696147746033667148349851455103940466120828577287352072186995251300110793133531576073089454123808558623927380010504995134004800411411919505376797150086911533996770908155324469861197675337521062093235446995824727361382976963575408527114596485409244276295258103990016960068076908176977962561259561226725247189991369931183795013045391264505331723136861549109215406226461745458897966174657090632783914458431343196317736589483657392263575446991540383216361489292910044270100956407323001953162735758295931289473540041282661685215878975631974778259470866497132877009593613062251577057858438303112164872709326930465329164159689695593569343057196126641473301396159323378909824045237889925676523713301697640678774978053518530943416308777082591824472541928805135685652468037326858759553104269742999872870661661773912683291231427353505575994625018115841966326034703530763772668135936512070016776872303905213020598918846366142264494743730449976463840806184115946975146622741023368883914118685059192591039504755516536981358635551491643160196983073772347543774570148458807231279052955655715774316662433640913966589473292022943783069432669328871386002899241586307612622069985101118709182901710929180815342656194794718962389362953079082583805202152187880316861091730724553578033206927509944289141600458516919752261576002549363312409110879824752461691791320784054290086439712883724722571544986122064703864082021851565415945664323662259798808504222914601321144356519229191522353510247956091006523965817777150253521524333105592284347404860386849350563181489096041481975057970083462076259418872409054873357327885204499482642308735452312566881261385952754251596421477710087543882405070318555456650741498614695275370965366970634244671680836732841187858303099959536885675127613943189532919479037817986955713919546028105608877561212859528528759058366167967505459492331472437385538099298543568218932685451966503884152734568469081867310840279835653026475699731345245930142726202201941174060917466989480707596326309795012496625932794367422621754272803021844228363456070975498457401967494452639041023404048972856993833383289559925708388327761941870827140566993512832707126418954455709187233024907739185025395306040764391219996345239145177292305715371815481341041542410245604610373130147710241684847683825650738548394798696839015017556287436694662814701040698003335991991543070885001784930635938762935264759564534957918734191283676668196793923017847339287306198285551267052325420203545303899052146485778775859209557573481012382311676120304091816546921512794876172107824218529799533890963276258016007123294563102299137478497879378763298153172688327777524827988841553257414574170849615395024979328906598691016533189454188020575529568457591689074787317898566983541375962706155095532056575749426940767264678835187760585035032146220013310687711952135434745126300032476774086361786819763044663216018716959077166382347661234706122306639917285782347979826615739091440904981841279387233317746623593625983695135183935757162855259124178721603105096793524395405698020550084792133249927784300560613367236513665560147834292275745911130572038485007826136038924091820376210602547070580908480583675304447798934940558816989104249500407154886851551519130483544982415974818779822058929632420693409440241291867957419086925332964585766138302840684881603249735306621099337990529902470832216520687609134377646719717470623326430129069068121468862619735338013490649810058786599508700185200603000255704793312520151352176000065266634704223891464541196782191601572145571648089908495748297178986750493151520212417803579988392789132878055518318814515371128424122276168245899175600210150189385097008277611433571859402929286593138682098151819186651981455948535609232049720116399245508352878462104461916907850349799311966332274754072236482396915684845620335814220484151247253677894480966840491642002067572564884503232003441138596067871673657064967595308923700550919601204196371503161307011001167096581865142768536745951245218637179296614941873283796351856989256087026410572491400815102590397397311853914237792731046940168903906905431960846266031633221598477657689263154801084690849116025850418083198642035148843927651671035621806095489856623317970828653003412765787339393681130984576207900883180211319206691421533779531506224850606642889955135263656355872185682415738759158961543762183554891932051930667877962262419988321982981146837182992195697086816782065817957668723916461052117801049977418750553937248214636084808239841832140008259582735322415471883308258700845338166620003314404637175266860605963885296132566771422433861921205697817108638743774427849526935559323526463274395105452003201221674460166907824762239717416653013239402877016316792910691280023535476275977639582705800353054775441252151556593737240667391836729624289461100375538169483335510762271559946982014877075770859146113871462796250905679212252806090539759471444664970737735191596866399445813863312728984266133324015411491687059366680464472057401350700489995966869951206538394881348007761330271644479651642709427464379467883465769556405500324935155587325535301421900655371814822504394598965071560562207938207184478583667210145387863626788224071919699227600470263310010023777808967422946154735358299311277841705982630339570578095869434872008300005749247019071974113001304847922944084598033656347106497912117192904897196339580670753130204948201664135961502942953093657767435670741523918760416836014788664979196340652265341146598197628329122196744860873915494513464179500732586920039233070493449238912842090974597309653433541343466456974605720166283491892819177468656374500261353949465267687821128466515578239541391031783041451664350416388850054937514143446760290362515305770574164462170559194160534104687405663738849817756955040990305998219074199817607288084537153146768759786230586881138673697757125853293224491450829740411047900686856014497395273487806621767955301625991360333099322382633667861917301506030539277061392597493182690614843457868638528680467932545789839775790035154840595791915008576966548630290119064305592592622060127009599892662747773473780753193737590800918307707757782678667623174755288459589302301365462529781335650719879658164571263525002176366104168664602159427235665710515141766718020305457977367295919541739486096154365996277357554294740249402060171676632453283344831903604574068726672947398447787670758170896638863343179746019586278007596160511156125287451974951583373975790225330388001403861843546526245124960441560867915426456518410931739034269255014200541773581035128398188116475552121615923761109982035784455831507553837514689050676596386396621634591960060557464307320319311400958320286116544911748749822164749055824310227873471996271158203372972294139451686771779290611453114208126694663196115127314550059741683385615375910129051557991133243258877670241353009007688085475597854985696079656383664972720435823397746618666909417388579323433398617768750878967933984094692782670836301829524544857846077500753039814526570917800766987141439862010456103208623887098869166573531230702929576119620330509053688842836027302682718493384964445748330861851789112076852477698169155316730739342110277763236163842984344177856607175781292595489657786293764347214646207461685959119313804381166022241700902696534605080486651392387834154844854053762372928796902131452682693966738177390976218935409536354042687122015898923528321702236010124007421084722301181122799231705559831501043236256121853998183465129100063086032695755379963111961435075938946336531751239313330005625302969599227318550234696657300748596201617816841880758896302385687218594451597141965072911119127803911519237141483414856029099493412639469771295081933766656704608646507073560336043829340580930622267513410522877152917001672935249122585803690424652855559667534061957446755244048927251816112255227402923823937114393402667133198078938041366550007531504458766508047483409763399887260948499978594173812483087915920105719877955577324085762188948380601145424273567546243517936586104659034967965236236877113223611610945407660396482225606573558223942152089105434892094969821151562121800502101847663916889398211533494755552150851843887150517507141298960894608067164179076095357361449320035369816322158267314753221471640397401611868314249595380456352071678851608992182492284209411334155638299260651916059799424392827145261161492044168788352796475787245551802270360505367086720210669083265571298040130254492014386216598054039030209519977464834980616029586055490258923979091550792494315997772033904482210400451307744005107711168961235315038373611940651627951146173674754616869574940839668396248289003059208753313726371411687717238194757999711792576646676698468049683435191896377387290184223063142813633551999915017720238828832647180339769501831280280257693692259549110185497534612407285124559597210291280397914593233338189638862535726748355308036586691301078154613141239526283602911560084592658563598909809572457717602196373228449713720831443781353366746817420332616736733625155467781868860853473221072351163365760924991399026257038379860225910144450587002719620983144538022919055191321191664753536358256630507259560367544006177106780674937628005866759134228174339573825208501999388300523366162013396391889528646413220547738865478469718758911306563389163258519481681638892431843034412055476844237606589108104125784525145165890996406112822725905115877484099825771704073058372635922067755445866383672509324565332496316027403185665285370412005078699583878265293998548416594688391099887525132212033961867566639034952469733740661705024384706034891836034371936177195663822235933404215191562643718182744088770463069331271274215945837172949472537259997859299461669903220067265597715714045998619711906294294868858820861787245777183412960211394506739996795535388985286150079239491864350996853320665413338814042569767337969885613638513431647220720564130242167353849746664992089210210918668261657633082429758444724385660128125287832319477490904057954003848793196221673336999771919067361226174580127446897023760705507544179829745487599492620928953701120505896158262236555070893598618212301541678542302274623863738805343142549850983096233757570896131177105552827889631291895483900466682049786086429029033973064819944525173141419624405265889445802901032283394802119355591022464002386614562346070883059534825312902693413133422125704723556422735134721635866875872505333581262010204644830007187536773323439560541791392686638710303723030852848526164440436507556639538396218128847429938797575412588480380318672374353278915146695816696052369159729603065374247260340667625862345568889505266072680204817653669400833012228053471505011712124419942507689910291733612189683932423826316030045779588883311120372863498705126842506275838820566151043936598555934436934758315908978077225791541035571681767620657073186085274863614614037552956800363684928347990905899460576036127229257381235113168699108034157696658842375341567027463236733248363172543040730951006744271983588245359520496272007175490445181799129843085351604991050152968634285743397000020169673069474080384705112585349956595623927321433968545291953273605171053436468822498219980788675983194746392801740998492534149339056269203176613320753236457497016158511477721352682768038625699587248434126977574962273595900700074146470001235340338587675285248528030002898836976846318275733303443428280536854361670406783643004200308006842000870160459048187337770504430456714898730835646095209063273811462299990387081880213070132065616049059410628739432211537058764309151087683792912346852291224528607150695750010387647949926438702743513323045785496704907817107997835893526017544384826663446505331787498929083528150232345674168088066301854383620533832805711957359388724051616889050947678692871468455804790172411094347737324671394226541573192652645029325838666028781720371373390976381403204196622740013694692089594249841602089860495530814638865378212517268241113756626798118904899844248278695068118999271135420742760418058685756547117344073468478151256294387303707884043388051838705695583302934722026299248974664067798906126406474972914929633583682578134384295414066374060239380899442239425895490176322313431362608147163833786763194478621624793866935075587033386710011465201105337220752581667697582795414343568156676382178899875942246498679700373722914346484794228434843167998130179594382012684016699169984036197994739551951928690286070591206154061941371677258790878921632449700210797429459226940083074972654086032112963458584214232876761570776798190804414805246234361423723140423153793742973756696118476017202039286780601873979359747935709619701807408161134137795780219219051726843955553787794329821037816139167859385458686088875367134849563783383074425639622856936001244560245198406721956787966266113793658905309920517904675470756566675614892291263689381656843564465144010084138821902807277140341987399807748035165098880825715221691587587632986203375908948481957142457214674228541010228701202056529295009389522893087763640556565900479175671712925307913629545681283029118529130832693713862058426357625731516269918932726078312527310679610200432694897285987054803159225146124990050597710948267782150483517939421661003188003261747611521909747392445354182614281381738190886129163291871816818274782281160426980997850915313581830777670836853495554960090967525818497555736390178685703568263884944660484432816068167110981265950062778029245401166945404314787243248560135702721652061764232465752385441392641861557853345656753586442807527525321456865565638243597496880816170341586907671732656096338785823216146656289011074378765410236305553323221476793123669776486508087869839158385117143226958501884578544994438810266869687801701538447576716126516780099022062392437910603718382733943213287379774092838381194870758490319376816452812858673931722353324032841779346257498490744319482475077513274935328533131042407565049477783111730886051402922372459501345467831861077719439712229716098410072629654914786021373163861641166358328786064595618890209551891780441920913749787620856914217912871856546883722529234940520955610905331120192934379732707341271438501929631603586192099859570719436138767706131630145202728654606863997114579387128349181550520837253899414705597222949975217478977165742321296922054234627992900158774507395448085253210413707555533010561066700187458765187057338357401079292872491384446956087589932881602984513023084498918568640613705955558362963697550358631175585653532469933876525276479120033463389686245656605198901530084646305359230088558852269976960890764451480865223184977651295304073487296645898328725125451454246459035296888194911614767706161649154852644003330436821181827596431629584329808417590896990243285931944702974494796093869702162629561071594235875350828234339516139802747536285996758415226625248440833922611676050456449127644995919025874901561250128481621238502536743661326813745539767867217485418453875816666337438711552434821203687041139981430456759157170939806432252447050177194069544262320020259880940100504754260151903494558851261101246663555047413201760199546990386792861386747519719127875366064641509862134314327151108415856883961459944885980097593424311432971919377284616161468488687278715339373441237505908186320098054367849851226927084503064470918579905530683032670843531944328249416007801647030607140229341032347356645303395113085000220210386095786766371370823758062635692888220632935635637210026019429360640642429507726854416731288066790961221412703337336296542024509668182718932705533918622269331857407641617421995619373797474010851973302966811401469613541943556910934096354804868337498101415171694203173005600633436732099681742774329677013826314239458877327637681708764259998898516683521924241123805446447471197100577545526255181927304171108873896886498183873331148376397275776017022673930328202167586874702729536073049471594043837098726363878741306497555767269316560264232734465182697206392286384087796833433331210795291914790052488782984233590803555127664243100834747854751462350920921547418985263599191218966682229088567820706835874169899598868548832263194102443095055398658991444189702299749641742040380486237933435274486123088719155234554143838021879759777588550523811426044649281343193593321374737525037262276264356576276275312478430649273118917501521744869643787815664157689499937545443054422605277422634576325133190745594539829361150885385832504188485017004865308570860280797543627167246064529862495201842684491410939791490959578186956921489205258945257435406817353112699169899525320203881472629826452782831443519061416448574717213574902134714487628014233867680564023120182330812362553152369072272489161879027779476384623321391658716360849791691027885588105567050818856099046220445380423238802922385786690583864051894142637344638211710765024518119270387016696272270307982297174819536901862870494168777658177021272969988874207058988144592778951376031877048268863480159295063690439968834962764980444890391034784415690322658126292522656434354491545629707701464329042613188361370385145330188298248880496553718167787106398409121975300404613393511318218292568275519738293318435931146482082201326223975977933913965180988624125121280781623895018252874943910935486109580379929771898867867564402445834860749989047271506152163767711197468769409316282305782312572377360351707917268919659451010795803633407040500253802864787115262013102659389464240917539270254737721772305341425277694020308042167867040030900443141063646447090290842192704309402043726747562154428009407305968821556285321564835343673021234783280797674017772328586413170635377818674347230530456805417510488055123667841722269061963773076890510231640061137559402131912646714034283716337941646916015997484613479320415841049653670496452033797364720372319880756574369569833200298118983322597658409146273980119322575513729747076112361570192933300521896375816335602900655698291004655537191851133525269470127289523512983308336396393306261694823550120751787593498469630365675107247753591989604976950330913585912008629839356941552097442684645682587627418344256939934970824157713701073187039916503111264038605813637974304282962218206646453203230537769473357670137790968920093229016295668627159111906372199228564007888352993222567363328194218946041982385794122763237601964017185318867568979426216249098032585980491187878366268483053329622921684475681765066236630058726167468484432692014828179600222362614882333202487322520635540701455677808059223951115408926392252319630178417784760097850345782974889541813411009903114212138793375824699547194240053794348890790367757123442378457650635488625868917278082784675901757378967215930237855844923596386202053400629830803098831351542414136462184886509118096276622145064968773085139223544043710491071981213255583286422360399326054206003299531787110842664668293569035601585536495251680789540822361403296853888703113432354745846979559797815132660981314877982544338501008401586738383557713011061455411505663613076452351149299186009249692923841928715616361586540499738496547138201180864931268885607545382651366858735246930344551296541148879518059084718957810911982291360227974470109922108982752892475650972787220176705241155529456618161504891460035312924715409981407234927336640668578778132816657056193533912291255307071543585623248137991261795308277643444030113393752902358345168473696321370169368439786418005081119870672958451697456257348750113426115861042466690411919220152875175090095811796253502592711966007899384501593425842372514443048601092395446991675731804737144620073319107183316506137405871875749719465649513411831856423763757787039869367616989304070293581703939826912513522948028046427586090760642560368146898440759473298539021765720080002721345540012405423738951470359753528775124228911525924775044045463297305105708719070424198704154722926936745600913462188201107998255467998422111900714888242351353411206096025589996586808220070001359777284412570114815706338930638112876542576948355823678722880401973427826050382920620694851076058873491429162655592758922688656527453337412379074917242169041495352865919796987297852225811236971662336881541389211657514070295659154017770886154509460939610905838851176169589416910148277905602132588940576181423605567616319527391109118569377143618818430775382418235979407058520879645336699288091282998657245104656530594987221570987800170204217894182694508440141880035240619908875495686955475474611900391842201603044086237595709183733873868533937457889311991116979407844420726648907471744460660675732032446404743822729315364435927233784275644674579108978417008369142154282374891129676183163546938495853847192422147076762159369425493871375930649811464406778114387682903881638358925490514900797608670095842251785019639871020909668774786681470436844059107025420491107371802062877694579355875317965437597470327030002359901550707179934169291906781140890013694546951215715727557658468867353764181188651707553465463933662884219850439223392266921917183618697598439789209366764219625262389499093113555773019169232502847869134176633139123640025340250331042994488181344544099918588924300261283054521036176076075365347172156399175154589747105090925762917910786122891167883574633164106550093597900969003598436538727093280849434895239157189718973538567661112427892169490012137856677231130555723263339194863749397706094630828634552679723806644500936755389579595550245673756487436903406244785878695806687691578287352197856886620819045529084966020371372174501904913960871343297320821323794487500663897959413550742643431548036760916569139399175335350535960126514422200189184274569776600568788436321104435070253750568154331519696815964130227114639281166031708508622869227950787459737459265235427096924935739036871346328669727979229661659337174023943399924638608617350479671703061921162247755296764777758659871943686539639399625332740407155291417102898668211870901784520374636518317621557291355491883166424662784834054219233231016723513069228419675281067777389261929204264800526071450756227034173705462198998966660824500640297804453639152555907966893212061013570445146616537044735797245364578542934761250890797240112705081022931007224811977896961158292882174789979920920193113081187880993618994195646543718708265926572775103130676368843760880832475393875201607498514468415287640042060803454987947812791715963219579147126594322556919314839337854569141912266514049727354755532738034338219696713556238926313809234173773886026294313306259570996750514247942177204253105782003477434346783851225089758431950553193865878458798469801828106004522612432876640641995729231221971746179903910475671058738111843041906207844964600188273508008590088972457991006348037012405146001422693608391708591849408965564427638285866850620976124968421122253755805468111368325544330148823897694838935537025154532308117177718695499118742854754659220045962809710018426170029595122685494493779013832811339651694932834596377439572112465488741493278416483560521884017289300436862295910838528509936158202205890511298459123472281467052032400541981808662105943500100602934828572415649066888814781589127770682462038970161015660058754408138556735972810122228158609373695268816938719541606602454637880751511788681619840348821164445488736313325123858607005875711520324966572002081386354359901865868452619823807005085932597275573706456336093061561353250672898089790771662047773364184666495998474417285354773498780051197450233850477698852303494075944147489553578706529876645394520585221513470771171532593226528534061366345483965639543512472058791318236375213844311600965262939098772983745072459926336705781811145138170387641291690202937527791016289604737917745502431966395673345728973333796997358449118572343311490844884344783714144322944576881601505678341782152399009338767251569791991556419666410131228182109932402358069715929377552759019167436236710368821929422061478102374171451597169178832357263449465823933505886301369834877410702140271669138240097006881844413544929631359687881098030034090576480517907535851199299882032940382235342612096038130628913182464132364653734286247093431221279668798264340947583693745209176214652656657399867528988674769013881448671367770356977083716088469523566025918496920734271114970747920756936008118419483292743237932568814781646795201380793349508404739869363252674025261508451424953593385880504360301401294685149801927235380048781247939128357809271817214426559194563835406706353871153010640619849488376138772140984023069525429984655166102822240118987100480166593644102841744330033840478471141732893061526666816048622036699149426187950616089071787956053094847927139296066582273414445727367764877727096907308611186509365981300178112836927508158200617105797345146971448923056063279426378734707727623866754490158802965703257436927180727777017902435821516241541356503865240617623058738492776064745286031953868055846987560313381004531656330603019963567830198158899104060276758386400857973506217286767233356826770218840120999043939458206484507537846569091420962234701732557821105798042520113275741892275491035672987133861651044411942127088346078972648834541193184717201845237617899406732634232783484527219486416671047033821001809864629948783200311598458947469209679310873163800146983212744808185809882216830140530423396460177460593674470706702119836423332811036126875176873425616285323119797746989871721446074458534522569365870700275609279752751757482846289584481113605710789392809131587760077732400537549968677399464593603120899095449605724664728833536739051005531060330780787648494318763378201451956118161115328603228802172809896901907525193026079979949011549311690323617999426775155234652623894086711221532381685879594236478870535088355956831535645386322529880780852853585867695927003554919114827346194832431836937604973075132568857320948732101061472698595737259429312196421617501698828489948233571373842568849297397307916031318721912813057788184072204764295919065070575819933401880296337949696647447867604578912126130287642179718408839805326876524242400706378688374056306243804693508205804510994545431195644630908874794588588411910556223783998250120852328248818487021346299904616929083780439970139625580829790370604540532750725480427508832117631503723828542857375178940442861807550313820697177340118859605023257347582667302664671395547514481928920300582106326082538481298314887471977381535154810496161661632461862078958602973748127851989819615802130449014643730073832571634961575148926804833115966473234648491235570434596563910933133974726445972534465084222244567087714057512753736143126351722861611489258082209007105788972580152524165135209810723132271910564219123662021223325742071399134776530175150566301848120140247958527082376424514427589910200855029555541186501989810189721765584118245492263389642684968578396406946449838829264820048398424723346781027569930431488176013187918074027147369318355846642973815875604408625610047521987337196824993616650669245510658804427867394835720562768934239350373969938445750188345488249438230707792897157943301901003097762571071257760494729170692594733797957873469229619844045212478018740994220728784078279914722817275228577495319451894220365403519914163896085313255319854863673945552614584973824053303032453494293915245489503964938304308510768887984177029160082599677762270751339617184481340565123746296319239110200582796578299198394643994565683467537347231714441663045562306366803406210904104973853564518590571051216334370171104635766716283051389609619551672952359285186574181613952100446995635297298441715832643924051151186611486033996720214708703553148651565932251584826068592950938238411741168368119924423530756523186560864974728511291282760295132035147110717161792262558314328668545399088727739216403339706884247750963389204548883481939223922537398009957653485057285221721486353177725647366273089989224599062074913418931145959222024300131049356952062085139847924662775150762911106342183688162953372574180358511434255147919130652690644055074577180202583877400817660965748588655994317761244613199636674430500822231940048106172491268009292327304445806618828358286394381171599754731940625929927934404853453791518005520459041050012058524505175387075706993898238310069351938252431019160517600709662351166206057980270466540770737396635687134711865306800047246792026251481035621340617916793500780172555551221873554538537740248595684604916741001224364335327541576924363033679677767757420035313416078664494425745779319265067279566968122980000328313354209629807313507206044810325475602802734636913241617768611091124071021200277574012638225617625319503832038054780386808096541657579154963118222080418893442724301210576285526775957442145046643358838144001833075555165726099431157368849138785452957512051116591487028676456771172739998181621569720761019223845457107075671451598469398586679766161556362875437383337935029604842949363511778712725857620636807587832366892066338846488040353142831385134217428816318772258893348657819670078088388601274625420001035623705684742492411034119124199216256881139328551957236002913197627978155502408615330738178501968213806337019069403534900794055794176395451268835653657603547702599195356824830171800596392931189492243635842340886405548585001356652942415385780685656410730156825443902354513505928460789908989747243195412556737169738051296296122682056002441057493178041889922242095824507015082567896093898569631087144991982883902520924095870956015025001574765248945014969215521822574243750373374383723644275694946917042648015479670144681148774907915667362597189757992651870164109655245950864533189131676687502095766582229567986921522998461685825948339354343968363876190578028414366428992287881586523634134077789414868717328910099076509575394312973524834908648958393046549575037169519517798356143202857377459500835351274669834769359946261378924953538362892647247618239438938980973211676720449555289756334015593243163372238190857303619980591671500632875732956721263577172514508509455764381916353320326328200585858450195382606748486981334082202608994216765949635005625358434108012355773963664605818447110486856595020634145657368281127326304690393947767462491241878616815694249662317215279230019231973062074629954796432146358196827884352291884948232254159813749477604138018647762808467958561924646206468776395651797600226632780137709302443400706400110659734054901199961593665722118110272006157527830306530839594274714829980577190124734581219131352412546640136766343399278052178221845049027662872544731296533295972652012453714200194691801985929223606960645009701439533024099396060560293042390139325481394196314269013421562117608138109181643633810867810880416546291289700837680302000654871136976305936583834924281611801696255764022819795144965066934468577513121963929793028124483155174245431604081291006645543640528025031293289403051161554167820567977780149892495444177621006855300281356487613113174695253211835163725193219210392692048606087543101008760633470733258593505107891822846937957205357453890432755956921679931796061246290446616564211309046958506918136162551772449805080315790302651876837768010160381567853622323440865603355969774723100677363660061235320329385026699248589744243854905086093925290626532051601254165291063528366646433060103181716003741007566425751695772930420890285915804238497190981925550516451260520167211470571683745616612650321787046222245600077702675640780268118453571845137382884581924458526034552608982217671527409066885218516028901912268808397428663879926386822714302830006658484841141679675448795973520549358012504910835930945083680327052077131521628693622197013155761854015708449158470524642256857867795337207308794979729358035806954527798723743253796698105223698487712348904710341728282534347999215793907045288493028137739763565186311832146143734828266628765950816279204525929194752117001369594048667960677274671720928436056884914102507304080122841074070061239827129761041654370001650110382654004949555401472419131491577374264503141968175595818643506459827625857054388032301717713508865262277244740261397794628094043317452177530838839365012637769191346171886049974580131506644216541159340955966237547635392462044408881620401017479476099408182176544855844219515398459711562824013026123767155751340655277719695523827645393794904075544518097871413887585705306763533691736973024968906600932162060571437532647213646962892962016034668877163100754535833882175330457904815921098863981396252600996187818830799643706138513251073964971605739006731437834795052090039562029956617302683870173277717046734764301645705898931109576477847107285173846506502011819953869547078357371077027178860606586826653333524462952220527632036437024388821111598809486231346105154186380409496532451641436404906150433161724098804482161726835537444040329154567243297748332895359876702753772519854935956005527921828822225695672458681465642644482302636905220445421540856463828496914448937313139461745956009401340891376762222659717187086995882569396327551901918734055380521659839846318000167667222593322145646324673479956917770872303617857649690104703764235988250996801645313120318275368686244089467095799219588319483599737232581588688975138099395665801721216608114665215458823122670030415446923676471314492025655556203653572231802142293398127111396762100108669131903153426201383221467722728099595320948722154031283637884102091082774523876153150520250548325173527337195343268145288570039235890693289136996221641592327434066159700903593402098494327021997170136575372859059186085487154131387309615331899016939130325348610301348433851650695342387485958935444958002022938268581273351079802503892675795720021482725226912421226305478862088429073813385462694142876051529270299388676585574637307746418139688737745293373765129440161904103875764523257761769201690852209124013591337431832651485287069275749188847201076420035922290833422285154784111987549708331424441866887713233287434274504579238563057685356582994145652468789731089461792991566432320069754397258882088441618012569399732912162662909284782605002712816204801726917222038153154381601859182014748465651796731883897962458734362884502839097543804221106932685202855917107615992018024689407686507152198668119191932384876156457944610472990073254331558803624105706092085135724983056508900488628072559585319686211801821323178464696728814790420294410958830792131874714244650252126645793526349273708968191406869782961960514754524379440435988528544587811819132019593112115269387737559482962001286789668633565412991736651781033301730251033570592292103025625281653252043321545727926782734637599322319563576573320261620570245569813477165659869863742225219082327334691332671485806371456339665888885370001678402255863855890213687201188775508275758639433684061348360400955793102401359626781962674466381646378369804448283255450129821959889270473375628877073614587880905445148698258234958524963974394445667126013887563125450653789934980329058229313797424994495427161761486047145307407077868155804979854608915482074379060284286288020866543792018742662830995244829655488561229005977635728030913069256298468255941323081830772955996002165985548834220200949827948200765821171873362773081970061471199087854330646967372401870837990570393648817491939914116178400249819969958842705176105939250086079117167096853439427247598029582388305644015733445716796886729144630239756620018619034606423412120017270654800475848692249532922842372222874649897332355213628425605814189866891039898525026912743431823156236165646562741895664752846097478787204994873457893813106669844793863651475568386941764682492053321301340729861869882349987501575779467785533485855234145102271384172706717286497927667958537661855979105851891486920214089483728972830229342197009999365830630838606464258884535746950163190031440366101285352071578615260049091783350669430366993367078647721570059946601795273738247774975636492497985907255285496033232747670652428784212592529942698234140125434547148628647381818847688691213189799137122271765045052596338569208971565856071181695116800304444393944384972847520714136050856268038517025729158165252556517354807450421305017152707086468337710783975627662888164801112408146831464707570763606651039504607501367231907452612539685095972989141358471656773277134040952107554999835517958699785904582872624295345370379591930669204449365395422893112937374235608591268126658555048973294516916650899784086666691007855254105066598979586404231115493029405293735376151764661114738230123441954066013242717228148840719817383354620198151478350353787459213188946098778032036743851084058914340931213525967510127064050023688013614979763521343326291729087160102385912688591665636224673300453334940713175156293052955180132910019556023561949132368583615402270603712095212357036882745490784834915978670137119680295745731350330169935332755251172183032338730739011964367996878695865416814991656177353765008546170811600146434615677476064249129527504049218538074973097185219306624318587583905590876283917938289993966866317574277721105357969388388306215089803215657743500176460973154393801167838522883239259367135919936562107454106549302804265064732667442963296145603344346514249198574715353968466908860009623490276608095515376858059106567604637333948368857883843894569516670549263197983607120803471552427589000961082806784885171677671201203263594951900689811385347358577825780824386273794094175199700661290259663412441402493837000191509298299515885871975734695297389876649870473166558669079219251280893089632326441268910555278936709406367189911840189271476375664499458894703663725948669006752772676088876881125591248677125446817796549525430573052689342767828317532939665698421928181003150344175460260562628862976861533881770066264494318407330471329861199761007826065378816415098695969299174999953030172561245591137733728667595388381083095367814589270064627206739308658950682861577057409363149707814275288497775876864435498573850739963470637863704762469805095057039942639789735874284789715764443134088108197751491528396536140611713745896163375477093513541880910114837487125625222587485588897997825348139071123399347213542866838187514680716531884327103756875878194176790451900780123350415229474911901595986616913383782720944895239828267492956562983822703228241153030842232762331730607004018571705225319274401484783558038283267706987535509465272236197073926916242783214967329720654052019350697422738945160978161934390210924241772435423268493346710942989064750991546049022271161118194094661263636573587085296924834846501555390357223345277711122539113324537007078996098162072675870664645791922967639908740420956553543485008512703529454475343603439295740478333612580369155532541086173593235333492403755540533348487636274683389836147461894887666933908472278841579508570307178380807371089411539016687309370041446348533962671336819384156020753183959407634119459135107348019600674295895557475863858199300545681800800523045152014716176604774227503582258822601577454995340127069373822604908106807506587184560651031058271362253924064363197297460726197363643751740168057043769248326950397730758555843284360967987804818442526153153824003706421978604788397448008097293009458544529520927991451169200918211579888963246551995277725128188146662682308860312358760269409595747204054882087647557585940482207625154024394473249358460873993204929612583511469340985360900441412978966115245002855946412018335207385483168008662224549839698403379399574315232869984406828147842111998685180310013079105028237132878122782786886430838053881745568882368222911398968150291102490228929335819132935307648928313164675445888825737828628484268124688061554773273315217630904085515742844131025835854559597262722278500154348397497370951199564960490427527895896567557233069246595030322955081482861004789163849588807400061955877709656437477839061947207413644386463584716559343403641185056367396392338768770687790570578260011633618035597065571461393074411533536236255867213025100034570225273423156229026451741541146512404204362510561120091204829153482099204187522707043961037628280137108036521009055758070437526847618224106110805261984782144233819462135125858144167598158995421138025385075096819625606727121978518516425515104587829233250913676959739093217011391203944794097383977522952293040899387876781432366901433697701170722456470780762720683824425076298416033403982992131968448197600703126397247264860354274877183910498811544910745948776831834834088975449168773875829026371233735731200995117192860201251001861023955888031406708906897778225704783145161439118861344521140829280232184367456692747727588477245566817643587292117205457281181219175000940863896422804489334606874085732229132099296118788219475404250729335771317360299932825283446402267721915497680103119633744130622369892060737272274965072071550659950727021882255084738526204969715028249969794912339734401875639302186965545350404144528043589225084402102084964424479823824277482938085195527283972241095931289806764731704947664692213064392917585992206485250371328768068612740442109478895118695390632150026490834594748770229990853086672692925150227159611133178776249887303637972071877299471932323876740827669995887206100495449659872681075384503403688355741594618409351886518663101038990005814481488647685663670341744971957271106823235566444394712671166887936930845352699263445448537540288858373094551267585249835964845731275536886485174999229649003185678979702314809189881998650506511341103432298481706419711323246548071226483501642312331050614014488721737171199876636124928044056983821062330871328444193439273349315378172005566882410789370960846303672086689390236593439311716369585664222078908648161993029766575458092785965394920858637573700531001560623836062389121813162591556362954919341541303602567572287355714087103618383885130618319922535553625560581893202360189595784129880644814323926953648043389800428770675054905071791506850726476006699951245146088628155921745000577653489635895957051889649288149315467232788284608779685201963525778997651870087534977656970487386242532201233870989727047872289474740690500828175929493033327352264518426336112723592739777763797197044022953322211040599991967155939593442166118624832942131784230057317464556536107711885361156006611217517033060449040458346449584057406806074539258451534219069546337259412458362032344988866298462198903639780028681694858536524942319320417217287277587681641725146214296863651988614129109494771762736574885483192761406243326693454286649357240361257422225937862600945075912470826391562148071940946401017469395367213154585159671486891634079323163976813552891782354220948217850057931913458979926790376685305765827621565816135205495458672625134854763036269145857165726190479380613284773805117311008797396066981259434635506345764449798875268000443930268675595750097896652049348808366148903825771365640497428431465786825653834071371321685152640902652538254675278168188341370869686012111375114213737769987941643076053025223762239615707972814016511093793131124910639089867131924530303930234744616644597270839151171060533307016461333639045812460980059106263623767884332482829034932575149332626973231168504283985766311896594518459662652462693873471630381195330086959006039785233708079459372289099832619792922068551314404075768586456065114647120283502762927293031914221917161069426358076090889218916320327065455239625703156650099312299216010608425112653990737983701020222092343881416587069900386236802056190116844657613374204231476242089083251957211530628920213713749260625484777645158613227569012125909215030164110779427453020935866902790148933924866649516728832872815430294937502380407022802386316221020602012850286520437785440755963456374510934595676507780265575623867072361599454354097316231235004561281505463068483652948449500774998863233063319926326883713005167039302132002872114889853212248807848370008767955866121138901129089614074410584460255536744019210031423648284633273998898588052550387952936132396721010121775526323588838797091480851636340455663832523621511114320088455394886825071177340166921956028172496825925205751126180243200174950107364908396911787881789900648099695995469601650942817670501131574408690458589931498912531735192608352888603898040705330454936849036451990114640133050390284712649164627639112528628336465291604011077100594063655325944636682508166711422827378042773631773176071425954490997265288392181718945591394789135615524227631606195258064656651662301581589951708691697422896659609784791466104539117850437227256456232454861054759965668050864647641516876571849781938380136736052979961725672770915622766485758682954589885178697595032262332922147990009055528208430149399489897347122918579947210938899836381807782672865966085606078312629395970101330901657302249990335114126480975011492674437190622697184713769032513403021838948886700648459480039508768195054607889929788910233577316961854745836308513830685884664560573520040754414560088629743313451188325282124382767838165776678546093132832142428778646189464159932800565899645109754037776461820925103904335228325604325137737333522207056289167794914314968802900806426266331680537282537074464556948459676306841448942794483408393017664434057775815362016636082889696554960327577149532577716134944337499002646166988192345668246299907386319407037326958234557435725444939981413728972523219721126620141854118033013153857884244790660115936850118896762849964857918996460869221190381062232773874417336320126780622082039776736004231059992912760427967963007580862408988616485086545952283528469438504977592882755492677010023179140340918006447620184911883921219884800577624450053294900827053591457767747421250771475977294263776136620350791605720748821861849857598853597788264612622885338001280007081730557984314350974769035814769945473042701300709669441626235702511624163859654586254342732828211514942467001904605712007215204750370899118631533592785284986878025735013331349481353309184013993582762346114654993530403168663040343101273712717878763937839773647300753250639611722479511975127094544162431468552187800737665076220016943168817494676992117235564352383637148309925026442721345479475362142490315333094092623283884415423797977836369420591170823449247169034461347275085443456271088292941980687959283315941209644883229357029530628328662623429713361261806483734438146847169640417078960839955487427436526295886123180890121612463801021062282903846897221870984602412478400855492902887143959782967057875213968149839413217043717460094382194427550008291672996703138992731313225567475869165638979078773696287097061910727150002611939401001894845092908770452048833469506108743966070366889242193489203530970306200188105132064461914138244379904124694694160868833006055885313123849653793912835149806282116401372640906140899888295265979173429860578261982830923308411190964510387511059822029089394948062393868110803896738741534889254541206849034040234491808972695607499651508639192960258690849966334094795103866083112016293025142290691129351882702229636442875357151528123141125610588863238926369803487075977097510448158032585779090461979306003859736021649612803489032421436629279159573048085902941165171705886307498865311311829283476878737731183087447798754188886237861651485715909338001182591518828492315078615017472429366116417070230765449102492543991170009033777547433181729101416764693031014353449132287541676926817696990845443054904553101826098761832862210253566514091604890590860726156936012575330212750755686714142400013653046232009185373463432335072235959528273654212936527181090167195652131997971703196388279792213229775276544016997034780918495595165358299514993813132649761060100417109152651030826423786128975529313552411249589762477328130596098252156588559437571038204743846525649286075230116942883774316823700747653693413329048315542564719736561726776116053524961880996251317003623230200038128985183508211944596576198787041779697554234137436618125978437901244352029305895391838152462067268431967868275505260795685504862519231975847444363877010766399702715395150448482329786131826439594166948295517366714477971070406172105751610407100835470360559185449004843325779661981418104834123244652904796645830840670505549293546720313003917841950404827128801739603782355583616122115630650738514343349102214609411081983363030442302793343673861042161982564395675960610256939961215037043499495574742819682604176888866449560453175839514129011728081699108836918040398168292176987067877296849461053837682968633605363910313595406702371737883771432309700977138220234195692904586002319030989515280795219720166351839398964782354165394471481582672173649517560590370041884968481860255304993252836155944440571559601164106394208285868579693084477090790337765588247001172160642473430591783244602117864066417580874922362570717926166076862698420396982181272672636200746668784926430652947269718939576787452580852188487945084556566823519945716211637763074083237255184601028005223912990660210985249547825673018950760520437466997650928963764084600798764181640206220449311417117594611690929463306723580108272962243296824723289471853882842619130482089544603173015293541879172537220467569666058990628934429884561833575640935792613536643291852569537894872114913937265948686792269642780776997904745035462003123561265890580346657867622256800464782825262150959509612307857456838965607919215434863770601175353046305711546420932343649148559865228433390367859850741605856167160034763125776952015372621729864905097698093756812408779101545604063211123999191863993399014901566415853722598144905874830379248857335390818355610507216271353021373274798964327288135358599313951822606518361194572360926558093817858862631680874761918506650428819396655635624823669789644106520171119057239947395617864768262152458761782373193978880909634438023431144499471082244669129574683508630137673310092308855917439805589205164077463467403338289430755036099561757001667310762528855380215482477446877346320359316006013922923943517161625259542045962278044041075264874394482903196090165711121502397671514327505618276076167266113967801523072688380125594273966810912151986795935784067274368274286485334348973619540886979782438513460028895640697349532264374145376161810007065223982701322294277822908809158807715405454851019475103377568280355814054849019380916730156732491512210148127599314188924351825134679939674933980868958539516339209487487934068549656541165596544243854264376327787085105538313611085843533359748111688628501377948409968389480789669019770117080442066140376953163867204016118437632039000131392013702958263346403860620081949139628217751024258670705587100562601259813618255043190389631678974578699268865692985377837619697028412745154156913791306258953274834328862168585389890304768572275796577431819802487930490424121270481063971475659828623551162226293191846412079305717668351760643141401266837980745627193256055531181526701839997168096412843242102871899989377432017708981424148068524278596489180681246527307046304033897500243512291697170464902223062338528562286430633091907129143300412200655730662961529288284157118475293787596565522878870443854181605496389291697412218737601348797421276776047131429753517691659695265054377907417026724938596505910255874575751071863613276658111086047310723671963483865888829976772378829374730419836304538560300565771530543728983111109400530133452935681728607419572099228061480759029339282257618480838209116041615868576440320592877017454917852751034969565980778507173649683039553467448378602775991749877125253374078885611758024600897423995621039707013058159988062327663929487031187030525664977684478938123255472550978227098268269127699217090323798445996990169926989105160986815324210027012852384821944033737689729224109926383827919477172138105961701929801839481291992397627045793053734561367041186032279622725162383792612574603781670531952674358809372557199790895774671531164183722073253635577253003256844682198232298682599699629701415301478780394641311753700936899591815028364884358356228775944389118651885158280399500181350792466030027826661798125565392409288060391979128309534656119282275739010933127247717386545331130594091990832627799885389282348605079259176207210135662409009051106566698022528039071423878558907508932025101320588148464501243471681979171324596599219258025945528896530322564856839112010464668957103424558339539068696689120589400311040849546217749826239995488851159933441004577264710001862817473583171371199543835106497539206450166124471201751722342376250855591214705418017628140660543741825315482909293532253918056456706853990105006075546210246302147169768726058632725068858656494218915815309884378975376806416927887480629206094300914411169186606893486302919758257972992638796594968936089943266743455699201263617986079439209494713743410124916164220173911709256508135831543301044360648783163395676984679145961707113171331606319514092303398165350789609238862892387895723087101460473774756563686694212475537038557098362694872190551978670180205938358788839672206195149835870205260579289085883492055385973141648455240770895087706527812053951367625167662540049817348379216232249729418835111306299092988075830409360544055421475591929652037284263038490838778934935379971664991259664796962057827840332310691401611290624270455295520934714118216795487690965336456111105817273967473864887471082821109075295586822101852305701979209941909079194059376027373027034757581122017546886854937032213025090411554582022494979206884210908881298791481324532981207858638319846876634316430773606772585491817722641625502154821330786632730816157436115744212774518168314502016646996193113535270151376177546781824397931218924676485121241364027748380601518066411468349799592684189863836392356127245101465218641030012887193008523339994882261302920933976380537623830284185107618449668160726491746299364421158823364196970481015521206769878643426267441060844323013973458563668743458301403058457641015106330896956155023118564278189262809919965329936860195215939101274486264661005799568026363266688824662543117532656857110856925409925252248989813113189970284536974003593688670461685902971392911349978366299176777966783601023314790479223524332239280658522346062871975995611038061541660351955230234698822793058451201280082127478196190301410674012078954050084622530102678057568863178176932114123880822504115777736584440001570840556716972216166368554864914433636382601159789640937050168084893732143529563627445422487800208008397620669682582365080941232886861113396362457486685436905768788488508023142045718135334152728247794619865972042025797638356443986891307760496659882655615583682536438552224011536460899092358408587618668779088025177738554091156984473131963609403042162052530446988165482670532733793913889095923217603493907038925991647013787262779985258014339962377704364477115916595994996488674629737229559752052849664728601809276774177143245688417896583293522461836742244636530925654037509572107066045186101137175171838590546477633083939141063673351968367906270773336921082920536129863934322487391032801248198948418763757126973941890922045451001689700869280788509516280816200140336690491574513692581736735387375710090318345019624465487349822315830547536825132482960782993961560120429412540831074437318048626735307187479458008952663797245079006299545035331795375754047682484578530287281660190755611454825669807226812811338305729289429314362130526436678230741803513595141079517177493468463986886977863132020834999775398284752887274155727478345792132948538025549222286435853074223995160760057530036590394501566521635747921914310150293636920016746751030683048862131204070964951496662391641356773459809509648368550516167995130733476614017880129807990818004927051874602316807068775816194383339614574272644645698882377560058924589397992957921798036979852612900423866122978441265652493873756686627438921715674443201391773321159905516894815142987995838944042801528593520473961049131979493993800896383288322807298557490232773994832700098044471653747069118312106406470350171547787001298269635974460830485266582279719101415005561134082422234724824337694914902363044154139345980018523117373835170607308032596122475382639735482574237185058789216935831119179523983193473620096781710159176971630435872733635023862393064040646248391282698972511529369304947951179488713574399848258299108708417811667900689290712591222518562828866503043977969480610478789776137230810652939170513284641480392010203019732680403963701715447822591738757601456244211238210788260652077767562607946666499446476940205503014572420760114543285778149328528758178280492017168397657815823223152623634543626944467468746134406402307793738935520112472300967310890096718816398455924086687856780086313728680576846298004845604351615091936234789166872316971216628611891549900447980327759044457599566120176902274159451043989955709231244451338145066192797865673440745469334044385924896574781596913341020742068085717352778478686665858770142703122200225946433141100929638077086599807904296809670332888399449811798895653991582876302575256874739843046085380668875038090977035218955837761275784302254626163392197867457632607046517893729940346238260181948446812867422412684532003595932317365215856392762646339742316932385493357945128768339960445537683996752166142843268586290803563978142206793757350670689418157672679507978992293776975773002539820565649872273878422813722434108223782120530359082762075448318611973964705743548601064654453210157729022991609670900785310882636462869588457963010331844575688770550047450814275509571912454926922345852049080456469019199547690802506722186078937150741687481257138602553950627727090790077744040393406724276991332738135697023169302102040370272927042598117187738689829455340651071340575085224246075782949946195709244756513655035997883638548761292134655751219522265180481437846537585402525396990485577688973195981069430391580195228648649037788348471863181340320860201013139191726470222771638844446161174483797010980415357015395031457294391691508109604427237818839437770426743536905293464264570120692371725615220684246260847901083708077839512275679668659389020730397781335349048725094543283025248619284891432336052818303371297875473357182742705151360988743546968975294912168430573311205009947410664474208869534962059591067043051446653769256983257817139441098169509200180343267523489092209607024212289696831069946322234676750506348466883963185389928785211096552163830219048669580727413040130485906911984829350495232848765763261635531468650430672899284012459941189095466693268141181447545824458804483373386131772458988301344697771883527449537026145886998469737184273275666167176030358805956585044033662275116097640513752174183779121654068583929497495323443303991810624148298913181130773872139463300321024489352333804401549006474883967859288475127204623613155207428778030445840955117513603396846285335381083719232650081659609635068327338201372798665224878168299918607922745713662317895400917496388202949868617373771201197006304809928068834960751126221342742693268629240027398364412360545673898938214069389237607031030751933574159207820390107351599691717853713566392263813929908854178646906572600934372816002478204084591801398180462358292290003345007558596595463083536036835561975535233043798154163473927361871204149002984384433531254352134904815329988557510265087766032086551419083569548322466619080824431484965454499705427528361289544137162169951904740282852274514621779240994205854801759974593712494842959761385193024842056920369702575319775670927658384022512022432627691916391475540250599445521517862871658463136254828887935147719729179128447964932790736373753141350870189938164231867585226410915232806665925857924376284945395626633921213686080395310620812653755493360563567817691398230470037842277063500235667874333315966428965864550542774557820059765573840847143597921776803791231640838808955815358017748438503058300930564588611704512792968158765673771710687685143743347307867199134609886858686014460005649190310902405965404391289347189391944289940785652450955092950679212922011261103042610344119353628306331978531206257462121386063013538960744316922711058106735584701390984864051685743366154813231633124561040110579302376126819491067061525027526352820485182664787843318096670972718374468284450969788394367297070139733204817574478679354929823179662882611480759992671583473053898066170143640880675637728115006704017796504558814651423029795536613351568193391520514675796958035797281142774842917962385176931382721395293603896475251974028943076325555766741712798042222988477619540013569523361583720777978521572883876869540387860292668928800348028811826873445529965509593118849479887676346675886113045187102075427347305929053289095606519691107446763310375431596214441835190004630802245022207116487604164876644426780127921644009105318185988281366071799662945196194717968223078834567186414145370676722512873341213762134093579558413347690517291196469006551968396347792055951396485029290370755250238203431649522144833256047733528243235159888587655062460575036458514187278251396976626482070840518072803402245559931999586653596570032915549343573981559913461093237451957675316834319918528340384556441177084280684514029434623165472694719781280073658647904287611826136713223767932059078194912067421765566671682964564478687863733003912042475548435721550071604198762854082257995416730408782265604082635365736279054303579039588658980574164505147561416108786361896455163362509768716278885398294718345461495261528255001856534399624072085924894408532613309890202751362679660559759733677863621113729117603524166033453456980357165941043312794783485384005188135723712667798768066483922307579940018893236210899298099389765654171086930225013652268957963863248720405335077073298846732530463599488631548682246925235079557907958429657544051156640275686039119276300057555642835088967255548959568488343612334217447685152166173761987070294440240982559412241926438883626401349367167938035219777249980905674235111200249826289824644840729318079642498260379601759572330055798835120121208123135257721004031597319223069046654093888011309662446863008380831200326846567082532858704742169811570998900120081287807140167069446844643834424147733323588829282039787305426949899569549688323359266999019827646733559821717154909083983099384564500782639248974307549142033557877595202271133050957655924090215656269575753705582300274984739907454770606720709674702458640693839861332417788317467667920396196924558408993356403513336272838480232827880275442712889489236143328521724633522406311981766475950465829022790240654829647031955916386977006358585171037420475539887017003575736271435715593889710862478202737267393634165098493142228258874554259146031963776926351626272837002465035011864280564925666436558867328653237542782284673470735228162018674726943165742732778961983312368615163172325434036769065582143791902839846873842086608073448765295713265252315468031023877715754066005076979567419708512726016717077518466968916338586226210413032265507327264868820196628188235528606649999500702341110035279444043572991644652333769811977058233289077458419127401222954096448731213296388726669452780266529059051479709374442946134944408702801969496362410395788183939134355786038567898082052740275399559627362695286165996848542166710844996265463339677069525065033654897191743816366735239018351531661376102487160386429586257341119995146626216387794535063605200553493158232513345390624974298402771333931130258379844466059974457459773422053660296777248841458389608159090882375129267397302766525886587470085967938888422712590027436799118944469369458919268123514527409149970443778254355070822454298434920174964625937263228669655359174533362072403720839497499346203548031792101255745179062309340949925920407941701460004720449441192386606404479669705555678642477755219255428892438945593051085381334016663905201796215380889928655977118322408597528230138823749570807462520543964158815167378092062724850958900844194485742615358141634034825768072799455212339844782537779703850260054229394005094807274596055316408053564389587953803469843495404885559450925024306345356657375672188769414278045330603019017391676806778880100427509871672730115553053632061651218240196016405452009475238992159688134535513366973915944166541067964471859566219491740490579387844600748221265421969513377580781727791284257684929300212768533568247703699092568699252101351339265035581387261178837850528964832298955972034592941600380978788582657160252746727549512971583908426172263519765035256363999890033414923891236169040017346301910042529779066040400719333849997494685826813102809861435195694029738437187715352911369215485978570514498645867377493415881253405855636492184830889976364851190430682442436447209168117806803594137996848450284656629152065237495315957075631958512864534368756632859036109609577388636191406533822056951045701426882575098045897584817227084055928923853049863022602809788284256448797573397742978451434883821397246127789311135909779594248582489296683629577250199709331950096408689188307162829637284754090416257471574252598642111258664092586324535974894505591335643985974947398011228851141686560498671058518150073487255236297525855012818898146046665852191076755262385108780649744529210770693529050580021554975017836392657372942900064447131904328644452510861433504886156058585645517385610703293745677529565514371089641026983032076633679912562021402503716300382102549878048059871186486576379663610331476528598898578362133256166675038550797874917391170874118555268813437180871035478700968848546787381798046210157461205179769153626514487787603060468276211581116256069476417996341489584384463273732881275194926974934996271750662160937658471959907293028990679144535974519537656922141965475688413150725177069108863367935002090948158384870875103953051772341310473011515209458669920462145971713913461865796278901412847737002428015925553079936868300692719340533538095271251548753546072098306444344956659143250154075826787168151411893450050530954229880806984341116920904511803994435312634079487686756781686558231520804801951737713542290585336210057183443834833730222764136736427215356736943523916946446448617479619780178168262422534970367576891364130464111290182351441067373397389760827358212070136828987696772136293898527230116402217393544832219911015127119436583312819742708411095896898335799799101264858753000711941453018313976058754860953437651288594588336967356427733476416130146025705020607847506689171201399612346286580596356469014419777317549633955874534548279739202146681961710509051242922407770187850060813223962329456016010031822864366373616545806960095759913856692273596244634545797198631277604498185559905811793140307604940110250920173023629290061785261158766825873404414160417649963994786548975993174611516842580426120671554796464550135625380136257295150158186626240414962065161678656119463828071737111875239836439822608202307975159131598078647760817099496231907231928800652069758873143184093319730902321440810305822400499988604259871642777481686259227075340942144164459027934835369411162531692143718795072958777398595300115894285640486140171313615795580063495006504051897440215380593034939570230238942684098897963334409689567493073305069497805536783404959287318537738771488809913694254963299015110220111986054678399955354769254560737021244220341650791597004072194309566703051616271736775295306900593784664320981269677312413058663446930515445602702033480634037518825985443194132433397279719457269925862530556304675318029645447293261267407316988337773718258366592847692712405381079718710880583572013753189525520262376783246928958679949737981542396209088587849282789869450466108697476160336865980191184645604770211234216382375991771945512490370391143957418756716597680420370151887020450000335096712246871354028471721100666968720597028812794630865016120097646762145529018360023345704371992836595252434042921196282736050515562502519738340704530820171087839526513095501291773347875244047828633900446827311435566204444127073043269666759475769093260503621329964788707958235757645995539290757789111163988090291900822731685389073432634506376981136148415189016838959532355467728714323494135105991788435563579537349378253638265227360147446718324021487958717829434492016490935819575779807782901498515219388453723895810266091121556247505285372851783412118179935772576779474144595537078277030459781262760297320835993206675224255671033979992463232688004585371572824228175218457002533778218579968315196695291651096413377959533159304100008618744710310178472835725984078189588830616021686206734278211257421498194871959245761556779504794447668872809019837817390499658361896178331955736564985585830675038573533072987080649556254986372275135564523547427963135837343085877788726933745541615412338539569619318721294797856811267050477947326625289281346323018444577213502973320809523691240075280059525089490022439807160493627933762529249735767529529652575140448443434609439936691509036868954247288963413668935738660325820616261400194652781122250293521469918570888612092337424355129868324441265817355513599305380166914765563496087497353646041993435842228646218107422433143430598976488916639845880641029697631673212307560539586005133992353795448761262952949500420680931005490255769588366795054871613717834213897496044546265964041918402422422165038589855291933964534510102094897847589517933213421485568814837329594871102705092094146089671258046401775833174654094136173077616023079378826412442444504196590346851575992739830741448866247999694679202527002355425710982783679085761385095033874153052694906079899948391484858121898571893757170429868875979386516356309311990120543154788418512323401008913384916801475152700800311043083026811184006760495271373856929222822827967025229976998779393979462585571053628678987522119144769955993568819026220292109787897622041976389572178084954381751735588819513744075954894568367963106898336626617675461608937593207304043553291480553938116495582491804701898024897682740595060231713331833534762413939594702804026332386995655743787632632033778182952564173812013235815122273282826407806788466399577955164918812824730594012213660884853848675901268898833854848917722936767285196082540716305581277037881952153234428985225440676281019611337112725843533228015489162561520985930534695679722465468947259001515059225732786177526562654367366712500671491642612951799325870055358969813274512241720951058772517266843472840797317307349729003973688217944390583273484609624154964049536812605457170174302603701872624734752622785855260484080187829280623755315791810492614686481567902218769236882092619105457581518446089296610139271745567722977005550450538724216284304122382281426663450968245851051612383927549855889798443286899862168904503597724460393962181667377375427474705137094808450778130089254790478463498720995910550392764393000120487072984113736624840180662496843258516531804711815991946015564521737433706501370222515804713335862833996133326591392695920656289245817922652993952161684521679926479938959361369929124460795480697462080962913200053214247779382405175047504548725326079727817288174135790954878278538194143896759185091688280233767902070872275537236524204742391421971019476600134619963664147998575754496810066181812757572572575744318411627797504746774303373705507499192396372235764341828449876119422997244056388547992132082306863319378830810460565066583177557549764154090419951081210630718484288586701533139307570584481057923676684128609490697635225263811529917848616331745728049408690987388416836267366455595619507099871595848674823857521002448740812982711784434009919832289780162281903052754231129127421714589745452713667143669094203409560623341658826775922668574266455162718026810940894525622045097615735430921423148578097627201033195139498537400501722620305888736990813057643583644955251599724427023780936769874533400426997126245265444563131451796262520317378998093252796913272932659927293460865483237984884086120569013737396912636806398891452428242811854812202703326106449107650373053161365183916694769521842356233115363684558336885178442201034747190475230521023056051863410591384622665797360245868160539945521141697355508838295808017591363961722264415680324235219820300924720614290621666181359845114118504493070333851896538808308101988081717312929308295430932873712988101319090778707304991271068126924563942358334774182889210643483726807862895915459154213414000710292548171143502577033686617169749567262425374834998024608496264453895533976117767059705064462495172268920054956295016708216195502105470196983025714005931350457810839670283629948934002170069366565628844837433880070525447721385906298333784356528560156050139606733249806259035680200975550413695408094512885786925924756829480744279660477287765605474583498919312393405164715428295839678848323672231217239000562616622635473696861283389850258164776788009997378041968774438465542079622268393896938147749941885979381175340247546665731118714771875878206237917796733348370630211061372750254687294481366667194159304445861304575955870016088883498832177777000962995354188679865350140916403503316619547100960613613031537415588203247906272529974917326116267671867576670939127510413034631579168065038219767840789568067970638221192880138411369939216519557097906322113628692045751226560663171474371022084870942308608218401605831840520398706945653096878317256504740978263374344047655307161320988202146905686698249842275035941528950827285583127100524332913149524870241172464009043503543471154824552464560432626214500458378445293097075861676686910517725402685467720796237109473067696343421528837860627009153053789172447944843127789467726489236990760503058693910179032429598941934557715414202051546966652532889641335775369686654064384759993455642896861451720136516141961888710325970447938049292982109940534358229161043238657756003626115156263611841646133735809080382418271415791121790526354593247366856514460629319445533919480845045117475885404135781604125072607667827992122161347618002423493987866259199739076648310378593247555203472797370622068342296893397438189547921475123206638318895807843772895475295954804586750651219707289931930992353687065277805397480671966822590017529508251243746197464559139119326984713192473915944833374982636457742182237569249803668309491807896755267151110862961832220507872685939992137992376718182929504350162763061479186209255754242181875366917807909824114024414784772123530554209710160234874676052571377486339982061145915239848693108046083670705998208418838422502501104296996469443923876388070889055344503027950804288887360463009981855870167711538677645202252750483922167320432505450235099582685844889987858100298032996074398380135843388270704265452970382375270311257762004188068986213671805782509984337204765550866155142289187186302837791702817388094173830773654369081659255338053270357082954526387628183236019702714234381073841477645521751435927391575092759494805952519855513082691600810340078991681022181463753528286752627340307387473718275908184018549489780911090791114359202280188300143597334871759291883364864970258986662530775595994097975385890747852022993371121831078199278438927892169301566296859765406478366063228350996650238309626711539507767190407616418007974032972579491604243930425239804359372834704414288238335411906444386819933066417416414449945164375311634129313003498379377136690920395676756054073690612600989024145692888024413683539775138112803579834778197004697456628706334214917169507989212693219259165395951153868349311603590455025916194703468189353428462507190081589048737248551583049387973717672605494595534972576164602388031002702291310565161041160759219624328842725057184168308666687193748062712607951297085617349836189030029903619134401372457112510186512504385186047641799069057732267780581874927096594661627727168563635969177813885891691238692371371853746966318158966383992789230119015214860234209702667710492753763226108176641125507279718798470491641302443642904620328519932339353981558483313430516228833177988023927463512906324021217805098319795660671249056364673150748923459556409867578478151446632016691361864752704628405305167729985474205873737868583926228154605069364695924637141217531792153278259832968499000821884837885818219310260063019581257942743329561464535843495661305466369147598010336555514964781998682168796399155426689475614453787325813239642423989219792753109220095835613493506987826492363326007184300733891258829528683853162174132687223378719724886448578786173791987000561418574605102187381836603270234428202644789823587779134791962022620131203443100442921656339561643051350223943484144212318284687400709145385991313012385102817466574117938720947313401461345453006160464707613548279406768840169026496171466520601526213210223365850924530522466113588228489807568148657981407098982810076588742443547752617739123284173587547032151462514616133760575897576433000871311550899450015382548964995733148714857286089413365357849373737625741902944536156499283706540452791832351333657282324210595466756819563301291663179458044121809713898502711882306321909544891076164024375132600897273264337504842928764386992437241872315711018512518103943532959785882505380310675335361854897522379102932789929578213592331616100352258400970133593243961295074454062676847426134453400688628074737239860115280121401847354122803960380333182769074689326996100341046859607572454494631983793278151620305429391440413876026516428935080195443811582406999726037246613648027051310033158236371697791327957683563192466264806191870510055208278143054988444745085297334631125224403002554912467477708054730201034821354108378723222948192742612433316179578872670228278582911360305595261395227269662899238865113991450761163524378894563997873478812257193855414332056348066525111235223816743016203736144815793271266500351724242830722283551389088395511477268264241293682630991270220803656429509842449875928185147101917399173008849584806899686630030856084901249244719452568414812769587514134515032871840512853121635777944670347369573145710839405752872217874020854997275623790784787983473452892258327090105821240782733384316458447149507658155551604885410000786666348822615519426127403752858165122622146899095307324312781213735496544791609442059925444075448614426152753187363772545760608563752365203737228170105797359541193016389931212177285721644858958250990284095806254941484384492622084212048737839199699624110018343828212999467580126036450732424487951790161982688602093075881495080547702475324564466471745590705847721222880007239661906535907253533050829708940858131262895004396494857010651683577699592925678823386524666800966940260307479643104001706974659447969677384035601810079451782507280117877886678348317332761184138732844706448714314980117222629775452663514257701186531573780225340848566268445651412598208655184136548497870987243299846828587231350710725211154014541822269780107947143534005901560569126860134211515986552881804217240161820867959638053500775660212581218123664671051766653129956023541374522474878624258558746725886409891064528742612210370290424078244159980586270797543174813823687984928855837710137880962126135207693493298140890998074975637099997458742732867623153944461725399008132029439254845008498435002410387787806722037142904916116892504636414357916725097517588758120084783279390998810103319119725205674069973510109813261259292734148280208868374578239518117240806979110964251132783408216812344899079600378583715105417307029587521621694441227312220978985951140452817700945745275670292877997412108590694639957206274728550504831775636056915290088138178618041513335485919450943195737521313215685773499048556184310108278110312377204981661917467220054155167406010945445847948390721351409525754882941747336534570682056247209860931887267768907459467623886334853673236286371258600031787435766098785608274194108907060079051555653779565292054483788560252599158949839395135675813223483888084721766720126680479487074691438104501142543928238706827800666250533316220631055730393899982087816512544656742501805954517685870991608669752192633297365375168484913786089873507796866990416694790044822908798506272737029840318788303390639364777449188676138598066725321813651833515514702193918247281808010469146634117451604486439183646455660292097515883793506356824596246795772256890626480953970248371551969378956547397180642416522042002514679557951580414031118612243438953179137728583689834602335918478696283178250636832934859955450316948851017333113189126611467577316322784607055679444146708320234681287261529087409845671579513971449919353248997558716881817623604957678314402201737552766519015066571339792780850756235708032649040076067178320446225608966649644362063761159255955145490174817771377050323404452293887532981503471508207778675339849481457475473094479709114621653396070720389886432300383763834504221724042836166436667729945769219790569734174387465254923358074414490480453841732478893221073461786063031890777159823653341396668819679296909848641685940779435515383572941136619904761713143229654283444170188333017045304034257180264096686587996072312952873647864764153623936400407529327575256432544405122726602145449605285313845885549248769425616058716881387442500863167915781410987742187272660695585903087073222579159408432775977913718236427651259316168325226480255206565811634100759108993210373986658346759994685302055803976085886292755714347158495746390838147585984426163855105591586081394871502576846087795621517626261985878922624840374663246246611001332952211052081046056534413057722561922955040713411232898167752463166436966629056801490729375157300289835433796024737657605869135354661012623489189208213946528415440064033297901847133729413195118557045458741186039820764096020912950439651957132605598466009650099781990481925130606796894247342754363429857453100270980505915092106796259405309529758178156825454241629636362690015408338789195959150811289667005079278321167848002321133404741908276888880776040405843462715635745465605834202878217715144824411307387244944401696555989844247305514360944754740101937631334908400250713900409816087570870951782366154278901767141638170832163167932950167122334580992520265239389599541779662882047395292888956999093717006567180701419832225954725236475946007281650040501289414238030724189562407757041506378944305720657423027350352671945776560795204698943601164158779713093111760598431755465312908463526185197968226900778646807187840952243789354143289495101956484132656000704375783120361551803619694325154960421043221691173180979146318597179713413185844829228763398232134873750702545581646069284441484366188573602131527334856465266642605062722796592623417525946568320760395544964206595205799807904448598226318583867077644803435291439028014972140274820668231980070132351079520203151994146929159387559208010858971356043375534379607056396058913526153517100389514640121245238029239915212722303535959269201133058011945938891343473086277725084822093937594557468195060194868770622231773843068292376329007727649013454140780010887728931412254226891639802600640488723543738496219884102150708549368251208207576987109610278039183578111267663626837201606730681369335536130691106692754039411285894318842887259462500522849830258487324372925321451036390035071787812287636851213155124620754476145793176842537886782775122427429012296616997044358977718509530674195132186087432041887476677955043173277011510346061207777769510240006282821525424050478989453444599774679246383420287949053973134502955907707168070690781544292553386614826352931828426825341958784739022065020582176011857405631991400299072655935558283155048637122169957027515726298673256427871992816981059819006378073271931774100129649884476080448382826178697962674510097116490345864010068669370491601415221524854636659725906065431834963236916538639800469173004758007842768360876804890648866531482972155080550538549654037864688383122020002055945486771655222951342550609039160151494199977916956264655369174030010685944385157501423411605410088929881092597326220336440749447989146734654687968027715589858333678428829228670609111545413744594818754592029004416224987228751713914322819340384463526696248018652190131127944901046897594926078108663288249507855494563898082876692668428609734732439569324845217202004629752039343951227372624522008827479436484160783020960827168714429632471740734079403612230494239250816611888263928032395490471297612015871360724854358556805973639820247938699395106526331939189877182656434809425280210669905993506568860559000065975048279604400873990301723602119235562637010321683110098020061412097710488619886600987188186557441122616165574496540909179317200115056380996418441464419216137763698944542381858732040412117961121882149065789651353578824991040964373352573622310792274726196532387163378528458623002749460050350458742269949672846341565452822170729554633316986616479098853426588996453677292030305945406779956148553643347419513988002309209631748734524020608354879652304089978319695458129317152298328986185686175912515326972015914646220130300978326775851046457038405907924158789191299328769016174791196126382723289316131244368047254570003217531091803345356300050188209937449996733243423399199581297168400441478325719148420929522998086191568699915253099140487344209725640585850787047346909665758758020048798705914259906663240736895583240404296982553462696907032716690815851038136203156539010544086853177490667215120122496515137563180803732480580654473581895426680230731698276644558691038858936652916044985245614165586328374487469664365260005731552655655162057573063221873964325327085570914068523848340743999881588376744297769560429230322573417743575195168699671475899634754675502065575565718625901015492298300555333565819895671584306540356762197073432627271711564457962783834372704280620893407011801981411541252430860178301713289143558268017563033021529106264320599440498304056061354812986452251763118111551346371745017178749687546712582976216825918346475784348008184414275023225943546450456385799264048106349305936014988231785603776985739687534641101164884851568694690419731687306943184260003445781435288682642246095639217918650575367028841409353587724638437928768006845451401033385327272552374965140371484165211642598391125437938153508843195817684441627085025830655779202357949586169798574957853737460270159197309212211192915544138147597569860976260366557927682998097220532695787518851242425344020894109157445909207804155041368413464385787014352013500481494045251889698010750722046283181018429974031261580255186512472665204947664863925020217698902771038922045249437322833450336491991242350029187659925188960427023170351924287584700371412154464274256770879524852095674734021775012397069945560657270166198857940942441104113406242801696578690222669968119718627182818398761791343077929985559590553204056448452358515700712792034775964450153609393850964577302733357531808990997126656623469958954772830523890405575295071283135185031609911481771930818688668155086890756698128080917573843580130040423374718311345090357123036178364100677866455509140308145039134155982824478124271652803660498480089986491038487447076853762389775199694008682548402801167012585761628372837827906394019757455650280611517051700252282289535726152051588921619452935793513206450643445094305671702164398185397213978688084073388139644941158584747357456027869929472832820979910778952863082930790800091347724382258559243644551120797708346618439679563468728664252477205521479643264937138253955787647835991507259318066433115798908491839853414175959144922391005186135962353303408499291563645151454200763441501072878767677907488767490504034313115310503586410469502358822867511942987014588275096870813271400169266493836775794561942996784362291304247340709624797441737581782978723923052997329036395434971390783941211665386620121114208500034702544204594245720496079765507849243368652340156300217324053587166784120635592573226682330794369416278157683156738706954450294311010715989781389530342206580672581784930324257736619769778139322603208782323092540194339550934301462292648075804290345662952065004607930687488301587522387451439955370802256912162505180878354455231723301219351029480825095674249680970442372775697847397110629656400287725849767943352818347847161985298815908275124827826953035715792905422019181396851548844803276229180115511999732725337289588024131326055991288167392139010945260866852995557844795506771383330736083071614179376472734852230578285015263853286571421404177645313181707713669737848651620336091511560218470801366491283512440738590663121579410326522105790115226097470294209071924093849717570693305935207102392088224862481793487664037991540398374543682708300752095351666198131681681054392415107738269766463445966237579375405144831236933939567230656862828130627661723524481431049820472583597050948317311514796668428502708222099749633747201301238116530209786406704639751392039498753117839629079824430073878926610196590781236786002397383164640222285908354317402214084326658339947427612944215703044332968338958727871912570414101943023966336603657133416135506815183515653756156448119422539807097859109372207270321867454767245589196874950877507784727098456027708351720841694965515633095559689922634334589610848645145198256564749413117895040588923454454927450845846868676070604112601333732761266422285065397832897666844002284006536702242419951720874104627027307756792441375994486241972838898010437441318814459906367148801340594344034663270293410800721901625815255055584663420784533747070812570298706109816909136508871494258372822309066496249785660184135021106353516923067258171945744585437875472278758840798288384941822152170923282734583381500114043683787774846950725621080345474249140484666042264326207472823210479838522138034485564917713717337371512549284277234224685292148054521776735413410069446987720596142573608563475347478955007545039091558742212202556645154906332715016919899280741483154004511061793132179148916137135093273521110496602800357867710411433133577491642044708436619963620062914882414808230036956541136308051171245075339337751738425164815676548553639456484599357340608145157710557685715550079528153078557415724583794861243822591472247218262301158781456943581079614828213335170478481440368977895000138377791985008598611057199934217582160156035184630852280482387029684453223011042733661610523249147534295137023098396743468866876920582182068513012285722275335807821435597531473310374201045231161327330563606502546479983159060972795429233957983638032489953446205829594739435674658125972613723681431442964936149360184479459279568763267090399322407293578574769261915836888202267293089087687287487942639376462775702456967611674402184624063765106357549516370794432464376111351419668249273915855198687737367761177948841683715122017756733807874193579822746819677484908492027192086015633922283294146600350989256881951615100850233452962726967791211053210203441647973858578945357462761932062876213355095285376799767502260853900312356883215074204439230162462599301105376047585120260704073419989279250368641611598521255423271256300321859615007346143119752819723743450314702399339447868195669759036789245795910085226126229402578941110967560234418449592574365483801097352801264115553605112117320339768798872518679704048945342360098149645229609761598795313159956823288824580639716190873699979964629957185478490466123940312355624154021357183185894084393526984721968492360130176527542542297995826883063570990615009669946164185949226925449237560521676661920941166588276805653345859373013799822514908866316006426036503417111367852427439990024342760749685366502749563290583012247244101375584157274993502156772215414899628970872484041515124796155493084869825041651403582594670437321938724822544473416975999584243684027380610461729051029911459387296718774372545571538973141897621099454347137214146535371164415052576665582466918563153292947828401733641375245415326092335332478267922103958223521523666988614438358605621593011680501129506839868662502511484037771556987866601001555747855369908781486377109568993020897919688547661458857564345106465176004043379185486102758774089079497421089207913919389638197222563732745649759004613586725864010585200725174689555811927572521111299247749520096992771138840516153464985160357218223283446917849772456777892502148755165111164156981282072832655705363888134556957279509688200345794234612322657650329179216822673938581960893810233904794066294837149415449711361939848387850734178015068445344887982853594820692822273858729109695191608444288203699432690126003217282328098279170772631917706999260775896471776649580965809442272029477454378395435896191790239202950453821598433850488242473279569458303792824007755479817845417333388706119436662712503000706805435392734203333636210014166695811305172522386380995450500162535275813681734248622317314456429091244646629614150776536489283757466320517963866908784574764348437853457462036659710825772195873380967582610706172193766091645717428965186256046116243677120226873588252122500581208193172503985905900238351750155365317026068332662750838991098288893894808188707058408661407232996750437257428107887813929625116238828209065190018011834339063849459704539658264836695158742119823081954143362600583537527556369872316324045443915062611943582024656151137499155710782450666666118260382118688474368829251438409914286001779481695907216136118535976142781009370091929542546627592446725140648877548224305138772404013211031978040676681466163766145636561721085235075067651989178477425317085711541039956656501740481032200446887237763626209650535651139312057993850925756748764109244444913013839976950861492740139362280016690880677984725303612091404950235019018520012015813091843599725114242992242908488701880480495367496597597235002575503633538281019704976682488176569177451273948165263319435152008463649934670515173366729126498578900982565892105937076945367294871771657116373921354477901021877123474067480991105607149525164339734953804363250772458894530114744599923625119169028539677602189642783092032099499558343850133269169255157247546957589129934361995208438557977142535789264922407155268166029071418844562834378292958208081959159134570276540612439504729308472598923520458155475235858841107264997002095443733049767314385615687917157958641676166939049126053791400579736399215764148209506434204606077405752467847999024763128874133070490494388687340356178184166473875954973212028906270723135613223556623485295801555555319689588154125966100880952272549956144636226020513535233452249833364910394131807687047645665279744590518984948326532358932605695425170829950469939165548719962429789313489397141975109903166246240174380341453872287684837169772165908731497571662113016863148756238133531342481319067715877050314943993171821679169553225208384454548989025854257916185140237586420278712532418079711503028741125598719318334930229250982930662493021582712337879914963394073289908306773646570503570391183396500216393672070680711649723121623227281136699989540417482729834692815591580518981209776792854818853791068700853702059753366663812785147600321855639606675514873406154656493625307822176954195748856959973965302546111026620603818103414536790766037266389076982669816030186150323051669130747835506998952699932794995770860953282191613820223510782962578968754523760726276175810705757349613435394341535591067998792558512278553782250187463846338209700289095018002104498088498670788886940057605859001154738513257968093184618320028549969167227651474795234931304234043332634275132919928602753415629184308965380789119251055340534993145813789228760573898691951185524177299530043145286711252569021658670231134680141658928710367055316109513952369843181575540043762770811097916673917175073935875336755078360234445497755708094003955424592192439440188895666199468554986587731070410333961952867149254051644089916598020450433380041092044593405804716294301057877506203885983850697336981526587821902755304292108998752107477912270239813492168261569665775412799510991204540088474261785318553656753994120562189884129186757774123631283575833499350173945879892695531142876985027271923241328394235319012716787640266414648925654984539959283859231212828584872220688764954573529687082660351619609277378771805855770105476357314377969375047929490189098130724689806043461490926978384250355569456438500947772563171962541762655536440755208178375166454111310930757002561086124298658189272061740908080845703700272819742880276154932160348329150633463201873948453740739520814936574455732912980637897786605710706015454571249332887641320378240026441735164733639795274048230746157753379589444700544832064102176370778619369217410617602091413627532710545491349932076149506676702674840150154247033771376137693622360370772965447061023252173718648127494874114306159718305641357621509646267180946458501183706434448281794490521334588554988651663683997822947489720000571182433753988750595885882537502167185013536854744146114177942306351748178959516334120814777499957838115586436255445361674265101943960228278288952596886066673404734850054194134641321643111258627454600082296070202329606572545447752216894616480870018080149072896719167381171715605511960376960507383995327362387968405423258835628538987165420786559900777308595356076392032194913795066648336473469908833740306475171437066181444798400705730496896801915349873166346749979120014441606110351646327720677761422809242260561823232046726721219222011715913989362493170982615276397242252286092971790846285567079160469915200544816053617238943141518461692159445175602345165523887427145876563497699377080743210518943680644275225959357198255522749788814013245650611468889198262947070004185754177755356125147424835700708066169734641404704221178733969656443452701392075735034258271449193699733027215004994188640894476921405787280196084714437964616153776693932822961258158046803547315161422761167036738469078668414624299185697155702342942182965667262017269365974792607575011453646280682644186672818117131969030792345997483229108954337635635910247082367530224925583588754526790103852004539625287330221826320776592831493146273164016674985022714859006451281338472981026990891386003442533553065348939703018305318968190243186136250580407343696923992312596291938519546996763523737719713308998688154573488825043111217456417786476805231681357434960066105388436252357021103235451013344416057542287959539931020826927853421924953658041469999348725643425271185854098115404506522816930573316771439161871437336463980997906677269875380474663795672124142901709535499100449253076227110854526245176321246453958977164417834413094731212669865555896655067306858405854914414442821045624018727139215198363796004650528608421934195588547591852427220558484395433682784582224492134090113221775702183009803074252984342459819856087817489040458552589821836146465408179875887263420818452175270133455873787816773248346182721048027566235660647428845352243480339319086505533215836393827600742549182288545777020525014753063616713649475900916665844832613317379734169818235213059764799081912830559719092661665887168049410373542868967241769728415055019383869565555976819846650511722633769879673607297184048505959433361043258661687454694671468094834326701414093497461734491040064273747884867540673891416261968687884842645817205600235928090281189530789466499843186435069049330370512314986788913286224363141112199507605201298871923169661506803890601236621270907799363847651020573291852768901850907828981823964270894380941432787016490548588827903128484964117240575025230045951669763341090066862737179585278907043810695444293580099719928379819334600847206416114355837302365770954674809507017832722283111036876223984013051153279066165968700511527934179330003296774610762866047696747615457142711199193035602970694830498490695538920075876968213782714505173340823874529184856202830778257538898512806749763887689367714454144688893749015622402380616271629029021109710557201249691980865833365367464855469610250440059374271500024302206901872717782109289336734029679164753497892748440585644812008232925196652882987733172018097685703524103982108418097066309236357490686269540028748293875802238456337399231199788618527368587992062788605467678529079444662360719684203574180551471130398283290458722833104462034462794029542179930488784299227779886578048546762565144805066244054452738500600359788868177355728461926151629097629211918228178960094757148185075893005802767636082659374564651856586237734141117565212731723357874898473102102744401089419499306620512202482049395543867382010120157141281643516312265119580778182608569514272795075320924360941384428991833717097839812940140012112415299710686341482063914626071005409399928051601099412935507753400838140176116229315029863421521417252061328437684740585243614318677310113575347404765215896901762586909285701162567286130763978630210259248674126604187466201840176531997581655305242489180771996975950256949696509396715267463612531356634738310423751715557650112822612752060691471438108128629077241690277057827759267552980003378256898747220698423049923538595571817545789645058278070891967318973193807165321998507914292188221640085422876202745507887212857726318502023253555996073506256453005730169141544693574918024460388976382682701231626414785405830335799753150931727206720917051983661418032467222024268097336569227209620711373926383924550440200556171893597397300094747884770794764829714063654685126379492936705401335081025188065085402902711260313092485551005757235679423392713613766936836285900062367337048479964658404169882420612060857907063895074912297196155952538044114866980298382384623140631809840515467031674432603504382094334930154968918542358790065871671465094339222382310004858638015218039085525196581564509152840159850906819087715598426621643439478379317912669552273516889546953237024455841463196314568800799539814629703474457031044090843333284098027746423078659638980715207424717871179747941081155234810578750528503994134651847094342585722200711210654937762747628667857259191326244208051197311776007082653795667875535815728256008170589042555381972971335649704863437823650758395989726484061802065658070851342680650418362521260896282369497492367854619482957305935100984045782466657638868718227985486101278138736793816888161598212954261541494817779671419535733382457713344318080974864706065312676896203875516020773381501135673853471352449742247148064873933476381969064875386014481381473332040740753491948774850100817112078581157887289590355849590919438131354991204128478137345692996805109624182687751953693756626995562397945111602755042828780823515214110934445238727793154338337711756432368660726533876289318540120901541684963010440895926783242962295963367062899520851853917077149463892857014438692365524568612318890691036341379128297049141878548359961674892322741157396658809969883141922902189335708840206745898531937755379810933492353050289196073644125429052861034536326685738596653183521607375391007056871680628796249103435427079623908862390795135738769450672450645263508429079219869236599296612919871781018035059193464410881401824445713425798360695763064966626290521693772545362026797684382142897407564227610126885409797839010091871999018727776273829196648482269689053855741995625753069211827306076498479262730568932193302545037885228723663524691443952732606610411535141239714976536249913796318480052909361527046780367315421234214273210047736782329922394437984766690107788981153842433848638644695208470387634378077849325588319270966391582497685295173339142342326932723508025560882860659034952750545548176272972085140358939488906309466012003192419377776039306166380287254121605659282014458820168442666151652796212452896054964546061801544482925853225499101254813928749266984309260191681569770952630290311009571249095565758605640527152956193066484813235047756311767672320202928807712181263077061804087026814753325504328550196059652696389851788349403672454932535204266446880162020934319436470993401772932427209966401256754591450534866761020811549526661445230390344256478001927549784457198058335035101137799652746934342600553286485360990469363311042503009229822081500710752543684599412090821218556501991593026934309027078810971029614720150418997544324294763137979392230085519292827447163244242149290046953331895309746580783044796394238417960647127274926534048963194032790810878939029550029425313952455081771792213152917058273385531900946016852978633431664857375282590541779791330537967169235082683810605326372799466083043455933620833398951612653337014766026272160414126937558989309837491522986111311937184762075298536877956671495350897301778161209290937293251262746775005797979047940338017658909307567798365584594144596364864887230590988737663377797017101394103931833122231048209263093716539777710692397034351460758321679414893457942750036458390106028719627453683152676133269389556194651740559458466077358666864250748521673978430623279790833529513939201969363473708497650743546388529282910106271636411910258689607237387155836531271558347713302588451024041032363628187628420381233034722633727944731525083648464255095063462169505454113523748401250311405847490138138976441383103209644189161557417995625469900381832071624923725227808889798129189269903121457975592375319539154150750004309069163961843530549513644231452331326684144439265075745215361376464235623823935600834623790044916940938101797628507892125758461811142520633404038760665668480686980162828078336290303718135391413234214840941502553025191314058997162689813160097163059832561856061074456986797542043723387190289322057276475568809447429656203934876183581817233839460127664219801326107631569113619534270741969496148421384998151666460557393648321723252021289069639851182026023358239596126346244116879688255138625548656590930832072764362816891633930727597643415439617906101672920329186566961494626040412081259807202714401983349390022011579407922335754611255256611195444149948685489847681612256640216547543758085303108561780305851764771640206253773265023859989001552502133934498484879603401805603456171590071842038767460604224800440485207794861938891028529089785789272888489625458725244293353313465201744640204819625963925616184651894204081027817555874662461106434001924411834187856954284486360772062557882866893673785270017165841096006189416665845094632225179539366956809729831941159779106528657701981862120619700803688824931369363941489142346630733412947352716290925453133662120012883640074678474640629021134388323359991372411936276017033332301241719356672680253862734683817041559763197065605942743224959709503769315361988997227537752027563093872502306017508806611150200061451282319053521647910789902114624772659715063304367731195107488949407576830812325007125290257432788743053639269089847508227292492206193707392437203712360099208984781722634987478865882123568416565673473913543388465038442560997625015791876284446627698198794073277515039965166559655298991335391940111334501243883016502932634889212934984809193825410296997629962868911652641234922480542824555701293289534601391371038809859376138561035930512131910476445549415792517208422548854426899059784832729021900774312299856565723592871057946097371937637644058232919920996963998537562331042717886828227622836236117932512700052158382009181336811514416558275417297546393018644410902250083664674876163314378089081862143885136043348063363027326261733686440898565423496531407867642644048412171705766975965350727083903907380651485933760725564989610105242138534830394605090913213561567582530022195612164805634351555082144831064128767519830795025390068727866149443560946182490590869427585010962692937096059848608522143768647203182843379677680379740488623293343596604807558337562602223435227953699518300853127534356339050853182875710403763405330103520153984990173901166090126951719353814207886499154797109038922324837270519574113564203731923709011867220069404012811908815448621789771835844724989565495001670088552253673357399632509200491537712255209313763675158551321957414805971058441511536154150141223723967878761959584806973674505684193502984172555960869596829373056482807102487990932317234115547938468718749314082871614771771497362965375456463583956464511883440368354786701029634984359867026993473025061042806400943344299055025556927913470006476826530524070395942884027696439587683393858702284427726140936869797549961340932992056758980193684246633091405196130327229698676592961206335505279529410484753473383808430260628072428462715353741281965591469886954253124224042918267813432437842800540016373549573152695580769533247005749489081516174267159667456994778476219890838163289865241841408818810413331058219319527997097345199860437345034411508593323296791709714523013569173957447776731960634159389834591818194926119346238348089345266464719929923391593601646242500395611936305276803053364797686931630313193743272813039325582310549808027405613302117353837116708217511316233137056739872469761233544407556390385041083481106650355948489729431929331862948715807593912362585629062724024659010757095017007594390731197537689151769016595205803328051730590477145959854205287337478747998522870455473298023551074587219803849286758983512601519113467180620075678403395854353079200532897680590809476846172507817285910498350906032224053945758486292069190425847294530642210342926549641955137362676483305499084123929741371415765433562833625372978965582298845109598551546723111210208108808445458314551644963237311828420821638862418556913764943115012615536879466655868781510859560739597549895401384594796720546127424750406059398886236822523641693626225395967107822888159933473268275900276334708687841820712585186928390505056835936206954654214216897840856750184655758625657879251099104407349141628534802455965179349672493584358340582278089608288931128139093054810427326865992603487542960759183383901585041252047062134494271396941055410056194044742447416370187329363273487861437632225640511439978520151486125982523794393182932090271507812491909224775178029704557294481318947126217095545404307970772165093395854758487787869360801334743662354515114846739358063324293893766931833548455093757029790536874879074659457728909388920044768499438721493715254115899629407999319637185900579682957244835736215959873046920080556946699479617034759544398902225205464438056433214408653844648790269126435349153339803334912461916752389626141386343758508969775217979113043530060285728418876264293026591105898268298546566804699172688314479344346446170232114038764285616962285685509441520095134050395671753388857647573981946977526137069607777729015565752816705303626153936143628257197365600780345841170360713451936042291879729821853771787370581156234892184775308896821606960400719302668294106231644481889813637243981088978030078046878003297326909806225456993374243520149134964840084745689240489847770329010504602705550807824619871435469394493429601905858712790145013088146602047430635395434260173965509520690648307192451629888131729491556430486720744186482772328710195357123591883006036968651218173895972370649539066731906970880057002233509861481793545475506582627945794073941318093515873104878855129899386216206256364004575993353048620927971679944343015606302686892134391000018630215747448840686796204715285989555544271801223214646740308292278649353063523078898947329749148111837502705962324901743994338597981619421075933296403217407516445825829506663740019747784188345335789319264040689018566532277427102287805737250619777697930044050061539390884241726696320018898912460153461016122632219703158836281954895234712966977362470787453056106710940669551350295878283311335604337789414676421114925708847468441220786026639692122497580474163334258687544039159376278835582502620030618826290441673406390385419385694319416282054232413687962554462986828488218989519448836131680615112829522185154725498314554111139413811943508050907967944592419197136587638499823689459644891857946686100100983446633864513311073016169771012306096509909097295029664645023062255198745784324156320503426905609091675339300163072740347415877126621364535883028712580176124089090436110540007302917846261670005517417205629596315458030672751976573451746091675917007782400021165832482294516846715615498838965472627662547763345222652565031348907240443804675041611462668179738256138469860961872722224846417331480878197478410862247915317519002628853203255013538698467959232548940787306606274459185000600491925261266950355763444766068914711594113601250247512981663012880763193370504912799215571933916199181295818322144994129033645410188439890593882028046984963425676785362152680868806496417772702081530112336719994449838717173874733211207102210154153770339709347801613899003174615362896858171154581053304815555728676449451791466655256025597120493973218871547224634595356125988986209669520433510975732792108764328426438594662434203331900575489813782934415244426480890132303752201441714649836926094920158511322412050392912513498676057032349400524567642809741985971479865930377373365854125332680476648592060306745983523293885825710763521593044390786312925173459204023748364159939430809768236559291790290260493946792130047818810381037939965786531120668098940348708478579410410088141331063772013408672217532774119064072075528549271959361146103348570296472021972572177464146614544906902621211862058297073439809775531513145090379063391975072150996360066056084330416024061213368807615627162385435582531575912036548537890802529131331070087324981867753215541209490555418122907784305876071892197066029338716244438503563806966559013244535831335105824078721718690531587854254070768414551299153041757812763610001884236754846444685856285877816736465554330663048057553919481858505176792424652360451896509652423857829367260473641110245163012521759674998316163861281177056587326272992636879834846224830045535928332256475950939998303073745931712781825900066569864443248811976790102772588479316439827984498842396752565093590452094725299707824644195119109702146151970439708360114142230668951780231503291055043382642859641593063641959171431183361581840067008559412504836680912727076321433639376304673368665668434505123761315332861402319818919176702136092500805838102179242603570812124950037502056112880094088456464816150005629219179580926648771444346582433574397702963117169819933127858600682362004059595847721127555214278717412518535980188475867089679919691565570991782761772154247428485924579204590098991352269841789261288149247583765659923643355672445954611318955800370781974350477094659522683223919421736315791603978969487377234805740387648855830205875956594117961653967005268854720531994169265873971158349332349683679129531681104342630391122027563688592707155453445512934021822370670926413922165565580294659772865065795040065297133979650850851450177993789474865891334913411161616211564349589637320692168223499629912159089272576054313935922494308522457742340804936600662788895828210967033154375503436476382464874220421738586623570003779556094128089660103888753009260244170564307177826546873056913048450467173135856523974067695235581511472202657038520277929683524463230795285352171513462209315741213098681191198491655873289611892519935519599944330138526020109345501833732577890481825150863775469507138354125849058909748029505944756151765543430786612960283306329057105799659041072569906801869168350811482738338328153280027341023512430190670752189447458420935764157357671565548956567181584988780819901364050153012031741146933558742253077087208509699608764676533136717084518251757218622231517044188176245281458542280034329873858796905572010377306181796212750132200791919232854689098460510896793760214283699586286052612209369132492590473141824060559116638802733861459299561125510233555179651494895540393005306400057105411292675754120784950311247812243492782531058360091679031281668254280325819477026593641507124650806766528592819432702914496882518644883734696921373781818042408681488187139920106945908533741081099299814110870028456670824451247881619674118995058142926550339261730711305952980242112461551539195335552771229472306547981538387829833914640214786134085330726955577864208000238603175485652230690631073348396598971687986087671790601357031277201049717131389416156322307910878883199276099921620027321296867159328545754406522105587250759824358786350911826468469754104445446207587711899498239634314336813809079091875551507592258200436209235592249177118492261935895452243353615399107195181222215029610005800888120585867018611348254916015491556008221599435593505365608957069243981087171633473979827543833586828751562721995835262428012671438705134633246288747412397062972848692367302266207634495026450081778691867812129654220661576112360659436596717922138994536084839359112114120979254970128243000762024415134192923404421251212130487827438382238868359377831982300936417536321609938800253461280490063166625033051140842890074467772880408642334542838599100171546363273443357679518883713584943651726601925533943506433787223877688854136768447498223252564573871729779875084009293605531907665666653475396036930687956494735553223760573140421309164936564658815281186721878564419600956575240814208608388159874818823031175915890219697279694093608905194617281478473763434675735074484734766176603906932349252386857548659774390477433082361941722787312415980808553005155681887093993241753845677055121019557343418552092366175015797822306401802639344787993242896795429593395668552138662223938046661480732671198466470685969152600172867673187771325483741631738727213489178680777505159828562031509516330703999550751355589840255100337807681277690182981936957745529007169543211734717682849302957357994680502573257203117665483360998497596028769073767148026948417501428358144714726096040278680761712179679587284086349024543324146315117698829471212884636178846279453458926861253660222233709759230496394732797857287090625381459987491018126849193736295603476736270208086028062194413183206398269083117120097757406583554884227115620126254304333985402662241293525637741788240755395155706856906297951822003472149961936827622357308468505187829280935469514750678376486084647183184217424404982424862705242964336278413016378291817407628536071049701711501439498880218505983669785985111381769649045301293533917682467676089570081795882229553885648036459406154371098650850518343512832775242013368309622925028564696305299690698730907999175182158340739328260257729904759689620098424334484023810639270833086649390946003776106688741553357206645948809619386045885941310407409607034430713666109679509270955289689123086931795949717513701396028661825112740925890833988464901830318354315940255213147314373462758743530928580673432877130223292005101188434637468150320354625846775012716576550466596209595418530059576605734518200983792244895478902793776538866898908961067190345121865228505063781709488183814532212811794943910335173747488552994741581611209595275218385786140587276852873276981124802644520687082569036161685683600742717346841935682237609451096740487705737180917600471387028223059891193355955930633097433604353241375952075343854030754841372234076292321337800382069061852154641687908478789230270649975122185891417563885568927384479294133654011552974684459492357914129287208325845565103871256923778875907092781513287481990117117157838181984982910047717170228204656980517148221083073969138658685235562576377203524195372223817721437320542673385073005681047475381522310736064814027606081942066592751087325456316294694493045024022999190898370533017605406057314485053179410814265136313961609641065970587907813575845329312335499851368279303046739481969170927556777409806511320770223327954736950051125293048962577953717020020790562426468461730033871121762961931606920409213007424565193003900093716086780436020890740885128862554002841162718569423034255631773085417257259137161089361163718504298062715237254077079690937770918854701234547630338165174137057198879768983400254974022533376147889533799930871797217047373814027585840859173127500731555302785218032221547157034969249572162972990761806068351516150090549818397040103104907304203456684217692540475672812696674559717043991077121932453257323867654587901581270562662789386123697132423475951576343110974219072689149112899806744108386197513883308222767610013933545526108517002888418558117202892863001642189133061255098107309076380757461213707909844283339727615618651195376742196413202439053207839733000001465719444803984231694582757937884799248775224277764992215775763217922731580244914933872424048450513902878336902377353613224044725285661041995012507289130607062961052993993383383876370296023469974449581735634073746460349395795972797574145134161942641636797749907455960646702497382099631106748664121258848636955754157660346185034994733105199361960004103793458164546299885821744676024928394534206363049527161166295679842596021326475780840386888549174916161426618746277010504060648457102105733464766333190075267143679523966052441212859794548620259853474300705904023146572542678310652331214724902879271242154750562734994268504716093635772625783633079325542012230461872707625830836250587394088378522156989648774181126907484909127067498845856071190706569636234880374304148028931873000264876312662777787478283756112842007089576060010798804833318078869791005911912451091727831223208572769951988430775646820988056886053591560558775271386861967198126876423565360224391268985280135226035933358488946733263097836599627913749094040223970158895955505292835659257293816068387383739639414640596424612426653331598242338121131607398072992286249723163979798651909308647759881139598773715361175983429793198086403702219815035273333672083143673991360769675401372506966221589377881006393662578120535860336478757088540385924419372414827232609660728513597918017563723461601221291918408991591261399171126158968113709719426095037351336380170710916659317231287617616882917046317022246066547187136352084696971333055013668465600155916089741272014971283122246375692628421902237369053170174729931484931743495920783138624630443260858327074182932655476974950494854485990582689844102625490811006868281909678244641162087209616039134957888950122343653444606294739222754249645750264823927109435880376000521350745422985864212527651755054690613797832250697735866934305822985626695642729375227699117351886964805493536578355222759517748975371796781627309106243285318955972031913982365103069016885413629894366524605163889323934935980359956474588784412912723809403135034987083071657887181815356600324710631756453117836559389034644465080525691621089898985320573617720120484200050853370664758689017368431345957207070160720608038465564274381020698627263437687218778749058814765646869220851353264316502032261076854009862185427623263381742347331313419718693685315623002148357371831890236920006141229681736980775299734438698573715916314063083519104713836135725631161343543664940981491896222282268341994149452578370017595457982487668194158589146658402721141707357117409731966878585363179940331087851402649068406359638647399461996263761878732781986073708693383979998710436371176620827434938869526244815145551276386858744343193478018939982707458184424527871041749946332667416290456773937385550962317101455749350010781466389375707579984811673342486143032333846673765007470782771459827279501624048404380546089856628732918940975216600152235619723236089186786480016158049996160093589453190863367946725568389741933216192238471473321507597780762118174363642594731213227717032508422389392573357828702373269909525317187215317814148079879829073101799541309965296829693236758818387652760386794136360290260957672288423681094683116286156455254397315866758570240625267907363493204525818499594765688456206022056952245589940348538894087691834248735626903528118198672618546558192938722707341338738167297403165368198235479449197722379817994302316579570686701719552268452584364286460066749907933360193159680283976146237052397980692006306770624803287248588626298626208330422906513888430841117640681904133020966405668145921690752592709423064202988416823589660184730503559248743461381286939343561208326972428950269396266796275519068199114007477940464268296438633939598419076602320728579774034997288507618977612411301394592570355326635487148459333442546433374407343742364825943079067674386514296820108376253759028950052801604973684022877607027315217659144946622687315283230992411589263117893468568902852814880128680879563472936693399511522972336600033429799820364633872596637794007029219419153876290017849582979236630778183955619340388544585784052035094170134167214450699058738794828665717220268039321170064294001443325290895912169661392049529034859098030066893956685762111771425561511073457746989087170798293864128931162139960966581819940626883492271443865329741535369622512821278706521961491586492144066038022569697709029462057038115179813096201675197662318807228795062339763950862214993574484160115739790008770971254802605361880578427615521249154169987484707729385062724304831493253713736914192645000825907024936543121171820936874347761180393089458298186717338540244828827483598716708714938055967592819003528242631122238171053180166697617118378269724054319946957789424581672445211528791278039662232768816810407778786684651123941250825263192712673875775467909974736065087439828682565221171543303320751577792958923815573230951228883447975192766511080025635087591477289401924421803961308720319357029162370563243683514196170183500550160221286882175735546391913444802051861780311517528437797019644246658937734796104931929241314521769146747737589970600554345585344645235348257551386380595667675838227388489524467144388727005496151714734086876645265770204468923699885958427862922672962609049694381699241070409361533503012236998814433193928355064181819124672011259835554020532303258080948015602967483584478407094004504966287594178781899706471250806046269022429021746215199003081613964814850006978587608289566523070848255186738053780652886335778185415434112176286382535630691997921436643560427506779455108458468323968949184032369492347263185618561549436864046818079494105887550786862753877180225154985500032707018648995580721101090614376300167615238595120749897975659479232420972754244808423997855388818858027954216507114369735861093734779660851845973657301541900869661073578581004422396868885253881544023768309653830566505168083849420391186746455772377749963111989724284705965499049410883334451980774031797727093668480212664054625680090963837007822852527412572263352359429921440167715157577928836219975219305047996058368384496733621831710905613576478240869682234701205080364917720460187136052533135092791326011916690497379512971787299406995217440079003518052969223908118475380841253832425272628275447315661136610090934038721387904211505696368438555074896221880863738748255978093439843877486178584837441471880411783588790234170145522600552291466072835982526081547658867017233365877711156297573948342192859104265237885027727089402844231982590002442775206084092208539923123062330948990833609410427894139417189110320592010406929308828434489768104236672087332856994879789883044919261101348427858624920167109942483365642772548559938051611193134981921429684006349988965983002717598260458879579406300571939631535081735707817836223379867956033437431768852457413841810729520182531811159993129393017626752353540815515047127220119626753770371235748922288901574254385927034889814516904421994257736637306363161974624268791094798430066815174758515000200020625185747439296656848372667688669961827088076279184098285701710041567187617425813794521600342471583803164538591872029055106113732399506515370737565130927102833811600823274548787278023797834422975715788543968336568178303983225740085895185373801319932912110398851851347831773016184446429096955150482749757849926465422763218780994047029528993001146376285980923250752746881746005379882985665364248335245314826656333307025581273252162895106914019360434523800706201323085389329303103060856053233755903210263286384780329984315994603924331704176188758839317890619968495205518356311580277143260610443420023032847100798396200784320022397418583411155167843719146802869118692847879160723694412371545464212102930024653583947167737327089108273042908828435971264994653418981072557845604171225448241099315683770175750661854327292828765504835192992929477846819657828682351371484551028484685530035868021357179934365924566689216999113826261741449573651142791653009383513764611328654774551236121356997374193136486457713050625837499962735440853643758521220634594999647973216779092608383999655101660477092243111847906369459391430096163525136847745188128482086724022454495152417596768102124182374290629469331281523393939824758432704578905635718371731306463089091664165812418847478814972588333837083749027095246292844475993347160326696649058918934901391632553868296972871950237530110391580026816999922252176232376094220896571724290290780145192492265452307994922288749101777531890635854990817454674525037019843394767943858741558309545476897708161212593585132115368413723249942324725878413238047366435556122714841719106817798704837856651150180109357259780442782852358614851093477919207765296099027890459259448554460929075233785424442970661750652556906084056475298373938366664806810229204201635180515995403003461009361140885060403885015197747336276193469389947919644683784766852889093682890807377443783217189195016796965474993542982795134285833336153274390495851193666361687103048198936809115064974745325586442097272064962050496094137134863429968002336574174492609471956985143438282994151869286775753772948944481100888964085524382287741388141463799364280634726833876367946510662439692509239460941583668150278377196026445541794866083392344313567865435242050947722184166702174179824174311034529725226184089246546400399165830275041156280639634069865669584749536658702436964294111196278061410925019572693072236769550281734396058455940669038587205948336385877498713990686401555918357707796144323951827499270019145942373863076840910878079982254585582191239857754606825369509911958973090352003658715484113159737399388485430947513510177169837957112739242629374343632595951016679018587619994464875909752408892273419330058294891627725786495077441788993322100729033212196021785220953970102616165926650294024755015110761180057006380082535452906188626908991537291803693272341201342382627594701673510783822630440364074902686589816245298808386156246041094496503005763121354026649256180027078198992675986073637550074200996057907398758098155389080865755255726546815172363729036691297632575597490428838487551329798140568572768575546525792125986055542223433462846841358779837570593407139467695688299960143011817988825513270106877346269883452780906872166008101536960560192438654485279337776775383836053795915304607789278419282287559165632254633136226355451075597516948459144978693238098028905634487738295790794515484851838585976018991738097915353477286874096690728070131651547403720528863759590426291152101146345312721497522964347351523249754019952778336493077608773549388065372038563160523944114385808438171633180992933668608085796183673224806301148251391069809355924180807867716926377594239511021511707632083647708397330214460647475673349021496590715278796224652318691771397262607675810945245047249498729577328147866275350105999857842279993432747013338589025312297493691673358019033849310179032831180888135343812143432646656137671182032563199143678963521913938933281643888889133476463775854979089950779750591997431959801805649998963682232365045907060901455819159215312133758898190600863371663161983524567162815542482839588096902071604367775401889539550612092115515212461073544029018870711472396486949800410533646350740591451132608725464613036455770659477891189539164149375511397201620179507558426320340309955392107996572046020953557241955753246300615508444532573171247871738558022774425663490452480013408158946835456434192005145724947353024810245266755923230175410548504861225381240315894224885689616524378155171678962379169491734578348063698342379547066353285868124126256370974950996084065158939120951782365041212241657439455558911219532870950684812865049541254435797277944482171397391402886367563830470168399354976223727338775477327287205234073588767897510530376995961424641459141665751146630121972423031499360679565859890260999371065657097714094641289429811283373563599671598101850506009193451339755594739891522623211886127251696066392471889144823530131263444744979013223410155540997699203377858775027370335595285018660437567457562876037258065314801682056539010018980827198198330677492533378689620742446573276428577468570053816933657209683758828305467587291400033899697488983856421096800982540892631637778684435878712230221789605399916923778386230972001128779681245878712646060695141075106773017501060547219749152989259794867442448294912262646327147427939079451768807699860894532402029889352863139394414518770233109366735018813864967290954262998018729203121359455942446624829578195982964423184361919289101257730867094342813107168990664327362057511978966497367727585545930984609770855802043406669674745875997132348883322165372034371983818132000481870938981918768718218258230876384091677199524923158271229239821874690425694355781133344677183042907406666646744734386394661379581831403572731162251056509707705474923377574081585738704179454605355006016361291141730878206454548332056448728059741329427462975761110374009138199139501482061528790537631710129357646203133526697721299281146687223958355860578060896351067695309051165019555781686406449930600024391589665847914184443147675074785785297241772410000695350911147619661440303760056394250141887314829409074232441286384798109380106250809693786203212821523488100451192292494163162818483770442160684562214845377467725523567191517748711287911014677709823717081776747142870634490172404919588895862498177861283467881716763816111036085039779021806022393419223307601575043429504038147827358055592474561665125771154949924941594390890846538597078635005999421695139270673706391965320748991894787638737668900468901980658787766448422373964220130468448621978586372383723734028068185524358469471134654648714867495710389051324015774646697656534626365104795623940636650719927513268581363600831527244197354880296042909048575697054618974896381357971050101623292933975169973606359792166364315355543440776311822515673422989888026156201636932723104871656656364835488570324468803470623213616390004059227661309703052394111767018093461115518639163072729093605047166979779395555343765981729399214865355204010484006646709782200600571052481916175657964321772455550002474205207147709924179542502419099767647716856105022448657302824106026024920517914136758913738183545978697789467059821150680703568603829794916367037371326013015874546050498941509940363636762991571001984401330263410164779444323821580201950372621429558068222896459535455981493485522457049089499958305517111534856019577897758755999186250487935683361142476076467231394316356012230247250647536418824401534656594461265731598074744078404475561533001738305392618126201612540166905054085148422442886563222907290122335493949401800079127696562265890164050838463867048787197056416546108943444000656906595096507938234723592742728742224657676842015452277899707158147794555857908048327267574718197635483208503636326882331490604238537391302538340236190540636367471766332866519465508317868542201548317963615621443666992716514351807644764888947611363243037730573104993898541005860238004290037919813759398113340533751955991039255569985554778207940832181229864220218046311027812850923106601432946299541793954170268660755059472471063945642399987580069351448214072958992174891668986634996233117809022472905669036928476643511288829126676858868529443029275251871457030163092240449478923438766155866660494794517471204912888953078735233838407551546573807464334139753154723046078027158168120738380592139456203968318738852520859443362998874114555897641923008473108919120430394041151608325982026454613700950621262347907573512023076594203617974693054497459478986109371658111038435338433505113877703330141716067092017982395293222651584300054882717815239334603239155389304848232176935237049405049117287263238673723624269613802731336489484294637641029475802371229834015577596861762734620649824565428523556471850884848626025246191568244124739234002397509745123794563227149934427986121171132439790206213020940150214728086326926266539149016802468903277300110334848606608376848012128036271512131048933965790826048199970042606447953427289200467758900167720267735697619039815215854590711180936954332830935431965536106639617725217549817861525020576474326284221846079603108849627235571080165418718943151629641706552431426780432201218196419103200132580897824585844936733062100159793653260336267052650413275922639246042261001795633296503930888116741367078347146050276892070950803609910343668771635422702312021738192485981378798671429977593103761857569596747458172501727015593508980343243598621994082810392176556368682450926814420066718643336286364345713978404869189514297418371915601072183285733713936779559118979312868826885476951034024365251656273966258064015308756374652082684060463163142997506051297517621441649624056223740311599751913725035058867201050353238786037710170590638575696761690917229893311034004498873794519334607807857620832873291447470418668143542190089548049615533894736311699714202548609110474095891684979449715519083539671451282906137176880066385933213830652131241571191376539601951919200018475432599980139114587899518918527612854063986248242722433107202538204845542424403641889598578448043611179692851471395414829679495813480111557527858252066793674758999523657407828421347706036241608977608082827192470187754126769553989343998035447065434038371250016747718455476158174985250012758462109608582709781858098938278029149807340307628838028315689994632003811941711441957385888784707087285070226482013374845721426684952471419106876749131861006794315355952726249269720230570653289251407189610496662734124225588108167159434457287481905358588504626253132703183294251078497947181038796802687161326294369609499272221656975547610108844384319801986119485443485791325074710687559321450147186294871571681742861660039210997018143478652075894092651634635132981910589377706830494675336223212817876725936992468397011441020312809678088137837629094046799842734061179542713707338262047192027749800381669097712534942750441797720138915750729400039795127488764094711329728820268471849538633231067765522137098672402108523102431824188802670877217752611635639495371333312230407517704801031513105908176176272612055271354688230199648926573656051581177569244419342212898887741668017685134534436221021273986019777097992513684125892537831220119695024569961659814603450817565512536007587700246798129295041040226026332833277644992585488899452015712868445907866640402689030275339412057990656394801316262040814301326766476688328002235420508284569623409259181668468686718318450317080400650582752233043244373546500444187903754939255826987464148743644759712458343172299315371320492141725223614316973519083197418375417697493111463219659160468015083548687976771596593252016603539024195838725571045862457050448968875950585874692736638602687928175476313852028009296476534528187120114182740908675869197318481528007625489116775702545823031789232337657693320537358233946359499532825020221923430656845791094946292082560365079520729570072828951429462617744983038965227961569173217684676569800611544875966095771994847837509883960223754414394288624818801687802312817211967385395223219699600718589382094294096805295208847197861091714200296584739618846185368235875726853618673274767555430351728949606545030088996245980532868456928763812382295285003262145017075847818369836812911439600686070406953372013110253076785121940328546579029227921131912479724058764729219120559058718149234452562014704695756905246347690065981524252169929267447741206819176778006636401439287628975091007850298136584576077302772355928119679680698113792682049016819532626510933306652523185433187274154572220335669366089547345679088554383213426991215018314159966427413779831301968117490020476247691921013506738962511951608777037707983933296925009294706154821428899043482652277834389522788091768643714872289442586056720765048368384481191513255623375886065363041291364555951592630760124258873977351097648839882248220322447727865415219554962763963832110281870870934980766797279477870925258386269118368455354966060953870150319993838388341950745841848811272705894785348928737953709117910149560171861466248971774753595190918208965676098397652546751320954809525047631266405597279652482342117139275691738055502679799677723197459064075160975859693117175271453102996487030383317213732942294933296068204004585129816368016621980241835834574374789645913986897789140998174544377205678522821167465871711392035315928789035930233385905770316911303052817289707332164367100943687393745539970976787919572866483041110509428264346005188623380566804245008038339790673559933651825048135539676568806255450770090766416458496259630862329834529058473361536877126535866581046283981373124191357325337351504281356140442271465561578136400270429635257185982367682158506563652901628566465743973075789317501117738603018970545628548834110829376062593605941039008598471419501541447992472199357376011849063685641961467815165036547025714098278470406715633848282508551240009247886748471438516677082228180637593489504016369050368563085672441265207746253119662196722046588677153848446759198692645801955192435412121461815560988744813335336940043023897988163543617148409773438481576653494713931346356707120273171217424806995792884714173889760314479957985249139148651070475795346751520123536978583690732344684833219870678352928369668139420867970976227525496246664313980580469860504357366968492889797308606775678180119345601543470002685184942507692659808994390328425666098910751761465187583024082350663059854667876292612522138982795548219322700215027476115454616788894807221913281888820853594975280376445434219918013529879236551700973956365853514444397791975912125056457642466570964716847534967224000158882663442802275541951661868147475464219091601880967472597226700894150913516577485224613459168419036151171428775115760480766756996051925865926696426936822510165473687413237376630610068135781690696044439673378605023910716630729035586818520522704452380973165929728499937550865884198418667337140710910212593786216605061521793291404492656736823946400891023198254387044339856299640404334286634884673497883822896065430856275677421243264781711843979516078634038072275318934664688633356462590791279970267705901921520428956344707530142853961661933259581038455581877634334913656858036950820144486338614192982343867186778684875362480072535961083705673848129284499397384487965970394135798029786092991327471606849905719656381077886114029786560507292040245959780209978556958345338771751372299260382631449885851334180953050703853814229209249298702242324830201227935952037255233102179665847089721844537683469574279789787574022184744944764153623686719741150237995597060538403579323963361708537081873253868334830321166342754107500564485058335631211319760159042427309928151272600482767092555001014271439156890411789766779172808466706224836889154377724589482247186336985346131272020018708482828753723643589814829785115298292210778344020492892140758743826072956478509641798115384669366584006839123645773765120838462720548018858879130534551376135184618506071255338491474670922078651955261140017082126402747242253378774754766829813820539336372356095746569562838751365619884598677045654150424435808536954456879538139731162186296469361046296037414217571100604385470085328330209338181165022621336416061384737580813834985950100244813064905062722451640046187973340798371150510017307045145045207753646073852240476356500414249901347381422724228599967944957692499873640463165189322137427153636961393373537286433146225807052361575909704748415398587536698629597182285441818860897604858082020462344628958750336363702463434256269420402919905571946636202541505195394035264091917073803083420882077338870749494511731679029585076115818945861543753219375140856847755271540928121386225083309142922804694258531551680243733540813389648894680595514018453249441324651701913107269230047081849824275624460076504325820705552684885133277908577153618345487802018366668454053969344607972779437482739615137818159374975029119588670634121070436392300595523138481809331739877838733185357975659419329794166115690734356598029539074376016040460832759611665788062054653035037911414635292300853774225391867216651330361756681540022042137940644484709180088640979748813587860587621063922154674339445837427580508651049666963426270886035785134024418972670048414388165818202994279560096163858204154557763354008993490493998323845037329799428803278463339732545143244964337077534764334472437774904917296550114211242066264168470110875126214701524584110211979377513984831004820931563695259431133482768497150574666692240294274380231205931601108863180172486507796636506487292159593653290887751626026424932248199413750191129751537343839913211579821986881652888589667394590191170138046759770540803037940300196040569145912990665864131873379318490882298438052596667814029120151586910123404986723657938450383458252860162256022617908944139658456003853489315632965845121226865494696692954453608465636635713207223870607632661952097952789888654087063271464155998821943349225860590508319116624641911768120957105650533898206251022978554715250287160047979141409340110202935290610180935379873971659320499659120474079986632031547129141022650381853514255937048225111584702881074834603702735336076703469110737931863467208208345045546936260309581285240136333896558375124540974474455538485845108890606666907123347598820464544391496836859423706784237988009759791151093262549541313348767544561851186808102789673506410689011029810335113449217881055242899799332476490667082822117646339567163268292409212240269077085822738813781662256197289719236848755782984493203079278343331808471646134838397961338067990787450620332281132065617609681455184950714292124525326703050061012808956590745195462917741353003777437680625099028136358175091774634172334185804417575121479032978351223261477980059182306674334241134816630993003217564382277317549811092162358196327188504847322760546683930205020755003679691114604549459182797649547250509214644952343693510257551395423192001230151529597546300857192962304385586704763165978385439678532431078456902945789485255401522488862876311933808063817693489779749766038114439030760439347471777664706640806302960552584106585775611188700571214449178258495217981537642877901705683332369113324769546295393370933788820068397888574204494536885484505526477503414801384019917294588274057452594670063170670033105806438897212539533313817402353993181256843155261742260662765543623785760775742167387654875537843734764977522177033182920984250407876965377041736189738418468484416558706437098587179549864006406807826001457398834871460755960248989009415880946895862038021263017888591604441520398298646424946419801860462737393585875221615079842827985582163503161835820389123937782309552726170946615770308831800248529564925443795716612093359240406038024641191189276643616726039742452877069633244035779037690785268780771536515353178817700320812799006920644974587296032690179892531321631153558993597463615954010230311522527161147226411969436997712694396217517200265889022898290127248687189333882381984967328480293926496028207704044358893092340448637145408133221286753464488577121915746151729280003140442496271086166799012904484593800112169435816801282493955474338210149621611318213187411784259205320287104726224727586425126022710351005669224998016597522946235517846301307473787715381761018721293427573232908816186727520440501334562919988217990382955578355260568230217174722448110176648541036284210368831374810575140845306156021752097792345389182111478088475338445202345103496631032564526759900530953282995059049110137792012565680796353691340265985521929496249445549779065078267880102935649122717744591216619805508417571327814885714918543578113025582386430106304734983182833478075310574585898615292702234919702723137864351281476445675412646674594064754770934513554052298809668110093863169808770165748966069479393952041997577646295238938339082814928365190630778605104416283137423133959390427410418234187764603777548726202777874634196019344623220253830039576191224300547314698934713855337407089074534818962629938235250922489905935029497819207962831548469462534098392536134576399186028812496205056342734555049131600755810674313077132559777975340533646717019764514621246608096718661445750711309510256795574584528454310939082602924202478274330095049446499114606489414720504436301955324384196637916119216120033999569897847872243621749340499815569620326226377197842183178380162395140833086539316063867449708612007971564449979457754250786767209745563229774369981784423099295007955369543273068937572291380626135391729372392497416231032565407060990453369714251054223507046758884143845273171087641470937295024427250199483117600193323435488600351997867013338703180253003949887615820877388102599907523398712848452603776210366751613169255246112621653533431870591058923986634740662628834437341071088062108066196781962955340737393725281521288921575150241954823554079958984400459441963146703383170022903110578945204043943682012667762152239580677472912302284122689406537047638092263371257456608150688053408610535984529615088458908141557207293765745130323614534673939151834192636671924510599756150376927372252715929922812888526778008286904028464730768321055381564663740958321843054992030633313855291477984752330165987145074110628190618132263203372877661457373826179438894438668844500893655939246932233574241964525695013533342417104779683762035653470833021938596873499850753749264648692634036743041115169344381215657896697292829664773613658808982682642993387937253810891253373519810640019623652047531404089216879000041174646820239096493807811615661252130811037322832978039104731560321459576775608180746431113929406892148792192621320724115499895937360955348407567097510148815099379507719227135555318728203298252950867697501604621621304703437929740644082398365051480276096969492698322212591501809808666337209137886050528492489286579375972106068368494291741018133217151903345844370848439910898551201912809302574638937516551658624559156838917765588841123494512789588678810291445593564091330269777771974284443432018272079374314397467276864482752177935171624665686309132345511228308197370475384036034131526755907768616275030858475906253987754566608246474130831273057441332787015297314193169568103832349919343268852120927610031138558815382325672536256369354059055064829883845229493516711979918598617969013864286952965813724919692038185990197966148851349783451983590773751465204181478089478624787680892495765417181646406519750537374514015024582799375176375884661788863673156402383273812159911624303238944451623013399598769798887451689160728735176395774134984254906693604972490184185449933203927327969303595576562262221239367758417947570040405763981226019821748759334804028673242518226377637777194501196675448081712758466004282522912166216095589376494786516161997078000984922915360795353488918817883978708090174408343875612853573658810287371701971861627466765517189208915425007717943879747482090132879787003272924620715135026104798516371142579594460603428423321158028517185501090349506382445042849873117348426552925658489832666346201262751821275039694451777263873712959508791103718149978784498516386386261764713154540770936905987086216950593280170148458092259894725940190826053834894152792304364793778475710918460031451664674038690387235224453376409768871454910776139832147817464737586019045283383953352690895222580109253983532078457853934491909280184366739420968486705014242546355274818662497020185233065188345839342481067551841829373344376584537123082364567403838211074794463570050669422393815960755401671465046927085812785940588113612798105798756482392209425171946922169110677929164704701761055141472289041145753179545678617733514728421239519443796428963774335817066396225782855869868546479334394080997664491576059028312969898440602009967962320489836988880015173233639189218126102805699126894639528454028448948784063527079840249776854202282151415252383617778451341197554665425276553837592595431710432003860312866978011439025574674015537123367425210286759918055215387540379475833330779916487818152009036094737603095140414971350765624850598495270214290927784374278571636636623918265745571528748746058635532182096069003757816792223063784433416054513241894286715190387147634322665837043543278215196784433698129402639783615773458527305234996360006684207951073928688941692074933630789653544714544623770852841741041482166496967152555797476014401009928972966258791158067072822028418604818347337799443947862303748694388902752886218991244751449243611117716400419553704993569608548763344590742659265072310223356404169809907664314049481849471825547424681284807233086869832721222533582358626179195829587826239185323629764688446578748553267711057356335542560087661850801825270846856179243315043012632470347750779130250780837021307061689032784255035115180493729389370284992823110735913424680815276752087425363964528443697228803335873707109946042418416362475106600507287822696869601047436894167670269227173734880300080863253145848771853302346196711433784717309513251114017112928973689182600790498184792757072023828317625187107488444118345165421766882060597063356946345777807125327819392059411439941811463222601226231121846632348567844212970455088704048642229553029063612140362306004567065148054883989594162889609522594856159242025435701403378078961256101091434582079589723012973323878985233532855145907765372178430293481440806282872248150385374163748243299142966357910979830818338603804971450053506678012410852513841745401795688059943509847897462251132749246663314823393148781494389519114766546977359408992826423987623153707125036543710622440631111010453327281492071167451864026064451088490337254606002436449451511461892760712679902650688534960960528875317085503534323112312608384982575147921024553797298101973719893508628326708924753394114348752506719739339264138735848051089489892638954258742023304151206719588212344912169083987748586304613887399304229515464721743518946250487108882315677435086247943426755106041399487304741124014496265612535709758089438394303183486499915092144694624705095568923286506036622653523458342683452011797348180702290418860713083305204855344853483500451737352600137084534922927571167927295636797672602662252599574648176954902471960429507956826710884990100812248115601639201478046961547094658126312336249133689635947725677868984722247665625079489142246539650151501834122526834011367042256672576004890347773696281614549956443358432652605708647800162530999564151656347265818860712524574071224003483384195673068620528402143564053168263249169599498469133024269950614574589778390829629295165978322033740756777126995170042715188456712261368054045505146355746163386465742259321621603668525540837779610795621064801811470411630010316656457108022799190811089133432395889049181021224921859265441615059411571773301835246268824603726103828404567413048757248449802162900715259364036968882296752025597504664514833598421463869876127370831238147185703341242086797770688474891502433297881692320667959785196400704594042582568291797035417389719283928398247937332820660094328191301366303619857004166114043755844365265890551774445385412413493453480877473373411268255844160390414118367589352028772863413136448372925762005677212914610040282372743595633325815088284087674209637878380181031139605321442893923366612234609260255368286531216332595316460439287552033236220130420303942752320363906537383326969959859917931076431992443026229024695519388312348231520950602284382718933479624866794892744472044618750746639023401641886465042538798949143041413681389354195916723841623840324198095052911359707121108980409696182897823402066398764491026362191184349551700867990669075385646332352035578274017213539842504006403790891066377094104642757858082006744328499646561505234407810780245363914491319015265514998267967745036017827177727648641791553067185126803872293195139119269799953733846090453354207774002966091957689770179226486389006415504776792415921630501469763245174320478056709645368214719673733248509813996292958178111241010407856623156059020282019394864710293111511583085828106683865883445287510029129949541584185128958874689190873283245023210139140014317885578493329236871637382196527045631908689630488102482922448229743144802288536191493644144598795447147608377056674952165159478868945789076312190327941445445650411468341005195150521784622675823013369838233474671644601177372418459714706871333764223113687680363967426700465042375635362108077008972241314939938895177635776289376936273486581853302564358215630181261361325949992371813792506987206915098624917688724394627806665422496613789947945915574831590636459948405430739304254460224846410824525158096560733747413798052814063098493225632598940599859498340588420363243150681721468581107343251881211565168756930231747810802584970292037462060705567795551982710305637920832461672885507926574029436958097526092456829389879224592825286743673053353477882937792553392391610722796209412050078926604293633299174177612853283303983049373194061946184937390273813825301255034867213569794019930341876461508976743653587820897327642992752121711452890813228045581404998500284727001653813144189974224728142371758868391098188011429623092510484195855656447108151575132515519681764613531082730875982685871013144831838384993228513485011973455686482990861775753472828449049807617989633765312616125100728049065168129962008398673572589351739198553008139102014252411251042881844818813499834687284131197187394541579131006367440925271085088764878406651861160107035996081667337993286462336837227862181424831874744370937461612189799702158014520787377399035819596406716341964962110329737313963685512813412525527283787773367615667189108814135056777969445350672832168128176038341013225553185682032119049745774868683806087986087772669055081233554433884301468209548778155593886624018973988734229076711430720599354708712309609180924394843942753199005800013565061574593140738515333624659538215408622434390928879118270889535688062316434634868010530445733579351789715154169618956348988263295635301694455728962798135943324424262239610746422408409437369661415373309119225619726473999024609890815051569949172762750479852059924635935547309977439919964709107706007603885688024898995330232406954237703411707683492940108483547788016593508850462519477178605423405220735883101370903112907476888984725460649080304798565387185335597268680694667470183281538643734274205754174840722334684987602247207715212750728955344009287450887199347404473003189952589416876489066719086931315433339776234310130033495769824027773658146811894984731092730419911650999312340274509622241832024409962908614770195919722893216251818837078352028758631325327284135762483207276400915760508243549457974455629471146736664270157042583344284157318121546429464357651893663883266702228495786277101091506991312736228526358446414258955193938555403676059089458392992686594414124840788378171718575468162701548556697896450554740726695991799609586638414657990640976693778717277168835258767810074148631937074168103003146982540020411216797460138429349265242492939176341258494298383010932639338764348850572340483433100687045582506206671753346240233602440975298916285490406632027570529130369893764020694932528266113578754535023509782906729272295783331490034447328399823767190714398207462078683219918248989610595934193793356943523208281281131882939775490145326615726879811580479644806065235976601499605944632922343370979628658698414743157341992644532827894715018928723367939045975059496376745014232598942883257308917610205060238883353186157198384817670244302564151799487030833590634788487962105562266135904620917349543970317102352828057314093444259877322453284958355953698498501362362079464694616006293679922280729933407169993239354436379866092959379317659017716386989872127910612198529125778396907182296546450487658831825916418695657264089629748167163663700755603657133805129269667753327495568656061438567014306710446071268281115329603963581265145271193536994560460994415060595536614571665551635286821142715996737056723662542677062904590166879224879452595967801448320590930503327640504172867923439518275631702206677160555044012871902435971408965506166419328103521331672534996712719008959709903558220825391329606091161026161354074453345451853593862883726262695356191726870299307907128654112656579475894589304707023299506134030962079852776404426731848890642715773674278294509391048358112022723021601039768850444179955059915361886883755296613360267984712869201887010705226738061474335675091481773070519438153187600487151604564241068119559349629696637513975728990777084836650451373187799095049092761951471181326334213053632448365911208984727544373416425583624279512147066376994567592031635201723211305653822363005140399637496869473593579469915703332544620014691272376176884267227569614257184095795122829989740501820586068479379981953011273932124695281375681068563223196062263191397387765852848218434218815650913775544847835877793453772087357869096260490015414227369334675719547570819983957379995632966910766187200159671310134090358063442176589602390333398171870370084834482812488126567110730460780505270412921871995918780101185139197397316536754912070532704560274843537842786681071055369075876316927772194520406265468696114253592475286597802343809934884450380414160990620983384945542883122063650654902618341548276808766002469502977090130590011835700312689256838370721317924320703690879748908407524392090276529822833006375583122206234336118909620987515139502143277691578559115988913886671955163340779855044515351023765763664992926113283131414504040250740928226100844288069608114153974220294991155662370299724704156319577679821659745947100967582263989897320832798431020103704381193033113150022309277017480610541738373730239547209694478450184167548437625916074976548432791450469363346789656494216552556719350987269130273343330752305714767368232194741436904510123488041884006056186494043320510817332378612229975991977395389145447947378176089156475125538015060036817155742748525669321044143154139022577038236963843726957085961832489766901850644876338174132546779855826788312904656021782365180368316800532453665192833163491817947374329731567686218460929750838758500394881423731160409546903873302060377325685853218895671082187551482650871733495360811970533023660255619589100485953350584027041985538937185575143269992430319815219859100760807928392070035477298690371531596169631337398623949554302252668599894829299892850574895550007798429448567309255873703067987156826102816988008706993785719650819642629347294459800282346289731060178849626459232803714059983305979232259751363563748976881093454041815835845277054367036233031309319434533324501330823214387245559971531030940701801736737216442600592164779297675843358977729803016476373240014572291182455292405492998441731730137476955663927995060929915083797318462362808473858771738050919404918546718768924346365407166643707637297621925073243446566598776786889394609869274315419699694518424337331318085158371315118616898189779784180621997093702915544662269622714521790890344656684026174152828792218154835501805387112123069408808349085848719887488081164532192583823139119504693811582239926980402326755819199241093041586112081552304387351699776674135363802194918398863823731540039602079852193098415793778839011523586626392663141811597243850002510713486189407689268627855098502015449601813596252437773549669296951439041724168241942899501952013245220874462519154210874635827647864157206344421380547911045454832137810622124804510847549819270201922131295271997636333203858495436166247418682765271173467223507128405672988887158216690890868883014363747019884388152335153122422153282708509280751058340973325057415919830333066874550468332387756163600932213292827741694898278772783337969575467521185098889057126203180112771970067164402202803585820123991636902484301481873022082683198165990677751065043266377057775011980158669238454679513170736670962683778301324025139579361972274977204972244284724512920549560804206346444040789239533729405867674925992919571217931291503483670115113053337190511491205867993055582955845170465943840452303681655220243633815478124986890626537160158684671743074370299482669648350353915893000996270947000990996347494257313230295337280887676205077810396203740030645728475722599631459923217633325381344673573119755977448408404336928239729197033145844971497970947436704968027515713501709024250827734239884142570959869799223677532775026324226368081723735163191755341573921354759282999304733070452427770659829252980131085832244221194280188739540843064381937853959871484158619068981069567141660183132452842292131546838239273474436359892253492750047368625652463171908159657092826499366878617285244484812695248094826770226563048137747759172600209007741371200722332890506562932337081550059257900694479698372641310502185465271373215422983424478769283606215289006256675502680530663601255440704989596448038271169956314699994047147086260553536106968837883673296804226801111485998524964850556250211207625322795377994839065858171865717643146645684351815182722084338875057285048549807077120857711152317906792210402903877494581606675307242263311626765005089970018563016208816668055386650748525298951669676031585669712016963371120512118961707049686927475777458458957346515400981211856756333183387995100875264232764663667292799285017259313241535668216820170568499844843767886092482777442844803002461514201403664786420828579436584030451508839284966997621932249059974971058270049779423409052794615122794001110837633286641750787946672563065041809440642740492170625459133929037118653679065270206524979159014997165510915186994206378366515116672288261845544055509052159697365753357739050401055769144286504906558099235743725078772321519633102253544869564806308427505260769386717571510153026692602784913756105313536726210024803104941947482398328748212001843356792878778733398373807363538432033871497444294876118760854373817833323413849725773228661219621406191622909602275869972611201142862856975098852730326358501104935777162723283439545434104901563722181681751369910020236487908765383750049182974275395610959312478303156633147663374200449899555042798654562077466202186466783625272282191322574813781055741949703051474328172323674887169153872347086471258001248522819985345115090602734448996869674674955082869931558902209573214829549544578579970313457628581499061170369966834185969745803861899424211391491528119262308947502787356935298381740650549211457465411999282459641255388079291403233966038080140569610633519390955886455908621972067001875839688346207067002117378108011058697382811271690362236667897043144226875116468132216348289957077250673578588301914836685112889965756168736170935192848661827307326729149521692611541627868029240520844990485388371573359929020158292208851956906294775308444239912834139870299591260529851302554208271470139404071220695478817913217160965496449445679638858511585350072779401034118938833959522492311534105844760437717394781423560016287720745507740043987716413463648661863313929797980092390058999239374220174171673916918420440608190620061049254844414225157733510733107466048846807829671791158483194495905698427150190791052271145085923944353764215017972739678909010989329397879363592797517438268949619242458184095952979488951454776460059688573464970680773909766364625949103225087002523046795277197558849490312562528172403959057762110199171398442781067152992463251022631793050119947899414397892571256106037622699809602555211109114133150863105340802982395909599120793484460434510876380644200586472910370213336764246271981340898844889097978499638133504368917571221341243453270203234958924483430738921716446514934571256264364968134863540980966345592640342460878999154160203191291796504554043178756133980584608508513650270043376539094030767258658955992549531754256799130655669394116740066960022494405542787610886726754442070574586334449094317702786584962616080407660017073021070215604264329938592200908899042517240059726112160535483740157186654917360676398903120831214785208488474857867542620625802448469486621143481517998179883476557589745826377314872648379134506222582778667862601924641943809523233211237540705882070844175988228755648353443543275461689161468909971906800947951631687542930977841698282508319132389857247015946799694055450867174116561539821128840357311836164987270133222423566272699482574372792757201572995316015199038101745265021172664143545360071841962047336483943348164593265115397904092936485569502422107239114737203577063904659687814060274498783490986748196291307795969718056860307358422006312958017487406229684895366101296857903808970063751532202778377211821483891962290503392828529251706275914040676169959169892236061438183961458980729557506652474648357924767114033314654527429064155252864271795575701279060649535288594947609817913300879440537837587116057963935904770787943574188467137354089893638178923952953419053177238424763041867225653690778607133601024719456700458897436919031367225548477611482150276170045351303217557010180810992252570303062141088851105494304253946668441675190930266723217179102593510695556777296047568232091262231592485694796804534337870999287268033333124016745115514866687104996666975150125170387583112044765847074850868334521033544410889878963175572032407416739410863669958334454330815180326866888664564481552327427708888211586839920038250938233541798110779105876417226877677485248842620936790889276398186587973277907484486031546902069160432928024302988579072649359319240148210907436764711377124062746103716243287000558951565293608049046366195136766480376742456359817286974340990495245550210041016646247613863232133963786415734468368940578908543276293596937248915570308526764413592548682855746401320263338237403211609122630195326731171164157130743170540352486639311929436205346931267236828884235591031189804326983541326350885768505597291000651476453221524759752863235125368574429620782377763164959482421018568468637307578042718844049594726963225727950594524561394216148940006819197018314035421593126029288183644035585999074357771508030830752175886838725116053721030322727671811846119898131666330116455213352438142238823671220603989336085844138764603750502140412906714760765294213281736396086414939703290160432723314454061667625747184752443949661866137247780057194308640007864941485595982170789195967966347298780324649572407745116361616342142886823168243718528553809354033409429409292907044918382530671202244471197077523743692024239994927546864661786910933903439263896474651073552726671003553929699276279141822445988096562645702618982390260041774983329183770466640739870423460027519885483876034911000038327191619598497868553943171087229371810863348774432000226457060988760311016506424617761958338642952476651391887533535726041026295833789049201023800925372095479123218038822018606707376611526664329680495620860359950773371373176435679645916453301470194255662327225896267231708591794290335771697388418685732132697270749639666117520428406553435264827034761551775284471026253939440259612309270617766937066533619487193814990288198205750534866089543130819466200179906857935962510097685999021192122351483329490847787989879883458559754763632579169578075832062812840795709494546690297700413686555287039099137503587951638341969415334204561374854440165696738088237889015617885679145945209178287551990601702087328093349022946588970734493110250116379429749564927104123211800565278390636408706977740160867119113648431120310224701426087212029661444696055739607320543942038587313664812999027287375615112304328681970769393631043398580758452212123323388283811557106511462588004474419164724742997932715309517311824419189913980331734019617191188198362586951067397862694949910969458624362602774797680486424836724496099258962327780005966116757604978720521326679904959931728483838373131899352958115980758009367345277143940333097170655301244263657200673413892545483614184443440295031493315304683929493492926483201402968050008138994204371437632486667008235979387957179897979515167191214911902657282712050772483761349252601876166476064713375660760397430657199965442490976812606747741835955759425045643907243480288495240585791654477720951320403636778252113990827021123399019575377671948116167136394698925754713053901232308363396124003847370122701258307931724275125353697857116684808556742220284211323669528038589418884892247996747032265022676742056941117493422885984127636531261686679549268982840730091772931968218400498939805384357235331715744539513830003002778551096709640220611794731665133796240370846161905125486246478228769380395367394443641583621758506878838929139248436861699874442455896231247424005982614336188055014097029390202964326861041642329833596766547489473195703598414463568360257929725089004630171326836763681212748633619203075958666074656407046442564326455727212264078760032463419193251700272344630175275624062273740522170987552626451020830164065316063139804903767572770273840947996524238031675662666472639109925289180796025240750511815055770336758976606900340742791084218634327810274636193706296890856194376325487519548925072047992468365822672544996341902954776519464779951134993027297699746538660118185408946838910438110410944695598605838521701411662008281905159801559414898042636142553438803386911215876547714784200154950319849426798288449054592548524601650153810478784950973250240009201282528747777691532591438856331473448832066747229610562153625504538233507823064639098299943150362408110478279299598585213988653049395481655970755534976621121359797074572016030551895018410706240930356736234697139385122301122029145408354044671243182896195178917778281182493630371925266047777924074573293490142449082419853744908527225322176955903013489273526895090264672774079038331649409230248948107582132097762423263406928794905189966299756871418951141179179296666609009758304609107433355900087811033368093033684400773134940762546541913472602862202349650834594271104709386375708487212533560215854305438782498880833074934979540204261649704176948822409550148825590226179460577252281726623308663306091541795051306022104075782170794414734540218351697844567086693998115151245794155297697419763819147021566404345848452504535676425752361489081370894201744284517606268953822275512986109108808930655032890728425944146468988137420974893370118915452122783380394616752132220642891151241211382965252207163237304549307272993253158356850968366021776331504363719663907001589517190452821849090473789172501148331961944405401126521779943091134755041640592769589140668738511977502949899040393451480706688683845669857519536527595823200108028684673381872650967405585228500346535254538908510683268580982059222590378819033517131753689373364622196990334952133396680012011992628552596540510394614197014888940197170678354069536295406094953019256421597683391513025459134566126016955851672801319642896128302173552782243795364182963055904706199231265900408616441641074995797407634901702927784898917912036898447967288084756466129601256734598843604948111643383383728011957196636497475711417889713895777545836028349546512342300290229849104625325858913429998527961089437924891721319070475872195067487159888308550924941787435140775498370467389076483165213079939562047064709510270723394634397342419998388705932861774242406007672790186285238872503837803416990170657631627896803095260311806201802770036669242690310407757822431807055994123552355746674426219290728603340150793122073546974760785823037561222336370097957900900626120500983797427428688887871676389781436770296367659010725703223892990652390558362929248888958866455686093131455919133655431094983183489067988682726193791695492310021771843753122255022744003756818002006682241800230482708907562276069676820006579889567134151735767910614433928539341754669856225642482145455892220329231494722756799913916786991312024970158500459150714866451088035461268170590480990597171180782212871070384757529209067404487394899883105767181458854314127426218743867563891959792116197840549041355328450414457083296363140267030532431643976102311630796315607652610705381019309671973400759665876666571724368531212268992615506634348352100426317673698955485150877296959700237684463361349044083539113894795539547059263541706492704953074332035386231569429178641546308907824083412354701137208383598776262104947598185302712624833610755034040872390570462942652723726335922877589014092808731220730576398150835683484100999501553960921322920196642794671184791091321630172649547924769499292679201713428610855169242400072459172344265574712341479030438036077295278475702976279451313788173878998163338789443885973266749354009672564108530396657591065124790933324605444948122422983039095222230347261845785791869092256530496038645864224979769184791862514716162033952132739582929870330605619435192064007786115150944946915926400377949652994447143301311830235400259375845340956458300261164743009901293546754298298392445114650802947160172991176076234271590044679888109852467495660291236146856941281726146665280900457069046224721555254265215708910229476304199854684764015440140384992170528730526917587535266221073898967422591206838779890211426959462187668761784283933728879422242914851017049623884406349837342733472028740755666449931450182812993493106711107520793642735264937494144753411674080463766688916928537117196011665751187557821297557712363703215820868694266289225268358679837051434776256256168654692218185610312495005881122714567039011268061310539208564541884864005805475555893892037067447808896577591533573518543451224501277945747298192174255244860792950389825544404901836909539648407842738729773343715453085133893191231909215357960574320986116378452443219348246275297185357306398633162698364436409945031935653120130130845915838117674840747903626474086691393941749555725354363857506753252481955362572098750485319203679171473850011870457702243211082120483063975200401866000809681826363213772689037705004510035820713061266984037646909205948439938195549631256927336363764472514009715103301612930696086204786361801794071251010857606839417025857253787566660953485739041015696196856417766028329364100873395690558203486711199523028857156106907274809631006041450623811069369964022375542812140841470563968903197964367670341125004102890126839433363438526346271534650971498819405621142561713664212917058877492889517475797640103062970484106853548810273043834380688473935380697316555159868435720901927136997031329239080492219991599086356525836914154496300038007757341805142007771968697411418193343581629635698327149901296150683503679806823799106497645810645174779416761288510597927266095857625341167465388363729695531840203005056636788788080297221940710676527413762520299307184640504930852756224485648106775970759661224347015960379601334124403199057265227916902734451636013398115619865865566691710378226496190907500672782785245842853238624819624359135996715557113268555549479597674254899689262552708498056938982985573076796136026817479332312050282034211571618490076709669820001064850064278469284234447279003651017658906475618278247169885797483457630879040413639807948754992416784013454534193778257016134411449855177386096546899420657470441572572832578393963260262441096550024548062360939381894175108687097232804096106577088210655376590428191648786998444826231810806502641953447049398302955700854799681109359203089949915823505593347181249110759765250460417699212058635597004726938563689298026026125588211449453443101536552132214069340161489584878111193573382914448493829299960599918817051889310432990350114066762260040793488243149838565430231081269253128129800477669454498203503863569960853298954851230418873522877443372879193110063650938106528676212277014130823853146764536401077819191556380482422518227648353251639717221000019663866342007601184466648292634815617434257223935034659393133701661141295182211005141691046640187373317137307905672062739819179170623466213060255617684146962879957522123088274771098213733042954028444468637310434925837989299852783119911447005706629060462506984608936629470440658076483370268719638159247592790944633594772889778940094773594651708279839465018278768502599791385128026747025405983220887930431271747034725024545536768978309711763846181348468383767988964994703373027854949549032075133481644265652533825838911271813397374701087483271978452536466856705357136262326125345788751531830548132912387172635046626015888854832768960859678268832066314286178069279421853340917293040483728332819227178726749457088549765729988167973228805150865719682513244806957928545559539803742192133697541558955389748700246543411875803298115798052798685507764936161618378719242473752728046254387699929241911797923153910783148052373098786740183197052310182259955852187426691994628605551836660215552373131502869816522794039792664854042392636555066189698557772696967060767672888265158061464778118686951994931557956849076946631312345182515130312436993199438518696241356479197801369867735791402075348023787436957260216322691075144006022041383607585266406296752959386296084093665156608479295689250201831735612182933904242535684121824268859611896841441252056808370033127843504980863139583828020523603218873932912351928797195508895422790862052633201905736607278289899696303111338503115739090756692090793361100860360104784762440351798976296678289088664235191521206719316407725392872090285655174417705723310430376392331359219515556390748926275265008994681648399325637704171879159100441852850135266081047362040357000765419260504575400580349203404966862006009014794305465062978168523008577594015346624857211706338902540924453315248409739140736354194365949121863600120712929923853802678639014176057027570700851402379793749190607510991613743931097472098484246687255452495450671822090774110469962099022560614551897244399872623131756520096288744484349140069374129926666291754418931106053016841985821398872707941442634561936303660816044866298586307779998823050105326653958217056986515612033734461337544129133819398998090635018103046303594835001597621630653507999944686166228340050381758898499761597601838263363487588694164434265393953200893162311040950607050974712316872352357797999988251374173500680115119503274476557241091775239501029072543702029344429044079270125888427978106276261816211374936835917163028168809799601578893395792101390556394638758897518535138143166891347886621164557892104676360475192559202010873467932340940375082277265283574292089882241138139525433595291268208356887556675832524020742158240365609363955936949117400218036535359399049062994493662777630740383063691968827278592580554423879967961709535288231243100971056049142097225888339589003486483219347711949683922858373360393301320155003316018417421325149602969320825447757189201099284848487372180755806290438044611824757991913079184296131066284554311938438745640492365472306674814672040872593427675202853695462362409536285724416144669917233282373837052865749206167415033109565329801416303963539895499179855786723251284460987569164762554602757418312080557199382471839284597664794474344898239194518114214762634703449138743830516656586401392312464880331372246615319557612345396919174046313834194368749647179218167087023454267769606980380334816716025386844587592211724710195813723819132643309160662493164758917593961035298061988174956577187513495119080516188221084192129253807622240299070032591389066921218540455582234719103997243831776970171191822850855793153675655942223251002704555597424656056635475690142388831329644359887622508936680878260637021210346618826986985932742342376757637154236328898357704925093888410563410557354915392171581776849027557055360060001151203174901158081552263142893169408452285725182654460781476885308799873880491299112490255082316253216051355174264469548328605027856341253951937655907522230457724636551446968962847274557293502510763210052807844352800278310382809280971974706746220519284859824439154879488181925722340674759265096082925983425211944364302379309063464219179088089983047483726279025764543999292747156694610455855463081289548256544790935404991312180756963076184251897847359277205185792316986552545807524478402593487961582122556747630942126407047260458094011179048722561610840749818565876113226249829778513727129196146452779545861628601352933657016168882215898733205250575029184229530623475856517986510805435251645374264205585157401453636841963425412109338901245638854053649054043685709714835477378933228172738531239170329074867989846888658184000284223739304474663883003513081521524084521738256607957631929837989867626120695769796247799129570503254261720234005504976130610163789137966912493422752764670365679998802888928060168970377400461001404657374717942801111425654379095947477825581197050852781926042710021143100567725175207731537385455462975210202289538028348565456266917346155020527226332206525826468333875898816084007657719012417712858229328563171625933761095878893173065897208540236904477156507826844569806761271411633048825940937727846504157844141668338046470302424319191094563728548147576364729368812678161197157493243695850970304132593307136496948599354727421341583336169170234215422843874785186129722114967100305775397213384886933019357198729106114522902956734007879082641146608530491088596409576690247135194900362034246078605441303827268060496931804449686056250678017256626063219068384724871203062262285737554860972169923286231042259446889461360641296276690464636933737396107397718426323862428120017692079536520295854514295419883222239343791997460384526698462965069594646034995823156097038557471484140026876978615174295823033415143391574532905529399992245411774500900194411725554821286048702519978061394619866755862921271057611076761294145374290841702104800687881319047186523484456259827628535124042794938863706892360130389512551194279201477695396380927294509077248339937334052646136421720659395693925968807896962467850239670960242967476465561352544459421870438988479539580838492128155536487610658726472772194176786861009662640731931972281205389707055704661674830840245912684434323071985970540089972124000898998007386400342764047448685091600191476517728611415362413964133414188428697288306611914066325683431609934163705702056893553023774701090052339721748831742556061705586440405412021528008089195073413866741976564103019871037668121607383356173862268460212725290131914326208639433486143542941576958728539554954778357283167721459218406977193736487858846627872518405584251206114054045098825148434847346252571496569900018762904747272184635078150392264691402034420718383461489982767013819164906046769793172323101612734296875174854919593402777598633089992374665663172556234691367112373092643799319900955189459198978372125751905885510250376577633168498856450353125804942345635760762398079218372341618287552432182797535067432570780048245073344788613810659719161513199227846034199920217657682975555553063429417032645959687830155954942508920653697258025767778238101084466459738802063999570459247604560940662787920495456192874587526874197051981342598123930693496376954805161083452649402705397294971077787148036781783667920765817520153236392137411030321651405354558879100154355698480018324387961450200307249573707573131905890027084555869712634161854021355553431967838168826660229633564253480925799037454466448634140773940879070713668008018553547567014496765452452439124721004447229542790374852074899190284744461015628264386150019407492439588219313526489465643043014038255212260783940850900449318907428532100092910423473941477959298290707399111471346035061624709481259260836183280534577280123087139127708928420294918541724083842164926904310883783848344642398129467076495791064424871672634789731634667153521470742702109926081063351526614761162167450000175336051219502809018229507950768807087816429111535733066084809638362461588722593021782675833700359949447563935291693877892094557653843715400741589386608194544285776062199823839050431048274208115329362961716839077615617858532100880370677988392928266252305065005055125567085533859707230403209612448365976780843214766349525508654021444045991634968653970728819204092584084929997587837186804173185276258131928598457536139712241772858590469934849826464318122195615290297164099362037836902138366508118267498832066940954370145431295882361760728603353731039723935402135621828763351053157584356824255724472672027033693639212007669843861686073478380698841280771056384498708911337207589776263513350096875310287854636014037555884188073637189617372257363346166121797523962073463321580666731475961172267275926559384567197779440782259363163435646787795952150662973651166352156798352569689825818964392376950395451366866743375791906754594823062573850627835828852690866471920304256890215711006257935773746729524850506565142215751503153011210701847302322516761110942090366654692933095052149325215885355678428407790535405446829997276838621932440912251724948420954028054682638122276464163654013548696694284870708705244143369588988459957187247239032725043527071697973695102821701573990681684655929098361958570072547381404597863028166175027088492055072307835760620390446822011824619093908472255126418038297869453663710466485980808410277862554117291998937228451042457629315947190620174550452520305341377117893790015883611147563775195252453109237527248103474937642785687414568076507100777059749064412167554300383795029849612743809354159732630925311095734113815912714595198135965160014384515871762478502022224307046270841833418405278250749455176956445901549617974808049922026540844314707087123669513624015395499210668398973568353846438247786062929573713698159131926862515237236969124665518416282003010061240614207804411195934445884545754437455067923914039860050705556403259761118095311150205307885971878390114703440602486281648199549254361205988425982371804299113769619150443155903651183952962617129877792052162490062843288868197724847758826286614576996735330765064078928668850760009232122872796097067533876737150954360564358843108920123926257793258099595987949056250023067981070415442350111287658129759636378136950685524591459715397572357207298804141682648895665867880347272075718613659554508850624342546042740849348925401548523741222733595721008593164209942012993205769194323803834000089601991900543474640588076865637029369262077351545607894660796281493092870114508886610756991130771169339760239722297249621793804396985156521159124488601397300898457644021030268769153645367794020269152401731757190605692423063274634121073320661695001176823353498858673791362065284148492135773835736236983270881560763148488239814158368428046083655233140523069621641923590507134486003672473410356433393536473497699563617510281268429403131193616945355831654107373709876032042056406858561078878080418174914685522169739372344421399382965296657819275374391419132758356382530109935186204537564887883385513340722747108577347234599044739787462814977251769185265658423882523812413027885169362539792410538079501645342593641463769272449406576808292934104130571586295091904801724984861008966563768232541280211864702629280873158335236558904404284352664785217046591651095961736122816993209534091320955295477297687086293313227508827283149612193172925984160012194683800045807528731532307997212827013322132207126935917914789185703831591667817730603407957285311547976016033344904959193182623755231050965617507271653524685004286403314967842009994339221964372035823138833743573779110297341422045935010437369407294028922438642898081415187492600483625976821030052592079795761545750661677643213407667685954656793725771872616069915932347474489648868470473068835036446918613889518187829768987799220656173999359996698422890063891934498270164245734356545272614243778416384497926408582378852003896204158643388822839323968399187814383981197266592623484702408286993067609739311593570412691450325776534951355621446439878724823755048187706325260160290156810527239339029016081095195783942247906708002385033891295317577123024626757759149222324671100030011735915091899096047695975177498335479348146695353494109689305790325218360216041537488271201867524272935908481304738888110295123938017714591896425135655475019554710843996291899309722489843770794166042091750772566677299319399760538474756845711305647325648131598823764586993127296421813846398028284794827108930936866710657481260392000675837795315145673465627447595224752799262934572765482578758395624805023362345514102022730271055736823605921555780446314337262491091708391173205212132161205116795892120564464320694349283613947651440078740748586138826793476253091960559789355517994057039161471199679944789249443890212873085487912642563296990138034558759035001510036001944626977480838414009272853643483667724021895851052538656799228614721914740372486349374376776532875708776462949902890238577647450617697906795362356800973750174965512306567945172981222186615920299303829508468172735792921599535528557875753886430086872475128946417357368121524968436785859344451500778987268814860374239699680672037908626670134895976954116670600875406821651592549085857164588685418197531721992878635744769836785882030751669838400548337944422037982333108016377652410304623329029676383712165113854111448061926929840010286075628577640783222084638035037475480822298582937632023176347324149916899962244311720996575711358006734905960234954950838428959611377647097452342303562894916370327140293346090825760798172343283161637864349149288365801261157206934931031154597393449412281404426105331072863690973857575572179911399342022433963624663257450177862722881474767628451937880146928718466008634407507343650335386916621181198597560939981568703567390333255619064907772568199152507766475893229835560677354887690974035468141141892355261602078379969498587920666907846294373525815744894231845282093134684594115653041406303678305409738465769562226011374196366580095137262120938485774006451208273009531672328071371882625377826946237245133178325520249520743807161029952381785425765876110904128576686249023565197250134393808151615292727548714104585223111312460822298289431447383870220938458095359904181709591933925336512468187043467336017916597921070596897872914784806231585007459085562142948152356618920215339462077682066423906705862607681806426639185035046197863489191272970043789674338355695645849163521301608724509997841457699194901187678030342232177897476198387112707692082292018289984799411352452927662240844394395952267891796362300261567795773427233144083773462412883979621315077455469622158514597370241374595384414511565332186073192674256788738046834505037763361292428558097483964958797738923657528601715347663650821859536609548349930868391462654931317140607673222740096185106211796987186423909972277735609900444953936253232776676909132140825649106857762524445693747844050007186003040559826519219585685848934231145100712147420864219751810281927660050647070744392704379680704601450110785333226798144531204047303612469704045085915938674674633713361578989695479510061909375767870461008304090462728564028068006528166032412125661566619972340898225778671309956903811702504498322142716184169403575687255834538787308762075196612082465366748462471924394559339726548652589979374952912085629176523822563603540615311270362409939020425301460031200986017773322822127596635769803914410269146558277498053892395356402179804198897314330298380850018957551428580105179299345178591615954626991283315596221871710965695904854546455818114987773320102185753342869394991023043279488945030077557253396232818804215075709783357995273278475412323344037137456841762813825519224523513262094202475855756912670504153249930177921852663999355247304493848755313423853911821187650007970345502366408025633831710202201592122183533799018636439866826277636219057479022518711876569315623430994591770854585561004796580074986430602871808260474458726050084590242390349801580871142169866887001039155625254842564947212934181375807587879541929272138412273709668646545595334327942393083420009528621190670012875713634804657000170040187549489793025499354163436183696051323483074977978422759489076415448126523989630527851056883632915283792476533441091326913771500635925531068211878719175366179732462230195268115193358573823396955848206084708869114497313085739409543517330065135626177239413280569328222193846378249530925195044147460040210996002947430236906588391520241912976724785579840051632146998836497117003787253201074512114313526204668482428760689657270303383888482617939101066609722304416966945175322474641167039891038661827225082597757315026458970191476500638811734659504543308912805215520171910636119680679988563750579382480281823071175304858428337578936857631475633217798269803547895387314017158941667882099432228010065963805007222547450579864135548386765900865683349581890343970166377298673869819390860341356699632640165847333688965102467890589511571939326455120852042547989565126368108088526035340401427455718682391119478255734011553772822495253821501452849343308348143097291732792636617734229944698405531141865376944487685861686586925202141429420800377002225210676427557217545734964891539334149440207177481239420172323815734802633682210424395522455815903105810307523483383657683081651972570795228199537244077132636848233072766408810717821196198188348862965307996650236989242823796238294118753590018491333632733364768086301607850647264630024395298747593785137131024615266864823840654764400541193588943465506087246497477384553994352501672807979333891538451950747938615018040646615429788721180843975467522884221623864315013578841748351450804531858753581364706521459330642702787684823053538026267767914496789127410569073914555027932884317128437836528842541249600301595397138634049353777541046788994948973321674768092179819524585831511791062664523045968450432146529112103673585815708054830270507944127195705861160807244328172621622567683427804773720737273303468992291958882137183464449244855500081313396552047084073235511765988890540074626660724873704782376736297357573651987460459906453235545446435018961769724683174228772153103637397817510995601440105946088980288755638418760387033253575970018872393275491014173924916393743229906832222096447977941154133556122652368105064941418716553913837927858797013611464565258515757045171952061015210632794627376960811540285410911723567677108321855721041214773751202604255069989972953551735369697510096832091555515401534134563377809373400332899050249049561635346298925875372139623553003333960212738908804043826193496874155145712175522725302715997033373748757540916489210485116705389635250325413305800065376843401769399196881414945008423375338144667866740871382316253023347586046824081636886139354091264769833137193573257777116591879446361990733785551769579756162014979803652133819505691627544401682270612051312328006690298841027876656972674620906826903171196096106241733049570965638512937939277695037252698747284406024773623954463872554115541876129973503707269445358690750880943641991052227898934006520520380213868102408463185649522689158146390697147626301026947895209588913462213950603166558913622260987732809354773722201975462904345306503840506556034803366059215453600982205708824946932495046133445393661668681970453757349969651168044580673082565049590979233285520931894737705407699804961368665641143760397225431883638258318592993946035507077701163695704230423426987854621783856200078007411401953579678550619077428844324976532881897131065383023388723008554427835117706386624955244989499118521732326014104615425485904918789386571504814697926857369997850430444175402242462535875932737114209551743990091404470450422453703145445454930287880183319763073973074589192117031805282139993003524937964080586418955306342797953726264979758817996629568124027737695578674039513899110237086652061263448954462209621799956492453466437073833124624373749223080762980189577169221257002900949734589101770897904826211201313011435352626114791028264490349739109151843496011464820465872374374786115032525729814257011587143112763603153160658088318387614094428319370018279669886156827406579382146108872608069986756651866149801487082892884117572365450695068964870909567720539440677082471892843642726864731882182696546560728980716471101629834982639313956048734462021335235149756316619780174351541131078079170672997460302726036811273309082025442028139251504622655216023330570402967341727394820418688358191708691078348541079767958660734838848675368732796662945133725314692959991448260604867527063932534288704060306918632142049189914342108235127524291866435076853245016645211006634983431389434904099706786406621734324229368652466555995595900427774637633171982810122216924393903933089329529599205016502652396830421970937026753340267979916127139153014223805400395021762741425965114440484968130670716906101703503391309735825919829920823733726484805540526451334199189797423151674947571691002832309864680696444950418039443212516826275765417611212385556015923262479861025243026019770347710933389985347046713312822969847279258417412616275061664938221613651225038533132880585638993947392231809624605930842276517219702040367332702361369455423558787997221430237123740421408425759642452504999371636338085962662420846486532772390902809618605633981229094248277160669170335025956533574708928652840165074625254209677619045809465353664932601337398033623583667875334605264550349259097093084809662112456499888113554820924404792811844135224267560505226228079872617936033056143989572855888932060022866226086485656859551472105199133185459017477836267961253487086327727416569415552765454369641079718554849871843086864895899913309376839743642943095119425580957771860019924687410946640913355207356366215706614165184107313598166243259655754278339012943894293918678503020659991284955181481788048043602725513573069406099392776230940597107063757730608368902045888809679343194359039048861031184881204122395376075038522318500632196756581938657445159953951114847955219264149941417064667539188373753989248041079934138150374914111598569702871961162469272155622385134290046648529420838134742525885990202844138624149401896662234647058065849512747561592718919523942626285691577982908454051217043906347416465106585621396818211356181823243511888952208068800264068470598754013351123726048987909392482487459004780536186900234280494073975066917546581499432879370611555192614906861332393171844599238357517596082724266087887701945311740995890963453067566118876675628170481378104882927561225745797556657540976465623872367559109393375986944977447550825226461553502834974476914001252382738075571438262414266514280806113673791988538160686252638460538104967260930043241923424419169949787565236466345528625045790090321898312131888515914875391882323320310576466113200186035162916966782281291062159823534453226038232555319205482742134830901445438236315612630703336646470749496706165132887044989950570609458886779353570573066433160954227464104452108882074345575616870098728808052941276534961532928493170539063997199634838377464340372898436393726049150453217410403548931651647445428323795649655557278991764539054356559345310233098695302904513648702659363041864930753872146559270256974219168018869004176259974856538139883929361097579032887086510091133677174876614986534795420903055299371031596544690177025621936817078479150654949974809714383958584521643345256638328157303544445469911956294692946202361243282856630802171374766649413650363739805366423817285215704725995847807132757704510148090999490640902248195071245644788455646972689876884361174493945700988259597256047370462001990615756812841844336561559924005112965814595924041366103903542409349686979371044117935733100687484208975908074034356033390394635414982647712541487169011520244821670252440274451997565268341655414505747137259686020513058664284708854318153736111375758237566559389989581095965464513820840111283407340248297579591161944645406157264491757665665640335323523336517870540194078232431865308660572018900195766448742677465440178556188686891249365059577775037911071128212887931082287695064355246651566523107893226540379888472124889858723188336986826502558730963550317047453198691878976112191816448303332464596459580001391659560130056612805737973256468239924307320234076102561001710650642718355197036331027151235377788808146955723200400735038370345288724749629058809647390406640720518985804499382367895355578527875012785379015398321906210807879838433600983742738949724774039420592957729982815745376417068093131625785551053110985542046985548596334046034340061526448872959029393282556406651017672308117268270373548095746926145329172780762839390292550204063900548296242856730345886002193531710965117813635863298388992634595872380833843301056590275316173425342168180912340373406221635002216487297309924689459842577258217763929926397085432957873971346574235363104118614610372113358621597934393081238215940239713204910706787132249848709556607824892828189450093419234828448592979619437639075230660919371360347467100826601592425593638136104296230371691972168519059594614328821373641392456521452394972164064888394279206185388757129301583854711611698995897858359837453252871585177959548745813145361768593013473371552268186046850055079358864407309434648508771760366362619318672653361782213964676595243682426281964632220361199581402630284391647447590548016259204434648553807634076845709669864364898906889320270036686359987552013132320444117407054420440440880894651324746587605030987390514038687006619747805874983553865963552548331738874159221089662278752550104958552462162886742054508607876787283460387093756522204290844855804096937773356241157730274593176601957706957684742921805531355131027993315365669121424526347636681064773896643582764566022524888397959463745543679500725168023881096347958794357332717309136763007636037578452331897932990667956211616622787888471368765173447843898639827850819230208984880631562695829479819302214354838678840290882389359031751744716475529220011862365391608246642456841455868126598585136893613316048066056084992346512245492955781663479170277141253886203583638958428336078186322114419543666487869124731446214456218123959339995953209387617079230785306832925573460305067672007470670559825528268443790941557833247800175996792610371431061470002406769398444167932420166699104683084881543264307399437109889498880601801381478167544367533934101400134328264720311007411809629872431509264351272367529704660580258451728338007888485298820821950516843550741333058525535003081380426139956778259498490256150120818151678376297139163161392635693911254413223689176646240149873009054036153911899257771780312038962127611675049935256205735254899662724344469204990621546707229533742164950548305960967041988055675806205594324821485684837858514808585497045532454341275274924416502743904568414979068589802233362201797886638131137324320889357505165547059302503718100097516564154064137517010444485213366449110689068878513204669484442092611448367368750509804077611443406639760047099633259731584016827187022208250037574086004448661281376389310828755174165762383015851387002403421966024776041802146717387869214844858510507616800697325858956234668325775187927547251117237637267434600103455466267528105600414836999472343049664424956892866555959575133665297323530373270629237071615873545018740896759701129890558603041123587387015383111591059899110219341062693236874095668134157702406457585097574740047409500429479537929114627915106073451871459512456794121205139615091007105410007735765179095951173547949382366424642947858463721713164706336228889399043641771122005112848272181891803057784488586782029030615744521353364606930617406744291442347051488238865877421341985604307478297901999217592560135914446400182666774899750783331888509651606052951464879137255104019877021148847705412854215298130375398374239320970960747987834930448051585608662826241547059974459196441361413920051763902746441638366898467822777296349305544845579050914686948904557556533951791290561882515782575924188563580768397821704058556395821072737872098570351785535424259480302257467948604478707089324376953510469724549176041339742334462314777442534610713665822156243976876274428397415137497641648025363587345805202697463440286304288863911922504078669260047171492116125567441043079352593883792109800781514933265530599543049935642819916789640485508782999247857448173709747962950130465183489546058323920144696600311268279240405786027951962397330517752929886380260540771272008907342243241823087537718982014539688324413522458750156782070550717885401702669779090272317306003293103815497570261153981070551264156372168819364247316541304471631113223576831435301457213970448903752596163891903914667451716699485081864639679553910192070364731783678268684051594783574665416257653895789164112845144881567291259146507314033523586220683816542175462109942739830377340249313885176324978044158158684300828259248352329975628063085825465583393311432646006040541300273271807966581737027033475810571206841305711341993456712432371010808132834025635413263433199985534501454842443794774773377949224538973015279857883573128761409246931433744073870973232800757987708932093097303619872608299705038382902273530758703709401155838254616266884656076294916830280370820751573337373618138207246562732863095939120852712776863564841977595234584932299175422004446235016536116527021937415369089764125714895584123892267230477777226426437814173106664483481119142558486020320726060411491401196642455231252164088576085699860665980328621913500880926230451612181588947702030670988607054324906511888341425405856018067995778804076212543078172903185086969104854014088541250669262891451183493170658998594885763762923911834035432761174595970972333075533476584186642086411400359636544563864184722679684723771027801058729704029277274066193327296049940041956845048812001043480961007670330826832022014410009475316038400813597323566049792623019095109058181357591524635100671371271043171519129099320182869563836449387285881955586631843003431810266166749878813537033838619673949275577651324486748053632720617490247047926425000736859564048304689977980701249267928286528838072525322261749569851319352493613585558714697060512738448617499391468556230010562110032864491309041452207795865436836491894797248654280016919704072199202706665006440043580836302482675226302604807426667495344957694768255083206796416300957889762460358597359741712958849615261818071423376021362882814670525978416174244323237760974496222728248715009738131285146171028007389227810451867785593380982549347417739155394645703654293120586615739520476782501370510239308591645654272291402732176512222713173610790212833010366031087644653443011697027560300106005834502502226555589045742068584631918795399150070702231296360900500354482941383725661335881976425279513018027613383995955282729674664522429587978209468410096817486226031492115125560929236220525365555564578969374394807730322383523831527518275310391184689934141374254544560401673139047392957131314200015621958447503048846404748320883065915135309151371135099327438349952116754448875441551857291510786235064596630398897736913683761522435354745706701193557548056644608772367248641616892398467287317664699356922862508850713961891495344330298091785325730224828658012661318525990928282861584496284763446015538456564764154550202051479149775328521211190080831358598110831652117462108828934679062551363419857878336777712167740540158282767010485492733809939840423595866623169999708788673218185945388526618127754455713682353464995512824613365939203149813136149564201019111810886586005460545396931579945259352285565194741065785277012099191388007243510975361645320394694221581012576013747394029171896552249603522463050925973665899698745918554861051604452937625883696126419795371853538600664745786992546749462890190827987251953400673817212879133107505655299051341004175463696855661117141253999367080940218123529023267964531704640833845837348865321958911443375679859458925602215468462613118576223582992737901118723091214334966698139335401075943120317917005740110699679025366218331295992245639118276948173376897932673717407505824060720850972452442223981709876288063682432097013876438137948582621767345356026734965404272929597904765744645923473523208542758205299858857324781873047102146454199297020153889041363337930978657872502106838526913498573955660835935173201786840111527969831621140166953634429846805189088475793754802818108276450628011786332303343698887717305051069934426536700934116007955838351856491146585632181702323050738481979161775852220443005009618218255350907439992834574842913382238178734988381055951301144473863658313890088527891296082044751863859637543042408034781106785903863779736279275079503322301977332075436591620646227728697246438582211069067886350785523986416007806076525450829554309849572216444722455871771403269959149812063815805720765106040902493281591555876209882615223091299984426721590173721137937853201842023631239699322758079449292125102950819922094204944751433312295150727825839374358364414661759050052357425656847437729701055263876140229226580605640856354619183580735719563598872156045620419404197088394536380020997040985138834864682838716042175460802327502592822639087472596556657475082485557076908850380961349508832083920319498195685404097936621331751938916373084570165149858778491357224002500499842158542539892023356100345565126321885046424559535281068020838137532597168348654079369647266374230173939676137256449543969943959442715977095826586958934831263491685657809920875267087980619167192569191622691031338332172512676636709908076975266222522436142709714765678515954001893059793220847975824977859176000570952160234224951261778780795953386572317709622674532407241148066058688730798397420565032103043353982235214151203388782068423758978929239138067497786730248595088084098299709931703103610359622850286214348153104069144829968822212140801469435696470186653851151817734067668732464161367410079076113275541846391472001074850672105513980221141664894923486438690070607368514445987701281008629430496023437172116228413050905604470335093463170685708623610831284433955313480161212599099625220747436803596205300504892252721168928574719798360372570243822554317948525828203952109862930308287512792937407449471468071178241798226527311305418076690654936619768249111854770434134362701409079987458793892013256303718083307381970739936284642618402713705117142349429029121766707602282562772462587205277877901053809814444363218495551773852950626990432476250127650864209383315260459945616422298293196251590237215251183895959695234836421161409378615248470693671776674138569799465591432237497580420911384390445524223793444931481214485111742231385207690796715686942413906988569528419544579452739721340485797123423870161130022622586118345060395587290006190192546769012410945965177894629800493563083470363270688054730584244704722149455070796216803917374321090471209485183944531520033261174112905901405190338426225928870477964022976439027965880020129417412784869758018077038342419332106179800249570478010786302625106135389500515261705818867815614488907624331984143279198027697289608842136748958543870150736146751511331397620597859293926239204835578060965540690966470111848974220630067247134938196396161490198965720019603630516081649019305860736407832507575789470539805249211697528170999886445149413741503074925569179566728970575266292955065205049997063433263959094040340130613752958414446800755988510081879550063094245583412069863001125587636219835487137349081408310196830870665211871840557707506506140009457916858828026355206877479298122929292404417832458330132426095184084873573992131706707307362810083103634597297574417002268037168252299633290959184161363584839617207653961054999775604985648644974858424538791581928942851320847374100999506757253211770032567694799069996257101281139376538243019569584653754102968855029255936397329986999538052581444375824249023429159444957467384592783814594963789244679076785744939499718441930659117984590816839885923370556966929365576983651560217774787120058438232691562375409926155632069478812817805921581380120120075967126108485867161566787774906472388935492657763669491188618593609940346930225037426214869795780959781331598285992117621147969044229592892577911022998610716069884843153293015993760284482675464424971780444835376512732448763900610885863913339386838187567982079184453208751418402781787756773480706477952680364122346098535045856217824140297476353018669793658125795159458058140136159944126877272210506833764774617309456560999423510039172334469280107484048809603151311886585692273037068041046343462271742014678110340997177211005168694409953423025299183668715486296659042707005709289785406714986680389304020804081076991261981464101160601435351477642719883520267462540821315415486766618550005876062538258604254506568804423780560165917123252569316930353291677690467399094236649846180383278513796844541522854228249262499306149813681728926359532497728168957308409133365135488500871430638970588164996849816579000767103641946681687623106182550442442017283582065831863449472669233051342989465254269172555819938841067602945154685889805883202839748672193590058483202422476964842197561283060282845795062947926063511878522593729251774191077702509230555519207514447112781052128015396652731566968954255292239390067407833486833717785413546564039754368948166957400186672774529755464005120080454649302066735335848902138715718485434626920129904462976363031526573531888170060470056038459995066342198191291571986628061470774756313187825326570736527814375774663034287961618146498015311712256027894956650709553603800578750506635945084228678646020933729616696882356023025408712250131253036057291506225680585313798778655337066298734997092344122115291878250396359038967524763878928573964144144071961740496888995568666115093167921750364788898546408340315106712150464194130705455818179897427980137648417631054381387592272010254701433816412707414785552155473336817073388595447043880980337128985304608826553434814145026895127052574920697666645217103021956243337376419265102011506020969061967843049633618207989873786838379084612051789573337836162675331099608227199190927462575001009718982196128829988826662664656517353801943148073574248290892699871469746256345799488111038492688999526728373306416331904387311984774863805750358541910404561773000725804026091363254656384029647376171891686385415205397102390509508914687591635694492889139180587091061710785150065810537621269022593577619911129041870860305916832817608075860979660810997193386684747347335496580678292732864715242080199007953507417090712970292926775044839460439527307982841904682783325925067558297327688163075427190282337639867562876633891341077698422260932301868134575341598419247151904306985096378869088810392611362572386147775479073284259537811076183157341382949529916105964781247015554761708074885196897362826458225600656915013234873527174515694449440052504206061559544871992605842230996858542879994008126131674812461406527525802739473056553012601721522291323272017646347838038514065650072532983288933775158243754688147461069900108342212755426031598479635625026791708850009281686984696820778699849699169059016294058112089173176440591337288199640878226591909670401253767876632626868876297191248998584580296573231768495023550293509631680149301093722851386253981830271386868028491828733787707085763483525908664450243354777425852868540084969338817450978898164066703125764771603051030541200067182021792235113389373598127779358634341796229381117067613243540638375185340167328992451761874987972908000030850607455675171054219994833893579963112814156456612471645670374914665064730555275965903069101886282307559609310692682680032418724928400890410282402296141363206830528923100206584870572341025096248364998967838697621398128299179733716150583653376850551051932124095073896148803356980447043192429198396353271461345502724561749437196445690035853955969449309950475155847928406477703984757561394535808730204746859841900255155026102642393529656414851427057150914118047070126793700894385711568245789711950271035860332875584065284873290601798975007979566479834198026975446615893162892350627285536841289448682982333821614415459340197865675603874573908236678505908024699639528838182376777171291328192570295789500690300174786994755670299268962731494824009262891107151494934116636935070325545899742316149754430040733697499424609883289218542394916971267190598839345704461676065531845180126304627839036197789007899099234353775490159044835575764473427584231425170518264913876103568691943987569530305636459128206757397524672984469259745318975546157893815246708703331812671069143386583361996005862116053975012250851214887775713587790128988394677926643605204867058055627681265590172618006507137786380593447918205280168135327757637789062930148055011237150354431390176803614557339246608011523431485815959740854701225085455937709530596748624121855340083624149739634682625854404142638266943399108906498123008369227639305122176678766718588206930254742839623678410244957041264225694611705245997948621386541446219789497376903548584779878239519594911572077443693034767756181613979703936637418266999368852855968466530565959860004907148873767922436565513331479685112503954212126063141057841384094342129912916659838960179397880418651322433998504773947896787953405072155931188682402569127408535648220426355262922116526135700455033771493473974267822712728609672647401692119694332272192972678312554120214744253052070493640811300397500843600216982664530705398575998334633499816420059587480930470439334277759335784303175106243170746634953060262904127079593519358828014905019052494276437347939912274507536461274848876154508588159006667299456743515988660414888185447623092232161411885902552300251677048537295508173038160569470828546359374772133116976063870729051941300506919582565358847527462282919694909773942514389248272678580983291447844096853816116322881177326041271850350376998442385623136878820428919957259139521063718346923641747701783535861625150509279492474094006455187171842773817227425155788336977182158011128503879015468393119724310540190239230146147633350387600498684489418455318741069656369834070597214788341834402189076930920616314157887133184963707795425452042353215876100708383531402569218727163132101143394251763205415157734526047048543054243087491400501732806660889612294711117375874348056517801248063484700727676747702946306773800770578072851784637677647571954970953133107330754813672225410600805379619339505975859084464232782297346597438451674638234251450785137811608363482085820955420212012200656916378844572129499048090996236532005193688590797731925771765320985413117150884553757026383672807778134653758266603136735941611777990386112480411991068192551923392266628624520939098125705085280540341029498187748418080563759518595936863815876460522472357433992162039547272889508634585425618232304014458275353349379626260557370797024187413070573426409701010168164123405753071113416574121730626934733855648484700110437264369425269683859849136957133384159026576248831995002841903249384730509802853666301589939514448544694766088352596509082023846993717044184820287620340926638628727604740480094352143997703004137305595501848926983349957418827135599278659279917482295636800536767090989440048504920175943197690193583043336584981836209346079259248119167243723341859974788834728750436551871176254289012855166725101726362688372721463208332796786709575680192083919341613165438467605718296671228246039042980365668876301205237573080730951321360199032583471459809877104750545307819180915945894364928273749215173356339567853699160414226084329426650242904087654014531963495837628284313010710400807740275014796294006480729296412965068401935753000530264614509677140479959560596770221631312016497366549033912758076867321376053412649766428632566665945707080594179798056985180386233939794512573278724801332708927488113144020116600928382625925276694708996618730058204740047744267054972971899368182709672169625364563838834798004011891902137008598005310266805722435969521130927401213356954798252061010587366817930524986634286219318645173917609135533147956866095200224107042072910790819893001050393252448786786045696026986687450314277964851618847933287494432412651511304429581858691303661305796842694347759523842413886461118090226724438025896312487558871750818560590672284954737377847787207624707490972573476267088049452647189177628404076359036750368972161391744278863944402276177323077904027253094185781253051210889550292499168364121607876163584749201884793135967261403753380450363288942118300510378909306223701409920613697484168761723796401218525779019256991410705779976988614078952242827403483087726219347663585547871158954669951850641370458339120352841263415980732500964464781533264200868342809223556021089622749164110233067793875789337474387114663577619921560857728941141123722829807039656303962653794178965314515030074515295434762764127736520222179853220558203717749683066596628108682122667687483810310832861473587614463618816375532185730110406235068997725770485927445337567841799585745562085676093178362653526683294831735628886695143431299455705759398903083887379011636110412074058459271794367277351930684044306341148198761624700568100037009851355616613278569523983834634843124630810351079138058958175961211720525943156111529955762717042438159102589246828714887431559706793221954896133105501892430738418530941940017565733294354575921970287287313181339002768602164484929169620247876973352122421456741604902831526498615253127799610170933491400967413371921113295847230021805668381796092398557457817476577450869114429821539899248340948460980888853257846877630197385701380130203374012518475454317581664461751419933411048087850819532342842457858752546934662239486403099851346075078695752454769575762725379385710601715170549673763642917497608737227284391487527207502664675993573666638614039780361566864703144858447883031607797180096771612076072295340875292194856637663522352588897726286365133220717246742134868930671140171982435782775123523330734572582486650722736085368718036515461828562675289952075681460178047371651257514718175064770457486986686601812600672570788764686651407353900009088781304124893092895099705998387493459874816131703434478875527977879356492492804899360441242015426649921588340913430445637501089190546744786222754840525410186298691119338007256125233248806889772121080384488273546930815470723366748196305558086944359952106725659303067448056151034735018614776170864852563320802612382886379364040811191142186234452691678259247627552790476983290817970423037486678623541201541805555540437528313039982264103511725219998502442550542558618005009318387275080713920268473247314169216298831423010237594402385847548122999973956234311219325572598784807049652114833583944580381318064597763626440744991654100239616252008859312622280605980638173443372090586395963529666443245471251947487685077785390853790466196686606679541971121353735675366355296139918516595729318616281320190413041727215700395733913463883446885720961726986912105920028176863580838965319475615907344435222695723154296724775023064452289041924868245803610299279781555879558986948741519069959411749637814397946391339179509979655460327261648950792253382499639045591730116940765333166694267805417835222269174917042693595959199331793891628824734171657506544769424643986926639438756636674556848272772577931329673417550983996193263748477298252934288150093486181524305469466588807835716273642101858952970795883333316458817955247448961496194246415597407107264736891460573574300383284498254915599740028852666373261280488536635013617229073025976320664086230282373268918879746986837342345332773483854595080556553038125953987757189539733295851018199048925943022576352849594692088424390542152456277545982999534346787872536351865663350735312978979250615635771327742649202068572274557500256305976147747922882895326463701986420175761046476062106404398237471255941236502485133997101381969046807466563233199737696063050263991832617938383771434752804775007899939195453423723888026359520725051683587110322567289598512928452171475108369438375706922787626400334529003561522467036396913722378615449192389406875972963258736566659191979844000007236042113503220215435458191467178349946856923581987504299855732782016520153369134696434398441895170760860239273747581042390127496190954380125848827823396090072196807244409410842918490285891199110730257656937945068501480792651342648869863190538055051775712846468351821536590430047232832628601952966821254059030275741363531610621903666376148858741370333617214182113880257964403596658825824011374132593972269740225869373528932020785427824822494215142957080797291762250867166016697459867255723850375793745063269013250681295741414884713405683834644999315882384171644293038477180085424692721089076188785792773992375636017310562480334946903360880057161318111772746135621396051837977475253993827427536627794117131667378477653565109777930127368176543101830945482266334086408880805500346878971198043034891502234026055063967596590382942748109975094196730759986270139365085772642312431262407379691454194614497309448229552768186992809721000532331290047949758603481818148614848653033122464712327060709978234383278020467326019263536105863416684433306878143478080518821089912646458845423682076336797172828219603258116032637355074734564232733727398715009832722216503260236189644027420400681340378996876135036707067882606150482447045970184218109980860171957898720756966409748757419720054588247273081461204575640022235115672201824485969175465694882204232553418835050199962248382509665785240956842506242957908315811058924699250782815954208157889283847702594146209067314548713838443340191948795217394804858927211705153333974355417326994591960564041095210861214848489136380836860598783922977974230339829683301109160238639896362137166302753664303532853331448776547227889684465127318157976351542603917261705741969160473072499019609710336758648616142779827522601394802831663390535493011421366692538774015235472761550540048799335919014719586981079517308901163518309664976084792535496294425693984871731978491524773143482558669586545592503572843902420714223068103607624553899283613741366289371480740722538296737550726468722878327404029841806794770084691353274721366631925021505094728876373801733234261781867158257986654255243218917324765020727179324433286379657115458339671033032531840838127875613727286548232032861791175157225968584967864760961205612719751057089460223144959626477303722547244110302665928285042826695304883332140719820367315610684349667755954047202814453037109664369425184716142215310424374324069627049205053211043552859666050675682578244840303612740552240568726647312204171109977701402770280429012808796669708451380834653944396281839452788933955002271935364991975971706708339959809401524009780931726632151033601767854620860447947741675053095416326156695683969790486830245525651311158221821303929752468641024941350087660819352219542321398552681722337974818573410509142277719982411124744806053646251754074375921031633401541932567029564611615470304932715334944837771282735935143444759364553604208951672160243952782817118298381741762925690528544217080039987616702802169026793718841843028189238807838560435211653006732579956773382779827933364824530081178429663856134731364989956621341692024895655715542952822021656631831570794608272076718885376965448750707238114235612960359021045206240500454265185541430994022493345803286950175212535557275091692355694615472909280512252928721777011229919446448771192569272996279322577069797957065355981868400862213513142643014349144278202184931733649882789271253791057638961446535992676593298576563148893866036190665954041896006278708988504483377890709404911917257545786350524476486901194759096023366153588802842814003360494827772951876103793252036311967976378360427830608742667315350764170085757575046593747334826695961396717557262563463421969572887379820970747884726623778203424399753368145459376366467735440924089613597065494762577192285873366469319448298124388376891222151704644979143435270776096047001817555344774225306120122257889460606633242099180371350456026560455082280992015067283610611060808634729924281449665463101247062582640205764564282880116645565412378600943542328017100055024957875417708562886930191965494729819342401023630373836100523853332622389777989411985102201328766294418477510625217943222041765228602929594624037068248015675055546576820654991279415064180312695125629011085351875044811731995432802373135263725308109309412987446906731940337571640121396092583035896234588319678055938973136275299659805877192745309556927059643287814877207942990446390084683642186627397521978422503355178967552101992861619444510732608156342679608416608436804922808480718940035297388177394156209956837059760156108774103477947018118011510617266760017215681955745958105746121547483951038310460628223380516753305866313382135254622708755880554062941818830189922630244607165253075510786210755463125777436369347775056467693391325733934878686580662272624231393978363106159585094021984778646414214481237078378274297884965815678408044871316522986671113720362418860342450112799172327881776285323409186836114758987552303564373256225620638342914853178447768359089431488909684837642121008902286600082109929360837045328427142746840527726743484377337878245036234444533006499115012156541802108872211861882151374254848366360723135295904076928547675062697004405046500964118015804308984837864844190086693422443918080898880334863142809124222921897689518160781020328230966597684509737192687183597948381316731744107279768636478220534292517979481729649744944200975316848495090219932641322075093680442490172504759070721726333840091840400555367558287237351409782285226674679262764083321435992957124078431903276734431226473397443760615183085436018265184621678281184352711460830425842144375368763408575972015962135155058973488179240440663467039929237786754458719563874575249854881322164502817801295664639865033430260342894045236023065634401143750031297479857765904997411254527458079352006111858218625540364265109256883671872751078659192664046741724248328333433487510239972059636154863334360453989151722054928391510385697930335507350040979492831006429510535168406800074977183068581548048638279580690501872261316567018427720965929798597603356418665259959424830469929302696574490537094673137468937716604869800756565139212217709070088765093483370492791887936786377699844746741890065699156813875297728782930189612597603386004040505559297727281066209873679350487368953342077599890390419830889430264901427377528065660163955116729807592905542818135397944638983662397278473729453353888990183777317432285478791527127202190646979808229825918700128496720971823815110435577513090003566509310639839810329581781602584537843686637849218831422750567916044285718399758863703775363766002344593358293033785327158115472873670901645498774713212330401833832611550679592020852877981945590400880496249609176048014947517323363166990839003674626956737314092815327738438278237704056166974972400542051868599705426351423847373895949730576909335928103677935041006934569528643663644753596221905382637120819253369831743162400763757193293166004992825211170408431651284483725624009135737768515745403928859721963100255761162127033656990492260246349700157467286458741641329659227311404961446766678213894654775864429698110036134194858905960501547376427118208660984392205336380132403131401572012912803626551409386084822534885564152357910243503407411071795562773088381702121316139840648433864720309187635954653014583357627321435284573653137351327242886951996492173549446258168648395988827703012755909245701735554077584830567647775674739747294406614129731963487431416801225368490585077953103449532228508280001922644396429790642051302143738917793562796427226834273751982463418942326049339410013273658260502939481498164870152992986854260392538289951138840782357598528302309707903759035610285850271923962801236159917602516288615776325407026673325125870496314178804563464686159269154873590007102168960421000760532128831944416820975488131372704075627379372489685532297532592381416213699056415949464017258829088059411600374235089156413618182299827494059439539737830534985227886591273843651685792583191576793740655953402256810145192663812969929591502650910228118219897707176455593368394800319525606905592056288986177671432999513848608729519354119692812681308896156474650243398627813222342359551960331681881316916415802234493047943093657626519933619400125818448694945770009821263546364402533658150493565115430003328346132323006410627579012028760442282262022985700146366128231693588761305588365755335299900505517957613725544665855525223821414728129222807305030341921635349399037882999852463775242694742973357238282595254564109232101559265556345483960862686515217299801283401394930868736178516783745248581888982690797264132488014055676246634725724391992712852386460134435038726781379326732679871691485919770193059043345867910791509799808069763830585221982597540830240063293589015136381800315399999501272619674338132129216688528838462076046228138018073993368243751464135154407062917841911646313440972090624999632120934914275434946450332272749121249401174929467268667060133465476524001474356704622813665561157623531063063385584251768732248665735804934599899977718019618476302836124351025800587319981287464510087538120699322148931188431065418198837551664021474736221071969803469431484296253025881874872568394648160136001572649635158431226127003434252357642642251853618495868703506566321554248218410796341822217863822801687167021096536667902250253379158992733732524921670021240362928097191352200051733297956194601148042403780578363389758736451429968196041300757305802232765550570567013656160864488124234912945917902737121261799286694632046447134254805920288869550315218294039228022990790486476192230386068265883258466122130998324677885494068999696269740894105901408506652017515262674880150642314347403687380164511507055026746702658827687066119102069312260808056868098824208152660075915169917222270378800134762944923264387638014850570831725480012562161784803452572733955229816946977777328550527500521055157576194852853166136067773625952668666959372318421689379010075982724702434926412276818360262543018495308467893451749314573083769380624023875940685739246909208252176460657127222836673336837654198839843724176406481896810413627703192043693788540642847086240844517117232625222638668725924265854815205911170231722596650564887951155215520027527430834957902547172767448933487591018126971962089694072038864255778533180931490278274267104058462782171107006504919996055004307895395398810813594422985444904064905135398357709935625962567113412418675106626106723136308857028512313072845187175587055642233133722373752490775313465189171999962622837222636471961513543782395906820147979890689400073060276570680606430285225378192942100582398190253981275223677013501849415691738993550547581673825589883408742368743234686146689367848219347636617183958140996726760235618524636129829573905847914904562024850529490681416047679051132707060592005933892035850968472317282754226493961535808860108556821373047517382000527538921874847651181354723037528234143667168308036192195147851036365056299620140969308337783592817800400542302376944381429973547323839968350356730398672113001745863783216121604359156028814313751473971720265120326348747162291292729823105953889352784804549813654457845172125437271021969620979753930162462693764553014385932720779520231187406147331304625799816056151963180034877672831340006740457071868857909795454463437467864967442551199388183578270426477957579373089830924300415831622291522846532780378733487064212904366707004431012818686336841083479256295933884506674293971480401547475170816023025115587618966312321746085331963127135762411028748011636798718845015551268395323166495880118144576651259313855640900059533766355141254939799937334166833184831310012082784798182643758159149930500889906296142005485701319133150668572763271125137093722263656299472133975673589825210801200084373452394835136825384064718116226337008076199358380694722115911026843334804779837069782748556077351464597214616881995012500034200735000038476324587105393933994009071267828116395882541091935553262397462006910898327460356290016790642399259819420018938838929137210986863121154836438381445946072504336495149200652033861263613658988656361942701960935743036283097277279297665997518392591460101228478768859218564072614429427667146786489664739607183286757974371889431929964078842402011322232297753859889099854815680086233688050421093957655050053113481998562182320389741979453080332152208836893138067363074688668483747563851469186104246674332820492767753005124237784638223926493153720592012189852916227073603745424100926673141055737735974252941907884446984610726252469661388751523134594861820785161019420063600124698191872555808916536537180410410930196519110807381937691485188619187779968074328253133901144530370217137641321777160881377123182871932802901221829662543769795214618226434128671819440815935619698432256713316929067682595870565574882008357067000751470843898612250685282165595708754922044058906046834240516100971986447427142776044310232281447492694987483059369615849751444180643479005945358369557231043644157172653905539201413223410025223533308909247055623276973784837370304304061806898562635416642779998578310868839360396147471823136888693250266388523396543077142126552369195994855392948673503266994083441684850128542571711491449453505181592449630284465529082856569437165330359742468101623298407710148332797566176240780023363162140885769086085342289946176785409719945877528303549790627403185631080005967164123573531683813308913078007123091966165398911758924804525037102653040766660500490083054488921910025706487418209163589694072874868833886227674574133480864215644334274738793417394602527623495667390175417068809474340912788518054872498275177824873727766757249889049008191211145076218524177050997116693993833377620742496074762250523580629708725242805680998624385561381480567777096906700789762878608915121723169677854716542146903059649725992286927953718682154296217293945120388480943648090663295839056089642416922110387519905760903568388962375491370996947835003812667816899120472625241924144393243227582733324417515127065225443330887524085065334133769161104239735338716415643920286558491298675730146507510343972711708822390656902644413530466867482938285172654473334340098836336402437457791527236391137227392252344784279141841718281030132126069952854296917947196403215167769377556879956613245157148584769967452971778287518553679539501937832272939770795543533314215649488931197315881632107873400731492913229673179239642368451245229677680115755796516799323180952321624334789589012619694612181623848450773050278164725766405624481232657191773721451112585239498903522085190008018078247567060213253755774804855806270568761652668749423722551417678451292692710998902316155384806796117347854385788456863440680024426223330073378050175530719491246012827637615604447677187744031392509103455956612233686257430371966847209331009094409305963936534888298969818809560256637477981948261852893053213402995293459729990603268967798685710231588243910986588823199140594092087286794757536274566822158997605808662646191425975475361416874963158984959691333457036888752925909157370801922137414381580041708487929233093693542757954893279661582525241720222600731986084398853736109569963824202658401326829504291578123146919166303679920040892681102306339673168870886424841612350681010049958591560475871550236673087903492076487649745488343764671434504195692890870869923183222937368087204762050039111719104085818363367077965170169112855179896086893505977400326789315826309805781080460572142248260869281331069038568167024503324650722720329182115909137048184878005619423073980526067348422717673626168450383738775907464208467370367654291780066273350417202319680195517311827751664701102267688363986903692285283941722028252246127697907777634462623987282868784037580934571595738472015111750324906115551779363163517560179414905686515255113918591318522965842290316252494623025305450387702300479494397129693244930588394697343100844231370746304131860549210412590325371864347274039384695368467895986730575423585618028234440043603366358466931947542263473296849107353906549801271696893719057369597017419208775669526661606480965155914094138631414552021654008673103927944424682130252899404185950815316159244285802534362393422973157378286798553418643317998905099183871542208736631391146179185998453380904392403350474388002941188055052157801502379741421377439910057180219527926128204833105577694477184806891362696535777231180006828735634517043437260266251652468734690666219721291006136059966203418715355691613960652167707494657265383730048849747032539788236708329431731425464326408302065281155689270382382812702335982635082697675115069609812458941209947854510904625571235973490359426356725362520584708187416539534916515879607095853310544463203523683129206352984380285687444704251424835299370040311391340246794216414997680469804062157658561273158994162732606194352601716500341281190247731295554672248037706948219396198653249042654260799804986370244125152193651595943567136456684093171197167618450590478207668816041644239494165985845812353165415241015099029331075761348924507491953124727600186259133121191299655126012537529775254366618615990541439017164559471349330873937701107300196027030398015490991793871368266061400147430463801407197573532540220386491406801182549517441325625456527748649774746471446734711665589398594536381138414474103941526290183860183114602463548913780830076684045248970409350856116313818509294510551278110438217817381471353017967180618439343196833713261184939917942068694532418826025068246210750714645275010701303086826515096888568149069125803786108193424889165437482195811897997974348850182072699582845122923238280869531687700879040246888934607268261103739270126085518878138127766616079830880440553165327481369032345337386277992309327738802473183208174438856250071881854364927749361748606453286765603802852799932733530369709982805522601392165783075368501636083433011924689571458629800342010729287318978295137322974311354536824878863480471319979573363151113866058334743071263113595736382754643953779418861920379197143877813916185806266874566572121288267779077279810369989886848028745118710150730008631140137491684707454920885921268470318165919193842975073750477252522844748812227308106079721161909589438430386660747521590585364433897375251570901383347071737824151067641275880862050999612033579062039191587879362426228454667020616038407315959384327637888262272064333147545983239952876954577147854314359624198754556218271388038797008976771638400289125454060552577585527108821956040552952200388787919144214363815677393637860233842383273749215407945340712230334349488992506317089491753072959211628507266883371020156761911098884190297984211290621589528729546081178127061336698237313910529532584116001673409877125091722246362564791241071940363754583593585927603348322356159119689762337507619922419003537739234323483150848996466953994805326181698330174838678707769123901799475786508287755220600939085043544086874003802449006180957671779470332589177282331175054950819368529019609331074751458860849759859453570005897354679958142247547082399141263781935466051905067076941440622395756793416307001992338855047841169395386727196372529298205429541900795738741969606388957732729304888154885132540326229726390324042524722461980389696741743733877123517153872512310978496814752704306485244982981623889459341937587845732922538195315278585412844806384549511971123181129100221916628129350475711857693621290299925101885171277537847412208223503192022114152275512448083493107725153693414761109658617400133186234536668744571639751456362050611016042352537684217778515840196076873729659639312832594985489035024067329042779522870107328971133399965393830247753911735191034691430662720774533233937176462418630324659071279868007663344429736646757960760498244954052687084724698732457817308933181590582399559226453105643439121616582955437815658535366150717986193971239780192176649540244848089802014896287951278488536193326345985484346995001314829890259730426956121808573200996031824633195691985856615810444463177240744486820521864161972907999646442548275764507010126242163497845248155891565406417850725680972336686858877174119138271566284788900737356194246892035644391991703532037959471787645546481783549422705161618149595355580893922781098248976029065371223097478327838787243149295313362063757880768694789222248959006373534480844427482623467430121437087731974003449457622052330829614250943831577404700599927454459817103340819500698631752785560368363962139278135655418479859563914379810807847230245448411468277661316692114921792250231434091941944362684996626643605436523544777112914968634707985329951873341927330717290202188415199761339479269633817728087479819149739916592984346655571216984679164050369369351291524340534263628455977826936053994151307530895399781450576529480411512315258051885594754383435830914804267333209388651362363073164199121906106971333762694932332670999116338587750268304420482595915770623343273865980537196519919208398088005301171888801838197273223728673332332752001198704974143722306897354282554357588977638666046263275897907074095494827941523803822493206737627339175568419096707016480449199803100431452890555310385933903498585044623128611868052665859486953283787022857462822693890079679511050527955380162140822433705171814460219271980202353964494236184638665466716096606451049026372610781552578118747157553467616600511379411234088705929686539248351292389794820642209870633600015383658176417763639058455971732064476007873147576735087173449027283262316044227246724473807782170266367280837800670260858458575585225868536261662680833854906972585873645414718215564759349150944616999883008191496159581750588987781075598770600162830927370267642535338240918997484684334062215584673152249335178611688407788413810019872029764247341288896040965410225419424593522430965319312390036893731748614239144023788481721561410864609329931029158873980690454070161537516199914214031065852489850843195990053544475669078589186686289739554659810340095479899755739107784735889759714446998288830537566422744430501248588059896763999787571048970199231168160532697317193527143277703941753476353305561865821757288052192673616044874510354312725493931959887449042874796801079051996574962863293831082053478682013767121955080371165558749122503731739990096425113651552541014493637898338580550065378175360893498052648162804397165519354163100257512400417203057352748135607984931323996244081936835549561870586653191233989134634120267946689848338962610994251653645536413650800439425536568242013797597136971190873107698652745864093869905477254173477798645514597777739000692328925647124880985215533581787982656745746923746642138707036104570414901906688289891825054949261070611624423748285352832001121770768680609926310628991713337662151633338407793928370195926751897619685901953547960110646789912219563563387142806837758769506046391157865600599171521501109913803348420366416665646621103804194220374907689928537403689450925065191066100810739861122448452433484129399761298200002804068600524086386831326168821097357693111189576779531633942032009390282334516845250255425813561564834618284791762796550173454984827426518476618356364198763896283761112424810855078469646366807685851815690064912412504460571468638252647271580461102411626550025233166450359664346835466276916864917246410789534085412747169484670713706173199459124301975415797618742522595498312845139463884563201575662033309080583242416726587703588141089330268084002687457174554167937448573209317404499281731589739214144259874884674930171771468988471633753001580036225344956386405749051469227408624505836435306415245865724212343362257849207320818953253522835769614246942715397756661099282794762638601168794231204418030504256310684447055227445191156298464030554230176158725441139955691344618172709357081338775434230481366596091370618401123268851656349765256339815517023922980095802333128974489343513664585939466756469998753242870158715504064768400594725204390660452379981730475675408922525647442594516204392148957611853274850895487967340270594673149897106469042997567139066007929057385485196284983286883991964490052010976157461183408563723472311250176312181968046601430343321667251702384445019640037111191468085781678381692565833455196513748790172926281757986247671084779947508670387830067917171804382469190998699243179825302983124521034136567026117003399098204627255859341299326231153590889981587579082277040185613364159532320865216433372277400246974875536327720081255795426107793625907443409059286574518047366343168800428111431137677243465904058966865885066131267462061680635553108679507327115229432602875962062354597950820834590259407545212418667304106862035099611575393488525188964922212348478677261946153992330274867252327161390500846964653308419466849931821644997444353504100187615448423808624318231413651892666895038817041998516792347727608008803612217009242544645760151645554818653263807985934883982152215857746704960886111513036369824249846747240061964777541141372104407765288775226280403193737981903361172647177792461026177371371464714376045023075097129279518395984363913056505491094870477180193881474512203292479593087479415169352967265160155046414830474754893502266032378334502500724343771180631387507990703715093184346155941261265513432231705675654336886908458049771309213512078659250054829740071419042722499224309935533083015328480124474756309320769597008806191915721290108119403380192504458226729935979907122109442614373970465498804548329664311530032997390306981306230018912329738821680381427229076309555688930871702850384994139178474651198942712604990358317058401205540241433039016518794587382134961174110284734018140828094461616559009041253285126435425247705882390377614104207073752626694058035071639388594254910585030678945971586258856323999169520801980867325980485442606664819979552735406069090536608503646003980545341040989455558904269880872500171507976789129471500630762161704792965488820112866694144488697082096809385206445434130393610585177721748477792021103180084328222849446808088681506809527217227677896627508595400479266836112713899798288652771991139163113865554332016806373242760652567209025255108188063325366521687866601072350170032743117821510611493762009264492362116361815925576726541505277463999637656828798216487303271709277553870470006903627692876063062048120429744286643015556310957755910834983746270327949196899849321619835852850328627964885190994712761232467902216592085442971023946746576380857840491043989893180320166919213226038082191646956287199727827699138212338877098097794707918070145524580571583722925241141465899786091288266264772825741678666444523181468531988853093351068733693956359275009306935424905042597110446929730907169674786590356390919927528995942408370425062921242034190670244759389579256965005657055363171216354288564233387055011518729017895946824900036991875149032863168773697691377045796541863493448551462781887587617071972521574487686111165015510028193473723098808491840029401077137226227706230111988519048846284269196727353368971270318192025345300796685720511097981785594835870776230155088827855657581600810476815023720586043134648153115507033100402885947175528493336189928849096235534734173622647269444999319818318668257412218360646061284819535352730975528140763246348503250571381853223531577543332206470997305911525420898072747072529063180307185622479130964576142763767602228309696140187384903164897369117001553714242609724061732722288765709585300465751175036507687342570326035597735629673207710540945609631678772846992743118817848705121846329879431719305044303716134141530324423062188322240857495142968873260206881539551579104374894439368862035364144845348569355960691488687675284045629967110583040163602446501451509308347570719791136773142270476014705429102732441800490510618003722282027881139653841356498064717900283639361094856753931903782168499974876832217974925720441579131482399438078083181677909112887628824290746277259947784514249100577582020829892718875096874327495419701880578631895027206406761867349465185183096683182165179548806313395520747417025348251790787673756296096348870585472804580342480608384766149897305161394369117955526870076535162618051469466828897326794984253433154098006368056556618868816171897128775138531180383719431491209976363081868436589638538537640053492941732754202781874166224675010782081178375994805536884084657449510114272414454144038701808786215790063838579838652890665097854875298759582907059795966194452476266593253801120388755080060077360770568495907880395834216386616432161642640716667737512480469190939872020651943957946909110551323327091663137121113351333410457464290354246034564942177141677338238952651733538637219224411481929616163243651483302507470892226746754271912092726873662824791093708070019371746054335527725586457435478094832629901834541772719989284847175302818032669279619922373198930454411693420808340420274782274036078878162633437174515798979794709871477614783292712791007078457655348517915962884892252576199379482280235342135178721881568001299530922113843809858325446234583008279768928759453000671448390066229901955199956420806904867897183086961320271400381337938127471294687088352100521320901755077104656057067244890177046271925387498164367435841845981273821348276711665619324574431218740334755814968683907973367029198292765046159061722878695652939299255889536275158889895042060794753593677310543417033590921432094703770675531980839428834511553381274216968557295190420113953634138198903755519288860041455216963120761685114637340801033221573786700512780751869983363132207066551172330271021837041248858706445225813633537811040412710408761059469830586336319502936194776278483317239641341076681259890945798463540262257144203484759952484348481428869102123723643644965599082288409016486230071646974632033606092442595997937068864603455445785304997285992886251883868606782538053102188371315770679798279749497256763432837681032277623268795714957635098290739199611376468271715757727507554296277187790857588339604849969469070122860320326082343626670641752601735717950548433053976327544602238839613689651006709985221746842700099925940721204949667559866808022408708409561581648268272425862414642226763941566225650632836375679536032557999986127666423120200616147642668289099047528451861295756772737714682107018017968484533617920479398120883264958733460543432497225265711430391090980576464635319656181172328532479548287283010145160503375183247928441388231613574361888802507067885332271226805762414076797894617284923797119940392105995644762770419385712908634915855443667963945591539807356238786979816116713680482313625948020481868198386644809651594665594291772608840806288608459524727648229563675135116250778610413767929639001898814920028928045502449250586144611469116829142383100706514172964988006746464356086138076004128003201008793759769302254236506885801834358977982314157928122702872066116383915002785797259777730419426166370388167617869397991329129525829303109808072857522430249318243618700432409246289610050378661808851878240476958073694412714754034187934309815583456513291262796171364041295825670786606137256156813983248564337222560345701499342915049693030206310344158412960662868805605755196917864932667273964411641849109518744426991065945429464115321023884432858156369320919513296125457497040341886287807858553226695286446630906807778800770965509391833485758312192936781315612414775190109046729198635953215426429168306538984641793404036046002464523190812953977985824493942477950162491378074035206854189556978267364773569616532286187192428887855800257195653153984789153138126696335394203354620884319582386665207405905340700180364274063874132248854694755876598808712278538360097053051213774641497898080398845657373590609856190167522374485864790886190494845999740813140196151678052131380901833266633325698890529383140300737578888659238973649895091642384001857887986775253146201665431929089173494025681504103846349380296462286569650117899088598719294748975139533671884077172574781863957917551931777468061790199091205791116648255143529679759095516693768158641997718484444715899121137238879789769300017112078438296693479069806662794480905348471123783133716251215628987746719377144424070453072765405746598319320734135849546095986894638579473459867082713192998386804402632594381607389672527362981126623834756105510260671705555676119452951035646610369468361034866779649264136755302224118834464597426593569337257464345766546297847796984248312293539064385292797832678466661244041418746932106290988700271848800119999539900163844482213575641718547984683235300207367534967378686907429377636511406774570346508592236527713517778714445214588988177531009899277752142626156810247360944486358260580356529305220423993965328417680228781307581726061376632023558760871682236948211806245282048151464091334400921319482800771867796007919945250847084072846411909955038340251799902171989193052510777887421401831182870300304018691989017200287655201273099133767561814293309229646866372878690171748750724478959639327798148251338688622679324049129404749541872127388476928419941393044883760836858054533113110766363167229979435307524797265042271110581279296833808083380420086797575354801872062679504920269946165024671306963323565865110893351220299198929374711406254813313400805375930014294513494826640473616852115236192324503912205406371491215450325531924098915960145026334389259565040394674236644599825705968415131863544614596377392552265270458721634365539686653244523263802537415109579993365598628384871641861524671410371035969307494770185827759877053074149190380255042033924059737335540071624913622371588286338613965406852254341583287568452811509635539551844003269226519836003618613621861546100481949682551201575102536622913704365972068601538534411125651277897143835739981887913227442456684989520484828453431425153308649609820959698391843631044882718337566853457699316630202751203528828345211924395471923206498506579706902870573463970393341572882976827261798113257416499939724246453170189773547040382559766415287640736719835998488607444679095137467584341653523666148172007102183097804630940833298620442334463677191906669558169743229702352437105692021980260841400051324303308963096776307415751960671186907240323940101001314910581967342243618162417600327625517396114712207355482049949044919169853776554169188534530357573857664136516104170085769275340891959729716280114187682615282251988470104701012899792076450674690662800801097556447512285959067245978996109646867540255707960629526755923941291764731381462288632169112906135676095545020644751237049997035323711317411365959226434671883092419695515885922382728437206266127001063857273521967867333386261288117827844880166746875012020510026296147333674399396477829607897445167106606258193606880808207898963717914365613917131841922161226331778219637770870451868824672868920007496057071012945165520482648108507213911847539748954204396641675731223042856389598437228636098884738987800560770085541633562861843673946208056417060816331145682455602657579948742509498349703340085763926230696980519272384971056376486104264877992956008359291820227524412913170068986365004751452580953224751785355590094280571212029189862493159845311281271509205881290106000965950900656018352174367580248012643785457031296552885302764026711084990385317560986841315042243717024377462976207185290436561492846996629868150426261322143985406852852211088210884933503333373130508964602116304131957427996004843383405548944587421273628242165207395504497900400389536725522356532401165433438963791495868323134784839325232564051710715279614624011626401788347421755538054201054789306072834896460719230498529845454601215749555852504955410188007357636938600174743158505443838846109662734609482888017265102577615296509709252956816102782294120494200375438151822492894322985559082765714753903930430784835532713666257135120516217808283695226066969566168097404033301490610928924885744263262468456052541446914183780604418245690895226743202827641307848659520844945194006037812770421986913221784273852958515793991312525336837911757496114928989724253884418566743457812814798513928134625603342251113307796378534020549826514069269557622878971693186320745444198884352132911700367546482542865490502883707346872802805127942252664594026546508367175109637317238271056115017692283064286227545009263029040722793942435546047489259279281410329289860234293279145239525417804802515124765938466231097260564291619943392101250725705663203129538826640773737607599405872838413531739763870557703206787870418160543338466160791553897968154713383009310602407972582311328356952117366477070645708116896986205621329535235987069745041394027664892743624820582029890634505677937857431755178389516457275804487804822339173729088803255823938668548791623495110619485841547512406774738476373442143149223905756255483434987816167962135419071036275140188361848099100954534843658142847299474415337659623340321242877556387040599370930434838130807400839690077400034730970715477686132655893896316204935634683352884591408449317752782306120251332061428966336046139044173972039588211149589201514533950976945119498179418200039509354320747242498339198855308291396555153774082413136625474363421790663396261990357013648663016814133220039292875213269895545711567664202419687987601279591483817240315136207080578044028219520473339372830024127501093186725957487082490507401497455659717206947213438741432551432110589332073630395735762680946677840528108409708544413718067779232816458626724577849918787030361054816757740300574148086468281251186871382726948959868385604746339901578023001628981260285855813244996538304175564212538840767889139656668153834313950482028805033074039577450964277121329525494961135469897033631179678201590061027690816903506109663495306000131237378136964595457756883012438222720114914653619379292361941109557876819576508059708149288782623522752920172025949883291998147588369835811936196856149969548466941497580086236934458534124924749576350514985649640499680077128726832736270276202813515082579060448317387143531488034618006354124406620647208631139040441961353435676518959258804535199025751190768616652155291301538073776251778757346194216691658994287904611276592939255902334257592373026066207912396990294032960073700492156801793246332025265435827714695547506480781683854242235339665276041012834500055480271032940824057803720041324634711523828643922681278682214769515018665733869090983563138988778435068191652297001786531982081398389430523764230007672724725367981755537072817628574837326863310931883052975629780971504304098838116907190389982148267812419997930451883080554575122759989629009022809058021767522966563954222712432393366893753220077327294099174632137378678706718002296740401178085783597114522444304615312240287797123142179776878399204906491437726039649399260893678983469220231727709869894263256921923393246486614662499494909859545918547094529438867862389106105028966646364615462678802719262698025535536921416277016300420496786447084359145307733034549317704786639534167812211449679841108586943883878995647106018323049656909962487695723673986976201248341763387747617099329341388267732201146395111890438930587628153333514673163380298814808757214209468063183994986128506338095126976928048247373851763772650254781919165178580895245553336947753551637208857033034869134582677504711237558491904592274583716547386846585618766761813689934026928580279765421348967378969123116744099064643710937218617254998610780659675764451606264969319787133629619515411833796545553080929168736859601527041615388132144056872091199178560850712548187994966227575374707335164176226854658366775110944653839527628822642680615745840515182983721732166954850116402835186628388765838303300947859622366025841071087405501181860315625371641372651056369855376863635778228502991413528940223395577302345517342276606829669066256227842248421098930935008214760484408233047204518478372167682324387184814013594823477849671541341412083299215027293478185064796752178526159648628507823367854486172774791192432303006751800686867010189526316227551427131044773674249273147568363972683226112873655041642133305346576278543396307423295895410883677824803223786195142872464197225471055805463531651870542246312782389052245779795572507254615794568409269084951386474132007252521405774626286458608140311546512676401509184143998779283040287615105155079177895007057797237387919091379616078099674485146609198357421647363282683683587156452498092636265300696674907937083094981165224167622997633796112991768250220882936260935088562287827034522652814233050562255360819282167644003428743045717016831751730359983903612744003791295938957712081084387811802959574663154825404194493618929057775301788085606945180764198305372224838225961650791711163139479173929559101596885825332039876205862874663950447148876235928823766285252721709953270007265079356693568782758642557725783283383730625533359618494570726376585862912175977688259521504701460698685064563910483750142238331526823051088069387164352741261334278442790695285864278426553403936990660727232623646058966022802597395473244686056532145330296560213269057218083266219846943528326667459070445298449414359345073664663289608159518927459921727300096644740454552565529454531604464091384026798377184645061804002948537637509266114946336166149864564247293389784334090255886157556252292204971035095580043535837921473837441764989696274494721644799752868057199152925903101612812336255280391598448431389481120577580154459599791132613643045762791203683893009062378712437870452234242186181010983512150516053411635032687037321183899888559406584528318179752286947614850660332923148261146973187274143939453707378417925683617468602733022724750868618060981608572965019506484245493398278428573915477383776166232020212206508976197184608095708043130629978309012039585101248775486889654104079178093080875411393463035860796706516630799825353908064766772862581289734930162562493178543598069636627621588745159453025498779503677502292457762434147527821336913873614624869120869603930824272103831644829436606154657219040522567614835327804415724663287525868037724041431426532649319051361441374913865778580029128899481054550824176083229169165534166096055865319961660002747546852888283896822726106419606806027657843633202523838483071173888147487227881791759277096890518142567224117185373328261398722918356635096375381751287860794364041621541296567599573473609344915345623779491105645054229159896547177263570691069110627320151965635121009016016453080764618843167079456231759843049093531792837455162540375881860175317757805081356663800597232446295860210040575218682834467886519890885596854133556689882077306388569803908032336645375463736585500886414948013000176800343532393809181049613478638567532061547295283739172540714970626963756945050275802704051161476324415746111553406834563647926720252147529683032511044200821303374535562461043691221530303209123592605485134268459123252780010016659772373272986875331797579431185268812637430663194615085888955898390009594381757058172540215195767498143151219213069278495847717325411445683959639523049832467358989649386346775560940457984068000245088376638370792726997089286818239211919551539700517010756703656055865888762438685653988478888624499955267215321604289815626673391218689036248006796096388274960302598954800632533258376708890658396842425253657941225329266969611442663120312736264121273256203491003946141955488119322672478185883527444685940126808448808692180575868985910855368639045157190071048294718741893716348310647673202421248778403049905264130078824180773596475118445966811788897740376519560849765484673326559213374551413774556798247220427950958434226840327896398952732493691502205229653660268684134980156288242694230260423429988164999477512116115986735331934001760285123265492187580609815281992314842095356885274853581056247560005678257094307382210064017438263014000543918451236668086053384025324498488121630883376197965745965416765218095246263811337783052701105996128253677698989995203295845078274115321671623272566995684989854475992113254147045623916376208557829243946603012647372436746772921476467348903613552963871934864531918130483355069988807849689892546804632036191447410500279895368371869849338584536185410719829676155636173690630445643936044692988120707825427565211359457638535907344621788200629427606444039791747300777163465918598756255578628162998205289283280648072503981850460094126901800747327406332298077496253140308286290294580671633476630135432511446461686903059054516115049183221655576771742460534799376086478558675059500876977261289521799456883236723799425270741743529125990503648404261768219879354650726636865201195169761556365204206504171955209786823198893266262929764158710849896886265978719005132490550282546546056078454215301628305506967483108554215367481711967517080857729174676080219741549888060204740890171527702262576351433485032635968770868443873469297586564494432064962665889791098763144127613000949106929704484153355130687733492822264722763015313671738264090077237070953836097252517538076150416883247253571920752217673732690910626907230179312382514535316406804904018110227101795422987370608712456027633222182515060280752227995428935098326309382347659204530199115441623997956418380385358998333766660596248507738569697203471930567053359593671671948037430504500499956423057828166311748603790242768730314767809253855893909572610319686393511115847219040364395433701878569844652739833893806338282985812293024259617418269426143419148707305368175959699920700182236607621257435493768341348279886274450023946300008446955508841894529711669570469965184063151574880414377685998798574881198559232198456079059638241561351665567868889494909295170341645579955470454276441875754716967399211840280035321849499882785854137243747068543861096440442685099665409668881280415863326943178068232480920450560424800084770294312907918771980822597488262581740601227795680583906522585272381680936647546695471080930837537949175036341026007618190379488771104784079059243417865043827298670996873834610352520739149339299762742868977163480182139642038336962381618376349100084377421972134132083172141029929360021890441243631478319052761486654925288152908726477750611700002119479364417254529216424988270136018911699263965806865651159026366162428382253529674754060152027946203630160821504532135527667292833932622138092645323020983966709147687723548140759432044877344905441133545079821308307176229188955580114188763540268604898646289648129582879822519923489006767704237738974187843923349162594221425244157323012246021584061159880687551259387737432183010503291940284691498836330305225061564986591476397246542437439956665856211054316097441393192631716555668710472252901653218882757760279080047821299313298267137807558109574208259961304787951163133670037869320252965791126809117074112999599625786537923301603715154262039815690030007429069271978715605654535004727650705005301746082406276022441403298629019229027536527677611274932914823159640858809849183479358113488868533530939999496014206030110792663131886053197648431781301877278705256901789436427038300960008880724118900835450704011251246208125068467027300830937426225377150837968349556942967970749541009275302451626164505877719945141392918062354226055538236429989407885836891058817457166514677680371019759091728661305489603729044114533759609427311742048864822796347355774552342897368825607992175893101349617852850963653308284976582825526453955855714504682314423558410880678477870970606583729619061671479672127440943691866099116897177859466554027202915067335438503630124777097925708554791894479068231417074140559133964866464599543634621269108642512988645383656985504358076660446887264906856873582595954180718635409039010325606256555855204285802445743420802782456172163429877436698340957195887666483199842680232821454975627842443603405684095698889137399067223274975048690782374502015761060086350544657735286557468578496508742606430367065697871586458410173268227385594381657598760507991532138351355555644514411470267373516093324160012679392267774012911488087881627763794825859267066331035862316027932087906732994264041984539453587093073028204393733084234691093257421379369174088950334718154156766747435121688138970225359174595304703999489563330131602236412895301586203513905568062811848188106642986753354613915813405336470959787081730717417354145623095533971680878781431824648230711845867757153190629272236034588007741719723245388901771050265331962526655751497102023424000779125648724719458213604909933449110510757645205400205413208416218580337080470362896770429552263689991137478628296039150562697852063591239415137001248038523368693203372065274957033167744598786014645335096003700113870387326734741799808058273702717069413305048578388967288117801269763066981414379292135736364720892611421128751472724354411043452634954208913930714373467187702779840208635321572159831989422354426038248401731218946823969064527447957238363457974796016225882238640919458477262661426976020594791798530365090533459951845517070654520732146345129743448128760070370238811110937999869105481714254919750923013076237221704779116243378340248312111689233369978863917786963841704975131916040723532883554602828105157517998717277760093559501298416773271599003137356001196173347962889886855734881670473143962656110165199791430262703757710369814764377319340181798425651985138156398501694205092838720310448450792433018464789347765862659122546806803613443712033736588598263445811927556606281496465910003094360469542305959392290458800116765038925865740377483602678341339356299377844384770382881658163229783454501089109148086040415568563613807640727854341883874785126369938505280901531993594654113367348436125704997764598037028668708831150066831445061113444492058523280562979353454261434468513279617748811155655269265649239520749865955619205400557116310923537369460882276940639118009433012301887480477443061146088322359091683894290872055793005597640882895143631844488672280170667675871348845380971501640799753248453315788401976072043010164501195704754962825257888457912618325587617859395966179486429005079347097162341412575135121199954175561452000891650511795065869308728481836780506593872476062033149138457553992676105789989375168923475759878857028120666861927659328894127455615046786026131663637609436041742300823084666031951821711491340625364636613846811789854014479321002739246631381412232091414496012685594351273064715878986660620620405008198762954810093978531194431166664811966089216161475933320955397706636959755144844341254620778181117205246702732973956111425442334643438137043946166456814145340778133320454581717963178872761899299231255841903868260217016554144685879018223642185292605037279170796650728740601061155648063305329964117817246768475778692888224622987400727160201521905328052997794337009987714290205219375417382903011472145091723394072759388440164767653411612122522468372548617008344283383127736310933860019434127133892316973822222362857075566489999491801232915994256507143230784044659331228890216924653420355449592590627150019426500457145190295525059437331144638422698454833251616055726381743426612591187231281932015094216427882408339362155827430885437645002781904349502692718604048939922661555473495742883239906512209104314478190275542988380063844044141161780206176268294519903385860818286712090923572097647085952197571849965321412819658091233714179217348173828625492695476782394869269067400354366370475654808493673873743487537897922494011770722494165610121433679699063961193030866387804366792396095862040234132647700565311218260766720583531826022284215232948745599009793413328897205452896342925011998812502199229134126099660014271471376029623559091480911105588659320034926154813837234812241487663658438187012173765056218362388466152246813825508680805629847439478697966941882214500040001032731738717961456360829007142544281255555997545730432308506539510062350131008738666958420704331844396420496696716596980076761013907249755148932437695946808334255376364368218030986756861656380876285733778666743768952984320977388562693785480492042567350612667805869869444527469216192372812666854285393418571963300038456343523689784350499219346562485020387625438173574884023005537571741328644056758668157170393546035951204232342861971297556532593461847803914640003598807524092270656542868074004648906538188685304953074284773276900051696723199645853012385032996629234917042241646244099874281617147101513731098177990611937696442775529211358352731322736091246126624788502732275664920016828013555694717467007915612062739975559548814709547152472459562741890155695561558470463905907658987915668039531366935639096669650759927077638896223282321997024590058986805056371638125756645611666953927911642833663358493365006387759369521763116985429151998368267092210159134143953287630659703476245643751853242414308829142979523508197850359239750962936767917689897796165948563309719287364248318179932171114281688583014845271975745986308891832717459531621554200142536895134922773076986371027858136669402592904288096610015905761973493637412660710811279773672522993999918530084515646437881332650917128507568919522822680154230833609683681978896713434700253390345289920614248135517975362366497814718908022382266003756422511400626613416928243074971230331381001284729085054882572796058874834221772794347573136643660621059454228176962860768563312149585566097670946890020496822600740638375842218787196769656484561713659236772309350681087053457584742235268678592521122430781169649603672769555742887049513534703264795329793872152012915604697494256802112199918634431314359760725271421818944653075357294001097544323392438855434476249149094291358103924495753319690304634158191772590768349470610317623437221963742421118137124694613711778257318393405562664314025256931640361667763890347951442456026332319778435778011151317534711839054142886644672843288258863538184573876937820258718188549564580747256124272902305156843225618205141891862828899420185384242692970785088938126833244143507365013823714626356872955665857298594770365962711133424536912350040020290728466775202179929722958113953368735377772952317739496121746473358456298010763300310355185131386905212284333060729829671140980542594913403470153776698421897401228080689573069602974239621428979663360237365418265432805876546246127226949915502954283168697992603284405425205376139298599569545801286020124165905115791594377179929158874883239471794040352773491837433819549211973246796163072753902621539498630724915005892444503578509277625606195939432076671452378492507374703162345438256768786018916411917086892517754835039654496334982189420693210232531825624974594806566278835994748537009794433277431074166225011181700270446979450442782218368424864412016932147343608114388514688479159488231557564475461608880213033509548801548040555583095191926782306530245071690662970611150892892547222010460239680093581854066497106132771371673079643173464638869256754251883948758208524457513179464322730911547836513211573135708430869454833747079988004530198999130119171345510593310027083149202757574106727641780662942610409187097364581871474628116449386155455150586151616961555089791352054400460324135247870987153852146561595845916647066853965797891594073314311917995693319857229727670278090920799538235757632435145348113143947546481429191900014480423441705061292281384538695514683128439113636577878838530604880229193804123138885375665631164559321431095267486230561658715469559486442929043486474726678147601950770709959234525613674679774781286346734908869122916567554910771489849519084412186091869981968982279491196359429257697899371668300489771016950316308961245304143408798619285350950415581362823539662414483783313885067374567813983165739357405766480688672523717697381722950020368273516754741861963074889744272898748376836000201746784551428074714751437461854611644727907290858406054313727427221411466198818081467986734752967821203481608525228941635224855628151650772318519769034123226445950426357074825286821407446563377372560635575783180791553411481885370063038323632370283467963871256708295635918463037003004961760394864625961202263119215594924695300447985003726952860704559668259328058621006111928789496018634544452290843735591663486155976945354306568917423060597402998136031109489943609469865928871669039796600211242442788892156423368929189186205260328066748792036473247956723177374191491950296167643777649534396700557541100937975312542529789139101716104524870309770077665968252399312218448475269805149782722778791767803176310301012663013577384077764228830976686503263725377854034708461807555152796827173203653903421918954789328469593605200338319334964943977470590497193875956431315626404258615954218913008315421224612268871304783155492507323085117098104713836642151077243204056824677312041192816241639370119377428001955231904557891579897358283461939396500062837881508947630592329799841280718866704147002424633642648644816656322353892481929661182956776658044588614339666940132529434355484417494725976319914864583488824320506838339537253353400366735428246576962032626925410932676574628985778984908370304952084691846818310544773703291276069053862845787846682770722956668433229185407900704357112554792230162834480746359377380370611585444360567622300383767505754611255007928488324154372316161830010281464000724322351432032529675892961831980401886524440612570157334701059915524875558228021878991080764963811955351921122355880478233422164720335913253900177019903421269569956197469268309407327283386000216046822956381787769625569137602663466182897735613613485299182128318571827324713692116055599672807972233518020643677066931834540790751986158959579478383316527492330435954015585452467836000724115125384771515224154458126421551063731607095429225848191757583604236366885122306158391490229909233045910643195669226770721107953851666138431598892412758279206382760944873756024101472892206370656100880926331207439725168555684488643879880063830058144598299337871989498508038782359137555624780880241312286951700416802429705293725046934628708193422960202807963481910366618942549179809419467528883645022478940712192072837273020709083207976675171080568949114264224070701665737813095425033156449421719658729413276697259677047289607419312736801581121674057963303175575297546290558863235560275661089397945308423058989353449153734135951044787182781559958318961048426731146233451780679798234777511230552062637915482625272176831253424598997776744544709303690088224195066665486644156828365451509896839582219032085777212031718817871838946532341988416852104644434365764357487616797333496257129526135145818427349720428112380557345682573537350070330671832501221561631697954939433568021382849102612310405762640255999064416962514340259307849596417263336328806485797394912006904511161689876565333767608557845253931809430003560393701728290156321740226400586304655339362262770451065451643414677125155964530885502653083750551356415464849667898902459163973624396733560302916549932292297672725307703300863781340994075434712872703726702958687548247187273419689995254998189206901997830675752198801377632259636457447277960329813270813909110360668080263810361885999377023910164024681755773857708516437572431634717002334739212421235469467526162734210856896941180014289308552218403131726326102465945644920025157632964064669773170717931848111275104697058503888706443084262928825320393129295016293046492592488219296651459652288693930236218841882599703055325662908133588014980303095131377873600146246028638870809327353903699913933310371687342220591894392507166535630178011529425491736214634402763334520781675664489608411119413018499060811056696001477537815696585046676248222788294920287945370064634951491158972512809391736262523128233073408699433289842938220483855748767060571484344453608041343364186918713826201615118243996159805311471891238237124784979813636538875487448280762017657876474678751176981502205648266596390771830420161091658271437242696152340052728123264369494175723807033715622630331133393579935146055073171800998976616707768255645294224744392641685221149513360044223060430779463794366745719075938822931834626024310199384709061089619186721311495804751367296249873844373127075919606470133348674852138732662831710359293385137238270606980881372513085527419602328240901150249591966264531657753445107936144594263580999640797933775294784585223015560914034692770346131730966030832343151838862048642646689715116896566614093670634390024061620006925012623888836670363624256765180024859184681687156266163855790734545638134642634434991957792185270277250348897124333505545751580562995173975217724244637443361124113499719762284517754384512381117365536309944839960008204323314678582713685856248232404526682646436907074448813231491825341986871542017835674080557706656078102886616318027227312982253140073909051117341786421858447755111601235433332027660141369793726601042596490591903835104565087078943603194617491527884997759394519088445608460201500980084750088630798895105684349778911498752313074409800762125367269728452954569362635236153274050322432006758491099566812722083698333763054925588936038684897398927075773010962754558720806248100135066640696042665900609289779296351013866823067050882720179295752275781822054406769308268580648497294317666429875821076542895029034511242407029722237452771108251906588195918257157194974739374085130492947543905006235087946162010073685377440467339395414962380136789897452714956453853065288049097322006498620223962496695719570886550839018084354339237813080042198651819329033688074329382133421831516347082463235857643944172078453512475548948082589670215609301864676910121754600735266849812813672503052748220432887796664604921703013412691445590199824519024115856997306967775499679447056805810319340682889543948369344763433049873661191463870279094371346598250088471859693998367810123717347710671846195566122490979575825957505539444661987936856868889218791481401179062467156902833508168880962749547470778274142644349326830989062351877436473107051306974554359230653384416360639215281362790631677743611790066120352330810185045155935061523018802603498661181312442871544317746573912819463464900540984855923850811986289423681032141139728241778037578052351659928665317378560360882014203878566542587928468559887897075528819856990249176010905652511312643863142827926292213065194524780992177084961243551962764825642745903905155544213138398952193978593082788115424677143284368294871103433470846242936393753249558190062333330065171782286209730403094417261032354130812328224294375618505864848397752640632125278237317553255019811814516502805909765525411261246652501940143903918981715478568366351901159817733448042482843758544073431857291877229449306749426827593359523004221728225294365392849391844923035278539207890955561940995288450728503567958511076147729006276196144110775406023668797901964008742901535530037044818453403633939867780358575146657720838145749126354740238084138332540112576070875575641339296018554905874872583501659961659879192673300855157945813803093523043615117264832462362586371613067444103284267902159223315929734616504210490613606192524054385253426905826252861364648159287384933598474036374580390540226486387830338540538353156270974710087345182174463027836582188353643954569896204202054723221231624964151946166557621245133658113568580693727147421175760247025612222614779406221513352574382290196351283507428326218150168722540213714639656533867492718264644867501142889361471140892703383395220120125152812456339681988291464087128045815012818199288810095138126956271052684697808784650480101561934682332901511720404199151322216896569531580130298998126867344395998853443745007015351127563885017999802498366623118160071003983411833912985904829233829176024928497911553181785608989955775822806660416337824199949494887748904565195529429920758527951232061393591827248834032508491427615997118541716791604347087931549267440438907875080399354301046853446909722682572687829370445561854819315673802424150496726054296335916879218291782826935523004757816799633262219641817627119977376213339966325230473919512654112928783956464180745688281632418420929813212306680742636216394215140956766399295487522511865650863637039221639015058620473309934766297874649370702264871971257220853397776858614986928574539267506428406082021099428058427292194183010790836305812102770777334530398221432230492137357319569828039323434643833872119294057947068027809757710280283988511333677677036158896129307550969869671226893867133425069021798026404301316425699437506435434983758471147300867244900299297490105156877372228590906510664246069284064174667165727110821512662364015795752319200001903648602938425049515778875649383778428319214479838223476687263712975769985470293766944814756929961115452275346066060110610091485614139740790353665141613192325028576966655890761742242350789057782419577738899329188027570415389157107664851801796465811570091928264742602161653198440069517518436996067863816460718466649800896676784509603119674567881833119136566503773095859613187914602568693153091121117027108153109517146681582597641958459587209542425142956950876627396594897273000047557922035584162870659721687240560545632496790148697975264338460315215176884753707187275813748900959334275509281711898070743941882396184862300105512086194173054264424991233477225610755063626283422795179216010487298106423908749336958939061137472537109305302806589524044308827992262694085541317363469106317332278474946958467429890456421999087625951190699189041818168723164384507686335480443027602920143123992799618408163542742154224688342537621791277384362953069366449617314852401438422667440759813710173620219650878577554262980858210147727777493115893219875967723310726849715705298996501762013455925490215845972798627291757911651851591657228159063291909865957048901861537639946620127690183346759705693248969686938282998302036920437419219142838781387897084448652178327531301712862443339730504391720648977905158089301649220750915059786568782272953793489266740532226857284872735926987908828576971230153974137621164224146001038423220679612738289102386102518545248286795913183493166442851607637733924537739741358775880705450192216649512052278300374805014212802499312561074952864823070539656938478724319859689817846321490734628109357947060967385781880229730460316939102936363095320951112482100928060765727479556866094124841516328935445406846937574846719630394773314005065705481241526660391820386454460441252194551959504015589612665693149764833898786311073198980068718423943710727184424751120506156792354040407146505801493150183146804369296377996725659329322531060000046356788841266750192064825805076802100133389957863276885775038275904062120128607864689531612747275785274160789520266183405200117544625631416824398068046306612813602046814696744792693960333584523677920695795296859685665922601829335604114148594803845769538488364055495454866374533584531778863141889793560128143848145962772267130141666477340454348344939950867901256995012225504855178682278201267604927380803181523052871762154144665734399043519714196147299287609845979475114407137949782111009159755909507555461106199310287540376138054019346110884674711515623517863496400496991836517778127468594642888532559039949316903996046500619369464017845667888296659492493849313022241893149486762143660161746022490781282727920847504296418370932973970207445302242770610675403038316099950882371581194479489592174081033530655134232192648508808817380248313915255324693097865820446173070567980302746740384361320287632028254240922538825024172027722376143200360612553573885578514211472540496953037072316008693843441574862424988378082755544085997790473372340813752978457787245439730178806428195035289476260146765889380373182447645378287439134921086064904692131629396755302961031370060357878004246763612271674197724179275428285732390489478057372708373085307304468292244923837991625803876324147110488822650485217584025176875979039666225949635292966578758006464210915202455765137172122684432579911987283677139340010771084888847277793645585632557318345276898614692826100279211689668198835133108035774594390142736794941403156546263211815570488326850959044791399739235677861454223952566027832964698189043433971168426210880235977605075768414626733504191815568390374947809250828889084522492248925628208091995139242750146943956746687318999579529918244956576483449421780676814419211204426035532379392546973515988121074704435959265504354457514977469310689598105828951744570381174161760351640727439875516285686799049072137818917074571991173368108036776261409331870834078567275370425768458971696246598802171304751649464668845296325312328229526381072687694221347699835035576408906384530287802565324730323474399213551505310124038864280462625044392469511845973293471550627840290036848213020125308204287334650438548821171529406112179398717100688309573120963522849948441938796165785089895828754019009602879127141799337113853645700137238990198240449108801726046699448029221395057331935694776929914098560252037230147730118467159096912433344114466930552293900507623300940478631180201281275398041701343704863614684407422971174163830947716077396571165733548868712874589100030877011166928998268579925110480906692125227787433661523614803822918774832234729066607683275621305277026104644298966463022496255205404358852056556470835029778782263107173087380873340017853379402244106012451166347679103625983876163593967548505240000953513467914353693409686383448801390200328607731064236395162688360028626304444070934120703018212039306798430055458010743740045905508195048296694969170188212126879311128861603669368251698124401779187293978182786648002227624423322508902731508804707138151087915148523884496474012037294666383498793896650208032172571078100797622014550811063561041261495173289481916322993432645999101342199659157129301000467247813548620129063390921898362862726749418393532705995469045002812189134329650170174932477138914142370230992665829933133485366379622132005545073520262992126540374756201797871935008606183245365404744310806931006353832449486943309435090105193753472005868974491108528638708084381200651675807672173158030380244459181469060550617597682757945445172018375456167667261161761587662765427029590308882128350789540434401808540371739459589186828574427658812373667678528457579574155196778270848166618216326977822053176477042930568353716666392668307522866330988530386899249537917743210729857634314894045087244775062825161929259292528989792127669352406778235353899471973449521526394412977189534995648167244341174856648453024823229956988199704295983874281997405734904295936847803005566439792737208085866296340718553222224229487190444685767005104454703776555264409835300033436962640084792105257518921612099094095747042949964707759787234951721735256138383292471326884613561853364078357143658579617648413169430661335065363792439422250611430489521640413160146101713281995070066569649142468478374204868077874925549688690858471371572178692400551969726500084103925219812510197557534419029385443995959535192596726735826491143645404710503608867916903347119506704426377176589572835161794824189326030654688657151331555548907920745941213423632838207529773813114666297848741655316108938065875935243489753285053129539272406644154003731892925479481579062557591974534287139487244358183004936448355732997448078163419887839984100625505944495113189291249756299071611665255976829832570066745804170672505856898828833738849013663657705582522247963524914118793340543286965574109861524347642750007852506344443980662721623270802659796140877534453764631199565513174464581623964633151415521520117586318123454325226240059725487112362282757894470897516421347602651630110787280517787567902221353477230776511771809661854704553211820023815885925255454902025942040915510777656734834761979862798965808874774254294027885079042207620200402302906005395397651322496338444167097292293882977474382605886053530809394656608238028571638692319117784642315971852636355884781012780413618697268654536334661635309543961115482112177525041319693696992960797171229528474239295335578067880049845416735089374577170312221659095113746957673477605802069350167345848881518068550341155845652705957619941506682124794105657109000623294266113973549585798520709020283865655642473361716470221787295065289584948824297637837054378610640053648244721950080426608088678786082522407017981259898942365476904169599609436176309607389595899243401198601641442184077974648858092078836446361373607226767404507069831369040761404774070188680521180485165221493875278511173345725534892273656123894346512770969869115120809128913863656921404349494312554975456348331189669630895727898636451827311272821414733638722457182395475072864855660079344654128511114915386522410007009970987069566035438551821802132491035100603273334571699152034410968251368435998990443130896785087215276670371555195487994407558514987360929729494387694890873042899702199381211376255461380035230269554344677561572740843347844749795280514608671438825527103695305879148115178521924276383610364728201180397947973992801229271668453125243081673544996037097153507232554774926187506029315553938106556554308351817763208820707181426674125576738261619006943512247419985935966827842707502498585704298138816848992403503071974086590680849285712059518071709216527705386451470894330450079349083747604592748064759104702890492056440607031333545556940082780709452576034930381648027464201127784533851977258030822766453432764547225669601081091118655343765447422025624930640044949575757616364628405013706313962327315783750201069687420550434237642597668570696643751002188766288154354540758521219120083418455251374487015162692293343586417442940588871222224895819484592740000063101776847163485241242230812742131306632294712230637094329772108708973385266609222185241320438707056125636813270997581518069083312535126313264722333317172708223778186236315826832189954172299165841096843976813929746314409758994887484876553301413965013323619760866224686229222079201883127655903930876768336910024534698940722624206147074797802198237555133060952658990309773569336369506588065032069447072493638741917749195082274817884795001148446533314747306103530872646800921015210981921774026386492811896594407206393979691944843879055155937560371894693359722458508985316679363255776925723559591756315182179394626566517824220797176231305911108454887231237197771741858864380945553665555962839420354172175308542843378671328180776121033630167453893304115130293634578249501718633061362739027704407259209873688620021232128722896048233656121900821765978707988958157125797317902669528004720856859577554487708959162507261906270801906945708618955713489535330273084072049103640477821931826372717189494960273247965062182137862914043824992365557994700228206927660047084566263573510738661603776011287626982090084588620778660573544677846260397806058452390278432358743765007582887793885685928619899903759604168441449387983273924284497964817007476516858738526805012732542657249116719294427806822205159353706466846552688787506580561532761645643452126641731605866551489926526565837465969290573339340301427731426187876770594592370155396603444463131067445991460811844356438722185575789567899730577399686630413612776551204933909740752240905771692765187201373229064908366055010564006059154993755776726882553738204929922312428580923089293261049708168728884142441628264425135257831240083598329128870580040839093542129143953736503957077392073610534967691478129617524288359526130990516345090923192570173878769535073098832225411280998864569742286701331950042505528053463318102627894428815568768050966849558215582074930968217590839623685872754171317989281406311400720585981277955850396803040778885328884320580325051232413279082504219982987137496976942957643960137240045107988922034275423046457566931685874777067388986597243479618969657070768836111237653148797330767132214329100488506737959308893990912812976184973534273952403986053842471015084504272353558152903335709803110439254032656577322923157706746399716904479852077286407501314581545165240880310988976121594163978872997075451381877216755478128270022845301560151983946685215655262072325618202643838365383494006913601897010605870293977850806883518110462554535685719388522560939907079209039080778641097207624278473798228550117894107280591581260942060957597292666644372119980115034190774182345036918290557392552420443226484329867316018804695389328485081883576441090169217651874171946580964550828494562248197386775110006392236552525249650054796758073183841566980877372228251745831132765881763627540446099791521037703478885885263368425077178180478731895645863552173284703145799339246921494266698319484209014610781206841435315616401044005352525571862468456780189162450432599897747367216568468827217779904692173192417705127213024641196080860387422791690598856965373266661512544810397195194204351254143840786418794833777995320366572265880884640844544431685715138391553146889665333825724159158775817029070169569482210982079913935043591698949314056629985796179923951612406372216180336669081313157382877312877494352576379644991703057186420834192644424296752522275186892680599138064355962399741024421486111522769194653476099673397730956840504842081278824836997918553600489845411539101002411852699824539011488909476763693767024975536290073440923391586207779254634987243382317867735938140808363064569980588671812055449125471385319686418778548822804033464073638816896851315706266363408759965917416116509000892424144363433702101643932520094238410348860672047451032061568140515870228433887580796099443203065810444324154931852818253678813912705881761889504309686626278676934182806043406484079539474427113420499049178164694703548614198118646930732528933050490161307001368351708774076060847105961788677449414612697875713522178336031221032547781051984677881716358515861736842888907381176734943430633091439053760770398636784017931024136708797800807864285662083291321759110292262048342947414421520871490448349642854316349477524883061131012494931218158024658381613839133136276599401184596836056500718736578537834279104064488659919202738811796155872656858416596145472734624846626778175827393330702115750589923139170502008668433117954134023292884745170781733253920000538293683378355343053597350769646099510429099145584546359643552583897968111860959924789905773589729345572905788688805065280658048926155114369822176501017600095719650404707191258134371657602122834004852224173888665804177088175479904135811158473882085970663643776536012757702754993790341822313619015983799601263901696778574534440355647977500505460312321359907565147580666650269342550944056350185187730294671014094171814345512382870502637749818390627424364266660366280490211540160118359841960529401618155651556728950043110123355914227731626116133774014741146216322976729165961350451769652860714778193530898272716787121489541871164491622475686803459143189726718272843465756711554763434579543292061516526923554419530953216773887215896357988889247468847718339713923033077280356791627063709014904286859404530522768098018595919372893377219728661533473097317460633578267807895802389212905905733563122982212212725235225048776555570033118595861759185852607781740835042005333225841053988438447958299198173532563766288447214587483736519014378769733926393460756444340589313528913900174915235956135772207706529066029701889207050900578911488992728416877082836075530553089265634043468795665664425788695009551164039924055505587839119063505353569349819843252097150705261024258492925843568618003978529182953043688333985753554764358054482360347402164416329299701900595189880589927846511217683887194047979731454282328029194542008051667554829039945736096281813481499445342749118662456572910111841038004022401281542178479630074939232914867220270308840942451393097279640437500251655821241939823814813188216401113696421002462414105490280000283904178229038487702194627936238329173945642954071172415353000459466856333363761257014804515622486128012662463792237540725941653957562323016117403864866998854443516732860114575416707223062134253550579710272003992275458582889711910363742761772344385699059528571110443122085177720356496669874832938470882057293191899294285102913548646428058767378833747062580343918251469080829448691860341425315990696692951021890716948805219091296009260721889408158768048267570753690122121515368673336307586412031177616136875773356426052254828981186398941551881662127594468291042035203375909713574988185626779732814401617316000613353753594285288950761008817283314574526945022116851913375427844935037580975998421334886448213859622733687529964729794532711894871098379950342767400266434983720683369710935931521739456077808445933136823095260849102159821968264395690559565400169122061593656126934407522463052666425606558686398899811590186863946573815181158527357029390035828738684117994040751903511139974780653584509536893965935531437852023987917063288379168499645935682126134588912148975371225211903335195971272854086411700055534836752416848619457988627055891461393092113431049147573991012232845031022750897239098958059016977175164058610434329813093115141937372868717328213770220733943888139909656627789629322325947345398563283586915366587026211514479782125423508006140099214618814084496020401719480232035020137252630642725407698715233694315676437089623505019607414966208097283076200295587489674694540475998456228257973370138710198509171161955405229379980945166801652840797794947405053218004240629952931727848961297625917081684112401183934176640971519165945288751117795083024991036243575736402550017812417396125946173148888298411547447604951452931693707784985420216248347184947850628212307138055791319031973762227831421337323821758813073895512566599387623931869794277924642820706818531809681412078833742676008623875706092116879993667678164780264818787200179591737274980103496857230511005508447655610758064484045389409335180018003415656358690415971183683942062208054226118516609052115253961884206527505813868915741535937103578647108005602033882544399153875595203974093733419474013972986005080061041192208229333205849608121613073206253808991878862657199945793335964056776048706882287660932543817337587216518494342647175502712064326382941274739573561636177804001327430054912147302967894597725246163581696430668610517668088570872521763689592208992040735860985384625248864943316162422973400373109459418307006965010627014299048562631454084563146304672534375482701768236316836776243028155540394761980226858949896494633847995601866470461073745318138262827169827227772910708028967432739339786363936922891742916502287189637497615543485210022877342517328372767588002145005564433525896727903876366990497302343326879749301575438150972076625371418913452201351371742914407145286350551253262873794729250250477289267342222495688331409542365469710669058510236115764783900197809581724693032874925646325133035098425346101787343543750990401177968091540377666226680992481470538366462693839851366280018366246020202937344229651372467205308704975464784542487749882250163403397169842988080044261189943778195528138725096806888560764793379226725850967770079224659582716116361442223640334923941109733216397354494052875667360833638744442275512631480444897576248964087592035412773621793813671912149297868710955685241533871162381389087561479238692144557104193752760623755030015458533156577592732487699290427620884645010345033081860509115835703009291570758080988984290085099171781903045428336093325394869958704241741202178115454056284816366833812007939767391553127631055898676860126857685524783629492128596684114418292081529060271604988250195610844859334676869190665622162630935101058298866729511624693600794179644208457697006623192414464530879516884298214479041390055063824634290215318514048498566207917233733430425227670169227388264238476979049596897327282081465835497053337860964504296418590740330437134237226707207109297891144070760614092958311311157562740059284483397339840568658101522276290689240173942592403933504574087462092489647573461482371506706959735276814566547783972733087201411642629043249520615053040680676661217770676816949855794675198852815199838640542229065127344131463765670170350634103936057436714657374228760596535983052403300360389624531420836679818670189718943168365582351835857159998845421150777626498472393966820525103271348069493880723579541975491055865394870330782251679467015957621165060627196616280257231090389491505392399227136777685772888884582685854878842289358683105043044299000021395231647427655264030077540251198488381667928957358787738299098274491428501680475569900654344716367370933631021675761983195634379880095281914680608411709357659937913605040421964943808940829662459608688798670609402258446402032635211492126931524714130560716529982628509725636138092515280331330386222471854475149356546054882398918381483739282581145252799823657840166197109222838832164569331478417556892499697792328649608284490248900608137789290149812181717289912032083453673547892276330950010404210682421602303296802091328832583099313174758070036254303581898930651078652447523850566641138451428345029105683350117096567151680778010538025126818018316965690192522044760395950324325678230135258714870927338165604205706222056880464715076338417841903448365792715169514016770156058341150856720143716880062252288743314053583808835102628288697038654369024641965879480364218728518077441002505658789157997435450239582750425290148912222022396642922570083818170183440420209869124130720835482600567943786140309675361443205937592129828805232082243877910234957338899501656145084319465739599009110340253610689496554155535991717260050489393149733639830596285436990507783712617745525889218108437908067602445029956866528835547125517153497537678179049658062702201350699491346589237882066270747166901642568815879059754795791822946002250494157499098081057746660560823573537748967566971000212947073519705295600050400516096359120829318480182978596361718466755910682676132924726710926579290826952359509066198941262505270565107408033313475774495585799836256250390877421969043559087624691834178654163956639094660963914057899540523009799853791268003118456723656859310730970834551293008864821970635753017842191665254868016479918359059135543408031532525536938466984309903263735791192211376444653230144880764904251965868287890285463943744738810614400794874887723556964931704695223001572983086326663868842123064032850796122555757856641387467399209774626044166248897357147645183833887929764349976075072884039452087025516902030636152307687806714515211542873464412563760717814858949225766911252081463430592895296223780349928938520899729222189706622084866345567008955559484789471926687493644293680574217457014867438831000133391764417862828108370620194713901300747970434734135442370164237055159234567240922337455458484407084795935550502814621194817958565473525575445590705662119105382964769740046152857390930487971014586787530105465677360159628986677514626386152410565177443974867461072500526233250102149769724251392834885582303663631844381212232547160361978298688171265176959791759590715471878658189169830949776005889751087042479686330169681586578957970376323766516554818073753511514148614797476918405837280160202117949411948244378976890666131904109512116177023653439612694384274031663604552833775273190208246859331468832515704191022520686631085466403444046884514063842243096115851318954775742753971303049245179691988077439015797340208802233506382831275693842493679593519642632478664146784809018292637239792104913380773018793132955202175753309612131349371573194107890992846473120164500360830559884604862192017858666003563740450744107552122845490984194573989182780187430292915466110437612075606860090755409670188408535591718973807339337269625571074294501998130649098234105653617588518805458045338110455435766664013265306820995162875512407196102526252189990973425919015194605054977326466762503549243725908204855953766917663270543255351307881460212325926261315307937989456658353062955284608433580347983981000817722537293266242937284291101713726978834904380928163795794818470746509556399946563823857079450450145068206971579890501398947315572326768013156169430015626290742793501930207683611841917860364646427303866207942014538321112385104169208347701756003429418522318291871605853249847597021492411075421433403600003079630342906502326086998841523628506352589809858604646377691235378996622533023119277876070348578393399942139844533950928597673467108233837012688917973818552616252491631058172136124698849449526464192612657071632982671115783920593412616197918193197748438621896158893644747952336251895395713489906081117766991873389574818516244551082269583685723719769755989526874708711269950963339549390186231025491358021361171234725411506753317100278887799307109109292134078085304128974810306830759708887852562639150396336326864098827711420113124312507179476076364380458080250165439921751369244133739707247038083153953347914857145987952394723753866179534012713594307845773279938088075277483789663039580910426404295738288278323650610724164546771535879195328527654645576817904057302139769110118387564678959184969935311990122625304272548560689278814822300169797474007262178515008915622947879152374002361020763956225802574692022786169789347908628234971350164916950573197158755774999152566575733871988017528713611277834532387127644386595081647478347122028094609202227301653384141134399824033677935905592200012490128876913707342848226223461393420292655157721185574339598426263932415536414416446015907421830986505902194818880787428902265534285110040094828835506676503841285808821399292582473281355487722920883630999087907689548522377752734212097678591032721837849479114921887275200868280752781119469438207016796557706549501004760530603539207265604277850147582058450376726108172996241270321835689319110861979944216466067508142728092176025858320914376335037222082885334054291205293432753719753869776939580394097341671630894443782321417618075994130643594490290240056239538357445754436483011560404415950366074776409661085897214169303747419483939913144855150815768046838447068556447892787024351431891033034585110670093023657077309497234276117023435538497130849844232279705239691717109586886973414368500053893970634381588334870909216776575911342464300446923028893064526403296437246334638453928459386442640810768197943073412499210087734979781418633161934096658584664724875485061083971693200593820864970107137861939845703075491738987465400874662296583999594468062419159759020585052148658741492724706887652802213686959468887375290833195569836932843159100401034953859396227138130091337188910226008763642542637099606555008694089679270981119718321727464990295718562818492142468189795488048184756423597534039004869799959251439136660763755660961994194305825456904723045558883255049172523584161585419538780274821189946294438373070634060717809051476591936221001523571790438628569404967686127354667928005986633332805488308142395779621323518170241948849580901929529878289006429130926172989130422071233645604751334700474075146094786984180595478230299924276523305551296404238620723265891342213631407281117559165660930553547530263398452934025432850769237108949536627747944331767749239862333199298392152742762488501199476398397144953963253408883282567469389467877198407130076169941387632004625391544522704302583187057651359027703225972428597864878205981826918650017727546768158828210146140450969250501386961954908722559713597647482708931737150336949604392057741688875083158301716723067702395757987317452645114175580944055009885156137363124637993892494497103433135243503444389856735782750997703664888769069145142557164080793335923766816856069156309399281376347533251142133525189744849891590952636185555957198399028654250746786458968918902253870402649392902809496535685991660602964501322238731111067990461154058655655701155902895705144512338180798685373973570934056138346916581481638394911424319003498203731895039565559185626108467357573762892387001981721908207852891617736607432626577807848496789049400868617728356297054139081394608794402222233373001962779411103948314823709700040728078882224501847326803152065657489135543976861509320383571487114632927540069125363194796936390104222095981666250791816076459861167281783352482629025277616014110684999700229474695147315051862013336202580373270702193724099547759143096378756453145152137394355232213872406612251190707811250108803316743317700424023017639680937991814330397799110140766939685783090758046319147284050481437689495199934582231912600497142843501255967049917476431607835877406417935884059119574796544047350576209735467209815819165114230564920401476556190925756463375030044435637870673956908950942565653583301911347834399867719645573816651062659893331089842510441444475908185350838707085430745247178888975361417371944098361467969686469889803195049403702599151668314603814496291634541644096703439523640962891533683945098306573292298548367254172448706659612332468446925346315172021970551442406867635198617984897776445672021851842856518521905778511939786305999161752194675757455838773738382773244197403309342926384888275185341953871903057040461440279900869080205545706070321868306812862059407093040920014121895683957076268854035911339613910416886368401206235449454521197666535432157317886923838017343945544124862399470832590600843594750045303044419345802287821456185513641536251255627396154718494269242188138778790654178153186360727648566776022582295506074531265520400045024837735524028830099132410974210931954225293725494653586308151716031381671720591787340319527764955025044537531272356949194836316581173124034243877242301932586384806302215392794929228539447793934701653462142627202748196401090977640189013023535196202676664798481596979405145194229833911974165544009716966579644825438079020169469411903167210848704287983250908331547260026616836036956032480612574813126053468275199116945771385850965500728851906688587278357344186950475930839671922655433074043104701762499093937900907143404144491401429011876035033679957636401730742080457302327971410363827663309107600493227465198691908565050119559655220363865403781465887107539297806227031940995111181644274749218751319484487100012439097204825736434580378995835450232728803098490429151698835894811134874989181366422085446629605619363901010425909553556994966492096806797820378511070427491495131870960369704666448133463056496403138545370004962973548068286253955277888257395431089709074615186211426132271850052978607949194914560362017563554820129005686549857760425516835227122543037077232303098719744109233711275736669256630166525987163497634308723934168224735837682627763975862469858601908183991222699118742040689966819189825282749360058380344742079936027853074607156047601381491917807350430100012179576886515770429370548680866680750714327530547946421312968984454138915844379252350874073375348086508537774035739182304480134487266541834837057490384418325594113923011382973718945603563983684093901287879721503797661280671714364388633007789940889389999749179327245935525672895942141262881601507084470324251059841699650955911836778140570945197121561364526040419985848896632405753396731487217143186943006710352882321786312774838771635766104216674711930683098374550993903666038954911672961314418613889207098876804762058080727734093940294015652318811294495961094883256574747189546936617046252019098690634555115692281536671945574548147519455645947334691232708224436705697098780506570965121883708283058645171257778758078073822825862641953886768841404320103353661292225903110304114912556814171986293122309374858478005389563973251269637194239242462155244177055344521503464260083920080074262609259117235985519991693916453253636589363582709756951880069448617619434147833960013944728350801227628734503122135599237193175486357516799033799051468434347072432017972948262750956837850534905489592424409400618888951015162310309617096855752954076268160653931083676703848329588268337604967332889421173925289316102393235852836455755897442858692102937615276940634582373791133801432050007466291181416206622813813264660288284085832716023765079321402988934281449952831724918342896353355799822978480613359404464559852165292371917824977046352595774931898496231798958857432855239433075317129637670054284953728740499502784834477431038379198727703055129721427718173822009309854425887786444915916335049833501572266042891838026562145384232010283406889259271703680240924970162215038169810497356781068220140960083881263553122119619549620720794014397196029768467869198344960444484710305777190565493889967603243342147107275244911707578080070027445083605234719212165622213262076392235763285011189334174622544238902280198850965489583713269082990967740767583464814655811875486992316041807433857870578293997535669888659376077623303706020247985620775700227208528094450141058128587068279223867655300424342272211366741719858925776839293706687924968044173442272341281726551315031535129804125338285698887667303602284223344610141676914721255077278865570709227205468340564427714553173584646083258105175574506594230578893721049744802646795601135266792248533348800917578751512871692360006726259851369836269074626220653277009364145770994740991400485833807621480478789436299069837943803992842325188484795875533419568360063917527279113540973599663134348159917783664085145525404055049597600824732267661522630474261351778680436003914716540765636021768262850980956733266912921499774504715181112045084410536747630649927151481671238091304328548541838676674508855412142852283584960196914294312372071032495094747616646598787628203163220721638474940960078671602228485504193023843266526563639926251258879084876944785701478862980035047778747207200332446801780441196295402683648432115554318058492140755245114993054391632226436001411410508863472370070243625609919719941585186610413438381169999416996014877852094059278308098148325259936612929217995184608498783304792918677988127664108505703634196626135149459095766438412358735862695736307357462031368619066612729072016733078256755816600956855800031974459841974694928119455594890167180631274878710065552841308876504311132670155159357398156393844284991524843610976743962907431887073053077582244204845747163887543159421413235498511728749617175996341497052929417560505191335342896250446942841603633562999754067376219349744847979698095384517226463347882267527506883567461501837004898914154659451511835042013490054922980504304784867330663565286905321550750848534682442766020237052935814593469360832350434710573151629988069563884760815245790172745290761592005136528343138945754932608363556529287717759983810014829153658768380904016668845694697563433262997080733594014042391360837112621315144749058597930320947108443075301137889246021588711864217955408686887582300081074344935379013954395205594864643737085912070127613687484355220581504027989035488055833818618868850909619132630852400903496793294904992550828993747807019760152456474212922988506268468426600949826305766801917387130959525111679756870703884829974875574775917566689044045071127555397587182121157631251554355487764797882483773112855856063412373228052321054951099733463988520367931722208147349932304667797917488314151760372831239579114645933783984391440422805899453794944602480662538135942274767375864280437391637548388725956418379143913586303695621890425216893474804576353766066601955801678929625970134482985929256410229757732324174692848423240568605232920299235043855159322288418723944070911953668965399334258526717482030216771838417944870746837544209221192520771950320210782576660738391684856469407475402250537039575889801365976437960051003577057646413099862328629088575940744504486288091176725698014792299162083997904899783095313077117803597457003166635462477023245555256191247913565142934969952979027038020526674917702531808418558074374469285286699452100526066942133529809433702477953430067654989612183679924083956484773418666532190687415482532127880058692159156211267176961952695559349288507953595979406232172159812309612201016419454068923073347459606519338853847005402338175229470485359263305700822096206221770479440401670488130015092961298644151018057306840024127225650988830931041011708401831112969614254821016926726871534365503468458667927475181556457638427687746648519580152420885826876952413957210369209760292370271825212578569415588573890807360455325328059923910937609131924611189902499574858232756242395893417243115059958362105937949984623724462953680174777164077826054069121436596631821724598688400409868318034527015016262279404828341575383315655742005828085753968909543209267799105491249516202051708881693267595982087264512011845039143401750599608089872062186420865256956850931450258168731177737232243282740112352490439052506109351009450272495318425351498356640442609656838696061851055023934801394163728358024633557587201078992264084789225321306761059314418971915295401582935144020092233133917243529028819980009996003324783645691839163014133537417846348125113808961128415052315321671211409857600640028205135571581694294097229387978323322393459676240458188685665488887505714477138189207609979682890931252320955213973226241354229857037960408511051514279679773565017739557192713151512558049939537407424424386565256622389242858811401266562340582082841204946143031742025102661326730190144618811348513190091257217736360884055728776717302648500145055115223466160519916148652257709334410987981247239982197015957114968039425432081872560947027670071220240311183978390739329801275084080638457758091683706873729487460452332549443474599359551950490146473575367242291948937427056520737033262608462304688656221483736645069462484614231258650836172963578946032677809576943360309292610027008556446895293353775641628775745451155810943773883657798665642812035234889771910640471276075418860019615593531346561554953980429748811921323585856344739385341288754804323580014572329227950066881063148010625447018663967718073656634115193315655448631071613716829349690681919292325869325735023389321215105923854994481342582391617604716533702886704888244679132284363053995627420370242288219856958977231768106271946792302567485082598075732138074744410627815490439920216090513158797624218755090395814637492955974158655037624254047222929917697425654646685442431563592414448456235736324490373164798903350628854224369324958923728491783467229327341983552606152480567537678757236657060363199170166604015889899316791179408008591688030456954492336502012546213316566983787279784237355874665711376523464158084333066911174299512780794421135447610873436977799656268539208178448299758891909709584937570405057864735021375380406648581674801492449005431755604662844899997058574521933924958970938578734319869109732387205601253036774088038083045902641081463095961915985427232952946336896172393122713739370289727264498240521645781793642669025459443678721940530986171737189696500906457870702573876016823428702109615994396820019724102197862798343061875119930498600210882768185217966967440609724397317551759233488420573720845898983280672268017192248791729162832002718455835945712210171756462290265834368750944919439321149951368977975157957560181828560617651208695370340238050242418907276879689459844645383072543367753617039357750605549841149462131215707269852054335553083949653682480974979729957197282855415791645261499745832821646717898820041262179376446564825575296326638072422259553854513314410748677807655788577660185119806127974612019671897943336595769287736833648623173235915503578102833709972868264524214852106449146676938271839993269531665103564508260730562838128331252547412521596173583935124171812352921768833503202698646279459475003586820745597639449552821611253606963235845199676333623052689152878699360092973981134106401259186778441911221296771354486738887311656219537318403007907990234804825218127101181332551714227079712914358694979953193692699313906880964173763271616971166260166113119033658426085483416033746487862774683354616866832038339489830483623001844517311996138810855325731507666515643838726660869186584566226870321448705532688346190867937383173245719562659158870983337865718709741009922500813575309238616442534163108063781919679708267504788474797592838944838380968921990014858004909497899260593324181715535227201053110552287826640394067447569628986330004885433360806477485811200308052890806739765755739567485984402847730829872506055586064141191044388542163073933964581071905547365732148014783635113632062695870027314155668487319094695862724235101380201431470190200479225057823330316124880586848134041988363203371335277661044785217489203212246911157534512207123519026478595864713021328907594831493634697429844562707569940143720166479887390276877993442575141856287254551602763397117878807693340883636281836331969733052984620406459264337516600528904856478438003054700474681688895842655735439724790089689607450437029593461421479339329926368346152974880003686827411036004553964928057682209238585946973271861859986028772399352808753294426964260777442659366143752862443984908639463490755442749799744602886521069929316423605139656321779106529298501812665485322128514845140773476263011034295153569611785320666705758931275371068334131214299357545430259467967351772175292328992458378980774636894077084299577421349213930982872919707957634485520231121338413783999485260655598030193341590111997933899926749129351576656806017977719282320434917944650554374216077635145791332162073164483117443836151971021581275139844120586180172228404724743914225090669711869754767533775910913398066545702492064634553095328108623073534539184525733117581674293288286712455351011451480350942272613821644765376229476066172674729816875255905358319868306786707490641991511634687323820124377158837624808748884279697925567957021023523331229089482602073697604105617965348331822892064095183568189811571485559660774015176643732855556897497834785078689579226635047874844735856375153766286272768206895328332323253131168140389198634190844094990289427062263980978510876613350740905372796128314145511964140829274650894873290413820977847016144691247621122517291272477180282220057987037027771595438057670444024214305548061367512726344270626376477037525938301245825294259606098470352322617130837211116149902216996854751691063304192934529954687046601436242322332521350932014589927846310427474706256879784076105689636339207516076629161886561742923809088050404685157183425126395970773495243479707943817007416934303673016927246691347719960246729140057297858104161375824895009652819160249613061722747460333821285532245032381429054424767847182001645894129595042844821849174055809245428444427361863451499063748202232387579605561495748445619522899377664075861617098898332714042878538972593131568570109355162359839363676234196267930358261788607282597614953960247077382915753785636163451841991972612827182047958129269264491499654739902413548261134371811107081987347171443143226408874475803482222709543452578262048822050105349295308249147386839819848176547899500289864831820496242124789810105311757077759762850417734386288622326121374827873577757872721194754682354028597247624548059420249520382138725158419037989271644266381995450053204329236317179334788457365131345224049470987589274175196496986890353429903866525061689095883068303958395154200979879358173124918908824539313066329564197191825482001058262985200834982625623634386983902034374038603364358364327854963279579528269277171891269947345844156405831898967024490755429215330748978161410064477164000987666194131411448323996870293315132522395921223802896481592903742723675157127182934110895589554777741881565355131431045204116606361446835040092602498638842444254365431949707168713696443598478632542475251906270010443659147897775679346705218560926213280253561270384944852218838437813913994844099597822603169647665895642261405736431036705381470546471781662094298786813619839335779637175419423459145116287217898227303986542376265092486828603518888985540427053413757566154758776795104427363425675920499578055649566128330274923325310182982298442633314175539012268747484187917877696600599454735078082097730837587600687650604292060753259627615804863741409732556462428159475532662889246181072111011850871514878197931915162817096452092040799546181727498059976484947627502078296994627393098556856452783484221045780583901506704735704244178975973384740385906189270366251679228139770177397408809094083289534534000636613775961515342623104229444056039637545225526774117866323153985603300082838576035215768313874426338828383002977489959408913626288226489502997053430202771931393636845046162257211637715171396511191496743611941794196350379460944068027902797875885065537610642447441057575616703985336688970227803683751026236851936101090103537513775025114608633920486916217241128806284248743654588334291057844954216124107097800477281345562819774156335062379260583968685759066876335271497703147016160305701404619884711811846459713101891604535941693205075285146279155864279414630180775480709165787353354762187667164697057192766870345872223336086250630755987054151496251212146695815472976052810343445152482726130413083195297393722062222640216488039659847441435164287002342361734670321806988076222518890157539014893190403716155529287317410032375622349819004896526343639260679405787049620226929730462129996375248727757755346880068580568221511540090787494927588222756817942062596103315951555089571874869680050896466467990773913797651237855317903552608661602119498261353318141563691253266365443058136342250397208282362500440905123138351319411430612521915486468434239600911687157658125229073066581915939987059669557983274985427960674147870082974338653087759539120856063486131895464216955601302341488245196624804315694754043389804939578366824455200645276178093142170878551042820879813314921121086704088909926739174373420649028404782757573060915708093787716552109325439671056453060690929723809551712675388637818549986118256956334612725156869807266793886002032349413923721362618823223267812694313607909577807027541004180622777582652767176701379125242822792913724162771367246586088307976937257884589593015837473306716082903461808701865520765404508878246209671450603527732373233948586402335807842593111837080213304935052949796732159087684811296955419469862714298631789059852254101693329911946865485720281507646880516685979242205835620521170014987821789149210571903022583597502369827908701345474622906084403694160613106546584481776547945957616030675740980170946492456410772726878474066940257817930114835100480228805124063459874462751174223336792195145584444730014057528366858610366711940227584267865385177522728789349736560866346840312432759342875047637207250462741041477016143541657656201721839542257763251055232215650174052456311724874671021595541400560652920015382552588203888814636625287744646088628292728140173160381251468742907531054112981528997580320251852608751057298213925572036589090004700977791227271088712906506482891472050423175657914230919570372033040928828523470822444448447097582487107889510046498429975995655747358436415338435818591689422631195168843363183661380452138707378564064974331126223234872518481073267734004619597540444260087970480424865898248842050385485809999070806988862712704400056110673283797678762921603621208876443711930587838222861378735216077281274365220219008565897655727036968805543931704655441519565558215708695843443868492971141704867355073743544501194635709454648588997212577927478165494488179345249378603982882347009970271582057826951786579149385447328031105339476609783288715965511118863784146938067727557437555408451925425570250562182277308042681282563403767979429682871380360287167275166053879618751236190435298272392049069755443118454729370522722612403149841770642988752457262777195215387082745416613893088694812187598752957570117595079496404379163802127402187987574165699871445057156225682209928524639580647323011725189428013821435832353334032204545080718506803827545748991867391129789179306016655712106433472401386453818737345861732281296851148328273569424547273813729796652204192547540211480411023617630251975324044159940208987535509877442127935053950043525423053095496042932486918507291194107270136870418082836911018981008603075076081494260832631029297333528163026617639420871686587866647908276008719350753907683363419114197271108086466294147074204010394368343494606131400702958370257657329567881559788951804718991840102727597886143408710204631017423961999831383882778382912396670632146400404289202184861689388574448161166782293241731120888420018078571817042456739474883516051716934767132298246095275644443366839820013433147801841994414307714565810259277627582802007414192420554205577084328791740537249792441713717356261861110610448060254154034909617032324298800137891055416401930259385483847950462374912079428457457351961351621271781648547973330482948681332025419282227941984498442118850609833323944184185577911764560385099232774368492193900236957440780848226250951745249958122169803969699446971418514158057416499686304069596417318883858887067105447134133266986731596635420968630072783970109485265162191654475959643236739248584951813496379849125135548855469219429524791621006703637685966400781325709258216281104619996938789439529016560337980869828973410106423429083055521640602040723513372363012404195934918157081126466600961306542563927559787728935570572460703252920013870918369016680091639945409431528826801501188048495990912638395396188258800294616697186005331077361459553865684096572192188033894881499973709302090920725882654437053721594395899609163115471656304132837174573097721701974027733388608193000447762258516166943978948476938780767441061360453560238137845638756708331183411294170997239793375724178545888707122275530567151523464210948214784512042212488659161705326295110200377202365018496121457476126523282222963912094941474236452686947783283321702068006057336848769828593688101900481419502520540222445148056967024039498054072019972194700580100607476268844869672958387252233352604557786918132300062378755704045599031483986459826881511561661219525479686184406334364643928403269573119404056862366939969012232045463267137470161614687374495549183549740545705801411999512867791493306153391787938536839594330910729607901581314008600427548906247920598059928280259200831923659443785602833777989312562658690070896990267134584392823539751044213557308941499236625051670863117503286731723970676714041168491938042549763445862493598168982714084320570429782232675392913987528966988384821628700300513320771126705737342984960222993376982717471382221710166433571144431212002263624866847478660925108028864634534806664254745984255438242832894205417432317575941573615911713963736261648567539487722525037725353791263425040436764625300281563903421234320231299233281378915163861361149965266498814401103834227439885761508001310191775068529888532134131993357090810771564133989810279156732301660324585833218147645976104280411679142430924428843579633713130055968865521368106113047564614230315199228462162841824551770326290705806590129679319320632893854362754151358072233148914710539762746423846008195653045978608351718823743570696793717962271024523557982853603199924304272136202672541087755533126668974758189811023784319266083669546464827061981592544724810888269455696154356234011764757748330488662248834794564542001143780100204819852774005580638756088202667205377199140667368783951170152296407859600896520029819535168457284555862483323879926130913358545101097107657780123458988409660142035417115682761383693329135220150896843351339300280945751402021720673736255338405952767587691027427076669570068986506556126670550876606951262476233654221182532897405303818036386021218759654140919983129680996889570435624436034663572997572244197515031389369746275857916311623764939530983773554226117640824897995817274159205979337756931482198292824455042583655721516766884485557931264231069001192245183404692020937472807063608258222412047128872581307114133348068202682016729721986145299805137365857706143578923085883350462576008416149434816431739391990439728476734582556235321167343593837016295364068161042762233072938625843335679255549480378693571538656729047320456259944737507043857547935865346606573287704542825817025066122880121187984406792607627783567294297456944669895171264500738908244918074029934734636720610215941024746145153483773848559328276713043790799817450697555068921987409067854864708871897298761112152197883930336446236201876738522047544596105562486114441195511462782770273754187109729577996911807045383967082403496762382788284751762523132337535786129231136070586469074500129957558614290529025091337521603672197113764640462658194688648670584494366821547888081220220432343408604114312563675061212825874126989713662406539123500661820619084742406835677041594159019435655410225295126973384753892603284816810031008436512848732165235141253329616818161177690502015924420823044805678486608089231622753416412877472487917553049012896290448019523605503652023568733637684927262085399782247477651913514167755638973314679169480251516871354782306738999034830928166301693342615807701005657960889589971806962210327769867045097288576834869603091281972880226730976452589068765576493829570019463890253826179395214029519087704423107437138465633836005479130848703591602196092412481886860802202452299180840523711197269570323734328140611578756465042360865064533353539912647513988854351178283581389163694439636551766471143541207082878369044568199389486242190989058556454514906910132083957312850614155066722159331727400508618233237061949799691198712618992987908209210720510045166409388508008245798977803767586575449599698977076306900629977014120820975928610975048885143572845985041252579123854468182855362666743212070235416550768770580025028353314983041665314729847156560841853540969111379388974267347223464714226276275135170341889029631244728922473449289030284356314696124690989195155181251027097732374270799754883556219847321393042460331950423412904688208601833683535118839786990791004058705060889199122135234321066110261230896877731233610277851536770584139119332863622150913622031805326349969551685234520376667302359546853336687340743538872556067532394514392168286153225865294006688082831567235637688009742088233837615253163219125309727758450846962571648470927540586584378857557230085180279834344410943659132378123205394610864780661348545385765540742895582651544209553484418644169051452871123048411308968844965628499653380892458933735468578906252234889647314990238735401178334923686513805860775961884563826159059177434529471897327296427985392386336260245068690409620378542465493414630652566956572831887096247738737035739910769571597738360325459997279479572696133519409266617941975511686337254726495239191164293619631306562152154680022714898580501286796271949555989590967439432035103392412234909208484833264314755531800438987324102281596657097606033415423797865187465387283871963642144129930029723173738295902775594147924998898996372936847839210980815072304748141198325209506919112056404821430372834138555743867842945927149631009034061480639326230744295575850535476415401187868572812247797262257437006922904534772840867993711406433499996719222660733854845561808519817174794881430385187716873799032929200366466660939103160358507504443462752573031198679277964163097774711167219948817495701280922220755548094204353524229996306356827320322369253588269218878695488241855436530058691769528395215195661596856620635708222251651664705332586597513395568771416735013189055968302396215265645688043243921885291508363426706030778055684589409831619980112653639745224159578063911098046395645094885566854456391033753354498418955715999947989705543578459620178872998297257428224187452526820108803408046923500172072849694673481215326167981444466153936785516011759746426413950825370793296766573065949471977561571359625990651031994383433000642170483385016882913930870457414231886715111175850929116663653393925473714601978265828474597127460050798313880835474261058409022149482600676040143378160123989961537019064687444913665778642505896797849878066634498211448780482209827621652545093084965990461917483838400680856049118483670820268107348036716359694406079878581921962451728116857158090611886658015382264755415132233732665830880902105823267931184169681686803145683087921853999042358032954126927326852881590666309017146881942116580749766402876584893438710668696438729051297368960605674615601502003434780504362088296156842932801684621433038955311230807165290087623087515785102839350278885530635198206925058296015223302534887281529929367044353517108723738232297702459021841969893076076187875318166356712328543693933559059070740883900500192580121467765778917812861055586589236133169932162658329292391511298269222195075559963818037405498769850232627083108146058847130756411313915829683854630300543832901864449290327981023876774375327670093029406296801180934527143546647736304030561640745573043027237517878131794475216730224186288042373811259477763415125002480580421965815501455186683312604229633844258398398886224098153776372198250465663335328900548703863294539613755656619629446508462541032474256136436628313805563660329912936531593751243913067985879926377081119938156798000711283255867583558245855725351551691648843081884108902903921767103100471324682612051155647186206353239761824111423329822698316340905841510592799991481050509183297561249329360647418373765378461641020375506344906824880082003890958261672464943485531577619151007345523418774021359622011875678257186135519221080681555213838375276355090120490125576991039300334696386454896258656387282087997956126796913849522989056991069831857104597965899496030356521856088503470849403888229024836068016404898943553915393869724709168858829704015947026732048996071736932096730163811501778046478978367379075848560834712114959620082420021205667115503021816679263420096367834893054131099039499520801180143164616154990031896665970843221328666806859582592876799426068527938309392478590458943075674733543267100571947907011184886386423199928306718984204590649554960459254653299579484735353359798122980286284872695381632207183563134064039898950726570381407808182023218550695778501832999003411714081025787571483913374653478477036480562944486608677187202573869892263022688875515251102245201053834113793692882763096032112447167958987729928281499519038084419402263653121615090961107891223698046622228255730631684910143581805064652037767556398050636282400602036193501043387521485567176274856104825683696918289325132231638405009947805372346688262198395649817957674284420281916324220237958651043145081896645154446669796313640235921917801057439976019729404340441444887158953127327369453583232945661085135299908146298899341614906624440808239015562067438438267863292466042488998208855614833530348206908377123347754390862318899448295941937727890099945378888258667760047766689739569613752931619054875049877303484865114079923866252666618332259846576550574067303804256283192582461161957385536455733180222397117496084478903377344391134849980482122088080030501535605137068361771663263077969099955333758079609664959329727890742525140342443109319840242390482233271230693212723854941388624017563816121609800249123596809543986080097322668885912855951102676544313566266847825244658455240498482362306238187260071736095883640136086321151555255509616514881668488253675220701733037640989308996712131818866788000179035563717920811661863817585218945400550602399634703016845755441325842463976188673602027760561122750424058212411542094089116968672295594864301826613605391550154373998318660782620542523195568193924018686705051183454213494219745957873588751789572215694924588666963459305697488667530927394914484332001731909192927521431150104385206354704457370013507143704298798271084859291532518597016686909680052451462793083140015273199681125559495004512934823006670213982840428710470115024951851624502353759970257832845259233088612561443364002901621712932410563440210710887084671485640656673236098939306599961000781954171302986050875360434056947344759676637019841067466537707605989231483193570799851182289002178724551025816662528087709566378683228704598480157208114645778985934423579620091220155234679753381118184507882079987183167914452556621355820510302107095102932536862184185563065288773566535437059084756228214271008962341162670213909552192292659141073078340554838515984736307433723988245889479057779209326685150075194811079098825536956973077928425833250079078393876610491879814337315952119386411233489182193751245156093897906059258685841206249226525581821780898663620868936401848711760732378307441119793438772167502110051318161972450946352007660149709501700837268289896964538811213909197936551390199786674469956341730261041343009980129172933687014777863246804863778984220992272043663599134621003395949796263070147430938305292256844120824547995704417854502594542018160948904373511662709890532729021833130877251297604918952283622332407244977875908030437488736117692209404284770244783097641525537270672308875875117369494782168958974745793730053861094450060643006204419193679830739332226742555164064692522303241776504102379852427646083146899312370960484809883388807320530985217596284045376479715181626840858651517237784304586389264522483322245677408881463982719456954331000407017479998322045693601602983013414995966124899809017980124513415764724786976989943547909774175232442769486552660991924890552366414084845081067370792324087227592393807071316991092576183473647525759593535961909827397108110773449822917237419192528958775287369128322665857860055227984511261175413432653551611668822179113716256341548791638157674245595736366700641894823596891409911950159635960714566938490913930522678162262228411473033891168510751746401977792460769690474717634012697493559798337321780476295082037675806184013784546434519149755095864632131973454451647116808539555979746038323594395334431737209782843395313457983242553123197288423749752398080286178023219618494289843625272875108759663622245253664744877166530820378324080292597358788761095400848759347849272800031487669815676672529211961854066986301609294064870624549249655605208246879226736947894951423019168926090976274677043257309288982315969760011968441034617760389590712008775874365532026364722350140318024427522082873579849367696785280676865804586336143180742075056893001825104586207136930644135567888100651402080822437411564921069614326467606802100536986142705602026715144667029272644210910651900137533550168600678417800377293570196472480232218929066552416412707506429945680621249119338286603520876907270873207548238318312435973983002409911870341634074501138809438981151314137430823969802080385998318395863319281801163455126206156748493461561205964159339491382935505357816388520302730634412926911081260002707398716745647799296987635015371028148733157331413461609992113152413036603627208857111713533918083721676337089757068227237553963117976520534033254839260601380355394944977758499661880548114237985199348575383344298011308829640901539228584693392378327327626167151411008416209723074988607946819760680451137185621908459973445809941456443042918110781014594935020649863743052927003275668250253776561966524952248497374239047547292404382566022435047396914538465041234822968423339948465246083469573374648495447309396380982038797015229683497109057965001538852535580194121313431177304695892701486425375215707708468805266292035218570731516707326565840131875217887557452400922813304979936785822121936138060991903270867197982777970492824572629415916440817999859573036308035811192546232890820880654881884470391270522277478048186222045010446817527717149915011929927180235515058685861023190690853988268743466119863391025001746458233146131612039682919243141042137358172847090357861525031241601508970139000884035508175779811730535829471659701284836503587056737247191535330409614729931956695862471334856049219574576561968000663336806315087075634971578414915178228271649005698770461104433283244074351610956325734823255418788693780030818135911887519065731739862599541048489235492909330476299556746173312283178969802786134336265515660482358893219039792748481161124527705269480602916523805596240401130750737699874025076704870437383553838385896842638997579406594124103991917889926078297577232872139106911146935540324459086459293107420611108899609178835052534336948030097532670169438970449196194060558659115517658054857270432717672182673384002578981608512098569207130472215564287474580118014074871815676646732787433979800264183611909025430804126000274055068003387879677822582115119353369205932206531841678225527236963178302299543504716077685050748616048800489594588233711839027651004419143915394685979821822880049318687197984757232589681881547081156386350790613141364082488900842089870956792460952836048708372443399871851766519146858925710916201781396477494941266770854996945177439872912344569041529433755622331402674541198307961629545314023524730086726732700957455340941714809456239504699229019676607373060500364250167518846222386033826693742500985021538675104682504652118498038710204732179298812621464277594209366853105531061804854325084201351388069186797892742657655536510480682598221434391805839528617305462644164000862825996573328485557440773767637901542638881251543737584541729276410877999283139960476677693982243687057930422188529600774780796836034662202313985167855724948838526675929093679807343290194603663034068953159445843774229586701603263886554056188132701876156357045794141934575969459434485457978081508158868871086557172696414575608843656318628085963386225330486301662172892365375954721104478591150610081691580848345081040776202692447200326260554333373669477030698159285446444329751436852123246674940058708821492291379536198016873418027723944134930727494013577751444145342259775794648548310656972734164638449794106039132484911187125065149805774661020603315630958772099797190333541819234974496677954855788176707406693852399688103987385945042168345863481520887647226517891104476315517861189327542311014239844269427687226035332454283808674563431598239322131092733005107384284021673261318244885186092614119312806350475593040871190276864603170983159606065165883019906345556582969407294600144992806310356914635343893167447119080205930893547744116670404684059950889716946127385786155869900112469382113400592323116023406509689397161000699569164503721577807347179754848803683201427376154627349495803405810442552767458234814504828122092221394649417125454145666128239899280881199142340606413242847373765084742096349348484322576709635917430273300417308562959807505917143165282501793597817332891606294461640680814555638917766778579705804799303397599407013653700372702381876560185405337019296384453284454616102706709206054827118305197401127135471425733511260264680336702497990692946377162100893510598114974901234574914427369331743571816933093382351753084316473069337479899831678986617918880150141317991419298182739252634564774970597724307199831861295064180977066697243212990417059482809747304708754425289399118475823453869562741494166909644236410675852104703915017235740925888717908448024903264024806829459074949103069103462989670654537103110123006469232500943458154688220331954608011586813511184713519804140101707425778015328340572657431193538906636541367185146960072496706848205907004952713617662180417136202803432716869366713041776196448117554391766327167266473867676277669996514278887188334862748124946955143513930413626896090028392390864875137368252599206697554661971463360435736492098443472822464891547557984006441792877503066084545680067011984350796600793729772922241177141139768686610673379793956770216145296252387294622842258767502339418286434763338250177304320550549918583457183822317705541467354094908604720736175445127799567295715914640758098456305451462589300470019034690927517567174875544238467578824572161649755105187109478925634598751615879765266685510268585103497029178686244820398922851247435749503662984603729941572832079048359449836527947596264861915006589395793000211329535386410104559172063728000118773063693502938805428695510830209042948539708896638802535318544454963087033496115453446857796696385157011013239333310806552096609080718350986241895462600395364718196240739596421534545891278849892590932601657809744278509174220162387638072263646620142408772071466268554787262394792419794832648011335845753296848219493360646605567448643754492225602842290301201435503521627336847921389085955363229614012973417113678088057481402551828716832733446167958663440771446185499788293115225095009664446060321920612880185338693041246359946847784207745836148628593602387561352756542989702324892665384371363397364786165417868311498314316105694743351013556850016753729378892626765994283029923633641782351551579154245671700599344296987533765249000156347098701479142964622548590092267336808616277173633691548719435634129712824297240980259600938203851391123618807478293586409469630381670863151275697861744390698452006702244183590734079069550885364845085026260669189102009180539739817913864158406562852610722919706838842983106280364149766542015280553462452174366116534715254293955257622661969867406410723285739393002221360719175112970372795568012925024207981747094241701874212746810454234929146199126867346185559041216495365299059631719461781096514453113965827299613689168664351410808651014897017402188341404351554044150956205854546257793026209968635097097616293863343996091272593391269798530508115665440907186259876799310231033668780427314599829582693705346579631046988066448438332106332988632983988842809722268728750414979918151990989900468385419941161499147000290916295814929911202651252749917220020083873841785668221404369222794851272520448151929502114662576449006212796752824309353515794821047925787078663389647148005903710961270387779910738647456436689953653843442007719364594275921093992251975699910930334751700012303633680918505241275292871097356252542640405247306264009858572156811043418455909806476631725662413755532830982180441920683115751114615464094516634314897718036552376261038978445283332232410873466760076977545817434286245110636387397084440736974126287872735045158985873149792865292308813106222288001980260900724984764642075955290388942051192500520400747613566659204877979057074440934149545415173003333518252329535717509599620576585020341896227676104018114678865886904156165216675288787583635771055073011712599279743225839164198158798848034303899010398078592407713289673679754344860446117371886161157558477697613695571273792203788345952289606526510921005629180632265553662961107506991613371673857281079306758889080519429107423951592555375225262630075093794307866845844701776303192870621099795758597735802348869524634846502337517497717069587820163943061755272578276899304277101518628146135920754964640185947763743348804664770033041854449364716294403386820398983479120346803794778468376943114949039825377065648712729111809305154676780273485842962280928945305045902056500026363309896291904990839523693917852835599412239590631578810837939903103831809908768626825516849910780377690852525284396476658491270648137866864931964448855790783229821388057955215343131596958015148706853231862233411453005470508699300049667431648643141039296151070329276915748575406880887812806249476049975349509877840564404803708169928887538246514656416277943647788163199952054398551512673378236696682961387332023270310081814767296942285242230433116265578768228016032523429321258800316522728938428560458745585876003546231407211174297962871830518083953057515253837881137950935338302274104859900109777138059471502535039069560323489258263103616052491183358379136893208410249739320526016189991010283768558480792933247157916010877000521321065703778549413552706498532075045815939152039368385985015303142067364343123114238063752903406507478505961484666318399254280554597386536433695602031543283417865914403743636739005305763977849713576555717363136469648123588713224569436680463390638474965635650854329832824733379616540909639505694671116562860853878182955601983723396033764093475512442662973634388978794670169265029688728191151522070726968640606755431085042530716221493334838298019046002497357647719876120379319328375059361107519408976618614906460447326215892193173467503376356588172263754215369958473993807681089030094160354776634093679426785218547067990146277252583357225158692288737011028650898704605975761737031268790366677980403810572983820057460942969219251671701893743220407614845365172247513562494870961310918352275155799730163847288918116291136969150865202122692382888374998987252393644559684929691291738760367183812615076297059991056139833540913020886354362347735805108903823445577026513904383385312934924892538080269262369959128615838629601488165600911744739204081479705338623534960632288416818800143052038685165171073261039470618060958027564888144913359520960336030062243556756297511054502509901544330860654336328370671876548023740530937844821941200106548928249587682897989409760618437730703464389474051536155800342160920943096009373611000859631286477974862472246013449549500299408306047979992751907491948182324999000867975837596920674442173163187396612094470184180209201723455268738756921937386058482285060893818313317522514340885295640641943657979770750953992638230366258191562887828965124240723724705825581078731246617561807601025661931357229995129850078055222912825518631777161416766645785670417641336216679483265303288169696038270156501129229723031905686775898583820013950411140874386692652088664874450540405139996792224528632185266240629417005263961076559065631130383623658654032295446928824939105407159913653612331756163627222691722817102401011478747744742226462444929715705354424715332560998677661373381464985355014612822890965964716708250865979810582349027333078966032382210616548017366095424403719420435334525150864837041439351473285665409327079850126692518068876148293351222152715287565519425964033304091172104593109544965004310289399940476264256218671694777038888020412840087700663797646033101841881604876155821588440536962208491957855909920352656140813058291030161595573136549965959731011194718215823466196415206011702560725495900158912941548924108131767362858073935572966954668455225548762032882013496519964489966146874068201178172787364830972882410774405124925116103983163048371578620300671038488304586366589067177998230329982366227611487646413613403300523816228007109209554638816792441301700327437186583876349311785311064540835747902282832810270206920158853704696617653352969895558685052525527496559517255298668906639483701768498600671561832063289024419096315000055742387714436469798756103224205764647783753597921277019132334261049554110989774903102614398039047899599077009908658881555201589256813476380732746384629506306637211425983377815471207886788015184649579868178771493134707974773495290164893166593040146913199056156962223169968050292535834564943059027920103487189179971426373069310262107421311459490292124010946178998518563424627334964475364453183075107857531026136825977418472518029451368075004028055593548312066999971151201222723594801344990678100627662257065636985427663680789391057696867049083897528447223175334963759058150497706793243252005954814350339163248604575045095249370643378661301045362064691410842273369950204019183737115412863507990785167080179930177181236804235347238527555679492594597315545349837498753339091479452975921130309247081548437596389247201081141539611977986817014009390378046812064873828562137088864549921829925504289462312077589250550843861521595694933133788648405155576873767532078270907977302589134124159791667584337990140160859585529918108200111158256627171313320132579253400044861209847415078252404936394912075966831463283445808370966752856722183335271247502595527183505527863145427390557271758112293340529986105248110754994842232477162299038260492940508830701709799259454137283762164346439888728084269162463077395456924204271686328029190928896576665406694966854753161394325319098312566806410499673424043242573221329540181159729568786816297436318313109276899077836537011418843699090015530491685492532700771166357829942176350912002330752178510064496137349566155204432878460136687037681533713378456339199518539765713958620170306967585599814364300614444398673348658235161230186352133420299280145462184367849158667562944903284672027952574125156586164271676102507936359638629485782129297263369361141860376385720046425369933176033942117267564225602389517107325033862721224885936980109444881231076946804052779305766058430605047543756512820824750512049851552600289909377613696275921327144896095724137176014849043161739673009502695611832449825676719850931050441126008886310086090184823468099537699648214150127805792589181128691278858813792702004417095470926506444409156351083678587236718337911496567058947172201987624009637766215740489895358154296685658092389761073316599670697651673660754033380486296920343012298371397641479020106733211745656351568277918153771090968041260288989611186332339961809306627537415877109759918534083276324292091970540971284070473002393400974507639019529764944614351851132844562860020525208022840604898132509643933307806801577004480350307050753927009173474198983129746758732171080117952941489922320926262385321919545977891848831854784695321150693466318108576528099843883911409363051412169632204677963186177331187394046966373769765853771528302227066967686060414645278681936426836831459598227095752265775689969916319942600585647412603510066752042791426826224342978314792508906020548363774156204358489566720439863267464031911057448816255081275642108576742218052265701230337726905345394606437936325492549560563845239905757521729485810041167839551169528445009113634844048500306852131870326057805457298690462743028560629599584953440036787644870907703717655764850440275718200629853560559064574404062335957371546202844174435414380695945644422061879375414570606195396148043417744814429677878294062833014319205718134341219716955416925166444647610960011690284293117880917499993022253877909779730989290436252093563208095152431573090418643290264581107859192271089317709602453731476798293966792783971288915255082774453527852031381509601318728895697516259064957292784411436100142347728988675332122193564060436297169998705856645414789338441424256502768096089790728357154259274265919682923767143796826972178603741815095372682112919102497700571938108711299901369813744405272196889078180746259051018356193703956997708487844712789842357138321855300326408110699600430731836125887427396624631550943926653820223094678569931005786778295098416106682209236483258375740175246289573984713138859527231712408032637167848685698597542671179086828243185449527376360420458221193316671302633802938149483433250519592152112934377932657745985526628151380453128421206747759402147734366431251515675486807333599575298007946820536228772609142665969201405971417523637949176831586121567681393265706995274228317645556389655297453914749830059587114897933260169463686916779818043792368616792838584016882987304267563162050309276797142714421758551249986886147012460335081118235817445817183541515237546753722206537876141958023685564028960855621672749595682376623185190868458425657843505699565446700931514178884673208228872600882558750171645511588557210943819080029731369567617979529153252224466009150323080342879162546554805803551578549757253542359077891689064599487566017865896537319510105266591451494139444494561627534000312303094916431298639104486612975237143020028265066056557066636976715742628247532569212462489539590183483499882445649176664642557047863312567983566149011701300663135098472316216623890200431183864747601965847961580760187307343516553366359517002943523580418453449667937353673095712099287261419401109025971379629004632584521354850105297704231700857492022796893246083889811528355871388794173310689986316963910630220120322686212659860135329507900588212932100862697448949647861611737367224490215687731382322774137725813125667284348392297982586926030029248816604967713674245453438862873394950234228105117018224109702486897183606352482107148155345072850702220478537336249468556677914108080924273059687081978383399600799760026486308429764399269920695397065691459674265802216034588208450502973194652888101655443321863914367444019852936421464579260148851549917052341249949708124923632099699096572596254759073371962897429244252487967072759061223272565727383258564468435792258516583860713418044810551084089707859937389859493533767739735546882874930717336616003041374532317915582483610153047167871518686744510067744754868906202314425343941394967061595818413651892330074722268984009749674600660437083701840427953742105490616703853117253994298103804950587413080501339082469822191987424944328621346462591891670578944456311031113947156493279492945365393104120048170257899078108820589404672265854728461843926069340822365600625270646769807281669982154917909237344871778638338239283196092716438193372763918625970348695350173691322735061276030058631333407910556786051626795693822365907524011950866028732161780377408426661498015747710462697996072725552887794148685486461185146665553038729738569420442596766818471443875261094899789303291860813388056527971088283427561130404317894916064705129637188065201766634245179329380424051728803475255512282631213129790126670201497484220379853089569625458392485265032086640371877408882286466424714079372610932987441754565354719571932130287765037319447482170096875454526974941817064330162877405795413750805539948127101495295524580610760759844594994180420687874446944150270476126119342007640129243206935699765803303400214419404916041415996780966749580012011603815620254654157176346541939610941106730040101324460820586446798357195812820406086486319361850952420509498526422455938612843725795500122024037804795426047250346163094646397305939654012068293421836556244194597110089591094258132241488961704297713228896286150731538904423201862455099668258568014961704423086925112769372479372004027610077402958107522053339949056948850805866987303033100970175849032978893127539008054836609542205352508124763417679531464166602188309737716742839138079947852740128734756757873694721894186602924504074817177378634834656271924379300885960404757246028520387071093402274868751526023067466188994241830858408781202781642951759471842689955087186619322333411342799684076556826087723999964466176325639395693237122481797865954725947401234134092508777532490860834440737596166926332492410036546034978869291451272554314017436894183858527293132037901429342755577528430121203617930266658671523968465864974173435249900657540248805814243014588016994803470941570212087552501031143492270648114672180874128216319567308885991338346111422647796420714372955454222644165808440875329461958663997640108535531836148437551596552031493179929543905936138433314961323315103039461089843909320229387708854273565777166200847748226188863314356313512655120240480724078083207107258463242296596700224846310391019741597327479168888823313270705016551190651804251946192624247781580710891816679644530975204523827493199706455327964154801512893369971204364214091376266968678448661220970213343946376848038571443638285177608887702053359950627398644619274642587898316208299356668005261283485025728884691805280823464494083519300961164911199399652657882129590889007502540656672468268081357411604163849148829331369642714349588192109343257256108803252784521838437803707112126318315893228287019407986237798747549421689833938290189024728489530279253844623951149377128633462440729164138608444351794108952061837429107700430383429262582210502509788999082822575945320347570187020195433445937261597495547577054013679612186150892791959781369439074880748443858068498730014746311771766422454163802014675257119093745033866311982340612083652521991873296083518573328917382938603600642025742460674770414085427372948858328516865540674823687228763177016600992373858063485307039125408268213358404530504769250718479712326011287555019007562958000886466759192119171240601336551543878292027110224517706591132409776567988379404170256169147726780125585057859624779071933850984394485702845377604861216987607661702412051295696507738727295926288094547116566315581350780968475360110452566096599706241004662140285305567272402028817199672525132953359066686405557177755468774312204830748799133315343471475967050941248619409195564496653554321122546242362808590220656633103471230413941657377331760278249230408955868271733852470353904490288586169106900949096228309604769432795425481216080648543012673086096388818768199891661418658918385406047214780144119493217358508731352413783110450804963597615124919622344102746760401289268544943132979173897527351422798348483722244312318156963582079626549540297296640273694210143796069102134915289832152986704457468859538043511454105747820538788204445644656967512386662360155464620917776686128955429661369342404856989505157400540454196336876724382716674650195464195570888299685944029970634650493776766611120800995000707670738481578124756864707083539544443310587237400229721595875848649683041216710068021208067823646794591609882584087990138445794592138618901868207240168425453422236613731045055540736460059311909445789602563586430700266944404948434335009419525976024657604728078814204914743575111711028869014070181877981975280576296672976517611119343207874218238837676730579539857421458801557063598529926525324273754060517186526059299062241074743648222149117548177360911917810229714836208330789434976286864532150549370414142129024820148375456545906773227988439553743357118578535265622185263928697470074416277607716372125866039356294859698538947723410169914678498664187726125941838007089685725780171099952192527026397680316484574468374056790572123418274710041325251260587608666475164336283688729039804299688661412390591199050737258015319724022335426085364093878472693428577802796658363252042009623998907552324035558046657739912364105947624337951703410416160251540138688044292071537702852659301450048608606188010773330955653473661302480233110790543079500387172843856262986548978824654205292206913120082316479559495814773968238314024191315911580026617277219439940775682935702237925405613108154132183951057613475891697389741176675387496343700655116454911699966660023173347632669354671736352632042363577436030323091448660807100037062227484165448943806838201569629807226368641701747414028714778217417183866153702954526063461871709391258698389075270981067575688579792909948706479257532301245334603519785771581053651783020313368851576414177777818434418993260007271474498926729759650867258068806256795452645987817906636866104930753424531526825685475155958492818538161828793911845930418917292693216080125479579667370515032931984673070251583428560796928911257666568061370370851645348919060404131182957351888929999781693777774136834826761270801091084655914219101959533865185324821313442249423001867419724708175078266043155746967342242005161995620896398919275080641947503499034402860244185934489815965751013313844913549064788777628013884547746066771182550140122658261140795939379904274191394627645964758461228356425195522118237637323029558204099339712692532561842424833017158029652423185758029048431478431365040828361010365045909108439967498884893691148306979158858566184235388889945255448296804282566684497625536273905514066285491126753224039315465564852133449644871078939668415177004297223097025181845707417589123081177876175423008202673599015635804697487657766962487795472157176153778957615609499535743400540490823816244298483076591672171940089202888772956078895719082636507431573141743940180166537324743769751891009224317791224716076795607796151433748516205020285018476634782993805152957559229026751859441801241073514718344557206932328156717074006108448543088929871753417795148614113212968140467949617414594846151468075195067123803512489706791069666671631781110495909820838534810077368548429159751678050584509878833912763450470333721553662991526655809922015998456738860159102727961082443163586143614108287455205545392000894672483027125379199238511510079789249237904059826091920618435927650232115032479712984914619647938629399124022318377640513326584265525663280099401269403172119737753040655298290127117047269423762974799835705186665641861987258679037319867454651769059892493557319254873555170389249474719978311991624759731922340624130655782806040532608072293262174240924308656026980339613483113000491913805451400035685215331447208578131051238861828141717143050860880190403635582051298916777789124701665899197118022172463031071075357672465802359726432044938064044666579548469561227360391140435601266195046007777947537391154076259420108041354661433134094669859858054764015262142808059174431028144465742791892204632649186414695715917277898903681087586631658854766685866921370381146422041112330734883735884537966815994766245650475528618245275585103657293199593186569718630015966587345479036302963264312525558432286145833330789309078774042955450942542349363713977076523364562980144266601139151855665318155058609121441736193095243031229164585203800054299449779177561084860623058887811582585130718491110656280594282338554574703912406679531258180628391318178686585387427596587259203443296681580618499525421513546986072764036050629587450711256636276810244804709887189123774727221158104570879206660999467625808327764578669101184417426391763112185828379015190226968275808090913102705336843256544088105475380689444679200106913191705641198861896118046954728890866672332854189948029761696703705263115178400994956186066650769492112044648580204965393981181744409463556996006609714678721121484973344130744165561563250234969438407485342056100010361122570519539940423686400838210366624924244799413731083777590630517691222708224498862147958258877433458614727256223781017925423490412902646729301567253767389975130520507868286586171581280211228415820700948451686700433987652945775303443291579443052558046747816047633647084591268771076187655917348260054785589240402752733173223070688686472862887079554410191743909730468562378564413745600664570291421252274795924047172778516248535127755933372728728615654922876453518183182878068243732804960418474009303302214972553969884549951533964148567941369395055027468817173271839597939140306601714269164541991185782685291109580280538085207399835302893056282127001953632222662121293344794126883605874706805247675268033410151303713016226347524441125670188730776738295962477299382877456429763628677341275286567744605304677586379720462080487875018585393635537567463795943149284644236783087226293908800801222001758932556288878590506529047913152335842490113467389728511506559447316782793124787809167752072525485592266331971167320222413364435820843865893013577874275506966136304610781482706143628461049641094292777970086252114152091591969007581597390400371597770997827208683055233395326936236421744102380019563500945390724517052555278423619749886469437127886793530851327914960007160395006702457444189619692850023491313910031420639872084697354473386870160105420373200656288121903692926011552425782965093847924627909751634835437117650593259928164073158962879736405583417428740845861223728287983118443314022276779345932829051444535695502022504461834510154113995140107211634595984975863254053074970570325297851361977854048919155400577222727738302879022612934916254188010779973613977174111406459547277513751028831937625185839365306130577191046945499682986678003178581024064737596081979782313127642154426216234100432891379662399519737736542259294392167044585437795008928013131374427252658592733429576697306960437384385213682545779609526575868461792687432140184843266517550014297310814732410296539698050178601129951664340918177552405794463503574720639197972497035381586213261907223876074432685819723574646531030689084435169175928519250630579931319586362126057856404650587046345835831592579786097966529579208552747860205442127149481133803376773960869476842379123687388289945416193606595442607422091910223375523115085633149385766518112748493310318427613800845116632339730613920789624616664692934960910202421983464075267954385657329439282026060758011642398640129880400570721333069114441288985776052658488072320278352225951381759818990441980479507163619672183078076405459491101066795482709463471105242805626396499588286632745283053644398072859757895961275842801118753884345327401545757153769692257400372281570198300686382370866490846704904876328064369562749976180669026410134704092392806686610034693715125392749569203314000803502232354763272256238902154002205402064074836428804340419250294167579822153739517750367484727527563048242344466602664927269063798603282803825553892079055987836479183970390892253789835424213225557166911530890489856230648636627955381963988075189611041078975324195704205106386143700555837201291271163211605997759442678720340727272202008599742060961156015853022541285120867930829590328438690889894937680053796461312659906034845437230326348912616784666094798226603544550423386117917162245301147125063517715156829572553795919231673851996024954489678459642381279128084345477189087206910905539196201291495917245576945316757535589331878430891232193243724896179623910725408364667264650272692265464156221006685572233303652858235814923206870957382514306985101261631009415640143804317151300136721655137815208611546998721896925161305214428612656718502765994501777197313510857708821215527918542820237379553427749989989183566834921552861058379929725937517721963102821976377364922625176760401230787693862403817437929191213904865981762823314397468505304716877229976426358147510941420592014479950959768993854064149371833395005907029588171592022630844162435155818542954172799211186750976759722912975451543665255340167640218172332361413303468730131330877749203663164642483377751895794706781276796014054986646270217597191351000358630578741315125895087839002815772558075803998741000449617571272473045520350017712755334334136887789071573291960781028590240411382014801393445935601669160926800475060781340387708343679452000390142416314067173354910814017748859138939891575330661124916052143131975486588814451055754886259315966702704269961495981775614258003436759430129825516126522583823593915522184564530928670471402277151615625965803309005063611336277432191403431569278929029023852116067872668306598120366049348432105996008468591308177893363089801955871099106582575483205321324812350649116258513502187875440401331948885972882766540208066213010330876349355681661649939615689034753065655015473874131197385685498545029664801834218764448539568308256059802981220936468506617162966700467873076456330410078048800449530185393252838610166482363546350426895271500511099322160173836646108893763938365375846829508667844881181362352880511644292548202318947527733772591275597744671901952304237448692323318899454334200625212940746621006886220768337517512660283092750970903541060827875014906595320418346830770860561497896817320864114874189695861558839478609791886670720241698134089476530834677011937047557161306860438317844718787288989805803144950676448040776577349089674829857368280554308359193735154024043368671716474332046830864439597750250876871527170202146766419828637249328746736320225660990284922140530103832811286711173563800399411973006230149189274351874721602294864559258508822155437032458005797027584363376179026653175632765294393989819447203958256117492403417364277857640757984492974593594776722991136172206576279369055062289769759478403128498332242103583291777068338115431619507498475157884968500756051588122383181902742572711732249982420144476804168795596264842860798041873875384386493343421308113277561323308899180824115944564121940171131534474780903411094011624278772073016940401099577349323198478386844690834782866715567450317780515520601923843043421215776708469725194894931178816032132880110158554063761262865005246646134452302480108229715313104348725739421356427053080638729974124611535970411791657354437383449960848556586002960911535154743074104674263483741454960646163028268513883972387435679476388018430482493758996306449674808185534543910298967760258208731908148522802969943781111119389442351051954703026741006298043942539252999708119715902191707249938626220464378060066599579382801154341739427926460793576126993220688990063526340513557180421386039286371766856741307258122478892586287722144758426019051153730435394829724832764585913612638166537248874629148384166909592231831893073679550420808686631023619664779391859930583020587265436153160543463729462577367010017695274802733525250638408074421903527334348590935415360216337566386459980302674081643088214560689923173468298301639201632828640397032874080257603119694885381987787697124360016120105869078628084707386642248808967863261367524762860379443309169769466211277894759130464722515549494336529320810062082370889922069537564755288914267779656542354418315664329648272469798986518059706201921352471782988620733440681238492848957401100005296440195386601988011795640503107773092045701839159047262693543679709099072850726425702387332302592597034740523266599545563291198495336225634154782218435553444172160634976073389611356933044355119733463312225532944684680192860694612580155558951030259669974821186888116878316765444111538943214219811725443713421251774687709268375546625608138636464910740863718317287793871069164566612328902474263070802045522061744097128995525763432549399965812914113761771660276949941347200512352543950425605285904033792871142521637647651336734952080962360796781662258073791132827709937346694562926470679481675868957440429244493046251789855008692365732589481461447486888639772281333370917180633501771829728971372504843236613011374668631699000468503515340725394594287688925753672487527505971211874806395816874441087319595920637936457785947619638336477814398971900709737957437751233848202653723150232807104379235537147700159629014632514587680002782911466803757904232130277186160794177910079929370896602276581291291233330053347782726420504318863343102881439297957277076201151407315554889817511001983313131282934160821755118693871820324473944347204004466509358951097971637876243935515325872401222487215035573290686185057535925731507593657332296189120307377168082312429782193931691935805916229805397485761340006983036082097528091526417381941082340491347678934150400630227398456323482991469302997540662469360517621843624367396021251388320966545066713420397038108406487213521162998538189119218352321986077608889004032497300652033020520743816093532590743885969233728250436742215314583948382589830192893634523452275214687696965808713579110969751511736940904576631146356816686284787889931808964688860330904860580173348725341053026955787274709332244289475850333321460983206350400825986282565055447292929454688119802965777070719014542410868026622313451014184666415569960387783046889440200086546316794185747743810274016233025121061195493556507378450683575789526861347858239068153754593429075538587964037144460887802582579893189273455753645700578613000068192913401683350329615234710418321934324596788097316247459259520477888646160998980784675281762022322807129705985009102147679288091488505415869608698699307081243792200401217930131404711823359131901118344296421813284449705229572707851029940379912913893084449231938695394585957468152881570796454593844099615288185721974282057987826227753827482760050414193339035685215076056793964544300987907130211283035187142494278504427925827776600310258240116489574098527763023969750282992342107108574511320052307326976597188623393646340217689626432190916036110174120527088411630597946047826194534100653018780874910907060779891781931988624085489828496490212935834300407104323979759096781134878384698118386067920328341015224603716846244544819946664005186324773026110170018343675288727602495389243890967549510425096929961330883284588653471501559882955979899965344137494532432297063716596811767636115942639833674776028837846605493203447690114731776054722420410785561426904210733169986062272718769313628508572662501554069075742086580155758259792913282543352743333316321902306492099795014270110757650100662685258873413278192874089363112140394881006381754275078621970880431097092769740962053982368984959084813807073450250570857526728028233621905931100377115802154850840574176754560447455571607079723772195751000709984272836583467759763144130517926602509666026654657515990764257199933326690712976800347753791145982784161903923674270514195217246978017508951639885676175490405580820685650123056076815694432178179298650187700644656021537955661758149362691368658302501003774296519737573055425994471384374869834007767281881959391640354001879459148654863885749267695240594754559459344673104952673535061843887960860738933090722976467443682093934172125701987130237769582393339078507432266992559620948012193411697068039067898399685349600139175066711561877542309989289206635258872745573485171647958299107429776448900040308623530175719696125608634053273821957192548818304832187946975027518348123741502750339683819311909854038156520747164866550854304456371332298191559899945468860415679920604325687329317826700594829030832437623922924582774531815523121594795010604618737216317591511085554753344683997461789130380836783075173225633547269276516893032091306451293513445891772142130174194900973423510904091035011282770087296980912306341142183514572426835745171065012950931088462089803833623077522934228790057761208800155815141861326566592980526108724947857535260953217367396755797651846489242714506616194350639694532809378237419829798062592722846802192754719389831972807865623149386056690363437324935010237166132016357845790445955719357113119693969124482391500156472671135306882533814700649486688485974047382766275281903195940473224289411571657579743379974276402490015310041217997478263775856708634235483089378046586119132166826007114100088800789725982108941982718346634798821387909315081221773823100333316538497896266848879726757812505586560117554409408588281188203128686415963784234425109522207548895449444496280307710800797331261545319808266144920627262209223017091563692150373544589630648749407254438430259250927662791224296882093933222211903375288109173965616211405340230413400141056332833744660636250707589198423038812700856159473848117068692284159797170786497327601851923840744037264591285087546821498698813929190577570841789192499882817521508833042257493277850953774726215000734993807625101716188797781605550766295839545279985892963652735708782001158085399367152149255993858369679338438801662088166444652085741154100952793082835613006698828018395052008327833363427386041898993138726576497080515813280492356864091657131733543457213205861279645287044160642047280045495324875428560834264280244172552932543709214101172303108845737783733281186125912050151279138834088531595397846300755804008355183555017796786797741998683944007111803744711420522182586554994065080106947832923293430311607396541570410575676296361656702451654097962367165085363019654139495182239456023321284763881029542756019574918074015843154880088011998086294778850994066450664514484902665712606226264251255965943879569337435786720812378024512871297833736791137725365855434490992010334891192992244705509551196254255097225441203355663204438734237552881479909330190828507903161878042149069512283039522980559888945905562540170858387319311130934959376597078670564269101612767232343087567079098748789449811396564311395265891733854179540940832406936453015492603886063497592182819591368013676775588720838102560425466140195533664387445642472973709875014106551919040800633874589013185083599275432119537006255340205327852964767407493213233654409697598326673195883836359467915480332981160084311690137336782188254119213886217141734221936339074915714889673151765456364080231117667142688218630659289572904438238209373395216545130133752783478009210365980512899350292511323101728249154917226551718861278180321249569673132022088119182117538676065203015447209005124818220578410220813590970529943454863940454104388361819397566207670142394302757157438558238088734461655992707548282084944478282892758562656103369834686995172732093839336860996513933786493363352921518915084184546395954137492890775810183538812489517583292332418901607490016414823291940134829356686698775144802616812313108864283146009221154302837767545852986499946821603365474480899263465275066042419955623721978200219108030130605086616479111180430039327181642734802997501628927067472186065991350020270609223936669711412896075313303216846228658847348012101825087293074637288682561018062287426365018619056778522062000648952985718051272482198991682826317321114865453651508027094505205257064135362754283526470401908092088660369563376770893928938697027829617438740351584212101900682910391380434862108900788701503994832719663981307675351929967494075391353125356130769934156818619732427073985968704861742619433608550451043345570859574971164312487063072973332307811211943410720587628031276644998749496906967031009672883708547793579418561672669016342749102569285839406779891555032196712147553332439567712637216762353098657506065794342956467241295313335266271205058441634132630162785656101394803794475553158164391158276542876867501476361429889944201313005966199140569171731247603672900266312873756763391455784008196927762904294973133168971432214761259060213703167117560171751115858127565147117120715598093316416483260245621626189758301416267161042828727308166122902289737746405630207458261076540837991397871183546173427904904474195423436399090470309151922836468022511093084234436192090864914982013655539759506959755624562297211245344383348148813175675063365168967370854824564993732016958108106995232121883368715929645358390689480287389598340338175756369181568238017424147014259339817962417108756620031836656597345377281269696172154057274259352820638525887929197154239220673359433731603086360024756312624451865798523885400567924587554403141343733655544631613905124948152100052748512965146054662130507853112071611038850003709806545449298295040017705329431790459911996634377318023875408601237716239977240962712535862583276843770558119803116318203655890282007032005566753225833217272808568342590771584091024684410546843436672256906327237976895032460078650280992986560579130478079208581431350951492304359535327069098778207872515835881488163159541819275010977888465298905013086355476414931343004794978499496271897951416642595364705838749824365561616103397135626127263286187780737196522570977443860878758209301463283721827158667195045345450220010660386939384413402793847878411674500561061078493419479562864689524112880360822382986651983939874433358993956461412010494202555594223179644956669000019281694858577350926917183066013130224887901813160801506958762509339825793417990740455842646111621742617685322975814774735510528162589503176720112723211959313385588157752247324702495044553322366465215842824144407192145125900269894720929147739741893309817784287551599621006098354714868126608756007491202184657384481732934799483746288894111062020266529220548310877945520108954990680134818113924274101138111687288531644837141158606421931745795136768586895257042716978191120490165726069136966437216995892374501121450007765664969886247433410877369570705181695283665514986947570082533609443123752801027583034873690520690058539685475474721726578784248622911431245496600021958979385069065972902301144525733532354582308702843871167331865556468221733303037613854216174460674151955961919012902624210252985352582973442785269672854857992512716865315744437979857265106787198964901513348263347275812512057074275378521484073668350597558703954207609061365262409918886907732600612946618736221680679093479636722322144457058336831666066107684066054207863261976661783529803643372252979446240503344573705608578816108697568842874352462820889561812037190784377272348313267056484494292582369283455093820546527001536394312582456145142820926726151624263513291290472926329973193201196124907899188041969757773965207980971157519192315284279094060060301938968861810074660082082595793509884607376223462154159770862671382921337497682475624783532597461320486502866916133494784902441938614373437216658509858638789735264402177596595912701054642410054607324901351094012860468530760086628737450116280610370828158835353442977456173773117441432755172857711892606959489463883064971729357440637217386818062278611370230682392794326251178836938540857122239118936979761518638758452669012560470809200230466054965268644351552088510718460983684120799203388842666957280794146112889425103197817372219086294076238627778155512266365559691969001959305023008778856696592889562351668097904122819275118558012049082662804798938395111771426493861052629660027447477484271783607396883828279085316169114568453516501331171381890483359344661848498574109013193645740721740478096270944187969635708531884674153899195702722610658687933942235292918006244672641954614671780615424604115636214677092751060949239445214302489589866039112474157981256847319642626159447350008692450875083756327957886340775659121262785800966548885432946142447383799256882587023822616169215356013725449039949265871003112842785118711547868706889518207397782354021582327749182619886693171824730963241930993848497313370342464607796219924278151651307100323533936956989526323297105997031301089222847832204155170679033056665743410195861051802662337129865544163209499728614217517415784548166823043144107223041769851264795954351882981843512362643522118836632194438978287354450102137151074944961475275474491017005495971770477234517441820129645363915754421116094479867374929326040348670962278175381020168551094964026726778265721836688481887482071786236539064566369538108684067880292252315683279588348021481032108233425537173682691897408283832253638929579248616356810912829159162401599215564383189283205126926589307819076250821437225154777681740547061016455093903787956325605851309944155026113594080664540122677954735458538393030885237975879936027982906055236959194453346770326174362124944560547421101709201976582594497948435070079312171312484742702638927306037363580513298106863044778440593899178137079552760759505299065260581546657899255031804320292098700847756791748761416239125052599552608297100201184810520967491411895093827287330953544492528671869557194515234913099116917553888617302205175447602464512704701043189978560775542497526241678280822899636115733480297151389200629023894438441997392315117021370598079313439275106573278383396635002492574455625099949179351413502598886681682080594309227793133448320134000772478695576847436344634718476420592285153112168235951481320633931271074748200475456520444434664774074214408802428773394271647322937680086601885111962579930690711160317281006097537717008616318688160888350823304002261242095426466790071506285201173681174994407060985783670092089121720614040938400145979941237496193109568173119358374297729316557128215623556071225451664925132124564394609518239022117518107779832901413241524839003549510950589283279940614662776866777017493136665467833210909766456161812364962604812159099351587736558669941276824125058825148697171018414082177436065867021431912338524072094797144109553467664015568409412641621247388444602580519336677233196842011032527668936406073720744697250353784135960670157295670724833216041993752720554078126758975768187794776579346588567847001652025230801975174320124411403009706427114662626366115201708726778545843358946630059302089233546185488614930186707005092010915377605943984145851023199068480894724739658809336891409463669973631508528964047978241171928828114627802683658885536109445718639304011717619177272089484445373323793931438300733565972639045051808030414529848702584002878033529903569732134824785942771027367475969780403601627370782057641906684620333349779932724353242754202753180180520215560612186858709126374108946742790174035300380575762748851700426876047439712785705279846272700332485060853178372784098406549561358762605750041709028822869368323023441913176253589063766084423357181577541013754537741825273706810257307838368794490898394916322619107012402537994508373844606555933774710432202325680760336571268014063760036247355787827201385878722373771644931005155626736109276212543684915964746358830246570463761630311480663394329967230733452146517755393515490799909351958689376344190092746283888910141670551239556204264917307062990532715684291752845012736702823885532086091044033822393228330182509618938298327162451148500649114170448589901934924813452766873377301059875549623830775614057617146231291800806656916861007867434598989660520193467933659609062254130937067337636682238148344109979957521700423527375018897134984189113365428169510716375695986810874431926095252357604030139666593753706824335422098865862692939679624690900943751607472115800974443672019759664205637525951298321170067416570892313554562610036247159113795683628465775565170793168050933310149720790242716478667605328939516573249761037318548238367095312544094413477466821315250214559119511825840218353310499104166346754683092076797642981686663888369190201210144127301482885673432340194469449339665653924392833623730276402392270061144123885632457620936385024505225714817176983719286886303685113386353469922907179728880598346646210956759257565240971173653464677517673687949182473248593118206949570203553387185290095316605432949801593913318056711342338534343991799916248462566790625761028260299597114740847715675164322315211609361586407396552209573699209667659132361785363151170345076557847371658867693405131218029523553620294541111165669408731710579074738192729472861478708559659770091841792781843460807013782055646959274362828359083311235364770059730296331305596470915409846034850788036111159108315147406281450925707384303687741770042876288484669819171556646367583432486638228405095163351522893413547788432727883365374941070062108660764399775329842583262543048860973227899712930916217852312964986968662143944063835723028515609394731046750503006943734551084731804981679578096420381329049849104752792464672894449795507131200304762006997293256279196538681167067104672675189654489160146479904706744123746749995170769749871472555444656444067073640099431682226046256345637494533439910052420088716266013525001988323890060055366228038174446356666797571240293241275702125553880974939592135039455882810525578254337067343335448512259949502582031585608440609640746514388445586499637883100421367359544128329790750708515241728307752591806354829356188970091263356728500411711191923090629454986618900429262729787854480364230031862178217594696433156663911671759005301016173012535040268312215568147940252928380458177084573056474653885119555128953703645650624459513368333027302508266305447140737079672085044175870385147359347814002346444120982639505388787314914272345548525263279739539780717151433730990436518179138059220222879015675704540048220934472760640316906979386003144162779587106058307000919270091847086068278809554304169069419151942720165655918070932314008439413773818478561256784171400464535170764925170318236893000300335641350845208611767907879484335313308094944710622658035070450362166782773947791088439751317336251267836650039717847760577843296294921306258533147454940284525603516986810795814522560773103351441844272671983403748233970604432615106163848681050577711844894209551228212071367499747303745858527635829073150861175926815034606368864639757785752944433675595109949570644654731545669832159769640745387792315795291067539238744545333690379512418310150762101579498528048602800642587961265266042474847232608920926007496966807959288485311826524749167263029005686181830915749572720216727225114218003218244954027853022514509442189281868771978002280463012082915980346196424404380389845847063225837925053273235281697314249531114101363938061517708870820066837034865288460018683723901072702493675159598822893359313756247890377942934521920966490232566736142618518994163195420212175032207470233359870551264231512157147344361844828690575246461516996033783865093932430466118299045856567852326458108144515665187508466899531784022818479604369330397545705981572033127904016382278372290200846322758536236335300466216674244925212436773612752079161695640442416439667105224797001149938413638128759854952414899884531497045456573875147394624801115749934365196058391772261297529306836947978680731581350826076031300248489471832063822483247257821491492406805770643605371285553836857168530752841046144155439063932382999250507133653207790759601766180811653139391007328526437578266243646325088135589202052671672533048411490807166340592930802496942110232226704059269083644482210819486109329941679430813348255540910103822644701606631651871588691168759880870259588053467216943569329705237971915373962594197878473311260259323824453274657366053437410015617503681685727381100099696348160232649939649987906162563547828667326171811263221989350517780716350363392429280903393792886835684221411109187434110015853693694946789265819829364939712313602250461833413836722471250825361933722499682894255259316683003408349640457274011635617492975737357603100096468570151630330359423003850481398058130088306796245006843501483278344357910043195273633296696651098635429826750044700570225211056949590895908640335137656162801222185432022252022989592864960400999222040538112585760710794910214249616931319139530687452146930872368754173570273192122730332388346949920224341071663989227156852781791460634312785328026179837736124132869430909114279425284420978514436549042876198865287868800086155539614644239045471873442547753687504830623333474875664151675087527801180523567272934399041744732641059252739728395777550595888118077445585040959936779185735509213208765782888222058003337475364802923508277972302202178875833678653967413852096054049003050978333211576695117473046206040303514058448573112128527375754763168374821805416222682474272731523356958137413467289441521888432620897516822135751189424443570008629577142048991324080411117906748076369611070266233916102009045019484897645757935070675889316733671541443243487704556814737221709139303704668039356250137993807239735524022303244448926271140911011968980174907913333199907301056129259222328062402561867808018826264171998569860663435678927926844820006726228243680762288628557165470653139620005683882613811006297971544604596874598485389867562255074882884616042042423523612877453045008558431338105032746238077990356322373536265847329745435446626011770845639308426916775594553065343293451288061278359407916863930002378037453279766353771185641307834279520299192346029340507240579696353768349566177672945377304144801893098218776688137852852623390212648107819378836455910900826533492677719479271725538785905835274367432539302378951295850125299204958326460443827903699326128738703398963683487148145248019301657173180516199350570457556207790848706920342298768461569387039427185705257991281335551450880279616025948358730150731835372510465768127401788619911177632778782004403538633524238079326426930638796155335128167637381278678333652231074823490699211366849583001775233904541619656582945044325694620843791172643266257958937021669931332002719643139596419184090008945146908390642302049931604662218438962144388799696280524814078235779246092226124167726212268493615132858257095779364397696612387357524446531383018548206225972877027042292973163804504397868586817943802084315354801792787394746539954560445510713744427059769199003852123513726871265795184753243345270702629088094296410529611340209245774594339226284748295516009427297021607001427430659049229516315718655604757468067121634724865848643898585333053137061868211028263474642077056103147023351081670930196341899423475604812551307741471174303335505624426523545303067244053881005983154891197498560043766733918384079779378394848003618280507192629965662410470387749916854761078820915234576532250566595908819706009672235671725647430286139574821675199386579729273077590530843205753699149633238438477775612685809780516290785660363945306235706856825984153573243247488676117784904587617260229898354630835527630120482954707784275391507801864347830213250626203389845727490042404084919960974927437885771347888286134401246671879890599493135954363686828794816449333732640425197672964277398040256060204607738248413715335762724754249369280757781825111109474708238693233407869143406141254027251209128517693195702444976737718821780988836983361565997903705248626147520062279569914989467457792445709059298130987583682971900041732414881325192494487752753765779809747317375918909864239820071542850442577866129572836881040256995551362498827375299511292983200072171825462958301001406614428824986325035356980413277594716419193582146459477691496745591661609127194919373791752856104566426527627744973525078578879785847284969970632789460336506357121603899175794877210000464094528206131526261870371296365998194597267554324592840872910908154067846750970135330853306315912523501825913896467753495476861178269121201565932267958110462436303006805510570747126411182675534132849606563394324353223206269492684390393326761601948536939395726431907322943148722670132110005781079073260441942121075088877779045041033751600995064880834338613448107724732062206222424912695031353851981692805009140178256410779533064241263394529759493468883215048855278172663563227935984498720915926640715759293167650431185776906450593282593652400930369798464397470231140661971854829674246711712822481342492075387880430582826202777005139669922862491218641422188649396242083181865102873422818293019828009752423927680267602315725185804410160963999638876377390901599003095853261808363101163421848884213582220956460677614707275188391991865896319375684464249738656378230198968235818532180114448356275718400711674444101916692167359659315387680621488199114063902754080850142000183276018915525978043387888462427909873820689110692724174385402851026214833704863147249840463427609418858058906462209297950959962130408068863640139767225491253889767759279210017474545939179012111718288486810286478330924642442544525858381217775461426849608808787385689196533165084409354912903098670618626326152850935551470042150189443463357277061703313545813917479521298847669400479567932098796086011566717137347792758613418887005573074071834892656565243495810085766816583705618339560889790854529463151203664186050192847975845783633694640152705106146744080174424517599575415317190454906688520349848323143385448212009206406417642866881917375790838885846601761628474272853570699888566170200183571445250673328750486973699430701107605849111862658269556890642183212111979731104269511940779900401647863898567621851470680992014794106134041240226790365579460350377104642891752553698652530310113400047651128916318324343671787838985390060494405314460899762045749829447238669794348873474113839899090591590377576668140909438564620405975091509118287158042271560375421531049341742396209589408179482491459184898633378192496811724298671018266396288405737352833334613593788508503457366873825375571170429916384651541468292916335812840920632484981385965476718819047603108386791343864222770678030758618890676739408281931567490925196810580745143553494261229876992509347042489137418890810569936707214625491027983935559378156662043738325790894819444293078882879945194218767057904384680898688356117325798314902940822511884629075276586036470648232365850672436570977247411611029473340212096615288238339276680974396974614020600026205502975300717474407152519431766076206892206750199880878479377468305582814331723492593573642137992774411343841890332998871019167122018151833458504451949732142141763303383868287568978754993533631555137849882410948883992654018459065010313636333352174554990492858171521495327843599085064224272419347849374390796945700994812728711747509477659337382992988387168989334173623335165080391127436863517063206785392811388270514795499433234979942282787531389060484401431557716097319438421303456097978613081031465115219665328959731648693500138504037750943860615651146675177488140757935453426743333087802974525309878351856178110756018717312733638763474563320625864915048538626805009722059405466341197093110785535760329172062536113534153271785949604202062872682200543346245964356220380599025199057554067410997953911873474366858680828758687311795862228497197892754546577569788361906606210810340884145225895059769685014041697848937227090338455061626729540057965857945250310354858866248005248697493834622985909793802878373765326760401026341757919668168671202513252638711639611764608830105375306333055438395779036640484389067287478966796677008960482769422613941066558117043352827254216256419498383682881397665743614224462152165576844579845340445703342733149626848883205808597017773350143212276014417723033807618298170390567071269678412740439477517848763031385308398061956282187466257444907319707532448953315856495313351394405204070080731905641412803563496271713517936621756300708537792539494059784900734621968479889514970231912611872272899445450508004289809594887848222345861651915759229117662004260505510370156354373475848106869314983240576253350110808267813269698257903877882037688123117154461256384099818155777133826729129696867781095819763243333596114153227842039542346847445561614193267947944821517598518005596470691062882820323964889338850839218492705189975930703769477776955143050984318438251497116715006750556333315408192958810058277637684532240890572289545590358721557148562754252190434411472307953331368533605533704085634527052113302547847596096887439698195867042594654864748760377344358854257532264330093434723874292167750564972501717459048047021981472057861138597111098881346929438819270255010794350798612858570861163881302190995821973459786083787282821245829176677281372216691891365814805674387697827227785807241753418738562838548870917494471483644736068170901125502460247392304894351410196308632042550885583334568041521778563418657815113581798730444494796877289542621854147154962686094643388747625095044559545185882437123767960360559918355837077003976899878557939413705106069472253738072093706424307623789605711448754297400932539986204111166420418773652214614324968606196228998239696881333357220271933358561252247306697318743717462714091316418992666008917737360107894894922570428987450606453042782615116650793275995650636300570871792697994358445646400411405429953158967412597818087289147642251407113475207934160010607148785095012175281458347560943270169611215399684910411791487446346932604588176175795643756394575903546638949420506197798583105924869617036769779098970637903555653136988736634285652672397151299994258836447580976799514127838708484893876090684189529485003702021526710039543705610785729360635904055166293479284984099415121745589104230846013094706492351120823625727023430890719232200538072677082743079766373450691650015374932219374485746825104810424075010520578897767532523549649596065347226559174985421048323485002577387873560936859365433020784125207896915620249841699134479614541243043060053917978779455428815812587948828832089641395300092126467969424906199809037800446931658065313733832413693384678019176719240787889227247212245922065724966645297257633987247941554603128684508599115517778706649642091102761813140597163045546994032118560961758667917016135156766987089088968717045011786762504028226296962281732438928919239900641226246610245484049205540348035732767711247037870691109631172429088556722727673450338685776901165928336900516260388326467802899179632749903527227725252961113863488724612583324851053978437840803962044757286313064015960089391816480511364385842802846810906442901296348126713440978342353476459967210238323982069496676343366265859338891532552994176436345254810413759633287754568407725567152720079369970280944252094365501139165083133202614188074280730525298957170900317422694728421383880358601048342273067477637388164568933182885511868666804985238878383320008187668896160575450721117525429851414110411381061906093231323192558233998100620626105399197688575687842426662431048967403725010081900215917499944510365769583999166358851683915795125245026351868969776203786353030474797454123869931339460786092725458574701483688230370362041947276627267451550898105310956890868067947259270737923939195843659908162837817600750988480096119389414456211493905597454722465371779983996853141567616787671244568600591069218110223603838680438761278020987450210092124411189377476207200318531237653787672944124052709676616280007241800978076989542941083973986393144876267031230527106471159699822816310087034491796270564064587938606452708331888159066729882354310372964176189016307045472358313403640049030906388833437640838047108312015484876884125107225326688458261348016752876884535987275566269813473932690481972319160372205864693275633123478708932156800925454685825724754689967086383459800026936451007265930557285209640528954299489854634278807095855962155476475359311427186622661212667279503418958726883397262467456459633609776573137349483689684060501516640816865602370285149864133769127080600681194798439973984668813140753393821064722302816920750343918916052342677295393934068397013233947339395236516070544483505966945784771780824022256680208774617858889312606864421508758979452141847306564166562249448957370547628377568348426580954205358249689461450380521172276359202363332305301682737296531987111339084675317792815834742186981117257895317503185423758520993268929069392501183030214190383206574206840928678948676936288910867609528234831842715916655696616236116718001845635596276197062883485024527213665735366825706907995664277410325601138571711816418235086159579275562054246059769675320347168178112684057157995437500519987367189146156563003328665689739539524287428714676733842730201900190335573745013670737302775419577466199173200145583270758416564170054828744459471070339610113295065670301534876993012109871596799093523945942999202509814675575516039770902959024739387368283733692217620059657567098548929199440842117664537068125778096822832499773437412157139154942380452984203809036556249914278867507831075687761831253229687826376007469252969943156074329321047521897304070518571178186365861114753220380126416594098848414443267379641710301579673327983486543443530503005246969622145337287236246257225034479102749796777306107993111573403049378737017325056252984622627907562793174050614991418803511666991759374551820931395414498919947804044357573980676204476805468905235842472452066846912722828538110563304964059853038136706463514415390915992525011822582335239497318019507559810767904449753134858068436000851806624646879502721672779904702220280336454647650822543863462633652719681772572939550140370595057342301779515070635770299343925683888740967724483656551246860583120652728733558819974845853543925839644194166898690523732339379430204270168267478289177769681230274389904153950396475315112296024134139235609390585714486627296975259850064286172577529611709473516407330559763755245911940773196038792426339972025396819544185568978207645946284650044265110062927156056930101861646010271870930574360769333278602117414949673273101651325154076076454372023049974281760567092036006013533979651330762207820245399464194020719226601228135046975773036386550576460543951378740043411754040434893210307863307551925978675689820168293584876942079222945576131759861004283793761985774034916688756305133077913289072125973858670151340961290161981919990375875466889601004346457126103084904932358615852759456614966268111951258742347804757201906080006167794761997978406358159876214117826801710229371283293311820352082612406023054605479947979096511711878461705845641823136091006325245411997246589400426613623955146551021876097159787921611970642579571699229096027681584648011682722937647387356248365053010185583623508844224036067775180043386205618461633193197002140052804015175146459699604014513751181612573212235293193405060527804673740360637858664770853992466404203147520537850355128565258487925599864100104470509727283000990457306374287177589349312285053747848407874373518398493277398814267561227446301043239258304478841058704440568712762931433493806672987548789669885645324504213075932132814276580490262458687677200885502622069170940388582054123981446180896822903990326123452390447081473373675842526470223996229382933854310411909519595216596649577181725877144978576125904230758117907381912726073491415514677713282988694922752072575005605889724403628814079985309756733151625472512445868450910443515970573385649672920510996654835378489169337548184641135769052794245696856223509507829321157319424987919038118114686943398294190936961236730337966710377733284756520689487547429561463288439637775819848627546837846232564987123721551992742394798497053697006125711165646658678794592043682167109168043627977854288930138815041609258503443423763640953819907812436637222394041093966112045241160472535021206196053104756623423131030729359628033291433977550693592252463470371616413781549010252557179418113342095811714509661276666310425556627015025418383701655031849508606891524539253006444662144037532309275517416468742867691631334353652411878257066921388751042097688026654588660080671545117628300970756262360881337929226110064714385221815226838222299420975619327830380150445186354093418461015771599252744680801844336755212834926149424439887535163352544921911013199801988573597619613326324474409952787666061756290319787493014026795322890946935329064627052795859319799392195510919751647293251152715548403361605004789811368734503248668463477147435685287586746806197175584787939062058917987260135338801862626177826097432817397611965259850144069447844190220355736555078342457693038743713087750278033643855365505793174461365081935453145334568919593584311752775557123155476312507720553461342160882826610428007651858638993740726682305579724640209535478095288171434405558862096854132815828001877771201799801477950294100936032461341756593793913029096250122459594829257298940992639734169603168175741704578880669291649243192744621634229437751896465741206128979465124433196093460691194845417034162562479163147629257899212762040678775682060429711048408176370106672002320032932036908070684472153727442483842883665576934793039999494649798282841979622512022589449302672294628736885300250637510563964489500421485897087974177961704902667464248920465425007470375168361262929843213092497838395464339316323836451322584744637856489197886400804331512340885099423856040082195627072780377898752028045443247721957041956304676983278378185554843463250281067625266745684263928419316331571350013581991596891619626240312430208133729207618169392703967901517832211513027024806320716634451755648371897055491385584950275131763761509068042635622416527137068116504973564692288344443250555106559712160300026348183456332352709057608046643986499984670769214915504511626929107967153028577191523397380643281955337432689066315505004601725860491716009938972355728773262591878438345691198722104268314761546283559896717511627639543409161289599907957002342019904275761845882964949394694512889362004107449471309133351193517325367877938469599009141838694774645538672105577255213126660779474861948245866843839478643974013097454488696019491988561255072064831171473236375714241253125159566606602576856759916673579296102107953229957181769230629107295814918351680691833188095923046441087015175666921463060496405924591195186843161561613475284884549026875630041800255318006433141047069738243552598123303726599199838753426813231836712175246307733931536315305048616381112580858559707039039727564013211580488052012578572418627863488418542949146354618622072850203073038545966930155853698589740898091498982755237601726671429829767069132874421838005087528591813281291909325526192986387518478821277634397153629506428800374160014181302526896171673500349709689651238209186061831382576571692705858921814490810247440004250623556424244812961928316281625899235533734251916001331461640706839680286959625518576000659955908067317792566571169361066357396685651909797106786584517922462986500726182225978019749971585597636410541810400502508660003794810603040044470954083542350187663060579433678563146836811399974797509132923593656434897812471618897127796245523222727662984366328163399530198514933510123383681909654351107941118906689251357600794744055645129502044606964781275553476956684943826597954981771170098499788519181638449341887137864031887793268934026462042703542867151185163837381589839580923816642614334408618743057683573079623971243119646605272339871965846943445824861490996391942584192214090277219290825036769509108777469170978216154577949523727041411625260126681137346718877253344238857019150919989513019180942698679657615967338150757037558406781081615806161074661956126989131396025615867511383493906020472929495601245749842830838378096559246987172857247909327426918732884334814100569946987522080851434908010473796814634357425783764529212732250148839334007348705802239106249989090239179138645052009224285321157000278777151571422707240956877975399124986656227241473969042346298098232471415597265080551670213234221255931678724959328836145041889391095740232905481781470859694553486196045133119825878521519351032029179191071258518535444448412913126518092450362863611057760190799911021899667790246252762102767122106630823142173818595255874868317135040881623771999066912463517525413658971026392851706704098764713815635745041588066225376741892183544220596230854183854915165904131710284870634367699117320133176148678849898781919143322032758837622201744896631183288678297422053796420702831193874378293247196899081751977677437870476721588318623135789506747119838060497350384287848092716451178427889118323777413208756520985548528838802770550001787149857851113698613764713527706481080706745389435922357892681826460008291351276378480972235116326374242326780984171050575496838850661093171546172918455950484373950142203165047945507705867683711528431758364739720450066299929670624680104649484673935409865911167840664943468931277664967623880199050737070579001095902653952624858492226440694351209083663898792106950718616420956646380898548014778620869422274638653586523141799130019596682472941554326985179602114901532579479685273922368878408559925477116923423461923848234370228244634563047650521521677105986038215558330278018425405433343796334976814314446577150558942311730999680602302808265699830248287112868484563192610483132722055543422274257948592710792710848819497905771701178344832179667780908133315684126416262368111481037402553153439579923276980652285515861457006060885813795082689651107275040128791109950463196330745348090398817801258096212272998888160312821720694417977445901882639655137840959772130422981413444521507907166110414770768871919269741509422406111322193984934993716339913758277133002562300646197843619394360707617012296559783156080829015125189171374925202777319018778889809217898434382102951385553347277914928398324729375696159699866190706572079379952953014509972528275909570769267213065911818532682694564684895166898230051835631679694301259783887310073868497937388920692958537823978624526664573012790654233799740343609631594956375146229274315819363568543637311225760858631323922189657943378008831006105300274551630876607634334597636677720738678012367389470761090843316409001923548053642810851721288055612992745889976917236418073079490536164131437413425936011550274336571014294661503313235066105596091907969517736367007971212916543331737979472135262422998150383852241954449389519740672259142639951187026222181049758664327769235162514319449041609091108495344884499344073470050796036716493474058962250646950218408593102346521028892225743194002392366253167862316462650001384880111003237213605810905559254674151155549475211232577018357711554991834198628777495004525651433719237167913236777258792161573173374903591372504945757687726973753867864183437198631545261408442080721758477037209587390774888781374457172955924943830543711690143106494797789105788824309785252632227380307165911917193943783741828670769176265616679508366815738938916399469731084475576733276787035528286019607222663889816723185581464878619181402664433390745238472809323718607037152399042982298305554807970169059437680252183560617153244101114234465281166327027058756592031397955597365378451475834361042890096123612155468336079006117879670362664397375832372696422715980740909374546242824879343428370872216265471823873393661701778711321954216454515425289814851233485441959682106491446288043235341277255795024811204514877893065440888435200694311296719289040262127385619481924237831349225141689363567080503089030792584790970266474820819242035960887712686480424084222307725715159580338810232523360397312220783110032542782902148742442038065151822509360782833754900667953321987684132265027066617858540629196940172713978233464132934625683257517955822614445200307056909407538891189101809410417506638383143677028095553624873960417837766344053182310358680470266198864070353537606304695230563841009675218960524997855842370580564330158575681993442694058434144348467270691515261628286212170540169243209268171487712580136609981361980340469497155926888157159193664623004274908771649439359175677557534447740169640574835351092636639695308467890673635337753223719096639847532125248084920238193057740502873009317354556354720400802130909555679405635510500932636816161609253931274013254464126386667585564419741401354038199442967050549103885509724039044779276114318982848419598058000284812176020313234820476429814204986450838300777827862646880304307247141663391469590675813977680587233873737489460925737069323782437342675351584397091067110036413941993718559166138463590732758756873599694977422364120410689065719567774125037525873327200150515815320592627242650730817346583347757507538639926822011367671242323464068979499043774280028505386078471359111555909211298463221911983847920796111369026922678635079800182085191025444812934362230639169998706417888584223422525145446125730074401063015596764136095282938047331909128698895825125749836702862954487860590546168356963976384062920270209329479329756246081340120221239345786670577012349451203227820537841481020555627958342812792622261236054522369024202347339738323009653214771001509109341478164490270361958558965919336978841904946030602593084391348884095689891967815928803547433741227418470450077514717679914997817686452619676534412261457960434496056183054880680328406646622825889130943376693454754658397380690776418509443881978150333543605079178123310798017908509975302457562590954008487006500660326775233607377307615318188381485017542913083792046149115567283288779120602134038585220434557829038537569365669715550531623088797898122683997277647860558127952680217242336372173844249760808884583024061253964251810846946541407334419064861022236418397449374162967550853200347563102095681269345295813309692881336703176868264933243844950022295910344360021687270844238177921567769036029201173028684532811894192347094488374553580794526777595578653568079408185025862682740866947712600493386894526506675613264961161694672324577143793818929806536030828526774903385072206954594116154337538914841240348126352986911092477858819712159119241244359378572573660609024223984408376345710119870130970160121520611962800001520263391278173838936773639584236603572433121823480725111949776446014242658368581987639636525295127104741149969406863017337252995181513384113612896446492372110340278337176085319682142126216971406539998275407843731481861535585391350999284062586238377476575635815349512743047317660276834359362115615114264082880639404330065989836258675770092927912581772448418125469336143646954660527585066673961684803222837986642885126142980682426066193578475932493040265338877813903508558346626016142627186007448784044608024073583749965126033652661034495853679216246156054800786594166725491350201893872562606111426362842867407259781720562450937984932701822093176760255390608137307415186348117905217957062243498414643808994473123533394126129277409404803953965319263133622295058863719199011415526864328321346347540424394575787021170207727182528157491866980746926491097218437427338293336821365952678780387658543927865145924841650596479380195893004000754193948428349909116710777238217652605642693531292085021161945650710794094136998796379078279242932049014787721197868419191113142517150520839936039061816843810517071630627760901848842919429010710828513407175129279655108898058014486136598983005547769778500075036553902210901701953217940528647260567817103904953404204982075351400002051030902124501272500233692821032857460060136188095339351966894637203559001116039729444690063331477835617311360826803087978987124651499778594431846354811985340915610783091511707141710898913818008713045695578913107404970334667370782352948733788270344188457193824245757888609986829610962296475863154071368479647656686166881752282354146511211037137029659204429074598906818873769285940164655513691461365671908195570037722548846094867290883711056166522200849893393735753160918284868755503380647591291443234525172214819030656916930535079298070766685951699046370002044690442380960284862020268398248003981859800080452276828298804687277049727676845965048185673509446926032634298943016406566897291005738686964440474200094448069481479461045885549449226397060085702510295819598843807360877905194018763304659252874471345940060187073276551485328819062480279273701080693215937820313229552307501864572209431993973726606017782815064989570919721983305500500360430106252162568995243332920546245617279916442053988109416266013362282174333144485741806632760930321139911983337258815570283917131016041438766379761594036317770095430045222073175516100627029321182767037592802092194025550555601203532308243241067188057747588773408997615421583876706461073668539096487213370141566877006079240726888054422845199442609107758509553619064218398506422985362146914336901513341727072328085251032915797232073554321055326302871862495484917082644981231963648566175746164501447904476207412434682564271933578033076794678432568067998450473332053715758460163309601488844021452311606066402597011596058389028666950724364571992444275711492413136445680861554565023851611102322059376778116332106475749254848905046507046571278205057508453335982112284706505816830552004175186766990266504193999231864421890175817531696325009233773237858864815045339648200652719169169920307444305324511007881870650097417788655393160772428167767522788216808160643985910058401782847462848544799284919736635498432813765774255500784526565635324542519027372981229277531252398994752110394843709401726749315237909398256019386017481996723601478961520836715002727445450272264705176979245825149979855558616799047783758201487458024202115945653379826456768364392185099758727397311752816494538154531904067173144666980620013053142963406231159370405865591444623848331955442984201138683852780674372258779678698358032989064104328246763429805851900592748985746511725159507176192666530830128757691303362954596923290983601416225035415384947301096687211924926254979126277483690808663640203194962215537537791997374702648608377719226351596748143607517758605513901657061950343440435065156585928680462726095162290003469811246583536120337905664086105661793293538482447742241274379500495914202563512473138970159407930394847910127037810042997572926262529296267531540149510809667464169681878048291820614288433352090239039342967543638834743697299066548958008964232959437667473073437982790650034791296903349920598609334786236442031228925723233501916634972642082365022849467913341816793845515448554297654962907073890059088797027511398753005935266645802023427883455383354571569280751067397563407477666296892539561144783976491995046462512013633983035153722887630947726528972468507917935345719491236449531949383945218809938121882366239001520730105086125982815912717627951565045131784589318125444296615779544069406529963160513014490413635692284675706202101730836317284598437394116804344944552422326488647065030402859386176924441141463561870335240353252489754701133879677522414441042832768913130739817800369560331322954956045239223801033324548167549405851932624726219355952451689394056222826238307123041180531254478768087093880977592001705482185598735818043253681338018045678916289018713480618048329606883269207750090042948042145481239961870334894402185518990555333594102357523780762897587288350838896413170761979871229040737421034770227471159711405313864961538903997683117185589276712519614765081788693450058427418618099500343137671666853977539592802585203174397404022722374664826239558721991417948122906432606781098980534724025912355856372762679672623688238353455868243647183426629986555525896414512446385263599947491572146351340853874262430948065367171555462554444389027241403277104790347786322287576299623219067625589390913621905090228887783418101477000190284333585370442301685814979097319427119317491628612081685330180851047892321563652822966190757510867387225146455894738696853195908204019786015948418230606582213935785206469558584259649837833502396353821257544637915859345382026927950920677560754386304919916721212893627494780359085124940321310170657549038499493480388301518808240188792615108570117731150852144775853483050149751708404443737954871731349866629714362328435832304817563548027788172457934727645884931163525808429210836104505700184041461460842539412917282368610227070014213252747424036654680437311837723573360740906330697037647261434591190386164118210121442459218164193828960827433369935189254976543174071603695623402044040742174855164898347650151246082473598536823341974959367099647529798965600214150295260231104818352128505988978756088615476273085625138547097791418743880618371697478562061563577134390092258391764390520112425532148056785032680254387098993600772000806844310428319631379468965084457202380808978155392002208033932197419132357046336392388358399323571271947461452130589263816576975411915896199864950486925556790890975393890657232660157978412600314084545502632750367572094850127258390873810433974886330748538602448974257612123801587098853169329669693178501726199324705636653018032489663130176865918803859374673184468108505241944103142078420282486199328425607569045961384834447318557125205298926676853410339051531712405584712510946146329253253968073860398796854705345142168223187643657533755827789586671048431054016645717172583885596654150822022049395022977813042845440532399369637337218210736879255599085767866447511900271852106634442385251199243793444022293501362934979970168205428904206047044571947143889258877023224141081208473131008688692480141321483204394438085950043514492484803252170124081575142173524970969630499020686102257949061524845463128676402238983286731121907199278995681121711710616623102467338825207580541261565994086574124191425500308512412131854531374920477757869700865834120440273222026385199708180677830351606753619078786795802022279924906589365792752506496389534743095047862804907254354859447424721248362257698412596456151633305533697083313469757625063944228516156662664464882381572946720082230828678993111910216483409722305287800159002703459987604436462126012411073588202639541599034513728207867841067424620879302718074077072463960699429875886502431542091975767199894042405045604773249936495284659515759436807466736590851722084116559358285581371478984020884964870499141773103699011315024708246666927231900300985697714901721680460925638296711088975298247295253886427035562661422947728564901814566661211561919599645908796819493335158035885699669740159491168622369046594039104388701336213824908436720891970717150619860315450199964727429367899548235136571120758919941493445373241059198015071207806371406385405375822013686717701634349755514205009712566067390434807070030476084507573373990407166815972859368076730387809420802262084435071644191094650664338691326896875109028482579680851251053111730876947504549174527130579607216831779883807193110923126721523147576999246617633104231060015409314394611167946108660269435371502005139664240765768866220564586686365741625932556848524947396121702953087817400088784980264812687409963708613136089099237780157313345672056616356943031839345018028581207891329373886484574340450125596461475020826238370072215674857207011622461281273888206760601586649340902487330096010404445743587076915742558775937664935698828908803998025111594552351572616764895678014130874546657930608824718438044028617391754136098569639311161850337521806467428772210302591802319773225484086728200910745546272461659755303955014568940923891512985958117144306104277838888590127467629320403569590479797589478569932326090369236643229915247904055619411783811782658898224797219248330682339200624367597010401485299469794256138723568106464620784822723558118606282395872083623186703945907158548537729713203353385699288213643203839109599919565212792240142647707660186815594342412980442828690756496244993108234951593788234950600474476874502486344075902595446945832456691713292487358942273778108623650416663626388391859505266715552643524582794487897561323698190707512735866838308470128955128710184917851504708576689148843986214740685182501464975294482049041436563695105331000013803183612335067539963531817334296619596935414675309710339206888993308380094861463833099690486114353499758553037516793666466786706101832973293252453510999023942671602603538219823413500023636051067271035647405263695303945419997911419529478710277872551729504156202822169777894428418590108316552765635096789913473787099726694183224238352459682933167325436855713243970459680376060281581185948734692685478324576833778782190060443082669273240596267058270421666412101657657458882564182346865284298447497489191472169691332837454097470664040979789040250626388227241676118875295514198351876491763892416084381755405093293543412501849702222300490681334821756024945721195554980494635711134561385436258499339762262571681490356801392158825876664790238733528087779791676644252664666224819490364849339350439762244345550623558911118425267882665116353450186803024838393190202026414623763124342604861519593171651047441249177664754390069796939251850919052155307516229089282956232599691162595272650863765118635605374287584009804340749714421103043885866031044978122695871932392247421057293276189165151203754482886853323436548761070871835883677241892796410518990584319343989485492965664756886481008493665723880088261666129422533004530615448265085657748557190355015390357438901661841741390928083284544462722747983299248692412306519572730761066728353266413178335479135673310304306130224127145978026838760260063232744952414391367417523015342942765617402179596294242521094623446721532660060740805953598401137586521657796681222652379703385559195043313700254096163940218271928779792931788381186855810844868341239716691247267480569659009258209603813586140686100520582482172041166442753447251475586152834447556192647786080235927739272079007417638623289921492180557098334487529736455393089772886307035576869552239871065323819210824622012461073787081661142541699799660409128501189920920903161357158782625744862909170419315496544017827680862624102786357373296143679078914010475936793775848748286410235293206500817411714448526863298162417629169768679366179021134486378186794657689037883319781891219445466336785303964621690755713132141741385859569573757326436318612796717493662462418550873972502634241868907149311306605083074607652502087053897174627722781900453245609998068415445685163118160985020801028361949875064581472987957119787592873454793403934651848577459448008259837889593697120360494618433804463259468021655780851778586476598417951815988257120348234171430760213972032792200658705666402300336713391530946966652678920243346089598222073453937961282495674874266198343087770484020588332785901880558514655319545791811191933528683907601859567760271989683275739434183415563738371914482243013544069309726434906239625285769894919000839555899390144227252490007258176652268016995369677611165257311667004563839498388468210913806705628924713179348371060516136154884117629185853673090761568353202168502712717075609930622683682529422125773576726501129894710214230535790841277163180664445251856882484660547510639515108003139726455570240646570182190388597096825615090105115307232989107888305611590012471580388831955708909388228464592282325703624840848995410584232111491038383114633966795470524869448907766190819716635760674850972256011875291641180715242679874810547135519262263487847968292141971447839554674060464919455777936118620164666374934683054012659772854837235813620911975273168044064452107341328566659635743153891822957211110280331502127563404021854623140413408625429765945764459888488633852478843204701441372261085927988065401028089054235376855926616990870491109687989645896397808979867560297686654112748869216787771379636600613290283504011741749886597311782505755406236048650202177487492534534902845684512608140086200269333642460815573826568772206604832934540473667954509887331904975909318644198906587815144374761623503552984579076559543467634802455926064262168515503947805462433942084274838719400033878518559359394002285552182106337714323161969678864062124109454402035887987800243245471165483212879316462265627311105377231802472132366908663625639302244361949995067671970092235394621254611483410128871433913500529183935311271386534123835564804821258758271433585500471152789362242738539498390534695468546591252643355542147812001590740271694796319563738091372941877897819795517901211310047401070714981602889507764534434396514974925803981887983268444038247978924228182803459379945670624011996731648083962294637719106066688738299284408596379842625989050588855766866358968705972823665614676372168248699900085619510774957324552053685331649020619624532974343562805747757406415963357789333466706139995453982395731800371337488539683530604538796614764156669777011902537623143069582556223555988198644867929636401463765927571917223596823018532245330187879045322025438771958121003501540984705393055029832094005452793899591013955445359428127308782320164072147844330484231783221273448639062734558401962100185009059645013308757392006990757769979197034415530032301873797699705464383352579726505681486130144248919563923712625992397642429086534278530413899416164315712345869995494962505909490475581690780705278324499901358517632132330770562038163962844575666488313353485667733970235462941765402318898390828382933932269314547992047912441717119791320410399987356750691906337863074809558056267197817744627099912262907168479465757494133276108222201646470299780065658283762373885039185511836198877574555666601186455881833172407163215935419816482632661643467845266315495327335019125229361515005890159852793827785008239715820435260431072944813272092650706121160828000912746941173557112805481105224182105476982158991047487370000140186890794513448522260262158437613422197083911617235251988175222445539722358505320899839469182518358246322004101895650303425670768233610518192031596248729291202577921578933331029484273832792751599984795200839678585340991298282708418412113032435691273817336424650918282526882021818104728123838791929380318845835738383439832836553782814678265340822618681200482627329753695539674410783115375480405605733312008015391061294462760821794953879234283666331757590190941228314680451373801611019610977335521159700095440258375092058746440809315880137986748156548148343632834122115690028986302629780398421232704255255328592153921535436776235277565507071549169786400268472336976011358065479958251454459219021316784913742257780474183501695294122370802503733475880554956672250285464217432160940242504881557897423160403049940259240769577697310702454482114004742668515448342306072599032395367349340991135004910850910349255416141179427597302294030661257934447616237862565157507278572995354873606703926462960413212050167850077010758445478281307512572944788299697732956827915384270101296882851517914222217675777461605381502671722589657852165666994028580624480385152492247978328693986983848387079542116448358300620898516565097123887490070244573801302086642832357300531996302956704201493297914313680401919541057952116291388788354528260811039663080471438846493572287339401303043664845444311336306813376518682192646751471074566676202096571706971634341059996761820199093462601088106802178003916553628055509484569133545875890912770978223318983162034454212837422096532375460652825288835616807104889563083655729097292100750748479166174828792250917007561197747895558451417908346321398948368450166513666065445393225106933950111582968079111508200533757926608560234802744520876030584844766894284265631225984767711507425828961300046974337263679585725991178904745716326749435865644849998160994596221927381276406116168562016459980361121088488949952612202255733379338490553483341870048383256919066056872678768786409344437884230398373860902906053107943110107034888705881318356366003493176065185663675172885870582992258007913317141360724420640844346200602427995581374587559220267647687538199937296160810189091714208871535769821346018664171794330201879515845906527194945344242409224363056195766165335450199997423893098040798534973991845314786795752922309211318839841944053310665651215135927135658348189346605577219708628952123254060504334749376991571788374993568161692623695649137121980784568305449033622691730221860879306539577178086426750328705376293324394215834651923092094129503805855602009334226892155649463705398709333593604285066549151325786259230501664074193986509049175830278996397009166742170293206553389760802780794375884455879606018450709616540824066020334575555475043271940619592868460219310152379142080962177518867300884445567121585289347559215939866454077638613987421709755104662791229382495263685888231963189560149677867700223228342546455619368022468593321594055052512189271738401463233228551168155992330657198901212741629968613448832773134127332754996204418060709917775365139657671826008071440175569289438163649412222273078462554240821868311566117908747449684318840097131070303901870839693239560773298305564471808003930908486543746960724875519285488192870959988287542179842182462834102776202545416426725351939814272920814792565106212297304119855118658007412098021110590877637237151600309315566369655744482757438246956938313919642188894857153767125608196500202529452942042694763959179748195100971427758653816316256343886720542479036501634446676405250222079795747376515839613872356878054633437247502814158433963170716838955070078856283961655842761365090406744728125294636745993904680547696635694288278877758939610892907727283597260114833079347765426042798757337871800073289486955042239745922846399660308779333972415581305257277914472033534760917858923127299592922042626592414097210438530958105050236370521845983535759791249040437647395515925189879465963046589743408454929722636233791559144808133553203737615056414709349118864589213632165867694834212280966420114555206103726420931984761814706271552023194388831082480315452835248522347605042023833262037414947171918601091494218490330965886164304373627650314359184171330926910145343221706354040559254546971086670007159424073124846975742712184367459755132758769022275244837435865675588456811918875436312844152432483136281156078048553106376036881130694229564301444370541949459403874065360631185259564915279124792541104442041238259345041453045995590349819865219972551509961062722773727657923238463754675070470729228114374889325096147212765405541117600463242004223406108888935945418368414582444470543779883676200959553760132224939173695510545712681486714550385661765998481808261653918754961256510696772033288471140655100276653023602720211623474327129804962264284366470713134244004165551190117544400498641427407766322423391146924390727808805473290832648083775661895615154563013148132239029928431149246621947713652162867068512111246790098311828284480867172711653547192780065717199011288387943259255847562062422060445687475954754321620008806445111681827753657722250834809262350584478473274375900709390370967492780045018028337925855153951623892959019183154827794735942811056774611950469777635139717170269935654610160031950796737551892372759951244734737788104977345287642791516411970056220255853620921163165465620450137822822760252080546417149844426654324193544596284428932736388410544353179023254271443842340036475800302153106679649678992996488520857774935791675849104941137927506831054539391198671225458647043256831731523774906281918128655414662732898010364811951026131410019316157645626429334905439499900109564345639995057376330554825096432050967287869558516112989539749976921877216213925599654297923557782976065768760622434985543929506952831173020356607390252168263151516602619001011482042322421841412953959758727423142522486018181925324471832022835191707613489537929234006387049659576543299248022750334711308978346996194922565923560307235077338560006160122395122784381947428795783298360093416108195074184652856268593865777766356444700910833504250445552029410818244628162964683085607631129625490386219536503576796535429531049398150625994914262853877512520241743102774004543936982206836121729962290026953368530731701470081723456686442116370844037507034222302008017724983314471251182693645279725596080168782475473044820445670196676625740953890722472400468423118579407398892536422296307039663154550115213076278185106104032906832032748057273150841031365306956587188447633177835577431282854837481708632838428721195352674046361546651856474284818471877705972661249007182157822803725601400672401489835939283889462589803322999892382353017578148651371624617390370897911345548032423479102266524938463672850916126657363417748902379652041170847492694876008801239820141021551014470174155742885314893744933801093287052634779135663397983391098714188700005031768206796006356140985673161375056090378862282443871662152077049163108452768769257822158657257770649843978599636273448445449687650375457658897034533025615042300063192308299506251141519169312783239531784128313153801408010533811423703797373165594823939600148123892434775581748689769100740244564775129642155230692555817989280875025531487640171532253224372089506344742398281305921705489574290340705418576032522030343306343978781139533045030035080815366996060094218443848756029115885952816783859416357578246926861654568844006934602434042456621048529481557223421148764686445453882304244833572722931828027345318975893544455017511310567995929711366830619284822049984806959597420108953581827185082515051765581925529071781671513999845659107499664513370099204885364163511210364341663596456914951762849756102262466781977802542711019442084737778966677112032491617686274590551996545490197138888319709454929765902451334398823330111984346517451999586368585649213356677363296441254085222232881169051333392939590434238397353436908596897397936948004195774058494556890839819552894729467162991950767850384798614178854528988940594138509539135228158778912745540828488265141089793405906893443568809803205331946450649441497218650239700959502014985632694434234104853379953079856375251767236455063652542701635556199027133794986319497337436925840954534628563004886720229503547564308605446721079343125867789061067199089680207413716926596715009850715200451316261985579303508326241720605997295483772098962831796931518937832328827700606148409052561362653678148456962527976523717542753311344347732650433902450471872113030562669231046887728391990422692647027706161182962929639920441100020455288912531872526264936285456491454847586054659804228531199269897813556635222489910288383258188956090359938826152131258084136993836932990989204393388469355323376706076989867032821023137932207699747875948136065746045191481244046520185497987061054854997359907853394552198282255853236432435182125246130742106974179420353292629549041519833400554059320370219539756971335684741222589708403208248143665059067630458259466386153425288435928659680040919684516656065428133583240286600230560402386645112577752971073577860662888805505093669464176537390248858820099480811895170821012165408160982479978197805788507226479182248012594728431211943935462692658494230089483637172854610202720313721605275518337381526908667240551882142557396559805628804374193354026147029232561528529926793161506088201078354177717281024155868477353010035067821030353314584864855774681369993055385879645474868872336954809123272474517545368591207472487657394229152686981329989393387342058614084026025139877095104215130420513863356892808914587932855672662136941130168778935804723019777214687464573049592709020869715298183672128130422411272390129388146623005565066408857133067723285841730543576899996553897944226349936470075971119568146272950745045660851241437867764623720031435067560092990093813855871616729650207755662818243272550919734012468737664787646970364525214216612085546031355029067773166603124428779007146882640443625210710639487038784837963639583165953109237085541125512151988337107936028963689210278985521829886345987593153824055802792207920364909737326483682524698980321214698610077617810902183416116505867366959090136113741609008165899847128435635681071773845793595563585671468538206245551840911461381966471892808156723130720134434781725430634749196904439142936348112879789500358231893786460935618449930936330671795228420956849301032565840834449919382733821369066867378386188528969726953894199486373217246647972482210787257977126490571436480003737797547726145823954231900300671482822865136302661135010340868905254833992429528433221914235023485382078258805722952186532811727590538075228173366345623368120478931279888696625293550130915584888674998802752713597103815942444034362656433012874498270821098445163083428531151515989930306786821723561407716864426510300772386607071742380603209289346381735112505359697061972872608133691591252620485896264549195873212171640161097115382031956980568892056468649144685009849466633784452264669150835485961292435175388921112827378941487747313116545069885136602306686989494722818477400019675436721602764191061991077270867224723394838367349291713600107918273712667352357922612154430670630160857815471147825207231582316283629800428787672601266353095095764411984953483619479124918358691957501719482482917134549738352059027413784431390890621927092144499826607097819449410346751038322336515128291231813309230491770817292958052369855008471796068939855419434481256631510499863770033185397561994702778259680934014223855870141702720065313867247767818951752658883146374448474501677670767401271462548781757000015882601349345913200953948161800727353224182227127083564716667457949388715491541463405985941618259300050810431511959079038956872173121910737362872430037370702109835959844546531026580536755907994112538670447786887983713899815544352736271881247051605113000368121673214903621112968689753797739271266360413518669188433368030436054125473212201262575026784519434919325026991598432054199671025789916449491897770021831914045789745805588696117410623219844127749688046224000223859856772264295480152241228201878931181401730675480263739178742125182126858666921701228943681672633310619777501264075674465176098929154826038489990099493475739396843261906282789058703648065164179952222205713861485449489480419390969981695086762539555433810736326969633451420888048292097203314589322539367753042155966647290349204992609934189143105273337652884288164742420566123709555880236265381465074057703244031637881958030638942367021734972702141551833402861372181988534866941088805414735652499428682811326003597758918795226314865833582038669275601167601386736133000488735072466060865592323774125947418543773421852222747034479194543274741634363951856238279355886716115287096849338972840257033950889910042416433168870926116553574712453219164801795550288481799913138897621368801461044863442823481413401572318711471889508522153050624729094308215132086039975004370143741870698627605299937842684573127104595990072539575217370055797369274953088993299447311569104070486641233050107178614475123877140418882948475644568258335636953233301060604938357021090483345079811842181639424731285881893239031396272832891492557994500991556124686115815872938310370436273445976628896105543965302525079866901665693941096468575251598856344984938190336851655636183914241828951697844500155707162327091451628233765343592786586612229965453697203243371098425897160265959372692677684124451650879464397746637217304714956889044744842057634658015608548018230462912922832484553819767641675500251925517671056913098545578561821129608175841394946260416603326054911655304591557462392000695237710442857865913170339377519544241732908670178970913230064615381928933973389917993314092321931589755396542395492741686004765269879544450515979355124407939182999037691206651903264951212677288669363997108155650254274511990489577949601864465433513425111794198974563288422584782545075851875897532695087160058434657863332327629249792549709982645787202145247427338827533671067211991684952784161590611305234396682989748872936396336034881197410311095374228134278587213364311905268664606810091573497777004211835478865777583753613228023020169370790224368644539177887536982038489423412697554439022411509297459751085889693628972125197604747644743057274429868860275491585654749502107551316358317042526044828653300779379682153643590469596861457595602558443305042378605634490078818418653134180104787818349842570091764523598880028510887356559568558990122224502503493222220901710927353134708458793548816999293869986664499974165220758157683531477068701343270391683567027740499068433348289829521907717844804871783411082996856087105048598664100630487823594991057322717503362120623543988935771510440848627255509904096831685158871786792700018503942709903281900888863802052822960051494647156695356030942336346225157887013695200752012382321136847273148655553024601418631300712063814131825234418421452024327452846444668791332684650184724545284296258258513904524290230984187546983649645308601005315081526266730461661353215714972780210011119223559697185452594728714977440694901055679872594077882306013438978805762404862824201677371616387161350777298182827913206303582969386718696055822505998418243417242302170278423969591040303315138675836346710908089979824005198078919805275989163019995996322749676996686732983964557615733070149932020118960972278344929269290929497574128746415332936156488313714012105391859855641760464591922314340811227091592781072208146909136431846947894958416202877763959514926304525576571425797895167413770273066626651488636694121967287785795526654041887336071522216967493441222745926521760171205864067228018830451328032017112498264068691255621260289203158957414202409424223464071782379188117073345994532560349267070718283813754746508408356056396489808610558151195119993059830566659276425558371676388607862854139310490340662075531510334831236181733284833011232857740291844973714388965537161823654199247558246225036538223348073066034512966875374849649845783147420024335642582974532260933788998413356439972646063841921684809497059638795520519938002639192159714176722931729066639206863165130708169245946940812629536450853489092012386383052374957504304963804372152382883902697077400529450922440492422318027817880604158717356937960669688203842484900736154394866466405461775042667373377824129322716413051011443853936812493238769702462825717841120368899024741330555715040059533249721637138000332582996876390856454113095090680105474650233368884698986817357919244996596845930825165184910563172749608556399354658442636667878400770557935182446062532875133235557762141637597497682138048742716091929305303406194043192969951915212596031520235164395315053180870354655904245820995646892438966532300918134964452460228626718258418984818172795271833309311081607066389043784048787048945719154497193121085217416042372922676423022442825886782487371107313376790344311196900121932161606403566535001935419139838767612363226415548532275826675121805875184001301132165936715612259329958667561976911800359911203629744749940275251362124871369838802814018743347684959495793095837979915851893101036172043069859134883277800808386965142430422071562198898463815925151304657947972381368318924655129180132716207885215670887366094330756650443303599541921394045135745337619901864638972679309508668287972528946231043100766321169025143937469621163237614497325105403192430804660496322375386018756706205076899598631103520993048570790191739327408160703256636123498710850423986287814293163236636203470617847648675159272910602510095942674220536286412456902013584167603021359108185038551413369697870793523524919844280607352104830843081565805645651730662873069159132306683493816306043542082208886344347971276385023942857861628615567702943078038601737685680700095813218860777312113555633943751990239318566948907561164621667339833007704018357482541121974104069311775815916835840338202626085234009413310046727182279889516142995332495534138775555102934536236719936124836238570618084759276272371368803627439596476274493231920072894065916673218389379169115390687366026831575955391546930446764288941681504468971803717693326334056314278014066967200365328058966822932968275815487992666167595057629735509970036489598947959406261703931305123527895802365315672216307231890528256822775431419979185115401289435619986973080497476741952749134542237783636116496816550111305845134005045351329644306344214719899953130873175071936082596651937207915237629960039807949516692548181554283496969843061860127471210088223812595377513239253586064342344249676900230159705591777160125069440145032488230221399771172910921945647547091912242293954253808999848987037560931110098364063857838052277939768958873931926616985386355314945723022849434964862758793700701222026203169265202176419002275053466940927276015643187138419972500899556536415193691711301758725134156061538132205682654883248682792077437927303266584399520020398902888209812896006930299617606321205604146050975733384747237880577928019182048584337011257979631009713212408433869462752771566614271248314553797395700470372854094658601033794861044508847714415348023675530842533708615378212981232574042396284402887824363716779732238338355474334556579135047647018570102493664566351610498030291777784337218106330533285296498455479711508435700469879595408873660132374980396921534178661096375292525437332228371184509948657963779008758586128699993886193978284792488986029597151606466322590190824535692312671027539651002276285780063822413575497802199921572214164765825884346621099333060937548988365318760521038284280822354063652681162127593495042360403323410570898013511927304256577257562253917790652471969880748722636015998939041964900961050484641163226284035322891020885414324796199027927998590203595685225422679715355915408646815096090780378622525237864805073203536549347714462810572592435257847043196529023117461365146157843129403759706893578228208466016179283006534341442217843369055188346639042039451234500650546018434759679586275167835083169915874938314068072652628293397850658330186900757358156527357882416504232401249447809127369749296836725292655172795437917088282031744238655485607353504589008367234292650909561239527057001238532182659483379264847748851861333104759731145659260060597616719106346997104071064737475769544309867479705664962702713191250787927150140772921352685085548815093591187310212849494903431389811609048264830300323090276468852866026162703946732475505452999779657464446077940274888451868427918951594762935997125504317135397863144424563157463167066158882835644942939499846722377851567291533366361810009539111125822227659894418529416934582020445349525660157116724076972251414272674056227934381932211863585608337914238070534585556461886219465887266018838456982607880095630218267089933846717094583399178657311733517743050673295153553689010079955543811719602693010189390065928548533045011733274529258872642549484129524030644640056848636175500558758161559807019699922396793342035197963868856773928559920673519773317241929225422541259762860643385904915216866813795642654125494496245933450048389555188583975174652794638772447552063996592668136764082141369916480808482368326885102381189233856570961249917326417986772686340504237533591351371903311939354382757787392385981874433913933372340980329410712951521018126430310344229445166750845016772881109171295873720501461800888765407195247781619718957790944012985642463812101123557580821964815770466487167901244465564261045760414492870896788228313169964290332428554173760346644824325814931040190761184421123749043475574223218785659417224445460278029973173895902462786334515081241902901032544402538412227405727491527558446720268397949210155435827235956436371270769809556922466889048615219392236802287215526626860695404034497129938005424473682739015430582589089409397525228307187615861051416250319521445071700052994636755659307023910719298468943055645199448408287714418521053967546369344471467691587799558339002495494229170792209097584611166511361453715776071756930154581840863996253035108785358406868165192614200559405247805333391057040774469877856804795308607268523561799169960813870353428461808180126664344870384632464261683148913243520892847263462237656937567740608556027709037696285926150354608147718376933860215090844174440752686890676471891997668560090639303207171609628763055197148943818827940739932136618676888582889571487710559908826210210358126927944568013233164007024586480821379920201694697750724044648204479119046799726050521283539075055651523996088315115246791536603868826590826537784169050933448653062748395735919167656542817547542244335231721231133139546245926597351581463712701003250996691491625685593668912120214306369554042722919785023856522495014989344474736510687850118894954166089069611386378249960409498424076570785419505016667487245266344865254155240662563291587108938767869004204239089323869693482681476355386172642053033674358193776662918822428362064533097064697668961454722092568909377852851716505033083480198187062586860714190422522112320558187500374018900159276466780954781820293804987614181432417380197044072230057687546227112565731986090760503318301602179714157278628268877473733517473699144685678366424575233484425703566823610111283729578344512694075173455295701319525848808531701340163190043927540157393700918330159936634286016518139041869007991970928782820996779453048184285700749749551675260797601645560834250879412930720020611445609964499093510955130009785073714142702989422659154841788358165368699234846863290233995525307856942114915395531317945978588621960184542710354168762696831777812894487558107525493771904909417530117638968218497790948626628002173393179798680928325655910546738237666993527037501978917589564968717248422879140973806034606127467753719170333530252966109823743962457905500696856195579085987110565936775206765933645177648688320302615849829191762378736583047453451201525421662881053550609962571429730536783680174367419056210022970492690469339055028927508031892238863089486585298672023977300342926011770839405694169671476343739349760877180673549464574959682568558783060302111081923759339302097359414501755394406023289462495796702254134730419568433563685394231182929968320190238505807566758611259200796001999723552254727334728901678758413345789410531467675422230940135531914227388613931933975586289306892069899915708394294261017048105425043081623266518544560612739596480680903929899324791941168154507511066154339060603361141258019385446873188953066680600693550447947358086908857564127783352161387366326337355151328837626915577456605714268014686778756547275017811997244537550580011460915026549818385139358288705672825105980556050841765900056088201757078026082092634324618795752817625263852245997420648261308301657047489603106101758431156485803531385012398115390214061017937453417304147745226213435577389451999041064910677378886984535307814097512575130742666215394960477346071284350231254369071234521294813939230325111846642702475253908084044007752516515740112146884876922207982730103458291382028484021172164639246899581925675899334464475733472475680830795959565603192164656887328815687910391155805735078471048874783490074504870745018471440129062400189794114536001001658292865679988319020027014491491747781453815326711422718746012480822942195534670744588373664749266967290142952366019548184455542758670094245062715767105244604996450979617350386359255196399230988784304988707018554554203176379770253321443120126576377215988775876459244308836355779711959655412520279250573862723166234919229469548491346178001889969511527595848807304672245981775083593892733170426694486051364551739008247678948832184864118826544540557932321149447908498460843865567075102927923580101430838116355818001605004224469860877772938846468417555171969031867057186833383092235268274189411697853890274284910208673854232537133158437652058727990640601187614728947184140574352445383114125076725323537367833754203330657156641850459009788020975641352784549041414354117918222881583514937069993893527030833466848254399388629007142082725774535229240250219185943007063809373121299118724211240944291690984599166565335403612637600535388560725615951257084703133448325841418318503888609834650387739253702237404835626621570845348802267226156166631942232411021597472403176881708704748432238691396639778748655190286851849936264665894534634866784583675843222841080456664908967238308951045212318154231824878681265696170541281557428729761496636739975190209376337247324648222811966879980483831139753413511045909926762191455522104666237134978528785312093693782735236478230192321689945963648665045121095869926211457485227967673766889777712464784074691181517334558703565015617448893551004176610348108680419713614732662213071088056621816933644685127573045807522536604209853611589229617362875791247253427046539346557775204552098413063870148678453849325395294351708370908545143970608789660286399040090579807202087218292093976922582621458841685421640505063004247943842983795262894062505056193258926329756734963831744649386505890464868660414029972336032837615872582919522055399361667492669117222184592819923857368123074193032845726832497037877632722797199017198785224822762641468885347878995469635944812144632233413772562963182207617301868329696343793507312830526422895663165291167331143808146929644808694325786403386420292361559175290897626339204867464577404189489050748764905496304050039813505203045330652570302868609224912931015267666250298029712046082472976276828892960496307753595396964211623771445905734573485100179550111691731241774189735260528375434613093255401404907393979872516267093219968328407908811881189648205958015077912760039191024144740948453775462512205087300029544034365782137597857534995292435939725109048832114047890811683313367287380431688727219244527155859995843548388151520717967493959912023661503863212792669519792110652006258711725280807994423757953651746833502691091192410024434772583050866311123404891306456436741422483390273733920675327119549499251344472923294866662834429538728767287758166015821249019693838484187811657210727676434313091205867861490995820234240096630966019101321207541562735710222162537133765378824010974154013273633216411506075524672800476660210414951003214679558129195433018488174884171383453876269465658236667120854219794065786584598376421125751301348318313081440628248120939786321533190227851600481468085894103036220447254607414527069598933412040588871308286401153242494638428667654829197018378368877998133307291077985464773447973379077824637669919114396476489843112789577557158102301082989501351118832676977847788872237141741415584292920145003894502133716267456074553507719258520332196375980050691993365102622245473632099133092398777226656746434054847554855245769229599354194572167680398536116045141958188503065252371360648676106318525961872706942820124423803876798880492651757757781873912013347385009472070894559957866818311728767679687528261644328424886156197866278224728097453575711849422804795481827248253730430298801735775356842470130052495729826915311368059166015384602812393407031017145225999675403266157225618785048919215926369631545906815304516780693283176844596135796530141113650046820729973296033299018247949467224690368234259152587026182326993329201017078249420825568776677257550170421782670855709854326431935027247939682011760534944129178480647271904591723534326034400114759033271071781457116368128695550497182052396541979379256020748331682417739322704796517103972964661446856388914556655140821307082694856179116600403795010193671639834780848140817244126430463736712891515719698788396881233641796488588019222303010807356703497047207755889335258023532650630400789792355727869655879805768890516642511206042264008153572054925226961139027253554172515566108732523624597582731988811053124782469602931862478165741361527531235697125512997737929982748183583865073147184293858659715966444630417328831048438729017995417135600611124880598142045409267713451687885739561809259831787502189085328797899704806239094422857531648090772630148491795207058738602183024722056303450131133686733431159825316578168100605334683716529939462636178882948550260357976793173499781564922134057384016562500780578499752974214057421694077131638695197289840526329846864111713220715823692636451526529728798168890649607396402845543273037022519989892331893070465189958197649368090010358735526805207140694311283562113127389874593616645474043127539187449626046534227823300856417718629726114501797062274695082629637373426932052372023901174930506915923142118530772727751675599870904950243376666899209992719788579868269730502613747064086107032427939422123269444505090927770514934693107125595710919203079064566911706388669213719637196752614001126865405922085584903021863641035293488917747891045033583072175164150535857627846792849717914290920775609527375999419811172715943956694723987049494431366355028011849605078303930683422752897757814776522412672773256160011228491672572764600198073046891057467190047346891139833320551157589095700203834213705210524340068531528362918190405554130747985925531486797680377642448704223023693990077524739244218761061379364997837426030966587496297170075218802322505580944450415396743049258525381693887995148795463982863023366825271843688655083641254602526785672496219512866015993733261132589957343085978418426087357644627073328513405442137683545721975344356475306133349452320025799918290982472973747433980545861241509149763145098492506707740456484298890771900985524412755256225864095935306860134622394551044264578310397043257187133183097039596051670723104175323202676349612976577254472528905243633459771568382037686603129953013039639518618637041657775199002827249570727043097275448121778004500003154927190391332799684792209924145861079498509593761514988575479133661767984354091453007989647266636215324466810089292432985480720080356511964094646607796013696690310386531765999541139660686770701495678660884859350826495508207150812142682599513323080090445439415936756472746688040825674096194612740689563200253815166756449401400994150265647262922063808449889066213456444302986428461667751849043653536911822568128783210337658820632519919669594737848427402615608328860809275820408610038092358183562572934941851373286285887833268625381642467036195948035582681010015826074337516464635193969031523293072919215121032476101376737320251822531925837128496528681632695912710766365748270852585667784450340414141361379463789507536365687730565531372823009463221175802062573389580414742161996457080714448271123517122825682861128880255246183004421071407304305067147193015416775748005213525275169115301619928829259933789429217938622234931846561031917640535435113607225983062148469233795333066874965881193537016440156598320754452224384899296513750034154801418780993439849703614453159835468855867495256822485464744329395457173116830531515842726237255996100638012774832844068237089051401158411932056004834544388987391495798201053602952587912234235922439409566582415495417837703835423700870040535485072401001378932700009055382187131945691221224725204398430481502045330698384520147449315735398729066707388258193598219466405823628076008231273265183599586336066407825265361878961120741452552549317067239782708779549583987673119337220178359360989017893696704931345757432245705052676983113890283033244979515551197866820106455699739926859196943310839439141199471181807521773511808631756485500182757729154570385235134129099918036822333637981319140507587182675499021019496938762914747523354433517726701651442051169698410280424792592193677308491364844756641103921478842298397416039036107963600512230324559522955943049919776651875450203204127420896060476064642718687334716788029524041730082852256688539569486037556749036354891389351735219570580987705863561359957406043365475925748937951055485937773101743438148419835825265640260106511889908497691828465860784239408436880342955130105817691269071689350788108942458056611777451538308551622953258426274904225909048294928557581795276924337668545417002541988697172848001223960362697147008090833852025569348476977212388979727858204730388872614469539671028718475859589212479773178971998985342709422112941262294182854644304406937046893892495494742009201279472518623284997847025623512543640634425157832881674002917483275763930611157897979870263512071626131261339509796756796158339351917003759641274307279764519174850202060777402241351411246850560677082919789894861333259697368642457706198761704283759655482683390565420584465164829291758858979525915570955075025576022266946372429989727865010203661951048809986190144123748129420048584586367186007405228717846827294763081354270469142700261233961055095448005057861662509799250971045132325188279797629329837779648563823212956829186243268073809251343103818248454896495953333199708915611562111062520333301455275876392334231116847209848696504696103740204965205333161915939943047607054038567511145380264788096185803303255364491773287932304694173383188830481977635912760186325324837103762561447598069603995903194256208126156217512308142058435940706011474499450433329930600617558430419644150426041416689295251444361184497974097098754210334770958845483714208325393531495117619680245237522472597000600491642376980920038574391273794536746916211552616590926796844417892692268263453408266581965707920401915198067943388729205169908109963236979172640588086615950501963297928714785995358710827471195684587492050700615261127460239201014743552645040086851739777760209526810359278000774722197033183572247787781121575947589035509568871567009484417678887194860885414508381261868860599355463955652020195697844110550817704555449492619068130451621807077188683851942436017252709645186801253450845198233913719892621270088361307498359142238001249979393432407740368513597825170920050465791717472027404293723198198339437165916900959083085877693477088945621335769264591345769941714789761496504928341214454770391737191922011142688539790750041773133941967541411981669818574191163748302721166218209255990677983807131412350264427319017493299002047402686809496750902036068822940306971116086203365266920340112394314249208230122041730811101319019649110410074854110440389752882550001920900176799585975119000192777039792160252561246812730079429708675848642755217335171916806429353701898374958952480627357725753678859118941135056731283314342826678281235289528463815539004079554298283202524627412745030484407512812622588011455082049739029503183793548064260938410952580564615770422175860812879441976207982330126376032846602756504195265422051685404944682919482794636877367815966543562072289519468570653516303850030746256989230742029962647632616158894476261474975658746252679543952005241364522944511782156765315736868126687122196358025525284965901106011779951672000582628282247019593216945018948648502917237612127093582054106087005412438388298836723274955799897608730267119005577567148991321504408128401333150164642441255434223606845057787259725883611228232469036236949310976325520368811218331508523645026542388892983184027385215524578748176073777009244549123063420771693347205025101624248422403979551609041323524535605747397927246294155938036571065261058648029418090970909143047209276282787476891950422679757916863014276519147727832800880689011664660978028905266489408780305141299120686783981748254938747715820996932081223499790435925481074860676361929146022269087765791843695944408002431729540959582333674517376602698086605188033412618486396638511813568883311607311815462509696561945305262683061599994012610583553928021295674200008351574024311000740315288432603248552615402335220503845318145291831141859419745218169794656992503920632278799514138910625541322049183896548118119200300247560286917915874894918117955015498050196341157718896703866146616568753587009311001358815998608872752703821979626521602555218474760917140263905807946223207180950212119277333630242807128253149151348326653680233779745073476176105801420100539034509760223817272199011453750544604317254516966986397923395734980513505140413986255570174914496375619635259552448153186140998116613746789254289717613337557420166289495846693801326828695877128881086655502651009852510870389080622013693565841294654879223767614323472931158547517026272148133927265188348798013827920483863516841545144041766363202485123821146379070461269456714709017192408140944271217423608336761752218798160340340690055915130582713881752476751423450550919383988830683717993339435455041010037860071325202692597693709576186357116335841774941187527323162905639086136689769136004425711657130038717842828468627032418671092090970321380487662754946424307007131084697260696778840908666781561932030572333901393836503911214412336962673155581702764389789807570787593711537596395080694144093387041659054792745830263463352730010051854217845820409272159703136151242071827407359616543330136010853017003219806753221421829491099521511362163247848257011463503044976649359489521558032146451503906095396269658729434836606056448289779130728803292903538313866875247058735914429606232482414999541660316839192156284764877831472024352536932102979022882754184469992314356300351301296541364347541614948114621062736509612385291054997715795213456057169984479137948758358367687774553307639074255467687794640129903397618267556332423426842287448463457862058669752959824871127719339244733024646292984083017769674598341613173865806742294895688436625396716600703840016134194025228125058967662344276794176700293278550680257830088575465061236529829121020597180980973839868939327271284376180288590297150846993889845437078297976610567412333986847270939892989953183785717360510951689129569314399693684087824547268375847117587444079853336885530026269522630030069431036893105198809946308159907309701232481302037260711958336069655216841786051755375660927197924149267592372487370563103758086309518249938951014257786309126776094189339113905381468662925080798379374498697901112138859110942659105739549622485172721384527629220710891070437519101545210328975402670360747821903205858001863838133989665793819153023016976486609643684056173862752841127057223436365069346475475706404229679764020714149404078142433430016764101359595294982135338265550422863914628398069172303774095070266624524485018517357530435781852889508227975835115087229509691967882495199019172413027851898488705820591930784200002541899331187199302162351609248716480768214938884351175656720211735328197509535298141796060893533886559900025397896939742090733511168277934278372416707460118550993557076038411861775232868337723907052706461018810330056138515905146324072867751982085314327567516028856496258209574773697465697896684658954934298312902992838044476765738442650173627801308917457810209521502495514459087514074320214820964814261368155897273725650354726601126758184809318721511107192365396997988026527700972400170948117019906497784348318074430138224903938530998417181722221044520769509139528730757052341279764564573343488756890225397511896953548558569356949713885871647209428301310871739246859202400206956617537834075785051313623756925748034616696559483006980293460268726876274187313577763983291759388517239290142097204541428546629951249844720105554864566913482528318249958900136824540301462723639253648428858500820211848619736709734811079907766655303198678775280156820506933346669416960697974317442653453512201502335117757106933087376515021496659004959052949512133975638653125024431625288036243569117377978550315453222324020863317165046323860408658747035916496696980582193319030560747305535884988851455603344318753036684777254482985822318258366634307544090244554638023867887235245762636658749022435569866583131489679547563944838452653756043614435720493228108859339873322553598814771691801358755476534364118099651116431710750894862818469902332113176501284477910531772385916486073832161608918515280168700884489040600491849106716951506935873452248168670032648551566350230107108375350357425724648420104436699833437998084949975133995261188033059075070484257997265136534749980825330912838650591110562943712913526218747175349087936216387879304197709121665616325516723443668357959581422619090092210568948514544038912223789789817275579139613580526943941339392925725912157289436725370541773270339375991997531740380057223602419781173894436309496101054893555924256687567984727783967843790078985784091015897558625432370150834930327804853676369056720726835469966638038755168984346647741728241235089263810425356265890503110462000682649181510599740964290240779806269143736419558961884375170032565014344094934659999170724466573118206488561220215941984195990819665803363308573954736395897442725801358544138601014338964962861194435224727745262258228888853965959307986348392996357188007823885337566004306570275654337450515094727611945495045153517596133064460157754456991742240026058121734047749635655578571737914013246821455668621863279396651341485095660829630229262014699611047564926821048664880031321541840361465201776146747681208873866718761096537799337070359864541654861363125509547113485489163797304598607509418388875337121654782504109240995941725742565846369901632755019327596957008232886423534455955368700557429550368966242333365638112738903322864289178184864581888233416945310705261139670243852669877202486301660985573424131523903978137557791542305854109172793313731279200011619613406340507216246078041668991852904426455867734377819027323117878168516912276847451634322411003859726994451192432935005265798236991049660801879257306713293341209951695151781247004926700634842777845549071673650307801311708183565485180119180160777304418955400140554714360310449294795476397813255439352172399395321249785653458229430897499756962510595012342673584432234906185380030997447846406756418021318350918953757027493353563377650203475317192252026307717603115629491267436323308609010396313783738926764364065828441268881079105374633721412460522198337774857366467199010821921095934061029804100837927284316317571134471815656169173331301669935096126549403688296436142951653860088664249225077697637032703825543652634996317213396342583669806162099736484972490910737175495668827495233123904990733003233990831218846177939576666681418140567539532158452383842990235223299883058282104331534449380326011002826338280078568086599053598121656309127838207369339972111497940883712991383923587394464248937879802679258136318337206446691532777194064863946574184982237513341197229259774528352362091001482288410877143375941422760753498351817658921347235155385171247683125017393173583141217261307889437970516677929765935537988416146416221203022178540216407674984745388402963774476242009994898489477821960868826426073755877679460361229679752252639671585873431148472170885134094091439856715643005409843128381950892104190294625952731529695196775486212318512470742170675556009540496668855197730879829298241229855567744024464497259902466837808508964426535614719514895591327565006360337942996975098045245204037034942596309723141414294660485622364888410402193651370676999213847778240454418921386355684169124018241377210134210602915161724270642464796646131862060105966437349536219138169482633079039462901735081827144224466936606871993181707408090969402812780650693687839913555406711580411017930372089491020588257369178830192644612256048322945078334147973544565985578367595514487817650279837317430412822557084700421503093584248474355260397320095063936434831329519704463317802878642669713574470497309163320978380482960003687216978580557735465460601885978771034795633743609284310705806994918375625748206826113927749170106043915278936787866738322668298213551632622540688920374242950543811763256783417461038578908573284996049487005373434753819616448456888544238816983222591998006957899666959363957881542529146701625214663642735937493823415473139527471825687079925279545406678245123744450236299470932730669427550384701711354366973511172726048006672423581670493754375679698243015283416801419514003939684190833969331339413533936153625047785429944704963953669136398119329491268062021284246313782070016456127973776002328816976834988768493287588125683766496463531586391540881243882693646143144062746114172764319184306454875347594533125150774197121209162511447669881989436504800065990884622816520049010422790174096719014143698003099411136240712848587514028289689781414309177789521333714586099838863484065729934434106318305434602213513299724683377699634671971672754656421081814779753763218021572973497026910584132341170703175604377900134657514686411120233931538168189863143884801163679938549874209535097344693604094673160982680911769461752999511604127566112913305461772266141571966484172929401848644740372866126222107666551001193848778080331995795763347820083364613028936691011960961050806042496534022993309791613444368774152629799571538413707296193497678551179533083497919365827504329100831150288874241748419751711093091522921965950587431362922221718440597424241955642777136699193389827822991531091361182745257700754414389600507345802930364360628767117041506910182857480732140002110881892771501373200092585593608157728132528266421843527203267840051880077857085919568484287336247050050279838304702440450914243940865519469899291259894242494778948451544593433555023082579111905456612834546439908014548328671087613899462232948088419740400505215463546066614936791773003596623650590956268376840902118905818660238343505127394291982855255031091668040273799737160805601757894671555135699881029322699148627952263263831425020433955700224402670879686097173019965656620393855780997685601433386001161414675115977050510574570276242388779714107463196993319056261460969575199621543714915813150008506609895747313799451588470735024285132560694066112868270483616144896380887138761963736174058583671936562107464891279853653578733513167061466693166071083463132249282044508643285000544403241660549934610777729372481033523905679245465906785419393283439805694312791429167949549986906600355501389607697336246098931980967158221878359846198338072681242086966419799057289040862223083360984226609287830151483773075158601951658353253732889920740084537758463921841790113063094962623300365850631598170616525363994131420129804658959121822289087230678216686808619637011468151977869896612810068240576785673589330163969341254552096904337581691860482341748962111934938060786747320587028342902175161076118106900148751221570224383896079510176467304152146549850235646207142758969468979497995861203726096568475155836159415846667830675739263553709425490391627563675686853258806478297384607468221569859691805432941373549488364334204395868326874558644820315318508572016210925778096601889935962744159403070194069060880524585335551936200341189440484583897308333481760283884710685655700547458247578537836062931285654765544074335862462651742224886799837370260575363976132876231784961491067616350465162235233464704145944759489873520849767768936430982594425506251036810630416178724320282489032618382252553334269740296414355847953633872942171913367875705101041236445262647512583254287894598112822909959614803747768611449089137287915235271273510993669008860387846897719566992178920827754522628396484044794292550316951035339429589106497790012896942012685384178110717507456025705384119192783287110986653177441683623833414736665116330076038164139175563651590922462437696790437777990296026460206956616832066434522736150846992943204841861231770561287636776191582970398144392958212285938420011715286938877837441517728493934092791990862591003096988586874990372733011650559541938490410870308411606301213174381144915887033525672586575946228243094053381647560600062796244692796154189165508848181919665308100159252264349986546046130192411823183856586472201475384225089975756537080188143861988981922827090790378250912431580536391355647065239415478226050811190030702391877153226614407537672346642690300519195848880205828120209229865731623632189646799441328604630957596720367231220171808632694896517318482006851030288714782928083990207965001898080124420940237018683267478766925506514416905062621315715387751040713448301230611171708251817062920167589559322475996592898459984369624400791844872355199985376856412332693804000105030117982141970453259985088406656810364353263732963133043170815624568567410317050037417699381951427266330983228099578228365979033075198852912151619542916914598287533607672215255900416536434495321431284936868454158137621070668533438604760865461554565714017865517727981456655031149601458448630715758698691081467378763049102250703273910441836789610635536266195680758874745357785597298809224407651292967845764370232678915657620146239735114178610215852918007278836161171430350709385195151237572670838486078279223372404862171636535543715448261697115579116933523902943477144942168268240098554637764913311659863257668767295741890102368676435619811596862891608958007710710158798932590679990916889694649557360495527657865394633342161042739480618287820924574315179573941172028072724186267706169965826924788084210672814504783334344489629609030345184544959494363856319674810772287710308297992621264134119697975711094170510078082345884034221383594931235528863732814839812092329323357569413108697471998581974690028709539787782382840700957337518526989376879332122191011596823766538025989555741221826500927943249420136309133092948027373325407768632713434341254194453975201707175141499420415567463590514881063009844122763686770672062225130861988324082960109882315302064328070387492392259569467193999036227969953938751257242510073480350412672402586658900666061098349226746444889733344682133314255392839439437360816954665112233510795627060894207996325586342267270499240803450586810420300431404324361367878778706222840744397026958734065734747047614704826578654708481402571387906084623160157558809665611401857334000319996762216220794204330052139235595469010858691931244518999036711185256151377469001909814314704342675230337968647296028298672769162260148398040844307945288994529145410443406626867572137808749560034135363129927993302688503945218998553596849490014684982760167654907272991904410437854737152303917714790966165114866909669134941361068696961420373501411341301610904191541889877791172292012604915692758078669861756277662116438439958576797931389300294730923381956284857504613880560728063660149968169578878245837073342738184495700927474496029069993713370017061128073187627582415914332732296623781608394587091516125292187687518737661373493582602026028669015975326093296975823385086897074340201728284753582836211050139071920297774675654509363851692906563659917107983095492526663325294009420406472874838370515606325914045411453565939588414685769609959784979167372433227485781046027859963784898506249184125332426033980563522307149113158547411024228489438398268359335995807273671246822375885564649723484497842862160719643238842821924337117248587715418633985275675832323730836756991074607181412459811950329246283024344313976240465388229429473975732396711397123645965928378231228392004717142789968337216331155633471282807149424098837371219290416688329281830100952276354069906768833900234387882147072433219920099627050334254799825771156096846346058013531499751124887230766690853519583511902015452188549552199493702419203442281696260168363650066177617219767763890451893714554355336418910216111233304041758541479684498116748357605237750123407893362211027232898324235012261194096371877962290442627598106776924383374318971028282711044283030643553538668320105974327370775705932546082378485034067078683145474092149017538829319038019746072147462696931592035179848266837482169456314860323369665275204642711188425175785461224743734776411493043034989944512740215488478346499276742512829490516759289857218430122389707148781787042807771862521233320001508639475677990652546952948223412467813548959282494443538754496790051691539281731454874415532889014493397324061238649550704166858035216555259250501782938988554005443821177491361679069203948604967561019403488536643938737998699651364426038428647141763721631676756381642440627581358762190274221662906881641145231177251546146448690613231612258549898784010715334086620389541264649674678252283762435160619843421919474668794323845513594011635932939041953550363572297169260475513205446640139267366941928271297201156228053584305235174734957045952614852640196413669560032425919860218970574783384953382645418904554709208015379163410732290565003555410899536638889603261331772774046703276907814886865124234392523705599009101940551123411591265897401979669497396261447491531580011589694750394619077870907389206073190357659277391928189512841106192650828020376568566584462900466860240209706132490586143554594702669848295081061754041271100906107411754519353245701005142673630738867081423946683593821450840687917419093680472224136223072709744833252350488069890990209529753293112986575058249522449186860092836896760314617367224229369861479577409407266738787760432633574299181040018187461521420813155876806623355810926467400353819974714628954147381207666822694836399660174088974040350637317343060614932837792882613741763453266525482881136110912564271743961489075473272788197056849957823232226519820008362132068691240063043910305664638346453684063472725094531075343448944896612691757019241619023034799922019177540389488089194363199044246123767744470812317678775466519637215989025831319977421749715856086302049137354159409483645646520333688655875443899429665833376865402212179967069646938613774734148779952376605583749953128189156797132734296245441018862233498855550436412284684793758798700346891018974521696046407440946639550927324565365394030162460050871811257620318915063453339531067797576944789746591244081991234017121820036073499327178184754510945621824996905242727191699668613958573170629473202055062781883540692858942777887043656461864380707086299931491901152896418353025477813342795168248949884349940059985846246372338079569723847592858515722746705790236587736947653323719065610152590324199596221866973412683169772892173227219919553655776032148817911978760524650501596782628823043791876702180173328134987369258457547762685547431726156113579853730052310187454019651716518627089679195518381360268585872059017529666092575147064771145872128838945447011410436388852448171232938866704487280501212071122265179108927357254945454823354489207266145955908888727196002969352689957234465251325209765451866968208609810633391290724184483016436294942989603517823196859482609040052928758454253714341813966696605808577756082154178908758606580406701739082387874409753808467862047187252315915658063960853711888387983786868374002704922630182483707518186319329755600905116316455926026019596164225616872788166418166981781567915848646847459186148830926004727537543685522942892232853952814774325263122196568603072255768301398875939414905917970648622160140896474886553100368573137626450157566062065854977735464717035128814196541253594676026348461851256641623064084378840019277008051764978275542605687994572124166160573709558485758371664997536337204955092452557837328617311695781397270672846727196668735607418446031549685361371940993881242818195686494763594037963082344073069490943783589854143254414360589596296679086688268218812074536924337300365060095968871024389023897455439192685661366096304932336366048405625396029814256113563823317468196100285446751912301813196681968060203886675785467755497903301380016827831564478256331762724513094703133578517340511549876377911129030981621460073302347323825100180371789565753992833282041383656785706624955452281114030337006056494983317872098804730272978982991257352078420397648223414682899989904560278916317359022864237435306271040950944555175727484168824294221152694548135752042957912322371358100991848725579720873119937996203422303634081369010354417224965786835724421240006930509972045181513266986478099503135561852112452986818848675198650099980418403437992662227196642837651642006960166190694152998594856512933240808599031970678799287262711541197026161116334614221641909374812533431087614892779482070268903510920618317075095642543949657172071772616884946735093385769677319076764490705413957125516220923260640283052186576640255863474795530593886097900151893291350666930741483935968096880947106959433255497388433238446304249450159600315071828572322118782571353407355679087359078094006193028544321465417320730157697640165706097662312027725793017053671980946449071101986625060624975596983725339826014730910607572336231250207156864585803929621458990847262810413061872000148129436253704209781752131076346581210232322543751147382321221230405768316415517817598959616716593514322104296963955390213623402459096193398306040974903370971961306672136520176596353153514953203140788116150975735094511834884672874144961870057346879856435249733083479290996920285578340446991830464891031480173893000933214430306634845461929749204494761315735053574173730333111028124615253788221034651495136023818219780807648633893390491139469871063659538390871082071184613534895017117667017164120941869206774601140629320374986239425145401964441175736910639657543796106844923669446780443089298180741505935563989944016148481222231014231741524693459238077154241925873533800930414180111403099104083878109652825681504305448626018396129709609269538588789077685329719891842523066227522002799629184737611958763160700083818481975184332811891365159210847659612934139273738707749385243880424315427661576478816135792360523617581624388865717332082533262811499122164789046252035883603880662270360340966292504119226331634419474647174262964995826713910736066509210193439059575603939880586480736996051335469547202589920092678576559029578843049746899598878060033692049229994911752892867112043549832012013628469968165189091937919915013688534073468016856059594213850682252575485074826937237694482218953694363243825002855675751833726731724057796396287244682977576721725416556010028092655929217832147759628299990864556371388767679065231408857506093115377641498115482007284009724057096523322113705410161953262690817765307060313902206929102551437706876821625363187857799266772360043670423110328161297412636530437247355593001757464841789344941821104822686988720666306082332843077053739575637889984279157209801969268245378767259437994650161154514877709745974240723160537772605278208394544298602794414506169239919710867366622302547274302161261537250887748185327616651915748717088673985799616250464014459011662913850531525334826039351126871253055711611386685251885438415475095975544901558994642850244291996598009372151344531344184715381987800836442217741076308922229878307063090599297505236074038867417625226042920578273573893879615902281136611060452321153621774442066923883878578793470712171712040075754961576103869375865691429854018565981441246441230637653174779181404496242862774774804577932885524725209698321913289755214978609550157666830152886255635545041102144668441897756461366476188950554752989191840361959798406651198763371443043634601457909161041841492186859358381063401855182795061925368185278040109692440334331624125618800696709230610246391057982896213921548572291896567769932563592670161476441152103252757274873433602664135857145317981928410277485617546377750922812535479096227343427472136635093644373528495075659490056340555377823836300747264137570508152081577296296151681485905847821519984477749614263863052082281853121364189550530584236085081708688002598970445242727843743528057599114253588979288107607688679660999439771101209366293457147995982336126058833915276836170883954759300451389511213485795269012784219202020313294848101051052938711224724733417913531204794265269808031716568784849498310871658922091590989555889001686927387116687504816390372309229083608036940026673662747061314203532327527536728923268621085932363510477295439113770870599422944487823112277141113524227236268640239759626456227483246011725505018137836205944650615269488582978680993943420136369218180415604301311497178486362193200917757927895832306279512523334607646188345214536050632692892313538580430283351839681356931944691579227888384319947028081630049531151742383173079748349573986612411325303639595192355648046269332750461413235147963163198448633602698611851293675038030605232934653974382072052963852733624932878948920536411073652631188411027989193016167766389106582177953817554986035330693502627191448775765929901513122631245088552471499907553014962657942923837120586825992412156463305450761110067447210326918587621930798974729249460739053574229594001383069922473077812553054215997789779427857980981452604741829706263797219330445434788239247628824088285825814290550245413513134813108378628252142623429865812522120674933175734064473319420026112940231388952211734094697228531055931673970101111101152723266617054350431103733814287005712911170242713458018381093096891143310332872718762696030151689717331716314869746770622475447990847808416460468230763107228792086251257368738270010970448850455930025543935729041447651031165043813840682754585636417159430898686608264520935207573801934263622934877355120902929780144598149953561228023738581363129538358397217195735686737625031394946077118185957844353244371189039272609601511377178908671642988329079125489573804595790680182509948227751059595486536288282597996772225788880181198582316788967979661107287911967929219049176583570958888239945886805446476568103829613575754471843381212318163598612913495819567771801311288959764182166714784601656471683911438433485211415727898806305562744995090830540374129875522567889208002481871630533199095890986243408107074379845584484655932361254710893466959833574973595029695508349402605190732301977703988237471457128552115177409080365757356846654260729078052856844021040546812463472445499685958421776836439718190753513204374922378179437321595087865990966520622860155416575814173000616546180520318190944509130134154872445402627883166605450085541400164989899692227208017369944587973985689366792862892421768752541881005428995105691737255564837161361940475654510028982312281243169482155486550646903297821266051117923771534990072461249088888646418888799776758699461351188521735136498779374059142631132646015889299997125849183544009847299951780091025880208374358227035917139090178435042129647228509226741524075768256597166102416524293462597225017154322750871111525715066680808715903249324619956539588990499135583433439863217615314082946274454645593827815905613920302494674937120700625255941514877862379977906896703319174791524211786146530353885293246730145787120439563805453817347774654686199099360158827340455207341119175757179237244557776472575394245771907402594863153806147661988625484444024512744359754540086475461486310956727195313049849854003119798867782571283744453300565268585238776716729833041492092744792166574377805538764924758026157506850789944427948844097520581562255495443206118638378480037271470905939770597656680614465932041646214102554948473890492512536290775943587390098353127354897055894144170516226111766406599272971664147893530823531075100742251592393751061541048498713422953428736689209140647090710217493934794417775368172395013356077231062589616997230596641680506640150897605304130174867733825529945367698146855459956333882192081468159618935243217349542354633034088200239796779758085236848905591260834330766234185902849754940294467626286067467283589262688295620547386999373214234385686200477445991752865158867720587413344051825159117125232522537732485973114809041371772510923488428943263444495371167462713526255735566360621743007919464240686097605205082403304173312897711491515999175191935272652819847164742899085809159811546124471725995518298201670240596570203363416361263952289053568434471740885892847285567311901475709484025348311379886882361120684744183607354118159771194815133513439684692003590679620177799679856208738184511686846924864489919378262552914262623545712096056662360166073797263664785588444372279840575278187360663408989431761583999804308912227165605741533328132128050180867467659633282409098672889072707546175241660128132399756919379624644896730835256018639059924351147253254800762953421596212938919152426503595443576075207726872749869154066635202173369488833311943177783173902377670971580960835669200372033991716565876693267682187099601816913131619819734738233745167522570997565152647285603994133433329364354593706420010186831629054395988355181212115131454659180262864647105873846995080377304008408402094463632066980893551364172159568618307023507471198803585512009724036243627702343063955738902293924015137814690494459647026683432337541822146280928201859055488269435853645822048995137272170784064205892775476401830486135651421995823066307801449621442650582831071630921052270417032033652330972976964892873755727506042323098107978577336035079477357012735312956133765150960206647799075812946440019435492317812460050661425015396444179566805257214790328705591216004520500488898845604192570589508982509850385584292418848747133258577027549593188895928829325126338662261395443327184547679952130798334975367682725971701843908176937600334267174274412929343221210962264870806194912988813565876840516827451576316030360251570706356904975134862662488921236304320595497303134958182996799782236228483168399669888631877016083887735538812527601687795316931478531562763095687484075921911928367661040032844978970170259204649085431191270580790565764713875430008773695153646321705880249050930254124245342963350802837689474706373856913683010572135005123752783863209657136848974513763334168081668079088634149148000111228829019968135400151055087006820938811995859233786631014808639162705959875096457731805582061652320395105248348521135730580262730713273577471365655338060586079307501591748343809156536699200228746371165965367208493104368037292943343342842421878690369274921410720201172793403300143212683409408843965877876016415608848627058882191485947988547682506185176266729510141527031243071570147748458425028821819584447150056136652042468916110059422282720058639918448879049123521417109145159208695059144711732581224428220050267220099784579003444626335829602077100766557490640650774648205714116809135355493498120177704733652866217160518452024291526792047395013621250708548943020189767590847299997312117393893729481480382851971906780303112841413199329541024394584887193727638987284793790633354105344015420324866297925846178498413955579155226006363670733768371600339058127083645439618545389954144221239703331507475818541281656714883580220238849075416277764550474852844670644794091188748763351166606405385444087029609687405810353517851450032123701367458095129725598759395986304214567777434995012502834306058190139021780888664252612278862844663889598942509194004467521098864931472816251527618586779907397753219364234121791549167418643707260925796994922381257504905471928601665974799963530248704909961569349435390338111074701507725455386700846195038403980087544431889725017671401764710298889013765333300802248820978360292025951299183902995726842439162191262752329728234295845822093210472985234934997374051127045241850318600301840135116756732889710768048791754131349577228346454840090799929789244147622563292135036225334997796713443531374002426145667855377994917675117531211854160732275454384435742808668829219707253675665621028904318470092373384518451165299112100018017829003704781774754797764779820077255863400022703290146071261639999701139364659644374250558641967977508117757994284101755746541783157762827929030487033438827206249027268357538566987154666755801293988356438375459053138079358113052443317345923642251709186838947839231572632518734721003520235787596682238222852196326050197789159431432915133849830114483878106954845022970325815531590635217605800185331414000748325882256141743616137755673311588905735850883891142631050061248802227760373122796781698872878854062398923524274277831107412104143512626020591448526622185297413729088653020713820923371403008535165401546110674536180919436185338461124759165853585545128172490570039734371581826430824742514974039752664049124095151278078124635056875772667086933355351334304945584928972810644122737542682906024995419471059427659086594159196969303609675798445315459143586370690657058442413186436651785855373795649040019077123920289257832748399067437237187794862008236066841430836676365898347282917522845679357320148429270604540405545183085712355616894901960072218149272509996063726822650642333388747828699366042951586862457752576107756839522471810570400212296032366758164464430548009949723276638307727106732316017312633102293260553616075791904247143356383259480053506658867580519916915752622966979406896085456600628652235007944760084170809676202961292541452824612729449595607212069644255311663291442997583839625377197692003009676041454653970402388860237554264497744111911714087414272801850126720631504315554626218242807527456473431900507652800408365731323471456843167017396609748134677800268981089636625339816828159733179224556895554544914341263058983809346300911926321609100940558501870180734440414467798318052155847153622268398627660222472474762269810759402785408761880447825489041092818102565973200939796667329016077004035933275673598809886862711881661597169528169833830475861461543462615182984272992083974542610676734639172453783741535355110854838658209107398992417465941271282873159865814442192246865375194470070009038129171994361752755753437075360890545221101100562842695289604671270375832659521285855133118296808766742646502845814925601591607534143153982528363299370780279760813788710830905805536483568298168387591111862618342874281983194101168769373014819177422249952905614783902803278710665589575670814602295250857446621665647643487113819103514685855406784505880517533017945556907659651109744749837792738907841535427831960330485857436713323238818807614474105762505535396609366109995832630049566413514474273019739978536894118357605411112834147093700959479306420871808169967294852910581589929605541706403579780368279820596372253297228735481819968469398861483455326459321727734508707099701943615269032197538829539427390907138916556266470740375682562938389681114569017773788137371434729408781340464804472019854635575545706449277005098196696333396533242332751700356803008696841918612192512437618806389357687248239413845766278295721908483985542244506238110183514833367163116574662865859196166774817968990382090255932781156723418165822022243207049400467608011869838739973853701606829914217129898817435894264313014491034044939229993071583478671020268436368587453359169507311587268588558767218689668609546819217136531502738326284403129151534929678905461500370621451931238281229755487362290182379814009948707740786089234998188481155163855526754749905213568885796414629752833718526382821735703731032437658339579735816981478637389684115278303227978025565845583361881671541479441138611829667776486629863574446550522384339519707667429529106032360545950763028048947996106473549547052399446864791700921550347517957313615007865226343072440827383368898584321739103873652864359943163322500325535386919548849904279924758025248432234788558589830574083395251628003572716641377188375831431239113886323437007150916760055305537144793979872293936295852648017036342932829287654001591533634984850604075847478928184343516580035134653825228884362523644413282632085735459233525533234785059648300495233008745997517832095787022719661129357153758062441935005662415868685415135842266305475260134605662521708386946223871149522076553402535249228823348470036656034935364278144277395882960387938780654628067378463025348801735068123350322850917391378047411556908641646334996703331463663384453930209927724141637517798077015884631499191670473842240108222065368605171607637960008356902261895980611323644636414597403194794607547919275176526960729221388969405764542729000828339813102922532906277469934803790021405010379893951093343861599553696515265564609931618349871276568566882710769805682034257009091105095826401081072131216441479751546419309600626733481403051147583188934902205160708690199445881577472010817108542673349966261292325124943348746241055422314430735671499534414365697384261172825317163378987710090384937544665998997000902661719941204333938393335087167555213244176184015968497438466137359491926441272336939366924557768840821056431639499432019515546090841270980437539211285915487516572814529755515922414827389795354026252952670884702153885438273469540060607121810162516797085519653678952479452352595923989871686055295904170512439548091250557912583739806371368045470062976640956255893687209651066636889629064763080657544251059483739379199072365320812343584068163372241934145933705747852660115513218689615400800813585390511132891030316809645496403884212114272481826383145954924713017517246472270001735454539259489513600190803859836515212108738529573853963955341121113474080471356732097228750222194425281562172973370170742076941091622276772429535331090032382264342605823094562868188196239733561956601509084010359041199713505780835974599828995971623776053510886615105251558160104709412014479075797889423599162489567619691733315023404323593430455397117432871547716075313844388706966709740084763952746384628507282233642160630682949357775241195993027845570561671119827487219575478629543651377459108517307909953361836238047341831392609927400074168537418122206041257065441884068449282846624340744956277997388956223273967874970906150963546680451662090972394299617106507048867406073620143844737845722685349447661367410919893815252192026004454037643889302909082497014476905746867895746765879790935701737079661967139048832405813394206260807841145486280260864154704980667113070181887021528543620428941969452438358437319124278115358546645171757096083019045067286101184636952195073738334031099406130087320097638646376686659571128082724839461721512150092835120318035408563534645592475332608658875334558223890639525989913874810471884209855293500114610428695456761028028036979264400821782167807446494106724108664851719933323923149075792427512477913925451111169114902063948762202083791455248580619096768036335216121171419777939804439142129431068922372547710860972820836054199741542603445131957256581291400943587193316272695105421436703289811518598391713927069532486427635596802232631176843265920574029081783153961928575016192593879904131310451796504372530039446224553326933904983296637128363510058348473179939860612357445720352691486927097948497681840888248625603037018128605592526829338522352247845134998271396396662999762092984339151064354099868653230303542592310252872713366704281489089217275139753909209315554142771493262324793529024494560564997456642765637763577528303291430361966083618573502168429051620679434246935070759154354554777711619678791878606369667473508825796444633864500999716774743118859697428354781825728841226479628773676134189423445792175139693574022969540977619835554125401591758030426860039484408889831740025239754451081547064356960662749520213156938177435817180345683731546908103420546704072131313046571725594855443615368698030803597967730975503765978824666227191177161597564608364965612919130354343601764241647878598278777205255417191532727207823813009608663066433307545464209986360229711087014874338519978135810765182217715154074019893285262728255270999801016692895676010532322414406207551969493789293237061955269390978139679381837404873284392829655991294519397664733584525337028645462016277619726878307318714355903913042509288252999299222715943862318877031995084269565317919517366799945153995350460118338130335642872595348049512423062489589540393017692529000516894414076368757109054853140696913220144253832939379183415966835740399997487975177657961712912559000555619382920013002674579285926692452717051777711989589767296751311944075528180651917716590106779275266927349119980111652642875867791261992745731419594730347769340992139750069560525153401838112002848789083045930111737297401028492361035941027128170610298046653614789422670454072696722066631553189544879631469491570581003148638702615649762680455199621989914427005463509183753604641939850031315941698587860286796306515454777866519059545076419040660401552762299920156576866115575774514814787396962882293160723020941582726934488899154186853486946150719216059992630901810106343695252775942535050553195246674066905197668910014047912086822103040330549545348075176516199801361012514069308997279906628379037864898155385629673966590347374727696676961316729369686787422696250526768442502540596094591473677510382066994231382245417375899463399799919411181363649037674112486634503380934978305667392838121642599174824849555041207027644305508662244324945457841427751756500650570137805256495500875163276462822972362944711877395412631979808924492465962192761284985691965540514888536678751472682797491504624782983792828954254853295218771770926979405816884397403681432587701975301559682892523446910510519269083465466837548865968255679864161578977784138955555214643371454242283867868964786337265091585152269433751122268514337784563919715893035029254720029603170807987097767307502827212531258651937398560948783534428662987746794420135374087452862152848362622598566869118525129401588854955965979499679490048136580842043885208068950987824760951088643209064967308842326649949746004493580058072142485180388581586945584096818410365370761367634307595343332947819090479746443542678515548926937900981079518862640141658360506585480163540355686820502239988534674138077079719288883561366911111140623361201778881696627145483749876428472315289629400331669474457271138307605037926382809127534920504942452982453519838497525771829241882541037279432033032255182460104732694858654187100469273026293439509395940035154574167384632780782342373843113374894655990843839109732436268406691849506392134575805301073048496172948379458739507074179424237975946815701533279652973410405672726371242503774587726380872922681126312328826057799046044448304555887481799911197821134242803188796039541081806958587981932718942743963980595861449082204637318997895315100237825227580761271969415395006477234604228332166948652644652192978908414847936501440514827789757820607106270649386704155599513180853307650774662750438943320247274516706750187135212373872137159697312487486350301403453409081031946612930240166451097380972240541458097287846218068448685005047373701236445485407676634616389117882143770811355506892119958443221087846688315032866439264513184359462519259600175123864125773443837085662184374369534350810077625152197538006768919849540384500888301307735542114037065047273277198218330062826723165954758400201844568575634046235745320818005616148961731761925471168746920092251151285080960175773554827658216312190982500996138169158333607884035424769247398339940782309930331343326056654837408325232698887743568274412775897269784120786906688792647077416815449913290469756097359188476523477129673766819966301719679450969454041415745354273417060655806793197297000285852202236378178014155759234836517226538126651429111715489591212414659435367561566293645247240829423043854767165087923625036931788353293288334093891577380209145061951400299631678076306677804734150079168799380069063032545174936948667898352249796388294648474004840647109203060325660248164541502867738868845604284384480350340825674351418001402014793775702948962988548994965878705194834468145417245695342270792263671531777045345484056313629541414126014799949489735564203196674454318071261861453409976071601910241565346748163953729333805288235439654273604168135257552052276759830374931672575815437105563792789574456370408271990333083629609604122718135204143271202077617621700338206884462779768951685789728416241667686066559310960337561988183565830297187749827036838243231034988447279912221552043862257966470333912003386959699769955712371064352541109713956149756896231196314790090573801993651696587942387564155990300155143492474745557443278464541817714713541379002281966407361626294515615598598558719589258881283141897072228316224248357380939699668818276074579442538153935212636513213132756227693542774597556144149598450121734131733831187208589755108035017196150261628079566374516059482345633693050948080115689763357989294780988833104689352804741269419033495648023373277321700260066955637858693847099582661412000754655565028710193150552300275463865683815979499187230666457992026501242677156365171037784070315148403396969927531944117197002544055405722673791316099800935473152594575845929364068649464425100591387233441374127825309917420070836306907873188298131269579664126783971860870683012227608299567980370224087796947213853148513372791581207598031663061168619413718101206979360220514638339583084080430119298689033035949467848497957273381805512347526483033300555652224698159293711464989092929735032286342624058281281887987185977596263103836887893415221853789117211285978775835625223873430372604477790615176280530170160903574413381974869218114303792818688876256547209266041167083533239822047970767076604485631654006413455540565106719310255848035083929126341808202868856098485424685407075477152408227130428724189673378423864023317010231211146385420861740400020204889580165551862878326773665956929313919490934028520070711431004971050148439419130082700505752340330719535490956007703933003353638775541452430345403799554097372575815344720470030532827961768933490786690944525787941716840531309851969686676630766527511529600633261390178315105714540361469989600982835474416586145845980117454993010286234274628886051742052064653727596021928618712828160688156069218504041970687688402665305366641867923117680816596403803468308064200981722910751176764705823703174931706190178795189119521412295571447842084880177659104598424435196837058374105747201683886386914056940693512121939045720153106527718661638757566607794000994122475745089595449271695712110442002546358888742033853735282618565316884461263336729479017999137418777171485811800356792559864979988392715654240898889707945393353551108438815614725200079376461169358625619797752401593502518665385701494548352870013880357070274062062858617058825860279169370195682814110376706928623807121397272576508032285005987588462678967081768385796797131871605723352146770010230815898589761944105363410187400867978718344872929481570928157169982548342218301646521035743428528795804297583151130501836348626501965362206693226885039088316579791982252777929295687957968163457962150571643210361378778095420140369475928275288001372291327619455878892588748009767028926794530291711599987187419382659054721883606014525934750100003031715119135081387072034984778886511652585907561465990041273898071596829644234048888911373651022000685672509369192123794203282867807188301836120713201569056065380488658893911684796213086268013936440943326707381727456822353306112692473906772626483263340749539041301989169212753852655770863157989957403076666705033215944579488450624373743612917069200516891894428698512463973497021111090217315891872627224131944240937010904193069943485230548632448223472103003939068719138501975611812766603184983573460175625316038373314609564705694933900787175992534491999677791648183161200675624474527957065786184900640077951949340740812813803048533234276907476312706734218122865440408781065667359570183398107166598433773345237247370303124248891514255424897628100732162956528495560853599552367840553808492442116064703488326468521778853199528743885597150758038469610621261237820330108650019481419975848407807759987294887108856655716304636098157791358676768447375454090241108147961794266854540396779374030019978203594644016936381017115271509279976236326382843239772036889564861094685234509634596145135833644507878383072666813437250469067166730365092769674696277868238758346552694408786176914893035414941835367660463708377446664953850547655307651082382575018735805835299606670379368247358532948754736566144957561079083581672502501822546854311879926324872449569175048646832346700144071745264962662915131886263719729407357234008408055029330052872465089159844697372435011054383881544163476160117825636704437865221541936348575712381867202062440082365018748424763396365730496490764635377520198701016723342260994813498559082164030914725388549714995489893959495883733425573804835426432505701403869020435960405208993294217023868117035253690401497051942523879531249446923327620632994484976390632650591311338349641591806208755142320599815932118167044001204480217377899314655642225356998116433012103982837267995600253091061156719724081160280073915505392633355062509851424927714401535573371296335138855777642624199091754137268274550198541843255973028931473894829115008502761376453406334226249984440640666173631920921186628105688234316696806024236332863264960198743366441723537985829610612881219849251629955348648069014867079871696875536000906646824098883674462265558390510389454225127765676727539684754493161429673521507516293956201910548236823183547537067880019090651615694625241876655041891154400254624467100009979199835875918023317780064569971655083620244472005136655293497489025024716260487132898566066657621529746239026854826007864985088197398175621760681538004968818482984391807518254166393364856175237251709831764743312819110284719613228330923620873334703793674040006585857813039789631859392993205680512936013541800509126690966990643111792536862590562783000275517316197535087631438254410252086570154804392029975753246224658745067275218345967557847855778756639959102290376631563213140481263991742070362614371904433507999021960416149296463571366343307149126991622137052099922296739826862795579546716353711225660225272096341819411186983121167469898627432332719871866401976805358235373361669429163627207423117022240964203623487969048844250454786894976732734768341111736188719092115814752263784406943230713391396108368688259934511753220907459892055941745989635882052438858388858308855785739081828937496468036439979740646252896126718252315500167611494758981645880664387685169794028009845526305578727920332622016799411448662859514277667758086624790419514652254356823257543264731753450477960896804972648298844837764716081156211909999220452084189834175632959804618977354780875267137158606349543468684592358850675483366759069021499867232418166157789750923716983525746222946370090500767824047477128729041831533302592444475983722629572118516729053419435621674066793838154392502240064116857588718347736678332427861027526834390268936497124937784002351679440981810356741728149958186481843654718838155698061364794874399353568908663474515522480248697134816756756803611215951072638141585900055391769847997605199561632266509934128585419677783172419248186206363394585639090510625851060647625684531479623351848193110053133655240433666393633674118243720219225412564635503552897109965240501203885838042531214690041113902597009429983963311482980886422994743240292189114530020147082829897992099005277959875531535004126628239684095597647209171365867193749012557053335009491056882438747685850436559515021749644977811719343321493573093815306438653058702467922618663260525343597542171416123047202603321260317183189251213464301881688136188964443218418399923703711070929580097933965813780051068497178428424215992467643947721203626924916477139588425558887381371445284129885921513281577814779210681693231063855777321611695759032526855967043352583397224694047208048433472224379551115767366866764001313277097484233940643238956214977061271546652589913354469380511608814712032435675348595832756383327012984242059477313033993880286772854368295341248226212499746805322719788416189244937634706393747741666963902148869966555081617513023523530987294990481439271381418995974674906358220750652358732816773511861675506419213154374706539470564534742846780609208573540151687905206639411989992832250355528839720922373071832499795286342077544432105123664770802594336751467899877881286327516080039114688923184150227204390417006722768928897424969936768490187672684089480111797257413319183077139286769999387131658197187147651207415883810779738597516094995992413794301258357072426097010858378552012629924456914452008749679943260775659002189824144858697431452845761306027118611643232036934171366188563814599760369977061689170005411256000297994808812643613897185420916858152394326251871467924503046798889255139246845066716125640588172784906697609917369719936971977573036061468984993077646067099728309718366389894765350441918728274021803185052450950085605628941896018375751532054431937052026021685348691067138039084371933030399781403662587868678231270802504428841788486836818513271581562094332336505165317365576930916490713864197250470976973969553511171037278663051425133841484987003293550680315845892982863046601117704593556159266456655855948338902864813257486547498086319937291332599131734854129954895666060390727692167904596408246900854179335161284361122202824256192233345041855232437021042216730244341728279162344324874405590275756972784432665710600913806612961060337659998764394168019810264080126184804121515933432989610600025391924787557101978455651843512100887487135088535446321709436198314531459910746053484655148399848998422248985361484548376858718946304153584349537446639615961504117636425151530231909113467466919418115464162107649456526099721692654015956202684813842218968412181709289440792542042896861357925163940551728628607429522983831040268137536000936181956378265390738545426810514250477757841575386442737842194831605869973198285117321147235275027145319313482859805136417008983293375080410830407967631574960482051444956734526232421586714382325277294688600049922608123094524146005672489991750080242952595398288424545406583934091637051866395240050883896170783358886638959714561704391956294064861555959981664546650027339030304940798614114930601044448461443647050556298017043376381546720878266744994169329854667744633324804141718720478105012918732599773770603719142610447982485415826045481862016473691346005207301868764531576025539336467317964767477111676276855435970311238321878159344772360769526691548010391788430999605479971127050680318074316851600841399480345653418701244639917609900019894725146643999154912101623254673870796715331533355123262766810061398279487904790241437427175477534824279678769441604339491397248548539141816148524289135740001510743781702769041515959643059130317223942380560993594067638657504684501662390442751720162264542743566965388375256162902147993614211626661299246063645518041950874500494404500047833452380648496315466548972849287879099448917103071518544566389717933326684979546877095546573872918197347163721483186943516441024086706395560992410033375717106960142849843624749549683188320412992640080208400658088103049936901454549442818158674304769030311512071990131304380611746406475023132240376456076307016134774092986364140104263936461664709217389002444561847820806936416727559615337309653675702393815549655307813821412181836298358950078537363914761689185251120408707609090825684009188641267271683709597804267519963707690556516905143734373157149847790213848797825439188158943919410355141227502743182548149779521907949924205883208247305559535349910438389812510997970114239197305357243215460619603923421898957728196504113689640686234009358570779128987039807491640587005279797739499178152403245956118452909166127669621762826195990038259152693370900207508040399225103368713983399547604684387598456070735867381567546783612235250302812392652923385823828404528259387829134189960284782680576050262163788821635991984420673538610083499766990016748511769058657184240716578773222818913985856322005696700298911768561260462447483332515309157392090530488444557169045879605443785625375139368401334129386664977659323234823037298831518793781899225223395168977477023264774496836674717224021889715744251268535161444649090038363111667997136194469808483612095908817801057328821357902284345319323511789382837225994810596319268571664791940086667791302390804484090458633495304223998873438373295885451035294109318292402395870581464686667362528733964715628407744208282973706798249574646525077325141177448565062345797810448396658953957300153014642789991371290127937009472028243317700190752512468801522753851084223161115200539614507452782858250002498349237631521032952032752980252503453932247332295044836548810981471509595082950464853389288149255016746819377545862459382055486109414173699745446293539856016504899539966803777238530742692854770439083742983608737271652056693974528600223640044432253474681998483408886483789213792410452806911750770826348484426390327423564081321067076843509682683250221420687690226547048720553879475083884783035345327782586227519454896546659090311898117612857216724814291309206009017440937944894233851983640496291398959665965241388555518915538178095749686904964008292962614598445972169912442557727283504812954310868809515576485592331629309141663710615083005860685036184571409848347434065173423927460801211461830627546568776015496199364023929945682113704698372106811703983945677157945170392371125850657601257156364422847553910498594525876800325967417817803711184728894356562631723445761714963722640533268608013573042493900021583590172446319321199496183936612352389513849473773106174383641334839588252111826592960201150591807367931803919245450025551624793283261557440615943507762201451394002328376039733575462528616556726015375634479151680467311870037532980479787485262254542874561317053843094231418301059471795267331854044184191702642969128457798528118103210215462329894225182141972801095927056832767524671029472527158213141966455943403833646573167407550091183603451251419189697681635110953390998906647344155806401325660601058899181187588056067888607998204077635145620825998363440360191199790342904841300897304061536068034471823271180646463396601999841267788643088846226971914260775280791977973057295802415075225538550003502170397237410778278722788993226887308444889011161776000161568176825145895465266930615216875831306505874781695790740861166614778531391786896476751290149230928173684194578920987674589915494103550805734418385525769007718983718698355204243400438271020076490442774006199572649339121063495249354649445771569388189442944817308246527723810775426098400720958079044318991326167479075115126145345638949718644780083701590256265956363426876110652435796107331180555704062777244590360657780173468032338927600438982703840043815481230341965766622889691204945112676337691216193131063682939149736615855137193318768052486847616402134822037593818737999157260012026899701632327169583902312143885826048838297385082143974803749042634124161489499801512663162007697512286595458600448583247989671970151120292663637981415964308268850837364553302309339866099895931262001229692869354935185897029315574578128411812974818744665892872173695359157377156388452415309616249800130051875190649202699106575599618740844561764067203972840538592350735261066419473501104735361230044384945770666875057594496817875500470498802672076405581365588373542448860722409118073392738994295792648831773312424295867750147221017856054697771702106967320418713767342863550702046966972470422580392961629063461852996126569366567595941212246003126636600583358011173470371536514478708366459809778554688864456722390487360030637288050162762976828245572929445311042831896004407891201424943207195923788000287231178852011154429782024672399218014316239836897545628487120706219331608148414991863265052295875015574939880599202855156792245210083577275385199235697948591402183914309878483852443140595159137456395387124739641059912335088205510502416118627388651047276036112232392200976816999947372979183454732936679137173599363626793387827531342404586061898821797471706480348009405024607540688372717972289867460008496387675108978295940632038571931126860252724949413465601503943427727981459977635381738688383830232639111836205026075863002217828534279441850319127114058600026993682190756001111175302819371061685858591384509975104650888885595669684386490676506518445747685071078231757153208648414137377614704950576833615486178346058814335223496711885154402964064589713109543339096974496190279837802597220766347309258094079073095058662398945429978229819924782394762223343523315353367353273821732634726758134701202155583580397790662243345622098541400109682918208725712028347849601020246230690651070443460254013554156353954565646749692800824239326706545943743154845669077910648992626530544926203650236960370070123552182406279807645739455603591739719609358421825203172247964690248503430026789206262816605256890793626784884979370951465706890318006315615418581398259582726238227183616947152922924117716259431749207472013839026138024966592552081132008080361988165076473188701694888432976715855384841250824482104286020953105395751491373870298904144754571357607630712592942002780860642994718659470642258188142988184117544604244195606992141004949302260436079825383342917762418304054640193601470386379478929170542049793557418498244070717693469398632511566549176167780869611849227320116742510644924540521725408923089372581132510816930410179858102328452620875808764562576772191037748708633624416339975640146429981714477467187662160687294062388730471682617461095307253192992435100768309665318816087930489895913264145334339672941438661717054467809603036989596010462573871289306170053125857252728835155320482779377894159953237611108153500502129625553170168235152210797837582721779922843127422415055457221065203223645550805090010025934192276108537054023375809090828487238335572232417622303562283717441587244127590708269921182397452151478464713356067028031819589250402886347116176546330036263067960526196405738838172837689229656606672546997311994883278022034558211580575390096343418329651007712142366244196497918250485536589699483689541053758584146174436940587610213127920105458619304989301829408019671123385094648998992915819157764738318942959556059826164804111957285239632383166868083685662710742420044006241761194147379728181112729564631321770776263891564318328806368721871042134813773787415236128371302549316270226389056529439997610009461287371140770158423941181742859269408865019910315342614663614612500062566764868260405625907799908118026540259091310452886339142280641859665148272084575739590389779168304729366496930245746080796660219221990520549903493836583365786187706362147182236649292876607785642991858598472235465853976646625225143447883905651085490508744880592134183843581808594120947127418522612849531426134749410501565867522781144607646488016763621709961538661321108697539095507440106175048191707006205825057886027484539669487556563492101687001470373281734819185128465871965834676087201397236184034643281433961313629242035189341770622818408377691653352565917415427477009132090827328078918456679147493305816314539050368705800698105513908964572705657239549802178092998228336917707924224999390034532371254590882549624965531225549867265762271170587439882033019552548803446259382491258334608750195681188673911132362448550529415405058519807360661637733179291856113125774572482545885129382098033259901785955565712260150107357506849645569751301944450146465560515812205018025447448363056570752350897457120162845940269642339602690081760354748785978260796913969792178323587768970407917143564326265691818003163217558541441954183398386037366940463443860350842364508371361044802802850210556207530223347552755400740095157566006454687015063323727005025180208587312400813928562651074059556266913030403505893481083485784901030841093201914784954205500107885753081884252145909588956145388047588587428943855014562969898591715642531580824806582764616104327227999351000465357500081612887728147953943477203674478482174292249888323874587810491411985158032034040396461527443593732672299778078556008942422724106903363671757353762413350082990353353078501303920484619568995741149360869019698360307594260225087597002759240306603720231257714319977068513877781395319181805677922118815583863784066969171128959225904862953458694121451738619093390568106585174253398597301040666309985476437276018812087649905186647933264884156513322478022063110430395740275813636796246320595251630188639815937884772100511438749696477973007937583470353951997445987377658996510806313899049322774743618297496295898912562700753343787988947893198002267873121916407672190689663558715443561912593800167153293287540132352375521032377648129148432697546301677114724924878715135175752431188728103753955060302559539271478234779875439367988483004624049946151306727640208623441085957888555220007619703651825963744510264551958838914283557585221933048147581812867636976438734806335298826561466447055107920820502406311718380579258371550811436945334246765509359944899340193156515282816139870706029955705621949305627261206161452996676018960723928098741399369146396843021854914534492499204013552347274980614356953117149838809530265767890117342048568158174770168526803980227852079747290417484045433746633930960843047639067116253309364727742741129862472762157739031618928726207873725156785140471151911329277893092775163514650309372141070167751130211426270711672221691782739950345618255787502161801924238710670671588577148558350302175296894322624536623880695142348039140048782643951866692108957193016434890102926294374869477624752643217484095146547255163769156836128736773043216227137018561841084564291085852168793303795707323917360098053378405628262449552333409773270363595413435985631735630886706936266678689492638524507782210592864744811046017536077019737772723304095816358235492373934667743496842047674184971778382882512537418627499034797672603706994790080790775516472906062047335636665471197744105417792598042560679368582316397757907184479325618472486111416821092622861973826948705057204547694970568909033457343036606578636679968860948140468966629902938439947221180465019853874789638135352876114709988876516828749744932470842165070690039982980634137934525800153893410701625710965130403883907987723622757990133123396568456723835585579302702415123993924001341179299200006296937283842090157476861317543002018941730920040537202811232350030281555734610574121632008879222412066881503823420779023234048449190978772421286461454998533816828330596021761187377300212726580288066910295051666484235846246533304601660024245756063260864442874770351716581217255726482467798436211462268591332337084212462816145146110925099233023823729953179104193129849618421129882648533748565905711306296995276075194840975023924219701172765487457314821079191113443592589997336521083490883827601377646916216398457597640336253375034714470168797033226823948824690076604808394532208208378850338352062318760061858800952293826394958139324281165969277371054702275940863291537348846339608407009813028164839062231933769693809904272787303903722391917078498853122902569666478776263084285607590713402394376829846463628309119045430808081027415101191660006513791620058762120632480131476797132930923538475231704599009962973596094833804891975819426415922050060422043370781634696470877424089157267726189845429761353320522990681233901568982441330214616522835416671064372581497156123267119837896592106865001555985967069166810386427254218637093331718125395811258613935820896589960063021478867486083506447036074971778907801754866178291786914294582579304974922664680724859692459915050245888803897290249869420821317559546024304802631018835349642853383353606547878995716800418765141894907083297410450173200192101978139476188036751013900019796318780720438719316535453762692693168653140025569983904180474686089443013305430977338088846833679987348831438516543050558087101078184635721290605431220281249443997634726934796651285353028158241573594642163524640850136783973435826168697254346565999151988439928237274395109545831400816296146107569342138834053350061764865823891650989437298089500948840173240799675689275953909827289717560983246892778403814266725170703066864131299809376364580786501681264039565637373102470777515593199934182880271971572710405925584542107125141014202243062240874275672337708590559114163195123217293723565019975668366354431983066329141999272112593510633683572878796475519559739282873534509886630255800888974086598530948913808581037074368080064476402382967080844835627965385894644993150578606338615225531303317333221779992321224169649620937451471330701535659653751546850399797125131017169840378100890684836067996966812092306027752175294682272536456844200056685432478317325937088439811177579454661430178030479823017909930692436955717966895318356619990479212507502790708444350031810354353509668815074573666623790169055746487274163692795779132857763079480021959678199347809066074619968911943800207576421441214860317036826579133077776340791298070828904884463204937644293145926884928558436623098224717286077648430399108236497272836084613214553474397803380939270376492244715693583091525771358044563191555979859825497886296391977351461649342053648482785016507551593766956731338867117219555974577586311680002643464683795044585598206297438415456222874830143217231278099159932421736029993065595602978937503133427691843762564189745573364738563669102757431262937029823581676819633649613027025256958127424792808353523244512401974399159570461150176298771967644385122588727560036118818619805157334582585554821379611748958810383074317293367241308308651705241317000734242007722192767923295010529278594773329599220297901737556737936616256997292426519228182495576601070520105962169488764863968886558878104631277768557990369380129232871895131414103022573943937487265175453525743293245033179010878803600078819392510850543361711660272627375762954669110432171028314808867663242853278435224602303857853609732173874399209255794178511473200671535665206827705645441135967134417338475714080752571480956008148878889043035111277416674252266308823245919885627693175396787477809219131560700049776528087208787022425420197396216544452983057755058652069208489919725863968241896287540358649410292352031675992884471338680188842355459475780311752812686084862870721354273545070072673064328787799010794242415617848454006090621687653187095372010906464890393831821147197913746254367621165967443028351963073106855683052669766381607401578800539946754698766704369771151955766265235522808546680723806557705114185225618773479025546699947369817255313581578032955358017879796372837328129077257858261903158178130568359263004507025443082540270216336933475058343483636423232712018411055564757258325548771654407739591980780105955798208199499808792017533333031572332536903274878854702981913662968532074920684553631402739506223028640942042488936749848642338461433119889226304670980893438434103338100990917004473073242624812753541422408358332214852368075197425126178291423223872988764590049236914211958719218569980245785539399879233065000430791770657638942619689472543854862160149138315464266406341912960518302609949525725987814328710962207477192859474235863517222893877535010142159935688314905107458096941828207488691281514255660738231560249083183188447557044470559542604468633539566220095385401425100864874359910209049497160378709947111037503747275061644297069049733957632458952253406128881250669581938206056750886216696115376020168246427026136100976024595778810018210083191600303356760669509467873807271891034319569526248262922805700674487099352834016003943427550990353850560496878924847403165847782263839618811426063161092530655250831311513182901856095619219371532193023189066421378996235206837959580602542261305284990861787093951022002214615388369414681513920238930831043753066402304666765386932556135023401675737210299302321464952854345931513855524556760279461406286639216394895926231040396363320554512516514876708875879315441650343854680107209731999771002346948305022852365277889962278142944329051255586154115065807777106758712216380345351128875930132575052593635920774878619747652214649038922823222677221022472597161922826855610373315278659302882024494133700031288565550492556263511113953012674433048153649659686578136166622284096158582025669581980648355946353017347347691373513836647324763710652243122956906487196314195212316067717491099447898107011341135053411365134582544048241848338952495056823066409986486928929778620559801755014339332297118009629275717012600461019647318650456736562675174299017108671197760829246143031127846489599419672205710553276248047997203370894993397966079028414462614330559279918791287043023982679743435669724272134499326467171342481116973908683531413269038340846216608470373451696589766970053094705895792283104436559920048211773566078317518951548389529753434602751376430043250637797088210738807487192008899711170836415788661666975405684391233645813837385144640026110554262947088297708291923499671755891314769510246522115089607414540688464300995901196795992175973310032900152491700864367281078159730440238103483881398178651442350529223066762404145702407203113831821474094783688974080648813976068754030490903122068899381023818093610373971423124134196988877402619360768335935996664864587614858871515772288328150735212238270219059515647415261085614973864922845933342565116006001736614231915059552765895718890717597595535650863570883866244791723913866638908739362097049528417039779950639070329650124209222724766577434219495686367501261830348612605823789207316044147180772007953128013306228781168418514158748655086421863972861073769926923523278601465524857731659942471483569895736863391948512379681292483886873600984777016272060929487464266134425834849834236560435098976273721886112186542668968192705483822857643710703406858858203328794539455564058003507236472177614053235424962168031715051192583982956118150087938008767372280688970090267658928038784793710410022801319589482399037893677470858157407216413607362462379258301933172754081330994865796115079889074225401343670365667899024808013498428825158912845511280421732046574817619445970215985910187488386659195176955208298527925373741944335375325531956012527292070060501479788322021849722477615828155963665478933846800241916340585513718315965380708815269917438115200522082570544812521702505881479808990428186630129861888833730845329234866628468240178503438556520126946525851407770890491322318019611933767814727528530483626518090581523955099510507338620564844204417336558495626235915789190038918280720652865782498232493415605399230724045477833622355703202637354701572305666019144014569908160922965579279302889394302361122490639714121433997810084851456385907755465725795734917507183042488839447471026445495586863239025647997788919169441465246707478998026065797335446138726694633478121798061406785873454472280966990523042596704881605201476918446866865914227277723261881206302376013315050128145800289148107429161169862202690688638971034748854380736132943692312890111442286451555375304027664952716917553604781605113186927842835383839344015346708148692473476935984768920881212668891685662031189693819306745480889636071556168804508318442821535431909042132775684836713455401278770190860905633088804582597663726768470862932167598750533236019207737304386257961970158270948216127887022271771180541834971624680438983182685325865226312094691517388684992255172462072759722399028255719587225646411998845596163384527694060115368508237160903053005738792654674704798793860704561558403814559284872660171546040108637736720405087941097070673792670354673758298345607607898313709530515216318242710078076160018576653522460434865860048732035247804441060245975426169940457631866961481937818717644316419610519102520516705748152051003034242518977519711023659003248258088067400269889774719463507087627442611057943028942376725277883972275872332420151859354016840632620054802120533061253384643777113683292280966248142329285531412568012101426155012738450936173066336443349435974298435783663569558725045774248002373819953296713604937524398123395196045279229568148252321113797024876565048243667229454883821864218268501815698864305392290669657007941373180927052387749038638005047672888076600674372656273278730975806785434329112095812099487216655709323340034764455020470853140653255693339180189656309612941138945749321394812674886086397730619421181816923547414231158149576840185058207268542486903685784736463935837203664006114607954634163507158217932732001454084616684846613288642212445222742801882627151766099765582909762847309479045009993496078244262057387954618759073279752560637893498243215070861257217032943473339825207659562985047541560466783485378820754848430158829644044578792072382116099082793554110888404274669291148697105175602456862144484463385440960283472556383892272207604284348376728778925045455945082321646280436074809793070635792165466098701782107226498853716249411542055779474011214348911954169442817326905219704308118396495404991106739733742785340637760564786613211133452481853238645448567143895827896361252277656191944213910285111616304305789504625858741483857141029861846336375990224427213833348794881526142146552160800127048155275214695872750217974403462577315843110693759603973962680453570198722298280346533133242297155101652564139261851446421756561430786907910453713458914163901315391633305899841324672047040448755784904842757958928875126210058748013931963551738462291023933996951741331262903702000890531894080750058279048362062789620318351666214406176828208580793713421364269044110506492497940807075389371991082107730089069638752223711032482807019547546523464011857320479396926219543000824607378999741221156750384179214564001770258580718005949335511512429821626110689436764240254693904910174288751695731434190763251312532515736483250155988350671419648075913486606330009747023801106839728876417292471686278341472438063942845831988816584735410002556267816161336272356055846648318405852671897926318156739075926300491727461338387717840644790327842312908464541213708108327326270373490188098011932199832120670821110136278410543929410017138822555528704409155583457538119854614015760987812955429239564120782916682622233188322957259640840230391443129304110354423519574410917415248091694637322017374145126009728007504604870693871643447149744983394541784770194899095428194629975783229991820114137367346738113604312450767316328594310262329828729723121583555557895455438531383861556744760311409086302437045617137643455584335591883187950376305130948630859553390650748133164658479940716100276459981269517485040320799278924547055049407401474465282072454121888508457952491907343660216344570111507541204969141310797430891843354123803750865226610169561130218430287883858630084791617023186393945186810325164994760527187291002503917291314310128813812152575248264732530242223891106346711920225423783300607804695073048005347318941413791002998021001058176030543876577722184599677912415303733377157621324682321674156450386090140381672273994190655283148420207663640845069518383186528135376070578076272661371325936578402934517721474560858748983709533266428852659090148865344346405886576325106458533774447654516361041009529530967990728222152505287882495250390308883427894412645865460148910374184012198597334031741050474711815662301306389108658896037663030375294194893079758545685608692352972932471289725762097350820527356631622951581575309781955883075532478877394726069154202320409479424290997707135933669106022234292959429629181404920606134489674069840003850265686830440612018792602486556107537065396257346390240231836472070009770320980076126809156971662511240669796830459889032226218304983742391625072824714161033075061746576798695321894647727625592240171819825394439962719700457535445004388678335762595791829496139960991540026463175231320901644056292079083713760405331442490866839485912619778533324521105281599382256393582422936591252972096015120636860629813105485127566045174491456886350007748524337016900526707930129065849232872886634347939791899934797561929859127813085576654693817535192590160149188148071035597105988636656359761363268639574027508967762372727198410877124862116098962185005847662657591372301450787091447315448731804373835141360042672259395914040179481610459666793760911719872522346613651433388611591223112717078387541826424043342343774210853291962492311312393298285392025532889384882208682137396566765711552909207542637114568951647055797251840605543943328188312116942021407955363789880214946229044242869447162538959660465429225116162326276848145379737405258588205530929645306485941182579727097311295816384246009242582432479854432724385461497030954487915158617167467142511251547561152742840502375222186249440776033058692267567529607348427635594768429604386281689146716765501155139995281634071953458717306684492174194806996748809188016880407474873123105333424549428854283073349641796928594791952886609883041246707195260232921665208593955848745535709841207629699978278570511681611183253005691105063053666108130261422340541940945909585470409256078501467901600022691196007575981917594219068957796305968286354119650552002739588029650208387557996480370606455895839168298424297643467082513738026432530723686680185976667084470053006110268512444810602987078473906962961141350274734965760508974718165135051955635290004274311779220562061610709382576124312551240731686415281241686457618034468464817945497288184961516554647826642606345235144223576406057778026175536452050589456215689711876570643212835537754733660248851687694165850912304295588488747750541891369256364792898922320277542700334520859758747198614394354473122006876981664209934596375144363254492844161303030694715787901482019255826605538182967508363094676973753947691697191430833618964586283703731356244860334826204541986443379987107433625663607519504202619678048948717439304056631917850126138822343223486101244999609091800856021867575094920288189550021200543512948612411754622794548913618773961253278797205680024654964720173863900869736465146078947938207160495763101590022199563084871625753376261014812484391822834722061475999832355080909652374752655069811832043841818050186885210204642376639897602207181134225080516556034727253887753323920440749541705090585979138948724382691757058077180080872770626671216998112500401367658241255865405694721413783093901588255780272488914767915470107633411258216521054997716227945990881903055596289746507048140580967740279812450435952640987873890496341508422861343970056754969146353872689769354748530469659459980599135734813780645006345052180879580159532441155755148594826068483185743004769607501363036442181796996550394287081552791816777323619469045975018419229529456204732182317125453154283823467805273376905602850156754057254730532791565751234083642944641349195746981085478568321145747358641837367235489324119669401105218830402586498446529638961144916276495355869114184993667349675134963423656182821587849196020987455011772793208332049524042914926439015002440135533591596758826719963150122857040817340736626021399999233799810871432757618940924364682849624477867141577537338791995178028859574645366496535068684331786753631290926765151180044496832771291225800672069727753471126700819115616338861436190621058308092032454414323230552332548778327104957204872986030193728545578995545547370399871339726586757408978807937474267239784184231308437329309406855783607666291644938278305819589799196843657878861800035130752865712365335092364252814893535636041747633753168081721407855727380196041295840819655338744933481424414601840569410575328409191394892457602779166312260674457906646194461197560563449145845850769094911628620707962712667297941287202298981953661407690212101654479218164813953551546855737220988457900784150545989449465120802731477985615050136709005974758993910856768600906046968262230366652521935169827680490570479732609899249913910742753825328215752665408682140414236972206133042615677945144188896648841700694092974166677061120562667165302347339977600533288841759160608628371557645157814532185996882256066450478294898351229705103106612763169642820080876159698753168461855965289541231252204270469606956891860239174102715862077988632377706444932492701920034041140638165554012333287119081337622535090812525727105347355368258061099284454434419150007194118416675112859613693777469751962553506565591496689320781979724751268409214424048856032266892424100496265181551698351434323262115765401467589890744343576070088577643237270361691066305183935674671031672647891511133896605946277500091485894744819085909988610031511708858037447822306629772148587265742345792385036584036315889600562547195435506579266179469610693923094841345477732882119933573149393910701948469633867062857839280484465991943859785157057617086553254952823101399607443979291550392116583198368712611499058578323483933201857753913979212951479376049870989874131614631013835233225827491921733327796240115096470235622584484083023827177393355301199966390809669288556099120810447301114091012517068185590285949884358991101842143952570473726732925104387843514054265198006732746074901151906033216668662976561062912114537297367022698355286264673571630035377447745193398111874772881263139474257363274999426990548127202421500333198142752565863252459765227945318884379476817787240287933555740293380650419995110128849623486100797463658950574347659948223692500512642710640464774081814548472961403154721154760544604663007822210072562411561553692259059127326694019258786606005411749602043867436899429650065709958264946175972643580977059365407883280897470052607430314678883629151357331842997239533292336125019177592594605789706225344247906282060777754406827215899308581089631735147277527380449749215636255764558721409556601391526917890966362206686596564365828810138353928619619742685291436071757389857172618628819643976749926718839745106979295525945280025186656126226567515171052738575066130574466245198650021296550047034465000256448240075482225646898264919966291662772963949636057820016825369539274083730128167837985350243346722063829295586569187749099944481413131885466763425109185750802509249290833825578054080832252571762139306121326206224541862581365966906678334379574889150709155761698205683629382604133589117958961589900382696503838471816267095243130119205833585139099336605465277843414432130924374000889286658212735889245875516727599829718471437012333343434682061964088147186990754358193608841553688063408481867660128068654597227281650465448433667761966952312743245119854761613090731241232190821721899471194398756480803710060275987996533141228888595126709731858558300649297958205857510751614602501425759942546453576171541680265505859295896938733774471478688365069911084310062994145591624107764258086923915682956614598167830389310457868946826465383259410791538159085144400851753587190526036949016245688720572356705224839238855217577817248800887782462942910830417553366367333724418303543048497950813000075616281144759921475990296312230368580931251317404554930544653059402496520792576641586497788231370698956875084470345164170489623708455651449678980157646733501566866746134865653506970229883378599162317038637005627659816594588192060939062705187951279838185249822540411310905667684303039823444824230285054202716933769612271392492342082902519543699927082765392813389736031114799132149287140592551905103758307670995764297271479530079413898098023218898959769495623172940239116285330583385944636774826813762876824174580507079387994696695296071095065999732847781314986623564799154631122400608140964015860891972287085512323084753827347358557046620503201581427207440573093623961120944252741353126017239769791171243533152641225192689987478483759537170727333530690623334693934233342052807497214880208581300542154206865554021603010337303810918064093619540563344681953149928277396333970225402610162234065942039148531165322879533337684151595535540202919516169464294735833163929004875046897960853361435435085991889170592295131143960383963257480085745158065554063418431996191518745101372970699075655452271470079821356975679443381100470308525252947071596191359808432290066253978764908125534845001825750535782109632439181957068831588855573812997725894203033979659188624464652099768180583786565697869182380972937955480672401328236260912034685951412896609848654568068627930710227458634882987995706509683331979319878010886275645210991947070810582300187209739318310921730360081465773079947913209414757876377506188693243417330159880709911676652174650332130723348493071007729959662230111985732006214018574263088824828604787059941582695789653726455164323845641884261392714082741386453868298876287148287687192882395294497005956851556581808656204623698317222538204736633141160699111932559976740888247905683675830607570890419134456683001852108208827398187788189328446465191792038326738514846881916519223170082699561334280672620564642710002288182895530451856839001686870415175305846743245760789099707842477815851675197793557947346392458560399926991665914891229245045385922816749746339340025314174879136822729765436229623466852694478999728683558303823124364245420728558701319423161178311726602856230446424256295458665355323984510651453782192520772148806275953330290307868655767726940463477889482045632229765311245985645874326295336734141277451438793343975487489614322908922656376911756061088665644410679407497126045853364246935382870765026670954232045978781486417489596518657831830525268233147433358574480459247563243137703350054130632061959490222435744829274959991257977501389329045803359998864336119980564860072213897641713542290520491161265720654073067709577215643536265354417358506428124806178837826334563631312614562034859103112428740352928645852806022330346849807702041798974841198111668444587028522695620968360264162529635767907683244681560458104528181452588505047228393286199247108286588196797946586310310337330003473179531675142442074827419669205848289471985624137781050974343340361001354889725972830459049988976495297857196296026374811461668496017868926184283284078926605081300667017552694478775834990850073990465475279437794128687402305725809744840236763298916815540921439952436802005086893952362957692842081375966861758362633107947631215175202040336249325350783663133753905584961431976088477123209231279754019736409213498117786508109258838450580437946457047965068109624603249358325821704659200314264231912816703702578035072718633739787933269639747705501653267992340959705224759550500881265573482919965213757612546915650957780332773743062719278109037872564233677099687026933113502697640601413859026287806499991530971118935200436926162723353657388205130147738955581013260643281162237997736424483816989691421453880076790466738719049000445911936205034201062832651372564346707212089876946246706179018036580746321863635576407912017490570708509806394883852659569223798318377792964857003197975953818600300114303817637123319931383928099421819714833746710654296613324545820186313511439120312312685487724191839530352245567303375346407683240932209069051478298652724415238208031484543772879151833398999120512488803338997657523369161901429609195208584844758513751281593481536474772811305447438603372432813799903287981473399973301248642484723231262348011870428520969371083521528404085882833337222577398787244067636223058372142699446737497628487970366134803137480389305061065318116835303940311622274819448533415977832059968200214965087751823989645442723272006229363437363165650763904692371883937787548777671738274622133394622972079888108348807871528784463098999683173408504205035979236294449261295263888094017449834636552877665693838539120914888840540568452031479924368498774895453154050046650643903641079743668865444385688945041422797191087171481081568760813052323930722320128263704437025394600429536481410126874444714948467208704210048070144642561038739471911699009320747584199517555990280000946256901655644056750909769565674225782516659326295185827737438301351830740324183920641775105105763962242735833361538911202372961182124366617971974299652888325152038593829175597618277598713584876284654095427942815495124419314951698124903233512695824335408533770011712961971379963850003792022110227586233850713650490545083781733503145392067130014781049695695893754582179071761860302088307611012033370906528421777535143952399649689013655012129673177219044989923902465121287672826875932845899440599419492596524188355484111812642918266880912646650654769800828060862552017518928333583926242597302729901221102722038777334223234680940570291433540646456091792280059620132093630588081239929153784005289836652251199813400313676300102904598502423009152695453157777002606584762883226193898260486435055155931495904938815920691293985532503543160879464982065742745620119283637206132494613960676731534807149277549285396673710136572045479081526532878311358018744069184987267876411144668634254810009013914268591441161853663065209878772438493475152949849965327905457313298174035182786334932243961563406170098164187745862465041229400010984869212994172693216295703736808669765430420109774818754049398043406082842057742183827197910118444832666310025999238806272634959238156492099125117678371604517578566168365205450035437404615730845322737227780640193610143984826671568209941727104227393267187958519688237180089891723879596483664695259380994111938416629271898690174850291291252274346865340589088231368953541492322650454940325437231429797378400822827782328291197698314494324685962134666611241576942667294330927209917306435102453624224417086233876138216759916352119443800694641613820884507942034798660477190355986829141020661697851296952035549256161493480911339074964342212280448586619165341491677106990447946973206734965244603310188764646929707008100028255293040124580864168502403836959085133830620328836289240379830927577785204003017938351662932789428125154003700610394336179813244546410344088351448357383796734393211246711356385016237624621678614222864598725430302619935249706853186945119761975073664787467031015474325912320474533625553405347076502654951637219134269270123812165057797584306027373077405339154821789580901003474320215404539045867305411134759689686526247575508959584445111963389798673373094252630223707486216552051693202856578685028816274770888470701022357535733136582645962672671481077086065826289219009395287474721762740081735777013434499081014977624784709141350541298972221149039046031213547105143275574738177927396973714862422090787620518004585275499823442621094248645723287516241727948437428295066444014413403683623347364254913625365993427282551782523268740100940209637757080060884984721750656761687201301076684017126361195649853603308643653746068780988463657593956860017651487570447417623933580420637041816269532983096543799114224041452295593613620658540555455955685416943323224460051518281938398953779267172125189771298849472889171237463040455491828150660345620326344001481884574024027719215895384404209605339235342328476377499911052823388389158796776252041628161692176532095650154547002031908713216421027907616424803827358476950673063671012527498011996668744257839307751895652951898176415076261002384771770396607126288825204613574250119311763047665113075912741516702931742241664980635666240043719404111238948345059585948749626402966783273101074543966502804679936016753270913756282705993438674482558948715802284969758470177960515330392236301305785456362758486281322989384645809876154066412852211807247296791271754838114889458770016217850267417215610193661606781602998265422166469029308066202020191709880797518556337843079906695637694446371966930602770648182356961614539146760113263922314043791282843406829504000881304716878608943488991667303896630888986631133385767525326191389109837329298747813753923795283337689938310198176404943928134333069994879471768521731888436420619955920184736147697638126078068432793131419205713520151617792133573888728268088129995903652250240511605628727515264451257566756669065174926264313112342203487987422453913161008957468948489806470634105575286302183454750368152837528106284102161730328581321430514990713099338342210495333579756698648305582801874182617943341041327430743845006539116719216514727616088950611281440825611748397680549336607235223778213060478331534250922693849568842704587904305754691198311708998124112834024259878248422205310981745264179445723218672128792444308900175691662847077131713476435801008358423254387787838298857507392653928699714688106252924957012251849741483284469973344704848542386273394474916259638928970318769778769637813137986176544113823928735561435880626885331499630453592012783115890248247599370503077274660134216785678567592658601692178011201743724538022350962317417532076664548626265928431877509643783214317799036670006884452399328924815527021084536900747371687092686738790840549792835503843188970875295731937031685227962798578919365733152245547475894743235556532317131614038683160760436424250765113750307825222911003074541534648977027197734028582517214327360545496924689134178671260761663880893611088105842617439778655659319019070451775024434688340001251391138563979948148267367489379625346568387283268813743434896770336763567744135136475786724472550796797336739829662519689401040591429042406501634337337750054155110261656386642242015841858594711133498974495672671279632644615015765371681977278690418561221320394272494313120696962471818513742996106899539517183002989100082450439376457242896835133218768974428655410063570839249737584078455396622045954247920512381841718048454196168437384727473167696504843170459906646203207953245883637000605415120304968334771906693692241368424343025538673157591469712812342038737912597779228033796419904985237328308511852268646929808473860649944331222907624218728952086900847456193937556829694334995841299746703657287447176647040250222562676788889775822882119955355836718560406057826686066503181921716617969446612667747405797521173564844925161765392643080606768585387510253867861002054566885082046782196227677363812904749478002862016699364162924960934525944679989673336968051959709513787141499264567923472176248877467956487744308957990287447979762159679986718309491259241428544274534421041961826484456472528691218726141763838502944534686789932735821530290541458778106534593979981389292668160355784113501422711333833322848336949021551496503226002853317017976335641560697740363234315086544833043798816641491437169843751403285023358052325546663397009797501147319539686475544510958980702073528474357846057236731271933944017624573072205229395258538165604030686581346142838829863960417614645842637678033395096991727978375423186301911495466874094333964003452606522076344482646410668061166963484067667486764516340816052478229510112593770108656147538997821241089009851707393225460242405956499753852419464129870599010548057097631593826711679454869772935753067319609389711296592871561241579974507435368086061679949895893490778931162704276176993404778169832940979677520220866358543479461488568496865759045810602107513074944318660528064295611832789520328755056992319382719348075409978635645228979927205780487680840057022691538307098111334611410613073729748535362802071887221946899745504407562720695191360932343494755594891988450970248549441173761786292108458158617126086073606684208744994949293587988174249606431240020825788958632080393885769480347125910707471669933336297092686619707786930345136607530431141893512005314200191910903304090433112504573171702995296980938708787318532389591489517377987045740918517467206914564453244754928109086693722863244202111545614595187375816372605018327398407918303146422590046779867386646558699916986816561728733034435867352614327803960226604379587622908008694676508878225221589303339571990708775982768371937409391280774226373891128251986960831132796580149229156292640104350277531423554497348000622566697892714791282218478445868243577126163428151337485733272276491211785588202586155705405914368038103060683442162109738803824747929195578324992933768835533786143977504268518064481029052754314288554250901438905933756153049475051304329641133990392730357908735564489553006621231591779546732151359005107278279252844658877037561700450686795544698673244729635379437277372119946544902611577861434430204694418902600802201744464943730328839241956496693170696468172281820370543247345396372885305287562620951341791934348125645325875971446221139273605580262477270192138279812039924283531088180038834486327213045443887279904819577237539630193817440797284710131718471250951395076268227975857683872886098551824782221427201394301420510358318208360156694353755049781309860932347975685444534431964031320051796615541233957156904744865912113715178805908974391512225234299887947800422198451017031540915518649611645676076458232953407350111441979545664604950191889801100996951954773435732518811241402019067904215936520459498836267924822686554796869723328578350123157573232625019039049242989211955910174827307964165403891604208721051109833480073446883395218866375193003284439740896084047016582990853908404529385240854161372495121841903605130033979573963214350794458601305544922742253471694611107983945995908054409850235511473697768688841522923858200395813897091204481527714813200862217129694477391806069065718759827056632007246218006849972560284044033106484487222727896024419998327124487294357595461686729747575567274996068698968532223401991466415994522540037111331342971076797465672087844340987247213418597643182644835525320328379555558057219211951616625260480515147583277358731667910463691008590215486788977968163843551332040098972156210099943024314127691283560022266283395828267257728196953764265334044828971922229270062823942425610518541165686383316112935909636593225932352436984584390127999117143421232092596348036009502699861873771797044164537920431669989849159262505664065656592799428088268307978022791719192032131667240410392440132168810312002454441361580490273210219535939322301690849601863137012311657827300508433907837607533955027943175616927039540737098229880995835074136462092194565574887474426302299602448839495476644581105745237179145380508475464530204372686803810106713221595814793123742016565921619416370089865620571764532797922689725201904724846990960702991275188439602251789210571294511953028954650191966743529959738217570378753021484047362425332113975389908550626696477172806741060785888374500213132501196409099837949728955800664799483960530753043723501562281942513658585814870355543607493905816997808480173781307281166020754832094923765332986981574088741365070711177608075070374493991743386153997416595214899960531900681211540971026447657139563423589301875463450826330758381385433484238828944459261284188625878500745550298496387494678816151564930602403802457934164966940561554521914641221617718348418358022277396513041208152544136083454611902339237238448297938138059917649559389992012665284318991123871884653752805152469111334229923568253552705942606163827210174968624917965279809502350902564579828129361115232704456579031673462482754080352058632459200347994310467102593765087078644347853409220850979653297734864418489036324731333803285904951245933158617011515710036162001136702737333365574022493910230797312014684498268425986075183481200611411538043108207973222697081954735423817533617667558285983737906163446679801299948861167168286233188499281480828469594210478048079496350982598677556920023466888827638993190685729373370643312766532988747837461532476261366858977671623556518094829973230724966975828395388181835895991399193986328162602992417629837491154363991573986296406076505556695867299244781866425484719393801365988094522589653739898058371334217578835355577615011104607607960399023187171904423829112343555326089794829949899963852550258719734454555454599516462147044675799321700220898145265338378166142605856224738330122945754438018030372965045380099051977945422504934432138241805984801471572286708862871372418147922116681336678778730193010926557699815692057900533891999727207859489084788080668041168793930465072497104854668434073382039490818035065494449674720500992476347623985286918882778403191570800593936561458480724471906290535126928413570728037353757870901881867554995688240454499246201666965047020946177931551470416858043507060470271152715587164615699207373573715334479059389738352017786647484547560968002779771959535664432950856168084588766157125664216686273343035652605190780044261136782916722639900823943237091572285230274629415548095206677406747774935398980899726981523139644035629194521337747978366081087392315058972507782930093335712676975374083239890173302808361380484752227999079432140923164913248053741731449578150627021863625711265487284037800287142257709732443662603763742354507271531529533280028830881913886303303050755591998597788896164425950080293173135227464332201061284843456540174662669370694461210936505596867376347096285993802273689865848071106107706724522674504682004915921985635619916250280371496689211531329125547290371257637217013031133381931651146852584857654856391346826177982752304244390488229203837302778127286166308513731202777782923261000593152643531166148123979328296803831824094144213837415011808112770929630845905390092900979148359524131385634600543912996334668080078925038019211000668170576502724626210433469190972995112923800091838223818088193579363595144518400032755174096347291851247384368323455703577698896025144635952135952799964362502483827326442223491169189305716488437563975185395227545276215089829709223439809844536837788787920373404899255525153047783950656858647827763100220607182996879111083308750922101644238719840548861979143381840124841261276972000925092004590970820007384678730605121725176148064781937633882770710256179756731045178392928074778909017474134087633721140272666974354497171996823105640595389398136454974892510714212718531678164915333288377152723755756456067821441719788556058474711232387530453392588890433333801640331720543480864718251761192846259342458161059958877360136081597255779520095248305609536345252244185482777026356945923330927994983585800661839574310182186223824413377117766577285702888827900835556159628120979057181916707305723798924111959445534384481368202198257071647726313102679664601018520184219869516148464379974026685615449132539958563271736192075948110996378718333276178785066919393267954896252841060535131610269414199252005609737324025208379159609743545767031989180489309244028378741223196237849637892477215407132100774655700740340390171837149487163166158273113172890298614798913462139022619191260945836344053072034539442910428371657260883756009076148903708955508437819626963959197711171254075584576908248783931733037648838677098224638367392052076906310435067516179646456559383853121005142938313341036717275509378936799112617047901990930910691322609537251562198445126307041156166786687190410921589776035173879945957314553645502921945111414809521731447153996767170088414175495687739595442239527445583052814246992435348026489328586971678364431842489728126837269501697334168177690164575005206014122660080444890184793195880236923131142909867010226259868915943644373532375622430037531340428562099506144041658374320389776630622003429282008962323365474416381322137433684453064313000984255001609347091915618452035976587447730409010353720835110148077633488707944763402494029824241153074753795049239401373715564050520532184320401047023606570096790962909958893305971419769823405269206820362511455300822126749220879779318360482073428222051611415975316287851760245717416890060487185869097782996397503156198403628425117052071698308442978025392900887691284170138300175933841656774629810630440644782420496716188018211635318173547027389572398442283311910038075260929659418793319883090595405176375100888810920815095032024361160791660486074698662803880434731610099539150461788192517724676938038670227335325259457248831168353470595516995688287814596378139962028863708469851309514762836640400871412145864146986716974753898044727907629505509542770361910495761842694606596818985254427036787194379032036268612908856273147786352947760499908993589450304743656740780851148163119918063918697988656845954919114865810317521912954433889220077077140625997645714928196183691903107061484576356726601383641022839832620530617826195225682176058331760030449673546637227530049147823517409219784133061239015430241032050414424184304965468382999393093894635281762540452017644839624621252887495858868920198869209129816634000347586830267958179818276452856855714792782380500974333888972541454202333664131517367896830837145984600613910444187458775827970585638019665409735572610237530148775842255388106941113098066141825673615559514384114743195935975135532224889476517271533533483938238059206902270918608716869885854058682644936588234331931311484076010025025311977419826053688474706050101528183922473601611383772565881568607067713857390854351709350150485542887084979270035088075722678364520149344144455477996016960477146854361215625318322486268241263999890714989988640653664372699823128494178936721050132650781747228124821387454366120058856133063683146086423030192357567823773966995461544356108321669658690125638968575372351212313891642528479503318253465330244249206867172114592159471078384848149404111944364308797104805085143719022814865759584549486397548689289852523599581152890221740609756584709926398692266536960557815903344585427831096759233536233984179632763281668769065849665222436111653990191133433319198182976617712658808865512140235353733182444379242661176119886085048171592452499048252978252823274078094231313943075987186831395840740167781746056037391461851219999211102971383677747933533280138793875006159603026653543484335457977504467529736572727428442136936568916202558366770865674246901368865794057594009299826087934683738485440945151130998801253617158400699577811654524853669019614772132125432476024151795822337163448492809308398871558518888198415702124677357354626974159812510728717755655383165581974918158680630030579033904444958487775585529429046621381552713465537031754782339847630303418134697123940565527947789597141558152952183733165591915472857128263622914668760434925650572184243276364243515063516717396860034936169249134577509888392668631496319932430213551907887694889841325369480478272807061390263653084283673645562565193956296930559954078247706023108954067881662095674578532068175707058507113298823460060673781970583229865359479348010982179430485927987613435367869417312012971612065418047103782949967851437991840367586496532336305926141004256856041505037121793178496878725771343209418685444149339962154168426542249948903456485810653487671587382262025023167575017356350353928827477304167349314951420848430001609910471917700456423941994662653121251834081367487596947173179363704139074021041613710673736730224934346597660131362983718946280535347524066531250743558317202354094844115283253028116212681741554504813915303436235222862500815352564687943521677445329656540607420156467893986527758816437067017590561415992821002660707630083511055698609385946218083635324053353976911564176189285505057099491211020283739143570395705679419096429942459491698483456527581797863047788020481422044383457503005534383915276291721742480826735222938981167100328952098663570187523727452526748548604539559676975858315061184162949138469258114055114465587558598263059276117446070643526001023912438963683319587901418134333870688448528837072764846123870040297938316669778862343542198726095478720577390710787863100673147410003683288756481695997589665098592002217180785130963906083309806606284089166392178502667613294313160510838811662724967676869539546182182068128115845183189708700175191916599955055574984654306664657882005657640146004146147791623609697063487995143971014400210806754817682932274110250488083849121568865097256800605905250117026077822398731252022316211275227620839480658636862109159204184284773775760389112952464505357727485109887365220549304789365713062675420764533614957480704468406739137102493071222658256763929348536427675147167403681355208352275572145728395816423840244230877820653392247895549963245342667823666870967797605709160785374101503013425616185033395604527422323606441321705685289218663419803190096468312821199980740663764457641702860539975335218091933293645664083933929673635060661237851897215103070075042672915813549454465235070634037573161978268755329363846302274598485623913005283143765986238557292885972191443097985166442378864312325987346605406839343834488644269273800755420197454003573789257339054108251814589503622775973522373929684816742816544737882118437468570032187044008362029337713104832911163663660884672543055765711901058574277884689002786408836967545842956727358387003086751575949408360277863048599034533355741941001836517884671035220676944662563758776765199597806216873737800758133615848791087888920283733332040950983269189178585761925415158797814270328822276398961911753399669898700845509255585107725457230401682973129088939844709142984641284608446746803895041087377708621013688436355149766881828576927427105470892963791159815373535989141633395282623046581871296034117041358807756690952149388102879188935123835630280375743264252553238549517181847722157522661226929366164322032986514784826434718961074135992749482682982215843416189539338476290640639860279181019619067813349511419789708972252700628001045887123333933582638028684985334713166871966662440939851517194452519498750973311674896842094555753648715432956752858025227335645550005866812976554731797266597392524232722168262702807495226114717277004845868896755846379780788001359146621074043081010227900880387473984430889902999628304617671633095692065077452747079394818674505192262433633807602245800029963820627634177990763515802210935352816530161010446998664587295944782432579830129001467847814363360326888502349817943037220896871308054357503542598028491065240963545757652207840475979357904705743659139029145496293919510322429592207176742633650904633056777222434469889955956220613355891671523879750970185271927538616614818967371272866766127830773267927695212478224620270376816890017675593529986420459883856589598855333892520420674631432536283577921067847011988638288186896433656765883230153026134087014642892739911502625595270843973083816318961260455773441729917322990667977183141675955584708349011037639230926647354222672493214715476209741244185229906629170084018891812765824483749436854640743085421874479168886009888884304235109407833158862146632848758757848787548122613142693837311509545577492934262907958377289183686857961540973494614718453946772633697014885818850979723225557871882542085711438596119630851001749333136500816663127965744204033349121345151918577344383989333294956675476388721626755981548630621165694490812994718403428443273378924756343718885383051773400641240247951775702533126424803896137815770526486109562825042806814714912762119988252446759558734872840646198595781443649417587407699880203459550034119147922941294689058286636089086231330671844670272802463547866915089101957259936285543889116115485240101121694239067888339425672779980496577890537112068652107627409329200901827471764893564408120093128660435153085356544406129207495068914107610180058861362066263272755483800708790786055972889490437189472694769745041456487281737894747772437871436902607342590174704396456328534514598358408331574747284854531836447365620595421512602727933328789722529007810559517244113409671876111570703535267711678301304056192070676546275275441905676807705681628897096007883186100187608495546524528704351620554000446394377235328652384132689613135529297096640431290149545488946964980381323365948397150277662330765044693018806272563399569546633852761853588698094178242172100170057341196436527420397013574428689690283682427571915699153059606535577126798433398791768563875638995614618704076297377422452944440642082268262317444262713115857804580055383893191523642319921221207334701966573924270138310086384741446805416281246116709479141128224432886296598175240896693082314642869966590969781604903674406440935662276421436720254953113348912835823945622762590250791239334881592917021672602859775414780446794805698225165959061654923885205489744042902116982655116189313607974990348912285171192783459891422184267113988501578035595624884466203798158205049670152893191275419746084286206299901025073062490798028292168233530599262962177058702753950294773898383474761045457389361222549579530639990818560918378899165803743695826381436380665410403553222233616622737791365172275317250114075317557375051799386599086856740944902710652373013562092311015906118545312811846862922696447390502957367758661577082971982959164581164635013100942861404371868128303015569809866640489608879133861339034917857157396002014053152224544826194252633498913558863824084246664023418363271949969739369309384338212758221733782154749311027280726048887952571033894987703701910791741953481704456830587149924775273040698411435660573511256958194121220491037605757065639417142679627815757796570344537945048315266162109196266347706933541980283879872758046556402642953896606553820696015540176846764737556093649494734023478725378862351820613225700360782547258513750717482218878851007922252763994220437746533084675871635573547765240485347836541423458135653154934778042148028721640211947362720741830626125200961762140884560591247193006102534521651914706338312753220137099554342945917660857287114849479751553990753218899307136927320914614666236012497593003974996980241791913334124523339821223824534961950786405801453535564408282739469586572613501639430501157453862867727098755333530872010406822366608957174804125563522978020471012844485847527099042733776883082029165866523119380360043923835977196845496609484133437413916068830640345464112570340486612882362800209816299215043147855259520097690265855208331756274897889387892583961034958016235180866837838413292499981172886524201177759408669423853761657163004520164898384716027669667585398635577672845994943682896501157569450570242464943156564612476804714094590172212802059340591920947189080382507810453566569916505715709742483272923866279717404892675481944618080990147520517716511954731183577971442877742803401011892994698681046350576612194846507757474148411560648652149025771817849277679129437096969697487002502501541346588365785224792740642132932130050621239836720030855582615059566574511216885269856995426788676499164507267320367290882667801754803361953030263082414213826030205262824916243963922911375507463604724835559686659522107777566295954147949116055528875258595683754815312778913805699094491557913100962835603510753893023160264987204498463149082502384267240370232833462609338124411737289539730600656709716164888267769048150238574269308535531902490778190767314066881638646672446405061740784905533396859853891706864234763505587301408568754807374052926914098339722113105265264825980078041712522765521936303769202374815170466695685616136621426003896011087644785227215548702819931306549134719870259765590098721861004582585463949601632631682505236195093701746451963565831583920963876973892280088686770111696426607342684358805662251400634518719216418898608769164035760958091677105440431631451089283823955713571226476017762291818445830511172816794693998947379647667533006789395964327070387254575625145914779632457849318794946064290027357691486353104041276852545908146979432179286100421815240746169913292208914357527246287336995005209955673627750968884118693995435552395505196111622658544080754394732665378726249173968753089894661559624501302263042585343936959437791453225255706990556419800664366715096662537381678211506217792209846419704840300198559635676099589902059244560313086225076395130148391809035759820724646068258987791114795980756999149885779629798099065569404804325152510254937091017738091202181500841160602672999493099019337973211716051258443948965356904748728738066987080051746287040479322485536314673603612352889944369459675231688417151631686160918420429680422689860522582344040524113954433236118979785378410571821594393743858930363864898025679136882012359285471737754727330451644042145554041114499196315008948100113191845901016138629419307761629393874966112976178018638783107444523649394309809114091700463879061482872807150994156112826030504354276308693836612861093126150447201751400987953591041403346272850615375052112904932938389417249098736034389015925376266263200090743725741076752969415217293791981769577460031010099672423965907596018429368947889748235782006038748659137351027074379762525505127979439697454419069319166063555507043755799164094179982224382871994817494443013579292549690518761945622089817628151677101942370792420191059855319066075241722767202180258185488619965824528300830774459242054441515337807547363337088841450921363730991693993844353010352250423589102105584895284414995169029065780850977357006881984869448286415656681018629868608463299324056331204266443005910910772120299301500463245129498335349666704050665274042453243233013634571290171607509974473019868589836959934923241409541213222531333083105655248885747020671148593980954940833734188440523102149849138471056688015894459761868462219906956720043529374220041924025796634481188775746457044616254254320062531366057074358788144824989994009119820175395553645559735999627936659331758013059678211119052331903591957970897202365479493566687181146678257121469596045366359302286099966041526334307853467331022555538522756744251086869284998047897630179119869711084125737338298210120457648963547212084950989038714482254578067520113286963129627972214447320018399165242451841661674734505596388007775229285582182801278599263363467019004890407451703944318892910919973934502970412284502901348193843461638623822741993117856038628376534170862446899127715346912037752772039101296551335221302598226260690263539836019935244013079581220098392743887577001129178182140043189174081858876356641301574397041280151093000498905352577590056369519031987773877158443269470049359821008834327349524067046395935457410785524787920895372006598084235738521942256920342446272271398814172410680117774122776215393481537138139224539387962619654199303300855814594033691174319195564987340570208257860670957037114383228000736729485064505873537089820264669722179736014219595880281790975019893166927293536950440377116342398909525388142813466165532136459957268071050098069306317328283281166332804447754685506048800382816017274147663913644761657343034366663498691947888870750189459878696743783009939007279415533647959318973577825402084062769317578463863837184053921639936016576963605201499054420491842179229095370077421757994532630354264417690625406538395375588751461855385519817103462071908994471846352553180794279912282615647900144226883168689295848222918980687337448014593248378063265482821630142780215383052114261194227266195431781481644099468414840623409463987840247094099201559475198823040701147898224128677651763611307488780954768297756672402930278775501502560436883432380507390122472751172255099950320002633282822998242107570209539439492710639997529399358595519984831475642452273586976262788708332991719171747324904794968167977701254326668543959429169366093187077054736146974246059104787430960797354059069857210120829499241520404747637619210319802022611329233815467066047582010466797896012323964916807350352809731161436170574529339299222159090343421226116211122300492255617655974174228477131330339381941445113039083082468280898042182165292576760965128229952035927329337074221803964048555053014921741799118947096590759358661521055077847824381362380291826603262241943869433780557409586829062132241459292465996932477390732078507864391140026079904183534912590267292419178431734175492072491310376309992722932039149924675136677913383259813428437457780595391091908566284915523630211889030457794441897679393300425413470924138249546590124665199947062110790224588440306377884762194370982782865335386745607911456323178301488490448853876047664980600685803319977877058788231412890538769151477287678178859045854131180756790221533899623208945470446237750941355310905460025007502360634007367033967419038318433715361991503461489807045042811780552091574116084655090449425455964383195110650437796535658506363530000170721519691323067936040563905571320327965202808221112845915373401184805422431062639376857976884468945601375974164435850472901056701041281504232684954229447686720136945343902282517616749074526756851709783557013430249228072686932564380141062405128144190834995199404361055066529674171426892145876202947108762252820744617672089344374162229084952017835420666797161172573860350202961441937517440950452410582286399480354564831620809800480416784202149267169295694387214807984717790195374769910282662979851278300093706380181731351900762053871984598946831079000372888597244055493879593514175577002044227082965900416668087363776140025509043605538296974805160176458557977752591350503929041040259506143953894596599368657779363095016177512066503520359146622500370259850273093101540645683502004595236376013354888925904801216023500081656999734912608086926670109116038091489595681496984597048499917771932680465809181817027108375729145303499704751298676380025405042116182816998160355817450062041856614125557843638214303992262129491373850177234981871643715849791999020677282816577881826691779197067362745600609418391006627169166947896029806887234437180389388157659281501900891091177443817064180841073425928993312041829383159639333135449724971675491243419995909024003486993757863723771698669081577630782457087187772808312890897752131962621476447976270508375895549372067489379427332309390388942079187338481862551005599723152354125162008460507410047506540773945185277106511479091797629731175275231660379002773157264666534193796700587065543062601118524288996027375470516872786342176584219773672778127982451105489138288719799888510491506789736844219582982152326944346643806373924162697046004332699600411038654985284122730130005304101173223441395882443155261241286734040204425927459872172344307671785105585823371081625065175754894896220999505991243103155670768904603793695777266831706201885568432168857297148951475533489801081654014410653520611177418006253196039896777063148285615001008890912454971673751303903235110960352504856645851162206205565571269081864414944167389249260518618693021914078895616213575947282542917161784564330802547758187768455713102521684153917864439177669222952703232590093871370045414215140118870723702803502642390198268286972981729814370942120477908566301440591977162257514567186458307320967846796986136759501123784889997227353792211453685884434431903901222246570085174613433039120724870203358816629461682929046805685567955754948167597735743438079609132418717315529108122963457174043014280773519624279325121477791404632555628594709499653215356081418052134416765137953428616078686281211083529507660453358701774079279380827380090788696369042136615953714101319768981212576939862227297905704522524141309284860125815688857079044485973744812959612490451300240181381435218145079210491842215435028958167158929918310017476146269985414344751722935989540101639256586503826921372525487526194001319352163642461480439756981370039176801381424985905162559278824399631932948455768078616560353815513144879504298040181267417677277580299652532533721761564600331662169100434529609925475911265422516443342689040300017565516210286693589861844827603764231719372417303260038080375346894724030742376437865073382043711798638885369538994428047308608350129674228609554589297153194149448300452514271760656609482603987866188390801680087088421777834822679564829758318948761272285863897245632685662506801992136002484322809211595525680459123200886862718768359323204035187843595086404209395103252248340337053747840340269249855383962088397736587184504008123554149816009308495281173698864841349882119508375613358388838992970806083516795552453628490913324472955359667811291253352666204770783335989589528738647927974377389321305059804374197501290441623538735102782373676172491465037065619344819165579105802427235286166879665030727927494844388776489644667832243207084478846382582208059485643182838792898247842197241308187852636960881029361284088081137550866231526919180212724861258421045646228055137572247331946405676455174020505627215828751976671078981724429765394246761023121661891037797573108652201974481028358427029232912409864465244718839707903796248770622071694236065859261105236989796897876209204098836046549265190488725492072637500686455238969567983051308446672454945931455642887091474278529267391686806942644831713873645463531301945738328956028516955601936089063342208306615855545775545190424703826376295015275122606844757808826600690668155765459989280820313221335149344580515588831915797598065649296227059318680963155181713097155476591236245452757443245197030065025708725375702940691121935548718166075857428471853595345224101341128992708200302763776229840990576864518533087299789344151767392351292329692823069535588245931113589395124414532781112576003703858905189175152728564016794760733031369038432860885095364746622069689092413686284767499026475930401069136954636334236505731109522436970266887405225844187431165093499475325323814900885368202560581026914629217430936871652013473283378717261851411301210308444729668880867131649113121047702081586478406916464736769063145983767456707917818979209864513579202013339286699416968350149656312055438053702657582194115089649154871597896389198818654995145155039460903495913427752574040453369663801923274972640096335747857820990900844451916238401918808294394526908862506964732463715687956420162624041676186805623804099690260334978797608276013756380207530342214916802909834655852934424268957957481894983785044187325159020206225007148381292119843862490588978777018159726278732322894178468622426325066670926006937763418447045553104323031196020732450991125463066325812853099857448882959436248360655603367764350320926681199859822584132373069379705154653894036462959649010529719441596760972833875272154871833211256287731211619709256344394996847427799043845421934029045533552523833807285603055933002778518066457266845119266297459272263925911142076565874645619540744749071305281915489289450423058195531212009224221702560753913860890408955078167640971235529729331137598124136889755404801269065813490849333185512866837324400481883276313527920752606217379939322014615828081062812284787875332410330036347264172391315642375839138330598487852077283667462204995331603819132328697057424161686746195163209165010143874631442373486741142464007203573224956614809152612764440519467704221843801083421889753504548202749347081110534067939122626104584647499203606891798798549910224010420359740267989476330224568167472287146937121616510288180729858796938263982305920209264674595769370660112848615506268247232449062236952532674945213779176939968483554468085389549510749524993068646499696051470050987315750129268763343965703057806782984893924319890115445370337164861007780409270871120754957790935684930057437362500877145935829806260218690753587146030325627721247237391182606628832945501643064213454552005185988618072525321529571575864768378946833340163464086585351723181757065049471543936320079077923048029943997635187321482394030635731641399293674527644589284595763622561538267257664811460444690783241985017732893447876899156108828085870631196526202007026291110939011514381451853589286066767824365861013811009166702332240385057191836076980584491102488483686780385324766389933914498852318856387252046747148951858404368476873162301917897177187501007371125523442959235434398244088929647791937363873166807596774996365109837697917715570540082996375528653126203764483594753976262331626059986198835536018605553840364437104151713778444487897043844480557195341355362571112680614801977270742051118260387317722823269492653604864259892185340775648302787439667760519451592730141928653495209722766406593236851406630074871921277899609187506646022561877372578784897197786431454375232664340645058998334043206865106707380091424497149543961610352591535049974737277143674958852816992873523393293581458264887899311614989418746444741498209999337307240190805250387008709424607576429203721291364426539130830248028157453188666995964082919294656208676212629327660393066108675756075684531734671664051513484489467065817809303107609185912700544550825401038303173625578031419112916981743010098137006794966905731575133588112724442997142001267490242138043883466811625119656593133264861980892224592334497380514834142509863352435034432052857114015466027995708547874400498182518617846132963865482532888227340325969830564736514051533896066699088758059134134505452989511038502988053903941344693199451898858208826930215928343675947048681580349325953354585078948104053850881835837734024143114149817206479077873116967766934795563176413097900764615122196294151513206342258247741640639505142439768750030130317526367166548589843449563802220134512045597283194919472019600507843330621920639761515178823069262223204806115727428436268636621411015522823125465150786074221421038426219534500420833132347133840651214120632108521671874742781960989892941327544837737017774565421666209920339197784868663756268931332021570280350620277303668169745383877507988111482425995729968466904045886715419785120254670853483888618353959099083927817282672892506388574563858353660920895882540447830247814502463722330279560103630488684058251929549451964378535633043865462678096917699420579335052942046227472613640400290056730562772551375957921895887091581378944531429395515695933109229814946325954615212089168835689806410392671281707553005303959719932931206717326766180365620867740097949448393072971705461190339309436364176334700280400477928049452924613916882373323679822653857352898860475995318862464045372570156885920069607705192541209123582737488737819918137882517043794304529462136893187837625240787241327520953054731433058945180684856582592700994648243055306907237037107901947306359840163357589833530415913957912722165143455892359549405641845093949108235261051347184153308341588514767137739829931643985198364404187783527235816453383934943299378369606157227937805670468231452725972951222451365221391659440877929979110767552471949664902791711203557656303349278956430595215612102947153756394849014335237925657322037855948022857000230393766369355614360000872458833775113557216926977588646214854617457762088426623928942386609090187497727275391826073185760321949856337679837394612167170184705657691080257366167021325629095914933004474604667740354718776101635816903332725641716379519593591559853749624992667561488994830718606669039745195148570574774122220369208784834665413678127486737745945829830870262791730787225354601614919531981290838614820148383649977000684342072821226497350083434597754803792301898867466694200465601385872116656002876143917942721262305207459988771893885858687215056475810287716516367770057969263460746111646626140240552342744782944403375218723327163795259317995801091784911929867204628059899255038978817925044370638735826927859808907334200630772768706473122535974276280397203727344238955644052076304908902613692844454811820314057096237685524359857440114354486437129511263965175084078448483699426520773126135836499501675825866336847092470886144572912486370073706990366864945950719690166161960696832444250204288459289457364364863934456781902351064485631497900804273649168380015588650995268929435173892759517284996562148078848117698949520736178766095878611200050660157219358124845096899828335252794150500937062881281025503691388828113883672891192455799244426795726116071001930852820104294789628683108543232525025425343406508589570825554639070772420996429105155241888208792316765764708769043682947641898405666652806623030029622665678243514394173465971114438383376392998278331347953186683224696069861285187860298680400134294555534151054282895862595031941558854591305159253960993523826499445147095931158942912219248932946306222353249081431470420194392193958916932460488042417525675195826504295583457086884979284823382865386540672329486110458683519159987929310406503026445327663605230851451719456049168764216664154224415126519790665834361978804859216054505871622341659815510764155401335496875357924043993135198905938067674898417227097394781075328673713882740552551496256398752821315875431942281137140515046000335670751257975617802326360584101499193953736196210696756071358327164826375449648196173310410723670534937704732885375548895578170697221432385830856894796995294047924847242534506183542720535018588330374897294111133450951737410902790304530347852602780788637638580372870022675303322544095772028718388438793556404507446172529560499436002423427426731919207413730714773818583712286284480563162267339069725136355212485749467110760412628789167535297563672559584844263795378641707049406841764079475497707002845344024515758087726229689330278254161298428518298867955029423036205107447062267471791986785089048168249016942834740273841008690096384435722872453390768064916912776540771483489268574662947673404237777324479122218032458514565413937634421141552434956640067728416755410088928370201306460563231923841952412847593484988466737230595549835196174403269921172904197998529904377692553749628764544933664077414412616957574781532390716976328727727783726662574295500453714857196329693391719853111960904354143653774255152681031118199417451770872114394386575585313351726840885342149918403001189986134586332279133986684851952163602023407265767851246152242161587545931094778341267914204123817382591250472579961682263557943256636271056401093156046168423411451322070845172067938296348962804535254590475368888900634248283057925855070588621410285847881566499101619123268051617462212505823660675482550079245342337082203680165119394226108102688701080317744568067199736077385105647379621905599432896938016833876384333254752578426773479683941408191747942556987242186947686682957814070874239782523831307765916637731261062463380766713783747980074110904310054179474808951145804638550487090192299541962480351745987407361405605303655438006210140823625644131453283583900333137476155923800001448214073567958502935508367977908373625643342548414161394480266198545618727927189363811473622291452728542680970420028107574294997796073043124010548851335864895180056451472308207115075816234757102482159273459639547609855776587498841386888907268058029943878195612662836176357394689210129447565688001447053559831047029517341078703199304210596935739939245072446662538001186355361731705971212118138434813309339108176710892005742871999711314008553373037746475996004880749162991565031965851221761939324888226693475719125682896732744689050896708553367993721709568900170418661421635782455119375769630022752263438120901231351622920053559562860896480248835680440474948289968672783579463583819400024211459390973718413505883925387443256479359011335934552241883875278829427828768492744492287895536896086373778864493499512941682436685851136833505026758076063137835442528361962352385265436745751401911239790012711649550992278519736797183293214598386608178065938694523710857384604714070151600116915963786884624928874203259886511929809863765440952815879478908148407377977205476633041314143942160017263316266811191145899380025212613861038135991753201311865145548382029394766852337720587287828599111868200475328936110601698420474506951684605006704984365385676749028459273834572830854389635391346413434284282107370738104748015314107438501558139325070832252193417826398804456948138093493759346469501129103840803022761669571849805541928242589913076067199680700483412874066354786142337426351122968668497514745916105303317956984530730257866986850815823610023654984866408743907353635745247561094037271030383850647596808715310625261854575840094649101162711536242600441967827725789487700573060230935961340627010523164207330679940013896370765695771048397841960216016583730391391401225434073625519774576821174873976178284865054016448572239898124940891181186557795927731910641569960516383960550032580417481995703297919906890588413829795435124960736398551864416317061286787567264832122179640905102532706129665591341125741619172300792536392621543623767009294513510851048395102902789885828528737384228167093647834747397598505218501061760498934340875408298636333379187402039498966701716793089500854353303132632834494970984400940285129483508706967137455108356189498330548480858015661298327891367175617564914018443462810289119202582250970084688459914521389768137501136691214565898830511475884974909213660415187692097309185855747941768355111711968156163291951269737413773179664290323632983798955892061815770817190077417701446194323913726909153710898166541346068720474791802056954940590608791388563958019339049842030748454666676069170527634043959106329968164938169866426063194110806640461185817488248980356472218591548066988711963854207104254624410397558603258874043826002027581339899180115885455747641666513316398467943128833779022414798375041611555578387275752244427164051216352266023655086273776248124945934896101224462516497207262189915732551150529487312384485761646663435429526296831379352434791858503721176249969709460604027532518189225005376051378312666571028834131432489760067219158095966935815245544334594566745517328145834537275666083999105863105167420334977655506169134928511910398514329968365819200613414455284041512485104937846818629416855489643295976622225536998118537991414763086098050311567651693725340188160342098239873398839659886377560916634792124085076267642075705520829172273659603960305680119601316725717917985268215180096842698965298231561717659425960274897471771165985605772771785765128361263793582895289487732329529215900856911514210612474823099609372191420192545702509569938033807070941116489114046690539137364752480802551473082149478385375028549900929078012249288398608774231805516098052780399997195475941576882721237351482746704642389269604215802606085200453302367729291673452624456401772632986692733357395929509095815132411092148580844738379722731258938487948970846113582585633686549882606134278254604842350093286709158972706088481253212444832959526588350725607097386801348811736203164800086878515845400420915317778273947390979582401943346316294291057068017117719886487208928233606381062233082152060955521424933674334212578716945429919851956613820569261626597849925251921931325411197472685055710826855275799875561470052170113055289001996245942295981374340114200467172717880433562169606521584708438679088253357490023966867245185365988510921307998393861200890244865549463522893214855637801930740859659954072279339684870776220159922065999823514936515268126618736345202405610552846996080062137527849126133278875584734191497491464781588745558800530826235438809181508146948133980180904229420422639496843912847031542698079023077824380991003808110287520364387101707147759711470526763023281873674069058869244632657104820743342418894714033609146221296850871137716064507337011376706202698282978887808395790713959321660532912804627957046864534451666877272335176800513825268094761109519538520902387581272825318848478828564853462321635141512982889825123695184289932437105444579696099641487864944472308769831324720611231593808553123522910651972189012911246263473665876800588652438626163705029017737347637848294455107052788850765916651739520744246666239938439996028738525258844447584250444366818909366865624181455094050303370467012427940384410944490397812581908888478164126343941278497371098831329455196787398397950350587157612275910878938258256177437464759941685716514824579523325416302026303036390328912239813785582265602261112464256162165913858831908495974579055951254492763052448858644590016468411449449271826029367117880587713286431636363080914158667099560181428226970876033355334070073501927102686501761795468858450133711900321687730237208031373182481997943447247645112143705497137383177129407829655831183735156430584192387417515296639505343913619412004928643669368662419533257661469458577857235294846250948244494132899420784566737589297610116229489325485479257397285071214002340203568852035543426387129558053473397820529768606911552638382728186251612736723153454296172582206827069153943846165434036802428785707338534737285050442303454359750475335460808928141493202826241978037191621047641568108885708477802558707949899246807979559085888226518663569187594772181993845129764887329581959315438914599690866808634599232407004427736914134750420956066708005967301682864832640607909789935320018707133743646365913250255672178276402331371045071806842163391117551272137932604211526701609195793220792963210643620057496115882633735364646240623717204265132182682990692114150112438862984058518908886891461149692629871322444957020534716186711847468539957715964614395029678106475770473811031819314572235169044325351107189893042668369430748777028651944602963168551848380677508286174558765451924410292782552919926238808593482561983419794889125577795037390039955759652793149904582394863082132663005901145070753694535194482179719708127857779973606985721805988035802052274523546558988235075642528613062456708401403040976686037709615169129510155699348713186202750684258066924734768711013471185146146453463879459537672907589760690172889064132264409974017886678486124430877257039421490559561659453068463148937022619903690640816974556795231955741634393854101263941416428084855927349784752283269693895625894360684452155471374001231212900614743885159453898497656232121937777105607494218009069801695020521088203954165128163592956958679230271907740568412529195763703491326174102544469185377723646157930320105221539657177268500920218992156746982641492609049520590322701303761789458166814846816597620275618189895031594717611209917705767286847999387225734300216175785706131938587190736459895317964290036131803813899524920786594859692107912446009449038033213614520673120523245946728867584923137833323590693691315607796913878723071100787752902223786484597824077516604862257363341645446071242466645210031697294286007112290090817394971263182085426214792938209662797426221150983801396941339941633919892151476442686995661285793174228492580160800423106134624593111311892309488491206257012447471417929187734459554950501145782129570097670531638680108790719375841084109165671048251984772540980166117796140096776092291680508213160805378206371607459813500890008773312074190274714459889540076159713533044301527895367814273475937865841769721460143106860619772341614348357877997726862166800576177122916633584033173759417840867120009550515885250174196910910927725925986238603519399069137580100494243954517268353823468420538904326127219696870774839541044934630162683063134671828597538426165453093609290609406576784514680918414331737130041278988584100567922028277314981177133497188793191691288480306526403022776227775412200803134657005021826240939023241171313770314169994274249229308062976500453962775309771373954398414320206064575363444608172234067456685835318211832469018037662039769186077773015273720210428582285022835959076245699454758263725154901910323644145719634442207119052776968357663089362057135999764494029029129054094138396320982215481920906547202210914306808174806787021475972642296529457024553295381260359483200214847807221993302801314876268219477684759645031654746618011105708451765707539004256048540037233293464503190760277887045329718563314278867140253262526630110636891890126616528491989954970991077122327812236917704761494469550412858997189162010325482301822076130197523556297924949926121765639502377826915552797701560210146694877838685222885836534237707075447542043170710055540429865592418981578011597407551527065010901615846647902058808162285189608734354766725680234165808306229851071105027698334836735501574295962711907554117887558147869967153499601413878198050937346121201103201257269920170847330596958341503337633429647227774976996134199009046682361371438370307656010500011931476529961458758367543177780758984445271433608232622993516493895480850667892398660503953366417051666722510896381466108116075618305173120901605856418196316613746323635374568145158090546828201689431597854350700452502866923816926785879250300495455882475174576294158002345854084334824901371496401874558313029348303322548405310459692399915527828766184061546876151726084999221746603469863182463086392102270275149767406703439243774078318403219916783500636221113698178012365829954676205595420381895338571364777809182361030595234583152860727828184169951531592866587136208197336836696830383119995000737005599833577873666811039778070201627718542352335903326776169028949821225376938395334362094284236588133398552777192869234916354455743501040503936803805166221390708406955759311929609758904919909638456388455733382893787095439792082434601953727074978778404980183093993418129978532210894700450148214729353775825886226236541490829619073893347689991909202783204641594234222294226274026221741436826037151073853118593281236081949578121444183140518547955018843508738261733605778801470548567494588284067876944343510502390506501395361111504656312822013184642927778243214057564275061032228968719514967050207418968098105176332806491983538677910370147275457622450131818784123136745020939085798914435164603839224409894028949905032271249519231236763394293628420619666984163289428846662225520748696144129229715054653403619473502332759573115810004351090861119406059599023001352187956204716147635933777766701724794120079811285212063744941408936662430283031215034218425536257589446372903192720903473748878165142223246652528992965723175778884345490054085968830695696376022321164969080141752523368411914321244919071792913015921167290663843349443478704108528780342829561632453084758887758946349693962185119769471479970073397674683014542297137455607789986586776802614980970491267470409072600608691183468420167256601762848848517201178082682750116666543910671885966961284485625725224540390031310478078068712575139563296224151365450731945814106104624825557883563904397760707709973457910435846449219920219905401046234286855252177073585238089775923425807359967889146719847175357131618554010091303064466009860789026088376552127958156567520202211094230295806443597678280170171490441963517362630755393828399486080177640789264682449039615845585954997261054937722577215273423186065132088289292512547183266041874570032178507137176754131847089571459764247282030228015185502198340361331133141198386374107385809073207523016822509568668918730987722853021347532028704935315777342731390924856319624927325329058355591637836218844805033617444928493564751244049633453322322013351155813133647814345531135228805232327622655905649481415778342960443909943326978550305329620454512383269829239889336821625452318388980788786838495816245425032330009830607150018894728381802327228406328320476075008517603755815483987173284293367200527603736935442619120707427864790606043792004861754434683860583544533381314556056075975303610765587035832418608113021312527391238132503808601340880171810563169684566676552480854011294915521663042631790580804872053915815825204566692129624453490703764206393622396602072670606008984012122655563324175115071177892755490156298180103705609971798203255042233079306213882005215142591961252339317349375209716966755997876380335654037066572105646393186144485108603761573750474089211440117063012649488117740776063739394866012400684257988149315211057101607999990522954822705077002099454301216481464299544791440770772952244326732204175154229008120674265792747589014238542794204725104416285716033598185164807383286396237685236496768501488000509749672626445066795208350792468859171899117827991720859667515754729879803393272514275238452313769060208857302474311473423124816582512248117549148762972802788560129490859246016877344196217521631524213163498126492622925719593253727686314579075617834241471729302908654704458616299885740163794383766507834045377161262637070574934992570190435711094737051668344769356417368680295003043646638010073669619371858831355991152451446498840402378036191565707505929464780823601043510967253001849473767079207453041710249918157341702564430110982660666431039798319341296552613639336116051979052280181164581797814084293114875899682527787857257851368155255731928326590122223321557230643332051057147692423525963611830339041397002434315314399854875509613463282308021122728540153305530286487350438923969471509922605889099252406761705835509557727322638008623281668508908806465288561788989014915504923534558946889173876720195823606477440849768306047253299427652930440916859178198267721326217300534294746966125663919738145349113498581702070050228882553999045454477177157913272874245919838446683008204985079502791144075091280446987926841883292224420451012006718261212119903575072982460937404577643124011025741439714350384206496713926605537553546706376162491452542211064933525904132806303231481582615065939316912367697723148848948711363948908727745833709168257559058936828948278390770967465156199804051060650886935366783016215670646548789545233090900652397077189133821425618381095832277743128600608073674442481213327379425333103565879333903158150126448529105870125464490561456517279078889653633583316798538869928027129075000075037836366840853369575272039063279614184018383758441182725604253204830664480600239776428586759004779009979434087643922614110880638373211153892575778876473628172420434676864463584981714027938270174380927532903937020851222561004297322296697535647041240125264629255334334145681580073266210887049226535378654094763009123100463649318133693900232300699755070517316952774111222561540488184274520374548616436995463817460034233913520623812678296955175319804182552818540696608966787011612295270818015185353784723706801269121271596995953169602699563423246601373339478140499836625777705964479964535515185313223998338477107846303259486265883655720714785008912323423504074705084821114379138061823335673605666357607728505833683967959210578313612617455027536144153127451615566507668734033192179018976144273035056855453503982228971821809415116424640781053754248797683164473902917981287586226173425628582869734965275826221564248221513595750607058077641211252043156411163859300653871145091415285833471053959853332211332608924872992705081172664712441514754534551971385481912081309834499459499562599474601469502138112247708969854040777558214203234969765907173822383932611213818646760100211761848682549134518774481047830399255259036430890748071279814939861478854899733743620871047674822976733313613349551076225836958576322937189241194330386506474243694531536445250203415433259312122424703485638728335447322708704511440339792203565538744406118375685203126434399724475473827885222251970574397273577280290030617053221390369722739308660647264217231771725510418258529738695554899424654207703863227516478271224898459137101130339753699563942874670017183833767343673632867514087415810298888292454916670091041208544883930981204623583744902577908871961452626053269090577648736398883372494005273451480009446790273019086304311445893810917834404457157816462757572847290239149678041160482344245540464122801940561861892002200504847554119845866053926266621593493242754924031630286300177344028998291801840419517243762275494750445085090432888903878632128379847241551918303594627981416931305054814230338409441208336221731444492830063480632865869419221930720368120549127326512444583747372168533421632017526917397508821444147311553620056059764585300128079406816439651751730555850797597269166162384404457744825286332919334135536587692198568536362376354152479624306343507476608942308270765262534004689307838796900152892772769070688661736295847446870166641309442055730374664907013716137577874206198965246987370931392945305510621641703077321253573538471676757959786534643927054377754664764294218692308294474854791271084608835057503919542956524650874942130965746051772478203904344989331927495060634662033189492398275247676846734542171850957340790711311350506325427500466539081482363390341830157299673842256671268710454282740606232648673221958697196222660025396186638165157352888083559891021469698955296780616981243645880169157602284340328672452934183429315149898562766080646624655834188363141444931357232070627599022381513147417403132324269878516207663888684351069543932791690531424342825526243683533326309366453663518740251705381043680202463351547881206079978743955162463754743639142640805909854097039642116113621436099626567031136438070621736763174046613306258469009987554348424584833492437727326379952365367722973478974596543202274659997645081341944429798582025044318223505600219874646246780380733576771936697268075562779222089794890525360423716192045128144647971656399891176474193916930545194815475824912795418796663317933428237678537131108869986230258772256120744117260152506359802741448644590213730556133805432906054865302244842716731438786162072745635133835678476558651236604095325857949274433076077894560359891060938091875293606145200305597973069355065973423097573981776512696222512044595663122577499501118151438334686194473621402887076690386389562271531695811585894745510984676705369366255548290382945720659151817023066477923759859110833331167295005198828610197006215070457277743953968067982704837638651824525370099373752144729805995830634048932161358975646043622314588186027642743007927602092513277241187052114456657099327731414871310740425229368628007401112519024313337752487373216515917190514183056701522776877084615931672265983153712029168550734187224077607232782314515048436944179629572312129068122028718831196591422561053256509835038939092949263722090585139682145722582072865386906200282472670725425416840395454732249047885866813954821423839671073377162440195960860804030550067002880037961686849364832515693957729499622894516093100658169785034149219269123457607632969280097554276102980553710466700719895473169541779687401753846227559120918951404067982370618433800669803248362374581524412310794718587453699128868958498769067502048550574098383626860996231403823985534258532836505284788624533098929045785297156000739604625374474099053991016779682793572098118517547113738281591141830822772785647238444660170323199900751167927647549690004126813867081743265737909577936394522429436436474712525999118724393511853527527198687085071585410808493097184359142543435445952883577245228032577767329093808092702851603810311189917725666989200233748120771992000744310977126605211560591146942679379861813521597653944902959175513415506175605883494369694469818335132170474446111296148545318417384799252724167630066669525248562539102731864720068689614294606408087344567408907980473749911834579093147476275457530560097576295056587895977420425199736094318681938756884895383037893294099334504682081422615129593507024740439193490188511758495880114188644622646057062172618511040644923700755809177608430325084051341634340250127111280549860507842751097443084111681200552577057485792569562804816592805715699056237817121993632304465114296612689544480960420547761229986989225752344180722699571362294978161334666999961729915125039140639693107017890439903082950403178583702277744558117625115894919046155161917265332451114540338141461053860609195802318738659530604002268343040484450043561822009708648711431882156573432647436329730980101461796141809456803023817777685544859613632115848345057687597586303103332305330028234309155919485111321957484309685313885495362001281678670293944966521750085027835710912779016346935878540223077568308581765946705872437826824997836371789289811789072924789431378425498580637547040049476040849774744995619769695131757726980480668211529057584228872165317295848078612152801142129826910953496551141548087504454873440630927921746203549944141182806680959309480980134377525220610136535104906599660159842694316898766530188866932836730508778898025387317978048437715759677394382910228458008007895644513852307382545758286689494754216293171060402795041727085268161767358055082741534665180638392636053080685949234770813392297281241142058392085998043072560734940228999295288216813125307563072246262608973876372279104541430375367028172900702359957531595557755723039971927989332780737308247244998312363387594580474770905473972502120595987169592988091148427548783386572965586246154464105133492092707191206744978382075518682254216255032035657582892573336780349808293557894425638428666967269875570520738626780784871575905170826771795144713720235370201116030537068307674270266480003141669486222453557398619059584812483088856280390349428955488522166689557293947656060431760832897575601163721492860855291781986074596085615432992646248577824987211811066532096450682744936663172356173368920436361644920450616571644758295953991332956755888411132483202893994216952489125091991330602750164314801085853731690047099765287069197969747454944822263320449356643524723615861827421577779140962403667729018462154936533363780942681385523726449301390950940467987051947484583990517544851773082772683704588060059521829659239412590131229766382879696416898599032131714423078746544629070070347659954344053574596288035692544772467395276321196151068449492036773045355699821737960622074335257284179687281604777172599159808833709049941711579903312760448946928502794752383457586263066565096143289536403512165666555533910820799696356398716330044661193859342011538632447560443686141409057531005463556461257907891309441187760955563918658306891906567916959927651966322285702353490084702610595259195183858500700320776724148872640167504396754601908587305380088696782072322902954790291454765762426200604624044677362402961560608017831958852157046106924961918953792269164336519193057052672154316990103509704311093827876316322758061248316443612393547101333105752210700958950588015783404089945857713051221662342825115940544580217984718832533772864168584420200255242600989058106757108926683035192714671796342247485102719184360399899723757298505417694152725398452263804812258761750376333713559636460194345023539947085432799158782588988632034479715546236001652050218301987474798465354955438695638416351197880459860560465964869923274870602223099177198548384983480688755973713683487701867648787090023301478249983567347000428798340319973708178811552913462401959829800259702326047248734205115135998863786451943529786717121879964431473441997341027128425884890372137979317790935169744583249176885448780044205370231653494861511610462208130242986277579477637930803378815641371102800991538811178979869775023125122769235476740430098722312075780347196323014203738977372755845750340160743705561849567738967237879773842929246010827590904966335317517544476899817215474450618433382896908154129298963366545443590899366447492195423569019420996869791814072667804593011679525933229494751498270395431881894556637005436439805242118429962356857768566263475027728383028127696392326812032029829924332951409658824938309007095035792639858765311160094840647200081604797746420589421372297064531920395260009346671807938131725378529675742879991540274450273115743128349348074181122162622637967682138026279409044815984445538263992951121382040588791849762199771111958291377154552722461021088211150232743519633055531076421707932541953321618408189653481706360537976514059367660870601194843569585534908958389591330294430134184428829829190133201267455775133147072610227312400249480762065996190722861284045785811390991734319751181817950748426242943709772596108060709871310772980591858719147209678716580485719715670536023708521264837501464159155340263927306962407033045194022521592796319025531431044798374696046778178627609021926729524019788933835637561640298359232240896514068052761641158444568545046096915100750922399771674667656446674233866553425136595341272256575507240035049307265007489891608075127262724883047052550281129974149091649170668977132142517730554582711921461053443436398344953910692298717885548466132955456778959363717541988134962674806183780786476221461663069187591271800513861949809586363227113837991910623397895325951798768190992876955633375977010658794746289329549314566150282084121451808916351490844390209489775308792268034553372792240797668010075144921531118983507111911902555083190637393404159881176569022724168520480513715237410962387671455435254809064102581368004351496403791258763928821064500710326288255671967606230555494245654717347901530558598323260054417322719779291483047917866354926040567497646525143334834493397032793119254292137679092509321654987780606118002830036978785051159132234844099302620039975018682380893848316632169116042240041719873370342442376610952007456992769972379665675187449090517549006388071445256747742148898598970553138460714045985052937054842989215086685394522151476787843382177234687000032150950321625527743319882009912922516359780970308483307256068288044937394350544538214592311436284312337870804700969571824759598632791272687816133685419736970371462568514538330735818228541006302135225864308257060247409891556593208768408299633358211129823951265474957481723499582325182718042167757671853301304240191701312050753171152795467874103414506045575522644799897889182011903954092714384678199670609015351815005206643881848595941209831982722836879541696214584428995759920752981270183556975652220530780392538368838528156720904369754058132570076054749429792810349634748522578230631582749456197922614282571969388736180271484669202822928148850636882504027037470086147939292707017796951400145505254164509809776812828315223390865001236054590436612731173390442831543504244301201478643800605960368233367352460480834465857923601946361442290165758278905171984289344050637465296950156117166102556783008213321449552928915276299450142923829153739111238943335558850924910592837129895476384733979644407183876049368026100637166026010180302506347903014677494507828543261684924690896364605825438993945346721000084836917266069225403821180779730577009489870105532155706565803784415812032641502376626651460316722315140415690575145893214408532973565971138234855074261126269086517491077134610525371248756339180869482799641485349010313725699177824327953325694535286046839053281780299012580564794900728009623775280406243558768568859008429584967054765620562640717191044967440117794531451380748093956038954368931574686266897109378261201768888936230208104225668491208711823835393112992987930184607194509136938186170998388902337508602625871440310422844698655048007368388202359225940302614345005035714811208944354455237141927361156233665736647338400392974275780820217347426899664294342152214732365245465751715136834161798199205141848997534530898325754558671013228762469783211958514201566058070814724400262680535751085771351399508029195261179854639383882251930328481678102382181116285533554895533044396232984858936303059361136211730995262085587532616430968094473134784518376395100020364863717366517723076954573453985504117285164605525428014781584981664048771433864634396842390844928533432950322917036233420399061342650948713572536635431213237394546843359854781277340991200001032759287851961241613222284316349073812127374618118625042817807162657422686073667017640824503194133680771631831065203312767831211699849496650900179534627382133844456247555138255166860409939627406245397110036607144602493341148513156806932665342765896934095973084484448203805911193879757420508318668789305559528401668622216411011046515265960329600356498502965628261852633804456771010454084903613357580371932943598337189925174708074587863300031591210626979716943183376570718427607592364462097711038308947171235876072111553542891731192189227358281870035031239979456761215865984110908277747620926065873759726530948448094456777600169064601978434215799097874294877297099107446889958702547417293861053951735219248332913428485314685487774031003250646289662350157226954661473417066892372790230993479832318652441619871674270336109036029414782526222128929855776264996015478150550980417717410901685004125718938756831566752437569250968200316893973291736081727270611638523668313750030406049416272139421929476836974343588891550863105777148277267390996499952089065671764526329260725046895467293573599366298712219683584557895011164307920546340981743120273314659123049957835445269474855411154749357799646212732023937456316658859834912360434291919974567217330624197099664470581241191347475481776880047683167658116643359931776050703976149618760698633196393116132045494852337292259676227509283662864881327631438327382444264862841203485633517273371571304611861891728553879897243675902607366984452251506272421678455711093561839592177373126367525289858320641594871589185463261359877270445005364148623819193658119996075445952860008398167195931840626313910830844373730572367427043889676742821452732824794158846713790869537997535811985976058666380211154483066731894403803517712030373031455971166421199469827605251162231669170747438174593361170540617694793447759347824461282764778046896761641229014761626362288976903054339845510545891674449178530896297227547102483537727354164916226920619545923807541758357711495777229976127303418139112656203990674515451987730641624879735431446367539309472001435182257478486361069492586916484132694411494765021287828710244988296893327271088093673634822661878778419848935474299745520320042063746224100059629908961336197026360132458289792285605083923983748982395792787020332488990313961201614060977969743821405819290549272313410554742728611543001008861542850555669956678103697567602135401847405959384245903710841229493781363703609329892119528325920591116665096453079004698462101311672453868566189131765723792071494880362433386816359669635570960627497334319118673233097821035694949927486687630758847257552547528099986886836204455344135345108475091305796554308825376683839415843886716153271900450828104784540622116609006756990079482986607158015755324402385226762760882290201251362375606316942826085728456255080850244615774640215044149665315391452237629669376749302959997559571189616944455500907976377894381706553603926615160849904891631513044828997589232575264410713465028132893665259320073558305608375633873076612567324526007053843994131982042538151622838754835068273959476274989630950330358497130727112842198893237059761437881470213458159227061742483681527760713956693741547148646984055930423906275978658738049125138041525483489391656298644208945412931046524894307245638215671032923572528545168931940895199653378810560095194682598198304742557316102536360419395688708667131715429673781368932214723389350208287459678639587954571564151181718292782580350961170116539357362715350221999302915416701592371629097729984853771575719099572800564257651446807690233687202030565388095491279249181378854482202824040567044067003617671330042940887928542285611488002121405581618953679488308989094545031109455953419727909005209184655101990728926947564507199715113705602893506259599180720677645386127219979804904795236237138342872984949870158760112798210245618919090007895068674695069789437039907152279911200817937746337806363098764190646941085398426711041553831121195484395612688260912356325774379021731238378638971692840539703806094145570599033569385571981225885921201225659633158645942861085226203948087823800909838860413691475210903896385224466952480320865522993763767655275929117367952638017348173347207542388904258451134339953680741806327482884069635357812200818614451645531071184942403023263938767477917537068701011747661326962539833048120135951594137579985598202142069688301902240304879652322933937249546659031998160876402827056306582118177009568977678249883339237940334129724216434388809516808834905998382912892245147786516236316383405106840339508365640454177298290137018533660521214721310856026289599021344308591842869740028197580539952133501243936639743458867754193740916780479793271621737369164976438034930137825327213104304935419583130608034092020533735951326770372388142446348255561978474775022326149466784793851654262752169753885128377018788069338792130405305141959591254471823584791221614760189184527873271031651266412656549827021026860183309160519812870658987250721072386362449664057377191055259387288027967644202795469670730523921277230330553824969433341168948731123062645588070422967767769506801050776055020422081036507036519295251809638043060988360331908980000175206823837188875496988052195360871931126145851764127440409937657668070234314461464693213132769164544715876604043983833353093944487785587872689935362525699536430124761454938834127638769059558441738991083791328500819102178164915972209017252183381120737015184145433789206127974770849739408356298364197491908983903073176992212263662365927599661027196101943350190686954462811792222417129506887701492164577956692361805340498731608116970765995056637403310143487635068850121888744595145181230242450427730121771693582897218767375674600041271794996331434270416761973420037621450011934513801628996333057291292272909331761535883261461144978991315814916243107641357818610358302810007202833803307463027975169119206138145830957032292814411264084034890773691638023371962704673339929528918367644771232710278803357240762438460978457930904743505182138388663150408402460033381580126743764403748623923534480184158207614820679740030213172618977962654940659577817089599961262388419940448732797365823539045414792768695024316399922054769350499779638798343861012256279833909133645049074900748193282391174288489038967957756819025936426635123763118939221413362826076308222399911363155880954099085496439621515283943861862860851696020613102704876157486242343583547264439250578058880786410718164871544454609909285021096511594526866992445958431282764235945942131696684976129647167888964551304511838168086937332428494388452999718127445345297640967653129308289071605693567877210405535034220430798167255433091422794106313843669812000495555208978460537275789984630077771912528615468601142545378697098466386112871201824482471642658693519083263095024632935472115000256810370559050704660567125019618098508153654196094471987861460912061443569697435760511821470131158197992323647258412320287705251814270869162205353317291985692588084741440194116962689730547045915394135807488794501866728047687656690666750421225089227622962538369656377065503960694521103401546291694020975769626656363758507401467961521643914653341198856096256631539221641591526134487977323335123433014141758464601523326304365356842639291669451800344639703894164952199062509138100100830928865989832195863792693349893162215780724251932738380232339648391832317134285882529140443027132514096648683377321792242489890178830108858146267218367122143529726181903476409991928798759480055395892328706995685865207664283905485615740747828092696109146321125174950945640572043558116781101901158500193947053989712225318804926153716953907457820951434266665812963357607542103189383842757092753290060361654399791588880469864702743023578769801075211565194296310896386173322159420802406287796774513562012753410778380028015853075537537505440708938212440385435738862786919490322717490473850404021912559687939192143783981809960989796874706150391702961073576092279019621919241964727080647476936608991237575723036843546805602906063982992790653196895178519094604970604408361988065451820190338183962677766912129060034514375348392683455909499683099749377615298443952547231282403162910603184897835345359196519277070754756693519608083610852034727183088819291795327475013485666490520036639606475858973497201946801872330228968293607771523065696570169600269626608576795294571808542560804211583818070655666622966039703287364455208647994530227761466725514480677480665904587145165599707960967048535858766513187302948119351336801984834058521602266129221096869774344842508226641570184777617757944586051456544592841094438192914157890593264890468156928146796304903849037303169979123327169010970055228614591251741089656459646219491701673563006199812729633925727239909400315053290630553735304136128933426826938782122719692016966985620753353857576707439955736806347854344056841898716293603715526172841916608082970879268720979654881576035764643482523862067532677315272823839489023186104952001789924535751044431871027824343635743460757343511561137405117984661278566417504781091052792168228229814819171634328760376377649119539042674916305038872477337096679430092190054803457062542190852714227125265232159836522450886242202823754979185339630515721806502224402398932339812345901099118411615871588940852951729605088580727381019782607287528099501376976788468111727011073210309993198370659739334922506983647175522530010637679098477762232728517486891316785824394218431699019040864060391713986107406795735232615202054266952009026761232460291607550347699391237000222130257828444180127434206182530679905644546580876184645869759347529729575006273995852526207377818291363642741394997567467646443669692807785313472367848722513316210153541801043742101780278066606383636012289463262597401109300579957441961534473663081310093127874765951840547230893437728614777998750907599556899100361081082949255752004859577928395316462690359430300291848174863202300076642122574807123531619223122682738495093993632670024044351381396090756337397204122196073907787349889002367643849823541541647731259286481399341512500685040234282623301628161884948524618884860421843062986293620437419770376535771446993002376116540537985109307002175170413433909036463809010004647424170401862271323077871629095778025616882968162994460717664529270631843844522085947111176484276065012066257060573951906054469513007572243906028649961946825224409707376285229708261144782718020849546248817534590186316934339139080255810193664125224369550293609834626263848329987651635779586340217887043894707565368008290867224655485971754352227604283423034319997739171107859278975526296589232778510556522413002435488300498342929952026222812281315730987773438719589294222551073785202439351692794008509145589327936359805796366670885806590125567805183351423537136670890243261559229876234651107530490274088102233611957564548111046253594495709056764444437214614626921902879755839720809705207101968775732571906735040648881889993068273938024492461447330113900302199531216359332672026014224841697695895532396699768168639188008342797608249692650368949335607294292492234646762623306395610466878274886180454441868965070110608190080261594005628629397185229603978626325697751703675866097381875791076372649596081917543464887215070788371411846890769566964153806461131217291989956849082272368669342852366297451518980337152513380837224788569312525191228203379624219293741679077848304363377460070988382117678162426488498141814301382551681280566585894307664691373239463054984366499380049112250963923630118976245739020242494538522307471507849980385773964365288783497997866325196137037513391593618821467279301421700651793427957908312652393855030284346752332784013559284933326212706853097407706828079829134642199365253166039839237616307249159824264867938418229747496607444236310203000271816970581977478428142052222598871717965144822435106496209130262327700909986759320894848917530896528401471218532894232511498820422215227492289142667599013728145671082631485793806537451223367861564277939293408948272006802784656700936665835917987482505280420059124962554760009297913396602240032778172805522559562429409463084409918750691872519049816790770207500656269032118474388994837226809144935054570341478134518920510398932710643501990582786141311487952130018947535444271192712776508569413856781523917769897695994432452279722315637784693261067815648815542201010162321762892733973985609559877151741887907722143576783240013635436740568595374366859891201216073891885397135583466137173976154636098027156393108950900833484283666317464395196076485522486463642766259132003230079309942254220536142161113125742518647857537648221152414928160709751545955124136424674652171724880508391287583233170274096989424843505791859391675988076994695588720105275643594394914079057217964251593740992353064116269548896106000764332421744689907514488812490358611376149572597895422299857079382271344842516323633545976193603638545053470611923424384754599674891553306672249462606153245476928151217338910563133138376987505909325019273830351864004842470239549350359049953203468816299614169143498663816571712708835954134900219869285978548098934368344506695248111911669573620681799619171892643498717161120956096665921504287903172906812449016152789502585041424961782280087357736469288475928945717753595865017660960789794582788807293752267875352700389881673069543414210750427138225787644956173825257888963408875139918918565299753465844018842695103746964031514406950514267034679603013689109476750347437812415295887763975672414896046671344436719988248990188922106837071163431615224126574560982026157520312534811824368794999289418221702482316387595430564188515496910378723700877375553640510623182573232598692223006191113416982362459228467649520079467092403429655939230391305163313140961506296529047740247743811523597066230098710376414449721867637723910249865851168177876163238386689053788021693846039448836946885970437814160292405276149161009893784676850353521145891179413317936947887026037711924326474172952631090167509860073811831747609265968289949056360502367243789157013789831122674836913767528386798160747625480388057358720331096376979447869930927457192530068553251687262484475645887445463441924664739102459223994799201594527301813046369911011076417278381658394600770052990012907100453346238699029167456465677583100724115529616419117264494606322261685001235174173493938229014302097150387427444992153668266403276370585603935772817174109656056635855576676620693571907853513372534696093473963943250377106191342616812700079534468291499350143461253219261170176614748303301390467689677670877586286070535102042166529356726902338014256070970134254892173934573737340019592849655620544273612614945961434763057800779693362014487246750676680611811277314673693812345240583549936341894904357191191660183015571590628755145132886295715869374468396855437545525324622038724703921063658268522730865692547774082096453994926174368666808413271981340793360420051520351221815972825768505855026844283261236938453563537373088764226616611349903007482486880756510745689891251940826945932354918332029093539839228179629228433541454945644049168748922804145483857613184657467013465546723706655781133730994769997597403243989839547521380989246175717707349030913036688661179353440041422720014928306795276854803766049607348892166839238467072528527485283691280017564655586472153964800453443179462452114893503210020242231572253184733115393397140692007455743106681076285986935600184534795948926890200144952544362377466279004015087654314771541419698138719132560950805683625545892617148654335952387966036413182346550587004446497588889816767472828307730969211259077862697416595938262899859828154760390344631073409294552563610337181841440842523376565747646533060884378323625723523383875539435640965412034410311430690334145041339790959036184059183434463855757066163970570211226459480018519281026600554523297748840096962572303545252019825813625983621862554038677780124583512595642928827408022369936339609968146467571658826701629989402353973121734018038715196249780669079487932956727032963712171281709936109277712510624084018931997771572350104558198721767915181811980851184755418492618690179837997665539533569659348764185489234391923807298318071071353364390771903204352437645918393102411213507428422842421541964353916529346096546318158677611531051473767190136823626287832829120006393240405877983012935876881330556556961915401370541216517879892268737527294669199486616427695936187422944156577775095655082837899477762591244215136707130504365068060562718287763434122945269537944873548672666022071881061972728075664096137669456482542699809544480401952888846886867706218214251437780398957957104930660882216849095148857359487592453302106567623725248479017310132930829563551850558151407370088882261691745592296276318509989940203575016112889566159324192618371195312185258731624459852638574909590487336578767920569966316350953421584545804885871140981474364666177160655895996162485480312646372421982710202233392881807344462730953158190823801170862788985186780260241462156299822263115418855791783748965910870790192407403192883527740445422400694284045998157703627246730803174569040464747758680526598742819061453019712747259144217710086669968363815003444020519374484031494463167036294648462327809845611376724908802167986978926753372931334395366495236695530413206068893085849800809515449251186326197748292381049654171804032809116561472732147827293770355183496449365804973966908170226228409668209355611055033215928295484962530461409022976724179224672140314569013148472207412653254462050907526925720694698468937432283745934748759254463544387683338127468040710678598277346257454404943022527654096571210222918190101068726439041575001776729003004329346158807161903553075434272450433890489038894655145577530605945763450371107855875853568280980894854156210043165625985890911626290057350850309164377975745756004474664293974321600249657991883614134421482915087871971330825564465557422817370854431978794053165759113564863165171636036493285157033472114679872944920807056489927932397938390970739585543270837191233370028720543509136416696371648848541050394413295047622483840889789696020517951270675167704727280750199434788612506347257584490229521762343614389421029051228586992677892793469005921793628609823872640639662665603432944751747178139736333227348244010854766587090639833564263633590525749410183481079205459020767663111351265636565672939412455673421102530503485785537731934787279003063278850626183138052802250946638288811507118993063033732377580773492415446028345548453537928959090907074754761829117753394630560532804688982522557664858638899489249975627496803087751352198877629286682578494012366337524176457912052108742879200914203737385166383985885019252541499455181853017906632619306245378138624156299056823074232385098716504476406774748718165573647829865102068639917743912691453154033278530426615575455517238570445089899759141161978993610877816164334882652996080302743448602404213206515067586730936763775311971884167878035999702757147345743881472174715839204429285937255138093449191491489871442967830066925134592229256816250954953614730659530967325790742032156605601678451916913385226014523889458623661567052767602579814228211235965637221853022072130438728585368078655856471310410458559947918188377569201577224659618803256675453182836395036075358157681708223520960578678272136776145055776882902650300125847825795924928187572171135950307162715810084264781000487033923759031399707852074206326868923654871956387266585586864355253811198985528403563751590711651078032800817573308649857616129479227437324937333092553181739198296106837788162954357922873226022586789231442148374763444007681448788371282550691782254421953457652909849570520286103660911491093443460812354377205771181110367662634341469361710269169525308994240232425840584655274566164473762837082516502744588852951501272043925185429775948971353883660105684646627946979085426059027125744717361199282307546818813825166311449336729368331495513412152671695040908396670038944178338266095829993137923839597017959461946508944797680685148856031692429220244112975064069843233264898753691992703386148000068001215647832518231520906376798609261046748543359258363376530784289973590181730354147930057103835714726541339837891220398256583626851486832792153478623241918812429824075326418952785926850796981284043942448936143608414106525572056102525138994663822052128719128780545604718951269336924995620771888685953476785437418479512600604386302386883298449160785011234792527689996466930120297826286382540772964125131164267235372643026613888721558201649526380804646005840052665643608891765119692859792245553700160429912551019769115045913378569264700411104015657725773085413936073261079521928751844005177752103758854620565251870337473091567442694112659692337684688658648421932037006942052388054737664324353597240650179145230408830028558556380201388421543325882222254068470600388817178638694998557063741553142596017196902897136183193033388262184700159986217759550975256403576646627094833093421695591768755300166376576589137630537930627608420759415604571616488683730478130699624734606386370920991834570265244560259106735501111765171443171325106472964500291229139417283145824377594174454738799060662974197469852269320246298982391325480529561729163145475678178946623709313327789272237256421914397589553893244905369945229272419217362610884699738097480790495265028867520011057994383980723360678520803640747192223240951886100354030008278131131383074353539854376812231229620836273877089833681119041644953575557582034296926222070378399243963098654357250667558636074556733730800840193905271411337388732441126559592559178749906693843524725091714447727469501041416599425183839077370286049750647786828053132158787889626176948236601521362112743242423506481086550904921749798579284038806821601799220983587492248797264485817796966572691936994848763242741183441004395152317053938342734286842944605844587110700608648447134831083463193062241590981520581646923234379700394130057108884497662962492405785213048972260877243305378388546719472894627694556916689711442638257214066096081203651594938917868746311378753956108365681230554445171153233246274707858654355136128844454654223216929883661505666884477371121165051634773746568045222861542332935498775394643344406417781009561012683243902489363289658740768048518202376074046594588457939085451975352441215967871602112171257140130413079230538858615015510653645317530591989076019363881433991791431385983167843328497157210159894223947040178530298551475983141983112654853358327548777814573610912567730363558162247407862494964628971654688966506497207794967266822027498439595247274402606592711572891810928479879332271523763094010228880063327733910191541216681320989687122845206053698382015561103620414475228176767099473822103484343042963028525260230696641728440642860613392012294908707607455557854788996364895765731174562074339100298903693351592600396610786349152771298914981677469657082867827486684063059263747539946014853020608817047094886310546928177231023566561831185964704710598011664621318054096648139593607404767814162569068366556444052804115270234081734873939307396132233945731245562129632231269500089717229434680916961156616147186713944447910570278671639757983459028465866206351425651639977946537434513081448945667801826643725171142269035061683801406116413349492499351838411955864896023456281407237991161849441649823440000015074004300584138911417456311321028367248755905230374112001224148229054631620513118112415155106120253677841157267325345617332417679473857779771671148386530335170560556729230458953007398578050106724920518689972282973823882820547045695388794025236674996003801162791518204569016751038423042005029119223713550250728947059114174807422173165047962342609870715648270405079129048399499576294638672953424431598958251903579285723585297263772498461675335291928606380634341526901408663289366632580479955430470802224404075433804745223735258109320557752345966729183896844647036591849280672529405767377990985394219899559620553410226929676251017801464712072463947620934088613761269464212483451828050377926108920335741256463639689368024802468718815495204619980001406459625959963163502463731265819269994199029626425677185414972508646151368964477428569167880297227768190775592010089539645854858054897853086595688125248780014687356937227196919168506278056369357825431904451600139180479868922572187259304021140653032431941592582326952734181300240346665792525744551057240324877639119763808691990180161686002815166073733567516083539171870405722295663595329670851901105822804907217999992295165866204095593501272373127642527854083692141529012630160625285327367318868236446873471413998002430082291440632314423191095525477643696542419971064421159181674643193107851932403147066857119465776814225902132661096149176224970196164987277095178466369129373948832964229464582083542413741144742108371934605550484451084086751082708154548016105257701892905657154085940055270149765750718246445103972205866231446185857854610853166481700500255453087165524310110327654166321374987959231262292157815105744087876644342461959339689235588927515605649300902196997548630527071446703907001746442927019957305363338377628057860228320240034050501343967996517429520046427277477752499771129964684829320289852862245862260807882952638147633994054865135857465656613305772477467231747574798789340140999405712234471603373761536903580328011774431387864422201188154445405828900071626873472720648032730443814891625080902781792173814889528655699170193932765804966773104572595058789110926923954746897051976482843433264576861026503945233411874225877584860631288498498909979685344557947892734048918049682820550983821081939321350896324940395751414091704755626908573606079277553767772194417206993723113770170139085371284908495456585064213897875828359188465423145559534152672236865112673367411252531710327898746953718318479946193576267749132370079300237344019504290805496772851287153931343087888498469546975987012903605686664954887336227550888968147045504903869917894222480964785489572907593274118240657951571252281256991601083393286747301710747646656900533764088058788026795000703146419690624375233255044592694287836546555667105439848845611012772675115274437724801239066423599061008827476780164761272450706090261781400092933281857961382115684960522085779769824179151838003697571232244359981865236663255020646251429233919335042296433314971543032320281799987584339591441599053417131475308117794446512940803243113827438667909915426482371360344827282061554476244309197583480564366208088158854370584219258934616688762390151553176278497900479459233974941298420781466695678409529210615115957532711890540408276691733125801770534227531187293363069301578147992178970057660475157218751643423320852573887566998373270470798235191427843787537946592809532503833917267422007645738917625320042424362226359195811696519235712887750002339051043614447032563431795010037809728507488442162647190867459770164730837097280882122410379739195156931750818422067540385262117680457003348731477890030731702977101856243294688861251807898784781558912601480345302548032848787320834799556900908427894329251123237398949172450891902013307199106216408695049162225120590741696478143967226446433991571585829206180081178225902798093819813664161069711636857617660384656998116659550408340861544364777861982376436367430828713277575918585553328659084820968504750291670850595726842945935425614124132738828279852531345969296200649607642672093938925349936476743501074209918911236593220350245204229304092764680766893445520517873605704309589855782245469449761585663846606501054322087547386234757590918568449995936374533055748789227283376162851565278998865854874709026357214717733690226338093099069124178630910797422274225790059360979288937476415030330040946273529596762997696525737759708620041895269218880634542066950566786417047675155892588724588899483975247388618701562754907137093022877236853166081845566904800156915630813651924793990523439436163007236262066912853946104521281123183628877399363047394168774921258664196519457828240574348318993683485019980792558275039005153373674711039550339984059882683616156425609725543612090679593811899956936468203585561927516365929662793211680546425515079639010802765197544184582575396348896287070626034464424623471923174510184530575015562646341824799056870482075465633920043726190324785133863485854933307193282673583801949793691541772637091261180083217012139445514517308331106857521582824030954025327684061910964511815298216066815631023273600765991341135475719229782614861854999207397743301933656403970674808203669398601708839637310458692508755531802654108472319685116381004888733113336852273993293883872641628495567803541175852049572793586996228590951407695770196738567554509453169557363271869768194179757605374310289220064260568594524372825101083004324290465288110622284611558764216058115750215173854365622044639302581236813780008781926140785537160418926752768825810306647471919697274226596376832922216278090183514534598509496526302769914420056777715018368520481435257221502659011025741796855665620576283796015979145883943756522249506493651777095807703952218903104068673596287931645442594325581857235812691966891743916907810338266038098278932970225044901033733927954372008565758616828365634907933998619703744831943854856605445479727127845981631178914996367255564390794693326440293188321504592781194187434547540308504225495922988527165947449856802328600275614272086202236293449381526995976873899919300616609316259292448577949101608559490591365955110803184328876066441240293005626671400753584353435076600950080022593451048410057723897714157618325303335879073006007250735827557767124829385873949293244135445359812085858918748906109060908669836113047629566784201636884025319571017761665952287645030144009328276608763556124642709363175331843994412535885587358950844579172601859998691703196744894528819849061563029921569229975106275765148255942350868647528445994829718696671256465532151430172381378443817584739518468172243845593118150851201060080341183206883439487068887474007615607429594969412611184591369640949650270373081900900537412726100719525453059824477206213582117552626559845305039919935752585227005663654750241713229831979362968784561444657400271109424938416961561974376079891069350357559775157531254021055951637613686852094907235463369504585211972753565544163641080052285051913712416894632275780595933804963319682819472982501113853180064378583800907718405488654315112967451402297037493294036989032093018072699502733145940984603815713462826084489036072972272783864839708947067608257577369254695102348163277401199264897547710671327918917190147532712099865623332666351173367442372355011386978188974682052810579780458409734372660781722131975570562331545039735531911984591988711083151371924906205551394957642321342743984393717766860802432924452862814578481442991277791238237965442631978608123611739145504634170770310717894386937449726934827693157982889006394320666835238437834560229393728333127919154468835360191296613066031966056353028555135817854433786534692659832737777650121443599671573169220079717564808357114544876459140632107610716369060747394898711798517233957693519596199479213536724584074946854636534350309334429728968609247497103643667121990254427739533043257522023333509055691204095925980559757336254526639993868592833830595635857301334737376958470722535010030359296255248623404502282739660199973171267680693904581134485475039573391745070396010697755949075619735485097520656623988316972073924632460759119223006036672525506688082600119043738414127454832606439780619817626759387053788304531311507535946856775937731504404033205908468135978089218538992753087846670860422577881173891749559042400407390967708041300341820974613582868129522878619231140289551315759494283344438436340094846356546090343811874501081436443511067309041211890736432566432517493878277273539170787507309041256059957995420241891530475065413589101474544337890630111860577600593016612828639586625060664896872173664811447733537662850358620890791211643151708573793982142826317900120895825985003084128504619795195454542157087255922600645209768791452127935244811854680668458276741441221636478040773665784439822122126296116882124960326849193297582418083531234721307642059228158745524399476980312994871366450988885974609659118445918521497544215361755713506627661419210484633421129176966115746283522712054804683582415527391630745894202903487482174359361830473505881527473265885371467006681619524272619743339634864407703081655977009999572577125053694362011282697859134292095885762293134208672512849058340921384331118952756372433627907929356844153445688198453346526104943961338217094608960431079549362852640917909929370076018593240859130992250685123915235689285119814661960670453469793875789589402948184821642015936597224204180281189585365909267321390859312120509375398511185764136683676178520032352473569882461591724111231493821365898269728775244543973852816744905069387914914365851119114134709101418337227367345350158946634815796667201754851830104170320239971251074806982005154052054278195209975673661910737420913898505259386657602212851088667575486524434308134325150357385913727408636504986440176421331297984579929021996908552988817815629227340012348384436580806232942757706477007574267602164207709535255002031075634809474221143987836191239654058718762808717918781122743451963371853109186808274155106452906982162398281420222636083659157470761113501032929793237889729173338934988129455674324885885158942555448703650911631229675476460583480494336642127358984719087626522331244681130052047060868661296567853267140302826641466575359284808073350348728735275851801803058282949275638503146690744542891125395124312732119405873130190337369189252293334720939518010855644675619303879984551208940334166927149499115232801022085706404007919229160655470354388475833377935532239964827442736857766704828185922544314764075857372203370708269070350677544655494427987197619171951611247361884557865192235219917498818202513549337829282071142620706817666177552633217532525542281803737968196404813889716178436038209334229083343352100348163326953083309219478230589139282763315078476550077237719098155771758534161719432706799696585381187275393738558452206858198369184159485073607838628978739960184865970691274825277041953825710898159601676930831456279904551957909346075984599230947437789917929325624459086710801013814557141373522201491063921687619246461427856282394773435394584251843108665263728969422620056645968611897048808598213805255935053125827778083164469506482720471751947598526582799046248808929145642518095640874679518452995545513470769180399420874415807253992035591328757668334253236301995723677817435971021583535045490257445783835259098182439809219115533319022247870735684054549300720882703453952885022761653235791549701155752351931466489442538156763080830109617113144167518685511374913539817129601246264597854077391843688053292584470121577164444522581896926702756819658205888336051230138953190355280514966934646351833577229412702683010280107159823536714328698337537868795610087675693895123703714363768173329803762377617298230965794748089253424831719285226283871066922466391538220242801435940349610305433129671036382241007975891111720148180846467143094438733840379197534210444540363907546658682607693098597782475165413082018157533237124528596809570550261879171567877172011816876944174094702280650588707852922188257997457889336760932064602281954573073001179187556278485410182676552451115004705268481698178609685835814612391665788656184721509860791045176987619404603365831129444753673950628429639814393390756217176461972378849120226036071520352792026120508367882191103808017648320472811433367862661222076704635994613045507664125027143913231679177475052256741741607485692724011525270420128647533559244537635181814421452055540382227368653094150202376676461987803353906889326811242421099044503042550801595608426994428460616019352133602301126487145567960025615885447151757787809351484808519525621730473809356370699692645273660439207061612067649147150482639935167602514323867768715131473409497491967497830101157011605386131763098444976189078846990838566232721578441724042995492900411746192892902108902669920296212842069728686348421970257972358462511311533747034465802052515590636169323823581355534804434358324834785983560181625327199503322709639041093827240950847248933527362162110373916157184392406806230958356575584899125665960715996879996117618416115646828313844019774680526324983685699909399393849938931368309606041400988033753460703069019787371297421866104352801207009747805199657532399600536711848413010476468930193092804336370479480681978106037019743795732485873467689443613405537309621228984860610284953749725999594104123272916756855897352591825231085842876903400327940965987330225998248821613431206705602545981707912643772317338938464724178802703567852323490348049995248736398484126560088408029435809764631055273528896152947622024702369761115134647142090163892263383519341391224012165194388674889569919311043789610307819576853728911318594124187226257740226696651678317223582607760672714511807979363360607148169779908498264104363101653036071922503482044013625924721570048968121587629188593041166134744801089690987175752535200934235782399085364590855703651385844165195996854617038400126260347974297183874323330216747727089311394995280884052474822027599431288487586165657801009728803343937932537910092834072265711695145395313962276839485437707504571068767351149132433601332230114252546851964384158960064554690221482706856961096604402992737001064545270115022185219243124436059407446514326718186293841716979019836620448906416468599819402653713544556953766220710559163982544022677174248820421701196863589672246226417994826976266691514496471421638894244506267672692541425492884407195216650974622930581836793551130030270937856444755502380209273656787908889188109566718388258883357945088963670650779185162191184400041745396149870946265423856146341668213495732574902042507176493831262524833902118426566343655051978310593574103541190431144828577310669269279887893426855179115745682268986386749888394425759962131231827526805042072548794894415719540542491956712124803088931295454802655405272681732248222955538502976072074975002660440138405476947687402803004320774715380586287125546043883113776643787653563578474755104237787844031642401990078705104752455951058174277210323571249878320225830494300513741442621775019823789483825119155395505457275791773462006096377610879675549142998900251308747411350429130385917611952860342647390017314395175005021423415655376780038519839032225202644438247227108774902193612273776171470279780363561268440914416302953578720040774361877295182752244404848877146706549317080511424382745723504592553918852141863647268778512705047088436720783892823026015957105035577612127470674540541268773872351668113472851438677902888954534658192138659635860235925992466704400353223576530963112009048590956831887940886148785395042927359827011240198239560705723854309762698378651927064808166752814220481640756293530982622876531509441478629248329646790953859346593833627054241466917141640744545341138760637660908077725038125623761882095159510768121696357287860980730246449580596943530355356927738462855977546060020925664125753207712685038303882395589372302910895487764570159500406114291798205156078391097363361014428272441301466713546100694896178672885062765574659870928078450578065086204322108627725234966462623052424047578444175161393892377167867995258643219110678658112363449637253396169443225304971126319221358452957514395916434491604622815576479861501928095871430205488258230809019562468158867615327302730832565464299866819327307532389566278950060632016561710629296930589859080651902343298620664834775188081488084809502001350443385804718576413303906174379323330796619631484843674226836007405930124380834913461338745669581256855179802926562707364033553752507050108961685128483616097408131929760849423635656170895103368012162031867051648943856077022406434421856728407391717353311708377591117656023526824847871097892421395940863858014419603162008237363980068840412683040951360174735311858308241213677484516541861851659994320493638436786505605116112603841823630461929810295018238713729558145929895947296821467844063456782091472166974493317169181420887242812446506536694659866952085126875394611210262014419928625256424457944630271489296206681344260719980569837898421804699381297434009786077496173415508412731309375197276641503652361269834786634821006627823783438917640471426831447477615759669430657285353072443433546053668502321734713543869221473355748108590264950008055325221955920099954823914703643802896892244600191014851429659529945664092124500059712735179008375396791056677062993691867598551849734131029671886685118941868842661227554569671880536435808336680370183532814373780011666823507103626632580392902167946638860961195583277779928980661679237591087151868226523822516849529693908595245354248834095095647150597491885157699351341043959078736676632565330625036073197651451587808828286724898810876222560954962532490303501599367422828257749305692571822209753233431402828737586041000579915652770706001787495765455742640345611571970222386991649211710928332438840966749405318366509250407395903740687879020932817840466691527128515060678539670215868412872157634204675982610924343825737142939128986012687919622277970833552833947458870895993714806779213640974248999733824450791721098093081196685467345449888826308079079922306000341583459881220539386868189617510671967365547353285043171398778946640288898656672539730505327726933559411874388588831677654301245713459635065231631415952644159925243806578307845437484431788404789397835799050633340108401068767786246018306920452975128424123850769677366346150637654285628457679174228095122593216368740867204032529313168105176753794067574877686051267284831419122906869292304469168244533539392085077506475776731393548816305528282525724236582537656421180433438027046787854514477163303443970001560891543361857624850759802675558695535529442887403295295396855036626525491352047067432309677039144836012856916217737840742002722388288431177587780040432966168693931932228202981729363329446686412237739077164294044930512321241859466366702789118097154930644113030049382532807939912673125643680504971326022817688792540533042926942853062608429787273767602970640081996246983717354704673248478076217606094833251831989686114341249640870181474402908521586869578275903654958708203193914592949390901203129056285692793154934023265353139439089704779372134164898109250666183950981168074111110195192424958609566257501389536885524906068961611834531959661694349642166639399214096097657647615159954001913124892044730935983450020531041685152611025357266056960402887996254817567635888872088659851263437937905897924100829538221508161295649548732377587183461868246042565133550238301965814773630934559623667161889613533487579762814359649884561072233214449302821525835952321008449045005791184454208919882624186376984313528839889758998005648779650579046888770721136839330745119885299301794562473465395309915609076409622048042682791999758534101219322418816481263413543794690922322203264400174884656637219586180743548549323635584270130703405406111890252475883359852900185602750870660940516214189722451373441311831131068714642046857610115495782053901429349948789395076867189003325981353675889810485623154083791792949128731850051436218166573517048469060839579991459483198578234408720869260943299332334931535946947481390573208454479017216475920890136141611270102828027481689219764423525622720559626429082082491361235113503145431576089960766894874250479371703452349833373673732493126206512831841264978060663892397157046506929339046596703808546957916022741667161244377694038900265914575687730061014319858447399974005200124436959644242993993023143718386979293006847885837039024727883943086452141755690223794891707353540445936028714886974573276925217505052371578384045263495087320903029723019582511600803548812480584553076645531888969985495815736069642684052140994060625007216852149036738090173313400774224449688934454625861043972144788505524099351067205262852334923974692428733857332917631636381749238485308422041890889413948221838971850040738672108673944539651679606579918502049026916148374921961441965508924693134577022305563213620064781859214098642523637735163072415602144622912630500245327782516145097094906208745890048673048680419608202181520314345198193319479720220168858066687077138746768432662119588802374589866912919741855818122429032121427686332446543562152314484143770764982462641936995546215312489920715352331057806891270324103864683139132566894945205667624577121876899557137721516590552868843235979886200551885323597598198977210080501600264027099867320246095556049132662222530525316159617418919110659238531803651452198204453213984046918234467756112515330244722757116526983439593635683483285513567836994424241193577827222191804118492433295211713491691959823494997561559353450817998120142686654620526614113388297718768001862076165991372133680073897136778441895045899215715506255598947116180212759104888551466306298507106302105908350461670345677304415303745289727547990344837381703524663943675134291085557151861685939476600992837819272423206275969910949717027024338922545922118008326731893787570932227734232694435685374940916225712722977601053367591155855661246843361955631590412394807262179199129543297380218179617430295675163574565239448675608136236725513286823975096949853883080260930915584390459427355240168250159654348973666563829763569023594862608420200752359159710522429364965033615330510679422758071453840612634168233309948533181211020697832158818823725419344943184528823912241782273104563882889910515229455216892483092685359473884298407693322929991183421807741880825576990359025461979872354634958369469241476268193835529875813660822870881924996073358664687756226351407628117635161406361123603644136328133873543319468272181474242131288613462105600190649043514962946239081696247615825666727855543398252796316378253553764721826391825018799084725107536415835975283166897935684758384697817935195914725538612791131384455880863583617535236489672825627617783917420474559490270280920052044775020200147249352033452564414030563157726134192310397215418120355822545882510302606116111233399553137199460667701519509006810347373833642533860125930736209497050402203185876019746333889885519394443579283020732949223993407110886108919115582799808647857909366959952732359577451225157237443162681591596068015863275999905638043554989455994939423145623479360810244122216982947376992125770864471478606801440859339536173514798154201291976316510654056552869576710641404431619024657835466669309861030381602919858229678850358022131751923909900942779953257019105190563487147340245731899533639665546795875559548285425284850700707130651966201962778630295483071390392138102063934059902953919825372821487119104313944705134338175397470804454783734795987809380938868319242027319463823935016860456963923962073646074577939619312645856131328029385626202320020965850998295026195619362954064838589488217932888731373437007709956172771142219675614174074305311238753666693658608301130741475734906819937349234742481955459341437666908181290359418031743305063900483790794841699937467457172921465447039556041223396934950935639436573782626201273069154423916552663499405426446942750068457436102515002922707494005989698825643000031897879129333309634829184704133886248028475365369674855486646156599206919118863850500495253500827814711070617838898805498630007739118295249371804964866572805044065608080152388263799976724390022952964449968150455571759908577813879600123537670036302975255442736262287672148889284048337648228443304636194264003986159296744390364805886337133371387325359156297366706067421193815756512188108283790618686890958074824279395811324841069329660649660863509095861750826402764093917945229112569719243904804185094338132082662579429325492216803099979847303499939230285163027320754698424864769578751961248894141213778828109766958865727987870780186667288399004043048752177947345677886253410104726819677464295189146454992821265680588149874966749954778826434771806171764465337128946031326114425309703422469963905047593505559999127903898847751836419654943151805744076411982727183304567506103636067004528226408339611931198590849780364380177242832780795118606117229840678418354961848805254758446655035782830741680813226236247376375210791811933047454314226578894667103820648479549675137536303486251153659420610470410900026248826875881910772421480725086608067989559528122637655667993947504081135284414587426893911078716436565305820392717165565796544156776701959534291642109608228427582399204592406291545031381156810585130745742645861136868645760963351273721618389673309987604718228112441141937476825269540086933096931868978394796481330309703998828791133511760025439025070005993788016524783956852005134952439695975381432113813796352272252094750276838263844006641550137023323022940143030241596107527669867569005732636779427800355112079129065808732972459750232103120824816341842385467257496076845126756963473384572900028690618241261874150433563109368539890874586261778908965817761949162249574784259190627631511226495301106680730766789694381145413498070432882065042416053912512433622086750478318814394710710549359929895876690093492093093929896008291060004766103368612853396167033839369637129171771613588481943863073054615654511916908197022968127558181753303665926403617978012041138429727050096279339147092290112793696815995615818367420095911564612910725099986326261540693387226839423137094308564629449085233449028929558799841403962543127650012530822023003712130895953095112115416963690401468878205447363903687115046452065802397829326297646946595125160177692319061689405932321722444490561106765686905375102640218762321888734110416326282400857078076676829957267076711436084626591374980548760303035027923169929039550001495873829077356125566450062702928502741955084002059445395497205603285146667343971364817854274126560819339786456227273865216920376962586815725691685382053252873320708159978801453231027472863411919486080716560317734278408866033967258165575097548567611951983938728636346057298227754334954049760246823373242958660203444696977433981958905487273201111542133996615506580016882025222544802217764216078144128077064744469604187481683966896582149230878756141900914790673356770829716578760999186021602082588554068071082423129949917858085603874805874873651257414934219974941870109733196697449321146200743863507989408507515739992867094689413237418418812017072274491246363856815272948596711239398149678870855850751569926447635535053475275133447740801157498373682473438843200127942242562718429230780999037512866064429147206474622034962528601639295707175045334142510306056972877869667259746071878731986865390737294485254906272894738132215052555104049566359911801561890093977656692203211754903811140310725725791333403357294557577034818972125249880958899454459749493311973985733064544887991125502495384324794394386652394205133336763995971333743575164332266305158632031275170597659228827774241337496994509964116321610561512659890465076190922314515045344349666121282162829952557589254447357072428838539514646180869101322197082216469351773028043909066978255430057535158557377091539942266202887336118383025236311092789345717216786922069435173694981913869083117000866720787070288734051996555766941223308088114613758349612905241407830132248288682727154763404780289928741453931322390796436980110118360356433909113675808227773192584882377800907836520615712226415212239337648343338657383433083027894039085479049364441304711643215794531127279676058925354580338983956555367697175364479333668405923064882136461902851309805174822367316971294420294436684822974446048874889780976216680178886547654045871986348157887044820913300754432402501633292643177549097685999969789357301451725792528316977641814483722788541054110634886956456590124489702598204438154697342457458147500613950223329914837724278033429560988618701558175527619724910897828255669597922385961572126653988630098077695626097427930926435693655966965993987735321033104963577425986479531678069044422442904365841675349600316155671915363543604731656498324700598182117067288081908177072001780162874870645083564472362017394156052033094386101710011716301464103367079887670996369178476147444996532223748937851319877041094130883100266430433048310272715991819409628882233021775668046066254545189747723206921155058293793129594670263613425412416552147215167052363544062981567661210799850835993203572952291334777717339433021083241430423363368034755228469622412784925447210686178610946643969144433191596890096415506201709829810084398941917284349863845201438511103872536452458155099506960715773653595429343314332484837481156453239427001005224059767814963862801255420851320305424665027825361350875928417210257097031714168782915377925137149803739192589134777918112047112586198932647914469821614690346841638837965347451284836731692207000994151460789492268488178740510674233303624029932429693465382257729012614878201650419008028545608639229107644670108097510881581950885956823692451475653630663750826267858407565606384292788766881189163000210599145204799456762067322308238186095807480259979234939625252218925255702529860253455234906023176945575540196004986071752890542105532751739540189636424311376711376472467805016004308119820371533778812309645322713908410481271779673955010805272834283557152054661423022402537995676766651334006761092787234305430864452327315650635907539553846333993212012672157995614738730712039341063796647207840638990836624349254845522370517723061577910137672071680675886182263258439718773163496030049321925513295029152854249956346923542241438357687278056441378124527544848959617677689691335364278179555920537501130706297829294150174360004251201055351944051144876127966167188772455997699855570612985973258699001920189307872950617445154018505868918330680391995105765413240080804957100297598765648131366959031919405392141555057016919242324323309919127520007911541436177452820107009448474200252642150365984061027927702547665738200565171666555629653973389099624753141903934745006740241292461374419681057378440305032433619129919737858520832863315377961418615536907799489657646937868602600021739582477617470921565493925953542094556364474411522303390717583638226656445808384627032422100136632137129985912155171260090668329599751359801197017608762207856480792841512351752202540684842849927166132654667390501262504184382496778225237274480549488455315842576886536437172434204028336753901169490348685110137041855882527899633462466013347694780359365609131376282716409426175201967723624188174275753715750439153094851674731573194073543072922564238240115871323248129316751176092447047878019110532616214880054448714687165258419382566931374800578575170969356613422086027114330746026414356577602274695808367745766888680637475727889196817287086913486727893555148801685109350818596254313534234416156141392981545573466678818738172456700298400385185489447859628491429275908449681511304751087544047972236031495310133467812699291771996435626028066209700829519300669342533551202790714371655318095696810313855679620426950292769984995669860806408577210313993292711209490634796286938801384140998364393038305146823575319210743986366010874810374991506114826199022697141658301983643049283387106024078026501721491746276644382913035621811990398444849307960429361461164976488367623715353700951899709687373619013953432110771741491964884545658854200625901980699882820352251834665831813673199606672365890236919351959778006250837342739065467931513873274582136207996270256271326297980955740755044517403402773022166524664390763836109912901932177061422288929419406056582061992613025702961758572814363446404021863499687118738600178640607027467804219730282411025831043964942783257150272356179922824345898473220803287785710305420797317910426539422969929109036490837006011294594576018016267684954169489226047975147433874996735311428104016405885384456398623212236297714275966850628875508292918138982427703343244368959242330078576417671323218857914650414235367224514419108044665402228107697990464535519954034535382201189891006029011991691341112214472599072077688976474673225852037756607853184754964616444147310858848304319796170422076064792036747028041185977972349642190666305843259476421113577741840597930299914798132255586858377428915209577131571414305667913158281856414653062110866270249639333801117283215143404590759215410088459091113947430738813504039374410305664438846636842425248798391689074548390763630527434301608644285468776363795188027333769467779918576342406304633649985001036454065506141168196929216929877911336313880484443245297522433734603501138956777637391255000205048156922682713746943139734578470341037956995481978150394942626984908952595726053202683374305994143473501156829929197977657184698525417039872185473762745020365490872191201072853811885390859920503756591997023948666684643242629946992864665176252567245977372130033418191509400404410514996192416547755863817025633204762353233985616247687810113857340148426078504738747693057008727526324647476892709474495964500168826642645629961163416210181280707689863470904341947608251822026434287790014211885128031168195574323891204321728605712245379140692962278706396255180877482478198030082379832950774642352761629389097182747666560103391554034204726620335981409473935759679642096821809114240214780482329572478079859460214086727902883449392273868589138976682417423184770029654042851881175962504957430309166204671889858144896136345060070625366848762443635084367919080783893214361242557035344438266500146677760624243942549667159146852295787919067840469301703433108301224568471893557121548077278029379046357599553772763792450022201657713306569588070711098930009216789309206256577947865663886238372406146242390600474256209476756895814114065275422629512479121407017294023642503376191360755856673135581418639147146908765342404559825365682212310657353300766041879848315130518158274396950425778183180296387908445933438356578005069850487292480541360989917079086807609734685409645933568617936940164703806162920909161478528677012537530732050828176120388174824002372489937470684923038880273713294399430424233089976168318103943296958449659093553403716235467441188629566656480814989923339279661939884685668598187402674337255200335945222792711429547920945271633847408407005565575072141816040562557623601121906870301800119229688400780303954682103066604308347245917945663637384083002780667050346015297023543487689070627470023662110251153362310736836622161695878084475871498013599546294061084154962324073333996484623745647461720580610022990873985827688095086817141883671816695085920216647681899673981558636080504223735587717502529338920999643209456296669631603732165534438948696507376604951046784884192503750852394545397020656387400244039532197980775624171556150909209558162863972569878753328419314682930798912537176736797464610076019900652561405872836741372829838050595410780023003707611419107474164615700854337103826112514598395931551782324029057355625653854377922030435701166174154511995788695680578758634731593623374910757791304397890350619061612374735209500748945454900934944968942808457366899604228267358035931568686856386241947616426442270388416590866512368810634809051345134749786354729462462900915611683463058741963479538316293895084423396105921703619018689754187013844376295561097505300050193854629027006246429650152126880890068831300463835551834061345810351327890038295209507819483884726838157466605857046813728161049480273667967009102631065236705191570553763614016079013866965819857597648129695586314202399654728518233766593242422185295689892619918590294434488310372590083395504524435058972424935199605884884936759968519044593016437306848558870522076656160435078278122028530273664326035973834669305137639819521607531764617966234852776766613992364285458288386484900663142564576244903714893320059203462758985680262987530760261302629956017184966747184832809510375519446823252052424817030582133373649043700660527689267728606334243059666695270033914568432086755199951324567007567895323610444952162047074714271336478941635424610891193028443595009638592484737156182098597107400987445147302749417216795242309094284482035365440510534015280507637890545589526780471406541974939697681981038033829576047582902529862233725414429695321228010352161902744931707205653683244997831414532836195578517942838247859547420979922970964749434269279334903655043926981031940998034710749939733282121955577894256125447547671536354281471106014627409430494989130877561772252671074738967129050914720713589490665743822393213320275831750286990592621567681936755258918924239567657401859381520271512628508831812543011811710367908848610221503269974284418528436884544981535660870418480438803318068020077900698313665362071533420812041626800080946687749092201799403357187651898264222996344540906658435008512417754629845867865200753700026711502905605671015800656881436188557392562129153062229572996094486918927125745523590900383585861607316212530556743226348628769546399442674816400973218026557715422343423184508289156202797200666065885759317401134910184275525226020603839946053303329089031560051450190889480330089235239106754295783254569441624685192715713525040764594767503752658254324121071527891963898443705989244679964001284090205187087957391920607110957071537607150682043509738577002337396165462147603089485749151805708211958557996181284789343831724256719141843642621196171018544050379795231289116929441122790628206396229909574647572906576178642530273507056171843536540894596741584734685696412813319788894996157971628658869426243174620128370944277508779427172895659810608095607206464611410564955120008369051013584193357993996512862543819152817461478499298343112247864394931782410504317254966565333216412950923785826700889233995446520442136256815446063079005712039649491166973018413024428609367756836253387230000263039776336566278200114552520756144315552446873071956789580700852499869775726291803318427656766495185306627448237864262387762810063009423822217297952213115153015625467277221036185449207434442801317216187592493986679771287171004335280861822380352913802041172086644906903815590013391296840377112001192350369655147402625924412856976708156771277517157941081321070928597992811944594107488416753922954389898593119879800453440901680916968761718395543687470448643955949474575052034681450477218857027380553077273777730585375937762882229623480235462331970277198976268948064993544224156294416632591795848727717967200588360913302874093694365032639245838492350412642569212756363814449301193807499440848266558882561306076930064480616748664291256192365751551266215355092425104376829650243484893963398655676819351599274088991781192714205035339065099132604620363057432919312163667716250545644684414763544268803927084877442860230560006928442467734714876705155149049804012744779746436289852388362616925928660741814026821769724144173621334477423015601894435473912423501540295204807575198517206766456593488658146700817896092162891285768062754230627765999191431443864421704984608244797956016719964877010189749247660326437841376554648961068709496673999526408857016508174989013408536427543604961067675892766047739864021691875731414432807678949616719549550517581557681031430457646959394387826534381042417792446066431498257490785512612282804341682859642938762735318664256658405075334344594390229754499479935131541644041628980106230217612405102563490316999189740752114425477760187569462642619993792247155864419155455030531354569481195259188943346669575944085334635441651593445271110673265124873758344163946704141290359841608852405466192728311232880828781278799778047444949895240630331440565628063209835486990415167510904814305520315395683484083119604170702848308300523602090106030236940331328571343141471613242473099403480015671286091428100422082706136255027701112523821889099416640770796159231447967138772139007763081407366849272681245571073241264530685528443482474069885916152363372775538282007919733542184609212580950478429168420342132532868184546977042701245364326242338248086342115576826056553727008542272501387768205069207687973791611614024833492960204147489535190093935691064365732648400648873781007308318628031533030458449545711621462564203548120288238893359100757696364988757223301929547463532980936606963028123649300901225270984745529867101660471468786317902273405825911322376624330548025088793532761930831950688960042760896268203708003116935869573348529335759910783085926707063060805156812019659311216439270559932217717866085487583808180117498370525904097618970885302578419609447348445269016566011849717898557426327777676151623739889120746183381279670978017304617485194604061902805653024295880026481923538038619593142895395732800172021299447011156880365631921236464568260334085038831486458581929785015864144896695275096135339524193343586274499913772739550447318744958130020034324693195934400875523002094494260840666016869914460574981237040395486542424823996156167467108941964131170748330309337337277298624945058986422418421787388026013090419989224303874077378662900451831207786346369492727371071419925157952106116210928521734128748354691729728801797320225199456086979914332847904346032360629234636562426823843695398856524371813553763756189852117854616951000623827250701023209474375114714107372017354631754781796167158631885039428551027175022560726339082006190262381199355725820780816986668652029992036551904568908828515057595692301952811704370244909629951520594760148390057843770629018841990960702443133952197074454618733973352609912235327954257997821357701231724387225890688844222351445362078823228920583149958903378042480642607425314766379785837793211899350333789302118979411727088937902626985878918266207698220317705974514337048783244419946985364423394964575191197518936411658867888597802164957779356336756827636005280510180745477052441559635619222020913677967555178140255909321567359930743534725882466171144823996309423481284323335463161572714869906264648850526255625839947309876899084043814191551279653676260017929342843689512343349358716421754292111419993696504368203021123225917305461882100589927294168681488821542851871150685007303861438502347789330718252477862559484717070348045441592023473061180570551887148244814807607130793609516700787059293320997178415029434522073968640467983537013972451715546284944078220526927862473279094360644468813967726398397140836168152867571941845349210047734922444353095648237437465175754313203548480782057328962373603076152301373201269438671658235420356792952454078583279921903786784427134467627633338777372099117471439111555957885035445383140597436120900719460984140564012592369942186058904445953111670858902785236366521023232578284311900388191594086505471662082915216823821304657054541481487196496394782071303069670823501717458124913149285298697069316711398442739486799646083096400734265145101803746622228228854855466322691709024289786077953701515882848251103960493420083424831321383112749102702278874909972374529518752095559660562648905314989131251690758125968924187585475599768315795890472542877101878827330012673728871172415449775253110979536954392493362898553554164212159407551091879426618624480126345770389876706986639466531353170179855587747335703969168451946269147816832767122194636104136833345840646737508035724055698314144717781810110499728336772067810405565622177526848407585579539698396744112014263053452316719093094737879483657534870066023741298689469930952724519346227787638059212127238856530938577438076663580398142897820609328414021383589284623246479002545843789169062983812231690463271939488508638918456256965691884408416172845420858392269091418238113608528719330923599582944053164419553399157527267315800684976853009037113767935963656521783695159979190553615375230190116398661400083823962614460769011126572096517545365411079437259122215507765776082556024622741463459481484563399376700412685017071329776131098215823977296314745890804023013253650857091795368386268215179561536253764613755685102530362939174568709945112132761389688025745755100079697533922960745326853362206255969805763600305002708610029613224069587000806881641798233468053070649457481481932869230477477752812878840261742437095392597462324493781645209524874117430123878285566724149769194940405810879834882518923705008702389825923046589421248663615535025454984477659630499612475732816058738820307264418028582308792172604765943700205310568120850452606166562104612062391267787873466424575712609167356103499594079091370341517982399405086362087316204118922135406867114115778821016175398085432831036122808489454976294577616363349649712756172419949707515350259445278154831693089411769204870255211149324940067246291932495046861252398407983930007953117875020777158720622247321699268512459004180646971881226917922139894674257620183420335964031025400414002869582721170371125669108082043457469557181101950006162192716926700897249859042758534393994373916799821282184256247512427045750891014502783899738037209599950466932049445795204370211725709295379261762280966035331335052197524813397675202227313322897662338708333183821011476180260602083050540851228631614865616277100704011244239604340136589716043664470895462290016244594946157680475786258277353840052666973118234307972633079561721262082816172619621889467766273010456742763116017447062116649512205371790128209027467717199415427091902420884771768069957948029586155739564920453684301208804322872463479788829046225885958966987710991398410672000603858886982773163198609033586549696321390484384483590706759079212987933700044549694130405077787794839419818758544807710304245871023607121857902468613987305723970572553847506308078222852655688249703722215287656253277426331122084281775669809962113481663217571451775008725737468808703345061394276932218334804238058300716097541626949950013304802076225322545580898457386373720170635566395592168041495484084742343707635744705149879638312116409881909572689883521945231170407599512346270010632661562749226903900908392000709251308629031600491778253678870436749675134198602260598732022248003258665290887421376184751618048183088366697410229826397515343053543325569492472296797252397053142072831737918146790748276505582037356262188188137153075043379242548970942676473179791015752537213695460775115596151844712919340453260269337659973457542741741791898520754857064356798777269950915167463331556750235902122712442894418791700768105992327517693531457670455703398935624886722406447143821758863932716107568984472258784487306731681451053077524433292462206953249761007070821287932697932771065538673833375753597265785598823889030502919425100172338521317579497270816186412752963270314255072555215520988557397632077787938637965144243828342548289670596860350807299309226377182777672808470210367543295638357679122056642225488226004224415614280311027405358186858959009781715466879522102823634777546921746150357549195667740902507871197952920315258175322279896321022858048766102017576729662509178934052481135913492600048678374099167443215556879888077905651789123824448233894979478741978842714383294569135209698474634870546157495647898300446680657488580150327306509490141435159852818944489136859510203392340936627391887813986529532565585750953991009395423496916456930410345610620542629938763828310798347455409465787124980736193618556372250430755512736690803393474864111480988303096873025564693295538123314279116889016443416594440187591071493298857742043737937344371465091220798155683070147220083998187421327329914171958306004588830369622045771846441041637063047781588108197875696784939831153393297070752982032217225606578478204665257590282881458393425865870729973067395458677770062666919348931272327045358854878316054061792437228163429048317709674050774826897905185188392000283445716151387712917573045737586582881756275253326510629498120315279248001333249785179144995371910007466357436508805955727024542332291080214785091897739057680475275220141919193369865920006169045597653488233580637423240774694388525966273106322011609860236082240587653350961539124449810653623987993809230259540298578408145697974633588451546827967062530712166616580685285115654140091071195469361490441919721813687536227564546716608037781674147733235078502941872759093378604634828882686731179317340557846412142312166948614295234933986058996228989793272436088765302935024448771306720395673781669648914423772266196384003179108791746472315735047474218957210462216443479776651711724379202567295236626816263660560167107566937884477877895503041493994903060734266431778383936812185936910726442060724118864481783771848172478452374361846066746972123009976905954010491668590107330566938025446419263776117834958866055940525910727303807487872663577195193337734245674117847603010107119552763228615301976721197710079449141057452962330521347958906024759739470983408345382262753171534301650252976091706202255931216781302983333656695387646356848500087391545392229594865252939070936422511974470173953111771089905457764431255713344239809750873595650376217812798000371806225636947658515515858596029204892170182133246692361613272666324105250121130115305372411509468309219870402308930397347157475723251548556123507364240180092154421963946081791563085697361732966872278829668503244732069260204549302138337349473855226083619587692456754203702168775748822779883706606596866452272743926157839654172649796014764690959685213605692196447648804425726287336431826008231036374960513788480052632433160751032010792657582862880764206112213314747563818094570220963577935090916676633624747196862791056324122398601149461715386882157962631335060062110115079640199606004261605980730937999657152734553699443691992351100465304596105758415581907725150128083658191560296803755735156307726529180249164553560143947475676732029714106841735042960030811510180266822142249673595471690321439407283173341164354274929667964623542004154645798568722615327026882859160926602803510298533024701473815687522173225225647111068597214508998710489514929886433009250031288968802601861835841065943117854550050044860343713617200924685456020635229147979041015050304882356494573152310842495488269829727595045578982879216576131891357588939402265517814837969538181972788988073880670641808677458935211944385129679008253783013980987344649879675171073892904795901173031957590984656009542135811153221436634352125300024105854270938646126762093417499373152442512639377077760032908277171752031302046557235394039766296892063456795067101716493373086197934286911630530261194901095482624483157756763493375773501096064678387991991444052127166361690121003279975991987949578540561398574792914171560502174715011118883978417120359324432040315563868346310214830446470381148121279861638322102469058181662104803610601845721556721889759503814948111554330764060565581917312242431141800859050604981436387897398747798666951600395140018137065749785193606711006143456890419242117872963270868327721836046693923591688007365131466076721713524482496443568678534346550345115902398854533075446194337670876457917436955036253469984087661849311573462732356862578548543255122029795217695364280898954404803269594768668663036147911412775835410304534121359713614513094269742162516535734959880257787992385558533269607096375935254920675090496683413326323603126282704032254515387396235883923199853234115718527249223356519187123500133820001504953325094245872489519076947295639037986814528413533989989626608343854559407491526765440328126159328837569850797891780523461437104879836989534403480711907209211172989876912807850147461008596039976004905863237609570901651014465400145151817513175835887727525483187997941358369371849649069614087407511595959643988540447349162168497223887014615727417766520934733171148116405038976562204478683422472864415640739598252222829099526053002808151097310887433928205773816597265026029364629356077529530427185070286822974018022945858443769642485425565680742784999540844424953093357145301754235615601539863316927651762557421778917912314174156396154465321368464540659392154852958399862026707511502754319477381144703474315629469748633196947404938838690807753707633917993584840199751717425840192235836533565951935371398515246509606703962898863661694625801042139051745060590253791752450303938913782761147193283914339122864364334555766082643869958749356922951587056797825545830490585857662226632612098042153160186807868900181820149353563037116628014961393429021283888591042891272722958963494556403611756132549488746119765779948191865513188857231497104672647949890288438958880150016142693995446268785958582820161157402757975744584369031429389014241321615879824480861678105061766948706745290860412552932674370706935832621682314630979805432996641217907997186165401167977282875645597822709364302511118471420670196869498235571537623526910114118182529412381157612680176968483303431661505032592176340745902744138366772827165446033511418416100039953567404180544473630426743470778071558055221015453709406668999588880652307662734823385735661176217922155091223072579245921852839206604291159404490506796084572957907881327038121831105592990492475791316178979533331965927889716101971268445308018321225900791074697930321109862434643772718377937784503047178907858527807113418612675996372557891647686782047994023157991740035784397952232242469178536035224752273777511456964226290309289754273991140453607734088211652017344289885749618351471609297351173964558542514226507520394011231092333142259452707431189380836570216062839571013787699781887865067532139787432985678679548116544416356060492264849838754486020517208558139711218465379232473612976199346812448409328519206880642682542828994386297526224619336741491675811247688559255703694645200113370875462998041499787596030710497848556585655794846242806994741267042033821750924683150643819509378314415991512991441109317878350690044293097174125771059273551664938364725189538743635779785818792955783508136206233261198700684298882154471837661139749108747980807354007003771442643580081281764193552549380432723890350605866307374286710708480938237669025357404730800744443609137091091843596280505829849139119370076982052943012507619207865555474682532341150252417501509311452368300344658895663409537229063082185495997263067940983476603861990935929369805765324923980956032026914029075566970326273320073291421356347731106386718004754879437742745856968001063191302713615149584746620477053859019037261853344477702594447470756835086427411791107890414403400544425340232539873531209970168698773792478086857563678605532594639600951560554731343734347103868469639006215979867525030062590919381504934604444854053041734362959486156401180263780042519379965832659015492608877531057439915327960333786349415223859805211987383958051272278714873132588433552108202767708648322816346184349428993154225286159094209340205372735185457286221215284947099443463685563913711792329719760132684881854071909802838775485188021627047269844015172541817822565853095686489391884511379552556132775260662245739539305158551758910388852713729889666594477005806166558862726591619207010802888347925630449260392498153815198757192984183276170518195872491578861512710690532829866120371007334212099927580986502515953772387935188708810377010975554494784441249850470984482661227752697023228405792093332387085917229277365983670494420130846416520935960644471251431471241680830183309332386008270429844857849734773622165801976800777844572843962248514033655975370344025659459968110263758962453572088669654098610846474012294384630370202669703058870385524006048871487840657532062551805304353929920395560111069745674222310514671542409063517606013534321641020927154318669249676900279126816595878393654177323174135208722039703421396574943255709004075970996540074990361061982470531198811182791490062582437247432163455545917701477347272505564370882058450026165479154131324682731090904540182351241002203985026700290731847969987125415049111440987753533938448728858734889976004570697174716893853923546657415063755887236812577368101009686018772349881370360608227255874899265174103153136203937487814223873201512869073919288061931152560208596610959196396540427663597521877465455766303251296005380210487208814393913824625883086729880093422558007266543820218346941864721278396101674207873010747002435986421745333689560780111607514798878494945576501178286875446422989591150522725075367069459699248695121008352027087487064581790628104229344996677455470044981156076059110680655835687845526277814101598538056316233745306156518836626952895724476798580696889678626098492627483969723351168707772518240822401696190439088461926552835302443982225812048185939741638540569816857425433298732474576576926095801629214175913703937508100052851915579180303118715860017731199005288637154747094337275352773838504241852635816868744455049229066800890516195438251016144287735959911476194805620581290539437858816117161450013042209419419327793641664597792789630231409350398129753853342520233475511216654411580875822147977584172746568909872833983212878965643905732917431248744637196063485933368558528442812175387516832253516328567942933791201294307170754132175713869503955820688451807479713953218828627939307602346982142356828860437046913784369292680275483944639523885482754224714583459621358070563639819993249761231389315178593686489261489517939952330253277028237976974926270024025350445982528640499473125228919001503847767262547205448108812164544098877086878696445519609414151790926306381070126206450883194725177679785658946820546360895608590866657929251833151556409006722423948193601766735119228850515170607588720479727813367856016578792259063882328130925548750150093536666177789804587036630537756902982909492406441403514448902598721264858122392885707355796019302132224211524459215488680029626717409092051264112759938006523238888337705739868424791906437081198886907095902000473359583110547218724479971889037821762678292515272469504643701264535902556088795010575820692926568080070548624615533802074340537870712821039198506094666889091538553154720214136073533342426677821245205838389186459882638984834579791595996228336350118274671277277351262896492504973634726691459693000952078598502752704020792767974557295954085631118550733486010285445554941524637209325610977971380273853568873124663276977316103204505240488991098912208540515013385230076136872813343789095130275865561528532329130731528397240133984137243418982143277000730244910688391462651137359538043080933720286083770289622411862613002763481810032708215995322998528002667126113885288856987356380506987528766105833878371163555172021303904059221450540524669540638196007369508606878745444798452837234878251465105441328883896886203139102577578038647590900349453133140062297081123562166213080210524743607292591482624773680466299535365774338342037214553464415571510582847032880775252996748646631116929900273196404992572140415056505331792488252020879980297707873273678896930608379019091803257931422230651545014135038512388671545542402027865818921611700961481959630682583253846736580706518574454232438300508705969001240412110581120942202517417562136566006441793615891850546362188687626811291481243844543301051056644261704568645237477617607965373685699900546620395646244438832266239613461527470729143598687394135622170507072726081011268008977754666706265574103561777648103884903108781620206260655453568237034108387602228274357031509119620343165155045292677310996659723049076624264505807098130284674874292528631909772433025897861759292011483292016202128053895799781277164994341629852697618246979779450980149052907824240064526852150868650912898110790512398421919210952871428676059094401401092064846062271808122525562187530137844985287934577438704931458288774029347373302997814661966445489296058555856157299776086847240502318773018554247768197392781370244056129774962447297534879609633264690446339014752434660564015392039127395796241504907720408782284010830995031868936901425094640909611662297788462014294909625961464043207291409293404918212315459148487732274524138040891514924639578576155208053145239398141004809075853320554373847390633256390334695319291857834115228988152673591810252876150284798677080964798629232899559082223481711508539145246331885879327465978103453426558211851139921951275850317197816729966366228835404681290407122063590635547101559224043508147891407890128201856888347748711504626864327765595360516090582733354572526725466586757996735097957721751243710391483669392646694064279496799498407856537714535770806210383310645998740502933958474409640111205255740349741642696279933311723754385955037387036178949785332856743231205301094622017511878480048152894748444827849251154266801172385277007503030087504733987964913143628275710554363712555703004052602385907506862248010565885616303366987891249164358530380431228279787451899939944842430355795021282679980777074392685363375757871012343227206062569039827535517566965022935827569873378313708805122232457015989178598052847837229505556131523884404824576538045764598754566338115061476269882506089739791280415853730510110988501707881067474312488806945999306851821407608856813340202983372047397582042013651745234722715523974174071179141609378057521534564555021660613676070889022370472249305985612549031537385841378837464742533669576068345805057924620096605458761957192479634807238215346895749510233842384913909843029293148260319115017297945240915703255176026622711329507744999166095962865939803588167711299662713838987448382518585311616661541268060778935674797627966929257865260414126255788887991999887764745655289113166477538657851404800413243893402589694323278375703920597631187722398766709524838223244715585708724962126704543892752538485425718670300792412727308655077445460239598266426728198879765787300322288877791759128874416288068203048332416522129611414401724415126911624883932024119979337823451144857074355805907438372185718280674746125283777519751582276845334231290336443309047165644251470748524878302014592472037561316463718899763014955030125031172147252594541640577453015371705984760448666057698120538785465341932295824472929479341739591824465776071622519463577124605604036562192379818873095525814585913528980385709357132367673345582190185697400438610449845019805992740231778101890892573397692569408057711811380898299036893631538881235914181119230987354885738474663537693786295123547148555357444416672470186206961187299041432014173126166207817564932901577410510392596992410498856228937944977269095345197725205610668830215620223777879118140670487120371783419803553607606964476855452254710160048759799413809251893582924362838429595558103897142536972299552982720479418917831895710271676847989039319787191902503944241076015634059841094093208935919793581141768692568902266690391936277455625758826361780888485388915387622368854140407264569067085191249468007592672220557168088921809958812890629154965001558847422361530068136402932529766194951413712516561292596383676159669358850973514010898451565174832027777698613238253355156203771582980993726962890206973972545496888559698088964783651455809893751835668426451144934728736519778508312758336699027691541904362228822771139442357994288591295780084108787146805515711655176450291361010580102881012588087491431492173578955324898820634193722372267983874124033975202012367406565087262839258132105472116259474293664777387545981554225371061005011690167899030982576432518555752751972240761622970525135398280330766605326516997171710230692285400533232211403537126849826975257933931705515883378368261330838304386225676971664588632055443727210476824146156022505693412212078399431268676094008138967719911153495840931428974961404370027986628494826382657528034494344350128914626664161542976369097964054576751827738196040601410537615639496515414987987532765443069029250822652567374422316786786705184009909613462739099889112636276631200811497283728398598624351993756742831796296988071597078662177253800918384480105422220527068119055545442706349131380513123176455678995144257087687195471334372491131646125023577291633357425316622239437159994250998195693580055617975123367247188042709936596943896532819831689895673507438149246409220737694396483795070763963103729235217425635199243677973920364572745506983347208330880489162197304611031926939364740058420489278036608554715975940745021203074207106411006540256096247381944072018054237922579522788505555847398696534860257247897142487723137242345323380726177970684739477376761303245981017003221874059864588070645965167212767825850550037886515335621284876082644611728008501804690423296236596082443403752195886207286897186138763336689358774747576328286114127605341124913287529085797023147426257591350215289090846301238899288428093050996661914717477493180392344677160616967764362159278454108027764903890791378483613597562916198060359500149968426210386332805880649781248711708431295159229402786994542845577214204283919607994589457922406209963555768460351236928957088126573795492935686752926056361111826121227464175779494692166973134277365862148875139678539121139666887992758858755126772608054422031420274152593026947562797116165096941043122313521221783825182946524301885570635906442534286076703877757256731717307550324010372794938774311699316102259533473568815505646145326629903442166710586864717367757880189870054189078600941255305010742172200604863349867281986272380297397481746831544959872910964961860581756592179812036734857610370505098027426061564752606413547075222061808504848259757717803931873377182260768324985744272835434842657658583560281276045862405914964260860723857453760164752827045517339621057182477362356498166448895320951745365128452824894973300077602705996848207930295101091316252846753917021376361277653703051313428718690815712873757925982021780964477248236317163384367518226031023155281672743268524124768636415604795972625363195358300979107213987239024219357008165335048518635635995559547806525590026509503074426326176871047563121348324135174915623632338538968471717971350776513939047762412335269546412019032406786693977417931747590025678599508718790808454287786983590809341424505830426796114215414096299338118503953932458054389284471148031580803818075900662529523413728816872633035527824019118667328094724246515873270172773441640229279291309226359949202980792988341809556706257427622753230487827965365986843688174649034144247480026870949815712366987536181363768169455961285216977546946374743078267105612360198612412314497547410945952920854357605872426493657680633632695225401989722166325165872599222678379271334971230773256804474811406067082507815074984552549896059640248556613183243338758668102215724540408218616194101330127886021481065996533467229059544759634545220973579587010177021367531173002810930265340140679812437756843922875954043033730890917421151565608502341109345848047160047472537825916849786107518152446468245319926159788310927489383604759531819049594969619402609427855284861816462060404996943262953173119931610526911479598112536143454439113309752272985934666388169700003881428091493511843023337982328218591171599730442854847093796297113113639597286762327908996028508807333790583009306015850601435958743279339541506631312884171608083254578012031433937238028917503131537394881253944423349504662389843576849538979658734211016396884722678849939506738682276236679548010028594869941144952726701187006787827902843010281872402179912655115894747376969666081424479130377850614741310504716826584187726372319726452198524318120879013627120577673007533018209465362278429110391429920399729824532496359123163041026539813361110471140140685339311791937733321524514045909074430747166468624895817513963408045635138423767287996282446002051701593080475829422591265483274960181468496720820594268158344074295994856549926707306387231099476570063742398373639627170194424139737128525532906348649013126331794642337839361776234424919831781605131089694005979905129625732985118499110495651054026037225652901068270021851767554053912129554840254565154082793423875675791862759375122350635604355740596545388711335718638427349526976621333109065950871102698280132401919896250099003674467040872808214656197594353313580851836298625077532537619925021820869787807993388881475857910358847304253018582114554514715169751477670758549999022671065141349097241949602268030544778456421046341142015176994283070078066844025888694508806009931566619457745015607958410147115009639798523639818547393425550349950978492039850310152629956680504194410624595387621410288115286969714795181877494983819895404542983069074122687687847404374487547520519359174265499339273565254046715328516843225043247659447395591722667587872734266203587945819454823991439248526702507396186309467776657816118261662895332503325599339016365483123040702428834165108996171745396820434792990399293167114940289999037752052577664150302578952304766502851297368799106237648955998977953493224161411798815761684099785786436161328013151330979825316076453496710338430730132656760353363129406435040640740577742342684080797642632422783593601810192400619112918188317604811869659075687291847259148558673710869609236469852304448450214198460847062141616010817106354535652526525185392472579960860373526122197295901844531171569732752668694996295822358021756893917402308831081092501592995604010579070210844088476126829455527493439812590038655873985440458463590750810568210920250525170540349232320549582681791680171828554274959567888571482138488609926251725901283946159707251607844065649683746254259962972242881294416416596482497020522834867547285067201988940086710390117514704631913432900146891114843617584019648778935206750290074095036599991185794384359494683372855703434661956933658332479402258458907337766779154266333588909284770003532672770824867450138593522183768454397778111394478803563828881756210708309583220943332603207151470437157328833335407761344019144775313119751338580195063287953600869326050570420798588357012012634500499627763114151641931866697819252236412650597994004115160701274022428136478085908775459665330880678236005389244794697802429197758720500813308389684968115347224436652358774280854653091883874632869373296045218804614059640485330070432537618754195529252534533910721280225326763336459199152031514710737414694839161935936691952069845831122886457126483568376994836502280741452585474472089139779516259852862874744425065179697405662270276628146103526923419567910670189613151198388246649422184673656538929576777725717193348570455348370318081914490821313052195818835342766665668778340908459290678707710609640705175597052275089076732309355365710462913624571019078144801939897320766711197220758567407657292841789980960993056913045562729910551249756818478418414615895657263486511201148081768764120123990401485298293915364563602720494870203487256511319913018451296290894035690559177346897168911767832758958792540992854723397624561964719274020066811639810655529111680079601887097128530724666047083443192608291567135768301621466705247368759716664176244139561950222097229195447467378151622156367765449879195227303592730255561609601887680339489784324465160857548756511497750716593362897352074476917525238492975450419481713991702428510978336963723234793821897818716790878998473532452851556509630045636032289014731245094398552740284210596781143409909822335867093799220579091044483651161228396168727090550601285630145716349951805390799581325279683670950616692668972896337261933474393270453176492677755257721865425724904359654767989303217493944178863068456620353828983550423384870394726508898202137622688818535936217621190793847935055610492328009774221433011496024841738915591771160490640441739253407301429484599126452228861806376040202199949125083382727622980117494205006353317717861839092787977659016489768571436674089001981535753051439094643340051061794954125235248416279738205874755110685766246720189163912318097235655918484740035625802631557306206036323021267786935004177265495185691909124707441936910666012489226053896141016126736315633116750936280847669114692465252979145634642210431229947618073948247879598141944825629925768291154497151707812253878378751018092316385406917375803994485061788461507178978744248931016519145227298789684443580314653172416155790498219607962432991022714699706005973654182241849205622558140995274708801116353129870944171007184271315027889103602774179508316856142579029131392578506969984410916862983878114852046397379668193658058397203905932081649372121904718094252064255949721389294125932297470937730687971386353354113292031086144292713301177991063674949942005236390538343912407258901655556896507760631618266812969276947856436860573549854005472996888176031724140348464467041180336716005062176460065470790393760336384510486572381673324766940776906893426793193194611648495038804240308881213800780211900969324600167192636761879512526826764711374199386228088206991815617826068694190813992319184591645316551097213022333389658124455687011454266297200421128175005427168277534644482724675234245453569180643081788545106817787719694020116231664507735619603887408364175267421330804387468619286925916367046410955376091697097560467494951558392840645130836860650575273127244408800414957661969536128816547431087618633456349804189745200952744556427920973210304019406746048705298868573952339192567598642737328327201599866407413634666401058368067203763199311917056528064640999493926585418609280168097593534539250779463662662447015364575905967036358155477615189957467915520577294825396952873316362941229594890514218406838575653927393619458035847315656395956157674190308553503578686711202424533958764047876184646348900321235389008751616712763527128771745424339297175588255624633640110771584867029063142691854534968471900075888212691954078811849704455042992455216210843724632730983857395206793601272583388029764789388762247002876323381416636541255397658586298068139592479381100366661950001664044552652199087376035855415160376133970910310104995549793923115681911934669629138889011674081550854093689043598089306336961408906345240478248084054678142496578736647575450526823764845403613029333794903187142580022226252374833845549992013293493673961408229513944286400125440081413822220721691154015205136300205756597138150910590418090146792518982408740936058426313078551382422796868082465351404948851906276617136169033532183321807887819711142371598092984636579319221119538092216135023910051207815322803138369715371497912481752991284706354194890891941589198866186298739574691744306754146701425479936670164613280129634518118731103485188974497300560422230142412162394009454026578054177462795475495996775131138589316461079610022703400162328197853636457288350760852924914602945825274134184487867991314930621402660254449534964288514923757627200529540260354005068822806287536753962626952258290476671673788751442586815813158569244216619798646307399359074842466929049618418517373922352232659391159564019119449460332186271534752004456298550236232879677969308926642754187626940943095153717827089689224181795108571390212204926444759634695266858294044383972267894215544306748464956212419809851769093431067337052265908978239063360247982495336424041727861639237982569202014908392718662030364910768322196209936011253637001769185408279345979390995435402546477914566948279542198690414518707823981938526748267022691673403485612226049060351807963652341334429207926208002992405808000880018371899300717660186245373381820452602034728506261220872314792512040046524652103273770742255411760691906292605634898400929971966589988930251595397311923396821475454509028788583816818199657772319845944646055083862804387135449760200531290605763081883174014474490698337256325667038205740068360589212957881576919062553158390074636428039359977377618792568787585887113675572554974966704402216668494402880289395189190836739026309367151989438658281247444798536248618282024242476604145139353860659764863078426514629365085403782573232396469168726989213556496990660606103499121603523468812778807281980340804469434162075280319124358034670199681952736034657416241462560258159040760924727524521370999538351955675789084756079457807220768669520670864107415260674613100805955731773940626436500466760307562284031578357658213699461504189707963901362574789962787152449656562149024408337101954426731795585478214960308298566040469367185170459732541090375039382774538545051933882597926409152289531105787234400626556351371183636813737904684778249412695761842007079730529822383641136518459586020763172153639661472775726507133540934754243845824328876062006202679491852730023352719962279656841613318893713523071970166844449920235900579238567534421270130998862019848868965861122469134612044689139004365888013297280976801687762199987147754821223453440840645093345685116678296581961569363397805499648670405809701961647029423552546369524628860581752594404748079249473091508834506761947066103196756636662108583466426906697947752731349199509827005553172293670511814794718909246971809780153354567397713654889879405547043068483600830466997419913501941739039221834910106352570735999231051589940240327730008080050173201362737440804907940228243496951169172482287819759181478832122817477474671372696080715470613411657968277996757304939920222234860980312310726423948815982394392251957165757019831281345370378989409636371673834816714185198576629393299565294426146648195733610839450018557971863855537223418867124199391641464569642393980387734666797562274908198323976820259447656362415358045491966965614373747289496084790984876726158416893112522868524080518175402208375681433567003961415538227782936711239979451521208657888051784679471107548879473617714027901990529868412414192609388128736686725877504636322554092450905627559773602480727588760876074468407663056013513685434526865180900773725064154917393079060049996020869831174392919338097204102310859513524467898778175404132909263214195838842687551129251885473517428521299582020764259114293066009255937372701786656843225570299671184277061107288893443074217132685783595538265311018765455574753003282488165753239330948876531624008792161410747658787925275492049557019644505321759245802562259708701022013841931789012726960773584768598906976849282918294813114756755863502534674377385912397769420227429186563005821388288748338478999229777784912606495824956885094712840687426567883711745400704574015226806625680790340523456774309086592544808075603672603459002247346054815579506701569196158991389927290992337145676938313442264953607192223448610533204577321915623076719636751700326875714720627598728935479097696065224768684012738520558693391865908337992799559250846735739688058321480455940284044971382341095843401437155298152463047981871873354314085979346086927284552666258333846315598259073271621425631009389491391740968557857674317824517532061256747874042772250773353495940128384190505062296296182606103937808057436126610431696577318290322065426396032801951604460407805984866600018132355527247834416960751392897772308601828578097067117098908442146420335812510357657813067551332747743566407567654887115807366996909731150163233898317538504861811099012381577989060914797149560828802630545517742925413316705667887584152903624773765724422807617843819997708930064089383963252433226079744428537776282696329268451292155826677817880549819758405272301791069660989183806814854552385040359324832981891548797065210619122986040635995922334568306744295482501864947346830111352291999602426042410375080645360226702727294611534007447224897880543234005276863309147322576436416224495316404744194775208679538572450986746201200438621626235159528715561005495196522227209252777593684034716807930462341895858716512504329967372188893759678705946927297376373624817555914050208925032901666591127559747623521332662366189562560156387372276446309082838519819994467229365442171472156726541541022426947673168070389629294103487548843024499842822371237787061365578534373721530418476014799921055311405657610357519981817702059398863610795992128215411161818173333391794862224761692632536272509937133030854385900857553507176664812126825952960058261879195459041731177439304451619505288979205662880368588783146592005339854005797117709014670965628736457039832153929042660645594385796777469357536962496249508382694366746883778072778646241450903332283614027912025762516290877734197039876297888817307113273616606681239935766249420310022344599732354951180805320087261435324058403250410700787253654188105107517691737133262067003889950034756253773842757733617842343411557653785141403499248490866373080048566139904739527266076730070381479333665766076517445445711154556671877394960512258451338554064945660925685028906179317127271313161241705644812272151465976474548047631661061213511584081047182743023758738691608398704403462474845894093641207653503801579654681628470291609223409809410463165333589476684598647378811561477501874403813091812030684510135034640516035317680176890608788159808327127784380549649344786598386635438859848565899920872795540148064751596034369112385384577091157669624419021106041718241759578191665647316646143127129421292193321697789672483371576546710658786635959164160207079560491234511531257454967891022303998453242403037895732827779116271384956094024363168594361291279133580254284559057889767858280560272468553269888929894722627120262037805374732905343439562953166388398835237748588855991674299990700648828962632010079620461189921858872577657348279398626770195401501003804491163238437007336228626429732283409812866283520878466634084978286453082844392446548191203586660405722326740298447150743127438042480046949853653896325322155776949650916985889349201091827351625630812377478707556879202648067401987894655436822158676211503027653266168306913594581568883261951347394701003130318267864869780064414954791452973406953966332787851257529002032666719730313136086522544821858759556093531469275571373101363196065092384296263623588339946522878235854954050242018674039475371464926862294462190406500940492759527072991369252516846845351898192528974839166755717007215018136320120597239697708613993752829420568914856814530793387506423124940647785768407562182018951494349992540514254534900626749682096817255082496450437081848832979556868261252073664189474013133095396185709761247860657309371093841681375432173497244465705146400673761078582360887292794067972935155074354876050533179899017824974489679516103068454548469340196759078381617011844827214429553263314838756989578444706574454119516739909881674719198830121751612815325813584910853862738839227163991467591688303186672435745346101765133548685312798447851864111815392434241273599955858102248744178510804548085276998842151370898053814490007711723870778790520861550918054821855994428298519940215284172412595854047963450542142834633317141050569025875829745813247536965298466307343935368444122566244103388757950614797975291187587826880987541488939171799253053417720591826608049306966192785785441678517323777566390617778907926911355270080862259745323619391843102905637030081892069604222336119021511946316873823136943140145258694909428412430776163780483919274473852891197039278045185940298008774131383948607311320993901339940223970219905095978502810743549284181243476238992734351260559125425852110799760000951609722966542764782570245979392525996500496848286551793549106068418974037789901586236610001432781098560368596612375290974176535583630962999184573618252977089109087342121788370365490566668336505914960018124009441899445020071405016966040078902065589151899071042391524068848057902260691928236841219882385018118959865657542016155432350746316252215796680337796439438313217031175120617068149237764626171417866122768713019609684493830427127891023761638834698918622079447508717369035223063901619323264194237204179539045196168546857188576646228980146822594036664225304839174687479754863949941697335870129195256142003382023319167252055401584910353413531586299320577163747732275427439313121215765141932117057559826230961202863066348497590791524223780778651128326825378047437667151804020771202619007959184211315531074015674025745999046866741765687689840958807135056136478719971532675108286690919676203074115231766111484536674973531993487515343211435362609075503842672922930109325668759277654154147347922026701914212952885145880675486922463502159567194404601313491080550721211311451744521509886777429309368128833403095091737507129273879962020361388822223183659974532192481460601305980729130003861034516594888226569273021034748503599462906558841547182593291342320136138754576339114501512702589060173923276123810911348294347053082320238707971628269080846619593365036225218682725941940894219832804178289232271913036092573468634683843637933061695410005769036822384396838540393784676244057147734106816548135110019132798711120187909301124880202706873884677309057125550146295526392006044562608645026601520245782147199019467369239307536724471960523751071360813903552045094741266696923604562959792847450987868137050775857959523489757005630023250176111481309849969793720409688274085125725254036633854163294418143611698009664126207497785685241246758707569312827842855579999656895459059939406198064695482919007712614233904282903061561831678515893136651760990360456889972888725716390802001480524917105837173298357257224469220186847016436476780374647298278778572090395159582916829008554979928310968310981665877360507487962725998756363639209501287069735594812098134172011905815044981551203360972853577830940360807774135303026135556882485413846715063473170463459473413163305032448632775530516911058351850102671153739538981330321993375143889035242551550778239878014683947725808814316958901162990208467832559814428710682457120246491718454397609223075034856062149495993206309757279915232988538366971089681401051151943580356326169199105610602709432942788390018188812963829083872646445196233532046821332587611529607043141350342817351474413613204130826124984118136074191127928969598447596993678978719304282801824196067751046094612804049546816449906204099582426379600605207132194959503517181872089040987693507036420444287522743453945356485419623441058748441197683089136967393654027361321065174498551758075646971324065434372901560038319871963505244272356186752950045643488483127551787083479718092084576767208464324207944273851568966359417987761769709290950440953385567245041303181733892257420557632451536932067227447374648504584209166344421570446527866847007009384352454469820288342540612113517309142189941868355035355690911040375847905885819906129703237605485878126537438247919326165689078869746655484227917668880789825176529847949877732876938987184009251653602989175422227491921927011969904047634614894040218390372118590048170763457476714976503423828450616661212468306131574499493781367055436368380981997725429060050804456667564466917631310643619848571127994912525087353493103902961749922977404384690112697658187777623769316403023360569963966437259176214727906624743342106152504499102965782057312149394215265792216667400170264034595333094186291222293596403552947902449970068629088985904964788980729725041154569965724827570439797725724871473699421834374260828374754108701495979159864947496405921824399740127815653842666914930215866558700948314391368909313325606034516790703874191528083034993844048513447853148556446303990773924140290335632502120829593837252104833854439816073575550624800578491743028505822817946807502165618333646858096275804386159829273925566335799071990253131898278667153468494017175766120596133620825046419801702549785207647094515062031164665633014772684572517975406649547725833197696060361664852557607216759436635829752128565592429124864699823554712240829179916876053070071109473461464320302458157444279921676349530565592705148163181342906961669716806108864347037959476871894658234987264977643025624950986004710921984514018251009915361059327393821585344480924033190253330747454551612862095335525065022249182447579149954132976512391654844650192050672821899669896092789882322088372865373304152040662027140560612078721026436489589396275022700070191763101439774381106269645437119019283251675044168688987067390573767867011083440703794519625172355995953285909920697451459330963413778429683785027198179220301436735340875110746863993981674984249230468077156784892098859971702784443735123341827444458201657591844017763582438900436013620054295891456888577593309480171793591104910194210982355532895691739642436910988619648116426445066894179453940516297818006316089647353426130564216165579206929462337548787843695304046501271799398707711981468422122331116850489258159345821535157451013212885555216688626176166089395379887339839578266250259587853812013268927644366646859293949047228536355980441562671134237952289884130390127066937173777127565250318328538711900024006009207709368182560786605656279197708414529832146674691574915668338157767584927368397266884289884862259563282583334919612443252597911295661560077126888506503770419005339070207548453283519184935077893298409212103613287795884007727105873372061132928250427606678424877467313766727478101584481695461524650177348292630060545984610599399901256385726375463525184425786344856506958148248901561572270337981056921754921810595224624045774787558910388255849154203665698037951822613088528042332989882111024492943667528447955510365039752769596045719852589736772023887745864508051541963293948917619363150181170422050776302141771267642413364528396592750347769684044245542781798202590414640649189483727369823351562183426521065742821116237878044656581751088008631095953739498492020001102159059795862111120486679898841517681081957165726434829899564782301477073127561209359300310243179982898352690405807107352832244753294594183010718519632935753198460111826687375714348938065692088837846663858687948564871063490055351009699010173473934058196301698623419989335187017294648566022135838478588614936056594544302376287902945481366741841921003879632113107633842482869818219116631579285472617276833247809235271718513444512837486586312069057485171418332384645558466749812482501525918663086128523972936805958481248158362687874495998701825345712712027527522410408950948265485834349996656138459438601934488206308428837009556061436335028936623963853762123832803550145835210613357756066260245226811770435978987599020295491132939684360645788839674593816625865534204039464954491318035486389230066329728885417963105179105426998034005520778779755059767634349753772117595400867038118699782082001463181006673713937492193445133497404617937582081280881758556338575773901108572815563346159795735100695575913255444020544805268394486461246421363990459895618912919768043085840634446712643068126054976475714858887031504314551685880085477195863384213410450110001476714287621583580599905781926392815136905474386228984495124417502989792806093856470195917909815050244268355030942148049491491642693229180388347538993840995386443842925072839953347003331922833778729052561970427319471216917869214016246745175841172063173756819443257696932661040491631776787747844328484257412276975143494555379825013301361663106383493243396485011974559579984684483156280241111117149756944160142889023819610311671427591775360039041402612805029711850880878170821138002974632847695689356677643504272792651158339590093630953219801952049500540711873447152845481332948400969978914397818514925910831985516353422168195390375245670421795266972888005543168609335702484614459468482124280706024929798262695725164994931095485376341841707360119107657583999973657342845069569866828628442965999119901852340630160953923899630594850444359623674745270371202947649846617894552084575283706189710745950049264007887142088612154140087020118265284229388706753825184745391427123239280452161754822516848706357103025874304009443084296380249007540843036482816073350944209542212789441962418730058100174238413977355477904409020592818983464549179231410584713512314762671779718362790507273757189502782086788007346163404555404952106126748829362856268190931233853559698141078129267210492257442284143914064670935121052572891386305422892871362423229282637918596676711122792769851767610422129894329986503425895910467869626299403576073761098187690582103623547154216062834558414413260871918656237858113874795330679576656380271803314105008422808878936258155242658759010048628464188217612818851781137878688824236304511700486402971959147935518667900698186039526310887705836662394203896348710417936085898283731785794755419185209802818129837106401248193949792979348570873983969451806475226334221318746588819872856187256407819832752383722126326616155765826389010627144320566318898411200509214180951785671977192446404678218056180762278904804028772030100318455314161250530545513081801540315332654689139875937930278219721577067520801664924587040269778766428986560733627979282848311966680420275994350782876132634318999044163657340734952142206659494481381294530603362889728936408309865898888737521562880225983179415108983423082460955694743008411099164721004863576204129990003763329299851342496545804758099342791121643387222752317748981204871810994628421063021864859208105471416704065273777458014998768150374265348067162592455173378697541520028667379503802870592805195119614172009841027924490980166685398892276183085572341256842714680694190631238970149679737241531271041711375680708463791258107552304930715165457620707422321786212472183414772440059180159538435521290146920605513092510401748793273274470773783982293138055456800466501422423113200924748280917561211653384202247560663630852468275200575736367157574170767581367554895209598984102275093369722133563759375041689056924495370957019088586407485876280901888303193790358295406089591467058081607922183118256063097425228652579438222739540234527887573481636759692028026832343483895003493514994087254184598174031064332265791015578749513840407542956106424017972978696629276337571192595125644992925980662997309866732642552756137163263880678086664396080033034287743233381049291596184891176041006204514430192263045286363024755880657759987408486896894062047915647866192353625516718027973651520814547606502190511580911421063562711315388966826901456697391661607176147453072412310300244909145504104941739859865516966414465426346955738322302626248139168066407970622757294996537406434831152157402398889019639522792338224498666084381869954148201102295316016269557575641117141814810882182028560467060235845209943125639777780410561160187932632031830143621168264585210913333367493571415877545769452943229795022602078635894481842206632440734945895833882439269467576074517159486518651469871595467984259658626505494676197943448781129433762975973833376087058013036290379792702691743806083459667736579433730491082170773302965943809486591352347854449951347825159970364144196379822667178034528057357263455721476121055667963606713804318922204314773064673030070312688251854814397092611691656262803464122928024766097600642095509364467909957928382454495463607178815603578800635498919516305775720489085015097284135323556875601946994824006379566962471560563453713311167796345244561238173862997285949630988302667143792142243402990920434103361425025668620055880607443337317899099935272961302830205144591768968160219177260052111215727267634472334994950280454434786616071237347121591211719758973116993144978950443016712372813500625437711121435714351078595910824689880283113057657398301541589978048092060759097699123265569919746777229669400895737408366752242955130132398759074528253612620455814710218174612646114361985155320835837604617293508670143061163411271425051938169924043414796140189142020865250358314476814129226645271526960806417439359050859576006739968210386147124172449918732374744853510334082141676086407344118743071251580287282498491805247429883405179409577184039706762248692915717300322061934345197360770714710279592431486404367000463901532908771404638630852922279791074412573577612164784710617423219330696845173588111202046493112916213388189140288208001207551027781768937713725953736193894944797713586731024565199268148089764986145986501882462876255527700963972733080924240550504841704606898653698451657176003060056823113133255472301064225175478593230951226916984919508608346502775368636399176500318986997122563784132815728538508267444700640693412366067757950086277861747641403447017863477330425620780125202039263222400814833435293036073074094732929737931549989093405233486662765646840121845784929575858279446490286988493432637374882934655613655588753555812992917155553168031655173715314006697618659216539452215997534806928899635831284932551987542410333524306139142290295901532439947972946964284912954244186166394440976109509924270215179481412263606572496660968674890841131332427451203386520155247452479673607458265297546978971601214593513257491462007835766597510184641547019581744309238654518891348439826676105193356990264638801587023385757173028126259111435215330087942735127064983828718463346901293975068724169495193922972545774693533008169938697202768158523105162034094014001223911839258490762818179286744462362165460822466064236935397988490531284552591271222317609574545943734731194586367347385016248047988704293074789195645196860546760263720163065536635994708575980410516750182662980449561227704998645436323977385606048085208985844838403670806614196236232104477890080024867560013302399291312568706021227588383562583953744123728045601183612594867165187471178046467178686710960513435288104823450797152152330723340037123666162099395676992222465242428734821622313581923175379434850844970525412752617162304472002962618199663984767952295114813168890558098170072164437863086383984298682367383535256457898993478661830670105656076439890803697109472525040286695200383225922714596303175821418091493051537990910451802035363632408917578896703918304374265409859270114365168839420383216882207112375599604290315348807081081551316395030547333057323698956593324162892705651418057379232358712182696105628301156783594045234560208762505863063441519534177957156777106708469801630430416569516425031550854799377310823100861147629281057842261523118397470415888310965257402328003298527389782460894566030483222305663828505287432829384797891598896250282530300988409950850286944071494898034053924531155375846409798765750293065367681678316821087886897990769994829556764122735038104024743202968976731586416514943469886437646099396839859982399767234622109769156353314141457715896914204335640631489476885887108344769564859423798780456888783069248874589265932256898787702330537658485589444692638100177887105904803491140447010662647253583868306921035541439819155361588536085510943700486553785338390781331559195262335200818964964645946416996866655249335624805105777488044473694187516639444805403063870321705272962805801004480240545014036020756359566690442762568495852307734806516448849482623600432377855223266195172549109784383302635326434879998982759596058492022740976199495709049933521386445441161593060760178125664557186537575467923802236498030333271234753489461763601535732988267285620460635367221275283629065179039478653022629741666981328576767242941752217474617860785505897152716145592604854732350728779996390425971779297813114660000912337740520147630138204349213193127490669266410969598006816971470606373736912992862823355160232310193050616651074806250590830251796620045250447283670898076082586598187912576690441278420704226032624612460443984809432830776478210615067016149663776125134150602753090700645683860920096813144811300027326279347586914875978211497037491732491205103812792476880609825391083395997971227011559632563935385961989539177775672456761307385202514421581864112762716810193467094081982693599652764203690614772056926017870613576733011425609774251655217019737811297338605757571173718584599922626999242283007774275741412042733522746043081470668753282090062873062802767922313943015248329363918427140881653057510305964949636909569035783271214026848352224481103673627958811034530610331255226625584875243669589027173930986923182276984001721936517580209397203501121634962225515377911090433772891122447425778181673125510792537487874827568475365879840183368675449709926305933855057265119717318265610227788549457395153679519671980784135168908497480932095225516609244982915389061933628332922976301221147569200669616220594526510623142035072952053208569002863439567560286951418710099591782049152437141337655489488477932278640664589602946576496510867771067554527193751860504026591756543425793572957114293560455574289725608846321887785211555431538853517359777547861357880646672528942481928163806438469603986498256727400934422361550254096387010913353992150170161252386715376607722763174118546238769786548349658314559806518456544374942449092530213949396695022844570059085304053369069095501442643316655144791371407461718058791038838099998240341759773654623948006284355635234528035237782101426229457672436224521003232300053334215588093176242373636660061022582245733972095816547660654625496503818559316947507856919621621033408834393557563818154987538157077890749255909203130783603427858225402929928874064418510440060165255298142587155209256066352883676130597225191614888811718516022257698074524880575741775165309470671926610498858039810268863218480171411538350428473730867065125551411184272052047756305690539131191440982048565833129053514317235050366527429281723866469284879379041088637397489783047928873538175944604077282593777485435366307809716703871895807583172092943758044156893436250986765722318990829133053410668185519655703111712771022054307238907213736950033817237060744836396825930222293686249024887394780987871962610535035131197182255957085080443362141623858187313159666868038371654885992350213263593460981868948732057910968023678418010161378348276676956026399390869600378627394789851931750865887156395348483924693702526117217499450525354333082365517002388971529106441118568703504766981830171303015436110213157239852941048242423604617884212785487326434627373136657374617630954148886987708693043008778050438362042931732119778239371867194369902949307445837747391204559927935191528006334197155628462345358998099832716830555830809574402942681586352415200634627394260027776152266420636396160561897757281445088227371287675886106774854267648889603018692801229370440266712817861341338890710789715434817574001682557544100995228038977599163873938860637779827881679382294229345719259100433349373652808920005000968104844941199325376803950239969463220686118198531651639608018073991335067220122864487669161960680119904961150432093317357190624683274168690975144173534925510342954527390152696473483360926347308124997618769452358967939995858501939236123662770062416113699561187456964404871490588688419846928437874180265035393702642265972280049461973881001558327064006294698012268390217230950304535042559942229016074084955138990690029030294163054733174915787919018631674386299249442325343521356248369480991715577292623491127474297374471773575555741028956221111588584140990213699817932352459433387568204204827925216890224846787878537246982815544385796598604633921851591997261550885409365595564639056200192182596927542303190518546635809758639364459481561998472977399755528983488134234350857246576446238266306363273430517555040265856741187550594567144575074057598479459537200994658800639254523963255032049536240110531842117218373998817012735781853479707044952974964943620508134084151118129281411811791618049935588896375163524371820408746221613564918135532324024510241279012178065050021240308071105280829445178397065414255743200017110811942675416254360047923403638968764507816448820794209714835240087102855330892716500740068631344399015306443987206285775399600139758168570718583670947022411620223251001982637630555655233376411523731651128584457466717432445184917657893416077729277451681800364292093819086101975116069090282661861169086353386437237191318879542177169772296109673993713941370755531267008074502764358277521991543742537245087433524398562065490604116847317584699809332746574406758980969396421726830958529270896647830493936161131695010241396861606602193386831673036960279882503928962527984864871359312559028814775841731069804431144992572693633420619989251360131569239406379762182626338327982992914766102521621141294083474793403672438721347753286637296252700260125562337555361171388870709967554114713357589760604529209598849989095658551146669230016119001944396834870642352984791634835003872160047336285279386903679452065857317815633665236098846677406420529871345969432104392676437442727330172821592456555753104749726054708567492904610216122186013893058097465188840785613633876807103613148105738018531502522273021790658789371290409171797217560243531914719295150968756701411166054139255630764031404338369491447811519147375916458484557434597320979833259825701041965981320235373583858710573726602152105183310231378864068683717288736671571864357659297067298412712737546611169818512597005223013083491888757343712867508215711852249054727178812498792110025595089719833027356185693020570339013677599573635050789859373472104815950687572430149659057742176395566922143378196839840287377299609995734351633448105825400223448644772945525329458738713838502963053202598917937124248696286745749382901394357666713484246301302118696788275925738275863662646738487205629280188554185822243612158909162810723256419251038832645609214822948069059617939476152272714834915702420180248195069180711772942400999912278393905681972377637879622099386226216780426745204272204770289151241148220229080781623274818312006701600438104537027558351639228109351741108753492035962009201804750509408973657173249819487289427701243327339907321188303068316029316829526624961172771846504656219895381089955209672109712558967190457907715708730939166448991567090459037361917589452740304320093605715440485927548828275335887091248194038383363969458643433241651930278570409851501283998156174426088528163903644475777746383979807173618202382176857173341215155332978579476170889630336069038510561591399700275811140572769168228186216996397715084763062080770209387875320427592643229346650474719644294167705808939199286251919759750470068265284746147032719038464387954797242797249850651045919067804203886680792089777128408303929322998080451980473415305591524237462967010697038991851158016099657854919877167847377771644966666930590622631476361536281164591885522585501022516090173717011866243712619539455538584553957478859300192176309792937160883197432850281605579957301148629378745773796256163640001394284884794618597326477146478330081093131621104054182864746451205893151901913892171767794823203185546306568987910086192544870060685497519845122925215067046781608035391221174475094214343575088916855913391440749506819948077609985183871363985450368806424954555731109801181189641224917897590025398439713779460734287222899576694066013043766465438316676631913633193820822177018167501202334606935473321606097928587845412574430784673422021725270552633678741535405430491554677592006159848573223071885237256032241158194224888510643653075529252746643318174899138905872457442015115804029876316571315946044865211153068488868677094406446559921756401025405722010577728507751675694575541214852469454018185580548553525795900938021590560109000965677292464565862300517701986137434673421018120504319419110082867133952259468983663884443588364800173263419684005106679006689553190681065005467280736974081066204695684698121663995848970447943937185663561322770782569581829981646401345595932165230271348487573864090455265513656306306558050529440224091253569476302654515213521738757616016406391984661933057962766003810469196352553568540291189520495141739870060115711726604185298054095408556672942471588083343905886107961350205570550576863342544899003093185203689027695704728731522104436839960504548505996231416043781150266288962715697054046835221680052559434339541635729919842429654748853180588053752623586281102898964026758912760864424158740136855995292262630280180068034930904560199235848242184116513389898054786213890841474405144194049532227997810185793005340238064411730878313747695169828943633955332268629590411864948113432152228684113694236765873197746863260986757391191558641689478651123886079519261280710575780372123738304116431092358400468474388530322056100884620802474751169383569643706737592440398077154728589978684681075254149340722432847236603645655986732358514049148207864578034547509488230971997398449421457321512309149985479804577978734860414403827895309103929078105160038716221171657378323005031702065486936260368671987312293320895589064858056060385691065708835269417922374759228608099507914697750111142066043772230489477585656072983201139086173440278095122959176874658420894040556964170678513428101985919879264509284071812635406527950950759483928590939922817226551793200142997966147410125110853639882323592627938992155873993626127869961188316479646767358161373055614569855813621311511150646456056614930154500538457516520957886485984034322793727189242745460177833975054128371869876239596433159992522666525373612707478296322760568433612633099392962412200415322937485678825695589946714063164285937339181977777966058218120231484982434197176257118976195480419738727914610001939314065774071490420871220226920413050038254260418476563430284074010099408547049138186230093925525237101935720488010792655643964172351385682545419003410139643795171215565772019112355801856658805960154364609383480525562008451706888223432951614625692348453764308494965861835119299075216748777227476748800004990564062747526260415543065093435563965149455960751498583504965048281979890802971741369932021748205451937782410375174368658884707518332302131176413811977703402528317157696606674808270867521645343088920155165860630876058640731799492050169460904827559565982158165227629358683395932198429866639693431022161853247707815071739474888252368127310812807394337757292881070269139822287263238144553831054564159468488219133906611364443949463727338648782672906593013736491465548876190049844978850342202328869180087752506220629189959580455706389143448166967667706648996355567088544004051704410477938879395686836427442463056528505073753912435559274973913886971418835928773667187039672923193896835041117802388514529392036377986315076070333776192852764397995225963323077475947573132012011085653995350175704873093918299558811305047431702541303714161631909425573575839110104427186935329913711465158151038983053517243011703929254029640674763414458300836468213735728797826401370636576609867361729951609485636818485975513197975928084675487842187175321125736850441289273628193901927736985233216092793583621368321072060509828730228348799457362893261023053903525605845590797191190273949901082639243635418536128679604890556378290218034297379585693690684205692474961025268125872470079931717134730653824197421421075527674634626925353032577294930437142475562849835487218635189447858588088407010730800266753702509928665427605239702677256952841747432055289040453010946584568278424785934550596293622626493920877886574306123856315929747622944243833619711391769509666169284773198489091171295951358575838863665957695170326695994900109691818297242215026068386806645801641772209826050712925532907658126312995243547996594518051925907242089751110469340698660603073062122104023763342699360760128657499615724393254002322333715056597312773605053573764904148626026905422595969385835651086345007765925237802249062315504887596624493933914581049450603693632774356236500343783008565442818314536091999452099323487209141933834172522091484389952800721189464411626850868636122658217652765687411178852718696704502815415525924542768361100155217453543314826623142727476512243723156962817120594328199461293510477899120350296862418833567443603640872172638656432622856789410000136237089990517870639045021571378169163896000523893529613930624025534281074672878390281908938018313862269330446186773983812452528265535971523709661362723666980675401332944152874589292666533495012435773801745584897110710507628062888177309175931295633169605668920356532788203586318280391808384960358381017902302925442144159058231199066934163991250840486025974388355655444734515800612542929918415587327686505106274087114327306008868860148522035992519059391614865396453349886494593975297259303885480371372669533036763896408183004132427829668168540117782836306270810438134816551937082143721863933483430353125669215289074099032049591087951496885425602202411651724063158498247669498327774873117407318210116957899229503389792850294109863062819301774701558117116916153404057678073791387660558631665460278342922007641684930254611781532109979657294926914856373355149309176165437965422059136037192822749993857385463274589648653745388861677411810424056547419171882979762946156112009496888141806819133276210756186379842891172104794894802205444249687796877831500148196362113894702269079258689246909730960182755771852395897010561949866924131993012484270108477806688358511373865380224205337320072432798436058771677247418110321844359222093465601209961242251561939031403799123478402149563873831125226400059502268845555948244473755076158939950918945472828636130053680447657909564137997766795575788165701441806994746125285293475538735148043151763892389691628928349041590546793063181291605583204935051251979858268736286396195507064474734154252623431213783221241400569599683158142371273200009265551967712378091031915469483711979923645183473388040106618327486376533649475088458184454095248239441897961447110247515306202419077380745192498143446285986157718926916873419062806937289492757570679615045701242416868555432453188316592853972632485155617132186583800309903581225711210373633246869829860356999687746913276756118229778968927501765099159408820348298970714621890952488466119412081866523808514726010088894903003174514473113921026066409946569294897215555190895959899919144052307446308064001649845152441647865203947359689387539993597069508556260589266293706931881058211602791373787123128446868625040269858259851295690402663698488049619722778711239939763666396094775910052520740940676333661907156689418007984457531873912510528596167054269885389648981282922582834344966410297068755089034543394375463093482354748801205115029957789805032012022509446133384484146144633832602852650869380462411955667467555186565413025368411861925575082215119851622635928992423979442722269084180444267191765448512431063082171185601140165655076011257726360037075739964611441346517416147058018251883223400378955820233359135615557059095652819062529598493261408404766801613446747299812321394563579804680692643746493000827716196593039274792993558569063954275602750651047981099871646021190854035026713489491558004913836364788834898450470006502340826452624773344451166867024847583365112145058920936777142932003941290271607507516344747809183090338474624067454028462440574771882508944023449004484233818168220832550633933273961892801423823804954750015182637047140137970481948203185611927565692328040831140094775082638729351455167435892783580676121327884189561600378354100316324070377586355341593146336338984802166514751164861837129542085291509724691880483086231956101993418596105261115952040183030169550291520504161743995941158669491694874524257408406970176403663892996785202550481042624432791067089287865315464269548619446947212280213994991029136729637351212481107147255477769540411304408898932584277871813473328336310013227865618332011191863103324914068866849084472631669750671799167289964161302429536532868672665932974371132789416957507927704578570012611662853045944526799006796203445504767513555724864074973763845185856984896133136894738194525401714596951525647002461813956357330944974323290599624844486023869506192873499763000453254186369017348504709789762504437824162878533499199312240134061424280133072110941626857819275376691536111975326815049403367777819812697550050153011472617081347271296997768053710270943424881555147922006143604579655025127814436662842740623401977797819731556682478504226424560625499620007580136702066169892334401820021056632561952306750608791669940792893902624737183588019629018389864931818655711842012206182638973138504933529931552112323811659078202179416966413921457367452680303847469741945812633038081299687266352521048787426677115117733659693179927486377987175617361301182391631441303478752370608928737557155636817561113141398853278120640040202297388479583473609822054746514842825479437832058825546112233220653773955881103438332460276873526969844475951586016085499341938231173218245520705507507254518501971036640531517778774701904724753915725902402242131234423849387170888353865878962505181795602916327858040591232836958646965844730168400771870444022154240365133981280176470582875230678896314637358431937444416647297912688482635253015647846417688991211124279554707174486171293994964316174739607095711096278643312960877534508424670879907015569066245747326590054560631447926751346891597383010420631726095717846286853698940064488684427211615580518687640587299402077206317256154016601933304797133287361986332673228778146553910803571049198727185939520452829695453536035197282759861781823499703710553538579419288165770141877380547851082864329919442086659616681265534845699189684708403989287832730377946739081884257381002104409853647790555921639731828870291998091973269387916225411793092717718714367602478249957365929026325959638159432826409408803131288263022259153126779088801688875792441977842133467591513485187490053502734227870833167311233977185297504303959602176062138128582561849771317363681586875456092204702210875313241929761887475460389340881540127645547974461848680916404377406505987284695205749120956078597136715231590314202682686174217201923181770738263224924681224190329448677135649115565814846672267378895660095750450367497117160488118391923210512204681980977829422531861567825530585422497313561688486972736140704949465121428201884389775616106803303859082791621282067845230985460849368602434250672358893540159760282387992767221258469530183903638450365588189231024283597867863798952725089838625566931690561020695974221959027156919631426979314528865206453592658794106456221363683442407069312848743298208335463747534543828601144127745733029614974456365070812328294787556705497101965270829261414594884506710022700129226960546092918718640003679940692230772070360877250647410704050752458622752069963618470215574604201905972022163257027097688053673433868902412316472694185514665733242914402624579669225653346231830996682396735538742203416178849831181459562644461222985522270591864279491951321889657431449643537708047756553941697696633796844262856188816411261375384036653382515861263314414775701827478554771737216643790261498564579658286357833232063446496246371702477110892966614518731186002090298173913339983542782019866788820095451545617220649417354903176257533156667349839425180229008713115324266792629061299535795118124994129774632166549869271073223102408526099520690410774956666872966737584440218594962569020935480826442931575760699414764629922900987929658524856515802261719806533543292765711176155469253101527793785692735802453240994253119501235297103376544708063081186742266802727002445616101197681748906790018999569271298790384806521869138282153557176061973036511437912877157439582410390438747723509751271081459065464628594377660109661473952094554251358500628167097639642575477506098163333394857997535482004006048072981016892596731165404770110323562088470376061360557820246770576085885206628875391335368391665127064033921758677290707413684572668329510654646786678905004796457811333889148621381108259861849880779903009874224362603421921104020800940784960042316993560860883277482957236362504629193895560560079608418108312518515490779957810351904598672897591559887500413201469349670808084866786814390796082633879077120832332032318798067184022647515474494544527156507861327012825491354119830278556563107905614585084547265633964709705763900498467794588105294751937676544202270640415451669641689476415945654691104949286894575162972111405167343690654588500592001823420111194510361357837804788155768020377523125518147854724693318841607098870629906280073744026559211794687660005624687245157760777426648157143740146914206042296016955868719966817000508849305629999781194727546911392832052291238467635952466157589008554615087612642606706997665566081901026931205417168901306467823200641728818631210995014846956305188936083457991585690478890453256279724291166253172505542219868463307598266224917500721844786287461914734891569743751151848201311300345656339813118680975405983952490996595604291764949530335509487082749364166179223480530726097428426984938976110513368843157103589235982278730486299359088320464948715188117306123903678559989367516783330052663911253047302936516245753308238455486147404574592778600927580203732953696276270826080341116894546579245913705662324628809448767019558281614717060524613774800492214049895620344590178333728499605363822183086901343683769228232533581015236101401609248286798423808186088758566563385581057672181297987971449796380635891435204763941435567461899375850815363263518173714512307547172359209936406945802719402924746707301279692590166495453663057497395154061813636971100493210250502518278816289177086307983937787427996550115666987724523319850583673380776417881175943435747693278305392064588343790200641831064281327221858082556115516762562172349326190106417690465143023245643374411002536373326376492087590749629510529139674389564957432439324933978256155439697096824518999217237373745241630307212029682736675981146270332644465077512168345948627590424409456568123972384189728244591280596509489180328495792794381968621363683097639852637434889531949147429675176128467169507039695806885399026320779640376727856726003850233023504324738273029470331146687084326064115668370937556908299818176757210374551243638038879602931066253513776200192002380818955613578216844320710937963304923655473593698568897616847086114704392925878068406218279450229586133611278720405847954366041094503111194634203437935519500705031763738137197203022542064988263431897109458318623003246416356902316095176898197058264408073358607726699263578517781943197279609379998745941877482234178575067050986251476492351442668619984367569397315739582064041587462140695140845501016845180804887185723194644178936371931241245896897572735252366642134556220255480499694109566368716649877903111755511957290564506448479514765436293597340145011704585985305781106288061891887902352993076698572374892534128707573209501018895375854878875416136678626594319549937035747874833185162555320899988108574062365835847302509723461371397155821113174034197192076843398402084383612949763163567681250572625318774302306746407284731756062677337685799696154591878088098621394101706978563132335838915310292245522335253962275894976343579341464945337706254573642394041310883271593528173458021354678478255668689841011052554488695441996524369110612360283679997858533768958475773052131721873818330754645849885639461480519773632387601030873914804646452798906802659388188929114354540375285188059861598961013885289403899839748574412820089203188300745715834757380776653822547230985379407990007534383882564104843207921069189270456379444082354520341943434155506421982480400913443005006841644161247548162501524917607801223876240437652940424541868223088315911542796783101907731024990956122292769572788185258156883158133733197591815965311063684021660078495780171878384196953010758360818726937699045386574250306054214774379436909758431716033639456779758929845434208053076768806442209386976580558085284741838407429386870669974519233177102806926056519511292337852745111932337110472062546851716204613524582119231853182052318675937999399115849317716403041475215792612327564912973295661352581063886174119694188415875744418744576832038794788033248958663735715818046451915133858936850163686204649495087710086389788851530190741091297936260061635575195409540133774796854684809311329744510009320185655974917959454052588077022026433841009880496450216655617989465525027979892829033197765470988049305920541829386140684268695473633528091587006587825400033457605637825589749405608405826043299641865066770538829440656514987193580347196019540708114428968456345966229342155181885931451470676761793549389529281058273237346987436893135504470063588299922829641812523072049511884513180134145940433012863510517167165408100862656154631437950625260696741293776240741264820153622210283960689399856239407682957021052224503968970146981172115810126146055057831073292298256525001990802857200171036340391300771987250285775539395633263279585678725914012334570286558286866400716559453687725022278925407905448234912174982007459077878251822074028350798917061943422476576583774370367593581225270446349502153027614464947211125822743408473772364266298683479443786226321913141436311680826529876422317885810337683269012087812339924022764409634652409940497619418257247568842233644599826784806211861751409857867275805650833463667134880517408627037632962327906395306751058772596444169013571489984949046185706078732715548309799581042719101174808823960384519631327768588429456566986999215912808043411293409314168705423161477874322460637527290880597742462010447641627338684893290597668948299798920062451569129756307932468394279381496014771454854969725182297027788353093209080027154702321480110901021216840692674695591003507295820758940834842823233920811806464678870658318290922510747546031521302962121021250452029531477893258201346813558422553276290616436217390401546600777790494578135052735067041400194227182050626984299684064382981820372445409096999352615945650968816544445233005958669905669412719939508755287780777881495318651705363466703686690265364030272149886261167666308006263716629559772632944231428339208024487261097997200335737929842363892809450152775522920074719054149248611060832016331047761975522356117269362447122098353863600172490545951027378037124479918901897498551695485412199677905123846117090027820711045791195680304123391623173282254343312016288471796661989680928984288698446424964353571049458880227501021567682883544153970841301477253863253345690313754502086097852987458739336808043008068325042373831497283340718022471183825779916376468034145455508652676791703805722952477656408914511149746780685738878905817998949793064409973142574407459459858127520241703884158394905457076022426265439082734359712975010780687117694592672719670336885309622737218449953125645746487723342785421954481236146175422069883695352031065202993899970129098054650728014827042075987086155865678032677793317907532962559580645193805736160168144006399994787210398466771308870540432254828738495707753861664139796875990180407881547936678189542772690004877407507731480813613347998587071989640707240413748571542012633907918878137504253221494474108585986540348184947348333371499861926930079379505950001597049018187681846412648252140964722700864906474341355369502305216241879078446005692436710360626604764584446023031046125255472984480120837967878208191655851780950985230374168234295700127617067614135851842126328741309230171633781372441519676297648857459581312472105701470361981265153370928417723978514111025816213861935155938080359209510352316968489003041409552609620706957394694654102695739194096671924500088496803698633328607720809930385407350750430537156531093585600911029490509313150645050080352589121316904074519060660975712763996491698125031966326495183232092139876473293921546043408017844560374288974539325587127328841723023180812382308988650107875050807162367750090450657120451038468005230364108211085072750238763391643279326834662007358706994453068860836721883496143370316082250973290941090283121910767880955257821513838578179626208837384087938027770948609028139237139046943730937791395277158287795405775379518953868863434674678551701427646934811535674377489833930454971562283832062811658331565423753285089933712199632601933387733514477164014919699160001599222086880230757044982197752106949673078623258544022617900961863704766098306782311906076938861459289790923732832505171340629446887048273837100180291966815122609560228271796518443773588659334258535063555034279806234123893172626010585644355458675644108658271175109818630812353281042247486989979900100774003171776846177627694092553377331523233751626977077680279916110976530213876751400267683964433404978153188923942516575389523166852243553894584542930793405334915808821847038881413637896939715412449598762284072746614253046795220539971140251584114180783487902939291551635466549099039091462548517121536124660914553398007273063581622959940849848551030246126255530771098670145835592896421947869129974366697481543333213394279936084105823912166536268146797772252373673871075835129860333650206574827932879809623905610855857039643422823965448796513592689167525577688652828773978827509929371751131767757953096342665945737018121071684743590438932424545304565170865723756819227400216502061304043966726985160663173124101314587405034881495309087414896401837117730077311733711030220959162489266208535005969058218615652584104155303064372976161790768628769964116529017844720441956853114026768983726454040634058740141754046657225141931569704001077627069068321871571191184268679323488904937890062039887746270972352192371158321607189383736687458581885109571033820611836096015196149689788136685787128204947683251466891939133438058235475438883804647514859896911876060226391249261402353725541685994772754986331009531916266664408372805752927174536974079812416186596949396767781211149484728025623491768723042200849599279199492317074258766007675038698868928074268686037956016814426110110287550844718915610734566922521689729651399028612081235821827558076736963994227114319171997999659931783494712135009510070355415143482119067704277600709664053469690526280397816776532075923508965863378303243458527762485776839526035904773439215064096038805441940894537418500723785065261479444864224628778865689258945877282229504713990061414324106375109900624619490973947150042763205544698036037865017353123160708130403813910641128818828664633844783619708269688246532099378478445466479020830319547261005149543764141944587216934448194793263487799048960003493519791754768278051495585046890424651961026055363420959220002816441597929131271326687834534086649645112927506717330255041360840763527848408523515835401877893175959329727338909595048104913046256608441997550045544864531884480829485267895737464449944717326743732881145295287650492739257508749702613764949711258239607864267573949640965510765884868573241711253225751248236709240809472095508689224799385537314083092652941229846574944177613523753914805586880764196036874235157798700315510511566551070138338995562885947133914246520680576661426245577026351261589551598167947608802625343894431984837527372647190375177513083307161211164527046241803658875526331483963173874303050561748339312041561247437085801363591551276155921811082297145340924787820421934509884763905789949343188666940117609370261351263897518331606197190336899574494025698037239789869269937063586096355434130173701701323620783801694620352755462573652236778569281458684524921113025453465160544178784255613513730504031564530639268426820091021354431195081437261242585050185088738063344904240491859747083165493141861583677948558495105477086710176300492692945460640215364226390263536478383069938921006235000427742582026174828579747286721052536322712795520141342868068266476801248557913701640848900117103798888477634453595581983969765224649570300168887579363074503604105381103443716905538198384178815988290100930340705861681486872781721749403109081337061382813245565962306875075518507427219526285111961183900280741752578922541753302570959173323444650884655830532806200992615482963882358112267105339739669574421166588240877240327943232781182557011142922715924133583699602278949068077492620477656794023891135739379437646043044953906786073554005448706719875707429118176254040991031249655584103780372084496446695669300610670808233437506360887991597659706769040227884039934652712430291987204239252587404162506564482798799827552747064386360820340417954197977505643415859469838519894310123013929177367921286534767771013050460750377418024827003271325300571570100170412340556257844147769151894871277590362567285947620670388255032046895646263272106934328137242425999204851085934164599902503096041510530630738943640228747880586487902533129415837797861223554092904366641430440872459199398537074419478786494033482085626556247520458153715292536863952816756823951114099841320524786642572919974045463675418725102896253491836841868222669851946115114174844898298595493877914604349058266185996136261082096777943894570433076962643047343601443229254957405107387324905793807585482704043640948488777203072745902898098298712867301242571002574549859015360654115174672785800540393426096010297505600619843813964159507682962740136513770236546075437809493009572021406220997337885641216865306176105886168580734151068360622327928483552077904702617113260175112576228910926279792968705693712379662184497242020182913965568146343264512764851601860407549451651728790457039657566943573516395553620363104952591272019614876713371433062396487466776541541412649999393037248436821548736965086751748250826827845107146981673704295984240519153830969795636848366604514081198947856354111390948153326673005223649022888903036463546347778242425545461158536010927065419653914578924420874527437205143876752962332194886954040368114786826250026755982153885451463882405622002332311338938645988045063739849920659126982730859246624033866044166640231607422476575081039589640621668045408297675126270044523076052034808510721662729452183059821130031553935756260987545960374472795717262294141341845081030539083195108463157577087843493141413562952262810020221247243913766082631021656988060546134669236076513347433886903204752472566206961569143808015452440208990976378687551814071764861303504535702623751591078361612292292516711830359715043575905730287938042241288583270533647616033856788801200909740384512017716528485437415568777711011966885360066300536071136310729087784268083291980834506966812921668214485524079035783642137337912150506754632966348837679452366943373795139046267500612696409138778919799450807549661231173892506829171066336103289013102134658720749770406144490709959956754304923582203561017743665755337575485805440414342444405359094541406285652488731678367684139770564172229059560801219920597301163996210072313826014851976784516665350165682496399894950729605992235003395619646659914471572471645483809999088042118269292276833542133849730265028231040732990250433565491375461288396199040307712582399897183349457017326818731632310890265635224426736099727579304541097952351644102790290785439198394343867566888885479906215921560011815540867677330827515496798880042203579377341452129423305406665370610060466533817185190310084338952169834305114842535703643033808026309932691408698798186052537808161930987564582254879753624920676814117987201491921426272697279404720687589245860922114889427368955205979305505378094144444452020916295168309741378187192863782465268793471352400499264694768438845614799813276164442326769346221683595760449018781786655122497273290718215996079955122608419741553845658822919731884527797420640058960458242310571090252495926351385293643886469607134033000646713796763208481528978187145083379276667285400615710761546139818914731699051260579927830178344571341732474715013006194798553388370514754813280763183984796742583352238799078696124807403350002645771729882196988865351390031891642881902460722335857811812076124397847567818948111595804446435101494471919362474889961957764453652906013425636419079919620620380211600999646656812972100845146560722338507476234876394839338503574939340109319791850165249810594454877762652364840499396834044815059209955812498760729440975688063040282498223641748580738714816105000297182136572240493789542527122049300274538436329374877584423240979244304415940309795235937521687133842882527172170076248056611719766014224510484480402050926176359282988791085747186050225127027147650581794018213683989294995383151913705991957244983496510107039551659789993800024004266876394162564214799995121669768390007039980631378200899412250584434672632126375178576030098105444552798141906154730231085700195169125514960269489422500670059491827933150923932772545296917776216460476225729566993244974478464766646414308647824621430934475043774957857827714267563899089987553316365343151331925375216278944266006382334659859811483205025681006528800611312396799449559102768302297168988666437051878046347790917831543747892512810508311638077158687505692584989127124212533096787564362429524790254967006538500000303278987898404274959621316746750373227031875578767365581155049873156945247169394377402506044433957857628349868687283875595234101065211434794104389589741995296502723981805255273210754096154680819648307519354468470603952729345614640966527092518559331048949509391376197959764966216048606291765858207548676304666155503238061368670032493325453295406745879042811516515921692379556168972971140418482569548243541791162803064623143553106548229997802569515113609517279536786792467354553983895936390091483110863040602919720267206461986562871993118535171435549255784583591211666932576805374438282186455798525986693113156135218889331989553084623006905779659305740667576763582727637128485619373153192019408333679488174111352653556440278873532225367050963508219792168162488771612469866667656998441387881963310618361034736293113014842664964447787584570596521641756786010935877440087199520426555571831431597983565711336731956989496616834613248622951078202447084926940652473275454081457335726617922767157615705290990629410682708549816467539520016471189209450518617291498746037507493477642833240105409596882360307839223712560551385033521295008270184525474813157225507894779780066862430035716849103727188900080633125571100161480604522072936103094391323645454487950235050814115741285462734663874239850056191240468493283939489007872292961039512410067614815069462235717073890618537807787796193321277788777780394203711340386066049503097550994004051778087611707151030188051243015837039838407285674427825652768526825910956790901342305085101781102726339884025131680959862759889969008563485344523097927684105435862745778376413828860738405220948671022847691954158692986650956819078967722864213242812999328833627102687413547391581694320256892025844537550766457380101056652297671385293615968613029807848805479252454570651419717498312989214104404090504955928588309622788168749698278500052403368936826255177869581487617832670820498422806507388751294283030105394615296933633891342079808009854799482678699593813601787917116743245760281529675312710079269261069826426649670894700353573092066271199952659400726275322753918697426544709579986318852280308249994036045408378193972604480061594580348471023317912574885781306707987671920227120894839252735489379729615342154902681305702850660119646254186530609409745072880350348334756693947614888644194500458567698677181608285569227870257548113421729805707176213720046496771342382359786590000319445366004251263406641378667979801459581411062893135439414691444253123000622686125892101458667496243774207641926600748684167931244601169264736445995913694628015865568409949396455272198927726306041877625121663495901868967939641995511606217816358947102975262882207411456382972259640799240409377463999079954196361628589217218318197045764411429988075773820376375091619707641673158517740658924226669634862573117371026383463458805978058791829713524055619022749394035368763041377191776649533431007181504015897748356889664232050908626839515778293101647824688856781034933732493759171840237644803625341139386467382130383482095647541843428197360621206534768463226280211682478128442540787238084633393340045837451037896175978823782722334099646074573882079079805977594464004305925625057248292240947018716777333156916412520790484256470667162933840859754652811710618183972628499129097782497918436822418063129863115921805382258921172921746183272027161927438817917075138265937257241433776557462799175109340309188566383444100384747221403256686403262688316966038305400098234898693732582578434879956936258894543752007309604215992853118950397750879904048917684515937441319565521659623122255749532213503307116461253872234427318746301724604345887059113273387085138777777347681660870553135586591831115573567683285625510237730882012163060722768416154111601613572787880617994046088770835354718724991251645018056905903778454136597752275291079756539676977976311187163659490717045944368729435146519520816866618548664223736250478793797349795069389869064788736709982642975056681201344916249418753109902176283423158460042832260134606594402605764754269179608798810352007755298950871339537007355901748151091201392328225521812969442408347473677593346762633510008487000559466777933879804072482438875374257841771512955367763994135837339185089479605966737772975986038495293166684658658144979935578209081494434152915757674493703833971035162032816421247863006927103984737979515651400669775569108925859259335908796193814200015099098399749284364790007633162529067684593353373532607432788702903518776542804895436819462044216635224848436706162418230331998641417781824839761625373176489411898878463840564966273287409154122393441318012541949718219406543338517934646539940506482246416658817294576284431264222376347658753097272834599083020127425779490996318804233844120797941570555765598485555708252334635183600314878571812550252455171977563719585119046933273312782474565959895537769209276464880045887737651676456986041160329268764151407638235811711996281620809209101210032900297120114550177351300723136563364491816734726877173217157930592005479159934120820282239764265431247408438440027240683475056413613768032226243326801004029906915181621988084354780070678133217590876172341826219332762287827999308786721727360168178144920692108204805401658806104737308224286356703227279627646750956913324751702894344997803303717062861509119514019634593894608902374648065043154052964581489671765087822319406560794320504954232360746615508606536553640874860720916452134972913450485823270420021154398641650705000733223579038731218363112270557502672200236345251091546988737371279924185335200323561134602070031480629842016760827842737231210506238875543925960473211776106420616401651543245470530117956686010893114743826570225338448376487445798411275437892021290282317834867408171963530753742284812637140143948714322493008497292443444768810405298700565242574425679126257804672481280254661854883972755519419710185907614623810245750988789779270325721212565138037307597435990635656362980647387803778572071246605433635421813581048168252230910153493268523695761924111738472494438152351123591345101992903508995899115330090678868054150386788858234757765122955118814552171236955200053396251447714285494306153226873497056739811356765225772182360026414679057947029042506520539505720525294388240158093001847475526690741216314665472039064691066044514993793254362851876390425926646301763707506717174032573117031707188936996845963606233929023326650761940399355187296473727652761170469990036335988984965498289433713171936381634150007395635418421856859476277639239194319123498137010859393764081627927647384906942734508526907216912331696593538321404415810130806309713331419353939260113171829416696687528838693373892584130035222294888656445635952387602900931799960819185497308646576769447785314128677504412125733089768620752669730214833300774933409269467148952538387436579653788004015969766769948380881962885083895405998443674258488817037216381781400043205700003655832509648438336383229402195595396380312843420158492469932292650687688423482259066506677478014879359836749518000915392518342661462649616768771737578422066945942330653128791554682947872469837655579079544302901954363041156498443051542509533053651646890423481666279842057496822585809421525884146330075749682789029597812463792819784846712657205006436836656262171404188051600567840971915844489189228827200712137016123201292165243678257323854318192946922099971344285483635333433242031516211410894576106208149820296371406720648151698802744876756798577097768595766299534354672371803390589387537378041363972814919866509343924614628809874648587016633907320394062549329389460120104814143197282767353124262687901046705779280281676001831391673045915041612457867788711949774672714081731240429015214648506641191383238368240674417425263598669885473891702309987933401525494342757898621419421164767478499952293679845959150000377809608569778416989972271673599673822471174054782952882353156348900174176153344256798498893571897633141628211890819420897609770431058816123263871842835840807810036387575137197300437464791736883254707044826182592028632085762887086883040994232897649500603242525012900712935473094077385450688932734284546601020770879431207501094886976758148563903922452480293848998052143455395469474045960857493144614643287255562020757550099666525761817287004748031931212615706697719778748594065437349539105471238024170348895247326223198677408037606012217758306742991238260142247692419452689573552694956527578719977162818180731747479870577661435939407244770578875958276282683506665942812061600559102369305399321162680626829689972239763285748774323455820282293620110921694199610560125360559218612950325870174777192093308936761086262754606877717028926137492045443788014594924404405071747524887246122242675371098866587519605601717051009219670962197711491218037934403887096211351719029358402110350573688310674243965151184863476028477570589605857373139966811081892032250186873527589233273742891832707465935960206970892757172195178520652008706725177053801370328234754086051839708147035758715096527031369978932798342149673835231250345720805432846527257177063229374451960783312373081796558144361707187079062432083343035858893812178681365423226135641970271397489113441886827645729832556921515029497682679617352641202718546767178638837477922022235054934982710095232867974535717455924179902230606458594326117162815876019336810789372595406887750065737240377381325707588438312434264277686688649346968133893123603952973456237544233621458448641870138291214097158529531629361538188339486972277328909019456085361071103617602057351598163278900992763149507389456313167720725333474871869279234614312497611145675329701876930192613124458349193770556683406652630560678363321271557913727915171702918088144714670880715607331030098188604026793602121768133892025881326927793387160904561944112577709224264764917735492375504090231524358489912319521822354215366644458638449420190927980362369085819210272115816717477063099730526846401716196474670511074652036126320652749872208788534953980044114755862798290384423008450884841004101371699301745014174833021221554094652053295707504240070175220356573780561807974766276629861281009513653718705450789996585869569000248373439733257088818257250451696972468446420923353799264115534401966093707142845380817018912472551762428337256642452713601769867126118485964657178624241647359507712647828272367061934868650367597572872585080548521207629579085887944569608144984011810580660673064380764071116042045370370700161522242344123170705594434885127522756399790964650826027112546689541592930917571410241406531739682282871882570896083597366756632264095509875676484863187088891797289749503458588063713267986390968317095205427076408972358670060045802211552224201723944500808409453262252982309953866685110981980790644122368739917216107514174698921616088791034872321263951588815554649430526990700510305894260189639439894734604949092309047776396608347102126595936484272293101238577816996096873957506999455583766713888543278613400163154379720138300568012306737077475806323779606418128583309179489560198858038609551312379570338250423095070051501954235730290998336271721706866706443229246769567254597035746279921841574130515186818913960748793402199002234223644894867982096723232787773945070545611506120156992851409665648082108015162726656969124049849085178018864525177425058521777815310873555300218919446463687010699988836520236467919733993144222201420040875462184446369547348224072228198167136110121240429194259935821997807735793393855863487587524995226135346114793497128729206832636733772521239023195280651457883167348197341737040764336050433737545256129298122516699826570322085983457926356524488960090201790777020604195936922707541640988518678476681335947867227846741037878553453330815354911001035842942238127211237852670092614759170236947377303497966159469658675950353883539320364745566574930658434370205940500673999226199498584866654124523291139840721712370187348923493963101273675179685852762948903004866278861956105844502250567666902735731088701544681425059977837567389250592257499524888584653609711521564782451705443850833234972391856105597166784673104451913309994112138799438804073818074344299409757304549035948590110060309411832833913369687765690993159721831874189224143555897254374576787031252905784936838898089171012323353710879286697112044700767328990564452733529249371869064868014975779537265918348640301443730324544673598339484970524198044804514897814364637523603273622154222769772086215492420911530547421945738295897515080681136506449144364298472869523020386670066006128633027215984645542788271955840856721134238626859636777545202311057956191612224805276500324060758305432032946267856136974883243563400908329961267748838833540972559022995567109067604076946401957865410980131073135872479562279862934185893565781964256124796715928284116772162488478058273620542915022028284251290538163257744565977697613599155096603081689756380696542372833607729554271387676428761181177262582329039449739629990590226083092275416173014070969109147062371708063408642222981887629198461906494824462486284965189605070809420683754572631841482671652235660852192189468729731714070311226822340598749948259197491893305293733805846091095583615779649174845321311903141728820173468863158826931580525337646332281271740178233235735475182177297392866828383178086331495008134761895341472416960452473614064914454745393778846368741585226955447881096122823843199721199836599115911308493248037547978113725407896476038630763793177851393536932547099551328431235722941049426085622323130813870547053358551435851640504513753495143613206510492258941195295197668820812731341100671746619124078015940658171698580156825331947969918249572081407480373284065075359728505561251639131566445223871505616202200451892848986109220672392356605017993563883851489847698964784599039770973014351059031706390264805241033259484413788341965007374013265971185172611965873731989275306642995447837917589984301398166695079449771632220298348013033017674973486341012669012563351421880207056943378383265156574675537609267476459868358675560511788599999478287456800129745560937207162609787084045476616110741403682847620377665155554282835940918414101097231870904090515362983104735708369048709209722899497004628438412642472212592347542936670952566030423365478186209773727276944623699840454547661953658450733009303312823936180081816488175010223990810199086227868472594510205630576682999381041077809565564836177096751300441006867150119494426093562999820943839134954492283094329774797591066210649437529259519993731458707378242368016149601537394036737657392315932056030798224818857735875512835346367905860760638969709436064372922659315711553106471429137015160429212279336622774358504514876287167460011944008950620732028504623385832013015612477725538618331403868210164940172667371974442647090911486250683591415187568105735511415351747198756937465407307409011526507668261085694546087261614260057846194415510460980035902551406557339107555044905967975615126068729591543437023954769311151045155065684087630053444294519188080025356148692361101111365299065746998836964000342882805524729182919162275102229240526089258615059730280572647481975018487366423216288638075701731855213147064901487870042323079015738480188738491841926410522683650069447775620601227788676593509740980656712534176002865316584702570562908323374729789219815565148749323456457439032996871027104879739503672402890994363747482821419287323234584041938212213215005815323897815378908784851041394637465521208810520247593401124551238395829552736856674576333860283887105910714032789093745106663092025268823847673129131936758743984256997443492921992351942675789421958451953997509685563322407538433541426167868812396853401686979176445007164791676316494510768982766209297536274145414367987151357285053121276084172145459281674092132665283454167888569623035891271426900767227645511161270894069897025922913730029421233185023038814980941075881816650243311298322831247545787476262375416306640911160409858455142887956400999012104164665825016144352958630018003042678233631682312899038774248607937575728212319098353355442501357395171689443895088833900461070354653434115593378606298305513391664991983502325712663399462534699088494006920812285533130255633155105693470656870801298695019587663262742043174887042572399503078529103655009351390906024662160279329283673136017674519458365240405479907289949974660545145862455121396718247143707537985703669579424747758655615736075789814098522872830350174144590706132811037477636882236933747114409071127255343111246848838905294067760897615164007840812981239572691010365149207386260955462737610872575570000301025222900800406915918958230792180292791050534488670853235664217277294795464159567725311977272401916019289886498207446358270493127249859623551304937093459635592908757962099322097522314703322454680710964095038683595011377041141482784346363914681445549558297431634331266048390708743511378876440638005633093996443863391049772006797862862594132013250751072568301363076999717807563252468903497227163065768585866614462927920268046760575325137902566369334037914439700200430068201997612365085664882354926180041827875110718259240210280103056227061223803942375222384089887966015035873894561997303972420867092207861683177387982448517081541114468921390159531982338919073192473584535971963231103843005270929813263248668057693424370092351310177306430700608310631551020977654490462989340377721007556091981051484104249416951902152393187682877866765064634493647294655877167231819665486865016758844996878743455248308349319713918740032208600856200062596386240432873016741761646932624400537430816597901479023966643439785798516872461418776998421222352880640864397825211340482352410410931267800012234575231498134079351774307247346093190796481031226321922006348890865269863478870451747057276059306544809237363674805792077537088264724241952187803622011034859423096459923657543835572381709703055359005850765620367568399316814702757959265693438135128867773640941789439457161519744492464254407050008612140836505032942915170646710062079638778423254946547670424893197742841384172935821979593655428445545656304394158543448959239826133639788527064340029874179049742743170879125831634841886811153001880192082090990237300882386973153302288531439212672491725264524102461308400768577113319155130513142853509113282117340304349039650947383582890708234186178130096744389842231847679297637502477229150663870914166699173399113874763990374399522311844117652500409282783167571219527083238438143607062581447498231591924116054274004370777385478603398469880853797744350903520978011168600318209026440803459233097674316886222991326689587993925942082308333749333389088027383994596982215059166813077483192949449840631208240951101674748481696914499986609820965828008189854921019961619748583435395307631465874046266094180028102553306559561850798885129374516980538987621114321981340463089521326160951385829454503950828146156338365628309784048828995149049542606067357410723152701678787822319626785129331421231830922327736656545743430017241643421880377965294699466897868378039888284808495168853161502543484231659189694077634368354995914101341242698337119617030844102711042933047129986237515087999339670628828886261397936438758789931399033629570825415946818972950421555718724873589208576432155323639193194272100309531475087829903832930160572555078930198774192570509731039855146704231923731004596956685350519700514130766473343668097326641260105781129181325660984204754161524140243689078399402699689195849181172124545098996249367869659580805025241742425888784218790182050268941498865584993799395283332012544678273512578470963966190607865659007895693232805860956345155821976925550004415164466843027018393096398817751378640989702917578107310549093821025732987102487701432110960021880255858708764222700933386665772967329036161304713944024920300574495665532705223538072515990033413006738349365319911002802423432567580556592494667313920170236811185782502985363345066358381447739002774080738972535400862628364793975361512462760353793501742204873559568343180289073568788486873769758449470171454408641853407950499144252444178987677337560104742873768547885888744406701419227726442420711927364915661460416076983375797145376463268223797963081883269140770427247129089427436589854679882523601992703312973998336077232280538267167803305066141165392580842868992519227355290135257600224672076613764866947983218728068328965188419019077018180120164387649567271723320958123793657836351404164977859799197631558392039240157523105923278458909914011698688738496902090006740434872065941887211929018849998317039913040561465371580268606544489460991997062055148892917584775300083086615502075357185169120644034645712134531649227795390119776326513852492981627162580382857544170318351056760163969381802468283989684491337612494247425305475761656603389720059085154539465479444426138453495717071066909859695301078450183998707335387681798111539326156541924358795101010100388181426177111639021054712229996851079226291536603391437453618436862802014948309186727562162432644900285381317300055120577180041727831314669986318745752301442475795677547837863025287563430893549008481924402271370164150777402972607133193214923871515371540097428418292116484797937000178129982491192246901349631204757435999004100209682346357152404095933013466620771492653995675570938850343083414514924160756706919004300385388110024662436308774437740713003316502379731487175534058636179865590418953444494270959860562585230857681764098789673772165989561164788647523321359538059462180281060407434845786277960942996268572290026179914206133725850057645883527338999034521177456581711188720561569670124220492943609115356847845738018097249933655757447614658001450211519736457765022241971349231488610805338091027627112217315702070177947205341296364943200809876056208155534958064790763790797670150367343142436700822373861446865499477598521653430753221567558391978329116429019630707720627667014602743810627809712434296648266573960092485665061262834070912171921483109247101178259910172423662917702886115838585591228441471161240781639610357475685679489275153134046101179414628819786547748185932269663452883241520388894055705248158498528811776680882849294288570222863764937972865141367467245019679384713853608318721637662832962003718856953625823442088215222835964260429213284760947514927681349853136476432710222593934281284200312397645067077269343234555892569651559885665438377605653717893285897810408509600290243513929505151761165049572864639816612847160870202295065169636060209024893582729108773135601025835154288917033392282344603213326328233661860047224366925842423286124059037340373708565390403272997855966483769474253126538898171100319419601131488100166572743745720221141555854577745306519070798373118581548748470322939026009017440239641224901442315812547963652662914996387016028409312352740806961601949461286921788011506189689722817343634786523754826468174712348670357112796895102240563857968429037582354533901499933044983593984568575764446674933956002803052629964401936894058729003868125581113606125369184428576208181480101599565880606835176134505107676229010021304750720419619849833715412059766794502902158700892818316900546922285856834796470376677333659969836799506409636943034995567794610514426948054854093119420854192081663684346822498268640608681658390985211991766535441988458767578177800792376505510398290361581786066965002344633566530641686772965174779620986612685148168080950679495949429131390194086529106159379450759455756099308136705212645382485678431578287641733983452337266445524471457065331371043363768132880191255639533409232984046352189531566063144832637303581137187980172773541967237903563878117948306007259392859893817141772481828433063165189987022857709073360234351120368793759929544166751397770605673032346516723248774153452748592317130138879528735410784130861538556345224924269311550289569598111414732102345733142265020952649949707908817731825208225775414215037936745652170813077434324307298845861095694479338981919808706725646403813954135091933511634969906390641472803571663165159343583733240990119351007940793035289479236516307938547702369255012596142570283294391566535258154878810980230672268005098616116641416961763347585641504239469890166968432777569363007708491283241829938980041146396600081294822857172235655555127446567665277451635833355280229314401456612109645688027593980106994691185343963803751814402030286629019494860871739095693328617984315801346948501622942597031146167698540668275587719730576098303725227169801020927600435684495105800314369832539799766766062184128592763846136882987552243534148455705962771919990350294501207140729662632936598503583887867802229495898513138410780864329512977267760877045608291492954860080260682847025243308714805616922013419233182099135227658800266173645470535270138512156876213751110814850720482628125851857781813267056854971250536928825327874950700845574532173509705592941386297371927712087397451177550509030001012951982377860873583286621232695491751775344585062314678944887320260075647510327991804137619970970010419030517849831331885924805707673945604584062781164717894156359126575811026955960178660272265854730855774961803730394143744813552232779366851379899357307138789770421277272467989631426211167523955183032356203218884671512659663076842664810689384421012672333045176746136353332380021993795842366131209469908821133553512754920113872360262456414483532540640792821050878994053688845810318502976594806545463338109588641080620202784904588406363907877739276030709711112808125999126694165220853234272682886188272284870755347171088890879178889934507386875754605680091394574023289935243140501728311305907964165724971848150794816883639403797082318395610406322702053016572979340070470368213166542667853530906806735267513088166556080338134115610489228670307454910296431161964437788614014549049073221872439871836206160245441107781214134033771853858512526394581470067649853619479158547873297946365364226450406712625750746896003402305289545678661207583053409563046352979673200979354223405783934033348107796841244051037530875507924494836376547789187957327301587487804813960142953958423096712484914416700325790612589100818134550984129706933056196943852612834407566529225796813307639554829097846921641536866027558313659788043475930453931170378498556165971434253912297364730415001153206846206044355476254234549855586604177237843330919588292568695787995140634077390092887605852728179302710951520855737058873207796964737071598556468272262223150155956491464519169517997803140677642134305219025939968936541070881551789784545482487099868931703628119803454615401367011402478454126572012766852956180205656572648140985549813518997864016054051876492093817527880083221599888376417830724338505042509805895244728927949969637471152736129614800089407816760590786594698306166983173066665395726733400639606734114811391016860560817506413949827546621708411800367859769966098776034569735294888576698649884732001507696603458712463637364820705281203433625894123940138135978798555023030762596844261342290878338524278857902580712852510718990655763089593639768546547974575589022707872419665922620963726158935739389594285486903613717398639432239415168103500942177059104736640563747274113880583516245908664782431437500569083837162054067266870034911813310023556229418221258524345293107212679505954603441131706144030592540150824714451194693965873798866391989230089048229473579725297386360406734332643871109509431827060728025828517978524145871354638891732975304489200370845628794642374163223969604893863849265582863157482375098961040833741338136470696397739718553939089950407152146516411473635580099649077238827559196129372594686890443510266275262019592397135489514125180899818726073225991528496566426700653486399903888341801128029477597076012974152401982157487246613678015450933627930775845314467507062641159089155899652679799020584475660876133877368076394180702367959991709525285630207266530070004837615439937150405136544056077181980535951867885585150963850339535060979716939252933865971988621733813075146128035658253510838613652645392357486780284883836293118652563829510875738071750864929258754237878200663021056472345530372463146901536393232553459759699822860627715478647954782070393000291052334869877761353344764443237752398156306163554366635996179334758657016456487848647110332124406621160736927423867170510615105625166616138796436708320413414415316545112756319859915439720552134620589837289987366181360471643511039460232772241921028767253983030355797707055381625696959798746954191877573799781377073225083569325644693074978604080691235908494819214899667656433334053442430493049870916821591832107312992951779488753760312122682414946426425059257406866001139503876071862561161057522676911532942407889461548037193713637129356986011457592027217991155687754452585893377425533522589199276693844728579773757074135535669728738206207320150150638995609787049369590757340386541866962968908313302841620521637719202023657277024307781900703311922730500757566277854205015337483872872937547030748259616990466367352776017286682002677293193418793422900399448858250217104353295252000647843835360474519444325138598764232722142594451702584480821113513897169651962579793460956544507388028353865474602320106430019218136153029957574095696974158369062355557578199132337487384775972950280825778345353180081620540338415686236647332709411531523892934443753815993671442356863697571582667637362788113884316782645760229997133502716851603915960626584077672152345621538698962916315817007140482609780907807512829782104784996379232337111434453475695655849590661333585127176021396715102825193086546459052502249476452311336699175315459095319673612451500803324993884844581334109679066457453750344372704803698666675750742513841291932820749661982913801017789960586451606200664973022890689266306388196054210171629947856389091720140292608162504720328986777911245453410028803930624107127667388353166151967612486921907201692967343019485480088747893800593833446275318738583759438345346448464335329284009142294657747253328501880620135587741981580514575544372863428117550411540782567161407414480697123583597198765666180401855466000481070222119315772180965350522758112702278626660124113330320753129151834955238221790374679114843692886356716229172348858076764880331551139582107190666368914125207352796342038729511149848651561897372353133092413168748602059895127000683558376345251305619697604849649382076483237656578537578229607343969764591254314871106556052612217465215514181533975954481496360478464965422251938786242761023872620515404078559267315902102302651364126538662043718444981596384632585809184842140148596084476873881823720925835298623121638232625373026093251716226342934785534742370023766030173406734927029421045984958662791372424101817522166554338809058662290229165447581053120926940117341443002770244728870825843712742874908754998541287934787494180549527541585057892403503472428577239805628633214875114335876228795356936778847573054636878903139318437950405969104460424718501881773331076389376881979817890036376343041346272823567752248721426482841497864560892001235714031296066480438460023964985631253987306708606790060127997135614212757111063072813535866821375707835323981524660385416728764172246739028161697514669342191779708933461563841706160061644303168609546249920851127242825102358948696286652664007441778914292842626906869211502930690566554886375841024757008013599564304518268545717707838436704309804092247153311810377295300524732413846937303048921900627230600312553744983463105493678898447417564813073103285038969805004752195286057698758024574918255751366458973741141173107222990264778001565338440095989208994111441371039309098235759288441495666507371050168150745384418336615797156628616441535252705350624580611761990577470714933681260826777624789763535647923272026882510260280895253305556466020996479620840972648569336879865756492795695836060132605821559366689496072789116129782017295780347067246185536509113311419502593686473252827626065475878693333017408068899573222854075658125559419698561647834170456003039894161840082483227044159142445093095720080048481581101040759315167333806029584207157489968749111061373031850701157278832377311935727403424091560973432921474388801466128183023710995218120882573043948267851181036525816676672176428037687320841416405464113873456914202821860080356385333211646435434082707809895242949049100301385698802840455472965275922564009026185477471117905282627003403920014003032000262142669394618656708244620520125582530036721454888907832356254868257251367382082864579483572557160353377715442317104748807348943433690099964231298838231426294819090366849042105594879724098591162243529298171979169684214026346592592869587581693081679499243614891022175598033368853098496800459631328625481022077459280208580997634552797073501710908753314659088794223092954294641003617781329943735918582401662322363139614181265608320539661621625748186322200632402248166330798429897075631368801546651990944952652603885036121312082218159679413954270298054203871343705592667662240556476437616479688213633676653546351536896175565371446138172430707639500848690909476410852993559451530274196888351829942647080866551331145617893121351159892295262093936926050040794686939887185604932487686489509144308213625862788739017436953671190041411996923143882251982184282846513716469196494718359271166656356446093345855923669659222702732078917803814675364164006714813441984987112625420886375207600582779941719832034959677255080784332123713685502674088576359738833104910987586239768039960069957402542458291461736009391704272695539482931817176373958614246935985701270246859992755821592525438603705421147723346100187856042509328372377173810692596717894004992063232971930637034602611121751495134946484241466010070050940792506635939017440205171025000004506794215226125959050937928173389597192741386157995742506180212971191052717518784912811680302363726035497562208355472936466987823768080168358087184913427668216408829706931402892354337932229116026912827520835074013537180671307523447519286479605326532503693754298448114535858247128490445674929225381082142591641653380976205099836067007382924805317916869514448879448397941677934982074570056494147386336283324428911789962869836770467861107764914685766601197225545830840599974466894863981560123625371493020487994227998861212433692034122347893109745437373250823726982094411354838088403095121962091964142236501287330737350181293807647774342361630227842151803241277492705486095162294478624275920539047233713721881874358640019064539223408441793159777784163858150063546920859614998307993410830364808929371088080540008197232195333851336212655302444901622586895006119465673464602986329649309518041271227522231754532526030919448976390021020940345398631336910951094985343948404392553635944239171822721267585283557954532727707774094713084162585798883725905613147654552321222459356354042694035591216083132650137281618765029609823232861442480905696885323127140245647853437661704939422395708741410899620903415895671580155884774708939385078087880951105174703133806895215611452524772319683065191155192675508821289551556739511560758204731482791335963975975279173104313701613751468264729436610490639233109095000159184311954019746910933777327265672948014699673091104627178354733906797901164601898797444571189646964333710927330391562980878096032388848824828341068134514167953932246860259815688072832224327348859814533708141183042433948949415927921818599262099480297706305189586341873791325127916970763819379814187781023005626780777323581290866556341461170228246960887245010439252359201585241464141005549999096916175722302682301394218417894419164515577550619869282825380698287017931917874476020866139782573840937253355838101519814870377139852957616806917123903737704543510764573336483833982023191336277247065592467405862589209290390090410232930685691115585698643068503950598047261502449582267688548655001933910793141353399169996634307897346662094962078211737547693182708489303755576864095061567654543473947870318933538864902109977049504862240932422557486128938127976059295832882940177620143363473172130402580773998607781548321379929747915639258451560193138427655972396378070485666992025626396624460972892869695809383960808377869718185933379158069331581499954118335881407501657899213142688260649258680721849603893026236285415583853486744178034488530605854130859873904862034747399793976855651458653904635857551787480442471250692304002345342315602668107566102326194709380878073066710216130140362132446265069194243674060574089031025936155763541140844590971584359710124840130459610181304069000965041727661869085905260176010905337365421942731669981483372640776951474449622881126053402332774370339198040745975181534164732042536375987419338236423385559439890429535410798340189249208007647319573495429612589945707646187104115874132795554502616259130491634649186663624120881352821630150200799610246808691567930697899087757349292236623993154989298883811362109849362741442913045963909266114248023343391766887974367537483833776217889972835590992153859808513081649003272401906017697522557199413655950995993961379281675059605326363899927349780825765648055775359305858710088684815893679818238602254029287854600541382539311136139519710155802327684337336684297010361563342531084994057215068437313087572876720387847660121511013868576239505008047416725904578785772828619832725755475156621708606389276361588964589379177866127103340185121527419479283927572039011142742136852417016120474975791417508205161649336727747318144298430551742859423371792323586479400765957588114779114816113593927897790747128342476952235042564552152222966374307692254068707732039372166948418490637447335111394689600096840711921963417486005883858515269991696045036130202514925798395378289448944115451176996864931504598855888752222814796750271895227623514293434152870007818693434319720473448368452620783563810765827460042041377925615961915049042258138170634357288820551215207563457375969998296337570102221144809216905955814926679656464257077063549978669254841196743429194195922039465905530257418169078463469564213162135566656675527928475678510069947655090570371042707400864893209294228874879383788917898332671355981672498071457393955212902474705816220202772158923794363530925322006236258123346693341415595662625222515410194735870268132404270580490885769964800451919404908685745379600091833891315102649213902850770673997688203506686137775128983805475946133154910132254050517965709096338251979656214922238423111144583094271995786422991904304972834788273426001008602311880780624290115565363715948717878367147096485521882938391042381931341307798119188056322648271914481766559100987637066640011915513819619400221038624915167754286983748668893931117615821222654405952476860460054710913636492761378413938402285250204650666253999852513809666198401378720933866729443645913020394006190493547375922537184698948365058016424957393395749992233718534085927501254781910082383628844916435517080869493426119081205548352711958308373437603997234193443845882736416103218805313712625016253414308092851457995472458029887005457425440584057597304803381005262696392835602519410462147665689049608832122795940825527950204120643350785458192141320202465502844209109799116249239869007356569067107302880278177293320005062289965647460586331872983341763653103232546418574590920409579358499023909053263249481377993954128635703580116763338225390027100937607628903852072975450451507941779646656988019258084709993759253953723220960296364340447858151664636689396176108735764607078047253328786909325992034163340556352287540360840669702107767423862160417581723997975460182232362911005246717704055888323303061554416411690282638173288597773941132429034451197486509497181064054446158504379738492803837531549793727994558469531823209132162772040931186699463521297774824905361210209038411750928895840554309261174510482045149197700464238356882985227656291305736001959307627717445576578011692317989124659002758344664969292707048081876215721041721841017764665875489455152180602235329418470833379380990668334148899532252990711311783826145518326024012852804481498296533493078368651373611890785566038588767810157715072381691515914445663278167879813438343839672907746586446225677319419316865689602830682012358516579720790717426667731830861110218033526141474949685837263482673877222208041757036897368290610810427207596418395787886522264666351917021089786467693902785412782412793507193158936991915827969581536806745027279195532384292852447103298080715910326884629404632010529495134928502007247058797477123018830515258853196570143327245362590833181659455556104377772849133467780894472454816686189489782095323020328389147324017691074282507258316187261576169478714516419683616955914304013944415407463988136284165572161594288412141751927382179576859735059348440851345038935449864099729386606060030376272013339626981491284588393432619520597546739388054176533609829235819515323719810994813940450233788060111002017311650280796784088662564943273506022055877335985507930680949384757390210444611430447309994198198546954076774469737865428804342991524642731613567609366660121033520701799420996304581790789123674804883844700203467225066317655654648315704409343788770967644200384856355423916201099860838080512758517062432204317088762802201070345743731058239584274641878878210162498434667739964297485253793523976947834446507297474577876735002173808335731679239980574922605184508427084577074571840124485963383925879805329888499063963557935879195477351485843317802279216596216689595927697033251008806446261788639201071602979022807147654718190230412365518847024946027312039763341516566297233914997460364085957827720787461843478312196467252158119410790588730384888499597605672594032874485404372482391301797668949220126541266440979338815884032533603419463142525682064038389136086690095341591197331822021899899551159054478260777135254096246851397419353864984135525438537561493646579698851961414712594834249000649270736627832572452960042506080637370451203863621985807322893875301723913565275697418150057023378069306024674760399369981302584677817100547740988598080229493453889485194476783059373637752512574466132750235416604724685739280394968493194299112734889771905286212556870665892871706287426304632885187954889818087319647855116353177584908625205509662243783327801355775862506590663187935231875417669223639019642454220294002938144233868688577911064357749469694333665431385901861369629963745999717813135891962573446416431499607517828514469072515433203600755703764439073665882757989740729511654069804719071990024519560994044804961109016477206220259893421763102972995740179690935626413490343076357119219271456816525931093947696458646927981248856419976095935371714978824696126455248070148023654565165673793948143549704871616801130037146099934218810877370926834295166486957743591896291910345814656228430603372760667068407997979282022865868914093988149271947323644770926267117030753525497246410881173221573863400576671118625828009275329468126158504576182472955501610658884556987677594990556622036947167609897387762409717349875080209000905685131331271279233529965522089383450202601602490750361409305958206287330592646692216428462767686204721453575714967621189732998955262813649567091306511228063545647461888764268866987191912189243087305501501187898923820046280130436964983112699683315374762861611529699545844794168714219370857795513627611998965835476326046156241329355207302502481930696705059878426521326449279105679960262789482128382114289807459379967036932806290034078347011589472761209121505710726112830480963213016543145762471277920776608741921017691105293601060593962943189231525029458807324430139104457587721223079352484837684305277362908963449704481040369472573056943315171249809443253246168698717256178381800108855363578464296235800577812223713808430898393326443018848461164552687851504929332039431841327494138270129924503809803732314866714522827812705431987734696690529901735183522942072792558159630624506336882022407939083375421712083586051363714936621723489357594656128993207633474326760050117785827407681562505251488815513044354952039071645852535421843432241452509333250362482178098412035299960261567547646322261686750159403187112425878589861150890199176953482642230653428411981558532971470840639539398641762477447969016229353652853905064038736933647677017402489833190624528078577374419785414743200962016977935599046422946224918038674757906074761060061436331668178990540622082614868859567951044392489012273744082467727992202600532999795578237513594216947680117155821492217873371365679609897973901852759884206519775144810440697870558056502924350049535829110252583308420831677387941373177301204447375096878782972977270243356932246906092004881727512277751459105302749379871182860644997762822861097891553596617080384070900995845923618045728354014774782869900660067699751339589860087909828569420559459099765587360156792809243613597056644002358000431968474195230399705668582489176113879226862683386242447308999484642572799331408121099220630658874559813748032440688471874020531176860504299725908846996448243307862435683539944965880422177030519688733638599027095467262246790417155010218893087346494358092792902188695762112626651105237623303835429924417034183150181100436713919645874289233942149185597309786587363876950800012031124803025054392331286278815490451531387778551782879217630286768831780855172677991245178596286891212255016089547388829853282474720557089130833940320277464864361970389023996331108126916997392667022656610448170132950668794727772228362880962170135532616348422147538309007123599175717839256827957608121296414388286894891636843970213757859523908803375073613555145250703544540785655302177590964553335279905466939726261761926043648931940486239822840608984182467986580285517925226708568567374318046784911707969728974566766818744995064338299454252509651894700680072647343378864742553488738366968264186134820979409906410253679184300594063903911035995967179356984743084241800186902943049666422064751027607864782270645228205410839717317718309853175477398464564443365793807868876125531309692812985891615502840819006114283250187243389316479989342265552616740338414633215160799699771482684729489445159456782637499524757102792165140862628754766471366685425965688625277013475868049479564090906289314120185959400152655328954412894852410244681161592273116126964723893575670898881747497858690307787910735027963953293217005314030505516112570510967755491282285271540648081741163109106832284789310425170819839214730199531725603302062054657680202549855473982304549030885008197408671490245004616321871854804344905606237191474793516337534270061254040144376467345343290501517097991332779098860799313405767631461869281658767361896277770818169310418172319382901340509175366490027136510184265890437939929834356381080055604977161788499710880429738096731042920926829400851631430185417226165382279514854624385134633941157527564587855426714782458832487481236671746189479902002795624720375831468760122964288719321471273731431204201052249178955203444369866903756666239517581786039256130605236077947966526839587018032489371395414964525236795584083205578668207099989424228321030994727634112671380446715752413181243930230090896677064866797076670670979484828798018865479482962672203925741667983438369068871893121039388695270821778062873341297098314225438639330728903085498315049259559965518003914745174678853390758306846175397031089382487273987809179482556533557392881001943308890513221843505454692864289578277173584618172836452756123811760069757703694066391455641672061352376790236523874346116408788142972655670213123811557163210206608715654332893535241381222615991219501777157706944335031983269738627316370327505287138467755160211048060715270583846538822046362427655490119492296735365206117333972867375725621919460212153598141666354295849073696159961281089859229119441901134404945165951112467857938788033004165394874124484777779419726527570969240216093784855057976476425866104708113788234042183402200916948956199715476528254456093487485830301438006760901477044839252084599941484878073520396485258479927428491920748939329952463718215172947434520442186312413384334619380692939005288959193110513178958784591284848464700944615705598564635017314247395265967379526959565354164844224507152373012895607775066038556369453303735830374281219234021406087193115530799971282031606643934607538594346353620818652102061875747962783702845006759179053916563356570860158735111348249384426301505573198966190270714238862329837399204356687796410943386673028496614749635539593563694509618596332716736982288789778997775727632543057801382374047557690646694261112809279256705651240670088419194851158010644182961470210950846310342216504276511852956080480746478598334556812022777832483965577731155784708794626382068297117452332044226717887898783278938536979205892424227046768860459194667573654782312510658102666942444197535830122484468530172112190396196005239855435972796334441479560951643574196659885473351233000395128307260088131874056895603526356721374902004938526115557136059743965534885125213119666077804843862265218462762932633444057399705985306193780314225619972734624678824595739290679523775404152075116087406304881492487357733629672397211047696807454116997159975705240504193726881046373334301500924771083563690227726352015390526082282779732225064872951120417932075216730721949506071488088616455923896993356771008598829177010441636184813647236834060055239109529727631672898023722605886411720118290033858910592998660687113484634511546338134339888857026883626473055277149177374240682041146585615533592004049296150714367521826492492078340409846854637713309464942531071188674038575106014170811308653788524991466057659219019635888861391868882428317031046272923608965752142815653445777825372701691265685340034009452250530266650610386828567972114000634544420124825720729969439080029874559690097299033867039312135355660408265932071473451762894169713659316505129403286424888428573068772405672860201523357117683434919006841339335232334575965613491523195925822232728493723355269471636624488903716979725460413940913342803575756163683590459398754000725781247209919584897050182838052222088126847156234332909006497037724112628707525854981696012419372902437319921854450655820106412048937751193482197394423490809070251541750773067332594117013411973268801938127003501280408075125425411881324535929134129341030582557494217471421622003815070965945406738966090515364927416314605801705603982515466192643067370476162884226137220462320782330166451296870829079672508113925949486611105505414809959657921147330535714020768857552571771177052626673561592551734555122188792190555719355613087494949684950863858123038627897024535203566243591695051446313465383605452461794374133271776280766755627330312231814513546109708328163186111732146885553126171932232335923104009007549582307010751057260711443676689299757702664952084334276600265935343327635265520070053461116854926299426496370151733382015780440702024492345148857250139289329448282433985682584147704243686354767893690468639998332594859155201524764338074246666357383824413482981973451766909699760866652609820371049677171878572867932502578898432307211451868657813318631778247221909758457960074873963520491559803754609689117761700831604120821513833548410776474310230774908945846055124563122095569417096357371926008078526872931335373561785918452126594032369511391931544003529397553468869214935593529329502654749697656571897671101960128437847674130478612447804633351657298441563272762683111729585442405193153978496950666515118192897685047453296452969916154568799267575379823683870699733662644085634673305915308961679560998866581641906170372259055179459941226771838924646456869328846131445515830572127425920335799412946253833820122776941351799032795698103941020975799025592100813751539410843942851408966095795119922445576373035103548177361882309009700593168572037345298026969555055298462130555395298829353250042909719035244795819928527936372619229634720866656248375041390397012267836467596426799758492556952821080161122743454272663321446157636754690747410196717668731932681293526183029602196157531148984884066176630226878008360147871253066938709628076069695701654749960353640740434766885585130053011286159072033818537292925409328745416250513834483125736950597083340452481480089028425399056990676346016486011561410848066380205791039706456333396233891750251156067700941386298031642447452322612187799437385523929200194742054750812427677906987515691445492307020420036852992482996574283626537172284028296161610181736208448789448392408517323940296916544887601662386116001872853036243697345157313039432835758721812565658198335210664777659043842301986761993011568853745652931218847939891869508745982028525059126899905116161288698169934753281013055052912151878698863219310495757417157022746782254051475469767879190061637531083769630587962908772869056273969873369665174069856337845059983709380315803073069655576818667651163320980946753387276409767449566668907497946859677544516999808691689579195383725588357592789114622567750841741572573382335595057651263998197000377690318075635422088632994796435497591824541507881574483147713785064554081234667521403617977762825359354258618199365168091262423023606274963043769604329751320020913940249748746465819911434167990192825470245197436567623505164019444857863979102806786095961066284078129671485562154342242126708429414211853337552244274919175850837339854835140377749643753565375418009582885624410909968689946496061335991180181148982703358971931418764704012602788290544670080134365497595022101642329147802055520657219539083960332800314562715994276907688898523858181731693836683781613617555977703063323715402129646566877493389272499087330605490649014073660284026948386254845726421199803124950230318912306228899942394988973526342879319720091348289500327680345976268498795846261795411059198876367771116197736872575966140695896046671801563045288759374842948811165428639574349022013152744278276567671922818707369525980598378649957899275914854973848329781545500821895643761152885319581663055353279323542729215064874051720388119210021581529921099979980723524585715972857426859620769999369480825125892215185818480861214124988823030948608778684635178172913728337911606103664731408792586717873949553346240231064969044697685252375694603027298162326039695017269132605140773163312277721858066538395691938296480541488305625465670635485034301363739695629980008325349179632006035003397594378446671016010080796288538431065407467736554140848535332118374847834223653526144146232688223904930896541341243122729658613566533682254978819836713801700714360239171514277534283838621930011043937672773222920048811191488622915282628866771319459762723225751993249426222618748230019628083421621090208428691067862422900316961325935255923409853686525362661392411603266380335382486656924492593260557939149848552922298361742071219269992415629961783401193392540169881318863842485801362371535574391331836369667251659326324477550669622688065434587797760348690857793117364905059778126287843459129181146054923988245587282809395939113156219917364330374371140810162883926637460846325099827074214141644651768543003560070068537327358691964825482381913535201197378076375718689284140361923575302780872432441413802621525615080136258953791582911009530570314246997559323048008643879926558358705261581420774265727493753236922881379467127726412316990570377855623078675502920273610637717953761098666021403651147525972902315899610794226070673117880266245006383431231485316218376616194925206994403519153846225859142525715764445561802083214554599530493020174779908473745734435874077677710986185192655168164255983487209171504484161607679649259680176231064632663598483445888830118412979556311298649195394967041117742835235777704071670988521307947590564630741027744743652691577190632419950872991885463394776426753699759110944886834523988930298324541414834912748069658457810412134519597510284096746413051042618505922056993261343062443039152843236200486441969782029482850800047656025783377000968076599711061029497928258804231993368357788973661116910180388564875475809059528973617478749362821814212970092631433975456536268134226813070614352652676464725208892919248865210738591886958343721992698011513852082054657155554296435643647198109256414312396550836299646991695866886351375010148110038640417747040485256796171715048554209040942485392158448000160068415043459858341116624187520263442587349369974425330924779142759064214351071645729564772778798066424990219385400536911401242163804323528870883804345896361110847803331295467460911180083758504823846979479534729696033836467865235337038755851979280292675920475041340294036195479016255785512888451119944180138599111160807455783696138479033635847487977326929789221011321534899615594183118867450019541397110164000629783736974624115919695353553827298666657497566218573270323898310998009146488755911475577852478381785654524989997779282277806677231565367290784426996670354574967612071175030411643365038969818601867683327155986146057743668415081789220479979922325566401745353765069424709745765804704729269400369944492500309898770228819277483276251279368666161758964802404095788631329723104939465736236810389234232216173821907922740975264026469750295456331834112842998158997061217142258348587590535019277988117158577444847673913192266020573696926334769602311770582631714040271188554982091503018136750352685793415699146376032305786518515908319894230326123155215633427894455358229347656524764053702310627543754319127417592604551081651346628064048819199517498103057253327331035340189833226941169834577890403875763945568145254523178989722024767734276719460705787893173415874566047689975167160073061326703507063181943817091409954370740917793850387089251994039396139281383369970048261813518634681146054790032421159421697265777517472652990112281734137202244287889228675840911719886929775835351075764882110858039844290541663525788840234130561783581104224442120685094096816315330441405796180993845806672193721680030054196896018472404031659745558907060585575816187258627524930450717790891003467913804636091847065895724250529680302412751190899487669293929240686333003482802577621465885279675747084229036367784707272069750059936318444247421559947271021211817050443677528292754178127468875596969029908753979689144909046877093937774972725961944365871020855066095876597210804937438108382516344249443405413199777071345849421259893607010335489946222311668177404154068240550083478955037981607291980792867852750004509834145424972323479862372601390955985794012430926454215857815096115988885878556738712100026798517895999212692385919764021506414248161260757303437820364837020157288906834216398259158865329531480079032469948182117606609292414357514190089524321264791773810709255135099899147194826962192909598354229636589137990624418336358240945800934178919263880244210012588050972697196424148593307943707405798258067895962380499313226188702726340193191504789891227617427530880673190183191079081810402292204355398124858075946922120692066706090284157413080234540666016991139400041712267476511778586059870670701983151103935500669293029228958534655543070356790171808922094316116177852846749097891772005515109190652913910078989658180948081746491245173366405210067415729860710623085477841979709584220907828320360292975408909847572745806955262428691317949726189890058017947691043707197841148078648286642180530316214793695170575692035168696351897040292235875225550810252982323688305073155515115613435152568930299955103256374512641936983482322399306839667440117420071944407065703682376881369901201712213778906554740020476404905860331044716272107357022695241968241412754172198983546485003645495745836354168665361800987570755349544051748107618716943780540235326428767813748354247797616415136465915127020645645589134939094994042055776013727547692926312693383770045353663320313292457622488844714696501958233712579487230722430856355191850391329064388624336090561189017904353746058234279805132038351430293165195433393422832837317072530986877236734802559983122190303748321633883260531302935892306674423649225502440450868428382287621104315080542853823893820916333988285110623599191105919394063947537493493336310497950049256629757245920851021766465946101533915359551233386236772676911707010561554092880698709991734948848144838612213023699228151214204456713136053564307864660044498015264232182861803444730916869385757163439848496728299001662657819558709339409339321206167056824486622639523831904770451934404853301941015298539245383314842439164069949723823281009111277500546035367216430622127110762445419880668858524731007244381151301405035948038501406499199529506147475995016451633756677401500451213699370689835903220085435180539744075206050878885826517492704026460683466470270604131538127498183688073232600000175723338044484756226971487573917540276785786169201791903539521979196159253992025808373408536307496808201983494128301562144845900744741752860282649143623102584473603558718407586574132377359698117300891718527187723988015014377654869449757673969627998605980978269510451460224386619217489616875684786945877499198351668333615704223492130237022305423977521390552695515567861621537703888363059994362661686524101826075455528655524268792028910236258866639903284512250472208099877352606585791503232772825108058013497673737901561890960739396066095121701004736985501383658726797417938197951061223475351906343839986569433122861387598183882574259031860325420542994413717235837841261918439808907981477093386619559315488329099680863170829359406731951680915817698078547929862111199551502834051295665950252207849983064360714888685868005621716148523183837590693838341813239826409720916748712946114926636143725894182416987793167039891959732913929035167218834286229086717189850135683096850582128266468767191438847441208623128290833395404581541544283551880585474350300882718562050095591843471305699964014674014114740464807925491826956866573919073415875436996770893439700096573130807274513535401208903056422639196592948867353716211429893664422444324312619652072858592366971650998002826356053071450438928910693775172895198773144288774977348248724282156726095056373852713434690487858438711469097368769465506553464671678298012155787848958050868462461653791905621916052742692207395756844945734062059374270132647672725962961017888301901248514237856513909949747801762311741556357132306013806325964836940893261976309593496450786144380029965636577529061053549954434489838708753528492894518145587469418566127962643836036531618481256619385192687270079437081811462391010687166986055487242110508469720397847306519532715432775975608253459170435880415281840287385284513357620510305470235843901286697015163437697593484288440387725766432677920666042902239882207974551075718847194746199425593358256099624825072649587244655900055148742766804754132471216445605722743831488289777201680136590856365697270634995373293587349890749110553571650913811831323867482197827063989020084772305827746034268409836682570709511153016127075608854430830512046404125944778524585376685427083127401141816534191108534726904921791269302612943646746430138925473072270565994179116836852290576472595713531789704558557196706806732711698819824022163230648325985925246939447189815388741101385367648859046314087764134696439647707008485086478922957446206337724736536361749676842104710554213066160786872325010043107789406861768447761113621656787954306654514631676312433689918881822584266365652454209260087372212559905201524863145192188231643397141864623217417360115314208373631503833180619906192081156816830803075279592244106002409571781590656951271857482433152656867163004652750234875390082437746047314094087740932409863899450374552808208054802615283188455594802568065674981354794771138786480789218755966106069869746149107113584568472022658885260712883987852346164996484376378161658992048902928980068916101576074428825399565763212157888353710395499106185412580296657177203495399660983312400145963079102312610353197230720494992229844220665463167718749010815428754668670252353422117344987805331385677297472920506520131234967375235773811867886824113028048202151171340280300452265582349170609778235298723714605302609239514247588522718864024717418885785809711864356625129130626694361106033295599486730579632365374034301859583095467271484416755842534526303399883050391151968584397122058793982454242936862947065365473435359431748773435126660557270331880729360770109085540176098715397371482600897794605082844800609466426582124552783282342202706123747440929284520886651331130449334419538103577248458595623634229669592820227483424818845223485658166356697535729512437531139378040969067317217110350131444255994902105514496374673406354635852738416893221558857379123228718679586540911859279837338065441013926776305021351032915900877026174364862435801695402322541014337471727957115170929298147715263606668417234028697822299338134271997895362391613945249751161102987712984287422405450622218803522804238151047781448330905793470795146033571658316306065513423100188554488491325636218673050748700154975321772548507105526177436880358503852724927302550293593883125402865122215421909007320448636585382613499358998662143962678961260622852301138766715980115084309391302843210232257238177501797370516305161310140050747172209033288804945714536452939272333369337349873589916340508454255131218643942858354761312455088963557113615365745097270894260112397501939241700515608010447032703887933018094162687857182103936333694383940024622487215779481984920907987689695406676532467064048987905736433862253482444346479644862367813479712692686111288835910360355781237605279564479796337944902328862052803693627559386317990806957685256693023745968496318002495717335449189307442270268334460476947974917977806474961017374646307397883993859097828332764791161374493050153022005898955333896999086255077910298562667315257990965603018271374546931937445685690761866570514292034849819774086970547486686854145150784795171846972043654871988210875805102388058528205930837239863159405989994112540250661716951886063787417466182841444557568301482082944348832852850705892981382342368854637938385611045050254658688326445468021792570023065972431678528071694915666622858242475477086649566729222796647893413773658594748240086413311667062829479988807268168657690675945307131089860679816970961606973662965818167124952099089998621262654188672364525809503328417690506866706678318391138891918526438551129086685045410712101447167758920517672729925854675753437198392024406732880637618493224797606971668421332059612384935821622413869133188612329084861865411960147870638612214934455087638139411489459302399041581211666433337855316145162845361136715992497745957219937586857750332954843920036311475230571226615706287105721496378447862271264825124826582056513963109367411838216315661717091198175156589621136624195891753454164634266486531724337631209767684684546573035402962777436831525618867128336661095854408046936173047969404930568624734060067742213278452615744332711042225754101450294144505605973331946700320704415749975407019808244153710049582850707567962515258273667077987202217657907261337678960568285097877664299319606216104778642787358652696250292429514928051207224886447236482881557031150305695893021457371960187332808876420349690113027838486382166841398245862442064093248327863334581351674163635650757647526562062567079584868968057599209308513483858519726013624200187342439492249225759152634003244010168518330404361801048261290861833406536459411163996422277038423112208522423611568318753129063139467657367142774228666228651986509563266257501175133240487179408394108278356368184030033812952476901265892983667459517328344180321401584407572921050040319077404116641319054716526903507062512710598561597606902451560516080734860692421995384309515001625552472551991436755647922901857951988477009376789949812746527166574585947896635311093076486419093118881920619029528180152266579838387619133346513809274001517792719752921186929633588769352282351796959286031106797547954475028815161124067816808336358066581963772853098068765399070625451692020606739177162124832699760061624995274459383613200615046381671545866703600252524164069082593443966161341235662010717700493381357850275211709640879881371882172212964624104698435816886062198111357829930596108950230201898014360095556895441750282640643511630329217706060238317857264464581358954549606489455249346367402465790074390684416695426854799413261869005984129702968101592338237257585575905202461874410238766451326378278097497207545332375308788939256044959062394507226830728939948548418165828223609329030632872683125895996801895763751222567594780671180923559783177029507348527370842667012662870274721671898997199620603193174759099317909982510827879515892016223705223597622921199912021437062770743041420407708902679167723685339021643480227363619565353508015303886328918610157814023280061638063117333968624811206879602347854518881480808691604455247829621109552250332769293125156287214352042958708350528224643517266489055187680505106517345240241005949892989646187647129219065901938063258563731065756502739456504169341690099275830541227271311923879830485881049029430361504894076094762761718248903859617659984687364427196690070291449176961871376568612195434841969138471546676796636520051596504413149939665081548821274615702007741839578881208035405310501365748228819415290632349178124711319923056757947137240586657256796598025040979945137152729529119187153510094096560323470944892228836260917427992089955761968917877444158180848332965695801529709841945915326630340074728860073388567016266629149840086745181128554067511788615973939407481175404853766685074385691225926212880366423927279767802478759514490208735746760499101159550842762018551842633096601704807707127930771346378669674794302206429906629816916927564883941169684636119766330208956384800586185223032655825885797227699844392242278210055075377657196165504549188965475592725890388689702567334019502580364441862903505220534804135055459344737547199365374731328607035389800608897480966618042525321961289398864287085371384630852211716633348351507669284727507540581504976090972519428046920507805911842243399458405887970251567251083684471182036251587690582159793158283561359583405639164959049617889420134717752989553905377336605398294179133351257065166080863557985661914898268773993370028815005719937966547568169860561228536075533081035596358402466014480390428676217120014142871231674799174295325777010756931148131811889145209272134265433411699845687884205795933772308177820443049071621891352796985286551525413130247105294126971564377859461053715663693180827354353734605490743944771992700780155009944490356792966642899925275775000526828142679167827647009735650857023584742422166031739257342437429109933505177750593274111107725786600606025969928785551731066142157552041691676546766931689743091588939964753675200250250576871117176835045617649806746224431758337605719051801166418893429949158425432912719542135549903081192017946919468566376719322960867851632050708920476355378162447935975838149388137952597733317457150049790380578517481963628426297509085123220971281564121784838266755417017136581710537235529846830841294173848775299234458992623899985553537276177829763614524558184337839988117173547924062170835170947354930982725413799486258187461629989648676363689703121785660270206825700393866929972042910459835623134422861867931723524247860352621324068770449264074009575413764813989002160121046624568565978671350731272899492767960900413824705908476253821835687156462159807089002154818315718073401944918381832506550805164827126327751877742239810798796547406728268815701491663259745615796390436482610252819005519429896266308700226219154772829911139249008466396679200460969016909949849706865822149939485890539130782762565558206057592887115023105343708875528165521014785515042194398742967471381878197012637128150789559154443244490571883666449813908943825987217797058379968612161018967625118716187070087969940339442852424920068424787768051517033649264290994611224253918435722421058848834821806345703622145186685595930759964871425523338216699312786125052119965858895261328700866924720266614277997058046408183054681571064565815273466210620194518133743325621571993344327801084030481009210120304057036764146669125630003527604737318868551976648052692900260131526598958565348409509854826267448090281028104910966917786128219716683150673568135080816817303299758462742074687743066661364375781767001067922067581628131144494447064945474168532565436890745268553907797249497887199304453521468283536883549158335266550585350898810797490009557017858833591676791976022906486730859357978745447667643802127506318886967913973490827915766786702666208486757136075414387047562051901628099654366248318623834434519609010445783252008978259011188770380210382698016942611058242927062691166504036403487961694416448721397563447317468713111416489063724665682803756432836611499971569539047017685284985443762863441366861557027417531721682480575175112510072846324686765844384947689915888866593304269679488332576951886913347441171343499394156614326827354985382292071171655739468531001138623064491414150737835143620588301677964651552391300463245041884119112890557249578265802433588997066054340253452389511810071515572527022696001167496386517020743559830580098876386623857973167829773473041601970704026234940934226840243841553268879228558934100204557182960887521548048287383290841678763172431301965501161180947494478400141176035479335383539768919578667307910141388948651019161494949419387969624923503645811500931882902474666540709313695538092925072959005407631556612954272602025515344642209378232920538698206739905722100611616758593285837327334119636091508988134765438751783947063437764328489346970718811015165181184257947852033215847465280575446794251970315811704543043504688467704219841960285528668903303334704175881058027942926545850948294905139080367295002276099941497030527667426998146672733310374062144667799411651210049177855102971463087997493550458350493851791103322083451354489488143430982847413072858459922146984672238265427871528204881161674523374677991350277137723082011322894965723296324415232704210662371465690482395288966859678801510268043869300670201556079397895577499990459171297048684392755417804484966082440062383140813193413339454852260853785583932773140432850112329941098477712498149436637249158569001814076214038317032389006099249263719887200979076129650788384617469004180408856042090466810761893931546320640662920169569677037161999630638208121179950541603993122772992188039144390495657674636311437888764965218866327153119189904348991360295444884596653515544445007680587722658911591393467102405371971971300317357391639630474258858145064779762595803288833040575445075826735819925092217661579915884646762618950746504870620978886452063594524165360656131668151684180847515866288960389542309236176819437111321385224887345196447078600448301936450455037598971941485303310930608060215402350217186676767642319735011018636065962954865828293376119002886954449745099387283572873362112682952893452812165243894434112397507589302000085465416823399127263378558283182543533198669776914933834277849201846199299616702456598627980669019593941347448991734708411126481813426018740039555990555231645538337958715844602920364258032843702364575498848455410288349851586605861485972536292992037271524923499593033260536743434363430028072584230023245377615910018730469217492550734231811782223871699700327623984117471611642673910706447232354619258810668415613280910159550476503282249883330752737615400645288719885379600103435575966398447907225744837842363260020065511806555446970985668767535163536455569429444950372242597560156405078651259671017770849861809127056410958278477706192393971092735486061704177368606009934069751050691411700100099814209180615960353724714468207133010467581368052424294863547419314417727174114488483122782368038041074857803880890393195681630282523800707497481582942784650806883211682557425349890004762931693360990848464128082128962315881895560661692267448787826222574607665587949079342309574198047128807936143459673376850255548225670567685450356262591491412592148659546004075506655679647238123348681487097295617110518121384052111903767216670267466268071256494521298368985881930041218993119118726929782693456586359333821903379733490795410416485650981866497270166978177007236553646080920995507747406100834235056099825016542255694066427039868527830517975281458301095803207458556378798152324541607929002697716068486619761120569152643532555787387783690804322554464696439800186358000889651475539784454995605616179046760042102412461104428437431511142884604228083112885671202028340182955796663804813486871051080123000916712446442126172643675054161607064947557240975964568527032290688491100833615337323764416570823880394727172173934631095883917349129995268861907202579002243597104599271392011467299028409865147698126519443459630186198744106164340679082441608461584171614572303815476766271746246532599747133218935217224697217141610192554687623004763363071088862936881222880210726806963615665943175473368819754827511071918293990834499675300686018529582244722425652583897913434295492504638006825625223304133778093141469333588200843681895683401593360983852889724376527444049999155197665011315161477361795697624958808295914799419303446707564953955198834813168236373189396816336861875573771444552049615403439963201695043918382821415196100710690045639408904151072725715344920554297974876222800029398135010638103409484763947538645112915627316149889321198414024579541300374779428756905368833854678153332078472302536111332152981633944061755787557379868157263313160276456767893622312417315361984585551621051695784272749955758989856764648643814040251408620665385318939418465832150016285754776372961223737590133614735646762768266153262545700891261481331549618249444981529527429627477796383832728529755141154248584090232840964677501488066716119456057610836289839926734822671641532286973557792478005447602938823110566482383129520441261789042781872679226318631342753664850472209069801099877593312754229837749980928969458113404950957010275849427126446332954727343082591277984919359272161150972525251929759315655402339129750462813572885983758983211444989073192424894458008327987531029682892888315781192398507736089675826134193010432065577021945875473984169386912838117961440026051132961210744517962744601266993403145679144553531580233971459534386141556024265483634150010775984275456804777817302773271815252611687913578855019468020305355804609531291766112329693623169353468168144048984144988771357279154210730436368878556871247840114885886937259496979754289963865249841810346211602402197493900423741315289525861567076907707394269513495463706058066993804012716662007388575914913307587756503256804210143240523262292262069970275531995503747341127555886709887072953029108443844174517156642060573733046798667534402182058356040277581643022329564376421300547602445982377789648131642804005280666670722030404846223165733937685384223607907448611288411056914363118348261696188653180500014128234329799570202755081134018616409867173899138779201654831456234019168498103084522561599656077919814195223579207690877083103126598330945308317929260722078802906303964238131706633072688374193509218271634898614115498385172238669021243876618326136686656131534065586368065645620651945455195609169347750444033632233433797653218017988513442921443794942481951711851091961365805553814395132710658573288443131512257989787005882112250984584237804719178890600712974825430789938003543827358035673624843146367863312140628524248876685399426739007579498826350760761152197884456632990525129220405083652559848360513259956766213032586775205701956284345924204067418128213990009703287324813367818470329345137887317615119425051864056367300190006187191077684189881623498107930530537805980954759632474567958826966662211565128088757642763010420192353064420873134838776220339013908284846266103934666372893218963961238943322946433934999359818785347284532970823029886652119689044599502750028349190922743756993496672625324242631477994212903642357699098145767113529576537482556298583156564202747446750764744524161149267259833419992535849772203179135838273368923153208565348908445027155440381901249231203824678274504881992525726574624266831933060530336856326317629164449653970639075027494974183695596380515927960245045702937579517472288855998457767332195200903618170627884024744940377916739090848622485582969611427052196296390326733245430759730741351580429795983215258486299537853759815899004932399331433722556143017956139359059165206623050404856148083150202669069959150530399470876803558230829638602019700460016273175275254857652429657207780958934766290739243966284726919984606068688136052218005030555949760013666072313299513830158739052079858874811931921497921567943231204588877302343969456190810641661888582841403663788550684523979472753099068991336456073778882628891264937353416835369518696075192136328507604904366106924014729681163476787308978738297592021158655136098637703306105164071937261186116152927157971290564154850040810696835011165286696331063876319151488906124560803953072612712112885712793396843116765580924610786001545176679809484069811031958554780210968145902601202282545404898379986378244776480049146559292783946947761447317834464270216751969863656614292804596075613493901753205537691392287580525207552017162730397475127448414154099662440552100205311210291190382352201232166515123204012378047423140351446742787180685442169339822397708241284493709300133439687558455977218200557946837366535041986406805481995280097293180045490778529202049830172815013942041791763467181405095943405066490496261055287060925030870743567709995109132745107693461461815297523541224749390427929307542899750066371431211594950552475308631302044090600940556575883366094493604811914861072677242693568876591241088566322748787696783281377332862875850203407408436593314233963506181534194228275048367482909466164720892127197612811426968585443359594445392207733294740522736469470733836397437534879143995323756512284166234737251866458255748653523523070543703239438692549902024333436384763772663616067980073724052663274022922498693943057701782599127256458901398745386565993951569047601255133297878230824751025181306522021884948594606012874177824350327771888703471812851994783100207387712970213301141034049370395949321851229121896654619514311953553451412086215467079066918080213934551401703738193847956984417089512989097930138032329459609928166300334734170933745182532377038111755286478319960710281023497862635540065509866398057257479122986011620487635734366604147809671928497986498712386088457027996380853227075363897998998055800973493645429317661364663965482331134325043897005118172062662694183452920365028531232320017264374967083359735697999936972771532664682042993907755005818744783864204416306299934455727773119865930024973900022217735082209393722257604655493262876294801102457612947719735774310804233411009215707212425581569551390571186830979358663584433367712573673668156410226780189079443683474012292806146313276098662650236856648351990959123160706215729315373532339506955516072441585179618681633597401402139031325693388644086932675583259425709931146867684324288645277953693819991960752586750932476444157875065859123264385338227319582400886428812307008726984499101260934072424310395391291847417991671675827125740596678704546890120772337996852123722888050433206189417219104203280191099174036378522608373673316223673764945748894024679728917381520884929707512391535784470045094272439854390330318726980909526261459746464603590647641167652358033667695913903952876331969062494558996640828311278214449903316934847636735300385826868503501374614937372887697323315666405154659308557260211007580244468099635980713000488705605840068514585945628078969000185942740287352975841242989150336312787251705441541074044392781435141444007188490556725526606975025288973006929128472646173272568336268722154505492709215030228379999862612066841391904428004008755472484342738803869059600638132953795320592259176604597349789538288519403440293853558234238344560047737087962390178868047715747809772844365488159036313441765731826220840277672391301134327938727443161019337674534218597114471418504011017271615781314870743021938918724122696153479336096264117104341640554929355178727341101417719749876074222630153330302879299757903823808747441120295965037039954588815955211249295109534147921207912811091100849884128934892084167256167935386912951444634144042130451721344665315921862455950472584645405796938768166351247174852224593736890513663518071328241636110501061161176666618374335414405907467005978316234534714460680082204704601134397128850082663837711565065508443426051971142912762604758255137473143121932504120938722683335911714978742382497988101572824780933018287066053426784262624122453238517436898074684274119013740949741762726674102869214163205883330177940615689790713205697176004195214235448263006001226120908249776846892890974654297706443854892058580631328172977228895375641635862387939084984266308214705770673062452195804066980824244800664556867619752569038515146945111863107018782949404812506794779524423018337280644044589615452913363245259062290516147418443528061080655942381975564871490834384640207214360038898156218827312569200893774013615483846603929033885004939471089849995223273325982854697478138359359334864983732031087555901104196689826381319589902719848262551835038024126587866770692545489311658790339463704922650575367592559088786330401380709707273814558983536439981443184478618714854087617188320409583363075880921097813540076431675508095974661339579354076723943774630830674335029694947518292576556841416032933019009019479390768031773462894593002458959808698697735506810580988406087506846850268337177254369068727264597703954425889051232916293981231483682250455860037202883469610024163338626390344594032001714282732490396028655643120570428848718157558133587410335316910258889138778277151452659017936641186708270269587899606070363572488027581080090830949117720196936246538985025867850092035455891426129396563318015466824505058400658635172780856112909307689989031841044843870708582960995878863599088037273292929727857189312934015288859437946712124272247031418553129485954914966055610875449135601919003350202241140177930996344490603343268124357066275641985470182657996432479897680016408836899729490810030164379404337763784810918973045862172420948434535622408320331299905397869905300146242807266329962168843137751324820750805618127214621858811223230116730329776287837428813949897197037845372337991535003445827470437441507390284290206987493149396605516855552231660893823531796326506563465014600738249220844623577935749014030259091375431138296143378348116258815744738507600603748225884012621240030380641579187310807743452865721664061958775262655309366929401263769297341809594165593387526568094564850617779072562495445839455354035281976981664598996318419683313437582685501684559647942676567553472469683421506442836149559757928182001639968238307651052369463749593101169850864067747925197858017358014611818226045498306700047710737692554003871241300357648014593474095445117391843796840141662008045793111839574321873763514188695336646357887767001739904450318012485629520558871161573862736337846082691202630955819989180095721819921673905778868528295087452432794289397844988909369734979869569533785039507813864869620704596129454066062406132070298006679442962214156708306091839319193209695008776494761144277392277225649297282190250829178407743014885843384991178179017412842477321910733825695519327947254900001688781148052749430990861234371059325151361660053457281888995461356299679792665540246559639852295430085639842082297705566055353487808134609293241308141678523901430492844568857455700406354984435969023337752778498362833522766160222211735652054686590656774334296656602555958949940928060973356012320488196730576817964443416714446380232171380249329771764521724361690168411898954010802881889634643126272714192587250711102718542260413165526974131381142072046071809211953397595036928227256816225293593556427922469489286630006429298872051499421672905995630552241921417206093317050386922027250615843696085708615960895925250359900940123326393290876360227185019397055548312733690991581973212610466792794409580574707957130444310247149384095074847147000474045821082738136695684367703254282130734365902491632801072527753087476642411910251462282343204730827395080454939151683157907714036650258848460004090504888208278413836346551802992039858856350213666455384174161963160340352205715496639898137799424831954105228479422698585361226139778048117017570837903766710656168074749316345432449743867501753702422235267245912343476851170082246285241944085865530204284717405453855472261937890216018959262957919526429153400235282515030056804501199619350606584054391956663437316676223956597478482625852955407874273114226891122335318311991323755976644507091385914926786743898193332188087609928165184902252594317009621154030750923544409425833929317472833844316591852573345737125382121668296588425748277003002247438667032037222815882341091929518751313080496979217698538677703783846048983817317074059269704740065318610871951837195131892712718418277951797985480513397247560940605280671387633851450142704404685045679944722988397952069163217352145644290106616717870375834227788414617309391265162645874016382889636964681852562527958410237933915018695521512152242956616140782589414316138255651816361402802993804187821472340452379845136937163194549797518716165210402755179420618837774139193826969979045121163419296782601997051650913565586358320054215505078866270805419730699610593990844639206698178076388862677825902592623252384990268652763343176544721782039145883237502400126715304835695937095122344443099102738276838466433040321748656144251425936034794303253492810430718455067024584155371630680276344372556212020297765910922016818016882178386096793406784423980429094401347893958645108393760298315374298069372069811343325312597775277543348139021232372361123961329918665384070066655154340958264630125625271398029008636086300158913429945916760222099505344517172135389764194828727900514719472895275078159931196125793130710498246777889862300014573577558103806647041685330020295234097524032936535383775459910156031525630091056242392614274589073501333438824730223194128819721840909258159095922706989727678450424238005520117291465667111194918064434166858543585758533638905026134763973883580764456789518998087475103392566598435703590407042004606319378411607650530692733680771444815194882364482302131755354548016093480952259878933139910391379702191443576836525284045940244984955923829901171371722354594668804649993888063470412814380635544050134668261129380794084435721025998408575542715310775304037717209100295423416502436712888465119394780266261169734239374155136851755996838649879211047672982106084322436181361145133673190754161298907290891852252750111925753079310640636507058633483550947643452655020469956473921011175874612142293037484617881966428895153647749800241404741968712368261000582732593921184947936662457155351957139486002737392125116009068722852939626861024298760510721467450215325551560197168512283542224528414856344496966123316099754959593310521703876171258645616793009929272232565462365564077916859576254477995761510067415347976545053927868971401857211361759161843111068979498817766578434927799685649277380440902777330469618840496271323872445310754508733595499960262667104623259898811913521169868148477389385263792961991814784247025851186409716078622547827985685525038073671708212142762600076190113519271377178177434908109891936948897305427815528433192825039466976565611119636134152949201884754943089822608428838615705852910882331574611168531336721805069662440495290752755325920949957582908188203753024062378190895028269268524644074497965053235456320220338002650713878567400256615650069231692259214233966005983084347277694084713972488380465711069169754972792183266255328409378126323038795776055265906334177166163305752247002664394773300149824606876947658470623919254912448330631435039245445122123780635709300096585267271549334047213093903413728760590160368592434588266673426455416372870660815213864146808407464746914362044531716122234611217678377374034577701331643977886630226537290011263562331634539390100158134314210930643739390815745451446441385717703087962414496882491474350804296021076573274950837952352398868027631067227400174646467032862525594933874881782351136508791829672064395485253183685179891367272899368355415519849653908991924084453407431396781291550978297266851036391088411911614967651123066060487381705204072151267652635151005068478979305057580524786592924294195544734455071184438756501799360057470467269219960853831381559813400805867021303130803238678311398803304785513115394410337911704194941119933718124157938843578090582829551550941280915550931321295578318019460451878237424464728755175618666176986381427618773313666993886377561632164540858034462540927682521925449313943764938294558763231289283412554012819227758984896634560388037235253085941953878766722117156175181984386280478811365451472245045270804970253259279223514153854433810164404032240420389461331791324443664773204056956601110980519602560667993320004216107238255161856991425037639797081646265425057010979018374167331314504256021455039540942712897761974789434005946668448338469502637890530903670063265323028411099465870129634718311539704680441449390431955877739999549903562605334646032702815185864172521785440199399156749127017867010386667630579414454182431356451524790823628209498715279709396840594014506891024306387621515406431927126177352324676703866394577847376674700268262662747938354677415011447289215554077341509216724824514905222660643708138428841430526292549746526941494128760176060434739984161445893514888420716315050470358702268148105412006733422204495254582584104017605940982359238305619244293274801746394202601457881860657532795531536431188881781693136379399878571110562761675510655582469185252071450944956782620392342618933038337607696684806987009341161669161191492695905832182255505713592303988070267851824021063690099155593395177766141057780738600157200444683415436497432913019960207681115998341081867661697260849549045751004956821626554091190163868787152030604315500847621638277087411219060619748655631602849342685129128031397173565383703558773366845522421503153535996696446316356912428342983918155774692820929396036949792917535376248586441727743383573987572428040070874080388346640152669138176934213789827795264487580800719823201949266998196446424454112175859591687033992589792893444370143619001949689713100149094531543383211131453791516606855406328732101646474865186650975281891364717490899093794972589178280355215524291618438869063772708104589302094894386261762887649897645301038153589757272716360700388476668489296970818236518666174216208452868586231258940926151394791792394738912463443043479489850838832456972184519034864382978793003841320447422016317290363591271781648141203265766531003185446726976103557975368224183054122986092495118956749216225768700439194714937727871469541671094002015800182677074088675908315806293478107281410703188824922747416897079223858509007833739744768589220266079437835529526563515864566374245614001380597334033130001996780690401004649554525628289862655588316609897419872805390018842033959087221992636110191954802474210612754649825957016349655178801990517024792477637134871364527525773198834605717630466179890825828011128010008841692608315655349487863257607145504376333977481185848193093649593839200260499111994284845266502758398091803848150908383186953489058828267263168126021450290562653877485031962748193959965111538598212170156398248505355404410579893858181115068532101048135821138413479711162755725453720855998251663968399202652779653946807179861494575777729929039040143579267925886011448598896096058404126515873222109621028352094416571023576297872727967703252160009903575817140370613484909928858084850109830509084233700965483623140516224389797558459001197294562413130661560086752836977141474595069030565071582233701146172304688589589832037677792975816352361965573966306775446182254312931777811466249575939044914727618552200331015374214584375468650360786816403072365244634115935857622017016841346223045304734252430499706588632652308943537344918381102802299315065786316343938691443776675435295287383088074879821628360323559243970476714126374944416088674326570499453886036308625815533196579037179110262522244994624845055080532962644208886187179296921091357765743537967626874726883758742913800059813145576456470953282533534798553488469467680428741840265641501155814086253323348196886924763264997858951482404065236981440680113816777342330029917793606453160251055685604093126756832146559241514145512933808567785872233583677805715529497569453327738264222781459610983119797100497861683830926456860980828028029498707464153316582606951689749832409860566086535031668426721274246648049826370371171042070033575516020699709982492235399644669224290041406154594802736713086046467935285929241330466830207053082194867311204658822868435166520172385733614691752102401844403099052572713673069134887589687291899888593834243544781990513003303326472257838987445199771701113510724373378984028635590089665988257055209431648186177782400516727462710542618605188989834024453966423794614930941376272894211672634260351559535303743618182868615979812792448017733417697668265780892703902317783841503157836584078194672054519770549766981904640665329253295951920697756905965003924474678448308021183505543066022793509395871441004601335010004568595643694661482063171725871033440860390352290932161599626219247619084504323913364834065503579628481849166731362582720873266353660125480869397245355595228849393045147612167536938268546340922865392237149190724621293418733505201076365381703913357323856373274404016144506574820064950383503033116975297367698276124871039045477174712343331002708834360784003615095484707438236160441963795191886440345540031464619254414304780841604707359488227160343087958650742223108095103330551130723658002473886451876086998678920424601260897814631693191923812088730788263209292208831495749476602228209049720459853978914979770461946848107721674238825750799385765406419677984914836746216705937810291493813756444135077689415882555320555962083236724567390121648958918877119757604754934744176243704325153922286839663160003280348187122221147992406362919055001398518513718385351536339987874996802329340457136681792007828346115784295228580982628770408205080632155638281271610036075792831466073091821369117206423604582763479287718512073265666666210791524702613290464933180754699870953002609770934341848892251360752971824964016990755089975907159020438319772764110751159854778783012476263376433349405306929321747598817969845096630986477733240566951676806151531369531706503555982983550658582259238143964148510018720973154454547838399933203272299924175608601344857805465972297228122811320409222286308598100563383279913042638913363709435925197207835803572563976875460443771687230121062134123228569627336957013039564197263400210692360545399472116643301740764224488791349412755846826578513317336374415500889206020264050391138418714832476375587936052730239519891837934357641346357569324875907308399986341330855834442448284029423918097648325322464990861441651147427963685462820096258536588289338075992642155234241554371980463524613650927708662001306754224353028483300008342174259594366205586476304436673402820460361261269808879028818840781954720083769508583707811882250884212271265244109371545850687195423767968165357246951518146086055704337499107617473403272750651764561941556225849962223868195445052220700044475622570901572513258463659914606068205726553808338007171607346882302439785921759561539639701740584054647234585662311991722006724598310484486896185000435260071843656974052494985789357737045145278706974573943167243831455301480895732734233946956704842291009498667596987301746479233511253627678112083489953669168768628322718931251207358050003243681814209514463028931185613811837907059878405627864163265260751566819312208017345232648256985722535282550593922361733362023025095413823296851448295885145832765102064519900927028469428904625752590465046684720796667860054674803080733427729455607317230757237907337206560550943523715115902998873868215993359984750581588567759538994500568965928568617196100577820681999455770577800818267185753398290949739646821691129952175596680198729513175772937957051935370190796010635497809974589318049088266343881177080517550478614887197993108607106287992833570649103078028945977590501975446880678309792880100459492394785468320393818726936683064724660180934750240322130882840870748482039817379897769099371702879786190431748769339058239037561192972656791889599572165527170391327407228017096039182185526029925257964132403279028712007346629125074440931015476350392003227397869115763500548960891178983549593655814854167491149387779722691732838205374130552425057792585847383126359742587009085141623206202495149092307299495624575277902778339199088090769879849237879038446244942992827963235768538855357599560765305244888730615670546990386215009674722027466766520335312463657974669802625734943459271135787628766860582303906624282484226919199872200281552850690831356674820980221058537991508238283185733655296353995836429242613648032492010676795887459850745852459306057506125629700198549462461313172104485570744720115025157142058289150383947761578760871036183279613143749921811209421951111041361662393842180782702472134467060588972819125413052745938654434251422518609502581771781515812151690912852190843761356743965372543477911190750912706028219391493775585599305472453153496269348901402230594877507939133037533720709763512573316963846386564865488045219025754946287327503411089713533209825450760515582467151584762089816115698561629108985023677637968716655495335551044897866260126685592221962403989436324660263365688926074732955531445754792109748165623486382949464549678290992583404304782127923404423502963798149187855589076465190604373426202567987006316009819683573776474323395290679583277009264287479136057504692996197502754103683594986494320546659990998971146154111158521167696098721327643349207952657660638516007003688268727405905940279988965557705185838684837126410450439128254522853072942425550712120642359975415796537693945829536068615377956619202107435627680896904521044467622894354021753324205846700604573821190587499620098655837314307086607466957786881544007960499906326308260438593869505284733663278212238360948815757234831014582420869966968224666121179433092062090959071261005715754376412296271623284130448471144583139160589097118986058777107442903718397586487096491417696760395833725379423681366307103869209730690696037538495109378724508654307199162737789184515920673432381039425398026500935447988063645678660432003745611786088131833267232242278196649973482395919820271278544102415677750563294995495772456042743232475188611707882175258202702610892018903063388023241525150927778704444713239220613193624680019848459754557188266977149735749666661548321092112725807513354636266797432352848086883794658734968930137706311870255892490074183836269844642586466507188022391263811449727231540019514690261223139119616053695474085025021516833007496048570328903326720625147885377572596179571807985041422589677637114852950381128443272446769323165971863575012121003462959760515310888280509963514881484082766303398415618959919631814191490813087769036981526327808519306552633459732549453114289351878510377951688461909743200900558246113710349512150400956068472929359080615580841014886949216843039541735678407923605224448934716859899335650898976029794751705702396433753289451800493056282122366312621549429815048526162842370353890735386160627826219355224097152003305069928953884500336105095735403784654535345942126171006817767164584078241241063190939344589526841308813225778938395580015831936227475859963419435266371099728476357069132747923188707478824493677356776143098723394562684618521483797914603016447694001381154192976012688245493837020173123490246700227299717973419402577922297366673308248210629301887920111108810008791901348690920821875145064069724359838353477593486723579163299850893638271287464413601987918139714569738393905170798449489336177015340737633674108804622960508889260008988473602428661989194466183804829179912591164168421775810015260547718073622698004729469197205830023349005447475862388437419775585542256984736216948666220777787637645531972618579615439093469890660652285435566178112842484071586696627889152250637824507971589894990700916356158788868931465687463896907200896499345747909685965842205844223082585559741909817087502094969782651429446528152669593075432358699249933500736262526576593276719967835021658075581740799575137804699552981944774694730573557210522107773643565576471377784646983653188048610269205896030573019020488048380089683188383502759237192696701857125570175943507391125900437235477184715686974639843650498102459459754236796793912513903485060715561568647941796819847689744628201454176145714290304734138395658595784722427330242452581984054416877947508908418109455025474502578030631579285497811327461286447134208783492881441010619341230323971006720400797498938098874466585599915556943788434250918184708466737999370121721316120854460457126022139386552937166339745920063201223237676877050253584734907862604924134472998490483048267300600520182213982949187717474206411394746787326643536300200167145957588079959297560028008994568481485137365447419530735826179747663584173644912790252728075868944684238845510067404368607700816924140665187866789890007932465689851255843568824691520396719294703644939286686348821659344267871618308010314723978705391039981978281810158704780574161904008161967181726965827207171796967610716429166997515204517857218981309834041173433676790765726600993272757464811064926877490252297036049547285536435182026043193647852907654918322412101254418517984713960012486058447952941099443914957592135911030517686652268401752511874005009933959230942321620905392536109154799448369410997062511585631191897711724995902316736656669841631825944820521087792178870764173813759402828478094956188353731487854082344145211911284938638910609752267960996336443757889335113905829935103476500521190664751117821458897986092754641076349700130354939108588219290172792378178873532227532414446694448731205288840203384692329340171098961066406591148934018712699209857571739379853444066176661454375316566563016719482603947702108065831665338851171755046384355793318366900705823839298260515142260414563957983015034587598713014054543252419367351344617388976498500723069755842215563397356983726983509580894016240748895623241904727920649792567906148582368783847939742748475402519302836601469150741248909103881418636399633165840800077936988903613425524043087987667753720949626807362437724955569001788161817136141643788158230668493770560967683529567132499510891036034082567647736111320000542907800896038318250390265907811132074018872817833259060998477901467054839459250478756287261742139879265726844315653657337280891251995212056724936171943153931386448175997440624343973607276605513667171578874607904508921403922197141123610433283134464140464343969193467940871870716720600420762963862392633817414049454343336034988372003385149937285508846042320786882770638127949745573294317540410382182940377259632232966300979089387647243444247738406563016074921395329799620536465005815877268881104692147840540795942475286115946074183155146551999295831415379652293332037922787771725414474886180810860093837017726201973289284397846266295013833443102673539060708452325357588285835799600620021254480330344868906479111176106504281957021461542127352434544834939350934307558415906938117534761725440458379676276453136976376409187362060136398560072141145579913490501449193624856751038855413742825253271752099991306481486339029540468991215290716714509218909951780351651294629531934300379040963420373974624741110437978145667720755576629769231677848822083249156056148228973818196992904598953305792953311479534442379061290651507858940282456416385021857678554651394251159255977612778594262155722366173561879645475199419160802637089459754167706582108078408687164599473073739104188381246968286581898570904618535982644819054922331539759372096882881943402832588421502991564419442362856772271515782254375842852401254643260745992570924507774181787532664087287981573362253586311419306906001883171771909548100381161787600546051733335827466544135264670423990755603813057970037014808427791033959476388494045462504822018759398060498505397276972570426469683416176202521613208489841757751238036366726695055805100333417253350335976246518509385164942044415026330473796940859453832587511577677054876255235175155862375652031955200342480727869902530882794647266427332475351799812354374207892357500829083286320163319584260863048288903852222690323423761726011139636255681697123799935963034879314113796137145662962591697725501838409073173791473926409369056748478142332966455281000899832791164835292841554168265099211656443829914090548638639302761714250889861806337050367507859075603847637347050322167604663132687661125206192837343714192305066891400248937529681919920153529692666511103362334359679274639217549417406946099286771122987556780077544589152289651359041440205410027462166359515017998676431401923696994408343348978599595090053286550348631302888985357466030318878279108808499511238999391299662210743349363855440712458196385715559471851141586706637908950645755694610153017809795083787074043776692178199378505753321368342658866301460807536006586019569905869136024896614123738924330956697371988602244574600584139083118313360428613517013779549319766989141325026049687558226940137968903818394757433348198006391524093961331922870396339883207462556647480277422878005631295617966711421304262185117558182083604205540450955251089899784604180131527146540013472083194601146771465149959344487617425857390042405466424386017384675677446039056394996339075381719310400529556515304261738084099558909861562131863888553699990506742365836524134698149258096621214816165409125083055865464879563579561890700003612236086072813037614520919948103076055006370134490604490645728705605757085560476258562853976858668694769552480060078493125068871012498150559050810721280643857709904051773727073602358291936867813885015853675206981288140239944862124812200907661557056024127422263228057896860184590777425823018071511828932376603790809116372743455447681014318039567031451017653713344530077736373973833344792188115693482496387288370265430649060170306044519100666898086952468135126601656676767198860922348214861557976259414203194610162195068903871886250234578130755727187372092983190942836314058600235434602928594725442185676359043273457966091991159665303264619643256005097909222241115169701321696029857827723912132295120053968263821401184445585869764079810460237912531670392931757669063739570776633953468807066061235281255886802144916860301557333795180977472702932374195732480782282239379899031173062979444068244966051550897516716650513329633948095836522319970916833537860699228907722053959046605493307891267558339010446466952919842048869731299535515281789302214442815123852584839629700438033430073114900768812302402792813896814228132200936682434027048729056017827438177035924749785175931939653328838412678136033787293335424222585529059478619988662437294531401792586849108681576906805954770016880701772521368925252992755323096130897531995041711788104737788549103278793591050740793792274439389063363562484001265612138866908906737199465024573553799863647224970251017227995276256986339386163366000004104452675982454865313987784282384893510788716819711734076556495461079478445707966156334984168042666002987469858441446514985164524500355003485863507345823466221394636831704273219025217649753651017438537064843922404524016017003437912444745631426324911705731853449396471818712492110925761159805403955201448017318015653113022339045921451540193387327608435326260926293022979856735168078196039888272654586230084777352737064088475102638037961100479558767060125052706727375808535164130276842937556263446996618299642349186909356025186841586040657858571354787801778171871777154875211489668706430206557165325315158608039497474913447540303734159486333869322446722989965139967085832841394987423187115203363565910554704950256076687993478582089156149046462073257429757411557710307713314813832158014160591311326023389909931401081187791193265851469498573952611799289079440201780635862918881094759664759324896686263265647232929914074657704179354717652215141240105688235727162512940391165827295277366460880069824693249870307718626820350761929965806244662785069020660046763491975383856912352986829682727659472256014104306912951676647397533225190742188764067752389719737809379088543454938784222838711159949282725506663548404998184115142968137697429372446376846769437262903993070290618887371592779988141503665350202804768786213240466291342270249248765524851368409631669755644583996478839801026440028802665225824741619869457203218665131188735590781851604530021666986843929692895157967058967638151340329803820530515757474160282467801232519180569883774082740896392153528064157056271417337021405856452508637310503411505692075892155647581970010281193090734669818150663724391232681284617788698434966069625711000517548949189605185103812747448204229135633283527789717551480078754623280601997777869385792814029812279119979464988362607461545793468545996049332557986464278446006259667465955248322870200301466638430759722644654566350454838093461707977755143366031650749534252650744152158881393994284035386322716828930058371305216689411616252023416764687395365830807017132697215491767178923634468627297121003123395876027902147426590709930908590080105557602341528958337217952820036945348664205592992242037702134839621443221272442850112559663994972657600339059417840955463263692840141037328293034469855431678971280985545448724085364794011525522966549743080360361959990122089005881904631014264167192156319088827840118953869050382926324116647764710768020356668094074843657020569792751004567784332972472185232031912454790918167217682528196508967648536463468753792094756073774180343530185609861386483290083642928544182132109054887277966021745881754666575759403354995690622061537039652237306969230253146221063710156516816078843759787669025837881134434485130785701893972920450295130993697837486304410432178621862735814323117615712386572126125432422372643837078765131036404565258247488103708618485399785561074549207395200344905318733450016232547732686432097119714349284368583899975915138980187482802897489295143891035612674270563325403916136293500791504120058673473025781331234301864636528474470838672804080864750553532054293483117374863139943263125538515348784354536921762879388428154491072517765515741702948875858499032066778399377693587518403498222270684821209052915339339745390937648286572271243672982194507617319398539698929224994716729117710747772314998801223749719189946146279670012449663007145109721618196807284107952820855605400885676669419540549830931794987117735122164880622894571332393108885212026613393011242454608874783945255302918639454026062977452702554787864628915783336810943622316634819837684808739228490441672504107887036282737048130273865555512404153280534876009142730308807083973975152847600618899791698702198948689947029862817868479337801120826467676917489290310064435191610005078177350728395582004141165748771088772589257410885633920785443830813195900826626926378831504204253517663801868953229199379947383109804500812666730758136805056351491159245479382399535034104073401942481029615305541986311420345451281259532127832173328879307630177654989454632684540396276356390923503313534975125909461209154614430678837112757264076801023234660345249761739624521102721568622094436753368281668956919617301233504685223187128308067951267419484667433361462728770464971874454838303166378083673077517822785219697630004648064942726840815765393416236739045159571067393386416696705691470353459830619193488640504083821552946903681279466786132016515743363446611537515852311200705992336965384873209061028068923811483756314751317109078751821670168581539201900018378854787599423506245808290856927691232134398633630824339775151415557332227253840178829531712835617678390449908857577056672281222972530926447889063779330522595760526910740144005887861023162502569467670957854006268354122756253370560869898119426659159871281350961125380956980372399107762375134699830109477080734575346330160159326999155833131658721308911293002728635125320764398237764785364943054888007596735194137404037550756936203296802956824344759986042368783816037869115703145115112185977295397651779410889156603249079888034430352564496113856162071038173907700415188716478955009426170069462944974611767352217598704472611394506391291154675121853126090547551714253236169607951258180845688015874425320490614139580839218007947429805218717514579345067069660108225701923376605173149923845186709742931474351234760357442379851998222382572988463670076387663247874400934673044549555315877133006213725614653089757269598071863906355294828585673526029612193509330318620543234420199759595483859823284526151337792676216082808886732677364650613043350184706350632733759386277211077121461073221411526731882089820911034785520287511161786484980120310064950920364486394680837502295439997281855419077398140948979233907596838532869695475201666707025895465247671600441993629425831004409190337988936003230989471324499034373045102421047611860690503950391739260661448126115697101532623729728168739165389397017452864588955678218127173207129359505386950951222368471422578967333630754357648113216137756425080448550343590127943731854865729103442307882713927276007258003590409401909135792106633952267306442777167713509247317585443877747858861748028899467150055706082705392046109957917361959346074813889183763132381082873604381120268903196557845358466853099180055360041156636873152594982734656007692105806640373871149951133743942351171740969023330557373349665160976890462894257384489546659674083216684664171202750639008909515546066413961015350802492091629036563228341291579605138467893538853583676078879371113939822302853557702617610971225939874188397823079781406999515923029794890009995460944325957447844805673045155287642157782183236308252589332738131958468356768123223688881825847029735551113624900746291641139565865697779033872804851673937967482610763256523048694225102211216450277424231107057694477162606118139163367603093545153673802502992387492512688276490939051477140982088721244778797352936665251495193685841067115371152172091126962963540423107158490250069991598197322869087452834935447420097058940047244027593133322138239675363896067732939196593826748121002934366394064541365972560911470660736921169166719368159304043218367354356120407757827090502104590910849022412166324951149570384548570526503233454704351698961961056309935618723925611458748439152957108984231340252121817413373558502514633040557731717245490894561844594998237667675228736685562720126900854908696858998041267960141862235925337877407309722800246817418210503710158623038071721206205604546673140049287938877130240662205830967648862029405252752038855267080857833779498031347551247543090243496883014628202185288287046972915437689354035473428050948192067635370356739083279495168555654188625566541866259886987667716795377151846976803889770738325821010461816457867154796936744393064295220200983744951940979626953438444455646230286959327155812300471297869416377617854743967420336756816229191728388937590830808111452000186051831776447630282181269467794060966883654513448098143550570425185172466433468279198945301938345628263287788766692889859175873994824293847202895625154004862769388770621015679263371604450177995925829993644096349715523079692974549618991516677830135274784551006642299089169952850026400356165313108880228523085896926162675448102902541186893658085668121786287981283773152962944132161887809333801408061556492472309889910622313829887990376581862885804588988856532340230450207600295409581658091199931168063822614495929219074332798588998446913942205055011173760710324738444449148394413852973641603153321023088655581522466066184926649917569905805473488585856849382920025518844896287933999037815680673858931893139193952283493577504120241712795158514530817588414498285548920823310108267028641129930076130692104935728529281598229421428498718243272966362559100015869327810500389619004362311755542752756168840922286496370376278321959733765145994709712266313497520706958001625537690535125228559218829018926172401822491430082423009254575741757795674347110472074450152925501187497450770911176334120382809950101878596292709768284578577047309117304830425791551079414102382987494822511405328892686891983299830636927560284501954742974326580839011994187915434768740663482877291059793617012377329468587852121513073772008058489417910541131219963554457167565086350644857535195511386007611157309375915208178681591865884702018018115871054557430430536818730814820847911494048825933440677186526896157459145004475915982754682736906859697319208962444377950476703602380410857059970440948613018298640583466614454119020303990355806459491040855417183578149167971818779013964492139441375548432341326403440616419125441644057636020169844773417740037147439628824114970523285997598818516771280657432586079354482675158425822139909629160956636202778038115476315949299255261673550326234495454014844430286209310360058753094145152643536972122423862082804268470461952954613015598970446898723264196247857970971638422917677158559000791855293509413053853576958975665979824870343871888063877604299944898089789591003268963015109327668479929204803186840327305300931351389168039290585152724249312801370518099809289147352907888197593738597315831387835127463312503678014774613075991695860178979515979170345548270116121406060254537864010150986156887879737514142637831881548661294430109753973849112329888741516668407764627625237414483045134140931940427701002590231918157571747814799232006146476269094699345519999714392881197935958786795210103355545055670665373654658871252900087700639544352488144938769577765428938632524602566429578037468666755176795143277217209896479675300776497340246395448698939084801604832098239915582307793819329147056895547053299767474458393972946365156858529835335650723309003486718637546070609056057872378872420255424642792652906472437648423285199551776335984901400925217669509462817265363065498560597344612683989384003946797517449965886782053869281836603644570398390101468746334893155812928990678724988847838360664019095633650597571882860884442954408020438450310369250726378270231667947643359585783257359558443803836066746574002660849215082227695712515380309680959677412702194047517411919430700993683197974149448344015722384207068094436542238411260383525680803120590264398337287748089286822273176413906938386312409511120649169826675523521847500918153930701816469615410717700429792650938142089338997588822947575350852190049063471946501026670587731078729079361901463771822535427488011553785415842618875877022350002931639485084402058659650892927829730555325501082939349046728183770467794486102657612168409143600496554078324934483641744218624052475931109705572882431762753867175336714850187538416045006871437514248242030940165901509764985794876477411117326168889216154376088793769807192228986510512762502946678108652787466443511727860431969760926364412063312530013890770258404663901072887753006080951016767384658746931761767490370076548979849920475633313221964229552522243774327340398602749253651334340859249504513364835556490011572232609053598941827945858420937929762766338203522771754816852485205666139777636961205432083797956430480282349425892195560793638135267812789604332829777572359506577862352528095910869530269736799904383185863442147985993905152667632794733915763808063772487835880439078329627923053486509293132447071667418297752467489303587635525215753656668425537859571703504846685860267486526049666742627437858091512343101458581990709426806558230846044135171744344365384381190680099685174594394422715268692427463215986269826925508030806203355265859988071594410095319590002442874326860330392826894331800723195070723322069616976486917252759993667579165061852573480370615458525700380791063708891367109260047010637324490861258368014182251023786546099126473628876195733846086315068301792503505608304329735661690659787825266917461047267233072767413653417277823862251619033265759676951769086985821939886949962469888655918658787287310109551604977421349025389102111441270634957256275019636013476349463209330647707131118990646911206831928821597005293119389895377887869456658817075133975074945070979115331036358563657121770842473553118055513065911017082703561790008707654620073698359223337030021452151677471590750182432864427414207896366966776385363348920530848329511022257637351433124144651998641886662796234352009078692433781231819076097502191653885808801240038589546667271931468230968483474378239473085828023556423558506313633723464911014744779510307086588579308949491991400191675481690128683270656394554761490829923765321555052394828001073700511112348203662155549745054980289852609049992573403890552557784145702200048743367148126895778584251016420937865185531614319393763236046193486707640380633912950887040263089559545767365579963898069266108050185543942301050971054198891355545516636129475677747298666992699827477191194583963947915212191987563044855810984443167598756429779152056748425983381875356791772945862584291651969352935106749535305645836532533858359285302844138909242945235589060054259031733915134135435541464477116963318858534377972369165863170014986507508812796455525304133928549854004607465059406756855603285727902493968120475504824624623469260863314983394054628484444530953867829520914689798874527295875372244071295685818664834431179363616396682194887637424906010781489521972710311816969203559716241790680963867847547096440915314048948763412837154253632736867328265997244061729254906823988561866295324337974461940308806662821551781928399971418005291649804536944645354828274486572021771203996463920019458106514559446747217031861580314625939714471730022447185341693577606213166987718133134335312139404053824072369994787237855875750765133532385357058227672923922402650486725981264094438635008690723012018319864727933263760768884885743958303199609180267318690492771592357873432109576766742953345534165711324710972712076681230621960890675336775094229098101251168949097607313102156342131065115676745528765708778176222422166972931359608832949181143931214891326778156581179990796379588221501205035263247590448490927017441119852828482440612243173485367677359617148406640153794889225190598575595256907980292892982328840592435699158904436300760963956382170441954469169178796283353661978042526005567496806541561243478277622410562701709577851606086051460834427827313681993366343571783912785907555276434125923705100161839460013808409195801291743124797893751922641891590461255539795544200371144858776369050005597482411980944376245697356465137250403309394839186136782703005924609154936283184750111432349156465802218434551587612462994093284478430560265501621680306286604366122251840563985741223782639147555811131839468318945768694087365015797811193417653472346271576897476866454986064587022579962811520806546283387146370952400890526036211117760591573471023584935630180200800435346635534013757750331243579163547123431708014254902438031140626531707301174246059060709725937411670993679523099608444024249962640393676576618080369113344070915825244563789367644199250385610517282888014122725877042698386684475138272877593854527964176001838494531384712228160667609572742854173332041667334377844144167992867308989470006271472747895338937271489511379546475215741036107455572733225700919702024888525138088789205933417919241586079300756450723068412271306142201889669256104201342405057307512490467377600063966876984600115249096249085249278699759251476031039060648157741693681864486607145594870719480770863094982714820842211986564842101699563211235680629405691230764068304105483720649633843185756181480479118279190149176101118666668922962425917791691150885999000991338088690361148466031228437771427781182391004312883690253398306197959132423786940417668268547639475343031409394025349712527377000065723101945936200540918849458682557378149983459497194396905221036151346127669562168219480984555232851886135382651337973580293946654336760638765757910368699686181871753103334571392693602633803372107721572127536397050780409279337095606485571473762045841138075640526117409797001739749578675762780161946045145092996725196687502762683271402012843232813220019327870504358171698793942545050855581873890926770713887677643661416050637908505422939508180549616567057406827057864798315035929767945258663141462057281846436234177962274307481446033109083083970664183239484610496104897039109804134470835060551732627978027240707011296264414423662191659676534404363806086355775513665430581993706082926435880322056872273708237301111462735512563311109405676794135592754322969181883626742572411852706024745722787397335490400363291190796695369016068186467536185093467841471127785161426000909049646966212041993372994384546880361032927220485625930532341700575596226652290732528907526545926960020290604598648944039223777419218586618902404658244994108440415445619777670749796395318427314384082777203637882340506360244022173689835090377144129163393696628432509824128750722785584356983948207772962671407066804750641041339419261090460542471943935750300688164393911557775802979159170080130833827554161428485297387853590153519692338783861675266834829801602140227861453333856880208746037018237712581227215817743184290016754268262977783149236233500285350711231670522689799758856649195925159273556761532236311319808231100318650252041222308933659683726172468174080073947179441679225075792193288510187635155665569934315784404141751251917912793648507637022467672779129092187962965716270380477491711581060070550390525977769759777921590662357317321487310047673540601025041081190487332332433264270536060936107954456416853871015315082009378185548848953513635621999478694339377502597612924844878037866705547798737290662694954932225531779085263458233601182794006041232634382278121774023798632707298978675348978720220619998223496797328296090567331055697088172229522387118236765671793928583438075036235438605080233167644762860819884109699904766062519886211060455145050484019414116225580692587705786001478340210561671089748579909431795618016889251067379648134820404946267003686740511130173111817794813477813158513063049221119547457706853194727504319906539765463835573940977621171879968312677555144642662542241427551986772428182047013090530092591677698921602437679035462197718237799438864898371300422989677289565661367881893182565023620105868746799434461886133264060433956041570612222728551946269207485814871369072398899030964034711967570267963188531337471273902081728933246283408962594864124017826253070604271526624442116521996556010508658830733399188350025192772483398167566192793326283417820987315168971699727499718200350986203520876308591380291157514909533193430515153201111356677087632152803473822618855082765776531993947289122621898970940137438260697408789130582273750911824005103790967639753044783552702895143008403318152360812934669837280493627478621605423581140686280173937079693239236527100763064530013234471655686537959203017321954947370174283310423117414455798617798073908965326927239951201193750981801784232773268387600839742482549262988757467254192850394696477797382709013059897411104967791786825486680847852345741524674322957281610893714042156972490258866751001097478943526695411981554963622095915739951754235205179846080100999540098597789277824120608496719875370826841487808030580056407207738652913955999482186344224141694117906055643904491638746954223652288422085587843944453136090331127570090716114688363178590776990311318114319924403496507369644783623135681281668924811752318905928381446684853062469550301408961316559759563692163964062930405530443075032739248336678994655829129036957493934646947424737131149808209968335812488752411576409058790421351451580186739988989919833678492119539052832965810538458025268705564722123542711013202112431951758848634644973145845003711243123284195971574584915103239353325339698150818298552692334072662459967923091455106694075178270834130588185760795895799878413205653223868837346633155630197134722327485163225525423451783891740482397213825973077735215510146828563515569360291602059607353462257002584847036201569996353942455550159379035446025314598689570348921806892415654131883044238642988493824098893039860301653169780869492034263794233146160052834383654872604155167974831065995987165787452443354689184109362012398908833616112793917975353784794625584308596499695202238049865842994133068754266873178963336351539014311100044262736862913456005110189820221395738613549132556428180970959511741368516574778735592025302138456043016897775454020236552053645844626782915616243673059064964236570657989316108513056989224587617117582235993022606139647749099700180474966164775200049780497452473096066983376951350977322662633589915392593279740219688651263559689745803056266829430536632027594478097824511856694575283274958849080274370160996164686811694165861824081754648706022965291675149100479600520545484314128150035581678474487883980777442508643454352162282980168482533611919341639946421639158842775713324302394789559796262270631386293322559598069329957547147509378774761842908827381866101688611246245672313413011065110548432759999930525618132985612505435525824602711463647717274245665509735760643205947550280510772291420596146127737974968890269365776975222140786539314596431404805111846983151219047540045457188771294783682951232966557898273082680005402347373314082466256752543958153880286115890794274435089254198620979031240845888628617308902650251474401235634718099345778720646987600446988266514085956238726626293571669733435942036965957705376856904616630246603962179975673817910593386014638368456184839655202851215991919497671418209756398451145151540604039510708584695368996909564701519100320551678058452142428355666539913911975616252085931445603941140598041169235046489495780149618871869480511191321687099577590653815122365177285694022264665843249978533586646995989475647223002325614589382336232332616126101955885486835892623983023556027490036835178298874370879208915182301840577644975972722340654809955185767116160807769988595599341556083491893709775981439052635743390503500004954876133590323542000621854127011301969277596360738682189356044391366347477893575117167177925115441250102273122956240728213482205008879382677592470856442268859453265983324995082393348980914877843807349074554894012227449309902839881722554693516854287559058878409353778242941818265876352004069258055634946396105779489727750439696428609817059271981954403428053794841287702674524560461751446320162913453988611220707025088705204379122245989630895600724223895360935806910753913196965616555932647042585745407770189525513269016876260977182323405482205586937989755626599780150388177874924289354231985896075976053459332592878838957380431340469250933681988435904767946260895010614446672266570212288702539762032384897690779882428094490491828850507410367215212659192921157228295531617530740487087913527218758403104718934731490837891869859472728091085088535983735570026798298995294702069537437441598189789074467885091254695702419620882927171237761767514022732971727530357211619760459166729903013026855341422750217241080008103858737542186245437466475020984653201660696620332761374270955683682871100895633906091430223049506461834542974193040618680281188898318997143861021871486379286307629398014246346187242912389519349177750219905614936155164412770699029886244360459151094145027398702740938258979857648155559400437787880473714225555417514353653522736133603458049359387529400454722261520028412847229738454659658415674585657420293092696139167655257963314756913012395629783398601227771867966093990157282433192663720275665157058376218488268131121603064077662435062565969747437760222908962105656566423515230509995993923219706001114108387202566379714094244520357566555561923113454705233792170180428483034933703444334495565359592152781720364425521835829029379431677030794000372484805316395346993418155130197212368430262173860400646226107546981510057465034778029711542616113640600011377268195026431365406838594012327811976487062772407280505402288217940041255172091778078391972061042697757609983993317356897853261485363855460467568705777398577029732088626697059825960692233408503119181809045254304376791427947259211372591811172584249435051570363218125530242120007050787251346861906699870272748623821067448678565605385920954209072296110404896776169674095986264232235359533817249985923706063151067233944547556395144747720580773579585773185452028401150594459363021865702873336919115023598374545952037405357301810637025398192767576619136711796570486671485562636015060255895124875094627630989190544893341133064150153368654185745039899452886140756297471715061686347712421832214344862638178838895443715963074737124151305975462744988878725748196359543485166193302026698079177450481757779372714229193469449416348622767221110366171366084957797846502613168291855359510940283632728119748966918794913173570134614823109257263414001813128058708662184304771709320403781763832387639064739358896695736158451739439667645571121211981257866066257921843632927595194294197187866223613498364716059651910290005892122280643674185703291184983163425220275140864976331417012713322484667885121666716126543899006875456923839713629888689352456932161391825540430385693902231891466388607000909664840873255833650102978895692337994411137258053790637867174898621190059879616246373731113519019791116532471636878295935546594690184820109763462261741832898175598481861986854201361943399209353282546507227854605886743554401700050865347786879729242222152077515587903797621156386493844688329594774766224129358206336453636834284971450499608582304396345176723651381303117361638083097850031700826722542842670360467414813845697620294935632738270000041570825269420646160990206521428650916678174776448450986669139401735938009763670557550352322463031104304920179582274719502100087397713734746510973120937928793435029668743010957625834575768458637319318580958748569626364303536275302542282673050035279713454284677702915761841768258926105401820102259296354373607742072953454880614117593857372735997638443054130557453727287775801371199525341240533585579085929329273360683066135073147307686181401084454532253147093975585404696090505423832388903777334478469801012172500910819625016932382539833365284839715894333178024329904755712604308260265840745812772367196861135019958026694873756649235676360173802394617095298174235406711011832669297137561919915205564816183870888733084719655359208885241812164760888430455430852674292730577938883060666655239103371144666788518897183410981338124022412960574815544207300520150119887208058544990076448850958102268934128540442798715326741854638625210291858881281591127178765867508375537710860758630110058419016365795937493083240231727676793842067391501088700911593429825507832711170089317817970416990294307843437953969125807452597216534418847591239628761914130395518543619687831142032690627506022780899544847155166989798404695622274253885801404196210176532182146390651054537495412017541213330389447159175699573373944947304493248265881380775403707528605067038528330325214878834542539275132958223387041543039832430943635821682420533380195234546235139160955286140438115885868392500418748920515501132111425968191835782519858766385312912799075937099841700883521768132426167438167421722906921535133154115076010502346940743081587636316508977534775368545905461000947135499380590764314707584926968277122482652826440019229232598728651192489760401291121403602780948986372960999556444267944442918639145029573625253731431359674065676159539669740635095903580346439551203585582185683395730083144332755043049376224820787763456384433148422574183168592868954099090137248909231217399390104583772731728734441768273548167674884492500556451408710505975985690216288971009549033848574067561099306811690589177021843632676774400892003996739109955159453171383077027606551498391906494513662682841648437845257037884714750714929955919859221918831268364708696769656340433481759522952984443894045978684306298847966847904138496966605127311347984961682596697127147125645911319398006937610892401785728137396751969137872924678498596172850292424549147482973002474498911025249542691901288075943589422928866485511180863886575667029148234324943726179375123302108581960067665065029516755836259385422622022577091871888690338229715958924427588707810530264773755806735878732138574831650258074163055122749306325065585170579923040102792686185513336417081477746562342065465646526692095937492245838570640192822466694027024658502110597363407331951285658014271252098264285928811834484557975547862765705823230061980047064550552088760849199225330413227656905921463484628023969183818263377987908118618297545747724176204837410667384787713808802596775461035357129045154896858501558074849949339210297171091128146859423936446297078967922747848776043211986049256010216244869231618936507762793956140292133444402668344132356355248581537970477671653812890993985083186311754653976615814390308273240744342038122222023342770932882100457183768046381906933118497423480617567372033756278283359451513772958511974663714543940579304770575433661501277015248436662701267452988818850310191583309128982012031666841691301876439763994925341287341620175785469365072505822292561002256411676060002931008831629236846188666791017932638031921066586645675669750539622240204676787933102167890295862850988784554138883863952520249308982820323933507207010020593366569333500482887694768739898964091768395500607532975726258784116717463692665777054654760414637641691370427903967052022679030140820159695594065778283000664284091581163952911254997928196139553813204984660625256139466486945950596687427596608321553311209473932974508212604317455124308308280463921184946737504295540890454592894432000400413578136488940426642042692219855128317261197552461548820918990322072475131546367101437944261659106748773315211356792359047514364063462591340117887652894965929679564412963292342872783248502810162246515269230418910698092175569134158376291575457878650201071347504471725257239110759230508453449021223586474826576102066441447527733092435014132609077297611973925194282886681427121009276414255775626696772139884145600700435658296312200457530314905985787719561870402501700515828743611645674789790277280844614675693799719961681545064087024818792748272045483123374136624057413046848072073684841518015670269929429577751815821719529794020059098189895239319107972069090231450577758285753675641551397610164137907400772406030429776106667955174420062438224460358345771448105487225795206567454065360501630893285228632031711994379748042696068163627373541141593396135622528345331825587170306211498489653347875537002111292225383277179699446696836596645323496452363919723498304271294646186656609597573379011777203613085298230890757913821730563635987973380042055519116976584998273983551809194105158376096174981907172130958685058217517303919772899694611602326534091835606973762354408822709178205875501327431518845552095929796186270658633545203307400500239739735477505421268292690515634362066510386376878218526894017464006986237624189385598968350929771091695401229101002455221269816918940793568731471793235112493500913606576493324691015759403297008066984976762216199874525818628439894926017890228811261341180257998806925670273082512373579646395132014167282483349391693686700893311709734149728049737665084436007146999697361291398628850083023396466407921620062627870397395744030292862811986709508283905996183700705479296603032605141625584239132871003796240932373776369185736731775534538145958349563762318515034480388001981955784727824545671567964072186011591659924779885753952136708584922751387710184931171573685467549837221718793946709497968767521208543484084807996448665203625405107791267498189248765110026814525764627664601145601471677858040052899736328043145269770714824348507456025678813487386161934144961345639185063542018703080343820540041027884984945534850732976293252236846978083713083962286094130561395912959699076641963989006133100977854104033971422376338093496644921367891765157456143773943647057127287442404752532159951774501642102539584024719823845733747404077288658105027830354781046690082783352787678459388874380913471932289589839737160672814844088402953583603747160858903235973067261630687211075511931313191170936699359660662128971905053568620580148064051914214123201289604693966054307082512833790632292091091266458714686548419231066735915144808803449683533856793894106801487138261158469154113057739573043052616829372066876357974960835356635298100219333696795861582890632735555142658244207138874694436964393833612741263135686834962509466062710945347451497114860705638858410985909294119141966816425232312665768320756288142513383923162561689513759424994884714418752345809345392696146983374809399030606501794004391115482784964016975963347699318804886035028798345040909547048140865901024791293332303495844859868774358430370991252434666048893419182211760555188808922076193066800601412919815539118729083940849587343610891380329820003916089296783903054648772385063895428920843686009272845057252968867803171122322829352155415254110426813970414379840571281098700651779415578531450436194529878313248750330662456953303061621610280061149120966748040011427317509713472254632495929854155320401821851562498328310229865344039540586983218727828429088998792413507896608332995982935262889728638791199233354826387582612800299910434751410892438372632182245886216753347992682115864533456328710490562580679098532114280776599628827356825959281794344901355145290453009336898200196019203691122716190768910643849640122767839611069930263532836454592398591030923095152408792267832364044971575799012330047601927227389620566670777669569264020144961939977142176963766226111826654159758995445993695571550712593137780595008633340183573389447786362515872017348450803542039685256938053811016369823637796547462223771648010531278524483711884870098498662546815026389829796157707297829274859952233849319941457070663346613891018844622317926382832575104622070279306928276948221352633516885323835732611775280447985910509690024514605830586444148717170832560010967498854399277327230415661607225238270057500975270584033458788674855083652195764561411301955537720021398363710000186756729650198832933222732599064663689183253628326041098748420665635419898043185242929594416896394362819826916194780126273327917037150579019646828392634361845179044700646784992779282755736804921491621354059265239155134845633462214868954953527748255777557021834526544157754153678873777503475083820327373064283038789071250323629772670403980497562277273117039732275444119798398045457330771751311889810803065932755991981207660531474433395478874648021964965513135045182477267865202821778701602271219195384106162241142426571830439075473945931348493354992962592610739256911060764696260246089396693892027517111263308848408571491999231799092701852995567352981225431227432312641980079942087658882201575472877072527581168603955403831665881191008761003252761132917536857328527647927044596946149131781237100831736034492346383507085189548323483118222009967105595491163697314105197735602457609371277712230846318285316044129373614436112811843421789662207263872241209040707771086071700469487422498691652512674791899372400797230443941643953449320199126037820795632014325304528957389502368897116821910722207086442413594402692856673109519553588518422258674359850814868856389474435567571570501345862755366323141265171231496549805252723669707821949273124003388975470180698294762327314264324049148910653542531988662339910921644447381907796119854751695674966005515008119784626162140803902827778666077083225975525105196289364989616621668948946740969844596009216695535871458505603287266389148540739417988126924105758594918048833530919278817441339331501395538522392003027759007661146414101786556668243825895682976206908048707610919043521663167232514816910622614063734120532478734356997784247558966009169811174683149794103663782666301111223296488295455589341191732513901250303069303341230632375117141825188678681629458888868094104326089152797976893513174345124984945150249751765548543013665019354485107882946531329274606046359419348714524558520503686436883408819978527836520716153206171977587948272079322834695766077797871534998192763161924763779706568350176654380343948431518922703701889173519714685036518321412652924372200644619942865952034614178393687813288499063330294149501178882246234974727880107275502368536126571021606519643321583438499335827537435302396756776703130232263147509278572060828069001833739543768324948725072427066931709832961121067461744095484844205329393838725846700195059212873987007918696931800274935914594930293448837755111448027647305955430433694129141603534414887164085655508225110687543565263189588048257587940725511765961431591367480037225365997806996685619461719298309289871387420085426435171431279164567838721891349508461047455456997958981219893973242990795225174231218032479665423919879990203502859852789457040506505785477356864961190871507389558592143934459457827117802885987243216567894765320601959311579555970224423152937278579061662836102622786855624512382715391761195623548657526067101993485526973682161850259087181373875957282203979105727052467816347088937530395849144004806012429280373249523054854570223800059059704707549565092298439810635460851097814559288797512348582103683914361034725859797263898899732372038510647851749330958431785094539230294670169290499445685109705417409534707100983357331277835683204708588490351938140209143677692509932675190756600281237604066624264647811167309313290544861115368183984027832240595194783391811534879080565755490948814728149753532339853691336081927134587742877734869863231161315284558725280944979867325171710124570035095998438677208827996308252844077183337700895619169045359821776795633127464668283506243833356698551976798169743102638229228435308929499990094521165623749832060100316894005916317990483624741108990328743134182345283011354799318546909838971527708736936927561837188814652954323035415996157880870151927884974419678898073689458108215035036386187071169645676803449770056935114631008209197141634211447890252644577702253795310953362581248568887181640445860563227855622798588714378136283998385554976571275638094301118512999686138803305924615221263814597547231701701298417049284236110944409305152333029156754012575078345167987937682013394060277410962585269237023394157183697539338584241197528771663542418477598340073448839967474079439945460114237817486563026568621886258379842874906805663932971940950161389974750002578828191799225909467490314187369725878069184310339736676123242551220711625447551989244650019001990006014331792278442102039336550572638205793220873568145881138346774938408556003830580930051103884374035082864698750322524101974665617662102862923810902401510360742978553208500073586365307778144803597901606338960146312745894065564322996341998788933136781797208852319915380396365696061429482494696938037605671507469908038089641550084821515698531754241549916359639654038089691289042028721381209175253892937101085030575404465511649623653257862107640088654293620640704366486137512104241143886313652416922942403167341745880232973026349649594380530474388126870878155710020009881565605128549289210105137795442296866342751706176294822633535114496697112413272129491048671292284833434701747902657075861180610468140632887543195229309285183747187773811398698422759915276612321070782185993137566932458803488925102533481708343956002644039235753163263079544306122655879874318673964834224202494453896504289724447880816797589386879093964170837308651639693751965492981622066393160034310221238508218561708086717310757818139219431990114118430669511540121562443282069795151125616089547598884117927158243808537851394056993069607130812980881762941829339483978360922469136174396283849584090639300968742093947254328069834132955465721020418424239585592767295784128145254193771097690022916833875870314780210680916546301553819007505679932642903600990738067672771098139791792615052000907956584076956499366452352206869705895323604930940702653535179802343727998033489658696747490178246310820894846642995744170812898722221940839327476801759798167449446141504650738696192950481564180714327369520289521864046800192087196650335318105037296480799329960934967690482105768099020306960344159218240221527074857055270029112692712262868541926596085568423985662288697388346007837410788921057355339378758833800767731368276645864640579059094894494352803795573215054517170042113709764613764405766678173029181251916316689032676523338669013686293527767595224941862057732299007714935216863426185920571309864329297139872358700925639193015616705960353239976567637812835283638984976189298052040230740526414055969080087187672352017883703742004779450018037423274825141747004247900455442732836004618906342244725168494484081806446325256961290905157085870968943734189793315688674092507723855871346616290074857571793000063161840366857000069639834133408080362890595100274310066552151529983402353061736038508301667714921973424300400128200625628295113879157479743152973656436123929255594579805233757486465974489633280889436601599807965691748283707760141329502958925567575661921551909249559076127258976840909566086014712002142914284843336243743284920481402766295819779872635077714787041888277748295451291787682640326744596218574809544825307010892026349761872268171416323419956676889020033553678224405600307470012415325905984655922128507150898000912495992568431806693131471767357569431465605388510666602413467311269965509850485942287178188186880963518202164495303166420891451510712245196035472328464231015025270694356470503763160019274907063019434524334884104287323306609731234509340897722739254116191378777589948919749958547768629588192283556826943457337905617764172574062606480389585668378101591029592095115213553509029029238061779691718684439799871751418191111522743526990238846504618405515534122330516690058845596317660770352130449091383459506047008481828745866662780896071806933870769617223257654744554574546574505453164631756866835513229303162399020170979652546126450268245732448935781703541833772239050833174449931073456122985760027026651936272816024075134624584995260292955765314391414882088011498492517487253826090517374788424593825215216714312760151502924310005810903660163453476648752927670198462130691793117405863123657576081753186306600902653511835056705568562567121994314379167462152578163946755855622725681505200357442359061244234784382449362198939821689848151715683483926144863108143172279309475667393468993755325685246000409218855516930104698745745010803085891123778228052314573860188540894918678002322367706912044913051373621936804806051351807585295427412273359263723299089667366029369122112026200768397792446619333367746902714555004062840933795568160640407832775332438343689208622333759647130872464847081137379534270134049094376871767497538817142103321360856644156206894980174111758126087749420980867233764597179137362128977430697962130580316037640772560470394771508499558574647649724095802714313735038171969636544088079718411147484077400612740910431476240959037973486454710491726260079978092144474460704638886923538091760389946003445252755810586701640909089449519195388587144989774249912949302240103193749015670355781584697233179427685277529560909020442762524537683324067542871642489819520104820797029436314486105809075720372651578032908614961036082079806600071274722127318536339516805044023493527771346319949193112976936188694802343105586186523065301440658107659688691263210211981737932260971554901264679898229836930176551326979608178833051540257811245064027751143047640898942118173411608189312018724583040187974219135024161688220082456713602934022440836544308946487839138772931192668870163934580792858061295268650615054196826036244076430551906900881315618546707209303649442211703699856034582389087335595932240495875497771948759900692715664724128743401551859692966861565277502033609947179767076670097072041189142329379633664946037211141930367802264609236152055732816487276394195295183531903004868967176246878879885307854327974416779475087704123176500749045303694855513888889598505454112125071762916525863345681968868439441169237928758538274197624347431936272072011816705848772715630226927205182595212413823605699453325889226293666436128053252815516207670603787977249192152796188225000628607667201571320922069808686227892133707007060098872733139435680745963566862417748221759640275538411278215384433982937864649593393210658175130329044661031749934548990464846197124653691757578665651347924907118764223393060723794746329932404073000836547820514839433945219470057924080695263320446898081827246203672285458059606643179961097315052179866839233299768619786263561583870809843648323091275682956420975442302817114388813120015991351626117717924516361721928985879742833687467415159455530746118196967223703440804750600640183145717861693532233321464292744842267469027374764355252508430774160976031307161109651448387742536667888139465359086166152835252179867253242582658623648994473469510491104200140479983643580567993204519132204652071886304439945536075136227490992444865584300270698870159899868465948861531569347231261779151813729770226694684291351688588478594762387227715118990985792106963438295834451543790616384759538999051586361897844482351015931903836610514071018820096919941688684345046625748733170279930491683516105627045126611082277818045628138850663330512895259269886005040382960038240150664936405048029337483961418113886704879871730814387206524409138114161775325500104725973503477863946987747016853324836783088328615598084724649076759650219233589224092371101967937248448341431484825489576552774821061953233187937278301291813525377201360519915373589883192404975734180539456096775907825661708914519074235192761440027987729691717164320927708110376801935816099274933842370313970810330164163691104061761569897769826355260571940492051571423839854557715651276682386796021826721129548278056079201131035972269225702153683375273526322351193292201206506326972487639827940501490770385453246872716177879662192506788928509343581388570062883454859885157121429318751160159861751775672305753152998844668422970550005374480719447948822593624594260331240714531144140820676848717118811069252230070846089874320753913282255770890433795777521188848540593309086589306900701544677350750114523355259931177386481019658083741571442129520981407657515189137588547161550904303909071222396470303397126128807302046152942323620088677736450672907911331118676997175333729283033604521570613968464006768853281010523721118087987086492674116816766936181157676896361919602102644604708009491139364577524563545752972906880352284146579984864843089376455394777879699102107959105067582889756994386963276300294634317185272673426832340517629179549144594241059768484526492708554881506042332773758084469843395239466830693878784308805312926914717093719116825996422035282753800261331284615067727465761498489365762389468733630812577588150177881597608162742216665612965690874649932433259014572476482086922235451594701865794905451333473047214353403338046678587385778689174207940413003360637596007373956199789151857126623419590778053321507748890674483030353073972041718453810112089673729259797199354029566547058391941932862118913942766140862564893371439393742946088374747195693315067597661547861559404922086750248565351750900447234937136145095410247994062491541742414651194187070974509041350195210482130320970649826566468066341250478112157723595356145436523629708092076419340831045644177070614730584647696076038593643285401350629845994854243606750535783340488881694667141269831705362700455493485205794224390374903675881412530793810306228567605006274064890381952228995358729409823123633072848138986449854725118633010473580645717200441153613316671760539272906144421203106785949718492601778285229504177016882378518800272121520185808692201561658162384722557247239331865417510002117783731365590626592387826394990752342114525886144713374442436327517929112631988770072365818606723566556091392725562088455347226656753247778336557846636324367658133146760515892578180988178794730898773212133156107484186441236738203168111859745040355278672496582267075982754601642758605084094994083879326071185686765997494235827709649512510842170017723979890637681253973315890370548809917049127029220164750158960118168526979886992958871170247817553710409653704640067926503516881215431514149081745044860075180058803621602867155517614795860435777590867252599693975957309776388860779907886479174471903114199964931475933498032117609678900476714564934633275389676519327845829612423401925154008371901847314187639891883027608490289012094359245499846800315480145233271543621464431748212203523927338460252466600923092612278633262008953545219050208011250313027214880914163143808816032271342726372006662562824139270266410094944371959195022638627812780235372535893669850365198867386860283682168121422340770664991932294022683906015822966587457770022873018759472454376160242840631188716324076477608740816080153933229611255815438150169191898788055405755901887895736006899299344451199465585810457127523118951703134182900383246028825554462174332654833528262974510013784507419137301953326917760531817740280961632283872426674487538675759285094146169718208639877877303939922302513723481679617827261001953782572989730143794680400206336771270950798155097793806329375461104723811795777076245695366020381142049787366836805954047483418516185207989277740701346220117326657110474402663820656520223515489278926347924592650911301258371782284093063475485186188076143601398437141437424458357938606948186800857078993193222499927721196954284629501043382815627843408478026678016973459729254649149933851969166161729971466629939189736665373537151353170886576672129501579360589041938029779175335571701865793551019793317290453329523081261532781983366969855914274990463757298025325923838277456897319892473759383698565191781519664784363149667398565026939743637007032338348030560113716722698653778057524683938536771127598927411209474768731354283258992758280371079331209267506885278347081197781907407253770134972031958379389159491329776102673766091008770330215791867838918185856404019716168807076269648687373674117832465655033819111944578589706316472993126256026128166112152874870292877755570392429366085232305028476692902113880177073412426532111721180353260373450561244108658158510499467142160756195606695856017530379348119911363315190845539923606184747667441192188725244630001341590675145679396674940710246669580952032111076379616930043662218398590623669141993188964901298379855846542739224302027362444674193409070753167700142384147842838552356511720023308606336339400895309206853330306614038033520598704950834438004199403117187830675150140782247024046860919323713719908318833092908414063059691215168846999462342956194312125592152197634429290668359180346582852378413761717596280916414389328487754069830380375096712375164626120833945289000665410776811213857611827489486463126311418234248003734282661869834790476335616095623319760719132381266751400179321234134104533941918042432395151545787764198053481026299904463494789867073333984606360601809621484565613100453981000047619817299252811796390866405448366891905788359691131591996874532401918330365500888350569606860466448509066851690459820737814890846645992148319731099748679533966994315796459637914667072068499424419889846254970613242576866786497028335812554576858856614242993713413510090951205960560397947595251275236910980285532208857967463275269086258287564128945366603722578508356087599662828498574906955216718659775298349402774632276613321511785214406204711793505367110433248432760949946160890478259673498040353739089675533577199945662473085503115207874742246649580018704611465481339654800561117304812546138245929281899680238525356900266000524080935758300350352025000141952786621323654390998772023076176179377779864784449010670695183621685213453537229973485141351063546566383354305209699706455061838796369209540665279570798958577019210726879884836601153397578030419080409725012913095993319969803712912827450573858044145079239248141168580873022942454279673343868528355546386371308687868127411188762298333661795273604870406480233940825610617048812484708363850617521334516170644376724575319540095190609124112985603673940029721945366875497621465934939082492227465351329121232134447537708710001899059026474401115023364722586088472689085785723411456745799411710592355587162366930657868077022036595502504658975424106896034681724162527345710139004740665881103084587240584027867884509673803374746202354670165686496033627840331708068215110687964634290546653957422143745721849541811121713106380244637147833319629851735584829920609208678303231800393576663973788885341922062246869770718708482476526709631797729270512397149191067395130827863451269097962584399733836355286576186177942814862238406293149328276450011731208398648520424674894036414427795689140403110085787009352593914239767738678093571387490262163072921892257616886701348963706648832422326482779772015237821926925800302841668297590934284975925301968373416227168917607330042369302719032940939229079455190186653835855594840844377993162759950613578096293809885003956288167368169856664971725742442593878430905315569252850480987659849626089114839047135720532117602127232624443651173744294012073632962727889294729434066028258669077686635109045639273732759251480815982824068577261049909591127080961596349217283158045745003327245091116656846518755346872407907198124563817683656141159923356652664812341824262196495585649674679904259348515076240240625215084371750138700190301282800655370815541300366015380111928940321213716994064075077078528456343490377010981511810798028114184215806172566741590676507369300101051940896610567824738141731953191631902924532983181374252496225561343538202909508183273493492030138877319444278334236189003816505285275292859219322106329598097157948886206070187594872961917212070471772946320886603002932577618172034555375785280071971293654832445103197846276377542929116742827343612836977581968359641196898709778588528688026535980652473786444866077006303209687531290084721982768994481208563553350732658442958130462487329409560361000339416795755553861988610472205396289533323200311050852516296236489066330916711213381394818630832570976351580402711478368505966451548254908193656675103948272594175405001623443860512402297739626278743742404564940470201154073286152280537671210288099443629353293799649440266057630575799204396357756012923208372519208040839828115861136406238011963066498250747275316961152153566714371166745489707611463606864265450526982219395574849289796596817410537429779268268900800494746694675587188444317382360694865352419949917735049143034349492074689760477399815212829055757470321886366763079158186588038327568174404180699309177118801265720904321181333422734240845792811174621870223899274554557727107434838698944029994521025141869421038687793049514855916600693898452969056572079142159114476318763022644583526386680904246620260945023936491603373349817245747137148094201878296345412519198748068667714686421202086027899583230576467340505874682382933661546493742476678646008982184358782687797546457414244632697207217491024785395159677967979599566944401410511319408533329205216456973407315236487277229883759282390890240164249900009980722364526325868821457319903308449014203441165284399855508043273386968097507679937825447497677846019134532542226236110023113145353996286199789631145141731705511196906212586729543052427917832972745065367386415821966257989076430934298235184875162670447037199126124953979515064080967992344687525287520932113644422947305489626124458912794362808808453851629485258813691273440278016084834050652866920706766020726526046186842390729554340133918857309071080892616450667300519798186458862602261552538582872917775941621889253031051604337931535631835086626971740791211693429476818652533693368207753258382302633107754884414825489385379308894042974070962529119708454954851805890456432396647449480115580529923707743085066630378705598285628074701194957681343563305188137768591297872115970159531126786674837677279183478965998609457598739568333462486483574837805431858733199626939786054362057311305709237408032970171233087565472238959694020557077947295873671010225779086387497062436687399645348784899278191680863612634540022958648654032431874814263254603870407785469473261974368150562601664244290606539602058341557657998016581812278746012836114596785532064623804938798761808903619992390116973536542571264026924349313377705394983095267753859124876395443394319059296634735321394506809814013067600721720696907930887190151409254660333663314520971953918650177418399903209261419061528524311664938675537524119934399095920289824254280246317870498887492130037734303836757886949410541199411778255940428096340880278848803014122732521177906699053249097100848725256679998818161248503920532539264943147131764912462537161904412079446803479988746462103320875747725362267917474541044229653025093701432593121507493230145104378741054068755491715854724726784613606734071943676974273529799702014069621044525968944320869165385700376741294067425359477276913841658233211269254395724209510750251373640478470506830924898714426422486478911978022595163615125488278216389035778491894507154203561190723267886007885912981665150864420783446337057375209347717695782761318322157662021557757806519499622726144093120346344249380018797044474866595274765843236428566682363891303292226998927141877520421630155864648076504957666144240310930448619125853898677246189439294450170045790817468624074726051542416636636121889292398878662108236061102616560252042752063858525727507914782231161362781597232011827526416597992892381444901418829318743431622542911827981020228678678092247641258334734970282232147412975907985631859911019295442637904473102338398823149826611251460126200064739874793790000330015475103247924831467963401088058440054532830483227616810235884827301222395312728369770139529704998073654537328034039820641742635644241317574670079897358533754114572307917078678552485465029775989150943185709312648769859025333225415004173464398082825090744114906870941403225937615350552661320459961399861011738009392072458042455438838954252074766305044621984230760130594045980709357959075424798886774220721828766222792257325501325886440293760775502779075722282898804590997803640446061474756505393399616105006446869424178199559658679645516374705102921603686976870307092498923518015851621767382145271897894347598617682011410803205123923723692978676898405531468300008025953838655184443843174017210419526700914811373443194054559051440578759061347921719664223932121930670591465720997127953669064659083016140604586753188116879261617996959775877334372893056328355785578358100451997897313141650429660358278070744791249069471329207477230610217381274435235515544594414576207372050566114926584259400238809704766851508496545345208775335599741895470741865470880415715612634726512662690671119990891188560140844392725241783002122899937191673529718504197049525256287017815404224565058501348941048973115270981688429742839989098311103712705121358880009710891382898472092958613708788965627868408995018539905553735092960858565536048671431233416690772341281322295328889543410447165155037443567586847194605844992365113952914191515319058709211276093978483228645226273241426559572810480425895967003649447486566846798230760321151017977116734231430273096056097010627983294287890782225720382749720220067221186942826526238713126219467910339930340611295085335491194539923289115170018691590401006423074599961910927294241948435856181594497994784242795122666668676468479111414887984857683089143037633440303161531323213893501798945118562856610562428317456724430338418846198391422634918019536484805794958826531126251716058956943675908006193436054750082627084170273958715478806289805163751950120101219493730830668597977121744441593961438636164864906081581818249751134065229042782287959884285387674161598907522483588982057514863628325263227460647631487991694198667455372075925409701756040117397623238146633077668608702353008397823983632992386525635540830714876132351440250901678095048710288405097064376177325059202115208628966429479107936946161784063218831080697606272134579466841160905257868533613707095843624529902762408174307231087440053555918447523753311633360108430648045426098893417989667851720771919175994695594402887040572447908602127752079256723117313207871489629643639780907205226970473731626618177372865146700290297681752136082836589361425378038042808141151641000644486170323148013435060594748092491478892592804369374708075388998201528288836491441113894561507805629476838631214460542244278796334838959963125618996832891553722722862691466223712903093462457830587745594318571570372140625572953544718857568083346305839542243230445373294691479873300711310708042116441856856947115029132700980193169063012326603628118368349946702778374396362149706599740271284976397205386772933979774943228748542508211824316090507054661679805003918596119953348228671750548514551488988822964293523492913652911942683485673001242347474297177076215319821705375307684705309985647361276075023997723193957678714935488907126613100307951870733229810132275290863429288615204416786391456417953770374379257811104050015291174213736381931239633009676407156554295035757331763289651573104157906417323350446999072673711715681901809343162908308658803810210779704524193771835643816868388512035858769118099339110052987344504870619834309999785953390405734842835244972401657495541993997023896800679560136185315376533560060968614062220874784427792089643666404946042258144618421296603292881299838455137268933665685892975088972718668884605577402802659713630552777678680351337414004901920751876457386373143180915907571376833747833064479490049981033611685316052122615530125618405520275151663434911574978178060787597759927053131339774593300205958414671386371113479339567715633425714281857518990420495358923669156525147084816976608525293927448696670960416665302097436098603882476057876522587263863654143790441796982674810001215655616847793130657319087818648044417724205663596156753816302440310086506075805243144457879796316649267330647020655131102686985864694740941922178709940440348081781222511406713296215533170439218272780544558168233181657886464345610400305191422465089103532089428735271809343183352381824554180275194867189169550182503832095638819058117119756430171655359685899163643231640938588071853124411768056264385543425357321217652030827542782549246382556007410002422698684488722204257758850232035851486435861654580697106635343005301234360637249631018442564778166770293892288758829343598713271182114699568604424238299204933072733239449690516706785933870483256226984363200409745892219051114927562886604251625543637523633107453650537562140426840783444360367857403628506854292948351399840857719599277029782522172957209849523346052561443479271851209425248810208432428344448876670658898993039969064926286145607693856490347082053015266327855527851314419865927993502498112526392101749387414142263359465904577951996958176670158440871009905772464409151385060475466430043361629489383868579711575304174720562446695901266149098039187441955323417940582203609689895193775816621639501948886870037856385185985833308144450212406645186848307464279730843786142749576671071995676158063383576531163781124107394255310776811260086117829307192455686044080255574564091188676603800065428221871550295016816419644337719833256780096775283522286689006260837687265560608020570409216169451782291338591249639135897800935641624151814029550036134650560123314499560294677795964013284809431402423058928518807959608026961068116230228240068599932364546315859389271327419301616733859595515324561184772159082762078432710681077484259700366319344203963146633859651240490651405513233745259684215010414866969111577780408914530040421622828299120665096671926586133596558153592625886018453315529887143901588554411908646873396897473366543015121065945033381465172550747042150757644725431621710048681455714568018290990110262233726479059277933727683806699513111009128639574163259907905062795753438782443514262844430872914400264099982290554686458318740231784725868679238809559782402057856359316448044298506183192788499220154796528157367629831235474930952657435208366978003846699182863488841711281932922341901352389308719028177996878270825343629081401569250158008233521279581334626689849602589052162948460180377909323205952616053358938001756705880890487098529283396140802200997316064125804308080847179200053996949576690415397322036541568115176274755440747764810279512051668483727626284810688398290465124312322087885481676308689234679080045091805875764725942473513904044653071664751408113351020377509696014352061560185595476994792467815022909235349221210655530552405591098614927753549836066205370666849529576826014997692294048546683426193734547231077647992340536054813578926719568515874568241303616856569204177124475394226254233273749578917218239912848856782954985998666434182525870965264317544462049509539933487070571268958563345204633387601091921675662138559172328656334242950470449268444393138115246159594452801851385254704774019510228395637641838933357740579490381635532009976427869830601830327910705025096006665358020312392632404637303989775052839056019437469048517447713817386733901979052296826157172238088478092305915061439702902937764353320131413167191652770433095146010921173400830505655762146983385306237480411963287325826470252071820053062132992435649967355292253899362495151472133492025244993979409086562020016334255960765940980175167634774290058755777068408487392852153065298149385483853710775063024259037265687856344361680120260382303055661637169917941790250202552404923275226592658122085069977176219157075350374307191599650261591655084009863204900052535159069269508675416609871299427129189537972344112473285297956402359323936180469729098035597846305221200463538511658959055728601441539931388938068433804006846548382197885286988469451057504381285543778076105468427122378816182332680724921500468780275093161447144687137402982366764761741045477059767966336615174703896083727512226114309051981876839460406061245284986648946463092113562251246818886071378049565544378149327081487799688821507451504536026025238852160860940858644943326754179967920765793028090821928167090991025854854186034749025643454936560523122009187863417377541261451279065535989177591530128707992297607303502645051593908280660878414047212372171223704968335202259882069002549929940346394598611334689928620109210438713870534061170631166157459954790397966969590272248166112222340810227984300798688975180136324672395280813489785398463670238771107942375369443735478840858056552931929949610455582744391217276454545042253536809228181093151076264625207968142751340424836400347519139594652758118349913964155848322261303982898971240392561642855683084531557517151115761141200462069854763570540807389305935259084296772507388026155565950218738782821985342939578037992244843948985853717222187227156841344087583564052420457055225803940134812549910760368918272105345886814058895028865298946021337260776465263591313614766852686095078852009534549888692676001382762285869180153700160507961514241698835393924669089976297669167245978760317326189617918528883226336336733059540317659131947343326723713629675276783716877170151328666076347266400224982290681407694858100395858912881196470470705933353242730870163871527071055270524750923632592920741435666479367374900056866967295128468060156496294746327572902704808366891745288868321519591656535016687781039458483055455477157493242457640048102390942540062767618570602978734260320934494091702359076016228163357140428790780911617479247066132363172791446777545003048423793002268437541092524627721357495172167871407290477820700715887764695522686604765037437914992738098423977016213916708670866412796110052408892632962109938341704327706325045219388948939256950585993905799157435852230028147374965395082803233990062797161610660358486143357438533426942514194875270171882819967787975730601348265708173295407499079299780014417322836631683811234060509248055839895183413909422795013713634371222502298007253103358638967061069751982047275016271783752342742346933693550859657341320795911887461142499365311859134386759213267246417375384214020944059943634041847264985726800809175790053315203939523423267472466372798719452277201002846197833332398013492182327946471950350041704590160697561012691366557912986209296691471856368774840887149391754441625656169187461072844160554955120490926470940494996904044674323621481401726504739486854895294228233129077951224063673515549443534160654492751029179853989493362555686758480109986844675677388083580626097570540767664612068639456092930486391954681008475599112489329218711828008658857986934771372136009547228024230304295246736104625612861415666391311695080457884250172580030047953560086148882108403606389534644928879264410707253582620313455923344137998571347337023789430613057374203333768007378734469457331351122418030039273766959347389636271937653174198645190375933764573374043511639666093858262175918956855299066090012311020157762870472682001037663368083996379336354332672185601305217565889399886963810284980647517560283897350492793284084167234088822700950091921621262968830870684230102975815891533536486510995461309153509923923614997732807220583728530571573292150197575205177731990472708434244243477671579437631497106801987434101808287987761239217949777969528161609022878546865922378960183851660218946166841588309830205993395323325169911856469241216769439972653778601204507261825422101070550200138024446869376784313052264955120746104732498607571848662531461467439324982557415788636401950265476008383422753126300826659894264866393799250340074132713321905479961691617189711541038176225823954664768793127141112519712160010800994014388233173876761988227136418433550544107063079385538361769697577468668891810419287822593407632772787093447627104590031730618360351668043661540976814919508674498903751153072567986741526926260684513944485768037318841211931189439686573294561669478561001403166571002743989827728204428705143494497104594503017337180792777848692103916846811360042128234255487916355656049220012872829523142273832783395381349088253964463248437295275412948112737615745129343764563209988545433205172210471180195809403943073223489551865628968017061238047621293176568519667732313714391531689635656369960497504928993041090774001656656658614886157704711767082434193878604119792954394430852861377617247201461228942955452983573700834106779951689847893988418063515521889088794957945683053292792746186794217696037542901716238260793716407531025771587801745497158091027630082466886508953041030480378272381849959676681789539153716114432901544791944133237991556778714329305005805317944394146661851626153641784137406649140279590475513207489967857383336970163556116757001690146079227029904265645986275657373141632174277792206815873489800939615776677048686651847081481027185433469643982122199637063483343243527362737968675091043461554983890376545990185132841221291468684942327832954809308392655295610744177031578438529674848767111652223152340020664479135472884952889951040139986907299157588727332467606306440171981712919335137584160143473069669371071282459536921696549608891967177154518120664833213912862376162976657392939930142039748276581394408037430500566117887570789967719334744070777330379870469609462566895518112435652304685218562124720830115261638695584539273740632545401444958645595030572920578457073881158067496442513492784495517988709720416762826330993275749845786766902497955375424530976159880150961572330354894147556494957363393474629055331229650057088335712820773831242058735231885515740342045352045657267745222049369056269045107722459195552392226333946912002743569637296698243217081902263383665603715301746449619054005512335949937514461647602150484029757864203909656666244478673678151137424830624379901557669777631790641130066049758185060021993691414032578093193814408480274320424597366082045613875110471275075490151474682188577886768828096812358375594399537052595977285290763619156437227340094477412309168774598998285442021257226577729661243404411828643819838432107860943143599236233963980183591573361884698052346409746592931089441208689521415483875465259057688270887037042281935344337168567370585002622073494779789823185353336103692284984507239742565514105274805497377405659138844463092446213908351035947543927924301025235942889549667667419222194828137601575744466301402361460087356966864391138627386973250455136624747727937043799006353278920621449268978998370331336781813582425978779208916261072373982882113315014332203708104012907078012438539977029245089083281234100181084040191871062082336953717179244141128878506149516769416887821599968951457296758942332760952551652678861853703995865950131988119561628041509565511155698181244576467728436571795375495660071846557752093437242349704786203441337718385421448739000693303820161102394881288531382604696310131276760895470770915997677443626005233533441128270915542266732942645500491622879505416642380181737999370904714588396723900918827206142537738059548707680839609796802028647545462914048393640117353841579691912146581765753029965911567797993823192718240066882508577258675987058205420485376839382671343411522468770574333093955060818337522784362024217769980929124534095675457383538094829837922632282808476268305712167324348812536454641496704502541728267678119061836565002645581185139638621714127913793538224255157114898782615721987201005080830972973432463602650665453250689221483099289731484839555518289060763479274748900317090865059502242489010743295767612311070156169915602592401164624381826321575946710373760731450960718730771004129102454233078397797596888357941955290519075753149232423740394944373721801907617146999480098396541659024136979130396538386625855084413925303588147709111724142683315929537241186029617917434662286340271212198100413659707388644794176802752520586752004437268779826452601228186853893440982747054048196530456191289176399280618312569669092739584690526605467307142445196761954273051542439694978965277372982995813256202668541999201951257962646381094905646179776292221995277069460276440765146723169516066695607574753551086472458427950631185752471845029520991981189249380638843295455400363609964224897088476006315855111340205318087141894989098373618746789960231477838690804446783630513378026762480436507971349861153873571293004314417223848434954763490649625180388120939334930823546841720426588456628046851263803092706946366890983169239224476528216114092249846156715336630409131284548508349362288160547294457580983157892134678217515669852211076287756570555367162259469852318705762330439997220004196182561353544963819994754179202227783003012794017924218037063189435251181010225139568306001990478191126760553700042441351046000214479917974324232944231014878387294399513200051157783510095351419410583278641523632171543997496907938814701858304108952386038090396904071029772570133375228483422965244508957145185316767838187631400151309237131149927879634550161652272569889713943438064388989508018730206567484121668411337530271659662732851634964867139352971678710536905679164565585360082437295543765149288727651757220862383221846348517103577187535838246054917207616392081544771638469625817726411569676495148127339492928324417262481898341632586476803977425272435202927699653793228080566148999878198547085708922856258411090045840537179342111344761753304226518744863850316572588973644828691935960599947886481127237075481515101141402804920597505877791630107416352373400180111877520375916986051267017450725393981413603346026298001180193423960818604716099262618623033921658809981226990885720976933794791273141001587638980012389198589636900955311082103580988448695012695630353926342324311170955901823306911864457811149838600536042306810873039395966683907856527918156666457726130413557871139922558335886338794953687928850836955030675339741941330668288429938357702150436952243523112806160755533207550201419345235553376950055618798215871209569753072431741348515622392008786653916156339148241374328960375731669174478352158166908206872373911755374789080205135701431110767965508348463117268049711428097481131883379675673829771320113614484143929359479567265213786905579284086910985562187079135389178900894119559202286609844163601908314441818003601097827157369273188601173024643296610895629372043071726758016877968966141750770035954903866482434978026492315709807513508533857187541273329277777921591870070523581448438138899365337479063564415180548514036839923000651998651696464637006228896693195166459360988172293669001780038905398332788611440827887658484438275638725128263643599029222702185828008562654375970549309597261364912733587087439250445264389882683196408145927413794398385095386828981092384480901274757266214517240333483252142485612327067846042742246153402603311677724727206174732317004539587593294626401899268650927963517155111878568031962327888668866149118365549125370607693702458534349813961916907004695505373681579127051752745445925989835938628202176237021934168862813873770418366121030890070917134391800969123712214310977768484900491478419874196091341712524957104987240155135513982999600755807649621611207397178340462696671532513790607850979259826255424690075031248408532584990409555404161378726309760016841328794573671545814850265632289307200932819864858785510662889332445412380769758549377904537641734082398070662777840393012569817576630789324042328664734271216525525946852450643819945875853845923962158708134480749651299621126488583156418428317513790687518630491419044144313762461545076099841357748943998569630352815726050870037577765530688407495656499546685613918139121095622377105952536345568108943265941725172983660828908413568923388169307237691887939649419994956399935160769865813611172756028677210827953725129812998344047272653690349703643380121228881006622837711439725489249561574402378661484236041441704512397367985697849618220506319852714861226606336687048160089736463689677213714611974707417832974655954964274970221239527840162401431710523861505068073383884129376567841671856463196787733042952123422575060463155648462655353839059061012409751909420695812564583669647015639312112929208543492355459399940066737528988378641702333616904117875693497424485410829566174460617310465253238674906458810815223023467009305299897695447399070805932126309844142540298574751054932271994706782806157116391942581235589709107327478635633622924149524805604035241538236630602561090650880797495033923334647291086825318756716307474597603052355812826739927114095096492367262305258082718636988416187783385565320579277488953864314825580514109843170995882239330207177219011812569795038353603678907553959106604577008735933870968643260260147250994598054217788744694661443323584880227241753632546235298164708197162077217018697149468263760312177104310758111567323491777622467738390830134934295409192372771634245489863462250551266411872337627315161690262967500427508295742334527561396312981441972984291134670320213646680694819124839557685449461805634091215332405862212700090033985119228437472161117747975720620263170097959268744521214462679516534979800160681963692332842328213727357419825381600096632701081210363986711007320719064884849149296416969790132772405753899274248640099388228536474761418017683521536952168873355182680270476714888339933548710182347406115894729397607603688756851679619311975652483570995468502713290661139950203234014531834236490741715936630513051676165117416572361036323607693018321279487862989516312507799366755603869218756758021878106562853502826440896706397010064128034324519352794359026732726317078802544675596075142308732953711077173231835512633948474175672752339845911107496822703285058164958603700261941704435547810909412198132172437954915402166576750748467769673405578603287557141879186468334127951121518835536940704840611748947012976558866536736864021758077880000988609962124808452798031556891667926533189937179761871180295791698028248819180097094655831529021574030130406334422385395647993614582398192671871208646381341749604139158808866827697509885467644813005771095266485023386816084037502502837223044927577455013684684510860565560256172876006769932340220261828704242030728095170467840382866931280369380607377908065772621246750943716608318600022158495572502595914685961067424110342940789797702060258402770995047599465503435064259449511181587107179229447601230397591538145640450140250242683051383502903462371560060747353234448926868785774572597246860778065943293370011756872014553540176659878365865781871721551401219152083028622927399321159057177636178345709170054460891375299249873866083510739999215492590014862079922267700181653064292479301707512661605086803734089972236789706116703122714426004329741365128642783245040231353427801422631708871348779527292259655272214828072403408758164576081654050066225709343770770132462372060917896131230512269539000759043291353820313008390019950949582631621476584770776153003915037507902914650200326714572488079229666489837176052591024271137898819505466462269707535049674711996785095383704499653961620287989362658449851880817667415164423543684391026983667301271308776603886599382028820470051920107019990372548984778187331904114260520483751522195252916178619854770339130074461078907858385169289477539020899902583005146153444552748011625182603916895045430136394514270626797533673489266020349294051135114859583629401911946441909046278613029172093268639061757117183197439174991597871933900918285400760273212732749698292259310102692235744473421244438460885050905238961389774713479353806867878596361436853745612594501007165997966497008882826663112010660914088269942355108974276267449812452390726047108283882903075275027077159398284813203889793148241619627472568158422058455771707667191296655955711375608220808496048922160980184161047923144698841702782439998243980552674035971853840070073815816712888927658651810635287519235600710556971392778427746865822704336989225161875552039638622991402126463688823694479404249714052223248465883150145630360934103348535596651347899202808432408589730639191248659295468298494225683815814745954279550341418021549472107186137173862252487514609274308864438530430369147705612021647195937777869658524038359248762679255007073729103980474310837705379018788796262344806419455073903437657821586054767358809704549561227075869729914561435816679943713167098906466792358937833066400823763910945428008860544372080158784797357082020747517989456460653769277094887920237587424210097260291811971378438530023240912752520075195074310501220970504659501477717412728827933650062664912556582654598128998127325728276783940692540824975615243670844571055936402869690295734082146006410174462087605854034626871264482911696983327857226226320132537371803571881134379511128186927389683611227662562008306496012955407285640175958066710126797134562725371949173348735297369650808123630052466818184148736208600645154616125328609587362016364207855289445675922211355815887993077936295862068487852188710183448465932701558690225738141079648137038969756830507766262777657941345744864357472630852571940062848439117283677319668609408145810588474270804734622929983915075532167271424212050417925909738444785100307620531468367544182326778119321416848572806753017369781803827245518365028369202788148359989175279021612139095320638941513453152552826030009157991985765627415811921475655240111004745409762540830342937457245321002208974190715463978227667913027739769095532999765873906817502208644954878180042998853519147004251518808836196402776582283448018810658221467451043941736253593650121260106938448641694606782596840842928806236494427129447926065185006569080955722580133800580959830467391895239565242057999876716119702865007914468156717897308527624442312468104852541829273219881227444197194063604290037762577274238735669084339192484669310763206747380795053547960240581127766264231801442862653277289499914147987142462908150273371201073098088047413142609728909730549201654687232868173536407136175381425327586580583445344577957364577935537773382567734910059119674613757932881993384531616663182266754436027322982797400828369538748292096936211521880077222056462341440601662628459944362149817032409338563975231597979633193422977845194074126503886454944472639667612651887702330835893605608464730422060435201049743801103409841962405663789591444496229519367818780863391127919732532262407116526310826104653568753787390394447845400632667755828745000938490970581015166977024822187324320177875805501102724144449981930135110395715484087788701117769341861321012878281303790354208742858936140613247428719169069461809783209998318705079449034953555800711226441417524832127789090075464761985192816513299769214059388424116734575382211816283276658070423311910379913248719417552982589244119003073345793876977590184694914268594208243635923929287085572185452087718332140658155602482740314596619644479647969901008782717499987288722677981733839726816808653617435199847425401312956373472844605525936045282197040784268090269402299570167727313702132118016228311884533473013037696481166699195764198429021057697397486274823461890973413752491652851694064417821646034984226034799376415636476846635081313161289255425869657062137253715166822713209711197353836800232346203009230432460591359663942198055908211547023368633346242063483662078686901616119414186091762609373884293143739753910705824980480080985031219247532525590385839766518929378345779781338426226860648699477244552582463282384854046195624098629884219003355810558105586738205521474451776237745658373112250433520848258473016843826909755293426229328868066644402027941343133821586241032896713080097090661582647135248235288172920969252858897714656225946634180359007268431576656904956085677775671134873626659349284213745657535535413401589708608779215960905576450098384500996945700200455523854837043107288508950663758207716166781667746183207963483693089035600759978753059641473440367134204132194113332477480243074637386597460908131575122561445597115298651015184483007079695324456883356584378910404754442295736453424769784198829409718998805154587079384691842984407625372585059707763574560436903476739583984160321518523463971601248904599588686657787722814408092483133082000762650883716951217101293076009034279417900152098251100039924110872540602485997111866335609929950306100211420276327089951195708772610427947247931555941831290629743155513031381017094330346992062674592555126610282389030373280877258782150492856893299298686027851087852396380497425812134604599180098027493653624538271262767301915732895567268784154652844575527991506486080125103369696964480652293557136545312619270399379506103650718141991010573187412740742010178626768898785326529719647940987432462429485979386393996960151821602001944344959988695044794891060569204339817807303454931851782745188692071431250273231349400492738393265392240579808508023407928405211519645745799111058383588627889631755143745230449232826295354586375290311124667255130446622784481614797773952554295096698310170103007960510207676535800344930436358102935755717466808210700210503336164510937260480016215298321673104243383238584387328824139126331129407394654548744243508105471374941062260260301314997427642040684231766735752764918090068485926189327602077371635478742527476196771722311903447540567121741094519497712093848751861194034690689001149872659622117214021900083485469187522559170339042644189088253123618599632038181029693282959271891783422141979690160835013188227717283354428018576200388161233448496536522805804885920037369883836253006416967799766420535724435901107888296140907597379058923822195930454930223301170263977955887377413516029620415650316048164408502076816482448392558266435454206695109689265158663399220356774378674340063027244141577437164357436313679797383771659676821318139715598604870661540187487329014106572707297883052100133999819817786581572481807006461730458229453862986997873466292754663365599423981679790649537527694043437203849345041843365281319528763185205914994976575774970243476189653913037943601344099881771738432202033981105812886188217736652882117682519445263871604940319860703048901291830496924417394546691019543281239838594809155103436310998212068261124383135786859414978074454363294455193070798216462640204851151167079761728446435309198063442062541207180533881244919880543436961827532393634457370673427388037837586950213885706870193148669812240071306303191483791060171744008887983290158477041013649551105964095875454689363974988954629915650745969236240223097365665061288535196345588375732992777732815064555447984463049156886436473046392136042350271142452122872929281829242147524276369518127249559771199916522593287932203503698795256038338764925988975200876039133600479954591879436236880385692437877280452964883832582062233429728988406332737173863442494216222326593006966001382233311674481238090962937986293616364619402318342317868279033379158002431708765989241109059184010893210378101418419616828985195000565174759874447182065453736190513084240614978162353139820059612232783030055203849754527743096219480052710819636746511029933392354669395283309408688426910975079948817686181518315781986948215087416431204474371137093402708211177961153698210591691368309486430430790688199142644969847168685170117095104763291316071264316534533020582302898219145350177668322397838799217737696474114496332307984566158508461422965291140961978927372427886772151100252701740579462054482385876396960846734125948060182311361300609849431527164828121105100697433140940008671996748254779071148160988838576427924082536471627714264440841311214001481978054805028562142671234765981881786739977263464555712790445755942629526794848227697837634002490854711530779360251981951943231252822949518227006978425152328406407113182388698758254808267691029806370614791627425934552512272653554501159757138489835834361675356303887951674184402765774982441937314897745745341467793402565851657231917397474553198274435704464246183095011303794681839525309822865525858688115579007362563019425295004247324494284066844192110718441470173963753492480662044275691634969921157608311236601960824944601516415146913655148266943858265462500981684787855465788980329737107262915318749337598300940815678011508758030237297613658097275428129319632236312272217805217470966225976027643507905166496175356760058492660335601619877915164304980977798839200947754845207864509009282964716222926595430710941731450960723168755760464146306222930745854920553796854319786588182641470399713034212771978106247449067873534036176124410873182146479377716567445610681911740940702622388986187601188161516974457483562808775425046504294030980074008025130831645257102889673686333787349220953214084871182578035049460592172425429375926396662696017366684198126834709907576313355761166630523546454108542124346044253888452721859424956100203996850338986779473594984729702929149304666890914986784215687271515157334308292462773975700785962354183119982103257087298667901682366539680373840932105944107906951174457706041133971572822038633548365246668615000614451740592849511528658255874580422934543593737764470811107524029805475156645228120067348268742654500528887906909681650729161436954964816348192454056683201235489348434119287858921489696359245481743660054269789426861924061833826265505238637426295282535809765830957400300317319510039635238450919292333099578428902826624170181964196046673328038500401898325248210511003225429606624924065486237034965677219782226923474066697368731033593331092434161295692503560830889397099056203486650975977037040388313357343349469451927746120662526284135531278350793741997562207258042411935220185903136777496314656021861869695625437994472130233653782130707152071485675396214612974838275287616821068331938654390817993799811718775188163456839313877459317131810774856772676890523784566927611519513123261251546908805886855833553820055469693050771991079377115769213613475125083280924528211315853738522174477368079357298952255904461500382626976369842605724108118841982076177450985057429931257195575872413180507945337757146967457415805835097591518199573304547196540828829192155108277947452390067033954261642896388893725191014073179625497601736810967126877498505486149291818418918736021292775183726054657409374994933554504259237162121580422273173580141619602983715012671353092901419242717247520306897506003916545267957538748138248192273664854144023382049937278565071511890123101214906947117476652290902730763319416660644506438564127516400897220501568917077070508668206534740704764446025365190389780861589165946472745366243120506343877689052461965662224955667407763399980176218864564942558624090233137863888376275496596812458248500655583306305066108841876209856704701389127963330442396613315697229936295521215319244633377434743370214090351331467058886216294386596471902496649026240498784573955856207689349448391895611315917002930812869682912250086698754722552780432155288700714688587061615465897225505641369144000861672760716584097079244343123542956532452260037753834652928521565534595636788228725609801162900884118121474265632737775706054613933901829630477063478978385422836397983768461460062608489431535552795972271471135540052659092197166642190040634545452698408542015077934890407018855057665506260546331791933198860609227791309763394630425813240747902954310829576532605519867792426453537971065837092461972447738814109269338339541001767181454164906138411471686550809967174589612994886111449466373390192745220944666251620101047915253795503560177086807731802530287803326985877595349437168333080855510585081971220999691759092384171615900060513618139546600271543573678971929956435313851037315579476094526947529814174738260983314988096441218850165663317011973637282739380893875190292437685578108062073370429554599573728346820821890500433180175638279805238222202234806782532524069384937931436758188002080342461641983602675618585052993119780143880828570916645142365886924473367429561530357715921379196851840624810753738186560852829439358892078130445363562484499826799185777845256327077622799731128141150622825964132229783097048935481320481468735260267555306017807739831630300659011067424735708868027389095943139384174754672999774658232719799291762979314768645045363783232032232935721832746660660409543426513800798254149589915418064482665339604462621825836395526899036255546431018481759954554917987159753375653081400694806676374234071268785966987078730570425201754515500426789809339722626875103317617649744031958812113853079459517782894689926558570258183620755574518458194117458671418301349243864609251182394204482400926210006651532524788851368248563545049032482648675387394729076117372376202965412919073579655795575690874704579166660108500261347717385715540751844197789762837756490401444150127042962617632509377857793131340775784441445537774216058534560546305817386320477582770695866065139483186102287722132922195778947529725568796463015367949335000223467402469679819168587389832314575855448569136921800429637192926295700779447285740906355663358855110489888129794896529090914987690592363514039227920854872110430335699789352554416660888460625635068625575664600722820483557226576511423984361011547506648401138589121230599233524922485409687590081866406798929570513205329520337716560629554245245627264277050541935090234193912316314679548281526456986658794158556803450331944737748057625563016404558962143968445561449514279847898455442272930673997195202066033096454782668923036524018943699637306833013669958006331959611825384768599365351839077514321172014173081368394235652429827008698650124939558993895140014352662764430630971143824588653819077403274239512510204981798072345275218705456181907949861511007097276330795833080924261558870918711752922914143450503407881712025822150917306567250394874387848618343494574861613920998206962670938840530113889581882722416207529270659361449595932618792680567239783104139276827636715769422488864770283503313020643419740930193108197657121079445917037219714734424918642911149342502556710613340072420117512055102865257520573483561598900271334124232709000882700815947920619960760175667655433144333870199529230659604026789318604687082209660616982816176125701330517950965653762949063481009267332535287977016673061767496233709482010565212981420134546614051344487884099825654891561941667795586883966241345300992821091096330822274432802280531906798031248039549226591293717258621313506212008546669653798370091585844158273223781323128095220951738049869818746863421507156812675718541248335893956019563336532995124686007863669273080860188069924338445478557489656318244998870656320087115851037153207349693391826759649648965626502822252177968076128068913982578739206949349385167015644068307328256261489423449817650124561196013673598676625622705243653538167140733749590289331285722176990704724629054611865714707489927736770413384623610051054900962132168331247852769003516666276363924307998137203938880427228846816811999069677316090960412602523060421725155980405509015304951353048426746471957973259472473173268203825297569158342074192728475255985388228015225457153206384039013777524879797940379816185259406399527264582074205715894497029015571202712387850913422650358698358696696369572003779242309533826240755089926010786928971946693212673176660486539763262147237736179639377750618204116683121136262845342404289945418378711723359152917398564036442576712005471914890243087341183257514234885081361165785185196478639504089247863076421910002235195960041464861819717104351812359519130946998713700110646168632583336283473168810080120156663337566176790786181698963580602525912782082515208176208971857656058312408226691122057917045772330830715508951312671118889690285998986371700141652063193625114433306815143139829869134858716380811755775807106268075201208534496008204441859282342812968333357361136641936038916711745329715664755119199113517294411651176597716822306211072124644073750740361623589128893465913839858270374776865182614509579669664332313393360698830181913860508560096632526869614800828734281524476487918368580187299878697588635473060456079732410161081594133308439161769316907266996619371973323789514999272097435857246740552156758709915807713731799404210184935765776916544720230266736538707600422254690358612451849989001246204284236770275268515119603694275163783852307728738811711197675251698753460326938451756402474538658072398112629291424918750942750337885880404114182762391183146096236644054371364133096281818440275230635198199968770035046503789440023594553222358127761420190944596808798106737891745057655454713543621893647442236733120071804733211142100658970859082561917197238912383369326794278494350454626095478864700745444325735824707573524578877439041521642476322442197104989168366949477957087005577539772723566393621704477410077151426173706190064130326413437437334137335408135093091886395833099602424423709812622120233706648083070289810329179984851353031562127306714771442133120149169289132322447866408198184756083781297355930132089800219687695858049349469175291296574968639001549538177547766155806651974475376542970803710993986992355864667545153314340697144907986864349251429315271690923325196119693941280914925668926862266447195551867785574263773930584812112770281758341467376325792232068926848701321551790464054083915115770649466327326555964925337963829358727482242740166954316215380737961892752024751940110650542695247867905208426245798392378252552721575320643057125848237498561257410554532846455011765879281203523970847725176292966010975266841735887908766929754229502046639426686898796214632970660099350249932533939204143424017343063697382306400210559191163417608854119233651330561265616350786777306640981696692453928468943946615062884438078083761918899627092431978833822298760018953212021398333286148048178174910625332552690771382751053211623979741638421069551054751916380004535483636174295496762051005332201898955347492367785813554962544780478620063718071594057520176135521927158122765025796731252409430151800214465858264412490658258735717817437078217518097380766818679457870641521341277561878998671655024065684750333332462799112084062237594789223450353987729679247291384244521766227572493167271892080637262453319136041352682219791322327429650235784677667230319999328442858361524026734572186912262601180440868571214161840901128847125078779243124086754991512771984426560395233147746483668196817668637000808554390362300424976011259378832381219343967412583435228587662453025262055329138387871469423920136076176406080154098683952385559274334518938668322572400305304936445333225533474627665894307271955091021044405745648366176642399839804183049827297780085607120354487037398884616562852812460670026070203495979872512507411075477081351762314426187596206191826599917694022572271046999020608596997097387305781229343846508656113566647250268996571106149603884690624531975547713255791393105040189233705934604434752116496606355203103920659956292326994100019661284289534063356467748063593621029172081410977586667250823169297352970035954527001095966100041337109357010143531087106474821993938207809943146456963465733712420300793398396241491634853560329440805364198058198031650923574884275478215390871566754129170485355151043918840734059059424274330306419564810593587678078356500830981888847673300373149578266166690316658915394314896441740723663750999841621382989690091193860254482746865589381111475605865771582596371477254719063776290513965459117635922488782120469007015321791872000451089586291416625745937676463752323170880489233332769322301182071745721527379062590044298448845687453190475604124653897396202194908023230254838345136906492914250783609537746521516424740575357250255381465976099298496659077881408033714465795006474421205608405600061249396607314375078006786738545204865804118018421103449008245529267828409022513626878236047927944406776217963014441490865042725012960784258952484074161196702248169757291909022983841341575520109338530654555858867302307144680760376186846236332104737779383317305294383540098746609038539865815857869256974071512755171088073717843886046778570932323935136957829407252736033301044801588900620938598658660567237168046029655548071209406626041244649273620288097531243795928792947699739172729958268345309014396438607740303928603549829499844053002335131182592926217764739431436611869749750360119494210088105574683639961959509675233595517482168101721379645342777042676131510150232321602880676759922323217285088167228162606097907681523876536696046313242612520277898668850260068671460392550415710666993424961081836565455097463423698610198955716202720786809913462687527108542173362333960882608308738858817303579925669941150321511717229894419301449978408354270850475464589870503428536386636778068634071183927146041814460649939975889427519638365080276955451953745204133693936701463325783529805290722257466898171592937157627148463451208276783050944127171996093070756248578043421640849931289617132879704859769180881382489969700349510657295413743158983636576337896811153927836571029561982197215954873592566898055725111561218526381740170673008723107944308737632236741023972630104219324128974808496593125902149222402936165005714588404678436928904203751033343050166022330900109092840710922776897476038677329717021326122309807432000843946071683344028243282401827908472773184790501512134037432605008672167299415297952320531351219975595555886922267466346340250063083111635879886096357972115036195457705770520660514588025253768604837088193932599067720226377206116598151018189259616095297268774663317743488365450236186278913413097622808222161057545508388617501365137579863992289716767101098653916483438529581767714783818587380943494309268638662781205852720659112957747618784040372255665721593539495287281494780773579563687290584439201510996950088976545500295023780082548753237231130045175002414874747951478156613270705779973863912567919652598465791560063907590229742034009924491004761973616060729137976919697186687491169695577970205811365274029120505464053306476548100189825754212421928823445252723259901191442693588397338660792215262696505197577732997837725662769362025044990865880640257677941075828306319619508687052409571489751733113231179892606086070180107297298878484998133734053742074982011774538904937907810236503948786042623641967157908926417100756293959844013536159018795895995620615798223966821378275965076089474270322816455362328911897838994186305401488610852493326019315567000947615309381584938302212109203469048043549759497583581633376207106351123244834100884418795083424544470828794398409433792330706551009195341559898653663158223330644388636549183916581378538397104655326913948260225944520370323270124039452431925752339210934578256153758561383191101054167573568618062837123989633079285275127430589475955984441808038752406550477970104980411490265353367029875484599092498941873700203729097313437083824325068700129683247352301983854712822973478931564510914817662302152603418566869285631150306108506209003150875805986288406125910554511023797007538433990992756304589539322017800819720035794312861283218760669875302051765785117469304334021385412003592634102806767918029007879222097351639795189341950603355092811341406857419377053209086062185474521380020035746487642633774701163397165160731399976723675990523076231936996656149680704104794972891766527614568725607988801980240109009147261412530582173522580361261038126167730147381240623954412113082325227516771733473708926091464479302761832744328501608515785271402690038357180212662824511911016336382139265748530292089427456659648777245342129219757531531664333176122547296908275275231947546209214009827169683135305911919770170475242741666753385328622199823968024361457360580464947862166759495282627884699126129119450593027037400526760308563589410200443873794056653017925845281033382244717483165151153357411188729576669166683938878241814233262439866930712852473183331629843952326245233365784968504121249003455833530405810877797639991079616292879440555602077788046675634865828773211758259952321593495139042551372159346250208352205060803335850759154849623381284420513370585545139497881002971132915591977354146479758394071770075011331821302917067200865571256280146024218334295605470094178664509478837110207263139195780364995480229078088931133892822908024308091529071150682531301723237921936590189637330793572826292580052981645280069313612617769911719501662703700349591875856956298577562173797509890056648414700608716703545484366899803316344020798849115941840849285357284201306672951129771719744002354167700246599838678675809846525740623405279052190145891529996767155642243617259063382706923298546296489478552577774738790186124830834093262655386923201667378616438936823203588612682997055083375520685485238732901294263064328233805348186569311617760770264443098745267260390103555018388632108463979005645504802072199583368233779414164530688276707916469699760937868546432428046321440680084332801714727300232644519617766521761614835776152619070621115561138937051258769293352063367976739620024995908357806890998777582840774210476523026748998847259209999269226112420802175502958531855376492109680140671912967185351216124930685848004742551324954402977128366872235962644010102454400199924393306108882114720455566513742050693905410418371257421760310658277236675383258930511696686943629656235263218133976717174361994800167273229231561633699095697837591011119081338835390971531455034547921784257379826574220990433632777034204611613637002847955986613213153913591690210837328644607886684869908974256759100531354912819540072136981228293467397503174279241413475936552499605920798253920383933738461864131486230797991310777714859719587989214005818222323186962553830368994381514629282574253902014039116824030114462712528112548705291077969160815353467765619624451733889714641204564995404014294285601117720887278342147880297231486732721301787688046984664476915572152598262574662319126606071394022621327722587949142579067189149613515129735757380950967985511418494949690909024415590862224231726260434948198252395229329521810676867676487921205211330162176579764887574201417315270499681411359671451394175691910389243595139373351814217151967777402542454880314667116627863807874205609312499591854178445334406819454848898088201522623858152781137404304776448861214842336870691936603922453866354730453427187833402254261527977150230272824370870454575217473268209631822599544087659920911654500919347662774433634282760603711468744863336266162730416074088688680760269189548500944835995316617235434103627055305121279873200419636000844427100653128553650002732864845540875953811857112302755537741393818214709990572308297158227853777371140717576392564533502767550967457487553694491114802145125511053126075179437245653638264838069614216181468822503497662929042225839383898372717547590331828083733265185644709080410789484337882510496033563292621581170174473129575848915012649617209327445038706583625017702729325750219093784178728922947833765367549314161990768151751337789036871297776347638449480391225038100731148923450289945586388145511792580760511888789599657749725056096645781583524632857380773201531693152581155633414338583177961103531523248371379504870813675542512674681367467881049553245757221556248201445702106026293961893919991125553856426113451871058175443191885433766175755412970563620682361089515154977900974055929667030514460628902816362277522276908551123359580483943148167086583264498904717533974971252617127524605413595974683567688620096791251974663249782402999957309663358529354199912969426516183167630646684804312251537762364411646402507948144335260893914120890294910981876688561621165121604634604233689945229319630098867255828480163473666711449177419805664612339355133776579634196091731925845042155009149969672796197080467355388335713561001171051349596975001881383821065648434804283951662952154982106723065532606911525965638753666069959973901323108977360814158770145467321832896342828002838393131009221294780112851520586981298119814039466873938067760469185577119143373159905618120586290787596728443448989871776813279155550623252073583586138051145062094055214921945753563106423650516134008526514658199244789154917737378767241879269206451082577884178715941596882529132669433248580758697505662403655017227451347979516619002479311360310796335672766183615843048760873538665598110136235643687305989225999596590047757979532783669727020979148734478718351646667668415972691238105846742292503417306290536690793846408228987186772581431622566197033149077820586678380309108848661073356389136465958137308654522158846695121999175465241928659114195560164057048583235703012970098142366451970568801161291156416436833561291186586281182231761077104222170641418901510697484050767489812411589804020488535495807794020702689508713071567244830821986436906576645688034650933611300668466002751936288323363308141827544772823589775120188321674299685950164075722217440093559843094811722362216523366540087705649109916893348293041095619304510638576753686218264525484085907941753127160250328704709110818017082238537112805137180445784550506818400404314221260763457500793648319621351746721063946382119613101039947966254536453972242027710819000777052201734398268602817354839155331989365181048940131950143412378410283506554144058921687508049177787320728748904460987927815887795542855444237071306032915697033618153446292656158038318307316512949612015632970837202676248726564370692273157717977458820517670433524459527026601981194774708334194151391044962156340899714149084705220803998546543234087433880213023820670072145896064967770477368774103445975706567115529953734341719584509610454034768006112654987725767867385401941616819829502486831301655176619465674077969090110242801789033486571847722188728321563701202745500977723539854550989794840105235877106801423858911940475379595397830835333963161789642450230920107616769426655040337651436210657164377153324836739632248048380882482798321301276109442238421261783564844364909855644538499275214618811501461994623538227578526393654906186545714087588582520159447178693924271947847839400838848600091457479461550797712175762363805088549652729150477759111889775427871116415343703818105615375529279200370401924224614045971285043640540444452515733532401347443790115267363600194849582622148352877143033531481399302322639702169365803128087507789707525159627719933933333278646187439457003808547837827573577662806164117616871766409610439717693761772543079605006518476290789598625176760688434987609342962962316501715018570579205305549773375096336785905134245180229259811603146391942799614273754996902908121579365475233958633996399892298690261346623008843183692558853535415403754461224914498163019263314311984511711391405207863386909041714137007123206759769303481671615998886283493464875027114056801699055642123423813705587593560122575242228198011901721468459334893966169653119182696230167676086035008266192583115778083744922316312395213685226149696684447399576304001019380485556767760881214976364629384028894095827289881243761542595571276072740390952956251339485917105536497759180771617989357732755095069857729154464662247716068439189103625887232930531076557325938004332295659386364980538584611963285539997644375053539101121097872383613253188193665705500916198674055627693964145143371197914623070674870529596469667959113776580124890867321022203926028598280495275680933532610397417859691453436214299112226532371676991595836652089029408384313925229334228338942309174072705452804402458252768383547005123976461420500120602248958805249629753238062589506364883429420864676432821243163649927539868402596508617169592167732640787511080939576998325701797043502291205258448992017387064701778781865645800196818478880955591197587516954425741368100191450015258660686229162850502305818264516444860367679840768960568199606528648158496233302153402843456536494899624944130854120067246997451604098146850991301925204216368147876722156137268710119914903416479144497554106883506309018168714920798074670967046069514658411156980583908742564644620109112548118032805204534707847019238402155743076491467745000491531737966084827445847280008877214955417745956051688173111812742084444623605540255040504137734201772605150482551459142657965595273101408159532599066494499761048930856386493903944677222035280649502463407810455987111765067620413902590069018805938607439949768995286727115175863280025281173443228914197513564304012799916856471931396600753235292621707690851477922384179201179113094948167562320163403099150168634962096178810025579458845571900275761167316959897872096250362925585647521589853140584367797496030485776987518401453583448928423058271314361698480485858589262869738891737753084583763998492099747128593043922811164207562454915983787621230742593851855460102287644428915947930454649353311154119278741137197298077365050885747432421754379553184970444263412268801153208849340086152960943778727656211722315642217031416927130693506442962125746766804150501078621654584007282167253242977365094699003995493431020006521305984914518715696547469329657246271753220640926195109103864891103367751702655273940939903296473037873182645602473451012964986336121451857216676306364089427717821926333065810130036031776642548390429683914102937254709339389963528178220777264160941751365537145754754334264377540103249719669518708657012743150146292552252983083866119233164331663302844244418012140431188854400089383224686239721483593575860716523028562508626369529411972470917163007748356852138030358614357633806075341078326644054277824711799615872300797371069183166621939048923273955431215904788898055488994197787906753382545708212106989012144983029952565496060356875150037610981595185625759663311553835097124940134303880299452874263011842292587109089558457659527374536732040812690466726847677267898236075954399996939122355791210963451886461177358687352313479468223581944104825977764542733141163177267661982583897092315791302391266731070966099117288037579950937229793524323768930575624916992062116578363588015315270635956388871185998682144194862169035388188202840382572564525641836148694432183233482705020457732183696370225260836058445098661087417729778158360634433432172113335165714367172254894423547149246540793852517434916772963385707885925729153432992026871062006037097011641153321363517710201112668236046944830650534512973354321658747427305089065839961774793788370876306535202847546084144453697843188835782230628773625158590726221176288456922955883515630774612420702452326494402548536558148296882688239757298780479126261328886157565291619165817103881502484548778028142786142836203855988763217535427376415339609163322517083096414084743484089859013622998858690204643030323074917229502030892569996132822107846048022015938250403551622185100199026926000329968868085895306238614865415741760771703450305261171408956015455491928190685837175473607726989843297699813073529911890078795230303904149777441569436126919405647673409424902699209616251139381301115501024735823449531804596781313380588524776291363998112666674961211186208066282311360425918651384108774381000564468501621432911111636714664996234204173637202841271243919342032516250220916383219809308081645601638170907742642221202906873073571155428855366418920640712188155929652235762089892774267598953171432587828322775541904156602436987916087645066235370134180821138951148559229726351786652686412881857081900204867053433967587154489723221109408250776546738385081363205432784982347632581537601332098350928438586731180332764304958149578652239383638878517731393081339322935086931581717496704670707995225386970528803312425837173639113288963234703158837966345347157930173786519037531482695897344827219994822959779489002492178985359128945564119143430241876947337786604471261649523499775583176927640539287849265824709653029933227463293002393241965897779278374398815005403092552339897522170664588567116757306096767750908044945061949986776080226550829478525945809770610333451364590353513054226821481466995726400353154244652023328867657915133809517494978005141817338286608101581062488934993830623804493021651131016507552531274977150411333012405514093192151253173756317946031987509594326751856269929898349903277871749889140459775620535932119166392250203238971708899784734266833423172392734928492142532575883334109768521398183945985067543200675001718779032477873153339292534391248643553438991040357770176291424828525731535231917201714314123231161459173617928376674329881963503348855247201564950870742801004633514851208126395766174382466814281974161215991185946677603553156884270376572600890854607871386276372074326230810799907106342711643926169774156967074216127694931214882750584156387124225399541077697350794228590362643487324411158598936052845110378183089706635594620796048148786325610874898321653815484689682022994228362987779441967578782302029228883835525170228015009737399299217623941605273964873351226815979094266851150806261973771193397692114024944536519760334070941479723438906775014285352199125817574763306846544655283581170099118342439882867868639313655635246740243648367126101058706441686675020827308485808888447855625641774391485757566404057369965125875506851826218019548099159747410049601628807002733588911756367108371072947168207136614389630656658720775146952094706099530290618674039186601266640287737361354803889713018182071408537400674892737233014238310394935298384425318451035321217339100932211065963711078362652783633238445835119617182474330832002046366255623959366396031368812603574181114826488625455511480797545651978582095113047999561581343843533565394689818745177951147489244471452172350160718639918398350733724789363996345648429973680000621534170071346892588652499808976553373148520952530824784347634495686828518215579385133005095067585266488244019557549412135733619599670401376365320115855497694057419306957710679907860781851979884764909751357773213269879941508513769506768279349384103365906510415571130944429892039109560588034613428240444557080642773705304972273788677209602144410988624960806855056505434931550935098141446845043066038298896777999293992526315423024876321623795126845475730515506794230310404237644775775010987936258253616408812800390668313988172388980336069281557627801805977099717635449107427695939746999458814050419999623764008913054051738170687453231624852330950596146595394404607872926365277957638476991530866368123736369479118439558581893698843973515772326839119264176614580780919137326716018329696190296293718237914280761204461954004691566227104544606691770458680086250690277577830130457375130342789308799750279053807759629994306586687885687332711743758459144829050037240461912320632836089017810253826126153349353272672444596391906951725876392488297023965657032533903487423858899970345269150774994523483381143325495078097684361307390094563016792289865946001555504703885717818458931260339994497142026514038218285089131556195863644831183132621507604583093389945713468232448715072029976820310928302170768085151662782252212893780138962832971438872586403599106521367689767520914644208628166402249725553514481159560142978366680175729744743716449816363349886808921015185055069531596520621149813034024465071473875124238478014966148562850988102385448573198093465529912349705885704696459093061165196299115582427187284533935367225280214252216377270053736418198018880933585732543896157207059234870816426240055202043014867997781777566992948958682052158960354862323117030301007446639389566561131659066755551701575013118146436274637502736179689711153664399832562155425253567643856047238976011230762485783286495989055705026044712080057794331554151818248244431552709608518858819756310140506997892633688535830664339339532705825713873973282635443643452283667926660504526794144432177453746091694469591682564386240525858333079123270090312909670982925743824706004957591821986909220517281135616617853786480307975993521932645189055424711525211257633268001307942571465991573251200645908955434854754032584443108389832342551858852813822829865368699728305350535096802027200306498345612353053488120543175752505610121896335768614224072911247360625323575721214579181030929017557418399695447481631432176290378624349641597526236640760335977688939486412858400594460275819442021978047257157588337864593706880461432992209380596828299672051389072112859067648137266505295199876546483120968666761841986503370590692120348911408816834661564118388601211425764654621620479713958529792509946633818732182485117763025752562655712098353328140921954386474984239976008805457486087180833343764655295205505496114164008694866540836216473838597267603907217650164798008670509876368104795165532800036465963056021182631823966954539652178413655531225961978709452846658282021050352859745216276160340671424227695352991355384376361770158729507495135355843398755216870370131521514461022777359536573355804687619747017481085648665808293696618966353199579089911964390907858122702275357892925690521627445205922160489792515370613841091210941509565093529463850818592745564169009739365173966414907864159920445594279309865619328759583389939284089563480929174255149243122274244090597369583928639280429738085035481558784188581102719650599698779304591807036661397844136572289051215649382189707162851518188162662365030797189233575785505927366168614328488510049686018707425648524189285565827606437942687062687114236318668205416863371080670574199720538574617307297858435732285062588661358765694924994906583687358802335288288143673138320971291814614375768810562384515664083401293054263553868834105477276223428356510435848344795357730748414527978686873672223981659508063680873829249794666223631193973447504897200867243379852718654186884930582335068847479981714078576031248072495742009580770278331207834099530139140274284178931225936284315349320333829136073436146005323100997104286585027069022787982595102334816273753835926267404797999904238538123793796210673472266206189553134500019026324405505912561093507077893037648898202649824711135278025934011385920084154675647567756935955209851503353247454979947619498741411134733066910302987144086200489621881003492223162969191411674404951203481243126741122163555468713272518188026848701653441066138244494701077995496372793723607686584866900471370221145880949542890639029333744588913993788377942653011172438732581678228090272529984980687156234616001890991359254250019192584453674803538801183427926853431137658873303208190701380153530325237685675751254316063501794603506970534270111504298958899610592086639504695881020489813025837156310711469017760054122190847365034688811743642781935972356874892881240316951997183272070011318825782863287602485326953489284188416169439914316389158651361328411533451930202724604315172237775051889960205462780287496155675033713255906624474643941332926223006215438650544430502178183938754213713490746756322713537239574238048782302584518937832455205482651951315372317347050844295529836107751534649335463457600801404267986196803365956167335522515012670473934768491706436901931748603823368504507032786406126898249951256040935194001420300734874761389170053478584640375265946388661159289281744673445621407324289876666356816843428922299267368992622261433666350503108860508346805396306960062194036579044984560089965885145849913572795043188556659200405574631198961171791236152226369211535729150441103223922794068507776771232371459536888907916129837851462167582260373314466511544198477937591955838208982312442555321184099744190323006127792653748621401193390691841000481323971792926006849567475941732248921126621614438908084127000966894709698526784731459686349150441797656691433582098878555750142852977172300205013438158245454239860684159795149348620338954196640866029817846715414544541041828683700446789509460222132822415209636151964977449346265515586394727766399192278278619068696927986811863556593692252884172059693337982231735146163902128596814156678970367983297229764674179019666764502037713539495018853911393299775103959619080051460684690883657986375305726318332383739333327830681374711293218656984580113597600750059465524472181889026093275829230910922930407890313229009094325369740970651703853928213378109919629695915110134431961344525674541871977308828890413709914943246776988801055594962832534026092146491144602966291141013525846120555981058502596237540242364338327669551594570857294608653655660195870864356954674386173702974916285739715541512639974350448980498493593250961009843570598193099103911472716865097225032013388218980133629593997979571173383843168502206470845088975541463522787514445585453502305221497213754066228448678300101284287213114470458688261979266473253662024440072940254485875295204905036335890293814261001031815552792306335588364392946481809744014889154571884389337278288601323117346478118242012649603696684968491742201897894417300234774743083198012748036732195336557032907662564072195079047763821512648886588158713860899573115222838502339945102180642465654286132873566428507936821365306086491716180008575863409080763492169229957268224578593416716575149319467144690885006065067387441991120906129241517510241639275792676035527989106290193096895843069596715211072017225006522414186933629830003586186154725730223008078109491936097397055602099770466510961399715398107042319385362287564886281335149439184995723543173296442925760202828868280234711562537644651018531818692574416207969561474224616561785234428640211080017252866689605675929066263314959281568153057221362717232634470593097485695998909904602713205983733581310636534039677961346571278002183122660468659864362920237293494717679073117040797974072815992855092334448010923871473868805733200531220310069474043365937282693061711254783391644033402102333622976860166856617708346399719757690795811160968009316242621816539577252472959211145251758926232460630673039399355762113840765661307207429911452619275537703051449453348602663139729208488491084543034921877914969707476813078873542931699172639622188362791242605422035816927426520777992752013813903840620675381431250604567217649056139776754384237997821940542813375066891577202034842108953322723046747146327658819135140507508208777932798556779702340838349260639887948391619500059741413444359603857638231557186250308268130439655483173027515473927279859717916728629306010625500973163070224821039202279025364707454084349247314708108676182191093284560727853276521261058135371199317229096453015860633134319062514887030483990396187299470788379079335391801843936311627291833254954963422833450283982967040573498213955955232400376228074801754654980775607540797115861715767125189978564861935935356928762932329103956224623870942905260500832433257223763227310044946101471673893943305754900268003090861551003447422423222171863559311086673397654689810503070632870911534172894398165783308651575465383162222950116799023731171243223357172771951511639805178569451726087653638863733571711183224312835843721839876544223971723623961374246295667827811968095105282328616263291948393045369745779417978440223279702410675767184552372980698814257212095599186452488047264103813734251063261679657273633069732031851494034800781972128675531506221095076076658225230609681123482683664406927136473965397214506154000629739669203976105083624296433254799722335033297898478228598530705265437865364593389940600666794361327748404001547632861903720944640150363011621741652017843279611783157667700682336285233379174917969168859313972555441450824504987612742393771003788596598469580449814225123891352510817755810270570743502578154682393916135503465157235066880604168516293149993274914701487908258004262731514012788779042137977546774629830312336322858332033544459888476137906555056521121259972504074724027094099859146047105310122234153782188399225099963146618021905441650377827460806926583896580968077002382515669023712589966690132445029383519323702257728908410018777583211291631774617735214777775147032190681001923867998517044034654972648636238448796712463488671655451714768008173901900120733287540921578098011506580029328196942561754255338807873378910364105969998797668134246883639782546031305105087938650231144376408708800285648917063737661868809299053197003474443685854960638230672226439280142522843235995938359163650844237147909015028051773689474419498852292548362813895951273722582745364247303167734469078682652072696312830541471786481752331450651448835404813167120394559983355443363182770854602578102117452761730402830985838680817384182190899268456770507482209933768333961942925106290755401734845456219173030466164894948578986539038681091531808812858246426396275252748779316515813008454725979474617269143703782867476238727605801821842902531626400282455560123421106851132204018042552941657908802046792423695993974476968202868713887661707968307512764668941507521120448211237216708596137786465537873671100806875667632693402936103397764810734848363143745399861584926820568903308087074240714664523153793897321334363281880577219886856415769289624296842332256869886909189680750640561787346065095103265659714266379679420164969437585981038222966730347352502007890182260026773952728919071820924191588430581129082619798435454056653035678352545500274974477438039854120285543270182413555615623216055472935570193351215503555651427041100448043207519466506341741560622049123805041635827265231497058388110191860220295480124958418994126841878916080808815081055739251568262355391900385760817390911630231450523612219401313973566528932874162821434543672603459281215907037485228110174762318791062366273321241872204082039402801400262103636553333126912346091592824379245414912196144246716329663765898710495264135418521057019444142124572804706984505804969819693360838128796400296149883417383227019902796671572176375595503754889971835603827201387856576404712070432359329151061615801192418867417431293641966790774037048488416221978284579783934088979142823996307780026114533666135865510647996556899238720084221675912613904679311392426387558661281197814083399674525144726687149954479463919876668203016668286240916285515669197486997695770860573408424132097760818665938980631327348557969873530884353894650720506413354480554642746538686551296271584135292977712959117160132581062423763524010204333702506203622575816785829408095262571988883577293848045647036837951672550070935299790001167201480370821800227411447112195636042076894724556659071117592832947079926043284467806839070240217797055108614706345931552368404173654704353864786332087005239986171645865311201796540605245641125811292360339083994367075863860051709272983799334548660094129210063637851737523110441644019160378945696170066723199297043567197965029412916784893078143627149798705555551283199100299208833834163875666157671058904919690947438873715653412758302023434757417377146060865507778982142316578658764054784926193617279559903022512243695579029418963191693263372327643474758901265762000820359795152824927170019981666469570149035893897657538745277211970810037758892146409397911869665983502304288896475305347557166223639924296364973904652281866582297043317901472575800601987966294813868812975355125502523128941536688843096675403997605220877865162700832975875146364194221680823027929955757047371664336755247291364365869843986811396569715486346984399439174529482627047606713186756798547907313887929561115064859141071422297425967454284824706649390337569951462230152873284535744234732660295654747498210061506077069636005396206519268028715185339556531223177733421818388905233836255962536566954284249299978322264340757016319794207218297102827965445674470924752737546748966300875960593333964309763081770850376551184202596865216177299362832377555578470415164602328207196723945610754344776276304048409643606100570360862902330341893903512602437096713909259928474067619289801547405114832349806084868625084443788799205478303729265155261438704217972211483601633356716260027761683004813791872953571410847303780976778114357310935884217241159388745597859372836422697031004398607415384626644563565361825363748443089337605467282463799867654548957874886350283309270117650323405202958446136104644872404896392577646019466201181847430353865654528286523412185884060365568764349716212382588637919032679832826928843075615669975282267099503165345803099787433909480717749989793583666216370988889434289742534477796393856523748524274849152803498853785940206314002737456062030881560806209343357803693376506441304885811728384551796904737260734043563650709864898323249410363185161704639527584404693475689633140525585800927030976385408968324158059447672575574286297862647239574516619727796863808291796619360201189947406746785582762107272281809158520105569679000510388797164833439908307736454530304691415487532895057129726966629048628203264140127928020225553628998479556314358400568316909237220635558485401098946110360634587184498121993128439246122155148445626442276046440642881216460859712793454766812427443887157671766096497854408606960407786396707298723638351167648132810190485932887381117247323852578179168643629905913666015018741073788806013827636239616681935170777177799269004343010885219888095872818651145779475949311294322429257573409221109428972995575851986944104912114667369076449335455598379742647005431622703413653877047099139113041369725298656072606770174942180634129660906889122558839533149682906040225156372561049656977188569304603650956666365984756906801674753806063385440549448353200479224311111671721541254811655863447310235883654537878710214205386081025490084767724826083170140189849788135660161848625530132190055773909970223134448749421106255948599389385608518379603552726574583660148533245032797126479876935299938018394987376349035897451719960550945572475904427059789691362863674700659903192686047865639535909322987504592522199244493468058742651852439376075087733005888688458222122350451461648519111353245993101794995213942720319212789025447407939982117487199634257793938354192208755569386167235233404218320706876001093141953213451496629145814054604068663658025561840070922927907842661459493501050591535078522754573419128305675651358512102183514771804128450843349187996328576963836043948802393106585747054283682809265720471855829375847346926055349899194816551677191208839648911464968466388356336905107314803934807011707893983489971777780685959917362116164941785363595539857864707326166469809196041556961960824246118473012800905589130409255267064885945187848834940377341082151096940877180039230626153415295407399421058425799970999862859902839744698070052476015121699442343866955735305647587432748272979035327399948134731679946526499062659122303377621177333280698361966310062922034489559661186436590341542019657865895854533168282402719292916402926892532409349212973989021690986116705787847679815503212464405362311272411302614308290910431994782259633315902942405221868869603781058301852946577520922715861705768091194009534291116338378521486892310946360254786608346928985697637207978831231472337399149776145147349136525380150249427152875428533948583549234646074802727184337693004394046059319354067174599514412255804979199618502470883484180657814416880080517098757534833416193229463192005654330280673011900104211482510744847699904949455518364825798770560615948737483986644539034053790914656610666384091595319158209170266479162427149032211742043101462440959099788695982424319610463411690391134362262911320601980889073152233356617911903303663658439861362239036905377173145640925898979633243622847737102431025478612124028633026602219752580715211217946589931937162375690046834724355362506884037203296639247892487518122688083022447031229182919611728711109482265475119185523059723539414959266457185506722440087372377246807284866413509848483439368399605429876867471556382490431418942990522937148905285044496229512325721598558754231715008228524149029240251820087522894890729581730067263372843855241277624694806501421282308753976079197395180045223414210858746747905168997286587570160250609451114782648146425200273117786620552267653459201389495771154181202888702923439426763655044689273904066639934207655279273136308667736289413655915166451887157546705148182086401976522847025362733028711180558560693139391788976756826041121499005552849275937078172780286298434340661739000809557746649593529414476738157549734079506107211076572671861088366034521846205067446176641948157019597559169672847050543157588452700116577808028811152961418587458992896284070279532208641911239310497800527500848972940051726414715569691622644352717304623778399821334202772241131630736143752927247885283023132240330773772113914311381689422619618178302754396936637967654704941258715623440523780737129053331067665279902424101033547310250567263845903718037152396486965462660533143088296085018128042842502141490243875854117693244596978834167267309022831225329561726688596956226425898620151298118389084410639041174059607508693910773611113472359777901391788522828819744443763422422342321497963990290808134589757747658688084854659257442479378764252441893130695648437154656232543091022321569042138545029933911785405601940210137228623719414350978383195382494027929859968745715658246653830545358184801593009454560791456171508237363960806550864704772730622899049738665447067009019242763700995048253298397503857270874144902974032435252360530654488695846533433974583568202734819283702087423701079988741560086512683773385139877115911836176999875397413012866211744917567529679546125469702173531465139946074792989120052372026991443657128642766591325349840863033712757754893310464801434862506969420962650927837995886518567716994989795246205454128623537730423965961320750232712363621703120832229235458170931534795121173799667771347094605875112909715643078738654097257404760356702893900857130473613893609027013437450649931425334999136822379679183161215843195897306079102387594796400848739603302786998299565328777763983978868162284646196086734478012173089220373222846842814534613121034057470991131209553242523999099423995297970212394346898139119276705385084793423038353625506392605959659391269812861832082071888744110240115092821821554610346466820657461711550656543486417302443379872236169060000930840706882968196902148481790774521209650363237328067436583803935667659580566159354306251716219523479273950641236484620692057119142295330999133546538703039444519486467656666652835457580497090719557094039527905691016141200579748634322378390744268407948841667639861587550902608738966622723619109141648321424702419710507402810671279512985419077877113121174889125653242865793739063203989939105451024394114752125979936072077166274755929562857812476468260143627600713348999992427281644843632928937906831033609665569151189562078038218391481775345553151737700943736731452175254274877257407153136615645342333198670935716745878483425608032062307114338475586522127527465312496303489263213676882947171232769165358599960187343810728335662643627694533219389303041837475604876663992509705638247100441932216859059957740508217714898414287842723353695839296431137197308567701463382830835742891929385678172056289928770575872567342463149299952570359947008839481046910645760921011802863613750665128558863613499920444031776807838858016670788825643466885508152753770461475156697307143169914633358246240827632265080302961059751808203052301252867599895508966870770705098717860917639195363362886968339946434110402369306324615534875058016375068219550256445158542016193905528438165782006250416560274423366524238708953421765518270729069678184882062244622231424124840340074664700205310162175147558449693522631981320260034982819522447210364563042184318519920459671892656672781982872271004853505069241761407349218508140792631703060954139159722084079538172416561094922026575274827384729602367977204747387628177787973030922705914454258400385920563617080788858139516261949398515125374738235128186146569189675960983677025032836688912115535252598885872216497327032112071950662762108282701013429170999327613819620975131923622047715368788986145961772977453953898150999531857702842117741872108997731961859875298591857204873485900965458689875762341640407382922798527099874270588233523148542816564644997324168437519605546514421964296574965577938195900982117089905075101418320127803285694622531447725668742365002513378018978199366597021634407553342215576315644449435423784623160366568524238921538329517067106956539263893696402637459782757776771623691978878104899303833755519908623707480814230344474351251000224366963813988327228388247140008240319447577778499719909157472065109782081328684655586861613943974097854295541969058237551843708630433232680141097961145356801338981550531403914432181485042706978542547604465259727829893620700981821358872817722011293811391056347343996924092291483073125069631337529056042800717280112228736236613235841563588557998192725014073110825071483125136510718145990991936731370461177641722239726199653422902183697641449466102326562308319761541862468976541793283909328924266048296902666444280890775847399612585339282254217601139019163061411330311439572743591142745473064860429495295457239881972504884596454858446550869904085704949715552098448525988444360459404206189995801616358121109116319933615913587666997212458539216450464667688105784323325729810779214841166826779665985834530074156847165438649741640383315266083621982233844653283184855387268128854903152021038548445021426542838825823321685461203037570539234572902040918409269697300271079617021225039034002458168944453537685563682645689840964544533714680489532384205460298078757675684932263063574940100982130748525222666144705916138469418794467754178502814501504232685416499846035921418609937878557242420643020579474061283938411016689468450907596243185118176710175701345192420258134076423613276588261846122057302315741033080281921065099536058064027186886556673017859345614761784829464368835909724382964281697998630648868728831223187598985160558565209546582410369088491071117771851269492108274238428912228988347218088124867771886041958405026939999578403345648301295563165070504770650776541601305906465235408372690035109006213182140205834621970760234501601410700076475854502546491901119933186937516066577288478439213538278043288254410469633130170504897199669664467754288498791142922855646828154237591296285727987533347580854255486746057483477198940672906797689050459312234358055301043653783596721272606060722501707928715940845937545945366965322936282609488240115586686694865170501100688935052684158665559397250434998025122650535647257619527825596832762982260560175219449562412236522594650863749445829648001899904824978182588255212061034888475422847997085407862926096502481101392911902128895772196724588467328838348280080737304555739560690367825495262507453224160886492105782659885748977384385742790405206837460733753900003428225667856966497612959985710210043279489308656026771458132088501625500715311141685595998904650717422070798105812710067081833214209144399510523848000270128935986726199930606679793323098795962361039003365434956385573353205969639441062083187533348826280909198377787484880483121670281145277601983242579296191231135957973088233969527096834900573256004972772788481478446469483483865877437010522779704098443323803156754360133626741308254828187905497491012572746916561615800799142172511384731595853125879896137876952862840399405538445971019412685121169349684181451723290175846262653314125903007036390342120946390948590681422303624215332055963333556038864727027853092139450836065163111762637950336893729249747597596433940492904151087878964918779075491148538800530207520017526035522986840134973585187816896892628741165317732575549306847495011840627155630318691558244938314355551158740256375190342870876387561301136286086848078712527137211135458931500505790433625559168605150312610963352348397690896258613203296862639381077835938011202123155234805322933284042269320597905869641530233623088380838118872298366774491104482510846169869770518745754912730324780101156927487000783520421046594761474429877616785750444753044640850905931933366105490022423365026399335279048809727121521897861095404111893434898131442703735674624212580931365693283353644898208906423784177229527894680755372817708019343101141464829893502300151633661185992506260234442723144657833155037920528686234925332436308072756657049987780008974285784577402364127165800989606920275454089207163968547104691475174236417515510056750609289310318994879726915066556465655656109480724123166548670445678403473085232795902914033276216036304164202240631044995668853279629646139646482154412434351056659349306086454860994369694725238533851147768348943424969768700416992237586392482937942817097438600782213113007561244308630309755552846830961964491278510891426949166713247276844742011853572895774465045657892273384231106025047946753177924103898852488976061175913434227868677687957772647970916552541036679944849995037441018366242194253438781499569484533375299431047325478750242844914688396635337396094138505013261979821079127718291316514157619281575401252909037500563085586530021674522733519553764601596928168975817281217464536415086678192815110680671049559607842572447422458313268871861603561890589110750624038394444399188197687182984759556398477123341833982537448216636377042132186668755098480002197559957980921625641315345109465765247307185341952708488551242251708870871312427186816056655337401897581570365000639902977203985954854551018187426932591912253451814955592551871030272824517890960567850437293428466612132736279305271639746359321718453336489853614766886577794254812444271649658621072525140487810432442081060763305761728410631173994312850323431739491768481273721117330445138691034502804229018854470937959097324573853245510474200506362101849455037903892360208039999263977356112350136035154705665453002567313345273094028716894444348379532112140328468707452386748026033042582989858515439125030661362717010907692391170766017741887941449010509778694770299945451096297214890007394525292624215285702489732717695040968249098646011799351767348246724394881800395010250220572810008364623446942438988881925689805661046763905380109022195304042085206482817268738318284623174231573777457354564730711387587686595621956161759473168028424087562220697500667939961838151541256360943922640226337943252345499100578451274989905225135135650291391009287226010200033804978251893238435594805310883256210992346988387465625157539567598042651869211708255615555355141861472327052007046853452608657000368418812456949491865697996109725956391952294277795537370311650860623310318029310095213575845028387637555058388552495831522557899607085268741626198176701986867937663200924939568606486850223484561056457306718243424695685315714749723620769705072344582267394710352812001748194999672915917570580431458160481506419849034033193256456465926054359315269876614805685499123988706808366297012548138008847569566818702628467421621860425409295131351220159831534819069287605345510100688839840062877137519012306489662949550060566969536904516570599432508350014372790852403811536340675630595802417734040081333762680643590873694422132212034733165467598941769700777057403516711614548121111212375603062401904873823376624595914420519034553204235183521553806005361964883208570290352433467702131770350116577797859097747287326303722727351444983195464986879210133969293971599167320132506560816155712226192002113936925935028274360989541303732908926800495097003150685568887307455471261584554455224378517423436292841897681454824591941371746794561800981631645209926153206029649365687480233854939414113648194295683611013504232232969079137081651223444714985920827836858747810705118087419678915385873526073218074732569618115356804211236278419003494307745213877398424757855033369116086714748579412259010081455497559737072076400502793548501850252696261027036009720998787671703406868816205594877274459256737250655956168468169162210465464856905746726217469842051641827684336676299726059866639626823507491299641291348228375699341299348121700247828360300257362220005096812403853943662529980505643350363757988966319936274715429393727048860780903161453086265854131851213421618731187336430760868808554289666639595175175419846483730334253487995966284239264898678704623177195306692033552267708535412355627111927155283661469555046923266739415598306595929309449465886923657732350886599583671551059132349285057489644938927651029917998967404484315480508219251671923404488380467924631794506714320593546368610595431320300652158265304162770231151310090000999289141788009121226307089751767055350060548742904935763980969282016886437945671516346611839859312237049979947739457731814511810587528920450092216764044085567733588361673218022680675955213470214314503134188282082742525108094792651929304745518494894494899775650863641834900392744417222208419097363261663234941062515005644437579401625829566448302378785704145301917674922311069167862020411514305970325200505147607736950942945359424979595279325845185272273029491802859491569870161430667031861110517047625323780604298215024856329546417760034805587991276691463710832092883436471867310263433725497293327101726969860402215570470872754452988157230679738335663724089679962408648539595946653303036600857662996062868437376964922219128282137173133394579148438989915087876191012122983905783552796201894955444148846941153194759012866702778109993709043490632921966695468794671185907126306754039953866910680333163087605519313713060743237016583091184012818388283125503153164537952494116117869578983430605700033807176657777293244284840726461017267546005954226063381923018194439776041218531470624936736953404704421937705408291853791812033839660389050021890100623293346484680738294816603680717953127090011129124650989249688878979086173054819528394047212839329580277971526114789077209799222427011471441625987424205671527788575175437307694945989796776020691927454949755233255655663765740372818931080039488327599493133352406351663195263080974495928407279509681753492335564629630792663859399494555943452113009249611457090356800006550457372079673115446638666451713333877008549757321821337032578186784775163189373424859385652367203795255857185971076477643557127186272876618524200684918629775102165965045759125095239514216031585135816087319939666513302835715151766579767749834024828048227200739066956763426418606693676166786492525714481930569106809877289692365856086234734777004713233247990872988900144305718474986880803708245377295370043508634136875864266923741751279019287886931271184841113895563417710850881181593445221038021093719726464283421780619873217798873288203826121400508517505063190846794507196721222524865518836708783848401495855137693440799290868495302229294665163197953153932528628943637097782029797390835589911772975721857312322376029332160076471449680099599856468564485469572675853378708238074463702953407614284782114455417201775523098307224069106832771464647055850742537015370628023519764959746819779491174387987763050477653846519684989029780137148169734928114508975411989161760418125975332300455953703248009108487972882991356668973045956035787303910487039933806623542894076925819941980725457720278356139101311986026107578468167636436677890905468220973921856650010780467854156049169365011945068493474188143683339890306269757088219443330066578982057873265442822895755798086001172232897212475182718011768559783934139096183304382407894485204942303511763621832894365813724478395927644927036210210373594576164144894085346633154007621465425272174271864361612595602975970222118863442806367533302589918540933868638191979166121971818730915083297383831042294148147353477911823099159198648233325322118556354808357623601710301196698508497659830123579630468408707053966025703210116807221648450824180149213173914585351690305860111926906788406172221757440016553578943200152341808062987351965817405913776874508088897050469218649885074345226923712357277397502195051794393865225052833849053956684934374828575335833595490954128994042745621967075402164736102561571096185288896727022273377160634624244792306685007645295323864031282737769486484400002501177900997508760098307667134248685870341065974954089634917671980653262085684968397617013462670190201684873971241942273860071678729405590693629246506226705125025607785406437751108014474557618887596623293520358185455219028960033276594047901331272839918219778923774019952416391455917019018900933422354947825094634140984171375031605891443688595867928239487136195141367794198685156983726618952066683274826395002846934596992506885495784859070940665884703003235513244901667402904214756094394727198425469979138400996770773942903477346252354051603025558782998338087159794032305390377273503865244820943942686293215562214503146203745059468248402192837159661073347678146966921759579029210848160817865025557228796328366561478560914855253279718518559651077776401468226214710334863219732080928804460856884328694608818210856683767319108339371185216916205755169036009492712519651829199635034543819468476642737889938180112313511648056021424703159860578403975505293204333455915090413621522668561973147101374205784947692323970254834602998830199197313486602810031368772846085808719408937149171091376672527099355329255771373299415234887722483573334051278772744224531675785018174308450239257780272985689432849638228950009021247066766900076518765068558568947542037069170555360691161028610579624994770092773005762729204426164964555927932117258631938818495332324660969192015838596193694610499302607442711836266760141145388475022351680767276837232159240170055308870374637084969741293631586108619836714515727635966231966886043852851774789847383458709555559217986423893758305383433267020472488734641568169313911220101685992400348006127941356520780192210718163671991912510554522631454296588018299947161902594502705458645973573179601777902535340168851725018081666170556251364180168727556599424125245638528839218439130627614799006750408286917772447956549904106855166812114400905280644546578309400515756561109464967905617548170615574319682709090208003915729145725853416031224320425431196162211539347714610080557577023416734914600392377187295918250683906672771519332597918125463721770844602159071733688669003446682328808350979955602291322299384249371782332468668972148295006901684716420322657395564126949374984127082225511598399424230124999094865503346790919856947959752045340645611626367444181189093025451681945173830367855969979193036798560259774279703404077341908130061188938646648873893180405879674674760157297269817453587783781635163402006468856462096821509641292466753329398824687924670509935737786689823440984008946270177447000845957423644291044137988250435247690741109681933178369481752853838859354971484025078418686337377498305178120202443624110962141243981741478588997846911807090491041217189312094345745717712268317134875971325613466669981346323634894169142288585733320910895243485037527350682618954400667240574996369379691485257854397046821462511719532163271477821385057191505540339399966201229152197683037609829069506075174384668577071036894453551128557003528876338823206669747646151024930015691051010651295734117480913188948383536062644087069866161784996407042476750289673165395599781524807042959252865452492309022304234592981430713369331134635918632472473148778163967187713272785612559184305888142133998734739406923070507359467409947367387469470156251375469628443182394859297376772218148316967104438597048285551508668878120364626749039795106903748452643385056002635140429430941487180081382773482022690233529656759252230946237435095555487101194590199013424655900571677000132349091311905800942291646941109664942226147393486352155619523972268668767434641802915121896169611512119026123484396337230106318978261639158073064300003470420050874430489565745885891693736266366699886591294311433119556397222191813963981380194293181554151253429031282965653932569109307647803610645415512560036902480037393995691736599628269530569186932211570704630983627533434521399233092114362748848118070326802912617928791335738476393213936239096209160326280441393153362583787054081693742910588899027621106359838046270291028165220265929905272996941237426942252088577395967697904160970164121454690020244804240224223989870089557053639874390086417541993117553214974412358568035378569011730939097134626962403438941603172288421464494166804896907190108124690350531274963690219082078034079195609504254365426069721164163230507138552727609988562396129738208588140500148819820822318955555012888726237609859921847035479362875559794132209799351893617663250027442143412987003740291919935471272151728664204700926795514210238576202736136833862633718928570653507663183758244059183019230024518176795896138586939439914114397447035296836089118699800379670392989598926599003083356277754072289501131383567522364425493945242094416898036028253121603405199829587697926823989414783353640831303092726550813343979464406479932349313531338255027857266030545587367472089071127032259851940858118438325113319375174817989297539489246640372595037231427659305508945235871635934301902545687787532910666738521661920908927955294555267558464413566172986158565025799354762412945111823921277632139399889885550807525668340156491165285405383663570223893482363586182425804609576160851839616903341464068750390236363258507119408754179771390800707922152833918398479159988413063602236810793016612851245207207455515176249714094481184247829297089018242610862097879049220710864272869364396292096604173742271563092096417992108685949356014713977470026456106379484808050815093858786684501554105828707551435990858079369053127274212731106205483759867468977510608020092683286400045515323525136585655273895583657957442383498176745171861168792930688774096656123093360861238949220426667790349976680849228385432440258430219573110501364012990201699112333696237660375652390897113991785932958453641933223088555048228887819674862527860106538703225578594901840571320422305769940361505483413939060251602886196124768843928467683091195154078588994974263550258121561830444638667528833952182222242773296235886778695785724781350552158457934490056786066002983278589843898475249493332675252680747924813599936743148330360476311284324816517019477053781143976033381346721744270067985649440272787418314725606938619663830488720193303767777397467677424769550047335462799543431122399403327295676488866675471513332162512738913524377559120006377453037907758165144830906394879734607684721170586257965444251312154727460687665924558898158322622466801090229782024339842004614464768984865947044083105444010316298641124951808117225318957604149158899098038254126461363705299086146462655033727086814991035164786681046658331494483836109851074480132029179551947550307977015163216169551267307266222858612629427077602450236246791460858144892980795716165213732759015384512766220551521809404167201310243355458360228684817891792707002570125617591440924643581220219752809860944742880678779745693306368384407338463169995621084769767866536159733609994490023258561922422571032131713553963883593238398207445300840696059685359668295071630044630142233596613172099238966691547439392868645441381011670419992614518562697140865078384097468164315049574483318157634686052332420440988350627291068341657517228958643399638166968593273525372543272116636216250377577017297387733681546551816959118760057978493513517055446580484612172022292426911776018484578103840641015160660029023259615924210218784298060515817274408465943101683692274668706599898047248314640241496330761573127248510755416753745908651209572572174765511491970655433897580261727921988692040244913152031061953042982894805845293345425613256214467197650937541101390791050707581138462475178771015943798918865718157608693551881820853652690199747573398279982027232083250788441570916313758574210829822212151437806816038296331356031097095479300912377359758452868861972399424757535012937567245749838622122552710851333220191307302751431836348975918000798932994122350847637990931642130390442862296983249725980881056371278493584398377549779174307235074072112064337881356490341781911843412007523381205643881879009305599698236602551460166444509851592225530619798111730536242380581039459020732879329843115895144567967339866713979052515479198891448708073489788528538432713109505671675747856722388084533868184616104362732861557460725330421759196283020982769351181301364574695405513316718566518488612214591869938265767021022900017112558038002658428780418534848376084700818552480476952446745897287444997299042380782329684539578543465603938792537913617575989240121356016020241858072788611338775405584046090702134258620949052580637634363468239749343328392687708831242343112216399878923432134357808141176862383021591885754687579374363506709736343715824122276539519161494517208595825165989769128927981895488955711616915897863483542483041673986284535684216160423418679285118040067147257237379183046139635967597515418091691397416302714393533509449821866800562081326260659044872346634804065011356221060309298861403750068281566329198419356407399542805189255048648553287043701641408528488836748484737009825606149496539381468442104802529178055796601793392805957188938972854481117440693098999859569630089383589222671001823045817263940418404683626303440275705877467735305392936354122569483409027871844185897862902976490532958621977692998705599831624000978857759688926494586587207406831255412373162234502873566444987895050881900425616390061771470232821316404727847899111768104488812379063161450972692213127016076478655940646314073728545040247195125928926975657078805805898819205781473351965908991558361749966364540550148660657644231198633439089015100917077437662383876019891539578952507044051926981216456831016654919742198027048575773298300430069454294787114768791544547532709757931184125163727234661861990982583730437463034982511257592093953548848604644717334656855135205388395927883637349368802387275576080941172895541006249203488155976808201158591339170678944407432780836272229643195223438877212043622302341021965838622239081248188975184193530641399216026114674452041058918763024286902349501252897977584518251835635198294598641376950209403174288772717337505194995831702001356286112649092176867660943110285705228745119414464738592295336643404871984784136036663213919940451784966322707907772798302706987235623530541100508617920784486751876466093079667178095871520508394585814298844490987021538213057730013629694834924443891308111390474165988277376259862935576346219473541724740798327869022752860761304204562454554976549835689033512886868651799546969192438099928980973225358370293617928605956374830242803260273969775141781786235340609548843671959646975108819664938905250687253083012595017537590672545289315241522465405421739405825513308548587137462736448501205558355543134092754559109317009471893274947366335964227741153586730097463288981696240537647305445274714432672382239265432410944873205820328870574905453881279381217590737978001732352293673671766701786262338704858480959452840212446600350081398687523065511289523681741322547590506646111125551559917427435975308712014383528730294469695476255000210213275154570393473358086670934201958309590818735737448059579404016888458871656063693955529566662788656626765673583837321458247957656412208678346767635582711851121457306874972626275924151845129547182927607221329661005375809801451389202100790747928439380334517892364426725284776971222912993693228939036633331965785948423830347956622766165022908845126990313037745955858064566752388956543633821234315792383834753933817528746519398942953799271742228904143791406561254966378193543200039314137441619092107073994623288321615077443695125184911328446231285220610941264432687688119354021759910611606198165905461766912817233824677421562123617578713049760505542068141625426691253750877137683151251194550899095093544633016917684730391641977712917688270867248821069081279458941648883098359412644262285476815311043335181994774819307719955630523025245315653929511693925199265785550734864458998981775663919245963061306933545765038166575680431804418178107786283861509101255932179845849192912696920170962476704127699752432763818719495882315285264061478913228047527785342156153546079584837369403827022323498700552058496907153151630523702515603674459929603819687126983882936418001752898250621005278310810248669028853272406055749684113667260855865940837244626623941643873902178888402128588360664981652029425310908972613075421618086647848988466703061340129868313706849377246801026298147377998853280414424153446677049682501623463021679404918500532293190497873473672088729141978137366138686831525878474704448535195877596673188839941824858119219838975855900617282244826579514160361716127229806447544195594510416183809933300878867345347687257671331360257759724723745255539116965186125128499811310950516214211321547314421274050693289605247870606505421981385117699030284624328758407008981875535085082626923530635595659226275573312434017913857205595880455257481643994551796456043131902750668878062685805618989780792963407384460855953294995506432306735612125541957222643449292222700769707224295388179398569721369778233625303811361598795654049872555571430389502324699415635188769798914516375225612381062073985300197211326508071553604653200231910782551155387338597056632048987581690743307268511941474752128855853731367274129047853211222332176453411333104514363971134354475299470507210329743814370105589873355310726555176399280515756720641753499870357632212589442122474657313501112368391725396201075504831847920379920338576786696586752607302737648609837623405697977913423394392194504663956971709613063001528012104492588894968973742958262382761233139645695676147603025806436164323386926072535073980231517056258189435249960934233400171408017482057643868750002655804085589164149152804110413870612375077284585754970418321298855509754280134813486213040653836691779429556149535352900469092585167771674841874289645886294857845556250030749026193961070524868853650603056386895631652759359016515828456814046397700309774509593145053252445433242492071986502595017541748260246644462733508224121641615921064977456234701145571031040280082525246194397149221843231052126760378113643469577704430867245038346653678662656083242373938175504676947437044597839964954773803153196170300029854422594585099206083897302420845249354833996886740043105905571364898778701896352666052236345800443999840840687918238571472668506433801288722322063004789303631960134007229778094227319770464224872416043118023879659407371291319378298972453685357056131670916597598638912121824617703692475391531355123611094327665732575676716159706676494314429829629379199939551356356039765940422752184444717159067858410408625256265306031819022372401357027481952976762014295206617085806805353319637655695549136719688568989006152721701045751260942474647323984564689922480337294398367630157079915212566868601905268525485361042335814448189074804651655709978097773251067724861374055279785754237376051232772665205555908463277903864400472904673924478571710226242734776612915290807302678912052619235527000110588220733184166743161345361350304541536743221299858640186840003799438150286761492569613484305318009924388331219372566781145191758496190280378657525931565492398185874965101506980427959319716544932216118223926717626325190871066298359539774384039143726842628136925611103449509608452577960250122334823720412590253022572575825217907419491307312743899284403039099355533351813362129201067155747448407425955936219470746997853030247825383525370133566337789723891249431245219213367532045900246662497785647691981555768951111471531716708371138387770927921967946223584598640457192837936917230570522600291491856308655209347158019209071993395407005179276069710758413519394850051710023628897527916458065585746177415679302068520284755123396730705201835455749594517072240357725181198922143967642910946852962414486908238761263310563006014680154041653679398055435990292231860733783848550782116163551239906242170754100990258679166609790455841676778084852386999341102738436379717880894764866991007590815739801020632840999043035631575381331457819569037888759815862383595815738423162188186811572273290169950465328473643374081663196776311985727930345238909394458811498763533106875171790200253304149388520564041547004750377092973428136988121254795071641035085401350185835401767104177461583762246030830165853239181079593382388804864248535919394363251369949224502071082135909376785121625411518723764658467150795227009838846218159163038783218438538936849844646773128594730443364633168011888761864320556589173304477926017731094797982730246076967228097596383322270638568975119092099393531475787726538184006895902419419469049184038464330218827634263277344312111136535268102395132261116502903044731496886168406067134663770963564055889860355502551347291117281201194758241258641548073047210901860970976114560411997870989879002107839600352113074413129594624509347940882136700948947490934774272639614331523918798138741588414597070351627666585869609274786919987892581543319765637336097962737613187909874598405603876600066888037370764423030053471119564219272259294833881039606267587590381937191055937280669429556036823233462599485678584199353818311142422117056850341822295998593144524653784119385186849719736427950106114847663190951642372168248200230521166470061212601262823813239694728904227708140190588239738264239889853712167257701586980341205061459536821243421795381471935286730230157681835702368914356758723252455045614903227038535980347056387347682472769396606603668278600989232634771779480681097763074506295759580305737115597203710699956118394822857623418354270797019681987527578276476183469481759170720031406840585594718885559666898275911419203363692083904924233946452166002152213968139272773901917924602866783944690805107673356219279032416502836197687200511160857573401943378549049610975930205399207761502336235209160039682263081051393037127047778517515958729404524708848745084220391020592694738820146340412968419544710649813256983533802004232947238489758178735142749222190652695805005651286922774351638496190211340666363411256177599766979720208312137518736689345571095496713588534438747794830781224651518689702845252086575754493072755827324173536849848191802169781380102941224910041662202824808334540692861999365319259333176496518409600882586022636077278418923623479011568528996739620205261123383450276251623949831179467172270989943971650709110811754993005578361756670148486883911259375600054241244094066776657390192515801343145062541255983447046872156439908079933267147482504788626781330113008741422635084674434877240950876241269547675502070561287474256627998324990583700356270692412580388989912384266805555405212262068073594311693872681783789124741409541915666035676857524854843712151361055813261674541947653963902748141013753786924993765311412208276937861351729287350454938413703597590552223978601611178070672287350428612242937577523707471376820098447937249044751155351673357334206477337823531951865701264112099696672680147266866868084086394328545158966302119220914625410744460986343127845436039017668000823480672019198502760910257513331288365517669612182603534430594060232179180048407955038419073992488394056411941565334589991090845231258541998035179469272648105286779132171865203016631985156707990928499402718929804845031725295114547476517444126267254522788444185815356349293414315130126441743951775611500823316791702706717811575799318246948029974626423007324270618662627221735811268718149065858567816606301044330735562237336312003024746358278677293301956983546331644600240716202308781036864280334899572709231471446707175809452830121045128165763365997872462295091910187736465029150964982865269326695280838074464030850011332007769911033306890079011259318418249609753026212963916795021360620976732873403104012665576896280760062809723436486774279340960260520306739957072633765772125687996596908234755001059429747281705424125317859968711155433458514904942798118629471373271236038811291563230712551290941987225235307420127368012786805708719625662141067206053159297852683592495080660677172804160748306860180786910131252619263449996525424825949304588769215011443622041395570118772556974191748615837946649613151327785154279294110669072340447802534844875525346218599978441585999962261941615392109469954337436462987884415993141030487103999586509817461274366545481791707968670152217297113459764751121606937249655113071851637596016141438381391863569547085868856915602870715962380724377736158973957450231827376213575677384506088784562236089962754143815083811910848559724516797908093824737986297386122563703137733906217635966840736333856535604520149511646674729542459918382042440008795407916358827204066182273910177313735396435304945948806229888855258297769745704232836674128515934102479498708968289989385199916948570656262652084489566692583508256249088670037169144964419120662585198795845071713344896066816640750259904694193033387042027407290600634164497218492035800294394143442289994715253543105135233737043955364639552056586778288199393261733481768766240714224732206285610141128025667925711846976161600970428081764709372855146218427627839717753433959620210917444496139652673889950673899009486443785063757051200214798852507995268545223211845987875320603924324396234819776241886210642567017339634208350393208462933199017478810873428771720999201447926749348064253450901206592533514826548166306699163984341509526171634772314127761275753037767879032603768774224052415050205152629736419770019067107788101801688264139823059798772662543987082141261883844353564771726728958338381678689358772427212419146817116027123627609948656864544165725736981124642168968857386690067681615675922543342670222944326532980521536801067606634727989580112745643205696277461510933016979132586831265891030035581242137703770234987676013313883261213968457557155039701123556583838359406466481197082879920046658931075535639785525560052782457651449720186862339805246134232003292897040937568454852717814116537041495569648714909166782054580434549529913848066391506421000326805170195971658349206263949794734766047020105516600203712800172458545409460168873271272383987422535362848044324151690215396336615433585969611790927313251936273223336768557634722002069600611559562130987928829799832239897121265006849217114860344138116523901998731423306042265230541348640968832659354943655259099091242038585133573725909378677286585203999353612414916809098312834609263258694733880991970274777968330181907787272495278548160293827513416170921683690137552484775280939427575872467969781970875993298623904905392656003555454239710575069478277226159886333964126740323963918626511668405048214331236053810575758872123636421433908411479672230454559139145170252782117819109049279729145255045983364043664559312784644702100767648889582089743583073272916133141365955749593421811300511944763764940692905817902834950742636697799057433164940278975331282536596389020360828315036571014467383036909530582118445961663740924829333311962888689540477869647738167948802585408636419117351110389611463067407313296556617008705815091086195358751625273208187546151115781329684584407580457208300828778827276392256929325147508068849125748267942819600765131188117219210458656889011347018156581737758940562629456610440607232295269334534132442507736801611079485733290892087520858331770428806531878277879960763989720363922890802284909388142082017237470425296902726668987311266254611160870181978069099600503442641185796191659260200247760253165870484662589507813269823889687838567409896760911125790654872566921111599720053773156141203066411947961507251284498713189989210832213441750019703309744778350000591103403288924514315874829118247868692949524926043914026018913203294143472020144502576906186456351983568185647896636145180916056523227181081590246422860788099955252153789662201701448840122928767973010089855847483942095394597468442091340114779633162285338988172013089500319027647928766007718364260266967203878478134966033968132436014697199497599925483804009130188525985069681772117629901555735648156418090013931051918413374108121518646102607307656958153358352755771226262119191366117676950478147408710196852709560074942924206695201290336032038106411919698359986219816415820788409582086455413853850737207767655843333064374190057740586795264432608922237015999947354228256951807646209632327521663373182239943588507036250125478216654300692635513133188947846928782105338858822252732485015013606680853096263507547604031009043422834275256492570027758431409418078649362671119149854937134182507810265736013095616558046294805585404151211432382266518058261191602499501596724724293455001926933285847162462708718487106817078496565038731769335868648873446752957020407306982397051551070066410330204659029174791759180741059329319339241138874027615345905488323729343498710733137988983544102707084324201221922259845846674275828760089638544012871035489267880230326662289948001652644068737428000701052597465138883808297569462692969491769643022305519899909138254692979357452800350317146328393758613749157642005605223064901712522726850988283352979331552186352025836296338262820985604188511203655898644621152423017992763236941393792322594645915405316959787818969937904780334496644760523657510087476563667253897274391791226146585300835308483660135411432317488530251157783139059480394522796023450943814394174488108914244911358308212001485087693413153507246375094771279681907951140245719499639307302193602623492908458806816720052803211210093511522097565443171567137429715230265878412901342159799990972091264027884371255433745211063450139077859020979433437505577219986255948250473495071003147599106393914203875597098358819004155239405165998809100054962244993526555997247884182150799504523050108644033788047128803659200361644908000956931719996490535559509672115109122389270379519458079899731643606561121431004223517435195310314511705947782321466806680660799449961718460593852896523410413649892434413451944961169388764836065339253503032405934427193854461910598935155201433965004615175348871658170911369885639613080516864028977256303326808299913452485361213509509899057297811214591988751557400203761277194289581676847908156885606498757335710690445708636436325916481000966781454027077826795542919488069486358744737019639524669253393377217156115600615437590783670689973298762111141228766177287975444103350808746777228730409861150352664900508982489280561136756085328464546796157200665861402697273801563390138141834053912145589157087483431810654282490086733581878081153150101653818070971955720738259225523332117798672987005490360466585882094210772109933006848773577978000755915065613842999887063856934665984890418774268699990817968223780328598149011162960182502465913394812462838170592105436451371268093209028930555131094727252880140608723241306428331749613227829213152741492111320422656017711785980419383578833451940856462028866631487013269751984194191178037160027767190733740980452021113432098592034908262081083561968647064537980070788538538477803162384336361246864969419474792937942110300433441149125205151874504759296377996454706047707921997135920039747088709802155295973218510508184067013084368654721572338454409524550814892778935536673800980792489837707688841690148221105022256764928395089391908508290485374126724450054829990339890486490363625546704919164620018763018031411883148673927868298459783464253281990580314074081932594232437699789495219509089155461305149244310019959633798891524526455924540513937969778241147235395437279820729347051083987939195355764269466259131568107492896917172727855788439826585431292021715023147046358602946439984998256031304215761701846320951860110693897817236552955228472257704425792098342227655012140012752644847837185229219895160921324782470576937176499988257100200209259277332725701227836638322631605181223531713534560754775107594454549223212777835559500572090064426288660364187611882481566725486413780547137219766284731374667210052129605838342712740191625799283348221151577247181913331645256259546999522670788910788628309608515424852924422368528043234653733955773903171981508264551848836956606930420236470783759187014669125326422862393865780417651933349616706586099508078573138443999908462430818999983499576684158073781449318514408502178529037927848706600322010646905023231059325020728382520914087606452843432498708168114384542059240089721589805044623702854951067344414222734568453763104864398750223171600972990884241323776768841661024708015716057878864235946598394878467175858052907312550456414030769001273730445962241427234734146010844752306208020366130646214322042661224443590127624748250134446218298778902949939726012641346763225409594119170108973843164312911198801684801266541324587171522839047282281667084548321691581497283698506369724735275383988076157042187645648417859953932204716181335187211571919896611720769694917900178699569935733865985612072864507867824438824621900220636043908073172867387845377998901087592088855729141655810957722276475652869225311571034519644299896695038390126878187608670075835560185808802257195625025278699218428712153880629380329767299147205285294845840302858090828858996063475282575340380803042143067772377521094859535738281065288454740053114477300801290376133571375665390192754376098491096822828602403708048321135455870332342887668622054772221171934835095245863055701152278856292366438936258653976912572682701736735161824386788937630726384986800627394487736066737056089157471223941666567485026142246321705165760636178787245818534237017965262650239435300659861874859951710951274393844151977862884374096508902806925490187941023266151549842528922522948722558081934943592254218751376815558804965219730197898714497069877795692559229221694342341492916735662366845478096330503133385402962825584562676116630969204962858876130385727034365049141106935958741682392422519581986763033038935270261092145686244392103374701206377060050499493071946908843077109299329305601033666848660854380867260968665579297168984679461545629177811100999161452802897751939256230936305850501616160752132714415011769412883284832838706272303623334001693784709693317243397370345857105440535633747316344056834831911352805891551977991742178526561769190327859927804256746636900541637670910109055638301688946523036155935562905787194529478488619117477256128262326611192650771192006060061875361814892008810735007462869430913767817017365378678839320888015843550751551680154878673481314286644889043446917593912970969241265040282836884354868500332962402227870323644449776510211448702891399410292409504157843839472572446501987342320675961770996808440984843320110324913645408882601471887813957882539721674923693545635330171652892217665379634369875410011847394814367950700295594023544620224068201272034870140491337636262301785239493397596880020618447101127505959006610044757071411271487884967963381248383386537984480202914438755109597383421169868681920209585809685935317776260248280816545883221647764882489492047024358120207941895779769782049351415607364808306415427344226990364606989463848429150183803433755875312980774379169969959061279733746482705958559647668984374619259635714266849357719687371044811357454263009753339951702782896765032331063432982545394453820963635877745890820886817587447731098076439811209555076996651047499909260604330315703556113023960849981783510509782019611945594757344882485885341223640213213218709037833203715157683168864616237828556233968132017058522582819332997645298605036941732494637969786727357125654885174156406073561307013496433461623310048953915747793271863715686511486138330759682482095617361702828578704813525183685902019255727173957056646427566296792046896320790267793412995513320502155691209053805130040922059514154733670615052170531787153207243765335443147258302499202628972647763326310790264484682595999950486783349281810080359727300004972232997209397137555829202707822826894860984300025556336294794957950573021831781678759962540232989439309860521278704035043414039633911258354016678913191911240972715721252987350456723366765127304230531716271397171664108118325947991957542173628285689331215627064885056191078881874929732539938567139948656716799201446247690740435251693195283269336878424991743628354710352767464983023240941089758662304877226935342275735040597135276918797112697109434457942892189795690304165930161832734310289708693493434542213853832833449861250160808827786356847119809082080004841034871387299983967865844761821416817229116881126124709207284426520484434896011684311502849070771035941326572966010785154948457894658968357371836114754408135147806573508765032506179337689865289842533369791282604761187804669607042471252844560057245422570082192224360351150812811944784310253329915568667182836614549195432775610922231735600173522499650315836990430581892097634383633735548406818412186487169355264345796384782822004550177350079160044472822771196606476397261549053951131689973366452372063840218029405212368602350685935184027935675341440088340943948488271078552795752557926523044818898647539197007549570133658852586374654629269582534929325461350570618188558356813094240289383045812232031583301958013015601342331319604207392156648509902670945737250283111396355201559519975144981146785321227184103671472263666006100782919102026801972445105731262442237184832087036770864415407570025619223042152371618706000855240034486580444645350920899298946870910422578535097408324819248358951427958230807748077909719859534493301212677230804904983176411425930177335564055473625043550862671661544945321895453120801738305463395020887846840711255916819801740012405625312121650588395555988791372364748192085006157815545072846184945656351970925978372778303277910048913975922339241689754493391551707096559704038030636776760796997249925091398510963436614995141893191469232532525791959072022024296736039343595723072810502725451963313611489457919037526656704721868880302502983059134409436555130287927629671797375661045912347368187093235424113711775807922643895774354144632016826615518348008999865645534708127281765105210692468248953899495936600029949364462062380689221472063089692041466832076396790512331595197977856036606433038456465012399909721997786125555539191025922758530483249240980058543518853610587747426759444562594859438031042595559495455709099928473128228794601039584199711312219649692907246726935305757001554107810936445533535582044602205704969596113751066172952046305127341267078464255378736160186930697853116008604667447136695254136106910626516543085279910036219944563208750863245129336382901941828122499140244208909008007947119044519943110907838072447607050607458281707078709936226818429755786305445394396397639575826372147719177877609943425907509527548113321479568911487686200416582340449552871017439073332749283822565338258867195434245291206544675988983875550639111891496860468807220862645499833485429253099499639886318796545327894514870436063830812391072460016010842485086889077416535588285379183716351586332241939745311463758042816871678814204526274075864740684464804714740840179395264839828673644529314079683243278646863630985884206767229951969479222012563261617854839632276915268505206997970247135448751208143845406095088102360344923748899491046176809237846462724333543852600066499863243264844529907596249922884369198774392642404517183107735215752246517696096709928596216732250808640591047353792312319519143100210632541658262069760711679280046727657822475474513533701839000158977669083254608369727766223702575536697483315226529059748938375387863431540930485090741343172105606191996294505281479463659556021929404420014865405106787846133694240437006179938503205779963360509040337825640815734141679046079249474749125796152145762343523550259964335792137784792500087795284515294725685954420185444439399850774138398346049236954427345982087356555923906626445798657992387379532194299817391499052533089427973306143396756423541302210895519219992665103300405108608282470840376304147855815968224409498208475422135220641842056915431533754747857966810596622602187617978022101427144910084737230025922067371883508502595765615753995134288269979600192910069476480587986044385611948703630593521390916565792850804517488716891575370354539137202298192821920180004787215451341170678147036132050723755480953082032791130710536630807765493136003950496912418601121305139359049047578944127625940732744914660867952531260525309629231249366301455815167533958234363906266956590025774653985532403763022330213880371587598644857600970587441074141387687082977799120264304066621690966534165887396823138162552350067027010707134837880063949636820682153125860727489350480825724439494611605896281780907756865110486912593355693951894708371066378906527071754283626541439514349177473248501220907838500091142330180560139126955197757223368336977176609507162877973118540146223073076694214753253139633459743949270562364821461384767967764101425894139609560066266629235810319182119781264200542406594659881325586895854491406790607038803829606785748492010358801531619165599236806340041266541410346615227849686162998847872588221043089153922006817808657078777540513957326541450414866313461465510666600259660650212969260919965051618385591970229910818029160396342225918042921335049882394867141631995897986675132681468820031008913564907033901887724378362193322947564066275948457434835777326788121905025097231541608127763236897413700171615758739652975720392464895281316692611465369267464215632222962976087658509100983869083217116997829855808564468368488545909663269764137741630613744834058380585305451591226863904828135754818950335501020060850445480019773850996542930415220746173737048051865092845891291506970999278501580960446258236103647685482814075058854742033649919526224447147652510915803260032092544845162302561768125633484562967672372302903872947356399028015162804156966728262265575716897936187927261623046890607091020511901791396167261977412841255514434203768838764942983504922474360924713464965228481636442632061279980585775418459560837307133115586025058411019073543931839843010525819694733540869740996386820163586268839830152957421309273984383522699540382761006708260561413742041662067981329617598323339548704709264310128435409091385281939280503987747938122396802115508607618443069960378389564793290048314949198117061498430875058008673348275642576254533848999246924654191264703772200698077827451637783335263868372280344680520350025397350722731142092350177643902947758511350495018902335519554414752729005094038669038509727257610598624450537654490349856119025711104873713995450932588960697802458118351067859535863464786595475010301186786877760993968846397831620141991017475798285749155705217900883751954538523547556335045492673483128013645915755461986258357107167098107544114875568705316088908143915981428832171663167123327719673072115094454716361625317824525754192162924255199545335175225368447787286234131919144095005489733821727387000267821105470552897248689498974804809141920193484059289242261020573588499670158530626279212162678873932658029857000018221850826499599281054265026928803109307155487367860330492190573891576822438673949113979351377477631862908815902872181136505319710990069817408254635687661233241097019323584944725546876275141821688669273496974977745524236012918192328643016155614088596320303774736601984952964709964395888153593020804100716610341137586388305965218446241655863963794591157286955859336702598679263079499777267168089735816228405461654808212923788228384894642219288650419490707538538287528160640846135198529341178027775277276468034179545049444478668870141080246817312940016965001704812505901765545032982578837434657626172516572889114942956741194144343984939475364007714945555721799444881825475204062099304034507897263608184811894574383673646551572081367908620874495905166541050380536594459099945941381401677525444965206470975763004794880279748948899359871595875855196136677881408050511596841286826547935052373216987562447400414436394722048504176482407593535636497582543803026702370635289016592915913184936828586213788923746649333033662241328759185295936904485885079020353873222899332173069921082993854151247247117760043779273873253203563877206998590604955577945633353097288139928382938992250108754749616775925267976453755699821316138088931007423146262690865253630458185016110001799111188005022221599306894400791515777539670678591540789382852242926759347455439977930270396930759657264781159566803421546113607021147310299728746622973433470998390637134452827728107461532600630418863106944956254473451577272907455706933642428591077939768034649899007645173750119661447288443003120246354992405945585733573832041273010596905563735211976114233613286534115267268447173716303143249117196630902160391388670569500998608538289391392502133961735774088903134342100543864532071270132937817930014729964368270521082341122833959496319672444222083426021825445781706428722604328358229673681137263771080804006325683546336294661855795105274476304675047060759627026703964624861752130175081630064028056292336255191053620073479827508419106000631940520676613513630159363680429620704763363265425517096943257781564781716580067039347479266018330202095698957059893464075576298334048983446956523243504196518886455000528675835402055368938833737180922258993919403138685038200658830982592906959885421671127057966977664056949036140894615668361165862748225827970936454533722598076207443530924723825190937517007729555502296588453676211351985751513861895893200655451432071554195757841046066119554104847427241921456225177708952141624832003668232776349771190030402853686834066804649016379467710348420123867976294290975066997538180239068697781810242448814723550960250888759957542229045950640071450087114233342581963492786003478572459126186752520136155172551910629931860710952307947011379751301037998146934900727686749264727708309426299000844657805995324453310033557625510656072573521002961735771746476675633877918579490749622045381549161788089966330805848164217644506930164818160563202918795953150986234966967426604708692805245535466584622328443984117850367258174306239192817385420651835462813040818416064031066159372643861237495262126049917385482948480394230009924818256327344713019835634187683455205220261423227949092120679248133916467740790672614321416126040088710406548605180906081143270589722032160347876006364457772122719335972691092773306161477885211647618636682778924603871250035242643247428224804838483015668813521403204626382573271618341737824278288115369811967749526392981412500920717110571769733538846361376298858167949048395998321830865404945225893186496799167943411515851374079051738095125038175835397888797051395361603284129770050477434540366693382076871121173544551198188442535856159952612608125434942501218280482492320627883617962111527543368795903312674118421213300984502193517035485659423009351463203556695760064270918760956543126786477695537409930075915332482498331030417452801103234634962471372789425536363316887097614355384216479757028452236250482923035426968135505134409717182004958142169722478606203723195552274115143969746232927690009284399322491200502355287430570888158387539942443164443328184252334093778449328583800117269410530711000945349977646691697303862042800166826365222599845221525627312481824868103684398071842532441780220540141846407920182264599683470406984380358208117605264296938878762366089889064690734336680200993813945396531847166075770148998749654407635771317539065650979096539818542823965627380031707378227428815130357752546666078325345064716638097270615385068729239724883196916679475234555688935719024154527205790453157190875559514496679768775936705465731204202210850375901595145799571992424535830986242623173828188745878834191537264380246707376733573858707476212397250276641524860607118897482974971068562113388692264421791746697999528978209167729637097162268564589440644908460281787671767185934615849029735818509192260397323224918856657963562199819838492862325602583079177310193003100338403852683736040507607909479079717023429708246147502464981669938929194333853251156872839344383644597424450650653705654682597425315105497237276230367347340299179391061158695346830898707558915225343631435503388783786362697288250212040898833395462439945508921170527720709799732308275342881637695553966412236903730575256015326660329294360177956031587561544847997583172195248725641147227471873268868458665952235499644861837010259858567671937750078305347033276567219381574638105378641941633033494389027944827561081646305294088183931003592292326647403512293496454774250118672496096310723949281300062319080585743891804645153387502801243475548561964635944868080021225062027421009707463490989470519578858634539656900122299069070436156636498282329791781738066559069988188566761727629006407610603532254493884548998517330301090033059925298353882567931088368867876876948788313680593340265765181833809106213745991448031973547704453543326861016215202044949666347350235021918271238313051707457805740255097758111290218534446653671496597763798449938796154104140727583827182043010081471603062567277936297615222665828631772568120653419178972052717077651763151759321904518655659793830265694944796545783973681009821228967111689717121335906322152876394061952837005621514938334811544317257822717309261046811408051491908705033071178193537771357220840062864041998764972294221687539666528776892952115620853936892465353125327150963469996480960567219101849763462878319087770382481353937305295747737585565412034848549473817701732919064037097501012180562126741239042892260556413734068384570687548828837982273832328313628499558240942570918777177573011412917536513702513278140589311244975342191567865495725392487884228058075243333939799441619805034074899047331408664816581196694346995576462243852107647063011738266178321053052494322390432352539782773243551563699171811352820056941249963267474695507153729436689672933184861426445906999875867044404771584476942974115383893503509963819290281293559515340119407746456222983337826363372089697869710879522728609699701137425622116883872570826450514209412601440892957297470192187758704764993847853712325497872530401706194738020290395954664072997139907483198212519587434737579088176961241971770894437190244067401690669751952785945873196791681902147056095346781362476878719441368945551041346903773581445689092320609233005341023227426018021791442135624491606011095286844076629623488662763460022684937094051969822335310185122118787018989209815358336333929860014901733799247212729768350964795410780115983492335287527529885252982226078789722250351040782163100332534236954953248398405882315024269652773704428881936531305062386014183736947499858783361457593424494808764675811779870117388501494318267842453715261775280297938008315073653343793335199050273547034215200923131132793029888263237469298820898535273669013487524856232218484042010014804047988697300357208327673472859548639843690735804149391518343453109672374586361650368435361341055336815099809332338443789384913892897249739276233274231265205155005775533792753205975014908287406549828669950780016752531639208768663916444851940625637681483820282533472343819789292407609058868300040599119646263415248414767792725984641762863272086572332248734915897354998954858003621220431815509975771440049731647310197068753063286721682716101654729249539119531941837069796320272182591720546216209890559494367937298799897174521987229737621660611238689998139831955174394406024200413836152015413368568584258993197272045753393113206384056415778331259976136654621116091276993821536468364951328434248437056836524002626025738527052070862729851833956923875748412866514615830996561064292407369539939925051878241123406545274686502526508050584170006045209207588257463770619917475679392160635147593205239538377049122197223002278588309246085063655563207636319747476473238581942823263877436434492047792439997592686416296817753656632024949501534927283037705530837568239982185928965343578930661964532639022628585900802470141336491617080109178832722535887625288464723008634511729875482962578388438757699780383330122715798871443483838919882384539928151251917521286986084354189719449644699726507441843671396966988630741255614735463615797190377251714763890832051883006005762099327682139485370657620985030103925572222082315979731051526486975368684071363755997029907517308170281122611184975275171148518831424784004593144672901902724514587960309590224354723958743549770182390796407406435442013912815932969795074932903604657762896227101214790773559370856055004068543069632106620548752611612307028643922398704268465274774485126195742101235609355481410250347258818008628228328454507445698616091355919471354100458319934510914848776490462604099648566752265005886352893816820709528831421504258615969910102992132026988629461194779362868969678401642048654376912982358557099048719974398935322254120000827557906524305969306196630982064383459153414457171036421143163478464591389696216976406448344452248211332626611652229738045850074894767284238927313109129232209142334252733343700989333789870821439131898641846744219254693114426651185057187706205746883009781838428959908154712645834830955325506304530345327926080285884088070335979585792683762377525111668639843764148766264518427179352510605794490588476179669309206493343985645166177648887528814558760769766307145777648745184929284145988835560459809820484515419006158393527006285046092993927651640363534716970138722183740372482003653139922782474733769264891996591812453044042457756191973651782573890313555862532544619118848030936349357113226714679535084961769402153961971913335603827592011530341606708564110024564462244009599816989404742982575021925878447561093137999953223022339594110185561494723511132418974040597595407426482151616057723262847124562370993516541161676528829708581703293963351703008681817365730261024937949673161763837257712581513771535128193373813048575665487381846068993203367202614908118533374476692802089627398549906210376404697444689719548529328046891415547919384347741608494491233297110843103702282905429340801553986428732571430791615999558091515095237130612762402670368433797554269833246396200337318409382863437599193445943536626113893782320368256999322268116182667240559392913622072403632278885664214411259630025162877917474505436824577368549169693654837110615735362823849865234467528647806023460821361982151012223777035788987199255056502571456580298995087582872045761269268005759198950622939176271651686760806742144562565573385349891772173058608851815080275581926290316537162250473266710756003275173000531819909067372930673429735460254452289121779023428781689780293511934666018997882563643657231332692471494171317636108542789774307993208442332710844527037356105453043620581259123640128622576188799974598886539124558348809929555956805069499145114252801413116085761645188357706049288189178310977824163316851035539044371392203662389305120121838649487794659149472502126825796685057108247511077247093538723853294789639283383465219531955120945109308671333155338972648228830245564442893152669702761885962423079575556842159982547577531566453542368048165949179221724261580611174953673460064230905932675746563552103711067248415005464086437867347339088165756609769026834662143206457522889871818111014525333225435456494635752667244488310245921785428286232292872410814003302104442036231838058968189279743075174562306164949045033823331983639821807081174532464236024330038292313962237944040170737401375270452790550668372043404820215562590360353174654703231598817988219591161053568952428843309410047980437618956435052295846457049035850730149559263126462378649187491835682158475384658712003161197798752955513498784136170666690403377019420589736666261034957796079526108394697107363368718637528433499753817276711971219172375908425538541805579867184172803880730800560546744232091472865394232900544873641803736658793338198384184336789540856305244958967078502821184365509929648305672952846994875796127470952960267075765039616237011334540537484619548043446965624957945959684196210657174743622895475125510806241202420758695047966814896957131457724856614334665838859542427681122857032014184916478566454217501744319917772204771462428234394460297192090623228806341238232410832618081861962053665023702930496323403371712974886304749711865773133185009118658012903371038206001620563322961147558677106793750003186943548105845663654819821695227656615023945551534301462845995169775636022843150470762108965601533401827047675696083657968389876316155806830261980477295895813984040634351954889515709958368745895039386521567935446196471740842778996003206683867220626616925356543504892725414637487320188282049246694850429807013356801518289970125587051972380410559683226225996656204827325784799561573229997132582769058711631552611396146666044400213660756519931830780467764809983056726999662597305832237472328468477387085821133866514251135521859456585902134172425739476327657634600428114910724810215705611799695700011980883716957978215531434902686706184417387382394820740256233460407382994305141926796372444366080726976947450435896327274257640196289732720643906179618492427370233781475180169891949024848741031406141879041595238537576884736185575796506581652375087404237673815066512882750321940346807584870869736423770028651540970064550608422167202449365703683897833621429061301051605862484619162338534628352514759984789293197703115537958853863361840648358604627802103033047233785061154283210155904768450776178025978488665169455025721855390374356755743977102570333348171691262231772693237893717393691037006390059859605011664594147524895724675852332694922837041991342741411620320825217555847204349503424058889516652991379976087792333979899788325486168244655717614582011284510804678376142835786736487831264063452583658290192716727149959765377509633159632356135240846955877095746747905744197573602359456519419374153936901730197872277763811045342161288113002824209117458769133220128938099318432070742937279588693786137396887436773080983136907341273629365333579618081844716701486440008476688938113280247395636157402177998719613217061460129076764316792007708057793398247046018249323866276409044999171553768236918047855786884059348985741383570311314658149632935601856077074903378634622476021499021603186130242530590227300672390624984762267789216333089653676738869442647486978107558901839704750997961879067059408009756366054969458473462563578073278067021600455575601933465381473763666297833650197785120558868799419023032427857145304434147893206946509931897488705275824791009049813725160862063654257743707533744403552094614497726971513956516445170493500395924661174055181064308374800344721297347412461228155450619449146649815216162375869175237483571289424762322716726304601487832897271271524375248289557941810168404984097604583785287906515817076822308561808134912707825451677257057753977669135177020142849254586892901805638239785064976270615717391998331877154551256460174096777297545321776854633055168127439115535390269546488978606803735219998861162580809342386598826721424823253442580919127112526906966698129335085262908728328062662582073378055544660338176737624515874472952802643467952795222206646173610868597645678957005547662917168285116609117771990044440434790402121444478669381169975204868547288695070956106297140585613829053009817888227627297950430738554796707830481505239212290323742933864537761763901167208850892930385108817119220129634000622624486559812301222188774891014573836980224840077201623566253998760175819571633615090351047487728517887701797254712581252954253090743696735855795601104546455396541478702254215576671696611241755554808759417258107356509454317229866429111332422647041488807447667716524225641570192086971142496886253022299085653337262329631059890355663311194352906406006913244382181235965589023879959553250513086741299440283898013420198859519481791140344794005577777428653248374829493894835336802915455622571883159238234201497628328093421914710519689351310717668526590346772833260338936936859082063312464743016031136795257225366220156493059630387977621284619915572901260297778133960356099936441226643255695891462237876337581625519559962400247816218029297717469584932097401092117114639568227960920018822006577992631749734621943252213009269313343547269547086463349686156725030045111135736212072057149397451908935485957414005042373043003828937479868902930669201517648886372340253644374788812549530843248652906364922595117409859467088041736545419107797254305420278537087409959395654435982911836311827205862218042923332252831960259607354281242691692475713068350314647043180677178622535445175444431823761701430354786111222963220926759085189070211662295365355139764939791395964363698397514133958750612144719098819670922687584180063636648049388780521019743787958907825921381400864338673592766910806146679951764423062327946247285190223987348020931496733285536348235737824295447931803037883239475741810536652158709332484896716844950964386969957369484394199647748277405826922255062395870713323767694091763249269566338215202240269538892974872965889119601416706354340113762485319411755753250459808714590743580221044970750366304344132540530159893897950599760889109169831339469117985276292733716918211606744888784899230945226794322808219676960087960193082363585668986258763036843799765786383954095736996800196350689938680555375904604837977489286994388756202213979573792604591091048470949976463983213577148223232267145280494754893806759579139176935367529195349458112486836413639036499412106663363897491307697486380471127356198723287397746433739252759864611209260291276336010421348640609021114252717427206913888542813968564573150241044879917678252747363853863082272552018236667485891947634076443163631077165659543490828952000228225378891274509328661690282413072761486144220241111627052042776210109383625051729164449495014665362291210667537898075137574208594309284291416701448247706306727049689851634045540936180843701135672276301456061487866858011861848337412507311064699055547638572797939174473431763949587037193560949568956239014767840815899881337544436382097393906679786010271920984047506936177345751183009968506028832725477628195184455657514590071719121760877755514794362417026344194157459524385910163138471760095758466767378501461412532234204215344060215167878223742111772898413633925994044122373448068567814714712467156008469093713551192034801187908433549622999928198717464346334860274072799628074442673589725096815702259967818836494450005001109010755890100096074446898490641103488819214357736174109943906650601336078391040416979127166497017789852341997685723265594337195477919797329477288722348419207459611904362453970482447721346417246381667576906624673969221169262928958340085301767351704529524021426117559526117953097919114776408925183537006259983011144343394826567820172829029788410487141613187217108029161778525770071040159674120995522652897135368511129402375560990990489905600407587680252391136288774538934008386714957949773399136056813661700694336638419894212900625040096672667237235191843985624765452835777331836171096828646489812658054498913596921222710149597524743690813022913766160677239467974436566854747470288656196961553012235454556037950658081834535247098177738926058997293288803296355139870163475472860316470917259184024069759597447817399479541182633842716749991206441431252084675471148313295445073084434901835605031352738807391878284073864756807651292994065809239307094767144249917262733143477446620746087861340009805198238829199396310489965095399685680307352979040606137012958935986435026651538871946777036473207853677747951052162855090943729849531589648279156325478494509638153816503405570171241808044909859898957342241944900107694733348662397860082574603436364298394089165839990807303913707365353158829335424747884502773077006890366720792439897348339021116382610739857669044275162311324076044328369472513381898832882274444447928957281097405813207994598717743976280709958884597007834877079044753199841597377141939791207941748907794789985095752105529587911967380987396837405196552218621003291055796177943432245087680676986958690019360481609042189717657914675973415093750485971945638794128384383092819214435074228521886444512222165465385415354342795822049702618546008657441489529258504416998116338606015438171799805001093978092861753547810502195470177884794250446318415532247769224670609043424540622507068739647938843775908534684006507290439048555156617539074940034635988839947833979617141573483273825547408769913864279692808424841760594637096124397169584646475804116459028958523304616800416416313913850839341189117439019109852721543596348333850702786843625691171146382090180396658704751877478774628667382532116748810315553367953388802851043466224023535036759978313174424075393955562022753833087469238710006772839327233963729600668757814533012621845815358064213760478264796812867863667278593884997949939073000663854528139680827602726446653042011679657963832957857696828819466657444735759904145966799507571172032071059315679513645581355698917488636170135468100663571124337007934477203954959928766761004606264467906786279125525999148174054365033436407646761804848826260075772241340758246593081700954747274505886896672228775410214565820933322818400150486123114495206842786718100944389197942999396869615577594999824347688828210149878096654141052125461799782089404662517597782799748952068777539855731513434432242454754210034911681755261407950100303958245459593331843732627931608965350875896763695834316379377668445267951379676666647689671649841855353584626456276110944671692991493756157106922083583344953017670093583289845693186102546856271167280593640287554022859640998594482731614698715747120889960536602149903279249772935759257131174279041620267633131851573539448928482466376907085735314026732202257565383918500493610145983228882087891888513687683155515157963476637785766965107798288216105483426633162820926787820418659697563503147704572902265059011975218357814658633481492498885410787898435533385404598486479166222453439532443798068112251778484473989104946603577645459482311997167747368503930146703197515217460863627603271951887794956093382339447915770070900906181419949171268597074279060703869371984800884544141722278993726292336728873031127111031084791635322426174205599788462891691239957988686872942128470119143755351513541076288574036112128246133081860066389112782047077506345034405290951854649079826984422976895187559003209088682028552173131898406219323325212805542712610209493766866382822304344755140664776791884097915598810950127964684435614752801708229362561231982122075152289850365177774688879464528837032176453575062529611136542041153963048666135858172660145705849363674946269217493515689956969624102566366997233052740814358625857164486279444993946433540884913170498898127163923051190221121741660401773333804126867274520113843588386921068728500884842946238515666278494567541578741491461571483607189986438865177667669859383840405794301530910365735818137952170817256008896532890235634590013141784023230167782642079845940899500353182371120549712713633354773274280006260526258437949004209430343696299535003759310291476250566580362241322856227946417195152608325597396986261528337551515427874528906516630287603812130445585298819153953027169405430127390893545723417966655242545711796102950313581058998851132497057889631061960366871415566260985394213877578576774455080919641478129639203660562647337659937210499220810824633567266136225732626123827814948254663383104356247069881420471310694640181374834749777227781330459507531253244243788065839453767718109650268903913357787272895675046532932271567932092415924238021677031526466920086328889063738561335721970472773094166969176994437663804245490353554176784060314451794782975102512457808379942119102443012755701223811503226650495446349241583252275289084735526495363741088946874780826138048080935774230037634202746993371595123257255139718392199537518711629128700222204409433045041337355638010730398279454794186537564742114566394351517960056857478697799541868459972543857997654082645697679933907258698558145644668444208477514008659163797683658390376853001041039773544947686368322328018591061106926572471452927518230800257035346715453354420431538079744391369859225676507033727177113222271632051782098183438985112969957181854081750692716054728839588848830679756105296902751104954395382712693451861838221884630586014933117019547253632773959403729571330760613065478073201911803144372642997161171813986994449653325649792487196114379236006570800924756430378989509687112605232491445189594814328937457247757592805190300925741337070374851709778462234371925478944733396974870019589782493506632645188457593892107713679956624804878173004786977992291280974736838708066542974777145465047874077659362382338288494426787637375242517038281957374235207245188293565920372607577028427782934731085891705747535083226010703606454341553852208568263013744623074144687124540566570621795366256759571757898185624284923316274094745864553719779810446695948441156542341083916047068156704410935445150561328265820696093614415276359910578861382694612051619581137440862299277833440849468395550598194952155748901633898762053511165443064841149792138743459295268637317973951810226119405444206086939755902179855208915829588017614837400983916871046689194720825156035142127651228525641612650848763468680870325106193789761802272248119847845602182791757187393658008478917096438872404951992972291812910185271425768348557467577278904318459382626621557207629522699198069953213667627569998679849526883064041865009679734700976108961542847389940095759117731203733866269173776321646998875219376314189697560336454616655067361412935897758281334382554350818845418514001712337252684760507180049478083728680128474447985420455808150402859079264700066057548939004788679363147129305456549414396701748815967724651010210723784919320684104804623978769238684036245205212867175228415517533127023954490427255061025657967399733748569804965428165643852129081941643497371009149218844708651187467234795754430533765910697084991102513200128043757842747904476186885464522425561806895508210879351959574104361775010620910746639713833109031193734040802354956212316681530115778456664864798051519213971846557441037574676901124847269325616486607231317924655003574931568643793522493470827183553447504684607770110763044569605053354178647560976426858649987110144217571003464180049792785071004058113664814458375737605547950793968894275616258675374895439013614783924433775508476901394106259028907586416735872713504606449769081745594795372469696306167267662069154309618411806154018220935317553567739184431054333959029869781965960725024488833825462445744388430651276575317645018767445590658108634423509740570668560837805214424533354214945136779000180661445495249930557510620135847337824238955549397391544736592217022487073758987858497488775048876325162593688023335874249652320231776545826548362160834148755490135101510602571849748704461931630108725769630249816302903864017854924549794601085594561159354382642862257876458651471636748823956301583157701043208460642565044499601847011824009162501653242674832837626465778922049526265379272361769859881103178556304514069947227611595401675291641327900105035288399678729577171272548658133443952519319091314508273619715403476311608082422096746810523446104972527421272809934281987253196965544480001251857055144060593296441809490451397263524433731584698031384249359470813254228722893415265295427642250167758033929553535973747516539066724996020148139485527355283391233353732249417437520765843024928115657471775585202983076575191508580398187294735170885013749642718131879944948333957372294217846887785112136349497331493174400128788724412915913907860835098320775035850030714605710500628928533317572972051473233133901725784862646227439784949557967790135992864944643040268472297005012390426160898520095754811330777395241268825675061663439648832261711468161165717471376015972300832065537000846137671212990040688535586051258044548466394033538868951586917286928728683388003602015280839625439353014228215131993539067528550203609611523639769118748459662519178413435059618515370096956856783858256348381643335390550442670998142647542344161181644034462788192594326895447035495348737495159632588666612731810078128860889447386310569594675020368737952101392686031236734314252920393863819700012910654763263886809146638303241666226384106469640299246790265960481117451000588529500645604554475261167400850479876288628186370875155666072711628198584079108060864573312296760470458342215620880691625007670808128780596846471090211082441564785745679585064089433963656432327979125494331164860226678650492661683877457750199089587616372762191276843036220095322485209606368210745226224789265216375144594619766397520506184641715760097293742920030319601365450272102707638967501626264030599705287475802200901641687072753991316237219821023081177138786949763593716104941911060097323625497816044610570474973103086541429782049003600301280851783882079326292431195570082352865237034036312677789830621096995419166565816113987187252873942909300891927217955367033821911633571147000663783105002173146073182053879808785627000355428581274120209551876836478191424915548015950396168303052962934635127904843922268641118455423976056862232052975095797374281025828864422752521191731774871484457084688752635420273511831952257397201385615201866049424032210653064100203425999377394751106169786679780344045503092183605699453663394055484372990057048902536886733112484531253337912804088712092179344882934067893952489760100024852239112094195049701660414167452890595716119729184531813978300143083730257033933598023275459062584225344647611098277311484869978000874376118970420034683285485940063561494406068177758135590478952248218081138822301466304826662938989467766893828747551592797847975899033072524210673684547374761571754514716509995275281345289986421437293791184763612761450779358611033457354200167936155946056151302143255487741640444402878651652062114983873141920165068946314418615690187210023473795019433232690916346720628115834260988598821683369832308045682989666119806798816085331453175779020163378850535584103457403871333135419368611401129209472832420201550068655762442953311364061211437025435126523903865332910445533456338516898138250485710730572670989058142520463607015077263199819250497953796280423229283564973016256821922724390348725337394273802284419840992071739101258572116401604236041180335480423926455725192312880060219472603961113139102182950690213258863528468087188362733200534689171264701094661251101445250843302647476876461589970224422017099666109299615551449585449593626567285445504501093282503258320904636345448799853293876316479130129880133993036193199902682130504297122007753435816911309850603942443897648802796655547301325934410253854348525202351318286719770652192715190857955072782273503161137964180184002254985557181860130148025645660137666044213608039105228200930143853024318361623251598416909238861402657897861033680695465538938498488208344702552672103789389845822740359651960404106999983186354063360787815002028757460339679685208651441063598983830242179308759939958088977500310313324877422790560296515447385359135685417401228434922136708158562070670349155167952094054170529551361281473137858546373642942837533261065169848007662338105982147729640084673855826993158842386026041174767193533743003807664741183629460962573125621666879162674502157215501047837985468306509090883645030732675222739951665441761289063615135429545612143607242352099518404780701788004118247172428445702091484378285401770323432296689308284770822750671643612902866643067216302464627964466292511124985762624074788131373758002514217596814928671390368607415870736427800965721222712922099532263673772759780503536792480426799001983010158037646043176783916877857873732494895178529520784290630187845914931773527453089910527305534826317240138049644298732954367269622177814473977694023427259207211570647650652007058695464057495650701101000370274831259585919132506211134658538943710908057022694328210676328489302614652714835923928419090956159783279962865841423433866785613261127347077900949775311963199028182358556684878659318647118639182695429901165259783753367112051954038560861693291595479707196715381796986833034467801359698879396839454691196509801921906086146185537210852809933388733649220068019278692763486436799925362123358133092689516152502188724635721676013747087543490586287725130349136303425549359994006674061370382302483474419590742213838668244824171150272624299477497220753216444361543492550576502560535886554105427078987537946961194933665712920611367629664773103442342406512543482618766155443911808721856048129645236214587224662933731479477678875877118517983067562314352908441416820742503988445055278559153010037428540908033436136876466982132036058778356648942637773972415993795693802255181529889595024248762553107714209961715794686127379511996491855951344988988176968658662604853112664982298888252751544355231259016653613659458807256615234193666462913800140611196243201166092207589965447834045209740706266700245984413286034574482286948643556913522248761225760277140597551672603919274389906166811944508240571035853965775658759091168622485545380592402652679970661490423415235224936967880414759865610376792204592259038231640954481084847272638791134222785995880994447207508899468533447786579487890604893929885002359560522845788285365501008807720883598375896523881446109900183956140503424413994351758317103252500453232871678580378954009045180667652292887372629945105533053197132934988477344146798893440689187529602123248412892772769980494776645140383317596312684588096453787931019388269529574755421313065602556244693481827640667293016413624499221110531560772411579227498028851806899557257117243243641629769946596413159504457286416078588698295247220802810184412419689599815942998084351657089490320996803390123461291606192734562731101138249896928032108856583545981139425828623701867296763716758120995108483292685855262084735908681709150000129082462341477752007882219950465122360458034228367804569447231037710760975847453989446447921494444325875048476678463514108552532450606179022300103748874813556731116950792469390372743598098270242043969620774326464018934920844552197204855340219130584840745166505117777249819910217524519524258284152363695071153742301349907822028690407162297124351569726777296656054539359488543901049769922067299643394455572044593358840311129140143686393046421811135803984491691547474190949827789408338928266147558435664956744593984961184554610866668557782130787170082096447272373916277264381553873735576561083280419102701364987217131072746656131215630745631756072694482383747058027952820702991269623430795804709499137491715417166372827613813728626699386521658717748771142894386320898983916042977182532168031397850035034417722184405615042002934111915582180482964369669243084346246636885734494093132868162455484655199890678987741289243545072891817789063736078477641630447445371614065270585584658333005792384949017018693109643311832417946671153448367593787130872967973828662013435025713365270557837829300997526323161338496904605833275110267405853855905330248506974196492030406624046317825484857771490498405160084142186697885406591852344640911644245510950512388354145569066129936821370287676031447834198539003906894601504335785157748868100028993798763325646414771394988502143477438048851720078303462235940074849584820568646568122987828130724251249759450300708131983382674294637339971083288179010076661305946016563157695922701523325720323586521405035873846483072370423987428478529729554359033264490949006264836898170657877909596707369370829878600905151615206491472687544587945716944201527494070055565222447918100996545802360848438994072318345571843148655894319571327591271249169544056685393572463300667178845042286159936614155326355195789347452680198368426820368597298467911201199211364459558502058781845076001923586161291251222813290980139329614512746759846598446689071094344279626615913410847227653803912851749729635562414297786982365389609737850873948542104456238266110278970184224256592570980009997937579220863035659225214128038698039290952254242926222595722538113933689495465248969116813194087401009385589085758303146174470200816390076600665317035392128401904102484060243902294943812318373296558179652722542647402721462792262932650871133431473612605165619685311399476990082520219354999743082805881357675134568796541073091118109098614275100977295119001423608183131086462656780726862158685398372513766647568302616734748525359878051797090276374815171505669035525110743929727638124279647592971211502338048096635027933707738718031036410531726616076453989147594403032680572766488818201645456584205696713267825298551645995417278973173578752592874944803365960537229249046253641269555671665325744474495539342731273807518711979122783139273503129948037509409379564710543290767770181789158369908211914370359603865660278494971631350293593482779034265261477954789601544075626650004594512060202039271122014659384312832760952795524260372843850607779609513290347443490533376998487887952676074120025136577801271107750796002281712993855808505100807943439881399453585305673465984043710141653922631817386969944128368898902044875213361335761450695413251213269688389829580800829886933445172116568028240800253916800356288007705536457783485211956862172367289402789463294779245585017882788137448997989911842562597884063423070588765663687382120092355764077304234392072247798090182317689862204346577364367453377963230460646061797731137275696190095270863543980840407946084936098087453935438825006033036299450444571667077775199982012922236779697931603527015491621842042620309182661176128138174879406404432208097206743477457982401110032168091909709383435453787838272803489592192053698144950441368816111625533735350801082086819242380047794381091845298286544571686417760927147910504161675265973801548090128258822180218003327048331229244962371255545431004700286048269652882315068757603299986846274883623244211051262256840924550033035750933086809482805702747092299247052141993798394845823225842099593050225667816758729669347591272554395241682893143286326963236344053868425192139909675400800115818728928836549781262563667264169318488745653992817677484426259816181817284782832077027549905679386979560891237595896897977043295682939054621082713750202308204003666716641925505342923798606777819697450913951599689313713982539116032646760288756824752088140897996348954077301208335837974483202153504654599468368490007375208827954970684155910022880024591504644825027772753073988040952854299776764736840138572453212448051042107029075890034555019968590645241484138980392529591432146487017041120853085295429897465835579908487488125066450042712306416998181284489997728196122988530623708819778893858764113675256635639065918442971097801654730365731622171969617552051060622115349508719721720469528355077814866705114203601179763676470976963764242751437577947463773917964101020663551728569667329439447953364817717247461427255915271198367313609789915099581082125245412674148022263305313279284747249173514123444123392374673498674387044728674874479987087787276102311651615008205722805119729966026111559272370505232209650266774747271858596323021292250230325926169752232641835339193643276946403988787296241744826491153476549971586430679528996235154110287369675870347784941273174980231791773750765036338939507007334503008528644052912719716323333026191529020300774235198173237858465261332879084718529918527410726242219470685201470018577435944586657338275150090910855495087615638428848218085882529014242225730377616884813615971707002769328883478549692579192343251224546579364435410192081989956177288537732033615686961250982536016894401195169166658813381924295305776876396031406994463022388499251946439171146863169505495903292196677577547354412259247008215627032360308238213925799739559092115639707451863053054459290275057821232933604189347466227121940524024717240364896956919000222562295468785348525190968752784871619321970873012246678617742473568502492772050092457791233070117326499749756690436350906013484931826500954147428797276383378419588392283006527561570527162822485858442709922616050973712197923509327824683916747909640556485997942228964223961154519498419158883781131551192826398378757796216871129450341186982160929760715920764389467619243492588400042227584043147098548384132463205208487621557375598566130079800465175919873879620122170970196750314183563426591675879929120681524558927277814636924374581620039032596612083527068042855666096806017273041889197573751776540208447009367195922607854188564810782355503946056221786627703772377765874280302237790757398496464340432538537377790156963915077948449847682536851870307703107607448765310808228888950058665235979117579560985554261633251852218336472617761218662451881722745238244524544366958160333425805041864071183089553715884643288217846438478312940498282830674528048869181727822238896365866746775206076569341610441166107152981169943486567020613365221558213798223949456624148013993812045969415465274859808867639454015265596750447820781628248900610620747638217845918956775064053524489795447063493489354346148371900523466544779661602474024312221058379729767293767826350199910749016334287305740898939782315942937474101916288405927718491340024930529576208883255456384320657324755525070457877558539116189140067271659663828781195602344519318498463707537408774377393260395057063320875523369066562592290259883185545757755011629819580827430013081284326606224855086383041674650067562163964150774481566160984116937162393971909115717295515044181214807427577029732654237955232970716270613538189300177029660292848065070022396050196460459304632222562376970337270253805283505176800645312243149725918281051904363558401400589851967705570468061762671426034480739771570416870976336226718608220829413067343417818214368337391661402408321895724236725147942007785544175497376459609530105179030421250539140676709566284633956212903358117616359501731846347612714320456901468877640745956900211839387136540601155776929884962457524336215081445539270437645904754410411581135391576060543822496579758669485742813591429407396396754221684862504359493009684036039994310031600341597712510065831628125734650605021816768389784013669340898206553884353991578582672673442724155863568812342195050322060285882971606307642300568667574389915460138545640699927182846202657689092375302447649686058795827295335385454739764493464602332261914969865887609791955027630927891684836043414461273059564720225124269565097226443772617162783998537827865074722783150288464871055628039748856731879263223826726773019523541721458333045853838215961600560375160054289419916435191732055960343791969416289430841928731227815744531793796902505104887982976896031622515130593158856888066187904891342768508228824258110593483209872019200060552684142935543381338641324175235256133523598482331495207200957586323545947378590614739318534311427045245144536789468246799057877713130735056026284525498491940330444897641312480493938140969063972577690679625070801314365793368558033990836348430603046925308319273546618031327407488036996457790281937457452003377464757930826950909296098444688512360895311054111166677789466176745886040613557813518710346279155950767110681156953125721058703750124437463520702534926104077888612234167249372476265713710772642305831334689466472727320094486560517408863586135391514111477125819948266149703883976805993326279490277110745549386624601244440687556426384580267359315283491340049421831831808684142562088439388449479365630330587068821490648256051907710648030817853672602969338728610516199469556348257179958712288155334847560492910843434054147473980114047391345462753903462573964386912218843756911227398626686093423437388935044851059948744217512977617776280783782522808375038709765641728194354369892133200379011413340133116998880840810132309508748355605471035614920388240450072578788613677404188697471401224397682875916936968758712404455079292343708528202392943432827874055256261204319963428391716748725238796040041865625518738720749850540156260330913549155771513397033291304465813030062105479866089367346482798947349206281292753546865998161188189602082250279817135106773571976678608009430054603460655870906907492528015891972922673391844282397094394335766651760811397070206736704613736491440308978465379094485515962565158922482129819763214875850569321915305181925550206120427495649722412537321781155667900402989050612361666141985870755202457936730970429780668984943714377447457485884377065694232261022775090557426295785341899398653420892290493534711972497015397871400633246929937818888486860268987426411655465608728155691941580344767921480312979140478895562290137735160922513633245725800072547742644525521724677709081498899373471944224589638391742723715024023624107912371833825111162215024510460813984710571292785437560935350898506848000013036345981591524418461830411441997168413572809227889772595080759937295819532079585038909237002328243428178062666160242991114945879704157749286164376411141207321964735554783586818929693064298704846929749177221244022401430654102039542102231035526426332933607175336401259951159459482980123840660986798579560990651705250357682879458272392153534301994420913608590164776634383367122432046693592024608023828375876139675836073771827978627621071742784646618154596796744627944380479498370037324077284533358301003992825717693996853053440417260594863141387142971345453397046002827824177634805863629620232149940343972021723030491591995881046761974371677564110753677807194436209025809173317808775764728674589585072819661489515357555974754929025261514100220208624780689512333672088988751748670362383203012720472547239959745942622345943737810602659231590043065690700243373068630817684398331830859165257577491690936217482835344524366975188415784424002337833812441185731064508550239787634142347254483291637917634933611418782387180333367740366719944073086019829696780390513070102904123072195271735927049938565101019850441778416992662006846083245736964442433195693263745585519266407286652708127238342926265846562316302797056737638019059480262430380028519452775840705177025940350647060055329841579648078187775331748198743267794795484872212520608860328624556193968601471368525086280054451280683441831980944984021924058919657099776644063649232067845634350911805828290664750382703355194122841705562240729735505857942873627842454976739369878928486541099726173480312573309858702159526294675287480325406334592325311299597444744904196721456548948008060267249566764055234415394218903603859415684063525623461891165284483497626460446684893704617166532180334243452814690290905918567039914519713438217986608201282042473397400509802095864755560958812787103669618554941429286005207055119623209681300072284488761845478651636525808582691253967824031295007126333349830732146658295128165901623611654100840400676939472379366285210970533602432470491728477099024971418943034042773554424118620999889323918233183019215440234726739998345784696516828439293650168988674457886750489436459538307907994206172664535500102131230227637988986564931265222760773142114550311135126088178983376674952965103225560270554608133232000433593567174532425188728044185264970437862234836355624419554195458871775052671921632871056304673145275983750665615645138876414885774995491280179286233632175388772241586569561412608374665433332669369707326036746938816606124448506394653335201530615885446342918096662858975369767045827388985118097471738308329068991992554293316250955966229749117746031062002225378815207250306820079619918666164137856292158360367667024767384456197656756001201704950377123088658257124424083599553927453650854198187265628130037862236936209871808884385137418963168080320095705017671316517970370054089028356399029612263709798883065551161367580724616761258229389556160437937797157648672177452289798919493540580019480178532452539009489230025994312768793795590143961345307182232772058630515267802062626153683546307481263076950138825285892908381796010134253719042258294296874996740088570735900570175877355671839721969383835456256952083364730526725371414782623747205909897481768276275334807117669573463879048592637714921109892178737861277201829445342250727199251400755429291350870759341665304708511343981774496817114393266296669904646020296437088205549156439653121816755743130910056458129580057926131601769463798203820418127863360292317322788363732036862996680671874476653719585597969671538362047528750101524342407604037408171066865569700646915318836677686950767663736317560353379667501836182336618272004207736949411954873143407999278745093550397606754059551123187381822070581834771995773134352924597548085234184225830580071597866791702234612325118774893908931872551244616356064349219285787600559649695947454435395942837869051777371125597633511611444079046350446949893681380413022041022213164305560579778015415877074866900759240695658845258104849306679697831272315802059994320933823540728591323192110243059870524236897161978097471955967923350448504937673154848838111144927450840146703588393893376368161477844623814301280685374406223165276927458796528720682340777998323575379897083484261327649442421300244858578612818542323753826945300256989426117975724957724041735720456435916677056386933541553504839287158832739810624080877300547134540725219256951881544096566714095910157662340918630651563351893778036181263994147116828644603880250182924123123635217735406957786556383922891691323137327069004762299183867282685054505717494171215940179963760371782075374979274018357543157448240881183964393856658249764331724133266393818823969071550643328473700760545594212432994302910931239351550615591339685286643529105131223413252805367599060093591952942321754222016751209254986380564419719072701958904639318502153101201947102834516740207371610431413405711065923361672921748558814738170223566499502874376238455576517048077788282318257647942225208827138684314123370184868009723654445748095579130321062462511392255182297441573568698748000218043483496495364495525603904237047745859219010475457071147835029439834315043702914841251456329551980096152925397825086732484808734420557087049077615123128706735664467111673374236258286289227462964574140927107073224561710209803989559524177769170383733504624982159151545305267677718505468695219569950755964371794908012391258489556882866892442927740693605787834784635182700516277098456383903632957363142363432605192062160958711845076212733501964705276249974021507041968647579021412267711312191013348844505921959428349888978413875374567057745333612756756796945766540164755718256411629925004660925839855103225650040387061919825101449707550195037533340778073891511968956551132031224023687048210879573038716121659607400780907595800452012736245824143854644865987732095814732293908060832011083208658898682720832850859449566870683275555594756944019782727738892489256756952873787034638187094580432791881076173582527889527232918725173111058618320559353293840845568439206143773830358893868035486214728005669790924248270414731401400120695923378295639995251991614876114353185143843999468357725575384639428629172858657097846131603927057550089409487589318413988789997258854406846387364060508599420316672836290121205547987701748237042185737897957964037800836282291246730642350872143346455405532662277691460018626562222156458892363522005815375689884938771899448819360878340486534259577660123011835567591335306943867219746460874035563474948703217701077607907314348435240116247110197126363893319751312651484818869046147178605836491367744066118864740383080851868247259677789796868171087137631364875577228677314319538183907604574092046685998941934514664821514233916557486734890322934326492186853509259786172333140767019628771359650782603182892509372529711644626778637268068365469017738139150724631567324676377442173267369504039594639111082867087941143240002727518745535992019226819958253341986598141538038926370087405379890214754063483458260394484573199326760771846037099411033412586463539731035625329314881018311065411994386349086298227071416816054404053710780097671342919260041563124974133810074698220532969949202555777829994295780312856997779881220123891566792895108967190661134151408510819128827154274481569321134415863106940429765627742567467437836328827817421885266291017409876920025657652936328485064287484573115015200594674160731409422784285068812544349077957280525866678837696033597458227869146395363119936513072439090522976370189812492065992930174104010578710075921420756468494558531447500584126018986995840923682782777022818849162333193924171365676280951998497325979370418181811972496874049782820213460142836973259958877913202202907831666214401073544217847137739580785863639159959155781564218236803349060479044219388892029702858943516418878301905701575717692053032393863862519726200885191019699137999884571816606901211295298148047012565405052755765452398460912930979196560296406094722448110564110983954752624733450998423327718849692868576695502871116837956152972780377514380713895107791256082074341374203625860773359492912340939256576419535867740858754602830189679201281259762041761745176566785523563975401932162474589572956591518486591103132923452026615367670315127513936967644416205521945817148592493816817508157831787031898026099266875514896159855824358114144824678755254825566242854410687409798264378986685454661993541213594236517309825004670275510504468310906076925187220124049574988773638193102042427888551369871725023277307428092380603842492427977884402166447896753492665835363220496257377976799777376568291481982016614334288444646254504110899389039683713741797601593104479881490036834142611363779240073232712506639638929963957700863289731966038973931732944743616564426446797451627846300940383155734445683018222568499652182713478232299692787721103701975833667096135929875458259743825577710798284688716850812992952084779507923776071783772997334764824495831101648497772497695936783968307526930074584884251056201314260160824847508045990078653276088807036515294042777096603313130031223326905431422694570240840455943989756720209584212629980673375802793891768681049974636404706731317415709899698727733994391892910647735902163160369384160998222898952584992310396075990410991262782291118499745354238058936672800294972548791028957187011000213769778127153763272073813239778891889992987941821496879817066751874624059211911355812815213703644365076952879436065176923580364884875020227551887850370952770722057988861570999935933253808267700905814991650864034851545583200683375323444629364925473866478605813105112905321239777804328706071726090276340814508714917588752196408505162819279117205364461318942884108562410961548735467319263084943558747634203631908141816955710404759748710377092304636269895704630823141076618427389706528019672350563038249317024460730151930903548662279540114032736275663716538581602994376811442338835131200777592952919298211051672579638503342462117094555140960124959584939797528027081298155683418455451523208989177496931076177873330306280878635002726869214632467593322877633964640628833965442163912653476643423047273563862760373062831558015291103028721601191014930362956456945238680772337746308875682582040650519955084682335338713334109066842884760777660529694751166789524075756761033265142635315901081185989099390189062038292281961724495132736931463794352849021824417754735787904919688318361297624261293851185838430914706701623781039870466754276208312151304597894611255593475512253983224324896276069802852292247952058736206174127637390826552755235877550287573201105406808853436261872931694069352275735534513490558534496231441962056929853734424562377674397416977581030196373297221316981905722009966473112145720853529663349255830522900930755956865459275438567453820933641041789590992058998273950665871925028941427780707696324828939438375618070565776815175038334454682801785423809030787876292031135955171983305922526610060042812887282676669747134030114172984010464747031335924874546176078015771411575806914532673354576032812575735973604057111958725940172466361215758508861597598011010185890020074709263312918874151638826659338376500840656547509479848479688968991593288884196099908479045362381669018620458593215651775725381096121167305396902087090178264414474356513183138631383853295788629039021217701283609047758209316518101701949177564897868077702773899730556553418537152507871994829168942163924033702669273229803383454250585146054532091950230965145882319405274342218933691035226711165770220009530296061286664271679048801677451001768293216479946643619919817563634510772487143461511571446934971176564526584303384334445117494439656189176596944652730439394042916269484343865653538266340135953035316059865302780162478548341644299613381391991974293141403378311435619660288644043016700892264892065613979892278285915614255592769304839898679436386403559408775570119409098166682494909435452704460900085124488576258105542747207856129500553383386390425486768978248764790462028303116992632104648767819630179981694179063010818025595118030436289615612482151476564082699304511325368644956161383558921514002925834698429744707357780668985962579769287670462901605933833637465514799742672052035398006968962466805400575516544660989962533813686293600375313318538828884191599036271220288238436556880009669995819804968232095371720494669304578567884914491243581679457394699349838449951422175856703208955895886182923957731510980258105912998516205282315103812599847349687291929118138426795799792529106858417920675307954592158269720088469649328716504364891578790824148710141512885160689146835113673996868238917083440632541088331738352891240940204702875436710020558609920533894559300131306322033594853372159426088840650191666728300859980439076872349856028705258368383421104560289260102804880918233720447382434585978255179974323219856456797447123814919166756436953397203145196755668875198115728252895453336109612409862477802901547103357382672744786692654304463034364010553467260990686447968549480554479951856001550135192571520867803262717092113278832068458115913424088466200709483862543407248452033843816008277513149487106274783093688877009920161142103839544150166794033399054828056193946979486627014710597438235783579875989016223407297707824830443274321591008530066135847443894829858423862745172102368873284157321465675294986292869206501705328208972929618179604401716679147596903081958239261094039519376943238560419825845858831211589129158191403838060202777413681548889194449886386951459155044642603433294599670897154084351624846864376414860348082802066409168951898884079115763124516501827322811894865353432183405753141942069957255592504824092576492372574734050259799872386060723406534767573143292003694771227894784621327796696400958354749868822068594391795536130554656450996984860362697562790667504613433573717645941970903112750913961263289887339215496407179521381293400658973284392086275632482072096429577577120489746010894760163447925162156878298464637881672067426993952518073342098661519530348576233607579860719462976371264196238774110238518724461986091437447975166457464379542473081560015807522297288023150499518993745442373981615100213043547043091883128009176960006795373487875884137563893657097729618135631661653638074186384139037927649608264945445983706729435613787986263723787428400115593982322320588739197261380060770540257225550224408365521361893164515236369634785679956242001717608753904894993465118669597619964930373180621064071782771942034089265247296624313070690158296775769702980532768835912337767207061251053172967088336532785633258922110707472228864419707105009661068119964967893044383451287658121857471239170465034028343187138771004046210475211280067210748384175553286991146174324460067099636167271393254177779229317031337346593543975862253313074855117255239739395076548551613831894054423509783314661835635062725009969109291340060943574107901074405480138128437735433972360871772410191823120868598013991014060720053069053470206920276577179134067937236570953310414681642830613182467275054671749698977685546762279996594565321466444504797383244458420808904275606318872058203518353340375323270893795606631441518312861087051845951312815895283233851436298271004790855762895349525249816566819152629599336778632996656429453687734019584062598947580803486276805968146988645725159651231467775108825145401419137304110460630550615090665425664630714253423010658546060572760833696966827938065710933026444091606506765013616595054396584444054927035995092130710415622740958755445592956471580811839157835592372488250307341359031691194918700082511813822289321543889545478152957638173519494663790615964177795971721743781268510321906373555009631457839398891210785276818972967706537668581576791495396172178456269338875512790850471566781967612220319247296654512114390686847062961191779741663900026845901539975520821539025115803528907639830335220533032385716692842629581675719586326800116911128518178203121966664428693530161436737457341523050866375724267347889017892955810659834289117675900153300416638063619420199435699528718062347828841697460160471865348445086006125377207940112184888620263127469263699093823201640770767263397257651623701166597712458561963562070468447608334666123817475386228652064842933860742316283708643490291240706376465286373310572507359239502874802255778496389735980391558173691162633875478526638882476241784637390006031589051667615221293196815610826894375882940028304815220773783556456437151880142879171244890262159295212571681316068638691493438577472328523341992394648725214936062403426912953586707078764482827564295294991807532589181696376539844004721761744907359489122736301813735149539287247786553267185845145622289202275844343087413598257157230330255948561445660378977119752194567109246958737563110326371083347403742925852933842986406172669963470743775682322924351918720273667582496833217269605038633894308947349421608210028466343132786043480790498506400087539566555570093565166936720899828673288318804209761311259340107412495434581669992953736618691826281286436360940920449245843185638563261729646558068447396515775822696381880632633340081220378893439122006639099826009798019317130901543921706968142017982708528033476986530960839807174132076656362246501340076098948015084015710097695683689827501476185174224509026037809971630102624758093433501356804598557963589363031368976371423862775855948639616790549195577644287026654287490915046729553591022650747365418464675214846432366577860818599461372470802872191034973854226770403487380520354303307270312056057394555272905324205604689530289040177474363736640330339965801248601147928602349704608003529380161321641607780244763676685883791287720742756069840343225194054454463007327289445997283471259439713511010151070911323791173478851716367190320041463284338859744151301600503815343557609079055339508015894457918399187508555962534175731477451712823425737195166779250422733120569818297628120951560249068903504850591103046748243010901488952190428492350088970113086079243700950889577256267894077497392002999633618716092571640298827423172082517738800024206630266379279909996568933535307775518176757729899208730233410441154089204581039316063791163201674085535132914670218097315365520340174911206833431349393682470544126863203011572714129204220347483928324664453883195968862435296485806343756015727633151187732637160391478012944199442641535051776313097837576232870268835961402014376166849744971205835326526612914314922939245552164136252669351848966424067670906629555033647556068378909499241970648539832495200464776308127545240882761863043042939407616233351487331034357980398537991215064906159150405402024828310278756985396237061804299713408552634522313478576833986055604788645686420380405317438015776359667057799985263484188897179376597941534432511061642837025571212814184452050057533024468661009063641825137723311077440976265251080393862569567142764921602900221701869021512603528499658265535743542138602891722808177676445887672375858760869953530753558944932227225805688875024491259146846013438865952115700644412590717765399545831949242073826355459447751999181678309760529973105944798436771405078496271529046269706386564343883249207036359036110689747864803217230347403677527783937539209172754162909910200547509053776257712035710562631847417313548112608858758327653757456461255336098461690844821445679059461849571268907331104728038803405540781248566549700001096546124874995261169447228260278788376760923880776805662572129055427171425151300154862397941461638556950292574528722028470270427578121990651783139139430708058364103877316943957409420107729202940683371365372494910485225983686581017235844801831029886736365325949552398564123813620872382024548057136112046829862636725911970366420397746658196292407521076322175992040173539285371445089015911186787770361280378606082114413473160582349712100581130532475053389263381471953139892604495090593172159801665023381925853132337643677115682733605474443788671174223598775762571157082373908114629428231832042373240895804545919550317933218321736167230277890593426444109677937794925421997476233702732286079389392938094611770983859456545074977712211538503742198968959727086740960599029563648611732195851098418534416198221409821520993464281158462188991912361943754479604328800475150174827163496692217963659525081015726783846603465982970294168414480422093676217349245527667156604834712248340154654380121458830051130335540347021274915028098804158425405083856703697307727563374166704194715015784720409894724907247157465823978744494233380315710549424441656820505673596446444031040036611499792956148113575436189166788388534970357402917173805838241815405041695059831542257640536206535815204511769494564537089855094883795587415091142025178467205865558640264007478680809677570401766683496440078494594571661967698962993441881448652274151103204194653261055380787462186625250279281565298818518850824813404503533295734143794462132769499823992107213610544214818803819737279903652178588925651165799107414774573115657561319924639524065667624975434324696442186231849199919994441493856073589150007880003390729886455655684730525076221068683700231269960971929575258138914668766520948551941477304672434210703045415404092940562597882838260200089467469591296097880374589847901784972907581036867087221853251139908499165902055834847226155596269189311903130250117356196706997817583168588521901454720053329022487114861384163021200775776270491698971039152126552665474366366426078601129629029331689136166790267180090093070355291438468345503176875980340968890261645228500853402730354202640874350262403504965337605791759290436371768813942812465158173328339200039584858201876678503240557997908466253308340665065173953832917335017165900017823464467700111785712693392645599469657131994255560359656663146787571178955997592762369215142347790418524168905707082287662585868416974922170848342441520837094286135690750283768516931171826658854183406186471946363862331359402950558663571981620060024870584943163089159167382455958285616722701657134358193227064861884738528907227229895779275372512663772761330069531827406302761704023584829729138264761091653799357031959839212753388223716015720031230066812109345144740179417075006375360234178354728543605531343311646168989323697615459941023299034591067129456860380103472155579917901710241603568662534315291507372976319511865921514714771783628022709242547019734761959449546182464594949881222857357136070239539365854072651972772322256889633786885852626440587217080236219405293608749935267929437915705883661278259280254535923757059858093426085423522696201144537920187306907128474075981055239500571484867876977026379343886845759535632296332497043897520123433966551637352891335154775054311557536233919552120277989714829615753786998090293952726168925418978931854617288612596920857349461025336837054044025701709832645406773195271225953404028214185444869802088206648799080300896258018173212184377323359812945055976072329061609920706461206100975611504326715633509656733026685809300959444007829944038727199403892039869743846947716455933316246745803393142171976150649752428198584849260077772022586949673463311630122529900157707980522030056663475246758083822098738140438354320348370843315116959289796325002589056009401446689886890885250243041243197349030180447247916541425948860547542539317733953790526768293225171146588012655979800476268639106301074125870697733848178245734788651383389285841340540824017952833848145010027759396442352746849876860002719735648213098941824584463174039666660749084955572293211862604190823160969701638941367412599800680990705235359966031274929418235583067091939419552147532310838650022799521370801644982845870992587018257903251847091101573750864627499912670287033081732247866966414243700078714880793919994023012131386896817243030399167394375602982279860380168980327362800491156146551735488607229880211744403629213725970042914540941898287643501710259702370044507103298993599793980703476329866322707841131503018202922693845698281293578299858588221942090566118394929301135209684069966308357119411129789926556671629941399899965139951879059517562758568275181346539571079977571870061270639766651116717802651869447333641593589044630924072082017449504467355925760230541775439282091317073993191063365017074340106582899700504385604039781626119079766711433498142583018330432253212731097953960390700962771303920045139150690407325774074924097176864846544199948823630639635468541195509777410931934309584673919526614364218833823202294342431909180109732882876785931150293706883794199686270789694361732106939015155427477416567415310571207010159624873734691850091403333581010539137564599129152900892377631902116590525084428466929570147316988156273831624389518081850656551960960986687048599358715031678600328019951615100331031579224432481799412325688024317485789613804549463705257593878394731118877684674681706513842672300098429684438798243062881484547852307796026566778016009712012164414480797690611407861475445794402645175938092904375151913918975810904562250744898331040861832789865199540422709263258927543390834854941538756860159789782227431462199536228341394667374250898817213832049822710513250283498688713554449132603872890935197001918857794769837039489537077634873877665050259377069594035719229742517813170189373712798557030720885773430264534831391284732964090059218764416397800113420290884502884342583812360375788456738855692057657575712023774072142644446218572654861492664881250410637759917781786193701702256743743728746767687619807481779629322036269197850504579955818991383481714926576391601904167842490313735213271777355404188999417382353482087945624340777654032205342083219392948954555217570092817043058221125509982732691434791862932427375653616668098416845344288600054118815391787450979327250140768093806598551788417907426737584988396009039251079844466063223880935916180998481594698087796174776534961401722673434653157029902395728837019619268034304734769867114203002476639108141287091409412119786318037005104209706892629268310103518480569582815285487072365179225305749902746913190881076167490675772751957366335845979473296550676915037870431527066600179081967491432491050089954760973361220818426122849590373304882344034682951825991855228530451509073221199877651614439544558378639860347337348354847083440479791503984295517727212039285194567945385286828870493977260659964304653854171726438253191710818042006788276526021818498303856487862831150440372249761649155471911788393927211336330479217221604355313291440241546519763526722896525181627605134664917082926911357895047332491370041571990914923199635693012219328694623474807670350851640070267557885512637055983649630022361201683407760074689321647656652989103018068151256818760848370593270670636847237881963544105832016071886474758879258867726121557727190508796133288356231987527438750313816149253627822823169776376084415322495778814231405136803492222486411637572579309169864635821086845733983501535386285008796830099264059249363022124971296431906801214429643031318843223424840616911037415911306032140804532622781813005908629537891511512797033617585072946106134709792372163351308640078395461369894602100742484910815155166687994116438014277434616098989761743705664842905019099230562678000238051268827595100423689078430709405259230459790294399073202066053632536105579218555110928000654756379654592276504389368534281836520126442004413936195064862760371151038608068589365628318481410313247062584423652344304873454021526835436226008534146563217885884914815475184792031238661487216558056326832789055415483260941839909560934190152731043029919458535370575779280510146416981527621614495786561406708496626169064402516889376832996957989069894590456813914278341711576484179687057960037374597702151284690536405241352313451689477138482868709682683922673476794991178939156930908913647517621671633043703874062334806402538933096736723809845990533019830355770410764194196047165530738228849139444775688709955883389406479775197399040056456846710199791095495359620290010342291334216796868638767082432535245874311033397379943351867423664941938094444005240175261783047698099173826563871311142171227717354582773905783666353080469747038271687172777251899341309869557766661571629124472694763160519917558243085234778450757466698921442833387833991525537415608741990745231124596919683229304417582568724042331066086736469596523751528666891459417673309694608578989187896295557774480008555367124208366817957513468454568561784301672427282734390413506895932717574378754953589593827462530890185134228319363812413837521898014754186607921895093383216312059368607568724835623789322320587062636583654384549606677474444442048422737993861288305645984742700609032490390064491260231116150765565444827494942397255178064302112671209297529285910286150566775720477016054141903110720361280437076452952978509375708091385834534049625514976766612887642047889966500544215495836787092087893098443141821199589346254432870171000494611165271405800219180364660975879670557635132648787749470700224445075348301563624516888186883610286145171039093033450045039260077193620988131354214445884433916400036829328757512693743906896147177994441109299528310161086079142811959121906436421600120761299504018093653742757268218796350904986445155751683151924450473649195113603418893620742322245359542690683019118901430829410236338188861158970089805707024654182272582884509937720257495465922089497576343394892136668469451268609221278388119228532100798307878150476362579381673692267194447935889179892230018405803361196602573374778361918556547460786937519309944283691648116690352534599210502786841385354697817768809596229031583233520130461336052670863002371360239990664747292247019966832990742823034143245582815898241941170885914326920712894337935816223976066596738531559342468366841820796634258001781877231623626389231223838717026381528854204506608789779881501673947487580691625562598188855787638263702126720130455161507362214128003408801855583807600473661877604796269590863715811383293776247688463895024226958673060219631626596200484817295290605690916644421489597063234916892347019997813728478612987582164379243728024208918049479625955530985635954307451250608779673249250882511645601461983545989729679460383022476970062677389274549352452884739720872922378099979283331355626715342306799915043002442155131420336997399502555597199612401866720895500785639037614527121631518527580671900760025079815436224711136078151563071408068205781056899729408513664596534240159555562483538977330671542851380311828967401809855300566909853802277835523313414364005861208993236657154700794156662135371883544884670275031429518783567544707232866064214610226159175514955142399952614458961486208962632435366774199338895048206112906158717843724599477577152741135222410495842134225651109210287572985183772134967013668638409862619597797489302220614112846680181297820578429065470050023314458015848420958861451744588716691261141587769193009829683793229461347416844573355710063877997896551263150755279997627793856433347643178931384706623830228189433582878613413214113370833476937739127255888525885085395354166389374470478574555929907921451969774588705153785590148024603955228094740370327731908983146029717051172330567399331608769847776712454810610218382825284023226495255984644302383704280608424500946437060154806307081081544685276928895628189933917188411354676891076821622870444261077716233850465099725919887076233537554267478908334978461186392048107614459864030828924332985950923710795026348542672444448813517610543828662219252411736880957737365076940707810174678402236871231331052134534662255307095239263023936549911451317620514532665785090416023345421121945573442963108869558420040871971739183577326166956904503453341305239035544432921417680132556723113822093287140305721470252237807575313465778348110435558704438976197348993663680964504176060752125451564930675726127417703720852806245320064911223360629247946543086561194994460682500881264393386223553264853423075557615525844509259374375786340851383252185704290082879425022241997870505161453349223855040748012431157405156176548963821424267013430325111513105709662215491138373727225015175209814055069432421374795354965456990751123175309879954939245213721268803920520599873059196655812660075494177118004179436915863688971325501165074639568326983661155186156601974895236277489834323447339419868928840207186813683279770798041524193398138028827544441397075670167235845579719909704874497116583187931274659396368422030849075598453340411128336771564727109975563942064253457338212545698144575211352116453233459987203653346863078567529722720138638540528025657019302322749958546639600199149775185451441017597999306135474234118919926313007765184668870158945045177978033362855020741759877237780403333791667363114494221305543760478253148603327884302173369745572067845012611983481469924808077463062513600564353086224188485119519359431686527458960532729050290443977175293309206227580019121171455944914713943287780854155344572907242369870830780079997070896640408856864705628881579657991520202313523612019124514940619905737669255852994607724685612693777818030156154582313824668997340180421568417720769670672538030671852853925034107451952889034249774291350886825462089274725353765999171335403483261604074634242559034749914007125486715149634866363253982228709962939549194537959032891239284502404495641921125486973350916201905073831418716454194556974331963954946465982565404658544340248441743483541313906780444447912294455329739343993114391947969395069133658642132826688543604928968442992440125756872100084743989690156771106069339944419913882591273429175701903930953457484935707054001084007855113102971469199131793674063188429826454702246810245402085559017118824568611946906119739346699313389860208138338498221840804513858546684529258971273141269355228130740501365533366532095557151014970428864256203667702215503202038901627568102280902134054667730298774708297758649130441164695368450724322941970372954145501569245174521907095726149435554899815291202728720253249277515845996854766145424589611309551779638417110798762373605836674415027847472876654055336463440170339254177602341232399534298107557868846305350040899215490849196239280698016008550629869421853449708154841581608010598563153337210031681223964553390224450387806014602113233406413568873868238091920419321256414364054303773886835383331099325263609931479472471075543361892648494738698897308725876808821865404741524889196242491623931946105833661377468720778950205851566616167930795053305838871517353046736201415563488401750949298817535589634738282905873680869285413799194852150792713832064574679410301765981153535504315872683227388618482000386716023582193194454571032745572162378517263651285203116299517230328076555129262797169263727732635393508602934500402437434117766090290860907759634983088800571970677147922802817686181259751276794546602719705061364207489999188483103003002186341463017865830893632028807339301542476182845739959316469596733893293765123976498069994745537356755279512626104201328547248470348339213196900200898283683859293761970462738220796488373377117603188864775714371436686109027876685110575243480868178387360173648596248087040365192368596848072816932069426378486807849353715221956812667842995584810202459069929832583167322680207688259288077362982784980664261047099481453633933189198818865038526130580838158002457683631137784420496200495412174605485820061532136012096874173295997066096493210531617255304048700602525382802036664087349976807677951408599965719312588257647515960036097317087219524228757827336414801023628210816915047783733601325328737143536433524228700221454639298015049413159911583971654465308190541387604159798465131972068410858307217164365477711001667367896431235516340712602786530446311837360484176725003242447611123499258584916297931869392460423011108761255501358715498973637811294145837482847910187398757425544924232269590113797819878276990600174833256694365023910326585416448228056197694631091802031002298628530548210886718579692647111702885362014917773240706982189778147483776420655508702817648371115542144055581370818815148910661048507192219672970252214521182642146643368044399041285104376550921361828541717082687418277033492780195372029885259127317826622188857632021054697943047984208908124453284520057242442128504842383318419869915456059024118289763056626060999949868422022040118772939268539813477808212108558720551784250851746171960569990297272868629126799143734405962937862268147188321877399587041104499244521128031041331623987841674618974516200816931383962294582207394968672397078157307849067421942307056772764723329942923528761411088515192695437393535377438931689477410320292267926888983442016916744434949551379982997080254047693708363623000877757223977218184739251945537348940029184394665857401722408023827315751691362130446239276445553270675338180756196473340437955370760776516091764029120429057239174481798580090662270443519622731348128597698844122673147284456672480459336677253833149428448314055497126292982351082010721415960989990506974410317474371929631083883809530733419040861597536932761191259844467648599232413215100013729636868939521120749022222543076609904005249851774213078876482802918539401096115731504744210477068704617711338787088974447703006797177126181629050011261449121996643972388131252172360736632313197627192015882546030045137749727560881281876843687574912999895295279917655920870591672570469890009878036560113278459902900289920102378158306873559017845300176569388653865448685431304977616686939207641638849482744886577688466743620737322544872817612813889767929298114470788125736709974253318777821630473954999152188921181959981133964883820649947149294992540464387880693340651349201213899289977120374704229156192679708885178252460424210059249542888441755508339517895103677988358432236763340874367364712371363057126830098744587448095246607552155020954372531596912211966037962064737842015459229087685220025208929094915204360177552158484076610633975436872152664096267606870219948080530303945079783746012179667002837636690093904056498090407112639972196179480796381999454547346130340196527963518746733202155316354523342302373228527493430694355837644503793992378829134909556291749077054422332891325488414778184423195822535488274880628942496723300038797106357032943351964788668354461144919708773879471423595857257593791682568105095706227728185883102082507638792515058656669164818460776610711950859710503243156198238331194636905616260366106184816963039136536792101302226982594463792500426492510695357681432621031988647579234066265105490069473582375386389019566667160084981932474287011636399784027018815479434506053680547191835668729197159990004523860674047181297327333240146037249318845683899742159699251673562110338860434223012318804665097357772142526845065982272429681912448377660446240557311822274202434409928488319406770542786744158240666377209843752734260342075342855189233122838318934818979449408166856899077846456873580707218014722799803125865262219916811100714861037489448720194509701381726988460628676649881816119760290635641945335777979585253979875638180271919843836218158770465209366980758134692490238087477801837585768741989589670507841168846227328633155470139581107753312131491603484118681162275796982807517145288275882575855733043167567481501477172155472755317071051530276991987427438639668045451675099458322894687261349208489980973870856722197053122365439537220696829144592747129541721338746148461664972278875320445968459768352748074927763780022287510280313271181946562685269946448710065532798378713080172490551616710427452847407778465301253493843651383721059532691196354911474280463800562302239190408488462895420091104518356301971833678376504432226857988873269848486475593551030849367378320963299659974942644083337278274937874777299164750857914013791481084716260707368655957174405409511227043102329395607199707824433478479615005689452333078661823633728194745683742030427696653378656444293932410496631963271443336710029922478897822150852658564845061294466916216893090254254980237709746714740075734608452896008767081558775276890249313526413058692819171749586030025970336075872129026719390103452108923996966561191924585581930997090594229476957853452047762912022708577991614469547907437140563289156603688340325772694060345757654843438187203128832888920557029692375480834096695109632228295923210321558858556521892078870433935208595987573620378220781020348977171943026072878209295274141913765385805643172148494223101429517219214863045088926855300779438668987520984310688103615618582591517900846862245910644063735498457165753974850378074668520147520291006882446725406490148951603329385013882418343230709001877628896926306771786559565691104738465662461008203384221631492472377310506893002876687465599763315926463845857298752566256912298583289517323430484265147414397323687567413539619927998080409499998695659880950075452390069938780910200081235044586763922202889277575347792173929367657943279402426168722497101202973195271159804678050206470975907323199765969000768289855402760146389083728955990696539960922836758885524881494315405453989140638450060070551961721159076530466032527195147072613860554889097103506898893029833401494232140031524876838583873227292520547824481872196283347714507325886393842582237388637519233416168480750914038320038029207092158971772264482913109650873610303969791291483672316234524159388578954150146271682637855766814229172036078288862434005116765937065500957863597798403804826515237945030285742608490613478013475210996198116469933207867884302884337080131160757647578761239527817942365936494658959623481905492725486573576139302140849866439325887723133974701130608951449606771077052864464954210567066160660972893127186326026430789917878314903823417482821519409063005800604153480505471297036540378071621853450255786003670436678965374681410556781180438694090057438534298087009547518825071271072524771617474342024709867036924425065987783829418061949044128984703025880554406773666092624024810932497714477569381696677340126303739443169343694167401619057123345715080364262417414573796315208839271442853271100212467076030350663491989415721064959478204063204822422173996378914614214612077327240434857869266419620316850103151754903147461036131263467206271191129475167259481475963134239437139320184152067551269694116639167394225613757891416107730290885375546813003946586643200192979873414546390515078240060464333700349844709022574816936866930848127286064792177950210989146168873836265381887611639623937019696174842385454016420312370357058611292564349623149487611015462277192683025340933175571997426716837127742339631206259126414608942555319235316577120382993849901616089548794208254793055833762460903578356739824322505601185521396986895372903844563122763823602423671866827844314541407508354538840632951411814763016978055242347437766111081456912904344084219033818936705885838476275638215797635898388418204015012082120963333650133305723546525428758600770653467295383586342429947819995949973954125952248031328650585760628382990238102394619831173593327638497644461258531551354278335965356425569670107021981194739940855417307343834128131328881046208280143701305004842731943621775574969447393196968512598210042358525266594117141525060220110708466997746204650694154965057661973554870023590626216218931933184720421343362516473551129324233157372774526288307448128962853579488010281050520744777435267877114033514912045726725124168993651039915378165990895062323241817957514105807963036828347752347998079843991805631502052493879708772503530337034413670023900716660179211714901222415749280866224966298392106250134578602266676451643045086664052968010036792413859298375731663034415297531707172047238952252036020798817968986923248013783897925376836340517407962925187577770307562825751806313363231181676625273684563863423386028405157429628245351727352049201601402294745101206607412707050721558099070700879131401682479313965424237548370365436135903134808168968117131207077224397632653957873130587817237740222539452975336509581350259424582757383801399928622132077688838874472676884521556874478842704260064521478095415861032107460108227247070752722429344453718237220920248669580437221511200613206359837337733279440161640966134233387281908955133432066521845682187025107533477205983935079925241339448184108077410927274539099391337830931737134391078006957070088930320136262785093832536142951810040897081545146876735953108113529666764474635289930799486074666396244728817867950472987621474198139345966572535745905650470276877389331319840828346191849551026323338740511612418193977825575546395538493808907255310482909978704312209637675428903935846852520432756900715792678099808565868552052260761822138064109051817378831130078774208267065658959415296616096837504442890338559788679857501918244200912253812193728704645712618001389324846889591151591753752485854034428406049401334412929961966391494221536470594578481309872408580542671386518734448617467405472631857041943257295544844500053776182911846974380358445391486227745454867181004437669340443909994061088046274446240523629438432530452838560853331896850780722807673800721201824645222040394313226510164031291352348650259120653137883200450136779309039372005570305464313472803754132684000610222843666549594183212965568598713559210013280348149085708859434689905231772512258707265327911076086275030830677330606502639110787575224517038906413042185875292394003115040897961953714821961992397639732687809694622704814632947480725101818994304422623991301410582192125183439087202436413509325468721105541123489831255472389867271475685834269878050210485880313156294805090948323443147645639065307047693100057115421910705808546976519959899269770261199535632115594255345283648875052694001907453593761501765075599852966971954162108956428652179469751183797582645443267300102762181635621287515117258807543436950572874785906220680804860623063758430833631820336026490401063230539931019354223552653909225426026200523073837722065976882616311131757782033410388489311422633356932401542932051625454754813276883536142557495997402591151733002125856590648604313518269653507876271237303990116237792710317122632387299304931453926674507137594656968269754578238185811661473378266934634337261177840573197685143544199746898262030353184273582088839645122318500904331967533638012660234845690690896154189978088743832495457003958835604642319106300571358128341761192213258147154444424588702503305122296565261258355063896960416704500800029363495171854790152029670927256590803914230470298150772636670626846974333263705795223431896394550924651214284304891710773526447714404007177678172931955364665863660630412601322565667333119313640140336129525427885385658324519408027760982694980192540016544757778540711675212579171030786943216592340278670004259528037513733731027083619725582865286606216508486501333856828224059977728664887007786948209265715421616478177595815281980822601824125515002593708521120790520985048132913706738629548222631684008180431667291742411152211290687404392084257203851548528051839759389390857169228134165710417873906395804748143353057127625761263602774891243819289810742140052852581505034432238081289041746415016450046679592862555289160416206349766072959399340047095385627924620076268416123356181100715507781183064151295587681580296612204141739855565465975034760576493322579694533128065535882102276560734392723286006123736009959149134447876671325301973725790251330750068377778684148149046949175002915837414613460107898737188613841001062170181431889663704742053898975917952942405059927683698709732772370072059048458050366299513091000104164318375308715399675062678278866718856724058635328972006228238281390754959273668630466866910269095615035806769559244700095588891742632446722735674920802193748462791778240668906203903078654359514881038828241019707727526941405122438762371423213498091237525055859642058009458883671013542865341210634750595355949241115766461472772024463397193675428580914529646308351315342236865721439271633048410223528119751445469911788741015399173692739372823880006575916461138735046667504206680650811367177636309851230019975627697806773780562986968034975907995816281219948179753432259423933889840556265613862829333209547874707473257403970225772449816578645921739591526673389677522347804951026876591294947596765498931122119010556097165305107498682186175501225411491203622943593391960015369558328368209747826145128130409282989948837768288471597452209779025560070404812108634344029307150038114026318357882490039144865821550724472986468468187480822391737162533376837779939508857034763926112748134730856872240893378328925299938463246170297524292207908219396207346493710778126936198560005245875336986018892343273027713296044301553685740540167886144123979335872445988740235683713973256501753469829599357410857397702471819223761554013686536349204333452992783969669190340674422855302031421505415153236313269622154368593876449078451784623002109564455004124574348102517347580440831305571455315975823926977484286189724884322585609259435563005765989931135669549568954967455118005939824421669766976589857229332627963666264775821517104283414772127842770495943658529241030164956122399245666729784635122024531010195065812148570295237088823810323749318260527917472482623262868393736430918014104759736482070462545972212979614843943431087320598815036382359061017736095390556539411542842305540446604697608185397789253130839710425165812888180562325415838122536017253588637196382381214691266566900639847143417820860847963961962211010170803095383743041715976562157656846958695956149319295005651205911069910572734927414512386445377075871529183351479547656460596394950038214906149901520207679900262932166997023032267241943656495826505337471914971091921680000109084653520148693683912052703249540045465409872147233257213155656583059754956699192951332709403541959439484704855999907203297256353422840903681756996080396258472433510976028816311734233038676954539189506015041396210928952462008021710235000758113373836296999855401241405066972432762924272996024403438675507930187090798049319251260618711231125982363001652079657215826964372154524038138216401734717031411710228623323846547625068198198907695901865950536111797973798647217789174467293783249609351504784366115258831345360605233433679805551117478240164095591637376788167824749711976247603855089998185652602897714022100538017948626919352115657035675341417658877711822973960917371685430901624684781855879509271325686424009333751435705034517459018409885458974445698276471391593661121943141451454220351700115139640809109321945959923777333956720226387386236297320933279792023193116470501587881956361297080245567138616360017555854107549273247025956769504661847109300158192780876998870756017861934884989800495490551423360501204480743842964367649625354432501960205220304721590694631455992063593459848613181193577579889312001530492538826153107512869587394252164995336557708805228416131132059997933077708775152280801329151967561792860109352323508984879462011256184960478181224883101893160846658461092789479703906293105316655844675509858862068287880836869262390736191304659179852414864607291517289614512101524434851128567154598621619847718843060122646360609410774016934097901389215026628806479297816669522870284707778068287094239283221680959905798567677220814034476399412414730585513623943874564643974139060075596082278520937608950197034095123673910762030476324852061903989170629027381997669378180785024443657945336076179182627842794480521210541265062127672324846999247763415422344155202661333469200173413365774258481224221062765619018873872488978834286198715796677009522982486059873835509564607427910348316023949138212237580332704571333037989639129693407999031645185802993387603134908642014685569025470796306247393537337253521833054854838162506064345506620823001717561468768208006027475760061839573443530201910141442786214788877126900378782077430310296783744197121406713446585779816968827309588518481492971118410042271455449338708689183332049035882212085425205171516633275877091827799527699310318549372235359974554292076949451927750499481802661231621941729600340367612876357501337340920143289535097575008302401028903785348075466064061958126298465707549311039066842220320567064762438264584828427699067806278957785611792152712891807986711601727319356165592595861516543759135569210010212725801803564207897329537314364691005636686163655614725515300236136433898083282137313449654910468746831161121613848282868176761887843939462910240039509812096480970518881892623069590776349939048158624238204945727148579150125314551773172282536778993416831246970633208564120975679582835922194343994558458563014147695373108742983217462251888697420709259981238759422992966067851485555159296857123774367933479485977262478840668718270016857759954907516573309019449362040673006743048214097291169498069174761264236158837702183546767350026003656633037966306515709969447371771603481247927425598706387299173764911345644880649129865600233991891432235658148662196406934192338600542936989911695402358547292343236180264599192515035648717925017577164455004870302573811674334634070223767334969713019356106037452173999505922780936932207514978411089522347184524568719928818933312580251938602594587972561532527073959668576196810014843911552595326731107011677855486525606638084542870513596497756248222204783625507450193004699754461864530683003645684701666815729861118702127247102040456097186731673653403568822886768960390857004693700902422674762072738044450051675385095635312359327848674256145063165556790371476728057934867627431142661516537010975241055966817621167807705271819175123847017032481826124009126469399537579962147818263981908574829726480073035105015663946521012763218096589601976357254828171628978664675760450833446703747861822384117063610435048156256619619753713810057778084922712373561859895294191068290176588611051846143630193453930228456184193122584086350483140820415207833237184669542062731214533299972783190102370581786406226175086177534456452556672748029575666148553320520960322393019427759968881147689837734752858292954179455572091560259990656932218798688389378304688285844053060740435802084049092425102921756157129402209930190647097646709784212880078955012503254311488921698172705944902618016983952859303351158652078456426522231103877157113385466199520358638147068553233454661718277216165056040788879777340847974544000358818427124412848013199260391601311193057520683401826246427711065098477751454891788218996770395884702329578582344348827538507896315451232504223677199735002275944782440473073161976056503130692355167027359661422146678825697945665871803105168672347122978374749779240472156494571579601875407844572394671959963564304973284169383290679371522608363504574525911608192399147305998670138090524014527236227692410713761318984073294431396872712455971375629407268000908034937861489663339693358137870747848877191857597232317247262178196421416696183103030525458108494087166673540652976892637861923051551304050109011557693783962213164771945947837432467307628289022665100262626187068796699013293537001189986275593293969173533709615821035086241976093829482290575934368505156427352904813644157267490727290605975457298729284942153700983054988637759914248987581307234631693540734468127278273143397099925758547010201449723751516250070607630329115641526503240615564810041300025832883421748567088373169902011795574304036151249645045513804541496702237433184201839173133382490586074711930912281314410634291623734323410179028204278868617230490566643730863580843342162617270053728576053524474516242118514552878681055832742662039162741519821280505076739369850400154045330900957948371544618128848402820777434453350896183114050277883296514290998924960071471869106625315723818669518227775913063904167028599956982749156598177671639370058325123906119615947168438319010560039556020933049208223933873444963124171742847210045926923931741969225145722128013402703031841445656547142430445118207037605075211925766537748015023555273609387720193097755290312192745598460406266824078363266988957582494447470569837650388789409857372405934828934098821468341747730548944361106843183027121520126523647756620461549329452844753450570065739297754268335288113337068713633277908445060493492393557127633920706933988203624334202540001292263431641972975037388517600075073704564262649174789701656057493353005059098775035068307599603292037310479318473517247063810311930572303519527776046265927747894985475124166299249182661190553696890535102773368860839537477970558710760092013743071977470539678546014671580132535466121402748310591860915980200397008918054385539501650835908167934615500669641157346056041427403866846233831963092821286577575002504992303099175478334506605482546148912428364728806156771902587529677084863747310149109136027313379657850560730357415636354057895538927316922309387732132097446614155180489454586534618121853781829457317443166301488782622646737653135395061823066007339324732863484110047445352250834562861648442113117947335746624382684986627459399095391581921457726023762741182281944458778746976322904499300965323778183240514466943513416122316203209523441177662262340840550667831349181004539665656512321565955264921150769510518807261832791036414183633666074366465730103963234581877131498481105086298960426828702209934607122770163696124190414242233985032797966516274011182811079036749496260301585773315402643122142403516400651756409586676819072604238457145628971492731775990310478961423259897134549088818056229710153992052340781106235497843221967616589960297836061139268628648278682643302036101275510738099668785357753171330680465315747839595143424731493257475012277272291838489514859063343075850546142536943572274898041284374583096906975144903915771794897349584567656051426303911671565917383387787015338493337084972049020106405842324758981164189256764588103290871343829940254351568495321792535400936378755962446583080712036255923855254468815526652833801874326002763796503464023656174585155928215184367456619515122003693172322276235332107613337606225988240197715131147514368423413024298890535454564534945437597072598405411784490076860277705391995892035130137387609537553745764488162565019434868013518567197406711235298593795968365488134642678199095620577657695459964111640460615949288103576891011025887111949467065801615156482777516438821917415059397605412689623548503999378115145655229515519428200910522098313926576835493480981960274194641124904224948214557814158265197629657195644596484088557888902828058411604847241134193183148576830106437894111581363094954968952295129190354856081230811823760920312279988389887540574156883483639547651036784808027763049046055303278552073687049564490994401126408581939009713264607239551766422083703465536893918886926061762180841222680632929421983421515551004990680120081185322362423865502619012915122256640428628427458718147795757962067293747476859933364563317475031746832941096646380727745243503042839113016006319369160232516247538577606343723681740451971359890313880877560654481366105157647854674199827604418992845365362233634655232354259056262680989250558334474021021820463371600295615897362180633670345628098528729993068222107254492787036847920693836971556940878989926342503900484175973209052861973882812810727350263371482081205250355533453543850565551548341680970791233366141129616377162340071034911620988525852175026594776036642418978761465442628257298182097801732176602996759409045640171325355924141219799873250948652217037630322433617879281022525186671128834694310537549731166586555404167022147689826296419990164443862598845654492349474293631046201969811703753898059680563058545644619058586634074645036247528558627212610689893038547698694562175394482926832811992842907760552065182398484749665163249920159444951877415669790775977471581318273403669251815071073293956367471227570490423877948167659184942306688289379874021985187060648707242719072520785568810985275400842270320256376312989120137187493515708034373785899131957307466575418521555001334304511812272451534395768744957646674620264327331349468522770834661577229092467071125346605950524039206228466630572429830733021083460169147030616809630373478390240671839447950896402995125109001173794651566554617797021882123445234960078321515629640474010847776225992001488716281169221715186550697318524164665161509393191752134274381502583435622706674719239122598275502180835255737044861145774200855883210283262164494169014352950078606812557104365184954831045541969024642777229853781074218077401549555266874085830426899654384641518378079149644356177133565308495465448420040235513405562726576166573949352383312423711472847298208489827739437566784810041609850973374530747092524431125007534629028568687590839530862657809049972243459689881333471990982323693707524488528166602805914770776849579193251555990790047187919309954524207867748582041979344913233074039733553082014379615679645590745321286248887816172031777480221479333638801441855872045559406674959436757173485687929387409750659568121585666510854189699690386255546314976491391779314838468260669110391335240120459393485341260753151352579398401234894788435580935976620568026215401391131092639304775827893499588378135375064737003850533287292432532964702267472639816959414667308547275134348607928326782281754713359176465001617785909529497854647164804434954840162910112860233161700640530682382474293329041536990698219138422430983975986879485467041944862598136039433667316321713148757262828892903928931621059125424309819192752084845962879737804637104981713757881801429631667372928595977695752295517147354591896134222253740427425897064603044234264541840097413160660892193712282769517559439272139633432389714070625668683637768128764399928764158759594557919801715445599295023408247265340675825402226660817461513455705569956797116406664725600098149762255461151786481149415226531261862402019797911741821804477193119459980510265727574363530157993011521454776447714670835932014743110713481157693255313791219024315788448992809534378103603293520859948833134748679808924656992308508605904843208007391291884677213591536442463810149691677024621620547118844361803113006239749762011702325102105952636968383612918590678112750940635479748018008297001836145558521817442938827922413246595101906435111684483885378004788369701168333845076753271514755817170304770590878732203067405237249121614123927225630527665270501475861020928502688435125722152697973367906058924653304613668081271787990442502644116251730065477958008171852100105681576713750045035160049674034129880085591197125048279522281603540812144160133374069557298125082035187372654498946047932549909919910599176758930492929457503988844451361939418897432063006448720691661312615147584976440181966688958695811672641092198728591683126578048895547937141877493145130501075336123084508619590296051404085270673548859562445366997080844132486163613743223211373616101827939291250040060583484463351088844419887058136248843765915445078315222857732788182119323501769378205694608179336862220204703759795088442991124726161929037866330775505789240900726592877014981517728669206582949604604075431894558688991470587941339414265749324941522729601594533074433473019440127815881146578899481256639835787547725800384691234274678224120820745975146969264118882980353934852276031280733005598785944056826526628022272552439649931855996634093779945670022601944776392473672531219912641803983016676225257885894328620529973821586531166777291798065247881687947730833823491294500983658437632174189470843454271506838069961306520871114285248738873709050423001050468634782492779685420695581529554420943589086650973045425512484377988047198156054345005894394668713594748972867937145187438170204588814324406838806676935026332990831726044994836268940372955962325505869302373912518319601473100866630377131066721203149929548997084122808819010451854019519075143220828432013335613598709868028803573472562923237931146813808891337171879408957486571204958082379178772296914471000768454286179046034296776454684807624858965576251771327683779209321154494901913020411317201200488616957132363934645820601701660376520417405824030549221812168612727083525544596117176899367508109807560667101891741393075824952105172842656515106785221844732978227151756861501594730122701865929862988147190938057344152527352695329246521522110612251816965689755640322581038726293706075492393189741674632018772364171904960480647615929285838901578834913785844556464996524187799836229106696568242027616949867376994304624743598445009348805525423462241127491721365688760681989071621810901248834014182325592822540970595439925125187311592562789462887162291273998223713547271786076453597400175868434024285992574509326110467317443619127597704993658593306850934674495440713153619858408732548626329392846519124481905232485695262425402687037173433595417928890938680580710193023229385629744587972270205195083080510708339731987418041930420961345050552798337026065961781027868282407011250255351912868466926355605494038532609347535743685195004840714836364292267466078703711102908368439749899328648864504052357617833522332727512364045252463442808624798318654302562321189513607335139401301793946114704446708977487490799663174843586467174307393834185512940526144400915028464542714257132084615205432597088779083672825175203176332792284858917796167616676952480576719965589241202803950295538536618633643296545068320592980950922904569509706770752531905268232869514095581343223895604242840675022191363332951866708587303256064380085065043316748345629355581127479267581815235882799456357142226171424488460568989236115794430676823730346059114814164581233567509368889946783099728505671895221396813855682462960927952204929685401838481193311512777032270270275768044876831837331777616694087674104998191514738392176703129257126673695396466824101062751414049102082450863172069947647464739283581484260765737426639972675168682955518373478697770382736766476319503599011549773541817392204088381386582740241903847355859348882530709072923781825313331462095724676347878050441264563613830028301746095615930756757215847125817597637560406170864721304544947429175802459484437375474670374917045243017141523476459050286771874659325377672627523540873909144840500285462626408699237009740947629743551830191564839259020140907494504790903241628195006666399031896889352052696840999096644190664387971121744901539112741271321514303105279487963095613007702021121555231671927831726906181883918444218381355185103488869124094141756929652778683518136964130049730695909484851722893498660636602095654736614958230144668882707266572213660173832045786924992532547788159928082918214858243462275454946460834828208431198177089759486746114110443158112704849615762752627778152695650002132783942237633328736587121004770070068074866776850057595530491536242902932328922280651407951283102737838738260223932856255555161061885018398114504010983259309151273435917845379408254747863031189742909658702129234052207475917263248389113643496436374079149996877261845535334606634222123288581740340675056180813397849736181552846388496087706777213576211362560624765447517745019719095050931684913201646894552819236409199872594888189686098741209369586026733027001941839163514544652197866993110916662291522491791944281910339355041097697087462492165502370538536039808565587308167271242311620001978703552650131973078738002417507957602562327082245751684147125231565057660050955384521388797972310776274281370961399115799189197064631854325247824947227047969098670937645091085050507561476360744855461675083511496433675265328979450916202463160623123242163887043260360550271714577745972880594812327767273565396357226064245386844620481908151706147687397009552620412464346839104313082320339830570119373971194646842268899819741234420940327172127913086070322365303014967018783223093793799824902062549630089794916919905882970183903050552360697171614899174574825416357125383815621015227175413454864104637646899734140993336615721154786625945885769849897162152322173068678815856656255239859935737979672374251315469641713597917877060361940566668825772501610413955473689366570082097194661008267401991230169287246786875862464230313269937654182485688089776391990504785337965938590245534459912603337382082788789269394904283725534677268147817918054383773329172344710402383956407223137662308269761083974550857253661306235807752188192190779890182608627619950734867874724115496504147784449437441954738771954430284098337193311059646629917173120988573783173718588444314669860488481692125176858660115198112298218999490983409808447445881103415695453109791699178111415785150213894102271539529802500077351905711125323661793012228593319630025469098005501293028489883417168950494831211584574149152576276549228615800803680015589270143839151078426906495596891785463859025876904036053522624336794723590974030385995600714140117736118807882831913721144050693557727047970422794787520390176197164650031393910474923001201900121874978417664661406466006460179435481980878057704702289414359166451082266096933654076931558697273509228212908464383836188780967070622220343286812069132726351040662406441390264568866471519972704687073285882665577177867957112054208752057418293239552358076687932077591069244271376874314311068213423694970451412202630385200136345770250613964164758656986500586740832859968438909836456435105324260338666546109941532827354165351533929076516855984451714929891061219428856052875167885853524182837737714516235589937659568385010313176254153066209311176844532575524206447548269387953832259175558210299947169261031409762777373567358522579567154855405083428613698063827131648079887143763643430956860828787678781121871965968160827084614021669276900008512547321307567324664887497692450861881771119834171458553082580906541494383886074128981741472579930910644127388702507689277879167351645533357291793145162895945995501327458538914244850673050193106815337007787100396546293843570878789218508875316119545931294903701099704424725665899022860087292330217872797986907236323836854714035687872994228653381586743025789095336921715705160075991048035074324077730263393873341349636693102531018006678986199281762585627287447284446635846451504200041935676626353772195674377874473099207495582559109868473500123110388776436079398485733843090285261943632599124519926658263448426473807242067719981511399655148671905234607384485627459289703819069938656760596871948050496098698661895287289864850737847679042268669351813117430476621687072151184085913613332218344752224140257222317519351224653362638084788443789797746060045044781360509763654865824867224605351406781491824696057992561023787388253782318502644442401242297962064499149776255026190670183203664361873788750607491757687289998082239879159284470295698524237579533703582128809117318776020722868785492690292455989372865425341514034594490172857189271598858145746464478285712712779684890379950645999950259843319016027430520434578169177078226372835146480413531039002501153726694235814799775399224983989314550891647169601949654394460912335579708125115553800554670535042777023958737892531125890897846356750161216112780086235510435942727137821575817311345717528361001187135081375473969130129303863021177607931044003492729640369214493737128160730414034485596985792798475953456206025863122038024916287020225987295315019186100316605639118000121550481731106416806095663081403230617387253754588790795921733578047996883833687654742441377876372697745065480513153320508388030261797067301604522568518811694390580278793913361933953657248726114124847835886637991639007497334678068765438031425201818510237299910923143596939071075222690254425018236085165302479675234876777763216990055868489645177904580863546915460151179938985110585847618874885078511020748589925447517632660566691380325939102296115132754182237170004206420821106435099006168615488122026171738138932674249082827622304861906194500735206613541249760406451378268131775068404011419506171209060729420488316258066446162932880318046795567781574873350810792665974271893753790573643306629068062255689444371726350873553645489900514135152471592158802854340547512875583660981160076078347731933811247074443098007066485350135738493216482156565615961773727330072699603371678401682723773996792905912130822988982962493239879689873605422075218380201518421295036210872360624798243059754271912781978086451908959751947671554533025470838714364730375420831728633165611895430123761174872723478800026652892600497416837065205261060880157627796292326972622834881598219008233315457129194081981199276256626716007633477518475869317127712508635614204926209105541841355808652817886012921788133404981700343301602119886761692386201296884829011887728063574391913034832478425642947509368686648955107650703359095647497907776436197303522352687169330961235604685362384939308577413577473781550091548435209210888564689758036699033898118180608757190290977637570416236163867751294511933952156820913846894190555909644196175735534857408875550282987178931079243285344324119174097354925274326296250830352159354256316032089930448171574964708005660344568747883848016605014821709846962470336390602322903312670214107695234862507190207633386339683144162587183496468827473206257651893510387987148758018843587108369521334384611595780474163359160946436058554489332103454756167556996007703760092723841688610559561272095804714171945397121785459558725074233590064628328661039461677660893464352370545863325488972134105767344512257394305503071043625169764350297738307701264116497537633428209945859157789283716386473102102532575479499039638651995082121054640725764309908785150467517934108123758192988252324325886601198613263420934739395759481796997347513633988003631850366087950580580110344482894412221880531294365127326171612928278328110082892118950952577191275519912564404625863850081575168386522332808571509388911893007302255802068068524144457794742491205213392014951472519172502068297652455261351053532806121504279857519600122853352157257079031622466218038406684599408017510182513571192405947209510605337774078197995742253346814058385314197306982314463002768389770118873392457624061366762939744856636811567978067555124757509675933292107404015092212873373203471115426955401696500212197703437657705581400891252868410048862766567775287554993651845567840738419301575777969382272562688862114810488393263288144445411897310901771417606128724472501857492217920445191479586710175542635873767026323439477781529818909648953918323293021226122465083301201818176618336833965323005924451777186689412448275933760067990616040872220697447567769255346031344858776883207571313445781302934551198124810229036243955903368075050539848007960816619671699240696237810085809379903801178525460176027006571605031567430075602164706420421590727665305174409106613066507847704052779080532997685522208224585038019708032252815939416053804099904949509574930375328939254690815741818944140788471269775827099438982502571485655491234683719172047673240412725072283153258990488265094882260367192567686716441064331951076474190269881313559554880464276158730004748661529238389765542331742026857801671977717879948981505060598446207891542612315816807938987010049636551131925090551829412232727760074439890924639537731638425825735831033773880756128678109814751280220699036376379146681673945969357441215289166551599719164011221987502449716258755396550770142630535032079277802424287949535237364902351160896566964790197479576311663597046365601393372178499326240971987342697273430077430665665803169013245002944420582714834939809644005164173319925442037099397413067884043483421848375481434859864912375569336743342227671461066160943258146745554578144476588994508971569949295507698710248987595490723331627350371781154129079181199049540389080735468152835758694896221888470161518564738706924700088655145493025245064752084351069590433051010967155206430348434269650465936512581168088185149320259615281454703738783251487371920813476920683675823218404162559754174774987574990909146224861956313175423513971551660794081573032524916213453217064781933542711644036218785171715788853241503979560839948304806791832450031889490408067243353743741637544290691543808798830359815108136725715239588940857778906420106505893180444415052105891032334920952601667555964841131045075467577029672160335573749916343709791889850473766165053430072627534375300814282046248965263326816582503472251929949164586579728780847149680367255516765372284106820610812530115365404704225330900635333458600654304331592558674082684188667020253130371274274662427134628438332292916143116328945486534358228253372047329178886658260755400461738877979473135138963592638539625159387155285643047755435722616749415508512085697931467777818994623423126408880566854412615980978194268876650325326916342719643502605957991569098990553941154723992727695621817946679434361625109372190098596903105725639366758465405098795352153439221857264037910936371422639983486122986465351639696804668614324523844940510108195546285409308456670799318748865868361748652181544141359534241699304648224516918068618981895938479704095791698348778737664174021261249225987816452402838162442908616931540699734226637789349345911122383590510026740141006761324149724585231433810972381880839329670089972495984072487011970744564107692543801723028985600618068129077491650575972684838376092251727932999869042029515216584638256221859826551437734401894391915959143611830145758519941813864202317189414716258149895813899914793457297184757436038722282074637495513720805747295233237553386818303053369990017992221801049039383276006695449626597419671365752514842931446035905163848392245142127636176124263707329294888669217344207716311119384229964181477740091070988756644031921198141345066533107072287596615619697017476429827002171245252888319254097896787269968614167369331741219050250884383575635529788908907742651333340874864137398226429584390275335452668751139498631976395274843548555210845620778730192687429494443942366768776489971386509360394830874195672199032334497213303179610381595916621353383708041812202398186968947863774604046907924066807135989328144202949060616790099091553996394825231433712609461050444210950596117946676050416939334267517650736746638315190860676241165224526434791323120753128864969223414384931693269681718010979423426184250083302994844326678755780816253520015166371478924010550577750198034129724600906288378989926587825732211676589716477115926389085815663334764748439409058838489365893300920896277956634432962706709240174000446959023867767648151174632634984127536100642471347311647535479356568760263039750962346407913183814118676169360183450332380263797311915517365503571088939232829280396784672846491790520502076704578565832616252516847986796406262039999409582280004829947406270263981907711614478545167428004160136688704075137254715558706087605878115129359042381192483097483407396837070019476117447097878388595336014510334274483978083665351517104900816171311712911541700761175112692839533929701949340596267159504639020805489711428116066329912001113187587598744683034895346375959369111118431447981382467435197753869905951898698619697040628596447759373122339982349781496368082825424779236749805904099440210903139165021252780897695703218699429895418942495224862196345930998407881336085677367698094537490783182858231199735820694146408551073518163289517063812828584345027353051353594922808276868452400604276084734441958397021158226687426597640156932360133901789150922577410394804172581903071056657218999635906208833108869486465846372423352533857015777781089404673503082066329526913715430421173405050685382545998072646969746824258224356001257893851931604964491235679369837796605451615127515466130521761328430477253081857643451877519408158962859222759186011220094310459171335471048945358278301328403734387627164509843109727361000530322264732895168521026214363016245818389437533768699228770594028879665540693249867628128847887213794721652263872884369427000945321242972649929098878154285497790422963536041170743251836196005913481495737803895876871979202288867504904910251382591616510874280310911570300502202846242725290626821106581953257054497877666806579459370956496683259543386436406686076427993163528405938937815472675178039329487431374253080578765279625775670646440266130526395129796142081072904975328939723932127738554385230859004296666013734877431934166543419683652106485487849705642272536652400677456788796558070233124610327484128527843539598516201857721830875756865309722301835705189510151216856155957833525821891586223445689790929819795472657209369257786287190647422471224807780827297988094314659535017929123192481777006665347646768994580738196086190653020863917838464903072284414170804577874146906609855960700651891199455376101382770644060096467139251615790416264686422091127189636390458586592977347354594524714206537633014148695074878464605050907189224873817929903916244914721035316833729599651069267894875252985419538300940251294470107029147550806247318996969389164935632242438470996662557647320738717148440346472861440723711221777660651809596144379343634958439162734338206473245626265576925990860505602605207034823507484958894299042586288168025906910951052230767415162538753196115611299715701892993746942104802040370284884932215555050612848872822422597912848241077497120375815867536039996882723679136305974040839816681233063318554934256309517608982090628724882080233625139910098024066821597102998491981765635519919108944357036501202767003509562036459442283346967494328138728174161764312581324392546907808246941711532550900538366623228736584798208429110489694028301883990705966464412908554465726780988640149809705778343829200058823033755273677854475342243640117136755634492754805624360510462050105300064124651509411231512131370441939042738958297719822694249397935030734295276002501993653787422367113011195208142775709855166486400776084794281620799268779499669419171423770067071179788187809094571648747388470692352545894712003900877783216104903815793051207000790994292033041850063806027368612827010038784203336162996690214823943004816329686025174605785964850697900691012366665524106770964754642004060287873218682985055574073338458648017828402914025310068498143979233513406471999526555426271935149685004800591004061462068368200528937574935844581461119185649670205113215355030792409854776228354810093090152876479237521597998955079290791804591047977857534645151075921706444065643970876322882548532332929183057221687430439946219593997295373908474429392567439236057579797317382959913080656412015529231595411491251877720218721710065838834538179244987815182653846358438362103654431247228021596896577040530642403249623932000952853542632613896248526307165150716869070481299558413387718117208477976945284805669388409233706463119608366531877883622605432187168682460873966572582919512234269751839611809690116403999021813097985579437299015523585398549906788012983012479042388216895711436187522925925803303748386926733084768858682074367477608342237403939818299559026712917717503669796457884183076259542860335622828098073433471528953565692898221229750240906437709284629111531615467148167072629686288612013101550670899318618370976149259533056202452523730029793070671736532428689444259641731484101716634624605509802379374623049496301541341741849428816269173998384700923320148056114754667447453781071994920014542212949253128453573137068798614381978248201795496329638417273375475471291522341234203822987223287885666743255585150903893024236361994636772703083019373792549518490523401264853996092324623794045293572973458077956768352725409926696587454040066466359822289103981240717319606726251083429180226981012744121095148146656133640104254354796308348568167213330649559115525529564674852600861449737084236486777238257452457272973697579747206467012287714477585077558321842835215761514728882620468101113814011032968628587184181872532269007566433883924493321121285769372537337344092518174254127986508462046970581719884594909330855141791461905663217274189562408556861161204692743635865741026919587120605698462190282198022017468166386959912588369970311368088291367064409371475411944895629948041325171434540057142699449376836691698144718559543162492299972826091816641617319807597707165334746699324491411841059283092265714347055293698890951845299742126592585912003747256188558737420633242826171412083789043648883317859724686119242142179643438591167231680054640232303107670468348848164643349647452686327133903383047413559797734402572729759790536686993283096268422999161965218942994602488661831384255262708872150463015416178378029300226343966645270603685796472330835224199471437938297263119533520539928662779643333651710070246071773556211556855525999311457976225645853437844856243894777138428928899254483233458623701588017523120179557584282957505719130250341857992069166147379266461099473012504399513380062442305366474921257996393681598335805629559688631350173114303815746157343485611961638636705084118947780786520902388544167747994412245047371676769267689165824205276063228826151380117055224570322449050441417400564858000682344784653137586096320363275588940892501705517887879705550600422728512764943695037746912254296624019389008594721401609368877805897132023516178801668780953192297302246735087722853625539749959470398658607211402424769247638765001186735856498099295629895189532678348914860206829724484603446516498933283414791537386118707237404502460645160956480572123084393746090234251603478416148415401280931343348059405234506704571947456442446330241082855752888917925799302008717414558672684250366254359186462083954232974530165213274034209676454088257843950450433850776324098209710953073897476616756560330381335071154025885756253830815906146724837202078194488719212782435444950276132256436344447676245292278980724972843250646263464513869847813650456215070351177120345055806223838061267591351945456644236093932027977598727116614212684310971197019433132049012461002106780804953785008705830735044611985569795768531970926276917383231763045415599761406229529001278820218576088501467220360286333621265103944727680401484535260974735195906852633145410918938126487304960590285141549194955636100695662513810883448306117923925493078348050617970601845242358797186680660050666118354249204936701819404858708991760638695298798957315461558035295317442042251513992801295907986136475926752970078520651776887870116342031603154429257703832499743029143577568925928546345463882807100157768114211817980618164067803823281100245407045210813205823279827137833872669065123125781338676642029219448335675670099440765450411558218944053755892435832770439180167754544511476820400285755874156860844577596776295341143775727270353207297601428555228448836344951798673445243271848638078702888827200470500279418192091811671382304542144348036835081341559991219403870069507733013352857040207442593594706995551148081121726517594034653280307413494932011109651535143520234169800722263453510570193754884126849701123474549275508536490789927444772133988945400256814616864730245408851737829840412313204285464544580922118158026953329875776645484670794826970413141343269169843162027749995087499332649782655445870933628109165848676387265307360711707244306684393275092897825695960954891788029558257679727571873048502985176189106110708267420662810623582559476148279916507716936216485256324699100804799499159062872738292059303283223798238779544093486020707095244586877761830507329952204014393918853427156707352367736900682183460607484018827342516712525081491512410114006943293444200283844070749866091689083050473149199227098553550928946170246495047909348593961047828217867958544026181967959382462739709644648493228794584119590477094583047895305700558373721843551954340936487792266207003645590035885532557073748414965773029045417588850671963500915303977784252041308159837438854768843938918325092168070173197130463302281956431713013724422236054400313729460534309597299907104996791118789932328641243256350396549371704918364110615030032210635669589991147347201545635721781755454683882254649948258395175141578830430198088370807405224692954870547407491173319792077364673485451764195698921059011397477309793281920288108110563038546366286677297576858108169848760133615711586159935748210368253111972981723281681407801690992982127770837395895630580551154237752576575587043742707136543336270530267514399293830565373408173231408961593250907561237653197816254867248398668653183476692066850220317277221672336433254376662906430913746549124100602944190878447298019700080775793912737617280598522311041340676165667069437853111403208710962325312759602644826317964778650196177365286142425748334328622929373651059084707690714036792089594385862117549959853427845256787067405326302493626791538209647464092546329343007555414243296052167644472192114943519641163543224766730635331309460862288530305362580871619775812525882840793974155280585793940032845051154362397106524888931899004286260056126160430492378197793359777678538109514612402058793459404387865023258566794462597577757890645146045807230126276805952640305745090284636115934345334941621441660868340327651360357457079820912484704641576256135326861858374944201465583131684996410110590964803299048508720278621645906822277862697568679535372633478690970823656395106380730299419402086025472084197489353683947422843962265617975168194885631174716758355357875481748207108075495111135835361791540819289688975862497577672042141686165442274199434081652791290226447409693073210802878361132769339996567738457678632148411360233816636502660842589739642165389257163455196370328346933355699493246228858118069026601327427279793103456344652799397936703210842183495872084870934919979421041350415552077219365644394500694319366272279345800177251702466233041670595335970548031649037483826927979648575924846859971362360898274863576621730824651074999357690818018077385180667738246256505068628535676646939273801493116862374342194450826410008973529067193154482865088857510661169033977249272743799580247327066186738207413020214587260578324245243753907446607246962520342437075700545301989004487252925881788474816246414824829127270085933842127524433841393238024493430209642496462906543334773271187931250558616617882840875773329796567305602956762420107405584287600946846290139770117382691343478690527993339154907911978885568272377871392251487553243096025417905716255578835837138324194990252762284415119286194520870290570516748583714393687615324446719422368310029941778472299180325020149242581939412449256145127019628426260342067709419267070945139657355473636540918053284007298870329868896928616111242049514176690010355430624405456594741074418544269005247012966400327481248909266137749355966308714409949759933660056875697239515648917243133070419706530090671243029312492903248396283312562940669013949161735926731564739212464248746275632682254189580030627177163380974422055025836378708744982152553353652147636725684489526107570552073197888069279932863739385224855588651157918632989552868209815593535288599387082744941628566827327435386161851417872112290227734250293917085184530313636729613671850346135345524555106765214900081704292040351416083314455684546181703112441791507635801842376518844910971612199666660627242188650211684462237094570608094117879635601824190176789249038887583226719959645831675868109203067120457136129350388984519597941488559944902644201744377101595531387281632955737182740833008326327374747103640238884183210512482584190635132954637258919369544321048674205419010750958662968173213925660467783385298458450787471564391168074426095154006424434276855472828062068467454030127416915162747758269544435820553514369459879404500742485227500216610845025084648814977749103773887567612688748077740145984797492823165312221534844650771304362172809527303325198076334272685271623585135396164181127666818892353696898145268310452608520128994766897183067363813219281564848727535347117415627002083705285924104690126521763681156504227317353569866358572295204460464592513563400454270805246821259348397556735879732319593113847576346695816229004274417753681447916212385983688757215584913155642384093681423083385469049823069073570150657883364816460490416618155374363823808670598394487044991115790507489026248567585933633622773822990891583760117717958642322755443350221329628495898940336596422183623403799710515236850787721459057463177929878130018389541013425308445611990682956368304604718801612136442934802507188415308337108627707702338783045488796413861652822902943861291749871009584118581434565610450496302307080046408842175861640844072250817004764342624635472770798158881568102178191429464827598427657793877148236201387559355163977885688706020453479906293760547234886364633518352437903361489061949093614175138096746198479895225625440323213301553247697972289847464871509194224750092234462476165211102590544935967562566851580477407162916562259050609241928165132819115109578533653204009556669795821773483377731804292265571903316913649759005230876361710967761189397254342196110505231290558020568957875066156517690712871574495589367253988199891355066536936493989652002199792136026989063334446267418645130052231008134245717570459796273330535735172778813492914745437293177272899231976931822077545497440854081029101717082557203209679576052415877584091784822553113127048495210156972038861915448124361047901815613664641765045057858747168782643322855796605094951798951292383312147976438986682856380316372923672938755148341284059103489106604952456730496669816655209286195931960975028106012861031047388987178803192393710777368949385231640589830630151373230519928216905523956119509348142156126885893597394528586443163920428799665231975673591474532642624624599770401864104075196283610633998100150977446585153206540800701230935527886215628376076156813178765612442074148102417502311204392900471356414704865496818700946717173271543199609089673002418030058016539404308851206034684718825962976210684109264682831090935017852983970085378277422465040523196961748645450614473523088104176777699747610969751254761961563267477418851604380138152888136837535827659177959548879076515020182311417835694629668545458138954026768035036783522783662856604530986895199078729466584268983683536185455983900891946280135349520576127664074129095571301483466152592370686186851436972457405438421801248629539312442691046118225379910351037602884966858337306667683518561093183804216990071521443949597692270163461998333127267335870919864313574896425087158717881572859248919891103917486813925255235230224119024967977167449423585414057693080242405481632236822730627092873001423576206055118392978726568805143983463150097842323929100438083430882214155259928962548756832557945860210670605807687266580661034668670489451341330484591575093553516506739901119570533911163268499519141869746906169187904030130917249661850294997552192689251389200787428823045714305965652754101409403484766854596381543134509636926523103688860294989651171053892013403209631087072794082527427635742197990963933170593124598591780692936593611718727377336560605272636405006163523322018798545176688555206178783803692191574369220112711980855519232748463262473262184617375701105146241356103118716145461629924006382053633988879881923852452749901288279456715799340194035811120244695672096882974546005048331062986216108193093331826172439209646098502367092989831553084727762017730334232204487127478484573225630373698632311614955539522020915071766509788068617314876401009146968042496841216799130042763096910121032210159841250629433170963893942784369171095334776268464136712351223978627569931262968116779409050040638274932140186589834776868875533792467605470328837480238102105681073979691334729386281797984441360164754910370028620057387243968079539714066958998631916120914684685842293943158996804454406183261106654215232644150341147865275737736857073307445540357823398599402901710992676870468488040578887528993037387913200108204187132104143590582696798290325168117967263331393176056089899427019133711054920546118582982588900849485193961728178325060959953298050323934229213134792386125833639966071986702571547721496488366306939143983685068933386716569585858531541588737122759864173621995610922334185687357820990058034408137447298524980087077357797032493329906479642590618967973405547365628302923575684183518981677428769331552024913847771461137919964946395739780703911495719679915100449754904591828531801053718015411230063140393225138068529752314122018335390344116504951854619613252447779634919300958585036382282951445632367787382036120164978121092802929857753175944423486204695996256217491400163055383023959282508441227330299316754851442356375811387178153362508899523174071405784081793208943946967451258512564653704413858327553828904865298454881444775968314292589561586838538557847018909327726238364502280464091960724322959339973436888297605259687156497094961523673758195330285180126193457277118858558805269989930284784208593894416571464239964951830853976256619485909897886704703971589336521409459839802444781521726091884484743351218655279303561238128442057857299829875712434971776444895690339190940418862328011404862397163811038120458666232399567416391672846603813750933810969877205512305378512968775857457481063691923576708417531694082485281237950241342319072717177099101498928815460435982750202033701073602605757462089855838660642958258476065951642034906168282926402120443725379359461508962079690862542147660292739176159295260131985982588988846420265726898107068732929745708357014025793519826044527623802768661815845767669907389994992604120963255584029743810275570618267326083590416182058473320914667098088914723814682977728523821419200472432691122200636550926148370013758634889954002190516161129204501470221884905046565780325800752505314444589914338381368885679214498359543973441871884420586495602364393388986567613596145082907232539048953880184132786953707103907560958819548853879888529784669269262364353878659490422846158229192987200300670580604835986729273006253932779568083373073005521382651246542824217857441011633501420875836078163650228975308122083722899463601915950851335262495845557473928779476202910852345551528777904723206875188050438372509839209122952141232506405324451157543776822113442921238792115993493784081594004023866379749290098191658002801415369279916002829490841894658073586019017772766960771605969730444177524216186186155887172266248549624597207210262160942490495486081820712120951971632799696492036815819561214225002574632889864982164487297913263980055762498471779529014727088445931932758192157644270177493131339636581548996475803734488896033061673733759527052282448062863165547472115391950678832903912171165886094067195062429124645026859893415517569648828067267404842490539125544408016764900151188135404067983739682074395127686367925741518325948335798844712018009216184132031096588713544238126487610576503887073997802222633433884009138695966668442040011795376333693060236070728517518340169318591398149197411585659405490363204695067968573711667130169282594497778611209475301628044052180806389687840097974020774071042226647430382745835219971528788201306842412081641666519339429989866656056654248744996379841908038416714297671182212007808110892110829702625886914022666466294275013718545537791595824094050734562523652588639007453964728893620458461284690971347535875870743510819870604151916549411454719504953919428349471084827433102198671802378494241048022708443711804604034807397433235174216425227382658482740286417056018701173448981317699630545526835836831572139451976580455598031254225413354272748483562505019063356782074499823985876087571162378544709840432169847840872573651928979320729657048734123198844311942294626064273512818700851655832309534177067672932957184086215315108450604647024691194746221728553865126230540725376215787348354542307126042097721210244201324176399508564980793971139548861008213996725311466038300997340289348045057393793009241020738215657051437317682088261964498257078156731779570886186946243888188839112664253532915922949424752819176175266110892798363727478715771289622547946636872034533936127431839237697683936718908020682445851064118586596286037023311850443564725621203884636236287695920033266393977787730021471953719857106276829758241448895107736489124045295641890618676097290939116175533783141817419406372899753726806917091066119260874463468254170561814838771453744262240415670982838196068003181030436275409890546155126891289201989619867763023657580759011400553137948870858634332840303627671194546385406547134541304687496200522324589710433270235965831828608352805293660571636427836157942259726334189696526319963513376262330545636901153056002238139708316458029874523655668218992648010631635094237780690821275077289384514456577886251838392863285020859411861367139621046471527586967205168780525086434101083128662179608926319283477414057912186317062827080150251729709925829658829607584653234346998001043564014262473262185286894010672385082781627280360365843375309612535768909035872469962526566233546126929564897344333692357545577102667958093253235225206363251121310359743125341183891675293936297849399118303803736133664299967652635338816909659899269289798773583705158975853606457833687049306051537129217390254177851037166808501991321464582736236963258666476636161160407365422215784854843723810813250725265957366298528248638174047040950514136933562192675459195179055354713935659312842974801237874871330768861627963445036616669162115213479954629239937015713496056051907797011077621944028669419183662542573641780179501615881323259819812676301907163025006353289444207438255745916435137793753518528403746687966230727337551116476431318447996493065658662439916205749668304673296651118918464034708035042153571181217033036677959318316331320375195659917029392736217213819815527960882936809463122583147812985785255381556388126294651021389629175363398420380465538322807696366339530396553168347814275008410681461963586615581175931484580739812208009996116287837271425588060731341922087755037179349559413544188467216984636997421203045187070402705100644138082515604783893888171199061250884667493322214199874939149412519122210805064734079396979993716424836397805745273667153346526812192499646328047234188131418056666872680246491949630052279254953502969704013509896777701650832928444113896955326376062330061847842882570551117851918366445963447864349925739158306847221834715247625813951604315482916870609561808689893934094800808455332143094371609421275959759782480370301255928801049331259281141402221546717095649532824076848938618773580081496865182991896876267530393301649197435598893002953986710390292240980499988227870717474360309699161617306675981093115176226731149183202548611714939124265554926066244856749266513538093260278927192575801894509165428415738694455190682345899330633908296736931863019807649699963026650467945648013471533470907254775851709286349765761871089500382773427034711405094241246446612717794294724560901906625418061140155428241208893675172351823806827504708383514157821341088446741605467313351510474464894694905945904968162283762983348033741764686734597205667202076661765378672596803207620720356143283540129234600128199450373842492232540434110336258234806719009061140598044096320436635913774065208664087984049564302668022151791555931934871345139967847954759991895055706848096397854322692091309877787503234241330008316777404211833624602004562599852771920113722345793037146849359388285700878129797989294807566507552489503719043948318320243569867424450308856193047479998851086251917212265429624040889838066580427364122660081423540055091449667270555697993331965663181793296066513080076653596735824069301571921490341887331010039380345705908462112374306078290172580866105752170996122978702000361242497662790871941983258922820392349455065508864500781680197512320173999719455855375157710525851386966431898405970150616040438827656095893812907663206388388969039009535050112794200639512270839265431232239476233976889005338800146863621847605869816225955609747473633108008849954827815575634003594892477351608080904519307305527595736195264024894330741687201377442285366671434953869454626288823829627954455180120075681725039232753271679028096658678559393538729262042701286793397167726700434755848047257235124927208747169111954038222249216846684251252479835102575936971733083593827209578795123368971855451294256772531670693096163421544085556524854694105176841619585998204030079310679506618938404438824150086819860397316109603729727320550766124932231641857810749775051747282626363635257335791340978489917868023071288396726522040003052593071508398860537966921352213128331600272913426340666129069898761554842781208477430051343545098309078713752624906391849334749168995345094033398801746529631105157830244722602030395433367646515159293423285380446101630402274250500975717204608668120276878536602393574540852931708247604663968635068968281317953699815941671775795678210361519301737894151157908683424743857937023326350363649679446906495378560758390335406999657108869255029374728626819406203277819418674685710774084778629766728621356332552116500646777250934230915872199570066520953412606122838258857486760726578237649097766690518461546088099935027208393042992029628565685072206370952000254693664017005596228221326400089772700940934524684326923511211564779652130747174130286405814316722122980256789876106552113586002683097270181895241271298929591913871029655098207030347563725058094459406886589826218399825313377254403065971078918789379058788228804059167814634869287328952360881383083110363399784886975307931222639320061413253221891649238798097712840058232034550783896028738603067730166689370291798254037188988499753590120259404814159943198560683610019166899948742713783325759725003258856685924442931771247326103281943813124455233762729242272809232531662007143483652472069106794122002576939281921726435699190595091276353438422627157366060382178938226870773095967582871940512747675385940438335714012261598819589412527937319084797599766970267751197187335035057786865156904459811843697612937194717569076974743687206967990413790532563188129032951127342735246145095866215256153771382027790374659986363687829207437677952560667653016457542776874769568065817026371981221202609890404532639300755725113566556608093141371240114453974256349287044759395512852627372375848087624101735040506857093059935120500623246770750281975252656699400129811558773873362048953713817332029570812642852986661053248209930982792589942557182039122529277284451733266776855347344503096279371026694341005810025953140706120424086030916010464675420137630424949027941210923509506221530385881783851043318066761237204430845301840131629561564534194661866934864382061891933774360108778704402031216771102943929942675637479533446057115343536239909660344422569734211296904615400062094822485847477388496970762592335925207689094815160479003714002672974805734332008959577856617575055750782250187824464922529757829558699571782848520820397882570938091719525289919481245679164444934105033694710800291290358878484561904151273710510098820904383606698102155358633341973082424413545109925355660884937251157309304963259566305150660952288767877075570148665394031986057107993586232926728265262988860690984854684573108826708424507165303182282377065758625163855652375549763094231303057974258635056234327152190913322151303599160504579417418352290702344228980131688583749936296846142091494460554602045742755322418102677573093052873781658108680083053998435940107202439246342567397022822845083196820174698830711128419629550971569297992181776300433313198079505573643423159460584836124484346330017586017837037820132024226575360523520005250785614934610572127121143113429402411509649557211078574045471013008901915230894726650706072407457626776678775186001250034099102981642147423612400350764163660802193480719122754766102590820607592721482148366829395773181188516937392979495867640480848344660783500417736058819818135665970001226471008911128654923955965783490694748829922444962324456461315324010665528553098735734992143783863249267123207679192230164839685668707236803616422032824678032345947364994197700401467662064754772825608116724703117505218611330746702622334845975071532477186143863772873470728075351524212032384389411006369832943235326463643067203467475995903605806382284353378911659253255297741224567361972776148766651889960891200357535079297211553588919394999576565783419095711089836036690655557899740284948755789705830731608392204829648644210233605943135181931781389427806485930006486035189131677370339626652680283374515044755332490058873721865760413399977523888730140396048653355806448200526088694933424142667465758983301865733927511188282054752874233736862687900292367462491677603825202081148000874531692387697619344886493308282674394280229205407187170155721504762906369678630034830140357256276773660425683657954519366357655266719338881482969272199628449984885136910481031811964396988493528990485155965274070409045951181668000075472865493704019842368595577546614261103991984545335166855583636338031663596483241422882029721635655490087638586337877209662451278898585998820716535460763198436052120231459096287756093955718235116738327104562588753297375768481549930831887299081005436197946670727348755014961453474308470518323022738919012095722390002781416777326500692201240624042097814507995081024388787792634850472688321874792385318014567952884490330641493316442335513825064616054779117090849971752987971834271432106102609487385211850927673960349811737327224437034661216224634463330598379167012489712160762366656564707181895635374174676669719911362515269834909435125013294400451801241100869273256581856872850681432416588726935616429869312282617827246093054630655458704553941865472021506124795955797026874188044909083085545540060643900320267325679832710648862492959923280307134238756614116393866957229297868508477877699469054489127803292935680197760886207801161132439622085482786499412055934357188014919773080330243096107289323911019135052154240102451435812182102193915095541153432055020271602616527789549653194529013305897702699423786180535439740631440255057384031756549786258465567555718394127320446357666317706292621270405494493947998516435028889267887505197742279700665270407528738026621394745061315407016759885947902838421081450658457258634934232186080040392916234372675491920262555684904117858141009834295817671819461492817918514473025487598669979896659823639236886384904784398216842464084495250479252398625029957628870600634406898142787673520120671314208065527366233287928622531634724888431244707504241387656857549173304252524181582991200386246140755162756505304521742954229229956306600859627446281032810590973048995987428129911501901218575593559276994012099533070430773633262020512075638623122907884018643035172470212386154584926779600418858362267129172922004010831106671233697997871136228392999010155761939591046146136116612999789339023887610008825235990889669324133034835227189964749167128173671938642337018056755834242240828186430330711979953111667374196905072790788475064871073946271538100291081607448232811166533619838555191863267856337406319116705463299355263858372260335479525508953655268330583206893813057825581162173431241247688948452517418994985533600588819457245952561567751160324269191499700310568709656763574794527589580902182982112585506544156076506511772081842081846178161526090162142515402325756976147670584149821187967157976082971161023131292145487097471712018492726335176612478580079090791420916531313824963415760619284434460337161945046595948214340467961882835233212705268886604477468260770985375433392115306643068484856215611004215760331324454843399514174748847561253799526153729427180476689438781888208786418700397983932376751976254910824608573578022084084679364116956641654228585161454205086215209813622769791989563993795440816541638585096669568046580790988585632152769569973144944941165024609016818939171713152908043841045613067342787891411409683377503555300767517537195337951199838341147983412710782241829182400527088563218711047095931129781973523856096770564931493678569468917224781076537198184360196917514343454879978355060124263182105945478673700045500927060157425452866425931831046787615684132957550192952758432176662977766673414776070277786399079253467638097530256064755763080459816085129629206514971619732061915319096662550881470766060769565485746014450613015165439567318114371235429349835548283589561842530959113339125911109280324039276448406481405845959291826239273531197162374173717086229484196064311165782070616740654759211401795971524214426071950286971551447091368021294889478117593051837621948682151268156997167903248021893746314149029363838701502753252690912792913478960403300854211564780036831102594381926202528618728478570253244330715580619219145837704172725360136083748898126134852312004317366038183359060578537655176748975289008861184303507729201045515917834534775679107597866385184434646616537026372082214219767961128470339310945207874353550018941060771070762531181190253842662088053410135774867881270328751405808420240044824145834237468274763897552223643406747081309671319092664061475487873976961031749071533722219923110319493894171814056822846329529487415732140168393248598537946257086385658166711169656932340518874159589163506617977554229616408700454540373626644960420059710813617381243423215697389249997962134820512486515990687665059841158595093213751209437169006705229156652912941242220718007091889913924360858894438527530209839201008508242596709965350676490549727459945573547290964344410357204605725423003182326423312495629819809238495811256859197429345506468359392228231011834585445942624492927931691517704531573332457975554617494211388077732569467771947934577837196021672510093246070363378927633204573693248139368835759996024487961520325268735909021122136007857328459973189350396248356126899636366724776844536388717278171586582848018137888876751722507179364843057571786864467601952963474722764745374945671107797540835757142600870919418573117945961950994371156517723814206182317077781816363441829596943858588345257976199544775786359359594688471679509599177793999083199821990778186650009786706249749746623542446868498614527057636001164750946333975287264074292553102883525430132566630880644989046588079385034386252926362707101897381449174874245059533427025465786001273772073033276756574572508201145730579954519696610275023136980049185846261723570957690329816334258221131800915616177150604333761259419214782117932342298462192669042355930850433408702912599223104215466977073632897540313687780262913788906636596079344713552659561806498677348908517007121719383974490094443829107898219638637863050060801701882802647862772294970407609517817002295867969434891517918549657914381265852709072700305520351011221088891274034492577202471753643330847628472169094510204976767154059477412046390454934471024864460487822780487464306233547468846440696697478901180308592824336687776983005908380110230798597190572924604989878926483819811469733584782521896904604072561153106125053187615187704941294952117452605918463825537044606432135418570346176222748785352812882674086297600479853820097013211747913539750362358277145916672052412823153706163777158036635655199060168451124647946744988470938094254799488909463787026929757403177198263198584360310587449757762711370593984600125706597471858844436595430852618680797161484694868374420758570790010484865194974962057649838137818637462290909967177915060887778652914987181722857334679787236647347658651970051823153389723180099715704199080630248308901520362442286887268059947032014387060493601758266678669718280382285769601183955574269041029124390690037225046329312228119406407757231256209028356745091783185359180506113415017690418672316504537907218730177142033614318321980587461650726928925895583696010312520528812076281366039976680216517360372922726045259746106971176488780207540727955702367627051944644520931117344210780921740662134762608592553218561352558918705314468601231523843647579626179713473765446188328193979430221977464967303659556066670064766950221194792005376136412867373818685277392024433345435288071283417624557760138852823680603764654184657311591468747072719961219185021231955835423704270537402959636464390908429238056765181069925282205546321054929534484714241168638609181872310969336150776852372420652249223268383405679445636366818493905345408298766929660663799282211112679366099608766067821506993029959522066852489980377584906216935726392193019893354290906506671382313132168112228018014400734345073629472922220756073904891823297306777799096396288428222930609562377479831308033128771871005939601582939263399522497130257034518196755262515209206067520868714500776004308401033675454396866130078274233897841016904150454032304320302977513978318369432184294441032481192864821153595632840083302004733378057478645656682947603163188126294853237116258005806157242800973661082859190407706554500975721517734884774612397712891919610417955651551457589995638427961713767286816784666637375618709582157973077407397153108762704897043378122155813464753942999784808838206631261477784338566535160004287025270353265313437263365554108187654649509850385854889853631556157563358143422213608117731454316883725177211015051326590780570207500468157231050399045593512944285144674376415846429699907176763883362242996946340489551080921565787473911859066124445167348684045503676626055866618781599766922951847635951724824227667806229474165259865481607783437563467924312473092350065392186129025787085200818470304294529305626889870338969102119519757000476435223286367858598195242586753799460109502996195328913293504008527823174564676381840991227416165618537125742296940976656616764911292379866715815108806651750941780351739403372896205359978860596085934474626805142022622415931312901845328075674466866753624682889147288295341675878761724068042853761268181933665869131417344028365521870833621648937542427260471337003266284512404427256573974102215088728912120969793817647432051519304103372434368791952425836483034641748877112750001735575736565027858559822706390826299282337282538940210861157977176648872524918012810822348206839701668008744102108263292625794875386109428889582985441489552867004812230926382766016368726632816008455481210659431737844347191030181289049260548706722173861106841158512585653810579373109613725840588266767028981442198532677375098066581638941666711491923550103362070400379637019767817580372157804488298517372040895720853721970882746999329943612801819676574413501696527337496499059085409210887691893294943774122026693981678205096199710042212886497769700657743815264387953299504409996842421892716875554451748407469126709217497469024568209660396632279511240450035826359594786771133162188307224928922681006434508281157552590855436181622730485252043369202209989309606172516940695016595734477234795536247529763461055331899828673052067024796971230817398072472627332345902487380381504474303036833328158506040605039996687686579905792935048546840672539475725630160483869690575350328629366296889473258787055724431345129596960172001174356402877827734903883152143379804973359418761640334114135964535602712299255802790387078808003914573359016789574860318041327728656136406431404810427098136958488366749535172566350063526697768737942447013597661126801137643041316337029113335161193152016991572240467211276143116917474670333481975100571716987973429994544628745857814942011814960278081683351073168475795752512089629758378762338940209635608467245758820033846965892006054757427664689536794155087359109583796931931856766929326467380688675339734482420667953171005511353894658183901297360738071274985366724466642961924018800447207920616986928048082166777803871306119522518258626525687429437672313639101523546349865992351035266108482302494631907577055655485098609257762806693150555964631987172452086584641836445983484439678198608256246525406037739469756602032824339643386704806768311975428726952955876439118739030416154759209981459304112764574239667354557193522819730120773870480130071104226190194072327332931090876080018747827454242402922117915921593130148454433209882244000586526914385415206998771120753371004232032074030965433283426190459952317405386705281869833633841744199070032841019046724663677933940007726095336855127706201426460667986391889394568396695743129880245850321430351597523920793766539269658113435080914144752979064451964198172107398882672021143280546838741335486915676621047486058366263297468751439589138610826371172142367460797835616473774893004199402515046719952781867300081066254842590687639803692763273644240813791015093906417113186740118632876056077002568083524642933521386940770056084853918295554075699219526748363463958983009647541998643726456422356238856042833091507128666561477405218624771012222007174393808195275688784602147759152678799544345470510570146920922774356183973629613919299122746378099026015134817530373993186620056473020854802902156781998237084942276329934813791796781507076687906689967925496204143097812071966158814775744889736179626263095125673458776834474917522574996901463089639729601367402051857143734854519086018724642552672142890524520141690486858148863447012243829015673987858175297508499837737164885367623850229421151514984090850240350554915697870256188526414131466546043148371658982365614673681462235958067228478251715780507233682519686553979957033057266734483949639191258632528780623557900671108197526228382117088797030977898518791652409830873138611961126457625534823541740034087950811670863796171356801544548994229851919618356607937217616723515330102167039727546143999083649691589515671731543597099059313575901784252943036497507867533070737623083405644012980280643633553469462975433095299020011612697904142017414463179333014463041425599227557923135769521513647270542451135354790902362076130794796441425453823268538222547920900421040622465523623503200747818643472700404464765695244049703458099764619093713950722660287241909146443471368632025620143407408923781759123820945190629262665847453979753552654559049269743577807303817137610131032189466029081444753056461508020569305290650418039023968445795555739491486729336163186561827179979607816917143918959720545401520050451547670826117599225828540359431362030461866443919023929713943030312532356723348935448627247476577238913373556799837873106527080693615993961555669420498442359186545965351197174897646214866436493309748650698930513217274493364780436201478107435653869380274146207719403447906786779473188595525939290235088751047478819427698469718702714223667082325291320794011528824420570696451154175167124188495012342548386010969973119917674535502641928310780429843234191346662418160107071785394244919768685232224753546481585319165449115234846838611819737121997923314654448185772838359731113889269212985786335612763627508713506365296628044911953526571293519753785379435427962583887176024455243206525660245316032092620064711082911528345517278327236133039554874479741629737986526200349999537556026911107583609560629320401395171142053077933020038503165834880975203269976393853600225100676927976445652820011559691014758939667031927858566127560071033111577429098026159181848568557763465538379978441039086057981149451139587030561857028396377118341765574373703477858541902025019956921681394936401413682144389528441102326866237012866825560563600878774687838114726719865350599301448206971067796985378162729978828246022390576440338658731119972423501342825059437305819155462078366267777011477672937663157246732071145636568538269618423962829569470993801986118359183358568355526593228344125820357996550392693517967688849700286110092701943036215690109648683820428395431227992237620667230988374585999900957312757697451238172158277033648893064113255036988787845874206997269436134789512721839370384531817603127780322651155157061618873035787864243551642906968373934627731658675121093938322183629886736617163448274917013522340342769438267539121045829166711525509114569813007068101325950756843744180300679203050147550277805154885867223261683741181375744443967324855029586967963938349399190904495301783539798424902505351543360164019280590158739702685445728992404723141671469005849125010248359723202595504319065968684328978035458499371184194365767560102982237171554253656503612405466871624481306844977462387240867410458234006006302363123131639054712728358217352844459660240829166034416654832742980164413480541563628677658073101111398491912909832626161351614529236077223809654692197174043707783781496216619478581476794934915442592540213988855124882582376177736400804736881394627716815085937153300840447018328363155471997179722061921234485457475797832732562149717796115630649188090410338101499608986968198876942030594832503708993112487736643035114789201087089441978386823791955526741901407648995938086851578165825778008221476846759502714994720226268415452773580383109304440747299532927079248203667533575780046561139992171163572172173024232981232040782202458443221860397267524343700560340416987630163405650422823795042314012830510167468961280961135215926000042309216307403871678507355619972170635482674804170849173956927837417741118980004741841121813350694063512201662080197221831069036794807860266026102207243138207825751685669735970946512627640409598532624643090682868026858761060381477562459175689447550077208161375390360197840267617076919352164817050899744796893586001389301246905030997908361703805931163650580754373191076512004920357363046207952055728298087096851026778306448232634878217160070522277909861303986905321257630226939725120936809414489464770962105138197067376248058901006984607877869381275382815078912322953443177033497299192879699018548426670176289282974341429466676674399169626388247351629101321786537655552140165556103033535446271967017220380895958265423252503342783645533777548786616495418075691921843813086555412381695347843812593341373532749393574049103962045698303498977687086404382458726205902309796982863729932185169074940664212852852664958542397502821517578449055999761377292959553208772539373034373144968064895135555267396249735466085619596635168302432463380729069651589627026524026683789203565248753741804840321104197975889891760375713986570990959326071090942459586547954713267158252317183626865529382660551336418803118663782704778224934262725202145071598947922067245611796231922345314506195612028524227649413886360826188149028836062962886944834803097605871805161529818114196818390725485054022953037848514719694865355655899817340869922625199822098518423923532890558179227467133745269293938884721128674169352593720948041804393335579583348659961558378039077571097826365307906074784267028510325060480102743869071695663889250526525052704830282707463492273723237061829709964482161639501630584865422988762737247519536027434923244248626326162351755273216693554173551521856204724351628588144477012662093732971224175203315805289927370404175805491849037816870019591318803307342192278159075868683975167514035291763973393619703673934081852788671960702711459240930161633728143988554141792422027773442354524898420453643161996232812668491222924442896710797685867009284736485719478598269304094690034796904385410209992235748919224805334061056247215527885935839703078818278354415337245999029297060824774524591935575632026157493688428981643047186865185193605531283278705715644829876736867993804665013756145140633634618213132091247387079517578165622441760476131520976317224250700390964617243074585191770812197696947803070727190619504397944333910643102691155443965419865371528352748342179950455923388809537865020788985318021158142715851360333448454499690099297748511818920769571428300125860922104972889613029004492701147351737764086888439058570819137943628199684973070760524609596805406606751441305543679305634891437281690110601095998505498994765312897072472413917223804224764103738362168981117477907041022019201433211641097562977675589277610089437848977706371450475922440843725699766552600247570860154187342698338767937142877000174073179693380255856837798636382652388772683543282596053126699545624309187560848534033353130107612032467661064100381210866748598621616828635290762914987944048058769351372712753431608704643025029415847847413989541109693233153150206271201479305118763565166518135085298109589751012429830416744077360062113087204628804388752026911084431102009712172154449475580057874565535999073956706509602570005653908876573292406890954962453155505931345558068812177559519022861451851368598343237231120691084302327016064297485833406582709132621711858799919452496965973183844875587600519860270741835203427857134068389711360921220881444558703471229246680301145742191448506509604978304582522624843312485333330559619111445779440292556363936046229516683022043224819482423759792498598362036862127066534163048835336963015605364382447272305535811575806986410405253913140048706951260188933122713261930020320904124158390284999090658782267287625425763574228301734534712983216030634676158188752434686888359673761970955191124327193936911327225905229149040869429894446786845000130465558656386049700405939431454723761623046102836122815565217792844121756133720916033563529364480619993184168149394744134925820266462445719278074292751881835819069786442667124896374738771537082792568391658089686964439188572197339572894278597133250562333726282634049928186711890014366244635229401647870709980221072494055082832327907405428894858216466201157153005325515985706396773568289825680399527201519330538757338993100291790361234585398693522153982395806769109519590788609285358994376081363284721212944359749686754326547929248036427717636474637238137809830778319941281875351832618892737018426911590039617499893940920083381992048198742247295865827807699385877277138897498042440959528539691389114472487150904206374369065948703363256777889140561435194516419084964946094914909584718432334368684787283345300231248019477548670754624167373013828366007611535166390307526953098075388631750986985714466602763540639089112564671920299108338782244004831910993145713126997321194335571991585949690208657452048753368817638176336447337595561018270340490691484442590122845515854566082999256863674045680263713687690454056058274444089859856405406079095422582208029082750938961685775591511701346120227236566260939015511763465665187983395329973081101080829564254576490004005055941065292128639640914188439303156388247925716181208783968603331663177090277725314676339838312997112177239462587413318204158262810651613233251135933534038813127787542310169586712115440351243378818764084543810367961921115292182384285472606881014676160183389878665111772693474797134886291805408740857768656290065748970435495183812725690746053517908408712079316534687018793420975292124532087114763152599981305968247434120309864375692637127063477753553031657791184218525966274759635687005730323145526290920372834726512818786230664378311765008590785035198012763294149098411851661864314056909459691031454527182157533781516485436210974194083064254983895491129917215919254997289343750015397761336066416375410318901008724584682538396408661760430394041349560973186035101629825772211043361274678007850844070437812825919908601042834195439205462187127967039804086166197199062471384663887746895413321090661752735437643005574499881389256719621619302349394336067713691160059903970053683386806368329109179495431796895615958414925117308755777552506635256427115251056124011975322435270682036387692685657051848460690682603279814774677773495469102243837599867794830820154938773930957493093969677058221999801401385672701361687600863347208285147361610775367450028050190502864322530547672478696571814766877934164043109295023257811031181263569638110634334637668841428806783649692693477727917130601111039039446192161044977502620249707315872700893227608946161370618522406495122939792983211572079681680764739403612325007895298341985988862677844571404271556272724911991151511639540816314410885514122352291048125682394936104010338731435633369452171235749072965305251888809389397261579107926755182048220919205485693495115584044934654137843957069059309586951557808083801553814131824731519554215866937006483989632158711935915800256786765168744262718296648732295524853780126183690293472794523994028054806444561068780906282866113677784091168123551323030328099871007109857669846782501485694033060459668590925705903802262153861425493195792658698917712570204448567136372809048241801955552651870281992475452525258979937122634532051611046989885296964024516328258477199640391974249768995752560729552737308701652425884645229975410949408888526047323954000948490224565759539630018847691058418333771870216429584437021150563750905792450030599106107391887485587426964863465274457522586352491853780491831945270611441895494592199672089607255641615032965040236599934255779677131099021494376455167234346219871194748764374160389091803780964689903477616106614075251624234633682202592247029729530231458722944806332938828719517701147012669231938059578180222069585890895393788121569118501253853106409981985917611738596524269423231967145743326215832308057104530867329827329799476814654456462466115800156404094699028813231299811558684011697318809624667596455499088456839987995084525591209541124259664007458411503760873861178233530432961943172138181265798625898246264785539992078224948497117100476104345471781763787120881838951707995092101549672542852379302331242868605134443708054085955243227925333341901930759665398948170144478457850410601466577635567187937534018436516941435708685174071499021574219784752173329712444095611743475894221963740988585969722131781332212289627597385866160129345686067675428471948592781423098176085960442269805133030468521428041592342652506314175152825489450752930074531269794959504906653219524246182530336336198642133073373266563452902856260168848022653122267263505356842232430806768098140314381099899670934002029238301978620972722743817760803656316934577499012266173230984800557439130774576509156946322082861888380738255910338126851321641444329911371425119608603421086576367326554980378053114570875766221241121325850503651823174267497818768882170333647758443892715999390695468734527700231598145178421397215273439688053776076260763027584052653739157701199871472353475601186823728171947285105216028589161008475739530906970624050115432073602403342893606152003475820145457082541254267263635990739641742122650042811441344928005003027842271809891490642754838180715950791754419064926228181031184678382433944952695601576561628680233260969238672618952967062176581219724988036520290179920869893776867251467290321161631070495465036299232608153400635631689271142379339227910397872366743225539391370247059745425692307414655724750369896275387748807343931515706595234453662122611203296025830090947269697824945415311300673496835382708864738721985908551386170113439923810324391152495017141863171888133372819133759533677596797540713061541048500178563438080546116601269941641133000130608113544221468989506765143679962035942726337998273904581682030983116504792671669672087638934507721353565422937235123913996495329929033616692131075647920063439331400949663086662845729662675982035415629720523042520857487759777918276341073579556859024538668610612943320808046191839764812946992983294225955378747177421984864030080637584781886058717429072317102758960483560708515449772575807091194026742975639368862467237529083883582130891692900139874340050976951753564191386028638211390326784165902250745045775849964435319221658798898862043341596007658463099694552946966132475971195220234685736730827831903113934029998987019800071772957274128384330937764037187024082115045665859789840156594402360109829121230795436366537414979661576301946889974825565107214750051439563031987731396821619376868590500395667367192041446803531610917005710055476594654529809920361751364546244387760472917211269082043446568193872524585608905125706597044531972335517621639555249353767947795949572857847332059576410671469096267645445080547941124365821522066148062870993486636334424032820505779493443442293020980774034728969812784347711940980006148029705550534710598071151784888370819619121812518490098673204778991241593686118064585267436259124717386037009213671523645963633497345921199262221861119847215852328086478376074072533495879324120250784677312036579915796216971040176553854619630707138162306309019207635139354655196308608434889707701002753158121952915388904203776792679242993805356398437175515871867073608434243378690006129485367637756634064058032708425926101091728914402364348708122941397391261670711861223830511640633521976668247528223551672948296267966182612092769241850909924119571716994864655968780709474745961702063539325448319539131519870395896808286205046519632834319468600908958488003621314544113414602406151664511420003114191480999169691095961120132149738805470514939880521060770297609551546815740874213828092289627377047036222059700470849745837151801580511259337111836274187558112531682618638253769428927443390279162795631024298183173835362691633814785916321876393869206278171120152451363880705549364740999488803512409732860752457810846888168069564767632034278153144730375575598778847348752930813283860038778732944142041159435511237185243706043846956308518464961494591871892340172850390159137124556495718345619685254733153252839036656087912718287530187368300134862919830912180140168071999310332175780412899391461537418538859031917043884352378939260390273368154299988678858637812687361694508608122465528347846807649884404379012984881364077181772891494818227684329973315107006667825152178657782146637993850687066037437867745886370290739608884659715252798729178314361739075752812443375798738003689999918063309044752702132836449073557614107858420076210552217920527252765023319429871096559567849764629151444500016501414288482479587331998222415971066214640042072815384278892234439901442512481260951976458620267175223231512174639222531394035116510151392321007073136835065064059217904029970432260874454973097483609227688819593878460215762049624650130406039150225527493067177931185775045435318625186333445567443041628860476570528574698607802027744785823000889515337021571581452937873949619913361119984394005494142699417337858316079860398593065546305136734179929913898687148732560268711130013965210437498656408601673318336213175183351898314595445926213314459206177723039114140531998252380167269339580436232934387399485142045409621980683225974679029931843886433008649680258495798216158364705911163955231308381568838468816219857597732274400903829670656218196498983654986306699453986886892425896336126458912897715614054071887638010527756380846771775464328605933978472443353200630725882784998887977339356356635880508592990598359302503219443222882189240086147879518238728541688008966651565663095014441358533552992463743344387189640527846436541272164079158950738012453151709058174831768168197177703165133378453383779889338298421882837861338490814614186554274516405556469659762575605948383901519169302220133151831842186081096821561996141169718150033264580239184337569507352313458171805321158081942478818334838905131499854220776215602658490281746633459313412360131648671657746137165389173758981160273516347318694509863108312942244484517673032324619573557092044765109473762649171754285253851411156490487056217978833821899059424000110917985135436401353601725364943274083419295813956293842231995138287704697350291095635193378822529959482235466318122457524871711716422607920774588065858731036107879399401894751758500312741111211079514512918268579358937820953702911769758733744364994174037762032763652812862898262848256696759536436434631843777265389394350363701266751349978581902779593579355775117299488239248174985305483872779919919162446642283751658358542180462025019003772920284050407878828265680120424871457072967260180939283923090331744177804864172466115626379809515155804687589595416268936565838640274251462179952142803241123947200162240646680566518528954780369090066881638038988053102375169872900982450321830221760310436503747412377746440334048191234192115491056865345034553059352008877187155198522470677887780996331436066609683333778978059305252584750723287086486786014896975243563586990073378154156535841181336340844983409164780367045340880646598397374068454676925942055950181125689196540634194841977477634914024140936905987317315148242689640100723630154579731124306811315328415547924528240287065715116661175418943286544428746881391728608295359742085017662063957715238965734943205336566066148067618725689219883072169237308945616566894415391699890741488720970360932130047788090999898706676356502886456499788825049112486323963737504995618984981580496992489610547859919698669247349889458420280343035399505321753158993522661604792392859373048312910219863823903090115219604341517118652886466731122217969531881996335035464778345863561338985028084112303374338048583324661515776522634019130124364134988078645915158306895727771505381342629161110466478487205379282442573526493273908266719946707169433542649635041373076006842401060045009292089401109077721238020368102738648123482459452173660530601770086234534745932653449933844547305349672617619313442792285945875833318686571094963872968993386602155337727666121133712646162944511597884682342315841386307978134933156988794285020495687171362958761351978955269632333950231082419971465598561767328085904062850577053037460502780695298978861279231455004869348075516325927828584425042924000521014268817539660665478783741288650028616223540751557964246349370945386631635366795746563176277904358208168075731508206838323870984024859390551892967814975978634757214311462409122056887391225336258552107644077333317641460974197335891731350187806262742344990358987852721864694562537858516908049305715646228276384138332714291666332296722484673786823998391156599901646074595492424831574341284585855477222471048442332489410290771100868551419552482867391276839685289784069961695292098397672986693134254628701592463423419426103956759882355903115261616518354603206545726857047178846954048203291902965810232250849322193648084137735302124484028953082761952546163798862586024092697511973222890965996494791505950124553947813861344308718318050767862315204877929949385099342237047702574195895897399132739264316772343547915959784526712871900241178638067652887537173922277919146611546267878345102230623510945114357619637770610538809466266164696023317067730209963696392130551125944458956477834516539363473705579916385226158337508942231585566552575907401792698711561070011688982297609075648564795449122675713589830139769604249641423911823563966832556528205873378548166906013812953840654052260827213801332938381471970916454529653737141682531076083993771834631827800150940129588676764764536877476244552827678961949271694287263122440921835566149738302202270446749595875687092819680984526494548984300488871817423426294748899222467721850258711950085196518558948960796368398756336834498749309801958999250273021240831695583697343900649852114870521437535896627245593617211080072003157289331936018329050906891630914294346236200363314682662099153053910682494051616424439760830850091047778853985191972967034818976896332536255206912938953618679368347167678225745412796403937863366469862433165027162606877963422286512875859111693415438729741255800719936925218322179764736708319266599559548631509681816338618759520275488172887199776936503831827490910779913240442531015396590326101009770927828143103580261201326374135957412033763824987731027767144846224196931254307348322541083242057842381617905274065513587865380475128386729633190894955578799883035918576718325175173104587046199689850711105538358689739484597974905742744461814471490305228749477728835926758412629894105864284241657813696981834296612033754336683486560813697285539594623025745998135673225474082984554972699203718460942944367852856111885732961272995772680854694855089694577890997896399285092212203920032480008699004045306765878668067404959057767994481167540990854042639723892506022573801135938323993920189732337224883370508001018884994250527243529015442703890382223097604981971768430063428565625916479148316777061823913177337435857548401845383147480910042699798425615664093454162965188467322252854479914628741102084290753258467226737420758039628883736201506573985806184008399839032953152308037247867592145427678807915914103682532367410461747659190330157664237714316633350556849761933507644638174164145737841222352071220048378314775067777893419954836899622257878662235927534985370214214676991214952786531122586933279665585066174141428819150008179597366820899836183055722504542444786325179707005104324733722675343651778397965392441909278048598114920193050372114419420857555640859986732908173926790422665961711146535397843196586020832769394794515712115606644861711680447877984647433538428934824224298563675907568885692493048039972954261273869631542822175402143955854169990097178555285634666658524007390221025773421808364001545605836460275270573235285086226431906058600987260034571341489100815242774955595049643154729435765808216903323191374814638943287720717576496925177162705981793158300125605614716408477337078664663018344171585063783528616839465725799548514165523762646393826926277195466858500273094567076744984275496108645074478345238673523028756750901806996249517125467581181155108888227911025310801599747380809621791302037533334663209630304702899904746726702244617338340567779535747452208341997173939139630713104321774926163418657285870324137052353296373133469617550088737007671889450646518899213489553945060819265197019862306185831120699613328993641042485426130012420341729824876582640745853489997009771872201881176518861358126269875002675239006596455327717422587890444708356741413654051953069299280243119321651180451488705177604538346752176971245591158656641119695257660255855029011633000946363686170448194716943351509706416784662851612362308419237234626024660845339029380959539694311780850203258723071363668732547283625454019431171261241120489769061638444331709434240241318125722281480092428789656878370417217809205093756713297701594114734589933047538841655109601872656365279380286848065621290455093653378940697844064115118184231000856848009306878572863216883722672309776298998535767367228184596213170240455599617023069589007313024983930225268091074092155797347832030211689038309757868989454267494392992805737156145597686862391801743148265330337923044373087046290671810244628553415794359815957355269211103231491623044229479313945513350562509329982904083743959066408803562830629240927029654394157312669511428484672278349587868436412126615604857145410279629878096450561344793154626534359987350290404778834866281817988082442640059456703366233716096397899315686914351895057461839652140681296462492128872583273879408096487974354687469182015554135717611524115237940339752168954816200735356694184417723572013437173140374455133937703849981036991331627148311487627044358844102912512514398899054321633724994836328545531343927468075121195088851167763420144777132313537283812982873739272716916332124703980860108470769178279848771416279861396993920224221586242297241316770873566728415221339993676620074007788090329590929662821375881452079963982891186671197879827912647463505477747174543858418820060422292162406446469736415490017848623332591676020795305478339544626650451048501101920638230874097922870095374060349705025144217750136070316720584035651233272174483186845146662097927116880210826620584633926703085316760244376715773226423369562838404017298545524922893258690440380742413353383591254121689617753355450344323902729991362308049590578386400023174615971279743185077380488367256059173906007869001727056003235515594872915912919592543669312630854945932381057940995320133705313023373036819231678534680943966774085548693866168977836297482605966398778237701147548496721246795872376216608470607922974427827903280029304788393953834665447143614875178428756059509609249627963106060039862890268291180039003521999049082657060115979024188834538117181332927025688619683278452262963480244174430361850191491623592839666611735442461718626979906087614490360732814143875372763837692832378742445473209101042182322211134584174339163666386647783375468515365074751266443112214256195344767012775276653373849672791892388590101823033388099832724007275050883604691349958091863044140081545289771388753540544088741703613398632272033323978855368805928070053828398436106403058672084258695174963647481730208165476898993906424038114741665926922757131055897566166039110340552763944377969498987433148223491589318300099554052092980748140629284951534282407815495437990576622360014195003868765844255039492871447659334076116177257747261574628430536487984000317393056281142903497922963310843946492388083433119546808143521265322112681302868957531449442541539905568873940824309792267059967146716977146699113505117513106921101251951313334813154691623250207325289312194823297335829684024663745978863014796735209483597527968727600127833490282556855808342957529251146796827742364941411565582417050915746608193271659360933670581242655142899602522334451672809976591990819094549631946905642531582923384707373060215938872660682863318325298832987536317930588360720033072569125720834522996586918637652397077695575105863490046025431655621322973706954635075565922268152536318913742040915544647786679771676386703772879512556996660685151343879215237796794683355611247908196637838257573787930058071733224164077035355713378770732876598820882139127599384548417409104795589962611712478525635489466304860841263347760066630979853726354722282816617911340430070835003655035900126342942405656632588887184771107601494889115513187607549323612374174576036852427144997917438152539489673087389401727769128953314960391344115708383367890244936632590322344241969854010003177482301056777299409145599907178685876938527396535517018364160014443174052031025571233815509341685201471745412383196138202177462486990777209420623103551085134873030915045422325366371764192019913672343074478685655531975625999674942487910331266148447774038058271161993348938829114482120925429701758441343041760089349887022767165635081650740411043126619064631769308551934393621828580882216090281450196958548930041056809314888438199226678651845984049883417694923493920150294343861315400231576778177018713517826685041785972728628564733777024461676326782046895249217459200910304033811237884953053711536385720393068511468154742636058814745681699150405570907931107994826096732984339087983370224130358457270590427649265130767343941201663715506666127209106486630915425541016867749377472675220302589234021840963872694438065706260298691386624654087529615299162456247236393386955983779322469290242788467601886607938354892444472868711599272357701152558306530540913721211942483814989570537082437267614037210016449761568638276467284897349776612396518869798466937982176197145324581430423645080474025614667746280835252668455574217578191752601005499147569198783269530707707448599878975829981713682262772616676756424442568763715265860269864316684980158987723959779085981877429657599136587010574411841650799832994746716497810741909973977682120898259645852629992039295037212227132010527493806207473940767604386799620580030744131672315185133524248029414606989857138458846315020757732934307388373063391322993926518633248694031667474518434442468377967151932607874824031110280381637127082379659514958695303946567850883000998852321045674200590786222596023927684557581355968329185076833366424727535789770597975155580801151859057144872182410597287895086089718291053628333834349637539693951017292481814542307497562099535064027274508252058634726621203789244297130237199527633524995066567633647409675987642233906965420706835129773869067292717699798342390602625489917260483561832492516419692950615250594089660506074337146902187221123145480600616949630531729479559560817642848088944510262421730582031874727967696062969521265665885335849399323039769519002451372930684363541268873136015301977095872687718987193704702241673183613581939240833614542351413437766483329436998441529303354830018122147210554308577658185871375660088725800580338989287069371812055292516953676968202603888193820367393678590059467123924665165612826066751692861506907243048485909464750366661154249645671051766940358296803136967279096782363910671012637761716334584039340491288509257588274445591250475004868080662633526258034320675886828294965937716952341410706242541860877868037745621305833897175577016026823992459526312394548481969880673932515057633645217322869446623878338918332913591162337089549170805557548136710564842706500991940869640105329011901297189694209661777689364350105438813897521390683623008554610834304466313905676592237112528845840571682489757986894765838799573594252274789264099879108465176702126119833967912579201940571489054463704018195113959803912563793336129180799873744108777583015896592772324267034854872455361502877954639034368621288043500387648596448539969346055839068140039619799822486792727725634233883241379784681351392796484270924317496710438603355589797330448318377942907876826936234011056495991078865102841771737446179613118360091867125391230317579119707687381196272021154158232184610829438792328648484529040497605938723777754488552032934004518400047582703324099539046196996969149690580071621323129642260469995916298249511732042210335385163051689585656163734801308794759350380964941320706651033794714616066141925297421721483026223418937627321478130623421272318789837774479227883117135727900944548243964230353581630157139662800046814457573920444969256812331237476737296193173676661581681541093598594738387496831250987429829988704475764313180574624203495854254795351267718519587649695039901736025596381747156564258188501437844199045975808578664215305798597106251641135374162174492827438279381709463764945968678975314099521179325177980951008661362950514434539391020145455425814375004543942847313020328190204730466650018387226683670282673441751278582646690046557830358753525740414370974398265986170530762818082838319014063272998213209463736320548971555002041837197870779357351086036896520522673716107982545499884372461453795703968887089908794966108739955029204956823105558502825936874933925429151287123088908237345924277385783739035070423241972826828202300484529589492022102177129225205861873839309935923624160204149628118962294039315200087624523966381624082602826973493988608810731254006761775792511638580230115342556661673285138685559337055542180329481071586395580773248128927253860043535397939727222012568780751115237411896588552167312442611509616307079083435600855838079706010693780449233904313703931165523802973083623439693986040260675086986379367252925434076987163797384687857553916544849513695455321966964455367365452302524315703846945175103707002336228877960838047583221305560725777487974897904757269178160972338476103135286907535015324300672114426353804856538978304576546191789892845957267228187638778976542752871790168951897928071864596875521995505863921194158728145028900395449125146574551793952237815641024247683136918919414511512063296465765252703394186825177862082325669935756095086397794064034613205797018511448367153788832793620799849048938970402954827193835295061093079500717696664562469824257052503293880640073248484659093343720711141639843178478690905131913228585498441304881869541223913842933979709502068519700997962429784008109202133968837370014667235260222964343630994303529655442160969872127322943434177258025141881671717716469143503481654323491339205234475533316703089160416469310249206202193753828600539532533583780273107736811926322270427844187408734016410271678505920378950279105020854760341290729157295379668924467137915247821571810314193674158871036557877398931901766452905495373979401117968847422753045480914773891289008007537382659050439020794152234721200572791743719984114638748694200289931024644996225344903979419764361000232971136980602282735562818913435420164323603391473684266069337209898263863742049004940598835065807633761853800225829381671484435956656768274353339778703378009219669699456883372095449156963037781097811805197087562795877679186989258298515338140191114536658061109571637722898419345970555053527820094744838056231065859222708247715028008875138322598811019325468324237349176543374519651386753027452736625289945479806560349815894295590941905810594131817194075175476787237951488349125624114322706831869350709503291721452949720068437860566997099055237433538351633373826990793182246445851259167215714842117859914106364610750332004806311514993241295566633220358486084653044800591016366269179956648734989245466940106228123588607189620371178094819696110579337737457106404998212182146150108716983855405189089759115578674520513008267246326987460418453836967616085805874556930722254676498443575350207589788043878000566706335232673689978271053121417707994491390353859814148685626586672556900295107586313106434511941890658712958843264170013824995820272940004113302097441281505680556981562569911016716250910976768561386581207172903305825428719316855625933120567289149292300511358400593894405024605674739689311585214924364932697289834411704509405063134125677053283083667350425098147569580146333184400692354960374238065622876366000133373933889623799682783608370173597843509560357210072326904630493664312723729123889510459086697248322509393685166148246024762823826374450460574364608939937701621307462280167308795705428353220964172731636253452950780361540819821983106189435127714203772325338726763527811650204926786229617920603660272315175331362127715969679405278758693773741296095193956230266915638543032010741621155406826279731922952566952828357711660882367454603737695079957803811746896731771751507632317406284049989536986437752388923790208606223039324895705797882521047391724492671613188064296675047021174630492079949495645877601459869257495906986148422982763314201139723792922943901208296665714460667882835730285129533034641336661585830933834416024264087556795807335778383692762765204152959740011919377020378788001520264747479894852105905010555202930198521008317254416414337560163585485200661690513225714637720949752994173578919842325466199750339592717438113056271856809327985181079221222076820298439744051586696502716526585348742932937595732130848425548242822746927165190458954497416692088184600160326880152718712599376608731915530608656886053441469626828962715951623620759459992154839316419947597242815143812156139914343977379055079792131635387616601945255920268073570054909453514580723683391730264891532061905415121949469235650433295574821916491236324753233452729287922800260001646111447217669810714680598845287268946901088222513510482495124097140925369354189310790674627593640891697791937855760005110135179778429300889123207821754472227950989594310040143303790135466264039023033986705222553596010052256542173713166779805310830337628240430938996567454807993274945787743889180246543973319913366779225803366408625440691872711580707128356554349927529798442234132769006395647841025576542890142360696662592462079622504628051869066650101232366567316566853910849612457173665560564236826595471980026284480331061600043796977728256494122890625213207080704764926340416258246718010200411652580394871593090998317689753912996698039161581540055635856870155515976069217449782093703313366751161807918487996290369169522175685889250005379860724128648122360254803684693224771691002481796190051820187407715607934417496895671096456695278241901418840341612323987024101802555769181913873236987029173476137332370622240044517365748669278107370013220764121706071679612568285951442031738563124132467699378951805827712175730036201133181518575716849844549711683453025727277143700637129310481759915517566600914401031817445791783116692678000090037358222220399467246345156811711970619255246339737705259171904788831935417221158272327268391158845163926644018531594979918288205310772982948563796883514862946461543972074930234396853995668181080993598523256211165461197023757733551196938790392461407600118136220951404342764140747100543678862318386348071577009803600320011894880534063482279994551059963306212599074563359134559761333790312849115147138945581273433528582448453832721314550569553362386863283386439815413625165197543979958366816122250997534374988321987063923270065598375633886272430561056245921035358010305736420268304175207941954118145115163618491023013334182148306957187629191875359712449492179432999310017611362158992961472625621755409076903888159635714283819659285160220297936509230242951221104752573690648112925338008352382550805606731520393767646472855419304033807884834427740236683639273941355585836247857779574000546647974755960797502135310335432583505649585686828933044298770937480718291042164852756099863867671250834790126494731821782722018845536209085055776974216088657396785490764552103770689962809089215657025551372670863562058312259915580982712414304338112099636787638730663032317016899336652307811680053766957077329267321534347574052838011363344278447311752038101931972457027638330616734968857626784350416781113782558973563203654828976545266542020021949101363501894593423370723905403016398718506441296046631548637403336725789175083413316115325857964991859109572853656090954850799865464936815214632603194387218209961040266921150300846887906954071970132862024321308930808028289300932650431743972749174442422975838653998016901311989977987491191604621323454038704558163590136582041320347359239598468561889611342867246093351162448500066661536844575181655571059955613004089678176038802510195069175256345978035400091249838095834267347956462476483958834701120575813338805920515399202023935874517449880171296516631375783281666283713460835988659230956733907956386481182994271156526234972851945345548237421967977626954327700975957707679712238929713138996201878345695852194235263115888106878260952838576749987349955344171305602338003692663085988793820363146122077552339814154751043531541669677115375390211108709156593269017051643343525557347109228249687349233317558733812962413775263548532112898560246741777129952765156342462016590151224393631339557805026344655340609765907253582423466211826117083851525533908691804778317305556605782122685484835707339776163270214928988137909598247779163994776984165475702764330098587016513368858250030756007516662763112679795832910132355037906867825066683339199128141001278337749715042319355112981080188053201466333847195847036066687606244442341031881488776709174171115443852783824642138091961402268579181654501874766236263696556106091117028141107819604511535183001567491332890463076341561847760687043685681332526560660592922174601707024944037848872635411880058884913167223856726328908412899661386018908179110015912872154898689981472531486396965979762025160545285270634412381890070701684462194199144289649838005904353321581817282935761716511646382342497154130571639346525968559076492139434835200235010701628552396762015843900094313449893681666458212549975928974369814176846096418015557237571874756054963974864547560747357017098998279425155695938437630165462552068519754621938685278229755803228134306509012271329739370583246930880420836958590198370340885930693497978928087236919661151995760516496067234605368482452818797337840375423783045978720628364199007518293064135905457504078979653885226329424101962956769775771423000567375604472028342609085548283941817667689438828602735271116104287969779979132165656746324508379115515888566500071359144649364762454068702557452527776195159694557227087023308414301689135485922441037681551373264933401709040604478484717572450768916319212913737041544206772683175002521120287135369865723084576365528662141137546018367633837153114304222921720314013159034307209603573878500388149066642965329776506007831212947374771617437285065938122574880995590689306078403841655971877378064589739155708419725716860119442752072320000232190860533820282518718167141021785511889141375162652245063625021572960951558543812826380455200597568395670720564983129977527169257532581730110537518327855903522639471525116442478139789720072829137593483571068516792552125706363636929060944940372847489500734542473005366885577171141239833021754010130740612093615891803982615980369331708885387982542129251534539538093394583552350188045173510574471532960239336183423322552226491368607620525910064903893108600578450071716102745584460204416738668249939373942381798217273962895544889717809802853848598468131361005448722870339860910833002461033551295106065602271264610538164309787500731549797408298647427349461816505194040103144634011855268750316333433575607347955055793473119050918067162353956241116624162860582686182691775781786912912791101136643494338215861257763791982597868276494202779675874270798194276339029195041945601546597800701470476703763079069465492222967324861113631524459990985216700077567520872750105313552860064917059642278003636501401857859181769132812050073794289990024142459474969901116670673064970725428898218858259050904682416843626866393902055843854785378164032986312333320483738662350764335374308711186294903340217444868271043377312698686010418054277421438368111973197603542902402512586619976177671524124522686668344049911423944095042930808841066686816994905854176599060079006914782017384482230044177015308032676389953678021298304025813483285178171988811411286114034211594960683486965099390266922234429565712175014696568784454261545929165214541068726111824711994817859335355127206205634403886031624477936772036643731108085302921086346230708928147834021363391378123397147641261716703599652863019245215442708078456606850805004262897406097913836114515738108834932150401908556400141516063330604043283425964150850457346195372741649190192832183937642168937065569423821428511616692918611716025197765963686022713490921938708644619103808550758544538513989503773206663962184190293795594823855484260964614089716831204654962723703730282868498214229491952491472392559208158071837598917204686831730903330044056786971380287400416561763401236690175890704760928285806513908746847782309619394114892704013025612067911830203112567359331539145010714773006852465123242252088060474838416801957445688328570217405898108503660345738605904750887544380198021877463463815447791819285933055613180438151960592779516465595871471490493484390106048235615039858247324685148135016151929862730813858567502080619145424800330346795418742575411433805114074830531295830408293602850927509991091593573692338483781690373242295991826147825575984571846527252426519032703594913160329864677267673677634468558664467416348328193592568717422193981539502949701147057088374534022543908584745614173475900291512682098657786123979573575996287438181374777868592341125302232825162572188925226754444814004019932347365314566914352459388351438520743273614805176067351758577137546940260669146734423887331489236760081626052904826213585216436950219558572594919131757409091607999889226899498190586503071328006118341324926720993984912647803019545293563101109891496049582756355735876149666479740116684032826641902049051339333699586968275167959014144032504758741159818875128515101498066070542583646444826711601132272849236447381259560337538753696932951048545708726092441690918846910886442597504868512234415510518176514040301504029827584222574453913255648643548852596820172978651025317063768914269808115846653812799274993002485807566028251909196385888141930826524627872994930348700449015698059390206173992070071571981350269779753263305672397255877620362516828653109559689545202801725721556043636982074746195142453252679162217106799874548678216375888935157004088048596648209983261662902836459339405974407836932272448467619223490823871649379883449549729038192010354257676693896528811739560873665007292242532501517605152049066903067662766896627354724446108663960143660796579597612919967478503838459664988475548734095955081316939085035507013601421914617847680006417740839558217643508760307892579672709830048439185890423408427432231524094482663376641759618621175365489678259768636684157375377877557391815331948142651979699229922163509934107972375674377663048270582559372956312208632842884356312179309711102464211378373630383221632600694395556961059310201223824013534600650416723698084632901928009016123212013254790097313139463067539968667613619388381158564698851663978304500399086575472870639901025819246822670451397929833907013613146995404190050222528220987379858393455127382733876765230327478120530701476941931761947256708973854364630017021156379489247038851968391548241835314402000724334717288082075255611784774588233732006831149576476540348691513128992635743772501695501592446665851905418394607865147668075662898943683427849302905892383449893563937800945102216970971098168358697385070210316671235299959240808835220544526425411653042926162328198661791665987660878348630862498174003837076383530547408157398950877037577054828251971869388971585661194225920204000367604526253852091937949775090874243848294910512277143316487679867519810965691711971646095338629231102186118087160461980994693003809121280116100513677732542188498798529297636991843205235998137856936642466772341796863144638692151854010445905432028781079536147581259938016591012457910415138423469910849869513274779250951589723644491950913578025819623187717269914341267047738576248791918791740287755776972884789618079265419260574437081793015915141128923356553414601610974027141161719852636863680727690011988491291523841803219035877430377234793868252233170979420960517236076427348864786623820329258694674735211457760034070803633196836746706888016088543273732220516920971369151682866838726375409015610885886064167436137497769119000468460223114412998394375281581244379310734263462515406109087518061213173280024512209495125709018500090114986526485117882427170979579196625062737928996426794975115839455566673908371599437759186952846905066458808187445717398748465337714391925617018140866878789237977825353531570504055118345902902280919638708698817393947878267876194181222960754758488314778250138176460390298371274196215885683890572331009290198816046414208304249179736445302093283462130182176288489202543650799718708198282163756259461267637722878769961470092093343393138031017955398367407679368278448843186649041463771241836008638342819128796323245499518363134225484745281878550378011962976370684471674419206591246523677253594957783125541409316481067542426925835187166414293397270586363148480616552226948061241046372674385603968199408624618222739380984723073716267173688465732291264947652139595856973440522906717815617906935079566502011456554695020934313281433247446388200601192588357961852175421689446892496522177007753147186273243720670399815112906683465132417844316458733522299365139410929619923482549592221220691401030341705608007764747628598402234753057062907481552276799690445520802966394174516629690130544767223390323005210629531486001695385993009938813103793566641175070157054616436021945028737046528003388901274626864548900122565490859963008977753677704663912193933798424649357463720161054982885531380825851341063142918564485792804476109648339031215538659377271763847680068990393118241009456957995683567335843929118394307171524629644023983380739518011808366000350780264158543286792721275851519604244566688444979568130705051397865231897883703653358708253595236521680917078838579245197164863247848294892528616498362399066132836718599220957191044669548970132429247471596089748855999105481715602803494872152685269274484330315355178434444381525111341603685104642484463312714098255885672154432490281118973283824846132757879933547582819224415789152632689861355723807356644831463596082514732138972447711345543218527772218953042171840435187330634175492470011912740946723361286600627458336866283100780886733847476887855874643363300870784851082193862790661908575740022987105582684772711036447609636110469374953529899863430415361266902268359361772949863152372703643676678539511756366882121501978199750378406576841148888996749548033229975668673995160326896911998237324493312834133616852725567973562731328325277380015684559403896339359116598290105720864422201157924381559030830530207338188146957779313753062832651919601980091567439070765037740173672884959321934036644524277008289338457380665631488529852517976988425143348420075529027335441094915826320593173844972846485782374235042879449821787108283155198070644576045276906869727350784982076598187632664736801665842255561510716783929017198659234828735892518334665562840274983633047738269400889184590769585201587174982313381544285578435427644993690981979583379596427097169471897315383875456174627033128437168011345555444971715445471434006146545629491526805593180628551600889130799330920253158561213497907861397895537270181520186746933262403711756776464682494305455286831463780326156455452012101913111676874307600199553482394656176510014262014647530322244936267934680095418620362066976113324684493607150892130572691500278694925088502675516232429997933134470134998368659825373044792161928728103214025277034381948801483991496018612232840897414615959067621562157711040572121963307345814580368774571513253589312916890591280437290879338230532874556954209329812362896938837684998167451669527363959866807886874625809671354367935272621169729887773712738767670458552723985779858881799356822204044493539545592524465725760860296030474450185990374407034207948712720461193679613973510064564013830547670642065181158597492950041976337908609824123641257952151563171000324861652144904805687239375494426832899205262067671502197194346790558932839262101827556395706604675297503204182324371805050238487802726238539588276362674951512218654270582264320394060113636445650551139277371785709069181388195304046795432977096354798720840971527615203293734505433057683216770131960090107055715252426263502349216311873765339285350428978516411168619988849963932930428362383373310385041971869797442655360981341594020528580504206089148502353621724249376651638043887266566252626937902227362143662043841415434001610984909967126886895260388253888689604902081915823806262649602761718090373106856546369288365327873893754031736735846728823242445968163966415134364560542585400950844362978937399379935757423595045489413264546690890917383434258628360981420935388395479130729055553813139232552309607854058280795680919914078545757305742445418724594848457914844228956700663157808615307559206393146334813093671993759930441352110692286310342846171419747156477318050644603535577820604293254057079896466843888173153845320355789315332585643758747039533039426144270133777371482512131578798143589603963895455768370398457333168929246309929996549740778731024300451439620781635203040945199726936642805894028602469170849685766881475309061773813500328331292234906887311464233573957633686287983992366162984992616898969168621940774881434565041493174627248638802649088552511886001557837207650706971857658591246659443258982043094650421623681158183070991067564776389961264267464287336782607023522138427142052409620987443668549692701606489702442729170792397154910968137579680040745191028274944440381332163085747380026649983649553332132839407207274487105232251177318904373659672950039037507716818440526687146131751020694120695484684845924634831741198673664556719201158955848652962202782285133345694928320512566011858601983826645292497624811844626245232451317135807605309736584228826672331105298708988789617610587640322756905317396504420502643618161124001639470337401061974967367368542080645541363648646434043962309270472832656834798887804529519638071187084917493900107791539600590898703836653299908234643779738635890330155301639010541964862880101031414207699128878915630896308810393442979313744918407343102008934356260183259796340434700578679013437398951166660169949819805204327430083477430340871034605828754920870159465166152149802038603366756599771648618757834656725641917481458102564665902696170562762701228410414748154999645378417781671595089154262500706984077491067475440250976177729090322679195137582147618373231362525139015104696309656579469374782898404900309722849170875844964313459911896281941898591935742095029849152332995264214144105932817179100351920771597000373400276960730373727668527236239570827280915765058478335877750304648213953366799561442093406844875041087461644508943023633921708553744974121358613631410536791725784945541243276411102118334127137464163762684504010625649045328175817230034993381557074282113144933138158717348559551697896419548797804650091144658421199722186799705926815626489096790745610934834427362769707530125042879213474100392226296265452663349790796079262342824321199648085344740066519815906172670224729325548501290517084291695130129655250262968784650558143530328542079825215475553486402408999748215298696310908619161215119071815410710441737201877813446418254310403412317451328780586347612599633770976505255962648638669165258268577790285205025805697976583139901428899227397992053215679166545187688630843208520492218440663901290704854006118816698419661237791018467755888767510729624075824958906783783546688932856575244952737396622832600012935452338942702888987246461315339734117741815702485461877049002840369788345935521854441815739746525412666261330749416163580280448714912923182286893678472052511840556993959407564576515636076906731827162426960346795445972669961818214423013354790220977275202949112971325165268991979017610230047814637581717562183714194865678169620421100059837598605611070180428272652153698433993775035020318991086882573980458156533349855395741753704064912317997274399444513437642063593028086027503218829528874511809174439217805970793226489069937973297807600127426847838478049848578510543776480351217612558549155372499323712056395442117414913302326124748371924625415873168691229273283525253233506894266967890144917257764130508906041654795043482580315698652582555064894037784111673049794828010832122463772007436687795820253145251945957942038791637843025372401257158710626948046451816524411743249088652621477993931622918187537728047457367351893722229600441708167230781350370661790740876337155066771390770145904809786601889915004905729947824210453713925957130194019949385069319296853828329693145218016442881618906534015002108521907677646108719805410712046029222483084260194283001185360657672381217465525834031679690705039078013639828141195072549826044512305233745256312335823494687481881683511604276069349533389328686001550635312810918807288019276623521194182321308149662631048998876835081387819451697955853420403294775988751469323315654011816623156102805764298811221368365577616962393500031481495501606634411235852714941961286063871512382566061589306739668763394910024806602142299107815947284990057460308563201718762338332472134196684841245693419880170495447709559660511075460106484303422237246023152271944127483930820734016113558901623070887072014690574072204198259449640078045551115468135210916139147826381355450484886468811977196032727924272849952093042064938505968107171266151819568099371595985657327675854616703694795725195821877686083909942421765316344935927643250637350327674187874278154980869917523001218733229693602686379187092258017777872618624301111125823910020628597563135227480760275969757979054211279324092402128787652652489460085687099551436486598992146023311162970208118483699428796997236001289422291773204734551709035753953274693318574578661297811371650324941435200358029116060517685545445813948590788371930836979674301082767386718442682509232078098845684390679072128897266819531673214954265856088028711363059369438492998950885644299520600540607144332075281470602135425357605060238733486890541568287438199880357816895195195168346778802729661920229748885141719678996064535954915203641322309127522216461516566449894132245533338496946587752174314133545149626704437521877275247672752453457230637473282465327007536341754815697148881404091140971429037395915814645248560005416475274687642378630433940570042601441476505957775874185836192660084521170191959106892193401743523053827302740551345261495115479026389631586493567015867885736331832936878568761995874789511249573955861483911977467042965542710353755685914341805106198006646259516951019054717608132465827163725315740382898935843036485137346063109926860004689674604769099565439644201828659550846302338936178169863125192352276666063627247984143035835982892111934294652446504677203570337687262827776652122968817184808934605964659447119781287472446156644079308844001274761360168824823885289850471759429354014363411704565398167085836501228158080633216722661986982323759490202395965163325934880681546457902743941066106274617589483734228675172751114747911328367926724496408659689289351705553272883336503222282420357629384299910147405762680478241505729915916167213832577346980647171388575104073382614657466012513167013506679605673558092677968969233748113654645619855078555078959632902015416736156366488147054144579821899291891112890771425085310078769130485091638183073994352528722368721455813129861928947030905857260068526912206205568775471365709269530008355464101423945051952527292154740389528442545032552828228469769343234988963770276593367820046371479117614633156283432114068015006337054456471700870227345445746784466766676847890455925859947326384627013226271371163169525415331847088408883286519502691792767864256346781955435598485819262631473118057414626769015787451489858090052705017481357564495218292856958033500294556180975712140794347245156910713952513212919534598604210714895580090326769011769463781296605697790615248282845720981614979757037751456417330531073387367673554385759513665725724385406822338720448885536808029219585956242333125494134589691219610963249348843942396977942297100168219600662505666943941997136983207914004834056588033213804121528260252015562033321419023564417118733304921543660242326461494747937685007527795712938237363518315107543055623840907048458594418528194795035816809703485470111443921648210978621957780563936975777853245715940654565179636386476232136527271389654054147320877205738876001551699126353708257697631703404243901733833721069718392955342456946028249427106080507173985903890050274498966540972993328498653092583601384294829624712079469747310504217177120600059957009979411844471258885551474513299852541817886209994388228226733040154201541567120954996880491045109321997825675931128836181039935417781214577668526880606188549002081529240169598084544471983566922594046807333619193200882845248856892057760788844399334402727709541204663002208814429195357637382709358247782699026170302923720624663260133325299828127082202181843671285828536849931192654521745871243187329573603472113444969962495511777541080197205469398873844619413980535778743107861470718426282596595394200711180951559186342064449825958939588593117980233875323274687198491458668380163381815296533708354735533155174830323820872061429912271859147773593604307523704630861324939639514606480724244796118375892554528931274904823729101463812109544761842821440906343353475766816358266521092911028687161855761165167338232429820108087488199611018181010638918287730521298957357003927887085937773332477250969948833993834759044274925105701242679976753002206059925858991239307520928664111517945649147237105891355112184747191768501327698195547009885324015255273447508507053445831353305463237857169224703948938754330172741553644385915587290926181960943570511865944341135518785889045506899059841276007112929210006063252471392926122487740329844364245480257767993449578154639413927191150389426462997023376976240516842980684592311176470219206716314832674677306518593280327166832265703069784142673038025663530718144292493431219527094328004492275451592419020658428970191264888783079170079459384210008310975864146009649929697180122846740773244308694943589680322030566509900656855559019849507882919857878696270474915021512663195579415818825332246097229849839527311771638634717416117072111601420460933980542154827491718719512758348011642114866650812131317924316507731357900211792043374682707541200205420664817840466817094416151170213641637339350865785252822432768229077255607691974753935599489126871917047568020993884089016822878501667738178992130004104894920791784235755144313321795828819820135254720171263609638793349371636363474502625992688736677013667603495380620189633017192864188199669810903785857611754264072985441628727280390840472174066145542082701740361475504452472888795537076957684598693860016049693895527585475821671232275399331299108769108480976874499406151528043041680571166492079571188331991822139108549345535462286813461343434006403698561045794501174151560641249492084810517577380254924802519047300481369265225669342698844032234918591908949552582919119396252310302275020036668836680907584518444942582922106189672768046390901045296129548451895528067499555386821798504065245763812476834968039150573236874748571599795574288672905997886100969510768246561080249421478106806807318813517044759709221692874158921784082022872669923236565454944360925946915227422090334744149028958353972582051756042699848082528580661504884593239701100427644729617542358941693515253981857025391865881742584122504613683522427345520511461302130820124396438193697180086483344934435818474064934811083181358760394323823949109203506254889879588148703271311785258764165649786219607288506099278464905295437533256380119386413041127416996759051852578149354725816027253057066336973634835096509035831438840621107118521974737825818648993610231784239264467107158451926015073056941019614767098914825856084841618002440694215959227030873565585101356676683521399983298233884701676059214338515545909472390775861097626856289103506827724571675462266769425123499925640202869914199377678558055026043276809145274526844808704844286892419215715976791615501043361227786957174879030735279081843734260258007534483409301914945180985986652327723164665989879785647161674330487654427658781052180695861819682781815251194228748127014288905995004140408761830635648224342846495635328776512988731798137229875812791063833046031087988855329687090474358842040020627693798361063045300848735984729776235463413954700666838344833456278684113131217483851233176742139088783838087487799099738784181959455858109272310331637887416896933081374368859744763531806105490180698933169939797928654275891464352594846775851863897582213085714738513308060569255456632458729806061934842208642903425397032977052646205570167830935988826675114826570979980421574955052338057459704336149165769467807646112648244925350028139590798372501264387907398814717370283646122866761346299578211500482563090651580783183940116463746224268252736155042587543620746226707502163106329959667706492729204565715884255341045602836188355571735505819379538715340577520441408177755795520537746514792419142383123698445136743297263350718549270236634348214374534974764832117158939953423660874806339942624648440654292404928636173653503941205081279752112118473055312649029417406098697250423360160106897139977478495705400063206189465030050633394722293922549426271524323622567653761092211813100983569221468792980894037515271942275749773775369021496783932707602347090785822325826469251490112384402234183332311258572109196279150330192162849983202374265257670451551964811235182629403175018548242539665298707827683255603329742537173777695257122698531435665612746438403076532119924546902909228191501633698786565346665948114933244866870228977231666583554692844224532173295233616359715122155449929608422597580475157498840425144172429050116167691133342118428870364872326364787207061349120438724134638231257158024475189783343844573689751688009471157984061999717765754695993826808338874822306151199696687624075373914360885225935245302766572709192413407121406035429859389865224478692072341571141800979362282543461296123625770192458283969642583726476940252234905609620132195452391705340617321280066739989206616613484620152267347514932094214182615805980198522082088529648612825504700212840771594048813340098678304639430698484988457344396473969882766774709872745853378377742879150783999710618612730706347979454347494158265041766738018090221206804051093624769159132869551853129070065446934325576229459928072498460033301013729409603092100876317524820200582394852531424852153136300318477692786339958032811295483225309173084006458464901181205049884812192217701480871255870113178679005291980019168363362150676203249967288745202474606950783686573181436935603676476221428497784842567116851254750193945799887599413331474144821040493429096747376628453447797356268413917746183962031124271426861767692468394567422351667628392245762666504909114422092806834418027535548657933043992608507584420412823246347661378638116165663032892887385377379175897440466317019801616990466930570575892830671659167969270981997549227881538745523174779020861610064827134400580062394112024028990496609626748669842995702906898007269254774800948305155342411063460276194682378371280930005291900267636558317861159769799099816946526042432381242476922797862040441210671082310016501746095182702119720811080860512525120183850329298640129831688501533761604073054313341932997224915594573564185902225952530324000845479716492487361660010907436623168069915179764949547770949990934082712728085539687587843264525275721855129613336883636310709919304696699899842262071128977828883230328121815505101440224240455958738654460923306606047646013636891636452736502983262860544597683510306304291202833035100726239737338431990756765673985358679626234382919193007148885585698426805830418253845418031383587649269580552939342688129717412757263579297066984714851821603523639904742863746371134265196168923405334021781671788635844105602858631916406515571412869014550137446295646579463020116437496761982513925200927047115021465016297766510313783678216599660456670769372929942124646642830944812436354576884654980784441946267541801169451038925344218895376000567082788289033932860610911320055913194480929955838217421639575488426507911985903097406269965397348691662488913527922740593956234840134491023082151415801585524780957741221118375913535976228484719998611680004495134830461446304163573939735888308226407225546749967615353954712212535487334281134090263327280010434606623770709430832417205013270357074268086070765673027878987753380624315812422027543450860043590778120134253473037424411149943791344727636488890114948370768367549158322644143255597641004469794444401203567388651256972692668406122817620448566377571376844608084613434014550900600657847398916532301352109057261678677123647935750752633482876767715681364509107236992929789790831324776123709879545657995481650665227040347765986124892305846482599297937128728240449227821264980606410142874728127519595872824430953159937152488019235214809487587522417714842126567376082540376749797388214208284310998581670658704260606847099463387685746532854592546323441386942522304576389918948808017630085000255744183541420659662211483813109706846329965781297336664036985677513684141018037320225278918885659416063126715228917662298226388609550163689205235764480700782840132396939708298956376230255695905879584115395928081846177349730474448524034182134068953885854968246190601276510163096070194685248763413325082735677163584853704248833531439762934918920475685238396803850576603617554516593473511968547317086265472730981731251408096433781827633603713235885648115194629051514167002401932891070095644620617725440130183824114649493431295377337136405920226842339025025920129553760055174201995983120322662553362848725074116030771202773670818615489303047435290874389941301954618615057354748788508121421034400668725990605663134413235371348736820460799471666001541723828507990673078051169985103203965948000888736167359458764353308057452797623310696340570720681628814670542963407900544124687742097731564644677669264530665042323664229024938162445751328113319863700031701623513069007714013897442267904414054159523285315637054019723753110434059484809152572670343105785460052188840363740937022522363320722339177914417950801312651526788273282355179540428599649049757089000884629401987304126986678065777773324408685682507098927830054634490769645916913688068961132951494593513251646104719750226225145820649029963188359969839642019612995444947883478347872156509694956678859445501866783547992564831171574472345797685099080722468349649679870138061018683998647551262895965911589589108342317754533575040648219166756227205096242485114522391874725857731154628949400374169492825852128852231125344943992972812613904935143582966189845958292353904156799905725957062123209056444069166919301921761877744716314863313178384318468321817282490513543403551605469938011335868760300424113716419994220219522312961388407083590599634166731725264447233990759514468978584975193407480718285693357535196596952160107400200573966152328789936486583050991054185172266418355579275678319693177934042369096307957631168862968087110012346280519953503675314716668986096669428592957081280798953439769567479039891979099936880076490362114447319343814144109468693743699175896925759850365870456008257145896768955484855141503608778038262301411996898183526574465305863101744002740136341233813895596511124459626696106545736073099475439535021225804333287192580333725398421465477805597602206689880828467272011100620177507996868900209382907294840736467768992518892449190976414011487291302301293692013737893233826204301167543534248816145799719341741731026563462961121397572222249313837996922063997330161108567833905051742381747145068530756179521764407102799477183341311583471521127805096794056210136969632876674647336767339276673547195212014279474289197987060742441734105616591905405749098182923993415381822242760517980757458611040417445432571179219325177262347291610537082928172464438254944077613576895563987562372088132259346553480620012559793753414030859041938062741972173770417140382263072125451779742872272083638310556406534651645999496522876423717071598137596562796804483500071739056520658768789066979080740982066991828020051014577266733943390760733512587450429461630563490273027953732595497220831482925098485361411511296171561797016903781115500021358130584944825939028065604839570535270409135523005349548858592453674953466049500556996729063179195620208277079830283820064907952841144931862329658865287192698558437755180166676962467784534859549959698239561919559464709051826725150545625133502395718332781647491257336293736958805357631820873217797798462332510977591832899153445658754491463056872261907346714459234607733045862800400797637233857361791201448353528187753634421163349874059050371214592983631704401681364834572509355534058680597069319235329722964782818094114745609103722534549627647212024358283212686228695643516465257995373275885073245902025646865403615880471882411646033135262366755280511321788002715598602582651395487752846837721600849268801795010681875426103311642268335002219436825035747359741405670386147383272354249989799232709645706826096801124955291880694048702521397980119844954607466719707175215810808864334503590673649852953255863235252156891548705530740437061497846339365250693458920573848960540498573962320295026284178259795032543292517195147211758105634938594571100199130612831220244937451265745025449899285302851310909364962592607055319682726983109693776743351444522635224513367901322379386495168852772630376102216953192185070226675590492693350563256038439039939939911785696477836917782300684082692068207073674014909680796665238730500322662077506443691305443898292037093814868670755639430342093614727414097386275182494496052598537553730672933399526815377904410780464214352423496336546630080978944663083050844808444491433434312111478090465620852078931533019177073338859408149366359352686280041750340475130486380682371861008449566286562462832650597444704058696671864818211664119644501145654020536713843955385084493571324061824557438627422305440127217422207258833325283381376500595869550019780895307612326498214405193043854165010248718336438760648933798110931836355011618424491496176001428747035502590882382727121079479667884457244975253755678628764150050340774951254110480949287725823238716703895634646814895569745110028009876827844802342871053283794957029317843189782463697475937064800745553705560548573787355775860027334199274012333545790102938701639706124195263006365113670449477692466591362245348171320621597372800781144794751012003863400324825629435822743176493362242431274385271504241658658360352644719279015545112927724600811542271949734034011471407681318681520464770154715058125075651956553385633843128514225136497722758800045478281125646746013903688614942569189653084550525354533370724291584198956619775677125592220831020909117850929185371787697859164053400709044649225345496660122959175744766652872399301145963526762555198730265896252922259229660937415552563488632964170263865029427722662894714210953462875079450082681018135318240361030477688863092943539352403120314129848811533897448034810359484615843683961683576358594152482973648857772364011703079569322139030568521370685961161071518850145138746318342971599647907727640490748976726728760208008394440175879669098253323107686391416079071802202077334995109225427393457733272254250136242789157219741487053020207578967180883217942771091513748525525927705363583402881441456020883295301547026725343626641475340990998494985546963968252861534056448209147614948567228198908164468491634598901890623110263686721983883772895063457058093395730090288646480927169204826946754040814430999369103522391849139697045257782437038282619006068489302071335745735383344153201212882010640631840384809671452135601786482527043806499154270178333623445687412998258985555380790212224524754723352536516583804441432479870026761212426360783002154008549811734036312558479796557881554177688287933916659104251010845823674597888872836749895225842979196747867693132509294516097035447007603329576137813894661984543257869147128499607593923713000679309589727956252568250074250794550355099220675504084645700340769593041824112872794750380956378280865069910612377582184505976336943591777473992982259303257724660618338490916371644895639144401929892517002524151860448381565263866612560237127194465392344545707534541698655802047857794004073715358546175307827554581536877813811573815960196523234313933433235702448448047283212078038327402348791539183770649921065712059596184331354787321850865754900827438462211043015680671593536539285707196664475428900271734079616536546559440952803832665478823463626844165124675042820115406750498458258267035512117982237259805246711851049417441153610643026401562008672475642923078605918058655025349752910529477852903421417486237667762552236895572070276994271379113295598847075560984282813423204799609607592596524557012391876811684806316410754938915527755924748524394807937947394798497264969948409651359675816508796213567513602319789116438772734496167567778620200045150219661340327332571470220768649699033042476554669207603669713315768788284270538507888052928228816142250567067522481500210959514034947574103626209376217998255946090677747811124619766203033400227925738797683149540829473078768344142895294166766760612511026676388059094693271873486373831626028743539889829027207624446351885561922842490284797735131097610479403189776886004769889321431239946563465482906747505202255451295177298051911050703014458524042863643596117370058519323527288504899012339876248321059319399405778318183369791197606135830193200521146122607359524944548264411287239798955074514777221676800302958320888883213970345545883491408961973444446717837757842831085267403741487534751969845202476295216729997770617191811824067158083346927337471086361178396004817958677944369681352479347400234608567355068398082358577025952788902875212093626273947764915930299079713144582023234064077503919519749608754794270120545761617929974259851815691508232941623001317049968685009227925528351587147864289937025208683230769325122979670439914859117385249282583091342825579226161712358350505880135286552148146010285585159755307913607012366969858933021273599961737839614449067129040634828637665189909498542985537476065805405459603085162071689572025482272173272817592264309093727552385995266818666146360171364363520153767724084292456579547885673474087340174966981903725433541697721692488363789314454258391689135844069611728928991994345230553365401195669994384304704951334553608489750233399564709464806448858684387891867517745973084553201275845066309600000694129641321952263843514500820812094535898876641081412763723961923838763474890151673804069426591171967720079060330976322435740379779734511069344949749300676799323205770360324660879332587072917087640444510415375342676431471620504829881357936551362420206506641241261049850568678657060621391028598443340807601423730886909710011309519787544295609498322499644456040227257610068584557860661974496578114398517793322724698807592432035918331763246868382371159090241153555851524777113148931632476048080037737459042724481723290699931792696041037282185698523687919145749534758846929340549841662249621715321787890363519540883991931157064967517174377391061323300236047233365715690825309400256721174455215889524654617975082081359128677108948109851864797477228363533873507486630349192993015326554667129691135964354835199806871773018604749394043918990381499041351081448272929795892181004302166314623435307954568191037373859800568738894380801727207567701793713455290065687677951751198691749800378148093776859475943025377694485701452295293626441785736772860022642591210873748003296665428817476541042634550466024674388381374737974886667125889034480679732081723809304260239348251727452234801274367635950142432453101577119402580936942656863926650082340591725631382892748637596045893658363273876847720981266366257161830423608183155700506785919404735519787298885008936370734616114588413244685260990801871856496870245444051710364165015301819786766392023334978340497840778484778537877457386970437775994238222286617477718996110324177175063107903087729777820768056078823055116956587751498875118127583737910249353464387563643155212028141644257815410946456452432247880536957021057579776803125564723875709178818320792252047724584485342131037944012090369489371463315264815536732844775597498220155483849097372204037873264932549930108258226051345116910881758712836136963370375728858277933468304990645154424034329068954734802280391723086093863168246064358811114911010194001701746572988795660709586662225473879023864071906901714450360996504537938000318336037701211696969563383973676338881338904539998694351527934809087770221288372946945144871661674840608527472472720458382159582412064129370083956050403341509856887098493589026798581731895772417856668244190434410723395827388950004683432048077066619850053109826961285096304473243174931091975166899883518107867965487530854117001145836779660850294418089389036080033193467589280573959952883584791385114195331710728063832198044234731680863397889264456348224524603375591194155734845205762152931026850798451254717193247911262619131070453398204118842604807297160912972557821829605274500165005437724227080431043807587989946612598767084392635210345447671413218459764986940927419107808669167363491453150593358167185198167525361680030610959869310965814259481128839181937401132024708956106055473588640242697822225460481103470878891917565162700870443912940207746176650111761566932983528619166705649842277471904002081561113331462045802051359334077463282561276045129875219524704114218290462006273068440869073881694477976213717413010726671279049027736335941387325974700558431531086350012141366435728615455206054891795939929664523097846838398940062274482500690168229153738577391084518518189947007269463054414721306708209349719372799733976895550140442877531271217865797808470341884338847099289373566684539435574888172410851061828577437681100041135164330214053288385731668256673087135286486563302786559676669609206763364662888354826574408809632351113067948260089326950606430132492565920450516081203266633771356250711943745506746857428889006852344669045358940237382831010931872161884341119074488653066897879006191740410407266439672455218956860605973987332002410188791376183548390245033648251575621470251396078026270221538402603715534460510327590228727947903214097680474611482389571463875911621173787463687639448182578447375491618444407301634463928721921822304312955353246844278577075580087511305803503059346406985658158516687727078627531215359849169347514430867151427440260913146763626979224699374631395859574567744265479331766735228303875716084211835503561886138494975310831290236336436538470824469934553271282055653887568409584710476973343859912501736490909702660843462340807563363034038978901693012294821592160917967481338771885401331366574755795848361103919979109437219266326641832172183037756836461786220607566850772931371719256827384800341604917126369445665828318985909842231867366803612490322448354821166986420796651182240273218268697688498788432325894475607769638878458626410577810097253572550051083340165801452056638887611931804061007548626835446152564121482997436077729848184569515684186467067143549273682284432446081994663740249455089127865384098925244931355056441152149009161254951767192730577925843704470455729506716900618102813969285060001739790766000655365764048163496666010334167690545986054581012654592661659294861429296590960451565877606697475428161141139895686904189253941292067279868753398400909602742421897906627760295453540529327336881972872752682474148776399035791115773544591306968435924183902601492466296564840235599702707773590738382569319994899987533973751245102671316845880207693366991063245005942913960093302823772656505130751500302137506934418324889356561676851625033530221206472609494905172359102289963319781888052292211232237540256031265178647691547187781496761410776405592679796200361127931904542014604957930659187334833385150076910331709115909033159791516676343161105147256908770610409681201298544495611629501197200359037046383280537703734287205338969959341942701032351767831153100903666773659418178439202229190666598536019223393124408982655128515594686626541685650925714881589795462951936541584417802714628186834608600337524051437103073002075376567210250026341528078760781309476211906748494097808315396904717942418509038603516855160603615493346179259177208742163500834151251592322120314202461473405571461640188442979475544846697357676755653929466993217193371768059012396274829796431270715726474546471761873826760424729117479606200469448918995173387827268264597545439824611748517237812638724584805162658308294348582512951438037253477950049370388456666526981316718963606432048035754309743861550282545261287712719730975563712852722192993499208440520832907392536510383318332875133259558029435731746504424719799123513048870949562706392192516687902413632762919821926589113963886958172283589016395760818467590524483149309322089484692272916966924988537181200967336460825162469885406327484506963400152883717811505162563332928591697539427175652006704699388502927257828635075234557992225858935251883365179682741783268501515016047733322979400062898029535413054199977857401286626786931161588151521665051346936053570063158930448591128101456325278006844481372890062434731111401724531815381448021192531141262316496421053716975703207355175048080648669578747542634984678469814622201775907745514886915802747842215285436247230537838159724134461377239333589079266875433249223283159183467219660718713448616554442585168030212306170149750392472330046511793302885516715396893947283770759005049520700517742985243441547180697508328521298449547816199494043659200927147714668870717158708178836143459915576131602725426030395408918901849538000666802408344213605885269870535121529503528384567119508011919134620352282774131052998425359301925907004872808990570918990066501378027314662782495851129791105814194589394589003038675382554325619489598300936965678915374653798695218711018919640988558657461088490052349999350858240619405747810944924863649159830789899377934165054677820610536543559436722959046214142103581005891430503678229985662872897630893601706628486001829543986427644079793681701345212332199068020790815072155217417680470657274354048782683463712960486776031072424337238907755388986992855759711514692613394520634548538221046318497515157329700708672334206198012739001136542439029708500589008804546267972107579789117233922947114185440488907773770542936515916454661948843266697471163540546763034015121458224625979455691442678203712258845716654964683763859953192409329734294466307408174792029693164716860353728854078481933168939355639246269499247335782113309994890289259522647383692203201886462018870795205556956034907561167873278137711211825219466830236753376771142882754479781747442516744520110669183053491698794199314097964600859549658092330799642854712426317886009659961642257814698123819038789684020501015849337601587129915255369294379833331054951640345123156952085889845281611607333163380261425642142445961406387074425598170112041110459015025335335845094849308093296702020158701764484221485962864071433153906536913678704910243941944049461055521528348741244838598918305563014715639310216220198494525887795487076410625072690335384648383413223073485277366520354509730869678167519740447660492476274732860355044079738498193830615303355114831989599999242724610832244544210898964823834407991797799410560932055803864100171756485152913506986985710431352457832613309532946398956665716293801353777397869540056376898133815152331093443958819856515027954763869319086173865342335714066849897760035322301871326487304526784789525317931944853586666267679760457321242219393939778597245836163547910232205489471797903034380569116858986672526468153635813682557507151297406743283253579619525789231715988308688540343900053204506248359100685502871821661239956163339598343557398748847069397076602301298133300335715760094845647748320463587713618734297864561350867732523713770741253462485660711406390862701331980900733201609413679973039174156017514903208143708212282861448061863339367611858676980388006151905678142019255869689867093036797420792494475283967622982935464334403551806705295609350435359649009517860592376093579674968691545841162967056275713931630937059101882789947631485530776812171053666791503616343151880017069746966605572701095370288143003599722336573214834817781803367472053750688334210454051341435077415216476923170832387493950957930704003004120298837218082795874026586172720017956772281853908128947795695167906439350290268002670550580516700033803835977400634025916997393837006332545707843423645434506409950260828303211324250626346450113728192722749017562393474838173181719099988194368231631228615430446395163523941989128400590860453795886790402115873765412730885938164316110516276864647301909202271564393227505615354041448108105838731930178980729844543806710573787529528678380045354344131093391719769920896825819595250707940782794437338624636313204195208693102773708149924493721938979076801923032551302931837004076903612273381763601845799482631353987936141532001018553058474225065292070347532361139074595197700892211130460900316228138820989033984293089971018518311988022893426265289028037178368428864934774606564768306011265691674102242902620583311386615303440061481164836375076864148860000146062722396790484051622721263834220019844384462313747624424543600513840564866674904647820343097019329800554978275545755835073803546495213015168630170395594533497319551174638775213369065279840701538470253859099228253029695769640429463182400836060785736960074741664637719501923941293353543966526031663693891126579450734213738379512661766760388442535189612322604668044384908705031076551731557041242326744887878825062528099012331724270342612756810034676455311822825824370282470031475895760869590007326937873985967138915603811576458587533641997839221568521548508139884033429726563961798599922764903107835053252313645553530998067386080335393645192106872881098099060726036245948240739930131113579731258692959391131596713207342743919838720718544330250925987041379070838623938814162905090427217708655911429378497275171864667865251171133455820597170690892716028951034157206912746272824877071427173294205220904490952300401448379314750965212992664999393727958426562251168354287318442067661756474279949581071747733566026517569177676850233849774737564304918267838224875192650923175927596036133810070852754512087099931617420277930886095856204284743802492039657134641986619319583206768621662107601999157699077048420927751103611866413136775758034159258704167267442863956390325608471312156799086467631151418179709586092160930632413904390944072183598833179611725053248850100045296947834885906775262472417257648466627187889284514708406824102336205574278660214973765927325029931183405219664612768434467041504265078310659199084318903508719602947972612476529586752472730989085847650343486260739154918069991192827346440759406775215153945246821979682165251330758686644231894261309647036010453263405206586292310005479647177934337970547593915306931515895136702391984889599815435578696480366653216864020001106684080673014994934023433408484698929416099036565802825720181950902418397445826384215147424169984412248101537597250422716654653665188062622230441544805265467650969875782534501770228368111308346579622559003202595431732801442472075032053506527800350640165520689084743139943321912577464956309330565270856336718735735953329453108598652727786416192690490854383136944494177546596053480274682025815846005411585157087540519478061307708754779708305818367683404564174333912636559714137999285839722610874679467520761135964851587217122286853345931745749613231467004503959393209470734615626145195110177135020024248358316800214291736651346501044214930322098259704769717120828671914645336820737374515544090001422821837436815313652801962087213525103569052470560755447304860228860563338189309254507088388219956809952679519481238965422692691840862531532710918338627568631028285111679960399429055308376464695359328065451120546871731933185694480908318203078845172886901729510106063826119761741062661778912353096130539427296760190493657288490964367012280076520778008706591071075135689655988118838436468255805124563757166046000837542075034460464417049390439513442538402853508555096477975158313174197906725159409869786027169925184075311253229388349141668967596317618493620419655224956979153306655027754871459608113831527358667874430674140024253620884695097452495489528362591322345196890083592755750330323129128016317680056156396988894474612540057257755993143483975358919605915648541190790509824296523750642457134950506637325256297629130254221791655892662861174066977879420741602296157622800379966708137601965919993682974984395916972238963819189014591993259900173899207699449315504845351264535436099929928687838180462839126911611185175558767005330192385865861967909394239031026714227805249686994274659281715248240802355903109249710360395702690038000151921333987986257208731722538419219962568382048835559877891983060109332424249547204800526140857566513110417173473536181935631137364925405672470762088516895106601961814637424224181024879598727297356118742147597382525100623448920312391469961068300976787141051373250999090946058335450333985864598723221427122254461352436153745289896893151550268827268081452972194954709372576646437262611399694336435018923948042534482204329012834233295855939328238196168496000422421320641371481040012155929707152483222317359550033774075419236746719529886151750521693238322910474114585068713514265182872119686074842965653502843701068196992971090896789198785404090628662836943920035474492234787799771441585279131310122467803152893440552781188979399689872361544680391742174378236377673233851044084370610165643612978244204925134738809441015439483624551175660304410335884689867790970610677985187570313372593951847556244783605812456002400110274107464392102454537277180888315993877006217123168386145667316590118069659261425609375428886409971666449897755126652567208422061976343813380245284306983950325405111230549558568235271358937967511514427690545356637033444457385452445045487407957420196076388090898506226249219667106092068918008408818975014037200053020631487612276426873600618473649106590796434434837220448320770564784545600844169174691440854742844995599814461717002277768315312493029238762436321232074345517988408924748788193356384911612311762217276894826997826195990801913938947887213682935479991934334673215921400680842127260748255598967073664850814243106192576406183239934544039486885396422025773541783024511086714018130197408268784944277870022525759084094399693060284408591130957200616535883808596363812646091407996959901416552551537583482688498860591875763587267488313576331297383642631521385371528117157493690247485975004489170292930183675890614576566218705870522232121317788501241835255592336679516928853018909849731125076745097000046939771537463071311658496884924897876599610863494158014039630569041172929215278221045719205792513717637728784277093466406942484660088558168502751286519051306177343085094632883985150603376815909740623272755741551996291177050622103174577293927899973610683407356996490248844162201132194811994507159476542852883477058460098997430491338741533814154011715497533036265503137498400249879775436156789381614041194546572739622525895912258175108796852347291732134962005256707463052272279377320259003396978924237386398050921484351414570147859459122317253554695270831599813840504481428708121595406838635762538848566052896824788218842080275856535548204117683951524067695026764963679286359680236977928526199672312004255239765031853053723260394515442987642198700848489110941294345622364358910258537482771406756618719782027670201243758220922418232501800533700189272806483472332625805432681841239907812816973440624077078554487889099570785863417312823025791631930542783521968580704824124321588983626902497181447268486016782237995745976004172083036812017864499976053736150443528219849046346010746095358956679355970290888846748622876774022426919700282775581860154268387456422939118445589094995025911903875560273142635277483491183527128438564760299110984337996730239854517569321282241405184228347552823136446282076044332561939818659116554489685627765647685064473501691737582008115901639073824455889686392790117784961325315764916203368490178790792160502279744648673678352149442886837915655878741136009383029504105556694887358377426260184978453829726190212039427828389452546177598975052471145386408435316004426060631173505458206000860535650703407244767957527546076322570685968589237925530890648953979352766321226071945489380772685423415121021089101770182881247369486982624278005023306036851469784664306037941073601030535190288162239541601918013295582698860356655387357193815510863614864378548962203032656581762016010299551503358800992197743464671780815581859530380986323106212217854172634261518366366124083470403414487250195245763201695782552194971884188752275052793950876705020122122168498157342050669580870739976035108984274962540259873839626681431678304600425347449515541239893953988294036072385049308136422906247035871986385380505215150616469154202013393312467770323161318573374708304789739557400760571306414913286387515072452460749152647807421434573601882198502340750272123196472430837418250719685774532662109523490959647483494920149264017323401429785941349804153548744177833039224447404311773565135619173406145141538053219194287628754357244388489976198852872560761188746906808957768348459576466561301799562631519263047676350053004850038854635376650263484206116619495120655255882298146612565014282527229152510537762217936036458298086509886534342110112196482207124091247495536123551513985492193088250289078150970744428031235470987284377999126467321270475720802126237632777117973158771157018202364817002555121262236631748914983841721272104531148226969205686030134220872262126421885432941741791338958890029364378967322181768200033577682061204632750286885053775066994811450657929374618667281707449521663905046472026913869840411392429111427719895468284587723719665440891481271067279723621372362726839972000136534450968918385637273904033090827845799789910696778738928488078138473973045836194409775426202840792112409700499810556747174504034737757955719199660246721337067267005953450043495895027382921334372251170801671370773730932016106414806079860544454667501648538047339107971428852493427295397782351382773035134003599971196623787299977554150620532842912355757522964775780455414372980357748053341215868969312678701037208339033984244451774488605485023808562911123975592870319693924457507009978130896028880333039015871880407391016015738081303608067251246783125629386874736198705884454684175808560064405891836209485453884775540532970928434934339831597925338184144619055539764731242176450416617988994172513641375404135629133282557114525521435803430116659126645152672588013304931405441842009455697400591504411305897773761436246915766322056175665251163141790647227261704675532771712264251095985368320011346321126463080157675597751927449773393888617021923641039415647410130049553182463995612023607348281972234791602940527161245453705628974186451808884636845372727336025979046910911100022438068817414347306576115915911769248632302603963146130428625044269488387046174273296194351677911426986263429476945160587521965552093670320294990927305032965020622915371592495852111289457694070719336248538275618404627650585039546093534278734873230057679708943108186025784738630331002992874017706348609767296028132464192977706945084581912235685542438268879316882774896053558191996779735296215851525599142863519778140454478705124142784311328055539638328253530602401737520226007882357834160304509147716620095269831265520889983610509871604486092463121833773351236560962119539894786077530990376297913167449496003224252808784391567425539317736187037566575450271564586726393552161468662338725600561488746421537754180459192416009683742163098498689463705164962278336720562413184788809056041460044214253139605418746719616576166004823141122771048595595760601705918977454186987846607777099680175857231700822541634096825871944502723174777471124138242256333084701937192559206695408421217718162051653747327720612915707367603750513611853137425038927873124682020661366279819292792707466346119759021491928934727588417013919400595280255282826036956693776455377595059677971919927904791831085855731291372514283795427465295095536211846581676990148287638835149206237935207428888998826579582691175515285987202653365208589936784334490940351344742020588779505447977629289046219201064585441947748875417051919408202027531128320930598687107415150841796922918874692754601422635796371997920766964995003627938144891858032645662419302652485783463055718761253827944113845091086160451453342427139941703808493236713213291429979078629647433280265882311189618150419667855829420860052274826265255054379955202342177947342462072202035886097307625585353333439691507346985903023129570661999648094799146943425238461668257548416433202986874197558944393752558313264729369210522509255908816673134052878798190693487843595692303338570881284644982519466637206779187517464715801729191861252865810918316267492942823314846252944111838775633944777052482335560804502484086032045446804945915361622960784880872295058247015451281862278090552878262376226503658767298736174554131859091837477469325574401717642720821568355067741602595457462008517596680090824692364335306264979866217281575379485579569483084920855352385864077463267491688100152977701943172096706421345128590489763378816472688817588123612587269765889107505013916827578013138126115812717654053991958889885868229532859886274622155134985517326550102563692537437147915859578730999007824662010334163047894437533698136294721001951108150067325691855722580130553382820959836283120073780016552710831562712100974394294404938219117491730665663770794070951560783396357149731660650639668289432902560894140793374789103019147196743274877397644206089473826767047260870897529710734073461433563032848499782077984479480021614982659267346976813476695342857530616625268816327448310432231630671162798297176397783101305892609687779428516617177876858065747347131100411806667880072725895563621640296685343316555657554495309436504333381617653873165182858630344145290475315073061431796230490243883933639217964534337782857323013349854731491156248736381345232349459064223818256330280866065140208130953201267331984499419745019430681189480493267594167844270305991640022164523112846707674656387650506580745074464602244565286836877107134741281233704346818911593420956260506008749175162524979334871117070211550026772913572872084739788169012281164417533314976844611381220499601327115551963146929350100386215145092061506842351203469751847998671294653327843534911077785071947312633666609709894841281801404669844491341284423441691205491195044892594388915833688415558388774204537907657979954487804171246614059063097636489577348026588498777046501932861100603332043137203734086458989417455078105660378829756574916149806743467905433381202925403129153502948499811403429534984201553690762853898680752135338418539781536973968694527818900016711280159335952014940281018613618994512393339383668542945915927844977198679649763514419623163418342966572483481518881991509429921687324102298849130503984983607786396609112922508169482948203201819844912619237086617214851744558238538967273853318065102328938565814166463721034792840157473313935192673522302039764205105038906210393850875600935179067376702824386660870290035874293205096064458877378503274913672061724492783624123102338947507747458587507269333885006344923864749616441225066095093566964211639634797985143131876467268738646017215963634414539835885812234986524648901023640586145052755358384252431597497583650532395484211772255240553169245106268702330082855150044510974472728484665616876809635734911146117623929846692727590499817849791357438381353662454288906779670665090352250610253213880972854359126633098394035674963633747860496106448456745638183787195022147603041818300126768864538581984462912720960133154233503663301975877770173940591428800513174417474221344000237139729573447565559894672475254839497805823688421958888716389125231117699423423514925406846673478893625685616953559175621023350226103361675373576294509803154129729709807162248174843585634102513086853927594946656412024944803456587474047536554917554786101419217791663741659757170872354406440410517710195055930816267749143572222692592986735892119149516743100797729900634300349536325058176978420081732457982760896311693180061982123080421557739383883804492842815381370884727630304448340765439385468874718886800815909359717907817085283894146406469006703252103547860213426271830294532114650491906022291754112752723021245335538750228990321870545424711394817398350177460359462415923880910806269144803526589843391698234354866656348131949718987172050580995749941381364916418908907314370143483916272863752166863314114130071062242679146762041914043976715686698489037871073945602701418840665194750155206569562421021195538633770820492791027815671030285142524877049514214416407756177294018246655798531088968804226272950614730223271384690062214095523504380949778874241572723426123551310654190439166068953485897046310638467567341585280059088094161898771097681575220001148002027274312639663846667042573208341886746934437294000240843224535271948679687361245830919217538539374576478306194297714796050329295139393908368788478982213814617108362806024317860824497863682288400858583999730590092879126232619575080231742532301954880697681643796321123206993228106886622293108727235553367395778417951555523164154679998503010804398367373033735866277672138399956555849464755156056484549791827779557735282565085085791838762377541858009289856126211304001714694756373223268068414292034414067924344816796118486584094897790050209835190066351863971500884600769918181500813462304447642377367626317052972370189250197749033519181848408123179610521560243912068354251662668120780293158704707707385821176373403527871353919538451312855667336836947055861618175612500916600918323486291717695147559987428317544861264043799789462086302217392847561884145917393361224360596032255326882067843631596325915740182386069996476294070553867453364152617972626665328905225126172711764168560980244043012743957171306541332309685393867537196696320659800912073961942860190498818771123173697974639095635189554975268468801881576668402658513909950129544316492062991107565438658023957119552019498351769448478286717451340323399087546423082323391531456201951361282825244260944669206862937362097968921987553575187957194357586879154167988315880644751325203730410989317325963753318252919542915949073179870534868878549374846570177215272009732662305118001645413887805653691202077878480396368068719416243368706717277059054679871142052311003735260183356066264575016538554335816002940984408345295257274851089136075150684126000762820516558564887093141940152107477031597743324682196592566963869614620882555794950343535556392833805804040948387873063408898060892472178133935689970787714304855196047972337002592039884079365836885908236582830182921307530534468680008102957428332217132621785744368756695404541523528195154309637428732231411930843342789732658909775084918145214462702821260980592872680559131015840949211818981837977847872536139474839357549154208754505747919929905791288986573145500248794229538192500510547035464581145810675283697762380539627651705880820511799988134023937639678493082177143005164630516980854897229384939509083675385546278450078783686684104160420176660742188658607940322207973694705693899094205525185939116278322429635663351665523449309614991965724779003001021165614257071068644507139144748267038253897576471714792793911571038244403707750686022055507006616176892397209733366643137918108654757534783903170542209515908043945558376924121557880779715139363050064724261551934955868430086019030993675143640445449492324010959256493391955806734685239364297875977428203866280372594910328421131956213900955254232985963019586355030072022768865312985221684826564636191805474891923755855037424458487132901367998504028521340330546638841278979541119474032536130607089578308048614221832273781497698721200965115871504208185429677997890536393337245060257159047870526294354659775120565950759674912398136111386395674397491348056808319369823951495723115901392297256281971823814904910889497750305400256798964106378863238155492099681568843829927774680140264679517011855386211557751654792548884113297425498217669404972853124859985496202136429737368106957544523058443775829660698113184888075348496141735143663089652915260430004326794343146815570639327127482536715187478733307426249931859626079881914716546408633303227152661702752639620669072738301674873434502841903955987596955699098282527944348234338704642246075891793911484726209132774176898773149415629024817247116533093458529225999887843625751539167849131298519428080018835300039840623795663190615079053908028196167279257215683705789820431557229031924121499037641624894288226127213124717449538966360781204249166862536103104687536673708423041935173779556443447826559458375358090299931649688519063964885815194056107875309732693382804530060250628232247162452341669981104363231401342453875429584653970610147044988184159994503680260806378734635833482073608436713717175414172467608270254894196362080975710113105223600441357787170703885789645121341318014188338591704247171619862486123909279816108685778513812637100192721489426913370510826899939603270006221505316869396394889256989002194101788637233501215421611210732828661724016467139073801611776275073815304194470126998895314362802193418453723307880134231944027168206968020121175356869806295495253811836157797784823341291034278853097660879336493584202363533858635350069452974952009755542389675006248775341290643670812788935707207664028587083783188422193135215097804006930195530570839633549794442993312363010744143226190278599059891518930664664840662154220900551103885863510407282613407774635500960181844755200385830345343375864936261723748273105321430529060278232063004911684904117284389196322726134819245253668642155603371128303157774383019010130337703902790492934445537042181814778580621404334834722472439329330795102393512549395815771263679081167780939430981531653968058319259327349189039607052442932157407290191673520886072190408903902178384555763860898815277748792705765434920314173433500304747054972263085696440668931597060731120372858212751442269899353966160712797281235933352787084401805053558700590494723896988251117870253802171964155429046128571676575393446017122752255829389843716678866101889443306033844030925562609974059701382584467077285797619391898972927355990952126954590034220899784434586627402268288984000782734500272694530749768668825791687866019013522864515788883563259925464984911686085301668003301166944918057114934895416793903782759679649252580882796115141106456169534257206359526136005570559941685347511881751182868273916521854648973353003276277184676049129763759683923162057710307737675880154632926921405360177182200872337699971371456243798772572040538212127865596204951018993710629655871305392855424400069736198013731802039402084104780997562980000702969485996335334189172702660606958277244757018171033586636920426975422790407935267957637391017080387315960949800542307746223951277991339444702490025188715280679405417424524179586521336418492064606939423999367580953953595304339344356280253840371325573978946712708970189344429236649407725542574951004133370906910418092159228488220784077600442329389248176936410962953072577542682854449635479205859160973118854428885084542812243101627900484415291669783878038660390527929450039433082611135115489428167205000858006136392210095575936342742894997302992500465867758632059797677346158721477176553463185754796516401462933185109061993645292182772732954160948688875260441208297331613812339686888666973636117649163480177310200830629343368063452772130197030377570061963504890091568984785997093252869390216909189977836499375702070071834243618871815361146993969956362487060180211335020375664826078774614317866458324964990951937969727059464677804779853148901760004179688159895262135839973619973256181125556150365855535923595462848524879622889306164462091324351041090630548360604180624193182380312097779316253002481167432163651222292307121883195798565794487253706571009789777586308886809838499384431661095640641616496121410277468208950176033262778100598034054353010389834727621643574210950684348294561163034920735228702424909172854185974544127943525590447058079964420940286405002791210855668443382527120680058047308020752986400212458394216762320053018235901580355883447280301337675633646667460510298566584341254049701648868405072310314892123834849591769637475337046877972704093786446580570951413273326168819599235007771691097575482856244956280318800602790699166601021809025824465830332995035708796974852469397044096637037595331941167064598113722744059391613475939731375661192690161598378996981918310444388193617121571115631324945494097718089691754181333028048268651923055825090481252212973280649758721770277647449656223137621673729495311104504761314905367378849537095463618581990959607916356188065963207198229372628947231890420893839983211069068340386821890087024492506931192015973442283446900025770801580520818048540827612261295395494771333416891931127364280667635428039018285580608754632809085697057397116977324433791574180857036007534640283317722640350191812080680585745527939633325619072491130118295158018246102561138668482180998142823946962470791444867184709768849439532043087495229248275697216200480030386864929215213460115312269495966785347705665753495878932047741226909763611016216443418614557175544743554138372012412742046107498676416978682467901424468528673061905686753184269238313112979845045887610456961018655682926020941847752975685101875119616631030320692180356184127530941805535454425249127078631342584833538403554698930603799383661431888895126805704091782022638756234162952039353681260778415571550660394541497100729192471287101559671055450233381311556846842925580021384587139686338590334689730960910085871696398193568585406538195183558359445327470218235803030803007164761338826150260693690574137662497372837969703702519807839033773112456863786520871748441813211033102455331402791541280607765274987424326839710614269167507602790262119564584959236264824988876520141695201164265341850933454977823420260355903077627076498213456691733688888673239867157579966938564172906234695283085159337842040715582832570373274774095287335823320473273414746374820569700449774617777957925390061472843375471482727612626935728807918817511882820562304197543124463387997808264911905991953479689864509229232087074939139476166907793788212809537007599495609422177997881645552936430875538936847310869929435753808990447023606327176193593225553431501967938451778752963778301704354252477680896371039760751007467764210106146865607268934391306692226539374468173879714578161945307697136255217323970353524252847395093640854415068235166300875131621268430776427211517970872270808652636814089165314008659153785373984937984435972160401217578638523564908342409572934061421168900767338092055675358248947048263744739822237792389782855074604122101207189525289914066086429605294109218741028183718128678792495954123806203306948076793431357028299745209737517178180325728905430706574616605318232893663085058394654055298154686993796490199829665575168102716209191151210567086673774818330929806675670849451415024905887100615250489465931086169505036300007280257563139197893674085836427033237324585176616781075068738697821851225513610670269353766772505900898222000815344680431963241016319233599995489799808937729832122072876196285371358040091259594183097026468215023500210616265038269337643798419989443027911791859523692906670092218145881755681834563403919808204224475859675949969150323349867347910026680666701845682089104631880410063848190755534355748947045285467489366299720809071528903067777697727297767844522778745937389927791302312725022657676986329014020469237329004333136315347395004435888290989742706706372030994132961694050058278221720172832511460266663889398230273259007271368131107875404642294235935733682674540656590740967423291557169365836051490959345392398485993784465436835104002678070293322692474137297747728844617340887489297621935158758158839046703344318070009301265973707594186682517297932912632136717445991850570520623639804773890704432277843523065672572400714935623800484981006981773170671468089761153836407024342871096587780576032176951339447897236516472944519510618103866029289961475868387819456268987390898858391068080662813434696124574671479996708230340347724304193657284945360990806768454821734832256308950422462024872434267496424868642498378876463365596755183993077619065547274560378087283128003397200117435343860333152887271165444234796308161048175663589587244259078999388383933378487680748060397363014466407750834865308938157106173653757238071846818514790462433331945876406129274539539858625013812432183893576061751728232880483662096378740908705213355694346590763789581991045368810594607165502084661418297070041782033885561479910716079920314169870639376519714529761468741157824399673159530688005264787520621031574418714719440328701183553769259051784207663808494932006374748475594117166366399768471548100730577298640340601223194309673483508728458195489989566989391604551981178769727006013867550728768681905873557049713305470813175927694964899979447734134562389828304043584162041777050566655497501264109977348833564518789589545811549063749724183081769919259458412054945362826729270245261356446356964659210228894102306328015189438837812987523546281706385782944648831458078267953249491215836092308145650067890783328898090124391014174907003516929646209643269573400255986337392119002734386163062279566945383567923693519691512842785455406002785612739319120441477167006240182371954259947765763974818019263915735903366971674927277467528254753135593305893668162152889817334521085416228866715542309091601511350783979518327016411487416760132072650296822731343963561016531754688285888338805349223078933836329996998540664755041756324805693443859138207236714727179257899086936456383239891109333255966800878418666414287530127428073038006484242768893153481712387730643859668150756379060693661054877217987008227548076640610966605265795230206476673164514418638095032493750110534257806703666202063929415258064614788962341381989888815371593747653776339462847317376405657564236261234676176988632236919119544865654075436295701929753292646379399064583404037693549598455518249839734859272782802921098818636355489478064810240535896676340485297073368453193820941321965433943275471342079439283502949469585822381910595376075334692384980947528013402714028734208506401196953757473826568219719292197100995827877398237369218109137814238615069630098240705560318749187653575888711614244158516566106236041733970383083272895790120188681243010365837213320429971252924485951873195814590272470316832673394632920932384063562302389427419583583703868778525146471265942529354724568483101856570856862449125442226845890982986377156984187083244774737082945784251964471555421035956302196449042988725877503501497766341779608126779554930122980488422024210980490545728766806764289644464781062932732655364550383739444675601463179322538012569758681106641072398689927270352925634699858617080124254037537994764787582347005662215874389576243842618335890917500968491137914236992052307364231078407517343291628899516543501031438052934619853767675407519627022474093270059271541271520755727862465464590103765400623080658500112357005325828740614030116180687991435081712892162902190272743378499880306664817063180249918216832016391953563794749733371807952838236016562784657386382843356539889817801983826526726029413848174897683482913818350616246735242421306252183100598050359091724148848934926514861706265128952825380913487973099788913997640896782663359331031131701358131998949682737091759845134830897436567431566657162974979008987974606095807672378664316183416276807077360603005008295687363649853545173008039219058119356171727189829651502802308993322189879357058315542953739426993106755582444084352244884189900221776645229166575995596368074805594582571656740940335626213363926453583749785372417059455798053995677346453889411511902530348554374942233963420788989845056746489809603713740007936712575881183434544545500051917704712961662241146940058761733777712779024134077230352770282398986582671861108186610105497039004507978065155362603094885397394617980991376532064127978408737995221447506350585168965304405642560590635149060780135410271433949906384415423729696510960461207951762879326998958269436905155008815083635858035526828467400225875451927496892387231258238437719084121665863432208852461206473164123538959818048022451096141387915172923026762206537512953900206393781009872606223974856793009050080488249361714874855842182562185437808167793931374901890033276649207852157184334654353404497924231803409526250082942964887899396577356083503099341164441336363897897041007651494798293851617080825610234641974316796704504899119675409679478202360653057667441790175977481857126175263578359385144513779677942226981922636928269318536603773890572777317581602114010224294288325668344005411425956076355742179582842710582450131321251611230061803967766949691854195052991797310479749310462755321319749596706747264054775364800402967510490526630279095314647699934715855199505711931484198076623589837929107895509912453795390298452832533539847937750126058077543265698050977839415790892747496527693109874868534432263252394393662838741834224642290830585942558295404757695140622099744294043000018960571470181820891774788772749798232447413953032991191049159154143023225776204893802123120540320974064626778605630469448834134723896351534086093070449314971435057019712184420202368422307891572318474256656842490907221239129714705411070036141469996181664475799552094070538177136365983587888035055130755758314002241118018099297159776973564539790972150510718052051018919473770085704726982099099721408154133305943619962594590212672521205679929789153506721071703632810487642633894837693096094567995034656006954632904369164764709945282984390020588361291991242671734859212644304399646747076878085145858960049911249397340124505291434283340188590351092891683254377325789856885941917239930044764072170625699210110264018904603960452451586853236298408391820966911192926989113078341842152864772520641278008046356072795459806844082191848018223887773836133575172406121933292462801712107394415222398842877059769242993982619929799946610222115104400882361618365137518262765477351984955940064958480755125131970785953791850588782291574387266253858528950150407395621569962949516066750017039451541083560880000804527915547322560014716665513715925646644880596218105802326774091034066717459923672760934396497163933077289590023337667137359267268894972252839003526042509030122098290049909942400336430823266263738229811836386393367635434646056926429609249445954394081069202604683248835698359432077482466005098452554468651673310513022779136388226897047556834168618879014518533773085066582102307141150542200734105894665580969178086140817235746390375967895975017936936254058444559831087535188759059168009704262522369268977452104580935376108717233419777089017685138799353182587739493751781653088995748240710480304407608133293410488079233779438753386824713366079120182462754744558838467172391309241921727114413918361613248930962006994627070205977784217117914418916511238730783489405610067609476749079917456315298955363172569969263307595299469621849044494690696344229065641546433939574233574065190603002640412256251884854522431045281920550746702437867032002518579255689421767604170156867706314384693516123315535698155190072315531102020403716402115108665708124157201869056889531857698274314925327680937609756058408871518736806882678180689536936919094678098003754816590843703485817726881298790759991347672565279132215321572396090303625555884304960189703532793927888961705676118489117642519293430296409171976747612995101190259281349848533994369574017816148296132715345558009704013886151541519804560110469531111411326532773583427805991481615178360102986696022339613753339613248087352758857009881804418080118310934872549563047793084813389015486043169942774517992075878907665211695025786099402375495207276659928085531124793902161669992912089518705519651316403234167570294075115119181662729194117737316205404362620423690108134135600199280332045594230070669761424366829033973264468102339991675318737515346522272038688327332895777450238474179622506270312441328147470974146730169292655468229527748098799096037935532596478955894372407975837783193122260141619299990917512941108335549104956271107428519097117372736126226893506558179393134485253927432721539101573881781963462458110091858220242077822041980727036577561636318067212230341173238646759939444770469629858305284023737221837251569537327011848984576601036153528919129343495809702888390601049006296094092174864608246664703481833350451830634274541891423039853233324085787431717997187144137112856404656594180071727506331057553659994934401459807687771553726363596415526383117007023965806119382077662626844776483807862819532340917347310615604780732189644261789792190589950606324990820306646667971433774469203399551786702782005390269971927569535844353405170241399125248292248726833000195326932135111011885606107605758833326081189198960923851813252101828708546626189973709369725520290859236943505545287039820443603353942697727638878965659560488831788302960481736621763240717311623243724145029650952897703258723894499640139670586023656623989653118367867285589293541618476999230440120675259698026487702768766146378161325622691987350579645440557618915811301667082045000539895645393957995434107648324856125135223751854930673112728209624662127164932348756658266380869438471711755194079841595030798469432394330630972164715156275004776767621448627619816989086911954687316225316758606596343069164262662454997285314231224611982479171052582166449763029841534046487454070477112439621018216852309650872330484127524113611172745690200478060066824997253060161155463852683709956820342448266327842721819198706533477899444250498528887248413140435998036303508805335868297930981935363350661247619297256456124655567654422493930549093911776219611122842560110362615655864082498969980478281187085347554940447644271174097856906602999122812551005920132593732164529466668581633988481665285880696602923102553477083660765228113056290280495302141192514093154823692012069722405468350053500986113152028392861437907415182757581517778026686258606579681411782729067661655692730202029148228232018789676536855300124173412681516593363581233347779783019724035260813443374404796812651545245510194664954885207263281860324559612470599924536909049009148612434336664768016623157098854899609838272524969641977570792925381789745263952199437631363468476115849147132587469586049584877017619386598342693812500439841542662531316075502761545541692029616990174915557345706388658967800018077047132058877169532788581819037439640141680850319928203428794401690127383659906508344399103128398357752476873042707505366262986585832563160532210198767381595164772266596721147024945385555953796503514605496893925251242148675567170201010038333406749682557952377348367510775173928782458534784088049550609447871232855000465335375645597424378496494923228414213157877415984907420791575745441283510498441089371364030065348517980918390087316987544795391009433432695303170335585847474264969982406201024906501133214537835217335965129854605284862226112160662617094689361558380511941013602532323387529987616659000230472589295142060267069232814389841770802577540784125447222988768503983229061606549818933621545925043587646673489552463136566730965281153732518383056844299944660676488225949667874789474200648949026046028976137237070858163329802065902816792980995476280533010573880222891258216034871505527017625293725561704396830926525401817928225414691656079072516903958280718283584210806372752870780022986483580260313815659831093515179197340191399253158191985424657772370140678931777239858315654038190631375105197966901766309473984035815582555848662996580547297207262249354737416263058512364864894093358554386292412503992217691626746527048154134578604468309142045819396578075458869243033477170536178565447639460968904280754744052655210157041184515896723601079328108758913299181932334718115230878145200696365895816872048653662182975444648629104872735024665354438266271213351076652277446026477447544346280850021215039864495924032809491376101546488850474340781154573565555591794091825833489310313568245633637909804327623650332613088028572594817399070551676662174703613817315992937885430165694258938124261212785804430784383957663500552793536423962672063388624941216130549973092846089392545931122384545366563553747301401473041568442456863962427700905454008097403360019402309003405294781839287416741020821567224400183582879676268587472541009740597520897735104994645226966262502310888733845587106986587509600571272648603540633831130165477713489028988933655185297655740040168413921166100551054183711065196821837122130789549483329511513437830002606201105181969157923812950634387861751302611926880019134989323787293358296084757733099290012351298841931758704458108966010311488846803419101259919067573289295524731661885669392812137833251646009035184621814382043016202787944853770430673496148530386300623095782504754269044300897000282468146150315053767418586536978316105453576199726304431463696306051560398268137046808720864627924337970071357242808989172249338194047551297815879274945760145280403777730827713403517287241736334660718512608747124248206606956424859858417768595043355712143285713114036584277137428444834499623591896562418618022988117752332811294647576328009803484505447306721529613759788139845119066675958112116558441196511706157223478333289531900061141689923675327742860870146569443440822623207085178629896852546892792429219163912722238275010135097927133385770162057669792095401917236303517963787140669272066445525016006404034573324539961408865680269650647469645666797345988183280823353284678926409597327957074956506101813592989925967813019694547001121912066613496770769192231945634903996272703698805817596195919193117198857706421066820210069344192052691371253745338134686967638834237076641292780931367236373547001266407420076723136367036946122088490480595780132005836828466701060728204480055792243624225499070941666238001896693410372447265969979020645764040628468730961140999064490486603257039853827256399337624419411090363496872097709138521969496985371132912559929297265094137553609956213615209551409622009748085613600827180297095246998858943027266481819468265953057194555815502662630478082740874082278176773887277123371225380053651691492531792858697601394221610142050116193828779026979556389370995030731426674864394632994575982389153230385986816548634705251849439932213781296299805715920574752593875180098731001556933726137610681199861511297208985352980651871312455041451498043910192335587162615602686337327355101082126015828528455714626237696423559332287043547551740482259790616224549463346156743143364946036461740849866860062898788872128652223705576398797210637720719632257151893273200340031515841385467566005138431160972287407969764514878267070374253958660573888742003543652182994642360893771699566540367869612885572480899068209955010294863944372085216293291838075521418427357789038509489816381126381716803881125998643704551679225597625099819257773251946638922775290935195345237248324012265291740894050269637742473405409411563077897325792472717019778334370954603836069658153348510674562999413819929869823507999044437629066675762344388087022706396050281454553515694616102365952741300560857021988201957987476528689165607568396139220360264868815511190279380136286515520664179291815284380967114033566534963493902493718285822537588324211083322054735501199876009638892083987107582916996761967593018118273374852358375029299444425293524773966924373043953070585976452193460543409679727375576627246057762243628321512903885220580759739854083491722334783779280426940143360728388105381755574028026007995041405034783910994313585534426809029582184792164602019441730594706868427568807628736507796321807469276383637222226507099197535038095245787769334217702236600262487126882573990738319478449302997957698726725596129451565642732530617092911055528102189626465540033595490341631707714239690353520500642711138636467454533177834603922988137432312480467081593055970835408389460984923952569982094630488146359514572261561016660624412815917310896204981499128310247193229737403020885291181229021257858439910688347753124563881604051160024544308974578836609295794574097052518496717418939463301275295404841791309126901156110219489327361073027404608164576243266913304480884948326517359379302659691009261637899626780011166926518364161274363269467992696335013861954068241452876754610964449373786873573076668119340345260359050495885221928096818068450022737071649874191317650029079851067953604200972319734088839088780742715495968875491522896223353431659208232721120816595556982123658571042716121064574524018171520156818795543495911590326909318127931904963128022246339315623068364845008596591815988223875484583025843829217537069729533979815044250507169053382966866253763375663942326884605371497537961870883853796068226021961416457139131825814913400126521065721844755908948060727526646858616356521178453300207887934340515713979723673341585499911257725004510213836271986350342842140992695660314280965417530560246205544142437079472497483382421675097164218026532473444424285755977713991608060228125127835748025379624403029779598950442755394109392085903610550230863829140440956451841647027874847677350800324895658319529284964002790186156420003489160273810704656510060192737102672462901800867594296705302218657652536044756597212240529342541771912993325028268178416931251045334097584350379932293311789673601875389557631088101252921354600337011864039254433450539783163717641833447850004748626572782860840336519107832245062618006244614961613472582775524959488595822315113468617504514995059954659224842628083158335653958274785445561771919299289758539811672844011226478482475294725839068949548406461715032632131006288121966777427495981572122417586139066137214166097292112835611131165494626316999181056905467660611502086935143408196081333715589065628932942334812435604315658147348578161485440298094742243938835182325643029828536957414767522602059372674886907566659625830943361626778063637286126239641092352597407644554529594510809790526173860268824743388818606996346304388099892582876587751786749855472591959273648363525551825973314588811549227973482766380126360162017797404723068110523052626931625777504900648293537592565927889788072780336889254586877281481931743159853727878880421785066273445026118718702220386075161763619422800959284251475247232687070892717500400946317057537855654346590895984141645426670000496329890198821419936354317019086339751575932937022365126831262295624143281737724908927143138237470096605736422062786624444665181106402153954750730713731262665811146889030580097288270698057787954759360132231257631150662039163219850502146918458606325930512779463274458630188220680432393217244730770034878013248670036927890542988726459576838256350301119547696226240760640414113098671957626938325194733077547994759863607729999736333839655193719102272044591308992846315333601438437588243700456440785571302814638013340738029063705674984367590237883128490224953074730247893517801032208928213166653326943549959708867984652261425903336312090592172379237880856783294656165367642759037648897320799318365320146977975196809518203857261814465845243226688404210621507653683609066439701566354084055716054406204361088142312348318652546546131908604558040145787732779213336636185736708701370254661527266977160098934712362998021352702032895852796204744960371560581328816762586547949542141452543570360779296934101733512806949841307558446268098946394092573735627870748399507993459715754400947687518229204656437444815806649934675445782979113519948431127324314397322080149171287943516819920940812731129391631754677167099094842072120001000212657063282668211711401323995470940671368508312166193114056134807781047832780826056681392261755335474138760879557842783763996980247773292603462721808596623055055848313304680546294147608652428947132199380878442803713073392034261771649847879820993811887044572297912566015923943967344051338309120643117633194278684812309393875718846544481932889648256632016052232246375605739466250967422583146928148320555875166656231886791929557068209961496305922630371242392596448451179386148516081962080642465074139667823489685692142018927375666813458129226192894835838365834216408181477127309074509544387469172095581474712213102337706387324812308100436803277253996257676745981985010731784070661375562868344635538412815754823315836819941305442181715456000069781273067089059894397168208395963885407185813296038992603103667170832924316062658839250107867409923285646769705231983866128042399445657509757860322466229980001535413394220278173546659983652372287199740316126817786775926482445997476481660021060512021147469649739203608328584456097890454864460595388000186926686166729361013138492870577516351747119110622820175172506692526892421233153302189800362511305879728504472991794748983840458174828731510865556313556702260122142706787605010224216164664651536598203778838301506931938261362366871701290981690215862115764683546736577352536450906277332243523191259126928485739797048346862154883545127254665879029477490169383165866857497348970760330253976416967243727170412293790234856025478360036196248578452957253432725441214166051485781055498355320120285828530526228992796011241280453214537390558538644396723715055749661417168720699113900897032084294575048987687822115988723275935655065782674536118301372252228209965545646807180522964355886027695680523542302025941245273207499428055426172497976571963140075422410593462324385077966783553562106127437635899883287340388327358953709385832471528600590365463297393122037618146084465937396814892997946410277553908310281132012519714406971683845901199323819368266709384726858691245508288848284703928623302689784355254278779685428161755653637431560782642914203056684579346653340159401809796473727839295561475291412196715661840300913354935238052762550485850821156505445005179747268678439691887473708797084427834139785353521279780655956707442748089324334595348940895782135240671167295471728824297840972172238180706795648174853216017969929168802355176654210141724203108230465795933215398366278689672348652949342484426807416793285266827905268270560907644141676578545394130344729246902984580025801809078118618607071135448300186695814810288451437520876496627808871912867002823958440326442340486549673229556459612679855580154006848264760916619924941755872468054127130261805324810185699552371758189724057659221006385286530981058330467378305194378802297148134000931690665379812712456066141281060232744882166585586537416779105235723101041865120283196578230512637069063762693233894746056527219350350533782460733677297093960918937081422705036472895532543126344124814841575662783975449993749676466317552545244224454635480159408983610256513327960330058609686420756720954423886352321496813292562340069589565849893388763667718224731959269058292132357036786024149666437910453688407423738934517407477215201526610080130475727450240173618838368534774702726275803428321858920694880889492699929612444705250566258863537146136974821208593502775505710264462781901892813581224552976525845974257769865373404490410684694440275281185467544789706985491748920728446742669638996135746931501440126287965905048692129322465848463255766277104925473931713238529240093226879469958403288767576500533311121485332250099138413050721964949216184309969783482786146013257716062094543661347056396300779102356136132251839881425354388893434052345445477063280733823452605889576034303658512345735603978048067647535648518577556877859696544647190951517280387286471199037404977059137286881119921639208304851499599189395653030896371047292465738019530080679792669602783015558589875157180428082196895370361255594815576867112003356642379653910086880760745047966648513580172774584880842893285315622958350120656969152616333057719271492108055821171540022191821500232712027895486892591003700850910996770021817351172348431462903634759835262933873791868320463942700683961489399988395215307876866010290395332291803823309861289735709856828065290408285566137591786808981753871439133831314284187245157396450675652524904052791573288791233572734103134433052768675350636615776414305953659601430892057943012949596997110343911727252300239662482443150614157448915633176001353808288987812568645285036636214666910859947074509364325096157488405506478057636717702833909689580099919188690054700406855425512769354671403629573430349000778793438355927092001209860647908862893281068769055698836412664496136771258171556323698990555199317475539230484904899646167484361887864687046510805195532900641100035886332943212643793508169661923007306803384455276496345085622875781918959733748927497476201204897490187381854449115143051317362760856119211703173023895188197179630710470992621344439052230907727177463134879432592601394979059996918635905031834557065658106112521422051454134934017146997185591499429967700487601798494588675068656653461514928656237876007218447646468611230679968288376347361506805585876190510224382824573137963975296904203495618608780853657048631946483585216198643406053430720000211223575149907913623064937799448289871289855629576971149074369646336569031650509304194282382783395108888704485816870635851300471414516052399481269369353689843073611047299542243287257193260018394055335407756658409843818654666604198836911259957262301682427227458919756581829683017079228730775154929659000231094991727811248102483806563503973892256402330421333554706974684656675274077465890635534483836755814284624864841274103938063293114283960544381744935511188289951958557298091631400640116715313060753973352880266770443349068008287155448404624290776042080265798985995141531037669594952325611948580462462219641798471429389659674844538453610281826327992387963774762208976910492376849536364428270873845244390437853971146698360942046934592139996215627712051640655636780690609595386645008694212583789927020326613117162386934905454812391173054816633641568751020036287014948655733501308748122493010040081893428900276489861088058982258711052695883031286339355400286823111553853857538226700177617939604919517088441231372925544552714897447193406989939922832222640111359906772491957318531533505691175094298707739194966236555506288151166089494760223407035222181496985476372268505299645729946933751622978417546555182822361425716174841716865784223071445211969012811515961996858687152700059028415965730849178544018723851604671711471320326432723029761700769277371948048099499248743614592771583463694818290460040519194682040440929693676628255443917698493864583064676370399509241453094252793242431812544781791222047685548425943744280291064867867127065583613086822560817773515174963351553910578938706484573147280992741109205102987128008252711453945468465377932774665569647581680368723246215807758320441718436605652617275867782760045981100612292814428121399467759102772546489845307517386625853494190424789983534439569585805068996791324339921979031953453909657787449963454455350934646350922135163758687167681231291768817915070080677324794930099761783098879475326653843779250009672970576962477547792694401347368547385481889976186828747208100275643847446205546725859124278356081181412271670190618772858189246099498754516321117006430938379447644135142463565423538706277393213572483743119203010868596658814914326768405966884934062246687428539556948366957109073154066086558184260461876313423049122551032358194815663027912323270446040661437228777061539588468255302836433965544998947183533231494992095302440922879946824002102180422919174093944643771731454088922404334610067092426617074184561309132669800737651161194358253283743415585388741240781631373089199109485349806279473621767336647646458160519105982677192880784063709430711290713438516096013730534166149336145675241416871993953810278292945730684987028055049331658729981432314619899440283732126560212426738732596472746044762878071788238438281429507885746382029814102800094778220576700125879894127874681721076120201888496088744557334731577289664245966976644599842517015334104347593139110487239761097916047439435327373438257244486570055260907060658006346937940947547631740017879174396606916862366221457971782721647643350738443565434038536139102677554604779657439102090574737126815248863267040660433886531559161486287243639223826162807952664185225086302768578222746310166255768363146726388716647599512256715291250138983772646698938607443435227952040031737491133240600658781391350285793319814711806159447060391741305413430522364850632791269888971835093905559663115063117009224042159647725737528150404128158007496257091140775310623251270821025983963950044484223938963158868893281897785541071967652166506710342173679555744253071510176220923228528282440352649274011166885290821138907395917041074863799349914758575848252594766204216056168886217475260818504495971617999322512171316615084022123978021781980699316928102032936441841247677197741909476294064422758705175065922146695888697500398329439869782364289175725377432234269826388795094418024343644540683610784358277471618036076557695303961031987395747178144939394552143765865344888663562973305563408907252566502568979617366046785398759127201457196365780627805007460158020490394532430583601212984322440526823177815204955482964323302132978098545796900629798489332033874040326452778630577988148086784278218783598541878318312806836679160332951977457811046375305438390020768569178521493072684095406475403399234382439499251622596006906499580575091329847839311083783851195894187925695494160580735092597833570103429813030415766351659854911167605226709701502305858491412434559341759236425992277586507378636704129297266460083808816047595105435642142905859149584856958253243689322005844877762776450386734889688745992949103117614351151625381818426296098359860822925798596931386282444453101719060120290780810631600090175062982163873421324959490075715934674007212683520044612635372840038426418424327673226279707845939342730207768340536596406929857537096620378649065329417438777546156736234341419265773546097310374994777818785641449851116203790103508934405934243940963596526939808724816360825579443336152033468223565330097276543716062450831117062849209579094076103459841713101247415362979581303896344926136531238235230831364328176508172982721327993206362607240745029975475362005150996934592552718400417668624313769199718204856211041801793858692024365200306747854215084668395946561337122506329501281942048523339350275272139395671411457259409780764011825683035916083266131311788805916605197678083395741642453396577061222485565863607420052209195645344591855808143950658383232907997215081490500824040289528207520443523691983992892991887360131416685728141096779115539833709138622834141239200534488398970970471954983207901194770536205891312262680941242185091316599228036667087817509905746175820225518828605719749803802778020040227378545003214181788026170397628811503980097485966654486481590234596860473147598141120026278445797593421544773718893610280041808980142822139071834424182853411560636869335489803387855498486289708341805850517295669468397507622384227961489609832916580809613696894560957650262309242229319929092291264833341410229600331582822659923560105671576762151801401521287876139282096035954899151485109132167892758290544203526262675374393428460989518458233328766183119451611587774553612270418019178018688227320939333160287318455830748585360880957180467590058719502342739963371230284799052092620287435686127185431634417925514347028614823189921139122648620175976149955621569444463021226189184192811809828677878769385683633640688304252872380434085084217166947729603463437468232242335791340940246507336226782237014358945761163932166612590448349454543644967775790092168781603603601984193088014807830048154062001693034893555041663946087659565291142280332989251281686648460342900417073756059740841795926081834439429136106831831409136556043256955240747224289531850928343864963592406324304579788238824183729510353424337139260095187820426234970579800700029177318057232775435467862924725184734555969465977762003794921216621803250205413687212784740300580773197846844754859319747328696520340000273677034667595122682583618193845619709172796160209641586595127776253996093234794667900668994389298366353098391951016747993847625998825274714256807097170732832404575040677905012417939844960774327320754992215825684767514736833207762558069975499089695452779945509800722488912827240235470065371746851112670035080158268855061139948831369308519204651421350786418433580390127331920617145872018835695409449560512862491066792107849778380512649057301660056686603291178635444393625488778418935240135779688758738367698926711481275314945083861027727500659905994676472968796983435544125184117455142034430282817616162476897459278540486977757848144580327348112839958654601853362450512202487994260266070452060049822931020528322603759038397177802454960272559864433916862564355855094839847293373640988336874106340883319413035117204087266894671136526615355993731869225359103291494736228081382625991679669209919797583666724163382158124764606513826760729334045554409056649544671047161718066914043445653411132360401086333234671023611925894606906434495319884509892563177421389351951853403893460458996230345899073021215592431446887661526424615806237911329138054180173877013200612929497069004996158982893754757903216030630557606955186266388267626229784061405746467468614907369150281937746113962878946791134574085826700085989418424945660900875568006184792193863097748367424676122102388710617932506775877777156930780112093520114306410893699788785268363856585544784711107551702398266238052630813520002112057774054549115783559901578120315685627052021043105683694166318749073835590448268228481583456620659202502785556136750109392683735024501775601902974015692554752446436589073774954274387868634032393733864222551795850527324013768503573604828212889205945593904286680948738150600467964475365670542905136497723818121398523976192632755197164185483903669321471572904047822358847310218314878477188310153038572159877957534177286854194762012179921005748402749946588102023141007478078005429828625817310459165028117207410225872640714438273296914221160634449746873287397607530641325570197103797579463714393845263522170598779030791678761349138047637457056765299913585784819224460508721251410545152478660644654674402015167049468403338451711909111174106373204576621004474353682307080619176575192498642263060771882268898995534631745161904084228208343634464520015442761070804230290707857740163506324310200218202091554353982628237669689482045472868080981963590439999114419818125119788705755766039678827699077150231149378284737456469833913823035295329056966741573733650279744067681556528884236334446095541808177078730256997099737318195729370818653716001657215337741862720726240552567907886501701671420606456194616350253083405081646711954214338996214629374229249545891883617324565815822785691667111712223460101797855450478406961419844035983936636235126807828633395377444840187407931724682224380876479347860481281460575926733130222569308260712811691249642082275622195025441641006275948660747305096579696439534899352961706548132535975244366529430655162655678826810680819388395245143353091394219484062678782523705102753697196229587912776392828353736448669462744082840582235086611864709856223426314032268905741691823217518137005855073779264678718239302770080418822455070300347584840524467676978742468105369205038048696553361132721562366809416425071341235253888956401664726484238303183604104848876952371063071442014697734124039594579411510259212982688308555382109021216691519412604404755793874454396107382235934864910981204729847739441027403365862945705249169210196346854340838220549524616112635260235477574413579468232158755234264659209290901671855510242391707932437625580199901913333757748799687923583262462487335105223097811067282358784775934243825565176148898130561307130417723847425465621694073003153135221151405144919657542425472735897898412912401337355015265307463159628322048359762691975362138006017401663016628332204918809050240752454112659442970062354578160032627326279969541735604369639368865755345537112080373657179942457528146649962546426436373968297888291853803853965056886563461391237995549067114154752733299309598393037970378116520733406406035024565390944149153285428914643139865945466369487948879163252965114712951367604702255727346600911038608650224011715485710218186839736102482034258857945423268438592729294754264101143206652615486304297022483548206856109422959462292575084376081928603203643497191126310162214457910426021754303772542838315067283076823668828395119635693031907341601381869935921997533136729772987088929192488041826533248169420103647612573038711943254669553610329515851987659797847542145058460242667267701279295346781710992812347660440467797848206853545753143646932680666722873669429856401332224073576222620996069572696149407578006682879582181690147223298203066920377282600287357774298666256271494646212297464532989763924326221544822443556088240921863044264918449912884896644834762260497740252754943925606507506717218455852373843621264028134722196175120056871680267685402499279707319940116329171069831780567388571434008266651589496540287929442863514783304242702640784884467739058915339243048298409807712761903278208767497629879310417932335331528435082528055836664898699584443174577468340916324309933862725541435833059076300253171994547213036842022082958126906672485459886447946336538694927837312272833153291329000211203978665811082157244921958802363504716066843174441063349085397887962980173694260623171989754873547792135197478437367271616055920901651193530635135603776071690547589599949966998355469747417420309892985483531112374392894678927541654100249354932656250674230812430847991852368005771593829812939913122297779148715538084802675269313666374876568861094858465567180171623513403309604930872932031726939541567947929884688429191260876920153045407761209445704581644525224096353788882885297202918193602399572260677028335308165043689238282615706339503358724988178715669355923344658404627355899270314691726748442497182925159066515237370225215639213974762708595898275660970169877912421425782398897883390362336259553797240628244712641011815991499705100022174524595070818626715847904254641986794739901746956356142167120290958083366214797906510409351678489221478138901179538035960517166556676095902504239314216475658207169830147204411247679236622868310237989222711069020477758894370331325095980179109329805415135093660884522740491076678372546528328831984027927075546416194458867370812625392210949440923603071943343523545558653862652525010897108841955989232498035743878093058362928658581080044463931326673308700381314627156228656404942460292729471394672567472173450699395298926400439194949525891033383688387025850228957887257391180803354457830262470062702174424859508097990394120317387442185230956268614235993467240780629781495281201450471128192562745941915059944615626224824298747088308265919833586737699658983297537345640857965403237995507020431436867031625326453199435411866293683442607473144667669046664751969831919504327283794006870397193817852503396887691636326924716287963748353037558093238515407418884695140077246203986608044176773788508839305361519419002596709037400184538971679973369880315145977189695334118064485389188377074067027622908619524391694602066623288658270505462305304731367580501940480403187618336906084946704431198979436275264316448270937021250422463871450526679472691307481153432824688026629759353374421356411354962757481367362883824702283755144294560050763261026090373628489647222479979446169788709638018981746940603917461865387288061632440485770398881645072447165608211559701081034045193383205206328188857073032087444040524125182731035026750008246616755030926236009140502935774754393348353194272482030019072609295972442481553317935651797829514398942287489746223250752073928670818464509666605106008711726858240723673257435006654695505388214976163775519009038216555528673923523585999803578572878103877723718695035795281460418304318612562594392479405408568218391773358935418770635662654099767141114702930507284222581817004914380544655893729528360624257883580728617892141527172465769159436322538652826505394350185701499191385794331163383393998656044946912335262427526271304876767767823489135082020840017984013887721363794775012056692372663265475105835831786336934842391245215491099821868722026294890211744704230216060433307231386664558960763205555760479727844049821066769331158867064917445112178894623632671699682428766708743998226066538017214893554995332785448330979592543902010564431370329602956158242943237123794831295983098333190829704278973627033245879971080214846103205539715351293553504928733369531633349313018470525118520341411150050388718287224112941645276657573540041979064154167597196583988992342152671922430273030348937313306196309836417201305904539308926112494696065591866216770585797868385203955441015832235666112150009935897146128579615543273181028520107558890298233976567486361595033815132911624224438259379521748120462939780477238039340807363177588465238271788323628081438363180384296066406239025062589146545505313259064472437824907078691745367650512153536047463611848361707663118910985429754299918125773389467180834892039045535868587976927813270080078702929097622911495025091737031819124861464425434202533889333118837200273940695942396280882464021996500324568456147222401716818124932459996278935303586908602946974246957320187377703906624709508358557065501693581674703403052516525873996915644258788881614474704021791739077341584546650623020247828565361158357532393205743803784709390885307945949697329486018313306147600286645535111980577409571579872805104861555778250210087154809067551075036692532680719421847981757522300446765345222030185561630958215986957713624307695213435865084509531527293995694825788673272575598397527411485359578303140562025394137513103119182182404868626511406546684396166570413502892469067298450217185821141024385430791342084922075447224447105345995923649575746056521833117580187978934025559471486108160504383615370343346127676304854076652021613583258642063543202287054494501325046729389323929008544364346930577056500764941563938430191856658198918706263531429494140428420158985278127645607163275079063915318262510083285668390562119291630623261260768216813925284417915534367957192882737499406999533661132406090080150722470781104775639596042819497073880835177807716121233539501257833278471997653543374783677730941733692052977425741474773427008120409822347994347729862551238856601962114680154962199480555152247924782459305930945560936711962201253958263868172061383205279362828902194533071443398100279308239896599421504144349943330534604521683999604631577666585645159313624176695817017001386984838574094732655674340304584096568183364089399758153830286335826822274182750926340735971679180692148335213061007733784422364316174960054747134741911687275726218435256879403249589326408738114520957005431224782645305153574956117402121170336793269091126970632865559047970720177311696554027330222121881670616282606046943215258555882165252221572925448465191299728397687720333401304634010183895062106904985530662633527545195661503519137966943505867089109468131692510970575120003879780188118642633066288569941038765538717335045301909898551223724700064918318059613064865533201877759055073705082449761707521240792945514813876749927206416965992001525402990402243429459388365378756411131062988344214682761566317435722070270344715789184197566372966766063126654708095837996433845123166394380200926839764602085570860089093035888476065805576133329788719541432925260323613910635314419915584969051424975842329537649066054729235161063402430093398760742089997747501638515640743435772350076501625592029266872671972397708990550652342182598250962890682947934173448191885593293516615176922867098274960612924182861570200125105639518065966044124013692475261902990684697531555073296721302603715399691698382294449542384795936031050716221840165039321383228599385132116537075513921032594254593247915656556458683308715421806094913468667505851857882092110158643058334570144891182014286757232462488149560906474911570696483995505588191303450824974772157399606982777874546269318370984206390080948955383752009080128334903852029741762642787744047160091693206778158194904221799706764847363718310786092200619894550112234394949823713527544154638328437420498124034190973756215387448441868167693527167415479205956840873894908352956674650424097399131429578954569494141429542586109837483931977106188742725289428163945202684023856648328809852500479820320839023925357936721085935874330512556117430380028886387131921060628718437648784490258652331119517117864635513355380595781019709532518177928873766152778735157923245852922829595549096893033266321770663548233929178213613272103145684147065301121723688425112847423926303841786398437631973399564889880918032417500762909129568494184943531343728297465308620250101128312717543931703213377200838019303244429115723460736480034555482044897924828175838933893582099266932915871183494484191891303946834229287923870551114721443839150890565866676035796575017201339638209902124239414714984197174723375748209660415945393553544785434748235200779539506646927893605122626778079317410752287116451039095801129731961222903371371241130336014545114863671810382741069262088368695593933249197491157887720656603190343329619417265675317624398739019634708326427601699490371209114774184579555066000244471248100426433268939995065369135021155851882602698764560375371075955670831279434946011948766829706340013440588685940688862135159269493110517325713043877885572774985245053797660277244820080684417571510826096878392694678429618602732731328512200363641042197375856278374703566982486204813984007420647370539586628554802963726733774693110548374970927066336509179429106974163743520814513758405343397611896649698284945968697560285803722190492976124491780367625288363248395976075338182520062706174922325824977275234066479004657649690811466248278274668323653234035559894894514003646597259318237498976834768169050174429778305385535010138827180956944819772860950074836852016682551740446398809753581932899270396964278992125640922107512372765279794723092906543003573273550809140759180724186259384417002110421674394583640907008353256679515258374570915751901597629977282573946857985014600904831779854325057343771153857664726755835681162574939247238998672901228585273394007108431624051270671548509902385167939521072539042808183388886291067006141111741857905778880463202339854086695951176580183340534624144107717202348157118534753644347321432796239327387327886939973994939715005727844834759661152101921206376389281394031155724965455898462421947765814257537428271869367006402119519549955123941758915405261824195736625064099180167833555709166462533217248976980866164732748277556006089858029093964154616611292719219665918827434237525770328556067193025714644103823260544955174566102377879348819691299313755413643460573871206950875628902807792965502216529953498486965381855363469326524221882044586531170386471219227147246432583179866989189239659961228182818496494202535589075943699161814942968629050078102870269030396753466657881832225227902277376705359032690592427202687804095382540198731210439633760231220025251930083886627705561319690980791243436229649257881743566899411554085050878511314530960706864560848405294021790528390995120718453442913536306457509204037111479149999978648899291004082549808622329311903420957297850200209837661234778888273067679370808024560631231394562827403174364785478979158579998212229743013287238949266389394462620791976972379918306813796536166647267110345859292596896271483464546638114340447089878006123505588089765658794895708614789635804850485957588012542095313113343179883834374185123943383972666228320924649794026983411112498487367162463692826109514482870304000587477695281170578720825555794943571221368134956916293505499615747399247156697135581555702604865434106846768897546822447540164168088916373871032736547778379320772641315452332256371242864326705088683876198662378862242879041130017459955887274695986972954355565203266983772365488362985396538496198572947471231123459672542630680224683480572970104202679556572309370203963026290382528817229454981546162371318283081526223552622126639846254335577993694389309067376553780581534958976439740401644524102183893390484609148968443667272858303290850969686152015049999918943449502826134191470842555484874760947388051999909518275979292244194125816649353904573207960646583278880617571218570889113141712039456799780158785250759963502601083831450391696297624219551162676178848471714742491696258754736683373539732259587322786023040621965032076336674021894153921886049209535028279663361091846617271756765925764269886128623683946161733798025343315574270871492181607758922765214725920669342419594912488579715955903061194315109866377342013648289922871067799152740899886192625430623613705601543157253855076715118149960109438375707603707037275539681214204706647427112473419596642296024393381161888437134131246221433495106132280596768726705050702099557360873866270319708755548068518384427392397790829451498113217170500050542572949886582470223319521056326243404616460942638335342403442656378214586669092078807534559133762859620251565559192838858069757196551074899577181578773860469824160143090184460099565543170652332632039543745646527866727723469974237108376605571805991978466263068276838888051014274498083439938654035798295736119003707756484224240285285288157117950203015623181655631676430350913333532373081593973638187226212710524441824128623690868123592295467166816341350255046555509806240735782078067604634864739871867061085768440721190525364528173487913950946367826826132173722940191054063877567306947963511216747063278651883252590319306695078412537383399761406888575172037469603723559439153307250456344107423304988584873086071610351636473317022192418987287086170273688668511928987645840229741522669223849994204991634737340999977520806385694396775107023662924441611562905372605654834470431546704004157348211317015137146447702886034019191471676203447580412320393066527975939407452063923461762674730398011707505755155159849975816205041442805631213647218313001299901413814244761374191999097624429004831517473921959480201052519081996347485994224845613372013252973444086064679148603791331696653216663657900192376197666074870797170678498091278311529250064653095567979939844705653204812110518253756610694786599617807157530504356868802695556616590724418884905865542887703754807112647575782360507624615480646230013285043490319398156377379711410235288716076111874723207371277135347892170029633557579593921160471702383356716460198563582810512435557954486649397087765765085134848310801218391090291957948591058892671590294004226162536639454049291031587661174321246241751251230145896825067926204996179282394936286836088790393580248922545230743358053199097457283150408221182281535473261175604042017897534449039058836190647658177752224356432986106853899591630773918663331375973601581602692688709417016291753993504047625931322986490856257999432795220148454610470050467611675504640409585556059185874797105111619224719706571371374920357800523389328170144667636770621967060120087946641906955030140966340389190294587958390611228057823355486669428240322052912571700509533293550771571789341992760751079159062320368309714638779638569496693958136011125443701724346466009167031664242241528397707451032362586004905110923236288604507047022678758404947046874278901801552883728778145667893437949410964314560188236818470136301727943000753637812305330398686899014000300988042783479027133708901326198842904056166620165756890449089868032147750838664100929730834086312181726384747322564547594450327404806811740256718125789232031176625048402079982146156996531265654055163472083276795892509258855851401608676223171232795189002305991074543882743861181189508874784089318534805200295233074206117789966239561263093051665801816248585931231944972936406455643456805762412205583822968453375473262544795147713329305868812833571997783706924841515712110559850569288861233051659225080728533965248517543571253501300859469757868551496129074024439811702915326156794265873540712754259068874682116624406629202946042999292636728128683011660840669609729512926939358815284411935084702469315566300512993461808597415295420319902255645309521633230921751530990532796924366298192816489229332535463481724293989270978437352825809767020004217427638480033852945779251251888552897412477762936252302367491697344844589449247562017726251872597902280414731356100489291310970180828779323634655827318891399376001828530992529403751901649874167597857754958364421567453080143471308230184703349043210171800319600188709818162659113679181413279132221207144915106489055441691643742178667334056922721301615046585484501884457611777947361752405526510755256556851139256092230499537646837372680886650246254163967324221695450564445040512759921680851200555780688529450464716191896999107611778996550324117302746365469303392362184100864954818632589333251388451236870169612848480556952141378774532607959417802322699567986895422686279007116017810739829793224357338982776092850667921734400161403897510227078599490910228336282250761417197767753068515089943113042252910333604629863404341845919682752984891533269246156341562997124522653549926927859373566841061465528493171656708867307906235959075396458862337057332552734235285187082643076251401889408949488062564032182946584240731114154943011756143601727267214460896777731017320407410392775765164625193065942314332861577188091139104468982492563918332118027462655922094155672575877058233841794986236077170778734091921804477965832271510082415511402621687382769149755338469970212733157975413283204711209617781324185214085197339533861709542891242961612640379036638265043030312092744440266820704203191286357501922090894967657082985393670724044155887220611878080883706232582094036263365022236622911875813430904756305468634321206312880622847288235088046997062494040533652407734311663912379435891767551493003584557759566514604594430385064450110508915687521822782192929863082942487124703501377227187632890044461436021736202182693451646708675353068372430475530445750533261082051674577213623503136171489552963476360224991757706481781992360788286347710782656859280246804778998412558085842731009371304074861098189524738356149267810764391507450299205448331122088933181902468685962986103321384191535995368494013267199958503957363262951266784057191114382329367942197522972314107044021875306815282039528529218313183598398181083433169791995969303861398149051632466602053999363737418978028032089964296924303082822803725706729456165719882898148895461003466206939431754120830964897627019099652621304344138392898585292739959660687434273326687813898728137411092514568066240894865497716032223618342545032713859954847229782371280591926296631296359590730322190120142244730019939198173455661764640330224211458053438318112210692622124897008505348446911499730429295628175567027257348511695754596611303179744069741485934893420355579375764088065782163971962090339595720566115560465728761139309297416556434769117684354498279889853180787087459480317134530473990250734983853361080832873803555686397266947675969852544610684663532668149796921076247684118609066396175630342604414681365289664046283619360235639437650959859091495680762210935728238589323903622687290196515168151304890699918476139808921014096547017771699273032985932280200122830053649873978121705832705374442105071622226923855649658644750283897111447881468419267587308861396283445150278830671658553913055438382168815175347494243829218067846306605628765450030048635982414675071252467690772922039670564233800313331990133999456920725452917087730786093030018400243291261757105117378771586883102833054314227767174170830257507086940226390960505614642314402634611570686424089404937500805090938070053042326263621295051854869273932944344558437668782870589572498469635828424291458003346201316194580589687928126412762028341878678993237114946847719929922431072151546684545032497632130866569759757496042371833564376687287923827938550693648860529876510549057038706668196674273144381997263297761143227067716336262686681134691015203085863788975188327279193218652582783486124768729461386706535973728929700503931822676365941877427482342342217011356031229403154759412699117136001689389021208220699613700085141399245591963015613734283801507732580912504372552908779444417764870883594332061750480464281257863728310154682057229280784277054879904491027728713518996684590742607502966675596446076198915582839070452407096654379396329391802514282038124101319039910912291451873696679276705680351465117966061576152509968630840371915698938240535843177589213349037404233671431303206805792151811280668710361026469036169490759526709268053021188985809008156042696779605380228948219938011948708926007144313413720760618772033945969533905113190663059512849695737206482255482326695278899460686665686659776204453545252377080767520465503210861726459501754855342929588847242569909798348617695216450633957651516495727037701645369946408959849173559868902413519711470479442531996577150509054160115866334796077713577266027610847801603641047922529798070091560531293781550777646682882186090418137754308050600030984911201539658013152521068417685675157014459498101071629595232756865151148820719186796067124457912250232360150306666731583346523345021853068034516345563392088880364902370883290044813328802811359712368263834519717746291099282906276830780812029728538517186246738460667701006798082242891135217451845597062504752217927225555440097226898541934699733399301317703591376102187954750125923623177220171897473703356993617714305702814565877357039471975286154530901278995627255402122801092518304878797127471328389511416754636934478368740970987602338809024576814050410957087184309642742619248240046737676156111923728712096241492317906551417780754400654101200842790306159634807071690606753355028847413218588628124818606360236622283744014567585349193854831509063425486990724619156022977575422749365002050643160581112527488159490292839719235430010362169927687891811226427123396361173524318725016990390675460542310125372577376492820803128921961468313592503679566867078876603743633495940742508430747428605732306189033471211910244025602117554202631081731282353783181233683014820510337641846101168327226856863755486426257449333684321962929130255691134288245844262495897073160009049321213915937865248848895503381843320861680119174971472789959941893695114768454220211468687576347222049139414852368673650614133248012563998676201696034961880476046216271094141432500348507161885991413598333505963371077627343089421109176270845534573242872426678207657956555945044721370424982322610516002482597166437557105834700201972559736741132420595743829392388439254358237946568147450800951368302404279512376138031721457735937684757550500305113706214356503549880425659172010692706825477157678753254730581644053568453114169114694653083207258367357988357185739390190182684554889478745452276854820905571022067372588285992216460896667256424507973283626973849794908143916488942741298923918652417116092681251605508989492178366365052921307379915507007961153716688752868442907861373983797792756101128708668326362544786268855814701357324999545609647685364488674131168296528332071041932422870483300456867319816259665309058949505458140274020556420670498037938128812830655697926985280853033678800199003585565810128937203645032259963694250205846467355757457584395527486220530414694707077739260271749208934927162162401191291879434777526023320226661118064535625114308045938776807638034268307120421086486674324136774398973457556041901402567595521457027247214742782312364340438592441418580320218947309100135261218368425470421111987235400821870520311684398797465633168340952987030718376466457196761968745283558930805023075619852450179482550043803986858900432507378452040395459016404843539506140839916808056679466019777662655256852228457928245398045236475163135093544854282947034793925399150564917561994824599444354173607829507917953577625682823724478092476990735871409122756242737338814806668957481365830197003711641290971642434999873539562283820601979722032814708813377675687035119540957645990336428586287374288793906871784846383125359369374504627868934691864682403582645669583125315745926278547516613888975399072544402020246610295675843758760007870773922713702741896633441567202108363174792351302885160918419165217384022191344424908321830302587750722999014643415949373598010644487563110298417660279247470022956640933933941359480423615843205235841874085392043673612185766900983700037025686512131730955343091352628458330306856465744153785612053359564971095323237479816830153340015067953662265947309341614039182390764997842415858451629173130864151764369887536166906242487621796657891303786973276065201604991382985037455664603454194287254133119568609915859857961237128528143744497216618515193921750895026939304807035282149384994420605219284722583690832916546112875422698046164981566617738251400802008309040560293873011383439617450515291192488285954015551805974255043220369106392296300019101785880328043383893656300646226699378442883828086001210313661662116813332691929778991016120548786830414920147009500128776934739106180501872332399220290222193031732800430476407568874316764473131784306124243372075283591073012442269272605958745035650792304817821441142357215378745662124056302089103845733295679165558650161422769997220790674166435467640144724954570067292519694419093439634794964681796180409868350191142392630464479617412226290614734542391024932483617000957392489073462473018344204368360070066200244936994154243433747878175965146308846824852637641625293799498939395484224181279864140587568275939867541154973708805708391436389383844331431329296788061965078108780647632493035748129376156639818389523448227499532702927518349353042571532869257791420468490515958224820864629766825299981608774100759755959522716261947288283945282800855181371833436117679884559624911907471398760644926400543522312417230256070001579112866855483064916204725943014247010883390719896729468381653568570034736622832365641000058228680572350496330356088076908952725922130520295320463580143602041395830066762889195869934607302234166046271205749667151134089336160665734992875635990315282503691108306789486130321730454495774494708074390630752592214591580110229003175941921162554509253216851904838265238777942798652356883872022064623194554226934616696139291945458041036033093375425948658350681928785660732718753184681039500251939733952812113311208875893377247726657735935865617575265551444757323923950725076243362545755659388891394465573526826023473198091507851628737157772060708383602493268180386926719031525414552704441443633939753462325290828577827685404874878743172268275537327362899715329342899518441253389995460574264168529349189843929719297490013761549739022475103136385902886618566237481280244412985667552661552591143606713799713917974208658278243078395816255915583840395709580774127598651471174751031292185524110406033732445372964862234565676332910812767145914772329718276700917885256488654113430449094176950825648693661273881315106399948768885363003361017482237309311762409703656535448682535976788174290468956297318497313174090468013326704297108211464606969477289814940725964595668153721935247488639510061211748377193330475213847372558585545560530856280211329999136604853835474521171699487771249823627129253613092037984179660695232045661836140618002644309859387885486140602223700265885359744587525238211421816078263306598111433094562905377016365835357400010860240403464435670528735746989969296374107694200929378304989648806487110698274227444424030629780827389598362230510074400575542744171230029342488120362038918935460635037500791924062867290736886299935587827698968304649243302885339570175141356588341351594406868986779034420539810669795055315861193027560855023018800248373240999149399304284766534100008614119442975354626809276937921126871891566535877290266009876778997797398379209547031193957035893357720429927179732744912266832970473758687902302841114381256855281654932006286263582913693071962616038543761451817088199205865400180881043050557868075996501215050775684549509788635145889027671249683285018815144257755782811417522654249559076888522549579790560416779240150509983062718940548091017191258858115634065965229157799153027920412718037940974577876286110453309516925102597541028639920202566688404673967519905526941412844930857706716009122417785002440298079160366679162449217447012220582572866389759566790560271611606156379979285087496434830834654272823918857110984398082301921477618869722297409297601323330734637475974648380076774036227126662929908893551982390130808756611064130844570005688452658216259630694074232814278984566683844421872665947351648369753643090193567587319536090986354199260107454878688507530203714167637816022481723791090495263845257476654524669209522700129103466131123426726225915500007940959816873593172492158143246579562321670592337788018013147906001173624981394942370859434711701827967327766488961748890410263596605785123241405134239502995486552892361394350059687601187990971597571968769667647585667038145198338305587143816197771999815359170367848435086478878357553199091539111329551952805135195823169827900742195637008197266795336799917915825635463746193105074888591736238564870862005648301579642347942944453153527849058898059171850643525211590224672255349293670537824615263982577250265591005375572245456010928749515495427081214612974072125398120509264598588117177215343217026394278045255939156605971724677664954030238159891120034480223226659101491178763719099876230908883528630179417563504634905251928329462003982719645828155182328800289897032327564097289418561843485445631551383968583885975201618659601476715581781336558784243575102471449539190432826993281659721499749626637666891437779472222755256917248606796115503595122976953026035065160001044894486743028006709369902920862799254704302211289188600416336641591596868768925592374787498060276134633787123714886948051075132666928631302451194119561907469506615882739423268451675054140217530261657009099865484975258624675304161033225509261732123660707390720799880673723783619577648343620470280418046814984456923497180960683886000027427683413049563292325845430185428061253796439695012757142557285857530507381603525746058534683318082018823161746545772247340153263640625541149527019055441203397760933406788254392445453830939734409354861519629252401184971601347408468884003830152753055600487053398555372551558276599758533226188762565661441467709732923961993629340042225384719222742191115780885258382122392845413306435130087211097469517746500750035118537813955410762771374120350337363522645056033667544059710894082816126241282542807775946081203702284944615966244213786090465430437018135719258961668117971014480901634977820067053256009186096616389080016822803994283490746073355382748001794228665080821477546523539265526012017609912960725333814774679009795820379240013263394806556543681507833196934673800440640599420810922357599100992312540279330164549231111419976608039437509036642884469513920318636843000696302041775521178286686283601297941967858529883155612070354609060077797629836741861250885904446030946111472762545409668522007960316733220127278225424433250763427501759898947492196830376055247245737837362331514773481984201618884863979372314006356816020355723168688179829902019804387937653215154328876564594773188171350539062917888279653020155049187704547433138883209128854582183406036370413906509462564122526636871608839102743245847496403313765160398154110694509570522657582609929113180504442448661686429115746300541406053016426603710804554760999665981282749644566324924386104627526687882663623917476782329545335035391047031677193307935797764202003285761164090359163646829692866967355301204576282509017815700890986885453525602614964582064666811240160764754220314045088493798912361415938146372238867864890513018943654247194596500754568736703956158846447095376692407415388488407900953246926364576786402355262437635900372672494429180936286147694271899178328676759922150671478947775716866867716736248406449231443932504361113329283730771261534525710770834892067244817391604190570001601730488530449795426156478668075030156851922394883889338568844599980199762701411698936640615026778842111622851805778109565251738586668130404004484097676327526818488815446507560265392792681950615272322246076928011439981296907746728835850855292123938625321110022499790365560383407559437561674942653022919642307775798735212050263850871243312275141903712069319853461747154590085593927510223060647432032633714723639371836313079310656850256789909519937296854118290078614955692895360556789256561308105992398784170501412087506942999740881872733235198647943348840822173300200300787406212495075683483716155905467183779381929529427962962165270949286031967600494868804945366907085610270505605244051425780439510186701124491112229799508167618785959164444275226841431147402464719335873016240393244352174575785425673920295327600384934691490086620505579033988123401569703764018744184468136045424878726118155426020091044170796081140181487512897059027189366502390705003493572973288370043247643517661483973094904833708876511769195628146517820044205695624730260943095887136702200460531036431642804815811661151729974660687176179730449674750392136664883272433503355435817010089540448635501458540801608709755958259211509809542892187999177878801150204365783262154083517500751422694679210478344803847337559819192530158615042169373041606800649198617449886799654554569184973036570238469460084003863251980410458150208590702670494464769389526028097310150772286786765632093148647118345093502039732447287038014025384956213302313260986734891419163789352261637761384214503981585154593419951816162755597709280204191726096261563104414281983005945768189213835716791227931623889857305312908986738160993065643487744904392379121655707537181983574434335427725877203433173079676374221142644755957101711763124763801747884538556065068391261864312155229752920455733507648628092116819322383719643410348535772577308599097430830333080233437048047266760249057379158965131720219260385322222176263923589780885027021411194011882057630954702702246788141624412805705954805799171258246272702438931293392059758482807120158618609648775824995641063394933988883102738427586355191633688259048709008407150864203369517070285254382234373197904494408533031407464100211897876190047413192559362348800829831098642571025507804487452948087839636996470021813725526054798587316184143822599090801654986718267274796610792846607297225241348362901255933997478938461738770236612023690366116961205810032297356446089354680885494106935544283701737349304496712420101412015325450300094882519142386635020854823785574050525219799001344429208638431041428879574093121958937733981412710203933054947090523788854291508312824659974364458160838771232026769424540204267950343393017883335714449758753722821050786955011174876791698133479907676870744948208087967121253740662403493847618243363063835687684486101966025459499515963728302261289189683995908256652425351420058689431462909858015049546583996987628233366803053854211092203247525607464885435057207582900431719369779267950168810060004162719838007323397646807534139448300639053438157039075698302351051511954525052831463010808860288192544682137866315787517743317504777989745292008096777681431078542694550132267162527599193038271427181619955326334361956373761896266474225018542321444018981694148931649226333836019620260030224651358434687894862910941172099233666945667055294829950577110054161372199349735192411582007518013764856052778718295740967973713428912267477683295637525312486972484853081874586214786309731671667168525259591490796084903416447903827088182011301388566033410483988017096250882338082371359451088889132435889199287184678601593191860188836143752092492673626834480936230401368764487616042280611048595871004384495044573700486456278223775827013362081788149790970665803497370260125422249256040415042339415827489458696746856237068522582548152805990168254536817265500061413335618517700463800449699742517622678363924457370995725807453226027233079308087544383804004027088728559644877562681464326763795037325884711785855387178782595699234827728878016207048108320762788589196846977062742130904275975004858485775442224481843537848700887996727120453131934786617005885837887597684260137877616185703380443107616915480247483120677603208167800330071749928385327937953580410028295027479193950082669813203748861086792355336876316634988775268414212140278465895105712817795292625189529113903737448535332994350152049143461516872523254825204196549828547314630189943600664371760359471290959458772759484561749520391604455379069779612944764144293673822561527165911714321554786044061711003739888273682317494549534559042810058749285973985376674677678315173869092085472031031380716357188240074917022781992142993706648676587868527405100842011699923624936184728707159145895541569543202773719677069823605880139379742411072508353514765335590915688954205622714456411759273885412310924076196407201906731766590798303496402308039527587686739043740618188097635359527611688727642617983107369148752458624157128769442408510247645326233625398619958436257596288523108832006241368705437068065714512165732182925123981559700552028883255938656795544499387496510159760335779746068464961319207048748269490772661044817912075614902626321273771078417223929689690656190997479390051908961777850469228284998238037330883362260650012407058821415996572572524553085698272412329495123891192145978909315848351710876760943211059989716915677616761895684187754954350612382360512744470878546963818361055764688933029230361374877769899049737167182541620795497554970504642938964447774066957356608392701776226880956614833969952723636289182924099279411060721472199492509735514706341922340304907838678199584454204353211577840172085065565899191829684275556082758208970412481283254752595981857954417261092109636711385000456872838650816549666062332688602907352993083352696308510619340647955549938924847805786397930399696099946688847050927449549515636055320281618815331831332855377901670719518610579687044107882079627141544351502576386877165940550077232706504425150261297538713927143811418018940076367107615222134081725078086967758429320951464854936984302913269145357325450350976658799201028364198686636158481036009690247437422446439475054120436694781308609785059606351190443807188162187323862870158002358432889376453727376482297451492766402457099789672418557893725681590519058439456743500802498496993062108121627047382227294457241141390866039005499895763494687231200740272864058042989809016145857256332852094538766662502446868750787850004416799488876768176262267272080996606573432206159741773903130429928830818833534313136153419668278543287032555107553178809898412250099998842343591390989451544814563760833993819980912197703345584431569654776764029432433076637071117066656850233930832438019815749110678960202404406501138964301453291450696467250638708319724369627198170067128894513707234180993192108294338496813574437684480777123718805456651290566153526617632110369304550706796765475456591569380763235375559952491656942844870603546329508682021508845552420148531060673068785875544387101622429292242122769072849750705982928527970662931044828374838916739038951388715619812952222269011349896894214979018903945527142363733730690796757682156572145599832957954082389801243399187242560655189021206021267549222290619872414058196670496948465060026364611623859591085133797512369166366786182815922535438243263198129532290011756363754043032358484631550631373941127948929978400523949502340606160349837712808694882207686484609019084742898326629541745571168410274883037243641124043343151597343788410197475928607457323838008480667132695969674948387856714384479090456848188491836643342635862148214939718406957103554675724082177721614036502986582751803059505028039506694383550068375693083230220763880785296318502668393269172052852970744667959894027826902700338488645470353019997818977301757144977824271800050945162448559408451412262628329599937461774824889407808119189459499102517332193515085581375468729655537083820709437080869381365151096086890269649362644784986678973298250211930851066517867498428151430841828268356696406425169534167710789943383674286989922024076965090131915247961219937471978937709850692254718029180703229107351140749507203041426356191945733162802236503031508280453785200054931594895072573047001229316116432416556528103075955404450061249313135864705368350339974369606362482528133953159036393119990373357663060372513618570876860832606396171710454154042487776111320956324267641179870975499505283321929605311473831407781429454716982055133808963517570934614818161686402625749037280823047892605151817262442033098514827419744312344199098599086411581050057630567839556977857273203738477445319573495533890955923585180428051833194496438852846031559109693820192288321175443765976806438471582041198068159379922987118654386798646006021468158804641157085795066979988064949284850558685435066367722135245921699913672978941281698327568385585497621869654989910929274718465353383286866120754932119179985091777052834328751903081720285288478747692342053885077081937773779501722264372356455316425753144494979499203033834523543094011456130186193233222329164731424145073721816497489450366814912344071647031107650599136264668962853767690479030176012608678270382972817870416784072384924094788027488841373541506694788407435366433956700816451868111695980221734871439130879502312213114222054929209194089547014012371644039528257613658252616822059394282680612364205087916830478268195303702273555211873096738997533682558783757224868994292993297692638700869105162536882427849054028115550770060805494390118690966141823041764717734231619874649428366744426236129459672563028629652192658455928806217708692390828349793168305934162802662133243281788015062665201306030431951466904344960119580763048189894774446404817625403197876074372699158697166606867993349451883742609427543697283486544586467595012290459670154487628837872335531648156722394128267426134414489543820576141117678266968516160427869723925743013427596514740839648481563706943426539357309188133785858663223667614412201576460449892618755870966486344405220015645854365243211575260216265951943345237530632074251920388902510420525499091227084537181110506547099430322166518453137098491237285983517086352653093072531484944041215803038721983334622361271690473472153655924659749785277046475536326932271372942575417402784203870114893470009471168147733295125372201393331788821585192950212221275213057192317962188566810902475607740946050039476195337977477559106562775227858396155008045105885257993674431684189686937497776080441610277261206337847480616886344161721503584832166810595896340468126593649703900547660198331899111217121369337829235915983252763085443458654693809113039820235778588210386315408993149510415732503996769181958919644580659643348669580435416039130016528262967452393195338265796058304226701949208201043835914765329561091236513422070880446642757020097375827243818072521948755726933764362047324315930195159724754030640926077407031371955716045501333666955130767523795136021703159645050238803933193586650755110849292844550205641344853462636094425805514204752658815446609398429005615701193819076043641905928968143187708395297880705529075694116897504973643005806890867140593430064475571938697662033489529922479702660499694873606703530557842994526343409831177509980193268132187088614632520668384758923327921763553934579240229623519528431812327832643310862150323232301015878180800439418004210160492738236664607248634908765985142750302933162602911462136471053280702055480767916963234552144667963824339183419919290965890416458138881311872280410888622667271418059699973909016621808671373673164735716182173659563196459541518324897885132193326591223883598955181535820252026458300139069824989849163426254957736511701127861821107443150592321270370594391266673453390859600816410649811639301241050402051499451850658099067379578537499595647478912151259113021488803730844836766088769735598649707506269508377924266133063624643639205318695399405888672159938081413983610312480861073656239179394972533304630537552856625763238688139675269292989237355287706129328696760051117055848806224961517684547712166733647500656611310403359112630902701132319317410022333138922856360743589073925607571137635337013128202719064374869782597125783186288868070757585772970628367305303281241494899442390393640000499567058436894670542829025111008129807546496550832311499326295115343562503282247444531553388784869345258328109100887433781101491251398344873862209691015170569885318404466455557155371935077845431418081254039497426026084855824911181829320992647095628333626076709605427300465510637052420269224874814513041372857613935447851708019094372777284743648418224660487164409458077019856111905788191824487711848898611159377661168081254259722595301398911512976862383532724672438297758283262454199118207870086659258965773024864477211478943381162848894646062231304438893426437701161740813358877866096250407618251933101931434646836334848399683889283825135909431051835612564808074218891170952457061372235661655096002543626493866261911509987608295516890651389081366058264818456649369082529885025154452915906842990613248071097819329318334578343650508311178051673393034788102999202065846347309837224154735887114925940281827155662053230940151158532284103630806331277371412207488023878730394091290306472514436430826020657848842676897659066895990183818635487812835655011741000925628159408808815619118669107492916991144927513259038877798863075832984377446005684144931739477124013462763753266664440781243318941294165267735517731084422786408434091259659828111488220532294656182219586111798390476531481413811131924406767115323793558842295259449834008857458419940136535592987009725461753985271916175103412297631478109529254847151515083108754275359124973570861931995101295874985928292346112097573522626116592573483568761864595688558201310506349473640932808383951691576480408678709492682841911931319448873861099460023699001113983403513795213958803584179825127689470390578540286776869799129145478125782015583181783861389245476086295828231581672257832371515680749786211877236466598380433319992832490170494680478141667155596788350131147557654899434244458991179194407314859216482413607755812171935974692710946933763494997222884182853703805121152234917753590176354602105984740417911126577965783663274647522480313307177861804899653441070851745234922640847954648945224249161676110539323811299333064261232338973355733560424040836899164128528530363172342231514179335846483637742145306842444833879875337112772648827346025886542245174859771182477507112676727711981947117109837353474384462969206148816594948433544710214084636873072814470422151814995002258201327470606393497946081684025339893866057877758169443570853919062380418568460768958014146865422221361371290733103707143235681049065672027081546477403066314701566388638470266377876799728883376124419874634143467468571637906341162249912755861221720642486776181133815259396709857401394140881011271753213854198943828204996326115262652355009107223463308817212836570717548700358590980781683451016575095901276919593949638064194609048358165551691248192817871664818154459564546752246229352053114920977659506573292512686621015936224202817507297776380235062737133866405978338110229639098923535813128455006289941430739126651481981537303450885850294734936981234594909755680545950001502624511942621327580481381452299427540151529153374762199595001964819395821565499737313706807642014722900193795536851696636923733022358027111686028714002097527014123882849525307760514782947369682668524015561707548898438149800060805146052307934217378286332875529631860288745960790589834741235170880890630859636961981197986208688938246922733491425531531173510482852147892268121940330087592253812550273539888016744980202914589748005188950085054205826562273037061913006851743090687319481798125101112462600414625070180323292727739056360873443772695428811985313635540617382213830629040186296286372014149608194011484309187119483990387655899707400392726316622627523103923480632305763016377773915228566268762119391299931392441994450827120683078831175098227962792517933015920825255178538879312400358666271927193893808095855247621809403171225933515036438474056543742016752820497508811115487008902296040936443849216160481654456354577181236593380839354183636613960592659799207459575964337097388198893548671060442537807346847245490449086942530896517432716174892942838261747221272597582173452484163860198560006545366648906113983830131935071948185629487162816579356642312628715312739772832790742845352508473109322717556262675110476662339275595848526226507414344939480096328047980402043385507520135050287471758723363850825648236699576237331640769880476608061350143854794332573451206025368340065783613484207931144406550528090335240833803907465245379938346746263057020121743444190089828679435383189386644679453207442661243932557068615238960072386170871062985531316467333798727676207038715612877874790561640691645467301581344626281708213192027380473956310271422538757856048726018425886031087753549184276818559459413916724637991876950943299785591086867262107362708325374870667681519337761302430301610526633344439100388394020901090094592212591750952621488429556320965904754818757591361591711622559360825717385389077714361367778545746339759783294285533233926045511897421068906171647788390522283772865591011059481177967783334195280573016240377096455702845469875724660673781198645253645302135111203324872251540195582941602259018566660351361230970840907724424990039828081620658607811154497804249028181866116399956763568183206212232451199201532884792072249821252705937075289332075012081552238380232029455988410748070302617261076844855799567413439161133616792825750405747556175880860727729923937942162527471695662177142550594923887837099966451077839963651541563371588466789863465731773017937671206842534726852694182233562790355612923031822241586500315326620386781779161080317232045483187194782151159279455349916550763247943017225703779805066891827172774417545060266713268157025944754751179422801295343939709143003926282791971249790204335428597869860824605346252399688378581470833780831729238116776035480811981771147890514270632113948885164845344224245197922665691802304712739043410559918598580451904548045754810562414529874828226934026095851402289056689305884161484992129616299530203382701234629001850288486446701880537111862582248776566552260505198976500720829106428945533684153290635608327315965898989775471985532812807379454252068153887493616563962660753771433963748584045455260977065766704815140879391600193188819014315231853446791554270299798383463500993943434044694666060802120415049538824441890736747609145096899223092645418294934076331619618681137031877647353776380567016003538576884570830278462481389443021566488433738912137872091626589766227736197627074303993070512742260596493031921236676121018241618243098292780427454947163842552207109339814771758460821122269588819678626302349208192230104322810341008348659661979010545300507211809566970246681469501476997122372044401325760773028185615507843687549318808546535330890948274967706737834232591296808577773160451993379066570663010012348678097292248584319416938832042458693205169900694351870755698309132119641865477388680331651780155753578299664052784527252733950934634245618771543345490927395785567776054786181013053097649705434417172496312684497661311821904570851852839747416445997327728187479547805678290567167293506755874434083504598837273628861143704667279558067064579719750785329354210815374578801614065510452000830477194881605275086637205592810330089015544201603154956075942814432494341830270826414843153514606052152615890028993074210736405434894058860917370005579187029519348722661927879353318837652208817205606391554848909542986207647189847676620291719953402860241993565869473721121274125402487319775387644715841981419318088467949741393455140003184420641935003526714012128977998563320977499739305227353159991101063001789112963367527003845265896064657265878923557309446647102791541078611480966846575598276418144075636097110548660790067788604770187130478168932379714297848889674461792470182028797033613098568051568370200942670704538755164551034682252361059234476367596198206779584850635099706363611761544876097008019579738018363091947862768007219726819915429065207497756143835641496624346124130647726878122996140305533813101351476513452024176526424211286809752838388117489142614290682314448449468392201141552947805855799321300261943588829121834576681908050582547380318210598506919557207983269082658622775321280973977075007496924593273138113206029244597509507306462754236738602289472225378158136695211982472408038661433460516144621284030784706704539450713769171247584563834676503316664107378351288132196398463800145145614387543480402580456340115618604073619353776048610106199123028458536273332133010097444009435023620079148503994278424156525942450495961552068042111041338942411487510476006363961007345191282757137998460605381453409861558019327217481954564860033384306759409368457018137648460560376203678992148215600365242329674278518243639262082434134841284548152000790480280453800830127282758715436118464742803330711583602764731126448891166496260095847822599928034460535116665239898593318768398203205985741081226893819176138095846526390812364200439470926110025023604361601762462683613810974137152928400625619105638179070990633809275562599836193369426645241670020757795626312109856165820914820581137283247260941229318502298289220831814442901848229863894543783615395427646074902787168346078783711738836200435691200151267252911467001350629300829988906457052483871982168269337825873947490786685269581790366269532417576284117924259500125794135417312496434686504078574793356544580495414355732738567649702087456085486601639219038416474538775191483740043508747393026132920621828122309117030718544496803790211301949098375485382865161391058543201118305756093301080313681115780236534670012222136789383325946298308462055380958026543227542460683824144621803818159327040034485266643272665877568003013525049929390889093776115374348665083258386037552452420008567609462208309028593387942019102640193303059052772675683479043898295292892282082495809323864088961402868392355249709104384935562852562101072899831811432979613282021463726892951629055797532367681328527000172384825212589753161692621629720679926635150005405177201091630190196123544126376535125970971554901444770813579147208980731049218914063351328501192011735298861737162055922765568604072845415067247220401445398965708470967954430919617946675218293211080982065577598474218280863577579843292856027688040336185704375420193894696274803189585920544337527150256308707886658241366399183277998934267133550976516182543061344827158100384296098028310179303335476191764482199721501079445528061782205904778300814450968431848614142561765671604183568644046491897733569691760970174978802296361977676926058358876190325004127232280235429963321107427277339216078446898319750028674333986818783446465687450759558414044221132302114395758981722774595652591706145955341690597368416059556894501227360503324303352896056502909252229545109957159638289051118648317289062283666219200028463281104555530981717749576821884922160986642808486884333674512017524650140748423354610335521186766187028589539320121832402702334772965306572285262620383951396102841199357719019941422198358532408557609132209903467670168924280840384783185356887241158025969653303552655785044849580698394203734202162053963292862812006906321987357317701964468072421751785004515164399673144803231922380548629709483679219011345148707904638162138263638212013222769409762631148164164372762928501831046346149215508644684688112567475171228260374352256028275384345618428493006598148570667089262875085403060318965442712799569961560150714368498622301810212170640009864731632692097029229675572852475915936305596224361367671941348381582450817802852876721598487527749217786491571749249032978927031923104042637412521048129613730536138474557400522491612038448196798300839509370632275463328964618900640393663227754208862330274774785608073495949621985439983128252060412898509599135771790385960294785809515060213768610278490766961597238870048148428667424739228519221330614379139198525191220368896061702569991342987328383223332654071801937547919938487568397780900381280136974619414864899352490984179228951375380895082456395547153857576238110394825785542167364005296000166538986096396757524277935510364660623556000785459065181888819979094560312651075810333529465054844551969454518437500280214304006965528431516131309568416793378028326030779236793613525878085175662980464072369094832652460756699062773774955694676333767814567988013879588198430908283821002014338485427775510167431596644006032338829441541269184377158131986087725260551269523975446729754822992463385753197942678798240378677458081274488424472586383742102597189623869580212484936990852884813465324702231561801888847677896551090144318463694144564168168729804288248904088151196059091550902507981729414458749404232648350023147744889542044834185433818256948889283493144794853500810003242460851047803621090710381707896359102129796918847472974213733015320608498441251749523216424533970776264518663920252524727704455966510253799813944438009054309681745224198116673581648537921542273956600725959861016874484245821722092951761603280705894121419701214651682965508629042425881625794226419614678027758184875143793144508989230519865994262219280383447822319068185394123954219583256697297972376723510522255718597592447030509289395374924204992568548767625256569008691708159580034520790966647264704123156280219656951678703836637507508950744585693714778205527811926355160685796863357427600311698212389437404472449762523296573897222704677424187288400387257881591056060110597219066429954651194144179854927002501765218538559716874007273330423547111510277547172030142570086250688591566656342691801995248656976109194460029374483370035119513836181035939970218787714694962223230059904991179214486004714192933483353149110265993268507283722894182384473002098383255503063568031607570357180874883574103598513693169200497516496728115261236431207641173111662060610031566931360517983096700732852493849877722623345750966345123932265994078917955746481561021692345586339270035081803111825008006278696930485718649459113680642582721058207014162371519821375318925337810523107904444270360646728400001636258698730153176652088341776014660988575685094457467691289139117066286413851723573963690962980877603442197214020670574161238188421355033013651724489059255140252175072001051697131037489845010496453036285253819784008021253386910983432164374787469044932488741187019991776757810623267021819845231361867320063618001478508978054435284102691474440487459840566563324883921783620887176894993602134460961761628194447401495375448166100358211096571044002419641651699460891244914374768870331859518047844939311439056997815561386837353141747635546155859769568084974621751929846205849704616065132235119603163840615370453393612121722441730459310756757497274046602354049701116035049712329204741449034834298983741223500447908867145131149779952760846473697891544936070507326229667693594930011121011069561356641315843161140117189167067689519590213430869137276496910422525182036863992740473025180722966869149292078534795217053331590218133267353128464892259612155680948105189737701137569826501938322090565683693170580897887336772742855789023117551818290791290797866520397172558153862294418700589687329205297830815977762011717520603567974047948984612348450376921496212193136225967888055533989704252592672110617676147339048825489753115397657113441494020815042223912481595750241198616951905080983199197154627510266817303614379728858226276507076509193197746742644121516353737080130999336141713069217832250526082748031632202323678090979846741617542620222155823468378578931296132332307488320461692875937881419319482400607088491529661033512242903609276832119017436908687319061187620002682735923903463704074622035537437417848915153490096578619910632281143971045703505066453599542184296922748935790696143338117818930492604616900862318992936211140270901144798150359424732694518861279766060763819048233832920525003628938180609069042897676185267297086540992338386171229078621130046572174332324823166566995641032288302248380376789903131607690149819911556597838825675311105830946581300688902098650893850302973514115939908730024320428439920072300355780240775404398149244693887958805885440623699131638537024259548265986415197750676564007764933653943512690075178315496475535950340207134730843615144268842013646872326895246888202537396028891707540679352375223662333061119537540525194631034956804438061882220243849343696456566670708623059597871444588266632911063773832515678510665303775056087254064291309499665618378117489720587132600017801902069816058605081973731675276989075280297985828908385954813310521289323475186468136332028503915676220628566525396330884299752284821566233628368343910345572519574651211006565014060876651693318958842822897583318161181911812555239355339001808457361282430534140240151693027962953472078682747651956796531257271421204275471539923417159572015658094545754949911199589215817797796320609312497462852929940769707051560665041849506839082518327965454527468930500460858282614933715591585154687581570010691829399020999764187766812600053859353229368981543979004421446900956778729755976155180181951769129564729964290376435160925834126875898665151160154450641272010517600669526043023892936804335852157195545542921462042977314895810420230174896060376974280120359529957591771617498535268122734863512877425170454018540120363828577649145558104826650253565105387733467542792717439279215604916879803560954694881029775445642730998127566372129875130480304157874412726047214044425673161942751184484071068459950021586274274493125741290598977093816660521010199599330928724191505244463530274037168907323071480282120113157939356105671943939919933209339762291085363390186961296675326774406218240137118320302397353576427261833442577858925602169813500247906565263878553901437084402600142965846918984631985055247565946712898251091988667728549184139349828799626087722757516550484294392867088021734276848920540059967317498833306313399529678189335393037250767046087346023546900760844520849338176233883640773448650737256126140693760550849952149772056145788894279589827635926178151729817057162750177426169281103024624208440858018700156317972037876338088859127532905741177227830261544244262682216451095612394458664008395649741905386316135071945209086021935389710950725676103841380518690400611214848107185318247268987915131224566783899115533155788075609308803829525302662164986292550872271683653631595191630328807230551631776681547938008902650076823701077716009298905359913676192145577257189577266524820995623695139475657979477808905371657917027845849195924180225284472667157227179141732732209074367809121435274761991210683239774414367794375833958377757227560871366964237683085211394885949365302328224835438348192264990375613820941544025752553581692647320170485961044929286670524817158261890073161851618660362505996325971941652058808979979036918486830967505290483601559683504115224678285429498090025176457406070265427260610482762410541894264204349070902846476397195582441566205673372879649707071847447816724633656735724660221495828368306076512882851615054445569866622825864958818461351351640851307697010560150975219305271785629274783579914139986795824674762836179628066323236925036596329076625167276479637787414361939195272782094888955899766639214572647109573819499783413185911198453066177169049908453127212595518942537592792718359850191057556965452479428353951746794349734478378586653934143199132699813631608549140275290827636856198532050645501609376472764770086417807183305427338078401219486126566156991070233984567802754697477867745893203421108157155444771661003869320889411802974053251999311140304428275523578281254795597898637246310530346064300920143514146337915006557339038828574672128339858835464045520804595695249948662614675737932148201291461134785032140671670693232622587332649732915952661210369734156213677290903967699515140759685955255834533474658359337310707659931991047853887801614486390108820433587351949904127976068526809456246116546395301000367010775868429806762627115115874544173563088985211433967795071674789694513664581135991820883378926940532463663855659742054098673035392247222002212131957888652895877347228881273033493472325132805725836849417964518260268265265738202379502691845902106655526373091870616945195136165166778658246765401351277567085797622267566945651541682541676317622916069326422521166157134947784932578179856034447019833129069185661689275730705675733446429247768021585306739089781022021963269952978316272803092202503279090461791355432140586413568601552357263346245988117246209883734849411680422531728001085438435885014175825754456421436286419962272690508609380993719458266124367163846719050879604520976737974476252309826398706770956769191632330524317337322471206250755660307434954604679622916453643777047996635178163527213814519845712974738869996329955626082059925103623809835516970865412464828171765307277260051645838694674003658117128875354685607125683109961976873829513628280106306237023408154637281219641418680387276786257698961399286823087369893114876506452189512117112278155755914742959349571835930435934539763996999750831799300373365598056826046362342051865579668764555085843988548877667557138070742795036287855540860834420486769333151685272360040264869607494578020945289812332613283312001625388350892404145169773364017318716212412241899948256554425549465480881660638027665144023810179412089187595781005073008939061868246810799169818973250844118143531994275090350659117179519429628195043656103852021008908883296231896224783158134477895561152754434700111635924878802061350619664700461056126176093429009502104587236108757423804117443492395134554121138986961490970759249259727536355462986204386807038706061053366660389295143352857208841455114452947027155411586579420888925060044230202450091264712626379323217236290012052322638634885364590888642824896918255390266502543641675116747141852812523315145437790061102398558519211495307602868497860245272126274415156320148250111054406654865969374846779221560058758733896661342243666488512376621710419580162855597226055364606612013495078509433472194486310030954124927042111265971201762853749228036051118169251513115942552766868726577074153812643982520370987371397349062180610160552080662538668582012283498883840615826026354220279289790796756048914321041983190229834047729961154713997179505635193570525821880389185231460743552878207999732493984574598287377292783109274646895517934989058319218222597109860132239170943797415848977162807296272950400186955392998990775404673062688033213806916125908822510485174103802900738214953446072924542195407336029093966419780544427705526006323944461479665195817771298360330238242551582877681113050704040417036479127769082038766801843329510918662233782109654549833008915874047510365122953787577243158361495650185703206505206067367551451523980920224313275085700710555419001294920735912248941947846142417710228516904666717326903173162781938355890008971552016451659334172990569695621781480874548715003861923091673215227770010563093128531552966531607695248342501071895873926537451321967989280852628634140221883153804981660858053203773136827764705202906697993719353740013478526997791962191733107465090822998289292127057817148596762211830913582940548814463641116992434413495033488182268770489025031436075900623706829706723714541785597171714136947634895691317657859332485709714757142845711434279327828070079085420838600322518650042662443640437968959270602688392951883635982410258264101818711074608134953978699621092117188559094281486868448293597974818071780417446175991871492789575478592515578271705159374002002938644675857487595657041343837661895726093837585949722562056809245858488824467920900839001872641544739015858534774670199676443493961584222635046252664389745691968615759406732642472336562342962902954408991307941507741781357485314591561039313059341272133042373047578756174846084920752571599974530620353004359734339923898297250828028767965354703571725972057770498270226857999434047921657283510464206028774357404252194242627629697505525204602728656577712160761471597168067320136598083870514441868739642229843782151211605371556625492905722782262089185327480830243816217208938527019913136121970439093734619365079605716419487202903508287685790126936208020054252038421885237361676192657712610704695059394940340484507666802782612613353107708670462205255015377271862944432286076714576464782010572296713688714466473281738167824665872161860358741403374922329264156276377431188267599840749914325323055286023418026649761023541109706225762947520501687602533334448200361744334557350520491423781184276984722755087237435509834429315166121496854617347500284599807910028656759900649130688482809791121699689728714527014798693303899754576246418296548384508339158608730380556849935267157623479755745221647950213440975056598066556125137853035161481114192265665056534546163241005518848549298483469566460607624410368811387511168282903366896286466594037799699666130672637925536778355014436612093320485681863937349325321445154402540679367420606330211025397734445164488957814561136831285481082193278843243922643417990105394373509061855111769396863350443098474386042762556060462943716135777013565617389579319432837443635261601730864496574676729610061987241009711808961791456570907211128565157000614001579888089271674330334951808885949063968649717434444118496844371035092837779188191856745401087400156702344361132551213757047295076513446732623860061625015422640093583438714011146660637312973887887099295487281091161218005381472360171101256964408539336213096901078388914243423472526496032563933169064226429842762802646478649940768391316090193781920773293541555336443580961776415802968431297937060990430798959646922580568657755770568146648452292490784175992878632660194664304720248845479100696554912247318061057328308678663268243837202239371417800659633519661333159492375381605676085807159678527140498238392378686621344012836863596463966365184668249254904923053404400382316741049056214374402501378595399563641373504811922539743047957640538353801611991707946069939852961461826785377309291834165547806903914242519738375816791732145006377110903350330548234962691137580566181474129946697694447421881760418693110072930952480007831587371118802408991445249459281092167974500427498719608395226224416787522640256390097355430711367410751680866791469141655256659305789486587383452487637546244636298580917947261943776136363340605487260159794190056375359232548435623030007648872819474885485289275765426001579216503871911457323063917899661088653118219232768295789425866305385213826409374006847934691933339635689391845679923207269465965802894341969239821647887286903713775413857433072113571240904769512090815798149497584603480786113795166293975519601421474929911498195712762823130934584230622873921614357305115680909783751019710433311843073113369545011091503270024080407920389437580794705767709040565006369396745454568739184648084467580974135581025468226683469520381963376908208246581485715125358141070453869070823665182973453002631367869268524066626015578829047947781457325297660963834640631197948158213669002348439669555722573014772078458678460955934321465452412787338332037467618618585081651656955592535006871068390097340744030026194892380958679978630302844573724588205770070197851424546938487866884004956177573865102084785119847956679992686511110075387436666088766547274212702781351709998687391698685067014120073737551087130227288893348062182740049544311297313671219684052504459503453682520701571355098671749265142077179483578908685998147471514782234632443145183242340705653546327318159037082072505718311682009031169881792712435418866720479409987710487532973528593150787217117723468158771742515798264769739094392513814017549057072684874471087513576045344159300015260867465158471607478781446216072665858146929188180770904539384065133779409500706514158633942250618488194468677220773235476346199734225303106124137108352344417655287031107187762190400303992528749556063456946238359335537016116178834676760511718199113892693966303819849481349276434991895204698079281601869656872045532319462547430895516156621663866589603442097373120664463174303234477491217120952796700821528111317967162608507541894696369125090038208672157615417076005750937353220628599971950073112957764696682859448237043683280493157018616316676475849956645460836943276669731428415697134120663482829218857544030660055393043371253777292972027425284763617142954150600631627020273637538522017876627161700814486977068969163702352537792048840673675160173617394737673804477607288625847958406221650423431378507119663632732258445849915798333542854919801804316452081286179140687934170541389143165703889592861765878863252814342542515401940487146673773471188387947299497960727245792140554435468295930559511795966906940224735807874850004170726963326303187457737025959665346377292701185757442179066375757819878771017159983710809509853324054469162906025691793816030715204616002376356850565953679666715533975535893948224158670691342808022347476832543315130541746380239423003998339215240375623017389527977652284695116926043943685407272394357639752467768709043191435483021000295931817378253316594134705593159130784980922559981997064178748016920999652098650297824918106083563355701771195136561550021847979476863138870299420649994903753736375448160581263942779474999173263583387523594999720475403344362855170638021750947497086438928490128578511391533871298501714084309516446762468581869385320184312597909622078900177554880761975448104587228206617276631675463422731167568443416354078358839648014139622519433736496612358894162872000872195348241557631337183798831734230705911503713069616045643235654613435033623815159723660545189073526285539370041138255141924460251386826000801997548028647255032906412993965963450204171800643387046097225372021814071984898532161382507916624348403606633185517168227187474100103075629551747952156376263355066262157589856805880147828967482258939308249058891769330149356715025673220950787951321411998421953725102493416440409587998545137823967986090729172952821361261799648930062707310126567470938830630445149118467350835289485069041681019357476172132369603255681842534612404338985498385667054859656958649705990091811200468140782486605808017549147572632385278203575596714238052286018535307909532211120802525118109198375733057459550337788767169722376096943894866216743791219890421472185952813314203799204585939369063535781729265661877634073546134183947981143021458240568882174248401534542664949399851665591640347157490608800619356670202460918337812894011926273418493946103763669075123250115612088125087641805916559345459519833204892504321857536280074186888466733622522475204441585030190477732388288442997497902862863495044168642504899188039880091078169454454646567177667512521724753128495353406986232776099790951683132887356384844761212119956797197075561733509288097711296452671747740608103954867893157197487659963729009969107881305790026269979669540440143966809930031985869427563410631892999939048065812803751692152003797994034498640829738481611922925334895864228696338040514144862520963529564287218064590218807884657569551357644033280726979228909273261206722248901204236688881249230363318421988525825660989002150450171635100174699549837864474988148666446012350552259914204682017761943965692075883932122680251210144257551820357684905968020438236027171093640873847238172573775330790676798390083903843026854945965509077287271519697635749538343470594306195947040098429985927941176270371104928377293375331626024054302085548227577682241128109003097186701222081277443231951725835410608416252095325272389173944497883827426132023261149475331734837163464637883043229756541485074306792083496432162469570352136770418254825774763863502308219364238704280548331065783991840852241607131216398782010503996585623240791574156102573657255766032547664052359412842214566374867357689760171742035160488950259984996834732850218094224604848202119887392455511767201074665300374062192223075856033607418615788545626092585291618875641529473845109296657771084580751339264693381712379588354239732241383582805288424984454987157493467409525433422619224024580373458988229291338572277654721392865329519827255820349425734738525114267752097450934781451436205101517321952821138528598824060869610323979294270552378503509703361970535860310334932450827425135540107127818825215421896693685298395969713510011957836080120383524761499763441772070724701964855445768998330538409467805549598648357126993306082303143409120293326667404343267044819502535173747032811749544884978224214768643663127579477913919846074232477500584507909098884343609407063813728117785761025529321709447402476585657304855840751393429755664966254724033236983634124680156448213799477255008011459088827507920410843035072205940074883870715110570900853822383417482370125655278773925064011659141161327199920859813534867185466860679570707884487170165598968453158948331347261869026549262343873246725331724799015007595671191463551068642529555805241344379708801315949003830813790403983552771238385675426073377262073163612027881354463686171304355172842901564277667826063912920758497289960680318387221671900576728725464959566660871827597920775866172831000375462613325901030263663721104489015464785033897465529666570564172563493785712091491061760025481570542726812348868505604878284048214879759079657794201190291777730086535120228363038473210312115464803607612318152391275149902432305045462007447495672055073134812799628694368764704858908615611785993822024908417488448520706314713748576390608612312241643015543051787054489801946774620958440168883608840953822354286752777421646716447173739409821152026334730173388350003028605111950383385533941753831421354742770918926983995159041930186259099993400756860919365592553576713053170181011934127200895651567150119026285986191380646748987724930211538973324467256689621551112884998150884556283071223475175462421705938034754193497851998419228377883569556402791207037758325719374274036486630445693389750656754339958706327698121710804536773974094720182555811714199637826866307731339765210372406546428127295198170867015132403735080218209621732699835234608916782469202091060488937961310060380080427200363160802391861471451118523982029253183252316374673553453750421454862877823253722053135441008990758534952978881165121317700507973037302607380687329746019762960039761724829701007915076056165500609808680567112405732043549403243769036020159541779570822612111896340792107683062445076805617037369016965595386843771800503418321059854910463752767900131617821895406522652410642093096857661926388294589814586203818890055362887587365267473776550283659123177381858383152175649262072418254321796935049266137632531195333327025431151182257286576350397297696770806877221946805108672470666483107763188671800439644538316942635647803266976653267661072870273753842797283461048106570366740288976813917509861406161302108448115082748775656052129045858543721602948890470308978399683595238866479404472907099256755696435148442562444844796083868406066143846506796246250282767201478416755799682929138008337802857271265650131007258130868816360338203086294371379929186696041804278776534401248520629968490829216704753827738537051247873075471215215268961467719903329423854419741252784925796196669986707467760088386250444757109085508858887175599894578578454685212535855662496723053539298181963602623911438055957403926261098800162377878911973813322302195824126578707537449546173714208440818350536783202227196569652901067452113362899222918021295571429075807813929749927921575701578916215546306722280846674951995732935878799164824803013906258795287980976308232474485757275994447081559495523716521023914994061999027810235194929889994206624906139043315294144326706008419994085021632551069329965015224742128012382479601736848916629009942323217793955378646946323981024621751153362456925682777859082037120883852304076632339276921274092850300213844964739056722772211255091974942057019554019083242045551788679492108666750277028193882324001136201255302456192671128545336415189542708426562753899416522788139348579292863482894624856539739857817171167272285647210055991825997377580674243235644255335294663919539860959981367749824956057800229478690344808249475451819842626964508539841068285291857602008152199616367755822624002508817032867458185695084588027723699182496431804103066984294426890148217817379215791345610312435638777738503500912137754941313073702386760969363604700928555122793064773808466421586937927854028537585029316735788219933207109307331083736593564367620425432994546335695677427872477801039526322591728939216139329319684859676623994660076493480323309036569232808338860957981762404070760048733601260989273421301058251261749719286425850495902832695850078711043495859195315688973328014478707280441013354913348611074218198229472361256256676339879687562629038686706530908582863358346724263170052343412681002495059424438178279701947011505217601358984116296779250303317206503607256698838661413257938065479638523256780602943078563199973095062622356446262039391091193270387789513891335116807547234558247640654729453169917042996360183616037937682309464347806483670078969493434596906711992922921317152283950828215379872771814133004912285228837460297382573328824505257439565118402482449335252248366559363001448182833337882965377520603361906338085437920568967959496569587165670521346563292528348689196383442415155778427730272727751808911573460703445095727411420295108349881758579564291786496605995515936434345559533993233567681948268289913685135085119308936175534595822225503312970946603946323739570678815620208805694706688710525831315857481378256762730507268159583253486733125877097710294562238905109858022309488195277936594105150663566773694283008515287276800571522602065341489777969677398824398367173796480012679896443296745933920480643920510400014794793774206647174477708285986078110232159134661357759573641915391107434723137778178345606320318718644025704678250130974488513903274961120010670136235389134708907531239883599149331618326926657426425847798713072352191652334813060048384225344377660330114251413586898827162614938152091289703595454962681907359714988623502186584545387863893689289751952290752765103807263267720768668415676917102315064630664435940381544162061902760463261649002952526460454676582682525993836665458554400044746391882094689875183499172721323585546191037824358851823131153625125268628877238646392094071383742749942781106019051439348144102320125689908962084484856215994342123784673202345192679093344197256987325760729424149548348892542570999683800080791623783230208261686529828599577407978043623648943702110119388191723234641323348567664166503584762970662533126189844401498659066012180483519354678953260551609611423485883097831972265505495060050845638985799985736516661114140081441094256584006833290554933830245650113646574233079456828297379301835970856402358741371727258900271707979501190603479230649093229907390678493368678256009824220045602490947515545285461084528206355630219929724801315517832689198267614406899907533444538032331221671504769319224415427557512403639537719313590354796651436213069144471062245497034106069531060334899305722980618191035080253986876722765594935214393033756975773922581550385193030516224739156267684597565300676945018587398785213545037557618379247713905949705233211986371782388275726275233212248596112636460287925499340664906574329748394253275888232639468901077343941656838223582031084244984626549961180024452652647590599734800572531951226074860515033868777879441789752843167858766480184795073067078764937528088783764210619059079701307412016474006126978667166100654079340609558292364520829474649924473601019241775266320940585312291144647106083814482457899563518553149691803109145283569155592414650916917042953370408351505903220006853916894172613306982786555216025815305995623906120538778487299034497130806463594229980236121719937669369703566007803326142909963127072895909289843703895714760834424979725787588207296198737087098489638672302743943462807705922126200520202661667381235829003936934189872835022922887022948948590079703593961734088323106897906722834322433588300845137937173917746383938406141490772211285717327883884595153230453214857123504335415606881926212612403370614904269663330802255122770940915932120182942133252617125362857304570966882650058480403700422834514897087686552157344631058564005588740682153481649759201855294171970619292155667409252535271396936262440290034546023845855738943643439601230691191975105758369872495411735037153361902368105915888307722599335569519167675821308292734716187127600710495721166673092542600361409738515668808762806471930248341783861705618740694276912983207375806686556779344778727103046288593496266600938324261616673891881506103362876735817417667912168439416354431770243688440649394667832279249802296385986219295929479243855688638999671637953190128866303120553070770121348294546902717664466556003338033875188345378875929657723282295188577622845210292121447986898788270073400126873537418835515472954198251132439519617049069482628451211163267773191768871745293504530991503654680851564632354148478618011131709103732472771148801424483185927506458090446983747846983660191911211540234747447011703568978737325517792324225024220174479120801453589520123978773179775100398036234778000367279692664784733896755034740026039647722306417278637225344440447743350197040308199188243951739642796282767389037984598898453574394810068018158942851494982590052774865560036592703418685811408683900302616817927029459508904785987850534363732155647407671533219274144823153567085382176535987839892219935212450958443493895215802929550086261957670185965303248892569528214307272729391344648061469084949097282219807090037407272520850559303582898180707200292874745164492998582543766203452779993023268878475218143982134203052010686362841090858228609924886441359716149247917351030167652665944553006152226918699513825106076645672726500562233953450141552056889686070789610626799343011205817389836999008887966791747854452527936169713920133658789017342202581336964279404597774605889770818656899885807471068616853561235030592617991357382253007746534765738777092987009212792972888564778105440055833235440536012288478634895872213669645639715234640851970325168544708709214180718116399000172681794630880213261030845190128424002292130533987130909102291213064877284037213760695984028453244822891494046883441678691470584732368279771086547834433958244173475786457366170088045342860771730793863680872393757092889422380337030952945875937475678719334138630975481946435511023784449604575568637628684894797275329527322584124066174319341801981059136844429521246550874470667036430932472723143726464922150101183083189351220896446969762463505827591239399346352660994388524873389080474944439089186485400360472433871443655820001663177547170950399458958779638699737472242298727409210969587913918795783817103604344738678804003261582962115044929340273399675181650285371417794539266382084435462423121372728370971687946837930532929308809350624714417597235885252393179194747323672512957721616022342516084011372189029043058584459645533869881633454858121370473371025907077687158917103927953605766029083677847765175817263107325866903082108428822534310638437212594739037538790045960563498188971541785923448954539175288043458600617090269499221000939287837742606680240781216778253979901420174340560939630207645614791149268911069646670033450490816073189336661428927722208943516467122888869064913331455572755838354065095632426506337960295221713072765341830977772483080887891091780446257259774694809633799428814808813434924950618226613585625767685824802287450969242860098808181973474304365448833834086313240689095422586112534925553615702317030867786027139758219201872802909060251047903567243720385606525534031190461799710157064888523294480735599018407553147590309439674717827462888620226842879457514290175394583195691485673677611632874317683312728819385456805842631075655876270417720189624499473354408635679231456238860089061494207041306423000600782237006333410059195641302843435953412213669380675572173409566665584494665613647473444864765281317099429980509540910143812340730974639555189415713446130381922767830682531969755878548544555179451844485145349948255043769163429618547833390017171140820508933375690143999817522089862056379450624424646368789582493235829029337108140154373873713123349405216736942238073714488932650538837386811155394194888439791746756484432011613401904493185851583528771555886113581303318604333263183453701421201392173905117138679516972403472721571870592060515302158814865995198786285599527511693617773643956045499095812401493511152569571798661237864925805540808719059599134259781705502949344473208976973775286577263186499478396444040317085078171398893906201752363685768419461159427180837453907711284131068337484073988350941719574501314272842048312087852715752627064801555333552986388980889890803948539869508132167722243093495305444405893216144657750397668395117015972734478052012259693578738175437879100304380829412275138569794682089484951105770488641306932602495208589802458114259929982638424464505510160324584750194039759079464185306520516595815265778352944772418829185924840060579331782203783175413001924428820561406675053226258191334268226659798460174615984240719074024246297009931053219680099557688180011860645101041027927733148311500643357928745599258629160470888166863319978538281802316764702189515895335888407130592081589238364780528598737687789134741722666654968119611008876527174920867284160690360122797529915013132899897613072074866238639219167124689721307912511754982823713168431595419226404160435989779277439050946004122808360225854635275250930176308735420691602672255558554827726763809140203764264630485980082799561444233093979358141674169334135866406797687410009127839749645137820728602809774292304063579511583526988029650253769416427728983172816463360145210982197071586648882054812935644080028766752296487712522061588079656570023887856087550161080170326527440486390507520921362147666120564780953644487442901027942220385804835637852906244292125500015338221080567750018245474751809940804130916761953943512307112448416337398564503316638051196080155708757606768147445176621341393671577859042360843766849024781894853239788815325569188881367389983067336574905084026307457982012524375290912826029136965443042650397971437879765222677950580145144866834932511219166883281860072113089583564859001155921520974861898333877047620433760966270555892657801490642169229985926780679295306508156951559347264525027214586037275198149551732039964239580113736233810768043524571576936159192699470947378894801831459645211422922205071746492604903338323855029041272322179404996450715579144124073369157080363620585479433747081461409746604852554454569335985929630316961300156199391245736987229048188189707747215551463860523061686104752158241056623606756887759353292734722278186156565634338602212136384492500840579724586136059081006185195010764582964493158697252849502720473163315487412492343192759864015657905883051652852488391778282753469019350512664573973358502718312862576370337306877469044213382167446475079537121506730656284333378622825675573748235739518115016478441292208071362379154310256235508415484274730328686901613191330342345530652492759141024957144952861419074788603830966593305744572224747342999663023927483682568838256564647922014721235710465227857644979472408891766106206366100618978957591139892216166784055553501266992023819547193908579794491838375791424737383099767925953177869048624144300661741470673884792968944407196528841047374969007518382414752547721921635071544364814626979338424666766791272270756214201926077995795614178932341401870748517303519335562485535899052199020296006747267470529814044904656544812700603301466491722508462289173920788492952562879568121977918353496513974713697505263077528805391307207478671802280740641925155818024339157008956877083245656200061881806564998802117429018264458686509955405923113181086789071893445977386331690728270233448779563991776603504548409925454447382853232803884901672207966519690370066457025526402450295963481554939518209930761817426278220046525732045729968430012463224320812824047944338170383844295331053184374554166548392983509138290252757128943838664212565050120012797520926611046049577604750213929109244196371579558852472192366342706784006298587735742403318006420139841196241820644796703393984583785726374809798471394645376316394533890569052082883286741423432940227631776176059617517927725800316034951482999987308722905109390688629240958287195495583975229661070583678363075371603475265183517399846590494449283898113946235994089033286615520955187278036665859724850237070385361299482098694530370506009200669489621920525902432430217950575896805011479012133444929444334895207318964580101075142331146581147199823038987947017026935948629370060711756951628246117825662163907163086156036859327398093692206731086635548100051989513539775135197390483249997562230319060056150261894937176948215057851422372436329768125322714475249138976774157168888422100374992454899785535433683593110032637651968628177920519919248418340229440730573085860328581859755050430161942143928003455679882714637978355246062337837814260398480648821861724066749047006237388808159590692393827693393320170466694106578107476499617126434001897483068661705523645916963327696138706942051037712133376351857530704328736778027438082281445978463028689222074088090638228491392556265018615526776400768379298944960715389882200542342286654057016540434988259060957178196315957268227182269049190348012019517061952761997603968547757337797789436734918407477459448139213374589064302978513175170341813907396001056241329708924604076819814658571104344735521349296603807793541418899544394641223736340320652247892460831028871355973670835571614823757005774755965892763350625893507391670126251567714958457192690007316657783838204839691083831495580016421448000992360083693500446037625994901259602850515419742540308738997799742184992994743839446928094270104023112436940203415492850803597557225027810534243695143039692410607784999054596142575790993879049019925008812439059875300615658722903989955114204832819628953289898613516155975093517410107468795709880702448442689700141214362078736166337239127367053367401084703533538073172476627754123499487411523806367578730452917761705933044041641270429424232650203613243620205903996851055540860627168689918919207506543627513119267387512244134611339442421702010402721692050380078856593155002908488454127902049569211580641469393226300058833359784533580765866560019334627951444918802315603578435890517755387201717896955955872319682785443108563610182372310519652233129514312253337536038773832078912761893479044978324304618117084400087781654447357227236272838459702232806128010249210081790827908760799981280492665451453171615193813234117725458493473550878836170369916489955091552797142019876930493206712711304003941197490707673860578815486581031009601896546783890918145866698003220237243677088727925421010941227215954423608446724534445092318711819319145094376834670921584444789731306174817292912566188602877129835565337665326394746242515045863558530629308883516460850393426413035245774917205731963718745711648370874552721439078781570078599834169143039903720305685009901593033606886652414018705134552770488663508337793969873774871859487738426307542062968551402492063406375180547595881740736110746898608426173408444949794506476495781338294101081165461530840340289898931854857913976837591821868333238180657199569970005707538610261508182449497466369537501355222706511737238634096645377913838892383048929917186880235658536161394654969607832670433195014864669978902926551059823304540853813558802407858836307589045499285832110422727134920009654837647081876210781034889507415352331621223637949366077910485815908622695071130112586565769408927465973418105599252197310775679769198597873606772291079778861805993080612459435151072848267422219850744788849203132120005667482983315952889184766288845671466664814007396508120168683096797539203397547128233225222774522958626657815481293634226019955978183150868073063515663071410698969742558172023299169129697927637707438293341077386478322209702214467120931157581877600435548946041264659748675132020593174972468991983216441251132595749261519265807109614759115703962247291837573227936611655104893832382082714812128507256405610129487349075958642051288343565044661479417854375874800078716361819600484619978874726151761783579233462051946205605225742201680582399860892698636741489930363980670534092894048579416553352204188226781517972752817438011808735722613955239524838926716737343792874583150760476791098639334970438830214878332055852897402923244264371650390828007956763427403763871164965192541535053975563158988203276261541500173455145819722833392606133365542835286765046198076746286958464595165803217045347337064112354078006384261352145326146789144693054397644550961228212545861372950144191080239498954373519182328165173326417748432424425671603717544415290672523267413583281973115948365386372036874872052190239671614982540406906708412685703380036155037446933757553428575774421815551353802321156951977430640423813879770102312577142708177121879465527094408377606430862882190731628625381454035120472864441831735360107025773283868405210858194188787556364677394419286930773751184315135959835788284902676274857553330308118242549799905646476109158437948270080624779563895608951044179072147873736722556398965623668617916827534994422172519796169637404884590456065776051141739865453685615451984681567466471203882834314654448390758899022341404464689633524064473534231835112293344949662392788590441788876550285065115578715869716945544891590597100461748983578810222502844090545658756002053405013154813299362084778695193036724014893625058797586973738233724120858872229426062642772325791070471374444605832116926004379882004491169321267195948801523406114250459806140544630723702497638907967826453457875683016641025627363564700592809199617821280014252302727976924466530264737223731573507144605912511335138565740180549876987448876948173623389373713418702812283294040546359385027869035270403891538833453323589323151726411198386120181795389952826312698894669506740422233958272121496771370691692715214375443326036095560420889602519378946314411608111056027415062691084282575823998187298573571309789425451097248428831006367481668062644903137823275537763156360095714604003350543599698246700606808047793915896305695789781017503531994015121266670083203865320964383520990738826793729990510573156103057400213237848735119799841161621624637117774013634247953946409173436718267381691917148970141062667606382001067039724121111001143314376178697236490471881619481594047471536504532490842455516555279847049458248531115906341851221714709556102852932347049736814390211803362660168584025996350593717130650894099600930450324263615628364878804387702293574973334673775865716627547534888458478496610334742058868986674803230573232920168119403667076943814636708051736563660975834054310849980521747787197621496805202530251190411020503599545252426851448952280616980584089548242988677943631311048473280681805405370674899972882882527587855216691569684846617017568307523347873357618427509772043276854660587261858223389544701369024148440100575820872833271733454480289597254669818119192779659273939324762678186973189237898530379877212123281226059057231501940344222273283407219039023683504127203840676328469331333594906025525743135968757126125457810281562871700135251907873198241338501071829627535626412898362553033411857789133060146505917059115126705007208629568439451954891490164581444118007335084371328490199759351238527101579901783979122879478459692129226898971810960947541400100031743078721821756428469462269724303331405390287355649414871501365079399729586511736518756019390781229551005647002505952403889384969734967620049905768559316703418146218173626175438184542261061496491993770743778299972872967585837507044675776111443643744752403439035956183166646016580604167905388437303677635521908418404281735730125744795943167345032807343842329517803213781112101391101436485905127594863237069614831572934678328542654006090808802787122936759134243764537826196236994378893640998536583427686084084886990216400996547871089799641385481313410949557698480654931448099719743568534771940179829584886042342915596241214807834239463038707810963687681017885067363527137114925499214153821449838240016702872864484280738314532131062643412487392672563829879460978630846013411828562189832845916168388821784116160121008323688996065552116859890992347672658032242747339530776897689319931276702642509375933174220527852246166889132883400138845160705233968466252873230067037029735799500053749459382458323547658698412114746786635326506100212434044613042180279177867325663238207495003431916307939253099089459934319305240075248925772295583035379766302522964661316450625028110576489566146478008403532733627098959527446962656934650893548748034471627980689719845496542404222804487884993998773325026903308915153209977474747640357516817316845729880162470408546448255892106736217695029111014242721655321747943944807189512069208573345810176242266746832650068913091840539168561359651780569603661873450843263813731701426135095880192278382685528731415118309406405799644781996807821421327832917235411719360868654588435608540645357329124745917934406472212902674877287531804512307559336888904441772490271329889020300789497225230955066046300666854770353315269409149392577045309551207538892043213931574762310450056010710999194753429354067899165626405363770492811477858839993331980402949559887544010654163921281096863464746686595476063477998482006459737977359060733916558131167218384680059668863026767895158843024531252825874310379113968609754154530534809006440180052455653953306189639024384957802285478124683064215430407950787010719263582808385315256784564995878379622249110984392625205845268980718806752463199318484313389186241381772759596437038687358822376970490793766030124747565845934849578048647256155290918716957709802068654642824172943348773673701953469531004930775269169197394850057822813626387310401440451078578851847951531525436382477791579715020055896730690456043664525337945279279266134083787196973172479985809489153372542353269091839222913157278199622051185484014004694448875826582639396979362715140417896308861963069552527265818703100591176756831070914078731539857416118828507714656025623060619213012623475862932828545094673094147205677771096231958614604609549238829734147305729205195504742653245570748717624301665814495768762157549229860113691863846497305018853796115775480411107439707612741583144645003247483368863618009812118829434657933412868714678994269020900494736436695250232109118803774529300567471614904071097868935432930618434592383985809046600816097526721958761991414323140505625160261017921829554934346049364109269788460127444020435157094534725261147227098527371528969662660302714093578430641763036305683834681397374735372904647170039249081886227841522498839185285078429286307163527944791482815974120404496316048275470806614436405581683874223879943905970558270654888257246328418477780490686104963155382403367525335518272966923328573418718218308110740208229433207698883624033934320503277133827875409148735569547404235712529427830681071661603901681460822415326933164485325102023201373549915474668930185639641793938044414748483668682380589975329731210394308443819292787250999510415702508786385522351967609768648386012085912351629306703633410815498385538811434715706748759142700246203301956581249446642395607652798728719296991094684139492037856829903945146319428724150625374671359332261322818316622699421108407260824526787219192463481548635331571057020523185748426720489200252596178980774048641435020114228236953014928315604369152353478704931445312184035117794330293214774339623807272129514507036554635474846744159734563019635737568724030003768078132048300547052504825932176388952903781175390355110958866438867149821759291073743966280614963420089067018630886388279898624375095480537740600072116319866455851295605085297252941245765154195056050211237150181128926010349175716469066029231701871741893981104714099872750713441055080370896586779411024405897454576534901123716149489629809028414564683434494180093149885903483077026473488811905809446905674191722992979461349692039240904980009182322018652728931633058390181312120404766883759458907709607230943218326715750021326177686071562223539077851836874858217604159255958787720336930465033843015410414650501706923380296010243921154553054622913299427779363954266980863814066141608658658735457621302698028751605762968575269502783256899312165657530158501540986122174182867815436412090808468870216123350825356732238255539483262206816496850313342228834871339173507387269493177556310872514620968705145379039814817386818419098694237376522679154455886439002906337554051534267259567096541358480858186781265836127981540208154548645434831935103805120176771820629266931527060862317917197002200615815149034657389601699657230118629172060942566427655947133862935842191969415331931774723080467044238119821808465163277802796797817198160349390493835703189989735051831619292358504087275262893508531054046947208108406169321390684026769107168748196975891994313684274440216113794778853481926193937504725796247693390511035321821263303394582547986090590660640012908254413124286553051293781683471387243481522943240629964344775548906957459963274108040478658413108076595324478302686286387388052977429581262868105262208069694248749794067621624380465061237285091143400809736406133169369226645266818188230174390715661563626204572254229100023293324404312600752856701031725202551941033381642243201806547198977050174978044137178580052948653013705224173303982998026110315931354755694131300844334530350391340715820037244425754120719983607694188070805661505181144311188454361612953904152606559415893170778228875703613824563208145195748216230001324291307239092043575880020605026721424030880467331456238795695839259182034691018728719889873140350268869667803790754624755934468540121004891987379218184879158541929376273912620998245104821720168560630270876527848043421811803977999278520974743752468031739261663405626974596061184306912235651776427246956712499830297683111889441687903550119226182317044971252741152290530750085675714012736725280265008050379971404859302346343430360646942921540455276096791854175045810030119162950115975122977172725249547675313210301761933216674315341813128420261181298381756314779444789518086996931612340768516615198425700562755086080924871645150717868120893500096624771970910246433140586657102590970040827051055214222714046895707693536146644983644610830898009323301627007345740545041754107880168605021973551144989241947636641092126910361461478846920590318097521399581969483579977308223997291615627501224780057424109486202832314240879988695887306294489758084002030429828897908755454724278539915771766755691481892544961537922360429197405586602072055272394795757831655998527692978879107929392613084428050101515528794686709470153637452229539697999841288971042465709304571030367356101043929245957703401104192845800210896365155364913162820646745719367363917492639994484666430780365754288532451687556243192485314846504626557312873575096310533130145561039300939859004409413951055214379768026971080355841481179507385402913824263434740134045644499441420932375445543521131257028823456838365857206660631926351195069806113938861816409265890483440462236627481754824464776619597133147726876393996034395503441725013813738250370147454764923128243982530574541525509159807435491402975644022744405019303000056012434692001528966537547173420957266274587638705112144006830881690914048435847521962528220291456632721140363693247345097039160872440961011922405276515050696814873746644297610113173669357994285737873855179048869898392307066334554433065751131996226920561736105711362745485702233704799895482510851381215089807011838390376319804385727912745975940903789539819638445251706504926743757582765258533717299892564266675955890688798691660373223486808082808418899855336486300727916450001684169768389531814982460379540849965867246235235454530455236586335632383062556973185554729671091226302744490731403023933605100462755236934835380998827561031519143670115317721913747264218496409714179127121460408409136362625911065027915265874742960380798191460401003382016280403838566451023166682106382421370822996093217337277471427999305614522854488195346762327408497584624628420287304066470278270627132609799707408828864936896620337308566258813759566545392688864771776426884689461176590519746771345659010598084377408464965686475284033232903079183310499855098011669429829178452505454372014696447750218465892879430663551411844271002553842107655235779831681493820891822668318534263950780427245796248379444421163017841509378070320863788035282310245621717196826925236394339062801846134186881557600329202338871490925999853197555363403890842961163415069197384557628350193547760789233149041295616519094311533358183170921882769374394419569837648237078424032223212842889693708060405058704716682208917226676344675106443610330706689012664810278928232058053343853690631548747442044632463297065003369912545629410086613006001885985690289196693301203225792987977111347922616941761927385392936325995612909820305360873123592526020759227884325936820363245528276524989390227040887663467891528282036802971173315354502538281947730538965293228294214590985262676484219142301156183470181234029667381410515058377886053649183922390425610851368118625092281825860584179119762590414525009027477974337506943919354871951976674345522081271149588996544389083633108753489154134200830289535422484893800753235950348808893951794170179729971438357969883095410734450125096982560457671758728355684900005236299234248027221646132150340302386527933301188057272160339849514031947936646897801584954359210458987097883354435916614869759199801802656705149348870362637467590685341852357498877649961521675010616823233082366627268156852044994458794289077113978168772052460224874119095441207029312213555709444881088452950366432694369275629902228972243899724577788649875688835113863972286721768054304820641166705448461030160784498849461716685187073675549516939778840927506556552706227024770917176584588797221261670624550880865354875437101400043718512487915594400931404760780850121124495708642267844560961712757945191216980126634740127711050056892969869822663981012680602965409414256670812257355680675400921254760908065941509353997556557965233372145892855603731035331836076456426597306563828509872210397060200554037442776376434457136557953874434365991540264240143548441778538960290752350323678282821327270747797808009507232783301979667466441755827759930712244912589492457566280057785263865693088189357071597647272952038107768570019067688525260621097349681238866191906071245814810549812499615574672383456796866248194883002810572637828246664591112178231207055305500789883887938870392342359045932953948409201857975033864522333442341018412603529610116645244148215043778120296274952365976276532058820373148870654598933508807350650062259899665426070068909184971704962042195691627630966229636323589859060711250034121977187248466165133633398235153139362180983244408759103180262499255283431348163430895670981810989499877147453897011146791794743165799126327959747001916957360210508105588882454685212353419243559457821181320624087796601819977467953397362167502951883152174077751314089970138973300502942611553575748566624948179638940846904886823927601894928348341857306962716881216597068937214253601558063035980993373992144357973367956241215076657806592939810412678536791258949071101572161963892598591268510673997960350742246329260267781100877775889460210609960291192057396600225657029098879502451941052383401258217147240076845317794808263376755877872422282661751564101980044888134347791558543272003689708721119229646129616534786549385297049904866677993913050596496072729757945168882769168673139452342833922463566463311175891729256871150023416910768013903650460015613188710935840927745058075895135880978064716185465654238207097145698941456461878163238562775387102612097384346153173008538805113388867043227126413499250232744040168392665667401727111512172349401924349092215817415474721640461721060972441567028176281631737111590822782464316282663540053270411886183008150367786314462190477864338602669205706360682973603239628586293222450163160674224607997144119711203499216415728570595483065919026567741045342898004538741169606637961096337868860164243530221448039261308398149112768451749322038356503214691702667779644855826080071210298520516436371785512213195960693200823545625364623811874229587879865969261850781259671907494343907366388270738732681228412910368209202049604006314039431006665212001445554875251026715963635415685370229644882026144944073540299057177425195298658927767495251100358497033976106782302305550629484617112591809166695271744820961266169012611428772191341508818157074374775893034841302534275403361868406678905394650658354928555428443141675726348325689236677347846130225880737266578729741941781207360639422258049162626513940332578230441532263347823438476239229085440356986461240533970032490227307200267769118931824302958724004883747915905277456401248260371403475528656918018275938854821178574507834464899522524918601712911915919455679628958749301478647746622974127910875869772077757564378675983062069119078369178487832938957019173835506632466196457620931056080927262838035292036327391420500764540916027571734088753654106285399672092388908481133121257064482458087560742612207575216495929392821275873653830573648442634936491492573404152894221309618798366864005595001353003410106876768090019312761159966933198993398413307609999099864699952842479500214637357694648783457582807530609485468349852688764408817759275006891414386828215185770929937907630676171967819119028540730014771437565609328441292636506657738659341532612306699836414884287629255416102470565958140619234645639623583524468880737218978147795956276781674568236806440187612604347215329133178268928832479274180904776502073205734079160228317110530962912878477812337974514745494353327221202729989715135936139042694364702841512845972153392456433207673158615853545485405057502532666372227041725476257876915740610713225779440673383132779993211164085857146919352498689217127388114026519494551407698479484704125088084230903602810497217224812504959068767547773866634312795001245214715608335424181220315697651859651025348981039589811377860966478805835108947685371068712664260553735564793256999884625598261397251709259209754439846197348017515974862562390011472033342436496003146500893930475064467603379279136290226080245748041902486216132813082406125560400251373520015484400686438772625720955496145267925443695236327262813533591091052435464913556458784242819577271060603185670955556893276576268365707722065032728153108426225938325031790574558068501771279259910554414839642191659263781639044520940989062132583666504088252844304155936422696195850589743238980717036247667640029146138436047797207183716891728123606389932125193668823763696690498869664783394443104191147593298092222619825996710157914425736208792763593927313928044047694856002810553452933596473134355250091292654482030223341999406054810211913967681914519832136159272718048538490138171273459389141303483765766576069815220340813623760704935798991876236813205093052709472289079075362504445496836079225750582187160047736754320367160291820826137214380669232366926920928246810921448750403277828317002079790988660722403897040308135897436493061318690157549369029314422601458891020550356970183161952149248182217571162576592909907978930553813123407600123788351947237464022982469460922896532909067332353781181268382948205662216300499866116732946812810826579246367491337488906259634278547629112095038226356665576557708252577962928898744290510723171036100105081418443879492119724612175442322755299582475624245355981784925554944458900731516326825321728097792174660275371857214360558628771163786450577082488079696040706215585117538312378870424862972012994383992446378275981843847251121845399504925214852558180635722489745264117955266005968387975207079108179800332384207782007692188600507388826620057724335430378562464113513121041438960843612728675808322939184877456515007068611001679209437594896777001739106871240175698697612881344378038458420843174438182817188499807319363995109135689394291988664109371850682657960448241590563941747038164472804796982622089693556350909988150025177483084804441005277954618183252478328319846642560852728727321239405994236693271305189250200697150645459313006021094493860270404270194108317175591221959191501757526016567762688104159673758817567077390910168182003671303521880630616488164360678351269786391234286112532291867273816253000106414719464737358001613506840365422331316818402219360138336613496454622146300957888420584007238534402716728862228737869724260912098427972946120711385020733875078116751177284117764964345262029113285413953972133636422043346976317609668534027502850476282380368239186195693481014247591054843813666527202952966927729724405522941248211994315331981441912543139042534216178933942723099667540261785719726971066755801709350912959689385546072811593405969916727032216975432350145768214664126016007856777390277952873173928202888736864098535439725149271421272142872878824331160277972245172081054780723144817287210603199833453514410261220216120821214778342404742383536712106980369533061629934200898059322850332416632213524441925870375963871428788232244167391773672902155681337411461948310461180063229700881378733838052215097955877496605035208889982856487795503283360625989723047848134080334602918265212661574383868263248363660197488377011415440444286197079270975530527507537342205437921277894783005524769521296484654849171206617888490452487736632668109472200160849133995475678513155495956356270284996893114197147807611869081857504805027392597257105835871767087128390663883740187611341885763835811499604062662728928170302519852712091234992685221327805468001773095895561623003945318315563270086293285553068025663929647204283588855440973584460745795675418068020216120577858636135635006082941970802529291679170913584438549218294524731331945821714843747012533512994074432142863865730613292324798943470094418367277337029620240692049248045899059260859914006799157914460789518897948261077237015725275338168862202702531365390565225835497440094684313585801404711628147818795847230631436399322615249809094154336300418931847779093292221762368952274288636207095477468694317416049249061322218059254921872381879656331936455275076350867814460381864392330494713433355658339157534421628980743896153292481897037205383556324430726677523465263665101878441056039183969885288091864624990260375386106720087533750859607443749420481232777587969727163801592673051738581809858287528874141444090142255497839530899602322260069541054421444467683223352095892726785848255725382364538962425497508566940042519078552475965169718347449134843227793167070043472733369731779356520068227563212681224630198781158852609321346370134243915221670548734360569896809989961542405722101139775695714414635588710430512599777326612034171859733553032969312220831114856213422882991272900010627979478080942958321872790366397238653677740763914778495326597630389708247598649316224769984137215535201568251012616470397364696037099830472194176656832144963689869370544948521756326265229326541539617965345759791529764475738248575241082263613743840242279079263760747266956703804566723495981023783833473482311055298139951495112916361436069993376711977009014504479908972303333577377846218010140041561714627974565913030245508870087850664583168239550602400686099305418390692964086716109532119230876759534413118375971358649126940252906661253615096357684645599955364262240542374214755698999029218920104055914817222384622216579352563135243157066167367841002726727203649342790874919372270506813222308955474578433357402329326100072073217389381389773758642818302692913298669880319029217655618609075997958924430285295577989113117471819797561765228036187892105291898927538442440651341941039483321658137804139718083615161023894108715465899527112599684130973287818826161560682477384319034867047153557302368860000479418691078038651374639633515906095535279039241915527435213511334319161245586403880083832219042754828746009354091464999601475104539141220660525463877326593011284474507080030972508619820277704197722223401582987652957606138942386159698011332980607249982808623560065827476683178456478007950123792636616493076837231689531161638828205335958244931844888882504605988689736394021560576575923420388463034773837808308975365421512243301490525982187501172658405823403523253546804607561206219673914228415150740510880535024425692312641164258688255636181808815873756495313296637860081729894441006207807455168145020819038917994638377190186870788390101319352400445154030026405093549651458193427609615282229222029262452925176007143275813740082891182534795341191630246538738395915648890577167708346083611664305649366328539340718307363330509963023601478117893572078840085009029722849518836572726454063469531584573502103601310237876190805569396610544575081809128128219954887229990014547712671442198869587526741127679902350803438270188203495372090623054195116615294164773004816156050788287450564783713039267581696145880814244767687406197050331008827672628853551110746488767731233352597282233583768323600622395270684929445305919404269266080234999560431501301486225867203447488520721810867585004908278293066422959219269488312333169207870158397211409916014647347519629341973825616288337773049870388314856179066871808257324044278422460353853490272463412208997626504252530845670699933906213512953104029176321366682782308204367343543333078563467934089194503409659429005229627698320941789957161204375459766392107169677964464719433394570995065635579868882148086027035452822781575404252418109100360845135480647345250067519644507460360735264453592607999637781591252018829026760504841116934336867699579632775666945142568233429899682231416848072621335359586451636592222956699627585563985682408569730433174572619033259675638073902659187993955884427656367562958670706382030514954194510308172744726103003587309795184119741592419582333236361910303489441964342601055178077958514610401140968752797911101933109104880979416579788507173125006152705755706876104393905631932840992135775763778623703647358081284403017269646057674865253164018697689235237315855014924534278625419165086339080767250590953924758565058609569949123214068047796989730306337347049499537954720455692174528860366394919873678556317943230533429697137655472951742496175829575878461489067338358537491935061730198773650653557979373854239290477942723716727928016922430019892046124779519193320356450427719015748492696358348186083556842732124897973713819591186462718895757041042669174263636432629756453608127442867711870431344264093361781896712845983868642184031604474105737528710723074205427733265263852714346570914255271158262247921348121851767049445821937166856029363294463247517267122009183768476098056848444211797962906887575144752630685901911738023072739359461950625891749417476244464319707146117166635449230002944945937646238626704980932884128608710445775705561869492619284616716309799869919690646556267010369978966514449742181968461510382787243909776916419078024228709253397495013688361709669783692320168865237141675759929406608657895260666539725155851568911959903434491603140472408840391404435689898428289807828719843027093367414595542275927834187798200757270183114138925485094042381759230896086371524669543957007156922463606591272039602884765094236237461151227676287981282554445298233753075742214732321272322349710503566986518398618017333777003754899705196812668769843863265552091754879111471248465542938609633860225721950670864715821239893519454737509998679769481338118977431165710821321512407793479337164804490225563007326108859026018920979822654632694968791697977079076879629496302219151322380371482678703479532789174407917302777533055124317790988862571084596135545574499812733662614452947094953254112065037887387972670101273149658110245966044102105690887083592809253208818583657996486860221420591774226744145443173496141968042026443759725601817336501863326510118752217739787426234609100141566611556185086192319802620236453691952645565796397794466077467327634493464425429210876667554840459589048825045285028990879535658083987448230164828273136295676158716065873169167236639892925669005402009787472097284952790913305722363437334607869322116644999577513879178990349060172313838808164150946799829308192296090968449430361145996641262840269771565323043305854961462850752101276272556546599955548245915740213625554709500364391479315124535728513547982236109287901082799199335537506003877986903686278866617514129835125808456888528764451198676463551552583842353338670311002636738127227281348622428288561808890498009758643793897472639752235145188748764387603705432162348082139940881032850049044039379268605584507442990974480623087496882900833572717017661883806809417555511562721683150843013241398169794371675854971368766884929242348891494581100016409653200412331032584778997654964593533258960060925432375771294388861198626406362271560394222401908844637861910360148219982195710156852871466564976612222349805747657845968568273438806076238281595580130619125612620962622379499941361537962490185854433819177726445023481237945768456386115848273846656002422058145661643251353423427933535287417122372944373817422178213291848869802009311353640007592294200949174589148846202238127244971409733144622651810654376323594049491724138809382511334442962095666125496605934225484165291265488024106422056412579995870459291908824677456485834997409325899443689506662029483402290234643617425622282690070321213426938014782207345134659609075234279528909428348110974417917281216189771774404596116727478634106831751671224805003427375509428162896500452726539510517715366222282900747964010775959490270304560848772741262059241896160170189044699418007141465767426619641052400366691086117280611259809597800085572797942073286933245604558435384567224270755544948754736349009335020424137304871458373607821482467932507400696614589128516932435080395891017510105159812020430517244943308662349060989892077133098301028334348671350472977107371089895392107356828024430464734423671330143641008886291236771372272899016416115308065362283924245766834349754125680797810956610883325260763844299392869142595888456533679354186980301777766961509533084273192741137562302782630604631222472073231296986076884505928333624684982886906219979063221438525238438893118114176093152809621355719789638911317744295447870584876783718600751607673559064472127340850843821296276288542138076899843026557871097404381265322444033128213481073419324843743005322253191697137971014428364524307786742900480828246368742996470547010434332159980815495965763014289136443118130606749138153648649126764230259935951182859622498593442102535137327375219053323953109003852524701647080527254766101613998945199186030400863594902981030051712670563355228319025623067707754232247782023194677484929809193502409393507500367828482360243200766149311005547777087622447880004795059908745494248809031785908899994592048413792089429651302167160764527782477705615274923432731871809131429922995384812385028837486888376454250702246862438438185064835974065490856678773822054285924193673664169506603708637357787960600801387218910933090301420976932888066498741103363716527446247552358819506348835243719197879677664943704849431200141255271106068507275140186714495532504336722227825065488645141310039097040966065735236061463106176425895441328904529528689245859490456714148338164920686607233286087970954507330808541884804139097952179877765534910779357225008631166988435801115663541228900303198654624283431352513304344781140153089217641150840079199559563981050676144146716644426548022156588616295578229080725237583550644901583026523716649070521467776050105548677648513755691397892005863135935086447155838662795681202087859568454201167494520055968776769075305033933814452674514916687450741197077320248675789238317156767579335234491942523161694134023333929688009601079683396895034142613863585022286329731813608453712152804810782755717506084577823686847535883095889289345188767451894363517294750122340941044961864726199810329347350430625420720804871240577910853882846250275961362978472721123884205512095227777668765896713024575316453812039734139031366388390033041665519762392835299333431084104983114904049250011539003341473026980221423457244657975267728936948910006391127740707699983389792307089388106047048821074430332267871632259881280574039975795837670003086069187250758537691568007393496756779334179709390862038991624991692378625504606155097668462642319336496977623599219991318555497466018703224943049266821757809127761607630197399732550267912685294355850647409387744351352021429316920983967072872296867717310903622216801316397432417352550647372106284619474335488552565762742388213724704089639017496632932976355213073890381137434965566810884499067731071786047960044792895980806224978859376601244715403061713019283772074051115081753196013388899242479761511445636393876056076986585147412977804349540338812994993294222202294691914975676492003032840394001571871449075565814878984714842642994371216147744155072009255277838238024701874644669900012970806041813295361177912194105552290233946879923948417111638677101405865838835758751376786383075334106147272194141001539387909926098507463318144896921510035861343941714289933779687407341344429436702548831386255457740837592677996625148691790468885148895880617564876907164713415292622732311420222144023698735032106164628032247499245074210757305612223802707767117213793588041141450428015796642654812671692275058115600434170605695739008649505248058907183739585663020315172512942584584095859589808390857137972860932186070658640699492658077892074665881375530820810370921267286588257870879151919213531635125914910558086947554646403393878667884134176962758822316698291217864340944638869348185043753250062536964026406988584047994560689385167161949899895149810466400331512661583019359004396453953234278316270876888235260422124393149747572436619933364409834708031395452585442678852459474425200481634141694429462293322330150568458190473131191187573019104421996983620480615398539487187076427494193795713043681247879422189488986252637537721816989322967902566243558714937471637935697804816336294288241857088997671856420729217761816768793124636108943924360527067194186620830623974030805701277539117287922584531119257586412909262435480560587716667229813937306346794700277487673131650419592832676413415174269241216155657757865549127153955426998293100961939794352026799405839152044623396761228130112892142535755558147509142711994922452104394206799388249800569350073939512280588740353667393304290386795480538286207282088539886477757887801072592754495228127081166505873369590572053054320000444097315178904798006895916578066027517002228801696568274330017230498953809720802756404140546713183423132012842223079312736289787011415633005995431781036471111022127672862280022507874048487920296333676716777161552137879372118880214518383489346932579816152184817355008268087343976452942356476311385814512113509762297812551350188938423408540541438938933647966968944109859825917759244685498333376610210306463426944276188414282535744039973224905826085907957251508375720627262324718376934005712362191258545715369626285215102946850963816340740587134527074347760744304874586431543869232902063474161253209933608592872412209869456342368297942401954005360125802775267756536363916400407156027819964065051306298005985576255261943164394305128856452384370341071612307426432714501277928099583827506167131772373434196010074319018498606366284795656948465505140272181355053811105120445325744606023021135059307416829669907694127893806156520839895915444774779901240426578115373679451159657496930698590426223897898683720419157880636772706025436032268251577194922560425301051830812234382214668829848000344271578421127247903768772204257154021885111966951470821145240327125986514472113179394697629158411686071917066215981302297257110793288975507097741441685399033849287476230711605070207274188172597078001569428051523951698195504647242729220713814943859555381098371591255886675289980710697776837803006337184997092055934653833220461371905105911713702597602499372728613755599638427240464938879559669052426328982809322155454467300319430439894188658406079829008674774747240095802852364500624828911157403876314390505213243095044530830057452048503185492124011751107849726607122464482639419339491106036147423421484129170597480082109842504742461444368057552063303129550299978765619703476380590040520516737571668586109152132700618975567609873252678561946899883867609204076056480688602585915433423466799135225802943710967027565759660090641388268513667334604855425961924874362751877157399242685550394468947161539892798487080560029908425746978839705797739278593560622388346915877052859969390741633080265618948374606498519449120847657006161989461672935254878813660401622382181390731127107347026264999153472259511553490698273505171059976762109760204951923891180438821465310916736979170642190904985282652058823274704360576740979444737970618704072341306247137344295166655391325472995117102284222795335300212958657934694766798943402290886857831162546590977167757415783172820412831339236605767137453685157953471220781108613818946470326762287830823841842125969036828515647459990213289815235341093173631700741948180572485926873206421093310425506882132179286883909691859018626557145441888289464763643204156908800546224092863369248937561274729627260644398894207720112509479100020351138716695634875281895996025653306095012328700604693341638104954250983711759703050197205955474965803442710898039249414723492338981099437196035762751881397672516117542379698874929727993306820450967640789418690298296533038229967418277015849497213775383257128339939066619714240289267043300367211343520920679422754954452779567910471428190299827604571131641671212766142967580862557702392396830156065459203211276177510208244306113402811257304573237490879939910285081610595969981789019304901786156670031861977076654267164508465975755668199367344179372111652041027518224888484797881026064661949273732991874534821746493756687006106924986872562235705273438830622305273025982384272153382006331986652270826620521279809585990838699385788188816526420796780811525935499081730334060505686282283911020321604889679540790117859740238013790696914679071942782078968729799759874031800572432551154444009458374896406008466546522180892725504893290146872694274266390271441888173121967890012214220667801173004894847451984292616802022648799709302412335522059251996900114984278845013058192028568993085417023555135067628383644135518573175694139772865718931183004963042057495622118273929900586384006368117645166242912866204681367975518217332187220380991244752560153878209206159457068792980204585786852534983016203949045615561708361597285944196913121038073433322224704204200317214074028291163497019938375903516260069675631299104313900806882995822076528299632753408225305869745194525496146424090087735120907832157465425559535763568957260471943111250121737160849552014066674291254896085626525085404691762720686307116887869728818263171291601680590863805183244012350640619612707469010891751824324799864687206819308057534379794492391860285781271205565861961573445911744069598811494018657347709325289886184753059231072611668000227258752159980851669613325711379002041942370294635772834646925902143986836500977928521530109208515710096891014340102961291272149605336929274475123438714883240722076909353129096489201129130850687212273841213931666687357402844202747243064443752390171697815264168011715036932126265781574543115287489718198062385676129561906635126089588837260693342826266614852418760446822766663638673671420849675108780260832817707173972206898439069498025126491003282053818929790857988830567681684287081029983385011730945335897023025871846450112457382873002338321490140914125739247368537582216345784959958104126570464329677097466175774181358026191563203630746655898649290704735873888427671067893431426143814988993614280703594539856340579097303019485337545008260998951945664504600643160154406681635807310577939437575328098717618832350829118956898875583944527825485157064977288253284236510090095253168364121905441820677689052503539945331102245216232438662848169467491099441354746455724418906299634492532540910795613413134624353520022698680912064209015888730087111215356724122902834088407417088521893502437540055802725720669069937060703985873547858872436313896639902085059940067493284635873738505663565383896140731733209203121447239513840278033088410604102766775285479603965428694292223066730424672589611490848583964098002214547966044557298206401526449884545095226312657678990092932376265049777062176551587409544401886111306474205970472755889065855205594047916363409217698675426243227176501686546384670040408137193044395174985779405476105486657819225750136360861375814594996685802580483491527244369308836617620891041550556489598315764332611032546757373762587897057447430639797770399369603973821343130456664585726922566657606536790251352936844845001381084803194658434348692906495894888967047930644789783973643469207588280468943806396816393091077522743026466623071145200543424363245839433684964014632869317444812911789457341643558145667815125717646974294887889264211745675236002809016936433009974862945175544055848050948697314087921446009706821935118088884517607486081235502289885770883586764321206760266641177426054240576579067553757776273099607847169000407590965736013764313307546173563424663775821475894663981018084463938287287856174322558983646566872020748905429408247159769309974613826591532094798819555568314537939936614953021877801964057845509001582382279337378203088060067553892037018567171591798919281996542959648777366172361003984498649990282089923345726382636278665774778521802329733468339311748205568765085691844771689860259684007623029168727517226109702056125016060795913574286516937403224975561282892591048713162051227051715081459132164985289983400154035126501737899992649135085996757510098576454659212664537258748491128293431466630432115941528578877605648430781010916949128544921377307452005733099797709273112167535484670308344757900814917518235478504768616205867762311857869253965903947650784822983965732199202019127204061062562989422640348937283528951883180399863171083193255004404366656259010956325058401178990163666675978104990856862163871112515779466641414028700672585232036832125456712071005736349579351583306140673920487940741335390449727022504182078467867368839968552009512476090154953816463787201493708904897229830241763019013842103898677095601882902858160630165949432372424755968574545181370631652611929559405870978696234926348294883748127356441260592718216778560049811257533628122619210198750825370705039646673362727845415643303739950848243010321899848103850153621659000802335526055082837119191676585808911803901135942674369791543909778543839501018371000255300839669681337832056834667220332469753366255959510303945229145747575486968365732831935704051905245818867176604690917024234844133945527767698326826241627457870623899163605118528129267154434189152367214877253359154757552108793025977161136006878494235128091145085515134360996588589475258711034299060317869557949768522478477662739813371954184864045594965205697581536883344446604393727394448489175362941377597710589413426703358337025043376265227485420291905785148991069069516164210018908027768713216874095272855512044705339341930449852593709913426007237692827586836367548400654861000830679595653809528099915276571279018874145037699936814214523159295223804804676640525356792725206684034761732838789333647943483861500694686756344483516509649541889732809900200743956847876307320473820948290051715214964253551118914469407836458776866041040668297338365251406169896766586749053342733469399237407493671489119146535070256035298164030769806745716412478854731688272472969326242328270042720916607044769761629939663480065961609713813574297433082125330415434669140327502104170577876775345325439924042017559151986872691061852420612110013168944593884555364275082882004719342944416798593079021568841284129779921569777513066170323328162020547903955590747129291355233120061023541869145611507065841646480479749813801711572119561559691766986508376256239102805833531939863853608670810532935626474599925045114781603689843581839725167537448889505819051209256818915102620730437403484609781850423951302725270296609554152941420949304493853121312676237383098343450569358618298482650262059730618922877275975429422564454216499580336041225208090720580821246125037827462971904140266027791359795947888106046180591514726202414252282262313960761473925597426344095838548034805013744678688977414267339196802826433622440435624723837021287380659861048079311030279649466864248655295765926667334990358102495731051053188058242264354128545668061876719488434772049135408305377202596447837494918421955798042542287758290676226822864529900658379108275771390726034237150113145098661011781033416879650329075636041373683364028669866205613513952015735323323259586425418590432151673241093052502710481220140117712358178137429490874434774400647328579039551951496618934403208150242966710822015849863443728322667297989471859568566160085749778735418674111176621916259861146349978268625837208285980252938199834404300459278958261673477464230900651726576875293069231855158128896421351651220965753538574801185828370098667898938305676586615136790869110417237846989275028447071496480654666690958368732620356231557910749042478042674120502242669622725891339329813182641001188311700704027770915541126530401724875300345837607319918128831908131084239371893924607737710119662703902780323625456429718488297932804859395748184097257264468205175923917961026430646237892996475639478029986170123475533583017509505357903100158354072379972629676631964729032374292439083034877668506743581038825012455001677129589318920477108022214530920317782565011341462367367292510898157204026883458080647959333593601016595399150839741647124309635091748103135248346060136692107206371918321448022061560829284489994465072817272551009320248044583289176713106781572899051822937213533841471267923117398120245541210754091206946249164055612856028742649304245806274968666204665301867495263832494030430188746908283207407641186167850479316971329937146157636262922389393265465174382500718789709725344906133096649693683691101160455199071685982264474781433014763778756108710460658607201838236081694545408717458287191222913439053574837607680047688167130206757644459872817947159506332483072404605029093659943937706536072215531532414517616061374844992962235589369808777733976244700856108686378802356897965232832635418549211663868997016531366473412031044376865028516601255674328068017541486940130174498155193974322648249472155113072894561401809326251032011752961220049243731939649908590316453534381520003169452965893579366783898617502288209193810608543146100324512749949755744783217209190316100371034806327467366851284585721958384906740196177576446172724733559922108555914131587597021878053017444942638343161478035351948983838862324984247801367170301308933038988213399772070606501389285879611993725944020986139654296371301094778955555822948792943897074779076068485731472645784521758825420514258010938305522504555045054703907030222576385038650831386477133203834057257047395397388493794663417198832619231216204862117549866010266763169007548422234922279670135325054194324460748508367007478492371737586519626574952644186686380393100253027365436997329423015564723721815110162949441189477092812756329856004406150306356257509217855134146067518205358763412345334242700404406234769731977409185265043645222565562049471905597833502581687314968730748638019912406844728985853553723917613622014063502739519267360668683467228548319344700537616098237845663373446755838972554732663217328779786751667082137679165404409810248373243377987786464567881780806551701388030638522179508237981415916254186218640622722712630306596322379841984342123870658985339620596153749752491951591062970290623916780856686029390752455738889918639012314686058503074057524936979014580495313428226549121259460836958309693835831942262906605940883251345559698821747256084740636893158066279259335417030728487774586302040586217092240570337326694718602844762370398815393949996578420577107533124265016106600388550649547995658611452354035062380787797549802928258279881095379483157695878127510532608706454911080969218061123380502170358568698298577063832460985978528826117887808250368870233339406452907079502419088043063486553994768017216983360537156934583106515273409484320769114439205438516433948666228536269527722144765188285979401121672456034165053416080690067849536966564037870775337914071046855725692857904330591566574304684204596183939494040268420551785089766318681992180694048883089242352943629327174294201320876223340338655049656075325781214844118388060660753039326141768163744844405116865777977410895047134903594586961055995830075495523800892378057380201448319716104775221272844606814981086665988893648447777883059475261120989977038370864686887959454228590999668209542234684242972835479346327790769678630451812882230807272679891153389722899390308224329803771258709252647206992280550079415902619930756872523508190766713456539267035318147917354084702697871239191313784069194235584127764516257999643611747799863350758215006248961240108407926784755446715442030562689876509813355819268654940431865009877320524861259353549549831439854310169373914894450554437527499615457684524848058484008865971776775916656134280186960496527379322537137174114070446197408940813255535222164475256087965394954496003331905038381255391084442787191363495124936921113654190831578416504747518371631762060230102338788039210168206117892045551217746480913433935334215555720751234813391696904621633373680325785542815213885144270531522845561012664801894808840780476574488061571858375666122958107929385699364957890257076941578407704842634560334040773235799397320608568812201557752287409519070572892291969780569657661165048088677127677049704526503371930692787577591437244744862975539373634718191796067599991704223785203509567585488800403198865668185817183931348303989539316557972077864808271108699828755778450719030437579563525508014080692375990542338042790331639213742581647244596038925597223857314405616050378958212799426454674238433894394782703311748619446800624173291692829751981159022765312284532853612681297613897833534010531770927898460919409152012698110763889348475336606011496442823199011132243057051111679506093130435625363115351821534968595001758108934641917868615142405991679856538510487461192943309357194887598717169126967904256349591851737740224857446975517088030408034544510614677857348242653795738894050549942550582523243565459220249742318934801433820483144291872457437825102641632194310429822903812556102302739578185991281405701357115482772526682242975047354543791006494214818495642317587464591489618546563102777968382454108203896840164166841647701266721289548717050737738616421068013328709859999948068064798133517080070331924814600043160787236700980236345162014988305999808543552067972005293789135470641867431974624632668186118529882320220478251849129523895048359826401777461384065509616379781671721234923045823439616143206903623935311129304441317385734259731963002381858738001133120312069947367483547657618503505617530199649130721203639849436276169252524410046048187694523728108288567481339892722649986186794406421616512163055602710111206356290962797104405354220808721221957524872320296961574325746792299852367233392149073470984586774679947104381417694254762213849395129800267215080546969444310068675180447754564932924335342659611992613994356970392076776204390800272431149511514836158777927647717024626557665662330232132641049385056838937593961250843443958473688289661613110787784071673734836432037477277495997011197774898021293738399834006113939457137639382511728996469411636055638020514104985671523098173215092005420905227548921325657358791038370179092367288806559256766110005093749230694804095242322898521284682612809331823030833952897605328538952919734932346395612108639552074054527526011562757840753895153883547414931768636791427502133323563677337575568251737747211274727915301233759677814377597360884285886269518521197850905975868954966341116528401596878673867791005226470548119258668473384913199194832333523031499590672798473174492662685660565949379465407880200308135105903846596797693525036660389847831394180113564045018927657631189828760440976527156564551520088852931113786532206408308944167769331112476137173594612111481668705211167851290060393717536627159699713338160299577714123640390223918362948861792254108081390929986506859675531727713346286171445621947478318412734479419183698061789289149068612600889612901071435724112057328208791799165012572817479999897089021449530957388321087150885006221363449328873153091151738710713000742429551515901843149124597385954350275750522359899335194398914764961006021785410944576280759443341635214112492991581808297298429832622841694464076245361949037396941067385841872597579076678395733560758332383914703649392647688877486907622810031325869136327237714339890789139518845911080613454428427232210831058156747414481896318415610890649116160243741348490304799705484116420674879313893337316675882636051271847478081558127623992820216553247008201518333436208433477527586154333913033674804174079482781397829884379267097722528673965288600820320920097979965529697757926114560328113398557931539701921868273097852819163603316468777725858597690568114752236880665806492161022459125591596779399892107992081384150446547618618706003217763216089233222061612537345252777483424830599324020198662319075103789142754893147732119566070455989054706236508120329649156342405809820193346627860074171717348029901160147065030253439586147240633201197576673231972915059192920688879863625742026466876294705744942964558292628445296361801057475587492196209524981546284603363688272919340360699454947697677243449515713847281802030740366947009132034731847460035020031188574842991107183023444012307377578105520295560954830697289734399710037368572479184402769172510584607978498725840391000995690026478159175066452161347775811501731500847990979736360799398115244777645925467765270963478999849493512503563945871844076742179695124323926730130614435264346818985084556069299054650434337776262484383247449931879635119162735201712687249008968599221013096430923987151896566820089935368606030263607554051339732882361750733392725638343286004220172943671639617298749247136861885914254622450778291630404885851868377983051615431609835027997111848825426472089983995793988707942218046559578536781358885144835434943650825380781840858433831530589178877010015828053604811192729911790130429588791898237194156679250007596565079231268378353058813294613139679206012383806505947682664589557497293717203669750829276025083642903196375087915754402212583123225344321054877778994009096063287399431841960506823442645685540529198897684936068135513224879491095474796005230545442502506102340245381031888002573206535348401430760620494547384768396675622137252688871846409595371127549853947643485111803996049705796541867331207372463460990840340033914344441319624308992168904347134400437742209506345068142901360816280959781866097113627391419310828451352522389037380610988195884992598205404438806161884076014874042916884229904598675084734201574992902909006679103441121350605565534349463174175371526527841364734931693163744297244190133061043037558386920857725136211300270670881520521489353407474723042980434198546589160356508377218786469828770636107164113773973812895869966202659735959395452854209204956562086385980777371939873398910354520203981517482031114634360869447732214160232422848385896608285056447530671340425357695344812805076868670133950255653197595334548340590351092889910543095486100867294530415213618787148588569675573357522640435349033050955020487219011247724829692882961162189610988572955344754214487464056034725803670362073149726867334456490822836252378850003348638585646539635017486080936569620268357910556647770000064168134812986108150682793363712786635285596621130847039955449099830425327771097362381565503526700410140025173548266504430755797811876008242680020378572231578474765503030412471467978784881098088884290992753169595519975317717497843343254637087302263368438078128303852143016703937869847893446581473325368289013987925229663754925281501725009354019549637598686875163286122158750440870883372160965675389400665809565599886826663947639663272898543289114272467019866399364714995575169286258528012425940080774245756064033051663212739592841259050009251020711089316066544840647674067933187666562356289374659426204747129758391973722455723566505952969282346228841355756180293173800184807733770262549698848638140924680135179269589264478602413833318588010661848557633988765764215488175629382726250194363261066373377891088222845627289628610288829456704786947888879494532842616855669013376822371752756235846318824097521075551675845140995164033432119909293287253943123501220014358425262971668387323598584632096634999724540010698878457744909968929363628005822653942484364153031000388342400704508043937951711841100660305512307471485608565036062984193132800234173614340763552768650082951434887816830400455276330599856790686396567828960542131412726190391180933220612440723580469100979864818038042772831100891543092702258777388948270279961701209407114771755184815652199049306347196079245078635019773660713383146556228071122723319203500566637441548991367410980437528591464076177976936041684614465019739436241393279672879659214686620688965551509515062941595855312540543662821992129586461536632137446296588721785952789332040360656968833520324684089757427051429631538906742998748990558127263760140758871734775283975620724830083324470533511735862700435896302118113859330231192453136116094817387197495571404168001411931880897033613106799551907678394436795939697695147414154964751169012161597946550196326731986573048782987040653391390868943471000666748948904557935910881204129491629529278546728062402164664667458451156894044162513857871975996776523014643257666713397872540945577074387693077320902079499003722137145543513394527790172755181750811641137819272622283845911964462924254408614021127915367485065410731535939915275923426113370688371641850292789943518275343124234543825696385866046961001548277792994153362699623236771788516519712668219919920262230748530635229514704055731340039047156842280062737621774297654369104002730135544504012554520040514416372455964122822206820112218339045588822985151458174318436797012167779238241428637114193532817965932972415657401202179915266133327204494796336674798566282119830083240256680524313227383146658334218187470565325109569156825055692441997189559336072903716384314640650415208879319567382682938646049105939164597691816160114201818929702764493523164108216056931341278088162156346054755925538431755851636166352310227444104859012268163321430478286311899642250273507704119635848553692267472220976410950959367639197558958713828240136957427819024729975384924226420689055106553375927088566326786513752628730519724384134500677275246708691802606891996303410036041359951845929615485489311040677120093550518854340535622365014810811896227052431700993885261135611697742726908896503901309741827960329348616550540538626075624402425814112963390001128642984171146181932504634240207505685775620429500350162410196646554428136353647788476285260353304784139474194979955743964895579199255434666307153232553656951794847159104133792621340675666829629913526636381692347952136312994451679560776641763182693554330795447857390512260581099905856026729386974800026994028343258703865437524852175106787058398568592792876683828952460854365694623819986996456032218010128740453508573163639438121174816563997370182225427321789086880711387600635223907195222055701816901992798850371521916980702820906963228508968101718400757584572692865853579255553390721885187222368588092261601835208863404801744555336735972887086827829143132097482809586434817321504747178181555422023250790845580185065215568888453315450196011718567473405101631865897249264393573046031900472574075149883287760021721350210662977232272749526530414187073740671982935022858006762053016088300337384181241473437008809785782317546526272984643468489287605017571065494799232276260620481327090708639223187657560567320327237905769269206909196924219383929966515048156266005896198350878180706080844903950763424543622104279065053802295365680003829933776447006944577236736258270650599891767317433080551229437113884091120515841942818899771511431781533489040509748511579833779489449404903128947190092688021331054128101309034573989717420514187826377917591826788434618420979884618107613362942136092775211451051986555906940508204963418505981597509298777925224049280575995348510198491644828924237383060906076642763990427602977711654352099093372597579263166011752303905215990047417184002617724988442606360789665943780202531712913240053034072832330197253828310278799628029527764502934041597557849833615965888370146183943540424896728777158598717514919237152424848217431075265570577727620821663302343499015700680597884621945642094060206907726862398782894954029686548056176608771968640167478338423052518310844262734631691647289519505070842030511558384614168339385122988719267148430419930650414031409692182709033544208804383942330231388529754048901062612663488787604779153554977617598404381886787484404821074146224447648845196526397531598612381486690852844469396864203281875112526755143963335722215512882272355865403482129146042066379307969049989364901052066300900733184031327732675822689332329755256393192044639803021008703551615540486317053919425994699537423004263580670831512150278416983934208061747767630960613373205386130074168086876818135594190587162259900147440041789282454813329515900607118698740482466702992930133903720813535955284517107556231823964749231008826113158771887260500901948529216618129975287496577417627202622148321990757411399202027940128264831518440939923825301938735097392745736332785268982709928665153526616373555696507624475821298562163559692314687242476793377337039278410880849463462524119866264381098758202243372891855547402372148150084301310474353945714385702899320543998943201013782345383093451461510589346577743678779879618282537745549000901304682146551762529162315382220357544880795494863453583337131923487732809363813565009544375723922332853589131965319568060823918453667898659369415000097649870816928525713019482300844457198429948476911266768103806584351394538442397294382680165261657739976740577883858248597068119435329162203129201422675953912778466409494827357683478788513710342819982908458492112965524920100852599021951103350769770516230773068580032359042218088298488529774164080214539208935680994798453389903691189155079437413071670511111522612870738907354896461244956284981422189514706389929191581020335721330948083089423894012126036633472767304791700606213709692965035104406898987810780164075515889515964800170933691815401501534387451407314003252381678141910052170218332376748092886278965047520549290210452986279420408985551679526958665564237980698622777725339152694056644798443265378012264549063751666726997532369866419366394159831591492495235608158166145289413651187680192316214790382218132775840740832144703977745322772862171140241991259670193857706412707956920296795712444046747665339069561833171361980990345656296792113857155959645303667717691823534051683070585641476738649862056754608228617202900799124221448197673415772317207338835094521627674673149246310139092880819460522448808189165328679414137104401965783483690423039543838002260505952484592987774820841645488560863195784210451657230029043012301320984455878386838286913175676093117975616136567200535772392906064320041521374702064627209685711811779560552992787812346292722790686651479974700383188637850326300030677889464009081447965101702118843882179435995797344097995612340204701473018374293252788919603683484014012308131082065917128843773895164155933091985328369688696751558652646353609784933694533559936144535758166241042259280063388625225142839932942367695318726721739370524421516293506615677239831984657124594864619765118997495052921259906726189438219838300353333049598938601096389226180717689969370465640231471676521230487162322057721754795054134997313714930504253360628140207944051281407943960071663614465375000366015869875070376817662251054678477366368482128221962690344575418709362213414287257070332795623593602391249709051378964142643624089031389780795500299398368855564829384977162548536165468224351103483618820384553444839398980667999412445630695319878606445764663646046889462935362311261991059372500390906137127639689106508539334850634619872755500367914413575341261694841201178538485246379786197730555655648044147542876357728941686301884037420615551894117632577054894055492891057923482171572497684795547905010808668547183063479797967802538016221706329039875122693360019083659741669783833652612975150045267831906441173569091876958118938946627876322160181049068526454609138828285215421457831396056600893379080735981425099767325786158702933471996581063068797000002327859320420901731021078617272928499262338343937525410293312503488409893406915607670019831334241538323242994159862967877528328604004418738825660013501824361805123187079436906429061203004952038534419466058573278458193037656985953179718038683401076824863257148491557453295447903282805159811398821329399549383555058788405405671030622811399697737751309106230762148459547754805010765874699168353576382920918821163856732926565161265142445520985321211191866633705080271522998210337150753599672811718294797762383173879089408271559038808366607150174532980417433232354040692131609395026983691921394247380613187592362292159151103798174210895379785584359575186345406255709976171362927320443006890434687661865984598787846625163383097352382628678159430496843646154013842238762779546096291629165568898950216308156965785094593905970567329898925786609423364685576486521996925762739590806490490364960107536741476786158524516569585247789714324740332364260604378749755133901292520592943570210719287795847363667341702398356892888718731670530925962195458565016338538464362920304186180372782665343783983876746846301391697526884832939336759885883806883199398876077796577973954262434172071701786060814247169963373227183072319262395342578566291098258970646488526066698195291661767198371273028313015059438206586945560065093227649294402941488068266081935241272052429559672103765199830454569954824149187843854836151565545802032629725422818667643117791135506296023597126564809460842670886677458409194558407659102156092194322890284182101578665504938511057617979153739224980964056153907836324872417755016709530724543047408010085310156450560897026690944915420534171780214132840992987778907518683386406963349692577427437872806736963130947271562243738754644703882761937817982228839664880966500698111542416632792210061601735206914035044202141869820514655843705481379050088934348274912405331735558687683365736426018489350420485327017908286134101695030702518555616291120064423446884647003274152103307759717890860664860788848046361417754890808909775590964062420661035134746631497566264264581196417787646227425565239186872440789299564022597673974116808810459475630424782955651570182079626872562881001527818522709975195436494388672243100505667209974546585970799780445691984137644656114083424933124381134442255226999957288371425947109297845861880901739958639601709460525269935848524420062493729294118820328700718162578635494609940099395119724183993268802786013008287759631691412690614533585136172890698058891558736315743324877177981465920499144478044424571965858757560692342847478758780762386920408773840817177326544921346427424579474883028754194827798822439974067842144859394942365351627601999727471350466152184131154683338536165322345168264344920719385179306976410669520311459131916910390406275307559127339400420645344859276389049064885309610923479413614923469942050645495522722094223297947933170676468673404846855092067377640778735877335973797540087845540232593978547253461177853716375283539859076068856961494165305560228928114407481867996083368088283723748218980705147651068233883406189190579224798953166000189930163948882131062979162276487525737802468029279858108116153555247888676167777966894255475360764445954910785173892169146398122507973825555997366981620765200688381880488032505420453915465768355759017979860114318215487851594385769345213357454673007584744795355250255291207907352248431321543022249723693543632437514564229428268117840713849243731541834722035671238001234202605386864715051922258142444187505751369871499480336274093781754902677204608969804440707700098687646809772994641082200763610426263672975838585955383648753243479406709127475129867105642160194105466291126575913867693362300374052232356659047846738597156154140344291252221553531521448909415042395509178434318639506593511786085627642823228262146110633908407654418897714710390950060703452170985737077515646655404282484787715035568336820579337456428024500607800467359829865501196449398700131421995064159213937326301342860222351884277108488300387926730975289019355523831563835547020447440066481576001994537743199566309955990377288253202745983633758923116707302199425559014804983840360617603202040178660163673828338391334002498508555731069312471113891733544807737269457563210116211332276300859872749255416181980384333774641034979732458819197611302688541559409715552896511130759874164795218620937107200642929268853679815530642222669558066719032911162481187379310002286808462766660177827079271283227282660366363972742438732394489063840362797664465253879602900275848678573320096608712622976118493162612030147773975184498173977477536285973135805749785141811386030446907647276328157482661855954485950065641283947297211666550894154853554969223673974087177664724062200513126503192123025776075623917195591879619066994096866018525082230322551755898325161443218054028210767719268003037304690174512012746606752110968137081020354915003587696125998105817066013444695314538291362270965236064283909563734736827299715692697899213522656887750914533801914704058321330485671660811548707439405206366730068265004833125702900908455297688978536584472298475965910428689709835228101942316840781250927174442567329018616239599557492735090100238624270038051022150743575181152801840783641894851235094854645856533093179495610123580907081461588107082003366030216654499018528600369419798886830882003824786663665152952480525111306425481685012673615181773913952523533190369912401723628084965710815929629385145580724092425278272857691661802682317776521976013359485064882731613796289120540872268853203695816127768051182463823692550975193040117158413349234673531703150736264926802858227101917647343272672034167426336299332835880526017649711635692339053409978987282085208729632890747325301984074201865675122726903820937292095683986618491067360618499163075637766349663366765014671903284240214744673862309760971262069000180836595063897591228555568819822629121209021637822926603697798054065809193151434315685479730522368819364832253293938021499590833105560042709721170756508170837467225194222273691549795497992399390551475151904354072049842341217509655134095364353445316646893851561984588619387466769164040444601780330669381675653101805264282931200949488633497199219645899540472604722423533032161882394696071737105493299559514105689753183475752982737545844302643998350333848622667341370584807267059082083085104586404185264318127824765771396156705985733650110124303942576247127435728924259636042252174869337252423957963967699076992531094065753293028960343820959761771773204759521448593396588705476100199345543620688279453030680182953365752063322554732871389432612869787355743861088806712860497447757812466547367406861531436809332856368664430838953481314883486723090418352161514410486977853255812043930806607367622981174383799187282368791097022768427730294559850722090682886994847673084753505236856513763139962160167368588214798328600989794040367950215407252416615860872659806539407870560587679329513425027309025780144581012673985477889501392856294319494275668553210411542579950183708600493270113986306675666275713487738280505532810788578813431626708935907937844975467684896112207304435264750495862813345562894682417639835824212877944445509717163342639684986212799407989204586260698745529301026355015106023900594365979192808326341316244723648128628975385982159048096599447102435759547696436752796545199408816367885996385426367499873541979445901242019538423562479016552026465417230733339331573289538495904398519075502839849067322265683493298704926966867502239059642837737629649254403028924753649239390811480700376579988816209527412667988812756020853052745292815490106186403938935114897878007200287936059572240121941478966516873217726428965065754211111342587128643025991109585152880806474584810848802584359027134589689457690177278202300601328025009334092376443680292218347927966994351055364530348563423921784719948351489182375368823110380078467327225681217521843829834024220112578739418823372769874895416823807973641310485749712476298241599244466499518533447759970287705617189036103454635426496959629758664969436958735545342339430531189501041979931576747252039485197091386410616038915098998613009334851737681959932722262739135948585289562334653460468584026865969089080536342784815742987498126960111141880454824907861489665441188176594996812609147176619322276744551820475718566707224713194530392470469981380589966585628041849204029422180366645801603052245581576072720834439208339397941653377158341215561457665228289588815502668513798140167521816565455067684658322166479683970631242324601328453958555287322418127057172612624394303735547979517443529755715984128629247149205660518174670613074510225225192330760281467900904626785051824451283698612379230940954973905168655246436194540923272002020421383010611575837504954709354002395482873904896786391835565749448053169308635134867058222899111882373821755324882289104200406983691914622221136416422290690987534324217350307005583234321537115952024004792110403484662895071714367451440003060086458059549291840885193586484746127646026217090593934226618417926960458232762548713994619637607137141123550520617635385144155768567452899694385862666713515061498594403150973832884803772543065018710113050711541395074072010914127514682376003916644822728296242281831262367215090166769693845321991596538820510174493093783699389032221065226197335575866777108430703412331918840180810723053785361535369375228682000546421512270815408170487817333649632375068613634278105256797994501168426851135946864088391421176406297967492503226700658609854002755896182121089658976442495134101043780661845849409434040694977500482272454991713718168474318026692073888964488050245019614790074814272811893088650166339721280991919133322263776871743934188710102296112174335569777782741551925571092919313579185018847359068832442513082953911112857656091081472648197234578237800960101106754696360783417730743543072815376196228242182587753459444159582960640659462498664135073655857347213507222693454843693790053461774642653612748038436497146910487669228471309569046418442385145022403565017807369758308993546759526980869870460436230827981308680316149044774732863857218955261349969965526776652342426130859791772910700123809084017698461694275883705965262147505918304960569875363255844810465673985418672205013893380444194647830495042872338646974026731468101018594567971093547401301216410222539581273178971965850928025825052435145151912771369285801581775072751341046567440848757996818917690124433729773417499714644019027920980751296043808771909028147109407000499478652450759569268916736530835213514407730824662167993342446286069048310992517251707831604921165622109273710565860889487631064010924906217576904062423809563507992310320721569802114288420877116200724772024216661153097419449300893174514048776073530079268512560060436618595006431230594891313814397562871871334205434511543662612170271328735320950112566845004443766674310117360019980182735241786273825918099725437352576147096013645712089495524110273512289655083489903998652022711638431561497081621711261669821444069255331933583942264468039403042645594471501405351095110963973736165578972269142348701388366382674541876524859838890357882869592699805609490841135508692378722236537723168846290724524486188160610674386184063180793749382240603728075899397193565475192001007353216230742412508046039320307786555110857413376965750466215562252943250573392765888643846206368240335638815186918861030370199791810011918616459517738421402639145694203972709441525810996158640764561396076598522731863723597420454824643939254185978269699393773181103594616886912641463770209832925936717097178862013848156059331536454446076686258832242502007548628572843369000504562343792127936778508672936970194262966856282579643199198278224585436571098607514772299653483482813194485236240001273267984506989935044922214029691970981659858294101955784591341653432495667461962303700270633563345180047856892945629073605337163103106262930467268791504299187691430951927096553849602332316131252705109512908415254823743185310568364307654519549583756771097812368498200360696205019118767347473951093549233788948995358863254230400370625220469844831188498103451470438931969010572958940749649007352231975627203702253968435443506203655710351690866518147179177751203918935333804760439401441542808516662073263827961906018167354717730218909967028955178682689304089561816424789008840469639660532877176402132496298708287010257127008681827800733987476939590449847936282354215469795731896299685450961667596320782876872742837556103955966212036815069497578150906947201575572476722094384306841446337566290570290221594001157594403748447733061741156673961059481298220131391085034772258953377534347401928680604168573903227549925845250900461718514584275764111953951066035660552355584861238972903988431441457092268380939277822454790363659473493925991985933286008382640507051690653547400167558246867414820626526702339232937812875921283585816248535216532558099605156563171245162857517843085668987031322248806401125537625548413166154998866964264313557238481822963227152406288753804090694884666256016099747674236853780509825472515687728570460243618038928389125922465667506654128570228079355160549271377235373428406674912294438320721201401025303826522881695699466783091834663179854585697225636692743300065463030255512493175608185968266981809220677030856908624962512891810660539512209001185606916938871068670139760608611836555967800892198725585708374471949108405920022205586789543035807727225460805249247644510441431562806962700839566714836757971001726443536306707917775478170982645279107559064956395689881598820935355371348129811167030841613324019451531815106887626404321801185534990282942265480941800164383379313566186188236441759731665603276179795228708967185735902793472059636419968754833855457622581611826482964100305817710327735206364217369867804000192083940441122816855263478089846395545323636071014292404485803626704491828497311700387689962135277350394349030466405851561233400979154508736074304476061331734412381445263247047098256351999241169432323373927552445777465071989921816458423323518493860041537224239575222969069695797100413511123903011177971258597113622115317747786361623725159353158749994254417114362219230566078877579001939395456611046107706732476704871548640491777471666595182161707884602362164816745582669107932577324936304600329525346119874355249489985363158651331093333309622456084345260544939188611613958300506667096247528461703917117795343681941277613606612423037165226582526419243545062448449067269884937657726588527599225733302929803717803854861213223891003605895673113345817615485877718945003950799813476573293034315903363717967621712840989353515718561693626656439614883763435246101018903618402058137837153583763493580151490043683252924979117089640436878115287655555029656459145084534611910010570460454581489426849711161498383793971401149484875625602170009355317083568949104500625266732184179654272003884881167513414076243728754366786028325506043852147659679311954481871509280152567948785600212408181338534605912560955902017418200141556160078567590818527601365761687675974245207329622074930792712426795490752231539595945414986500293527070200793694229274213425681963917551625239085219641519407990589632122811224243501484988818941555990386368492880436724746455176499618546344876752669549855859357658201295219430718066623280432554174010529047046512428647620383630811529526179948646276872174325078797702997592720047159496082550486900927602045903214289140614573144605723170224539201360128196684535411476955166924363239442228758517236824118196271546394240214418966639566327913756950555496347031264693903036566377227418079753753962383894418064015409426128003271385597006075023608895888281878703355261480258443026694847228232841310365748684546634708367889699462500573686148875726094579266617915271696835930160763150892464399952699616943136306647562349155662562583157393393319628289044493094725411211823355404172791187153404542961082496016387853057914000717698179333220258981850948907430863835421506053507942934509188382014219425511895453977558930467393407323813646260156912067716016620415987723014272291444167503850134173311209210518389229094691168303315672546141387320164951377187329681386650123131139785436743959664363896055082849463615632559118944960628009766708695590695902626690452247276697357032789132059244281621009786916441998539076164069056674144734506739424163210117210262734373265913749491036906289928885711734771912628120598689468378353926262018355863762536309151784229385227136567746897208480548693125135912179599012134813496632243594957047651703031095450898592732583592395000443985009488788835419703117090161010247321231131025700550280976601185621986403254193995251230610687900266932121454595092106556705098937080883809984466551191998859810848135993455727936225924500706232512409673352726891245105670724070862823142896312719017595618700848356590610662203507887689627039690891132390723139051519787498855847988480612427280083300735034267244219537283981539743400778081124046601093386789770105093265991709734667235511143416956320260656671012259570961079239188921278933890722192178133900206929555877631222544659476592724239662733026818060713909749518977499556582869121239928584936128856602293086793464890210109670412676111195627020009973769795021878313804946128009500596968804498848537619249252946555837286943337190390925943182425144228803488239800890158493771654974607504192463432975966747108432720093756273379758324271781296115906568332467968999419661673014631730357552206706213076667222911737497960102585108611983239595977253166550132023885148711258845883899707136052416962606641163991926355448763043083127257776613573273423826993673603472421222052507465774287027419144496743718905334743264872885603659818941422009618334648887114297774218226713109931700411802929237997414793143634433800942788446014563914555591040193028861842309538163304849941104975526323286116733029093142129458863184788564283445936216612618667937400033302856659186509733134827409261302132282544374086817663859234222064148124598948131791326552024867456376159443821266410940808027508232217380792379481481546774506792805638070063964048200806148701700151261466566508957526187218964680654729212608360432939334319815771373261511702289086150379932621972105974304641568918296336288197355461192813490294026004024282930610930322174303667366787386119234347732443326801382643189112668788282214849436179138982722182332306909898701570868348809325066892815410092756002380162517400074828146159806048319821728082231569332026575140236117511654408874564602042018318923826244613186096835521875256987468817366179643548378782988469021136111925333806370951328476958525507307472192640661875517472082120067072499420257937663983141922701388489030969488472633339688848604343624458688972051707312253145641311758700810344471849651028543597636454446805651359712026381439630036926685386934770849330856378330371644475252347834128449524798991353726262780193767736310360385189569699484649297083056199474615137911561845935411228924568524676873460751314878145605640478325133646297433088414584313133118237200145075812144263465873240086166307581626102200253492015252578083782818382568976266370036159884739607041229338743778383764468355558714065103252896153327839085945777988189821306349117715993575557070399224833588664364989194968061090414677048285416107220606883685304681206549112170980030154169627276352794962602242103556299611153147117633396841615719326854749546640320684446657589394857559784661859970748752855388715470309731769546129413569596704312031658554340627029155618444228799533703087072239204058384648374461420815110280683371888483668092424358202651665270401416963390950452833373598321034755858626001831372434236294664708065924319226576939188393459014856613833459227856482300877680838145734575754507247701863062524707753480034178479401330121820865339490327016349987150402170223147707138552654590230773930186285261570168628662591970252828472442703633402974162992327010901984687964584894226288604485717786948058042518889162004157598597780866036434448740580073870994833941805575344495378686332116716000597893118606434783573775367830646502189769491681578792976071772088097308099732811951222069132672765188739214984204676439760752632920992235175605303203650341923145429250837531629513345995257400578822592012328700623472780865466999643725874202708500930814472041384157793101505404078888328313488315002028035461355616303828155304394562187446786979295989087256594161127963715479224386119595219250472065993278557868512175639781366376992498440245768601376742829012825697024198666607067676514669984332457840054725201718410245857175796309495146780277683566530727335149914763401837149902302866225057257163401442668843009648710360526738204016739917670229706223344761193647773024623744339159782007558272642822669635403405379447276814642640020111032122706833321279867787677066566228630455224760520185412571256260886569371802726244162910379083589023010348952564684048705651902816314229628523381119774843196469249378694276276426661986867896783082321951406062163025828507499198240599894558884085905839542323047186937784056731753771692321370673681637223589455748164685517635118725196899005529180215956900347857041187294343427083368269266482063432813138093701364773341516442521409229060528088319517355504229820180020715053767582623662232484765011087795696650834764861377020910460050825302923971773869335809711323729299493786501767364010676503178247794093410018693695883131314632983092605877958516269614580619710458242006878132991487572389204619052818402288416058301188336551317502746209480960712805480343070688872003224489370982794203525096888685139430776019517898385405850086819076505273808782689685185895267021603965425519842672044418962323566211175206096120495592598907187596681357351258782175747569392834347788090522587780496300341902320322522957319120144805087473253636342017016845104481511102092287508146334819833692590842239865588088885147015092646501591377836338679172549387489102176072459045742043093605040268647781996610222447987608277805242245631822757766790101400258030456495798762279883979603269682156115356578385857140378161746416876640698112533572626584463262823294812283615197296659010094833211630715411391688949786167393376613033177029357695027617295957870133415308688669045825861191323189518462314719511331529461320143819132348200064893513248467978319112048184591065329026947913438539133356981750760566060108741506274131800512307085495566317719005225387033059886943396384404035187071965552047985973976347180368578744732132959031721836758285317196671413593666749244889458119128359539358127938823903144080676698447205446049938939079233872000514442568795339012436883162852904971241450224716680387387829745516898844803562605221773861012505987976390683804401383531256928549289497116834553201561145657735197805576368284785460817456932238532051519086264583708587067669531559324109883802321935993547424666308736455336209232377422556454009547610358454696083598736137934741507325969786221355387790832339536450961255970789717443206709270434973143625828349913797346728480669353167372205608934017099984778959017766559673749173338359972855300925844775108239741007699938434516245852893429587486880203453506699516486842735383780070149290240065891544724669637467878685415468556578210964399108540048062240822844826623618610120451554436123892045632128180776993378530013856514502937434329445480853565551513959228710556692562855595754326906023388652805680707982925469818543045418254627107411306127990832186370300832806947067275762854269764176599757128845746560120221762033152156888772491310091225335439446093984485696960116373285596386315942517224553055228919650667910592150426105106296611478537373644607841658154308785197666254328444600888061893855054739760358736025305687896771325128058137821473504212067246335145176890629617636560514006685217222058200302431962874326634580127359135540414888125847871653630959781823204110369571654356279199960584130652515499561558729839419501280133463137169159224370456014910053838889244077879817224069841522167639869207875653638813636604267112029729586879991281256317645489762889418193433723936242921128076218519690441937346910290783362203381409048036627291513678351144572801581982853720169136255534027199359338428706874092858891800291642901909337283175050426400621295412385534382078856904411767779606097722147986295967851510353304281961694713774559491552763042844494173551461340424547713559044580628322054490610633414094819571108538519016433294867786941063561581636934931919845477418934863983116754566763243594069873604420340718673121170251844449730475458953488555506496020024165583007456852935452839582930008760575252089230307048333221667568560001234220566741026674087106564332917193899826827478208696004674914167616085880035731751073877598764608560755022495531456959448222278576375629258899102090914417904974393561492200585231011362095673268113070368111098508683545606459738312360407624562512673066206083481532325306885926137227235046344888674518914308315561594924384604153343119690213543184458391443417544130325271774784490597057131233894191704677899972173191333723588389228914122916034659037693339873730563776083718235735016351891366004203070185065629567173651865902947003701570728132628856512051925588545065015537526636168548620100917670426467597021072315740203286806770886617757107147338675853525692394811247765396549276451234902419800482948349224663293558411832031121779478116994821011185380148193052774408767780452244955288002696828113114935615566543355387288141632790596316701247192812213157938220361515054699623314322686964622003958064688538336103457259597666491461081825389023446208944021765151616134187487389198468338122323426693735342847554033355337635016006945642788022727717687431945050331697366800077655601590126072487199124385464505475434599762060027726625696136860130165857612416661232138023693447586559110221943243331822718418643617221414917404059719393285937028099006462814961292450142217972026142323176762703685088644675467087773866365684697813623125352145663660140357343370030334623075646342823106801375040477426227458570355660697401363274423498462405154094306592728801102688569290085345027753471929122172748380006922859326475074605500320327702756952062987912183234018451078248910719788101523738397476359634812816341615819369264482101645924549338292633725260968239757215074981919569182006327077280870548104406522428564134075627276420734054323121720511700002640949738427639787750054267307892259743152451061953717674898927374310429344626337238320068720464986683750876666996504559286016092669482189957354302806595895565861554383761055980818291410419489312939199601046532245838142968312818117343821481245197838588465609600803395678580110325697852416403955840233914227899345347040139923336286795070541610830768405066292629115522025904560875569585677856948386319431545384884971535350894535454414282333039450613459133963328725538255314541260869170441758952722230044230618267065735211295414309448840864760287279650005294883119921029672111808181035361505871930429967336530064056021886552787908270498441578788768937650961456041212130964234708900203668676709590919897361380906356481500078049442095782544183648942627184515358586820141690789977507284673860729713909065939914372598842002466481962291805893365335404093553857802426002573218635456707416266506102694327064886589061333434718634104410075567028308714160727132893092205345869014186104227304432459183454473949720790860135170347091113868200990143556453586049112486607623334786526260625065575381584105000707965926761684151600400427045835363288166710802981647924575862503741674743508865208553708815230026570208878202179393830376966023162355899878036220225843189211962825648215341362055671446579877553250150279669241959130073469958755553616486015603904958552667258286800058948123159604591016442773223949448489224216336662944444695875492883875514799433372588500377207176128009151441092222314251332546118453968531616545992828748199269300795889488792578273946254954735499551616006715017434153741905609699482777125303158833348146857985389253968853296055198572289566342979732603981437212111009878003931355446929028133078075552033159191894177266800701388352552245290663579338342747816746060467833383157475090134305450667604413870736642810890777845068990409268259790898830373567062472043120529487349413803370303028440399357935516905192450403712257092126651105540618457216222756845213909830948273260515348152070628361934271061514085183493889605334436897208740137098443255071642579325467591328264522711630272377726037094413767558450404217972815150364456609280324895233884512096721495738247864240737904576123661179932373669055652889945390166428555662568214475743512034719934150175475873635381617128788310855326923605404107439778917702172902265753869412253150970723494232805843829303527352282630137958256021110720134448520029888569385299866691662689116913761527240401652351523215508843916764089273074323744781788050878123995707319258068143283046384698877510430045720663190073367923289625337365834632140574645856741279556430273393091515925102266925262350761905013739257126522171055177580657071704765556908316585273170686612852206006417550853378927005434428795501351177690640121419915118078233971761385767874539904575635710720669221100571678860908960674985028892725602583276386860851043357882933315455940815528354273875155631036003200242490803964158170546060037191106039565390743025537389989101257700426755054662482349690417949053733893322235791605423569916457328034811769431337394102615131158065325981041133534695900252334151236345386411679811006692184978926178542422297503443542193703567047129200887811658484537896231585393454322122179425338485364915487203926203965689184526377014476158336673856989666042654626157470460705951366657493464129020098510066495216629561653361710378195399597540679186259225626846736808874208367856101164563271447536852289760740900553109115281466331460908354833728276498034526709822665863000309262500211336998702236650696030752304096071382822742851342257630957128616148577203059502186192484258354831721771098250561602590773811915872706656191054212056229957199592508135319712865591238518473536779236657436103954995415436686831216911094446225967936696350671413296357267130331302319093343885159922777857996510609684240716414115718397879802732073427702435015828362151982119268754498034409325130366578931290712864547259679906959200614542013336311249483964395942991552456712446172141274503850012988260603948602069386242262106795576899057663727874321712470529628312675920296357978945129359520994218947468711813755465231126570012770216256857467829599664611357112783930091498740567452986201556093679119904278957001693257212529032591139875513755146065996098211955778802678672313101483308287044181584313972355816937475537693787946645675307446033467067744194156180010621072025470230200561806983334666265816235191334097291206591629176387531123759732641436728389126814283504407961963001306875371943792700803337464980507181766408890087845650531339973732784603484387883889491110683120941287428791732619055597014217895044649070376540719456587627598399074754502164865119514602539302357783132788146316392998982280848171291335330176432353076099950587645069271682476621489206776255017326706551219051663615242514935618147358419317809109159195652029556558343805501727576160596973833760743292286195376060766179153155725291551899606326250557743265641767138388706844146093134023363524407952908072085878525639848982285903799773388257632721849215058279931311684473091506406929429620850172710655533931435045309338571106274526459744610453920028417571223459176350166107758352330701683277655280034341095967851865853318217613261699624485977819043925223378516249058577571248752247089370270490041634332849576438086457975228590656383294236727509952316133087758044879937488606461233901667865681191416470402093183013113779831771010479630134461220794474415854660197667299385086869286982123325646037572507807660396156570960990974686626298718992715325581868673578185332946501815613734240770547858725972578825296935869500023728096347276305614078553701851688641070198306213071403560146857127872994449094890167677962995081921314962866279107747956827610528253219656772707096835641621579469508210663142994457883775180448554593462430964898329443907815677484958436374927219802099643724209368948481954697006824485318582698823935464827907679432769269213385542171781837579878367985645207807089676638395211615944296229615798299229685641869590748817993675835185911539618655218796173261537403479412959473215338761613572620743257367539333986166114711830580015978054672756241469075006477237288589565214691213679058290632921012358170955177800366994938429610459033959713710284744471878818586690507478207526832477588867404125379203327321946558318246419441145542850311871490932902387571585360080779016813094666021488935958110893289475881583968819601830729741824153409473601704882332720440326633360778438812286229910396743251844945002368663945549259280335083137087292677508293781637853786779412332273225259999720411802855655417327289888904736708327297293920370331887384860113530871376365042567977529333173451228542006056959757602048182196659783156579860035093588017407920593202624960991312820199954107723736342367836397839427909998805921870719648121480535931273005652611473325750803794541289750866098597842461077875093428585047899903874389707202776190474126416330983819953574806705007409645403112361258700861976838630725249184487199560720011887209243194913469124949494024541232945075964063301789802634340478227613752391075049284036070437360434273337692907773022361395872131308837661152559349155597852773788211002618846293427982337220701020546390864568874031677708827673566417726855606044622661964467724563135798748963560300076149916505192103504882900410902268577724692462599294261087325390425449586519535083882381580256134938873082331397753860987746509770606225919662339289475754459494931806246666484776112830725798011553308978821467334422186457984315892397654613504134629990371504994136823155586019676659114941097259926605894923043598272070289975972848424630087508895853521352089993579459243951327082734195335004474572096306917413783872097124847956012739891201885920760654432293129148008960521546130218747793543276994085499475815904411013418430995897050257445609902645889571739204920612569906019101787852560153710070752314774611469119911952725252645230209295076767826869967327019873592651106751393092647028797471146550013827428472438710884140205292527311946257522833068281036920550604387911867463547640644858872210289445084159880253142247605190218806615393587075882413881408661425627965305278600453490438090386903603147644749948669439001382905913345555131124343047662796610881769371301704583680757661603672444586376734044176929852148235189399071591891287729323716770312492860042341206117406612327602712481687256460523692912666122376627546846375436754587000974948005832324561913179197066644673771390348926880544035646770433477489067241710946649008090536658682787062331186151334487767272495971872986618913186182352422986699356488793872291586454025614008977567096202457963376695854664119343540840764124080558606569205879489404230720819327231236312684594632109113937430679910494729091595562019844902031810866197298117717084285708895561530873058765742946139506170346777470442151945784573735689989121017203343019113735960686441733178317623164781442805556318890848792708889901456607593968054963763825760790185008450690032975085994355300848664940816973657636352744275099270586373494112783723622805663685122755604723862552355912818098760664674476106188365707308874273912668180702897024242069004718098646595170930423128023893060153903446249458147677000143214759832046962641600193597338664435662910005742444362950678793461191725282220855188546374230095553242625409650236580901071864876444257665369642634517133449676935389372212609542465217024186830531090405051752280909868663320542313126005616620971272876434494736502041727122884723323891058629619453853153869881776377801166318636533749615227041086155222925575765561021806336238341826560995412654736322617534228456823549879276984609986589551622931350459282228452526713525289031358783557773343889600429523934070647151440848584255204344184987703514300889063805817716489481730899456685118717444289358799308336302301401769091587958723596921620249916006454477770120410522967240918614725759025800536104588420293059813687445197978921911945415252019863727114089647254566241423227497281224252531845560816774641802726230445672944693068403171216269172600868391175192525548145843187305132906785191931853353065633759894199091818594623402223161657615619202203548457942475696796560421285243086561451087948872363808356384144803843188039137254760184189049474566224279570689988636150199281729783047809977490841984965797498398810652477451410743272313946731808979680498163410977798092486080104493793735185427164639857418737350144287115126824775546050398529769007849229366698405739033221727005084791303741740174919475402377723448434499687976348165706444136645094388746500322294515394558241556418745402483246635304285181028538535874109304571003928879091576631693710985610244561547990358795114787585543465123688249416087129730149288496433297194794713550627187531224867934508397785466383485978292075044970089783375544724555751068108924934977031630338978205196381922134361047223264818687343865422615461317178333037581297733570421235962721360764959990369568548975126252320408736861352630912562415660561385659449309288942011520472493975905194566389103396655924995996729858742777740814413105955133018953391130765369273938320716147374594015039128806796712041645253125888445599324629633590740485184568837341018677016412450169676465102036802950560638389940554315277196087535463888768517266186773722573742898548394718589896854239321440688938367842259292499382044078882904347539429088946221976524473637025740546214391349880656974793217640445685818085676072668757519164639360590479241824330217734000427267253675424992210063163996521164988803816341732647252659517985811821256886631539998337535979388377082617804412255386743505817503381240110968601992314936368524410597807977933515452793872878657000541241647054126290172366231428521892362287821851713878344269848770729876268020222261672963600015851282994358882324663119552658364253447140912169684641066812322965548898836598356901677845230100827483906731050046498106285490610513862817634810285931978007708090115914746960722966063288718661400525293799689044448938829537240905414884774626062225933176365804482950190738290684833279662546234140996514279698887737772134717538653487814626303366799355462437312868509635215759961858765345702736701086768526842961253283127686155797389806776776626510789530617641130060810499245857738324832184553591083768412919471481977745784499216742174783777712569629043183698658098312740129318494965297755592727353419836991779487140487125231254041882445781275050326206792802554628966983894982095724161205261254491056182167321213777424656461815600680901009728277884329548968110439788349162126317537478157254624182443513418341854928119632410954459970670134706817007945909123588901226017124592160249929475107388392365074401154759184760822758718844608274940716737269447650113598931624938252315087055839771634979558961306434145737998937914570468222883137061094420394399799061898089057608996160302710343538862780398764554536700566445956140611023208970110132703351661609908014751525628674497533609171645119162640986874574187396637720337911231768339466960923014462520907052145606449536640069984499435581855426846128038309462287957427400071392991594396759994753491669417049770241812161084411609873482355523266950452560481324563113572827150707072699444112558257383081418314933658555497527853278090302435385747361874381819519728899301905311617267435062266225907017564448221163596635477787446992753498058846457930356309421034847972626783674919048970325834172062851685817973206803239160005134907992847301792498560356389991734330405770834159129237313009407229553128886523571112805765424759928710252648701015625962466022417452538268704997443150041497899010499871820397330982723576391812985724297062419178845196326504268544344556027861551850732349644619611046595704941166609444975340133479511663857272081508458492658927343188782155770893001855830679294609205765794170111776171808519922808072658521157241576448488079212224364089232989730870270900230096844431088248196864791070619537447831606514611861372472775207045735576352514351763012629124260660382155107332320037279409277064557847420861831017533488056275324650533170055513226052997225845388769972773355366446648297151671279792354998270569360536707379191262830344170935573084632630924038695646642444994305666156726195845612401477123016847215218700824701548697984693515487989460201392329491310044837230210926554363354320784820318418471148657671844825464930215960344892173787297209571937358913887526554121036229881974869012546447848156395416525844696203997010053313118662350250008634999231145918502338846346006942430537660764713579243523581421122395600177914842158562658552894676596479611551838958477746467448526114483464481930201721389296295931459430167846199697271453118950502116393730800884391145791254630083124372945910650600121816733410712345791664687255319752241261603337967568957803251156624006715472473137951473481476335239517597196916417246039371502348523536426216933051244075997083272692157375016005310751978301299937307419634334946813219700589084293067108418158919135689269953611273049789718562769243242327060242880908106066801399089820653844798426597671850800023849640331190132794307424568217563421926009717781433068085926976368261350597759889726975806324772134154038614161818739699725031386776546011866682181266620146149669297045093833028862252902379709726649449644891879204913321558034561646587128922996726739626065074000287577932441342419749958406787861497499294897779375157009164366305352015309899874844112522412743559381648591619809326239699192250212246876117203829756222981897053296040354470220259484606792606797202582578073535991259122031047638778229362422289276089308054375265835387972390488085121286114494061225100398605813943299241688248389880248089867044674113419832013740252522077148204476363171422621234723501391384419373919650472339469718519006660808595229527187158963933433675953456336529043172508865042973069441090092902974764181670252836293866567593596502402235652458724745400892467455375512212459933242198006693169106921165665862254741320595375861472663970485760852870931208927990128247476480445208302289746347235078846165428087590294890906504392342750212480082361658324589046259279082019877040534864857290194645489279540978363567383919106068805621639463917401498734836296454689228119459100747911088205002720141442079314310443141923385565211333801847332408073587509046734826772775735542269515993837108277582434179083118864629395265360356073665080730634988799211826367352946225993365798006087196540041839071553854776112709640970048302860684674012839170353417835803674517502581385416790807884546970294173464126779407922661518718432089561900730948347390667293281896793598835998965576821599669032797526558614902788169466460400538578903474591279727246879999491634534672904669008963949497604813835612710338773043778799131933939396772669013359148260056152713401773869123571201261869616522818110741552724052464071587267927722672668042824876122940727516787953060857919800865747272054627928888289489800122337839286425243473237859054688802701722236255087537276867345024655451662307111059317775899055638551585065060389945234626893744157616408129161517553837794712071250109481923587652728302872698817756089758624344344506426568557477641545986550167251190838685659640460867962155519984026678809739676630310529622287180781362787128519635739853339402292357418121909885002656364155730823618809665070774882307876701913928135470494157137375634054146725060906182988256422039668806789649164511985012825608410558452326999408448524943575346878863192153359564459230572689207672316161259500118413592957728594347537988215335455040071975112555267978960933995772945844462783199928271021718289342118113280375834517248878109411461300600218188359290911656008883110905044142562965060112659779650379644428828238786707694030764085376898251540397300253492896204152775514424888697773909169817815600523205837668223354552074201569050797946771390272337658308447451962632474790585054515227207172561395027043108286739220320047940610174975729611329256019586427854861893362708128006579308120751745206873323662571199416328462797576725507621218598479556777752216516666383651650569635297155141548923418769879738997922515684565960033995619728917471853792639489897516065821998298410430949154984233527668056612527783754612107591660454735080267346589173339434719416863838591891469557033896569447256197525838780756640889390986842920061471530401135323183031671712901926487441483541156366008188878689007350122951149085362356775473195762526164676762497623752224779342856569108950400434836476741145242299066512654941494667953578465215308001008718455082714604857825037360195051354056553291140702223877504946175443631612394385225280071773045097929092736875866993020983681745513368444349378754668443753837150647043299801348825701593350114234687087155949014934166533141388548779262946770587080008372411992635109938174318669424400806588823955042850378697680195380658948004229520213853387666913542213587736388455792479459797351529588632212949695122038426328140981744566458354304989677016137325182906571116077261398814832239323654067697983123159265666824845936378677593023420444214104636985689334840150711557222539229088185743778307238420201710777612225979658259204555990545779738996631154984599031838911761709384019770356520681673186472680099042912962754466880687518948595175726304956889964991868553086526990338937530824420781055690779339723902304153368609661739816362955720254741448865167181729255132199744502838451539892272571815975032128902050545825675587375516354655587653494060235071902454939530553953836919994625274651117835683085547611969781269746147842948786053907905685449396213942664703550146492931422681980497936091995336212715470389088810862494641738933604340228148818363517423681977272578414777871525265718355738917724552157443350134640760900740573193717548176508793669072968069413075331177655430043536473901776396351487880706299533231292605396247929917539848148580190341288198374990939099628446460001924017839532529689621128605427532288254009666249420470268323887298114251358192136434764434965147675305911880708003132871521753561547241397488312816490102376730989170467387446838616351386940068907846939513630567242951110301335094464261406357659986390214273896980878671754992038859217023221894948800808438155106831361567490339947218505240233470752380312295391669472688417133242747986071350364486463114309419818031536104206383702080073034037525282830238662602857220547598613685581881308003462027531443095799602695425433647381485477990062872408914032915162308020858929563133074651065603058025415662612101995578271614431405201124255825198072636874579344820878813909774415739562402859633881636125655528528517781487974254557071569932958194429948144486805967600944483587339134796187592165046865937134743038129569151007112883193803937464072386730761721251167579829698172108455034294580823205992787544640483933211907947577397971622996303182008705195391032667270608648340233166156037406241256146134479534398110319622970465060261897697410659937016017297701812996052753711913338780552512453692049638276880582551010185423586258904915168884929283572910304855635803814601046170059120610017144763470459560640910662178056489729607714712658472626255389005296764309293661287358123794540359667131671136792467532342157367094609060260144200863683820106384440814924339319351876277113233018543516283922636318786535270259814742846378660873308763190576373139393937633972862696405730127086755773382637183741514486858265608821509830213749489862980942659350126606624894634214911227601472147783342108295065115558131577471779273834859835742328869977546761333411092793115695321780271359393995392930637513884932904857017197673993551137093447855068847245748500667720934437738797111337953822242851274580604193374395541043584976081988416247539901840304306819647639165195490541443376856191440629049942429333765090101897071205685531059673561664744213726082633005612531216270399228279072913912692703069782094861978344604791410420834256671673844690100753467981534034788496785226757486148524310475491073192590028865956630945522351340602494461890595534654966886806292500693097354941579010632271283272711181020893633141152318751926378152948359504648003826956517945167578331210841603585176092372599987914676233927373627442344761653456975852413259693832327843911364417127129083922026972213906760899248297827005511146366089852734538719496468111767963819939485615069479203490550434927401309664664875957564214304980125474414329084777050778177824099478504242396159112177246667913900082630009550035896834626894248240757444485412173587779211196078454332706962298224833841457492069112542216380980714547673689301822429899478034410712489400055252048972693960873828779736683304472375597676741749279770899140276820575050537776462788743814886315931470850252219850617057287069173298463043419178183065090188832466134274716715098164120355729439077235864339176939958783502576781715192869978040680815149995589104074833748265431492150142996695112373187732114649051128256359806935864578974291639424305504149795175535983029076484928189285723917687653634786303824890621025600603458144817732913788228706150403313563448206124478211905435404339269653098170044728501254328799341700625917958592381064262371661955718363711076388679596744518107914844058828589938573064004250704869342250948915478928015611569675881783867599909099350756427878684250351493267378284998021319551385773069132268568133402532486736072782382676431356052138868930763248366244645565013189255277306206438751726158213720870605310731615129234750645053840420325551092599777225008352023730623842679078491283219965727512073883995198220787138122960770567089256159514099568215035132460737142229591176711583862489276865333105657958593697531687744032478184295282707352843285204068091803129698232861226374903499069639563808420480920908884105591176460579310216167266506979729276567276971972443546287588384720398628737936099151152604308001196345413376826698690148202423279779097371201899726553977509226384058540256345583411935746512635967699187789112019354091196676123764195397183326852455884478750264710644403446209807051532227274174198161530978423103595140391389006419740560057186008716997131040991013575029375558330791581077679541179084481159608636907065435230225915694468289051682422074360613885218593559285723876476853747656937723777359867702110467041417969401764550572351682161392632600081886953054747227184719678660337338362975925998413414096967235724188180899568485745954102003474869127965765216096002132819005243269701625955367405095160826304772278330021054119055197708036142572485288681998510530069107396036090057450983987633133194009313140902068274417291178352493718806409650735891844583973811083988329766856181900633642604620714660982413485481006232065097604476907435746083042392321755358606614261219428795235841914089667580360615590668960380883957336384752627615190365192020770566715948728259743697258946431330269121232299655074390769183080490934010976798244743881132866551198774787839362677711653382964649798928528501953007096418589089540744189828419066422419578797015483969362451402760583510421371043883264232979609846225877485246426665880643467931094161939934287415032036359206553983163907740094234364787075498090551321255900805553858709591704905213568003978953582986974125461131453163540875542042774700242280168822402587039875450170866657037340880735496990419579329015380162568036874376766912503470567237785377582059049865058237650952979705290597481836852619823863692511881952255259475646227298718311824506384738396695832160633843382260437381852454777918882002200962462244208091628577828379251290559222936914487288868376535932667819039688653812035217644585285748556182242160612582612588650315972023726682889818581083238988589784251743849913355408252008799126009751639682033889127750513276974067476642549854428152997773267196364255616574246628610695222039688632648003670368618796383473579822566380823571556064095868631649118941902703663717489335109963823610374595150366573084260812790347278918518236470391035232883650468596026195522947254732820612876456916290169122219017568215851375470043022584882250802077091823501704395016976083851143426335638737337494548225374542162614204096372803091752865256753791673838764971615513709569054402326854044485951744117070198234018076982388633150755950347089310008011985148128386155276343980106869509920726060578196603603042299318957494741249672361627544157908205074533775530321166708638471784480275496333959213020836018330275868810095182409528264601806643124693656809621954977812953936709598208552710877678393294590287559860203884775764916527685847992717781922307910953260299901785386393474425405305811816007877939456467930065356985111312367455513822580025858768495993513242097291222392786752015600297709942383552369335727494893681566637175046578088926923163116909583816211869993689123150334455219912761489452620020670437796418079836474515703635831887847958961886043691647876216365841902364712924001928807422867990170196235175009339946762615118065298150705266357086548458389416907124868213039677233402643201731476214715572152276340271863871027986803669622945596231606298998957038073849877886542606915571000179584626188299775315894273713071758644614564275780683621495348892706242105852969451186669333983234091742428002352637528355245210059232109600697084361493042254866167375828263237964823632838535111899282166271279318875445936021929937237033777803889551795829674906310219057244516540447551245319514267464374332580168465371446427918893976170002993476178934976977458054363398606996223110644268338735619351908243435882255852088505653259915405657121713814823357487311151178009777738794666126318015453765951980385330856510263569348233706010989894318847240569970831615338594958921900493512708951497208498992720657947528334090540713223370452924024982915978768761356637141126236842969584327451146256755904226633875123798805755657066731531701603453737733601351803458916904440964373235744233006024241209800818343960183075739946315382974147332065762341987456476351793482401506057649045300561549874061927237301258665667805252855068242529641482807247557318226527349586135072160119613371407254876346079999433454821750896197118386558235722677936009721876747749860634902969915671971464792311359411577027947150421760719883785862081868928054271619430609843565598718524664372671376891950725484284302819842979796508768493460693680389782391161544760945555068041053532677176768607340800970179019501496777754684349874594966532333449242339047236054947976691195667340166695199984288398192558981905096295793244417503764634107257858381254067416832940947999767869363035735950162055778217944331288658486335117725372237601507269880447180500572987948832137744231407282672384335666046114191551390222866844292704216766335256293551312925027996584866231377113947540386703247389300696780183463387910061425203229045121070471174835848307891047405491867146313051903367240900521955468645999316204491684094700682464232708776036614027199837419108218619138890907978035377627746272733066567452431843913235671375539698253089380669410530920758904547487025971302420309718686022438826960617352581852420511004213625053673484693612492301431218593098377980700051734567074432666314760557245089210686403943275939335766819638285383090861844834016597635623820412733185075856427362599185844392272453001118494460969420745079296504683693824631240178369997009869841132380075321800224691453817876419961405989025507703459653529001897019274904937276387342264084932276481439527530927353363145355248777461721789187411614447103326402199883295136846859071833280525531385823384650436639031629909864882994625521911989674271255263159997430139003523216946405467747536609849101898718155785037962457789517257884025711066674242171153432684425313023677907410062747912404035660671253650332676316355313018791432694632165910522145473910717530958656469245804582251143067643453702957966872623670824517479147753600257518692966925136912236118647120894899312994714131328604204837826146113402985134708175438580812384739879627300375276815579812439982466215780405478901594409965203311697550754956132263302130688370887283741141250826487858164746467568461482142523327092186650835018316850029492379407370686524236620896478464743711781896508451861163443023715112825857682833838661295119751174251312456493724515120071117720678328910263301188483555622455401484415491458669684211694990093045733294514652088352713687350755992484527526098441949802898077276513296303162102843020173589678987562758094231500811975559955180777413099050566019570305825353782026259573056483952111233619185337697661431637011841321050203210043498473276385031270530785941926958372166597824195694157898233212809282353503089088654690151221152524102153136093081354594655540003547367483945380191495167661991860597254481247287685479449464662493719902536138652407303396465939176797805486555625174470696814969516068740913862156226971746743288695729418438563465879604359555327350931507726321709319174308580385006942612408876426758215223722853128424707211851027747937822006228809395284476411770657909556582477525831292309142637235374002917387198231599089306071505727234021935708630584735271776798465175549728737569606413056446386179581316130883029590492806596367346253371184705699739942592921514117979986046855455018432321753845418496294682694161823540668530306901071955414516601631879612751905771813078107778489806222675773151598350793333337761789796936808723623816272552524947217080180750684990969623739437524097899748069388883348104317608476236251714607988454559547276037767854466149395155735000374754785757272541022596685335147437194200488471160310933597599995860330510088707920521326852907008548589573304195218625725387636506332857686344889332558644420857331767578463718185273154986245987752038685500695870595293901837136864790420670676400409051528837597754055687074036882169258974937464054086338814567959991003034182711130238019296944875673872965866576332036716839541892027948161002954691148536131038118000529864777714390452591210793964881205475041884057696572019063254046451268891946453832142552515155355728973319390473062994385957165244112592802315066690766290386081324214131387944842602050494917494825518804257315677368567113243328818972291972073870106603241753413585331554366764271275621867692364809423413956952164097925455459892747460137840086057889122961987716442806309228514308442867380454760215562230730424759200987378935342306135651578572433714108887090979842188610292962014292243226700614969572656541703766584929095649464956739928634325255609007879351145744811472299912326085883940943553983229671805319131195665916191848249197333654159691548644052438978636461159579834990615528884792123589005252721540193308800562441518383213490490362301313978062813722873921660597961633977835630737877708409841725317841451422434276823415592416076622687123251455332798648461225869768753867809645013381348202641799497953556953509082459930950375910713677763842185796321472773497966017895620349656748949290730390948536690536071462349248805254999794462209853790028077098736135875026375211782041173904403330389176150575676340447922894222164471839890188974385278847935040128812131431151135219608830675165243337564164500017862982153671505977210642963508767876922759952673366297335812262918009719502650314945533928506647577583597571220919478866824198451795965485332570644540849403556595903908727052346583698972608444953666983151239063274563805432935390006437710140438245479784132120856581569548119459544430137722455914120523677707631081496495307226413848652054806663294811092098378507792186420912788641508974791084426760649119747518024964199335661482776050142427611716369343600873253276362525417506426424081414212905566170571682883032721616441787383279788761713382245240006014363127515968745553237480107450917535862013850615949758391931085178261796440132064160200518674242569750520194248540884093969772521099731532407055203509728279413879186418519904620529667810016966393422675075019843345541357360208672342813505870128063854390999528168368282059923918580944553800716777798416487785597986787234194657821253985039446289767356745197262365883654790774910504609251371272455595741947408503744017193073680634448196288184679028958448799352071690457460245919976579355543267152071672106117249199384499674415622085976950296460864408913007149403172790928573998325740963571011373670308056913208339734299230123994903171475792592337650251401919639759563691550638227884122694398753656207022375554515656953112654496021952794864406134520446243929338415447173274960026473261710226679245257875417327459185742751460973442962907099221239744354034665261421444584508028419411588900816026861243090971729590272316982003569636485714415769508826353047539561216717477500781966999558064165450137065098717356988757007694826258236989704514170835782257001505233337522594132843820050239269009389372830498502366985799353253999840717728393715277971711939048610055340612484587618853187449262081319569309513941031283407541146610273969768535865730199192381208104982751143678862899097139924810973931945063565387351209334381843935467226213997457168492045957094341795843248587338989389437009894749099250709951873751994367381000284972136480975460858706301843362261460802022184306121596728717879506424625404523683491692257705962625577170984537643667785202203938392959760661462563449818832778046992977309064063031719644564069510723675003684493220636921042420448382596457450484686296504538634856253547942580489968676018659952801543576208363125388961593583753982248596004497008351861335299308932595291946905621902762932252830445456323939261993830215992887126820746233805950798408891120291552866056206290749847500809756099188264093300449620105040823902823749873830099553179002464970033792165374750667443313890566997944445207788482210802848129387949569983095808515989711152782294636105229117420080176224367737927640114975863140905775995323975443679224997622133901975805254462498646150724435942022259037428402131308281996355945268256860632694453302794263675239914487756735160620872023345420470845756621138758126506781773087261726130831579768974974449202070207334763874794198379090267109268930255406395202215468640950832297728718895757332711902670867652002981853204796126957461787577316237306423416789674032974085768248793387587038842602256483476823197544898225485105075050980624295372219325434403756409912058710720305642232591290453212715526025360504353940653036723408893049961883636359025560738819901333320473198071894613901759187349505875426839415210421110494937536148535185852011133928200762440559142344543402110230637815230435279949792703469516426276737136551256919008551868517566421821100143360665165619088401991031065536755895543696342620507936667664964106409413012616466025343436161993345682903421262056038061020652754150370211119260784358404393309838729599007927135637172798580034261832133236714249369589508945568285860514167584053411988236149842549245718541996830439105742628176964388097099692022631906406479271949877523516230990960132955873311983022166856803527566436176014880040819607690536088312269808083338346950617668397886705774574546406523393487314415668858277204954345342702847026921615161280510364934617551922627019025314769603410971934446101512397023062691283006677608919843614323174136078154077657423684463631051357480754339536535616536942652170081842062986711467833270322073548248472253079570471846637356571019253644384668247231332992628622099088364051072725292059805779941039954730199661315816184927863767697474402255105303774507725247830448559281442476710457587159849540826473356634953770723817401743327094214842036730778078955040467344571693435705277585508743278407387579005020509950318593987296804196980597621681241200128115825665742398355192435032091664289915836263162834459969331124656187432892565089538388791903524386291059462100175813627056215984646179399722473313009793099726729991226010067214313528077174524213210733496135507570263057338415534646623025915731329870391647961595696999216094804291832901339681950125785107287108389932914344103352214488360600778716077800115928831797919997808462695708139954894831065987487642093381927287921283977316567485019575086241356048395872111296954598052387751547605116332348288797059421463064401469182808827242978982939362556617910019944352138865375388529476095192334901538379862138300086790684624828388891687040078701162329147201284854263473944037869016329538233406088101329890399974265873872289966900670016311736574021913411556966055088748508061663727440652719359403199241176060287107637626376613046549114660626541231005052992542744888610093960859011973921676458037053845949120538310437433651616585535920170966782038589292036179106084608913462083123764813824776798110750668523114060475226774051594369589289419473704188452201088657302146331737590651078114067477011573765723269099849195046764418336029486725886043783985311330900469659399202165512289340185175436359263707797361574488016322411986255289341172565812313458112780862618159818716837336297686827042801191612927847124637225099452608058456060431568386990893504266860313757288084089709575687407242575798967280513930765087947127464177117994674157790219796596459801013454871492329021043813745324613348477703398235352635777652747004436459035932436281917425662758982580691871067446368030223803689783519474943807982256659664055473673964284858803046453330108495151644875168646595940145122509165081456216558809913120502862114624976028812653538090519611110588992302247228159392120694556060776076088525800614978491646509264812677252409978297046844833912145495216533992019750302778312914199305810418619177945188014304951367733772899363618542792266397435065452808434458046456225440728346471897559759847063871818335637728875728242573538430522801994237022548788991681939534945789091256452885611337252445394915216369921197000937088084347289943168644255272359213707763255141118850847338033315313101519740203084574549096011319282845306277633613491904193705805055128660852722509021155186201581849774085662627335591593561488277314964435102527823877381068105148077920086245971704319033561469963426833288878135780578970032470413347235963989672177120213169725883045070356726529919803305950357237619312387747301655437054769573664341456823576343212748536844547141248785270646585035059068967619257310864449326586056356437738906629801859932548595786729934240893760469365382599391046970547901773453780624192151656996297823347543071330076912038804067909096912452179695241375465803886963041929704167267330944553749343150980932801538776465980982340963870299899255326771104985327308053468351614367855488571788225284879333950994553535075770725502663369504863337045484820953313017792244561886521916231384305041820078923860639516108197983205882776907582093799551530923898680658499245745507626775182860176335525335787272334950035218581436862356441957140541604605567724373484040417993557102153750254800333734715548079975950196167690074501493588142870379575003763754899127061462358724073075284354445095888044810493690834596922058906997448157833302673500660557624944829977756552783180220126893576617018148193126567766018241260747063608688904393504433068718581378315844390026286194717671099870929422101680601661682152989611625201387071223451563378233216068408869635436379970380207947945277142901380662268191066078017068065482164588621640563768243710913751726177629861167885089957515912110210182847867111843965464376875104161181273105461758386009659989620009188490160378308222089511215578151172685722371185212990005251086920132754901079796001653684890678427459844376031239111172487363309270755858266361523381291393384351736411723416043872250759429226615713055654699777443380389109920701837968586183981491782112273403765081695557499501977404311482324393267841846780642700098769242844360910974587105610385649963834390781636374745106264889143542649112823528275455416290402631345606610411344029705795568499548883826944357945755877680239882727448386342788341535679720895832623638565728648869699693777831531150129961121680709635448831685104233094565537912776618555978067699086940566944304289681562733694355609688300586139554806702034136665060580316015421505229378209997008467935719821252621872366454558592292706853032993246870980585747437883406539694860361651866243187012622384636160942500047992564481592099302341455616709562160881725086482821013151747611979369927617599903054032887517517429004648383656672433854959153173034185136492051362956101262773250448160689161152749718159452681706391534909596937880814738182362294057842916048985405657985042721380804216932026664060379061091452102796967982335026949206642072312698660688312233750277033809521465188713160744191211162321357682515072687498367910087386320336765694109274424183766315611141319187006016388985558780526034519075476520199250573129878940483374104433013063200964137656922339365080401102407465035263126190458788672184840849623438085318192360940081959907324155497075748420116461200230615324215854235422793933368756952831448494732632243008822606272472856566700335804515860005524335005620668188893626565815575574416408888583028890931670849838420459373836387643003131950845650813784609012868928835346605969236318634805262745939593091201457954115472481464696272831823625505432505353165935989629926164798728154330868015412238082169505231422002974510250048863139327114646957649194833707725249145418466572126780794738303989556983112183143292555538262914872487384768408032956946669122352130325204641293565697551826825363490551536085947169130151537700740762308958102214289151185617020665331419661445503574388512411289405712729846394531848936658399830426438511085031159615371485482653745681498931052172861848278020415238307857458102006578983155176628680674005911543622752514898025058656917753618256499025364967917855515354245437533934075298327578686205433558891904495137970552321366701024693269007587903901426022337846585152921830861724128541255477283483001455774113323124072196081260902362287974146713732475466120719393383802379585764356753601048673601322914209049292395888014964842198379044371798379949738985139338890310459385986011684873397929102797840795342044625841250066242234112686127072471489218982724699525140463389240133708657111105506945019561810089231263101412244958014993008967778612281835888046179062023889665972841477014928727619409921357708167976076276777385446352467741746807548716395329677386805342198458261354287398560212600724529553104525901675186417921667052278294372106586518065569683913424781939878851660578592648186904967431638869248590277464872323880284484481893504002627631092387967193767270900171122756669702121664806336590282931039119950863676237801290762990753631436170915797610102646255191475533355327196553896551183208253228577160887431722272139995695826776304567710938918490872930229166963318035711780574481857471240121304332016714154935070472868917267662080245350980259446803915199528661142600043007275789407006668761811476278810128319716934032969671216985043149562160004624265620980138638572168433328204917321960361833672003556554741503938833574089735463797177844671467678082723277130680442938058826202335119226039834543148332021020050482465469994910512120671900769527563046897490971689924535185782934182111081984587931399351154163301269503341317508363911846157017044049217972698811438299544477814610667083474516901758791905315235936713803104429729320286216336000762280745749157660756414967660100783000509153570238377989865167225035609825368962674230770040461052446716069537188577247402606518449858880296843278956147430187859555513684890835309237153377203403045393719827854513128725369588284279961108747349625441573750214012008186399079358158467569954473007029331952880373554179874210782240586925846564813928303267926782296756552934021116423996218613243982879429187367050511363025665197311607139652491009382010232459826048473216514970497367076407377999221217945521662251283616832608102433287231636834717945183717150094048330638761926093467120608466973328407994754203311774970764615090620348546207193842760388257824403872130272845197048152963430195271958989063403340784506593547255432200067957659945784769934017006928838677355775274606599509077286303480522471077990890718715542341367090989351733934319900648416187752048269803185904538223502899726260730521194503461195880846092949385868251675010014894880156286232843599226517848750344692485677888694478087194442500755551227633970787203868814909935782418837125148573886233067960641528068726041790830639479609274038307140814365498622985849809310171083163294086204958744510430739230563005916717910574149984669925391779320549776097436919511069788635158350196573641106247272283695240734015520501046678475980666535718517560776118186081682064494132505504412282474464931031420714372275739499987292987512966049092258387542574366178789933895168937320993601450751957095037700077688641781394270082573605659007937393098024545399259736499960293351646451927524910000150002032759339183618140446374801900038395613520308111230114598851583602565379250768330123983767829897738017218681470313681242381536567544807101085504867347301251866889027980396426269686019949974836878246791522315998853269022050404225134663370121300095547935723084494151901461553114319405723877854349741896692842142514763894754785225175982411481398458286054994964713756871037665445886787117377780055774240706531836012100534989379284014887090677608289679103051738911933139000847635771437182168111321083605813038585256172153600880469516574930857720912484799857162062022233802399566046952675914491027492671215453386712411074042565772415966767331949338754132511689271927920390489024758223393082873035008339578596067610846848120344935160546380783412451268541296199882381550821794565828734241074870182956637558524862488776712313096090493901066473795464530148349577452898302687962121528479392483869535887819706345267169351855824597604419313791791327252650753028862243907871625578474213909324427065193155932950382956530668490157419343065512956806452471494663126652033873928628619710106853685900652661100501116301687722925813376742354649686565080688427962433991534816120817557977562074398455520620882900107432993613191441640463772400476156249603627546645769651531173401851400903152778095480531231115961074592372254787875276850468018407668967833519127197678395622421457829514833191174806136488658635259192632909892235517961797073008628335673321109673902476159522411841429285316058152520301688102625725409143171782410668106300085402902116990760201412658933594739796785235791429574088952307216537102582958442196946883011090849617834600345369426118497304700445604848248924414540601439705632183324457565204317435998865983505262188897648793895372812613015683355096864313571280307316637741133977197486351876447419930617330668156940705604855160593300477092598786701206081017118594858104385613519290627635775652601820039808153756137673787713577392165678761837302826189491411171351440798129087864471357154812674121589703320681644081008020628479240676959900261166162493184221198188683910920469788146946872086100303124524858784494421603084996049911390434503731070689102748647716306419299042120855820058578251039794667419503055188284864050588266679363441087063105920291000316591860392997972836486011321890261337617637302045789955657635640973526523860628572151650365220498702114719886075163896686570960251577604774178814965924405641010625930427354917890720184378918318226491308777930768005232497771817377234320485126923752287200781987859187235231305020727390337524838645688547151618377767604126286514820258899083580207146600224956798405727220214917505638547256840963213088860896802408167469177939795834712928518322382556416788188018334665508666178101991717874332243685239341405816578042552906140812440099457331431581591409721264412105773606639688305849114304354329697263919919467502144290042956227369246215524297570810607415418186320258794861135696708427740609892646766050053213366478930696827754000983400361651835126405284706839002406628543924769115783344183859249922940360892181729686574593483423634886227059682056128095806854586553917567243128836490336047507395133868024709578017430333431849550909292072667900977784769064153348945015664542303789655154901292646529770126925361969871261519945068247907975112965982852915350405890730167028279357912439596125908077730603653769346398086195835735331206225201981897186703607226061972262435226890853041084080316944758239720964160960252751562005290621685653495126831681392331200448046711276915997363343689801387567141965153749513795372496961683077605749892968404342905159304510884437625463046614038794647904604446372428338405144700047446122911427862971645976570687010324472551907098626224998588184830816385824028445702053145073310217887869868101405900942880221117389919493819423384916665516733152211696187661750460311920306676992488760282994712691358140739013040105769754257296297278737704042681527378475048125519815162820812283489849593036437352805244275999842627048500990300990870541435776153393461429684844957677149800014156025502648185612545744064038672952717914703935057092467956877780610774100097437936223726080950011970696881434067370518839639725634490241389888952332368246952442879048948861969876487807253896469398630191599612194445249852913214804121281219843958124388121638146543536965710187126442515818044475059376107597003095441148270387086995726976603991143352805935923588455943802419586650937226104140668257612115934726606718914660598951939002138154213688695313461748645142516935341705120116718287798071974904454197177316686645857729491117512041934041218048188487809359871759614761726190725840396434466048807278382036088826695894216161406537804969860542617154089960783011398395321566901402353709568982923997888625405465361526829484599652205896139540850584515452292008236221866116838827122173972667987694839827379738282810716008182255381710935514733814713498360015000730525020152676817081305952361178247223988379081787958877764333813196953251256255820412850407516507940046779416462612178400907991419556400757740399109287080595857476564526501075201508832669961351966355592890610578960264181848148617892662230618302171975474167363587376236462335129318865441282909771733763614875212026625483409149006270873196179442538084286798052127202187929141402276599027159264505953255044026684919903506903324563424468723001252222201082727395472033612630947640958493568051017598116696163427178257553336466697050355200672855500433800720171634854871139196318727442865161012535103415389397453400852539966818710621922475238253513541151484036184953402316079889008538548674792208505168925932512790271613658922078018574434931813351366678408251057140517656414562481740721630900569188024422256323148592001337690996295054569747284485840921401347955595486715590364871167068619853915457646608482430152535384232731530527978043375336913610596793156812362202061091509369688342796969760860229433846231110333815343455375402431452223440283849123337255982083572557953345668681530139678190659838397900763135284416810447079841474873695499462980129745866873647881369631131241043062887538922865188530113195278818526303521793502248961740733905872289768050456264071018254187965586692635085317216827591168783030906650761403540734388462409731534108677014062588759478062327033831432855648136261689413441791088398744774286820767922256922425726160005462660549346801737208646210847848409863981327194336003543235834263379847460917850765283603039512775247212675470146091918114514794503213683095968403870436006967549325360387954009294648182584827055606348358289744749628452271522848118970203702035250751040452356746599238253588394351755353488874782723946857988938874396898419429707740804523696798209717248946833598560004777442494462680285874852251900793321575073642051204207427045460332997489694716262728190356876624569883085739656069837308116096598682739107304592789049729972413595391531107709474556692772374338917536152322502054524576718777433958379051407976079652682896562298025538309368512858132815047879827901665375032300167875956475694364829745421135574046774894456004043649469181605743401795023133886134182618411798264522491136293529056417627577183999465656153088261640904330745511907270564484987648363710869613033533027210843930164363649763758974571006254190060826832998477816548646875436245253750873298274212853513826576678101866504062247336310032071202352491665565980084373047632080820639603309020591460214918275298354166078865876506301704360069534213568228157336431652122226813628686022834437620411511318050176889183312040933807615365847959535462115262154944550735147632886720918397050686042525530022765088553202262662133476139339204696587790122051726543115360133384863142203917420562640725591414027413732599397861150778830088488597791999461100459493536683646931794692915794412138594549323063040945908462268091679889405011984710450242085945192657419387501684359873307053749366371236559150807591708918018238621545605380896619394844267815128768690202040456441253150803483854966040101985013153155236685291920853126237680860185485987133257238632148650820713401407076194080276237981988064821823964196401514315921106717781117173902620879099728823971230925303827595514817341470292673579958448523852649870093826792076718478770996602542138584509408319677968437761085199224230171070053526687015957188528087567015572257213088841369823904015923428452678348426588955832049686526829111419234797761223708445035579717076323048859131827901105806604278158262709104713116050678921159693514627001483146583603533713548342294858582371485930331926446585060305060513411876147163868680660954275991596006717052762392928698625739436560670414568065410927902668276345859122202394880366795723506322230532766259024796046370489554180545051798555568806265350377315327412214042407372566956676668569432611517539706500537932411332985816941032724621681661558255199384059882993975313691755458747863101559073693582047476727149114872342321951187418675822350255756179073723486409619194488678416845697731762491504333411635411782242905998771688400462066115769712096574814143258363238097891047379407391455421949490701854256774483233758291026966944384781399445962526722296644582483122759484739895100200001763694375114591426257298603604962474694449733517691546990757674246437310573936825129209266936365418597606565846584524453828687279849751934011598802298774861287811217492599122677922928291165544334023812467253767062338396180892248481208245137228116081209639824232069679915198148825084451550187875080617107205406084689716985270551450955602378655255524671085665819491430845153568977815967400052055716145572891928770060427596685014890880397018579319178720842779741068885073397384757552452706981662231382771929814182994719078938088878668391876649830562071948227200337445838182162744078131663363434075721638206234944025017820659012169212220407850293221558944391353626380289971189106898886647162427999127602872896549950453717231931986400939281300031401772457331484308116525426465080190747873191270013122761587758043420574951427852061942977120571059073589707675586910399237836355570203343992934605641197476853255834239228408152451122111771547743350937533358122217829423623508594900342483810718341888492842278039525879531421110709005367282764709027675039800902611534206460161274456691503372903846170002409267847679287203678841711432503005833254973627439836323023461846811801008299150939378459886305879329166223759974244044466021169839236383181818240577833607290714637356364454535870035014380996806411714194243232662567599221113128650517848586987922268106110750163016797182764689977112625203818289904142287068648639887821484088256065559176165658544949673910235556241681966808124006944179529153882059319918866403758973717554975802781656515023035075579454232621094604516392282803000682873839002077906935367958971945468749772210925774261646727413973179255910799835982334742137596590919195397277179327248102163791386344259438128379296384717658702750783168272301800991402319193546298953758317838808598067069223968728523449931154859144314838458062183443337709851782004769440856020265448982250685756568217520169714409561289859017108650724491762460513672457831912862199164435796176548116838906005282062284520926740904224574443169320912283409958514426272385381831187439297558951884469310490439152676330710186677100595515174484081633403607219099530806552793529687210091542869607823883489517157030622479904438360306622956633123487714478393727337382168706861799276621207483415546272536723398628321441443925090880238446404143065758521855399273752742231846149944939656344861238664177233277672205574450605235112449438634853618431540824331617951675962260877593389685679939829963799705502794720273026655514924598665938228503967613212832594557699096775671505207544152025115545750131170016495555690821840403428306466954428128285473565729398687414566865225873828186967000379105513764001499972623594569515304979966046539751138938367475414668102267898216417066055519438160173369308501556543600530811755174719009463665307769924870363867386450582122671518441916392703893210642994439433227624630879923540854043763375603534193096841637139230891013622856754375690101965442418533577038903862840484129818698879316241470047472801615573627086615635957585979151811069487827337813913003394852914030559487243288160877849832792508951529736011106334688563518971780629009771471617086825289769574402014042732014565874987615532915704653355646560852907122972254921094954568595571929739894145780986579388015223996386234745786628228932138609374314374270944463222117641588367726820293125268713474634265876144238435718094347073626924088176769470183526637247377278190074293623235073869498899302455174084561256273527181719042811839106533139871633849024746737611548756938139906470050462409408723852877643174854745295907605192997761190324835875963106528379287051634427485147687086701064515280633957835294796023677685950763929914441906400573091228695300824432957787322671617525089294089818364014121931270719792004192379495591665999801685649196671822743456452326774526385715886295047774463522727422528232353882272651769287813693526183165858626755510488672251791763292227374847065346375028992470496934007236240897133788292701067193325321848670662706388921976289427410008130838351036053591050174575275756688228789643849321365638660686632582540207201465058223424661228120931124222202005503594271584669151741577360159174988396067244479993799362384101035697377781976532198616187345599699796082825673959216297770220049898081324631817342803260026202751710203661613028306388924873309922806991485212443159044519731554802705117943639504216471379950054029142659223452566719065825528722185330861374602725677346198682932678645011022013523674735780187427379427198644962924595520720837249031592221883895737846485857555947599021973495430985891741618435593553271810915509038858127359697823857640553134863523698764802774883662939568705679859582954517049572833708591024136901890258902379738480824285269063616177434071246378909239842220852410092526626905534148338031454986967246853519283324145997928139189728588664534301403958439487999894151832478797000595495259659762164708170961496678470025202534150825274214997474734331226379359361185254314171439714340205600931087732489550250376928189257503663496240449475746012673192632388248414781579343599213038994456392104072257897296669982970074283848043602146379898161364015802630356555508098495164915853522485859736521263109052292164075694056569236190846336905659322095613825635924238848916546606639050529213812566930010349772283640274451845042391022091661775386528932353365246539670543410402662458255898002791036746484911913164493813153864943013165716080270927027439943219755601536710268028644353545277900034744876993986011373365707933903230497120375786348068092658279351462329184729094777645833422472994249256623786264187529738651642733972358123283718324997036246523918489022817407385493659522095127509584244444686450111079020751721179236832224390282351682447607949152654614336598394282052230729011530503662689549463391264968055661103460845705200733938589648698942486695483107518148038259138008373290047418723078754241956599615153574349063417497866647240999604992618666146421029925869053901306911652540160930179803674633335296609757657671980248031708834828346143888040280109564673888529403490211138533734640594906826869670659419084133542861285459565103455289933099307305732726243005904460884574697385026774471018594378181043761167332063522022022871159887368459435105129252552535395187618081898138176888888420608471508028470963093832242369866673521668429798993136109783214699555876647929935348284797294351103312636770422298379165680125625248650979454875936201699888780706018817427661069727491748415458197302672670502141777549817756854878201946455845866994818048312052673170749420135857186453847468513043053732941266789279325793051111960619300956267863075339161274593212025977115054976039093316877406650128858339841849924363689509483006213918574565244653263341152599795679024762605778291388573337322399949455367147564627136748307054908577479086358994058055009186010293218588534903595670163713963730092802059295692497344826380342082908728548858764812394406257235319160314964955131980769727179003322213407404118013417929286297459264591780650569603844744039359252466082357034040893587123380692857222602770047236671714346977353810064276982927594996507814040072337884191869814915814508620839780321776712924214549650104077044556132862633404535151173669937230180751293291412517351704987788027425538510684348943636239160244837922581511715115725152980028100447359813452165674538814757323836819231523264717105142115629910025148656733497438626484340990690140556975238952476618120225442833673794923777737481250381970721303306297874690087056580330804289509975662689696421795495538911926965978880214025109190756893573182450618004989488186729269624285925506175610084406820513821725910199994926583296872608676427964235428388974161013518449931322383888287097004677702676269382755949056561795598198988342410262371623839790501795005597563314490500373426634434961566982496047479013593171077870115476152447578905473415579241754589569576836431633587168819518026601430718470904965007091385377738738141343952320437326369670874925872971400504881985644781226580260628927272566448612328628030107773447855924736641304268828762892405113117808476296654778716345715114797668153194164626590614884946771440232336110250437882511911852946972563585075767510125990247102209827499278566535991058036265281659275400532986381798268512376474467299937392917508315869584579773936946301005725805567550857879792243475067757234057724690113224457418529090895890494735587662863378278082067747306558523538311239896686976643638199322560356043345748353488539510248270140127225980940486704863215412600223958752085552102712444519874858202148305098795422742262511991203835362811225572534142328430311334646644672353693086979191788028381821364248595506773229106259472139991577406350131776379525246088914240447087856772125619379067071832630067451684796784481218311828341594364329703668347578311525633254069321662027754140149850195730155805975090005379723986968376134947781920355592553277051307388035874378323669792382105851011930640974243218044114228272734711648946121875707206745177817687714633970297843174589105506045569885282418710816463204798157701541564565857673914836177651493115221029757756655049893053651269201162170839230474645973641917228963632032587456302582870123982299877129811625254838434101142342636854523096116931385190034889124648028421536129727446404190705638739771760621405749249899339827232310206985644490935158061583532232350525481713340457548540150202659689666043565367878766787714927887972479753044862227454962871486469376054173490141369979784691270354718205585291904472803930576585918533381197711786616715139741762813307893757132246800515274834748326305955156615482270344629013994640646592000434537132689320004632964370584929611353718539480421112746798052164865369446609166418572421723831716133594986261692847036089561125945018720841080084210484629083069762088221999149146455829540104065914891436835678284260204471462119625526452153837274909263295003196230661071146818540474690490485245357592015231420170072673594697492202981493360262022175901437088732227936899884082404810943199597325957411596244090404706569554177386316414315094127657578646638105589295207916546727057870480441611326190239899337426905635896290792027382653273761721716412828709917455159052390802523055349659340726597231546061903818827677785978537039990739939081053397526755239461677442236772129822215567917453361374450497272458157516137594458998212816851703343800581867026864177563643960702490707107201029933398908522669157519548335772583431463794225951034768940070847609949303338187157850454769875759106797168770315223624932035323396323702566595873659252990648778465778603029742255639886592025038427616372360205801778554846176038562294357206133570500057643730949566953142634226960199400821956091798663212649632676183457170915893744554646766404245162410573984158741750698752586606672778540657123584726473351515367085438229045856320702092521342058125392074765244546770552071294398735424298770522689474238610868359670890046152972482285058983572133640052320451326753816754728977311031892573887051868636053906445844140874795015452716109054675839399623448742907843133158707583681552897667950647506600689060314935621580742970709099617457218694394610809837170935550273347662172855184068538425157300857572970872045615349228412883881742508317762866954470133155386635884269328095479077029148093248582245549314566051702879243933072317697649517022739800168585413385213539217134168760691618274074510293973109395253864911563314262871817608425975215147411559628838256251150448806505442535832518898291758058125470439860287590068217080989106953098138397795199133142730182473846060903468612445398888774849534000027206468981517483914967128278117359351654554872523825600611635541664654285988881358414798536108189918894523678877175525539063476769816815885951914771538803687226427517039788180908538329945097176756421318148659042790292776371063288343713980083373452061674491374478304791797684053501236653225925381574825964539306725801034241122052909923107528652958620759245480421157922746413729314382119052382358895967991458022602143998313802017749650420868219636709321773651941986071492095404267152834509367129268454450412360780614641407188550763913508855559328913473072949600749839398848035176203950988305675565113138322140688581243214972420314185017093706507538495993261204499880234093524840701657494592686690248338346930459513650730491212868373659626665012479797921186836261279576664008387484319094380524305198122227345144614927040837703591189332092368813403396010522155341186020094925980518694785101326470442521089608071955648305301964508222003311497166727288131397355510391986159050363354155089163595889393351284902860042515925759559488358000309232908835792388503387759861044599490636604793573069551340903350912535468214795912413588177850510974772404256213399937542111930098578291030726590778055176353178019983668417191669314482964107914912930362446518399807156973838491822027510103610570441047691289653037191080240034009284935627300143052457410240341872478344804476220804666552730313635738708657971885130979024489631474721184760145616658986769184579198399804591780674627795181557076976813097235640892330629805218850524559409737469205283335616399168036317148252357100745195128051607458048741600380583203366752660203072423155761377864222306375755869141716647565086864545602185404232585422524253065046200998812258733978252316496181080356993011781151453296426380730293762754834809117044724159713633432149817924841659230176176736528899373924181237943374982136688224306044317160075757059747741742306308747160480211093520107993444510815045607885439407227566770998358029058995338811473152689401910901532811543220047846735707526985504470235534171338724490058499669728498883967060508772630626980804569429276033167241560721733716291449759940772603004791576671677867552253062252811122259702743510443003587221999592429152519799992967696274741777260439290756394611951055339098262961263458801609821218439645440360920216852430292646183394988429521109516223786603170506637984987318126410020467031872870612847287906948594010585224079738558157098449571515314247897737043600660954496076612107075099300409841196080767809555902308759770222509619266898974135538590840312721312449749332156065791667216882532283821781940750965555814519804482014950858674779863456630052305435509304752364615800745822689996795313205912803621543371557018522593155474995188124914789795001498441366827775169373898371650412388826062033628004474530674746780292057530339315456879166819441548566535491093518545694055237275300936379950477097260353403686995343597978915554513052730061280631879764203377131662787018922220938124056033959527720199110038731199763316110603675006410255922411119283651412447894305466086539844299096503732345660926403215972409760453505717780165151264218889079762201929038781917679586308307519046401279472820937940132652049756370160545906663916117081892217534309227492571823197197212217336622480042841148957293579237115039357935677627033986315286725289685682402873353976003106482921174595817844677867810142812648039419569374758321037154843838416105379995082067871115126568417209867490615076474226101783288556662198672806579310120457169126171341364398388425325209083839064674233064671240243745511730880219196000766074340241630635253750867582602577060366505355652981274515689160278520656693765990467543054097860004745517168987196595290623632397578070716067449267211269284672980443924486005629488524161307210997545362793807174862154503014273667623646983788003908816703244404528644110027421643401248221947883856252189656341624201398792232870689517281468519317583094416603679593109007597129939064834270842724245576833341943980586384205318143505951400832467294840895100552161817732177907923972182850937343986206855254757484472361144160716039922139787080803292016747592606806362164790919325951689004296563219749417746563256262292370077646986348366649300704875179812521664228913038342928687482089777662381140190219484732891547669042682138884775943140685908547385636750068177760712162703743583975987198271042647194699718907224113617717055835205660698160691129570885593775892989232960146758079988295883032343529366294300714291291348219133317132155620917298946687480787392582628859613264749511740469765934159521976151495334706302783614755979901513818896160110270510743597744976213450416819144650467757797324265465548623504669685111698661744087528223577320968274012279017155781228112171441634429617029043320884577815609282666727838771404288323642209941168188997738221860660915857903003571954633548255148503768697053323943415207045061059811028213570978008342759301621225922408186785468842990634453942100383145725640046237025624102692701734619762462186312160465295748787556671118867646785898459215482451083549484723137128261920277653701124965130912127202690794814008712447302509921122863442093715374567857917775836837815629480838020683933607280331651270048312167598032128204813948062903172738644653680038502323543795275586372825794837646337356019783764409830269212914825582911513930745416652941140498931066145298777764983840790313818505975325833212123246580093034464518693751613851036856899447919875359598556914634632256027186559717367928872555631655510679699367591099519645606480425275482308449982601671068855542073861658433037073552514658895568601653634377090003800291673811608639098349582695439238391847292416246795114767247746042920582885054117237418076518149784731561007343085445769650748724769165948103672920959787626927385605646098636054787408359934968474731871206809904278436631573790747210128083416618365909835032280659801931017005219692875282113735742920094478186937241776204266960709392095237154488355255870273461219808685278182042635376512597189536483210334157686563418198981738350145051017659686896463145989492226358997018393889574112285054393942356821415128465653038025522455205424111777235294813199465390338170398497073240588980117084934842939512218308980197383427907978261486893264732858567845285121312296610303853211570867189541329384241162698526669618176444492371387630522040997450132284172312726816149798140554229164646582813093520515338823036602163367434724239291380740758777261781901094401884569047438579188663512267626446005703344948857919779341432840144123279751318962980832801804726744732720553675505488062486998610240290809244180774660265149549858561022300429061064870618624135045761128899097116742267330156234468376940255259010979651767473059081604590142064647888986795013545439702050044236555298213764761517365022227972830662737195149532752400718519478327232713576182446678076335154713217100049850775484612210561550065966880454103017652009656059053316322088203658069744411670529344885348319750258318618065431812731057044862825376112100973897049802129801660937712174952222782944566349530937782684801299335208031536502343736011748785754170782542042235189112325704877713464677803642677068065053538595530922096200452781794706356566960950538899071737300782328140572039166554944995404544925495136521164857494317277839464652460133461242333064019407949578261992827234722131129144560925986144353853123560230845898817580210536022668839690841232548217142469269179897099359924627052952531530994191416239977792273802007178657651638073644767568437691583419130430975361255364444430911771592839792783740105601397763334259961069329288675337010099357643712397368013751572468488507883271679046687530520139774356378069877629332443154339588511866248168519330376247094859689953831538488762877307739328073275259245732787938559932397649691210477831375795920579129323244144605648154466640183977882104993427494137525900126876572750018522763012956871890992188726989330842592073875286910415951682635908851817967948226204763845695511540415201624125890519179391007579946335279664337920187057909116609507186355993876517823162582672617947560165774344208694088506414880694546935670090905266954480548292713124554124787565843478747750341122702626532662163303714124301910999988746418685831019739523807452212696292247783371034017751646357325524215625863623387377526347945888096840815956741597396315170466012805495996670456158499759739749189042713361791710821954525728989091590242987297877654695494804712394082454159918887923278957997233652997138683605349890230810137259794376626533131870757357922699322572974424309268599059443288781954680748892618691682084119118566884774315705521766082385464465719363436277629915560590512761906868572181250830736134480853130672908732305782565018771779959012704919742842302523817468430070904133904116027870183906333030288679163217746457732780215734523275600365039107209601125592435480561140081342167991725320928807412264895256482405717348968646424814825610079068889223543979758576613126749916712624074181601246940772553580685127766395214870215831137065693771125355695699233740947106544261519284088928702351070391582186830763241149066498563903193890990278240126921405691509037674412279423680194364632777914622597452645841745532224048938239905858333420241798849390413598889854404352958648033906247096103578958204940331846442446632505578015109940491967940550341385159649439807807615707963853824814156069895349233574721371692597327570453599738248142347661897553690385915073291169600433579312354819168829423387735396749199450233188816416235760888715875098431711515503328305478126534844195879264974118482847595162235076172363413418758070257415081563788718560429847435568781680133091608363575471425658099649159461166348730874939726759006908952449657809725402334287774203168247872004897960303241744446222912244526388614973500390433631357853154206186229156925297389427197441700549804478025105010724603660460589005464987945456922659465244946757240646899050745267940954922577904335650815820067997215167871136137308952113657017211234474603757057457082095330991343942491107759123208926441583939320123166900097050350560394720339788479742599691084528543439861145554836112674399003093966038917443034211488671423112785121826059967449110401238460664642100118212036714523168205489670791214651143448516752601884950231714136479557739611261573234319273691797039661545421854149104381547866501343912398642499506541680187764449590545360096230195214771231602480457007645981784865225025455420456181262382369056137670855834463452858965126474867463298188231542387986581985656284036534525650302822174736954524077549490259104313947396226727583960528685964848846842659572340987480275975467627311377274709037484874871931471894963061294206366538001684401912435464156134728302832651952838283098817672941216309504905046227483747744968685233015548758120687130110378390351439334596595964726762055142340185584832598381171086865829896828057250865094803411594012730308008906737535308661587098843707695683615735038759768365154841153762499064629762087980126407875238000605986053473755268819174978086859444188249889482846927319548511882659203767379392655582653691330780925582171056158729565292044871907668581715914926656721519292044273470953265560967156026909464278712450028434198260362147717250723791233335862515582319186505721247042215165871562742604709994863967152875838414896582705409371676131805351765053085763872805197554804600911157441980828367193602624860496604903350629784831742678187698991957962527862689628569561956384323692035198778945310894376017151468249264967949066001417421515833036240085435249058954512450268054984124119808151634175290297862583197620290183314411658381434938296058347245828254704701542120416320864277902818626929216829733373665709992319123792214619946387333387272873491041562494346260038403672777543490930605615051596307406290137547587075390253282094475288932954205970731614394155379563443488525794194208146552342052853446581144933373633070393318215886882720868052511573095970898085598511786175944072548242731641183614119209327331577662462235056963171838477341137942516106995505803736670842494820523831055312373942367548255739587065797815377066745121667332491708375091341135526714849807741284727339350379141141681574696508462906794076974460612882950402961637356699540860156992057637876188607146174045431228459841595395316556151917003658036578429213038915204157361183590987702562452334709780543086011245919251208914996605959778589800382794231385881166799124404111346655500456990157236976372902666010087404005987122944599495410012913010783312864741828853848868637924842150497717805018928867585015761625302565331646342274593300338265253418721350053525886076272404401971719218849615410697506355453005766736872184584229188526060097002239686154127588728517207661158062685199825861756885470633872094042218507729731814636750188758481835629332846792526192584497101023557036446297430840167117811263002753549418182281809902610362383064045726959695325695771517155277966564958311729418689793608195865110819091795121685998020213405520988488955822166958014463194391628589159091712985461175795402988955480614720559626043721603413339321773737983574253377158772816858061649927839136315340263036846003549292059308088579120852950413277558277503992404464265441191435121704170452366900704469515509120134473749600221037379959649261889408666036868587203361686769292050202581134447995447953429898562326218820731993409256313814429488238717431323917590017911969323750613322242607774339791799589322778590351183844188186043138961642561182045432427494321206486028081160872562902818466117301357170650280468054012361152684836796199379190723733259511973309815770043668693037857589437861841350203785613387002659039885758697900894620531024594171524586146810396432574062624388354068974024584843800630646458028098433018775566004624040678115395385218853838252868608027847353990072250030795345528515134416962020011002015704789483978186078191856744950134512714038038379879747878882194626290945411031677157193112753965271896602520227079262283618983767688518640246945918011009534432656708586126169128856843630116260760795128730783822447875862468976360809323585368168315541292681070325480319183748448516906592152850732758497850814844519466794235117753739338446264955968868410899412619735151216461548688196527000280205012597168597853549077046655611982943771118927736076268805561977592432386731972625233490025967830384404617733485315270197672871238709701180818441948803660839568612233811527573227423312944514206655470140885085815579687936893294338251384178829984545475502729302436390283859243266973515499494495233021404148970370299974715437586780007801296035747743816478693912389647232529180259876799269478155280563664897224386748336214618364764985794493099412459057891232849619192954927183259047878471625887436331099152066102976056376741856940548825676526014533093871998419054093448481856295254781257272252804287713814623433927129550349649842981664653337245018829620064138214475813271519626549640721421923506216378831215472752942108301159373624098562604967921212563648071394569480268676805915910192688537287184582090037059415055009436570896557440262858190301734727514007234129875433432604099260275564075520104956155194113422878045507935277595523113985224459456100599571505673855869957043732141237221744108251128367156056898399438663831117130773985629671255675117925924007259345918449487653363871779834000768497158895087416372868075892974126874619486145818109824394692552110770120239773043572660123620319738906782797586158427885042197536735932585479285346554231562730090095038483616440355299669780203978853265670254110106341726571461330059992249372944742981033696545494293221770344262607734345311181435089307746240908043470052356592681553430374999537512014924491215039195282522638680785452436625920276931680740660991435862513035059822076081070564577454383613582784629963559018471811301862891580273448859785423881141417430897277505450451789780699439339751718318906975416948723840400495462221715239254503348184497198917082137605078598553405135140836959215288465743741533748623655996944468137576597832966104143107039668019727719804181557830951050780997052552899780660971366637318599545462801487332035495623060647315389492101451996230764303803851691125801725309235029140952310480023490805953403575677720773699813744196240279907211684426229614536099058866080777399730678260426158371723193113630858092865725002634841659483668503868360540929405422561573167180465723212940022654050824941706540457478672920253963192480367672901489331446299280547225016942762393303111900926759243195747358175102714924996632813949756820895803116675165452842506118361327178024691342252365926895732146364638518513430297438453904645947283275597113223770987771284389798171941430221660649123374156968576102769415729517127561716243447931737517246831331879166510149141325476822029872165979031886997930996879859590537798144453828693427307591667743247844690829954696690160954883268431552440126702748313637178936385089597486508552236687806686979574502854292318298173982869724840123073550604131023282681009043681679575471164518783251508729889658151142363926303111267025329717925286662788214188317501924551287958012627694414273572208773403943021524937572898532499990771023356804234357066983676350788239913852097842308962787698553830759088295122958000509370961008764346391926910582467486063066055309256629859138804719592614892098895235526344444321784875437400653986491808175344617750167580384062373326943948993930984533090288757192760512025464667218664437271067482435358204913581673258084668041431143459673355294286073290324822100193478270336492760398405451564568887848201815330139017091958159066443681222454441021536210496287349273067125134782332896595027252006072794098070641364793777712347449048738303225215267726660471964675929876284124771700808386768643126141172478891531067776178610781738633143245138355369445206694783925309720200064387728462168629715438720982850507692026953596699671629721105855901439391925912910517907671817751618899070593001552399595163135428338776394257703399176590070012232189225090148997251949536080152069267145077000227562482393496131950557056732173736182462617780768045093805614263679507959177341816949152421674908421642008273731559454652687678466539701145044957941907144580054709107190147513931980518401123609436937898975290872632060454678906540521885077354785907540911863371873786280489113027931960974663407090597434384240774082796404159481357220138161911061587629968296545796252879257477882619351031774687991464598065656705665833807255003087239796446868090628097334455975322683496443502454507055129689782527577025579110066294608725704778702518562232457789824188288855970067010483624446357627714104863375151687346705520410628028944106443072844437621508883550366668223044739249004731077301124064711231290395807614367024463330794671591179143617799447108207067134424745899040004696965563119710401945350131587406853848037109500267544959257763410963835362680580842348436750694773617095386100184854110633352039266144096553327293408889371677627822359087910257245465935960134069438623496704443592839724508709837496570320873673991475564365003087977764307863176798821163480231545663090463929641869804605091017730089419956847980173530638699800938841025742152060066263376837650122496439885805152143546369804207881693794077298532635664180145394374374704081742380707528424435593286894077576907010645213871570382910491635634939420518909988631740107325698519028541441117908913453300734055056852149508585837675715769992250937056130112656191376242780291606647909344358985427128635113543393235179008567536246704632135733766858907225826171300806574216599755637224361979346286334994099037599345682971291744548686121392202161394621047800126192259759590619210515669627351530674974209128466535125052192291247019915191383023342099346511378859367447433145098159334923509371806295155921147893974787593959452763370284166033122079178822603156505696182426660267705836637590866572509241133531801811697078550267442327473157641816655094237878164454363006715857278903335521271075806053393014580208154563062240979064532684332421392404008791213944832358117610924239329963593805299441327411589298429729779567295307514558798317349327211607252508690233160111191660930709758409651184145513330740814466957725169210205928383885281899822614777717278000728256218753045330639462960901069400731004728095631903502809363486843841885144566394399980776808384527901308306390183244359552009160387728273931188622288339332409658030242749994646489731426611008512318951509096100392936246113921047960306497014479291154372501115554989757453266549916814834669232904643458117462447109538549562962482492341255064932404603523311643191696013918811441082167182450509663784930661851758551621221441162082999422210666593548235029641872425664190517395985612863074775867019797019469922867606700336155723675232255920720335398798281715162669571147333553131279150054830904808870437776926979688377399094183356953532703922440522051576003277989347434226855568127395249558219513883215353685354384971822374213016201615756074249996501988202646065309063849346473874166725137653067392251598466924201199310317776097715106988397456205635068283000042956614585904262419810889097429339426768591215484603955018887210575481279687010923084666638373320541334261124805321844461005371990127572165425361447941658917938620482124228519311701620052915193552607359243844607774711241882100445710267750720483329336902295255530138721290791609283422165610556955948094900542753052593280232099185725582458307770842750076637154612988740591744850608078077232744192873390647971932744327309628517905243204703937789341791451323435610293464263697816565787535551494952059215000059279454876470176795918816983478135651729561935837726045314855468803201946705264846757566377540709999009143759821280618299678393147858949682532965459370722224366248807265499770069435625106984454866877287097793995482879138796903549746488203612644968918613348675466509856188912643170395789301016455545137676324310877773469052941383030629872421722141916591152387163048112823399440678953944664426141421616527304234076392150866396059874594455671098683698571771465438865454053437596604028567740237716005313725431172774872090588129001937476445743280042332927569444006633459621332238663714135227709220074582658883394930111102842650772414981243526106714877553758080978315250056046991593951326742195368558931179548011072975359313253241428557023524511520156676710301387345955921106137002775782289714809929255914912097861172401668408971877375225572115314582638862312112880147092984634318644932766079211299224483699254490942543283030187136281644049392673977099399031186532980008624155976747149874923237116914272197592801202964033469513446318220195973724173306178445856301109156753427592114391355318926063681271701283720937224201878756410575412702963308171031904725226072144677016459130487726058135600899174067586262572272760966799769711694182058731450983242672775852444566967149778245293884741445437434604179707874319762588277373327355101609007740388284418850451772611651032188550193063150450908748685479897817271425224726488610441699218843676398623771623532390264086491948033194174678307692932866989717921523976882183791875035671345425665522968908125427146596193233720994480516331006536492195792795457458001126656162558149456149634593234501470204277802011236896986780861844579178109213805054809128997224981461580894623403353623019393106362735837493170970150770220576242644178044781005831648100613618902557038316083695665190201004004933523679850006763008937472936321803176737704981065480666558231173104276456411967523998888904210663752819235968667689781520714355115312024501920768797193875903090564123990804331162042784544589620119867345838082169838688305403883942624099480499940484309067049414633674376919724857953543080539396605608941166518940978038979589375653124741196679630075952117641910820166979386786926049131138998681315474531249981708681024801233441697027437708131013057989226161182413133479442539043368645672889589171360318950183328163474537068533867093468615303877756564738772567470120821874137867120438371706362185744668166235980689723917098381713425440560846380397313226787978332368565828271698978050023571224876626687255364877016543188953078727545902163018065997216171316201817031903258213761984364140185447254864760176416137456432411172432171611594652237344293640854019369089914561189840007245489563078442329030861379619743437220141323559697554581487768835008087372318697348694383409408107221611824591623062605656907599291225425008774380751182297319154266959856367043859085635242847024825352797634005470785640583309686913755414005552289696541979111061775834143162765241245852465498834671467530570137167210135115165954137644655249846932438433096887539162124480768636857617951892968229611753428164299351310723176984842499442540537505637373109798277265200111544052779056348291465096391094715168777017205818734914341455492733210024719220288258688081960941542625847486229814441524407366873459105304368385890447996816465853446707803467007615680391743572482750350916162609700804902756936843253119198923589282159348744834864201962571249898799510697311656517838790261821011364122498751557429441294015078313805450185878870615207844345425350010583765591718384576994474693668876940348686213291426107158255422019654841732032613267376389337483073628080526461920575359536917434703255234978323881558724600249935674990094139543565093672438681497522845826291407899853823901371696365329168821805624067792303118590720970136361233009832709646413324725099323149020513102087068154701212793519869862953045593495867998127754052617717565035397593899161393110603217865207205008113946811883844860501295327588229711272572591885876819045599400643312088360360424224822931035770438153389684444691361696153020308190481930789686587751407611454754744414277244752375045768708212774725415570322405543904899012031553818490363264654990700251833358951884853367062427721367961790440570621856641557129595296233415020168346608593953646789650339317856463105717373460127168630857843249781563900161568407102741461233923635612411169511428037878602860377711747611010863452341228725675853280169776842688507500780413245747432968237579200092416678228698317199396109540838374666351561689606137721128575457232140967450168785711631512838091181524611361027222139068097762703060133959523649689520493054814379165636592635316453427818832271415910758343803479686591869865259880951806326293692878260922344700736649062376168125913221070356645666283061442896344123338678954058151488200937164074304469304312323196484159839474896005500775705880249516709083155159725241003487049200355695694468922464704154638784489863849079977032230094912341757868822256155055625853627256568128906843828994256245453521801290502468626121045757810220261650667516361369987750403587914946256428005255408817740860124637038886396187989697361471724940597757270210312685172970112936479676727673948838455015279886687494075547005884783832875276383451888114108684823998905053946776181379434185179220769692710484103370502455651884837596301880254484286144838155528591195243847354650130385175282251352049163373488442436706887835051484915568526952020253303134164856352450763806452354167526661149414632996667317730981366967929737846539172588946006335649998221740184921849698002025952978613444034058596624644570337160954647398925319752326115741708079394963021286882562990553754118881945805001802058197655554791833189479797477814219368296144578147907405253228179845282144886102105229419652238289547963144164273507354674249906263050637784360150639313188256756451048204010536306993466442872800924073363689922625669728901276250984746631909787528737244924709552525305692110131255832027276446346541779312619095300413405092356758426174309128379613040139389992807734206322807195542231647938607682535774207576153558284899448648439077896697912526453487509546330889901883388275025769165240446719051915321288754200009653858843792965535246864320531905939491033315090921312407613262087440513405781668644240021586975705057642913852284543672404672331041508342388541922660386621763116241823747820548782464658201313851242450219329963030223243019996878408011665947324170944720410914635017308107124353224136739046061398580258239890797200178725299565950699945833587110749474212509055969120559420264838686572406004491532982577388795103628219668012486771119650768842642345525086380665028339407772132411745671473089527126076883017926299793623709624390528107787120894779417740320106745947416072276049629594685328959968517032292513401336413994100530538684841447560357868310924879506165248791605940944291727222625703183047800484029694945001660262293264244314100776470095900146116661125413570875970236935620848932218054483706549283995711842724660168807527663033212559401612814239562159627564475539403301074450436799979539914124517351707865623221154926167317397429183390696567695524181402489484076306183223826261117821021449518174147889948955689092737678572826231842406366107653231761368932654122651627257825638481700635957485741725970828888791522569496885977696516765643270908366169998496064993591480337554873096719553020561472899420975234909332740115207319064362592681871486003470435965796886068161832760702841132372920369680498673019653969291300848327569426583487245516234987740780878627888467373229092843577282601497155669937170000560075251286049422060765282206284809301715279488129791838341148071691763702467157557021553000253028737578518255993953368002146157389651783296718314418450395563743134721131661593621969777889557452897732700998757818409222862270582100577465641686697503667527871660728489655869793476871916208112803678800915517131252267562392311137534167906331139871627328528748192539573041196709267765758136395951934968801168062381133892511955509546967616872500245444483049230983975520586010825695952858741380713686080244361324254790226109582987910106716156557044104866496937170709953603239653574135822211107998475142863088121876961175115681709725459926390739750985537545868245304928819026848205872825025595123290318667236459408848667303125529638911435980284300839662115918649173039740037515290270532140776364974864573609962952206315897278590946028236100815340979874230749930750268605212763447650195932975836778010017392012511806484517557495267364104428754583704982295685746568361429447747871702689276956140768980448830845899151895980831958196228015959626678063704305799373031585227493830500723706542028394275445905143393417647182719853952987695278695585030439414950355357443561296562952146183202041314151975278015528377878416496582271320169112934897495773133938649353542514876645546498350657817424839924781206561201041005481059587859650769089173879240957145039395661373745115609804388770118440101563081144113311003579910473119758336844326823405115565678690432565714678459319732220421587207870049301733194367061269750349914218003337629762332629531624655965612515155982659901008633096667995774485607062313575175708093467297575286020176740536333510577068076265936991565194509978113554007142472019206322011424250356355867317397663579690582873826040446557972311931982115868276848436656015736976739316599681467794818186759992255975126630774975925452406867321813594826753848809462425377243053633731042420401294362180845113586189855922352016879238119333720632087984377874687537021640906411875733574458805749038772122855217313246337652306012871088857758336597087073885736441246096391211330510388301237321275849420908773518662839750114795490317845093569353936090853243145766000059149810063720751350489297901404421300912650704615563997577969335554564734723765082731056498927663808562248187374804726631362283081348186832279151071612660967493780683368488135222167477852880331767988384812146812484979607086414705452467202629351667997527339604505822003578613491214513365530575342944330076202974408751341497512745071034466226069689464197815865855830254218080898308380834659325485555749889474461872466758931337207757177294604142081110645057077169037991123093125770965172911034894951919626664164597480388649303204129256372300616366852253080009517324109790223149047786882015560547997909355406923543750930341971298245149772876146860376652550562277788844061795634997801327044120772821621673106087620158545143923305011138619434990502838724610290036455614170038697253944768929415631625210651638621022741458102421713849972753203878658086769212410778512670529472617448771302283152235122130280467461328811849346722890371804102106234731987872027710557336378886632646165470576536224737317360888262224907518431696657660911605687195413416273223944751960851705190108409394497691894000481491620920691542383101274785627969731288442637309241304239851286748621644285477833448379282595496038635094097588699267089642110849927381577766582448960893772275411255878311341162560690886964101962071057513768621396802234135895599088658113700113111487753899409175112296347887605844510670064981286234052976500279527281606148584210549332662722970915502237418852273550813832796412445224213328840319040736921075980176721709269869819045940038820299452626853153186135205003952140079311851764616425229953843907293478102802739662670038914211435446339491425747216460076220378707510568056593561180117014033087303705494397344200991880217503528434974777084287891260302404527182129974700303426291814964633945163269207932417031591966324621214854116247138124780251086775113672506087873091130130979841800669277466682633091522402445367617184433362321732266291533131314332556649350773851290560339321654871671323423112015016574127231094372945197710999541145491422437702480475983445413708126192212118868655675767667673972597085123942871414992412833856767996088476410269143009130786237578330653032509348658735727168115334581168755049035193554145717154631513870524852802737721749163565140343893233711096409482879244442273264430726405686132846998218235649936200691102746269917089130997301111410617242862904367288124263960223147025453748895227635975652562900081406932363301016167555281125841615610648525139004792839484318615795050449741679215690434309711886998219238285538765182380613946326622104400875713797629396147031126276007625923542824429499937026559373423340031601327806373572419708385965095153166635027230237070238344968518351276213760691834857064436381595121328090723209490292990796340037825330645762662220948354965207243490336454577315225325996884672568904324281414394149303803276989052032395097263966352857216800858655936997438218194749013122624166487636688447114942136948028822742352521814698911630669125231717833552845833175174311319094294852826731183918767159217427694330552101590861930576325466616583891759781649704500310089585957945669407779968799547449683102199425686161258884308221494842169051441159378769315270323721946480165096734183609617089040884745343165658632025233033729009273031818573494915510144343573052866297533586611669126599270016631089039543304090238006848200748050362113632097765772387505390225106320979901687609389389731090139135317682804211013419405561073431470857224358680808541532075378753808746302153187694249365388784769279782173940359546271644069619919628827184023641748197078929667619419354421268171248209944906844114375564656099599400712465761145156510300983301848384671523954241245158470484223663874737784436792130259007236733596949801298445469202285318948492419521043750374099371685936621035972505690341730679084897758798718667718321455787822453630950073419919226718535199533899319658620004676447306639809286402015924234356600453251137897164144821043386549141313849204187745465338635733943574794406836295590945616501153157540872962313627174445266243504882390923245108872313820262859861021643820158826737412778969240842398328630776230673901622435712415474786656446385431032271830998624378855681412663871800725452938596969301187351897813636647640243363821922977224977853681494344024796314521131403453923676855950632319121717021597154399542573311774529270745841341696979930175655073476646515139886881357329484328294513495890418402619644940372404651451766456514364002468558353541406767275938815698002066138312707304467546521003333655304951692938947479946888958809670255767524192068552932511920743863597213840489986721904649472020281902728343598812189441902943542087644725945728750711027981613379682478803614654639269823295417986126854713223323969170653149785502046872341201288103289636323910283067301811837711394098459666409343192380943170359262952717431178428977978769690087822376030124170342944232132006692323372194592186938873838519457589875473020390909891913004451358922763908608599371798492571549440803994439484372495169409436557988634101654517949586819415951657893345574499370629449595313606448236986608313295107863290587478744061165789139974986213156336877396830908192222382651203825711140289630951207338216790966617550415111745759311319174713495184012468584286635256169403960708330946328872643180043507797272320268653059410579047569237587166635022652385627645482224255034862874996426226885391325921090891469299440196723140507742041529252825329426516532665202351156534012029260431716879968590995798555568077065767707288276303770505130406022410134011467821172098947642582741895039433366781079018552378010722465694551825271761295024772432074322650310476970702405921065219106079384280241958294125743809655363399193900882086767357728208136592128082635970849713434731353576182384570821570717114517748659185971765697881374319859316189214911638659565014924581584726178861554779433141949042636409883947437279308491980205712926132471462477126621076290618745638947030290807182057518038939226564407422012587726516781130289197508188885045642946265677232126299904281845806341000947825837032681711482908897063189184017171812342658424318259292727262536972133060633542418767374894975309700456267879735499537188731124086667600468976135561482103782376796514976489627523261610053543009668129730492747396906038491718682069015189927994623860122883613971131104936356489535783699600271229692231550792917688416049113953616774804864434042141032934542271691749184102093971309496907018456890032572080222352175395551333759456341198197057404184113623670307940742108376560416164561503899130568320876600479013053101841675919106808854725010778629671447843472545617767607185834243691905901876071806205115734580086210222121675894512006338325915733360001883105049468584149172930966186155082415125846143188823676222693389429153187725849609640065282252356649508035235447138922755513348210894762658609071046954581867440060055506304863604094480678301898960758186033774202017237989978743138115925183709362678887394033339026745911064523422812329424829560081885267090338933101871152315272002280436566491265472375293415386407906799471355927344111706791012369706169379712650876506517206184705674737192085432626113501675885790024938725319407784443708951067937958578553489299909878618820737168812125234789497421871761009480370007769515559696143353504665153443986783408543935960546216023011172935641758543503514333204785520676011880667357854308227204686420195397352855179862118822675399562818621949434407808281548706011416393185935971340236303612190412159132839242102171986328537292369547434800299914803623451799489430049562757759037882772298046043680410452869675378136927086488128031600585880351509853298137470070556925140762334090819803363999634762249720232772640616227318587704080350525492117798541682094546489246236413041857887589829688924588869652081272467399153681270360449111284348820388860760692020229522634061126194436068855731840872614776087041715160044743045037360651857293095002169732031192958393721897659789593317369205817711252961810895189139749396899451343328980084659026955672563075410939427722768183714401762765071479524087963780845334117176042604394784268721277587491557015557539417482994091364626543447354488308595683673691687566248010148606779918535136166454380497605041120808154054119238972507802374616795949653694104736399586525544720943132044271278596595442261514536844191864933877181914256167365536583694794683794574411222776055604010885273635258598831507537462178309061034162498250390827627356353024441782848685883008579850301468844620866882993050579510465375310239132723186470893648284039885052179481005688431295118168971865907176057795690299028406799649673558138149048914116687437221726609976608625005558220068424507610974939404794500736714187345589695238429527985972831406410896690468502749313191525967368547971225538811320749332028307488529014623309219757357556799173134327570517658616598631206615046754282715510434633788117600554415359031801507162030079575272545853643615129131251127911177435319329803969116312531839561449507989714365866273489646226789092610545197156161164426871278799236871905246466674329107055139519197383511627005859337407752566163538498298041388155172018177192431583752838511131280096140480440580104356131173733225526220758870036865979942337291035074901047562039032239174400955193513108496839477074241719215222681450077625315954602778387643222142468424566239440801756149184467577466050146839382005889881348686970153423792800482240440205085770352941757862162690221015100310132907202228120283311575549225387118417296588414538622837764116415527886133431241142936657881657644032860993565513826919910437359528854164396745105113777020496148122832295958270614026343933726564477493519193493826657528656790229500514000225224269414901952969066517121779457390833645725204315314450921968023700843896427036945153619041656198704382092866438377317871896580198009666165621920740614775744511039585476119467036572402933735480905924931291334144008085343861567009245560260525967720159615685548124266300999329654129586630946763957818535351250348142779530441416387689662170734112269863007304737817900181387437127453434070797229765865486763382463209514661743894911304143806712193767307538241260218678284830890878505414728944189364462097858218170432877134749454891937686824179867662861686668612418641268173748941695845813807987464786557786160008728540061968657966542136064640286799868056816619945837373381342241295920017764088317262622994912154659222233665425073354034352439684603903313398740723327589570426587316858956971602047007583946106522246103989595528547981894870811301256288174746419336406955323157759855553611290582687063035707729267998303310885194524840613871841410401861693729598330343620750050564286775075057635336052074018832826971453181824715548568476128463572492257371808610478683382693171287019674974642439990590933280573903289418401489057144414753003726504236144417176940037686668464583673922345705254084906264433216738101899868169199199606219953306845509753870672464782211336793553951574225275925739274085249895219941522159367391533371137743169987562911186398525628003408204180990943523203561517167274396812388859331098306916171695401653817919598480359138099879281498928261485097504410136778176697414899266540842618209764803728855462809880155606139485969162730063178640254930248344099454320386052462360058319060752668777917161866467144870518811519033364582757153453533095204345206739534732105814131501185227270399717257872411144653085710723598917228784483959003784063359636778775360115809594737436942535261363234587471640323581109983025951880465733067179364382152428327573800455222772672535023934006582757526408340118833080573760711335753269079134530650455304710205260919793030140785293537544923360808556312119247736327735547690953049805369728674162433069933568263183897763939205069792979757348687920135394566424668145633372248903128839973590707833396587984724941054556295022188550294386600277468857993552307626008932689608437353163776615153675777784416164818639779871640073662730139900162697499779921987738294144901965322500164698656535457271758045134907151275775870415681089284824514761114242451767289119825286104742189415983575022763007417038994620636883015598242465660022676404291549318334258683301017880675024208738443571570186572383831001559955778633226047543846342134916066541596548017985432243716476081803890013319240421000560344612773301167604407849340810488792207544202060907577802576355443562746727922670475129169139769397285787031664435400707899590319383262629698628233928849822202119145507378974985553516887756653943273664940701963498842419433498157860763335964065470111555731856674776344196357968888851334833624665297984104380610072802293199775497949549590197635008179640253289587562230976555000168937524756196753678621568462531193215640356593645057249617746304826454724086430984883998338792096799251566297598029092555593805067649357409030003851362809841038367795773696232200200535146358607192665502948670271879094065838365778990751049529251096954160163926305384444532129612455473649369891803547031714986585591583313416836506027096179474257798810646234484886537484630048179630244420624682761976848295334264747653116842045534407371215709717719783474244505433724056841606604310686030277547712274122280203137331361236326352998241397258448009791744457435824736379945098049896422231704385196576989829259332079451884583122971461213361455752319460327279420360300315198680266206918175580601107107802191096842356854674677114250093691243017303923251493294505018921674122483009634079519301747780894231459392578316451401293422597642112777880477718680241809082390856406844130341802013410843182795940465169939206507951940102439778688224038878615407883306815448350956329627124493682300585453564606872398183581261296316608402724458325774523645755626758470377003509831807679470823744253099341848914999850984385540187981211421114071247544131656156236349029477815387377103323780361741541850539013518898748543491014509335768368826599382720474569809274273764181693976127019432159471590482812997329134940552584460410791772799270708521751627169524732950682777723814901259849779231229764390996809247256847241037209562370832599474695926775580924573171469917461825474064724118965900470668603247994882402487524886030026894002447430830381816484994814641214343091295808713824203232330667403514555802610752385598879331157717734144894683084496455631210516998824067828287857359219720301575549889717724156870260146797886532157841241748966783220183490760691789049998667428581729281051163543681369369868376310996159882325850461438330794640314188368961460391104866891183250578685400816667129447953422092369532149648812945167513402134474958426227283853621608259696911957476074365360984783183066495026989114098281638415165966085259222622919513934907621020747536543363172578186345603560845944054783377102228304256859410340213784777106296672669403125369653186282745344285554083867554218599044782509408342500382035566510033671058912912408394310009151184688224579625817284330718603516760255148391862568477219430724226829504944775391387029591003430722128003639342606212229593906035902450436416784479264378257317893176581911484852275548174522639296956697563237798070460457813923970623763661720504392340329512900709595339541977290670544044536653472559261099185502842063010326332624718975666760245261585198540899357262589155333864291467381261691802833815485953923605907482738901423793036279005198117732409210250464162966101801031201668983417910792223667467628993217719090950816173665899513411569458983329966758683665595951976447001242896894494987800355929223094932088541968039875869263955021323418108809753667846987003500996137292718977526731611211177989789212138570621007933220120918523336037859038868578975168505940862220526728215337824828520523358740816285609825085819710080392014090986461093117681425414123582141741421465311932002361107524236610745403637792615271803644593110205441329639972088036818423024976214303984269018389717595655637027242648761187673372539616032872519723235594446209443623253132463173306543809070483723232588796999494619717164672438380367412927027267677431568894463937664140749409602112547763573302971163208401098579215665884521575264175151619953910194161184969080957429222913536783897388072838459687412078062471151359312463928287429077430887780771042187895930228492368134807742206507564991618955958870626700916868322991190035935528562989647613793094168974146211705058289629683536624930089732325736784600395700749288744696127990415938746019431378270133924839803727040974847395098907336889899152030859852574698172024897450643421446439613383091291451731437043256779151122129420271521810563050622252416233543464925485913275636530820039376998401848878499905620377347852855225981471280203240643946558906064566670633173514792417694136425675226098621111247774425583108115165586743660655707077600210527822253338887873861773320569021233692357891618490747755077726842314989404953761151240508345590251391047189818438346707758991753662685953706364295621459866258625765562742893674076042855303936952479610535681051742566897929452221211514831621794782243830233795068541187612619246067444641094669637212858413251618151472279275024772840611087583117614079518852184701236606774219457848494294626319300390031255743812103618972499694705684236548596854436207725453488990392713677322274180026700524096094029645997570972539822867804927363030879982709509401652067041500288382737166027993529966323162694355414508215884527031614729421763705473237674888400760097099542285294615835616675734677143909632916369906079084041386435657067906582876776573084050598878631852523652889246494049828974023541422512607854470963569242431031488814142076484156077340920808701551323126281125593012586549831175401824466107108578800724378444375423870024053708466823705704097539058270886769165691797609342311679386941370679586992944825543497966871490232864992382222725209757559531466739758642121639940225545664220583185117446161852894333735735210859979702578233291230263240468182635620294242899245076096938236439253822583260330847903177803888040433844094189834985225028704885551532405852361050569362102740771959963705285926916542271197681685233363110273767329989175432236725454579915214741965162350202881302129902018007828690005986707287785773084798999682685962675635970014488059550916742657817677515144093620787664323077190442086949055950676459984299036856608350334048184284081358380762790770752371425249176299456220769083176152418165010382760172427033199471400777840979140687974934321282527346976821451218450078777485574718653461657604185529439055912240780186219041735105468647900957053658962981573623094566252440234162731510041625579693267903269379802284207220996139110470036925774484783623015233041771197443417896439682986448128253618814787657414084360681619000162753426479557245405049625779971934820982600267735069635566697704988710251887921881168127782892779148730686747917501584454721001401510573818538729698858709850712362999661919038811747465727711197736947262393210846392307588581417108582422860595069642845442374297035930589783266857289518116486076722737115994332264695093755028693838822921964405810285452608251817898497519216698771062945432053413058792726720153909271838467683971272571421363481321029997601405855148537093131281973192696296687143810674857880322528342668842268303089055231904221151949155519568879680664222698061290917036816387940201934958394588048930647105774878135464199381755174308112800217378551423049232032826983901280282458685135689098308913861353517355906173811782589950736338546281986461770186571104626457087339512297687465889831338561567691752653574487702723940708473022015442863213724430179864783024495949189727747512277853265049177218007519700063039879027467677027261616803197955972477155524494677329912989780984073165297606058891476256265548198954849218525420124704500539067489030884277420664762567772102281167729385577611018746079830261964616983013769321607638548803294814229225974867729647083462792866879545743440483834571403947314133160168676342955560712718077238363879224484853563923750521283285514902080543516910131821677888904455489191762139572354468088598546802979390494960886158717307317214197991187736299554277230501246423988998243935350114779423576388900419087383608612956959519732199963881151567861469724592377189115179488059253895537135232836407043589004657010148071367618389099242139819966767483633385121331944361658631378161174671429037320489607464576357786684195933447165688591572402618122834804231227568671199827813433151087204599437799100225493627151848252932331483641703303412130387416194142645198131334535030052101133074847828603248309358377780399945047596633932074791868689254806903446858153054736994939363204844830971056080176037548647239705845570379435399369306389472855201195988092252565284950237089509738762151491708339905514080123382008643907661881788281946348465825773873111284195933579966232810652374254203860507816752816102027945587421120638380746020772970180910035088104273733795421424467548990482177546826476426767225801027823571527468883287121111632723807141833160927151850197519829310446677380510037153956961469694817857994563402347807266042076087632464614612226249812906806733274607146286338680587293778540174112853669475563164079024424461347538322203995851291281884978985909472111210957409435409026391562924500582529175247409067979192110775251506181416710639384361182321948455242720538753949977933666812155635417904260054899991826157114918699993353180247132477942215633025991236737828720882176913272179758494722937091176776738678097786665709762842015109105988293158266176128774712527471696102087162200286460060371970395441920869589716919011197162037583934077901201717340293241523475664429046201001417012761664323638541700950697106865072527444149413037682532840334467760373957761421407033111589919720291698411028978450598526324900248304695426774373316346156275387904143612409957556847843618033867567598055863598253467379615420267025660929694421320285861882812267126426783719270924967019673591142819786700848913135539029644074985809948458911232315056684537474666906437451054073550849390977493135248141106915228928625835858280896858536693600945505195763470454391894325812001446674768436733696470069085313400911910605766656195401517231560523644310381872171252764012655672874371446714763051973702571519607478974141997909940468521897711873133425775026298221782540289985208317583610260642950334689607965789640386179380129747498495152900544936236229504726249896089626208996886055135195717341130259784160410675025835770465477196065492346830574739537100633561207174766603105406565989542398825261787862985220129790257585348953373698159223510126368629706863365862146795916156229999318049091876656203764505104265749256051187627755241971493971064265512531982825089094315925493014138368559931284807565037693299624201340658827990012536269087716692656489138734878776159506104492644529706401013298601106563630288394769295550677925945597917646475128799994653647209991338585020768278160405992112970925733865067066843022198934096498641581409929937679497332090939972356264354180622234112361645532141885965859614755506542006743996771739670862664272964564620776497126684700816522288782990546492169638838130313912644197756336709675243469115232246717534911676629976815654265826601757317672348433119332095331619501824587827676762770380693098907368329278129740773118379505226766341274546376383622245816559528574216793356510268722823588752260844033683694301606274120322360346192952129834735358230323131020231970543202986748155457275757285529636518103181714438867103141410169929576518107927229008589944805104150194998517933406398488350619814591553404218072924878595351035685196778728262380426128917899172110415313440023074508618963197006113936602520215686370898807922107613157169471455275801477002244982424526882804112533075308031793763912351955422513679470616126925624441914544154376471591740488322684632728129788182635164929487755005754794928908972276316982649428641171427760200329615903610635153541262825757388379582461727960236494361417370576569967227234708960527743709660542188871235481663835740426835422028056772532189553043049194864283698585018645707385254304553763773473634753052737153642011083448674883618444784159546805790373042855415564031632416329890797993415194623370048015964847649187986574401096235215589650802734999482412353229301737309578903719391058357330762102015395337786459348117281634644983869680239419600709540523964098584670201269667395206710978159138966832526232155426483906665166878983414885183617415149708023620712843607138261580520829430423592649055418875902975417518846582592053291386262329024581623164827167843486635650024907652795729124398806072393132721948419595313769357900477940994402794465560534866449780491913029409545083672676778349700489161313764873418663016873915978068603421142810076959727526631097442609778121597616505119870086651360010686335615768332119616781415076842780546496364197905243395211675142373923893744425150206239105087279142679229470571937276240294545149642370746874854090972890818689638977457000737851439722239903727630721254942247211423873140035977715870761774886378597417609545912089243068399871547919143752211529382791915003314368448530181890178481282254169432225139315039747154903523110528304446237847291273033213852790808671920583781909376474415492509560849153642384625669585132822915047480825394718150123076348448957318528911352550391976756362385293791586084820048048177959424618347935398587155390524150741401845071013956959801236326921523502784790019731714014794374098774083963996239370797369808426085148329074156177399275897784010756305362029757611669146853763764491722199444121933846067223305104203746099814385869007563186357429351438991330849616478973981466569083604636194343167877620405538338484318056413985481059908418469800940478254889074510428852702324450485431895767884591150262596451757611273981046439963886389135339852912346980124353999664052866661134695822478400104955761451096090798323604302652781839079544635280944542518705365986511404963591848311809702027369368112215325434986208820569907260505919439922715733272212003373547100568409279110223867859219975962353118740529023722230258104743065818375046308540684931611553979510832177493123449866352717832969195207701065507162928754681882198310210495795717895857331762196473384137176781473354186775131409512597409138109828425444928632478449758313917694675110260001219188185760654327838971834191469064804128176772639339385097188920103296017548764235925312168215676902388965756377881077186891114003944098176031590490530538918870903736407794176690219032940426338087140221609127922378326953727940967049910470489466263136401866914957797027295331266754135514317569602207305645525840520463731269413292408311156201086277555329046318792636642676623173705306882621420734074526593848101460738772086118941663912144703648364111524072861524686726917507414671316515369967490500914387238700569154284020078733179068962604938113158746638698281208938391544221392355309413696000981761701640775631050037682189830973069718944059050642542528485557828556828924698288510591619663611854219788466949891508266162692363950385347806329961920754780172138162818399921420545236257991582118695036989203992406141479092624399906286294336392026907692498299932947675039819387360436055562689130648106967011727057465987015056452547289281474335983169521974294912193986694973177480738606737103350389369373525466105427157722016939127027309466379689198351649770114604206446529752845935978476475999194589170009828391095461300777992492974680769688086583585955637540387570022775115873057764466944759759260335481926806015268874063280601858777975216937871577222331698345470895956265079480773119659759077923348561861357328659957154000469091260002461984343888531553633686053179128960378439569165705886958984919685516999988446141051204994302504073577064608878488097854248408776865376882959911271704249071097565757648939853233410048734715727327827586393616252343071797391951146817464068852298597513871043826116150491028171668202985320229249906617810292781804035318709939570679170684201581480088683817778885359422572806336222058813482611503891744615951753089162864885190262842235437072537878179497808895768010572913030256064225591743007583196988458303931068830266480837484801980446854538608449613849894839082425367843193975304787316597957573180478490524287668023363765044939190427895375428664523906450862555270602942688109770148007360543424078716215221230892302261858259701844668880198041236577852668933695395698173970607784569542299266550901044511318054612705880326103945696671054652764190752453864374555930397638829155241789652339471019403112712821362480885587958130624947350525102902717322924449325464861393110782947266480048994268043710619956600630765720233256762307463656757217247984275041852317880190799572560070014523038972862122500675909648707326973121157191384690814347576210204435163598450843460669095861170483157694041339132036404972926803057699388131408914783954103429774606893310693544935868286594683479891386516189685108766206561753379953752951748165095081324155015903506613921477234094365540495884667177069769238402909615840287644361047026376941471857979989653022120840974009893644499296388706825564605655059208724334680137002335954398853976044981568602050297408000332186078961347817418426439315162341149065401981204991338328650331072148935310780760435327183206986160628060741529693240811281385531651946849479043434578894465070107133358957624318137070595939509450056033885967573958918744209144614747205927955715133395905400569652832509938195506536082358090169310778513629948919497687032826366027939461790043193164299202354655047797668787155436371168826381276522298229242128311576373853558748887542535247379682961686976670585435588937660808308556958361492195810130002588414413171160365630588038755684326253815418788858187601321761900915271122409787351704457620422448915462507857606483876919669409238635586830900629532061032904442470281991157038423703193960776744749733110017485379017212487188072834143915142224860745096654174426347834100791081016480142369945423338097218420959071500285888974773889816608973046645198473955558898127820278996891660177125976044168564442981297843809009407485744669855498495136131066222605182052495545549614091563264200274535210651888180727885877094940825807786197818306327690197784781322485495150949647609272248927081563434102179412327656344670639028578254943154510026268014593657830802904475242938732295322301044533212085112882152899247056323608954357560122180178771349496581003037738818591714737110884227099641074875529370230800277046054335073057124491046150222818463310892672088770132861747994624440143538319140295077673348434457203585469589591416201092998425390081727435624716102284734309488630489299688021720589036028389256609934315172280058668743150406276532004374398275580565898162179227831208344798121744198708328596397465811525152599122669944577433262240809103885118265273426232796220670566563233294706082514388320606752941177060506127307163329953818181733420115816577694376283853796734349362287289908397708756264730350778563680417620498988858598609054547064761877982702980436706880217502252878630247782059898225896112482987526178710567633909827124118595956127847369640344875270440482734030428375701892755421399573195574078760181917756658225012695030164848235477008829417210739378462724267607880655996941953752135211591377390579703850653210193324544637444812273875883680874706099688205726570766923479803523272947746108807445389454351085771840990666658485308652645391577867903492745599701191100342323762380596941761382124977390647649319298878672296470532182219494250406444264411517099073539113898062816079336835925553330676668643983806193598567391222550745926108932401570665245858081112830318611690655230496203213870057157880484698852052404497112771236224482695085670337419681961253493847894754155985184193466155102027940998166634018345976614304473161987902511138759661575941162382727208456573708523672766566174401471180879683353792288926720398278175437873916143699572400327834157623259339657580951515397406199325368078563111229816658095485661771328161528311814175677931000313467965646810101160939192483544848506897704189555829501899912546058600275670374967395762661864514793959802378057017966678032807147157657132082368263276966726999339116723200495003202950248327057177700048485335087704555941289199074809543368544180365877669437777607231259392168453187694758966564551369173469791365298622766052394023002965180359695649106858744232134895067754765087020693207021156692549436109625384591605787152433487921368579174082425828608671900236026282535920695698393108703181468687116715186895844682760715014638065746644075318997388222884900169277100756515932159205144739383450098263239723395532764521666135787138112588892906637746378762960464612898206370445504064288452344167293737717114658510549831894399305894504890199836046009578380581228626956142964833900554762453235435693094964839247947502026424537419324586188982258869052668529500857992473046892796689232239153599365454365782300725310887860971464741413548487876125027193005187037572793802158529089669224995920533315195037027287314495760725669028572835479605043070446745088867221552443294313670422450694062562767576293451960905924353653382254152785120293501636083575504590671673844969703525331446917841925305697271079963284471556452422195292238920165549730775523794070067167707856344676594370105094711901351526711556897180702256834290172997298464728729744525406040023510917213042845164694070194312710308341292400937215200660499273412910081243994122631674554692920316968983442813982358024895835483264286035354256327320146183374856548959010377588402204092890300892122282401652525392690626856548394549680473578294434169985933100356500449485808504174063886567782532474549170255921571246369045918458155832438522023370065979712322500105781796863099232659274634042606564909647748741914556437021986014301619269058976918713815747079233253590017561896821461934996824248950389991703198418772414488516331480199480614400698046423095536343050813511780878629301874829747502014852535524173621784303513518213852872901442864206616238239907445149317114954324864091233413176183886423600394042549620537834569230949638078766265676577851186022712547681872178094915460043775767709739301525003700491570393399123267137878497996821564953832152245271718783415844661081825426570064034570826674601911053554984507213544312795206029426398745902175327174359277427454302549752644844685163228825625917333026296055082393253721920574691427742446904534097875892281443931098738375933586543225973222704557369245434430354395944924139902226172191061885781078133356313396580163962952827279893644849501663271112329778748223402691479890987286702274299218020704942139178567770947579304262221441639286590121986769435795646387412013738542652843806944672525207671780481798578374276882878009792899106347730453681582544843599336527477772738070914273574972356420399867955865065444382423306714515830776849036381550661573336036465281892924356815914569819105536991700669828769280310987360822162465718937399942530656686585907540138154923730512379055472409478129299335164283449017333179282715166946998026330734183500817773107910715266696091556956897387800855989878755194689929896966801373819116725333324529028711810397404593187236985180147720769369814427366058022983056593400063990422669895255433629908014867013832946785739495327729091825098386212705902096068020852261834839530521877934725547001271087171948617942500106006050863608488552508290050697208886883969309387087556245274279108243989110335318107144939070745210606254471345054719902091951177385998982378605741396374246282026021237212775274727782314058601382202108185315946047521873742192400484952275733307452165317921081981826767934007573452941690765435655666125769397675764744221768451620615674725715277609868092317918380037318818313138267746516923233612972327067435752885091043717421706405775393979187580931422607733221368351857031963803290925215594799912813991878203847757132158524977082443852824995950766055692410699765587703951503735606865248609669582849254444086654548608382824159413692020494945720586764818877069020581760484224743184386802490742103954464298967158652177769745263827489162752387577881859327974411643534824883303080343623663534323535414867820053717900942156418714808222310661410648541972946581398699464398638412629614127154214906053143460580241919726625935231370471526977755502495167812117971195917352374037947333314682393389304389273722000122435426398603067997825292472047450165567330543573907413774705727619839984290075814681307473229324188207026570882915154252894432788342089297826918871041239630459034154539087972191518975009647856422267940410633969805076304892090051577483629983313695498371852828561135055209598380967622773040628860126186338964195988591118922162818988988567792642032372446791722554326232609895705584190600692516579869574097517112057069584612059411752355250577922345916326716903134825298302142252527109184886477603856701106774846799748210471333479876016524887816010312523143811164216355777226090108437421503821640196358653801758596933401920055420490802720926742084791077732034430679999403121161509084000339254299153466614206984834006680360456643054141957072598726342152014672251302267224844192174857144082421382620702012839168074489497366136231943328823584613628121934468593387440814031138996095024781571794512402164304870363159410732025001748879954198984606996323552547995018023084073662688145455485619743492649794302050338356850673699470731404394011792578418286231728966038170958613304065007415044853512290285673229821754088508235094531496124571467353337353641088581161964736799557031125468003664422720143892344626452592625259954949213409508646623010627556964272863566409218245010372842696933447903927622712776813215606412220521505037341150914623799713186261479854631330408699431758288681950936890048263667324365219471869815681181726020278579955529008398674209475625675285678178545719885041211147312792020780639651959060287616585151680732593484681925743218802597341519566726413015621290087762631911869097015896973743279734396599457809876644952593505511549053334611582773080031833078152592951899777226681682949751432493586442919879519069818605916431496527873137056708096035779384911324903898250094181157368797880781775821828844972385035064770023246723381491051644640439271080038500742617684119508951829964030459195708382569779087527771425572228812070110028904485503586053757237293513877452331868604864196111252011053073516771072903236977032487650185544098439498839720286787211780731151960935956927323640469123366647439166659851646730828966639943720978247284189662680350073285856774272037204401252777283939211120249064736876903920676432796932645152401180493592062440332776934108841740564793699815500601975103523188548420103437809042435463886896550469272659532554169508827252544420416585257756595395459739713165023249693965847821235926389277293532368235745824162726772627067309180582221117313318395989082978514737291685345519348833400295602046195796480807741772280595940563953004429827688904236469803800892756874893042419927479664034044416999353912191746263206974509110303143737247883857128941784560325571418062952804384203717024913324679489048222230851272785501328875714071720005417593042497058229700677206873283241413531589058038463982876108911065140193726430079223467721704474082599619180758361711809293627508033707085351002077433140241843157245831954670527389772929356275177225101788407689862926135425242212676989224010194462238796703264379469680026197007319748316796800947939200000524209185950850101346943172153269016268954482624455251859695279231753414310207906347796189743160567613290267345081633935843363561533393004821572835509868176803103215390967244944453776659914419529694792605878184157471737760159841465062770612443787910220321463407528544055791139589453571647660575100614905042232561132601567479469619507643421693561049388642397103543690484978020860207257849277083879455950437496277908190235188865022465320951696549028287744700630760320350638698159093662082989675764915060412795840129170343226326311861570656636510313756850171167660108966642103451760419319851454178820579163672208835902010304851065516497610675697272602719689494282755380607211983357310809074268627532326667881428299476894051449921576628402624481905735185162108279275274772084274577028686694702684594786024246227190849928218235890201111168048739381455963727547639666455579001777441049744805611996185965950542942734445409620212105137849648575764738221631405052041386835558060153970358976099761527700480542670568618655806861714309688580171663444056486498843529617720356716308939743727295135115028942204188542654733006827709954436510546925964908249857020744759274877985508109254306315447139298627780144282084689063131408237023535481917437045981631966081596799119260810644708822168761285104156074970211364365914071469114414850437374969494002875927976214688649795125856170257719399944108466594638616788307887351855041892892004641915584102219790272488716361030542967219011797653318883553628505135359215491277517150010564579249038328125272581619984670668393016528460883199469017775782451759005532833516027665400312484454757735817452161160078048940741805078355014484411629073529615446823829072200562315464625756304231438211952518892243779399072246396313307025999076734199086444324935607442869646822064417471233340854630912612130483058513633123411760705029326555499416329586616495210842003514529825755319224426268766484238365821576439171237059182519897479251220360898937180228424532394081859109118021215611863840247538151069526925124046665686215977508121372415026568716832465555646677343367728250895726931836729176629201928397277056845673944906376719874868700230155186974372916241066324564751206360964045974215853741412083734890288950279976699488732093712162618041353477947445592719158349503413689982066805412114043846975453812617609001088872663083954397650787358892680279461770837447848207541560208141831727773444281023370582177792607819553435656131470020882906847033443379934774720070839831252016756397727320963454787766475185856346370276974069310365681080631272814584469663025558605532720510571321308181948051384656940072550466310064719541499648314785085564064731594767151205920413711277384266069149877708056302412349958147114141854514218446948448428664013147143151299851068771951426671106217204130471548449273062332975855701331528247271917556609923263839168657836330250085136611481383113897786566154759012212639707207199208346570126887309047771195040657909949249528770027214058110682567240168483088919773674658403422988827743341478407966325244676426486358819985245072260573572891005009793943678093884849389901582459752880852956281946846981744171190064293594428293016020106258734924954067061694387805968557329910090808454541956828049754877168006441286387699339123194559814103548368611775560115295794440003439733651891183513502307958114070858651297640485287035570086806243638222755993079881831325609667802882632763035648288431317529017278596564319675982600748278130732714102323665070375961934484993164668450724643355938479598340792410193232896756861555790203583579459401661531073273021207478400406030610909424598742957440023235563702623839892153105818577294071690928016205111879877794163174281767900410074966752920338358708993966453157626745231550149115807396902758643555487433672014185161435637567098742413621544803902788812600559764066598893800542975292798970566891358731251658387072894345060815030199336686425606247772247442033578011580500292438164855880587079534167761126571033504007985681971053335342807231538671002715849456555668037253869089774782200497249243649533242508912157969335588691915945383242605464878551495644496177079998517671973658604571897619032353706054222395925380105387480430201458652102809283918648020612259797023120165444828291247660327545081258063762707909013883123876478091159781993434281867145872430821900308380820670350978127856114413429106283197636370425012117727004404445322166922096500975031647017953395411319202202586240522451589809555013714058648328537398699536535944552697887348423056279091009567849771146875201913364354593187376795025194008917183169823682098747283866064327657357274961838375254358852000323527802560100294888846420781426842188469892816619559834530236780748230431618363685692435795099311016306527197773594916274926410648745193922211355909006242493129027076178398503445660348040271333435724800049225370064509591739055880730046335224713148819900381008941344626067834341281734614901344783442011368490135609554419490502199561046107975591750889385110537147617155318435010617821941976898850812990962445104334013429175825427662073198696992526315533214074809996048124678740985019293345233835948635748991837316920966462169625073024288633766987922326152740371790728128209997385780044599711632055677330847201431863496152726728287113510694828181035424759100010686158196293090038239272432940707430967651093799962273216946161059966227348587821014317975670740730576730106096047221645233489357832044194415266358412137722024316413210090030576138602251017279172569034399108418216260804111506486585908643107793555624566168999261689467363380375934589810635778327323595743548616686051358393028920982616838698089391200808772508218228725084071287258901743883478607639526469174223950928351481670740413442912157837446442769849116840326834636178846961030121134993732176041466077308802704783527345453405678111771630949156860700531355854168840212183600801706221984076401298723141999236353624266455241741831676233298310712993410081320920767622602784276290520617638663708869738471678929942213530218700022331145995729764533615655948113060619949920976134335430289033465328689299233436205607309856643783566770975804954194880116595293182120171821780440838307563267912138022499344527258656203630085903663893326679091543771848640834800962501486800605505642919097856481271987099962371710260262289390710872177690993510783763286163370275369168469407306547993220816946488769149271641735083530440100548636775978406951533141365721354609824809073128902041254878716430563852638414104635956857870039988837086798607580713379825139350564046468457402336875904289994878013630604194492321713091217233583770927044151237322080890181261127366012826634048969279127829367391358520581211817714900674565935546092147654399670799774230330070406103606487803274685647386488464283610577843805874696789092398110267095143326354362048173239877580014434425767256047043032716219776419569956299837041282241861652518180651904952188063811823123347982677767367979224472067581479476546699445146140450196271463154627470031305286027168298255429384978084011789109223179878242738390922926625645566112575304833301142689077470736981727687017333368899517727537006548267383424475405956354799496484072279055512244984791860502479310898810217257485904772006353910466784625378596168377771312438607346887494241431063530306479696313990903597426154220479232168246262623650986723995891575368316396832297649951126189816500821020600819113281153834778137401019826644696923182025832256483394845023723360246408432284858829951132666544258636004747957843429910173041402655084544175205380005163228678278931085161002133187040769916962245242784032221164269299088880709697564520547815863957477780091743303106253343411962275986995832696664045970103894691270045407409979407298089281682486200582395415625645847024344070604718005442561278970326161205144068066125234570587672035387317867351503790744918829722529556670504318847651830191194060091005971710727146870937968197030817239169371488853247134709903581869729206353702842536644757600569506034898787869871623425502139608515051771224786771495833219769415519195077062679117626712066908841131399434319765173465605664472212283782166089138491394262644246925690413815762277794983171543566906104297834790391735724308106061739865976811596725719148410572438970015829361120545819429835527432411858205731241699519109294790196620074827047371269952471917399154173260909768489800421727922628123746171050372832903688115528860495149751416044364105025575791772647538138900827730663834752025198508694322993632521156020939863844388398868412808257384738572947843585604534156285661511052659698024590144356384015574306560643628076806147673814665735998408496657648438292426585785654091975533995810930240321098297954505140014033024990296265667893990982814128017286137527093636062232183016613754296687283922240562159827443303252556041190654881053598267898939529721237272534818023536894732695682571841019163496281382956832582746874452442696622865936638178614592933549758182927809488799983889665234283325293182669958743393044485648409757738280983828019741447422164329355060313252406358855451751778663360143347717237176577156287008755018031943972367589224320150021801651831106065035126346674158129095309227998652250996344533045103963396553745496573259337531598445877839282345961613144467187606401064344523705626590526262545739592313988139629882570266574889520371745328845467347454869433820933564685684779864843287131942518171945039120255958177960488922444093036370715957925098968671287366693859578747823452721637980291564699657412260677901751210464067246897620670908463093928164168387519621850784583313882137963403248916751649816230612993161232392351065964753164031392060484190822644941923978761262961088113258548835662716536178318026898106201055384867742492483298756620422533013332403239491894007333309776098138014470712858584115940841950202833689231814974496414832101293075833020619367361145065679983819083908167209280752726342353462285025926220416093909873912434794720010370698450323828961440190271311612155673080617687850555653578609037065345965230865238571080045122757495541780478599392644531565373303900472679785597181727745416247780213126504538190346970070549005166387040525081371335827952541734430997880809582222798968548133300889301275198947310396516242917430107698207583727699383723995909859277814427279927825378345989014522455734903927348804485189518660194613932219592077935653954411083782106841000664078719968579392118106574109857436897228085917288457841333669849000019910456065865167692917214929732431666409466708034954696035814952851739815994447793686100417914899552966463772690166309781349844933095272566110822542033834425141723450447154442106953882882722437839647908544681303986475118575020444351140132071466697031928976467834270958582378418167333869521486812989416106656668625908294906822506571896076516083560124553540633065615392505587434412519190960125626454402740915986917892033381020540363848997417379144187584278387758958468350188575666404410076330977981440681564780800371906139066533120585321658975410750751506971777034858654463644734657870041178030976083551190791320929224287244486878247338103523870881690192250980115650664002162756648943753628014113748613101558003160261374097723629375383979570552252949974282615575783030985806012298391358178630851245476389844027786572336358007745704098283175149279403991542818421590551242030608579192924726835707317594425806745576095520908413114424251787672612845491489764314624651724796499459652565539906166093946083948827714491109302481159592082208915929595290703883554009658492319266361610971379728426429087865857485731562399474586612621287907063104404302577603810495261690463460825005540978448713345005751624769093704217369510004871965583981530053451918285208561828642008914009701629312189016386874511651673203830088771859777988012128896220143471526636117265957863420835843054781490635749963129079247299173230297606627511162716530322386274667968568918978035501421835965460631255667159644036887730584695473370975476151637570437928549373650833580167937606007220873133324498307460214802315603027996056964336182341765921301933105865956512991649928990106592210682163360989764666217771795271353369289376162233230429411423660083145973156217476139126214253305760333106329856934379524671408912699226540064294279601474952175599304033102546492071659715884185355404161273281743062994369616277083653042804250372894994184669391135594918016613893941103387207095500359871904781150568628500243416650373193702493564672924513053944604187242118196455635250354999991600581584615218776048617775672503584076975617000849922875904486730121366074934407413943037879969117181847543055490155517345537519879446583169812352288827527905213820997668649338072793625080534205847702323060772411182376835771312846036490954189351474458707991519863237081219628371682069836977770720116407717911228486960089740145540400534746011649683504904389616968270681738509383835956342273502309759050465392452542993310404788111658595142463428294827049235931360343235329336982179231674497603009975158702280737597721287805613655860948276615573890724652855015311936607367665151292594556858767957630774097051474214190782705589727267135198441501146535525032185623626417424640755533139547625310759213677811269510161346684749879551308207868338949245315400230396018807932396826328840311482337360045836377785621111295623673885910165177719812404597507156849409732200854197215465489871781359169239090621424291256687946692259041291329245555079475467039615641273346282387216222231845212280295071406326684483823275052424792257379436993572207680928804791561226041053431873230908249856180290854957754275401576906026013257507553253255258997212132063890105562957032972763281315888875375368261289947091267688242727312902373440924229992230385581064942108468190131018525614730083204789260679075137739387427285025687523324539741176144620459812080216012412792571334739081532969650763978521429580778124069784088149387173669555709494643098713742253248794901679769039675263536932697775637680443661570346314634406052228033895473514098471627884659756783064962391065353067181510306884434402283822673261084111585556061697163550342222627250181371050346881456306526762972338298003829998510885416292543090044793904427384788898692832455454387327959702848110098104080818245022381057026387409871783452070781875797027751733296360793341168969646287722656490271808892705921869435346025960724139489075992380087753022856110241438296280708215239265406328531184729442672182879083040796277065077316794021654420813118840975799209866684304752461499903339682180719922198507298788552334962521892647113589498671980009059349104471665863184361631165405947259038695143891756273309563703110427207607204796712266427907368045188839025784454808569851106251783393485534336203288090539449040902764642694077595637809181680544854428108312869495808470958584277069446894139393990439534965680360312196521583455493344839481139627829016541797429476783141828669539820907310644071697729610534466462731245119321693051161041959511521368711932112158829879386035714530925679731627814323330537642896471864176423500068545553671730466422825323574177555858996158905453707005136320707190855086651570442889120446530484468228565959764419134702334856147167980672612328905183779753180335819790571428273580475843136177960296626761356048690756856064553735831984980101415840533958770276512508423272035358134573265434731164067547864813406372006711022738397930964527206096646771704350766548992111082956568174762535582121232369880570468228573540050841248171072136715132405409245670185589534493801220659566583584367640445518912101637964456246111244739887991004421479569886417481312344848165071567846777904460650173621213957343450354647872739148100332524146134498110046177030945945523384871313444451872877671616502163744403573388671757502846932547305805543098390464450211288114421090188074177122453462847010292447971799801788457707553665557824305873932973177759458400441279699227480729764888629877917153288735013305518342858088498398479426076492260019112371991435892441066749918748718690675328855975496065785149895206952397982970045905679120939537039586125794088770798824359365372760664579314498932977176221639213321352253364534238478541249465325883007238400301695328803815775229703150417101064251902816113428648336235985275935307027394026553282424799572182699157091149655827590285345398384868603079092049432307270170744977249314766542851740300384050211723336591414133069446362226477365268215159615477429923381573725963868882191975540348075432202419330853856417322028564452470284153696582334453695841038132460663058031034505009379102670415383038700006715021701758752939351440718679939653182883310451669139881157947213012553390523669203501696696933476126922091584195732740285498232876463425298393949869310250898182379861316263401682047269838140805280486145403672682431224761931135481397555117370709640284750606072731805012342396838689392006686946937102075113264208274124826921096826492599077686686174936536376909130807455723184596339137443372067357576679350029769947163708348628092672025085336815085664999299373658669958476758173498915411397961260603932578567848849524078385614777810967218327010458221602356806944762227518059690493503188237142356287763785737416640596401944442243587607556602903447796041941534101336800343840379777332868890066866202731308585853162652613535971887007214884300610701744202387948745429565871650087177629412717410232802672086384296554074087268876448744174630107261879128271430462500860240011578896482079676401801714293310614255519547031526168657017778312053730943752819539788518363495184933376256559967659172810936573695194319159755528453447188181148477787143710880650046372264812641110347000320336093130775485600543077576555814977496749252932070628340482131488376765790961608434421616067553703886143372522212987826154244562497520889713636938097741526101660461610850674732298446233953851690116441356195583684540071375011014569084738083000246428378283522729452937742559859788250732864972741960216363594459393083707083193763339099634021791693936996559816911502738195354392200555669084391358520108830704977913873779972435166118905050259730006556246009634710801481747444146933089857324671578547150929217031942351353969201094897563474194636126760044859803093672874513160710272851387760732334823517230053438762444852929247858720559437772516322732401000275758575016085969562632070515945486540215638317354023472219294895787759351086211268651939616788183370633375011600991031958634565446979660880388883018963436516677679440298480705275644968944708696132314727593164090529450147105853633662062198273271837523878495437208426863518681204852811497243783708396765753183502454878535934547652437940558039675147907849327401102598586894765142837827983441332307335086290153386042882304484105228178744994910693221891579597418795786168700429471848042847900993789741455634624932985133666639717115805164163255346739170180737188456634432908311216033496324710724472601990676077308713349703792533000849461835384242510879176458996779948628455921102240941087693503345505648348757671734226294570964282033862105753573786815212139450546924455288122446001732602098255447067191568129503331090803440787012767518701207403588675887891128659483584166224706891016589022803162485052517537852877127558960246314041586861423383472092307293778936777217584999514807047112345705231787008649980161086925331031619934883081820199887342574125932062650350104835609424603617497108051529419409792194862614395129785766378125337816379510548118918143117651464067617940504372949298552121873414741969231237748510873298134672530685320237973261797082168509424366503261763833358727337638325929333924594491073250963510071268146487293383231536903701906248264242846787370480141663909365420580553910461277607223270487728909078878503553833233281369492090528731372522426953083510825666634736155032861015147521997799783070298764260891442370227264370275702866619262186908881235004412564325611807334839810077394466558885364818433613238296586608681520402025563409817270467976893949113389682192911741899609856048082935976660360891993615964980846603205460704160567106067616799301865870712924240577994240742274966318874547300924826369945254893516001474893439014764941185463481694667028309514462616164243898522948923580301095960369598485357926442662258449641154644621490834745008368017527324733385797840725867291133077015694435165403668904082599738884734438319596326475788554079896731678604663423689235187823702375592394693331740743336624823437677920917770782365793107205358806073909254623160238689542777758796468315721613191692798764928101038963184573101207143240389884505473222862204536201867232110263995325831583636012155405644112147481287562746248483187876487292800927283253467854350210702447843342538223967548927167088319931011438131680645099293972409930454938519716854453782285312308890357718733858895681800302964798878930760914101737461984797217764492502555961521182788703477582313548356982782061996781017985514252631449768846241911192518919510194601460393592454682480572802409131641152819804653743574011748150060633618237957584441270140729323163318365820366915367873722587624864442048917144199396973028082185548525153718219168427619329653525039083517835179742200403135737359170820685393520321616387582405856547911147888468035675395336945886313689160565526146769417138143065868952478530939963344281305846977888888925590653997405526861323084296805370933417751194371634898513428185567430331073447885449496578235818867122621961781134071552460091415304167514948481055318735035571569283776740972185054905840551970642676133380740220820936623297246201656283005019676024081649845229878181349519256295397599653616595323929060415260225412641078414734258810976777891816392665985595014234308724513773431615945140459696285082586700033316913849145697261992765239299464961560076324994070353333089740650427071172600712751335786851905345318411182964638978900859432778069345251802925507000447748167555912688701875197225427292989610986516325660464661770308558315305279326658258341780721852238042030119284963485832163454970387693045064812000780481028540319046440008369916125759941485268233862288529704764279070780976757606268374824582978016431714702308675534180517561981430844329054902025177480411536727002972022912360882765880574071162425595317188437654228286056167831754182597174154560642381551789596080724240356607165688288546409858047140348314888900766641336447611002301488454478254259957225749926579595524673747432406195804877551024533458993856856414801257499267251933446870468442205775283238712174680581086832479660565769752871712391521043765649006894422791407299823256330722570159613879406228980804638082557561783170681226941491519544490705306090557745662586398566285704795401729578316707071854679240794645852284952556219906627191322259752305443017766004206736356608731284077559993935221191728182663531737370181728230651668938575052323479328771680513407474340714440514033721651701645420730404030514378330920780597629985783297183226709741365399396917750450888806893481453726390628415181393761282242641570427762835288242816794521667422312913045137412760625909289196427682209781691011431180824962569176069412127506407342941482959749207859977823223757024607954809044026471281398742966813199272579676089627124577505727247378247085956260338589228041706210948760062154277485516996052519586899627464085629897405474449431496368058351582030380540744105626053182570178887777453238041865603007027222365408966562787057132194358687125209198835510072583643734583283774994701955639722122142705341079841314618913750269196702811649744987007478984280912301134196103725732069782528054360010231259276009338960170402241329333490376438593480698563481606815577137820081923194333483444010420015817141955068386307201954055236543226636403253320065692241729706146122946301742141964744908078250798539288905698372091639931137767957465489468988868552152833171467571496248712911765727000114238986801576536011263401738402199664336915649498186100604732840841880210768283457334256104757830643092360692964749768214708050588209514286758177809019831210588781121843926610890803534116079884391319559903045426059594637965674915409014193746001177932871453071475347914459345801214857966612629173563784704794863371248973705041255969185380779007460986785086321906259891004106831121425560320719309964028897437467810342854648104249059847548203180882269027227044549868144819124912763733558001591029489653254521630587418305116240051492277167990928136414837034623985441905094716861866321310203145067523495266347546374966418773837069149613829957970823702752254104447219215541375182804618952229505750002108580156597145843824161186150539562003469174478346901004213407171911383346907353201192913596744163341227306200484749775764831874883868408170913134008726708273923726669445401054471793706569677619308223111605057387873303065219161257126118903821735038544743460667914292319190140481649734850414309022245625867490226860119153921480036633171769024824540882969264672080857702049769514078747986676623581259795450110035285029991319129792680835356639386646340681127344110808549210306561706998626449490013712073536995965635983594827645683216246276614889691363541745623387403995034576348178272774884361954887037336160287336126772961105141419677083829864726291595080461703543572420836676690338408379700206901563175441477128913821212636221239692740891266567660666622998487345936180451328732963385126598270032457403786450821017051952438030069840965083265623643459468712062149330904356766736475880208713831953449175361726711250341575685791634727348525200778585030306134275104153262191102572440839936478477270944371389820378585311110902510713619641547323517828757989546458570047603563726453495256218945180244002282326112446361607819934729974087532294614016511558305333461337037254644723506969959746404197115050916019655098821586824174322535802620036711954199979226123215087921846149138801532589247748895332505391250651570807721285250039165233119258823201076695028306018257127842120223195583406999273271969733475703953700588744615761874584467444771606589945135399433649629659931308088041550237704702720797163919044861334157763353149681031265053550833856850832613059531968475968300808450552477108724808119923972794302235730431316999366428385169169805491218649991891159964563431548966161076176968038948252326314253575815455402682389695239966756836899831657087266369698429914399217941411276418184632641568679192745653615092963257886336554028905021308648428660652771474520313881322424188874500607456968262456520626878681749878585019329056551087578344500012273335292538560516747848608028586185719682257403497776525406948735578191439714255486845623088497784704360422856185603619170934770708741139087785148440374977981652915250913858301641171036239711641619517672608173684270340697291219537582104735876308840038455264298032053477400843347463698931037040750287555715278019925190495249875722074615636636631683164080177065973182764269731316728502993521651160434372539588816573130263118990610809552560347259181713776907123821356069602431667817420136887279181730021718715048276316576325726618710704827246053454920401891177849869294184140165302146109363738461458165086092957630354802474253040002413621226917433977635473875964119760106171489957744514256502821206246621718222442745183049222491727270176201560494927414142752557569497291830469295462510150579936540851491029282409583990374913199917182859768210004943866868390636320899240987853898780940057402662127059856542700657952586449074366889189213408312633735695965501529396311259529718856016215073524567038885822160658876402394399678889860488842929263741571626190770187579953600475636265192026821373036467694660395491914136650066467204197179809319372874345069011958810820760922024972392931861174973441235026698631966848653490952851819814233736152615578938416176844249628821523693253596289721458057668754227079024153595320552530727746318090519212181123953870547924579723992431110743428226958641943481302781023703020103441574258483886454309874373576026474151663446574027175528539065456618088507315855907293293569223923778282349640907890894964850575570090340929066757222045300419093593718657024785820184017291159531684210926766651595856408794896209622749041277459679775129350534236142025854779722589463772099421573831441164891998636615242864534542147140654592314538114416031312406736283649009065083645908790113650120570258428616445109348151539495580050974365922465352919322626622974246182383053749494558815215501861177532732062334554040488596429309248846383352286354856625478158499130104449222568550631380333739151333761541568415924199806493211732468771682384547990703767299595719239779339287244329496184745635727296188736919146074222306230758766363409543047504992583000490956669984465887476160239907610015574608321363777706633830083049731923802740358217950415403338293478506507058601039521003618952289812960856618161835311037663904802779667440116838250316999939569249466864070512756718370663910184548779083914658587078747396000042548196787699731833992185192586850417126842939971009248184205429465639686613907331251679889374411020587687220797045334964703912315727497517053829856324547489603080545860075155934968984709259840670128487091236156344394297723553245712772558952283355908318396243070759411031400728733915779158052836908236239035913925968608102909978195011937890750270737134747045263748324649863599963085131039611638198511071430124197573052036804128758393283915732345989976323501854818615962585441262359167399203304962981871366613149809527883306048815896804142475897809195470181084908978897331638465716144666209254386944189852748865010142266085823665279736269075206666238975953364218431046037413505624219614746605132443989231835098652824022565676574635106156123863966486345341281361045372510903499807351761149489166873377405168072096949097523230513106513292874349694960425346641620799366728336496915734537488373461084854143179970499334845913423676692883304793921319374780705357716010306856183927783421336470435360849308255591622436167476363034517046320966617066583876631819099200491024205941941264460150662436677904988204538955293891498967293779915215946966453018977960393242624697356871315036277657838396971252976469035974309982127201349824064611487810002910970728372039657869820449910597377577128361262455209303981407779780139865209502515514418827364798301532239257326339757222371164782073625263049603430461386652971427300406000485495523149449693593795801552075263286885819616221501641193721223872842308351479830021652038348641162705071285147440643530536766389011445653082697873689500655394879551898363892088391477586284331278664097721682876844307617502874318089070247762505467123835467453877893572209284413129214942126623684252210248967734261292813308284494158561929223528106850563424035529026810038982290360091781742112086047486977019639625836321958849071811924589955832503174447141909257863595559129742122376112919239433349374984160988165495070557828636486745842531671834584626943204869680607306062582516572042827585079569531331241525134647447448305217109060747228845407965053528801357207795120145068331569368379956371085154321275972597798910067648056451414759224566735077531299860378786268625796095096953897599837195995623956937329646131608301691984127178032275645244120763407926320630359504187880373860601679233047129535722830022221517410388445873355262179533969983203645171532799959321938920050349116177613803713450758973091975693616911724223586570270142744484492050143466962970832116102013975553445526020138288218701972501871203070280297410900020627226217924438550354275148450547480414285245858181606288033864299938783327468803090943759742456146904940744654836711563329800326744900603440382522132602278713391841879219266111168947931358703438003534180096868124676512728105121931892981963778972651070716560637044395047226535282844758200561394832972429088839138657593553132691285915576865605663290063480582812957615436904627889551227786727689008910977413363398534894567664198634044901699039124659737067602396365447045215184003979568776125706073897273818646216691854715507099367398914137140218630688931593453118529252340220455894468157099473991692731585291281747838790573881945578950792662729468649378912271360132303521342941212578423679132535309782215547928079996205570127019985469902646387558784322960655853522780152341848218790970671295163219569891250920635051145231922922480166359233439767156105046898457990430385930240829050065226253978718841281980707298443451069035322259156061731830269249380218390117311387873729230968303349902219769210438557266209123180913124036945616226292673952656812713173289958732491396785268118953897925369693819497582311273921805101294417199954487423545608621046209766013887836992005406244951271928348295591954269564542458673659079228154128823495434315828022319005066346967135141930302288318977927923705414284779626968259783906496569047990145763099128014978806179312274330941740133789431474839453112767359856644588558099537080136188420161846054261868608833398993991548464427063315718162459670003722160538397547679176990748356675450859998773542160919449967976207866997629556408299182863889482316344441047306604114135524111072692594970077158580682887512904813463627054691135916606909364863911693902739005028264043174426197156462192807336415156343167171209442772408011036619020493157654540880489996579963638977702865067207489083295426464295166147948980297041572572071756067209254050309004251700580682764256725606974425952807448437471119476539116662986680957376819516410912669941407863946727040267160968732056785090430290702912793223223902937700641983428201764912679510004733318042603002562773522900082390094169140582716367470725976434221597066567807309147190361445925267235798333662968413175590452049145657530235460284557314704711607189161705274441197757228963509554065337771299501075239517091131242657033643892011505035334648764169648475908167521823116790773767351145173156644785287588286653702332339336390734264211158881298996233703044959557369856786481485230593375436446047717719659320168079364126590743324691201482144785120884363313163251238110769150799281644132578202770956136828391750741272380916622959099989816469367152916081013785098847264101895347235591984933805261210038342995694272739523867070204188760054313293733411276373885760526716839278356368896296244987790843342135363784394797506897060121681456036097192933553307353215749123347025902290977589147513068861379779936928113498403894608659214612186168144484554831506953042105125438924267064348872839406652052707089271021486415620942795303460302249573856060043204096558127024080618907143014447569417219793816913979239427359109043213417952072384171404416101908045885501433665610124024526017731037822000902294817186310036870055956572654360461156922593369358605716639868560624632052648308218636758087999054466164230504666832032983785685278832842644911135790675371170797121748272070109583398682040962706473210874217151751062440684283560100745450130253029127698155015968555376550139723402899643024890362152683219164188688335150638993436880088721016491606518291657152572064433127550725125670108135705353976382117242513141496793575423812562950745523074886710303085095091867667546323359297712223831248346644030961250417336131923217847462844557692286282959625770124453934792808342313184987912117370023167884393916397277051670900213754045018847076828777473175576708721928264692750005385177668610831905212607780419841917624815207425816081704101277627840176798346466575767385946410007169465247647683752758071383008172004659148924358862641786186057971862564835038291538354516792140822799502865563830430930250698482139738805306816016878628833140178047563686596148025691749998348192856817469553831466795205379658577524151208046980855822624082989373932604394009124586287806689909904365903246568691484297092352963078149753960449635336518355040707149644332170324772169569692229900543309290891783188516505963414298583431562385475023684966582788524974020406354842367253871149104456114447662420937832431035747781822512663238021347605325120263047506650061701578728687960033726395370380441161855028077658939755589468707406151870167371662155537752242226826356734430469482061854931669301985249838815012572744830104924318827714187704719828102142662667543878426987950756633832248159301617844899444028444695592127949055377282265491492033258506452842447822005364790462142665468278870579394718167237476799355746197324410390529847757411675755237505140223881804741329894435949771213210810853233205624072722000001991320010873943851823186888065551698847482568999936282307065006167193802448154589773153661084558828663141863647157489719131027604276259422279837152025376607926671892419610449969360695699762350032706842084789927124389119762486119288001144324526620043251118426342220290185295910823788126972120823419137788241769966773725064428381224426344519736293850115669398636090265295318259699760296235821198635001513445199141158048846732281313471142783296897155267857566660228409149265273621533197693877441532323257403276184774052933780159080627080076861797235134111697115199273546972263839559759767139978013305606032404509840768432593214483745583040249677261956315107668212670632321397765152374537254455663481760481832743609375080623234538474034739965441947773404707411401590592618915466674336829890845887527947326096800778060533268645714190158021983167537631698064354650936709453183433931484159541791826537814791086914718028715276748093034414931681541922759255185519264637542848997572501242569338576239932900713471864614152875761196735613943134545929104722901916180391965303512300356085197472389226998410594904925548916014906104326410415280196846528957676481113498326400166781739955925215408940718286065258853508162289495654192861675608539023222624087018938114995369010974785456443567786856557858448147947775398840411613872010763224713616077684184053895841959583163333092105657842984209365390773960922127940514426710459328977124837878866732998138712225716091078919322774130159505094808086569093829957676990014455488453792189104335185016781078529438587132438779430176522418068142342115976361069686050037725507002596646747549415966623419746462780385691718364989217248515899983784980153835752127341508521179505002291978714104410768327091119383892705504764253923128648255479785908377880637543794759939546894973009065300801440303755741673394747104984251440428557681019079100309424282090610201711912978991431741814996696068122230711146074389376906259668825525151288830227946550382495201280306531191439641254454957358708778242575996834221459502872559916047745449981499648264815499535174009297598858310380167354141843184467386577978075790527690558950253090525371419421601458866881543735626506953952986534185720087426860269186845753979734845391268406003004590789770861673527280563562587832452180384693599837543445477379418176054693683998165972789303474447740244962449199934988390359010483272323235892555215496596310339202491977786371807810138054595306414717148244530126435644625906500318651388020969074767397346437119738731560912523719576529570206795679763614812796509058211553921128055947104018587170289623077428612579835864431577097670787698026068006892718164895092824028726461197550826721338289583014588185186083195477537024480235465837715078099231462751187475815106389092215743674822230062236202162722313533440974109509269613383332072173235908844783317596497524965527328293453486463383113943796130644665679241280273720196694850452877707108075602199177489523277636159127424892491068506553616923068074276762878475833931229321406577472159128862208269761054023362808774822129269483257576345195769550868983736273120241571344768279178740781088896115213282344621156606479299651330463925128810108087034046868547122717641179202793786795983471795427693124376619690909408393393437721390869889108437038308610428435437060144059676045984665504113846187822931176960039830309563367557710157102764425024935299043662611367090678680281666250045528337543588028200828509426952399411350779627156569341317980996139278626111351007167727788650259818204695126895104507695418023569100348845682730617167211199554813484169075063388208336342833547865169630358524932153714724288943202392033049028912341479675064396506664877969873972751451816369099307434866146474958916786362627082638908587397427353811930964185959605659198104043456649949899787984757316653629724717943155548847157765275299623048239728236989467583729813546161784833708532517771082538312210576761996600943263145860639531115471645020778174190182971140418753598373169851136863624032612944027831620256772302937101603982458576782037135481462189501303112433079819633465875850950855527320515909468461808714819131652066129660195388839024517952417510490411345574835396069631768248565212812388304265045314084980664399518660174934941290880803450414133903719220809715910385908189565785612480157623106929686211083295953942841387651787379942757832614305785927534234882426560235100953861520569564464426304234283886561818957573601556086026962005696708536244953912419324892818425163022835962431606614544714225326863593642223646840811637781379900210046468830646146261547449965194347140758581159775824719930195504640877004431323190323858165490957765203452656379005914246469427746578506303343338383333164300988626160188439309429113316672216974345034077942689784640177326706015094090812123047611847358898260260906793790934397311795615471308564242904664127125743265272554481802462312790925208917277720118624450825593958181742981789454155592158084394932197666671216443757422014325330936073467612764798739313983543048203739253411460442742251181563997851652412480045786165151535252384175073119566710944511201950115245276635463128439371368576209608632020766544447221432829598072338034229383668775345921952023618481865146118517972643764855557648097096874960921413627568878504356625688246757306736354002980376032674054591279460796701069414885692191373205423616383642723618867672678566672841533967835853543640492661900526289539153026966248637794243859031441767449381399054974682206146999734921059616339122268581739676892512442089739181528226146542683560937250050876986100427522691187433780302831528779461425749103605783336035327759424985730807249857340841134717558378986974844190622215395975971481181473850245760173142796709488043607400247856853995589899243426610008435556810695385440968994710984546826313741505270876616587113604072623434596614311192803496403117837732273672963529751456530376388561995886964824942873121369554070259325690419736300274127367388347762763810439791217493853258657190358056965114077684870945004955054142074043585152283258413616890504772981433888849495747355651334633169191377852225832337665540934656137272919530096533232345811930651296943346293615312880245815407321811584442038813332709259314268917038108305711037973708325656550702791829359014187590714560347706562097242685977244297659828047822089651589438689600693488659163083733237382883658257919481200139338782158863374439956295253311825528098714333115873940883322794762200799105352270786043039377323552161696585049405406300209640836403484276772774650190696081214170715260526099557839790122312644425770498941850552242567373875587245825113229688136911673330345827655752657695008137407489369074816656240635918669345730190751204019090438049356402367645813540585511080781571955377784860941446706124721239505055375579471294142677582312593969219136183024811140055372963240660050071296268180349416932483732239859647891882275644378976681307432167617258523414074192007950125989558127649645283360596372083025152419708796545740857385502379484551980387840557447970503253520377980119978629463776887068445494556633933984887684994961579401652196597661694124060567022850922267891292990708370510467453413929829378997052132481010727693433661134831979035406121884908702186813916015346185423271429667649336731165257674154034385812029501010180254483093613693147732985402847368480553269787141077609665846345482399405939361250525473099732622921928731149221440735646467080480333338665487592155461748297303371124385863511632538239448338077840314008313782408120713785151417076165485680991204888971315505377480497074258514971102902844871350362459275160642182803651165824854727262374614046118025667635276215662470151494239770427802118350360603404889328258230410793106988141840924525159671650773998395272443812351750960483058232563582382926327951352378650534091354222699120542069335364836875742692413499565505078214937259791307221912804909208660348045707988389745088769781640760966047499364321708094245136192237566625571312743324353773475998264188310475976461879402262180843914063265733679035588784071662990696706997488061680280520273937824254143033389722425705503145047897074824100287969359525824376904062042358833743529932792383201256793799333492276744403078123638844848871826702675833806020995090393338793879579420343282765032328593763254290649139520033025123142022382855904619667880956738875341394570392025454505191510716660290026577428406726301554248052649699995422243738171225514812594053041919629824889807083042394398551990017452551230680768349375112490906501663037197190894103759526933244759702722398107624867520744924358229022758659070577128927812354808346223209378053027153289799870391939699297036915915433777240975353059774374976508355211243915549414498182546803789294319521153288041054746082462574165738648005716395663259174429657182322330168609374369294015967970187335513854926542897986029678808711610251528659315069217407953411853731867847347731588694211371872305494781275093601916036137164940368476241438179259569262936280443122597649287834797479207116511622612682497159118474132306445058788641893281497780851542191842099257197067221809014843964901949629488569943652491349478531956424199866155727322204817740566332757553063920906992133558498258227795588206025674664066995665378750652748573772073809811918302864869313902415884437285894935706951922518447664829684634050597351805896616254253634853902882099027794669547503488700268446229653609232890686744808381226394323451304654173587284863664435588463897288183922248691616165348803929603804845086755475131291570044733567563977318816599312379770440187586732306493704949463595765741516519168628044249858284318838339288880125017148809402390449995547208390158045110809031718961954125867894986352360903627919859769984960310370162502798940708865780328769802978496678516179344914652457751485855448849094608779164787781798334854700628884420428666753387566274147472750660283224862991524361014300737424436606773128593615855928722250167191300185492842493752183450340584583552396612293297354094381715748560864883211547505273048037217761459308235925201228341359746443286657334915941489771015420217259648347462784533329513084140517955650131882252011985043224560027981404228996015054473234555489408130188864997062721558951640306950609557018231031847660982430870448329661787031941188948480085725818149096556533178342782743246395606689672421714852725298397412050611507354674911876862955164053312967891482790389504017016595813648138342574072467107712535308141625493515893805623608748160035422127386732092654212173911411632565049738092656687570636303573481618424185995090051328079798500386715279917197311663067810916896333465895552607958586751758282822066990645444045806367771472374534306797317765863454704876340760294708646518707195447093913376201720765923806325986424272171682703992199688614624660436719727089646684063535927858520303106546126444511379129520857244343238214246829591320220493618604611674854808560120520607125094647066802635530612709030103303500665341464391083695513624107516913045347606769417002168374058680225822567340701802323975609610747656093745891827983536401491759982458144286512827779930458247595744633426226925648198306466459779170473288571929305670262114730798010010404915295861306891634849401856549500771171485620608788816438418567910704481129632459200125106649624752539112008635876568119904690354785834516397135837880917661580093558138524275831172916906384512312319805207275935676133415670158911090445095690241821667274614679754507818568881658300353252652727235588362851627892026041938676395235088857611913139399960880970754049593494697339639601281212693606001531283249410012258049486685760681844598130086348226560928982239847637097301974669384257589324100079372264508872466367001022863867033500907318110374776388385211558095893802382996995047185462212723305144822057036617812633223992089144415202319978114384673689988063263906024785937511382699826107025132415963674876853738320785633596029758654534820089691990714989030493555760813681267406428569856908572797201958053606972504724829199618652376212238468419000443639362440039309814378731787572752991961397325999647502498972093128416829806363769539924916243156478497385569723441867469918991698004174916431062335789367578049391346513845930619622339852412288878056005594576634471678101187286429417478276717529774288457786169683722406226267946317884280735711452410504558258134129430659092097206924026806428082805479018446074578575636142367066545504202747848254465468212502809405366826212596041940043011594988589750753538887328578315024843762647092606079408357844893551935207123886906245884724965631780586939511569730318951807641878885871567303609175829627582168323014918170858949722996043141970977372850697214009696856298509988281059227269327042816755941560843277063660502776036614005633200433411432772424715610880964938018934542599965423993612481004990748841973313824856562277301344398289239960090598576939729131166708496433079064677151342806196096307213737445222942214953693195248275947253352795772991003739629129336028122955948581598260539784107286598603039310326890586644197477526929371445983548536109902967652453462854179116029015384100645318553680015321714022807123223269838903972104283476432913875375127528912205141880428598224254118026733317396898063689985886512141599492403305635465514223765506807251724768184836059360211818048602462963885585216583909148617128432552085120682089151955146605696385430502793384952792298629386556889423759437423542352669416161401598607036198703815193484849486151701074834309069677806823131321047058997673370965436812947443614151780662205677370237328961003690674331388220466153691150252651407408974067358781203146923846602838724001561641576022576934673197246809785971192781525020323919817121624781279081781830752338656855021530305515929752598828542316623244756765369978006199298599133702961561460352956665868164900389204482904750535035944550417665815631080841538966533923432812743737054547121207628355756998250051370928970536586889646449937824107479878035400380089049589197585319283500126715116838374718517642780976165689543566010166080019370170408669812306967219385607877382412829932034262054731175038587166609815795775719515228488132858954112209676720066516648793004709683157494513733777314481029535935765426610609430070233366138713853961604953929673734032982056046914024798252161587624773828931964305322834851348948666043995381486549607921960242540432021313899585541372724233265791456538108361101749498406772552756228995777592756649272907703484916570958735778873351673828411308334429083239269000578116683527287581654727853648752025914227610567982398049139076999375960750438700205332590915938686048454335278945510368635064953052862159857161689611474088882981146019290489620726054978396927115622729005870711563238540780488084109385890073293177145052376967245526862203879980683658400139516727601355989451358839214569729652000935556221389486013394960688924154408543577252848227735544922436274201954314479407989411125363427421062498965941358045236146461044559912686298100883054390265976753253935403116259470917127381023614424143860468482997304597960041938902839369006472279248620517673583284130690051196067914357178404743349139549676849017820646417079916433879177449246168613444682041347023241274378696307187488250438935670121065663442470411975412875044747112556498117217642549378462595901441478262198188895186824614409183610393020616038991952149740925575615283259930988558367493398070880691384686862583161931976930453269171230484469794794831004212752156556886964327572401617103847528270713944963784856753761217273342768286985678374022783743653300622327723945284708621503505016114961607710691250133717890202672901844356699918821985255337657519448004494441255147772578421612490427261029739364193707920270080615754146487198927888724908925751514606654725939195944966418231085383514984776095412817747929249801648935297618685123817840939587725109612528774398783456322512652577222103061924708469070229467817016745354163609006036753213740572631658642916718303193228078216292713142865096258811547126278741532507272825224252373856782907074146754450230273715710818454015863206515492186224723942358660266179241739537349789186563207433189818770119266796956583551811907103985753509105791373060042311372946034864944817984301097431292150609608074813556346755966700519872674602192916803378555389266719027100861798224578452889839714592037811207789590294024813704679075396426894127578757699494593701204350949705132652501780315212509470521442647408503215190427822076461735481064436408193907076349721034542372478801478399476059309443763369691382363103888899911516844203149083800756333826082020895251940982431789844352614598495934968924567432868019372160131965226862871043192539455510425654273826507064296561306346275380226544179091201724839329705811402119521673823390796081597826285607306710633538404441494631807938624098524052795785365054352282670492756590760067535672209333577652628885716902860444105762372033767874536160028089197916642896036840813108286316691463627629050736938083056830850331377232434065092481570790474504164903397571455088911875918421017256245606817403745964828945719644849174166781213675440044538771002157140524441371467016007052504538932594017655365146932049957889498247692728260926471221536425746399218923796278719344613906727614171208787340535891642520157488133771167272668165309404724303940329294961194486667705667379692047907155152395061699847068948484881168308349381209254446106108275896299363753960181040446631856755266857956790078785241010071691352412825690778886007373578373519200509876596093052187301198856978215822804028841139604282508062869476056569851174837469191521063239986361819267717988957916186457988210797351645773181168705285909565563616953018541362295374695708158518706565955893406342321747565891143547652444295010230882210741315525012035536920629678783379804787597145506155339151445546545174332983054729671211808302428216271815613245834355874456638875741354113913841458508166526634727312751385387388703387739280673418810275133388997246314149186212193551718668625140949186018313103312486904857696511318364630218630733378822916407491209181017506752254022320135829300289680199961290242711289455984145693484012416989987165700957256131187450692472065965684865628249672845394755725867025121944726378513789646746475318481872371452837436031150009953642813942859561765749014962791070799167538775621630983684489100611205734591635911232935518363469204427210672328924990261198236595733170838958752737985734514667041883029963833969146293418547126072226154408678476685477063524009934679149147696328546678079121136310643709034331629153067070174289616644542050246295980667278541447070816774620528593653134752727162624677069721229713729374423445849130780107302034221233084626061898098361545306692179205376403623162254850509512890483502849259445476626327327811268380251442333881113783050945115468977750638005763573549030120297280612907036376672799638525019691419506137868104250353488889654650426701682292083647662874173050914898711939615102004378830365303333943364626147041599037381990432260011101834226423622010338658293493944445750541370034083457746534227786256232491699530505003535234049705010574956066105834528605228906264914470343219361680297347484957820106880335937225088620759701808155214307159883342791843783689422513838015612188664607739777000968014229320678427138447431873756045576304560227502521231844262094736344326935283874790302839953892395848129885766838082687476842637689030986270981881399004577421832324310219090607867256939526467907391882015411938125370080546986386309338743845382759459456407247450762851179689940822790928623351020975777713401589494501411657390978735162084861906260858948276713976086383454703852231124357791530546605376356723499825618984429510758355754847532608698400126306748900765832384139649259770430404326711430095127498059615365728399766531003086297424798107420123748035293408752649313047586527353785831132445977394867599091394397191903539196226670400735816024785082209480101389593661767779720608051749694464322474680958990876781962252527985142120384471804819028310921610592090605095523291653668965552992359894050795742598716721149756750789655327946810160698596428269221926375309978637495235595227221529030130832488710198522644160224880860770455402941220788505378194370900408705513138557249143606759340793470054497627739625539224646321409982972040498626830368888124228264260147690542449220245012966875961501262576265012680135260751486155448815273927539315619629229130520874174686917299951304869319718178606141641230351949206615090369530715744110248869842984697671021188684706490683881038975829496843277624395272178953687399431431049539717119830877533392405962506267223858491236770782253343534174635000003162109426322513544973520194759441986481367382103739907510438455191160012225181855388377641633242930388915732860625993990966500110383940361533667597042245832815635299072199825492983776113267045413639834809841719150462455855075343408513802346850580805161026611634758481900841007981938772648591956345558496132894087618108234766768215992765015538869382460060832789763662994984521051600930389843035174234673099072923529494484044235582960703886799748592701253641363235165488479365903449932620724931543073455117448548319356474047157526742537053723838265110277519013192196615118432641126685752456732368783476680745762570669016369732499036526922139980893184065278713190672458583384372852888288628508739573304301403757530578937563779348369047033684282911042494258256409586559128142227452431649359329354772782775604925617981208748131733364856528446980350649965062047482149307253192462665411611380344551208404254112058146404394534655646771003278445774978473594903279257053438168738820785973689743956930760406672893710385649556558678428873559362225789165805966806135968668150359170267537969049314438602641862723216617277850270446389119034647467195228157891444591383831326467721555242712419285287421377103154322799259444614225132720586887698313489658691321201532848709497063932210241939036602191867706328148398650878441904017308674487548099272044835539617028908598982211043990628452420558078750187596899799444557728374942800873272121231326270014383358033633079571408093221014809535223542012523512149464357917952487993727446657635785826635635690746908568616200812188947958637405234467874746740746295659341292532521166941214538476122485862302564393620966757061765619978304255196991191646358512298359814276169353639902280095130369492157068612072952526678504470363622893547207165811421232572497983830991592490450002295948301936877461558049757795306052759890973949062714949024516398523534164579272122362038555379874734811554089368144140527233771822400586345113697459241016623325287213154598892850629628254432171057136400516374673494425552755631424339914552121565407700683947599652033878754266587490647535937042279260641387447204950469808404913169405223277191673138913960304819563686022357807249813187485181241846678223500597946405606516268438126184391305434474680779159493859518967180506496318826831544200591795967414923972988057537434554320007082039163916513894124183234722101121140196636243992968148879740555954022491965478057350035313970191789797274701851626561923356019445853165476859733249326251094797192694889160236290187581979291272998444241775116153742925397286752165626997325899677295661302553405167914036708352047402837692731723095291373439045896174593182800279193101333691816201605231240221651324856767582840869459164131822027801014973246683616947617017237708678360900510872643953034748542508334591654789054625907014526065006224419550819866828260335701056992210769978953333534708553843796322923932071454758252139330423654247550763877397614980199137917775512618685251233623571112505997317025227096633575329423856227447349462951028007784218119247178745608911456595300014634458437087191047815654538608880756805604011793242062281806679048991847614935611755570498599619577302877942092207668761053712355023319572870771628386463652374238679811849606037105791750855682547732676864825829929858239031427000627394126147680468899455654103385072076320336715498645036600873048799113705638496894378608373138120211105600099458691896391457608110666874665156071096456838521987395417916601021925019560785887117595153692571465011977481739334466597392659415820322302587215449055073036910600698519584617116323287179513444052217063355569516183749468513618770218787616765690561616927395035108835155866838140320254415085532411941794194378073622971324645730246795824799424340901802598084670803680864009940803740788882522571790292098948331927733332077760728782574850610283395172036929073567723147695543681231867489452496509534198950938990912565043279697089363333683417640716910313121572635145317898443936568716944458368025089041223644613928895480497443394306927881748004173514973789504005476393964147073091202756096920441723264637063534673992044950320442659070679487650456170534021877181828155610740738030622463644212500150924125446694330618558999017976047154660558190263566984258814836641370255900131134854237526193220782289768103710766537616818408141024270405570973192462642705862973293792854954078961158564239160354589401160117134140197758102065231545276308045778968532335303662835672857588497380146932981792251337602432396907358765299456762220889128257428925732318254746771745569409480593710824486935962796893116906843228010029687470453492273071410549628626283168907327031452054678702527711548728309057460711128076779673749855907575651903335270883362373186870605274579471901341453723863006337881210220398283297928456298084489138144610361575162032135908821792319902778437204004489007433320353108255352603711156010891120338353466418689722347972732529279535167150084751962863686914321062922375290805105870373989959960373209325157025566413334118797807935738807473755363434661390340971466125451655892011260622492235341261762513838055833925735630491677868869758940803415810892211392998287252374985791382204159219540730161771103044339523657439659198725298952681115854748087286637385887951880137814610585396382710009113594447838070811133723166558836123263341026746580500909949892603727867382644688554582567823025123440817310235934626816088460379478251283524567753378111954334015508669964935304263188110277698622496739908715437869160876263514458476842979765675777350201877226929771339756040508559745683153532759634223698891703520588534934964730018921921274366721576341026253901343954368074402164652127983810304177574735456608326191382701099456992384376301104452021747097942353693019610161475457875046604472115706557316793569461133370194975965069966755096602535500082151253492976178344840987034676612810913019283889440176331218405469257237811974036362930603338182731735638364621188827779515149254557493627808116611974223243089358049026153929170229594846100235917710888591615502827197327278249049920369489347991327712332454815257872544266084460684782048481815228539061079600278916215331594581027974228148824139514566622918376358317989216085082210891227666023871298831251980948648129441744506153136022642920940415668274684927293766922552659852734069966315266135634537088660747866588970297891363408444619330135320279163327239269909515069839094582556770275399408249857839094734681718027400196916535692955481391732788076127957271131760283072468073150298659090068944804778138056719478060704717782679227933228748629589601196805561416089589805169560802790540625094108178859252909941892061310448267231435212117118088704440105434627228327273944077387958580480533062130060594862131772518924287378944955272468028641269694246963490208878600171660932386224712587096412373228782560953848773615045758638537689852389986875495973125930128282402786700000164951725321806936171815494584018960835591047213843708844237572640459137437178933120840946979432028156063742875695287913386775252208752015111772585787112535427016387266734980017543775238455561740622703217440389954069104814085968062758388891789068154970559695750221077915652308037905019629299691371184021753937515593755271285024318309351812651782176412921379614021657674681663751757351147933946397195144941788018072215284971438911008331612518623263693366226029584261387904706989636428733671556909228630276924803029431229058585174952703581510715765426709579730910364877766818214420786580116499540298604301844677231670754176978957837752180099367211313652762992480559069489733206953258453890249788214863101607445748463688747157669589090289184180929289294199122318481250845001492823916034963413103707512805257464972804506032250148866170897635316572654272514796618641007690762140747274575409653397285552357247622179152217763837797632311844087969968327693029704321539539742419419291968310707047389191690468754440263228372142943976817099728221988519369049947626873806372870820580117301758663637218457023931337086450517418067663697902144734993581535706344189867646279965095628753931320352444752859700269290533467130784497010960996650937074953656562827959771723459917130553932502389953668447469131642887646496475645668397052286899298253873119969401902597948615125064002743242219650276909247007622254561272158392497559601238005583107242851248235048393763960975407142781130378604224921748313065938622594152709817631010490949281795020447075150253335017815153095460169269138861261271477179207890630714086611405944346262314080483821702585551008488512120333359455058115466411610669182084145365454014790265227700336384731402588325511944208430697728205730806764195471372437722487128769302768148987298380598152331722543774745925148807608414731483844977032146411443699888446139183644841664431094461362497489054694104067520686159741532338781739529057589794498837830122483499962274166671983696461294834095557721474084654102508898151564551476480358535167569186720989777872769890254831852494334634170789858644674048349850495006977390330473998941353720900916517508957341573564286488683655883541327532398222389988566493033380850186591976198427268551815965060947584493422053732783528709137645804457242561332340210411159050595737651027047916901836592619784100233130821116591206980137646571824800605160888986252218209421980836256432573842194702214405798100526370467205096721488940135809990074438505642689227532611112993831721617251638588567987216341991329429189428985668509857662964619558757388591680122976396437181646677890720167249783099733426718572975018733701659476296954568947048210610401644806500061435851596754776584072934209721098026614784810018848987410579324828516250135008707513205815690848033416239760321906782668762231358713616332038729849854054323527315831430859696007583725087625714048082439341510987187642301408836101424762904975043859854208588439618344888499313703348087762624267904110328875492542521740661737038753803053522789783729240596715227743844317389077586213923060195968372436091742725117076602235404385119145835176030057844978581600965914154606264175233406182188090741507587106148826727486916290447557748146846740560586170799648293409849358373863393328002991520631999021804919820016964181874562571979321963806714320214848024210992445982929145841974973345534623713940858442276201848915408483323195881679924701266468426512792128805870694746471025007698569273902007912554758240761930730359534210144480784379563852356892136817788617530998012386276419456636559676141599385049058950622821483060060669913397145478725564266235588513881575090614774434360752151972625815885325526365475446054094386691376985721804780440382707219365553754424520710552443983012391137047822696406123670304638429665324283525834787291572629076105846632974584893216310994258029344758387060189849054983394903215160106618324755171516959768093209818636695606662740561701929527538398714946978095280595667768054730547079330367709176271331074859242227131503709419572818175035031567574310479652566202340810489430572689561061545845997793212283499951809040912767522835117113568703456738486383417396351061184722829754211450503591932408200802936105668725780701515799816375768352655402266350800323469038241824193099531395806456234325743423406879047294590636504899360730223810250147209778244668840848318446651265242298894592575756581213017541963444962758737807267026349553312146322206095805427967995323554644853048479545549395128496697646930230239404794287722577919942344240801384521307720837470541658628902293870333734835327389700605984478511702422418684814581394147026824326695652173436081377103865969736176761347623380022321911807052375283771354950357812020853509010751161290766265709914162245501070478462282417962865664462664849213247865160023958577606612826546159873183522549101201805679509493498334662411245626096753372729526803146447718045987562748576354369275015103046669902778317257693670697856463649951373014701196719024564585047387883152414132710192255111592084782099619221896080910551199076100430026042086020157043062909071326773165628162364943594849477887456694448416376338897173441489134378491083177851342942229118640550069977862629698427751548926979044756622636203679485709908662003041742267120216810075643035605873123785602015426197874510682160374636964078631358295763020634769806018198204570591298709152709198735536349594805801559593408261800354035023146132912272940686925936462275664299122258203743344192233264459766005025290388487430475735694645016241979121305745900599512531073037144300678750413707979800649454898011501745397067138147195379889186779672842508429499569582025105017326951535193275615740625031684369946996363455723419059650914001075911667141498596427258305932073679028185906389616939967060502214302847854553336051317954019849520290811170261550153019463760676846202344285566860292335546420880967118167445904749643674228236578189793442654903958482766217210345807776618240197817948267427070906246015919731812481431496157111175109231260747512144539512785333483806881505640282854799153978616610385499963961444237632877639999735102170867759669755670009773972544791644230770085439041392003336235384030158063089487014951243400097262199910509607363121442843375727240750409926860730887639802189419003132328220788643772305399205417477237370126897936720456780691667606471981799596469673613897558196922969258473864317452468594445892950528052801236773308268415290752583913226335830807189334354356951530807436637790276569490771711977918843693646421145169383087184984921950598845280534105693033446438333498906597491883885086663834613004416078289848720003354903181000836298593056812389346180793447277803582124797802054133103450308901283249325908692831405521918158400102479365645221652061257375720708351658067893206853875585926029588468653457708812443734845404433038037102117007727634500409329938615795729802720096458352402297825349678281142117119421175623359604027398755310928851729725419489815936301892788331527506285265708276903482063354865651769264068879391709496402024359305604285661856654678955010595605990487060044007058666038819909257928833278004536655518802902442757478119855429086611468220477024870298142921242211264582358012785257975977642409510930213261048985959978619879446929251102422176143328467713598419226813409905350977617646767654643378661826283234197728047816113502851457130756055656620511876089197701787319985248377916955931830672302476549679809666614571440705250205270633438887266802887415131597291147605912759355516905991507071762469080972299212975143670435577354040708207419597001662296827910558641065242193160321953541078037334249639499799827011741721951478254842383050926260995829835123032344890846393452876171202318586326948850076462370696848314097583175707301376152428205440738585501088520016082421485569527758328353184124723364701120994497701033527826509294915660829611410159269236073419308499525101739275409534503096897327494192531572448120776732399531622103882547055793620530427817009031784129546445213236122651525339118711768328484001053947980567354758483382069288365874401516485578223420579137921902610377511536740442057882167215780746906357492895050431213394280317687368135806169428250622473281958213730731907047667723951470950041714479116750302582928828783905868969695342583956020151475867013516790340975988185091164564333270064739970176434165152256124189952563843129483070009168715736942831846488560339324056772712320088003645899374831509731480785879760689952563769876868265870538954252795581830666919140430239770389303711353362057691274375114625450636823531381777510697750403657860317017967074267057832429395245695744266082238979514885895522040523543122898806342843400288971154272628987153475065394750824848542180706095636467164830885997864490257451161426917836597259504650824164281957916364548842508190261031801754840828200309244996995780217234230472555183252182411253472168442728427325691233973697060833656007985048409769212544615333426243574134868183834008947540569410514103988170141007682599075550794846220764482397613355296989239920550109736115129497893709891811439902919094220842382998351632286190012620666763855629542139674795744045290143451821128665497329705393546224087452972800739089425355947325057027990170929844750494074434410484446145108278217714391822046113597507865557981015222350644116726748620186118037220288346745099701863942188168866242146604023365571051584668214458765444185037464212846886675598475371131954212765522429891185138190965682394843662728364273420994244962602687057581569322350498944852000737669193836980059975023951280608782996099328169422803905380702895553385046347207407510351502959463875666993336960649978213378651372867404599799740424017222586046862750154328901222888794267104668645663520980997075615282426845208332180250874280717216511570850430023583342810146393077807586867666180943267488739684362507488403923521624077481264766813946408438531087967257090567123662561505329999639687241834827549443915771497512194326973349039797872023785125850411384529530339608160577128128518997080220536982756886940947373555643162141476009008420519974786773123691337742776286616076744143371410565500632879218045076886779907255608144729190550069461581569994467686576219331850909391157476287162533153974070865494225221770529767241512534841817643257794086418650122525139637805505697138737266216760153422645544607705656203908891012221000451061455622695221598831792801336122900167930444205319650675725751281925194961316873600726700171141369427267098642101455035670927025813827912580452455017456679413781495936894001459212188336472125117217858441283168358540575514109791136898873169728697597964211541441598796578451045288146461342598282775676422211738152503265827517057859437867603319645019026521989939411432566225018298363783163146231104612493220410735318326689430514232848373481403036644587353564463875981819154354870431470956441325152736865840078190866698410592923777361984025113658238682401562852308927164442225205231366888458487658260602703966409847944546050840602516507075415958474860904072648607146760594458452126123105883157166196793601880564649203194086165300454504333185972264729995583615495634910913564139958878355193708235466535191347503723130052986362033254673298144816376694983006491430425635200787962651744405425761187813069156997156966549218207723883164755297894988534769162305573045967170495798460529415634335754622158225775580891638786315551803367106451209706049912722846123286309661090517366599715822379261750455472768681669778035932512574682361559155604372806065242606765391517986367010062480921981633618224590672660846056872874441598279937926511049297984993638789970939419712890736601952653913637100426121831550265075888919327869735287422623325367259778153775356656312098766300309300465101940493637918695932399798695928712817427979169095775349637827064319752964206824468099626098414113403912658482785869627184634492892493272865803573382175971915109509066589727036019609217240884352208692017384735063366640945747209743497282784067274913563258196935593940543560163480940564818131509966153835108968461888601863456530081197125770323025171885961080109163755182927964808997380061990479942018756165483709935696841060013952330495669125761140048276668736855847981186514556309695421895701022925015965748759609539390501886901781902192905307505195785702691603263301570443940588806909980008080217764042836462838626639407666840550219833727909966164571684761723543697013204112623859870071172440388275784521786729944892860219796294237999743589766176537502265394448341631055583209266544739215845111616158728072623420906681719482109998298434470570768213619905845076824662048167285262880251437399538069651707906646572004259579869889534705002116477404976324461899399225301133145338267206819484889873960549056977052408214758090162010664690621774458111082554280545746290041146649181783315364584767760876752887502135357610199639578036974316128684034808307146886665547203591161851477450250639765805912926479040305702329388601410415989996415391212768160818975509182152110519413902864440856325672812210902284501726852372005929506823657588483895377072000447825837404428293764517853308410505950811287105303502847455272823011231468042866506718765206584523683182004891638246537873176393389083235577335246590386973184884546193070322359205544517274241369810124273437892938477435916252075098733911151782844946391518847024058732474393656174842226011980562070955212577610636439914963470364992965158593996742872455807483739785501974186439840965149142429188334544498361918646306208661085273147344752491299962758450265265478340948606208639785978207829453753342646642213163819919025063692712886912173632938365438446662488754941690939728406955201989818240188222938795553411915044615726120187115710495012260419964953635941824415287092784665658663703822653943641208533461718618572623989440974180055595980624025023735544915053530269586467771366351070308354840345051858430152124787105623836362952860561712480435942414948906151238502869170854419098313800709635070955606088333681912771639033623984605623413321300704513509289530609026364831165054391304671666798325798932715583301399839975963034902187401093246960854413873165973366486355677741334475084712543354269935544291861503104982873930778580277375681163605763229115817663738788371448971163329161134155994461390379015135417551762810598732086881729275911818704078954639264192826029205976740136653484077719086998937393796341940312087108867434358175237811436631552547252089761244515088595040527546583912834986399157831579776679890926161542923861811785529099523611556088310029310534498807330464160186031799803988944950500429225130864467833149561395319049437096805842624124562689919616533110457684717018047392454624603002096655998998214059455117148334739110703655433523827687799559332653464332044732875225730031213941033177181057564571637661667316204388923346384918399443152478401487590086063665154622312271825374933123945683432235381737809665762952817722646758845729448462161386432287841786841630492753960173869252021516422734149961203175929456123886687269984998088877735092984038455186726160865279715336451263437251692505125018625135805087404708185447957046766415206237092035208427404001636188672497390024719546670865530055323928046227503347886025501234982592579166806672792483575383421887100406220406968726461925105660206367602062820142132911301063399856029721324226563267037311443668427301176318904310148208427311133377894225565885430194567686345517505573790238589537627190403163239766395006249864970349436653895340270169890109932808940635346928535174237944075689763137950794668691737793382699789150123287213365594956494355051012671726150702905922669112013501506599677856137335510079154206813535390537017413632090335921412181919663109099836085042396894843518767172965216548203447120312858663324270007545674004750549417120389090229992074278755372059353008315170121748186028295772368132129765002854321789251708806700599943978745663632408853215338052970532718160494820502799344130082124929485869470610685828900180140144733414082530992135113480083632592474396885385337405204648537519335047948033206225709107986320285182296052345363824727784706669731117239751084623743070065403969362952728837053384094941382966772169114928451454720797777126399529285269308748617983927421992528281765450394460348496446576849982152765457271625610240141938574284811504733370692431214568850822758341894331204879286404588883479559646655717298329147961649123965342234736179409368869729910704489079490494585526349760849416151438348396375477072290869157691957761610608251125585657500602693432578496510509779666387192632551941769642965329237420096797172928581138614740286733441892423119749387534957325925722402395852230292864064820948145202453404863154472990136931191006220931508882245947164411190894852559024453437611367543778740859105496159142818679711721428539888772020070100842300290557483869602909485287655706949371621069982164335440566889112237694897116667398390326157073548520014184162620206112277337184291971209630983022282948885463679643947163327467235644577866631517771388867667952447501280820108100028327242923179217154211861499288740860646176385330469018915537418506816818117341539346276793367264003208335501307442759115670678549244119663507895861748067361325027635005177155562966466838246354768466656906006479371439306620468658391805344581598275994592519115161559484920331899656531684176671124243465717143739596784002734899946786411761323466915164643743466889152005398212633994081220979508396381431508574746469678225566595934625908398728134947391451110528695334354797339750539129636453235954201212540401625631977723226906448964564272724807853549408596881253424573390545008686280696170915388781413353046100726445095831141646733286292334157545749539878050025106285900556954052166746743732711198756280044675547656823334530662408824842984994738156776440703251264703841658630319674889376259892839770433525816204221917624315105850050255362976552390479813197408752160753376148572412484829229657762880409720628848333709763942861761887325656990342688690833991353765484880023625690458346785170776280546576027543029177229907087830039935172319571094525826447786501671385615916051879673385431410251285280230330935289351267961863491776482138724670738148416229138665633826643530927666797638857627521175387575768360045591429235533261883653318914593503578192492768778817784661732435091398142999565964646059277132606361320862760023552360810552358093145519060716559030066180178809019934451776146683363794695624563276373937010780657338225145871031076888420326142180987369678730651899807523382995699650190726305886772302108942282678455994414678248307010383382659053885002174501006994281031910908738271822742998259883005534900885753374926185154762686908022533644646891537407405999007821304266226082296649208705349831074030942068936187232989195163880127717435550835063028641827492597505479875397406372609829975790832581729744092452416454184798099060092188572655902808542501333283858601531785695744192621115075317608402816160036997508497390534964150118688175585907225081027708240535949719902439649157162252463762856273363274886982676883473062503076925884248063896437753828944357770475411303252863323304131912119218756296311795897666300381867326136222772464366904811681479982068987619582564535464921666921807910411901757263029206801746689135265261069684226737810366392549070536056207477941567037094535834709997459909160339333392994229392919440337034997778424702187971099290723178975792950218073364218966190135099451342200700175197615602247836107469490443891043933073229514477216614135584140043363302441421632304678242360272475739944180757377205873540840580856296970574692348516330590326428239960508890518264737271205236645662999308123962635354075565609851310558381330274634345942732820584786522094124105564089177367873428552403982233272984882497913702382726845528727212898208190973429133600729807199229479366491909709120161822874900230000560805435512323780501126106194353523495622476695357009377711610550700951431942227262027394286726544303835365652480480720128035188047806344834392980451051988758161458741243927141887001097487913605006888708779189144812599089612505102091358648931912506775678147022132777176805446601293740014368192844215907178942825136952321039773798155750733857685186331835246419634489033339300634184918951509906604801618380371282124264320020821221762591571046926286163336241191960452967689283433663495349540568465357920902448461909713167178807121013842326426439940205163682095052124166627407416741065656568899452715276630911629531156966278945389035535155573106698971108847228706504209109270146662549152552940609291836791766335779503660047622775425204037782974831936383390317470453907550587732017845863377642812717908624634140077604854132462301528460404022315052454195859249760977464145906806234890725823489314487081309415718971870293410202608996993640644570812693342322957071252343929468600219979580026884274324774601755177136988506854305163460923934409929852214505133143216215622416604844280657275760548770687566206793777373333908893509208451301026869648641196916640708615912861997091564911023742308306278487796768808772663446959267258608102989574978821935492042039736397265688336470617163597608131729522702494636108682456310588366722592334028047441107431850643482225896053104144834882752174729414548285348363327248684492003025668780534562959601990199226881456019757324527895947248917348118553459952706404370639717937572469932864712955925603259503491509651975005622227727181365062150423855491388513238009813010127438023485222431586689912955604143507041843773589864810410773360232290758381260295412002199456819900819202876311820749758925783554301744766437646827737172942191278121777375761973503093886413389511054467109005541921467867159720942048238187959256125186963542368436125238370043571512262711047317207926104913552105608779183342459668676623460062096104593864368878913258621683733237820608663792386071187594163021796546613802407766702874176002849680605724142700983576259076042290025448274617895215853981815931402586333997017246317781635580829866413280558979635719457375612708691847908531174194196027907825149814480516496710497997823813291319884878834437239268673604000623664939110164679756224539199922475057700193031675645233506041932828773741439184946268104740674635127820027754512753411108884410895205880149165672797057837564112731175162440949156293043068174273014385333032303219029722784360660796175417023696007239824152470675626141102720040052815835965383332547740322887795521070799967140640596491308470100336692992477460012540969983348727082542016430298361727599387075753491509116269736630565510248703255392027313666795488759511190142128475837854941587490639067411297738599920952983283764369380143503036513475985836856032365395733911209314712935826660611581489846139641980217127760686349402031726256065427992195735973763667307579566439766849194283147782481841861300125489152944195366769733354650084882611100102827229490700246916804251032190213324798466102288700792223077743220361563822310894548082620875250154338394275897353710504757274888933834984944433304938368612963164720968283339612544019501409955225303488597767830230405185832416141529716496641971971325106209377990843150091448736020918445022512027122665758365644376994823213613811915482694298175840826708025078627593242880809605551948354572554390325214930773568878062964734918029452848995232437955302260089077381604693361628516259863915915310974897698444546614736214905029321722966991717050177404321030023902336963552500916603236937044445105528730405315857008184586641163496761626110119339636394258897723082380742379630357486457842353362577377538296530282310172214297026223293080892968633582199540499713479901969231485369322493317585764152491528945700306651704624500180548580687487570846403444054578209078858799441210497809829073889840577006440479967829406526401485271322708679812213317210672048622548529539139794337718166671305623057834688237419189572715383090139616131315615467283676643000174840034395452642449325068067577277286829924037888720651813612696957271356748705621306315131816503537433426879981201019869760123862834663195464401342756071647197283509938667463654957097223137284399358085752690511020546826931008188992379058866588584204774133593700207903515053033815990562464871766860015059808306871715938584286363671536078858654643345146597258472939683282322930094462041956828855418879282811453771607534255494723258738598489432182980101457272298362910894996566770103140059538269159555602905047367092646191107098072592551359269901479122978238611006687589012759956311799505890980881478434351544546856503212440648581190237801168934654205008565785550761104595167677096376348403948957776905939331990359497172086590092610826105096257208533399979403667549255796666668344232353953046723152222259419877937548375782311808931258260593922024125743331562790889225850506943249801144965658208100557531243025918667344345174371051230128813488375279232982539440119105148576867162045956965214416223780616959483803562587099197367341564408028622771766201059245269467403181728348731225540319203507284400743084659931610687451826276206741050754157083773940891429354876209807830244914327511025642288974641472860206571644207178580249204995787187492494048705446244097375510868595437249564549837437678635248698992198983320140865310074759633418841274251844054386511477044684004067769555604936046419779674587963760196358872171324744344579932267560263947468022601668071666204794625431158503101546140318086450457086315587377737236958307566219379544739290650659409926008435480611473239330082061118306318524254091608225054053074094783760610960371483734362203101403805000269315826152268076481844661332951808168463772905022900744508797081861942297529588888056898929482876613312388249238596015830829965564210760823118292085028076224413987815071334442183819637996555130882320519435745539462866233328831849242001439748444162327361869762294672955627454796856419285330323275058721022957535792550493914567395952964744908182862203194143696664261982959283645989989758783023162987930993050604033372704894722802258192191546893371124143087908577110218337885378822416404490996707724898566332299396276173892524963885032038751568699460911331351634557825488873904209945243552623320668333110818446048972406194713343038045410649633201126544953201315593724519767281779973619965827191390621881701333846723392367165844024931047503978298348520980937540670685821285979662304584089794454874919525497737930593520492227943426922938956413734206777344777557898011129871362714750235870466055200545137590981261926295096948276793094695802556769215469213360171554980840250778278152323873584487264653737517474760529441650217911745603078751375054764989536887227883627618945029420096067083795746759291583254428053173865980741502470349410027233027460803998649937476632538951984962251908963580271189705588904644508170126340069131915452925781921576865596017841782533813130908886689301935618034015579836460566749843478097549191677495978276013730354562517255963008528942212958609376207287520491793187342785331275307076350242356236521810457038287050664151332773894741368850841691885826444806324951612187147058233411563962405103985298640962851544758369692981135700934111085223609603762139699331683363810535965194791396071501075503689812652267782816374887044540316270533780739394477009570517013637369572629860895949487160739937062629148480251765835371254026968692954974382732779506909068207112993421329382830128643014491367553173210908366392964970797431141567832133357708311670434448717249765011301753128194186078596484051411963386636606507986659536668548262066661041225093216064710246768228168714662182113655497493539055509778351751159748923872080610123118351486688095636136469634426900850222401617687702803477716070945080481826195656452742622392597054920034332501599782950336334538548862252307772954442118212643887521329000653101215932362860698465970373432934286868765291260528702759290071091680244437784886019239789870702940614789547146671258609038917110048689636259467989603796550894122053849873536658329997943658424533309536748296713639681690176363476959200418258612672550374338798670677035020275613231691842947910641641329732895501302150039056314316609471905671728992971871291358710001502053727135219099217432785278339651840152061363550409605910386320344703315001980118619104904160038704640972836792054938694402747032786343865806539984298307714009926316484851858614492669576596885723014647986646611506281731837809915862192635843402936826289982248239797155069983692816733287987708823187302251630061188782654377372079537556380374208119517016510928945993393664137430337827662459841003276106221311197480742644736550524569636191476973834759120714235405975444021158090104874142380675910580875791065390013223298042669013964487723711056853910332401418665001231027018489653777044560224356683469908947999405528929602927819424912973987380953525968072928650434828486501524958089996302618749359111412261354075630964381722212313925319674438449682119917337502013435450911911868693462664512370656200553474927671174841532381971449168611370725434596735903295796534886606544999797335647587536768021032003330827286801052310746340769558493533421776074489414667108316339710894230284092302075880158852210673909755490426981444807796581766945739870599735904984034196183012614804614959202917523979312527810595245879601319410239682806357843854407192025801835436408351163929315716469368043534674411398856078614390612777799260420927100973703156377336942140795936141753253893991822107927999318069763488467496372282211890866907022894937113292561309607940550970809700615581073055017260559476227646906014004237550809735147763370128184435143578276364819170998485035454063298765236724646170167470791921807761099857360077844736194534445958231937518444549680572822776032046653377074557515281163590820671055747306530664541109463793818265076089570508038577194639773773836893324749996646528754455642153896144134314760060554131977781788987702422139388058594231854281850974050991190704822893755561156252453487005512798376721473350813016970897245948591269102889585444124723376368408494864054908658523856337729799403488640096755931233432471979584595512171307100117654339418626271581310261613792347809498680353362373896522958823267617973083496113704086937337899630850155922757348789192661276762093216678875799608582949718866891707241779017010434224574152179555918328001218166479957404090332872205318297178472507511390254003419324760764657464761273604648847067156807816304964108967342736993614270649411023108848351480602265845727936340129294237793582230956901127167108395408891483172433007394997120987814797916552820776436394094413839198284105323342715940912614971319192261034074390732829780634695072627584313877520274816268706501280090483989555639151557869600272153400619746023528821919715926863667659774081590561696668907086288662755342570615604881472566266084423251855659565351302055946957358737131075455496574745880228953314424096859323726382908958334619220694661061733954793322252963898783837894261285680509806136291439078778609249409077245844504436370934376723430947803951748122652539060919545147111097148785554717739527967590050627171328762396426401485269342103884901731312677378330913481766956240378946634005811838496306836428657294066178819156700543595597832699605510785375598089332479142156549984862490952222804625821675385412524382304075209625813915035579251259776901491896800493047666064802639515117276779547700742609944034008485902236189069110136515679884693162880835303581890266361303250085016620194912751575987183851313722554166013151644783568847909146405446485958780435432002104259878314693195221713409630856699248217429989353632830958025318128700166118360676534873305909903750312310000320488443576956382091258459278990267127604900571003997224981837457705797406438278670844317077790018183378040184721785750286013528418776441271903433978438407527203866355036530805202899357105954300506672080797454458467582313288899627153812250377331367876926935041310979112554622670513132595646843787549937680354422735855253220073438361783776674050124485809026192832647300081708512263975819713240420836450424667307759083065604202533571628846189952461302889617530782831463665547828799738590806502187522870975913046211386770095834042196471983183207384501445432664624798026636936464089746067191259102918731540896398771527020474743154667351074652671960691405057290482153845554140829517509341092971798071401725769245975267502405695659349376168141139052500422067350285207172731868191930165984864964643089145477839244905140625719922021896650942121640452141396090967139308222891274161644070061161645111868188590637969941417075412507695234683766705771063011446219491503344640042032082115530491596507187543282224901293304783270432979535521506380905516454437516513572225063450657700177369887737622586193787189438947500948757674243241336799631792111052389307194597061944927897719328340999043438047465601905150055970239255696729593335630197702860673459073784664726284183625100102263990541019353856912353239567459991891585513531082275112808126163337528699260519320587030246211902704337489570590750294449308172895729267872114880779294826459908148258730814392726217874371626269949922656063881712273091558477555953299277526003989996492107535018765402251196034799783759653190314580218072089917943292513019178810060029073630004249668458424661837480705225025287256914729696694408296296301378816421086275349715489033925625802239121504851395210236644386307587444777143049694015440988680403675827584137816085941516426037576336714168559197111285136003538955341072890436310634538985721822111733968333915880909681204965566913823226785124607025757613796411001944860288706994629110236480646247508790705109361926527319507638630938232682751056869148624745451486213243568681104229444556398297987949247264479498311115242033550328632910021692205157552057765209473218492747078937254490619320051597441230559091619138071967077710608688881189529417922077833886597841124067894436912258732654288378239397562133068617520901186123773397303910832661275382953315936067073926493616055178382847879033332144107359089361715245438090087970810025382230355254546406941113029431950238852879786372626870545085884170261932462359433775712288664235549810188939014773184130366196977751560077091098701829326303981250253220370057316961612991782686647720864617694761851330532781076588486497797956301177820148851489589095411792614053793153399393739944434764975460213827863744905965808043638474858258070179330552071227373933628566893348459382804508843628903074713339979180612881348247272007339261830525939488790877936646411995051932443104696353931592818046155128065570416652113896093700021307631838636002816353991993395156614336059981087131318780172314757122897533165489637488646966845768729309424487360694344218341414757630051387380029492299834265294206653969949715223888195062565410666423460592003321076432271301956265891338833248600801921848235768168953001362590539437358886800452541404351590814076642374833084759798354745405525123123034646776942664644183116552772546412164837211285835455917745272251727003821695162539073804910269234406959706696687009402681659397318397275982229287828793417761896399817473371174311925085861526663645497969069763919330896631546734506320353162751916150781957796642260900907725044483727109249527238067200492252496298580588696646732065748626662382244927384551970538724390721157235363237643351764582654406999088108304053003272120572359800654430612266841276827493357362934822284494360592168449178113528114270328883137217714630430419963160545677796180238392858781718019854454992418274433527352147859797339923126693771683868829293659629474934924355667344307956411963213843399765889593860545119993900120430986595180688254934372700353289141365834767255710018886004189700139831278054920389388760635263072183836819201646098839925789891703640757623565416637930660495023382553880036893487500903463597242982928271501109563013325845572857358255464694349880045411169939080791729259459483072266245476237474752832257402101250701332576330343076606656764697112042564721680385812620218447633227968319648417924594393803463042523709797567622360391667193429260811335879949214241240769535084795540011398803137575171878728532993752063161043363561037853873611296556126981926591635929377286870509246258296638038081097238196677320090539517586820830833155652383611303946716266879012858501002051791090708527454392141693108565997772476250902329915875902245175773783540745606637868079311539397558657134696943607543063898864330131742431962357881282997829259894929999666868377380150431527587220771664485633121615532744389415871266183863220043277335228528641190347433148221419754401384972127355800968532684722468062316366618215216492246217950587382841476781435741935505899191893233335739722647171313020495084485376723068460365611252715177174787449460653614648552540115140903015241663094322651825382229085228751615526118493259044113217032800624950665775131889427080632163643773809422342702182032522117539264842864606743032725531242481249547964632857254123196061810757667716466076418910426051446495198707614754911882336418930958868767343385923443898422681311899445102959718536290077182423728570123784182157139586390460224653847066885865811880647677440592673366809829574923837491081130327373451484528088031765821047556652702412163676750947104555626560117875877773089095140763583838101705107112327496856436466855953926672628604426733172127545371680431780940926993805015693234874760015386874239128164012217733699165084680790717355128667399192908095994548517691792439785225760280109062893482842001400689133702835415279183150208849633448758812786734237758119824433987409423215832323234460923066975716605292166449725028959903119159685855447501368813201543270882653455120377863398285256275066378538707611485102832053241127695601599986346975398585774320114751606347850946887849071524768562326473812392988585124076022303206106850869230439030176324587772418821572785516670203666192266588708469022649429751683810510206156401224419397184964998280241723570072833952442712479552011041855141186740781641926582565819318204124396073753656621976151319119153357195643348263421743913400729673243615063026917086315491979182003469350111317627348243945335800006734717552618905583223970961059911797566930974169388676416592748273890994591941104049330400321706971227723295990684186919237378540141048607336958736940965072337184482074778976674619893443302962903251509664400727600119519336762873733960404448808058010562704292089863367166329583943653332447001243439131497662130798181180828470468986780436611893404826513912623692299289348139522215247039268807871905210355063882068657219872912011894971457558784643091180698915601352181058924627740134886097593494467321138470058284764754015289026861408662336177250020489126744654262306212658149379217178520200368261433183394321992986260427743957499583708790138750546471477757597481166484314176414757097477668695263489555968810305166719490277400082854390791007827845175200563751895041501465022930019325478110299288791655769063442449328858187218423978778500313471417807093982924847083198332797208965165104659967016946511418553983494705627667306552514944563347454942295656942268131994277021381893337450351016322819767582574562855469989387835085474204403760368736045282472095554788062408176338370714927635011557146582477073940703658341481336210852977228200450335386478269002776153588332984131449545015520804413014312526273462684466602315907049727131103386237994470072447430119725071421039594772672248625906166976690318420238065203683444381065319387268148405500248576666243883585520253038570279895039159191001160193585252089481216049065344817877490001450862977634015439427594374800308795333565201891824185877578101072632584164438330530490978046315846336810613950361578740712223315994305907378848711870807341833286209320554722306979108314322802737592234103234184970105939806647196962366372531310530634823606382782586421809053217328516344339549058971050373680967451138431374061563391779505581388439030033495640260368048344152696580758515574887158456630156802842250668722382673685612349194715383548824342345691910294335174078794218023429496754621185454667546684771217785339616454961626792320891816368854488084672324446929966409159635844681557037613169980588955252990783931428328800804993311840366718609642235739134127169170263431239123425302294440934537652632172770860738601081905988706722169085640849847311246633120135205020396883011656443935008977588266140378347284286069199912868504761035464996412980787151906207247387703220165380649025628660976336060566237159897457368835577516836381741512239776895929408847506245038091195692432803474370102956457723680809971564431880040185861313897202983748564852229093611712790752233026509041402411715639188732296508406565322819735559130922849010242702827456640211068050821870404576311141738116262291400133637804656891607083516905605735708630605911500220833933461779236356669925144465315572711666228083157919517807335677484808769205275614666604272993584840214023237817151366192297544268660189363825939277180778836188679831528289168014847292631973743105308206171649181425306004527368102875217823754838887353102106080745858603165134653400645600970109473525231411701058761895250390792985261240034576187137773668236717447396148596448386998275375275567262021597353999767341767582927858552783372801579815201955523400379365720701297985672795549499159907840345053877165912647224774794094626755882983653190870886865890087688296366918663249260183516770175690007947176794344865896302271843299538818334948197928488948672266715563304226479661397486581499272573284994723597178758016857878385606793119533990039775263553532367800332325210560083191384741272134031306238454951909736054850632673488733634924281316845148778693015065017785222439827752359035334794211582365401500092681698220864229949405733923045374516135847953166531498088121117314197385907675003873262408423020662538207692823986724493174440277752879981841500907676104795554243336107128679264883249503740907606412571407267720641884305368231949613439534038076179557005444965859667710428684762369714178264568749252045131964426448318134532727376504528922397588287341708433553688262140438629798473210392771218666889833882801674472954791462853816779277480651540740565240873412606460828584787580027776463971094855264078011590005459210661924603897465274230740709071987017167259321390478497368974711431304419466332397283225430035583348330539245853925026222245842901415567768019005219869600635961227348813558033281194737286064927372638014604190447700155642167896742413758723837679199188503060203433393594626868238245429588818790685318750430565166917740868170414553015341495467051905850737959829584397759425745106996815523570821694736500873782063028371015618889932676874108763911820738736654008709658880184032093327004782093361333136639530968252725365059230511840775734700764483975884698699137596942600095283776554652708732265683412607196696363079097967664477937304699891812744145658811436852203279782841135179571558003512784441032485749735637087002796832668575137984476568684338222623444056216521275193717558160711103258310911268578654499317861050408168148468202309178725409889100393951121371506310391870134342826965717383929694105460911554013411403821265605451807809278905237087188655674090341421503695534418939734886515916156394284804653763239855675480444242585831451004853437549781029363613783313038887351752927443545479769303633625521037834095244503504062069457504100222350519670071985030388975273438239922918796694396443492502493895038586334574801667295424250951709974270140991389783784789659274108202738245203305376863200353234450776727873995911188657544221177568436927255482693221460654741904932474953948405611684655133904672185575769953927118832811841713564383113974326619570322210819360342872656005930065779957946667950492656842969075050591189958983678209188805546577461974930554937180911279438174531338064848745502109432289311295246081405351197499346473118533380613599696932421952016951681794243224451455970344091037242936882134713315118932302135549212851272724412218918819461778336741298098924183295745119568155519031345023761664472463655280700952929714303882068879769366530919591715026063703470452019457152005678241910239279115370255379236686841878161533319151626073906581655517589143628092979638298713187802730875416094253979518526647696563748852768316492766888337549746055955426033913022144059418957693885270834978359360945037099660002550189013163153664785793378858421883821641424992804390263351418777370302687597750069117031738712371369860523861276600974920168654022863006130411582978635652556557014057650409410411711552595146080251074462728441994217060327950434563912658308556594779241061385439224487311001111252800861613484262958221322817025631546039994735903611872703045644060990992299350620627786953992231361595575438682247729454203639126029871571821894758493880274685394201199850015935337286988864755844751196957820482171765083053607342205075132056181995002337811314537529399231969688451875086820813568560133058930510493571984456951563590365766655473319927359032849092309778180243540356978395025416215939178903515300260434440186438056768451002999249372791679080449403269067641373226911422382585979534272395734921573842312658842377506854252849711505148517585476589098706639317653278353748904991690105862158980348717157333821370391750169985999965280009772704778582882376273650546093241040324508202488886701497408235665658785714690534828484962850146113044106428210047849707953927052157581314179292569877312495512208591339766174944250013283321857935839933109939298415407325301859218807584030693274126934213534532402391591721564514223702026261188701214137770802989838580038823318618580456179909904128369929211816428146926598667661170622033324691907475624355510633541486071509664151749155640285333603077463959744577763354395719998649164599411084319986737223857055102478588661796347900980687122244404758280005094256141342562861320522162757882993848093803473106612349944812534429455230845531663737667397158849070076243007958442800448395961414703325234932863953166293383689124866146557795789425251408411802738445201855943713921982100377199461217926502205420549227324642993533559895923502848238658491150860321432028897483520253416556733922577595006451948734507364492045303603371449759851281146491848676801166198935738233126717918375989931304106705079076525695603142755238874765862396214751430051430741787753753040296199420102002194669601206311099698865310775264161322631632291133331555480339995711532412442658909512322615760770082837982676958434109483900880177501234580462756795427371265960487190309662789877781322244048230130714809674540130447717578878888382942062767440429274878378943837966037321869501662922686988300119043756131116044634883682558272038392904332873719429833505243372351953262007387439693557873125048661248508654699256641231200598933701960719318642610507848939433113872793030520521973075431542203932121336014095850182572926356358760633807443130711655601686028274005874704456222421287476579307949402130357579103801042974196176185226335637646748016316958951153335243608625077453827433300716841821662647423046809145681890020434764900287204949769776688851265548880662988058408983061851849388779119156226494253826675967162066487486830673087551586494485435777079220614981671597603309363148114908548159042046837973947194494502916862675913565738930936981455759159466038563529691533214345297520700587146525820536555366728306948247955640458061623042634302904868348422604221570609090053942643141507648235804925508443239419697871851484804473972470265954789423115565124671781989076631473148631702035961274627459711687028684074660522792992320835608001142986715327820874316418588796828233509937115785100780851152588347887620489549951914354451750840607739582376117093400010166107634601440445607172697604038904607355455474528997531035907919401680668090954889893680147067637944581726851852289364702297557690373988621762955023049723935547938452781854592664101242867402310891710081692383832519366695806299064351065793595921485630321802038799302317845949017420166681584645452763404810015956334870515277435632624909297700834208595090981538233852419103473106870847173029141815227836736946696121486422652015366097186423210373690709124989224200835396004855507332877821745075543471804549438505741762081557700660922036156139503431281226768523718080149179782528248129059567242985590034525432743640250062142342983135998595232260078474406543423425632624156822413466466255939096901662219904098428893704014520901172849314440767904112063148751921575319251118499753993791161382636675637939204388314913778662536142737091208870276911183601566048973141214085313267700001195435569662104717841831650774983263270353066052682360826298703269607685162625587801469471233893838548283590050466736091689603891203554885175654168732960186000031113140886518821572331288490320217206982978761374812296907990267413391180839319541426101080552548816731083404186475090585746717044227123629075439235654299421432773244910139731751904885804798775321871565593945017863706284195258917741191612500005866588577520759398296191713853289690344055512508248580397770918175936608030464980796189172397560769165999105383298767114023248426868969705452455266487122934745428354177286145720390618767186283137699282584359587827289981839082122587356411084418795165564543875281981431370516088842919974225794559593610714304210643009937834677732418837155130454529877040770293345478216596603517902296885243632147144086845917760645373512421974266710368731646090094012253857109081046508967076279523323945038551703856182483637732920312680004077397556358708936081546677412201698973310191798351911658495466604924831122716802271727350286984549840616570895366370069683325236052759522142646962092389766545638125844907774087557525110270773520024237712753865266663640225679470050887588652433626871300267380994398371218228551821992289726491458390624185311526636013274688518268054124914620796772887837642563702772690542897233838280120513206018975853687290648761245701775404820486787046510638758001236410397501134049521719780336255238479780942262595489435162101589299036367536458212730200514591855820357627604555105933751887199805576136802852438670004676928238036636971608134048086026637413063486829080268841796319969484030835285014395507897769551803466491012910696460820479612951575433387517283333579948547415945768557298433328445794633105437318756640033328662226662603903045940649827793562912245335501159093044946380623618350596715988830974760551337113849302951956582360979636681339406571701391345869387894643293458679271045536840430912235365124160727262609875139150724926909912862145485064857132109398221414928566018790742571109935887011777826002984369348470529812079807228519352665327866947302750647952721857695045344085976522834124289730240764273350425359449571249570059350614821133760565360765471781068790130524371003534778628932106226545049294544098811944169900187581451914129362928298599867431649830770357770970653020749062681556871158831941541693335354211475482201164482063671053036380538942178275064871747119533455426257523918049612358305554489472966372343865424186548830075379251621432450054433234485447489983073522807816369667685712227176095808005573239052631570831963441636089897975992678782996564512220252344985358918446279478282713637624053401103386653803445917386193296935937439223648316831252754318123880193620158845566556248935656817572922284933194207919360638498379949854638521874943153356196123101345299993079174696826589221131909792790414410083660539259344243995602900844032291729577100666013882821766557955666283200927172243072103936409691732759704828364385300512289997323074181542782662826407667600405441230691927838425609223227837127474028509423849083829436410343964930263914732229809523157155747316096973063950097759683416452471549485901411420128093368758514617853306122120277866456711289777799097010264472639263422652299039677285441750788227121631327287301718331848632202325022490636785835458877967484654508445966079144357671806292971608385352848965638766162264612540806776914243795468548086456641523042689108422004666434606272707201767490162126092668894240437202244076582925004651985132213626759180611825665663882156147558156083538941781756708111819203445622321341826086366558808896631401987065256169170878122716301479893536205490579553197826508914074721720703217616488596733777970620948046697377177570707155009365066931937737634911271269840066554701917272822676179599547599973009140794452939273482822496477200913820432333361974741306678053609141599209484877586467968376490761025406327949791678002921874080977949966055100789360868088770274336536370595514284474168249910261536660372027539531105441498724576492571955022312554609934431045585081217441337888818970870511233075909127308326155204376813030912841669189995001900058530022521445515386009566141547097641954494557565293402773278221815140657883330734598863713454659846486634136044809365391248090169878006877683994200610086146469745879195751180677897562538988091149304472569106264670351669990972246085911576125118338385129489703527585323381106845164824613768249389147577629360415090018177482305979866917823180001952889885227832370216987229538654776248300067068424397694070317258247554480954686315277211550750825082993594965532302368411590783080200567385076715709085844892239335547761230767908461734995987228975732529850846530072430009813590422754042940185508321271885387480353338464011715788249587237749765865677453969773622676621685510286446193500501129003345175757569757898074420272121322863245406046214573428216121997349746115678520542075812316836765976108045754372919107360722779581377092026083316235056059227656920717845570441517639750302291828897149786105987746201516788016445967220632077879978223219851278309167371139682544554462139990058820499956657433284090994881131974730931164230212656418256740486331792205231144132736589377245300231507588620296003274480990039730197379825902482400172714648424253062569085920386368308209493775091886030300491932701214906111768153083316275177351568973679876733469738574996506423182465277814640181043633505190293438972857578424835064979656876922289488436178801940374299845699400014217921086707058195747856264307844365050581652168521729418144967672722413025003511992328050630803683515787968783583964514123251648974417585748308074268357392966400767284828220352986062563012035040063952731289291227965077535774554889969744117958163239181710323556809033317931354471901825664159319411426534732282017490341109635293437611931626349080845271366257886931602158709265022381350018716361773758812448363201071736895330179721949853457368046782334284201411644262623990349237929856873291442372283835675410926762233646081660757158645036346431822695293251322681341893807936649618900255373130706968151013024289210668849444786567243225858843565332707853038988376891499232512268146473868200462190237890200897260837438672657951569014175670966772993780795043999448791394469898307447396129393994801803246305817207821747928048205381471368738021666990846930315845313673153492940643101488363359342141492386777861384685018356737277044378053790137461722326005888667064575133012079987323877195703550712219016680476233569204901119963196296596680817334337140008657932199651962165752871237634099812044332356710701252721289650731207519407111198770263440359973923658412664459146239902919458178644663172533485762381689485494142358247803258967550011822580748608019686110376429487008409614517371422847142672862896026349402235227990595330486398860582106085934570469667570652951956116522650928130735268558530846999150999399107499996900851591957714232470181708633949757928659975165596455570505046863618503811580864758153755556040620704648083109811800710235865046809675311711842433204657665988433578784653445577672370839370238831418277871368861105480551744159188163146702842112408919001364023752864307759251359795561191854392192141416814033515261790490077752380071931699855258270333031898140949960888891957255740733242425941758104271691245505421526305082843132125652065890571874381014976384778379090976776417198978987116462610180036880713838353123158798049365841288844121178877990814260447953302479736827791222309081022220035004910664117942091671445711246171275009210382274305146690934272569348460283623100530568282395905349312449214420394968722892029489141724935360373422822292207230781406815399706065248354343921448399241241383374880933586424713976523713891912240857542378290927489078851246680483573053629084254100182604245890204092600671806492497316246887464791340973216154126910704451829547579656602457140525901229108365350832283928830445082910124670832559235641834322114709533093828703958811424199569712554449337838463633390314061052645133828674302148135930096160414621630654618330699558669567256561545574451157753672402450381133151916181722646110580218521154959048009736217652455668509512981052672034199017731740290089303315193121743302582952287647317246428555680968328248524757973932845468605153201807153803710153827405526949259177094110942523271960884598890121363241693720319358096454108838169704028404463919831852979046025065158022109021097119893433352384906568077719125068476405685774989095862564549002193516515639452975769239086308549800854255527673350646040427928008002933473796554204438653707154577766526529929485123998611590446646899065684914648924577792724200037767336425332230269502272779411962509353009111234522124083670701585395217603135509097830831893234384022004628312877080983531162199857486633620912362844728999585579573229196672275831531107902021802620824827206443901545798685660739489417811422280503566933345096415540529674268205851143448564332077799659709338749293023557416832471001467823341782341548029102798561275983631850954399180988162807941426188150779460110447635274818390263212333819896565086069940099197389696868998894267729199393172148160827096939964938874776718004769013673190566483749790563712880078341077313658731088076790741531527981807862049750410772779606351664145134097600021930441308215276946922923607913514759018134490675684243631990453414817926294539257947157365606173105245171298893087054167495334578830366961257735836743743424354874883735357250713876164185779811282686111798847775074012046037285676686940721930335621747536547866156631020552922867880121439434681953491743616534913806012128226413534913793807453745325234061228394143889805068864578511949646786918445795499011996888273466131217642963669488793182804443685512090302452797994096823770837366900925315655931430515838225135638933838213699560874476876951868703352828813022334037607764521047952980272379986899275915590982970934478333850539027569241330254202208644555896067319939194119475439256326855378282593369839750747504208863629673946937777712185564622778976832775904328970798635256562601271847584314442260077078935843622174995492443565237571728373971496670678675575501441427118365424139101470469474080726943797681103324359270471795913255363670635534093644105625371786896356835051357908264386833813816792507796322789262719584533562492734386181601868837125945060477098939567333897081000393817624527736063593797269460554164128331470575917694592811522725818973932520798403624249952005032241831620782384265026008294602292256877763453927520085122094890996099940587336547295318685655497672608200125263885789478984586799714032095518230810594025231499495009534033630161244082227786973606769163675432451138737948991389385603562401527480784778300516538478194326897792749061731616557812524231860494858371362221992372529007072401938771934432146257053790692366962176339688478727793482827547855069177612611052076265820047178621178555443788830240040938574335301192200124837976830948397101545713081062019800632869854155605687267555255049884043539102612104900446799060749892911205715388606767450581146380269252341076147036721576641977970757595965568665547996575819401513318260577551518146415303323827425510848747877649014144196069356460221801192892609370423013834904340829794324588618564635615801873050010937080098973688040556619713466879881959001300016087411876758659244089069942971476672065670608048354688214015385735754314204564479649628610730454249900054767655667485761556779579645377324150895208300882127541553920214181622613002704616198130577810362830141773452221610096807494855244727642571631366255691544896905494518239019934969267475654202659121274427907591711240036738259463736742155253067423896051304146766664032507743105120043018048441254527224513387722949874180659728724170365502915321716522289316224055762217063125569312609216250077419206472952384220036020237947625025805529006488273680634919938125743508017412554179661681972286243592461115442329791584228818387047109468910183837469369635391466269211551917648320562695170880436615734907620682243111247104823135813881170867607952048369196144891149699760438579262838101665790069027236504542645966908456452372362998414382519779493595793218944282233802967405683255505740247079101326759859601032620475858935748753631930577061969751248930513110095030374231509067889689196315129109581050868452766537970632438903691227434943568578198633205816511792651034386910898131977125455005917706661998458176600337605991867432340146394086332403231702645628101838069680084116058942249672842457988807113921625959291507861808418827833838324651593451602984657460116391606460763298862798172809348665575830797939975594919432895169568230540253029881690734209987104173601519835034834718022189884952394883872573410874026639388966420387024844786654065376778176061689054076315163564967473668734161922436963956997650161301361299066793369849190547120213542505928471454823892603919850033672415407407539406264108256130044802390037912317222436856529115210808888982257610933220889126808070064559829246558085304395009067377341577033285809224020805282270467198447213418924838061209760821727324011129315555079399803243138562829909697352178862590470904779005546896412175146219398307614627865570331212686410733756789949730328038481739237024457579143404144104085016754462934198719901981487282970335145670861981983497922337936321327266275725997717427184146047467854376483192904800995497169579240703614251856428669599451858558847756545815792803324810444148894718283951745460130344053686189007947249430878068516681243068719726282590510386152495205799677451087362074035977185693968383626082330765172039076941862622755398208221862233813202539699030517992728843952825146113473952605698240275620549566673304553308644579175280549281891463819967403465591836539384741175476398187558083380380196338714227113260514799760070043340982340943645745707625204260256584538469370593325951660603177861694415513082818492103682098645902318836871466514980575070399270102521643914372771117524397109402243567272807243732677056752604053377499888829641904638885016808603386012311959773291838930356993425982846295906709523507877103413502295441236995790878363669091184243803938725824085245516796291812580503898837060741469199340306024225237979163387476833981400264870973567302574152674500866952716575791733240443969661010949417617339614230757948259734969237753346010248063737317692003939825642041504434741235878546473882170635137118056568284165758384279118368700308571897395439194875895351568964335640678606928605295380906775736241064119554347333266052180098977167075849716638886413256259906925943224652856055173484121319857081038828727839177052049234566699945726874624453887919191868272607071227132709575790259769362581782847772163339127493813041739595871194278323488248672680753677381889787663660027997742159609432286320951295658826952094042696282332274557821524164472930098676538745231791286935194765935569457718704425017143183104708017355871854597315709784176051104290134310756980802266998531460894698832383580515423083376865052979737698045366494831320674292281906797890966529694990015961528802889284998971158902792625476173210132559159848072156489662341582708678950680326830114038981136360529158944830184702123669568490137404972714749730249491444743924409832271596318949372634881841631508504456538390750412988789770486537279634886608394043642888094251319438445550419916986915306976225355583682587865432942059039306877641935251722189865478709229271726514019215058220088252258088132277740306239675322769677509736534507583593763785691314553964536575332904716715440877616620217119972912542767501169658158726234282903198305811432178188805699845142335184247960978458729207241617582303504022038407399195321812847638067568832554921053352338391232157030520001883515862736462545188322740759397904248795027792494983196106340855774431676775491217638869377016478354418158084202485631514541794587276391206594134130995540233748611358263095093929537357818891692039059601534545264392348006249877653574205556526466636788722533419193132952977601907334716647792793028460837822612961265691486673124178435381487601571484536277611306010357206625538660492421843836106544902862893034332026537468701268093018189470395874298768030286592136636139252279809615032038550585199805474687663696663736184096725436310970484065239191445247090982501568763925333592143238920987823191155956718020030918773223929758147373458481700000563047349102477479203470800675911969649364922511690372044201891620746004517526507983294446416464805222509217695401026581271138414130948564497733546807655908685296733115925553992093943971269734297042144594964584779332659161146341739230947814801855735219655078125992350032024734424116474938687208081423463769161655132571919539567241268325346525161950997068147941421383448807338872284648524420845333468504659395697024944179675977480609040836191896935363980538193611145521400637133311608299897535016683495396719126213101112363779582217411216129402732670128630309398177056989157292410469649482520930090991818734250603250231144934443674631387185682270745687071864909893905191012425737559052007690851224247486448445808774612513679446129495365073228480735911300296601550408841346669423055481480000000030611884879741522200760968717237484505301556916451644639229334323054235187070258082255332192964468216861035797640424106785210072700718918570768505332908948103795205162562279964200555903032595070196747381234900627631747743603452296928131954590040316784766098084908081423137361540748126831559864250166901773526349362514617077810474527071917923974481978044348051990669149685090857868278700897949541855561481254166585455893213601938731480992053793562604380824500613626431592594716692823059534173763528232177291312675983427449449015795019850900717205802778682725956626617328064728510044115674654302077206753431435850389283416360968990746687744444647048312628753650605298142954716645865365171794052620680209291461704053953343110198991836951370452614993530317866770123753779364260419731965647597575397841545468664202822182956878671401603872195465973600434231502542002713955252872521292219417163866042455001312269123488668555961608074325614457193580746437248904087670992735167255134693572111189959911531145006968722774594610716589896052081849065926609645001110369596349262488761183234833689780410533079072765614586560319546534868808232364036101990093805988631733576875573511404327360359496500880629741000071100553210709500081827618501190881892483438586907132155197439226229949415578939251382502685782242026031607059954097034604804387361404498369206308988136742469739572321361289820049726696560905269169930893335303798256720799673590920648639564382617624594391991632585681314098991563381982947680851807864577822748430622178821881963522860761420581843849626402734423858248218144598446751310526664120018964155276917705456204456554313932699924620459529018330874640066653770446191526466395166686666705267818711339671777405406422608686668102898652634613959465082380470670458530675880693537297738551071229579650533349171446016344812759778994403908297293253151584184156368372412658389822810348909193781836353480811507528160547561301108824175460547186128231325857738320382161011967965929795719897760704722509214113667740012520821994386343180914401187682972804514122926388958099260029738127602658471289575024083731180565561020937611350281320086426385130242014585856154666962214754189271663828032832665578458305774733942472822829305359979754321447425172049163589653839902638185257944909597554592339458759260685789041662373457652634107734980116049372801712666775855071076920025576986111339251032192633595538941555205545450065026034617533567599242827182742729336025116483955038871365415794091363209609901339653308260363740982615029737986295150425262743556246338617150180016090805398375706399808831755692375780000825272188366827012736441322779884780991432050947282085759031887192668516453880731238462401238120775620589372156175942514741878484794347093677564217705587642092024871711538001310969079644271416268492113147518693733842752370749713518642310766364662333953631952708097655697817892891287062256131249000043883149768255879360958434142376463044642776605177277649009781385533836027967280403314951015959605267370355870783423581978260466454174708329931808922662158360369953321696839209660390546012880013294199804520641948985023113448262678152194117234629557802908374051929941179959222160907407875090521713849786102739160045119564307558563886017343825662727567898146674316122252394803510426992210404847426670329647228498678327083893530232041711355939728835152763460778937205466892569441727658094731096068699401922301160289039074353855188523807728402513277767516082447030058103486322336970336744665290320517742745405848406926075056891262074508035024870384282650580481249120576530285472105322493829102407901529967439005408535181728542318580593165611464061328476182370628453029913060791444574111550660307452441768394484450055657871560275605727904617356945149496175584308405369304129387047957122728463010358891528964556236021767135691642193085012326656198056385013792816892023355782536082198724500617204945536189335782753592679301295164834359276610790386775269428738465580353949660058147281240531582552135589349463805445861260049695074265729085905142007915620706550182904914278552909454924873306295067156733796860552402603077848964823522600709335542903337422679709048352256434466899076916326755560769343172256059305061159638963275349589190025017880132737619716003660163011078954350990215992776735785734683057219932494498610135048840211475600318934110023366885780986146968055845833571830369799653774791418855652085810613888266053371775317241338442514082401540297363023763963840394874794569337382912659907420373974681029981467583597139283440750280383604424803155944254826813119590703355994055247115311906009507478433101670459892189685087934334816090299926405219587416679761877780405042500219898371001024562772842684222896768725064413598398611338867891330066674735698099543288163822466352290738565308652586232190381586915793461542932305653625741950446711691877576705351309082090619491844761588209447618016212671736018285595390618990982081628548656823832520298254539730904810991530488666733523763878006497554491770819481384235734585942858707531825791817407201162314483520216176491778206566625397759129911551447693736765126249105480406719486962802480903410679398272908013953932916036567106185075474222867470389434728245499870351647671116315635446863018468372357657699956797496902948991456369294891891509522920801406148315217838500909947170497994511091286511975720643590517983763953010932115747672079543870565946059584668525907925022305001818052468571618280069281423345455025446022536750792551620920852251848517973817745115398796372482163369129298794091552874199390921259908395153761956704102898232020599970271106015154374630332581102533121153861173574905963696749694847339934518007364911227931408907102831236874228312249451106913458850497336851896803527270405137364884803660406537069825121864294444913600965534386183492955007306358007670897335814828342972750027437575773867733701931241761409017219388861687684369719692869358542394846648128041562832289431946756382357880148509830963581650047196613833136278854640647606361579876941282470622896338961290892006520608029762282454662201700303587372999433941523214198481162646423064587104944546384284649327314461943557214341576481152188184428746732267786380521443663050219161908595607206739665721486891832686051828702167262666827404558963572025389279910405657185691354874937750154504211986762991248171255341823393170719153996432795660920880967016738236123185068980408592486145799004360748261282966174407942094653427319502957802474766614387021768848720653206723307389334530117238697379691045721429135346886903605490174398943176771585897819071200104131100071206289919262989296038365206646295049856842676674234247967641829802769086541332077516780500255220614527459095182658317461498831849578928151569083700967396030906521228806086040129719237286588602275359416687028802425765722484789908501764778258723637204314209949887527891978454799024549914692754262100807971789576949692346108104081470450759558436159779345954260688432204025620081693181729143430788157360336313198478160727096177102011649038052236491493666542771941330848141483103980749761022688130677077956899056626290653843326225024029490489569752055910558101904197214954509330575843941234028940539933261684909413882089134541075609294913105630091711414959045367827307216667370606418503511979508091101902069626007684157769553621072559504469738554014862822478243352434405268985573253073639827911344617395911285934860662574596232954430548298357092608209112440379309589555006441515934916424732324892450585674654359728258895755251986762317813815310762384690992691841234301187213736359360164537115605314719739129824283603784619831420141238148732555637917948375928985906280558998431154036059010425647543702095041255040763810345402850275869521656589281218199828759333266314305161899372200967976716476568912999557630793352122013907114343458997939093754856132640597435740528502553188493909933246064890799996062930234513454737446649240566720073788988982085991001837374725903146992602580673245016099724040882399575289081756377990872962826511711296283239867905434223164477011417301710215258265993418763391617904912516569977479647826677760290097491396125929558297791805943693569760035373543292188310533062558488943949726999563589296566274650548814775372791679610954881608463797670440417513126787373526946264940651869429509508850207767661605005460866206432151682079903147924575725151489665029559787533091349392334472588188949972268866244173357464214604958295183686210830792111516351752370647485117013141022874562675362438821709374947774735725413545277021853916476504759021348671366699857487363512502054911549697258407522257848548394542771969513480174782105137715551499726275101822023410691113288321228765457108908005217203032534088058542799163588914064924878669240910701227661456294059549134806601150046561459118295564339892767639184610529092245527213778432796554184115335214901040171963955533982254120194091642808868509343288027158001663504011345097061494428203217293882115376354719271642278356146462759290796006394489859088488705425407559469284976320085029360740978393463474185853091475104934155651856578033481220378828831657452934655344115948012593603285468820870278986465488334058498671459138478308051725864813379617055902016873753881762158011101399657251818799020145458853335957571138759568831562699502375780307721778886957477422996465992539321773014895139525627742161370774003435125761700894909398249917254931726433618665242320393654634852287563715076983941516775609598989199530256913345946978713185995896170736012939974083544123327563927010553195096727426444765522599326821441935564242167481133280532291837922461562253271292648785819267535440368246706109850553066617784318393509421397427642652226352240666849665951519457755562243360313162651713728897078853224720612294820725092241831246102639644478911760720881395562345496005285568203069643088519566677361363066373398124109589642539542783787219092463621005870266361887507369391206161841371861626697892788285454701781916248086080877962181464269851037162886097779277596913690523596638000398173671176685060075600848759295450740965012045969149775826269926183201746985017957459531275769296660696159180591401509871986462825210701978190017184192888179464835885386457809589060958417860001680386244935445534913304754836043047452662078536770230146886409621029265202479976663518513364669397159721819620947839632542575112739845701828948402009279985336448681032892563233245125838618882918494447981194368863637756754601268019401211058502193674367408332182106306746904494877947336828877476259868314392516330360274849662646522765309613729156293603884482456814455780118368346449368872115752626986839930696544105761119819327259509878690998478374029396932807080795481268284391533988232406873499715880934649684031494572900976173503484259155238377494332779993456128080354004201721217852998879733763016951117641096739043398273380518186085955089857688564521777117157893097552536570802812502603603283155855161477006361570131239878073098305503923727767807273040431649612042405770749398217229214545675210782527497125773907692875920648004647214407215777587290996251621344299308502982779747461233768045914108386404649731556768211297643784314734382986796531581779982546197518407904518643371595425892059103043894414144214671330356941083467034623408562205263254052737388138182837324212057562229176734900643123945287641983767769118246681457693950483690626257692409655286915975410157610098770477727048255752646981999840426708414140485151334736398279597866845010595279800510556718558142384044075173250442369165539176052355442230789214209864643713604641299071932681535713047283147746446578110482369922566323736417296303402248366506745030846248432771183126853665241598560648458496795300744528252624227386805948177692965682225255161336294432795000631252629989856216007597469265738518366061350982391596502986483013582047868919626840581921263948380573210507093836875803324936843574639619377259518613379157774342639561390545572356764381591628276402201510487091292928685067588750369608551619336118346799545853681958810330251115864510156811724438198829233171760259991735736778359286949749398931582456440762520419778573001151297104661613184793602643502767319662961910344411991175561160549131644904815909037125134282708963988478779018101569997781445666440779171603489159413550214908610559934837806803562227121996338161898657766131272482236283554776410636265134618314236576182091995033706337027913783923600930483388117590108396311420137716349795829149107830040239766511156726242330709674395467479417281600334427473020806890877633893164091758620626552453983963503980611699218647963192343363819744689358087509521460608384591471665002239439472402925061036053746280746730009417853181226102352434699529358325013713853281245595261570611089440117637737785014208110092249620720328453376519713527575160363067946718132820641144609945911922243985573105619811153140973910278607624322078722659156541095967436024046778579227354124240049575161868398591995631591720454504721397506784322314968557783832971657727420482180777032100385579583265357557604715250725902982397955733202381237965334186820140278003881321873188491780862404665582863576117362989138314074323993123651054361028226582860673958722465545140245321899326708047400511554889346962648056311201035511315875142208590428132955410237185235103339834923515623637046217299016328503004641033944143610086878720825332337827946984966482941229330833401424632962938693475399637039699393744169273383676885743981236386220416674410824548972528689228660983084282381462994916917105502197264756640079937803207446980209419767696924662966038134597621327137757959429758351451119683266192389552526970443924879034516532276268685077517737816473614131705222052877818389409303461000011527653224371965515164354683170544074102198994671957218852268514169702646073514063377476791560901341154114118747651271792074708730951648969762381865890127079493369223596475291122916612452291144464425917770791130763761155218431853889889300751828581237157876833632828120661005001007300588388834411918926794515041048471880878559992995563889963618470349043146061924796589932791115649254242850972556688849570936106689050408839304333381712396924708041558406414268889321333412619749572184639118674833068958768087423168032181652381394869135209169926378736645303073939078092903716507122454715987952971655971899234334538480271926573768370539888978517498720920780613395748995407143548363640145093944777272443963136231171593335053134742528294720031133769736230261446598336082867678660441668487363377561657401675108537013533974618156695714056488487897195984486011909033171866257048792824018966745502503368718824193614978708184777168151183737149530082263213164684510201709627771183365085113061012334887189996439132242169616682546760055764334781897193487402606873098467052136464816752677756299595092409923733432742607516366713624552183024278511488622708185956910962278425066061586346122807905524004409004555860432604383998503309722777006229823294457537035854443169025500340259052148598289022953870432007973255280854988250781878811065573330604899518512605638397179779692468302424990342253398777672330683926056762821224958591106836750298350742296808208222753106904862016169542883496410422076068079625406147162645720993544794225159766170347810627572326359457026803967807897406489206572135779884642020286956423297520841669456097508949165042139793148068851140697967930634472717540140370106276534508624572291383823608861568279668473479699184567713030002175365025764977237568176364769319424917377479687414455621055398368630735475930857763354293023901759841102032772513361688449730051718316437286616742877494532138459166087999957208966306128122770945442033110993800180237330729853712233348545080041284611827269631181940487339752633478232230971317308924641844752016598747747934959011853440779950995486552711893903323394876950264986675614704120120751715742691702707353627224764609465782635591441866233253069398513075913438810020176174508511021116085653219906406413563532109353069879073293395365115815333402820792873137122937085750521911226294188500861424468381583933647521838220017803154462475541156505948763741878843002909320798018010309513148163695853406481581758484369622140872704509334050856990542755451063686565570421651940761025505713088011763757861010749793189869855856154658419732013764149606665099518824371480818481666383161391574216943567733599082096383552453888654813740805689504271416040112931466405126313968168258375623913702297047446984998006319861319947798729770562000443628537140626522571106054038334206876301191368284072762291598867152124083431721613989399004051120236616071077637530367305161233389963946818237614016253201662032841036478747910699113561947208461674610871662110153285441490045293709369121787827971074231974988129602015794085582024244367809230437143760157233595210668883981981180441508723353020202554054354910052380338095812950263341960903182219273184955268582062205031605359812219454530484089441490204064783751111684940688860725371751310708404850547454716285244222469792108257859620284758961284209917420243963479584204097246000950332230772278578736108242508272645257129423052738346579111885918759829178979440436487383132255484291231163766429867375383095453695780154131382185754881063605789146057386528484684942838026004498629579309820662467941508903628317016700826373615389625941704356757188912332672940551459434665287167396336641246174825047007715772632020141436735709874656302064776464486438760853275324479841027684447510834526133412429048407766236591942284100855830559246369776499970117585371223604644390732437311310142937815588969725150907984124533200056308723722524923412689116584394137541793944976116508038813002141118264752292921982174900829498641548418235584412741870182110604861276072841583117232660062291278036945181076468421331386570284711942325627032728476099339849989060005199015883854326849722943522520153864819780346472117124342815293697052866195120595409196609918719430535845434354172034642107471126974865622373072297817027791673038811333173728321457944392455434034061400077578691692214774856098960408714256905092640190529641505797532498314314388793397484848795057378575613415152301649751343329224023359079190663879277484741240861805716234376216281341416950730051194308383533899636045806471241550884465719603668644255492449695229158205411722617893190008532368615695885994070466724490500863789651389615316455706295431021352103071175019716354883338474451339611035794576397055539461082225355197831337526552798501782951784395003014582092357772101766648831414765591955782378704012140520403812055647678825261022327140634279467145818048885105038340635882003732204683733307424271734573931546326070788648984397625825376725798872268079337510760547472311154376541349831643353968988165881436848198700144427456498349207980531394336587261702847638771915914740793265792431028112295330873478183066575112176922720912284520720150803941007541372554418188242035536644012308915450675019675274305157041199319235178021608013245849959457653243695184653707982772112440688783092443205277873034232638411861127386863353113254647303811808053016389293017362203536148004569892122725232049189483132985332782401108734818783281893725765637917913616759678529987722780699980516950893205580478246069525976064139870403638897490707618525680804200173918811247672215232506799304889733832332444682084080872668551085847702577584874947236510866635067882058607001403919692621156865442228526626492228633286171366738967340728305774161065518639858702968996795868947207992775405393228434116272757357054825252347849202259867179634874098117466740112039272145641818463001842247584912819178429949406294216902464169404687059345567042365880175532035301871640768299166021654925551876816215017411612385369917707649503507855255454412376643203538539900210015563930569242269493542872750294973405697701850346381463724481531879626679941381244598127823965641367562896813904779006384004746056445209121109778091200575624234129128107157846936650193530278218993900203705078678371793124565822868497124641669123656062906712919473569129971313891549184817281137806613272192200652715933488717934809862079704877841961560813277171883380835078280815594605559962181745622083183013029449360119921772044605661331112918385297724523161755876937451959508110015255923619313253542489892395617874327080810290877188656817215482293746506541947645244125380951253412852892153424919523728827762270253794673868129609725634484705978891426054778924025327952550960315076948850043881995205473108185202536657093088169000257002268068598685859144568706107249622482046552914665817525083389258709218908885660980096378757020241695885836733655361965756168487324821399647754041098985682336147894455295006970598336185409117838171417013399094002367335672599978353192492103945241910939676187458784982456352019927701056167229614334401056265766891247596570891506151873946267951794577219048179497590545069926725737337700077377780941347384660143591984794782071395906396691899085995958023060686465605904546423881131652332902105793996108607661176794647041738278820701244831615042331764700048368984609406548707266024876374859529408991155647487494467507113054619343451905074941015352654548247315779256683085415975847144634535623601598427256503947356686737135997759559280933160507702229883975664374309962995461648094586971684474536202207579356544648566734284723005200639127503834402214700557406014860432973683838790099805570053745329483702963741897681894375809284438924544932478202069410071358517561846466445813196862322650124138629923619787012711248557266113262812896029594017205025266960788553878450620364074582626952250352590913612151019029134701688204297067462118561993672203647022344680621212907618382423909653418430735434288582169543377716946837309655152768380971169972458377380583487563984335333482562903452132690272153693899087305887969424053113233175772424238905247052004070447257338893064291785579328980584401407618664988239835923505255487526758646612162218600196727900926715150705808064801198922058791257955967761499463156588483371519671692429724459913148759425152165607447433908335108983423617309327900712987647037609284248411526304624809714097246319035559711679762627875326326786443002564271289460052268115468633809757024222890527743904879958426350181363836349088695044863139580243033993359338286032168471951730825063036847141203161053812876807333544626138018679352020628858213359592118280695465257991663730361496119457600052049949558589940234374976398461845139603020360455264964012509355247666376897967862103692603296046574691891981253912183455452775218933849666738566564577865533897948354779821487453515802957957011220655863371763192629794389437396519983255584566844566641404793528767391517028504589262375370625270046216151643723159271241654637449720523339756678875173076305005641714814850087338787433298651773258375141076228361130383111349671517062118264800013897323858128914830948517580638532334732809562144787498098659621821437897385272294027065211643836759523291609573331468583663220312803925443260774616821328639616729075245852244313527272852344690145324834628601906019182972709260598237012196344059570894971014645321076890859765023551158740747520848844771839092304681054655595831231353729515459638635658315238587371409300003036199727807095966838959716582141671815320435390406881208280282562551594200689699650633284302830646045986222093896221968379491835455626687581670596790282568292254746352369396722733106061270533744818676787658441347313096865319711220107206418391763170193438210861903825188219957311499998995918468573141902292948946662710808370661221827168821707295771671933374979509345868589247373410536668459029237059123638933225394359056179488161603993231350205391515636550603687882674240640017747998043789152855354324638900707967281353095701301227896116032388774102270471288367413892251656806962846042995999757505774447373214325042629925561729337773166011267141386357939950526278304091038987016680743647077482751431565235483626652023897322269149556067682504752953767284787733322848969613544254192550059405083101702751218922341581384126125875802928161801792730602667034867697847164025995949451497139499995020342126335375052338360711198905052799745899224864301023325149356730933124099759574062195604534367234743638759104383657978778130302817440020440961040249231748944024865825014431614291467151162637075192035299118511513491617715739163850443291843748935641913384857436577933488232004735946891557551039998227787076275861663439227598697513840720567626401524400386973195103784059657976135081343333978257194578962709550291992759267533299815277905328235056355003480163789015566099047075455417362997615143847138302877416087281697384929636299956983075464495676208048239506562642549123545187714093179071588805955805085379776367562842859698624167118561034437129158160134981563213154385368922856215182474212527633738520670062379315820146493379935696577759913901697574385985142638030592575532533074198437536119454662991649489488902836228712020750274387327766982499060552301654035255763629596859316728759910780809638984035592819933657547601213814126490496810234227452424091263918503480360928672646433955157534544868199932959323445336765304710743841996330853018048639397035586500351238983308043324718596722366616457495451982059354625853277637526573040759586485822574396669735365399917480091689854989630900256153457488879264578971670316797573565766139572079581426534920016937320891587011109210458543158537470450748125267309949416996819224205562767966909410758076439235598917122552926885351755179705994812505265279762394611762950050346432454408926926415158582384441451139549754017814624954954211624898555151164337007873588309925159406245473811617571866985318087369581072535764075848155844843310957877849694390666071026924528616927839640727306179574475105725583105889255430233064527959691945737495842934951777783687579068761363858184749658388206089567073185690308917973994478364367811372292277887160418027714108286314190193414822760027898464363302860692621146203384789580965652703066113028914561865616675336915529587088038565014057716260341413939382844009414462849403221382397801854385857599244646799217216730250933684133722680475423623655546272823670921299284485198468875722050314914624057319803391215491944556540839715138658334860869314670209885961425803070201290770552968447053374915321774908189329915709722528147325356266530968097008995453155486599757906090392539422160726967927533610962202154231758050444197702548073972865756324366432477370187312652824757767768992602646692803074868531657006256006448448857301177795345256558766783932793091356441840216533389633352357318255146730858491303410828563408327082976252534188525315607144568179399575144489135316422137300192018285433896574081433652899659638718555211564460284009317585371366024989702556052295443748338461391275475861005333471565957501021605805468303036997964400155371177547613234032367720357742770989478040116745014258113790545744071835722810302808344911379906733108279523651007995627787525033007956034967541475716974373215351525968850953175975728758511399021325202030259212335811510945828093668970831788485587025611510402364191428318693013342795467833431185668064443125474933730133504129528890679957035024684378620406582760921435639177321703608265779897350411579954351158643762904603069388518249550800700413807226028835494174078759788751898314531854469972820118331376132258536613321200753318414649454110802528680332538297173399797727928875830626159853810418520023784720135713105314622260513588131236392420855199675746254299431753974400024216760343762445037856110656825044405021357657501638081623604568759177107420618113131361653375068465637599640436339178908686243226581295388130884391583973337617468112297427106447268854757417934288935099945235588969985205462338200589339526213342169940521999763028575030899073633526434974065537419990201761974058070177233232020366683482348848210444273773832796163655330300523626537117571113234994610781494486593642795532641155047631984196539819193072469850896953692946737619024346526415069405451491750991233541010062517752005038031744159308068203174320603407171039161572575986662866574551982281663950943604815828334176736655986436373783362786087330134657747678458328045218762806646321713274608609794236359798025801594435596979942361853034349331611215443696893439829217323110362598542296700469277432739265885399483876531005425924209988725373638554484274008740920129376755094660601845969569164689244826002171034270666139493867014843191334749954409811489825748541392940550645588645073160050245876077591922762755256479604140719099611229332730073398471090876046154295966768230395056340256984307903112610473580383015974544647107690772928141177156158050813124068930738502716071714063152356247047012103470798789896162420579891996221390689589153370116148208117016786119750886635293495746062541386532917872611159210958540067077961125101742190386301078671780667437478712504386827377128455460696577738006976395968232262538865954371464700932773223423914101801381382358485566637816247660436098778974983009392484345228179181234286096255588584967183096088920601825740709577783017873874482749591890619077983413401605195192533598744289808601869090654242076177597824886535644375100863668691878709408423547189747682536185621071884153622894335942565669488685888480672003307071851813093662752622113630199538624808978054156580015710476223850156851506555233897351108715008061468153654220841806648295773499230238337076682144839450512087197569364984332002828813583963044049714848314708390638810267935143592050638708245521318421858197872051156598089421232523813209439869441671042021159682564678649621285577764521206879445655517286874478591476539808512569676284482219516925602448829297336980391997218064093227263320162256531868382710536605898084882425489257390206221067863101830283781353966240490131025199559472881213620383226938236411664766160091489364575459321476657738454002131901366303725844239723388189633856355412228408278599506954271723966575265720258424715060400231578099800570798760746344276118525770089570029181328097613118057551478677472475294550284877390038255045802798730792502582914681910145249422588608057043361491441857011922489737693724628699757528711772322055778897880535029931352212578879423837182162948416464352281950872716852000863730090063639962978891132843737733367020083911751377417398576450507531968309115816596390182434197234214275089421247777841750744584626979345634306651070017756574650804379282812760182605427043991664214813483091000576970836092570664823272090689481516976900695074454250328956607339156209929827282623071007062781095060999896687903432730073540949991171756690059645781199534255711563815714334676012486575683409349056583743190339585676636239002133226122469121310452330237393497131282733022145455722246690378888869256639237757881024189525928279963854420162655501108794774990134927216887585651410046374129834387959730668722535694238097885667930603367899259144963346313940320905744325015311728815160537694601108843676171260093412684958712266666389143259894782656063664074423202982781036400502736473055453481007444572770399322441626055681914322467597291430001469845082761661890527100033425885353257182001222216942140946850164968693683952006534452678932191544354368593959481161880746348291285345240713798776109244163044803330982367816111831677435625850176227744247764426051518622455571033318776822387978326283298767019562138882603187436013345090746465199328887987981849558768665196829903037439109860180504616631055776538864834054036791545799904520402313679915291205596393548077072901745273711608543484630560649589120511283586161868249788545792299528000363111571898598192837437455110527094239832092951343888876386679464564735609019472252213114447425903653248098293480417177770703480320808075462676349131080619951064590028961707112215312329532602391915353386109752332702080242523938138133550083656600118034100184718819761950039868458393871440867525256019256804137161208075669853995688794052804542454581781225294590457988499752169137611584363891906378610590155298030909140834857365461826562875874879793160429292679517043206953525200771749445817827305037739551737143563597761249251044749585383744060836869764383284754797913348399625006310498388358612421059194507047370744785110246702274928330879514684007739844949573931718228541505250442703823253010376004422525067768955793058734330723134585275768339591101744358460969753906363153484493565149823153574579547183464149186455951265893611048019399447960340749062870485089456329996157241423614163475273628984314849374476650622080022761934948363123762137564114777170106374350694587124379717165156444379193098775294289647376483498131308144241659716599185773291497985522616351222559793803220318426445884520386908028373240293568148680679417193703952963255716700893063625529797822616773067252140097467838810520024998348154108698410861860488989034008126414772129221924833591396189673389400073070221888998858014294130954616063986618938854220393859398715687051462209109684091107342052940094725694995392227738826029905457857279961448534209011830843735090219357206317042660526757689589634768338080155428820464790726326899937468202825823278538562823086414074441404600992567938560693014707736635617063405073635226296044203156844376372600564890472336806954518013958032577421323679325445287272627420632523240079077967929960207080177466446415685077627417323273266080339463813618540911314659250409965932834675874625809731425201877881498439165081145113355505435953627938972433441051212871812547708967672130385204575328026016506479350943420813476223643471641253620358092226774178599382536660110386218302014164207094825239590827934061803744703291726665505406875267028668239968640826400257589744731514635822912616693291349808191808308501941123353367559629293773629504491761318730021417554865110589755866037618830063609635697562833625414534643268346218916465444056388474216246441890271287985556931733650807018407242220779845854534482599318530619212765624829751203441714138398738350168829534594010374268479384454212074447994766621723373275173836835360348842807626161812855811189922987745949011383701081860967604807709286935180887512284103035948177987416610410387223445632802768507500441111206627575281416634879648253312290911069044852769571453481798646891661428098155667764386849172639606318941933623708684089849189821987962380049129055213205909952828047592527566823414026287267728495711930897742877777879967689036443795540333465078955667050799290305055368795689865775521284019287177368967285167458446098623681511149466420128774250594011704773899011246123119092216164287229357014260357035096002563126688552257030104669505804996739089740579994685332641812573969269308245573528710068364105797050792671486491181360613578266567295840842072872264971942506968832503503459290804111786823148876747608219371125185720622635370169944964724657086278658068933020915978264763491581060345741750936523767010590564241209264881757415852506980393864129045160766177290171427514140343758529191245810859720167321453517934010354522725200929222887367695254994736042519084645339639592001145348075949143961131411221977468643589660491557024405764962454852664649537269794127886439993556767466647785212278989969044343676246879486302697098451860938467617679319672335960295081279833385052886761244178483978679984944138728071779351660142146320614995160488539155620460611686496960203572990029875173231460711769320575046991319623929325391072706082054027186390045074328193915474413113477276325912917383240032751490783868242064440898748638111830338887411839582607809203782974498945155620893287970039211466152488093649406525799852632496494940969975078365186403313218289592080532818329472357003501308440001605561764223871545986062159589693572556970774332484564429966244925910642398533231366550375143132532227555879778378239213827331548785462719237427108511264643068829986351030112046464554426286947829567928325961672541152306987968291563557133083939811022807821050832203898429660774936599796092012303671955632194289582013419219196100265404009893427092676731912747188253749887704045742052040486506401007952452638866941339759454363385564979637570219895483854243413926367376272005882134332380888102328997217284403968226436559390652905982349538888168057422872921414330245508670621080627854478343643269555526687662251957171077501369950674591560989135655127070221677623484193072839567936669093306421020366965351009404183100408369867305808455018028155105042643408287520643625438517958405133402763689600122800777002144709994436166849588578512012683103348041895920368231122687143567292123217088567669410367953445129110648255858488110506588434467414696953291061896474150614351442460458985824344853978178418548271260281820848288741134862952535138705744124096839356315943916895333141384125662121811378768202931245095598798379501496526520701946264641701051980745104792646404683233541062318564444321152560558968808297252241960605108416624484062556100497577347754556025132185419636025480270368448405974357586389378319661357484139821952901420983292919749994248016542882073904251837667151257024358938741115879371621911070597467774285186998314443018836369882689680590554141009146028437863157353551518581262898288462400971285164464611176836054793350050964937958821969268588458339289694430809263560182646186763768200384676756086924606219034956716500722505656111686790876711890188328528366995822188718474329061077470313411623223940380534673538481653692973706971850666252364655027436098764077763581379583393514456656470639393113579300000695434115132864983494877153165030770110905714387531045632347354626755820720174759976134938505273327941095356546196320354471069460828267181786796912719328406550634879002952380621191076921368143156017230575494335033403197211065022326019297986696561525680657107761451198890769392135690773391872016183489811447983300908065434157836447106693411784757757765320356055949127108171648596371210995014872106019137744181250655160353627949065913656491193970320690338019235057154036339797895888131291528115266617249600622395805339529355388315374781717257544579921702205415262203571220516285573051439605847799257788543230619955821618186622902276184332959532174562282916171780677433393429661495594216394507673176690043700018890755583807572286609660242252832874402728578853105216611567657040762593592816329348826596058734734393518176559179456110325367155984864838120383185921056238231806342644796333285329447355212044265824583488268664456578847027851031488169567022671806214722257216159084163468869644180369306171338974822171188335204618873083432395861587514658173730166016155460927191831986836467905335782936144446469328761310550928133630232956121053077180573175095998256378782280524623223895572586575842399245286318367068687914936611864469424493461040329243239071097660456010066706150232265742521672774438582824234760041179463608421729962975646944309911199817519729533842239738746342093148432675272037983896507699216010842384583961099287184978555735737777869794633046573530212085125814012107224222182944196377324846352545015568244511238873647366565269727250087083635788791248027416728704224061973480937265809856907905410232602375659841449642552229436320661359231031550666290395659801356953981591853716511174330319830073931251328376131518497471572908002588008958491001766787031302950338529794949881968081112920163249577232083522517033319111964553875177148105487460539866893802582599080876144344407529447002136912234621746869157946482743147716576978923225385015324107073983809289667919191639810660529660343991309473434406411587058395067640469165686907832396952232222178714068800277359041302424971639970075129496882296427174913229697639478732995631175253961578657816609019833667734476941061173664797989223425159296579782548846872815375208959097811160595518887679249137358054876872212382372341685776050867692207298846242749455811048336616224710246247059039009611118663910077118852488335632919012382403165738648322531456102236638042706125962982162355181726722208456057551605840826303661934300264856065699035933400183963049205025094496785507164229326184196221031956374219000006747492656357093719070885665529262957346418267836351281513645069027117773532811964033273307041518284577996417571052559774747360058498444408447344795305886808864291727871611717830528852571210360563790062760439471332128524871766088443279984430147841476364744873658521837957375323327592486708487579590508333399276412770414865840045308700174097825997064124863872061580097222062452834802943490949325777492697179353403206048605729057332828226807054304869079911876662147857455014625137910168606357303167111344497757496223119312142568603138697128242145307520994178998849769880849534193590530365670739416060850433369835050112353694659067456464997540497888100762468704798501656201394381488259226243267437953222060708052534447470115034499462652565440204987426751618303983634173818106794864461247693830526861376207991042612670043846260184779268831364548105157848362175439503011890954633621516977187661862955096447403486745032460086798049873944883981154956937782259246236426624189906183918426024343600567838990605858464705911834623625841246421642389534343457227971054004317883418701602270557248712765725407101083620222494286902867210109369404162136610718597272905507211052832859869142874199941248105749752621550861035929144554229722499573100315238587997474322485578078364154517655536428902407592902261339731377585429836429703635387604310361981065002743524473907096957050013866822989991252142051109908819413492427495105936588416582359068066100160536776076520638273162295733643567401854884115189615407635179460558918458303341034876306556902630698702307911669454285822292248853610890951652752397848293850636660080039395221738149378635254049678930974516504012840217849269798979781174783755529238940329775506330692629922534579002420556625796642728794959657903977803230852931477014690023193794339401331449040638937686038695069910524490268590135589003926876610939696628014195671076823059255481943652049653520794528887952058115688336683835794834812284277880117359103131458092087802469979314876850687713100640668403458451008141803991911152785180159870074305286519200028916573473989775062555292710796555581911771245405793862530090377270021382707656601365043231106623089763857871945272838890949648456800460691554219880063250059672030604698381006716783739879482424547905943405206757519000200350500971082841155086048805488642958172065587742788902596601213575500880345604495697972090080813088108909680901926058950476263991277057152576007405249574492411915856274004873640245112711004451706468518813821427783739637639124888185292470634523398468247698765704777181184053053391364901214846707090733205193871718490540006160289628326894028988772678142520560132084412632857781273400747231309302699616655993238273175344217067982980366849317564295373928769317936817240517964552470003424395879121051883105571404887912224392322845418797624419613753759205555760550191063805680283173881943837451766378974386674485043130171180201027779547645363041800349769772262968952129543279100237718230996547756346901849887401006160093527308423674925085644879597815313356251825713406330800592458603188658120905886728256720486191342899515827752945722572198644363799896619400101825006892314316845303620219530122050519753502408778842004449274346432819158833276888693234059781385157640459931318870368254231387164562397034391554360605738781419682783359559408263008976052159943251877441608915957073322553589381978632651678932279793222161938124066863271954783780598806828542592395173156335561523521495987937088191775180598446671798151428231730571518325389826491496301838112824983428481429279349837757821512689203480531863029278092464219179794724718489230695907690529327931867613668128123267843468803333883694060269596376308338812520587134194558053633197156218774301923290937064373784536507058241245767241418810769303979586388117291098879922618696766884131867843209935327027039019444091690780875537296339785130530593178912925290542666344191636110714058141932425205966528178780484661036038120634229803267777317714727132656771652232989576684982020674006965801225188931485548575396308149464935177374025203513681359002115036749685752500683967480640392410658210899487778038691451683341561020403732819934878107880956738567702361680615596188948635303354198893232824885077569641070947123746683535046912530907758430314643632699727199578621888440646310417868329858940504683808357461571977732310987251745722398107938703571939691777861916773879971517573499788186131761505916760365515838685504208336890237170739630799921182176540386868734139010459073970022305042874538926517556958947935392617394640821168182966305219084986632797955022850682122777475557262891031681535400969216958130800025582478537767411937128085023123969798798529444137179551624350762410023631428736730375964797918122783360111453740309082730208272534070808026491781840390464912205071732636622398888673928778928370960416717062195243994157634418796865228776462010426898866720641459251214116646362291140409353639962914031574576519796867855562822340084265128620217622584231650353184159769239905204124874325958577098391777968768134013498387188153111289872412622946054916504557084317301954140771000137733718919803933562839175561234768292902476493104579677179964008795629455157903668064862667615230074989767984899704733704836975099203439370951502906936895664853764863826152996167807462634690768592194899681329166734307258459042281002960107057567803571925429044325163187767640032760398341435754021418492648686028947042060798553041392973385898318666396061254534628860980533477808034365735832780588015190986908791938718720576050573365417918736135638919028026659720874845092684534748490805193481862271423016331274199960667078024870538924409797597475037360301403678709204488441627771125573527271182363944467099662498887668249332738505192154026152355611505172093108195067953436090177217489232818824070645295010547048498433221911153678366383909743033061762140748392749746512578426479358359554076235819960271813606517817171838836268569023189557225299891050294942197650846290492580777907567433832883965773946871108503880025021469376345183107268357084660195172318025693619746625677077874888529625444986891235770148716758950348222255013500682587372340184737382132516530863209568796351917122044754631700218851248016907310522770842661086332135538697146893734638678027127407705683518747856854432858653442915357118675374451377557514351047700305399106789779371427860266502107215905297004804766437596094161618596138379705516448028689062437749185984324081234018883397107375516758262253420484440739894315509490037523902209618222326159982856209327338637497231076534509451865801823073308615078248705614790737929772712285704080157779778752196813297803701428123403714069869046673359341600985427937261203645620816001997181198316424460668562671651302912057502644842335190806308994860890433306037818139951405949737918565146587781825226703519509711681318251685616936592687717034235254662655785107547468593808180296373347962572615346633398591310719503805468123607116642689577221201500042114363985472834706637687755469329401466448251514947688485708866729121999280822644778324409036669776833267520689578192589144887784684760659375668753539125995322065410367148131957053149462735796977873036359706951718763318761555001432063377029595330153272492541160451619824734159957919392050162964707501684826301376412922975950361035835466466402142215519228126173696661458019544516656227264676153018622403085339482594021220900312991222935576661478979354601667187496816890604025414474782599952157646510237786009892300091429332682698740577771307663708091117522383445151051276455625273177272310458064323736355274686545213982279749154178538321875142134072276699012560338602518106282976692605631864138334070485699265209431552450268197149930889375878538146657691926107743915043551368851116233720409135085672181630597152588280403155578710974476508913736558140768158902305253539452751059705640679578358884785856659903862932646580605573023201319746011743896205081986147879413004438033549911982289131140474340045695611844535338658531739066134441626161379112341943670645582075010971609635487489265855823601537505778727896768785534979674784910511527546283322243581433339660098563413750241300845225212708555159176715963625941370308812211093149896671406189490774591809048021822578642054666400093593872797121881801471063308970513039825912472793921531698889652520348219021027331778902122210398321980040916072082026193094943023895855588609045109109245442243895031140474343054975084650867804177596751547111717165491320788250127082582252501548399389833496273203408199454647312136123591250475612389778697708916329288652500459701054344960528062972299495737231609559114573744217702101791382049346351197901563394508192329134476936230867281199967672941767656079479291441339724116809875067805740356904033123297826143156055087983106765807617421967457095376871846522883136122882236761754039651217338269416371467468353214569223402568495510184995335272610045448352616007620404967268653109733322570915736167574605489695048911726137229886585200397309943715697737010474880592938015888709456040280222452034457799390308505299813008084048786187531270899619833223837496542772833950637004221360345437030525687344037416920369549503386604310063046223435029545646367044822071938696096871993295547633575557559318050303141217419215904240402372787146469716349008195539116773020511145129316106597469624804043192482805746989521671043497846691956361487613956100727648838771403803118083799746208204342449784984219573494091531530089302464929308657164713197241341079118448858650035604660373233562299434653044532953816850457389189255664185601696979109204847114030770505757251822521353380196715092714824333250639370572831825986449839304131044726545874380825794654743626904012893221826486302529252082588015238798181893360664045254126861681455430198445567920103451691850481964369843466661177947388578032864806673627299493120353283417088751488317215749960306319712409202292716377942337330260171084552144163113678723009349018603310806638525776034563646234528431724185766154223268986925368920608255701246747822589715156044866971667703529121797536355466079706174450502295311965857857354118882978319135522423738228333461500780486183436309521329230012104452740191772669379310954293400859458802231246462014505059971847183572948294770996045071331713315533666016639051719965753333617861842911828725344081686618612353209746708360032766210681877275651634468372622778799102154764688801768728624948566228049445258181352193050822221362673187823686045491641182479640106948305416461034146701653254130377746961512649025811387678124992993075676892777321896655115710673813900844377828558808043106549353851039461327092220950196410234261659456506306434896748475794041609685687835524719391825031405183035740214389680767954618551912801609588692730702776481708590373886205759870042024901250525915289911395855692671727097731093046547967284258846439595429483348971322664939064283444426930624476016897795378668787402270463331036037497319541755512044175269609262028582673615282568838918019186210659495811062853371044054614546823972608337188239597602991211799581408401910735262366893883687100432611594056584184810711330286249593438164618991537618958074349120634435360378056712450218215332525386768626534790586199286463386637611919753261887519782893769889527227038311823321336018240377537211488031170126885771014940039108683479080736941692857777435961318569346555508441532997739941320004726728001634153703456076018081162941331417977814082716415667612358474958982000358124214732457604627505353171760688143045330747418363832217981888106497781693198327545337204990248499135014985456883287026872496376543567316052991595513269446582322681481518792174172368210369501194653071719829282164304231781264595678814277713560467127472792367960964555042648108852561583052889988711621719664138689272392640271991245937472270501137276710820238585713285230521060266832024416010288128853167993939193341454301731884403306767403362335901659312452128460421799670077644852895892995261741159684262726643679820209870971255186062161144199265392245072381286046086312433956611642783479630257663590133385874489694696478551572241027947524730650066813473457221569326741693670828245924755076202172711377602105450769256926319800378989968724944472485797083349158961915749797502394077288258235835188301596434395473482992506803695459990370902239181922135673821475768554954238552517007826020841660535991603793886484404287522542757467082814842222645898576711477180776124341654717417809386441933164981951208674260807247040674610368593832860403836664803367329058353662769381769167469109170628723667407626392488000574793146351335257496077329722726416462543655300262086197706999623049040028931643833352414381261540220080572218547710147039916060534550778193092601481124448811544751033165073142041329866197378911196600856374362193837315150977600604396453822966652043207650879100252029715223887546319700989517326219984667843430319286789403315901574989411501982847369294391678000515929760283627142025659120324577056496433729290717780341127957554629619232824638827625698215569414779488852504732591634627343422796816587706898318688534322217352265382031529346575150222462339807529855977822375226443542853075868904139655875828781910326054402780262653726722699551296750225364038666568996881067438256795821636357433254886680836829865000374299009396140215909504600942500659310802009405461169415123761470997708952756366599123534652350692790652881218652231838019886662755340074556020760040568770181521703330122163673876113652039920052849151579926423889994931973237605768730761937254731132755349152364093960983512512325908482647432796189120452930106486790592681894475560225078544033994121002596606106856569212498569907286147564648115053588005870564975666051107994610748995951878393790315581691164474986739112881636880880135727962898841918575618739299678828799930560395898854972626811334593965234025210998517633237454373197195599097708663024225390060588136231963247008411042556147084873714499240023477543714651431988709614101066836183330151836530693118657146734783205215997454150023060064297122766061056163301242721495636571085665533127163654417991088405968744451673837815754366316323079772990155513673971543314353755413687509170354523597355398753204602699560721491324992899098188407179771835389633676652828491927700570351302778116723971360315564542156715708832603824271793543310858003291060741867061267807582474037225522846958241204366746671461021640975304441890756918308276991834396288016785268377138708262766973348538559027488029814531821864551593082852133258620957066839697660993212079631911404412659838511868339342061018424915449704120325474984721320567370300404986209801366651846052549358629915147122535264909564976960758684312927338221266851755064942082051751682788451712994777396381140566499163119326645860622800591484208317332002921749936649987223472905686923005762457411111582026956815329103839390735669229159602364001004410943447838402314245517047679723634990973676307056648284442184766519392159879605629367578300380145613746724041819869262503251796404543411699872302417012142685615500352866336785873469296346519379758887652371856413346915173893658534982136788673922908209249454362995643265352666497468586361874738778012180599661215956477055647963526073388426479179191615751444389283493331781256443965866888437534361541166404062766804130489970878859951688228230546287279467561607623209399938349263201684717735814924699326185438948678880634959333286225478544624179459482959872847273598494756775138081423891910771471695561816202786902163390625598739922982806189176555763440536874405134717816614382394050223213025862017908466713798052324817072121882428996680193830104268780887992393914492484024728549201676072542262944944571197833026621890833895157847106425626211398614106803531054352933346526706101587336338173685567098754176520762522419943819403257690148436352491184638841636679335710887407417476299213848608701443743086533966397575941659511801510947521201904652791161138048487509869130960994796859427319555047223288855540278570181458857789744002316004354887799397357486306582262952447292818801793317269991305661534787111311609647013737126490361883709072104796129518925676009411632930355173925980469100076900160480018976149235518260237745028763985241110077471776858904384311355415495952633503993322162589139304318057767383917814140358600662657457839483989437312087992059120877305716422765070929992411711656047608612747300823829115591175712253131130491198606721952447004503243661010054880751612318714413963019638031134453870066173730555748361280812031631703408196713211254661254218103560874749441528270182358245520313047973298294098621509563003974254239008276529423164947004880134669277054331613112785590914616833764525359009101893572875484494580806107621703377369057750409500294929650050165098110430337795565240879293145315117993929807062421003693666825163710489513717048197226153147502890594086302634198743562705555536353941894239304623675783255626510065449519124624657197189007285720648809843209371556318891692382727607902309333445757353541745232595404902260229876317161564792800515854539965085759881781174941807808423756837376553543800211137967172220093892923224447927250940217051521724606454859450117360115004501240365070501470621810447773203441240553518112146725000340317536561139090908156214250900757572260021515478828700471558195643257237108249060587678766444654445274298978872333369819511757247677402973283775718308998506906648775824014660615540086969672238308596259183706800624164779522006784574594437771648425612490431752356003910385506702155238536103094106334347040693252209568858978889720145975727567076983861388475533961141301734612621378010325408069807406222062830364993309925012951453874434520910569100118306207226988243287470331757423568705301194088794311068208476415496032975707911349800312101213271129896280079173792338111131650256831163147570924922659560674370832282564298582492022148343715416115838454838040866456450957770886644604064170446042783456476662511804535918391547022947712940979490625963833804239643693727763814961965366727014812584873005214872392871144914098974517846669225065599585299117440476158808850893814551832765374776056894318628006148804076787909344111835583127435686093829800941868851147669734694332925886661440993591292373968696333566282374243631493298508724177701830100649348729471579169510362502818868366632718041729042838698288796364484544941946294695444263938799529604067362137949922245588400166883982185825984324614097641463564629828333654328225144897342482896750226807008657233290027237659820136415716758339359841317255278015644286086040389515482634997434118820823685284679798459769920628019258633898162691889889228884288672282530070247719382480977110819650326572894819505733744957412298702236511328931672197366237340800790916474140983288678757309367632844371466733419846838823524466338318547193161834574667743429430985077542036535453871766026103322941139872176034828198009032252449310879804706515660975785998858054035893055476953852356616003588085096070098608112328744387242323111405008869174570361970319302665287699461972518332361789128448667835285227620652377904457166910895210513597062938648269582858020698944658136442272331717564813340506414106031639549998094538185678121530808292138441629792255280448870934719292885833464654680396910223644423005308749440313479986150298412329700083124265477950581312173057732685976502635456586625873392760812011987055223055645590444303468302868324348744284082621946749378381847077048106962361493411082396369924984787338755690898922263273957156574422787829899823281605640112699107622580116114644817492550963696289660385974031808510879407142613850462302863515701293744197671384471524003118830183232469613611737208254809013950569349635397799182956249252168153127533074959349863648363545328409353528316254829092383199546657570801703693777260641811357179583331702073275622671942053039061246840348256345948866017255327997145975581267766032512160916852214335300006207354844408035250453964077717906270357624334931810936135732696641477323377334171082675077888201146099893696957686107101497656749657705954285783372180785681380945595883719871530902359916238515451334403080294954901530035932488199690271365652339496798791309081813203852072996530581675354175198023882822808946898819412144497686745173592605458426724407389110327169427741051754946029148802946850521861672908074487853640439990880961518487385779654390448571766268208346008094421152467484790511114988862200922570076809983920240398017191919840595686483865923849887056100006765697091451743010618272424466485337940388732330807799933031227692490883591025959172696073974079063588402397345655732269616126517197964329357592726964951153289511187605718830582267621581649318045916259400234200227310391886276737305057233280733699062725411407541429551861229682061179526660727416773896121989030594840013773313555592424053943975236681645673289060670631357300391851937258023341095599862851167185530833018060375863088609259661342724591115104577214638767078752005757357226748330228828066975460355956843326894785792818048920056627446225114235835675087484489064097803772696711738401356807511182221750011060762783495404139748577340323575728193531669036574569672948043177868489037003721649645689810709090346584768806332766011281663281291615945140442147203703716317486673460374022932470088974154531475923248191832871638623619517750329729944073343576994649783930179536577031869290995333542605051859655253044281905602022103972722295426137372982992895773349081190293706313253476351309799554740061897271493478515995905402763163763568552503891589656839292295599914592617833739829770436039892031874260844156108619248030549778818406348451917696462646799565621140043753042196645772105597298336722883706712414716466415361122575724865947346701132592495647958792832046065648364270516683615771439223067153250260488050138709446306542654629675118871810927806135020324314573915320820321297501548440594479984534114273543245375919530106692784604615366598627560790201590257750417615145186408848491062496476862365475978958428150335286783084145609648857929729889442710263608711201293016865891943847627989594978524630255637339798753415016606081703402674710933554504983046490137009622645308260777614988513553108108837550263404112105994802117565117458279650050363946209509281548398147989202142426227414731106909690367556846436009948171553717882252230761570790323794303087840083112305176609242962272627609081762694427051450543292352744209058776029166013872363207869141420762652421778471303942145599975654928690674029929514151400846606040046359500757326484361002872588342985109150381194303185031493043207301080349766317032379345773934527454806792314966614962097513458988646788315201212019363877825175525113814557320477501641679859217477188452899981120617009224079557860204682487108522611048131238689206983114783635507809776804592070256313277542711342639994673449974112527839405958844258067129613788132605974027589229672251613601247776493570239007700033598735334513214610861161088537514933400791803589160652757773460446267325526089453363933423367469670919986752686515484482068046035280556080006107116852570308986348982395690449000950637759923085591599723896113049703226437094517995916391718357493376371139815349361203613282211238441426995786537818872762147080057983248510944412309290776730987571526787327296154610122005934266703591254440559697799320462608184485103096839443051591760736295031333221656624272876518291561222251992534896570815968583251912731740832756898859849065204717871972621619947359083224792960135773833431291025235569431608907879282397811126624945602364843544545479514341383708056873626845079643171848781107304392743977807451803427368385084122203777571409142415742285489843060328412658748039919673454638837208370946715348486615674381757767235999033188409412497531259587761063552212764203577535024969139937848941176432305488593878396973922722416541578244746990490239802679779164425456063703488275742307733885780543833410787251344159618460297895892597827324092944848389552518376339016315041930542827013348813211793896820109076147677846281654470946729814664986314141243327930034498635508045595576523591924583160532211286571929450961556223758382428096798589156732032670085777520844965706126528471446826653746471539506825136579671759271671718951814568525428625798206556620007737385383812579894171787862012331284452617565137253870190090777291859271221379525508023315951506177776793224397974387406842170404048735231132968770097763518438073645881271613102198038987664157691164451459162620808669252363302529186151150603081036287301688137806976359380590524286528526720113477457038261186284621824862383369529995203240182804473842034301940385800422915601963956254928577477220266182196386948136923631208591932712965460846304548076398670750392849319021419337477147239300542933324348545407824704494615303907010261924564319029981526099878202839356875084374422302076950965542046423886676861133347650699466037794972956344727407095440049275061930860682322879879918220785226352144530386268282528320398959951884791459921522160048697044420837163095167080933448364236430919129511418584732880317932396970558968295762271285809066452722326735600908271635958750290453048654920919237755065350229103377763819285661696128286974900863220889059495388023016664583955889411532163741792187721952041579193516070609456363228394313648803399739194069783136656504595997690007456339811970950679271100153175135157169939514554265091637989463078891896282624497475053875958828609856917075714737001165755992939663087586478752986585695947019686762192357542741393169702950259203984054912170618635550857502145910785961048488893261476529405410117807732446709861601623764385604370983263603946614939299596818663305154299643301703820003476630123158605426341026371589686416294272721941707278143655458412586777693792244871414293151658468156859218924909600384135203422866118635855086947688786274903706661945892343973541062717467081882678256832778696756313587711239309593715413182682163053881194028666803404738839316848611449495979500304375952961111605417158254814500937599628621741602834503101105297784735639180651804922873198930209018328975134768908619786302885316867038002359571460011225542504706390361870703470784846866331667565810321010344083013715030501161517985895518496076554315870058967908778515234669797033471943648923970319998609765913604650473172207765992896739582659714547502254967862331952095867651892524895803445785439922300206885573350742000588165838131375171122127494047551055326605841837200816801911924301774933828881105830004304950668384540795340286980716365591081579936438685371302632798030305701117003911491368556312295568319234174316010159797950144453693892304276162234005284162228299446963439268001056586434431920995646823742705696442668651410959565647882013173265023060038189499314426564126343263497674226851490963571051999247143771595806234225173166668152048966077526266992253803671002190148852222139455462363029575451885357733654904051842602169196279965487071396097548014577167627045040698522213013602778858003749450049799950390416107572972977740822574841980428732063913774524726150035607954087488528667073283411390872293848212909053685518050452841582748171887216147112836558159593469929772324503573666410221092567959460978118270560704828390274341787668827767333675771250683871984223220857192512456701920661526628997735898722552978026891882939602516249749386909843229144498534599808357021277340082883364659405939103068713775906195742074025599164309718656630735622816735016325889392800852843484447501189015978831571867665239066080971114783834628186429849494074326652835303055559479539440040853371652397322851336182540087208160577746579317119667751273194678892327023354718242076439694933328831932440496215341128573540212995277214607472596449141967579572918655603040107253053988547580570964434178427002372980116178700523575480605922300622824036380729608216330637155385139834181172185270558092122170623400440441930758952360408433521092577898573586520865813153109913057302509273334655930374528072760600378674136000115542113706908609909561250248960309947879135734817625692384580870903229916474791877575473150505544564175698209016482818722254637518997210739310457150490686986926661968639144094791626921263314916882552290458452152020200246136135098262201353668611247197466814822313890327201005068229075636361393634579272229894315021381228514251001825169684465656815667171252416877311218341482044993541405501569195921999729457702685988170312308729864815739079935875899220358465142147921733440476543492709510599969691694494610245236454834449981987663248545043382267877568811181424903636340932103446592785617366778867509803201956824304784025919800268035322279425367898895904049557555669573149608284582996263270735795314111089583766529479932588822202882415272066637951250688340363417931193444943945962446752123704509130188344838819942604243472872293145742018198384289982154586002803431587715325778700872393085268743912135190123022300973609798051780871561831612807845680286469450143471353550053606142609933881406060245809438063191026993718507746511627499519881667261871910695810244639775024589310190239847786340031430387583029788990787461471219036930059104261370592964267411998278333630586448205417870761553629804199128949441220901237902634511434436799305068327392185010967412244771794183789089879940383277008347601201041216959536648419966819440211032861579501163217312209356417629970927251114708934047227748670105769342323413951699958244633825536699778379219014547157735483725351514689473945547237121867106676410519529056233543405516073377291844615585528498094940794149451559491623611501346868007670804171515899409407389762879980596134627418081453533897539868075312413948918922597574218830517539406650363639327606509101348456269209096420114890133393976054453474579082802977231456305068325114291472509561167705357320999957090233943237910434974795417273686761633438892175253607980253294193996661364559973498323331762752438952418075938447957584194656411155142783638198686664897237794331444704983545888367198071390552639393268042087497878705767928879045742997161370909787808754268410213881491651154641287964452534900619807403673171330291637603527085563748775250316159180325303779421647455989867026553359529255823049316252873590646644153104035793653005600346838194813327276917807683492650321731419396883767463270884914842011168702753815248267007591825964521977136877831282947959573587535105893658092749289667138745275186167979815051456781746083257168938594679882293143289075990903209572019446591457174740782779829590503950649834447432465966239573322802102774986348054561761140375933764070286089369516270259522118729671560205862120344554585384598663679335282582070763626834501286669014442344840788645951166459383372435431105663525157435552722223915665577216644015880876513754542199770235253542351077686711200491062810145383348306246962396075843166113169772639134933619442150302546696363833993132390967763303400830655209671305380301525127608605655131110033014415830783681983325773268817510786530928597937862466138565051845199392290018940965663677555550539769816358188814787473648234627703497601413215401887566541736744507935415566473089657247872563368556403685751001551712207186919054968149322368307334098569709524481915342150625119183840539609867360752673247340788891699269851567444545052015059768618837977681808658043468604601939779075822147320973552110322310802075174922462034990112506028180740478385026855511095690710690881299292854016239117524206189653114127766402422533130946908864410486204300010298383326788982762489415640079694320826340155201002475359635188229322856958081845919348510563427059225176789011167317935939173199927130944122554788179970997827558644797315763895133577505056681890631067776100671213168106645622615471648986834710166808854016890592017088340926607126026427965729270254932263188668999418294363058617306530914761071965998901146526450047518994174722565303371182882783853118715842434075230164804004067059392153051830409069400824485506465032162331322857397695360731624229636986251232512881002581805276684233071630170615679508710691319378236275485535803771691704201921286913898390605060361464085535866679353626567228126132604619855412858802019060369321323150336126853119342398028900094019995819579880739085017897546999063035104625944318775755325442380573069511524175533422562045650582411043354223200136851594123467588315426843476437583460530003852335348142579062185376848909779643260654953955738425913923305973879732865084616175314716207075132233065152142486731162831874282703554701690478313647412981982770404914622104602217564212047806708622193009641156289215945139467153352686423111275924695106267856269534851581328876804397297944493659541819605451148486606724793430969290896940796005171015271492751353519861113225946989188298687952493950960300139840463662873250110200230675271099950475794048498918253764077943825016906699782654965955215537779790313897770726838515010577366071026707414581568754490954125181380516798841171788402037129066605575542758319506084677351074624317765038216113899197214978066314334581769659364129969764912295828832671353216218167528535982754810836244440333722801035674059137520809265750575934828775854308552468575918303445720270225094979243123559402752920385872176308591911844581960747893224663519428864308830016733944128962217086857997522130028790764313826578318832202596431089853804117727367862932154576561270987721526506930714209045361130091633211082531578269413488758074413899873037452049831248304279505256664843016183417622623209119755281162242605825030943066309242731847382268047624535694469984112999970489286524100135526577955420179830334580839834695481977001395149819550887112458045808222669383378783867771742027170466322584696789970035630319402479207738243635344220572574892035620837356476959626943464453719806516578118629509632657173144255338945878640757528120072222499543283282182544537857029161626039067105491632687880271287651452139307818409417150058226736198790004697747172682960272504373320705694517405806684361796965793892266304275549997059685077893922957164637466830135425513101447934422130820692042253507192997278614261026038637844337815567844281537051444665538243567381855390271897592967194746491319746474340334394561130178206927343050808473376685059518774989527032404861161086281239307456842202627374076338741174117515497002704214202818181538457461651281644945098168883646338044605524134650097736056039949100138775572721170685605157874922222058341113760157838260454286952991968574940833403015225602724427353945278097940725479030357979840635981322918196828260545135352426998260135778804206210703179574966729356438633684771004024191324634021000243528763914153918347859518160307280872366241799910792589925739295452186546204919510291556057835495262798712666400955266635214791395264893522701921121314008340906490594650154395194072314880753951584301287327819177666915144032215098424707451321004442643260120293585720698426541826499108085135069739977813903190913600436737365833461354465472872546244918188443845416495967332490586466547549493907800388353667507466741488498090309895255285987101666227607259735368875399468217206746795941984213059693432506523316619499189528433640179941743761546399749020099601758404495177509019865969830405134729124320192503962219309823387307618728890762493154880726538794151105410145883139893989223824952327226409502744286780243797246005349155855568248925564217466968654998908696659046090014892939209708005454608850364448388573488428022508579574869717599590709270269939670786090944910989592480877907504447245934023976217810605652300802944144860698990408789628171266069955518288686528992657023220554848763150058075310312542837144228495171600547052069397473735631083099128212518648980654682786895524931182573011990789191722786048005577761328567570376618252507917023174730006767123584091298315809529893597782183104450011254117050471589109405656408635810261326026198469249121925892637774641496101076783159116875179600787334816991997730614232856059296103045223815682757863554040202634984992027730165379536432306745695222644965729225736478410765345489983385047928744691017053763597447748885371358451889083560876349583046685905606804485518888152597116843254945490311491034323184129818177730696355109654536665922725610140433986612866491398972262940141497783541577769752657164323304732613076056351911929569510196725423544528720962566416714779446246600580809342607468386474965229780262037892070691105544949243879589863403188998479017185199258553526262674841938467572063442909336414277381230841126822799587129202077573040282331806598637860120304951173745723364056335923608018417660673256847223430017650027609670901175883644783824776187947078309027602235205243140778474729865368213798562958967280298669505365850798171684158370841229503201805007830749536935716134703988688090311311719369224308154129317762966786667885774511454714265231848754221956276996606974555454248615597865358678312538437373514331426818404891032574507179723145485341775379970273282289014840146427902082460580154693144891127470116627696366433426919711873673960606487264334689134660971082119634621461390448878692342504681545039045371572592491077339309097861857426495630957681262401624795962355849385339077906137308563054268585730020612628702151446114022746434142594151651780860221815348853743296330548326239225506230293305272263729561365549253471237684237711605193857643862033358918644298890331218065760583296349742551748434091335627553454885793917095107987382547864680151760736710383015219318210735693766478029519253595367555038737630644279867791423769223128753296533795297798633535585628629285448044473091507939479608282896686229405310488356708133537719348847553202932875847737893975943160249131878994091892917476597954718102387787628836984204720833823889905888859037583290375209997479549649677356296484075357753767543057022053708142197294961083788124165400757769965785975949168014512497559272039574074159194196718316398047749582445114842183838159253083985774636898446571527146654792359907737222718598950024833787638336037724297601193079488570512072101164387025085721401041724799951958901178202741447234527497806394002325212054244833712419167513669532716492643515328732960350486581468975562037124647344449124254130679130246433677263818676158062753488660148751423812577292755003055805869205033305361046361740662747440958478452032961847541674579413189949717363093860338775222337217258303236067681652238738222807950181563635984550596075705418800187607560255654649525957358184731391438486796102190838824054289740789164170893165907635462352851023276225386935948835537832587480678380364420305513448217155711644175485564236171922453107041974247763938584808729953152464988561717349264637737714113947801292343004311081526620586277156208729340281319275372401083225437043555967514079517595925928090580464013086453587543700338163329866562651131823090929615645308700010525472331060667311334763669661900040307616658543170127715013533522049251332391699618874208205300469940857527448145563493452797992470565976293653798932177075218501731803779612958937113067816167119157148214262925094344706061183636682704878069858271846692528294773360454190923343245647918040673344795623247906461509429318553541370959989035505198880361171376846241045311438397014865328540430914111305901988934196817436696170430704051729343609415596227464452178997442079559753677810603076370939840725933990657239346969199259937371523683077615523698252781169970064651881954874929203600677973200986700182416807553193404633900308938099233500357492249133087644739074680528204722118414574198327107661067696429965549174435620754024704049987592537674481894207853239074115089435453777090454428718152759986176125229208560735652303639184440795600389480081725592986944750081629457979825655716367749791180270564002376298753614155597679942701818873484240436401551887318851340591120771501075285979556783353953153050966548178593211095958290692106465331404895417479941015317875745324029353807130677195870100932526215977687146228637483933265556050305564965706158607870253651915829575181070420858219246571611255268488118112245592357635072059976077219904374046792276346492948600543831586728737698069835046199150207045026684813431776494028282276287556502935762549605819689526554100495308710595085135415017649273235314214011602830726305363297663732837823141622699652871399743980117037436883724930646657613256301039982233322899368762996212957600907957655020924921154846029436840321681639416993874051031449361076623839039854126304559577488746584401668924681394003494438141464219941300403836641076065114707107439703606173378684595671735449602406309492041552004760364812057205994353728875478935587876133381950383715757973039544359493534152063354102961741721958384174970825465166341023940253662519670973061062587866152725627860710676960405163406683508658051472028460110005366208678275080009132673836342685551425213615820819711459402805703897505888009874942622150084228969025240955264110481477622531562473561946070924131228183299340785226065845263191692539546396000607630416461094084262404283227739678219782981019178428897798460586250899561149079186438180962281570850549402497556401522805045982875643853464674721274305022627585116000489694210522468513832782020085022545277546506119490548575100679268661770153949751127954846617217157689301740509748807614022465196837250611240796189018375610997154293837411393232509808187800633323421197354891109426749011864711511557376680308801376511852093141871361465818391145916300292759095228980177145416582379571772966252274147454318197581944983447215678509682255369486197346102967641076400403444986082385961747372716570015409291970572309111125588427542650840606075775146946811026328754035762451603683878823078833051884332769641306983231756680531295355173157832837376072460018000838302350137144900795849264516154107959832110767861927397248246005860603053680804080782027074458863960587981550418132039305983339385861142914176533654162176129701334904467046894232708407032598116643656349872896541660026524839641796308361320931808243555491838932690366787222919756845089697723588339597560575037879573287634209535277096632569252913632343196563689271897648878661478673568237923356452431710844290083162369111141216437715742583525006114002653729130694570100204984668412374993998042488382769108595107486701515046504750227313876565762343843133854879566072869424916943461941468818177760106657460782651939438453310013697634185441311509863162863638489452346612915769145005339760784347318129908826538936654585529710803929836596310955396358487601598805763797057141920864180684287645478675822103031940426159911431541289301938242255455079231045333858338314429351793154109658104464877269740330654999809875990144767003380026201700127835814381610112780418012582753087899136454507493926887174076846081525190973823987770508452893775770037413491999040519654963302702631295145716131520392188291934632901230521404488021876006403952476923494365131038284787471220020160672701236880786980557881897638647174933280316462143247287305152797250033962104687339126980254202144096628121996337260909083651426617548102905327922024650992662336860484096938051432021121013198228938445520174234851656948264999228167355729304717306915359151181656053717727298828350030701434362947628339293019599568052604554247746549710274574968898271251260791924339637249759362556861215773726179014721177953158096972700898206864148755510427958860940675289750056650953804275161699707665593073934485801947632619986922289654224399621560375883011716178983070360238232532689178916247253853051493397774517342451862222154300082295704970837683816725366426644470084510133751377335359686472724423753523743291627029538528157369410841830315471060559399771678086520946432466460263175809341418707039626002684111990658652852363759664484075220664748228229896272758162803383773846956023479813930344473778779979526788567291839664613734494683410746225249761840118305310043289426957435833387340792757459318726005568598862537581665586776068615785535468411082292081664357580892302925038740444220768192282068832004780685768558418462399143103501351357937932334075401313365531592542488858144068321295026006510960368086700501378271853817088537401279945208275401695100454934062055972011513019824948096835695131478267535059414323797433166316684382552268597219769648876244886308420632317328847691776029199790103856136175449879176648841194511242235088779328552407711327106112023933304688387215974647873502452844701575511587392628358798354472851477291079655690731906180025146481438294599220428349720074219843689175581572900313454179705272745045257293264817855537411371917684909329381791806078544398247727810296992604656591426232020848818404520110770945740965695797221476146952600344417574571394486585108453904502351427947681398650856330721477191362813335712937786062373201703027072352341175608258390400431612622678242323911157774894925187328129284902983092214967000346143050776678764048210599422669160859194674483819999836394197000097755570177961349502776267788147358745499457329080948856733576447316524039291891401922046289700994102626755724252158950881718087474996681973585125561981219806342242317568488225489399804935597502057680548858242975463725306251186680885541561139302240023316646124265664075629964500131542889204093869836469953487122108520574937928179899809717454117251212528477152252336240686405268284554261154080963295356122324468684091452510877239736053738139929554653909604960428100655240468678585902812853330111203685920727713037704823844095747902908428696583755972456580416356394795917599145565929205809336293050038280301402805620559147003754941646498160335049755975073211282483810589905825798816568104829669523120965567417669365178714829108094727980535773881547056709761930512666914378542912187128492393650835177467635922655072325029234892484021288746430148812602255272785708369511818535739880595114042954772459224728930451462916920084148011008777395374312925848721619903546223189414590242994954626082762155632168612080752540608575193004038691931346015643611719041283169446701816082590145137629581022362445097086370422601452125685010789044760822131574896421086204969537657297020605324668699698741243312206257709904274349769658603004969909339240882842515755628579332486979494278468896704044161089447902284310185843394708934424319474139864903275387687281999050062367108121415957666537106006572232882657548459777907740032059852302310916682042412284178354117449160324333959875484477545723535254628971691887608518174025353836932269939998323187511030374446935612211749343510311612793600794032663942136760017766598691742046318332803546384070812279661428527641721254235229875596476897938761988503896420586481971675270408540814100181109381800990686480840054613816334721137217412467887496320288294575514624942626854451383416459641081145948364387582234251794863291659700435789844649184030907523444475545907013718428174708991556939597159487787269725586019679920689630521804330884070047765639111146283738290189204905929270836423823571661680611422150364560078387849006632619523037122017016303953525290919924832979392144546366903159223800062787847950714357899685269461197248083024575559881243101636143463787871896784383753010465638917704460958696908468315769571126441100748054038073314333686993454732094172593171374231881384118053908757372024280619374147736824737726396224374013079655155153265683742282961303247053604481389810811553210936777004211794874282503659116597450073263663155271117729567235674859894249938830604607924272313008934868158447960245381517552260555706765414642203316011113015804655393709658711757697693485848393617162598125953545055339963645202740759276901641515488113394878588618826211828740208175593797212209898654498532062747455661027818481742606676734769586027668899016517457255537841860360785599046716401607897476304172253779767604341633699825042265252923499090194169965063768392508563730260246121616865408308689140586420520572331628172287033144214136537859200420364022960089653072408834992872346655458844947436540227545569220439580856739721197233338977589768759195033533752205276149348769489062961623421469036706590865695729823643617581058044631444364606277336621755066674732400177968873269460354922808720262014362219060661871859422516669646179666954315873719016030037197453952712450562458105154141792320727496135823793306725311854241590840174208792274843870923028270747632250486180675031135736047003589266532887002702121014062820820761185366818003699080134488216738825512145661824944645302512425348107935347499425547941337289407834018875014793312871899629528615028203681863910226452529966430194679388319153974283141218045735417272896606403886000919005514083330824035472357852699151181289704480404789426121527541756829992679231356763340085717004627495991386333944300557020095810267589238938822952478803851244042491281223049541609454810726668698842510756315001091798347251115804812527177585813666336911880239322022542292904678637050771981228052936664143014625480901753706225843530848105765825791498483708117098848396430633328860874314543166135124058480459414684444504123293396217277625922877249031646362973232924899338956109512850398125413648166038873086610967107455989996924613154275948121361726109766478861166691949060337966967600814309958772121513149147451894507331200905287245559947323746810626524843083347786463934777478377130956839822740206378631940459635538733364310197080439566977120844708367655679623837343209458300740576363047733849975495630879191054564133106686884570419450531643817866113290012290777304094231097972171733239157388148912856665392628044735191702529555993735897047914215065262886423246267680390234666473404773915929104291368355865560856837492894334886265005786320519357059316776643767771923663156362693380595769330639681130068317562418983562489251340435305233716462166292718027204161022868737576919631528181439028080817755159116723097817729287910504597893427752992999445126199226313968935173599238195353855851834952842967397881247880895355455785037489841324150920827381613582942106879409527412150782903015127655945587431030223244216561825213297213379566359915861825542644866923120735780227054895338895716786959517053203723498500960397183691327723582336638962079223461774083876285803600612023707967760677134553406811858908212940447662727263685633349159729529219524270025420633629281710734410847535228494828304880045561172268190810046015074156624691563274260229692738241473059946027905387388472417334982442922232100012893672872030346138433730919398949640501011969454083850107987143116244911490721381818375305087614348414815725851417231853222235813732654236558261390159597889109600976076250034867630607764694229009632069633119704336397532229666260301757937846450418473320032766801228997811632067686099250643006819853121678919105887642480433588047347746357003824296330918005050070257406455099300086016023693543982569524401063785928340206466485021603061355559325671477963182731353731576573896613124830440975593520243529585668867089231098066010433158076770132592204693435232417016016509737049171585062881832827639048554645230151453559406177424899952293566812287524787826599948025530374426795185670629016887744296452962431752482197993242237825809668431003858751076373874126343868376171596262361382451663764211891225064848233993014526568823663090348144690447055845630561634701025302435984947569502817553658041512497664580955596434642746395081644627166062787982261573858194241922832760481478167940525813555872395073134855728834824292409995859943270252593263350722626675231179377968624691807051981712405603160556590944249910861398503663794673284512397092736861678540126627280956138255981933776679209145326693786485027966873445391159480298534079971661704849664747218783777333179954892738451240129563700759905063614249903899307351806123975057695952689521825888153603334370401589059389204120423322115343043290342651176775220832259970515556414216052711985965818329186532704882113518719904354934705118430555347604565909529834065334530389531432380934233986418418233044104537490647477457889282953444760333161590633023742823888906253835879686467709988491232933153198732222445878336217571472091643596374530431684480620293596311991362563225211183158246588920589826818045395297117172075724723599066740161984030076629420488052255109129666285974861009921298617967145584991589859757613917090502371112512026688764493405160141636312166873508113752799369686093808408093609991814715362261231917439582218196163701982116580504107884117032141251487083612450916786050409686738814099447379470629954971166543588809730419496314100098972565296861985708364081921603906935591507774705321927760211607178219770037129698285334689567997008904110618280865150886659952899671465837749685007474559717146374800042333500820340877473481295352381167022783623288077054773024870474111983726814755597283847519729956778731614093761083932035602981684881949731612439921752107048766620826819403664776581037007617024403986959861966788344016748064833923394607858533084635193447537791548017749590030548961059212306265197518918698628306228017466035583026093440856723806570385560451988473858375543016757093811512410657249110712652776257479035887849693972463474710885815998837966032818235350151242131417985143319474608927673906816737459853774250040180051816229469856835874048312151769376197485806066769572995065460024671309249973980521493504828230843158136498733766106709992984243031159583962258199331807922348871185860105841652597036320662243373314107724598412200889676825820336293356123280081967669060143442168844112523777685857049966521324186880165332830765146375330748098420640662264204703829009682927975397978124088909862734816419075551835816542588132217649850810951227664682910873381288854843063240248909490643978682916986200909962014476810554321110849827723828700961515163773456332155169192660798662409525143634897272733539625553209819993929366526028180485965053897040411562749054408725819003281637890293800926711011683110892014664185109647421706226395778038642631974331441533251120329360759262179701714504966570161673878635365793881527072223354253185002624354444657893627774205204786117515894892813038049857068935945259211827846416152597984060219405396153218981993355364921877590914500821808733718279364633364763867984979769183533908044547378605635707463613693623339620510749932440765918924714919105220717709825808014216420528047064533583327666846812508073297134898245330517128657443409010325221354926936368855751960270605171878393790114662374780407163942549380001068695996639199156879500444723504353570184322924673016826661245129029607820018061704458873896483367888774453402318728631952326350311019502591957006480393679650393467615883283279049852545250291882437196076658917183375158941629022070947894322477177949399398060129559428320954517864007549743375647144776439321377087670265819288901079683236229264089002390439183636686471729099019031749455727085669789093059824580466448508631659399023018540526234351878163627061603077373938162219185423847466791006593049590166718245100184763855769308549082154520231220197199284386168523075358851088759524734400045362054958748241047659748871761091242529028577410866040927442937844644927772032696742606387571622711741596221648678554890998474678152053286151415658328231175020745459490894821528391388476611810163117701948699198396235367266128517566552219614002614240472791559656830306221157568515040783064274057731060815616051879300925988799706201716916885064173078975071566098909123870654079934437878389446170996243488907425448089866103003854013861893882701238444144856468929006409964926857999331394029349408138361808541370017625657101649871981154832501768910324189712164152122321763887206800819051746329231886772018991951364196877106496818658180824854889811373480832621598979005437125020260779010750078293405482541242728682951592063677342876152784148302797475451255723524189553378875487767545109017938929099239177363298755860077532897391679466263488532846335345166070436351514569038375898581564785209037959312113297996585514568228096584857232630257397976735445082023143486197493109952990407443778725777557432687150134169060299837480278576569095005172456755558838945975658780690147764641077799762723821432001031350361252675944564968562503453153145753605217796560784728039651032717587529052708388517779929391768580569602062030702728604834091589133761105769368585931263583732410198876113111203441611182874910249817856400775176279942739227432419655617971490016169013307531010252937779670260081683384400450442280997442539754339248530227301553385645503628516702037250551579124700652242066354397084270435957337045511069136592026882211652485445898115384259577492539984488330798297085699128895051087667791347814370369758068310480972352672301834661945295065052189037222029051114383795903061890845886977495755796055533882473133851147009828493291362301797684735093690437339190302709220461086906844348109988810592936236802724300146049847505750440765612124874867493508390616612216254429522367258025613329711319821319615744424636355285342103867655827798708905719941173545805676849712747811556658943073957964294821372115134879432654926859810217094147803461597590492224229117512453311481874832808139143363707308177526112273303560996225149342070730309917360612970405428491570685223784803477744508600435634251472821472944234377521848531150595637010863463212863580596431725267334405083196119025283786919705912730109932350208530824288140722180548036281266154277505577985255723852132782186462618854293347994124052739649009172488675927866833277244065230020062639351836464736011395451643592466175825536061054597996615859329324928288426248430407827399756853509682948854574902972253082402301852330115241452097743166936731552645301317498952073733232787257416571793348512647280107494877474678802361475961337225177800832034055558055567014095609701417825164042441926719703537118077384917058266296861372127537310807866966797138532211059832958109896049441808026532814644611252161426350449161425871104466328591540314414148316244365476597782129016999603014301228492023121866431936460414980892214096631355759538404552604949133326047619590881693023249093432995097725595323985978400670964770195773477497727816525073813819120418106659939094431973733436858074608542267788168113443625513421387445868205538360537606190245773049954263427723139187740525497254300650292151404262851614162907813554541968423312624754978302058674026024307147759546058125290753904646991747376686791777360876788319537906504200395878054577914925467222380864764151659432995195151660100142797099917007036142602184071725841621848354830105544021007346606405099530256136617665868173240764528457195509626256329995574434001020548961487347028833071683707495176215525714221195359362854557677167322001393757818233048482757243237590437881347519376672724657856408319733482236328912093769690849835355784189185584545422702061632072816587086882479152728610924592821138952742497086710139523671403487932855735131874900304292695721968065066658729757771688328928079278475172539712028729372909834004387396979306964336330264224118188572907491176015473607561536169362351394841685911925419301314190585313376709974553223482084523454330647024239789078502890684352959904198512743440704413784828356052115114001813979334824191960790197219182309544064718463310478506628018764112719750623016941044678307022602759861344166921777743151255788438007759655086414221390717460793812356239835940628371799995959270062986015475849561514592312905275744239835066193542964430782750025086461382702019340542288446255301448454924138841897322812954121535300355942385077666336238789787521527936796195181526650713817268378163784402011071371940217554800046548550884884342104782590751874653625692214845693320610954850244636534250420161456477820764277682306725559361211889167595357982110497471886881552115263594330914794254977145309356022323866429735398804447127563360684831367066071334831783198856118765263847934518195679044206171656787497089237197640148608045763859525321110562824172845147529992132773030568358104773923468244238878457662738233078688781458691157895665121315632481832305721369931797219561176249570634293553842282241760882693243678857601806649742283597923614463137975117540878240718759443585245774396373033419538586453879059741014914432847672700321054825310151100309109728607632749326847251932418708368816811347292897832776963485314477293870829353529250495278247577495485714003455119886262807158031346742717830353908673784339989252521743880545296718696343937408957826654944422536225192351391680751195654062053415645418671558253449422757812230735796054753068886073948518994785877671163363719371198127569519435073413325817463929297186508681385569516060931295026256311215312300567384249043683901077971383710702899615438296480397905507213718953614114810954943962885602986739251506219206195751741455772696693200956618561758336334352152404029774449152035171829989519368625503148108846986724837714190157047315313753648398468339483665716785447998073286459575764397883480679073441815108955768271659592585793606570393248451332978723697233695871679825801167606122399573920186232953737318242021398931911199802902412540483313261240044109639016316767474642478392758553271182105716656907847194848920825120444313435411751491400277291586426670440238333296003425222601747776873580870738613342134241974281602633834838704065300119875404613271008436045239879239212344927402300746089292581797952575955622011816170852541198030540289338279862163127481442000154341767810953413612971747997825831073591118033742820287099828886877676212952367702872818277014111523296657573800094194212113553019720227915588784545123869301006723731381153693317353809191465282289814273439274933694899138551276087840065901933994551979260181153114428206978755530886320392760977342254090211080019931432733206088146488393234199234507091860492937410163649231734986319843425037846761129655369308921607630722463881106580869541992728689888103795540064071789955429030103859083099182813933808213827800060149775474106736869730165522513117477049229664556038342806069471910948445263454048726324303895520366484578444520483345144939444590255109656990624235989489036115115731625556116525207591981788033541594989370680265976914276975539267594820326465257929477451506566126659261913607235419566985036905434160395344921540934381460411797215434139123147038119213686272370338127928384500839185218985171312977662640482716689440527792556535082839940721338654624121683331257383235560142456448789342876803638457391765398299685648951917525678868606528761622448439373014424531907705479314369456515239584448488911647893693453113755403238803217188027313779646938527170778688103294371010114658867744377920728817304232622531858827569128416646297701425006650152497102713650302508007561034776132306552618800480398132254909828778422311561884367329926889897431007085903273376879466210036812853954075439467599705713289209066659551749582204971931863415275085689078052109179419425275663480177616372697758806019639606143386239545553634225436708962321296984675208424735322876807686285191584980633267560545748327929816460082335183973646155188452936897808352710242496899211308874940872597618942876149621251253127829828168786015495370960110085315961231779460287298995154414613001890832237361030649702262516921040198928855206772172925684705365519647252733004707108686624403038328285583414391471923994707333080213080533815532270121076199830823968705184460064542049542698237811079210669898264427298882890261403919026779702803579984495758320238299753907960240061494992398385688496142990718882908535051975382017002381571938325568075533760621261479712287150389863647164457948301320606195465450557709776179167118633830916485530893358747135931653367798084860157995954483511357509512859361063123133572637495487127785545711346200920696218691659961826292177927474971210921165490127169509393361654687328556515369835815845541721597193066872619902335531911687525158460205970241048210801153227125631386691664852490949906050423720560011926700960867093569064734782373637961082039163104937598645340526461222212699832156614552483848114716651961681328749533424066988784591310954679241755853926183831430233418097591532791765062587441658685702554193069324175483602419685856230857210011485958817976591132052252898725332333541955375634768369434419872980254863390272503092949602735343764095902128255245851287891901816768369055976494085915804138141583232099580899286002196636180887488329356993209360975247076036758407853358641623998696758452661446298412671970835870023002532869732976513047511469456059514405124277939521519813939386058622864465634817630218330228197683393560125351852231129503014466498505240596881133729448350613393924431142100800140556638862371040015382295214765527909112880401355215266378460175975969313625836964742653256946064488340131703047277655128498963112932431583446568726782967911181679672255732039006635847183746734601830958664661914392528125755028429561774734506146739758948187439768016317384254170260717248121134750222992441628664087476024628723447879848293901652962330289349440067585405887289017310987066037504170502027698605839818545958556837051622262354397299473765498097597239977482243832203008646481188353719035000743203537896604653965605556275750008891830602150346151081373313084145038777625061513109151408270158400671676557486167881530168357224581785303353282373703336399197158714477050640821072109624702017337254696935646208230913179235585975070146100478614213683766082268725161670892750648561760537769432043865279554464283405373406174468578167699102003402177524887508190444408124155450343346775414408089756075800444877027879389976366998439492833217358992278515913442691208803947944742010102341957557692413980023092513383191712844279055958481068464678206065054128119135853764497461199107725969406885001527366912710394532407110811551240436617922236164646671313823571273921374783922395331638130280295266760336329738304766770920111285146096352992994748904649886170450423698177447113864541892728872290183209749680142906189734609935533020962631817361306695913217387807042458301234657770777962698052783576161980108546087159582643863285709487765188187524438248156544084716780604750449319907213256771499069863264149669245924475929735452986837719945941879046120165007948111007469265016982893336944443371135296845193730008533800503086949215412885654446078352141284531219747033672647950650281560894522528443027289000611907894458166152462311883763422825388811474167022696165440112141007590353550730502699691316313197445685062233001799348394380149465003461964187728374845012014398667783309146585628062859483534640756985932010568616050014454621852255982895868438355245767219241189164976274058532382509094896455146723388998922426258366134955092240167102246689680019629160910496043686601008972217223361367994962487847725601872586595878946675934839827067881305682076672622340601592059599094595554690902894618676830309917079063799446425040655436470255770420206776088371199891534504103002638131608202654495652207828227727299456127649730226938035981671404674928372854139499450673965557580838975113601423854649210818733592522068960629691951762700266142817642440350743424721030993236114325354733199275214345156754985552015242623141997295352338030717089820288358989738883381694459807638920485020366936600138127372057008700153329819486265131463870101712347294855632150201579450575860992822728044025008132875135958589001804876832265565753029050719312381408358941299780457034337312129608055953087260919317847357988790638145854109004741627099176792881311348016973103255315677788099816336842105284525845007968874967911870908831001908789901884012568210850386299178527816861097985525118803923712933026441914673420579375343328088043649410647227704706254356100597491733308829880445609383903394326636004134511448768864618376081057668716082540466808122966437108524392367382028734486305374373514619876387671004570124164108622385149568594232339521583986094419835710830557273200010168658950271954519614560661061782193982681422911894569148542859375492245944639105040948142398645849820186306317014893212646232757276263963849689577865407052111509856473968779498296505403649106114412036660117619394901064078366734578812239790920461040227390466535300309017569582255833156629301673115639960427142366106116291445830468788634504681544396811959263657576375830370237295276063172663283463173147057166694944055104879163418355852471305898734506412580858732308071809871893316434984525621942482631734259658968838674849980626399298096573962496630258264641461771338786840668506738970823063634514531636911877628974524386257415042855737232778960850028460834045659593990065317450675449831970274398261638588144764958844070368663874669892399595158925498014108309547647097873244767021255718756130391732185844134542405202004246577185447938582433076990787423674754345424641112101671045660502820370958436813481938823616346199923003724252326169562270003852139340418953435326285743160551371156387824821738227132136433488821544880526653551864410389893721881948435464700944991900622547330769238603503704285692440698565707830913148330523703097526696724823099029243162523986185554173048816518181846588228675490025188778367965466736849180508172381251644058432164227004268318176788089033586024209032202636451550576956535385034017519637299599025739792365181602201917676962138175863262666413360072472319787973455164277610132989555557034079106421190929419459380163942308103817498503139186410448942241888802807850082503613975874908615490267573300754751808907896809054357025989428096853283978669849763817200508063577697144281635909337058956964531453974176035104323617053268837250985597702954366135613676210707330374321890314427411841017940168062132266746875500468609375325102196295165601767493214228151998221827601300470522403138106809127598238285651686145146940909122459449819434605803389755384335041618648508884322943096860385861574565268697900454924677707320265541755586943671231284668392808147059567825998446919111235069654347130558809600455487154449207938700982416250994437711874800960162866873595267475467669186806214050832424938880916191160305969571476896784181363036461545945099084846561576462197069973262987649595120194218795622675494581396032046958824257854787497062660549514959111404177293415221758713382835796278718790894196849264653126557098545363971010657514296317867148159879425327051458165040405021034151305039813224193791331166913536491765822259680945955215069504381652305913753157668006496234433182215225526616005974649854836955163115770591319818926947080345699944800288530229592767781060794416789317044223721240718275234608487328216877973854375081749046067404419110337212788646892465392723254528129036601322428443906952899251410612058896668439174329216727783344208127618921267221353675231230604772495832784759936927695441419399886125164707916593547960737534719918446330019125922166562217883131448520212545155815140642990034211247148463473297905307343750494768399712973589098735844758440804042768396228195612985446855856619388186742953194061761498676062819151179671584701611080427752723576912314939796937115789304761974353143943270441925963361054748254107740297699306290128399265553549306738770676020328189823064575453896966482369562924901831252430185022871667422203446243706073441447135052503600524019292466912807224077843198420184081914469098788518640099045331086517148866368393040666996297151991161287392956265944437337917759600710811837090516813391627397654856883754412373076042703942862911684718476303871051510691413212248312796103313105616678736534366323784713364416813375332853909765564231833149678873390949399770759646031617302523339979603894101461974447124894227145222455425503937583959780278723562710544920569777062591959828711023175470685811169346153992349772655397642775078650557409650749562325164656321868779439602299150717742806528897563956827199135455442169746347364284864919736838953340347116382740181965062731727017925355523178263176439698730865388229634127009294579274707100989806711351738113459739753754205471760967899657530996672499085477490634109639775643712116710801546915343996227560703182107039506318941418602841505454203884081112348968469204906800211386760048903747891018307401650807462305632679228730033517673856053262282772946948196924238468227883354416415467530315609977903332004114983384019565298085845540769503747639452728636188425742436437948319134541581721309605591136079628385003527928393984285798317129578923811194094424567440557544596713574624709104728117234916253169816686306151169333273082096778322387786941850087791289525549958434780745750190615850325220379114615785910159340852237933514038110386340743570238645152133086983101003807031157963244858086313475416217221963642357415826043857194213109429265962590540877234484476182403666392661827032286111939753300820568953356694218456122212767032815236541655267190503621466965986828358434172065809615106801206919137834065133296024925696576481788665187910732664361377494664661391168776527375293708754593315467237282886226616323802249592353543772706747464531471695490904650108419696565942430547667260778112693448111824187800574340455952595160419564952161459617518180115246428090109241458707627383946066526136773590709412872792004675593359479047348451624696707543540242340836391937018802405531966747316842017643123018779238037113163318119287413380052754028667347903598713103034740859329754807035359533772243134322574968456768851141318641468298116596876641949209359630656330663924624961187045675855626316313141148674408497225096934371409862005814968119844713820492134491200795443358025879831632096079566124403954808945383175002581623598126530506790958413042223432112075943729256753835222380170266665236071197846255008753022661228612220632175556836396603066050658669680794710769491414882819727119048111553995433071827844485825670209688802522828421569327520833189456670236209705039107037061384660410312128765645634945229959087137861765574960569936092088195233109462403851149413308910927500149937718016311237475502206529364130786610020140544566987614929322902834817614005704792511474324930911791852121388827309977712163405653799413426377930711898413658696981263558118027841000602254951400002021499873561276740237110780186830110499079328616487013016013856381118440722411474947852408003694916402831445536295772126574257662234515268337132540598922793555701097755995475927424857239188719460899298810129829387176365354798775401032538805679777259022746615233584416561788050258521565833814007648155783917769377321254828075209450860438125550169349085903839299033049796565180918986527641839020496492116104375270749822307366047546002721897340397667064204924903752251077461006408393807701527289573893883232371324566065411630781013094269672816785835181484355599437768044718859987276634549023134063555043143648380025322568063578836734519241269203342107015378744702385902112005142474460367889873722429953019752656745198066681612718394893568339938536045328427285374764391323436029405281851577421029823865269045014054035982158727611545660164384585030842942045535446203194791918463915227766235283340905498408410812233624505508584519729215406744370013751692361660194753736351098915134259386682788731892783772359026655986708606748680689444404945656851460175351892353387558246492549629941046834343584181546480590805646358982730267175443669851298357351709021158510750964725440745893200357097346908825789171037671580197090511108300775054035341266768642832358068530040305640726328613163234260203871350878431193599914378171255886299134075732123779194182495341180189180495295264062921081901997755040279807487828793094489281027337456775127421809554955130999738922227020597025449614543657946891799253723897240958981812306001203722722188584329650897023922631695413971156969289091002264429599519164598594515362000004745806672722846711416682557587769438878328496757942939381785191985033105752120475895595704268304449920131302028229520866276988062776425109605074752651325264374465928086246510422641304927386253348153879027282917603629103390329745589308113891285100156416993417503789013076268479954832610751423634965173884811901481323239654611486776492206486511345502100277465678031990703450284928066225681440348145133424566507370145256937506467127592610513214745394979840221210089072025525295707502003163917748602648899882067680548665849642357399013693020111406713703131987278338527304289076704028124456358466249708363277814492279839045388030180423856668692093950930050936468657630733038574855249096323462766417218492902070160630183609634427752841587418736201790796901501610861854727427708341336295139819430765765377625464743270252775359605566245690455534525489372164420319082910064466234455865029145051466375615774726879138019992388215689574432603107271465720003730476562090403507142957080877571329772263432958826870793605760977281958407709390005671476999866297423742449880672355199800097305247097315896519250776667597872335214947605285746796093414206450352043269716935036235455058228471775842436569348889417244467077914445985227488625443482185174454934548374373512964935672926778854558215344753345195024354391778659682398530350711291574108080410237536790796388516533269870189947794889093817141854646232114853060873633855141449004128611418573747353572353597676563396091777378763366876511516191494341671275529871825580594562262107520408216020322111102504646034968640048503579509630791847830558562006976358110035166556617323845659119983768625219627485079449410965402639829845954632679635891852148198557395313570304362011435778041634502975749071665809606337080346011132521649453810760018852503140887802873316649729357392869399429098530054726569027592856611678049937704994373445062657726611002821217910042502868049751019458186239604263185337116723000917657627764911506349541793831428127040230708160856052091689947443508657273350087613950753589381966974385727415185301754929110832470742776476892445694035883343432803362377603750684190110657527824101131106781812678984026824906544232928613379721221956309979365432942050815351798409973279425286012944652078728754193591743028833485793832547395663731806413438935187338093314153334775271247143317715138930251063459318592299783179802606405347703689477797625308669251479518084797908247155450590221527867713657685475543998400230057084698060148814423811876481142482297658245180098996818510978316498790565430095711866044629404076781823755892964657382477389537438783233479863119799754265762553685506374105785271272949626561377690905208069352575620379715398517886103220052558902874311086998135559039992494171479969550042828650722015302479385414639856798110263216664734729307161112878654362030054327617564980265003278095807948443897883300219873011397713687327719453721678992664516319535069628889113303355446411129617436249232872892281364481512276660373529193032351210490895607534933620060677401665660035683797099431839849902047252905337458551099253373776160400078720640091193819222217483045321835341327015772032767406670540513968046655600467740499229343425650381198254922266604094480190128185683451320641679325174183825028307124494782624416577729311133955734142466942284619681140089492581965883266585459140789483516262238421844039443081629392018938124185014692782176826010207627786729095453759779471412705230826145326523552910454110055701015943340853314721524527436272288432195328702556182930219435153870606311685585070405311757225431312207722028397982710599929208100955759240811031651845604070517329316090020351666677629052848766870350010729165438446847944678514834351528652882949525957809467378278053316064229625882922689626042975968151702613126384603558398482480468840168157095405321583765160726437545863547315739106847297541394227121344637171704471574558256278018055677672813783951749513809591020447517562242883106918282070692960665078492261048901675601911261244432467031053814835690087860121253512514869287049864337380057169039936820202350980178208772959695126695060524133568488982794905181108629676403171018681743181166098032358288377095620066380985564047889368830890801000879155224189425190919969731080016219722991419456517322027066967254200046308801521472422061957631908830385118267189551146134000976978089586009975225286516274310634203891561659756691162708045732918206834414504476273179416422798982834297410552031866733460632666538343525464324788290081565034396058275275695253224870683455673140123637936004258903788889632910893895665169840808288984511995354399450467782801491294696827589136020468391869003211103780806996891844428173285762041021840813672614753545850421278468317002938438918149846877952633304975430009850766302595053179439013689332934487285738252491278497753611564087311981382841429115302211533595600896848699773088264392413194783349187276943490031322134714022192592313715931683445684903868597632149123021917776054399364733864597535350987653527292221892038410562710771371774763615617997249923790097742017568342974303904509977232234961323560031875894228007725659378774846685155295572708109122232385629503531897423824461991263537237686861366339568355447477099815191098597014816506790545859261849701794620258266649253778557801538705457689969545549877594555312566754341342328660854277025118067875765580500442874930256076919914618526349407390135270801627978663284771838950185896454974618453850713701235314207848103475251486062319416059524404355889383574393702993168016492618606767352258897295613793642362715870571429848360906725905075087246660929035965605988511937793556769415387425768209769506399778696588297391341003596122079277429782866289974803210070335389494343345628610175946556012301744604598331480071207807678682153349016681086030462492953523924027234291149402079675763422711091840471086381343977267698021167230791074572788039742096586349992904207220955806572201929356406475764103307119756073246844593284002699169980227175093255432647764298437227764888410844590563576992969128105708083981286591255950631801103653322509003260407430883515618994798948664193152567794958500074618016653756493431805346912099124980142149610514250133789560020996781913702632917232908364067368309325721514756994326874890537979256076847803081247079284983901160606822370536188923750363754255034275417969552490994831755209482001599121186736951645615161131352897349394635736777063813689647709375228163353157574333770377907992040602410655419781393707772202978426529219168465866073904879371886867056429072298686389669605586027199903963490465399766260241698138652243714242042599525534876356749703398098739199270009764262552214362783340715422124489879451764434970599330242825016049356968080835906122812594409239198120321741967688572781862708886006549956136810639419110501791411717132746305213642146023873541559577642480439121544319593648504589015812036743889449912066803017138685738267859535012966593407157502425135107017744189796409548164999964340449763574645021311708641097341321611871692519439042765864363765190415597649411645870547373683180611390794599700320175433625961515489751315145254386761539378896190367229626133423501048435629606629147078307302588794017807712232635533536013753651716681902301684158000138429878094247469646646586726459126363229359105501638458150550133182678374498429533000570298501842247327342900888457878173396000031563816357335542932791904097827050487214153278089094395915121975672091597588777962954796318174746505213934881502989038813477993367247389743872517019794749874746639448749159948861422605568103336143075325081141363146972328275434674123863356812855238233640469905384975165803024193293617913556172078996331754799070653463228555691066099303583828869029303488638316590698678163089662931626283028496983251191702450527126533188218282373126496963898293641240510355513099813303585298982399531710035367653730905392950542054820069448666587220924484274711894777485394102850926944939768128915659561139885343129652885143882072070800696838300115405301125911220950157803265057728370937962411924522319609996858585612919773317482172836448776096787938200774402834002265819367592851233449213764909960719886575725423266233462290501825946887609161498703234786248081594839349856023497797276886183898650384589860499860280959045116041908482745316059147941613450947499027594404574153685160561815571990076815985362297017003796088713271264096639415372269438797428277088917603598985809605403811119332969040554652793496670986154039016605178122369800923006116864826354596924930671680761494183578170498025382398200422497416909564273474576057232746539989147702833918480487752637998733057922561721061659244824412746533988400880645480879720568552053919024897064520444516836816283088327964127012028973548879911921948268597214764635366204791613801538739109818266397516915266849729903731497425995260435086608031606122083289036231522653896078530771932813126922388698080465467101004909358879336565252672552635784302239141110148149209247272671978059440916070328578827200221097826864786531038187859590834224019750665373962711915261569582477985813725039476444407192268453314355306921650440384396774693805914646650755230986747095259537524172589646856175574667847211153263396770566413254755722429734160869900871098646882609290214779965720509941666094174553080419722127085156387959464049490902467986037375176284863851629032440053377906387907682002062327528161658702689648098011493437381243223733405412679971337423524163354328804955056567303328034276938229926578050212740325285408696763523540397885622570064302682706232437721280108877010809630198703457267959987278957826147012357417361718603768277845821474377012375007800631972854840883404418390412836619237686656231835754562561937042818556312281303274666900086550540346172536460640750646972047452042033107699196802438821282089308318399494654792707532751380440773497302556310833209210528855113773130103889402925943435543045303618404180633750282718003142866253812020422366577696216798397121977169357904751210816474504192502157512675338578980220967874086653750109529458035189084668312493577953361859495412090457865674092242421107104195720129657705779190786545095237755065061464198943846398652132364015503805865769975142503267289887002439769288359461333485884568769569241242182414054708742129601865098534437260980392958492544181014733931367608770168136880435866919628729169579045974531738957077247663710878068246514467449427666951886851946383626725715189303064870627516881935595603839742377776237192792043976838608472409259500869762447147182761416862784128408238132934739244199498557450608535310700589861992737659872325125748445041988549796726862108554221831409679780363736619377326431914219567782771613956619348959849250729833831654040690120212447501170130810308062937547848857970406019548869447856599231885907841690910816168788948765776551321371009205176523157182381452250645307393922858974162360437682058107625893317452076407874585011029074928445529422993815870332381526775266603731796277481612625458087925848410609378826825837221340755447460643561436727307546396531326980910571900441048955452842367724910910493014823677933449452300051131981942025613959756909834035732044923170359759830917233004956241020282912640122676573420808565091511297398156722020134256881737102247740186993716314143300036940276874397401515747216154537169494876532404875578990708854421796173438218117523899265781667838424071302825921689470691121177056475168031822965771096366254124609411438035314933094754575295985789520112116892163352440693234894836285855028335502918934719593101197324994779376142840069338011443722435968510873107401977372398904485094663960470271709946058243459615247639331909587743250057806082242832751635740438213547157877088540635382527116938373931891085547527700568896265635080317305015724657250084773034763253096272823917955767653630141250991725272017523103161885295883187488794898042481814724709637606146091045845582661774395570044969210993843034913330027785877118447988812263728982705950915925252776422819604336961320858452980935589779343415700910960294242323642943820757491518072374705025287166450163216037869643855421259161148086490403281221904840445449013630097277910701846468363755871445620831025778921986509220079101067073258798018338979438619627551531400641147264365900888639859504781154344863019907892391775370223337777382789629645637952449667318258431503207091040085980066985655194223977992494985072418594719496209757316439870186512221834456683478352523473980973390470879176244458108384442662364261283312905894307834592046451253632773148799201157898715730113639089816028281451249157700160016286414219082021353934869423590739656375213156614768414478082027045291308577362581586272876039718006277093629390541121899495494649314596253743928347853317234312237433462960009557926242384670673158052854645540352803960499523507514487665809068862989539805744301114961685380540370986863377259541989392146914873960305187886046919806131536884760558152240079519112258864708542614503132856581415654739499932611355268499227928293905786030347663083459658881819457962720152719100698843510613000500090745564080184649462099852640169812094251956037332255033239483527883763481482033369886582766525941399984987979939788099014403073867398511645459402863932561181370310149205904700391913652349080828956489302082880173903663137974523549814546502728360019243602842373935201342824721100266410600383715176904137596983979145626934134324126131010370641814319878853474075422336734280759025561330206127653997822945648801193436360962290430714730927955252544334188998893571569404350180367409470014731523034070159054121298614380291372069591459236374498922643245880074024508838572612381287208037226304448243359908643186718686324920301436834362999846805828435657367530870613196576110475354983750016013498881512733465257406331245229818880928995139981054932959448415319650407864441154050033806359605480902007140370096513901814710981087925369837379852492904069377229031654620572129178633444904113884738380310721692487864095654649458616554364011952616053292722309304039823287547968230915642021111820654756000347353121411818166494035941933168619655462696216324427398999100800958457256746954331445297033976158639779140058318536951638884216025493064534780902555206575551562598172499231393083269551637005217856780725963811907654199154207236055068456635604291419183503678451548721057724790689966599516193004053259107188632885906597287672213090141108141355903002978553302677498825891345445267793497497073277610832288502262212653754750241617864839372061530183613208953208493863110883823766200048861213296763901764959316376277426414481687397023890082725053967037656819519148109901781350287763508562388839369486902744655178411857489145168578144718785260250186371785530173135730346629151689739217148325343022613646262178023465486836003194116809469946193650349921138628103543814771866360911080937967905917895963909892003525532097314583320932377728301349531477705752261079786576630618405139064222476044976190309575493312085393436526992565325146168399976158605724734575947663026444166283709433655437707475849171760585305271891238969102671164542913174027535520343557613717849497805621324954063073512326717382920377707647667343289697830531627119406709476091690426401547645754913947238430722464288608477504003824190830059464348170370861714092793824081226581857233366728070780941404812420146227202666492366348953043182382421023868532088927860231477648106528470599282281595593744859795197527015279059300617603140801993478748318824894636769122862674405802778853609015832602576309715736142527588897613389025371207811504108384763334607281412062939632304895235588564833660429863045778961306262731261165776003434331563139263731694453509615407434370447177394639423953424918275485272806088296441643881090761129786267840287351555926044114790940910646864989724833903786460535898719821827527185758286727482193210960777413839215101269115054408918518921765627895956717802590764633181019072737967801471575948576425236261668685194597581592033666351143636470409391557358479978790042363826766002046959884584186542853400920858261476246037830377256669464916056825269365335543610817939752240178968846382970123739669255437966883506353545863412445754598166846454228141181338936222500017216736979888485586365010576580503828339143992920211901283435700817782974889052197026349615817264789172466428734845798627115612579631850654292259421119343107349196134457441491279129189961713323330753551403437401400099898184956693806964258219047169535206752965853609659003371134622206863104827593971650991813578331341847090234518164282872575089295165645484960004247291196012390559346905464625688939547288331502366205888373953250709396746599295716040508453439014392078942318998811198740422403788866454625156708176985563607497705122461744247774482702400267860153436658590293596272855644323773426883256332974539597532801224328325276521424813650633133359839879926114740018658977620802453463062588383788860429814018919942881090094103770565971048875460419244198626211298877898027070960004082435460263209264920170592105347245178359939811883111654749499928239139896330799724601517558138952876938187117818848083138816943483976308035987589525473897171017096333477707407573067007048992167245126288866879347176386236764372788612352438401174894240154502256019526010921109824268871460824787606176042715583054798692547836661536210451281295074486817603555344163218912624679357360868218043290912267626819111272087109854338633680514697316645229105753221523206210612160268206046458410745516361707928441928942199771884582376132802807217491722274053828428104438550353414720992773347970374269221772045559132710001983643553415386656105816510698694936126462173457426029359229328793991819295261959091146128078780556569718600650469009432326265735079407838176733790483434762182155432824570142302848504650199835752152797550655533529564043485159141780614994444487239487315003047786304849778441650653258469136654099458334870957326164446924220651171706660129435429944047320493303447768238881962804510954141198853468761797463064403956229244737956195467447219472281992411498012172211372087896710982325565064021729313418294746274234544134469896258758232425883541769947566006019337073813574606204145867898549722974683885985040825563737367026148532815512326943700795079927311482731819816585784335745882513979430460010191619844449466672511393082754733357441871503724941382663440311470893509999312031920502322638100330067845166339849652413899699272713138815051408182043642971748334474462903537076664973827958277054484931893426724770521145692469224903833195147445832112123275272412711795132337766979233511918495946127922704394441812229709479581405124651278206924597375093304450766548075972194281256221268473665277279808790650645640478032019174252818448645678773288997660051198851318696085969220574192067810727148452216815136804096594998824368433881854647344353860917000755876589958611967924543817097494707079870056571786518365851089582825402784813555708616772245563633895012663320100124637306785107458986769221576923846869575337557551965888658758955716201115480124105179020942635316961531623213428402056011586925159108572923495807067234101887405468016165696046972640793057210407475722144419415419287056652661438303559256756388083906401645464777335716297839668554636408363131890506809913371891885024519875585177223081280996703082954787391078769924460067138696804414014659419906684162269651533211541470758745995408227598719332417762081679120906333304122869244786958867714055880341436443801292462855887112651250027484785739967633679401181158606291602913282067079619157192885436024152829787461305648042655133372042106761568309015952023935825010469196908497729028057253601628527034997710157703904262898303662663586144690170700364114023914688361270328940071122687579362357167736918037774311248500807323721875850454903391641402330807724304866255814493890290299519297859176508614848614250564900337256089339381183595954617800455290626583623205854109708584924588741488258830067103563047224160881335330016501107588838568990576802928079230619526686138970971748266320182059786070709815469513844689489778711964057552899148878034435189001071165987838890456894592941559035885584906915206703718661609790326207440651642172177934352211131268127864568134595651840654305724400506556063937076627087710804922270274250815043688828822103762520995034717456289753259737335721346497936411025284675772678698242304275320792754023110736682134921901546521032753196309230632454383793141299871207349078442372189478123162869218888322337448967365625106963458257235443816082618922853514183801345298277146368334935628374828810408862940082060063459940828570254560901196293444042005833927448847266695078920996464833683752823956674017348913211299576738086604069945934860088204681430583145424096032572600593673922904120178219211832177457522465585040392345043967152582922321759382025379605809706967669391378335352981406578513235441068708329678525709556564920866669281997429489491363965878463002501204328885050571345678628950399311991378447795052650374310155396167488206787806228527371203092081585723470245658004616514567907132935134486537386046141521997534832139667408697312968877642805572926031779799829647641183326267415350711129451278546803394828974681811782645214474331121376858599506655593747925229313174575484896662238583806793527324658689019869013360200784117990119638580150728022910127639092986793067962424205018637950717889905954044085759820617030489406028912011873779014814196377443012365742303634725072321476341275573550278475253656487716674404731368143049564101595360849781677871611482340280702380514905186294245117113443338335732469768498948678144178716593240773165908764533776401249318356760540226396680113509514892991893566804187590995152894456065699881802886638859654904300870140322257386211486234475290423022610221006799827150811111130685350444665789369995326454559204994174371811608516594424110892207698271371002397237854730759021593219948100321783122393830834297715028830058402048309980557885493451783700478278537653616317041927342548619070032228103995954287459701400216526533502390796341637612913855589362464417441387050959511935574603526706908973727529927710689838740303186107209661680093757382144414160646026968170131773869155294090846189258056821716726633444684828392022389552976145295330002979915201767814718603183055819756777821086045310238474180399706597003852171378126370298476702373145327633381055643048177066364846255683269742641300319490018227431390646009266545197392611142789626965979347330104022805935412208468980181033855604634979658822166480990595480937512642804003689054441546517365716025952996779648879649235310725108600537108545352944756176328686169188342217227636579539322358901663266633721747138599374027456481224539180860227695983690553415425825945989196779016389447048415288732794899070951773171523972754036402150523255667641683726787556028940461209576215558844615465872229466485050023248927769921305672642322299045331112646067145791282179489768578849099366832665663011396978614853925170695050706548581454393350373458547356976884952083754470106007085976315122105225119243945563827889457324889025541377147465944408509639810022836075449537081106870829876072285494543397442735994883797907910154325933143627863368094067633891918052454199191923507630413619639142188873789295483258485075499664866464020851663692785414606678242452251295426167049320280353723218645068409642481921958081722666823742685321426230725861486104384843717581163258359755459881291807827071644094550165180322329430499088304016010764161079444751929132415147262907149615812711771376796982757050674710099541999584110124707841122689897644965739776780512517153789171617200851778563296417854053264439153822072090205176248700868476895422065580849115687920911837633758077096271610141486586978257652261947789868240314772473581783420120413447595453603357753098373045749441970883795086928659939281064565028660328880905610033608170682538987142855909712624315720998634734456999389038374251618549575788295515037479261875054524963252926811064317329950303548750911920321716497762970817188115413647851832556326636327494665337909416069892094511309417221159923046119216509246474915151473387040890747632845492979678252565088526459166727093615766999684139409934284915264922797417447248322779768489942904395647757447800703422474502289057380490040009347713217385182870375894065176503657777062492158833313642190925034996632816529379940645779995695177029728670517839549440302181728172299594180674683601446508941830522011028684752904449336141601701791398741302627022584521793048383847335890494317159686562101496241403560360628604505141768728783875415878710410946600215123944073330396065309229087639638718432623277843923788448096979668721314706265873273079567705675955466900496621060692867873793544233282167237469495654897610858632807731415197283534589183863648889960237735930290459072014807705547371935419682700008577636926669342210631610870998870139366422484128100669561141217476993909516077595395235198290671089648163170270819423141040632061035623159694447631174589585123289998818525510119730504165676245735120519638272951228065750816382112418268368560357113747479148941091605996802627627819748097886813536231334470172320295608147967688017387950929098901441118665606991526899936082910648497343582494714740477714402249954810102196487765930167366351036123109995821639910565648948945754454860886844363177509628090458236865725569544315787070166039914669209146309749709443102571217760621556142034824903080680738256184746272234157017026659285873422415008411912292532233419027669194608899619021344850434883676439943088154111708689913862581836259828319730573864286087349458420720552034693551135455615967271549345893600964019783333500376554443087116527797258780850727045161579600665333443646508491179013316937244794954831247824758134764106672747326692967519313734173253023859425712263133492716099201036550978362081396534722421878576838582297940995610537777878220277888904052958091319489346175524210724927251080197062990167561299817540451460041716794416721285339067339377385041396726670994649543954839100550093079390327541401897137766086927949623601082270153725858886603979872368668871761427379261186894748164609343167855075812468211734802524256692369212118745776837355687201227782665795975277801345610876671371911740874514949749422087400903969373195960912081484754250919436179273673776548085796566717623382638577449107402017404215324634699816771326439157657450723420592623545351751633644211866238316253287387601783050066098862652405321275726735602535646305280243170200669712380129111782636982282076280469921809066766117876211887328681867736812972430297851775979978520470355990954664316377985824056418391459531532996257374818817727321313853303175483790027451168194009270346021601437175734664653726290073788232972620000095776963026038065218912817246459326080808715913528665918543936999779043126585578006021953626283671081748550854224206834932215278519226561051358396720551744804122371054931950979145276645900154634146854303423657339538699321731599579537211871618557897767323128035778313292270373125046989815907616472824406423991055028848706143120787172139216832351756171049974708180257687696575764391511845817955426978333957574279784048589464712248711906574901256385465779932239761925344312634784893852946922025743348848556336501849712724210562284932453777946977614243811373139666830048730623381487777982519903215145970780904173229471571544937971815127534713796590077359328847356272517552766311003992386602584591197382142634704485533733557531827135654617046773588043603309286569849086599161066742775110733362878735676957240709391868938409711636695844467632286066626135796545766856581167130008722886998811873325857134424986994236228886854988393914169485904691318600197235843932808762210890088718129401836707507841633283043062571194081042538885528086189428373719185498842807781845500231073090085436666733026980237556328162922342187438595534923391426671889859051709319479725857520323040846406160580901118145435727563413237553319668595823090146535511828514249150355248119544569438240730107345848802723571961334816281211371364129163602357229846783103685040762450860249136050010409725473793560507736995561886527676879123276665436117018387805114033007705249115526185287280865788393716811397716959748427243199006606286808473683891921632828731185927682564875374127244442933124374639579510975972459252328454745267617663149575709874290328032897323509878938997070326217794815503113435489994989075072022970751064446974234599046480381145263132862955877300163457511500457857329068712596961866467421492866604784650312026716984216088096123414133115108006010560821600715375206664343429286925038810205420366547518445799554660635662835140593954838184029953631653806524496742180405973392609424821390713480425423909015569527364446677815624840058946993264095498492273728547229987886909963140749025861642785215307072061897669981179662839915198520171329528758347221682672012609003520249346442988934023983320430328182159216559581179997528678149530662680667097631195407622504910915506158096743403793791112196745668157528648706010547190686640920573706578466404610522338576934150628424426785018613438770439703830457633636439257035447779429267336838242213391629765099310610929738201507959618742243727437903474689574462982117315105832593619997071364570210862375151115838541279385735592520716436076521493886876241569671173497367320770608819645343978437850719927695495202646333890244097936493326698300272226546376883742676747225439512235971138099202767089877368107973076026997549061391324675317267224207385599630809991563864029784107767865325745277114160308544388423803820450440769661690254683503492849658833112682813928820723594696653206381462757002657153343058554368300320579445763049183661093094490706836491357379773128830262451304306500740973593852949502615120500681036236756293328733348112276744275952801291631684899251958630045788458791801760959895768325118517624438939695705444190101748422730542342869206759042845107419822583056584865599927093938468818402135024890639681036842709429489343744087017139511904668058514583475623358444226882504646852154072805927346355700650251016947649907761169030598410897220149039759885324368486735656846842019752997417849157811710119794064544227703018365958981440584309822652320025947596732507670567144618738990154324290261014104032398479128588497301782648025621136688876443462684043378080473286273949745198193073970396216638516907590503480883125174620681205790882583130379419054531749590867436244012397843501454025678462153551784750419623276302635584611347153941554899185782958426656350928509404847384185331631030766806086387335881705522312799640971945656763909325305426676415966780703605331717775227060620070004521451170280817565454545916214103316141375955704433713194824345336187695023534369173840494843710301987981323791495300270410384757239026334761474682421944128974152261212488708801339696428651898180502030799470456309585958643787965764165675987105210882567152124370478554698689793754375013729567945687698678076518576633229158562668409366372988315035765782258793072035094515819135389489250624790406910098726974456091407830319631454475671140941834438858776923005576249530846893219288424764317275916974805215157129020656018259536147963019442349946158260755630049025812267028043571924862489679523275352364438191372363076257181755816923422076769962034582319928135810784241764024617771602804654358759903638429297181991922580080162788115202570819971235601496783821766018989779226057857927927684799469292306212922381103771816169418271532624459361127330576309073613369344316347640049079736730538943636236771473821355097931288487283856295572841486631389910419672172252218944361804555274354429671918291103160575000256258455825625416380982023701213320838475619211612591469490807582671934329296487612809585329856927498951450385282933901588996533835096077795245480159891969681109902302574231862621307092358118544998659482461263784021601235911668185491391833920985642147796974135979135643114176429318916565032803082891831073777065715796751507943287076715963986378364673161770289971933686379086524890346224626467699387401722653570257161439283636638355217530691401213322110859087668857357903205713072955272499181572942986780807762820212790153725222480776001444479539472499841056438045547620745495497761301226617277028382204401867273552648313091398669251663374375073148003599009146297369770720043025740740344556802971212087220423906141961175276294687006864793475865394984228252855500077482306155444429929315978361307980031438058664210074068307094841102644252159874862547046304646992856218969727999014132473724665833257122032703321696930440982786715095434247679643591174794173211449213848767980105851069091329383263298982634493516250317467816347892193146822404767619931495191651587168719104503878257823498844655377434341908224181197304460515650615573052319138990325193724855540788267794955207236236987308441532279538537081842626969175226887474442949421648908978696470012035940401322228231747206421912347182318576478290684607057801557099475650381300136938457973923058987847166342295288100864367510200232513116990433052723466346746031698556102811449653315465460971622895471392275745183615700269203041760574861001683959090211448672339550074424203071763781356952011095186920162260329312150230924461531628194334757609165865800608969432305963822090066699970972788788616313152394128209633950754114129794727933853855079560134611820478996429621928169320984715192036905642291171894135131370367651127622118753270234148869267377224301920360343188927566224373061443819867633553076181707990667586850353671393267136554614449223823478466269433428103896434094311025890360096436057673292866850213765987681751598235698217357038575929665569524319209062817159536545193710907386325863126087676652414587209034772977051637173844644763574197155969361585332623359556187429733237129427570177509239545005538691128478279247542297446553165999572752518253348346794092595137591767980067756091333257835979337918294039852294665995071692058435105000167605209977312495058334221898235415140602966952968983328408612353381470854134491825940737076556140280049281911527750745713862682129747539373166183539376446674372727478797445005087320941676524122582063645764895124014357590184593995515174904387021177546047206418843484870638784855984237729227288017249284023323669775691426405916606972748119124792300705377100520468458308214819319148522303897721366676292288914290693550295805522084770055129791741425422869653962721256424075710176069168187992495497850601572607417264628295988704698662376651101618178414884666720147312847646266875871546681510458696205850353072069987553358239488394341073415924746410454618292812375028690821169719051500948185402917470257088019460991311667581277720877698806182518814653891522460726698065716313816266046820732514693515137692594877220141724340819146637612122823281240490598040160717124002544373240252753319168093087921098999530103817333748760561064823276818743519145537389137088872603161032845074766299570127892436241531509404345860550612618933692300918129509193431745118213682192645172645108064947450575350418592591226833388138597099897137700486064718809139367801652621170468773226330276864337499865206422594361244125355481341225652641210650546690024456102323648293520023069036134178677212484045770151133153752156286794435736585954260787424517454420381844284247810024953690941885964536534849597411060641146853355090774914874136960874842337339336917776722606425693100378207002830045824177337898183955308907275421142210710742625696774302795403566115208820748199648059162126298859031017324294255069046440325816679584106366265631209953142602611608186971103329844352895174704973833478751228609911897821632328378645160091446278506914887551996763419365669246202412190240238330218214788548151215578939108116944300381020679406856076923829024310882954252255413572238889388028141386945041995944735966057886906428938246222200766084094306005594825056833433292663134188677721662356811038583650189493480582829122771389362426975547650321867839527045445669861596459691849750129943989682450126301859772601636573690519181669689565096984165311677499605723343141351425233805471914972556063126962056531236777725757501642130348342367315477505340381841412864952427014688643951603030273228538747920180223801101267433028268716966673000371591217929579485064505342554693782192257075654676211692696706391495564976681245575189285697348077831945715011499985447415512095287384317831899579692198178021423141101454270509376697448440126357999978938973646868994434110332290543363446918092479821302514049250259462719395936890751848018513530601736158838873651569374003729871502027520938108016432647426967941875017940301884064150666502705836528428825935757258283315964311259645030621445793249667893530824090917189749696361488864559143090305651501594054515033410781832205016417189398134642277535431115188683448682176319352011313232109814137003458112495214848130099399081467444116295876075347134510238319329459537585080069203648033918205588400774728085795149999161915714876510198590111015189794069886915028518669462866640187271351091438793358742119620777305606855064556618874378809748945964803264424606008752794276297679896298902582195059640560981294644296522416977140720296221615426777411857585505305302122368125687150647736948339987882560399851384335525067226786905339647020001860194659087506779384603531186159928666694783560001654125059644244616662796863976567697435007118000885548581461632952944545066964707464005407690954528487988247492827887495075485696884042727397512475419621791075732509454033576939097611689238004399082683261147864236542969806217895061282558411733138143540446499541374381587849911923661304113838270316835604114538391165076208672734822486527664104206626992804440504086530884502542133991094846405679805244352938314548831397117003689445474790349450686173267228005294421772556781582359149140730121241361296094075554705378309948322248123421226722372869505937250480839926802400501886799752787411109532267279661585849286136139782067033702795256642134453557420007044755544570315394467122890038714573977925681018583771167203675819348656957781068304582123788706000434841998858577075512953615662840909235484565046344881365866186118315118808524653455120672959692193764286735581827153694303332792654026671389409104156161190312143279203878135466255706414748148971852947639306966633205856684995194921495757565572645043825019940549278100826842184591710466444989170291369955410824785275011151322787522563755465171377968841055090477014788475358182423990505910357779335396972219450724463091013945475167910533830807516055444812416083690919194413703881390947859767632136909786025479491609621713773262430219372922745828294409181771707881828593437176468909576058999342592598971555415370895098948122169483740638021159164892848673609116153318761808909363616416606022425874267107094853607730433039291501234170201994988225323555144589418062007717127048807757925867842570812033803443363931751368870541075634956909719042565599036518186193403254432871740491934499263978170161602851057800926948762044827822026117330049457693851875926713652499220398550072329706710520331464924653087046507298271304219464715622953836831875413768220339522313387727110692453594295399006116369481428997814211196699165881017768361195548853496511908326396864244681773384470959246449953953958104910108490886462008562953641401476564953238572378829059489693410158514555288453509939499957781779700091206817971036177041478581367064355073276841284123504128452010593991333468769435934635419902404739392908828953003493830298169817356649573929723136375433805745249510559025894760917188862845076305052087526542300291886167048758741176389475664495991289569034931657138342842810355248548615267806937356387056169058913479314168364386983369462242463732181375121074097282368351420801118555415107959715892199139188454652200677425565960559260753059495325815712775688107076188606446834739779961083882090737296995671701212944352876483370242265822860553222170386875885117130624901298922245636834133233035192558392314886035149967263614392370345693925096699928686957438675653159213676608258790748595876732551447801185053014614570585552312898175270581643029942753774846682070106231149216739672873170708607502724775214532620652457696080623719686456570216458238851482528705354461877096173476331316506102304790452497299332608013855653763484804880723418588036509621593674502798825888665375535358232745670583581828647950422852599856643041259912628896288140883437467493674078698050442846932208890815922911286124724910579634197234723005226742013897656872993944945126663952123781551592746800458449668457153927047382909676541567169401283599368824986643624030513342039670658159092789375803795742810760182281228395948728469798774491510606481236808695824040549828526566527731025902718514734176344028822914075398943586430587067060498783657439122319901495312123091246688403514840897475495672931877224330820503115259945516203894280170024431175402477169845014845922859124467147054357823250527804656148376116328509987046339718125741071353153899156267126924943587665282326036739332315637506893608986333956519451088411781381193950907614276169528012481499573077311578517790027263576289970393525604873598076628467633829506942652078904847594804018327589951020714659481345847428958689381646667806902297309521495787632274843451388811315637696168495358821812595110375539483955210118039797158450522888707783133645777070242904791468597561517780745738972968617919322187061842236161409886751269206524920106046838974377685202332722854645378025756037762242282554058486816152218391677076525807952945834741301166877054459477864502285762365511944011608696321561421546076765162929230560608792821316601263727185549652966315498184469815866380635962131239911740419249598144411844131242218162588286628942567547604606313858010141935524049964342432716180926258439335110386505071282051698825467731518604695372657810097818066125956628056639491302714362517853191130072819814385698143280053073721526168695402559219288728265085257657940774473626850785993689192294317212265328890960969368466770448094163933913433619673217692113411073646901415111522329983967573531171483669915240847856794847995418678859118904208936294935163915321618791597138956241322160677737047907416286398535573463271532509210479476092018397198637212627326787685040104993220475637512625868562655368073126525646547843890985228866137645296286175826125572329848320333791551183430224151292705627918331836001962865297117136933791681340989406789833379037782768261997249187495684125837502712480389093582589065869676173345763962145410801660802191997303049565056323413677887243975585823460210564933267647179127291120042815557830839709985404978228335462306535391924818290511323369763899206832208009330768526860968448215586674899676586566322810550585114261191806272226202353515053747293817558899422136666835081437361547288397758386685637647710617496596004764456961848122315253680428086643418775685562949660946841781486220111471319816699586728659685412273984370449747250257078389478935706728656263856656235259950869055987803214037010578333438126199380482537396408570844363667591679416596304286640295519928287887953996023033196968093033895250049394832502520899689117617050364063503103138297716565246389408228419333897242008177722657251631811405375060185323238973851498593891394131496224381488370039514691860942624826217161464193988585066808246130255459816856408192640486880381115304700426039427546093180975885701274190599950848348964050338683671048777450319140898086544062668743496952235251203069919045550033491683334326253117917420662966564854264501755305402705485371347860716596796862058881511626837892668041170670333342380577743343481218050102604006239868116740174055787824799500056056766566575094864180896667553830132674090865768598634972957484077978421291420492261573269630689655824699692055299467724408262600856729897951298772153288293895603452491541050288334546280491443724665583873738047512850497715811216080049042629314947152621707108066782820842946326078834846990231403490281212618706105556085110542051261388157608378781455110487618991107910495724353365224211346051150703507767522763796175458367289086180139238965389373495872403597865195089580436335415387997718153355256204460774083424932012538802677729993799702949818745972094964805932399485951477659095356723402128593970694382508113169557102056140856939460207468593953495515827039157392163200615496014245698389988955340430186679101258254484325605309470945822299462451672358570596144085290693226940177671874327500179856058715405289167175604157159094682593571974523647146424863831322175737316073803426850505761894217815942655424874507976264707849616346410913919221038871290733016830936712899095389446027435786365193427068426596332278596998788806552297416943752769148909703789974338744015352987343261535341158022789027880712917473550281299275728360265196100733445867627517983471474718214594948297069003087216454402330318495018389015193933827099884182780960452685632592408312270637610066914242111543851017542687766125141800894220145332591667395458890300927038406769365512612523403516303357078503725828071014334080116035204236664057437261555866956693180452562515334273363128133134584826341655729070248639883239769849922515319678013595913996442230818722499876787353285845888648443677589215696276579024588420604982375600884146899532019043254886659528603288403000446892954010942908074704580033971243278014227486910400930029359095865332121688209556942266165185139041957591040410528001525663823127811651348341475022892387457672249167829219274733342788298102885892029998100553192407580314442471736690676804084831212026579015986762018377227952381553690229431306637202594395901636109103540725559620724256031410456141736153607961662184909251122228259013927712468862916397119150510872037504292204878441995936245216926603530358230178413652809373601311392566790953495282324988188924267241385784809450837819067683393203116216951798245758607620809140339604770683037667195412065827283952722908431105736989960241590765818315491899124776451113873502802094679952764567141705565442394047842130248326210446080579851109034263952764121325333616141913148248175561303904335156816995319263406284236038149444678978668002211052621613320929157836521008149123802245435418419863929078920529212310336843980846487230837681839884717533539374786513709683047115920717991112392807969912090934681534699732438844664708867230654682768778311894620153771048725158389501378470767854067344450061292294671766318026070179673271803425096078649258315208981985717602612201568705322313404267740798772242976337425066387458776931814868741115509127665560199749497213026895798935813690488678553669865216883115893980152916600377501003242024820936808790369486687859559388576593708513467759333169605518505699519252651259013685729536064765426615317787690139840976952377727355450116708698483883548499297784998171467266557202949226925658752153097354831909688969662653897430015242250075206930511827799340038444802502513293451412897110855696026032253467351632765883279632517468698799910714487970345515221935061501164771768873298203236362723442366053635035758353904874581751525804097324104000927331772237875176286795756192159640845912610311189432595653512444829745318638660961795534090548553434237267832648035463887752751312418203969798521498348667300235429987899805691544452586780688353890789017770985297099701432663965002766491438990125225946645038480086498397187543043075132259289427840833883374915490586114389661862370285540740847817355007569094894651992215054987432412874333956950062249146043642364321907723339631688227869312893679257629014380318199998506505161890719241592026142714124197293276982381069142964493580075918489560437582019514646127360375953951705446748011022274528723709742401460856269120796813900084479007182137169328030145139691282804109962484580077178738251698170038876759352655051587338320072857714841968722495448209483823393387405287479846439623754508848127617647441562549144395407189188588639987042162475240450310974279848935634800101073021543150782323193560421673748571162738976519946376446372648265093007918543456324139314853002950883451309523796752986126619867475047564279839274113904654888669701782281504945331119478760674537090386761129658475047539779304636635422324085910958136289709811131681022163746995455437248139503210528257862063210061104184781114002692570596427142142068965205720165827953723426645387777451449848151387323978842764866388932916558389347415935563244330498947834885319698278628311637885442645050441628318538772880764902028188632173806655637102519978667844156221939799344756444003453628383987717369878454481488740124049717579321178616681344323069912291611539122238440138648537046053193234130070966111434412424560118320673952007182680679095930443351319251595668576866305219275614176454960233829540306012908743468977739231330419293548915685122630081342670100350609567795621282773309031188281209426232343068636870303118675661818925373243899774897361506773932039276145516395494194540730074244347604009265712892353990171995448521608744509277427216406418469618665391640452321396248353629020839883236856606813818961980737198464894879317785366105867106319378570427777147099303575038865041658895364881712934796342516033173636980327497854618508749002100815525078421417029258273648562640895151143212976297885692494345038658365537176193037816232736684282718055240458330279918662311677820851520239293826994565610535129449051572317139863028679701532540233317988309470837226845355785667518060261860087174360149792177941711154039402014240569433769235786931138860980319493237134387197367138456477797692630831238592007797476041931101344892321210531359050005480644304641849518531592083396454497571523656969136800018155605638444201812893680251144973743988745832263741637345950197720628540162309844078941152858739896863960192069176749195368998444832687605731317896904734740254729608480248437110442707789987027990395840009051401834932992156584134355543363832590362413928368130683827509789016780257950885844028776238447587932374594251282997919190941325388872560953859674529032040941244719524278808409258290389168322229789298551364529206726255958097306916857849097657285530892219242775638924812284904838944268804093020146530351270318199951768805137705182190159540814331363631338149320617650704625401591386408889268383357771750445795783592425389998113816464548454095292678876013079103607084941785702633119362477879218126562400871660857573588911499876397287057897890455784260580031251498138125394863184089678391244286241378750927193562318956339119661450853687566591668153915495438572147365311070649299098876630105071820412453037791888369145340019749921397811771437373430075398817612255152369323250038778374495992469025192340410874930466798321181313115146639897987222738026837582100975049575108918869861552367799174440332794858819187024068351840707534226958827282089831647418145918831976077605582122197698746057933135814168910000357766300419446179866135376397062104888864065594721399155260748212813326757170836113135187447442513127821940786087260449400485066568706541683691323751099348181585468419129264323014171220389642806717826505493636821167454916506795612736679263199054050202204338228702101760902673579109196018532272912173708821776551013046538165496579431514559525751955296649710962463308972714009149953969340952697794916931035499872722922754993847424119546464365689164601666473212496084268288053580798153674138935510320950921575940361056720988468209896482328202597209582611968207058899653515513412514202658882013004845797155184604124363803074714106410603524023993073603094149454202222968894623365363649275613746529240156952120317843516741897198588629086189172241613037506518462743534438041360989343483893776791775221970627501483371191367493292705707895299709074659042815455161676759764511402895639813798774917886473688318366795527297512664495215099840052910043059044360042436295969256186709648439858145832225932771599562655622530337370118961969893298257915700234253688061936615427620747005422353449511933505939742664936929423104524226048093907563164356513827941087073858521539341348401305053711626170391786794359613641749518151247462566123059936890722527367225663088952929813081436952501143209357711433991403843998713313626710728375966969597580372302358639078306151048577878418259972793870374182775891711694314567371774757690860158118519452490224719233180329459672782205609985410447416346668861980394996205372940752421856746757316556750242182543129229495425395111444550798553154314718157062634726357375394203402532305064736385432786301973892300577798205119022679673983109320357984734744892911946044001802703918414616629678421180229334557784247064282303581296057380701312359251382722079162556322770159676743040878188695774326193007212717862001336242755745845546287119797604317648209574269917628491158126408580406783440582674050837552009266042495265754080398714028044483222195595116431344855655660898339691332559314038858124360772673291944864347310083000310536806055413211487268285374215009843032592052870965016185619829880108603352442210716296484951691150505429954440379951164105407224830736363551610061719895226337812390184496338564334737662581020280838405823918862734299284164788225749489875688750639536534384134257893039783718073289305441352444840224709833162023562711989568767394932975261201710068015830522199412363250052173316163326147761326811205355887832173039916306168906220919961281131993447058193814004495366877615834354858225029230790384965952817167974106121613956881299271015624840155597167225227589483005022262799450664382962843488010653110512753679249001309429835235246043589573942913853138098741343142989118633373081266919460980885699919752155306618794711712623496972017037133593695762832724713410527197654713082619366033907267481989994790036770923260214493520867240987606285729365887699459971246874980528181511518487420460563907287465920579885071082983431742113939544614292914762965605050506016831322380212626557394740491410507841427439010291831278393489588027983002219343107515275371252619210753166206413487648767694907601276335706973858617312283936606735339914199808615291229424175132431197740593403065528412800015942703012405963076137102454864418801430234349406909898878594448674129567035052421972884197592454196559302411917540508297243936608863149604948728906096587064204762833615480597094705308410660267012373461686226793301892902437347905358105767923265493766767406119042002694983858304188576401353444522705166278598115104019067084498154377396392843974296368098017012113158743841909287754199312458309588726022344072232705793706527863745167785980600486209045195212913561702705427823372650835125625775764459133677815262611079100322528146001509384697096209425221214551445192114032936542663524452292832506639382614635101833226656902699335698671305490424271683777448280665841513911701183633371467330904426967918990559607845892366832932295368863335052297393997235534965137078382345148769312596232003618419653257307066342425052061205603167019986987324255971081482771715943711146011369903882797844393329801725328125585599102717968431617942425053579848376627643749234125970678213168056883960384739549939162553458067324278067171716712265233154842130993387163619899408392465320591871084187560805072476494230090779975304900197930470890127518825915699882207733859624921866588395655039765433165354014180478799768585159970042634865233450102274302687396208660168491031409418699798551918698213139649102841798211607047873687221373938960840865180211143998592882538565414100916839613981601893094434118578640639425137007713094491024963288967908032974331376192290597367369453159406249431352811259436441834561536982450627002747196288063957431342587339137815212290750069031685419932476775072998833128508882622008863433136097393081322222201580708776920468009073281478092231974188329080448693885372785057088507805882299774646234577796939825600573036954753395723515611971855187983690426598461585319290195278013285343649017592296736816567682265206725586415781730407007999332301620118822751742276371590414882905254528352663001297564570606153211303177988961880572299515548762793647457088315252078895575848825111455867068400968871634348538354851989396286329527197042587601107198758401338619118990340412051858323602247592411447481406616826320332985931229943522533016378882900008302337609796469913511766452720049825521446127829022694409403440365049337467186908906312988551060502976648009051611815356637753482133328578301467504460381603556182155029125482580058919425872986744761389250080482993259426033551471741971026750428450199832892161219368734299096708417433965749883358953969179001476061607425666940432010954409665590450639120657624403552822289875800716222262788820153526094981648891969369900902897187639285757157672570387232255639795359715722169667475311259232447626146381382479634845435367016357488118635066451078136581733594463186116018762290464035573882124002695311179345140645464138106260123747333432701073908766522431808604018401192774343987311256885934921337911591612292041325803399744611859609965244059685558991131122346385959005524064858754626568102970209442883540354744822259792756204867381567859777710711494513527153665964389777274084386469214200252720754648608934803271437227755131017468795646116809810898201271476810456404925513971037120844398670360734379880692711146242774329275425472904742382141044063290598960026698285398256735895576987597391293449591857207705289419202524920488317804624665150495789210777233013787749662591529379105400535799086766940653770623783123553606356933049000244215736690938782105254053373185504001058232448725619188534805905871312353721940165860354629665511678103983131678075512261955297304914276168737403365623342541865664420646227158602374690826357866688127758242651068856293230881986406541417474249544649338582387483323151103690262240311056281308657178579178890229233952594489099623924847687004444668591553027210596699535684152266370485712209740963254312660514094646346697608438353988621731961904830776017091546562946991903246325212173145817752749097866417283108806222099207293843587353165923693677163194692556054955518152244062067210798592654096315447009512928662509601328590021872052692145403618760442931583610721837022818718088645795586865215588773296892096007291437483811142667276468119532311261564932598130212615057673725598772934087106114803714603798159922581328332685015568820306255659279769376062558598787458913779098256371395187483433243951757983259371266774113712413214699327058889810330465518406658740937112118657725986739762468424181259852076652334515224927884779634646677501360871755178604196524384380575769056320874328028481472274217743033570480899393895836234659068974416246124156882725001902569178773584551792595987101574463917671752775400165243281442172101208769521405300277824406436491657325149512340383001520406343049264109541938405029698635088952846029684261666295879670518543874966797029980452991419822148992844567090333309058481333294082642659662034317284165070321159621917263025240326029618206162616583119081751061470682623264639125391608912248278873238837377325294087062566080023293454577422917689792545389640286777162809340766266775788433335045519027362527335761338762032150605557551959100116965654745768051425955275145974375386836211739606267517221631659745910777094862361073204828613668413018651674704669881594605209839833871224936344009245773720633032522253789514043746134477025797905609920516668836060404418009649421717469728121292011895976672391939133626440263560566849664873019125467192619714074361250453224204807989941347838995791438085719865062358437585902580449470250460400234048640271770992762397439290136923114806312641673277279223504932006834347069837836473755800636663811089967617254788848018343581952583386317920616049198161070683162195826077096456223352213266237769703322266131327624854359781267604323347094720903785897711877719675454568167375278529973058238617565012138310269804178673336127124921650508156224300690884736121513064089964307931753744916602974874322484947236897747933945175628181767601883842782035569726446774460612878457290722912770000087887048052112052527872664626971991023512750762752362666321220067272014810518103697435897144938478145865502018935220740143046244851988646178120890249205204306340148016253317515578563023743145410664725374857487365099440214205034890249095489837404845523694570746217757871900255776818640334878493015650673797544434562385057913867787743002147377833919022659274326426345610722425291642358624581107532104930426014450033119431437550683975178746426334123369265412301727398952550829068292521206467497832587094083254730719945826346935885798137329015779059951098855103463750869701209268636023961515254877226745688669184661231189827754154655854302872787194307444186232168141618842586605867985692837140648397332642735546691276081301972094469501363694040680520039633925817384314264927344766212755039903939359340374918744166165493107729139199772455493664434245604607381883713109608460315211844731698290361326248490757201982001796003607705216944260999446590049097257586840015454618120619010243343584937652643059600101455104248778806325424084066855835626327791616980097322307180955548130567163149750003954055409348915714781191572612631382241366423592289048942249819509732548596054896174497469088788888350593393818465732863605171758354286109640783924304468349410150362164719882508538186945188349465723242789727602957293536231751165642962803325322062224611339452450105918062320856740543902822983560305681908678980754709031264528165227551771785141566918545982813725198411645766383746513859812152741107038418018515425464827960865996555626945837836743203925352727481598177955227554414866625636795210414755324497392349834253085977866588637979172916221793199351200278317396669949824644842762708769492747788134638729889495344442044021493983346500937757816133915620934985004320020186670178825598928493795384021296542599451462292257216969066732690309103155212937676851307603686599989829210639715686896047195350428156885975774216442242549630240711661621836009807663561721470431018644736758373791734589104110534694517250538230151677678356567070834725988570643751037997819576377255772763307330023052841866439342238090700113742583971620800105219314017715943945773905936099718516321964634547254598079798431979134978042950206167326333178619793705692333109808627188779913648485811321531210284459263397227110571091019956520685062385773445133903727354575784090176107030687327374453174699661001249482017675526098334825766553971979424119497344608873721732819332786395553512244884715024200758252351531021933295788192334211684351114296597531546342498994385795293142537742686309668080731514872098783256873518837497381865969660866703645304998717878821778790674122892363994259977557130053900136796227922165768459515764213043712463507758568581853434579779570997751332841624092624093778235962497484950867408016277639222450216608247474782946931656039098418767632974535477092305248580507312857357825466367840679740696766904277084478745972095260467653623096581172304191385456473152316852340201296723140639255266552404065803251235594764560835621643156246201339547342665264347625111924162304607857878354192362883411378566850052694920711336107218778341765012985615632073753420238929156451589464123944036629434670984341282095497212846496134495082420652685309514373384550575137280965806339839059611893909136140549223864743537615813945701415388430940831166811370145870669823075984974392842033589968208346561262811090109413505101047654814631946446047683434047206222548761058410969187388502383671952658574868192950988744945514557835905184893605815050753472607213587384937798596352129474875424644392162006723623634753090325677676433379099305125747791994178650617995533179840404124471869073792518964301829630504409254673443481988323655380883560901321374823071857524702595137014717399398209443377071725141593623555971625923464110883509359276816789177131892795969207264857818755623964019463912109239228954990282530977301391742875817048986215571418838579375089937774296385920121876007595187499232769906542757819712362490287663144072802192783215225610681118876215499318922100347496411197911020290750075718799281107901961573955720050514033249181082194697014971394198333943274448777555897383558620286875875043337036328336851513003026343318995066825625448611665505108168287502417523749910250693154571715060847459634408114534629623246580960504151333295374196202939496121580948425860131646859485277998205475018259778033017821814273480882152478427258120617242820118391783236268940282807337134185267642724706429584043094471121295577149389379965100148387732590072361984417639506832648623177229138062836219255335500377378484919945861206560660882008407393909342192500840773581455506904901208797180818240255586619416564018987567147785834177402361726203599598431521573213411642727262982939657757132933720159311470704438439085732502108984887037255795565286020140473794024314204901838332680780129382529462117143022135350366579431735301711346119535099209582604077491412233491610746658943074998831259415614311810384003163447057200264908788958798826049871340861057379926006984869215636107247897530777419836150598009798723012823536855541138710474580087267174908015080435943247568869626651794566813417190947284229708024180189204705466837890638730404272353919577376114119514223471271374987940790622013188655503927921407258566046446962129375281012998306853948929010659134866432150369046336200035079678404110912889077528133855062988621821253194957054332844988111579939507946369343318394460877189893561937689287790924881804937778567776354026293445743197137041251346856497128147802392773702786710408304316717441977431202010694258845870338016394615839024243291793409007596016593702720321098366763741461719686950123430617651240638995822425272435337288577541154457532404963376485287994453848764385598848404037489244481677783087302893402433118678929459143403396445490273399138692925509370234812767498390474621600623355158922836145274619379800059015644912882538768989117561149846917058277453816115700010562579758378038617245628439487315959124204519627096771742735507297510975922285463553759601552226640930695541509077123269184504840281535163918719967496797841051676648909422915201599285996849250454695766008835732655496458888240584423012883364489201605953244335583525522399931853462529579142790865199649237333863721598608165624135397195023450230415302006241775660983504865316986855524403492556966138736104945538197694027756236387991512938903680683992642733617373214163024042047633558809472268160159285274793590291509133319637600213095364889726975548645016840983804903371111620350310452638217812385554783558625180935335490887122948529406016780696776750776569848956296265815498620040290249254452397449777733093709320073906162697822729680179232117630624161974351791791134836249434780998061551912449923564633511202237891038599834933509269076267379530131558481365742713614546325618382280990523816687981100808524515706741074520643980825954705521270628366408561283401271229124643567834563694046235615652464957407692435138607774713399692393288712518735558354775426857493140957446995026417586727763255121966898656503961118294301620917899876856339526605962772777132259028720749825223174991225441369561270784187430023641031909220736376564035908306963458065133971013605578755087847247358050161771856517193773047612969026042387624468027138589674183660798880832897865029532016363331601014926472680216146229744338627170939431613552526462520504529800458298799211310797899975658022362331597080934756374438419506714740913110941507740125649654855267039183580614458690785006551827086153985014381082462016204985950657833044661255397939610997478644712039807969691150541130112011754544176956542634796331654868043126050619825159065189064289757916832961999430754756006900478229536467201267766878160274081795119972262076681112688757920841969797268921797909221882731622981820992851120326640153233365061052691799020273940502245591448109757457935695213259471348747525644124175102464365694846301725542690661672496861629490148641723631469692341825824280914742371016520411830841058906934275199055513780320136792163494938255007099623571042947045964578958828133071919818656477646206441428206195281966496870185433136174868012982664172728159100456157033431127906726066329785420793602887255684346849467703883885405333281660009326130921075277767517528395990918357915621373315389810059789342338352985859967377088073007834927735584892130447045050990597747351575548315500539715283992106924313557622628552765167921478326068520481575311210540834468110262768496016641328509153837911588382667332295567079698772988266214493800148035994508791425152644318527979955253163602509357766233001489889876340606509789357988373712039314442976209948204783957130003488949783542020989011973084949148782378556660836912667130547766705516690545123365192289973161748538688997650040894398521894896183898034160698837108585435761802869536311089526105529535224451405086418230295938645942825386044568667997669542912844657632134608293133515450200665335384482964119280942077650661813021187782971095892620244103028367608213546175685864760046959970951068869635124654725402074028753701025649001760297042494629436241524233923344376808870158095163211803387634763027302738233480337078475649839644912397952030359611253858479082872729615951657030180532927546815439699242360569715170123478181266826721681104189203905803155985969153799286200422066545544916148395931030274501256633637128183409138279703963067305497848792111539027876948503332961005941409279929943853255921279507997230725913244326342390971400910265023208440756912976722143394479375014219436714687938066470174223025984598942582529529926166626616606463704065779323302982575316505418810046291469090078070408213421644407650088673299170104383837897446522097059177826933838399274491155014531319707989754312558767008992582416311443864433972643130719472656823169808546822753282028383217201000999812645409264112765237291433924287084265310582664537895641132843934967660920391539990857946685133186400803651286322157235575227365719911857575646639249168842460371829931970181828845743167190791089571636235551383427354370611201590246513971858846380017699861619795561316627061412820089247110057340135216514938038144068604002704609619359467765188826522260847620394118889689246133610621501746538210810369587207907352579837565095207892064978637863612298525448834365112399246459291362968690099959238888665226739399834989067838229653816375956297642943883477786207090490318456587627627596556861833724951018736695029546903727976980577397753517101342244709448038472873564458950908801560169886282587584157181104764354196808160149920309525063809396647294636432761623158522028747228923245471205149199516770095676748268769826189997518581333016696147510891461471774607597339797321680072275657156687026294418434549612065963190332480834717776857857730411093332250008562720922390217782131318136049121295326627566066326702526063799116993371423939611171351541755873639236590275578985570320322594606550383253905380502119215164716502207699031827292116229642043917358646806889327330186190845503248089855881001773403840671966935020035724719224943831663557623795464908547675854767853215748854365747166933463235731725428337414901836218738837979134723713457546868971889969294213651801257661853588793601424176952397655846520869047708471365630241100971500737681469837206259787391652806027260298731930536587575017135022102451647325312564613587103461819290443510420924145016699574553100415802213481418393509506462809106648554237415045835259108086996381355664795487498622080903983234274603170178498852374580312911976258318242969144140991938199604461116514913838801709299631283818518806569797940307854690399056951885125422051608194688373114372131921380976861546725654051971629468085936135011703936697715498519116112538149836729579900230051233872929504015452149053173423427341778248886381970996001774972655648570560570578815999791056090871327375807073670471849219604688925168143564446431851904507982163445713680644115928112354834475042666844038375210360289422193605674472498832165488947124505673909850841283121843543823380094035331628265275460228916254020220381943856911848579005975528842946346801263422228364901727413025933741538744226503153974952203928045813248477240450717477677797792538128956817043911471039093987738647344819228739462432460855601359254045218195522490655492639982317903911042598243969254737884861692650419304092012498116079359635399424387785062638286524658748032289870637853926260043131830607720629486915481269779483073583451123147818934007878795554350674084574487880235362325984790227497337767205754738355561881463165817885070066891200499243230710788300607634191720844504004363746924687740563484529663409120069905430591198567497000147058918462841990373309424539857636187358185543138948131358016311077067130911535051836351127294038334384529767535820034743144281660295567512675186288822464917751381063660252230574179352422439126703296959370972593154689310752557898586932098995231136323321314433186302260830589728138682648855715269974868118814265022685207460126674701189206091107073057625593384294132955109203002440820987451807844086105728836051176976771123501601190456995551488637255526371812698808227296744555797882732254438938548220569302365472706214543229899552049102716908985944723839513092701376197843511274654920477596317094534523283493384367388338342841550537887532645374386696589195146578837287571615129743643347103636284398203154711354362436261359511861409264383553741491675135277397309768001387216868095550432044866052364182516521048794915248816210469703858849231860721032946217720130657603579261559194131999887336012062604399852192375507568508829875509511788342489079913201543244033784218933054636513771117076509943263763791118484864510589009222005941043723078971600099558617949330887898182771271768192392410665740753683598673848987442047841837766977857495363780664689431268683783804824004591904687791062341517614741860101789453930241803169333656678613188556845590270943048242344547498685485822479585151858900837145205085648018088843326275127166225843221902792678876705413767160946382030768451994414078416848828628881007175324534972639152464257475210072634030269171698068245524304996238523134438612894232598936747870868992134174312781649128221241680315590557508518760139851536805821413765738343528779221326625157348759222173924210866711833620443173464180797790600883629029874025424882971030535221178477488051836950726814230270972815545782117553682050657885846807590140278177338432163531454461924811228883065747896869485245063936934040073070271678739725561634193472944291559422614139856192624488948693674526791631690064300147384613748198225300828086340503337615733501043551754487867570237917261697213919090895339982572084904373111203454678366213142388192004700530514299913406638317659621618916264399538130649991626739511064678169603203584915091423965408024642870544446258881208887648926244236617125544714900058087063580879364095919540498337458968941103066068114623853366401198071840291623840794592938766649113888991240240630562761748792235963768013849512014033498640440734125877674904705616018287962379584050370799154130092886789115921837069800723079399359404176351263069636826086712688808416918896241425942469404848617785184136992841728634663115608893586866067906943675328516391600167134382248730020467632246519120477833297661550817426909467929998725356185845118103661626348257504592294263916290623718144313783855526948886559746333637469343134105989068275153511097237158044822428102828803118149112944946715217688725557459925345576179066434641264217413103064710129792987646637770416790238022229532581439078170480266090576745164895049555737824749048469126596229853152836409131988727769596750202112702237024009779666461146799642034673553265227484235545791002055481964736554970819685936589620856150046369703696507511164054025451530883323252931502018819586201848912307546598172358041657203166482445475836707469094836517630400322090093030248236939952371136770080749148670052515845537999062860375798726464923258155844389207824605478306592740524122226314587285407587483942404789084673266088085068695823520471809411463885446445480151035514263353749638279146771572771923748787904575456585750404724864405283191412540338530759887960645846905397305380311642690017603874743674410779294984561274169005077749218028670775823779778865067051181696643729086500128086186675659041935992805407478717142739113077294187479124318367658315123124912881870295283930263743048077467853441137417995251272903585266921580431166671133371028972964211084390484990696178227529849976900969559460311893001000236397024599518395711789778466161295489168303382919159022839753762161859079468321638308575256666102100510727003338402270265047991683630079806561122723028804928300818431963519661052123668505522678557921697503104191577469040911033905317066102301185424709357628048345109366558617337297519197473933532330429104995922241570858597505211212669376086650182827961813059715950265923647402764806521676861806544081002905833796768165314538716159743258999047673604733569500405578120061621282385437637317117105462000784607228096655739146470845828737221044902052668554605030198264946179346703550847955577830042605623122328175429224092440950452255729957527100498595899858206456259913170789477055713227972477535563484489989329827583520496940396359641426716497836772572731034976403126735960598429646965048159185880313204671771033601905250901394860837265291488101624832774864625980622000070395589018657890319077646709251115214353354266853581458542974635585318619924572452042698256450836385206344098420186531219412198028716507908151176478660369679461979813774322958208279024127947527089837918882607089985647455689154208405535810209717221302295625991615476157417698149391721899112589617283915906117536715210661939641830557456265579629451847314408052934993558271031782441994737670663255291049960791457953225586176625709218031920323541207844666383026486569974203149836922082692211792083837188519629029177008560154918744845505680460691434663413371873466272166402206215646459924022733241593851093138191273983187399034745793321444609981927925733789609394555213111572314791394026178019387261930456714403018779576715248696606266833280043930043960700909813636766301555102353830187435074256132735640541037303581662552001774545810856861814652225536424487837282019149447739119679532612175597227376566594444624589696547693792589861228718419003166188709698682678201624428628850810527222994448703828232020567941322782403540384149995583782974846189851692443449615097008596390314780697040256512802559287260966707632093027793915015911719600222198263814671176990255342937168826173843941424864390273748879032823502747417752711813516312723812041639466448644795030922788891250339209645538009059117250877355972031366039451993097980390318159323017533221868570252523850979787265982311683143140308263082957638302855374257355751875957527092058101356015116395475012830571966525622149476590353326425985854765037537232980913861885647564670185204768130893782684727694751792065541351993330640870860956360162692051826041754773169769731796154867505276003771789634494886974315184386717949544057823715193226622810884911054191192792040867346872567456473826547531772668292154061184669993936291089560953329120228280264746972768575279369104593689423293434632824060070307770086786899329133025534533481867961998976081048858174491504352782380266522609707971207288408509763879156899869376645216637041499022893032673259589029330113531192032356501321768292081854809886631371140927398218147817516517701304675765337706902421531146005382983168982042291447247473748311893377559316193141632972708670505445178724364088139627574951029966593511125141238206329274592684872418695843248917107702657538788232115045242810127108405262382077380941560304194796183601130092000589352382532256367541394688899121625013476952345838585118933950568222456934510303437067993810508128325303246169902221444673559225261600587906838488993318108109226831372757500766971412055012881462669381432994016098572679909614957106557816850264320499875616229439319641929128171198526428258040159743752397657531073853389190371302352516945814949255395376822020259064895397018522188137629780893324418081662254394448170654204443141819944719479901544571467203102111244205160973962674272433503592676838332605185760018872728810104989356720178289467073724522138517975233503760184464533264156845987367398774177377795176913521685359467106009461363747022416412970447045141531647099671097091986252696400933857765493294418749743486206380703705719941298429941904222950244050588801021718698210619241352665206845164049636892071833520103654898861669934226009554048490654270648957849247426614093173541375218127602166396617557105025893516849699885729310624356005101002505804191423984286448517024965267747660678072941205858831283797892854313077306929656864237492188216756293646940148224595367102919091191423700872211406517943576774429118831942423539465168699415304446922804261311940021338994104541713153430388440905881850403612822338702491491887288633279187395366400821730564117947202427332867798266724526445008286944375108366702857211116086357653991446485206646756854898646669934076371204025750294396197278261083805331906260916631471769563659832313455752137846626068610830335190199879381866579754478280436162524763151032809844941456956242720290054452230976333375722184683981763890303314723724886832430918965771173553299785933734614119159459687005847665988176891760005236947889694347964564201160764838891059206903522444283144009846845433107990305828512978721757406899032803496577831436259226155739623116944422897251720057352348960874860658182943398390877720542558517561765539441674989760053761139217401071067570906965003019476041287349799389159387223011400036411987824064213603406395630994915871159789028490927655617239973502599909137057675552538294498838731091319165936193672320767868258704691155023766327825921811646854780511537802842052869959772678769845445938310838660933848124741082041670788326104932426627474245445378807229129109460818275089015806316039380843663620760889399363907701488598593703350892222995984285910994597069122516960411757482863149621839436882109391234900044154990392968443259131572425794796020652059218576800122353392723634101133919369126767099983927770992045388061030529086941716821490871929242700709595583044489819794789901369069835665176232148939921510105609609600568704371667892698031879794907889709160075695618842079166099800717699267662964941638589206435794443102624837825225634275694683229900307969874148787711987356556947018682497513378015155303893944091160137341930875965993976009599622619658372902066258145355701822403160171003591392936219756083353460987656791070303338658752242243883569205326113015031409352329390627551858997442137278584163269435617249436683066951816536731959109707750714438035073884854318260248595695626397876121353008202467153620059930602377149929799668668255712832381349682825403426712372535564936911361086151206913443270228245959710576566596275546860761242731819051912601811763254182558483561511958401455491106784715201194317312652764839421453719080238699564519769677713833919883993669874545328238669719143242683352828667268785605137877165755928960243288691286547555944671486159591125106995941165424983399726561373224626961446558136794454885434046973471698692021035963448196241927218613938176626938624344938216132182414167302831653466265873768116387670660976954155454229187015699044248219703068060879947285900929937394625546504069313698746112920084584739132780682227735962261344232903675974808993054192359207092289251209366456883445013583101634012032585820987698113772351866373113616872773826379981444347705751454874876332578972564705835144425137286268771717099130864850975039084014688601502669817158960215552213963794190663865458505269851157269552836386166911760176311677535815570559555537099057609613448182959735157521980167626729454713337014601039528482487068517164362986449327623151602567172143543163771371721963614437347085488207198777069636915415038230455160950127531058569836646926997153207862564028024303926235458681508496265867241914120253101772756769486374619125917633147741315200081169956882602779767776486128480915238611053097057665074171912695616454975568704005626028917024669247804670776407966395354922382276433165215328062241284514678964695576089284225558619441770175844656423546610076159476244155216119617319394857596761596741714325781144413761135106021048634528679736668646860056388447980393051583688481783755021159365234837099603956235796139436919014768359360879644975389935884066357252469972930707811368156079973015770948518870218461663865427962013422867125754007375010339311213746856931116183188385893015628042725788073105228432735836381490714798827687282562578449994390755408891526538576719584155298715380280395225412879782751368683061103134736575990293535454367509646772768122040170405884198778635606488045949594925996662205332141783863380827056544897534212820287046578585319226461576028414508387141787432863429101390393692620363741546680463389640702363805563141974715461343121306447100753547179166013050178451427609544589257020671425954594752299317265550945834489593373663789961480573908405496915948571746224867889616344355233898327021820985992563334888194177386397463869232778639578470506873671241266295564184436748163049627644252293878822399576017798841899086021007135691346552406571649788290633298874248541277835727134750231869534575150815158153202127525512481761658005813918873108851255437932861797335457035064561139958763798641323153660296533585715696476503011149871831119449730751377591293011365214695268430099121146423384267862282969605893808918351595039824337135471413787548056750419838046351003112351439690677724735883092206782692106668845311763277671743522196125300193829431360782727776088706550091702701305220765333064195347846099168733960467694251517430668510863160572578920531185082064563649700174992718072524550657009730905954376180321030479691284952954161839398803596263287871499951849603080250852445382623124900580087031393384743202411753198153460845713394792685627393966596510806866774055597849092789174944088726959243045820887376767813622742915349072584284279088427928856059846113022727532836019991644089936936642832833977807136138282042242278207059861092368809381321532535786038499677249094001731952997078593416006904691705772345390164886882523636027954200458959706228475967599909145443356633799502186582297688679763343109010229784037776954029135395720499615565405227933137590928542442129105533581344973374030718257139512266830432143086897583276748194033306447933679508635568347919455859666224760671915196225962627587356764175993601272157808097797682141155944357031484034457393589855449583175024568625963077412273819288058605977143322597193659832751853302010313998480811203279161488827864398268288257730968608073298909144634557541461666542897488685973131008687844100642367704698358693305655242253363974147014958949838088197497428877214605401046916775112999003399571783943301051063524403085317569996289412090345282278333523391009486026906463480842350930473120054307599981180971722582809102928803948524997825905100524140232939844782199139120724478693192596384361371536448212448342158697712354796357672995211276409141938894887242747640877267260184789183828019725124441417667508778376039369311727759147128536037121229347553983470824129053063189987659680259262763358230619854644491375220742980147777887623838690317697815383220114580328969240242870293830057075002953431370786183044751719672006202256672472220505290284188243463167619600193528435388430139699642856467290473622397620651681463226456854688766207661441726038943240946263685564767546462958682172083694852820404570839250699934092598955660835049688487483475571772729550486102304298363124763617247014029656678943496948623995154500289011336194987434479089141066383132071426475080346640321396416506679975792940434612094367767575034542584853554581248801215333756222052484725729189007689471369536567844381346884820677281737048941440191056435534379155520172182760249645183845712816275296610560808028149144035234378337543532206376070325282572433198502546202814183980649067997691524475208139297678324496121680675775859412751550370946813618502945159132988630607751567003382672700291508166087831788766889487803652746452268224443283707900016208929274794362809691799066890961888681560862414310112643327298951378885277199748485282246089460137140091103807855653537960394947088776111034221306772643411390207574582389722941717173671410308518289491620877768033202521496880000256478155040674596600957371327788041464377772367571843176214789608571163451556604682847869389086557671583835125477807826099551360028569764173391428053564353904360723248172357621162116622323995181075499706329495557312692334366746268578050447436999408667186319431042726199836836676713512289856829565602041929468160452425325166519840353862128599078459771882601198717336619918939488137736006677299594327516320292946945112535925688897696809418267330437019720352676029997825369838031006996276720636443419276407673644427987532068431449922101263573628289046046010625472574973127338791945174237445671958972456033209207882467467918648081973015677260535414029120938890181633063497602671157954109196310811774791457382772416044348583431360542614848707199261244363656810632059478743350514923878477599641674544205031358816828146604221828549963484138216269720228690867290830707108856970912867150128879799976089101689483668265308631835995659125128415684034028046993194022781143364606680996076589890538217296890900717388645304648743961277267957915509393180601396073261786072544584962063068659890364721300657083118441706421876319157555294667655095436342732299061020198056133184511334611422572053985159429098343219234605583873522541653591963407030985144582988921583263456568721051275035736294474059910918213035793366148874843598037840317201511597419389603735128402297834214302493516483379433674707275313911237697483794421821346584264069783731481490399315228739508331721976299238522020853425894347285202945754545882436734302999880677009132740780304724081233309602710626257894010948078948740783601321034410278002196411621464489540945284680301551981649264665112949083980763690620261724701780644426839896194996859846452287222702104316749059740805286546580261277896095813795343343213002257534766049986779756728880469357129300808107624050037497161626995550835434141241293691433125560415595897238628709497392425386978969938619415984261346157887326203169028337640715476839897985863396825860987470686487912526747223447167882048720008798938137862748181973858822796950983470391449598358738560071560755920861799738179220499857103465303073095984790450571215607982510124886587336734669982844385605541915413613478097290125469095768350936829031808138976201889053013505267258334328046573802412362810525020962721799984555985906177870512837105395349850610601637021858556481997340230019642843596283294282012677667570495159500323922087541037594950780242903887242005051317494335109876561484720882027083715632018194243176098069039747620682118574277717008029412069472383619843811246541310236225024957082631944433112307654430991418204278407740793988000298979122874697613939629704281603754785898258099451328446173779151643619476392862032300595418454024161786510379355520949133220335741924393809226078782377094245282886172722006839520631828159843583976806223122958217420440030102140376873381264704123260854730137206784848990048775440258023422400241057006316918487910685472797222122722577431242917835871622639431725208522494055274360408926430795992038086971239353424942677556652603418008746148291114681796578435038649035444113741119706564567935997442738560362628945746557684774370718979710059557280259117808840961195047963914634957380307201392994708281731010542279673533959632407976402507120743401025795864508051378613506170485221715145022584243723914890142507928512474594624553168698554970504450277163225603089638855101700087749062749508386920198172421753846855692116052380786338403216344531016742906669454298288597284294800617652804009274871263669727580279210524078389591714208102827869026424855923239564510031406224860320486657656095740309862054048915986822108882078297166776675635156311016725263707751381047642238089314271012381687237614297558189124694193480912770457049699831469900175666608480294921614037337119455179950619122017936222468399434166249238194292500598265620023356225280777013366540079394496721239627550875423340663436988180810562418406287134434924021454171790176600489802380042090803590279099097483543074069930397208343304530776188256073992393894200893191366839135365101415068462453465422272788626807686751689060879914453590734297899079590070579348206384510568415445428839286619877411243307440661101576005976393300698241334353385107326614730739098119585714637805425776736499472691184655677030143760573983749252026275035206351346206616913107022574731364844734734273610892347992254700284155683948615649633610328895320438278762206304224856786901146863828214794076162713110463790079080747741033963706646634208863420871871249810316614036328907261516767269103705607671396811028471018257933714096981740767216342015928565350120559123674469199302702436428332602008707365126718911936191190139732828917224522438922456969767491422435699637245742260221706233893403350600829653561719642255593169499137182908289335447681980266009982866823070909261784604029360377894947624576404134220716766105334349856154150861829926734182415767309230112028047895236376922875102958962213052112040814172987353937786896042859567643608686969338225236280391239994851488360392571355069448404947946541644533940132511439536671688165658290958161563401094267009895732811613202150502608362160045776609951537422992326473593019065404417961325933810560744557686834928757677666798997319218897405380059911419725871774077978549674343791773678613362345304544601467320531038419142759497808484712212998538669605662716916786988897182021702908547831399386094726773399366532372355613517881289998262980803515692616343686748498307079391744954416601634293403568665430359651827956231095850077610325106528658326717125068837098248084266661979090680645612856261290180363342123356078542171660219668752881443250973383152518825374402204643365248026952237472819856838083765581461627192183796856123510061177513534688542969172223930723998385125601038744169152363588339253022811462165094023455666628149876670127864499972840893930076967495729337677501044800072314053370127455196943397295467861717981155334679311263425869007366407137116454281920292753986478661949442785902145331975479689016924494880591557636413979124757494526643125781753870280999127277182636623075411196670609716373287210306337259280799386217058851052992183409441977179854107448604631824827905848707655934258870893492525893650383545252179673176161458050889743533748136857032665860426555100566980507540077280441847025783676966094372356987235730076562483301351923923147528900537842903051190215912503392718362786111062407656083363761416988426188140124962210958971669974230457565591355343129376276299754167904042773565275677840690268675964725951553752651227419273617248107146487973827069999841450851188298420725357880301171905714133881521202239811966393887762154536997549479548737310692461506041240971781297863709621150694005938099473662112008914246809713160703644461085219341031880931711902813779723313356215151818507653638203116192225992860429571387055409470883754857629851518187530651176224648534873295850864831032409699847293334626312271456791476690620115202917220747178653387847593176977559571591087366078275193121796740744199419974103742129092864961605215136344646573866266887526367841142728079565793253427941869325266020878808777987255500150645995849674688847877924820589625105757361068749820839239277897012862118975125189315496541843478132084538349231116842943558407207466040855210337241457588907514783295753318901333592091207874092471695853194221856048118201974967534959557805519782039674789005655435345941047140433300750784833985829411388415838993468074783136951670246909473308738857534851593510225309524771439333185409145150776420322947303888518473262700175121412557891072356500876642022461020583210235248873353212156528255999896320305974836504060624845070064789442738929020947139440104529933056503510964437822656068418321224689588958256676836745663708513613866613978874512113407724456166064458345109000375523882489386651080478833429954760831283024676583522792878726806838200704374716598513729032029528232537983348455956592283589976065626304978388089307852348217732621054309824914643104491762254607439658087519123598362187989702453799389952784567226981916769225909558911521784514667749456753342309143358627747514698577253386602201034556207524057240461317941420257012543902724741515611846971740361122453241962994902827529759637050880612368211524532402077992017005247066171911579618361480300330439220543386063354979075170283188946832487039549800870624548646142619055287272492575867737057304267140037984625059325454185986696769246092655858825040062013210723926401680078889190310708425506181623470186842110559527793342646079451284852577303917267591332508506588544457223658815205376591083121497825047130273843447239665305319622092352168500928484361198059911397640438430248412722985583270741704981365414650339791384119440298279620408979568216825090126073689057979005975230238682482674869074636696123832567736424955840640917402630436099270931058132167872456117433880790542996373633459166485870013016391591351285319265112852955641445367492420337707834960623664450016089397050115745118481739168710530795692133500034812178834896845380230605341688392997226251927759503913054537552755426387719642334026041057327015015876760404686601211774197110143528601514889868417475109211114930271103891915921816087495069041390533885225982303724467430929733824672119307942813527505326289437719301234237782744202350248608814589469241666024750907947444338078887604488824239543603415931895915322340260066092247059182012572912664154320961477402725525760761534631247539763400183148050872118862218650915693833857167098192345313510645620310016953654952982707419394373612473506003980944386728228332041141456365600042778235793897661520884859880891768286495291484285539024497758695067994581903086483001860461851472494094147081867251764498592956343286259859536944844840196820041188440143703717839469863181157374517580859740457312500329864187432225063061880492630289280122658681015973261216951823100029403737601218583069530227046849517004450033210893157948906250465920012413585086763057736132977096610609889117305171826528152187802860698319165507997226540700202932011855897870182686035203638302064705057058728757348354911448799672085876703597908650481159252389666792305050874595018462993780751254061005016764410830204057128092368675308576513946520599833584556302478075864615317710798121921304095311984642821664642535809079274751469803046172928848198027578590538161531861106749889236199019503818809517963191815839914836897459502906354466335591631574744523785389703678309008753432861585505808008271960288427675170320136985744402773102384617820940097551023345186446270683630565092596131949022654695511565315068362527515318009109205500308015034478797517435200813054889868646686287478090519908487157993972982640946636194012193574717567737952242738113704212637328652970361308678189116431962219380876181671872179887265535818066138501134414618080011284568392731225664218734630562801716788315628546881108092070322369384435912955076324064653323101262836963767341233563425008488929541676297088966488782998853340617761280190434221191146780140022511281713720519306160174165745794567874186804230088043068038616553237351704335540435832959367117116475397270687484668526479153460586625750584895142081206960883739249550808081508983711042875703017049818144055548598974962587185367346822760627582931893084320986560390138950013079015343904714058576784832138467379939588335160416297803838113131540506544706077657025778054270425317316717141653224297119561274782130610320525562745846728604582032165427833983774386738685338292908576962137987495433429833705690595291062908228530184099379950484810990454080517837070730056734666924158001155984601211851815347447384658625309297128336327546178492970079488610501080797039933361217179234411083020278479883456063053091256357272698034463273730056109457800943479035473954254145737596985691711198016918642858621258688823276158695947796681541888048302603954051379017778262158745660882583705536145195914399031177156611960713606110156990722980409724199720946890525396910265872985320799227960398511009531344804652029386607232078429819020853832058221682031095295183781342272914704153685454430345899670997052411229381068319990534562784948787330090244360853585402869209213794901711841633530833328334871629583926961080719111893902982691110764660325814393046835985983303490537866725843783959873124261956548951160264447747138014179695306823192033341487081941928683075663881831802947925941440662415725647034883949725727664010057333963811199047209049063350490374684780745926639890670788831216737142744024153147770746770363540550310401946383037928605178780316112812254403791882643371233628472989059176589945206009152525754744661737634821059524432965632775582589581508564466216609220371700947970592723912142028502604237018172634932061697291731788259702505721822213412339213420130869506546121324639737909179891427019222145382387294412146927273181346500495934852920976389531158814046073091986375919021870527969970107979430198458009588156820967352223793724641468225690334971712314658674944665923320585344116149724523469301357671195003573868858751877162793702356138255985958825322540749591120880884073504623627526414997546314864399822956511678374159940786842372004278498124773094603490513381413542847102011129562940850849499930191640013423441172825777242064567326675413595020985722412504577288837083408344261989940576282098944423284065110693911333919653038590351357866093601730145722269500450071428403059385307669092028587880292252287812585006178597563232832409063397663555509797269516747615396000136848476629092198469868479383868489170788051181347503237441711369418834526177441882133101698242541993857548878564985941170156885916586317725461658552543400852654907811381804630014122223999899165872170030487219894036378464033395227925393469317106891698903028090294924215931907081541781082546103189123138549226102586143311007914346337277801053281260883323567102414096900882619832845792505254662258577735325011613079246350332741063381056615638888026284391692965193742893080822784212522561671183827400806033055820716402670875260730482662858288428591061291546386860228669644535061043868796990822270011185501826167283367722642623552467808934522244128617721979749436088240242397123726904343548280679385023952539216089642513232835718737874942982964284449562092365044639400997105530171884194800104276329449122862496722958070089165088087507562471959453528417477223102350612171505132380243874480148559168613193877416319708342822567033507979554485322680383598626183071253251061005507130476148376942194661302081026913207784663014440017470618104319169290178103443629335591167590299322795436791385083038111163624976631175675420419020048754239959960516629004843193768937931116650946499233322167229810576743274174524711819165982719325030664706702637742864330273889102187198205660432509796475338794599944426822312649822490538907009595322507483471934142168735538904460406674466621958234705426741162508904207064771531967559762579511847682037676658940057912895572437915788839848127048784348230095330883587372175999047795697220065243409607394418738166201108925470983654528997199443904721349419120567879067183784560734333215949295392081168241542563780282518141298651017359087483685720593307673257322391046744273448664360105830758799201245451848723444443520556249926119025208677736926124994150264529449219126120781209222957546322608866849711169433261088523092980154361309278108688101345525019790392155116157739197880892487750102587749722463366590985544411040750596183840514719702238148232864992686345038350452907644983829641700794196486288100015186191819319259908349958092128676048780819773798943316180067373898936610188998603512580702024959744688050492149471412355401259294478282733301121541099998657686128447528503187409318345425467937769664781256325626221823942128401566959549928842989870534526205931939010107340937766870975110627317834280753725793835169380382553052119873554696283684439522183652249825912006172138515088906455858292848449068514553415637944735802097831940932078949645067438267087570312072190430703934828639385945993055752473314009850579540968081152107573140271680124496446451693751811534564698485079143240397426445295069459749683391048528276923994238491853800055038567790214571183788399158330254652527796901437014452470896976616987291246688329282522203342711265995655145969778856506830655985164169412389014523762370111326217583590316630535553241437847487096235261005130512091627928756623320649303401502592441180371156228026305192087748396159506514907981357326387303933374512040832329339287336192801502596939738689335397743852109918108376207270864729804520697913451859695869525303499141792022541975337402616640170656152396901334648841686595319757363502560376344084804072657681680860879846670975001573916282252868044854764297308051360556296459575244343146554047726151043625577540584735695731799619528401712173007567186043849278816333352580976625663655812114765755749205688933960161907242013985954420695707263377939364867817740794548787580623598683764903981018850392824082595740933105991363074902091334082687472749633498872132440395635620978954800732699382408063739813951911464131974337159644782734803069957437618948769900783632142248122100484668509222738198494808497415610574449741251676835529215435348842818273001397199442164919857950649857976590644567904984539639128288176303865160485074572990139730141426090274782642098665936633003012417919886113130828977562220133882938739541398962196577583750442440979767624085678879522842391424921761295182146443734945504084397818016032794912147101183393043435299943611858740490077816319596944128370000916985875234103787922142834874197305759149134736321494147149652680780692964435778539360545999150938812134772075973075088802922440541825332676181176233814650186143393779158537680195728275024202830573779119011203250508107961897639804001424589677503012775890017689852153825922424040795794346869610968041240431378056840837802640474551027563223910561711017138592852535852002951997068266615478656010663994288361991945808159291756996819315061334521999844672483933695900376665591127854251101738286664626118875318207432628738330689091374928830826725954786188515336821726479025584908103812966847393442158461437064776384013023211340320135505448998070393554303621509383133512807425950730416994241025619700267986540234787918606417717969005472725551066729329312669935974786472832616090957763430853612075515065385689513581660281320553790939698867237212085473488849526216924143623807491897930531405983832230835208296198199765400330204407521875434621039327253224398647014664089287995631486395600468900782217650438497334906418455289113966148663842735579340858751266871942595921433934877951114475805058757456540322423181952985634197153013101439739836387736625617458753078951572421052891634335939345465577808958599603233137874565489005199731582176510585675245500345344000983397164611418658831670497037490698198478043394205496440733349734388726300515280988017052603099689399898356297041981513211765788308402806695206467950716841316984391144610979931429829050891658828961896496763644859927135766215358551187430099414853131265865254019548475908216211395548499056570091371706388965497077204527810288915321875228093476400859288337298537963992280525426111672043895223984376057229382562047555740735587378635133830659372582432106413450590701823356398036683323561897055894623878131242837837223842679251682384283757312013678484991624756034755927110839308882254336768779231685986373484400250090686456610962519362618913612726526002781297605560504310103020526812754269103925357952275823184425805125421325019660850232829290377903106846414941373975764814926328388459701337074104838096117019821033570940343794851425045367117587189832946935791615116088887105183987959633159063209610215437197334847198697698856735127692146975466551556828680381985259346506574661189855880561159127644235169225352492785196739581325684575887797921259709958902281019979245837988577013060289778132941955565396948860844929195877074280551700984780046191442919633703626668360308046895401709579101550695851930865511462757613700703744932657152335451013834581466328362147022079978363816075582599421801732033231485210777929520907831238307682557630857590804079982284084293476808433993552827116167551330112259601092069714531078179282698758795789785730869499731471483619622177640373955597708809492765218738747277485213185947091086122919719836870780640649898736365938229267674328908383602117306305553515559001485248479772433312099400497911426646338652236645215242098470415788338300865164960983511843755080929415750315136719228756357340527772051403528042578813831564875292432900917358813082567208222027498996510715176591882500373245617924924602482855674487510499073556734914295115214906494313382086270722908939089890630858237461925376183290521875264933120912244383741934865211527928365590102783870402134357098839310411457942747330703629812238500375899061870443444228578061784831920463883776545842681985723367302194405113910644680094414911075990512914657679911260558280409275720087903768302485278731373552754193871246145582931289812168748094867160174968384759270871303832373348818668383895249576052134553462637174970911306746087921350797607087514515597636543188795918494017304346993233970072458820118879918133010633278822110875333216155138775854061653858484269589699996309999160061988264823900274258826821123137243252061764889368578322842457185648998041897970826622506938647801473731972274005845078202179688133765352707951357590530511466926850055960554260692670427915615168592141410314680402663169344190250419762539448451765494877845289277992581253871161487831175812276096991486265821696602211807247567273278028407780705447668906364682033713070534945805133244376323323206216605907482837566168086468026441231623344993756365874262527856736569729799830352701807022672546414122578974020184682957856478751792676975301393456019124162580118808721520110417154049134406803613713775538296827821750724953721705703188266973661141431753690189714325813735158995794518707215158615401115386006588027991510890048674820563234272540392846637978173658116877886914834552290438105959868248606827139428195478270065966831632415600367483586258427814255912750092588714360062737255524337541837610031899004950663350790482466635430883395252011272620035744007644990567536482101986060660400423966295478894369850325371878097419813265688240527319952490684793358663818668952498049314932637796548529481591260135125370824086661356026776029160141669541440038567171217918197377138255887525865485734388712342042810887503632047203180739619157319902403734541016772037977205066498254905624511528550773585999200860005298848602678267347918793945759708054040527885612908578228473046397289547910750088016901635987564870926969059913748484680648814273427680287814473323007009438239552370051069860680444165650153527700290332851199180849626414357410617467178722146502735389268118175503129115240507140826990462417466339856066446192815554187094049458029857210292303684657185566562974991208777554841609661945962748078131492587888939412632678844663169288771515761091440889632456769744393465817746239038322620659761830713640063915329265086026311952124820098510825019769409492615720905705586909048493835634478211940884273537685796701272933554260164141960308159666632712315886732086000354389742703386947546717175419426260545380962577344065351684032112498310412658390647313336437275549740197885346386363651123703515878856454586931365653629591788391442816699775451327324121007952156107295692020295862414720580017825176238541286820989533233114432260787746822293075831259884013240652866887047299092340245045616550835453320627536699766505872949488377625130006380095543619006000886375201109553477807049681211327010826302832136030442078618570948861738312079562317775691127269064882710880224330853446606932141064893583584199395236942486371964810118249651939053578953554038630286301871752031242005717612513822218155164238135082023498798320667381284525934563264062251995291214671561656100681353181041025890943298804213226392523308300105632262425955853806454477532279017586554108682860514665302413585995178124733505021714881563242066074129911559669910942323930141980133492373296827895286021781221689994220375199727431948586300080163856865805764124646540414536449846485130983723012075827969142999992208292789693426103839815762118040459887614235573622017824051914388303294802789456499661892990475967497171695939109801661299155065051307240681377297271219786966560057481108495170643247850744326982623791599728133290294320302445300711402546086140349572051488527986901053309220502454182662429287522090355803302132872252070322026405857240144105565562955132322886267330107751820896079322352846478477296606219584281521045255450607241207018090138363002182864707628595879514617242845088469727294432389849513113562431832847377253845980091845519317868726032894981121454606045815562785242709276142555087077567019159536016885766936710511990662883926806445167473407938762181236131942867176842097779223573462362293225918328370121474268690310868902918156563536925796670922645225012217662680721437667841906869605693808753525872388153583344118978610237952697930008238092133691309225827716462304356115001093549691131102429657491083486690457595178291817075887232584858694717822039436542827210197155040492045568112037866301431964049960331784108372542046166666264663173773392219692260936295612599444975925302312033611645878029508532389785291830981989273953724626703958938258605225374201168478560763424981432643773824878696833173087497573237416984673503467936747593357177128874092178860137212968663436807537144338317683056746664974448546959211112353264110231290250235354124836524201836292795089594752675731575695504364325424442023128995043260463100074985233930050395068059679306942322355306635302707489021606359267488744791321049338740772789537675910538828419999162213840823739053421115281209254021896232321055663142571546344030194549168955303991419066352904724131976948652169535736506261132798868980844130273838805766092918635212884087955883509080904034611586264556110125843182314906989075334280155880010247721340413004782461975638749921348791168754348694775552418158916667907201497860592050919232892874891173266927321337529326846300224565561249807859724843302949387784176311542470035784223226583954213128680837357117505798872719584257955735295395826422418309584472081345655036794540277893483556358757517106644422450625378057046221039555735157222346517071797821543141007595552757799722153439453056485990987276883923662225215099131132446873096966183292460614477373803127398466179090803978054907129122592726760874527604798329042777315472791909566690045241053240934984359025974587055308269508998791033857888191330663574513150625806693570767530361392191865291908742449507072455527318073141006965895004953078427796937922249829704821478422564226173825685651003040562652129246207268703711287665412126570565016281203638065032094873251385091362099771302132116747851554696545403612545448476925798527879914341344551078468302293466994027346240601640362973112962105314583009666963162091857017476851918222998876595432345007659456292136820290781982620573596675267666877266008035993631760626910870397642915857315847487253977503079851515354190810348916238174651289575048761832974283326610636071956902293298740018307210831450101334303708309273938841898433882277285795807160966209409537181697480718810956727049755136106078300961399593525583224643147515013815101071992669577581984267890157958638381413165444989078188639998885849814756065809985646498850709779853497822533549563523034194887450265213705195110216337154716464525469430208087882937789719742732209725496709092046162641796605073581546216502806488692994920963057033588945427700403438852041702169777090203509726951544998601410437947120856919064372175435468818390446075524711162202497145143865886828547645612106482636157488126082117895886534630662005898057501932048987029014549565955108771177179024179335226793935808706216707056513957376313508125949459157041757293311207691648772795658018232523380339047543224734016172168098180876181168539987845518182503980336348807483429629790272859333163027081264270247137393438886497821156131752979423300568955027885963679150062916261453181242335484809255589536906226989269361734665818857715883858729982538599254891803652388428379879696815419103968590872593502853854274142824425760362011796917485623311528971696933092638166145809222301379798039898892474391024341853984026349642282544373047136037858694772306343816152498333813343381548397380904387120340220862096352085856994097495740373392570224470635392674340913170689227109072583397813160825643026721296747561893001842473501101145053725477093950908805726513328005550366691816669908724962748914105382128133405057820274400792517649742086899875522927111620562965728373244781886466590195560577137760259850331428658728881811480833189403453391208262471859012860728604566749086535031609665490980377213341443820705593131873844189119232238471981824682479086132924515814424278479241982878335642364041195516800324162009522813096075464682959382454172322187138286148117863849390291122750342906391770304856801576291596131169866927230479765098247292744967315677818791917797724962949578953416835056392241797467052323573453125168930226280906328840516583320318798320150507582556946310355927282879393789764302412155049313179849233143068293723176915810178508244009492105662232015174104294497755752774281647409920842668969742387716593067208512998723742604065594836538761907181233839320788966384416393975083289227045707157133370966948625175497390654220186682100476939421263648583305532876364614682615179420150194654923411347523463279750981829267000304935250616966702895911448123081775860787791445506431924549820357417388202032605774155721424653611935876604992639873107086345220787382463742282422527327775416868276071456295075314013825723573002894195091906193201120242024352383956021570054922948221032510602146867584017145748426610664800116882988392817459668746404533415190548444583654907540390877983006461407939086187305901364936548748021938244491653288952333645422637286662671036195902403883951500853334904694706884655545440435565450023054090880754241432018115760034887038842218111783031984375042626063838088115839797730490781160819092736168957742840967567871099239580863571113702646848743509417620104574934593409553880288689857135883616398879397146885019946763888751230442629240214959043026811794862798810298766816019193735123113875970271375294430435793050415046252445007613112850513663525046120167964147257608100172978326565623752662502373798755661076276555310398375393819259010097213181166768531033595813055632478031074448190772302724237145634217966514831059052699244840741215587794663095426636986662023295153973628366745644414997321356411002948989387330403323619807685328765382997440272739018959858368677955088323950997688919974001059113155938126075024595912981423536321107650586212648522388628619023687873566392735655268065455816547497558551909863203425764843194956591765534730590527824597832332602429832065068319656808041259505414741089229092519468031117424011018824835647408898862310622237840769168532673723432461720183797426329766348124570045684502499343487766488371373853994593187354947491152572334785525043821627459371383672674668513465457087503345705015174318227099929574716759507721577067988730417648383316796623104563980383769246312439102000205534670567329808264065702786978971920736219709370396340725247712505220457632297628446177121850708886334150684291339115597672505086219973309199636146045023987429466261600705031835800874334704110985253179444527171279374738296489776995865848918857952806818982139858005980584152972360564155223928398858829736850886687644510930724082362318179744391527883024296710078252944518682477691590205230534475754589596681822332325097684734609562449274124806288383143757569055747546957964947373483147100881408569161448063668172421503584319374372974841295759367839624179051277631784406614664929357046346400170336546397010004859669871584413646669139856344109144197498850319771501407957666959340659686595636350667917512726160030320198176119111505773504570190488095523331208657286865540362838566245075020904299314612626459770620836759222195791179191316154534944459249957961407848824789039958192949803821106267524837521422739378368418455393313984572833098503440104704562948930765061468878431818530634886248550658914061352205939791258909859449648989126230035051721016711203475638697834094049126055532450775254917599090509682554320253206886976047229556387127137485425572545630446856816497628099188604108151387594149713562643004276387822808736298506354352912930605578989477579165913563449919777390574751511941693500363505745740318118005900076610472910456161719594616082015074092946354304324929942907237636065800003578687837422969360642239425463687574807203101878851879125678960927544231818843647665889028114256169407167606813646012591728313352908542141096243209003669953196433441227587493298715316994383663961506871450850207334738657413960267423129618071038905851510021672206793425138145533451326145902778211478489900967846491005929170143151420238308825802152836512535481691756267017825096220392776820246469428817721508273209287245377949840895116725207386208647499217745408502171370721817136623705515875859732595296811573226063164168802411466754486682297228128620432995947127101550339086899055212626810323741371321189394204371189525835982420694114569182754141780308186311194739195035820797221099635136760926477354425073875935590687507401509592516867770515641267567866017651084491318095420081161281057930131379756376259749449188595195630123119077329851656095587465454017595590356224260127129058707057865873158277700341188423515684888958639959022246812469768738794297434212049938847616035426547269978016063129589566767113963070178388263072749976557770093342781092387845332633478270849022486034334920426191330861250369253831069513312674903904760445844772214445456528605344186205077271045998693302952355521271000702965021731250493615585327237843137859459526913688032700241040814204557772408551707160098449023542601770457172262125182381157313559029806361690185916007961724780036608108930091825782934229722661373045100230398037599666184996467034104784579981380065429877875114443651687010606708420148833050306783414122039040091835500754427628116564712706101659871447507479904162788531415789758744589235670915096823280085291225096645664970994779585454310331131505836026882395183746340002973315143767848816357608382267155881117010983568729279320633371022987969991990722684312315742958507879118455914341903938089557550726457194760903019446156186582431712339086854018765292997988492468497967250745829316506088481574691784722667027574893602472002939385646047394897317951218183888983863147299019995036611234424216079622097592543435635839003841611555893636039375108180699860272506216710248121918277512624494405852661379423273589881301494344507753050989551809228888968966070984549936872009623500830813543578504815548698624757470537032639705223364358485927245835802704982408845015631415221776578051337673115295874262214772077188113966308783956353063207958629414674318579456289867742718980691364899225882467221144577310498022605079873312130608575623405535519107196626248484846208981881290980136650641440189787001543785116662236279562754985277517584475816320850475686566078332209938894091019000951625953619397482155651468854095694476894244278582882358300718740065015859163016480830643686330762165729896206564753187267753735226661733481786114792360647202656405476301424261968965033263771370560898408677921459180034221579707510534025594511043818496780646747727081109952823342757624627248996653048001042878978584374597528307100716097109348268821446356285741954833069565518368766196968554795485268649175640826355070034810773765529626476364404835102562816792496838941881248516374510540200355227338485042729474103749159693675288542567128935777310098204964199288210936221225663971700640356199545567477505348838373328142243424392178274122008007582074915771874119643627422914746468627728720157495550078289784805590662620372272684236209452803447919405717166250759054594271168540415536520077500067526201905563001159993277962571132317315712531704983766828863514561112124141859948762403284722630401168650454811531711336538128151403728936899946748412837978426124340344461497890519971760718932090570492347249553470364968822419300190160607490099512422526501006471194502066531698472315597419443201202311448986971514408258337577329221581462595693572010291769831116674732155578917178107234882814565397752315256831929376574809146533456843912469850424290647756058791012696294970828530066479324982676242314421578151848077587594120478378796377366017862145034718323858295059134453122245113662818985316807005120030192162909876867887757819200703330061160738785459849752062685828018990372655544299028287538458538994783567785376333323931824206934987976485468052674019358770055376373499185429479950284693962991802824863704414904835956872762522460228193383578048323241721534522021626641583099108809146688824861754719725100265266619347482298483044166201102647683345451071146093934812914089142709855861765349289538517826043994626431943404597427122593910283415234558358872870498630520546081791773054681610664587189584175918207860242810549361005075978784787241086252028625107658090883862899901871254347793010461055966734401103205624070146951588608661616694965823478207402453713229059488749465353747635303970554508222778884873066490269784524019886692956087874390220135819529815090171738929820088716237039583870542450353494449580125932059392893460301268627713174727125065275435659826490523302713418104506339711015893447539398628533533592560139194512087376675744784332890877160242823100590836564973251976822615224597105755909209472376935929246972593690930360865567462939496292689461753276418054729608321043121576937221678567613262710785982257505909511579973438463369928050323410437682672174406344025009042988062880989283054357240305653881301501652252666727402363641288431196898190672319004300682804140888905128433667991227332175664343645648754162200539309024655405400492325415324041552250294545914623155503608727493305001483516014557632250711867023400806178908191039612905470155069569291777280434834242450024404256962176371701201278403240242922966896951717603011396868984257609934713841746072306697757694624827481503394288471597965478516641929190050132645301750413820333370191511748795969978368931533396853941716390766070354324973898132456173237125674048691606860888263401353265351788854067637047475572913134310824774587565693093101125677391542475153739675734403691496787371792815175473299060622410331798949677536851579631181897838415091628397309994822269163460476968624895091181497554203202315115414240194378875394169386777019998071883618687643885168116068571148898051529611295054832368054093112926123939339414883492202933257446440245285001875564687421508752542481686291083795920503640416835194535135471875002154383956225580107950865522697596672385921171345336441477135210941282178024919589448282340973348909469668576561028708182752775308975832682579410589211612166769753990385319273043728351708365517953102485515946834671136596522576237095715077410009985695780449624570504925672899771307069990691876679314422976887851809441222115792852200518352300379729357859298311589299972064780841534847638365032641556308291290786815288264802270402089476059946448055940346618216722618566026498940626317028688925765092833499115134513339784853420717733460970695863031770709894432178975377020721250670049095683483448860995848523656748157833523409172774212337146765307050072734247041860073435934748768795926492196523215744316567357929929458621718702104925801213710351726677571196834829624584736284998397337328067369089688772827093955108340339329789682540793671820047166193469984625652313897721950148635459948955500233563628919142233432481326454652435325316295901742921857219720690716701924185077434695620256569335465255482832569596239219834748851514429830249788483249645374724472706608392387952998668171299636901835667103818248268139801991130046766831027629473832285043497180276691083773311658467714368773245472590899737488044587073970187357692551954404592065964237480542700313440775886374756298899808144023161911274625985131744326134878533293968557386360706983571461397833063962960736253632167040188442567173448877151008186526933878371047791752577704768651095664460302612722669752903597502073277608803408779213096878461359999995674438457067367023483799150210659120487058826710447320887679351422524534206189966892784912702546365312798000284328850778621742945007976197156757722657521998713272768003280727267943557119481049261357368432027870193940495079825377924260671217323817354840163563999154107487504996814834013647026937335577155592469889671472917806455300120311901640439676003991672554269097318648021673308421380512305096726290373001040136153227582418356541597494784110680688679597702137052392478617882691454666349262964334868879553551146060727201250141429538583463333888682851995091852456475011725028012702928564085737848876007639966757323810870496363533081958850987389757984139118438729508298780161617528360886287782380986129075136362706739396161256837721986301789857263758741913176554191394943942710759233695512305340975042885781489194043060743060932989929710126966633469785431214204942500378139111386088236761857800410532861092553142973135720497527490895878428409327117817593235700848848362804978154917839760830448352301343830963685298832649358299949969539929687393471596363694669375160108739500385455004646495283495818509664687144148233377424110907201353330137330237630825712436912511044241252150261982102385190665197391408123133443162404875621117037696787006055641119542436525995716690109012469123529121434653509866659940112598276676930216604432980884997634176634350638822427304016936171837569156293733775034155566876672552974639464203579190234930673813766342154592658841911227271242021861479497073597381585641203729304865606074290196342214851483870046476367955684328580996999015548124955171683057500560350805689942589696489802564345125434784402820086544432976295008951004615192597733608748344824720443229004477671783921177387510278213372670439826137024370296949909541007606468663890819513483089587731303382678951521965120432345678634017047735278577257969826604755274877226439980596777200997301890092717307064207305788723729783119349448563519376669027666844553613414215513445504591659343801390208606560690989332007562685792344213384844197472838018656782419512612340062016387202692232892747691472094655828646324547630046285230301480926833690369554218465674625924405172207695979542826404761158207954339298870400380240700385255276057731317960431725705195533578977860685863642866654048884831769620518624470619428066372623542871880289628758747226442973115149907096099896760479127903503397084930712071377966945949233072238396327568046990389945315033621370911274658079222123520703299552213600847126538518766192752288333154807051071686909906220766981396483556071494922006948933596337050768972998676360753336276279954829737367891284721771064689030730985424620366010247559454759763586837019924359435101679385601011926463974996542147014286717724049986668062835566390609299298723050669872153726998475096421469288764265196687532354968516238733504787605035154771264845080156114416201922453606946977958673703648812814308499838945100513958799926074739202238403986275444882440452974273363843689747624625593681165823696102912444932890831731191193407428874672417406011071365809146002526625440335372251001777441724312767653515316639460217978491605245745599803499812374842496298647104375260805330940744248303082233377362182073692389300416428498579836101278344427023566516271334669653712000898150599265203826557668919149919954524283006380968124065032284956293904648062083355265439622890609176441950503239513942077650225604714442295564690667523417178361879375481265340240861721351789508722543802232270551006845359647374780458101799571270385198790233509926830961183835326300632280286761303699995129012449670312926968753839297924065690371151543775495694054897226434370039046729277558310140048154100047580832903604379646702629521369583740133170242707831432725909088450232622379992906014538988943637590252654456984172829176297220315129767050214029773923898537889943923234815235474552631130528716550902697312841216438208629443819113843723399095241051417921339793399377240200374275566698657806939414131173738646099637722770277442025049972542194626683080972560991390108329653509014860552909811264220997818091836945659074061755091376485414019525353314367152437349162973239638049973759597173564093672872525822813438872866229783115467981453231125712000563189238081734780346436258589046425150714912907557023615339797475767246612905816877721771787696447452602785482756439251129350101379084298489037393496400500584122371300344195953628277138992295354793789708024653586835831699787386508738618889570977002066698711473057449384370385617985954888307798464164685715744677084777635223534015941414784190723933943575007093223779750493125581787475018589786929116972018475283089332375805327725624564563191800588410367516131212730025565538367053201336418145298018098021360166548816648287108320024710049923277929736573392635742570522462619391577471075493305846131689893218865185541593529002390501043047817267312423780216003606311902918312653011567959527595889135069028916071245112686184924343315144670085165101567827228547656314163659504401828964714064913337213793318944023776279696439873996464835373551876769044320602669840111102651012082425508668736523006839608266832286706280632296369345189281448565004844822996343690267362373790951694802868432111426964849420156975334688080381935253038769739107463276658501849584617968357501476010687351456740667258230043074601437652372406193954419929990159651895857006173086449614143257314876781093332791083557536693024642411710502013104062729432774014649255066471139229643217584641082045360071135032361205082888061906671337107129680708217791218622937730673479390519779342931720101296251838558376339337271628104266614434015687182433514602420965654145598601888063023206107686952178415066902992529773086156761517970244755203575019289520587739705294664022421992566449130219693634990102017533719194308383673165058080469502177736178334363212966061741082689565694739224080752710291796199502399265156459354830386430316398321139826645902292823778734556731340452422279995959282442551276061481895607004639236498877520002831264146912808052996464308330635545745815160467118953891906867070417954186027344923532321264806082121281977577965967303369822087184942164934388197455778151238680815532771156951100159888779362823542472431638604689111143899275329019730656758976162931799134288835898766187291565533615121636717118190777766984429848053373506513471103219092882390625776692181987280836597501418694801245775909865825813343730403054484837737022887458552038235575280873330779384869789374161062057358871377659059907265717465018834295639083015386228926694072393553458720312990819590638942739595288563319649832391485734845858114827299563836255231873880269900109983897785584014423697234730731068245676080308814299813245195944820554036571208322163922896292526840959862880809508648853754362659378621089630309089980904117959001037319521002224009234138985438322545727248318364751522389513276371482141911232375036858493076962623954621287298482949940008873659958348115984205274226011427963929762288239244975515986568854126796462025662937341214141263997895091157884338218513802645397756808279917436335222824701409695340019474380541922149232313887418368144193851348407139655729483289061674332890901416180512898554699849817802916750507299546154421464985782235100018752965392447566725936768308033592202144007231098453277245967412998329637761920813142311237338637040713089951746408734340057785382730149207926091977569787761336033965524427887393079080084644995939356903315451330602760134483695949810142358097871583062969141190407586867341498697256397841214426368712674537516353648577632525555487153601387630198256157941227453256950455580989882761660442238839159577398974043030719519118218300412551174409307544722624840335520286369954566770371890849881735121253350219883861002735779604074794439790300581315723223196371665310310026936066928902001144292105048259574210684173703180389440524923733534102086273007391465595350669210160558703393623721529645230098469328011060023692406074459931978634277497839005050279126681328772180662751086027508436654899193000954365118652438033595961535813482651182834626609401880267240211247513699952492079149472796299458645932646039760614298832122563445295301150640035846034287669853560558395569679988463894355749567167437153718324923339806831293646432115759111765135352900575742291140984341911226764954796860541674153038598722900188051061187210403690242545646292964868417106383688583978495338903701274110091596785291750014684251082379182087545636640349058280673771713659134409390372439615756757399756302022741755141294780505303837798755582095769781372773975869244909100913382009106763496081046404038574291756364308004184556717546049161459209307213589314843740289957392855789478835649856772749507682530570880730025726732857825602605563748622819645124050037503709870264893720706706788260456544048483812913787409918739032734043846379206528851828176804314921582556679256845630671646661216093115936088353332082505416648887231552639469703934147292215857854509838765771020292766593893294095716958483843978871193397276115312496607356968840929102826714943409017702978688541352266532651424241278206046835279934139437024094346839005298413531656341564373540948765391343391958056541021766311725079867774249248891481758643893119357014108464828507109445771424283568373850376869091344610701516788147778096005404128919299576295622675203226905995794567918918681243062860534260062516631407059435026126308382950292415466896853847103561783376217162785146407499461122717250008561287677168663706667544720109267384754796598925356571656999423960237401453061120848979637422175709295676168991479371108437697252634093122425522771841660481784633744068847424953499022736543023574675872746615553458094682680691927855194909964857515428650312876823868914021810578180018036805171342307385214084687465337824354272530333383143017092243725425062455318030931458084455069374019144233043627649375362735947564014220532288852063384453511152431217244478351415449929698986362063613346245772615970219393322818530044552541622911482570053527136353383087186453217942456468768165475499480008739406735460136919541221776032260999160011158329513847740876240970141772360223244621584411734831356781653677229099231240912172552441134309801753127334230126332554126966583456100147808798695163390568678981041290919404673551506444474494757784040324688297409057455819654333236900570339278967121019676423060813537737125527259948628073960489971487634498979194912965853035025374492875718806400679367727085876015073641136412938970784353173126267180378826950210354985628708289710370595684870001465824001518482694804614770341723206061362219115098121531655908658172947632799682989709912647715247409288305618550775101733440088963471898774452225962825029685240320380636555559035640083740068950208213554472212836629927848782142389273008608391430050660129869052600487984131015251089476303374190866719895638388596905038655855484885441343257973308157172704018702368062184610939798063023619153138440803288351624712030083235335241734121598319445264832244490755706742609658238583086494903736645689589862034183897155984905417602704243838235006275041516534153119504971909258891961459463782809856727654648246187678723300362293889638728333790728561066665825794949609243751698814629898690577569089916226486122898262446064851561936252479972561227973541928356727013347663985656555216749918146781064742504704138397943574090508217442234279892578785601655134920266033502898304848676916016171778937923965016178383942932233468340597226257319567453965778381669033388975405035477465206630572087240742375896404027359573022732756481277691304073429816678312452606831063618382717920954900080541055278029404163935109810087306807823634568512890666650043563293908614736450429957782732613531109183846531992415554113997938911569358506438499085031006789559016974287948891374847396776630572376400892140467669304520745147831618179300836879105518349014404768705493521104997961829980449788103148737318568546462487551183759517276310470220527974662452771831728412244105784812925830257113577376556252248970591731161397615856804036488395688336477793248912024757995970857683368181233548632418192499904779512584257939155734209574495695025391640557178858478072784180512001314737048193722203175768497975167323499262287142707395498663122945931639761919994107356515777818260436896234774600263431138373470642133627559518579625808983536983719392152258704350382230648132656292081464539198684682363323153570974690838975757658742030409908697661231831575712609407071617839358177856725396046689945867747619070539575539793078081128037164926012944283645981930435110577538940592172821041713996848105481541881714409200612709181250171390101070567877644220673610106386539300351573788204494455568262585465348413751710000906460691428795576500025871973388646572978527034271257679187250080333446987487899726702196026179675026274357969831095003261726418918269301053925406375624467547045319465010805212645823807398669570199986647364010435179994387321738749680695786613786851671436313027558175162272742464368376975627970549609250513488824105723656588399343346014155462053766766557002092910346699113013531731593790749381267259777320954851923861814460263613962916756958910098858117022089320689211707722286761432912071770256644569315514641808484970911161914102780550330388775943717073514503949300886393626933093342987594279024406441815287636833183866055794341170367349930234479338900865644055895012869586250917834009343885260632995843001563308354761075142372763745237965446329053979433193669580567420961316248670595079366913503511001354938610194172790596027103194268872552436601301420695676273725655760121209265706474754334705358590951042905980744139409803432195079744663260786914938894563990674843429379254666118591259157460206005409059355145181716732311987787225000592836129971577425414291332160689553321827010577693263992251060752982435530973111056412867929932337342598705779146156931706820794928070939135282549616857229781713320592940003545818690871895062998293272916568601495195747856378879446216049845906310954720270018319337189304931048433724667973467300563362383095057388956117967878598570150638457227063769761162768301639237373341449473205884278698175540607751182386575044195575093602225244313822248732537127497231325612330595836493044999330523367891601464514809766979336154161645470119249519882133787312539878628038756850727223457712310788113546224421401723744450988152380012387123929991527220886929256941807451552854505941461404881772314373956041178076034913796385261633597621587452237468147453338419405857006981417513464752344991680493854344395857741462915572199057956728833251446731601307758935847183913673919068962191294183716333078774638685531424007284363504150730826864468852350183215152687281936730248176910904882068452516997002458912359651308497966887394841916107564341663298222400901924974871103807781962009444169045096675608476211797543217978028421933500514701676194229035598234070130508474306038147578702813593969465712218464845388502645131157732294894916581836569176283459789365002516471264449859901415030943641426588213742741051232463942438778437796081614803075099963768102980967923892277311617126696090075380271434534731332231360454535639710245324781449626005061873954662651839209382912204081901718112990883684862615664547586110471172052331524123006731590370128939367113011870728085324233988141918389827195139856468978274589658801763879784067584923855330400494197285543884434391213226629891689875080442256004756816542032259736039415194421075971765054213414656884608137296190170984132262689243557573643578232834154364063897145929203210714156832745011783483273850928795970915279831548231558832193835753820652962173325832045965972633521568396663514712900767715648840323936469431167629671595701232302417961327223698573833013662335910897417252417137796339383153598126113048153645435910167066704903029014813326113023641516618598152922871130108702288094913433763657939758034599429370363172195886633881745467240629721815113207697799664755291521097440050935717843384815467823691861967324194019577182919818742857571131969555216917841957351165463736012436637850538037428612439477664137045740104494706770871064384289882596730514908892115556404576421414424976952743153674483931676801142673159289843197457618531462806714342191808795546396206598844452072419422281485240796463098458806108046548626083742086922373168452268358516382279793753737403505959668587644255312255144491002690250305342234195430719410402387803924696373966703079562000455367025500541975568764662531939532585219665346697091236088446576697067224218223565866759101724278927647304667929334690758354347463172333926892320424968351266130556569444953860744091885625452407953157762239537655687079151406852020467636962552897345902270062155904997311893026844570386875359708836955145524800891490635511549710120354669027610971969887854711131777088123814562022054734834466172461959872542741849966148346638983615007442380094820702591629520965074199201783401250714852960706408097301338206147671007290704059041632371831529768351685191444376044756142167659954303695895718620929795669721753937954269543447402616664896488653427470031300604101925837342849934911793032504405459432899623935137520528643712637428505441567240424294542393766975633168213402100468963200953815227754830084971657482205863262142701042749376753028727408959647692826228430419743114124686749303910548247771524295641360794009040289104160265758595476470296540533606429289890447541721899181618394064543995874616449050989176489382265228947256057374629710198507896012934078796478457579527728611986076914743858982965453239965359635550989369020986527861845297634829836430280556316494127549199332843974543537740820726177791602768580291075013817535769598372944384949068348967842721455846192716771288831889426246449362116143096554199555124511459445412441875349231442023459995851090972061000565603157978293054181607121060047385257451873095036389648736094057519788802738419159433050132643588610261247060490435491271675660697211601707538393923522821884731021908409187891857651477064325895680440719342827957787576770891770788759154586424683990140353897024986025499605626094473836069618356339854839926159080745123059278446872132016284282323569804416484750154887839543699062630665174253169610637708036372810403691691629926376091306746385523421334401644825138135597490423844572136354912665364557763704609706472809691390621230124875848563414521356748879177068873961438419452936564782167678498493519086188032319948593101135679729120108997929592040019568995461320792169866252230095757335033269274034035607284480118575029025687642452614594937628726231215221039901161253026217909002045462486070886921487730324751417134953453778067913159711571050618347020087088502190920970834805449657476245757827833815546957400477544720623623756815456197692581308140854230765620696124285764421773013894377230700230576282709623984532744465919346077078298668707351601281951996680472719488223604583875107829880629533337370946244749344321901781070632398167079332017035256019482870154117991195594955661663697362373945002265136561578083777360548194308761161183341742178679284208181003177872225166814998214527328688152648775775809655319907194703835857101832973170861819067451683791216347809565366619721420067560435815257547626248212813952608499229635464393338701223906853053153417256003279580907623081354408819232423934369020964866902439015776125644341409478576850328059126854277024010894300651479667945291458367968870187504858532443228606173044964118842261675850499551346774139497060796067060233611779387784108827982533485722710024868228283882285290001658798971773856414056655596460563046894817699271165314334337733019598711682166197540167932228962840113529679575553333001629075253691344099428799593152229401591377465330633035353838379993997161353015009238089064169702542563475725017427805110826262356507857572067551657178457421137008365026408636822410306520470437826369665785406186217406438687365012786116587351748281667040767404383895169342347018111890729556472285592965424039027684351144609570267931065693120959662303681622520361188028683805034137929510960792200872928053970073055927826457464512512289579059380776257090030637513131014956152156822067917758874519996336494708693195370900909741025484106039492365153578240159346426682842870473435870387883981897298757155858602311106853804826141754518638610238619636191262692569176066112656803196035388382702870579583476272058141965162691630895452590789568259317869897363789516016899763349096839119176943606999467888145014243415289915657453813753225512143711743769835749625097174736626422744425504937160488191270393318353927599265933433345786343525407433485010071292968000457963637492804994769634610089478369413660966762620187370998690585581269361022723937829761343517531219919023919291263300976051059371440018920139082626235623403469454525699176034577785091627989885821170192773740390809825308076879040587867086183811327903945041505903898817314057470021848022332096671126581943166004993866905445495785706322581161784715673084134346012237341782325903270270213727484740979013127879339100622675607294864623377894194128482202765920401806962343519383081860210480426908459189908802095967219570901409276739488954006261836527951288949305312480723107398498646555895495462956753999602974419056763471694024339198782435315343838284723831968011615963554273904665307267398493268867736279907033269119585933958159515156591080850574729269080058698722507727514471100586576937123358071202816473550350291986431487463444511909847431890712953029479271820308561193901771271330964278269810194268393613989922979715583545577308725630166146905309692363388851313142682902781763243141055132526121627042583051707931309964319198992064865956236253000694482646543280569947385778111436296646857444917861472745601176208589429245916889806955613662021970238500894192360934326196906265695005177723911770660106321360660566969160030054811640881927445247887641839102197202537917552084320789058312964045361491284704980207360011160785680678296066314932969460493351354498177584495063653286321716768721029160761402329712922097689809662480931603827535300787161829193646490250356877501902042829515181535985699106652711780752082266089677014441083602217363411514111574879129227294957468761270677712249581398707860718666739003128825589880772899582370784500627308390664933692714784025199146503844048484449131026178524339440024226409327657898234502185163062217498449861044349240240267675594115136468074808644660278626442933568675561607310891502439540078126106172246345883496453106891788307110227337022432260354047771069467450204871476936908425817905314463060517166621609965402638440116603699621539375176182246718836999540527297624029968177786281920728875936750252540499442076839969782483750449635094883793812406152056989958233452897991973492900728603801498263264139937217918088043971030151494324970128488639119024109640363412196207910724974913544219981593985072069604623333109893586825711338652828758226693365335623914758082575186139454937904154579305817640178054092986429015301392515980783272786491190554583761965763123004437035498811219978510316840660924979894999942254117795738853480784157809672713050133525656717753836903568803850759422204871866851774246937689879469366141391420063300889729626992824605266241212505589418433938224772446803633268957913412071996212921673894031075832790837868118425006743804196402403574148445979248028777346463592633294971932772344904726522744976403584949508687598306251741036896329979796334865833113922677572854315951449741210763662955360256717388094519376820111095542342689719286852515946223356339087539915803195294570770375763971489303771796286458543106847678151546511126309874884116640326191948900350075877691316415313250481140176756981607592071234371694371609670936127823515713335926874159538665941207570569273527872164001419753037161256288033065890183101799252424496021678715215390145589858997839496699562616715535214099077033052146709949950074256008070474109978834229178896149139901068279732481210783656044957794967215852650558194124924275588285218277989062134197105845301762340791617952609717721629707009160505294397026709364919376534590051952888359492296898981349699802058213811652020331105019166366548766201265879579010192908174384690302646015663593091286100666101974906393309529625658014083850811790078802932939292825210819888153452566347489245960431088590426768413124268071850268466463978538323781228765080145894999318048570150366411570888079689849750500931962596679222037276457063878463007850381564245864333670421920320957197128568576631626078479636349827510631612303514532692394190159247399167719101067461529704114336936997296670042073358155290218968818073756120374874048291287341077744691995558380258241933416388883658858693274320318941721459239538070189730640958997608443196169802040469684378639366196586608056056630902785630946551931708504226469046986313114287022918404268265309816816546260108578388615576491703689823573643029450255890901591997446708166209705261079285839661395502003253383722009181617268847715231459029956451930926249993100103136191682232561416082079898543125331095661342298333762658291763255190080467975329592976572774456599652070388478197067158035946470208471372859687122026951513602051447830211819923101254737854921135179607700766062197510996094915403489314854191942746151978697528183937082557148654627929835697225669780118957677995469093461186094408297544222492798639906924294234296654158776629805846771809436508218308060588232404683430266854047683920163833991140464670231049065638296096580226806761895326017971388245623250067645719384338985351347675256075543475158394322317166379959662085887012508983624901284331702766029229585201690690325895548338366431101979074005085943244262159681171611268906515127002554688795647078069164302888469190398060195509297780229120779312145226296502019283833634287734647566308440496681048596340631273256938364095848506648187653795811454199530881284145338922217628169129723381923849949256283717865200488143898466401955300327274775895561642707734606581928308644781902295609388622549915776562764040540554383473001228110658097752255070039585666669456497707726158904306836832511372847352435138110199396053494894311914994151662783532245104669587697443567506090987140782958412596752954795570808614958107720358358193010637719984518341904999930333430889269234751871543251431960646573049274677909818078906136902120001992618449072040568568226396319751335775098272096125832941639785065641033997079810114140425925314385278969154210339043993666866658277446562987321989644964704404089742594594324546515276394367401238945639877940466472337483703438271163859527226709732571543903357162093629848149949880698647576631385455059498976937591853953187465019916015196636949540086105465667000969977867701102797817068285026454920267595039514218678535435314425484228109236729104481617131390047833222509230297202691760377576563271553759858953406115381892178135844494230361507899321116025624035711546610936926227067389756365989267611396957738908625447197354555440785330691533388676374049174055500592440721221952048162145555303115524286186145470764964871099651280999063813321914608422950179913436128924963590155037713119890918452251997788490933340024608614835444197042766345244411108308862964941989471398837440506139620233749385535232644150123956683865244386690043488461372410382315327322190281661787735580034117375376119742210507571554883181882248278689857198941272507132761088336672916988201884682782305312065989673931302055167018274667589089125966890901757817592329595373284255421637084695901705641648550033927138812167234799538025257112196878218511779012493357067242417828326747495630431722601638011926787394292710589592553203280891539567941385753630979926279005239268826580089996751424752241035146370350489185156546307447044114654051091085928567420525355053193162212466215192962794661978581197122087851568323869448467655688317090881358878012856424555081587897896460143546164242567072193276202615681152694569604897631522294706144131355172717425277130012793675247545380452605618856810192837952349834316219640214335949747698380461327191080987493820461580421038144868641032966992215646003533319080076532747921500546179190020122018033436644464734427443996175099045826886369806984072561009357380672841305285139302051678536876820577504910060640020301929588085219650807667395196163214816304178425297768295545620182243793595479158591416937618817683621008279116315514013192322092572891152694918722200610950119466721474422550089610771074421864605746884803733792365577913136186746163125411041450844753122432478499508687222871385171263952365891813035049009743511425738632018908594014932913916018825930273498228536283887310378839817585878422117816539029714282463850019175500587654717316245529505485409409088396538942467674100901605934349561658498715778897414880164463958011247311517065489321483774387661460172342049498388130119865826346173262332070378011699960367246447570873105015269505404488714120093818877304275212715589399275271328020790621435916470433967452716038751521044924757631181123157355309753928289497526776884015425600903213510683880026582869212702321276613698600280615712412116058541513626209857615644050396173839845089323041268534138192664628109334337017766542765064694129956737538155629874032283896001479628491348748214134808196873438148573523940990952817086608078454120291188819409887721374326610325918631489003624935787893503148634361412808733447493487813985500171992019560494867824579424730902701997679132493276614970915984229900948517678912489370543246438437940626808979645377046825540124148413192431215609896373836253121710569071572987739357703364810572048528340538252194587524469531197079083596279508760756710999322919121412043929044159083843964907517624480213654159571589363579752295613354853823642169597927730312634620963535976533328766995864428172087324392591993008969686926472653501550983714895189777648413834579047780691893528630493476184135257615611910331304457089818872780808725333378479288623602943160286291568613301158963027038401851371497814884651239734005935433911578143442460675571327631517974731149664630709009294529093920802428592358049167760150293021866129530437786605567661792270542005492517117724650827513227959178416937803726655026840043476270678844918477872852445141397888654958547056730188522448807562106971136636997563967947931702552073286993925579059474790411018635285723298754610718983514550800914768414052231094631959177116775396992586757418358468635947649852795950851946547864740386824606823355891346360262105176754022337491609841467751016240789532747328510365523860507508109882050074650594386897966505628263199478658385902567617715350981908742428587091641361287847417050085125055556635451487807073540916336398239060703254742666251703964430384450377614299296279204424339149681478501345643425396673026071157819038571644999810574940064922591554472958292828197492905626743789098069543864885030265302923403178768906149267439251323626807893902206226469204511060767202639811144811268667155769411685243851541660785477798786928964532081526625166847698510497470603377712895056449135877087063274581659803825528592398309736259399978215098875943734220699140947292435945298884774469105373603683813880637322897923788463473964616181011851870819049586467267124786956111099927267766074559553250893890434443371471198204884022354016233582951003332800551304868348679539650127370257743678213427053092216938345647370391397506161892254119537129310688899528599362298840319779248209571318168081151027484886083786811026877839295092224132264204181137435345092158658821752152679497952878225016405312756639508748279475175212791752115773149663000768335788508648180493413504006795014962886762764205208646233862917087047479682534275046272793264732937650294224313366636959156828661211046829559747938463134997923344955414262269911525886699587660234185649361773428654647801189094077119819943338766810036635039058723072446962456099331415599592912202822005215489439685795083948698363926059791014503919369424486059094761016490478674454739471897236924764278096752269612461013395377490213042542938662839192097028151361721382014638659533821645651807861726412216494076553238928830116020059453329209245182331054412261830697414369180197383489622543665298733798969830130847495611306069029996457905194778170779901002596579916397978512967796724589740528692852815447702692610388333142133975564656660463492964648390383279775272822789017096830915582943256218878123248920097272374666461698785040609419516407063934141186155296709057185233594153214907323543026920644569245776324381120854619419020501214689236895166422766782068292444906427028176111091386848036533562767138715835155755263146922945369027616643259492231309427324857396229546307684977192682137834517837894062603142749016456782879078858242979942902005010526166319925142245257732977103871219561459432705935639496952462844678676012332470585534555293607532398991129080637867303550727596163829222542969737329723993957544438672836674535375170534788515884124600423114335192084347444241509132113863575834286099365357004881515305133566732388806839014223190737911840122871865791561297849860473263303742701053229990010494405392420877379740048340939022116741099782751703580284653847204941308273944657334936738306498323056505782580288746869796418477119924823989005788605657723482583300509570273857504872933573652881934432646844947333647217253372355097519595467056795776300498153814691983854992546099498201491858951310393840734699300882928066652168793491657662069191934199714124560807458192745781943074524331387846960345093637141784085817354909503118493662475103857662602112481389963244933265357714551443492661154180169265370654997043305953236201158920893793816555536689591920751755815210454924216721748261020943512432517422076516723495856944303601467275266692096165866273742328019787223308608687018315304844902438524912496362963641348699577097291049254067270757579736870229266323892936237228819334814078111039381553093390770495663882604335546781718642966835407676370029171669877498217859715873652396536256499268739310000549695645928668711220498167826026646681767194596172947771689052824176437171012558150891771457621136026026323004290018884795429505349150068012568105796396657805522873755160752098458567395292549490030768357340927503744753663965637652275663290183128608147348749574780352401113503390706218686169015990503371018269773585992860410280614633166635786973678186217181667504213349957617261638082264337831289063638255771804420166917566694198470619818978795027465488359419304084930616788905171466224642559618336991853702409941303356267448562211398606281903451492103213607132378271752496609756239925099159994789813886250634126025094207320966205821430262877459265816980086568921049366543659949180563204239971213935245195578799526735117542055628372177697863155933886503109150339913266275679748309978152374981773436025187237982210762334475181575657532188290165895597239562812610477483502682368745181280025974608516767789137458838454533582255385247042692530199006174155470425948167134035376879944726079743610659222537974673310115980707452900677574356089705523553770193107971043678765880625812774381559164188411648623671057805060136813780333232296740879526596122486860976232915529959342717417124580393167698914735091116188898175553655948863241301990143616917318833478207888664030812918450644761316968944200638445306502491823367495707110810444056449534595504552133068933484611185453731871344831318171269095781208644922646925300726349374468750314354674964791995546784914144427082521552740518623584699980736874706559425425524365726749710330601594082465456462050061497609797988958067419624239667688742136802745569727495499188309457626015950784444206584227379495587380404079130251462823330317277287833117768293225768312242515063629346814258261833790240483374411741123884481021136079147559577785964013014795495875177724147145751211069462907821006429111224533881961919434524132568190408738270362382108198903660883214155603746885886486331064611775025856011788987045706723276887874779932666929569851346274349184557269618114820914266408364642126631768055242954471684717792583615562757091743913274442633860156323400030994387445239670610628312193619316139315540963426978927145304354464916204720202117648127566667985813068899685265291767956865801638219600717150452230781900323339046643275907720778126766744103570258737500761246747768464359523186711628843874520745256578015420402274725054524038914756820599901463293348454954125475729100272657566193909949864624472470411710684234213644618668777471292350100750236662743062134784430525652363847449822685841216005927338848117319155296297645903299307597266599168559570942508878286445702033873853204600351749078526859981720953183905831027925177653564306943160983703694738326319245121357504707244035551496947288303968220745144669630482268881758337604599918768639488862767977831287712640782136580503930440233156929108162328328115350372773902368130805443102783597554328413818523178444456968991197892695834604331250847000795737862262216529420977300116570184585494191762246170487680192873957311688262184472427226735452145532047790436437449409373893734602081468237790044037204329500297293792556926842958085882104877458273850719482271336872180107615242648123519567243588458500144622957892800661465320650881203553349145588933622760608828306299339398610969896565996217472716895467806311206897188905183411067179766235427381781419369180780500494938523968762171330710776703399547447394266753965407239412882229489435979152426427025493660165108794795287567066374260766125928478187838210654334072662167671529621657450044635867976043882720857343336819365068218904307157016680392357952938807257192355760748900872252271454562341605759164735810136675253591640232663544780163610619489305079465785440614875446305418567831340937601785833538848332372424361861877014327408944942731457132586285536437805126219015073072888030460091322525533180107739944160335935263118805243069802017600176874166955094479724189548908473299072061530249231539897873596880875932901302197699977668731666069545800062093201936787682569968381457904437574480116647962776115579374967950464647776055043621212998192212236895047268571174913383511501100733300638697581060176784272242364492866500109211667987789348525036235214330988676511532280396618657808327094458319210243725338997916335788734138631177488085223390967043843752686058502799563632731178830216167322953440718902023409860149014604735998113453789060028237374453163144992340665329984785611460369350662251725255511140767932042330091737272361027903745764579446291785808999782926327970883943601111101278208634530213563958046967852000203266378871100246270514827886758763633213747837407790102154043101455012821440865017242570611768071464720273839411690862056694401799809901717545400172788431853172024253639120772281767746881956315253692296545144397947074131907993076350287116653939693614688177425401428664265328003368340201123409476984993275808817190560908287351440445956421322655480113702433187835553576235611944942944567999824531775502998859107986114890217761655128836270790162097620343949245522029341126877369660997899532722885592682612758999419312245170982947644799904482607755583288076413874715412015523647605073309719282181465139886500860326913923190341512902592721244673377900731519824742828073981634405549425497013117261526080540108194042781019033986852322168516356335082429925876478076948938511336009684272892209213035488258524555898987623004310699647603302214481717583667002893776447476759406661273332516555231019180333552945489451396626073839089016062927211280923346286575235957310450795890799498421680044780538613195839353685050726100860479472025710401554884520973873513544086595221223965983375385669649970984401341415165321729510357386841037166186015490933774825969829397795908712205008551055181475172002429202780751074388877943215883805584442505336622981404309649372688420499314484360607511215638504625137915801866715620126896776155281125046306474910460348781490090231761048158041129907063219292572350178934506586087822419192002148382063210081823744848986871280039095852100576930283288302820784259183779293747659781646243580005785745238164722039972209346324872622539119021713404798980932119420514264688510512347191947480806757785605657812839888959002755007691239374345938748383258737016520476997859741502866108762714312672410560059449654676800777400445242144611976350005993212378012504006696494027581529131105311559706182963521045753693145569314368305469519788253891960365399298488121698518617208131909066283472081851905969835658325419845810162821034553841277164441166081826242152485003030363588251140210887955093609403276694397104364617413572084041718926563734676366423471965984406935899023886044542024469978222852598368092860320121260032487986312982304366396860573919426390489070489833704185786680738715698895679967462982309247122287263616350271708253134388504643757421561953631713255167433162502707927418422785177104785171468880343273726451876194232638712317581845254271506094743089973655666967783886490677116404617080691050127320386128735751442205785817406695640292793775927071492569101807892439026075810003393769543624238903282863369905904928456727522641348597278820154570758403817262588742611330078146960265843483127643966114533044487477964557484524680422768214660573555142508770552238558633750386202106921496892231624732437564235050342802318990572204267787195453860592849929010652149133664542835981945446061744557712219827521669172097863839318572692097465264329218118445162552024850406277335755192560232695890553821191372874391433172509303639700321338723886131015068958033394712878077964103820670960642189393957808953507742791774676133110216730485249376756757069745010565049044417611647559650394888450229128857841409748313256852124088763628765074085340173714926603551123870475317718963343212295093687808195538917373658754019581639640728165641695967164463334106794988598074674248355166623216778810373795602813363758681873733952705624854912581476071069159858552312107470761434044120799413211761123480148696653552644738838945365040402784990306379430748153638934547998904768252352494685889456089934693792290165315667572754651762945427410546515862012592291015550909602684749980619168216576512189539634397488010993240043574866697380926035460907586860101633170183076978390703777909004230249586203994267845093477594292375698815401287180285203693048316052604463843249363108720338588979770318644032071903284517209698203948489073384743695983476372416055097649343537968443651254908271097775440597164468139898018112194927537566321045845873474236634939934695754631774404810695945443164892450762116376839280933858055350173385187301553445131410174764808183923502364594939285395518095546723819920673358813323720636119975926623357106544305604805352423592584295972640892806682066348601601821983942993276824379355129894248912676898760006460454254450611457567228818467125958078333735876675042284310184741204053326747328714596648386843040287605785619841947334823503104765328537275314656403441707844118679489717527984984436557087414914384174989322110280652335821130777867842626049867933235615982692567715441938958611880062252687677127056212323828853464145118025712363012731351770471830440802757518088792247545259178180946351382802154488564772529913599025708550967840295143873882006745020439321379604522973632854929536998237072213048907260043603136764600171317496321348335204397242318677151198528097847136053384526496945538587677479684008024908534042940712288891385548795175737970451494283440830066283790957660854731627061623351591889750581419638064483018263375659114355171707411246728003770192088623796840186785330593404719286698047379816246946926618666095687298508985513769663468557041176447280344518321480581746090159292994168186733229455482121883564769844400419049448113198827550211574480050874634253018886452358668906252517715924709416937833183315350440312911376921580781637460090028555505766800051234574308683412323928616852291176746751375380742182233477904280897624483205285577090971813193029275130339307182709650521848193330781326239412452693372669386722774628580386635826905421363249132607972284810295619084515227358343913846882980049820541460299273341682246111536798049527791666192005595783417557342453766986437624178749572624980084308762339077070270557192242820020374835657333113314232707373947211231798090308219163148133587512921081229146886182629145831531963811263294163517806293884126604016812407315552416686504097897094729655692829175211340166240307904528710772069503586580684815927035110572725701337586482266370174981554769976485968342105994212113614005404724400906605868139887753340424764115519494112313901278367667642146087443986381193288808476044927742894433524469171412010131063318301700728496250599817897314839437250813705871901561026617932052383821061535134374799153806772096152688454421171321223563055926892774466374883555795591367540030417537679579590973754089709547221576065837253292415597351317521179063414136968632888205581176408597526563848478193032993506281268866001385007645310276566044236453939150774702905459912324316632950307154943658625917526017977864416984276084566524007813022372777543640929115568750105929400108793619991040919050121087850423236292585411896561922040970305163510562559271259104345171060604920908150644834514966563366451642291572928102851534850554107065884034612846707248991397167019800372549807720483883164972667754291205627732071439108893135608287183467626873620161867006359283921144366284489440468418855436402541116659205252260442619474543781954105478065312136051436800121703380042525095510146069989604895364268936544138247274691516710735846901926514287978387928926544929709367249905107350105607467993036997872181786730461878864963768656958830020095577935103774178479247377383876249295352723887447258210241027036976180755914624818101635597383096561943157172286773647543890378405977929794975655965356211635862393694950409919610302117709043164457363678339920799449971858483840558509859236000789242761886506261498467380354675602025866565255694240112740614127881130742110003159818938914986987415430380768097552635007967192284807926003871731262259316552297857619760494349787774831742209273326095056046720310244182797552717774292979959571554305736288504660814759135738205104977277622237930261148490465180064880374163671537086001490481535662270922576972941386340894710401844225472938913144764128113957265156287175152151547989565785069615529289375514343769628597634661375636033024933264032339438781151734801096711774041905753657936246347173214223595462245026840862514942976605920785937436753995284706101314373881227772407848889364278705114716699718504850220728840660840233813632974066562255279718927479695439912732802950170829160397840848923059346578054787101988143305234649242841573938186060989128472389252014596841467624236370712783840019879572683779350033527446027373286952012890814499853991833694985422437031389841141546443615333080158697508779077881522810073885344876170237400469929857304262684528358187759844350226852585174379882315975457371428847007222434627745460056288551208256249623032773276991253734743971377562475823035964347052131355398936441596586914485706347412015771245731063069995690883849636220766289248583477580731825066360478479214926223270809832635348378730775525595396393742510771090482709456794101508537196854022161182922134017027091473142874456026646522750485719190506265569505598675217625881795745879957315499295272230258060406008265498379910963393674816099763317914790494904183872469860607224638801769162953142286602048059647710608051222450072918781867011856672995764272787939663989424649157136921622948608751844873287779021708591309873960440986171223130765747857611088119818468426029643223195698144243724274570706986292317060133572953686284478186196179140261644897109455441187549424575426295498290515864704611319261624089466829143220799902954508313955173744628518124568396462467375787571389589674688063001914476859394482300851723961588699810650997135967097044547528436172275938854188196625621465630697545422541297142352526565805564056032073421185194308392909710410215556153398185824285443964147695352503831986738062993279853150423116177090468707250476325127357331194295545130999190446305281107330224136729047092648204757239372849055210076307910755720284360061187783535562853753035674858474809416389438613900873109482424635932814985733461401907317954953063687622471061004066523014381973244188557407348570828028285938733608801396403152238500639983505335019515580926687547386853762519325841748556315309647691243981055148358566911876616189046580216144617011429550821801791098731062901125362797682866366613924553002605379384322058580493719734672124061805279478335199230861786488540307108333681733944411487319332903585399512716378261339227865169327599145971339413792065875313158722467820198063717550501983167316417314886727028279906438253546995250619128288669064173798213846422853381109363386887766454612741584390994121263514421960421638336276442949025458128728424050520481868364632328426418973010929635197767075712889035013569182887391926154049535223960944755262019581279870727843358163187425797801703739516712282688127698733771935127599689933101634064079203004877811099024570402936488684901117962775961298493463722296574648567321254214768350659581482100215211520177659776150171947912748789183321739807656094069666444710680484507284425706026032249066793303242695724861007519456946528126187133958765030190752583174037889833830146797389408570403484584544045092950283330217454222558629898011150994883365667194374872325345076108981048716716001194377522247493853006125290030855339365792037791156463327506423448769845956335344623348837350968670773814312747025999095878629353799739162855387908159980618131956631695356168525818579874360760760133872350539921042605804434025968427923702996382310980504757380378014378883934798223653937946522440574578946066469977343248111279840552332719500821909951489645793074789253923775756219876872995057601363306989898831425539202986024667331172743883259952091506247503578661012530045725846887013498669420180299839011656971578903557817076975391755689277488839647329688481863785341965754663087418159434741153680779940315000454195441306680191178998345854819468418086176259437263786623253071609864085171223335703269352534638747926557780882712299966171141281867833265493973523483412294898865173078798375592948703439776478466683352780107492532508726249093951151837333553964784817641352023193425477401684321832287882006319564810866225182604788465132300645653348396953659416972851031003683649413436573834519611251642537536090916433868307782352401309384058490709583800466086386155052648112575633305782247136932490588659560394079609280257900064459940171452294477420830338437626075022457394125633309360646520834860602247885671062868988095166467192252794950446753231004981764443359384759746940918676652291700631756495186385582443618139824691632102037663451052497582215469166809582877417359904020039431633785433970376047843692051106071141822378065231633165659704623925203684375886643836141881999001836830447811626576370238495426774228163887620251430169223498602151632853331127167719559834351195310258424374700923802275577217384903810776476047775467729214752228368135569523580675392147179672862079957044833889930596852455503267067682621593553999983342416580001794213177623503204217576200964199278787256957298321932291856856446891399708407705416409454841297281289478465950399328072317556177381516497946843324170822481862013185901490889245111678928191089803738422473970713057024847392432389550764478142668915030737599841935237961914333029859528191900461592603455726928258217875885166706827269269186870810812134533375569282007027029947292528181173245061559165734775123150753193438158888509211548717836967598774302597222179494204548953997798347386581291595410569751276095308544998044398231825195444296813569942501313192485275581771272302085377845042004663270711970763304610115338559674874580039897065658778999936190808919013718315371194462375372205653865247744476097678358643529652370419595670087158698565333017093531183481422465647716123686028724763322768246364115507112761985067968691225424529904241516460059425728405521583303917484610785653650622432155786836268489656861304523956993705004031032998189339434038569300377955559937237718246981000583499765127244072629729633411220777712369410850364871002648022720768304372995243545993174738526723769893333839095612093242522217140795658634454259193354844705134424493177061769306030011920587179875492363578774820150750141695596821667908503221709365915573016972044727969429440138157877977986116380948103921438872104202546313312057533411997132064836776806578295228738105714553292013387151018247610432024347844463304990144497174160128627417999464083078688086586978390803464759323194917041751603414342793759300118322415647360544290371619469835709703467200208766304277667194879148557054283429000658002385997026895110926609133861648089536240266505532345143102836089156720195340291209931747855766427483721550711844847243850019106316912567068209716255646272963339667451501742851478819282542282467210351157098932767292200958195771386625962862173316583025326153844268069016997456698852011162538100230560588539044384283037259285496365914960218247422845223423622871186671713182570670766934081973288117616098519391891554637306819159896049613165202341608456716211812728772372978552856220015671774253471674017303486814113740506896346466057430025880219641607762137442099197296187511074043145076844356135727536593607260867056602591228837487985719752127471508035442456961852205944936943762368288331034847560988537602292615059191189998642417331694212202048948427550002298347958245991291222525033733961690405038796562449656371599789940549230115203396329125553414337234007965574624440652875832921508560742197137307953578747744558459968469699304146904274724796168065272637441315034625886340921833315631338949573622459141526433024471433220094524019686813367424742615509645589518024189953543758267130748235003011446802364312905632519570017185652557533984971116941258605083143974779455376332900557238749427461631890113895460532998653288726910526287025860715756568872275710953381009890250173657057943663802616021900442783659880864842799162839082047228270983939937798378189386438694443794597935194404536484054252308574389565067447917036196846768021484063365964266507265445099670897127114014204398958396646986567883690022064274266127838034582645400192746539859418172387874043280971945393033410208896899363446853883563110394886488326828398796575161698361997310009328481939762363179524054072856059058658856529055583060060321519848036439611363240946680299467758579775309957679555782307969480026042512731376548624754274652128324772048653030378218726784997245953857451250527062373865224254274531218900788050101048999517034774923048874399487382884820056755525909731458320353163753671226526808913534464045628457383709932382002812870581321513872064073595939582751133028625246340577258087310385202274946815500903521952046244433243921813124050981848402861204196123250164203147806160081555566848386106979924320639258983737535490724138067507389367700649577240933594779386921700483345438800004064581946626112085886605145361405795136417003130719522145223720713796128956421609160865753965152013681327178793150311439115781835010657029672338008001184641433370602005968924322116841699017160710329734313711091898242083949750150535745740902937972109892262362739651646902857904169849387322539413435482257023240669741009805128477546429443037070007635047301136971040519968598425792351776230589544367530874857979249669818883028108228957257208458597329118713868032569709013665757324134045016796254053207554503466830200889376091670199847273150922564078890354921868456441998895196458707548132987714513686867660015851207589078032069177471217185840198262722945667265142400263966183312426484202304127900017021269549118913645475053692247352700476803457036467771820823354611180182561367943640995009471232478779400792893830905660223735355146158668176287127932443727747751437793732413114537551303932089864177549457500969100435843277031010876939747903481393156482699039565934874845955677575849147296935672223350007894010012039286941601015124512352066258585131227274094403454968378993096455490562375459116965817904084909122873465069211102847147672860418481276195921734270537407232275755242396202689344720977690439903839416459102456104428534116647264042502368822501637994093618345133938289135360100798091775909680932748985071363751779401543118784988331950486673574919322618942102164373545055638903435968956017887219299314088712109198858271526503293854258757309610137676225517166457090788449456134407656947003173490708279881732484364105821644401070044457852443347292130976012550738321655295863605436471926833604624702565741599836731165754024998412261322285701683946705984419407759273667179825231658229620567233310315031103436547870393052404831935349411569754627624663714702780277141128478631004764753618988125491609881914194811741044870037091564859750696511468443747100918020983365739340351869858589207906778382134431752176883050935100689762098502116469972752849536201708268312055885402029022078108164992286607007607036352943827081775638362807823498018582885082556017518539773324917299160514346266153574534378965367933065047203536791849858501237722593897711154067967316124127742108215132450407325315541787293765762695608812362171880001424025445054266302234421295329119863891583293333995882753154056026469038717415162742729364541527253175336020458949185816691045078131780692734837475172289344014009431192735600671766274767107722762895141497238221480912718363991720751488482494750023670217322898190190484848559354107372995831767663269012415071181754466983536258252947132027993030935807483438226544028749152278913643911809279780451249187494215188558450383328484858100426968312111175578255577642208988927505751064497278927991301677387349111350919413841384397996551146948825959541865279210089726004163095734938666835508147699860534292743854459060888724393002272971247966212415417130033356864911194371023909848963119450689901664027623255656946432258261039941917908331062850619224967161444746189508850974387780647001659071616027386301364905672314427392067390340963728450222146268551859014497607352635664548155788203705294063476956078467407613785277211363912194350661175048280039610014493841779311770771921181498787594999189874207116284799470625050754075694885869560708201369011749181084535696119292976650837248030861762117735535945244542031482444319453551046193579358167505190926753078128523616375577192307621454071515722274086029503834517154240531689998139794832547252565580198558871268317811611669311436133776370299894178340505787171815266070925039684207991516327015362583898050000939594233333830908622189222940269338881319358986608133755376709415875751381271894647022646485627714953240423029970644192187257445520465576302567979422281143896922465777053333687243066908617963579088432429515928878418921663880704457887914025866790281356157019057074780061438664631550938098636214335454770427950458334961794166335675647925279952595610312440271251561241141830882555665253120623253484243961416046149625069541238046799040977013487760350651622790466954653827657000221581989827769070635081183315973157378560541497521589950520853191609695421991164145867411785771108367060622858603976380149811385882316817649892097501348213054665453934524172250709078882094464171936125899387894666162610950869643521782445895191695489026999144298892745799118926112694642867668808884857875227731877877028536730306629728972904342606120144655755221565773341457883995427232402818069238081841140807712517279252165810210054089792041975636929027025542307457117127726590814784426663287232386563434743995125701393827046624760910923005529566479281570926245214831087928676703165677185604680065602073647644714030952430166229045219467099128633514819989550491311419135832176629835153533214096678992628186675586018752384158564970474622870277985286145167606566224773714750371916877449233413735278131284523990217169910990050322176879461715961747030217600557523460162187605825622313736428395441947525282217657013406508702915529651623496867632773967966572191569632023092500584041561178295742812950527615066319460511378315258478042583886245301273395477803065416118474829154501484889070903592688869041032694024391432236404896428508723382776827883286041947082199180742329323315631065063002975272205918149249313471920295277340488649378665675833316673415389927153129218783856807408202816079698357755510759230460251388156342146325031607059005051486647355027234354420603423250546663184563545980028744704192271679253027483188742683103902994085524191418936098009767432570194731765137154851241886971512101436441860310664317201411119046452824648085230702852560461924792066690348196289589950101487329498652765753474310567486936858886197918188335540370714265329532184851830265867558429687560018678966301289975203880448813990902800380499987430939048865383217331378777547033270177652666238419430716673106342505946731674763444516385507259866010384202108526885397848359409091599229866864247415870781527278195736753540089345660437633116944364017270928210568255784196111346553922744825247330043494554792142139913793036433692257709214474498060154972664733004238773893941607079972155758197177265102371440315192019716986906372091544005828232068516497716562983015105265514504487447544349115154276403293110762006759793918939765947323285714811291701918973261973543158660576771929097940040212352256920342635630704862485399491701241397324816447317428201917427833753862474524755813454650543217921341881690861416196460773311546261280229320301487991397795546089116410352540875291025546229541366303258965238898900780276977437995102023114561867140623078604386344910045340172118784170977438211644505724425475288415068993377756129320623599573621198860572273879832850460038443954002517628981796482119407910641984226675182908330135848981068680258968604691776131952972001512368995662704990115943827528308042621872226624255905564356479286864839271823618485149469610248121450252533441899988615211769734769343552398312395279700776946093368230019455437115346792143723342804585480440825558658488903399484457321070709139054039588652439804695369956255535369332899753983094685944476422833029023955125426935377959004061151655552286242684842494618965999353999025520916974543389396876057232237887028489269586265398870352580947400362574763947386327567658839135002606038691635319987088870095545714414117458638253587416546921662554111356923858516645570599153663066323479441515825958994324694749474538237098774088419668532984709345215240804501228527338565749774289862120105880595095905280851618548611097066788436320140393572368121374163573943323818692215339180235021690294184297588280743988127663837023898644237471414378362903745435007463655516633741682042037409760407353427923484361439328662375175810810044318147378442179534590523624500943708966442625592362047974866996200418420094215135299228348869276561785586297929892082178251145342859028832873875490852607467145797898353446462822381624381506778964011263275252293367573550760993743644389419968624083001403986429039390600535339899550914498040500441532331752516268692012319079532213106146443448001207707450775381577743942142372518566242056428964561283490308512196398782717622921254956918397658032159452565744344476594738807929375672511147862593371280515937115860109848994357055452859471028835144990599614845389001608067978111430030506282169918425792598226965249164156589574021508719087588114998942653857264416207608066595211249384868907392943093588447334820958768006381665971972101943040442513538762126557251490544684554225538021391747903550053145293564525438435132263127976176740651405050460030706097602148429635865854671086879910712298047509343467851950450269698095946278465962787382406276896678619475110208566903210497126384698720534756796507672028019219201385251224840508471432926748921232771346311777927816154156198141485501189100184866917582168805761829113144075734791729711017752912726113587585386473068955975970816366536273396953643781709273843173847901781052694477317466946233455691626878628814967408858907745674826887364485145629220117193259655613701520132076543614791165869774402458109996380204557656423444162061873373274676118908794524894658220087365377149312888434929559709453125377020569911773282668625784108139153606062883376703687742498321778788121174741311836807789936513721429487344431167703890542586237348108373142243205627782458726677046723388457135272715651521523247089960761605221249347575007505217924106650122885342662352045681019366562421622460336480626227892240904714690075054619831426393480818843954890022176873011988659503461619412578694771878206286712889167378913722299453902541356443407643284485806493691524309135655076275224359777588495843032590514302654417850794667097378448436803835820173119910786445032920854325766715362489802979166942584761982452845646572559552636843127747955570803947050446719953425486126949761369486933795609629782342127624264403787828159609041106666656767552284515466916451662768669863113384047296148026298802881646847320520957141155078059118617817355507785712337418374032969920473796217605399463716340444573527006868939992658883563400984315882408621511117249979695732851269699627944921544846868510976059904601282096912430920453539513424117659093222762006828167625408955358161385140913151288017433157218757664740018209273716500588843798021709794472743829868739033680769161638518460827314556416297107508751924618158610883438452200801169634216792695626842051536256968849055488570230531612977665161643562196216969062017456506248546391750520877326799238084786652684243818892902953896967684623339293309106948451622083500094796496491170180167708696861213958984319832163487305055012888405104274589441084013846249324670406041127330376174700045646323686767770039071496777368969076062852239786318600827836530231258875839742495375046960904703282162022720546733981956369278647381145547309270236739314043016091607549695734130970569246399256714082580279225530810534479124382071605843251336066385073847553499844345174577304696699202814283885976522944563534031183513244560001204133369829997548829188671296542990711921852459997634776255942828004071069978226490199394487736198952615148321359968925512547794274436587920679632438433231965158355192361478204765765156611251506731132236809488898733741812001335761044477306787179839008958128000896590139753531240645373754181461927225037123145961433410840543525964331867893599208929075936178628043360993056426603879018665594787140878173611970691277814741837926176260078818246435696659563926890766906460037924018475811847679368519557839629118737406752997075840253524758751243835582064534475266266469409347962647952210934425269963458554756242904020514053130910558285759084691340527520537422254132501256223635861484619900955608474409567658580259016438234108755840095490623944777716156863149879736357292469126478051663016869055301049605474072038900738582391589156139335188433076635537943658626279988013353774167065292854703786085197108504513994223734890177935660789310271039846195079812165344055923174446060549439479639643321245836620694379340673309537686420137433913615819402900516851184762144759646277820710979225548017547352908849619687809601137208975896712300680205109864480937272658048575241690577661573360498615085493782381905636339917281852810535707569015243251900532151268287709901504186561773435768809128111587667044659324893689483662144987566264562589959242362881583857190689785746320732734501526662695050597954138595893570306662401226413637967531817231338643108986452587205269763463757547895248554706818531354498390630536294708897405789572218632892444903403704862216019935462058164041074672171728912646811621897067190053094851048103891363153879690735009098238456694599878405452603962304498611518106486093001620360351460305633403189433941926339692754144618269972830456820911023146618441414292469444398143259495905460868549858542139330291158137531308497325724767294746995428440963508223191629825202583882868271230747584074630773033098801134708163901439173045321707184581259118643683847610058690861641622971759024203890059514549875902982799881884131714435778341655564448713346489154033260741379431355358971939268041061864604427857297248928945532788423351413434734264573236559741536120506144732915309061048705775739225588307392601184278537475415844266205526959821932431907988613926733105030441510976825023986589370925976899640756817241263901678766490831467886963543562417292565426453478530521689057802159497818009590020858805316642877970650634056030572441727908793984950154166836686056027595091293307152991501238584019818209903688286754244057986796255002004605134664875416088557002176001920855081383388595771664615108621103043047312794806169114741351002228853710519743903851501774767240187876967213425068283788144516656034969615679228256212026927350806037915055180481613567679255441083577151512629677420005181986640948502710830315288756143431422843436036921034677887149686582684618810827622697587470345520814891736231531978619731353062259714320814917851945121369668436337164487609917812552956279544976459055064104198504186875222590013841703794866435464765386123970619575636353841733909939514943491676442612344504989957577719457528955578591978223752783088453127624885908333219213691631390393130077837226383430330519562291305235495958394545394265559072412521386607162999934475426541932092240701811247849974377817655761120590232521287523317812565029599652553534022694733708510988951261076331498418753702126185465118777579514110410315521209916483527016592936706324830959015847471826740743719696868461090401036670722601006496976342605167427522366067422454339965594766397858982913757831046076249664998752104730350030160809710848644770861782933395027333646723066721483334996437493036089388976503990488197595225236398233732320547756587549353485273299146007283728740345294401790844828104433427770557446452576259045919592663133634725395512086085587684774916075644213139223437389270065739145877772194442665942049637479813439195090380863914425202300608910490257121773243723071724879774918708575916694521801631880878241088684646767833254013815106023107577345286440060174840153265585593816276542377982310436214490812444764499240259087759288936299108939778096120161961691457682839376341262538181247381791338153794663916601747440825549069066837626507120495248025643169157040462642965037685756674984323142452666025465744472252558577951924043467394171534226420012795953843393324514550194255265643005434897143614127154861067128987875126290402986415039387396022332822642828276284058090807726658851189630487779580725107597721199737121302148800877992150336731400675873649322895488867245629204458998041892641068139571258872116355771970548782588295128727870548318585433545985549383042714880038201702021141438939376025886651380996954475883326252401558474800973989721265334021842152939410185145081653651690696455442274093428200494553836355471624378796894478061338971689946152560105015516133381582783824321902974833485514311099621918610594446820609151784530566033286212344832613192600703735415723069099118331699347158735020126295377087581290896417699001636420404590389761319190945840698078994716176716731849779981641205499830962644908997013513739961883073562317119524393193923375894692315310606310129175826007493915181555018328416189853862148630500334559168721325869347806947399869956864367244452494730939922300420974168098111005160041005961370250949759741059700728598208104301876498369868158633855256060896529758331542795830851190622315541218382670152417070111812488361126830331239455696630155675400503566145334579116673319874192026920770553952406980712570970118008367564686853022569937198755947183239293523999630019757728931021903223980385199487588086209493608591441538201964954377748083647683369480872391491442665229239880662441510752112310491153824349159507046569906461556611202710612352978458460392559897169732197021314424975558271656854772157325505977648135411537645369896983923329881807228460151502374751539765862092869390012711393984507380261115437322801133669785510000001344714758415108419680158107309334312750024198007909961274338840912721736345767472617861741991259357790002843740657315266905675631802027388836561284322081613894451095272070071713904476163263550443890605177569402950234799292498696904795091956467663440690593218153967591804538088347847285631846511004648681759832024555392884496519393090794759443117828646812008775208810974001728546419438176035026556147227917432888776708861233865372557430526345779210037077727171164127640248472887717202282675690027508634230093633273436928193252409116566034612737280372530407396706244062143316732648057785400188879812575043807647380654764445728997084686541075063795804785584142576997640853103936490383684883994836056118361225118510050436556101297440895698183213494841184633382491267842834159746483071265631627009289385551840299663735172310792139724106566290879765431109139080993005940168267925716232080881723339764426129216296853548413071989940266626250931612079758542012500693214229441781690310044580781964743021696237848697390788719038997783159265502700192421253757277123254953725508496065564234578895314332509171832136258310296434517104048260891891473665338687911654106665357850234795492627847366965156167089140479843385597632647494365508704093872661916656083287009220265453513020199183701839123244895722643737466212234211753197048555227379161256431424502225990298578338039903921325672748468387825851171513325519898502166016884347491704393178857120514351238101802145894368165100377874023379331957765882261466723936542264003640489809682803620192937766266094297502869625352721862864340913155059043347094415196244333049361457666229347281615072568018330763169369600045987569601799574977156054980033897131579388394191882656829882136185335046595822152480979005909255996914997540890647432614394621082744572443006064121903762114179571545678357466225780961759391346247832472530961462524775690604743941408655756874301687801768047362105623371634525365688142038834220978125065530127074801830257148807844764882903785214257589325609073247525413099177526428943494065377646225131131511615202137092326059162450671571203810400212662537260704991474620740672677537409137681885016262039247220282788438571084202605524749316651851066993386836548578689248373525812605812044126818386144971754232469228616992971590799664274599101353246250667863750268661110347232436548880621344982962726872138963612905562356037396318234396046532851426473759371445445551360501198318036928193482375844868528208455983318762592367179639659362230240334046596506462677207719424840994794341044383701725739040309857023404671632552963222264966523923977470563109274571272945343585344767453390917702158580231575048100031542683614905589212058442776667118573730920343496049903015700772897063584250291627269114697564407071325454276411370831297603186620235177424240918644139458097293900869969193149251741743688627253245563143678738533297875995126890511399985777236328186156150246895022347705130176734353236058235073920204920888562309804903492897743067626704408247873773933258045330577596506684011203507714975640667299918883313543272653149208890333417250915834966900670298162175997504827234094446456116631728737773222865643334757959999473412158514048279404193181341179166001093661159664772242392808184330235751751808722683090025610411463514924792907812197536097433658864806356114007317131473483897269493060085958656310406575174092300940011700284221756648661940591766404970372119995846841077443596295373110401703227724039098299512967007507466003439343628066560727627445237819208967451217003753866589939135770594198240796423577493331065333234983992935186347977755244414394462484084039549407901112127403688908651796674156992874502705386045448148893093572139797478992763039441954945791678846649454972093371987351105671222240100468501985098838841788525141662655973699759450592066013471150203132641223555376452940220695697132880849041968826456499001653878227371874718311200028506776235861560431844035606572537873466835665200146075654155949497112375631268020988895650182841146802346120118638384998455870761097165337093455700397270195917684812148166748683211502687152586678826757295021896053716205488541579762945762235131369991743978670815775197102678847884202795292931512024568480601539870347034856975278265771256040630274461734772223206915231121968449820387920538320269985027457975951015696302346163484313625141737363333112386755399300966473254777790271716118981943457859597821914769573257091046221239339810813951426584845017726005921888244253148726466070183521344353862185414572253443347692619123045275055092716603698709563423020619098120148085228555082622525568311061963763590613129520442646944134237155548858418748269485289009781700264600837177846234925709155471966011536382103613734209797866056992331132572498559022312886964106558277020150480562878360237833982217319499170792978515821772015615813659863680993188949560296554674222483749714910451973798673220849681454905425676633640714112074796079838171212969447314482694087352507788759553699486744142668708885830863743140377284705949190280198821471622463877010936944314173269198266647975693921637776148198493773448384041180087857381971449808493650818231437590643622835552815122534299837878572235453130252689539385412810304491816463454909181090636222619483577386528514298177586408737734525494998881104753034948057716030871140217381791454279264927645077699305918633180573671749488344452853330525680424460166313556268111538599065319304284106536415292107321708292539499226193871044332702799083038537781301669965814164324861912591497392196083622422563545358820735858740749044904073150027715922263085321375662823434488289558215636973080421527186788204803031788713575747169421065368881277051918831818993727754047781485600877991649380123677955774684972769999567168995394515623501843450536848085277366339290597419667560463758618999092542865049738172244132245475269416467034950690215937204769443285392814057860316552010724411032258933532862598229680572767064481603766578623640591712781689912633919184735702416388757480544252068541131403996719151913705245716324429025368436850485753860186550904677790751297648747980750234706466345531148641517964697337993537942258380586239456773977759796124786492940424193954368692153185798416392768888235194617633196257897638434400911125598790669461847327082109904883364229663649257413928356735160273103058183200819195122221723479127430734319297444050052275020375169338494142832882347822197571234579837480348088958435750698510492189088604077951522350295146495098122682884121198502035807458038419054066088445844278806680137282855826538177721650966263653899466650448063760015755803605230430318417797064945272563667247732153412072018162212653361796148659022360379644249456370334250218517625291913323508983646555027602795633389354527359289814868871435695053207718419859960267514530126501747909813672800296571998234873140543822029868024752326637097020140980431996577879683463788691233177295894608517160881937697552604488053955040965225052481851496053491023590367140168839870883127590723089977774014896163966033437970961265078766039485557558671870795777141092351762115124611226555064844536387275698392258730910550274285868173935083205566236853598479630635133803143576096903564709388400631406008842100951577550241362185479687738002721997571704453735918884929213148168612729628696917803654163114747226940147776829847670517291427888375296302462360860851995705379258141098911660965187947588300584424650526884492755612548638746606203078640406138429109021764060447785912246001301977706023931362778764406445883738201202208624168948921453636338144942899011305221953482295928346830310305896468205485538935157122285956891567767309850341293124069523512016374291154169705638797381687857262077317189389590886198141375027274627344938600846048979712964854752949023745268512692757718094086984087778805646724107344076552265791634606716794338325173588512523246357171246525733017311283800335975796501160114887700423400079182891026961777993271728174903145215402793217944670167881568385625590031053644700365454438536423136055421495390805684443706275683736682453260629335527911276092644480535144133080868369640147471447153929096032069053908808846437389959144552768197359317106138576328795345600620312748109751699769722751793036863031405110039013389575850559481768999919662793904638941147745838500529068894340237768607143336669636625222392815722315705060274886477442818150744805575043284218885547754415135501040595456378274624462473739813712360897466192118438995673913540101214836816960308474113471421813817276495505406223121203391799582486055049583142437556600578624538859800297315911468099711856738569450910145584969213563641314942208204216159309357991177903753824112643824098056014706077036286145850005043886746809434656588962178951039324039780428084936560015089017374632285342878063799495258455098414705662258815295878363106605785187452605048929195140440343827447453139292925104658523630456489860945940606441565627507002856692802796061649191981674390873733394889056769404467900732260567823928520687908323353461109806002014773174603358606129540332478874670071075155879428579168469989286516036587352860607665824293968304459361001640526193775768750398178112938249253343041430608445014222450948092512019763717455126323514666514374383626764295389759060752827414508901165516364234493647067126263887626307117476971205822974401912184468764139454462853372228360540163806008583715277837564758355406413592469850216100741919447576808909579975893236391780537877755004962745000716702984251935135943186741945151793809882660440992983470963927681072463998546503374340435563848902494678522604475706961630471178421236534889780045186693009487790591992757366354658467012449538632503360616583872023933043860275391371987610611970734507297150078004506637957560522033072496086475169675466997154968152226875184547084664578407551287590483092717312512177771348572501923016677468715324315789571131548658586906648121894279085003424669446700351816935130045737379252432062798497477533725856496182689290808056658645964938173482807333817969761383125178255839870872670168435606253032802067838139348080294403049224053299882816071126808709374885326159188361995961896787609519636039520098359264244849811330340330814052105446424887189651573042436249307187994355980118783574877780491828643455463180074073087038792269375996834497361949550651572716983270138065630955991319651435375317418394003625476716592734604456300041268537007893478531808451806501801538049485700081416471095521561703404688391835505308491050848245516620284029726711318781392529880745121436123946248284914271199801938693784848571584416734888232557242525470393196159338655445093240289902457669809959109120884693321795241915578880437314229740958759243148722541148759599797784211935344571642679481760093050886049622648582054194885796729040660584227092164003613093697580922206683217676719982650996617209353514063646127121435619513242714421848822984097812529669379628131807006528837015605244187747141357640251792676687071375840775582818405537499096643962913908262149074256859011790051009793793249498731889006639688362661865224550538308571487172701648563196866222243842188466589257619442156669947484796572088329158949502123200076123995294573579414922693483705180398468882671538080568226191213416762911549606139175088049471647956285510536120585236084571110072753268035640621413685661819292407672532844483470556832097703217130230918732680492781878949955160776127686997538556399573508173060802471642765821877103658188606735986359080064963254273760454419450349185211289455703709090874838456620798769004727564439680658111890256653148046823380624919866306737981291923698229621830087342886170237384052076214010620370467120764676576689755307617323936323140253803678418735866680177380488975686943347450737299568986015430465979761276722402531305136933478921871917078940961654234931070510089861347003531651064974139350093974216289956834262520756175785670583061363297894063397423890229809345787810026633047843211326873321095042543631600636761562125668294791910766999021650796186725335368055509998105823364091440407630969052394635809826592307911065244516499320313924517903688662118155587200392231950082899194948049955514719333266427217283866603534191098665423328407979716430852904005715849521722596163108632900934421919663096665933803393628213673856488753876118421548063837998996682859748383118123434867414241414602729616485686703445109088546194059604190552146028780848988540448226152836080819738714335789254052029247040094184443540079209602496545467509137116325539304793004324480906535705596265399565139118248918969597798867141852431089300552240407240507742872237664690986242914423827190220249471100986367692820388124602471758093633302909415526931123821262149762213879453385484465030676249521754948008519293689866356004675412474957062281796754900929650019842458749906096040373047620353454547006316974724894810313896621539101404317683739054761826021855152652668232802496115215348493947621397974899779994166036248823856846739614552946621960556952992754331770654272607565468289559694527867981460098532657077159198095033085918243959535781845763643237948310098919417633351112380047526081619323002556752113789804221972419514162396934838903360228756750399668653084119556623707052603636029259331963284133337690968703140505206869626107567942275813541995144068919498607946296912502514362662350192488040829844882110739124758495697951669434041109567091290618698089970976882581833908683031529525475232919511168076581488671073570085528826087766986519436698168887298298315542407197292926927836495304792523715350885271771492164212117590636663177994948644933932642478325337808414442463190406357133787665028695784121767757655865934957960945920106974035184367782661884199894175835585359322604652635014303852074672161500119573278582521359421525458430658535054109904308259699224803099107141233954944236806817216887269091808063990061449958737403677032085593789917571661175949827373661020242685178109116306787891412617509563664277451576982264989924735938592908021100140111787555353391337794810721687200417483171895665433808784202104466242909354876499862918902704857755019707253529165323284065198959118030008389189537590212881935864181578342204885092288949519136037654289552928126245451813655113313958277326625203448410307411321519628502716212066825812159377134532705281448054666411895389455962142646047993985063455406708689260704271700163259993367836202277906505860444797708528262826612226024117162074936644439486407095938247213364042643994674831044489427182687275868600562510749109024276863910424710666514482529664216101519039610225146901615525335566969298798832921241419832296551670239227724017160580088102120392215996668446046137970494954570448976009060756724917265112545081249739083486355734003142179260098434931470999374319297878433141237015252600563321253192167526126863190107653860519265974105294139484851323448063419359611271386599531672255997328931540071309851792362090924013701637690984002765636464901033485924414318676876959078596470786086094826024985349032153239656959365542087709826632864371557904412398610349967706006727243428959810193797287976461631713925308629184714357447503161358807924383517989254713722823442907445973674476368406280997717986165860743327433826495530579518870931126139560097454424734326051671165631138076247851966422117884579522076751293571958504821180001430377224031649267705722859454067785572148323821913929436331621424922352143165595802065582789023749698507950329994454769767353294390906827021584528790866360574774982583156531873045196474122924457280434767793771422052088912761337149373402530668567185717644409362067903435053981917944718281615506759378477143312387053358395714220729038240160579884143708692563898940690520905502748219503308960025053574470051360864460469380390842135595620468060553732543322045601647758592790283737990129544556274501768931113339937364287120686806532652412798173198010349903813741920054778305841871497033198636363872749142672670021591517730276449244860843949201917641528780911089416648910842186305799260565706983004874731468066234516074055445296967362566302913869717291598842598625792617875371977658806590851439925735153578300156916972434468833923864855693704737579663788152627327684380427927580373090824028928627932168155325281651366652280067648380561432313572772692077273692617278631971980648792169796910432649629486623114436505065394560890945829099108530642458778896871836001844876698499382216161575425324357015285117266657016402074330234174794047427631900499074800638018061133859968463223589295212475294088982820023830623937753589913437148677014604514685336021277285198442704045982788330363999882331204040146919568523466909088768905530451330431956375599277061497783277507192871938696494485730111036119934306881749415449413087373408212970242748357568106033459618083208572371002953914568357691353249131239866972928888953145901559441193692670414010923964790562928655699603201384044759914194695311721927750904247574781898454636646269828038641792164368555319482040500010341491239350382669723331394883570266391333134853988103947189608520070315012740636446964470815736028166604596398325105763448934434325511755209111145263946407954352043508484052468147306913644067590067111219477597273035256338114547542651773728113181624245476241850553969628612346523065160227840505002863206265052699931801123341123283415783325602146876921515412535840432987283607544675841920516368908124537311366285269698296877338871357450091479750733405505023611494541918159431048288063288091953740026192860741839165955240983073872278034177017219021449013331299524903513407786619783146238549126382980428859015321838028656384489626839784193873017467406687453248440684626715797828300031610801038440912822773575912341929028813888594464332670055949578451387416478029058242520861112723937695812122616094182507432401143544979058195884881680877514551890873396751683158259808540331378186988705417545662088147741171773146242480113756326195023273271854764558201442700956621058979751770124242680569178317938503778288593536291963257898672568696316422489634328359291573647275208486072112414576242476642619593944367854690403809186317543834545154455621066701765824654427431987015444893332848877114490510281418792219182203608082008067368563534599208767042357915624560441179555150112354809397547515175730512740891355377910353347699898491791605591390242190186946089806319861067407585452201403114053741612306972038226940223293935995542351167042100661797624298596488191690531981571261035420156616876608730538751063326217853354951674325419621773448961308087009876765493056152684540130738998057056797058440584237266628123271822354126005358184334787607847005012669824103228567650778535553105179799271499457122468546676260687579987431616578560544847457336214312294840595618609152865049529769723981399135158593005691856548265179741638803493163225705859573994755483114968844088461732729680792531802852786739101760606655064247662155127144741833247065831944773687741070254248127057862617975269525246747876125237974029186456474294652616578041095180859643271999368643723853472236076038033194251748440545573098036593760194031475194003510619868288087574847136535802117456281937747903572958009929129108196026396598570125683555696741489537737164316452939222052987325722732772588447183752301216356096226566337981698410187452062795713482174210328398374026949187100605177054277945080492791837537400591028682174914702588831277036063829199605737968261935875112478018816066352163465909471382817837277406798145700402368235798148999348463411179508168751046158140607670659124502252649165766414631652891678992046328862972526867959116355024157752495621780083376725552434918692079815722166090172139379257924082021726060101204722705761739587077729664993108132485229326483053528181727037888983154528604625929471383255232923919761785484727393841722088256393489100459453184351707003197105282842841733001456632783931491372205345707507766532216092085389357590144432008186939058435950233967121970904619670868478111778627489192170378221035591087833271687204804810203671975331131203550643344497164179819948825909988147479407156367510240059910584783876843502608223116433395749241743245943517248141346219227210153162053752854372545475888684594112484468876166243471792489185701286930423994589433873838153292462656035922383854171160861564182527727256003107229435151817765011128629400364250056403742174946345614269438097315474839258571239862357006575514192604655721084666751849037865296743896593317949753484561100836284949571529334765004658807523402931033689407091375870434474362806410292134430100903310333343279907943780954744238418589281945636854303604525740568649302683917243445140634231071167517404765983033901038393091546075193656808030381292936175682808387536464871777724606378970520242463843871853440408395498672109248555256402612269443351822492843993284513554263161870205186533916639976536736440626822431617296914582516576353439646704292611880997973217346919018192013098065471322537442171082865505382848027661088542760104862416800992420536572967149156082814304747404612298635228313379985948982028387068417475561370893793154921180506989009858068686862990179369883736582270046536428938884943430298951282597340314038629326489588147389578139335316867886736197165056700432845263545347154514811867866357415336483437059670043473468142595630531307876343723544413131017283938741845254279556399305043519128329014622175688880358092693286590720402930295060363098481608892915124531456382966575631553664096980206024691819090247530218911081291945707494540118155735704293443460501183900926404684996772398498689320624213604459424383767966354444981127698233751359977963839000922759692833949060279916703708237601339589888565890243860846708600834644133519211134449344825203445471921360007745615208109377572812625253169928643343971328295481495473362372047186147318697682264875778162088085278236769297591359758679139320479169622106651177385529934652927582072105792826412289317941781251624242388468502471390600773685214776219049202813832085529223511599960634943152086439892721753023674342271208950036744121932014559829504272690357399222206092439544092642472253563594648463333540608137999482006943982791101259097471742085638608404937371135764966273951439318513443486446964063926635312229961519647128501490862476404301621645637626455852766021186792152669542972979744642947166462499827089839357882114528875788828108039839007499380303613038619059130850738743079140744707303010102571717629285498582967459233713174778539870805117044347840221379603566514214091248462978851548296810827369643237078726387133560963899895499904648753786697662833020203115372419845157152830650088569617242515049541967504028069421680349078010479111674160436934575339254254850370498566626202022399001416753966288367254463876640839186606596234052748240634387449953813662335169124501878749041611744900147750114567957519230260394757446906598051875167133122197648926979205291733460248265428401415917565171485844184418561160288619006433632000460677847439239826166306030393519194791078376816284085264187798400700810311981358081111432126139520647348722911885924603585737656661443183361797819623650097911557602325391369398583475995833981573480759617353055730087252794472274513645974985915956639496301194183614664557103666456685894059922184218731293522065976274577214213599567228783595749869317254836963470247882989576619034928816564521818672577578737779329807929682362088867545076429667772599507810769362701713731742936428593481866126975589620486069941364729522609999982730469405627539320944421033369887041452368001436706460882742338822964423944725449791454380024446461851252878984005227086002223139115573406792811532335747608158463241425517085089279305811341691112989489509157957470079295029596352715593168914526939747182970483603882373861002247996331954575190085215802275393767010707071759139123115010203882717672836731773326170952104357634331361272957942055150552951098218186406890993417193503468338686369060923083074628834339872480334725715947825457478920392596966276077843636030790211333705544894446822052667248667398989247312350415678010982723121189824265151392648433642420789388658897742734703663001560912413045797368070266395431571313836457798077798465171834023310811361056706891741914552804884426003769036676094586598313125141569615574131525110240316957618457513434077471527737669298356329179167839606965798933355076387139884660743909700287879631182426234150656057266355798242933870665413062679006347501494923414342679402535296367636833157477951037019892372720678139770612837860067354771116337212037219287299164910989554924403577361668678770611168431628422224750064460204414268167482706517306233618226809621651366342122068200559570433091285101879576512447668204739166631403893864042132596050536459846527096590752704417183637747746302453290395429245640374446747903817963911227115365408540650389206841694673216216696279798872571969620674112165561562854975230959870983898024509971392097864860395161878395468846318750586024269402883719592563370462907285516331459338919304394343305858185838363677685400793359809843900846578090240501688295480510802779282513283533745857146267688265709706291968625061731540988740873263499499244421499631518412027023349920593158701832829403437097421220282798319019019500824948184865982558529989121779026656396051994517642779750715183287755078253009154066596556860839818403690344356384814637700991939673659240972922709115418064753319035694786325103621704413392707007397821542586965921276225988348846998249825054814184706304306973874492139723435708234409426169173616050723235105255022786022995268315201578221382230282762757227314700135850862893077254594616416624658022110483560313437765501893954112210846439357783113995227999439597544905269741156973257152432893209648474293282969444130880553880569141635759454613006150269934915918533589093415584790655336110461644954230118153501802986923695818969000333039673179399563012890748422784227631374950961451995530418019968057283001180291543849178654481027338373224043271533611560497070595946589234285192848487539199432837483047624543600191228607313153657005099363073380216761031611450695388721452317131962851876752181584285275156945120204762170921616586339514085387029338322100192669970144427595810570387668256208882500335716460937841923040155815037066819871933036831846224558351601634185398976370134052406581833021890903404361042626858162677685976016906451354381428890608398821628112016915535759175642595654971254989883339604335476827808315123912250233803654980342076929099791949943784636827323579449408472221580723447743344988816685029138980203124019045822797878487512084059665518487745184880425740951950812956901451567203276857361636660138836694312701202271450181635422183082010394554535619964589964385870883391976702859080252846332881515426135844117694821999070861551127945384190705414012411614913941519033859996650127797279794219604070848220620163267852911379476376378815073812546442974112239202741667913856965953431649060711096997973867384998120760829301681774233665318398888175748263436814658149762566280711446140558989888283822808992573172933688234630503787583205041007191763063770475282740494686095612045308011238807468259834776465336981617298834853193163920032272689464461697627654747619558319905746969571203278797692295711342033412182057587844033971859405501128905431582014215057448567248451113615254068475010163734457118648404377261014012444685653657726129469821479346391877111674020607801525309823771742806789352896220876748962666265912977699291685469321209013977525495685407428720474682103856785850729930096291398329751950120987322005433682207285035088824682825963981491181484759289553403433105089476310127299266208622946234254014250010464147538484536742110920152015488868334940755427150772316291444910615896385395009843194537222846212360373754754689607191334739581600918425312390988237852543443803413564160157664771032299437752864019066892039938032222505172759683576286750720380342294871041247682394111607199587668243840690029456030585299047122717889653179710665458562996506175679859165370693550124790643869803253223423755818434580263709265929455645898076541666321267759325574618933347936364773363952673864298977566925316079985011305263381571836338375537073640158682092700164421271912378076721494622101416345410322740013758183936561916359108033302394097917362680158809683281180263678968194647468274484830278686520834743243993682384571870557986691948695943410559578314200516610547796634124552825396357670458852993761918064112826512687995546679863737152738717278097152260332342725100852125579971771742606797757318662060817969266992525620364331909123871362469415796964882370401098392498328412495869834729604203934895278812178557400103772669098130259992002285309983523473965369055392657236822588933131185420624985836816245653990913785868625082323737980512903912693909333333950578753976266742455886261013144216263701636028221795132928849376336258349474965108420518322697913532852449569244610308968148303193279850032890022429281862911235206051110725187389749663921607038007188698785479853739280526223807652193839000309080924021461076330231547363213733095694422036769074629527703661566714899312005767134433901490334410564881418733423513386207124675170862323359840256707054479549603666664838586286857181392571407253437954133309529693072444794131671034215830078205982461262585577563496214676324203701658220826931480065750425766820351623539226835005894089696143760893647430080059816046447165254298662831988522950684656481774766224370514793239915255844775912167234787620398265753899659638025332853072911245218816177533031295788672554191425925261749960493958715056663388750690739857555027002818992589113386781210486065557056762752268081097909359098946182368726861118114948624353168631401106632553452015213855701754448294203888302863649003614833218007499962616899907854399760687677641044945768520332434677747098593354383575330530212204966908170704521243839082583664151363034611778631796337294902653183257581383660838987553522893364196533957538502689988575721062993883740719013557296119968738493117864881400042477453067849921872568645166618837321824007615687041022012331934681777668471764185177090764265462844426171218285867271269827471261930297019244201413609896815736028010560043325831758766500845953247634980941818200497980178011442205583970230955812719426937098333609622495934649365138060911609780277001840841464101991198588099481659966755605251224871776252931124233053260301233707211013161510331020000525009269767593051383062334509110070568989612076275601410415722923763556155845029795785635354698053562594993920765455124279368349196897476540199668201770283433093440356027175086018259029978000782336164441074175055251804180455962807473421844489559155714645847223270634325014893242350287524784900354506811795164723457888032010002528275618909438427181815327105240412712614756446286853671033299383730968874667814556179446481538428172564528264145773008149087236122592240349418000190993992153768432037645285988596586394281004986630008651612256002295294156328261071372781304502148652201008748860280350308268247523090713075484970304226784646349108065946909905827052575877498130606559077514630174597369968950221481973231346109944889490081603960328372393341916592357027350341222109409485698419346960840111065612657437686038059787840549453024761138632874831776446109703724529075431459432899921973784167839166829625696561760362031288431108109692083449841869834726355303700553290551543055315463830995547103423206947603689492182693366735789025830515216515132643484717251442555412938626923888973944209106832854309639221109061500652446478750659595838973677276794192292493226757782677353375793627860670096049399182374848409830363588567353884150414292639349977134548449229694669856376520295227333714951229685775030593431843795365454905347575773039846819351450256800118625265035135792354744227903994110572783275610781991214484896368556582759154122514651716826504989202303242909037547681934450843945076776400279672027120180375909464967592865478511409084322434861948623613256169886029554607820822385843715160598043435536351372572448002084789809682459681338672159255467592357927926599885861270063989773715760475501628240327713039048662281674981205290627112056025254650435301730762861261146821170359059114848711599423791656290748440671934607523216979450938196861220666105504481607335179738624101018154892292406191787292853100705973495592203743162244876069103032172232057413713610198859518206585314100452130947599441001726203777205276176268262702136331437143825209487009332990268189208783606503489120486382156388785611855946364909660282197723158575015026969303622669673506809496512589817860234536395209618083129403014325709300300643050486215206729589068541278595504678552220494127134929704113275244604867777819955142918263541894904850638528882648086654237941299942040272515531466363268296477159595865167191178265941998460665573455695276545037386763697432424556122042498711482392929900006579724045856262947178345237011882655713705929380618444582397870471047456851754033574071538470971798647994019217053176825709436535294063786035723065901226245082543657347480826922690657796456042783679907484133110274626833480815641265122893840119966746762785769572369967573831985288402231551683470358862474793664889610982580320387537668283520394770051479950607888119046166376683476914390067936444217832552738965219039329451875679223008146682146051423184733845682515356379252350492997647937988501031659703929664212827815329306106854753682971637216634642678620689954568470102927765093931292188326058888652903930058445922885691755975873291586979665518172161526520150946137819482888121363946156330833434435952165429654719359841742587843945865863091429549629784541808777067759129592515817049585474030782818890162019003373181063576030078407182476133176003030976491975416239879569069027759790172348076596032308111339477019977031595855370704022914027426263310200342657867084098017576573410705189814128196710084623466666432139942288599697803666468618145440554935782902341014425424509056815916633489225885683879083302707981824375360593738206780847709883830203821090386952511872201392341269248790148998913916357772262288192200751073874344268628251973488542948238670968239196561448592208498315395463708438615566873219938366154146562587265185413380436150350806073219546155419972935376120252866394838138046737021917619472636514327202088079240254446174541267503117275160227279838763551574823976853362560602952418313445717081959008757846059270434774636185566223603417890202599353949942853887265336248014686215731878559351519051993843510108772026352606772808902024974499018763455354139692608803142329407833302979359328112332199495780640871682205712233212434357785661789449248666765031816198961337111501949831289107133441507662427233734062224042746297906111288110615186210212001459518423519333240565083921227621951047089437660069873148722331328205352760000097017130718667467946188187922881323414176224738811133837087789338592723083951612763937536649852581713374811461238294951171931957440833872316809361729710824579763057163731294037341284942731566611194541764613574571002259694129792565815996985264433954033426374136448863425939040166755661012393568657128434312443586499224181540521156932127177924489449552923266653243963870083766465780476857880383666738396102738120350610571802443479221509096340675422091569027657401186950629468006497286193338733454070489586055281509079353330825793826989182788963660721018216749787121836729233782690935364791849651043769611389718004883869138126276823250841020869125208960951191139259360191015333669381295018582039402426730351884161181801708444431616167659188009073663431132310541489073340305912745428767457225180266841175785933739418443970532630778015687223733095800124989862129977661610125393362116014483779107139629342568694131489712933577380969811864572793439802169057772062768913921811403590479149661010934229871603516607645665976535700892671802467621575197670683172159284679292652469597600516932133366802782266656182311974397191686286807932001157066277579083291664955738649007407738557414353143795108152131758932341378495278016597804773921012139134158262489610176857364793546811843846849757419388041985890985547478059546311658154922228167584413428953988773319228614546678513860587987103940280707440341614674972669299197499070008659506520371401166999515298266397061018239254852704586119857471457571485996119914863350837823624011151039681731325622583323695740386845108413461004378613534690678119112679134508308475243676397607418271076902009804582491624663480011760648988036670042635021366065618386350927544945358234767300888436435892493774403426818625505903963545063188888581049065867946767808988373182974240245300833554578201432927022365634882464325552021775459379185357635526310933482747221148926268860495904299290654414896813017158736464093892051059664058787785900199149990490728948085587888145148991316469093292440934197192292105178280278200623065881210130289407835095546446410010574362736615648563254453501416735647907246869988618764086302897259268013687223575345841905345390779053350102073133817183312125269030812090701601970775294683684046962848456292707790566887187227700106073601138154922673474358286882894461502159953553380571610178415605486332448191595241220819691956779667567466774906761632253665935238625972915217143497783011773514839849237095695055570685465566558465734979456416818562156596145206916326893431395821942310978084051734720965002408923826553205257937539754084909830781929205964420685960097046087203580702745867859871075531084333187102813096888580046408365306884330925203468938364906204929139247896716211964007457096658977740895399776071659794650491720856706677037056051256838920804064725244417228008121701784393566419616080134971460885802435704839654237090676012469957374457216887300547096803520488433441824521045474686666569490537162720933651101592891551447204979473773426120339178260033388971829532879955705114740839950443124410275014976980750458170791382939272652811311121229500247593614689361444140545001523296683485875168198872560347052186232231081182553803421258601506605234300505399804559977123609242616706432216091993226386597150579335998195826999027357128631050450841513332808773996251180522177013180897158616759734409735968621601891178916875556706966258769841098442982616663200976603812888741286855784327101324000604818249578642962973313878702689162275335502786471339927367433296510554683032505973547907637794810628896826118412439440188472042692666333076421946037386625154154983302668305580744983633961816209361501343808070009673125579701216509356288872763260687266775889631882626570378326577985745425049194463918700621780115791432863372186157268247370394594946293668050770602228136506344051945294297206393323172704341697404153547359131795492675774112353791822284866474631878235317190613383135691905081521543961993318317720674481144592248252718569973728113927930447422749770691260428857356617826504609486582659065131434935705492591605578007770212186775363338841466868576162631957664184592724761595220953981782237784013878569377259546581376848341773660188015014960949251068019920862693776610667392805501871782375899150244110352610775230093249670109581490569211908050096306491052027586692785424434948802886703849235688260421185418011726411282727779450756354670087570130013416045234874478055760035272451518655007629423647050683747531184159510716266685217598272377933192141826516979661689619284843931750065162501958858805847779989187360655359034811824984812878360941150894147448537027352215089094865746151136462420698953385386316863751996609618491394339478189875701278999965883966434035313409988023062094588426941104712021919400228567454334441251920084876667423254341283299409462197028642239246639526656198520570501746632259559272472995714223603742328196497779790602343301342619954489578174335518934483501152503088494772962814829347414286499962657107230185051166809009060732274943586857339854713818848741563185321973295956098755602917647292201735227414606787100054230037854406683542020127408130138515314224503892126129395162695176973957958383309358405816296934602826567537836888094708319861562020832914340615433976194354647514057401346664849911740878396005723339892620812158485505341646504643493754112127478324864267843852919637584436594110100169081088291034740062141451475514377272805524860782299002218442599504828626947890709736701879095493778562616727553199828174925918326394393824746165066762636763552743844303194570477254765872494002239398871570762580084738779022689327960441947513299509042382679620541210550661588407429183191072667621427242180995789867754020859875779669260216598091742436903870358784914642712262627414388952155148480855512005222407861617280358310055216031594752693377058011042164210164960161569701795808135264946146333478588483103510739038486123439583202164191649065526276604671977040591580968407786093686790142064783179836679674065560091024936570930777228016228496082256953823682993470377667554377880952087266428734871255118022518580246227710298429608455153187027337010057991781387153846131004093977285670246070210847385879660420924637893827141810352759483743542104577892296066710389997774591705168793098096604114043669858400004096951410432911480342778987486206563063724589880578585721452535162910150777224783321726737720898945184607050278317766544747938886498300970407936189920557306695210050097411783015567738019537823148511658888222405903328098285239315932168499675522046258091994841058747198675280304904033004797803586406606105762182613558968102192325387288250473927761373492044914603442713675324762350538040577673218707900831119772152928030682428924403968541604951813901596549071841205351401674036847400105992000846807698221439329937748509514747532678715755744559399567020134220195228390151630443795192290536966499270609558803265689458946558443582983105480291457925773449114187738256174866480240762001536214878442291205459867380062696895156645779307596808894188451698931497897357712574595175750730789293417807874095155130009900672265031454829422438589781400403677637183993251309814217176009002144026388588606754716750305004122473873174597393081016232429332342763296224235095682921917373618070038151254923261436941453899966169506662018016480014715130920036637075587434399251499646128628425303540643744796523386381363444510593572238002826449361660564716413651838482980357212264519120426264372341913533724806377834598651129325167327892158679233653932101772833831177569079710152887909564068968193451622091829687876057322693812245515703106156781389265177625926546004313814890650419476524720976251004090059975046205752910535410500974900120350693064491222509513747321356525521677899240088148377059903454986301721014199078932683148721996266931842882079106681918639433773766921790595118107630112500969937082876196710623882699830460442005252078747951963644651023002786311945650246546103216839422887921979558723430940663306210732796025696668183746533000990049412479634028300488626860426339702013926472527421243938184017571500913553296082634946358256360711083951639699289346430874174931975352953256315267699875655920379545859715239591291544538624385318912229415981166283297085662878690749472893735075086833897280448991912121459082376596641153514319261681985193208725275916904765463873976166111142026019060039608006951556979239893263701886857995091745232040163870348129948880984902808413263809389605992883251484272810583118474585476982744294117817412269277241540322721768521222496711021698078655445629114857746443842235806623326222510442277300531747235344289241211580567610151003259789458867012770463175497713116262054496454122235312459324313351074219914188577365699264055683254310492871709786637099986894524751842540930889670468508674117069100652986841109076254560891554011062305941485613065060070780773822971855609344983909894622291165625852551416230392900296823451107708008875611918031996522533803360541141684968304162528313076894169710125852841174505883738664849464535521751177941597347932222263619180949963692485312809519790756829511632906065510196481211697116874963923174061419441618883048892319785079160887346545688169651517448466766265603705483114100090971303435473808976256517979096005055128345498826474185747768939541637855835420074170837306696669889693347637004768346574117526299380234863315895422713549245383782133430886337484931531399007102763474487582427507073223659513479295131341406273638328943388457132541478235455786999524542060428456806199260304877589952452984528571203561440785970408454807888533924655175528277556293868304421272803802570878485114885177011745078239229247329680469049129900652094324639763324180501101752176239391891028937785048203989808535287469890811313254920758859006237089813564462533109363644474202748681974249912996846805034610083173250755620654971586721374641378428220841843832651630272693835177568208592403302783323515245251085057285225489406898049882757559652678712257803442211678455944775316638818125705380537106365807028013356841330673583700758142809721567356148243512215409082417018614640610765064024720663801413597285886816036258183474943837239268049400316617447371370303369758406383005179835016269900364272759542540823933331585701244561154604088264724150533703247625096765354260882566703043041052803348624575933642700068231982767394265590891713363094818709062139217032326979597961099374931461848967583220124074678713313398378672550188001276865963835289851136935404262525019845889215809604580255573898879556318753621168131015952814772352341705773873981335469145647352542819329925805182671344424840710258841231882955738640665387494337557241668213292699947323458409668483714473709244878439994351684301156270787308166417045658685619666925411015407555355422116974720847336797829318531573164922464660272238897763582999178775444390881887249607735206333453336770376575812891677283322469122560692649483146380190671883076105468236751667110822116360939288460658620911854554645564647599619610990334713803293999539494523470155142320263235143084117510600931123366756866386019825498643865703321785790323115853854483947969494629737392714561385134591783004232142492439354777783443731893757074401595000331094347525790302031152374682606090417554133860855305891967578796907994975601788184663764551697714774859249655990257817195815483842363569918904650256838908331341734629185522836870038803371498727832845368098607176107194766547036576019550086398654667500629853047883630588743008908074901242274499282845464849459805814117638040278047894639484725308435520366902538537280139221474300354089959129887593943833577322956709536211123668398869722307834689733117948346001669197145830176957570901484038563975652015455539795247905963280967329200621147183779404571216476822003903509526085103668372661308369211276731370186061550870970095087135577718011443822405670911933205585210186847643863387800241536870901897825144609328680670308127243010592495317205351388092104216286908203443932958891225943939448423284748303196297360603580640024535688245104981507538238513068737601459823254002456944471718133993415826084740949484533658903073175928504147234062264354790769508166652878171430296078763846604797217508662724810699540284665432964117612437833846638119007252041342500274448876866027635386509494824626502687139672004516391434555088855017784759824888402681752928065177537231286100933795481662928180788875813510911512457063280875652704558938470829585426851005296379916948140934692450265156887967997710021763125730357053297241437241535961171726681127701658754713670669813370384953366821129075011243304696214656382097925231971204190287479486189690740530505871289215819696133490292719031180217681159909992339540980151935792420222985521544060009180796475021018048182602668892820673624155187214634326561714718738440762136630674571419028968829644353874625043674342940638768712164635175347148273976006779561074556563992836083687671133847974550014926994008675642896585419099967617801674523522623445888420486852375039189501001272106409402818983839159226141809494807236967845217514342925870718805481750524805994864285371149240714354577269467415607793222625912528222116470103540436503699038599704246592200065002273006628906402150973977813385796043515209586213795480701133888293190453570728608030547303443478095681925635222015028172387619454111663720629231470203747670571873537298319846250437414002945879547488645892466950422365034484162179309697036044239961918938391796898541494740966377697086117382083019272491552501699302272340947530280516655706784639721722975243801255628520413631231408063264279563325719180162549663767924043059273257134430412702448154588962976970448658152711654309801551065657202790182213500046211297465669703875982916853102097358525655703543134457724449190977657981298440348015861841432371256977860012492558545355593589733354070627378810884639991216467807736740176292880283156849010330026784383219221208335426687317476774107794807119133652799815229433963155469458170774041920229669987459745621178942536618663004054524027951149594239235297123004201244847412262971338529480749091115274132417655961435955657897951768982758360728182218865001110603967173299297797542187736884625819853353966470586978629573800733779555824086360841393795429595036364035940855040238178509396708254189636638892151049572547662916945023958852065641677722211502454694032001388311450254185425806200998374082684831948593316330707506730617590587721294846564421691792168529630539516542292153002513304839157015320962585262964999176839109879788171921553015167355419698945815712050182172010980705383878124927129663003744780879895699121223404598762618819766554632585825753345428676893142557246000432755992342219194256470139836683989194096251811859621545839141060528685671892511525834586316837868702453882457008594340268070444515019737072887411719265230383615880922395689255574372412097244776276737382440375035585977227741022286707816603482366672460122659950746618903104882079689239166223650002981778314643097984947090733712362191545712710095242874409825672363860763624763130769845088981139605907138552814650224839014402040882120426886274346403438590269237576837922708020183239013090969183059632558195868492367027951222177811771270070457893469248967337689924278944771340514744612344864408407565447294635487317258580229787374832096182684772953477539601790931027336205521757293142264950930218518834756768465704016406824966714102572748811443027147230394177773863942856605527239923051315274641311961212231504263372349777086854517032547006014699816127936427303241556422167855434210161199672476111349218027022035302120113278617951124232014585252841253504017432841800833949969658644994274993006960684569051539195465170564935134754734134375026302520113983118401893632387541553560827310179156365753930604749886446832242724911523437930881792734901692570403302982506331678357455186165955562530157690034633507512521277042523246061375623882476773481574545519819650492990744036483698791272492604302776014274315079748510215057649800860188612600859301560880448646807303739472930351087304167318359786545428216924910876899007001150318612084605787220125469862901116259604287813965232410137641051622671966920664609530198350283898658802924715355899626820198213034315439992033304599195802074819284885614447444580862197144923405542968902477762985861697934475689944902290810297306621258348874351437195875489742655738273006445736491848550514139373274850224214607504177181217564883762614023974088783711254447836910382356585342051620052083536720725163030857112418843755147317735982000018694574274484314956826943227012077823758724012952816241755334451980815598111477062439516866092852084943841094143875497377641512191695877255302729464931727281007153687269201973283760314759890115420751917653425639459840040628311254039842325435226852324253670631781944968019991653782984038873760744540106495975629701788154029424752658295151123992549081856946555645386317336905368734589196523507009557911122798478838766948238438795061359093208233129996559625747719502238905193851748726181172016625589475411723561570612352560579724333761200796360006579958668966239386030637519061062567393107069128095389628565462262347197166928626591088123939601612076248158053700942816933648649140735495794171813408833269420139147701806646222786739664900169117851909743540864671360359150784214251116084046687971645817501308751370043890183327000675521807061123334745218045406675638668528054779998536340117992551412607868360907389903902024514758091649989570345157465919715495345301734327664546799516876908897682497437875055079210058330197232999261461654533630184553115163918941386248340073225813645447209818469600495627861851725447056659032089230712329166737956278155678096929522336102946256275314476135739566181042000778378974188516073846441741216783989665481298444351132063929475425448060227106405428530812174718026206995466957177438277530162555923643281404158326277775658970742642024732684114164813450281098465772205313705179247618326448415254902655923317975359951849723263842316853571471514382713996916092564166983822936454144308578077969725533558066905073709368858163991171045700807486138041465883378459151298604775625436721730743020081972808816267461472630841803103915429935473045087528255399136637708386226409481440744405168292648030998492608179075971955093953923621753333888379935852861077391294548690692073570730377500667555051194253135245331535478073319754321621154883064466582064967109213261337941326847718985959661282693060466692874950895749358605144258808995429243323495520314950296687053399377491320674411817776396022262428922144413024430892429401413667133892602037960844932935571566881662076800765054475247211662129639035280707006659123842474741915443433493131580165781606711035746285696581130914053547795707392959818690738874431713513967534517216465407505094893339716961212808256262127929709879483522767399128799558532179773271463116729797069317291568363673081452293596365191405636985008599682360058469366152043159370907413241139070257882775886662517092524624838323119218192501833610031829356694775019591980018768417894974210901420073105015179829181708685470352837098794066585628672282426456768656621007262391902983580067182356240420652654073921702595009622685800616550222177602003430759791964103169713545166842402710993841611491576552790603573113181578516989664253216529292738403285128972954428706085775179721780887565370656455795484876705057676168075726516103543619996229941705251843116727834562750364306174896136767856505265467070398229672552442586871477830648999935462453824330981544524468635945992975525618026841783724931099063948904088655968921398984486570897542920306506771859274830148981130587907671300583707544302423170601219679062290866427611020007654187735018152580507801385370606601352520782203702803906138042907348131862037664033705918821779930383059376613385937855272620687848795468117372475342729906287221850223871223941691808957518644514568681294945145672347536187572737164853126293874995907184707076955579887771706956851404830069310004389539049459083621073094573250915684482971106198395169161506869543323151157019401612284385958819581379123081387305081695624039453422038351097189006020305293544417562467894858387270289998304540596202808260448491674078205000155896929901454061460137607169569223448294045269557404176285436156974051234300327292220507859306419256473267907278416865023613777149590984614580021805830531015040345551132052483135506722660926366924557746629351867506698959824057305382021189333274075701058280329615243778599253843203975578186382797790456126102521858249517567922532995179115980901846292585043034154650630979386787079737178876867336187287720129799680295933084862053479528604857408730063000533884314146540106467960455589998192245158962294331297369125218756653381555969736165501687907620369807193097764456968370429773016356764416842432859189788460853979267155555365582249914713282159865091627534991126536865175807805421774273725536239296753492441707222651477886544531746456530386057381710293103325038011645940413017605768351411809125986770081431275684413629572934509067503418528688368121831610188911742827095321940412311177514615151803748453714841832119531562718807666957430761105622210271839287671205292664942335203851090299931176787419226676882199277023890189725105909690786627112263715769701268508468779968868125220385480412258279867759873970208443768561159563115765485605308147623874633846786499943255158809816508467550830309765104672209021413394485963597878742666277063375530344120777781378961229059520631619724938489535951670965710181898662413093885900958444835178455569449384766949227342197127925526820144479199547867182623882519980802493512238689425847507965624806555813275591611847744503479551277564620529837113000964542875712710858810292506085094151071763329514549555531206774627195836399836277855855678528962949874829061001944653988712903711402669047743632496422313032731547045431634552324634581524856723738363347147202714615408876550074844324377529626487890657678196033695017677516648269170460954308050297005169631288452985221692069622647929628784443229070573469490582478150621611880413704820597521850589682033389640400249196069043744713365831676466020781717982786854518220183098254272603934207759037839910105596483810964913086348430341576462695403197282982329847517472316416174168358796021495326779307747379276521890021173477502786026105774990598820683481908301536764277849937052480635255392525086155283939821645567938613449505123195837894666671456776520079791061212336301203672050176691241027472130606883966938680246464349689468912142030390464238821308325674989906944903123296817989201866911239132745647916506505654032148075615069544377737594550588153220231773269937612284107879900142472968600661001432227795302713896167786852382387424893265068731201205972589957690138560207137942853734633690139579847683217799195435055886011640789875497469789008749639119403368367011984867605509659805531546181564512054353024466967013344435441728147500768736249349595545566855516197206298966867734340927290825014440283319690828630156705194106208557531870496885074088994232052933642038048613256996655385959885135758640055604492145709457116536786195485180715143297614789773653216471024309087485987343004177151623150017486418844758216347297187962506236862092319612672874771991471708672097718733444999947734124087062324988874656521399181631376545311358689371645133928045251115417509244442048479122195119610787309817482608202397096254572998446572671077035996960270755186024535186113803094698679295576094041378388892087800497646606567389958847108605281756206899461742514744599561216334611582622978597251723096179330188262666346522079515107255700356346366792907561503800659214328221884728319395962883351119796033863570261704324321937767175463968954582630199725779592367905073282893076501583717748945937684749590686949692626163811250538104953077372471943975977736281372612180616474786399233030993030707587411184883410233957806019750247790331522946382596689731272021794103282485919335069357332574480702374903048058599506647669377749342597645941929026069772857009013682165938169616357043615783721351172483994376784558544244484618582284899267338194714237810931948846332535004101891282464083715568401951947363111583485134756592120949234752272678850230215814748388638393317420055120568048888472777845422066889013417010263231839037339778666722561931740631384162634124329473380306511555001515461664627523257423937781207025098717778275073714034017891315197025170001232671269274014344248507791620439731927590049968314227023946266190156461258347542831712925040868184519769259403479790212885448167386671850202325149902910744176970681811600167730745034861542395966666412826694286472148783951815657334237358315217789694684854590125959631943905287574082216346884530200959171917755116723415856908561975266168686136163028959123418850436950093699341056159705095378966305914810472032744959828213340528134666382516782280684365964501200573444861835821755353000157495380392250686500782355833727280362537365841147677560380311884568381115164301495153458443116198562985302175001020726293013558063209938250156253183848470848342697778375573820639701853092691489844910824998565200795281332866382280280582109544431780113509815447831413667865266970707549805376094330353836373338741653956603982427025365256546216457220213654615198802390241353430901829846605304886870748421673628393153442445643034899513783509059938897961016708361732226105184551396097926697294384933500358649781911794830015153490128296705986604266734176389134982502901743281616249090151938211462938058845457030468187825824535260786598209534731644999156030959715015696542962528341935176133667979649785387776819029058834339881238054035190524872108499922243565610896359374067384304991506636595028803364986732738320995588813214747001382725704920372707789489407492763389907497024488938112744606577378963726805026384974076280317890493168022238961492210582083634304857554557702798774789772897554007436533336419454920891531553110530529154738653907665090228432617462655825454103366161043756734848649431262255602199552389357263521982415065052225650220525966499149889296436414017065817475013152827849875651641081185021546270028151833706139411625647250945494480044442598262279718703071008153961797780629979005213931441796478045890261483826175763434250124262780601538810658966253448524377553534260619490532912210338207090357968308388705685105642967445568392623314355946366578136208119921595674591624934054975290683087632614154192034148202616686287904708796627189748173228922192292413455486519639368606366016372902634459590863387931444631822362743525594365771639125038129764879258927903348835254913799655644231398399548316217972815510191397679439591265607498357698695870995420679056125711763241934408212583552911651379487824612037541968104081481189244403396134932861539319424457867460344172534905687526049065499394234313271140988212631707145747458161804454935953830394993649900920677186361978684720411859406828447803936223676489547713342952285380468972081401432688652180852906159830446049869630320328150307797571315517973367943451990063485938184593719525255395168803552782479362277611792950629707572555319330805901756367824555503175240319057448830446130115557324067456624138474853767602592301450256388238461229732242260948905291947933501917519273102097316997578807472499770260480288116193095801465570278150020945821343831124137870305928035715245995912045691429143259560788644371097139028872904037984222705543928382292494981306610038338206043035032347892068778533279422339220820145113927942214476651046411003435648063366925613181115071486677446519374320261850034325821717443801574752621953032631687020874689637573910122455565134915048454287161072694527238397861638699620889833263218968485387416529395941148890355049462479912801060963876325115832340542631105892886271702039311562522588201263221560496284654491624295475552621716026143283155384478578717525076193157144430284556658960303834016959464658728855324669578230763035021511496657959888758286715782080074587736267574465390102948521779076598939239806699986513253093164042264962264217717268996058944628818564096510046488536607534955829490217234891417785767778504160371447558264619755676473720511149014232447763648302382204725997767583236981359319947856158615548393136378151374890849038006344774154341987486896248279777740877313328252371023128473536699246137052953616678180054367324519046429146747058280797576903477156185159225397592333279935978913773917471439516984631143860029064476259057335719614590797056438460190291010621386553341986274156372015619742104595851489909050378600373310783663191096499441442770037009952145201152405411522188652485075045509636133054770840649271186727915428020975905216946776126930820878048395848821365825957103425973301972998016230858844930094093034713790924800855462166681429988440479966170867833558408101347673687480845410308023923659639221458993828363377218128628385498179681416678070490810303109778200522604311440223209733388411821091637681204981579965834087927559519012217900424805461341537583304978590503783296298248312530168167648687099926701167493633182872821170316281694150923029538640966059848159224109918519146934745518648218010797479160307594800128726501033765158152893231234286654563603436798115729415418767271862919777823751862373810365356991536519126464882319422561051917533020306776236959830386296340855825403299907163412782017973711892532852259491433865656378150705263395608689941805747726683359987656612964251300989128341009145510957519544999984652539526819341697011278201695392723578033643334111033130495073922227270849162964684544342777926905535329876801975056857689826529855601009626468143574999845674058036200774291329093852157470368310182091550561705712709251445355632485765343311420731615768854893323897717518998171506889301527409835699706278185526221366930589450369857003087775914766619526313897098797930794652164002065580955701861537612908643538830667658824759352764057941904177550761810695378672152878331501330069127638132077189375152456650272070096729558819713852229564353079982611458537103371806764125825402826691795358495265361348983590485269124963825332478505921359769373818205929125123242180942679394662978749838337510294098054972016494518282660652783334050326575746337886649295776476435466827550145441506852301503337406127059575831261989158457077166509180372157741706809334065641954714601988906802164644819752348040193379892591676565550378414641630918337189647782178600145111838267935745903560411118090190883035693768465272447180493578903519760454547506791904447194150873329810202557532089680774823661987573829898804767735728864229627550867521803740744400591501365189060590006772185413459233008200577654315155511780312180430024128728186089296675853005144241317467151982612396656406778816524907616184583579588638784350119060072100432178549342884310280877417318475414027780916584244972324161103321065474180194231072700956693555760001123679147837171357685238710023029293602767994219638144866383061679079318067340171102628781839575948467492925507909913470475963068843314184011875171071530023796213948268406526915254033316830204759537755510887483745113408877016688495408698957619222331440185651101726263062455913862821122478126973868454976867339168221600705025877707861926904405841027363477865213324168692226056010620856062113392470276831970056792583996464769016538574255415259576941262587084115462766197627908905742423473927250426993000442850823656994861120981231300862812947974329020238188118194100931897886320355631277921670842907474925589750138927754706495191531625287175887230121712078595480308843135018075526102349587625242892986760095153602930527295568031720911611350998835694171539645204692507156566828789321731381673141062041033376025154427166620287609250438368610231923820813920416904071118694380183505187822727835317931090024849913774379739927958401360019507929751435813903577359716002389055280052623516607205658387675939566848549692873104574801033142835896169767974246452351660809541738132996425247113187090027807804584327987435213821336303531332389296730649021327128913741581198143764234651059362487928961262358675351040377953691342093848733444226336500777740353160270165171154602375402323317402196073130077198515915496583597879957803630514676279512677420144002396983735789274739870823451653681175697328087168860064978780264351310715921310902643406480646205780204431128053152022633348657434562994337414716266516910461606001032142598455405069350503930643526909916007004684715016583268035740211813518172775332578844459691461377001384599888403891699954776972097088650598471457089325224955736737686342000778104121588278216868813691890845540795919937906800434659924485710591864322167701559695492925972535444528758676135371597760463747189530933317596120968593689818953828668943864582148941767070455101821958182421997636616329689371629008930111286350100137919388622778941477875989503498675816729202793265517312827978249379919106080323200688352842977280654529282788081527633120176452347621764130269165947089188960424173273092789961102031379299519125201774775721008782933238549830714949125850814412428548889066527968176892548457515890992389956815723581679254672270371051866384304999868364944765393660081943180448834020078020877488270545730216565079767160577532068325063195320893781850073605751123599400466831154801402498711644403972145078880076285858096734454101977389232402967978314758993389087774208591253920786123500447284650295674931699580581689889708595494503628609559457782871404652700022184377507605209183869171440762146909858329898796492685545788431083710077948010954606255127055130740879338721600339242005800239024672609673279287635585827095226921854639189208424808523991711959702209645743106938560284985283754913294889608527353028551156672978733386281248924947201916866080544171756377549948922927327165037799458326991431544626173467020374701784644929500529403374907551119802654079008817544371449919234724937449141807880985994922741848581545560577006692941908735505968761562035399702151537553075224057438628925190755821033403513183529199858665996221345681591378004769717917872043411134917291976406836059856947902050082101786865218803215521140276847028510882410240684260782652933417433822589332870395847747722010049154649707965256416845412966925165868911955780355829664388373175485654638017634263174918564683360070234142094958749562606346525554384948136861688798882115174037302608570800135367134486668897917903640297427827055343993095311421475315123515343339951382093895768550576049639733439146327281258217510955181183799036036342257211709460519890416124870276367994610060046448389675602041520457038814584878041956813842675951981916098175054722881371314605013389001372125033619482024876297590167042810796557321480027063496429274145807280239462917447001621161927992222299585850874561885405549334967594311701327956087676254120910036201949069066483308395439907492636160017752835588627447348254695521479836702836554116458706562196658323444291729126882441823666967718997815394414440302287930555619061691495864060952489763101181687823699283011245872006521934635931439820647041133219676931076338273837668978831290768628855279098506395147895424737477668054886209240123542130486063639601197664592344114505565463708498814998056458150807777717258183643212472761857244303932419813957130160795855655547632668045513591991024851598320806470339946585550056623424578202981857499998924701016874332343165251941603484983668465289880131922447163371493775676732336988241416621661171294506584458328297663379772208420925380728698937878221817101665750125649364045302030001770873746451626208886033488105604294388887315872178302021446347431656589047306379603494945426711805567039478550841509308527331408679404653139377648012015442327468576084450558958327440064279984683018063136449528249639756219909317696750671936645686984313793716955940759989350606963095547368293722819970553603631421257276569787761511682470627517770006939403049090071687233280889777002828917317404912356357583780617763001612532942639703147115999019114435232027419428639787852269873999041934172361932940070081069711705855224438178516350084788248938599467521261282023622092314878436414538485540977570342522833618810985557569092046527753815173755666008215597281775209474729763003611770749463433017105585285185442315766292253783426409827874426837850930240994881135014205472465779228165921617601774569341297778661012342751654833443904142791723054656216447496142974101655851078549192751361193193182489914825619639907341005954301689067601966007597356733674470500999427100495757941282582609257997686853487484357743273643226197685574976773842196038099296834133466443123981786495010915553762138549468852390511807970565781376316467892639897389118404082796126720319040432740160365549709399753693137842808416594660686292654045544606442499792727976661318313281173473736577237543404388542830010069785452220191758728335831628885250023285593796576132806402925719968657358636118473719091202308182042245247456738976831661843307452185718268425606089098560446208003430395340870934107830754143838399599375823246350613366328762103742650119962277416009095234906984938082421325549514423882244945004946840950115780885755360219006164976626031828916433458041084358900154716517307764376605242398095871629167985397903603197742970510094767567673447337008582671452811071979479459578203596327803772620873096131045870810573981851960150602743152716773923407392584655780853593767241791532550338005614323439570944726681525787714706913645135705991838841432059647533801595413287153045350753181206994855568487412415177183731575729762398526890465174612711594943199673448492374642460911167500097830940653518388568407709487960441082162216068684611598648831728116139630670040190610884696733550055864665000900581751969109659964245988126709543221900421363413463057560722666642325192053732343689075892483221928674086755212970934041054182405073744009654699307225812783597209377146970950643646634834342140753157845068485464943642954957864035884710541197652564847132690488758695854311770752437464184607286680011068300788657431228778519513397118047424732093236893681806180598637795421542397760253295710551016954737178049374065066940880839223481771042596775680449957186981958725671871837598180730933538909490044849916990124925310708229758755900472236599208618668254824468790883644057154163212903083631932507075127212476674106510577951921754482156796682226441734709825134419628893257415152104189693672128511843502017231250101438723444892098941690834880272956951149898596027548253070166314888504390835522084635904830058080822622902437552330486984290100560946143243170347283737618125109485611552139670129912490192466191806354706540150153168477642173282797984959313259533357022911481075516205549683053299825948434761834507509595564611025412213782746024795717887478378920570978864476459779693286841223041766077905858068346783575289985352422871564100722497320071669215370449777582858739159705461349929298401496209175544110842899267583768696355495653831334861415974888006608253245445949499658967125395096246598665309919753692764781773056596319412113490801057802643032105673031136519999543745311377531788880656195301999184924572903476101541421409507338314941583384469601859649498744030426709791060754140154841218172389920173745147917478427922766257283634802946792905722842092613603822540726664213861378635386681376509837904106249928704658423231295574816076324803345658042221749758139579536219727235326472033467381215823421121273805735495882724960157698259413451823252305181227660358981488241189654300089982729788787566540386326242205003198287838903449488065431955262793417236575229462096865299089140165181962971390802616204707075682989263444751943949051729581347135932486787092188129446495022599663858718582254526856361757863065683169774781800834402693449742091462325855797356621535085511283358762816509700944325344690763203545924347806378521565213663656972564334643678624271874613447097066940642643052721075032378718803312328623772854374394946707294063511454841815754725258338508666502968716357836658689260257783439052087973379554082874956523654784238096667353675823310494185735858085151169211319869821774915387732518136835129302881684816413528652833017980482490298605315301076905373647021336349952042088706311060486058364357660162479772856570531044157260451143127598830760035224985841929891124034023494574595985915949004340679713990740274515541843863402696384061034482035208055824467727881296227316417917352431744819252163699827800498056691354291284467973889666912976678457510397108463041531495851647711399361219169396112276677369021585593475360140783958210524691835008675968920441255700281247512772772806110651965858680110396568626890867162992029345532781076083984659739813183919397880528661348637949044819485461538462167172912641830125666522214021171760996646432234385639546097214861886249238814221006295460163837990149469672671702683738433770582542312346284303137986161678146762909372920196065287998165068399176858154012087183105791075925881950893771381709617538342738385763549084610115389564478420090273244454976842144517967187300947816380965323811785766632339065497574710212484825252390666974951275925329254652832208460594592874768879530972764740373849516086235311626825097341083531110192143473524097607072230853221788792584247826685557095124894929307232702658238700738231144668729790100818507106611059007134639436773296138879345311510021132639621576328748424126880204094500534514860754127232056235424984181999703368128346900909806528745579396542146636520458274428396129831931889358032178741976326257025214308013277653545050308831996084731720504156961478051778053970842552785355942596498190299162272618187664310998302799316575028197896289344600214444528830276928627059296457798660697419349195280150862191020033459693246820118352543760506281224102979223009299988147932757249894982378335732062228876703027244377016480909293368759620921631866375291660870305525984987107636583553297695051569221734543625936350410738754012305925126938475067643600669578127030072117004996394874936138798396720641695485463091960026767878626634360431659897726117748240239442815390781318467706896284024208763469022878926935762887078257190013613560456181802329775622391312248911182267180115222883209316381008791409422594979925801337488328838821229096999560665128021818270493487523438010796095399561729290885479484443910795151369590009923031659206537379370962448602768276139365518784291488412540125187711452306575075658277814837071878692116477997592861355793164455419144775180389086739661052392508708052313730146918710583149686583696050324376105855389847224546946399244014401058553377482264804405684049868947939713436295634340767288958555853318773839061090740507991631350004120765403166878687391853876028088950223391505205426678330837979870063767181114773920901293507198032678215247633301012183426287537200327755955670777156124972181976796561793404627504747091539398965225984323497716340689362416161976378780749399533418213857475717802408140943352579577466220333666229745581416559930288825579133055613413766479309593205875746131494494947670795008634049257790333552815625629166878664398873452984794448256620508495465071434580488295459575813130222988714077217203499307785107958604040634407489903782385723512546477646928528480155012404313053948741368089990283004356328763412148886946460592917868159354506500360469597421705590752522234460071168395110869064505802955428339790775426593726238953283520549050839877492372595697829073418306356779859246605058697640181900217830248861605521672994412783497068877600030164296523835148465263678878025928398423060359266105940765855685481294695982061935861388983969335432210559083869915521977310656969466375405321800006147994843858650512356724655732908341855330015217324274938250525694478986457672075398676248767939611272654511846701440323810880075634764850315104766693626048764889847030439986737350583636159304869360723119244173967796060526701138400780445426602798547418582588400906651717654830516296324193851773568410623288654587685976441025198518241573399337989940808846018038991425349984753378466542693592334625786546800481456985243836667856366415211086658803972287743122727457311440783482493752081644417841265430992961888628622119525532250784888432825736020410440171899116695548454332599634481942061752386643001866933927991605227303533234790482058197651061630762723130812566550162331506604183928878268263225725060032132614322525085220704212596718211544862604618418532077057069840900666646916275383956459770886791264608342058191318652652908050315708603465833293506873470775178433983174351186639556317746618155849954266733545141862752964735899915301694447486481421735273820174720948555788288682222291713863491369631505967943205072437691160664083651806411696815330836898737352524089969358400091940723936628988029119923458947514803076579350758451841850344068384556849686045427651545702633275654427628283400765508673585128215217957717633253075676836947115634214588270174073769431122513452683354389588090932212886233045781825821337655011468781938999295317182915478400519320078346917534447278488646376334873028176414397186237155878132688475391652852992822267888382931698646355506830944618703788475248566460571033540933863336470118455260350002428481396324509737799410159195815819307136148116323110277092151581088612418870223065873293366663935257111480076150185266970889661287127760860381282057911713847537799116354667667252199079949393467382446188661048072664187527805554606084838132262100782431061016040997249381373295609347951172949295669096973951994567892330300768846142894703789697395274007102133921904272084050994333123978008188945843692652120392552200727967345153123904649577787491782186748056593432214298540525061315415026117159903987532202203594613203485155478140466110009249021307294936479326373295868793542110232595660771279605400407836782437685706741644759630609315417505424626444906425944912379636391405790284889773198454755196013711738957608956590449162582738206627237804085479967197668056234742989281886752905576023610639525119284060990556694371966691095223127194762755016183772898811360689531890284203416782357835593000355587638123823398021481362132261898092615929206730305494543467285797945815235563449277282127008125545368545230070136450083622209363823606735632349765017493992786629705289656846541955018701740716497615090576143832581191520286769094323840247907313908511078617691903653182139248876915717167143286095921809956402110299510162080427459222196576163486781862789765300180269486124007864437783377156362355882886420952352385727000952976060170385918517158792608935119349723681308496542782309633220763469543364270967279086950854308036035873601965851863130647082331337073158396000647325301789725156312779464047620480418961345056138061868980983824044923131886326313133846706563181894449838491446421438129080433242480853310135540630522667922249575138895876367277141830083823441897604331074326073863263267283695419023281662312254921753180266898520156644115298953467033877862356716433686961202635132175743216873271244087464715642359711990738278735412463537881764134566807186743449212938003475581255021725206030037617306954639186701646198435866351965836028165005114332114749202645543254861134346780822066456619938305783202052310678835558743332907502847054746404490336445726152153383770085849699674475969907524135314309172150760262776114316726267197893400642465130610487750008924524762916829206911249778939978745627744455825189036410726749132779765055943393784108202986342356537261132404453844136727968897808327601103950865190813964420921858632723607373589172257615673007566136263641837291631136542966974633536518777958309032761016174856961483013580615124403069526324412266888297828374331084530541749020227347377501973738102662780264306571106599196676634697336032456914689302952304884056233889379690215326834258022099423076583874142856567500632060197738537990456464842829572993695121436999790956033132565707147821595581648740944801649472199516277699835702756365104849465022431412543508696874353717904862137217412395887774346387474993180574121656227328546363088037958145316388192382371518705147050772644628928903503536740974159120462643417150794655842671296484042769043563224847983501367248757646369993592538242116527497913254926666697239153250371072093700437636656534849504911647815331340325937042136316261482873141962231453392704869638517845085526542975204440514558763678181006648095573173656145212230463970511974447966204113988243634440089943389903566702657434709744992518009939079091181952321207339951105999066739526647085918476221543870201686190542552108002232193511431039755319155385493758513270664630414849054987322797479520808720381574288696169698725830846887027066151845491543570046049162277937461197652655050999791267624862859464948416850569157000609834983143424554303565594379192083787356175453339957733390182190065126093913291004164297411336268799591644359909749679304711475229078931847697557957149987497401604261305194600265974672843678015723021424065365968336567278090482598801867693452544990793395468243326510275519233176330087293130147569452369719775634984831842054534666244492987081232161690122134184618161303252869393138900461258857611184606239089741301212777550897552904512017682860486049979327733366428446122724288922212439958448595833572671917456084318596572885155506381911212561733764989690015892168617830084120509342476068306343239805699756270701653298946656762453706912026170182468209792417875577386009935843930121874819566386610033262942046750112008997715644103738051711547328132860045985185682329451319480806202561167344554681467211029491850851541530509565580108596420144550194003194545229012848974140720472074524724687512474669682088255387507946226725456851720581275717920556148400053855763645889880697347609472320203559870388882365070984667215275375084798199179170665022485783161954934883878197429435064490175280241933246391544712889951234048367711737135289653648920157980940551181897021779954799450349563825466701180244144588331285980251406949115158120133336960436317802157044039922406581429455305219457403658518736729003361701550395536261311454238523156322771413555759228015728047782549166826826265281664537892261754968075904538632242130490153472225779150997259556071232236554945461363320924445104481006506717136498396930112097589869521327950467274193717349110883319614915671983666243530110086042609346315429216528624436077177079482456030420315868014685393810095500786307973002545165603320737855158797263892072990248717991427588536979099988260941667552554152443260534318535206220270069093965392901724995067052018097004625226603825926346517657059855265176951402401180781175727438647209233531947732215857094520339755842367857297725451635010751200519463142652007661595321373036014256554659069734525956378323556826816454878764236900149535004111014221725418618987837198810151621042811423866987435371210112814037571548717799360401066479077205525799507851679020286232382758829892919372521967173874872752928950857219360385027857726654440480900635565673117753980325170092298442885776689402401684768203591192056186140042814678393547272432291794232156772870130074170140610847066268807858470872388685266825984793808362652079158931672787440038465696404856013695840686847853206321947861927711526811753321796525594335882206988886809745512587298611148260724438416485434608323029476073802353320895756212504984449434351659375138653704732649355286977078718541167395432109988433200572189368536415478869327754898193100780289672111854606777201461659176825165551780059957310606464430066695414024826439443855015224762755644327262878115566121725394326295674583407625448629107006967483528998431625790061628890149273595965778577878155798131205253414369286607420585808209703812069563382243347670725698610011179757083531226659280071516422031870491736017684098725691636050668067655937022746313355290221606704581278518151428922040604186487996573325115123365541147419787797985049212325323326473640996159920903197301572038813451290572447207118703868353340120495559035680592127913729939918291715818669633213092933266067847037764197903029318713562079895568334109058110853370914130492423026272228707315185525011080974533371018908120379994108979495874555803396735800945846159267431376678376100797342223535047298397528705680612482700416951152652809261365396234939047049040206892546438372013944489876257914980432103233505279829341999644863942896294954678641307891967705072238323246374190759015558880723727074046613390077110876828111399342110323100562143894201481616961123710336543349329560186914243442165800470918020640635096231561965124208127721428089381551013879243320451175589687717189410360381540775929653591042636383456640755321807602795326211053772276681869000773184918262277310569995754494406491260462510577721882233426809438581522838163092812816036010181888474422215911856836472517266943162609130477927426656825316839076588322469341834175106932430530182338163445655328427622307623879939636553936469415728095244850792650143505928849142728075008547378606330692547105625692250370163351798516480579196487646661991694975951330634685392285628167741574897794766171500643981547417218407727078364340657382738706415645155839926316023208793593836809174438351389625238584738818403926312897307192077775276939700311279103437622389265233415713240526733576661411410157847105475991295923404203297996421019427567482004344692454243859540241712982932378533313757004715039311815966218601720316894463020328589823333193963978286762489112065676209806440697871732228564956741266576232600390295473007655919395320056523605328338625666371284066014965198681180525237126218793295267874034435628343574308245445535480751190734483368114011126229702622524668756499395481599398331103470956028804892193927876143658919090682877284721430303084663463180854683562501250859311024780586593910914309703564370388309015918755550302154587830032103875746486887302158742122018598344908388804925872584284667701023505540018972101469548705518637914460805367810547898765686331199271938476035995347672702502653674774378968463214877403430636421533725798313769109099461897798870301426090067264442720825073305600351054585231685176020105806088060797648690853549996009993237604447879684870746043813682686086255026552402014319360506917161035898402132389899028419100335892939453204791913218434904096015644666258913101933385115314405093518848364683342911019457198005419791885203704027679138137615334968682690532825389617145848005399078728378819581396495974818033417921386170469161988957897504541141366133262679098149765022258561175557219531884567363907429664913689796094350237357285892762704667272449840138246578130557401975220016513316919417103607060970869597376128455116773385297175477820663973163326363381691439022100572669665323113251588787104027267585590565089022647818018646576583705556428365831192192914952221118337058733606556565761239188065726941789813241845617339279983211975067239805756512845468601509484417716203139232687740952970060604819444381689333804282132322367828916081884893599294234249560562330189582783401375658614364367372349680443470751616329983399811777924172771697406475292504483357268241151675059727588480021373226288873531547451026882152325321703059620932832908674028007777327081426390907318073005895380951818176833615521243836151062545738957867588321322241249158419655443652314261950833102117418199274142379425767121028160722968336108168925005581504139215168620433746426355491223370743544953630644239345484569766702674081621655612164879335177098094120033820746131620313735481143275393705043349515003532130866102452771921413966885258477451033711443993090035615718233403260228866771591953420584210264123305112863783953858072360583752147709064651684236959989489847002952587008306383153358528089314018489164379291630486822835437130506048088193067488371788255385519908692433326891011006972566840927897162678885242783574070903465534938873668746826704523592991165723021298768267335597956300231944331605295307696576575285802035554909895309174177130917183090579377753739015970020925486422711160778292322128665592903703233904918438098714815706173913760441266846782554898473692473830800721633580740542164166701704661074002538280797631294328652723342258442335801291392558860537023420539929143948893478936458827966707906640694472492170318895359136517093964020862220495838172215157966714460223076836714368760052697453356358643165006245240705271014736725188451816402227101886733589425127848289752458242563306833018997750408814783669902158746696225727648941254944019457564182311699246150487749868453111856991724003334636809014704330316360363344875465635019237763312639849300001511482468347486703935640540483144477353513113636862488928316707073067644313671343366408564603046672256075056793673473367280819682630831425810677965554487577989797242633667621395968406557254948338637161010550992958586698756471133848130591589545769228923986155864746836723542550588404796763925478065649494860162872226597818268414485620904212414795455495924553964823819783845905070246637399288708616139793181277573874049070198382587817338072619630441748507065324828201547295088219092579711279722377731983908325021797636532999264058694464909049344315964037415518035781231954756369817780251351311616045701816652413043005339471890292162267001264445364142964577657997936198496089302807656141638391298592175022646106534344456959451437968550803143073065154312944002823420719659792159233744137795375383713616063194748851642197859345846343202972909237015505889164759339682110781810616258889478991665864143855852793302484951283648079725086007472235249828122611399543801133507700587912073494222994801819756152495100756936261653511332442107461808948985898814379394321457856552376732695044645490093432745918306563749586856270670653012649821681976016922307417332630787760286206202231659774464647211425064820421647688216380854148079420215696130151682287898012051510584176090443115876527680190320440502043183864510089168201798898960136671232327715005525547421426516949555770545874431011751049213642293588089223521179252615394088072479953365648435797444537434662791537994340680249790971450104930335626346184504359649105062131566485979399188871833490276482223576741303549644006273278815399548234259598878675090420737002155653352044530424753803374683975236448522086994943995646367577452722754720010783472540297033276353430504533123954467353090361929962787309499702410410586392521951951863688006300388130534005580194778510936488729814540787998924855578946346267213810255200751597135744261428720932849252082488683890867194479183549780002005943310777513501693355682887247622081565901432839286072149164161170567185231729528719779015596801025145030835778302606674605323151613240407485925413981760184397930027861258368755110860752427088799483599951839142199360559145457355492210525564741279952560688575230201692120635452513805996981649081714390991457706576637541539241681480541388669032351743710376136413152643664300584916497961097706611671191669957699985229701379695449812498212724942297337528105944991267065713500890385384846736221973160537165173702422342701664556185681788998310683129248655854643010878292253607753510842438384228487750848440460937190092890130788591204395002667058361657013746271209821089119642842581910600927896845486966998581279101410337998639856321240485909153995034921399314120179480360013047148263820019861689443580392199652340437272252884398780244882619275327986016349422165744418206656388154043347318801579596579155341325442648038152821434000654092320713122023915971206465385055313067158534183072026878582259104336140444831782529351771043911565274752597828709047968559377175255946874472662998891254972351319674649516752424047528086858854313125340199906095830699772304730069410327574252365467730163198201144707935319302076609162553598652174246153854261481899817237673401519156300430579732502724083153387290722809738409805164720344532448633625587803038357270816416193798126229472597598876435780005271501993241870848212573284692179212173781761240851889338624646529823446369351298382747876709076317715747694774326155884109073677764949120575936048878865117712617699607603553781424915877466179651782444601083557270610909676201850159871799511661859881398616282640091387375349963486391030510155364973553656589399716983577876283767139889108364381681112852489864073203020317694446614367823148764271005292813911984359275033109282167089076374459059566773703506830448744587802557247038199270287596875828394131106335638710865923994756628178067503635287453277579898964982942767594056499388817422539149510115444815155169370619920069812488243354902608420150083917308079976504406365142835074847101637698239614713088407617385723148713122432106375671888905069615238041855351494561457090019102641736149647271337850278004693208361717637285969205139098944570381252644770714727691706402208750760157032463873467171358612228487596362328681557254521863785509224883652318759175794799698966378493020714910902866287229238000399433669350811717191895149808732926816202084594282532453971997430771166794360031155814785393287116912590351383470766639772945809862725142788087308272646926357938300672534476099030676791996199901696666324035145910142948247338697323966643116589852756076804443805692675589014980832340526337635896635385254183794884485479549961611056492037456918635520145464129634397908200551493727698827343662085303223258128012628431930398480129814763624814985919314130073732665896894854862623640028387188899203622517252675660296614408856817019291265523887126917289656333188528784236505006399188900314515976932816904176774785097416272777869345991098391477198831172345554170406936711896173252150936672902939484165545576844878971508333703872999708670580534977796513744855574169755430907355756189274188126463219134962051995122624300333168221571509739918185496473954925092150571140636772227225363549496342601012045770448743753451222914451838716916520770263552127231025770534537303116353669165772025811071243253743058518392711002767553750924901690485695861510687961814978243979395084291669530623183935751417430927958851911588517110704892731162837109318740930938474699091220928479682374176489756638009558784234669322587982436020049794178078663112602018653262951975403205168011659076593174281498855325993923226779643987530626853956167401726270082111031643900256568873624074747899364040911161649366668338123727538658551114351551801025859448458739001404157418672369066337568524438064522177068577085431994043588778238170662901532396440786153391364802541830332056739057528277361045956750471727665361900596526676526383214643582905305856371389384795412812162280113996176219788855637737015829278673373047837263366532224573491170078688589605626737122375198632945586270117568953095535053611308335442214728897548027852748574717508980369633884388867479379105848214157197489407783525916615061005733921394239913258348810954154535329007006088079105300356415563288234503796294076923503768287211762351826489270815158729475045188064771765742329211088954891728909322811179937275240336203174216478485794055773413544021210409909434117040872933498942502763978916302124071168406349177849122340841745526979608217959038395120376050269326575245148242346796903643851689424369161716744406569444377255796581000803987527812133001229878904102459429705755038516312165079696130219347640502880497044978616086515057005081671077106012676206621997600086684367122754848799535839679644955152186847301704030763084579752694907736081272958534301458823782543078027805802543163082021089217786751106177277384682599903961682269732685320520346977604794739000049556350534584419546968056870527021268958179191190202814060859620034934158208999640404337623444517719234123415113223874160200099200282370689768751809815314048126775798934537580005743038003341228849508091309419577878905407656113672212330234272265978333374205723787315545692704979019363979947406922110327623086211139834158977586500310574680341870051935746541475468035088999657004726834888919374422169647719334737881657043431299889560374092509162345638014792593329487192037594299971815441696912497352631081277172483525473669228090067878184689172900354915947330440530382424032589682602727519876210626481087743644820832176098343669050004838195880517032894374023121913355638886082301903330863143677683325134765094781737788323590372695692582268464539482667527415726866082016888061199575190064650774221548902251899528754434754566775916305225685194264566856169502788250359665438534038765191815189101322452935511732616557270737240780334226380086040042998113089199195452523746524148087999722329090862669304647406875078178488120824802886038557040283601440771849397938243819264771998003190897876037203675070990994894251112018372465236502955695050489631459305906964434372439550155869500948850963657741558577935987447468150332866001002596515136391538645473886773527522299768217024148392247376526700989818579998908325982024771738627928192984704162109907177550024017278539279604606793230974405219147790684054435949687876441002736692765881546174433595249743756516857221199403289615842702237561446511870901393163464317165200240936666339773461696383190838185708862474394836245291173237884019072014010176075938649965305734452466083027137148442110951439067383928293147853101755750198860354077313254246763158245128737784974744592516445097330846732443556087129998864771911945202017415026402057405738771111681489409696534180979800453620536605205592956495971863273132200925002506536234951970906176490488208914858368827368276416966177984567801079651038144675722925202267787536911943855699631543517066558991461884506840550453518340357740528998466248273846617509640706755723223563916038174095831371885079797555702412363769918611541815771272595441598766423816502567738610995385886824565926751497797252803901857842994212663275980780123311232247307800718233090004105851561689154871746051240131704131037672116444136483733683452341291610765040626193742587857495928406783508434571746312125627579783654677729334577196639276248189696118781337991927903615392653151906811736557998107390767694945974870161279124318424444983053110482750650277951380106130656556786704056342455896248307346184455761825978417898241010183585652678731543965425313081668944218894239293571264865026304916432954398107542732922142518882399776611963305409655716478596530620110940759548426948588800273824225025057169284725036124445533678707516544203547015634769086172620059824219445170724364474917038587663350561873310513487605728654630550828083000904456212747115874373365514783453349238908731625486195755030643052539752923363343402277233807386780448707434646410235391030053206498781340007452361852897581010060961456791757883966997333552997917396210393681159102653442063162705767734621024384667707703322622943030627233757120679813108037004729258030574025188403651620999370448402716965264985721119868525884241143201980339567326048865793595540758057566830090335498650767208538204964973344877296179347419954412907332181031957224060090358817519017929199371055919905448098030500142230697405163133265394325106317490237838123016463588840446718029046184722818737014049540177923403328925026164387980638663409074335819748282591500240172489443106682984157638378069022770402686577076015317411777579973935882720673288519187950059652942166319537229478062357164925252150791962801875460622569098407117386416759662883893540371524342514933020300262817080196029766108377336514146641576662942331538532951968616619518354864512582782496672297586074041995798471846615381106995662775621430027449100255437256308181461441659954043300591806199142270554323155190062941656711713971713591602465773772850162854733938993444903363904851113206742222987649290623440129283000007618518779375418507324269923221292050634330698480349200016379208696330121844437544707900403773473852993413996313686884483430763387282669837703501859885312254196354035510362567882720636254915080690521283561902290051084985844834702338030854445728295722689120948470719118672854114279163661780017549384726392356969095404992127038981979298116593452290028402589191865092352985208768255729290280554020900564210841481182073003790620305930941050772689814246741080715372757171881312463864630074600789110978868425428337608876619265319368533200635639291826375346332046458526855505622496081424063971395053356809673062676454525321073355371750835278488577893362399625407087138403818374799089567645695633191574650716217297519549358321980304984943183229850465847547870681455202965216282414467132476994795875955888704711512082289931620923790995988039471192764048366783802098274205031810995705797052316965698746326453734995292530357661966758559735143518739562624851194626679458532708525860599131042793518660739089925983030698669962403950325510891434080025184399124899298283996623510885981756065990821549323388306673212782117789010262173372391851699733067617228553198623125010147188212838611454447590385611366427587572569675389655210360961561565169701885050510563012142515523285052696473198313188742599092047956343715044039717108943686710017073111143733017024576776613356215449514695479899255535534846715092470138084546997547009090028761585644804376613459001265822758056371627017829136364300467105652772929155278920690372802096824756338272516531956246245555533105046024099009913728304202304939058175201536423109764431608007972926956222105920329038280288638438452991336346047182070994180866356169046158263297599434895646232965263319476364440734150460041164901298440372864298068640268213598668866925645687095618693705047060392199359313329837711220934332970037602783400518835963658793154144948362828918083036109329340782724838899049421116114411173872141894543173053183050616821727348477045379006468594678985752723321964366863421052200930991407273295739481736528220628789543793215355059395881079557078080658706068698732747591968023488862256807969424678764729189766000877244963747828220464034109290158318806455505754106479398743345082366261941031333483282624139662826540693467912590420222763160652474917783344566860661413653052854780522687400468699691377071482751769737892719194554307916155461912659427190679333652364218455046608822825951948857327798844075529762729252533848412273285146299123939828593485034305098568929715679218525984618991963979708307704286540266065764383613682623642284087490451632163925618624054247602374670740429543382605110137471038504790468489969713051855936033606562578837483144857851997547128620451119137046375220974674518369748080126218030745009166464452284310007739889583989387336648738290002750083796114805778791122025972264684175988356685736931662806429003269555885470000329033630552423926084422988267305773952625047022403124246966173343998114158359206446526835490761079922000549596495966144656776181525280131003473771331121547492111178923768253077415225918048877152604904149118257380239684470468332335404584985548825305422261158981559906101232169860523055985978184647535968915753612584408778693060481972616337165323579833050578737019315977299230052915276553216241231684156501097115605377125043735538615471821030684677623590431897370147105352071790279888306833082858115207154065308118883028576533512445382085290722050692080662895105313164916521545023655356868833325429111370500756049156272652966450339849962834529865678187432420169110635560578278182586984796480749144035394264143366741212233024893617102879839971799852129519457418149346411490838049474841278279494421949402926116677353710803687200754164075030638976546049543107598700035349142816968462613246874369197436842702915198660769119125043940785564314993987447281675970995837598571601089230194472791965375974143275874427882788907063411331961005829424729540803642890703760811623387244467213291339075491775770072567811129683248833240876070218051229499442155598863421621786817522245104200704914172194420074907783610771164561350405011610170063614667118548978441642821725807177090431355756900180997858687761675457226471779574339440185076771560634101964538715817447596540365793447268330679053548077919832042705685883788326460328045581922007639708054125017069302442183169602439328779940834194538745324257487065233528786128100014700380950397960225000909380454149119450838199184254434587666993828487128140680608413150191237089039753677845190619195712662376770934180876220733679500466921933923042476107188144038235378873775714480352190247129193212654846598763507353417458808412992234226638541913454495293055716115644755142006567670639292207764871174263893322235660473221010683961296916110671609978904995426177702845713891600747383345158716136049107253983210258352415702036899558147660229731003655516523226951403831181348775259700535540133382793544995784643118138416885141895531019012175974338155012177593331267638855714178726413448068157147358637122316603620761328058441908451907935903606339837056390442782934639386982852065258502241207156373871863977979756668676054013878012863557118133737076056836867607088054490235263824057664980703745430546052261541098177051446215955460513050534259153074042005742155749224902108112691429197149613156284375319101064152636557679876184664701771750126949662814325500128901558877162519824299528969965948035316460302708163498196785928440533877856769685113765048612118926728053984238329094390258773336447214493131575038964502130073390351361730001642111538359046213532667767164134229952209393234004581718628187574594058923085454575164596668725070606620758732449784344687026843615760555779792387525329599838802563352301510858431792214819125269417855159842378858890376378238659723788091505839958603972194043696485812216395993901677958293259566327058532370309105769907653432668111343314535123051276459165416874256581697717456347183713932539199288457853651273603342496955318881477822049339460484232245073206706490770146856190150072669195227268921019365563728444302069372590378855097471285073568177841646414082774353485442386946063133910158353374475563388960838723659160618086846855629365777287622769634184344034760993552561428649199491016311383390360384097177855501557467440613572899413589503213780107960591828972978991081199477559463441894738595560263330603113857609949343337630076310142545193606891844515479668371471008949060392047364011523558669080026716035240325423637534043245277351605171607275125614443270777487733567108939488444733248488967130538420210709637855327879779423588935191296365358222322106337495626568125323288833240980190299362284951471978218351306326156572002650012449254464208283531215297073179301297608192562465362005501533012853923749951107190636102624170307632821089749143509389914229013727775560842427745871958149755933815215227794997668308524087631674865281225898514504877970819072918714684605217179731518746903640915106305218136487194819717411219437492815977314796569573603963522881589229485479248207965764321586452561958835817989408438481200242832235176457749056784904202949081111167621265669114009356389210873873411103227971000035876623495292622835267716559643654578987837968470127755126792484268015709783816749606931048670202001689065644083303105584100349634907119089842853383956844345704222430460082604574359385043508467542304240051282195736870972920943979176282352912245951896616427031145259330796351124472523109552968229515902710236692014967158352702578748918080398163743708764014551413979841447692414453641160065602912070951928225669000578846339761702520730194153101995449371317043173848144331975596068240357524106111758706992958462744563920838675585279041862882922684970271769636762404451913710228312592770543817651115104194726968589483932143332971072680686614892094397223420382539360928619791751201693481817132830353914573050917121097008328831396131409082505642633230644446584994920147292698577640930780036255139117243945227831972381011033802060078934170155014580044541429544412106936275896025358142516871425870672896912826694926318700790448873995749400790981666843227426776382732734601122038564844605328480281277230775306402222632657219772344991884557667374584127789277145321765804136661640379346732803612169818248555346217629498959439420395191425906267529937063620141372054177249659513019130538497111771520990526309299898210415158709377853731911611853849909533387636587213005371655726409027764363614113935359636490070876681516953128415343066680178597340866838159590283262949256246241761630153764224948653910787776108214335654499146372604122414365764096036867679307093634309138578870785032745119734955003151892315808638023001699128424133290254268471524803813320194329960283052849119045002950181178688773994539459183945245332497390731130752438920743399453692522811810479844744465738871645899011530637218143591855939824097392037665237122784944645356893777066439876399410800656572769537215963629730760861509033471310680664141117054510207716180339857770391514673462687158603469011319739645002775657752029671300121034317249186147006634601972208639864338285819207888055998846734013399244659370225224892287656328720764770862078626925153496581081916123442559441760566429693223680634282465559667247952667515860861374736619301985376794686661484977977014323278251605498161094402160395296209887252228076853220471614584390965044361670205357113376879774424394353347081801780510319400189068696578698451583620500043557752063826559043617751883092895516137872012187246009145516240715776035505691110714030002795759139735969508048025977655239512215908561887922999089630119201871171388885779884687557020778054766473812675885422177349891424892763120704000204005068053379508025595570859881313245799242342994476728129020583457566363944418547271871133029859670930235147586012447833999419899544055799858212602344728837642081145170269606327154942747990507166547039583935045486289876231901644431903458510833373488456056597694313297407431238731193698050989251108636218635308055863565085984847267632357245912540332261692793400424031715551368468806824833563537237069138230599741091210309146492315237676462872047253666910303575580721356131055914778244534056935027045850330023026091335972100852319670838250257833477687832345217522449137247622138205225292739707490048152544021725558380091797758039924849078957226788570730079976688003044622930031173218739472666832147635594969818965016137446828769596143204253384235643142023793783959403131212552545738328964390305808299733650295527870536664936791473305310448037342274069866432334323300463137329009052096002372123036982963799340026819743618204183862203235085546617224925843679054509009873392629538219768137091692772458509369942896167898331173223348993124192061844037083081691623597232042806853952070041225566497558659802848246632987466214551305131910120160318610991163178206997164858396368304417870841019742277095954290331572312097022182154048713514402024539090146690412165948120576906231625650661757560120177128681396622970455423881714514949873815277059665634876085833043373520514799859271704784089810829261445165676816305999494557255835506437623580759829053226441126128668211533140562355722194260001322423836202345966243552177413302155640041269895804578876579117524172322662581965583527490703450704011125421662032014426815852429396268643171905114673604173134302629023490415167044156953738660258829905294413072355314481752760688056916211043898638474694604709632976979823556066151175122761420754103624369923335091085964754135455951855475411093851186566886567606091670704950355421119579081115612336859576256690134434373891784813313530704051707094751471307881353741704139768703872972078421216616230444549591439920484126664237546285977731600481020441637430096733040415222501644020441579291165640650366181105359137675149819572194157066426883519622415207843159108043269513181222900143801683346344050679627953433635063916747563033226834225260897183682345290560209477585670623471301103543727479262611951713604087133427967854368621448862093885542397549055608771177448059902905652763193087799602355293412614803937931456771570880402336084850502190919462679586757823206221882123529347553916070448527262819913337914750043508835651843849166826197996417547789786761685168995228997102210421526267721623025505665179444928146993332392830991670309646801979497561407374887274811306327266691404320804522549612224382775747698453219268712312632541835619428905766264385302173692491630096741031151981368346567551702369744461444492152503156232867789620612906112192229523786820689343361843156457468402816266265912608386456924204874240714556994568853355080923637186817365557818574779362622458372274292366960244342005809287831375796385177159302628542811379156807305731922329214623713243695208050502093174523627390798891383395037389944927448253140335423511592660958339235728686183795850578001677117553802739621044483548023428343036634548232105711352818521747990413365898683671318944870036720464531093893469349887726133757835600310050725604482340118186209507980051052200520855810419993865605967235033013892470809490102973036564967574862631051523684678310461219501285559411770319369178496485665095442624501280429471443170599852593679804304655207883903638253598181273591067405383674654332992755084200157221399273511117507061730332462867462674932468265464321042673575114486144922787120168806078803405329758935995132498229545196702116219696973467952931365310042207449412602781114174898360861030802231570866243248799728211672409242573390800173366684228143678029117023294510833876489946444185792090456180448531290218058637944027341952135626265521261612875032111801161302423765997538164073322349709286040814432036242281519493769351086016570193270043689698957699843678130578957705394437727797732643092269241266873480274445746990613006124805496479456248768691098183865024282361063517862539344907534118655171925855784352476017176015715867685680509408484334771178269386325693660485408486098671323009611655935050076797373499521261839479100274806180838386847523205709155948862824105752423234306083052096205375839926985354115262091916747535670242055665582428633088650150324022265136150156353079086690566376098751185409659053989460131571808869301753286232512678644299579242023290189283905420065369873213573410900311289085703877794834754452655029078561683677118984322707826871429309336452431917467969206361977757530518425790578219750500720317090961777314351111500635254778091075128968498885843881189589016530871026794628033427127069550865791007972207260804453482222693597603743740801727560891853551469455489142754277043395957265018139315180508903155826491368900931626870468947327374623502253733457124981283616321051952877556346265777491163505556574669389403517266325708857111576140052951949312738501995047467227483526942856655172949663509175766945098480860467525481281688975736857304218991229811657189306965572467625430469956702024649681787002363847437698964861038242826552911644018576719033848011488166362118206206645067737930657181284053254061419127278627633792837987484177941237716339779786161534141101271841135201157436014545012088187095525877986540498069445509989097437174026670666482649130999238204244287749875240079246855780705201087429480282308796033423840277156312928372879997047216091620825032400274235533994656958586978487242198778987412475628225249329810024976883635985965101136457147779929256277062885729986388758001556490922337614363318507106563955411892826420714886992916265664312287977606915886126387553467964704242844422407724381884948597558744071991090945593578228061093729865709275504859638979600243187618271246031698358820976282407731444738136867019063922756107204113426367171563138904201076447743144780951914591714593655308384050296407109550910066510330391377400852210825292986313475315949775734016702914529834920412860287100742575069025053289782800163399023365150176524018575852432604723917126125938120518984879044143366554288109987958948420771529404337482835295928401978154394597784886618703319103716810825564913393060531287144841570829956470447915009225067430556891462514505286036931781241800025259779181372892905760453624258843682061306924257336802064280813412129581424928711342353580598963584954758180077479560424798935722367361949390914793311573015243988690714231837221471354918462089729290955043347673275141721334681191498950730276366004532355504010711741710447473325227143513111075086413180822728025165335453825955019966127100118825526897063112526580663451750010833119568065738551685421595361064066775387076404994551638177597780002170328736101454957319747374444510779765544917452111463299426401274500456557992623437922512640738641531405621734963867760644388358548789571579522473589757799250913395758298578807651005199731329916462840020109314430015175109481101934621716165311251789343043368881581801870726246937716836572167458617522977038086773906991945798166973394827596712055183203213576921827189390839907225529279689933150054211519751712576363914257466877825002368287852281627384844525777588960402656210928413892112471537192053777999861136679173639330527566149261302484142136958877633708903728998929162618679957328739550511844060795974869988924374941327778100617684450868249306856545645154973797795251400625636691801904270550031590373059992616294775080864475266906128865033268505308755373171306735366308735384119077716223130657661500947638537754871299110666172456630066412032778368194422188732403269941132892858585714763335274333981247159445227719215256157962065839149669061639325015171007075503032157347686761175000432221900124790517044181480996748335338364235064377050572539999814641210338968475853189803959819189851216475025089444259247045728195769864326724479367971662678793365750390737286733409376900820179930853877321715612156577319994378096986200013876055847305475368027257553185509479999841903275142022512490969125064848613996244615516761520949774974573030923487845618703425459610076356158071416621447038674452017290696066120661419825566656787464918070922047059532543839453162100827610845570236809164154848857970028280646794908883557362193191959114251287586228942762180701581355561535280817290923817411908228061186535034767692310799663087594697238802163222160473887046562116500927541528093060653193161866627560765958695115881023760551075595601129948553847602486308837514022780403576015763153131672195181913599530989985817767585765913995717187998026173776522014875262351956536400354324309968246860345730705029542732356288847169622758453472103341503809142982044453520495884985443697932684535947266115359616221486665219921342984884798311275704529670699374079841486137619219939507932983758735843174566830622143844991389641324461967218478861338511882271799852911595988612909939806207296705001699709039839002249171954216040924751013982651969155625344822817762670880917093628160938408315835659884531136197703322808792981138676079062920668860820799770612815201953242977014816472616417594811334879600694547654942649709347749834625732835214125117351087074606741920311169292896317986622482832889646625126133680769264113747797589848927057373327269314062546917684535502221728858223257217065738917376979528929257696748917457194480032950766267713213743182720949781144209974795791550293835838317587089644206040137827060800217284334869602002947925586211728333544783323465937087600488822434817026347949634423700201791501755906446562650019862417217281851718355164612494669858637445969866073261814995945220860939091421086266988064242924339645715249953005360488911006643643702774292638016708268835874544081221264781357983133292700306413598737945530370808810201644347982917367235974266371579790930601208379876101573079732972012229897760745184834674257897845432834527715944457916674798198118697830442743565987128721762388163863194693958078346598790643832965774898734721819308741849115563006038288356056510851900488409068398118987698254473666108624824987764548169641009844804792044930662848937139131089297465678416240841385244185270128304070059333060044021356170753295396230219410170102066599746893409600780395766705327424750722768054968244422434892274455973632110026647199277994513403040593755110275174940197169694763239505383619915754145823422318391417285166399852292137405969755560232841670135171483400773300127319811824155780090887852879098638201963169524353172338925766918424203741591838086908584160494572673170198605457397693791385946028142290238823966005438449649733978717249332682596965196185087763960902985045547684918014875303070356367258556637843326961978639135746588403583217087304150033172877689349225923926199992533310032870609616722648663178475839051382960615054034095749903076171822466207348589636520045213368316234018496351784962289892996110710476102115399214050069588759161296488344001731351485067258818289063733274026541794293066647169242553180663063762755677040482296673415089604069388088225538474277452764217581072579876008423423051133540870701656948110217671602054061826662571354482410233735343403558728390224712301252344038138341027133611145889355048679901305663656098447987054384970851684007501478785713980397394895116140449473912733827011502486105570246911024810458114672316178708420131542949870770399526218544725523173476486966912776351785476552297980268689246096058593192976195860109335474038718586451272924089675268645809121851908236243815312818830311002494626852030771262795613943965681218191509749778912034027434889435751190232096314031326927385593968965368110492613281226488231644469927052126829340307579219536206683240894181462079353774493386692209042107682344354186703345390780148827294034187390152447410247324365734350916617212924671672776294090984260737206852313737751814982748266728124062601706018198999885250920123343802855777193584998491583869449902774858027440684895532831320846998342986276350931384664015704858540937607781355808642998490423507665187811969386106267168913617832363238169782131892325300759560380251273358746148251969559289626465666387442132636388750846693992256278551433276786662103560267619155227339801976860630654673874605400729532307399653938211993093581974303222763816105869421610591845079945404963084846313090511750297561679371754864830995829350998137373701519825039734293279043322359900142533759095273173462998868887868698342438132619017161323219023649950576018335423248087306437104361050352507174758747700315844604830921389063583004264076779102341341666976633920757240542083788899427595143637750651323355178094222065316995143716344558240404180262686751165149866914763978365256964889146846116416747640463107785935307316096244529758519124635542843906774509840189340907587608267038632747761094991366942572572982898999085402897327640806161063096919865955887344515977066538187482867747864078736472909402320107153367089199503937464592039806500851610386401367068239879508257106094747717701433032979792985395517902086434298716985473594278364116878174453173613892418640396300984889550662724823053871954616910972925109239287733810101377889694740038847582089083392091290252237486986593245899525597090044001924708190259164404576868713485354838162200881617249279589831523584474571880807241098503245513142172414618658107937857616802851942102169515953613682272850830562489205919928179000428846482162206047489141427187427977529777549675681077199048848908690907485752507300758686179918419657730304136038466426095903291557030668889547307767915503918054156554982857778544773831247064648424071828805033126321261869369635438670100270786375285933515071104681988328790460696206379826139356072071168528566164294364305032580542278846199744505495255143950653547765526980162068655669490732930616914520646950544874390802283403410885824610134429620199889137703961357101527378056424775910368689645860396708545611317707253087598346496280214811547484875767676347837807008342451738215662201683545986039827045999802975197568892459516790399972181090506258813971504799104170702622761860707433600346272025484079148792621565596933497372991634740709268497508613474954004670820335302049335502055815722771549915471595458077307758538452363337518971758628567822776997192900807810373905355073010479753655345012316999660564949437882407420780228425705639064997039785446385984365741269320091166010614630086241127223287558365445295378817129788755473053963209215317089764276419095244198509275323691708325322188841309230324796013304867545069024508742456380599180025840390350319936758684404047800935901139583779671404008713716461625352816172821332088532698827807891814692564319844341209970816766022456406761836509516025852075959518181106095898546696607200554943471280804510151571628743997745861867597612950171380959419948905749380948721449738627821943797900712932949152602864845721619057680435163466871583453276772683345141755292699203440387438352284747749830801768466012514663118418056073735769555529895664063687050533342853672460674684914058706462578102578339204027326398069439603181562078784183946807152712854803966626742651518096534051254499964600402945870964304001599452266046318867031993072405996884843878017425015582556578700080475512154104973147879881698405345755099744013223499739360738444078516554387019315833256189974452652659508023693788280349999037419719364959894113994249782643083870103380201448369876247636549894987310087794422084334919068426613388020406968448940240304101378505702740330789271371762357054192653254375939174672073824618757323068305706298597784908585533108193367885227634658785642430659146671197274610758598685639615842870957583549922621856556871232881088232538025821783269112026124411894258549314300218784477330650713125414275836577420604467601337554074693031784897356906695448318898180964432971161842228803538390453863893524748461812257134225623523644856675609122416837658055550474766421677236289394259797444954460945434472878876562798698622281832199646201039538630093800903178285341647542614747778420913621481279317799699127539879095718260617819488027842205314126880014247992719840423317190391556139257013663839638039603559711445204128870930695880343348090477336209006666086067781891746367055697346608405016079153163843483289313836872448969764607613336762173979389187160771911745559647173756069574996428522436029105209780767685340848622494022039443402232890784036514919853073152476430092669691433749141849905244369068697994062597578663562410937726292795989807656749303107727810785174046935840921428733222855160836897987823425127641407057968516104576668404373861104065235542331895921185491746515816885680187117564819747463879595653597604589298729101189157701857918169700422977305235223646057082083975740601270187823368337535539645055014211667087257828831769555841051540289344364485907910359530733733881443429613247203887344554945212962846666137136474247104696501266452986871663893204800812249446658970224388485866528877016326815531161183650639627356845805070737426102120092952935002791716154903764314215050512616796562634378663353697574623116108340319731803196450563568950824736809630152703840705430633456440166187569795293141231655940697398960612288521046774355033720998048401957901885457193646286819174588680663084047967653929874233720625823866680646522268401674349103035849754004203640157729676936583295721979210418580255336233842850557674861454873695775855853699565150565321301900330030142256951608181372068400190747634620983943510730591101395718333731133837437731699218271083274221439285654224307828445996327692620737653726806311899029794489197828458264951259019380791353029152403011116272861817214417491652010356830453328407833838010634325191280946728120389987581590420590181681966324277530710485528548692855234772289189389566717498478183294772941330151008601668416141217903393175489541978171522970827012701930890640700569287453589109672592937355048954574958271036620578232823489936574496282063405741570034144689696306062187273222359099757952042407216060995825781607347764661767452648144729175310765070590213983960992314355197414631842372339577638575612695162325752722880610221406304593018570281589375493070169909038978332564285113805281702833292593491863949888684496264598835788418725603679617118151978271841549112228414450567247039295888412808301756996809194300997527460548758681566625363809559645149335153485571490055953361351148459043928710705899595043649671917982807856113008611946226659225989301264910983976019583525801170226137275807839344457289328527646540064661294977628657224049042404968887188058274760817811405321689103238274433307159717680377180202669274184779910409921266648723079639110881830137668115328388643012748625579919628839188063607927405633706582447090827820295298824728460122518737770918514970936914884608664135767258767360497966221141182282455842169990598931483652621175695005054198164570960942990605606679427918474966534705523026407962619263682776360564868057291618494857673200906625986824120772796230920837990237758868364753405843946968110361946461309270097844043269303719223738368761469013616284389503996010980597583934552731875151434825312587720548598682303257683475531207962979854276716728661937551115168489761421996298141662755685928198161061287624497967285759223392152404871045020982132146799695232269037645142426062559415858992260651012736582186548096719456773597364054105822702907730426242183845987970377954418551798942462196057103790612586384171537818567088338958012632213661632214133185038396963242221580990142029598718761430894922802404276572629172904580683131737537618963855335642459263652316567378415213377082172373788708995152057529749849310301880825291252542277600452202664489294315334462846127101682462524235048677728071595329601892621344742606100920228301691856369134246230468546200370589517512474204522100048958752014311755089118526055257558061729088497778653658487637801644534420849033756847394834633642807570874756821016845470821327210866621432654250273921164971294166996181598330976393002533671854763960907835024487641750552793504463951528800370697253101188489360666927956519739013469582643695600338193465334733967325221222449285678335759582234355261248571061823348412395121949757479636613841596294127547073610817137635521717049399147495659282270643217805818057834463339972025013617613602195340582421057191514772389388373251243589905797345516228234847456321599757482255764070919587979818776294173808845917594325180985565303517930450432413747470980445491867430572014479635434787260690512931258454849853648397276191470668660676051145057182594848943129140448688480864680698652086251526657449541208944233956105405429772618956551081735257294135201863231283531733471975190792200525864737612364511778729801010486284463638819881469497826771415266190848590896634760604663726323134056831417178110893037775654002736873680218554788117834947946056687609496227240377607339385859510026220967293016657112225389004152838331716739738331893683514601314761344695444017367951774331823915216251844653984655386883663503811065413595808951980727451348046836665515182105695607994985212588393139069059779896805600122499144341540593631323876167579845149244670091947090347371156042278435575385105875314695047586213178952080905290182093262478468652290319512377363096990703430346463473343432360234163000493559016383790346178328474035660637038296016548784662353182239859748688902473114109688850207662580100512573743454004341890437329611019949629705418914611187818610930668698033959404455839334630666297416227707907168887547027762940412868671697229459263940728156431857004961736502325488124374859065658946081608766740475756391144577894241568772709952662404215073857111291036249419499651558232098280332841060056341997683980034277775234793013468085913854563936852979320201980204966459889298781681443969623493525706951341608781493211586515331573438439440169300851896198670683875989436527402021006565184285326499686315398636531216891594045190211543587849339867166245411250301272930866900941480482121820507914668279629552187138441021819965439565289616777356297904569204833104699158378947134311432655315031835657658443533324663330177730104850122139832532317367019314657430571835333934295302410068793432526611250418747328518050671817523145766051956232901240897127867436826455994908272884199601440201052258632073200504151139289250456984844095156520172033962766422831040739849831639098192601077849055535147491367232420216254272667296134827847584530134500093666040065208396662474108921817209327598150767015858356939364270412486797666357232571151596673871793163062879509418551241264799452147829408033003294481009020900466576744030580690867170589008466052535504652818212902381574485682094707565391282172784136018519853694387289666575781581963985465806089942102847964987421265764931168679294978150260386641587675379037872853263347687085517859709679587761664647087632227852064916487050423775663204536171049171374319201554016988872448457590289965884684734336638765172586714145873736001702186749726810213435305265139093511334812148900712187901706615261032097673660946497780258515852483828816268851971629451679558273923712802845170897675334786693065486249326802304872835449681017655432928313130157853967039891368186879877668555777806166060571157899715599373820144532727006997955068224596060210953653150311630832052799882746867511792619850856672691391863615069114317922551976573949848901738049028905776237769528068947224596442931764383172416538708288530976232454326435389681088599995331833780890014797237035865542225909983313157923349595267400043227329937481272880837019819825651540337821412140139029597403703296609942333203245858610700486231947158741696532424600205523147106080132598873106959822827858217523385439031781151886973052676116683628875409148807209700984076011102768311428852562955200248632329233143178206599126586815420016853531957545730377583646018804924976507060943728007939481082888693821518170824576623595268998267458322504941214745949359682201357735835594918677631222748660916704837786542659377160598828486733336795256450376269203061483396637201325890056936594100373634137639712157043893674943904483658555086704994452897847216533927695534574356115326250520492519816148448007190893497962418260054071231184142004691892227302724622589231926108350026443597752198475492455521898945429815959606837272577848397518833431402811439327453939930343209199593903778557578520304615778406346804190221387544022124705781768349498512901606314544642119067733613905548321728841673729614408525200056827395362056263787542550257394396623803888181026908151796556290448623465969592523610956682848118943445088346496596488237901099223793663074579072344820792522019689171194160469790444494557689108803184064777894194294173092782825136579946719583294226856980746322536807567621896687946186835146034475001233986250068595061653965033367756549773901734861409263590238141709737238564945414443903340377647784796752579786377550182333180969006568677512504842226030257698232323971389425587887201873704949820083066469388691179770654571312294282928700157156714530258502482490979731189191565327205441716093877348826750766652110957612807630076828024421636819017600357627218958373281279848950886801640882309984223616721556910128205861720167087814852921578489631635077615182922754533747234986762863842284711603487955730287902158225160206225412498154231857973683784213396187942393157654419847353615300622194590003366713353256915144188855939160239595646350690682434647871420473813768639425283614190145383066021320141766948693061623287816342752715674320482799805284132153739612545494475624866434700709508382198437181100715691920685931441074276597829097562718231148658342200724180300776082480310098703364995179629147072740386893256499615341914314750738398039461391840618196797056675946927700034125742233937176928353957274672702632988051451755872199666812509998724540824010469214676006847148324254524346879586517923963856934254770501965229451878090056040789749503563059848593801294551139506171798466325809205640715571582870817495302810498592714930465074509026027726941285027959755034891288174462690617312758378169282006725024562378445240213514340119184334360649300007118766226989989252386626275016126994638964899998494639144336560555759618803966400498343014445618213595698096329661090534547738799001371941188217945243935532168914777707064947079915269332480242999813618221137659650330759295624033664250689683577443134045581174474911991200749341055469309565238515176216213963491071543164551572299455979380291991171937797104277158495812897931236596284225855509038937578635825045057042485140919210950615436697679222106821208064067637157311881171721198143018502637489765796228497134862333795209954733729134422146292815196009448585378395385076010059854103846475362135336924318803466967596351843378023250310486242088826955686012720725134019681028735675667466471346820455583201840934138817749355630345077661794407001437546303206961147682794117356266080499133059296807450921239497346644610620928285552674833769398491454959317662405978678904900213875930271296112736988160266662718589795049906275936636306317317531626309844440942396608754405099465815680952931657963341734648973087833126174683405716307426335043988147373211165707818339839967260435020390239298051294506492543572435122889571874167822450886712247661369430691158072310885758396002716105967242445504176000039622799296299372988900778716683485434939364006116181167033341041858727251704960491049777873663679063566363453188800699543631266418342625269160580958925786576614617620898329838859799541108724513595638506377076744199964864271119796247382878862553424223045746479660147065817591397325184110099031404933583354624270708620784219051230617412361192447616220046593067970157033551470168867657407308337409385083704151615282875451716340973072407521427421256486542367277980841024060107962415120791576717937023581635321410869986648647491673193873007989130236646164057407495780194110521903951679360917076982060297125912702765344445289477378559588373778816399109925136794848909916071760675496425763324995904164195571033474984962689590042159064274892127491266431079885039014631979638507388401611707308935168863967646988004906262612273343373127957157477057018844398037632152726667667916085591994711841915175884813486714288666526259891580710027058665812298787983333162410899916643029977381091969730053753135068540378838200922759582023225433045108836823439408462273235245860365013042380218804913988055493616434911913757380998356874274427588097193243630127577570642079196924023810961424686838904706813553942331130315102907142578918622869283782175518401499438101772105285139086010742658187715714265472435505091160849172451031114192195630221210340480626235135931345908565901772073250644889340443978729980246498850574960956600727734252310046748053034564445729473848198583731206545355191312791694946649267456612962895847200708073988969950497697939810408490334262231212261219145754108257801005329808225782514783924445857456736932485957869657737829061892406033301396705094811713088890534771344312885884947818748422560496276356656472263896735232000860224291820221901031252356897331322956881183991745431253585131567846023950124892990542926067552630830869529565058395561738274185883229317323016268809655214407306053458235294100013567791916909249594506968014649703459845683559785430719309679196210644236237117872678296075692041217406546896273694949164896830712972672184072086788975738484356812452350815198275310086795473830094359379067080357985738840172353106816485219021608903248700568453510665617235726423811084263163853402381056168562475567586894327029894318937562357023460436247311697271403298587685269597312822215321562258098108661751911012564258287891200614914365250254380690795775769197210442369550970889633432140037411366190933704144935481041769501215646289056850475982441259493077221350218935859318438101625352793014082808159309951968267087171143548600279453218931920664084610985126613453833864368239590293671325455748309516205700114096901027169402968270471076803205755270895736328501365842206268553181797870120783753998912011357273379011555682685982647329898380039772765607319948091821515816448665145517668182206783586369057511268819904506029066717955892719134866729442013068495331377679438291747959892029764748990872168660567645221322109344733320885754941377508497490234424751582273246788917629690243600688177975615695110731942102351569304487089032048332781772724263404190616136771708198104946356879907535535376235508608934399398763999395500074092226404997019641527119843186345431689965867299568671263064583474648495314243966928358205261392035441241992928318188545656466488952479979395298198568431649588391095073202884957526458477341192540001088083962286099670394367689480748641128431161728746773740214369850746903082523042937560675019942554132573311728010715261792537386043281389457810641251073314653208534516461364525057754652018845564972377451032381936530899964320966716087547292985033595238101192766719907260372007999941886772907052035336880087503131861789414640047048951875963709841598699099317609815078936745124208982858834843537099294809090534679135650490108845628039621578713678473731861043240486599776551116411155978918130947749717621824861237302355883069843795496562291485455891247015839663780697436739199705068957290014217757588043353162394586027592975061853894821364562089022707212241181952421032393933032345691425363416077778141499136961777803665912721823607419862370020728256060074910649989397223854461224357213433898277480128202382772271946531880304207142544201257987910026219438700531831621594883632198707697884888778475571036734511791888158298237268811509010831640762821350840498249091541050665608790501202331420865068959187221181024848336813615028337595852477989154198459367789464556643158385274681443442734063745157870758519180491415489588389281460211197925060218917204233199457128015111916930850130431692810049647052036620291601232987126274610933030086579591162519597923838617527065595182147597862368117300671842519199276746336696560511855201118258366897550375435774066790256474338316355205576704790145658065468948595851197249786310516929355821919583403378746481501034127808176137801064569356977281440095729172913637588657136342608554305892294594343299630761068010535927153675575703280310811025197487210187823955600440405751988320274268136845241327787384401895072385521911150582411138745690394448305771451367824569480077036465411254964071356158432698525403931059442805970208309662124449000434650089544896022026343128182467527628046132335494728213864347857689722653700781285471325602494277155441106522947644335228244524017415294190999508859545572506579391577910513765333136475985861724461896431174957917654285992184964868455960311648680106007723261265702881601329887790478499367676401402464708471805180884976787206975700685023886269207578439179288849415576503567619212440321171085576095208600911745685485449891921510268012477607676449571983973339570045601407401021378488024659585881348262029838391504018119205185203989912052059131670777605362028020874521557901716182184546144462956709359216876021712753380006540532444205027300232439908351038409309347882523443889187540731986793173880618669147523441057857065691929332839916314264144569238459594973655350342676914835295550973417324130256583134566981662036053514336998213394070333568447298007232265602585428473457978650313143746299472013286382644729472394468781951831134717564089776226381177499885314819605916515301806203069332196260763115212069574127513364902399795084193799207711077025033245451211982695504096416986448146686106608194462837090462029856901751565894022291040875080804451506669349154282547893684302635342319858618173763695109252356987220407028935617023727339703654358202319590448198993573383835313627393540949426479281035720637428492276968131976685372989903524349632092580487987056222941671321574358451166181456665567385756218033054916783798608530852360965577952556954223687396463977249762863331784330776443710066957270812887671770250145479227517505242933967950486816205392382145792967300633767843986931910124234373051357692855923439364421015761154392766405369787979956836504477719534996635214017714301961485702659326797446365204501634413429326536274306798503153423122044710533680786146987754656869329318632359378683386342356471782667078357530752249868692881551978220007070403496007525676507192271045881918429246630469508019969315336689098076714832801099300881521977215495363699076755894537738834928590418101641130071042106910218569652871948795459026954250733498460441534838141631744271121696052432480456324950977184172186051230527551801444166319050390425523958341755408416048307444791518836570446606829877333735587895585742125187016269856765120942951450958413232622713528686434117980815521410088487844348029244397695960495907353018005718681926158689175363151023837411819673676775150934485955126340226629592778136588950675754676968732070994490075745199659397098283969343155327559111170363576584986105942294169137425256127588595236265121111019145726192505446508028957836942388279924799460791243363407719018664613935030693008336213499942371633063277615792720467671997661956966982570183309178856546179368107258053339800712749385242884738729925934047847826156136435953274276059045147438099507168523456769149542551853419815818656377522206043254063135320598222549826467732434387989736747745585612506582001582011779549418763778202868626923296654413667211127719231599252195987011652010988925200795142652492042251324258907302792946378145950204589469762174154036387058341909193857460232812084139419364583047369374655109049557613927781498975944732732152337826960667765693610928589977234404282867270622660262637768720980747404642105967532497041393260746873488225641547847552863530206768802992397874816458697237368699491932646049326864936006051778088891049111960103084562232208268830814097691190910611832788987197720620885798241908664708792422777329233696201042370548581925667572151890759734408693308958731892627656120333572762998436304841464713290375079953010430719287785940236222034811765311590087997270670122523547999263469245123789809595151898781856258798927324710280956109695525460336619101227530853140879860304803788373883176432696604865127845218828768673597453655385335547857592029253542711244839283872610457849443587702345816913023209688086384860319530267761399255845467851320032667169950776108258142909888082134489249506510554201716836023928027913779409085292953246966540311583897092215359413225083240186903938727223307601479122538906642678273020253496999140629441731507496722431471484884448784777658425598163546206264065448042385615804853007501622672684563596958153210564117674180165129160270893641060836959677827464433982577479929740948451372993325629854431234944275272008479070939657993221102732441008572174737132601811403819966522753270111345336401852567071458612501521564256935870791435244264887221048305826346292196903322112477727215824269826801770974941084843440207961808181873515715326256445911029980451994245079531081802370997598604505114899021484159331523932677641827686054184383517809751253041686106450746190684209706396489106689596774858041260421646103066143554353708662740947935904360503332698360203914463602509733513194173303161911453433254686300150228295333705289806465615053532257547724507035604644352440991397724373079789891200317097373515231853631730371940257196646762669534576628114793207546542266478052877781935515747645487850736275837945739825998225744861203429169013951540707750325718883551290887165391410303804404515530306526030491027653204194328550135527898907134672374223082959511934093916450403498775295910968903781231649811090505946348026667997988917164288696733998007177412187641012199873923551806900412982044891567082727147956752274018981917400321670258360925539387665147253267253934833254806521803524891782368557095996740696955310247370461450301891036481814839342012343708640314493780714942668234826912852123660339474474552561895363217209066385088171347411469850842116249840780226374443842406410856525166156758795884476541786029683064444566835802861765370920565147668578309327878557115343849435238088782035287837401867003240479066639072129523708838180706839196012951736913776214489485093761604082846603035925712276867050357029624442695767634636830189133549088997453129333222400520855657150851072057864887654124587211529082261143693528652167022758127150117184070061019362834619293516291114723167319666239271992846435658365888776990278320403372511048605661541392851729682650536602775108064363143543195605018936285377959571426853182378812920908942729668401383571703370650255448038450804454423318677830135045923981869297770027317758585364217176568613260963724224147133209384912050120687072203301071540747486222387961096988478890570822760834372305874092764792703695387379737377875488396959310497712960713236514188743890586208283628999174836627228475638804294152725682746581827627733046139319046815049322752048380107973342625240310102835336825872362549011849746696036297041239221452857817824462594788984793320517495907462471827451027505388382320155986355109182094221200858250056736185048691175078214677300260438267187155372162816413533393652802215162060521062982037764445587933572229515294594300006995227301479343696334294908916117384184828199603678248919744904879258313661824028647622929308819552727787773722097180303839556392251806817698648455180381770675190616013011497774433277886075830837455850828196406964713366118249135655279323067770096775626314894321264852483250837648539364142549594293401232441142055802953621228691926669612077574203326657216207999806302293797346927795572921664256731950118725075781795343335738991783949840846840160996876329214603520599919596567304321848081913160728820326103755527713874522900549231472157306075404449549323765221494057425271117300203257638553757970153842931128253411355040614273932248682369856985246589559539769047601441351026610936499813733789338347717975957940104784257835817648010488142449791012780494060609797573532057665915862008498022115562351161020328558285799483894737580535205260210605429142758087637050208515046082293657691304592451646835872198307550933759274653483925034903944634220779024418531803391262067011885032546325201628226476922925286737438798558032505275747862157857987739753833351748112484541665732448909225941331350775966558128988937009343735773243394739105736142826709247514575728699703506982577210360076224617167564564663265767014362623516587803341706057750297168820169496977209256116177528383107245729109757374074840736718571581973263298201808005341193146919523914245457867792367664319899378478086704350361787765338811238229515014024138981979516818604671763263609360836027696135952336649277037214498732414382943507839083649019550483759608229091320522347434275984572028176809316672040998063891550373480641528169324221680499846950063208053725227097241979465937806364708544716806177179905631802127693086870422865055066204643477965322623453470594327433355992403284865379100849802424730945741388451607665919261203535275802637051765869991398453726342422548375804358885107716287328463695840634671906152972763785733149962355166712886500970029710489314262344020208345427638914617741350253758892054001430968877604840695525328887694456076239601653313499120039438308226239147537878061405098352577593309761591824523696354219141788781684925780457774645741060383195726419737930986511449028657341526291477688640251112184109247232821308689752056857374756381492973170716045983907496685912671599191204794592036770445674552965769724076946115024578139833438772440387432562867385656407491077732838612682772259020965550108552209087235826821113216459458310511528574612414728242904103788539852239940621598752438893885793050457493356148283252640535552679060027486272856269403475348296722667839951510347808851725115046993366758270061489792671352576573795470561837463721173540346064688461746296107618200852806169165150731632520224595244863624397649662701125496503478949062602907161128336262354390511571948427452810873549951811113022562302779454109533314857412665815786839628831973975200083575697987369311588813745708117406125633109545113424806253809668071030962776409838930131909558733799796982358715766182866501301992405009402511538693990990774329166908759942477071974939317615333438461160342712181798213643237586613820567939580564237910575493105344210414454384960970299054436796321342317297492524893600477952243431349361458314048927693832642035560016257580349439820932394913074018221031234342860422957405704869767071447789602213555381949592125701888193686497133472472674141821522597855745424294608927668609878554383465830122823572931283126685038008629651487585073129800555658208287252990457798994972556682511225072306041638673618720670454255453008651641514851590295799450148489173382704821371381606340208659398202799991440000311191911738801308906816243007690105869871574904520357017549907439047823891360434744072191880140408699388124989577922812162774103872234506187116785210052580591907651238376672854985565985805819495924513970610693663671963392433479050164363945554815354290919137992192178165199245356414128313315742029629821772060501392217902330973683195595979404636002411640720151688376457330593424775358297320850466080876743234532679026692415253918762898672914186408697504383965326078300215844829919794387939292310274878318514912142636138160281650056223878098592324687244291591822617681576271998410658479239433936861461524855939128517406902759145970660251925839185822587576108583759749038793118490598760285346604244649628652362104234223158375250952115646294997125170473504379260656439722868386333815269712175869934362921164696677688215111111873629819835889517560980295301098380951804229426580359852901000821492935317300688065073260601025413252987176023400597380102627679136301995449666219524609622864328357472064983777379285829087251313606317565614918189229862097701707441981962360028397166240093752017194701090806988293754128759710862180344116060705551975634313702552289799747251869754345771455008017993408433374227875304028587955341195521150440336941281585102188716463071310735773614335777435840433887003710626270914849157579081196391123169146219232614070477363045931282729184245518540072233108058005717827109811953051296106711132103322903944144136793515337558202932062004552335335258496196494727143688304158614847785162322511423039452156991052982859383040143852460163592004478267685962773631739149494642242906957820728453567492371325123485737390393563950176413624863735069713708327287974624187526635517401567228184235528243678455837774153942368000693635235116833659686867339349030512000193147778290496338141608183243519753622794714436324234751735124316420015508958344720169474872819426597348348740647992194319310346148703534570470442283173821248510250313582570072895851621139133643585164673067145418145477787245256357175297692503978693682969633695317126420945235847948702255170978573259001858646358936596220210455704185550053339660151753835394187113841509766616618090523385618595835196365871365428904384115949342680277174892034381339515639395121560630893618034382619997109289022021485324629875656016924849283216346162528534521602847069882983056806374006441689387864209575527224959080272088619505075263990037133341527190822085043646328642730976129065047575601330758302356615797048671715078821277881377748261732279250483575462206288293275351591669471228167172712107193580863922960296508101144170835244558568494837503829846989910657792117075351479977118851746573429423803704562222513268350525655312046697230597031470524093955848292305634651546819103248807786198038621706311919503809427503061211243004587030572997131854585972420706435234625059661419376388953165351775558101236712232937669945149626490757314706106925346711015850782130308027354995882737887854394479799128831659334039474258655603526801580011430849438467948805304063171760767558377887533164102189395621174118053670221798915915510634957682248803866123557087965578513425343269570170657416367145384218585997763366275123358574890006474888574997812781309575648171402580727218942967146724403180329409318263063347413897047433220926685644229943255807581547856557365520594288578224812949403641749767560358035088140974965512049779360084291052739123198231335451149945682008013743076551154464949567677729907081567695530651920193998579678892313070978576279405933409186420638665136086836909505025624550632112618492274598458345530414397371916846682158204531231049796847612686826912750934080485059303456742123604977298297504220041893741544682451421282954479910930007522464642437470153137703656026044876878971234502332765655833593428935943077659958042965034991846278192497841726516836017422641788229838313216657081583444614024039454848128767598447088254186287411677181032515397627636531509676961421390671068292752358469354807972631019569330842311350417557023215129848857641367136271872297852148106511466598902644544400967746238038923726617159093954436469052097813218322525321711893549798972594229365616385234292693103832686452975614070919019435581510207078584251785484641603322008758001308932663011458236159551051846174668717948840928539473609932475888094408138957779308414969970447919896305615076329037575341579674299349037380688009305968751019507180748947392818856051936380967193551435812721251923160446814963299650322218661979077109371456802617748207386207841096579546429537243770239891962507107153749191561570522260818318443541602595077617662128317143617011795280613620461699926775638442584872765026008675249642520801841846473272865534092745414169569287478225847829675818743011244425434645836371155910090693263318785232245713261581397917190783982310056479611236960350763680458091043134502674035734227669851313703008713085957946885382853523183246169086524489636593979174852015502717462528039789263042519545292878260609542299266199984257140041257362667013421293924295054578190969953312589178838539084667961561334937100311004679928990741401176609119824165253673710057096111605279997143697223737258488219581817688919067140294803271315269446947160759207851247685085382923385142759210725995139150524942117854704347603648340049106364984193290293232209167016581104108640023967933084772664178361093883623890247829678132216697859581944589442386895325622883026129443305267458369566196711620448427168769336681123704966998276071303929015018656788039098046888925148477677408366462625432309612522923893490219532028252124146501750107628158198135452274387501906078915330853960125158368482606044636419404836823962113702589727649856884422742336013230716639760830269093169445806066788448715741020912566254869214347074561305310371435392206844486026764154095188401954982544854906693957983715075735783426138072507071243878516377755216554583729830684950298023409934599736823352171394647431912449000319789104912826779151927796125651905784455261704686252924074921446942365808110226422340411786419433287997589774814758306605372585277058711194663663424691148806960690048465070144443203856207566568258597255363360329953446487151653482880603611699419465139583055495299044972009792194719188543959241981652099402371087490086895571483202100478286179437906779828419096288599280110832577177762311108164181693468808868217991045414749628540188359442825863002102622233653761082731715122407012155350947772875066304940614232564027495772111898682138354003855188456975894905426783325284566924108228148311744276357691033694393968198896254956359332504635642473054290719457679708401275108258503329049909325261297333834287914988323258511838430201210012240440892958986386979621633001814259165562426830643607837792341970011871229803688163070111940578387473577503142801222500214622823503227251989968585090109396738643793969136676182686711716359773720618539008333871724684197041015028361916631460773926707016504540176188249356880971023997097773404637690714061815182806403701856281280179110837682123885110142654605111505435936220986955436131152059472637882437244065040320724549070431362531432486772356834048430846608902586690109199866885373030920412467816066177984572751315780352531175851817190478036043404457473855493867638711260735796410966094031833879848506561939182124584496559654356680546176683679935834876884163396812374576770346077201367317648040284250307535147588442984463911115610626959093356025066353649160444583556339944311748271574559006607072107909547488148398469638910734887854417447991287142305838171435477891087422466685849296887425080965032819823867103268374397418808028995371895434984190052871677278129041368932772532379581098087270566938632180025469465290026911251562938147827417786237674168791536233560290171317109865251261200390960100574349581208496016845920232406048222402556649388956068014368620426543883753482222167696812504226355664286189398537937419980128420246377735641930869951924653752064532443052541611886774842919643123529797828544365145954587752845160437363493967327713181495137318036505140165941144268588675114223263286619356445824856727274206179280624163926641347055412929656755173264383069568978913855794654316128756276319418071563149999469044017739202199001413472373551864973746572955214097836244229425032241709989224585750285726166783374391814477029667487887811993049556212791971168198206461255202449215237495791530728068334357246392932910119732882021487422182127181917027979677325611578155257198308445593950698771102285616016255897634950717940959117215517595846498756319179112212808862580072416192106065826172592416460831795469871621937749548574773782178232802961621489917322077511902309449181080617957364372992826663395111758684784901556057124787165228787492054338693903755953300320402605823711518963305275255669535392242376198674928988173297717627964863894588555980585042151798993475714996825527209287534106058236994091413229118920227777021548197519947288440374420693893303415108488393216958412549193548269264767954502387773664887381720305460049951325975616997551081231835506491523466058001347870548549647048001016186281680365397250458320555096123869248074465712073649228164871514136876459119434743312937409711486529715122751475158743988926393699235469537369239149126783079013721644659813139335378219842968615395724423070619177395347596074966502407511771449903639047113522831986749733057937787621065236686491602867920336103904342023523532348837024858482697404911327989157452775733578325337513766380533677971298693676571245644721137717467490736446861186246585391103853198891461369104513908783264381245456230098240143860485300307261868187937476891798063323020594166373339805765180509478173649548991119856559233184689211392505607746504962885695060827329292896084350046274826425088661615481942816895650426913508306852875849736844175138402977494372458302720834673270193274006469009455462248200972489945276587869967236561421888575377286912831959183826533833069283468671652177820660474506063679288445553738766292589317219017619526116956017616248379452181882151590253811821449762957808855737543942532271403074893114104214590641857061718909241144505223884040640719604761899433669315450045476148893029541896935525987349439084714576613746049038560099824178821787989653493939124539613093074581759975854843041034803830067355052055506888309938155881958214390131449827368649446243464754104401935205653314484332500276980594495559098903359947409297851992643093332012085524029367430765108388144332509251477432258085871717851639053595571582831440199034248997000959317582457093616157837352000807638864975735997678689125169437965624064699473517596727102757732890589469769727371271840091273281978041854061731982157730288255284579894368027660194339185707865170778463473528062591313737889945953531968025377634518200543293189013674073003789853647739951994621177078251442847625064976887523074900379692255642652331510791090373261766637647093051063084445252190701454569812882088402809059294045462737742160882262744922085781645988658284215567808280651830833001622067566939060176926159696917688651207479780305290472620126236511375041547887313919353248744961880500011082582174844558319841608848193872165960779377688914723882944050549664236777991077989539104297723426721898037455035278688445779556861666549673596882249229638459224617980759034390978546625364148975545019510470087020431150176557284554336025784858342052960412388072819437182670073664944958402005033459470418304997293442056034895356552849679386136298134538708774034813485420068523695857222132563439301099652688600234851074786647836203889881465118868009934238486608626647659055403015321987266790667327711845965026658970724799845000701977596413903138031754676519970671471927789002098888382005284478131358397983775423682851533830053590452966701837772128400187335543127915968911224679271119936970043326211250927412207821922397254275242134855929251899947454089720390950833922777287558031140668805591306293399104328549371766230380606466845418937936577497204064888439881028675725513111113328490826588832947304643736559832539509604830412395791590419748365969005694870915827405595645126053793735811351892364823066504592151746645860245011247940603589028951892252985741944073703701507440943854684547756628203067064261868116629781579144434538462886388822833790336843092363424921666277127815654322010139757629515411990503122095863315179203993630208044812219077837463633092930424742556541860311366784498966220732072421611410996895910975732266319613429001637220138234471824454350285153819897430363514406979924788582362403110147952882862308555739470101953894204068212436855064896602884412892457427631218661214916258832896081995040794395669986235947375408343376876810538360401514573322146214790534546164760644336371659791784578695590805490378708008546789529731822281152632427331365000995947440597738697967002078359733741554802477202173085886865474048054942550741442340836618393066765135930696401861012722545494346265484579050921113650363616640536893831376917849102327226313866770280859458409013545490537847621148979062135607711051423290000201031320356380065768506202067595863784474174284229062635870528962702451881181755876649164222221166924352826116290576393045620629406404322893071287654668309837656273199436601091667982489935976768218896710634803913360233005817863342976483543704315675710019135929071997531692205222884770074860604011317922705641281800593298726853552537715871375684820536079858679575262876234309980197618567729360966782465667987688417379834201158347776063012823381322887169946908700975304891306341113886524965734654497638964656183556597625089209748007472557236452252363845257939146999236483819391736521230051347264477295375356822163747484889101577174702518583827140269321603588303174694817059416180643959150955432682596670125274242898533861457673869919431752118063001814210104453051861361664033445327244356337476555623439194113799964437682368384037620274270521793894644632123711320351630441389424036969301607644628974149756963477525074480159114757085733989075285836970428069406471203798816066487017101307353745090443641502233558559790435576827796243808075779117985755119165822813102087044283525076912115572658907079568458521816101757274600322123438507128009728711185710650872770609541362562565497602506959932428481775959122073696136684423723686259086430526328373197840988236472133750863250565465610744215906821486940603881759725026807177133738816763681293043359713498839541568118094974176543045903466914375752807168191301903451381309519167719034960580177750738743212142800966483920333376208188704443724275678240144811186054959562957997469516968235309390903853168421730311171838875195691394503278564103490817188154555113449488362790058423749437545554425573296019896770746407231425607303498831893764418942325458022550789489593888830363036410380517423343654984441459227882124057601650018866481759061170856447651402912209320396815053455263837570441388512128432223416126389569442507070611565212337672850400438861161917524656682243601995993796973382924120448516309199253713542949334786402795498598135516050692601570378602303635032166569052239834549839029587998356565881379827951070386140622592813182382961748937210447156861596583855743068261439909590000316824195924721779937168514285400706904742763914007967046283957521409699320942950008765188486581262569200738280942277407815603870608559469588598773293763953357535219911082363071116730062656075287910965814750505965861875495699858189487292739795617012876931813195391086361265772290111051645333374196769959918057495257851639822921156892709218567750357369438805554576230185122347283897944217351879061712159415824038164420647376021138016877546996885802173253286170310685004174770916214655322583873978641955178599633948465816358951765002428872187443765124914747231237043035157427459132690604479856883342565736138276713693659541268944354801672554324524143054060641011717135473086847183259885232198891634767073060118920785582392470971888730914089599090463578289872785412705091330323826576588951159118187803972692786089208127257798464774234720792376459249391083749427174521823611830774550167967224627209452445300485730686683143197822712589153652418425357691729912698077240330728957931477947692434077396144603444807301605887732887646241406412170234916552170737360500288066120149720312383320052417096397210320226043099646123740719854137328436053103403808419894510123223323524769083142549839027600175433348996908406055282310931929751952111580685210385289195694878124093528321284700433331151786551315177400704132217385854760862664994766968564398476565985044973017354193508559410169783936815387738228042063664159282590522728916542465691029000609059283296430247658553687018076713839179761664547455458541842379311961957782780183736249585039303672352398231802149766464249008221488285245490393367093071607255805964158097790173329269655163220927512616702363697042482177165197715450339348789315024202639482359269021996882978291062991604866832881423473309404084739237533394011502688324134045005924736026873639574866780251385654897853052611527115759963525629350967556277400711798552680008315839852691275554516195324630708483078189712891183442937642140150740015322027343690691991646263282141501604888908992412806982970802830587519931998999620052111372105052586505475228385185401082797127349269497504662062751962553239312267157480079992202467581310534390951521340881047796060479145508795592030454619790134020088078411413037475223699694598377463001910417973664538215617464934075647868683259662645636616698942726280680227452890453112141369105316866736185413111869509181029836566414079478724343929057089583798890869264871986438029025653581857466102558497260651789707285793699883590213379258606248624745021624804479324351436987046668510937405879954191911797974293088504205060123387117554437428856399799127660369226228643793224797165528272804138843611620177375592160916776377344538365988795431603522256111168827751027742510800188549292183504770649937545855679813451518760122370929841439139082878752961288430558060883524367515268864287788264100689959116368095199362337862269108432125177942139602565630851415133113375925281431378803106588377260430668680217298439227374465603015942933794631047782694540448418646170076646067905528330515343707485445580391012053180882416097211073706105404884695563377731823603194068271919848302793325991549197267202866300155832635798572530417152907123788346321485391813920500206538287411671751222961301347147728015507584109110518893794913610767516898030663163467931204674101042473817103129256784057734986281664274430963502717010802934116012802986488566713229262659137145221815135544857483499344300393378917498063840482731689588309416068149897193092637061486749155933747075874546929977429147354111178996666686561346766906506659615817297129386665578071404269185490616757481032327801495736139728544125495822337942352586491034430640448664016308181244193370656858177189620138002214440260984199831754217951984352163077281883681395675978576960998669906240065766847453776688308157718164095284730836409895948551393362867621257948087708145188510868136633937618004788869160229799774841097302756451560028156206008140614496332031979695703071582444221041103457352495917504499640141758209386598449636950661506663651401242175557268810275211694948032639775991596139307350850743970019985858817187369907043972841806937608055603555295068098658436590102729196485002139820150493776576117334676172495829057890816108183469310942591976292805620553627945752082737084463078141330465626019437668780031249161032112296250765611839341333519341497994202273752200745321555814081261395025617414495293992424567308618682373364485103193062749324673335894743514178164637063900006098256963498416092366274830794144876495873953211850388353517476012667073438778707316833112013967159088046812017700746316480891528462545049672965208605421274786554611369830155969208504002621618346810194701774934567022489754320430799638893876399212574435250687025660365930491133595172340168537658467838664055186150762564399465662663190835570027863656693437097366762948894241496849836766215685388883724920683311987487655483453223193261780956828537748286173874541597264649275183542114351440679588412465427157597859057415360337453604619241606036158683470380162974491306817916991293208131636046334661157606644811254343441063297101696577186973445517763735381962746396461156008389449601265181691240499202319917004297803338981492637526762979249140788670759582311826058638901524913708391089941789870879743217268926707326809864606344500804709297663832573662502436017343336784493600882747641674506137733025229372519190247079722549319234322424219200412523602927899974008313157796314766907841814531376415668715681832607106166485860146890319742736447244600326033983753014013420791884524339258015873448628008528417348853524593136080194599857465465279600247705501643879813863301841724202281566657293186152944715237614658847393639390625301459651897342025313125950487970196964441955342282319407886779913229811783222029337302727658255499963555252534931788072775800453998512099336267311450650511892174503569060528634292757524816535914468507041121452087663605631280817099961500212933715384507985156396172366923789477936245570878856692566210200459194422262820945958526900439140064709247973426889571051945253338670625034172613584487794141511290175665738659656448012788267149692350996383314219653910824281071365058681661385942556558240477274621139234628063895719998423910080693452800098593586099087835355430809032726662164039118433065482323670864599840718092107850159201516772175592979400800187581528708179429312171141130172444241582721928428635010168048545275055886458657431815051745489774209285042748030301028144571007043348518412178412679702369294859446161923557803187679189432555834816674406506404889296512988353401886007930258460274163237905040634376019455270528506277468112785044418288278630140357982267919285750396822609684615333862350032352837733346615904570165714864741347880377120888123146168751004232690756916327138090721793939789112055464198112158260190622410886643208245316773168136044408972918800130083045379060905772673398359884443727408681708028798767252453506919218916319415298822843365577562650973252659508212636882481145146291233626579223780862533327100300343093826024464070092707922559955641286069647411382595382043657861637069037803478463169806260501101744156352488334233722813414612710019938435791289544942881707692366961836265033756732546933842082053857030333787906890929408916007712926905791968528991500653780003929437475841829205875408522167832965130227279867621825005284285647471619101909192355537349379132024118192225793889476518583640562537334950560406957101527587894033144106810741201817670290042664932734708076727985172209868172669664170539119463007642205291033990115940159556367456886781124276267101359503283410031939054645153374293407652244716648175312528159280173033187964135485269508454076934603916060094393926333285118778438169889635897020763999704880755687935702025223116528187954863409080799608244412480932982962393121340666728712522727544425703752808679032189827171861300729153023892550791802711339469651923862015822146962673808129169822813612842769937738986387400307146828643826579428613126999966869793286758520048290547010996076196227305890903474200532372244377412810602934357811121468757084052026513485051592063147803623599316576359834942083683319745613187904216342984974562339351784185011010220008373279383019624556878120197031082221583886992426472797019711815181992327560139259036845395175475422469122386358198305912140460650414641519967585263945891540496302221119130778533250635091676579845965460861722805411766230466032290151883269588661899866423735699678972287197054797905839878465617581184077663188076914782439056323847098184277669192029817724833766928852842044456751299188589635540226092011317105768572918556880822143580015531965805137297592331578842428828225567857118920891844202061349885004795530962932683680561322978628296153416279426699267281955758530164242513821871313676541804295587876376500513801664039436786318139575703941872813988897193574793333913643758952813814416529431077831542660472554972804972959854234668342071959955221642164472208904679167347885984108363064837870594566242523482895677571967630011241714336583364183024527575125618431969295166162231205288010831876051393896462436855927639721955188465716269873246270061288915221820613365387362050028336733964958685012369072869667721374551920476519176487359981014794239110745361350467086304002266940919822690426087634589032359808023556559890637354888222102849600472687823716064258115381486916801091509842295174769087592295119252481729510667412142083890263614566786139337100107930232352502380373621471297849283245881219518860069698300465545660190943657566700378804763353413701546912727373009410246621764619521662944676445694586328155968408843432685213172806344287257505264838535450444608198477060237692059785687623875466958218129977764398058085784833026111591118040607576136057878194553644182832190685299606813684305190915041813386677733763087515313322740101029027718787974784135096648670545704568753044754988470169094037628063702979528078809734492982511943819794440292687592504722333108473848952843348325543353451275563093846098489324679733191487796373021575866053724122194196880087692603189063854551837979258083002560310533834898601446216353008797765437254075478884326994895471029434562299166451047044529949456309120108396749025019158193944487217196627659615797030066255655349241607090107552215435090020117445677814269571362895142334060348372125273102219818611435233664448480242439435296309504663413508392333241749838028441694470767197224278218045133643289147081843675007934297886203042657415842723275116511829256921035426647151721924151978081953045246756421813510310306255598544771727599093765959149400803337482987468074514993347223309971708431440477934738265034084821301477786599814752580383740119560239064474812507025250544430600663493319871264197451641708494944703511877058870207662850864076858408635234894114744598774612579338249017264354547969725247527939026733075528498907049935248400639146984273099657557883615275728353023280235582323833686144114091297408666475312232757828294504638166722790918997106565383550348316799474877765898081832203537308178670874020486333682704033914353279372336116172348216985989367492302192835592218230526976378864109050956098999048559364291134682365398794531613961775048381204242888232880752890887588047932113398518849094269479130357250392992319435565602604664312202289030759242376019170827535241213201961766210812109898992421929028934676977605558550304776146705835527073022316480337902376059805392230000999401410216294560372658417941265410549865249890933860411962049888396465578537043791363255227993880249980100872278798808222101127859440835959000870430993599398502446617423055495234664382465032204549085272245315496846929923444928153254475745372121626889355303255444313059198923317313615484251404497404115480292010589242606191322241442987023903546048197225823513746811774844125650171884076657254562698251312538855920259415835952170845341965685921318598046632485483346446627613559362214226115625443619077516333540662861400722047078445935744303806997034653918136748329734061360137618021061227031638627225962904140838872439988940056368958596411666850554271576755522566883458042637646147882549375010973389184318118192463365975503588781461753900172419820314032039633178927180247955286939102622358364445918763952193788550056064245188115153313140475476710363627588642104055460777750773298434441557132482588732546957932643355030150349527695848679836072333861889452843756471931253383060233265370513834387702018662632943862331537839242833666084879010508754963957341413166595988655053896861167107740006861611824721946304790569814425855484454959866261755122622647127814546092866851803303415494727720396022052793430095837410050784928204190101366628975665724031756609033774787936152620155733606194306709470198590581090099836339427216593167278539507193437741845590084743669829337953623702407821461417119045013483254425121508932125093353529697048750391734226940248532139980567630484238655029220281699454872650665533531552574801339460986857687430747164169293212612705628387148460224549927097060812461988577416860656063183690546894922032169503736408602037099263984831972239925541476377899494398718949388434654317818636775318327598655832437762516490526970236272520343335478896160693353627649685794737904723354963445028697301842707626683064944459443632584975362283128152345063220834909185867872527519523224179819127782246994897815718378129530795895696069198852779998402143549888818089919141133565583907864471939088494666733563095206791481098768609889181602097876611360852300916281695649465695744469697861217702800707925885697044720997772173339306285266358013545087407954701674077512228003158468021304650389816899357108873939128247213831519903327300487684122950770728644289358645649685806210418627059783099073296246122555496995064321635290884735199026623405351805963044542018787060765327634011511062818606577181082249226791394941592202313932658513545987415838916056115742717524636810987014672830788550873487340786421217537398314923408036196141635469736709800877181077277945028056096408318205075100278355528980728888194032432580999792173012206962663359761395651511867879646655425691344015960572669156292886116013458303228448505281150590326896289090082163610356913341838988442534557662873652662505977771345254286954195238235200824881027340710784697334453835342513468054667949716974575827660202863901901143084945577053892602548736906961380484072092484214388455563550200044435692166185816590301034951176695317267145369298464836058435211567789520565725320060526855073158937231644336711069765805607323273655428969786516900486779119833396789384479590278267993462681626474831637792116783434896432260532579940285935291127222050369766699154094521029793401692104479620024487252668205294402398701684340937301143252865163003776815741136418955754301034101861751638018066590112025196304434558177331304702139041186768997443148936120329298449843642861201166071128229434154951627346867528619205819419379045096077700983020881572589992993782119581827901643518006033380319673156782133223259149227057027659393005780760700375292256231821116364775083476905966551728785794841847380648962743011155594882823864156403967159991963490353946168698061858965979522079528812090890839781725123455864848442170838873364019895012919904980646375259064107215234520082389442304762185927348713466519071254214697960541054206615300084227990694325806283768791814692155105026909970657034053945920239990961856680570779459188408856431868183071768896071011005457404261287292143892687985138057406645354181846703377839903466862960799233431924609271011762324059856247105638297585019968982417619358862082541968742460830120737890132102338501609008869618877829168514933310767292206556633825068422359114978920702549255596790699236039639735178530573719355853452178507293940177712166257580497963591637665083109344122862778181082375117050237140757475455878489211177492975828658434675488012559469493945799761938121599218126624265576107569397458533797494555846435563852929062937956119442840264552875483636471905382445895885337440223021801322228077815081446527844990788618727092145903920553491170624395421482316112728504489879712702173733760568502160782141313729401756343131733991465786717523946798347908815988713912748868900800851557375457030478855478886895308150916839479047260867234933798887156954744023659366876232051412333033679974433187007985247106672170446395379337786621930423438989097087844007172573204663061450342193491790999236135196777403396371004745489170344351310404107734761373227764179310777371885488384143192515863205132031884702075687088467241132158347516302297770727412853303088366414361795594317976681923349137208484282948873798443810666557591686958549860294779730575960900580084848318368066583093685273006393625688425249754536999088641889262907045689488260851019693431966618761363057173463095397804117549941962192767687627921620710359171461636664635578001586062331548627688560618380362356055658532962193884573585360645287412270545529785900846747885043286223424852713195075440115731144871211834751221016044657555324041107611568658353935838382864570772759778548337327765465758706495830103675970173293618926875372413631345902149599683635446623133280935181192998853203322197291915391569796360561527325469537842558725676127670135602051333503796003117397771103332820741832342633555248578254122432841410900294080941832787285593371462408528699590679296346968684392931375632010679435524893869368702253204010750617654369471823639419434964676312324420626813882027378465805835246483135121793789701194742006410598195962080056948661255357627729219898544060615199960022343276696245632427414879573222671976191106912262734424524490709779879425248146253915946005213018059104092933706951008775796397207843764136485810480995266881922436895532307511146562278019748414524776766865344879757254773737491351895689847171412561896624599182185840095175636368372547827487227959015313766324038824850619202094554000754515175612210902272052070965619563594512790009797628218496857840713160928495906396472205140449768094853227980915951268753427339056021324466361644064157108557483677670163974883888560195899845451663804977721504537300664887564010029107535048924923533935470458291454985238873359425134326893417448499481968844943128466564222408829598570576659940984838021728807153477535225547031527760321689286603420562783670683303079002454795925124991621810865641739708588065614713998910997008686012099735137383542448755334503812893356082311740349254031137854798145514516196406675703640675885218957491694830629766174474746356122839614359656756185133454675439147782641550148420444433979113819723985341871264174339981800584528001641750905175338387231253420938683533382139371444202274633593954102139145426908900162387602406354584886075100956163497418835122891750706953878918879513820741218439504507535681562261808024143378477947814015437495571152033402820643602922856932953833672507661087207406343733261949420995636628819244387585712501343656688906257285497854363861688725972281171424567840617961002403383383943228475342409910352857871360421317728213866692454089552747396336523638951168602283608082858463855978117208728017637419117268552109442192272498184482174261610431788044281712282153469640503378283249567474512561498414563804813763794768989805820041519642758619836037849517677954133024004991870388993267592079519063915083043278551511988847833470382381988665037228757102424107517865417151056112898540935448742935816534447472767867935710291166989617976367935864698705652308153369124866495236640376507546482578225154394372991533058221520132305140523952663870287768111598418432040850115275030197234910100800318798277407794604385569992206761968058422301337492997268085942056026712243578321801569627517596541542078331417811859869221145751264616998953336763437619896737962346109323860049165060560821794716757304370997750033294656344588161659762817813474499177533550607029831903219778681854768762430556682846971673804099935460014605838533738767074319192454509926303024695368465926665296215198913412171670522362789627135730778654843224705355166965907481670684256156833895956360596350890362816349294855460591388833147277255544492494979213331901628056164196119603182232172056850681258899384809623314893035376451343458028653003905353180694231513080407368701093594502088004147599092933945181978561752812554978736757578444431653382607873403385328668254737708460509771479208256890988866566921188768087358950142766051485292364100959326292768237084015057499763463013002220993864318294167324823176853658239199411297063297612162807320110271780611450510790264732582144648431101226977322629308545737821549458573539934592632880026441051361159507686139415690368422541574286337797136893007094428226630338379061103489567465827875197917293127916519707807995225558364883393217895286135509186515169700356511766272613161692358220786117142035003763923284001606653940957523240342917404603730754162526186240140188997487464591325059694522771252213396659803263450735275764352353017429180212973301356261244235838780274285242535610358234276345072378567646993861586725082497065846963846892515907872552391207953216784308107621517964536545574076483976823074744929720931233419636059305326303874814710555234335457830129584102493201697198190314710070000433549555678020575330770218299260128226629427605436287695912822012744484809213737906105201953121909337471598373071207717677985819648126431139535780373937757472638507085848089692384309301468267008991603597823588356384579419187121950221380604080941694748664945511052810822178553326745838758719594758441310850636865176983460300535836586528803399799623978684522332027428557435295493006925786211652800925887794671703481822434717584357214165979432311547549869667551701008502498450754702909450547219793340161563232806007099897760781148758270806164865641207431458247483658016727224516476739658903844485713859966213096354008856368852849668095483926564484564016334247363965740932420383434594971317510769181644168232350763403652835662876770823916239262908571810931575632309002169217477485425478458598989672551718361837585683011737214475142186568569125344417032604049239995857432676345738296288502733611111571960491557884305914077042840675423769656811089893481319772550604653654998129478027898162476541640880124430816314057075641303103521592712091311502029111300263945467571804929786793029053012147490880820358556432304666505168191650438533577450111488647171102868701107627830093389919843225349269014104734652903131962394648372197134906043955963868173095076033826716310881048876260485929272816301191739063785889756838818694566812169510143086859519806915571685776327309890863712722117418641399414609740399336537721174173755213908207497379256858012212297240037170676195184414055176736437857559733439428998230038906896437045967519393655921457511538931190962765865081715671992169899062933024865365359932308927006984123759964543636184735403444403808796808999864281735195407609220318210990824908600656121072881050397330125571836783002279036585130706373941477182105383796863647262994626971016338933795920027500611954419437363044749746232371287807255713198612679935961051855237273661864573881288574427566643357226474393571910977160673608026534592948744682657630678430207924986327998493208313940147555265626186445116087993438191019776723716230901731860326962652384495018992194899931211877409512961650436689744371304560867265546553404557482407827822299717118924420932367331123372445452662151233154043418888758539354151474570831218482510732950242787675769088451323394368551825932505119816113898124048069835951225870595401486801885514845810544435057154638658165437614620949283135646047230344115337649043269203884057855667869527349408890016679092243815895392676629760309861086211681576284608784879718769117417953262103616436632906651457687530101315938043642427900315780357435815709480184115041078521372575388254346989024219463378172266406601849507086108029060105725322716693631555195170148417076336743792276171480986540090529105380455480214948753415533898671398253847888199555365723270736482475456272290144782239308321451964215819807163260942364924239206731510043579123519975926700719247147872062277164499587456404553951237541480564094682352789260426686062077569745772112918142046029850074461537375850627639367468236435981177024620446417545003437210484450957172784447272578003287490760514653254689176747177614050832632537443004549452438123799043902441059932317451911024549095469922632879042907512792892594345229342314395369262511597579781127185823868866650797356470043326832793511927223962103899281116275745911225610096157614824054841622916888086987517038073471551899927193539099328991575899606473268062126818022275929264628704818429394928974700422954321098857196924699629230604307242958124187266191216663105619413632043033474723394851790567054996726325243204106841226028458998650083248587713406990155804554137402447316989925922537676723630613848753339726674488397049451202103119779667205960892068702943131959243498254410269755515309338011258853069063842420041439828555500169912036402774216779452716253339255794907243475576626664532951415342704302859947756554969365489608946457688266500150306758723200649579798231026533087137692087055755807792995783472285402447420932832990416144923871132050941374309547278589717561887091294541107970994857751760116304159972930006583723910691740342890106137788732544003169667813906079720639083746369939786192600234802724292742449774578372026191783883466162229580799857512738485173970309452592594219495045310688890108962500188207634902944015153150142671918691293670675272167458784993489906646042112804677323848406267034876538713793372969144398771607452320643701866467535109701658791211200108188704594213246721535100818513792954282878461325871152243129217675403098332836100534455902757834850089278063360891808052338753338412889239192776118223159497664705732077181050540175381481330228110442281515185913710568132218581558873210508252513436362593299153817842310264218628299248300155601981844062886286194808140319292453746663343563795204814986575046990131643910330091549794844993503889588918558587783976128376956067678620515458939405069299072881383927027691126692422325724086118496430217676455839961399018009538916153359441985787980193299698775031311282728714100413648371592327835835793577808704289793786791610763337665866636088138189012549184835281633036035443146904352706751586347832780966381267094275190375358180156278742229643609467478104389980933928289573889750002146678066399263824367967861539472688522176299820298903751647444306073843509355222136526737717990382972023795440962418474393200181800446800967383885100697876582671923301857953268502716106213428099359695760903312704721387122311019801473891362648587724729792682155818896949564083219857888902501332320102803231244146228760053662216834306843489048978116262479458900770908434313903931121787538809989945046190330270951638603993620204028034327568272043792720680222113259812572667528752678162171273577552980560803996147556924124674251812379436317220738744378190534109475676151854963908590597735346786784190957921347745551196118907228440179675249254308371421150695219215930653831310541038904215967067398917935540015035744866548767532883637976243120580999267868852188932865299103140820520173945900998818956940077854857035029657980311766877145306186900035171854659405303546052175471722188284096666056393118124738888714889122440154615402753458468128659356102048396951874358249180397571091845557208403766301876932647381996835090419839672976302868180819880113318749062749188128943520333189095703649946699876623891629410017813278849555849807894095812686289086612253568400512665951913407778616405425940680854836482031696875945991340171075837218542150326127389528625242326017070037517136393728231387418732335803051189293677420646982326770833578080989954125628271562186055137059233383384019528262726482408259053009483573572284382579401329705699038607862466257715909336963616466320551070412270698853636367513126710124504244045829434641278206141348013140450610354610520200959793821569240422217544439432342330562129967377201152556873684077813741068087650053905520261069743984988224861493515884255733695903292206415068513895883081001494872777638646924647380737232481350621333056892624697957819001546553708593667811236444713479725564898828036764803562687163255132300616309165808969938290472535420674034085003391224547627507542302079111031695120477217157459827878759658237450937157923095283465053889488438508202850583145366069980702506368669312896529810686478845457171935336053338370069741196615195196653097213697563529433764010388066183838267737907024366472868487763628974231254802160066806043771712740664016809665059474093812370191459706378019622185662001538543905875504675507769312203426047743276026552792080576325228381632459181843080031217450913963880820909940500716403374230084153904268541350734406370219755199005039025678113479012377056545667061106959165401671363623039279860246172942443895312756995970403325533330754490684193206287689064372770051215121525977905470277946855817651194975910537341381212374336647485088208937378786681142892927296774674052067421669518480428630594287758364845354859405414723426831884843069966111513721652329995679377461366931409369046316299489907642560386505738878036389741963575326043671008964416536218788061962257930000985171975085186391909853745473392020866062954276276291257359534987328678179260751478833667239890272673347519001142596710701031792337925414925399039091044801986203126765463343279836945858713619042510183809296737914717689053487499901741346568228330422451724121561958619512966769684510579044631912000268892370365617638167163818440343090684505622116460883471626150705733960359408080961872979827977974198449799112443277666181393990008674316049917996225868546515010041197116235015652637294724914194727076224790356916521451974651569847535349895553210980519705675737632502657810985591635062133295490314659530919763228331730793069172712759020738338415477640832650605937372211417787943125256391834983854495763484490909656043682314290103339657222997518631443183060043001650086920564857391351880813553055829252955444687622472286921763605032160727702545572062430239698004587333798550553487763670265304500770114032238259434533178340665028991797127229814182594923153380841185157685273466613456259518052571218734319672959692377255891731198554053854910940011905442294243349183989313447123254586571484719614370745995024822960623954759837658749035119201823531351672920662698848288506774608500672302722863745301143996593205237870651845654076659957622275940624061248061033511260340286900231174044973443666073570074815547629940901102156238435210219217241517198222753655460270884652853662536345093959474340992370194594326175167155834974496946530799926665634648461621806078658862191009389385858728907608747468143310926366191712127508535783521544880076187557423297270708878308160642211714047675292596886695498893074578743435278746532604649809040859640857865622245278523625317872005647568323335299888143753885929437873005294205841922987534641166469895231954730077652281423309875685886072609292360075991777390137843171833491286487587876832573120737852195900415149663551370845061069289816764308606192625055460878385251972027397492607647640345834816641575651627032824772910237108043542608672023013324409422050821443654779389188629695628179828672722054756245764988806461907763171211283973305237244007795133572333712516730683280649787509391337544112965828256139606087292461312885571764245597504809695315182567080235473653898435946999928442980962119084918522060747381226961036530296012764738547002306119131246020370509300941120384974108238210540505521375386136874388314872892843611940024684843814312232311893501318072239313244704262384997535832585204107338851029094462555079798477424526090339596143546090860434737511926113640860626032461048824421992864718309797599940410445625326888671419036526851430556447560730901834405106226665819044099211981433638898297226311022589060481298315011054356959416263955002851342089739102203289631738264427796924881424128841994101348940563892613864976799925025333167876041473267490724595931167287207955529401285252065670397364811595140988085099706808249030477230147181498431154349106512659617860419326927546913678852249508429112677960478134324472941449998354547238180793008627927036840261497056216671747822037468220687399332072545146102805406918979965371369391312429706213344866464218234645783669852277110932329188780638313181539235610275643368702111866151979662153822336950147971844324618302778314400314415769352008008820745691753585606989893531202035841877209826857381030148691093383251692224916058222950138297413212291158796539122558049782171974542255903296611128757367862303902720350658051622614419241133530088675171854223034722445655306086396210712061802270733749679127993144291431022926715705873652761748856008351383932978314137346058114042333309031609436243855289607054707464379712213611654097664584138176732360471359599055813439331344997562857469602620156390912916532872179308420653144753977933080674057046396907417025376756813880008919832504158687971771095286884063026736922331430361914882657463537049558102374918384999063249471964908157190820182335238780642049539922038638633214594230375053701459435151802222655595768224033992630877800490513494188503429914271991170548174530213133556129848232678598799102004839354486135547441755344277859901819351286487589646080483344311066344662384317719937930723511250783963851805918874416288192117783077699024893220359041057602680770173427321134990481817717039437264843014598291123393765791085252484918114501653246047107142550859029210542700524686009003198902626112969268827688673941901496380803435302185959847728226765635647950253937981321477234373329634237810538251810352353701217524091409929013748057582698272163572374006068430169975718495377928067716432057196471366216824789140264644579984150350095652783918176795928999162917166822032022928819947676976395444292294762796995424882230532882885875865194175875780866840417598766744001708395686677685913949655868590326012765436039912140217064259612296133879989974407408771995901062658136185755069061508598541476258971079247262004923606207942248784564031343450625961031899906362430854156618471436577856220151929695497115874353542809034904964564600056422777696264642600247705947800353579254109145042192164952829096766338332456113550047841635310327611979434477393869813236543498801647432393813881412979973298997920442675450775619364418013701132732805822315572334803480624335045156229998098694205840220361286220722002747557106139120507691280075552660875252955970399941091405134699944015091742476202043020326041826705136504265439581194906244344129385316280124175114832645594219246214822392241077036945046214508398018037537099760408276419410523273846333687675323866727878972956944530794644432723693231029138548117383160393923695861160768582318354409017164096037247376865678076473911706568149340061148855217252067313302106326885784893228740033201354771156381239583885064868910573522195355213634261374592609241051343789051005483200330174699623905662428123413192284694896829097760405727257744737961944076289624115461019495763712482617966336998733528137714968926895180543764147571933884366217996648259121465328663612107655880777620710165188440076678918547373047351809855342222314256777278826114341348456679843227009655243087450374831437784062181684360346211631883289096477627365060949793362069167522653816461086817013448518660440786652246378991172183974286186704099445917640748056578564936409568623769817377339564162323424936852892840689890291990952206219670010688722909188303619598655757017694257200492555750145698019831013260539257190227380070678968973401374964664385319496962256486415610096471148024489631802082731325628477735677824556857610787174271525282034594332015623819006479187903793501962058266544892914372843569103465449022649024169024141804798190810878433425511726103447922153000815823071650385261644371586020544782779556505590269040256765134305439011126888231805287451806064785876068415267371562139577241925124958982792193877023262991692596020610070070784046946512101482035368373504609266231870492415148231316429697688768133463113913806061441470415191767022975144109644591377982109414792765661556073707784901214086394311070272505320555463781874005991860782883864519805480781373789822231762039098527666216777066425056063694120576517536694101837689269372514324282188781552148698315373415903917000641880435972702553302313561266748161896203952658545887039379554941454782816880396814616225186181054363147635653288274503897173818905981409080706125366010056100907379346537045672684539434574315127346035044475187799351525288816929510297258741947357368605925975899166109974643170374837179791568236433586651364891014795246718167178455613929790421892601951587228680650629077724189366022067172545237604483109493786840064138459951045955632246393586582559730229142471105337746479078080929873645789851867025371746375593866705723003496550927943923304331831894875641133160250382149484887626297257275246217284431092793460937669538220919134063949985159332755044971951631425867914270565156271219894997213879552350300140951454748655561470658810677930166155636797759360071384423526484473127652778022987645669517873333306263064559605403448508480800470177365198602243458006222443733744236224612362191183925436047373537709128826304288619679002708090486811810836884657036276594886078544083731673271165682264457584952632721005239707448590944267239979453530686758601485198800188045165772673752997576727477647337963913045078762125686239532880286143215144881680842940762069540139383738448735262774142442506044621150584460425839133731716385286385152108560609454972391804634642042629147302658776584380167600670992695378219394610367410133721193802087922842564606958747549597011952381159164877927871721700242718254265771002482466518305605033934710706340422663096071352159644746484883742120407528710521730255669300880297175068548029007766738302217223773367777253443483761089751958390552162341276981318584722139941304936547528901093616628061737835297455024827641158707330509162089651505096753105620526428724633065772645273491667174891501387875992013192854245391348285449694528564028789875660322184268790679948294156293094062117891698249477551069695663137619834350063573446125104485397267122806716047976283376604608708545595988154920004340822558184516007789480710154623354249296871192447663897246724592928528464667855701219628196399470836414501383137994207743053842693409564453234584568103139931546009679103394113039662877136986723964360159942392439999843712452887570135821381460840283325678130133020946683703782290019198584219610685813905760930331304375384534177149258398215334122127809463004155783730824798631822943886593116083796614433911433640453434344515591928167398275728025699401473936746378758505722102408528388914534862575464722205570107071715112482498305788174670805197158261109692618171863762192808150026316053662789169108613866604284875612250517571536404169881617383589882473706687446426787602309747709047876204107756353712502292588208696182032847329118042611219024073340251642513220906475971075342331091360724809568203109877475316036777728936889257791469305496901833912312468778973094609988393462699451628424861537737766694453522577689990210834891940608067077355839957776053964740728598717526839066148077584309840597281406591243864914810891300744901266070222165234676677952014497112906009702775068350210776264082139544393872941494745093484322654107421837704645749618828676931447161243176550185170480568055967640104799148542927838298804878286628574293654785704181954781958520217255302455924905632906270287567664699650419351334417774047787692943863923633321164869470120647540064261570791905838889386544691402525691487033508266892588572792893362323411588306165217568077073105211192053328756707749370703690324271643705271427448367849415417683897772560994322352803541915248211291307958831139033715209330396836048455999718333933825723383226377735429990319489342540696814676177617573424476255681644698028085288171946276919525642469200926213939869737091911889551115814716182536450860913927611001423625229242845283670403265141064659532616253116979553103347784641383564558800379139281663942390834617014683487897666314748204198279589920547799729865569107923240877770658551474212935434654326041554377970692449223705892597351563728058729207530789257436639354452702903541235638570149412269648702017883131079022155025834816277649593113462862838310970686822703663098376696485710140549953004138542300456853199758657304387723817631135353744701861936303689470742518432338145473582924108334587554657259988878560259900844662903653941825999200728994413391951683944164366341443448461215365207631854886661585152818053287162081690403237636615385009889528178272854163044964487316017838678711289329628499825767573302384264942701793997297704309252864242022940353979687418783773413730816295144671108281121886485096544976616662755743365015632213145655473605490244682825333770717194615937059243180663023153469826711818782508434837034333133540043479201832607445429720521024467220529485788527811667317031797246137976622269189090640459668167199207809577044877994166645209771814804550658387810430392750675385873825045829694305146078478156391010778838472203119317891415509714754166401474077042515923362508978487595316539802392308589868052373286234135609230286666834929632561806088488764235726691238909968909374282199537708313086206117447902534429952004997699015990080668407223607971472134578586673772425000206865891663980903825579356825408433369219915795371295923461633562952411017752730100984788615021058071452460739036662794223920585082370600958252659960512770816250481727342432902671040525649289077286662199324268859251126692820950718420994531272068875479026338731227955002184903082574018776132925828281940438128226423558607529178726420276255345198316806539922503188060833210309801638915027038247692172951692169315792389784188998162108978698376735030825772933812528312530051761121190682801206208438646219075319235321644764533494568362399352890926521980386773162028703017518848748163927047582558362569275162830216087889804406783218873432112243618672730328325299805813915691634973718188802436112977536585663354206647379104044304919451605591990869214791306738766634272276362886591703593988501805225647368552827418300725360023878109726847733872828456125168341692743655246594811265486119020040464217583102345365878889129164648792751498822457182616436840258745365010221045810177493315406949513558425024154433000348951679291136733198394255814619622331505930040229125217195528279624987059934915900204664206178327701212016033508441525748854348957278078745259855794505101111084616297497463510285166406798050154704941660440133344483810708796627997865345609169491134236734426079126661776429350475413064159037819227377869168805589500446845478517310402004605348989422620381140059315709703402912087399491210674832805174148024237304726654485217805436381922820237305648350119548361153450518869978749044138176510106549449194698452517741664393861509820534757112309078427347392123236149759082642945032179672971593788134444593555871140443521532001454851958313355964078545154666493884933824518856002210825549390690323273294321430445743838613379781147058907817107361276607456060428841405816078149101258068082660718905304658348322847489106876834447505910173691783724759483327576976970951230273079783925707541936140554095417316597897162989372581465283823805051322647887802570539422084916236494098509705857032670879692138383918611367306304610568890045035624097776287040956278528009421944380225968747129464899831403126455725460464543333182562816846536118875172575287347070344273204804729574007251750920505549524941451847620121439393779777744850760866263611764442939376849662683010016966905374150194169419891024373820213899575478655427550705737341581416809803685214473405204033471964121271283386721712888604411200051423827336283432470334295446696313007660751277091156509132843481834578131726829936113612669696841609356691850274425814056381429933023491416862094346208315703844251944691330092244900807987997372695152740187032640420853337895510987399253351555005606393575591694655748903019627010173443443476089092642666039231056777186173269826569798551783494958700421664259374729293044098981797228557840742389739798463413617800914064322461920507750480488676062444892574997341467703296554993702004776361188944597063269955760493423329150036609075595090528592781977588326289992713466024767634823467228651318408405797312135836482980765048631133422958729300338483226034370880469863869221296851588082852992683878301249148904156002489168935666932880322500472821396251610748588898320190828890388254912267310799005415064464413360070840454202865842842961589990458954386883168802781281622725058664185495738903898392159040084450194465591948563420712741838122581829579602060819564014339842049609488007406841609800338985865466889562823597991910943286404533284748337865167973147234713731534189898163153406946521803227416383224267065545151385890220177086073837996149333315797361561213198161903635718995782821855606821512027502049863567033744665052431311204391875858649650445172977241395400023691941597858581966613023664145037323044067443742807331905414435870703487841821462927394479532689872049367931163057560206816970380895169104863248613523834382443736754800008370538570444418133498514150986273238564867384664269660974428207672139254948069253452547199042346248547304008147331028882865494018894525732297141622155591486461100030418907824314517706711248863637718256235512654355585344866401587257979004083353128318463571551937741445555011756903303408046787668577650349902800388039095311714576382937671958131093821450236491719384002963871810012110079868481496803245375287196644317755899632060042710889806489381710055062108448640205223561813334081859382644811566563647624797881180540136675132537729245780301181402956555055746554029000638756051811604579100789844821549115179778674361985540673113257715775434378930635769978356666447514688807597446159937757524790248105723709067110880085873563400407117914799457017898063315845442652140635087648128759113705168430174180991595596005667624031065150396157828355083443685366159769082020289633481230167810393241340197015058880326371136227827488006382537067455482446003804913693937324819683251330407610171799210314054453406674995232926741530896995631937856057611766865740919391609344970472278463622139408241313207366701540794058075348945744242513630327677046586731536997042937676684599644442478855321816494693246234777390073286160988993813908553598969081898194641918742919944152937178763205617704718499103429523360079164208079234876563005960257428705093718579442250972459732641468451914065754848096808241217509959711614454041694038047419043960559127737723146483944377761060959574816176562280961420867072845450441028821976536400884316549708858801592686025964308306567837837003998442068654231967105078297008186131712870182890130558426647114749261654816343099753046634443035124810454418221967758208004421098391582865132582697349073842073810040405424699031368086409663052289880986440050472236890540646072540363596272579582512551917269230575131687982598555997614177884548384893187384734337049793257869731616071921308287793453084772671290044178680892159347284664659040915059028160207708991976939404013245906934458799851049665462292401623759821268969918319179491733075392520711873935694465584348661944380283676914411502815011287090851882023715170620974940447698701607169758572390529494090170737001861519284028336685673263906580518597257231226607116969862429227825247210698770448676832620938041297536939475128786774991793918026580055654485399598661324367803785250056299366558406916504282752017076470826729588728184971850613286573461001880024653240327103379534832788857277595915810278660863879417746318027482546032173915653623248671967450788184788702326181678501055518919828039813866435381087108286322673655502529342862410581953040748505748570024423977163297031463899897893476121757644041026437720442857619558759538904725260208131815815880272246956553222967100315792683074466920568979794941377526597008075110048021564433644618238158894577212049558554584458365096491274604872894243078519467916141675643368384557359318948191689493778369846249061877408046042785224597476872961289880110623458603902821482789302385666178347307793105439503697824807325022340834238252056628518739079542881742925053182166711088504019865822347278366865666879451591221205979216531428190634572478574929154108361262087627896777346902043153652909715304693788207173908712988401092397296498288666442047404469882855622854373319985108682779222165984943605467331160293672354241796098339214048380837333556182097216958692077177960752993797566441848758027870418071088909308076465796258938060570956157890454963698870443869000055213228857030659531359167433401366868559475855169771194888236406435382246444257311696814303658014494297354452388162681931317114194852805991818671996669833821629227371892990450999566937393922390590847858658346040218142903176556916661639667268328780151114560327390713147223461660359795006452833294201851240893613628072670580351693882401157111338543582465838973010423983556152268168476742538371604328664367987525481938551028621025451510181741876346607655748165898817742664242120305134856537666726008495805873126210128998220626004570953616818772024230688841654463117623172832445227250655322095789381431749110045729736118232185539268958654237704048713724385868477678520203956600872943111553729581953563439116587490688030993941790752869565185886379037746252296735308942542959014940798887316426784148671148501065066336588916167136903500423545780200150021282807871553663683081199965792557316303158541660794542705704771079741487466850865600721220268637646134396310723650008873737275875384186621792741573660893384830478363444895099768681756922115830220010600809808193465915566165935231882095733422369273658535328164018986724521316475521617338226890332328459054787162402377758698356375815501715486898184676739139575876411096826470097033340563225421882202124794390869911075251758819577609932937176482135327725901902843673170552222685271682775839256888509317835101215176271113034828565044783708585353947059632832805876048769706036971613418463274928935162714222936066677233346072136574375964973515815959265003865488274920055160254096130548720742986791439170429260133206934302906089970098791307149694789173428228805920459075928146612664518636118485424747845237507368733760512034300625119441037910286545569627295719264061667969171835944621924074329787530622367788061053036071164791098167456854179169716739495674720510689731046847961520098928226915806802212120571064696081766248795976742685322067257881454609814425850298259859185367513830183535773176297937374601534866733365795700939781248651214796674280670321746583790918647809665661159104653462641144690447936263315472001896208655076291657165243401861569375249209503105843519679142013491200003821618320600738118285301840337438359032743288188907935535080849572191101120990155091047866225680044760948837337982201996972741116788256800813952533211375505994418393926072150683438411927266206884180432787833882464716838892132497266999714891962895843116668683045018589704936929728436207657304295147261409223482189557604099170252688063780138370817636929922895439672473926796335084232288193991837183918822057257818906597060706462809757578873640151344819700969607254430126945255409062441814016825977897178786237248109130541598746863492759712637673120050182690280144291650645360675881694340289895379366468968435071457312320505512471129033761826338683387101587010506232561671820434456419763751398455221934136485764480976416953000525473088785125231270842824411939752168688614156991217054437446457224638984019179261285776142823665981651680079445883934734280785619352453192436998650253836379576849970919961188266806063663457055134192305148686527237531694994527541504400504511432212660650395707686489837683905145608134791712844885558527037031961217045589973943776744423413875672514060436028748483700055715386073279851322282839691231863982120509385982707790371197806729949225394897985145265603236546545572833702581462757794232270979286048245021354045080390516206662912537292760246748209198947212766161270988533270697285488027298834779556731794665492920803265693653547652880684493992634698692204238253617100909638610804720064546256828940030608910663037220713208506955863888418719421318762702347647364770326150317185371654603764989838041509524687367270311396943283540915848751337055171297543387943487446110033134930138181386104722877232383129169324173911064104039210680342297079499291107586636564141076733984124489855866929627711319486696850172576168184394513832771362417536691534642806023603145988400955605502221251467829991600508035819881270973002201564150798370393812157348211935184137850988739331308697920383759745826117450377495128787830801659319260526537329243055513891739645697442223752141394801060263987759708733659949633508140718735640319561055833183866095650342469906902181340160297457559857025438135966245497272229270800011968591536116729555372858811533862831382755220946064579330107475601956608715227792313562191313340678064069100636312284153392484647019002976727413615621507771654232173558003170056425842660474499345284319884988343804498245922824602501705735770130464205415643549775055036633192032302211265930470346553229674190791459344502632240977752436768446976750936556133736291740112251277296348011396155623409513325482055967923187445782893513860732990861235030420087841736011374492261303048437474670120959205270355975127716610286222857935588282916773981169590963543301275440892953553062206613586108083320506625663450665406479028167111105936591112643296626688577419197785164822520463747232422909858287082743342643829835904957487612203563207570537840867416275609388423484373369556875764847633846965829485799519751209692066149902793102806345027113467392162067716499259514373385509653089118826639965446800252347571534902837412897812540588739327963484870847549210397786798874935045682379494279085351113620172850064737194693970719055489380458220073372684436336823435116498187289008054185737082016512472684403300096112236833952223503466279873002317715601890759182968676354090445125703485904521206376813580418845784674601286913312374510372568974255526472352372369880222512354092528944351922820552664323624689730574597713110505008242993121821089005277715162122386381918383880995452992323019089184921688406269719082838010384164209997632052574880920781781668291806836812805433647149164089187374813654131020689124950236213615367132953662703998778991504546851700920490912844352588016160375632344629456841884478975291257374785860019470035004066385223612646952975810389106625157454116528739863221337110015036111878301925451435358227064384939730571600082413713779835175790149332342097546949229122732565879970505548214180038247702405412055398258850776053448851722714387664660495195907870672801637429475696239253025773813597775108954012310504773109808707495355303518036610775553986080843828959183542822349390251248323778054792586028347216848055078709064422747034656408245830083290111628013561397145916465120371074708448795668093664368209684865774049654351146818429311046957505206143417417748139053280942271535245463228961993717817739935033781599395393992867374139710892057015402552431366055026104539576511811690881283472228826453282563761930588656083958100610269684921220711736091268982937823462051568194579277730345322363084936807146081948725416364854033613395476471293723156205432041253259954389314238614982551178470311542670317896081990157184963644086000313402857690895465975796576882477831682577361411972247138476161132510203672269259586897895612935309692353956859104911711081009860856458335423359750957545607975320397712347447142333322972192498887724545114129276058393768959878255106403571478512472976062635838956393536937461518688281249785305816625739076252603062579365123778938985238891608118814478620375580238522294293023651923904286425294599255801791413923928170023902777054653820357511864249748817327998527983119182971857163649452463293309101973738808261302812718125999516283322515141782565388389706906933015544622797930880216082417194616754975162609018723903413158513399654245051857161362272872807098075809430312122405766628280934837822514978131692720486239088354122009346283835689435958085952627236565793201441715796259824668970544289829434104149276561477896785630506402445614319298343961772787767697096171259615052951868955141056945821652503163958970730885336402243229640331514645704336395796371878174418016697207056608527972112075239077463904903020484372779760722956278005019055739547449447200424413723281178178441213786662222136468659377519857140605570206196018714794202478214121784822949929463286764896741810381945710135307399879226946580373860582656423001850936558765137064305409604718533245068404913948820105291676493249892531917364915874120696122904626752629261364945809891806616540674896319073261620727698382675566385677775976073120784883204233743774180258596843324428396112106783174938091316180325405554686103743181137822465635040108654364242502041002729650471983728492170859152552578583968877470255061287706748627489956491387448294161007790271998960163509572783795187447733501241287078978385243104373391104404284903791417860810115963963620321023699932841194590339317487400040583545319425110197926516172591061473641163721857267446418403329885154680580198956357537652409005360159978318570728757312668053687784172914537422171955315902586287159606137099384923329405880750356160372995921060310256283090980951478140459611353676429905331307703025204021207354441900920947461810708120535310234199732716923688258789467797356877121586808214032604114190782592350911841965102599226388536456123177117255699570659703234696096404437706517120933085321053050676048694160574012894788553706544343118561711201269832804930462430534559849862242427358315213677397722194759109490470140213261710057302805414319497991001111684230172623292202128457518653934482719675744672697761102966188464583766275360122509817209742449446995283386133468195749599674391786805324060060603218856742476067644801426967942093149795072004528244861548456461775082357276975918649731276969531565398478727763758768259407792490777132858579487120695582179111405958688040985469391639727021187528845980575726597160599231057647876831204207108250548297311813383200683532808989159672743257797855246030470022376614872989888968934988555521690161518957869189576607273957626317394825623347813163821027683674497726119336567485529042792161832223535254027038195409915660369841753700000842599090597145851850812354675987445170634304194385244671700490465172926944049662082560415380089496474012481858260829278977487884278762935322210628660275817856712575601431995176663609292813329341181793142422848295454689726046044631732356130668667525864735971213596915382782719534570582320893543262852603044448813158250326074394605369069447119888482608993774455099576690390071713966287508782988236004745822793845045306642684086260324825824161321270373943557779868042664789664240747937862931112612047229524029596213112142317363729543282050320930960785711322942242042175303103794289119688497731467182855822762202930664601848947194939339690638760387065269105904080408730601946616528514088582435521222357458200568820252679049421733931474187552556323594171715584198088892149550426364083046839660886936859034570613991832177844692499353493272238919428313745136337760685126509712690594005416325164332807589312361084038544449137853405109754119165155616598583802118053327831640141912883453732355337720378300935908895933532897219962848149627536004525307461262831557635578523733330992652457778263997469666447367194673578791195016471610427575216422017938594518739508997860373358854100863976065775834860464833294011781881401697896318103671636879733727162837898702443827147956366130514253670394405958510929092547400038467769213265508931336861314435128842339029608114794098133087027856605033136508474868381269836122106238378767429160085711801484799325681392116195178531954935162830437876658880578362350309458461705578352111181698377704644661361061791372875257936586036451787174330625395342290792168557909723681106765788824413241969808072714022603701623993309777504312151026114151224302894250088458942147302125275932307078388491392835765516999083634524129464479351770434509256427489148213779000914666757831207117073973090205921850061140107075210550053829515314857630672167491086643672807901977185063184046849646635539511821605380016121465314201075781401477807545300272922684054779579756035349271396492593858677357067125251132243724381253882444540597830743408057542386676121319407194014689127181003175701546861375018128263313057678253547911771390985138920157676486183081812155430519703818683637100172960101056179516311306476667844772787224757922033545184438324469408311901670319751242761550673328090421441791619858194664739381972413369195289146460973236259880910023515121314444785400389049222016919952128737055757463204098266742027353251922380324248127499824498564323959373467438788567382972074663356547401410630865326420324347677762005918684505838871390091357115920070270847114439871319126708467910137490445819759235888355060757509790243902000091020277070115408652177547567636656458764296717398833360354299392919981433360451674773616662468193143340678206092750632470980484107835273864360668932798629457450216329931243339810061646267365738615089436124083893887906227506374802105291024036538301365109858101996123788237928537959749221269678135580521349480148018374923399421529662784781218697029109093275992614921199014746767561654370598390438531239281815287770087995901946904475421088247408545482272842985411307282603201323085676627140696837015388948915414015261760011545816178026728923311909659536854229777947472477302192449572570629822709012259041544448392638391030057382290623899314469441002130311217293426517903838012548101876323591165752590451916343091770553398388155916589718511470248124814116484692013697426898127438292819324159770571240070860477987491409799356734476135600164147717502469976655926741261389453992440237806049585241407958944949163173992149373970669728522368603933649081250787725287972897189258706169922977075837213095395317065503013673431430915994603561801060013446628593076768340810598075474531468950181063439579968063840627099268228960079359482110534450056413332704949282259389325588650714361212087847821186020738336628000366589448994332880787650657150334522263499652586181860340034519239307057993321994199902836365118895178806523658695800796788918325092621478629672752825317563482852156315930833166660358158113711209421442182170406762025957281251851144080370575561260931411336382965439072266017841180534225962757607172942690585548968867725002720848459035873149828740122665086970420254365637766924186854582955385499301553440630207726055399252129649627883565805197516137618872046657916659963491559107535593872826506897624881328472737132507643886044058730353348272488217136348539888740747550083581086034605027420769265152036659114555551858313412392248533806233835813817960913883422321179585563802910617646680850882673414354587025427859415376976115427612161668085738442659681798473181934098417061101479866710935292417913171320195501068104461782714196634833109265235678557059825763938529372256697583045354360463417340583868562610400605666745533373896762322248119332700205621433174594946346462167076400020604471472803627156250977168432507551546950226423590198579515928985319291276545305144989060367917443591528663344526441272249431647789407756235707068537370230630180779629643152905495817092416274217837119697016385660922018527918248577683466064346767389176894528900501985446054629094528551660881237036314839196817037210610317815376851356769800713062366851253503938697892830438970032475343628405663487200053370970355905255182539947850550366280765333036620589393069777506002642718495350643093837834849875043024411730853196453460421359919788794297317090382518607433272940379774549193326792483717747839464188811760238169385220604209738662046197272028183295579177410977448009722834127348095500527449040422067660841267658815796490395107350251943482136195790847262591698736544164839803298354973473301618007946396179394286983534923601804240980885665811178267964231014019494534838754383957726233521815202411939176471708466919624224795730652934561601051011434410104313321938315295187768370926084068417631074730085658115789928364070833497517295755121105188511479073499340484818577358461187762476993218486778473310742426083023398956743682630731769510264294112731855283635247032008518798856119581899424474462360223390333481092923260841911491426083878654743683407692563508726500133532936525869050985915807425133024201406125370344744630218016838501273252528083279921663320500555380536386106962843705932908417970550938007523028575902478120101445394707823995151634343778580490443602565651272099143766878685092005181977462451114791469999250628966720544678567805862100347951631815534709276054961774818273250890523567157340517833860405468859058936780323685567955329024057385435447806562980735373633825105715720391871463262087749490581215597918903634860656289041804642294162391395216117552047357577672630258200923611924877577554675699632862251921768547795071657445905677092042002331409838182590889883143489250675293881974650051516653905537625671875169027612290531435290221914307339670248765652078980050502684741949531275029018208601012459206106765962098968102444340423203503626915019594234222929610534226289785771994416356674002387836372662697272610971179850560001018956463589911900952612758951633279880640807528818314487238806488324455063660252198171946215776851107841056673187949441846125200057890013459070402141941839414231825876079453760854577427595868995475072177892568650100100649322805112668687783739266494239060831350516655814880866504543494075278000806424682730233579249447647687067533450654158769496965039492974567680988667555769741800582049868872442412095708383147691722820608505855473519714287823903837862638834966381154777849259020648487443388510546638028151849644860283356973327939669288557960056624694144493643551860370503359246716985864364322889707516287994971355491437718391399942758433498082112900980827330194136892093184683988968539195240962722085595713184949877096216617650013165941577823684805711695437106348473378979958285906478617372807355932371030688807319519675439108100629182489160288775557036974249340076848598424754228036564759787514890009299084334788532929877277131698483696558812490910899361369138547639543154879674902199039638679995175976208134793874763053351745110218887692561741384517498264617033503751368199805766391880793350188295661060499650261455191563068135890748689357338476725160011001312865722078953308023622346262589142932159407218643026430897065176098934497196270996996861682413578099984619617822758230723974807626485496408246808462963341138975547719313336144089701966145129408746775710588393566067060086381616842238327156111472368525932923614692642376685438822411590381225113420940967432561693503081165294645769020725062429317535370114589156020736076386271938324826112017728983407801943441022859055225316455919236573888561112367416953497278685729680085277704969257862515071431042257706000858462429080410295460561884853079528077103499484134417870835732826667714051395349361172693759318945392248685786183025998493182330986351021883050511498844725322893094777287191627663701447437420642649135108965581183525086600754431165644950624605148670820422423278757073335742166858939013952306669487727079621845528219493866035328666513522496495200932382668701404978007052927375651648674492512346372085989517625574468740496264913358501219994289847616155694898629703940186195593857796716651415491122944296504868238828573140395321333677729567567080625093471436062020667138586001204036605313122116948506821182105114430881046236421348138169736803830180263812090853911585142114659412983249447484715916191153569377560790241602394732391799511553307427820984528349619985018165147812574000891031821525879082415234076771197845643070301060043081310101454443818962250001591827046522162368590448643948343481952404083407696181235885962109716256017497490301767420277871511239962091183596628327000391699092322794286138498754170266590298627841087776738364875237927742450226812659462527501841651007576526385956190870280167642059218158387336606165611177037308290655092761272825336297432058158052948756164557747666178670280586546508430502170368002920397112892007760050571884872363884955760224300466465535907077408956551152756662626135132001645272926145419640378654771945806992154320644046186301284922127553580826737952003374976537494574436921457866651260768252753139227358065200131597602734205429526071883216097212430742485420837964235061366965333102473502615861562938752074642185731260318889138864687965007585256523749430241121076919911204471284155255402125487199256344677823536148395897725985008342317274775430840531837221461230933516289090161068500049053820656261513715832552673792483181600034813893478080201143524147276990269967272643712449180078448223110153862916517299558971189843321163034286990057284619685847758415360797750506633049231901564809355736555401011562490080791406390612604263411316780605733837253796597845972819670561883231963920856185837363824953186282828804595390485731025900362867092525159982041633317065328138129144249354041107469498552111465248294809882418200865717485907227389604344219581228427303756253124661495089410394898558300667185959913591512620596023687210257179842878891091802003996054650726041302338996084693892854980170468200503372864370342796525624249657244006766592509749490710645434393704336216848229949879717243973002608271110959793275236288232859004217058172618474471061690349405979079663450696585859673754258590342722960101233477705340735883195414839432149868910678275960667610543385303461537071955121752984939929351517327792824159611717727047842920652515354485977369206965159021518548563911408748881667819445295354561171123458922270560951010615721687342918074660065932650550379514670959628786820990093634550184505337947717825158480532243542182399899644606319251805395172985876667465980150418391999976316234463651586155925856303802105363844530740288326138072435060178519239060292809615674729495173819142649075528866213070860526325523529273391174489753957190180671421989302729116876323260293238768444131293149968120065952487139734947269575075221427660947225876867283721143264279517507003230587097920316704083188048072240405106133666775449603392362326287856198313158467870171381974680653943560425826441700001082033955499463011174273353860274790222837052000304634692093715784102599126936699022692296589969261792765887113116325094786095286539110535434950371960621716863865264036128804887248569061153607433325546999213292298166236513862368580313351078660574288873401353682256054899138380428118130423323826846998868739817203606713900670519926834559868756467118714547619774776819675021079814343725033910128922569742633388686345498905024107987007671048582774087367716051432617522863721455995873889940550592849949050839319020738870932309156697600372782207186624250503877853384466810932511588513072878803959225131448097050299508866984499854954308279718948942496818335513500114145957641220184809429033399723150182543502780760538025558513397479313834707439338030953909332251331693086219307973016781335802448586709960600774862717927075401144956199230268826183596779578979457807698760601586244530283525231487811567561327435800793245693270846223237557461893341803616219699129964566637515049262140276333285866421484309140842765468023939438182879366579065170627927036753030254896510262553660173278792931165233771809949588194731885680377522915860122339431551607940035769576648726330824012695016251737578068210523388311272315788689314113362409019384260552893364027545494544990308465028763673426776416483357851175160921417914694853771431367477331655401241335615019222422433146024480600879947463219191498353860354192928325559627284924579646083542663215275868486171635161165077796168372547345960275202559567187736116482766441711207204826371592008437265965423083522872187770168618297876168068909019449783820497348750867299019164570270077299740949355793130131735146743514455376512232325218688364345821700193570854169429021009133089478213717097051595100150659015755068260717153867616490921534170094126035813002617563148726455765506174301873429168263021967318474961927037642617163676079827902936436918141439602357295069892796085085295514125407800802877590960070075903208050800080355069292210340882914484088453105109881963177793045271608038759874420135670527755350916332537991259083847217262552925725764612422280963050552897610924785493186212719165595228585087056631696758414425851235670359865229039888637091418447273847186040830602686999786792868496594600826484630494640335645643934353781009833501254180817348264778022105975267918572016943069834542475115891422674970282151783466116374987279049315981450259475299825343197635313271432703416052299627054518344623573940345222055848548511383838715492994601208016812637649842399176553845312158729822699825985046155689241812845748135631354345977547997274126913769996078236402018142184256382617960972330339427302175302752199698984344314492596093163066372550449203581444963947469669341611940844384260328473326068434545067259412400386970240944256236094346855621683186146016780557243376418216815061634471941196368788284126732696873313204820862963077423289832163516288467071041831720493085489823839344151287014005351975487016605665888647341922391659719691920623219767228550930614376311154465246141187429244845924932669781001947101993862432002527587561690373113601463705803607048761851775669447642551899994796245537268709878273435173635916420657953427747818652778626272935243779992244089344676916551610949407331145670985941244655459174250056433366459174351822596912004131609668061054234984412419034322495538566360713697878955448771476709482700068419090450856617480709453633387832352806145539648117727115393535187363656168073670160275943841269872060577070316023518390984073904561068862363752305446985523351617346059423951089324787891733633759604456732218884752512400826682811590370972217350942817808870598712891233871692246407306004907261281967251238109812617345820077393746080086556093621373546846580685519506617300824965095166988414787740869665277254549199142662592339938201424067481784798654968825585809670057626472150527940307374921627676613870118480694952024305970960892298795109063250573745694512606543984540709558401222225860300194017310809067293650919663306821198552368492391089901922656461117296173805962034870843031168984713252416277202498580731493218409378968890040646258880780033584176808717878390976306097417481008294593858194936634289724729536946882198436924433046531781224055030615101389615178830698155277417597320952589251412530023340358925029165869242660571285205869763329524169162704433182799216686216038216996608236404989281106510448887191929352578186813293360836126511973994603578740329832972394913877860523028381047006024182503868645285856025315560283374422622711332118254783771173660121357231377711265945514291443617804876342269550380779868155808234552065096918906250585668610956128375952397075842683579789670437372314559534837953746518011943110779107996284893768148619303246197042726569458104649592980464029701091407030544908774658957899283300685316432471376579440162561507411013260026020955896293091661614667912448625365105245989693484508278843555855926400701386552069128591012834953108279299464699601357286332199391622044506348697895834868998140831309653452531808085897692429891156416365095445468178989258567516646128243866138463029437174336204014962659866954458507953022228840248653361675899845568356485051052854240123481631801493270688249523148343936841886787259989767766676376742864410490751240873181542046173272954272426228089800803595504393425707971444808802791454219469669587114245273468523524977107409075516273882903590668957679598807490682591518908659759237414027949428165152016219478009432840438457246663117746746243208532682688204782724911450796768249383073632588506723312249411342307115774512961572570309813261557819847705320628127660360559984988170631913181875839849007824273989082884645293948292132518681893957046700428784131763911782543132531466315035103035655678516842274047048853630861215016634460647978251425856192051699259451608564710314210465327583251106051898132380608593152691960108150794007337507204362351883465120141302223890800779194571335928366654296234593279322105667756482705376489645063763092116095206420001726734857316585952257225120330058589750821205516551212735408170383508870683210662564519271544904454033662278949265563375165901359750614984490664999405244383277817704205400339895798320577502322392086579282144842451916918061053641936118658973708512111491658560714434034302822017105867327863503331829641007317735812943693713884262866166944713150653847839014868023212330433269715334374853530573232764239722578752403088113296292841080843269901472856783836296866562635031885423276050779081426875627002917682146611437586455064223067853111392668000591652032447732031599335156605774793290319010385556779816410649831004846102380376707925582555371777743618719808282306403926738145033723228496835763314134081616658812770039256276557642095323869065247516291762062878518322498357667185411961074233305781195271078553217062393582553358689772110793620119730424646176887442927690941245449143156757451126003636513952237619911396609482590603229339251040151172263297388727305141302541718236577919423430323934438152357016243751451177593865138646048283697977777371562750439600918829256093062048603394652860228462317963041811768795425219111391238773686286778132443337584416992784132653263262325606647886381978440757142605194111865957441878992652738026047523152899294985289362293066531573369979308084219153646085740968492206314021617322416835743860538977799358216826126192840680388348780798558106846283538886875926309890049295512455283811805120679218508115783028379420975119788500596517293406430293339985169129289025780300085486432747454875394029395737793287119877248606642965884693149348606584120364509801004928645535158571986549941581248303973456158219415021315052166577298001514718999727663201110659188455196046213402423736843278175374703277159006485840655025055648045830786584096044372222976590630173205375197414699516477214661409053894486061595849348493189456401979739515767161254430882386490533135003250063097244217573100905985219553471067928199919008548026888878466206526072840306895042069064547470361148953322779826270960139467121694892853859089448563339891813388631498294542054373294252985370206051663713128373969899406951620991874562573152457194285795009575724812003704380197091778443826046247070134638123466774383555339650275174650129877557463377709976486061110198829891508251259392946829246712911384356889540324268445831875647766032383688322486162888860761178655882801423557401980735329155493197906240329904231519118168052600726165301617455324924922789429970950703472538969087342471879427803620606994886472248434176897015498942742844131220423365217759756132860310706606293407346097680292746831904966442101891169144120569613009386821966918374445023072406402393618240700194287427553391241806001567761927166806233590751239238629342898217146182502183157247425684700310218190786180187167569134826518710862176111945020566440231878460301905914756509713408061723671391307413001559951574231166140518104902435261589807198530676392952563734333369904619218365638283685946710183133854107811134131802350198988092708024403957085124000899805297696061680840700187720319260298736695279433246424196199356961212964572472271406195835073702755698820688954924340977438552997004592355131308169849800861479345737000469029164400013426389684083327613389773217634687133447291704933341250918213938701840461411328012720250345362343916859220796779305312155911135930297283393038454715165122101370163216849420370152258658462241404383370691972081493785501684348841937134289453269720431930257915324595637915286135620991035838316034764973793267396530938915426741992963999886482302150892797608127954232386323840923307736613715277074002364844068486635923697310236065258494194652865576511263928652257850722193905066165224051292546179587391898682576978512017662880723265580094049475868333358275547036701436624713319754999567541817831412666686431251293107178663519519070457335537567988446831899276872856394199379550383119647710260157560069606494491627045138246196360670296776878692534973970733730882261318296644742594032223689550626818884781930690760389108801534074279784340735667481964967040022381224631334709287320539364951464331287014012603565958593824610579138006782602600219501176419320655679234907188514094062136934794173615805340237845772043242696089264411067905741039904392585269539587115904839880533619242439646152993245413529683332791708253912066703101459431673425266479111560875447728163098776915169935635375924226419129883614206954714426278771505644394810826286357756605194091063014675274429185842893106168797578154062824197425512204219323210818373002559604070863586648960910604248057365860116960700413129999107628480598001800075143822663223899531951377718983147772593024261603120213886024357200686967035673867363800876094569372806702811895291626685266656597467926495222648111144515486417560703049141166881979602507301700485820679468662818163991474515910470692478273565696730509468731995955116198532075143497407829259977169687790774758408023522951091185785265529316237322641474258833321376594675171246860971853631307350442161688438505895302845457965650899863731336046141651313952892619834351397797310455196511821626701725930779557533859409123508181799222211290942447840567708767239834194562079066508332474445425341197697560332874137878831976537291376242792083063216659253804131702002124716641951759475898076072033317291582127620600963663616499615878716459122926136253404098183754857758564136124705841377268972168036077926770582499353603588490035020965144698251939388758987980648213780281807581694147211542306300770977565227407307140268856288265795767951063466087967447796473737914380825102466283084923571213897116942954159729736266509930976224392678929149933771594281412443392100596749115405047314067800590916833574045990238745879595640216419591541218821017583977961587208697734410498684859413377739175854266665729858705019238110693375640650233005171730420120475648929794701700253483211253161266118328379596240582934789241842768988747466639227916637755032873347604354870082817954359628083341531995440783067450897654934743471683474821371441941107305267607175516070662822813741636823415086466195698998969481861788410132131049669340920052593961437186649374093792287724911459806566691852677969792387276482269677226441386957321339376904675448737433907433943529503149702053384934295381200584985692633799580293485833154197395186799481201581701428649085591361304494336343974301192752829795971129660225886842944449419190585544399450764326314971017537540927587344225710831537501705507292100587774089614301576142643235779386516245038510655921609975907220668472868716506824924918703368708630734967797922343810097855672368436775412971892407386714906092411709729415356409145112615591951777417975848219025514449880925117605337217316752120709319613176548225134722063895594914268950949147961309122053654441535799959975215485746178845288517491353469261636050281296149913850209480553765044869241738190421654627196412402265228315013767701476107266483205497816960536127757666208060822787645592223282541487891677237692298918585307571300391562611798017300793229977743541328721714301953946562527534421227805490058192224509066485400810911267420287958564486881655442431129313414437133664251213316652234680014750752144454498377250787367789242508770115440726558693093014929607170319201815021153044119199233610313409359898194938900326379664457841496461459459302092249152187810184730546629863115766289644730404071186896584918646235001122315076245466802400955458218921011492491543669823626681677097483490940745799465132784228125219564521005514438531104794569734996422785354169609849916796199032328745841640250796817526267179989276798726704534757667687524601866325328482284196919316101082673347196752964716605441022007537328443055231901518555305336236684783796713812800239883539723374234188139265679910644298145681569078389583934204753954302692842598151372958750355234357264118279341966309464874494670232228317997851770063571178741077139830152467915733981550762233618292797556183482389181277912758913669160755069061312662617034616032686247788226184059032754066686526579769438561545132655574736507383816551614619068265642495212627760759139801241164919968344785302973136600137245798510387463018483910216238479811154552775082216339752485196221977753313760878799168451719718543526676717942632143125082899540655686857844063855628661305308437766088988657508985426081884210220101104090212738922546315737339335411822049724425287574259737350294010974501692150332030123020122144797333653372033085864872582758025655222270441129030118483666947663669825688510381087756259647077336943169428857392225908299007061835703907789331900487837333741688817655107571789629098677760036807531939430035281745603012463855671382475388608677668015233470079819957079966873095423204361336014481925210522948321853729046722412583582945189875166690749005407529780627276011771261425332645131579593975017777291275841608885275629903855098702316901895122926718176601336008019991197182253194361225324778658216746533745746769515465944273973512660693964716125357256209468397933138130721882377543681185258000160581648501501752406848494942567296117818215856911091477261274677325776055246798310166521651569037817918885603655879898285667845152849939709345295705013946017487933274040929500821833129185304700054858588352334630473407093657352753995351927442140861215671769881318280837181395442555127424588641286880452900034095901402777451285633720415411794136720178727376229796970186088451497657466463731921960792934942658215025859397637553185772468203331248955499268760638677673035610214758792600443143450317755483888318096660252911305635605934194560102806307356775942308891662286926816089526932519204000871233365700394415646197400177887862245033370010391562017734427952881546351346263823928990992340545956650291156058923713567346133856321721943183748304044139496224636977086037158511716188112014127304930194406658874382182564632945220474911515874839868372064224304947903682526303891531240984623943410455405591669321340637731610957354097023953145983401399862866439996221227227379475187792223312525951434287335595329396571862514241735937614881101440692063786166712321377128009512094841996406167040473407441336140434490791914282430167709512675609708895906452245419655356528479208199009025936949468532527900978028167673191654135976268339547736254973582185528134052365076202794478272504979561421765684105340255391736566413912996423370971396970741662774114270156468402621173628925696701562245687227984717002537471450616708758036906328829937485847739031632885912593364305861893685766416592113159283592147427416348351156214232486131422139786320148400021315530562852211781526001271559840210780924131648010196749092443611484825997457671772058485068494804554149979564713330271138069376825340274527143705926234100306088663399318425296503064368506846074341629427536170493382352568532856953420857146857614586795441353998373575842797488771704672549202385467392019592856386267747591573008897913568392842506697686015544992682488749816619789353515658953319287041905928146314758937154607356847055770035749762074808190575696820254509490123625527184856970156383600618560846424146372827794202594348410803343783710794375924241618790295809576249127051815163302897387661923869200710412319113932904990181963049809103107050016854663907352254754076207450655644064567116590770207134867219367489606000066968030085555638661300913608905693384464654098372088918465591871083124469120789246523217185633776078552847623993570320508937640337541189824732115141751820408272332851932078910770620967213766932771771973687245476518044680334556741405281066059752450384381562498328482652204474462581095968281205157956400011033925967149705496910773585125801643614641200389735506635925486939763718669992335410038435912885140945704518262469649492384723890327233457111951370028149054431793242296721443441759045177629411309015217793121656404355407361392156707623595497774654228002789878285218326254807735883468099029700127815817948241054219903032709293445330797505597876050938449307113426146424424439324633989100863374291220295017486585720145971740919333539202426842439403594397161446052036621868519818311907980815070478349441203132711745876979425614273379954961176942795731273267532900549668915217738798603842313788901222866885991365477753042101456249368906727311229614922389637339386962735439614971384984519718266637055688656508002906774209828368213965115761950433056434596657438800686086019226795391285077179811932053648494265769106424868819202998974802283239844811447057664171987322811357302366321368929037183107847733796665395961043245091412674730469549320507427561275680483639556033325976010887596153949725133874865765125554436972090007319381047499233795810854066195924242424807709443771826929190240520698643769939459449189121199093275897772332488807532905720909426575569569965721554920315875148979288523690655516476223805992015578899181279612936578511213824436829972759231781161292284940051641438832467059926528061606922891662970507709629456570736224961768358746590823751566489983069338135278619554312065173220258648079684530414825176890856844154371060866239107671462369873334496656506091365284302737212475222449174599437589057558077317411182230476367232583952214595423715411541360537945665334599984387352836314632029366109680167702467854789874638994766785680587480070205766394054714334012965237817642400579678290524812526596737754359869410600569148271977427280593385863686116516977138067658283174326260740546514736137694284487991535764212616990463262181976520278548602586747413331526721652362767314239495734228115223614682523777213142612177449254053416099054388060637434897786604329910692588696620556950837440992216763912398149401177418526377634992128651407876126140549886792167709272019509376592913773369192450676594510143635952802230419901359699256621164283304979771492991861755451576747502563086684558582577932532163485665640945052256820972029888563209852441499390357663752312560482112052861280007039381797488921641829529069308416455872174775056725030423398778815953374933682527804754092546018285745922112522820060997430141395001323828907741152795960273243989752111558929660557399199565856786435399067008937838074386198708493154417475882549047933947247915400119771921661375326815995734906860802469000003388936747704130108577158994852604538144533775913814949069621372583352818624233252825861081325733376746889448484254001520485597739153323603832853875611481486210196804614256304869212746017227754182241178312109436531013111179008493688850687302996352593122507893142603509067275870210044832268077257920514803298767623382198731817641966235047499200299559043635257422488931534960674078769327911625236223786954142815193043991257956272278084350802065703376062820092400630705380244637456268044881010498055075041563293100490269226954403358957394528556519321707853780256411125233557560536633635909246894661782110829755129760381336142241277698146272296332407984310512341715401526384405955735575366192263084651500667249818241331256241943054408906525858097886744749828459357460207999132768778357897004079158611121607159384427268040715187556038613402703505777015958419740732921662235835867460603148339006323331522791514667259927281490126454863054799904138868586748757613668550907643022715074783472165728457881277481196623727114415015076473572885641278558106974789455692510726317308344595565770197216575993801188383345861837093612459040601984171067816647500061706797442418384682368610393188932015489089413996765841657940006128073682443475896888051824047466732051831181729364258615119001901740794072247653574011798066305126976059561656964482213658970391389965224197623349103338969838401110632117934666590828733784477983069327265524258416253390951135490792922489847102867688268617689096885225528840196288971461380963013237264088119317184246171971130422545218196052956938547670500284368237372653075496528100727820632524400535693575908797640535017595124230873613557712785685668844555374483151188476262639427326534490627906692784237039439781929572698873707087186817857391136273661216519123955008926341219311622383852182519894797592515493771217839040839811152230669630148668076582946595782047918726134300106123308775651698083756643877076426829455398984824186200691328315267212894359923436676149438777465035284637914926085073352895736720117263491389646449138355824192954345820555329389941064306442976366726336422024898163861823125749224509804204215807260288438294743927516938582877699790211927970101097719335814270448852537530198765085792954595833864503080602858093386301234664558251052130558891526978417583443109959710059777756119261040746048764502859581848845454417426638984412963471721398972669342754977743715493472870201609418353116022165559487428995120311326779680243589924436700776697508720225169805412539315487530901124999959034743861372532005283188886032485230587200889550995616967061349313844809416084645598313587105938043004648146747847184995815424862837374492493720116403176759580230603842323314376954381789085977771147705166940828956078132390388138496279063822996133084380657343310818968413430337596442844655939668698839258384424777088510789573823310488472019341546897377191216173258985186009233642700202695547147053288396286930743162948415651311146753844276168389626097943315339290938366173540303661904771119212858671915531616362194510300914255037003593972980063391307365864249729825738577142738501861599177799942117966150404487683082871048887832506857714632879955430604764790854139374535449287088953429308719220541119829071216801382146935930256620970995471996626429532386808899634726604242873244991532536118714044155702206707120514937589708669290876004982159170731799316020238792355081588347283155256051922944799648550107714707119513230964029763202702922888152335270981007450445706337135576666757587443583811832330468689614233060607982160265537073405101151765286431999612851127537838571960410094071043107667869344275765304551898219241082843543225780944094513283736232989720095364063159259550659679105481861058216739898652041361034374077827936090035647050523407338540887132254614532195832664654140320977873778175637016674505134117449600116423697152227526550948767383887623236076180191619149707117728154793276745152418997014502653472786862500100145838588215362088462253547018106781521955769841725834284798362687007785092348035297531042747210373668030922531321923470271146360842300723508813682053388782737876299209758885533109282724566483316204866403272830935309131440009592970265463969253291141066223599947776613455665543398984494826537288259390787254105885631226611359215748453170983771798493849655383649011224768062763026355960005805064260451265560404200509744030477941077551999944798304888442311036781202727865837742057853552561779169970008764483933553527087307431322855393194488109197962776531383799256835768826206842298876080396324367669277987847464902944112632140587461558331394744187618495735309187436284004553758364290386054669733395500400372696961796736599818605934713969843529400363173918324821475744449330642499130198734881889613066834964482290052428722789455439919998369453860712532302446485924754889626213531522699767429896152076072969864148509719038763054030030967111412880563563939708494681999683282911396941541315754751998008578936682213868777104199376561900474205232921138983605029144008955588811886592004377182497259884940673431598924689335038072494779973178775061262464168662633931810149110875346060459671031672703024902620052959738503687362374355671198970569743596125617936811737359788127018139277434665482317636897974172318092314487669732605341715208051320846507091516797531212096697195690135684548600603851730205957438800399583640447120762331371264354882894900801003818950029014540501916187262727912898251199155172042143886449799816816796605913269599507666893373064935070635619257776206329612854088054800494911168364361334559962814089180506749970904032638829299812181440355292052190641287359169028388331388732265076018212092319081797731336837152518631635185554235588675083790514167289855692529148524699444151242161791493104102972632202126325325006514202883672784411929518807802572064242219406081841070825212922469685392070984915068372053019241205329016118757440961273324885453044877259661602365281508888433493143518237511260458011795033043880901960889465613795759904274022990032209280902611746536305876088372904704676192328233504710656664689388730198889898775503213268748199130054216338934312990676789019826594509312953176325820501519604359991108149025330249275483475145935850155580073596416418689114203618880860937005530411515442423641006132014845369183235873257030590731752735542784659448638268933790224263131051213859687405168713327597538972925446013448731798358999136736703347554050492894130900363617896969634715667142102478778651530606633216290361962544618548951608402149560867644357132264453407067360712026088898642967848100481766638189078482241126302783150178197123073514899707607642010845399544221727686362993713205998293022806589042741692926538488632721814857677632680272400616724018651369299735611474285993385636646738923613042090209399043476282712343681523619620912735415138676986385146933176109842171404461816363094296971555284226125801105637096652316827187098532743178527950187538968544908568826644838755861249928172996632370912204844330029060052719027682295105754679586256740417706060033694837790940315237399273434605959718260896349726351195916214037822882813762154814136219069553507765594780976318605978946189863161021981365618239831009617346395158699981046625747844184852721232841082200427566665501357994925964959016694870724647486177355596124037355778369933080535474860767367568929750409825977592195792329941076077660776132499940693364417833234949514679879291122811880810054942337393743738103651111101260725673980189099991824038636745608229011755854484358646905640409297808506604530941041360832332113410634694467840147037243150358004144106399166234382236409951122295552953827352400330601745435564625445134110191267863604479293574876830954549964696418013591764125975416264952032895153655620649857742578373467688907057048793882632236243619635805726521144856414661094620474911027353604345285570551050346906586394487970526243081544215714476887655591289427804220592634824792164898190320349367526744494486944573261685314908787553648888134161556617197808606186673596086118539345774497332883052795084287522241246070392825254185815107999988050972561103822611145642511584796022595074957706471719357176728276757498552298254080986746213997043692936243798125121973149535045981502622197518695888209218030321607583720685429212464524729328324583645592387213276458300289487820451338345793121865940757029164526859754426291489610507268902700158915561082030468221630773514173948326612980507072894689408159434825744270549084546695830318660928336912598828905226174935705353505106464689279862354758904172610867525481300670289487138266265620939633734511727367350202432903445157595578015527303397095943572330176924378532793072427315838432971480128940953629722664819359561045092313279809852437855834582916195332960609962362172010811237266080311912998873595293414883167112597069858111568318096665598476063536941690840127915404907346887367665632313007766596492941825601148782958044631049114639899499473165005426382259268195760486671392235270979275994348653357717774358701853853354359379598001326526095758613722695015078412837515868531317420085062778989479388316915721860391636582139866670573142117732709106136295125742439336065277223778258895703131370390143475299520912742447143586739312003018915118539930442203777926474521323502786233785569415826964665490553716594264292674584679792168047208519787205740834808701577635298837840034178536917701287462230711095238728302218838413305119484368748697082376370615462074003528121723622090566389245481955583498211747850361468634082379276610266429406012251978675262036271447469453112513382008367750156243111288248602792544992017600812345770457162517574165300656350714403821721324054180359798381590377240799337188895256805428294660283714082501482986939908129604950712191634719148370912018796443805670588622795946700988960297732615515323655088539277229394910720526102240530601982545788560677495387048756686946946644212740498427527727036111056306076859789686452555581647117927168935429058488235746389343147954071123896545282587548725726179742628437193795480080816036606220538317771425742741879681338332054857723086860579560745289351120551456971550938063393222972677478460737660056587209375519726169479772609171279933267107936115889260704454117535024995949897193507756834674123341388657407362902418951525447117747086364971807109664912284968177064645278187825134554885526316761351248831532965845209807417534949853369537865088463709776181968029607030915676340488999250166950792917763276245568266736376393868958156531283967302838260202020466000352705424710982242943757099808110771164534097803138235852023424644276141254624157249753748833784145401132344625061964393759411177216874477272370466956264655603778588705312535794908032632734353751911376939627929510812477804082146067651108579896526145334244373606680325157645761913346567087662900332265586517239031265655490790368005394079021968716763165791188491815090136608406461760364998278387058910977943137214734223110703693160914166735883564691763611628008608031897377423562211864888826122544975317900012293317763895200920314078252046159502062209232779224953750842647903557491682200055830072669020918084153490772638058261849488393724457373584357689168326147825611152278000287131873620049355612585112935166487967170219539847694378677120748688904116728637860528324647901387121240602071722884625946417284943258146935492381880888231149308031578081250509882435304278911660837899208401186687027299425729623655687485765384220775573338615667045126305004257817005038675381940817661417663658832443435065999060089654162459548480299677603172590328676878030760068612879711339594672390329415410714086431699173073782643823718599602368676639286091834853806666393228317930199615783512933382714056368785390195235405830001130465365930089023111778377636372778430883252016929493606037140547007575455952526685896276082286307005320998069276007696109788020156122876961078707018951578525154753854115617914303639041620478913122190271764814162731667084930484717938412695508436454158846022373340230926437902063472495821962493606248445825608493299732372970016146481478685025600882190829914791335179203006312266726955605617724727830211791035150871797350690973649528603070012892978210089462945073096992087547675527939296262358723946475805161457575195373038175506317615487420068824291494591253542140432663711433069789801066233915454015283039100941599065126486510179178075120906306143498894218133482507236558373454016330210743600169649654600998548036794161049100275633940626556240673922813517481135827284636497134146624837123524323720929205196620097408513329522591014724185047502134594068767119170351502444907597360324814899084557618042184607684802574513413567483657779702784777388300076953838862036171574764429716428152903202137822520099536092900561066862004409048784837350761365970310487001227907718034202884986411424776872298853187434074695775909965338135426156851527760923730198805279157818004143114861716630741642507900269354360108554810358056772294498889535329130697231658146423165222956231301089697313414892774821903685408698962331884389927081128558118692391737786684088809855425665492716630863292582733093799928805004142525833912329723317162543285196674370426795070414741149446829941941607973018046349805466116413702954729775593285958144975356508396709182004974822637034301209523364212113654433598157414808748440337111932059513385615959467922421925398206511832447579786501838745311189243477003121834321998991815408295650877741668370847596908877236627117709100971827855737921968903686859344450751630768794731355410693104979224534262879031561540202546512767556919080742266325562740156943614387291235443825793845353889552518890828017155276095028323500291334278801541011300962986035197109713558969170982296893993979076777237136801203685825452812476528394142786150665725322410683497441095843985583343301528062185861679375344692518735022823667595017053760381918919153656338709263454162490280953408497220073939880139658855594099723817682085977880318653180415803296300277344790581298143209884034225603090700677037110581726415108658384975049180515158110080129148265878525669194434584189408833075646691777127480160245123858864698316393391204704150724574222754689080333170507839344692695875352373847667618051530159156542305428479134837829420449384244263979790616322251282546923683779212124964999554673955865515920143658892623434273008623522917272176422165885325290355186093989809809492168045388480694145794741392037541766133364517039749135131849587623990004979708485715157220881783371643790923795242361319496234286310007621215027417549124623474751012203115568242995257136520265025036577197684716512190506969435940436732342727485555395607178054258479708960193328582889718943927297626046735446202308502698357236001048611676588513374291519051699450009340079635973482088282443670953784054583986888241142347686310263112236556817980337171445101352042456452707192449806543467056717001759884078536694363681572620188871290346447981263150271264678668554249698428472166851169468711907394249017455914479665551507833176197796620892439147520420145098922129418931221661234278361831142652189782595511314180175385628898623548991739232617592169247086450042053900066032024918462285910929454470692447549780480536995418437943289743008255071735838507434611333074829414420157023503304116432644434557699488831523834022375775441013511474069202585310388644209596826974746412178509348831284440828596498414973611150533393457964679550935409911609258274811244629465019095796557027261967555914358623159506191070047880916711405239457992870034433975285500604425118363500655629391194047203451071649871165202818542539857570641054996897611779151966584023837141196826960887853657195590342773023322960601350659999655230780804160349882583754824582516648964327059376666457962582828801418644119106221457803139928199997484007291409136394673989233729922798001572844870502182535847526634920570754436575510855380583068665234320716116687453008735049873130223266765370144321964312809002401239802412439974460180123767201481557676597819468239482842620556848322971796646691711363330421644911069984602603568081301610232660096677817886754229680144293077636202738373867720269084513508006593805633750076367453484147808334895544987049021968991890086477732322838241347791673617673845637184928531003085586146614188256179839807071108585459859290085905626368186834438992653786202500722019843923012041102427136372726464343104410178877883955417487427242458331911234097663472127472119490024354325768581304095664972292806555406266828823563651903823574267490005328683542420456810043653459048662895827358944262782042252910114714443696202791469257407062923647499726858948521103058732424489431766775926000649490497037028284414616857040656672288746081179906268020967959727834697987728630024645659344493589861514561831510905953262120262977195391361653790912155369595264654367558915700101666612817702059184206015451836677684429706763012444368350748128792650195791033378791095541089935750684888443094854132183009437840371875788813634071853875940127997461999238204420298924788142035811671550349973130716476373559476096488839182356382380071597409101494936808759166074604793765543751017206733930681789633628041470417553063158898981271053409931460870991134498843332598503117756052520995314658071793458407559341806760162020575215371212259998668114927366998950475903780630284135463030719956910938889915732943874325934820905717879182428467092840920360540106914914842382678947672292820059929758888232286519970266302546348871124071992336610517851529234966397960791323189341802243640952273251705996541363146324379801747425895520040259612243529457560575296735648019564399580577022508940150982856128990113887624254982032957323147667947270415484498024784845428896615513901936715713740269523691353726701134751886874434807927194869300185380611323251957065907200013346672597932726996939078785316737626321987629875051550481714540691304345721778403145298037476517813960141412439795242763664634909563660548264027747784871919612791721031688157667665391824682661552783464765110041255939284295643620256567520955994939380334053581983330046135659979896006578465710761356005713877945766328972284784791359722181418006364654250997464987051135270683583025595394174238068867532876967993300028264152156626021023350892958494869554889428178922834541159199811181348478994153611572166034827535182113526506315573208018712284586129617186263160413217793498980617579685793176898451471647881561540518974769231105042619198746845301855787892496287698341753315589214897438919448619735674789697049067117832927363781498029902609057883618556158019563409269632212820533571709813177433595797260896024772024321501866749127389121332300911048669733913893182063602596783736151062441623433162363626964213942258337492808766589982241022334685404709759024937436512300170077387256536528028584421483652727625458475173071159707107125053774134133844271082217907346058692669923794407077133926457735772966336914379671500697923104650895514768616141542879401884529354032842428607458328115098007055997198632051914654038835854737872863893321701891833052809113567346701736260242417584308631735662810940055796673136934545721827571569223416651262159898986680855664320871257649376591360527700682049496548135596836819318041022131733595619566636099992496540724694092817213349990302541797145486671711000836876246404801965945362282572436282464823207615304819318724112333149001757676187688457870663977529574531920722830498722057786009503220827181022195130728218786708245639318987265671621379193544433738977761146600165589764186600801750407333967001058079025210502347440318069428887423906558252839030612913021622630273112933614982333588547248829293214266052210136720283443845974304268474092086489657042587681198711339966410074190776043876463693846878586748103507984195995387885175739158307380157242615455574887017927141632338099706095077521042114929202214660308726919766893008631708711126405308881342425881483624810385606664080631645560531736572234443993426621885092145705667692734034788455795094501648186437039525615017560899488767194136724392348380403875807152097911599225507162198056882340959230543925804535793830536992796585909173802985090301841274420016195389939393638380435930518687307952138661154976844072022517820090378405842957834753487112268621639571062406148058030619511768138029157820996724671927855711399402118389278585810772904276374066087234387315212590185770445508100567005989230312943639429431591407592182271222911855999008634095320274740315614532138626734713094530412525951344939707872588058793698638454028911373391433699862346542561832643918974279548187246986528957811737187220382314345626623767642354718852926776195268994157975836901187615299873193192940609495765883915745608070801052842626824102621992197705440191138608699544436450106002559727721543818740674444310687718946464203236684885035022351509019485370042727416849010376817837464121083700867078689202121544634997785833388550648213911762756095983275500860169591105564400491632464236372262588706168726784190257683045520737912662799745869876333464457609035914460390696153114107829140910584556094972156651814476694868743356961823827158989044810352006752346324968116845281610851374098281682467448499693478574776967181590003371260242665335565452248519406039902111127009872323112555806213786862806381284735754660543261027513001377508276918500065123477352593528170438440232434700750196421064165275970419535730567383084093283881305009470604901236410060998640167526711756677727349265547924279324072088183533244145114716276750500786551441528834877584369987442933242350412073721261727616351411751751550293838079995539893247717268216687355590516036300474069002643674457022783272392100548813854249129059170483162751691872476037992708364646478343194150487344029914496929084434733889865244576642998199624886087881485290960107221319424555620856009648358651434546603739169400504228791705587977893457655786027864037308981241154644624592216552943927307090110990027771164537609464781807474023443177388848660763207971446730182169064948849192124809913052865156589043441163125829371980766201977719190611590582788949993805620780603368837740112921121170242774153745428103605579819512140129979813345361094411597529298525937656075201531417480861988195079499109554035363563857365158732701463054257001257870258791670150089307911060960116388049823714058638183095667071831041316409077786217200080156160958210681016230769656618559702080471406471773309889240764184330739652109333424183914902129497726072103848604183652852601097680210572334746309682314246006917509897428263914914406004152258083919932970964794444081123779558576255343062849124701326009254636664202079796050188896974807670320027017511588746940008967735464348823787973919387644096415915558756181541920964782871103379123668406710548513362774444791176432636964894054762966421112620786397427323220877429571680095919756029952799127116430062923630256857293934895754121177922864593852791041707898330707332636703890205984961132280866927915336635807019517505444824441808996127288270359730093208531974141708405336880613877175112020241795920825710083215418731620529155539263051171930598669620621038237933664065041019690259998976956815914067458255118880722026930759577867466252623020468702160341035463179793948203560434886017479169181867908578460630419468440913205572868745578816550340684905762835377061198103024914460747343350642132356177651009053571478903900623790829809581491218252981561710511181915954896832717055023875801479447975149027300116967073281407140480851463036728776935164485347542028816427321236831018534441680146466891738328327721236042946647457380441223965326279105079355690414655678212946334712484669476698593552012566947814459089570717863013621771189776901321479741135370821934381295348875387954396025080463908579663427152888436886370739478207131182199782113494113965895903864793036100357605487977248672185743826942417144884853708844741632878222813469845166156856150943352714712203129591498858077442610872044046112624056748586754060768756861536569600797902610317363335248834083045241502111296571233983177943016620355723386207079769238323256299444030071547098287049257746541693440344567073175873840053766023738763371020555331685674716130518566547771629507079996863970873250127021064251941935641093754047969041955470362060436385579917271595257174595410023939232555560412776473168228120512695654869182900401576090002509427934429167143331103695341114972219711488410714943252083762731162886379966504159426542553413418475673621591856949626252725681186801798700698661601599260776907156089101377431884103079727253264796228995055124215824870156756304940492003121510196428352660428307255300586705499054889437729873383701451046190076610300784135748154208693243924520676216885897053139530049014054631740464778007276303442477849389574121710696324115690308599511200997490570739528029790354539633037404893848995754526989935754188467003910116611219583614825019441313632313895330111697983875090838748318152070846122766432283717951432273021522521082712795935179973512773050810460925023953172201783263182419927361383360336417068979378235230923574503571940979212937548384129332960126626484511899881443578535306026183032751969832408759494554912875678013583681815647074314744435855187473008107102540840873242121798708331991194920689202276061028921924176007183882016655154868028991195017399078728222906820291388710833649399301800321709401835959795007006785311960533812247322820322382174272999725763335360920142745191510966954614162735671669201392562542529811161995620755671401445841121778649305242573654385461111447752118265015776498685271361317761222093801213350679033976284465400458715795529083058319682940610952168907656467003664793169168750746414267729060755025517198549082638297689894958446828680860253323218551796628909791505479034020412706528382540524378099090459884967737419680519028140235571765285098816614460848376676394229583520721331085892718369303181064017414493299833945854935022456589218351675217140746106697437282620508712210363670413041477683467812128563795840435450452980347469165679145088599917979675728767031906692481846698253109651236136372138886120552225546165593706113026393191738922398749442155445092621705325658363070422731774896096839992578948917829096051137870946678871990696637655376052385547689743780602839325287923109728175177143114368371472208302130812761623014941426109632050161996048072967997107871868845750312413935464772417898135893238347267975066996926528939926389956092166162207612864529777987458191451210819509956198057450769914465196852992033707260955227580763975852622470142225953291080951982157553685418555683292999067652367259388559298319625163038144271612324109731199983592889393465804748373440632044212866360384215416700547046919393583882021853020886207775532685983793356879445972460486437863574602696395383094854880176372820687140238338720001908008740011842622306670129596310321115659021694190807815823955785820668196746679799471307703317791305359790264403181088986443707050938598275552547746779057249366921737906142631005042275315097680032163608044049561147697805522913062103429565740797637766652113011725808639608066399769307348317101237681932720413130512683511797768405402006214406771886959228296165445636416117200157120977379194793850310417119924613675987130650119094833736326675034075041067896200971479117011278257644101355245538514957669140931642215939755346967296182417879229285551179893920938307401270872022811990105130345735798447103561563693841959686807835758820509170705351427747745581198886587775506656689883374414888749622530409948255565383041376127225587203590566900608239159721951768562833406179417066118851706296122998698128411218586445346611881383256168832722214660895433226540167145170043310131164672421049473182815288740519215254314211771773705078480866119826686711092930929716519340279806105629335224585518255135301410124008461415998756133961379049101427288841455883148225349947213046840119676781079431890525653570019172593416863689249801655863478391803614839737120810084411712395308805638385133536073159888647500212008527185183522209153270895058332320304049898702184756228975987017107963151999071233979496178323958106927934994845121740001595089118392472860407963456322469017302101669574078745188123200764236418353390788100196290340529639457166798073917146929449097131959504764629362269901785976414226167088013791338052504664264044865748156793480874482165889554320940570696109201988778665701069579494110531482895687159918543787525698444178074285990999021544510795913293009352796004649178734815387124864706607031268094641936528272359840702537884222374115670756528570685346305768668916059590356115561876800617778857209911487161085243690374779513488739083992321316025593970184416699856993071083511258061211807851174777133647207548170023644112289271257262802155915391185455147721906289754546655522194509789768397914400423584605797997651171886010479206649708101069006188284974283927464494850645565779525260767939323884377451054578893374306968783029348710443871641099855614840364064574242702121488062885647739678471076797358848331983867915880693685119784695830138759159840453011134514983326178533475734496364440047431752544728519059608322409483787331336813448166561587656166825427270022241761717937166278200372700564064106899010542887424120353905800686951633678921494446201061887361119125319303955346404547189007499177077714522414514422184967410387881311330191412944471356082921350785116658113618915016226008452585574527369910876349182209775220451425655210169495934137077357724516578165691595025661445099002180797864528595186552443716696112441735287734437968229248836305929508061529223373479637225926215107064014312950229600531498755970503767592127407940288570150510299059349691778870285906270726537788363473771139292742614567915012619300753057501992571759730287188067382387271705399626935477014878107199329544939273192559959658745653900335352625638773832059391243668825386289662412698856134661741720116080770090339804411184876722631587407614549392931744145462963426439105886706767066543313842216204576202007154771207136788065393417400153675307227521848143394685531891854176809875244317184838296084887726151991479372838870061295276062697402660894467037609197744618508108329350125134535945297058735906425601943488978613007940096546020285775096627548925016562470907626512066357042174098643689753578055598945700301856287890823552206725523108928198718529072910062525744894973672969996502421339956099656395212538895186745106335694360569529983045102626734163292731929433238906129270867043212857324500807707351134063940726835863629157393229967495789132305306093184143065748041256842421975554263221103608714385431689274907359932815483095079207012193245341177177336858412391331327965625053677552782027839229766366435718137914706222994817961016409928299067633369700388286577943261824389196005475071642032659739115004637318805442433342484364320689114014412017994337838769796021299373012957112080871506613172472178760472321528981322922734032376565832197126879403563994585453793099607219845390615348364449336263500657457754768101542376260671983275604086069471847608087357157713504039560412975585806908968407171104103661927192958554402446506475774084958264019069659296827037630469558266059896332252669403322177320366085044310657874151296051360720244887449297687292020320621976068100740937960138840615418068766831710644895517966028922814878384483951128577811782135386655862922519857429589169228338027897696349973521174972793073638445558517531457024560044451838846344542683225639128462637145369902633358391760566960902592810086990543282666137209947645741290442282343868986316313374355227495790717201577678263448758368685407556547088727917974687231223726533680032889553903540459929292118564401948554428918597876341051983509212380472111317024158230258522106220981436183547796286590970208710632474497202340318263696253663932461484264960270078472055000840819539801473222493435678580258521257984298824023025876577474577489604853563491213095837302358548336620379175723198951063657758257839379706892467793713842192699626164382462579039151633664005611855869337278718091936420643240504187372792603807466215707141826150440416085642992272524183092162905735636616726499316422868368379524337877013409589893832229621653817260699226306759726127665367859168454555805047722329540418230606888039824576325628093768331961678717960598394075654065460625619908883639504961129965050429567079808862195409592045181930316943677131513221994069433137898888196918034183371162894571813945934844399806099315643671882058089860436987620200141210432747548009658183398338154889953087916094501124902935262172940227606857773144453026040967500216690804917743413924979760043217857628962917465207243477482294904765258614472730931612036324919767492971471413002227299231428511810994659850108505927926099435371124301027216563710087005344484625817313093301933524774676624130690016918887084251415138254089114139348519268800075890747716149921097165507241918250545383680655649706693556531085958676657667502258107487338803403668541132463400744001238633722981917782815327552825458674911518467366823795878100008965273268103150203906975920412058244692535430340634192981550873327381344014183601395783240558808008598485020121902867509751085417820587393558847890995375205470260566298322106806247854150922564022667720766027103704805316357106558406180989239088886371015957894272108665793135951729745098424697221708155204424046900099367747323546516397555603250228556278476027977920871964057137589420099090970378332652489534412486741368652453718898739910001742625863334418595690883160716011990687376981736038133914961422671780477851120997156458819978663740564457538058823526253048646427728187297151033467279131835454574278212915041181515455968933190757473648518282143516504437470231474987527387642013627184978830684894308990999646483861352332159058861050800556414332510389212401828871460967226474488860875592275005104316172067154542930615554137229188761047829622422790524482405226867683931686543218508870054377214733527278938970064659801217007578552913496522876603473342275401576858242852177830239021108524351422884939121096349289852429192463633879199059590114174033339389395448625684283726550013520254501788508552387198933976381309968870327217690214721342305405791633311947134239589189400274305961324277158323918720126955332746358555415717401976209941996158014398231235568422495890645443793317787100947751042608746369901450170640056543720018987015891989710854725580993830082192973404973609474563518584073340327441729382456754963661667078801784158355466779906748080960443633685674618968365747167445115124329803415066983394398770947587161858218994793735742932388555605655947942813124141671387709596421952885453097047578429843456465438058037228625418717605712199043000825339487417813803559042007289151342651428618585310676655362918139456890955967546711005340711653275162879476443896866825392690834236207648539931718818601578007719624333619663621046987892287392235378248848955169513510612868052317356048772136439004152373399822008787760113191594568233180871714179679744652024906057679865380006824759816043376158143431353398617811686864034238083078340279344792873626563328627255111057664137320115968402139224351030528969733163041312604634512967743530709126104938824279451939188291483014070310795615747697057921254011264131503557424532323851370560136832620509702628447137442351739977042467093061641084650396453387526766661795953538094620940417966448304952632563761245450195480731271130729705324788660616498486070209881839522074285544997943718455655998229127880148687428456233519685943229829940051345313338754898571796441198241921639562015580967152971341348094201064840699960743030127407786559691493394624272385008520584408056754702374475909898128055408198586964645929440593243537302547570455693614910085402681100992447949433386210250572006762396327422577459604821707780123112094375715767231864671842542723270557599017571689780573833420308323811423486238557124682718553030377299722845401911636604400540910007180176899928639329258046174939548952600879119272570542034139070397228674782178880064715724960002132427904707297499860028769390006668359295942047274429140348152518206486224094200555896617909148016451390926948893353892138160477202078822591511044653937676326340780403908134488762489668738324745860667033286982220796872810168314413144071988474624408403592856647083657170983891774430940696889745475779659768827873899254778437968103707090649197003207120063513164468680850762078038003833608750429253007814127559850186194509033003047040486103630505523244805283567881337497367950031877756057768444490822665317648190350432675194954417827150404591163289979861313526120762144137783007928535980991782924897316172036261594216738598115801276903117883916946032218139826063159461955637681047323459490698758229589174627790122964227150708441489865600243823575913696845746977659713459315233003557481775974472599242033448576945098882888806768035838879807397378098646584453120689831636141526229423850029778794898934452359848473258559848990923165874201831112749574801313766619810799808909458806187377062986192335868446011809639851214855706569422615451114197392561406008175268685504758533221663781156500070828047839453092351824139929098521706566271934119192497973700851707613590888608913066275856557718532193266127525106279655211899860876275417520408756764800269398731135209847521697720405723934864697090875862243174775934305812143270848144288850791645293496906362772638994655345448820982038510919180846724156329051355009417092769301392371376074130788461776720914299555677591611634457990123638372771825401989637804740098141602743152518431658392245887848905166527669203552490077089629269007570130945306221985292916316623137889424599835473191015380224749135321682929098452397400568833466195581773569117805653733519793388971761667940192742000901464398618401478700946580499595685536465724391915262696399539623851132195425707535142123724290953307217544695132670102961547811050922563895908603960547023945654874631980786454787353443347674768585990167802924376139619229407125370107227737050301340556483994111516439443203942804082190354827086255705410812545638164680721308297785745517862142662790607407334059492613422917166957036779809281141309872104220214591311220785021337274527264587358548923409320248893340791462806536727287154658875082677425562692447781049665856647873411652597902787865709403630800606910163074094802907209303752349803334886676392849896461299221681332813500652622105940023452397036000247784195223896149649318238459061879414913004068572397908466732691727671882178497133679302671126145187589611737491530660089510647178599980632073451370046044311680838246734504693342804890256314886265208916421537813705766374894302594106921188808165060597006070196002017409450809807309097041401485840328148592485649205420302344482890378374343738564391805008780891736865397522952879161497875667240536744522970391966663278510143772832853930010188569917138605512627118260842016288912145263281081206617878515486959022941465431415872306536446566834410377839829990434873500440694011797046587848103986881443016187371714828099680765409851983754407345412120741130270824272687089519558271944399891125233175642981077513716771979270139933241258630111231483256196114325996538917592475358551559137504721217288435729009311798793236267080911004048471742245850514462721963921804821219802564618582030383329140345118249040563115423913018299972993223991529008445759567789610883123176357216091212036821926040712132940559772612364003487753218314569391264614650467270404104244618159138289263447260185497681744649878872944101052882489134338535918058508258759766844584903512681977050104082921288410625016308753679547413404691461893600194050404111436311385626225318932360414105334451105939424455715687901017413606508260557204571317553785620235658690360504704708828154646647864704922745297676740648292334945287738364623679405538752642502953732430735001606245291569313774999520113591364186209375306779481627491239999016627618532001250833458658986700407072532126919981643086232276367721989336408406667890124614935500009794497975577704116501385732949330133288510229359694312702514971147260058749904679186980896921830003059223302062296752059343467739231906537736017196717771735512316155442958112464032777515721185360280431568355205688611246705830130698331710463978815539514944027697360932388770006136557066632526156405567596435687863764709768654704107577914996223510322675674701080181809975015419029820549493023123641183141112120295405394985765554297761607078417638284218057674389935365790102407248091274869630321866480541527664174434524955874834294052035199877370007932598430783031890824835714900073508092693975091217880598597847871512132720754186527797212358104370111670622782982268311383440269619253024891166931897322405967883162490834553071854426347042752701696266181707402201956994327053495003784470729310639695783399027337519187491143873019005800440687787386135515986299160529004646804669902717838136198482175131547241541551007287866046516889532939907126568297755210371071989553363038997301773753733878453006038005416148412368751695175527187529546800284103153347502063024065944747567532203750389812315618908669226557113272416425305291869853108380582666349379389088366878484551856632174924701499710789247777053803000372832568175453694156842687723262229811517750303169951887757696875929558241930400910841581216153996985704383581321659459522692562071589592602700764587532526591005324943766875231810396498807065769168269685084412459076488423057749383905360163422451484945206834000069324761909563142951734886278559285514944347357617906615882892842583964806592559797422597442845512198089639720329754032263665168720730356223788068948215644227750974633345334529230949097029922519176660891245375594730812762159104177407001324480603311992453545539944354196083319011497006961058857171337472967123327110697773127386234349609980506272458644113985224261351648004745770168501571453385503791495258588304401222661121167004395175982578460204493425604620372699398668393326364804166140639256750393535546265842871475923046268418290661962188736041780104114177002435944285482014004439060565584793956256730522679043384378131245464170044287807874572638429271134060557587084684813279583913674146235791288573652925686083611656203725642784516867700519194033298624657931113762192098895099419408422266076818887106399886451699640550171292748580382904708603215027066662570086416603169969635100522004710696308518930854907956644466327366680949360161432199806084628096735241502623972353694986382747876200297277146409104698956745936286406602238278445353626417431130648740667326736726964971500418463412750797181344742476985616206737155154261920684802081139247027335963033489090264864853345889354769184225548485145729067579163276790416280248221770648914850528959370108800298439213451753263859015283869945284525953576444018971200904183747700789254825289470436098589240213443109638190499877254773794495807740316911665950840265207482454751617006054291462319125996594708311813864961516052314178168653870406366695333264054383195450846773569473026482349803854594761883128059559906963365096397631527319631571553499140555884327682023135481614325425626332256347872552055913339697838589195349106010469569367565465752741929923250230535556418105483060967156898593291492292903897664221665278814370321835339717941419308628197786606394740060710641366102448138066642758909478991731128037979990789683801122670499847995735122368037433117167530380607554108658343486561120063805748134422134196120895775949580196327912962212620239961705019418647771051152646463716310719922952775642870481462041333787801570853857081266073242848459913677344822351974452758860325929699535260126374189910254295795213161967436675940536934340932819370739212883800302997058800376651323512437177624487898026997935861914174410173973281952898184273350435725155943009867610608508376129968110843344679471924093161104022213821727320982674414765305330858657954576316304517892345195121704385127992219962133083875908415646648411350582848832540063118921344853956614184389327741047412413758546261672699374494232425023581728141112551229648057363479508914207727440417887742545008124522936533117214493474067853073910673251606696543719984069020563471937016542493020803393972768101477682446773483606983039250393802043041500076801513997553430581207210512317037168482940748812238275499370012753521807123560115734449504611611885445310717640678516573333454516648095627889597483774924481167539426101460320042360013014728727940665739353034742978367983785890958788442768908723384826202579361771846232724086439069474568396712330195420373303055161216182037985629858112537060987180160516666546775592680093371820014605840209357573366995408319825221890453333703963323949290996296830972463292214822131073819174335695504422864881978323577806705485742674249876341631659481875647004357424060244919998627113739577662522786383833935813021325194032457608418797724571560528543180170986215562416087738035018505890275661211696874951085019726263591634444706019914341779275276136652726128151326489009965286130579418450319278489507340355963746163584483356284952663435169429640516917143894108059497746042606431449884447995078371153765407120480316554168990251039479657978527262953659918052511355821631204812936777003034390743997430632804491984468962233831174007823629846757039132579045456788414563696873272499099029906857881202740900102923116696209665740312257053107763058695124298017432851809765823862879884863695214343617439212262574359224359491868207649358224702045276608146988199893094110602331201958100522761737127831195177316600253127300975332352463116586394316099274745359997015550119096511036534187815124443465968971771578547227154103484617175973891270665712508285484116874955757004531109015351216320099500927179618625903602151131342156077259994726792527861246351634599904217193606943212900506293832167380978099380067489905932321931115878959906506993272115070529092717251117941219981268362476061281943894372962688354088821838606650909156216439934354987566752757428141414539856855085046200990390329246892070324906635069791812232905626633138875624258506605265355853773587331184592514594143773168011531962501607901240717037585915714256933629050785488327988493825662958902915925133190773498806073799499343878600546787570994927648241632485145619399143433899854449866542041226775286970416264119735633146617975952443265017079033237782253113473761555917793423386325505511061047309772203257041627981352355753345436644532374570994896819477323535523389058232533858632589386677453115827263843923217899411622029627947774089095450234210661804902616862776533136964034008827977557699890257408428396860425407755623676246715501594863303379407232801671897295394053750470748872050235935713045203049905988641637415073325738726039133687822636150369394811428894513956025617874226362755162331204362848020215768986526811256901487852275090899835128309788818382094743311190326709245674400489443176504671105932002740796518871347686346858201097539501397355022153752725818688110612998717253330493687767527973658871736192854962084739631567089232654372143451426135826092887755940406097449213245641493282520607553815986111529697829990169096646181415075560385541224319531540216239306350426575939722008023136923541566875095722281383463483044896688123414164531934914039888662056368162703003106709801906712458840902622586133367656243859251164145312257188628997195155882440511304897452006592462129131731600718275207027908280979500114210802728110005111962433805453426905365483460924599551932323870549695196851437703283946270481798513413847530014669144936326626440068866498756103297140892600819269046354009683943871780355403292915371930056705771129310607921662903160825707766512432116266331440761631499222769999216251645103217345941777952603691261139283485950829776544716736115152865558143325747946821567470383133717408436335466907394078824094583362979216867809374990089277920749944140696054736566538418684098774425636312722098745238684007968624115574984887329343080033892138688100822501647429228316921580455576070697252072620006336910334279864955093708757172563368283737406420613724934465408304064118195628887150392621653044243102718666364567480059193598427785273204744856150994781654544791727432302779786407082485088880656469228472476650120350599095392347472488861219379212667494989919582969016754843644904898723097226804882616590822223367027933392270939368866281012829826725757845032227827921100601498545895117621335723771172655253647135495600624901805500659257775966589111701708080544864822900603718476866602777674958176091337771862204510659454810426070047029611691668391954238131857632930670611857540158064261659817102999857226209300622488544279549060452325575222589642615051355043077488719846149132332666087827111007400255374141589758850472056694668357176915780669126442173488518544709544634496084823810762534074697972283677854761103150454990504383014547434170374647058162563331130803369165334701088651655958280446221477353588179009609052549387810352279882063177559495883047966150830504152158897605614657458242507619479818251224557118494999225358736670361217620559479155252636542698693544916434655421230597948598591528309266233559854766547363363784905770525025113676288412456130680628874453802191768785010342036882824561679711675334576418164720709217204330734365273081142547499611088774898304607911942195526278865358823410560921510506947131546853676437334827594986572434291364700186455785127303781118186695696984512461825829937753949281076318536370757872901449405599350631704328278232807884890041026732306768643633030145545547955983988123022302245415761132903723573320635348425744861687106309479134485196530401827266883266742578256917221215540609104043044646217592748090299745537850295296241614372534136743416892987838429844366377174255500985365609403180659453625657792849385589560777837170750729387452552161298647418278336454231831588467800248175628017066801590308143714366568059254018781757265078405916971064736152344903374019869786715724658922107845194055930411295336514849658297748807278709604753098947614270588675936448723367539076548265112485076136725047827421496226937022363081973922903854281217652109186430074920248277931759133724246058422177484213831037571291379546486562910655009589946609185496757244527208229196542844492738968030362338418972335895988440505464919085783030234490274182536637133954132414301574617127204986240268866017838036008088976551238402940089438070831394743766782201864303279373749350990999264604714306825015191621598158370640048513238057973251736384894652464509422447608436527084774602416143175995161751333239963252436150311098222603238692127627468684059789015185906457131809351501230766691205110976948038459905647540122684401093065669200838399502891262169262214485772882769931879645999871251813665229413522226869936705146812692901378303233575347224732521680069452683806730709559123870726138940803938970638293450697046833116988578271588900695263416883465286296401290280142645704914867499350791310875646855783597920445942345210713629522819445539485963369774550623044578494696118454240591768205649846228156446676158736219998789562566334018435062026658463281916799742019965962098791975018744119601120284967392845007345700800844042106322225460001898765495890036761908134613360707029846044170293247372042129614013518340524469391434990022839885054806631522074124308786451560361351661780812620738666790958158256743067795562334958162283933522693100112821417444801384347274706382713863324019512219329616472620778041241895536833856468063829571837384594136886971574784997102037840099417848739400526268092153117232158176708961408545208997659802908457382952848684557702637347733239648118569722134486852411394069849499590077893086440109368661870499629634046308579929322374649727663158099216010350147388668065188918260686762127862367783540046846199558390214310164480121447630523448363621891907762050036594101030900372201263277286046558496168743612212127238616785087371662382640011302624574357537584307502477758271363863925103845686848587035228309554974085239757689988243320936355967815133180333949209059063431644373862685463159389854522698294997587470576016854933227579883408068392011458397757173922141387669504170876052853161656595631179489150650428343352513330984604804239215164821497961762560102938860159200189881802043560840422964726927196501936408229168280245465007911050528412100663767055768632090101310443543628720041705662084834548906342085767787737481520233850281030377463296140832023302076723590895390121378821659143232201179988676510529393843682382881588714347479004844532946265576336045295754440022043189664124676947966171723064781929296664845875467440363441994525092780445589632488219667893730912247420034660298263484961861431330810139146219293373364812615517968323679260063799554164440651427414751303470903850148565089850672949673922291761640102253348872684913564397712786456303276440996812004811184217338812132254992890862248862278776990247762586893845657632937033915282119060302127016027328565997551413016054514400573549354253255650816754246849154220546260699613325052310842770362428699806686777745136894162097815558332941352703001527721493293581413677360618496155542175327854238642703697035858618205211822580692907311602763492384947450289189579797547507529323245066957863772649080228922538364555835355006257198739510680432664481628448542374205579485702037277154207064186153739734164278930832063938715948056218845223962845985444526479048376786613618354590176795919731173026594486795410984291508242786056333198633695431382367493573960544583066023483978346166574683650605858557293073805163565113812521759248124128865592888716223231284026132214918900708074309991485261031769549031547134645682929690139184076129290053411591042609993860663978331598541219891228172950609311163133257925903310113168887046757841741609423477120779764189129684121739622905254334109632169732133523284543506120735784939548048900888860606640100248475831144348830273979818033482034964219545504054733627710303544122624043235602077561686557959605539001365754267805335963451739386946779238927726259509529733673909204254564649357539374189827989642993065622149994532900200345425642516940088689452315951724426536592407488913260727877159045607053640074920688800198289632860854217253816541788125305679802432805865599466626704428205455310161296249204445222589144077549550304174568615327863678482540734578480362148612970909388131992578411363642142971179467403025809614583390235943736674457116382810159610312969579611689130736090974228386480263513717098007446551376497875100175196609804748465659168233216266709781633425092733807382657719887667759147670644007205656173621509271173868231232363812663282253878145728885328892978703185211199274239687090108543643685060069491653733587350156599179913956531023380600313514765792659621822087538790382002070706687793314920160181346295658893803388464884818062789806475116160229365227416071753038281715654574159451799203237864248463345630121615551573924305466834602645955988033688828303632834342203007976016622128506577296333398873062013463398891150065620501454682399702231291858661972935295828925267060924112359963895696215131331710694423090744544623028891377641025166331458189640019518529001407496065522451250108443974322165550463881332412916641233909132879045919203226431638946973102720353961503221958123300225690806876668296703543664649412327015906225943229436028214931705173787520698406089823479083813240730863321413623883076210700630483208704158176290908742621569797266938266346683721902516280636923558732609582115824495116952525876006392099141567932171323161887571816721823908928906728960740153849746016748730579687496697576837792888075062061280131207407021003438695664283180789788722604395234028903528058519986241517252244394043378347931612865432148268093674417488716214169916877346076639710694630967572536832602301178910065427514488754248375311885495087819975774997705898638928474492414715809716224561260490842656146679937468726125579250401899705230417959815140545404157839166587862775305942573068226467560881330231717647914743348887788800949259059858491094488450966243989104109065768931826344352732927299990931334850931040345347306718017126810661937094132518954469596932826239065595663822122463157238042306576183756766041842260224331583224966196814837884730688371928045241272597852467068015957882773395284860161771200184004165372500184794239521570431349556827702426829542661769736170726267085950298310628926134446528758080673808869090536860775664881328554098603680055545842638684291334143740135707313899123611873748317421927002439025203567689232612957884208001066270432977760973247180394712501232401694808226188497811032754772912353499004636899167159196183090205215722429559519549555769436119701449299612413411013268087395667458034180721479849199037391955889808973730923342244192313495244264716844643923038142813307380781277448496430303216202786683096233900794947429403168045789210685172397148549237916390044429315062825209650271704372186621015504696469153231520716123179969854875516737420924444161426427098511490070028797207007703577233767750719881082146155283798979511887866833664031090670434505527490712716059714983821134419699630301542999133775236301767663227525598932107019360676180624940633443191886396973536121391240392600535926928715617873170385487899991372646438535238075712183919598812020845039408997112201636357307732473242481584626191855199060085606681149754734239085375550124124573837732035654852402321931831127531159252414927284828163744600646081176335915838941760074181998063079876868255634859847811966822626783545162484471370266687551670047022382258880408538605154557421001647489162091732401611194492163364319017441279314495926746893773054140877195967339129256743467574168584829633915433600903851467155410019985071337574593461824879152214861409258956830097412998366389572337992107585852377998943698705457142240642470424828000466962447679984580828522121405826973130491500199514389529673981614390931047014049641081111353560719585922350755420958462614753807965460435282555334244209569428439894242242400790844825156165265908822944975892282805214122169314962627003901191380463998401653588258835111703664614946227791695856675676697548651432375161014398037972462436250171474775023969462652995232565673065505320384137718556553311711476201577952548340210096629088768847389659286778920901296405271638220875328826629667504320188751024664181679962335214391741167663649227870713886014711095491680994807426693218828547562319665091630530820876965828084917407101315143976687350868667754427060882663511292562337645182992023039368266340340582326341979494507687055599866910589783250475255857890767102794385863805048917195391586789726689185194165507182406407608592099535204195523074815326623889923301058271238726579694306734825138893959976269316286279442987010152382333304383889701483454760417002482107293894902395647291268342005491242136593463049792995666495800087184019871315062874288173697210864491940640104857637207409720024330612220199345801615943716864883155871897422957383060557553291301599763783491891875263104546787105425696231555881313897129869485510636774905913311562051153228409294754087354427807319606846132835494250009267253163271995429595011591561741085551563967666058035016014634522121771658680073388146309654008423849883584002619810504804181945310413903656443093062078211127572780534253486219459131744549830585484936576058956433932525058915136794367597569190385909317566251541059396112100530084558741774112006675430731611401325219766586706324872174230046454565902133540931732504917568262346296459221409076200822025243171694012884765414889686527934012009769905272851100824496756475172524995332874069025904003142086990449252884778859502626285225683993495073421872516628352799879882095091765583495644888143818470569597289445196505230655264001772215376703738252923633309685567795019161434762184191559331586371485010091947356609284402445997038031341058028851093552761990623119350350232876104249571145448741682456252240119021358323302115413899716534418273727234476039052620907460230495476705795870124541881689825600911673665836099691788887853384615013035026475085487048531019781378599346273261357194006508455513815936163633972641544657977609719358430643891580433884828623715992145236588572824813568518329394278419271143765670932156050365255935146405453195844995796497780727491923014620491694089315140715571030564237404387818536508669047017427161856533641042823060925796402249774588095819207475542131126884403630805122033247667518044233562049865032357242541253957403789182905481886991380150073789809077569019009742024993127567497756647062058505604999658331705467676684968964722100277134726908297175758511257832631500856532644499449586098416415099143552968723802129870012834739963014387710425920596832996753821695640561544573050193773394171538705275867031779880436340949274401835543404037055324129753024078490310540967042522057011268878205129728002872048378184796447032639461081295642970180640382628768823275672227549588501039069698513235381033297876395497594547520712920671988051618455219525667889728042921905809278714260864029121963156219253481287940033336134703534308694949439728430738200585250267395870271344824899131786658154025723451818816437416558376408689022441647048829725937172491032161034835134047718205375777720345458940496576496817757498175727917195793614479507643331924059251224199562709002513267871574500673767057059310982359795194279288437713293780960042666387421188323877848003612113236175693203583728793018508045264559086256619024715743973624424082457956717028411415706351942713471733455145788126250534271049627560190868744006893300963496818748289316577585907513078746963407197453391548643071194304540447458083345611135833016852885355025267711171395591403982978633200367746159403715373256987844240293190090939423800506805290837063346148793953483402624819965659962683314101384981924478401748212197557761875504252722363838004229386961770551989625765704570187904837604224471462914925395217773713282939690414970212756807709211766973102929846208834665484643711552644564769269164525676283526997858318270945790231991351266383527879503774632015633208024893175247120025787631482532343904867072518446825620079410307803115826945913646476642812031681984773346669575160119739334124445568898392802105213644399027910402095486626147308483668305201247809913507715214295500335096635824243226171021326629843420963253594709477605771593976298895689834299528324138786383538876160910906637052053156558569374719190683584152109232963743206948898028340106406772278867890254014637676632690485721253846725823211312280030937622196174169080526268024581050662346677088330128509680703662157234939818756047482946346482282267744887717067730945151233813668498759232775953991855081917140590400385046805706191855123440287763735849747052860863564895995497059982209998711407403620783241078729816705096193775442678531778443636858881718297199155947624755847260692011876932578339260068860311983660627005609410869245557826266074875998714050845797672840073627111730091554449563845610177130266280853819857267228614367373873494411423520376310042591685613612165220135222842083580442926201551226343759552604840534526472524427784452803681763668905426893704069002097091076064938142639256085672923045866920007109777869745820500346221440350862916085781525661706683604944939379343693849849396018267180405049399943322486439264438004423926473330247274542167267584638324753541659963504402679952929315171581171051823894154676730929538056469900734556156279098296820748319549078611323369871767999631188094770598754292809983132652990973364701712298375323491880712983624101267109108994288218320640777336237970206944250124328210891851895646032496222937863005805070695303238740810294875509549114901744548654200988084326258875906998549504188603580184304167144296676397144926095593302223884765430127879328111278341256785753350492915110580958884714834872673167360901029230168513724339231744313384185178665844352882036599204226653743272738476205087745874335046990370525316712384435479029767601478903535471671086293199519820609548804095997114984508535010398683716273820236524492486527527709088184283329367294827145363561528893251893337332762229726023732003301788163276082720867552975191522872485904324623151894140323765346622242741900561156701108475911555080091917339781347775654493141006214078119497328125996934125182846179400331443418324360338366375995560179872042974493988903918580720700165033621890132617281089649578711929532463409786333935138919469840465328507405783419819349457836234656883332093852603055943648969448636013379404517437896398186634675754369305249219769789923025761451877415737023949393304437359513581498347905538149876309080608579224241791087881942009628655532027302769818453695694683403600295843134065918026917654069167406875997282977170345013120893614077352971422981361910208849270679707811947927807067566531921675875954385296865078503775654193079016817797474457141457788578778658115178035513527208151617428134720070650518477613921491295947076661565259412310866408671805890047854003282327261143611692646120962699052087837078998804755408374049408607840021682480789184928971088194617412685968547937055333850093072563561529546838648758844985145128917894152574999998934611854683808647762557044039512233255101973018076457847737395104514546323828672772904172576148214257690592081219174737523582097594242759260907022627965165738699421791273023212587005075223961703863622716028222268716376557056668494522950425203236870109629512977145990606420525334199450926278219692454758709584023952757032822668650527467917688925550286971905052288332074114234263741473172232516212952661162152145609098949164815773870793155508441915322118738383892339131006988556829024724811323584435715109052684522260283771931807222860382196183855880007406235376313560466954165530964481111142472364252840048783762323224016772063695890810347242841780348508548779510587861687276839750123965182601613496795188244936987439466825873174040853888640921604665504150084578615686827512126945205430107087956961274494213242892814364958431958377501407004460664749476962001618263811439342017039421323479722855711650450689998317067433745313752369553028487712311512117474708244207340831343137410856056550433590278331699556212910504225344631799360978755242757365252480958630630320865687188104740999016312370137515255283436223988808833340117114608883155173710355206502895095120075675921341241294329907657572753408964697021088552767845244219966383154319259374900273059869323705042785873821466643571604663712684407210346214445833922145077251795966079218905786167833770965035555818372359755316414452138437702341782302020108936859339488009628730218757645445095636637713934351016885487231477059899789309122164593275766665750994911759726022165049004367909247733808273010447841495511690308702175067381016293661566822934540029711859036899262343769667846693559497446180049985267106873389237200240224131942698623720531270047269680329657212392237012542340794507571237943496321089828517867059310244456582855944438505603913049155324471243422275841306462818072495099841109311531236265139873322507154517484430090079893861740651946114086651337818049076634276849002998711836372726703760571123496806725084175801460909462628401800705241409493156416013948590534246272370722628828125784859441769998033913187178814448964092271762512277284443542805975635199808329153968062553182596589315219908721985216319977440005820428253842111019364646022001665291273389635374906184896470858533440035046376725692728188088270286979753056490348000962462085270176703082514486080826652281060078949270076120160660579336062765609435586302205641288996226792982618234909291390200772627104337008776649686814555377558580416862983545038928649683127970642732589500685010095055656351108785318434472547335745225955705846234106107869126266945849322407502701026903065663566164453926518616809334314590869532754470855375465310608851423682901084289608734591355590885317657018714596227053202613994484863492900174125334103234116560067479893167913890374659175858671999530027936823363089755281366826722094107060381953579921174961968535741873783771507444256863207944470345866083254349076526284861149031303127208308212244817973072868855394422883068860377548620096428086191105205492225896462066564167801337569008252175510236312782350564084865668228888941208357785142463576804812094200541953837269457001080951650009439952934923788986202181529147360795079865305196341892969980565178450625493616693439725379436632533913291035584482995687509383904513637015946312613368048533597754649537253610524407412171945226973297754062734441103371433655963207363612015161986684813927050859894977290978057966583704655830877184523190064250728184229615764007744355107192134507500227836693577133732998247335165926851476786801657957658646346863925915469744541783609160520293089695026556162337471914454444511799595825900338913486130171730607777820207499210033994476002866239764133976375333238940912193108472547909778510516605868680778705569181914571254666475120445273413428521042352144144306233588734463631337568051464927564222303867950282644252315789059296728026102553421832920119010735325336026723465039378840216404879021099957563582014115596690552238433491072960635025627101102902653533943016759299650840106675801316262091987682448133049163993625180967882792153269342027046574779529826052259223336590380158093136809596954246362927281915339120065730995899764668090576906484662017685238227234058487234746077291310752069883566777651643863518539121112350397367114062147480941474170727149512049956919448128329906336520618009704387259133233437035889097270761430075572114915692871613925290802661118382758341371399387453187614338602858936611808636034757333966656818579770304234416958511285817489070045361164329647589871158828914291776924151899999923621456365659825096112406004429217672687823556120338443160718176547070971894684009365479068935832819029125581961532864987115374682819004410741457687651634658072571637175307480981099697605355247379420961723016477753978885152006893331300121232049565458814861969109172483030510892228996274007740170982310532150902564931698939558200573931480122521748114698257634934883851888371338559689709867843236547215625466589673071260218092682388258264017825284378105350714664577249802080266780628340704133839969141898187618039468635013054700569822046360407001109053916857684114712263262903763202758107583604227345776358281255939705491866179134531536505429031014505966282683841594134197591354401809833408857403153170877998275798377308941022509661468815877260207632743712257939048909006638263117594847215672282084794141465042463489721500956070244331393037044397714142188944143749771945070116482749047476311033466550493291299624845690122869324149155964416867204910699474526250723952491108539097846643898965852174574869869916250398713582828555451657401061715314318979806897159561828069254507650111422085232201697577935593397531176527186883586769170481216966649438383937868468784243761915724384327508842013068647826523490047746654024467169581815905351564027516656220557931176244273238634952177193919685444955938568208455037693009002138224025862403253166148182207981558275963977350207195453893124522852564920272726172036466111034238090750492986318104908941009487430522179480073102565205369792886372065482967616271528784801262292286955995312099477582989890403248090336326619969906334592251528647304042563268816631764715764802368407691078437682585787142393366028015467477387838442916423172233783564378041865086740136899440750197489867518756995274009234865218143672776029490219545519336441179633559227448288996576363629281308939590231409012509967693248549013521585193159211739541247186172434659582690191779792994412871380403652462056944585566651426159245966763267596034757503742474717792839614748457895041085612463561273604084594486409198775700580760046161501669784418168994471355476598627774036767912611520945366132321597812780817827996802939788162716403249692362636317881691120923755233605686520480092735779232395460575972308265938607838611620355032701484978820330441227529238639085938629274068614754950077489744495688169009499440287737869403496670351598763805977275932027703362096126516671239565687175671572108573489821093714942373900093923622709334654500750259985508650456425742371763908007153836859862534856566841757714544192899505412845392493202364432256423558091942445592379711936406646392961550613476166280796562216585797696917637123471607742124973936874910626329501908423492496472987819290853628730648757037819349604016871261430758736875523170668829091577828605541742715491502013609659937637997335239432791976392740041720758521964254997233728394224474622452144005660002339802879903144303589052863412366029401159013162065828677614410294046558813068117805712110094165423094456268459122209999629343532032649216780283909635217407817802189290878390001509563753242511091970348821577542934821301187114522028914143270153012866982961073964146759663314397269481385289369811972955880037793116347448742991737396201136943143426046987321177131533364096949650414232522973571900405483368245978506374017885656435164724315824854339748798115143803697991160787644238179354527457304521548052348247460614252117385252956613631728106213929027302029722414211964049682005466846172439523705128628944588037259773802671117444619960941886887800120655765910322298299182748650336980536823285893321037651024191602790539637039176256827568540269963587100269629370128415169711155978751531867270923776737394889114586743848372532444536323903669235207254038672506803335674447944537748486739496277290766216798012147384327016583095504408919380355378605467495492828984800632278228549891829772471013264393719397025276982680630304999966591467322389741646245630113077436983291295674913055568712428294492914929529247038625379113884802091297664710153446926264948220318370121680365350582820868432576041937235961124806449017529376286068153782422252278301473496471511070389555855688685405040549369877499721635040304518349602121299428547672036670023005555080589853373068933183556995931158334706599990839426277452813473829876587502603847068932782486511985810243024699677520361765052084450464186070989163365021213367319913179891549819369182322910296464205051144953802429955568321487623257440788831204830463465771461491921356210531694295231633913338809347199304586540857662180642991564940210289374769937006157182563758471865491226707500615706494868560558574902044110687263066011083063360043424813085925683432214445965332269752699769741083092605981250524337123070024756215128824194970816422608395464597448077127337503703086805171682397596433096143649655718853898974056719309838842320057384070807379987676936154556267050781029788345886074365842120561290050690735713102876383465388812281226909937299241307931515663684466389413796662591541305448900438993162695873967118112557039482137221007493394750681516857728326717721234292181169051907342639357090184580011281986180753339100619305537737582384085998281080964495723530928628695326779737027929644730581622505180744945577125376838213100699426139516569376965173677568235368444719100577309539486667641050118186382674219345520312451811892579646636332773851579058844979831970404686508456093911878824314124845525977656404311426549782272280526821457391085242150336902805540098337831949776624724741526206142896298966201342540820736070688508732222391389838958385220514385825525228103874829214834215397068049262648280467841115837774669239820367509683916260555194407890358280678835562039274436786923855363131012591483632880383351802178167946539076717164968059166268541415200420399677410394639950162325746643427567319826773721024092909540201479606859160701085874374782149869383656853762791247713191106824424119313066506301536751927920074640403831122293069382078795755121409127057177330295206507251783247808128934403398343776915830557691518127240401097088616141497305154724017017064447413015468454188292771696964207706333792348723560344725737449459832247973412232059491627221302817732548171099659531510317673394740542331702549732909979263267617910362553137300378163617942123872471996319175374535543367761239264794369083749680293896355406152986519402364713836805828294484470354315983294388216339903030005091947220515027098823007887432178966402881908874932874861657033614767593777170837548637124547134308583582673326662190613209709002571215778594344725250877087375551506280067560188891700687446728746976945200034042014393315162986311677050037461997550072136442090226794503798842720284600805620488017031595047071377158970469251821848957209438696865513768420709217042666367667346462405710032104936598324610118713488244299120354510478869490155634658087981212277804433905383641232575899354795989743654642849927783458652189849813372741152537147309532570085725701508251820161492311104456222121661982694855635406607885924583236424540213580153533159821858437094831277696895038141753211747003379183961165567791965554189844074039492557332970836138910667619184888423789951105187593367461874944676699457835385314438715191959674223678061115724756772001276596194326665719458136081528083413598828883737006678075592883735428697378040877048416985943322277956771988768927327896452537599378511051502885728910332307918775515237414155439715478638562806197806190095989793476727516409271804184234502872579604615132938186800606928732036746044430403276691926835599652939616977651984583216404139567986538273129374857701391509479038601255896140387297625777452341365315287964528174963323993594270777309058892538444000233594598309890511965166435594831923802282532139338095343571528683186002493164817077658120650753702878784086630061546822611212516244279862257396923909389208892385322410706230538927798275196784631438453104585923700010310837491009156811531677990980622801882479453430866735262691321593275473691726274814416545741059564272125427077457652955798716097803110270453387687931616269237858043089339357260836441770775114134577621816855540812977798895442969871823005236744967520479940023385093647706015087120871825377798369844671268863512851794009009570636628148362069981549378700442863769656748738504440023781613659724387069246820858714051076413050315671432065337889827465731480325394087596709677282825089457770395096500176323506738295440509891956676736171486920327412331112743683078643615919307943432614839356610339244470344713152552686980188774032155472407383291552950297305260904743780962607339435916854022161175844031699028423173283237117297949955409016578584486343230348481850637537273411322056672585298727456827218498216682719363325647230230774571353270006285538682895631094659460497965253271463832122244296315529618990448265145676349434782212728326398491683376125346627110348217807037573646078449296821257124148420447999977659109188427207926246865219048215361281488143209685405573366878678398203925563759414480917716027438702182415215167705753215516251281125931806541572083525194220261765814748246092763704964104699058171948974242946225317445876974609852670260352353752139660143601576866419147659704609113664779988007035145774066624220838561103777068363833198074567756986502993276390736786780079573038770438499259701251148205519220913692397546202223970948113018318610893341845742925942196747752760107815181335184373163575598730764235151187807481923593768108883968508221898201944362786783427457441567846323944043207963150076435250394161414109506078832216763543013499170799527918300291283284824311028744474352972963812106157112833597388597031567858586606925140458845948151625201273222942624917127183456361387975779159755762421309225987800973591231177217121487926339385050833187733732574955521429336556081960088935834441823833671190629675737149584009887455550891609592916448713409034043083756645981194474168536934578983084858610426283396970754165495572553392793496150084318641315511686810539510587417507397276852487615194808162008021584282764590055029042676912933931198221155194069957072565067736106201642061230472541585094082599223468438484599380482352073566385525837195762455227643278995699478047768039153797262174625695503387053241112531928009540975211984206084553249694237814961270260556126595632967971288323588780071558428646362045583380229145300422769925860792465407900275061795206227907896328938056901452745220841921805590674141532858466022519843503201367170846012784112573435677281658127525055527300088473552676562662271444971574101379298037189959812668794815131346180256219022743845241496625116370104426652354855338491226698181553892904359679412095288327494818887975648079971907280288015517166754773598221143621526972969588722073989470196691329614677307446936351861696037392778461517849675968992143774895933609768699337361819693607781790784974646216554419277005566024800454815317381808555416036673601267573385292886062970696131101620878247012827669247190325368045310495009763077543397499167290273298091371186942850727108994108974368137630651273854561635685165669306893224865833029385109922448016659162993127526938108868790967879462553513246391972634081261595111829474342828735680140354919189053438761384536748639465161727921275486362462670444094776500450079422048436038752878958094488275929523606771571191479005447767597168646667077421703240775918244354622676324665494423937530436371915770705744643137099205179734790561734264196922934108796743996126329997970207578703435545019138861911471808404283959391686155412001196607206914075426867807265618740275462054589118802848874747830188796181049314807228164508909833012185096543801638729749997130171629885736674092082030114545357637248850636959960711274948530709516966630540200165149328790985364823173644326269444637457832513527014135528612202919115766524880438722372281697206417454177903221227516317560550430670480244011279906169363793514483762675505700821885647161240648128575223234715332646290141841157809533483656025732566238933791812218434276970318641142084924951390322993385454843040746955061107499471856997088357090630950616117870115562225589290559364329585358634249492917258550557363281860665725557587068202590951388519650091156900667027457850679865264686225698920902172478925177021545030289855577542298730757290784796064814306964918265295812346115805990363037770576169572260729645900653053535219539987384550301227854087323435202395820607906698656979267740899234465081829027824298372664331228508646766886580288731294553285921438421627471807932897042931734433846852213354110349418856063445588471573974797978991728277146173237576551185830971892861161027327886034468167713366083991864387375690574082861364885469209835955179990829476135398489503164062543910535085400955622017780468855829147573912503521606579342544641128962289007594168896392135565115906267765366213820417129183440597674578428969911298251086409415899108028849187153682758508127456741966927799924117973938790669752584103138067825999411239715029316935193128706182098419123363586936966370320550080574575848027491834071556650298004100329558877280071561268374736467421327651643999752028735857562059814950405239137553653144180285114856079022836432644877216274863148780182606666222487040601741845643564345581356441680479251207851864824844568083634472793911169782506571578755050492881988351175448481733155325716500918774800872109938351231901643214418138725696117369210574028162036513263982929586544897310000355020255808505466355326785346673433176020081897034840796958387183398759001044173125828119759483949241154033148939132086641415263738453270013815555102845610750236455889024574748986878342021445715688022220690740250296266728287703580419874463964730053436522623616301518523960540249117084344557945237347148799687639182780519347939170207131268556962799585372032700841294124626809596738790699147889001095701953052274329824820880464490423394651783462514138483026494450606654645318173501102993358932823937619519609133313908247885946967948209267670744607631762853429734043328626353420955501229800364212713978943257943629122160983636496611727102446024631642736111850649744505208388131759479689745240288630935229420468007380564860254909249758313081800546807130862968459016470868857400651766566078004776982752537098028168032416931768600060496547185632209927220450307496932119644748474906196848318460271383942114375452116823713925330284455176375685616452494068762449697524535787013402881773667079463899210620797541630802356861814986922563286489845769768211309955418866788497979841681926639842611328903560575331026003469138660888965136887195545764805590910777314677727389686323729944471437558281938331629677551658382894472231707839040770458573966000588698137670823509358510519636707903870924240504234363812679291671094155343723274832818085937456867711265166062905271702941392315789391519235071428565170580063432755319815039046478121360182921971823893099909184840927355588357413546090410929095082698537310033947696128347634025080960601032680140428028580140864683458101585568766213551604730172397798681541784970581806994097688814357111515576869498550026757041538543883816381419473023565363637076574346702424098711435955082806066437328388350486194234391988875942964761483787401791976869329067686848603570682279822185758777560237445640901765272369145094193112367252539274260187243925530654694997823537133770924821714732350157372543418425826250620814562058272653233230198662946896600381413001938065335106958384492088662259512847142762931955612232838683504242315682087313537398222900551316072973177282010531219094883944700456343182357834315504906635242519031938552845892911897346081125964269959964517444469158383674962839534017525421087203869383381765626014230205232227080070472570664374706698708479758495153914717085201965179402236006521098579685700568190030921242688097359011921667049239981577016098581776201769761975462830382849201494554551384720256302419697329296395536014990434308768080539160190014115709272337665723101038423924705554176015515026677995984900676707530921516744673888713699373070522467857898496528699650788810822198814574133396029502858764176092235623925572758689515541177486507857822003109911428445010832646260314287153735601485337595070375689389902626344489337474750926988723812482975657500507179137335732728584341824757654633058357602170862503401997721789046486859792200348691115809951655004072588283079431374636713883278867203225018945855653346045185342728176966271385672197779069263384745634105829518881414053355243680111337786593811770623815069562074193932480520484356357032004531535284512363456139154876398484708618725950992375510752318651363449709819271557969718767115965407574737146479930040404010237348312317899598869087584442692310596855786386375747657592876834941177666250190996148067055452207823939225908190495204858548399273798882441025377351233685783408725725561097963019180684576560661293209313319888484934383082327192565980395105059178729801731277407951853502431545686983890358986847677037451390112582456362064815171157367746378200751054993742164808811710353731931770614441864115259972649956279702086739400812579110522564869727870290339308185372382915667130854979881941064509226407056036338813146474931725125713440326004144800345723599555511891813449721928633388721916630264649885483588939239002088005158369574172889101124179132133598137483059321674591342087439820822624791681338759914963589462346327365991624324227445911302415325133353820252189924750454887612519910461994301255350983642832423352722707182317291617225676324088830784874403359305183599782704209015336563248646016560520275465125220874402489097929952331146006106630048895437552165641529108164843305076456529975770075272897698097264332704319076862204562369459613318905569902335602598748246984615352727072819190844464275953907081095594685940305181246973625601429636086779459962130524783000929629162177238393691226481581836771718403889338089372505866128320216634137045705945725642205448380557457265656847149847851397464414127365318409313004589450690284149395358886046326731781124074667007688433741042748610218336104626160739941885738520010332967995525095512902160691368039622984626702794745553143629461437725583666458933842734056459798038679923583488795532195105878457430797705693106591661393556053250126001916647172853500230618779343264519236049360487660994885112029575069563221086515444161008808667389523923739801230775859052099721050604494533363362905543188987444673025199848506096546274754192417522108649427061971508631154818839337452696464592509166994681239592734250453232982319537114167023048340396986036071901473595133706275564612834023834885994010846263413993584582462155433867948680917286368590022318919239361172263073387319692217911175206054400176782828878553176062204690203020761492988943314476562129324002044714737394464934568966568959412277339246346800145487943176830321895143723328130296713609773735723748085938478249198098296251776865349167072917190653271016041082305762894781710885393890644257513105578010173138026126041421961215400411093067070922791107286463535067467814941343382465187867817073544188317566034428161540333345065095196613839236703863291369740918146732755898204548934362514232034353090988634697179028987577100733031359825666611477592412971454634990701386491976033130148217910256663080817001618040899558375670489862504750788055754295420493252175407746199456517289158853356298243709727188490969541900719775211377180502074991128240605486791555853864881692100513062322237375345517544926634675264549570723513010713509970004621142814714800576826000747692188086376370259371488195398717969804389266737473526100361647567683400691912408809940687286399309975771091826754266386093866044123546855936528016303065451570408674807092741977053961141026257909642453436318039435128159574272007178116522930657534507515891160542177269826303348843537289839127442661221075281756644086029766370411582633065839867248108006319989587507056041795134531421169223056324379693971607610434489432481454538499701686344517892340912889056234811044992715412580042037759264291164807327050089720931595323512900030414854383425307972448720651234473474217789046482780034300005806207386126780986380578204510337006875159187125352632609578129010492058791476031143333141373707271839915301578647630313428661244092206772120120814141454821098019149811561627198100236966760917392272800067049817415735528980787626782964287997180330028083299092525530493412019250931781665755590377057565562176427569244427513106618847739685510905811727250687923208987018675248868716113847303241548192214122436901046862343586416599210246106152876396973853337338961205907627183837495248227362707434892453680083902308696342075066982078352122553733039208526063955500521296519723794821308382653091331207965854954963857311811950209986904772058332645375503662390589217059282178615860244978515209378518611807348341475565268538074614572024522216482497651686936422608497541558486262823631956638909903057760845561568254858654436617918176492648993047408598014892596120007579172314924781594241193327491880759612266415583715910681737987124857633266766703626600145455639383239673089659612151306709762888642473647813237730297691673833338313924881030069685518247657428268788274222538955066226881455797228309185266003199638493287719592182127584389007885586904058917208794088863871343155383993388805246061314366644211200582007875159122210540001286823241102542077355342435119715872055572459201454946437442547791696677083086267286246937475933031602621766188596116872002566776433388172227174817301203472379300696319327233532636767934128544609902725058958128567108551573852919410117709584663250082150457395042183095036995260529757403134503612271916415988160211135782612749289684212863545893574463872078913030288693017091936006812178105078174097961910503897377552302277203171078801221581293421053267743294595846322598179334941646146626311498154036851461128640834710690726153653400597689469369868683907209463257798614353880262250700988421072285183758404021074787636929131181102130936070358621464555129241900452726123908148214915702920032382312793512009966240949729342989972315462847560545786306308892191743381355279532644297033805557084943501995153060792715269695348756587354279544435453129966767115645994829435532118718140890659982203236186337850631407525166236161161907575505399812080709601464897368559731101465758546574461136174301753399717632421413380307279862645241921680397188344544211119831638459020267723579777123358110052905456984428121864089061698496093681807224450250786123612617712858551538637476114649910884113188873527002065448222350688462334961810631389745329453909669067764565121299337638865596804329211527837119613003623624331587699249405894704830202805503767723854548492551561312092981936035021053169870746048076210839680342357028836528981717132321853892187600702457656770137860058524247117916439342685779806182334904549539264244942423871661744783103025092264615072448825705416580958443983431595202178839371767495839443497842599198267077246805188028543446212809195099514786734537405049143425554572464447549720644951956072726179004276306890148960680239215570225123807074290479603113214985477182500354971970852659028604012584841687410166839229851085513895632711814143029742762682195571166561052981344591119623400733340160482640608936220747909535789593978220175411760224837507009579704270422352782100223986830489452015821108377292526746197895041036596507031930147403816196538733308967148697177848378999268485386732019955469130148032543518582544230700586610227387807547061994400842155267036824448178296966016237736603682016845025344581535820294388019253684419994345009347471652912757240379105749623159595852274658869347116864969960944256709918327245187730400703038898701475661681946099982925938395185054795675409140473796563259618960702533631907489670489290221225289833196935036243516758462336810100350794377106475055216960533166863222931829150864853414769460567989164533766504810477869276324922779733831932987126734503540636243226736464085744233875264276114424462982575166070398327590461282493196152081043410929132119215827273594758267388986015319684858738596249342413529693478507113846767102972170198035535825154391219192699879876145116887380314042999031197821534587574659525280303520382917970410912848334855488507068909047658677460363541940825945729259155910919580717298866340745557638210062265675933936121652638141198970566406086840868028377337381335665453776023660155211424367575762784385672636445257886821522984079862385869957649210573420375333728054446182110479310541839074361450770392069883288444516131042241734073231335862657442741970053945959828296747637134718077681038286228186480424375874929635546734399908772775982322200312355833498984114165165990676564889482134626440941526578084890806802219557902361804835811544801972490697608258708979591886571612337575067797355509676237478665723908260608140793690739342846048817847949930221762819631859535302041305055715477487659687231393608481024746610006895010571158740165703191996140522516140456736130384809220020434478144399473029063167932965389928857315082681641702871866790958404803900369990214971514540230234093743802494074557612673125903939620379782584093445984190429001405528048962332952643457639410525306368658171381428417979047879408544148994083720091924379397263359638782636878335419281864356186392516288224925851328895655914259234762773217557750550166374538868119354126110315723192767716433953645212133504851208443327003761712271653152084277389856871871719497438747745346617067157242251242114482396523855552436160272162685929879791752604526246564570471396195222444045050683021589461435681898608550696121758267951773037789094546285864419144305585579004637153204477705061912070118147822768813800056095017128135308665224325475697618414439921024009749009468195178598544152449164582931713359161367228438454042071689610301605114073247049327583483668983318981332045449608076839018914768326222990149553359414551596146743348248230513711963988197848820839416008254839546713211039153877754772877881842884297328095735879384668761384538218404416961398843632280612722535777153311339499073758780473137722821093924294252244963719423842102339464198309835473395172470781757530223699408405307110878316694971464488233173202253411553764703864921158105861054938778181120282709145992875194044416568967371979293419212022253489776130293667542699815789823872658084962187790109748457852722080435855642969983054341219266326212033914027896039761314078035802846083553231199439954838725151507085284914010540508956877558223296685715125087182085907526300247387529248030562448599274919770981064124937760410358441049240016541445312369258048632837978193258732772290482524888928498338413994626039101143792745832106690294181950658559676189801711317451075086241662897425078180598252669070152483691976169106860474046825036639102250617453175703650785039222995301807382006763371341450323415819180079503360149361532099332281657959298028047334403046145220751981942908563415518293751511688289096369430389904317958566572456527233260693568711834674789980208519760384270867834493709531803054606088368956890084658689914803258338034924717893798903743656479362643480824242658645450371103198662327397721579043682972269521574539545112286121864516229163618028011312562068318994268868863295851675931293253296524149726037826411224312250826448688043403768310417456470235587167420349923419565592376055317048204582556399244765904509214369049419360106088457026958010988597854428104791527868921468280803870319108471317703996604207110909874927984743915461960899176204106137037267726920509613406389343905666691429360247040188566872069760777431502205699478619955845214911308057228534802739000034987271569489723159940413285359077393822086981329292241627799465718598069658370238803711541276529541314129637125885316008498488731958181432402018451076158156908912843229532457612892607387269823182760926404435421446454043807036550902074050445737485801956792150294023580154771131727696968159091181405074907176372957642381398495789643281859959377874504629692818704777731097493249730691073540406535451800328491484982401722877237210381792415605498329037597051932866738937173389130570710151698410397209740935378473832966877292164094591463979408728177526124780125956532142712379266546868576364300414642712970010415864764108624183231402395911768280952310615266226609245901801359713183240866175449010544137497585031203208782854527594991731155023289397706238905288097384439444002643434808527860766673826808350934689764988435466383432674554001858127329767536935181328650120126060049174079524734589286638645712255759535283237471674874933975395796407757486045033756043689364481618003158528895988979452355673358388864459109288750231854458463650615515538481009292152397358721215982636385700146395355724096640237133979576885146148260686013443358990008333001522843112121258058376390924352582264716445477057717039332664502579251760107329886591003467269759613674133530460170590731906356171820274378311693993752285030961939908894874277227305863838226848976563563235379840723485417212276016876096112169992322949973273285978364765715140277319153356536257552985336970650703829448349349342195873430299737439369696537492568625248235072623324523598269194463543170777888025284890713798796178843317715782869152229676583614370484411435866773964725547708342906929165615739131107393391723588269324899764098352007983817860921846104811720436243181159393625735494610791304336542606329250677369182819884148730124811519468589709471050256935303542266245489981327525886129422582658240645659625671357914855946163430484654077134086613455293842963403579782027862673205473418672922521883356317113552831529805081692163339592443405121597057235575259285281566790129721121388186219651487190457053703685613032372274867685466376198553987587381970892206352046990365963273534364045158729909472431536689410725132922178907462466205644807077503586588408634460692532854392230356160436218222122901177840468616200417282277271918624518879863718910765606053504907430992490181390028672179639943378853175534670147486973932751066350795730842252363061163949242358135118779313184120541102505095500769121700662123959426823003560025745770965253075361960712829484068417279568102890681131087338611211510585945113931592885746484167657348787648119862776422236116954214734649195464172585146110699096177039568250827732124207103799429957788613287573342912195745371231782631833340774194873684908232752964621202537984949874481275747882351053095924125215322844042498733954907363384862195144410657722587232289861154433600294892054368116812212413792923426721459338873585781711368736757060032798316621582174738094098572370040350607631139831949582481690849898868459560579057321980760552634756359981984626915660050732024759245517823267116207425382263494700970359955532215770798768826916236949981911142212927151687076571424475963679665889014444369232439579281373281064526736233729664831666540539693972640437245363082491627138295377134914839071818166751144407440530262995303772720749573613823011832847486970762808898578241496176347839888186957446173798592774491446089667167553730317787855515898605256454454108713334266467763323459811797037418210746737242848047553656088213842233798562171673215298718142404240872296495189085284319052146820872510123872350220341862441992807748590184691135758035609722857431118689667608892909259705973991472765724913725758999265550505951217577415641013151669228825930251116890982240547503175100736311097055000276808539760804644887763657957782044537021180970625590229240899932324732040603350568121644014766220308755037154122485120068054968779570221890329692819486125979713756082036786564861763712615369638006984796244528403534938670148661209905486096290678928212300761281762084119462452310651024916299312840211059504101960408876520499320267908082310137145500115818711914741214423123161564368800972500246186711946406282212088856877032826227826168248570926476310148680167851539057448702725163466198218129448342704888021875455897914493341191900020987753356853957747248898355342692971322162455917329072804621346697211137911412629842118614609854180145763746664595294206175075736983832734116827700254630311782058824950880388258394622251561385220269845764947221377972302376601985346271473746782876372709029837129965503329941945184869326607072587382920677381819939993857425239907269782509152151708150465797945557123932893984460436268837625178665714853791504935229301007188865836138444752693739276736366538103932610102390914224815934769094940486425443598043191043267041650133011170375611414133034100466392689930536094298525899233539357513536971975981577571620042065811963270431333007052410541378380680424283644563733772095437302975174588923448348814174366429150972923447852381989573366896299773949630426302928817309933556932504004258515439957312305915224560656980622006286859269920714469496911644561864794503682380504663182963437828276404654916765962539209413209737584424385737221134619173659289258827217189989495027902942752139754128594003883956785174581201671018810336389813855148223284626312666882707325056010243343991194114047617133474208097850885929929137398438847403289128488426706746451587127236735228389496535948055701607025277601125979207277420481711894366965981143127052680643415538347350989414118107196239950775275804275441649251129966779566264157181524043647786983287220838363922152020949184727201779979215616316511530071769329462004999318361243008290454528129613915937877795208511444472265887961580058382389662294695058913322846725202116859395323214323068424530509034192045524506084343713796327988242457247813514767959961769091744746947291483229474543707360702020080074022530909292907559954162217222621466308105048326835458578930442862392505825487161280144349787586005167226983129709619818809335969172925743309966449882133262319879840233364856998777956052366938362685839043587819213123374977309665873641884767843610200928732936189957208982620875391191633793187930497861820880053201504861533536231536238918619735288019109116712009735484726462543421702430304704082930526584477641095212169882650070792898837702271905663736308575236163458974235961554038069217922276017865622763121539976504994525127716672949171147168722751117092301864169155250152178405219295210791008594867823872701554976519017501890279382238230888960510490641158808332123682563028655751020450956967289778363304661088404050487905644018277915602493125665916736159377678625755812342530813388799104207172436555220467481344573626976656173615153934941517400147197871994092273918237427932105345951676573164046793260694718923979131208481829969870296986357551004872090647610224794272498252098629602753359001083944710828546746751173607601617268159048036222952037855643907424387522726842417455181574500735024835631785219800418883887501224999046589573281974657871248274371409375094495523021318598457552819609390732262358776547072230485451970975647869902639581271716008325426245500345155297946222549349098879854554905823205782856190343986555682541197022971890133878334337186135185723980329999947539619912044991039939677972090007441064788633759898281892782906229024750053131569680798538675766683756403070827325254725904982969286979870928820497010705852459733605710189441115668627283890945637743214373308039884343275505491279791994907263047956807563089964622586300173706120819893158961470404942445914623817635225630050774391984059069761026867613002894832359511081583928252567078599545412589190237350793492289669441039555803826012996823896791040498322701660954496660761623085272787727731650497654671359329925239955722158183808684504321582924607692116440252798447229294899760722292770313475993912063467303970232790874632439526972196809738585598787107811689306189250278952047058173478411147345722398885576624650588760246030761318378583081448908189665865433221247654161430624915356599650118749536608132777300779106168517988541998665100733284949011371230798737052087437726668462641032284846094691091759579845120045925091007971185964751446641206934715211112173543355533752733148215601475994004276849316691892644519221738060960547878446871142859308861393675020109206468354066758939127296039304428773325763384221278253363510662426244479207443019022926221655830875942331304300861854281235801959971200471375284818855441702693292968490412126709014424714677890285202867577594043329823831994933834174328370087003406532438712612852774515716050366659158216985420253474217512645463903456877157322099351333800570308514549390158167285199569076696490167101653032813841925527206407999040265566359369993165252971339123554287451899673396810015913381946369171272465309250582486004216434593600446689790428011418673793379717694288347827235588592240407600876854338674325087319716067107709864368386269949773704407129562078922504934418698527109093537801585284942746291468042293262443865758477543838422429894683127867056607503262004843901848915003899667873253770281798453519181741426705945534201873165665676740238288500069824238879518515420320053646193414572844319068887500078440236925881126188797357053510964050314745295358993293835014512715312364395807203310467259154117252978215646353366023772090249692168705460707909186125263110827773650907274628914912377581168849836158498999041469972649869418470252160857192584713999752503528656149150473082082681064347902235664139499019617254717911260405608584300706125793427872076337749148303013256077339043347128599377274682570862029791034725580865023505006477527780163357792887416507739164228745475098534062353463691993157213281548000739529216169676504502418893566643033154484158901667371566992550432750225106234094290667019282742400926864539007244571934257537052829747239289216959791136736918195284354668388912263389457768923856471970596742025912988753845179493423965654832288057559381131186602640634261510482124399247725703423464494031728717760436587222887127416564920575203401889304151377427196407286501934996124607696094724827223350715733331672282716080454600738635650733098441370644971185834874614038434674074072093083582720230272802573839740796420586418437696791215060300615122541632184490220299428199820990237792199811920571991450981023100031736086255750731733285021738193621910171718162866499840026665300160142367336778039538300491903104392500280968204784774226898266380541785627906903759372099640380130039427343789243627278586649669897406452289120765148579304761416752824979377579025531232017802503986396586758443962907787167345823387613090424737630533025178100085162506195249818129860847335186133943940982973281979970046211564655328169611485142960901137861367436476084308068090348649435650786822912466489262977994645152657253252469103035807327422525190147959658038179769469011134354522351596431805509964901953109231757012193376083124352908906857585440835518290205025089349315203503628950587221498596005505632142470384786623845212369935903471734766592360111155239328180068698683621738093005775279503111992245206924548473589112008894492907806964694860312444631705153392892391121893110417394778828519268813353833763118574735036310636552495544830354864298230464375809864422756277412440351264819303805804556023562460972280108824414738381208997383876110213636879271752741320035658841268742038818991629848162733439106437113679828631444453943972317009844405395939520185166837151023082433483489025528830200648213276783331627457178566629872549679837584142493994187399447882559342079066284105023285893395520921785328936721592967141097695110156303852318394850568372092500556847730495162582179875380055035724609950010575363393180954974989224722597385806797261599227166863101347285809485900145837809603366729735627386025385773060397372124759757405101276945988660895611515768456646230817615055133450142216364542084537944960485459350752087482193939295015880142543351528261025964622199395830894224570788893779277530965596986827177733286330389795349657762990559454121352056621564205861468039386283128157105435509543487148052641089858837672089783733012667349434749414451979246658654938511895400960669505543618131740505556144617714278213525123685429666255280513665015393571458685282430901669475938888834053390487478294567536230627984870131587367468778864449201762470589856027002150630620262432542826848302877515041794838868935981612655011737718684794846254942722211325921815457943945518354463744626141044394043677644484752124056254464786663397835513984494466056203516835227881626559747268188135047867797100686014607484286019887050073274007470474997688719909274585963896563710874703892903570967021588074378690132618562384409879585004509617341539226452082132839028685720915644128596062430068452498064001539661907906335700849721171224728278755638356935481846740671856337916889205172540186664423884734422259657412809231658994036261330486310511984797344793878420497387682662100186780542218639010263805019656065287793511076385093219573049748610895669157167194854350037290972533320268432602526073276183996046985642406559538896410054692115065571211461336321807119830709091578487047782554282031852414375695392714962927243029446636386894881222562861025177559698183911409283989122327244582885118757780772256583626298710807860472657073279637229065513329504652754806880479035053868525546546551600834170434545031768758856630115184284270318057325105364714030612334280777901318751352267868880865255460147382287213838385401014946530670924748430819088536822328792097613188001143111334380026162967411172913292132561705430172594494868203613299481111201592618367569893438311993546273763709096137880737857720587014527222419433180720719712733384728265713125949414207099523570376729184160680247497392856970227630360935405621275935845870719081536511158547579349301472661184534210532339287637378934573258569751364780967628498426938816793549962194508474701731730550262878433098557254274938361779175098034882534056915527114266698268421460992220094785903470427157087578745385384549232077615253298427574979712058176338819511674086412643981335777528141400527521900319035589281926993147849264944912209738385977247280218819146572428711159481059066536652219984893302937811232025080107827747947136128605803582090692747106229561101730394007476737140455112723520485052208904301560971753976121473905594121154272853288262324841605946186336170071268724649871115759588989551700395474466119876512043974711210175402935808813558528141153539353320785502970053693015181401041763591657864281796655189174216880150077886296621530443140352858221434979857306915581957279400291358262880475318023941237794046006129696288208788311801498449027023972192202955928114464728489544139426665548022497379626183310691239676631368114895982836414479796243661916382439334217581616766678572472873726164377516879620146841817248114643888955280704376904586608363595601772340320099973560265203259991001052657798818699368528551731839807115261020707835861531659193516382232876747471944398886552978393940744778777778341147585603836342265996960473274475288908273232667656293038626894281601249074373447750569373768297475189594088290013601976631679347881039049878461681980940731305846451941583454180719237986894345777826104263251188106392044658221126054196681307706457060451165741699456097539658069230488058632251422951360025980348980022260856534520448117718521616540828565602203130947401059045804132749176378250212234691881496850740692675966682857002446631387131861130442039121781658197964662915378959406161933616009644474121516546912836777869861093724338081848951639424919910035032455212569388869523087265157319725536748133805525222467022923418609114112715266286991418267959478523400765051272591166140724898577687018142610105973058215765267069020732142484116787223528849664068466197478820029386843912825938402181394021656069569227236698890784943976295784251347243174683821652279727849595851326044892413874358526088411022407793738628890897761673932482783960350806297216666982096255230481609522458010012654654695286457133757290096828839014396837891744226705544008585600367680848682039497412625296167636497916463970087377953891635096978069210475438120831457224688706447155302192539309760966721223051999440561188879279334095396506699086380455587271953520495031335785758176152425174371604526119793988278695061583437138627316764322146432776149009168536595919368617892626251123557047327186506289782960850854775283665962848609995909283562444771652737759798631081128624180207879761328047574967307800082109987000752688918876280936982385511320799520370003099445403418873113381677787781119859918156091535629056545009160945709000733786205959025844225006625894131356424577021977934606673337802793114575396603225045483573602072341888198370715071321452909980737831327990804838653939618512869678458559640620489593876205397747500502501277212320675421549476400800228269486572938618251125624350671201860196108537136628146691213487540276266097084730845266009850354980304046239236223362289100387671334340336153740170817568115106209069337119045916143222736185278126075423228197736579429474142135206101611164445853026056556790986576135315903835030784308862696340345093023690303800795280215375670553689249401354830681785900183735264164249611813938275361320735164472331809856651529546439739774143121926352416481529333276569594091099242841851320904003970172983420756828431923742670701847382731195417400331092104225843005760482348283587947534523398171532539556752583219304749927407926229919700158155074020387701124492486027520218164185999014392324996616455974327129642928053959024913325099022308118229181577287135443792087884872240214897909771165584105406759229533171649674319964153357737057619635796150995277996278307795500530157419268271857245108798066607118077100007350206457117806345111385471634395466918545303049689788945704864047018172451626076489955088186592905488066105329694539225542607236274223920381395615789220907501132359519636739739862574036119358760800360529938924562673976180624694947817251205984022293855560737953412970865046274800255099949324623581118602470261478541582917237623227542455767059160648732042363879542047185843772310596390100962026855661348864505027961292342955370330258654285075118623443636490560420114915942965329958206779349209451800893284165890237021680059864639594930915741571073851042790636719780090500342772565541847670445036443641547656451371534777016559771200444872650022033716571770643670725314798488513030561873713697197681803144834710580210339046962944080339339877968714896949509536324632927532583448960530588008799877058069893202409848658595061114685525204161235794020427189200610531494053705532284313046478194966740175532535207086340898490132451413281312214653482691258174728582933449866970223331157559889430226833935836515031053941988028033243988788821604986991598676016132723221413693474603224634569783768748443604811284041311156060900348068238622259093273282972853308751952594880407803213815424476416294621938506127941719784191724932406553922574691750686770833456574553830270216009767011953964237865490061763189392981380100757192256841653643556801401036699838421473029644291353190189987921565984680905561775976767527928102963115862991549408574477402475535662778837989064330123896935053498421000527695296659682091256307594371359789548839116269015425793905130101551006012921047175162465266237652420459337163903232497314771204923669008036959727717241621540784569914952303839348723236434981080113505611161128463300331095987094642536260893411647985072155242927671852184467000496521446375244334469511005097113990546623030433309944296019746385623563724119475726231384172065036746223290196893062640849408506803613482199654336070471330361699775811497502579526304435144527237635018910262757940548746501832655482680471489868580661212367611767433917531450702291935910439935395416557449362595278462266491095212419691024943956252460935965036190082846151864260697325926578219187522258850252855821709353794605677780451186002921463650063131098440623797274705491497719398502083939969909404542786046676027285593596634709304583696992317993238024402531108357849144556011715891872253100708822519896602231664251276272403979396525779765235593314342943671355994609169460745557287422946169277099553847685152849717925027810985415370709690198526355344595160246563998952513081848904451076136338398611979783746436006572565853328161684991649456508285844344641864974683110270399266236193351979989909020501527453079853482156288503238432807715379126556906367092839836505143345571334213784175333496348926218408005809814825337156575426596881504145905928159771636940353863423679780526456073304649720230031581296576798553885319104186008917956943496573247440008797617375984793472033442404907647933568497633496241919339597174736483344568841543803880037397222781027336569716077275346198398050549549814646551978534411071563439950009030465634789124055631301332872101640318855597152708086140816960991869956333735062993973376664908340495973102433191859035266612008075511543260050178277734883790951136588824912659104156101815894461583158856500179481843192974644180946091076995376935386141434125718555328846130444030922587403578901708938280439946885681939167421952109988444765766504020474907680930437233751225194560651376400650147315982463688562357997218594807324859545260003824073424122620459341050738087629137156466094218153164204074055242048265236461143630954627018488866171821654792208889206885540936704811226373937831629905708909154931257193017583595748766332246562033413159937817487592795488511392097619403382736654438455347478974402897497687245980870634530773796942256573576612688853772350730603637047745224059191135502383475081982361737760041356933953341250318406676109519061602938566096173452068419292921684995426016975936078163502895096031901495027997200309167900466715503866885151489374111897094237051843490423241236536503714307631439050249404109066273465928213122610744305500382150685674600146327649498964550428011071178861587322038887070982585127704481860568160010440711691513628487459434461498727701742563295551106235762285198354370211672920486851252132858631669909310817153524197209557430141612021657927848601252071748117752014127063508384482925133549275760617597851133277294527212760873059276488256341474938836536242384478820157108195613152975299655426581168587758591716773681515941230895358015916720995139649614089452332283482556291192726717851266455747918590528870139699703980293345887428275232933452144493160328782552512949467927775058380460594158457018291353735520391729848337877294921002723237568345840600596627327936742566848839644224643516194672472345496918626814485746307753583924146492772049096914200114650630579919858795116457560041030332315613389414710649727090391229300021888051581599248125056244718091909650950619292078882650243456092535369184522296938383315131558128187265244960301794094424172676444597855038275994943876020790788674946500483130175635860398624335956434879745849641799399539314044114767430058037468571392213393195918432003489113544873625000173740192057695784414554494377452625308465213278691455925740284263095246011878691028363398513329341159202315225817578999426576099329419954348514036183775583703819133455649243649110538007890703467292382612395098317057649289916948462277778891784037625218491417265062214373135757703313987240782427859679174949113767154559544017237407804252311696640240751264852536680927576548165475950358687517191170139408125093055947503040079769559153654984584645883976235931174753256587990980257244088914384215845351239747186894664198895898041707780742896969075930798055138514184645298754971096893607276293590206350076847241086391914339987619207397240466485918966699960107589438769714357945010733549846264475163406091898561735328933341515421285381265675175749493916275606462486205448554485721539103498104850035369668557557485974331444785555757053653006587685271257577822957262676085473885442721254281265100632150584601957478461367551374602851798711809217992344218210569452659307186145507867814174626418354888628935246055258881003757208311616745369286917850229315775541885028511479244339882934725376049474742123684432385240902533473160483744373467671243501590582571075668623725010733144967820457498856366501950872256187207052140333720548874340257411603991870255763194677843341892730706013532950930620559674625467490658029089163002123579988752341359627141256346805865764025291428454651159778881324043991942360959674262002148185344496248472266831896590955513656057453504324591056343665104467673967632569454250740481250774709382089582019042263604587426954786456948382906681657820456198156911450073556209640121915242314408600950475628774406775039896401751693506587804391833462748817838868057186054720111829685675114827766144608887235900869397652456397069804429651022504786254971234641106564119111676438628256781053448714015647894262419353871917763716435035729067687174648536199571873559425491836975985650752488151688600652833143700592966382660974521166051105650176979234583366376904808810308090386669749644158458165921426315294790209007960434150971935338928348403747072592554220245235502047602722453318807630112984692864070664012306869406138700386788199408949280246038659402206431868770699829102035849412197608124168676411174518929464557159400429725736182460627680718008571740240969401566901805359161070811398589246710184363014935420063821123783095978774731387962054008497090409012294510267041247321684039544063282174305676843230727927110798243471137902508736403359371610309139896892072236480310252333617464142560613137463134036111771750004513799821797563357746226703765585332068456119678346143964065162535190825957273667297172906334271356672454616233006334726333357862385364315796902976222646370966497941308931421153048722651754360494749252430768445617673757205651199006850967700693102502750155429929144903625986462331922489081008394002111504880275537861109895287747376581900462922444245142755046186352743166759398281543452041810757037154347519418077265572423519723185327609182244037565503246886843022778187399560722923294570240321114643388434133105040770399457995438797790622010835260081345089308537958247930402483688910567929680744220659575805846806720999070803240417965676795002102967284220493961407304553596205541262322772791392040965737342112269558453888559526191034357783127862558880201341040426031915912740978887705621886706545952586301669474075547179342306312120118414506890461377570693467993746972999278154481657637427208001223031825026016169111775512739574169553465402487213442591303460099242789530737609489907770621546381461326290661850516396531609837955752188776733064708179539151080776539521604967574033717843741520859037031346827861496758755314969950461297693341570715677872756783968455312589416269177190549268987379141047521849545347915404531437071495964245700254426356068931483772141140388749106259734929493532629005521015618733898621375556181638407034578754178208590976337615281877717647357437721654925597314406119256244034617808559280443489216207228898825469696109897395215920498414729688813174132285585987230447100841606997057070629442312572854590982062207198411905804610465351543601373633354298170457281741240026299163871329994822314336815863926803792709206250648796691924174966869500882576428881413464108587299693604733606399629407637824839807060772091678395607907436280318799398452408093979687686263456931076786311805603582371156628467619358196311339867755372966181350548495286063947059034337171308120811467819752241230579512973533461667158350605048079698875556248323828484925293537645332924004428063048536747599953598157505881792603275398644045060417666196145667843628364868529549126894948234666633654674284896909943050721817082587517303459964769826046105198508763083297741932857853339045000831052836656634748314284110330455768382731178714309426170083856291697914578092950648182542720894947622005401205117328092989064623819272583353750442262436775734568834841249559943536115206893603186908192700682525485467029609056256737683541884052058501212690193419440177317258924508497888979900778995797162828222141739784414925552415710891714228153629666068399919893704077137044607584014809170640489373781622801901651304330920448052392984223480566851237349651781118189388621793734167009297376542355390132663836726021008789338356582929194063064350160154341915319546692606279413119182457586111006889106830637502426060478586081604328378217181196339761839740314568409922566317011587285716312729485701348739787723093750783785960384956074728826231292594986627875901838272778340017220329470828894498979930956412062095722052488201575137775318363923837758087391844997602713262587529935787256411271156391637090803859312395705667186657094024248462487806168297559671570885742819544448401189160652799396548693532955158056483978019642006770315322886787058104260405914582363503848541249387291796816067183331012581168417400456540072716280608024413605068248567597091356620260728949207454371359404113427332229914628024676189083781628880052673815973958000151908957752814703723613401690568111219689447955310228150424499951262393753442692531130495488898910133094370288985420139397028756601146723620112288211154999909655782937027566198462887440183533716364756202378886362788867032192160228545563441199790643011674662673591787223676573517467628465366608896743858336206864692393821097152128321192479679632242053717650134819004231642714159907453084511879072321967323742518510166177838944721966922850541011395699731696440298636074827576723750265258458368789951401438616371465483168789300652317908894314397945983556261679562578410053795188975146370656209129218341756243806486195334398634636894017148023220411915312050319994954430592389597091632338168921248804998543454456729852090438168230491220980424440493012609957833930810219600318425312298998514518028366984630603798318192861428819329978282237889869049368037391911805952967877917168565691592152166568570858809773953573866331546333456207816141130348261302815461830763674843211723162351916158306860220168819327139618326273689438824374706711453917268881274562426981110490025221826265780764191007950792403838041237522233532602384233549497267355643202860582984438307884857291306395585774992936629760936873520313182444415952904183345564436248820494540806410557180442327169226992757695007679571950366104831853470147653544534389690184727623968851151977084042894710672651573080063802717657219791527979561194759792265833529869139850399705977505248400079663608015452379835725773773429521918348007769666154123694819353875479581579144700480565286549317398485249421274806895498798259845592670201487870095184048141512312037298015109974916558654951520374698094031454738661943290309176430494464467712240499132188730188950818546390203808491481371283196863646270465084321848453960235644445339857943466345951869354795615685168543066132125187378402406031361362590378943456987102873403023224382044913774920618933583514063687317233591458577694863730205082277037732530114554726545158842513877000579064785211011520623463413074272902806219963553668396143387586071482332189934935646283069007416006008344346364049461080794049865088595774340618172624004188751872246864226511722536763973028654210695705258116104768120653160269480879611278880136675232328657096013621849450384378717279600990162909337344191174137978229156567409171269053025328129099972711910189817511908647123308064868690858481411475818222654784998164964899013979567228410341119494238229184905602407816872975116591587950780018365236153800240311920551767861781039813390800105961135436155896844798229729075427275440912238195556067487342301373690417423847089272602152291617552414550075320919361686745945986301295393560710467502240601288369867258289349530936930827360580521712358549463032245888773232014941275910135662757633649788319323400262309458340468532606730097780215254197483398197919955955345078390270047529228176975145587939556727448072399052240740212819495335139379159175456520728909153417690103409770095478298904930999474114132483601468786560743263483240897097170649844076887943093617596135601876006349333158576898844029640074118263832397836256415196973711578980962191902559928191005027931999302510821419760451945987620091695688361460198259268247246286036495937291121709149233938045495442570608592727091498108766102715891167900347236606766390983232256676862196296413068812101582135442095015662541283888965759120771859753396591587838233630096827256521548691215301480548635089593740041514080397485054728866045343748528364436891670926648787961603953222186972272776224527420576166486542007453349624199218924271788211890566628310527131288902984128068662149929507150079738945057294778065456407422186805127196754920032502327134196721989652082323376760307135537190654144420693220636049372735919232310430151266970568778848470509747356324162918803323145029271310996671663200391618779009239742685079730122236923947128114615095710288192591363781745129532018929878111446046189442973735361857488380003222366912490160773550301353097411687204260771698314779611248792345321030490868269510542991741144199413863527894240284447135445522651661541887495447184623875676783673026051651705655355252051350496520922655560648316943180027231581916241698789652282921206147498331860649746532131961791441454678648776639694720742365663172648747338467520138568170440662904479047830677205022738411190494663128525136267689284766811394233634958099776607356955898314245115896124056729486220964220119954780902898054958898271280326074186059893107953563660525684966216205530410487502085675970969405454226358219742784523723007020259620897031634901688603171316225590565843450429665045684236763448448553730561658046351827854221470039576832611270275876323683073225029842044009811264388276600893154850295319582972279793725269347646305570998859584338125061366444067324743048612752112167248522399234034732175886733891644947071279110821101159551480520741793417066794798277933432607708916299070684017530562672600379953496225320831296758617203842098226314681692477887419613949551158558837188421957118112258884738632914038378910694954521763543905569852088343802253893740529031215298551886424268218576669163292604801204820795384013807706484688933367388688611191940837441420176074405474655325577177925345126924993917251432399814554659204266268365516411460410193091632027185743098222981123672595907064245308401586172788508434927990409734305503418678265401705200777639237893162036581374895496157250406197967259964722665915930986017607924556404868822797614655354061367061324820594200381924269524295578938594398164430838028797007667250004425755574974777130226440558227542327857182474631264756956254038763286680197672089173840441132327677046022618671080523522454251123730464783411284908854914530597019651597081426036733691366368850264557847544975851493303451995491466432085383074079795800840902656454857805127194467691087391593557496664230735010684822704509301765354727920725655460669578387702790859979727750458010627884277050919576175317528220397164292042098709431555148101790944173633175404745840719728731970761862166390934620624532638552001101106021694855264781515752009804591063902087953400258939810804387916052033358296156146528268916899312643861374333687587665067121156650258424491605400197447923980597074689655262820813773960180719526007895558921942192173208676335930674222109148780423958543456938010692297668292461538939871094246563381176941360959294286186734686909770886955555754512466510487960931314869338776292280248026901205118902302542831792883822364268854229923838021552499797461122986073718227033311418684426930461360721659778570324769576329449386207431223676360861729908562283146149350487187338822915901866696306837525555224680737674106226507628977797281497563393852991386509156627880463495337303593071961157907388955135486575408698373873605137412008472077739163455366815661463542396604790955698973880189633577366846511963841204127679061466570702817506750217658654801401818486269222814966881276652024903164649210411716438141041264511136777909466081782583912493300489856065079351253080204961479290637503282720197909588963023409504466139942176101436698290098806865219121546000969558993061195368276576338981372218006604807187027596964341758847360625584413968184533535780883165840210358841345314977200035752379112066471163063197148879204901905133418097716284302034912138333089836286704390254776190262892436461000295148614631821724096510553156769051306108061589802525087102516251606320907749823787945884826980966263467351766243204951741535871910105316411616033572214920017253322202280220004602936666766953146001845107010709203376183263447265108745843334291502695741890511287405552685785372987375518651248403404025334745424470988312533573244625998258004634233718845620749024221227053753311873555592014873264191402975763712799740377279497719595718649055575798848315117341113182313411877167161557048654012881099220970963098436686506743663421866597278460665329601874517908967641548281909879126136169713594329991392933228898823610122373086419472114811263727889466954814313452497677325813887665522321349794469912758174849025922323574162274079549245551123042451020602405078167059798565200249263936570086147621288840987524035865047728032688064639003158360843520392198832176134184533868930478711389528955227740635548183770718527615843512625226153859024195267335519952183529078361526196117815526992912349296845837928699884525980043593205851000417920570912047604112138890118223337420020986999602822510856026764878247854636251502006065488770982910786917464335303055394986443229019818543328759083478722711808788706007716274517295729430497222756259446176160950986624015479005893991140367038125789248756357842349546033893732344236077074712067568754235452903249179807001676080317719939428193089402516332376879884631259393549702709568379175531940572281851679973496171344354272376047487756604395548176153002674712020397986535790392023827928283596148689746068546026417205622307854571564003261926733978083893148566466069715874838048470789935544529794288459438774169428659922033003995460638508921964165138786203276690502166656384086315733328672962061235906459243214598647567340769223634970801846564927231568659992729515236516910469241433144020803906649656858692969362673183822247740801121875733162790329772242791327490464622561341075527383851290601750118122826831930763980955750464554644950800797940469045836807831163176345338922363295130647963673193365167614599135138577977851806525675013687929607987836941307284914492462915769550016352786960501068280415308992097498679620060790159883164095762691118555646687756798400553295370839374001782245674072390889809550286054211819696673562562497545163439264766741891445497305593170282514309843053960667099405658068288305856593980839765085990535771977527241793620511515835507647173736538964730213724956471051049360680773397632034727751664169630676923126791459042178754590364955073934383377670241068178253032746042611008690212646422034311671795528885867945239064855402014376349867422558281660608180252109219139318790673749842921387715084987131564238842038839379865124516448730335457503375546876454008458288576280158713417263301904152411450528425269485528751760259687289511593215204821897161800981457882006158510944434249892044195373360817401010189408134490378222399992657680284968607499568230730012430558256262653033502951894574898743832120207089143334062640220400571568590982863730209622314106873376949719769038272002440647080156257063475417836371801453653641147661174667963774849291173609687825755806772699587882242023381934684690805915669212581682146554584413230314244466679086461032686909911823873219989320581546442068108053955115781926281272855189618084944876716045719406008351618090777194254132013852976438600085731909325705322737531688934171733022991883822210884862799516456661580284177603530772044846278223654210328626680918607184048229276560432206713281399998778520229117868241774849032389325994608374838287724947168476279083851839889815764104158233838927082764016640514533294927378014986407921760205173884364627250473456920275519853643836881151375489505974007213087959804918648394713154051757337191146316211048039999058212250612733537185372307525215554593951653752659586202081294370587672345842392540169502742597972091731051054724070225924448407420154436748096538590688932173763939211887699255417145746295544172933049797015483807861693565250268865092816374582146774671501525207014395315252422239566120162991559066569070953635270127516142338171668907403887530558621230675882254043675836130330732960867866270774934794692377325402899446098460589716617657743642550958137969610366762575484827897099887476102469637803124107032438043638226573528370376464959274244896208589862772378360596913967711214331695484143934701672871395148817398292378302122294903459146595148385194078533973131723830407030041215515319396892025507156181184223293656601905923494705195061306223760745667035592568239604598750881951055694666150980595150723563847543298814321521375557224800169093853241176879424792679336257045215377623697615273189905347149548697561249452192066663743893368448075155660627356747454460243887209518883968792019100429299854707809891334757394626904764360503037138014417613689841535813673139483517509748815536251879819383926819906178852232531192266606240070554506738284594170872512837523351925613457880593928512817005220470558022975137437315045691623355355254326415335386545854371054121458039991931165621391171993492683663981390610547113991988995142751046979033804053048566371581005932070098582998257589481627307208664144837444453343133240215412843748741161561474235324047304385851752983799116392884309534950955736667598988966188375463575739082647065214508944772658198044302815600165464321818921105673525524574714006490415146572576912247338585981718507183354942767987792285955255192268108885823209384603669852905166151313178380898411073393717272245179012365531999630584597577584119232199576429255280374251357946409639818498221377693133826717510795508463015493891207574706648492036309451411588365738100782164525556729698493119362947205545858209332591181854034895431159161222093715102047740600062129823947998118923102130723001133173497646129927427924671339706177073942988780230466123020537578718335596734199541282743208125300093081799649278386571335114147136315544143719414650270203019459063906216406452515683101488721897667636318210487776317805301356975384659666843044549956511305726529401458595125885908837775904811110106204056350931969133129781596491451662269437097472476972975077722886435197197351839825555570258079490706935308310838908244981714948110614093380765926435507345730367063741192873300588360752254625528424679139140686701311414662829279646678777302812403795693526390782176094111136067552161310173959576079863263373322713223842685231795990724368284003745525622974379791481466656448737245507115446994233333827249248080353624110418899068173252808342717712319228977571391313734980102301922028868695573156643550986672585637217757441579183204874305915925652412869707535333993902609051472623590797475967294073652994444623080084236614266051656545214480802386893791415902936924299376978472950154252494173353265935529152436428936367426415618075408526763869326365997059653095999731518439329334592349037489960425891255177151893828484071167409776956902129027805937336065018906865523966766676928349278416269275339766509244690624470179158212885991994071616632927033027804513620612635941130090893844497279070693928548134135850207960794697220374940615274548718918147426616169592332873336563481563063732427364317219407048710966606028146744033744743506060342430965633127272765977144920244993914951672532623645904295147807562662606615358339921457643970830024729396055741316523495196565451080823284199020528247682559686079312846954603710110010127678942479723191499021977455037502891930808516651939950477498279756015939764143363977817563017169578781254507280718844993794783992355713383710786060123446055710716744677165622273550977790065709968038140810494832593725635831488016717784034146776525202125886403610079477894119678346293440243576128970071307311755679526881874787413892120699173655695271981383641291197804782713059049845422025247719980198654556402212290293097506958882371932302794008821620161761244041325921599039142672950606342250498595457662557979855487612246306346043424723529770216358068598829999922244913278829884297474875099467315177547369874790759233356517244108942096065889935271161570037420998832471310581561313852520100647180744347950071463757492458136242667841160201443355292271563108142027183009084550362764741709192338539025664493450133063664525527362310630913192597120328221059624674500066475935553621732386036070407259091068420831546898375335457208576986957833861664876726250026911742322974191413412286486318821115874234333390756970110370730984605200864101913690401407064143659749845535400445756667113629113251234330868182997573536657847322605722840589884178925159724123896116731950747971718643178831849371058044286547147636019552562819830839798559351117865058732423411477623115544059035833603194393662881268195910435065403377529313369366724161453107498139139925053525234221187368366407269485102653522438020309015816060476696686997490270420987120852398297308955898397695775280434118122768417531578899651965118326295321046581902631477581772744666221631789593093364703149393243738776388043543717511838649124755191756982452128160227740455139215361943592887038174266733243754830804433067386677422064423965271637507242490760129033785172287749099243442888113961405383766286971529418092256939703734968858223967384668515771453104719263137108892638084463039199510397181033624585763127394995621194048378174068014089625382239050553059301220784503492819089929878035535002746931667175888748612820635077643240493567274783468893432973355180587225453058219833580112012468712298861025230342624089830955748816012684688979156408605055910769251826100200766750926075418713158193632403578085417360598167175133494801388590768955724997085012514756543449713959860702568806471715498703319374006713838967151705395821637470697988027022253787779242309865264598683277760239003171206947080256641612864557331733831495385675603411830593552565121081476164709080158633964259698544577678076251931509262699670074434864243475018797556769954599586526767080018495335117350039777099491886534780325115950092582197205952774599669455432272205244587000485420544104139350567231194825855391336448216876845782899943432188601516390927425847521220065688384197759809401023082018308533786336343086979010110280003365941573483607788067261803654798498046803411328633267991923679610712620142401581082399007776728533214746858277699287878336714460088582214934158860999469084194433126855558012923812431549645507025597630593933342006440203385566955788826253739273683660442445190940662991325942616070488758665118782089672206455176961036020016782252558078417226513715429559175100167935081253046882278257756740414732571452942190374379534245691652428730922247894760887716184985948176524056337147660139466585119937573486394975726557219673873238029162528928589597595765881634369071088685044297200691546033823459363876836038413315193524884550454342398162060312828320928645575473714011489190410273521713741101507918207478760825543306760448652658175287463654162160140491244169665577295838121802758405390969671569692805752636178556789390245587196817680909695583647990609437182870444252771741713839978802155016704022229594441626289913832789078798509663984884541991287846536959384129001121838197517113317968925224750795217299520304964255628221333185910641789249616821509371015191373245135339481392033384215526005110159319507572834562849719663709380930884923171991770876378901923595562424052918157914878606134757308846332515708991617538340811348527378618473378199557480230556223607696830649301279343780528534349690784179938447645344087521901700615925194854459602486417815627391010176280000039809138025574684183167360010092178622269230070612221638134863154813940029017925122949616588766867140188503750289135153797642528805447989903314847391263500187344817361031240548119683907371478309199199858646088205974605445396906927158968081906457705546360047735426225893823061723325230206088972628293956124039437613691795022009784600792153659384167071209152983411092870037817384406610998911681871907888414886772747525306858083622555729435989270391748123968073038327209677596812813431064169845344120969976220456127987474866762393877013459343821992039656058491182660952219025632643552820541075411339564336317265416847692960292430922857229809636675102322284114488129510035611838022900946233724933765644231355189239447569469985351669854149249589122837451789453747489051920473678678201845443995812682077939892813214351652508021050431165408950879072563703519409743801280560900352275808939422008988774189816325652065549491761330208256559519601287097037144043579426946158731622153208072990304979554725722078352231245508929377272293369661297354239743675238032575250306471233988821688931889073881279885719949921714444563375689408428624725117029318681575503139485275484829353373797283426554089915006448854737078086425150225228533620881792183678005498112729059008823764333841635326051949631648077937367810362562143490324130469087046730161339842861857598456403068025846010996440719063196253093963721850823067495051895295642266588657160710586772269484637676386601962404435785330523623559722132691581394161230238773450891476301386049926597150499206357423103982577504512509168700130624194684295244345727589652858390255150934574692449831787720634633949315041295454979700748645784794091544204665266137572177752604526146894128584711035281137821265807281001148865153349764221656130338429230872762995187594892579890476206263368070650185430172720029594629251137417172683629788581534985751172656062159129731706138361355042578360877609685619581633075840754334877501047744203796341147341634622555753478680732706217642707630358143633552123191784509839767693387307331821841190601848126237061391788421291506353357750514616043791089007151971828416994679888844493623058846286043847337261687781494291195703971963673248199287119257800085513780705426737444544644209674380803716230908921270696702760381911085652040142487110975608672268109421722022490612363087406144231273416574082639553106136916712809549873967490929464468873347568632969470001314000521553992013768879241180772034223434747031395125250856923839459672049733143036524022260860997512932647669105583005543195425248128559802055960818245698698313092227465151904465512171411304432964571685996618988710078170005027552779962498815219508240813148006551699171343053176766448965937642042140429965354918183053980689791101882245921346478633969765025061138999493222312176181932906655983554357534403593648189136403472640665210612624147708564227853159268064271652849569997523698458895400277417294945312804198112734479540116492903657735389192252851131541244500399864859702844521970001485894398079624548549473276178643337029293127695813038612832914232339018473512657308568264555993092828575258040737491177026112102373650795950077813238360396835840034530439829558801211058519623617049882540540581393238552997281129142961661227106447118706828880872183345654888960897612102000581381852048094110220111842038088911153142566808415539898514689818355941351566556712206628344459544850210278675196765700276069535731085919378900611950371457672428929255805453491240349477655938085964751870467971165479546615629235597944698411396105775001284919855841087730793680444913249278088413261013728500323437283388157778894151600085241519575729293304358157880185468913187802783547897221316756404439103100145242943965704731393224313214911648788795874495941143556650125592819237037017142034644412638344149909038743560398460677097018132029722638108661205955822540275856599370161838893073462632735032843059051116309606940641166236521487863129962705128782946278986375121567515217623416262915023090344012026097118178760699461306315812353171432575878200220672835727130483897947115039666519336575847368815643053834621287108252116943642864583488481271754171995226542369606588710161624856473122908380810972289169481548426502018920706396196325731349772227232672687806538970635852506287260029311352968698297731374288530437470111394300269428790386412773534432138380291708891533007111379465701289162667793273215599766658800643628294155149240411573737102910153441129303237419791976574373972158726985253077767051002860196672079850392803308494773813603512498426901280761558882221400206187823927850251525600173900489308714978211494260634643597936826401359168535345158082086090023663762979071370393690335239501125371715717018927714704695435318821550894879146214430589340162602543292145785775736136013765551109643559387266740562603390535016443554606071522194739192529546668575989815751701260079444409395320395897763499252786122617529368399324417880967561343869474649790535347828133259365037245005122220349931789200193707932433934173408685055018178721989296897180776122663885230913130908195105405477344959847413320528027462634938763631992038425578620772293999382747264920258341092881581149878419856689519677251286000409038308547499621155104974705976666589767289623821496725898918614651193352544697086947044715396175435092357736308152406856731105249405748164972997648288523390347835996356145485275029497548603343716097904572071137255757721461374276764108987469593457967650528308519314869011084161379773492132802642775618423860218636600460832641983876601571219609107512620746590499495234064180443555732133408928338032736317647970052533291471373193879514291456020542631758739305858465228107232450385707243554460625803832801831534659885728588327942611773375689453537430411464110879753066371079212634538064887494911079401975155113404712986391393121600352723914687076632729369137531442592656709369657772243451603282069562723242003558705666637350819700497669115161561700971009705936622863801258096503732187666575169137148309259286484419315623588543386684784611051494878054092789519428260709134937690879734823652249072402353201514557588208531589894160345703132595843355154249351183137946370714931131043568247143000115763233973609151264439075922807703438202407239807689060937770050126698232100342282431121966579857989121364963271687723645351811410723466230160140477322553242327902983884304377709114475652752693890426570930256169445947875535409292628344427777069907238486480469784260856415677764530721501537255273940704272989561642333532215528556889483960812294261628082624643318378904504775279766944528717727319162309965327179291437393418339194469935380206347715133941813332549304949218399395217534028673768803922124467856805866953497684583820180455578289934272995852841585173103572582807001345445880878867018505518640369862103401557110086622442058588371519526080887535443501375307628553345141074989345451177935586230210977955241490018080425989374363513343512526899837689577035546716089079112548144873311026385144681556299399125165056078271442188826026859951408847736569758818093361321871586287858560854221572815338121569276545659301587750714739124761575340339855361317158512679974305173885250711979784447992445606369725465300865798959570005633590790947464515029424321282527375811321380573409257114883439425637107204367134907337078528066237369684661979706804060677674264431200164721716999489949513935618568083268675890295518317032139215905100420379674748603673903045826432122110830763919946271995972952178958050055731469719135126091448519160457576160516321226146896201308692377104988168022718310156063475673693414537352766529977492444998721245086552776869667863937954991648875435685902904938152474070774325107971165788123591747387004213058876005131967972487851223577590634750608534530258269309319494229012668061083090667723254967019167604056676739479359204438821912514500493506852129603610451202638774986882925856841011566227732732335225768090451747532338078781226712082857972766208321618416406033297248125739457690769845494584818727958700103621915182747443086668336267643519367184544087175579051373416648105580806328169044486916975426705705054545706785952790767964810342140098393139079128380521856319567289521600984707033349854693920159390001727252460048853876214483465041826087582267736213658093475981763921674155651266164933493930194814438221838391617846608193315854159276731254409309139945644186357227515920016526453660463486274502551563336067038365499121310119559524947553034032391173935982203353566275377311093429607602597972681777305735274291555485080313468960657638084683011549678265959755135180416367678797006095067229633946747773525264469761177336598799809704790518642972254096930487284921096276990947323579392599376169711962366194866242362530376501478040537280492542931102241132617071194389969306230772940165014009030519722932423229794944234802845893717812425095098336331304394128080223693849369447439975058306733792251344124603462765332586762172148343166224086690690189583666085324003253324787348287440644414925895918321247858452709868213639577266853130001619854438362766409311088901459305302703606684340785392910689382904019727774866472773013782456151119457703718010720513029980450587262902421519360027169758789678553905120253166941089628561029680296411663691622960164373785018632569412838228368613585669514647200019973955579800375433160319862800974780043116467539069750112696117969472157370089265560524967684267600988323663243860689998868181304476825938684997744862383084024896707588886081061993767402922688369769727031367952487152907787224905876075795491100305600539414072019689421780762025062793098871021321631243021574341618202739156954051911690064601675651398126733739556108163318590893508225401973483175832895010338251266166078946441327910389687522629310187845416665260927143086872900575881622665170431225787547312794995396778212121336770493961563478060479195104681248975069508172932677009196455107792244643121099192763340891805502267348612090025804092336482040813828893869818639778456014992179074529070533292390346444061666058939415781399368131237833132951459883261301952335209485666732642342812682357842103596022600819124541865248668739580765817286055163368954828769641934935437643947882570290480462256281890151619477622978177831014061979390384331562483995809636913276166493543419797276921856468911846860322541801452690490447029344919576127395738223344330420276774412011855136561356044009318346454332088070087091841358320640572832073019359750604091997283498043888880709361693457749761331486486201086995967818221013013052919976249765962445952928742935048906451834964257332846087385528092628794886767837392038304306647693796606974440334118246741067252366942402270205939498720490696116570545985982939425382064497841554172405249788961946726174141943359732395017396047815720509086115180990939028157761014811871415524120071851019562234783056287936468632715473685015176400175287689858820038124676976551861753561777816662555663710596099971436813150207955324070472136917715353097252841567714728514197007526897227091323123824493795498999159166358409187949699301462845762242006210816455429698396300848529778248311601572602033812554983647658337127146321056064125641871810951616565153664959957870222982853410281509674006041140070090078851717203238681657382085269369918409953211853040317374409221621153711183799330161813584539108184131558751925937167339551284942817682281782016767760780879509482006645411580016145791468388199830469162628236071501759768004431923330949496270957144633166469113649269541001383596839301453269963915591796092263779920903069754301974354647446632319511248004458043036809754743944652162110807076113381498242615818233063194127512303375453405681933841517658107682279411829185488924681957717132216035965069612141716497321473658140378921566415686479013197717941976562045697826784474305816607598474084140014401931414301643105647290759771150740097074999600904633138164268618889405851741267105691136287714768857416617312273870510137985629972874632868912014405710167066934107741711544279519156364136984668823398091731384968844042652358131408034046151268828365104593514319964758539776634063689783342354968884291615797705011798193241849073168381294962136253943627874019229864753323833592804743803194529444156827540771715156421225220556656344557450842848001097508574311803185447932114703511776202001616514940639432658182221802553039426188869388251848069757804585888568522243919060111472597138051744778674882073030588931249092551079259460571977985108087650223826446493272622668028200082304192800367381257794557304675648580041634284584140939432686030569323604080450076059952892755763112310806208245621768733542090658013321177488302991356489557645886679176666444782228782936055659937311654484187747360156514317193144521033578946937558786326076415901175576366619646393146086021737278965280329749419093354495173838728525636336908659785285034378377360305240102000052130971410871909357635532932437260868778280862520167280330586547271642219925023215064726636547196125940308787890213002603934497081779199717142197709373652434217788710705025701631105774476187281166895176741395038903676645546433502617665283052588363423928395680513806184944353185321176929425498401672136999716346390837847303992906838637048780346672076704980258027404211041463241095276242308517499289391714476554905383916468394578073694734884527016140714758544168952431530051311810006842491586015734988533190359419377729036403323087342892835436474975398901308164313793392182556797105824792970008677156435574351272139630345249937175279597373442423810860481491130422390836473680032707640537293021136904880967311839233600785133361395704752065654486184648961525768681618748455488800397213591778001057627571105291610659787008516786927869824752012371135225086416530416998546570006265187764297660687472669986588571460340672569946172069048484843506920302740514381662520103443651727592317261683068349451582696064617611372999818195048103257083660023239706681481268780707860549091158022327882233061456820664798441444728296521658008439269673865819828369679680302191536508429761970029493848129601814535482927553500881607494954670356632776769433569994590303472451353466256261006519021195149623069089080743418362455901516406070007852818234804460777485367194241692750812280916666218633913353193691204520429373352610132838722409130701736251208598498862754751882630625420869545305638432416282984616089572668534814908808185037529073170909150186339364998339173512763916034706879119776230537083986941971679780017181311804829351764394621536446606932557739577825880531691812128360791985004115194229583935537852518602556597403845158255036890577727536234115412336853760091674557150356576351663692319762934129616134268067420683047639111629588274811354613288578128926893043928636455456462328401265037266774861681167357305460760310274114405794891777120126717369686706253453781448081358788513904377806769022568474341615933915509642944974999580653067861063677973654659538973643509485656622492232406249719580444619455599904066811942246183543937688573464613691979572561894904410784009116033457764912387590644028145873633124859789512715392619939954462410328591774973453356774303986119650435932656765550240606812443059129259143503606996078819892798282531643268022893044004609733186625807567876665072714626334466153930604387356315443565210688947862129964861699237568032316470852031949637621678455305240773294806529360526442759753263824324637926604167565524048210967960182521803920782295254787168695278821614428984468221446794109388698390048443422962037877789496473425663736544723814912753397799357909344879700888154019628476339852018005519487928772086505247610623384935523011215680562166321567527922862320838352378860184906598049051848072913741372961233024040768701914135740828333023808277400494103112240890719039482393000152206282900064411792528968126729131609403938664327306133387619553171844735301850629365443184912895175869058140479838823763595137555268952865941943864548026356816548585511293163688279751700122360102282555060277458849535778199142958328952472166123927335323454030065991262687183477661081347790948532630159301805195768690388830751897148672595011663139855151643147187327762171849307641378870606434592896673042562092322665527124311346645263818625748961418432054271643665911725568174541135984334995821151996138358758215453978678270291069213652768715014463104488375944513756773967849186702471087444054065892123378967057932046314704559551968069016588235605921693102338406841494106387155768092979074987392739506148041856756268050389590404123916265225287850083297093980690790797830552100062402965119500575630180002652953369865580233434734979080613632349015871506620014331330287526268915345422267821690158795436944659790061113715992585161275798462850000585093704639907248175045272378415092225978450686559892487915963205908511724000840653849696799627963245326618905388327232183088376645738529705182539531505813968341154072346812810600824809455856758244145387046367673483354368008398704686775595189431409178481480947631620325773763022730332159814266976885593399546099362963887596065100419339848931275219362425875506243760221870372133850042683393810203957282125344784829409151572686373680178270792199152738997385192284410165909138331884435655639770069560673616445891619111021223474321231863723064696679484330493746288935974649307086939071191947163316547646380699909170940265953609548396156007941880982438138471118219038849680213661264591508075600381865309438366119720710752236058064050353314323747939595452944999900089103330672464784415526233707021240510349703471945868415267478280806332431029831877864605809119719729948915802594910525967707765625119034368479540690766379804844667689741597309497916592774309928675584543749253594888311069696319686431744392000828716845630000611222313983247497519833748418618655799958088653067924812610948024917066971780260764804562154618160240834054762820945212438832248636585953690133572191188282977425015687061603266031127308860471556773154551761252229237388298835082032614643396083723934984434780834662190741853606425182748040183275343998727244147165016331532620867552115124903172769826924729987396816970118452079573999524190889455716454757760132325957338857837253044197495939403646077879536935381340647409600189491253407060886025931123089968159543598208849612849799790769275841248640506594617249730962598379941358744613190308461781457305508987946264347168835190333354038362967338377369572694508884904344600473315551980625286247392291113007128171216350611227999067328114614694102285395218297271005659898836181032163200799266045471030972100832494227874613180967239703341619997068304490194812400575317975811173169967343607281534064114095098079972033542431926136980169401944111353475908878267151735900531498876450588246211209449469623354784068043437821123345453357029112134017005263045383554790348433901069784545609095384448543772863786270763695406094129143596849825608623507641414580631346883436658501298931669827422835336593667236882375394285209608986429619927434736925331153076945384999765512580632703185694544691867042300458401945786751325381948717091396095055876401922583238118627386670053050898935944941373079781213458873825066570326342749720443938191310172475936723121303037981955508553779362875635066620179801358516755578255898008546479615798726544882013700802056422614284058544866936472501403922729415413519543121064056025170322348765937411721125686590907855798739835489379498072403339669571227462705411533513472348608531713440782652927291620124241854640130042558075745673657508807617529904065297803255020169588006100249202314523821817416342934258204131514233552257536770587603805359800555074536660771653195743396168594852783056273651985736995824308443845919144183422800516363818335444620605878147023326796927773758393610155493828190667217585026235001607101131426828269795093566937665471074715780741547631762313869302590483129809322885413899117451553733747617943916190348256269273395024426678567876912588163379609984718183852898482887123460665559145324556662170006973082080041674063415950125986138972270930503584966944506021852160958902309697148343889746802504546821631997032664135195510878222765823891918851951752408034848650124658179722234252087053430188684801311770572555093377407760718812807897321949837175892645492482684338685071262536113898597716345413932982421437204323357304150753501819978980529498955480017495640558095425803687764669579016904664097942131910004341113672630670570264883993824168304111624547370141746549087543244082874828370032692903487504600583129615303283343234146732122943683956303939394688936155399605997479306945560237309174717747782214368859243428132349304315042251433307719969169971079602633191687583516642212527295842235702869607761570717051567215973253553882564854904404664596101597876308339781045244109531826716829047458063007587276165964646893508173555765105473751906639449171263804835996502424811790324323321734932124650498075804297995573671920755282096494526038491943096922546468828484370030093789620086005707152574145695216543294817925713179397350611004547209828889783307926148932708624843728344354591978672146573172935259130950770264542003870273538152955839455126741734511487076320998340434956262773832091490191556157731662004726110477101767621056350738870097735899848642642440213361375421743347694011651684388813812262175068865862688408311532851971892409550120433753244049698067009135947406475204601331186481635033880516681552119299379696731592235695496975626821719019685127191574319427562094615961277532179560132503153143780558797916451537721316522766698294457824625200355563419282860787998540976100677521303180577268485843464777329683964786231066258680412104174662057675791169462465686257457024840293485967286856141089999975298611367369719964575567213781141006013731590418384316503497661024954899946316514139337419342304253396135986662148264140067604480618704981849301668627028529148250122759427433307998090192404482760047065958418214148446299574231130363612700615193647086961576214558403215950551054254048592711877196692754042439915365444112575415228010025489743928722075023764412987278836170247973386398246457210932976955463216042786672737701691938768165296167690905792147642352183957677562131637645748402682961001702183704916873703931212198473239750236754130067414103147416469922098460355745147333709230811918170237982913846127421884985324333502377594927536384280065050658545081931218496065025092702056275112678328109038307153022848930059424132653578139101282101287671327896218144125157300372566673602006010714030875973678175553002962603760828379262024350486647112181318222479054473542152999253557843509278851203369260270976182511110935769340359977652185918789119679999471111569742087464128963618820991802792222171100868626126282904493999621779705037197368037351143309907246718832906932535818479909346708579811626512183775681817367271250677419826164220916255088070795619881975383066215052864937422715932281687221460717626375242116511631104188406959231682949309796246786500297557066718388767847730904811754860290351932013231745730913815030443593675003363711517980298036868498440296293698067633370913267110623849713882563438659017956363792949799378676029893039345385003646675895473720007596312153779592605103295214433709885544873751867465670293212235785770209177424727462828878553864858751796873986352271829230502528663032567876022277890358446765763169758812928417699959411985550509172562709973489772750759776825364658272639502589980739098829880935684239888771589622529995189619641846461398825471762005211795451425629553389024186803449215969001728383750171785179651069603476893897179884514925399955733346552861777702030967926698881661148181795286656300490960935348572106949154169682740051916933984013485100144069559178880910514412520432831094461175220864337921077357966774951830880759985946450253269765407421605848949885022946266049499131987515638003313422463220352078635296874908481403474526788160177017610799965927170764429277582181785461008083389071734503823926718979037119375868651515217287538681530333173726778913725932775691917311246476350003444067972308140282765587764919803394275356314505441446450267511168173463482552990697462757314097230961471658938716195926039239014885830447456148117019449332978363983908872820832556493184173586470899283092450190657354476169504139254264973449731200110608289294992073850511921977696454832582516616016205512367884080953560961057951013342980062417360329233285406720738212818063252220181661343935387883681736282490574607746613776307172634571262888148208321691210009038598493608318542386295622069634432270341378529310967492751953223682636287325820738925981001930576241125878928654582101705596900439997528719567629394978563721779665250964405983867895015084533718199520597000164056857855369035353583341091264100997190819358061862624621382748849731223703492335465235286660566252200218821734845923639192624924007936260012474782169953649013180721230589492021728359208795444817033274938553242390344759636591787451211532868696534250348363249309099603410868798593108601371630220014613552965232305288245012046704597167472398675144776315665485562397438683838085578846063209875666483599559067941201116770494615864377036791969819984484424903017902062360066382216845246225429428637033057572571643644245815530644064129383963840636698676037034482068609948455987887169266066983704241604197752081853905229532887543182603447464388360611230115375160703648935287586611164350691925100533074537928615679690090317236709868986362897947256335428860635932262781815792215361118566720589640292916569928336757422848059747721498992649507799468238315472608964730761923918669068794292179151282756985571359503383122101196261264448613740368542604773550137863294640872790460645779756854874712818384919542945835985523416185964442567574453237993596200985908311535413431862697985745076824921483263005781601174378910782034874734282688725148530423428624785954281847829000039322537548126568590825098306907570350442237373482677986413264605836129859681854670577162868311334638214569724684377362420235330933567942157089239722849527562444309330748499568135563886524803258563187499033474793335494480415043562941426408196511813461307670851775402602053978209269743257325373220381731133968515614293647830386429985706507309800816907220571520301446732680146041451076338394214240228108118445039226968109994523993970931855951860825856632067620546855168192757706655604547686096423764523891794182365518628437101258626778426889049747337205070872332425672304880983199432501690842843262759046907079974979064701295548340546643707239966431959165370890719810896987185353897502265784586963333665162359554411460902004375907767961081946916654058581392844091423663999271793204764361438492066559852475126461709753105394438981217340455689982931191073156759520453885884195452542111941365779549641175637631280054780630002223135918003848864320950920411243556312964389033229133006275489106301572694973407527010533373967375669987878522619189985453540831801604703808927071257466005149968168230110004226713980778608501932613462505277051341822050291463733168156349688994241424652511958185810403171693012124116653054164279124873055247678112834356127170964352334552687939677204938100862823506129423865729551379066881802019209672270243460103172211312534833830613328531410934709438306444907829988012092299804946768726151012362912864834171288648775620767892406715353427469315985375337637581621196414424553005986396536696036514248733363622149646230623456290209441544134804660420453844268655005271577762131856673708917107535034003636044691311358346674434287225509866426061229353533784724099835612058258428759796591357650707342797328408896565015453986833060592811359095619582837397172241250103660685177150078948981805617451133743169018221509704573584719957513136731464426246032985712380610233818467670806311531294140844131750759388459799039609079382681671889300118744730574537305220035742921660329540759592528619521883516185466006245104724462565618641674745949653421613513467242921356093543746995998253855525496602783439676423876454948422528339953398301549912673352718233779653108402954049031680947077192600692806018427647280075379846953421297151273654958653108914888665443778679559596602154158930450211929410622830310500171897467944149751834070634943875961023350924571758193303780017794613878400628173748954186323162105231659918277159491524588563626969202916635463124370352086907460617090016332996147528180809815973793972546859335119301338954285446490119489199426635176916081194385720323971195175550417866767134349105038615413628494162855525376488948691978160916734374006766714119654842155735313437280499434502134130662373995025885401460215858639435612436440832313744811523997095181774555416386923844285710983881371436125778373507648813930374023152814014350265314737708404736434013746830172604288788095932221550623362398441005620407885105204193566875328064513620087572939156721453807094028604291425196872408921042050267382254437793541155656620715314989599646634565257128290029951451411809083055606386930076350872282919677292981156833519427496651205736699396333724692471459652534480534609516134713555890461973620115199068707624991563485911805237674452018977123929847355716243464139856033043739563318003782640210350412684542075535816963115567141315864874316506994527078026291631950523904446569700461126907378294093530083408798033504350555822647285512716979669760039542717501985004680916599536320312522853451191037466907854067358835172479185448302410348328246560736336846711479603878032186619212478955620566228908183652321155294411227452269274123468809998254834343437851434019870278666751956622946468989359550269052314875419282081431011693420460713078834832899879228836384561636554687935587133299991305300543543310362799179567093042495466199218599227320988775661103961004094809272814641624454195520038288355779253744928918033218527796207784099923529179619408710743200900134342763984449903669416529026147475774516527279118613633156965134854864675367016021658458565390098626301279119477790822589509296304849573093201858481308930599680599649714639506460344659141814365790600734207146640238022925982527129373019975937605300399036420617934562518722960009622656283770922734155676013959791953927014650871509860312668109982068565384458791977235670432957740401331302332632631180723046500569997722709615307831257056751355229304142584632844697909834060232414163739338784093498419929901960312973793479556055675121895363985333817582121937318595454468904191611935373285250509750830377034194907238552666692695948856763461684253953679426819510976727828842979467738567114383627090731788544902329025632385440363129851358908787040729514584356333765416412393114263007429591528547389065342441525558700336878456083270911298040435800011358119046398520369764565296869176618713981930287554288410116006837218544863664767356121446383413247095673381557550679599907745652646116381647543729152041422265557849631011068633068362126780627220178853749085860447744931967776732690445937854348257218149838630040386590936529030119675257088186003280216896561152188098564927237748250065462583068457734317995686081926720192304540470942610032786937450117203416148552354911319473600474386329343023402058201606129709222028661695228059801228681235508986894500681186750453689248915344659549267366693710983150476366680409090836706558436379492976858053058815869638365801603987717726836992465244416101370660612590260540663442049780677474565390077568030064853708142483240407008747227150217892466743854581112938092902473327596608835280695568079447208553673094618599734584688648628166175010564997479763394271836660028527717255545493786803439064594904521927353062654578008151658410207091861340380163577380058338460567845243439798898496152428600887343368108306982005919264459108374088311965077809991263741683989461545027108987752113624846857654718877655795620166359347003071131963890083147250496724959772288686956447235125461473117684533110040189975332673931781227474171989948839579619454256670506377024793477475755638099197396448383344886076783561562493733837238128257540898939936685972181010133922169378439611751963023489433916109453816898423314776454920415179591796384585346718236652955420928057161842555591191496428129125400387270080288316172425610551536877152405440514559615077456362226532437325350735425662346938642811092645650292757176295860284628650294415196185685774594962604174603836637151581844254052027475736351800937119060649314028891389900033318355187148872562021646426910820874578089194183884525589804367609492690659910279853389920872879331524666654949899638452130013697163296673938192884109472801330301672259977287800405009486411626130659755051111748691496233668233458707492648487124090743375870939234849385004934651586205445084148122353623834973087928630292821631567945555585354035242615360985980843095780697848252928932720036568530958077955099118351301383648479147932444703091152087736799697471171209210826373761217907639240283426743977734247152551909634544982714127832927128004644432351343054130960711945499212331651058028432637403578389737983805102654314594329101266853728098822396571208023300239486690075301941174844726916345173810368258884345243644502973757373784858625016352501814069847108171568720723511641508177651162167901726624798223876129663577154471261723419677092810497799291100019290707705941014948659564642573954816698579628266441639093853161782977368396716942224023754281674850086279858938052627261621771799504642516919034630409325249029129221751967022983993753743603987738838755654905863549462102328557068592064020164343348377290601572832586449993560212673194552256915975646997732842734589614689859226121713060108214578474705026289634921250269048841594193536247912919584733438053595348615206830957657382165958437552999233637230197522876254289164795532706128094459519318627257905905787123613008504895948225012038539786512211557270672313845948009404308431790563964575970453265483103772457068918728613864200242311709928626298315911689232508456238430941367874399275228428070001572941626809979779691169660825346254319635582031893376295395097591860492428443549362537937097614923428776782703011531004562817531734283638282662340934387743239544769666956049176047504055441572448761743773655502856975553182178454415694508966943427456880163666256534717391130594655809036430742202492426548070475991120208655986585796915291764486400596603308196950744727718467931689879696907612382253868120761966703889095032693829171121672304616085711256395944961046457309923039753364681516074866280582777606335671447676534224252810777356632268431151992961713307655681429450854792398288658260331733735235681986749701140751714792052429349784634009948754784918383748171228858949575020530231683946964779139465396254833737281670712093868632483442558978897663097646284463030275927168919186344623378242129213227813119895610521637436491827762131042846958563759237620304438905481127740564243166224235052839081238725306954121720688110884015600532723780800779827852580018827423674293766144077642175639684723687812841244992958681460368385655273041292275907250994475308908501116870523684686857442717190974021786663808538608262409393752585199515001237970768292645461042566952196288693899997178335929886764210090721979661448264191003127852209430574223457334327409725895325262731166238865360036823566936744874280867335645608691822246718892253008453959962298677303296698459282607781112599899159008256438467190711943848158221075775524545028798329749971041981499773695678786436157535392142821256283465851873231071268356517671674936059477387515006483945973488696292672672596168008268428009898129015585953131403433735627336148993327302946666567654328722363923603902936426131657702679421273791301274213758153729822945520258811644448159412395428319428403875157134838247688989859783806983060736365063129616292544552155811262479527292656472189580004248965222602826573537230788570934377952392432853833340123362954683628450372057114969786786211153223037741016252775614786620684304536094557815814596913896375328650953298127065336118913576286446073219793419614642635564255805214861795463767948918709133634700023260965172797260042682571526520665245999499068680397095713759454708172139243421805701266898304699484914048970484096165375281841842874149260468632189090761281551205394566458295472800890424446977489286592275861288732361016023912520025337536719690395453795606464302754081117107525905114166131900573850319622551150539076817352932112123385130230829088799809912291172550022870929548436027716663416847789781122088517418458574139821279023880304647209915252632061320000589979914632583574438448630855971017630738635185212333684081343493488463035109476309718819176135527592438991488160542490478629029582807671639412250011031852637960475215593654355682652837771669927871892152113465568964248187553558965454048572590868358017409357137541067948170973190449633584613559539375339666609088383960307296096278732129100535556903573890536928850407121726012083940928902357305066306399410177130085131504428832194531768027951344856374409353859811165054540211930408154575917548764776850848659611448225186996520282600640026095249361948029146450686339355525931161250163048432943870397110029922997166000486173355454112956743505131620742164270976821112815547751694447787302223072329465604149143989887230876896646782393220355656244122747679620968624141007700864504948036779620135288195607849281737922040128178751920532180137351441385043317988813914261064587932116750567268063272200877727339752906972680829031225961799462948640884809442008856699855974812782027724139541092580292349906537481740514952998235250189742265358369045784719483496953016685418345991158473277393246162668757392130518969265528471623210877292703184041789638900669478709388965414131240046422128125377547553011678012714207623225969751945407017351266854664855629881712629280872873867984313846327019162219174811858000813565347262595229028526574602935627528321516809942677028770608622672123843966685537108590635347663906090494086434515904936101747348808472737698227988011348359125837798496583241242022563530217019749029640478960455961898919974526448770584543099250148921482416487169282284141992134032576055937890833352239438876234406828111272073223800183967014206951222028098697047254234929210058312413786937094796064987926335420593988569730705146932278276008836913466277855448048842097002834148681937660111023721842928356556233726373196111945330292721237115975464077993105003351123433715568484631010802444412591950989718997951755335443826316815173887386498898706822588590579822524056417410529585938857651545142519117649678239307392806582990439724041225449922913746285815861351408219187905503912808625554058012850411548439948629330051012037407802611058695169313855028829843664701484211921800539287222842638818689833492143467930289001614563972876374840318031618886240797462457996737623690211308886726530796219189508386744983802972287114375180731425491907223460025300032019149409920399986467388173056409897283154448332513314937983364413362413972837981172617204639160235810013082902711066673430254382494999394926854295483989809306618166712036036409726786433048986756436854135982612251265282480745657568763041094168931096523806738984079855367013071372627383006805333928576920389077201364208452320929923633710492444314844483917279861648915491653643397305174397372693377265078858658659559420076398102107019989427091046817828892519907672686628035795821144853706812988777647359745167232043249586567188446471336658129399075474595976352430014662197269211017465134537566454613157840179819150409020820042428955693620826061353567166124929580432465075009215276811937173957031268127196194900857641240319480740070942520068599253685236141292197869577226578826170258931344688781363062050919165585954505431481371447172293239508941099765759295667171747509846842669699145318595107228138444786378288158162244730312470800014865163278840031259777473455039302780051274108016896893915605525651018248129615750876537267352285389598901072661502999723767639229919261041360059840290322076530354184529395569956604983021961240042037172951150940488147568461122236801406417322055687854989290828669769343091283499134241055386833946512133590836212081725736359479112705091735215261979307324663317656162540059919794588995076226687991316366670247802730257635375310961177923714257035474307146151656557012124324672556901011783129451096984585789632086554434137006206205455798781726616581712700421613792453990501706846126031314417326768795057993951583680427845566597565892735596867661822406004722394844537318892624904946779273476349742531385510461052917792386655041617120470631011022543474745204333289359598032367445547506900196400565844539766281139307925282483932887090375254405073317961610786455073620768905597873595863191878161384621990495023732511641350812451604761615242949039053486156431754695172983203400166116391365420569132316591891221489887694876336283767093243004127057752533555018938098353989960991600761145615509224327140557503973521560918526091704023570326915895486041824444444188075493907574079206130370677115668487385506342604115567791163563282028248658336980739686054445577703254689463636691147675726212627506256711413498563525820624241969393657285612842126567326171506495490434495736176166319303718997173187443065060915516061178456545984649693018249502846080178827298292506659174227841060991102125559331427308574325412787447050122256275197287734384290904520243984309887030180757060873606851311366158247469948317310441926250702969097194049977188756254687901173234920293464756929109156362649555187795949865197496788708158812830123241651319631410984892242890177480788778856946275463061240207453188575648457632856531605581350368913367973945351971029331140442364972261581390218707608150106045548866098329968534056235528612143271578198779123444934252339655483430617138230546311258901071718344012311879332513967593927661300512627753382403881909853401144317017813679111930655490379350660965353787416149295282884772030753913512108033928526211463266388333835623877607583596527792813733556484596581032873962833509688521869014898888521181379871620986486024584814126791002739077291162722269224885670416146272053970415253952155965153182317867229378618610235159088390748569181697757301704814872023779073018958522911429032455694839081320145063943926876838007242958852230274626555539144138055052801045290677666624316075587106766905142692259623201307157604792567554171186445529487136096163430063098887303825922321293520183656214475645605427463781669796278376940134345048560678696740595666871666223030601777393830746003527628106256663552612535101974602742315167011835258906050192565329859226733971098093086793751106405660298894192168524805485752950950225117120199415078119809794119799308419958544948528925718410786446308841301969901285972395676194122902824694227585388439414594301871573226568053013839174158468269510063226232234555938186157557926870479284590666688968609083199541179740702703137038552182887440925641440905423473940137628657406211560496346475941651804840522607623290256744742468460166884320810108756609359457066807311388039564570176768676068437143733396635567923004022856580363695896096644419769305436495729651404434123812409445305989759848816002911617336237367310886710185321423500657124149014536450191455781719742079700358354061950078424868866125676483478664696109907026508827678940315603794226431844187541762719269394652022594835590420452045565125850850068489236218155649418055913688771826179208119446318482040888330376757519624931226244545966305061732626187538017588873854109878481405759250039284658261257928308848273650552709347770358122999230964480723656554936881426795259956973365514306140735399311089635923949712613682462577908333004633138136000321636503275177750406018589099852152413996471832104246882072419401383020312996601251555034431452816108838845566189594754541784609640247462954138949083485013726605294739024869163457585554211450793015296345398089043384491227077960245998128986982045540918577225753568972483461738168013209810435216716242573494177210247768081720683575396442753926386047033627672017775365711008140352173459333479923843850794348325284879517061127163323726550792898210095812859557852119417427251844486410288957670224315469664589898106814350166845962465052164007725748822220192466541367004119338734282548118264090710912730487225341469508805788242692445551937909759312918221197610526858824479856383019100733746255768941934812411377325425425433212356409429397404566913079558305414699657527131666912403356711594531576953055135609361333477420012634200112480140142555996508660775312093175160047608685790894162924136304718269947747903871608260748358926887091997268411796766826393861159911852024756469707516622378294374556000344341555486483603299738201663195256097100405074773861064332000755603480682536505439991198673654543893719161907223373992928477068405185158746596939021741416221183302197487190949519284614855482346666390301499298445612602125192192192263685487932309122132033566796080026428351774429866020448085115296768831982420770591283309650698255000715126299009598395300674784053584356569831991804867699353537380112594396632625573110898254530331905945666409627592951973052769744834387405054123966961338984898040063201161084573634101099202016218343538631225921039314060699064512614904260251803739008045971960121144070625358328491644518513919846939050635783924100713731444742317850256147772603184844709906336657442654695329712074375262430568924770876505640903034697744434521190180235917756250942841409554307695373280968244151952209345967806939644110807274457715955872946876750292677974129336678294897280669275063427403926057781501116793492450013880018819688124623032710756584998311609432505326360711953630987053725564641318362635565282148243309559271876211284187086512643339799845146287771264153059599151193480335887591543554341663316499747520927942221093580281697460178271166839491406337971021961667463553118673978362263507035442112557912236674988567535989822730037948454947340692662322990454493664601852012882500335394143562153069370213512739280687481963894216834978902869692438291547022972036301675037960561884520126440909716636094338504993182748032172044067496776614350661894355434933762933595978965860213145792106207926414742300196294083699719548269222381553769433424888537796456273790154081066108937689727295708153320030329563229828107927826768804663139990799920117768170097190142946077610689179839872195889858966013333691804147412042335819687454571329908955135611098830421759776637575265809884976496631893590632344930348662798291954658316876287180535706325706732863049965789074704071205791273547324942640406370390209494436555000980270734083923472023673906186575877670804917176311410466942504788818348415026705911094225708529728431771918486999655989178121256365661856934735766155065155930377598527204723650568665985309584480772714477749220299441239511347287142182816837795963897910255892919012716599195431781129444722508372009976028977740394985922603107698121783487093993586664081464808989163582830162106801041300019746821179217208614120797852172393962979528379642899319905094704875849077146831969238192244858660451665781935702269608305352349240115938599720642320079620526503597407414327492503750377507157944969986322713212391057029466245769627912361498048495167449013803976720301032140565645831230575655756873030044669901094316811049250434668029516536292827054340063315436070728497282894936046084651332485061954198754029748537328008004896482906454517614394779753059157460391681734008648912013104217901389147886827758159678369092985354829813874241410101058305517212044837705851239824825079128715033297387958047096082865728471140039312126040116080951033054975067826807709340246805338308525654568878815551622434300623456640625619264860023335232132424834536127119897541436306951228923115016064873188742402674286320310409694704759138877656934184145573132182515750646437748097940977914550561861984567148256496743799432327207895209869197064173709521497352643076552084048850961068483006182130187373168705300862629035078279405632159419500657080867195722336651164664217435421914643998122593262743931516718219888664294529585529441884232064965162552300001070460543640428845045100290123021054837096526448893500532200353856558313144815839658662392332935789560749801443412575306337655958268076563510008498812631486677629011574530376905549745510709339978107550285480598769337953562117811938123659656016781062665038654427903717377391266207059061388736456922018739273408618798748445530040737357385193688449047450079107341904331066634486623460894859670684970272006575234499374255686945031886034194981516598536817347135605637196556553536347769663992804917504287505896393601373451094958514472368724881949030999621385306772116994593569269185081320748786311681291551742243203826580721647519508308560905189365212480748979565447029387204048309085794645922679887979662153189480843185241020393330770859907639014400097497704262985704780349008638772926616004398279214475771297908712678917831750182513258440428087007268648703440575754808922097432809744943516718211648313806786218796372291902417529587193869861018022478468304158498002031122539812279697494417824434183128089137988798860892058162264790353758202794121083782619212160501926779262538536614806378657271115786612770649291788911143877934487266787455284246726026436527668689258283915805816638100573641735927630360864788546541608665224694976823038959809543666355231971279671845538161310323027117351668810079842886796641087063595633171057603063652472186770938153836278504285711237596609245189237251791538353420576352393369642805294189728669150221435335438333595408677977697503264450452877857792110609433297195144877061746522425885843176636976050535491610430995898148365234757199237361401898860138581971615458010060365975097200881965105812307721492425717915632581591145225902531811310526629411385546205723521516931156020643509097253950008010664200825815758164143390027128123899237908383029056238423985157612756808945097668829237424941786016459093717003709702725977826213883229013063796342008804075039270201310903261562036751544516079183207551059280524391840566849144925594253999505090426015427944375244555755838181721241148744240354514821596144946073345629506776511973417803790100349309947147548957164328974854307548018440454378857726431209224069710209276454326391317504977025598110221755935892270776987338392729142117451971245209325685483376741358095248989340567573861686583852558771167514747380120164066829686718842261281282501695341008203820448960737809166269525324897307705630252430995650363619384339918115473260487064979715948726370357660477631696632380340925274248472256280852299184441145578012413534976119244227960646332366475478305805860524410830041444524403429550196736976408178699608520341930031189072258771516667817299794904848854429308844125538403742396215648031902567156991488356848527875085595595123975184062109365781372431751402794010153035481470312064054099834222422229866415191736018473917238358555532699697040729661483991985600035396501813971953219019956624809228889900739574013423384826783417343800446854850963148235744993983987716941273755782298493947717953503811484542551754058520867815380620494776270761240913042110586864509938297464352682241082874989308508153443984200032743199318682089819329960060124232165612667007472900081250640241470975146353305725344084950207904664611990799687903009122079457753535938408862368917202081360434259595993834325249156269655711589027603035150563209935223803090475861599218026265886590145498294394873962676449389439410314061010672174648368986327675740906254245508365887224529141397989282831964169317698263363837914150924715669758236567591404758853150596501705610138929723851752909082327390738547607407330078691505476016837966334058315037509414844451648828149212358260820723735364611815329409614279139804156179167378244723430927421246666376980142368790710451485712438245747591352622514935677291806695043855848595142871184955139804975345464426012706519965688011314232067305111346019240978681959819961651474212987035345386483003642713025742755116090146991436754852754040776651836800672084463747417147382208753168831555872869954919667658459855576157434876261635916539244802536663908876800060281342900443094389714862110186412080607509610576964345395885169719009678721209500313735491707490100053384467041056636468573192322532462547123729874565552687860733698988696806166747503466135055156097559749005291172385638469792957068986421306652086024593345835748185793034741452371237093922393841534048940571243986452571583383900740757448207173220468417891271293161608809164534863660144964866558239911444024478724303200953643236011708797535149603487933166064045026621339359990702785876023220674009247658614491995660117436832501401771498822369470381472418179076310706715207842063353743749335572948172093898587908786946395037406050647049939702275572466990496415686091889771441362327259227191911162454039902913920741878177384871105682264019312497339096871914731264232027526147738049949639541248551811124456547664401767053129741523208462905824626639062431287143071729421077119879344276070937913835678705515483923022754022222593754500982191669435989386148106813389197634737253008854060032189936996784096401193722788858694651071467576904552248494228205720121734737183676701283069148485012750192050353340043393542037033913019324323601038192807757772499100279170839500371867857025923180754455624504885447753566459366680276432550876115773425533386974312364105675401826505119777661586875908958003401276293631365844726793899943528398604995596027947989660100852456792844217096502031551228595333798873113822886517284056219929031977755463951548239312874434660261779838597417193588423421447374762799423929527445525779130602795877984127267650482571326586730872195070947808974589013585775130412022166196779208683626752473335782682442247617874192007034946860164501124205162190018179516810191750229785471038929952906045196989348763312265374511049459772747843299757336858351469396958028449315970129921129862968915634756370500279265965741014952058115259464641919790305016831707231455780253772845439244660502882732292683460509718877101748909446585869619065377929919356507558952576522825528725184788771521434478661453423481762995806582074477871898591138052379638721101876623562691223718254565835365838879242659500929155468324341369047123600903891118214282773379187601775314526769254341192802156573345191755985389531766815085826983560249219471070338163363874107009300868523503763923291549604855320792502049415586401206548058744029132215968320908089708896060256818347204455157300208888181154195247842727894048677447130721922755145723381726159379623777532813644577809016371402357146232307788019414898525770192604804029297926374856761992942755462112028376935744323849841771830369743192286596398928140301643581112799666030986615525783002522534253998407024092063167672816438967530115192907892404787920613153075124136656900584368015070228767567769852522796417429731226121939531666234989821395329604746462717072098897138562129141459971602876384834536466570438412139652589506197547165438715159295290952293830715856272682009018793090156305345668160419724280816463320426675972008255764116605071427840208126775838793233976877825639434100022099206305108383293425086027442221695742785271738717905743942281696774412738745007343512478008952660553942740162960211654929922322536271857982119942293695414820687720854029377715414770647603673867920842345028476824224575758943074667067837184872228096868032811835515698830757075311742652199120483240577496656236063222581700573595382824083269431443060344641525992867375507202344439185487190157907026340068022591177728899098840550563268858144146012980483544353105163301715436218059374948232057115153651591472367781267354901022450273494112747014368140559646423689984365224162958389555211277648794646018921378552008719211423309965313377765641091116473703984190324324123965232345952167440392960457134749249742622023533663409950844992126455330620367699692382366907318607587091756191536119093129066922519340919390784244815622031806167889869557774841878435124283041009104326289900964572513199447372106981199578196824710513157631603112566112731861220165275604111193925734909693693349211678641085396137723370214489299254519575278521089883653034813231750047554450619939984877931263001597128574412239153644862240069566586685007419606747592078434813540488669374246123557633144083228613236397830919136271259344791210416827416643771252064123613172392637808384766624492895496181193943542011302698026504115967047628077440641295779168563241010284943058546656613697100641960480376707925584927194806981657545532377005562742114982046359582928363885768539774835857330733394678014793154795857561806563566676592326756561278137495494374492708118942825594270358001383051112941622908337192547286743662017756917854415815132823866411222674322528634136087723222637491984266695594128977204479868069948884739614698204048734824438136273621941709502845064319138589483923332289569865964461577358704219887121193429023403149929531906108850332990582649514023161978307490076630298745300177896802623734688386835258139336582341854014243756722020799919445908281784832561152366883527542682646285842873222314150473821674208754513000833934371638563296637115484066751700021826001550108479904855905362901955632390622583009603169665742788164828828921083279659948706722653595544351851287769590401514441102501750860952123368766370422855137393787908399968777436559139108655157409905242893863664247307843537367778652560420430308968133272887323064817230146509501250451460202220540831360939437087185029705572600893233124229518007427040513295225599101297145109327263676019806450317171933555804730116932202738259467978006682477778146496842123919745381216304661579265180436264928754890694912097105475267650682352620258011966891851112417369327508736673820914135934880546598544695901775510771698764233385637429481925349686008256991447993230169686645706995620927838404798603443779559656629107954377981916193358821948732109401486902237732697777844882070748716388511259457891113305849783012020562633675749154253846979027127545211489490262583767436968041551803198322630047858258929925146315497337382249224469026715509729827244513748176191835071533990827798371314919786989884536992620928559288554553325853339717567542996197280164341337739421064604311407789342035627844546311699662119338707236307704591439798885777536986036338759220595781002829437617001243685633736097445627434832593874921124725637204167177165047523361766425519189668021674121874893319927146016868585737317748242128052119437268210768102774992845338775406596926766550844466339699250339863400510812840010739254842464601486240704118718028928323113853801636054662166749821533822565794155159483590455145207534465925066320112951728252594456063465087924580366362313514582740757972207501926154905328633390484563471691506703417411637460364229008637982786211967857234712141204302406536163997645820668902915375797175819584389108558086392837627880584958449045172265948533091140588192690550905744178734396184053625546984636526300261986553386000921126881741803438902446629465204160108049635771518184701385663209132837883573254975840373201447047492770152567159827538649097008551064580495738944042657649895943561939816960912432520254817906366393541634748645736534838318737005287506330289736373094162037103713549358521885015660450097254727522998710035741659301240229795941784266714915514783418105182473835968423991149687106913583617937905131043534344408998257242706622918329640007670228303465229456862176404320137861914771911981077543000912397587734794077053184776358273122132686952950744567328189426271967309319622148808122840607417533639386837137089790340257160785624102623703387486451664629237350756844157118452195798395082347462564162038138456079382410767710896504156158827537111254868192211165507783019163876221171463282817617007613858750685939826393076375383605301540523939161099091967300120138022067981411075007572262546316810577871904086576159103894821299701212048730983610813908349797046461031901448884200578036141594614423508542729677026395562569038331076856461055119912791669370091584769611196689966794138171065524278246583011667205872836510065580018664709961521979491030568931140585874921197228836678049725906288151772856633444831955781592344844637433742642918595252957860746486259113229247106433386799315299564723042459021079812866572444863026577877495566345131490042903243786035694610199515616168381951427785391525521127888320242223996898189719055953917442202349346739274506146083606628925767510052773079265393382143133338049368738318955756089653470586072995634907161537030131208154247122639210951285417400351989751050015465857720331371808935039094939653133313324424875071811335528934861363766466996277228453325914368476907508387961050032731446626890154766614202540135396429778493553220180792526116225069533919605483034539182499187665155611531014140421388411201800849249411403595814274597865641040799553143568017089572419871149672165913427346877294959543800299757431008697122321982139192212785253819844986223510414969387438590099907232796098093940835748417354555613138418512477058227025130947769524077883210611125498176953145112269691553870050644517817005123016213925118409277925000938440886813998124566127428324339937504337237768401646077150133289013461617761338508403145410094514118076603705907847221688122370867332994671615035932792024422243150747684079171520612557634176113493683275421441725873858281616650120974593309020082581911359527366333089595250063361892724436570530149955727592437822480669449147214390640114661769476834511627316321130015628286298916707503339232885046851369704134180595880817885556637759564691547682775899416712799803248660961379299199640948637207641924821417394950499171669206052728348802462490038081072136241255124002103399965880727683340892354682099450240709929743111981772742607794095215036364284161694193836368638903067729378965368402471753607457402861870533924909434039408853433119345471707012366611966114464938208713393964787545054496297490126218535131252045869958101328458087979152797330107123582001318617750205595386676554141348724617387673759869745101810412636131867234963297735464184271490788929509152465690823681761411628303316086773137158654874279235074667395483487834906790510109703958615493993949216071886132636938768230434713229244944853648117514623378031316684080518499463244752559239613765145303804633345425541844943304264347099249046655941259918227351210036875758268628280915257971135071901687257017159320766971961378744352502526335904977030006491013557841888629141129332245301433207622028913330477040138559450186074241624388784196148637063526359358934300597085054608878240667805195875877899516215954859632392267036508879063225170071393205206928432398844145542162955335524456193346012578021214780539756831780890341813372500797187206202393043440952169754536536962015088269005549440640561687855953942541231338106032747382802125679643799657923939945845741314755812358288617116080342196451312728685026563020963105445378169039541878224043125846107774227077670105798214973765879346329154456430196586071561179163791460836740954974148628013029971271936096093853769975375759334600879398111778165178563976843020749292737719799878725830672579546882618463625863205804929457649750217446979949541951589693813105660463044136188017439138938863487536102503419526586490396498219242540230827368869750071382091394819321008186917635729146825946892192933345709785188008276043459372950429244922325859537408060775274394716475943709239159243094750401903336984282109648489926319904739553899018114308803407125038146337489350595123307536595265274696660885666250903637436486722971251408378023058092265178669170060161160149364062703494916861896897285672928433473003677116462519166725391283414039428870789079837126298596239026492672093289233994967650611593775693060823001722989461183838831059719129932774980242196607885627007663573732208733906736443614871267956009712644546440876611852091284684617586624810200751499202315235572883581465631825137982430370361832196527780431024142796327109103160122918219528950489770068503437361239136604966814956537460339834485273683814671402616438558143490467310129523841557865589960768075738754746095084095935208654892599393115322755826289999954341398342374807781903752294405956966375767158589908337736671130194412059918576060193584499643795370342257431354289170254274605837297389639970672243774050483512634979533806737119455949540163718312282039036880022098978583987668277719798770524756373172665371202514205403543528528829326689739552829225743618107214416988160345241255980661013456928091996181234588783484233119846456864327445447988264308881118808666146985755279011002291667894669456408425855524168708986117138249417759521634333067426055833045170443513109261453671428916493619751562243779595758941791180958965121179223451270200941570129278956983384452813511572320498527841271047101648110070024271890013115683372976156879948518936525658262143274118652184362480420022639390421204328261731883989278832872279135705787070068574963777961578813545032575425177315610155316984190043455776518994274837591422060741661081785609133747636673598067207378338900832067430784546553819546609388810947558681543699226827507885683941822465735655389711277507656932984583298616063869623553689476805485242683863867117205230398307774880604780044573791175282130170775217870936545319267226475124530424802045550573456154590271836410999775389541907655983900509605453041727683454005615077091986327131245719855616142186319651926987287308051594422823697455833450216785655289316932521775791161081266043496612260886393501857474531670867456354063771040658891793677831394453861751430940474164685080280345124965744851233601187772988866633712819371610661252294112177516887382165857846345820201478583587353532058526582469521256415236074840823806369036064357348850774403658641466404480967314018042420469201646788173982980614080365350703379636801515296389059772540130100989803555082910281009810771399259321295772289653524615393123494485320770999509445109226328464844264704567520871467379157859598507631977352146304589582386223932615332992158584200528152717377996650616934781131481731209371053866479006057932265997268775543835894452054118238997803863932007725285172734443581945258218244811678536174603213935680463929619180506099412532683039604268406684574599389856310519367960389264180439226338455182702048432763236559340526023219688492846865109483987460854732226450210387387704601634085488979417520710735655194023773558809967936265948870340739351129708092672266815596908207760073598447686790694641992054079254511993512174474837101319657226763015052098924278693453192685730046647889219029767184713828972902803323645915983635450752045948070117077405287949342326994468949839307548717495946771837140029248504223022921858344681484250040397774198506363083654516178969791463755376281197850718093280497118707665439722443948432065482837245032890312935587398196230010922811318084385312761546369789044281391618503687166882837060821488230365442315644244853323467931206338789841322124073427254913121667690290643061169785694854948067107788086166058531387303210099334458492985528235932522060747142900296605836284376199151737721109222738101057562010533230514742085133747337029425169675160700220421899802941499422864254069998708184598280056263722132630576381145232008541962379474925035537438640132521503943358860201455070712411837962525830553191795408040985067810388300842300786433363966702160190831493905365358741478831206635053856279383858127751810356924932620075577931547004740895489540708718625625712167796182249534680768222662058884706782631251035503798873398924999753895369210812488764809338786825199192078387321220015528217823428699772205534022568132947177302561720759157302958180470137093191244449213701007166962498514024705266058276377109373082102900479415052155227257104556514211356249990972236494024038325072699581230056116102337858022636322207646381624573622057229873606763119377418919713342179401750886965422106274614257649009666021778331019579836405075746989546389488800704699478214180517977406164054067626492810435072786903194123626650006281972307036241547749229176786377081930689920769479011323930711056502313698303900196939455156659336074076067789264239533618969192089668024026337266113300245819461496825560082073977782300290365516906124486516199218219182243313881308173657658181347154300962304649549258094625216182169547263404605948388336983468674015946461306274013735199429347533209152644971627756321301637419675942500806583569721986099393887910510131730274637541271658713049668714820002873933676498620012628763416986697158172786126133324704431114362629993271207146686917746341421534230232658527588625453206824942521802121980266926158306539100311621455966194554813385235820031847959114611536858155834084939374205496477375567422249965289548045929882272037334891757944271937973590600429553871069422468824586153586866455136406665339541400378774834779353238918408967800426982456900665245151933984698956657861945475369593241093646743958310609537186608554752774908906279542511585379838232355934384279435683968411654132787653724936313413612647388686772383349368847179579117186908889097280476313323040652558064568340779140275338404905166979628526759737405957990769559923173812321385527333770421792852826091483669229044848527875818378676178109200778597452164060578317117573316447641372358959212979286689789776383147356657452609575359228369583745437039655306712938933123735936970093729446506875845091775140072780623423877336886490846924987632866274494753061735049820372797447308573502146118518455909189035209537425872460222305431895910299686915410613968121327632354769688355166905335204433244835867025767991657160988842223674812080146477237157191098613733569085639150557689196711945098893230091039398130331470178008115512136084020077603997155315744821468401058963330241105592386344801122491954929293610734010334680198780319596079545278962174672470052979422778950053898176529900323695959623118604380966257469906879993483783390619721469267246869851246162162696465233004167537476573723302181611685684557879180425639499488288057698696358892815740621354072765612315037637628025792983681656074426340789050463170018060327663493781158135234178909958389720342289203474719519935187694343987578321756131129240865339657121358331188732980886716266984373844186357571793646492993254438499713898850711989184241380892851822036013592087220999471452249891341957791277950327250889906870620103313052985192932564757376671388560770584988958690663967700269754137241008052823075147913119254226095857296585909936287763278005252269340189212870646117097789398825053689668481795205308926970980884875170310957806909921637817053518245393060182981889090460010002885142033522292658448946201354788622347924741637357176652510353701327220684736233779613731197299012007617634386251751822054941629670811559368202875458561019878078356007937563426615606496996833082755167459234754826115107049383568189526504653338192523261464098135900900308615198395677052958556120203202053252736293424325386496415895102343582141446737961392509590158295960135197183057143832457795318722021694014117372302461851724684647290453232073825164530872901238032984295920605970932232438561298984443904146767034235155398186448282907401661909860458025223179556367595685558204636252854015034778884263985271372063106537145010265463699581821685725679474878998202282964888409621211188909396742154552332576991029222640581455029991843091350228837446102485225560796002736880575597749901709422476503365716414375362828633522539191741175982820622673803466211265660306223255432956128918842216783139647644989257410662385541231455570213633151566200735183943576364634706815672358113003537697334703782547695282151847868434434346741602660148608232690911078758013372562610172088276497855716177213523921467806777526418909222970517406728769305557803325666900885848921746231176360880651984354933651997951511544396675666722656587361368552606787471150287117970867949463068389185259470430636348928720394794283689457119751414980240638633491193583776750913480036864161405826304949226660142332709863971294809550297765975642532024926671621103925664875394372719607101397528835448178096764576908595088963959350290979438098035741413221121997147054734838441870837345115332090374824569501103811556205891798694918250809582667770446173479438695946076989145456820834163670254666424813772130923576977538253099690880147025842023975585978603851906775230418743424948125091330551715495847416047588015632232651199259310661665493376681154938789862248032491520868656678921918313759516838682850026451024647953656667676160127147733240539390729350368114075807396209478820488214412042023447126385916231905015508904717388649219851260707455740935314225317746802725920344055044877493193588990821414705817541315727018071281468855443718208422962311172536047304035364064263943811952062447948206331076121339507519079899977720181710333708589543943548855140411574789354547836520145430693826471525856412758774803739422238055097005223198266260132876035226902408297310115546543657899208996404462761508352793627671746989477283967913836303246861440369090980135395497816380224721858628508495846368813498102025272727402646136250917763800145647853056060604823719639544059792024224082185959314886960936051500538753536453629759003188372825173932042179004975070082453699669633690106220093971842955219830720842127815590486482036014339683229936616034305250922467794165664095896629817343231774769258139843220722284569877406852953976081562641115367549919969617506280261192873367724163973626396666473377349469751940575117315280463135995500158202273430129220531359527844075590508100905076298093354319147801514712870196200295977544431047758382302756267265137535451517126209282612140630598009736140474126192364630849404771380232080017452446111785294316390023809428566473434603768317355495072135111784113639470995126313588573716015520412569438357690811159737573893433842476512849440019331734170007455524892743410044116507954205462522141367285260267064253606371892215088389059050018315359629711684515901382139364889872762693763215418956579441636083043976502395441996947269973675195546542279422578272052151065616177687379421074236067825848181340001483888742978558934395363175885576714383989328621036966162861311519529656571457776096140763773972103194847664666025609890644919772450988130918282371828860068543776351594627930035291670393478832001152339471146947699203241081191180981613759984288716311757936699536166193872260050858252844912330769170253889629037654697620800304670790146516875201803416975102441024634102836316462728206506569707293315623210134278835908016718521379636868283932507773261586720770405980311641112438059006837220569217150357422303242980180146128640051262903099614843807728429388805108678176717120248897696617552531983107827211754944387160669991928928797921499775918992954188565770573553076701170218005061113584879574944195970614036894807101898982907417311858421485912103728274093802721130825301753380225626988004680593963259877124964875371197272183497080097601414706743981385901319228603229567369401736557419208920835250589822178613337296753691532581832193514084124570108048808393092097593226640739750199802967120378704737987005754346775251678417427451826085704080878507723378945663691840183791925751213782228869579420057201090709652629861946783270383342982731385025032031309429751095026610222224115927384447272816366146812428292352155965843004555343774802635710222854425770792413171814296810040361822893957877006122394898345397378106916977458874145252468889141263760753658036113081410264324996357703505652858180735218730474545494687301436147454122071406825439414428272102996849896181126165768926003488058782360111829063280969452609842939173869225419719606014986338705680388019322673031582088490708171756924168436263847519084488782316095845708914615474277904049370437101782354487105424855330773368475276875207801940435927710886383397093123433450459465853944956638985861138224004201706282139327627071954426507802774103897928914642157953676910670574729456743327666972339883014681337811678147090198939309893669610458281030719643975735078244008571346608472440894870997682277480551888084799596671710190903543458582472876883318514552683143071467257284342840852744226640357340356633735735818289618315784998261845185037003036880890767694837782817830085390786023221825061298104443987079487767360399794904208145484351300723861940386515055509156933754638827532189936736744212428741399878874037393121158462946154481212185601947916008520288379967204555319193035192395080191458920649084072608106416322285763823396222299886902838946422110725993381000245917019719883749118738317860708259572142831919180933339802645957717944241914093621891856365092635616554767695074300218479137902613482918131057288037363619656675276430789996392532503036508685992365502493904946619308954268104352656054690006551911308932047502346213406859555160609841216990105830917834844880727142383325974679431199258640047556130629467118498235782933563192671300002947678002182237369953524819227115342047744989442568889269236580368608512863251736378030047325698830439260521132035573561887052715521033689987546135318739693670946126127172604766001491869050240567360976596023696144371996822102628905619809956982158972021234604607206756638092091356262191329720153017411174043053277234179663771297914291303865519726924945592252753082659136048558904233756022665034003516906261978346958687753724849305987576104081548518921007764214354415449401208178862469368599915651809694182930705261775425539340953448979610325773439739117014240146412937505589139288872818272913252147865619397677427301707018083050789180070663808350047871628895367714522627728428826560726777544629152166936591310564744718327401216300941886600844570564098107339633352062035214194851256757555373483419009351554984143505155192265492284565942827094033584285081259259237542994090961988545451567865741188037033938574981572027989782336076532947059410336916972404545530868278315298676162676576630570486134258694526075624335605649927592103206571968648854621511548101038146603350581925399156365463954522156899423175243247295784105636639542669488265816445876440192365772734689613968402111216369531244457120287194344595775819040678527555074957476213481231732964480038759955425848556382595432270631021443700809207857067158726327984097082373462630362412215032388135887801303695034040462839989430606667876149726126768700651408175595991880618310588428916131650415966564053860999889444874976580724854185502053140932481496754559555925276169424008607206514462498823700939205376269025017451221606425737010809108787830348193207341650410039239404137523233038104663123404559324970702545199120454960575455091855245879340319166996827055953760932377746264136371996942564440112418765260539943183287674677009562375232978046058764335298929955921444644260943612136234743823345238633261743983732452065155103501777451263614327742476631635285596813614251115663079978352539518637882630313677685558067113579827019228932829802171179914474134557026874000996160815502141675410372517943716796663688347925554380776592881787680781714355422010388312892853889028916754766264201307798880146008298783448960339631906450809007153126740243506086517571768026530155591450063046729767011300182369509407009437482735897710144733056338502295093428316027599226584958103791067484037188451859467574508678516333038336675249739362820406305986456389821807785293232306081606999972951968982344240547162722509016962450459155269398303545337292442697863226896824484276219959843436396892616504049847280228616293361343422972118454065259802986857547170448182812733171029619382855251779510144764549450694921842720826246593871580174717644627110887275160516594156236088713898389603909375491521639601484344016965903644041997746659946202106780975291340165860703321774736784928254148368956082092202702139380130647086284233395357555675264121123711128248828411794968390610662027088739082154817376030565051400432951954060131973957160694863168028007320973782192698067337398326462580327044766578923073102312150465101518931609149708508505649941106200516133281118288240421979415155990215319057754264341561399989859138340996816523883617189315848712139020823972162167525931428886019509627710327397146881759449370180892488053085564557688579013005689195665078894341124054382786285463664075150610254554503627300183841074767948979219646279372272412361165629582087401222003221347505480493820225936715341802084366268829852088647395618848071632896640613798281183214932826662943045036669185656207908438664731550021468055574493438047166878325316543783243227281761818153406686976119457253760886484449511128120121130801277670216140418535787315653976618667637616351645671502063613618717669639900988736842825803397064039786524626865777954727875118018261781061616094198935255485016946358936756396811676509470373770540002620953195496044082803055082218915308925500868158295017226238499448866350884717180891296971719419446474364117813857221177649412014317368536195353570647449231510420839829492201541806944409628839791000224991699944084404149508642404929321318805319302415435721577669798573488574471472549639618640414423527067784145286667641112204724197491504514006932861220964963924996582851283437559864402740930663556161738232174965682376011447214876763289854293126799123903766716798163130244016011774601199814535248140803370625746359379884102886032199739994985546114447929296304640760436965873837742383096703593017458177702498984547063729907329268931094046671327396353999032452044686945508036301220887248495226517046410337964010902693146498354735269146382946222453724115328047164476267458009931807510979500659623117559711523678595675879785149767620468540248494525672823259385984933028954701887040915647561646509960894149149416469740086862884023987593880593583245799512572186338610302953405142793288594565096982597200090693190201480519156452066443165688070137168785350429041817857343056712808794899336953452010394538497608018005472538393059683660773748718195620761114796298445848938133915529801306691033338793501863555552534395372276144622245819427004584995257046784997254690280873164546300880736073159746415771486477484440063827230335560542489752021956300517763854928521888193354442605165687676650494533736472468948938083805297736910471070934560879458306767652588125901177932549050475210321444425977755927434408077133625258064733687812298162208285808483334194251929467963948807873978571054767312417069161043261416862517244125050039546092869223880264106180929423248987762820129907757787060032308389825622477216725387632160511892134796541879396420130829774900207026553506705596136162055617523272675526387494392308622141363973460929430724398424224968660041274530654452737483016645666254007904293463103100435994444788993023884472678141788122987615447888931719068480038614772427451884623680320358987033539813747661605344401406459503941356420438781670404689279850241166742379906937900431753452896521365146166742978329850286644731289683193409430751373398050812716033488674529325989113528400533552516080356420024739072380124620374428912440343948591507864983747470687743552365440438880505355534580958993784087497498071514105220662683490404567031022299811586756848336586598021375874667918739999060971857306196816979556828957311826405896054833602607475802670640702548956952807912420214771557638548883850793073184208341636196773115798662725567014558042415731332047394968264159651869023040860668350818465752279444251538183627184080538184922931841090809594882600399978734224736539273915894787051147040247239252638702228993886548062584907779396906880030049609457133413399376355557240086386012206664662249301885805570660179464380821288191168149740620126925230085498142070219866979670670314636614694735188550855198977825944039631997224850124502690736777329739247181889695108046068765397599883138219076523027355512864881698541103812205205804163695606371935474118762868361915127100328226571505026697878421681463424571527714188232243288958195199749893414299796108115842691609875645247908166520477139465472380381455876502650867975384971718792172860784010826023658513374022137377196262320922506865911101326462806870486168571243211537172382096863758108973564419721177527590825257675348397091486862838059307761655391900554765900433771406225867152477867099619719524804461591860720497957700450536566668290798887359059333173001944080025668466035393784601497830012543929527642186553695242589026620774892430983018485245325279335873132582919001736643245445630841838951193145011935478718554621759695357900030188322799551203951404285516864003441774242583008419432827041949939918993591804990170382040316164330296807591412619810786538923871730389799557537065228220320137825747041332646242733717946323973889896264112079459680705360618867122393302800771652356064224861513960909152121054001201855122674349063048727941569332839973144948118106788945953968729166425255001737619161345043804255821744309198432615002042520279186184920479756032423107425096136480055165227536903345979580940820813345803554127390068838426143838503501762419869696835399292586355820240098810120508469140707446648314177096702096366329921621409563178393806173739023167299540048201691557394548195851284826689497114423852085572665697170988632848838769805837686719043300595726597505023708546492687501055853352636685284511097814922386643650711966366689677311498391704503914835508776557546907318162409759896029655241315375548991115587036041471987890252366413253355433313323743911901483051839049032667719723005630121978357367676937620842356994984414452337295365792193410216647046522149869195653648423031422043745410467254176154018431121922451590914228059259285732987416273058458902675865355832378649254416413284007868730485757921941399751365623966519689708867486082038052436746458332447091236192008981447335721058287152571365851259455674722997755102099855934040141480616342635645653953690322205844718544724051490060073471777944349173015924846585786272094787380136706098225574986926335003659117856413630195586170947085723953909219302977316326643200273994690765786030834833427458302035397642516328389999679075198923626852406961695935521420355425572583164213130898001763654333989324704896368692847604666147116406333176289648395375282063776619044712348629882341987024588555866358264622639940955453701605515625973892085735134621297566784919196916813752236087729910910304211900089240230005773875608489056517538979605356746921975716084861648798311487616690350336793770139158321309479350010787196895459674532458618520229925398339274059967004893071730187423358207972367919040209941194743064258798523993216708324206977118689534535010732526410954484906603647518479543165450612714085365277632380402996952670955273179935069894222242233065249743751169681676365344575407292513190937005263234275890572468020297073441078177136727930254010784254560113076375133770261994765017699521321491499695587059594015782756617785413191826416658120721727013926325551678070276927464039334549638590555384969676603556600046805449688008436793797439197031908897621251640222629945632810279248669343168204815710215690901603408518605130330307491915570759495093264707753523954937506492188099971904405049604755287026265658065707683317117124648845300269473332692027911938467112896096788168786266147071686003945243384151978512775498674661865991807347103339557395132822145627710810650699654601408770708651805109297324232936371689063861087965474338927789294392591843064693546470615536861027675514062796518205289606845068856767485185564058169967590535957433584260936970941994211425015036641211149569098436549365277793698032822506264084536343137175866125891484496269427129478617617912497498033588424839017187359360477547239911933497993427466906522381574916112848870861349144866935996563988087306333689703673996867026653630132270792508481168869723582572019710841321531656557781576375570719702512368047696083145613533580097609054014101280367881603399373723912356836685889448235247201026689206907211974027045660042075843361341396794488078712115533796017604881680614411656303855846719387995136118188965940480651736213404450917037765818152720012244754120280641785665099419961286600936087010588833599827919561902347344066885192983348165087989233177954275509650898956482017791908850970550981886171419970427587418655367652020716566354474424671046072667752487345176001540803207452533411216456054479243041009422807168117477125126426769455837905903689119914762715201096035473583378721160856668884548561304841930496796498885336528145960833312949648478786573076724919262570979428721631460131060312998802961120137620950652810839869589725178764841857054886820612997576441923376289647049796350448040055903373046270078182896369142478191386091559369700910868231859928401624391584339135830551509744560473888079675497892317141231147208138329663742960816492207621205180370848671200939963644487456861646653047487768615917129269136103231763154467878276414056799199659945522667126477418344513455634392137856832366795189352102567580217068083281274348158893929626998502018631775933503042567563267587843605017350972376925931260811324567889842573980733736712724176809647651992458973330736470885818111605763457629026415834651437335187024193586153560527959394744171373393530866827895458582926417581271193192300010142341266999816582946631467978349749672437476840206962916168667524392520256588711880474684135004279918950786001287868500452389637386239878478301970226393637075565801110313001509990085990582849574068809637153417218729183593826734784963500671737346557846114826219657701740947584046064688275804057156315524106112719934613626647795691444718834515915569505741583007863219502434701386387075242672952991444085944122702555754997771809402811036012095154999515186740557353524401517570631235708324018088559148525199973839620189334268856018349446045059544002951017321574636323767935128328397144946223802320444930242549931482831773455756015723935975397934505893448722090157046954738764629495515093014838441174174106557152045475694286045277801552191459775102734781297570680255452876133334834199516371352519825741885540694508580955543251560557614188156466406606010984986807283888276543671178304962060256085678827608831882486477317155333672738944575278469216253358453260642006754963777507867094731603662698622102262390180974266599005773641125069617816480925390952572581033401502545775116225328431556503381776926195010868148853730831168897829254170499982261846708933953951277287874220956437953499372448050894850591433000191586974913524984687131456339217857391923807073739324790042250159615197347000641823142780764976362109705599298181947846740338572983596423550086045094750241968509455739486723500655540068487012641025638085985931794720508832866444361496018699053812873239993488257580598001602614882087736855396315445487083360622613227235796949828533118369784885976484778705073692763172598013901047062506220412000096973362984752765973685503412749427361496379480155475238896864294982972575365542849858309771105282739129932772265817345291674887783414348747705673772164894998548480837269511862794188910301177832064386145643643559322842727129899975961050734884767808319512123189094061044193879536794264199833420030472977151967588069737471378416143469868340356982145632438270766541043578083785359963848088214907983606500098201149748478499948416020497605157523930735394862114123872808725550531806392173828005866546668930752248806022727164883409011815319882658344301989746650183209648547732857018768309173234806695993259184057675117553646955882184376075210128183874243608175259796266531788781364006086454504762606161320327170543722887641972678130724701081625109464138603159396556356967081220441933122301390720793473792354440177235547404333459213184180169026816391733595416486683514870156451020445667401056809051296833985513409541617773352016220510825795088756664931239132826659760721700256673773136679191742784242749015586039320773618552089529106974237234317645798841655100648934793391080668663377405863879837449133065686688900354226274344058022186526857540165843751786068992473656077351231514878732009823246690795119479386463511407527146899325210523237001963212064982620353062049539240878247312889704932035211558779209710238713262858193151282590128050185280055661298077040058307668779616169594465892837978041875961012708100691311525678555337277870593043532918404219269730829312874113865097890636530975468228667348117050432838831984812242521018038469313771350886324848448351713694244843614171595960815342646627716869178798744748793703820285182868409200472161345000118518046753172137622965614857097491307998331603826508717050638043809502660432750501195006434411102787271756370675046387958045382030039999761701850864909932364992124993555145384035827550813275270879020551331746151776924349816375394127358450217852783440512717077677864003499086114176223904335370120092126309174523650556646742362550600543713093914269564737985578135052089788194720142440031282418595254629099678539448279711228801414229442054594129175798705314111626458867362778309769358344895678021475674069079859614262879237780062420635452415181016818109818455645354899949851666580123281955229129891951973957921088159038102957132440843987009329271689021450670987748670097768929256856949918089355480739153366371509661666378422959741433089823155253105269609648526468453885172615065284843469608404200541664166143843015086147050914913450271822494304927669762609121627722786520618801932512944922253866572784881454610274907072290333531637495033024556804630849438844350992028793979573319545190735242718113345323817819569243618104441192304521697279157336809506021400899746202891309923633574593220659241908751847649152639975937720443983820302914320873696377755930221408371222526320413818897844860683642535612845956835451611241802437771713318100691045000653853518087656108806956606565133287597275794236540832631607888088410341519697037582064271046212999973407999842701506691634573923530890336755962432537930317288235690644817042959856258606724576263593714164782670736389368065829110011806454170565491840730984834600006178831684143460741564448550314073644486545137065512129477379857150357384158610523570065142201246251256354819707240018837871475962084626750180717730552308253894332210302339637756996860632669056297673946071935869837622575364797221444512047349414546610399339842115045873588381490540296768415543482327315245778625008297322338836098724678034352734399593627077408982565244778042776859102566621112254165684758304856376756861308780374837748318103774552045788089882012855872346411653901948639798745996410854292245679097545675037193871492514676513683597804617948235136063344070656546362634713152331271983442059580356145819587738000906790071185636473493657393448659039224935092412286209995348823158680366913311265215765244135810381898847316094390593353954039751228704195727070297596799048179106044909422789798057790869290340475824177830468844115663740899273563297195506882956087598522385788495851636287617682622477227001472326699453364585143039912316497995095856873591228285009951405834715053242371818847022975018397407644902611122133464038460263707874445371795159077098014140428606274809034567902638196079973802855113448497768529001546990241083436666438014391140327470641459035091964222812098924247455661030075878372061676425232097065495489547166061060204444875823376028774066992646663103164269636180424846271448172524058454548995068187974358125047306386421784907147718056927805221036678692229890285045462283061471300462118521582116912893502350335056677895640589238810001149836560080388234001255427792806592326516647253018350634650874733111806780419964647239556904042193409469381113012930682287330597958887629400969381434326745570945910553532071803078564159227860487785185023700844136860511711101663360184544656717217241282539287025810892823906700397006175386735215431293517256659973158603466768668865890880085616165118345043429586918133802085171684774332364459510168718384612518935293581833439285927956677997497490392119066940965844695949113922490697499882251139473627586688626170773195254390583623779884405006316192842751407885521558306624085716704487097027790201872989730198153573692243395064011368445674027343592940447024263500825919107683284571116609284883268293324442351903405015297768805358691103920416723474423413659444056079680492739073894942185997037411839784157844406321612375578197265631732708897878666675647932703843107452621209287019762141301068888404474345183622995066041205636060893307576705139227113280727309414408296839104406915817291589124544819881590573755278032502791009656652468199413741429094450234143330126919761942612458794182280261898769194774970258531179111177174175263954152910733734944947668327772829923107740110693157932339152715118147165659664327655188083598235701666508781402817695310158876562865170986047976754468912632782035880498359575481115307116092340804840241657447775687630624168852988497847183453082293242998357802971447575945456613403046823209741278333450337233843377965866867887265052140549032650907147576252903216144715618964458938060293637787187412052190502482132400235111563882707403623730692699000115541452016574923504193169277856264582808780227285578268654234923245333726705371136938813971659585975703751205871875264660628203904185816290654181054987818905533572976144520446135311354795890793732364850837274121589011773116341923938944017955891897297085088254834607212771206436732763669851183247167114888042530756824208853405054004603495435923812269098711842620281832005659937862305662791205599373040606435144750943130038168845306373635115069234415269198237160872710791003866180603001682985996866995683230798918639008158063428208194430531985676516927439778613873745686833394267284012497347879985411022064589383397960654282643212253628307347216116360415410180772117810780593791982616636638083424335956752535333421885773277110018538882941760089936052732606996006616587114097569965554008786667844308244144431621010870036333104820151608165713878190017623642124594414887397469452671132585116608075170806786295798600299374420572440954835504528343785866851878982464993054295601850701546267467601721584252221091442655341365659457309534827804408910993746934700100927064693405951492986456093877857581178743378823761212946046351686969801027798449294488441089301442209401113769452095526044430743692136644560169837007546732649745764180167097851747764970562718316163614579010664897444551207067810353544288046314937943010759033143203575802004037670418763588468149875811917667978584778605904899857853158029298749173968701019491927872431520056218764091947037733801801063534763896280425185180020366715112862467277794764444858711119823816823610692930160191740554819905829588585947522744335185384376104733959991053229353662431240511195923143221353295084107848071276288437133027492499450808716204811176241930724568792190823170521184296305271102994282971834296532169393123208603736150537105466541496591376221816631854002181216528146400523482819619587655528894815626119462492011398186512576633599647693127167494967176823016773015444921868370253002135319851524211893838313784691815065776441996599592566166166398502882746837410077620822055740087933761947320743882159543872669965422419274645353720527379421803249699664219922454207435556761841966850884724248360537404919657794259099134478780038548676231538656052895874312804142935826792508869821849190002623032085052192476835337685798902365131902846031898615338080905719907215858047688008612314928162525579175252092762664291624567342658692735581893223950993738204278262397970857538073729568186670321618137501750117433827277057742288260047813762905891557644405006018482799159573686127458703403151645017888055743209757238632235303724306863011456659598462939514696762146495345499542432709326781084260414959533496625153611625715566247388057112831012247152573754558718484855383433819200528605713731902959598629447226229697710521132992880907471874481484063518122608028848335458102263166598145278756036466963026527324732170380851077310380530649519042896363110003078578243359876820871493917189477098293061534474147654453519995374465738788888573923224182070214897680959992847534045420563337988463813343077600048697015426039912131586966594182598885902344940305394864820391239006706786563414754458681502546440750262558349010664279717355990896269816765520717068028155469051784188039604510129793649435098551355271968089998547326904230739765950110695136669152310083546365326224832537411724082996190292379733986941022969906345909157251638391217784897925223974791666372725424340938464031119316450983534925944951950551344959982017108217677700293100444411213045332536436248814682363828285651101894767131459980215538465664545446146277886790155373256931524380176012856485468139432310753474470570063407365713841424219470274382116872058335363411959652588946135701753384357735651340571849248198520230868025080717659852404080301435435840135514348454520774812853945608676725581431889619295477135293422326176459864203781715617657750404660500583253269874394643888808798019581184251094360941098050104046111268744207604137355772840074154309139814867091580250066339825905659612760423116237415943095403662344604743938346427913603927976217384836078909336677109528948328331302124163766845497300222268030552276845413805206859562313511715781221997527065404790916012378476821882997647713101070608668216753513793643693395370653846593681147609664011330406239052519281563996669228507225827630209989252373778004675181570975142518427050002590657438573780716123308345401020519586337261279387110037960367066594553152907890504428010626947806627545750306737663606879934465588133938529931520233106092727041740377609385014786994178251878652713969646651436775805617816453816532895175898331841015520944258042408956953728197440850701823935661146644141655204547921907265766474716025017803172213853793910097051488732362011089761271568039009096292032325419322561484774345364613867925411095960538610139436990949449155418459727776640746139268833255973872388484453082918119141016999085499344124877422910098909464084786884905334959590275989559370169042704312439599106271372452745991635545720565213113650040036557664400029858281533139952438873750333066851228237492454780480449165742855797984329551969321775957516346133184346774651359791510115940050248502597675930155301932283882956028149126827714139581738774197389034551513200343286621037173087580123982095063835894859967093816841866349852884746309391797301119077399886432894451854807881782774057657588968802864407619132108815191897717874056624619499038696393028730918367997127437577388734198845719218340562201466932502598041356669583459100429344970443739078991193255729285930478125571821457471594429014301593620185465823520549232804931616340330864186033407367299443458053759635547758671973053951552088341206282228459726287711537661377006759361733036695429513377509119372168475706086728474647390280087941863974065583478347223977909651251421740104258085838392675683251439164108450329732515238114360137090606183034184579124014018411959642611279999642242785088718287228636430393240471936492724345485683624657397092454637686139863325309102929245634229054552872461471009453613732149099318869703301447480383241408631315102960598167711216723009631205993746896794352052662433286555454287781435615249930015364694532498158938818193048731374442777906719700749459244838629783759786399967713309310974713049665575215050552358205373363927043442156360197143232717255214142159206450174080173433495513679825865288383868591640986959061097562727191418508910374503225892858298314140361451114154280893306005161396437035817364111192898926856909336057300845330327556600321396474454723527076970218316823773573084548174065529093458301570669424067091711761733495109014521382745763547105636623320714937330957263070217967779481896713070316433646711733937152453036262340060010330679221774298125595757766577395492918541198065270725922622050978369237872684665996650513175423033992280447935812430765756068308313048938873029558980634098774449931246030058398897922036662136806917609979759100770099526446800218436053893293904164254040940955104985489193945534929273594736096901903719178720101542920085630939401278230976733160232253182413443672066232355119042771598783497419957634211160918282043594045791942747639238562530260342337119501288043481178230562951092565351202424385698175623624586621949949458555950710509068055388303360170788608998195241845047689823315342481653705673634011592127531397058402162513646830757830694089131451740255793842893059234391027100927047166285897092467328371810031394216422831975449031729200387309868416195191867025710031531175545342628607856622885849690534474669387418170855140138280370624343465284657329836899460642129673663818686597737284434973193785363464078412174199564545805772976171936677635478945516053349849298562386820238025818914067883568365933559749760309709797286290546195391727008458559074566352624000058098305961061268895761145807810886061671494136817283446272071993015635044897595324673539011851960881636185263997671798027235177194644366022854474085520057994984442660522116288298290444117205712919054603432538812798450727636420321842104909255986780514307167824133717418147417002702150525214318033666316339652296844226816613643351744653828294254164686213722940984138045341963414269267696449697176111840419391064616482639046947677849219668377666215464588710254033732589836634046197517784955472155327076607313157041622217511305416528338228645000243377170936927349736081415310007054256032384098570096842393327413860986770986250837797890169165582870653484093967035931736084636274473756768305834331229518988342587217186302571906451861458117952586061688899161436784072229712370290209605129891846413187074069725047732847564715611236716213226387102846876032334711031038326224420728866478595011594321812893951915822808877070212666098442546541356388107327427820009838888929932123157779817086777966422460734417819216230231290589455407965026317439886078470259881128323360842493411722111060878402280264195301173534475666151638528581325096925649327162210971542435777053129490401927609850705681606940614222802579707576726577684364833844611600825738987201322165524222139904841653417709826703314357158367037206998773192394402698494747071418239023593600954845803701931545129238855730372533834170221644207970033393710126638864279115920539981927877186388957945164364192013554205127221544098952569920032794260219359763255206831027559189450866442156423708704114415199491560753914057300252823884871266784560601745454034697961402162162026123311382462393351215149639786812161954485384494155208395056861175687130890829069284130822460957674410716392675216563062354906812368569962711985110106291335838893948992876832322244475094860171472481775095468325400397062345304757838610669496272377820100036979512225924696867353989750996871934893400739199466880487794469376016403218834834755256207034857759395786262992838192457907965519772293934385134945785456907854277455099945722756601255579323512909427233844228439827897160449408562560300801553658474435298127469383718599887823469653595985265797132854585654282707526009584483073553979265414662804185524380007024217023136540397930892273563568939745105551651774007180426723240848053106796833228742979975867560563454829855561540472056347859251124278032068532733218565601638774068634110752087120777115024603054843547968063323450280666294857123859999124911415649415239783693052911143088595907249960946758024891269134992005514721077998376487852249872113382731054317624141841994432866310566264114751282213022832887785841530200179036115937604710201834043039554096139417409518301757533627466107995295186979875477999132534801713733760367293367810006796936644726506979285349102032802266376162568697646948203705225192129651432384342594361161213641422914534842967126872310744318746272396087759182147709652411832956432555657201222304166774928869417102822843703899524909003535752180852600627950220817828406297205531721347177296390413170363595674188637443347919942652259150164619219207295073474824974100519039007850351234404600322575659024325320740943978078524002555035158572410858423442688142041050395998258404740130415647051579685771616570149036839584468200703962482597031843628280392909528454506784171459049477118835514380215986787049304228408442447503625359125720933168710066639269598152383932188895674015574520189960498606015280618210216581201895925235285337766613755682259606611194169536001452519584663799955426460514289198974928812716415055153578757624994911944595398119696787182965644667573779262632814689245054351935689526782677241335874560306364775118952686142603596476366390250065710880786738613912846325143051131786736473687080185618768208036672545652315124411607685104650196412724880197337540568658519028919583834683192066541374288815211470244556886867278617877903644201867774825090943507362569651201248099933573977314215503097235742176196535610950850725732484618400483622010984367006251583383664710649120518179686286019448455426629928316746467469704705846766058887474417025951595011134615331750752620486466194555009825509021137416709558673731892498085468264528847337310532530436908869160680801745952337759378802436665505308408424514115641025622885335287893653886722334273305233995663575918503401056350412226292599967468462267273365645650090979629016693188575553208316725673000588737126261792179570736009337820845069285125324764498809303853295253275141980233280633036497064638483037605124232957054325448014167773767411436807022750890996650515534115523587723764398433455240806344216906719820148204448727982103120748453773083313457418127042325777627428986894788148012659604546439138516118738530814161792799358956044637562155742651209634752944678193995185642316592619995256205304137387258079720365571661630672889106145055998467322896827813413827190011903347039292107481302318465029662589409168010378653060730679395069165839382434566647314762522278116318667477679529607139190309706108435502286817197806806674325255464469166385817329549957488601224820416603418461840714000351161403745751003389880302293674485166659693352419616772327651333931867427731305423757554813787458094623100295747725002317006281674827799850373184978258610069901435709244763054376196804170791293108130091822907388135277492012449374284334883214619174607453598301605302893953984833425455558418182236284654144297218199203394837816231553368971550409623086868641985853163205840579725286705605033546068367435384778554804544639363833511810875173592635214368961112327764304600893367741062248232704664612127992311587227415092907121290303480997257374509265917804508874106482443107275854674259827741390126020044136224098358079619388508995175130299842738943141708104495954181464395116242254452694364624440032069615568411531870013925841105105257876340976844642999790869652349643825312536548629915631196097208807265495544994288583995927924342145815461808263544963223957801697910940844910389312064859284075585880369886922911233224514015801286701224049731271406971133344031612902628544256302010196154153979743632065741980857211087408123246046873325779001569792192343127454542715219131125486577339313087055478708203919920194344865232325458678205337492173168584282409283739469496014510097331156989059903525320358132248348784110559964958661865394585839339840902334197613610328748685566412533266803036451856406044753860816130663011875265187910073588961062099667345222415937623841745063641046015065480961052904538214147942144436247430415690076978597448515975264266159701148060440188361196369756091895703608434201930480254531185156887544145382161699975488292953825567314826598539159607627345247094673296195527255567600711586190666783863129769356474687841419899706743804530482272055036008984330282956316613058640364736644056969524660079674680147663014542529407168750143523066880727597866181974231623880598939733867183292379582021442492171845113546041170365301991663064532805600843169491761085865767386349946545282998720142424994549268221677925252746059395772441994540790474214553161458432537126441588576873766514314840197193888472297490289778421298341648756341786686396876759004062591983463040596841025809940768767194412118345643604900359413661577006467645993640191773067689369226232760120393601281434499802855672978216430612585719731007210598477873058814408150329961131759509917825884790229400111484297396225919990686260249099881853231021105496616731036585716370203664884088871611231652022380677681537796090498126713034973135567755073038770557975925876760976787050167404384094103638804925843545531303264654315832234840061055926586738825040592116636327822653676988081475613905238888186662613773373029125114459720572960781307189088363262395198537293870083203201360821841022182585562603107185497717387023848381999600096267522557725667264156947388608157812790929219961688706552491177176598931300244261459999634010200736522813385017010839774826995479030706618273415546183402942541023188230193725921202102381620392192363886495447737775836640260651570778752624973216238712833946725274903768069009172593392520794635264168417095298655767797922708469476140066612396461868838195648475709713133175095869577150949187933415671716196227060963719435783051429264689703300733580267025866676358631381588777119080987087174929492177952590118271019967165117838298351861201035759264289049998946223136617740667987579939071974690040652624639996478292737892976999017494393431609517064335411620781972563931504906178697405122334951272632428173649648148980263970726621400171145696716525410068329592211197552906961545157429516005331885894610616916297964549132520477646620001310105889555639171713550370797461680825965179238705780985628950554712802422363633681400502971328330121765583358272447161289224761679694035604852089984653973637409068036129928068815980947326509742704389825986027216999344430934224982833855975376966082972150628998087852937802424379714903514980590477033876622489862375600721103333000658880061099439692926709389720268028346540848530369491429383256104894094638480309068301749955116162174418138742432271627585102996708958850038959363820562004639425250529811493291846755634021467061994148729010339217353104830529375118527230930813670348442155185243192652671386335194110684684900300525480582950198173548925245118671015202860991994405434700722175129821356939698576747581097851335198778913796475128872113033199584663800998037890125555158659990999572897764526536354791056045331012894001006534606217755789846572991802208051360139273811886925431542810068386769336323563046199711244768657752634823051489951337113998844188891265473555275463137749213239225273002131226759143828647484627309540541375954332469622439034380982272177768425942861422722979670340028017164522388027761673670944325451595245906128711359717650591538932820447245367733233834376050706546404685654210960741892046802252279364824569573712111707710194151017355964464779577318173574448862221081678555178622758735420835767860560335827844207609254442618341001229485388977240361911277520409458304876632778786684744332696120058758832207681227522930113256782189972625954307807518555474238139315239798497102615509203070382614625191541419860667538446438001012826983933514489270437280360079739640073043190683930720705775613229944386031323237425535401891739589057839504224614463466161775897533275417919439329531922458095049522410760286071702356644325478625026902972719030155068355052779499328846127622816321310431113119720134603595528848601518523483072812794269959490976250997560058089847124006962237305736022429498139402287585946583812954503652330383375382063725303004325619332743063286874868448619260127653624403706039040468636397413375969378678094233024437100353964359118007039934418439852094673800477327269217402578074166374965522663182996750351415472028859565240557542263263128237134820951011612755115031339498787155150977217303128353069452871040823226722267489548337724642182376010984839255703011225969677979570160473944811672438625891568928252736966785920423608838349049062244154589898269171430928289171473534470087101757495825222155632168000663761635611555688803103113706880483027609055192809275103763370336610060828938859319606454327262759367351563241158367455725206240854202213136843369917763882924797092974098545185137934633627557995298973069156212680837976149608825647765489442914046567236978709479040618548311570609456921610594363041807025754731591432885896240659039351356388670454760403740839814616678768540350415127455875791793859922387247436908618501010961199474009963000974921150939802370863429486408113618384181583707753119410352439207599761520319663262223809955573577004013946536828398647527743348166182676884384516465424551827565583083377678706698866750906051376459310409956765750613490445481592171607158666611441236999930641093549598835021043272828950545035210996062690731164211585218836326636379961154855269744712524276102172641305602169537997853509629972149103690597828101359194389602113413944741750284371778934272323300046667318109034255929894389957916478814873509283739115721957766372054449064990372125389663945230787298288719450064074517592595881357008363196783061718968188140458686486691627405140103373688178841252956254755389140391862139710433890708177563380275809727866196923089824916950988103252951144621595102766582433212053093407533919701064022125608871556929653902169949730339387539901240996108391218859028164238901358536439946974039856540808521056567757152786308124327991480407420353896070580469209463715531180521073659278699123714913189208785592813160765497768745687113386005757384231885934063969505327270731887795424600704542440095178524142518922783723332076929584911493792078518620370417288250459344337950178273454659828008720681118535348009608365870971197450687590938273653581583596021289131093550614809736797705968504950138959811325290834884858263351062980477711136659357936250820423737001226677205117063303282704495995338243603790406920482411724736866445513142908759551421957050548945825405415498538368192655058166665831920987690067023983544013945806620005253296778261554555301745936431214577092690028010567682312811360995422794977292490545837685905642550119485535784869486837616772915039442579685983716902697599156977959862230597942425263224042995267211871541203404574891823129060877673868731735440391600848349251337309894826294899200011097206649457423884684965707988467993808765501850925906937249306094513722014620693974559348989753663766328284158305141076925672184822357293282170679692068733279457434393055247161492433237521857792096105003743789731962834398645356627771666961084713339253343678599388568556715326764826120670130713760847892686473169336759163494543753774375110899271519951246219045346471268837174166694074852524702326485965242874270911364373027945527209311806478276840398604035055134031238387331621997913934596165442221099465798231962762829921440400060183006147684240695188721611195171463725686057134176506080346071189013995246950213028262792267103069499473988640175286040534772973807744583524110415579457038892953132702063265117611042632385933896130298443758343107964803103451623088495819451478741770070673859626493467189816820415629329323728272068467405957209346907110208206782863203272847619138811921495735173168817201615405006961065758942916508910776976410369553797983278749907543102296624376829981471841709847722317969856939714455836231421084781287063089613258808876405974710466565998177713805170581702706762890843039261049527861209733268855144720374560869451243838818780020995036523159917478045217894561177027110442303168288773861953780184832863158286145274418104454050928324839394220078964896895032274934106029384840794274064764067116995834805652811544534545484291810491743084461824091915801110135638551944809350136850864789607666448517205441203416628529163427116895643141016013104496235339269361318123716806249659242314712286276055758799301196957805508874930162894863012625213406530383475036524632610532963780031525078232880258447856893555247129100064408543873987722833924004776430119069509112016581638669233642987194848600590434960407829369045075175500701202953805912288310918972557811225527857114318673617073456534050101868730593348511227743551478923080239349018341623679506899529919596816783826152790621405638840040178995576669910446537264516195389552620377262877233627846252150334869426315858365816509738029179565576656272746553701375584630766558645300078133460598212988015908817613124945417736180440064849468309534266523436729042466164392505222693155367721045969390866227533102771433394459145850954974205348651871363553435981650587551532111773626588837764212163118048693796692365572976924249573762307882825376817309042082669690266932206851109350955235845498902013596421590694785069776363937049303936578344253708798869021524829542910721634696082711184027713303274119711639189996074882195300132611061165622902593968298169250000725728777446629357099182470112009491724112067838731708481427681714857653432712032388539969850898463148038234111795774727702309598009703439044626792608120284076310148011886255018115653472780994140775921643839370510123295796652773728986236348055073335036044310830662361684216434590295048593657512293127204183832009766170803734634968097879214702799082013481017903724910334114096835256733920597028648340160231012476512051588604287932846157675784812131634251922191376404157968220420947963406951119780533383304215608507495812535407854781930561311923960516835208857886334963593351341014844521348025978255051465863149711161337939591855955709174144043221794622158849392325218502470391120818888489109475629637580992921582522561287686947014099224412019763459806142825117760258177273131754181547086842943154511734911367566691518743466865587857918276250412081086829335142583654423675664848201344959337729365274372509310572509767474858845117923438588302987488822791727196585621635478571212656048234559474204119237435641665187599674548366541981045972981658023232464429224404755220123578049449845175262038016658667036753395207868669390441037536274594905192035304903859298216108725652040479631188398267379537399274060476709479743835934093311020815769619786404611955772573215539601082616337281037867837312833635039456704002130984682553012404937323981838698096566977449993440728359513975143502697687246334298987327062502148977439057864436106236882199994632530045820679708444574354437292185343589272353890702549966467869812296250300328307708304615619098202209557360503292409247090013260341007871560477771921888473199515087342834525549137174672635785026842311429780595028469190756834327863184403939004265349450153420919415860791211893706821901563600708009693532981472485680696854851240025523430986928650549351189602093166104637400091093453586008700431452950513328334136150499418753271312744259644209807004628046660520676266828409187054150515347419822930831911858698158096239635580429950681195764070099802037628293025831786587965166884922108622389742648287103966633698172999960684287440459381616087084027876900937811226876734428495813411720340686915268655074647301324623928283071630696768600134116409299482731840236028722316602074624780523895280880289374220515287379844319475547946792126411018472597205092051078056094228217049309058663103690697869187621308324331766067754775327105108118841225024656224912091475754025483669546134623095366714479962128715267399797768467455642664071138443594002637744560636582012895424149298301908859053959722809711519089351140268000936012767358006830690143606025622895795739626094846138068462996116121529031751569150795657973287042755277907700821270481354576651866289962494827561907730257427512800850351722935670543451600646485651479700610349215981331841023007136970519081789432076286159933409362717269031568338653137650518482206020763279773885321971639412809732105051803066287015846106355535383243240194516721146149489930131121866381539639511375711473291105552648672609158205987728073296760835781967766246623250416761923495617730156872909200615806668932635377176078632403065053661489531382115798053427547609777635387041029313404767104446088258720328575121196138757658074954543257025785837865350862462860759043616674283713911991307410891689928412457781760833840072859487784473623829337641581295612722451066782559249784446882191139072861107432172607192628256053036930354417024754186235840882914171117133861917057961324458735455506250546625777619574667692336491041100743891082086178141565246614883430039876939321512557878713969505795703066179581226928691667086931529874790785846208148240207738975443848537645741642212555613002912679434440798230882387816574721008086779036781768894970373278910877031125606671929113265759440315994874633715357152383433890886022282482290512872787905567912642866578601435460218764285435123895711436647280595222329931129888340391826437943234220242339558954308665210183287497711575372151088622421994680952694070237066612464648881661878947912751519318849309718682651933891105837857939410903466122153321222770669915848259816636382807297356260107205415260130010279558663667500660151693045229385387975259530661916453524708459110874708360043259293742714215524578836001668778521632882236816057549873230590807541382023890526310371039423343743692984991873995332505309902054740894667991770377096581758459231532389146693599066876165670464696224261779020651872572409009805757658516611704402610560135322307981444732906399486918263478974803525067715701513943597904577249277896819906169640292312322561972478283064233856472382946728767929158084922633756981649991792119644395908571568620838891616747618691480171187996413458844762847163270514793201563482121664930223163654170249199313781206370119717840793095234602563233938751555882350352970044513877566948745410141243756765207044415509990961348079800607472340866503446648084147149240746883758672782737039837540812701135239152329900536224997248332052990204052358141053935776345704049655109639581628568322302960006260449087403364890159909665428008043002886629178385477124079856491260367325008743120638773607403204102188883028242377550554348727755172308182087724357627929134517412665594664339929398925482584996096714607306229559031254494135963360214415408583237170543749601106216172610734717103005208918943438737664743167034324162018081285056301753869399303690336304502212442604814742590857724790759380093683585102583590446664075960629041622706695551378771111467867160121787799557823570196320403947781291094802872162850701314413726829440327105333403862866586522431207382638978222497315207920055965109104777081767448019135525225708649308748560520306597371061279381687844657194586709708822156890478242366291748775913399419424200952500647456404045516768444408037298276279585001893746244473478552935521180940032800425323190349326517441297185124390262159303640482996509448296463222089388578712132456463132961347986493873304356932569643392273758617101545050467314822485487760010106331457195419496422439440925170094809973437689074986939376059676069902292780483933611552444758327561046859475130195637809259668698598373200642247563851811873103573093901489103442774633952009123866442308583781506314972621886045340425530459691878705464825856337543651796837228121252518317162485656334387147871607918298230841139001678784841561478432211026410513595972967469713492953378038199334366644029151006198207639439024436013737936592241320713587894089752755346088420012729633901615613761155322302386911724971448286779110117636349258134042796113126597336154403168294442982492847988290908120567880659808744188153203732239745061847328721443593070701903131927646691746270915762162549908444001403228318332969246597599421339262989949351667180034817274142788965734817955359691213066445499031553548987536954443427923437701842988932797548712975093824725224644785702881960392556093699241381524822077204725167428697830861130519232219243736607259889275266459953801173795896792278754007947384181165264485827306940527352687983800778161981140981175504856647709969283434021065513821682833491781769109684466743544945083403745434320436237075503335334053904660518433611611505455845558119365743412432568478348863608578754462777157120073877726168840814220210110071469748076116716364877250227592064469161452791962319832305264503977754707657014815024408563529737313298708903377517716954372139919474325884200965225382362748703143182759212661209322115058968841882415739680078531665388478146996502290966159067884492803954058483317106246772180546980291505112140135994149619156285989802196364980444759287868585782237201762378407440997173824969990477604201745926911503125296761838315889489672285367189468961829779505901808547123642392685551754985101984991272239955090254998904139595805509070118815073361246694488165987268176264903231934842957455033526820210722061591164147239462778206200439597972128408417395701625098668996822602776697753527806732709342079544846060985057277983464883867472529021268257080691947737465517369586937324234568893332240248765733909727884646063770252945697654145683471998197536112375407944134469531059096208802965054281898375473162522294475907907960508098352648923562414366650908960469163549807521433421944224515932185187148978553333840999998931000227300025501101682938993579386078786799982093330264005359873325948654984710061513679273557867235933639205398151464219020909418607297581651631977878168932782286381481545771254785389230364132390855444556668942969224665482387768300852243424556325416751015886967186108681166061811457576750642877522494039775473425094453964532007430377929800206193941245508568064618927714198240198041092840844509419926798609821932029088998447667791821495761325438057632544179217285104595971291447977559185857570530178324543559968403562931107062831340619495112487130980237505018768369657746494088655247773753098363903834666266217003091693852836990417271611516658868202598687687697573395421474371204438440083408043403171064563831881559870553116262012780575812054120870101433260480776413016605435391205284034387472207809405902788586770307625991746429644957801805253900644434081233558329298823003344934798240734963421370697836834258304410521576179708234239184316598319048890543847093929984535855149919552631389384959332147302256005321640639564928057807924239258125921775674302971072508339787356233775543182743711511365507023140995989395694545039465287680712704629513116016344257991506799922327441553765589809590229587165783572320688189459701267337005106085747543555872160929641909440332613457776652800064107499760949931146010986872979304280162789060785840094964059572453723078533395531305721595414970515219623259617282774578481976585115100200837573096139697339279499859364821565558726792025502779900751771562400578363012157447294596953900255908838587539543306796296821203495961259699659047812433906555865347081858562952679924068811858834245350212594468205848074427648263789440986651993498815798351953623217616081237388675864896757780340771685821280219752863899996755750993762063283717375015346893464778581390489709172526996504682499447080788643118488210653991139916651747112375106990936608808692029962626535528922909501842934339547671996001526344498465624929432010872973263685998734511948368082493913902967059334063037098553876577553474565369253383096829974201791025221098357501154405027011441617711392505351455086939553489267569192625986691208057052235590779203546058985240522296853779093638365046231280410598607190083141878692914824391240496254646954100766279834443071155220719891174151235427408985058653794457773181522951795733725621476665140054103116799240312068271074453286831477134136986662958983184440706344803074636416267767181931085194753203339192002893958989572848934275304463458855828673509904406321243791886828524060120616073531114589485716142781139384750781109634941902372721256039981355749568953356828201848359529111251395096002839988115859347876812782010248948834405182253528777629769722696549827591820091787625916221062808947057234283850247556908244728717458373672072004421856371763315285722310864889053029377922338749949185621239980717485321216835222869589815427893212733874737964588964204296994318910676187014335871586552413082333263771376465270801561777559300151920244388597546356110522455050689723787626332974274485815159431044959016921577115573717944516639511796574066625242356939565836248959396054829675158798740776252172354958450206983655251088372106076664203953521017397077809380917272391921555977946969726876759848621240695310721374813897720283865021236844799319809443867697224696748889708908700799431462430953824204103305738232088424985824618417551614212558319848362748862818605815448682812949185444040589102842507309902050584981845770580720704025981716626102461850585838116790026791810087590130759695472983579935196241522654987684296100183735057819609691708844701513698095486205206625697449655686554280225826226599184028035604873841567854549107424050645300541474109912502490360086109267062388777148621770279530527566667338971362155451668884468715738362492952055147338400769445925550341189733694403847050656677992945075514185227532276568084974230146474531141315387976504082607619563200902002285028583998323564232915268533813650397315516391926665672217502281394629486058676940144488377878688139002873760862547940375453921002639905618530840433582743009628531226165218277581049841249135149632126480226467920172086357557419894035506605091794628365663697100425906719213392865928609841782618037603862863095818635151550801165413592526189121191826562037882581904303625415422548836286299217758032403045171729559906236189094271809218729270068596060436010300242583497951467322139432471186325591872346354323742843542192579742226065424783225347738273562418592481357759271455758789956525195543225829220338285614964436649345454936822859792927992054783649962158885541674773192439984914861632310682765204144537824273035782505880840775962281177440473765053580571660372862797510671701137113879558166728260063382978986179685224622097079713056087147128855162600455917540283381413466733466183135619742918116642050160819769482614461027836235739095797015569124221117256935696163455630795109906367849748715179280222111416768358592822540538036848654372700713859359057109589354587946711040230391586903064471927811266752218234145386738854480304426626072884892743610035658601613685152576298734526307023323259901261771008945789207499562302925436195920991221273047612681566036449489046210369361087860252510574439569212171374108187672045386628190425393959208271841052664486386171612349184852205827528770580787110081752606808492248804941553405276075771035049168876954477732772349233625209879808321436077215911792970620128084698555968202943404556985801999029626632738542785392207569491493312304461207577094431200847397356983866873186923772712185480206197703069863551267025615933023512877238928441691258269701130470302026912379576587674066737168803794804284198596885965524377122345751846438532625472313222646570313414849553235010038315889839828424216686635974341212052705726595857154243044127646444278946717622088829703936879661893257367827979843648218321553177558893481595460107319754130999105200154550800362505717396286424343506526230491260256592661338061124905988243454683938123271344647333846852347441294499061761079702172556298264613274408893927921974431248868570455449815540160143383561825847999129210894721002498271662342824579937819673882743929464894846850803184996550064112582009447006428797175360224861105185946672470639578183840639148007296454570680567124542326940416125744967982068043160267223592680432402425740977343149076388603349655318930971095340777327674732737024608409298728170600113961770099420681784003722910344850043717969058440050067713413977878398952750014467856173147882432476020150386665883201934705436845645055106864834747501293103465104835175302672160147724434087180088585649626765013968929330997770721741369676504344549398279791080529632805361040822471524521286886227379647090884333129763116550275121023262929806771275409896199742900375353973713982635764804088024579026563281440510378548676373835881151199520433450360471176990082349814338085659261856856388782985025693887896302091033309300058578346299059832843448757019829869990513392609905420732112335455566711377612701206195063940209088119287718304684758149643244409243028582192025570615977160503233878384714166041202276848226946018897195105726580118849995225226912774119924071705404773632555933648221096933596927159057141251204860670717020603437353270474789752092412110263739874105220216347925092892008233774843519974983647129299525604333456331247872580802129525075672924505617884179320013717297736774394804662727888504714480657185528948162131632976866511251613428075347434197267598346791623759508957307414458593150245648282296168643237356925979861540411280230839254752507571878165344405539503331423709360986238787382768142154758669202542725828600846928076684257434088254928778498091067754410525608479788093150624499132285755628550641003920266779547253284392451574112421967261416642080940776138819099997351794740326873701322761762569686369356406001601228661034523320695694303579900616222276358966817613436544609714197359517686207032494027731524857735652961552228759036821351715514686170473980741540627928853883946736192644695382956076196129416944129039763265473009974520619175501182691265423240951233322956770304725054827773820434967019572328480083804115262974836297704629130376382110584030633960392551503601526471406240472475506588578595086009087094588367071414481641290346778941062009071416789047160716895854271744774552287834467195354492751811129262649246915578406785327330341263471771583481859165021252900652042963999742651648656715412302760756768606594198415622888328065899038001400099860933941826572764589209412997094852875428552004858227914463825705557869879720214785703185620647827879688119253515439474638788897758835161820984230863543892853438817179495746221400756363590577035038627688055563863214293528179997929167496424682862167358853914780174238308755346491508891579032078511441670946721555946080455001584161751726124779953986083509177152700504571134824108386319708651751241235870995616071080135393676777193954989818295267718774723178073876302280498255752484304998707920749235567105690184861362165304672127178123911261149628989113820729562038359098913316584468753867371853368954314666280280854512159461707754982137675995262587479658846151943070678619870775709110605348777048296026038639365981828404186300780444160018939196130637806828864663658479638205369964324063410078288519922220589078078044891425717060274000101112612438081161670023150649554941308544687733556446961901469324903121287698176793165613946329666609106821836863149550543978154928463220561899609686217827271180358237972891064292795517936271684418398731474748825657090128316121795245102268907392150620813513794560751274895962989747753522292033442714742197224107805501194618774746527820524770411594189506732848050340486758220291965652618937650305499938617800100214939361502989788686030707901416656622623473165192708337217582377261710247092269592771118116557324898602116969040039806402966382077178811277853848940335662786843035225205333338600448364830881578129688014205078801565175522410732351751580172883618758885655437973797170527175629328626034094479574462499862701942469920311353300341484797203340816283321592594776340994391861889898696667453784133957194883087288507170905823341516628769570859428030150759762073580254726380330144621726929879254806641338863783812506674055010359494066680400809277589121438276231095088014864181480853971413786505477902978800308903657208938369832269420829838136493470399895878035996722890069308073471187638646051999781675126905912600350487089367820975382653585732018112182441555247189834664014691107571507312922967460532687276509685465287566670514782141382422792875836048218326996524617295209771323523090381501838903037615439754922048841236089352069365039126479883284660523252194866016502167720891187174264851468874731693099676723947378403627045388230994256771357765678438388601886700414113499304605845222006129277711097880315487585030896350874857710070377502228409043129488568364135761428676779883838647212358230698706618870266658506913759466104803892090840067357373660646122096267020889895909802918643941637451204723742751135562393836309684595287331963442086565848619250148387990866145363590774074511817175138735918413290984505529785066630164986241420837635694626763722523080521956548158749932113487753684503046381772403183832772370029532559197385490480389111711978264586079698272101840639563774913970531969301859350359147450203157834708628260325011016885428837743236248048336443580086302489398735475690071117601180493104002582620065677660012684017104009349705675008878420707001472238218083255185053248679864419586003247740094968812688642753286139984285240856533695967685769019363867927844782255251020218318599069929270927253590481092045530498366704688374033672088222931060382483272308314225874636732818224268044130951466280979432719007402046302098625146633027407326906301007725256418708406314106754541211646855778796928643084962952862019149023874975321762110533085368388622853029922986527366537738030205821185488423341839576073413961303119822708272852478149754622017979688137038044406377755293320263931610898023369311224238525218280162139292972965521677989745477994750907320381991940444610696269918757173493910446984491349242794871287330668335326737828717380436231656987314040569161400726699144117202493321143432037261259786640401961344819236903224780154190475076574284311258054855523050409255840354815747389452715445431437319316574161103795741622786804024259820761119156110406479296430014726870574486080703118189811066534953834686966413980627166689343537124795826356105035701047963072128158873538768586086576784410482323758839791061336674407146646568952754932422563002137097345674428332724424554836942873847749582446281790288184283332294727642368966205132539721056616447017641549447325600355065941380455955990285679842178598576607994044778960251484366882230613748648678706279599133791917207819347501147135618280991408809205786007123881687260734580641155500334011437432545659166297435677283633580836757631622674542970865217493288223209247497524137037259461882312554076827520003347765441775325205989890755987822927895862736077530090858281382409373958421055160472874555348830386404070272183978237471227156386848109753097772215611207278877047385939922042776250246215859086525676756380917436981402115324413447773162875971899161867736999973137034149240760360678637353681626035806814795805425454322042219303535993245820134764656383421481656054811324666171995446846210332336358609462238484165637541802532619729381122718793280464268217589385446474695023235810193521544941797620283931604212861910077204321574442676274402447287246278857945458294406820808690750375944174701837368480989188636455746948781381946518800658471646973938284336727973465135828645309616730068646210860882438529760926220644730608298161107365812108151685229175685988667150646223061297070909309776159704106310189762477278813271795184345059685909562519022417513397431681407519203018675075193640006047759074629012451117700681173024081744886430412003866103496356550299233846998653784641177581802717756949940583453925712616073131107558701544860491158323669420580399926537165592309824669296033806601667091598404504007425022642279148195845750280036580961607197223535600890301534850285103169772668853543550118494318432888341355591355676586481616567235597385375289266380090830160376476697527631519587674894342089192289892686484917958580001239989744517162981464536810796979242950954335938986969747125267113136269754257133223597980195348836841277922514144383127326164557824928878839789349121678752267043249702639346030097506560409210041067181868273041065262064967239056575131639709028257189268469275015319679671661294674292274141244960947687102471154420823273962644490608873977881647707526152340952272693766760616630791422138455294180005412916260176638030521010637821726394495531773342867067405715692596753022062616891486521065553973072246445964781516263988954107001247977348645370005178688488566209656874555094034780447115256022074092325512382185658110811415326973420923198957109593855311669512353339935963865670525479014385633949410583800669761650326983636298771315490161475027045720908094760361835113806300062710531462628975041660469541480194374903222135561165220508390471590341565393543507245210614312211100871506992658334296614286757615706384329189192897515112600577421881380139673746466485287299548398933478556345876483636476113426528991047302965257948569246526356561311791678021783122106864912622737564103893521535929726115182869602265077060177153952220604674032220221558557581626000734230349889146186288895933322710236682564211263453866394913754399963176915145307026194190636771504210561198995061022471915305413111431205964936314036604938741424327171026572126690599454840985125238296512113852659065875232454368329181258842221123791015297883406056958725070094825441929391584341240647397026208965526625702911003322442070347443221470791871822813901092111075589505948347196669936682575770553873927062561288336668704883542468665754537011625023965069039002414633232092996938163589043113670065978153889498972660250073607068391437609003302475355893258810571820854945705617684239041845513189739534183003410490442752015867499827274889104035391044396804168003774770676297001669711337083930425925270926200179810289710248329747757455737022103419691019025235320406526381231169226857628184596794795519158843111964389436822501926642745129792722176066010417941624159991100703136843965601566650645998870012715406218650739421137431065027592722797555452279985528532055181587448436391537503483657076328491755851651732298295187626292057152468408233711139363455486715024701183009915826951499066216662318593347300368545221286539503116802700286637446942550909367684823985406391679547230033163010755774726675491501680634859218195453252593624595821221103063339728884955418209430157600912823779081149807816209902329026968337989721099343700488320261312101763199921159203307022798461297053787261584319388493020169178768994555112386567448894723328144918506891404257422787694002068942670375742025171295477351371664234792639085715896673773520113960961292161080104276956701060621723841005369089787942503632581618110155219334982214388208203749586056014583664882543495497410978583026945301959874650234357834955441077512570714103209477986287517968509659074907183019744178241587054543568426469416389885885291342996409889179307187589626120905948124238017624886043780185490453616500910824025845004868893697888962867763844136585368481500576130357998840928994228415706332151492942060211731561821612667150808555282151437905414293036947526001939431309906127381094632656819202342628510107643471444631190547431731789991206657366166902642843906995563909187275630315251749406108960214549285879361329133357563343781727951362993933282188313301757821079641413700346736558658124380174572204038736575418486145796286188510518781708787362806297600744535097311835289724680887449314326566882241911015220535126468996889477260399510307720485282328393144355754028166476832563489551096158945141866093621478136853632903729000782859036547338659167813517493989913418871331194542571307402418101586736179813490737662871795141930316594557943278671820268066432858202412251610969383669013697095310720784674361766375436042187822986270525040889537882715684646455307998538889680250271172656840355605619698063971033116414711530959682848063847939168580331159002464563608682184545630728888972735928109588029049445639436544843211046537704011051065015655950599927098333665677353036253318661439625973717814564852768088034633669497677110464482115315487937177914615368909399448868126973821110079461929222490214571013157773410215473206516715069331793460405329712777814418267837490601319582854351795839642375031411892907172511486103483316411987741099378092142588642770807120325921375542727466931298467290189193630601871767634393219548598153182849818644614841199287789331092209203152518203400503183804688965628166892966223462705150694765321333976456747403558128015490981016829782947254941116977459347852569809722808788528489999703745050081449717331108017728808333751875032993727854010183498670230127026800091781960226301832979293405535200112148778403712100887155041099272653472699769421596562129605971885590762321383893572394016793249491864575886392381775737357231346752993034973674892193574358213332610693460039177165597213743333411722096058571066220322664838992058713868122502337982163078820801387809025026824192358953803638783619236018998802682440609704432290080031616761030940886375801385366009515714627568068637838749163446782679654231259837089775992049658884671428126632491229116481481311529580261639577766905268002235381363827910305670913799922737671167282181595382060661315095428269884231708870072253571280071669636094672091266352287985635423369405670737421681965800773732483552516965086578347527964283887591840539945279340410975086349644144641500124524016588171229270339857636822560717182533467241625459371967751357898800869542383548584119340566170520259578307335952137156638557646871943076316675043262290444248118224020368221303886887437106273073248746795637413068951888757166469898684728289801505293174039013300413933599133829534117235202181506652407622817576354348459262515610888269250271452555456224301184490690851387072819706537195708771354087080737278273689245601857520559156865083285669823620817579960013872810464057614410726557318764689500156998149598686443563227612009362642624473131941933135561063749929081519152880679426597068401768727564212795420767881895956216057107069449419968233439470490280979471220912860014569422239216981357650403769875211748908615126418453844170379068095935959995053507624721818749555748720029791245838956367550277504438620138576533008656451534981162991570073346780335308855178933790156821493813085403455550589429217131620862523360913229481867959091062236031352537482245650336545748869049117970709359210598005939302305445446987248358800132072667160799608233736590085717953752587211775224201320561223707449127723918291141632651625352183842342924399479208263623093484146580195137626413660231924524749451217472786744792792575557676848399978353060523198928125722154723785363944410558571141349424396845055611646739294440743152286414315953230367802615057702327423634035891058190201231394316245660151173340364320753887027662047599578752429790459880478194447166841936184624871314718835721232378435690529715295517276128486605241483463829302703080717980756263656363759329811884771653104212521193536603750234170149609798636399045188527920517211437037058771658169408125453050951301545670504016451451219760942354226039810174680191835428546208045326770118060540584799699472724076033932820829532297460505908062986172641101998308742544901499574938401211073809900756652025228886726885563531977569653570290862641981368509865735387881491691588564762677857074925670893695286104670460580878457551462327734304094120287915093009111459891064972524119733649209783712747250008736615356374716782854065494664602096343520594489604850224111284850081190153188236391193970488301258008143816539107868986832403240419801878987339885580378993689117521203293749479204073303349138720637044586510217396761464487067226388844168849840766919732710799701622335750324933633445880478983003727148975202659144551183478554764614877047247499238486455089226171695870663446590944774340050922254677535726085575328364376781837343365649773431986387928736816232907830334685792077342532806050820552936616798665793424952647812239973972953937455813128163779776701999803170064294938532472926055604304637732873637279585011783853501206637749113337950932564835904791407338745662882304280889837855466215987425476805379237823565619062913078212387206926587216562340555566520722573920496661429101392547074863135158073005162599003928901033834698667283952903606477355234931760258457820514114247390867021651133222462718662204489666937144772388866243131740787842841614545483097933415707517571612574901883462559618350181355240322422384012831851804326528622270213483699962554714037754812175004574716474665820719324179918106546632887216376391262836810529984356730078520324131908266627919121680859943603370393927486012807630405589205557440928308164318077526538876814228068875942224175905524302698533820775805509641301833670428909638113391691415091405884171437343853234606055636585708446754092214751856380805311101885764009368406159184987728748014607509319389211900209155539339460220273961759282109812614856998674821309641314208287784248003207348578601582705281543907131934606077983853555648444291150063729060537040542033913771156928601533618411472887548226145184782797138347659952448753770509810190726973976674872410884092750943422830987142169140231037353936211430686724831983206327528757040496676983491248613028926774214098317452900165694177294023886447073986208313249296308729025800443564153284455429963072213990636975508344106021523845817921759215635115803898056684452228006195623828804168919358096539722249755463610892411660397127376543611213585265343321763025873933922601721978919614068052561000084909531892644836512448979942161347583361454155943565339051874068246562087214970828134341226249299302470969057857656376210665006437037848915393823240441779770011636221798290945101262766316815970228285355447960019257601131303972091897586501700140964593167315253633235181724725978521521401455136673071239814643222100246649169294043496800549205066552967451539781187694597278902879783781687256311253136334830261368896429826624376774897050283132486464342420635504701560432548417986411855399124629121048216026124279764824049761036971095653952284943653771661101848165878524772492158014769062626380528500753564756687007199279653641086735411060811095692390048390806422610125050009123868667996129774234117172550760094628408970265788448987744473085159194733099863310843364624388828580897183172410324202642437512749684051006680515584657851507787928735873097325776827932214643779645500444767530333760070761757013358006638817182136068060001546712046981486513033422069879552286811492555363419319175269561439811421388903084982649896577185879010673620020731127699065533217128395823330303824125203860627866240182103562084166893810981542915066890904586522128429303753715825009190770138217778094695033437986692601901223177754705587553685395301174332057467909062537640824434555829466340649583539958719599432362634622688727132085562333472411295993787973500173955793416461145936967965257301386399967872449620845224241563834906927333913771064848143267410095698292333766512717206240955999306797220655657871324779581116170425153548416799730369930166624772359547387724116850576446143979287974176955229032183497836082770163405597030876578518618055134379303834199469991083601900173321198950738566440653345553981992689957922920535301523031115810294937273735685785983380817235784604280453545296975888863753772262948233340755296290539478026810859275312165120749267139796297403717266999021707951743809035622098848064956527844913338808108888926791590540718679602629874825035143880752391608038434070488902456029421651526352293941114875417911420636438510438710981371782480802089202876687106332672775100274846976951776126589234487577874387391751078292464946985598773750809232895767926318144004305682227818754498542086986129932073817431286431286282636485796759647038812940182066706069403809920537185191710693548976005156562169611439255653907745907703193939072988127359868523662509003689822250476532883893073062298487479890193006171784177248501714675346202377769022260866690326976115970328174180629937514505221640208031799536698290383773875840592058851161215199348257269046022609420165708569237070847579375420221345799881098527850947022788750274376325709929958644082234732917180176456610344776602340232719071145266813929577583671099951690021402358059388189759367187414128902247339449722979529491576175711024866747920382761329677071748601617343450750038690130481399021119865517802267108887682892576118137947930378203301529405043373407861474307713022863071962985884431874454599265497731818132713734210605059379656059446722114205778042988682291213301521208109959444773940175042784231310547048950505219796045657991106270765332253760188104298962244705871216861327457207000166576046000274892408350943743202020276428057966536840600253176366938754102949043728199370832628770129166616892605696346610474811510393009041285585069815293763642518042224242641539965695802084721548168465841664704054036250325033360129068458608988269849773617341632729006096844054872827382970451431043679862957928280090019478893938855199914621046567210018140494041860595106353749780907902817016522954581268573788808816824532240359428904950184178793882505400759372176063501580686996056194341994853849930889266410077903742101218801497857876559631842698821488409648369163486349751474118845113985108371357515918544845086914282176665521236115409138477974353185200551376968732344880354795589487562377959693313541490644628126074669010972603064309734254022813801963954234780890228385227985371322968165014655720887473256750908458218782849092628779476366104865816507324412892904271547329111749757467762794237366945702529620841936299817781674182043592674051333987241555053542010110234502019682537314254550224822030470853974856537046650699135556238779167821895462725106423563796473565224089490206614975599381754150520522111349940870431899975032944701932154680772202672458550994810619014169091995465972069670643658260871174265521957115861207785076966885942720261744278423424754758135651514922892302448071317595960424707741384198497430914882292011982763214716723169715445711271848225129543530656706761738984974214247351045895905018577354090748170166357244551155305881502103590014572890094125946898699318596602428793717087209621501210004464684709693804643825474327265396430764057953313201824830871271548842548679076716196748276586667474837296642770267452696941653884946412937282197995314286404210016261376795994645656348988591802172455279520316913793887093962652909596787444455995481221122348613868616248106602649752431814371139590245595054385778954022308231350582293389799930163397639507254644803140025002918732000681751536315162508840859404565096710611453231587932698764928221520965345742614070898647008399711657473552159048652235498267493013896740787991823156983261469494024827634955973561193607503719187506169559825202592499843589383795189883557274826727578699666704039524245178224768195928263773522049384619926314216141235950504182517136718424232749164624035101003537776635061695158520959591904537590022125524688426784082762670243595976465619918529604637549177500183062124993670047586364031009723618325014177200232592015484528692198787178161580330661509644787487546150428666337896366829110466935672030890746178730033785038051859993789739560740602742726576358837147061270724276021294841431826331094408838396668039537453661526716768497767239834406078243729466395776905420093530051311502999122694361698690664713211188516466679806525968689076819759605365683172383443228537254229074805481894795588990719957801221613326835792273124657272648019456670407700477634568432260573422359664482669785400579703731537988970047262355917586692482849231141166165011330446466648222617370246084651130451001021015099444841843725166261124225077190443511171430291674436287050855702504620050952172577903333552732163769846442826877539928586358164524419214925024700603415332302578345104183916913004940570743806677904926875275152269085613155261209958923794152357148023132587429841239018931923505136061195482486112451181462103785544601885292018208292892881861125981409739979791154270664638477638889377985685400470557415440996988277952335158656072332376209448507640810583535743311708796699093070717003563762913349256992222663511193583656709062848367566587654251197556845087952499709764011915257642055213583141820607652201839786843208957105619188345367186328220418886611360734880568139718495333419764502245897077944538454738385951023207052363627725639889948610625470147238770013968441013171939715856190307338528186626134669252699866382026707249394900571252161269253727478114723173826827299381683697478458675367967660847089654152534707715015938923522477587187866876592218885272097056815917517778307177314720626540406652192340786759879495773005752788675561075741635008592765772713868106827464032236052421181639156669889689438527185342525130726466820222255838502079354537555749246652937757443888069041494408440261118650656366112714514456812875693209735611846977418349261628394062936785758851442091368893422091963842602567326234442589991074723171919278357929414689892372932261271082799100045722867178427399668352274369165753501868317506388971387921667413668658786422419942363924172783602174777679649000811729425185237823826524351436209708568741712727280558150175542248978120848190437346652834016177537074001685221790494865545538091000659345411559446029762442177235171192677562239998064261384600941886277557430315142674291938989979483192982007044378880802818316088976110354235961116575598873979570659972737084109349567551683767210095548140789557633570272348377351848579419152766163364138828273231746767095019972570724366738659123378233350877927241197889114575731564556781075437254007007327222491006615813523840142247937165490097417756136453519931080167753579640147386032112652720290122213333397276701810493346554454638318855088709874734505839131666894136935960950302534396169245564636593744612314893199845428246572940329693971515090718315388369654305343272795853237653005353452832563665868873302853052374265042344017253272691220589294946520567254031505003429022150655104361638764410851681977056457516268695370805458017809566155099095193001383861074538959951221886557862175353210566089355795279398745412196342281549313666191196760101241241614869438379398874916513286300145779020998358135859990547119742387438970177866566639753289748714514260154519656658692285756747769829937736055410430931022086208123400590598996212337820976281606929255625567120440798744481378526384055483343289140917440708985406957738231932249341626454231893749994838350582662855889921220692923999876006922508613530074347152792676823597798539469117985380781542415977109607874829739613749437264111900165449073340877269442810770250435624546722084346895308850363906777971204478555502004251539990364736756410843289023265622757552410822500085275264944877784445566940000365154280506181958528752862044462487481200784597234065781646052993150946569875351571774999636718142829126201778404894343591207673217970071160994068293138140522695440239113604343760325291016516475355538920093425194071326877173546539683016780055534218056527166345960791575129999246289336053855380509493080783731061897121671927418427787465727090925063845558203515358658576393306849969252005060900736582935840394531456339467369702021293675369214553802558840104632109764986099392066451656154455601060648803184542157757292739933840185323526870413536715100017482732075843626265462587347838909269096617560062738073520051426224520065420658611340228280706092711730421916767305285399523460324315319938755492579507826925045750664747639663559174440951024695905669685090490460763975168574518191546577211884871180170270341586835906800580470566783012628994248679591338565906290095728466965759015579910605449660544207808203341110436277589891878483669788870793297102919127229603759542024877371011248285409667938597808225082153627249812430160616404924285343437194572955952889931780368752814810103389177672951803387376656223376063762882782485832015844659778500700450385750796487874052691243969131842981594003295033567211931809180526222522995578427791313787079528920298271983181014841551158316072375486294791255813445935004918603143471197708582446845264030673466921307216430156221801493217713663063585001149078850830902183433942912979213805354273390300233563766468109302842651340589141179814293974600198015219178126218994421349969298366148730258963161218909413394053011123529777388783117221092477930373363822892761284986272982938398572849149937474681195753195538622144977981349200203897947786221852988802307235915070570507070031490975574428197413197280412131296626119042773947803904105722800218490644284121760565866843695810371029825536431281797585379528816051158416982151574676840949147690595340663627771171292354036910873695872016287465878392841772947486245377504091117300692469456580193197854778803331090049504997700885601692986646131167412153828908660704697175189133804615199200453879876077342616284670037754697354685047693596246711085860006170989561383173135270594980319762438116799268716320870446089296218934641944589704856276404904267787665215400953850268682905775932705918725759125894344562872789474754969671569934814049567359812398466887302760603570453960418555516049811675977423182260215502459744029704687341934893772294495132755416479078251031669899978642206345015581332518696004540425687229631887774028020747027460643579521745821577549158099672274326392274462148552858987557473848978672021281636892951826668934139830190078064617002421144942232435963654661864199611166012923694008760135697771750596020114418591605770456787517651523893376033947445211279847563223415362418918745166936556560370325816345283897348472816531645165808377967034202846885213932202861443645246024631919906801729100244744306942315847945662126689396584286772082716657193230722650358223547489577556396422209828573961819192783917099488105823219849534889601331755765254512977876256218399441895875725388160104629820716235254135206344394715129614162729545565527738932901172225987885310134319221873487000136753257283014372763895060721342856912389847967676567254971696369094707494669971897002409896495509936665242280310682723055342915647278397583068223823579788743479323562531491172839134823058660260991671166536776419684083489337472818770183541962062494482079929146862828400983464988894177428424170309384169308069664097292238323574112932295243004414751231035229389928290031458742646920547451522058684174480503862468026548956529104753125438259211499881349569361611092284416743097136653540629243858956468446524372366605159795517668034499020986084968557086518402177415948464662776570068010364561633916928064492909539997650696976493130323534851538156050249816538133815490931314744775490135341445556784410334921031186360143122986942604085930850290696787000819333582258825459140669803020147178557423708075011536550614004729387002887929545284171687934613820552076213579175457875828536073200638378446475285729188641142059036748852156627671455834910379679442340851899197883618823869756567252437935492524344257511729784655876104705434003772835250461961421868181651521559831520203923816062552061839876097320933261633632751905197912274388504614409020663790698741239005436772849003267142802981387153389626916264824336020388979216349608644568789864987686780969890254217081036109182776543966001007932115047256739710462040925248577570520494492743274886476718142501522106779285480154033577997421976757694377457206308945672280131169502825619982056317916006383020117770163198490443401865636110455086237225173493728025710459162354973345278661991135106420396907511546653985628009593639318396416556407843814969102692254014910905468270602153639015398570406856221675067412983652417632260448905839292992216795280116500819235262899217048710919586696412416318326343734703665535670279466577707337409574219578342154068691213852080384038175903120916247346515123474863804431788332194683781567596834839997694360981866533184195756997713261259659133698516753851067819824610013255980481633811950680298150143612248439046683268886228940870000318918279073314735495299088161402634634472974771006494983298698732017212779156579380522857956886565015692807039770957916985615490531749983135732132851702481767801657272277822711168335059579588371477142080100687099484587343428217930038737677581263239657162265254344117412500063633273343645661285698151147905792970767529333404048316713843278400986983856407985664131645505626830068363005422185015160627747171136430628768556189614409764556993845754537845342042650468114631924222230094560696917705759208210423536401395022482907493428153622311598042444184656711902158022736158733091289041983394829304779151548903493607501742378274736224736155720176389268026605598499395906108526479561575314046239631349876415590311341347654285803937298397768491584664944394593056238285746695705363786745155492422593291261533049668554456820683833396428441476395047440291618625657802980593377770278283246249719248305323400594857621962994227441850461589627968851761472608660557548470617406478747018483075768843561094980263311766644391377063974257224079056932057279789028886429584373515465515919069475635116192455280445190488030904818808226175004510326132211845248075385966481094288837483479247793925365007629542875802091280062860515285529317033310220761454009235579210995548130125213845452085191753794952771542025957043564693578386809578043246564704326467693323521336049216816056718099102586888802098310106846876441190818783481331130767234177069629919846674434057597196972662752462504013849221989947667021929827661030446507274500076312074778663789970896153395116784962250676437636807879136190652023297330149932756465666684963192454801958007991416788102097198749353587640699696495347150170356551503430477752879079109345831041452864131848269678252146437145848409262693435902434609203403560654414533762616418876812814164536759269329467139016206510157868462903842740914476331186931688690053434859779282421757193949530083900129384728144567369158850789379406398287986365906436440892180510419940299331844079238713793472480728082129481161920656632069644377358095818848889580400152119262918408900386839596994942092894789345990198866220239790040310495788292371703550807097952446510399466209586303655500123789695017857449870951683898541191710559381126602771193555038370960007019011300131604632207112789399224916044700553807087112249961612160659561527880626021339175421747977947803284439284926731478160477444539256342885971708340986833992302317300215804573623491958065981924008162645633978787093398280423722645933272631896663457797538395197820441336302248266509153107785259471946614348496489423549148138433257973589996146264453984335589009760195896523279751989137246215256118724096816223079247548125834038047075985733168434953508997092187038509494546866530653919990304813387136532593670571281448795307847771377522087443792903663165467410699687900035858968376345201042121546596508459363030708245532502801799270297581075486814459601691964741393840879694901679710779343043506651068738000935324823828082103907320004760707857379116340347713191644981476270980742101685825066323335047771473329656151936139591864193373363430685756396218866776138201531982703746316930059337978024170083285392313049647744254090731253339168555249798119956221116103613857755329475960263222479333267540392470085772001462661765185933808081898752794679054282203358641809451063592567977743850565896014864596319763961888608125326730693331900823564824580499333254875776212717070393295335660567015359617907507003190326901701738883667756162600767754444643384534004360699686372536335265212866592201662802836973307550805326200823746192537104476021770039264191493363964784166923818114000931234276993257600477668777516183055137150392657915741675914507897907998511921316498610827289694333718392678476586948433960587937209700685964878870893967490988247998275703268455357929973711247932027750617200435601235549032547240029378708231529035531524465996259263486043414094562288756608469846999196004918663147962329511666349647047445887060899801723099664829388917907815898705572301517739883233349199287326861930927521283981166676708186124156253009012422496236677845916389222135616373627739928292886056552040308929746661371866300529038444508768222820725697672490143428941094696324973757575213025063915114948274926126981585142187871397495692118785036360096797188408848930526368191025098423455904734790783117408624853850876166090497407359867384088545059095719153716211995540478011553077190988817318457505700938487667947922219875767031064530911053050035417913004652442973433461955969696949563890874040210971849242118335774077304898116529191669650264845329650092263393739533364958715845549251340512523716600776653430012285311699394066172329391776958372250058446665172717038192792050494578577443082982783506242083357196988355835480186465700158868684363754871037569365598998268790596149573999499737498455350461641493081041365495647495843611346562492677466126679726774487343185183119902271660887510814478448504749120825131394585401449575004996233674804676631543417088618474258475919843943893089553527036777270099890101510328646286072319564512032214272330304245886872804125574345375618782741957044109338446815885815647574393484667288835007132490892679909000866753697004289554235188887776189174213186594551496147359311351615231789688059087945478568121999690605050129219014176774548436430759389897408957487874750819707347611311825203580558388935549858325891829240307937633768792725175324334237882541596730435204546817076458837443319959027389496845686876546962601718361386932490432167229123152753220489822747534781294892018342724831238173126928798614656182764312253124533786301183709531198878017779735366035777663142256762119218520142022018878219217484419761962345912553940859873161561055027912589123526222690424309793591944031880025862111603215754373777330163886616295378673116661225942178826898940039984673815764588064846118959842851504754876738258703385960074782529004974880471941521248876308109121511502371554287830641454936926336775446200107588931752584216034278502618162353762352218054318866149126380608883204845393544521230122480419494964301945202915331064100288079057952241229383754922216430397401976016897369968530876396202291660214546983145016115620044363900505801603463409555448523864827434184451092166367437372111947155252175489872602215083720141768438201164533922031923501506407531557513158352189546819713089882658437395656034813421439229142274811784167758641250407016228609554165670192306495314384590176428379109219928539666587996282163478887739010512595169576108493057380758128979009222848590660173799348244454997887056837916130407254576117238249109740404050083929565285218716954666753455113000968807565094021689932316348390798093964923207681545309691578485111181453412506441094734830261799257121059928500023881550237139200878210696729560907368522954766334309693276691660411206483450398475871566063976929144702793309233325595632900241244837399930839457748656746446820633811963761258072957257262745631135090427937897408474247251958946150178229514267381145307167562352689335662042491999674932905048096918120264761890365314834782793024893282608551754040384192535398914716072846705119763806255327812108861638467414178797844214690617225161377115564938938309677114139669154271758197843298338909767983816497205512897817457107766701210825148962400976923241501530747232482224766683114457753025020872755438610556391626563292656811647185532676104813326262069355601685911063926564064358123345482237615377520548782893368135454732338694176705982251157034411788486464661554383558304744820968466666584104188510040249962674289438633916614843227768993635607969913672728163844487627512257260195938802210616910974553951997217764455854743074085505792094817939323148780892805916404252533196504468036243575864521488178732708003638869089341615367768823462867032724700688906641934307464401864641871679537579165730705529021605781123589362393546551742261944037922408213413953948432468449514155715561793934205928617292330985822940546406120187880903265198948829831465844453642769338882260382449973630741958678630427139365595840948080194757043875030756376151268108901823758014875616499183905061116199794112928863715462076252824303977568815401622656986222708192756948593972633696658286255342870302306935400191051386671612989801014597782862609371277350130708432317123393286315536620703803666858982705436398964097514930701866617872323534811694190613730959361353836752417596889179799283953689035431733420926238700246135517133163458541011202475665963559549864614724396114729860265873376313136415094471799422827704472667441039710713016186357967950262506855923618746451764371600022225849830063332706296596220696970730564977187258875661335218654079242399592908761987288786535352335658206881895042956175104578266834121402857417434141226517127452432523912110947252451487903474851287588157203745197864305856264276940363507487800307255206826312897066250211386155783944745500135190422143815752523549655086625152376282906399462956193710139208079335575533753805381171301248038794248639908191628010035154364716654249598223007754002805068561609616119345676779466027504035912785540990054356464171632347057186076012778427293728984601663503924290047296364966324602601193950251199024343362937359775839467935690319878730425815632677400547260198999984846039597371828019868646457954401457275702355601185327063211810126415486771662153381894144425950230632387127011552759507597306586990139766391442192900472810573813469861568776413144882968729903358025269998040070225278150947258541463941036744501071157264355431460777930560549852923798491520010402656908285330058270402485359075759811443548949928341883503456675950465594362017780448829383298241522782613579276695152543205796264461814523648533239127948528337044335382438345046076912481272705837242588498484057709793003268499929696179769220980221431298039942155941293154891974280313914079872690796276646070810928950477289036077772505138181308453703513603249384235908561568542005334067804601006168591851013507302978263535509688040163726875011804757326043596224765095738961041854412457094756164326022771767617645015552522383933619451679400934322187561568499559217507258063683577662372026940848239316023999865350771642291027244717411248123345225070772589493368671894412872420795794907369217415059131545584523468962626945315923248132851811479625506906404707640172923862041226460649201123375079188283672025415234027236118090524147634907924935185803250565394294890467567593383603661229446293195162578989201877323786298692383690748193165854613028132598746534994879056067286184942075768337415453183501283535751725646054723439410583602022638518929763326975732212648617890291601379683250904855912965252543284694078399094147746569511899811579003987589500429341075145850299486143375951375984869232929003677414263360236543522809783580829434350743901082428490450756959781250873809545472444311019929421350971714392171447433808375225218672002722918887057375048199105424649249391857570120226129712685046347274085340080765535452923415055256168095633649465230051780368962654254399055494831464758555953558110245640294924963545638072202410763750804258192404733635956026887089459996670658493975634265859624088592753497443798711334856559938210554069176760203644040800735226703743311585477134079298660641027951753576961126744093824028509871946456529050386353305458191806969483370327844726365931865269623408677887517500411860803088593585739403517545117150668227994826990732979327534076188794236637517341784353682128390393803693983884079562923583173184317851659469259077501784660035207039512590081454412071626854301130514050525318774341907962467203759190449436555013109061919966881824652279429023023129873096673704919058992681343812608678710557761040846145662490428693344010471053064665564179228860193667542177484738748596034333087538253557816696660689461180615662416030052388668072360742840768747176446891743318358529032938994018300129021866504258295461442411129166940374678134975780884816475533490493923921488628860233354327685467731402316373238179518736015165282237483739971790593722264477575360831181994945386317655204950834187299027081054199983035305338839383079131519243859804998140960480775217176501076153939605022467925281286341058656287101767626337078765710342552899416666153423932515617197556135686004784829303675805386449628526649248386187408876385719547618751374367346141872089112487871593587222725977276019728977522994504934632586119383810591734231109482418013754066968928413559487872317125425469080014695787394261967468500180085081949792096033402519421373612986397697374833941960921989366748215828618187382788942564169871384907977192150665539829089180518747776186909886473898959318624505129449417014000141439349974511481913099392890859853355761060327116120741012466611216105691537042958739761467690592289324196987303982906275770410568937781559903081202207424600731586888673001329015876386846690697425034637200054841348939840142287222516707146650107524816150675625539197118088812967823048218285365210661510291130424031482615435444965463013544461800082744715709465283530868554074210715802401368568580690077101805872779914762965957516034691428866407003536021600854408402975008936795663211281048406043275429595000206952490630163335998520191970091073605853699386352498705035324479161565269158937467105766518045112080035149388147029242545161416381342356758930742709093465264131780415540129094084004466701487911814676743898192926446601453447402027281617851468851209623533980303173540479447742764631637813801669590974969084591759068074617138936959466892359248905326818757755906523441726745419406438274124188321024610842036106750563114486601746582590504383591815847057119724860013901933315290468748946565137657859798856223593997568050117483759970492431335568580227630725825688782208611585643059583220517166555556653188932654507552275215207182095773146478139295150194979584100942061664663076910544588234737326697730360725790605221672097583721492708190541738365199507454914153848990835333497701883395470455629128872734844120239050258709726272023886832771856167242689310924675139665341712457495223199794032376091219236986452379723823728812174323536638203062572370884398146529703519822072824146808685561960083349910065153722268743353490494850772997783566029895486346185614844191803003642767101287025419852457725203848300704654299396247317169470449470523408615700509812214346225635870617602983734038970105658050795662895982334087720395290476631957186801715069861134601282305284142349445761035765007675344136579968648875122359018833942731800246868586917440324587711118035136743119003337460147352945207868276412014597825344623853513645542626907538025304890945313934019426194465265672184286381622755986803688884071379161408439526451271204908136130528749119004425417360133984416888848869697888040160705851349110922156501289650072202270303695131217882965360644869334511512458352586008215935548439568063617297767712622166442892946595025406479666440958267946995369884761941560673735858664472741867613484764680420244108889302932798405562828858817028532252088656786185308594121355687223737398120105314063816667006016418990409301172856955928693243998005217223163310281058568340262814393413212873006513442007108126209269621090480244482941209822282807565373734465033946246503768267279893726190961938005167779561182196381467215751924835747265866240407014310733112579020407689209855908335490573566047377776475235482409922199598687275439825086222928254660169411969551103975029688489663412957728065232876202450460610615997940933510299564890541551618580640812621887482802792950644070633089363214254918691253043778857035778536454473628983307042299364542240977821910842022557749881692968852539153325729076744781869304991691027137051650135981228653074670051907633319276540558226299100191664458985907538061555989733663141282746674736315079641473383902972028701041918209591767813217889698582465021820377962431032111844674741019705829277040372064214503250774365333490840251863038372145498831132530643227792204982785067044958349748926213378659712302152498568048724400039393677004684842376147661781709597621796458762997143507623947678536935076393173980437912505442637100164386155306077455606390460567960317553308875007506495678417507670573086577550629736091488295383300535280977952122118807106929661973874316272470924893057034063371539268747187019947587439752238663264934477911448097683271211969707861497973909352423238145252625926360220142538693849687596825252180615038955806805459574490210080337822326566519571726041639672742680324892867930361967567457541296756608099845964381654175193145484696156415005215561323711764786933245707554231479136414449846826303564782482239518595690723736410734979678319026020169542736641436475930525050785883464865425536922155556796005212764665815467394658719586350609357938139517355944826350304158689102001358506435023155660567601351653528003981041136875275773701343780967864544733279731364984176190664450077087755856277064095647814839409584528310466819651372358935171626475902298619798604775845519668376988551605318826606343678008176701391864728904022298529987855109619442215195163371005402937419369615547587097807734082730673072212694375312676650388853984104494048298458739693602288931424885487574883057619588327612444920321251674600022811597840050144858527249541735031104145151980938253968996101746842712206238118107836849354647369968946244951758044962239217391297047333230787999246940707740288805269707892537812641273315602634396066436850474703368767304335484906291570914823842269881709611791067250507291210806086968558781395995654920322753007514356155579698897213459790356922769823569225153305004050179688309934450351333976486320035414902888543686597877586989348068676801305090421168569937295625201731567513359188512749423483849972715793860531263903494119930561422559837196100678108569515232837667981132626729942558214726500531812124086233638344676107387405666123227014735456288196737420224267458235292895183383200370511957215474627387907692457478867032008897499955835026007910403907685247029395537438308488195678046595520581857792819383076923500894483357230014958427023870865411492480685187025952741835675003867596598224617608636709563518010894731115759433154019435658769086520877484191638550142431367749909125291496562073363339545212511908410643632849712254098382795475717136413812265222766693021362177087635576993921226969851639511016621825770585769089397542937990294236872823527689106992501948874117512245596537645084998560069089718443359095247717895448885302419273284307279369601275984141789014661889699097497498015945286545304548465968113204103364720221281728462319498776314041315285741544061096581628769346140008963799844878183488850618289672878636326359263826538664935411392186034485224645648298511974203303660337533712765940415742754871312931157779062893039886296355438240657143788879360173504892983731729694082779871544099565437321531705191592076908547993406074514145847996830496934055093637063952968777607183131933440982769929934414441407175619532934734409264543801988281648616026308438434962721498148963248194259108391082587666253193152115698785330561435088716021204925194145624566735256961859560935708652664905455680108800442298076338574542887824398107790004528142750953604517326175477260552686423087668749371539647794817532839122586209149617537085602965241679698892525559968162862102227106148572645444007364714008971607959887334856833652363805894584641794471268846738817610421731803923712625888845414244991823541969524480459503442127784421372180761619708898047277474101486337221138874343046980121261155370608037431087364533992917710409541666490099886085517697725600934781776512755801579320260207943409677972821479407320153421353294623157291623241285868821439519116692448398083754106451146964506311189835636088201028591605011860670036306422892446349648975443338098414238779357518504732241827878348178479682663974945134547490679015962060494935389073144135628861419036011605691601297227507528470223601361073190968855359039514930671661824113499365050397662140599600478100263379215394852320077367244974947974629508103266312707091277454280157062740398813714560013583239251575620145093095280204080301934271560481668117168480387853334169570276916047993774626876920645959604949743927937609025914580022355817490127016131168953956543385210174728876101518269566723589340005488506289926354131088290415700306194175514180373892437768113531868176921924398002083850922493441013943430919853915697221703146585585344083007965552024135317330845548417399728245650918578661524193980308445019837849309382986953867600554640692472813219037809130907129956011701067948553210821380405017328591639198214406757099701805012317927007551108310220717788278754258525481400001964991457044883925653602386543820662500804564982608957504516951633772327275744219047584825015179254995617136796766233933119533798767985488023820440122771156847304352259052121262223774580328651652929179577319170833747305096445768224459130777191658499533125130453050745464311081499142047654008240513930949518111884421887703533171141593546717754003675083186594771917668802126036717876273356905161809119545264822776742224777668688216896274946949914236915326464118052753124659909289223037896625974009508256847254840992365655416310895919420807619364020378102572581626433485614088042981075759021037455256351011483620283469449518479797395477042870521818859169816128102835826405153986715348010677105238598715278472344921568997703486246408177647201936424560336974087848157733978947636402069338100674079640612130893827693159026951852407448094617267170861699912412314320695219300095669190189708412381095108933442529867024061688237460421500906132305186900821611191745175307568917697615580402929955061339896082571657284700620232484410045592924614343826970080023209742578971530049407054807430295807192096969419144554392336595262918514070188177535458140543697809890394156502393217936640087660461971226715107824415137499085289612797068767654357700721012916232759940931416984705649239574213929432435803723290833210289366965024995675718391665931805913069992520511579177097584781748902064140253366198558854702552864541530551464460999675718516200288198735558974256079298285764594492670082170967143269944763573098355695360915939658866938447627945481778008891477879032465774804320732112322053584365144813211892189316095660137305300280492975566472149384680649961996684718363146565757156389828747758610594755942425819057757522601069719032667714291838447448429298788242500193623131702774508681510078291976444126161942062852226543513215727756196677916580447419161520619248452778277407454881795026889346809179387787436896455801263692841121754610880065702812807525278482044993314422303359397567346963326585769264756918593390018042648830043522181223075387528996197621379457925684140259189906389686350783015869028626492185468438941809463270993987180375751874873272943735226263157989966265241013429507835434992300368821466068170229458943265607685177591490366302294319185348296188227506661382569990414836754563624968734442535250233250354338012447103743419599907069660425136512154982153340487363463905375544651847418692475453599511163084688117784141503523040695558631698664310032536797324405452591315669853057206359820942666663449267088357138766324558254375733264594582743145405635313094008195139515293556188932250653267278739209164070237095339491301899833719767531126787060163225607171126184259113950910516975627232004382518258813181263056445836994038260469604839223348262618367548189264921690530342139164326926553235380498315602462752201466526640709352199378709240388954128031035594465671907923071362556289537281676443340259877816865617390974998961920278096074197274596572511349749352163180198548350324582305313101304886944360865148514376311974932413485525659447987129576328073637132713086399911632456273663951085931491938922461418016045558195264556613022614393839357777477385056038026615776303603398852229543189169586478418898361404373116286192996443968593446235601356789276261552596075196131815937038886420390734941256420662029287703439983955412653994461504286406244605379349229249326796357714549335199660632303110399841405268718062368602322970722137652389207109495674105819244872008392429349421954390262357055873380437870440798393745241704862026822529625193699740350164063032576610450980270333199553883347453959557370502445143711072585404486291640965528734774202486385959023488800446566976856391922805502518178978862716262943902400337131545371846195966732672950043319367119996764606321396973470348668366209958409207787421832208259656741180612763626452544077223360548365311876519812776174901551083406746670026363499046146595345351754360138046521502826020994450757257799962615142619245998655426417167782609652001943675252322272747954612538035731520681938504123628673614763071451249073765678527263239575099986165729532642756951247878524368979169667841301013697901869835696927309033212995802706388249992739712371121566548501413378247518301886029053527355789792267401666061391724466630299709652038752659623789637342941450697936973234585158093484851259936283455768492427756615178320954407331577192582528449158441105716069176082292099656705690889730405591502557405002617520192281057541293249034964923400070905725572422491399338847387593082993337265810691516263659268746618259280448708812508749413796399237699792857733647706292224693630772098331299604680570825646612996062895996884446214331331682291454289679996863461356894116087545794786355657537604774989498630345320521124667908153387584843066903053927749419618428405750172824622807458521823791741588851829839989552042378018393975321789479521872148221431994518920236495304155821941835121679603298543004079378212553053772001598213589821811886808503120694396866283935581489639110418574059556086984172562596449258598079163106925091822551656026311965836775703677422383188137442371730613159708709126049723499244534238151268878125629870726729243370010508307604958736640141092738349462784937718951523186606487036362407493758098709681347700236658851733776129083791473360312889852131194479900527749395404529881156100006348735331869081209929531764024495783518115209178641899956075056829818925363045360147434581477329057094837586560183738068243710221202390134929197678446762156537416075822506778330560429850098239440372517133535372668008339011148117626770437276625544264044562258588886269755524212182089375235548136927101744403956024582973226006997005997122394428479202366248934040541812515263758134259056557186449331206665111414698411557062473247868040676460308595188302341889484755117969155272494595978042520122944488389594972363094378164230169354517386738048333632008543590969760215848414600433430827308233973702074220588625039205069137975921355369680675159011157487856680717688109218502976396782257378969900350645739898553048725609165342533116494574612249835258884548477642137908608666022847658593234405885025913189331489168325005592608194063051035060674839272130824952989338795548140512287903045213981524078343272400877358130114462647969138827680736411749586471883930618238290047313700005064091006775745546300877558750021054492682789456022194591932335168303567868909521520317754354984252404109711080903179569856289530233490002024746995578805283903949886622452281333407892315859265492929359147816687762229882242819048196442486095127036476620520302890068111018853545135989465992276204300722156098637339828732278604937876263376938569501322612926803050256503187190057464794551948739558103994068946148085323892624258142241413534843603831077889297588023008809072725238195794452157060183381014607082392361699282961828301625029944185353642468194369007261794796959436937039902082386041406903382199074400611051217896705269945990837483010870896470390938652323913614492457198689416159530632307647820395161038726352565725776345862670349557012313248593316252144672285300782658810257131407414636679976857120897143181365305842130658578262460848682349849822171184103356967249098936549835683847237035721505607462473430380580217036061271792887691044868319519098188754440912929953901887619937447722097987595747580148744759421382421725458024471043404589420939637449752708110702441673558902080701424783439190692599091215050280132656491729964443367414156315582333800671907095306412218092768769136760317829831987049863610136135916178001994518625825055086259811409536779610212885108809295496456752402094382801963804460762504087436043151859254062055653004130428839557875875016203317051944242802760170632695429775867296081535930412588961975559021943278783509132582756050344182564452842818476904909664296461104671390612427607868321559590450178784712168643286285606476709884901348557177559221803094526759494257588391042097591531710487870807893624442282977481225308902642525412845527534822918792895193130526219313406181770329356389591801427783206835834209004628139114338389044748177215774345100891728991705985228268126545649441173901943000455046726276915862415079557552481293686183618976955189837371707030238663842204877000268428056237498398650617267866082209267862146670599906460264548254391541357806946158848142892508120521243377042548157208296183279787114711087162276173684386647266778949839046795335674266456857896193229175728925637629692743486563837788238336534995150815011750137555431006136293417194514821151061255271153310398991299034755248564815472216893847847618982272388578282328991026487128486216395715758300304767073177165677919700955264093109400959532918238091089219518861502937911345740576113865503149742131510686963288761404669683841979966251950029859278293761522466976769830592430567264008091643063130800062376875067139033420872664827078624943882413987444264422092714858929263794705362786311147138734162029383485842639922055463564491238071272958030955860021861182136047830838491405793403258769698851819875110363057492342324030430647742689445682726081129684122385763193584628236774346196104403908233708829629039687793604197854270703035038375484777943790501664743090602714327904788201741935390453769828292172790189299907980143146725249557596738931197853763273028928184476471300180996786256211165903471294441553395303575188722973204236215353995560790494744137568030572725338790467302479341476009375877954367754744749833372817955627274222326261078506507171027712604616770299478918776157072313495011361619182700638849604578093723367486821545534074341975211521838026929802169233237073452511351384541143017581495846458294652430088464720396846435691955383459861887826100720523605063452851924130542965279404121022593826003526224252346583979204793261990982749520461555494303519831798537348259815313298021962581731885594256951830446444277970491489415486743742088428952847185966661866493149217553991935443028745387143625759845230748018925245921985792766530622406993273737352059996800737859249666426516182044721590911655117817450157585183132330861286606708841445747415988850098839543240752660978847727396678045512188241143217752935341791680807171276787467454893748836829053414925217644122983255597112619646496105404124567853780691406631169647198868275819271746598201562136252272114073306883013456213846307710071619533281248370605215780804753486768691109623456634213129937482398600975451562316654443474765261440128366716471389391818050643811057511758781006285275346335539941447909879760485812672780901646725298737048904394084893618833903409304337584609421422140852684193686487719697928559835788325149254317815438729752451960653571309725037896162378669026846206653927378429957225834409422119115673379622516463806617633826788709187071937021867656403039874042573442375482604743443742545991524641620932955445330738418393176099377453034370716876775494832794100128024781171386294439001211095525651200291554938540763876472777353518577240541312840357392922787452768726538243885956364651847230038393710956238079664885401680307155977720568096451434570265190823673128021358242716870160991028863283064044222820986225326083159722976956766835268321462462455022743532420377384647328276374392654557283422341567236308111871141725291349233521770848733037409338223112870744735851191000833863109797832262126767660461672949048761846659224476228744269319194925144574228531207353762509157638843245432062086373458586796477508133477251522511056909356879135748962121229905681316010184268345912600180237757055521535304175303098163214300434104075913308181550411418099786228995247311959415668711395612276416008546725108532991508353862740382284447321231503356094590382379322920549505992372618397698304306032336870845950909813643997376699309417767746004993731794704141850308023772709286617687893418133212965682422820153899718012767924194023233835526677714340075297772959794253026133786364117376532987118687361304532441649247695194014710674668013483701278700344549785315745745876394254581506088574775477181205551681183678821571483057426533936073540520257805992639089595139899625782470751924843568413859311223565498006717631812085294591675071726937147686716696973024884765333772759392601872339864172075789428418081523574133196830396054137438844074936248679817317247837643610994120216533548061905326484879895687092444193646818499389443937566659416022425648687391474925661591109931655902538031752611328101405266823744601314508010312081693228322210358990575725732616896156043040361734457003380575608232596703976848995595224060785538123361231703799842460246304868258176882584538925575593956516809831205537525977971989401367550643957624711324607931699339246765254921727770009921783121567784925480420008490047767758156651269833909763150825534842187702279907696041036980208766089751856035928765983841005464204306747219727806428414048944784317727990778985784199635818119973315135742278902544432723523006028182939969485034332137549832874914553611445365141101907711455906904352853918539782135003882248133480254882938345840982523991450446562622612005291711257175702292272239869708737323038997657826195386258621888490600022948076705872266479631779546519547935909235156851751138064480176981315514644621633177242583768589018382045154567444821085939174908387872353988271950982401548529355926505196282674768011571743787612776831891846205257536969365401256230449379102030456917252218373401860059656200234979087729493681863646175315386663846611297457164359646515945454535462628247618328792753929195120823361524993751851506499994836403836621617622346437348226415023287911562101299569035464175090258227717411202259468164298648960282377178860599657023852406942858447622744705953947452314862053283270431240774737720014211119748742847812040238512677838233364581635881128569860867889158753353874691924577178640658952746703927065622871274781473725611849375795059839596024502017326303202000697511227498346654668150124504173216139675624358980143015796758502419632792181605004319912988265834109504004039875148730232025662065347346886097937147589716047187143551648605839232540077201814793250544431950612060850128697253621463512865840422020314972084145995969460310782264271601318953757892522445185357103664597207333034514103863465251621200748154730314628422711251172784645624111939013401313554979302039751814368027032623434956217897431391567101563301077151755512017864695051096522272552375946194325291696214342629441311300859783228025055651840288400569418500465829017698055281227539551572665298695200737003745074018475953239291005670607499965680049864848753235249592909836585576109270483692120974190091465850242134434729269887881667155064665865174782374386485607536310053109150808621914023076054698295355148870688119890032483676700609173498293530509948179715573667752488762972997303031960014976489168766204910785231047047382219442690394252042713079182456975905161012559195838127353639211142616680040383564422296776689790349587167920241761478543793040772414253869788838027325929899295335724635581982815977689348001883707831767614466468666145259024359369016925967816320249761108749383967149712917129610228940248150150941302144111414859555179449906160979904919807451161317289088786138420685006893349927884080090557273437946729884026183562615612152174929535061364038164868161339253682682468250900543457175123864734569604750628433521698655740992707090985228294771369165212934339405584536163216723312471573007995833742977565996214859426509802367604480830960810379623365268295051840510570663177870778894060119829893895806454109049242028721751884622220322982215216433953782981453980538839868550582573991163909037122716510235665252502318254877596484625288989241065727903847823294067208114714156819465858740714001632080755793755693819404618979839109862816513882390223166052226825431056726414923216545598154064586470191776336555032733629192590273931025182993548396387314662120106963466942313239079227621898628826590672619686966099464318794168403065027765057158519258991755821963695744674352369647206172632234648133273902924120134182640194532079302570163316882824461769327599042856819285127647416290787837194113156453920274002270536988130887910467193407718315687167214072902677994893081460347042176442760317760904175182654155652288226751900762371251592434247072269948981080785544392755176189520144832404236682794012769237517751733989877329649735681770631374964444116686791100042092542202844565030583714195530411480506761020897205184937101932866353174852523388334506697071916754016266164014296018815064453873409857416801102017864401364976849746733505805979341610070571851818371901562407604857375098083574447891299296300065374067263029032233780499040761017305945657046404918497046030887220176990411334343772999886688127574848428102989757772824564668583522768927647562363451875577502660005590309741750107968485521757401985380135426386927385739083653627693870257662982604455457400155903115105497891642938759810452472387105942491201546152488628765885835244078321288291481820614591615179632074606082083286716815882546411224917850496245908339891559685653268714820200644303487735344279672568374218211434507313138042649604498113657901231223201973184807554648229784162762241785836411256840503203296379002745381699882060682254993873491246717298151320683066581252707804433457166563660631445462921069784563552616283512947466381755700027829209725960037604461901709886381184765396618438838621763108122738938770008677006780038725969548055871165417511794939848429381810672519655275378028585064435151678635399348086949852208616206991847329961667509277905767475971984274402336886900249662805397264305104820869777509903417979365129659992368758082508275967974376201675740015340558903556803388680927198181750493472352438458311921469158355315714085880315057778875182935129543241248574105091472568031073888966354749709692637523155675177465960782392235932040547612939786234543730046330215364942739543235891454141859695401761492666680697604272498606505688970124874879193396400757912444006687603503187206724668966014655618875049178147762132476570618006029149549531864770741814903388317656648310539991053902734942330726794040050444789581171980252112040056246045651116544114218075433503423691823751053943477469837046324206051764086672771447308517874709600871190479161430816175648407915334576111547341783070803596173846570354442926127993422583733210116210890748910858406423322309381611716566375512411834165397847467666069091444786182906614989298414695532467577706247849535568055721561222194118695148743510422489822943295403637050838151320606127236601980636359381665936716370818907538231116452019801297800209525585525443725952320849695578248669304470652203398558540691166002577810948055287934070885418553880885384845252693650105085864645304960970785847570439020033567340782521931568333645918295764809725745962984199719861015241409348872326910589344807947634094491265456286791577612049655170273409756824642113055798727050961594826177089912043826810877385463284819439894790761544194419451907552165499600612939587326177083124704815428143119943669280990071126956896706433045020376989374993023861598845044942358206991952875714165976684207600391810872977453348455170163671631107799172128163737478047239116956164995735106443995331253042472920501993752684339745658043340158379718725433032938404044175716246591688600801243116725025070670949533520730512905153545755589556591788636258768519994026947893148351194826116747915888735167183845792252360279639704168074679991581277562863842016419317022472382041828135108587994950485272885384740641692518309235559865703616851182449029542491788510605707022882948495448194361457568340185934582667786428181224419773991565727528052840201824413935715620898326165479107475419230881316451880821895949342564421052399657590736566395395995454986726505789371457585208107613326836369209463913865790285869858851454272969235563623280404837542934328869198819655557199826771505220231103800342708065964518893551409828963762357631385865457877572247546104269586199333640716859145627865033380307904796805163243876161038767329239942997845076497748534588085406599473041024958490422268550521589426791509396179408151811476903821725208143814535279861100318884265174583711801594514645967417423383956943745422142848657461243917469906713801124491960864936163739918021652417280573981890378828774314152707126755983828431441294695865980218333797906280419014603486608790598167340102430866129964338168740121656036983503357063049335787029753760795267978076910187971139453882963261720068612205467601590893552557873349629397382437483160069266030926181832770102546783907501822410374460711112775793339190023774843615212316937883925848625103933142329122732065997707742619757478369101666536192668644678534921090303222955601016073083780775795137938651419822412096615698973655229418806622071130104560241566144863824005226272717485188078635832297657881626435512848413236671182410422501905447431215828312213040210756656282879139021913687098106228682498488312666440271718098086049706083750834425245841223567955409929416055822305358318683565908296526223656066105038823184850916186228547240880360086947279068965156097579404120058472500772798135337997035484362858563582729535486602493550306248461281750955471525606562471853046914553656459110897648109985309442186327923182181019953711161404560752180150860627161251615704401189284842088596497767178697952534892291275788254893589649829196369560828468508132878651083956358856991541198303323156916236231319106544242175789249212832321936595533577155267034648479163214488782632816328231515280566326828440777904683132112036188922325755564139874074056865837197559050901245818261050235605066012303481862881496448296047051068847012353460258785798172880222648147320402765029860348838637567041204848375441889179542332630628527292526119238300288901216158218021722702483002243812022568160866146507888661908516074514047113277610551408565665541807897740890267727684743532100153419163169972256580667852509479114161520785042196672560571436231445299300769276381916423190959427813674076922052887566200901273045273988175071897041084368730934490356844038746197581296546471791372714206777644506508443668904786685208436404118847311892805862780880341370093433049171246700673178872093053870017422725022625883536755618724803303036862529981737777072757428723190662877319832774470871088963314845957879485308066386893552193299843983162598156043304409729198614061545145951782198179911284045808932946655771458277687200083795360368686648184077214070921886981100414662523221379673452506522564045159629863003930598730289651713543788844517503715365842120392543937522132429433070941896217578203244551945516687616842958612114790165886618403644450253382699107818600963631337516401784742453808212581127905650302680513154385530658425610364270202874163166101778215407054244388103393698311306255958722024344522175088867190720305690089984381972936009509535771110067111416866404789336273006834657690602613718064173464561720159255058750562611718486097850831190469579325227660332094655725052473142458871957285692405483153293728891634439593126612988013232042345428518416415508678928556750430510673512887161800963654161739556943099505744574577204608039907324521451213150176774901653321107604056468688337097239416824493257335941207347128095736545192735966609388473879260653065733689209085982244961628142538359608611499568136576708338503530363947429910989019747694119911685541123834365484090109947680532184270836564407904230164361610768420285703621607801385677377728690480457982539126410936732487710833597395542284018506868975809273085239665285341808958214610893387658500597328740801781854560691597532408253295234863702239034207601381824574916669370295591589043392322550834469247776698216583044466355227939701639478432020206494352463915297964070110964545436758749370587389663819217792434129485540559836389625176995456564819297018206092115973541663412355567186460498971936508351525982753813895112647765783703310565278927380501735528056553791426222204380751402518398962795806229889904422610970070483058558081971160344268896385789548354281653487047110406688149791160576614084834514734551720343280449230282498217157995624907515297950105267033855669606768163774730801529720668416006002394521915493931148857838708856035553777249860755974343557870771197974213129042004180130677335930837339673724453125589944795110756945974938446552871090339270318301822660308689852637406012891604939244642387241042280679237534459036537380685821855068001270985203349035095294597919364902372491119199858396398644290757704210481042405743729753759456363644025556159093050057737588565036642534919164371723761033856830337272935125434801116113058554803693304160701531855733898243436406019667844792090094434253602836206980095257358247668163810880437006663088354633272862270754292367061268561918323856243140508492811326323193813972147867956011204480756314202536577844158979365635732074346864503610729378630749503857044636215082254009685017343455805577697361789974549219075274970126361462996247142335410066863000817594586965632493465019949702892628314641339111670434968065186222917331469726501649184219975460707384931606853036871311061041153175149754736139508444457689564283438843617646309706824806494638999185310574557281325000561421292220269601522378904322339485641826766495226610061651098941112556548799216501477747692392849888832944795643189349601908481647377123647707963838283480430003293536248943812209248277876610154963188051123401147455254630615613301616347519393889860969785825800547279174323743052600080894199784965528082134761837699201946737562308186055422128196611295414246610259103557943814269077579657016449419163754982644059963614222037275039079354850078932657499970382803183917765495161141792327362485442210037358845564276328163679496860747098661784227507926629471225146712792662865060125443275154174935834520565087879897885346109723173464231875181253280261907983095299243826631538685515565967826629667690230733387501765134646046320039170060630713993982313715677415180949502746420877335081284957564474967923951435151404577088747659107586868429153689939030549485203080217998344567692541928557568969099669435099275447335712780782054469135639803506422665446169330083116935671059128417263228141236640550281443573790780737603218221606810561128508657102981297510527690548349205000222269993089155547883882374296044137868571922897089323562222148402827890984172227551686316769816334455359198740314557484037879231739947801608677738774522747881204652618514459702575698500600725017116432478014818769169035191005709352709083343567697957664576394006945030280009996245438093186064300303218936605270147670531504947083424558762566061734082236007588145445934467772869004623710201903858235389630149072769880119730124240187954095470284613652823322523692940037848655755813003621141695844118025902419819102150239306303103646120496935714926464849468319984249256206607021188879070978309518343614818866201843750701260631225390343774833400767906435786150109054671383907572889016189297079048453659538402650455917879662187255507561536174910027244345898737650101218786825143952245313803283950849336772701242453253393211716175849402318248825552328555513192728987171689411121778601977505919663553070570832951134097257304716691350800934133856098393007298333700238420568687031850250648381786034356036019670394067297503098852072901183252940248013406165038950266209833037383998871442435102207275520815919436814881771176584176832602539414647659712631496706411947418681768648335443975321240886744735805067967420346050932763951693241244311656252981544447240337862292767678849483315080733181309591269331008574859581274030186245767939783409163423379274270358897520385601338936964972260983045500270908632621857531807692147786688239616333301277997348960503200285743717325522881653067931414504532309001487073188410812004621492193908259209297742709757870940647798291616714281314911226140673982187385009762214506829380390841149655796478977383421418172506891796187638631724485208916998116296553304354850079229356562751802237059908087426458941263855890027214000105145771524915239333136894465345235139534303027007749985679017151239950497346106309937808760807224363381776630675861140154253572151239977854040686629505295550088152813103513628736095732976880839950517273696259778939789984815043799602496711694233858947353706669602293142385360858836713812195505303290050876515299699142402297321257844529412304995027869754704561592593381301412448507754461394708290082044634197456109532778628573002021773927096293222992716807515317855870332167580397333176282745801790574809753988989488998326114343034448366040459822483642484936963521934383430667904653418154746210114042081492851045081932653708897298885732201833748005341893546839988439517685972812448293762962307725889117586675682176189504413146680963420355582884362191277874702667589597622189739169093235893393769864389429832424852105353572845036774257900541129116103923858635399106723194737145188793792220654310422500515578757986479450920636061877723005696639243495807190589416287795831875122115670061390516856981237042349253312804043203455209910307380443993063815086168860764151972114977698599866635742774072755532845922103871317989570220271179179562991170971984745081800811941406641710712247460301130559147747526448491732877789117069457955483029975288498515613436557767249157210232650256981775323719422000612941038785856985212144116780295399235126298170762378550634896788026736483867776741042629015875004088296144383377971243657788789258561050785069719949655256415620916739502931937447525205150792566140747315058061021761857379864594196663062256518063620112213170873786072037249981641318208797404733704356162609671641775993466833960834313757751848893390433039078276850611658261493962634570506556941230578281073114669414747171792316613465366308981471452070525574311534384884758446762182234147778416759822582997030615610298456651420663599590853092741027693856991163436688517137604275238518201492509800371997980721251677157964049662350635948736466913209537213926282433528450834676778838467703575938581117098175845128248490617067886182120435904550926761131503807406011347932261388162891601730203326110177468656293615147833970417512879225922143862879508389473209420034825767384564415819107094530014086302632784342399864859832150305108871852464460626746704637979373060749047336947039017192765886852938339420019484406505895557019363767890836579954012792365010407213014373187802143435995632924304744385130403938412898811643558000190263971538251960889123854174145398623472090005024031531906251814772591834726885856910483283027160929808888785960367468646667145085352513076469996243028889701632433980783373485783730363658359280425296690637556360733468196240934698881060971304717451245774557306356213598764701791569988273294448861696035728653795072915864806370479868874319920153557844845123461673764077969825107966274787540768152009189413636552809857495599549003721238307642037889676905341189644533557964117266828011022464972336871384029129327266873024718757719572056445143517940125056698609712820704774918614598945290994066769020014369427792306870170078847659412500610586804202041870969264873406340766017957139460859037974177092029009832261209173095833709684831053556083332210726136045209346145550170775819596277331771283637493810285548883141210916341675394562793445531087494190757350375948412758125361522902990264526096764601737394436576459085402175752217716856379727707678856335208913936005172780938797712396802999130008497599550799876177065341500719011311618069947503683036184081991786455031332650335769337432997417335438653134523922171394708274868369171930825570051774117354721145124449667135812760997181896041658522911510846868867698306040550077671759939057175252340999297628165985800180605019909511931861682359310850748011713758121510918868222040315815734301042788107819135345334773159187347631123516283777507746288173566164185679805958441987415850052554111229277146668817158732730093336474254106664489340315665299323463588389186938923271116280852349791547410456675764663101730763260496269079264139800502906649840816901371259095676441111146396850126360393184949533604269945142423193926899833141607430649190091404326277425127257596425511215799997555023705595838228282545777623850388365634357311995174625212044736208906906047154344764929622020744494850765505503249632364985801725111085665033599881278773853446291971740607253229022504072000203121966781952499962956325150371477217311222254330627943580014958656603344724719909799904118928040820876879238385369912994388895017989521475287272655945813155956232386181818897497706673079720749776421482042087179620073437773051856668123404295017690521729825639725201401668211220734097776598648639263999564776381389772619933495008402681011344663437851009760987868985297165338180650714342573930416244388751917157792209243280063756300156592919146321694754134645366948125871615448621898196161635658998711410872571681893801631530633130048515037965986549106973405416457523380541603736512692945571705591468261242018737393265123723636846354611401423597641013316458557725440650295978702585020925549805892921587371989127847036857563322555881981409129136266487787317910165878553784454998279452457920283106257834980561060179218742946457366677994001870673044773114472657808827894081707786148040763061221398415782627675125808292063110003019937087903575538547117284725248724537224198158064770245045835985315640661386197369191217028083635342205025476154575219884606264179236906708178853001120519204509302904914082243509586017989410501402476180456939582742090833675182289065138619032862294078327415140369240490672767690982220570460399174558707794329459068059857363345275486871199717569721492672092231005075903924424079426057882226386711901815516186786343822965562838835526650994479452677633111895803805960758792061967735023840493744661640087026168594566683534628273450070648941217836652260575618969589326592817870722807534287453560013051401909746194806338547006323111398976400521735189450902279921707180797796040909959450859263176429437683431139081689170780487581229835735169464796003101170356007142713922526269111887827418182686763503152383792852459417693396197408120917507685456241229359157175906909273278902011493178223974177512923406903259332951538077318721611799087601535425452668942239115722516160860163609268384610321471389130782977814634253911712576769235025761133883712429876423423707130642419578863883596660056057462565308548521570381441527145999425858051607115359733612240036785486170692946921184648913059568245749633074500271797271884973934767801089202120387357013698485083923559654695368191888129849297405830247076507723625107047293876319897228263794283484979616739832448712934943676412363774933162468546354131311590669495416538081978481471161843363553079809819772827821637279114777941620895258735567099418515732651081359277677394455355705293028578603324490993168043288133521065475890135608778015679996339015820222866430993717150530303633303764171738508834995902012320323303867202834536944272343233017038908648305500112862798150955343648036337975015174998801506599113637840751991898573800608692498944067869422961856863029964318483919120953272363925983559747362452726552261824599765367466961632813526562319201949518420812302647834348035694234775560912521690373822878538029442520238944344098713561057083924496889304574266918494123570330481193790950869085711443264121242349360038217898420504172090939088752344938077224000379836977884702860252637361703268763741284550553814612756714981587292132713317363075485627585575459200318721771773439557439927819190812440923839508255814176447478866249457852388723085440237120402240924494992181401481732726074535389426332335583929840794575366450277047267383578946465908225503174739752168577164896525217207559026802412290445473501793920802741801879388548087072565392915796670403198493348733093240827952999081401381304118819318356676574585538592440314466722175985387104095119725278006682646497167844206771039496653489638384191025946976287755545743916897204051855566799672020480303846973560413411221257263993915624019956197678816131736954671771118401378306541220853129291384091171781926812659297560204500125253682251981067176782268850006200544613259656757170114493889662357371867663128510500465757050333385002894148250564517476424632865383167624003458173525760227687516844627552160016515904453108408329559352149908899820856138606405810251438234364000353391030229745254890570877275516483761841264488255547410252428977378399365450054560955536914875644174853433856886560647098273260676701590805670539121849817348105911234570802741533674402613105823881186355947015624100110845626079767370388252719359495064412066002463908302794642027285062218011577333600505540950573225475425966765010376518502507084602148933891199955882586002639226270557254613953074193947737607149139629966598001820887297954472607569084938827237606990495554610998921864781167508423519693812259085187799108968930960284825915808629722143267900208408995728204230205067167214285867795405066618433751274001148886180821992847083853917989825906783117411010155979026575139155268817578924431532861666542414772083316407561362452292406441175536702420716661659297548245101543229926737586776614441981823161538703136320754060767807030784660670214548889614795141897645144066240283395715825233343263823507242824301256631763037393309997247135477317118862270618420970217334237283311874666514618760925918675059560485366286903393020598190827703850999231620250872343721819862887745301874067811506911256016781124717479662773542635548731566785130544981703549796210324876834560152539341169676294094279374108432306109269363565624200807290241639743148166629229081421013048677119895182653488238844430653222513712866920043068945203449229678807219509929621576770691220115226558601288189629918960759219203679514516724037961976721557576057406833353933616528674143355663290125042988435358345416998736186046048853110424254994138867516312657136631531195492205755558290761517389168680650050501013410001750080375004455683491719530518277740925315752795836746002774176356165962120657802886086472508224228405903112541392126344165523259143907397777710376834182304394073779225963599401657228397107342387826683250335870510875556635823578934765074444129294499299588612059902417279159609265649862220034067668814552373110625385713029145750597427059043873004171408807795214864002031786768881198566449235222946565185297154395649250154901477887770493710306731264144973376147322518039656461260384455625029805567612498048329984300804386612519678294469582336738850307536671361359939244644261305134723960491647745854867165659532174771176713801304437744959199152429530148753010566514040930516092891858459325079006727917650916877488955775041257280834653220101736244399992683212091515528928858866202954279464774962229473011287346774698658069513742713542002748589878478653039288123705129670853277513540098916074728544796270454598819040765798371433560711665704016829576079876616753222455258236232255164551076537498264778220757756464453194965472681033645193798982283498261813322062628913716828062552984277817352775676020868256764786568523666140658617369269775099127778672204632722611746952549220185298717267480976921393316502186011463928590779087580234808130912449240106835200456012983634847743360691075928217116592641323016176015659691353289293310027707639455445216497852421166994691901002268488339267308124547870580443670593916594789518271644043899121746091309155848990971383092347331636805530572650552969731839648933208086059058400695024581730807962262350754544924695416045751003498401462072805751784589232413840895660417036953680378077534155081790956053173581997402513560817968118729363950246747337645857037132952931092139713828420644685763003727836474519662696797571662804442278269157894723966439815314168384460913960238290017790288235409110960523355574042655082214911509081183645389405615235184414653335896072278384336416269373243726339604520244631931439340847341310528265658566357323013790405046092353960451929322081689026311657901243433025478433417065166110267750489179537588771812008368348679251529668260058993437455187857066049877263943391024084854850154346339543034243880668186081202706048729560192808233220319714858102241462859721660139460443462075721474446127118748229222651019058482819004884048978638909759422481174242349200811955457501358379931544200537147169881607883316917086973717082952240807069343514557714337818002128868727895270725558781810212764327988974150885042385867361011887978997805106526729555974158139570310861477620068304336665901070238115515860651009744308283919371549403682652588493990008270732476925847546882990790739990204776568388290486138575051372716138165244275244359066586071065955853777071086864834033501458834144371718691246038812921167971987807683784159685664332436199315077700171764915688415200584700059564727288314267883792377786017702623410015988072087114533157164109772155562388412912249686272099416559906047712060374673913092054546128846940034669084864304496710381605880543248830114378449720820976909551185611226964961438560815610034083775760876212665630640158322558181901589637314512011900682226347395105387238843272733950015356636355238414604169078851140570814140538085430943638456371260623437868106132542802391060807831542904525319617582891306295588543015961947810296801372151449117821137890842346327721895384343364318591421708756218331226725157960791395136483171074788878769591968276871504166994193056053721546006712466802713441913490470712022206293643933740233016860668990256503922534907585536880928049161134115075075782505716708618828341635994628140849382048495545887751330991390476120924898877224005487134649926451729984945579300715948627200091814290482324702522134492091827652419451317603650793293953763048517157942391433889049028366027212819249430570512961088574475214981469620994296915736401122905181483526065885201371662596637805409667945861881500816460861780220464727010768022453274492316176158857954934319865154567090328289439142401009428115798752757761412270634846550714105308184957798674075018615323967140654533036535623162874015597422183967360030395375004338283388644777039480211229638732203009296589621108143410479965841911571668469603030752134136862549319043149967363849435400086675964650980415393732173909490453625389507513139132685631876418429480920069618719550865853921738493070505561519855972190019237628795835130455780407992093228464547200295082196461244289376535510419201600598176168590872418621976674460930057469422504220375864770610330442545944946892580958620594972904246565755483823514388415661894832539093880009195961818938057560990880755874927667524422610269221950403081579982435794930312665050291638209357474499324073942836934042215170549293211443714028812079499519915018297130493438763792497794116246325860019477397775427455771888083027325318236043365113663905851351529403100430164920763361711367983103592185505419842331880227921329205610420076470035101555554753829255903738178205281681120047131241987286708807674132870707175736637118350490409139575740394389283061210557985642410161498600389441648021439880355350643320330238375977063750326600581539597594906462808619647742756348045391058404023402106939248265038014370858310463498862895689671574607532959823869562353799907027131922290438576209805747850002698018007635663978601904998061871631661162508928907560883676998302309263921689279271602674362528985720235446129995171713952590972341175071040003806785108295511536430252606646838558481510094947794077047502146890010263725481779320961345354262661384298926139453002469704879006351777601857864882238140550025460896178486206474302645550711422372327351961362893878022349468788173299399031088780290184419454045221668981947266943014530753162245974791908994912013852676257461130770651981556555628338780294116445230691264840042221181713837307894004203937981109931172725392896979094894918898734268284310057203751993719736531282526537349653621259356015874969752010104704718086233661180780487823166199608492245416120457979748662447816887484163500046609491529784926620989078232396868692684987147094160366992338997043066107758820219174699782312977449118426770880000484708860864670970858964495304573919916440617039357554868232118662848012545921897298620711947384247038765282062911832446429623006041788889229523761573242567481789620207938177930558754967360388803126222826565055466358082308034073767523301892944798744040092008755354892445154175655703009750970289344694718860076758369934284548956652778305738718196262095173486790282969470906038686674501416609788500482338453372326167772186047979325241450695607367428132190368378447159634293235279175677466432597204386948151354334371861340542334629606515714751020790819705986265661498817741430349773114898810670564775470459764788012824032853342549421603796002225811974928904315827191305538061732152898682125301851994684134152565934654166408452527638225393263910377019802549015389927742478661041627735953787782639669082805359610987655607912392232221235699173003821932244999485602165981817842433213658501314500772700202433013008584760106701364430318377695468900080938905258634208545124253567706455613619827383517134740404006562086229127460423776487834073317771251632500633917915755999329740858837028670434236138395347663134929951164063527428372508534096833126969623864791101644606298936828383173325946415491674480756774547562898411486202366758171698173366211411663687567245339804647879848080988428668323530746100072598949127104636463480916740866130701789894348962382361621411661460781311394472696607358290536737811036920312595051033831247685956150890377602512054976797057171186783781275522866150423059919611542092022201665362019408872511640770589147295435133173492011121586152238236549038453630624868004075611042379454764551413310998695782284917091721603103038073777971269293061885454373589700498805260082919490475816262201014584764537678466691932338661819029385485439525693862851600014401186401631680717787595789337559096783821339466587106379260739891248843682903087080290232374366193089522125489400785036548716831899975969876528760019629283456300677197384038616735533862412139294768679277227433805935246837893701579268773981170826236994708363317450580237486689706626499524598249887866058502600268738827051684503844176660093809254152046710563433508703351316875769277670747921408548302811494572017043316010784002636965120243877308215688699649090255750126424628469475338961498806698054634678082937503594621280412078294184399926321448263684786266433247640601214180224902896385285941788542051171592384667510137838314478589349299817667403566758710926583902909323273006201916840831839882581426548082763907865612629406912842769979608455142442524669941589766203431010163022827393875676786277982622628630533028081835715417960802519389135430789242914590717803559099247863374114391621431334056106246659027517883689083228255758217912765865287919352046461108665829170161638092249000190022394756859544131301323424338075148993346999749949366059513246187329800342549121308682581556760133590692473237763311828314482560018283426131189708543130231281240427090665759043962166728481734772890039393948251824852712153723149442845880383033283234804662915724352527480890323657098774769193094320878200943977854062519465891666587281977393822070444477432361697270010010334451163214735205948483978884088342330642210419830576985106756726707582386859435887164430368294150054885313545213271438545796465922200389426266374865271549091233337549378568741024161999309987473281735082778299954173852423541469216294273591419099130977292127560844731576759753197683888143093796982839901973157911273132109273091798474178154349654362361830000171217629566837427946605277541187424642636424964331997803932767749565134308692661632187442870125130043476342511629864502299716053662985307497816446994713645681191602241963919672523498182867654230463093502979163115095155241935229185138572790868193994011292185933686252511161785011122391212261347966657710793769161668514486550236213630388819773316501535982123123032281912918508910789954689345565252721634750475359192397825786755618366830169810599379208315938042313130342411445781215378375582583122841768026363411521636583586305101766475792677876843603104027508723572688279467999603511919058126789179472859016595779198832417605044572499603080719312015948679694111977565978822165811982451001314451234373487507759762224601893758780167849027601377471508505488335028818986728618068015019098808364512071956858106143377923000818813727065853070947078189195723381062522919819938377066818943562902664055206691694125690737089389440745837147781135685098660729352184600406933059376207894701774933896213519590318720833296265688730454774045493186471806743010237793226859496231148609147416180849012320209360499890705709623894217570358719070948239840145363702956015900235781933572720256433276571415749088907895219814126583413075408906149217292283578480007140129747437548888235613995059166551266252179763256314831528030063270117657934503011622864532433209706297488522942934845440445263435517952748544961876214049338187488735690130969119624757510303321467051265152462298285153768589303835296660984175669538757188631134240879993049143269279167680656749978970223898205183924908350357382455674854680042961855429927748175635864666136044592439172507215051262362078592836410957079858662876188880490098228582250838418324981656830342347335447462564727509282453271835198496724693246961401206184591871350019694197352865440858211173883876177514708586912987456631482522012141201168718665365016684875211346143819475827777449923413942460882000211231376991701146862637892128956174146747544452787185917508063305996393750798124283538403279659995629325812402822767721133675463820999170449943112073949091184223896120115068867018623064131390515347626816205227906545880556174898369209193364346049367402645677923324680805668245887711262148674712346053556314373716858420002451452788079360063814950618052201236258071048479406190020723097826195443157991694850773580367118062537229839270801427653298528470160323808666627583333762218428707735449921035539658224807670329432029710707264811052160124185157055376707031257411068173736147208522177846423344423723066132744698310070392502573950069318434847394368654340417811732802859270516504425944989209728591605039192700620870544540542304271994080022949375225869425002702884362265756516594888992150780904725752146172795471141102229532424504356755631355659680371444459537594038938150392054351877511966996005841497285950545858079490820060048489283574425720888257737361375400953050827481832222978412565232947323366559999734635699827139562950418025819482760756357580871601676261011062642716612288303128939231058898288895823179848430828851969108850651702423957360581073308719069595774531701236658764407481347300073559172253278326265132547052300113051976582495401844192612176430874116707136677609457823489153863496754488386821371723322507989845305979874403259857637700958844795205202188322134107463278771242240151040608981662321729804682032168913486274990305186215943829386356032177249086481915257426034263296132546101819734353308673438710487232812395241614473632309543435668081738001421314926861956286116225802558935998899338923680656524664368000508783842543916611721724699736625118858927564840143595754374015801882597289750451657380905518324880198466666317327442345460622726608851278357940829388635098023754501140776607423270205216101114818932081288865633419025943891118598092495357793681876407433193337153904277717182062653507726828010718780669965707714427399260799092324109836693695073336936881009149441886609246284939073443989245410584476054091367009690179100116006593011486842657634779693971555284156941458862233832867834828676885381837109903517039499795253421591814433126030475513797676358070669165100208386939755887856910477816513198319378961035640591399675092588133150202380956447648933563998884753350313568598229173935843995820201239906623567464184606426634885857892401361612406221861251521807096348089450489028013416693097282012311731232904997066984585568898375667974456313604648734847883140385496399432810592533430501581158121579081754661861660116878531079528548330359973755069880066041361418088167905300099417712053474006515023375946558887566806578029786081959585019732533213169588024078722700909774426534814955161054411258202280741037683394700976279379090380864393790676113408031137209443022336033833775795661849531021147084050523216888580941310089457225647968314540720247720114343993182284668713034724380470347749351052024524356807537835039982133656437822569976299006009072835615261105706271647325211437208007831587327835549887528997598326565165510646788202882300408273871147644804985109144262367814767775012134681365269031106361086954198892756815423480822896612013433098406015614483215326766129782936711133227981719252597533295354621047425089645041126261430754932408896960014722206325100532092322405549503618555508657442080407063745258951618202959753158602895125048103305130554564874960167258082241837040933991742859165738597078402990008768714465131803832814402295780109541200108310624040022374088871341036774497755722257682330993782087044059714746505851117601091715464554184275824381278708618376311466547082325942403294318462994534340986542949511575126150468268351264535948914414684924090662613427947606316333205463444666873224375436434337914763885877110418616190427525610895990065464355968427881632007899455255285872847672780893490224976092086154718425907921341600594272703004307747424382406967475232738182637648514015252969896839344901717533403094320308122516227306687922307130653610548942942310307881981088583455581433483414215122608451822078858550922453967535799354813798249677538501852975083514070508573401442597798835213813313290373686470794983905960724557317699208450564890585523206577348836133974252078579123288658914908951927762932705021190577875394792748896074984740609236841803405681652889487139913985140067869099828466299401894376246557082852034709284348089686345644337719548175528916796973840393674622520209247044975683283766716329404709636968190567886202106646066233332073914026601648607601769611516542282616121593477899435326400495699339367503793383934809735474697764643836779408202352183607532558100137240893177989401232025669029699106939077727287224660063429142061897275075125021549955005548403386496292078045944730955790062503246396644026586146091068612002899658073313536418434819110028480469949064266568104485528521856790147211147820959255703407183303429226010539855108318342092185528540917575717079088828733599658962177017215715224279256182558557928662643233847437990070216147875494667869154400676546273851719770276579357378630086800088263823201673405462284671508042988292938855800538856329151462455937623640659290959211511806483761040937568697500973978179833421014888217279754274870764883004468224016075422118639127035348183800546897308691816628042246505864235702600138052353623869133037755882202019736277719773328597866295299895595240321934641574265832159187732229087574508880494770422550811320781446430764909759137868402368400214930096222420567429146185351313338993186649478543739515930145638119603875353604935465073012772555394171261554256979753965948337163937706073459075175924127917534711050251962840758316069354874470958901342539583877242288246469405428047166297058992641388898345152446097104000287581909442657537274237636507134002186295199247331350170335015769240109950668841792143584247547722995647508969149717694661711473742167312049867646328824243956044383505529897686574790713389411856804622868742524001773071821217382159125295906013439048298526586985673262960531687634777132673082697571162760390755613757172750021059774367556861422111034984026983184603716122623786861064161317913653782294868598369242316276698873712991371034712501526822845802975001504658061433723547079127851839092783927590840473440578489058855947889331682334242266556847244160556581045939934638769070525360994346073375070388456541416590089383816963450808525105899423712319944234832066408199630263910539938173715252298202430905767571610294950985924818609813871056588873396990824997333026186371132709523998020505615968646450190379127813382561299400859400035518577213112533722281364666214766286160562704603693817309638657897642686220777985428354313118145903884864414484015079571281805301433321468019375555774120909500074221527038009141811319073088302323487058946124406243341099516185906310722280648349107720079107142298939509408372902081279831096895819961386424220015288202711436128060304378135513017161665150574086906103953363097428281497944537915072460274033812056133085891008891505973346445251597938938188072331662127264903597882727469223732928709812776917538635816350556265032166068502723862415198286620751205139735292245914886620423585994212226389469795532204213173994163909320297048496191349201601639439147508076441102782000202265773720782242808034438432162411837438701177444367372665897611218553885857087344015893789943087524085337099671969466257809058277073652332299882949764800573264006489002197910431112197043581776934678472524857014683623569278929031449844198899947946848632997242451798672042321676974927401531860956356839153882919471593962908137781392087146546903137021613148170909648314055010686905937639150148319369250450065516669293159362013994833890132131485224653760442288319418607731933861174397870985170079185246638011925228536199483452239494486067406334915624951997093000823739779929558691786032290154256419052293372998596713054491629126058552474496619811198223652597753120647028155114262757929211458157923266562568569468404917254139157649095672426808540256815842657344268490876903818893860641483625842313015504762707449196026813802926158177264600824176882426537336612553853622428498753576663523957506497706589340423172826048649574464334056248334754566951916746067576269937860819727803554595344511395015675905996637033818969601998979672890745071043994822709274353065708432586385151817025137285721998702984706571948881384085434954863373618858008552686685852859177947266011633894785857019591787666111352252440908571573177769655238435362216039574096853957449948214056536914930375409729881696467695592156445190051171450566055782247328222356106995114958807382153394148529273157886267323179291763021095518361393681262658512442815584651573941711668734119049388643240625694957985651746457077335982428266257959845129040891102934047154756367954814170839348899610748759338238448915731214043657628973267878207593666386520105998364653167664304920354841598425573486158080691191821929445152020160216730964567375820045813680843911595438079214136383746503109092570556802557063654416212778925781419763403812560941611454132132316290791248627476752404188807552593984240103750258508075257180246946384930587160651814761727062208117009679666060703846729908009627987998044922695007152473639059963233918686074620139808474079989709988652482971599972652823146334471931926893865041746762430919056414943332552206650435697952632043211191314759856445745155826065014854729061909179052437578244629484509291228058825003889641473702676161978944309842425494743304438817828896775549789141549624168744460580906749931117038926849108081369509176871935812057554069450182657657318815884745914567672981931105747432322656163100883537710933931469478428877046020125514947817064822395656635270471995155599816184472164635928632434313304044365117538455466706226779799351392843991351294243400591438539242718671575209174665484568210660191348480955930311443211767712793274748893652354961209851184243380091061486442309931236183582084452634249279959686653632083278341229902593658280023177877971216782115365779282900796292865804260040588951705907951077120215570733259296199703797477699119077562989003210817050801629950547003215274113380528070852358086722628866586943670627489534844644268478197101083081716042484260900137841661802186156801445949921201491152251432049972447586940417326415492233083907693932983709029697679058448671713868943397462127534343985883794420611350342550605423140967138995506598361769593575354749771151635357333647977827537273644917544731955742830958850402298036897833086196942599304888785684728062196984626665366476911432318696953826110313038646156361137942740727726154204008598170467646916720236861421455523062284240010732296067820797314096334388314577931881772547927317162377214584210751038051282062304975355400454363313969160370491416060673453300800231024398016906423337252762285805873106512411730772309235897157343178320913595454991279764547753616473681712513704422071774699996541417085383170116791361355139774888916867205655665409932532803919222884584931071496079611396508730963593156245906988746858602189254418690122890132806436861725620629731475265488819415481233949432501124425390452051606636734449783182414529435372755381198610660825438241912762086317904516693016247901728163598070399635634996474698821592675905292286246709673575430992010063670281892140068758314245308461511982264650459200090484334579382003107944930763253156137385210132184580607245608091232915382536181141705512931654659620238410732096513625166950793125934473861298455850927570911536744451894949456938775996037664910468633682750519416265416492178063887550363821288953390904054119162751930407176493235884456730490989957776177211266110950129933833748232669257873992836177588591739638684513380281569306408956685454759563097364702647247622630923475955812912105568932757794020816335946460028002919068346690205120937898482839161956966390491786518270314236303025669548715368721096340703985931545956311289880459083186504092700531464982647235789192802498985855812465863546213460781069069712974732445894533315042918219048167996229964712120568037479642841413737347260242451662820044660152168739748263478740696505305118134738898712205717865219883014383101514183034429771053814401362231723547432930713734586738466428444225673538012181503942590412353142464464654999289909989673608929543139877058627036500358352697272131723533242202810502142263637642398461527046884920194913995078594183577592398762802825913876148037019031864283153490421833146631086208255189673367958499469003567235083116892694542741729526594300849132395092693163776038768724885130105398467286732594723919247707509191576605084746895422565161988978085397357530030479355787792900237753628408264281230549221082578657965883996411049392164197795585830701015276810019452608337600914803100721291633999305375933239527709270214578336741482420628168178213148096319567233872474470582749008387660520471534882225105014164846975934499289593194016032277964079713787794921315848277062658200261884493536596172728046585828569740166656992372246711350506322262758895993812327141396525329091149493548099035998087370190705253693012269501250616386027115339929016211978550506594512013391682441717138641862730317084039268256652414862642668483069949653174184168829500252328626872321079425650745016755079072536590377718022451442015441512401071820474853366505192725942870594426418276376833294725282730201425082647772646589261740056342041775671256492790619812733318676586739952621435552501216079677405795055720641058146404585732408632711039148466875199384386126395419260882548435292051361635610332759126689784153797970416160976518622624064899319746186235623426520314940744419710456813340086122817895351999487782422124559614128465295197050053843911918097964285437755169343810510332982058234445130350471017219473394347459953561620390085473910406493972054291406174892939490703878960496379305016678575322288475887424517830277586714121466577731004734342188763880361283374892727092965344962653764503897274135912682769928190309136389056251397511845268026681084030341787104255261959990589289183041283857507787336620500610854766426000118045483452562555987970805454029674207971520215487659463364703948760876578266503214306026714231110319612318848944423969141216253804603217218753288144899138995685760227320960897253242542308802607425983999905620371733083079410706026484179500845738387171151130130634093736376232529379570211423680376273558039230834262692797006522041706416505513817805459356022161969514804256832329871765387009616386734089255361898038223817843666918858323435961385414072925204973307007091364184142225445595546820804220669640869445114162324395001447904355637074967820628941437573955780224107620531143675287211069452926087012728922611643291736372221092258798524496512168331805367066431242577003727430955605705216197440655313656003427404272817814565145316004865516626269727313614644986481624263862944403107161270328918618025052277986775922236486145044424983337591690948890703689947698252086627749799377408079390293285509814712501736779704908360053594898461665274308385605343377749443786084188082099033716158183108599733798819925366616510085425390721381498126393778408032607002400025018109715252990338416315917468465474500192027599679426016517678575897476489836208768878622962378640247306947821729101219238608358640542739024074093872752222955969924227365296079450554686897759264884267272237878914660811420746153503685166140666240414280806270611301239377417402365037855476888948610151096930583663095153669479537406638361867019012397650286526221317658973081759469637057558760636588667592675581684008843489871623864220566021469935866816656658354246147163772745568522524136802021441375656185189444256638782576424772556070969979395942889625318978904055655300257552954017258830074017376224668231495063877408468311544180022220653495819706125032230819533573633440105727761523046204504705149229786428868329760468111415057710654513726162059168763237317934227472289215545257631525787795246777786182205835032122490863266026637265591425464842269737392286408732711804418466198854667775933235549737576716346732437697549708368957785523993007602561203962009196874711492916568096445299162095523914798328225509321284144373938241323653632063026413354256083046747187286336753065690790102137241709828397646924709782949885302819375861890545305132054076796966802405485127081565385318890201868155383047409072837665043604969579499732721845704907922048196767073113535275948240359779253045812306223718917279692697517820327970245924026166824950907121008883531942622517226607927541544386527470809538099809337350677446055563334907700997936107476918138830690020068898816347914428422925922702937570684890167319964081767680173958202715840735435608400960384382013300736938934811217341440162356113762269972036450180209326133988779738582877015501208086676426776962341137212002200917171805476974846107973012112605081809068893135976681747388674526425307426255090888007896842867584771934315658698648368611870339759361880365906133207797047958605183344711825343567033308114883390180965622370533310546111894663678901740231449574054604169910659794811290548727097468755338813359677976474100276971659493738013671104001485100776188061442496011910129726397504530080852258417654122260278915609724736678402059460666916892756875202732689496880925928187290154190921109617939699188174104102656752089070564242275426447650434675159355928937672896512903974354352885614722576670095595967544312584273580318191234177531402610366293012009172674250420320010373045173236869665320602396078471247390004347849374761653171537339928278826641232524853990400050644597396556314819995768148169613989394636583551566808810679327573476385291923633798338176369326900811562774183069371702529956408668625020357089136186399889259969426627941117617331308659643697985156523566944709008143101812106006548253948953580038815169553850054015532413752341585093077342070692755015708875948991813985149655032914325262250805092176108062766644745946916486721112613619889580486203681968337660132407068513198738866581635381447546728594633736117578078609626311876906150722068802770776304098338825836444467179302270840088182109866190011139237431916327586516731217778880195445052708860460721699444878082831744427685655432966941419397625487913467754688893775331693143243033122503448551542593606855822081388533088252822720936300506087139315888285556920893086699574562919621290738223656106981995196187580663202830556006210452710808043247906667154057896744931532813034977263537368643733140283864510351591223313618552799448113985433972208938112195685989148333735212222844867486308067216971116310852235560781279495168930715240980391963489633087469285474832627924548704865261411213662371523105464118186231085324170322303009084375608362035860727278346647852783499846809565812906460498323147311012376082950238959349087011222538086509717097536993174084349685226936352105698990189642430108001585889236300681519470011512642030040848075844563485741493789714476295207944863064757805957194517698754677714588921242758561099139837425185263479867765868713295096623874279411061155143770501436281823763445561073906334455386630291239067412364781944881935986904880012355157105189078004512122065635636551600976108654929939451418373364227382142274380781096806346116732420852612738629170648827586777813152010663408547009572964154342044790683167782849157410353521373443478464988670975271217821801090570731110340106311164929126379471889243466912432361531839552958833570658788690622233118531211302964995009691927228205403060064307165635909817845025657601400980423646892362777365870653101638371428419409783380699590173044269246809721256678888475528237629707926246397945048176825273902838277982403990122542484236502433191216980906359368158805867086643950940437595885646295830908044781915056858167020449241336505390163376505914842000073248345257050196692094679241676872334458717979781768735604751722803656168280610703969343610413110464118278831309137497514267879519130714118897496457048981785687249080613394350609699612178715465520368032033626634522042383450664876912866584966140437582185453812721840909105259855412081341140686327758597706996859705231801549490439482755815921730894138377249442750404977423748700579275686096538210955958928531916184266997567441077175189264559791429923785129485113995473461883271728016198795994603951592033361797270245966873043996147626752546614329143356149204404435377803778879303564684401557346550277092842145055219085366573486123902507119533171990143913726140616023321557811319261687523478717417981051882492534173192473240959924388752759701725543490015389699150146276391173938778434740908307000324281279355549429075711970987441073557082040265708560924899436403035292897261587556221315608971644089916209285862985944631116231499790601120143283247998764235348565618850185515910369682038479421483369534624692126402948398780361893047918222458716693647191932209747051433006364945495871899609155857510636506696933623473217058457311468300078846645230708941265006520608194463309602520997971910623225980466322410549360923315880398604393126485773278326462921729940112104761138131759156679567610397750328549469930051590088543873119536795336744122760136932095124343780041844162288918873255198041130009011810258219353189104313336859806824464113121132176226569707647829415557148057471882811291639246238890432828212894199229588903500644687081108945247751285911448539286167193160575091626762243495205600046630899323160630891019034435684299630549426307526602225167919946865785245700361878853314094109545333101490142530410947382216783221826709707693619771164104324182511522821607533033817500386498928943742661866851693893231448294684517139403363157497924194133629450853918998450871160507451337675715891976049288516963719384236193798303555614794083823157291542744465048627915715985901285243848945580413711702308036643476034509687307926967975766755719607194862294794776061668907769924319239168833565790821001023527993644925866668447274721701864385410954293613054297354043088796798416626576937764751158555760474089349745205271892010688202998584710866852910375701663604368746959579056972367052772116195731061669774905340942254348638624038578604950134804854317494199957402730475998684951371137660891676401060770869003754326166485492486652048449588298107879873743635888074503728797351488459415222216890966509221082077121868431853505131375066164390508617249688189642397999690758820693877363996084694642416761846606765734461119701481873923208480563312197904126829380998755452266426441196655141265448873841175388325965297050218215794529382693860899489440998264235348914668487650892435123352167097813091405616025883337728925444492757431152680251378653216962741538397996064859478018507370290544025493513704944287173621046741151378103693586549404371353779173573956237141771856905651580506978875252295405784653235385080647067823537952698409083630296544132129637752612240085392467368234656947351419553668503202327399080125305424177383427011034324525887208089863725282880162536757924236431811270052866376847280263155028277058489324182881284297324404590972808855018250923753983444847856988391873166509617252581002997103039160746958489172170417288199952816504138749270971617901709637391111952786055878158739642219619446277578151473536530551423199943021897095628051223084884081117393318001996848755375730405014847807148092067124647970388824025734870099859188743057342649421596458801736382816642576679559783169453741465580919160861105170039879341911999462607539486324938613145915419596495228872860482621829814758721009777393783631202685512530491262692436853525743644903782872351577045670037335695694199837965541353064044865769924401630149253936554332761859012990660323019394382624865270600522802281878015146276806639807351982211429587096719277931963379960978047832286513837246629748317374958998725334682721422873225021484114943186981572054349029231879087912512162657524502757323110522251085375048906708101261595268366535511008789025338443872656043366201925540548052661789622395036327923632459757488757097744580993314898952779960745457400813885693620554780735635463466639564711136456136165086793646168578738485804669333110018430156139305924036584785910500281242199289838196413126056430089534360727003098568522672217539855666713109499761044838174100921230261936460307930597606635722652242981684960589638995425222549453200585813343087840646432582309410566287532445272029150441690942556732854834398472266861273041963092475531955617875030058151425914354073390912567220743576831209593886928723171200409027269270132623742575245295927171851847695726003914427296263175912408255130898393592160835468206533960136354696374076088642762295050674524387931471749554561697594945283238225427878134160733342558744828116109576337629489306283802965596715772882478475510295485104166319736803260464367259871234394189768502498137942158126736682924355577542194651218129095829018585337652023001457785397261152255894403348250315991555898702480385286616741473760304788057988460117461316921836959571652706903422266892541235111871159273561633833405565884497477683638365752115595120413832558220875581080994386986969549208947988924590798510358517490853719786374276620846230528846664993924694100081258363258798628366898780977710918085508533488734847848297909309132806816103240265087690168333671325424628689713273499479596853018073589053064674674365138410763375699130615296566587682515262434843202251277908196400154556183260440953308854247149931073853168369796944292254490913446233960345430036068860321472812354295757312556245684365413882461602112379687541066236587383708694917138219610379850146911745637537035865446091164935375023819678378473249595119117684083258301947009531769339980087598746583338320558287716883289480888648561038313096115417359193291536101470646118179633908363367005784031960832347741653888675100699597510670984210268086624428030168860625660228597150143183611810347111871056040277194737788073226538109132333463136899524341562125155255861378353595542593271659650935317122266390678528693646572716251067738327256424846953251862644480542970591286844023682106754514698098025454336437745398806300928167626905148351710961742080933547264992675194448812535390764734778284868449912887243504668050553453096670784545668599257189847282438457684906546856866294716554861086303819384643194134423635746345132950567106086693955720071992546111536256052470463484650298291994142931258940641788394648139147521859856032844228941355008278439646755455208968398847995492929232429857177188215690506731801146875761942697511081520012306765931574201855777226487304557161516458159326806081107771860867992687020554982495226914364615534134745080293641494468575787259010472865787958621280363734350377333503519069783639903819530586943239732055463055367167195593751562110387341230492249263756161400168252460985614086831289534863422524783928333384629876745889412149886602682581121434735828623840269716050574184462061960327505898674476165395865032246106911975680097543975845324124831522110748436349072140660176925162989431290116325256004412985801835448177468063770078201973352331997623626902539196059960886634709658552040388192653641905759167301584162034607087817565921416964383618939498280556595344296821173864288510749097946558523378782591234187368718255935116225286501981660362132119556666642257066824219715779478151289259234517581698743838754361767509842429825149823199552881736735938807990852263203289420512108412528562477559803852096451735363236253060088304229133768027811357599389586271178731944619047376990447777166509982934300628145539252217303067211519314112838621723759434973468884748754291757810774052641550371520009900537935805853854225929652502286028710047889241494746230492621520455753762660079988323855895586821333105726267340983897530745220429748064397874601183253532130874206436497672944331688236796435621369704068903594782535549650170046088988144358430729453305724316306918441967830787936153573495123961899214050802707498431433910858832440564278663982256879826730266080258436297482868672044043909957705844153157468304050534768505005171144193447232495574265598618116306123920841869554194823700125098794977980946301848194830986601202758058743418535148727997632295956625811573357091554753420814286038359507663655593215567630000856067322221869648965383079568533064609359142404758777079817120055076399903184986601952811688473492220095518851557606765775270521872912177467477887747372181916485882720683853677255201160171004242021998283095548343076984606498823379152810446640969042319617130626551466028864700542141075192473791818576584256750061681881567733359685938492418808199797348880623432334358045499781680394075256742867955623736225254090077198776990084050195615500256187232988651923396554533697352100467069530647972745463945472303610513598640164961994406711884547330156520291183435923933922209463761618124297928297097157675538633835846140985156418745440253458132319219595846805271178793840267486356712409151345885330211184527806647641667483554498447679799601937264236273195246657269651988181021524995405567628020090462720853274166126896399878751808086930348096092171571087759394843077651948879752666063677696701535352596135768861676897508161973453193549919420230303283851189417758383308802231048741961152717390581380674082360852486498277750539081385591789619590553850132655151320476106596311101609925526721313141462114571886787113059665235478958340409499796877277168702094395575189670858671218302654355871817567598407266260407307216292543984275187770359420919510056074417791475339172274519979254438815176216418149097566319088999436399692247168914437245272683752730530178800242863683705971426370836763685781169458564494855760871673236258690777993867480550842221402385903157440042987543825633983582703830675936158540710322478260944717095665192870301042544017932806831861664197414815719349217445612842137504824957821470092416541386773394841221707366093004339306503153670951755266445763902989694647749589650793550425956871745523334605725127374813310962864992008112569150714678747595730435451835697173273080014131232811866672884463769348280867259449376706894573697122455658253959731464431853552824343720981008981946830491444365867500089646717259512780143707123695884841646530719591761175868288952671601863802087761027698306908349608802957486783765426060966960835383312838080780016287726019412858365785392473969027556813013633269044504858704757779323060249951749133149831675816906423578308680765572971882865610762925094757457471731507706261742979714680233603329872065842192336888843779023264436421954083139345337689266644072398386921518247182144700529977974288671726628732249038390056354068476670876534131931616224398639874264737664270121410487341133626786428084653589330603371133478870381721839021013086772954135069579952826205144184263289365753895382294919852108025833315557420175706721913104703100208825546005266422776234363174540867689557247079270125352001958851294949849483732276330759162708378430845533580849582921444825670510436651431847337525925178813030250160733097548907506876603508805908745998139895436840086548914785970097650102689366120821028428896126642592544948346930084270936426149040812327100393367571256827195106834438031723750353180877286858348136903844634544760384424204829260196251409606379435612339196193924958445615142543106197287760491064605752297554976596640604090230813868617828202875361012368079864825104192382028082244254570267691068340589642296728188781299976190182179388835814287271217509009995026023174384480318245077335791400923771857493799773236948791491738058632080049050516815404747720858060947360535788879361868821784910587627429188522037426498709418236072470365385314524155714608900865362501084540528097453188361352191701603451028553485686974802707332534313571406897462445442302163046702753746113520539579862549072902405712341928043128198063646895811772916688196108672956390220767898775634490329181622411972202865977196145212432633232194374298084929041021366949230918943533266523058096853930789615221808553420682738782766250416841511267668290507652092765436783462318022215559914963780016828094362688653650025685283350689963749650333819173003389524481934487057965099381273138661717010282693897320172189105848623159117663015029185958490412627169707583424284886247756837107193880758145741897063406460845799627154766459267702746528992724795915445854826062098918895906464331925793026274986543425153946773136448337562395210249240733571638507845542324021071575843441056522234540751836601423886043976370402001104063497083344278567213758793881292633087041672403073002458665250161560492046828206557751563588834577525385698543927060814188112003750157282153533640977139127490406184712081815099621108747846560235650770622222859248421155226045432932083089610572411538169067267437709389069475717176283995762794222207050100053350246683797030514069988020772004682443760963161510435480318515041322348281234373000861074818055906818311256580659202852474273716609403259347702689276886971847253827509121873057387030178965065553429427603476235523997436319349666168303883239206415897292026754023605681129161637705396264565848141708823119746366262351504796084048348317529170745338595218099840442246063794097695075003838563355238968984019396373308433899971006333287146773470371859067993693958209128053571735847894369973021588402050073279346926237479967140007904793010590797478308961511253133385065090919424309681817914081774562750635190032734181885433980099725558196423575504214820594997135436080247583218491289469881211517691197749844042061381111412058168626779122299567818065634479646192932538607416051709141062124401789378976988775558441737069893855975783071602283524286043170602894609826716243603083230533092109883653523370264926981791566354949589577303709709705253917485105610011083089449000740475288099441154940281482255630545837656625633103756846160757544774320456281923123034457118892841373109308016496350224122145395769185418041368629219245466045888050045940568221124043582092609490027970076698023588177187412512014029176850620875862772906878972976175198931800019398868773110424286394304555440450745652855130374850474533763808953176725558673077834601427223300785045032818284828834219223469155931347832176745060381879858305879417046347306424035933233260874350079776329789571914022489315371357770430586554477189596871709134142579557855470974170389962597388684464210084157326126231163220656174698993137292944762416878515760502816550492280782828399382862289081689629459543972378235670937765845687400065985315800160346648791361863636997121193596907065571173844454889541669285897388513337211038884702605944170067300209807032138236388848213423407763629528157318711313036729067126872547137194623398829324618239356611733247074426072275678229537097331138264029450681989217422682547352829047855437932158259512371833528202437030808191196645745261106563858467105306664578860916504000316721139164579586606078689114083030441849350881226992751749098393356169806101342191024337626481728201313273020327444628588091938461940663020167161216803339733516782383976823675662310185017343606354318674668975797728732259752303916025145297530108650817837351407023975253952683821627027498132490024565893470211000830894266759895890058764578318444281614407900751531531562856046244699101418375927362695035437140503836630099590891051917763614329634458753181625303848623305267312617961416820905643246767663847295140001939923100958232998437534087313400233067876543398853582831412187721825935628630153044609768333621155869232513182203953099871429594631612645433262718114039313461696924407674230753532311061226588962210320486572899410608011314059550667973315742270900365216547711077428577266320151085487966252972943410201738862093239128429738114507474663737750434900308386124131096246909287670360093385901371976410393450413628204886429306989524375048058747132175117363065389235128124516653884968898407835897248531844014807161048726350555784168377560319337096255343683064173346993089117383663302009692803409453356687433480808273536914749320933847465339742610895741100981458827597966565260104609286565225499619942250064357730961613466946222771886447828299950160114505752911167425649416993659510360624696022032389916580286023665220575350492644006257006539268815231158688100391707033167488520049934282058622064670418652857996654309186503254992183780157857793813025808826768636170009743256480224587222663342648363891978719270847844649039150456013111597685349326214807568324252478795961888804017311406123935103430064390319740156323501876135794798781831631013970194204134478450031657612727993021147073214596738830254738973754405317167402940015485508283667473103604534406433133375844078242125125834747522382723514572022193134029384337642880269811214878788277688630006622867025847454861964986672327409224355325115703481396811187967263479147362778359411622477588262469866368889428550328756810630093287468730730636860459525931065281460989517570952053425802642022617167932286549404760500075104011320654307964482340781194310191894389998888107478494411404283303204711713267549175890215857346551067905570173489611132108227052135074016292625461314223692311970263079732149425842968062112909515183132590953192319748772810654207896118127583612804470677222403441469006680032359029506872587495305008289596989478339486035693272646363568021250716456699463223031369283522721017594383842755649977764165571364433907717127551078998839877314423140450351454474134095736122185266179046491085017234657796997570761954290318241981521253514373134943812188957624648806426422216089945663669319418113233455479646271698089860914489120800734786733573084313545371760917319561065894968580912214074273638547122797976783852939573934222414042866732444228661974808531097482504066813079889452181210969559774257329713049817063719237407188228170018349801870057410777151745671052680152941721345338979521811239372984827352317872464654299159392582126192474989064113773215218474839530451646546464606217548310735556419371658813728086391565287856448692032322373252453324540261202530148870700941823175842745835864756549445632145987912126910224231713556497498380205874234674603655252931625328667321032171766347703486456701187437144286269402588739856536108480800505526277908100389803702234866198148655887750230337663595727827971762893353863366154307428500584987216628188344396049451893380225652225939633468132996561562455183225844087107268504480308479606774669668195686641648917954671871919807284678067559744126775442940171923678080707764645018000985902717832854112305603426446381397898590061128484708373529011250939851906970732856149932998836058939546279965676139919370161436283042962686984968013516580757182310710918672933244735444712233490195749472921095177196816840152143870017106096299442253526118386324613521569747994708276968596749994305670718350636362193545358203257380188741320108200846565126719852447225889254566504018603037796793394848541228178570910787226516617857282593930552081620444173559076352360617049667913104736647341636709929761803101114728563441736128656177573773555620658077648658347375794108762666170020891252604288149346447226522707546306314882873220894594781368023274028415256475430693652472387183302719232757758208967842188560429023083282033469600281453928425140041709955218266777186006900239620730404123532551289920174514008813634849278244886126289241834154360213935098584006077389515351423852056096622427100753088683727950957394736177100787243333780305383584354682747188540333497827278872266873083561102709796741474304178081958473226934573234535633782877580778384504227310357775565535765121174240079672878917134554711803473633147198562892238430467891421006870964085997757725316120608687980258325695498094668147073136892936426193862928222739129140257505116582718481482247916599644836325752988721815909407715923174433469848744420005882127694782904515405420087954176380011574849765881112207579214325181948773400069920164266055869176382342991771589529969798729091627896090251607275935596267357053579255493438511819811925705394688235491287817313201019585251786169947546763812950608424998795200304974495613072781638156238548907440875909883854006455640982718654662014325352419164922272317767829904287099996400807097564713304316004479973458302802544835620588074666940190741486428290328136288707514297877680453698992998042644154002565287939815906936142053325523752844723004130019990200893602738252841935171473926179795311604682415873257604350482860489224743632984247800227213441871305388265743437781580475910818896144787947655660506458867121748911162644792296878724920148854583563762631845199032436567364297265233798384289853815327280045930452821492999018976878520526998763282135805230751700944450780834546396673996173973672849029240903588302771910310848545912359163244827961073184468036826183999894766423121313183371297623809771072001452187655624350696706744797741056371497433951634742233844872581179930250361597936949232918049986089927213980719598748450530943195128595230342063044819394229875136872387813467146313846567120670123320510990833692586883862785807872179585525673589678714495654677144330471445471867471354768620579943925570152190418120867733303618426143470535967297074032120158713612318436806231287275355827635987347820377954881178292304927570878932139676920182081215041578057347176568905373992846058525484307146422145690627670473033157308867365282153339509809206535376680483314202372121807752449214472092655323384508708523569058410608186347045966389705596801860803816800547235521448104386961159214742269042666440430861159235954580138383887775365043373142042934322826532531539161890345499946982061636166614757269302838646820697589470220732792408712449651708292170041324365506069713219477828987300338871441195241484288116316863908961228238830128921212503249882623174039588517661161058028621297769336423013902595739540006402910157667597022091756850127825821452842812227984598704721629474206768626242927086363123674633369325924375126568529795648795981355390525296632127610939631066362646692321552228690325938103249085750626518989549378847259650396775440899604427241902055583068146736016317391380565883379475679600232317787479263921326750628184709675537923389982623115879517021015281264046901095974191775293900162624936493866948165189356098933321181682140460531348696298948203678401112254728497568420953067996593385207823777644269621629864328737006750380378035872074115452067170002867663758313598235042091694286196911014752791026935099847791592633259282111125530154234064979203986110277187164361976849489464965665389704399982971827741395339055431269706914269963685132712505044258015234846940791149238740306658590574457148922768853539122158004225199075602402146717019871244275448997689115473168504535797617198043681198714928396117598875793071639287935282615967268481520430040307369896737825230632948757182628559886906882573038866293179207708461607839328837158559185650554043331426318721348888405686163986704044185579587931126964053488350119992591357028293395837654724390054756677852161406360001513310152983233660821353532297740910287324992692318498851470386711710898722464298669933095249390787268626525236807516900994850005567836557797885643349189472510250670927753269428842340487856050537538556982710611232713418086375273169962862056801756575039849538745669859752862504432757810615154986525317751842732401309522511480261132490032497515860197625095883976753382425160199250647569986573042598467313125566426258534646756584993753797816798137591567941830138775347979258776366862615171198335590979260522447442237410207861801064617101893936662983693575628710798964083605021721437833155494684200022361748643116767699153606894090886427868399247028287449324998814602468040866978080201995142115058228348413898903022290919737475198202972202401511637162234124826526763606278599835129347423662478865343450409978063365412002605921082116382423778362599413648815607354401413012080137092746434495571979662060524398445539826200888327806809696642861115357976745698165866553481365881516419404093119558317233817672936598217221251778308033459509856787834271979124043551372482250364207067395250285232468680722167830333627862086526594847677893614713522245488235710694926416167864808493345941717324468947113276048913594795184303323977476316460141329567546393032149939126267330335847143621300987116850010968679847324979979243519099871185607489808815417959370815425619586800816486366499589407771244040755694400687562914610527067065838188347251035622022234552752915115635156390342555676642917316855866833487472258986637166927181976186687432762951795830267487555675486763637240474899033565504039688590383628831379875402970538143524686172438207719482804694974373847489428607484135286834316839196149516302193659079386081183244751572948403832465942207359317731469293090126412258344729408915094013195970597719468396196750653994405264750384710307534601005975402935158940873106161386213024274597783820067304670432776021380885469093756948092636108559460377184130730044918339313182539402941076587992746508206799621816006468863245223425526504865145720479302093693387094980569544595691819927182086318001126609996469998706847782315072518964315632862741012277681292832569527242429613723113684069810907507369238641230272369534821419189275116567920385885069047976986679124427910547467628301566110394883844409895924843466541667492072851645451499288356644737718304400998847796829753535400793283077806644540750138055685023141405892703877394332208817723412442348814237892764275835926308267146692725128124475961979672865887622772148051389511161699056350722140773968572407214903905395453046743210969321251029785121970334232427376599887389513213754678391173589537717394239424193689115447986842678969752086898482449049940308103175605019968253754230463266305347279390197523714148221131630879676166945066962337175561670912914961844141897722944232448813127778246885035255187664301276599568248434610759109760022229857838190599106596958632928141639473478598446769175589761519648318765786407099584180580060720642717997300396192872402290206959839435657267047138207523190191956331301151476668300717984495955460551152225511151650600085874112707895185895518506755236082796899498685599018872195515534320387625456650492792573575179327807025004860668774233284274197108137025292965479960650562803859244070826823929498726315686387534575363554462102935654201921353445673494309325008653198041785234159683256516487430087265672931332722385402585566157560210596131208836381266310028476420543932030947130834479604718600327486437791925638635052490599445552878093746199802444177713805874656637280501825472849807071493487786841600669982979978808794344217223689075302793750052256133730006513129854649341082930933911464984682484781600259332197951624619869196888496033599208026338847868189348232892927905031161110034982653584038644170320351306172645556226700328733604082037254110867838989587284451980031971211998587403547856238138257006725037874957253447705605399827986404115093170175824997695626079630300649284347139600164400785013783002449548078152166667936108760046302898395314220716827612563768339290123011650224029762439571222040227405990309136522049373500873399489513995229337103534979413431697874508276411790919085635674115205245101792246380740920803872306970975811452364253757605493462521675542463736711063783867937945923568778109858816395691615717115078448824174462934011342214958143004194825799252666650821098357312313076790866070332586762451888174179023363533193943088661408291738828634612767648497650118578761847509469034672846220954111552473123215887622005955863752911228752061034915906196389972755161700838053739724829397830141794704518322384448829798443594161543595321750233942760633046250001618147298028109471389199955093079376354929860955918988476016372077787740833295383656720947758346517301000005043673312526204353448318043454178836140014562131520693286277028887570738152426281106531026366406836418102766858227805526351614193871084767524207902850766030986581629584680948948835972364371398702616902790095646464813874672104434070565702773051821146058960347169296983473289607600806587380303553140351044710914318137631011428062291757143591362208645816404118129816942711836718984270062145271380682698892798835086532657796437967266617447446637097394413846310134347154784221107577384723540657776239777294024971421298311465931523763600729524950829935985663114854196116781087002585576875756526571898893206894764680373174540291740731344802694043938580415641883555747312542394493606250374672482926966234462053632642802718704919160313075535293124883129067960816903516595932456640757553341236695732764402118974609641620518157288868314681461567816606228523675974418883802736616775645952315601187159720223772956240110132686845976480608400513648909238854107491691325677408689897824144712642797276943594476727607485568816406459057742310667045510946714652089679713137554078485890305010779904696588404607293041361101546520303982531026392213322485893073741932357053003391374345758239940954642843298169823633816176083438435695293784966160357927685758851970171989283723018747577650087554107051905186216620368525902635170818911482629707823060634040507282365868481512454758316988925809872054516582316736283326828679361647401832161492760328302624342146151671023704937848440794578584026845915007305262328008377403769626616186705305208803041336959456866649260405119637502882124751441388662748112070028575799906943242881860861385157891084252910992293070217220431552655633271115086258061677081730664559404434864241573700524552588856664271746770188873374995842534776362659149039637735557450660999199413535307761365742184222641125880489676564295950474684839258060474650512471559085580426106312832510901259755665664557794770598254554986741143370166520454775039500290364508116580901739983639763307576524160969563351651271021619564884692338757657089210115755853645004742729887459408995950158917940083935107281205074815928739564009051545036729401656686483078893850069394352589447409836067389817932790409317849136061874715553559000926993629640699846823616615116616129337624134409659573262121182245674158329699883055701020200402295882198541079369724750896649748828746746651080712257656102484190848621516728687716681580896413297757071238186102428625471769263045909253018573644599311799880057913955827390485999479017485400460093055367704852279342638082582522308933937840304060166702088734048780123885846120473903405012978609510345073966189001130745833999703771046602371361982827313590969786514145922012165176474574037113796427406395545568420440556367966751345888220183787411235475649810015027037254213347644172926317369636602837124623344366513094666754861233546415745246672226507473666792070059906798404769938085957954830977513519018287146404830311683043459046058934262793745261448120106271962613728062770443455768377983515889452223048062682022769996339994566664416964948226644586055247108914565438360216151336715669850312370923302051358383596626475802035456702092654365356818334461030662863806979912497794763232539315929343719760440334638496002190299002289044445516112560646458835118640033851967553118062548426116517734195377311732151607960922054624355084862156344841399767488520223249399333110975333195189052316861513359962832116537175099587534698333484304253516585108909738735969134299174981118712144760936595747041726080669911442065149894967121195068376348888057131046088497228699213477737767144805071194627850241723946870765340388475149678822443485973924941586117224083125642308449814503137971830831447227561409906337474651130828289208816440080110062638511083621932059857596182767755533565254560083057506825735333839423824628836174442198781543173630319031388906825946480897989745481341915038523561561094993422361750330920206134576491590613724757674897599445442796057991266660865099557872486972828119054846730606534494429156098691172559086087175553371947427067956933653200438046033313440138639636729484386687670076461812922822884353133677286702723124359468246317433494587480267323726380972240486947906753210970167165795663223831100051547382148299501737068646477075945501910521606130081733021154776791036108193623369374195364953916725396149996096053956404681849750711598470514460137316584114424301609931339287089025036398426371273569949908459915289687478394441457423078085282190890317428983789581546747120903974492612936194927545742560027575324219847399554348317735925934393065285772301380691557294676358511930832929439655338983734831883062121765073755865050758576759823386045416456534240316228571479990554177743200909979213097332837229299872191190179506346520348716506591592876945831338735385694563665894963201524089466316999026405377501276497274141166263868093935430438257126175640392186628750272331669162645440011188887822825099938665483722787755400410789237960312917713815727084369808301924858981598578787684983092868468061822272165850928569888693731943598293971440030943949546767828855319866306831048390838559754064602707426126733368154818930178202561550743953747422226258440361802781784621600855259207095052073026096792279506831145831293220200730663633049922668118379735054251870979634490064866004875449251562601476697379431230379882010271608887427021890790812046439303752178153874208889154635325143001020722183491833908023824369087731839429932036949503947302408406242547932000573036671971460895994236048438946809153533484637192802737468664297999087251147812476128748226675888957059470507441980390955665586463291578446122044991067377126111478742358657273831402074353265237940216211405549062415287650663495385998278447739511195018813951805989135256380840336930004439252411953132580937640582891676729946183287572507611452264143254764252279102732268314532985829972494925252163941115397189528345882687256912811103521901202539183665903868098831622678130240689592491310907610551372158549394415207927257002522059500123193499534505744278094317693823633350301363949793008094977715161603290353273254410636721557332836080105301527454219052495259549925023684527891391133444942127087562591902308151412371489828384348992265554594376703581221515648898833587616561352839957817556667366233484305496037310850191149960716862953785653856200806726393860823789784141637118673840847162560730605072535521306978899112338826257537897089165140164463630113160067470305544717743563393061063527541073143420424469732071327194541342532475381513463747630131485340846089039132779657763145099091095944235882921064616625169225988989371397757765778256504436129732520587453339300685060606390851712793998016702501400941255219279068628802759247469611846495010455179119508676235984667582452894139363305753962369070029634926714445694698819361295042715850790538427916534404414833006031052704921498500153837203390926914519164025308071206176919887562717493454206147528758142798474977417702443327564161559409831403568797423354820525249746028188574700093763402798170393011637720156462614146378164863974454782760772457291122878440620190335727185462227089812539062804113876318454101018141887012536807286082891384384850346500286366844818178145408255704237202431601085961259418634379939460010584269406897446998687645743094245813419516263437892743596403759104954655285639165643543895433842468896361087941878474778822468039888876590194817001302049385114294194935473312655394394409167132850713892738933680245488668550335894124192225830667293977573057829191390289058351863791560105969172859726550812304327859129841047975829027067124704875527988800911987963042370241597786164990861062358433768344408476198476951517756679998264828959853420424544451404892232609943785707272060840786280285283460671754705752035957169398664980589117332365962905712001845438961087901590537450546334471991396185021822564013277022302399212775439446755446693306322403595067450755684987310067031187744129819414494957541113479757534928604955607853639225483502761241123535265440324704724528256873247627861852999621830525549192609020924004996548572254219847451573013704155530053902369757399793540316359600885793414871832492281356758002678011486720584738389205548794495206789278933727351071098175097732509847559353797810198211216229290200938054708189909785453080207763428304822270884739987856034432938557715133926894983060842668345028784788772032358295490289900507290893521922488745983532204937741559633089827294732980265069275326511115916195051970092576370299102405094705957830247781897356974475453696668255109715458835334343034030641723649378408765844502382730380493715815334758617183571473959939666153845977952301844952234813460405094176400107304067885987528419419175961637955577792086884708291871669042282345196237917198744642121976061552987933434281433453971279579577822861138317533920063730204644824391778716510127741422756061463415382136514731064691736257710908395202630606646600567115734816207290544176430283942737211723173428571538899702298335303984497586866255943948428504515527960497859694990273540485782521206332431366482345725320752239276221736396811572705114181321732041780734145598615383040525923437286836004464752503333328780119628037133947494529346123383127496140532751040147863853925859212288854399235593027482810712058044802566123499426507002499130790770984704367970241634882289412877455631301112601134070881213370870546868795932367053780923334112373691655702545065306442697227499130043752759959089552796366290172548383796608384264684174908255198822603540808204479130136507183033591251315161473567881350573006612842404816579218431329983013228511114157251489927717161664786479393781297665641349104074806971000795734617367455194961303275194546096351903503307471624040564097588473409727572137534060218110800882917255946035772878895732074373639240076753731765237554970301117849363596098667418520908243794130751919333709180748997698258645184298289307576148379324048438334909467742016729537659816881764962465120598679776907316331230669513785135969603699656908331995831882446350488225602177280598510989715252992572409927808390783461561620395406376496442791217989917317502297405647600270874255833421920141713413135518955561228835263312487850548103293676069250923791046117124556155918829017496404340688239768727387834682610500822738899264573728255470283915957189466924601259912289574555577073315918152419541469569069040319966615547257642326953444913924389600045020359460564840890809989710399469269030116885485997483088831697404175913593260306495877518940149767922668797187203140638786358546044089435597452144812782055884043116630825750194034722025396650059424516865981012140383109033345610683392504549235088636990582530283170944656019603025573776298361700548659030456803173278878572786344386263271870610802030887219559687395892272128183782419928812018461566075784445244136883352117954870853884649777581129651146349674930326495570628594721701608730906078359552321687345134564791261086040256691895427024197572085494020082450820043172073058569173319856036400715658760324547164492874797615190431422018810757190031896461572966650605236734476502032530673083565821800036272107860276119038947378606792318202228198097672617083826356539731690573041649776000255575723631338680070379345142880777229229178836470049327178355916535117346911948058599543006921940707774839109221272753781217533557293036398739693702335391963895401038025656870721830374113546843575254609341594349225657327052471846000519538556697549106068647942582046820908350811544581166848249912963732139619971725329891566010068979531637687690260365917854515116001521697682970463867017857344747644529151547771026973498650852276501867369022867405518669694158462013100980080946642642921155550350786337097208083758236395583501115298607273092985781954499013675356100350345865665147540572068726912016364198209426053504060336163951006357694835887180341428812894613031617092031876515678582610500599437569599867187678939944269777003453804152817774861224448506567879345966420437082158486553195531089935179085268318723385997183015062764106190483309942518298155013672710218156505216705222019765362894371700980956713144151399973481628765157051241260773233215377166342331769039475936937813163553967983500185213710487839563787640144596911070564257938338507785663278651027489842546365685702719475138736754065155525493802271534539161831354531917571122548534027104714163924178909699225523399789382624103328639131735044883932663405927152006201130553184011747845698525004956540871186287022436610341570878826067793280925637924324934448320459209739102379719049406649818581215182548215077264043335459330281775454529704720404255053580828017815812670906613919670474706487437399053163509387381934709884861377747171346640258015905064361756988864161111246415727961927781690792993169820794587952853090032467680240563749776976252662942217181986136534470982450200839318586712325083368839797706012402801240340534680104636719257666795665929923121850092639199840667761313856504759137844549290050386170845346178767175803950897369875802988218836737832591288349632515199327482662440132857750046298435191824939940215734408635976260819024967562210731081427057298032933868371129908664654630843761863115490283174233185784441287872644698682164286976861793552457510672167701948487238783567369688017859168829019706933399132801748795818897649130468702300946799820792952857689178528231882967172619184765876247744347726630690164206723614050814349318323378509665725750359951176326114301271649113918058779129892721976153443968708889810860967516925437682617421660095931237053673498172943802833430274613589462485210094571019766177150295318900981849648145469452358754748684434518731814754286834105942304084177712226841305981665267113115201503833224400816344947834500232421963059909396903047556243234467325356283635096154962232671217400613398946917235545880181061909709211436867909812329422782946413260516380864938945227049673132754469239313690626290193464987949433990998300506995211065270317306357607856047376170147550017651204146450450552958702533870682245405660800377649956399506612204076739795248892914402315192683848638148901481139563150638932937421239614126113953197063801657247443952888735722794710808524071839566794599563053385613416387454622174762443961194170644025842770453982007124786648565969147037724899942961209893457660087794409959123298758323440778833964716124843347997660769951902897959560670239165395657899642178527382542423400677628516773824876116315340310669425151130809132120372506409182746049267381611539472287465183281001039387758731749311436127687753926496791576541024158410577162354665323777040621031707043498381441704383503268921407889216807753563095773729497586974425693432893756203680188960213138853761767345742305263168438630530112516515222895663277360269914462075877128905865561080321944466997752485517918480556875978340051882796899135130134356007824806240898686633177640658997862730804440747834818440055846843957949361590189850529093761970380430971226796808432818201626243400160749670806704543643865390915237483007593696092384407208605953008662423515188573753638437991711975765082928786177664626525091958788703219928202069205309341896288740113478186753218609305327032604177745980095198963391841240228183172011660261683481614017966861793179556746603407404461563304387717570983147231908428129678974169787412308173354676985200774114250811391676819136562714195103371921789998886506715641730950459776899696442692479456326623630235923004180654137190384512180165514590955301334022452028396284374571030821165269765731672568809563248881851054049820044507011062693202755222365158860336856820573442384933610815908521964534266572603930598030423552801726580823535874477793931096951962928433632588117535428612261684295526982334533125158057314711789324723094598193069611085553162054928796905179819473239676337866784882987532814190630922354409845247842672103150642046203779008784496973659218473997086722060746082232039375388229012775624899554920736000646344289137101033610107843805014150404365734165377347554401060693166926533310413498074020774725597221933026426655809044283878666112498432912559782565991236326817412416840469324061164910730899446661225426603425012628155936147819820478434080599419942411848583640286401890324532546832190202827310298744482099293359603606343505784494730564511509116695819600432267980324917358056339359564836594355683216260745667457595570010978476890217677945084470593269391600164551237985544133164568901311806551277128466035498663534604208233174117241079443240284808518793551086196683767511223528158025512741666358023147000060311075211050796062245004764693573990431719767697608625982751694781269512031844962228066071021501160935007317359220774873423631823008680064671681345070852588618268171883248497497875749956617867792345338206149753097692327120220676064144904006585590043473433902554459382411690901983307992083726458515411017247145903990201522656332571592325751843874134918809459393796863113563263657835614451868635854399428940353786555993740685139042300728590527516583178001132108484588506340520724718177286926305293024440525118126537047020173665478625111501413911120685592572872647749427431462527241336143861616408852637016178281671965798550318518896285069512220923906805194183203121775472335574130798287260277670506588725415285903359043189068155244048481832815436008915599402798922344633777139693775043131978437918831386667138750898461453265542438120849737681114199100807136720199939707320097885326734851806961574370093134110268180862498961580702226299832747312505892428835455162569206234683697932248789993890932408072951893166271353560518415075605678098336303616408608089483088504198926650714030756486810233775686526528617914544983887249365129302966154470341434904390980096199278199775607052239195398751278469403713953888000073144869070440992704783011801452304213186797455499714796511688189289474088251280060927661492865998168160473038893265718057077031189638172693200529597421273833322827525874163017960946977020119549227739121515453174171684131318335088605488660658600808952468611245480941040555035174745922303979328402852529641256065675055839401369224906777572795836815841649434051682082655246947375272527293855596093971421817158145653353286887066035318525143899693792197519888006708206287788547204721972023604305874080739322454308073941995080091447315003877986923624752628560952602816367527444991646410059569606663601769882365085257799433902077048104918095641151397775184040483205192402561404578084566992073423096614714869839905471942617166862731512049762172299621025291578559210088910051424855160800965097564737015082979940188416487521748902326814818511867181174609265511481977086085290142641044683100906343659137629913512855136654845747552390615893438784719823555966460880568082119890864493400540467844028684872699872257317172332487722723071128905289569705192021769527450163772054420459986698297121440231638173401974343505492282239195984010281207311518573885688897907206343122915687988229659503480692158591897408764859607411570245294086231581972401619428813374348315568412755839400426998137296999589871678008619327805225832072326959072202101339181251778089031292883514296990206302110375268172206517123905638051051692605942811416118321211559245056998680509508936960112177026036904456583889511902936845565645681733012392665589816538981222323827379552832827561986159116075849802583414224610948855229923536214841527943852849704325579742824459428041723996376938222563883077650254204358015114758850414925103592270288083777572054838983805455174190505567737178336379534148978594854934723415657342091429003403211207594107973623400310732489372058445101789345947356889093426658880294613013199990074970406465534217347119521215335009989215564412240651798821535400421280831256479131308012109915747913003940630211200274784648653271663194304427116461992479630256782390479341859606456345472515423310849330876961831969187920289004906141299238053874204977856740999861260361487019140727882031364881930816183423807331903017497254878411391950527789780067382416282999218569703597364239648122668837752501689391715837774856377574107704659363754693613089106441679911445012297691007426250014583804187899622035585594408370692007524930249988774118890085365339822185687013722739989947328896031455669154928494014413919205713410644575313777968379892986589379553377059490499741577971311302299847024652951822013210298099343600688128981283540554041769360152590996133456494285607623749122594032017149796650146425803731707482571296477474536442299741964184630848099456115730018982206777989466419062247867606288914336440274579671970407518561262198941330534045343976347860672400690162609256439162070299400531100972474502811374992258607457199725649890097514545333637364879318638133945196676606520756712185583843902632342096554376762889555276583173547944551111021541580269822178924883340631142046104842673288487107949430991675544825398179701603295881878308124219781632821073851835107172653969117349325513084779056146123803873716477199328911108266724748842102876594765785081149015910739323336769506144458191887243244862803535474186511967541078369744212938090480902721155198825434085103640146583914848654131205160629656992220050589064342958962821061568685962950628654467748563204632699236376008134935314188517628248293397601527968608931811782406150518903716228597071562707798607332594650387719427590578488334292206503614968999176185410861703922677018170181455120827648473937177002185775771383748976590384705756674294421664531969849629586934553051057683377578908850790817719139690188461565010720307247752875587643346042435519831042202417717135039636635672165708573088446866463033058637880146822609695324203501272583898926662747706103691884944142207684713110635068007431610335745141300437722547159987801907043290682357986002751076446319102205981096573119045965962498242507449577249459320980290280392590365604495594568409698115659544674120079143914511339830032280242401702180296258547305151784292452196242124041706648043224781386977629453357214937611200403858723368340211025109086724182251442142623116084024319155528883178503163044795308330406507948988230353879963386549973288957723936134730483862066670554986064373846519524792724892794932580612868083766531884340582069242688188725750229165674513242099078310867429219401492252422678377208431072913620037129933988453707422970332837633268544843678412935012739926743132374382855549852314830161578293405896591128274872168686207794652503684022812712068889708768140421949372700983624225191729589404599714615833740937315676302203224211466439442084249331592797754923726831640942326356171866566204096044909935046523794581003534826649888874056330848492531599664652419376208598784526644405467843189122785991966575760915410862004334188654864561692712345117723519765587658032810997622542945666358302124814881559012429930898795911979406036656990470625318542426653339524824578231275324686156842119625890499289013387707940852069577512217378557425561190113925345371186875534868779874159900828234390846967093228248986104513880248807188206494839542896341617104421440771773310136440130307285766741305237945183953501097289888684274376210156621145398025032013056337717561596910404199015614943719289020757231143658276222012782675873771924980176282137055166493389458473960803624636699379182787310503487410191341837872616282012362897918600851172368996995142984790799759841086985885736598683352268755374847422464200151558568042529793911076217985103832024771732817088341866003938249933814611336325891212134443340120012123416777625635806766171186939704930634622871026515428611601333962745717354689274675524709199596017425056268105812798177929353658229822288863389740986622977963660069660285217057845724579276552154064628605517401563433780193685035156881220939588173304095165585875539348869937263409721845893563216248230956875730403208118297363162943533971135395903195855298137037588977363722931192209042711650564638569621066090634480763868021727071243375545851822521253697097395951076158564245127999885333497602009199569749202551118224114442195318145080707262741331453962885649542040042594690000364563677017220690237693171516400888485858960558636645634945787049077386107939050294258476675529603151308287083919051827815428503033198592080059291684218162831443162622213110220034652374785190696352643898523146213596019296004104362112477522719202854575132958907360597702944943150538917567080831746208936731773754272005823562992679031005911196806411388532458034062001366392788034876015910762886606809852268778577610561625191256639802191883868122731516338363210266668076562504960678452144040043804581302753144411051273631174622487321083583563830828570551401790073913115922157946377101584519509923248298317356474422085703467290719502235126916727045210765805378562186394939329897144384071136624465545769074432237961097710264422320130251288029698601384553632617465980107106776926886243156101767136309464992387459583140156470310214305922423059564702654718061174339640153029136872718960672671744194854501429882645138716472886849816825451735528112312978367503713524745474221882051438290806011748903791530185178754522548956417619317533535012714258898991318480226360353713139402915718433206312071548904284863029323625949470799117767614904675545301083571312531557227015689662509372368366303849657123685417826460569696376557686282945139117038104205890225434865151327392940111429189008213317137633811475075139902480149864208156166028505827595348663003303935143781419053105445526132829310833769477271251405871532610074259108004979509820578913977558565303071265260258893124812676669564994581368559128472480442306414104546223756496767241268090370195684615880583935574482467825165887055182292604688394989062094319782071500082209403262291882995173463109442536825222458258229080625956035913745871679783407476856640770036613149179317043853300167919140598341392740564558417836782545055590726692843192919286762191637031999975478343723050903831853259879741031823012773284842346459724991910221980116338749251573137981731415326717167637954630397915604672347779607507805189651921625963602349727516872821744372479411676874366184167655319178476328442815017748768323910085731369769654786548803054231867813690890055391641422435828408521868737526436016347791752183182754506938161093216771789497028362623014163754601703550359897157202122117843260970325524957083822387119274451810274100523344477249622336465910609280886198300312006210080957561322843808691686006996943653288667685955239382228422446372479952997981142118610164397145374078629997073974813001011744049191964933391302245477657641423828891486915387788058113990777257210397505763292628871138630703342833032847725644397506032784347388918405134553784342780356247956070089061736185761867074535591583123167488912609142841203615123554607654344884980114151160449843829696416036779376956026302257978700197217512517540617502123810424827633780362474641827023106895258170090242364196286978730264289671317122949679696346527578406078028818037059793446555622267789447237969587735729881869057280706681336220225746579901327096480442942597496241843154278588938663633223263114898297705154393700656500446257928715027206993708228497194326588240646509868619205730750630315764586125828162388222115013033470396739521615811868668255572690965958434016551312489454322578804867763194832290473453076499738613217105959078917283746087084371944338469827697985204161761242573918203776065274294566976367152398262355541342131665941197400093960909129733421397445836652173203592501821702458583010207085333985889383005765493764265710816046479185524092464499085194055433429043126826932341173202319627001620723617026852125320531107615073754032348418379458599211640544778394801196388999348328156710031021168548228938395555634549790418386073071404442519327030236309513308712502996370153578201465515386567414630004708075341960518596180657505025711374677166405506854423429986836444166093476573169641314218792413334871287199235860157530228490045068634467973872344498162063610452426985395647392205502558385397595079383369828679648461844551075228669280169184300953567199017725601345775025114134546780557298704209971224183941736258488663968225270894219197962628899734710200600133848300204133255080150515629664019876984726753121761102713521049982696359168519709224309441731905308946566225454664185666002161925057980057695826024277765234620358644298186642748498940321498335053889520530936140265306732312529494580737664992581893643995641187978383941753222982069430908761546352841804998552027353680687159562501972301522852703582944053724315661749415911393384602788804991932498335811946573347903365245285716811011270004961800485499087622938984801125544131964317599205139864896108071484415082289421900877527849888234889029668253096595221688366403594691923207332013130360102996187587969968682752264537393423792494809969646643080715541376322740056082474813550818107364708009386214412523578083664645472344179866097267435521161332269387292929164114995425004628512184336913625856753989760271207684988303477742207083103408482034999027770682293473719897864644992225420937089812694499627704979463511974706850618507109498592074438445340857490081062203002233714922677314129133478077631849715737073331522634589411186165638738326595714400754015660171018546897831734884726059041268926739495930987668885664460678767141883210808128031793376539315798857496086489536798644067380983041912739210230894208912763379214975293894663709835776505703228795306470861727938853770647025353806226229552921539025355578163972040560587779151113374480138884380369057951644084463825275377659767519490119974070067141806663706555248000387639527730977777283792717020551907498394067304625935454897503303463734682392236549191146949188221570002510948757492749007387317016797942622404815924211498824010720076444208266677433329799417339735586689764522013452859824811669696171975784022197039784308569068439544018424139311943872451075857879851283806919070140827985415927700406196969445381826731238686860143725813315820761504652977726846412731736035419756730531033123146720917440411865409168587949141839158510796315274987556593469121306439560557208794003966451991789048126914477922290736945413978562278849118029979821148364636945765450073104647741744925709153572339158821600065344276537653162007022990953275544118437832751677141766497943858553982270348439192153590625490232600019824504905594276650243002399796865687984294085480955034431649655820483008351747425388610433623446759622821631825190435935248868704035594812561095174816047077775906228391766948220081275105930689498333619890150042804765591600843060079711356729828842789377319817689453619690785581528988017499578650909065533166227500608290057276226426025472338897826890362265454133997826557785618064123308465211117777638061417569857777045221030147400086815519585658672158306366434643877538228496293585716138338076446160035452224872478315691147268237090950866486347579283886641457293890821239909620508631468369741225413666349135617633093617977216482874326040937486519530711771640502171754184780738684524968103048905209791201414652537976520466458091976633078346068289000661824851428997666326784547084392851934954270158372621608703423214196594447820151194836052975295358129932646542512927573152451512492176328495535149132639032911197771684714131379552509989598279795074738304863731893873053337925206147598278644728016406180910252419096521630964269460172763855941796621821652313506512715157779621887424170917782431818482422652451710437769278563592788462947691372753431064845605304728492509956849596747377702855006889487887446015757248478447696809163385805274815777647246654193699088038226494125053956014009709579573868914732854879005970469685454469575984812164318495038999554012919948722780395040800239791122500941546343331859881870374689838553085963387807946013688094857630316137149823560645951991093796736338246344037638920275983532979064925485548296274136746269015704157730509119334406097080423867302845851442469416415417019671055688033552914165096571053178594162777857357367619947806622784519266019043420729829521605366879160305307350763055313508959579438032863634973731871508263662297068344356588635647734588525321705682909392214957881468599299905155274418706367196211522262190323404670022117641845675245351674959081819031636635870304444751816570988750465378904347105638452198702442398439622708638627256881176345718571480370429605723169453418910590075214885842894587248359505124351065920408307306241253098707153382569052189106441300904636782750755626325456849512932812225773128811448460800169152834223554953558101906375809909858836812938794867148784694844328799827360417814689508657957946254499473689472061834465550914145817424593387341109213100116844145539258689467951193660274044130719319209128658793265738692345862648477954602285349751425836071552063623845992544958462346606740339235201332369291099648355372159850590200533207881604565778627011079531115490613910719965808223464535284214029906333479901953904146520233775425684817374689023392515881217976616766135324004572811545883594681889989130314611959502419201045715186359094606257847116944375215114202454717150204484194968346293760077307641787295500268614408518187216184106205609193510103007348472624369772668489820997532707724227039704065264424631972417777628187514296953971974026466316287894766709495214497209832443847697752636487289944200761483902999121984594154952624588316997003462697969528789858060879104500527385800070213388020082563858976445392516112626441454820114771019877610116154563884565203065348489383644198065676619799536939992149156138025255987921880538372578378725634794720121662063443746321368479413883090492660109773862562580552589317015606744512116658415722698143447688525977266771112878883360856906790748036176019623021002884446396966683439530576911693161419157013286974086977382148428514426759283654599095315533711077798314695046053365721418286197514304141459457803065872108482449902680029092934028913146349054027839552362652171397550929122573358412004714898649116846238835512146977631240864899961283872870675608181212861343190926100507409089103909095277152292895342391575910386858410668610879857849850865821219529662939842073742590970539104829013010943399438226053835010936353872403606605658472469178352112870258635491882785601925588457291166186801772523209510900238528624098384046914518139255375404810074643261378293484227166052142256482345533422778209958357134619823715398448826352237796616627359027968869289196590621175210843129114955638656095280956262413210480334836764451457440485560170622926032952565567075271670714270730039839950273986357428436319292260703560020547646470127282090949237985168611489474273115713077387337145279310212725447974651293907023647273445131653416476860280008620675392166874021883053541050092206546800157169291793561021480967252283656703612486826195892533372832370222643742710392229145344499760862446429889379648473499438075065502789697642474164949601025468169831245255304651534063057443382988539019276881701920617797762370164169928127574158140246652102665746276207172401470557976415340460233490939705798941065745981020963116290370869367171489997458238412015151794090843799025385551513922034145110725834960086300738131755750703485994758059224159934605143046617265383669561006072903249721614302853042037946468600862485666398122914459037941366149433692510903154701552938844515163230328590308235675259861340325288635861651761446018144243169144332170906651939536342384151094422803376078180087340566039224507081369247233927883059836331909468796887140006970973296490565543197618408787130567742550762320315151248149892960229101783892179878933526844380215843634454776782668945106394566484095918655255580376395268051455305039164353290992907822470358333834487493302442408854608108767536194835403470713971605549010915337234300837584404412712949243678963108319534909369469528850590985189259051145464820870456537485446128803452361608770435648429839535092067935454319425456843065506853879652193091321288353729756403499633877248174398027469093983711656864172113622059702971823162106233906062365975798660215768427354336758840642251376053884315336784900681504874790503807848158783442873592758693886544754327732215191383723541884084099878309249589868255751682724378045051400272329258579435722900080352661725302961758721382682061907932285944548043490319928444080590514652148365225449433923010540091667686531477353506866664753565778517626064339522977363728069288204906094530584318654953708737744559027888758252945657671821798526022618747412746554756323123606169900217067318915554197345987551126169296955515872623392707360966291323255762321960010677013018670837786005342803919360424670288033876116415992654267381428832430655343453266116986778197864467846610940660529167393988411868715342070450578898117337882526574260650163258245340705287765562564792688327479015385567514772812688529471080735559142275767182990755543102129626122874818131841611402962856146238299791638320827328740216809396376659782101543402104874502373211768659153338580213413033800754230979359319304059307018764888009881118454808109814580762854805253076001461164712830116808190587572446407445185260156149211670949596281435718526088098626961730249045846685809299513127480261490758290787498469822531089851589856175642635098865111953393394464343422607015558866579477948028610689560914561036659772180140435175085845712196005825917497590336221902912503729814734861422207226243820015632790317344963146941506357948360371122213763568064311202449165525386439382367659863507873993904456445779775140534538136368131945290485919472311364483036402221783311498884780552586623604452243268519743357752601874566005686638245799724879508804368790561672398899418367287499154149357954598001081623768995822705621675815443936256901397193330662505312274752542715856577092638154312396049973435731791473316251321310569220333025275634713628589156052856444614586026638877727180602444732286820228481033460447170845641292128885812297896256353636884994197076266032511165627898763488823980789920587521941806758928609091859235654366288891412776308339401685963343214782152489492949227461128197417475912516697724858651497110324044140149017327024097160564529621790119959802779911045184255745373130470619234696458290387662684954106866627866529345926223881033009516847275752332822699651331143194132189709273664013962398848120859293066675922844345680066752069723204539446903632817349434518566625419310407710670736098030773058354641210690680808954142957731054551016609229835253729931739776083626995462568975995313445378886242832418544333306512286251955864189228414678482229959655956682924286522405832142779198307344926306428431367328909785497267805621984207383836580886768363740979691711100155654942858635836832727429789403661005038483201494510637171294780856285079801998900463081665682320451257703723015029196015909681845746077600013665946170895650939426827808117595469965843749497351089800098258798775118505853975077424742695171826029359266342453878816149275310613861394222511685593432950856408413010233381054681131677070496510882231485300448024916239577690000908201883334006871756813740055603043021019793510827425307413976739185381937507040895258181516299437259565432553637359705537274618886650955278228499679963097657729847437960726418378935721318396339228729754924562046677498250012709759155350869648678370219732911637506050764686570550656908624372009321620730744545856456102167592715483627538458692309736471786529126290438670615630917940198887753606779569930575883179756342524621389856789717589847880262225426417010119664154475314510729652455358487969306410197569764625720416342528924240900781031332787311602581424239890876143161049879826825175446863534752711494649147329756222849861352940202124172860824156035293740437669335256697021185575625654930667549944737070553570016091668531789003724234138615585319873627073283073628302992140037291770677424743817843237624341769635743093665813006852239021188065859813992972949572254799198826667941070121427767432849602639636111710580201403941023517175831537659765241501992566070213263717036197532190361987048629259992464265784792875493949470081135877129797140527965323876466712277016195299102811140936710427606345528698506763390456416707424669727360554381712423377191320716032291813936903744500063946925024913627322838327529841321353499750473045736409387822703719970618945348796664137384452672722276865753419871554858484248295536057401329071345221207893254928417342797638707907031898385007478361676567091693382522202457910479495475247883790168361382487383600608595507663785896876481833344269756549906718154959289761945170119235363308913118768774500640606458448481852263393184428185150353635217004550676234095746167390781227876714504150219122054779726616974297458248027207661194307192996124771830192855776508163504540962621843396644184786041972241706107475287486368471442006773693205065808357348155894832266222765553327758186376967343502445103535137950348649225631511462422353668934197019375763132679895142757375779006911039729431952977877211954964508556612631499374590013214686848945823205217843391909246365439767019890654734489780021735335857966730386065089733713176231598561022160840665080036050007199318947795003050726651918634845459625609362902730567707778612608414235819183927371689064064322900097462755583545997902844283080765924816164047037440299595428962245174889381134633606304203428689452572658425222307918904562622103211161043036788049400316317432215230410872878981388593556753381362226162253979542156468490869764001124523511687033121114868446823248906589784963601611457119006546209618687762083332897076391304277007453786639701310587617998551933706580737608143188129727761594356952002939794704958963826979096459714580674547454182698651750102286084538205801684164676266186992904191958640158839241265199217347275807709608446820605127428067296294430903584967575580609308732804082221827543457313330930855341923170479690254850631368539779161832110820256839471781280805126794702761606806473851492582173256885891972730854894219748021953484636117318238416432047660383523348626754738226036162691239154539679779519146944843579244729865685291179299608558788479126306727116833623188348213393038330158868194799504586276756595702351820708975793891068594937090661696344701629264119668445664601407391561533477518498953339842459438968338817526027085853483033706059787378445386779631160454291293055607851079470975776121282337992997673488450538024244879152604096153145954513542477400720746558885798572842693778260490581079330420323786629224198611250102491984054428778187451632852069479990671133632920036528973904127001752876024118743091994387171671226567149995637004881018165929836450933193498841692738014107559649816028390433777408060192471487845248100319171216154783956757570064324493659589221510031868959716201486542766437891396042379395217652856152397517965186638325374491054496821960786101482661560161665781694178669136164302136461257786516550239555474229580632819236070046903379170428587669545673656741746147618355046678047626338676544388232315865519546457491526201748991787283823646082496573441430100726663563031868758043917000477548714568179710646776766658523318323865403482891235166981843305767187836605664337759107945626599104322568284871156777154567617401267835403896624342305682538612657029091707555406047503908875099842878564919855963188448285019913301249351757032898747156549394947283771454377712644837724843383194172527994496805323640588786763147648159855466153972605056713466636031892882564867342383551311134431666571550745958006866505169038316487371488625898846685373386624414348814816811837693953096808844258235660394355026354602677595313946733963006842998965533110514346269795420428249978337579236762192956575694386522051930321252590600294304773815839775134681566555462044933177387909011666590944171748851222802691866272139609880980752477680943094259503837113993916479072306789530505933817946506466135540974593122555149008635703835019688794182148694772883007864634115114045011014191169960934247129329583532728824902696677218045456488109652824119234437136592518547985259022964260826783049988713739413915845587739314314304213487623271383603544058600123391486997589235688959472469286880138326704052676131161025986813922568776225799620487222481018971867868641761391131066801244008540107006006013353539418248807786237566174717228490963233176818488375334549030511787708631068431035009878594307578655901107585377858946911902455478744889714093137874402795048958274667428693913443671998094087641570757204548384883042235146374776097562243887356427564874776226173152869670823689631320657061793207800129626494237236196023597868357644829866559702840846432348149170641021466539285343550598989043343098680785725907738986803065112383713906473665922492068424159162481804387233741651982960890628025562746873856154510578969493310352436122552935456378155154281563850299728769960762923275538549783690345962110190896448154479378125667937345868841181152974287584733301815616132085506832798889883223454730218721503238486564799795151060663947247529995428159934358262190093627414626063663221696413733037460721247448146518225169635221955172953000989793663229874616473262023044720357408392772961122223321659263570351577963448860564947434498063722609848599736218987810778127456515856714753044431196353941784717494263686920501747358695276258226621190248661764796278893988354280464461701485293651208088028897812425804503255774408293501824182348495928371377771646824921695934093074711270070215577358998856378864236945237176615333454123146775785712095037589918321371710388516542418779344853547434236286465506114016015319394530589989904421692463193738984091022982981840672068044044017159364918983349332019013258524392227941736043635055268737823406958096955054535921051020522371698510449584327873837173539773614646149195676097005766469383599496992184172701443952354633572830781023875356533176432777147972169901265450120379886118475414600601308211671163567155170311033300518402935489776627361288745903864836316062012935952306794764125502530452922059877064683941581295782904749199261194574074960503209563184316249366254175832762983717060938778902107436155871352232000363659984411669430173840636641633681126458908113757195486347653082931087902276910874255292546816207115872304367942004535761034980311959302861722529259222458439595654626433481433113728074934150211792462206571226812724028100307055944969264221027705933001066315522461163409253161838940910565983755970000703508113829451578653701486669092540256125944087908516063505674979364237593046509408925691374257877154454931158369997008530631632820696656970217167994564847665291122095231083394315622079091912135917146905470679416927555539068588410311825243330023986303160110011820755117881838064536777567887034237242673256205270701885403580657798229721031961834611234785650694034086940766552231437262836500799297960281511020318828214079642374727297742940528044650876607309473379605555158057911015694875403311499228410723037099287618355041038169741159339704381768744899796779291156681861006476247791897972105157236225940860689144763298828961349416968863044030422669669613812591819646055323633669773026025293495041116030277692568110405851562333958188911341918878689125163870996455159468619473562767367013114466420847029742126089528696299965452591355629376727027208842075468419867993450690066206873129354869134167044849536439929503718205532710165827388129732939680855868738991658299118033139726729181922283882859249814506746683952437488517503676404040962236473294343963257911831682975280483303386020401036961326051175908255393481539534395316573753193728040981147462024221618495757638380770668302744630446071203231875704036382830352252610923714926420355026550950060481018682936807239445117587455175553834740827912042031249201365954462263192137388304983342508508704391054113650988609379577807743978694761590286769737186920917027661232674467270028798549862240859552290877566347386357288461294319180441104212573974204502510123245352433250965995532174965956953176800542596050675171099939298732932693700464280732233412497440828031964335802200128950768810544545884469609748627964315033378188872866113905649423429903844789907658752327575786370377612031137281944834667053588291064595917533782081784933798868321955448704846058099346318534420738425432855259340713643071842932442264993551622044273937524710328501341879245747025737194835959456262321192600486737183533411280506075634082659411094235112127822323487218247282978342505635341895782445301307580871694333801202405182360753021680175574843613638748538697884776742736809074720290818935214996450764715468877577509736485075634504768173593012573243965722807752514292302941037998729656073639124978131112403275577712216703635912778816304930535563782121511934889526745574180056686888311213194080463452119860399049515580355837785343401047743480961303357626931977649825736880352505898858305400206823876684212686056829278113597182054094278276978815922530195113324238860629608608996278472296299824755641997177838698084580658099891419656899373482250003964134288493680395635429657775327810754960879714604290544488020553877401057213312441678695782828518908347589068546925763812665180561369507875767360571055389414360905410892034545966825126279509979148244988099215293913398725004987313415358125696849143527250407892383131695343911621634844123330388392420759093146733405067681816041025469073752222451969183279519284470258881394118665095804824384580203360973535086192810068260702684012668051256186976003146564281999526805761228201317485073837953747830279978413094555705654696403865088112441646025753871988950149613510582059739023190718804166879664226385510197478445529156611561350860882438410066329703389346613830756934126824092508097987028547938084729723458122505306562324317541314186274916587499345651906229237058950844365751312126512713135739232069627256675846744966536389736603693715064076351838646155685372263221924688947750223499826579085795933754384134545559171657551131337860109047060625142921734514654374290319762960504271409791378201270605289000650540059347094652800248238670863263096171909091653283070302767825296198040119527706957282944509378337504995028793438672809207749807491340392038032581007546534029980913958969874028786122405692946347453096458263078164370811726610090031183422987021677620346651484189275450882096917507798970064242874646206297905446026142463817653765043795883502407371609303962944139005673157810305579979394976990895917656215383702484796978729799662930555634930026555754438179355269430691548983609594594153662507415372124950585315360762101151618515094468661744613209464617502325243975203056172262946967773528786734801021667910712399461125293683750686127718452542278720544671892643161470205845164725590838029061987402593047766801546590506663450309337978343983783809169258152863099878253524175542071613132275825580776111533246202325832059695623908856702389477855858600384261020246251196307224238912387350593853124416155849361003042902590546604857762089229212067931329257739566539183492174283752207817043835598149605366519169261430988250043614003428826933901139896371052099550949732209788626337478058035465462590355951477449794090308960766052340762308457076302174035030651691894725979032072277680140900601663743039036175824630232053744501434321392341494759069008678315837906054985225807738650984731386241504624704753098925331053514794023658103917021399635185176689203110442864226584364455654914557193645975244708152975922267661999297765686958711284145927449547447358014813188093229478556165437500622130015885453246672822249127689267415009038144799914095852104612276719671875978455377892765565502055884554551462269018442368383343523852828220976751326566583208448210605227862074914761914333270821880508965256897795855976903469104115034304487810865970390125658838593003322881671102707623121871990327756005867997727035462062657693343429925845261600444462004057362880864965503176363581535580270377424516853476972396583354600958063608766051246396471786436740610381364391668267151548255720658781181806010232875100253988100949911122634451266148317665744187406745006486913505931280472053245975100070366758327789540263543841729431242704952425104008678642456834363429000907967188714637275694034373012795815259687418489631140675386120985101316341141640874944114154345531526636795617901178926539048405108312219859422846029482956859263084124563117464263483152001991676742918679750416490310611854779913397771892096948821738978932451866208764624030212448956608170563316950797390703143336012806446387049010860040623751560777752625337640341464184013853857558719081310158039038923765816385995497888693349908786763377729110445606075460292206153060536726045737837137699943460758772251292523705525490704723644687870642933864425060017061183901132637734863336779505100776745884377117258063273708806679382815358567036415749679120270797580334128564537828304128636166114678588172716743239686403625461882235635659987405745829378925766782229665658757440145603576119895859434570221404648577506998259651980550763818509497049565361075041222136456328467709960561422132349217430036711683342345618798631762372553327600828287420441862774198804264162645311965794151894048777171868389534162295282369286951382596124574987125948759298645875075157462089500846485643857659779794489012178400115800558679152757336165794902106194253587149637645597403258275773741275405097127101355529513669082340890857255017166886991228375049803766533257798218408241510150216189683704936789183455154314215770078005413185570789369225486616712265633194243112092295764929721830682139658217099398349246768033805223535477530647365123126476284436568771288056417835928700402600800429882092833814472924371672343269630292117532204090510011412015501380517407786921901003931649129314821271797086840655547190767484527797371601220421975796867163354454236405047850424971942164610551232386295159965165511653603709667981354012086400809617120186100541720906153620387212869950180530975065109922399994563278236809515155516589343395625696172696718237140460770886285125682601112843849162701760851304705546412876322430416527417862936680955018797363207809085935476980815272060912393511569516291249078695261995860477377499801913293986130662676500576770031153692992063372439043411390321219429350789931533534211517964335918126449641888438286219619401558637745760189468101061644187929308268431036687967632336152517757690416659339917772747655421789499839108920759395180311627478076094558251132461699433332454663955473810908978185486265711033613027061036908699666982700288673944471778372505651735555937227387009790972352782966326550583471379971456869719709405170772079412020763865160527483321918115460717093469103334023090738255351757209172844625398606066243593804529682175818558968539022124142507922103585308133439647097449020039496433037920200165178008989203157309115677984323519890166079392163970240315676523679566839470081731645610301671679073860732741814867648742691642824687624592426825760852898722963399802606629130029217496689019772721263232282346275049931295508593542692594578952375819272620872890659516241130414304888026962962298475307159924809587087450572030544878693054949322953752828256216654440530063962885498481245329006970141977178494879683383041736946152859385608587416754983737450171536242255094798500963665885122851031699893529689420010929598383911532329715506423596028394351714762010366125682997176432748441453343918557359498713360548889633993957544974334120022150455166583071343592192893864925160207885632178121317599549227961155399971664810016147225423910965985577403617800022642514758792031146151455004477649505405302138213689831974585729390659564527481419304656469709985855429561757488239816869942127916707995582488375184650512895620593586896766001048670939180122475486784120393770285797236923486160727901253163247796344183613700132476325126267596165609516720524789559392497869840214484174924506646086506611895988387166988791399380058124156986805626577862914446849038390505863073078646879766055244717387248998767406614993552493808669492668912825545285449748364385878656365581928956655791094748345987200030548458434160802414653082087169709548887914761544745249183801514224494999682779541673076360725248338144705823903195917549376992880360825156805322304453467793609214204967061525979499888506395417388585797485781094998490821663725847094886212076434573093925520052544048123839044713601129801306301352976482292239487431141371492244973191115200184196709823918735213010728270500814220525963374170209056579750040994409132310472774078769986184190193049264512216482196693595160079258884609833605894650133118098763225155435053380524961272754525554828404204163044891927154781222105213520637702100083836268309679803456799886183134142516450822719806537155726285621616557771054625131049701277692248376093526778701041427354795852820489615041236605908267297290821990272542144456836057231215996898118013126307546198366109424005783146745564182922183332556449541050304190762081063016124520533840414184521049061194933537167631428808675897501806551861091450286329315720065343571044317226844630428826893154763845438093689444772844013551472694929898867256112630907650943360738252449540611360615545393034160123559739808613960803451064036146125217255572513528943816164947915212043334145923027191026062534225294449900444577433794529248807501434846870257893532416131215263054471898486913250752245662949941371984466369383143322320565090447180328803953249099310219411947766901108196853033614446040901658782091623225911126801145611793937463257164530554500024617766509207389698108579287164804254529775766785529332972521587493549569806778270736291220217419878373220138620553645874757173619016658353053841351664459262851416675738339075143972965503385107898923290991751020797552553336298161760283759923989711432819990321985520227725090262483368268179531668760844841586101769585632307427660640708445800637212745224254771725426482220947166103749742093104941258224863862545534732698928417032051770430811518630497774333988732847906581800762235470463101354422505250209301969649066960394972586580253139539868679298768728846163877177389446410140599823361010849519340419654527841454101258510997423393562416514876921291152768824062083367266055242530937329032635451538660529515510963722481553733871193790404525615908177404666181537610287158548164255094767946496610078798116263311841129494532830794781475365551524892116532412615867869066400506218456526542663529577117146218842740872212913674613368249214559102398025635636953073800964547802804799062474886073001806267905151094256409150517982441263315914451816269276841913752280209574010024233189049224616014691029777773091955705180690210304482498203666093440594989597223652869528738551666306276768932493127861846138632079274195622068336570532420880611163019290890890763656186874379387679911958050690013614341431985742938034192929848331408974048827710349776160935791637936001540957750105899904922734745113748809054999112685784469405655019884487009671821505181623910082508303588713333126480466450288992590126692575295261225035755445628660491271306887818008820946079407942836740879110059765808622329696710797053952598972031544660685161535207853752676050548452362849419218741814147438875979300444844214598088670152190685367287933005324104513134174294326667877657077413219672918741065527841756979402668538144686087799340551315277351614416482949817713024944293452707135310656325464102953265219762763937608479432172986586768822121784936906161187665858109420747265517827947710095984916782863135331364392359120370700453161022509032453014952617337253844819109921437951914220920061785151817979564150959885559983358782775429107292912473155258141735575534726198012324632883660823342778792726093344674713965072783579596062875799189492528919199393959329010090119387042604169330502479085212964458173648522080568920642916814488500461331114117706533645142890712387043332700467067516093452416230414895506709725530675147988611758095616066005991860364362816584197803301667793211162007477001478416451067655652808711756571437767609703906055969835772240178080039134383623192377910558871661742757534085783121983804154233905102372277701768147130833941806929320534560061410845299612399810525978233453048559943236929012785255065153847967490450934122225931049821715460796005887635859727117872773980563818873811616431016293098503927875819453678127442166370239457998429384912083792365136179605810613531326297702509108172703565524857741395843757902395651963311309599248588884819792640845169272063682738919506377312436489566329200399805813678840503399447409872654120089935194253688802760971086963383566639497983270009292580433720936610377439104962513478310896007758163122718639019887106672733252051375565602988206506544554301656931171602342330616426371602822364562948728001789066606843654100267287047306973369987369871301039936507577179340977194487435915113999459268229738640154124775680394002308690329350512911433455610588235455395628965004417291739553837907464525428277057522713363042121974547536431445367544593261986801916538327184440079898447262686699285115483721469230460594229755325363061893931039429318252567494692961105107659415055879238049299635702439098400045125819481023952860754287580819403274246225628737047861906164138365850579797903206925055965259193219388834701465586653866489247761560283249696219553261231580241256071490714629537777531199798394138141823807207308126428223834251315545323234499230478123515015604534040886560463289200290822379443471813775481236216548144396497375538353081469289764835728699998326798309541531384567854670068444168022086092590953927739607052557913990413539081909932271638832067196515431980308982467842450731549722657896592377418726076850754376914600086051453006691466661742698159742690044817054945709056416144536454830458851971544833044717818882728799661437109296928274570704062437680440560261296752540892664784197587159893399695010704283476523764229695636202556332842058075960015261462811249962976439268870868767537319988233457627963968312996375265117682079792952551100264658084172449377603882446662714604941711709583484398369540407606260978690114256292683294643256908810322870279996272487200345740151923150590672232191794417829706225884544154590079468194689349412102132670840427957609014601008201722033182275734407669654344701574718929216046083160104799211086266457994485006050347791781545349250500601103386113291595382101958658614589821380195440408639595564930169245676997978955564768120067958268143811585048566226356919909112245582039419108116000304494482309246940585599609798593022877845202998391556611558737318298714791249556935858255721381695267558184134956054400094304107346731871435714347721487789055916158898470097930553196023916298576385073094327744496476149061810938172402143630441888395287277065784621119785046071544513615429076763962888033216208444764522181957914257223487972154119138985719268533396070248783287719702918563747741420638683285586094782833040767052704560481303427753633652664738085693360182888133653511656328202339015670588744261183437429373318478948133186850558970902913059914949174371614458353675882998277973401957424068828250920758367162708113764178443891503377786069142600575179523422126153492169595516572815753986859542072700257121710936326867821893975828811296259077434228008488595708180831925457182589706622511094391046055301959308662751648754985884853436274184759345346826477897351898394637429737140410521896294186942324051300045001942056302971901596905655186625388563522598267225774774168826639445019009213501271022452412090988601867901949217566544841757415239032889579819451311626777707938931187511316859799465247377930084526041224823067670827858127064838560053818863530250957908773956525328723759115486237538944850196414193107644294427147314795781475157000517486431153801686708376764959018617444524202276693186820768725872040827403863953424856131491847271796838316445698360371869527253207816988412900998440673600678880427107161095081572313313757386897695167432705511080654231365634972755948329015843018434418090237174669269103964501165196133395820054563916572793900886038067441409013603347790955497349634561955200827202909058526804662236219024684051530067961112881335891836454331230122512740205407145289544894677432907994028197054578027598776192208286791915210104614101260237599092280746452697514294229231917326600551690147607911284845972083605349896551945357158592929366445485257677388104348488160996211072127889877404141218760260292401879082568430568304151535110823182391397062059476370174977473041288515736536180829294627171631781611520288015868948038508084486194129182112459260473020808345128997852233321157291671309115061481870775020638624559380144269349347171591413068469851097647150209157725598928019789977317146587732377685589014689112001846897059212309906635627825157796895911914058757201515394560039183875319837553292818095996509896520580454732809761489400536329813870475749164753623951507542769477066235809184306240025080750920196275708974354236358875458292470276734903200506268614546737126705932983681218375353905477525888771045593557928210862609989307710190364011488509533294526641823033208690939094972544062067472039096390974582110053037906506299069423677601826083673872071033694149015410046602230916778207921441170680479777079269768161544353870741996161579838366238164825730715895197326565992967148294334414866304991984785956086261210290982187093937668892378532099460664124313710154211307231502672563728566740679351186674439680430936829779587349599365290085146444991543487933505057232159244579950005955912451969159567424204242955933495420044009325879434640109235529984858307996953822430471902663208998475528683900849609369225262616391434774087055603833599462050611547587254841981993228808297439324183998974063115793952334397674770958055218201844737922430104504622003709624589000972817017821569116456153959794408583524078688588013567330851301815260894506129289390002757732329130680296622016510040912882018764432153988160936297966865327446468482884387303531223758772908084332587494366592148105726483426640635483624966394562270736904682816227364198203614896506880763480999365958396427628723982033709568528610463163044425147741726255951536918126562241712053276508295528688998951313135521464246936889629120387407781079432296919889877233705733137449627768836342368445270034952728656076680428375776635670879116495762432729156865365791835216420864408584362284406440211901133972830419522759117067876104844976192201426433926543935159192027415850306116465351214624006363386200786091943973667782767910969008596358453755242957848947207695275389768208249324258958845017385360651023321542694251334931610184238478512838915265395601621717590465227062374889527442884181322659335022788709193777061660288665336329000838547215809016055727805638983775278397576809421548518851607854954198026971266349835416866316398732243824899359072920788864655311038804075882541050422802022711078821475916105093231406282324095104154390242389842550674941310821998965534339759442710000335552741470032627563245175576786468985766057084142475125908582258752590669983870041238512001377772529196222214432545435707990041626672897095397862573056411271540824917085689158887921630824803383522843064637524393064998051562928792783340367509518646650835902940866783982168165085650419821890663550641331157772281511372971791349988938163116848988531275889691236125082153392356823321008780539791819383994479658998311317631636367824179046049640692092656181415731760928376904926914486068950019446334036197668659265739116783438905492993773608463202377433521086363187448809596630537404467596087452313977790794146964014018915501499141840887810759001923974165937992394989591247168029061184802041256707394554924666621961108349720093185087601283604134378155417225660048751812583906660400427681031374969473517024243703014186536346352924477105716132151308457285889223007294451272058915072006415807121737251757695349747495844211576174071441894645725171046512192796014010552932352401523108535414714221087580999325686433419680075433580188951983934844412027072303395613128525410635511115306706680376088475525124542102553734280455546756322934918560000190081959627653711715069301768796121139895291501187424266521533012448902754511379548532090698234197547780657590049943736087177513876435087387824260472239129928311393771141849189785933364974978770488572931917747238655091969682165415845812698922203341153866354258662997461116275321635742793241705540689348631084567014251741143678253727006335141709029261771243115815903104629610887049739537130838730926417584116068400181357789699281941497099595615313308835100329652523466356220722442377513431432978814610288171529584420985112312630296337691767877255685385586557673153848654694077760631807012258741611845089615976927134325310898801573358226012260675717246407142976062791975606610437272822138334498288930339087320002480176327544293971816935765205836153474402445377083170020521599884174023588454699368771901233220301716765407869955165724865453441830351487921448351768421429641077367221219770973525875510987196400696838098884752565975690538042114609079580245618518004848655775180875799825849684373841965560252038054935845723610049834625783041843737120767487204961820666911881667987532422737977487122673508055244161963541447522394545609269884199128135046253858439016965867949811392060607551966975700475025304091295619721736857532665889269359126703026588285928891095824551737227389252123734598452478010348361469310490588553323498815465610980404587611373425713585052792856423977882089628847921377455123475691144161698433577110578423960028636611142497069995954028425482634607887514220829903176738829541109572279369872468754380988507499096925439886721831204430280775421378270211401540130824412145453059576888726617344016308243505611481747800457753712208455987588058888036791286504436421564087179718554898640801726882911200259058133008480131998525527899074966086051307162351932108612552457184239554254107008061777632394942091476894833333955065636076764339024591278100553936492763545871229446684139352979369963053414816394134831086826795697622920387196879892816046383551104994815536058941999567160436903972309770732646237219553143864406744819659430961583686353604919900621009115867073659364333647028294151645296077797350937503651460755185329985164082368979511943621924569024497049833869267217574070898989103845020229102640392305547622672931187650947527671612577311523069338746968065738687797490443909114869344319283364641262091784469637108018568205200655370491771326496306471276265140264762953424159172086873167140970951929988368856359842649236659190312201121062610481120950473159896753497871141971823934626325526725157164890838016923790711306529482205403770537183208448877630526229279055329341762961911240169031278482753602745544391451559814679114597688263144315113274979956840608687878442299472657521716858903569872485125192061272035690594414929490841798042610870940658241322799069159281423775236029743222733798833263317721354913437549378800982622344981957394966043302955946145932845929528237453627890925031534249171213458748049611017999240005404268585300220917969655002437745511008571136764362154676100895422352204224785387417215177251900307557559882081299039034403144736018717930679609325626452414713591310085847564470553501446763183589606000696608745998447112139443669168611307526829748870760387604879366555623488234191396763532225390347415048322891043412630996662738162520483757286359928604799565551659155437966317562370226388979259559862607165192703476460567519164210262175425878127928828018524731046800853860499518967684065413981557028498073094122763022681865141495043397768001908801051753312740211191353576572777190388137460741095497181648058522806210762120594174404431807016093285450270744378588301555980507829039923457161253071082206816213404743370701518924239565385492212286416657017569058237724828729821294024397227353315814431950969865992669562229558453179259354832133306464217759212697801946868598642296931918847158699922418855066681797700660427091484268496129698508648314913330704310378038603491843543391392332810914742635006611623497215291441624490327080386256458524425627884041253395395296255713923543454393275215423167898636406081388484839909578349426906107302429131282435498880973604532813293445892414942048538029352226962531627573625554158332616329513300841267081483782235873903066176466840176969133581604865743877494348573695578360618545012700656663233157647089292001601469413106598652252979336978047307190340618555944684113136123750369569934100585756307663265861904057054480754870482755753365823311058032112509509125212543109250764973809143920075019391917882025905185542354391427845733154776122493810366427783995005005952974821795745963928935761577826227466731556408787661669097814691189333237788660467560906760369486125347135213619152612757868720831642697627260936820836626483483561211983550714585602086521993359065766447817343406787941853242672249871070623386095625032836375959356201272899785474998800183978239856108068979631937331419627888977738239356158249730470932126943483539328439441310490914528458393530403743474207743015282845065936058721028596019959717683273570373874292264274496193716927267037029125239837841538113675102743155663316328810272523199783878175782785828618668734746426996849113957263119405836769968183301510479737584650350372564134713051275277722411719360960100479596118623572553352430067695130144073245932961175892110235052740594879820248906683382671294949255898502549185717778867054061137332780082324572931194620547106428170957439784169774568987101203974010259349307786122988745294317242246118464266660044311760601643838112466303485691417671085795005465885512665638527075890863049092299075699501558894286425636613765999089367811490012045689800997455604712648096351032110458792716380646927965912442529680503868510575909696049348003069892097463353679451158275335737599231227219902365846075827265239621968182716343348339542284266575739476160612293409201811974054621152407722888691959656906839252647683331243584680078143242257247133245441123079918228415192391540374865613952732025760300731157823087890466628290785706903973109131412426923605088437344037656254450087845923246209370377414735752407079988827120639667144587623406504281445594231283948385507730054447196023185662554624693016911537803681877971474319454306907671499878035049325609221920157111263710384316685454183843266064534678011261237251184769897315530470520010790578418004397139770190851949862071168861158767824363829194885483406635553916802018995114509609325899362165739868818827904117900963257712564916988864114123628101589087671448990399750334958481781283388354941327929652932793604390594601799380688925048944563348992067811023156590467105678667762282413875784674980441374766240246451664224543492694684923851548664001954249962113249302005851156069073603917291220722365627877656523477823055126228037867626104248079246814331319072909561597458115639548941873985804493688333852139942796478888040244633937956622508838620917787704719850224463093212705362756441900026976470222274873828235877793884004980836227438077641572951180649245064833820362114745125614682186407999438060672637504704238566329961506316715091583653768683856874547831483720567556434645456340498005927049617727077095589255371844670085558908867192867191870776911274647967068883119427596222701588635165193059360202251802355516076012824258774707431186127818856501097033384776733111676138496160947067907229320936112734260977619505217142898870266728048475946208873762926809519590296444557837038762786358483580053395974183379096372580099506013340493519078493768199267958143267021838224610409423740360920447252482864095699347930968417027639216687722847246616076133068467047569326321248274902915170364792607292027069529236234610229134914565886438673910344076300853949262744571053448470633342504972485639768710486056821137852870540902181436257092110030144639254686542895910470520675111935842822262290809921622223448307543507060337625759836657753613113561918403768663505040540859218835057195562354061095423469253767530619087906854322967453743183280612170505892907419616743313552150566102841892005159589476991883343120027130460764612612050462061297197764864296245891234167375346566841366493173754741602521541154644393313356876914873080832927506273371937779341388736470329008753390090460213011568120837892648899729439050601569385352508279352536838589830480175085457695040831056914226150660103462644261300796567225919895374251160702733113753635509194269682621293251409001149311040792169812794374952320319909308649651898468900372638116701829590320617165730458191541026125460099874075946928980135976460929726615658030783766879612648409538453830114578536433629998621436156853605697211969125994388409363260262004708706950240485865376248610277969016481388646368728652882975232422750781257631292386424694608366874277033345521462514531428014593063983514658092487929882198359605471872728671327090406889580954575832323688147780480992551061843320958756866575770034387661377826581118591525336286529421913999402302999767182410318142655571551760474108069657880878603182138868593723222295178172998421874263805879206801838901510408301457563529718548465287144941423966255156150446282924473334306825373640290433327495040130441532268505555675728527957612967931536926668181376861430945143915448226582204616092359248617691067195076586097710646674560741825673842417981956196506808304945398456337003588648087830853123005848331527569588705636114689847337292467415120718943060374709340012716244619077017421080334771302200007952537341930582236970506937408874765474266473060352247832230817477611676164290717518323646451036416827850308031923231508338832775589473873806642681715490402381433372367133955222910010103234165005695209116318671722574741966685786836954632387832181785454941655434815259784663614598662352693646275994166714954706922606813142939241339522016551050053684582909923823469348262983454516490077469923566523401218049435899366381444795793224637052679797537102070726731579257642356952086572745117432294101859947685908384303078042020856625795648291732362741176083349338248740225757485580130247980673989200757080333338827954010264088835953699249053789935922539365150063105447900987640379456441034712743912846422582571266282163144536668231469737794380830714847176279289177867327555255520995325290008941338256789836512288763318959076284869099565611224600576679243987517836321959683987173544044956090811817664612174239007176594846641817595349744702482461060122055358552945003320416979302921900797342685068541018345170673783740935996806061326405867793514396188473706559435122916700692551160740236153103820768604227555799738623612893373914166796535143451552535373879198416171152662731596827259527581688684596458494130167846523050926269598515028961928066590462824462078404349609838071900767319546855557595527609850891208074388299260851811336870353216983639287067843830486971276839805134095077054528423611632515925667563071371456368394529031475937978954304043949946982592598682776360320869596374330005522986653350202196807634206510437316446815920971740249002826557464766336887578356986322031926756139151599725373544706900686846965090611251690070241680677640974313703448655103747888841122047479728344763971749202298763147163426400322596016561957551211333989683944913895714920991938146797598456576196191495666347740167286597772753297413944385279609080831172806675589230764623389364058767837725882110851108507487400932417542788659502688678149991282692057455720911016824902876246009696191128392109191916239430829136808279997845896666701653801542369956956387308659713131175679226321687497045339347099738524570180828212860839346628565899057729294988591193447100284040590205774024428758832652282339022666255214863081498647422439467608997722234777987433714070521387123604936569376192207225697616451565682445924263086161704435223387622844121389158738916398389610564383490172352517200592512594790749265121599582642624304987099334487458189701592822052634557802517930533042080492015807232507378929281322983847752830081080326917904722185813300614374582385908625902491783529175813786263307327010302230225385251625977562433338068179290890684412460018080254493133805956405973127460421811915592224452302860406013999146178203479174813440302999101181530536943176208244707223632431150394761982613250258446110105171565876146333517240858905799228257882262420535413164992984381022154101444996131794913591288743819598022931596477088721534475991107136003027746925577333919928042727588389789401216273969802887051717730186197531169223686811712618710552575506312082769647412762318021110682460176194227286692941609724598947743241893983721843860819347070529010095319467123440910188836704398794717376189566506518026701304109925263020493013436752546937667790436353792149545934857995324880630057372251235901454376811041013080188788116617654962697999596003249035540400186953614599519202871733992224440305725606448302825411212280272222249376686905413695817910928902116920733611786897522661547171453344891465368398839255948540210689846850854191583358352595124660706312595870729711150490963179435486549268412176545959961428516613999219640942454628816893592554085153060977977475694843175245392312878546649072569434725080499349775084249072133837575680541566496882917803163285956484899740823072653041061453892776034344062813590831468784432597075225470407043768255011645420128839872022433518843207176834923956567261865106670214847701937388523494751648410793236838704651826954434790691823622572894221380936817115436610459603814355808247611790183663834870472176746611026515002082755150999086515829078693124246303019103515530050181459714488492159564417108399860378806934454659580105061016617476196386629529637606130587755513203638547369422203449988029114511954813545208399082305827030868279966439485943090266622701419289168880864860241506059191657967393069177390607460535879910633141363462394308384114647598177392464147595095911989642691979979738707744904401885892745564136912907300848557218075825438849084969722185894260828916857175289466516355659951008437693534304999844794507541160933300295135097441860816275485664453856024234323918339286923846734116603696487303451683254549951115472530000188936290126632968455324971083563485845933404103254682803579911834641797899481142352573372463888846327573917460175544117983243262097042712533473494010862286857822090090838243320521480041471490305671492734448232446707853662805704341931229886434828177447406587792506715164030312684363376330160930381158484609328505954598133804601135305332816699818052257461053897869859536470878647191493146988956178766911027377161293173781381069041208713752053337204273814259388432690890294641142371545690678541079661080314060888472581065278648469402724866849298397513771756299925526961225728229756366464108864810954391525368869340068050139686443451026879549513755377152384649790679854786337332345594263667505731971716820316050061063822507424943776716657597526476205414552345863361261777706323925230135386951626579524382520579624577473582138780269389925844325500342348844366942322206178260188419906207625824552037364796061479481173601277901273065685907697421392671438579628354325391978183613857586793039124328895042998314484048307868698894384514469997071671544459931494862608090375430439389890084314803268128435626788063467355337601032916632181356728080315959562930278703149024246110885284599456675492821783594232349583354626027044772780173956275043890935229968068256377070966824477622062575825270013808450850724570947308149096138642020910476101969044626913708080444163799855062548240384972441047839299716287003241156831848326584942033881450303708049258110733150055561894069937157221053788800409871366494069229271538538249568609994000768381080798045575832672547554251961931801622077503302042055132952917610837726409734427838742553977230681917430988046305876555396279515372039650132006489776765751486891157001566806746206395661697919256855240840965286346337037560431694556064911052075126338990089836367351831080898159928288207539661932068919556806192280489655266415785119423170860570110980842400277595144737394595279475421108074692721636833590535629165635586991837674319449887997879308066240673176493779363287846616067614472605644976777385819891737814479614418987915330600359637005632468895248450883765222247525861621043801077860304955451106560562899083710682446452832719595482604570811376530517908264757808576638308988502465295746801741020166137254217836345147534166634794473022215164582184322195121969551832309139980837939402832556265218225488143756050632219516777453850533783334300384258977406298321275291421666285414276864136564145509763733132857801892137483813131776185629619444130334963000882416342873447861040401060309095650496308759286354994145045192525120600662635318998759496526589804275160747777822940003698695991386971470316790901508604478124743154516361206173004818546019217771645141636617858069826304564671853226829813188602782071078404068824933031329799537269105136253777431979435195081833396573445622341877242276208294003269129787819018141911474449905109960449861919349602144541516868830458301234850118662116661421954572628500443493096016223256837743827364838766966465593262334139325498492335900560706094039051792840518638419524350196121746991551198612341794023316024036971909227409162275467426997541426587204475178912588054717056373417508467529256582655668217422552362647160488314485136551593223537389000729823994978249135399704470512122713334058721022676720452464403135373053454138406506435465701134016970607689564029638412249936794391743138863488828268307786088599941887177908635387411171077235581362351669145484061703442169919850711762294201694617133866456414096832332963317573558934920064910826530792411687327119149475426692769408767844844310094362940739725621733106168242284580409397451566638453057829049585141625044366240118515767247207587505196031709161141217948621260939894945519752831555315963529883099791765425167978045402942141966201571899812202550385633858265135903069650277682238850884312896992865063141347806869557422107267039068539174987910668801580728264795848094325473006201887864959571054775658398577864673193779502908493608861491380784760380314397611039737374193779729552720180466902249062228004409025602763415154169986985683213791044731196681165356766378060328242840352349384111634889013996001471180336462754367621750354385386732807033510763885277994918474172797884863321054798037901968642619731078930534161966441458652569066752092663474656958039964281050563216026104902195198654104689424630840991447170594361018360105730129494951610993215810038925597065237608941995734054278958192711679816072019833917950966583688677557047218198178149870290070840035044518619041438978351620486942493436316360190910550179064603708011209579000246965635623588945581212510771306129591531876657480491824453372975677004547885616746208968408796673667128738169055519094349009149434032272640239127752509333320590578825435638342269869173264270617899870677258587006743767589721643769422799398359599735772654413874228912807474136147564326233611430826621341778815724234570192249794169448749008208884663267012728840626915600355455561244372276320234699873074543029522316540256416705804704318255376829707413760166238446420205071136746631382374721147430146802509551159670736570168495219006576412143357300015209341491890028149428479391312871962450470776276674408150972270290426135000771807794746903753596334538192233030671378759690398851362236185297540662093114753043213770193454032561564953686008526191894792338640421466471959005876390742150826129902255560444013380573146488135097806553048699843281633351486565988943205712410716657057668795454355691936735383972930913579623381495590547928269659392201094621338210586458453153593305704580377488879748811553397954233465889367706473921096258950091831691018359738535085381224866760665874950271598557162399909076320511582710477757836746750163102694795267802068697853822740468441518754635085056133032797717568188592827286231945050563807260542196165933966285752054887730861810734982208379225072043056471071367146524170205598127841770084252965248535302928364255825817260893212492631033089612361287346465577697551832193125187475734582316934928252982651938991535448306199959797770744259375888054192627514613198826423058876178567482838655398771352705291509005294792434018983646949411375603334392580843831910548470496092861236902398978915775179907322662752270565815668630971524621267706187014260639558741936411773138396109357793524025428576724638978455973862481935079253130001384927383432850281787420991057070066122271545875650364329073166164577898340375153978774616439068832282985119599951430881061972649746049675543582343623544988295579004796638275546353008770751970655356039853908273521641010744486735929617071171522566524856488238423224853773468576901635399317989400486575724608393909206978466183040799716330687800832916142506562026823376674535305031383930535717830160855934423891761660046862820427681517847723774721162119293963687192835529489117210273037343088315892571370745603873009565045985175371438357357675476730638333155564231117301976110632468687673065553434734531322748244134702375389119036866799406239110015483813506099306135816939131147115769575916413978487761932223428856718126698727919035521185922450077221870372658978509762249837051816951161252508872268735847341459590547985339136640602258488464928914162638135896862453186462844816891125285612074157783227371568880267526530238546953915204014707730172993753554448163517777505323298695338765762942902861906253389035663319144078546181356308987168739691456104663340802745798465605393478527642137377695871977584071063399718039693818809936923465191031130839741217669984379383475275152442104164234548136259454324521642942216709960653875527755463336568946659027990102737510695208825461966824267409426286077545383708382207225412395926343215266828109916746579515275689416755117860737015613037486763887755364742734538814984462194208782226170064995805865322430855799086449808884877877009833173980533838362704724605374210888891452600872060830137217133941082695604699423321027368853410865512522006237388518311468728217438916816466430306810925448394675019708608488216963948291635616659615002805275266369096225953830310971641487935387390869943707395631959998095642185977853333966924968118985269374570557171098495483226599233574807444766471778588362852670473063250088806474425694391390813518604604941125453313518124886533342427981498849785857165417941297147727218215259910281021618552562105156128764555939823123750169303372815131773583403141761323671577531932849869136967887812261341362734315786413092273725642816789274230487367811725809755580231861735291975624491419892089875464916407592273218081980300042402606089801878883504037642787074437354890518010939961259553531554675209679150031528454504919516209512340826180437980044806094576045293584342007249409476098004402522491777446348782670939220864269562397698926047286581220142928459041066945560605476239213079602337253653175084693646723443007459711925064606037790870975471890693107799807063229853227164506860820468859049595209795215203519345215006022810272907895585440054610214710789918565261388307710132770569738467751353091033499404465721241875867198769494535666499922500154737004885640139683821904487355189573588053461243384606458056509700169243941854819603323579436154828494797077513539040790932649339510305213544550055158969714234161264320933534618336573089665644130696021674236579022093015644156998228076949915678276409979798922475535002315875103343369244078329392430393893998510308109588664174416155942592474956084260324429163231125914288379508101888535141916134931845840297245833406290396207429462872615901175640839255227901200327863759597603917656109133493937467271230703314518071260571637124934721366263690494560839822287818599141117053832739931530199106476487422573148363188085173244972673059648450550338861037045991112598024412041437575943621872675523365348693154472067388001723578787328932746134695479075442974183062938524177506694499076589377575352842215819802142533403965036647053050888355093011628628606248290877118500658876831969149400432501408898216189029326754142933740100344705776932948565743045007585338147635918221201017497286302652269102022118085941504155986928971063149668629754512573124044403632056630719029684098665258618866276567615793548661626718334999864667267619011974084986845954578910277444359854675970403915612178266952934019536929415627329302460219728004236979494521003030406324515777094595218635203734563216614263036674426992456833283485925667546488249051135845848476527722011777334212760071755679266010709181684077986194521458342762448542496709518131324723105496503766834287214131116935220357021476833501297333088432465399456106551546776365144653565606795086582127981708556311606300881092703008159581188406962210203199590444191442637167006545671855193173002164612059661460502514651362261937093005561335300000133802792435810757856358663118505756217358166537363191099614517520190326572984843340794794119070470707086416876648028677162077409182064121771221746562844656573781553086821591379683835942656833784041979668543489090781092833197237809092355055605808160625004831116921954969859897815670967507831214884910519059223459631372310152706390852902128882380090087068002614065287763696359001087043154261470474408426192127202102357394723224616543766495361981925085272445649997540522705742557470197609700400718858304424264854744543258814403621996891608727947904684077495297507730422950462552543646391207169589155795226078282390547095067260333557197125550297160668452655391476885185045150665977577629378787820594340786181885220904686491093871553409441627274489492430338270943748957755049890788416763079537973953650079490678473332960162464622133919089586085942164327462654694323351620892576038848329562291319417991879936220086119907989802665838344556337407822582538925418410592969050269346249712049728314563550541819268940641291240657974528024505422670708985261855930851237981711247522799712450235103835003229488991431389565277732161626948963530035500123565212100654692818265290778914954849905987987017432659300002893176037448244459337395034273658814998224016746480729634011390119637509901060768625909630481399993710384199261981853568856721327852786774016403634299433540551187371268927522552942775940519888779653982258336332587452762260087955165420301323983847767502970202908209976813427808725954010185955072425114009974535181384173505149729607187186612660533038549964559893002353870606062493139209837483733842569726703626564483690542486600311722241520033957031998791087798243325669333166014570731984865508751848950445912094519194806312804287201697240285272482178963943247135539989709939367912117266345995414076335518084530715572419478530018002824105367462968728448117530091016580613444173496757183873094928891700157754238272762027921042033558297454939165377697326053385046168751744284226301174324040213812808710746242878786705739318071357566001631070473318114453927090464720715218068064247385242879341209762882585366219792778131513742109356368928802533414020922215238557337114542687006169334328809608115667730539068896071253833195050697256466723543951484538899920558674840782829799925427012391989142956991915107463727195686612628788659539647690113232512953958817050262101641166516414456083039976137161453334815072463670902874085638874999080532575382452776084556948317911247969397105679982273070666726984045238016384660606338995322987562376903087517189329774031334610004988522445849264811651115050519979799629102696962166497657459228890230830193059700621189138380405698936287278603604901561682681197869541813832914058343476227163314901593624749964424742624261410010066901271560891073758354176269033223788351090127430443749477626006523647916355636608724308787437485840417055601016625657878155777211314563526743702736456928243458384432138225792085079189025912733099338664573298403742446111885004720451772129317535993897900668531001367598717380784520020580502718679390369592296661274968933686754789375394264808933156522825201585246553964004579486186499706365454948149612292824448815446476854241684386081496940960158570198361527287223999707911540905481860895008256472477289081762785555971672419605362217329944881142630247469932538946798713347639542289861226561091224960504341963622534410943400042143903798618880378858625228503825569546304909569533088435792874028817297452660195493492426142120645370283115381417126769611322382436077604782806931195502651616124632311137755459172167880306803124777524590485234799785035674383785083042410895572184026843399046577635312513401534999269953208515345133124099616147319324956693326714486191541149786918969798928821726021136171028637749871414051378268478015725311545677504871365407366069067999354246506948096224171189734788828957238963610258205010050110097384175996128895625323931346131240695715964393444529215156184575236929374257470979558187801179418491168995852754069201470128105981665758763037341412247599774209673321971013096442885315787667639258998815766811625826007137858932383053934323133314704605318350798904142574716214567624774247738280121282818999713554866743266575994454909128034104344437546788328389308765363112647362969813420212552795278470524389838295310993245020956339428460804978278073450047671438814878687201961173759379796968307795000966804038373572032935963203013158092056974095632619238758868687449738201786661110840124598640364267492056212639684203014196246323251575112741224649367802276374543231974847235157948940033851700202739001838516935772822132653997545055736242348043378243408214651004091424777934681330796040287720427675080893474113111750355247906290986710385715181698479191109366780623299084909217667815812273320672537021536183644898398488884432628364426850351006469003030253133244643411494424435034265256383559159015156120677166783537249191781825020278830692210459299832158746671835060591900992943992854593800748247503771263385025052508790519871412021822163952897698812920666772241439146372905658093836017123140551923497102083042710850938525991943868939430453646354428990580219027678552823340429342875578913353572741465073219457428254988571864390821129592808840853506086254227405740790487712287196160020940885437922813126540923495407407606292522427462657889216756154275376273874588531867321707981801134228672329226278099125754083931132849525252250080028872834778189729996810531483723327673555365019578611440090792927650364276797224677717578853093857459390032084645946983796938565339477964903568634276204018433021029446358866718814576152954871537539469220728257257166426794889292290180773996257406767588383702893908837593883241781843165940652933453600609428048126162499110550231285818374115218713551126901338825855160725650811398110541500857311495432621215122026698221462408315188529566978834303587531357596132574460791637102197338782506237919884435380367894891551427736089059172663709523378283130664164468394655265485013686691924962797013097973344861777131510993751282135205744705511836841729736913208585870004865251119649691969599755316320449141489416466279599321879019991016336611356315515139932884031636989997921626026765186934072729228684203485727298747997094216880529533397023114246186878804892414683189246399230508889084806058156521439157135656228604586541790053988693676341746663520213055407235680609024345754735871990027157071624361889886916326357712222468298463698500285107408089339955162488467677843732807794292668663432544790952525439795821133789511960761291200353744411740519782060388410026472860668624397009957198261568697589466674746254148363668340549887294556427055771044789831420478887587367565103153586127655382885710001297312361250793258857302585360938233603531901207656239456218015799622329017027992004662407654309738379312441048683223439334310291976036189996429489606344249357743426606108393552560527343679461389885385233810761393205714810024552611367956496216740603487043200865903409726175522749909112424599546659222461140293184528700741685944498466231415646659315290408362586195907224682360686688358239552263245980960070748457844890680798228537782219800990066896603895983462443245635399790841264470816896858112034325903905312572351315178268119506703287483856286271507223300742666293425977675250783358193018387841550720714445233273207959374209887225771504685600484327878338767280123941778452924220168572039362751414703925685466641288993232472944131909994874145461354131304681462250854847402687023414571631098947671405213099057181881019362428941169434073843492349333394790552480252762749793783368851386765055015677297579644576566722211671888803841451959489667500838417455878811699826464559099868092282353429026202625586131504515114282094186763693249802489324348003932260432850248908229582205797094369819924128423144994500772076160285098966043870427582310312434482741680498672161812068975690107825760178398294043762287037316553682767317019807964299433187377108036011479092104749048491796004997862407995078310966329616483880340048444416269176685172416383423863457908729475776963040258026604585737665560889997472645219573744094330536631725222015455032111295565764159737888128322529197098585806480222410735640512074968918416764793185175189159847915601941716956493776014855665817724998768187166811170342689932026988596917735518267808108908864087364287162182934686145430888891380437770112967532822905925139814780922076036057204148786140784669046556534494434153986096782228461474191166511715770477413117633167561621014454552977339545488087063663018201136427667163976782475972976785532820519864317238279559878469836939660961053890622266822817357181222701148862009954244147720960884009462788575907717762902660136885680733859863028135731407874592509322633486377140137563716949905902798932611864827779007713011557985040463562929681227814482876691726358412341008575634578462725641311627516504719005583680167571867049594868201777095839988127127546295984329861155717739694572921645274814668877273163796762259586443178290006216012601668954784474228909795652491254478495220661803838580636589311338708579206822444790989003265841264672254761345989018457821802561304838671907429007753570895913597806561272126152905221287919829641585956303590287239303633601211349791064484596625211436077777061546668466969263363250567416144615632428187231720898512857007835844280622665329945449557166549309251642060555670900562358328750237435671319578080065454667732022088044831316411890797182876690545425818779325258689077472989978325356771932040703279745285216422301760070278385396425509455226517764052788766196142796193049931115995172949021998524852165932352320732901323021637120182095640252966311121553436873272329782248776808362382270146315191322791887707240489435033199719844174554015938380363569937281492397346107432516126666468332882064235207793610739585249074357001588434453333739915759133708842208472028063991738583131967381815471046050700768951611349944671192410079611881400285341207645977870615247248582998131787817164366154152390378226179171656746962130684467318266898195275712042215366197608988822187281077466411121936513256423231357163882679917924490634823310628311970397060957980603041253967536869174810726882628178053013715104802563027307149457891671901088360641820751431773942776719591999244279546352583570564248994205759005754080815181333464723821772919743634479948662280863296207534779495827877481424964309138776461180857177517838207215374966838450879462234174728689964510637485719602023870303663031463464266538819843302374704244579353933777194420393017124702102000018336884462135609369112838371396449362352559414098599802389336204942761662441458310988170916357377114731774849993704224285984119096369876678910800151149191882675106941078058695974539620143893753865646618364147543045868949626218831614694300021287379011091276258091647233500470650250125523350807676653021247420978635394288856601481258812065600846441237561574701394678472142200827126085327120038271061489128739847058850833613229873131272273036872013314725615579234771434231756545077804686789889477904693842737138369001191758740012561918650823598089584395011932707923706104397080288879434807901343566097523227087907214970199069205142575071856038209021733420509535460631336288736313735250385188077289412806975946664412587119801124419419824952276641139247079602004355848297190666681437979887618860524775492404810859692195954760581247760843625911738708744907851717258853563409680934809306851110936430939403432540302126806307286094204066970475876354076928531805774710930467099731556512763584057369439746934915146830500119393081019531462652003479359988466982437026174320107065050508291618440721518012799462196424121253725710954573704994025907103992039091362195187723103616974396391195308220797884947316756729181429691058095184395000861349522690016058110275198965044032909738373242008438903496599772689424427265606463134663684008654685280260540016206008743608842978837461355912607559460459170145347001985416405301063839870385348216391384998374873920409835868634760911249178633700904051277205007856355117322376780255948643016772732723811891604275449781492481935412746463594339173851127067849641247237516742682576567905058088275456151759309083521415967825141201134701364389893875164665535675566799370660709877038325570471473167255793709894688555131690997445048419177276752717064097184502378150624979060695289746200905807580937698647352028783756926229074425955142366216921050985755435893174887067993167154721656860314047711461458651617217509084102423823489639838006612900901382666842011422838322058209898541117252290000307639187989479352460151785637124789910511691044592805621678646369206788823257352767812057847610168506414665020706277543296570480406292884119632966496756962562006362479217039216003341154206407036741679543931369167351503360888340112854587818650082004225561514770283138843530621262631189061087566739563051075520968037116589643815902447428802277839767855590738028895876996449892618610044415849494682018314618384282290200928983500146453384620729022250745147095052688223956490215295478418525193732779858702539511773092973894608159317786647472841951243026886903185073167003170610333847715651327061074968836715805658224988631788941597478034170331336716157059312798691110508692435177773575152297361203453654383242926030438140943807070883485872427717056107809167715712134768778969819596989986162185594457100373222092677865358665861156726050458320247586820710103067718977303485391640490131162099891289586556094569776006756692578164437396698316546148344475459243507804459135828788831768923339812595752116784375334505974508955117924352254897084549213413222872706746907209680841391275515235464146260905989220344060591653254703454122371193369073131172886170259676049402315676141694068238043508849410814672224625936419601006030722873003357540766270338941147187372738712051217133689968811418291475336634128695954956446968992018661064983234138351924628591290736162595822013201483731956009429990091452556299403666053730441425527829568015090409553668477728267221023497529872100301542683525724296996470414955173410986029566598712102665150452933976985235187568291863935533918144705186028162003448168414809553800326514001790130544988816353983111139463357396136468991325573230658206026515604330509562435764368344516579397055434158189925328295428261489090000708314045628432233661540966897564594710484668004293350554771829077559122857149266055321900680376898535692670417292720352558635519658073703726930894425111006102619082731153068915453375918193569327578836310142243906375970519126854960991680477933428089460113049056926250566127826257614087674694862993807461968800139754324237206222075430123490190332467976047044689652482768849108784335101379365823059733105754990808252946211277259228484204640552578431557459450832043333450037998604121233625634774571959597829019216533329707693618035823103072778657136964448957845807912566909849081637695947870116660966959877719202350298878813616230069917124177449510616728814220210391802068309517987281280014724253527209472385626933141182418980927116262799946398173271047115609544465942948474137207015173689401626106156009006007137247904156197663017353119851231858197892994888950701980587963577832916626213058331607708365580315645302741157114110704485561134027297030221300364322083071979024973095380600545449309161603175231341207273236236853082556470222500981184189584704072278799639192080466157519635492820954603742873826856143993467872755260895097716024777212916774681090623632702580048024490435861096511784767571656614880773961704237297180749328384834550827652921150817666938006434954802810770143516432359012497164114881425799054189766060518472143215996544764380357638466693160542935947977467109935689501883651815359981397640814190916786363385796252345807244266437926325717902672353549192793666441840931228075864712685947248201461373740954347295889788319207643240764076465275276548986892663246959966181375086996721234466298758779642681763410803330941949778647548967220464801875489486673062748494519424755368679899898637790393066727398868218397352365769041236163667255266451358997452394755573554716304794811100416793868143433052504759438947252935611009626420154097654137185350166806228539325739524229563750205575756359757648735003559371026460781111907235800548880428336510733725694603350347301377566489287408578528719854975373022781701648524744065137876151553260681423711328017464300205838783675852197390921114385293278518076903009826017936965245664430273653571303669912711729415752419623887544699013016802600939870029209452291174336675286634987285462010981874363353471325326498318508844942753406980219704834433607992216589202643916262820229236947162957592353619252756726453797197010578100595130524334237622038401159664428720308403770224016290824816776890457914478254740538841696186323087153376871208150750209654124116915640709483051280754730637817997771836138191511656729973619543767493181829808496623032107505740613050494087001592543556377068741005972443763908830299528424212769728673974155589601066034807103903462638555599642323354926696920640269410891849153347205392200210544779152549816352826681270184392045887832556501279634705750430864322460081879151939219742008246239307547540841530655620012746849334093793898936626883807879988509577041963071757530951573101791633423992178723155476856052757620922057866530520999880151340474117209677439828995508939825829246760983912832878190601072936879623454841523637056718654923778294091237252706624560459470221258358703060479907321338551179709860450729306067760014599106880352242019322261297187123355504241570658996285854371704905354105032703421575575368052556332326820793965883327910676752024920047785284954062790990146469247360542226120849465192498648454198518424543529329714346392262406566752652473463209343773368443883964230215172427247658083012712505603893823458541515959042206079815518335477395829348167395508952929598463038027788882897944926454027836462092860870259813070255311444412987978947971064433323208580352132549439501385813247284658520168143288283840543733449314500535068136960165710162108592371642645161031191468763011740490491858211645020793463159293473991212822213620493316367644155981609738119751134171685798797266503226374247076546758141768838138119694230183149000249152618896376642470589124546042635191831548983312237571447864234506860902328635448623309749806601586761995362756977869352118160424247691962514769573419202234908970709862754277974238066238306689692518696112547587740181070138804033633147412969080251490567656018795473684788335842513816497552140205263384613587935509611671588498146727222804546019593991344460752630887318827286238962730405422088789524436256117432217635100050196539799065486852426967252622530148918905029318765476465416476402687543106316765532487945376366676064636991997531037353024509278579027753397200349171603447390126162665545805093792288521546376811680645102086132437630320020392822859634411341098020608332353998933644797198036050999534937823534469164282639157525218376937217482103404553737759672307103737465118857515099209502831547948135151508361022499355409301981326086505334366223829141644725087086961283484079760198761681714792693408414587243904597237368266790431285354534270522962010297720138095151515398292134329583419834797421544962095493926442016454508242458141283025245182574501129256613725911652904388833050270621561365532425950930148612352547129784243125288805380624842892139781974232146831011161681848068204804742696829503656765039336170103825976728894535264398461664047384606038519473590879093083377456390678727849613831625020707915191875713388986406091604818663509623923321596067502055608438918072423260711468212446981013413182138574584079329301241959840919387159754968668621197749917485966437768155550307490439533266245255743178472601008397554822411687682329998127538313989623487847587794321662343015193703334297818908884984988667364064279670091290796129155858595705265749617237517981465028588725388395427683623872207836210646587269425426644024353959662315275492149918405710071527819248193836077448077066825764140327071219905582270932852707554446474366591771115408794414722018632162919329421897606783632313305931438921730550579617849909413563662390609123607978604089728413161545068522057220631668129505599854423106969946944405657864938620057154791811371448228559149140967126351560683200023816781879757325849845290182825463292620283744047113394790287156932743878716065882151639454804260082913546182979390251336152771173061316897421237556456995413654552770446472843160852581464544448474931110619670850051732283631751467409182032764693872800712650435858730757717968497278806361245371393728634661913938705738403425734747718190359951601596547630731965848233338525122266819633795138290636194900301076357070894896417727217319529106046443731149550795909081960281240755570899947937319056008182252174069889444321440911158785959716002880514681743931204966244924022099833047820970042707080865093242245013854762780274953503840209755243988307760952112575880783586706241587636615307294286356266399058908161664807850398289246571421157682942521320600805124665545311919918379369567376545634645018172956151573734046431852669267588491803296676225716719872533650989025254743961723868535300087684556703794244054465733129710446489222851355813574249960183598199728453891154612586989958618649895821747467362660668498225388263963394525187752976071843429304989828964778807839338888905253608329506039962910173379154172100880292398852815134775668190792995608747075944605520201962181287483830755649300938638866540121670536107742282716464890831910602925366959904774816287783444445636102807668796376757319055304841814241234639874315200977626105266239568028809507017056780997159066900144573502623421877476960821331580646960547693798711338230971666684068221237123397145268651108969449809111199503672430610168362742652443563131454727290857839375327205653461195805996517471779303345991337280791005751745763164316803020933572408966341839915355058236468388985677811365140244632634440696841275213242960809347930380155000722694164778961939300382262926164921347376790606804187797899683106749560603425080508500099219837426022087377541334683026524354321072331064380792752756974390546198493680682830552925819598368329191468414042960056834647643267304223258713715401370120359400691247629230671584194525246710827632561928100344182723627052048796776308188853127348808850210455807160408634394162824340726713075281129538243335543791137162577130724810283050312438110011210178745482437331156596337067409010915574654799974222420382958327611562555510985711034161085155577537559071259148016841722321292423602606552783280835276903958865042682708467089645815566747075559477881425227721320063625356537066893363997062138621772569887115433603775671470530075403344634652234484201977441040267159187367222914374068803834401275971761508788589111640128218379332886014711808573003102339240349132489933160277828352294700221299038271224285662558845198571119360988834070211324658967299562780410098509481061826143756074516256346765392208181839058958530958270905452371713851436585080452907225731972897812299493086612524982550359084855449911837907545323453723315102435436938059587210934436883000420688373115340072791647369385205421383504265662449509198369565688444339343830701285509852654552371900376527601125656474331824443174163575991066513429758336014819390024402692370385962028131500417370781701584085885567413041306681262113896761797803451150471960379000285016249811110647286555175479122627735672369683599996552802052845326337153486245374098529232969390893073934717588386072632982068700271472132033710908618898258326720072619526251001434357042735260076988047712466044922216008690405072990799757961262665999243534440139226645134675937868033431046011455760065031577565699959467904598565529730560866423126234372565118213732041402114915697419784680908057939144104446481328296011412990140017524142567730909506619236121596270779175689475720406881233766856846727460420498488191787442490414339773152632898504256292867011237395161052102361942851961597167361105990598616007141406448051440989226746156431188622427137708540199716336624526894284181305445160888507024553930922528714627699486539160939853313905237989844893474358288798935965001979918286676411261951653620610876768647626382171298743013187113555120003714977412391939768480890847120578752697629054521225442095816934876283339885909797740469353385534832653181846762759079060981724948634897793460332083775521700313270863979216372027882030121538433960454377667667167423593409397307373212636368599216806699121607813742965282505916245363598405564658146168669118782746767772872680763782534505566372796909304554110224794681349181264907173218166298372850546419690716745963234358106955922647457175242748090774151227257798123479938225425758786823892403515926553913326590194678984077976239535689253960990898472662645145648079293060018933255868162581883556941566387688814415927849267851716121134895972764510476043319191454664163556562973826338666432908383134004518900617741581649405698804202956307763715161277409507944474014930653863120763151572053067937354542784931018360445072988402381638258259449316572548124510353692131532423282707142201392870722950285344677934380328750263685870728937619343446241946879670462001497219604766070560733405928179084597114627252417285301230078164260200186715879082928866209332572709445176898075060582999976000069010895791574252707414631221446779633449666210925149292781906450699681204297893581217017021566313359486143041632678017296987968388420605075626843180756342493057299450793790416912966287907903231506222701668941610172772383638081510265594527625022264721463719836109313318339421600773745179649998348161040418190266335561019113376406191945351576730386394894316954917391905815329802144267922426775793062329481023066805556084022621740423283427271105833563702145969470773082972311733060877111196379068311651308048633312588301005069336811822282753150755647468096170976478033131994170598988980959178695276802739402674845966010380393945939016363531066004811841790317613487342447467250480667268988949051214255302008969635072491892107139960196060273023739961359965445214643052974832064050354522599079656258380519838113655329906927395375521273419468238052747798146321405812755007073022441117859884134526067106220201297989424619809926463009140672771189449200945241347396247547108167234375968882955127150688526007180584718318118703945772866838111244002291081434945938452713115276272001409451127710418205278717290007650294223559810572696027720827728198824484396822898701987145063361671819523448492099335076679860962718379291207223784857761858932082063768757640113184903573835560683424222952654039800393480887769854119558022675474228909201928740000092219817291309451558536608060331947565697446360058262692469433059519925288601997637682660261531008619032982284617325331622758247640801084263982969200802523295409865312822619344206560973367011465701760255937168266950376532023389814374325451327758685449501667244385815286213457061778726275443496631357170571137077043639325585874119757505609778544022044172722203271078424868193887101664198678564560515217823051569650711628312620192353240638237508083930431178979059615206988393148893241854099205679719168667864360755426999321243721696228740618511405690863607109421881420700727036470565047015841663844505696071497237092008245802357512764770524515548830248962489247927628000712791545989652413504267201091879969483116690914331882932103160104550306167871546627937228806880340285876627449119328896465956922419458576917998777639637544022497478388760752829517660406559994022835226373118792210195883431474822347155237304055257286238014731078813523232630661779351804014828661947113504677568033372274104788040422699022055010098359027335390919650966887577800498064146045826576289013405808969340800247037193502892626238483962538343575650257274246589202501086885915958157765380650278006565696038717174454081789691708294159416956202045392368754290265935351190980137285795100239043937140211986038522792724335022105227367014432837490824119045264346855276109423844865790141360458217063044138314287752396794884655294306536874829699445080105595815203578064193877962033908446739649667032583348628687513661773663857723305960861541496980422407623115322226286955229231275669094419983120846910608364835064986241538380575365474728939775794243288333399136515882893114843408217876635878162520406184118789377199571072213621808644521732540847456598814461361048169724390079522120755106932265694428079388401373179402266150492900809862854504544565098222270565340824075572821410206196236844522207053378217391370336879421838284590248631130785902623430558344406301097583134395500255327015265475131205688763719152410517334429138747623637581824775246674890289006135268525408254823293956294084429863575334294084082427691595575596750768578874922325121427379779476082981550212118474520506445486298888360540342443000633234519966382523168114114892825167292022563180498123124215503852689484794486700215675185391347447693570629734491135368657080126564731592638442475075513092168324174648484817507806241244424360676737003330271618047410725151424517226506213836716052555908872150182101764838566063249719665525428950976002502271927104988275626368563356693894210240608925354250240114724509516628977104186955508944115776417985569050989176386008073503111671237127458862206445679166367767815949711539787288197429525789894345239589370708416580815980319236492741819213606395785090470964450959146736292158826131036177036588490760470132509908989391190631004138112363548767280383564289604048051524983188792435644274047123506971005058070719699992625923057266474145947383657658165444985661428882749353932592187673339068106462335772308020132735940655050945484634675656465490998798914268629600756933103032521175189582528995403072756189034778451152423580878504621068864479619334874466596091990052998504677784625451675046797998701487369480653242211860182776141666350692418550744997958668792668185330362311240987532808232206888628518040352052753896677346920712447141693765502978561815950986834024287362504190067380980154858305016205392635334033496662329753492159471542357680299208155804142312345768605420447101337322645151135389088131106915663337308093680638521142989630015185050718490294531684108805564699493805919505797149385325291472710053311943655133174830124760925470213294089686740465651021133665445293042199670566364183315586891407932138180868176920328677238709069761856652045721704638843375325983390347701019854460281352003743314813999570527347045669763311506858971294986237934676121539160071593318734127992401752999418721890804840394144239914582619282943580382302222212707942323809938540708812824836896658766740220678018778434805413101834372265297944474038340998297923117214057267838452201452142819972252541646239406755607294343389167489326377807746968776020859357101779353796659410285188571720299139587788125254140940571203393133543347325377619245906462277082614704127176168067494933219500561940338624173818943799656268188184197253029396381575872615876959196455516328547056022051462694768438498457644261470528809605766371988343777536492960633236591371568150271220875470631351299946684278940389870976604928760180699776075590835209869123325475516381980106252543837762073964337278249492704239015501187389419687508636557535732887407596382818671062578720395008186116404586347762969135236066355867635860112428660513488493637452587239279953724468294524913525611300495449290677148750880864762806840917723547435094668255399522377018293351491867595643205833732760260355012195572710501032825403744572623366356249480636915372718244269124514761490574721987304268208746577153806545659722977637376131888027136990905857855132705455392429175431526447700847951017655203676041762272624574657847433102977346769226303934307786889123204601799877602347903446879323368790639466492340431920582972746997963203078083086920918416442034972548426621897852482112663855310307778699118100655082378443966013949127378500799522238315710866992684792676178106315911606128729974702501051445319608495388587717460678280792515599822166604939655435472100263071169138595207275986330309252240693707858769785495515942028170642405013985710495195478086322679491282540049494852799124987703690269266757299785560201711255766019201473579268997677198404213085848124464260928279824528871345464964901442149176140004126741500468646880172474029978171057677775198322168600013901544451470884288629567014110765665787126420575110389111637122218056002618648157485942757796119611712390799387750901391444213121882329384867193213569498507156919131331690059633218949649859790468427399045787021166036870931735050637652325899339425777644233649745348471178144508337700570067890320089700386616489522174727929562283603851943532723654334412703354815763986011289553280755964944808486055190146296834251870530688223264727040955293951786653215520619943232435260365491104150024948940974594155637270299360900323791020004769528959774805792183908651004307997208528653283698223742014826981480835720672065490791549453257271075503036422614070779624489402352327416394650449387900653228194091540916424671807567129330186936413019554801662276950232453114560123488396220278887808214337479776881168843923713440543522443800010949225568110044586420184108356368649164069293219696160108190048393483496838348366992482083982190107279807119553213489787798024608364117291368823363914193165714122898695820557675606979616258126570372618232173118000222538753130555021405419755756841585725816439225712386853486392229383706044609907543964746503948756432781388623080418176778209825744611265815736409196270119514510773631060929861438763240359088111242727946846424669886209521868370401539913685759418652844177762217594424318222007632454850449310547019164416770637419949428096795013693798689608800489299206335326007476415776431049490965353113468967306630210886984740829097114285053620355394204572045434401388331723804851348827294308741365809354916233388118062274230362265261878104605872735614846289559023722123171671615403500944675411292704705733885361046552183204789940544958292097563278945577347464591993057475475586841311086671995001625144632533827311905657428754709692917499670607441794137390585182528466273117709056195947095017271940155245417451595708873161654704084168414935210350591399045014098385311881195125055639068608607814766073265160557204639786945570435453605547435542292340006347161590225845595083038787427579848318912611348048797117204273647381777447870668164912096765047810218164643773510338283895812664935397434178771495039231086396755594376174040099673773122479647196337604112238880480741732310454832474887475701777494065941756419644786754701259003413294882717049390497359061204211156333820311830485240991339129082952021966345510562320784589508839676650902757485715717454880750451591732331259089524735791825814936736378460625780898300031779760226008647957001488041765791553454717907480996073778466073925780979467810852524663709026029944621996010668497236859879789657136169407399633627451602993255797394900162688195968836403808378360631640786672887256458962046479220842275337222525094477870127351975900183466342701345191944066650251126577760345063114856087461533598297788826006722025986282584073331461480677845291831876096521776738385376147051551906447453201638977201780692747708676649663069764335199667118931580805693845053955369573757881657850820363060174719111145624070394356795820687126765961444124589672484827068841641485480555089795177184665487925879240516154114549222973479490531796494938717206124401906218498673939463322346819674425055422296601142395429214885711199407479589008513634587038694624198851932699032211786378191528429069636585093435630021230682032397686070297795859991316505274589928616801482259379025534628384278210899560157607897638506806557067544684622288828880665449783133292817406161488325768640699550669711179656358400177548479104268423749176346068385081234852776799163626183652714034160042283983783502181513560143414286455072293110611403021598134274472487560952303291137235225501309479152052427015202756756500480094138006736438267538995809825825655012288136848212316419528671728906384717210500960683954663625110255951663356880783155193781795430051319371209357545833208217652692322476591389512649974860719080604746532376439821232201251151295927312576140702222483691766930212215626614263185989358028560027017244989532975031761694411755663928228419803444431616110267218668111118526321407409286486251160547466236679718581171179252227933290599028130186613181549759605899792654377218275242933488894659439984732181339620691185463993625359385124383714948020542392361022584223256397193291405760246063785257975200725406837531868941595085291791809333306903391376196443509663359652650211699544931538829257711955188445684421211730703389962944525562252004031824252172290662241440577374571978333037753614531064472468832893658503180654789263859069801483223185616432237034268794744513186198213541551639225993867858677437831321918471077482901742557814480737952443291027216465285222116919768939915984805141760407761369173755056568827648290650907533624607826430071001152813043592980120752129181039006369809463957891283820798902328027741983594589038579904278150639858166316547185015928960624280003183180620756617810661650872727497757472945697502545160440274305929714424723430049337070842304241063900784699340175901942080242511102334948622487566246935852007163223006138338547464429122588035545686689177232813131192302179581768126869417931646766541485885678647716385088948064067086226044209139175272724380458136227608653457666091613366605816207600151800201696568344144361311337562469880813606585528107848749241998012064569741871272654445567607665603973439354518575037890628255365199340789904838462985048034384532094408707929320371006370185853335977948667332534932501935667285631195702369268582585293571061422859231980182800584198179969724476842241421070953350953254561445584292123019421710360564927732545331733651728191974755324478522543904597903227008315295634424966971474644053750999966268655839649159321706030094150777169052907649896577783641403788724082845645080130435209500486122181187502582124107726222156181590465985850192070205958979277144529549102259856807793955508085031105697394998115253061501626023743625707892775795228110070936826523992061215529955961214442937377284291294123929246156982424164710960024946810976123537269898989861550028339806957128416757459534399700746181572425936304600320383192544432806459326719001773741966307865788859787809642053547058731654463989623578820820001871210044467575291405427046866107041843851043636666879719161456016528289625168719556606427355857143389071524111134554381839683462042020503840920544650097087736411669747592333245323673671054849849567074749568308884938086180627128750575940494570393914063546416230903565934732348830222207605455287067710342375033943900536840869654793495069680335504085927458592036184696830597574983187105668913154900018037059872790304939339696610020923707720441022099874521036057897281678344253057158473280251489713054956011150919278256588716669101221705318678025662520693326531382901218713058426130142692149365924479316431840852699308574053173999935393942650856533719214160006261347166756104678178739719720438785001497931509186389318605729989271355806242337440724761837702477261579147501248326849373502115248475595799984160333699183968407077152743147183608901347530315008990942298395019902945789727909916758997749125467823346340107416015915513404388601145475973791767339357724703116589618704916588001096905861705124283300885020099069557552897838599199584277578843505353148848911005230714518950780186546417093918153448288063547147980500160499180764598608149899646421035545116630057521943537808929508640494340780464406328827648097108418789303926191469902531998538127033641436583475512144412930547825137551977129234940151874050385122527570428076836937236790168253806430549925593773642612065248962016402785190422861957804582166686003282226998069481376215582740544608839755503507313789509613656670989590235346144257489180533093939027126567338753649158129364167556609670876280833683672044068352829443423142715616777458642946017301724092594209516741594036360776415361195116463766790303311406005139487965929058821556353095978937483050938906835923021608881437572708869556755857917844383668952541835276385114466303954495145236908409125666306882390726942230027360063108674669314521713653585595927857502958727523689577594309342732912051234475536015210289285037157790882128620651690142610386906623477400048424826980285860706976896220659626012457109810032626705239251913523021479028097187478581134873641334542895132671725804494763376527673099221498456074076148063642263793907468520278936488717215773190952682955629293179037239210281988201103974414213971557257539269682903281917515932232458098016962785781912452749753460791405001047616240422206677660178090164076805669481134872018467304069718073206012265690621852631595580957695959746488848237563056324869844858132453394110513851827418965330244543143350929534421524516803305994288014119136389950839063389347257229346481421889522442227676182166747173839270972519426466772728845406160296645109845371966909782931885911062246222333843458197985912623958346385767598347605842371756981809034528390893542125348136434330274923983385403416970134771065248494868983594054495007658415439015609635648933977936989865487994889222313919641335990907594201905495239872439930330181501941991036387437159067513975499769136395090597884580940341861498993331456335524050279598986017728034051928216555064071624267908304690001052944467792576501246555907652049187650611234613291940444876910816382292060248271899911183501632492238389505329767395996055851430815508954420128892283890061995349798332330077099032438505171360088466317642651001764076481382291882785234231980746869326410700403508489626305374781070072672360674138984568542681864893633664034626974977374452161258612796212472854131948569492152059386972702965561935459317143758149493991915421282118216897338874845173798450806521380179319427495952276605193498243104200460535128326427016640604529603019229036236949018743035561903008477902650859453545498294662687923571218404774892368754101982094645020569846030316039859612249674837575615578132480742473070189266580168744632586534524991532907762162678924406351939440337569543534333639305018770701845097118850044204909103614047808633182116180023954508784418933497133083922338107536785552724751552480178463647214961397867555825919790354242222640920621655498498828810491158912053355581305657903026291500042007411563046608251652001038927146021223122356350725016744267062177270977220539543602214881106023025804673699484276729445510602431791265004284569706835429373499940917709245738684956708914263835263487214982988682526529629023842912870425433700663488768160423418822830751342455573781075176024177570145454488537609670323590890300329807903728300655002819714100977438991488564231415986590012526119699697042675137549959404111379567747398059678724947290848049896436702111807512399714102398851646776813215598790134034705087780225904079859997780592404422080760242032171720713551162612555629546767489516907836067380329262725559367209268772710233057241297784082635026941953756505701202677815783102882418819601929179528786598659738793170415784145696163243559398831112593694861087745891179391726408543291475446559208025838157305494226298547144116584137286775718667241547323523382100051344222357386720722863711168475286599719424942509422627910173851626826753362907051051999396832495075096704905527405002603184945807682476604841270675717770522775440890504398917076870144861781360852345848631117790203037150797588075392834666502196650663767136124521903618115063710327250347869095675975038387214907709659785383523443405784372663875744771733347613690419187309506613535116358341616666575761497756575890542412160174084838785490905205379298616225257802497391035542849081698039278665502361423913935876346242205245515490596554276864521821790403460445974152327616914666347881555028315796423703088424647371062890828529976677299175649216224578808458751257430372923454581454390289206607468222987250123763658163967049541406017904512410924272777218328636329713429512054134674096661719124450466016645054541093890590476354775825110712088342298497482810042977865340874218381745963506935788923154673474546097074675107107870204746135912987367312543847125167191454171315630386835140889413376161150597221438625540274609962257098411248012766003484981095941725901324969856670359661151036920733775571066311731527461327409555361774207949304157510240499053183108728742066695727038511536374724657365477648506010041522598026189002499669853335204534796386680341363298259804986478012573467941205416453134930376990400230984360851828749817102990438365335656308309870733817666859109642048877065800198825205792494138684163063792725272350539743749903894528846453786848109683451901580132815711843077732851466540309340835248689549771569333356297409492147869579803242378383741068698139879778900129077122991507291433626825245756229688769673009952690941200494349886559640793364889137379659965192324908810846926347513896516992629398415836588449449722181491638225179815720009136292926803138557640679505166472817066963048719660930642041350335943135630732719787394088892058909533792342185004847867585126613808986615316812037460722261624689712394761321502006129085091027143650356963828045662590117606435672002540679428822374916827029515313023155999305638717501227164477938023903995091274657851701386070493360647795731163654451988004081616258704200192545402543845750926651302633762055725154934969837897322942013782677925468162814399703642834241790577984500997054636935099544971638533894910822225632866806614760095587014344529000188713478729795709696999722747967599922889441721269222610875078922566924085801421577588946770649098744222232163750800364293115028890816673035836616855915534497173942864191896477475375072464224524308236020491325610529773653680865206085119690349337199143948399491819542831910241015649935177488134727632812519792098919398888394530545352227336454173216543465652938551865641092530753006784811397766515414301439864427011927746884949712565161910739993059982533575697429775970547283382712618980476681144236317315625599205111463537370029951346131117480645316176766863418593164441254061511984816954616863201104976773581036027473440390058553051034854501229874605029198334704729856271047546875021617548064108166127798039532030681444190347949446622931484088860966819887140584768259384702880288735464067567772147997453801876337574775046598133197677969318928164608327600776978049256617541155901173011108815631454105064360716549309336027059852317488566798535614185797154715797869634987186899170277449208114639536385067911503479339774684429114180008570570543138927006060984922353833699959042055716237760471150086051017731574044781591693039969384992108653257191287724696681114966349451916950028462202813138273762325534208071575902697079277900160504307620508151068060310612875595036307993065547761941757713446391889226248942727805324402817784541723815295234309752843531497100850436151650411315185327747822783194419063221792850829422547393745465874542796345003480487776185839720936183523277905539234498707722045291772702114235852737693111989410381212948113932689528021784445313956341111311745790956983196371100856694462995352939432277017380505531999797636490671410805735286679543481368296119623288105717073212261037985684170141546181794814219792898004363225548758945002697162427319827420031924539821165385590753447443138677788774731622274779211026486272770666626077548988745378029496333260831746501745227541216357988764466560365397856452246663954049819588852175956523805748740542106102362604968958929336204054491539027353651024614959013269589195710291663896587809996342157614111374608837427227971201276292543843295607373477300090621597679684276096732547841988039906021419107802874320080186426959245778716145415232832193790584024509901527950035361511693145035978514142373029999423883529031536747226713226739678681857812328744482012505136712888813999437633930859281416433369960981146737851207286671136827519693319584845404814196027491852435623867983701831503568829414050780975873218976969329698786537670344147324301911799198515036027827854861803274967364291329932887403294361024383395667352609300295379699058640805191184950144102749767651430644112647079159033179146937286335487031894461655486985269327975075471376100172302699583942444092579551654583232266135931129289506479225324122862500489716171645590195384347530522759219444599501433410396512942778345045892861386886556629134390264674290933163351277118298761518416409580726979710025857502452105248774050425952911944552211708380871463942927167119729150069019074787856290338840923526919855070552468641369163303181236888803110358682295491159537310626871688913858802794710221914922539582987067584049724721346215855675913012673255452133056154460254795840308629221895302262036027621815890191124086367292971580827491560707087729193022938513899663494853119506330819503671069350044146774329648608814816034910867127993423530030464562854456559022201235514286693841901278949476023343262970314227593213166841598328970213168384891924000420852840669673594220314762761431018263622817128679749279879960434179601091590058215081243312021013807587494060677775032337275298145140423539186919851877488412135197841565253189507070978079912863894936125611807446421155278030004058157352349898688740148968825417466368738687881197394209440389498860121838084492761812104433132987594139010107691699686976705616975124644886819269547660633563882176521968945543025181826838150174244773690724784734834017115427796199947739311141202676933179821097058762441148568527675639524261269340821017641094280946847357186418067133469082595425001123149058839672146851183915548623145657610446350080226867264763889624309124408749099113471892417150168858430445035709059934118372062456842826548084596199795900075789876571804479151434856168119164125812902499693342670052499710189051778388081552951156096177302418132009436837022559642668577881999500238661006942324614055395187547667602254032775780841250375713757566526124555417509544962636126433271262808889849687459084671517219584752014451844571161018717608029117668276708037766630510119313884235956022640733371954800487887186162254292625661887899370973678216592637902138950874450162549020578576595402665164992511585421126248751903907586521244708265957407153187337034145412898166792066857512787376781474413709189746707674858725182852913112537547868163209726706938501365031277751969466058929573224863310429874710111934820131751042388691968303829776731032137043401867593276725227154256814139285574949606513464933656491893648087948315034657249197925358235063251802957987716939200716920631531220143491066579080728210265915942135804073918525104425010697385040136504321866033840398169394739873092941255313654443904751881399417142360138474606731895656068354450065116195966710981778085409051196913065422497061495676621283977929888206251351746932975962979212752155570035711247747271173000392037992856169052039992081849591898736703463143629351385390846128826249421069260004992097573798108455559562153771758142679088417607895213517524457336239939114475878060006380051635117387758749828564741845995583031454096673200127732953872453636552137214628499351699782091413856445500762845946926949153429648074298764373213555448972222490065550958931457442464162214106550803785026149687876237272642717516696014619102718913391702195177334941800846497157531123478334488061720186002034904262909337549908641899229620866139832626370284333078065968451148378188475205976544654447731841336506084532593006932665000465935753878369329657402294658810053496237538824042540819566275168144959764768171833175148548138587982643131595819655446315910944020433227713868660668457673710513824595399255795561679087528388958646500612296111187837469535930020970002400457909963180328441739168690411729225195748178819220781238563798950272294142213535195443938824158284191616517340986236229627061174633873977258685573661315232539189745186604706885328728130518982577702975752310301402953243156853569494938395885084244068096417715956306970522713793486566664184545695465878908020461793246428524100964440208919592683073527465051566356621325539489691777369063962318682623015850174393011770487164283933715779002437918333290019111397987739766530413789072884715705161183229097856499066117710707261377429771372340996413392597593392375435385700219320167209472330737350144011308118133387169169639823955304551056166000619677090128048779859091182162325632830270064422686395256802980011545431278484693901297984172468880239231269658951633622505751366263544201289724006052301368769317708449567263198011888647664448130903925516865264828021658709225909394941369013331298978191168093699456371886028313090737526236482326143357057377937590239875071471787967017091935980139962828366978956516900731522811187557368422988222768941642069580788644404528275995905935911219672444769092181260532459721677426646757065680118970893235528873276605638859839830746662370646425499820997741066678669738905852244554669634066997220851124089763175339317038835573835839779981086946474498114681778876153541274614235412880298005462494122090608282354786016402500051700478931870209901292339771060377073351305760500991370773767663495699914602933331162994814369842379253458268473593509804500924541421453875477581213958522198357032074085372097282017797022628347286785931380600477494331449985178142397177202916125875058627858368643443201156737927648741238007343353339040835299735619863205009277213423122703408727685060370705563990293688173394307417394920023678323057658782653312804586662801844384871818354415854475111980143563970279913676501564152703655662487053012634743343694534707528706920960977458230446809453163263805750966191759378337523606810457784906369591503987523445854799490308315062109546533440693751776658787166065926451444231296282421015740705260435062855521991265142089528897666349729571901445525823336774481169550193276346265508918354406482024274774991749723897200161659665758800324058457259320681029535988514910623177235576900562661580239305163244371087588718598594504146485779495576063449441011763008502524699913494734425232898620335400709384377789080214259660427591464577352022779079057225736629046657281845650558590634577079021258224371999873965866171233836407091427835711927791352195862194829785360646596614516207468411735727700674837924103055396745724851761603781420643595988017400484544937023799501268069088442005324374085190780579126040335993685551632945126247846243683717576326228695494619068637978376266988362726104952899871913210993493611047688066713773116892068861158365078342491081939005015164409103805899498651388829457107438917474661877671131805776522166871244056655505056708004658267607389053578685265465227868573490718749188514557864983483873606845108152809578491705739748393467097882837488757245611314373042431757539423421457525082379532955987386287255549587758175547486374119783711703771249450018987639397957289098216991723599873999431189332250673902112077957568656046661211068643916472664215693851145955145121764992048790612880668978850354512817815871920946056111365998760606138300326719628214559959918937578713803731797908455249338480928087341192603986987029859412882119679626202500471262345895887878228194346736247115016555459542036078718646899171702811363862485109175981443561636728135260953440951388006681388915892811444663563738636169051901154819002149267503495054692786067336461833098065276497808083674078560542968318838032579904564599120262407612091825884135933014124907336106262609618604027879805619253029668101957594512663021211338129166847497508528416971119216510047098847676510799901468620628542880969264264884679949741093535817221945793900727115030524505671914396755164923791636013348696297475608841823686916477531581147654372631551475091449085498533628717790196195553152018370055316327273246121835510327907982269643957257665001030076532337487793109788000148149383793757577692567388901323808578992681480339176091188231326276808896237409655792681417693946972538932342839934444568685510790528011131746605799186915361492144129549614130128618743950552402735589867074214418475003962029100823497022361039593634395065877264108251184719483853948318203093041908598959789244311941844266815860170055252866589367715555195001273039330719462803034385969810777853334843106336936335042350047233816822964331806164611949081710371846505083011345962218412134910635508109871178545517712828474922624406136194582784133775197758855830190683594635110323041147944412760046714690410373035946588061938154306104595105541193197091855959570912898599563627051951273855220637958907781917589494234498343020466739446579851749500853106268667082458400685154991616941648941144656495262177650616559737647689080174346920071754067187189298722601230839891202632733703851482892789141879350216122727857355212943031217097742165701180232640713519624890636063049003034793482275690581199384315476246846306961124288443198535761155930555472043308022368489174192207103942252458367524517695707717413463268939545569419502311485795636990957014586369626822247923895703934200098120639069202670253950126578752576032523224469669264153331855087121906084815570545936743432651653162047537223639840250849261889922855638623145359597255831469282643884248860485026966405403416474323136061812015305165693355051798581722412026875439026062758455019847040585652673359536171621750917555512815612686199304450715082151299454468185236312887079643483066683424043101264824482890295967999190672469406994363047159430252782112915147764106480498448352773247035460076887783842605401814795725352115948597422930320781111763768160857005387554142708989997461009984219071626329017844844223657893245236497971053179365546595331667987679076813555748687480874573621916456326517176852127844768294434661425120525650481216109138349706126662271537335700230169504133764823972752187432497281635252563752395500625314774256677171642784462238284479879858236597459750705951045198088768337571906856926861050931987127272860795942852147256503629219266062549865351287347433536568706024308303028687369955337864278625944151141368781900780714289719018216704312576444701470483001301199057024233970297526374657879517501540835055915275334988887330295031091559111433575712755289094686039039159442360553950494552571873267422827209478777603345672377796269367871451459301614795883388062296616272281503615300398058999206886134838786079514218461960335394913939135435291016718861788603383096569144249736042708120946123024692028972393323713711963076315142930423841547192737536313594083293516510846271167695107039037483436261866025320926282470383659007445047791920196930678988363113832850374480098244580259387481580995911680502151517038549793173730849041346272246051474678964718954034424937813582123581654526826690745035546141801411088310833638337191456926512526889784863314844508046759932643992347937153888618103529530373991694011518268657064843922168559904119441244182128269957912318713231165675484823216751694530476059678584130894855817856302742311908448851593227306205144374288453785868244690774821541149527732885330876234894127430422533501967906046079567040855214979266957471708328431422666599391344835080374151235271049807166810733754057375301678552197527352292169069422768669270699278299306792795337148906052517330571232912271502250478602999868886320026363297978788250085630270310116876113245288734820001238950532273603224131128935716425560855197354744736631808634728383677214277661860598475130004196335146707693581800866048648903590270147178092703698166251600171655252835192134500454524664834585891638550617235139964628336704389444837120246997068306825018043747945080427276211573305469824197790800317787563160841864029422893586790520354850043288008569670651728303100124668007575543673805215819702289856211865350231859298926005026352709601405225032664160066250722459584779168833726400697079192031713539114449485656463934201750386363028817989344259151959295266390152820441319668455583562401377051947654597050295367803795250175356596737433515470189056234725170486540236765637400916859353933390061112864880276102760300233884303046016598351739520396294322142805897874258379704460408039802488024729076920911034821147648979810552530317560513435557899689999000531987752146735651423897332266792067177666157109854720429890361434225066983726774143347069598032774920600063401334597040787332409245806915482443327811900117760294206637404432937368173901389048474804445063107981669197409033029713219053773717681058036550301456429253314242119251779640721004676721932924039251837578542453007429605097844267719167098747693838571759516239314654700273142376080210611905472690950320899078789278531593721192965200222459719969177210061666737200765488935538439879434628288361767370926780731807815749658391219906496249990621211023072151412236220428236228049675579023450372982464246963988427822375899361038908498511457562763321485782032662772466619312012795908991553649262527372866178167133598414145702374494868056532649343847487642450359631832264605004027698836208995380723882466060045249427648824243013904196578951937401792371053577672901876324753483571049549501936255941155981841593317444421268522372577148216490715932028187576247420983616522607102545426972884905704192940703221606597121455857037160307421986258234066632062537814077707570159270380922377934456859951588806213660885293834059600790525185034147115802970546738393731812946698670427860645931864654998112169718541374526316438709884479840905838165184211674020345907808920988653658812711959279368096695075702200997493395539040087174623652526972145569909979009918487928293005103260017687295516517904710865403767659421768704291374238935229829755947271686218831037060245951205173866023403108361712282070258117486114639202184078743319556701257657852964885965441393836143149237264441937597886340823128530286221949033431181114735523476686462082461109375665231599395581343011304253461117955961547591265604828544868706491145487900437929497108236022963657018384906651626033487263032227568483326547861348095557548491084843101641247634548431191010433914647933817521033343432603071673065569095837982513190158770148022153250100286867472472377322734739743965096252650387238320202210665986809206504536291154637767760418902506640233412800046923699519123874200173803085345627497792569274124538586796270767298844504898006966653348338143130566476760669993866319430445148808432352069018903711445409154167335635642009428347642279906551826559463607351708417328886895572641884823200708411503636411482323580209587732128970090598993028627780241551486989712812072079242954788528252201519065109063881276723552812642996616737574724205475489855979448338180097223674292523954056434426934536828295226529766771395537325551500157650835357504926475519584548692403240707814448854460265953384604790196767415894068394675271183027069606178309904031990237907788405035164042397949379960145994332713788192067364556795368445992568416016771587830849853394496306126425667093312614486061084040379675148390593486873116269544360646445073041113197298511910294536609592573722481592944828808530078110319763795332489462048680551997674672670917645973723507623484175850802946704709949610663339141629736026625967173630350372491692630150818286695456904641264472955431220234530653164439354830429256182710037926561795881571164776855971670713522501711731003440114122216298921767810400787145283376996557213482771444859183440006967357705397462838329441376274844249578002904814657233834375758186331971922701701297767633660462937340531996284824877624901963565352198486661058857187687545268111143466200818545015718672593225479176633237810475589339352246361812761560790256709755864002693299222831734214788491458586035000125885272297013510007792033003216327888948748815375216879672730541424699753186744546883724869796793974283377443613226925980546627274369443114892181308611448690359301787192720383705334991419162300489332745112884912428407497797585685464776046672327053015747776073584787234291858364659103068514870494961024516510347966295239176597837244486520460362547784330681370878257628523288236343397098429658458787199333044668762406090133082729781059682755276163812251628017521427009518995122014123589760430213474136114583561833815465544281845138210047261671289589776283106963221353154991726648691258158553698665532110009024882327337225666626424796420886107050024230832312748358270822601812528237329302366618021666766181342523492600293085455971523061182990197649444034043952482756839347309966955997152810662250275967172134480565394193963488946635791568666233674746000820974660358078330754143622752389433572774070340096840871539752602250463699748746106970576401217363710736559108142971862004493207642273279342799893022125746833815015000237098515829069058613151664235527942551905314591523285143794585689727809666366433054380585484107206633960410477724712764055974959708680337551679125755223342895113516595095769870975582448768855894624737039183452774143924075440223151320588765946032710677126566651616826130263131005853238986775588769885947059306388946723309920362510568436004001198513759985577750251173830686895827466554154769816487738403778601833961322895653144813658387447973162316520444758536066690209134450947014313633581373527247530047445558118392041007797600791459220085345635916470520181289033135482033837716134390878565930225603716298100170812896275507906105964287274843171991841956935760779864035391823844282711946944188616206679684739266526100920203173043394664697955674903216054571263779220600520093937554832083509132515095932926658571845483447658033752073069914950328574472137022012472215870024831841980697590397251181949113390171551611835523046270627386719399568464230679605289970433366948403049851156510773552551697457955600221823477655189822194884558351694789075291104135743289524357570555334737566472813996150370753645071288571207808298892591535355304733101355926725545680637723825162795627859533267429430555409790898825008988036868471980517282384705178070010603362157904661231114702427225017002441989465404583551546050736979313556125248540487015482613308917412092989647868351702581516115951115026845689128137111405414159846822464922602648733304372279622187758436674375336928507576930198242933805292719235120061869725897180742340673690779864757435814420706038756285661463163599235939448101282348056379065026123976967273262286332080623586027392304127864016998140228073437759725499070977428846768098159853878014011651657318138818065226452362321837233266780158132416767289067513049992100915353587403443096637860593509739951095346391485879858065215051465140493580566239828822506788566363945258745448561896629510428679738024681113857736553135813486215128106834107865412434264466346537773198280595444495607445747136170699851527150280146721502357975915438227069582995724736781600005441655378489990459666040427993557970800073702800838305628301819618689915513288801106127610416032359881975911661973501425753198000230792307837775520063495902033136746054151310664090724437467164330496363055353418158308326201045266935045763768841532271552269697859186534340492120222613563623558872603854606055822764888143983853010084295537527226603487231067077263684503462233845254812968150518718381294289507469985679573992892693161425565997842687860600882923110227448382198331193151743226253347750596882719145483505945817232198609391772795075306475096446827846103803374178185952582851604224937945136572098976291763413965070382021413064870096416369400522564229719538351296473567762311281170129963358404742245891336550410595872267025545307418671843225736512327657743765098815618746169308850600060953882931883928957389629312909944283109530578132169371727740752471148235478360086273880146131572133490136857722603168903927490290869815383909413670225764675238676359685259203479679551965730675879203391538482454678221273781720987502436064637613070545762244612013910696200041407029182023800293708808224721858044503747559596001646402543093851987753848804013598612825377265730563735603045195764553852002606796017606435912057946413050231768365575950321137677783554764390236902714708204126590715497626116779171981708981414401464613153287970494863952163786629834737014795504461595207768981065305370177294821264748839418271078781844347015395746346659762365879753247052690046219917651839592183689330563531967421765304509744739536480228936551703338126881373903927983918083695842451257906875331286362062024500489696529696127860168731223420033683855459161920402911433428741911138706987403898355026015092308032173661812061287367049326072425495807464935862774732423981701917318941874996802283521495741415250247021281974545278786379482528864421527222994016977286023589257899021730708771696134683125073089339794001382713332466253516314242933072464750238507015837609132595596066932574466644585690195324382483042513823291493037118839363628548954466490963913845864576661191447817198108074763009789630071117008668649932068821472804115173720226910269387767572388572541503394778851735071830533068562904742247497620238971192776377391629820144934121996800860347920038615313742417216770483222398068477706193063965787785710838717906578119989213711475432422258813001797875556595475384819377112547184088423288986236129315412873652377276303269569629285104533884339953993841746787593073078396087952987348825802774200573817749967543779362073965718055426939890417921642059191226418047272399817430919235826937788545951741814609225702889582515381588140405608402801727547775212976440033480841245227961505086530322158152979704861996533477851852792533349657463919651131796095193104833371783042124473422468808235439867742617091667698687718119093473091055491911820022373434429483985475419320957235030482822116034051748273942716942499058707759785722742921731591667255530788159128881989009026993085415215021024697795896737340338062683900471519212429556478586923779304114010707103174344501308536460002982289433764785418906316181776943328859191038016097448049797129455007289818943402165401546765054397461363614776697656757802892810845545397116004266315229512405972933843017327024125882292216675337091171334548331361739191765117586900284972016756945164282078428823796940423204232974353684019336442239909539892546742517412456803510419240491622215482125825009894877205424971390252606633329545760409078254666019843416377983987926588806628647225047694015228745229308452526499767427725158806804639138970846417776460098549811869619902489438476287332432972201026055586667924402747854519476044122205759967247257109602223667533404694724466068090180983995516210643686570740573510041194682606731025560940615294891628792564693592925084204371324188711658279298539723523939390098306734421104387873517215414275071156737744493186339076107897528049271140214313685301023773988493490084859742477525542333916152514138132725744977009598591761742002425145167100045163831211455675396378029810757744846793010953745437246620313292319502953599208781814923303769225144164887310274392877309859111154486349715905774363932009053581679570938471979568371807329169010430132853537482386908072099433687085340478303368968222581203652722335749967084551698225692228323415405219120050903268313266559712566753084823812445692110372985368035288577425534597784513515285171029445723069670849010164623266741174723950489647450290607664072475425889513765889700837435513870967468858033743107106456864772014297562937014829654609955797037006694145695569251199729320189417663744728160350945562980209437612406371205627357517572818648942193681654471133363458887752517697685919477848842744716581356364409850753405053235424564975676299555996454442414790663497896583567803163285775863881068095713176128172220816012356661690962142509726168250774746384278063510131350288186685583163957420163323008722318649576860553557918903410989887934389539322017957870893450316213031203025322463236450538611971966543728881754352018391808528932178395354548362107640944343089830560444851519386399543449963080342941804334557584900927153197761259879545469367396938751361578955802605445943819326494677798542919204394285251172506142896142279851581918631232936250507105365969850911716241978393190446667699031641612126484237536640766891439509458190921144389037572597891543397408192526077976718070905560163233328973158774203438489468536545200252063989770021681298539282360029172520956152198678754860117188694643065651525630655795106350887163655507774855150671295399461624626207927734258814889515906574098969964251144695872398739041835733733174900427298005940049684038477738680767610032026271354939232904909040121878802743707078453064193973379971338217451147673663869892060362815413565092941986375720512362292715547568617608325232706966256961315822982611412328779041063969798562903702820341198774957353782982932170632654246185150520813833670588977821854756492870458030395508642061025206196346867523874620555135108434742410481209296532267161033553793121902634665954091274032734317113256691928034226950309790764961896116473057672595355366188192110163910921906356046245648372576478949347791822193235203345472851367750005603649368445804860733691068603188621582716880457173358715101271728561189257908343512851187425109541480127137584063987389142487262788140290826915400336931863929861633295790042023174735908945552947749512686798220360319760668465446459218026474032556075751109074165282416478003055561444759959954359198318203116263857013994801907957212597633084417705323097961964626722069714072103541413137733468116484602247312727862090094030896013289356074606274441985881312169161801696623300930976888368639261488665076559531273076520826073756184296229142112601644033750809465886289534097790356819373443287545062381312797942580674602775011146263720423734461138180134831957665151199508885230682020308749097583279591375992792128772302901850183522298462745090293640733702643790416928336749954500456735651259738842210628444437888329815232286924333212413548369579743597127426644133478159313735414327502294041214939516655705051992903940277314743247263024255511699454295126938035972321845479568348901108598985006071334015982961922437043198513842253885859929715193936905041399708480051659712741697027252421526882653717117630614971821409093410873471444089623058265038585713985757740104576915169663341936254014922107446272177442919489922412588561162470927785637831269479561122811427798630673380155025192052589526687447914225573321410354102393248898104609054272111261548489609986472295440975409050159443977558367225652152601424422185845245184619232974048708603622359925034909008920171162131123085610973439483053473318279073467333142298456151553472774632628187913153128885084199240546307715066974502819634073646361629321277712949904766531452810820572684853070673127596012217991454369615716592159628018136310748152569587201906195038116717106814143469877332072974902728276909540898799619879348505292161619945094508881685088261320029432597397307351350899534438177367014504413390214134172394125540447402816096716383493058257861482755171022088128675595377432991110842537620354378808600662546345846654329010070303659615145962335031959199130252499455130192567421526425706358067581165598915414515316495409250260797944699921244581118447929279448533523137946926965393686044987183660161371580618230397004095295444504426266525356290735393458119007993541125063304245295487638499690473390574641845503232744573382716032662536522604849435559972613398511993527248660712111935164443156793913970434711429007073774447830945442142591284745321535467159695409110242821583319889524896041107089898276494204574283798049749515960637537990665790184328750505092146430852629505169858915749378961465081196231663618429823233055666991787409616545569932687253157295850796987960157084811571496696201409372158406480497937086848108312846334024561223279053128949980446041105944438009719540870081985274690875513502283222282378196402807992945287294270344144900918471393112806943842080640327220240752979935614862455687244637688204787336559601567797935402759462505264653588158926430763349686124660620234411401948675482602942109972977589230100557215340504332547227361488912583321784903499425545019484068281912030926059641156361056406672658519018582056948291338783239562941547889929875815333869083930363721832877739841229413791607621608591120665336813529616377768736601844912078233499964681816525408528083323311429352020734379049342461897875458778394739954745552205269913569664590816889262070092540004530534931282628873818801979426829258902064156110946777037810278257617690620590307224711808119464976294535576522271788696505529652890108211184560295378111301715525929798840236145563561878189021046952777022644930477371116980130346656316091242575073279441238464904152512252103524223854485295272719677555475559541947324592391571585348312871570207936068001371995195341863193019154729424681052480195548241865385597770910224280994606063671600332999506611025594824451579849715818508979311398389926479168053490696830277626091023251630797858657815776821749150436721561403636934897189904464099565277125989550154583873211656512706457948201832325286155511421391127662694760082053329956856972062178404329319799140377772621153137032184298115468736455884919806880647319231097369109268510870475032580528841743575255156077291402483236400249826108146549540100710227910621844560366104318503325024152263386022335238384367194410089509528217475164999254239494678308543245873351708082864261007404788958432345416326291874606771397401565713416259749815281438419393453383411989862089497182939747167728346152227702824443531087623376938336031362229650339592493330075476420382123852032327089839061967684875394534806305153407826290016057959519283626985164270566997143651022973036224823211811407828553151200834223895739821044013994122688762010837499663529618368642088062802534305474598711801139427647309436091001517070368305213447599430047612208526170366140276683657865055858711646376954603639142774192893998278292906403982828785190017709184279992976266053148046070730527803352843871403298936157556728750166768315437484566451085850679347566711848751236905530199072961824581055994214463426371587341502081907708860952631573789375735108727825717553797118144844079704669002551789272840088172994774051432811765357439016678435282209879308884595935703085206853951054663038745860349044006603159416269854356148847369452013157103845584294223566848302379055341508944970850049797934639076769979121681399133576618003151334205458078575968776176294124602309820243270179235637670507669745090421520073907316726830828828240124262187449086157812736242230206118944633835065891788248476489619338061192876146237525349337584035955960574858998602486710829501716726646504839981230427999470107309411608305867905561328132401602756345654185612598861719415204476511052490343045996284540625340199388739392057473256036182882212030656520797211731678847050036487142823081082204252109116542581884388824839107265277298325028026641837836031856795755456034344919872100656763899684059397357838236135831416457419950894142948805770982517903978293602727074669210608550892723965153160301638212451734537650841292199560340255849765990851709136810403943441956789892035766098142032249482925472854573189252005421221728319142602110247443550684469065579059469531650051546698385420095113319833321628852671919783487768794108941088545901947197231282499327749009441706692776086463087891424475439049920907269654923853955301640349116792214996413264911783182572125533844968623940108068504148410460694765262329740153918811542847241296585136202848105032956359992253411111844929961946609123005096836901964999218728451740138022677699815235589983799876577598503057636097066354319831011382452476457352808311275644044116366024868577767438539040925202440875438920697002816601987177941183548690008716527118469366133685581839065044372738189606101596776885471849635107331166064458669448922324816483095624075183830500115471332435434223339643182917145775527625720497439776996866611829050887389522072821295066044426537737763585320597965134062143258612029417081515202045185726327529062399159990682728223684339112580991508823823353745417818341003179556005888240149676881158222635196885211967917037140099478750763638849066101386186843536475731358239974246213545928912403585180593842278802653764970616803149795842851535655251944902413791792601666009726070343598818571632842357246942605512823548923072898552031300011295450922004471473567217417601567590161106102231267068201735768222016443812477415523274790638523659291487043538808162946485338422595823379883258228182642899993710498555656890390246892302406830925553787106362276067145658887944592257853292081738192865858489232349939733400083133845247360403428269248921531425546819430331118914702450024247501270799658964382752348004320495482692324627010110397882913248600191727221559934535734552388114735010123342010013581826143920577142944760208765891600491279001913848491635511663567584189486388694842528351039014371728538807882115229380609827094469797581753362170555467115869824116820088929937942096301052870836836079371246929538381151718252483186758899999498553384493900663879737773245976107379989683255297149321326056561311347202413140312947766178374274662931104914080144590056068392442884997906852906364787644845152436155964425638803354759436408124159177003792239902462669027625665639255195023214848172182971886234372217749501197929275798371205991837031898024594240452883920799305299748354870972919075221988458652557714207372888982219497592305579619034502366129734092224517553528659106362113964193232060596493886038824130681114273337973574661391885627737606184307228464582762692225190768049063575968513644774468917370885031766844568448833506117047450385544418028994123231877386746566346166831254653764174526376039629065684355062004108548819433410978267987236951765371438669680437594633507327987321533313482252768033102356334257302128703243101526189608478439409832191447211765376880791992725768075332886665315200025271282621443486184289887573724898884177013140452199478897469021580793537972818065233402210708401168781399845033171603718024691527976552263687819184682629692170117433201780366058225696623003730705790882924610106179345322909787544196213986468867448330050519231833420914968210661665358599886388439545310819186317269675898877728802723028922795795438989140593066069779405528032929257521527913883355655192099235880622520470639451702055079862039905850476444942958157374935780065443679985663340306134070519132054761465307090030549013027920235024549900075561163065714240910654554919030553116152151512381696153922405117763347282476656875897595660015496395699994247317660625878842162063227068959003701684259540738485550030026507627945473751462689444524095067099074228132151514817650920871508160653158497154657493154319779259624054563588173405258345213614682712905028201238064978009146320194417520420258198662017580097589622955366319175166020290298012573140247677117647356270645750345540189960191156314774800925655661562353166829095141068951190907278127752907453755077311427674288869855157320941868339698145891169525501833624628850762170552345965906157331263440503262771434202846933774065342884041886913212845209438378426548962019846077307004137984345948955199897008091278009744513481336539443655768120531869711984169577587112089069876408798084116481737099327711729139286681304976247998267503248570151568050438467498009593957666418193582042106115374368764531822195329872504318226043819374540557797138069061167962490388255481003946726991861550436182278399923134798702255135835946636945868031851474985949369308115877748457151954855802276836805168012196496630426885104683301659039580907520762416229740988153380682772406025761625406601360634527790369739994717950019946122026173473258406013074119278275949955433473111450122801958099636250638342087193655785198676324545468080804955620487657526479438925930421369559945333884935295754979898646452780476517169388010980067686838975633570969407596746871670750529448921521920180425803378201865151136994259419632492639701095210408339271915768123103760820061434126098265810582791753438108073921305854470390352053558446004259696699546210887867453096816710374564595419293035345315175390192024583145866580628994123036648464312235496514779038765930545968412125015208975847469706052013775765893165511581697410794427516121376206871006343850760658653323591257213867387867936136848164339545872568356800593282342181340075490073367232460146850875471527569227948306879169585354345902185453343759308604415964090824259390194068403946285629571270026399507436555883259802759538835153577986531244652996519916220530092148231504293647497170645699446964781645116447592663924635570616241603556950410910601082900244194430481051685141152627904085998198152508461423035405155670830095544380689938140981021497759590581773412948619622358528050446255319101219713844160205631249776148540696834224544679499271048488067483511207835793534470064114397261210992196057694145368065156019343866336942692833905733445757012303586342124367699221729380205516195480642812400348291741178094728100882460343954207071048190490833475963279938047096336236528072010005155145524279720288685855009931348549424803300891033743557609939994157532182066379002365418530220769426649593818138599525842798529308540437982174058151044592549992462438055769365322614385984235819436079978092365928335443414141483417518569998524973712866038590067872085341336796880321911687368507092337416259141553106391025612129780293423327076329358778728175380523495528132374251541190480170998050073658565843813781538774792478364292938365462494886867815922455612726772369361196415727637327743171765304284965101248638919743580897632837970988334235216280624046016600515421798798455425734921587774057169142404282747208658395649994524302664659355033356034183904680931496949633754200381432052671843573091414083591963803981024514173782788735045071822138275261354056056845123319853085476000908611802390395440285243014129691090742253123403447118015852131548544181304721125504905497616791183019205531696741043117558305148585497644135038152095821402503458969659639101828065649826110808852862780464113947063878324541894298701670083122553993927015723723614619713989378926722573646003812098559480730511912382571871991793687083900180117244567581332611543602148271718226577908358961348593762050451956489907707321686514339795827917808935285674140800956671026046244582139659301661743371226199732755424785526323152033742151084489625573343777239797697959263699402691189446354346004823574732423021932878077570192990463723814505911631304244961289806757735392900613695377479429054999062438811499283827611207515877900784715826088215670341187284992736850137902496712461296053769509432277922280109926562262388859581400157608624797978042214718626219122425470205001167442129815608928948592321104109161243152874024113687694090632126108297871499824142455439587926882847658013332245535786489130078573143352005621991171485457552245470315720438714415657583209367306521963663180034095227007196824066699572262707840462791090687605852780730665861822820104058416965226632901045038918727751025725062574243882824514062325416029217602636739253574436326371527233044108955326086619728970660690637640403612044588438934468013772456057894683792143355687130233635491090431805446917962614229709646654132323962534013599231635315221213575180791482755494401087410060670204281008633295773880993512801148756538785025598724124336251712586964573032069672445739763076993318836310740690344605353190283614143996219470604435005513141896298266844915678026587482023512200529214632974660989825043715410997466202424542964041688988476848942791307403421028722417305619333589786150397576538922043699974017925531599817520902048531429919482989499253109181518754468612993214104751312884475321332570971607897656373608117520835367340631985228106099575637591244901488641733370416357470994780894648161137921400129834518877414686072403243746473514467440036406795025012506883299297316729904517868489246200105130226712668422432197460112999264558160862381522588256570443611251003441072467875385956021211363093535871707757453643361029748671107505722068917356138509938486842036130089262184032533222728449116045464217686432195819031995984461803023886607490489621214623587883136334852597922667229287891134019993852131963128278524129395490514318162022354594995738728159045181874755360896371353900566420130521502452157663330858940437856686156877979881042182741890999753305412746079306780676699732584430032800510863199277968148500421135389315686239569562130751501576920175934935218106344202924314138697062460940246249730560748217725407523979864594248874297675527010719556142899780730720729040240987138750356421197864094057041021559769766215442684574775132979790720369016337317688193056771523455824006018654757059704247475103710090208119494982139003498091180696951456449837298564450136327330770937981194961997364668895306028800892226521341539201361864047485576390665753457209365563713511390238398265311386890467760073490524173286621835621824944630468709783868865813178896216656963599862578753404392346285789095311910068874428069385935114953166773768992137144237845386647585378666673078146699324055867715696193366276853527979084373978792487397010155354951945382579005435581711609739122122590629632752852509391311562436794134681260810156397342074921679929643878431527204515222529494036241199636562759083386526174756414025054689832646233339721414210157242620790848162823594081027748435654036733082924907562354084708551468946475855728203298642107744551506337214921155528788601459842058865334154108774523618022322122338690142033494485354722918301660360634685841642881585286469597838782447623536931497071525178276162018694121717694041441795869202541864396303837372626069929580603375151981248408920378772721542351432494510229150656135808861341159728983423371946857777172651452591714466121039302476096226902009866759502091410827379447814937153914587194617648006620631825070300574883395943468537212333901758213092584447571465228338614671231100173995500536553684395788792543287200869224793093965537967326219375390866604566279814592512351049714483375146785658656566577985161423459021594069333181012970719118861268305722697753814439821521161229321814208835543528595571715770466220196414888038689584408969368443507335413062189335508146626854541204103627959290814441968029040994014523469572671329823014376229120889803296100259241426884188347997746906410611074970190656250036605739756851645275850434486748105291173472623705534513748386111894476474341481752864453753572455666469911109124676983074524430189251220963133825781950820123264903099110462193231828893854422224602832670959491565348047403268512691805337555656071940979734381454930626505647707313097176132648005583021250560901688210393663314144688740602700765005944484178202219821688780962996047879108698418419827078615569864649470385086789269240711072868431025850109265203935140803884128386936164609813979300771766031366851175276925475637610782164290655457876828264637522312837691284257750962290695549337929976997742939865278589039070682386348526005130187275801051840960538790227752965318923861443776522188801787210466547735746172190644682582325853357405980469243977106070277396831211831614655155895358452118629205734584698016874415009954124544371565535655607237202571866778187117017631430648333651024750643677955028154457845414955875089232542056801775068636981909744050771571447660147188160051999147512312902159016552821931909085220223057408895865598802210614280373364411415009142611195849334202651531912208779791197913548658750856505750789955801922081328197728940057203735267964735557060278412782339369709649150112193008099532531123140980157677506128649779493376636917109566156981050362351581707043060435489424715226785305641629062225508138304758802217982085552853509514751115529055730377246612924467134042670929126784338249089461239232420735325198147442420220645342678351342317655232427647208982550640698134047575988635407892607323134352221823311800010409964097572375590576048623129696170387532499824901067859007255180432671523579233591462599602445457390379014721094068211722867668807780455981197170711791295852852098711647678973950209787260269187386386357756579536169169630079194494949286080925808077979299517753468415772634301815041657510876943444160047445174991303969056652527275834204731888362037855370539033071771963739126774716242558921303059711017457836549325444739561519779370212543425785728300904494410642927139116839806821135360187807340588334707131811014468763585732211332650020616582577287088544481442882806819951018547976181017123533246321735484796186095964251899080932414664103788327723793775053388248914842643867534508790329815201291342346454895167007907780319287273159389941975093812617365200902005106036915229815345026609974397475530303174474153216345119775426375137054940354287654053336216664822297726034581910293227455348995149557103396037390044945381649671159534659836602825723446376383616724060968611904369717457792987913037836003710420557218327046504533343660050321143129529007767797675807507776965428256354240764968173016515569963447772039462430437641962029957515415952166858237320821972931361068702923230024234095225280853956274693673452845291834773276032159043716271195060645778960496876807149616566708953505731439767307555070223196398781257237793673112993256824808826749507623778522835688459107483005993293763131146078746741292018949804092512174592310812740847841588802481295601571653405648582266377415586839543603234156586617573051537520482734482801170618066530662280303211536481052331983137801401786270033401831112898076556649539892585666871930860389111948550647232007440658427603336346034743577161904728656588873974889829832904032615829718855705844808345080899691196504011438004431409749847688807173074862884297820031868560202818977900256242112643505501029991658619076108397061792553770682092307633581535641029395995422076038911413011212549835973176384324028589032444744281552513911905778468973847700637532236272879186349032973605023676968928137596347120070852851313805186139653320666469822503713142385049877020208764414599184669902895501783872752774394511226470824215861306982080392612468179813067288548281388109342262639365933402827824935396786220517758753422947275231121911156665559448128323887658759344054928846825482211651349934552616718548952380725286059439860488348225412247536853044239670196746672341497507291899374590754521628359593408339577362972718046008991435616415360923324239805659444663406921159554160403189903872223377349971513301310055283615523960265451655635369082989196553374526379210225013700801972047262374527729332176735588152423269203223458045003500691750168489514101089478109698412234979394989878475038110439854084776168443781524956097089368510197494196722134474459894883500653711932436150617773064230799235525706584401063092449559079331304490799499070943965668169059878350573009348620822644480813717674234079342799114278252512189094428353906015876455277366140122725109690319606319826239623247287774482815688759230941412245341655429390874548056187670413028043000818085017311941319566724576098248652593196287772271368896007615621507257006729191967836261973223196798240546853316001601002502069382673564301340910475248673735521082564492803762183453119896936172354966566800145708904514678880985772143929257345849479469676897973343419128765021168055934986634941171826177726531318884201172786053493382055178964133986823748254879650356789132967274859628815937741614615069244879788019519460252733030769535714284208044300084141487291405696598084644536043907424680716956303384569320503781520101744825841531891754286670537532528468302356408917303385157268314631809200500859583990571691032271238367806818552815382887961062784010996491475439710296320734829106528309646099437020343834896662418637406021630866762266890507447182751917897898096561043515934444398410672218033842861934969674937650127097289961293562089639824831414619686945932110650331915060161907394904846662131493921269598697386115126030550510536170765413548639944323113920933654082680098190582336519062458514454318787819271681831816236763827908746742255137579253315003937731868699772932590277642993474543356544994581110585039929908801053640366734992672358799163855207256643372893805985344107800422496539990340481797583334995012739694952710923106012419818236474827661289412666077353609875377845174809964549930076349146910692393504646578837644314378251886346022861191959479006729131650294250577119219304888536378520816324854710909943275160934244785177577406961035974084797181146706476781802748196038345387624852547054584564597124171105824255949198273812237574469042075239411403052385260618750968597778172197362332213858636912556998431744228676245501589253148636598617690196380732242293005254102749675117098999223823265318172283065709585636913842099404895662531450122027901069740905274942676069913649333407503818373243144619090712716496692478239013224728168442948162461490063195031352531815541103162138209042538152945518134317939691984991378752618087671882623298587403797017149623069562713380819832975813957707018123753376724426173172582565902507766945663340930708417809606047016463209232299087731431116177696370571638547671568612680006450335607534202219040033977205691769896040854722634034979703391041234283307701192612671731710829023665952807671087641157289401929955939595255209384523194482420250784035910838615033785681356425704848786282605667240818127814126048070497116281122405972858322682745121522164584795149406384976705790765674924333807132113120282936796553303286475957209020787150271421809539959140405777903232531242777915458465110317832769994534767625712706345617046104092035172834431015002724673130207046130391672370006486249506266175497320734485613059489159653506046086872172361695328050880049500725282670991027417017429415045742915778478444586137218241369004933552331056669015221015378257553574243390479614747143603793531024652477235060099017871583770027332160031486011647643473059404244734838160356785514726168112740352225322138206082709282293441521565574605803219555763302940792291948454318533392166410622503023385777322143129016800071039464989072668758413210301375469707619889434278988138684370552711579701613541824647484467454690569118646412158081045633560527035028296128053532096443142582499707157673455957361236066568545064174042069346908407581523870463176585856643632863673086478875226602874076104079245606597441140041876658357158459657437320124565297291619329158477999710271972013742006585088422407782895508843996172695400745927643066957122048969636242062201557633947757799965221745541903026994623702973297950618792502128398768463872290976336906777572778601672020526825087049955121584305282968966698863355162194232955692841941986251523582974530274272713544003133915986238784232035721858424688313200188556839526824900089529444452151713029295184109489910241408303375214772676445947467379728947713106283535690995253392944480050086591625725440709222666351481951396903750311384445485587869078638899734021528569795112885635315380786961793678302842849526415310834550233186304299177602482711590799858843739743123799172490617805803881687123705378135031662975774476858566906882252134457352771000783713152518276626300557993388189000067232788983870736105741383407640283154735201794456730628704571909044803286456630608200728711950878657544232121387724011983596938004673091316888984201623434766442365295125953776848127195577832739687680182126705097468399045111543133292888057726853764204686865692924318817364468888441477521344476327904812766302561132283363442623244904718146885701806869242995615905773594324449511852071625784983842760914349633621185184530434367824176436311726445326628785315217812193956696461025032741001436886916926363014945645723328772127851557214654699525306097653558358114986294155443341488914653553242413247527977737733535101524802563899519301710584913470689234291331204753103041821173215523707945738166438261440151257831040795786002728398538788062917799753945621969360087250053257463691802199026695930885559811185492547726443053047273150363539036080885976530436777858917524224093924400856675802053223765747078009949586753686338897638631577171036096535387075966444761958873448345929975360103026892435110739237510205875960978540969228207394867837760198428165628465788913807355678917731560583685202675644183497728265252642843034659571848046355806382094986481354229461307787356214450242415146224877044312326712779545476566608352165682343438767463765560009312767903158751194203601689757343025289911503459701178781915429050812815541517793471376323215499046619475869528434891278055032760795010125543815534978977317637440615632139382843516314132607610453234226696804755439856340322635784469153748404501034102219024747918213573534206771946475301643152742099301741215208944052090824929238772371280065287710511531227881948165178814544248225949250461419276765794203439268120465978567582840281319541652986239392146924251889928793650975741132668615458377958925863301167095090626302575658153637497084109728591725583296658854598794172303707634036323240977359679768298460973645396667431942630088183378993666093633101789868142823740767594910842802008463384906332278020443366275029418130685354369804918328366044002980409959707858368729932316158093244159520845334823503156194616434297246485300744806412904296841315091476209414922820808146104243134586476876600139137651328822793256076779137850325173967815352280178974192051786471342659638843152118982111262065080167887810696812961725381469458914210338747617646445877842764364476117574930411560443249964214616782066772403134771839499533493671101323885305855641222943334790013618001456343870082500945971702250941295501004110339655200921232663403579597659013914731687687727552705103097290652296781402854091920970012468796549502678392703591414353073450149674371817964773252661210052176500871800082002154120156279488773322156281527783087897622521790222565939188113763599951395028147331430545803751984221750506761125816021081057750977482401751321448708453270896380910819467598279160063166075616663028928225987204409033901478272461589799047298228113356253370653962303090443058857173511793143930891399993804923434377770187958206943668263216174878608367824182902475105279956370804690736254649365631476125800068900554052421281879593289509169968730390907114039560530026222296301646851641504096208755261830493593501520856107519196150805817737407015845846350986778282382132764273725799617240212894393118771403128999727574933974371138069392305243376016077913479558612462785137346791142760476375100747717174552372188798315210085745692952842043395228895870527622084746103922245638029357705345560592113258956743730345150823731315407351454392531649226462526405325212004569724211643165521747836589428017036910699195037735829610649892741774079471705136673430493140821165687488848172862309031393955047527222416175931941253481503803413484891877333983265120491152957427134952445658388085335574661002798039560951122150298730320014697574958524221881290193025993708371436225732675721218888705949516600978230392019325071072102913375196673408057046643228246741101375417993329838480216848805799336451952202909769093130354319587457543800058611963212246025873237836730111971783811007012901369006155084998818015757635036401541380017310121148153731897816550812601534240667811047558813986120082037350286882610140513228251076768560228172915068272775333950933456006600054159337038318969439027958817781217842439025074675950866915388394731089190308047847325901814958529830740582823312210653681844581819097814059600770258835365837309523073756673986052086690270907393931993726257696119618628546637094481142906178376474107596883262719444999915488163302210794688866082265540242648523171755426173933611444766204335993503043808932352313686826408711490116346446148788729450426522067236266115704876537224252629866725446009847946905952865947751232963921465402021239880585202560782079996164209558324070932049893689897876106754657278631788233797478141138748905675808740449973114820983724381513907817084152992452810510420043643723738066700440813703978314435357279134742321125156471859087393492416510801767576634226475764478584953804298662166584056732841509059571915719735551983751888893263441894690981203254777808754619888849810224929230365325882235980891507486711304709252339373107948910965429075343663776988460133948953912315241136192006834997420432781562460035500336135764909877028581665015196968761196848431685971625277962199125594966030381166964478893559861385672444295044446165682573377222461531772662951741142830980831472875764418904858370763134098268496277009130069911064460936934397972659419257022458286646803057663887776256154267007114038722039340221681470507562798669017118411309286888091011284653813858752355776279027618876183477566837948114618133996266903986522593753788420608122428377934638564375651751895445965625861383314750274279916982801798855686233743451462935978131082744225149823091285521152102285262628877957199744063921342485860908498564088909883428148886731767738247123789940293691665668879507834605964999571450527456931517170871195990539851007376843421478397245448480406399741879075629674588010705084189017937905063769465021224849846671188211838348089222390531621716069324706580466861473454493284438808499223739494603431689824769893651124738390524408681765143954869360293236151308613934949232444944602891247125336025311920996184484888063090744981730326132256668495659286373866505895539395508052752786883276621162375324291841905752617127396245428425581293433039331576084397820794193150716072663512137814928703488420278947361202685131689930232535580333748949431805731204839406805786023860356666569623168349367127196249595773233043249873592365562179141469339693262317209850725671149442709724858563172075574913852060216380339391577606519018389091466085287726595592397467126645149198369197231013070310376836304242088630140514578938515374121542000651800361501574467469693430527113298138614218522232586165486569667748883520465748243469486192431485854834414873571117320321890669316906982820459487322036172400505347301448999943016218666924097621344422449565199375430144648598761126217215021808418043190831915204396664010652588885469711952073113402479656299937898484935845895157309995447130700229575458276579236160797767423782451235720856645062666078144750446436594968325051826088125930437386601702824301513718988089115273101840230098637743440264446042463289805181407062389453516849441053702486945721575905637382157420937319986910004251787799534062787039691485541749916641412867228277287751490689969680166001262421342763937277190094765175823250852631270586258417392401859880521871706520373068961111846891143766420696102095744554911007762844216455004511965602296341130730003222372847255097976085855807669765807706660574675764635949191780184129006579606318042110597503711273788010843342679741189674522971608262043136419422763342248401779336254257013797801589227362955984878111075104669977188361819029518463166379070722124408677348907276782120328170673314713107208495358774862007956216447241721382698103884403509004470839777349531335724331475716343068452129850514480566655397173044808790160953772971522051666656537153405508085857917411476817473337670796661837669675676024111346703032182587198394146606267302059581973038017233344942652629829355000390718715053522721326846985012443866555664070740770829515582637796000791138640166328083201896367573632055082849232132956056549328745673880269799760772321841403454787384847759756699077332475806553272540892720375002046272503130884764250608820992516701626842725984646009275171471698719133554922194437567502387197117199049017155152298350646317166775939799710398380562179999792948466793428983004307478089795172211823330845893704807231252325295875146804325429335649969350583221242154079541884077473282162300407686730130133256805995321538763186895407728147612555265788957750826558000912794429910364144491568881091794496330037787655465527725862771628593397588747562775680689738396549241122735674820060104713270242357378280436244011536128165480332806367043987328456675586125509825762143720697434250797592905018976991495111515289129041609229848581188514946978990223474594802429110013734308590322129924532154731388881081675834927863079020409870640357449511743556995764334227715009509336617068068135087770432000081015138454181826871546711996127461390398402078890903287315352687521174604786061923963555416613039182041974740833143225849330133622259888253638375543196447486065568112031739873656140179684257033129909456289031538995591588209098650381477647094998946198814436465200919426009525736556853067235346054766074853764350744883811198044594254846834542259137255197686408612170744617761467789873217836298890020717020144804121651031474129356279695137772984461792831481613982928893122892645005577369544027462523407662032920951826060759474448221229874270607765119384326444494955517798539184284766277500738018707029033585136625043214805341872462698634046544611452493256411329044289145785119806823513644151528445103206728341075951651891853137559851027925499048607392907776875013205072659416761057723641680614445563185042296053718650529408259534476043491881448010494553695123718072932080956381819052151829539792070555344745175147597525844124071409280385698899464457256084514790670819777547937354570923602429083503648053990564705623879139880847905843267766968136622067022986285357447695908983229669044012233789995280575124783456918432008211499669439457750082653373363647549548032476535257489753662337321977591936460058774890491072149479991187376080533186481123857105799883199333155124162776554223426673944689094926744340715587302701658780240737325308620572237085733269787051079899702379631484911491987732381972561933773304392323234385601333938552785425035457991450953962046969956021065232461449557993775297727151073061005652297995646030860034860802290447508223913247997654884065938903977483030411400205254166590488477965902144693331164521967607397698264561162734423829424035307636773777735765285148854048056487107859092093399115663339283170564661038338319386401239786149032401341249197467610660825665826716298059933404301561233087319958956875110574180852112078564853254309718546611679037046883233223905304247025698022460717184790467907133982105946652168741040951912681410413713200546717139928110848297146089550761471667587079775113154454216261326247053352162233942823462938532590192671120991722033531717011228249870891947714418488577252732181469898223271789069289052826495617479895829828587297404330870777840572389058043805724968117261976577093068123793532986303903490636149149049053460334373743672377707280962541333564390548699104786962173056761595003229918591714402541105676019400173097934272267938769962359251429557992010050556072141979728346456230433094068521371392162471942548786052011741135337539682615183704199437531183509290699357813882232560663744794096364992763329664199298242191166141149920854371673357344855729785316294232374086980898935738638867921330160982516894313305407013875953198752596231134351288133433684356996699460842699771539565664348953239982263574536042837029408576723372100428362129948131424214699626879141133981685596466346343145946540793269096471308367012290008481992414592839878148396723928124175027608493045067239423039820773593110118723403679300699509601269433145357358758985537321053961580449458982834211910100899413484216633676183489476046865336060916619657765430943618264492224039578435115236354198399408855697537016258735005370518194925273304719019816948644140038466185420095251963200986336328269496722311851752509927438220582188313476330879474930235347409410110121435021100757237835111848568905244471230308710338297790270307670805458466525783273856744904939135044536540333884130730587563655698984350017753836976259301162152584900020666137959893882432515339332571578665482898169729988996008058176596726312916912338510171247354394958304400919195562883764802614421976279895500883662740070665783128141880817777058886365243962037351391529238845656411111870673974497372745095763126637278313297781209942566834536825718117531963633247972698707822073217979731198245967287793308311118992689011965419577845054323141535900462643429019740569877422875317380920238251476779231180925578812430782382331879555224128943298957916915844135252378214058976123880597943247140637070925266529500240307987472573914224248967405066168790125067207456252176525168704600779233832447336831272793924297297689008928172461060700555389641649534242949498041573847675123507415520179761667707387028927260178251088530790113105416316461610387665358521172074815440447519349956363326580892966168168992339973310048376330508246091876947572868901203324259383182743661178210941084141460304962578795180168254585431466013034385856653577166676812379081794479034876262553595675492415691381893684842492462321113162331625337465948074738325761767030373492194803788147034847784523444826010206411268272842156109769559275281375920184800579244137999402864886619354982478560755101524220293611277205814373356326995837305478841896187116437725326432538312766461958539102297720922657156993637285172181128588031278005709095603805386894028129657626517899426867381674318461611591691466513760040417979971848540952675438945772506565970456181694451423384530363036814332494468400812508499170727679058133942071648577888043232314350306576094824012053719461314348441458301863375216880567503861010682135787254226725105076955389670212253392416226631183573593208401418052526523979493687018131134345165296035271380578388405512610401428051995665972048165706362148556332462256552759886339904277511892448110669550211911801409159379279927350643225107359681731509910956304612464208416904990964183221641819741241466133734775207650304894909331528480368817065555957330834517230402403952215585081343527660991988281532439431057310026398729303025983910005970127804059548121519537657647999457990224290049553157350891058940734405729402219470122582724678112308133859619773055073164884006055147397180884300162197106315264182855166928479216581764898261450195686991047437225072092874851178550256687056404753821659226955114016362653506272847681821629667097271552645152241641577742804588481827690909936104846892923719721277198290780847899272440812489416632639448423752007247195823173344272712354969621021065140121540601202534502166031131574250580034457244951604175468013304012428227481823579084723181612018147093910033052996494461247473890733241374277062240089101801497833498040421850889932458993540784120485938251345787925627533507085988253169530073568273624299143298166613918011764250654517593555439965456102543879328441702543956053784797049586248764951781965485265222770571801916126445542256609601490364085723396675210795737691402787604113770609836600778772651314614572793144386254867389614775936586075520113786883407538677200277810854205316263411801622499833449452670285642084611023639222741290707940307901120044945198792324977449415406678043236558514123088565471314275480645999117290660297369830029870637801866956364663322316996557820827980817232722772973931969932506188016532338644442510026553165294687214235196881203544409835723268844698528572822171465515202030841089723196677130971668921227822714690944174493479898942408571848175901896155082840635068743083216791694398604357696928212243537186129274570458756415420364096816986567026033948623857170605518684401623074595209287594877896593755702723719972031946843011214974668833813408249616258173529680091016746467470350015048685031915987173936902731563748387011753640558419484881386868715744999034128798062663147644313515236743304754089687352929206992907566527899981158436437554928467494507749559000619335795090623845561132296513928431165079775937157107596257499173052489536074974139931666007043433778696129944491200296538046886310360038022011483648090583646234046956185309579143748713886535900341903356894596556297027695134625141524387368181929866053138310479267196771254960601483556722903980933654331241198980301804531905457261645931875903072860237880398537592449660322242339160892365075213670458099408214129341655259512722402872342097009462305853050677531362987373709608686788743011219455119042135232427078955405279160792179132552674902295162360373553830542748901649365929890050976867436945726209078871261712858334775650636410232195657549147498514248220143361496117487283923016766610018817043823537598203770253065150410790805075723501253137011108122402526041356096830570797208752576962154130103531375561849520271649914415916389837612800042054362566830056249283946789665080692467246767827768645271928952758948521725038734844155278608523972266951239883075884002330303848105621355721494052010742497915850292180868403126543604964789837804192445917799218973355147114211881621417611407802833955468434545540647109919198259643977170465395893122667109999130382105509616498934225671307635978808976767706127218515187876454745267889092319534075280465557136195954413294712327639733841255794839629494774360621138756834341660738920491638633802847980195247033686752642395689259829420396001426316786601667502160353516473711932650640815684113100678395681829487404413155093269998850475906611028508646687168521104015479356641195382759084585112417041569726326189244226320736570728918482206534129139186476212075386205489523083539300231240688247683628994181844292475661644501605041887054818609267874040795997252918460374792870605040502977621178671279198286266764609175868136983339210252612388027331912257918793499560742010966897116292697426855390297250215967617941849226513285586998785568530933732381880614369187297245193086958951984022898632943924516350058280077432922424307240504437799520077809670488739090322890713525469903749078226403139182384254976104260611950680154913832145751803506157633546046309228101648685003148523324911885343763881389185336391281936247551513052983999037466475602500392708961637745853364452181148995467621079304610566009756293280008379311490317949653650585284826748436556407938278444430352997627263004897099672427788023090928965049033710576511530664613276489855709377219176131500607489121180768089859741013537275617266222095669380221131893067534896988893844279221000399198912637774402721725194974671497546056388421103876909270427944044268599073888752312733572526869266406638004514288836326047086918742026075846677010372397843864137801018404029330664671107987823682328913261863881115311180030988668208843971469515707352608190304347731070658236090122153857924343477622412101147107626961322782440947780034343166910396265506096040151448821288149419879139843838826036106485706353640101639154224561186200541348732760955587277439749573841751735231451679711431128286112558333226342068020669969658546959675234281574059044113580468149131404354277602966446443070985391613567476954430805367731888960701622917536712671942034869045523526999110615949683992725381699637811893728201677860292244619925159409255198303832534903642331090475367012585084347937075683774421021348064754878671589225042187867243730145062321943601695914118207865774537149187531775325449200420922122436155106888352625482615675845571647747421778059174317026305672091461286686983929978235562930942798484446904761924479925043021274640146364411801056338795090920265489302645203100539211786840713030139667057390079961391236309949775532925490052346272036605666873509777564778733321231833430439621171391979940272460098268535002054314562640341832845017416685505873164811538179457342056630754543735606944702687329896702552214027044627603798259885711593429195260277331601505302902328042740606393374908361568296946919072720734937594006492343160569246748723423248889616336920886987241027177817139327977724744928996946705800097016783864891102846816446354970318165592769409356015460259261900063567355991922025465883454009793242093252635024244052738296643486194487937812979128913794428035821506440077734438382903618830111752303929926623536596004278754891467883194397263928868258378963242616941182672951565156313427893906837585929805404778984152041983352061825606158923708458743485617619616945653494315414000961041739932786059401999258676952040250465226874120788966115887998489766977381177836677388947822458691472800614925630635535327958562716255038292630126292535485431628319917253227100270586051925548803354246461125620433331262234370132661015632367033631848121577798921960902427421120802171155531083380395735662362817395107605927030478911924367744904742300181205273990270717108604507417591996392540955310891115491165932065512610310457720407363943860838194756382974888986990522715710229004015289649187275978359441492269647875041397532834158131215054441667484557643106600379847135715972165834877344516292326715728807477217774245601012960583735145924198358946776556741241640613966797825503275027707895876302000571694116801199180927578165792293784517519906463324263390219627070524888332428543035276355467499346957916006474777246981664897063921890756690211023864289780903911382922133710781532881509205065922881988040371761556993260081580483090101303036870641335062590625878387023520181876019459595317539029290360615632332986362218673140475638919089401896247975427546133630616390325022768056303539401005209794557395571449093190161321567688290558369186150845197286724093042062217327039579479294133768638507536883515418927416145942040451289403779775184843665396501017178049611728443286121441752778330629028354195387319127173794010182166105120067483254723063484711151855537544804754278043748275649357713907411769791476758832303842996811646762834749176663274490282661517746105528519629165209163014053527275561261707127010750446261800178826177261772271626502953066136479985794373316948361796710808566448424711869777411230142343806211559685492578765908586185173348407679277976645570195024641590188752150684989685822042792408010872277943908387160243830266486745582715711287980315689087976206667625857715351162008950388484284951855588524552328221524160968782256545673120189985228806034481094122608890011304895503875150916975371907981882964972146914962550309512075859191482646461565648777253576996184456648124058280955411741811417938152018194593694471064093437464787452317666350738759140713081699643135757038927864146960311182184014380015851603381102630166832052550130562923539577097197438115600843845031422325008995342899174243794471636751512255175992754652074873854085025227282180186063900383452157702298288432170954234898343538468889985961167307127932214465210753583214938003445645618179233632118124687293154678437111025986095740070716427197131768350412018693606165890780603097660161826910192961004763750641609158253958907837474895024879944494030590030401090594432855668397535727409774338393483279105144125344211698428034473949425682295821282047703307115360422490325251557844712744922823500276601784995246312653471370155623305230102479215918403057610178970786079570830745788696639341297031516443474836424390173602366220985283829701908760212218304285395733744149566782233799445277183022079914687556129952247556606027560461958049371950566894853110791650724508092810647266271982389166005965464614916776544089444386506944828619548786663302157948205841733641588382039151821214006247401564441939761002655460302240382021927477252591109200692774213571508020469275257895706765239213504432631237683456233412037124710238961453568340012204119979581968945124482973806339567523655126127780606341417501462897718663519398364087234923746094921698439300361880170556816853591275354768488077014781608666122317320731113342289125361077041214297254886137844014262707099776674120996157469936815495668825113236434336850328394270069535557066415852455363567155850104920734705552045050032204112519236538927863407639631755602752016400758620290603730245408610140831136417363354960711307513517679921243718219034260230704071071241165782344704891780441200160004381541640638890592938709323406484961017944147909478222097718617626990556867726070707402351593197498473186422307127973655230534166420162213059761953635913245629994662086906938717363144821528735887778342775858875217344004444096725715861461325859044963249224638709024682125001688978738676996711400681922273458179968265882767021117915375358211005297584450101812179277443474908621642714161014300239137019641457172474473409799647499101194607125051610571343379286069244626050787157347788619757281242362432017048591216813998345528730711551462667828758984257685311935235906537332105459774909604380757089432193932236319586794537320292046775797321421530977741426607740391745322233498878446501651081865975701021272994854147658464257886645226045088439456416948211440626756631706600619057330104274354612196465690070349027137386674411712396605875246895412815857867032773811297592773043801870468701376509489383978250511790785817938150143452708448146913915294125266072874817328423701961608841553963547368104244643624743248480170865694658518684560264172924241349766651926811627660821031059032717954711996507298973773233548798019505509247506815593217347889470064344521643346455764746765003556521293015016609897386117713842932660982049091033064307697693282683606164631518999050962707025053340425976264113803562786233061323092940414347723084258538595327142524016162372095863400089365770725709049524249124680313546296176106793785257890489000759288418425316728496238524197797450385149095345333537778997322878578964479424065101750830392947564824625710766250390415429584993126744229356416269599636510953885400628219988429334269316971848835669687710883244258192706524031111577357184459022469247181176350544647092867698639243060499619778050193927936813273217125233149578031865905078644210843083566106400713558096421122755046439943474150763774692385066356242060904759556178679366579788507673713967134312834744941020135292841223457589590069571753977556976294553008222675222947415846458119209848891568228233765782513738316616068277124409403206728843351796973605884319670639118873790393468453743877687098515826396138797702671044459617472258723528280040637928048556940798629089449514890609150864975682932031688676397285222801347963096797575682799785982738549517811060167712981496574384760842494788861673534061486598153835560021683700675467988410660865506335208211084494147417756391943088739348072257035222698517249415402527340629919227099364371373801242684375969646606405084056141782558675774306110529647178947170376650918142496394887380186124952299710160974431326355204885485894722749921053360489746769788635894906516408410004201005598499037546196136377236175088788892890013207456530926449234506054412650959073416079480149120031388675374932136639623801577461127247087117683173381167588749604338890620352884872726995314811762538911208764668914417263459162200523393464531862589769487199000848057400649215803463570181167173348380181625753595041070371612863079659636327995505005027660350311393756909065494166189469007622472407700699451076133934057265938633444298898712728223165213674104590566866453361914975755861929783078559386031117079002236813343534395089462678624846537961900059445839692781254929407103394006510490439611627265926706835982673607307570310487496104391187466888636006411039415264871582309248699676867253410306364391238332489683350485434639772919714600521018406503964066515469010220122778248735573160665471687158840375887785767096807335372175345773343280420097423577037731366437395697912165203844987987139512381411288730887716122907981970055557338871341206629025594302650729966831631831846867074530570961610903460969778421780756199990060993997877814320119422865637721951209437707051583057927361648493148993227324036272826867417239113145388568727499368362724731064804997796751137884474220393409581182016119983293957888158070574326439704407680935876391297504920588606941830708934975892700904232962055334242009881878099709730332143580623524448989014387150683951071134869944873849595630400005271023003370408584694110540983210558871157538860089813264677005495893578785963604855702298048979767632054333809150353135792426080914178948800100149960765272207882976281474330500050520431156952176825315700883931860575355415969283917332162207474112549721669545736836804988434606999532783704501979235222206420786082686566327655808741822348637291056803646712633139937909060526815415966627634832197667728508521803509715059736158372252399365730901698205594088219708405956796952050318980085954834149025068128459241119552292028851409542030552972646194110120007199675235010922973156766114750451449093832351597283473516473269245262094484923619566452427790907422309064620222138025815359545524180845410006661174048623023235531567892325121920710054283011032765866400781400729825489032733152138911454872370142724175077748839673175540333845679978455496973687393723528348770686228411811694749281929916055721894818312651886485731037192082119079481309911474409656051588459601284004098080115566385050528708511463413147830010528673659872392830145892423492744440236675028312632650376421855482485616614064726716551706098793864970559205110289129941554653031159533253831607834569432339323816559834172510850639677144088739833700746948117618951342815528986250933066095665563230521659622457491550307954748023541035293498543750607293018484566202560560223006203710610625720215454539891416238170158093729304390254100447752058080955775682337730955302777168030938218669969025375190577058391246862760903304407445105597983675733661522867310099914530930805104753215333142250051628334758356527033019390756030999165931369502523926497209403501388669177430555023015893600663894663537572705813169244658221579911554427267066763486303105202162057414795627381856428969601841206077617450699350863208752185982805895744504329740612238728883203225036979255038277673627337817448538415114206932642143733855738833403975854445183110412747112643580876929154189758032616671521398828952365024739719599037597597737639716194505374602280556771475470566036861332847007540690395185199148379068502359789593461681829117371663107640709488749002408699704943300051700271538977274802822794722572761699405655832576276187511696700930343632733026354962803796480699868963831628574045525314304090165484001127657370374696397605903177350151578261837894614941969165757453689580229988978978652798815694024602688617403922798756163400608588235923084546017035414128166181691511325640558260330985091844366285350627583019556264400898319218959104074134053716814347225865357495461791752290591427206906764162142053161042609886312467510441246555230100599635172522991748897328261398284854210651240633722439647753908086931584373894568405830473131073246095257173571379576615103399201644170498869856722923388480848388630361589302925133679863145894249170472899621370588282989933902413772171268754253377733423822486170417834590884063226811380248356254937828799732951781055710782948065716432566254095032088725753761708526133190486511932225527594547459433650597975921700086721941467648197685723717182684966375673355215263647276400429032871271782392177390326538261704850090306749811018677793500145200451229310200932044919882021566964993072285742153119392961336142855303652697304570028794926912809365865061196875209429835879280462165169005162675297038132990146976718587596642585904071467028289911081522755450544891441610815400231478709051636977031418367797837460563605317152402033534412776501401776405460818626400237155292339354899060127514393596292067215506451085527427970337056261372313790378965542644214983183521055263334753666756889461377601286312975487177934727517480491713600026792289765748047687100692918061840176409856902421252714041913442288758753671288877576741954909395251488884549954599965105507483703433273180413107050524583923822912074980648816394278591048532887243162820532687170117100282599774088894790920378891296692030060457941007054981763004427397205351542075194672377920304376389143439192690220606987279640783543772858732676327463237879439872334174917644286991894011190299127793500111213701185657475698868342434837650699122566944272827414908912788633893128810694731190538044034261269645273931170506806628932740278036826401329107927684929593047429010744618854759708772925921787699103846294639415707868513032496148413910256897652086680841736414217264956869046455373512152570110914521727925259611363031471401357708162108389203443204091370228680678838209855383670153819982186848615456230744853575033377374238361256494456969075195790557178063283853098663992074675870295544370413929260511998791261541612069576869419209509799674096907169414168614045241644000226482687131427234689606733629537041900839598365970785313439179303735084953565000182606067086433603426645419731527065501829738703713730333012040255518019691465075098260155630521391538099630991600761640479648175702850970367264735767864401436569775139497226331812564344539988374413444267223342749363362580782701423003092899983270140891641356543499998097382184589517414052944874932304573826639892775255742324030999664333786672028075415523683667087043050659084581592773803020376542875458602627160395847186095699243952168517758215876406111297364943923240450458604577672283830284526318036482647997553105321058771792256440110063826264224391898711762186785003531332440001660796422409918212521698835642183276950398088633549084561165738305889421364986904404415891395763260042758623529788619455608632888301859331018967722601528267431016750979868028363283015934156774273181913415772169422023667768480115930554274155023428750897683765967143496750492260324464771654932642312587282732533927454465145668009158650460162133140920853980123133983823860680530573565715541709319286776969147221298607630008577313069838903677101242009740101822007679336058723775814472691637348562963660669873573797492294901679394190143996528230425913009108571212356422507382412569290246036148564973160160242188753377884388787626281078032313385522958575349269765596656267242567608902235559357481913147459792457303361187226476664712005117043919108930933930414773718566117974417882983729781161156714866346372144456024125559137771685961162702213588698935968498793550223358322563061651157754304355615145428848582065619625587297845931236870821443198165493233526177149771173664583841590048550557568809220580618219069700246871960550204626864455847781394171114028593794358772388602675352393844321002775568856554298797064271530183579612921946821563547445870159644625916006054870881707114169531605017118224203974938278342384777107684799059989186829666743893902162362110554954388218334246736093130574288273286575352269104153717842466268020893327137661354555629952236229173535825650133489598577146380334832602976402727022420901902516257965656803663955805719001490716653606336630908790494370294421595648652472237019088423252814130601761781722928153634392095613495604203695897198041198403981763680715274462208000352478572500791747712315949392635796161668359900201040791096296856478567283108201398199478758255016753296159127208611839465502919199942756797713703916383137202376361214502382235113207124420227695410900671639393335385413580431653204181617021968829612859358173346857909569856893509538742641257126221634448153835666571897242180301590906190750801523488661722127897381113873427452523189585086680187689386714538913398759707967879932129827652968514923980197192735057107242876426645050848902244094189296003625036081412201325592752665679222404102330088755331817821856056339934963333814754566074313221944598737546610339099597709011742734938988504031187946087092848339322864353735365475412652747668106772034881588971888411136248728654514174075843023982077510927508867268684724624016647634162538934237510277176557821708012366574627837474211449312321778949319665942842944600294847520178259937054084974315145725185494266345587770767748739149374383391389404289384662303089062581102960892487973364502270456011068684913699657385399789317774719995330783182430201819986984722617830049298877920053319623969965284893098758534990361576846669008280101377080208214117332765396119512604188509920882893417627657246603711503531625828977196609850126617889985372561874723246942801287402069647601892184644530150014164967338345045123826168114331719927256479789479408119355092291706821301239514608868016181394777779824513079386052645248489501425553718990765914246965322739681534947782107963945363155267722233659980653668807486188216159024669164451731120973212750727276284068488110931143843249672996397360519305211139318373112664440037372180249958979292438880477682085824169231479817407237114643197099334050791360638933555140859299611723604674961915818139787102805411087594277556046932762908157717509713140490936404898080620746025109528514134134598577924002510051590612632979489784756900260585900627984090931523147925810294951125212659227618573384076762665293703916396813550681502338382150871139162111942342332495078093747462216955495297311719699934521983932778763131197834907478005616147081188523328516350470719685016064318305547074423126915930096894533238651034481561323115881813713188826123331316180957185195682505909709195823638684176596054517611204640923864028364105785365247194767638131047354111528873465666331055878634643305416400973822998442746653870760053484324748346242576746030100691743141331573077247432856007529961486428923134385374715652820840919957769488263620072516402162142255636499244760070007372411740551991590089349972575554829011154754376721682252262104036728258758514362473317268919551441496749409079005577660873176829627159324979546928444070533384372006643260093895655871927311022559422953325095617335369417614638589039718594647765084157539697762408206331638667151949594440526414721271249260457956386736396941707195962363569526434433877161715993349627554997338027419393018428586440381693658555692584660147491432409863710290046377663115035669634620645294934676044666375254238512028846159173808659682147739899950895928353906779870953688939628421664518190207065252412014366135815345852620418421160611674435735593040841889558788033056354945857532487326317558192786373555951871095825847885332241442199762388508039096019283000513461946852870241310279905088737032146000484265524551898791344862096900730807446248400013095759327950536003973656209017562445853129495775761963393929667763082915954446766765827628006714991899779036908643383775783971717088990964942641330024753960417133092336593702777914455164182708606644282436568262451814386191081802736672946115141797202695716029626914003534415546337028994037955048379543543766319040335883717723209216398056737979261389284894546101680836057277263463440986242543198889132114939806966784164512826010331444604198801749409858772126669203190537588093370099494550782469538154474119405220149427693721619480042639216267795888704041570728871941113627733988923671979930185133290387543196622516807542814548460476843490426343675567778593555208176283353784620574641564935779233569819367522633267848112424081005378126183759844970423450255089114925837516828231781964692125946680157447450326814581444819285143974881151802331417507969017903897986616308473443708970123362411118111557997225953365675164561388548824235125582354975413365765238150893624578675591608999305739600093217082644626726297432827340185174661425866402969446212079187295072032204921505538907620290642433515458324477874982112457809480822596368674689097156582587341014677037281096305177686135145732528528452676915057652878816664867072458439753837012258644003775648881299711776623515980818416268099397555986355030227375078158313138062540553005186685687433809492303082313054034037905171738437157106663718003748084389913474004331111817044566505119611233202423147436971166670276822495140358232460496657337864111594230244185744256140080319837220575212499122899411578655354565535424643488573723248542339920456723804590514358824446849559297299500832607250982988091243752164474921254117982286498578308157635333554579039752893514841543604512403249505410954099057469895792558264900942200572150245124588818362284770935481320498642916390672760872265581338912798453369159636389961431081906157026486842753089159076184277842106836710289830152004724784809543898531602601332938393273114243369414632448950496176854601350894838634204951373127098113825120664011389068023419119126676268034304990639175549770233131800240209936073817128997476581331709523290818590718492475679906046069957188777811562760910926823331246977097066344148625105790914574751250463080662788523933114101078166736739300676880439174030283716668290123770035692276761197311493691570645004504661997738184396874471412708237644989050325185119463222646538782396536830753266521092052780666789409327006026315726995453578887871851692847377271804087050305003312968881677857039222245072585556771320553450802934532783349157776268715017201278884454356530886824970740583952526599176938496069344770325610349212580820505090131890580294145326667196891372415863575188652188336478511712940097202693229463695133789577632050671796207913111119675380784900121601028407360926594239852847040679330685848742016455298541599162322127642167691836155480840280306050843629716277412895479514777973244658826315167012782962140945710838572317547290879931297175435219334447544216247162516346784199968180743639915145224361571879066699593168839714991195949153838248662499120956124645976291287643791254164114794928915441797616689255615275895869149666663036521957555655361400727598218610570558160315320086141842680395849350006299127889818032077604763249404713261678991380398859940248840719397116117536511431869506669574993337704838557332493376960551647849450454304582127239773826654028987535014767345882488796935095151671311256653057052786822471805987513549731983262963278150578271790183408327340234968923456619690008429845805683063473958307765936648425417963095936675225676165084404161818898899033615730822402712649463410536896573629233048451171707074605130654631665975911003059192203701566004694794844544969278482643582428476144235760727946768161595802743133287229965746365240062430995693018433185878244756124776054511826513780935836727478632262033101379795654547400746747042225769256042560456074786835303749031830674521637711512991476445079086384551931038766012536037075575504858567554148626077399639282604957183362774438215220388499298175473389257501707937181258264739542285497267044272571843006590624466538195538218215352472121419686705156939772079270617615611640343031228980430901579617852957657102878973466984911869137232168508296156549297178223897760618234073088804010056828000870248724401833473321775221391463496556782570235579339629116097677732317635634235722824221932114010798658276381751601083298856817705700408964566431265060087670434646391390745616906654681877691092422599602910706194026417998964608524803956530005160215719636708083817892878676198516247534559518950393085516357007384174137946782519477959567695431605972589832811442876754814846848295397636576933791345150949199474137680719671284324928123801168506626229658581769206084947991097307360178600070852445240199481563093915709116761845220397878320397183219624568684498891750618946275792405315150441333201298769809415529165797160277304951633688355003187117572011399054651357529319166569639660997083459732241608006275061585699808705626253062011671266397758275094880913838766136089111881795995535735112616325762038308726805413445380108677518355345698566101300083657355146719773620680120155000304847529463439094552448385267992406770513880496764463021482753614107777920858496890523477764271695831767364170667739239490657436072216135857722595688038141449207746088777748744627077159756160375250593516171247619649348249240636787214997603122632056805238109340558987656240472804123431093798118466347164123667224936488197518704736137633880141825578696655815709463314900173639021222673643555872523876988960146719504777567935056853004342715789060113953083561607437868117078144700113277852598501843971536731955305336700945369181920351678489017624780468041258805536971545117609902232682740593780525031185627944518674488775261598677183866255341920339329308994491300805469579218892011406825895073272286204847899995651076081940460168477708253657346096070914131243824882204943174373812849203769714721876739274717777933759536665541333630192763119731414953262182254637033998215528327868869848237312426809103119138649012916611262873535621397538682802408415242205763435386805480932949634838870279503620371338923076147812873664073967115793699999945891313518598119524423941502512017663392083386241394096949039477838155634514636558526377525400816918463736581912913901175273288113000862444495154344928842380857568601014515061316593798838747623269380608564067307637928261148663004383983441042765445105260850869252154386990651396947803995929244967847674595796157585791413779318135220214607175454378341443972063112146599915857872339741322108873347404853674806765058650032214771697140420004776570626887254655168468087738174041514916590747905480764700667260638936422727266972806541095560576976489611993999668987648298502291990365115862364164967045086620829936349540086555209364558235472011659491760374251469714341523761817890855916114365629802145841971276377660353826958996185712396849452631536164027667111039750913242346311751092399488315948585810095441703997730580645021405214001573013675210608175011473986238497938518304818466819518462840612477068278178693224130306047788424535920329467868671178305883123393246144995815804388880602116701548210016178847018093500598087543599108024058083609527680560159993711721643441210340457858315693128937805263992280966511302655854864612968740042632487418438694752777634812747413278825614122163248814448476999714887911621399995238917065616090196992436733422650595605591208341603005406940187943312955029336867451427353211491109434490390221908015703832959317252538564557448605728327936050899764994597476555374595645275784308472556134161622671947925504696844367384404703667728418212925348879920784591496772595895505280844266095667336031126961950328774565275069292365706317825162537219831544970519055998505501452519244920415394900994814552917687558253076316825369045265008741380911419963482019057269350739029006059001383437745989162832479816757953395823718161838485340242541775231415648988333636040452363904518863640235850428164614054941041952130931652071066930314165910178554089641826455136399828523695941830629900077333990501552103752140654661029080958946366113068349908229525048157459564425221968343315675883329591112145085924518679960702732615517321824185260522807231893555694784812936510434594329262815769247631614696848178288734795166160389004063917342626940423563455911259098543977431302178112072873555345956272697091444052648959464637449086817223770560607916768514825307979720482237907433769008354285001421235822028109925250611268123768267955811093752475454192959889875198265614487376183667665661102935183712955033521784200013596786052376812454710305971815905561006024253442442222845590714148451173834338656426933089069640340563237852061199574217482643993013489425280858594455978142175662195222834310443815857489532105859860429263293702113206113328058179129506973338689174894178733633332813392370308539113769483755079877085695561895478134284275273435191618314960828969324665107097974720945423936331021550102952574147946608023696652583142490068533290152282720270140048994683793099650567529586695062560020214146685806608146776821079066685034880735014886430175506815825403220808342679675811076221954072894858090696690485248746041997193992864483910562229791624759242359226261548717928926063760026904865145549195837013763492002836938696537725247651379694241485870050765703648774013687706303377571560145642040008802650195852392847381768246097974528741926294783667842520847935449613887317411415639297637174756352510490785041557561395471694557869945756644975473330209032407374901615629778741430544704783341140101641709138232613924531531523142990728325532324481259837492923673918409007069627525957176675964263225326101302400424406207614769889995211646893554466368640615762516632692366755756791601247547834807481909982364861699674974428590825064988276609248080259711373910316659099761428380027087311601027132105573683019562267576278621998020972567304543852058888977541249402503328933042305908441247855445935503051188945321677660629423804468812427935676223694788874198669356276641844094420392559112250253867756299404768870927036173321792869435768563041859549612833620212850861761855317476344787232028070746403588905605661061082756390385232041421353160835011985244546866818300891098480216350639494029391600636867018943879647529925970023723358318645561446732108816778461990744593773795283372482904639524080424692358391199575845341095263065341218276657403115579358396681388813803637812670605517914119317867157374808855440728599924375538147550099651388046660718901879393646289177042971193404144897857348044255252545287888949794297212174568496650615978379512217158392231666422990244786688597282777892009518094517927976249763015370516794615411965490843979427904921579184473392787061798707383893215781090693799335874300472847924915533858683188232766107642523729391806815081188703673286603702555283588618380459870544939113270776964352427227037835522899008085199978272368992167128782606592390278608229794734950027512353870310093457821704458973502802474258574999249831705513429267369500200242384240369151090415671132827976186508446294645930633617770198751829138295725980721295220207995630153971864125609003231410724516137939298229244160925509836662089402553875046634073324439589046850646616199223285057779965364543394527830734869037189566468615991549437708841968847529557243956683238343636088724799292748672102597730608476511606065166604253023190915927853821175174092160355597193787645407197671402289790954646087373603581472460588389399094701862757027041429855404025185860018268911051017204220441750114633445150972194262147071522261310883090734070559890361962488290719357987267204517969985614695786170156473699534568270805582246911511587425757040112068963884664884274630383202451420163701088102339416878365864741605994127748322187286292355078380061644294374813593876937038917261329537617420771783221851126571852043324414824599400295830817489438636138083956727706335871850672839284743809194340826859336681693649340273503490810285325993170008498705604453420344650639273471045776384425421359783329053939177412530673991246567594545725860615984350949931832145910022342132860906104563869099529294038698536599631996463878463705846874118123162308241675773334129654956375960018277756034347453467983597120226281910443568808180129584678042066327149076670417069131499795532371240548429346157648895097718538622320943114945046227904807695435039750069049976707832320250219873821487207457091245379745535628560690507451262158041279549578505967835551210127811487668124639509686420984133046423559669922460935529666933517577725744904225099608268654976595678154392412957469805901420610500593274030131356233596546412693830101252476342992805853321579742700211264989931343700413016652635293095868370263668144081350817127741289051405901248194801743323434447089349574672217993054078747693217992883880025572634253670568366360186158571321989991568927947274765571647393577026527716201597459350491604610434072825312227223782291084580773921318807094406782702046253249719397194084719815742248802386955121710902061084467337772377620461513145579460838413459432631837539978836780910752301460018497149390451958460949780073157876391481093275327633794605061310329250813766481854900618832964140263617315379587974444801778816279108297376796550779951239008432277372420996991137181755917795510125987954543290181142600915385383648191818869215955072023563435170022502719038186082242241671355508971324847103852052621407441335954941676610100694253163903510600484349043407423512984217088664507701960275394132247018471488415836688682333739989740560796030958446247388463347645254529648513283049784085908434113031139555170219257921703604509985696653364355742810734328402021340472702501578805022942548004453613631464353965202131727504637903721390106922747944560680099463614766155159059762176002614120601864756713068997294173261970741413341379562014240502686987628025927502929985922233016416192404697609861816573635787426626636575130048354264843503567455102862055557970480142683843027239601353597985925050480251722187368552973108849204587903302924284676669142328970321718378546771948739230998072749375035988882979272453975266528224408477159187692607642764667922145764987323400728691118475805794707120170160534053473757758932010327927875279089765262300540009175590064178221393834171806823702076984579686404813819874682804563776786132902363929299141928835527689537297927133527701025885149933527245631036614309878169753844477112865385864053193684311118309041963637358503355892804155415330747095745592102210763543241883298119926028511975656866402516064090170796555575804430891137853798640417873039240808471834926940980538751822542016849566060795009149213557371555304689837118220806300147353946547443005353281027979529161162205581992282935460635918998673676087631208740244416887514649292820562637036637085470733733846015001729709382361827250314012596071366336242575104832802425050153368221913913138608613167674719609736152187624053830550225227859577447389155984539677004219826260001240709421044781389023876801035034324399900854926509450989832210082690436434484125632958795519473356058746082356116550754663695313444615489269214900470281346399441802988500722806474485277358306766267493089764535524986488525997706837559462550690365194319775863582609504993205552290637561103880445422608716210337968858364359654952819959901417847740032172426228091160068636732881507123546868061130117554854329104311581468607732895676778723698844896519266687151924535010878096831717371540325259638964246638876448444080243857687298796138815470711706270577956269015066240116087729662229254873714566196847585611938993473252803357156369802268433923504924810902090581182690819941055613367350987539870020423777160755737963540381054484235087607511632162492557280509299676443011866537490800839542060207213048762309781488056858300885148396404883486507934311405180746029234504698075444815917300275775473087267821579012141473479459656948713999482733709552704550013566058613706231217814549825910378375816885219017944065722736101613620313698238193833691577447555661155784066051711800497347808142508032129744732897802009534471916590952743037163630221173441932248792417824633290635533248752178672191223623719218905194339341339182485724565600530590773476158612327812305518380806611985317424174273059336846630966758066723736645549829261608538926286612528932135674774600757387080282303457335242209604429915304434119329985268551493397235467430122150967249797645963466073770018324837092001567568728527928688621374685039315695126653332421790536358244203000944042892294028941658951951739585836470884792500778028346205448631500308790968473925578874417905108633963861961004849065366683653346946232967390460835446475042709726949431290892200143309789775053503943840176122127813987343739115665373392666203721060624071090312606873888211153614766908106912382565138884740790297841208756197419035167890135427756964932224239579633198742715800504505410024019144943476459677687867631028776125019430039717039334462686827622700856373563771626439948268343623458208301941503817158838473682171719899397115036087593116291729915791670314567675524616642206086239590141539189466629562817882643062546362160906479023003367380083640720694424146869548291376904955070193422095020511899802917024222992918260899816168863306242688706136215000561229365079218304227942084092338995920941695357751167282507042922295899632807511468744036223595408651341530872626894384739576808164734589837100892647555359817579255252801654453791809657799155482783020837107183753002870518227198711271499575006441255732077957841642019206447660039087188383830323657489154029992758508993020836214790784595358097118984600193438660080786591243584432083822605639761061727514477370199667376213046423208339520125756833547896662045697375054981664303220694903451603915630780575073599621122934318761315107031194996063636898447633328908439635769130355367898304788043606511004379889241109599761989712036387638302512584255285629190704307192402132906982398354378340872701293084731528662291465502719496576615894059028457145155316678079660539223289845940355690552470344612174680822745491043711413949245625542931832709127334414970777856847841625152944777211218964307640968917060875067397930506627091249117271645371017612882864157116065277704724386121553929738868087543426019859727325923355950404784737637472624406473365959855938652771273706952011830889876928667914741327848392105884724830378524016427785904996266978779785507412387173454052151165888190854050197459748569736460756137144232080867058507920810648643286523140189585015706797677988294356837250359503566123047105979491904026867509282986619603399607269152572914367689249766192909504514954032181364615267690614101936289078066717635013400352269222203181541509052427602059759038671320859061888146063720280888065429406283704429119724927572366961089549121510606457317872915479144552430821657519279181871727626669159061063601599881860877736009407085672537422033282351432248799304745298951770296416765364720353994832882334186243849968645560423001387254652423033588094937179391439720939718911698184107164745440682572471836213973244631611151838085976982735430014463407615742224753930742142759006881934411630027885792643558420288744686541125223599099229149943008299652540100788229288468009467477463965784616190021214132671285703090684515302581895900309650804519821190639627559890246732197945231031795355640470077793064908153463580015684556367944885432728716697116213226783707655551590484723816764018754870050236332262121413611764444106363962335329741258756141478403160221710886525132330701360771400018016614183703941027985076557397061654524542401986353656880390127626106052082904397480410996915329006300213336525449933564215035218285577438564387503186540577227986616609482908054749754377253504066126348062925027655109134334366911202155002339097152966563049163553264707743500306707108616248349510321532127735480473007989406878992504568518450406459475400043118230984087462474514340479701399374629260348136886454944051096087325196365962108296735518592019409613985381314582852618628797018229730518797270900675986663511908029370785982231438333365656047290549582875660611472452670839087949083606608316546555981862743436742802155301517455383098790621399231272079652408785126236386570490362744300562513381057999534881781399232487444798774923172605104647735239135794159764309492062798982026967607789124209510603517081017774056783605679861215018425787233121423977419956880199179989399838365228630566560207563365442149032570496857383399327050103413199302149107025035001652570493655904570148022263068521483065242672833756340889100387814237864957324976217299796774807682203231568338940408754413108709543227323571320778398544499837581946600168719945468177264678849027799265119354370427870912236652056193432100298908339404936309939753104578376877089122087771324166616590958203399897155708558630579412138844805074966447845446423100750065818649339330993622765170434880875484004827517649095174800532373374207498494711013057922899995742872222330021323414379377529085591927909089774568557766893383285405526776208383567626768096070211636773755529243945235256912647983695119890422786259058721163586877343652631062402231811430085783509585470551712504936106454630433548546072325849369048638741921797462170616765040195047817190937661082514106113431101758361437451685142875450477995928277941008219342211657862467289017025238862573541590323182166881190701287204717017805457549794130399126358339184045250396865141588888855751834815481990204075442819863378729714516683402446060442519308552958699370273509063109117361255637649596499402101012711374448459142762673026836056360102559981494110004099584475270851635963096410778466366405525128110266182035573667737988232296154469141767244376235781230912081729433056726621894947271651212315759006189536765416894802072832662043922657967136113535122329815117634971472988341658498172197669064417563424965007917228238294861162671525948994679183644100051397568507943214989212670472283216478045733631274475404977851325479690594956144672496377881743107615445705226318630206432206123285933517489988919192851496931237321627087082802060686559731325285328530608177808913837912741638342580350285956527679515459970914587500946776122612389729132564071660674148872896498514098058424123039050844601312517924421929622243961199129353407943514873337671422717691420555971866567087325978271950924164438866711087536836241813748659888136522506862887961604433766170718581777244511848853067313660776830729283440800470310545127993214722341076737262140045533341521499117929374903379973870647964608216649129784513051754225723509628730619870912616304861934365530776272644168966973931827031753543553321495352044692043830101657317500004709715516416278339860239136552203472892916063458165949899083022502567960886372950901841194615990518712113619235472761861087912324143302784616309299386559549787565951007745022688205867797512997960584100084283568263706499773094524522303837015466322406473848400497587472576455308916866529614174973335459542303161459233467660438329508512175363226395780254749453735734633452378872204655604162252932479340831527377531434083316167899245752226596548598482085721625396542826211354633200854125831795022727093058663876056775186628518813121852764563536576222614404824172833990722668543227781515825128850119530678690103359181107175467575590478746273758728680801248381601106714015491594772287894513423571277022603662019839879016229534021448778500546476815209284355190134017811373100951142136447727997143546493482608558537488805976285324987293192971758509058604365391468653663914842932707577530914122947302641489506745674528129932975233569849443295733962478184107306234705389346524676450877107619225882769749291788007624633505189889589009383305043167752335063401528873955484106751058450148491801172178963974900735369818782348225888961880574353420163608712120182813655322267062744296047731010735344182676678589757937606052645302122431946359434015983543807417830631255017617466318126235270254797422841381373414692981462939863829125382514099870304831782209434214460753141267833873748784821164883564610079633088839765504963984774097753377750139326797166377356936469489024253130888115316515240827555608700369500391211501151267439669300750198344813315245328440637082140989741163607894548851245200400027427999489478379167319107269212452178820803737205530187015833461302670566400244728595663422997258209823263716865709670251528551553312573537507474568284824608384025550774702985237167409629598592803190980116346326477898949802820906647498145162257090883164284330776366491359835713685119246509443210035858326079230109611620729416646143763978507940830983644408344512890365803999836946100819377554206649952804306213522804267707555205011298886648314177989405293930596549198881539602148907050406222321419425503833825036325830462811398019602320881787230386078149353380583046519129335378402832577248009128922626044655105303981588413938326032055765005189761940746785115215509669227739464338556147505534063940757937918073057408841316273595149786953869469001710189075179400911044299755251655955836381688157688068143064470740393956910056692005326502455301167326088927142785949392104377493789959229062749610592847468249529319088585025765870581445042556916342742757177864992316752355768297909125985670480502740036706518464427765984625143278655331963104180876175842842530716019522579397854393462207330847088533660754496023086424949249121378046885533203817735837918934733002866481277441886538865759108813987736069620474962126598348172857321913661066665886583881997620014440824730984754876734655324312294947460202926359506348160660302434954930211934104855550614249870010124336308434453943332052766479457550143686845449303960682698581339071422474263601297851946494063785618076552050677928873693975387874915778867148020079619075923892030433871800648903150612020207020364817341220441585793836739509174680669539112726195075957750882235031562391554420050177876510928541578067663296680218477446924833556339955934166283238797850313180646714212251057766332015867353766708365741963373464561581122534216549497268231052153537745058899939887013445710624194102341769181657993927839616073098753812162330793952957349700070804162079698954493913494113219148462750372530819614380792058792064054619054599397247137334285751495885213350913395454232538033665680652323200030946733944814752743433942910096585253223132549146940215980589793216772898529149920018943992408233413674818872846153099457656637067084981694990699681433194158483354136245331977863843503731290200653519074331647552294889058906214717878768010086149420631388276532472392872758081476533194620876972809790275442866733380211610665937904052712329469679604833451083945026747097678718766239131371286005771447304933353242540722527659996076085362185604525429882988397288621804639304224141358827802669830375931542389512195691613397896134972039980695479172467386079631005267069120214939295340329138506479556546896239201337301808939961231749472412014143316605329531983648453366321236723119921445965182959306537224173561954217877923513335834718150841177898949088263182630036416204140246531038371893083712579832179192940162273881190848057843467556417452869423220201125084571044685563517415344509357289764775181256589863555799148557481133017563439598113325300561535637103227089152569892135182484902441443554215682081263220577440294715361388249533592951836776419997583317045936196967706616909733839595622777588967934305391471398528660698473102586763626035860533338982886366857412311105378661363418208455437532455959948908604831719987723757014040645153802013872361699464528711900228975220353663230987068358988242419368911460960326465282883824340899398293915866692903839226542634009195087934633552663559152372877113443022568498307118022111589975072674015450936454508982257246139075911384869400322853059835882882672680664797747065533318805896997275763020165645742353433545742347067247836071094977079511572020478456675699529642294854094852756738539257085715342698513452154128074394701221660629504419333475171926737898530496223175658061610699577072989135246804866150308366786473399839505905592067796039045263900862926134184254358651886684971696824107544521422826529006773293104835635702141307312400081709336143440025671741900562585945003109593463489504956500211918670431043156283411192387964535118097148959408901160438544546755125348747955369082593819049711245357854050324270574620640592005173901332421553205214161526469108210174718444768405282514986923602765668812059285719505592651870990604287961709325081952421563650411451075821742153781236041314507540826623170272096913150854241770907728112048043449581857922930822934522123263719732395492261906633617863994411104276698005773337639501041387805349000061191495992016338574511800611236542219223346209909196143906927616364837406061825229113462498502621386772218004219579155193417566737501281394823694972285245160833042873175520250028716998909942688172395204444695173402062827808898530671429768877165988877929632487769394093228357054094021130512413816977317791556998796917929194166648137791994273928513205372616240893887160244952761016960642402046323227770490049675200374082021383597627184218708879329108688413260939616819155620738906159659947112113405674052382358915684823010105703914215968807768596098925491263615663979558270381530989052163234272062425662125009876409528483137913268260201951259972319386702835517390843658929467802795554018287936471312017482840507194240561064374138055063848006997801470043542674386201380932149914414958392503654183006182746618500029745078272435245401553117888440709820966894937873411354939986532748413665120376421042645929692293430097961097646640417292062406637836293899549565970202829322028408286587190533273204035951172101593217949780294114871917347611128714457324913373140399408678840484104427663635746993270978269304340643634439531261242386681345959812874421077332121320820222332121286935525243772514495890467017599995158567584818229266308967358187789217245092679394405449825460413072491569185091188281443280326054181420674334746551362164763715887747626615477080216532747978898500112441223274331528052142720172514464453339178072140862302144426303527276666324066971717410937479842259429949720988120999809902290709664025759399137814344741849848493165925708128146696491736057212366742797422743111092071021316057240509777500027644119397747436787606094359597621202006623910462990285106885162551369212520644106795298677643468060780231391675563275134338638987934624628512209789259846309680936396967246517892899478058978211751299295179194120185688125843701501866126506165335654238307319916719921386123617915147692886480932433356505809055125587399329363418167516787610379385591295654570710580626505443421048680763610064597173566445001553560873039094422508810158427175835016172113026973992607812439233637529027851590406913381205189140726014779261829341195469248191550995895545672203657655700792112036584354806238542318910484932802830288380036459634526611255964922593662945288047167114816205219776492093065618668169942659531568500636941651109094025418794986685414451479980432045637800316856025229200573786273015840181741038186761602697825135761025067355585845967882949645994865432564096438863100610354140447014224761499152802837600171093511628092618214642583189404057862726038381576119499565148821399639332559964566508126110540648309259338116497763550029552505720290721540456066785852669145807815257006868298615704799019532086068314290032840662761383966559464884402426186768736381419742661876509848380959214530269492680395482352112798566361865244131187848174054557899744390219540011546438329653817019359492710610353746264637141940426631310698671431940831988449385036423409131191845416733621302711861910836045080058323118329147317767618083672606144878205504940600523272892709687205583486972414533760168269268864939620300638030739962997434115085587273678602261784588044859777369553417831473068062357020556948439325561776470882617075811699074245419326688606962773612390808017588227917758866158474408963003289609589685466103577454635717063507152144956205972743185874776886093123349619765670118221897386260355168774250273085881324407292203017349938219703327775347573598786298684876916113759145364686606699812386062371150366706900984795791722397217297938741681420107281682552170195947603636793908960480908871540154233586661375640390213870470593816723856704774853277119551846431113100498300080528270829025054214589196105789142689269407233375831867940700615792401886501023125779802537501371610458991724917191288080320741983494266567255298910762309191903758792164158195238653904852598065959265823519400618421730765816003435178880457456015848604211516841122465061387901314687290916121165319548622098511759982893492814790020040005400873692492153457017535822142730435237918226708774369503826209847741325973369117103014049419229263815443534241309275166215146767831568271898090704578034678018862781811686975828636192068316936255528119312730748443830588206322406383706759575708916863730496449774514769357078129485639979051758932912042598920395349418473836635899589918756949802538501443242374845703210557919288373499945764862695048247861016094104840372223203643456783840099156186728866818008881249084904252318969826973336884279476921836924592008600894639542561187090942887863827487429135200364302884105754159018138401113055660339605168173769161232341456756799239784351288678934614863454156552480319179650140625944551267691040857181853238266095561801640085603283231086694755441259685764066118653724021182735717032688798093137822901327085311539061974502988588382838535674682471405172197739326477766744544942439611111746691473650704119154638905343194380042552046967187640173335293115371282335444476420601550932851043564304500617132847548095008674373947235690520868954643436835664588802645681223445784882294499102258312065015404399121555304666720585773049222396598855346110178405255516008179371261483658910088446516266660214454352400690225944536716108148242681620983125322916888613968725789473568891038494257377168151561425874602153477991080458887681254068155117227036491161957855283162553769996762725645472165449525768722372079475143882386097898952256865728272140017994684628412842897887297656342368304725406162871053763418691429313690518048905116790834830061636324492333949018514739436129584503373764793893042542882974328846170191131403782920442857783133316635589729069110065535553964310909439725786393451400235758408208529128687889207997726924463272128967043277527260435651990696515701912728462333261533360604741070234126913879715809146576014617641739970134767544333415605228138616350696593503293471589206976191488483139006278556135659815427131460493194048757671917832595073798492460267692752946822579593215481427451846122567120601115582030826741633512982602472833125446890943659310278730684913573429144627225865363756233874062610081496536504009200922077518964324873692779823097438512246432278244391575695753132535624727649128908603236301313785001809941623499914664367131738725351863471736066903713334437081549798023543066015483697784022808960011355118968059767693260139508764782598890098955180636414946485098719226908099650782281827570881434563820806120651277886159717915513607851050822836161543756968516212672777026722088808311623953674744899136304461725951296473282346098544412321726183815289310534789979160653187943422485909121313168377430001762589977479900042868757450898542140248681061790384915761605326995661104340357087535551327749877273599862031098924685637346591092369679988596854154797922104660777554191246965863759708971035472815532333791616164433139630774316680773704129661176887275412340577730157846348583014257705915925672883411991694677339599116891603484566722817985928995352679802775806445934779797790872198960700364032735483116783076709750924448927765007634550627475938464759937793594345977950508496936663754973304465870604727176482862890942839945945205929504468568409439871261816408503876321328882429727488138555312169027825983381558453617621363842727123651502806808990933030017182799999813810722273543727738850503632865411157238236571114103643943568175945479677000212108048432521866695136055731305251511393877066229191894272666179994468066977457740871400848407618558711700760096816202423793395487729550972988911733718263403612334845496580910164590597164722589068295666681659131614883268436841860566188730984434280005103191856072310668878888126994903294583138617156486103659649648146656508883832670558895310191437964712679558922137216475304680685659753711874443901849954530006802192490233454936341483741528176818169851587529737528631271278526537667064194632216693784555569875231640275928667643203432645078094290642583136749398773757088845686125378089197003468947285065400782437494121836711880377754828750373413388449988253767250205308818877615756222633398826097761482266973872817291360139893251758393569900840045727222715240869148921143352649596979651901417639886663403946818253617354932195377906810595967294358148124086911711627310120843080977775673661122122687035440597427996424495252451906868674069481253957730914359005120476030152078125535030520836215611077430908269978103526034041194174272590188444583744815013590236808076050402157805572878447816099152463243481350048269674907922326790794680017204849537592707751995286547661894687119452944904640618100364937356252718389091021339023533679832009341143174605131642084878961167316858992672253212503557029743915538492280993736855018792081830436340988494444334762870953858595736473390941872457740748666540316179441196165509990047893572723074850994530150573537522016409180270870512784376875339587286765457915153098665192206279936803584563980495950930774018243767128035739359897667530063853888245237774048636832460466682006256508159898938023166627433593835033880542906678067690471699573091352405374514582496231826819539396898913406671896070822356518366448968517549287915643631596552539835614522533181941228525983129252298173802508236555591665588104695163854007588722361159448136990047826809049744430247042128389218428950767101294071987630036035638802136362606949144235471205952288296200306417859046002206740712444959307782528192610873925521705637776564896018077743151712567151122650204520587573424683052777379241281777690312930423923470455221034907868396760185280260990556219052302145825267535205884132891021187601767165176397112540807945540265863238607953365314771585747236866743292265386290085462133059112741187367820069801747867513200222905719987362936200724629822499292322021935583673005343342247298469762703837466517350531207020646430342469374781352634609548970485219817653021522494961829827716757023725119468529701141394212755788965496881091120872294531233247652078929683972863016620431317545309880607942294245657281550156596774258294848151463872515951156225602115138380387524638698187811700217251710998667252418652759909188493224082324349437046992965116747830537356133347059253023814773209689470088052088176544554780146735723477517037369857162407440870152685957880074258491322674141083036092130802578309737420111619497867721662361913658854532788665813146087970539980572874611947532510909401280476247130832815376850326423407534825917506846589958151997570689819829156515454688206067743982385880822350441319983767385037412155604461619187758797115171878051512546403337303889764144317531000976364911235798920563930508053592143233333974604643386983678293121783184417193327345522760281213912440632708847624550438497851217549822124610524783687171643160458920372061251431840124151680789015220015956727945476968855015329621156499038631400570888775924629531783174344809969225146038673387353623366380936291999694264119659340087281803939027343898145264383408617078552459928704237998924081184692375046721925222036756582256027714022089246477938935878341119756879313615801514688499005278036706830777709065730468788218801599846987598125177828893845425370798286347358936959937488541974953047425858171286478843107409822602011585233679647656239083669367664547800932362595456423527256766317940349662508398218374295567298085774919687765844190501830916137964192306346113475543354777285688293267154542907782690704966868148141705614696985426733949886748322355002754834223337210654460447447475677701021570985241496485325235063998978523054287847709478284656634418364202090757615573807049216467042261678757018286226597291574428692033094172228550891560347752223375600317820070292324128096859737750162775362307032219202378085472935734020828445347009345236261308149731312979291162160361002159399996099772174981811370988231621254239579233409975912401784006261823826284302832893836653732389045578751017630795096834900468134429036890829175858850097771705391504538550629861195247947767410493876269085116371460396135284799003520896662783496700667020658119429473145702518910383039362436951854327336706226581704398634236258428970439552044181545149706043401181754241362331287048978921416749863265850145947724943559835434310564291975389648409016427951265999211876535008048926741960234293397394276629768356294566216858634730357516785628290621417592740158267680615897585792594271480748409972324610113625414649861250693732806575030311858841474481686408979900404535270726958919258039013584256698721268032417949285290695956440059210203660264917196949701737668761269336609366239191806877833383212364888782847901854845003425823097599716100484758115794528152629033873094138696957983495215232087142316123569582278077541913715569217371155723138711999430318611872748857639970601334711582474208606691394557368776903570451900179970670206786700747233113909714364171139743650390855610545622934524438539639283823427169366177708529107408833503844979849142251610283252730205572791106882316240930651131366724756141400070010339894033831205983322318008691491404681289054849392407975035367346434554668435861825630956582185658547093306349383070600985058614500471486418032146418900841398929477939467260305870204565452638154886586907502123945319075935529446912378712439222259352018592483333590439793502504593386573664379721829565691905489641113361163873454993669105426387376918622340719268491427968796269632638780670780406681140397849812729245875289055037695906882160779517573373541557344840936295497541044811905087566941926338454378290897067966811292719134067856565673704167880017062676830764539434412703057152394839538209254816548075093091670668887810977743280935662293502839073730780670911004860429670463610337684235713202826992245765321136026933886990474510587232816982133037716532613252283781712372087870516007403403420752011810473033104415261707253010920061024236679952798295831487179687556337812489422851281920314570224217837455933218389670837282988839014753016858231066207975903910351758660186791618471029652355335925891208565749407776680320018581692711754054577684441509981917364643703601402249326566776501247565534320085770931760369802738914711029130143126859832033687809018858717090212949521571173400087789531575972242268237207255347709945245521604218567457558002014913841542326706530629186822185804292436011783704617734685742263575187711224976241013383335303535656035377129601115026948427334319216961166684564418984461728725785362759406825632177399741474331749087498741704583615019503915422135607320537041102449306282511650485496942920103549135784812783883910960348140329055069002534969234482473772881572878928603598367974373472203798408915080452123930739369599971669474604561956337853532752493995875339533945849518886569397606731356303562658487707036761680371507779030920374513488704494234538344623326673206283518077074363148530948786918092156259598899714660351478424041259486030166274566842716897768992555592560670545760851529362497848435545020310731277748778206789101842280765950019560922233773629817163490372224702649144953060391523319932673723134668957149145539961828103512634331577415616246137949787191352941404081031151202693420848282436939955124736823455287236413449698792262241455985671564422727435390516373169688235521796421228959561888082237120548215997404330603013680130823040954235424966075215374919510261620014197122431008517558988403255998583880980218762259910663344686953893109123186137195133914853515048931595650187012527520965659638066801160254461504019156387040820933526846915980484752481972085302851429057067865225613003504713091922848845143263122484021775961105810926248176896408438231168612254858095643938242765870725442041174066600217538929891687759094221552467451136809197797784164381411979975931484020492080317902669633652057867255439654930855340889398961771988383180207228860763818204735358636919071175324010102352281938769946030653150864562584186676393939758040571375252032927701258181081858813658205859996452446166165520149312410910713479427164474344343102190380382612516926467151853335260388381232856656420699125098069223176759296511781147307653290166536480080666405444902201076817119872473710592523001029921405575704326250988401104278344609301728529155145787733070551866891344880138783019685037624373144128828276888664597906714053397821278933603009239087355793842171806089446830644964864262507833503368200107721766845866308921452390497080357737539917337097016798579018592889391647174241152369667985008422781757879921243310352727439068127119287847770352522282576913172742610034470040585762929670307186889681654252229200786409158586693841312636958968024149361877335277472675332341745990599964222888020939557981019007343571944397198755843797221732098243439121683354600400480475936597869762799331439454268868713518029350505341458760929261666435692264312700852873691188117647551270416670826231517300748386723719050643735177064214730608069864486256855277116423137355815869890082864309244893224901169820725717454618442798358440660389543097626642753789884258241899114037372013036301800352602161770509073240043277106457033544236618260287341882977181676672661080193644026394813642037488115382021886446596279698081022821017761894119714776790746180524066097260476941965899854661272376006588050342920083703237582564117060710469719914610294828032733439389930801330226634510065525750545465011875625453573127141709401197608690341962934443255909028004066236430593033377626242682229862040299814579441708471133321867996266470213640439541855387741725051096782010489222046901417287502201980320981181854581307742197143056261060289196461154495538756171660651983242691602221514530278237292583984403780971095627126852512537390894228772398537578886729427524800845688977146840357077206258274834615234990881494978981264892258461064618126183750023899595665921113146358361829943798768221101752014834533234365214304447476206236362956423954371716090330106110006285294226690460076102655671292864533327920743270909176107073270507951123402834851613501519440776479431861740368417549002769706496150825976087057257165080047070538264479251959719968334616408588251991356876645774937357218119860345651969672773432246990579063809243841523198770220590011398602159210487727027438561027131903798299131954245453166967315317038868880213316672479709200136310337709936862514296853373029051061533564274960273885786704428773144984473497628025042026597739529077530260146254347766955722733954338855712708441214293489112572480469386726660043470919332998606161366526989184796553040418250764084461702614985240867595236394820130410890690645613595321134398352352893751649179657291261699443627214143714391578285655090256432954014433036666577294304133622420675522946435283024160432507302418149668180223115783323374406719964213249081094451007343533935064684441939146314749772910885449060330227144907599061159902465397272695823646917863198547198737472039490475109567503463229430632296171656110167570651825810363212379040435389650396291479719433728816089109861098177523350749809850287286187508489418532489645077371450250372744306863317180143616846537850728955562067776359239883088337629279700002081130453321082807187507030752839893184720999260433488597217799166913803453756901984156382714971904951166214988493636568964801186578788337195213052430474669349779997309427192113398478366300458470342256488031153415311870128188721934839743051419870911364502497342574536572879180293421342499471954293562652676158373810807773958809941910846196948618299955354650379538395495896508567979634579047068933708981677780741007001448692403954176359230282394219868530687156032346814107522589185237842438223410141541001329190440590701076323343805572557396926037786051660380245424327424290080002441827533124202012855301558660726519674312393759587189718444395797113819349574343461139552296547370309626758526065139687603063182207478019875442876611193536218706896080858980221997231211203230054357701260887063875651804274521286251247891552709390640998651889570247862339070527795583916482046075609113053997654820929963463049863441697103497620986347022921691912220368462795315358862565728239732561486646133726561361680771617721073841022204508579368995141463431487194531951865171170037041348475905090936864696241820768392500319242748307652679726310438349471118609662296333708880155198268086140081609492388343133404344860469364571795843667015805220026218578938248594670844020250441185925364538013486462435397109442871509623221049282908444413903985166137896961219354213061881781991373064869357793867569986241935558215230851019055908049294840649579746784962133535719489809015084711755088394411460460063915812107556879118262437941844874487052865790801160971873171533770664514055080273157230200484413721450926104659874045566675040512788705967036201894928791474609258109157647122484012417902244454650985121272240828159698557139988726505566440209645682222856008983018448174985824586336241221889242781297816106398288013366042460642863677363471664526075704363526197720531111371415507491407813290522407730009254508097755505683290249325623696977332288635328131380537606933189195600371206412718358885811635707055919867683478355420944564565861209052697679190727352281406462142534570337712214231995641370084324486603713304655766541139907347472467650343941524333177171015927807680909507304996462507410439571026125227687043012066129448642719640954230232126211209831020204615264058964865647953439705811801235617416460874066685289065013125811056933777399247534377222743978749312474282631375581656714770842475000196354953328648429576316526339435593943558704212516962026917820803875267695028415194113647946548797130913525086548260887688661936415786114705976934049178727815285809104410800053666116858174473438643914423879145221214775743500056579914060555669499236784896344352463376491294363821855170202888430754553181525434991557433936976541141044553742888318722004063984965159729796648937419465026932205870997282150437060949523904333230766632990636804073774886044284610081005967948325523735177871238459939402855601603089233575878887535360793857406395394534300641412083744615097582462431959392620338570792445757617508214463523969154552763888979201320825098603377466099619281404197974354564947210632786920840704642179979792168383689009275966092579328512725504143566193663964131325564509555768638696212644412491697653721717889473003800376588306247637951517141253656220263353565750490969398324048481683638724532331544832898103534458320024501060730329963137990126169704334156638228640371259282933066000994568176341984282539326136319005411451695957069947488512778156043256889603326035768768301023575076734488084858482165285974472406951622254228157158982115937895154939467768403826215489540380158550464845646214261815626707876423201610366626582384864037646712263427363571518018122443378942864058579060054528341795288942373135197928438411089081517624772541180876242438267159411066363701235474856625142315334073451065665796765206228322574217349158265084582505803715463543862380422412543787425913627809117628522821950113988991248606713248276751826040863232658284812919842388360273174658996944781079715605993135772528464395085485438703705447693709012647816150707398128384659811899205591043105179517489827501101151183888762861919014865765465162860258240606251634275572213419829506896544023569787157090034754105544964186966027873505385774481863487823883856440981183197590927702001241148521516909359474969901608716651220881858410625572355886733308403914263518253195531193810574616703456022408908304391128775285019190950570484634332956376671504205052927874860157499645043092358577649506436078474724357457142484599549179944102259131945447146912550225557671037647485485446112437958545217585534268802247714734329740402305032948184012828453426480481803611375697359307377990961461504694624160526152798059937749336694729166249417344862955805771406871614790942941411377585099726118464221672935910463614911275848482813310283867512065474119882760498006672755243339191305083138618389928403389578995732745635189207816015406240157928033935223278269193930201016752193176326058063910674610553676190596663539841750252055752779240279427779813723145838972449601254270786741935276999701346918035759306504010836613872976367022648997828476714852479829373366135752218326089656863047681753473951238598038721690729857576715885340893658127569096480515346904006964945045377839335779163844896195699974970317411531229243589606105700965152376660937793612813601345859455460213759453050760426068445880335925151241705158755157929715318238827401743996399510324637346095288458846869451171344406339753374477726669333638668472981497423924856298825056807881312566379515274626000027217972323825443773188264412738734744370316579004697531000137019685020803567903360923329561010271651059642340208825487305301830349572926336760700051915206046486176068308403888173209353505812987476232525532506223913262495529128512933777012438169321415273094396699811088585453021353363054850299507676588694193584322695526847068721602506730148865666847416823523125949761767750438543578891904336401691942108895908336687839812165216463016436907746663351939718610285909769669329932339322042421741938962199773885635314211998129787900523213252636572102267341015975297323942930157229419145029542795746329279377004352497061977729889859215117570895092609506562282951947793154604499440902749308830222210516290053791157337171545962521962235632579703518414956498659494811196830317674638717136775931164387988041743832467171672234588375454494786854124424357403311461517036629517850474976025404895127487834597006017623333737499264591201133412220282232521932710595192783417825081216154042307847569041135468726619646656010750469673421898543827720509277075106408123646016439658669486376928460776973363623650937879804789827479887174589646253343647377851395418530501521991840237755441266979656065081420217971267316345697249230662449682474782878276936839988380360812464376891747538964518519061575644043852158008837321442025642467102997508498410341979289190345079251226497356631658793752681025127644106859353873618463808384869660852283326700929844652898331612131599922391123049085994452712464643053044934104195934009261115210902327889457103619379741766331647454462813661643301722891384146025227071496470390527856318538236954318698997006129789526017219013908075572076250021761363037740900307177750044970157378792149981705398075174839068867657178111840672360157964096181931563817123832360901323047840136477321352169827201685241922798580336644168123596728572166062661080417361780471404975934942484336198080957303313349941510256943814850983321691345854866768462480655844567855859610554648221023527765421857401523636935437394429580415918304429828667789016163539142857925729028559908879804560580965324975168741703132950221291389413311229044974398199647311859600721769545265792046557709658971529830229114837615052223943899817723724977449375441183590968079469476277889353769447918777548339519725801387369036326138159820235428007302820697653405559142670006820827031969776117370629398708560509925361934498707351621069776193366280132045977436496353487041642438708962332438835042515787355237819287576203794280829963729128107303234253548593399240760065864890520709605294078733736092343228518276230376295380754902570037650974609717453090025052481995790161858143289583375733385909967628689189539549967557900002454530220239465221846819796600352428440377684121908132031405086875484993397948838967970195617537980550029259319117723957701302851822954661368465575755693574061187305512983460563012229944055040883019531980029576513044119390286060582317237099074462807107243256194410599348237759758154002550639611135405144694832425987033522137407932078444085347277890647118469199572157093672054696361467978399038477350221801935501897767434952246026002608878163909805676622566482057737857334969887762021268249667309308858494072282357068158364124551167756877100721531228679088462498298236878544503697931516027468260127541155685523898064493343342160344546765112993459986822659697718419818419094444376351085417341675175942263471343433014536446358778287146040973541768535726212270503842174306276554321783195402918331215322587353127871321074501618337540186813871152066450866049523005597763065504801235840039878137055832390528462552580002772461394643292918108534802202641075803025706524477195503515517499590561267751387179222357528098946075895494174627711329744372354875224599790507719624110304893103017050347578911293452863315282117958320294015139374231191485831092374411766120221367128761660674437991801998908209316249103431541290480460666360147210578961844504448621196293454615223473956206487154157431293912133954535793650788442100495306254842826753775340150637089268432923341687043103991340148224554572775001099400650866849179421460529171709817129256953650634824983680059844952384052048239780834642225655099944473727461556445099216118365476992198734070412395397339571039855291844005397002488100399586699380813882062485752832024406243698515187898984181872976528905734145511092249467028007015752288131499416096401964016627958081653965651146582857486747679099532451592082195885571650831797686700357304176187901046248294633807870520264607208110378238483050510801164824552274055004262216213456941557815415420733321935782573997929966065797725111937955881261632636794850798666516657573797458801471532432091516596737569385317305333772193680156297498257399701602703038733759667977029623635339918038116022768234469528180713987077736418668824365737539751475015378246647105396425631182456596735017582858106938787325792827604457872587273097394956083860896776280817869545196509783964453110421690208706788796364492805999545897377580512072796409076713679746862417097069630369862272583603629374740207870053948816946370256742759882076893593180565915509811141728490190304057799417004352150838728352399530703503842570527952759820009689485969541924389083611619973414035476999868701883779257051330512082147742198832407454106272810538599757266315448003249656554614414372414763205516384747828157532194308885729900279915509753885647587728490012644705601179649105770425129518515196744633999508006578119685293663829248075772702425745123664481119357767124097981434972769444890507175265461809279092145220515123866913020532095699826942408121430489430490793214317814608026531381659102964037797556212947501409347715924965042364721190074994310857812532721734805593721791325055294291412969710815655935745809013555792601835508452156848092849310050175847078153512750959162121900981237089480658675193570631254234422181090773394698895453192426450070990288134468303544182470219664579511956809710987672134104076766158516343738681214294475687311538479325255022160083568254101076031634882510284984892201989635549852945812419212552556872761698469877123902846840412605335836694611907709303361276983519633621002594923801010427047829589035779977023381671645725815397379592882456264589725288312761365852248535585278612693261342582782785860899118430963607479987754455802516266681729063652545684219113068363740880461233619522892247439587402580165199200099423632618123127329373887556514686490344811993879422946142090431137672982572009763570460825699492420024806181193116291982451009636144795267882650899614538119730021822919024570858629270066147952263633463518736892319323647218378644172058243501133859894068139114742835472480286147158290168356135288541510959956039288295503088155229616608055041380591843297486357305734126205873944082664448297554313915456594556695042421046626728908337597556588960783151464870205796416221636550744884582871715985894603599089603771477752407740870313861515360611243065747527440341132894714625250453967736142813332126617699633854098284377248080479882406432510081923622668325527439472744770316124831710926085122764392365510332041515130593354605059700231814100810750580421068991040525379854635694419881286139008744762123192209361193653816780446923612580522962629770456986930062260596325274090435604048377077424728385659000286978216149279738541869103193371437381400514034485605045741432437828343424898602229695003009330353040116666284453836737987997400627312691265850242367124001064104341780090345357858380611857992756033952663030040796903482658171789342875748376886134196736778619439037217876719130106452989880972471161942902304681945521255434552485162413832662586318868180454804130456521679043987348934964074290647710398635794148757881962969329562337767993260771174967080662362382501886397194362022347911723170460176447252385523303778846772134796099636000532780734054917207918315798443141794422013739747916120959990533837961061959739472270090918720160535408136854657522462115813773907473787149352087200244214866566135338683682549124068408995237292279332692375139996773948164454448425441560274143931395290367627739113845688783307338921043516643922103945148445436582188242942380411085942567215838004632425888955049458559057195772882034048630411774082056994895806359853705543421421544671885957300842138946607330227566941185844702393892908422940085969873033303618170155270437440450718922779328365209383226928310138478467802163425459054241165635116230113967977681290343046680472375566999176433472068309032154120719289964396882054850964961026749245958804895078875843401262250871029470229127382471894828496312347257614198592541964190265438695672628997279622238917023884409708149151253829378920217536540816377266263471719457027405728688848769070536816067875585725728976520221172673911072984625507855792481998925997391833478149589530755074192528859143810563760696229815209983404111101989904338655229549318485567884777820837807553838493449181766632725417377466578558474019228288932150627640292367599527758780475581442008881143093260876173620833175106582356090595049030573447323279910080697992510651315001194386567638876744032117765542872715629426384042691458859783199350137196573744596630863414305126782905315050242214572678956493307670476787169155383533186098948183957587523871349772507319892875124277976497745733122301534873665345625242104525481892079922481508468692135130337235341475841808374958863573729892224814559882432878767014190530330716954843606088484805498764369372277903268466033665118808569643589495288329537793867460037943550062100136451709830707010011499150301831363311369823142629632473827781015228281908087633019547515921715302427175414863079611953626814291311192698353940326787495147588092027284480344388834685929699984246140385304386481870519716207725130722008327932963553092376424843922408053142193406476396713670679766329609842744472314995489953389766085236168490571496146250409575481657300915732988042110973250278566708335509763623004803966858365281929245726129188458703707721120531873657728838612205927949777849338845594851268098300541789327586548656504079342447871020176963850188277480694131716730491548180029078903186547870004003279020243263350631704801714877066423893056632914628026931918599712789652909975547403686896051389926733704892021314313585471680814999070159577502659768986970637799031078212768347544049052150171223500864579298676328615449960997972737796115012557228344634509431430979155498495248328382097096774074043899902117627838115080782527043000480993212238295268339080386114789779305415295179231994923133854836723729053422431044111633194985161874149355632480907970336733212840375216536549132366080865307988946283701600804253602226676063556491258708493192794172491437373066610209839488693680387829713708442006327551655620747818447555867568111356767186186286641777718953725470003163317016708176481096872946008125276696986604842607994568606713351108589435635696456044951739258686268647924855867322119902621656306478966594929197109990738591016832916694432853852237256390514167996384250713543802394542654057342751472204580901969017740526142526463175750025546382666442149420552515957956575191259036632742320812942394064538517273098841794459801111614838506920742752880027274097442099059062058441851012229035340780719692836328990994795090695606276358370128385653284530951387005727410264385628026347227627049007941773262448645150106616118038570940199575582678487928976191790274607130659123410139243036219745392646820910281670597518158468961081751669870130206083796477132913076007827648982793853138636293074087878364367315636021368086320156372301777244255426532627736099713348192682421041411358408858134767915539805511571336916031363480210277120924447994543289398452132985328368441976134311172342321388555895930607225860505946821697248060943224605942265921365939999562001939845338469329239578683082063785923286973799576344368508573688213710113750360571531533025387927452812598036515826534633285293230644855102746990398901123214663297469918017551365933953582944201336119897801347293932849407079203857047300984644928402827293832612525995564161727026690511886239896982674435631866314079610655669148017500115361575928167106057598383891210893637662888576190074070381215330346332963451486391117557128771033922285961157182551114311643660250440074574852143989005010688827049782194619566459811618257253787321143160405148149526061990166982708077934905761587340043335890870636861286491793856528104037888915377035328273933811509284589069602531584189781987699529734006260232398608136323928828687988781963367455629868216508391588640038482518230156931512458231633989082777440802136635762716796637487881031451918827875597734713669200016968524690027972942366413919624265239167319404159882005597365667301403147064321593936736179175417865379652170157453280688045292473027612131561676762128552033295598891213036870577073624603775872028005565981358041241582414142217980250038813846993501730101966093820098855833201571206133412160692598081035906800467590911224220360643904431841702157390138789705953966561742049866203010221315449630481383634259914882322928097925999013315652483320588512779829107227705433723106498975109993298492258103651070764498736722146878885995490772601678621949168653267604951565662355310755271880766219233699524611820583912016399237902220725078567364257343536057204937434362864034997683350314739211829159953361348682039408175522906171048677634224924615674194645038430834783288392471904833413358094442928174059165226416036643148756598211873707046767884290307441214746203085649217229570076713415085448420713076796633417715901633114499847855489620292757629223394534273832094969382568276142992686084466961947947569161294304875312227763732094195977502914250652540441383233205997310927010775846306868438226162585426261805636575881004605336694345828174208034205917611463853736857891733697109283438220572610534159020942374476177965404017984435717358213888384051714007783517392782800289157835888002526364652765047764605383012293532544004086364787565512535536654540711328753801451187478343071827541978660163937356861273359285420413425517622858719133226340274215899090462018576235956880202154243030201877442582533932643853715007836963334015048784959539188825917573903625193611459656467319647470844825799565271335288238177136219408358066593960040532406926016726614003503269241138903283062985792513402208252923691302983196592760512950821906834943135909671748325225586807734239008802584731945893925643172543972383776810279636589657741253705350689047115262597696213355531837602339025377562775814179882103472409040722700004583437613709901908860812597012674748828868085025562811705543933635339043909990997194000153889840167175750122600063967991200173399373807762749651691116083117057592219670309359212638089665183444428320982765255954604348296110753974847720773928714281399202286072595188410786369643293155559335724873101341275910338193594746976286398414239265321398171028103332823501594771121396618281668571419335596236642591902513329110811849304962895772406906653174070456030361730887298486465409067905958186990356620692911493433818998685868128620764786072775007453528854057939444456344422723585691230742824655779683501702810303651768312735580340376596143754220325405835635946685444090020344677855623694396904185888812905975379076229658664726052219260635611482615011040257903347821993667525832216758090433455796608809412792008626112108920218837269995415546852305483892617625035505258361935399923074683084421447412568009681164065545700840770344928476826686660215962032576560695855464989702999980865521949632352947184982496788818943066464929295008208875592524419068244834493194202732320706092511527083214932353762491122233192960409540732052887760714017617536948580554938312056116356829387685984256850628843387654903279387018366126522732473581351843406339376759664723351125697039273554327086317153550711191875441324790741891329577218289886795820118361582275866954231790029967765193755060443461761342181505661236516666921392567041576737550348378177148596654262449283501447137829359211810670161941766330810655556880240793789344460215229178253003815244365775951401561828605330442681639058514007524795423763250713797846610594532996543131614301759501155134366623262128564907904130732683610509767108697619516506008672015759490334020000154102493276106905372932361031781632008026161637076093920047586525367042159861276600471862430840612146388070150117804487940348644586387032292412567507218952425345399851288713018182584162992473073539262639226591025153589735430736840784967774165672969009154814477369056026535344649439402345976186248724270899664366441001199878593424733616883092439217651222075698733598439602535006903673578026908947204360861621583207403113228468781664436180841887973634657935296399582969617527779794996813068608122800908584218711321453757143808850032340954034008550837671089749841303445563363831001257982715091324777900184069263337213375813824761375012973046536969398312231121056833864829631173821449346728642348986982076019865762720431924881480728206879405538768030617765821272217848602060213922308343813703414160753818767030969999617253406815208576308545144611057963983445477261459824684196940179382269643083792731191880415332857895356995973613623401985689855274215618336890786481460811154291366597584493498797507673942912475393793482483433750618126362093820571370202439621932295847735390900138863455961580518806007386613036966491345628781338596166342349921651285401114502911235494350424183169124663663868569760861843801934007934746379673658979789948447188802884371612258792497142062944683525979583698040306105858110270365140529342957066975180302883479759115627004556051617620533893411077889985771797722914475807013531384763031344239442024317980115943244246141643288703990971330316638256557223317275922024690151081574692846511164576728228558037120202915788350130689659193180049543947163549244828013792508601292866940907275478682986606367499009411941082373763934128891555002887121169461930530730469822048923210207957352375145754653863512840580447454011673301538570723866716914690393881533703744045070295501596846949925939312442273962182356415344452013333802410344736409923647619945414281800201555426704805256860981981787425732830933759673128971058687083600942987668242110950035951804260075154095833431770248532545631867093010563735074690091862182245205119863960319068133729596724011135716857306368185379599595412305668122144827106578514961747997464834335041999982253030405069068745335506408905963966942560256271949690092790954039897444713709573589970182249062680654640769839717549254233481627696050545122361484191371932381653235640975173726385405008259730889290659399972314717884768087424490983155755272919885374480301503598986919646429120547077311287018819185513168527666021029495467366997137638549818679001781145584010727211234720244907746739876801396486257269520857917666200506543272794745873210888567356053865029755946089480238266873131400954905718230928083684418917038646886414032936120532333888371584148678947801558141614411656602029383339090144747874907161945569762515093118798329593969450536785395376050849212652811398442633246164747801738589290078088607318387106390646816922358718033356165152475841816005073340889778019988935760711517526100245627812516166513321431070177342815034694516146307452990107081496820013407450880564153172987087814691102593609649538587270466362635748605247257179570680714996634088942115485745745822814912616619998931663741946858764346132361880218898804237654658964415375378575782417865303325557152291810198292155737124016898926361725681332216668801306503592107653894553100003418517677504355522760484361525132850344823420842642347690171983784313409599516719841557588117623395352176622485382479443779297464227192190975248007882408243768441291592173495260557922166192897609131432411176899482671186642906995831095622355761341372675542724480750905839558882132599792621539720498549757892685914345469389953201457151335416888845022583523543799451015343318873171385787470215312655603083018731549105845399223099955857566788350240366442453185467324731593301432925207465335765609272157424407535585020403798242727838896577073270106123557945781303246639647773991659105408253826840687417011138677625933398940534430387211572097075116342836692261969942647626776134297235549597643592883795933048737914850736417503983860839145156375152661519173659558935336168745749755320729168565601724003688990595209046283484621285002895449961623543903885142507292729797156590971269238894612935395332782538002057674163802577968882935676103920765274541783271480194442665888466535424623641248775285347574585893817107522284075438653934093960671556181116286846938699534760863748110521177707952436187674107704384640194531928873577633328479523249133130192155688506594448178134203312452367482021831397414742696938893818853695565253727793747919375068396282144633824927467779427058313913824724639181201112153799209900647133919077058845984674959618284369875299547016170212050707303089138502773959223686040247161447048990769116234677797208284948796670728420699172418002513439456438600601462277953244506158207406689281196630529311120938994495164409612244316923857709854545875573079944482599067961927724730194921608978023891513676468604864956143437881621313376126569553218819438708105252972644856890999662714559034463009839455454084597906693483263023296326301391912711036179153291878631266493981293579583841133603442850348513047716453847033298751882316104790706185270721399725658836900057189811622776705214921172717706769405771817885784012154883513188765287181625784890313970341624891588691868775460733820390424048945795334234066228069273134138838074117552431712611176277752617154936996304377860129100058389206999994111819830087369383472858724567991107919720714440707599545460435358764561265917704471741627419144584337113840686815446192148522048784254180984829970120117150838186240342144371852438926754615695590480881544395700811342714154164844732166522802427201706811849762747134363692591621587542847748289588485707507720330343574848564614078884722489986733353552424629130070399486427184182319515477879519283563497836996438366095370340512734167537289659499734982084881637681343249485028468432257085881669818417451643152467611321548769352032466877982947282933951653186408018572066044181878105058493135919638950008386114344248223719010451372371972100755445082792070550567901173822488322181683344887649776240965065596991856552633086411053251918294015450906465572746963491912709725312093768904035533102719221939446527089115826436003897953903199329368640109717481682950652556087370841464544166279924687293532843716402919661306984907293826350862966133079723256170207604478395102498456252387319022938313317716149889068039730930290307445060292946332732152340031739104177675674991918723317573099000844092035582646740224691918007502729047446763370011904881613670714741889371113613198007806855862089079673646851540037818133454614841030810958298406114362846647291758668859373159690825474540665478345024393734383810753270231792598309382531854505321497930249037871057170601452839185355100427204981744184063217952424276842760560896229973457478682455749018156191864651454098050985883993450966927982549888893158569907151598266968059474049765390486875126565964175962019910478078861997499757484510975905123578001499242034041747923475307628304047005802444887232526480709109934108431583496582475883191021805131045675744830005723928768930023049559679364114396688495048271924117464517232176795516413247837496511021635741212435051312807116583447069712336561304424853591708108331289179680250504060668008565788078862977761674368147946724346473261350077731371843764089397360128188865817863078867210530953989116434214024708049089761694707802336805840711974095702444650194837560774084308937036019449734644133786470637222871029379624309962575840921697976142793388220948091241085469302510544059926257492255340356290239538683289432809724197453283724086836546317635113908440316104674079383324712891846557563597547353666372935948302282752858008252121720611764680811381436589759047232265259203202390976400127061765271482145415597755280795972814603473992012590728246475201282645601426996757777915724233896205501113817635700526195247718836544072566438240655993614150049987417813924001868835821467135631848680933152679069915408238933627688662432414676768215620073062878750124710163434413311999610627538252816681329152534982481017358421598402520500007329131438044585251432091122904831553303216793432263906309897054548039794113664011739592427776252036282626944693927965732037522269088288504586962380283969974456301950744607970408982164338635907822861231139398552852972485067918811388413505637160885113577155729495434550940718630020549430129765589329122792441528798133965493163983618205795903202943853027711427717497046460101370012178674172965521729301048953668777833836831923761292253501788548211803561499191695073982384879013762226232187616850179251031759666718825401208271833417380055508637644479877145995994476837225562361788134375551785440330526035124333913689243077615587267468586553944870905314193756522906638570953776923084729169710003579754709780929809069053115751717821310137667482011443350056740473382282273287032722746851685638992836939493802398512824855880197728720144833224234239635049307267708533945470885108631037088839713498389954968570134117630540589656311843530722364856936991248520763709044284634830690982454681832063405499762351536907046831978076832013462960023725520586917055963903120764345636963301991649315506366438755330513912515170790900818753119660417671461655663828748168357174102772945985848384097478873997963835593956301036775170929949827422490370914165633319449742117034449225342993966694166150628044112481622071904599996244098161270088689465098243745681524550662738410501373071159224779855968280185042793428607809441878195486947557408000345575496503634939186733506656413958876720081548884228063542235899520742517781008917339332680137563375556623698813412764260066104499827454430504872287562701072478230028876912025119798262095034653564224920049367276618911303290200169395142285312943338362810162105429679080263047745831453665995997770290478627179999812887040366591922013987797340927469075517141523167292955394151472136255427542378697044096017162341609991564048065425495214837073738333754512399031256767320275322354825707020464258978367306173281949128420873366444481637636176612344956793432835512333946844324019196183371101543846579241979364926520175605487308621900761387034167424505857278073706415209288290766549622623265764333113466676344476947595365322130027378693154473034411479929443402562829102134431960392491591825234443005202693963699124872935769322206417050749935464778591642773324873252686568255121331354763556028596968223608151240238865972094609712172374373351060669849175613451678512495583950920883621562549450967459177668779135947910643533848748755180499353425750052745090944886723780288916994516936095931449213923571195347104802560339226746392583309035150989586294972514396356430991034862466472643349086532441374613938040553776351531759680537246277444021791594805915161634316203423808658131089928440391476462433761034039342400759320293308291059643466637461036124607626053904243257876393198631181852877681668410476176357349582513465562996867057562784454730539731109328376839830082437395650905626171096543037665937994223757236207203125135531986614343021830988376101729245452029352425236147891063317046903790897456067732547120756350035528528012441082614597090166288277731319635853690930996330096056547242874297291392198404675378730714769619765758479641332746962224396354160039013053098558474196454782395413088744994481259179029969374653232421591705765010224782262511982501883678404770213865369619223025752285993184812731164307165115782924179620725520116195583328252052441719623569615080967246284755768812383883637481695582465896099225248951919432527659093964364814530681451932968591696348685253283066497013460603074800832131152176270109916676402951317039291509762670457246033618777721706509356857286327546305731699452751615720109104131060002240347190134856548238886882321154034961490566970144572230017174041869113562311710147928743095769343283696851236833328930073029631165245815398781803696744655975093916505515789576225788924022440025788067765137503435227012399225224474274795636459958954093966975540787817523724413701056608220472472508416355268059603061357141961310924881694138275253617804753370706145156849846418058965548993207125817984657204638125428911026033831634338068431606102601290450650088224651981762469404561839021750453849551798177724623595169674306089613680403932733132105324345522773404488985267541814249881265379661266424145996826232369887048812554863878140341936282311701507666814846100925711957567301408966261728217576847472065412659926896830481177576771470443538105340612676596340695995804804544100922684228034536824736591341178248464345223868273128667793121889494219176536922723183375100183385208278604869600450770695133362507263844031232812108823543583030055791216423125131367443260094640864479241611334132492447557798963669475405575480534297509430097272460801517447078217759840475162503975242271921586175266420090815394853506252239386709904878507228757472132101159930882586334388196158979862100638212585649882947420258529811649772601120136761935686564614529487430485014410894324980766996468841929754212661663991584580683511177842400056782737203809634523674837227910852584886233703755340387158466948189328477666054660145878746501932475818600128180096748315759597096974099584387115769594922110664256508769462109297292387309084366308403561732763929043523239010067605017675524344959503435221212291471770519284205174949164689803548128416375757052669621297152209088291061919403592518581958096333931395345107128930189867026948717247145557232564807701263489413095403282595018274873240536915556085691168054286435621096576560752223214009047335852070374698445322945901126730488364146807163632860631732503839834027828171790567947450862864174436913322640908597046066667667840835817613721775289172433544618930287634764082182926344817443128965340406794732699998905712891739681125227216168298532662401063034082518900104451062769199722021348379573401933143915073412284431017369697009294603382322194448881537766969432348517448229094634808144034549027610268971715565383480396903673739513720067456295356425781403704335896559383551549771907206663955766184674914663849359976740066604865046148059984908762152468598627928708274191363684314218634118592588897813436508503584008363738892179749859804509831952076724424673527686274591988215687803388899098438159217850830637943441697788444348037097639336833347350741449802944228412753100727358719881116804154133686651585466869420188231315304705539043260361811038563421302427077916413265513823797488444184783255771674961836234228301605397418804795273003386983146777622564013614461995131327699364659181965749695165126738422801467170141969254845940781253471932333153106542557398640844522115104929525255143694290438480272812036306775532418769513693760921738022457390788077861009305630526328587605093320692502400179812933962996085281662399934072886955359999071732592945120653144938672972796951856469619217392364412656741880419948625732802297512323510929789133919975169291607065413911953343803041144890260689226448987405252548848565538628304711923199019224281710827462783640849828631123193078820806736787954368619436385432707380752382299192823149473340859649982111194961734224613571236005532605353395489080753620123990698938248012256921203750361718041173102281931371030586322908013801798916771612884639447719706240437634682608727841636878037983937304583560532542294090599763787550423198369553219438960393757551424501460069685523999850531750690118655284793417019044813242223152081396977312942874265145079022410854242917618807835215336070530607841078220001701347636382364449312389595430378766911481838780348664304721171342584792999612068632916763031030672831211952860772179867813570223271751640561077982832388458831026816737817718704502824200943946108528522571047745186054963859147729434761906841230718526763369659121724933765991124329310415369403602520475530513040746694139557564110418811090895835552537848964435257189592420906818223617845340686103093709754520954501816516235693703306638382755562203552413433535177439698779690205714402290837523831807701217961895135732678513635298520229322224195838785201717656962972924182454502166347076227456380134552034075922338159423020537093041807698913474755896236425822671997598726732746946642228146495363196616733351906734155487587270274714050046057495666309679909537228656150414818354219390785179866525941990891175149268849996354859626762940355610172143463633619045727206425265512908720685783656499244420511290929643852389045234645631863722208888725929467271408255195491202004693410674338203360189029451604160848296084160471857175576231489506157828428284515878815168718518801390417688093228010011164909396684785159890244968621726772873556517501349990178383725219976024505555647880711784496000712413208294758065513219841592385017909250908562786466734110074356159973260086260978539476702029613766278897542162408784915057607093290139150424583986061261919567446682843895074240956090500530374928371670422584522538174586797440864322568513546936111286798438448603826901951583277696314848191594438137086362714539652658153990267489901363750897270535080727600641102540338314152248399269656244125419464170338250431248306306570601564094268971234612865973251187202921000863262772940261422570433229797368288861894357176194335883183416029149429805400428670150561741248063814366244821051658088216774709303933831983167940192683749905756260299661601540478205733055090647281269733978890824084981876808956240126458520737906691787326406114611861275641328256080615576064286420318488070099992903236259596921483036716624725142264425314825122160725489062906565110953608810697469914703379220335805045627384469191568622063643333316017634878682811157816177608772596331527562586911117157795852131764665967708512872114019610895855091432446792009140670518503426821565511757558290554108175576056126828788755486033537803026266484302519664897608451583072277889860589262476585566000849517550222637286883147925761628685893382240833747922911714010699659162286924830875747281013031432025434294369342352274337104972721155252700434289057053085046837427895963256592060081470830621216026491742998464576468618474214088717992280795904385650819950769771840170269210343807663085443672549200535896662415079570704329539323935030403507688464512712439500740932692367259342685259987692225085527171835240983427700997819502082518120225411120650332497189893982425536632097334098269392904407889484495410094976944089953367307373813828820755744166129728110905062659193715056859577581256456178476043032893216552270037599064095299996759888679192652866354200431329787323120907695957172361012323244971061560732605287943531440532349659137994689513811377203097985465723851887486446879996711517359196970463945803681827126552456634952075181806454289197716846042059416870579565684009763021726787425214110748348736756319400589787597157486538319293249498111942766053922656240670476873444387662221053570660267111859793670552166172658875718932834327188469230076447461692868568717769034488194005104366146787337643194672744953584701812870645657094706291143462528309201502353846425313537385715856157544322317878882289558598654650755254252385070340908294767952990344885579975864063529320309841874788001077922787893391412019732366058940290063751045985199374202240295760097979686394668391303148161345060506565764361225144262978044591992640947293844391466631416465996059359523954508179317281330828967583123111769648258591022749912369279695646534235555693076319783173580918353151457547588642662878657134873130351002400688240853103569027048378045915896046434075493594988276156694795222844690999973036445316282492950897021175496433165455745770819828807362822390694766650666426774152581133715783476046637323615900239777831588519488717476065213949757430895390344175900898731280553175458860377439990109932445291622977613427605135307360641241420543738608448603521370077440186815940754819765072677385613521116598935092361127292079571241536992857379919049892214548234571596587151393866632894415806600193938577005385666292689284283454861237111441967301418503070501828732928633960978451388110816117492802943629162629985911142618314917465494716862291327764971332765495486931499640026523934769932503429548677802604998528849614078606548936533133713819870239847681616332597749528410120708105340559339530443183605224021178969042834671295192333156463728905345578713402041696844736510850780445141295200827150300987284135861397353100592367548838264332134289364350759121838337787796657939637068145117189557009326207640655158795248174356499825435632349311743881937306711750483876852081427368253054040290093906851907857468671443838263105962966350528675216289074076657224431718560636900153060747583501633056488813509353717515535761476331047837332449397869362524152886635834678541277916079486808240859087637130926618854172483635902789503313585404171526306007833767379033942327471119695964951376706284844152243202564290231538101960603093407952641912229020310742443478368651765434391552638326164094701305238326775614974742663313687315903842824760325609303815359525483602719181189186498983236108529681491812953029844224688649719083851816611553786168798869037077163437545497696073738801229045536457820655063883651686399257280634875525850560928172272991812755211150949398362634011334153960067220281737360481863263258214115412408068314185988527338522286518234307222078227624390464276711530016382433075441123260071014331230727456122918247795932762542051271294126802308707384968787653351196199553539270106270619952957989927088302270694358853096263376684285586262252104597601813912040007336393091889811679349258084630934182134546744569022051564766301109285180572761971284146147456593899143248449221562589962822735839151241467929030053153534712618225394818897713092909162567562015879068140449761660606625828796088161024589151495400672924023042512573855976597099429602395673834450122497146472026873699310375275290097581273283247127101606888745270782950906731104516306130780877950254292874389301692678469691612160999491349711193853678186730136041106184134985580246801914154451156174212763893722762438260490376795252111972257700820278680631140787141487738314510247888521554035615824775197279407323754243204323220268358868684174865613711365419264915506255897669448636498020832556208202391581487226851631995356219787061979730527080171451074695416389866907539373737053540816895143641855606977470754157162602176172619004774375688224294420574089723592705322444283991668765022196792728854444296199323093221633673840956763436322687928685774069002204707372993253854817417616645288626854364955946393437571062261425882542813966547464584756009131424675662719221161802288778869122636154622857663409307887188030432129548484894273024600054581038044298422653204614655727562696514998717695243976343302875407380344384528647084335865637975070120600297658995433497121444222894882354099826372395750096468333968195405680131568798326490498772723330993662180683890955579023014267321306723622444101705162205574140546767614646694828462882028964874722676609639468003524474101128573946978604284795511056211230800518154178143819590007484165808824294153975197377907661044218595296742449972986885597475233887198323732396179740714402754529574951448276510369556884762185226505524313611790453319504682498392841895196512248031052935134482223110439973300127354176412988182161135692311096409340494031096792152465487550177371190278060570929263381531729395176798600269133657309588579776315002758443339539689066019516327988879026305716615650922024394539192995916775434036677831459791390961393488256779950301989459901555703368163035535721977284162066531305526105256344928053601675990085781300367112020968565517032061738014868561741868995572656668063374466232015045472910123253829754333863986105123427408747115900915482761930298151157386510427172785997693367760775050059909250918820039680150091018513312368205076538379280313552263237401552726899116494578448144229538284583823510506850614619030939627135951725059109758137074880488433485026918393011663676243563422358367851863046370920200803632580869702524773985941742596406230455477457975582171899353632772507586737578060017600078989472158884493383299208365436014116795609764082305043171444557091168511301979579772106450503812280544856132345046766935110946258073415387917806994140976433397897527702276297296330971429961027004821500034979206930376157079845991069869396608692147208941430680804275234964172156051686774914798847345508688640731922385150972824384844163080560340793632746738021329612381327095762058912102665037158215355514635583204944359635717302279454952503038173783746847665358883132695639140226655036859302553148642880516166788938434392582908671477376867680291316718366456862008580221999055969896077123267770669756506539767920809022855828787148394218490515503603012728707845250305119745312274514694238467779010020389869158789645654937864023194983322553658147142537261699693593449337429497700990694101783250386719216222656155168252666107659718622423637926556609340409534334355139436694079536674863006802737001569989866701326415710918904046554792860294528531029086850088779959636211691829764651556680559883741443634068839014293693511503204280300703261855401552623926213734689195600292013440737426347357288654541626468012981303913360647420163349569345165564423535053888308347428308523425474237404802999544579910780267397588160029080354039348089879111039667484912230136845255305932533280254871671368189911424994363431221191809304885071673132648852689394005803689069341758059561941238651316290724799983094636423488020565233478639857282144557570792703018509327039761845896185706840686450618346156269068121717097209993814487018644778145290104136585744968554440273199297672170426296909043933603732099885352135265303510325026336932389283060338943247815794579279558437816813091294638560272312585479501476179601223810262879025934665295352413511681037691267070927937405316198174417992035055748470168875652421994211280008695489538946558050570914532409158811159911425463088124337705075034685238750557838661325857288282686521872112904912994142150778575548524787017289145594993320583132303086868826093345929024503274508346560378784949228426517628661535959757476492270708922766075986397561613861382135737186569808497696578902692295908519801131735530560595531902753822972863874281004830993673357023606899037455898775339860127251264102725141170091230824006627622120412094148241316336168992082434125166850560769288639479033514832402512928961258936442400786240411359105327072736212753510815776534298419574861793614833299101055897094769917634493326760588156072580097888029946182128491475205527798852138836386712057416733054641220801996577740575538083046821335492475358887176216351761923422615004544941951372996621433694393479012613017770106719834727070891005389213978596568089554109129833351970556923622179006077620761292520326134920866771359002928448060365165332213874835029189238774854003803525919662006474908167464302102145402329733131951518115551581633918851156473775262487434303721706157163705006831065452824868720243477308780923172698213571433154093251539071344129514950686158585398630523831534157963554322359059785457697533527545372716851109848527480468494198233238410005612435078965788354052531354687934973589814395410722820099008073819256015686449873166820980871035446769404491388400402420059550695145659555317254140652026888632587451185553053926492545581525516648205770139088503579503416538176086238103923781409179322748441811672700219056754126623094183591715033994299325089375948841985176111293842522461805467617438392632513911915228278045893598175196565984049847821378565146801329052963129670242259490600283536571957001186118775252716001013119585244577196461560298634887628804922245674008757149501180956413081216937923723795752142918930783316493226829678010976848078522118020003832455530289814260277076443498177643224823695254197239615775816264428144750005920584740471115901205932847575918077474271901683015508386861913410033868239315619947003300270727572186980537753444805855840054215086701385046764091201363326578063360489662655182805694567766585484001734276316742384577731132369782743784388387709642856501543865015388170149818969491919144170984771014484986156639016868105682045994944029293337291317461605815857397853901727013935909437917265342138574717185981541275239559240119546927729663231633862260659780038210979289838561860156327496358707691470539010345862256955546631460486051002838695419400503992512552856909511192417929536000971253082282887444299580025967305565200926482416986741303596238892355920581141247094073644673897912933664770133072046548167803797226192512941027994105040320267810858036288347170792547852749525276775644526720353215951682254347324194157967116782112620684278311465771652911479389506759598615943227514510026962010059427844030725513545514813184697149154522576784936915446557874434783527576628577417838296580777234853255856920895843241446903835712348522357638381780908754310600648279100174155645181451792239000068884275612319149751316131842343294781777326954079722238350693781411958287367323042355302817665448684284307542740495232179269370521975168094138021762609592332711769394327681230349257101872756652943825532925759271447026661350292179984243197075413860281150390193613344794197893014763597781406971889931332568512135344961066722913508671369416475443588137603966429793802726770313987341170861880908433671339095395418974202894700303345008040508958237359613430986589237344889197416705177926022100744164789877040282434400767926383213920760377717319051448167609236726742649193213044830757253796784872104799411281109384110278526329544025869114480581578149006896469538617734491671196301871893942653924826587418423366526472951327584307058801581360584389666663747315997938817487579321725628389556434577763889150276916336344732280402945061414771256635758251278188717825488716246330576898465388222877794412967432305087346200820707270855547564612698949462717769749197982471479906126502236391506049137744412704037232055351613498514265026239468290115873605983700451391424234803323385516279251790164451271617807251475803123528952948939743280007389419699555286517020480246565209850736506696599371971808347889805492189008951481343944625061336232142937163153248135728408610134778636884069982919167300324023675569084087275127938984431111266635733644472646364644628542812536347723395860816441539349323473018056139833977052586922063595322862104362621180702356725000474496700821102112118011380749526233401227297938858770411066571959571123870878387485738838553362173420711345477865252524802440832024567232050664969432255275694017123036695733347760379332185281690776171614033369256471456627537446272340631030106644912416814798047293765658231828891866535176174023204248458634398301626043651849725407637782919800291248990002548294536876723497793024879274621858356422927632061072423223353898453182909995275308943535902790079736470911655987565396161600417227599418055377296096629185664923648556928699640546585418345115584191814324245098718348297729663697001138284942304293578841835036800138573830566159904853279949185753611574141755550316739923631940235427983056784002095598788361895486080902903423580730734662236567521011512220720519826877092763082252881242723377025124859462073157528435471302055837489252156406023162673446262183918565430305233142420294526590513042039617449890492210954842975955779683496813015670088588831793778562203014593175808951311498774054852839987681519123627161774807476701636049968481286248602993214997725197265477217323780845288456700869473127888848263677913819345983414375184647191064429497268529976064008861392548287224143222487419306609112737405421024027324999379850949409779994662336488996623467034280143451008907708055888087735728760111593558061247805939030605949133388839510634432443264263474101501928411467346598997179387925078695333020124973394290434577418019740326423632615981960993918654776759453773285121884471217089177620162993178573510911209140508093594546152154617424919950881049094846555464945236272415305307342004036879662704196205467106184371343365530731465118590112381831926035530017756375994233466118868716460303351338579877100047276673263104162452390657786992110250113801636534088073850505171074840088806529534807965178259168845194863231134634320707442337797182471484734855120963008926258805059150216273860585587364651813219220864690856022978237064222075547060520624543344144900392424510363999802163011386155137843303211614933296432941989562318727839472165341890768686286077661945941752284160641658930696331379830934886606846722419817438656482546876438852815840717599094702436689257399234580679295962218460827121602094217729273656256491001924359716216181572946988926620320902356526068853995439328511371697907670522494018499962762654644102370897811555383874166790908557861843766082483464024988130453286163169042083208344215659904729463747647434195700242876502868368985419453235125130233318884649450518571694427744834803503811417929603194669969600433143855458485657719583706874779602329997981518697213707696381145841574823760677278443404657133480447572995083084685835862076020083203462514053853300406595198206597466434794137337397504844435624936192093284222781285337874319521654481086411072475176322762508190803575609905040474375943549787437278834036801477086319857786817866291769288890392979844029987679821745727559897393300405267813199986807114702032356922495084032680111780097839015044042990449169618478949413446242723791213203779552033021397832855020915027744435490457254897069360635093431534342219639466932419121494668180325683746180049536746706272050689906540577654185666999856077971221912530741700453055380963580133110270382969514876415533955947310856560281251470501186878036736627346318225487299394524412044804354039180192471194671296653657336391569385419432694712035550833795198606438087793894113479916249484881235918299969489418168353090144753835790285843340381587534051905496656558065109306792860965277189545867882240409148431094939536027306049389090050222267015808674568931910228453542078611029771915257507569506156554385687846360935296579940889837831078740258801831626566406025288441731754486891654516549685929573339110060648948814968420085173116345860207321612827929049539773053598629538206698076095958016521329755385567332483805042816897523408751975337448602595814453263624817361386717798100444957513286995170565269883127178969516784747642535352151028403929551321216031027686158634331298727804788587272494522285905013207730820119472526645133915760046326604823775550828638031996472356173613833931690825211952478641987905917632833342835876718486230848691881226929010549778479740453928498108073448794464839897930992526649795235279203310665051069472666120317507654215036134169732840362131504269176493712845846849945182291981586644179347007377546102218178253503170662829677203722661699389972787605758062468861788387448985457509964828262708947002549580799279488361566433896381676372546259667928532666721572772625322544804881281006750009001813913933195238063520296602516116757633433125315111424980868431267267386418791736462511339551689716224934049432853904386220505280225218453405479594133983186977195328450352502425952357474509637029195029521972815248510531873859939003050531832522544089943248904676114585394554424193776588264378142444338119606821463112036721141841779275504618031878641092727025510709682946955230676743935186953583072296606640885764636426037207932235100547663091596909534212590817767764234551385687777843265113701290792371775963691404359135542532573396659240053954350329587414081069430209550116435375446852289379695730451945627255753096220974324274305562571956413894940697272883297020675542461698446106343441910723678498567492913757992865304398204174120276986306924094972236593991470973855133305168887895314117391632085888526412166345614231576605270686133716049829791601481686140461974735997456106143901872355754288087975659061227722561254863499606926060926607404760677839792994704115853536156278591848086035827517586930947580170842384736162879159746955963761470091581927005269876267989215539851670700553530922309701727189481190880819729044646232784931585369335384439775002404551783383251102433900727368335755698335733736033832025920482414842603121035041043142302107759924908216828334572810508197718984689822621814148757760232112272365065060668248092495684207432899690626924457464565335502885138213466167423797171831653485690228665784354228515950732873512243546911985191030167444584857507190419889977665889210197760287796582170009081060554323624477013619995550285504881095995507788234921372764049181887077527703123838714965529841257884626289174377671569643270856928084597478112334888896928903468043673738101262893901214421407673078480172766003745854864959530210985598552007860132446076326107695095853598836294171397058459876902906984918564442443676983885811461674206196516141738563942043096284148496053541185893027052929390110780033106174469723252788278121566941070620155103449203537256240990128049297234744163695398496426159282307618414739775044758891845474344026142823554007977099896418940127027544049587944727673190483279253010006175958147837670683243419656140832461499802751489240113813925426711008789775316598063690596478496141576559165581639560324605754103551933003637657017259607746327022102490401642704039617088228734320810629875816278274672314925194948211812813208996327857765147764942364675284396944719160222600933798282257628902836855875346607255241299391334257589875605695047460177046485516874402785106089278634885451855862207921329240185089409251741884374931543287360511121924601973902930061425912325226790938387310478867932227592359643152334049944548957903220087073950877748805723291413782798690024043810923140954619027585435133550700966972036081477680208154001202729024923756892431845300748059055439920307142844345597443971331361351224301689025572343874068524745100287417237947061818373257356322976229028460806075171166343077577049142228292131428506190350733849672527415593229192292936785684357367775320048678401755952207317803168498817450450595693578969180533418531576679029699200097690856150495726887782984476702989801814759850603261666093629893000655611456494709029060065379699248920426491702314237068929567793450883106505182802896775686631967774428922992959939870074760078715194094171793734951909206190633196239353919120634646584076412472280266151673990669320981602772767723472003871658208404537058005200941888559653833445650537815490937602623054654003099860254109825980607145293197332538343965492181506255185268300964919048950542381654377741998584167408035798368952079653993565879325012326978127024893351672669815307887868661672245959493779029809628126272166610931121944118768756606211233265836153083356687683434370843976789479897080256794754249888268431444330813505538207040595776846580736846420149277624773776588531625385421346526851299814838543289416880798416591290878384093139904173459625039465798451442313362786454963083701295369897963762193691447889237682505521048628206318660938965766400433537990093219919486174356544795221642803191690815086363197887928599468135783919680999060904834726219133913172794434924339835546242331845774335598940614183368974973104194189693841209621929934280557628933957691774592835064150181241550400601705445943763046790326265961829632553374970474376622541392968847249392905990594556304464228083107783237090577393947313483748741584793788464368949945019345340378004592921138188011929391138074790697183034532488248739818598385882681245288338877968400793476446258275401527890822397279480365731702128569624142679539491316433566980271905635829572799956856824770468777545822535327135325119303441200133005840562655009925119712728363685767191926379943137075815887385138545859643461766850061568129421252423544262796739382865556367939728744121167490813574896535559761659043968754342574627227605701977250133431578646599591829072860217702165264332399975570484814450475897035273145986162642863398846244614002980519073228485339424342703574567805323699352552012821593066109793244758521392968530357915587493705461775195065556658548800260967882083387110359312021466516949832540731587972275749686230555067639247455522612194953188215373630487335953727148160732313465513996622786802356548533084424780297028591206169683453342117986467211250111853993205795790812995333795709422865073234231486594724022825072726700624101044433837861850930914218094012777786223152694891206544114960152605754410864513839169024294868993027788499569240615200379025530847388293962196883135701321216550652318299336395616498547966865798624409677146958190819250679105395972762160890002723685787708690978648586000812083261273822262134216676190222272195486193927361276557209939065452936039334967001417740107677066533056168328000576213239484969203281535043584268101245723558303213714107265516209185377225209003081410331936108442867590911716416135168969119187807726139669935666748101292980615756055669097855658547539839644055026593831551121345108792165110755853578400369700613199120333215993788377443749422717475697960149283740837216055344642666852836684923464827904700656035688197627284669108231852181174092182229787406214619003798954136215177639658393659400721012706135438764826689012859715968953927698657605058381216845887805128461572776073087770497954964781050630528971219786680743257437823482383965619826227963124174551070385012630469483441949400396375157115601823983937072220240689435074769233153016951994219115839824565671054450580821947656059964449953802865419086212041302642322297512515744409472557695828772615605599265819669072349302528653189891079129388285191666538672735721187153910040500094693845922139820813592985327120474596713131900286687817216901261361909969172793309353616916073961552493445118618343690434961733627543553862484168622928492686434443362968066700583576278298801717667118695321020592143571956534207245477526801990231855201986672490206111686615002578550219308973225315050061796924714874572337707173394006326833035321169349818400234643853804081434700885944355726674615228135314098670564956178102407157801212935962108408865794305256419856814487207489298742890138044697333440296042028059730986929228021974871098931369238994074902896890681911180322122896086218159506765260711222610003442103358664791433299582086670081455509469381444895883545811351998932822914458742927582180406485615676884883387468581823485772806580305896744733488235190407349897366720924420709671723222105505779625991667905807746015246945876532291780003774051450116315788825753644005386508296252465247711283587459331205943533828029992986323920849863765568250577869159552866018817725484786733420994857042314119643699981847335829724754315851403208355139344454627442815322481161736963083700147555026182988845857096188618036779066409696973582246310997184851191037849320614206649274696353628694716919739084097424627768617623200282930423244865322951009531337082100385190780179672733565034719286113264554449386018039216050369614354675679361748648685303631986598417270499496905668258166765346809398255924852303657154294011141707369219523881545886384917236459915692961431656376991049696289990544604083391032107865368461110937183108541992516166788039508636687448106945347849738395127487077468821220812495892853608850920023694968538969174041240831017726530706209784993512340649221008899749227231586600596020055557621954321267280489516252296606162102375458199853266590934475931126792264117799897422793469384262249191921592405530815818322279728821307958260717098067097873391407954149413534772916805850502673625704660956095543825766830363135000513980705689678787125091208799071818695803699349055242659972015700110045194129427894938385967104623669450426535807499829965796442785474228500745868315957887521601753974856435181395368073616369660049265865240277476548463969834347174834220612983432886699356381823239433303825686827635754232992102107808983271404887625953603891996708987517558717561786092343590501128709046999846147957897917218110242192331595619677812780454406834176527229787230715322325320629160878453803005329788369461536328025619690977445487050612702472153081662935694481454195090138822099426371445424535901970639717816425442091321323626384988213957710864409314492109539658400996364895281805350429723836691352718265244008405337880021897510960887976803211174824951416620296480556766442674672161884646745188905814458934654105808322873072176024695940972527054518537227856992278988230752126612938626607796452266293721345835572820334025911502297725072146296549124449896743305788732979500288775405513337729699357582911905069051189562202218863010343885876202038312392286926218426588238841323651469828865575507863147464028634851373890305759856783278636360886357295417815734845172830218456223550825484788462230164485547092368990685137642837315996737656378591603528113516585323470275593328074213006169830511080926841323253438998856044923591739800032424497071359709988471564278183167157909821635376260623811260447642580359877740691208478127414190969339445300255869461929240488227407690180877801890113436797800377646622319220549088623271564040000888730801857151926926231772179496347761624779012066824161256834519229268834341911920042531317568032123574706420983474461663222579020479291100428348904110671091000199925176985969950378563584920019097884757189046932866880166834838566308944344941158664582681762496653710894780791157328860939720078944859569715235555560293845880937064639905709512174109039991453680515692646431205211645075969583015574637359313364692730923434002139056376696062502020718693026637850925527440009033515734906581931261221491280846482130467356309787145193932994653099474098447855426963298780342641174528025261594078618907373039675007230225728796020555791237167964055277706952745530918404880405603420204146710986505857747017184472522067964343243394901353105222276408572490474603495776296850271122898756244630572753398551778622180454622357959851097442551620452956534572905746092989949644582130893824439496772645814456650247656015205204797802643791091841542071800520330880458519085185367501425918588683619340560443722438618107613998060003854210922971329825254191289923211981575622609147340305690239586747276035775540815666448048977038200975032256977137157110382375004251823906434768221880214590629883330887255411270919260545614495045923094719361271634941275287709108576592090440518995298615428840136490437766881525851469350052535742439663440495856807184558827837827406223416408476837957052260147381629155205224508995329270158374917274912528100936014200506474483076013459179221646554443609460996826537995840385350489850835299671624709615970871761691621446939887695646459652963834523238176196807298540999495646211823383827663640438840251688282783627618327591157112564159918163985287645355729385227871340883132951007972078481665766620592868256361849638789696501180213212494801174817854713519208976827174467044968035521161765082701814347792336631331918026366078466146043869996516021952681597430621656799913094677099181472996789485173431213470999572019217264984740887471836878038819645273239050910302573441566911358559386230575573338986673708209162324803337303543218234836422155369443680472264675012219158497305991162311417015072971211029065694969811520942758282905299804390341908585373570523342328234725618785242393183152732998141269910135645625356683516193346463058573453810484658956886750913694041158396414071340674672496026571569618550137766892386791556530301303062933967340592870053429795337811042789237386529529385467908213440427201776358502709052037441820056240115228240519317436227478870510392294317807701057547207303095562119176408994888696763988439437901127922567874573254501328221222176684666104593422854540614270293414449131506743203802633255954378451342240020635883940379252859368077154547009257870347917600441303153379422183471127986026816003134537438058843822615016280083026575050418962457534719529409772014756330600058533187273664079809678135686951088680340199641074938833114328570726570401952419734202414434328516766520931826450265661444618275697839764647016504063729591402853437587775250791293314639043437526340346330784128900970854648954191254034996985735537690535291004605228877763779897092987557026037825894520437637946015981944138348258634488289087194990519255000743672377896683974861165362951301861450558809352908400456140601193994688352915810973213604852978004503465052763649561873364911477365083602329531176786774002939897968397815952375727776620714896913649870464364285555787470217347258314932197009831228378213428138632351647772053243716866778516364121100432357885630445905401760764007221303235369281898982763779732151169853969138194408631605065044904386599307719771265482923513588763662759773623889710060060557010176756829382991368043349179201509634788456943746957964262653169850154657693220925385607570243948941311466549540311476551979527878298700679912646140153196267907949265312278038369988517902163712496779147392195603146169633145770021759397373654101820611046711914145842464631587662699740187670511878207353094433759354074479741837989614703278229270163786680873431515882187767409471371251322658312847147464609393656143501712808935356546548566553857405839787770451723752355902509106551103116176315902711132477176183046105113086085101680070831089494282516373115961400024333083098576655523620948715094974582939047680438383513122310524013112715155100123552732918458254773949181087936824070802610679877957790928201887481090489253630145648106206178436249354224035335291730100401941156314234855629529882850807033191947971028432050532861027153842760590005455868680550499645961005206158540341056860784445632790853196563923747080070967921133267925983616568488961902070600955032474903074504532981825324039246577098214604842500776107372580007568488231988133446603953609313358282768675195775776743817230535674742527130471790945191520761771449938749033905410317424898297062114568896667519257731702364880722634276200350924999473850403225496736432393655331623037382693401044737784444555419102637177127011693234881116194825434438967816527373050783244502081525104569440009706917354547507479478357463791725297906761573781184941672783960911783012445889245120945084115678922806211886112109040476914693229501418606819702738969760512456735591332858978718382066002011751835383631708105049649415612550420525512142631570189302340967639717542500006070847046989040756143955556508318802070807034359373025788680521449999588046422743328193916912525366070577822631050504749399009838657694441200296854118391552606445310587698090972921557121914714782079992629036178775260836317923352575411150670489612981325769122778941270408799287556468546885060502459598315475654420047133174188622093905487419921769752886381407163691458824995594305051929001393851029983850721258840534668331256960038624540071439852971975654972833617340300468564772002909858218761320377077759681641683670862146506259993405766270418573769663460848207292120348207033279008163702607613749752834765816282565714427884011543074304692791305373716901889980821081885209071830542732150075080304863615587948359320292528366474311300877060608449568709597484885656076421429963434324492585307632058119832867758647347798578398402898654412484907576611357775516632826338376800716604853809784138622920788447911894048678671192203685093530485862290644601634644000588046743223743804549181760453041615596490683843655444773516111411645203698001663479587656809792221167151780604700956621038657185022361195939510367433157746635030215412515794141346771018138048484523723909046724995742052622775993714532525945855460884949783315740753562311152074026937049527951628336214688662220652326495460473111400015420908226388439564051070512900346630630165992623602327604546207848160569198004030357487983402004256070275540490806887713491653485006773388174165414080124453225225801663319728250085759728776523501425378784325129834258559583113263179840155465287427052312305592675177491981336193787670174878278391560547946999327304258432690318021082096116586909405975911149412903387998145024844615026089745397537140741667933936239962004742021166260206088302182334156490508393988981637836500790970169736069845661332709754906100322980397233637917785614812359744727196132163837768444755261274386699414359036274497394689440133062991373939243601825403866944370839561216940492372130171612176108916787981865478628842464053515296207287671172028052368549057443299116458260146219868435193163817394927514044600209194399369598352456058158546593018423268012229874097819890181932976545933065709025130541693561387873871910471964734530794923652742338618815825013463239860810418647736813656370118578015969724730944390065515823163524123234306888506249363512384991217235663312618746234620882199596750302427944646344325775313061203409165535498554108156332069190382941453978581922400311287104177603755852998008587087104328225789337074518681245267238839623153311357921843969865005592835707482960847494621812386066521341198466603018077674901627436199208797452841058976644285172807001553429867899761450970708764825564192631365627517199518529852347009219503566154360348039938997274484962820790551547896422169344201104043585590484694956843250865261991769145633857243032916944196620647607321289569223939584965783638751198130638072007846206288732285595697113627600067490534416269439007466732594971779442228266372255810196667218038904125190754570962422676773927828511990492785401871052296852806732446513360614835738066643091651199677567925574235956455121612471822938558271320645211113980863782030946929770270542560323591141032439183775104133519994960216878985067610573367896785236615030608219911783493092441318013029492321568364409955872025187236578699021092371924339751473707324166073129240889314530210087341230180689987712946769626403243801453786267289515312143261922047960981139936770595617487965145017989661203976583986411408611334066054587857371505273533223170579763984043976523323805837285681052998813177559430079215399411442214231391592254307590483601090393167240645048991849182205968868708507253618793725638467030379454326515512542827389367569967865827804635709176787758720349427238347643564091827142396511984557493233920352234535630945392144342357681647113839301927342451549878288536733047058455131394275795221428914619275819134614396851584043272696228412931445587201532564799350659537527387197920279823893178525649187195709116198030382831394743965225543357898616363616980374827111869256602475632073547092394644561221876311548377191139099643676744660658414687936805432811423208871541694514084614160112933451297649634198442561224037622238751688023549018453699729258008206537996198722976314139951563525218808095724708341879993197910233390939126608889602879249143996145521810507263959410338580552629296519966249690235883389842329652182398247480822649133429609373729647347255339830807912255911538127799085216055715463936023018767884601172605326041646413983430950848673082943397262221332361080966413867022862699376241717179677967631455205383687079263684756063335182410306192462179424409501506820243503577972871142408320251794250637304341036343816452062033342357825532380633133814867485540373360959228985875724781560558538025901795037070114563457828817084752622845411186293280969321695040033263975998878032590954152224820207820890853350892120204377371574421991782168335355850166736958509063428229129232270233247311846149086401719507424420617795696922451796522350891296921365042961288278361672936252006370528170868104755476387603140441651765114058994859483646438910683982689814466190284016853806005759382139333359063988865714975261771571573310473937262079285846128084055988455323818956977131065080174284961456900076175259506655049403514932392692244466523331912305704968057251661820029054250088913563404338778794805790136022737536881622651560112244076131086532038031088450556954921183325248920800384953807384128301446588565558396514943706045953514501213472461261704110752812554228735444172121180256494851098461892752391771811173624489703866457751300531764258206212493902915770374977652619682575442287642873995131923494327589483329670263611345149142690140960073856085373609200720018189175080390447193130557550540048535755819072982271950840849616852907949100220664023671362617913758897653979640923396999569161540706779918244377212981632038242386602367039912679631916630204057591159538042749551831898280228999475104912709791280408819120684927310212435044960913464835624505283551193185482005294985942052809553702355424017789783859680190702270956797664372826057995809232322819561991500204256659932749228366303650693139358017549731532153613473031769225871634194577788605655008440917390101370952337142022857538625388554872562262627622981464863680273014283450778370527739131432569287821220472695044059621171342763274823108956652403057241617420655506413195495925574818856483907840958627757801455076531354081452464025032645239681256818038266176755817808931998443297715904907873108224963196478127214765730046085900961770629685299046057860736394590863453291244214346497948381291811797092637462958823984726540128689269137392524868380253388600629470542548675903744564958480544590869400919506868786620284329370480445159727112752607078384288036157445927209321504172039587315041464932572875122917581199513755989660132792530898715301111378894196394998220548902987306491955574803479988913091223011528517015932267985469878932773260819689431142148306174417523920676234881111272606758267833708058212671154522376467802537401163291868102919348470928272704812542266887555888374074346033337711481415518235345120100716395290099065051121888702811021495233560434642732831679978708640892397725151047926981711108811545984239016396134570851556413820130109658976401167060788540538470360245369980686342425347120087300180488683308975390436086550875454197052043062691429763282251912591620772679049352219389230097317486093735390850009545530254275081331912539973511287769193515696939643404236717085007367167183728016562805220690910083059189723668520410328077036036462957841634138542879370962180398080615172874276787557768249178724673597916986285575082560196708423017943483142748653580097695596135355752214216233542906403706840123516303361324100320107842340964606302156650822498436418582752338589748732625562644188228752071371279813207532100828899343358709518906089053715686049764984157163763412453560940321146596345646801341277180415389550027761154170852621073048569240177997655693188168006599306655052167943638406773849999783250869170387771040037832439001748254421595666091187046314966998578465564038835974540793113224941888005652119306793614835270850020995560839261679855326449487280951676879318171575330152908741441304557777707384738997848705906621172804705997209408092682121802576400807714528619378013749683394793298165765391825874531027381912395579639687993388481472632889452657070884248422330378020950091728416872821901565946088492203001918159824333378446285100332791464394015422944021827597667869450339946025189329601058424165291717569874807938867884800965078568325685264966637737377788809559723927445160766837354370331822787592890433510409892020116856879450991772816550771509977013969628306792609120130466758719967796990590891168624198580160003844060580380315235002705204221949640683112589601381269099141070182664239645454424827366752516577010569168771648904993459049150099515738459584874221844671552162707270957727662973951083853893555212555631488759463186037762101439015327719682597003282588607229642585740270072614226198049045929957682892871471529221704731491626713152972088652248276417470499271904498721268985171365924891996848447356428361104439249349565543030164343230043393886763247808887889999843593823309876371586502048300438315836305863179422880820072217268747895464809445675832822005384933488146929676079120507895870974334038889754841009342738434951637246905571867298642151723875859055803929951043192276540642551451157474092537636604504485670717759470162912611165208250754605197285032200855247641697729809355613769139856893080420291203879290713897960362215570988451022717950259452362062167354070569507333364749311983850855208382492714592421508593914107918557198352324147673536977032797002835258206216063593359296234604071281383992650674864744671786261339282992362418308917341659539035204713581114936019755380287054326461601631596095690343647944334548726381835928773636486025335922785822166214614843796312853278983947925669623758131314620200973120635577599271994339952784521193124756434924530265395834988585313656694166147225343955647040518162111920438172511298989145540384052723523111528077242145349928437690615218274957652421237884979134220855375895727688324117843008139105864840851988314126642029858392743965889968294956177745382683136921236504484970557425039094127296933114704106530649195789327042029632831762964764088658807914669718861554745926918421212809361827531807612963150685958085556259263691478168750600517957100298082743765497844741762905066571681135905786145719277312775547877282043417209236579559291089662819055545236603673711801290007459199484718545155149031969164725502290752643156969773585568262679671391388999573479484957889422562579961561383634430800186722625950289233114967205773115228824316454117706742045916020473175901061886791788111372631760018570045773442998618145237222825360514090118909245894803159022506131469324051076606732497246747614678219754535713148453575918381207361296587993622820646647989701973576133681331783653604605315942764391635569144701225971104090432845206385432759049122372245262720941797046533460643323007072939886362315608997300120301974441398946318922875324369779056202520593580249547992391611494558658374385384455159197931032057538758825445459804259065707747290428466741951337544775600142232648705446300728942130157386598160084080714836366452415855592555006057953291473241089785499037012560977821467176867282653465020449475974362528682858740329660786094837555902321581871479049142728254577439229795727369323894108652930062708396714293697685928942191694974556166805920302839698744134357505774110562342893974342113867039482502418861202095319106118825199615559952618792169365641997262281041744799661325558709327033392984875519298661601579380187854479990574905531298020193267756242898878953247317023513244061883706011397341914593362563059402084354834836186525837888192069646411056702483060505903785029182869592993422184375775938771951888361022642407545016681474381652214534553308134712754499680093225064154502998264090588319056077569044021062362537930750979393822917364872021311058783289884437072734812813190865512581238393658803724925519138665238596289172902078641014638772536866178309230221005792219053793573550385736327739606073708759935250849330450296027762774343329964843548517593325349829745242994390886749835376530952241470455194624631988764131683506684625230366415745755151068047009578802578595079165287571989035889896604201855261703651778585234933274491725259159557071256799352608695095367564252576584174351753678125392971770145870976630688397381377422828412860667302323388208659047515098402388940365542154637306152647212720674244681149518774247194640272654757669980456216997195382235781761400198266869797636852922358926595067874419691710777518651490050816031847844825034246564112581751887212557004159037452871621246618878248009848719796704582664020269344240607205925964314502949205718611878549542525203042501833542751669078500846609820643923915460015549645025049484587741020650731035296129449192240343613369118397580442452612308948742421107283819988670054804699573445456665585263044889608466628435620912778177983987494655726129369134654089143234693763056365754482004372823174860143523241092282621768497886387322410034523142136972127097159664912464856634197698015665984650998974918603941093802642357871322235285057406340893432234079808346101092405439812035982070511620951691501871619622631110429422914438343739259965865581040901779194019451263584601685737041491113604180671967034838211716072237085404427138119799023095966997547082289917814457428687789375763529573679906178028168473597370623174474995155740344219059311824826739744378649741175532472713020511978721044228004725415668409550892069462040135395668371049378484870312596777642126118662960766335429134814177978155748083569228909139481135091329938529659935294964563373971386096155447740105482165942373893945841626436111249163709617950437524743665593177347497722289246798010797750040598329513536924986257287713944835322389537943732224985050982124704851382427977912824942478610977623427427494542768340412268154112323965343334177915803864813846178710350042005922111173817236115455930239597858445201145472687702114277414026769439297548521534601636498471112933591888708310154301429044378811698670222147755394592741031933458506844796859599389174275180231163578532842407253488781249240737077777395053791134444221480429218604107544105245421615166385164788008023227841735451122765302714981680920956352780773281777223614110195705923340967135482503191016768475326161959548877226942259644665335632978259724099715112925584980703639147514321947883554627800466195879926766084678184957001857056119722589786966227310461356952680205216118274479977373485317981635476335140077911643966399847704223627868861455828630474772279410376057694427400490202495690301170939545653780845282292385283958090795353758542389532243085781547764372346442314481311865567770920210494915655724449070769063970426299795031552468358294979220580016255758614185734822140567904554028603010329071166714042304877558000829804053947140954565748644420902388782842117924535218774063540145721439780909932804072942734566220705377993718383667106443061188665404397350383175937994236600049819173713754695641038765075153300445116423052131114420481519931104869110634645689639151955393252180546220422351366036821924061333960977261417751035837099823572133192120811929306980460673588487457234322122236012267601234118067292068251440705570141443152430467637246018166938682654410420189769806041948634154657838684363063441284318655709144990491344620502413597186905501235986600525464791099574443659291354275454127273359794454053750830979100994188008255776916639045636291953051911443127929261542814181939760138373957562169867574157455426653940936682075029539457039454879338567939019101577270069325807278051205009020215292675397241717146504833992535753347369719764873702362620148178154685706275410898876378762223838282177246939464662634948001252530223037964361196837525970166735045533611854228506797596379336437883403775998146034143370623556467865098160198246689523385183204636649851477277125063529456724732623451485676669708958482786835779917740376907823657674642465607242947705672875702877169200595479101647230288039240245347578861507683555456566394291988059310857071510907309854058899942136782937284558430312222523374137632120373143016408444028388359524714421988223619158923497981718133286254566264655979549331820088474663842797651974738917511432186401782930621166016981866513840650784968420499498884412054983628076852694658611404449350080764925611037017553366717249417259487641265330187461320549789689875475247598369386664019797065763858923806144661488866750495517353305386810118636385020145165957086248154720733724760485063808310039392032676236530406379558258221980662511038916709074866033173960901575722193107905970310364938090183167947706233235128544625926385471265363515369671049726151375880154690855335423209958997459908902389188942231815443442265118880930258181588950711461919552391151626922781986718119703366174259982711792392458167743396337965720138578778226789157222633465119694383576963257114740605562579936874126974723550602831271345434227604699126912539067010682841016609166449500156649921189614709263718541193262048108792155077823317387352377571703097128802585721048039950778910325580291570973274604069334423954942479038217099775559878719682498047748562836970734744174988657401505325721703611728423849436952720622310931078599475385725950523171094088408891439178231109697689569325022734613902406589361296030842072013507289783836000491523013051107384466874936586995096117157528084900447186837790821611157032429426055862069696868721843982942961776879482854312093514824886587929003581906311313549507902939950626490783576316101778808344937945840046053874619137483488028191045826345132768212499730933131956368328319793444199933877474675892039937507861956888573084049621802709036902146710218414940117129080828826260429744666455741451359667848486421757997611796175682874728016659368144840643001335675740544728984665761535160425957419486669263826791058574286944951825621839830587031586487813198978011353789084052967604618560207972018684272966944000091492931830803597015109525461071995859758562115337111395736920719206280836006210300959204829695031789472749129334212234487555238853598175799785567524955465157672032714023760559929926719733971735347709337002425714193739731871126940129095255774776389207417331062261416131674125792675734412433640849453128281409434426216383490848903408013634802764882440132574649071475058425730626996409329780618011573261147042646030334542939184087876811214877142115005010810826318249137333285468811228970279651395747680866892957778540725250249902682499216922780172478671600880666810378561475727986757519829861156935806314587873089744617774074998096052137708886542380142399993516704902555197670961418079118466836318484485729076319521106670334908154959072658690127918573477524686213815245521192410328623885232989363903664241230257747291264862721484746333321103319175546091382703387882730517048008536188775747622669878784242358554287205292536646179708593112818344057874030597352054607358958334907187343826929332712989400113226406063538975289474769146841904057852014226880046762148814314439661213893344377260079499035771966062762976451957622318683313489724220912648795096318576356979933280837310708756070406296566739016777845736640268201365430301303061795367206855568778813255966680000835917499942128372206817220498323744617646261747842211429948050280897044972058537001563752175209550860962501502914992657805683645322363684175765778310205743600766576438459103066876187740224704842940465060442818043697007886323266868994514396538644113432368320560645941778794487274846822879296436178128460696349786019682809735031580036401934535624114473337069173749559345690291404786786919300848267057563849608227475529463678230505779387588907910828322559285723114641441415173575947702280383095807417757008500233224576181353133127439706327666782802420535810677345775477748752071969463859938650444061967628349457178341481215863120304264787707189235134819738841381935288879668844110274144130936629195630645997105796248783847260494280560830008420393663257435339978637206884053698185396538744238423428492354692281051681068491487438928987749802008322268914256780788231411457312881126941294776414268415721023467098171424665444328210886755375511947940754750671142177838667414150713661636042522199442830541762256123164887006092140651107776947088595726567123221665974277655870151761158383654753575516580464805079680203814960421851595761887459011825990858143096166905578430989150600378011578222333582073203864444881675756984883939424742702728629841254276768209856156943093655981670108951147259244935232099255407639047147275119115880617540015595144996326924920018164141088777500457698246640332077811627869118998076177047956282405722022134672572866560998935457995475058175986563875933219798365574528029870281874585756326072913176659032140708430522341202157826256934602885080949596882870449873616853334283537146643506987633678567395073614574878551440905206211360736998241950928652443866006697746861293608519619320149468604415393172570296074118762690862518696013500671283845782065354526852218283574142412882303607417603572551178738154827744921826921714184544998216772853604221704763076162800878667233248947980631067687990385552282435198081650750807287325750278447660442937467585638979436105383994784251973087680662661529728368897606281133550345731650383052669994720543889050539401832422438334233027572683604860178627773740084054104321554050818699441113113905074395524266046448472687746557084442055086153239258081989147006568115971369741333903145162837824151082640178655197366076653886976338758453417942260140035876838770137935812038487171959890206279670039625254182171859243695625007983150328875746292066796333298270383767274216426095509958042194338040570708526045632833405307927737125260626949122854100467769747099520648093691246205177703580041061516847880530450827099692138133818799098200190428684031516564057452671269942022358490189885288951980018835751094145232467382701224349348395611085471314699091993366447717950305050681049109437900436045483059515319364520318488636166799053401721659743376294183957978517746423814528624179103537275556815119059360607279440349433235667043992115258365994657942083043133633480094461823650495303838234498708711199669814008740734159689839401500613802198209927549158075193242262413723478988005371903678298868433499534560647857394363966159364807000766916839854583446419775090336614141954933786066646377869490703031781593699745559447088001758965259303065367288944877044899583862069425877041773429988026398395867177200357832026723060199128669144049450945483158187633490803093069957270524987187010929704166074554104412846709913277400118943486825736932291495457057221102493972960908984217673581697472699636959101307689623505332749562492921238363595685224078163605230302924486088615659418226114754480261596059475476500444626462523998536219724940410106499559494583662964046351721059268386416582111792425340365432184160722638995035098106124695933885817472789449345960273040481301027576435088997510594482831876669964534337929467279374829305259848866197074510466528759367211816885674691310697160243231115149677384796458837361061064169212789499226826889224875550748608896179442213228342556469583700633336386472645306025390513841411592404649341041939586429933003441855763335729595554857447556843201064387332185942883897838870935180316849930608757116231630576816113277716060203338102721532279129162968706600741001942669922518093339235614462362023558408439092848345815312347253494801891860383575458215000076845226988666325155361503353886445695100334783796932657163928978870162045010706234367111826738977166905156473901173813525944751194984670680021629866819225543497352178134794386177867064447775667290237667335755195282498108799810992228917434894649204745471854025541561200849166986801829847500498272448117121645448523824766541489941615603743054000567716556972226649376149287083216988535813652593262270745611257628209048364106982115376004302463255121886338543616053914286558565213624652167106822306182778117731010206252441359372109595345050682409662890461259568887936450027232229131505375342306354182737071391213055648024560618380612942809511316324882618756020586648826076707130555909329244343451903039945646260888161393486175331770289557449474462850193695440440029957221180364612076062244372733802042245585205033102015955552370819443785795586207242694896503888029832828886548317600437810329017935650673187368502436781892745793674458373553513095605313667420031905070721530670227156315592158965613569784049408401757527874193135076875407202802591083865344570329029599576575600009978745726639926199535371988367723043795510502700225755106164306792580408587598112686450969246066248772182797154346724755454074486673974509451586754048081188218352575151167366407370740229994387546279639667526455007872724917435054817981735070859867254268681514233508861123094116863989761422393211443874337123905422309662965728587456187434603265600813593776006808352587926296423122563308338889534466815080832260443034885132225471418733349566834063214876054897216992329967311409060750101309537274006292230275659257722945782867923736620339327954804917529158317837759977281470220819384531489319829994642437601986877130380843430743599377708943890051121125363403099193436050424509253746745993765809366224355092019912400827683559140171207300697814184589870668639999062916899095109506762425794781111854277206015927169763842838301499777728602720886636485125178993722758675384757950523959818426138977494697044665331554521847073769374278320645227403041873330483368498488467529178744878914951345159703531707795993872305785613593762011720786648744962333615812125493812670661300694959581483586014681898961627206813301049007536466100792949615008207935770593943906837161548275082597939419581547905098853822546959248227241443566713710372008984026102404819385421845453830598426530408377908173324523234013086430722529297961895128763383679478639380962190491021860924427152335466011671762271226673371482203822554335413485148578540137721409611185959365985437394889404878113638450038281858948664976765481982288704534146663785811397468199428472247658493047689993169982256267500696230853206353797727527776144801572918981624311806419644448544981336009067210347750495226043961305722421727057590789306981831734124168614046018446860857258912231879988920956153020247391368332131960888543658981811777393149198131615928368747145457178626632203538984657131323464661717971005646198520418938059880569744542526559266066438669918121638046621709974015394947072492378474933731393157135547111828571930208893988216922198697467703904742280767872999103511525269153857036515668658623073782552136184547303487630026928012271221754217038885271856680556322755781263918725798295858542676223268786646969978427036744625571026357214006230123126011541195974925209097721226671612273734176106680930984196899770937625642159145837817303860515874501451255425792938230285588342365957409379263356837143745385534509194591192203564167128733879724614149311472793921217533691542169342855635422625735191902377355449761682234322466493556581031759122921798802574861469254402792069515109031391279424664284065421228462650474623371853187952032615407052438384283909811186613736936507687701677520514538680434469363744311522247730852863415216456746138321379527263599467721006008406252359984813775543069632648998842502092567665246434994555661583014697558086542927775262105804497776290060832631709450738242491112221087275402717669108126052908113764608524480337296347873711783352627072681811284356273692139353547452143214662111021937034934791399934653916734795851422156973406723728183800359180629983068612037749513916228110987702501300315008308789058204086677063210759070803496010539187215105192017619475402934159445210575277669032438025874988197082618303898357620410282034811926102910462389689249638677677511252447752331007960063052276462898050321945819413589584422972762831422700443897812297380043646801681614258467023520157975934099425136036908563220050307757691287735268723176771814618706812630827234660710289171815484327825733669306271844890315572859411861719287628061057108645188741085618212984749423498718623070075360377403451821178874559892344242841678523113322736859617172683773945931080084334871424489491089534893904359050957930370302846953614687331592730933648872350382481360261872184765110578205943652099554431998841069219382463868672276040732056850059571269959909672668346709608369342265818547746854940696219326034181026584519924268153719706500908723343563722015132135234101410951009810750634126020288693691736721276832447737563069697490514381852720293761472391752049783561803562798285768933407599985689050048007721131071716068691692053861775360427895001199298614937183189315469926607157764242854685155577666284416574155568352997097267937852040897517420287436119779441500718613412821449538978220184576497390660335842785043862123374559436198259319480310010801480408425658728615986494330809698182555195666992244779652129926898448732446929714710101216500033570633742346536070710966102550574224512845281886831998410317431962268805146555385219758555201089110081841295383531036523809567564393414356488771977593732196587621509191752031603880502965853465329917736965317818948677999983724119874402394989694466324254158546635187086083621771968263047593257694709071735807221518872254303449358178886657251952617568526859715670626540808903874740814300336869744125970181326862482267134958811492239914942873131109373798442089462174704477002993134388560631704284541284157784636200680383812255945078009892275410530400563273965932843108816855408569479216036956233502830699508123068629812549172143106428334795180602163560673454112482218528872343872504206560872067568157758264929562423631141973914736690524846403781711583792899124532033246025671514916280844686394287630617039145591106621147175656926065726894418302483153517961564048650155846450160105578349877202424103581626820352784827351921315564848605836737826072398186004254435717111971033490032998281221969441577644179350915585061760946484167106568267264850905169071587090117506741034944016370979689645249413901168076701555243248080395653495039299401743509491510377401640874634727347109439183308392700946800648342096311927882867293296963936843199118108133473219124396125508302235492221330285733010734422253273792274167855591578492621268869651843961402605889857183050450727892443409710676966242967060854221711480703096022138800944017406375913746530110465267082592349591456853338374035908271359277027035221893326976810370212633523950181275414440111466011389880054509465531074070656668265919665783989783615540092870503931429198203656717131569135391502383628748956590549805603671382247993721583251987021280953025413659724401162972934482579254904318280013098950794424026297942877163347158342968430118360332866063729368638462356087228918841467035808400176892248276393990731390546729579083517729302205355715407664000492955532654795952703890520588508437916920316459976526340129606582713173137823070540897312287271630951823764398344817890369679035331443876316432021495303490845919277298153363956078549465880087371912929978168255204272909329937828844902930471652982067379780727001230935654821324717902992008429588102196111063652858402910252707636159177552258240746052245957098664524585420563377951254848685293537753897992850031444726973016565364021311617940289733468633410586689664200376052848305001424622318395495702308990940261110665740550536787118235259166733834562142748393255744145166744634722285256789785422151328599936588502430325433434470627300678256138027043512834487065953695356577810228061139480301911775798104172220720828010989684992678778543750980470159226909590347519325439006948205394561539742475605462408250089998252184428115449246428426702790378814592221341269802189650731024732476230344222830190927602866827493146310009116961595114346972329380502837590232078247569468586938020905657773088771449994763317135747484697730402789775500966116333026731230869785885123471119161191607401340071111538363320254887230681919127966055920198153479880979003830778575157276314555269366479948265190933781855155519857888028196687234071719206651206440197461548019031313212257124327085613600250718584743835518569198003291209647853454662059723231932942911196143885836316049669276508178993007660421776183570421152118514817022995567723115290178589135808575558668614997192961102481550861590239543485602684271335543068468908177651297240165810144050719480658426605729223558314191501617642942683231219965896990861525428777009274537992477402504360960335496009723416948924441354546092494038976186366672990964384236829799550695040583867189697882887019640672012683238903374202371881253371857910249712858126149387014533374395664204280824307968526591506702284026784655309782955945323972634099709100430692327419060311370081508279607656044650485143828179867516758631012150630930558747143565639123323613769686549133396542950305650516835777865333089313628351363086466277567948905961110533103630144348682983175424477660873148286122170853727264427475438522344825277740275205118692344049933238539150989087482699889494093371853706820204067843123763630432153948312705609045752119507434790649592513383157103355781187286495226540861587436562910147532960847219594514642992801689170393773651304558581548201911801013625703069501390675014682026411526128338600293684981910615919473164458930889340891024451907429739818821412763775057723210330960476354139765425652958809120515351638988995858827439663108141683718671239511184853659441388642417298025437640106706177544666637415262598394933111020034721067305141500534425320672582701390800012255973039413213510152610872811860062329741783063722228238448469869044937626554082534136326985066947559055390392407656159292181426023111179055282258414718522827573887399621856664173501522703563336796950564637847625398886769838040976760263980789098599873554380563419039311548799441301628189258087525305566048631278766944453018933978592039418266549440493829928645620080045935890933238677351263037861469883822111991355550757732199365405287302250696547415829465379922662360739147700331678222045753837391358440574624898300045094093621127777118203046407628851120348000348511937890924148833829518565496610806669701228925051635195139566080832632319661522222544205969202865454050295654814249479275200600466019506577954935416957723831298219496999143374950272622083265482402034779298467209837338187284466944939895093055562591715155316444367192131636428664899663849887339223972191815512784517578458579194288497415152070941267232274546249074254578586430893359605123783189716000304093718354711473216633713449970805760336068880949672538028111499977609194778858482846424701988808363280868529061879278653105117949978782045677761169691456561072457949698513449806618642382233742261272244648504698381270249392040265814537346224366557422695325633359603064559711632850557977094482460493972187371218919629067964711967234449136106568685276894635271646103469661968444925354608208517681512754323566509654888848918298213714876022205299530487985538228528922743867842495544308721834071460268114498645812417300258960107497236380789930855477686883135824228207196921681515074873358278268756500584352422387612124139749446595908160953131380896901606833582967019478798241203499166925910306897654620100685317837052610494588062816145271686878029185512945750170793259683878582381335483834849162680242805950080002219715494465816595083367923246521016549473042231713686834095064069318364735769373580567075683359981392665168337909227052164764797518029614812682545942473533898631535248520396151878142007083433182479925681193528228762895575183243708861393595520576967098237321203006320170806439502078038427657977663214118566242765082477369698696074232526086724040641978793610804935538763254931920299340287795831747841653181792072610144915763587867207867191286246429654474654202454919227272445609024881010200689482127577936759012044662957432145893283881739975246432906889062354364430911530835934880816620011867629811632588890843534025204994742585372728916642832496200578272886581357239427306447360481777889239021960572996878090914820341099566496125547113948586512912990918736574749961231979062358244344777413906235297986095044190099324160972069817875446039466194431454342743724634410258870758708057637105197230256419803466306187912090760400830312124493681099133133536750228585215983288244039120863035384115234775864146478160478535342475668745452192888243426013277102211982298553496138103081994580510284960303103481929016866367139737642429968026624837246744551576784560054476177636469531777491215496440285532069069316506617547617335058012220406299977078076636050856940462719318986558407438738324353280641306597353513438167707368376226752924797522330158579084685698829982443142648522483787301862179052054003093408339459261858805408051709574910532074187918325160873279538248713155451244940080705442035256755065230314085178576719958208015972883930861122673746267465672651878571713219736081462849602698077938454073766109350362124108214218041427417661602912470411594837283394147318418010877022776977187058596062738954348029960340245105558982731620749770489636210935810829149785417289551395144882927350293720540100015332490440974640171205443799056234021891769926979840567603313634029768683001280874473084828317103783376247595788608653498105492333063949060984925224734605557304720798602029400187933307684945789279057933668364248665941052730391638814219605988138805977129719685175076654731022544747658159091175252107208077089105752048199559348054324030798756936913124505554261326816446128881522687000292771761418547552312031693590244979425207295457451223647982019559512861037288691634331048155606135096633948682807934245974037332921549220231863277555916976782647311476613912896646087671840563849757414287890837126225803411647821272712467717509115881319592787632136784761638571243595424060684317782568497335510894239523665317551095331447920685273098103319113461265841753404958596395422205682219377540158397699237197873898906842681217768281550743930235771231177716840590370457160901005097489920111870911962927534994319377346974234852373650155308526404694600023577724979427899408131057883078952087624526646336121359336647926432090393647540386171478735045597317073799615588314405216648314991822178669337184261602801605543522792930988529063260928442726172255879353181865080194475194934279924592033363773113858138291769163181349086260590379344754951307970311817408856159455537037528422019518707370958282849052299235554841506371149220151792024350182372142280456529967889428228121298705422609880039050461636122970940274987443966942493549964127321113741642922778355602266052510460742415577611173055394881467941742317435353450587767918256307624018349035562572841001986060094104197801609071766829783381237578367351492353798626843706913503974462269266824556710816288465473209956457063611145020131182672080370930872762528156526864547499041116107105846958898233566086848464933690380571201839860661675739230032660808136598198707441431623547107580206107413652509117672771697870045167258617553938959554379223840454212165190478917122538182183112152336826216742082083093946218089251498497826427729644970271735424158581299900631817047525191212783741701446604657447826672714837133202524810726086292993290625053189410632507847692377996022044143217482629771140502101740943610753104803512164131557329651667189031976583493726020584639924386300141264789199362300656989120223872999716699664472222978792286014707125646614070278809635463641544825159883355596514225889901241233566705998141705457857954110707316432012075394031233588932961944643325396245517018299013196119080257439668962596316167039737477995830254420556237901939658255406953795558828391185050676795271565822212497960587951665329110850467887127993847481426732757501513026517862918008335146633535759814035895171258098633948689084192289226698878807641627686614670617984242913674174814867707897428383001896080926805968191953572878608059958469271836684896654569107139258973901688879302038915467756529138581250266700626720541458508889109590574671064830320367062788862502219296177068629788223580241125766861149644028120920106321359233528372662176159975975177426748385291806466970755192179883942179579643586301928678331046651891721752292773783528086877738863032761674092175383252809841426023960057428174404868136406171465168821110722869952252238894742900981085023421799275207854633341428571630141760616692390961253226049004256608319699557803604955091711480101678184944541216044789931872813344516043370098738204494218134858872454959089584634209013798881249495073678295676993274535026940901145687066607687811141157875473416250752825226410248304868057009784742299622409546694430634708903033252146494534093348557648119785562816725509250482285930173115846531705257983061055391592564191776347369042513041620804148169623377899252606282814671484994340917676093608401673605446014011413495237443183937413033275831456654150087254269753098693888925708696709385403094084746256282360740132571706580934056633077320467613106907555606716203489296947454997737065426986349124991190374037025973392473983112414583622792575359400307236630610888726351912220800938293157128417943612579840744157465088482444342707199499681492059227716542323544472033369737482100420607570302708464085919880064033059168086742982928589765599882007624259255785858103481540868957104731080338671664886787757830322285355147543830659473492536701787941880478793010954184370669439683284857090664507836049674096468403727205087992966557527464611356009859158628199561496936438205559283808902555977670527461199310929232193843194207765837573336876000582270726021666032542990247661129633163112692223742711959554957078565014531462628262757443307761286154007648401105125058148964650567265537229892860441428150123930574811726061760131742603885768931152867259247729554132488756343963679030897524935403774635051096544541023674413472604864745793524623226147199519029409586694015394719568718562074975437959783967862510879191639972492752490569998676289540614031994361562769574363460527901340345299808358262296347684585568853847766316647046694856280742169429358112275101753877791932315195749867792863916455533272504182954559077876021787296160230912116451939616891478319837213663388988755393466288040418145662601664540971887204761959340863018703133888527987357297462455613576586614287305222716343492554271338487801782595943300107472331481186648657180434924486101021390785323328331012025793436646183989543246487447859625113884892726525479551825549389201824138119305570676118940447258853607843633822902294848878403324206726585910022861511761095881234475096358774207756060603341601525673322831206749204962515461932370332743598923882757479686058275350156240645381549125515878916544308277687509127731010181580299146409955243873553717489043427992690580371315162640863461052375685524919185510488066151909320107886862486756061070482379484035400510436511973107954893068915416081684395743057982553181322630586059146414993021167575029619519522408711340938417674840126654675770789343374454347096106678622464426206379705445405365008929056047398414034204469316679517290491302014974833246281445297910554624177847578985682785466362457286612385680365974018600431271875477613762401552357670605058101434045806608187146506058877855748651052274525114159366512726693732466705789597856312773264256043767708377069669059130246243745738818742500598900181703121801791986452793612546687838672249795185987053791754789472650032368603350022508303653899847184836605326439031810835989948962446271283762997349477742736818595120663572756233944293997357284871264993717348537440982565740193616404155955041377999745232358057580236302177147743982216825325501013502930487262313483660801916688915839325558664754216168362829895783545884634499234783237400678472415293480222851918502275536225220029959513695328631556013181163507615051252951023241663928399170882799462183682543487899250261756160024242143627802983878520418623770521115446582875657657574528519933095446118962623508344963666893351589283239733119086687621788743635066561724661324741910085689066164749553652968264182285221621415712239029263673142623421615379242269269965386259982984955526896361951422659248239463182504210620818434808639027271091794090433560601922174995703773522985704205117493915992910207915763903842285373142662937791114573291217273674433492012107474700541685312845960995526674711993585129362928425153223861363066449991100536763646801226650440492534442247581465500611389245745939062417471514470212924810452071260064503294395786806811029268576103380855853962868557973492956310438550412931387294589671113611951298475183591852036800855550251497508297150686679925517819621461584810024069487520750426649977714564437137634107866610055415490098872570762250452751731523553642204783786506919390258300357233106611929556670743319919839916813248921515020308460229503031338173366773212206283413540248544747262951078272605766595824816042527958658512599447294037968766802497464229678531512882368862064404127178251173232291730029219580147563426985783329944166829680596492574841635500186541182611082474904678589896314656380700113439362403030318856278490986272529550462211412776375213915713994128899008315994997967196781014146253673054794281787192420331595525554141438366756612688380429817512000443118917991587238877508126144772618105922747573227694563303887193493499382270470903382402175997783638628694016468924256531381502422264252421191121081025606239905211409888171319564508766913434480086376582372382498580945129935946004203555240585276901926033650933415675388159478282543428501385251034733047234172288605838109119460011276741039418414382608667979828785657840420329373487365217382150518706972635212231066517959679889336646853520064756307912981696470314880954242268355718054077356942624059749086305442323770959003112272233355739178994867755928925317103768863141127040100300933220306141906527894701648314317552743464681625886515502261602094446975139450245267236917671628371263650233789157200748937916773189171672389215812600659413181975904778517569262596600145488486854598184638052557667074758995873989712963785334931028132110460514685302469412361578366771035415355400486164896364261097877616129012558505105728715721668756077062687596452415053472411825076271268020598787661426309471970300209235329219139465873254134894896222251198673857155307402163031650723307294049011532758074942410515778889008778128245420855029769920429719491156078073362665000399611354568898106628502005286634026370392986488451725361574474883574718067345525629706029917894541371795296704394682781953286319983177560236902371906282674556430014707901520477789212223881960216651653261989532351157109177451508126710320071538625760662718034316531522056838920879718869978215593121761256406675782855146583968980999044015535777022408342638593247800889697278501884157618883424992843910313194006914744100864241441566703525004793950914573846841894156716451681313850448673814323565710007671413284153666269235982794737597122737000597330398809132803086459404549063343918752720342119883736563697290408200308068023725313473328750840665486980765285344793092178371246652670574463662634971931597607756282343296086953167502798586438994520336077520688009492708105853084156426165651166816751275118554994200604755688972132912407826266212103313280142091479014271935619466134911309684009103693064120924228605159821967061288892421361068615425008894117953408973916036733060919005434478956184113146475525758375598677771435258897624701951587831386860956347337971135235627654759647454356811250397353774543314819922163537655084293348912787625020878584246189120461818741085935001999924688537783395608615627501916156034705547661313501977089791600537128115384393062843370066757919561672903332610070877700816605147495239318123896095522176596106380963508008914895041059661360414741495379238962300559003806122314306527341161875544539217368524465655848413627005587246909665153800606480005199373375782755340018445647037639479491074235240469492124372086165075184153253959258882284420706949693850564723233536154549074898065160704293836936941754252373031740958161302220649205026173608086924189538073502739125330035765256186113126809140794952157411453815432474252865908379915403446187101236116211739113741569102165846219672231046440759388197550792240373783726293582830210165783924281854455580567233756631517071706811865040170159856783491049373556619366378872501973705447063842910565794958240267553380247832716062709099393261292642016810896369204847019612316794504369095524642775874659664169431063350120902655420302404811452699841431404509405711129029857974950837418470974937294571989862903628133692705661258796493655620949145435517005791658861569363882512696253452623411775046568622094453231470088154771982498081555231441212140845042123322038127940478678995473070084593357561284412774978086999211996008731289579024620555895796709981236093514510976500695966762231987923498667569077314586380495657664012863606024858712262743463928673052544531106738914315322642337927749036417400978212974209239212361192710089130358914136077862392891773954286191003009652572113234227610332858062319253357182232039680960747407176559727441793334276671057388953343017239476172714045807215615345368100640147190720327757757195708554774092420595728697476205619381635367406148948137258314193810173331598421303888688083050087723524765581893153621992855509744113480601978639474342117469901327076923491402784600880884697340233600487492352515208214445996933145685113214067828354711823069016640427235299852997569682105837615827611103490594832704451301768637125964560403652668709788973836740088247702679178304601125541313583804718088879198806664198961070936475137807118942481355795743870746437249666163393233524519456821890703838352735266698359178426793932490763838875934138249394392269836723810670347540449364295539283237040057554978933514882919196316823550673388388753806120658629001304764924885154916988561597693347124898471549231462723929241340550714426826744065790489072965077792176839157685948420797858326588105950305311514848016902345805645395227650989998691983874920968903933389246261755339517703594925630597562498351808047447142101451209105356372293531579107907718060596112472898978939722830616222059061884813830043546600408983760855208409699394998664943682366769281569659048237054181152790528000232963420485791453031011743488900724755976009824808733934204869332685967790543159419719140803132953006890236911947745954237119946155272870571541781972501372850376005399896618540520029494159118205952599749160471393593253877626437158518022679761555454070182065287173023613389737294751925867352380310890682475823479357235820617997307227663189073151501171499547720284179180280050225419904850147273210952450178851898754629185188598143292673025225304218043162444692086660018431819671735698903817837770061067327560987627073714033640973205785953635786974950417791309895827655190796124773512683359496727080122381112791847441644694113526643702828312187881173049132358721816328938239165321417894318361137821506443737740164066729056808789992938290062458210274722761947862430909497696609078428311960651037381361289834891947375320984677403511238655953735671590139636656514088858539352632846223559953886357621964060929681613757914527015835103857427183928527551440581589424869613048995166143251019442031830161475775215889378140812579691560733571262971150998079416618062195834958718186894026478488619226814477208035236105817131757781632708318725516470683971629119618504981915601416747059752579838848094371694008670884162530062510216875934719212534338039341516796241822420703941273977362193063748450076718197802606684286378613717373686121351316387620270998473623787278503204239829073170226031638435915087761734298922001142817176831004898853210822106233116484445586976341254395046371827299575179600453675843482954729689793868667407649269355940835220552511995885853609204996761742506763717917664216942094054702163437521544011905591065586698573093134173199041118581027551900412147627591357381613177915532987268630693916207149545740653631671289687182204991663619282347976333275139514771584859773553598201253587677500467057887786240035203814266021422204573745018389261314265302802789943227308703415573081683260266586979291293907940674833811189786069916712238592498590030422515735807425578839561418185168489701617546811638722531771580377951639517177740366131048064293946826296889440041796688199241326813252960889168645264788576957167860078508021065943787122891052972366086938891301510307082124652792699720867708297862569432380080617201417933462692363745815644754237311520094991359025857806465206077160178075992278583726512350288715109563689150151145662080788265967017152506310081939150060597342072205453063270145254161709716755765189866451126581516040229756908823863841302459787894915788475657962377299931810163344215407137644157241572413074610756889358907100521621353990133693118522290019692291771869189751837217151984273420799591435661091765601097592398108532019090531391015002250611622124663219574738616838108135469579780061018231386250015277219811653785461243327617220832836153079061397564151276874623111447612026618204860350661712969175473834263712711349152734850708353749502034207805266714968543797175015248246013714462599815406190748916438269389034048681948867431552469968381557349222284722118687762792194502219643168743495122042807152409774275001899919954058348460406425605565259777389745720383701546161688096281350640766497757383736749988715090045501847788170564183623866064612224486557811678594801938316530854391222409469411792832656584554374194564213305013737496142049695305273085454045564129298563305621104519563687633993536723343695152657906350134298269724462851942695977752755726202243874078708118478211729816490994773573299611230055554363163505926482028185574750622461573818099276420465801998696676258398928784175976635710676130688858683923164563943972154095152134605567853354496777946163465944116950503313299864503663839528107606297904161254340247491375449613461137750687584883757459343237400051018162580651118768520114163755571014686792314111944114098399077329878794847273965957731979653280153310770047742847503094390829687549007056120808702557491663915150758576009881694323124123640764651825989827194698801233033640465076167142449163768325865690290840844655162906797263881280107681703417729869267296149738630009036368686655649207736369045209046416377461748757803677171010321992421440591617147980764117821700745239403904392689987329540693233065875321076346655308607380665205943408623396676019474383844484057760910886597789204988123687362706318329159948558311977791106388997887782105829258220080381848738316970845342549685817012783754606404915287729789443903883902384518897294910940295056989176674928537137260275532157990221388913316321979813867823084706135818708870302570987741674599995344870011702769835158296845768038090904689086486358778585330252830215448482363153308455453720877036752163675833846441208700714565940908875249696874877141200359690895043288010046800699116334907553761928133549438074175512889228259794533948323807956178218491704697638331838208361382463898265582701927947491530118603988026097965837765706356737342239130387066193715557572793014470241669282587884270412655216182712299459868595416948711148284691463176244914072228957047047550149346526915954285002502403978594221202971948367917329227717442742455278505443249895570195831951768477356112003004213686977194769491925272727637727689854493213657648226341540758270911606734051342238568299384726586220698749399795357789175578068256312019194695313952730691691973087532756379416131316517121407170330624775296561369797558413584162695092481485338252352550680863383730969037677034674617596714904524098145530543011917059610615150125194736456020103869273276023984778764682860366555812942559716024124969448821808847241712368241932682455853133304225269230237018863543077873488934156264452496075271427856217606319037115661261987936232129660541793892841210273210659661489557321863984921115824688905145417683480599413120591669305331790999840719291592438273528342401937253270481326102360665212680309626075619628926902251743884233041562547669392259893256873210446043093228767620975111951338550763513634788041066532413064823418465206673367689173759359485004971113453343430788391596578907861852367270594591057071874025213892688396496645630302444778082365189327954558580090508827697128127606214655630399681874526460619023202676405370214294175675390693895301975119071543496105443119452216948247373513300613006150876188521506695337510521011777888063047331810103959951397690687617674678722387555259900492399239077629239387896465149007604633503888144934247859328705874112182351106699537162239797190326153731577818866620898385197623432464257853336924299795529387539500050543729109922140673854782994827130903666349239944550799779467563435923827453894803985381988686377767089554662630121558007822613818558292105543923360453031609194875549436144099238600543573757268831608610554012826218292910549758722116258208857370649833086286457588075076340208882414072803188330726458724043935141239757038551638021140072993437487902631669974203974462739887483141426319183361699684658584568709683254915616130206007140629543604894124090079718685031408326491835756333848081945247585066806439496381056741805072499236801408127850225366124644070853586308214825966163205876359146565817339109021080174840586544271833560888469019375617867352141821333973173813802097944663590418737575664254604168080528805134110020118654034295883250937289418734605895529630645673160805250418312139659916201394980276212841607019648266698477559231346283068687463746454003544971647130208805652766924331008012728357050689007614546035431342495344020268973665135109212411139400889075860816716437898314239888489713734865638097627064606240474567565550086501717949939657222970393675907695548286214672466323966768396845272831882203182401781646772770888895204009840536133127268073582120356022945368252168683158314802335765694344472736861034256496985681806265531033028697014809293115877494337186329439706797127232662740917632698874249609309888132879785783936466824645450209768407107315399082821537247103498131597256128705305171950834214382609590403755126098199585969304818023131010297085676259077512125055521204836013164035776673162356221037914591250953975151323989335996820331664833416290455999199747038628459788175513967830464712938992857555590913827862467462384263429618618749282470652596422909447766426933756688694675211167285445350491903086328442284678531914897745190039164424791466900322691567977250289691010222651386628371631209782856994204685082656059918797492679399284549443457691718327411976366099601579390060673713958482884857498569493916857603598706694527420748520722777671560375492417307212096562700385777347495322387466238039391367174140709849929280784700209530282928487227548780000759937768670938178739132828267084179397263661955543794095570117721223654460763319872535337867439045679998796743807458577108539628087428935527244665817997117547962347069996193246004167906600587238511164483786884325877670488683972085346215666766651830591589421389851497989036828918034708153815208736248427756346549273792859750739180472506732371483487586745695406126994446615469875314953343666742622008664817443006532916581846446533406695946242881123505319996440498263747978411220047291668685641587789547509461226763187770775538982563273791867553486618491011013214374197869441342014857816515782319146056958141316744350721722958245388131791212692878880657841201058974564515634639050150527693261198123844077306298881520472772022379094183234015952733702937988996156070018644602835386027648351421910593856385587052866201030082050019551828700155348897260779172276285134302401170108766660509639600869638636749055791951837741080757249537017575249055668146920076868630289485042628058397375729138116674018641457921076665432451688898893045129607813517829307249429026695225571851287230571424471714699668272169995847419071338805483241039635084307488759233726913590946618491885414447023061846828838316545272582088280700573867819490139626859542176729439834556587656953506420656175772528873856726206643611577220087268430249434421576171092302091011655186698779745214429130513524149060070312156107227200373951067046942288649634638029809252314474877716932575021877878925007631443158055828726280599468068008983574746138795970622820570761591434775569209599774761285945634356167340504469059232859035298991400848582983456836940997216579963651516621928208038070996007185676488640007878115202723126277858580008695080110264143810835681512428949102960516170058376583777568200785373710599234718026948816138984952043414818712930005481704837352933891007816452874357408164900488610108538962929905965278567355680015641642095983921202503681605851820317064509263953215180008498479468906100746055369677471786832475795845140535074583666782411754831350105807583622090008568445991911808209566041745412637831261606629978176152976730984419232752985630181606849202228816749190928163122319151525940274245190792501238973784063728473727645826871194454629175861635797220812921989292369023502621286712099436405055007273532298044855526820236386132443477028416398526795309791862708050451001974263345825641970189371253420300559383211315526538174644986336908378262454391406937362129739172183660328024631466958258198720752799946156325859279580075315487963716517610776448343037370290810673171054825463537234202478382709846844382705666806620781289918209594599394378778014980079247532014444112712471284807406457094757832569221054270754641482656848720434927765427957197995615103133928771436952516468254719182179095024276287150670052982639148174373575991648351701872313316026517272875596163951862511788420969019766252162248686305360934813116098837672940517011206432444043873432418908315144694713370366765073658309937591941135017572411778299004959425956654157510195463066602732180797436420274163927165692297447903231781172480233454789422253902712479692990808742397535784710588458598748985601650274146786610075716703947925722044569283696028738752187697819273251444243414271788512810220202265922907887312628714445863486256522751240105837688486988109642879705407276698108605309950245548709767245689027469936033600661669531547422266807294973914784839491431735447206808461687338725649453148644813202417940347013551255451007223086163582373180427621662674445938582112888825815348856389402931688969195242592864628820330211375636756707163642556622118643610689440758072803171375794150749574972359669080873348365491707758396900079340499125147676993767925550655460825352905750502778540381653210256142881887918532502873001507752992475297436702412174529308863588066055617592627983812823770623731116441229615681094367835043269324688977721038847286496553707550513585545409261283320314931614528768520656799073241389736193193279390976365229418207982206694977131544367040514876961926050491617435184779155799362794993310713476714009483605206656249813975184514956146189781783283130163735153966897657154177491773461971088079511245088128485258742479328632462364779845375648035851075923598825682493025391709916259241878321117028801396920962000998457901101784821868807270912713089414064207675500198043894616617166763083607354340797917551097250943591097902506379056518609053950205650316983064834241499428704440128392384342489540979714506641134248737914683130649498303197446526330152078397232324875649152432415366062493855020090358064231151375305357504605169851142270303671159272993845090893084668999661800367842370778350300919181048041428315913035780561392004104734958173119489040252948723249176413195888856156568290268430895164359254749320038325820117209990676498732040290017023473607133068193552654032097514596935186765631087397591446574451792709817810530553549140838294222664515903265025152147865488858662872342620181205136342585258308204609194301743697622943852560317636139206417171979349437855367365163143021907918646349809210812286781664841544675247541042109625304110088852719173412509406033071042291833757432187074975078357572689635139269085473668665557846404670655181310732492990779907996515728300234362062576545034452281203603297082597519858637994714142611712406786389669951231083494102985482864785168135907505594845935406846239588753050767001994749458835309495319264032235472352636803354305281439330286106344479314237246200599220393255773229947595315411156185739937157219194904220421756298887689786338717435119275184906155906797565449395285640681191157317871361360488370787828433645099812752404923897077858019944655558365943037431319902650165533209892889327151827668297703411231211013575915321111613989858654738032877204100266795283174717473951438586147341425467841606699659704250773962666704995710327946144938508886577945161742130035745367905734475518197828959211399312075924665378846413949652432225756154593215128316208686986757755812006970998295577273951002074000663574077815546452326966806127039185259188870491768843492596217075453900989614458254283165384086598312709649573290145179777086849932319438033601765659141720978716877348180397964137216387206815733983117089118086254699639353284343162557560048696018318504403605249427051307975555786021658404669906766746546963513213906147994165252985479902067023993331810087282960006213729645043912931951365163224790908929172291601184943507116601154992118980005147484611335151004037810739488614173021062990598374789660194823000925492846823238967359739999691569140270160067093794900209635731531822994717558770617626556024448922215013247468799032429780777326204426884013135541303297936442823892955771766892035867597693532275135251195311040022747645953665308876322463048050191505155169902726965485025230442665392374785199568348295161581668029565987948510416926631998781171551103983556729757117275799366852399477001493977182530294538330528269138481983213299100064782950806011434795001375688672299637134794157114011689009785739430295809861348072564786094010080106060873515443064322189354885969122635473237185822926250541722546130170517757174446099827304928240732577505125738910440611750837576891226891580025839057275873890532276320519899011557497760479319265853807110780845606925593925573430144364021665867037004764329477019148663644426438149230462390079164121046953736644605546676285921265068122894890197947390185844698963297761256397703660149681321702757889859387584461778657352400894493070492711172311346885219883268354737769455820649561151674374687249124155188629326346070821065031813955764445696187801583243905053552203124789572075636423548155863649631350064385174893713404899559758414270686485655192850188580435814429639693482834106527680164012613439791986216246045360071579706417292947788601351827383619808543689285461890332948849273792658732760080334639307114442688463780298483266113829720633530895640813091042412474978493045883627387521862903932904098433628206377997651354842831143381475507605520512247910377467227520734782227449890229961477268186928878801707092055880696410980485475601718937564589421133964128869166269974661908994606006050322525908865523923182264380972181674295305531769261417901056133644243795151709883894848196891513721190902775670683622370933262683814025529841634097155995492732662425871311978220749413428365029346276769353954843700313344969401667075502025386980679808346074054042754704934366692398122329582681027521427765060554549247189518624788403351119017525900961047764427477819549866670517106291742548897327036204698547734015647090555726187175074766154129493715288791131728549803575614864255788339657391039901560473251810729033173727991293693592453420759934115788895870721067124631744922110867288614919823137775440629516765562330267956854539943233286912470264624863258879951482215191163323779018911674367276694563438865000608521091586323807199090272719770201347524427048736054211642016747558325054630235427350557707888946602096168411034650533801380207194239326479244087439919093204041580153475066238193989209695668355428950378417080897250750214047740005963982921213377410810353585511533350668586525513868558663705063030505685100761815754218447980343238312110060946998915551468679652134022145147788662484531848142127768444098048520328573449805742975060323225923358328569410778170611426767214236553018982143713874218421677778536960411190313102823478320064401663327546322192779114992384707568584204670469643120470953144262110575628772652834208678028765652450818991318077361466584874958322546446034330244246742429419398282678594413909040371168446302336279328141070271294016040558257667255486638010055323195496419065109678371283021781264811938504395365849373667350464321556345118282660084546948990251386586778715372764938914523995851551083072648829905388170050436838320887290486861839188880823523100437996564529095326835609871092317826659328277547596594267276052264134635783920755825814340563598625675054603263593750476899173942154010424799957376129437217523763642420527352603938706072084554084542413472520540276206871795835908116561050127168944995403666618945253281369039336516046058525426712669911246954245030171203199957760116076528031697512973487067289189085927315797755375560309426271370695148944030896225102164386521518197792284204295796074059467980099087747036755884551434402449440067579327184196395581862627616907394874983607385371543778955422129254660173800151140892264775152515446402482759407504577774578839498204528133432051644795080290362824527052075653266884214767704793756104928670630968433175130620669366767923751978138109205797796321510820884182193548305855774240237260581404839965219113447994769232873806826704681785804700458662341198462258371611943558914713021868383980457659397917726905768047390535233666621166974383178411696776284718662802288623362704647984873387123520028219287778401194377612476798770584780605238380335902172343029080488496570342285464008490673344072485557597344978084821847359531720169580029281282878011943513892711063865206156176615798190257490192155679573823522022159068908527417897870557556584146137959480062067047304361667345495495820505311292460579501934548335684042120094925494728494933273744555960113834485287961610471435379450693484073666205312214255398209166423255263009499755078967952026786900402614722858715071624371894010518301437300772442239201242973389845077091800493593828109731574344042095843936427849855719544099591376832331612331209362179078952698675479713453687628814906070097062875171654861826693168328008892297217805247843760997790323793561172987326771599547755538452661690818241304031911287066633003605775140665210156496729371443786253625064498029298667721154305538796163081038203486424091829915814587268387175659952751797421722555438531648835659084036400091533541909953164086271046594168177493110553009026950297863625502366784458620497350385256883405388670386758506028778864589134091364374406050260961421427017473941107907121349769178643397628273003058195791438028460278259186404927733706400445302250219212625127983783680940249200364536225964740042521111622841489991028596614710341795629893394236176104341854211580294731831403491307843458579553525999442140124961823517112100049055087593185411426219862961541334146792320655926077973676835866317317152957234426459343483001797602368565824001602595655523694453906111605590098732465340178077544268585518954661773781146298151202887301649650230157652652495885015490079562977884004858503465897892094088996862613938985493385395801824256503317778459531567269779262190816404359473370045649507409972329045761144060940984663075865078877896924711675491873716652509394630406927654425867824206990745947348363954721232438078193864358350219242029408834982812406957120039759634707391052412715535993611946159221320616426767732536704465282238750977414756230929773928230567592238524113293528010907613850403790231829482544492126272959238434332477189429251386897931096384725893843899497283997520444542573510291968826588477248614266490925790048625204602570151940659174819358694072382709945297252050390761074874878321048200152013440277281889120215526351923028348427180509098629318204411502437466246019516132735793871974024601789533653375259866232745935350872828474392517546607955347222554634363052871792273328292076774320902493052424308150291214533927011447020286883838091394280467815936609824926927125239766197305955533362159026084509884302390495775349079277314840477713474435222326738334511637535013059959064708611193518939810780873639654805372747905332196877322907691827625229045180793632843741337645714058803965425587114895022368246411572985517290358664591715638768315362171634441003353943757012366378837637068160392861105821933678169503650902528265345926144861252231500431034484852351220989105467458918104940410573747222993480606916715215594735521699951292187023146897718043990412460698599593816167141287333756477110619151688445289065282286675839520371595655716687671832153203668443269490293798157051298978640071053376870741771723883333374413927953182478782702594340030434599799153814527686146416403711975563901825512068074770566848636008275929770585264141771921065948714163997300958004273156575698418635612845657454296003595034400739309570143484688287499673279267854983954333642531901086598217820801036759281180639748911612715342831161248961939266798411242469759100197888855426435940350144862437951265240677382962455677071733192003018270544922354675976369960794036152514489618809420697642540090192692382107946536999800326004856662368008596788784805430759217632073967098128156506714727294924198022710085029766996960282073066217933491892501071446522619246767169542879904139699020834728430303548142604731840341501947142912557705193723086845730291146792738548184088051178144519260759130382816155546781837439053910175619937984864580025371674214359939813048898142457145319933086581267777146702587357187267538305469982564529750805215057454160513693317878501440347826501472192609481293994524111397342314182694507637008731351225757554438586764820511469934854837485582166676461752148001562209580562173644481762850127004511656374717601262693971474404824586459408013670371401828711090437827776257667442580200468873699810909013061289306059111832570894547540951595341546451105821535747520600566792632077972678785417675882720159592004479185301764951575691700770790276925971997863259788487962728278546291086093387862868687197453231761037194418619228457784759479224871626321005226014240633010147511793395606085016745154299872927683251162459136901941171036545251106206292680945210985116951687568319228258603632903086492821724601835635558047488639431448839129857650798115133630400387257038764143417433098332341689501821068821071817181693258708462707388051016336482084397417439526450021194501015093014722041742970793590248044854160794451478430803962232497430807183280577366582804642503519218085845290837125809817533734325616644364909194129950073511738131079562295506875120963896690631663926950432621441823366779466479281642888813495977057934678482314989959152990242841149620036955683020289954895886665632545639404985126410658162864242041653284010684114270153103541990962455891381167620845622964421982129289011349946540116879252856843635361955394768271601035772765424678039855519502931374845645606821856062783233790625665589100830958610660638154230926556356516714521843902883678371101181318641835003226384523961712283786632112937818561712869907056529781042604975416365848538559427973569088293458218672456060214138986014498391741072297753276946354332953028533152025525077708653004263606638544842663530573505292012885658181071852785581610824168012380692907806467831165455501540073359838054327284332117154129837449945665279825096223630923876217963144581879735163169675643912898930473686280868391525729899662974438780487512838410178341405535596282894051468555780343352630791886995496843569193029830015854254791481416891537616027027664364926814327303312700080737052809088304578547320219691721851344960945647313868119601582820360102405635377398113319874025346490387451259402604730377921057789277748385416776338667430524425382647556698280949608201014944219716712574070434071557789427333587117266700251984399580934727397533533413505720133692196297179922297550580168533795908452671960999446836824593820620913530072426929237325930820033533903333879712953678593072149298685810149517139683486334316146091383959176636697941502111887113939469607131354557644694947808247161391196613492527404922901278133618988336443215157718371565873636423485135168720154557440195071697286653663617285770259132793254285008308865508206360826418800707870862335439653366394392415306200808997239326820816708908564478352533825495611177291694785953529534177782035683810447244078524888768835883628867862014681649438127754603817765147337941729393930154856423713197660846289293688810901768717568811325120224008268803152705822186967881104873582383434789643840645755529571003859100362580533500659271618341587096370435079243479135347866741483527471371200996417680323901395948136867034508222712579923870830723518658804289432696803358047838377790057519545027311121508086094839403716534750802638597586747982720062183939571597018805460080110769786492854681719865864544954523680323958862643111177020345297886373132714069233360876310276097031300493227319785084438387820235193802647047875288917089627114318691511932287069522024655293854714469627406198685729943671507698171402403816155878033745356435645906742836189247704904140618075282135148994666034248466071646392471111680116924824042194111386365856677162353859006202044394772312277686303371594855330433952502075979909863854351167667051781023672715603829616454739795803345445363578512494535205207267781293606953907489280316888913839433527751329222888706045471218904463161854118885918745928894478555372859377670561382767126561077934614096503830267023834343528938959560810748960548034068163768855176983020780874593379695625368812188206812889676668536707442207176296753532047800763694831136991403984897924735769005838343144163592844973952583773478811396819474127144991540188718031898156074742203470827048371608133261745581153906866916653893734306227175640324477514073044802484734106127811047848879543217976943843503382793988695875338718081761785004391096626645226585154511544387105587634595702243647562761592238963636062163136371253233455473622391451185775986668366139154570202153054116939341221956022731022837807939157028473841385769868044077354923303664257780482532955320799282199645241346991955246478827366613708159483730450053695398654471864853817631228024066428394985625894813004111178178418762453147686144842545748980511810966257142540520268451772956728634991096456827107295066780554063381259045767118329100566488431152648122979911466412515435089956004435828028241703600988840085916207139507253721511066496046788905523279318393848395857478340280463226268384738731246961473967888441459176389273498737954080594258806199043217329668052305085902415487997895632766747661405436331815949104475114510937543667206400415225075931820809568020084930211745762744522326074367285939910391695414416837012771011996371227045623817410038973131860501598463667099966462771836691057747598331757126954850439901425860606525763888168438474800813114968059329193026125341226134603432755458345507791856020736139469487754720021330298363069906257721817696935281994669720173708888246920541211219950675431407826843571916972520776163505161063840178980922760520300318608329207648987293580656563792186835354697245834024479215160338708492079476020415444656284359789381261057633211349929990686155472263483281920290765276074676197073618817559315025781627092918008857072185634092633396424368753649504954541879497254410485886663584428045676840536549336094853111257488582700119493702372374898071862515783143469982070766523555278658893319335909425234794775244612276955386381526980190799938043677818545015622912310756750238233465091989166624430773856413652700603229810929296417352964972801873979619978611014839403929036621678003561883166731573713378114702991379749541477723369077795882361411153732851020471643760492544765386673648756145684422291228953305472372347206016980633458108361493252551521675305385191902181380028786155407708634735274114584246272688999799272722239222167620580971244408872080740738683104320476208644475542571791920053678346198740769875327568696576471996634777587000517921840725304209083450812735478234435879494573747933752096004942509706280208601991974596041313128098585994748554670324094490575334842911467050413215304336004862075726057115879486357235348613074172189799820433568032273863110235655764132763880874339802240455059216286574861305662175200562105891822823612767716478805180275460416986614075929747816896627653130254574501733439026055379396967375964126999635311776868802656270772053830921084464177962078452920198670176255953008313435582111031450589859297467137784632793121474109964454854048036721797116117163335133951085244005506617867190535561553859266714180569834113424104343730500316105407598619614642576975192337026950443857351638286613817592719979061901947161265992839577263799746730752886494767896316253449909019076896269174224600301223025872175561842128871696469034176381845584154395721093421902228075047191980187966232372262057004343980787011465005647331183939317766204917818809700415719352033777997702458333516635579268468974421778255597892250812541548582669938281542383447577371431305769638462618257778234942299191981507071016463710141098739198737587398193651422836782934142239486912707663537481313605517187679617476430157161698254160380106389607514040123147409744189391966670206112438938618824574632816320296539328286372115177259781610494968261270490449868443862142728746107550469808442311386686667554485770803704633887958411807961517392925858098389253252807191960037575261204680362482163461047509448490285082689710019064697260479739342813254660637010524210031050957892021946603275659473070623694904246494695191462340155352405916234280168859195621826649841786682728367216626016459190276727515225263722302666715916527104094765879953070983513750051674961437153880352924898503116037716560910673455449344205570339362001679595689513106338100447561229322338438896452206418581912135758872815074587645323031418459777117827003791578240232898437814879120920804056315273738429879771851169220482841075614573603203576063149716405798842991883499493905775428187024718681444199491590523755964225563663622550756747065469091640764699450725148682095060084844354472151656243453257393633043057083864707980212988567583960706169084989292330949677242818817923440524438838970393920854594863026697107387115875208274153603270349081773090803998898826723783804958170923530358685727555290889183173407470138100817556091371328759405512329223890962412326266163493020280928050866460823654746720560422001255088010789195773202099550952190865380441659524627279355045371769278856164242785013270247521051673953220851616901959524390310923302372569677271575722104873214546549335179439475272210982662565427499451988071300222062789161895481742705738840016136687610404410854685892123713316538658637779787171785244349713147387625218332839495144052966011233311239646854345402690160992016516510612389129902109594666990346007643844730190322940540413351692163574477869114880156770478205268798396247096474713841621887579660684251409969540644281509341236702870927454150493025183005631719077808568814538432872462634624457251640304796079457192547989121087201909104887547933374095934091618506022620777259628753530413730833366805511108916015080637504532674447583520744044118134514920707614724836523472379073212220968597483147478912433822495159405068807134888730922287196109703397253439800682415715357930298413162658509132051569739854685532598534125036670139087129475452055966411670799113073102225478694968254823382802644887716539019668444966476113524519191942245895211316477390145150630918378279818867532773935929813287767847618772254533280107175794176085798975685203170313608814847709030047444187985937581475509601136184643002616163831549951891963980603949913147953483324380361034494992056509915890337917683831265690208916203376005993073793069876039832022473529091213156362118700334444284902570322527763373362234989010116707851092863390441478767410347979092517373544962252201724079546903140411066280601649784884544236110083655482522239072580285566411899915514531338532388023154550229406731860079459797563403234468042334056054854217584345358997112298355867632073192496163020190212785410035368230436398522519322336708776559233492740292725860602778822809788807507941723611833263004512571733101586245479941258969705143277905696406352158789294899766956344262148620807765000747375832528062435971561875483010764683752329131733899987277948788253366065741430663863544938159016966617508860939931109244198063949151787721579372865778378794005946049634066967091634700837147368989571450443970459788947078814331347275378755998943111776488749703092997290799671347165552114200752603083077523018102740953806725522650603278376064495544463543159729636261147410270117287165388451864671669504844179099973172862681911037779884253234101919614551220042635805286878567628199508811725503239273565750911762865610949661029870276242738224876013977703649104348593123910685521048437934382862227251866789383463638096331188661066715190215456980273152802013063523356385341858641849511989366085416743281610153526075350666472240661113414922651724943647111550173343156537654112842260813879592548058233243939248117345446442688580311907534687621187458194291532713374783014328249158236359257175707753465887202641444764980285125160499679648288439327179884131839005496897840261301191085627366264013746345416974940282290631074323827925155262937705409126614397415725824090792469665135302465244252191143668882003655239170517095559648203044938375975611812341525275978775014755768233910269397176479283851847913394099336936851939564430329898765922266236380225560830803102466328277097899108704713287029963757189331225818174040979727394959064310791613875441004416824262761650643248949130995877849494865590327410461901080572292314748270175466336620304467577917879268443055543771497673575286150335119197270587635266802039739388738711724912094951431583221922801720475563465354032807817431639089806137922446760061664101281004452606200900694078869609896143354248463024297532506531177865309064027937207188970455116183263480142188110950126609167630980977320760534045357104978948632049889842515345211160904475448225588244479655752356224471004939886589676596747189553464347433931995322566609316707906357583171407966832164763950085625184123150660873337513975471625078428113928495809927617736175518807388362474461012505891589075718485515494379808115486314903953641342999580034375239822934022437911191480154543745682053910318053191267535479427468646976540499056017683889098015274693813276765245649703464402382669328104112403752896745738560266586676647136981543335652070437157005647095081744195083026393623031979618001687761119194181432063656269819085860754795788994560831784557701147171291789063066931076469799338377923277039133820876068931479811846789079197819046327098256731183673689746644910931580310272230217554186139436556665571402886573144543131842035935859289324675498848029043743672981989514956792292634289498855791485939984306934609188878068315536879738800844901106891793838335231515442647470271926252193594480427038010341753587047599672396218280399199312926698002988456721789193308812314049509124535242255783869960255447288942582987615122727749244178925900938465511924205462768849393774676876802981484192591921759072618293529397648279579783666354780908420662492040208324677014877323798470380288987898377445432333706776473897049988380576469331613977953186860947670017418866954080720824151070324763823421016904748158721463798722771811079798887594610049108268496822376420835621748412398579826200407690232775531905284496780804673476091714745534602244311261115817339262456960481551125159479708763215274406404532078555428779756631401122272954942676536695187982622277439178503479719210012676568712876509250384711769425043371252929291223667732254185915873451868926125455196615541366095901873325899342767789697820884144039311147821319552426763396136952033232601824284831342769893721788413743237279818469112126138586280339291183983539351337312589459175905343184943389879736612199762353316545107651110238569017143230896857124150528343347535696440510411405298461082628841763868400337561286848938330281790791483949368716738535803237560809711582353356591934433930414717158284601694479349166744237928166083881373540282890551842883448108078661529116958000602253051465435597310529873046938182318099058161665556378265566819408507252169098015692603551089458459222113529429289753956133167473697401792308298589926006338261262104325158929849609899319058327663488278639916450641897843719819651377136385840834523437552777174351351898295147489101462005547055521061717218686793567267630073510126476322704203468072060632859194336708432784854775928144609721774511848798208830495261998766911854096183308693504649346177744554034549884129034413607927955048528992851425937106488550751172735967960895878186183510314826525708588711258358417311495135099356171381349098904763832248407117519107988102876261764012040704112793682109833101351170382415371710466117726533434891576695302448247475698067239159806365401009881949958926484954883668085921779786718039681188326383435127533250792250730000243858979065772604436063274066783525751768529911853379351947002988414814359249718430033716088862913805909554304151203840853407002528107368628932869285214676774495967875803821329595755273050616685817800916484860419969435283795682817528236872036485359333470275769337885289943200181140204854661115301757610556577759833783232367294915452449717246948937560383915903718977011499150786799222946369334549668470143937655488961375044434974602351478173671903418250791674235684064804639525534691997224031174406439888044788644143030365012143621448492741501242696448948284085008893215179037956884285371596507591673367342157146369958890147818516485551310550439950402880607226206923075120312674058788575536771539375499468871445010227468180237984028454197208615865354381811271229570559653974193768006655746688793773612211870376681093132438535847472655717571342883564413176188313716455746169478978120110871227006322362953409895131190099724512483861922980721700678226923979020862450231930341806421169571237315208917160417147056842748401159877398151705829567096264983528996290286416354092186273302785470074820880252689533678009591804559901848161049215754211120443350541909489797878171599212353669057531718733977185108123843162125322110026443456529011618039883711672457054990247729332771886357893368787999500897763304440050853090044634604859358683646198652726791481606195635408661851804380498107773871708092750523712657784552561871804197311871017505317273103140410282319811997828414823507462910137447656987783707972824789072871693846155542598472770567706883452115434292988864275693721250688904463854982307324055797460962852307907846753236971421774294720043705329782701425895101560721276731309550674178333177381332288103679885523314033854368825924721534330105591973558221357980741520985282874531122989716726442279995008935552775807174847641851401148513307742235349346935013108874691969986554235606566303665572847908436860771777401887637546728215207174429378984892627824922402467585375830897233356894615805310730269478193605431901825021605841346803543460863848701139543855295151132881147583894552091317615335149440804991137923121313060267504376599995676081330350498253716573455840853980463398376790571882202106560364748716838029254822830281466970367904546050707990899179497362933657677484599655376664452587988612326954597007442630089655151928372459860503755946574888984238391386735774652849647913193005311820534225033070682914658344422956595861445631056473325532771439380775642524655258572264465511993487048111928733729618142254254468685193936319975219728163405419449096399067965000820275177479360174024807257544456853436330100514700748060958554235854286832056859269739169326190727385059240837499787526752478248892980581951301485927284914414013913701129689574895541826367658839585017090086098396780964044156331467450280553881026895668029871698627714267629226135870959608358517998863769914059944858979286793196811634258835742393735333180372924350411750217924671319108695636904099312896940574114868145990987879525382516217175477915201795104603778076188758600066898841778236760398721556865589325772313930015412708820221348926768417437478079814257292668719916970980541151220494860648277361779217877080235088727537290839001604452811689837638134460231854225783911285999781749455736860803970635945666047819728238230196872911716637375764515372844203533621096422599351790705648636603775677360931078516223794935677886998951061796056298042622416913766228949035132092224817238284418043771073455588363806322356639822622323346704752335158402619623866336655597257933408621405652316523786199301653660624168275820265579225347331299397699901534241368373385315643076781214979842416245817465811312186961085154533836992187169620335672865994182552013443401804312593071879918430107909784996654765781740638976004741680028769705202102692101103292181089135088238425013162643525941168232424885584913563962418170764242380909260571168010765786630252621255634697603396856306853333015377756454184793184443353254947060949273246530514715427538001950845435172386381107181282442198276239738342332424314517276022653471768573150716140571452114221869070252114258732199822111800024433761808271077391701639390132498494966262238964891437261075759124804863726806603880583996315191161070847470250404418703854236021481701978591701156265556810555678453012058287811366459372672219906032102999847052824544276852301213240457923720265709601342783501997057541932882732994520816399669085459290722393109239165464767199868411192961685476620570231453832573102333762059752224658795622353838481371113607661676058314331675007156826805490451776261196560499410482351727112431754962110266588631256336775046117360129292739157580353028620888779623595831813709630904340608919250946446796380013551592824829931056869112565925531216816335757690401014849302169115278938189030476675181402400491134031193536885898725699571717674399451825826694667548006148788856368218792162330597123563629738358981648497160309224344930138782622661639482791165714078561209079216332559165300158728831216483315190894332252176097164605718044006651338742053189535944857245444131353710070763529583648166355111744176846775129843530733308072443257701022293782963175489639529700712977425550076717247928406222048483225240160027980848903201738109847879311966273649467930660739395603816908785892225361549401280194304358356153485925837513440966945712876263055222989822541412442359003671990485790860680012759921063736888074432715140467580742685583130941853270619126429851205093821190001697396713704334982835800167374370036153603729398478392635234188704628947605193760880392686662303971046611324779792384940279802336724647966369821109922742643843868912733443829887735315294234704303916074108524012811057326116029114412979265544357386734118913592961089116078490199447987373019691509527462809340323970452785722712074195326150913569990538980952754329571318995983382732085670463901024719533434262481115224570672426031850558016504617337073072474999381614300974334743679771645940635353223169177924244805469159638900311537471366030336311600570808673472159581353799488561696010946157920328381153275870201934163800119726482126753416272242886504041221693842792968848302946378172904652431816767609671428420640429740723145642656477599260739312477881111408661050660040759170029091786197609543477185351345341061195985029720663822294334900853277918639706958899092492612547215203715014995129728591261063217189365558024224147557260941459666476606993100756255639307271493545223679893734026144338257047610614229541663573672735997629464507453588629354384988781140536574902152647850225846042246435264713487284444604516106562195135977724834651172055448035269987029705029207411716517576656787152164137623971115708242756535729025214436486348727880563708843906552043557647203764777899548544682453244048676476392310043398475938706767308607542491931862072137156979436824399421707436443540646827635661363899254663024620402172122788455564890483387465300358332073764532430164599299181140777869642004987670557648581945405653691923507061583669410021526369165057584086735113554925003250801904907991391913075748653391540360723242769747440511407996528726737662195247437161041180873074566786521153470316563524624776594697466767784458343642445155582773904496618411164045303703507448296589952159942468057544760393193995886082672838413683820045801935299864013354211865971898786715598859152301731244792759285685274039978101600412879746539194478627369559395849867499351949196887311312416437116371266675965237267259246388300932019550827278700142104995282404338984126633562448192770479480716803450741970261410935153978129743870244843339936197948948873486017310816814251952125131954698823334968434360395934700286574310441350016726858008889298374482279285833015628890381148846439291297241909967778937442209893728404463785042322217275109962359576903529934265460700024775509295366309714512117964209047174362859923257967219722431786238803834806861418369434401479692474986894416358292621914348108852712322213359882448249123688572615625450145391767838406521483686606286252522622430631462807843579173795595886540015365130114518536469360191450406527545399149428149776170816533610983665522878060406933164694792140696966504169064589031416680009429407725982429017130229464377862505860005110851933643382145351254911279236157338801319780946206474364718959947045515727421990136065772390949393590215769499984217197858089616323251959544299027946518387924202251927193919151262748134511129279073387671030019441525956596668204265057409065459913774947490313828205830892550597367539642073093531718431336342093280015867587928647801692913137002509210891198847924161057083853918540272303635311051290853853483768026499297511317088799345370538601385021498789185207958813678213645295380301684347089313607019515097013347616021756539676359166463631953604150494447291259829546173173734800100089240059943348772553767733758106775696795315925051672936133327424421025898256780550853971833898091757155504950937487003894961338856902060322525473733389342539967595056965277393409722073187403707589985502566894022408930563160026705819340038144524204057085079214692384424109299886380476217019928274277038053766462214745352615071668654129828117628339269065376183200498860330332654560010962340930682024715087331215109900351875260021375112544994228335823497231594692876945266207968199711988444479572291087303559406580849433176450392324521346703117591054858429455445477994398772102786602360145651643911255439924455271584072938620942838387552608206990671221134724839239449345188608688397657537139935625762674474050369530571522263411512958086237993043863717510417198170684966998483353183472341329399890361655940541834330635174796996420549227505760224082340793745378022465159385152663915943029879556434298003696391144085861483456921120514750223575533648741411868598498652005540789798596538497238306684398620431730661173689886869764960869381744653330589821250909359246004132952528610533348218497888969636364571433031840061385393658568823565995230126116925999575969122849235050037856347357066956153107553949524006238145394589997987375066927732030319254016724921327199274141830117153913798851440422964449282468319676129069412521977851228035095598359258371810569674378575615735138222305314238307168185548602002993664052204067214008948708178407836540481164131432481042844192658267021627416400841808661729127537276862886482539437479104549356191556608506646323226188003620581940749298910041922692317172648891519680512852146791789922726818559107543318278656503168718240977224541564165544042957315886445539663501811142284463732132797840242637051724060728606071719646086139824474384299143396970234308483747139812342672489860754329487259913409444976303750949403805610020614418323767457726370522518720495811089643596319660059638311162644229318858610992872940389391553512712595434742668532974434932951781501998184486622184180251112623928442155944192869065807283615463330223763514624508603673930681619315771747674475442955093785176358737657969141942934806137305354322118827794127004503386585905941978640020207548105755864556876552383449303621997926717613518687166377941597304809694546023859187138533661814208806809110296459753697701895881877445730885243687819498836655294770640459592004401814488731126038147424805797551264605082614069316411903934715948703272732802045292129839974651259989235131972873476138365825595738136080416806008102372730018425537604666771031196728467565882513758792441046344230933224710760040797925383644093715670955312333891547298701580830910020534405185824530637233448970013598919130505029784834166488753406177100536844968954094565083024279829901334238316216152930899044476250574802311363586807343058420504810324693869005635095626484930485317168672203491582776185019752906640029564795085275327399057243410281411502029519071327583565789156807615971306564133676693790834399981647986351704157515963722979027310966671243417763219453006636134929416464111301108318547934009194481768734368807292125802753308443134010573466920461698147445792119191875707508100222755148195619277827012153465570433810427761823565689059795000307805705666776879953081349737933711077763193448261758278998376868074215798688396574504068641284214114731751551339468361932499421129287638946142488824080185139194237578890476370430317753993406316094993027417434728522007152483961919841696083042429934189781049176833029967694547568112905010620772585909531034139969249517185715503831229091254408565223835633196659541977221668695373081773901701139589002311078694364093473856249828497651977290028138954967623200253030455649182062289540939737319427198894467269313604029552208398289447275843387215595703166375822637200360913736030826982969152868537730113234273330777413742058301771380395410345296278842627095981953528216212921560238138252726427806295529272129378811877166939375745392837906184643377929042572409433178278105250279184611229281666938747689470808540043957912049112613709945501512487221611271160223329630436906242643136092186983666673173481965993743968995942265304396849409629357406613458355823035383136788136087439880133401505346584481301155400975825213239821941140938325396643728256099071052306440637000902729996035732152442718670391163713481220642366650042686728979594489209098987938575797845632972948163535803079277627693944391467430879611507622835712485741597014951742571238520279429500740422631459675523561534128713135991357462873465832414087458900966416605462586072107272944811644844303646023570544035073085083232006229724357215155973611331509648100297923344452431460461112856268795665221912836077592741684213309412660975084537346621103736676260225705291592536046134141937763922325016098664140316714795075934819913635969138653273753440273932886542106293447813029791681741789946089089276766210381180907633044173297468600136081593032333583566322843766962042485150568467816442728896643799366547267543492358628822578011213926865674281908308669763092424684516592890199751107450830522849652058513481505689118369692538475551186560475904145777788847392450882059649507094310936273034895994026066826384887793355539781942984184341987660827113082355867099729967559993660853691391861950429543419387957830204564802891090697209129716421976828845420854295838685654388909533227772995712981462927816226630014788425392685205008470119787349245998920473760466839281812711696258185285818195548433649570974322125290282476935031791578360181871120856795745995997814329242196011672481638973599372708658411511810738401946487384282398441757556911122836616829135731607044876970016291678113622443878276980537692242431444762737399799538764076096864711222034619429272516982919693569894375695628446614262707845312049639371794048143294257035302947088300528627977616482021653401721146551017558922827470539731073185946024100310904541300986160036640819304935387911556281036164929977220041423008938158204495866314471500878978531395381961029033318627495555635688273523815352421895851577606663598876833776840545245983492116144728574111007825658370425378420031579297131372707470967489129341610811113142189555536355152865847274605059198637542554168531421655045859095941088977247220830777501842797774530543414142233805089340217026182982997702508947267219753945782300987467536840716004822287521538729823665171699855648976384543067874067336099554222749332151434588257440340978012923515929276075899978719436510189938102247392967226099910378732982767646982199583314922574740980848380188327449860716829240235644350759113991987306571891962851379137003717768001546624500380864390505587472145252241662196708220291196850585307962970856889383121019843634603854687287713603220757321567084964130530458721075373346945777583596870213269921988284982800169479854165483269998497811772836387780455767788936494758753978291516294858613025995969084501864092377858166358017396409575398019916802013315453634758617560755666726497204427633756165203586446720557019632233467570675053760348851467834673570564019536179787256650412595253701768587611804669233036575542892203236407676861347441188100875049425241927421077449278703569231739087662540162617743126322104820284967066152192169985018382691637305449698752667996715615721441610068449296825994609961981146008586759015495742641364761331636220759149406520846014047265368104570870326238039448080513765576877762817400552785294451856257510244212184435385178927128075145942617351831643871043580395693171086984451770573991620783429159378527649820335197995001508540454278517308956694900880871850613028507079801100216323550141277515391263186808095934670137086937247255797879830538084494041040115027803168324025182969112186565500015974117431798708422932021531563390057300890694478414878218669917807156108029546537128592902677731900740394247400068189331555850356303822585303918692707309606755403385106023244960045811511756861154662093779675951484334423564859235447525800806473693119602224204687731978558088979722674272093681885467071376863822657756441923214922723628279345776979212781704756341118611967235699503956669874490728494919494844186704983136833431720280145926482380144530809633583937030029308628265981919732500033631325883065630855905098393917436251260543587263524420448535776853662411001572927537068021005305945995598973908419990213545291557947767391313161787926147029025581086769444131259550728703604788854467354598359823754709723248773252449245428947338468129112962271626555008629058683314761324257277335461947808298371720380845153207993139587284321767146670248343734648597565712980846118115609830283013803572359564593212642136252496039532660363313386510238231467273930519505625868813401807370594637767362150256091149658510138669318741674210979162331545722095466235460142342190204085620193009246409964173016367490813383352475426851081591249360968075446650626568274031159151363832711300469428734219456417021316732122223287504750477733715319687617565228913173839830897651842706896643476985831895498648461043900831713524902724502719718488628051010893105864639906520570997496400766486221041921010733115326300047244116136552423445552197561767218042499086951104138229059637015443602118164939141267942423703351003150258954143453542272160577035901578471865273460632819163009910489559409402395763534265901529967808903048615577041275313398682962561759018699880697631452119232948661281324054635992230967958188202533270111548916335433098782732415860481167149359077183710191152462000380647547404822726178674858330613490037762877638891900860532598405983257787762741162346270496784718938843711527387140487925266390233797758362628764298839957559359588318811265237514021197198222717375545873238082441197175977965275482795015884164644785458064733783621476672670901867194353729780875346883528905721385069220172857691471304214286033282022194744713336791188710085690557878055997315799836414449782561193703129287334703046012603156130038647615630278033825344735132189033752762697507885342501121252139286765775781069273488283109165239842019247850768609112924426242483886641513630079703752300708482496497476880871740248087473646420462697644450148999922677579156922704214078633041837467640513670943812357245986970440408859958229447728484242717880262885462467031152216177159165004312485307715681782989855382549695469478397302477665933020291026736797991917678750445347522354086599799528038133612277059156445437430560182525105091719770039124383558791100524155865508225411994999752503794776794875306035000817852303159001543379751134054366669968983820330251772055354443328397212739920080949603777696044418130435577869167991478412010102178755857114176322157271542541372338370572344429951518108039265934776970857926422667828024230850873771789623637775568608763577230737490368906537458340126259786157784538531777945233560030956558466057145827364790732169879798262133129304720401963870283321388094923190742239983032758797770155803360139881214971827779885320879186235120181939692510635575366923175743723120484970253133469884475368081545372667924584402584644458704736306517601869170592569872684621567729586510215034827040172391384810367419837974278263148899219437652039487175980520711318820882333893964094326695546379740931137898171635707425400815542696892468580587971877591242725851443005745648660140950919358749862104487018877546163499852974269741134108350285883911920741649793499406934514570727902886331492722895603174104296400834400856471131015938794714042240720221129039092792490851135294749337391567783963827144563508756471533446374935357772869050834249167532242768909777974013780550503068769875897662239507388447341051505270798765303684714210035097143391592876308633777775705712394078174658861110302225648653134619038585284681591600222387166785169708831741343635987960106638671133130052480504545191061372526543985379011345524852331933220461981476069722224770629546077421429214291633478764392787789435910259427534849913255264567608307166443072359272256158092282295800281986283006394798991824700011287785316269789028429059524604758356459336214059063932279127703304134992017899104533849588806395693094271109831504490457616745804547214050562789440793561364894670286386730178779113817408569285481483680749644214059355686106048464137825725968460845823302221279103219825080310435481756047292356957918304953071135702705883278207101277602644131697550697711878821697055374546051736329838398895284867869794481987543799778035599424809311127881433545408889473784704277329227525224888141329130351638467475136136793951910543652262993291617118520260925786413926596695797479565777468765315181612383720358157026839000142438013943056814029642243470733321739652740006694881236433115052449821058712414058178816550785270953358721154442087694316779010185944762408518078862656075406259972084696970365329935217542472256180791805110660924602307877792371584131248820921068751154542488351608801973143413777056563109451394957243770863241405673615703826671730262226386836989477142223393633546443568628348081699555208580674676506788928364366622309389522444693785722944243212433310588439935325769305141820893177937181078477280871540793606852451290303804886022390947571829699218255674473187770752690564724508005023140003473372060908864989694562221999704825001138683377342173232050643691585890927430186612286268229957823181937058722758155906614571204746143811681207875841628644948499773137964247104647136822733592117982057491789508383315236874826147268452491928849432910470471733571764969276486554722567257895217982898721126684508844582406933229992123716454162655953782311848181201830729536298618225383763928051980504151453037783964116512057233315352695288467256993086114141473155180138847159174150982342357814138421426590568332991268993569419750912283666018921867790909840894732949397117939220452633643564237343699222448439049559151755654357030120561013440834844337828446599741852758639231647506958767231867067742510699315932914306832430802012945416640988678253316502645509283094457097726747979935024546135961020247790943480799289684735049955808905290622889978134745741712343947340495142786900978303750812554127871799494968042741428288906935119264215526261091320968614407260291457840433480649076056445647311365814510117340293509000737559110239754553842407010221220409418092369019321170756733502925282210879227395948404235484396833773292284698386313098593887119366762457276864950452237283170340319619549555088450389981381777981761576552679716462584632354254537027390672142817639664042497730860853658433336645058698486385044856991686019017015590488649687061306650286937901790901674264507201396498122191034983858208469551976823130836217414882153669126002620395542445908626480183244026230494535954711630030823120620319655322988426202781473060098731073265307297550439036985354073238050275342421604807745846457861451908033234269666913970837245307325393057529636290446584878856803799164555788434748209548615312693940634153580824076730607102963280957006578713897214681408973096781300230376402271526907413063276885795094091988256984454996805105632424404287442656765007741396578868276000085283978499844932292905643143279428450139369377864804174429985411894639311238831836171913284772986181251141532794246992914287316282050710886314522287556463313609455447382836885888654633013795673549370696350047516814978655575421489682673328146331680909783729536664488846066029823124624807791670405884764103548928381411404951517403181178484798470392283587997263984785794281513653228089591917641975920660626047563144138142581029818979301670198987220068228168547615173318932649446522646119086483011569932898515584267659204228851160963771462209694043433979106531172146254310919298751955259306215471606474365872863169527510845825689557219976450639421316660145140702095410398000126556856091533402842332707543549616744043315995137974418693135137024124651922087065277425261842260456066035196039705157793124717120948674295010620473765165324319705326259975752106074075579768938763800039375547402770046517771416000598917127202735906059524972007388506338110805985004676977072779280263761882091258621396590732855500650302400581188156592850423450696369886244782751923750697367140388853049138859189523524906036634707188200109084610611615925430842304310354176088504691484684312766701937187055905461883084824809460565585614525983754188352318433919775718002101436385007238118458122855505706046153068573667050308254563211920579781526352083581507036394093159822182165951329809721523827312673515098220102508095600711478476213370272527241519957584251036817129234601468710488761318967855891794306044528046737251124385482482065277107095843399134838304338023682560754532354544731887904519134620395866048032126599196913319374437257845250567275565967308186613390469561696332640457287370293145090645623649380221184209684162311083358752064891334192656299871828953735188052000634734681890767710640405744271328547020306469102606512134004659407276245941095285982491957525906502089831630277760383452862974616791621084085184234767537810008754941561100802573153922933731062089016714241875699552537726896794155170261445358627493276309579973865587120250691679430578764490320232062823237992924396033416992179711570307960118376749751667319733913818798502092298450358098971782906459322265879702546176887562901163975496277605112179525443481140699404668457641317814379068988298140558621837604459942264540177125482004540037894724169969929043288913306851174029686946954890441354593559815978173025588756685259255522049515109093636990248812588776987817607356887876670520333521357278352613552456123329593039716431452443804871809552674724921132128788522782681872350436834882759708486506369051818906079287059136461707266276905814835369159975648204911955536349591176870122812902036648626041227312755516355548826454538550357303814064321334825833202115400292797329801961454359840353642706930380253923103534032032633463493277913006137387760619856242781465953826006637382913203692254852300688432562059456008829817695825494519870361238906311315231028363467316961139022471437990010217746043625944680373218949749083906794576108396046688967258710665006611641326513642097998267987164864200628336362293257508656615353012863885482604422311311953258824994845147224249105704196748239132213033550864105923282770529671877123940050971813539082943108207236385673901919587975321794117267422928169955066300813272660032737224793916390699306996284867497331616198727303807875782980383508825260929953147451316282024094767466217183784343404939312463283972126835332648892612324591959022902538472215885837615900644579788731620381467907943219109632099039402645162593870670978557847899470146170043009840393469416016002577089182811285478866019041214120097509929937293251247861475608192198970685096368596605057099673441365188215109414546606643375429238264414069656981891774886800262359268094786736298980697046401652684234672384768163061767358530434473127751892267586245952529490549021272439796667882047631224922768269202121261635145985538031966876687594308252928104667106066877692580939371283471620761507877020501400568415243825494894550920597607028800035701719421478189803050748788573711296821362434682497557039921459408095874237826077089096117118190573264256543360260623699548359818933358641264907619557437332323499257335270771758075991056639563194034457886808737405187600294315446924546289462793347177221815987180128217725877062366338335390517263473972479947892823142353493346638463641313317532780709391656934234937535463646791158567103256985983872571309375195258626028301748154481376045332002464244884657360167346651242373614239248814238802600907133471955312672431312723268420330034016941793633357241104325181218180887667249385019251247034977561421011912462965540263431834076450823707993797259463846902178304217083974106735723653668777814464064322594606614622505197030328959487407397557282650722820024947363730716289876565367432613984269984291264806674468329411622542110164813622084377485967707604186321025898952361974194419914301815002230914576927510039284644805002867677404430838011740061333765247971491073625420402181435146036613275939759367193948180541819176965825189770513884841700591920194039283678335654880354581601495767618831744148749735865738435142507600091443370686567070621269435918915950501293060688327849797624566627373891523843046045803204487527801148294393837493825768760633411856666711372491609431159313867625516130124711208380105174152861803237424221130931136279606560391118422610864807391014733721426527307030660145022045691653042374726846157231168734090476668718517063348987886479229858809158904725765078749176479937618473932888587300113171044178759318200426175861409304389365610580988342495818154190657006032111505287818406661601338335157236998707759776808020228578706547953234760851326935220650545532812989912049698270863027284924965378888183237710224107289613990143498734714258290657163657003969240864769734442664624122877897684989781553453438461772567520745607309788867725723621006250133484583281035455559593921181308324517532375709314397839768071990225818738026630220795330643317176716801165689868871314018913747300194804563745294196321021005978162177678178632360809892200288618660679637248364119233236476439379393543256626292451411559679166664528738596230222854206352775679413895247910289490462541693287138799839984805042672025322449558353013813119345667895387088349042515713165861706791909239284142005511402761663010178917268383414509072174978989868811859286602446142812094987196978671531874341101524146851442695467962249009511411127504611241730664038589408701278200053946433672069641039559375362318885402290117560703922734215710068189727871409123601749007279482886866251615033578214606383501485420158349577476043764032817317203696580682548625784451424968872284770191548922407535663495781942513234854585315989457144251191013357212892606399646575884703109297579211705849786232830829369979586990723783161347086810543146382370151810865903908826981751248226022809684537284561876524508314660255228418474169449424213218082268932085648106435690946580818252286877697495490572275612055880119414110777956963223082217977957382194873027389439349373276101405334096022698435584644178006388152008003993110570466885761022614175103095845396060771077317181491364861477040331754699504366883712669989557978675674994571668589748193961611834063808309377445504387100783680343518388785828926054419978281298837227464020596091438141307950752514134597901247802761991459963899079496110148844088754200518688221872783327432439740612686417452539274815115180423095093511424201971843057323470695245116240237284234546878859955581489245727002853013088196768296791695126515992095505321137961481744343014775697941315900339127463578556799899092413725425638391635578480209586003200466691332417170321980739131371505318114298430167048835851353053092651979749511094029991976560223564488822285039053408974148979239763614428219331086949377668589096667280394614637926928388107751610056709972520035523737754196615370414943975549055860817715545799973246502577838530434376495316874791496512462110127114418388723699310967464119984934826164085725473972442870632782886918185391292071736253021557058280710870358177815998846870726601561989332394891617595211023104520259656544577262811599770437255796090901808382391425522687365848886704541376969954401026527923513483980680546000996518329618118561466981085104869043709892246194584043851378857810723490893636178687507980593843807625453151464065413614209573007777045877935467964965738511600565297450514084936009717376912884284488497288160728354138104972820504379234742091586229004349104818727416087195664198703027115968174153504647425576372231461353480545489117684740729155319363908610356728749863816585678002086006306763285050431067322811073949551550534962679370069507679748174218383789751886681979904281621349750939026067390708616020000754716672824322374418036403937961122104814523176262126873740439580219620076800142109399123993627947908214507508385431264354824703092611703501312659452113171029593993054239741704975827404784552836790018388409997260712796819313099993040690669068003746616588447481748587946961654691739170266609819130576782850720327411123697866726553606815592037072800977736358701829103583643017610101570779711205789643702968827402979485421387163511138879744424919722329785602392541530641518870576071290853765595362053612911631979334565241164463314804587147166263773891058546892006129610597194544008025996170628480625326941889449853887470473894422828976752390394604384053350110697254863705861938042590987340358985301938211343710463380500875872257428688870001964017401851644588354994434077407613105982842755451131434494441871184230052912543124167299123607464629436678144536267999173404128332986651968834199942697960713503301985507046460459301222316945574699743834056642978924328592761513701749847535929772884028891085380776663339923176253434518560201034103302683773802170132372440843412222441750895479662231835977693253450243456119439178222189805969919731739544666103350771426760132092639321292220707057144497182251933154865931942835169890310354142148862401284466339748110639826503830315442966907252378360593774783921445779699828094649187760645843135283833572627111647767513017461378050831310769568783379879818952270226870956564455975805968455461609254546687702546397493696047195615652553952144190844543916252605870179374816243336266460126572885191566547913383776856013760627581356690132049039410410805259288739606614829949667482824921964955116206506760650380562846610092306637206394034218611897892187565217277332365300726437133788437206016135467985184726476516780007676742814101121933711939919134524984965501305500609760842217018603947641941110543455102423001289130033309433769425391521993024514290539531691696810408813895452475244595067214292778602825235285675955733293924322599828421759113537716263747121653520446353758804399395508366425243722395583373910423328864634110212641917928323933696319579938668252985419540401241442541911018899802006478040929739520022681459353031821338254338927672541778946930821862771023149987893073565275245387552097002982191515941747110138964070207448521706041178015281292863299549698099406470143374610758000247970741777923850847209558524592350127070895560089828420468148695559177702158828754700525940272841643023842627518694698404981884362924847864759287000120250767316225441204641585374755501893458174398232615309763735412629759057297709262386972490415026774531604790454691328372633411201699534810554760414641138082355819771522247420896555168137056075451085141011257791003958320165703777119738695989602386010811719332939630483176378705348925193670151680612248981026921269182300857614225003270177205380916967258241565199014693212772512490479204437464214806258618684970828398637565830171902598148119221064951002993168017403716062741481885230619426123370834247069840645409166658441003749605257706227015203289258677329171283520761811023335135202230918049779215573415395096128276850336574819786565658328794068162499181944045380524012332813846707929758839941954752369477682951344169585358490195332147274622438465008180424995110007516761316184174434894406915471403927578867944819587455385917128224115153842996352127782298760408346012972886640806640082035453595029771858324403275531919073313327345688067713717223830958585196174741801629947345033005105549584320640647087425445159386016542649910091878202726917571770196200548865108873404506294484953511861158803749596486714295388429443714720839960694890877555455677448483889912802247705957277989072422576282012583899809572752808918382199330967104951156821521448961406292406274109119487670760859697301204478929701272935069673005917567533243115342169840805348877116337699671834822422029241587741120676331785302970922193813084174788861262001915009187768504423420272240621092647916562999387164804399750983372373104909450124262850025195063055320420002925334612335173292182557383251093274630232886464358020712676425678558755355917599512157637010090483920849330013552400533091217915716509947418952211635361707968728426640452518375644124638850840928251299330905960224105268872980745163011750615702363013048264078746251120919573749207356823303184879604200752036896220369111073130992664245673086385304181913772423114468683205340274411272658916926190227670917404810890942409023891406631282876335509317578579851043743984073475923573334167795958575480544855722177035424046773065237216391086184355692658344656683440936988697635871797877990136217148244898846219839932320011949075152988977569824828543061976601373804352805484820464469484597284274119404935954361901707218807754885005633137030200364650115208546669067651203595204758222357900313694627152187127607495410971643818937520622633722583471598326210135264139111678601973220589653242312357619654455723703016290249357797264590460287730696270378890392671794440092335641676701393662677890372357790181079470055273475561498285153452004889749473018148942572288879094216584866922698821540587688417888610527810442132821971778847749236671429610490442969341202779105970889520792668831649553314180523922093167071493441799884546985386065127075187695492766903262362865741972029541229842372054360839001990979042697715514793555954837841237349206632705645189606667967128605618454830067324032951830697088272352050589163250785326486222514473267870566706249414676828393333569189061173921096508398429293757100227492074097149241743937182361716692275699781934983448934123684873146784928407566378499428299920587632437008278655395295305220893179057109720256519423324848929726100721023798535586721681549510062919755689927361521797915251424958959759229454160625431418018862185299446938436617708038497859184592121048496433845553226733791405294550774325552373279362119481484643119924947272898332698318167929250838017829294917115280148949686404318279894829691770427576641889984853217733440243832835518637475924690600966480162370131061532151660661630072574163494079057113300218376931532283698420677037241065309568599695797386886843825238805055115035486066486622151352230500411423176395035843027898087587999908179538419882090658482441465690735953064664730328703809015739553960392403143913141500824268987094356285904338797663747606978082529902002267751249376542909453573669920770513164588233935287214064470698395313086547367861868175904056602142820351522064020477423344254665347859201594787404786839978179303613297767818125728078566059010270987261916625305778720271614069900546666557146129736063753549941963283087315674274199076986870453098301477463289121973416828223860081708210380802742251244946017161859810520551784937817441260132169699740105587823219535564168955847002263921971000285839509572506563863780182875823811547498362176662284387100111519895900088493621960577273224931144842830814123785025780943949839215872104990678536909474661597803289481746842075627424895733863057111171935551251668495313175415661243350085584158175089988265123594910618604574914202228208158938454796213134288459865348990854229435004219128309209376707825730528502147191131818075025961244178532328133100163701306150640988205014481332776946343037469554071568697946433477209388080699754915485462491636972817142925097349087341812729757557846853750829488226448720075682673521202006850173053827539814227380923812331208732841088465845615227762621344799251104216384377219643097546540558115402195152481954609561038925031302548179217972330263051530012954228525760472174355284950151021993292318283323188544061355011962955404213398062337034420228889516671617582030820443119539452478533954381918604236360104948060846345080911732149480670976947305888249028725692161432972594093229747930459084808224402887593888601243684250457770819404340325379010559442967216032398228841745524710217909437128714298714335717375014678017374188948688105242541945981166009781675689940382072477531655905887672080368216912499486841211775850068088694933069146753212964294390152965474790691194087551052844029889315998188199866020525502351937913702436174341750225674545964125176732452138110441654640242752097732766840093188345624745481980487407578779152131858970869910727018492962606781296487830316832033103302886272303857625181171783586690394024762462446429356404388817791741041662993762764286530307569559414469526381488480113160316280949361243424091862952845975194443480044917612550547445150974117327152425098597755550979273202419028574540685533840720382320132776819274074590341146206884998765400833546501770169500124861240097925619121304115505336974257630973188607792298647440529973762008671622897502367355530150720702488328149688603286374873385431601301616692730181639466152566992672346132953882919818185640205083578584896610773024605950521052521458722173569157290214412396479837340036511638226784851677164684121682324734376760550899321739889561959461885007369717191061340360559044338724149273228102404141090057103479753811322273767898551052868539617225253276929338380734483852310430926066863460588561019633466957712572721150722967044924866079245768682761914338229432845414788045850636861552799605344371246375155951978736418891930921191204665158172479647860821012297548004547661188593912965745725196468399958501571221619269164598967941898177103209842689084071118642568263418137243790256429326196271808359097878822903412458391488735173753340853182947332823599226694734081122789204087184388981676707553766340219462830917016200614077777128418947923203980537886807126287157278935939022742291821206889487440115203256938675791741674102648204127927585745640094515711925411928278423684099285180099028437245223705698828620151747454674518532751853679456785019086763407321764578349713261967161652986928113336283695695067323289018352568299106216200156819477992951723527453355424634534232039256770766026422581369633993577077556853289518053288694844861716943253359777594652270266214316467475415075999895919818327929596352504598463478838530798451337800306869840862395766985936065549546775178322219067829799938772994428448708376893829390784211511420669004654538638010866399369581823381857371716622217020634888469922083034145697437463308553846681736075592382087649531596829174526178491058701293503108383717257441679594454400316074758446288893657824855869842037674837197355945611295354936577350689149488046526185923839390235678371437282373370452219273420012546236153125411165119925026998008861620237944685737264287332622420208394362352405965065621663956801523693463985646189727888611162107084362646322211930327441657513830931659824160577518674241139951631908694154765495281232703605429841414676677606086491399659305937241144479187943552231583879073068814757282158655886764420661538616605843296913404813580757073481652940353623049182374134783453872112425797785129019245391416245607037624691392869289071032760333522044851130392960498683235615978292974908390714481678775992839456543819917171649963017868103730918901122406831636773793152997845305047298305064754504342334782808796201139136446017835582423516165660770258289570392044041140202563766616310961484644052086557657011160434321970670649697460601024388070504620613492911373445391160313383765361994502166727991891070682215891775237539898330040812117504300567664122604777889754315278275414581872439979594675559140154238633402406434190968323216835771607932468127258237083772597572337654570855823007021342478982813892235745116444231055338329641376997335734914644410232279213680845923564140572205830434902526391777714315441137473716537295434562724207202581131537823781378381908216982000168981798624525209309816838434581220063507010189580510339915447819968614864304457274461239513294409291262488655393189262088920190683077605328953808999629837799397210958258185860092070474563052369245689378578756977779605087575860794512005264129482165416042101630289335352715423265938048661614186788508325063055195157082484149920566394636416207830233799183971633922184230259135343503836441971912768181610811936246477705553938637507085998554457200008693480253716316652210830338204521338162387972065293630851990147598860396891682858284347746035253644618673567395670259934621041593137651611377142521947516285482662935694637873935571602970992208912837391764920057919249641403686335538871063818017209430317247478632890664503131429438923952874628738406481490138844895669813885891853921582062587523759926643883052320133924957271553703954744343498248454908891183649794807580877242768375734727138280133440362552418530607125170065631828445690649760545631018457965563749309357809298969835703725909642796912368374002774156385190702563721512208982134685043903581129247481982743806407501755516220936955737874599799899375084110718471332238047588434386890770541033973414228912362186444667495454183526074010303625840876388034588264515471282448890126251546436431845423268401791434712980385530864084246257171748388908438934237894939356314303170430685451265945090677265939031748414295445080908397753215203803741994647916486187905379375417713386446781051009462369464282396497807391055967000877689675373158342135630402296599048120319180336353593312971105501290056475023260040758072923377569150087168840894590572923307159343860804086788648309172965296447084889060217888896963566927167141181394818005395718817224472430401848759472959194590947822328872633850221578188438787696462915398623326424638016629884242840562652947316248647634844681446696455672966577975612113877966000542917154196460985953685669435861709687754285201051712686073966535362226238803888582738820127097946173276177507406635981624236903684603178786886299302522652461784195960421848972266299894293356462019725263429022083471287882495208403855281135912639436011047695678186830456604976379408488073725060241332280376173128399204162079489335575805830021690944590952463651744737640129166874100718333422594749296861263804433718434473258458090343956226526790554386956673273501913711025932064326271880074988693780685950297207441701467687740887751723427024902619054101162829426217986017042830450928335106286214368952621992201541532034093825888459383970285422822317399120849781570130470109349936271435383449370794464097216009206810532183559786490512119105293367928987401644108971353295551124121342759221807899896465859005538904240018043373600339102943454216584572312474410047902464697960599132354704011494337605222440052380480893175193544881499219931226363138106587707487511506658402758169704648683700363520401364192733176762645969920613919596146033029932869294680927632569026363237501015197107842687764589270461909848419524085023373411629170117528832291644020186336244460556307719627353960469562762759020622735466463989764552327847897348429348437880504553346775064128648636845921812294505630877054850602098877999587985012785914391158540285924035529937974616824673830767070607731741198103073110463182509561284176289221996147116375346132923040849220358093294129442566804737512871898847577083623120096849672732148304304361616297896241236404766939287873449994486940914862875780696136680299890006129793917694759602485541770491193814234053687975849148557166216064015550475906151724834763548938727024539209725800650645564561535721597693896575512170133539331445541458775509592132557994427120277705302160722031016583671591886781707922126057913080626845498574739437484404006016927036958884334420388437747678846295601986974401067007658315477352191933667755447423117270452865322186693187098216729335081288818933833670222056490012699717490040549810850851011302107618168459108830369267251361044521980017153255120937711534532948255870562220891452770514378329741943978772806079800651464264418534840575397847258270752960848287818391758024133437258554009196717060565003483563936801240079201470824394767936887561580769458474811573690633570687553256416901095827385550031434265621126898325246150123523034795178759886659926876090903286652062004649088986642777585636710599543687971726621762806633530358140282893930559808604453373657481977491055863136851763628176465134809320952878242912783322758829802528034302918158141824085556916008247142970525419020029350215670453059579396431776820956021003628227731594715768326851129708404882262921577118654486896846341656713899127348648408970682404178331611934359938034927206232486254008212928338660735638917216506396709542963989540431618757912912985974447560269661603757967884450073375566058893491632050787702024772852647959610005282164647555152239676831372436427384539403204515008812195865930287336942079776734498336306079418898428317983447070745247021830903237765986506047273847594134458275617599291902852586207322413271387291437841775101399406201500752808361191729908853075562131812186038111400556944659687694504295741621810005240969458774222385995482254119224597219152183970367071159444095284912303219397122500120096934470627915935423948604474991565177752761187290618383481444656494873397422957135945671993992304094604912420088137705065577927510030723595739535256009518254697532390276872145386624135028104180648796415913791363058659096204525273617506617443311940176174137538027830869437378339627544890380742340857127927716930439437614554745855377936746081303682500356753574248701972063801464539529580643313583024213273825149330709608963383639364698387233365352720744211839669023267717931884119145660539504307898999449404207878885489890503442395232159293481259934053146494064346301602863192479831125570155859545141431787527765930278320994013814962565763974769733917412868996875668611239912674241574379062041203091987198989296030462280649225511734668906530175421511558259140922006824608170713034860291936745473219436924899787883480797882069959750265613818754682530884064208568659232150765281631987302086577944046668960086881931842374098754654250060288012596594432878698341743260292987043517487124395972906070275070323796398055538117949377426198897965060187213942189913534518227256061912622230975720760772803861181264037640232732075637976523573391526128871311992012483666548977098127394697772085262543834402166538412058659920986677355337509409946979330459270902927337756290505124725455341028079614325173203479298233602521086297535861498438306393308655861047000420684271186626204767114620099290273633035350297567666255751446557762245849739584165885277483369752459945801740954040943971184722477799528352215951641939748721654894175817098048392669757316315728163531359851861078056075428001586681185109514022946792053810906216401769631924266226786148637075440857673320077928299516656239314822227606362704666200691722310439045847650575269763257830233681455917172726289832204233363711524581990704505895197131583334523768070588871257294450916037401800221481864312789628400750308429647312760231815812603315570514076448615303242093209323985890439564061844100736336510909075913504070282184341075534802564988341337708741961400678958202898405853955475402893500381754283405882879364734981095779375059445577572032296459141990020051878078900151140555581773655544956761850462564413442991882265939586723307523823329437853887856143415185121322267236827655607529512462239694780565617733823291321909715491467757478121295797162028476193943682562956930333363063686421298770637489501125507097555687520274649875127127077673581788916375888288636227948714356009218596538176239101949324270233342091665799523949765796899430270787102498635496958683837551602333014911480053185869607392682434518490171894256159956749719888568448379176653820081476639485774168921473856200352188585807166099941759714073110681015952552646697946784162412121949820859645827725784788826021081922229430781829789409163257723879650916810932776251491958964002165344973697548147641425635541858244876036867311181342631718424126989545196237039253604010019079157554810012610489483500971574904654934537689997398882672917308284126483013945237521143720268707529773454460600778255736885737015308921179520271523325313516100817223924317109026943221649375341332886382013937165046764437671501889468115694120349296892348676139283345732674798383985192597535742121609751920632541575672949966491017218754651630151398585095035014113560283866642382273492491056329399363058530217518412822548309797993798443956486026313780672833325393732133642251190553481546127232438069138060418812694316543557889648264092775945568068640258036750649862158935286982807705007147289940643081110181990051688426819136758406802125069416242992061069420289666568281933713348195663730128620012484584074786578202009463484645598305611693514002815564605693964576168324723125099009708559175950099055667971106577555540978142653665722009673104331365625375407047409571089319368102699137934808662957114448039326153921134786357147793015689545579620840331220876245045275804554272874015910997794831447469704212901266828255462761766669585719558264311105091114261353185013915318543406727688824920329190379251579313693474400963648438662557443750050102249620029194650421531715372271538662065530092959590688215254137194805675135730117127934270743729649977833914045199261093921011404001498615155596571135295565674765984740953538391216833716518556447306069884367188011757975321765041182713756603066591361728878864580790766016835793586811895295926397259361682445071830852688115581339546147822369647092876884769929288440007435787057584958530236259376798400659710034407458097540970032886166556017382516864244561100680904358755023226842107603161492014618938845628226700654738050225671267012479512387429544301587951839186304448043020209456604742891731650284510697495188924651112442947038813885178290124556285097045873591731047424461384525011227083896177630426726214318289748818176582653050887190375691499997621986046921193941442124869460437951976464733145680827304603112467849351934032289845290319745761223945466404750052801675604944191880653994517232391275408814549462267184846715976018695179610395040740281709619834482342109211942623124625068053176888730904832917761904614366500394464887438122840388444850859849228385594861561041569878653381856642461365220714039211862729829800181012855218883868944916691690016463584310894619912792882101731947634678574785447741045516011171701490215727031256589047426748801996311811089169171861279963534265918743930944413705562354548269189035550074680139366079623564886215744045546302580236636940631510559544758677601426812351955399377030807995679671965500917991846554258303363065622393179959777022930660042446683077498988000307738720619621474236425095825572968922469344007501570389757428943266052517807627133981514898438423362517792870098820897416953909611337990366540299997692271154018711553997465822526977782191015903882229840668941412789473187943741039605730648048032200157144543613814247261301700021667887500315516518754326904288240660492483292414530696678796546697652768342065232064036510922818370432658249167163496555378652881713567886921717665023229102554105242080143691573375823924241333038990480032785457474036447583565200302459262320231426417410174073050769636714467689205680580093039276618881816546508017376156632143394039087109415314691158821128734391265182561935551381444743774097762254031614072464698725751418483060027933332770277508961251662772026509454073666272365863680273704308722490501680331720476351492332474117724578705860594809117029534228755551384390958696835601135964970360355039949232444459741617664469937759253194185652814286360355199411812863069139599810458603749732549157324777524505847588362969949788818611099936025861573251569772571474297730170616601724483550719944308242205725583257006810094104942458793321715709665337549849039348104308570282422968502898608542718016601710742580470644482318434853449222270523529321492397326252910333128044074776793009929239347904906735210070977640458905399030093227919821414426702664870498529557184321362117985732771775430810365270313084156844330746071782426927796390177951186445829676251440115878576874697415332870309543414635416998738618464745687662743932673206570601118151441995457306062844549164769884013687702682221744805974380172599659537927925677133691043232946713364638352471339744548375226974007854478625434884287032975066890719601975959768703201766783782523225488879806538215270222750665676004172686639840619450880381271114851649375255205798755480647957843386455721535539399820408927127713663969880028147156534566595174122552749485363561647051715222597029597989425841847587945249954120536072576128165441702312845590182784072681309719425434208782697210497522401544198704627626772498128082760143442509691751799834083077357716470263690218848065321211805517294154400114252259697009415391720398462438005215454046940451775820942291682109854118826036241149720689102234641407360411524448451054811379620602971535296763033829719870007786880519397524971805314172906514917657599568214811264043610418716257227666357632008271003921356301150676420303633266546720689217867393562410689207850836554669897600126433271441638137577159433183573106066950983105089006323555810657987517870017399435055944224886847263883942750941031396293778108421529754734506478352941232589188766433643908612871078620738724463533305585682267293419864968991708911547218172493424869264410060239240571923817919195801444662572266851416053194016957751910182972026591849899464266696764968086904110751546070367569454011659167762554910994698088721800785174241064508148742333633865124986570496242859048936881421517090117705028910365016202512513882577846243948794094994653859332389316509321615074889127498062502614635262418269771012730681623032367993523150856985981370559460209721041634763222636159246682968825760859357170701733715734250202779987557105424428864828988907162763940595587619119928644271818634121375148031176795788678260400192631880006634440453057484691837242525459279058287017281232368347203760391520195432269166384707249536149263727444212350697417543398126091938353758609813533869946806256876174233194805070069363299584094470316555167275754404287324821741957999527220449797325134455835068669047041862717285373079709790635342825837765582202614753976995706630695909323252606096812645292172579880925139301301963182868304595066043338687772122752703473620267268815559619062687373426310567233357669091651190803107360306626630487334696487354406329329631852060553555721189941898279563078711811313816355799265482572306506731699987132639397422807105655466367557658980109154702935480937809587403942129116557481372319305842375677543986684412134395718436534662865739052758092566472598080347357258871780500236656835132021208057024123931307110835365033546190504511035539583951793870710220358986540432763233002165379679736945763315593750663266482059061011231581530894251618256755017253410955982313057870204081876827526788025877168785491574017297436090795401337414369220347661641263320339205145100278444869033682090709833231752691088729640902941847804303422469171023270418923147000613429108531440709710292852703111317371601049479437550166644312418870644006984412271197925199961612533201592202995528430370285725566399010323245064295320355840558640466222351732721695041562741124118679682372335032224694606393666640088412151119813966625612012327593337442048264301948241255471749339077889639071495320708312158805726766463083971765691117566241476672436131229754598946934102588549190468003807090339071351866039619965917551067768293890704654036672991886870008591122269470716346771673921964423480738176537317753511574181750121344267431760746771474360864246179164862861186021999010648078079954955378199081810333213389518605432653097426854038897510716989092988665698112963514030593298701925219615572464248917561641211667556083956913850130974575479827172968085013078044813594688231146411269619751949422991841054211694077823172355256849386495344688817526731991895645483687962257116786200894298340931327080068193911708250470528964905207941333132972565009290103526175019303321849244327088818885631552313849796738082737313718963487453132544793644509573129719162286437103567156415628176213202419971218972934613696798522077581042306125812384686948479366959529749572548339624325577026962123678726385496345008082355717440643034019072180976015252109664749971361081492388037456985219841945740563496982493130101684554463401608048904787448753348374568384622460951049956736788112135064985084979579397561968212367514879105800384700142014288388962963002686773854957714047692359064186156980063559629783734364227313997706402759523982739243190052949809249027970143458991335092925548841722063850961354607741506352712223819097524253092161488189780855118376831787920419885475312473867993547769101268597539832445190955574553653269903424019656197710120685997910651827949804751518086745220536415163189340084784868959967276739046195838651623801648705849618590094327020549101510550557447798751990571801920418615427498208942922196009972272274207952039567641485116188119285869619483451855017011714938786918014798469649627413845450744921232142614797328874550915685582820069748684752929921988773577658506681847133334771701763818196735276138427270490194510983919813860773722092856817416215271812648288076881676016390070736039885660053524751881775951108056699513130220425704300784931939686653674101921668969649519173117009094214811799083954958069051870457836861481757077314394663869840520982762809673582460951664722150551681831023315881227221257948885018363060721785231472159125123100055209231305888689709121203873213842634715615868558400607024350563481863045415324056899102567293519911180303935086650881611381280534153771503867151493055364965814507355949013138219166705153726307851969950113988155524436180200279282172983875174901218429730292248230088389426564987987117157837615744547043453323118118068246632316685934790092331073137090825465179451791879018882116076851552025589908769365001056327689527195504928665380787345171895084924580480997808887508023618087934241540778390133030813652724873110083131294298975365419229832030045359564302560103007636799811365585923878886340972119097755865639251844303753244642915345637815031337041468819778019318732562114271777104962213561370412003593894535389628635102924633616671232546687855063808743310625201302002711609564683921627739921103453302795753749776225188913105555124205752054514199053608190791918607369445439696198083930771657413140057170653130242602125246373908931944122862975716018812621453573362102690384174645563948857624362459611253411237715072952971442967079037277138330264846258319324693869568814507134268838206542278609947143605238584189583057784886812730982155139913463501854944363170757191062516043776752516280807134927577297329971287543971010882073896736534400609463670031549951832189622426803252847750220783683879790086453114597605240226071892072252425759000622389678757299637459450687396335258976508507848378895857304171627096461995001018290231852119004509405697347986674692100976941198901717686539982092899769923126041737135754745466653718813955940262143362822952873026284832556402199206317924346099385432205297881832046570924732235883811915875528983655519999931858431915146426500380984470261895026577556856213110307248780918515724540640451011303855607546006232772332029807744898272123440499495587022017246423592800864938984474059238912230246492920108513827080169431347955376227674105392842362910157425416596841790581245886916837105106130101263315295317665700964213129077937529768027258597684634789825748916908321544873006811124921093711900222019455381421065547372409765490181287222566744608249233287672129665242559747188365313163305982926028474730763773970927780969086907678576670245426927917145109590432957423298379125547649901133824102659395469436853115612761118767261028460457403475277453284957044567723299967836843578783413533961535754376092470435070855444432811803639456008501607844688158332818151646500466179460542567547371253835362729290894125488560113249688243542502406614741506852352943143930193533477640156164700149171601135828770951721098655946315621849579682748363722111284833196973978806920428418037877007008611975664488688601835702550876331426885620655080737875921004951993499792402483642362128328745282829592159850015977639677856462666265071886004204101886852027203280965783487959599896615507549042793021636227595095840680085062615142152999244357744031530409318255296923846076183935687828734344895287434739267811256987038387553472200969486109131936137653502435188291328133839405539927541130741990567608659205768117104865029733596081516564782508346904453862132711158848522148394823788550639447131371074678736005429128401734122357445434915151735198206018097703301727118861896738050532714722340635431512372565685288038973731616341947008615699604913685542873083174132297460201206350222635283900774821803437069396240622968445827068719057906455087030352232475486910499741932499720907021856967305980477532988818643304271422506184561148229705316712164044510028105850848806099272237549300110602602337496667387183653556905583968230402173973200269564875585628104393996903970610123685144596420202000769912296889089823770675799190632142915774471903214501033022593792190932834843312050837431811577743662411193335297571693136406515863924624496305157476695995130882290734935565335501026333607689544895835200794566532909101886862431916481677915756675010505877285411569633300498458670093723206804648497833371606592417327300212612519660852884093063800275924711617133362974624886989255962629582499482892379267921813005590997093399879773387173746867319433125732974660288455765860295148274202644191971308547911164600378092146761258068947915933630128417605221955269844832188126002422971817624343422219442663958789832143240771383190969335118675266761851838215812644382417275905149478542700811880025677376554679479014449922618769717106827950904335183169841599692632959513024716470818535698025447423458240507355099930959499027726056857882450003402616299632914536276832365910483742652499163085162993159334909893826558803503771837058804038586755006816312901193473639405651433778436282042977250946772600849887021729898347640294069554299216052932033802933218370820134336333600318613430516519289808831420211668514649803685394856412793694167463267892296441511268234669125145388890546976634003567746076479809344992821956573205645241523245939882078167604609700864810786552562792077861844593426014292997484882714276124924141444806126083115929600459027910391820205337637408828632206008621340833538873302617775923010252713744330749361561628488438558037611900891081329473620847555520617327681075759408584233908601702292150239253727077289616595940743620335266932848988050320458912904664618689851103154538366926863349401983068335515770960751164516488115971463199347700586492022709667951947298022216271776985513881456186976519719557927077495147672891502363259980374589122616888870826845516252555792753335314262429369843340818936425853166736344371891857108873856436768521139133462119968393559078213416567184842766943202317915661984744603655316640315554957478367551592905027910490076107376031887548834771151138454621295147456284608000855987576066866768350395620061383788938232613232230832379020593858957094172991908492903726127463933863065024818962491199249392741271570533828404193716322459380151633484006704681181846623298943992122856712097469908915055333489100998321708983766020277252989050375587479138987075083835354509036777754067037827310879955785651170515245291828792585733115214798319960809216349432585311845212000241322961262347983589117713367561436999549540623678368167350857399448935326918436746848307892808270262006231043155636093807385228226442352537184926524627707348638537813789394561215301868482174012552425119998774584516552536071354881722804489805857588032178342218131974585216167615849875992116340904726603678745664523747883816857294192311694047547422561553914480722190820057448886029324850251444521048704757847547535553773022135485398447538251285326334441261456115728544009035987343632419061529184535815337240113775991665745808948676807979250868196257371051098086410462330320908832050717743249043014608425137190311452303537547219492292021869496549324516917093566859994524447019831743569379549735586623132700164351765534201069599647914515048131057008242339127204834588310600041311466744393153010901367912074828004888220277626385975985809433643206173505929547263012245206014409952274427986660044676052698621860578880193476697253139821845769539585921337518228784139320913447596425849085290783240105824151597527691073703242623468366624574356670514044798661567406856564667449009946558877969077203288310185660997501233093479793664457890020386377420738012896415653955718112412977397023318418943143268869774255851679172166798403715164322555900228651449527756809230275942389670182021356821876763508480190338900010770491160465015556502864387919436341555258186479233965070454481323302800783306710079861760006412665727439385252808330777388474857057265710517562077929703097031146149040374262072446416130516628619586439348334309952730953069979366517212746119617885692939410431592762069820185623945899407887259125117996176874647342345214842899671765276369172474630022408753801354534927938575660919804949626219832580692676319369306339764475982129244923641883836772428586504450238007852946301505468236818453417368141779733383209216976537144779489313853451090712455770834035009949313708660223629441335130650407238500079832436079735226312113691462310779779998825876822663350293675703603511262793715785683460857915272569747859266104870330417302574636116848205692185449797940384726126962053523486288278389667144058958099037995998661740144241025640022470126331450665395932154954522594239679089129391003335521626127316373564438768441102937976253746479578370770680009446699110220273786063859272175725192428909071416810300502366736396263901256540233417134376015729708977394819654772734255513787435441066868290097846159383638611209888816736197750019164819024349319460061294719833367181763979743603966872253942882354663675440856296434341112813495461855766195801090174071987728049373847642476829565903669980051067410688487799703646042945223285227937800385610886531262349881057621919546737340863166294790196573818114724806374348280745829035472866102855714806472822457006525667265483822699372566321279675899301968489946823815234622556740347092101473910312811567228838840214735013178910747860625408653368441759732634692353144699072271082876341922384609239538894078401299254347916318904371814702513664147572067344156735492096978543863768579355284387527141801144676920781036380340774582407815177155677798012128150382267240818715784264137325049451052420332487873689084251080002071033347564861264279368510547192247204232711397714938635737921290915496170962391707907914171746684021014185811246676893909963494054189554716575720338160110607094110396691227174248595227773042320791236652137724903733233720659816111854691654521270381789251190087892164888979931926452879735643247747265377707008311585096667553983463233009249035320832822136569851133120508736059073490238971320868469477604445812026964519259165520664961725759206262536459177141599864340574558979719846370951069113269148037074530115299615854063686022455426180056545320597563032761409372644206643635854730058316991734710740278136814879159688467782344794947441120172037016315448666832122786542532893803308718551328795322349794597163170102967033415782056334201921627235387013183405799460391990022715800284369858194013534476283327223060634452035859925998057591252120174082430154098784752245213054378480993594533105774292048657352704297154778664841651314867445642100819855656471017432439543239915238209864831767039183539771138737036794940902729343422063039892229179851141627207671519099037272491708129456343448687776150047742391825073650137758900413574644287335475288768429010372857996645159986282784438354568444052763634388624432696689049721129176160448658453205689122793208046460785988043974769403087014061660211572839732953388434822795386581446994878225245466959703921699662605945254716183905719715468775369862595125618114915035483980480741667283920983570259016646714827560945166315375153583138911609692076717412682271063238982275737084855820250629702726817545058299405905805864510777652209201541123136238143379209365370732086711293237604498715530065671609848286799475807261372579908826526871702779160418113244515577175670609391052729163521969701671947996153959198616055918093444846056300885908313507427092319513625680434103848642095967731820790760762167748097088079676507937374353941145835437740914776823457651307813685779257030709782770976528334801927814786625247714169261824231690716540964792214379781950599786940360352373269103566487045317188283369128947463771167681112124838908863063159468544627958891362429292160209177237858465563177057522293642347364993065102242096905964285598048460876170537706831003736365487217931528850333962312983161153764162236407265474943423041779873962447006668289749505334414677370679311321475886269737717637855340071999745472122760694824493081488673376103883982370399457903341383549041245573158639469304015655525234227426951935843712794072175397944934894129805414917640388605943893747144402331014553296004707646199555168506712536198825849833839988539298362515845003206432110548536408380101046638830697105476738713707653525552145235405274698457018058487821603659232925940143811787412437765211453192969937636682281185506018494118764974611101821648859588336334251475681731189313184765785423450086375797192320707546906485808090474930683705953713319238917868582711830808296126064438687330814028593965704322435086157548659487228391782030410231994959369448904879006279262428449547381772770639842548611283318258252810959833352061259892425008653469400256137311858321081216731570046243506898612359015127257661679491829691838642837798395818806378918557782313588088955622056128318458709665173473935341143780845800414046327306642680203796923666107018086672081798542702087752703224928950265131453977252640428033980770980937298345193894497134198861730775581565313356863695117088758120828313549748841469240679406504590777537657972840731321858817614815528328198822831869486583400354098664478336211241669022043812978557384470431108512653735209965607429504022821554918068193177902343705610963157789642841151491452778578688737554519899602858801268990361379385522760569585188963476611589067254406771478242292276755074639431691432165300770781448367976789842968607197341540443489690703171102665605977786090534297172476035680455090936969552798349629954219721616224348754666963499946052658188709491083964751391339680115792322426400552906602916857964643040832502342280590442428104032500671729711349763847673528834515856251527595360259692756721458211354056420855656209137436320579619143799057873707480158502050973349936751233667269543439347094356603498290811478605602755822219266378903425132028678953828506798042087363241799483045713917845442982773670503486997562928413931320603403922708083712146139657635764466910266876766328865519613207426325638208724686349991918090713077852422483115627738890643527846272971603718706579260375775050947611969442668962190729817558067140195014858836526043436755433751200792400920110523112674514919912670008897056833091263143171036670547401665788595392723721148740952921996043008594120521461145938121189302420570289118593913441495570118600237230416812728034646666962020289367712319068264739357783661712293242481775049489095919005655271218006497191378241166315821660988748540428235834580149829623968880537184118108954390126162675442536549844481371238398846509635451906479102737198384203884138917113283767851538224398258032056276277815037872687452296680642488877865646804736364466763879224913087400803961432803437799518046919192205846046707758551363004113307032420347774032781388705653524109891391796252495483568275435940452042998015497905677198928281371962847455756315721606219379164660706415316278252143057839083275936480207009569055936688733763246559503471243429377038649647900934429095892722994713940016307203236521533571669794344321077133285334427040486385335547548883217617745202609760042565805967631379410686617321055673319905960319813993483279593095274911338550940494029781467487065200235292414434473320786004970650267619472919907066403826909741607982724565429256061046096937192648628780495450365711697803168775939152894490300108091016801488071262160264039817447014302293539676172250685182510587027915281690295733007170346724191564727149772451328916429718901332136862812046654840258730674967586845635753186021631225629995217402694388732321371845808775848848005005631202902464424874853173085849634564163849591566684503139587358878060318144487322246311159508421254145416424187511188186788937823028160949755346659794526030751651324852541150198948352314202532165620033542340488892986283319710631423245024789278241418568917822278171670302699160590843203503897081932980755429184178077219175899711546215088788572692811040170645054628035367447695151528948808800322051997770569566734752683029252632917962322177172190746062586777372222354537896034672198177620286876014197817768229999145906141115404390086536837069190809556252119585851428212442222899908521613435842317906046661804288975646359759325971615040709193825413659308319136991679985420337186444149012969974683237460750068813763616783768429368608436389547528936264654725838460573298285765543479862151298741533119355212658231708403529356586649855502880393558158173818840074598287357229278427420123835521123731844331524898645686164519912720392828104527801680184674946221907387206854173085315670484016424802819733695680690849875570533911209070167175229519581096702271315816663687227816786597641817729863341502854158636120075654107771115035567252740133591112791464050001899495674357022721883037634829649367013202390586298596641494214466941454486950176940698554628090016115164607783685778902399632535791420496924828128815144972871392177782392204712986769031121183760608424728948207281682616282334055179909284171603017139940824541832520058767301471023383961448954767980449019864887838215760955285875735954713115728988439934337199602422844184146728115005773273096010207185658218655262213237608915383108384323033419780289545023604352426472729540826355266162334114104814003066796767123175703597239998222732786490871327700560098458294220493725274098492954035604550351605294692586837472930028585859908229703142730848233097998665435828988214260131945351792695673272251668067673729624447453868476143662382683800901947914572174442020946927315014590214300734585536343730830907944399212766054731984249597210020859932573961681815924909150729355458191900728336077641697217149727768681166303971781696700484770788655043765395589778014358498293299957848289685611741484450214333401255849280597165683259972812782555648870117463402473786963590537733356298677333790697440604813462604024240575713440001188082377900370015175685129291622370072354372301538148275915754253433585628576823218231792878752439012783487624614757402896775186132537087200101034871618329190380179790333850133864991173026949893640316694942911118297145028681077444995464396188247747518489323170408029677429198131958782431849142441031501634395852853181415013365626638561504942365037418775844825806207869065854709711678846249601727880201951118634845343707913755624413451265361156842939998498616351156902270345786831502730445523483699230994292788764350316802066105647454450781324978570709334075882363174065102662408245503373413405453855758766854633320836916799550580220731064814386323663304740524751150391446626749688662172552530920178355612760827175545940939319024961903787627817373086064541009726292730237229088437985140962551291998584038998858971049050044987208366923503358191868374686969657259607953603217142742689171585759517277751897163006929711991916470584347059384371219672939444866964304391805210231828043854853132767745108814835943184904921715531583225630151923619791102461294766193761054465652839682900320195034039040105919149273097576592572777718467945805087093513049417364446206948804232341690182932516873998310459275053573641314477250496738223473114082383827851276486867919481693831803825367562625750011593919528029668001274900589186544926716447641372114196816400153303119284488486618099541534876134325643022000825124822092666777123413765206512527808376553704181969945513021991230956817116624209262160198682363294791740682595094613735440608207694742082913307669610577185036566173322563275922423593090013286494319831081931163073775984764843422651579721551325676075753031104185683006216382049635316972654230709773574232308527053477487888873264335228335407072313550489459654755228519938918985087793518529533658322785421064525752930816358879046582204680485370111160727972460787180416026973977911242053773869545969465789070492406299835727398819241687200824445933651710224566880173816747250240046604282516589650601907705947925876913468020082427777937467124533031785378866320776463719226498913756547996019434809144631235661812703286458117116294177267877916495034383896920612777697405781051335317570361256131705582161060292943372508115499680261395716500490968261547734946755623257842824540034406406940918028969000006881176855403629457306499140898159684997344688213023409844130862981788855597271586702898219490911141710963780583199387891433330399579681783561946041363801186922574163219033285435989652574669513956956817040548500691127482007895171889863328303173776517871181534727631382826543732485819459654684577948013402468550826774533786010401784580377467517376521818749598512257157483478927721053603884501754261461787638516586731732181473844606643833884112433558214084134386737477984291420404969773481983996206673336918480207957281374442953436127991610594229370988037977688690145098780550910243109583570254403638717738575594783692574433704833026697428906703479268422932298682318085269547627124401177405100554503223179656986004649692189458016033181908528033893177580142157355266975013791993201913034760318523499764399209096515236939125804165723184127549104578519784611550169748640464292841188787443686036627975380505491015496307606829796793914152563172379382909736030558029973684418373489291222757535821747992462569964525374795499665051184771449253546297353660182004318843588334375034841596880930916803742772910889586487508192910684699496443545886027501349115604447017185492680342632913957196385215424142610064760447123986053748171295977477013034438040925122089097180889703519484949357447766172105459863411612742638346306920122381139702126482935930833210848451346997652929529142165555507596716488194148725755483802318253614213344163004113494242411800361153357664047268997199339537828252717106339470441761890653478920925395526668227941841761156312242797766323898997107858816606714476277602449560110495232899626340833036483142321010157016082918015628712280108357913810339792708664570742882971552060819135132800267170023496358132992091709771861157310386860585592800173930592379832270740354838121165434219332149785376688773820112248760232503064193996282475696393305396044781499267289520270410525530522619531554500480622397197912108035112506160857728831692541980189361238847311714585683180920051721336643945372437365360028819304687387526937714667079947019594107666352018557391090107984761395855575301453710087355485573659462036987949804513919358891453430047651093803394764902927087915176523533892383498912748459802480597936005118992500512849552320707404131644640575786711915002155086622596413611414919520969156595111581175769193941226129197604046610000183284867404778701193101906051319070433485819501465963428511745086997180916683935856112667936849959028935604161148334807933708231089874119669093269424234787484116677610650573417248909412627252754122200169547273679192581373372873560216380772193132882022135392666651678845382182552030726182058833696092165379289812592299855524236735924700695098889191910051288128224762918580912336750207248478893229762679712947141097150654101166635681242216999721445601200725966021080271528811002010866188472654095381640115827658178674453721383248069093650664257049210670263929450639836818439976632926089026715846862517713951464430950538112768954656774114056754673498798685408923123203941785356264636707141276970882045854625311276555450389717863765632115164807269244256482094366440531453187834404238657467452597534749764253087364850262765082349287519990307548995205024563907695649396439490758752410026338957782724475512673395728806013701375545715392891459261943750279613251986699310657746406761542724694072767168734695161022203541718620661532757545532696912894766509791279403109128510066314409684710883763141100314882216718071128731381926422291941827362336115013935469233769254879691944123852071934415568951699045074902021163903098007674619294635076863321820275834311374356824088870511171565133948447941919820412236736101965297580486220972611103051430513040316465662026931350887844317521246864344554043270356821119041154106928400268314889309792738236098980790781764769981191637894605694386884295123773498713185331290546847750543338925880957011720843535384303763797367799405453445832385461822134761341547016624856869192162080319645497031121922323096226986144578934543692321859947065268575908169332306891677516280754275251666122665871427678265012708311007127817024147249418807074874790335772892213249316653831410831082186249431221119383173403095067803359335814844831124124753335811109739173183232236734707864576775411732485088561459012032606469724531854259534526005488161442682801897406817137649140236428306168597288562714452474425705151578972033388169813926703870495386104641132046424671848052268774396928402047729922557428309486618223087541025743710943088681493813653181863822993527583244734699582380176487219990197402023703272814540171605570547296122615621319113971458119025014728192363540222429588099760790497984932505125602766979044508103382715103337054852297556928173928203181917321097082528412296858866363267081096699431904141960055724531400750929146639766705879598954784298904681591655250297647761089472894098546004060024906427895704771867828681063998502059254482764389964538853254666284741644685379821747674650142415509517845825259624423222541707101117466504757745376253206451355361561498389085287446653816961522679885911644019437710667106245388453879180090850304384459820972287997020510542657540597640485124923786380955809455950965466391527618348210261563540617036824111662321634064829799653685112396566878897295882041771176619128175628670779539603061319834149037751612270589619767440857444371364167968976767093549475938584177741671707922367443942735356908432283853340104062594217032683455149296335342042904190370638265984374272719626428473241385396846945476443538202115728056402909330150875254112887977338003006726320082014105982506532733712332574905295628157106226242105552424405360529212711994367630272872603306183163168102646182293032944815958571602880908152912750332476921957680430223033940694250287802249495728565492544396452779354366155998332886157757446306608161465130427772611202659966432192485771797923961637658090522302299418459637813453732160685812702992050679402795289487254904388106963849157869738256177739297619572345922210534252603965627460310968949264893472847055251531831232937682266906901663169317223375392562659164071846222057619803419670975309784016908947697850868299658542542956926801731258890307595887866372344310293324231647170519150467727068237882799612136020216645306574583873359443685475899759916017481283677621797045734040621751297592414509101611270823519478170422118278528029206799539414874883362273876817294691319258010787713617802541553135198927073574415143214634660073839751588380583874015062875529916352141107259197009585148931260072711710703914550764702023931238407363124220966275356609287151071487098285798824928091508785277362349155125526552253369293098607774827998576931914303918379990503932598298999694111696513626889440642402297959230641806627712429141235726282449511833416497524624574875889445137880397677284348472630911744015842859562290462294682910774377307675973259804115820735340687647062573779524617019620392504903497063569994329341613862327598696479573050988499105234331252127722085044813848025888989688217864832453959862062253564165942208461897979448382437423201879561138558911692256902163245836250341502717006955964277557857533792094443706820891369532836824932864484592140296753429853168260193517274367521236845104087999174193509482569555961037076920765712799956641690334322027557769733532324573851298837248330545732699136161100630480344765586954638740756239755500844580386914958000836999217067334191193697747340872171924627616755974968994273660503164217984530133732706872009119780520899215512015256512391056615846620780966172312766331323552021997093491017496691410337477315281429953018203444771002665253558981547865663680950855687234980857047939159561877488063923803635985443928658205204891945281380162819286816007489288999756620244839847150425842971062554510319837886364695848555974574232278028017978368070422904145212853041084284094291983391221723640394439777075172919870005833287152461452832058238713775921508139136407560408804367897510907418974500886281654620348016947460355229602258968242130921491244947604991820731305539036067976079781804906119605253678082171186875179265847254953498813680482692199914312501102471232046873758667911971593206962702332173591139914530929952674934712986386704932205781762353592252846102104587133753017805458732318522160785803821194479259604210576254453017340257469676098266467709904319750148515038409717299172295378709967085457932650635822353210232536434091974818131728249100978454764095976747389260499156820242637927371697551351746582279418514452494985667193631643401174386091742730355990887103138392310909023104995397753140902572396511269903214865197364774992337346334468790600964667810351359340925901853503864615062605610580157537106480303871248876453069049328527263775865217157027037807610595684922871547799741851760597694091853686056893728451770871118392758251951760344151071331359843336131995838314087889151361357023091762123283170575379861482053444908189259053062089411045715200220448217632247307633932337785082273792030547604529285505764899724065526765370001575515792691224958416552744316695860815928396580591421684996784300075628901045103318926925981761141366059020358376966997271740827132917733350180575434180988525241157856737956963589922273987165201556491089801555648786838018563022878979480329209804252333093420848863298949367578817126381572083953838263164358942516465897840480879271184042569644161169087093861128704725420275852711643185793178137517386963698802675703260643625232026148891426572872799734956419791293800678425091901523565397475167070257758730516928766834947564115336749849576990953708465070292480855615553223579008669438394765754325866061020952329198515973801106496533785054685193960610068910386471247197555114953670539212679728715753858765551142869277682573350274047248740882648653391030803354898938250760388109024923269523589121449577939826301446972068557786638302960539931828401367594127080183689950670240294478850555327738366640304530312645222270758071458444729687243868800202767581423122422222441139916413720369173663960306511798515200046014304482302212130665749310686528874182822551773757172647607595683539761766396858752224523971041026466701902180283744750706673329401119178992926123845382250704369999787706760777120955237533823946342837319952036275061361915302977630442616546111041250356695009214250802354210955661342003395449197883053096713116671111535554787724966436705726918888057630304857070138192253890270898474459513019227861957545373219711801371055272689361371412368306409198715474993350230102064343238554342743823488561830671054962195490833779769179956306731036556739187746683901162229717948074242820805165312093936410234355324121527777692675055344226224668833885583824898149359726529256344264277419916064566277772727447077926517765317889492630748419242066557858950382776203549186345124696485928832897402656335414679433723656350748885269191914838910353344037637781555663588785280342739510195706806638616109788833982902703491332399673038491405724588832007530184428296376353716187573550663959942267803178244110488801083035786769918241272507991519611463462056289338496394578498318509774982258545939660003103901015055981854015601791704181907686274743518932317144754355943961094424436901770557397848755067583466386203656919352160632836692180097170910593889539636845784272671125075142335984552696517457497698099640277528587707848361778819421608589287469435615277139002643351512479456488078900276445388225229413011003236209459719020290989757773067315577878980001770510790617652191710483285268574810475134521214778606252485511842949334506196351365911004815222174780151027853178778967323471184722629863810716457096045299724760817115148991401303508201591659987406241915436234874017396557704964849294569470809439144718333373440288193250734128141477874158583149804415074763242041585770719352955456126921908796943871885210481017078868275320093794934731106518997449028218985788091065994350473416151585627103667448229334072242297105783054355556344413957658129139709037423981132593494248425304703568214866749788026969356376754998087730533198183336713017829410905128365459784666180063357736763100097328115270549663247687542365550515054907455429538235415099594889466247765440882231001512948693285559962853455637818892631962000570443678358208414679122862626143425142658941484564837335386853613536705031189376035829086901730493105394099678965422425324831544851976455546159608130935144483938002130150872713629580529473146054131802272784227313354003663014999021492069229238175754119714118700203489746439927174163111152670995283688961639249056095171826521383019136190332102045307807439487298620363386413213690574434467961151670683536109116847567643647922701191334969462623991859175893596487689558330540295572999287553413262167652470554565835435698211957405911951285250072350997751532418520843942515329578751616004697219777776706100408364848022908567898158287813911879500227428332480245493901622271514546119562478003374243895696359118538305908663970957464031125203135063707949295857968582853604499944798202722125559983840947453092285818293868661705428755214318521410385469691456266661871078677099511784902678872149208331282710842074916146933567432017230873618906150669068592907332672158658906333936363986808038819123345213456224959486612303000605971460843677222347278379566837464379769176267487019380335301765233711061121657748659545306507736787158542216250012203127909322332313876159578712205863324087261089153379311070710810135422891160267451643970507154894055293152485515646345420591215890108097991920503343538966686943532992553072354954429555207177857079051771065831983092221152849836506508522725188609948125101808244885006246491512125224902497606512699333690189742143001025179826912394899808623725797417869784941142438316128237765260763205805485306335637478765840402097147810571874027487127088033235505163869696137961096019972685233977791169458437043113801222741645359138362048549642117083307010995370067730048058050293587206288943512600953723855790855018269039258865761029020766679748203797294912388934043758334816684995391225287779767441570759907667112009777829799566840162313190159068461450761504536013960727003546134891002223101282548654151423086254395194604684617056051594492181681081406240069432273080551694182980622457757053191490316706011092043384786069792505202616956270407038069873326066099888271273058340782297098531311779649026843354581695040255631786949687731389699528893051185988894245605861620903792983367562208661292202842695100193620591227142262480263401669065436984652077663214428873088536634151354667368650482931097199094161915561260053300115390591914977791797451617410632771584896452982175623266638701073533236456964553750335450330302393051693274733303806424205553725353231848183955837797208621203948217585872638872273709936605679392736562691567512292275317296756015799319934525963061069301700201238412270784031354305058431236579479579940965483579009432807061532253965902432114517803532614070162767070915816222408870052534062735411442515328309985626568071730238632863348366297576551681169261201684655967042000581004489702899908504188959396032401314399099818621921268753908177196001324437511222424582807088060392518460598770239285724949756735208975783351038776642262637826595050521117088601252278145982389909850840410308838812517190017190981079910598835478146705518999973209107633120878130773416625686825652589488660052685869981629515220647178676351382213778412824573507324300269516233515588007506119483687036229568999679370033600094304049847930968178984842830037784843381702886857390092740998636629884561293052534224969067986529926855599446227409968037687195885042484902863399504019898599986631330602761733945445546127872282043135379389870075739682392538907247512147452853013681519914449330966354906156209000629705799865320903820175333968784125991012792814982134251187017441900136702401216943471755989963450578585536078787212241231747164269119372260632452229580066257997623441841453750872008132237991131222393386898586038693488161647363171747207880753646547709904385788905130587303324813314925119000302296772264474261403608348838440583045400254227516128221265505699968070549795999145588306719025272310608492727377246451075348111941482047611009863717429581975887893615257196724624548103021502672771737946338909039803369020051606119167103511922231655832609431614636781186201577194279573766024544826448178700826432653106574378006613515621893870162160635030982283936077086266324392429304778147874736446509931294508216729762659992088135767912520639378836559030196021489298017459003520736581606228400507947479454021307815954341890828255549359678703619407643565984155598159529272443070769298038617119755963028488435231347875313184799718759818003745138212271902097333550370339191595140945181356939881358533537082871933227827751505760632206734449239316294062203641547116393559666157754514735958340664686253725106745492762801454679058084312140587958478219288388448166764517299973563382169463988407275511933742830968764441968285037023441906240371528358839618198110784798601198673657517884902615147964069344858300838244193319895760350986942290396695356783983362165874542908507870686905748511804761499726053453519600012331419716218251135091749556383293301063123528542055542565459181949498077296297642911496423244382343758288155213496606785259105885135278744833460337581501679251458251822635509509514355246178038060603277734741410312760067247797230114488244414232062572279641129875116470253998536306100320319035844303650640990681580642691918308085280923273835797034347740222132214410305615894094952453585094859299901938415441156012773407368282947011745695886244989393851947809985319340318045586473077612341359148775019734840679866470463276769397475377676043620851330007641239654737522324784996354734460987203600102743206383280235471699891449926518586918385370242430664174273005951688766625020897744610545642192565186701502048087418020207648770935284071960571199798912530734768511622189551204369302613066862349249871797187588240132701053345702651892282125699938180408944731923460043892273016940024250660447084343298689215248508072826716119658267936764167188833078887792044873923157255142347012028186893405687309444036471486009259702711690580080712790454935082272098742238338076795449463202782791919045093730226435805594687165160282036282755489583808682071693791621836109193933190804987065927769320725187687175831917471107312973624409883229577318407353991806465083410970824800809634434110912443660642108393316126277062646304738172906060766375528067412598176888166700479792797100222255507690258785459696653997859140384731580681528196181681830012547126343178510089467124633696870525976837752697884900550661567423577402685600719609072860974691814508950819862026245392761701838467291923437494315852068383676925571553235534176771040804610102131756409979884587897577931081624493894368144665949003448297125400391228326150788590137780606201375168862987607018750587555203222969803106583710992399483435877647944495341356238846895847631583807284456402665025913319502192139538550950592572150746054159870171221579099791365332775548467144773606639172131061710712707745148149661827885380447679265534869264888811188429892295901574225870871549987881818025856174617197924559921273928817710495603432752746895273204945274233987825321446524107653149482741003056081108892759188663261279400995381600084654364570781114907382885820304587853071150934874812609940463199652173324829002046929795586641232102551092043455899180519566809547569926035664459012567405562541451110784097218729295581434621419736751198664016605545556966578971501815448309671483418544510551385930470552969253754425376227379836830385190897508598147274837505385519223648669908426664635098377944442709181114337456393262773642606118861816026886796315970865271847679946469172951195352672325391539927464887276795705967514093171543705316975225665817843881063317831194703257047297015045617783315053958587951642742933089930864250190556907684861595849955270964135917351076279119861109483408041143392072698687195340306942973404874652697251608170627919956436250139782288027597719223022601748159806702670101357283088940553203539620365526155679158420572554088492742667923769306569149514900023539680143571429103153959188385741453233283363092103529536532544697371785221285685099225014988051941484626759052593731023688475314192921604901500824508138119059128924493567797728083220936395288427667236637713620245113744047445015710017388002497646735889336985423119502001158374842215112554226518339023378048563511747261813919364682301638991599602663307455793481515703832569442066807278695521820499198244533284042500278965461592728667189688286633074802848141227448946450702887727027298887037189141111643050714412251182388165941385440178182949047953060742379420388484958139912996977479738757323027451227448454161785873166646786941089771852334777041518885257295973923503652855095852878947440430486186055527050978494364012261901756348757694652359666624909132797608299281820409304348004453007789367802748482326969625106064886823568101308872918813799828343569627641057067222194214900616977091886458908289631763340906663577195772432763832190918027468908441317507959406377273794925886475112002607941757522066741073855086157185002757358696274172945234661503932197730590703345127248420650217843487144161894486291516704231892447253469406636362728353660944448198504605204680537937155072361932245793574506897207678321963751635365762022432443383103276021393851940242924189381207300591126942985518674859997546187627620835554149353361379354033030985297878815346980719156395262962710864606492215486462137155204608065942500596029093924133348143738372695449953634373804333723552699635148554618832032303733349404120967071756328520421365370483130316089423808522437684316961738749483617916768590026694881716886271344301359476422099695087545059027759573531054439349304802270875879630184261535060734430428353768492953862876891184950918436989772844351358950152710853950251527616001887666636664743434943790424768420753287581690471182398289920307930822310279504401538920192926126718534520190430636850955471991001748697529287663517332100035233289366461565046926073660140157945318395375041469636000710555751689591967565385038393219558260818822140886071453185793446509220299282030182766680349431511374496554881591721594729243561788587514283511309765319506761394634041014290054336457355375184943086408558246605615496598972231008382059388421633466112484810692178343262283865643631385501898070515472078292237486796596060163826946420197030450857678276967548498458124602299288789592264279207690412790973959552419782516305426873711117167156181127071790643526292249618064315957336389008541985213911855244194820621575670036941153691034431778880456939880167584304622402030086733912305381830096323243974567396355636610022398749366813946877563850646769357767893539598985147859254618721287435708869741401072026818759990482800924687350939712810100062672143430844987823440820915664810420158583834865280970325064906284678869274430623372106809123060087959141741163179789410772778259748692651365482240229475095853098308204658061906922771223581483294853393630625356185830316704329545229920181077642947122915165748366406353026045453053550710587832199103844855702901598944942353705526848646746264800827571277419010400110671862538765284633337260682797058198727031959776191028496906906824731564699030893194984427337757046544163184447245000193927910765573489599222366650752054797443874141390712373512050645855404311232329556173949398817073914218964016076224849968131106064791045730370669323988817242402991369617733118058663182851839090654373069451112209854390831579202151493922422185735209258891564642419053880549723193525305003136638501987335639661336881402486829118944520349288313947750703255831468521884526362200658410567861460253243760709448674886638088975555129228261161182927808079504030799810110871915074785775500930456637853377659243233302637585790185297411124628516225454739972583960725864909920006155522022631874394719167305492754357451640754046468775867372323836676620179681261077209697530560370633776418393769507799086596966644841843949745700198755774837401342985912701702735806915040459575476404487077531424829571179382755936375889139009879342607030932817479072107559205323217152274222550444272445902254955597375254536410052944006259796146665921327274482259979537658165240844539175617578921299934885159782828715831233039989801239993480366143577168285240142969425444198759572943910254745602006520375678425113651562096848917626882271828821202503889154562962411247174778095073607196836118115947005609554396315294991344726682159620642715725315128219664023060810435650344580246359941542939421067047394069297184765953542838114635286028455742996486050008801295429829715968545165102882728731094707192452449333184092478522589797995973159902547997103087790608332230055377838982176771232394368932152908149295476348580205024685907913229681153347330305308508650516873615758446900303288765504345751739514678201651207072078364033829190381406787386339358499650007183148581234508214315562216460363878509164378375248359378748668574435914436550678293843320945381557734800321937844680809922176394945374597939196431508679669462791148622866155310136990734803353853771697444140326052774670319493246726846562642649117508903495428397013558276356587791081214845492973371760110971838319520481440661278663474018235967982941408223203636139993139013726314366887066054627284743020448078042099513850558386143047389743408578378013380304604274903981180866020478413891848903821955517219901314644902551310102120722442506804433063988046399184976649951763553066854792776744247988415566664949753559834754323847264741237731560191852764584534193112767096508236084824510166342608760099648787296445361592347992514092816199827196508237609503365950496036825391852709534164329091153399797184828442438447929493793461297948788487940519831290329759995563729406737840286131884023922037457793081459677613532771008081637580284135247804531783456082395961923191277065425141695905720486399620224224803456539672117473050008346618144509623004531477578169898685598486409630010593150266730529307751528224757029054005183181988480007095529455261377086977824278730731544407696969911660117848905211693712180451251385848327576326770035609053080229587678175199536738547572135320965326081037850541761962584256628275707649853761594851253477327865553838455308895843858253302929867432146592718529381924590077205572009998513356719633143881424530053110593019129898464607075917452147543793344715789455656606805645870324961115775805635159925772874678930894451766361372725998943009361950047902268199479912433030147063420820910013093030347476206074097928679478553048007935040479112557405583285759555040260921540871423656872544039573515213209077653602049174743012249410446270646104020604190315431694732954783210904058715365875398193067772542475889309171373536554259609190537029976101924857164613252276537677164945474640807189187625756512174562364080563712769058724744284180757480534845512302544022641031586176291758561752446654136003720686611304251926244819246401129025850835741077499276219068399686676525431373522239499260905421893899605805084271353657310160729442446518547540965938051865855180306838938636109739176590068570876076726790774050274416288621144559949577378872995307726021403514899767328575586519129294421425953637723281913850207023453493219894229198484123768456412605904544521693203528201220301981533905982736288382220054565958223741746970420531866143901651962393760906567889477134585857252151868832296539585448042318671152835313913311837562485868269774544443247287239965784535228814639439533284331910687802883608569345011362085275431063359039021532565787201105646717171568493799651521074935223290452073544736983037082322831513945563694933875179769919252552837409610802126669433740452388251998440847237424265856167058254926024491785086863470811614776591226543207748691630511607650885478621127177002125493730272034350198497157669838110836459427816543720896362977428606961786359352475116452420135897484643160766729876698712721549134934430615536007575675869306807022674596883644071355524556878957578312386653688673456990082071809939100105500696374596054896661442900088439798209604557249661846349791116077906917825128408072058737841973633307860895148956380712640848400007699255453699489950393874140711085929496269725531188228990115525565527626117784133276644519848557738293159281551711670212066376642826604142103029984922116542256665186230832881901733501298593439230789218736200584280808691511616660950000755779050767225723487897798757816656713138021299728771113606288684631227644472213495538724086290124188845661908253431608612127156409226068827938348048574995217435467025383335176620206932285964999300132357105923077503018074703171729089512417152708503366466746245643818532225894238588759068789224494576619990170813891404751355088523786180848471252665190210193916029378954801482577409947030360417037030310989022830444716507035502067721472841007961632067615948495599387368439761179122927148925155691914891265560874180632659850264509101432150090948536127048286187953399162899784747373285307856611576054792187497818441428562173005766493468242817983711339366842485452405026392241199702277905308236304236693251925311096580976170402939406722059344182153960443845983664280061712278925811212665880259305914840809254007617989806708299840963461425228473526890317350331326133861200057892631341831735112033489814418151974167213864668053836978087447257616801560785184038123676610814032113785929950112395364352299293237514224109292649118630906519499312003625569200231146043992661985853303349294474659902689094384823690917244460139063666939732324848243480992126826220809774501485766621809178383428530757205777941885064764534192291114957095419713609260409103928325661245525740426876853825424307883104580285974192989858779267802306487358002860677762852377693255680274790969699963139171555996149809008375279656163419608030653495706347659111400946537928210109972171027046550219079817111599027774979716165494544267674313761180353989615581620338065041361511638500122863776438623049502792470786221778526622357696201919282985976004759221292106989065131570296519440953458372676584189435728342763813483866265539902075829516649863363661465416706317429487928495899641642973003063845690420250319613332818153440454467706200490557703777515017938136989549566193308401918010224041792706907917515818813212545133871225276471874525658574078627435259022329234117977542087199140929854277710757306948322225345534964131829099222301974010525871676124011362180707708557815420871548183053967872949660583531542486435539044132595063118960023650502045712320589408163104908561029074749365253529801703948395222020854794453791337007391176256886903834249364172993535008038654209124052239587265621447786444696186271809466351460230905493851030590199724869983511929044486097465956276434617463956607213291399746452937536411096296705949337574845505094493230826192787251021991881458565588718285899163946249693688080252050056440183506376729020934937943026663865022801333486476969249624065510360068549747431899523870408836686126237430722858906275873252410302762969822508362766746938051878956675697749617831637469920559491298839411461662221077220910299677110777935299771907988340838091773077298890302971974790283649689361512522507750419794947641097288243875105478730246342610805349231990960167410374145290764193136156099256624770743679966616912304574810606288942758210562100832884071121898312697933655770958236481606354818079219935648405921285087390994794587763885967961038202594422662745285086178675951336726517319317025905060665641717063000778795059288142759669060962001406299852197032610281290535795929001738032302659274416556540884978747989180214854708521444571065773507519142500344956513740730357921102057647928143180194832630650586792975786593773083732300543494893067979651034259589034506412094714580036062695227435621104809116061845843669220182075619516662675623351496251054973980044729903534468150969014803243268639542139276308116516852514244119027159850329012297911050061089911377237046431421081667056983524657085639605162342968856807429546759806645709793542172922352849707491521242629513187067168264616714435394562697423621069712718386576826244857359656556312383715683927796955712233291758320163733076609141412036776802310556371114542326498181723488250863766060961930258251401390602136144551426966700992223550725986313921966952101731553216078607705925622274426591595017713404561882047870236756987673102786848798245885416144366474096563436180273626324742754027451350888390150339216434640797918365370477883627472353014849328919408088841138274703154367689404020656702071876872837211103769688438868172408671520466629699843183759741647342211010114788770045997084211194498804171766269050656912924608747069924482161249173685957147829129432025434876504299710616798427423599396510206469425421907688271947725893463020546363221913012408188187998405652613980919700548573966235337641772985779640830263534625869343993123943426518448481597095282961550211037465329269768603685348267877608390589885359496743047645606339764128567759109647623154149938925687795027016774908307508514314150427661272003856216115075414708536009696993437883740992492084606214221256565901135987496395780357057421971817260660860923650395779391290819501696013246895685013809891362220404372393211025279148448036497053436586381491459526520032853824031682876548049091771435608762766558333783409974766585968563105618699078112119179973411231337410661718971794638818892824012011899929309422246699553192511312520904404369344248721400029296043423419562171589910721352845077201746625446198203650824963118610904744354274515440872740618467938447182593000925893332286384990102757006690071811731053068096942616127822496642756720393698596149020440461584867336623721380710085650367602491310848105916799456648590720749618489465008176213862959402714640238492310433403020576039466009592669814981968024249691019538039805324327600372832363611911638365858990893742334416391609071160359090475121623072999383860145507827156761566843159327005484793679042594671206107345699823552680352061302735915296385168238383651039008612536798314921230382509837881200228444052761084520403012335857267927885713177404449408749524527946048051385686207726804212903122908920385311369098074207461151141952818474129091501479293727714492200171858026650437610121139005121876905410704280383112248017585823571365341748615372980813209048435374073081277562814368925362924953600654451853298965575575378687704529292308274456328683686639741354438568978104874065876603923602122498804675122545302471885128231175966339385268775145547487886310604334726377047268345312383748823528756480778105833878185687609576411767941939119982376292208618734929098221458956023143076327412340325805299222724947421805949397413870490793954444658901855553628274184123217749946446106718318741733521220732451361111155554645685815653795485878615279853522260509785331973617266698677887554200204116449133647813960560569645838707970517745140429467315152832301544970189878795818800846511790700643635713265112147468291594968326807471131913015999184379155315472508825102515642587309437806244772393576965168080411197323484785782507215771319368035720044053945253574031821712813700244240501939276438000471633453121825225225321675175506098478369242291485650985744336862916110228578244139209167496658569259564373867213606646292408656588176869562478799217655743577145606798883391142697951086077104453541338625559026385221902947936083005738193311930472860821729376200685781976403183567011847058467886938664996639449930111467324545723642232581606156498558369587860130826432712922847453485802042152931214087675746354680289774840877382858442408685879684026442526798914213861574036626883871612422733610391978062173157354903523757187673418067854781439801246506499745000557364177129121807037923819899232597718549573745611875477703371461981757134985773957598603959143952359340453654161616176983717101074528191601962363007342408475834806385606528327919573737778970926114910843580972185235710335736178678918694567248858867625753157803258466783777056526668589506414254149304180817830183868070429666668066231938403643109685350549616137842230462465409130528056107820511897643067104293046463420818201502594857178844956643207407787162481252939397996073918216564810807508742455739318959574176565950293298037681936726976424579193081152373283654572139803868208064422203030305792277018829435162358434074236511296163187666948707783066995805950463218332742648306027103693255916615890200901527848476246502188136459789593082786278811320487742918667182817874806065987605745845410549328131549133471430147344364758535338199487987669209073102456298853696538737336732210006305274188611893017405055505619920071273850188226224630976447122096101142278427664185324738197797191902243716370626147199485630405770414273603495764806430912923730881757815396257761520424872956165986637917823880849257725934298448842451964735360096637565158342494558910961836598983857978546980084797985545257697521869756268518084489634485576984150937914768403740055209641883466670185841864913960146401729462692241662694328213970584531310262525963681679041303615206644605000774712323939877866114269318869954663149805460834064445985939905999014628697591780379178061388936683075196070060385870583091795048718117146507086009284467076990685407859236235156704577334153880099144020427690691093350137236640221123482004346828090718763416333998450921514745424254221048621823889884072834360207939780954908637580707101860055520425132949694962125914762704553476924552355668676534968894565871903213344002303375034539813510966710935369734702554173685571364627019661987093397754857586314043160899151749510128762230071334424722985980431730387661307283025340915743304206195314254695852646846038040909077850466436044558602826750754602287383515394540215238066160649682032411683268166531081968223089771541029905069557003304090043885511852153894005763300515826469870904877989026587894448503792169527395787403644395633369486231850933381280123293926383800179629713490825886619971680530323781289105733864523410754349102047567104362284289910851827346400276488561650446883210460055469361635198478351576858194582696422880969209822419538202374943499458349423611818378447806506727656497390173744459817683997379516665529676803397816768371695897249057006524758210857317371883042794392649480189871489027504282013666023824865902572146664503369883369292230086475829882368911864511934481171858009640175679799859782956920517050719016215511034714858411780182217349126028265405897121327189377215809968192925724708129258662545343600939667718850274143206675012024286433045568530091813357893324624366359258161819828123520289919061090618681718669118824315490435303879027693796126597637840776275224514152998243690514431152943426083728326122566212409744686746815140439991417056032599417592819920899044663620219715006454588583560128442747958521366178430929461578708087557342493431248730303000404578045805887077110082785066766473332654421744235742300846239064920887593261172634829250675346240786789606149732797620656796203535107440674453313239058736117475088622525921696805972706553700610288269368303963735766458496495947480802353524123027026782302562762590580710427046153816843666570610187902727696201007244086449993585335815248586391892895384544960502505632083386124115906623956533735692085585621192487600875319531601750055908022968034568310068067759667790184754838046746667166604396937895783370756938147130690656015749002581719439363764556934059438570175858769000331211918178038026918084383843944456954279924510924738820022583574431558432681605234284176211358994440081307182980136584732299140348353325990505589203299817368196563607221733660463512608659461727950227597580439290500469605022529756407176046715217047153818607197584848938668894705121006323370034202437636291440095303255756176214030597563654737920625156521188929900476152269661015505043400093045970010093541107688203632771467353409519829852164399313936729595955317856900777004241036606388415805587059774718520499193334762128429013368623865106949805198250223068711223374895003727138357717931514031067570935140978083913273823482862252756006366798775377388074025383912459764592919105642204470117972617382829951324250795713270536699382989120857098531256741393334905966851955848733821774007628984482818455536680017027880168263640309126656385728542247134016710102982322375873054390723763074624189102744946112202160761677566215049872341479364963921244668993006888490735778704586137649015239821371216440833139203501262902045749320308022915584229420024804209994573576074359606523389273208851611344287812662530750940631532786944551681623536047728334516415544737369472510296956148367060209564180627993792487327967454211995882486835636058036842958238797009124476389110036800639032878810426995436035804817749034943431847771689970984964978966491438881787601620237129022825397861116871024358125195808538586993678671505930623617301067106589127879959561183094732722360663123300108761076000246197438471443914887004755519888825474304015978033530656398758367543508273470314522488306286885584044167464312231969201533090207670482395095740654441459590177580488925643221862449374345100520995723799997141061230434392570026605550595126872447995424760738721202329671868392472055908440560249389904462030106357315564193150400521185338628896384792448001508537469323436474259091834430281583325295414780961527412441004399929485193759214602347924879878870446799383045872707000734001842607781705210721057212520377223896758197241130156221955630813453417175166333328078007163882338703457175121238302902297434916236550402434275683359456597837411387581504989047819297564673836463245508699714901793229848595761754993177075802677483834873037808629669837098414591611577559350188538158208566877576118649798135122025969328456792470556493194437668350471825886855352330981704634408133789484295036061931547770450825598595274207218004685492456163469357317085529103741882970294301933715974137690412743813549084323984797873888007895203965480250532953878849241896850565455148901456719380851865052321249374974159359591182785525764497487862539456559104100370795590392009827992568324357163106804864286086369221119985175740743198281591624371785963567478578904697502954674533191953617591513433521056256140058951018691531868352502665265640606969770377267821848264347133884517655611683768997461361682839802762775692959896731699455643712157924664503476451329319303535610161149686100575124619889402098976184765812943030743223833273961734135982388101902922274663241521917423073552129461425343128937104363624245082943277957918854721970459770172047358634925704928957636166580676695718240004821594202659715807499135786514510918156885861385584637621917857172260612134469813779977660675182539930868158407940570620745479630073296322518339729538008188845879248018202701061805430098994908299889351535810888099215344843011106623414549361102659041849777871090611996037394450120559929187020936993317557998773442112239066612356447440914679859496524236814565779716813633270805429002882378083485939594249875850812011905450499848184769474353464172893708177359262283727995247916956512806553846758971180475453117832568527440117970968701889413020031828817259574844483718576443484845779891124257841766407228155457383365911186302126449941352758748609153237311397559930850201134824968934834920932378730856117740661556423888052033949726901785966500032330984066120695783016782874215714449949826713616702069060182820103509705281324718093450659496352729708819911485624049002746258473718668918701933175314093634272080135659537699095940936243476296506402027693966962618406887737267979534470473210333529649685342138952198504724970287492967991661610194788999202532747514895197630135276181596819542982869545058848506661830868811858776324189564930939810145587186001102432975751361565827977634104863037344329326113264210570377213833939044052914548492360980749713042245827434729646892356493402233387464014354885389031745991631688353900988912010871296868888468387441233168357963475266484994995674483923665373162763646442264008385205757119032756126090727416899215551418349830642547537906495153357878486173884610071553658200788760748481897915475016656562306592356502727755355218767354443421024400675218260503052387435122462886008649681322995321715215522246918018935303012370689900584703271577757472631436000660222749409152149593387965216077858251806008036707557262739275524938417307613162062167905403170080378630570616831432999674684986991372304977510410682331004851898351021729003006527218859430031092416662018681142884349392870280119880564606653582054345877842826020395746940412335344916934650445437095529114683205923211516889583376516124218352875651172812699991113650248479259927254038100558165207852916948871568416115669514385730125572020796795848303200308743062881066765026735679619332384564822989447528050174796740027387067717789055029755092499758478972551103932093693092861576507646392479892949398501499044004412562584687775494669140389873900164910630746988608953243858224580258139451572168354123152101426546367499862608247215668708247122504165288482165372976330527774745923606497935382894971226972689816966172696701345057969213347827143888717389748889977413690401143956670625810401174753959454249518455421456059860314975865403843713036028682777785752471423020765361950053906116544719387330353911519399375602330858077698819538744130507395486131159237594429821380131927613786583541380820837674688012657361686181877786667088950620719871183956820279104596300477605299542044218617040693015305626444995521969036417898448793463110450168663973023411987560032716382859105431506494162259350217973415329762591489115741433729792997468663317957840009536332370292854010647947111146512974166292177489248918862272616975439548377121352670613192738893167596523314487065993853969184477126389873406039605162122931475930698807797473021386461027627482844536290744230188430093646091979364375240179952159502554442736518975168612349947526101928354420170394218899708414659419183140985026430248558743589376365206105542945184754086787563391462975978774119746542723004227884975719560290351799052823782289424910119453639864731105129615125789087783390080166290649879920675050793666488492645395732562200308784866283980869783425518532122005173495586731266850376423007176179787215079036347165307523023979990778219196622045055156552954893808070867442121813042987642457573290569222437926696600148697104202084495281652777331899247777788079303645811293564255852740577422585330470839757439764330602688879717874555081427004298239998433323383697622146500698862478415899710995641943091987089259255693191910999975255900552997060142088929260424945000012644650594898801378440401336767168352361228586946443091885281891675922014053002053666275451620214252511221232656654764969402246799804403850778486776779472572381204189316385383077190856074594331385048491298068440443994379205302439026657730717261179973893757768623974757365343929689185274036135547942684798976298897033069714788938778542141888187453317493177545371349927765851611129955913995671371831086245002129853948532647700878239399763772643870375356938381200958493905741295593958895840839715241884362263898407032201949815347489294910989670626449112586065506767830922594609035439346573868455476594248305684621122528133680520530925762411271769918634665984146521098036292489530032579435807848231447640491568531550673304528048433958483680297296993196687688367541440730625303533040409068516508707161743353335326219824161395309237873494217012983096289427771565456549835793718702427344293653562457502771918409076955929476804012960143630581633932411577757399268326726449618928047392505925955687962306522194922339564392751050941995777216263485879269972941047358357305090528920030596884447581006791363809278625176523776041584995975799381954364525384433900731597443523674111333283603038180742393511212765967441392811890782094114741523786215425472857803455256667903193255521833121528985136584333449277344688485702946228511873794254946607733426276577495347535222453003135336087996321680271212277458849164663460192106668676972182355108477876472902618050047154517256763590208057548435458249563978648412917100119622542837468542364467321295077384293270669676027020502682862308995708307708920861222476381829776324293105749047167710301435414070450881265179972091728295484745531302406057639196738121802523690884789412620221709113193787494985325151099052183695090338822409477435651434363029010983814742958664525258787363420187476953202898107895113949689574090988231643049703331634068624700703130102110467043085194284197296070242791484967714601610563926492027407052432719004126626694208060538364220272151656758709005111089914317321297434173489357744832009713858460264488259862538133123485271376953134613233999650867231452078139790349373787894629196813693037310984233590035038777458846792911990323893378513863863458528844102341873351527113257385032278635081950020635720751308761509702991951835524082308531886881458360358853888502588905163527259576061530018389653371924895697470503389497735660433893907604477777048599564213528077816306133376401909024799048781234031872476040339740563011753664850474421907697115874654383455850780512794918990403464586923262229790061312399286933587869079894219646880168479859136683229040298134067648074624128545106071651306321833774185349419485628289903115000386639717005948845479032150235530835261595173963494321904953429840010949627188392640671616015066129110207451685426504128332382511823438793115784748075600519150379756951122790940808559387332892366484129567640477604498458954212695731879162926983193767283808080525750195900355480790926005652634742720068620744669949127396056458079718739570437405468211836958087979367162137262321068654338620816933177718701488861035892047695392523684305753538233710089376526063561686170148196517727637136906508963903779999682878829987436855506963694370292760754672261948252921930843899174161981285143509295084884169754419801915883600456226895952938061966829363937918498416745628926506883748424524096526754058082463386331528764293868572466156311278739827595238731499949934788890717153486963005829204307855497979624077281534015984590105220093741650556596455589624175067588733851680429931932974400296572263462820315061403395145817104669848373679032918633485560672134636260906307549205150243222842357986160391613559244183978818981557069157960152237830831202328664885055252910628515010052659275892825871051379563334883706294728651386091005351120104924894065836891178601425341850063078206543591116100629874976174606178939173122798580553255757948433110482068207921819235026124888877090521905794381353901198129013291145312546332790979433988890789764464131473623204841101273971933259544201190804640521755485827604721343719294370213355079199533636459569044697554091745996714322834366686180717229018698763025158888698553901038761765877627884689389750137045830088898184414007454859965498931389337935742723504852197885442539469548077052551206017641356857551504630726775825249620643897828124074033737407765314479690928515777569833690292029935066607080404067049556890919876335080477119112520534828774429298127920481496981497934016975927278712815299702075360896346827914358018572763833223047141087892056991371644201580759193547972769511045054536955559750709027499795696475050513685008644752789808510777141448090420487605457830466149119660676526944386574723151384114713658490844795132578235836293549178039380361287647897347289451449399133497161843941898990629608056761738044077578759142473660773265686049673900140400391098995962723956620951714896485276514345662127532644333475251452229787090109536712570130709913672543243459495540180201072007365892025368298913986651315429806131427097641197555348056528318338221732717543782086402473546109195290469069627614062389137709655904356672970135284329498055673894937946566150762393808846122413445629852823112686465116494306343953422575789437941817746686087487160144750895106908154750540151635222762956479474602058308288047568850959503064011677585710313684945177533632153394220261281376976857844079469962390773449982343052180082654280090581657165354474810354140934466698787225577221209258397982588452543904982734265879746653390249351723283336314260342062090389090818120817703110568919360318856804026280243990986285083409767053444107466783919920435559957798154346539381634037100269502205381824428609921054696427763007326423080407294313812697994752654685027275351162435052794717754963338984986061547420406748306182385170321174041798569404273997167334969054457267506902123162711726496286937215417984694761550317173552033555920375823190660626606381941981291960599972623407755092723349808485409399146205123486744538630267616122787296345160903196608165349503141105169452896939633407699797351655322149259895626612859583847420547673424132666371517105179949806980999811499076824356924540085881424810665249343806917814138984836176632491735760315342507193828277363030889083409113720709767178074496577634636613132790350593369504422687549881610075060076578557501613250093802611403761879954638087919485038480615571270314452698315955154587696364045544251627437051442136333881060762725101024442214199968213045548294100765968098747950030443494220886371561851656623802298767633644795173824037396145816876114462629780814458528288342877469149695665336429052662083793129514033631916431909283794379391944735766389974856633270191045978059185909156468215303603040376905321328284196855942533933892341815853864579519166057307085714539792313941055133085221839188896604269846993592213035677785254639788054512047474004839763299413237235860467438129846197815759643907765585802921748947169579493953514943702414874780993708324113343772463937966542533683822836153108574988414266878286128446632480075850503129391708312271082067848858664464425619594652648977858495562766775273566736948398762104042427150849951664738443476484186319315397895973842984953324228597594960360625091892343344873905709923312579580414134032961737842321100214342861031412960739686220854525334589294304970530826727849708275919384303253902764753074100612329584486908751705683603419752627124987212288082583841663932156329184454320510169510283011862540926139700923942773306870261477785928078225940348241058201092419235681163469498646054464192160227530504546408525738048197238998891528896697464895091628276418743704643664437149044604028986611619992938795704915311876721875511424238157880405729788164853477474780753903818904794632787742842596983604053002502918334834710071513990891626943894419242811906168024124301155376138240805093656993858284030102885263913869607236664459864374216091094091949317663203997109698463896550989013625918257836414646345854316743388479449270825729428145682373953184378756823449658523471637164859379919628270924966945276366977856333897025546828059205614404149739643923328372950793876037711216472230397269315651408012027549584626877121669070099171748692049708250159435857825541585303876445144616508636996037018114622385836972924629521093677491911429536828413599620765580425757364035853239495642177906340135617755985063349459124991430257456979674651792279023798634549826512911621248850782132194139471746810481386061998057021638320431436340774816560996268784471605709570747310621098405155194081898910578104795372034860056481546822101709453515112730562446917521341072016408085666352472575184054111344673844310946664871870552191289011323753684242187641010258899444048435357879765491802664544965854431526418432277738713979839794280339273423129218820097923808762525146891427122117938580770215321040569716144775302431986250090196448412223551360614824748707212749162626881318295094719637485080309784955486584826460232220936257814042528473477041194258642893232600714344966790032768873995608129401681453323635767665964253272099864367880788071562786438842742387630698146968322456551005207306630136700203646824008418610459931142112825047901982968977564673870201102317657163197581958739343037316218552481836959005555447342233557325016559521160884541637886318750803593646397234841622419178296663163531381483235675862224955531520908616639960988498400442893794164946860186651284145371804273858519592359370260677928422485742370692468116875682714008049277015405440566127998735608966421148722064283840138081443715299908267683237232466814217300882969852930694943735701344373015716328633425518742196309023679291299994329765204346486121138595803384946339999354168085385031745065777485091342463098901572304547224033603656468701004839458377945454795727557003178224340463075974395378921674190176875629481127096868659081892359507441231722275404995322677582423599262226817733296729554242696922191798029016796976342664461562554157607866112890699672574105366954192429519804844885119617466238168683175061117354042212052756247039123526498391184032809450209025025836872704911862398605756268281355139340137536389760882030008384222736968335537848588080330614405038633768896281331399391584481103248019073668834511787606017571692433698776167294531259472040484672925391132562399574670015953355397431468754189084741613169364043687005854530820567132409115964424034730777274791981294499888347536797067593254981305143478173635556963813114144556429072745631049832447516295307261229377984184073984919898079064693915709133070996532829049519977085619455631925882849796862888318286208017686852848956035488339338511817078897536613116105990046505716642593629457871394096024687828870696197965354810079443254784135463892353926465932442169448830315700357925420034578874705697075691639837718797010756481585863338292405177941181877172305158620028746307726307183982349911521754990159009676637602483818676170166563371950360539342873690320279263810574380831264186234148258520035575625927467220283057755510589873678567630353817790637603673354033294053574268879877367787689891137438456265919139620809292240484262468156831515681511847810899212556015428502508841305549978281731931475090238340062866815237293972797113447775103414268057771628193366944578584728571186072451218771485717773094194482959852331653875168571858285431220022350613331771642796693348499002736342457452809903156702935324493670793044300395041034883008619318930408735064594123926589878676798401962010117383567280939253913859470466826568384658029995187691057867920387096853277826003425596129434484288437175721434546125346478636932542162495218409201852316801384044299536982156855127587352120270309871992613514643319645211733134127736127322927765704944221159920492525852249707994046288831346006790934635496455636237333750714740728537713078386885165461684308162594738731022222421684627788695143262145272085853016703340713145024590752864963080041145060122178491061683910452479758486719316551456046827474705542256579117827835564113450177638253049583492665802385352349438830670430773627405588845570237387948335079474432595310806525403153219280886573951930196458885008955916226077968271532755612079142094775510339839400834100000142037949782491045354018321979777853444342971832634921217535687122135555037180931030775831979268172412568883311126595588385414206752634430757572947037324611853322917540332324116952343513737324279886200470475009032013632157774996583691954300457187024311634138419691560059474279541654529821365414305191602966673045982780342046761697399842479993316391074226161951170845072121611255410443393300011477329089846722322046164736568082153544726422630363848683729924798008242646490371598515653121168725282603448379700492204643273001928472463487970660630248458435700261100451646884348825402643836220703551328293432800820890919904224572847802641590563198143580468482000769562016855517425034513795500265922399894361946405843650318955929821257698564286800761267251474315615842676994584701999260281085766997706091800973686647543598044957698561120061690910520244119884956249748637258838170786346939967066292194912139828178411127453067640820757597019511937130237036719276510924476397271796742801515649102614330011464715552553943345020157128140832729775066716486303837253701283563057914864206559751921376390452264708968585027514556008018616979023978316626670474056081648336901986555510966497251513168984369209262402203431164174678925164733627000203710335236357903091856864735967636323983784533374068803671771780501873815033204818473927280741756907173169649656636178440961049303917167629656417147097027465098860769577231751521468955317570041364705633252361198274703839635695654379996798570680523078284634065471532238745864276881108088641497283192873347083648317138715706132189979297523324501857623619167174068269107798397489958059115908930505306754385465932900746661681689833024637736215544715895908268443002961337604487298862065495576571533322888116350105679922900778119980476486530264092597349722590670038830422444086850911096254778724244610697330095695078326366992557067753718260755460147326096722387851676223719097858711585998778664827937136061312748862364958954387076383974028424600834988881603832175180595963162938858293230503299968740334022756500599006592283990852982098358033088749882308930835185991334104693820661911816250186251884857413177760297035399655332722626834276494105834658013885496502699050922844906251386370071221947477655038869873073385140652202093568319143801793303301151510231196804227354187423406732381638543429267114485617570585032016078725948613062822036656043736379119540440147388024475518854580804595656015359704325370488576680594205650495170064935124133499853206179993212460497313430690018757511370419458203815676460902327285146408422484977465607202416260829710569800303618514246625315523674641705610146031923602225656831346752770608224684695326175516397179494760975286008055089686830116873571595025407309613769283452330709574672994488164359572759996115649206126984051432027504385555044158334069283323480242901809523318786803625804817708480974132734607138770349412741571279880840082068143826923234696518766304436005775663998735990484489264592247480319935272404537069195207475293487845889159788920323071907406161419576426269772141309639499335627375389973558494435939325853384335323831865538042773175763970436911231620436945311389783661252637270402562855463432689825517631299420373881852534123719859012010519421105335870035030502499178424903494639021059695717862429371841691301397847911322995432486906155813058632603986027231416524998262609509982921707006314198214419684324938678147060070531951129684541598691638006445242671280694779663418685417271235127167516119288944307291691863260324373236867913550197701644079838204080811889658483237649695650555049348207561330848067210739715162862202058732742426383932392774484110864215489908065328825157181097946548239172549978865490766019464353901386488003020723170619705601427092053357979132797555716085719378651664988146549647454068474997364137986342041306670731041925859144977992124921600819710913065655275057288051633790970457202965895034597252718819708453437898079287051049333492080192296991449367502033459334915545458214774646343326255882609529009827060884929301936609943381552919368693614354674784168404209161158961291461852845201864830683810315258565177859999800769386655171668825778803140368860897361137171679714123190018360230112543071198973409155239981386967463200488025032208620821766163386391406731852898273955767104940588509299298382014716695993299677624757691827916187176692174887739124524309212852691832909222836077734451253863232530955050598574614188609997700234832352598778239505082168603236053080120443350950649600190488140271432761272142409630109105840317844808832109236133895849323113001739210500654642734403089197132074861582036815100602241121117466780668744412909072641558509978340232434826668349749623603298872221785631955155203136827863538248121295842208024032696011195733709044129674990666791167677604702900710607618235858811513798549441065111451089632766347237529424847329070392490537970006965680650827660239591041730799511042978899998110311875131565465492393945295165315426041306192965824595090596160936524141362370748693143488729042736614735135125610595219207784009358366832911825425903992707985860542926703970929096127918635061176187506375673988497958272586770559902403215935543584796048181289449226990075277872916930635378588312478435274927523135755135761555145257131055233641578389374990034226363033031272046313759466735678833473281255174896809524835947141889393730002542964556316379364613418282962408679263467623157730584993722428000660676103646806308601458427685343271743538955893776060389361746039508406634276947196128844260852285555321347364953491551438208127021387058535914522407317691851646792757750051078301073722631856726846539279938072978244130214322764724572784982207942735247369630811177535254275574056582261992759368434195881391772119614614936949693248148596850560384773696584549507270233800169357097794794100885417572474243285285654745375349978208827361576490800710453280257143322185427404197068271228044763416280198531060366167201648433637174109904781410871236444293087722383245035755525743516752905081963581448057855152295750581838073320350665712648743521113754995754405082124430645607563137748171534099726419907684091407374735638539829440591732096129785746848402050831048341909400016491985740187958228850096676868733847803561101079749581990275732243105144140312020536372978127431662916597022946346817814230251958628161532236739340337095205026995135285072255142115675666890891407418765336121031055683053258982389931203476710259381915423921327336421553255433381350270471472261189049126446074694738244400960618398789783887935394244669941880373063398930676284983567480200127163328112632442914809976716647634971652165186689936358141509187232483261184278732610489214323764148621785715952038989191580853987668891477494916629121612713418171937529436133657984763891866902607837901901215252273215441636334270997119057935839550461413581417217837981062622572602420508082452219050898631623573866542102492909607145558861228800361735977356690080816108501443959517994725990206267741979289997957293081671206436181036602093914681986306141278461709812004546368355557100285660724977171727578832518603872866448754569047033605048508749496828671234911475424369595805152325551921047632620398727903501235890437729328726531447294861210292736772027148262507193486036895244275326328669824874513866183199797262630179707426308998945332434677172068843094080694538762430258220712090163651271147181205062955885415382152581454789808817351351443151424054263151243735638527810963978792045029000696772995909585111774490335271353619275929004158482194553864403751818160231490188139012086478478218117939607465320930899994221914012972915742159528638800401412720303129226837423726089778175919873383044145502690536514922195256045238075030360301906002358976662552692127620584652390670808544357695798368963935976483197738186101599742364542590489004960991667704636217517244855760756965674926350257182688951353676328725721223491469337556646718157060753295872314653575632141102552149209268550842373715426000506424250148736179267428727345505708484700648930694378888839695351296535760720924783886778758821119878499290780953192874943053611877448226043440242553289434111670314619747622652486920833960504648767073042789129841706143500615479410827124532511759683789162193588032441368830253359840599600299148929411231845504994404309772285557764682915467685906506343836778029890200390841350981729087764320696196313587822431240057073328591236315124303773378933469063080612508933552963855460612804753041698974237481404226156699853901892230761456890537674525972494600188742104923719697098789933492837745768335104683946025306696560452105767094501431986669026877021287076184845387175185417819522119080691692217754489886376234864077003647683240888947448740807957047029571617173839399757701828578251814848810572163363248670203722058016702701023277320255353895462153297393702256642023612551087801798612302177217496469950067076496245180180037474188793212400255137387935126941296621950371624732704286794225682311280482554902416683304490404425158310245174346653763784481420570261362910313692789076945713283274008098177840321088202844806608722035193404917217893265908267788291795019206689233875092483276534679909182013582083376639638018137663458108766056084939713713949295078398849137502866003783806442528320990950221877647064182254353142516292035261177968723194245037073715948866827717167360520598931792664606969392875249113310505095910763306910681383157568184683016108271587810390297210308986997499660614690566591941223077356901516233558141954353396047445707413842501570194634344663848842514823319685672526765366654988498468420745987279750023953828211955405144334194033322078630891079525866530984316414299729959217884962229930521245022404489914388296743377192304245234512708738828160776647061487998414018351838455899962314406358542694618392339912068075671149796741894914765336390773745341070829290638439981671002108560968079871777567288460738572494344938647949746300827431157311226363531814942392443032868943384476217161023550618705986344516881903131609878679255358799855521475805538014368753000482045120268973430241694062617730946464375561406984790778691156013546624969941876642331261131071966259927595813004290867060197475181427173288775516779837452332509497692314407596398675335818860244312173199166880691093704865278572551317276157686667827409409723999264491508141864773214543922844287607993897630241040197848254115690606385991346534150635312696968734616892044080994755720775447337048544271896163682057277725691305340962684604003698450571490496123743377903825343460688529319319451605380801052218670727316585985068423434954322373352850292447408025588699742808752135072848817116659446124713267474489390240672208629757132624550795951833998266369700425775956228276123449955791583877081304280512857892862837258522835784143961193318559884661787584619953871485090909077100768663633886554324793929985773115731379781412145271419233425219622280651658629887659957729276967595578628652112291078545198386152881139838918481718519645792821858777958758851398546386515246461658668744188869027238312653029503820813634860467115161897165726231083538009064824910341599708211177202236425889896131682288606801723463803644593870463000365088780674774705571171872092539366632489725492767969584535284916100395306655995734265785198169345093746227962847349055043092517536069979828029485189361597051635561076276838762249761383806330469087903764310873773561220865413195506476218676606814400210466548652039939163764340235044337265511101540057052350816463559459838507250399616473523989083759420479109021852500108571066589330391300178887246701646246937950823164668836500236637512638147918429326638942298673953604290604176550579319153689722343774567982004228532407378367033825280123606806868948848464781634982230115600714574451123860313361800390016347583409620430207331464346684177161556148661391418706350605225443575204137141743847682506446274631108761507932918018834252893328260262132748166843052059268793952179482923496600091555165833888212165224328309771813112907664787594396569859395443393491264376700676988449477337554118127546449619583900895922682426167475372854609762383280608081444613234848347302303338763558937543801381688155325125620086536529700518237266473060630835341782243816240898305942431231752286098717818372529100807842590546765672620219885017278786675471290051002021708906929979414441743139262649952972617477490019062343204445274069986467997769659152970104401613965210092989973024105663253492945127187035443036144749234226590857425528628380071201539061362997446761707356285639359579989251085318381968157845934701884381571378042153512984297373656549468759429468335323368663075965511283531123973207048833199845479963952428793309600828329816335648106365088963362359544640242338603201712197256203800545789031314298087094166165472035364061040281069568454697835377227341188725239845891872913280317598650160889165657522575252031135358235452385032017340560551354582935471310023823151126496654839938762670812843117131666937861184241526573141910435256092424706207670272811825546662860162243272858187304054950908212773832868461781923639111515615719236735012305323793972303147023321000665608495726420960947325615995873828873930997796534384232600477203724912738790396903605380756895352256681655175498094085245790549781711364798186326629774303898101330056772939321127614067555834322888848879572717328558211120232938552673652230954129579378965203214325430512504317019006320581052147322137841269973436939851947161168730768010196271833744823677896501572661236561947718122316128452174030163235377611973123107107430431843634262568808207734996382321877843721235781958062811334747499356177758313460550919406601145633022904173297398772569298464868433941164783808844253491877360003193065919364769459090316239168421539992171630096354743448707347293623241316860615671485227018323172629820595504054100212611485218816800753878775409338404312839711713294457400975983148380140747393891182081406842671286007895127913347818199079023809792521230077123017870192362289081258920811006013861479327194960681615628118571499127492168293083207911971791235031121423373143543725335660300539235913229935963014401142055057384102560027622135626122016931620845413712437935472636691248553348185004285161501514424664049571118483473361432146637000025478614216940758510142609408954163881567642413334237139143012406311832249913948355750657242447432896182245874413425194515035104442746992937618173212598804204602496304408179427292234536398272374444882565527691266218666794005172983339509516839087133674918258003563727768642325874162963240946893964306085458927222241508368345289308096860540231347296769237695408555107638432096628222033773246072429466731123687086837933534485545377470343670194540102123071402896705923431520847824183517635328237670221917589926633829205785916976031899337696451449069934142490338103201051788025323874413690948776909453494567607973734083439332086727994647194401432262112661941504225567824573418399300729088599317426505460405349116557158709564334755044346999306596600411938675733743965409002936222477549305110321798120012973381018503843764160543043063955806882351656626559685666161810858882173488605126301338851643761598507564397120653037417039320764154247543653640834460171808603033590030406541195513464153067229664935398468037815809526670890420443782068839563985745217344016677171171929332438484339608021057979428149806616269334775959564260296018574124345706878045653716456209057510071102651111929331010697644867707049313973274609147020518595450297310288317440147885074498109554122544135849299802580456840504811023886890322134350354015590270201452693252522977106709390987185897125239590991293831130863905450722840119166364863503256645698058583791324975666033185144829838651922584378903000498220130221969873278019336694494374330991187890228055234279516221301678420176921714024830535507759653013534954267638918695890091111619292241968864459560561527109315097905002723214155637457756360591056258095703025761897780132642732062084406213230345974120106457011437458845443045370271592637849293845969876085551881599047129342359022703506330399290460112546063528013458065259911092001661495985047091663632520409219842688044208819751011364671245178926558134699169621240231961971364796026588097683022789630956675998587887579365567538374552790470243772524259485648810909742007304708777688329379010356818257165835292923676191391405837498978759847414607287558113742964673067943679672756669949060614113055093355369595964589272891401137686437516198243417290691197827803293763099158114064522797828695428127033849869829686923737563584840436925995809245562774662205117334065751236271893304632744988582387594312478635234895234055382481447944184477512601218038207834571686712412226599872520730749271288323575968003032178833720059992522952453888987289574664076870732712894514040803052823140331697056275874146602902733564696833841852129308849546036572030073395587127584329230845920302951316120523197257682137372882438314407396210285947476225136525608238193842593033414052858635436467573515273617918081935451967631768862625903103448633580969522501190942835601876562442415039107434846974653660534752024289275251082664427128104268656320124346747160044684481100736074919452189449983591458941695969450580032841735822150944041496492857154865557174764604644138678391683305697280359205099964221222673823413861719823976535090796316385523689225206982826127938981943322082828922305244509265739648225357433525766586644372910290637927183329579436054809761421686918914408827251225875261126174177535392475838529984899792292464005833690943415108698819871721995901844997419077894372319303436219089848574724763073316593580361100020775395385191803486868386447893880864734971986368135926792182146036038368307588374225369175191431092038379040290984928693969969352499701081995445378794154439440783918731346660340985684313760940890616596061880526927630658480762557913762713991147255419030013405178915314384696812866173239871126837676256490815522386243463815797392396555216301821864872411516965785406537125763218244346003387511374628437734721061913842517494384652652258145341685466387688999748595011483975025372016047076856209069304565569240507057538718719193412234263581816441670620656126061074260899871382185047503874823126415896489196386104292923168344912708031814002102525892417350604431359972477859612250319969566102151441719595525709572863947807168916933836112785883269420992960721548410848896140075927483223334727565796226856819928266544199839609946782038420552199519806078334880830713581672444448631694210946044134412844062343504319094851978964895933061874264513671288341942663823624158512189918162884738495784771119633980114389519854117820612598509477133205036584486634319438526178663947859088456397422975061116733044429666093260381191477350048276690684995329230935785225396501219530036518262628896775917497164840338278652208417215634838570250966916125298590807841137253853065590898403046890839519303877455238384606637591300534018972132467791909734510444761746417758319325017684880220232113829555260519923958439957323407020777281009373934233087102312262177320894677175487793443324754125554018593414023514897319199690122382807143339260815405779976323056965505230278620768091536923691893253788373015641297655096064041423179579776727772413946425970094673904450296630856672036863215818575464500719955624803094350703538160021549770902842716695979578253852359846352552329727245953387441233163783798487489313895026703869116840544858057752288611028530200571910542991013535562943713847190064372255462631196492013433715754834396111090062391483123478116784707652512582214073941129275713669067481960881876265850192357255729354790987077718143160058329752092702263842325204195818574893500801341743797900467637410952682236403239061088653946851997373335400510779725473519169243184117415805955895566100023447874490781761364280220645230680605794609999625261589363543608349860348560587067843556578292189948931295795797931589092897571756624752688136814423336225801553853315932486087954068928490509283973990925661115705921481812172643066647905377406387781891177052366264808403246889309934726203256493207106911196426716389877744306901306952320622594924161473221523690362730844540498622330063097962358283689830152760452099504173058929326481472796151662786787122551347062662444171256196098074320485647532823877102932149795538224946677317815784844058279210390535699422331433347906635785395619695461429990636068991235473935376175086007571540591117763926066429601647735849400490378538185213084056548965225206306219168723419643904773649656535033283411187112355593100760277399522651458147728298826402667088020150153849068145641956429402304624846637345144707344447913929439737658673851060570415337093105216642626997076793134743392706549353819960101225573396652413541404484986514209914950478462497544096883231220053034844613690372328730522520988535025231658449159963125873171166962459430202423511565495640552202865466813223324090484132325013204291679969442653958031983969218106820236136145776523685930525264159193932612218279950948804697606706318281543512744844769171110451700646640151896508940304147568689817704803910106842453506283890840049407057595225840481238803711727772537271513349239731582984823361344855758287417799991139140539654741639199983915911558203413157512368687747864685143366590863368101805948347131354164881187698835871154250084758185584744575462837153093591631856824849123288208543052708927105770333179002045221255152650213072915915273679695106399033010483439292494848979363562835910253587985253975422680125307716965675853462317404279370048917282714570877936065467168389879780176287774413551854984886439918558807400252444861901252333583549728233275887210720391096815374759488518626303018499188022270220619583458256968840861223663929792599694881591870598057936562227585052130309472918412226625540481161388899461466218274512069571813231450079142882293614527297485928263417987716033440980061936073201266876507539060584734088837553464219624718051396339257148680583826043915061291389841954929814371701885755486931762545836043253857162118795530146053099831014204211565031395901482089783953155973326513505704118346568296364143969957791071846011005284847994524514493138386337186885203024279287036455640525271107035921519931811051406468169554300284645403006239450038938038968765958388016699963408497237425771037998414354957197032944928012181871504972649027773713629408861250686339948998158207069750737900861079838575272675867496249582990228375010138801955016680909693958195312643922561022061802380101690267436984455307253907892935974937246487266788407156292976539580124436329005912314119949472573031322132788773893383594817205202562719641709317113678406128906077906404452014442196259576354452206034575441940787375051531548572084857857993266249850544229613880436900336031419294107580597772065927817131241085730253319734650606914659960055747943881659548150140742539665074485695623716248959747871993785618602497193140686153681653054110308497475203234592814689583806815473360877538096082011879508009233309948817412731188599921035285532460949127764342646052577295639725639165706454804570295688559105239681407039757822825651875908986624998354810766617848218073654320357515677413230224319375677005947841375869039742051689105469031573699124172404769831763894264163335823717102555830532313179113990658038501787427698844594691223897118941320167782454558286976382376722027423568390731531109696021966275704236544980917781135184815036151183407989081517991188999071386279051407949815767014135750512408934269713094848787912573873557650125507501744212077856686458890568781182697425311819231151702548617832870335078346033387492578038921739623707027528403487724388122521785894472805325050057357956417801143919671677878430023240375378370848260814662771582810111765954945062530879666164069027031258950158284256367682121328939306476256399202478030140603886307588148185106444653015082512184310057751510379063570131185345989465084287094884166665927126842289251818760621766679510777237983534713904730433009848364353173409916342229753019359780522634087771198022585511013788005776244839663638729337234526525390155186837188128518248851855766663347916198318224346296167224959449492985206472421616336260937478177371196972629585463556621320367329783554207905974927838207606411681867724938540225596073408136804362007111374447557114356481388398281436812518136355499536215468612478328058078289239940635535684449345186289961744768690237173895540901105754406333866035619836854378893496572886186396409134123128605332609615632286931728820580679472893837917226260297100495440903318512760926942139598017713220321718344233270420769185695029671458246878936144992559213353537876822277952548670629919770092608514928733888588815383978949879098292124089393009972499798329835775525463129269843665320317864697248781740559831182113610474159631899343370384032067583360366920300195657727361702007297488489207176306628537307416905338745141931068316682707918986127616232753682477467019992148309840084118162429980954427048335767661868643967581050126972581518076308499966744405995751611296679567552660733441842248386290092826038475641753457484548783654836676452405296045485965908899925578432898323435371120504578213766854836372693438387482402549880650852650468050874200442563353211611102306698133721522106891417696288158555173957865880433139342859809883525944839855810881294392736998899609272604158391605049582623848571376353794031484210819201868946675754066643878524160644950100533943820726297190780024956820863139019951413444944437487206845609297186087977792404223101287822316023848633471076853749924136027846998606783714623876688317056444048646883206088887718556399478671741246760802176322011372419302504640470953636170018051017826200876629234105602503048241626363619650342675869558284282947518722313705540793806466328574668051526881256481831752080297476486972649783948845496574146087443795140554902711143026915239107462815174632326403042969130326659902154587894168113375080260527866046033288387468056651173310139717509366623736298612074571663524015731865943484163463921190568823975182848951692978424878493790720341624024534108095995012005824095511694094267341044794534182268543720280632097628706225632626484006110755709733595226045583551636693296662941718163549105021303155128080760533830668706620677224297139747399686016402069504186239796442418379558004145455450976650363464371744224343279763898784511881971995547157677196297912548079370404897872824098075090053163917749353110303673647846665381380320136376522210669748672341552112160893382087459033243281576909115757275544655002792654116150772278629388092735390596491775369245614754186658836269663483478118821898520269586873942770442204865987864930690919181224830090217926405386096754768288384504966618442884984745411595570016752482022517820204258005901102281876779837021212615892670210243199338845206227731240757142856032672196939698373659659015441550162811543791078066668192815097744003767454597346969550428831468874297211340600542932040930785172002355160273279187025277914413804732589182576544591712774394959306524809198306725246554672369590829172293936316602340844250246129618807425497338453047865864651472391880119929784950594019062584616957965472778240204559960920346234201277661425287022159561758024311941335351532315878393969642179514823528790435031723211117622807176698480045458652994852788420959714208000473907522963701391637615737270346620934350736471689123206646591816810473253422619156977809022663165138397433035297025651075799779740459958003458033865619583164477862401716319187181954380247888498081147058840728528178392730924588950174300880682041098016714816336478065287395052778781057544253079107316946573085392671555050794679247728255409389629727353054217168907091040480239060478556355555028883634962858154983747926806803412493333418114779350160961910341077435681370613935978336128552144004029531211262113808526934291492463829207021352148997177824279941370070781765302535896745697216977556410886321429409885278789669071645578113177310832003351661058011191345100965063860052490261953950811652679573255483949651916283243146568557331030302410375560725289955395859343775087915896121767410969904474222397134113489674820189688822084833306930453613800626123987684355430189806398666855997909210214387848107860047229885674522662642168226602145566662969467391887100351273599268842271952544096068533222456560249357587272752496725006506149429381683488810952867493669819431295758936326415482207694746353225335719439262832427043468084215772884102937507921617329541404151715774938616291311153244117456460369410373741689969158874037377588765870484756161302006817222284993146989612961491361102825045842134036738784305981775805101276750084450996710490401715527607038304673358907149727287205279135711860089995468324062807704156537136985778278417211831208082931334311285034333076670476550694124198653197736089437894900278350511125304395110100326130974995022607479993705311733646337233804184888739038629934648226203528052281251482279035596892409721868164944964950094142618286016560349710935341401156622859983185830824506794018503884975194003978482644562811875031816835254380155898221929666076507374284622902714930807782819211097976252434161854915469158731090106743516757346376439112636446181779997721421583342511847582193632673701322580266272425219886531739111561608325047792086603236753800812837219107133455787836835882622321493993046583444374326642486261446524381927778215670084322093790560912233427501829378547396475542696197796168614908101810296869225779001015302643804064463630694706491033248339334986348812141681942846720714453933027996132645579702304390722005756848166009058088398938802338758537260816174795119916073247390301257809400870091849224193667107701140219345421875751781914043348010520702636298295329364210823602008150688275103336593087088447119202876667964465609661842540945972157227261222732412579845238121041642875480479676923840337542325339799495566502572223685616802823335561751496536264068403087362580382233530318386466371327801440813999802354896852546913600616760497979975919476760282101571210185789581028380147250368485286213994985354724485404487683423333241653976850239494473316460244828357405770638862911917652645621132423634149401605689911219293722672291673035103715620284966606105697477557034193632087657103188511677205848974114611438494014808870885535752478729853141906075183502842322259054360929989316676170360869856592827357659763109390696829094419786301906631836908464929927858101174953629409223262594000793487560632810119394603325789019873369662655804263330355822916537072956552138243807138502113061915369051961261633078293007042195308848975302750911696654723759482540746823409514170738516032575377038668174054628659903067305761318741926736046273143583040936780321368924811113146938093275894060559978464262111810004678817227459118558340103871634266425695342116520580163316686132387689976657007337832441320294206424117070937745883582195175557724947256570516405064975022329595047812514816865587238723680776037424913216863489093781699539489296663566292882803853487766908845741086454697847703422327355540478577474954479778349088165682678087891978276039748040614649261934952452387493859905425275884990274448644298260691031680991800726916022664504927967294436698289718918773693890858462011069051819349721953779895872783478954296803583171005109681162753606153081434995577821864065811249616338772922136818786942228396610548880036317446629513409541410308790382644564901114642465472723334817899832674414189311481818144489639348960352951289621544696827682134865852359809945242699749934972325964530421195201987302247909856056666678345214573824558532383016950309471300221127073283187588880957080571146460423890868977194036432610915594530111522669600955270376639246761736676481109119547108243591852859405820430579206414233121273574591662906051117666009331859235262733123180759194720904049364061699260832133613989829533340698318274108614257816502013859017581479373639963763536961317847734265343953065706226032109146836787566168485864662752915993637023770772914108261004069175804176227045442344086881191082389726468005253891907708420557734515946271877240201566910835138877416664214231067816461730133962752555263421193588655320134228557084921108857353610749412034432889342622089352849619781630909808830115561435951942592416358387134328720445794260284091338727686090796432513784618970176350184777937722253931978150658642809678066456498298262665067311490433357314036710471870435045302018408878145198788573408200560059587790668572324872674912222585200222350248330274757151133725228650083042405318581784758197478276654016856434233565461814761514309544293255680312327646584541776401234979511006392476418969034623993297977306542317626355368214729494834140196678228976107950733144287817907345397677300657158898020719946189091453292273077613278400531863283898482689165318653583130219376504429279401529919780446227501267119630189315209502496713870712884758847972228451996394037754208100700892433857755949993770379813464961084080964427104804426706586286402305150108679418743395497879984043423953070923070904111681122775576876149176547473679035328823351942371270032197690522027948563242456828514336886164242717931237204557908727161972409123965112587233990420784555036685588242826556973973813089430407245180621463298754972840717818093644523076462875177960248259363582529407044043086856554488038809399021590602930611698771231790788971529700059318505394205829639611068357779487139700198161940732686987131789851913835174573123093195206242605751823319198734480927094718797883679593276238691807919386548655042673016637297908021417126871790372182539858199876155671046942591891958355307011963223667042440376078836724233007494823143558644084314512096575890751986147454479349780987485350707452226034284992177362324496270851019137499008693927505967198980702078177884117978881190929091183319009192958663737611633154791300961868996356367682247846144793095693260661312600001496287034311452130008154452601561371083725664624786345883699154010464249106417546375060670259882172963959864010551784865458701428292323387604380358494154574486720340414332409465734182622037201537203880139111509526648835370560107973894738746581168807386983053579036536021250133726843126993949796445134577834277886525258006688254323246491792385179646560116215619325400844799660083068403885168460338647996184586020549354785387685260298026050902046709629727125289652707852127447820459585870818435462595975568925604441253541132681663725066353217864213746212453274288018982222064432758788840965841646639615387174796414534894551764106387130289999734985435984458952323132925406463007469885050384910805086181700691225068806396597589896723693077223447024897450722846295284855761769028285762718953872574563942755477486216866533980923278911783855431329061699403334876136361642314614668872925200617889014388704177235192755037924978833351370125321900536802033007395690366419661925939691764439352001588845653172141351046513013820115053645414768881145690864294533075176254701787870458176333923636344385505022435237583019899398834649182990309801265288369189542634276444844961080403344079822362729719394279001616258820696710258204292577066600175777932962614114693106974980426502019415199202121417456052605107885830073802524202295222851062611430972377245743319446179506609984602328839897836804560506912612217118014627087782783888424571948707786695776746588686667783401137502286919253574907725565731904874586610704180459619300464140666727011572393330229599283028048767509120635152529829967565508743260382568566612562764079278507987541539895812105472402125951988022835990795808947007804890564582226637533625892443004038002767386710247615659227279580414873078209592134114987423644374752826959320192453101494926365216958588657914475357031386768623474598655785465613977095939728546456316954489587996165708049816500629036096734292037713380444563422234540412372334681127163347290186189204280130774614642930043656827031279637847660714852122183300777755893946879234906978109464577202387529822806333060256162784219725446089653335184237552732076184865200109584038479914690987343801649874918259061994005020368439723657775834874655949042186977692447245694529205908456305692403430403850996272381473675126047031317187492747141128623416491516403237534920832410470537994851934382056363750499684914053905980606613260585422963260326419499214891775580884502380163723628995970688316224788395375108211615550132391481768105072823465260176679004992916754088393002731124377473052149085747074101971804863158661157969485110537688801250297641026088326457567791842859068167376042710768246186416542549217514296174037157263655388521765817239039778716443033010422255480407780362465760173452805380639729062994044527561274779780231771039939543215806261403862015644240745621055338782081234068624923021710353493947853408412190360835769688897772151965785868169520340280646943591201845627426036390491891322562993340834760296014890831142327265733754613542187781149569488683672350673852464646266578781482789162926701902660687906079045201084283578676106765167793448441063962904012047567757238646243485884184069534114937485976183949343995838735245128404431585292281734478016690084972904150390386994889798230593369855796369857681524764903402630323709930104548410952629825645701262827132668799737961738835474616222402524973913844817933235885243424282078856719455221149516193983100783798096457424142485499138680408925545494707767826276055811466627976394748065612673174738794925678555858118896734339884391491787883730020004339996478289228085062782926627014209214910419522086121935807735326118906932890654341236415997305257845310752688723259412353577486113280009632112669028221875314229866350616115178079370534608134867883659411789736122386108185399067540602635973439333425197861614633027388725408938770053100815888852886601977958412591627187629020561728052006452797919916028173427939629167658776769869331474727736992549136441141089470968526720944593671765812204868315222137915218418080558743236731286997900555743500911998243382978632413623133166641655342778167873502500996954037540697566374611747798524243466407439890831745272529128327814662118507471765063493455423335798918556735132896581068612621034051660194334445727651422737190170124038633953155512460090095386037947987897057636814017197694506694568761900355153687908795053448695472409225278747222837322360046625999656332072109187155177667594870942609864852264487357106315098879277496811203682133481589031266894256935529099547936155504439918927568980153607374913555978140346683375160967184915773292369713559833774213847491010126679838445603255426097623513126284570815521018338320338108603690623504550555907178871083832241566030492194612622639063081984768911075810365750744911116036350510975332492514030735048034585778718869447024548677154043269648129903065783454171059708492065736889299723535216177431695257574936548625829968341042601674810688798601710229043881952138528721259829987586171892226943631080291127163810648117227125979405222833075850485237340338661813157228704821717994264453072232470852042639220079661637014329078895714389673392933290390220249841080780389618543054248154317929137841542660965706834988673184746532141818478154824576081128914313425224148225055569878559061990483366635994030459953664309565374109009719337047687183999609306644505648489510494963597908596434896224531439206038920982759492874493888826975120887542709687167777163341345745656359409397311525045099918893645592560992234536967165675150117415137932351457038058000292638286377700533671502774080113189265499520499439123662965171038121407032247777687019811315996238281611046064718861142915878969837829705039595410189224460535339879062198119824147358740065542168872307010118630047748834954894054099053499569704044442058472883214365176140644055966043992372409861799499767112294020152424273756797885952538974799059871917917113789728842545018959443607928211869282731211994137196424530184794281884176909699145176925203200662629234681000578252717803357244311516528779041671669727633748922787169971163999999008701377057953976714333563715223025967827553232500286654712767067981962354856808867966011550493474546078591382485163091424232036764741963174519692399297987499183737513803654886513783186256120895920491304778220147878765157273628602587828489985251683628666260458376686327979168921917520448254490120626976114750491472480153403928459017940798226361744011334650955095870270807693441089900940508721422487680586836299369160471657801444494278165025872179260835653660166852345165051162768239299160844183939920492862295469898870938362395801025452028855869065358732876707356526919166316083698724691769105004813351418002201335833529193358088679144120264353281252454531846596348488058394982845344732198320310715228023218013383570373601132165582986719279635359025355610609480710472216208733463492512642188156426819858910698530277193682370864722796361389183714930037752101784907808174518151818910647126373504787206323489966219335883854101040135711813069299897367546643622747747159607185541761295080108763217664385391274404625234124843167140817445450696776571364382450066442564805225422746382060953556943672922580403800205713629386643187636213781439087542161313629003688577220403141568607815199402560889592037689242713736037920933193798205827551650271866886106238901474857972271241765055264886563905166694878433505942830139100735494032228550745767981642236694495959540931698244330236499756148213821482881251191380700256412851062672339261134794076063426576294987461543159939840208437808973902137635167967206966961853131320374753084027074009989646532664732573781027995704152372084024618103569665530642722184734080857802034731442664765092258227585536347510568646068664319898673049137955778136417747586494834465432280283696014562957838073122663049141636729665716904099002274028845622671546327445483881843483389034974845608700616682014979558182634822932979122492321634849814053586498497766479944404340974398983133953361080002273683445482131610401482766498473601787509946073600449633703126713218781136805616861594646031132853216045062185177613357992543343853349831418201986920409392403775121498208727302143149622530812789834610148904376670391284268629128246594880764340429637472773371278774459614487250492247283078759364558510770040574668785937102560647914584375087360599142169768657005237776859263044826157077133487337564707678246329462764401511086095667673361526126638928309727451882686481780618511359960115617285554137234049925876253268086317075301558493363265336944035129647375612666769348223084166634533039459723247908296691066172692307424772869811829789277205989515973395629189914530214158648330259332262161834237954246535286703629671171657114956862193577198677375402752538498196998641667851223025194222434548509759155818036253123025225880554358437482135603971025990354557495218269473119993261483870828960763463730580442896271525948779688723946495275255990153916960001830797713145575181772229093916073888895285336870879390618805544984198231325198465572589389752889186623292547363616732066591908187376924920501217252521460322798594380418999027472677442875084846511379816280788549933931467900785902403962644275596334279751215233185290083679601886114134803270631885888995519064979085344668038139020236303693115097270204765739601317642752469817759293657250088576897710784235776570954289334701416284354646611977103302905625069119242254176623983782060020280457883133088151855163364360889278797102569682197716078959728270102924792420378622975242431800115456746537759119159471818401322789526268498483915496654412340557378746368335281694292697482821556706231829909519228849329397449314423081904181580063608333804014132589517038368217944141805122395117387738323148591890722700822438593555039354626315203008426664597623581556990461648987867972628526859817328774634323516326915907178126881604647946797273209317174031032698704270617032964684849944551569076884627015436867903711008575588801807842896721183040797975721888263945723665959886088223901919860866453988381345058092475653966683074048800368048714041987978635149902856610896876333757292644570235299810056048343076537364973729699822712306730737467119369728288404104161685629509737768667018278639547821383332187830251966448175597350383144218803500831709356448215095501928938151548529759382494598229003016210795232596433529588722470586151232191260036928591129196472416353484462075588578057164052776803485553448594315729073535184932355081336803700146134405635105803974012907683272434318109445457175172315643154941517466488769503134256543796458867509185806754231407216086123264527433605852908450154161837879242970222238539175464797314488795907194397104870053963581736378963033713139276903427721007889010092870986534701251069540406984390397162888539196752315585653242206611861015939434872781401396189045163968235538299306236150759062903555373451340493970143722447480139346179486194435112115313812460946325222347491755015308849584766215038555573408800275959765643671925864307759845286683272549876156222077556480115588657302993133702329965012711112907912261038991510955605423666695772362011426384689111569921105565950704125909679422934346560782436632170067525150563948202047352467620149170311243569634218978502123352285732376840604147262638010955977079072930041644898757522615532000549351510134487083785469882779665266762612885780735471931474462653393074979944220243380013285344289447597970501336618953508307243408210257512502589964643229193999015247746061540985152988163773052372578763535439003560443582181427488618498246634766860624036937495585410261813723716795585757753217048009183045544889531432384973241324168094768155927908720457225804236523281431748893141197945025278530506394716232824679942333846177687720803498716185314413583912002132304119336145732086384682299050548338668029301202862511733550055614045262065686512118422748592767425801148504139561257744557329469503149820802318924915350225540365898439526856803130123800490297718178480017843867759514580482567566865420584480344774265472362149812023273740594940712697088517170652788138484655202607348801256947539416859778600480059511373976221820281513124179693680474666994418067099909760412719534017718282938422849095944958457654520235681502672603928192539304934668166233274895796389859453717031740112257334672689146317831698297181889927985084940565604459182062376646218825284600091927457232128709626992690972578580359538026855050587519879860259424470883985726052739116538149793898523064526603725326167184659164714051194194452282326119346382938318307497697359588110370546509633417858113957134989769227725080486860799797971814004115455026941917388395454851145374110425552920050341128606220280401729722373345214233870694911575447308862406900828818147050367090622528118945779238814396126114845402259056729039385608150640368410734872281863681972411397869728655455603365601523305049425757269297044302600866551359997151121856770254150843866579555054777367525337747324132166454939847590375199569353634818239575122275392480819892626807361579033157742618350519996464527332636822020000971900684432135894405111050283586884246231367986091845513149639761401883779674476506552779947492101392185760290563250904802722709106230479753391412392385674130164548235953898525179677976995650895660853790036353590603805472260105063179660590478821325494578695869315634487183393332906128262463012465357127590187771806505993622796552342377159831339582751172302092555020014282480769102802397838519049043722997516157402810990648848189466462236363910943205485298786668009627336563383795885855812418191050740768726978593034107214202435582579902594818691151217931927085124259970412744785305228328278461099939163092410801301844939132187938991787023490402159578967687743499888033298096106882086139132143996035346577881431376973803600160835055937615696676896778682516847485736574232835606430976208263472511352692338671676485078868963286860126288841706325480400847435363762312960587366263113126511563846890586752368831780084852060493651188683282321736831619015494342950045592243994913685460492029861879542191560393311191871081736603504894341720636824750012801885115384373930907545816586794337276369903079261223860074611396176462727938384076464451521390756180666186804164993524974248427030488552831803356312704034316067388654727699820830123261258739078917922175013874392571422592802452861403518013531394394961519145306078539361157533539647141352638083634999944119279645136126125669714586958281202035021877211535358769405500791022886309698971371145176380770877013770486108456866719327420077244115623885866625190098994517511735029080659888166681395984862980095958750913684567306456878488553149971969313353589946541418290851032596391557455683814411978807510987284973368158285336194467169097229344304998122389039593012791172582725345062827679619394260571511329284233750805609288905884781460780811776761863909914813575772934467687949130741608339636394224440496381313520778663486867108024680264613264588874177915705809875156481383052333436839250766650389902213825776483900572790568120156517305714233771865274607082536764037265054536966051711856599045249723467498729544253861559464777873197756161676024340770334849171569462916534538001628633292133115676505702090690370765849830740333606691739623429045438613299650363948475057056682401003952114532514122916019466055501683667908181489258929372322107084465906941722494058539942786247602492963333610553607664601349507608554622868323183318115119759276344780798663016872421404202704620259082377576795466786799769120494729143081883455004310948046982389743451166755054241163157723183368913286092068720363874095698741951386550744305763427446830710833162715926985771903767223054136572602333814247094838382308382331727667136335906610151889847918146466636324692994209898365966909027539586489162430759849821399957767569345830430250383269947560513740432022820741173377861797575636375030414885910628038924944687383497096689562798722137196011613067751976879644907247673572765666355666163206422919159569012506466289191207476125797460364945080286441042406038953241529433387323419291941931962368324309568618417561364568757393416611889536090723020828709443786667552571371512154958258103486966752596372446662657879970451763631679630403225166304824391395542906468380870430451209080577588001269810990336233162544196513955031436963658708981413144225266255744649078090817094214144120463591305736014985701951962972259296950685529829727709578521750648329453189555136138023609533658564415617133913323722619631253411050860824193094213975066065412910530507786826870218578424701241845987748807570301569169133013043398960847544662539965606578844587116729553077370794359011790713719268388228290053175704729232600128296963364883839699322603429172305542716588070460837703044493051254591764749750468412179271054816610462746768503063978787771579735374100307037093644151268901822384501431947331559381677566501983812507241066613252988735033977713431149617916037886079495067546166188878209883078507180114111853950200869472665048208615004957420227196428694293888388410224438633695431089592980142962232055663762212995289336617294839862384922866008725276253462800655781641580228773174426673965890709133317141590671145969369492649997954234453335975910291882418157530834418753386063882928204965857747756349003435239234478025115868831243348167930105295212744670880720581257975041644287802646608891516582720005740100329780455173569733333094669490853926710805106026510383535697789592289829724224464697021253885932466975812658152800790456269194506476500903605928607163082265643981187305612826237606483492630765361574372131616521041842279701566051115837971184995256123174089824436871003307262919256356921440092820344544044414680756434965999138904995497813243537309452143168086733134667207242358857392778530125519534468022823300740748044127737053845065891615162263311067521449863335349054441407919835569368184372603172404533802633058897526948854000413574786168453185930675007856806831189672792078541202674741161259967250985410753494759464139938756659329257607532492624271708063644322790057599112095276253524607725262721459150113624805696764651520665314509290313352619661795697095622038105901237967193737527592979629574069907908949594371690894979789104854663783838641766263437753702356425236069551264746283225898640205611984176004475917928706308842712889974303949074240018053496137738142995447458811543158780958500402759001854622931595184619947410337069913277481842022136627243126611786756263629233537159300011346932604796957942587213082799335311093032253897858806427052332645739951487530973485571541002473389462942368907629332273413911685419534922229055424540601792913211243654929056421361525644198702939187659448425175440341963975847285278782294597102934682466280675753853640182247740481910187485787138601771564965509208197635221088954630950756906445602647364473018184510409219862988123063942127819771642966931992365983200005950092491965142153808682179448665304862404762004836288708141097632299717733777154529386557359624148772894527823888243915497466581889373040578786698277143446535307972850403967730128678104385718404582194025237745628650854870602170706897821317008188524445328939458783209409567262470288381652736972964024430578851137983101977101427136045718901397186037507069461475121255630795335424092060853278106802631437615549304266348652585127450065465357293837607142863743241214886482151125799036169729151846191546197626699082137143054804548653097488591494693955302100345348916254348235801238735454746421888247131767978789933195946768683115131818253633002362257292301892500760632002082519199146851014005932761983462473493456894633925061451911206191855559373646994190428365502594162464620612286901237619322977019339074577226964210594203274793572811362590391775343124048487311664065471850371739264756904473930991580836775863587834045063403289307686207037145634423514233024981178504599482770969900607290896466453349552327791428560873126237892823504653513774683851853163114944000801493181343863752906384135166034869033504687500284778897053227485633124405398985439885801620640138467672160119627838472957087790045768368710060668617253184603607997175182888062943233310479112335542898723109525712669030893637438794398918102399434556897191498087478074628781261035439948011961983901205793135198341356669472788143892465194237179981081560312226803840822784956717037492074717315402360848781206471636690159986159614504640901568792605050413388865061455648863342191761187988516919605495640864757860113250259750732207119222249383413042237649581877469588658028223420773170434530078723408913552529497231556940111420296912637457348506973386965990996986346460954846485655732911030986432568934208904739264080445699266547147042857621594387410133256109240479653904553030813107248531068393468587004889238175616481928864217859684020387222049560776480423312005747161508173356934948557957291243113360583552827292249834946295160304582623367733306715008268634767131821119974630611532660382064469044990387838191719148179258927052738793619755576665835377686166777711339183866993821331875987150005409768748625546023396337856510654619089309876602202391409318264840488766947451105282817462723901631587284363525710768808154310909948172111923495509223100881647207986829236740274869580735260781593382393401540387280386006302632704561760343754767643974819819751030893445901672594600496662119736725443405900907984543358720657740239276772379589310400753654635108299011018630795995354339066820105913087112761131664086358829338274369000652266603794862712508141848504987912288517014242125280345241007060480687766244744663600948311276806791034911340117727564883017038334968284449138590236991481828846507017328185538816248642655013700588087377551632301929427573262708302542255954335454900026017894900852505331159278028896694694687993046172629698985855607679995055784647278548335745733856070073133958102315837300240905285723346849915747247789695579056110246556112433596152019617769836571864541010040727306985063873091857515196097793218914008965358088839184679059349187577925678643717235819756682476489145304866177842672055285074249698109492095309793772059101030027530949184339276098736636165143496310197340561696995007616746867546679869027809238860589643424114197627258295914690616006478031369126287820929264379762698186249352976703849213621593346876049694141910087868954077734009829733072316217769723672523184651591939910499598896019684146835438579902573330938266442395980740930090102989770851733030262126449848543384192031592615620954829792227584176940816091834675614994362750988630411109502635734451047329648654198153154294342933200793555045246982944495756300903217309504388922405675482722036682980867332725801688980525793211614188861299739576930989311626807101422464486520717896085616596187203207019258328595189441283812680142907823857291045586531044620187099203686982885265503695039028232409895479659840157549442140924941949149140989756845606463008684771075725738300117642554729417159392041220982179889166372170222839509504842727556896325585816638999763046656291296737411821899977727947383285894343062646445643647433628537131625648318253616339546163401372760607306638810824825664848553459225760223916468767352517177444825598301521509843354261754335413496075279249128669215928084896452267049524354573645963383190616584926177870863074637354774375045116054809362318115044771740243448659591334630277435100856243799841029672344421987170696795451967304292326187516364466224504760761274284990354539992416758084754606893345354476466107740831265185233891653852776455357891753247119409052830566778130339955437507495538135173181960639931864265862634005365796186445344455622224254347235961934383784895960925174154007433826444120069739903307206612560330961856963702517644819321459117393364388437422080282600184675787242701360981443667307474197415133826837244721022724568354728879346995139816049094745042421903482423760705928896930599122819850499642249378568827108937280207236731766179356983902807786819882474038687750652580764126406606883541132091275731249246531189804306446603860845078574756702112393822228958748225423824526048108851672897231947826131581856567686837683011355326778236316027820516197413782510793617917474605535466335553936007786373396333280146361312755164540374262925054133721920573702225984115349473607750108812556113905273653401043103743978077257725234847052269110494004229965949168055816512772598312204382610311352953187694551035511337641553492487770360338332040084092750460299271875200345949312875908260614301460700136583255394340377253458527156674859570035634275053641796752557904873407612103022033441155141881640776471633549704412041079201033422050260353564341308298659382395870583740410534170492822802043494028130325562200511726355674289949816405972716473493318391130339335530079099415459450928313927718987039050616723308200747777354107256904405965102980904705278441902640281685982051228301382076881492265710427394338350559418257132536692744926949427856745619606501220058847494286104360240855117545600460769386950306097318782955002979578776977683119833014690236965602201854756571072356563489495723725416378054785972234533469403609933735156294345730187370398057907250962428690741387424118787678527777072570610093939549717246316567444745774219259763821179288746679788828608466214788675028642922182353231197875190015566048749486331310413326154542124420500766068301784552957737628911389728300809273987772752925826620514507245442936341200265034278700215833890820071272893224146094096394203826797427074401153738878499494933246592259884386924136030009313734338678801880710381406261830446285417279322183610770565806344730656944620552283237087779809376913765231791552072452555414166554042498346233977388067625433482247846950002784268080927701314521589917621268409947774006944548888874748487732837193923741585268195825983380463028102094076647609824455665820706139463082402133197087472584000183249578455062932452239731270042328244817215147756974809952397112222751528536993528465684180429817948289379581590592632042553061571385347657750200414437849014186154241561011346199022741355681975226094579511354413468231692289906417048550006326010154028004886607597490163454108068204826130025024590483100293824547078730943959411565241142083377283761075555089412778142487487427727667826040737041533279817098969663676281083778619703447265824079601668878549749531448971679557668989570870128705591930838345313268250679703474935633614820054451470353940158028577366162061515071996341937291426902980635798990825703598880537278035285654977175270247123188166208259644506094527030935506936741882770607006402640144486127365843232180661104827564858268107502608504475435394710627134746486433736625041717740014566701484722755580272814172204475647780264465951280576308692093184993556685607892693884166303921117649081798052327962306318813220596546476348855278334708148713876654151937975496868896303856059072565231239175661989767149186271532767201339377879403369937760031095225237040343054153623677002060869382685757089072727370794494996660094632134952631405053037898902821257236961848998466342322917346232391264840717115062872533312033752886817916978966328020184650677792821287944241603403984472906634195593891910433226030073933645200535472627306499538973978503669901599087668255487442371983809849342255047419283038230111045658645979850634671874651559821223444819429415783559078730692803115512310126398888537870620770547698910786599576577584522347360408755224908875679298417033463581756468072709460934435457938759817402986662603386490622888803667522659412213301345603441601690052836425075550457444716808227145536073437924635433698118302101256965762990139256292681751844380544547170063354031965310185990318233316627210249676506316249759965639804035643986330620845799429537597797669712503841545370409008154248647418139404051532363324023884708868535493422027768841017664257751571468208587214010667055698183652179995625617261145402511389408837780890151847944423993399414522041646108495255137969777470631831086185816443738206391818137832398610939708462537761690955048186424996682159632762847905827318313241480908672104976175703381510535082655884298995907057420458589181835634994477303604977309676933259221550407676031974780509137408926886856031160035175152020304407424138037956258533459360887434222633006744466986415027744897231940825491659337967976647996787233387775188226231253228351433928160824806360583397475595202317288854002406540433285989582140906671580504971016812078992412055843786207486383876257082090990683630052729698813510248937716488657641087277355783190222584632592095944751181096566538213175298865884250641145690421860288717975463411553437906562706316960521812439609586635205060104613976303090879427843218980346440249312273816903719374312782135684775707288111375953672905374827250816156441971328203488639938368800936384478214611283650442450420318816182826560223396456444846288007183219773833215887076400820608533026535430970732776101102664006056092918697313716740015573549356633199228358102589899585754480723013727990943452123930729247570750827999880946264938745906155589947896023061609984391439312284130612475252257660719700320183594380562070952893924527657590231799308535651594819412004363824697240441397322580362332945834164858274532182667243409573821339965968385730457605828827581577055900842823566867235167472339564231939318419694737344271206901091154354970249672610653098304272080261145153355025327358667759416750002907619405342299739288463034304552195339113070645854416805018724273100783977104316318278369201894270292270263163722378218951811272472845370843592951790085335190565388231641332705059923952136570032247305201657682425692608245037584157524319424161158605941646093950592121956280891325996882331154883169725130543506598926575165633233999278688964724873140507130706448887554914593912460061102954782242290271276959867481997911497961873638254571263178476494758903994696426047099999116277801732530924374793402532974545965381127081882725492283678402730060505692720983874415928617404967447730747943213658515651649067266535192274943042134062392094449999650800446367874476932321710878901575387640113172122684979140981667085857839231266996593472429603924540930212081485754365123715113094529981136627975952312386928151881253466317782260589089483864889463523636589291428309667095851522098431843034724561804717724624370181502884298519301753091383259715812562516957624045462511693925677662819430917209161994310963655612451481079304785469341107486139275819961580199736348970873707376936414857749775757104753742186921607486101757404386335811617086502474187702708310489477323544977941727831170131855998833650322019893714313206647918011329656476260673412117783035447908240548888442739073814142648787508631755629771325598720518313537003656091287861144515781001400188213302756776109490723062154542353509866171072806124163316423957306448284824082718882200132431216193818861538503203822547464559018916080485461084321798113409145478439545600412708278786642260010453663977912007964013767516921442638577338570472388719533035210251530115347316628704629958481493912829758495752528933701146858346099800415207191062447033770754067898948303655869123188909342371641557329696044458544114954641746089079781562809748854412441638343746653719782106673237276833140002255905571985160443818943183691998206315093713970709363514440683534012515591184330073836059653311333497135140821307353013989009721263020775411822114876934448826595905075029997419101041561362725218283643309770298809372101523835234113417341204199928841845248525679881252283033877904920111735592558110437809056097556777841819311254308015249452204244658242663685956116050911743525406826299388139013990601476687991681074210003461679572652307665508587981629790271634650307115130767785378112178578084872918273551592323566417692125625151885264749949624598835729169597106663878356358222922929674852855023974139628026039743758609677106207059610945457418767611099083933309477100859436502620117961285354194704924077722851735667315109595629895038584336476477915179853539019591169802643671531885861505064038207704136738762365491014374378386636259397079242271565034277208215508918124236934661659066460001533910424288653757675444434487584396170497012424325649320755585853039517266335586051937804927753482283241596151421831814552553245877550552316047344020499888387838420815262759417693284816666477767963377441070705610501907732028654313416925231381480832852487979095260085644469188025645828452205900752101304720386947565265365491781407005436465369129790256683698624715467905749511087374930339809454471725803506846044847660448205547258840041859723398430335683638337567717116596742690161833042278138198473085378231367328641161058654391647807568878327672247482148938175368748978921567316272928438747401833080975895368375952772780268018493224740457545921753989549325337655667568119959824922575473795285009765452921850033683770881678340856219017081497305268011157358198926413493538343180663269287160375478988109897318615645002149639442990334418921874852628603327011449030411527440953206130592961004999424297117018966542381594475427766046412671287094266667033396472307784876779794304409125234204361176742534496100313778147321790925726857366384589892996599567408146933986259213207982107448165717696816168239611647026201328628948003011111571299679885109414451368079916710422608725504640001505489034577479482472659720166969660940556187576537136901142326925613968186541799644598728543892278556610007284628658273071857966957740239179600376258531041679468859194932423502015670306616948492592687669773049607301183653389235447296690781646156413507340592133607712132296672970713217350577446142064714097293848952295085383205264907430629295302750311204468361761669519824051362375301296235031858156309503901408189055883302933204346762399854466447547411411349898473482755333321759099057506509386016815312475028135192369546968862831765767176747010639746485535507183255172823148327585189148567068828307491073040700648171763913566256821000426328185039177702786340306444891434091016292682733827880141575770484600201832425112577884199443324233285917633688969320508283707492730377744663123908739712255843885242185261760934572591692780532372580224157682529928402665232840874673083181250212299469537291317882844885120438735806198715459827726828750482217023809587285990576605012405835240558667873357092008325283105268461069278157930416996772488850760257614650327149321023475881254810480985113746719134296843428755119656115746810226393306297393545065688966125322175001604590159558585177382344943007645060071618781566682886951746815839311322888703514342705095247834038834189619359908338110843859255338589258365378506588930788168528963258288959007710533701511358262987372736260079262366056370425117803779465048687721810750541925970582923226373680879688033798725751223500227888384459723369414459327047270709281734425358665000632247888699303577472706031788350633406407430734902242835466026864955226809418794542738557635382746798121891786014866711771234807706310079017192266925621570636911794076013654741909652404694257368933146640079075026892375205815226550025666322198318655808473076191422011340976907121571089856452402045317715679232176154814114960437437307407502350447142392943057795513342282464283409964270656316789050964498625791678824511663754627764716964384917668830108278037969387380430626455121779256792976378129733730573505929948848828066651104089386810947759749637087288639574269305458521594049091139500246901705109515106591969340838209325469890366976973071315670993482900060287875732998486743966115923305395205679470525370685303720438491997512234220607537431983871738373722798155779192524610007882049356619043559471268019252499573512493159558908444548183801392172339183869017672004757522757173564323933113780173275253148597014269470549173097937026871351400573586035273311440424900198255046754594354733292122740612413707167547620638853397410138787780771826886847469237645394179700099010880368338918704437088786523834346197482449362289232392120289463528467099613029847575822534259495507969517877260925849093729170512776469967844769977831526806426610506058064981296228829991011332877658109830692455397356549988000544705302591453985848612951247202219314435369425818600137901435686752889535800189348389426038798947487920903604195142557134756385133631594070333143246407766619518917415809832855038236919391582601722885813017191314572670895550109125729205134261182246735418267104438350839893322283123271199353191258620077529010522734076997607417346500402592791178897960211477009659638109130653513177693390035860960419124189996369334016158440585661964211536244119523896754340798097724766299726043954480001642466664988366948014989217579367405157269430015068539444509606222073855649948488209873941763107556057644004212132605048230652568593939274420731892281169683995064215219412075237477727623396248896131684114776093552632626618105773943618018744282280126082589605073351255946155548578193059894224035923220265295161323882433534800710295075890282953168968972791519162883873941494949086559373854426035938442327605333675310700783473067520833317522920278001189107759663479408537701652526267902031769057393076382446309502239228031609746894295473678386181881907785725594103814150376045081014918718394655072711607265070112945500743330903955126869369576413492221793660441824961670664047040941423928056463223260648140429870779669949374616580625366486456383343545717809838871126386671427468575482608018284072774071448846335409652731709622432247876714534214404498155542521332826147804424495867753464450070428727933493404405407455757079566389536016132147565310647556185096953166717048175607600289091213420183726265817804256867464881332094635507574791144842044941639315252728947430118624713354249867593273655865287686200867210077582687949951206712375859846149860596082306199990886796469471509429384269911959615740439254588078833417609530395799239769128175968391215921234377932231822693900549075897749007914527925102643082070842871589390510499138769252019566566378933559852905805410069155660133921611385027247472676775309007350207793066593965303139631400026960379968276569289604325289581176605628719927838652077921346764699119075053577936279453550971281610307408034486127561443587749322747357251669329915349147909244842794705376445207109367606449306446953600537781957977040193608773520428059903224091990327177213770932614560020182769958484912320502063205758595178431218331888495964515999575013233207721599579987294741850036448671413651873325015369691849719900156380526881539730255512754055462897681778258143279467104291159532448917661994848378343567475518306737401154812183182174342856159131886314381594397104474495452977500561730242101836840529881291167399076434830216835227136770121935720169720925073716835426429515150979373584307534174189598477044046592620948657091081606221069607976802095517819379785180330131680522705714199399977222091756345081427432465258918093955584390991690029642582349188537256502329641041835064349410532010452864410818808000328131624697045412692142655454861279417306555497711094386511052461050044629535864373391367147804423986113855608171542945456609899585352458744563559796762957139815295503698218508208566381935175837520131274955077956003339550417347887718430801065329681888440782239013940062609763181571519460043599565481731559026890788568425532284186225236484066058246699474915283875970623870592142773282131666292147169064896787439282416352848049860380139196448305587327987315411211898154337511678703094260280589596231622229136184494303061668599093391487817587667805301199771604316735759761773599385185639350305373374330948056920394789911736406247864918584070753064388050575621835047959544311012212474861020454783751845466617195912489095429512792944701302368165372107919521334274821785391890697967597888272785531208054506831653545359246162162715916408930803305015808989484052558827413370251639341493839513805945721065601211789410724211989474808230835657361428631450753959664267182181735994278661034091378151615515031236412927178797819392680235817312196773206195764589202338151094230183445858181658788141949503969609677870646998068534359262622477922536392363175750021087427549361098203733409804301470003107768035236748549815540188254049195276766496598075957619517373204872016923660411911722041237306206239111729893617825888778231326677480851560796570473330675160433290785100832732857041758841414349563973180486397495057172622723296739012127190368249761928230046909191256831336308839015612874559867125891932093982784734571933838180315445203671321634495941969574877620039310408754503755798660199752689178772736162285651621481271524950111094074664875850265665311780641364269492823634509023836912410070938118991135107056722204627182755935268188743344894063841547626461692305040832819603871525833259764982065625450417645805383545525211677850185688106351050229734524762468295801969384490922204494472470427714039426070272556836748039980070115626393033076138100324163433425744406487859875793602974718682691939601487159545048693570070799130606023468855035467286267214072324119358180121221734852083473872420343508892014252995500752418576857821851021770717353366382802350358681931408891801157354291564746989022487426073970108779032554331923058169971515199953027563129169341282539269988517756420558127211216226851167314361097528216666799549474286322017273583467904048563979569724205741755279469511673560161243923529052977735994639393226174409217908615505945014330479607756611963626834846741028899158283379812512242483086692110423053321738088842669510773365029621439074870429748895151542284173437513660139882997518929215754663011448656331496166727442871473124713511472037922460202002937585100346415049700112711022190420969689528014779707139803252833485331375540477408346840296431565905631609417174550055569954938271648709144921476616433424954307070064953717234491121093853797940719920135961192224719861914340624633251268376930591875491714153690959072910082040712691277264108638219777825610417436211254743598129980076524265999771401503247469353517170716600239150609440119366237431286035124814305230956673275868267405636310520583258775071977389146375411019351375735185749615447379778134315483407445251246045631389793125971697514219588275257042015670927353466319308393651194971874607877521280430212576363846739249486665427703181140716287345659727996075361903839875080678164906983434399438550217613472068808099792288743477814916053837322099564144127187197987957352980327111436503685416694683512793501692368598691801240737274853335018516279746639110037640166735877169881438357273315541469335971683410096059614854361869173011381266531874529962345217132317482789152608678689728871551148320790895752789417201497920282572715952290986028398823949031717526647280613012768096954554869481979303794242078024367021285653474398963663805980595163254754585394744337534905834262284283998219732121096108328965647103360718216194476322229389125530778149373186728951784208902046386641195513724450807649869273087596148082024904031114373242840030290422755574868098428850381816070889205480021771449643576983959509063326378315110718286501923666616985251302869307320725706298916206197040660592629522712361153370447757488385201509055356872578126298942218531816157362263141966813767929184372727426418542057165085139701765680091677609082514014517750966085109312284718392819016792972696673014862133096616764486208375530467881837251283663081344721223704865439689068761030636963873356906440549597246554400093590113655494852407356279774051447907372627142133992029683902033006437591393876825257885512820730894510240377789632452195610829108433086993652917048793143738885208544282076278838016832355604840212865645790259990519393761771281866555086934997454498960086311009812514332659763902408280127526273557091915424249963146026435728568256164078702840697361908247768389501451899438142573025370237952643278252619283527558093470058515902033205005753338481061317315145001240558711503088925403169914489982164267431388148965105511403518714485496362904038700758165510046075907163447361314381275640712972905792284317012502984363295939558503474478092926321795893383419726248120953783406982766842417641006267876968086726097947301730509284758666602475162795071943170726833968945453189938317931299589176216215468313503942791008497928480845373841904106066831990837517607756134380538100434492060266126013759634930718464058515106142386943936975874587203620369057866933880068086066871473405984477141900862193381525658989533708154663703852217078355043109967220020615526114901264718620680728921459979189235393945861581640789958356022666789284252634601200083724913789715731523081038098925377590042230059122009007272918754350327301585072937789047035301750611460355792602983829707701479824375951504498165989443941448488507867217489038561015155753195738592860950032227421602608655740399546560851634768697090984467472235905900608574429847430918313759667614285946625062012555133093999192894706641256570057596224794818033102157622883027716012611387690678517964958571661061050085535528442060508711245298972140262944710983609895494824584707615776395965407989415107668687244595297500132630245466336814592829217867642603525357594752378691962534855828847786302965577007296233275188543042964587757312411852900579925218251764635297766617711624765926476288696117492241189479851161488279133663226083628575393947176764024688346127892728277408458280515484431016278205678480790069303990985592950164178697776472830794257011797034570367135456439368595408695019655374564957034467691727261188088018713413950136223343574265456243931173822389438919768642350730151635284849559039272879919892499849305343483157147049655075208916589071912729637935384175391503104100146647019407847004500419320505216240735377506576522051168053966096298779345760739834568250025391064643674805308037113281095459202375060921620544704532918486700106387527168156662499578958582802662137648547929301825137004505427993133484398088516654392776490432644655519058963104463432400384112333383978423676314434606156342006680179412978748232027844693081893335079058547024919706138238387303127979973903852663279959548738672607763215760759285613929263047301580450645630948529703561714178612235869487694658297319160035505752976957788222159503887952221648633527231447751487923104043270738510416912352334963690228480672305108165396214218836808147409502693241696498456165475600820367464008730400234775776149831015083596926414346399916693541207385052607054010889595098002712440648803316569312735276562059106704685186602576868693428139694104963079029700510350138044606191418320361532058014360839497109491300524367799846439872641793121682230953464326674694539637475167527381507738623794867100825198254753499212078251679800301470645209078410484076235841960555605491202375687218810451838293447050509368337611348140107781143089403871016512029424278825527645879636053933280560424699221657283068671194078978925535753345392555591481561150521939719408474802219169025378800053564486669565954061907708790330059390419982815573550176153992584692432495746949528928498774808783981268674426452549516659746949679284781659642608406157287772154876137119000483419899304368954467886435899420063207862193196523915309611090253256993232689785618699296200168179072154735432764108634896681534650379555599521434406554950820325101736884432415864808965747904285759103352524867592400376275953483506326006037133364041280722076300553004477413156161406575433039206837026709685782441890183295188672963166248635253627660022948339479747684848913038019268677552165193932273819679787805478428760449702502067394558550644291979440673497258649009861694301957859740222738089847981969512940360294010486801089910660002202207157488161823968974258650222819691151409459785802078410323879666654491273506587782776397978735904721655414663825591605741506028530490422175533575819001059813186913903866132849714064612641161623552139195241836812006806964326062846375010765615872462526385458495978558438683258856890347562870489041264926892553677911377348877242562855285642533408693042698709111695831824810498045654756628036091071449140290034134072718616104311136884809712241991945673167350014377024996200632445750906552544813400284339361015573743096121773501038044902647176702766670190163376678129020570712131446471011404955871618957643039164268702737025306319487703966205105785189659230759120161639730732904098135568322459397701725989443244918090971432713770362754383461110369724934259508551058287109468481704337876505850641326741810889930306465449525325499430111079344349316790599743485672200147718954145849327746931676705371469697027380826515010401683720792744479970191792850146134297061395259725934747446279668549252394167064863833187112695623005312607536788009493879881524638908958009344036223356493326048589255913901303804895874115960318399706788158802864279833040931513987915123665103353992217739172339381112473574996989488769220653307591499324891408709954359930618749042482894028676797795580576659429927584958680497419296154666880354457178218345786823494586453805503161691321980261879992385793725414914115531290435933637298947521143712407068834134046833021019755607012348769447732597228161056501686571486799121522625946878788869197042819234740722884061594646036267997662018618867506008257744582680726424125204863597938195225249897235493528163415849873698859884658201300286642118981675150724593990340537693527980376783838839137160137913782601972504949924942327107900683205094529863244847463154712386921572922874194535152411396583232207561203422122295254960543666098465479320426832693820903126523461269829008738446185470248200215525144091482106700891709589188845190892037701989709606474782944713542135574162127196406169319197954230087518785235742774866962047378822810671370933284250199261593090621016279367967292815880186769552701908825997318031619159305220773128026676632871324672541770332097745830566189507672215702889114507692523322828864519559247031996179135449771982283533545823315666236585750149226085507380616988485060376296443227379778833189611335603617907321830513166949081124291383105040034038852824333200383050963423565293777003343833160657784524901840210133941651396472397295416440954528260262225620948496382013637785881323638329799657791237025138734916430094920962406876465626570742871782946922070202985147896667958007404706099654135855238269367134584572734897760227591589341123616335640885284798383840705087211562670110176450799819635164282460168238757972962529391612419287382810364684919764529670208746184994402852765664830175914055195767694827526503359834876650183480228097568596875909102314333846996963674325821517890633378872787936907197371175115093456079435708886878190691739274735965519487744685577909433871051527076555001979559338581833133248264907532109937640944877515820513109084216139870072215359827810080649041494091250619611177234057137296826409129317013592556058737549211731370106025977377002759746243863751394302282691490990304303770352813340910830687937647649894746051897655629017148806915328020931435433320023220715948053192142274081960559531320216390963554918274472011868067306374547437959266633890759990908222060215470257957133664992117793982434639018335577806457855241496497594024336604833049631605399741057595050066002695563486371857295791267664939928217079923034473003045232178911898521125429217615530502064240422881932226613246183888687153933394047859222891651952456344985642971053251584759469595696195886744299250984478949282048508903942344031144380550361969793518485492070888793234101522198081119133063067216567075799921444958305256612396079271504762503399686939563893251462596677375997928382812794846824035821172181152994974844582018637469178232166044947065676093987273982600309571032505685655906676402859058670256420061344759773575001675551691196796701264980280659249053445804272938180406340000112066747643774718591309266877799478351046817451255599436178851839117466177220473304127832854313062044516954675380706199386653430431765964196588631327328889059845310427100068140518042748297599451650984521019452057570547364604009423160867159183093520806741992811721613841603811123743272255560514199870509269548740380212124184762122500759323103269546478876407355204658034986578737641880944108048840982520383304929519966168989998686593426308029983863133277285947088624170350493977828627753513785687151382726725476669583790940948406080006647040034493479704448240839980657537384907485941279845622350978624217265964978459491997674727943506135569110001000853371335100040638641688104163039176058986334893892871095588349619004063316907268536836917571141179729094743914880574636307110285057217894397079862634965216404510848598192067505308821102667439993167950579319284857693803096177086662197814300215262716774529671390010639049224850797416068841348759863465082363469302273131535205435071691133389123236929185967160876711287530991852494680494956020284731418046796177454990672826840122586741723141046946342123348439889984917072314782696653695457189165156569557294700872029025370979503928639094610373325907460152075829467938855952233102126986636956236434958940855699735796610780349212948867030689060242581318125193812824724888974031659884899554584192694153828248898299030639839833779495939028876805122729559635130103133762833285546043701473648377070286748448998490648697611529919761538048653942285882693629305545332122289420347478455133080691972432837769209742717212735171058290629636287556870144669726992814453812919006999945357988666510747888232349965683967600175724519627666445189401321259569128189990530739720710071248910106268951756307717124562704802400757239209152180473245263247193153182240647950802216833217771895685360362231525374103393260497133617770859664352018109028903920021432384451279870633260626243160858613368868496865511961590817740977946113704611632388381095431662246834348962998888273298667576672893354170328933966906890814022720283520781198949509589373376952256697223649479452165058029499301732559634325340679371439185368759846905365757880436691701217296519858478251404466801332863302455375073339210658934707248620097846653681155474884541927164591298427621589776964695291083111444908609081445560073673836046452006203599149563039394712870783378911320018693648045892320925030174904926996548679452024469364570212338587280234133080547019876400839686522725243009658034133193736552803296876148127904284926365138423695579343908817809929755208662172097491283063105614765241543441431075752152944515546838182850266143718865234938169761275257850365611999401889830556370851599661900602463731672896373358938813457955571808966282269176845930209219168505896486935488861634215761238266644384334560545461049848269978780565020060657264269607557424103953318623731027746960743065754712751969858031210884692926458761721115595453252448931538818482663418615698973452227696066375134641352046391036908122742412945252334492308675981466708790733001453834978032644380029065781353370972517944812675298435232604274959926516771992111735621576620752302975308653886161368402612333998349127253492797776537853259529280875952670280677678698278875394954547878269530388880147873833183065688518834690902429143505511831192265567737510962806604444711919201343060071353293033668574677276604129398062717265600485128396173383645246861238722424698051500014040863597178351545280670281118648641471098903006958002525252128372600961788493532355100175916762844328243936902691032573525886391467214121812924694134400662218278825010654718057975291339511855918650620920883599520160413060692150200650144263731955383737770414254927190636405090837504671572183795663108225739893747085973469386345980273134108029723827752647343575691863498941159845516409513026876768148241591846976884601512086195894741047946557313263824934970789447043157941149757287007167867518839349702430664631369162072129816757489299431731872741263009091089568772471787671530761401533212510350493294991505434018810175766866938373126208376138930670084870218140388247871343169411417705076334208804099114157655826386415109530077438592151027724031167274033646157872621402037728774111567863705124183179356424688257924925928289553695392403697444344160368885127284403697058653441423784216399766382492545882031192636293338877636960869238470880419214913746979613386615064498286472075730662534153581874097977404737148424432421369883221369652378695319045918003204260486857779792973981253809374307054666327522673302337053123585651807473766800985741592187356259236156342090294278671474579547048325380413609045204122220792665047709921260900892605578027633589372516664693712788021746572289524114466908240322906333211928461309238542690286762889300936305414170334279366917593681839283080305259712905962585618468640084067089365659998720912581671193573187043310761841298259075949610426327212024221518477599847875205862760082519415496704935008105420914942591405980312599798248873396788975983015077355792646542159694901004763042477507010489187957638645830745754268748355083053130092818932160952097470328567875795097241299620041909667386824741352941861367618523599220954523454860145697016901869448139052791927782675503065379954397632755165359514100443388883780619953159562388428113910419917672652615669511397030777006435932149408366818365880729809272417244319777671024256777522101731874943449933860157103422503010068898590345987561993226190686262730414850416907385099749698856401659782207365705779254464290337858161626043086782814434939041177928957392549131248215632901781082417609073344304630134214486998650269875325169637753803262575191537890602711527897888747934853524448761218527561756995570862036241862152936176641149767089198514272947532315789200191091963739285948787062731395934148664814938719350082388525801722984131403849799365587194903460863897276042913250423111266417037411750865077131174132994248765676909886909159833212196242284404135366731441858105151900141979672016584709484939252873402218026607537121557703873605834073252681669158680264955331812194658428828179573807538682130938243797988155822555734273664421160179958752294607920253968033113965075970410668562327887640564782287168740454577967023831111655813645838153690766756751848882905657157839530125785097503710642190285468871318741189414934817306958955731232702502264038905787709463064520211288706219997704394897416815544269992559322257029378053909539951339757101615047276217749814029738045286145790003860894736992242101901558012388567160956716179578302640942127095306073108108557085746480326928276369164925472625435597886835168101296193509354244768799355175650052407653128988333704010651482619896014200891962177736219209275679213306911722085555122002645214251546385369733431292795221038103708337260872252308575224059407246556021768046424123125891370068995501079755535579955563614262287156739436920043360816534843841780876576156790020034171976571143277384396649741757715733336067420813974297102455789407545161723647694400828735984108093308299408779723672669881773675504352251931364333639276287202851247153022165419377300892824509945592598284194092507316659679794292801017923495251654709413200301937335462842594330084568883100764638538722776096079173912463564765037282594586468034781424858685507561965211511153597328034065344237731548493988946042682283909490967309596699715749582537646504178921699436733949428590924601208774994595249434444408096487271925466674669547144720270795399830937152050171987468308797302149737436826574527505029563709432855367868989717407697117711006056159871606237484069230273884583314169450076233084514077030436698556330280582212453186556259802486524277861834578412660835462407738565129964122622259954318974244098916825888040100713246060674498100207280889854977266906605041466024478420809126949278624912318401581760874371842184436831542101185012971662359343946136481763605855040744734291755375991120633037048556161991152547573875426055650603030814815836582931483758911854484642655047159328360333462688707035074257638672234876197733613085862695283366333619399803519257351301651878854578784634134341393854409806213444365920725461313298664916158532839420513100178064397832379312509948340928159106979268461275601467068883830622818243315631900508069905639488112185584387809625208111299457943397356676472272217840410418387720435930046462878601125245913426435527191860339538301057667297227034673462706813173468474737272874955232783125087071437047626308816434350570390951126434509169297172158655720443532901260033357462152956831429141226131976048159453131389784594996726484405373242374978573406366882430872878370426559784660886290347826396018921032673764563154823938972667603420873796614837536631368136371835355912981374805328351992083033311269560228054706226688302159192235655497011077179208944331222473373519156349967646213498183000673782188464357432980973263123371161938532374892438694028958626746252029429698124834272166730382663768806327839571797136337895713236791162682284432645015369079387830698964520486186835396513907506996001361101537501179556948358101194997412833085954924332180846092795498163620893826878324893562442308938628023087708145490028261943913735283355649335138778808215070948883068514564154594055365577071932997794660711984765658370279038888957930832707184745047437549362561883658906038763986735056029610348762697664295180137372780243492316412104071281649206249322671760739145300197076571978827079474864253097062277276790736065567056639156749964072483937396336892041025238271892517835340697668153973869982638874191636888134004516769879271715260066319315357409517721043503535280574541637912013790694022268518436956711373398777324360022270742396739313047790077503384925385683352088728327996802623414770870298427349568694759049459619488813975382447880040813490122372691178016923865849931809331462626541678928968239084490639923127254710033167610804097905240712730919612035186680880005040534133462911125507684075613076173836158433864705502121149923085031011712819892913620160100321710380355450877780948092202977398189822505836654991848773815579589726775661338261957396023924337169267196479224872521860836355512294844539160848391737015216257091109984372054079282020716741512606843282441146236109244291186558885210030732018287285171503589228235332962814195075378057449144725755982462896059301897250469635202569989265258921630026721941829542810724580857199774091988027256232875441112484634338919738369815404502381532830214321070895658232817615230567313781200892549197957867386953414675008949468182187063740531304032207488940184518701850976980612665206472047009639320116799900865650615688082906378897403376126547542105951566790358920050618953442936193417472022132868068588285087508312597630316307359103531477861748461923928461367704765470876722364002579324957498039397130479523342032537983077671577840362234454315069412737547245626988779832631145517931776902970383869486752144029176977415743002093412123216422617102231746787349475449865455634573590400338241814003621501570038067339031921964318258860310605255317958466775695742366197096302209708363966076154908308182258448539981255273134459596031317255850814784398237179335069364065785043574207114561739754219548359121007100623679269945330995401568494403019447053009047760250570814061993327037216676194067787103424798711199404006340508031070084377407064015395659993861361394522466549027361539543696201643508476505101120736429891410214923979767896673369423816344419273827113746804477637255954504238211267175549272742089801723391687992936334996319844879738806538858589575033616015021679562485034592457548483413519346940403245562093398814271180227157241046119798715464039561248275939833252494447928149249647378244306238477105195175921888677529209592274164939898971305089299039082036543960974393705891125431649345733094076710929055433681383711957947704138715191712902835796662603966247301657625156946486867386501298171549489510216571642873722846621280099944393590222869646248397394306337678790298705324048251396404679184479804714148973286525791078472442118375925474959542132753643751497233572915076592127149877995574382778885475988559491436023765128997981372813991643858872735745085872578806054548729351708681583248633604217035787583843618140281091855541503243095542551260775280490844452952571324021533143277492370823302251012159636345533320158500894864178249728690446047678162490994063536473437129917301424655555444098700727957064648845628684451012169688228495189973825344204829106014569938470986323781191114166843100329273749919342601150322469138340751490038124107865318838532010117366384581036867004053405545985077185109220599568150460630405164557249751686531258408347083750382296989751564100794620886031180683639038392294226521992751957705837602399283763802070909826879797888629620191667483962893304431513926412356669642089072330165052858026853757814054021532642181802023681092407685696492675993266117281244722806565157416870594942161782455256237362225387418121934581614656931246622746387632502113357226005051057259700785270832408445077296345113852248029641724615992407051149345182280990688304170795223923953222743858049793003809650789572620679988119548453020562999635092960774357374878222524980596347860756414267900414824843601715151764049369075428376125957022181997546858988513375644743275451025620359465840566776449514749100883988797588442053077484413186826172004233281180394312914479436033084734016288223070575876070115781759828749912187729169009441569762337548737707815753325875211010369868174817933988655948716602472504215045517912971112199867815162421794911286098739869203301663096387558254151727255681352555628346082710200316443525441708250947330412754862090051537801730379853822306945075957099407992493212484397451541209552411894818747013540767522917365492571900650300789503917281856282401857588259329826018871340136878813429370414689550361292127543174508544491874281930816448217957424923375904180759583976900265927409139600105270675461832504547336293092811465208419913228434721186416686262226508995881961268159194474738051730446480426367142784385245573424111291437049171800587906128279889698193701732589962311916054987040747922716800534381299203864292832965901129040486859459369428420337020495350160759562318801436557990960997513830798355832540829141653835996198051454755497165861096353153197907360095449317246612880297540489720692486309565389164868000873741511276179692199605341777429326363493808666381303109460328854447774594371228474282608015040216610335772700438756376386879367586300999291604763618565629454556579646979500086900311174892487316475640308170414787371509475548845169686503213973399190206241426058251821874084025822375424287520150134083673107507698900483578652413525519199026746279914274566013717807639357153253123586699436742177301505237288171905078207767175937249002135241275041842252424385681617905551829196980833750603060726796085108859813887185115536297906986153087408910327071066852836880743739623486029550091701663469929808750513417291257241425233679972462817675140545994297981233619417016528482712695076013642373589645027790321171805109800290342855352536740019553965016076087339907121071764643842042748058785040609920037887489668895662330987987467138184402228040142732645668587090954691646809462896717934526251528716729583840094806336187533578299710389084561156370254888282669935592587768348906923319543445726147682047747895697182712702927870022976455192146048960665755298784040799803604375093890619017321546952758659967231424956402282536104713497219754735534684158818100928315501578086337510895031777333431622830579155715815855189439757894395987311860057447267419512712772513886641958993620543092985549015835509425722327656930594963051518536631001212852165454202130818103997041116263770475557906411781040478274842086278640198222984759545423643478592771002851652250432020433731295342725723343200326872428290493308016085417898419890434599765604050577492486210561628766365003766314976420853983136927355841928344674447681231238701876573658354595594027146374903146578322607071814404200546399828094359377513219935070476128535109778664204287949036434970514062156617210479090190820099894741363287787343802401782680592814952729645271820075064803319239762593408319757827834062376014792999481702656528543905780561497337036993036135462506687795263839766526259712424938884846811750254039148172513108300492515989407940399617540547694248983306781018976578221195091409253662749976290921303213823420736286890408936011597322631511915966701129473657260436761504101086154581422504843667870927551990844856923691333985169130632899329201904556477983584127486908299731502987344727292229341094243720532353463805935494871574852362221955385830348739787959245495185815089823285366790958167556562559765345312415210652683117773054385136424774342656534166225719562977650957562171800761663872625508816771853893968979701753062388596224598930833821362080219170282015591356281375220041330215117353103494148975039838407218376133907944941246144675081078182572450031688247952547554965270666402577449366189624015655404655795706459265413780534710693814766292424635176219879309659240340075399766841529038818436437278068126400862869166277371366892964890613291525611363206485040539631943182235192028958028625754116337781525048751510051562309916107659370017974147731408875977456442378898297577445363837311734724015647276962758392272773099409361162242386414401045463561830463532256672737390702307169577956090290035648851164495312403486653496196944513300236616527580366969204175566249323766647692414235596789721709361629613738948024608005326787858535029224420964240548718991456051067719161735046398008891963294772563478333143031857587220906413275311880175487492391091524846189352189975598585338221989076085555180199456889061684096700092173235482345273174594528001294071337109262661033053788533352375493419614220240002339460115655762114830394945647752753402173127115369534282596235038330283096282370615125921973291808330693582916104162432829290059183717511999060041507077425964594796859746435759590989161350273206664828857164218459055680089489758315967145067861779842427934557059158139897757067237978638341824352116347397080163720354747598560523230886688347210669731672994683417203621455580412137248323531897042446573180344890148331186756838367627558320422302637113730184543958415597022779262662171619631352485051031129283099927535313540534215229071284847983556886453536180034756556989410165638960691715135908151408908969943990162158272128110435522768425936977963669364804845184221328522691672675004999287156502422567457253716036649015386034557014023516236514498899510465300356241578143997493061485864720227462064469467423953058945323269414217939934630383382418833629075316404246266108125473893840187343109440293442229653489009750677222739441379138128145753678639097137053147989127167013882088400431064847327558434086516438965416538546885463494156808596104629817522550837559582706332740505479775862100961308663636305228241720934593325115196008237332029300419282526668099733449401926533774633567194503009008685913514205663385215477558458038635168196097083993597689080361006628752646641589736011339661317449881558553984112143978626560139652036246165916732773240768450494185346356603412975490732316762412177668362372159367548529393591591902002515120987183840206977525012956039607389522020705012191182022214886744999197831881376562120901954000432644386320935424115369460353983520131565668111114669747792999949423912172831168921170009247518008499271466497744440330189847278179107578931430908617022984009263777651327259085372343265604800182286361758610576984833003454485152175174902122632294785445438419282139672656184477351107693110935854129093257547121257226697183819229491802212609610591972190088299929481197376903280136511446714070173235237756485102082495548596622748400781715157076188061155592196009218031939773905581787812676619333801147700139549752367841531503179470069418014642921434566604828117046953016902276147427345764062481922836513002340292295898243342860287362966538893936428517156018777261723720651005459704194441725147498925798882357608989316790681950676257299015586157820655340973000539846936775344696696923592989370288530942088304469034839762925542846202413152806896723877531316534171135316026629021694577526271094447459888093607092376980643339558050520353616525882562282629566513125838147960009940993181666299073576922293871073374415640555413940583979018057353282712529622382368510186257490129125459581018041438033640218202487666669362505081610738259878171718418849818049122479304381164788986888514160510784317201037015002271283221847404860417595153186567508280211365006501053603370274840374455774913049686761119039451090914210423992772755704401066489489682363922132815212347493955365414711759466012096870950439356570646454048680333642958355982453370091764703831112623333234426191633969870330557257074318035660528984437281883762574304853799284062506362312013870192573064242732781287782482926748756995030999264603217653054728929808837352002046043477979976722025435391957612287346765151282947637117917210563055905443717944657326027111188826449992342294304520236685092267828366530918805320369540838369499261780076535040105026796894571424507417421804232805768169672817532059635434249382332713851057580747429128452422735755764792033673941961590678086117724339237660596871764351388932235079366123481693793298475290442676129488385525627387628649950868266491383428828447053662821941458779806230710751861572507660175674620923497289475082554570056816047349618137388669087560284593307253211360637161740864622379556569924304798248026058622536684794857626251720498767010587970941688603202229865231187681680527497724684462558287644583031113521477928635871195917942914339675857319911415910129634209685733465657629486009559767894524602479630180758058216336122137604766671099143227338088915494772910429675078151545021848337502076424540475244307539211098133496627545742312531239324768499853249653033342473590476272492466380161204627203770959106229494308443243331354265970768687170810640265560615965888441238463463190538508304672473076085488832484400230725325469549050281960498402462414714727790050019922262103950160371514424755146923184324944627517147878694977350301102661575551565565877930369598616230715278340869736694422540880507639568607073764910003334889431199670174532525263525137706468673447870730141218124657970688520917494865584311247365818065286015620724833696069892661901299173156408156658624630371692066639603438740044417435565347380242512999161731243831373570979524220119192480132301504816056107620525487771549909396649135040623129933299620665138001988833169945453661975995855272143599840396643249411376410190805681719518742191135423873095898890849426280250879577097907089098063211661642420901274139217104464586984554210443019056836274098746328070113330027090173854981488387784634791811276578862292283597849824986366907876430238128539117819018555293060747092794310757409528971734043169708700018381114396044610602902727868149370826786608572098973178108038425061280341829623376468314892067128548022730880360493026702039217221011617774206809980058933957088822113151092061502142816017577143450757047758306867639806446551668231708561303945873144940462572371674532559417568718012557417718692049460307761519504879529735195262653829210774569900168257585358707975007719926777700863828110988606601990763528080576976778531538361553434312730250660440737488288452558903012614082806152640730850017206542057230048706761225335075727583804611054915174983378671462424581772271728759807910503993183051703170411985757198080707909629794884391273322264592800691170654554690650328002432333671433857830989623833702830687543048472135398237719445289520196623308173544720371092727861691178923083071392849671146284349340774292701940677269091427153837648066316627543325626316281197500805131694709414116577714891083147503548565480886024470734307192201291905899662592874270746135977066133555354016623867200561033017894181143268039725935140593002177306459075312519990722839871210374021448222734517708288735848745634887134516505538396906213307244311275792075910917691228497575189367043340690153118113951754134691040879990520851551216393999241842855383569382321698956700804747547974104216652774332007356567478689233802666350646659519128379845418553375618244499534886879680706248535974666180425509484418025929306785423812610340530910263788171611391185372453620614549902768803184336732924154665205432995759911854363261902485340827028929353566923477280771919776556674259847337541815152682975449370975396460231140667086749938500015457559066298328258553218225268209091590697056429529638802773456980442466922291613121553483997920337449159942448463592817916525581614788356248401868556144281788249821353176643528203577321269672622169929898520410279984763988617644949935511327968939569709694471429656574475995346216058933677944428611780305279620356008523583321720515676335832439764044067275744651380834903626400826073660966890279538418333654516326505835799013814135334281614104213829255111910494876292020375521888932533133188217395605726052214469663830686156517897970059539553347954509736837727716006599303397884005332221652287596235397900258462690757814762820347655539968063302644579984660140786221693365878451763520267155420738870396959693229287876354866332008504842002918945447923782118696964689982068027653765030618277576341327113311192293169695672165995645158559566528101274586785156579259552653728565128041976114966326655251281053986800077830072596368671706201034956991629015746749387807783827744663279749597270015689792784907638408612979078368650560258312015497305218326808458960945446559319597994316420084473227925638883891013502339976090492651500583140740725677819654824703706724502050390129895645482900172937370385907423551464648637350153421545260239649496533408867718640156825292678988789732971491374256115880818576251924282410908008149626919457137474728402977482019022838150457503925358453102611968305923297493072023384773191642036371742150685318056169423046648474585961945475539084256461590786211595398112442865067084040702323685981147475434607204855025470214877875440172955617946974820082481319691611083730013885529189852844598746777581504131177588408920188016172430287680954503151646535735641266721251143674115828019667011152324450583939131799751859930690738860884436147451502849553024425119428329652790611715551979176295133309912271566035582972255537597670202220483584604946648381772300373934625598554079660310265208577402435071444221489417314980041976076606227120046083336709170837809554604134730860281904518000828874934667217359013571009463596941787408495528633879232393594616592312036805726848756560209093325011453656130764299314915527890704959960096273830547264021407405184834854331280805471777249392354033002365204319804968627811942296027952263396723449827534361952212340432995915197469841566482626744783340249142954556675572625501434799544611189302712186951592314738926493450516942252235327023670145414834062325572862161238043924996160342384875874078920707205197838871983323723703932259565836577605791230976287770163623930177624211380937008422142985693814709237173382560998539382365475798018653163294559029667100724059070561872759936111069248382240576691706102468308484872718021734066791120291293075916532085613942468784085962729153709910650967698864519198755303506909827324229184251668169446587321597593584436274786178074175346696081815029526611829039357019466278380589869154078534833461708776911857449288070612814027497713029608546744225535294866257549066866828354527727316899066671492766130880781451967761571456791062651229302584206204500433540100468327546491365423889646037155716409827131991145977924619100370882175587385467336336954541640428568507966663619624738965768265567963891907322221582390042987272045817306296697912882479427215834304736733651816357066627027765422191823817485828079517454957235878641324115755792724645163687735005742032356529527476391089901560301321220586626486663001224966991059621613768546307664799326976416580736485104801602557279914047109251712151362483838926159946003034443958043996351946505226518422207046861247647460427621257203565023252373894518517700431291861955285358948548056879820485943111959578199519985547366858400648982056087438921508413566379025650232960149609122205879343702159510435158753788822190882685620018528269346675786766511160512355571077091003903716426336986832643670318742346074310703444088110268477873001511030402626900157182881272150750361704305879291987867507908624358835580100480318145577455512330304430482836813564132914571875473779257870263339193864428556764611650902732320595820723541150263511434510039567597969450475766487041767031248114956328690591625793701766996446773556838908131460770749950742251527641391056529977767088947055243717609223546058516116816060611084571890780151247493032734259542297474330690974896677354645320850481993731458478657287824312107447885393585441573022113066397249055057581975258544505980328837793730439633327492606199303083076822494408903183310548480238814676978521480363991557153902071323719138601290886006800535374389872133662200828420243096046009459956474678844945168380450542635187420094705910556713590136033261692516608230042408288794289503421892015273980087869019845022051389195397487169796249269850544486213647717438508209811090923969534845817071085973563985042777646943787917352792554165051468384953845778669469005956907211120571599248238377214952493825564556055154692860309786062071772944635382229551236594792561404034640701275742829934630887035630678809361160915639959617871544220664500842255045812990079298806822439095411144849120891540576460077030061039694250688064110347977751550881283440490609951982440048152297253363547728312311738503019764076916612916540286437854270617165452116576428533476836164563553590622842099835292498032755627852863532478805788341017563078701845489960728922413026541553816770325284477876350042427734387376863311074950677194521764075832151268338302178802410846248950984952673992659413778670258644573992063723524223827360651593171889994927117398210246422921731567283218572290803737457931684155813863343522153726935062827451645169535661186906110223268011970226809356943862441319212650456757776682552603924769746492332044274197134416526169189940030408328770638678753744634589448738159259014870692373319088812494630724050306991922316538345285405406244416018508146411280150931231352537688550430244401206253242341289948347798551712664148631166428832741362278241355268940832788888172475498181009111967269950868093957271657730956923237967990392127694209616374536407016204627151568642124869638725649769526913869919528498343857598416967473800584670743644181390535180669729820753498637989052873930508136814508238921310636097178251191319394048585643311672686500939508703549366501569152845819884659206547162751051146716692253340160041119012404647817238916591148426341429817020670619398028554401488793164007909597083090223919271336836067425719957226861785942114814283635286006933080734782000675741114601118904077057933182207077548355968144090704888200722285820705906613158691554337642391507371213077023969475198473994433871989635921469782704911953177790710146380038202492108091611901085637334647464432046403681000906758496649270062778707823667770326778738377283587024201925714531614984514932198896642538050091648154450401089024001032607486759572728196044437886183974031669039430415459742002374980691657281113411055096795258525955292900566250178727572566347348347283726499438416209790402078206007413227126262281711158521880576135443297249368067715571499840828695792475077168795425337848932629887237219616421269919832558392959144846241539565183640046893095223328226749969206755963918165379726286900899816673801987116379874704857845389921116938361444438643064960475553879391616023623010851403330492179839234747279551932495466981932790279365103460302275629240571928675540477835648019486672642444018663910772690255046502048216840418818356634710026391872036724326245291150800748338001280861260034972519968745302273799891613364122846122449999177091800051540921023169286930907259949431765167362612492837110206240897726386331111795795017592331925857723080874147019875356946806084563947926226729057323212522913316994840403833747041684329896563755488311757501263847092959932146635027231842269730814919383691253642298728845565782275601745365192472200980548538610735897546037646199574105381544997713660822693566610247883327894508434500273586277039216349423049252849129405267346695513715396751444151756742415854844008612053205844258763581162445082937195222587543480495260566219673070960990785595697677979423991082927456003802199860735278476930676740649179318720136028641823915193415460918985998271030861241902164627288463273492480481299937184442144732253095627470138297059007162537068933477273560744131022486298530878758643967837208361782559788495245692921067380478021381494372819649162984267999258803511616404567693223492508368394331163234121125439573471357351124161426559650649335741667293368935968749072135423601061799298637614566172275163392041510318062490918111251558336591238445921476719167733869650134900293594249146099517346068179204815622375492587210435124736372447053202799910933745320637502283469859010799381663963031498712932126769724025111484381822157479896402793580190133042451903927789292076867547943390794487349162738443729333202214356852275129101324656755245551102743769113692870410496649160059450809422374017418968203034223842825501114573745836873683406353880133023964532657799500816721265466752764570956677931231175217150812905354541345806364519867036809112516399866990038959121105995751090570870855629620458146618457286554455518441844063931821033301306881365148534479047586784939305553120103775504703609801805183790294633245078561315293933205601955290647675886652440818466229183538332231999172331619758758705668831742768952974275502148624666259054706974299137574802865387336502425137880611891031185553619643882928659075392060041310839228653441154299982795397316496145473488062778813351663275074910302413926888335084414177005350520382439064111580477995775414120378768544692972401158768241158535806118330879334352152581138515253389521035409754453524553360207323666812875789547239488046308162687645611521807560163260172704364921403658558365914931693789539256094036383726097781704737034699406199144343632846966590627041028908426683466247711621720210221411892526894181970548911350025548570909730970316634429878952159189273519071100481463958054150035632720722963929126528163057756390038047613893465903892392353832092474233156053629437083647208200052913355333179894189046580659264894163488627293251295645784890081730392116415554174320586210043360507711550603243717212304619767169279062406581226975993736177155360909096946766818317405725398295264637506978551001569575836304913134061479659201322504797188264857137308389727165379699694518757663401533129486578520130266659960177058331413407735112789689471621947530305066165609280752809191666899409451189586331798126194190814370749700189698499309018497379847779333460693478296976564631165854089297565347567093178830736188256195816864759591570248591472721075449093805938558356810138181986077196637231038472976431542433490926134855595765550003174156159584776544127979545255141958389047112740912958146413305956567260624204275121661399754037184923130922731971318958856707710116550173431772994141497424426693846311975841263706355970132543847945455647043985191993453140316909708871084987364513701010293564507119136088084185448520371386962135100025009450572415985569454211652557401076152559881057944457262510050036551337870937550077045220659955404624854312473246268209654946076151697083762283710327584351749685155812412554758417050551121378377778344772146322251220931159773177232344634748148797896030450822210686361276419599984567751924269029851494865169935719153327485063476762607996781889133725486436405249214924967424765035325093923444799179370307032591551204027444039636980238023143295513261177903332628889094924739367197132619914132832830440614369167572951614634589312581434826567465907307427036347089763699330942557688865916363424972401103488060373879935362910416457860346733537516342174039576312902221306717140753536652631328302223353925306241859951711633349899224559830942831398307608529473059875453484580131344599162126278342470063123730171732552260745252516206106001955599561684482495665679850621876026191769550699338401672975955283717046880263880095564812456107632307347304797764682775452434104598158479499719326747376345616478109188276049718453623323781452660731150309327879783242732658482046668853586179401208779226903448924053705341912655490034960675896181599904663152906865048772763691083980945610214034110072673336372935782285739353208190286049160155705648286442426552601819401964262407322457653700986741869591122247922186722190083653891351978356140269814838302887205323255293607172851597944977059585186422349993441134159803408092082456790499669561725917339284703164668641561354050123648658399293539389481822149693757040491999134738645490927551957655776159529945111896786181515803253862213426961143364876719284107761988210641769492779958992229568424343805949575776270076458740047910203468050256322573731744004370232258850636945082350375174785888153552811128453954456418595762090290459247659284874594855007933970937049678155462473326303765692892309780195757287902779464882972961321886377859446821420473872676829731088685636648794993457363867758204965398366430542965323073065055990726133096294208732807098564290064704411237653525382711225743925151451602016832392829547576893048600144430746855033340018641802604608217322061662331507649513481910446933210723463009153555471248615968822564172532362892881516828142370049543211210432806626143305418305619350103884437135274087012346426422875853575810257400685292071193373261830974031291957437791902813844167346200820588254910468656533455031632046239285987438656275667627723211667481502477507643571171411066027744458538839526313331322777995081515047389319235318685617561207750365996306325007439682597949676147539247285225673081126715293832516495908911377199786577159565670386820849691422181550245268127419052852359721587181174228956316703697261737843319274137972123204107261135608920501313919975792100072076140542549916633496694171357282992005889276218345562797427476865789771538556360944031959584417916067543099095011917019275049450076114977732791399806918918273079281002358474180441061293686787136674940473720612578801525784291710122783244810912567673772253505574174903702995711568450484609596912835283989822308024733148212946589112337891433508024686338950327365575856288194203601691924096288618396649084493860734492497970148505528145254646136045845162190430309226523764788160797228320079343252120665856618407876711879931927110076738366227697396587380225321446349803435784539277409403167080655097335643819202465144747812411034275431436666701420501923254988711736715056126396805819433626900515437558565598740474586981937145096446204608010474506136762888146021110295731300813538057659463317588327130930619080818619692106200848241520963661474785854969455209459689381161457871014097760085396531674186394875125771480813904494109553888086315940577159421298836108928829511448768020946320429828537050683108257718244560805403183979731201957381008419193531697107493013803151593057882716417545986135200978107074996548052425510432744185061111216976151763566014218721846219531077209495733567088041207889228456799726107539362416999815651010429770347010346447831874787355204162708458591121912945450008753809769672652656340869299882310320026224699625789088436250793958341110090228875881683268866609010986291415037413196535023865402798717466806837947535113103955881633805534955435898621451386015908471954446124097946233240948455984327960980785878846961660791991730434346583686927832213046651105641465799380886634757077928275847656977363692967627730522472655442563867610673701132756797722734508582149282012776068135145891245508541824700744287608324100050556438599718970826522836877617385803704523769776261743136367549885680273493600687865800379606419867428746832988830452395659488122048394988744971839366478707897506856082181143099365210343306283733841801619186233456375745773943906742860237929331978510472551407367455292008133237373084405479483711368026242110478514029305795972501434879236091075410626551816967932861482750829454337637113065226827799211079986037771805381940547941254465989342426019817635939326993096453862527508608042465230370529821830478457760551248305002546800070170913446048440180575209159257540394535220329853092449722392184254934263709657791138344704333885328783628597167025897650629955419550675212994345036543299424536580391777471671345671340739789880987714183744357258233195868575592747238879690477566420572597121490553421074513496872542712058937479878103156783097020258695348359482703243247901127262749328208405461082976602490720581204628194920772334480519136311511829973134079324919123872696362507494461377840484185020979320591466972575036084493665787332050576109360914667964808702748127398366598512318652149804869852891641599668987401462615898023589705559216663676807990704053858152452199629701374925838202068529325888483934022329814779185299834543836266769439638311817755575543905828294445679282947154959655832607089309409103290076826802035627000998759684031154130979548521104217973062361067345079802612164397322531286192979705277619231365947585743966930287287070875845737942352245347617025585577613923247413137876600801730205317077725049921514126082013378437675733231726294929119893295269181490176307906911040442797933272159257331285203227302845878246687730682345694693174502587924193225160541674569025424325048060689756477757270640584912191810372917373361515037075727733193320772095256949488275504350948786236064239271999289564330946252445486427018902940660478573885580941357171717526109422116977806735889116487480041117322883118362251539164167495368086819164039743641022217477731534438176090704436332907313916845022472323656750125497772506029956053380008925542376319133893095061037969387842135027043068842162348540247762081499995273770345964378382764076608392384109946578891803919683691038660404860664685822916196769274656378400038105564926799162840331119870197275556625397366261779572235816271358427657478244103440225456390308675970857149388574490460209916475177809870289825126789922586184309223696010453101376736569156523057874928523921681507051901566522708569876859290423556421341954536224775335014351785484428030550087040589204054406698257204196349891534069993237595308818187512183235884269399104448810577244992236780784137200064755618345414877994403131708222075595456443132364750211145239094451544739973277786199507974368804854542737984069915058893924863436172455618527395122641019920968411703481008773351291587271303799540361439707830346729578781528697830338451107438002096019678583786901313878647981730450275088157540647656337718310472668750887097658839588079644845664995211922152467904360978996653711973399825190889784461281430574194425755482910712416241880213420279992683680078913393198783683623108244407057604327942419806051218566397997449632323209214958112046628095168135482796594339678254771132298830210329272277666319143561715048523654573785903958029387636100234514815314741705700386493912334036883575256910839327308877735269617594269060121544244781303676654288668031867980982537242033941128175518543732290276121263007279669133498287069005157956535557449986408562091010415588406005198840926267586353640963224807770975253748429812670540268480228769290797284717834096845904622351396501048099819921374356065528052969627880859013171300319301296149600764900108122481918137698454662853412317312561949924461893107048242077782230299447716658878040472298187828532718808477724915047978073217312556316545649712534958856120558695528185341734223908512481021548430980182420880442262868624840473118616588101286519100060123891036767495021771008320624075347032291388317320358576620991119679686911679515507038298798489870888248182367074389477541108315053268035373036468624605676607880479662439505846586592599819227597863349749883530463132246112014278254488311409827714421491227793607254628755205075546949926053124612694052377585109670950699417657387810469081007545072055541682121228093219935018708945575051258879953523832957985056627018978332889260642668206911536380668627289166634503877980519859613822309844487165619847725320351841725020921455667181714142602632406384683293382196480484410990071627697714333175693922481728578401898427612426931440072753051632840702387773805506105834431319464095181638163236760103325753606656593479355481156324644683215796800839678316453784503204454610212432120121626895470017065507588124825927933340528400989461913919937937050400640858070887066462857090818222296482918144852881350417279623985239409535550119188347219397307589242945415125444211746931441664417196739867085881240095071572616901754706333205756891759927695721155339518798967137712231609495738332835551797775701208207682565988704874719225707214645378357738363790266612039202584092049346601913435891720345272695889612441491949637965910076600166631566633549183955427349799840218262072116894350669117903865596311969497191960959738505063323822992305184004214152604903605237846626011359939332837111180951021504083597879833723924195852615700519450376924454400210323144775795341065163211943961659108283967969823683516257729292652432014618606493486567200099656314327361281860293488629157748299769100541316196849105465528618728655554580605154738586907531552867831051861609544880713194663455826844625754480225339398704099745953119364295134245816266469454637628155173696309427284094994534451276784757915751343373195913447927422513358872002866818967873378255570997402440175614331496528326136379278482230868772358148357625889014456342076699611712379826100101271199361873435584354868562217336317743807950056114621479080895614788615301989206492445314922940119255646216058066267058601427305219369779247353302589774215503308691688292223431156990312924545973960231117871918545747229373399654295149568769717181382127208721317921742798408232689023739808709635432991125529687047284048971611950494110890191899087811575580526118907604160574463349116467783688309780587734860684727411143625053611089918643775347826386372015459514328798239699472768146913889127775152511376459094616568848567706891134459919591937159820241572705190404747673298664425417220109517061323519148688412039996285567981024535490932784115731225119485453074949129538633565719415832772919740449053748654382526820270044747964566981410379689413439295606108617315702352360007574585472539764896737801362886507953079696015389576356537570811343359406392589847554999930741162244036198450759643578498142717649109541496718826690814778187687775232311744911774093694550165590139483122402971382082253435655790030784822937683672161088991219264550830612037782757156109553473407754674448001150565862647832338463532278318348995591170808329195259718234065794096822248703067731105930167113336457864632713735167049165343463356043333578417612402041617796781947234884559654821510395102313842616570740047197200132406489726562479429941423927444580584532305688494400191455674890805688681414237524416498368367833216903670493180496566529178186509064046765059203363914901383956242407264296094559403885490622719048607430367430180057187694697672758205742335075405366433127673596011798700516349556168303932644762145186289866739993724406445728486295117301540863187029305318683171911337492321276050318022605606474004974010987752134110117950690723838770564904331468084436846325337531706181871089888624781087383108990090654356247403838704775781278999465479603194445057286135537999926819297101197210484499213556124385749717314210060350227202484868289858616401068374329249611948419582868010804581213406459729271579250224837776708231901625431412270060929398797683850814616546123646804236246270634325496507019136346884898830962219352282901799906135132211189652397179699288751598133435721446477868085471395477629341678032261090026186303443447358036448282130810114849931033885257060883190252220263122569727377508009946006079458734528801532732366498940612137699811416354819877101796781190610586441452259214628207571750334877679085624563245948565146657609520146957880239227381410766809286641140443786866094158024809803619449698581483789038037967051341498126458008921093806043434462005112059230018801722581246784833463437813401357794271948662565244053074388003789913437667027510233834712561708558837235638758037141482161521514958647287340024663467505921896787389419088991912952826314673331234477108691890374482295930647848673423372770593618663173081927281861571961015621045352255318790184999876420249541659315262298381970065730622544414028277628916581214536620562815829618644354161914508945143766687205378704811204313511250713061416717312860132644576079262542933890958755159028917065006191521324008695842042631649479750313470790094633163345979968364304864267390141738676711522821035700825992136904105592344143074517135262857666530632706626229198772697122078024817514576152718438747732580039435807518413607392533216776802064411418778597517471731126784602819545313195726075063216768448990118367374346264213569219112321330539552298189848439170356373660705098188596338765308290009680386983963537222623854667261434547610831848977092981463974449442301818760687637960552602917939620408183427465892725172792450982390485512998039691191214454354562254255179321270316195429710383788527727382111182460441881978389055751210859360358147595600662302298030043954293499649769527945606273400077253194673255751850223677335556311808656918080835143103512913669650145645492939396048724211301995100585820960130936668623876852314166056255412013159865408517641936509832867725511389666540178719400991615394858370990626608245265473112605718318189948445026758175124879504152580700502364116508972652927404485377676591331292983604187949842202123749854098049999470090146332291981867201364880489973800792890309964996531587668866522706049843427279795776597920355545225710826463256250794434248018766504978107053688928180790212085147726474724470669838718598558240502907529788005119828010640044706251494975136532549860595754892633369017578133386729846296468844942110524827056075893635500766524922728825983701529464911897109694120039793378821955295421616748742946954797297159387667142772398017796698268494581281540684079723750880243168009337490200503073895924838594530087918890280018351031759166157427975597527078221114258420205362325580767801805547999907526099187478289639509440350957981560439327823565433044900254996998532242981556189233498738282312243677709320757691056120867532122487853601464874055549680249436033990097436205504460329172769031713319061307419484371351504120869162724839549711259662832062807003611148512879613246966827847332058993025419766566992264781456383350953509243539997765913178299327465314284827719006045469686277333140903680202451174052792034478090111219454790977469714247544736353265674781553040508264927280468759435626871428842518849174233100268824843194490799507304820123072334296787829332799568282175426788953953026414020455072966263940148353385307499215963762131788040657911486996936746714135053427731891434107838499276231039269631305070601972442495475991204102219428925478611722539213992344432354163875160863881949785876550758754713466381823903852926241065643883705184744872781987535873832450643834826004798908952011662879352692717220504562783559746828714593097787361278473169057838098313100504807211036586392379979635282453715308849210155078921288972021262593586492293606954119515991893556631555998466399258851250167001863561907397029038568183221660860723917438252776245903846302343060837222565003954721935306742967746519305263790266464477273195277335167150463426978584721126865644664797225849391732805525558474542525357357323433185633683419009251293140270289337387177959950541195725603948639715586289067007959751175184845272281891229687937987284502922827223009081849676847662424797380892555741184172728820988733957354531637089634359442214610556349948608113366121281038553110177812574715128073961181860247247700203446230618377093080031873177084901514756920994306809341003829420257008372765611976822745838866029313760750116525001901256705595741389000880751964577759082374876748416671654832158985373385619519142074493496599090261172986325868347792486703022576164086634756235026680510463330764580039206446152896700164130553590360840473273343531324713891746765913800922241780662189851745708527592157822392075289574428515859951750936119082754244502742680531344375454889502822211757521982776623527540581069405141910128040026770589373215661045192544546859874867695445810262277012998269849872981796135947825820613964187690488353755462599691938217993207220849046184524158757106475382488019651046198507039220842828166765852052178875220077721388591417099777666836745828626789508742760867463310780294489420666462936538579264364307198256634917363752928967061401466348375008854871159843374498079579970853130301758131541612538786349520837441115817154030249525872835128962528652390071215871829022538710932555965612964622013924602153058190022861845859864122366145644762589674978959142016213782694412085093899192693388657749115203437924494204674698941873476640744472150870963562228542008290840033149385668110919425699576316057440288030629121547535157583604615022868338027559424818732203298558170164059557143712359199479780398921393748857712259530173700595411647368672105233041061653262592618486597299992359883964588064599362734216106981955470952830206980359785369952680162249350333453090896739801006289406495585296272726270388885377923158138873302659345897403878550421154401215449927301088316160779574491125399479044236048035330547432382190239602755192876645041383648117459855673934632369683405159991786772299983747121224264747152357162394405576873589424124671223592109683150314336183027100755046354185775859313415079618261670203590005331008946649980436850363751913191114952059754741336938994959755002042818050251592223683784193425396643533470260198469053055032002962843884720053212588089826592632964969314610427397100679719379205324876445523264168319259047012195780950950300503928930832304249550749888072487261711747109761649129586892056864254882360301967988286422977766738053060852353102133915037969865657400775590652588004784349294002911910336552480614062221504409262560903889248031123236582925349886619353770153706149667663566467075418869279234404612095263875305710906397449531594307770396358704488950923045953240426708506293652641092279703602309754857479967353423589951086983301444487094551407337922757886556428226363883469191601820295761592599931450062632426528555479684033742616165427252578929936652050528482319003313233413091258920220415040462918847763276581953681719016519728425424452211089028617911707524555759936875687203788328212719965314744135180323652719720933399051167406188684337187400955910961279367017416036312933818018585160060805036437686833834492979133328729333235729129544485270432491912644411281932005487317233570477195048560759373438725027136295017503533410855113728475538676695721113494183848230306260489526306037567205253436517058099115563953448304379012387950831307000996363209445128828810592730027165494994419147473229143128575942245771060477109241369970766464318023420537152004993356225440374906763262052710203860396319611367121894659522187453504329806878367991361920493276184498615645298710012299642622812314808897114124804890960060548310273968389250173462064996493312428350489738176687189635667134822721940105099027899772264421115735764298753251429918140034137069359603928181049671994250793093678938899986392539122501353276086213496810835397933093868087034198453975067325040632788784019928480561489104695634554383222767429310720828618870393845501516577730179703117718735417138987230728165093282446262423835288454836754927866292744958569340603556822260006321514871907735893176784700157346151857324681915578965390554653394923300496755154682270688737248846871354612841079426270295288243512055652394633416805331761196598719897547544843719538752150051517518825057340926192863245277623825468419501535345868173253168549837701989003618153395714022412086569153364212729712859233465993985296223119504954606305482549051671639898662861377029384107214556147347548705435083688895533075179197329587061898642318301368563752806599142897959242121456095397062071167728076400402514476301951454904033729527789016585042012647080990498513550205552008605311695364675454766848157488186142473171996117880714295871413616446964203452884351795661114988915045400542365725720682721217049537253316001188322627856293250226819983856444667622981700001307078720382803311268327673530696928684067966511767110348083028285157394377762303822077704440341305398752869817759726955260537628042521872090362438180726629647757132571715449793940834918119336124451687746186184079758511196416995985842165084660028147202666936278800453626200415237115680671213925566130184926015322182592656176838057687751154545619445350798840556030461401244408794001054059049085890650366776685461844763853625904202909093717022598668850374203418777537135802300987236138154279067566080871001256513667613909367605641154193802847281553143853221574325889927210983888596515303212375681364627385144714389269506376243173106691086383716786886289362873116869590626966299806971067419198966312057426621259823350853646857104350932433268096659707726929868233143275148717293140236871617471767801519262126142041877364313510013481070518479804011064322735733980533244275994787019759353971952774264490644479103791566993000471522245394117803330287212439205886500517549191634385030958210896087579374053143999173988010577086614463108486201939240935438962715209954071894930695263651953194997331543954074498609816279647144341144034883927167483589843732017036925477398574015577138117326904690347807482358720651955315551310349185273759518559046483346481461320260086376866185056680711903655825816917534832884615164470012465010714231773553620246160157804428465578756130238831860440081009728161827898515037287743928443939244680483458154443446989187162535502275339172788797425117953171356850671390573767894229261085636508462988830675041058157818983522584594426041601989680861075957350211525675756971869692692920243269246062246061919249182509459626033192439858082646839241976610774604608617983373090303072996438973717725171310629573539997992731309128726570526849565384084627197114832225140384680447074747306338415675635021969862063610627343425455707163254865530302344113272192634620600893569381633373459792589116151339681929117511985897587588031269182237784315509839966093125437026337628168371577874865541126449063631874100953360780620655002497089985134572675738223309308480579692356192388856270775422655629769223392173197679399851261606863279379233383468886815995941542791531086940160095599681909718486471533718104387333281182356952219153861361745224909041257431741618494971481634452574543594606856021638911161198342556505218105278591702578747062917262385169144532771733189128830383517933989306303097317809042758710475249603625641647343868602396372876474736139483082785844176083112796349993522229818133348026170559352799360070650730324473752415938080608967222076640588506856862894756643524213166771268755730971958085047637309603100133324122878041547775837575929634017952673159021337095623360054874474846733877174786209350097550001016456220231162792225035810362614710956574347610251394218386559799788087532862786411410687430941135271014297838636302250423635652716901006263373011053161137157403422975735979729369482648831340796107157953601899432363576012862645363081402374590311576906097928655215432851509577604725815504091897253961610154754091348227335690210944205947663665134888620430774666061616364129862690509091711481922274606141292289627977442939124445375022269347275799168314052414551852066959328593280808280602464909354799014485354099563676123427205266927853651152494114362235962482639373542298623585863233059191374919385682280529515689164128755217782249955947079334211697026426400002508147717880449351838684545905030773123076436318641389484651747933244448078501347535220410527249387226242157624678799312005228042622505326089146759191059151062383726449342559320445687260192148018569277530693718841121722274932229441518439580113387997819204789982656697058488959751213726728295735060023725520490079242750127023602214812928416880125478941298647528365313326077594977166530251477757057574162214769103124235892385345237605168565531233697418686198527506348781324079836639409108939015719908280715013947690942663700728013414203574962349193403680981361147384950243707983240835646872780506924496119522327392751019083376068331542868453647619983189384022568597692448446463556289298504373299571097073600004846715031686041161807016407370462319961597645761180872935576762613425371062523186044211973111384841646725252096109458847389314189338944129687870592916326940765725511919866188249311625814822984980661923574729541752119216249819170455826017731456766475458424080971827611912861699145000462844263194703534568240376109674586616272335039077626998166947980764519641187070518520889607202809468827348780733031942597393166289168125777028426995195832730550495893297493556432678753159500732773937214737536084343969580726044796259693991439515137817141588547555479804938444043429371557133394885200098725305868843762103357060954443624539406556303501163536216291068259826018169680989285363155715441828950161697983389842625285934935390087461293844143805541892495413023277851455990850651343997275552309412026723017353253111059650159068124383923220922857351763980232783244321283818099121184079525389703631879687230181554490982178801394396885816605166919853001214630811975585397826953421519287205744516511702380463229471865117788697678154398880906006579271226289257601072766980095049982035718475157909353922372359281089873128723188679429345019076515663879332916060578036218467058612329878977013591739618498501394544876355936235527201429296795465402690661315176940456901093270500801944017304957571298843578563634510539353265548260812676439160205645431253124030679307180382936278325119029594632491735180618094259380206967496009483610115065974097652418412987513777849518653052759339931008940600053140501611156822660340683602116166727842089968476303849878987303456048991099917105984847474482441392447116309816990995649531257084729031818813098585822241584495619458058684880423833841852420136134700400521565780968272298226607934855041581481607925433501155835933132511544143338149363064134444548517619486980514674034081408752997560474898775234594126698452535121208527904837241139597913963776757532052651339627565460566140120616779237117798921322765484251851151478138781445193807177966458544422453429078953730212133114764599746381035624372127624828403970888071305198913594358344429816781901870176539395413528405001966994760606534466329491040618086409415207068855092631846315121861736337083728791750147166543677267167465453608978709714021760471857395924506388800064861352916543986147636196966792785229855734001942022880468902479179659250232744036534161211435845163967719758954447493958079091592962019294142484917379668493996511189289868959409537977429351218077434706625078982119695782357443471410737326467308355697194564033726397217130199501373830132669571716824381106712313380062379746265896311729766429872057491850837961729872751862135556401468418839525896054487585924991132858441844500676856936786011091651129738733672477322099236317672107860808833525404842766471856609015298372419047092580097320150438098004378910599546725961084055736287176128212966977750537667692086653707609135023804589269058322460125667255310165050458957633228845748656794662194966245756622633539652286607103340599387148285403369872810888529530676701027399996124683958101879896150498186638714099231604818946195732641106819752843025849779195183171494154184977190694946238220342688253087450401616260686076910287073080271892654373824547973851690220887679626107972981694039689712719688767829394062906085984758656417700326978192707324056740850775426822245672035636292248393981653980037132862826937318526858827068796195291203005522078508997229944503362444784168095197047048310137337901815203309580127545514094460024832689924148716307495027060466955920922902168625471285308140044176214013512876350804740210796841519342639258212793354175348910671871574149613503441644512567276592723354971885411468433793797640762200825971299682453488119844684238225365534887990572033893475097117389135198322378683928386619313545252156625195591983043701407340725941377594810742205885665057402753919917791567821044312590901585151864743222140926504874659947128749535594261604095644016565356321791909102133938289040319640784546777958918401332046553576795943344011892982424434867182573513155443188657685972808373420254317431155152567995006902664589590126153440499172941014548115673038754522121987655380680029795836041283081737708480270286216463680506659026979707984199941892318719568965275611683303859463391253201273321645389924238144528512411775206810659937474386761461085916396890645822510358484051761079067196535008385976853449357633613006957859245688964184983575120318139777157310540012174874058830995700559465941710700972109117058933449562602054480339385992336327513837945543635596009243009774099308842982932216358092647657206183544543027006693873863119949435149404147443758207981174680538272074782115982260083992056205733392038540582033374111525777987691561487675054740904124274109309295243376325396929729613779972024804239866295374502319236678578045163000780926073453128934500804808315757490812962504838027886224991956729428205012166789478702904125377881256687253315590590718669889848992809551402637431966509648972481196471813444285927626236072130962769301001080002106249252996190229394961281362664432132189901962275891672679467182716743697015514337249612747849125421590659638682672836410090509007890183419836371702846121633547208076037463337649095729025529493745378149530191526016285489918499068283586990100153902903738699145156723091545352804308307327438205187876106375954991332082886810046588063538844486715986939286955846960764125259949198373018756432235309750630587411882212382116609825065533702613245884241407064765328447711924355540406478735832410293073901805015731127357256800353963348929505911344364107359561517533067579006270025208441318171182173086628552560350054742699556895425857818091574860311439393197635423173953623818614173161543237928709130447269376096204379267194337672850318402140379091893953703266298856158903372242176833839161038706040501759979409531788910801658598197915109581138560839330095165005525645384832966702236039858169535353440525737999581099317828691226903887946362192972372740881398397382335551352340571984189903503037618217875993657773478025513092648265521319337715641216710019600183404859580432752342110106265468487574075548637307369793190871031719027997888219124391188226929810996233957998097414081594690158954759465880664156545948792247629865893235985917771469137296477208668586026145439437812777162648597044803972011773598668501392696789468481990574564925547961993469922503279980592578002147779191917276430902182879722458404458123867173183068857941787888888191201443591452022388187899940486326111270032455729598259360283614441121442389777946411996443401601182042103170089940442092273741726613515468272774252751325784005079792834354289468674855974919041465083286866938813490114737296439281072454079130815231891742268269766402530961082676572877565901354331545823395636548972371146043821837288943476541188462727901594626072682118241265134384152465965539214418616613974837570935813697875617360126163775975896086692963424012645478390391934189585347483488033544358878312182622858732736679108784568760572019266227753956612531873141087841611150382808564924999256528953651184365103466183615360189994987120952765266960986419115530059636425085338641709528196525747029371897260894395628724897946643885526025063314927088166058249632905151929168662690483449486863485705340832300716546511461364337385884241985100087675780822598061495474164502510367195973018688328668414054767543483266114462949896820094657597523096903351525633412360724348696635028598752127999008463441205661576200169424871044601978795547764927810564996125279103774679139299551772163797043927270519378155113224447578202071322603251295469908682688804689701114754048354565697944432536193927049412373815148501582897049800224355413475995194310486283856219482402187331674211583379230078871933427023610227352509734799881932077430398434521096998941385192022717928187945201155206192205324841052263211413416757853251294309019574423602754805119191662327367900702868938975739859927251520616761959109651021483060331176443370857080915919040784911010348514102312823118591562654155737109371942733916913212153204120640820325588558749347965236550340074715741511983209307105505727913470911701926684213035816440878572557183748354953929658417978816071855915893806175932616102896983127875711437495303743975917982995234627821352402153713699215220304204741598714016566186284039828077167006276947003122077547341315418516558858940671106716893381525567244924203892546854997646747068276063649846333856853992103539955895827219344671215318592239284519118999844367536356471042244337108001010175281062397077898714364771173659963411793120138493092376297913348430293918103010840393124304206826999560421504821211849774301799333201081344889151595362196389757453675739866644607724649093631614060506669627034383755458832541580637510953080362662904149308993485502763188996826722559849664725875662895145142082867882333661634009841185007752137467520078018102890193327914738570527100088979102619833312576121410179511664640915622354741585742820162008510726096697453657254743779655450207595672046597947857229288544387981376509691401787151398933020264854431111657296010076748484541880397741454724013398694115271504436387691921642569905193826219145607785054211006604092677275403680276129008383068273864517195441061057368245528774267382993839378150199691967207585317909597554294375564887190603870778671430266871639818664350051753082746084597136893312118405018252921802972494947294531663265623909580220570950759215544421224397516557061040624845773562170071842097929865320544372134432094946512373706375863383616100620170981425588671581052652575724458547189370726083711626009480784118057108387805632375751829623629339887733386144250921426623132946374721042080228055488324663306989433632853719925974553142655065970751034006779610369560944864609193973630879317969095668293588284884242694254784026942174140618949919402654490008387479440166188897505762438319625134832584939136248833270849810553240311048865917319390096476598350004581303228949669599942100116246745193893529735222994715694337928703380981668573446329255195102495359891960391594530148435383987645579887328167126397292246575995846428043610070721961147761114348648736118691856353448629773822566083126035593081085161022703562393009025994288308198150999286419037506783849881745672309672341196910357695075077450952361920909022572268579006983367577588617368674532122767645316760434778686276915823253177571228560501451794929359556067231047735576623510320414462154351547895902936835357645073165273353879077571038916373930932931492311488001335265571364769324138325104345956400407024974776487116188464312400131721093918820632173053545420111293246590411432005476902885887117383742418791520947355874906726863598128493768882838449020363090312378296980059859112980238122664420021539452221940821897152712054187045271392429101311848312298901744856851118820447683344317143098301878583522726640899196294172810975736201775267645388863531898497504783021555674471645592035225147535823008885903444506820316565253645044779707509088631108228887858716417929207415538157840712972841681471595966443820521831138826036354876139752005624404986769853110168006004063886330703025050821950768728558634885136822062044985611757697876559835643880313037097627107361632938451004498797373352364594407532969031322297427051269684468877235782630513723338093938047026131456757301302485360113112640358947622734141241309587014023931970369220013957209451704633348383757766237851541226649813250917907323345773944789244892644795492087935121420685658013989897874564096025077266680259508312787612453379648466248791024433198076061294779116058317020140264261535083224318163097159215184834485414680998686347222774882934625137381350365607278958893868981562516031687144229765129730006367693746411522794834206834914808124396966280037328413984729376698508706570304314642719984738589026289770798560241520301230420527426746627415769415961777692571184218351663948131596058332243331095345086680176502962564489877412031791672172430806305362399466798950020717690680847182146244557830925222228697943430092940102500965332162619649223288081667778531341490451017076631173915552571485114897364822503960734223011986372472970711010600597165413486477759169739847010214377820037694758843511374527053935987436662533151577472475398298509035710842311201528700461880572625675248064500176021668905305025437687700312983220442866543500117014621053015958956699731879673486109334076138493550143419931607174315438627185429687662603132186153767715859730876047294718039607275251545565316299256939483541100919492310666115317610523131098205892065518362666091492778635593450963816970970531948348814917348031484738841150190134475899137037193488778142467876070254164172109862810279702784606337878716905650806419693821040428713221229444171907649453544035387584670104939020617088672750161853986791740383209593029157298063629586589611551954272175084123679549751307273473844371610330190454313544067558450234638648586112648481338924076822434536445807166087793656470901321589782773406800174138071028736131993305557222571831350301774882291972188384982874325795316563201912043480485470507910771926535875162717434217303960751016182251850028910897948361457199883352504717842706615430359637858655248464403534744226341208683585315805650774304909166415240838753764813211702606197532429760149983280417127111523779761385692018911625597588364889715474627908051499012703688014494127046258645429605803191158676221093137132550048152763356655494243316735840708632137047431667310092576774729351197206892802265621943564421974819841363876798054995819736241373529979846872104733768424329305632151271527278291655851713508232169095960827754971377580497335373043993545981305597425211929985942224224424947988924356091348480684581376114053920649092277641723843001868061716493742361056205887208949824785185510735482602660384315468939772232021231456139859723503550632969328920649483973304821099304132851383252853946223624610647944695385494647405593731652767207938422772001629454992674956996372637220357681088700807781869521287060796616434091272707147366426231883846180183835512308479750516009325409071051132355341261816298376255845218830109162823861648113986217229771447508231210108922682063829752658612089159954707264975668934284305859406625497160990921771257532545014608344125661888009680189670931196377872514128771322969703140149421975519684729942283890388134347830642305547551803856696272969921315473082035772965565290874078562861707482796735167345352373716523005288318942049687541446188447480792030974688434454440501041105849956649206089109457173356397983329845767688385060026096427316848538093510668429941345563272911803288802534204688205809963291501104142707891636816262981963891434738160371630363280932857508167994402393064873984148409689913954605293343631000430162473895078985810682023096545310336871005878754443406780443411720347320000270349529897776387388632529494143403172464703152519997687330494716792926095021782626571734732915292042535403512482169953049686153111198677668060074838489160729509863430080140303052081538126959648121653156735625526798102031299973669904111653383484947344343330584998281907219569220662679007397947436813360527457186696969199831759039818716979148981126361691485769487212464722588747209253300501825021487773925777503969153683057418305673078334236011133405394643526427822202431065423014576993427767305685292703496546415963179426587922397112593615209654891633073866122171319218098802734986619708790860244185453936193449319052565821736325517205482117643679373886825425273238047495277271925622880574270567500529384980798864268341419178326168939838880346307527492687311047888893865498522926100777674533590231243014622053818541528704017615593268460360880683270376912184653262018841666877500308249597507464662574249260900883101392018516369540240212209110201768173371076305310051974569980503732625655102246445648456732211394100799175180427185464904299434760912964537219565542564629812217864559825887668104728634002818846026299504987383461879982493103145420956802311909757235905045341414236057253127492524818575267209332595577042346687971676867439045246351928446770599781671963103272383781700529313407532770578638784207041352174067145698831277389205731625975412791444495663870081799496696759960547235187790168001513171948054793402775962561603160400807639200911169851216911911039952825566554153764830671731160719797135288687894845623257730716434290311923445501122987554270103209861798500814562684708989428721244932709094234437346712479515652346497801911792227652771863873560699939410489307501628353139628136837888226431699972607409484223086649406481603663401217772200224605665761747137716008502596167361962610820204834075555299602698455688304632776596708838562541031969947205084105681349952527093102663686942875236201854898992375231437714185176786412631188569926013279561134958916432824023862362048896407470361210603083994744667024421266089892784174209097479498070548060422495025546627179145925718098172676157016720052389920803820932024436458709429545692336047626169357680438417384899225782702411983883344288055391653893713551343988397509460307093262661456276919363143426980598075528597601742629830212786543164071530933682168176986143065771851431235908115981689774675744181980327109723849906124879460397041270587592942304860382391837758148296714311414403526580229237508768757384333346994008153395592410240469403889026778590072305603695737161839616785128579290995443505750365092213664221020060160362895822344838179610310330632390464818395194407483877497251285339384370345481846072390657326773146788553022793740391124714131113834378509571435960823744206571341725419160355615698272301741590943421446368765980314956388241815335196142439217632526340673475278063803193652113852556308342127393489188042650290716151098040736665392047345624220287712102230513456837172899854733376737194987567958592732425273974105282461802973378282313526366214657701510732389924806143820859922347998370282553982490927792493908536139442831574017141133316439720710357798954942659597112201661286882407945354173700241192681743527761062036979812353118431639249981850581226495877269476035651559173393376934852290485066660495938614061332555674879395042843544447040174921750772535903695690356376473149597907847907589095923561191118021976386437762549317285906075860119122055066390173522551230832954288888780768470310801726694367165128602938937485999294774717540333059375008482773976739512731317992816182418933151282568035538659071002799549423379516611950005567568401780609387896963076294389737389298402222601171181866746439924730608482882165960462036682894430005932462884354266211552992043912928206493895292280848610630059672730007570100952314322641995489138488155494317072126705657374343062287413922422073230361742990369138835578966341871871337491164079740747050046005366409086796424770364380615640430504031705672501633849739156594116740618651292242067843652348790640630262130546950547766391690445077998427577848419457092995106913369069059695130313868164414428653141086832705083263173243966982671091080778340130088103493095091371821167316250864567927430206447934885326847311382021093513702507819484771405005569869085433415127458798607626472425379153628719001756720576150938450935362103040348751556407998838395232738816334960616108602727513118360936045893976677889319906603794925473204764469128437153547255997967091897121975065008988383894188621247440357373623806351681123180280490728008591776573281326818146819637505065206989628061736416957805319515967351911810434543862292376291339269481602920510312324683884150812392349173517970097446270434648780227926757251394983840236133824710176600460298816723509517930102359687587147549853769181758988460780817085256212125914460721610388318265513779008338064473519946200477045044961309744895456015985616325238691259863449619002609014551038712391562648431124282710572434750124797694572990122799299062646399869732790752666238592741211004078179375988751382111220716674911255208409232988739213677105754773340032008429230751146513784901115351722720067601196281013182988573833713700229276067665920465201525020398704664596096231560748272032193873177112221719815092151207924177028030989169959859695157635228149741815839057394057183952315235866228794858366329579208105717851030554412556931465049597324681842784891445647437655790000566303472703925844449762561184319538201939750493659837371674457897560608708322717396918784417621387434417529348356758046457078102573490612364380082493792327409541346996388316854558179097338227803812398099053785914405364624049609001904679555692556025049546151430393822613056467752527797667766774850275987855300360547659452331706070624536061841439095975332338941126256057065461554274646912964848887460674621166051411798561216593618555632386427883740597391285944066339383882853640550670500740663852438960178601618929092227068944921592782482209025678018734429049292215685101691100251927991762148534682342301404777058217681105283143029901956304638506816761077742885270398085450541849908788850960660360760399337229411305333171368059615097791191294196437903057529906076022152918240169343522397521382870823561307560525087166384086665313390172652621164956105175970963356365971823228137259853923102663219853262979219350925053412336118800429387585112516561387788166421624095370289006670593096216112226109661252672963638831795835142222948160546240271824313432159948337637738131112038030215164708585189884403887968716142942587606322156574443987571026986589288645724467482255374738809554636709359327805516960800789731739805145757517900910728700625409375325330931658888636256682886199438155954389667222881638690939587472309646352722325764620459375152587507463239947238567920898279505236779031763499971594424396759501648538768758083842055981656998833740020820995665186849190062817801547353242254106227225782044606127874643548407817108479824579506734127661609670244698219495309835352900134977857786562833332240013423863741246552078784274983750770056789637187468739099326378393675537245978158862273807918822800680881401918448421107222902186936625860351288764555520203466267657489353357926710448049390581416505765135293375112464535470280803968520587950698371369559676209321292758903713648632827217345373694712640708662607710094655299096277348172071139709134185025534858480249374688191017766536031118969325600529627145297398574071047051828119799732492929388989361534056291511376019974423810404756379019319716847483149753364439324196758454775193844440951870631973493864154240474861994826223422783907645705335336501182483199322347423872705847059723488857980335325592528145937793326364354590831540772089585798066437795311016036889175048978667036395473187243819076576287167555836232540811085800235513347816856300807408980696308354491882366742355609149591414998826098495101600052365560774707091969499738914672318220670473207281418734177569578667699446835899855499063513123966423365622360780385677405431638911890287510221844077583309627143345585824647341440574007794592553346029812372346088906224567061855742267793577208582853608304163026214749451745629288338275862761501659273069283572206941763544791993342640182774562776825908912238219587815215610907385709069008823437028647944046858397124434329586044029326523394896252066571661228690052390856843950134471321730194658424085799001477566664068555716504347865590131575608410443221966140321285874728011019279254938144653079825258933919540288840516249932218483495547187134232388399914538105027355618247231660464741440383093437308378574495432707141559989361212271058017678215281592208092148459891325056892178399625224294717324739623412349491871497063409693483207226330416501806841849588288555953158175941534539834099292933801558201575643371371027346980323329771980740277454350401415125854435197321063081105485561204383965190061997726648791902438661386714784046257045096973040350702130480492631544645057134573283122590667501555195503450980891647636013616613235172421639052712891061739472206972430492743039764603594922914535796741529298163712453329953935070368253108549159621515341534407951338720107561754336453234723532011012812341832633424336223763760873450662387306538695655198211434149384237218933963930906032408961992698814257174200069576291862640032718000503518411884791617362320072999716150652718347921019569015560121168757629899294190923807271799055282745418494801804918022632373598020334588909558746620018144799099175397921826728544337228741353746185785920341207379244244470547557407443641302322986139130710302831063375476899336789438919199554616208945609470635013621201282388680496841347414217518434775512688736336954104340503244229158739441429679570245563413969877576047659681175615155286720117929652445357113302943707095059157520849969821219983593854461034497925344253732759711278117874242438192949467903182494556276059877791131425782616351519695465311069547468792474949115835620623608258968250137655130857351350938747962506652833212780739514217375812324202027897956783834591068374744143404019199361544675296543675579595978478643395177835787909742215103059475343645105429136871763364215908566721782981536192578335534864482512776344657819101107901074652470875273549479614288959943460952489703609912245879146862711734771468437066399388471278554392771510328865904573927802291269558393001205915791284620882902039586445151755881498097101041435624776441894051799254425253739632664831326403062897856755566189535748141784146762467043210921554427046522204911504600631702685101129522377063134895353347378761709598308295843615795737405964516838761776669854765515887267823837566298363743208675616283776406229229627782442082273139848898673394706949791675861146688321459091616743551400524350385783848643614767229774120353290205383521628384072033446596459029651951462001871149620049949643675196420202305715198362682467641223950848540807410693444659822466916724742801359188674662749889455371304549951120564251714541343071738401582149802325322930039932908258532064523555818738951777367168206218508956483286465729441316143282648563268282181075833494076833460551797676258069879248713748338182550091576626335488964557941221552089072996973905201858884539081535111596800508107594834365964378292453285033868617731031370109481072896113532637997459496516686056038676138860998617894761852507455534626433690901918262799548114844046224215024735103753171844791573137037256912856384894041729473691555621564220068599318965977414277160834818396403873300697711757549665421948840213673108001104372908377054878884669512100307153710950981935553596691122824508164820089258684262013034460001238394757123885883905074305213701287150275612924484458783914132322412135524878016572659851568716410505129431869182023806852074767812055093489273539897886155730626186310736295213579405363483678524674332306020170320167979976042800792092695055239599085268355552915323487381932536478995550238675110836796810593216916795164428446174237220982689749425425025019069000041615576240097930662852202548775532655996170666266218525212169570231352800407323576375602990044923252494468359019992609866658085863220389349973549960365578747430473863724770878126047561035147119506507722414873508464751060367516195612142137020707305263028250191055503477074656688730439094452662186761197598817259122916763166574993384766733923971418645291720075691550370025966841859827153502191070342974560693699184683569436603460454210129108173195977421766625668190386842001205525439114985696665116736008566051618154817017824922764218063189037070155921569231146586468311173211748907570202313576521682032112040340608914087554997973509093478444116887777375639410494749790090338031224434296564317874623771436847975565915144129029553037096640577385360286617875857821296393661185610054629438844815511857093978653000493948991318894945692916379504829977963216198886991688884041115922360384912755159046282763988749193290830983579647177362451015701097083749440022322201172029263212233064184776394270933143597376320498446341558380394873995874312172108309722921795575030950435329973961862441841989449153685464094199371050438332728085221704247171263033180028549601140316452206234973274405620499076794832744982873291240178598936658942534186648724412581872023447607551575236318725569110678903727399753369805750552193035116175333871140116340508459550457508555675681822040026760702254509624940028160657109034827072947366226345994975998705590466453780776103570308344547121560030051380784553668397892537789496920252686217251270550491693741809697897543581746447088737823501209512225093593566964258887369483936299082415210813137894783100622519316284552563558490591907729178946931428641534207604587297715427378370898043275351291027935316938335644572406617922543505277873177288131526908204595105588469244294417704756289948067843826997958608763734673591392082137026413102895134207259284325873471556411557474932774354837699460394390834033454775544808985734524083909130630948740711094819436439725578005600745817841037436070288522752598456923659745704050770672541907703926339642456257139041119783601114315517799645768790157280008186755689543371088934600078146340158807188645531668996351696572157407562716490872849850955289805298867163794752433353641071566614439321376565856594621162459377164450157161512693093846078889101898168962031152866955208935407388953864112898635880874189070459406531500295373885811063240339244835533359838674392888718747000774106333088449213489595683185068962641110493683459009510919198466269395931521973734905309695660769064010115241892768662069861639755675890834113978510826876314658578748787266545425184072961560053175153264048711652379793748944583932950133880454046159223979782906902698861853115178368808679001642858373307098190790096655073772617419955855956244747051524867099264329022333069154417997680182655637103587757619594688851407641659321075709762854701553172747351678335923855117658244863602300229847798783990665400752984569233778390791550579671204962807165818251600208213727259530541436276624015036675137828481877714889045104536259242870231798519304989418880114908035045688431616991953922957141993887294071643791215233093418336317159952961773547047201944316594132139732770123729096254793080715384908798327693517263050702293960385778591533932801445381126167463947416681190796756885247994603691681153537345803096942774513230187072145012490570193712327559854945727968146339362658256686696320671150381639908454505329603568734542189207038432133820258532414084298388179916647546478380742843702238216529233890137058070064008163365228120798042511438982976651717474349495646953840589893537126019294587921160005432078418116275630017009944907449511503591813428153281459511741393689444955026721059281643212689813595532339875840405399346407854089871002350363582967267741637037326219858705073176383533428006742031067448044092311826785280928477699527856063689414328147221458022644268524002331421820097282339413974421428525089460412945936939380748327754852793916630940697214116658216094618000094155614017923206137909690652438973475985647514961873095124800444326941862118540610881984782414161940824776674260233240791929978038588190190159555130611528388676103312559483348107693646372620711472993974850728346790900199993979089023666964063785589805535034273773384285097198834707115387173215179941226683078247006778430068399961686427533924789090708486544890389054349739522553606856369297394230318786992149149304368960586582631978512519264469039162204347095515109060920186987798244057966022352345076106925973041926450324132400969993031622176006558468168231981115845112035964544549428278417649126429165451088399015858472394886364834439087011728527866610008023911713778229150494082714696130243229308204192311010361554516742335493631734310063941480828847910323251688136810246561950538879034344667086578320931485999099968790999914050623581431371132780566414060211747041675020422101680500937754557264893511400021958951943661230557281962668231963126346449460846525662415496926740603965016535821002601887346466838585139054630255375300764728953369424759537413900589349802094497352260763323354405421418288741793457260180263558936908395773031320177121242652383162015626917705568242934658414888058509016248624081559263585370932911679339116585976776862676447537264747229324766589300723614026069737891970009303935079237136666300021678046589380974810772847589580074930961992158817181888024830078075968581112586842531941027614403678825928009842381318945290599626670667780882538227685368633875063692930756257322593167119000891880413995805886886644964342311041747483449719043316746100293401374199395488115733188681028003843314924852316638649138761183514008362544934088592117433247282637603665154221312110634234313019157597756927255198628784612213723787936902030267585693396309732152745048687695186740224635108150328849387936111182419607366983716638822723736698939830434576933558509225225758831240064410222441509798383170533329498507099085239352257890814813758234451116987726634759831767793957029840840050270153921622648237934036188836140832127734730253613710016899362918811568575490386100995678353422501773303543756894414909446933496169947889921447298096363992139907457053773607016971380652649651486512770192315542212959937620529757035355201229380119860059579713531380417304611845705521729663319788383587925997608214411307029588904545108702115049544710925851477881249598190574379681694474058078766099116312979631273822454521470719046016765285503892667914101004747207543157299685189430584121510700434831443353160228173547531301423085981475962565282649863470393355297204800881466952105733069585240094727236244360276950210731948287570025981428958504584866861282004551348263667597047876455209311231245037650520691352456118528555772486633489007770230797786966211710407703480653768487818400556217838545901485016556113799069625356885563887994982069075063493070570678213837670722178023403504441469524681073037930093238839423731741279511608530165932928788121206261260269553881927578300740573743212200046250559864489152154054530402228160076267398202641525034346837484407892815626027342117440429896935929804607724986540498787848776183248725852807765274764891198297701297979756851199328798035411826330121688703944656338194829274728916709102129810247565868308225171995304107050867869577958268897975785408660224134468978589700469996774953519613278310390595502634972606030463739661218997532571310251706430625878298424730535403048117702725088461466205434331663635631272404515137889611702061640765765278805890809273941704465681846607235139410705515675652447367864424290655643767688437492716562687283412515133896736408783936080223226023927980478684548593478424868070707657124495364646395932717648307158289608586739058516140903180955540225005203717321224724029736467743535758599698490459270279931752722402940594319740692688653353779537898161638224558799682666720825267467302607750539545660238779740354715833162920466801007137144594769838013005332713431217219922271514892691053791336778378758381752292641734874366446545664379434199649402539482398255881310114684541349514963659260607851020650363397554662390909967256236410983688439313464431868961174670828894645360135815248167650537399338597116564717778333017578880302895546274227333333331808761735640123070156579679666648444168321589110340988033120224358866709577513990921234678998146597642772419240060494587283547760497105244367287983673744037295075383862283286735695174396349694332741514321253600498058122791502179571707993940435797104129878860070516576225851245336880388020820939446071275519227626976141917227118020087114141858792831699658659467102791592721091607002624841532156689353085370153317571886924456663729777738691701448423892833821006465594142943302758434968635476685377455767146382610337140242400746308212224622823113211302331850261413055759528138613137988254759559110193697178874242963555743536035322173205580970655906176844912194390107936545927385724663491152914556061847528882505562687458075244968640358497554118471682793996742726857837471722265127849205240508182339097243329514495487829830566299392294776752256673111682972600282919744310799924348268457272724921621763577337792285775188757150113452400321102312290522759083792698245666640617444147521956531951188022463339465477181874014792468482668404737205668314415554912896195817479672864488100229155857210994300513136401545105658355996285510754223798147905889376817667526268227158899925515060330364269413247303578137157383702057351019577827366932020220399869612252112269270466673686570006859130563301596513627760926869191785171167017934453367370939102815294791650358888378268837161918647886815798349579222066680054937634988810663018206709248761922802618529350132429994792481245882500309812804182679576628446509955451926525619927976932047167403269422144798415695411480488863378044955713181032966701271288078031355641075413953756055117878806796035837599559284542992562641246397890953786885404381853534765808818534852215838185018143579743815190030122219517632499583711045918024303473476732978081966602112490656737272563802184325054034227856930303408990813421735249693508136195409446840313730758938674991012338748136870813326729127217109019061108859105454664964852858959591616496598898871870298646131132434467999938572023033495061254477790817653058845670482735460266706799627795246550651125335519967548486991246202973220937024144048300080720852019779581738184334858415098125655504099017987895853693940338140283607301024747644574400002714280747085318222645968287551107343829216998635769573545486158317083191759555373731229232933268625018192107457276783781786523642384739595850291153849601028409971683962827923517571930904099534087997497537277111729004196915782926183092189157952645070113044428735958935096621309306376592054300876412334219481843461132421448513359721814444491939494502005129369298274971699253518130272458098755424030027402880460896529171031906667001622620230004876581005052858841662999556096696261291613935488479155871456777742789585039218792032976990298038430733008555850961202684737828233231238433087044506920241777379078459012076688175252686225077493438250208256278392414833452197212424197886347292888360296793694793249164985387135406962450892059243142850239390749829014769862823873710085796957769390103584077229228362450647906315949094600431463359882300193271702611395859369205162987912960397029751724664743772984539495166044939420844369412901418395968869187599694448809510204114132434569592162549289106771653644388682969466211875398632681045797960264853671561838952638403872101233871041749916122245372654320343920581660109474467159319279480564328260999769059303639463146571488275062060166218640742508355241199583769524581997297223450469412115105504178681822810435306730021527151623161305288873844507827634991767408111072517710864152127975595810226889488408552018155705337678305233457797279198988536978440924535579015801719336836785044178799923567862349013436383411370478477976412168782625269803057458195119098296626147443887776274478279852907511375359377602700065140403966420680809586281758334743362505686710151797556436472306237707766871894937874255359471282917709015952038884161844446939297578419517994056558832185278662246865376764984316507049604257053231967201862074519657147764623461935364719590835726449859536708241474628296117932422197524303668597357512412669217781498853245914719596760276753251609050728829403328159477155400877937761028687639898206992923337190037379497807936317160120746642530957553023725250305833017056094065258128292774957862510835533233805424041502219123196617761525462547785727451451199424900284444705533162630799966539897196349825303537096853513188815710217880877436849287910130201474399107556550027915727845028493214378445446173684420767332508955695120761281701726795715387852018049084791983794966205759538234379827784867970937155768755307153591924773382890852392954662945815489164004895484353056755970789597146589215360277534349608430673230578033107730950114910019376052673662484915226711940924290556750297822243962859844649465837531937784112956131467602878628631178318101964739126490309939482028599232289163984073192196249541169483946402381965867200434873228552141667723351796385673711739349716830417244717951895490006134009001620797885309866199099025758785048062855097583907034587294552082529927427093547176811086524997279303169072082462620587865771593556475037658284647910584895283536499130198823187435406493804411037195109558886511510237046494816290903936698977010736593506887359481630672758166583760065964505767988132788130988299575087897481300283814197385826951625312274922496606367213554746063328445700230469265771074834465311786716443177521730056357969182939689960949015461670314462811552149358891297168913175672317634726517954163288560408730503499653610792446237349197831718378521754224364406783925946680662732301311117887510763358169048732601873706119808392238641407153355848835053034151949723119149260766316254255342994289060588335703617460262006771237126951123647129210451858832709021172497039328329135416092263219999267606107475275682547977217975767444538916464286444764006710398257381005138936732850118528163470410065313785150093617483614662407626088364019746217464710604467040700328178601372915390627312550430646213921423809950652355287513161332460592826734783876715633932291017458062741382034111151349738801579878773368768861189953445070414780727032763658042579238153990687908438843994685756886238455895725424488350427545465101876648412870616380547866684386361174762054580544770847891080573390880735575783728526711971266048378936936656661374046403518760520827372077979666835785214309122093140622871170507320645692165532501477392119929338923232528244017588893571735660177633093091201510235797727124271286660425725292443654328338092863332805263746087265868960984590554023472349110951649241390837417433011063585050163767657060270997087661989899310255258472145181611552165941094794785889190479837492397112431452505631219897073856265610117582655990478643198472921756417631477962178849106761337242373440667034820807110282624542754623169944787856956915866460484250495937541695554244381537589361216056183695429112233548516056911647254512556303425784031715649998539845899461305162207134908117554715300050930863192638715437621773081829443755805564805820003698395207516598584726240412546757053912918867438271731824750889102712314606771347317133588129919367724397833085454180511014233504377356667913650347716499392084304591254979088748977909369524775517674366605800909621252796331892879428035675780706055365627143381497864844563629725148928348199641632635604679083845877807849176796138392152036413771957368553755275476980702043794972962047805055631470382972151800251222284247249470095812115216781353476578749745340951109751018754135924190767698048892018626274526424521876367809978383302088747411263281349191818929082659179619670534414359897655148497346635563895998488071862069621428529206980270064110696813016526968520658272842520957972202313298911592763558640786500376684852472541803717064845417597534779031153441024074580328071814067078978876896904573085422005109802647934761398117817157268288255941475269248670248026852285957856391977971432179348084835674604658887375892374195479322400682827834194783332636631139142112200861464207484949148190215713147749177254958223209328628502449702295459167122611323344963768736195644815775339718112523758914245648125019287636158782767499918403722528484244944939743410255622229874658600106134598287609611185883203764865242735928802199607216398649931862438927532480313266108115593184138622157287270541616531524786296221926652032270338071059337377264629353994359655600224303653146156150781529466426181203875053783288563160981175560075083923517799703058196851980157096575210998331815056263163793071732878331406160495784071004807100534592503451353613665847837608079173793506801326137761952020195930062384370169973671286405988694821998921001932668629155292911310351077145149064512349814151367813003194685706002482314742227853968457868462630702898742992249174503781134405926017398481003460235524386940848868859821627910263858799027209414305610396403845555798022914556024699105715972632995290302404930350704696777715766101055265022432967597357310266156737786582572892807295814955940955032539182113526332554412983588868852760999396098342705052269993901967594448110624188664693829729691358805311488953128666481919383667249041101729564677960034285222464913493892142841510852635662180157703726019510938819421727192921644027940722108566598468769530157056931735707331661514853261538929670951193688307932002590127709746075842744465159920238044591975143317144677363703141987892153960318375064984619446844698058291268986049726062641561932846655390381705686855272120751157697607596459115295961362373617134695875943527661393194996709407190924009033417424287678314394153307551708838900584242162669262575851242124293328940612576872848639050470311854101501611109639090011461113849049283879362114919444389136490689189945928024074263129172577179818583733974262141128698384646069487153730368839471348514935869358322917322494844025149530174187049661865806951274711107158659633352256974430290228016849520631506960090501324207025098885099179394307243900970127533240572788307491304935356797686060804490122529492157895620067562369500052997537927777909879761161841568781857218005297264046792936021560615484240764190970945626202741878188317081312509002274199429832669163309799405682317652230616596799909900698466962418510052822058653303390041664869991193073061944436052160072430764126692723357546136560339495032344319169466644695512770198545660679407749224013592271065887558021094009320299419947909035220344132089231121016534278279499545417616350233977661506484687965576205551335051365046393715615418061357497881628018929056459294624076515526776272060882406890774784087406259686907403736966173456430648705457795343362034571999784016847968870881387094277264758440106326846813754724833820763484153358358342479424098496781225574925595563686038970782105977565030571246075569861093112315232917335575714788850417691618876487428602920637863126485518326445437891592748603300089775995534971389888459609322056783620589758486814794417822301947276945499821389357878025406805144429326186627615248746520901147740128052774199038085900872896141456294160432947388509057482138606159673415441209899238057416622732267590883887872563110356367584861778512103659913844627851459242821824323261748681806940692380221785075736648175132371092466100645457479474553930593853142044625332727619294677353773108072995777033490093544048086169796271460354270559122531645933394407204296809917393009487107807513807788042011272788200135861429809776026499253738328187163404531815494145057398681340518280095729606321218519259245048297831107424712641232655930481275169240730690398904935370570914976330912426584719885813912690886669453227376840921079820867320865922719831379653259773881479967289071862144197957331987588367964925628708805406307856879993757218091627715986527422177246062145843965465666514965845325805195109927212000175851925966567954018379479565576740709135813800513448863057311458459426499683393340576213423916688148064850177612467466559546324066220828381453835755047835385641931140706079801293634115045280355491311561224894195686807419723170407316121275680267508737506696126486608816732731533760410510950803428435182548689650433877655195950277028800707964142999329708423308770588498648461640471465454307997428972599150090367074625545011417799702116906906705728017647366394776762327936643216759941216530334256183841566942526714825307245001925416497635473796128324758045548750298032832398589881069820976184253974544535506652696939567194405694234457886597398365951877798395857100669958585533304865497358107805258903166626075649955787631186158415137364141654422985409126955308241156279522310017615228141304445153381738900058205848974932212712962506776036103080294064907645526690905035935944470046117284781016193931871171634124736616632103749119189326029907345841940877811534382649420506479208192859153953362554689607874927120090590068940665748445927713408090641745963413399483688677538236491328842755322478973397583360346946031062101616652422782790949540259957354627936030900210921387860259186982953769248528529905701738327981148739964051902452170048007179535970021515142909643405474899586398944707140290184567123437596970098028771574829779859781071732260935892166392663516644871608488873049442521066811634173634182963492577016249099211365827704971359895688632772930450841239935900184323755941875734598939444355160237568071661185187685296259272228269632677623762087528129376719626689343847102063365842643868789943792401351972955888249164527393046094897091994128773890482694040142950989320160496991731536829970827132932144981586070940407545123647874053940458555113462111776845734319831101377308640845396256325916050909393113517651514217325405353784199351005973277178469812118876354054694808662876497943144577524427979922926333141732648641701097701959956665916397692444541196032845730547885231125866464913472771830025687031111066518010072026493676739061907151675480328410214826581638957820704324307178691639030737476672729064850718735771787630178045136343615404028623923815204885521557707272645766094252532591216077507572638291487265438578189960780581888050118631152423355357417534961781031150451489643490355587753422170000446869771046980053745853242381992202043747119215996847468412168148157859746528990073192183604113595978825382565923107215476138240026584024472303581561187708869609548610089393914651743334971371359740176998872729488851649051857792809521029015414755275861234696345528540783125679368747303620535659850066517308720725626516778621707279118369197850908007503632547629133913759986365963232359526688752161563472691471431373735513185914851577461820601049531932468956455826403466140022513439609491189782162654436416924876753782979714418512390493680003578568017284438460641188782708149240484211830775825609508407971618366595471574149765540746502041381684536690713286439922829513928728901775931901677842036534166333967029504209449233856846024654574529488194513178806462270218052775922753254020281561646915557820801206562655591109623048911510288328575407894435642113976231246806306181411378949467021306753692810833567163716421598841753652330804378000366247682673567538257523119107918930089626022050793566422996462842347361035133440366722099826304653848983414542675149892909987932048775106533583231437331794191618425921094332141444827556448085696960180614466271630040445893000358215440400632178476915603617558890826909993162312174725561901106310491534682011380491600891220326738322449674477308423286825185015629504276341281971833801232946775379434593518453909038969671426047158105113159495060393555658866269243674805817358902616578884430203914321608217463411725422981995968686539176395423690023364305112243920863508555429413447475556863427232556250335616171978118590569369222509193536788218587543859315036448916035198263703333731298032228347931769397848650105602894838508240114658816036191041331638430318956608108795116697735190966362152893361761220720193905422264155691106448444201273589530280655784952282956420727530470009197304108183994672915760317951642764490981046733825144314898723460348162066867657513115454063583694455233423255346093868718573363807599607911747664360293569696092220209213168127974820674183077527195217167788873312233214025000659084409848397606071409096380705414385266134573028828900301108453943480019172667344826558836176590792814961924573169558043641614219912939176399098368426691560626765694364619179200713051950170962513291233714054009557915022843408079949508453194491093589287212090823431947555470864391492076259729803035743113181930119128021206443392678630702890007528467581719271083623828004682208467157796867472441493454153828730051376415673970540070637311231506504436172220937016190921267175458026842035052279915027717849634304033750669019406321487461668182674411893730151031264234380975614544312602870303170258882736025608828583086285372460340481594388843742947647147623525459644875003143862904171803304785679172820870546140801250611068708087688425827552408339410334592048257211314608795449862500969959852932188421603140877888953732109121939314668067526491878885903646363103142947548203541027052980646478901750846606211678643859506837392751253871485541744943555945836163518706157473779371821187114989790206299052123892103405694515389831820594854594820958750830819298442221355102103840561268826681576053069124917052944202808037839687455655769076004902983929719751401246721025066269248228253993896389495725656734814731348635121984554853445475657924126825016018202896106086741099635669408029462008608670367445746614055623508648939924735299585043147561685204675623629370032130397749230883307540092143611376250092222643754425805888254224490953979055124532797374915095505785309966656464319202425666408943883210947924214592393421807726360320891941466383562716114936019732234022668043438344706468602466705669775155785856954050925479049481738274652491334788432625418076572383693108683671466964530092876205864382651712863332954073233562158491857046821150810252415379482089293317067068274351620242297308689137366173591796812394270833711318312566110512610877850751922631066299493075593048833281022589273996638819898444585536029879438649116190324387657854073039241789749840197673459561786756117435028154001154763488669789790639488360434175294839937064341482634891832861963231261405410425481724969495074362709570305784987020946893928074687134298848319473223387301948549749583482522468260807677507198944865504476763812407883050219604689237153999615397892727875620937876289838333632786885905466747082039409338971888867861937868747908865461422619914706797322276251625797810618868727555141738143659730339979983161846388939883639882574740467254416698714757343951359484452614281133844603656528619339030484988861266412302878520770904250622365116296125546326040921583255063794857083030323635822475355034363363349018693051236315323235545854439251050678257989472843396151592009053596463523272403051882265230963086294184035061992238896081635988203341111940841045662365393592230809250092522940443156015424540390683553677210544591711977594848775580509792751010042870407526316977356557320317914548734282377390415671166022697073756189985712609838887174521262331282673954297759980179314546128269250678970950177846593123357610653662841209352746102029926071451408905902330686438143228167473104972824582526797404021473996368795015311554270509243438119037056481034913371444262931455448600626417183122528254164915017615598016897182300948532032605671976114843685590164112452699618564287307967529246870677985634504846405596550301020496316904963322225859742823571885427595554485861362252672101221951068875380287190354307953140666986447431554616471323627166136525055746620903871989814436389632720123498197455945926004946015315029108576183479261745547598302241040744370722444426674244913694361137487107458390854360374836508146420238581630938896328417530522934903575825148696846346869965178553530931778618581102506757050289019929456734175978215044710614337225383179979525983098248850741761475416267173140187152806370097953893591070377506407938546773572470527236571278025795447955917074698136916782239239904158737564580947525081366340826605818852555149581758406026606523802435159307403623490237619254015270666947667284313925543544357114613360877696937162864921650751863862144712651511669447339395334152323179303797602684191982121696554828806530659469923493418504127154553400387886610939990980057359221208443580837382966701485237157302263814297844226587878176518132641323349541809253494992878568046590369250989327854970896055560098333136390806110564704794326793537437972258745408586780984580674989187294350622449638218340469429977484738170001870189313106306234947370131729685873712435212294746412060241207188392238611610370838787848224644041791998786238848808188798914897427220189430357755313542908873614510794208291127949880300792077405541977317601849460013429356546589249437593813138912640514375632480989606632886409421563494036538255553941767584187577346205679184088741014112625115778872973471733683647776974363273125667561541576878415108421959019359326596394276471945424656063827240598502652476505208229352407043677428857398774618866414815311911624271536716102092895957639950615882234564583762519331479630751815009505194871291862657257522492452585338801382189945844015360766967697120410187082969817867669625610907006985506709801774819019878347728891122008737198989919862340139689618514938211083530886896581496516364063838832389274194904421771578774260349467481008561676422309773897345075003255080575332638687164899584272569046563314747340481090516666472819080790458486828293371747169856616735007478176064953876833203910157567348668541942730422746495121849827999498325295488642240064017447635032394009450076367078768507796774052763725214952572585144648735582517161827022311125996320451016881313411198106874346459841188183630350920540819975730609143115604267962047027290030557443211813466037878934525351758384076025479433583065006121595150184050643699640006505025250486270565438834544898080697215310792767270940105682667605398686963825868088754334379305152047096027073694202406859077546431188067859789749177382153761988379865960773595451048372990846162611073306578030310022370479366583054127255152846845673321621911965332282960803903683130461016059555252241626539054139011247301418059841669741961997868350275481937393950067313527976354953824486752229301888569115453498253867501943225517292149055835215130142587657126594051291176376287756699080019315436239717058080359661091374439596218270250354319101175471910547634900293576974970771003548462085920301668514066242757089939216443556959015055969640576916225861086248000514427430444261760868263584114636133809003772125948925027850991674774567257405450293725096126489879962870767681916331851770411669548114748674953145795440723109044192293419637736024676196086281962679161799076170269886878666272637175143567129448224601375841508407959625801291865554148812978568130236729228957856863251706548942848640450233472197687636150421730089592580376486971825083437633345332399879150915445419333521607500001869057966756466264494824926935979205631285833197597704308915554664611466791343068588428024536181026663906157981538365476359554830129953768130286069826381201887698262770247651998595354482541967363582616515517819423909379676772081125546627280311575245118141877590071756066838916962529574198500811998565744115563429339862277491763611518592403115020728063442815208142768514339133173233485880865712552451034405036007877262396890655411975978837952810340582299860313255597593638249367127993281680363037936600328250040907904469701533708466117457420039101382730156506317448486448971219762560402878862674461886002709134408799821393683297752059954449906519120697682140974204789480533899564698858075075237117040608470438918457326544794345040290364478774834919686787721493670598232547996258014569595538328298932273431980542719944472879128217168841533090197426349422086206220918235574374380844819428626871825978267161609661254113862784570972161682268391311155425747882510150367566522288888663676878365952064826716175572511792773955375969489130396569904030580322858617968374221934872252972318869719015906457202400665337630818563806460148496158694168101004792344418157723045330124983968489952782308356016691738700472772603127570693326915175827680688864768252452899508476954281959854105182459401760465313209517532253402542735022156333004130899187229573422783460867845320175046134574137680002759909454693747498174635260101402425065661222632072362096436511094923085540376354071970959435924961808249688986690342769511630589187188582427488710776712477197947956722487035676584715415864130319362767919631719457198147271823971777204059943525419382927000316368451654412458972177663790868459581445158610943460761788190443386918190282761860790435340018132445650709399628203110655725317110368414818799370174534274762353967460418706045165504636958839130535089117567954179660347513033722512930041539776471179942567845633251311642264720533429196157086899778024270740899723213566518330978267823033214053221466467312326044801967594703672517619081794708619072298780146146857559661737706137610229847072286074904390241186208573212497351853334592096565628582126969009579620208826888845066374200042802578689920082699831065892010663450646701547370290736743669287306577065918295901794339550613919190278212422811560089762124855271499927263526063226855584160716782624565961056671328148433091418744060742730533358657248071436904773204895093408624768409467776643291112157364545007906529610083216387659477312405551201082108667801559803180240760245157439278204914682869058182284172895442162748877192625413624115594312080480453093339893896053738746762856660616176274407765933633856121022443249887104242909182259288275491939460327706360204693659873455312096806888487394508014468485563802770057938633739760099105873045522825673293914235833809325603539118860530935699373092106295876387649461860743497361864193360004498049860186304446117423684880521986317923540613128778397373744454767829209126875499949862417462435829227871510469016981925355352173986476110546983930213881660527792895597666200663337501826974503196915675420642102716167389811917347576044156637081433892335771854563421271766090587016669020348694723286265348999580193324778572356821690630441517453849607834688677962004984188428553974891266923901583486769194827843536336733950785949553281418837857148588495464741092151280531129813394470833760100722804431631720539398444519295959554846528015939549128640556587375999507934015998432595675459602624033020538310319615674412022503219179895402060193906839134440928823357988014856443037540794955918817521433265829822948755458496320709188286196196418123012202777484369469847627591961240364397402791018933477718213618124842106463452675868731869188345215916657017682621029577478331810072946212678487093871251960324998381520336240559627469204700041536635328989274237135266019512308419977992614533111541117989748947881894869770244514969328322626847125430178636704177474483489869410099170173246302301512023624968548769788118338706722069229460820144045945930746964527708038024812715213045166154216779127107456877235641358552715143055863683399267535075449948560440524527730923578606561334588997075769138245882736668617232452242128431649037224559547479379269374639350749599251732093247570866051505722750175188788849938141757676208131016451640776399472626363337867449220339043190153516942857040258874564560056152723089714208810283655501231381027132450054941814429221912037118069005696452474075782266300886208309949096308892352708825750650038104864761429355837254611486988618705651134097395295360281384527775359491087155724922481766386271676569022722278824653556230599709403709770258716936064411706452944178834661910954549367722084841630020113197463910535896737026174600988171612025464124716622939709353523040227295418680490538706312174850160928736562867874926080510672159263721325543559736961055937026153237032389340429851251943025883908260513284647323953206659946534548496839091968192342777473384606319077957557332675518873513114939347630031150078649106157086831354573517075311136309651830665078233206190539677859362012481438238832194039002759882409639236789646516952344884795492667312056302931579674457131935890027136457456502851389883984224758685723205710900480207735484267358963297249675755668680596830491391236046715610555552881290102983131418788500675374830519302331438018538365867505821635263264993214936189305862686951832758680229462964296866114845996178722794723113090074709066805566416998353416111296946560573143400293437192155765848465200519073710465986184306136553322657617171671943256510066634652090957024337591814826131019076968949925693151711045063752410990866876877475745757549942324490106629547395703323162721955112113249468197507958131493028661021864492730406793097224001734415163440853719548377925749399472106099600170904081676471388110352311833286373895788329501732220104021181737461836470267414024764290091094304384753622938758275640275699859981604306656642120827447097163676475440988186301912283630022567029124240884030791982930229089557167661436029430450433180249489954540817225244707092686373292962049757760075415466220727028860788712300841630798244687604726025088459890130595234758842221436867689456550541628725539558334701171407250932885602490889938977058015888668461519639586741002279650425339794662681957673723078485899765669837543564565836023838298474689734830507991013804527852623796597718021662273854737546698604905840473289684206639215087906378943132865089215607771739374228792496218892953809412568597739040435447914834373712424379954600909125620018770575856405956050722115073901723690634852905304960105131109739450809713942397472271371025546646436339302214204624745714990663244224085221684748668840014143145207371419818402714074167767824864161439749801523076390298806099964373426121659242715720306242555660572442550899961018755264446623577727743796637276206313272561171127255346840008466207322032219132916360959695773505089219898273467967802308817725646429073920245984170303335763649121346436882307073669872955651959255926246490058492438716275971039291240290187976377558065361774491360501203172684646238777189975958587106324750127570456107802985948159397511923632577686410416170009067706811583380166443629896719654261970698504587879587281910571925746808198537636153889190057586467953554626018159625605575653651428599043824055285299722650114986539519808274271545153431078546220651149269108161886401356016352500104668985966333689818510164627831222286084683188851590131106335420832230319800889578494110164436382447297837569168502927662096820848340568593391117988009754490780231361508959902303502530186322138338980923754609234167407118726495711525315282928446257670256582808668744522061417261741620998698236722731882717177499916444611268438872895665452045126030661662880824162973136116043754420772325565405727220722145947135069538331357206500108364325325438861198248460566507112547784344207580630945664547559675308704250934374549211476285289949344355679460696026436596797771359634835507661602587136406157451782138016175641907297508181616360347212633623757998338614152104328181967542625110778460407400288082673029742831068260859033324144190732975491230232121123760815039285603991612400504643686728287091489112566445117923207384137825321410806934090517131108860026397148743240140157125506114854237662198743527087316960037078328662160762008248910026372196811190681338453435408151848095573136925300163213538030159339143059396617335577931926485103040162528338232390161176068892420439255040503724488352443811368444781127236749213414087797914603997275932529628405667785188882584221268174161848421405262688350076238700550190004520569097378965110939316180601864467878398968184365033097609643892184008022536832266518710765945524921347190743335405936222277267765439694876240492625486939437847217623750293143165775679156396603560017419723709025042420062537639138632211790165504640679483247049685525358432997143524225073560414786198562481496833282622204304785905918877547248973821746882804934930545243218972978524902889734779092813999209547144350887153759429067348012651428610690951599594323300639875292547780482922750442983531303198959689503457228174979259593509207705803762259633823841604654235422239862209275218352272172313455172053348353214124184168258224624578924268756444169671718295905181420837189017973011725665592019251004021736810847008420343606483833656327978440211920149496516628742506749681995704615273303642803822048974218421368404772766868504870301287431433790185686195630556363126587566835418161105284317192309315054657139994921559019153954465349545897280101051492118656934880152607934520184271416139381267013932536251003655681567338780112744997504634404449849240556019574700032031663835153912522804179128373375049532121220287022366867882340256421272471902422488470040562118046595052948631181726811022666614371934305793447872218516996223535112654402862821446487049376277488235402239785919606219092927005720759970260516337093304659617580504449676737866340912746608179202428578720300750387592073180610317108324668016812299858237771374663084751568574678646068009010032049939758621659270059076884755307077598306623401023420146047254489764572624854344930191306916872338800084771979373235030424210764625538468818281353478262029331735510857964831881057667226686492447049862765835160235258349150632342442159833574584212782703577840012276716012001701286223966145801638663154701364460705081015072728318020784406313180665670612287514276348698051958531579066586955569873877764283544539008533940719403258155045165447041195022039106960227102135676405726793161711937572088959457680317872022345495511291716680748331707001406647183418619000880731814776264251796282593980271820381139384318868991500219897194230547198549571915407025741381043909608638024168928018845285794027750246416223360389411902159541779779419203778234218891897559302345039752940209933453840634594937153305386645711715919613493831734044917183105039086765996067956303451920201014637957337128117159206535968166257966100007042491156217516509387242864161564476916623443038584842162232763536459812350370236028458129779650120148448012393824928775484933927528530184167225925030825736470320455110719886482142255172203900173846499416899940465645286256664861785878841979485315914636598075874053515050434735705996654455067977635882944705605987298614569675264823791455283786784517546801485208703506760421956291369774775020164993152431732652489900944519803475924433926763779792050697440818425646688673611573883999487362128870233527280014703175809840234416969879921191175343734852808240340470382365950076178101692777982544781172899544082938731776788533913888673727182398020025220124025707911651325573181948060235334828986770492638827121625277858747560643134531178131081018137540979495287206001065943294471025012217448406744449357973237649569029333681306167889287915158185736367072922290871195770865348072621882164048538403365433651968431663013204208035911924940103116938159761215066156401883335762210852650240234855962897467208962695182545372547813101362279364985142194966412114842929418097614290911502839706555816795150391542456594788148848319710872996444002101560248296208790965991506650678646008157304305874642888240581849054108925654700108909828110231184052866464820962136266549857608012154931929865104534203688825238555982089433596031284885274876212955107018604974786252366391499792473713590964561145124989011265953499889838915121075309489166057138199627359454782291908170478774041872032964822434295347456585293473411297918225504035506512761219447012271528292939109027460054407430383012954222468253328348900075626017748324413341862968268725078719419909297939917823432301685717141975573711593570424713457934905006518871397137798939636294709464798897527237623871388115184696600699212733644649977187847555442674626492236428439197731043086119653099787273138638784197502315134271362300109245492157527610518290446206288299724620911775538116474169565834231863558523203769642401572551108008440999801481930596711480821599507914825441565119489693015203165866500572437924449572289148557541170126185401483660398531910916140580648437452222663567286749970371879226493830509604857971832075637476208948801389457226872074451003859004764495738769580951861472551907935808598968466524899031666965555076566263917552463540944403719112074512155436017176895667568201645980477623892134642386668960854244357871431162902214337921802569427827497886139103305579723613622536896589138318163436166330943100601562551895570324958635493169416356644705173335342124137607735667865676158666644467414450335071415567442638377302053075221950159353777259302295815461583935407312301464586988607905098034907928330973180612775400495109114685718843321032288201747138319957067871822424475491988163798008408612968457052960270519904552160458965107040462528146348516781069320607149067150360069189620541705339278269698553215460068959579568797071211679019586141086866567333430054655846187110972862186565518044653717203838471452325184950383885734142080790839621623643647145650396698840756900512395836199422956273638295800262619864303635295212672970855399792931642500414888378447887896875615402872179138863756144575794746764361348272839777659236133070944197571060264607204571919413061504199133125525189091379063453104095861445114913246340942829932140590815217158740906877777771812225850930254008564258385590240110504757817927698279745573384574616099006651029731161874460967442719560886350109133078170087552353329511832773471681448401228767210643063835041100956624013836546036767417843126289459708809176118779699047457669510548731074877788463202072023268647393421144216009138904732086491064714177854652516211001699156649364622119628554097135037932759304854319253907323061686227246946728870714791167367995628443376032241806129942317413381352512935957778065807312371773319391633257603422697521920749317413014366335304824349040797059220300641355325534065126921017519351191599661657284058949779608895875457101480350697871553404399568758117425353626684070158066964384862067765624288684962877561272452586044784088517216018758129776388500322791575641880591316612915282871390280196804966456485013921155761434446060193347646048484555915863146350264987550451098265942589838981724361465220571489669576636872947899141801613722314362253452452606630794824677749956044727872084713542274008356957576413739005947266852961505984140722522605403610973138198861150427475318666570460977431506217593733958982062707966512865248028477230725245911543999812290750286166722737665239336548165542790641444773105666976263478004376119459847752737131988640575241038523189583865311390118494860856031953586607343173440385689674149542224837540637869158663250679391399671424545097274570579887012998805380491732533121147704557925635735589232757369629209013962606365237284096986697470067769307578923659493002524453818652521862140924675138590261181573110049094865451674753635552796172391911196549913855630350012208332352813960761172716376589278614195934649737128214816425017344899703123715142046866439051894294818859009003074279920542203922181534524651651353567707658434673291651544845648258802232561379461069070271136122403821666689486788659088059828918990567254749286370097146149421178803824059116897905364843528182245507647588647021404609360806978931385922748129259034643651009295754824658540366784490173457180058227309219731377425743177211248362561800777256807494509878501329693421343007121986143053095702076092326722912716623637699647425835529563745266618698441262116140431763659966390076609570613103466267849579464492290469442507613241491485828368314247310559402406769168778144117083025163266050798740856510788705464446069308694478688887420055081097941926027321037810524724226265833212151094183788040784207572307105034471256316573673504840964485728525819504675096945543784810638993019584161730481440933137001296223817423950316800663476621059021783212886080047628916117867023820116835830551883532441749806489990094138652721777523233671314474828870559245173602529626691504513493740619041874057600755220451185360085493619629499307433664468473266305145589005689069708813354648414457507844182467167890694687885740226629267358131591065242256923052569071274241044041033597415662329655482166631006388185117608971267306811055624174093757816132037251664005201572522155075281545601305406158180167700831315618263195727937211029700090557210807793967577575862762377554873241535379694270595530437326658539128095609150136971486866167619616332778750404128722449208708299182890445568311107972608168288685124829396381184200245731217454512046244866108321965541252937276864144280317907666268961237251408782667508593216126288173588440966215864491831592600852886982669535659731029708715854435424346550534960248245908470815406474904939039366394525473525604421735375113335456695905443105324068618578023543090880780353115087737064703102405532602872677263849831546496657494275377776298669847908551603466961033610206062675160023084810751604135715750959943162401007486500223163340397288359733043177694151322845626274296909917364851301743408909935715011838480024662892313800040972086958555568973356030781084718678068986769761414373962885148480826201790818935974692353653085731529543011698231935438641555330898466535604766116463854140517394498140039029968101056154653087701441969624049742657033185104324424224372289146385040347919911679405501444032442820020918699529572231183837796241311097204509282776995469613878734704870528502127983004354461797324939857658439485175122734407214991037239153090647803790485888815549406313980001731908338288955936508348040185861389866342601159620180881278801770897866335559130908883904532834868539121002322979222585542858643585134895587325615808793319924711499955113113883038370479568522268543955309830696043345199501081427139015619114499558687707547539956994083845555359881602681983887985025288326038720693243480042569009153028573044379695994772270572358247317497172300165121990821915937031271894065223264722922757787091963379442609626405683067838226301562795803674859788569195326166383505604489437385810073437046712058177440163288172440020635056231396549472984844041312502616716214902750099120150924020421322072928088388515143954249642772522204811745896634195857628278479512283952523963433410653024252049836680342959277334664659442343383970655975087223495646272006937294368609423877822780577063095854802842779941361636495001429912435796428346552554145891856988844214605748389629643597915122679064154656012607548156893835301385445635062163393604783978144133710590288612747580767492924456490715404127361575876776460786706487387760752902548296407496038188056205094084080263425091304593668783991212807548167996229656678419966854763125063477433195886141222956697743919919307019129732811850830326301457742872260766953789758298493108577098915088379854837954673842412512366836723555828407709374639008925788468133322239009151887250884409176165855006105024436427934638214843333777269862451137002063389083057780520142409212603676750939209690987971900708051059076785805183686924675860497870023703660051832165177579685049503161346523636775538379448499817291977177702792104021659158144782737977703939937753730895719179970098023732590666517157144862024594987071713451720214566473716917268601944357233200118642484833286906150240738624545268993436802005607823247838018280701840990109250352756858035034759391071900855280068419455923578338340282045510953195928156869555133736408575049829018368727349645598077680542915111247203222408375038008878437991758567504767116912812998479750661855590558157541609680091415287811575368146560849243976782889062365675378572928275008995339892833419301563699508048073987517200796131745255146094874327754422618661030787378591476921930479604874138268055002643233314191537711910922764326789810305790621063718340124434498749472920870057991242825012114735210330432392400472037584371281085060891729029479848921091749086537685350412879270048720140835360105626198991659752071276496160231737073160925551390071583623492294035977146242783392085232285374045759975739205332624395593890719051783038881192875231195912671797266981830310350745719697483830966637658066095990022001200182552077072218176700878202787669665114116392999595771793517657201988008087071047412858349132255616891691418483701457373255316792748259446820195180975042572061069662963397395330737059774587068352182757360242379690357374668052651512347941125168674788012790318487095789425757908537555465751626240172607826437593008140091845773632498998676309871886138555868537595376668832623273744553377371072159768170840765109510355965277449142755045792284260419858498361009212821583495312644344649426478666802243335363668205592081156404683208186878266439197398146465903326764514132802693000654250624111729435223577676044651115779903561891343545427193400378321423872078856525991549399445142369292373251472328119333759244510175503593138944755084390375155453065251173385370609604912904413656705234255098535471992576404987304279551250544431481510994258337144138806624972525883641942870927616737005912963753621327959101985036563666137155960435220451559157487790195678747938753197051190646432264264766397520705187232132736673192218868502211786002054622290047569901065424082866235930720748428022865471153437565849979832414174001261948749355809285783377001804659722884407976668376287229880832679546779952259163803697534444407252856100501736684309955085005287044395208833179367392703196774344717504414750676679022759969644530674568329132952378442892216698687192298169463497621645288696086610676780970751915916395218952112456917846275035813919049666781781152414104721401171669881577444895232143149806953094704680181129332632960520827489470582509547224005963786386707523803926534757350227644742180400583454952962761649570245863760192257359210968815502363783234898227283809620037353075797276615304018371495893216534983324411598514865833340938960852356974645536994761787872669442986680704819141455992867075216983227967848219334997738530938830979234592905653844261538136284860301137873567694347053230913196748518609708421301240865354725375110378865837623779659799359772775284103843734561392974089095989067411360468777121886906470103447332350621898919203814108991037340622632936100743576561235455821746177518062399742168951147337150884731056038376028203581939440517276375379876411217881484445731719262467926378961601373908521951982943559349627458105613282103866874707572391799602316790052620672452592249168505525986673857959450284371450403962931070066239970324953257072540230904300624054175528641627859207198082395382589744666974505982875691165099048995520378455621855349100412357766465802731376552992089600036803243462555844825488539564803786333430458545265106248960556352853294640071259432333754205461910832223833809816611522679766512343163072509455705700315229338429337550089037055207639847731747167960473060004671885417494125511063679098486153195064166769451588324578677798049275424417420669602125873862773762322040980693213326372010996983042911389216253855937568404110970515798423885078131808184859216495175646052239820640510296043936086010836297573072520651964360592236261014903845076129749273212633480531587922841305782402248535022590994062244598506679916160000369690621619920041802706519911813624272955854054618381897900330198224791218430010103994865788709972995224285997094384885933375833447299913366040713627661150538502021299010434465743987967931824936052525062520396398784368932140968145278230808242447506160428971741755999825128187309569718821676805830081084000447118366483243238378763138726925976341312468113244041582007264303547231189720665918091368765153447771664077095191398223369786058417076661344633782036804439091632719848038991681279342079103110453777015596149879355121892605947872529321468344588180643123786573984900357064290392867831722729242419879593602930128009502639380611066064425981516209703578354680722978518978041995050275961301614009351923420265811314010032843623195306101946370553525617022746281963976411230337193619119659237403983799391167358107264615387565412775543414786627304641779704245569034407565396917740858148349375347383801294343740482248399043395636824352380929824904233927016036143459042486574658428477381488865182893302330873965036265520816210136646581363392608935039145812561804127600125607490956657654269048182929322873740292637922960203318186890090925526156085469776784109001619063268645053271470495679339236445884856899126294737325325158207174019683492971206092499097597761487067459432691782655952677552596442194384255313319893571158868046644107293086434841589613069193660024753440484741546503877135378579442633590721897064836285357641109032987733266567515299643327040060045301882622208241234869840648773479131003549500373309204480972781259335534033563255630465717481853864646249372437467208269353774333567889508088211295710476419313745631899652956120509056727266199912749400577998644834509222103835320692434064844122141343903073431908847095005006652286715705037774576976576416427791818326399019765191686925465229963861846119896220746484296491544364070929006215250513681129453723477009748898320590615099987347303723392879854181321580761301205051887770989643081627792098505631962460125785730520486698732398438258131577844928855068736038948001806372971227298989298250616046451006137273358487652446160905813511711220936616739401873043497928012654460690319187307805163497796471845494031818176406978632608744060072171348289593399258387977443158283916147833260927498423462746990464545791268903571792545031391609652627151686433942485438392886297585872301420004057640528983353130780042403186509559510871354368418773582353045285442057515256649143235805872140760108762691507252895083870468709937397964261375372623102397548654019803599616944247193245025294029535234635254939696822745183314944291897832154495575521880511158872772833068337829741740144585228684017819356035320375756344599246606227577720836112663534119865889988287889075435975934695655336786520911372950800426557249864692041144007268545144755667320456229989895559203333213371124011889095104545951595240145869152611693276023840160573852005214542450368466948324331885035553269750882225016741543695649772022558121958956360547378651926833688748547066325982785444321068710578618063026959462038616322101611907772574590141861832855025760487651427171763820784565587494506915399273962388906348250771318949959015774596125141773158916957826247418392144967523958188337830886352779123112961178195573784347101868369389072321828426455664301338243981975108935433247701855807494846958214149520539445318690364732261757766460744800217831036636350346418220730053662521378539079084045037020661474248977943962444541191239717238505451141822648476442232826172856962483061217984561794016116336439700592852042717227886282677198510798753909225645455207975287953657380056621736187818320419063219457692313517194011236724518036555319681710358217833336192321530050698623370801777881763927003529358019781211727639656946309435568333512987926152804563146201051051497199822657431671549914710363893666764974070600826016738392764887155172450470559458795976628948779523647699826153099178125495308853045950921827672205493791356397731995189261608243572848093972840575547658845940356251713590997520959000661763915575009082475427351586917949231490553283471549138009319381737327785125215187830259737599313717690080993272134176052282873552323863587112391460952836070174553469546363568235487013277362292690550288251737433721840395789914946453070373388370262861791064690284176032378974056499800745455790823656967526624186211946021126147637174133491554934160426993133888307385139690919964245486531377450393393250579875414502094305257804204780179003959885029276555856605030991419484784638711282955062490286897035047894375804621217768429707396698543988413088764775204285106754666352822614373419049597379984515037632046246578858280856178130343240464181593882451909961838615379781899996387265360265944042553954671132714348060596093342629939588102125484332342218090674936893590703607746996891615066920747034175004522666498024195226468471170291358711902060953425923704828345521238350482546228119553994848026797972262050898730603307328827728479143454177427725385520571303221484131177661054023661364246976230119833899841364752559020154120440709960164002279373432315659135606658017243427696555202689469451862979687839299741411103760867703918290605569900947612066509473749867854890021267202750348498438722191376728374870001306943844839695850050834521089794185850684400746470377453499692140404895647455825386972803380097397154123888430583876588260233817991397022305855729109140380505010327159463992216796253927269699367925625020692947589380782397935412327016667565399321785326285556469489629583046521670226616807178364942022755457561684351955242744162205744255380432301709081368073029826859615034662832058221481818444160104764599841137521598117080730320203924533298268735884503672330359341908087181091038054242700625837785817237046897722950836895968425875266314243599784479905417490415755263537598066866596970823039011271564757634835259706073356823103929201684402289956711728965031729529265279776290049302213573268168612703715864321938653973835397846749493786021435983293026628158825207562865409255597978204748981476267351265820998556861880244080232690882626683214168841345808489315926351102059111880264977433785019417852167199354740344879268911861228215649136067032339075933046856811527663631953908922655165499574189934032313133482850160325405016250263300144071667400575149197130769666316288453943914809438330167685745173818507368078520093301901180566093600776413093529844712334770271521142438146572667596821618598927338075187668867653619237500493019387217475750799003361267538219043885553725041041125043057607179135329726499180819903084180687783805164449064590311004959451752681268433606554251384273615217571464121614807148498122207414657545416267285280918661147777905057126825008326849061689963322098667127161356216785302190172577278007081903855962663669969227698386987837244127515867900315799692500037279295898137447764115317491281944172254515904501489812813844793957074572549425831897492632780795303260388032847908817890098652109494309734148871054225582214493671691745391794615364688697136534647934327314082231807030544708101690052932090006267739913902866649318340310348282558044831401656852024210151897791949097173053737530161204839506439720935377018942159429693741129734173931351009483936615592336666302373846507591131611444304055043955026907127550811506252311029628156113094830027763116537456467568838551894903409893529728597960409188199602041207391565862651025240003541314329169930973989698468097411332242082005754487546133511785158983799345505526754640045146559051646777580367396144471890268996169688350095694667113460365199264415345428681950936642110067846677784748848905478115431089134143814510581892729528275261340833762045334384428850544205642197155429416560055063780167833195543208905327736072553615965867771820271065627712145566003000547405219467512595442410235814161047427516826677789500954861417275048446242441416090123410357317380074157513520402697512478245089779720868122965564329050496043683736111509353841091618168894619808398309933518304966266835113535692609109521632330931015592087984544791649508876762696327990710119261067473197376380358421542405178631930772516664870137323918520631689358148799314973769109505799113597189340543237096403747609429554474519261569238698957419346460782426844328105988412872613318099252795224349211189907284636161131157037855984933555495945878421023018484623680551614878516597963361154218238010326639231544912442296410110999086404568961181069226344632475410053369118057742144650996221172073305145075583197561866522290833320897241362358267943431309002678667746639782117881869926356341722326410975370293727362399240512295027153530770220651675234808663757031852895757924283076555861690405571400686042241176758962994885860281101024754600090140810489003072266400162328708049830694928486328832981181311817534090379063024072986818860510311058248949041340618166574912197502189348728696134814993771295414872781784184111632622457608762653398655909659321502390674012944290815369622330393809385206945168557820715461286530322774102637299484274498001791353942630459982971420624417688368162432898925178465184864720021856229274039810402164356613597950614229716402318694621351512913455938753685464084457241404319579097557569213609136379848403929028002095909331854946404607829414520111599988315278330375854019104506069868664429537509843248657738482746324135966632232465493230084959893339312268189744987290963827412127084240332062871921486238591713950497008864816434715198395248329658034950624467639936004048048822125065633250951384963007946404249126257710512590685393908032330118962159630943263312443335632231943932717891320569128855950701320116425775284417385645948173164263043371461843808823348491991723249340356699820723214027342287471813376785915843712061738184607327570084547471445821243410784976798762485512898311322697054759455962302409327386056282934782886575664317283746327212409108614255754855967936911510494265401592572246742479503056597305905783773703028133148095678292716757432473492348769426426072871372241609542186405158765675467853365432312885396701806025774569657835886658328357255181774777806325377504061484478009295959353434793982830951861072203125663172659688338193823037082811898623457363575669519946387796829649446649173554467354921496272404395097269421268869128066204262558060643311996300083923096886947429638295188763531058128558344532363854401661519950583048152638629210838241859865847059253065560538409412501353692810336329989689629599308749057977242354921352960001012620306042217006838564518934419390336579199004421468889437312517952832687554706810452943448310076002272842494879588277508942087564247684525889866426230791851141055496411192468152932808278137743204100159083495023009611256891568858718189073406112769641843985491024611954357281256255243106914108448503152049554662672013996603176003161861054741813166980272973895925200163013447466640896780035240285872262496014961916696199114700148121461020469387328544929799045418580687965951897855744112473212962315164478244510300404208812882629836165113822420067778044596025195623662032843140025010947797516249608002575395201565723872301883182254254120146650376119763946760015466836196664507771943294741494823671187906600590789734174751329569685373442707641537860334275026867978652708073584162356235935287301553068187226630765757781858938267375109499682798026504819711683071614129145907177277017282902331878550074138776742938076165518687688281815472917026535646653927147625740164783475468935719322338769626287939635828961718757908571607123649046132647105391904736887618583676677864198681969947790516700893675619106311532983680207299016604509970192914897732289170425212419165845314787021531082454685062438279471615453919932708075560820715817438852588870446994123336509135718790843652701990182259406739944814266405221626867206031067522893265955174567570794005178956957866472152214146362708968429253428110536699341241262871112384245324250804123615124017845470724018362884667581041029846477972245186579844948787843340780620001704649996718959949779660528293930805469765876323407047969848422365181539558091118872337422079142884896477081666264633885421048850490367259535621576429651962943559102246683295893580815419886774432436559876129275695640144613471490387682831020859581823066070628829570197777815530763539631228488711922297085047156353626786630082847695069413332094084186369681862455216608039361506711829680730034813222143029148702336370188920956497201733556786166309163659473718627925421032338241367138736773438437733680890719297313134165695014136858037974977531849914341621304618431375592361311097376853542656688929825876694095599174716381229098682469940988751130101902417023898054081472265417666533082855252438631811144642745296190232409142200254212266570717650785865413397014776993545779904580079202008524449922841117541246282715789859749190333879933400437872546118257007500826091917581895878261122598087784727652358275817207045377310906046063532596456156220588324922239088925180026715600038146838803851261725375339415282083078398584920394259633391000739301519332818181796524213414860310355148427004070126824060512408036878072911059242615057462763845501731328505628620492386453524982149922985929351143888315022612084882115348557203936300992270854386950501113498477463188143715747037072275703595187098698862295433806212254048624075849425205508124484527391587564425786916832786199431435960862500835091843669505278392784787386976486247705780492030846971365365209505948729391462332742549477046661738513981961585405382015002859378168942469688715045072160746418697688794331424013052686728478029043697470166956076725639288980348345636348999983214195478483323263860368859990794263440994095066069984460367164023359005665753808899431653690904952313597034716477466714841129574480127536586882229318032063611210091817359600628096330412929679054861292668204822099537558907919218955500083860438870248987979210260704572455628739900877494485126296851025656854436808532967241053713484696898942037870633297186589147758310626591217410369009667496342957016364710218058841714955702501021545750629382024152515032537030568281102367910302051928352490808663841495057653273163344756920977132581289738902637408180305088365307745055553800777530317341728376994243285881349719854710405742188791692648661959987014901560587997517795512090944443626461327998005915872815684142183832098485902548322924948662502177119656501175497650995892489592218419708932895432605049701110430500777552377543780774385769360663487938648843008932145174448424442881235215337411292018041897065903910177102150340535133712235311862432925038128057367884591643490904582831170430655871265427456107533067250595500336907127233060365500475729760789902539434280539405278375966836108892006137344838870553498300630014215215087293204215884072911740938120589836599023109093262633048843382299998004603826278159613895338399339995363327554460454799113437084288655449606289494921208514334348478878159409663754838562941880937214879477544444932355355318454307954541492118495309307878583861218928255295857986212993748020453966148463593018902486040993635375746756919387986698619963098789251721436418054249060594848809489987547493662017538749026217727090971197022233884886153562345167565971442945588179196657577200799732252905788597204277158200076146620994172736306650882810401482640921702551402623978700375700942163487873550659577919098507304319572833842619693996815768201423109866723336209971596313198558062783137678785644697784470226944212498239568814908552429716326198521163042157485496923575096859605802343534573967162244364535269730856960513804169907761153045190133364422654452213685190905654413689245706453825805273614876294985041929179306201491480069222370998882135855891085853960275435992563890290458105710028498721367457933361362539808386055669011448945878831998384868116547062123972875460947474102647543936101045462593487239173611206082771042247920195090377902620406933178216914978152385460552910596673053954176407599597547267618654981503201048630226601117488363032193190308017422381067114865277182141572981779965511004533323416127848872896203709372323197979437562774461337250965910471307743528122219388784275311804112440232214222894361224643731514994487978433085758506375715450386167511445745601835783422484464922059719270761267537292194157838538216173854334396026281760814823174454993886979569504508265200997464838459627763567506335367058602041976079168422239076058806542906502493247686202859873653549104685207028691190188479372348831791530356761885257085790916675218686861072852354007959230940848136224064940566794246460755098677377888154786223279865464557066186549887660213250700996267866832252693271337650655707640751128754177920897582936605776929160806270626639135000747041826723156476333654848335048920541610321051477757496657154115415189265770365822224171405747945589781258063962228934730519348429558967566391338553289118045029636918915840614419855541637171174753575500910219315470839473591498141505118927450615887739148805031239221946119066286495504007116911179705896374939756568339004438965456149475427377909716876862412963628789007407267801020470502036471886514850470848155427073720823530529998776058761219180587409614571379335691748983281411880348477396944324660639032542455742686457191421454510049166144513447891772634891755591510303460084915527779108136990242695836819666897141270570666034636861363630158299935142967240890908132918196593023531033586903803422505698234619825415439536708308570495518935817373552501549135025275995675325677464212444140793405367970788289088097865976134239119060635351162419727774078554714627466212121213177167904789948708029801567308603364098186635871861360149402261567182692763538710442081728702395481026833514940214815033143751592153873092326807959263620360337321881326736188580673468011939089253929739678918967178634153713821047750291085244100538083703991694084609704359789696424974684654911927547020509497101111178856988503696805216867129350941286679803849094142008484139008901996210475618692599537759658488628749895087818000384903849264524137603911232826060076176362166167065304102199175554990575970323241859673326425518100641167474775199278592866426394698967521021918781313852243611319693046653536746661028463276210303960512155022628973788340056453218046877411749662590100322270688961851384841038271257723920231399171248428342369066319269673342632269165241517499742921563369032023479572755449222193516010598590138619900368181501107755680884862099811940497728882701598047019013557629856935367486857183989933555567699468595115382133130353714604610965485409067220261734758232228036882670029046790294497241481664820754295873793395540456821816825300753379248031056240636113918418898226929813093900044168455283860386123304400481357615738635890145771276898241278544773406320524706427077220348053761212503291874988239434548997109394728836864375906474330572376075781611396401372810782858282290026885281995503190201425962385664508036088399624285902703846310870238829530794166153425301764379611317782083769791742522248111959181175278472977934682590990837988418549752096432730985428792015945607231195118162457875284948119534608389632913651006283363359518134412178475606028622901065781158915625370946964501158652755984814212431500566348058491115912575742428409407795011231256345842976266032522225799204264916060703038217785845084876253164313364505256743910114541918907970052627247021678536586819622364185087377777018939821900339445511491351468191291011993430102381264877284323135762379758117289003902815961313113135617976778289440131682712578534582692909796692134007520828946314628249366077112610577895848927863617581192369351316289044415904599417169332061928699569767849835471846492179086604223925531234846802914059534775858199807320516441149388490094554776048095895407102323233191886285173289397317482099341973602283290001253179014747983839680288473385491978224143203228742114644046466500642377335585648987872235451462065507552410129520610558765801882767420022489983825667562519454801290201290522589172682958878600364110623615700249435897214828813285568420771138777211746185510243568073350680472603137803208114876000039283482261067828180541257998421035119242920988962312017647321370019856051952583570129511052854876541302550136570151866371608352948907978415537079253094470712648306222444879272572831654439224971955233709029421042537021277789692320992767634287601062754604402885418219720866909431191877727476736732811237603725150983100609225955191240693256418218842544496846508138285835062679633129979923637250000764528710940333265861126447571647596651003215115542601002663830287962628201232365279788561960935783900193051751968719289112569600039852225607063415532428870451449713735963958717138000618386576856175193169429408282144199599647171515957141959855563662409877229507785514601508202690445881567598517118472541370151437365533369525793612826128394461997013797050700015588160020153561168420467019790787380977455638988546380124421091969402451662993245305057344261393004958289498237137662514434467951262924320309503731916661271437533445679386573227972493904772075291578715343100884379448307174323264679889963077628095093551722253404061525295504184415787254686843004969616174907805480298257642160845647965139118112014441595415495855162188562226840969902810595297175418108939644624604552939414394082966095656606138528408659628933598124519535276629052266298062373929395377636757670409350463654233464668027940203167603174225202821037897130536367291741797947813384526999474109485252729953775733796783634477659255037806971646057799027850330361382746747813857738911993567837839741903001243784451887146826823500325447947297227174953732101829073736765006959703802943956064970315841788863374380587886280493720892475177875695384135189854407623806283131125155284899954729164256726418452325221624000777719978456550568784585356396242815141638288020240944083943605636595176419864483007032401844995593636839597873781991543112088610864288284957633913670936944311893312204183018782090485326351784782948917867302058180126252388642047235318102550539014619765611147259584574964045518340941218607622219090193985210335280950142689343978158059899374402091084124089077586814011162602829199305481072722909151989724507949010567938794584403842943708763635849947513178561503151452540804874795209143556658204790025427082319289665900978692387725569462013647338149671150456418859481371367625875335420978879615254831675504514962362539220190598964839249120353040318184342518577830711966664477570403997989423038523878485667856751836222919458727219467704531734218932323560305160296678048543804561215035245528308317326993124885896806292811344624291954560788657577722586956700237894693376294035585656428989806714795346268653262630563612086147226674577648559058405106491542612120831812893967244809490035429477254122295073180100395755791620600075372125148978734648179074859006163445763038754343130717447984453414096258893946184741094114650537922966209271322618774926034359292927913633261053979477144287813257384444035480795147936082474099317613578365230908917898497133328589989066335598790533857962709542340362435478651934890173652451603647139862256595291551920314910505112666684227461671932326906269096841233648144775135388013737386875652398154565464504715659455146072289568762641554375916318738201795046008628832741276384405158491448463669444667649424186701935221659713117033665920305890090117374694664392864989648016540914426019827195736437005665574985729664485562370547162998587137124337909536787383759562741959410139554108590320885334051584181289748034405302223320854762601887199586683295770412512512164795392057297828223150868663005607885198077043854671764878684069724655122667809581504936555686133753107264045248022264640658646661903075598179791275886554822226640527738490582133045726780095941288602561267791856792756735956574902468742147792847641637974789969733961725923903129600662231234691592581442333167707342339786517683294898679175661128529843956465701017664027493584553502078329713683822511085681823010864319264952209841182578779468383068023871592638191037066013921409515451267577044479677024729161937359745864459877544883466077057693193328242697074692170049438864778995507829176692492807463014248072880133454218466211453076260204039675621439368510107806453915260424397166200184468344875494836041152032677348044714982922777225427110432128434780249769083551506961690965078534919105046811189253522742706902491152936607681185607146888978328489044390905521257883461412823092720098404477763857877842410882731659515139245274035673876271595515551550340065657501697655558930506062546432073819796982909039940490933613321819658519779506478307928419996175269913201692471749575323009183902193103541390907015766412880215981946983737392347414918120535043786414758369899285872362901603893159613430030297125278424003853868182630635572112539371802961621915890637896464367017703717617240470395941541145304820633631695746886929794773506801164109478662433145915257731746151573614329776164255706235500620590767704275785837222633975420191550844509649597911579005563399553801660455400606499852280891370141378251872950079122917634699265485864209913592134751686582105849582949849687914951948794185059700453668015804448712189363895727263001292148088171854287439495719893559623270665004443383947636734138404414494487884640786009757901858552102178478375708976540567284046075179308558094407050933617540479971026099712158640498342586810345102274382461938832778071336025486003447217230951472414117639191985996222539445014058817767788226392961621256499687998942848257641924056484916668392042825511678525403691429630585399048087926535485519298891521885653064587524865709650010105007239982595125934761372971642435370885862676326779960768912990712944222330268060220529423268690924401953012833251405543930228238592370902855095701472867640739608270180439263684956005953154549745813588082658624254700280313792222525599528134816035572462229146924902417868559941331757694569228428743385764031486384337390576758659121097589469365930493244041860991225416053871691473742821579500120927720951328146805211847504239466846156927711441928585691396585044820194661049221529492482381469085892837023594023241638476434060632163980380544472531684572756254131006209922607675341945700575156417603953748451752211779260724380713388600702248905480138299029637152192567516580549493449983008232656148721439824189636015470910049705735316369980210309934133392848586708215408737440885814616950425992044398681663656271484307173682502937311454182772749402241260772161830270092726424002467719577616592567413149424771242736877704295568629882096986488981151492465039850333352982542142337196057480881459406866418675147056092200909470214285082821881454233568516691317155815474064793822654946289268556843213844082348688114210226322920155695110027226393998818213998556179155403378244255014004460251081787731743360398429665962939980492665497691519790091671813194099579478398912385291940330597493802214828391373341091560164735554862786988958503141322488588422718090423528695729929850293237634484096148551730639225036429760474647024837503717144007235458270019583845071797199777016704767204373679009182415050165611534885796003772525784439074980203713365090485858294612359480011824936874915303681054364386859974110510907386911977219660356035148817765808502250675676513052665944484130766605713889600534093064871163021642257516505205966059319240473176177313738430272198692564085492942327918144001564714048537098323676300475669039935800141157462601488266154522172631416806881891186552454688025352969065650605449440614875827127968959505638419280858765499763859626144588743999219070488665365206493950871717731514137413131286693187839721168379514109227685493700714138107087910988142407387515345710366900670750978939656786773635824002227680601466050417142179482832295835669359273533322425103913909461890893584396439275501673255868125957107670513466457304900649181371278068330674851770295672814811988121462540966766033313360963124156703625089238982812074248464129914883759662530110566741521041241859360573199839774930916299690255558307212006140205797256530716150888527834342518357007434444687975239828055940650068876617563273640244709248861338706697754415042975914633746573910761629958613412829628440397753025897260185598289844214026703677517469163111431709606973463685509657002143655319251674124604364735347438334035362856719755990077779997841844840434671101577712889768357210578066872005725386621433758723003530437619719218003445513859370477797945723868344827182629522045372797639127915150232974147730616547426382634482105293138571452246312011813879125015094522495142304122182857149953055066552920679782940648799871243098055527221069673141446145906358273396386101480488842416808465284287294619479042407292315873888423035451842874801605909177204136182149884075233202935237757342794845315409241772291876089166631902849008297558839507804083140737619405776690879518359138116779876453391106784787116558114497597042784390613120650293951329192950359459010139350935242116866871728028451682510221059905959009219048813117043448876165242785552498389828889532906445659110477914258532773919945353081515882200719623815805379721657821507062507768275293163572453035808662545575214570717522188231368500995697919440486402445517032067149789698004507053273330378466181741143079764863035597432535813798179227962467915243453612274470885433634619697140206076551699530766864927413534629477320929440370106779592321673596864888784892754586578091903976923024726476757167387362895389486897132088840043308414426612456552122192837511605226081734067046851484004825393098209052827520749212309341958289634211261415978358671934954827568747021515915010573565068550536764964467575895088716739378914527674433585941017427412343476242124259449297583457595667478208332714558677126666430576925235404652639614093258222572077619309026084275539603380551321650264493403726011587240691538649670754741498271637123195487640233193428912193125729678681273781425602270954797621403121091496040636171235421954912184694106602178605712923462308502102689772402323012400390323307507189569040530037494734180055496982393326105674500858556666215246473386403918361676792644334199647355616402165880647617796535367977575470553162608614625495037663458631379835289318558133319684473076889176100744613928116614957637505260079759279033641890538294663027740761798587359067977508505895127830332703759565518803094465600132384071648790806076390085596206251120803354485889880868231222201061156857394339060226485683029213934563311874423232234988304993827551637320584624246491755082135410341611905719581822936043677934163023828394104798299115612500168920482654846070296652721252914036539002996178987718941729557819137844254616334653865979796085920296089003320529981497894999273293154946649944738447957799660364763902913215727855210582300693765823031903723008268907820676311274038370320610079751887595731580155796239907557698372049736648598378050596278358102773534288316877899905330562136405041315151932308165346720538172083675457096475329338498794998748491490880229923731566687556989931928520206190929729673569394169377660032570621264983777686669856178618582280812254329871725254858421832711382997634198960237595741549814730943060171277065333124289375608082386430181781548319301058377663237142724604223852681393186081095052473158976503958425545413140209763031999185447656815678295992632207614568160581361470689184387872323422498473216318244540898625692983728975852296354429982417273914009003324771157888770836537580135186420694805087922095513851508443290563265938289003245995192718604580483294503499021978075296460112957538904267461739637276795390639784400855047380478115695708791549488626585225965301478752565083492603689927141056854694681787720937039348208889897915739424928753679259521036065251316632219566437396783004380708623877436703268461433806380305795680087580574631903240675873808612842803392983692971548359272108723037183398772132348128809999824754094393731775982024384020965097009522460598511100808255192048909717454080841938214717053952252901289770316782905151842694152136217643421369188494490060925401895992646990060712043947181861994786685005376334581948364626956059033626752632025678342585317917396741214495192404264110752696141900170682505398730174912196928238234487908045934371794715630692455699553671399196374606791947108601209173195499411571630075114080052781829173185236787485486639114493831590224486409475597913139885425294031926590942344013295430393193902393727913482490709409911477521633933662242008647817964157503263185139354165039866264930643729837587511336092910650260472992486507143813589884969828609787511159973792706698840753872848143150807213296144840571258947127227341855106000741264961867498704429091420071687984532766254480113222338780259907109800148989630110126681094884482161774245350729362706917234485751918700642674669081845308711305860131132590030854870547456801315071680215928142703713403885332787925788463051984710126263525843231033958191476699866564432607874368117799897051043085436132903444415224678447424889424131347093861665250343052151395912606531311384279285163479462407406066087974042277629036562355387796632631338157162362631432961986599432683736551584056267707327502597755457692905977160190588194202625127326712790876766719414929084456759565608127192083049968518213597186410457822484279616801002669506664468711785647671718617216214255881699618706589135570324459317890412107751924098985717628532801749629288138721544054649585540638668329649365805591029280746177155802613268060382421524255503648340234591523907569501807591557211446515098107786597686951016436782442717343811056466623462939647028332545679353828665923498929689654814107179939282110573857370377746850098940461416427938518570740622899263070012071927914610967248022547727670985883316280644387803530365231593154626391723639904739354490859174993512551658607072282758370278780344568951179360440177949930584702294870407920289921495510717507031905418692528207885435154143470401808163050535745304409797251427729890495050945240304056414829810248057531329477019398715198738069405729670128880406446039691585783834983559410621413475511554040216384191601448854140963160480432235380300518566344723574118311764674762121250682565955817521369044207327327236490145330251107683469927779030234466449059842455491282375642759947107727502429270188240114403609018030458283455916034728237849032375799359547666786296223416909235259326482241198122045069193927341453912489880542415741872017676011934309127007186073230903090182567957123083471813409627058200289044614440917819388332483764647617265923742684458397363546405116327708174066032831045236684818226384370751808119835112592015024612164746893121009252655115868952155615622566083925757547663002097590375253005346154571455198397791587813369928730955290594555516115374803866291907045462068534239285608162636743562904401560584302509400509613236135020616124942009101687141888887738874683020638177406794115855909528708110084683077345713453175955808219966118131276061952382866169765414732634157039321573580356594773378754047258522034387021137620930624514626558863877806600695136049619838631694474133949534986295955369178055806436803395042279014359883322053448917149519750899363407687007231850667322436855273939323406116845513505723676006868211254388983408465104698226239477749648197636551908595244219454935228268544095242102255254941044119760612772377864213259017168231452669458524408923754377420666570248113165066116681757732999615307909383592907003111081833589710315928841176416502834000233638186870860660453996300221195215133054556491083947728330306346099505349684047153627459913985880509207226655695874973103675244514458376975611479529455806195739746772259456899703776064626532131768104135788977532793134021069742093462524731669581860619614387438773892682151549744959699438290000527947997525387376590408286316306417349605005304389661656449404747478549428603030845460791651116596824952267053747706417802154150811620913847432563000585703367586060124074820390317953622174789356763144948952651781711312224909512452636566071321569906924045045706213834415629527695547057844965434524105323103217071734234562084077784989154767554646726980668214302505660709379406232207591204349196826394137353453528046236938029073774593403505845819745210487739579877015014968413254968207091059357216789352575703607762207739022414023156001301964687724305611373414638541679325368358726334225843751933779459912570055246495511148473768933571446026103900112864041268400765938087272569639004885868341742095441144282413193040228297814288833805349618773395158406995895353591809147136239634464839057825923089086026807862566612070033604408562454487585382352290483942089754951628118631993087229414454423570267703486985326677382562505096471964383087177843446533006004374920018409850881293712874781583531089951788407334182984878479168013604652936893743265912096931012920869228765509106844777956976087738647252072448568067288913110482102688085397902333226653520065093152988243860607237360114431869407484019817023596496738720807533306180114699971729035123008381437188061510206599058165564308597693222170036301344672949614685895993574327142978942287392601505612658111339887553546736496737307908154028270422729333582607625440009764368356529565899002580076670962262112892547007258310716331543077943294739665558492371799687135921229467958917312547086368360004413753598186256289115033452003830675387579933688910809337500590743914018208293148538720769877432650152803697955698997333338869717635646420122869042350179759209780339281410586366456809188528422287510118414796552240260107006419463712260646375274010152570195345560488882016270643511403793328925739373198807101694408428263720689226947480102604364382582042583911261746212185395563786312162548124194016809969539316241954068421839103210812206867930941637155469581302297875267389231332076371493228928347027099622896072929181954829827828691270126847506815058806558401707366863476240833205540592956559360635688405025945536384701915771112307271355981141903629471794122849987885293056492686639344992413213437774869085598608559011696896526745959152741733172689512149334485809685464914056266068753220134658838985524248726711185555853645071071544222595701218311431262793851265414449616903085962385694230595523945416115050891143609367022616935694586425854227798162054925250721960438300891692141667106915148627753175013327213844175364528796396339337569768482033478514996402629937875898962675979318762952243681278500936931834022782049946309878313556348266862567025735231574523388016511695284660426742668849064712448636922406014339292605392459395286084672756514316042641648118121129095214044355740938436404531037908535877472439624544608474918943426177834760858545007391588211338746815760536002934826467149888461070547355974339318360778497255496168966045776444798432152726420419220783177110572134595720525218911505381894400536389098574252824076857854997928393260100844379718097584851625309498730093356652391480515674695343070923873247993356764175649730721650515221024022169205645615665417551707500412350118218979201497943829126066832422321106102708343536995317981377225398796509305959386892254282053586801685041664629956807632212997508518129353046803505286442673976454599111155077456541630309167583252075456562219535659332546601233727752852621182692645397565247348182752970953527848866887387377375939895382515261305628002535841924506985037789586158450225526634707025641608053341135934793299364578806947405350108078354607193467827612173062469740750888600249453763216468513607363982126620326885122704298960861210171475481130439596859256203186984593151855417819298044763653134808965237338103570643243494941873715848807249409528845140730720489742804520280688244571857537071810628358909207748844459600996917569831712054354421655959866039738443425609804877494561874919107598131216580889769993135162435134331166716148083841159389919529556716258674346752437313859080840298364382290913923690918106406261943181203191530490680313835863913948290167534569772880558872856694322182443909360161540425787062596134377009395434490881371223306099348362461594700537050227668482482245999743006089552553266495223501273144896552075166629381784401164017021227220531076158759479801863060923385337581169152862149484191266242510864563951694498226028305662309002057620884360736759955697154141364813498961430518356601956840579709581928912081674219667019142487162187025263659080815032553849091144502970332437581472093088035103662152169173623463090347606007541170813976150628816130203297044949971284999956746780478140194747824246784995578480535088931271140575264146056532750704709428180272267877801307832702516389362561692710832940709065127375238412874404113131156653591796749492973874067754390377499070036627515638946595087387799233297235966371586245969644349791573690689056127748130405333462319313022913039295424570035566001275080838729216451946321694208193797017878060383179468764538548944728744124445699548041096460557912245231586218035037324558402816947559668218758952187765743075013057728301512053818863447161592892594273944616642498153092576099550993912956180101259215971362505312561284768886380891025725179337219764220870999241668967420725092363094618306919894424931083440217622714585099955482352135771000965701880321308257564039519893879871215187003532691475396332611517577280739909265221594383687726968434740712021974786873708810858318258652666105368454174818347996699648177244604069834445320599374739179547290290011270475479924025721685052249420860298630282574117904778007994991538646084496875601836455007108168099129770959694043620603238716146042025431457521461067238079536900486081759285627240750906544798828554760839651896447084596786939158211806820446749892759511025773105857760979470672323147123596082703802769420703489618621010143755316009983259502581305092461217282524014205126926419951944461484658186833046538206483574296176989570739309047550481490116537778569716711774082616831685832582445126201121376761330800862958322772026782202739114103606027572769257532064374563110263096619183054977554288817785370787724195970646040184064825132445443253172950915492094430259809676378071187901996057718665608196993212420884679823122881315026052601262003779489876315174364426589775579660675478321189850273229118270868200616695935992230983268974618810906135416940702610872953906267432560095917963901713738551501547799035140704082327605656290209429081540450591645577834784475828809912803969964516900617598617121074313645298610568712357918606192477225818380250914427119113153192075360738110551608865087776923494761197822334554110687932460941274802149253571572547273085048117192020525831693383741294819935443178955346923105308853959796349640461680408499738316128242220045538266537161872460971864476456219564067768577534784389671318813773848578841260412101167509609528918977466152234750772468662775511068072213651298414041616708942949295283163124639117583001531951219594335940030114229296614682260256752041463728617528909202418003099950598613836184233562881841121553673364682360528978243087489819316491158709582584102388376511086771264216401740136539049801118728626676795237332295316020549495177202621595546917367373104021285018024103862169071904281487426374873641441785851840088354526059255385187199346667425772304598291171455551141621738837605911064966184804170492979891700972684336868324203445191109058921040597767980978288015713830663533715370950184627287605379555734476382816749687984713253817224287337004110965690224742094247950662784559658583788585748696036796712778638191416790870887366082448687516959482996470381966536985367852289208607825312146786585614491363234161863316507216998464222459171464237369714088119602860562423939458791635865934281348252291565516796263910165809694476834769468956111801774846009061639092099426179829507381777718771867724395338610474441712401153332210057758338149942557814898277380617917296545542720945357933839896972790234405157424310675776575193989800473200037090413516445727600361104700572424959464092852682445123620239064527735796560575321090032305064457848699856682964855008240470940888558049897344231608648894102233244935301436369109032422858129900856583712202931846659030014882661121703640005528280360783541133162949679476989973739011966559359511367558025494572020067608752127624747076801432303412262148658081560955115686149054267279021815043054164257343429402662839244050184819519933445446527720488716663657558567535836636192689486866409674561028812940570360686880378342585209947057554930244288380461892493342828590801698982775925573437624155626401803934618384341145088755474494718357103023862026098540547225362520610089666532258098063555175186934801000457720817781973238085862159252279797809643580768371591227121212491924548947808146265565467835033797034211018757919566191128754257561510870379537531389205178799448979008994671428700753658859034712060797957932193326276967403105057504994377396021240491614032124887192876932954086555746180228496122888903115094601155871217600857322925418086275147212187831361294093223775334728158623437066849897379266590834911975658949634991119123673743162664973963311877168041466984025911894058161989377971023157205328694107742766648050617046368631378078904612462122597132011628745913178232873891975997536769630560489115236051875214605092128903639515997129473475335448204795120030492963925047818722301838340803083985506592429816144839136306863097481506234027572624270520891176778513597794981602764556086000108544287198083841298462117032252380350695266923620045098977429710671195916405759710635332782216874346087039775331540242634917569964698413873651004177315050701450437141970558178487988662000176709843949535232913072089056321309266612861857728117622303836570115574760202550588654011658061971384688298554421873858561783107127164859663508301946756564783891807043168557537788012736996528503897860631424894340796929859728351386261576747887346656323473650551931323746199022558402292593216376796721552359013705618789248196699253731244674994409066772703428646307034233128233033044645032540617770544279553049342547276907843279593015336430585491392584634517114878622154830042694526516105490246716741321341081792270141618756870342886561375223168641599471897685130206299124787470785777249861733212973427493524116385181153496697555899509225225709955701905529120413094035020638937324760486255246120720063264642006969592012630305039343491272746176259874745172347142954730349201981242826972592325552707264116331563493368966191942676179923612010816279580338992027636855666535549667375392141530322979010846235995002073545530395532198450042382482461316703172186995066502124292537140534996210241191489506051746685562488426371976323563834803176526150332166580060916459151376941749407640464253518468349259442045176006696410556613397639043308465222724245792919403420240291089777673422353153882978807679872017240529755932843495747998061700179280301365328442660486575953926158616003535773360891962897363579990823797873898176882063026554013428572875779729306146157392538348505486579129450192661816101594137299858484445898290470161630418215138251063332473183214296915692510430708380928600745108977695006172482892791752568707546324226241330424102821672206410144888923544709673159386978754378884691944656505921631147680630564854694253197846428696521890455124190754445967201429165241758839528635878778386870676684995800352928821655939162112284611612037006816913217830784553302443249881539921112067721100294400088730682021200998160262286270728200542956832872598907128953023618634777597082097606497497245181745828134529653245329926563972326573629966339388762754590573719590181752251173801275113508868277995584634440275390459899001016092804846862071624747527113425562696557460916331132515336824325068265186803811776166142898489643967928496545810440443207694210269431381689379956171704926961450281681119707378974833001084718689827630109380198686807250897547663657948787966956904637201367018786104896605566521956975438263455754973627860684349289302621595609233028696838758002602522829558196597217341293883685118299079822555763195846845023082772156620326160559708268918713138062082025505977621147051597752140910193153034387005325277695341618768605376189998680691358314159457714602510866158870430892525041616007626490083919441180292901440270030216725056604026504774893214589920447292853600724634196194613521188801375921339749887909053855797670230200058132106397042152032842158848417071051290879524894995122992217790971042979508694364766936634113745655368759227479672914507425734782943934507936103028233430286557819603509076678711136351053539581347638702779367766282160615861661585588552157902303881029724554838109910697534191261404207888001937291506635227207099587567649736141162639572964002454485292712055872272942151219441921755419926740444722232920415531686425082631156938891597030187198883714862759031293034763903998848393599222776595551667552311395399939510375918237986098702682655112180628635444836859388339992341112990722226730068844432443023732071317521562242876636373743720948070176529400284359014180915590911030528802786137598122579555233239649518534440195872069267194759459897803404865752319294267410009102165374862580764855005958555033935480753945687586385729475957738485693503249342482612577907202077967901014245271980165657075165078195841911814768690866719046874937854133998572985371538266017749019169478495521607524645873104366582637089577642287286823946041918045106479566816997366958020622908533052073680444750406813668151462797266209308642143288258724357345579390549512366047432648400953285766210292620432839118355397815451282661233830401399352976567734961963285715308168658620209407547943234207203273889258139329629780607629283038515869601813980597779037985402886063445274030812384160527031200998124703279445660150476573340734746709633143996424524732469960851948072798082543746382538998457138405558031364841608336210182647018909980417243783339318659874145671816205734863497767757830087424741084906905304770996666785336061502472936160532710236031250772508256775498180515563083292636899920211033961862826795814514789497331371567466846599142902700374088972327490082637880328319717861064774075152314939235834399842809648784154056911345155161450404119928799885854901126624964504492256499650757151316502941152225919465902713511425041642471960665147284164189519992263981787452115657323537789135775651676775325187645579738670559117003582370163126479012583004324104042342493500910603740657803960373491452772785854224944402162317836774160485699461727427251019052416301769370206960276795730916342184766776696639323750768430822712647490341841895191968070540927082877301893843681283094737960808922296314565632076644741373854285961518141184657450969263315928762218709262373900103050891308354151338848258924071390308422863267974502098227290221658582698995804987642401618389407116468440419083489620797349555431282374956189837932595075272479090278916450144894313604492894413158042306280779878171574389746633722265708379692105235861769495964340109694431684109306187236680417158786350893535578407376230070662446985212912728225169011201030924738317132850002218907668947792440982609228320260566729517753044605774975698841555352546649428232551736162399442292550552964495492230260107245964928597461566237837155339310075959496006374241883145835133252879045403826171457850520644378569279721082293579759233494800338311690944242187664778945687317629121622832204015358091607275925706559688391359110661394297133988058957733088061951062394245081048788229253166719767765989031087303212811332676832478007521465503772766158253311775477913090374913817853656559428277417572555267913531885388795058351718484208206640849495084595336858523929745584007513910110743457332991436492608278754445835188156740365294133644336336990289800212795747500753883161503231925202730645700419643750069126641083106341696841661615908524512488010219946291562050002880390412320019186242204275499667168017655347663183406797560397245717779253741153971158093049961772301822755075989679696149285240613910885523932383865492453531168402651692438850808311868243581197044192290017811137824459470523663011554896511565924330408421817791863454520343705852860566111101357346987057076504598518961314120824905179703725007118921012905045603244854860319949337880150150610223226146285670251781723484812934847827717288469585118885442491287660022037980215697357119233975951957962215011652729222825040829273717027039237633495635492749623904305917285075512495597813453172819903091508712441208539108667379465128653769618074107507512748688106589981854448368891776287236306521121453474375078800719145607172143104725461956403466814140122523417423247338739726149385174999575131227067468054794693469712505424692203138827114931625507877839971781780058375580506981190013230227036281688556191043816786131179092172337018933686516571418452543444482974396845456296070648131282658015005680410089972348326317895581399576168548983373900437486119109548875445993069210712506419126862468378271384894183560198509885389184808515001753647546837205995115354643589859917168450065607956773223911551563171790853777188559741301301947825816516586339821216674918324217562626633419933570079064505490283047938427299484126014566845932347502989785975369031536675311912595572786557890822339973429116380435980629134454001098774484705602142758002905987417811975806210173551308520382328828392803157874808691917425493790953527377969639121505480416691761219495409389839604056971268076737335805203246396132365723708881189785946869011187062582645157076142664036793843417168593583440257509631086019629160331759055969420391541474158503089400732799704734820070686574609480051319006942025283061876043676428820989671068688258572127042673282623314373970446336566880318908796388435524716272466744964061979613267959705277436727033813529694058444369064716998488529019592081345460688782097343325985630905388301721453753258572877536701012193212239775081809984368753300964329255778060522033434069611573568423780270293704931757453821921447574705681074761610768219366355652181212149536138765079765484604220902026425773089802302848068912033047694603324290209269994943086563321298743084365322138762943765778308091360276950960814760216964452785057955656196857296756737004523686187505223308702892735431914575478572458764825096870575095667723372566766239649588562824016484528131629810576301558217648568130451725597139658984811917080233134367324143160729575712232688214075217014047574280448322705231376766156819206356867957195375140684332550393115808150220155229840607772700275227560913651208700414109255739985129300486886693611823472751076071022713801475083224228048959920146960590810447582854297295429158178714701539907437503246869345322803068320305797317014830335947993152550837412662086142872643915161705652189098344216800261131989587421764299508493487637092588114498431246458657820694126552418447460082077076611997804417158492246942456675958969630096308194319552035825077688531611704397577695709511065255505523958306248660169354258909362511602134922286061396268152381567750097513934899092396451822677413922866031601859252147650712767610463310834593110807877457156176815377341246340447366580571365947509249404342434071627863254954208517668203074749103467491715464933474958439198029212996776071688531998538945771219279342150768083446728291472569603152551008107745701632603641025151914736354680600997507581453249249418273032195138741534093146111730380409581696392196738428402921492771362855330659287436375144809013203115310047004658187978614691822946446987093445026143695436468757004156236090633114587184220789703316347997063906774090693833120103733751268788116191044422407100184400320125459820185507623758040278885006727185125939603120537064473507705956410255544718774950423556532778698896202058714309445014668252951267902954694747361111168271781316624446596927222532647351146851487945069689080218631181172004212947596798428706905206384821915862782764568946855265051610946338069257372383512735210310685839213827288262259820566656561111796186875638743898075154201823761971889556872303025981747016110287611619976112666953665010250200177922421043677137760973933478729801043679789892009026993549208246338087985906610813411783942600486750837756922671313467035834162815241686103748577140487480792284594901048982290111379966391622448650230484898318832126128519600651750964474343933336622459975657414445792270943642750571823114146475632909448576103420407046977916086660652001779697724953019462609627218900006694222144861063766536545950094129248427723863719464492484272248944413758008269959506572022063252669671952198013197514401924730438344530192936227536612559855687864150044074884752252718265203704011837148846063591158014284985646813087525027987834886260657412532149432377853222315999840644855491269107612465445791454226943552290626845920873987209756021486904159402576746273514257726358812502817002248327253901323168871571024378342268316712632603405356533173304793577492386879527644104368399839393806572176826505974245282642135482801503204428871115451940197306178462554332966361741284490544167928709977680234341213006097744778556265207946397367392040374291611214469004730281842941376932986228849748948664400234685049920028224317374370718809602512199486593122647005448480813132359153798259495665665858727898128204141031823196240237261896879914071930213713326417846761023229350737752013053591009983487015901045458538386189171790696595756666632633718185392233283070432389859190994135609554766666326881017789753986139374642615369735685041824363979136488879163362486169706193217668744262064331109805358093413184776020071453994790067838698538181968726015672341818903551781507414599819088679803529025738100768313068560008969587942133399084303691441941388826769726921656910290400279122244937040784760439729005490108833687375794842916154483165308546126003514637008982025360322588015524325797253673789236849396438009259985933930522566480729774570590275537902305614030968749218996620082891500138687210758302897782641780067748666033501359391367928436058096177161994299178944151803139461914921616492783867027624266091910814393727809233569360734088049672045027272903439414757102107012367873154909130011853060482264745654722024272914315523352549267512090439440321318255256571925054640310499271958418347131784067746058055622993255605580391542060291345759427295611605703322626068262297707418741349352527659978992785168100057021892080532761698592150466861173656310567868982074563623165701421061859725448504420576449382889967128001469787824364396573456207571508716653735602589073688415988263597486004602956216959112845863923573578513612544296447685369861472264833987243506556391390515121878963875577095833987893514509458097346271330959783951807958256925184801652684516200559079517609866265629665568945240327110506717779137344073383115248246069964264337657646840812577878250110099316327828589770590106782969438704154560426657407811358215366715997352046348390631449095816129659822696330119058788134437733421196166538654097244528369606161727240583554968877200024679900574913017347808896664057280232663583343189235138051290673045303487851031096012900006992504299919012359243784108996324656895465610554214967770558044985957043290018406092547764717078960748793346960689924050026199606165357684766197993986216690117670412130415657720430818776469602425542543257706694435165525669926848819887249172872701807275844713522063114572323435116991201772254300877644642530327279928613934302942871588882634952325443407183575476295649423029074779717506316123854724416640409212573547516091636006352511977281785725902091000558070749788009164770506103967566998658847945220299792461723271519512144844396468032995757822926956947247022056887775799002480386635030222942140573419953962205975922724835335589345828753068292546897805018120525045355606033937765496285441685137727837506730903938301809643936859602140884242473622052307465760994559355192229301023837902154807970126307280549128145219007190177379767829287714958828584441852649557119224945013728625529306742332550048191462250692433006476829053218376643580196059773256028186839043500590787966623618996802497576692729098270104235666451323824077479394344115963681752864296365362009608004550753911860778298303913446408483423948887423672207468317496132328871476898566967051249604716902635888952030915816282246421432589757395865555512181510914839183980241033480348932717345217078601912147325714350660043887627193295841308381608852162428268628599784451674282543404463587722044489333621552423940645257533154250410713479504750389500432545402197068791945521540518851104426191907532997223535910103441832394620982114811953281528182744899113939608087830726989888718545774316071683138963364550513099082835811027576814979113867311313112216224743877154449303408786760160006968625515506180855255643721022685654666740796133036994805106383253967931658755600282729957920206666022347155750747955679170353818345354806117136662223623744785700428463851772221686089759486522941610771992950389231601250616721431337088226114936423742279204258199113675219015973195022752237247608694872636368395201627067353120974518966033526505405120219553569638275269045441577749443954193713175264185380544267961776781123224080480254293771808113298831654189791512948772816380468821215040186174208940204471812371923637117606709658347272620400380442676905940864647825771145499193363393166402850109071674266458484320750712208069518763317898348063682987654453638937386068990908025348815105655636463110199542361086962666784830770967035503057689011739338682224212255164710921457942803697041241992136276373109334538879122395379328379727001104770402534240045118795056218404661154991381426689767248139026997462369759040002164568007335349838705381238626062159569158962007964275418524842186012470829357968039337716153768186023576423889581385729891313522572981607601707256781946838092827306192316990996532600579880179864549217051274423302892187897878381200071121382276437485142265021403850576781052933504324216407853521028256165695421555792806232176569633389771185212116549547032614468043127134494382625316930475183916679841007672240188827822597303732556101420909593212534519111036292033464583019034557190133084473631822282130764161910095557042805165718289630506922745507052864977075390242341565796429873181682128582210821053332277839743280729877932987180074546940931883663614074742290181788775936254961274130555164077300912050409043202231076811052859724728042464002449037624968597798357604044536253493537130723301910012214853292498697952661503506896089563289463592138233378569597119237617298610559771026085617934642119713493676561241049744227301774028233181748694444620255461624476545943375674601997985979272103825265233881271323320592798077542534136610345596799488546985486488842386628577507362204268349758454024793756463625539209609497564890513471064536934901145746788494007240056246661213824089127116498066847517430794324599075016238161949069284896846761267427381110485318548062678763536712089267861048074613656025738595794340883081722338276151158819349384745096635645443253887843372661133841623089067023243879899013982083178360138334622317754488157268887823458788297587408561090953716324262352570304961717177442137018233956722317117864234462524521058344718478726141727053090393451541511618460268450923098153645522706361329264787815871435975204543380393008852180322218265191089112464495630006364319015869946098536696002968974491959109333451338576275564840857198446821805750867213856381120556490644485081787288566765881316864827310124669775693059596970787515889742012987788876647450998933157306404903588054792465740818945336847540345129824341778275355209874473288964802101883754870468218716249611782315416855084439200695202653160368825296798477369482222990460992486367219521674634294228500025390110572900126538387791395839583026078751289617516328201557405792182330918449784943236627001245082203552131379502242578871135721059946760617290660000120048160628164396665987315244308365138087710691224894773395833422461387294313822308447801354964089302419763623455605766132459030219748549704531008194741810725973520933708451982290188793828061150767635103069418996766721603390712577005808594828879491401577188399308796163028283204605001423867460410006579936722393242451941577336571865810374898192560870466331511758829440406570696251461151361990750523844859354124403221233960525772617708119584238606780699150707518608301098127602477363482745889607105974890847577114253535902606322341886438629190282382387664394215979709507005543097507858818002971977706835058016635469077867850668283785317194323705324207362660979981428576439529091272080679024681495980604920559205928087916669014905135913215859188684680868180015984046476041983175808185940366599912348974674206212151029062628934163799283103113016216012274647728836502838907239176091892847074065108766038824646598412041972651634309506664497175774700980914896291157289640636383189596007116382781273627513516548322807210485413074395097595323160796949936601959116696303842738892121665157134169841948667017573417768364591692575479938207075404461637019259241972913557355495009401202980199078996689879710497436180628067405429823958977144945433998979736266189136814389935938544912273323698592118239342854497370992714585381194575616066119504192594867368464505986475904097873012829535421601833319222992077413113852844163857548013230423204645708902757465537620290700934950300640110028927876941736620907295431574445258466489266486418202240419695243061291167688819619395040326568761664407269317131051085706297163817951760340499994779380473334100184037784935990548265704197577064002203359937124359632093747853653695854369289106319645079972468116067287454514948879683874659063564949715859171423492970155849871545798858135172315251520435418027047025002467205903373958177394940133798838216280462242361737480403235416469987963496964342197408565433434631254698517662082468666908697826738117166176987316205871357308684396801224619155560085309019561781775367391856152431451392980467527680866050847765763286814825942596112278264207030945149936895001273521664906298658732304305494468959019610808308892588462025869809323513039332538606138636278716477125593651417316357706774447302798198656994435405766825115498074202677956533135717013906252665599163437262567291215488802457735526749035500961900855445627604539086432004718056031912959300850251727526702362378239495983469045279943832482398558414808099437124493904495602583289069952050931646868574503454758432019448401250591134685785926589659272665122600096669810358462907347049703991707386727357984535777938026663817057820319041883790886357182128815450148249171427049873189064095823478893394874063366832699830289875790651823864288592418021402114951816021877020679877185681031469811971044380155662012504177169786918764962032640129662350762065742823076193040817417256233500145313722869014951621210182877645933131476577724588102292963902436623265409020446960107206035102876809263413839874816582297498042877836609288842331056719377472349845310403425608953273863329307118775867874361604706244018914294931855156648917079751405820250537114651410792943044753799564931797168746194643369960405291883729081246707399648601263017742957194664011366827007476832790012154237911934174637031603639868407156214367884251154260474415508180943064214860474362827463447126927310328055375171378223002168944116276381825433340530283023384535524951057349556221393349671356828197076911129462320675870220561423314293449612425314161336981195718173544558569723437722268117510410749559590571673138737353937308096835470281168693983543312347885894193998289091823520563150499066696236725214374142478207714659372131849770109135564056684612933299827060795398543696794709576930757807264671557288352076155166187099164696374634602164761581713937864861956112030289691164944034989613058772584249683110443683197786823581295485935191345940953982776240549263748699136379843797663770198845581874201411479566575348174236323553193464945768320677328172947458667954351920168329938637892770788214342758489738784185400960408409394628261403425182045823175405314495335940023852204365421101015452285126717303748081967835116778458829578021301049828426781950874289587508787780248042391064537436779345120710520694463872069073544561754666906006862864017684130672987997274199311544035094499825728176935386781281111289098361459561071935452150758308544846457785563823506545781341900276152830138872358381726537829095195755240060801973045720552508702055432326248532672359550723863402579079203000764384172838557485031650215936231621137612341097619799484763040509030551005547699325764788477706189591764500999041865652437539389299295088549979068674496995841954757699375204240823839004409243243014299444580526969728928643426215516397167091723092588750103672777968870218927431958894447448042145470787364737637718689023320018734613000277532532463650240935116008861104747339429438570464986400550397527538157963655460900783374969751192968425645155844327899269154065912457956774907096463902770860770777741892252662396828756799818092591575956740005345952096673944108654462955552233453678246958148916740947508043801350739355992149400120338676292535675239202817393425839466710640229374492111002393463178366613261764377655435011409910777388451428049816695581306375784802254263063828273526491097238204316768467556122995184352041122420332509056423100828457565589934955835368627228270763912380644003292293274615767037604302615725555145372050696379993980909527406795869038358547069666368989087415472806631889539754770103740193222011741472127461007861920429076752987969207805837495314089379907962997392580605156607509263547614573886496630880214096222060266414776590989365218366280203254222752279155602325469174300156520933472930358053602548815949336549835475394632956657860202403413209559670261814071703731642707035936596769063914793204812224617866115310000400299177479583310777014264235799515838378554610013474437631600241690566220110762504694321714341344196320321411789509356652684287818608883708996195748275687370494436439172116423997434704446487505452000139034022350661607188172640157932324265405174416455460498614147840302646473663688338202319621769616029084794423719420589504731590638329436898324959197136991022944013111500993372346454208396419475337892431330911636074189697961942951398935204959769860719605318502236004483666885856644860433433053043212837088692977186567842183915319696219410304947668346336315778088472229971166617699865029070966879811108938599101059427471067517267567187898104754790594913001618107175742661157742919158869604846056385762949350373764003515410733683121853231241091841031870150624923359356575826797503051688622949468058718549519025609820218067108326591650437769238835840189762867486321929846763491672073838275536701971618952497885427626446554856736557110550836781308610043148333519500057233756374520602691227629164136117196846676324905338863258762744138245102205605586381345188942823722151964555722897461874268660860298579876491522289796706384451360503140373528394779178516625423718968716936214841293516166484261810649324807783996094653207877850211999472632746364626778228947254998782035431194897787849876793491739735131303897344606253602027079917165382811873792584070961425343948062198241901642818639073952865089329514574541014265978423671158164836571569058467940332029667719877251613608526211392503073847030774102606871894550047296970852200231998072191141915396260494418427007913085985367677713378758814596895325695878801195716862332540787255768598510942538626912661520006066217890667765382677152877153936094554378182503229171965673848834029999783690225020808482169566481937594800246188282590292512904857498768936663361417860232573776403172857907073071264352719337752539167603806197467735860018031570488551352476133263765363033670082109801396417557390322938432757085334612248782770196783243497434565093040710648178493196591290883382017789847588159986516428491354976227929229468971625669741842618718033672766129124337014227969657713391651583171464785980677348702788598270448652997260585833323555358899538472854493371442576996555842073110331859289843460918340165698521803262715440107197166677322642685488160882399585642659884893490045924990126013297552084443926441530456247127323203916600697567649218548354153935233101207686609337639073667042281846721882993956928663872255519951114918584733348014618733701095025971356318303946184215134989401041455604152603930647663646754331011885174684429377066277544217216289804294383777090278151548344315493761521094791304924750800645350333833118651495516598351881702935576228295766697823561296377838877085038845816735828683153050610495141099423587841440052736261600269307402565020172451266478743104054786549792009660695543790793761587130317577990960665478951822563275728577312045080571966787922482328416962308525878229461988767506008946549184829138892069847216129685957943656274656432745444619915790818801571640397582661878522268911902765957122552716423825164625931060195349810936919723356525846586546574777273764821796969575969165116885274151694749018638038011177539622387357501627290778653220040935086090281417121614614072052276824587255503680544416576232148359510311801040808267606238473045513595497507707086860772767518481678054749489715855222997090388263347291622182712443052628091816229432602950915260407916126754541765478279696372010097737190319230045523919228425305217451952289614725999647778535833371800569665377268400459707543858947819018871080839091852775950864750056876607812012516019801880417619056875477792984805246572289762028218760105810981582554229668393986973525460632168761712945253393970672418533206126914552124391187453573021175101912514913143571424341762368686061391664840237869658836104549006490938216415266011282638797220136579827234497515854427925884220379433894578153389900893697677672596612709590712746406083847954315649613159349381382058238143120612385414669388423502830713983577525171512425703058425612872664503970370551411318122989201892491041968263913842559370612940452424066853950126714213102217648859771588897431920410078844836171361147880367462666833918418698800844006515090233816345410569322012060044109500395497350587869083171106862772448007479067414527729848678508068216205339572705268675970379108956040035406131164589462822961706917988579161562197264892800825020617938639154919233680950506088112798444663171149833945336913630208157061622867278888446990166822685929503847743082522354893669153865345799551898773152801719082803707488362030028155662584472375133765290876045376847919245719247547212896505733701783386198863803798394882691359478448138383206668749155663977989536076120159700047014582859955665023664618060250231827604680120623999871884535418107182113767640783479774515475178616311319656025059220465722690316265805664356346504609827157444546741608760186003260814169960958164377981092077361844099439688893217012652173939173816788553674483335769417867007786728261324563665416859009272431061749062337955860872282179586944775053270429951746746171363148152833270197658429994784704952174743567219988911131723027512178884997216784583287947081294573415151812507050376411459430739270256635691876230693298699618178225052329262662178541459489766963007508671935663284083472096986313009324559380971739145545676541852627869189972104442484187747783792654997042175474447639225271938609717876610746250918818801652737316992904977301631647993702261650969050606086750361048655515644231241829453035013627569832982435969975986556582202626158003999581407429619159559763544839013283076623867279574075803698012696932533038285926724684619515608075891210896912892003772353088460246276772652751754856482712836561386766046353740149250754527446967895581342509150464279243561068066057350176038139862701692552105302425010016791352177097249607334728971676892933584176815906094410809030247948005490254082515344060498721927763056999287939516825250568120391639957035129685347715535643736232129132974014486395191585051694750183697065729867831590395690143541224160706393133555341832656235722317090448400939266167991288678903354923338806666864852564766633364713576151648941976343416820911867251531058263801177565437948262367285871753250645448089712913359370103029079697878017548371631910478962510828185879363940609847813982216991577921842348161979736303603368431038318520177156179070429270037925017214998132540173621827323312763765753771205326201468054745111069938771791205208609845168708148141791671944043220221039763406497347381811955783753309790631755721577988061253760692310907811577894224062972552375273763651094016012197938973182665935313054971018124179160226502904344428064563937328958278885625740550573151669834899481251626912130468723187917258534371637251428194607315894797048471690139272946923320898623213909775521574731317416734249781558101105639439349267643592486662355922547110471777089354363479191115620149726764263635393045358733499912269501362499841629270159727689850831202973984442333919282537250596832042145526854133072572015052382958487183294902598133547358580764381712798778875880829080379567177198618783142383810873532247799000302470575272471883737654484474704208077352224414177350390483892854102679694301650622960869061421187276840061285307208170784860213417885558206969597264630461875027537337683975004163377350521620639073840787258083999826222118963275589478886801865056291609616290400853703468604369270913176755457606363263512260421768564393449513764406512425424917124087450639983450065940602185898113193911143197898352777817649593842750376280668292418758666568071370680070972082897814168762852233720496046663801930276930539668095506889490236834804827328310866577958857487408729049185327316161437554652622101534273490667828607910485910768351319105702489985246531298146119653174811015526745044785565502332463695148312425200094566493685688211974521013200315054892970460313393205674602406346166942721131611633168124818097492867286962903725287395587532932499193865362071614473666086218072227145989855267991041347766830688472204939730567379648429435164326673250052867463784654781018381740012735438475061098582258443411114782466585366502970844470397302203097315657582169537169936803134494058095073604361264411840327779672565979207407376296634860503642208404585531983856768639556654436964335636876783036209194700095300842451735002608063148039074548426433636467741236342866550733122925430375456109100973160596484097465664052811672023418509956571388227025374199105539677763599636769160283708603821162855268210698965764519708094914539117164853836129968529166031015534000698192182310338948766395965102295500428693085245818247655584200296367456085155696701092694732686299417587449378200567250074485322024439985527206639027557210050893850856293907618280382790741673209246583501313173318569408042531123632177931018563001113178067203652263371578949067289364054359262769119641974758737595297095071392985986375455080725456437535466065683465380485241363827660543475655161647308810816049606156396615078772022308451736225748849283230361143980806924094245908718302757326705894998046443640561331301233576036009163480889658011800230991343923668839324246716806320717437225568565996487246709768300244346054911418940851413634576849239055200037735516856031907617107186309832915381503864733855378374957719962521084345141573292103690903314831533230818983306409184371818358531772437446948359823464566857282560816312007557633183570948792172231281584545305202284195412646258952768018290304752259418192473879705115516309301605684481533362418306286998970065093052746642770521846001723893642217036591617301483929846320268094093728231300919951867290990607751769623806096897686036373515784736576876776478876099404594150422435399842500076208604272707242614367818853816719669930589528197687958132371116460309723799859223547942887366996803808832270961324863725820553550827834859141776481904781723097456760728241610389430986494205189802315576776168238084317316087396788433437680815036067409854347947752819941719527200479244754874606671915211593731412718793595635117073082227283871844738484017796941175988197865457812392537633032754602227364801331461234267847654807366828086042339809926393941373558472619377456714664982977523274832746491513297318404948858225210459088130186977431688623537078396307561038421358321517203566108472424759140259854336334116336102620078069738040049999745352964961070064716122177915576163294422031801185772555906348853272313580751189870051250839347493286662524538077720714626909957634235077261600047556488505056455371637391907429862805138800601908348443141242745659418566370597267874498183096095463746717390042481684314072239322072889212419914361176620896649119568010103907766779862406505550812825884103557866873274993762413302848989526169510707780866853261647751563413086386297513987006169311974930556231668294196386855080475182836488581604862686608413675916654314794328861451934985780119062218799469178001505361970634639276717188222744055695271659904545412796081027217136866687377519780109219637765372072672162541871067375499176564736919116455172257655098396045807927267961563420180393778230677967962787245726833939098274223026079072991380802206566886698806222620600168408673684908336206761166849484681031844995104781947593950730580730621224251762263647173657368491412112165826139096414863114823555837809919236830604321279377590547562434731212512810760208358075286799879783455223885630746200507998613989054181939522059114223283004714849949434578040478025848579464478913895547692453209452711399109295379351156634298446398886656166294838651209668924445832722190800697574234877970987914117220705680424939683252483337147585605095999283794940989717181522870653590503914171486546800280514565375047946017531438174422877796320318283015289669953485372385672474313305834831203753976566557793595639964577526372923274872972245130905127481318969809590800894882053488165676369594791593782114382958198096452753491556095336164467860763999446505376531893599243829664760789588374412259746073270424651117363871185195363687072366032998070493284746462889232683696182037266764764160934050856685344338876522372719182614066016044917672324838420512128604106233272362000872299291315986204786033511521320464245710026697418712241988225799904476825674617324371428078781283926371227821450334576422235064189185648953902248442754747164753222770888688364307794233165619068993661193087945414064326645344373115779387601797929602712435894374797803372173092154586038774717876260359850008159254004247304819927496745057552385970187290583410819535962881985421643746438054680550138251200693128496446787779405820511587222545693642200456573893930255205816214648331056566152417317026754847714830849296588772330652977958800167738046476125771456701343267643447263975941958901771499829307862470431504117453707018257853444516436559320582336510554922077131376339313781361473590623918739931198781678800390415933793334372833795838025299707871650788400392859353382946702687496391664193361352767775143427217663551109709091596615229790696644685228953064508339224347809705701574823891747393343121551258292757260895411675421520310545129898955733563212020245996205311114677700021671942589974312422170515976954976061081998164384336993569660968499365288690903371535333100077314238557394733136313762194336393102550277905329764799891748072707559454210102037751449708709685815944121227193678972470126578054343295528112717749340903700839932466202559030857359516147390513354371771791757988965816009133307718048235184332661320288949351116153267654245265550615302313111461298587940826553014934318663220189113276804875113458813000742688423988153956723591801612739991139176501370793815479219572365721226676799047097084874594680987697499311625998113651710469643560322206045049187196500426223219948548239540728492428758162501696960489726259698297008322443959448115832908206702351058655644715570979607972122556805392724382155422001756115052245101613725225831660809194379512634490907583963260153215165151869028957728099318429483197122361344664859957783041114141429130266664253529527222667586378992422156958515787427394727422475726307236879445448377940332987471391346780438345181956574870699864084310682758319168856028173196953491807075350054147343519499089775202865020811356497349865845560536664019039147660204304900987014445023813591137946854776111962329562600118223864085059176285015052250257274492720713980509159010295986892477268940406883674963514091910674480866431231977925668843688155980773321320069743869791469813260461138999726057477207348405663245269739029826309753560030607546681670097157058064545068114883549385305289780065870317495880362555774159657094156877093104877163554311012821172712843939069568807862388161640131296256998347794797057178325394889983867880276754411448915186127706375502156476731258762308192723910141510034799639697040442683225193291681515444188257262456322768063299456504588267395650940404748713263209769496215667676295184914030620022090458495155309065188814138124004015046254152593729333372851566805201955339051773650562772809876847917894518011354217008538480678439792624766518233357408879803734323611081618329798909904547587317269379333422157677178718653180475083224706706796679084048248730300857400701857681776088444913089569441604552570775516257080116464037840888667388093880868253831122288463169021894813554037074188519074534234299053223536319020517744005083035727197043988141829079671323374828615949408705112336163728673697051502635749796773670023813590682110978954558496455996184961989573950979112540607737888714266893727138048530894472293130253340668479296013412183567800923951605409672189010376466992101759270494947202421087744907127692422226134311354163865896846311856755459690571111482355278241473851963849467915360566400742576097251031449885298604421679762828072605244579422054528829027748700897225646769934388242876666947650170619241672265744104614588288078188595519123058231364028009464654420242327965542508511617452960571116387811944623057778447842711321167505428495999160710144656074230234949974311121192912607640201630378975832855166616090570546262224142213453917099279191332006004001607484766809861979567114770430100942026551115068904432091156299123350859936636963608659021119383053619216788966493490818925325969415219734487565885818969628918162986041892450528285186497128776265713715388783331994213238959675300749096904019759955624140873835087499839952064308989108240519600165766871375882575295565917072004200354106209896961899247291670113370675595934051225758830594635769112051259017055308230453742158284733397688736391800393746072648148460190572712858019432737551326927581928396297945143594157055263638889594194989984841903600390620737468506917697654594588743923599210734489912509172867167258936891859813994493386382615346632152401952072821449488743261445406196827385680781018764130876078695389030241849308895794438850343329639287159357397396071268508539133201944966497577414080472728056658234918694791716147092146556529866349733312450329691430729432893942895041348156552915297488107958650902204549358963875670119839763001934847612816006920852830269851023502383568452087306007010018521922072439513563959769796666814991951463852911999186156428128018946837875168493713805063941963803021558185000319441366341271239477579132953041507018023828568402922412380107512492207747999151501991930036106184483469418283746897500664651859286683194684581138801904515615515698822841926801254161317115181421708804736219042146550484717243154507478704438009282441326227718286101141903512982674933186817415893417163872149896734668500100174511226841928286156273477112251639464960771170377044471881793473695539253252281000630721743716179371513985900825851753378031687575680395126675611406784607150531914596276052353445314960491620538678940631900791775894487002237632948541974784714942229092683304344655324290599246202873779305966774142402441024417473817684850748307019256657794800766405361576373119260283536180802427001395807732567354571091637941431130331153594170321515021886381565012222013379817643511220911874338141780355267271874183750755952017171277245667547031348080064226523861329471644868635271650495569107472864356272457466480317803109668436244844588412702857174042407107362226861689481071003983194759337856908362973104952076897076227960052184957362319933077909529055726598683669758767681551656109986707390888794575929161409889530146293949880777360332630238164615673154201208244997010526569101312730241661167857917400360055472517924147173906559851587119031420391153724332868518411416828322394350474264834790858855978840588441665654082751176888263695193502946934463242732760274889470565532888148859647725071237991010054895084174047615596335919984104313071092283975151831036111429452624520810565488617340144785073238509132658984253865924894981186722047649645584854733015285554684084801276603622917080778399391451845521973549494233711054456577837833116325811613693309455936703433271893805199821520039414422512665799259681122103750901133864953940517026168271766112470833600587834166506736258165797909413699629970942443300635809671479475178081692050518470163993339599113398808743370355693840879246881080201281166407068288452715297816222712961274566344452969679723449596526394642550525476912614821812281949022767184045052403312557156094202854178382046236615632661237678639384886660974950293362106158611998749616899267503527488023540461344942417871877798278879028257415176800238344701904822793042469316158983446340690832977619231612824475507048216314113953300001915945599100693470418388856503406375954607053233057490886819734512135281477480628677481737822908432324469940267793433756172291316305996835281360505593309328645919874071005658601327560599224684671188472566217111155024618167076707986991533787221814968104953535926874246982952039165203888121412300233336054797026727523775021047736079530728080005819055398094647487897832911213883947409217491021897018273855873334540846420308794556124955219349259058557290974082053912701826905611834539968978320377892469561260454649342953420194197235092391227210654565298498183216479708557112536955705696850500221272766585684549515377564217063471034299611167941184478131103032874331854582456002289272532643660095392561543906619253420411652236415184964014802449534468827253178466299234535347006862740721050323764221589510921025161901297240361129540563085577633312118860910172670972244632775274243037625772484618590533130931112197397246940715845485157380094693381432547589673308423496891889572946962094235276312786097594932771541266494912352331012735807832279520933039437889724346641774953393769522183006938700239801862488792045233905652365909180321945000980506261784947028899432636918790338535304670272887748038281966050187059949231708529871275560482652242349758532488071982983667076472120494640466343704941947730224220058446002315380255945609758342439407312269162816392434667898670521581503776368395744145873229031208131261853015226069114465174775424845251590320533095464594196313803847033239103456528033249084072124566777022638210059291752097667222747939570766625558382260026212941388356227925072813995404801760020563780700514235210356557921402664595490192680369832964652120181804191411099636905939122343599977901050877586776128885666768345660285395874804839901338757594920168530509105063942040860209264457903994814919930746176440527063492073303359982353856225710227310892082670083856969824539158781235241527239949945782533882737531262594555921519256455068628951252352423112382358221888379362854088917107852521693755869633224138225278236187273558361661049485629765467693422146251717489837949286727956448520102665943689732816901142000763698331612551061272569476807692427171308724796607124818583615200246026321657095838480347444612873237956903285816750693952375805384767655043987182234894296410540174822912119928797515584442057845911538656027468241668152649594577873571167641441305643627644476221712387145908394866761590687170480900593878907746318421355122732801104015133818773293101475380161464112222190479381067962453338780049437237013013846942647288724310091910497463351701160334193035645428478745846865105682493379632054907366980477703177375425033622407045132320720205238524811120193116703711560000383977009880248543518243775646573382592662584891143409229084551766985746900864622885263273896799004709714695557307285294710885735198529219263276889454546402173006955351539805792371831913777841980522985015105726723794861958579751522496121244706462473740830889536326816205738811930912456760363686508309186321065662270705356914617143597180578021351853577608128998110380765551295025829371093641661880657866655145787509651134507614361419050765091417642489919071804672798545006511912336572372569222792850980982156043109229837991422582973058513531934459821949682811954740516635660624179670334163168089419124426205722333722596075580738819620479174139177842789807502782474123402940352577628258351708947514166794779973104012210715471347866241622890653248731874140003546945241905158399355694972112335766005464122985050323472364548876359570499656200985675773491991365329514737572727083247777908326637156682721262248581640309684933578467188764711414840856141429541768681549749925246454078114962024976822650723638337162138698138430342017335367512265257341735253362073801964977133293590672024740131503803707567570799180447431370719357905222793054870762202825631613891329688405963513129140830675214508672668786484345982400036110368584688619094167350195787226382443234418612816703947253439986315841206598247044689055580134963614096758972574320391962299132237429504575638162519445772582112507379855079753494086231150753312497955883670997090547949238283195312930600134922614572182929986119223326493117114724792012979835723657586269859330010886510880587987036175248741364165792777563438456876844958525329508259621172471723134580721470245829161880387414150251203377151733029611451446810720673751127749297121012080742330505331751595731582530830689543865711712480972070993809231600450110671596223931163134941237755828453502659395028583789985727531707354798114268232733083495074150410347159300173921516262552773814533254376261889320796043601203612094214444230257413542008480393568434843380201302008353329871688269240952387012012228575929239207871327906343791052566154298931943744001197363358168760916894278097639086405190325691451765780027031859409639398229244332068630485084864638332026669132835222160205374522296615588788888369828935470335374396744300699910217753878361393425284114597365520324329970280595509947943967293399624520109849642473090473740603288257772837067650348208757411636861393030515379387716732385188368349841918179384296027967527200933298284127216028901747818637781897270436280263208554050277987756178010260178551862089446429140763626549484188124154590526263253980794115670123978511612654137165841136908297509353771743622566143213834617743378340842961934471412506911788560973952990429444773899174148106594415073938789310639056685561884984708021232191722331347813560471819873958137878105722421888428093579279074505072597004484622981489391985806563524824393288206532010884056771780321350199291625464347853815241346830996564538094791176430306797656750294890654341763631717871262881032898149164154418799313484252771914349902662765221904226254243781923137847951068840436946865892539490176824881306218885587247318611012835082852003560100888043837917218820785587950550745555678081477735401891501866347859040266640431568010311410116307529127577765443220029231898533480303995716225786227390900421753818455408942766891593905887890780047998741466997710247671650339260097330800218365644485827117063236053681133817618938736493562844849615143607433373895360895204277301940571311943374944077147997226445908475820588686809680877298433382704550585526671674600485516095321189884673685701843519517739675257842726089499728332072460037638948684468038378780349534560300308422411880661171060186606771811528516630784765275433627966101975273444998231780267215462064718968884951527593877869619646780491113190610477800680780799025646390068757688445713975132250788331575367269233064897674335954259410137518987226127585491244133542034919119793199763266248810231750610154219830959443463642318765337827011027950589588447009791428288920477978942013104033410460635517019349908940780853005150107171251690948439726370577619835022971063413422608015699552176879624794635736390607030953204314560421830537129558219090543468353033903779856826292583644885596299157261744253201592782637717421352759838282457763904471522872620094481473661703570939898746780563608927422655211206671008335254503972010826799552202440087087952077648185379488723276601402626857515546330338992323350136335973105250944397780292243644922080100826249635047481453814236077309202325639022729537559522348783680766210534498870503577025178295280794818901151974525499214741032454812686370737794267671496216051281334513442366732841984907644602342261708846202070657227265610231919973816035323244989496589351644516024838532654357188184246424203589663776717445371023053400378384192340985735175177200978833901969952699530957376395450957703447536042221190782079397500601559644861912663299090471052667955817630230051615797202509794957636459509702102191755896513136000037703788170664723140223526525557504962808181332245352761463399833261159789853878395849569854370062431879432371839070920952342251941350119506916892722415529489875093388313142444396968749416839416345631827027198094535551377971062774414523674600306738876219944424272174588982748378521064460725717500962169902364668886356499517192206391727057825435143571047370976550863236522751236041418092818715569244204596292366254604740271978853697802024035354651435119151412495449179348451755932444456144388548857711742726521150398436430098974878780960708215508866067701364766643582324345796451226706506688382256178327093204769398068219758839412548280915999370177002723174433805853500937130635972369804245243359792947162529948364614759060234100108946155734743821501263024504066669964731022866771521264574213416444551741633101502387515422155410211421694754784179767753581895500009924449271962977016007317073440456738075570146491773207424853497838787757018420388329441521524726573849017260388188042088549273651283168151556295698601105481078004684730054517465001401302877477887763255901279512138078579601717870221021070770925517594185547283206686205060986142459597942346949452229216901596845201473716607958538980508614270884531489459906031467876650235957616321190423770110461966523246186404792926943012947317240570153162552735190573718827516093351910731378279660006456053789226335466898666086289701297323137996699631058093340438485234819955371127627662539152915459937192573467491202019561216977582260478681645575943664063166615268951556731737640730134026073373050898611819172540028384413223723667765302422870627190262281347720619097230147764784481225207921710043565500240758097816516396668460866350458166122563902884926081605339888976177630292707791073001555098129915006386332069056789059331385936370613562608672024266936582889594508929374063232348060427614793691670982174942583168434938859464300859648100640965201258282915441459640051386752735484298313930957394826187138300546559121285883564066737881153238080390308309331963313818454668299312165652377236049089743543807743114097301818858738568438246741154047098446541121474174237525084098274490153786791387233712175499065512491546037423805663695676365793355768595194187234937188468927725247388592388342204688579446146351407634363531684332375817667643493587504003011807453920602916225534830748551252613754467647361634817763890223927992320741127251249786597968531255162222854816184743530679712169364179805793566229955802700363761481718258965927322723960770617922932394671718421790353198682248289759530463993103424276929421732995169372340019814931139565942877207190468469982807659689546290335669167655191076082799630319021075347866175285489166990359945878031819858698255816021331782980324413328157185002515800609243794064501431436985489099936380294285671457932817660923349239288841954709331256477513059721311773524578943737225781237303071282008081489986579262643840527473072403908374797766590331940502103923458159749301549793358597574909022088152818212392759294465607034677237742156592287692058506778236921194932774402414083805943264989140283756479398834910946155870805406397137192445624666096063447069349040301860004788055135048817934036973509129834054812249683953534478951825072547101822804932874721442230650209604643212771849326813463726745882791676462415202524281247127052268925727403011497081824337846236420996038839644114848652061789679131238478375844300909855774213583995293414520545798782015930648578049221063171729089189649166818772699269131979897493675401901478432422327648312006897993467932967621091375296093880617702832158622568026580604095840138017028880887266584914347814993817804698420473487249841610949681685277877826126283015308232632641315787770754302799546183039188149228707901029140249696931056078311159572407145155298527668520817088439256229739393610485816096880287107138781747230728015673378381983041699971584580324961994362002383779195044040417940101470001461495057322146553491709608040703496272874341890077693828815833430016908614013061106054069785820258375356598638290776276457415183120638055471366310156200992223532862089768938099009874231114613421210671654876851510862028370477820960437770175051313528463566882743145562154636915045528773607639134321146124246997578677955976661426850053208780240737383568075019047575344803647075287545620666723533841515552775799880147600570219582803378682902590948503475932779382744363436748526899862296641389097366384397030341729478841192751630220704129449017390309700277758742019351797363444971520717094898466025832338354556950887235521124854698250314170738903314018398893577083433369745373889037160346232644971589227980522644972812227083055456683928079791829257021540996942632972199274862290151178204522979177223913309092221680035808219120640664467674495807317643210392713360009219233693235357454750247667225803116933948425586890488380998024115336489973730478725759635819973324899335696615220147868177243916083082803196048660557184110064343706858780051064132479531094953308616808083170609010585040890339851534151661883474998767111327746654344223638948965521418347128958472485119576130451011767426603909681667779185442748194768408429524333815739561565414475242925202675156197421393228861713781479238055528767689180728890434993474597232374690793538587468135066216171913926623571296858168980793772092893514245329070901418208302871455830910405789746549529624951611315364097758830330554901205332599732458309547737839053296249295173597380026011492642788174837777316128572338143895999871044325607822795237660382222206878071675605258791520239922326594542016580385894900067787992771450883483046719106936498465246122544192193838502258804770930725577972923725579322594009093905525479140462667244961142826842978230725022368108974293769655540922236686295711589681730778467593990675921774528692836731358682539871774721114716678258664128013986588299174574594794206440724425358073935450712698953005510283039715255811898916372586891710059840085554988621974491087882078520149393844970019659665936054499009734274305431827008982196922640186977873826896925323160141876049054693265211789814884687610776082260568885668988240270061429371025962977337751135969398169604641322442796224554383517540234922364375029699146102924346942515595980043565243848735890915144675028833764871485487803521811783167593857797461858045211530365295842059177665525580318667241185086800994876483302438109383127405510749320084315540252155453994991735504312406018893958137685724907567119321285265864199505068450258454834701744452330615657610372126387605506563949313768011926010551485103791430954188343142379212672783274078797043776310413483334915871996485782840204421121418540824113508404499072914864607727274782450280952289873909466579201546485657104820177630414740856041832081617071041575505314437589629707616237932510946443238828932008283955566289940692273429520380414290100481168772690324830334439989537072159178630366878105318210816176566966757370017005670859834670241795131435189263617774926582353398777790737902622896610168116733759180048803906295390720104027367069605105391339583087945731835857841261426236125002880515838028246801212654350688971153675215359867743318336478686707109008831122585876209524425290903083654345923167574515597853892372809850958645339418543064859321311559607351735555102095522056724146931245296384325510263007113999530294498756638654802683887884399401277144566105942058692879145039215534328922606853728911752865702144759121149165347281540550916870851138831724298681300431569150443731582957624480896741833713239257105416396506792832303718818611435794540763638138662360773649032945992353689124692699272630308431855212096334350000694451794332101590059269662178469079126945514069634303411795130081083560738803195634481158955339022813050218056318010823576287099181129082437319655469665372811208402661758498032038415062276289199621566234206078749550782055708778888235576857502847316918913936962179779411605322322728895147235199974270667308769468105752899917406274533300334962176277448668763853870169099672495223332609192675116659151338374015972141404402783245348083664756174274021458049498607088662203127686076110238466975240876407600150521030243180527450374830884690226966785201574914275460049069503983971377394510226435315217704669299745428007234693560453356984787831391330846429116401785908075344211726134541880360917443199908233637259113728741729502188730817122806256056653404529197703362368273697779700153651436409713076248296497026908131675067737821538488829325597578312942544498614708134958839834544039757410638299108877859757707524846504103950929086132098257608444975518909579388044333782713745832144469359183553122700503145930578253470753483246038851199893819927939265077893577596978629611223353187300677618694142731388135131442355551403437561414379055877614852368758740186681212787215503479953255723501693801982407331756010691251095774583539806932822908616217816920323080965522093680952802426030387204175051563253604228709782754989805031699709853600958642490418955484551020359002671546288693079658543163171824536527542302884880660691494098186299286520865608214183231141691402444092283673671424230765172941920575275282407940042617470239608759316581276076896210935475464712343375194139367324544934588716903926550417217914062030953136036049278285968458829925280505511993990460950921237199151733043218136113239647020743629057206077043293684499823347993934989507368500689823072903531825329546053161844549542527453177405149248581240538900640392970694418608997074740050796000296357148087202820278136876822386632214191923486698034849192195329365995245955753269124525846721579026969772958034670815044789205106550289791053787632584410202537275681029570643674690938635029631609177797232537188732715694458975548042821393699279932258832117090040275755562024642248742076330614213021864321914962175807013953732176412120671559921735996526566390661657701811322626760513797068135764112037540168178954683149758053185081277708784569459746386389529039369975174758294990230645786411188206543988952033270136078574729652997944810341643117399940834069695842557780898935586850033202613952891955386187139755346042868754120623627720120570043037568975587915380500693898433538534231715774069024211111522066889113657403923414522465506378805890523772116624231909406668874600418110944505722773783988802017733875902074129372597431504493276609349841240726270788485401531868896904828011595932297788479443440827164561737947627332460213647703808224933367192522323163888944404924451490518056798491964149479921139260085904048150820856859358770659027505489833766717242147714056130674309723005822377028867225775713365832043220164892716042249628497462104558634420031950464045325857603456805840783821836401996432423692091211904651343852621592300883462005897542104453792672564504600437389939220191891635725582295868454186711335656849621340225621325538042003271468829801401189798295855146130775986261154420039662510499108665432002662240387031280591448048871893178204199561111424986531783027997964266157978188016411270252638133844038428138485749526538309189848970942538566237284618887758032330990917695152373215768568785897611713179312755212582280829480600473619052390736356390277834859550050048955901455539276474453159062333735216082039555483202908244927360145344901244784146019707880196375606902440711672794629768236648039590709305337616835353468836506740814452403386107799548970878345971744105400212611528200674143374415338639082734844092309331283393840110897469801725299150041928799114562204998618019671938095558727826014262209509052425647359561597231524454871992017060288304997000458026078788832172058011881215926065780983957729524731086252822061628262582261260182116813421300489786965533843664094576991051545547782742226555404409508100865213780914595092864590499488578036323775076105983959711677944382745514959065626273007498374737063643729196631656042202405262044146231301959040032209479882087711103879092408652065568054890340352222950470277163869655113877187998326087551002257634484968933865559797241938542769652156787889974385556665483054574489168399676009893505875071590417719600110303960683883682765413100214326104459133603517182659792378614991522921197237660809456240818434792895669238415749889800402386461077255918526439766187540280968429936548757027221655289240118514667655352194584873120432928499959257212484355819741930827709519809099958500525621268990903543200899706565673965300199769815452369349231646481389670561558802371646162821316983177906280975695331022215521481996996820355130985905674677970667341856433771847987612625707631177529697987403260690109839156426765091997996661389286388873929024360875339212643608449233918608689041352575281637744306807900942124807365387632802480405491916703107214135821120506788454693463428291955259917179976321824994378123716517093583836500178915396818823878377808057656093958932879317387805783729672775790770810797446507659725215030969593212164340441167282955724285985658881482880108389390845697319968003169140593177754907006979866390813963874523499281079488531455945942382178854364079609003314004357774150725290385076859203706219267883135750078856143944020288801740855106039877745542669376574271150264129813425255601887618041860158901999655714749295158549284287605995598886215500706463260201985936610114543199718131576739281244369826768176686985734414164382436589572037466543834272967937336387390275725335470182276038152491363048117981161106194969350840115701281611974731849431240836289337820457066616284197667553913092591437052640430612388741157034517364133037631736527742524662860230524402429560726252587058019710875676921934696171093863350538631285463354289796744404741099745288408603960243916421295955798447816762817879577315316481893408128438368193268574280428429100387140688018469105358283728311352285052228817102453489859292932684908593518020229236116420142457084249192558932408579666293968372231681902979595073050324316351877038654832643173753898799501922133036647200478988224027730194133929963693619855985098740028434888349910370549403580270911252600304029544886613297317156867280436179096727546829933246028090389931867771024268407041835670319903005160731066822597674462956582640455938310066357802037632699294625894890605867890629958664074387301049809822841765639240201211388083651846301179757163554046247555536533343330653341627866714634602782229960681807577288349650885919290417196764838125180020073077190829383765429604338835256039750150604644026246152143106414203451712352160688544699508945993266405218950234419270487342153523746893172566226822600785532417185831946011285806835336642735351885309797608176863924058636766556402859804004815560457667364015423277030498343504159514475660242522673004935976430641542699522946243881982301607719005246714678728256523501473580780472236048347706322265950662490958979360122474007288895100785773881416073610195721814698065074646739178008035296166079149407403291470253833122020639918393894473527605599371080264953068430090782586045690652573258305850624705195009174964168082419836992749578414893682251725412980195743988990980902082181418919171324934892532534892065168498886862811400359259426906201950959969555783705035842623059785691543298362359162817346812603096348541418526840460709814938152890214444438797958764188140604889980423285627498786965357920120391018028794828475164191006728886000991500855582946107687838562470294166925820134378885276300132466117540335398603866336040641711941926036868372606902824181437785445378039011982778663642103510403980367236591726851191959252275646366161269215453454563797819503513910793696741676369424410569062880756109392933073620747747056149476797805786971117116869966041403925417324416449460343763903496283597811303562056071308261752325797161214340091415841807972988103761717900703779470541709900833938418668292245976494091795931429744137111827948429599747831960882052318342574694215204784021098497075127312369564240551419168398336156134341941503439412028359349643800485778285941162009587434640205795712124012237310949156315986473966275081480232965278232442657497940787535478796262822809969698002313720867716443995556240582690873645837768231592475715656765801154013380929715794869007177824719811076503509883296738451206238372943120793080706775194541255377858643880465944551015242854031525744594568969412220243386578602877071898001773202498893049527461714011081825287517313647234451567709527942816767011621635136771447066633776625367904523966729811193936420505684297724089690168732036663768980025522742622682288455891489698832334725410340072524463439742376396414732698565530660446439369621873858607979695265112313550656080490705875442914358536863072560837707858439320159161545896023520998202737972698290412751910587972145002968691787430493468385424458079773853422139151947425333454806330694604269544093684149962661804921558863252580745995320493900854453535143695737156123834344111423934923450178395088643597268366803808742005112730621021507077864082719593521210008763290684060516936932445476738343285496668656914171033680804287869587641076528465288061246987873743573516204550558558574165913109094938609974461255186462776267546477345496030083066886801328091233825530934221198281423776533099243730270857193678175227005579720762164861295531447899453220301330739491068531085369478605725204237989068120099931499544642342906904922619654559889980618796717610209244510589923741889911604064777205820032726913698497800778807403316370708921794257807023800814632413993422896532388053208680455406996499108594899692662062881327855047133182421471180725913023126962155570644078117963658300908524315590525028414518606857750777525175767773005211854513763087607452395701949917777656007342947592478730430007762701438708914008561864360759129842197911472855120272243049560257152762288869591516873664546350584192265809049873025476969798500361930274511670967723732778768620041154677101467852452284293856242050248099314259859424945713460455258317185028953169527381802334262197881379057969224313260627294680856586512070669795532628715487540702470098048841370479195794433174333421435973517248533367888956078008138271702728133016904357895672731854748165184141105062682205920350821538843075212605483834624101586631478091008762472041012951491355478117286878791882837906513582046390743790542711247650561548916031569437083640301971435947331608076862443889069969033768397347259756591402504232723263280575379548248987486284330330063367580113423840481333969635209525411212707488798334972347521599435019464580704189948890266561145524415970070708207598879616861901543483922433101711160714512022647278652128935782086606182900202593971822081028079700973193416224973410595306272480958962898858463548686486717606802438791554143247890849321217328424313986858953263704619901280094463888345684768635523964218233574676451940867841849857629969487857299103429597315597917338538682302389509851844408100316188221830367880562614283448230445922558828701624112824439578040036309959868494793272320318136487989123680983205587778752602737166012781226145590020652996093831006717575937137212587489881142639003840465038247339487397132873965275774648826842536361473660975671251455665974889614572652597250518495669246884662265104360636753535308485080143231857164435459736546432518977911700246052723410020434695928833960041488960620286556954011536276700674127606818299114833859162382139377617540758768796888551220428804188569969912211071585768450415206076405174256449859151516169483179943982856738099736682215972339713410676677837625244491818266523357778474170678278585376188113022828654472445087066076234438584258431843285935877583098219597354634871738320931605192367895446554516127954575561025295124629594139097923320108692232260691494500354674916962938144675789684168202654217183097144371378596125920909897295200977625182879718369045281854826374433846203713547566104750993280051283410122745307085463744443975511905151809933902487580479805019558536050305580242881724990906849437601305980329341502326793796444734166812119687210167289923630665360411522353827285023418654279905157888706010317331131836376362843691869306454515523376390962194069933298144271028417925700501586221310878263764543240933751855727569925791921183427542702352364327054041688086861932377346313771308078999776537693048765848904131041915148560109311606847909168060540082920461884645125870288782703476515688587537899612106627344470414034163492012937650537657343401125352487675678668199126569091866223033044633404216768729561829681933923901272137793358214720171877340494263049647360131923986601323390067205397122571745534040433103744305736096474922542767694136881419905811645911507386131351618377838830893588811954247203421009170349791011361332429451024233334874139083461094130906854497780716152498296727675452401346350204729278160072445802083166490118841484751496999107727557124151619554508783734106316403707607080487625452216182460287495983265540080944578705510267255158730593597953168628865746413404379721715235839604993370436822768838595863450100810176456219112408176994398039280739112207736918432075283123749663313213483069766435485188865321385519824936653665177048082833849900514804984553616661392220438912355709428949901956013366146241994178292901762796813859965294352537539948980540645963964589956438554624903623117709894732335403335945019613467696269961308904503317101593000829070189227660932991758156443814521256427325613637574925320466091197717607402791203403083146130802263126909940659821621899758237043612021111739879473314458715196211365477401398901951444515609509731229301996442631073651272745909591107665305651149379474535716755067073292123444950567931615360509855166070453120912799102949851949585435420418460057437789387700722798455969142799762751218154869116868831356401202085598959482256869888364405110785031329712346405021440508402948780921038254087116044638994438451450384351380687867114914594690439863482954577163016225648973506574358527207349579958507990348278596912678762873348880399289590019100136394761938749112269221978147939754430651338252715364373642503342885676087223360545545360480646138975555742329635842137003503799820370955160441016855633231784453152768908660709132892172235600682210913168560655503714545670020984042013365224794417917328985719890788833384020983927235901926234685082772133050609181838131706702863774554898942770319694171284135659255311257259255874076334108819648381538515965428712568484316900425926762957836668359263584217657028101052055555899746054475318405016780708895487638082472098969490286820246798890881972341035826491146904139890730357368769908900308191134372395045496461972609616072695191200721974178720430705378314549470545313213411430608556422866063816726826254077245279142299971744435608646528719635262266508005946536196286755400673767843890261334375112878643081963109298494133002860884528531663996604338411429729068410112405069328125100759670728943473656880281658358056550549234312354438085986490979366699538723668900159166193325844734204274135812208152691563730951420721371577487171468990186434398634885991713701680662229497528759277481964895030624884154024850611573136603118463442318280738590469816371005186022731514718080100124523613021534078133403294888204463127707519478561011142215159246700808619316893475674965114562013721756531593444062633301157484901668267833304408014398997716673917525827447424094411690634072834229478072019347768482526443019715145646886380560503678843794771493908050056812846134286763060106462709867719645044802808048113202400481044781880286035300353447760525583264099437933884875865210503431651097260216726174310692490978365391366827096687022483816467103151920070923503327055200619302996266421450372967458876191583437724213778062943826130440482435193934635602485445358922321544689648439639971728548469384938401015274650350996573131877605398464164328559848644549353331612988424932336262558830135642588118781755038651502199006403791437204067047123868723739873218698512212712684657691233567741642742991265054560509315718204167651565892226793662410772480629838172127067869948708147725421892680814895020662545890900010205013235609614619449219643935941436201325128534554317609975311657220847843379852252255808444850453328104954603955583673050403141547016233498885387024673310591097261960473344407737570471483924202677503704489941161563552209841082709384097906566595419487837373836075747283095202575901230177469346514167661369210372173470438299680548949997650117000827945658119778092907766174466648381258037686838525368524340173949944313749915513432007718466623326916090999945922583908052651768638137464849247583614429260908795648554296148501203146278394499867055591114670346375235893925045004316149215693840636643699388967109648258165353513001033172298309602642273308470335427703707415596023125111769698298918903979817345527296152699699189110838599631442650069612011378876103058844129923976835752745858246582567304907930183088844154494675751102730341678765994708592337037284438037831922019809978624463685901635060792561001695911478210480855936820681865821524488009637577586674684374291138889159484285162657241761359514726272310725185777657068542770832164567100408089254544862060910521660853078036776760248928354034463472518825133976671831662304934581526640377685718586070203695323114126895717017137871526992010842109949431248783778866278328563757978098240942571094047616848234425845709613055766010013098120754656111238657624874527343748546433038580098861444791531381912637540200004734208075720079841315275368315724155761896277908633860418606448018895859711240198137072277213701519645583663998603315926038408286707360556156238367986716576165031641360104457160670862091251043470740889794012835542992712188608103545199778006560177905982250571835140349239990402476955362029578772033914688713035533528843106349690427561038118137456763296820783876849585369700168925559186316609907747953800877581222919180256253251779467210520976219787672362645276148237367729419387607414411006066162018791365460860273174652063522378664519281491776789432715106948518380541955415018054992301141244323885262178202435457586909568472781821774103113737964941654214780764727388216909025487316919557686048885398039820885068977627988885636758886565030888199535824214280631738736143819523039704235198773534802883715420502502651264512726908103178218993739091275135128038014983970239569032471803671874031829921151951928506791720941305180271815168267689156415076775517820267609400627668251272117668874427802229672255627668002698963836631947148047753242840664290887640052645440359630366791026465485569594351729722364802801582224505131248472085972183972987202397044078770924460450341077546047404156171948267745405516761171785978974104831430083613558956734496181582839007547875442723498625321590483996034414612166971876419190699322567609673235295771160942847841157708375507359742860815947517387155989776470146805587119873933119213893057017412023140213974404623609188650814557726011543857842062953587085108570604168557516349701357582422399679126592664409299022402831115519857165124108294948419555557043688061074360026318129068485938359279032044339186202567117487630583812134596484767807751801820961865557911373085981343236037913173686180937747754149321702948364742171198339205863104642299901254861354011966449556078823638583617860297365836689743736959170790291788800646267103617433403426700702725929545388970349556844702038210762021760646504829291918930859043937699360985914125280055677412091103606820139630756765091752893455244016972404822780167463153051313512771019632900455297851167478199340881355856616282943964861527860826449241079071416915252600960242261447461245130924528404382742234468170388832945658169044404575040067096329135812285603434558926345214316600535320919668218711213364817358287428534624753758317391895364643175690690613362121962054953936460974342313723253149956055452292332334091155891005096801671985732213041201333809158528894387210253535105425455530240849889985251684689412546956948010325470514255270295810245284901066691659455847863846268484946343999464333545778709074881549457620780716012658742333863558148334743702760857386256654642407569307071932804052675103124632953077518618664256892269789013342507692580750225168128744122954603716227132165611826975130190017099918256168222800492013730487447276204069081633764764421593315495474160068501344666525274234750472420144060516398484720333218701413360685504053026041704029792450872464341426403119929664342964984654628633513184775021860583794700829699316242617715004497767495036148907099994197728093737405314456125836319706426997990277448771242273165473715226174765916828727489178654473878187251852958028641816411790476567227015425791901292986029405962165629482244077180231947451052520705226155773989322954914317450016338982589307885492159505279505085122417018663018126189598125818006280387484425157951885752482023045522932931384287802592708676785403367157320420865274017294059647957116053522211305161670512689005297937226895184874636889924275449643613846672093752999940949264713671423852242517948977510094102650880137536150072911889358840322913789284753510756348461125628104125866058334122098286704842361354311391095445666546328279282967823379161497520150539655576864141372727245112825235907354704520985485203539027849543821095084530321670280629123454013956149566016225528956615845201658226504201229337047455076747890419798124134686890736258436115056823168880084611811962243038605222484459789378010266046435096436308455651776433255709883594242499409612012349367884256205263102681434712256088057967366866762186789565833866076350869242640838019312255129319551394146894385379095815645652878689793873794896592257053288838287809804345166243053162870899652856045357064917339329887623410425084139797238302261369686263012259221138652770601588918012815154073695828509268413709915707941012221813349970738816090167190462750472801907688381743159444293761287429284941599054303110738977637123277411532167628060981220560690191321012523592920319325192892214718861099895790545884979018780480800107129244097376983588968020105352843561600031361665704662866410980361815852339093113708289181555515354996751431857682587391974956836268505325833978630909085432510491108094488665552743736181414474121519343459931894620727184444223823362962976902949019545343090255146528056164160755872676884676143039663548179146679908261488134335974031756435409350691013208577485000987326744632422262866237750892018661334544940538478849211806540407581913707832323659143569938820944528963360072742095224667096600002629535997047143563180199420980678853167699271242177267997745804609655968284868300804533703789651470324807726815959655626797675611398468944700359553837397671281617960131375481057815675306661114921329618842696652109238061025956056286648213196094608030275082423974158709395860536016206598859957918910386553146838129429406073197721942953763627947137604559882358220528872475937494149358220325594855720642168186395377122479643479015829016300326895361562602885579133068300831434247597587392162035462149677211783394866426883246486682451215696317764709609676498771560209178169556964834141893946018872947272015998476590093757639733543708107076430004900787015539721731303343029473896778056345437286044069657411503039884380612874693652395168104600803629630927877874339882724310060719522062793531213714636074830783449004294918581620236870543147442287064133381391844240152919749658022869233588601194299761513866795646758841990278434488408597991134577453841502095559746763289159079168879320331467035511170091281599346568521598887084068250954822919285708751712794829955978139819602158516988049866237757244833447612208509909028521610048187547820878473640618153243494692793692207343210586185203656097016313084081568422461575807959437480987450385928148666584715681836316405915615617771271650927820744522873576083619826192209533462811410447170531470607396002854775520343581743566356037588745623529708855856578304300043326264608866657556827760266514000877942961668370014904560145006503973176590763875728559942876826887653466158783703768006678369938933777107605708015965814721936654609387789646472415713157764750444273674505122577468101731338645922711317239890080418813680328383917177325179393858866250571112135739333293569974929281187152091417174158931420746289275903985141631052612553286333556256448055565544612336798429477939041910553442615263691263845016283337264128861753800418422443471169677174887615489181061131218607869321727885593334200851609294460902039927931209913503749499617465448440767287454554373896696022937920792584078279451660320838691292739230369991008910290002794312140202154062222901111214626476700560569862772299783144451623396374885596230812801096959695328055065289908756844356279858707017879155480760276826169419209221944023875002627128496328502803935666529829411164565399923086171724226644457416494877928958282958507928858601695445774218211724918232975866737948911381177850421147328334131750602150206057386540432413321053234920968407139406263555512187638238822790998615124545925252342825848226492446987437553092006163062393361809102506448699884768360871077041706275158981619787128119716410486447536095869399568290003697711482689767021074307881372850648642963717530518583405366851287707655194223096323539786138789433642030224163059848256394116615335616090614812425164394534470762955773847582523606815834887508626626221148149226597476455535966710219250976169086516919645618819641790194900727650170978842298418875282215326585419745801795395377957613832689393211864019753505502165160339708633699976576597100069209302555714292691058998774820598720575384463463117968654658392172583602970899548463537617872688000784599884255223619089446997700611617727076777727142904987001210252991805955836496194258334832169843766638094031242250553399445319976592220028994222308888660122865744541269061783792425900175046986260328257698121586665855696670147873617339103681560309804021372684986999242667190286112226057301560315776761926439842567401061046059400733818041459602319728949420258874518860772851984566635692762067317125000384690272885623194398721932834066626402147235654954711592771018585617460396265246139657749347763938036320349854250762589530342186908456809706003308558397318129314753426927496566327507336255796193464629778133025383337024994086396466068639117536621203298785306694768160782403609562869348445592263366179119141407848754734554686240182151461917595955491181859505117106848841229255084960576207989826056447859006368991336021960010842514450065407384973064147835614832726659223838228292530458847500464622909052876977613672572553691810793060957427874122129816960750070100704165458406207292724919756222021570124999024515909837205705830073063615801170920452831372251760851483254252284607151202933198288905929087913997484403516746212460090212360465016379998782107223070131017202766623075368698155856764492437813469726903295968954132440978111298868478735124356649764758347608811276959638770131406715320826600614997184763820298552429638515777826894936900529991102418108998938693177460619975990502362429524092724422855517972407960409131592505372702557946644715180242652013151957489514227005559890569082829878953762843486371207079112207446924194174509848770379749621327510215604434740674794385518926175213021736639219332280462976624697172696777919129254531412160966943507899566105136352467676585499722891956827828920477859102679199930100032196113061563437525757247512454853947431291381669509617602234504515095510310876225262374293574242451675182913221298532777163531615843181042410423338053034718116072088601827839610073413249825097048148469164500549741577911643159473998703865153610810481340739573046479602014593310198293496102229459374667138012080220437157021732235678534905593448799715994780291566411412819779214854050658466986126544455445923398792087224297291932869462339125014853524321269848474567336470676726109347197614601380236325214060298974873100465800100811595860648042266895828721797134061660208532365603681453621026110164040686216472724742754052430296107568500797273781138712955278920636250668120625473130873468669872368547064187716099634705891052456387301348457735956708442750645987981227676575423183984435281609668047102621146192300983923839708127822732748012980389632597714807960335642706976488264868669111567229523342003188075232562668424213592942656831374389873735097208488816934864002450586768390522834540695279610928023839993845331510423730260583106630266881499547170508035962935555430818483657983590798576384182380845287027077400998922930869456302659667310055957631561190057496535474682767426108346187639868997150095519466051076495161165174335561503087914069961962712271277695923899928089516414820707646539637417397055756969684854517194127221217871520340093124329791515332489544813404078951409403804245512609621926398219989296424762182451251442600695132878434711808400264886994018044106244926077624703489688373312746801911139098547874612472666593944577127848861431588042957436838871196532504887403374814436396467230088876098942783486073632896479254580390316626114080467379721116972890466864429797993236663058427568902952893526275615668095640154082559802857459549932662384426850614191788186457015868351977472163359852931047317958461326648980006781144329380821911707141992182235660584682969311091583121886565177615081734013186481616428615638670031734540750685368691760176403934968839431450091443938985859391765199160332759007530952769195024194733023628593823864944900840616980297117841882323489021071128662290439738370804425529025344139579012574724004118878449223840617924021688645643704931689271400373521068202813936059824187037697579011580655184571083532993839445763340491124895479727958925891588095340367078008965469596296724251032134864526321083236261038915839466017876172397203707094501280919107036893698126209759153260052576979678188893222921667601347000230308829047225862672468751702507717745622041186906103441093462002801533888869827485724280456247069275847408768287863911476433413925162996173000324690064512623680225377152669030468822225309208717539850621708384499060889198669448109873416105471180615613760839916969335122733416322775342582335710959978824206479250307290017649833219637212728053297364778110089515806941497723053650064098703226981188626568458023768652834714999028314668835350591374513047114989684809895935322843288701375956450250237069695796772132924623142974319589065202707805030622405885146778951751673522751126254449152606496653434777448248191626114150840857982160519163967682284578956474079754247265500899885464260838645697453232201165159035391120254458743695739119965858225377824399091041223260555513857894804320242179003891888247286845092863747991791829303725513736331529206196358842512319998228247774372823780602699264845217878608635597319187748940931851275974809814382257753931030234312397505601273889022157341793835177263744404999202751773240786045336649813652713771222618843311891633714515782014625985864326777027072237229510684735336006960691116025766746739435855698307858444191664548729038863937398270746051196802568938011775984551780164025456236227128859283472529934488430315246269123809582558873435946471696391139374128491677869669091032736815897448410811335534107491067291464717833939299485508259333656999179034601266963041319196850207527172189045493381442781276221112539246385579768376741222747875503178366439659424927205544047837639315021675187080753643136099369363461999557851184064197813823633186405220626051903366494436925965801699076848633265105675953316868596064309779545537627491620538686101625735059801565920350002831372974177532485488247053628890759434882393976266935912701186598202692566279749205868979479130351525140346998687270796163297473520144866227211383989932434948853607994289867292072716513264327361272501333932184691552950623114300570266171198820590311120325328615998907090248322668821536817603591856677686562915887005508778795596615913474686710358525338916685010220424703955422779114928733986855298831368460194312988410986943405503412884252711173950547488983862146399660036310810786361717497471348225550618285306664369379767024913432192055948240564751922661126438962183458346588762393740501060382677528111898544859365946427150592042054425607999709665280380878197339875033322157542320702029915814396348477765477572692767491032552393115274014662195846245171152239335531868942251417521912729553447524133440236868175545786859259331570146434215989358308243565542892685685085554707240577976529198607348123176435843512484822238785643034981226849243279596481760664696406473948500531021428296242381992079922775759670301808647978865755784703021373268283961038114849824311846167878095218179337957040566405649169064820171471163385499270758879256167704504401943727687584616866094454741403830117523124714295931611645665928365694717610951206374599717995345218709460878298267719848407246595547976010482592505994983115886726322593688809119865581985962945335132875648685187937606318911878620028537064812270369097892446163073654246673739315890916475569991131735438159365952763131255794865934058505224333925071006083643515092224950459647264172912439650570303084422304063265485045758167876604025431125668299452285641951302527277586919754868600566252455613069404303862140878538258336165705068086961395156499226344238707319100003532221731925003048903165880967062651416182880042874047647795502441618469275846032338076993489519546248651827661956508059024885706783463349736630590745621614753249889571102212727324501867461875489322078870815645207573357159811186169827236272512309880219931227428523727367489498100694709597475963275484614486186876971324182740767508789570331484286693543528222393304337551844823259305529515837547839725875881913369456207941937571875899014294383829413406668220701892479776528886074107127591385595570216692580379870259329314089922684323827178499460319145632043454106086506696126634220676178079007766881238726840849311773042703095052157150678220954846458096345140152840828341054022964747267001498246972337936658458354167174709834680579451280112504520174920566289694245058885625595946629600945500303849861699609270152495709785543082755198755701947742181753999604349998279932432057604880500347031947824430879951851050506503164209385643466821885279674619877790708445229187920526591457207204411374194548323655075382902005049047993964280425842440531184902836780476898505422652740757030574338013654311926195496882049929704650060265155166677651252744620936964044445850124463771542425223730815923750778355932743105560249720599795717354951388053764323889110590899566889219386622020029022522994033790454410304235258384399257195971877017522941715480208448867258613621127556643739284266898201947212942046562643714867881688111671784805221492903961468060098500725763611116551600948681871568076907707171621127980276658003089220847076592717943040782192011224568143270510992953040065651308836281112938453901220158251531087958852425187357271368652122138363123716784641366044452789945721466225074287784616810119400715182110340422851608230084197492739753411436108520030694737868199256795472698557338949857404479783470854697829365482403759796700232506911554696160931804378492309302546350983745566115257916226432898666560105225074948065760107651519930692541007941015310465418738545615914025206456096094333795724883765449658877025043569343407366889527773864673862354733343435574527820901760224216413222117534952688749423597503218928153604585723923291146767834004676024131839922640617451315819407834512582770722304718872300631081567206189425553481736579396234739511857295038465031753960637338762788168975744596109972178889039505122259700435984712597604329225066495381882739031469162152662089682309834179889023911495316142828990899206681038664326341600926560305509576110360282761579537373018064819599494102698726000888857993459433090622334209608600605042723375445085090679420633677832997119118494479075058057919565036639175177267414446992759535517042900946678404843943200179202440435505546431373767249304394637790789575152115003112472769210625864320578767099113083878781626012917406644743489860152419196671523470092200331440041678666477897307069168477460853114637006574542086546084624211943521227490847283751652128812487020632630519581169978925182743098781883591457990230776734906698919626753716859187044660091553513541066592647466791355129857591467246054516752788830431884560857474296539146741726138542509077850786607371409279708493831864498814572308726259597262567244683110599622162490816079671964864054609405966210480649215880654953392628065125359905398702574707080619698244953284066531664031261026126724232641706845796303877543672398827450733711419020568731760196031429823013082240953751429865623944282907911681964807227140227042271889525557864681676787342762876430173167908999418113081618742992959188627342701344930199456470275854089353360002388655298119218869717299332622760768721780359375532784578741499168107083584981853149131041306842924807505573859698572420833958146941641470672825522675072117411600694138225293840333906172446590223096400897020121767092640514921732489480432401116556274312783859488058310848359095168112070052855351116730254573767898103073554984516695846178608357148463121116643282622042219195171041568944370263983328136287904905119541893067012397585486483345219903927347300362898085042399622670025831754455677852357596989837943124070024925330344036863565297051572855301640668879784779729599755480027278854462552510018071658754669042684831838611336319080138344289752335845093532869590639745607034181577041883858976417235414394174200111419173547463120262961788006651946889272788373997800363992599301709492095022176975735694134169606663106190994314044571397487814427660507527547865337668887974496687948149085205528273432031091579055312348736790890475597892006279735258250313223874074169584138079239344399138043079962067585209106124531074760604906259491704457628886601824356069304173342056623931858285206575314620126818955666718517998754303122043860635689538307669611285160745528645344938394309822656737451116210419481605237261812189229758492475305242877074235688380785854563252353175131029604464195833903473852015478526666559426542976372644935023715945907798877918855609510789013802379742526673893469579875896545352306636151545806340796497940697262206883683215973973029158456173849928367858826594353682510518668215200040361206755588089191506416403746036576659029764456422175603203099066870664877096269573532872664654988663591180213787861264269033957143190246647572856141245564165427324040859987867344773680644969008721862623877491013219844323978987987032720678115227083789032748252657088013977891557262867852210365620818183068533012887868369915562346922816599846126705354749657379196096041120439308943593067105197471791750207451084203449286499208594651464302880539135885048230109529331852954389150838335338526910202430003259165389461364835102478374893203786705480167350834278413605768682608951178773298567203690410621483459444949870361906471298810895489787522142969859444432696610213527035315817822390706577352571091138468477426062547223989123047450231136959565567244726361857898771670891528211805567541167814445577414418039511986141448975807070507717612688944721697960647734665763712592354828487703728879201238742722039916544364759338393106890838907500503093868126402761522192649690969818244162075757699472108332249169506679432384274212756175688094485041040050570026836558699794373755912690011519827858571441556531148771312398577336126497567542763759147885892917946262813973559241907694827212355009417042747841411480150153498875954565736016384239320643013127687034496380329974709399233438124926513895384276764844878819582824498988378605082468828909788656931112857021603841025600930830952998419991411431601393554671244237742643877304694393958299211136876984186935805040352040782917803416300889705588044102584995530521026166512166472431247603731239715262150693454982203923757417877122680949318019995507861307492522638025717858962058732216214284785555734947652142904404596931947784365324989702834648147252146472702484782692354815359051576677553151373800592914180906686884092837172789938938247477297166615871474241148745178211374993472841498693570980866599384725520826121077535340254531800270840817334488075761263481807124792357950080741827099564295217381121977960374529732985393229562507449023629045700247622350908979715214473199802684908572424510421817883629720474814241909735779690320661475670335158023916900236719892023726359082426093788455119136209860960993901615999746877455695407678298766757768165976062588836312643847280637708378864775668655327415504265826535724465049208781297591215261669368025427298005021826214913320532938552838243860010893350274962002950884320986005075770544263987183666972307348732088433009541810523352037738896898368509045624703728055088513510025179889457082575290415296842058153062267122153874942473524304719408205502869368200317798208719775418887501716260828580800163216794625336197225175352560973569339253425450027337142410539520064184448620473130445272136943519689997662097989317678816299889123620424855213570213747481172747105199629742419322982356882479613116206520444740753337666510305659850138333152224481008840241510247133258621327958136862831198480971413286387813503763833940279490707920962904924445180011600466681226020675145740859421423570415057237843324573231856376685802859785613528344565213962027888604778673537111717101492430186578536213519143616459185464780102756701292609292750454658328959640096062743353245310453687139264617330312758541506696780773907514760182175930220840788745762534148790726447728858364899265622265351404308172375087789216000826138773135128069991108010097354935378882801415667519826392272715361854693203454608746851418374705846927455855472061117223393541734586377584267374208753153461803916906621809262379667736394488375932205004015561132624086937039631700772238700009220580025957373085543092678649799948830786118208780672815020092939136897392575409550029573950579585277084588058813107069420891145808077025700953424983705158370959861577999121544388089786075467522740317069250915825674033984531000111898718208681411895403833110403646156782177756275975741491443953725301008472827857842627550000709690724051216002914798013015902617588852569831521554813686920341151746578623284810534500988264782175150708527000509499349667945247278506088633729187197136182263491165909458420777931234461386237149425839131097607929588778866514620160128480653070431611953816929584661893603967852462186433163028786105745190532762817411336286270247693727484045164470261524451471523713347078560090290757678783729985652291552086814738298084562130983210377461617670897805975151714014639213820851113640679215932830012909329457005944355825072823860299926963654095194573913554779901022798441942718817377581010000957731112474332902116152338260860141531745220563161977294640606038460246637997759856336400631275564174715114788765567203148352675587879747830883413402420052607603780663656375463099079588483892429007466263328279246306783682723366091232434908229093342713277940883710590047045857791844758736045233252245773672368495107254018493943024762620629229787712685047016979991122462128333291438467638572349632781962297384113688874834966850991754153580794575733589982851690589234061820378229085337073185247734787348021786623182186593991841040550209620822442857002039664070333807459442827964227564841913908441478659157459305662161859836823307819267258395997692298350605097783346179225432274129131434616462071543266777157988890845991029505673584167673161498936150261161676597295904112592901073313588203683946640200260716173364364342452317622095166550136317215201736631172603339424700111983323343128777858996262434564904651404560088712855082173557902969319711405205093670902515448428169046219634316812139016175213701093828382607056240094185686421175753603715575390907061042520271836650461523398635884646112052439727033346358087659071691808300427004237070227100655624595149046452003682371278595977629665233389374644994354827291272643956737540217991609376073871070897307200703912034755400073015440143297901611584378964998329424512483756825983754993986387507468151631736745643601696095593244091288928575062432258262623701664103573729562627267841402224720920780402248095089805114313426848295931457012604832343533097062020069719956528797915026026138192216920885755053902250106867381573109504626462038180214146384750113463928221372710294336560145581885318418085176088301657583970895093627335998988655672064554649710102913383804489493880455070711609930165670910657544303427445537971031144516089937454568228432352928451373039969199693143773158428654450918580295100433801454914567412976200628153275341504402601387055089348296756324132639596034415763799075768241599072157148275836269037798896509183732077965612928383390232650903627236961835425629466459938323689959106060341619112851738072647041434726833166537529222613973924412505464991484886358551849863838683202448174464017267415387200428025711729931242845148534165639023476140950391785990205166479709132522798611119894178418645381639948758572763948842068399701296869061555749448455786427204099928877287862025491011490000391074968216554184957787021465873785375595584744995084220864592139870982510729185082214288262179847417697421961989971149664292947980895169884704649468650576690342821207884599619372762430750132104282471384867901102582744060523451387338325629099797968416713290788793901706581441126902426682952834228686757360979886707260643676432933771602209187704523475462547773287611015650229508023289062583675149973261294905541467956682161660474396519495864081535833905839679461202350475721115765499640246186108907571934507379499516098903331771417368070554454977963467250081277248552380653858725007675874486442518924922464203000217616039965742787478913703451307384964174662883094771249524413494746682859718445343451337754923546542116547584527674923282725206703619166377135474142407053612366854964385552203461869677839124644320105532789633974498090512844653828994271939410511994188820077018600019153140915969130439304777063986401343330049505808330472837582420990703463255145519548447329175016622068057192203088185813326030178288563010752852108855259354870158788648089604306277045508882090212375145478607350564939002310344521623280783871559750679432122407269199473656694033116681618795712596599164427292080339930208454809598041338059722091530580235697425765500593519821848527031908999216759131160049930251592656995712033274451457766013395830430578220331749603698722435421578627788084794945252023651288277614106730257091148240661200058081464857709725336458784925887746457385952394892702975290459459043045202136358201612050133776399581631682863933460308624067766545106010112640133589179852643618996840576092567756546203965558850567240318559023128663663737637393887584279679397314062980775928329226933383670375876459186415019303794694334747075584661317954792169560568014062487723808779477934524941898352397486578285093565663585892591278581466253396104393117485901775246440419331599884431986281079512947308050127485287946142126979034745917212774646744411030831476433014178612323721490829466998903587786803275673506848457902901621321544650081075247577952499590042031476781598021258452205991620991542003466685166549177032011820485801776407745964579174184390281089704704367528892891513477922850269014559976479444935253720141602405572201153233401949652511326403107040196885319038356302270605134921387537505275724871208678926213630841717546463771579787346456158603691063885369589148246475045110607044357262873464700020826050320641234310487966689782304260009152576941309463527883951673773918346335050864880943119179835406314199623651845548695060952543460794717374172477341689053652866058595103540057684774307179067327335631192740235219315182002439870810758376462310912436457995960109874564430527643197615882475078063525445678735001402815992373289177375237132469252209505630707184507315562033353382779581263931898610129008861041246921113341371938771013612033710555246087393945220050451979656444258321490922492798055993051910329012791593887643401797833610433470451916774213329199468174715396180526087738471479747752233542420353224020538820756578706919111868001388753952865153567036770274081194546379763127258209181792845502871611205588106828367834841516425729938587113547088515815198249311454431880789427732966896797985241075997930946935673487709330351879725907986791389609780581502450581796579857288105509574218111464830677422193369348703942688249261145108938123115892510236487629835302085008310943254989672778579455629900155114677475268585997983902921555956224845848740546228326135531466198016530766001358078487161723765255581143871766909578276371793912338938840756501383434289941504874822169564859598891995578707727481967867035542188476519066978602902119306224194548660667212584478570292843989922875198800445711858390952159130558163997771903672284079184157042295689119909257667720146298639670593737812851829540528183743641534995581577521822905058285842270626076358873659804121853814616210645824536736086919090548410534467867995360983642582782054584897619611763254081848001105222407453014117712101601033211834636632886776368905670854711398656315012299925890895320233500657870254467509450696591369424724616488841314373935779952810693524789292317021148825019364308293998935759644668274245180728878006151362652975806224865641560893712325087280321828273093621290002859906363568807121985688074014763432928531601826006904643915631376242800864879143044990887795476625264527073716106076793273550888863583065077220688905388430866750505591995318572752133492730272627077431883097165494029064960949751406834761826264732279023856961829385881206110470079457287537336004422411510701211543514288598408520059683391823966831946313181714312613550070935394821277698602789571460141033141378454326318681980880002774502241521803453485593662371135933389500808376518462532952784976857880721945240753960798204610662653539252965622607273886894952563947294151420786611709977190669171805311374076924467405636846273998482770548638448199465259443287349652983291712053357639831307033258215903011084238862159370308412490977356083606620812566637222070940142105138604813166886746332752994585431601930753741575261003229070198694614747418067970389431660974794856426795575943905872204757085341217245176815221110942608403585463065280151258485751247215763201395807214220921434919054403670812084204948363913119897379992773891524477369197483484154262633980490973049116990508501723154836735453896542955146089432511046738533019359753173971187106777980568884516149832282602076604396269350807802298367448630039049106785325602873041392169906608114997121394341273570661151837128704207592871407493857944602149765283194960012049421856207185993672752955516674235013822474022873050059731740099605686071056211660412798527381065304358329606152768348382547244093133270055983784436960567970594080851348306051768790584241190423011683392453237554246986498141675688239766536875595678968744305867175874359304810441449329332457805934917171481379464634896463966066316158653728508687385868180350761938800253238685519738220712619737183112419661506247339948160369529219496063570968009747404315182442571250766389495472635854475195244296464301615452891676083860282104369113358259831633478210234515283994464859349252202896619214081667683199642642072877384519294083286171829938488824196597217118931707240848709898991000251474043634231664388149475716045695591134579963324040505148306731214359163698436285014239216869971563223426355042230959000878082435469162797910567700355903925543025228916183892121207249796345436546017016640362981290571259468575473884946255056862395053450536758683253110893999244595689112972932298410276340175543684636038873406022213909329526700082622033646679266791404554226664963463122117468453167017283709323184563747729377166970861121580409644759457269082589556593808083760526184891106106043666668907513709657897663402441610254561849712053526005083962631464724667843156105091483570051204353653785754793038771668595234542359682378582984781866318311881491192983189206571754699545357737560898856338659227200115908932058291384788917482321985881811648992082821285719673782125901199396218967980400940864994158847224607644607119223285455066341537338025508744221049421254356324232515796384074244806542247663750402232977469730300166978237970719947747418451924625250779667644716591833606306440837885729951079922431211719227093359331200637572035472671506755593780555469208984048295102981942139258771965943702751119044477431978150140733989401419423838763424693858248914009619988648875536632360548447029054990000890625143469327266337146514508609323388953389556403691099169239373582102541725520778457898526836908439416004803330967498875354584532126771450736933755716282782435358385172919967113458296507245417158047132836281331477444154185347845485305677051273654706678357406919174005584136054409077194348992162700427318933259284356445773336745920754614521189299168713696680497611065901721710831446591166726998902309273797085334981924668334935126350135777426996506134690707474473871224037621307397642482599885800447291897479160141034646198260730644620788754748705032258117470224760126632098596639886554427261499549776191077636781196865899280819761264030356188559012272907480094269353447526313202816291198918044921338384159212084520308810991067758562876310086481530016939223094006120325682945113744476217519317249303162834447043320274856425630215870773030499486366438436634453669788359217578484797443218624094760875332005645313447552921005244054343507973488043626950218175998045844542293449952920222384827278073270059013304529098349778983553548145303329871754467692368394154525881664520999008916882618940590804857294522232548546075571965468711745420031036158762242574899439086590422737785612264694204860837884579186229720216109989206523723475426414613432047647239028131645955616306627461739401196030483090795550374709557550281832750885777151285158712127551088895499246533972652823560923589243334103953380974486440503407909380820386090515058392398755256199118219800267249261056608469281584508080609935124039380220911619323826542351959908427276840468157628154076096667664431265430318712532117102423496919424310598434431366162160735829395412194502252112868935749943548083056382729198096810081556300461146016422737616469116302475067428714088853597339640126430668500084797681946833295464206327768389325804516170899842809466205182146113393832137862892138755844741407258150185333517823109838080230052043117541497256747021681741503401976088531357612704084939826486281719356701844023727151235271140876754444749284223173086275055981336113912300424315565584104843497673540215526527313333417141031388751077141614496932416996007602178923149516928500263119078844749928445552387042702143781372499460128173148619638102649082117925414670217991958670271878895642005598752264790272072959781638237602209339134286417489220098216975723989933492528463900303324924605690246795963265098794882295222516122346244635207282874482464411225035700310360909238430902905505743128501607879851478434263040100028307748858217430184179160389554199444351945256244358657793634283329616227910907325380437538003713518280677930120297266484174252680738167102402942482899896737959746727778867392916259180201190458177060048815724528651937211901860658503774173573849984606978855015971206174210202817000375418337474239578956780578895897674399678154380832336534937240054893301567817737812989917293771922149209892874413679796226695663509217161842301794738735272464040510786520553922256415077369811993535699503588559200103250261323765934811538552174333310380600651513633861158371267580709430702930789947656829235528627220163020227037066590048356222019323503898589485467191447518281749317415067675141469810829149820517409627230715634713788667269427893339672770187110530307280997655067374091466182776344181271432901682046543564099889662369536765643116758037637535545570162481449238517127556853979006456519433404387228068611408431551826041820662378666518913043246009064732260716338653933378591577218714774728392958825022491886009008840284520170765770013833212852651218373002851794087579362862288450230599633750790941895499544728999995388144864734853481391988767407865555854635997491129586748591263557900685430306634975299073621733819470766433144154214906655200783979430844427869238804200773618885074456206220874063566455151898852589942752043725683134358309457727471716567223369187699347241310854460307946273084536069090832719144903887487808938122357348457305369914952751875878293574236030052254791985768815092254512589324350371362921940502489787250308110094628595209504134376928186303483551575603221966324501968752094899371910652063549156206960447091664721797259557960751278156196889882234387048464733150756625468577203405309705912896466214466956209559333747076608918671577310422227336318447597479077921378748773673648768066053907018731009460988488770090544509939302167356182039395671043251069573632427776296994323462955162473348378589110377799550862960198071726988302568725483785688461109343228542886002646693478122877989866733422754224104814622008974218664131879000082008368494652007139678722992108144743402776697840294031218842889635910066648279237982019555496061743204013260859998836132113232641187353327383461476047413192836836430232826708551734393757400988359087989985045619477356874359401774847270241410716209906134152675286917641075486600371875006605931154680253063106912606473728154864746734639602756642242131892403027144939052485857455923095978158717727530458796028574720721143231394428083672303375975894879234842768697583053795109234528530642400353207303961347037381047104198066403355190491859822449188241869459226054209925936478940865078629562158929576217627497803579429680775488172177324898886208410535998702681660409869350351999577429638616078501906265295778155789910838808725752684989314740035815239854994795325134605388631774298030061768714490987894485739905491182840089232379977604186510203889195339218103030455632287908357529192120560128757408299344108887241504696521016961033790921019384867168377878182400939111052117677722557844254644578376881191142868357097856262631026175399394767194275166284439602768022162267069986209159006712064613827529656377864375837247305259943471015994603474605506203642602226969202650469178398356712182512080515266259799150146803419630694422012499524683138328979322317927968591554524096862545896934332006399851422497575029494214418252842472285979411082026468163433914899609276048558441956762059897242611815469164107644442019406915464260395093723586615120632973302396327246362529321687652348147247878519423584359714811941816244422205513081816227084751234110635373314289429092857701837001573164682611015576464157639591819346125147422376526133279643830807010977739671113185150430398834556434950695473083751064289133577313297462571319689282671121391190066025667913647880794611416827486378650929895773477730808076236736187792988582278311246850733839842091356457447852214168100052661071710923859214377050948027951575348002098683459329657128923689572186353168825335979270245334334724313787471369541125299959884163097234894658619632011411171971568140735713064300977739314301783942789461603695234135865795723361069493462274057740524535615833487339313970668048733826434163494889615190288653593363882990038831002134058755867020594680979750767757470649210283307175288175037050367012181421545427659950157917581640140922374751839026036217298601406771319931031568996787911749102844818367976147027401871443591540337552956581514843433211701090523175208850415228793034922392149813592403869882256357183401582551406400323171221959296887823073701398652446336016450860813916664707216604809236583755344023888599357842357723990745560865421909523960457990675961894930359513725190118731787523422863517521954891677446237469335943961710410693407477556720984427307791126747515343071715173058636201505540701281379520266042307967289768323312822880105217720027373283676282542700755966589787546798843786038046406399256553179428120887235508161559563761123555420880950352575642143407895008892180999524514508538356232615733955609010057786691858188154106154490272787261730208716616259215368407585464050698981650428425614598335816742551830901949746988067583250053827353021613756932785092913918896728080570778923145914037383264006259848807821547028934530974775154465989348363293398662174864314748298662747005945161778031496182924422629665128762217576283018326636407602669888363798397042463590529188880635436593436745844500074466334969735090169600084940797479047438318516958185395889378311988356663259270324679108699958088872990473450785062681948463936552518211830377241794899861572171300014335312790795673730249978544956489024021632924307258885245715471059278274502717195372660694468223438987097392442773343856091693007766674039407854609210348877990927232534627400422565434116038664849022219042514117143115472213544700061164797480331827570221616432157647986176492155235220842720396530476888026700419845031347292079404726818085809515943411197749066994528458552538439150675342219969898363344455739030963616080252538178168944055777022486567806174029559597337871943105066089122444599405756425761477605090399914279601770930972226439000797082122174884468717633249124233679308856073417671701906541580417126591045051662047982271800250746080528766878974602807261897916707614318459281249606892232829775942589644171220793192301813063362618174630104813967126846870591800217126007366081727597762468735703305001053222566252442712370082798590331257660618072103469717596245592361514906367408550368096739249819394207930473978678922820642495938860196888455295213995548124502099644635667640188198171319855021395972426486797946971075663287130023230153430754155569178969591779579813137222708467342716662510581874313295210203867219270076007535486406178719446027195337741582447814878722279004502459212022077328093239051946659728504149719431216176947932459247302036688406004353148900541417465042051650751120283227782982295184620389245102087379968167853325177503139756134411349436127920377180070325951764285822224348601547681099261139600246920444725222849647318777101412040651924645252695123019768192947209711207074181024823931710983185890619553899769634404681290532466772051900307509304736513245327118203477777009241660216689143268814533554874000768505793955271583930787032042219406506684783026578710380990312629367097175535133363915683722063726178166329749508841997658721388625207996432289373006405753197775159991462905105789840529687085074768265409376764605935060437201954805744626504503536932348204459260924880437665982567991095893469069426441990735238406705570480827525320822405608219769124880981988848730371081389067423657829979915004803913248551456795752374272028965529650376273631935524741893242616578660873384527500576130919344219113572341016775182388057973989034518387663186406697697178758256641195718991053783889845554156824400535952663821876817460411529606195393117073949746803221534912357356380164459391253551436018209274250791561580054530826630178182931879993057878939365510368389855866898341131032913719311537822065277681129492233216375026481315346677510387426751185422341351135072017981151209593887463892522859225016694503480358330637041553060279516440042911564458373287631334621983529042616004456309818159273022600925465958281315376439986406213514638628954451178021272187532582137733751760883416141588836252641301641645800784807098240504509118492423088098267460111734077584771029053409525915795063582848681658820154432691035622927376455323759481153163653981508177791565966031181394689306174678723079257521846868486462305216183488559037793764250183661569435766289757708977466077419738887677965471784594262143617456437724325442477369958430146987009595316645499015198619531496930266720585046574001315987864104046137022200046745258901133686480503956242075834623391713122607247332487870128335191118788846119330320636958182058893281982688309450026406536489244819615368571398850248744505095262797609047570001207885969191968376666518954957097360192009835521869920113459644580083673395582971025059414542263273999406719129208236890296255210921862227420986886225307392206880040812885385002080889825187908286349936357979615520146131447301527577635773002496909047895684555260383427768261741484516998681990497429727759668392064972582142762939102150858130640869899389197925597008326654806966369224067387753100246687062793956003840270254346680687869486009326918923039417261564971842064138405901602085328039435045790347352994824262157437703403634917468477455088615481032126250049798795172637277078216670241301099575208256816393329068448247314827348413662388204654570301422192445630270956863674198792193485750660783706659540031765232109278903190714975472503126729815623832623485012552821198873225194427544922592100180445488967422561698879635890694604005189963801419984519319144724396450346482180236332810659813054941175455942645580581615252840612142202624949683938281716332386360996884857903025867921747495199577280075417140537508773765331530469006759574684666650333865127406338494388597343840092934726919622202267168198573982474206984398178881697700165917301345366002588402462180470319842745281750053257081789566828654244163257112643024338443779805680294179390621729583542969468464778998134393268530146152768191112171271292980790711935531063548781638498952826145616238545083896880857906656958104004560814578987148427137517656826691179915418495813394020782573550803747226943999862672382753065973963598474195414127354150150329826701849870076180420674935002177738764413858292010820926770145095193051506893190527521079534290608113915994615079526557686934466319129847545707219388953352337824862424843192215650950799367191554471703717541129541123041824665032249859350812429847243703683861616127336340273393167190811750074722642476261000416741309463696440826522933390261749691232563050372713214641687566982983146739414939934935887590398083785012298171220168330224611470544612802116272654758679536986944198904840740928044933445559368842729771874328779612174835603911593535606933680733261757018283460833868702727254780055514975588262519739510755273079744542148522538382057911004388217411719153943627258177885479924735105065389014148423170966218342912319164965024542411396058505033768586290241521970542242081311326603179617686474200336874568856321124473366882710697808378675293931351259430762574809775402245899039919488337831449201938597671403346104612631610373855627017244031843209556984324990481871106298283210858166932316599418837681919381296742640584021556773025106053602023584055868624522356376604539245581394575671901156927347485883353883460785735333682621509215402345813812683392904601199504605118654247913527630285472334737962388373343112418208790664054737620924372371966077174775425460803939812125777148792015643296578010643534833996391375972183220825933245480358612968662522640596501995936571723351226263848444360750409805737393737800853201255532186418327540342722204690288771434239428268790423512619871716297902501616275298954831676065479390797023297591051011969408271043929127365240019537035758624747983000970917799897208041360034073481924591451659224390944112160622346659920720809978424167897939999205116127087254401260585027009152540232803653371080088769654177583157442701400598746506903028362252399944974724819782136393573029098175465915868395706815163812763788029721188667155016707496823995439284957208639127242807333731429451343670527127406651070231679261679619911553049979140053361008968874141898847700920748585112394881559172840532800679037616934541111933388568530577476454887984642778925106579853871188481409755535252801407288616419876195430607821718179200889355340024970386189036044164269774595278201677210777246878248150301190099572167241075309441686067083965339459123568331929600463261973610211458989185510372897651074055145824659816167494001343347948353738968312033310562977723635263692053071258509862171680077711626377093020836375861463406033615940730993025311923876835232011903723960783725950775234334380277973202988055223942325022902598091555629503401427437198966688237917624517773723665451570759486289567608601624709569337417215713336154665294013931454620371526565981401897998080519155857831348464777590883198078425427861398145734375273172464602246765932206364758554083323648024052986517202057810044659419092867955708544920452929513378528192081539929959232418169729322949085856047230220834337918922728424816527402531750706195592847233324431375235890409155767944956770462410029062150466885300109626939433287182960887916491382716820426551302606372213803809946753250647801071890052942856275068381533591163090377041922715955132961213142709750010868280458482446918545231675903276057326731276141297193967206419674518858605674396202496632897461919099261207328424080499093910151495546055862916272760194464451920713351696737317315658594145387656753454922037477586225052750111316657197481753347520448914078134698754922012653922670210552217081951722925032789275861432940182933283748594608979250992959455290746795853353502302954806214702453220579651322663727828477403466591007806673205971612581417092293170687834743046961418590524477156409675797685898721041391200300864080822236505004270723275570586324257946801328884910730575419180237833539812629909271533222596639200189033768680377541034959744431803058823101333933419335213691548191368243990819812686717559390554763941701673621400961388730358869862152174410699792790970617135599321970434412518412503978368942726135147819722001067073218309682771478179505287954859785963314067693925446826721558739565445536640901097766393640251165952017954977643562571557123819920612419960953500331632997096249542781521527634463361133714154778802795276904000487380342356002893113159096146054844718116021502431360135212514839565800548233038823395420444430331904022672281072752306794777921371021174682360292869732699352166952808582026388871290626498605318887821943745328460372106629432804487879002614836937102081847428014445391525141022673220320561710818009082403096924763221923603161918506448124418584415534454189602711723821255466698366849215485621262776428897124782323430897537069418473677976652201056965221497750242007433575919670746088639549012894549474386129375122573435488522622337251559543049227786406280981200546528869845989551998798798283942713400303865236853292243763862926520348798501042184694612242782638235844175062270273585298040534861639188038831577731204005015839688452301888697380207544377253761499701090562653592086140993592496587302002049584241293561884299859691795851314196572706418955278836050692110685200706405759894696567992798498421919485319720538415216183283646996249459520211902170633798269133478597286642649652347758276258541090307940757824767885877840445307796122430809614577305874003062034764820476677826577167299617863426215675777524830836539500008094410914110012740636815321311558079521845505026031054947266928583207318977235558223044799258577192821977255242024133752667366515680944990828797014666491773872869189267577829929598282338507595664985704906718854474915390872343337673993172091833384864999643022092809633446147042372727405323055770502126728844310680155108270220711064750951983561850870171932249453760812514545924999507118407870868525495285776004079843101834633375585275518846124501207292721063022662840720518994866873861269493468108374275755426126424567731991705877119898888446067204284762871525394258937545319879715780405481117851004943266241911555258062387006196229244190867009050625914266369926705225329654747940107571969081096565075464685938918067683280735237359327678414474007468883457173806793150699240458068767412731403303589011358443599186580349181103300624884614188260502276917059497349647584311942047736659679699535061327534369320696341757998269982047656725278062853194091407080631218800695986674126777982616647135864418744626384331242340281009785605680924240257615050385203575330719892280194955736663049556782778302020840081483409112568808036035783571325792704883436136972247985883136738450358762175603223428547091396163353974570853318347480642921762506372774389455329956955653337806627038474437413909867103349763311970528812137483842749325014205454431066966529436004985149159645067638070908102768121250847910279074450614478909940536731642681391286353289248673952022170960253766011647115051523864770900796580325007779862568777548944449234651652773929175855493245816214943079484102238375761299265946444089388423839167200988109674364936422987208705908412924971001225119411942448021766147109055408583794450729175170984762271084270019729895005591797339112578500055681883951623659325598586096149872969216995349177475987126733653192787222563235676273781200233293006549148638983658105494353686679535808419081419403108431606684930131845060789275014143519067815142151049826845469959577249226171840291288216489369139404174827334875228028543524011630971293486451239747121688345077265173674920871511799455469827495661881608482697955786957633610193520139727934111501477422204478708193815997959927546214750143727926273083547296014002199883364978682858590566532196806944589566096000008021884611488316201478611746875643302497919946554154248330075502983599482277046260462608538085129503234099238852127579279964924651649574431783570158054544885803761053619392235847317682378774510654004901613189881259502341452943787647860154225649428007248761120927134587390521273189115636568034656952595715853091184230321767950025553510627500693880147990961532569123585593951745136557244536681864217770060617968751903607557421704529912279545712116064943536705570579824598424327428358975834212628800631631294050436242008786947812537866532230244937202395082317663901767041819020921955806624260307874863417792929241515713021398367151239882585250518196706667962892049046428161661401454489638744976176136885422293680826925194324874155957248788871432409334609457067123486924298007738941220548090464180177986243284629305394905252811921660770013915609886994939295553966352239339767773298735866848742447751209627664340415327905724957374749741610696520950344060995368401262853292066949732645267847306477360649683211650110760593783585803997604587655512913803852612003387778021436920805321283906085812375078534139537329820254546220068109567126267602401011406480684661701982788548423228619376550505126616194746105565099141259149282373567798367796753243644497660821446018854394398322192986839604613598965786871629089345517259778540577017889756078314708454122472446793275815846358723241235736143059163525599238512449553058162116727638033297633763474280961580935391218043171302331236888679826822055317477835200721519266122443264810102467393060768135193474454945551503313845388706703558402517038800729630493830802506103728733222130107697345603386014820939960473789928837623040825403830044107212825933551407570962089511245331195126376400450878639271578406750548926416256634456898493168787860875135670222296810642516528905031065653304316736812535673619775173825013339260436547942582683282258637801374623963936447852467201122873933219079010847836147930241694327357325008701751408322089235890932935359956752327682418996578015300631970354573671982507534792078994990122226808394748277334241048025142819207214344324997482127839281855646576167847091354556285785210379067632380171488768589152794274562411961501501490072839865644258839060049983191451908498881520559589388599114077558051525359397439543264402808583548081762092315487383824960835418814114044448491951093941647622620985432449560499301428703479186466415973474287740283552375552786741225281070783515969084636341203504630517961130399861458046534699810133530553011387582641464371905415644925628885862732619763888574959774689513971134123686654926151941461903558089968931645435127463931917980435411947212598191630968806774524410342868328916252823686155430217390723989407135977754338771865116430903900841470012685546903205704451567714329444360059233341954873388136556368049962098151972887943406353199523607111499258966610873670048556233581491112960187355515269134278159041689356892998578287678153477134980474917027002952508980633384466896887445846171735588561986107724397106355206987121485112929755563207232037486736627571783952378105031926279640887513382960038232788813311666209655475602019916697114605695882880711306072968384944182760831822130000529316525543624757015036158399555586387395826468373515839021317643152358549987707694385727226316502784823376714315250011269193975348529491611637893098539978500747090547473047545976740538205609511694984530391334350707749239704225362227058813863485183366136132559658218954084512153942297276932587567088509069512883606490536753690934310300605726640531970396447163523131844776649429314578308376629861558708027205568712859313294664237499362266450372534462617964727170431371554643238178864759238524058269865457220949261010919884772876222599836578550031559251452370402712506215478910492308329612418630639167437752350956622904636857623814884722239659513613808105325741959663099083534646422974716940812320105219930439221612299600871553894700205440654266385117418439041189443943665495526955336637977176356382063716435414760395717573460100663324908928020672071100836054607582201370000471709037114625134023801852638145792715718986478935246994102539417637133825764201929656381207737924916666046376095470823281338996310495048238389467815467751010662695284246962852093702594002125295749920116289982575210554944900140916535489437852655024986167918155734041605343128060508655168094745777572109798999439861738237979397806228190453655428765224695673637879746782896104929243568631981365868751469677136842325917495272725885821243370631719245075557553690913192825051855767910911966922544172799219494240792210515850526792731647366806676738661477732962223019939259582967465125201728542885062699872733279172108591154014491404472626687732607809849608287611425508570769254182690960038231373897428640483949264345438934247015303962464578968933499419771499094906678944383378570136263438924492256334320082699250973729307975046599998482209470261372924923412703310830098063111351583225105561172885968584893048887739922900863197990537330125001427538331459388276681815151690224163608695672443494057854662610745235145924827472665740930476577794565677415121480107466394017827513366190726255678723338318523139355769408398926084143356694673768788779243236803943627764179400873921945233695139409234462727757667163430147059661004548258962476389121480670014452407470555243927518779693482830975051336172395774488015238011972190811261237561865062840201249368862420393991775213648471233159270058824159709963566975156129979772363186769056929145975730726900887196027032397366662282208521286805702899276556013967547308807877987899432875768804238060068206809680031148176894599602555869240896187965032618743602826937281566356849634302720059777688391637234892421682225956812848498799670169153822996522830638166368424205526866165126713637018155056266400039869959728847419184384716806717206959273266492284931995353345384995032078837041633562535944679051356418896743327515083015268312907315618685416631439199098490388094565898829398591584911200761782401348574230388294860629334547439969191075908308470667111273168312625606128013444147455986490678596784243745460606913284880710234991361324394210371943010599500504148527284047486932422507755984375839851305382589098676835791673852786952079728419669216748110994612520622124330406481868690561746498246645619393342689776866477939450939668444469697374981021518429052952876831400519281713819930260208444359114785764260881611024924475935996334497700873960286747079193212413479887437185184139230746633819479781967899073949827911964794648909580522081346986152484325610914725387172170303096828275556683411804587049512404432828275872018358855999015130324736895202830294343482523609114331144538913166642962081049322044937927313398017974812169363704554479425037603991119832128784618671945565280802932958644891753183599143027134855174777323947394670035645959428563851036571028107293173004034273641551422601218719127275829934344110529081412827382156688945406813570152047375734264270902749481222114012509234221998889910018175705263353498178344353392304956949616746136097569542212643032904739460897256053783826688467566499747608928390800491856685226153987137282557991099528497072828145475697454058166835460335093626323531201937237063623936187814701680625300292866837448032275319062990251234312417470211481908067911520574653198057268709226476229959545200936476626026252651126518780516928527125321681544935656025462389290522438300172000464605286712862729620916634016223012760448919869127996535580955998649170501910602259900651994770660083635550091444394308166429243505797419823465086638753347488263482016393632996496837858823196017791151257538343555672871764916630671867591030147257156519771419342740110892570823665043877180433374857483241686646112199625317264237600871144858901952216139127322951524526654349546499492024958376171159872556180241634171267309757613239825510319258042847765378500734440141741293391084969563317264520049787444787759511299655921988722641802419901213319819560879472860540251586723707496643458579808625632771164672691272908545321499341971802060683287441122010925694466709421562945745410497112572340199915144978108091657522838372740681450514115576537161716349364541355080500306299316523905898217401334455087881876314238827197078853756143336421561211270414155456004226862735455117171054006581733104104301770455393948063755927470991902009231134027602298110264719291813991803597076417354394312549942124250576522838059368995275108895355639741058275161900065520593213244060768935512430073047158569131771470679965663481380792111689837257106264020437269317910711925821573697401539184915683567396490759901248277861736615631388154555027488863089875581273783951804265628594515661336816953237346669258862119037901672948775519005578053787754739465014859601141443631226225134742529858734458287581041324278300944245508007872606933778040627262261448331717624115463111653592538602406942771934950006297105322182335005860007682328827733829940409434323611037469205781275742044483415510558113422109605974502435452068260192609539889001833168076843529997506428898035266958974269872427884864047259507234849111726517082473050204060334906064882987418266146994607263599248915270860840771642250103049935342668536964903043722499562558311084939887199477394788669570831636254190605232702272614670888977329088582829121217851402974389525793532541042659220098582920821746929928343227922478255826152841402985056734229601230427832079649310579606167844276364020988567080428564112920057934391007227675097819000685198271740814283145907699748830642189345269486732754949805817345079521349141856090862206144777846778932617940983242300521867552403132752760448369268723033727849422388149505906782234647575565718940009649120723520972244221745510707938222045247738767710325382852629047187532974371268505966714613863085368028000630401344239874974404066872755132141038683573924690205905337595039284228328410932080988447745881430915836271325865313347306547023505987565511412189256746717946684307870196427059656659117513450557414428482543309913563247039391922639833151642879113193173175436424670703119902217691982379919744291031462681862770404861262945467950374029601223221955692249205357693144283063597959465589319357906837625803433254593012659075194871848104405233728562284072167484415575025259095571385390285843776339920940701702056168771401560881778280470281720569480902793651487283572185325005796428727971869814255124883645032070798073926452005192545464780512134745212108481238669308302048054417358425940315351104297732512058765054692697870476582293992782375279996060321968536513239265974119931360621535757601931756105179591706982109927909058950639548911978630998724524874370434193383380326528456139090122481647483436400769926542240322084110843140512044225908854188300760227266463835301656828794206975883519050544282444019899760308111434968382972939178844405173567901265220577690678004989080753655869051009716432947019715985994999212077264463155050941099355473042835265809518111665614317780266508792819102524256256179028126494006940646436133294050516431649789513735999737452827276939165728511767787035869479500903388172485900676678622608951269493346376323911316554769118738754316228212550285838323328223968512100184012425956409204562674151728208976139094291563138769819994118072036418187534489182922163624046392508812200307334402148769566839871332248759894152097970677131595698988850247620308414417041724236917407868946823585687917253954022180060482044487477416370758853147041215858809341855794649299737062400002751236431006851838379534294657391459766124485324780222900601586590094677782649129913920315315002061580554342964888169311661576945396148400852060738118574189606120519548049536556446846417664836664684558565688729529836040070079918931017578526355173630152432196976851775280272871403035339631452574710421642928699811256034208042342311661915828200307013205016960068270651225300726295584350421770298273187588622584499867671917699810038804635953327731972511143805338419806802770623124194525195922179486215185882137232900720306233282712745157775630188565410942850684565770315519257698660160703090508862511224303081089290061421832745783199807226193158401246518761043709883223047822718673316110116145072558645456395404254850694967325663605749473462633900240419152396756069104850723044594229942853851873950463168359955790599232666064781620018616616060545863697503651455150681531213937109718707670632325861047966989001889552159166493600920739569051713168044688879392293355759008459778250346110592403973979842947695285021695388544521727767550679084929938515363041931546206093268409941801499163808281462304012086671714171405602801468378148691189690411277783408264214435290386068033311650695785005381004581729256255382140928405629792157990815977766057723594235649469827351663514821964047810063275296236308268600478502234501586976507796587542230436770529492586727183804766727082997935449573182062423382349723658483205530678554837678379756810121126360189358840885701939134603181413240376093637075515974530034554338860740987960827188863101812379362855587430132932818011642875198505412159236584667196585104117191237223224647537169626447849049194726929523394595666632991697297260098174828586842481138146291955699363577540391076557207674784591812246397151123579759751825383311718480993033620157170672328916488230975936788875889200510451124868591523374118932019588191504047806366524391465085540020978613530410031177452164149204797291104373736828819126394874034334274307106863102433673486553271551368266983279637040189221434859649676241784235451618658644041192521569087803884065315526721751948567391048480889314050254319657515049554224986230864355785544787440763918196848919241729859129569194273889082281116518371103836822134399057474666554271671358114677086417911521329397934311376328405431733941815508734005111611936468862658440727199615872844423725553684159306816004279186032732881807383132783635104188523389351157788713923739203870953114476580259664527895561840715035272546129755451079839931970461583498249174957169071862029410215038881439406635204002792384770668668911648154250261481544676369749310541519785351548099762623460084260645196788809042387314451147753687205814504868549219250261736592565883558626988710188204099374945346590707874665117794243381720324090691951221925650024744262248942480378003507041368751965923908479074008267369413943738181204451155780215901540756515623021542327932596943244448411808379568100514090996670534408619695464422812830080449405394309279419273095108929458464934966355332924987878896056258390434026449140864341107385372289041350658706212174677519615730448702162290334544569352495032366471508124196685738127837681725509151946665982808179402515701623301294155599753396036451389148546363592686098919594180885313470987723917381353194237121589945722317664466111860217027425119301415613825661090563361163571791196001598766391264244376052641961542430813456058112795179188977118855648566833291501595896366982211911607343033757527203647686097083125820549155144339555140911861844103225412767920836230829745602246835568809564757536677534339736857981619889638544968250334415467433465897238735131615856889228548682311392506598234524435834010011848513212173947446849053753212163071582484623678857707649322748229288262214668230666209815268205979432949491982829944103151367504498131520158201545979622734679325469332182921149129385991740154775903386244457717959415162817986603112913688609276681458047923485070335562259272571322564336470341923378508980788172876731996195287760256850444407591170334895705641572287776737250547736464855687287371840133695008155994914548896564689293164066846955320131336462503306396095548311432328309459721883984295981018297720653978374816431906147084188991743011633253859072925522965690750016691656069819377092681663687851856472536361459470368633633025636480348836548892585575008355235195429418682483864349720912717528522926847264554991115721313709521314862399988000477606952371745758659054321286728397224153005052966533143152498202858535052144132032023468408006900158413168594762099557218919109325019413160017121262864982995851202772130697642810146613465094247241135683737590798667056785900451871112185984193587316063662248045329175196650560794622796449060009573752878489062761701024783138224159872943128432316965478429850707499004669720787643483444150740363105524384616233938168165988256552833018123536595219023191909104746077103245604772111638944819868423720160107868313377402125164600223843470131167289343353574273608875627416772561894811392136716451361098497946628324253896459516584732928705640680505201289228624724745021240759268425273603444603445555973135451531212017608848641907769499312124802517048406481091739809499014628747463778876799670038686434158482219767599414125621084159393952001489615315795744133055047021918267252361990931043925205948066116969899645997624650899702354077842263802399500206130247622425399550277446099879304448374145420758543992212970434879272727712976513096899060761085487404230798730737040097239747817426291495700992444320613736396846056352728416139921393908178409117119689737879396536065220081112810306006253946353952016020007750151494724388107170797671926780548583999878247767301856006399437137691460015031695112984070051981879667090583937271922743884595564159860418407827470667009561802938336277738198025792081419801588342265484483445415743968054778408122180630595439595386084955429685879650731986664492316973444618451662971130817517580546507048431467410375708190029583570992060041297691351718611107118488073499984364399663906793945814692237099158495444917773063320261289608401095830840027105450193020534124156941506124631692751215867444146455952916736896364428221599587560182971588824987017037426100994172811992567955532908576629014023018467395513030015051311003626942607642094291023176687193540165912651765491282063333734882864619330384319113217187737003484623800467423900334287201617168359878674715160147761871877763584904249452685088452415808788792739625199420228702002645520009067262271599420925518515466104084313941829265301995783210140337701563995491768176820827876914293414258867822454023859328083394168115107711570190541710635877123560212895287988059120263571362673390312047196034714131588881779458942391326361106385987879768506911603270335650420573441493613640661244308743781701231274872351004532398631918129260989259514189726838802530165474064787774658789143735686201666521644189551529784386458843708692075140151078582297999798306618159880471512511132088475786734611429895641000544529037233396117206458461871274861886049375569324434766192880488435507140799481157848709241431525234666956192332995179325542670022922820155164275187495528711440584990153045669841357979218526599338086752217074181613174863115735962748860074895020023533190983706338748954520356445564387004563730814689076594959201612714356505264830821692950510064497792248499467227395622098192470884536170228374874560038126688476143448422697398019156562755116122073674137763322147811551436276445766832097354882711913862858521491971192944131005795315215497028617287275788395996744578379487890574870279728143044993313612360707597379618478312684133940062980061430051644019430737543829405775280066331919440100915251047743953497978151923996934154649365146873214434724054094805516411683806076264790233151754281719859676927622968665535038675899217389840148940619606603634470377297707280351582846267903583949429042317750339644174749982297454436833277640438067930466609980521706151923711766520810802547042656812899015737015397611540641761650197739096398601313275198430498399826938007972924372340617786208163712305082390805330262149091722826676550617923473597194768787454621770382067110357341566241194529527250705716840259378996548015645474101273904171816479908995420754238528644708891571747624698422412312446532946893477434743152065050545887624355745640048179983358274218313191490358729885007555717104987050899288573345820359153088199660840834498690397765019269844992367405639505137430343407809740096738939800912978511140810280991235337937403484166313835988007439172168563789129122927650186709719357491977110852794820291338840795996593693548607950621117505425485589958931778984264494304748766426309515783341404410291179866989422479985205147180742141977888514968640497897765088267038779043356456116807406141962703387440230865909647660251779087681767875904919743990998640224444632389318709719715118691293253446054139230043015007380606999833320030596436520678319084145960359492709292739929614559439151485458240502718650869845577098574220292565892710059667646437000694981523345034012572629410357624267794642033807901863806862008771357908443870645718358643227525238843705725332815417456541538224250287868131397685965759051292981543601886951616439866998814910199914462115080157106839126807249614874616506800836319405440463092795872612968664882926606918829888176650783859807336604635694565183581892326619100313973398677677529263171253152207962453979203518879111528987203459192017628966834572792156346571809003919601532187132041786139502784465414194009963449618371430851979024075633250271906104629380766166968766479352746706260480978309531758420425134266012808274842509769192913292308611861342784444645813940534013859700818676926174590943984258511403911668777426842440196329748804578677729793024425834337340201347266611696315330382249809506675484510618819440660920140883788512216077649305287923923514620585302912036497225435834391545994691492266879873730712909190823894696620116817576795284538551588763042470650896301150849254014097228159126487297351626415047393710773563242630859214186548251158199604521084217988828403565537543764451392120515494977823244502233311732648221464366024481146822154788749339489117435294717143535212198846242099807495415841981586904223882508395445228324610355189449747567570339153350530863516957133510153180334283055719524764187717803242827089334524901468134072871321741961306622531078948015877283082287494812889187251533666154071940672266722161538165487238872784312739642348367839826771733654120161109934524282803542182283646994267148018953023765168730993188744130348282728473331931733017665786186076176819811783366611554253129086397590073632243016296330979443846347063164913223280577002953854894070820891297156036256483378954599075763360943702687882053829136117269022682451201985152195256729423757794731137463487652559090288314415230369886354026271445866356626167267362370419713093779404518940396340874256352448433291239596087046283664600972368523004629985933645876073015305680555291503764111496558174785430181522181462896511206422011563710083431235762843695008850023828336095097200322688543657202333295618295041010208379728837839988026636583636437926284544048561972020236513763301709948609228724448066325860151161788813597342097586073766728439789191263681726285884719047844909414897157917486433795262586436904917373791699396181003430282561743475204316764039768273454711120900476568886112501123630550093504227707134965194253262246637355148988121173773955557598615240163263712357452960731114383604426889079500165702779125720604091814776128682677463962532391936222334534751063718832256126235408801430566624996979430990493335684280243838485060384815278814554774540139448082387919245023024818030154840990993683263292046090796223484173479566693527650170984034032978934100652679759817863255297926755327090504963164166681564862489427180076117650540383766238896062278873884547179871232730570682569331955277138419371135622463829650161873853310864437044560394063907587897600473278845053427961865386567512278361472982324341936634230074277104399147087775859886295622834546332876298808363343135474919829208348410669813936601964597913375831493439941892221989573410629916739099517011375236948533567191447319956869842691984808286049098643294012446082774831652282017754354720286232795341996616671354062558436473974993553421962567265560943380830694368158023486124219877894839082038694511449465393983918294857534256299774644535128175734668619306553880669073851249996104862709073087574892662527857731509677287233018928278854627941164181085517753990220511403011876577804098141621266206206598236740644508011916673389739195478358345466675537600609550632174605108916576721804583558138920930502518283822510690764458480916679277176451087021519453243594852736150626200871594118396833502294573748304732223203427855501551803528071920754608018292206339000287278686683483962065863328669789793350786160265790444086180375087503466092441410272860293869378051750854995230265460895386568107450402960904040433041874051291213854379433093171433476477750285866256513792764335743197384297956459795595114109651709185160186952665121125419873927281691898736284992968631167971337165657391324478424007809931353754671793420526695421085537753247236719433037519397585573498344879425990173880976240360621823739059397973123410744987821430433697345722501785275650773340139958711088712434003778760867749536460798823955791500227637309884050049377651184106200077142547175628423686712054686184239953363670324563367268373814359466013991878478173393504221650231532640128407651719462685127565796193394174609219950459477038057780353576442010172412254072146721372789608297309292092846853259615536408939898155016572356287563485600427784476508686416438534082227548009277443945944276387234256843909697764889020437241520172223240256107306228277946266529725297574308024620530268646997066365889845208366713566396721463489680432846413981779932358793842405015812375588972489365007751393609507127336274983932232217357031685425512609908784573341020774578498832570363035625275023463146103123470882131644377954512323182799147017661878935301174210049685813044776575236053663616507095409946424286707337712943867642501857973251042092409611477741790367960263433111458087342446837368619351796858398150805496722236580654652248427260515218160516176195479854316129790932421811528164137055218883902268317491886181002369612742334889136949586476802290289115424843629751938916801653694606150608304037510272639693672482898719702293253612429151351031508627925623869390637156616692970767772714562061189176568069217798842672290967679667931971511772753966867744677701934235360016975693521291140827648574547439287118182857512010593544527380304808260363281159635518112157402335481726334989846855745750298253074928777917064445101587410369277904707409943291000537610098672911388997910724220094781399522047941574361965971250800492257226718103692998011816132315744090502362601362234964671988228447631940514110343357693046269320820912803343898600887335997074562652761311023717913788289669270058437983673023209196829275110425156518891750837128253811962926931084260943708066185580831045459947670986291656971095982135093883640396482111678140011695584684535194277012275459197306076157885139015924862069503476182393267526557491174909770755378527964528377145930307724566481179459868269272803698364932521538600881846642084188047956304813718856525297491184144333690644269225331006613402001437646125007576349733871555979270149767138094162866500368318321442276108255936890914081385661687079711953025549568119426813166015416837500505209825366718734536592589210952036046980504115080109504827188055968416051561268197181450946290347633399196144086981194186903343976881249640441230363510050753242834376545977887193604705445758651567301327809719198113670925730770167416773836604129258383518066903251199956147029074197316623228532821527254216299066712006937643338263243844884717533019601318255669843003519537923015138061720035598870723556538145294106751002963434972715778148661951580121609197968949636527931185247703549280395206741253241776909840915125023974750578969022820699460654246369176296976369242655475383185106183852849364768347105927648247668223819815245149345137662792857995567975838377634271130958980958667584554233027272544554833330947953641264840949833575999865240798711814016374140115071103593140407873543488476208342287361930107919298937055792044989707330154945010974551779704129819560727954989271570706645290656239570587164979608369182584625021410061201974502299882595753288210498332932711542467225740284945706004595675541863482911130983030262602616687846767353901157096093091479853799765164460423410717450962629683240887228739255946604047231862357882207868007926821955772731006435945844193863748978172824707714487460369624362908540603701071554190020823114927448025369974482813164258077954811792531994881912218868854631094235447798284134126758240028888457731592208766894128644272628526238268411683205399145987878544494074318615781703919880876915882384942781518572444043021917527900906156417084852169773165589503761447504922088188219396916042769555294717257468922047974155800815145256024246898860431796974627757541282612434387495482879972104416803214451474777034627688860232946763962255888461119055747505906076713362620682068511036489609707191835272431890382800776294811357652751061541461267738423531762565911915339891638667631268537938435301271711728687405446449314600056207477696303337988945902956432720777444478077870061758702780381225332409523035812700613410432585110909351571609641116545776373686563639372812572341671588030152052699284086166340286495375745733541655990730156065035429812401833744367894039665994591875131983153229604767698302339391765983692064350439290834667954146548241013056368367169769619673290379347921211677231351614748039976432815099102456334918723783479637332320272280940738545446997198824979601240053347808272275047777307818006317567899854686131416811019573311030382781118852567657502030921914746904054958774046529809096029656954773388324754121046407071287679628492502058780621318905438341830190275753876082737345308162303329029822065451590857441552048253519736695221183956419432542783529342971571150838344564328170119019181165039451634764522286864891247806408179197061947718508509361416209214579039776266432953570696301768993162976936800623121413147721695694570677345835839655016188799864497293009365834093247222631308178094323171907822802260606875750520795541385821556704399047233688946542546415913263586662102758359393334603398753604396920794856640226138579083874295817626253381792793394175529171139844187378278292893432971561707935260832990387226726956182376473725034836069486862624018779924998331658699247237399095984983864448702071064977785987542436156143521823442721253545436073651918989953091870820849423947917882808230357220349500404509137367483481957407347967763044442891360765523814560249845490418538313058810712576096853951030592433789134410832197797570134580430944186100536905834412238681216667793520338417698549646838414800036350008041248073777769730053561221673088148141035433440514113366697853614553863873143779440934895284571982627856480455201397855757516198997282726675497014734540944352415591163054358257081347769270164490255961973712142469790266255132022128659033995847752940094466152780742833127155735443552098169848588209305811146836770371176587322902074582154357010248442121731398658650746566909552664212834593792873162304953876876511451362950414954297692967406575566117485135349043985098854392665964152282763165752238632829047610831658986509131786965459222021442900850950023253509708787468248328319206492574519051220220173610952759602276353845104243908877096255038525888151380610117019991117152761619792295129370255138243591293998506644854681793871817296406298367126126998718275638208699979412818116364001794467684484822228207596414688483674990758907627458661113077376151985412578751133226732841959016964794091650025908777925821585118967552273185271456552224184132847240369277545888901135007955715563768415887750273986328462721123387122506581246139408111192170653641553399172607832391077396629085721937832062041962957168889936923898740944356996356828850835508358829904757122585662973545858020416283447331544423902089501700375203802057606279290169991428849943061389139326153335371170668711439018353175664914376312881433549189599752433071488351674822805408419720165296376936408341754201388731617245038947171607243180501661335698834392955733228407813831454142462954824141923278088368315389724241672607451616631442914887389288836559853300413498218305665175013744485080050976989492635914773992948145811502730924534617675526482954497445452102500915919098435983368198337147573860132091323982607778486033601096915994394703422035911292240416535111043191511647988292720091453011181089290574068776261175642717012445408683846403844414533231244219027528184798732732594879887785653662929455672663024018136755315417536089810021127488352080385460542582799577775081890373126398828466155356133591693163953238484389034556950504623900172495412101835926664718849505692102817591037577386707382834768477847795738222050712984143715847805578173324011153224765606010490730696164507542019098746266012680144013130181119236838175957958791507465765056032563538772251408067225272734159580118918558586912908626870125248009647407001954819716601614423664266003752188373836943875562842343102209116197256633085723647385483260840367799239153410948300658807714360287718369676623636228522925888949224004507307132664943847776252387987739449411028249289038165177517207885144772092885264302148562070240463812797110203075670281632409093182566677792495716659703214681108224974989941261886611887683426150231072527469637429354020389429324292364944287208006773201727059568137275373318656961198308620457457569651933392166566189934766246188817380345067003855778666195803794829638789464084497049281712388118139410554367391686439645041152872425129431660714021431032017072871004232364869051852096131792608915961320093200638687103521855504562887357860578622852358862612735123364964732709323270483670606397344230171549582294052613633310583243950763393532669722080772712125531640277669433823528220992894013503833295637585322643858491207024499313177798103422495167778841425566435663160182076700254880253561024385975008637455072622794822467144646098332759373139553433714308383221641866887683592090579918989116674383958603620523305134350800003603136652595300962080525084118240716085895338960346540269884740046187048083426376792608804732182486069284201032972623569369132975669018396133322568056000550222016607038912216801809373151995602469420174689273660464314841797646942276195092290898797028215418363957808946767839992108568460525799216749084028590770744701773335135695513452931005480317773657637546941427483762086554547827204481037213963731395875661475064420817548383442234507439768155015630067257313624861970323399902861812248436301501154170759942820842236961193346695492582217005950997526028570105012997496160329447571870224102993821233149435230092498172931376370275005229063779107647795086118779848834481957079553406324521943323191437037049874262436306687487798352431230529848575082653070354732719298783675861724021474557569242779020339958149277110042661283859045958041020517777786344098779766161683685758634402650282754090800037993412073618216153114128680983807761971773157752811821888720493335440902532817201167578684845368745303266338088468084254717849710644918379928367784114203950191359866005714368663170383103391394859339711589195556622245000845908453474650909377669415750376477224016608902574422721721215065496184354790985636887020931593171678983545141974544691950617969511214852453926166582902068866429510506684807763468309400571509805040761568784691206491605416778134208046069162301283099635206496559916150218613853343268770062061155856844365698503782808914660093215398929661640437295413041741093122381767748197203772656204074075165787978022106815010798740160839142516738069130521430708594367876901820100277997768101416921882394762580283048004065247265742282906968637186403406958489603317891540916702155838625717226140103369324127346161711412471108912376555954650362163444415367908132971923529130583204924229028852051841708659239031782043231467007918093120479265869961212355992342098098234931665102029233108752768379250351521713564711269140262240487737181662219502554439839181345633070777723956290768388345806585029226413959175843714289950071488021341622912034933052306640081942570953828006418265231680251398170094994460862849567883381547294438142269729414099983889177896923382510420918184717314957859010467451931118342917602396517421502715720526392574491559768786958284938710349137318979335235784812964437937858062413552038592390318380368709054380726192806688515679851499105783536844697566889209568977246619125413966116932983161541562828246438703957086401305737186879751307634809287683559056784088940581812148933606045639082355998049078502098351120379595438365408316609973626974399760809059225169560714898750089730110483653082359110113385182858860678647716863004415505291221295884813886333604929175918309204443579285473396899434022099580589603648452541323564634652119690086727229454755767096476706239982251779434903908983957711023706888049391841246297038690760099267700663647796796049832379195101193161549210237173913811646477470115021834334070549261198682710543759094528838122478702210773250955241271644546826492750208579030566095310381508000994261336595957934030460407907692169895053460991403020571617027653423004963224922020223342755137619724065401776264751779101543822219337994180361221258111005839660157350409469969060769687210684035268654766867701194531863153066380835588015584802347207769633658972502650944004967859158406247409745564592402228764413416031864138559874788149400021913748723653160367730843297213184480472438389158795737870029982911140493544233803161641614289419062541774242736669789130507918514604880567074168710350774191006528446818163447066635288745054711411756950111773021862155086596167880145572890268644692188898913896978731423109175833967832129323078279723534730295422223815217037558886075901176881945530809251199365854722816302451847753991875198098714925736748727526375152903879503863440750940531535755633596529261817877555806893319505708786329258732986737041227000256860668544528497338335335326111838931236909327104359288178876254106388758453007772336601162214321736925806087847106971011920910686710680545651628241460620165318743217044895301760701815418300461264829818991077352224396224738596020247689744116168203390415955602669717426447648489275561866412815463686416032767295002492338492430873290764116417546363418423675705149878952697025464846842513700830513418414387293094882519981975514390632733755756583899324265058668735228449161816963612867507516688607805803143862895541134995316748667180218085159133980822758193828808019228400463135624280533569136163780011261028091803071109795777307451797576156673236194464794005429564258710626159820373933973724623784796003387802657092056655886916119923437801341682193357581226284091325227137266630396943685445561161143043561503033633988991425779327040933337465264334836452753627185374345181011980761334873962059780746381173348625225722043872776945133927654767279161250100672669075611800227311399714760372214535391567800757044015796242185443828527942449209850829797259246931956942108717633137261019167549376178269656277703536009669664039876659412647896627655620673318715047397818108773504237871571606546236035783301633279319601277823925532657914872788036713933909405595392081201298034220346480730845344732116407277304949429083575526223854602089165632923187008199397437856880629706927641550926443156248288441280456483245599971194246668596653364216649248757004335240135003146264293560000877118820788493784925734625894973766528199562537524268840648967331772462653578584994508921837437008078124034534875918340414939964496214120644045025029687402494615226178273704494568202849542451676742019642393453419557805744708528308351838569492179628775617952012776906506639813439645425970476488951892602514214618921447211818445457738482694248634088633015411868620794013608085612985270173710481261645680417235297299124324947348233364418884236253758654776324593405860128790410901587875084280688794121217212933593053118811242431190138281082379646687562303578853077832709306280382459393751689126335601367712177471316692932171194388962916054941208990254550311893267756444519262089583096193674107856305148953150651324958866103008631097570350419167062806303098896175456841587134081738436357842285131610297994165630803278089277563142571919932904187132468064218732617838072922850009807281529465070694251197624654874304016537178154430772626316488053600700865405540677883053378654067028549802774009741156959343202931004065473157522690408465340157011687216348264705238543228686435400195939286962638404112512168848422464850830242630531079346279423493582975240741811180388008705513311795138556959836813224603017896985932489045261000894278396310695084617709758743697767829546409527249137427949336360950118165476419093315362161743586624398238678941681449008984375453402635280710790460371620821945980676285616322322520375744445910437448480102798801352129101756033146744897706010045308762299918197713535831044669303012840135968724141933853748962432157871805678078055558237862659318855396627620477641340578648458707348641992030647426435129112574325612429734902495474174152134307145008932383068624280283097200016551952670433986174415732794407416943383657963451180105950402535970398737592730828770091386660417220432477236903108978820227350201367147749029869481295250593728963681676150950706861772971535620511026633777961115437371422037083166474467813959820662747663136097454045487810404400543222490128040445927181331710878377652462462321852637769116944022335813041479996795689371521265399699906394947642187867323415397126267142186880823684648060414492848477037929591109680293647022272719005220107289334283962240393098267649289389611915792133473367515709626048072833707834583161705706999762293952108809789896669369526813401121933425666802418151038912042603943497045913359472969485107104003146736517974880016296825583588550613098319071218978448989588340778941454919404369692117253138285759655635517752037220132950794701673461616609722116100784045612439160039876068533266251969078046587798505064713403134065744536141968502031863287600675417472489465214006418600281175476984683879776933510179151128684025275803785225316493291852235188857676774143060214387680299500141364329004776868657122940965548506012483782554563922414936953914786156794618981101378689794766988389955834285359807766993746254685868429371672248929311599480141979697643871069705598733360625840113698161165406868977543602449254946213095785924927847428957120153686483648655625653104166538846651682274097591033475592703178470116194662025939804278926598314518195415471571173700462175297638940878094963957073210785436876213104070712079482143486511378562830138487741652614585325109193803771350812319432689209228373068017578775286715949713208073723918692518969949518248085346198175016160421977583100859948897130691064382528360493286812816395315906493908150184235831449863231203867324817535165236804184482868317960735049216069002053661107173713796082033013051374949339771618682013545822493608695661405381917511161727018469160227053999415228998114558136728376829174873314957496114941701247346121719452127349043972632046990614414560683602426538226284645139525413320910089677709961285941540119568097713074923369596029133846170433587635440312586139284062889068305088624148318944182788151063695053454642257013144707562232684394528390807447124195435968710290016089532672935904595539407887008312753813378179418888459846635282867363351038116451952538138491191221602997327525707406968772252093827523351129189932271710314048198467360417841876111500758377478261410149397249104040054339216368602347067397752497405021553525930467916717063212072587494802980609590441371666692018637542270351304076276062833126568848379972832185340799112589150737746417838521958634710617981717708353812940216481769974392971659600319931626117076932627634181452073451358139707118115209756031164143556900010854497765942092683993364324441792915291506285767411291997734396823417088563880033265964803589342575808567086418947161540529154016751705664992243551195314991549699957022335804591608059991486623302550285696000365143629221163972137364839978385272621367228957081608627000621013160758232784268566153305944811851274120385450021881244494547742768192938097548294467051491947636239609906344881846774578623397923361622022036070668327688058033044113396998741344094779007219592100263395531340916242875986135239405505646385719492175737256549527251053414176577911041395731956659390817051536445732563071283252494507678833940379696799261877217072909552725488913320155836048853122558128904321112069620071618733880025758873199106021029980272290124934896860790658470960661927985658262890347109584341302452471304447255034190770242098766983019393341767422794373248940748194402774350685205285009857907795503373806279528739335581406653613078403488885866736278398731886895148108477221909034027140922667587773958999828135222367065884245273452310968186457317397524144627603941187317909988249644921443319036165581736923776366571146963070980608865479613431469578781328649331279725612388249932018382541060294917590273462766421766742769618787447677631125255597599859546363882688341172821945307453347223807443663570666301051334628302884666253423759646918743643226360088112304733643711807394564361442932789727335382428766258007138344462791979174017016555823087326457227736693868912095838857615250206988824931282138004264469579235234277814037668453827440670834433543221269588712076935249027687981658720234147027404999744188013429234004485884971692740449592486590756541122070295140389602441282170223253024483728474664913612676524488656479138460329233051973788971505098466391167225568906055910730435637800609001000466844246694266949094341771727093885918921670811848431238660317412727567725420536331223150626399007891051370834423616538974116370962195104797972528826705307195984168490055013694340913648936680043466671479612923679246489108737953164660164893758130492723126955268069482575718446697407244126624799375645055119674360617432011099922593401043942211550794654128632991326805400251819684296895651086225434082898634996463427488985459590234314340292367468825406420130862945628724754569719203364023673103518479030746388065387090144283484963894247534837630314249419848814522605831134247401941450933690377100895862703610651076244139870437688311662791638466778435785065930700317137849715404772576221937285561398395933122855479886797467656688407574234609830287738164470119701089895118733587799686052393254369451850101448905739838242972955942079706538974483826975281494568878976409875096686192174338653499480585506675526640080198735774313316576066895227937077909292164569965578951680463013526605133612047528748007213314789905093889022621222184321985536297020021831394853756107789580220817427434089209920311613807182814674537340978142245096430102170644843341273914542513830165648641700311360334195280499709604356632271381732105221069725353438244005941757241389932254678439288451617114189772078814206119304722611369643391130123568200624343057296739780400384889957918962366181858778767785127004032118286695722555213028222843620196154512098644795528650919800558793452848859552790633779268393259175601058781804653316669670555218750376101350983350615403323239196519317302653320746138015452319696913168483622428972612107271190135615609570376705808917668171200196500860411498097341181632383848228116367312643337915003260614409687676496598715781860072945297620085631537702578125998323265212757570581115820723450573440925351300619351077825412231842062155821611251990001968605900684577602383206044773944945921737024689618585346193811958428554647820799166403285096194795266881966005390505579158470220947460715026117727825168729273148713385434991716498115721186975672752087538449161841506361642248824640170246279515252805690214665781825280608524467859910328147642995524705715880648553987942415724209792472418675968301536761122502839861591648046864067458081678258622653940898619871383212127890336726050660368287339587358877589807501036155267772970913916246688071974514145840607702304417701157001759206704222191049245270097436761855085810251115812302077730963882745395933180509654623561906995711908271896605417842757506197268739311467133114636362585852484702365891535540564001964157908962837479966327150820255757942509486072698453964873876610654736069742919025472826351838082487017362162116957166391722954205202494003923663688792458250057402645306342595771985231924342430349496132090129344429803044684051487086132005665346200780411291783582694648261523991506628944406466617172713193892585536835892385009524066591276442878739206649620988772981385296143617080946617503848303475521407041857164664280554655424980330313247314496012765086565010836465357142476377268573845241258164265746681759852487275326022722315922541696116363653551932219664141601638471397272898428036815276120465277899487270532868898877703176956915891919918269154831166854353592686967379515974400497911107087531921144751637606429182517388535705388941760966723951716601524821583790712148506538395990302564704929425148354042773353310282485334244180493774829146144277344061708527186996896429403654622272079495763153472040074362299007841524352982831894642105025709038954492484363822376754989194626567605798550217439587514369600426454578495175423900991127393527322192063866179401011908685161349275528378758521347979089110294227005401782241202995012511657861272421516550522370290595513051099084662865218251344041991219940847433019040481261334033765025739160681737558532005754569609814545938729745617803971938588553568964758981390223000058612392795037734492481938991905619466620717287890169429801085578803161641999672101422231287920799620111485288903231860368968830815749398617136528662627330467056447046926193348510647668803028598268566636378963447071503232833660481054227587027785396044276230141446165649638675031671123520100518132529433882750070522901033662766042255123427059119264051934432850442539271987131617549193159902816114527640409765451919675767629962895354781467307875510271231398484929123644842968567269336597877465064825680581361254422742982435486360340092096826496320378904139438101857278796184413733061379170955600189662515194702795802167225972007694700188715332976569257258076642223501047095462850496916848149058135777225727161514749129741307525569844580328575032771154027656126463003621335754038813093536419019339058425487174124967789326554130877001258931356524104324292468991671757607719846587503925948547700898775094177215014901181163331856117088067339147447991273328222046912715514820503903433853152174366365352303837498279760209863825593549162127861033509231454604338006336157150961985881213507349975133392537481417832194320621048625148827035280095776721934694345926244204008953635787250116481853162217623400735596494611736013771582921093470282592242157020200094852056681274964319681884224895175949118535564095314350750575999150351223718298184361574222761050956931406807752355344411515723617970515519678543620925520566211557273053505349466748139018448065362473318908203733934662277462585307897175928629318949634335703459768809533584979022123637115447456953172609651692538200488280593469766669780352363701061977685319508483134251690076804000041912608001664638184570906868495160770195404804838685338642472035177598657264279903362355229587548239370189213563281537694232745220333312438813405921416607949322610382646626761970768412160656948611286446702198821672957298457651244625373642257239248309514408288817491863843733023087637781303110760345510797223877358534202708331435889102220501946949694534889584426324452692129196544051081297991628208410972905383758645701824945582801955007134409172399889358901145347680965900563365659713814483958638058621793015568810898374869974905926236392791993154201146489025470957379620432276613493769925594821798435040148328259602228611879920615873903694896836969107759060139285624021804699841959961139190076347495842810456576268013476530339597146689724235467538225284627685176659076213590199276322865088579408527312089329199193956943445750505839284356216600707440736885187516010213754364823887739167839597280354281190522928506067509763259774050033509352489053453501455608502625344797067053182452078357060677575109309392251524935466276952400284600367689282952422132424664472891783773219182209526110202218481336688373790940761913575579292237439900247196074166954982711263558201155179168812293678593082509906856032626488970844468001303014267260720620276356023744613853258959526570988875155257127936929394291719628001383990875526833059428990460399340344582161597167782589714095434524055922657786463057648474332926499020819234790333717437956964814465695387690598460195972085679369742250996448973194376861598369278351997404321819674911290886122622561890767505445015555930004033381906683850192954325805665177794781709173620934013107811755377246982729816462195582522894295972870797983926255646608488298045709091978374790371409815185371852572996260456941722079743556753119515561841986606219865410182773925145199324161139353884934352429191115328044175599921807568143315060768233567329668484603779303076571170077795608335335364186565755660284093123985550848529746516520640330634137754467465350411874505352027994034091827511234369259226625865434427133748656547599809518355272771638262171111266225414038193409365565087916687141704185846038158409650372480669540404750213950414573545585902741317989515008204488152937454596127978596083883781530583805836323249402028703919488722142564446149649131421003109767103267522908817791881180082237923412135394429918881995231428889949837682133334725335882029732108242662694765983358405785161998297624686813288902846865509829047490923121812424696117478779007669095142029094057824054444259675316772306612664250707435592090765823030371042954572662124921016052425943086099087329930638804019814915510114695053630416262115954592212652932097698820934413167181681949851459920751138593098356441347441379119180695852011743548894667191385021263498681526207534067772710662144070033164905332888344239053330320304660662004669105170788776521675379997410313297146990635792679894447690430544489348045003186736257218585868231459883361158063932291224936610957315463977666693071174750263674622217629051315720115276922345359194867181257594368269652403920496629712810977423224313279349499952013631305480302119690672557617797971802019198940099944647417601543791773942476508314976139372908997992086692449516878685732705561762704980641549213374320355416077496173559707084780063072061754008999498684163947887577789526023697769730060936840922201957414590034468947378950540954180512289397169864735925636968597040076409442260588349063717548115567099986738428808101811787551848914119442435130662278769404537173702324293560597064177002342100897526883239258527098319866473121692902180014328162243983812757547904871604206823064728269679961916482700647773772792592345916430424686598657353842369081870293770752449004632132722564553332848064516460401811420466934340128172173049078706452277885312825954423801699997917266625002923537323566143871282842468664321442513633103448043485951991382776440568388868435372198592382139410699554473195781303379639598867638355470367182037191756349101520507069639690423414775846000473957853193472750664148229968652929414204155212150348168634063513663660422945713812683042428308958068128930789357571020025603079067085930761145289142420384174234280886266430383798894826594594041988501357306517145930480392439992261678266984747725189803776535019913341535296633146438967558128333867467915108771633216735606157883642905949587665910325754643844101607319589809224247342270640547170521504448734557367887663606417189304502969609012515862262025157711824942570521499781367133291049539476534760003630225049207066806873666639815746423747913234734774028213917096060603354508248042769125642384740485461271991339358582758351098977638137453535701922930856782468273231861810101006997027795632546830897359650014559143315641437069285125790241426919324808462459379492506745388814814288946715000753994643062911222218455931773935454150407138381539881515147896494020604211239289131132817772620753392207894121666159147611360092152693108430551254897150167821748472958832636166192887093942252966562287575359996921257675859049965792818880503804071143994570594137598509401069466891649668938790334401664873217615167297768675829808822223736323011141179876050174601190531811864019414314892286812658860224564878052415168315823532395456603172377554990842704401727239846879737944696308942965662513481084222276074745762342164772582546312953678278013115694139061438050926393612975745014043475035490619718608782052318195508015501254005466744490943562468459974893209705953045587359758639516734284546016526368112936487682455266961807250913761691942353187618493243147851944298458992891576325089039512936517298947260647405703380740743324954380772111752843279978957335452191335163756323543628568979704542768335356157535114142859181708862180253129351800073853273234172195933882134205089733237297715246925078570464867915396595850515598696526299731389842170518083421173834363252613469276191169187329511858299225216726648571041182220490081690350252606897105594918620670586019882167316060118507526035102291051795961536255478360059101551290627331789752012556521540775464591331227671331552339566047534805975027573940878788165125806090021278991840717916538040088130010074601054737144541597161153459925466340219047717881059027889753341044561517028546233577012345184919639175728665233050735518185116328551993715714251939525596303166419311303503659464850530441814688194394079747700216878017506777996254002713307261668807673823192268813746743323568829999354946971993997687355015552538521756932047078211026089642159661705858760242030051768643562519408461310687756123062324228762621026070490475146100570062640519062562912132565746666976206459839975884632729180620583779543943877574358971333330210776899251360012564967589734516905377924291966373521317727339112760925810894409415329552256297919586122069591736339708525194506149631625638398231787877071239931638263304975106582748817184762722212931115600997663855275721148479790404285621269364887225316476638503939702553446275033669117721625314645861388545317634301565882299716789427979504116853690393732947226536382472985986886223948352069182485107687349062807933039827296873332057968116056789416171178756765718297111769681108117553532311223201677808672970335258911010262317378021157055167252345128289276480509548027216317758463170816802581480520365558502415728592637999458110303896926048620826689897168060136743479386218599358243005214268885202756140687112772471207372948508961900270055793568761370206791025581816898023461418157821694892265837293391042754984497163794568055405625104520885357463524163206209397496262053255516574014339956749811913897809188479855391071774959245088959027384054317050268311060505706046488618306298146605767926066775882877474792478826110859213081763884966965332074473975520961345056389512308969083667811395163805093194972517391339596509734987564363446357096093042579241390031042286518631701117836181097971996267505565596495588181091781196153279183888763995894967484083677880779950410404773772497625562021017472694892931955413645593537300608807708728622023744814826521917679732186153978300937315929840884914020388003975143291151035703399839436851158769189387565757544717381030720196259828700425509769881767983208481836097360524108100904935155745994222548693503823592728029055203953704792607890622743465302945744515723277881405637650055377844772852728597791650494227539790568374633461380981707934784697324530896149267006938858255311209305398483840572862432425532000601325695210180886720398148208195207944580159647011194402585639328354748306062732757885740956901838686150171967557550340982650761735093941459905373204522018718180850518567010649291815263985941108588442387996797966776153100741621632928214590706420511279029024320024625438956487040417428635828119948604000629680674351199451535670570257538389879477460055655736059002076083309858263414731409578756230472146926710196612378204289214452465816353569678715282397701554981081435538123682378695880741401126270345154743693262708221032160635528632172586829876846642868182383158183571358582106242952817632380436028966299261889341192291987453779556322218893062051509141618779828850033780758762751502644023146573072136222034243774251932977368880685119157264287369970204577883653010854532539933547894312203946286602333564929088620583693748670536953947817639463336001210954378542101446026405304335060019689016533902547778096073315380646535718426425759457077788093875503332415446377335686324942397990654986829593828699474918018272997992757871536294666469998692483320841001649690126036274470705244560419372468306822753505704173531129877473807329737036865857618633839478717306948741318739065121868226476472130464916322708635315860045869495929738564807752386718461163624040149870246150430869934548029936226190082781604342742752852072724296030961797336966357455241104024140058193210815135717761896180325928386150777467940311292815472990768272725086206579800057761377237458916959270473159527616316556791166601659517692122433729412879825631088453116768292467840939264423141968486350667837030847457680725773620673483729228034464937352349886392226816399798919982224040706305113091853274191645509641396535829478048712795064853095189866963977029829493632680216522887474625819768296436985590865265015578522589378714601303668533248999811866035914120066031829603534554341922539784664085267387846758910338383061358705822662432818366221051107759259971992403713887284823868036136382745485400657635203880246134886377313079539546566951552278785038705147756217840307573301038725451382932664284372459705334121410611639807638636591330898954346789810757333112353754184467678648785058252828346979474845458068775636388409987318726023967573102284695883895756440607444990615513036807745841101767931445597143542591885873782580117125711456406995541584512300861344410375907257049479165077996466281152165686205862046780644029667731483972025629954155986963027827873536842827431144100786007815296665536164185217151275959749519962320376845717007381717655392440676937755633977804611080272297187031482563030860378921329226398957943737230772984600517739430265300309361280905927604984411215115732285315248916314742865622509122064943907116632662412385605661743125814565490384273863378502168150626826042346133399805945271098223955650697035121117860563143496478375139751925330904538733838662532961905384426788822161331711255213937224561955685362751665104203515886353943545137252817074311663667348228426851692838985718125227708132783679352024535725719492114669861350343720811265396008252612782659196825919623195027065709730824742845525139870092243570500245094700853328913040767528624023571698696883469261490766670459951013217486803097583523640656396402304847853148088986711950140408046842269016290459639843075686639756074017586652524909235515250391999042959729377457577486542638609618564789089747647666419035221496441361883295000801069759263641555049741279899299355346826219276841636831244777904251751428264782253912321467249946565236689138864385331784342408795373831842147430778134177774113193265468093722616982316315996757347378215970341528115530936827959752600472319389775154684839284477366412529975077726691368808778911958730903049161705981967945077858877828953719275185231010941675456011243752716310137135206752834581159238724061367768164119598544441652161167045202227867714494101887222460051156104197085647778964995280384262157180735333490904017147367737600207190177253251958860259762451555011639757264574425952562566519867422081005777664607033626142339841452574448848139114514822057903141656226187132956960716977769232729599370127176049988007712031771202017488024409914531939722896718258229706110888792340807386202262005643064577428317182317717413527559580284048008422788194458226719578391100433592769926796338562918661176896233116933555263873023640964163625991841210648829257886006854651402820337392906752368853274614550032057301408440551474565362132117276729321270123238918770439406311560892695691331835579634891737810661646957216096843483194315878664374833370963798455263258663967017564292188999418586424809050073010535958322923066511977258211207080745586813343823723766231540612294406935387785271267186056383466819423828731530252228243753729435169869915208823176150444003358035434379039120045190912024626083330543934042343367189430349300102709654711631212192946262223696552164588684908341044811510458833993664922377259174102089315581775615285566022310662902595313887424455065527272859148842918897617329140310144211903442490907864582572568441749932571760240018177630089937853369707784032106553419665206971795898259397770838457922447916733688967080417743169502497766937226167369681319728389874952160847658815577527434402531212189930477172161160126972288509261362676976060270974469557124078252491757040497378351100536575004373918915214656437182540551369266799471278665593467107660365944820983171687525373104912918061106693060241794237152227844453481848060040333872552678710597295492175340259337567777295885582512582194784767129178819835674673497505548759274965797413639724368993687072151963970579430274703061148347268609129249212075085748193114005706193738580458853338896059617676690331759570996483719925570242694833976076994690515434623933691414140358251401845574671177344781831485328077265005026125423629942167497472130478242696975624423919750190095506587997048678034851114397383772719462657813374318551251859677347739158930723037247393783990280170874320053786357366438059294140816814796493227520308126222442278509538734994713156794725983362321011997249805893714062226544241135795951684094003890778887791572445810586926052219276000047951279724176320799615993981049987772432120730639743940044485934819462123193191296089809005553236604848480221485221086358632596433833937074493515531972116524838293280094771770194090126689222318257733707295327217776621130190630042544515077042956737605936929215421285436302657160393687730526032495002440518877116453970019457569619187423749472562081240443323269300222476114075337811297892179616510744459048567050671184169703812064149573411568165476374897591992008344796008275667622378973154161029097915778286468412836853030167238853964466505139545650710791858552175002228483251808535598242818423920455554600314529947391060450779940901615454340883255824371656774791878855265782034188261806314261831684376585028393421042885156772010360349961789991358155032668053649369380036565000349314294558886680683208646181348152151720090919565210419893404598274156086835209287167282619887000120503105144350720822111245425908493569962453616706195471167666063637703588385223272930176271113415896232745385633546286586153238285299084629286304728136397474285911397191240180471939144507992680480344175823595359444031067543188047883470133412373363784913186657630490223977846982073084715880613679795004946786626516866693567664551235005052915282219092670442516430686847339143137503404508588727440475237567381921845857063937556218135273915459983793209250328045833110417052459905041067477518457968359129527875751753928587599221321728484049961833151052561280302974808910516294308756714735249336519037212192406407722393160160195964930567486628504564936954525780345086888592959068704676213777826624646688992288869264106309403875203850174313092267583545357606319732146669239195957667912097311207902706052061294826517820663061862673601853658218706979393239792545830630195635538661788948368981441257369185049154911508400042392503164680756500114406457217829152326398403715223669993190147594006709214374948044562672960553582035163143917182792959896478868550263288102493644309648270515808336343738577616883507326801812444801686422426200279902287569407552985740570208627313931492068389859045423655271361816427944232771695859246643534496279219624723544017847753900367681626618378962366376495206272560852386566064960260554696102361479547976356181005198456836632401633666124915957098750389829170075261950303563563574467577080872525834794047154757037615939048580995051898187804686129484376568820735440128145438485086720150422501448993906953092463365669216894005520387002449122765373751896100445530688040094533122645492103261432395507523502553725767309161748425086839968818414925281824370485165483049977736936213867927390567151172577404941192689380154128274933426811143633231821011789758250666040918377316772610981353879680975651083926609157240483798162635619495564046731628971845147457584802305851635177969504798093854785975811060841693149803598135251198482454550230845785702773489380804035102563981540420710884900615452379544614735367549248276947933393786678643020166856955964573838231341378618031805453765679350022913001418052738475415468350026917249544736863457385854717378380312216482735099317252284389088708634355781661912163625551713266253172720100274978831372409662422213767548479528447538395763716768303911906984938800517416150382517722515615312220870254604211869465294480288855916684373241578047272245013301222275174191309983165719931265002554699124810024444298656391866811954978855763218963791526328341973844447424344950869307737349784803168980442596742974939412672418706233704956140972409470392204155829092303262181953540474124839314566577169265078584769483829911064982474407104732308605165935284917037703480654084992805708609996195006125939562269098610307067337476670023098251560207222539011553811268064511598465885852196731239392141259975553877553286266185104568226198816151142692718800763718649157789343749639533415698550775153891064809860302819561417490112945151000604364540017476867687460645566380583340054844767946912835293305537488708125945878769750591420142643010737221293257022038085191835681930891944727500824333021925573578686506807556159109044084363439121423010902132757160294915901429203566570858263219537780449032250158781489448719228806860704903385163297733205981992733975191307086708420666271890278567673754231614701679901757621931213683530000456674441938220715424363201186501348200575020403919897787720089816812542525991465521227483709934895939923292925426153934726435171784020583739858694852606207434803901236306787756248972749687686854364739194477718379529871677123957521868225005685325039189341835124851375835242186823979416575838426653057229702427632262160723079225508378117543007024314123614647694548495540188625828860979773019090508027142457763718400244025967929240135751968570966118903311063264491344747088747853373747505172641873804174923202116626538782683805747987559100981852973519407492535414425139510549369931301577098688111820277850244249181671090930027701374244856485099048797528893622902399530639496869397603322411521259944960284380822535431625320260807690126240919126187042056180055213238552886983861256910470841873248724405904115311723176664199195986533734659398147077990618420597328067313019244544386873997236534430804034220654567725088511570145909858883987196718103908525148906264879959870360372484796494230698059277198008059783325312064423831357554494557668854081266962408610911257421921168423195449650347842755990898457211711812521864425350112672052367279676470678710447795055635928854958089244766700477052202909852029678271517885784278392439759992127188518022305541704228564103149118293048556216454786592496180729865022445118363275551608827467648604576413609435831037693218613122241528729153806484861932817832451262068226740729324433708958639545957685958438217196030178808621065365611089557153943309700045343089203947400508070712660207931482263276948100018690214577313681453714482273356380585558692374780723179549627192401347946187136691727421274230176093785142713627718811450069105780500518963597468487248285478675598256867255305414469927853488746244572146703653069201083494577299889527576880996067455113034544979813977683441421484421233182732556072923497632554931650587994778440358136784108970996924470862031371787865328142462343063562782235423167453544145352818164030374814607692732350881424419943006424209887510248662334400240053476549008825233885081982812743234987350238549136192032967147928304916397805464697070870767912076467232461936566987076345113460907409389990251529192208196876921149909466527091873968342800231118117614989516434654419645384062714944096041071643807621157157465581324743456581471747502770538918595768614995069921244977237247753069740093556052097089027351310796953261856536490706418386380075360761656052996814923032344137215583176232470889428633344604892351915489565835023084629633403355181833457402973564030218707498484047452762809295889873414252367352981137409586021773213086563971306373665559775394120865555909486619618993029836635515903377710908144487128854513514997685792410290503962047046541888825376814881913613807606164981687483227806761102450471787694319062130555710312726329488979817027472693596525645263220875841616357925775497892089672411764940355616915900999472901511505998032410280825340320714204741173281363167295892318517172358211019032096186840596831639068105461534150408996184641197688795504175964482603783992957266014622819329199349577477566307273629570339738784119407062512461662618799033739791804158262164055824705083140100200209982977085529970303090863646996319256858922408331975500473738535085428388181802659008191100879894517721166585641126869359442074021575118842233325661958608582502585313489414599358875596517421303225575209135931251995094995577819996583002341440308270548440105997049404367919437455020618929965229310390430521316677693716563555662782646866668641252390525271993125090381780729481819375129432576135488197692895631493704994622949050101029209855479198901100284468432560822273675550602954325478562119349305473663329486054922939430986235098438791993840347558606499267857828241387282437154420076910398634115472129533094876242318047125840597623006132864070018645674788207083751619729749478621773746450581386659775887622908586791066365152411122154108124438720460821652160361589182892307698561447250755777183383631173307082794868915788112354204469410612510624401639753372981775313618521889226949236179550741813309847015923377753832593754487578324131759053771238311996985818563732978017442817746658432699478999370275891967469738279062638450290537628331210555959818631357256320232862933326434592739101287163406910897546853685290820430598816920556700308295604796788001380906205589349982332318183810358908819555916242231960895348742145709669214051600518661064236052070875076296480202554297728838413445675721350713820706548828695109862562529397716708038566245888026848135294160408369675132827262755567450769696190299324980842044103479469669873001530560557770200112911830295859724301543641893943290338764154989586515122179064515103942272013895386088678173083529884016688880452716092413571367846038328684300250316040835795674785159092337094868094571594829718408952163553375143193657976621838717205750149488913014932810229320266669819505328204755142939175501945557209702750831773277826570027051240002197679042369114159265039904513813517257138052522189143360410261990177030565897966361722459831769861363964614319745038073913691349785367677363086149857671212858086866599804601634085393357653322096333963984328349858458621432768044736753232685564396149239250625714804438874208645875996475744472181640655835601618348507640452741487025670800310875735214761596751054543519652169778316721033345602699598783037713895767972217635173606812616512348652559354997880029278572449487091141273067142621157630851103790434423132243604307861799454094704354458843357177510537637584097162537298244932624707774445730110648047497511197144969758323066665661073862356071987470979448820462854760294692505168551188803306188246328224973095936689989278262249429529037300982863774629372822993919533134960052005915832791411399523385033538086702914399169637439350470058994342712593718763987756345267401796023080758270736420368762221897890145063593053666595529740032863098434926709860601193773141698174297538249708429812268442932153391970190364428432255910075371644848786545698951146496315788239500529546610489659515302059646781696576348606118740118685250804005396481567280046381110691826782716906858752085721585012315902596362956527683129575045222871429767155153494715875372762304197514241015541980217804129177738482567491749168448221585749300496077539501236652004091157865131583344444961229480222559844378361328186512410013893444947832347232735883449762692624000441340912925591626486485200429275939442449970175451264285981532264178720828330364526617762908865904612026610572706816584877183611564614673259371254543842391667489817258561985463516865523531124489791863968014714192234584153174663020494976998647592624083543618393271341343883449483091073271570129511810521238137605362264397344335430564009079870645415811432030776803920744529757593826259150365876848114497345477005468898183907080249721788743683086322182873901409569899582892544585696810213504301448962022747184060822398171231310462557087276891663911757042656226670996691786984311793649350196672069414787621569425255123634327399573020483104606281252988872364777905333014655937917138306816420137198150201620075661670236622132847226277202934196279315576628119119560770932140641775607711992667141132550702115247465463633058199478287560216384827352694573798764383479301073562995463639202707350083574313588686359283041818173474310580132545074497090197564626107368042544936087747202753968707113437214233356540325880901864176240738502509261842810839155915036620366385396678389096578850715634780309928713570033641654739829066914666665089612928812539192567727535826152571037973120729069918184571767307089867848382923307952177781545153714558705410581945029503996745589142427935228079309549927679903268587505721281427012294324188261047355474472815634837372975395125108201811381865966441614728734694600718053598151620817926655967366918410182824319777857360094155915760999183521776533046598173126844800450378515687410839655084137690202794281926369248838056159115433138378730105411445215217481691571060816250186691100266704275118057869612179962549026541596042244829479858672961038787966309901738832556145637235053679850634284715261022961434671732284368837721525627687179576787173891118251034851825390498044432957504312234689766716351005518921431082696008876782780050923481396451781850060611433158795929383383574397844561984889756166221932214303899410523405958871037580702712925357464627772846952238828669740436772302343782001848497893924510292871697240488452937143054556643077195066727919118984441315602250976783024993413198653156653307539596080144051033587265453279395516933221598260927835954028632597886222806654173660315388607354520452039963956503475412326055011680630913531199603513210717395204503141747550245849014988279773648986395233547255038964892353202402939422621386791805167004432186176925157905448768542842490677910839899608423583602660488832368574875838552986558529673385654694817075209709684513861772284719722747692801795557770035339343805859530768729541012788217599588949103863332742628682824233209405904621574412827653356193431269668574744507179026828725948519462090015161937655832794992597696491589634588833140211139472100120325634617768514386150598798788592227939063167287491188517229723251606617501584999914267207494240347320607120788254263668085124013558350073756622090951519797009381298147237903575782274420501982531572371177095336057158245033655296923450339035030881768562511995799681642737015965626065114476195858816675974890785550474872933203237233256499055220555803609537812947686319197009407759453986406502040532019540784421359609933478133407359292441060012574752195685430951945401830720099292743410453433496617189773227164822215783758658643048964376583210982106968005236748824252809133007319647420976259845588538790310681615320677259616821292286883778584359030894714788726049169854233454187674991960756455989679722629682566940819707815633243585113433481340124394734281050965775998790096181170045658703298970613976057702237305634370457520634542295497773458273058629103666169235193566614217759771648884543148843128219982905753139689788497173663242475589460764685224661148299439272992395116210860541756659526822330330991867326985753892208243646477574295788136018574248121480815182434950861913364065375441021469881168350468139303147144981673978730535842012380544309775548482077909940384795461109909753232556196759379562343886042803110798245841249383848570378798933862852202897436683815647171090207253060330194085561042530154872384052639202976723984308245584966188913740279260795087151488429721192452835245814307715562914307549264939028398112389325654038213860554507676330026860142767199560325918734255830755212695590897703900056089835481570963583627826367240550733844751581373203061854143241170536303886304685675809121340433818493312510081168091381545436609240143071806465780960864870627472753696813240743352694293705255448690672022237939463720562192956351709660626074232063488229291905358909399313002007015597190287816920500389814004820054952916345573393197415108755885890901452104535226555785173878693815253084261917794799185806999125473028053913890221950860308082335204422678920292404517970561678242328772945273259617475283955770765836603647267609560594194674266688274683702999369722978364317293925718150854554434583766800273161908347604212802028478012847408159619642939683483586310045297182422333758315719925293522194396032731167494771574547086168944488413260470200772877393648634509863170537900816070269485299238711497430300504337777371473239164857930709942354287485573373677105926799356414056486926448968863604946548317814143277849848444457190710631267612631335548929975630971406278918657133152652281682013572613023648647184051427527422180487841200135587652948005970196626471862571193098264700072091663496804776185671746173616068723726338590057347778368181483793549340104846512870073718331127366050962547488680225143329137682664160764543092716973640963476250641280341141180341334442228777838652291946553793980428129339852390390087265064630310206747886216958915980355135010627313196089697105764755717712234949842301677584654039629166299080958994085212716320260808937414810686523562731683679599861606448181975414530757348705623563492142573306848352073413709639297976483221693560242408790880501174270940145699642878520528282392233553692921574619634696308577035627334788500055231346098476147360986042268134185328347406942609837661607965639548936941529251165100499960613723224940931300894550778411453148350229978635608729385189981685419930167088865166546805078319508818798193073276397958246952301413617131989255944672373483695122225730471880679969561687524836921312049360558117919608837071386077886758071025445174879686577069405405232463540492586037537595771913240970214114153364244464483310579494830895400078065640237260370951731091354007863805163604171283542556448478876963387265856077117460822763768933163351947065798678375010801184486839257711816393229516497892487792548699011580662925616490725286170086966432764607769295095735975377824870211132853308180148255962051715030991302730942743021323939614006948762620750971415216131110404737997449748752787663068630639292323562212491110068229298882737126790386625389532132653263917739142151331266843462013552836943561318966259376289249430925303816109515633763515701058935293668132348591201876292753323915940231746942852665741434576806637248842888176505234744553619027069179494774378165538901382467813794132868625013760881852433243056644919182377977564319148082474182363078909141809867091892211145636964469816766990380762444524395660148817658941304480579778666243199817507088494842566143017347324575950901746846846697426748719095871016405939250526043831690764045391520070566530310808308218740239856017607842975524570791514838640152984924138692188345550520716095242342445352151936189487942436049793020273564997990099865650220349451532759281586963616336809579663047218320801368598536482490511125994949018677071938667077324816963237949691115529991038333372836301005396867701914693692515692668007429031693374448278658672436022146794356021895924183829195825662632545929354633497631014558186732237841563742995362242634133504946318231336932352342862392778205013845786718083649448075372326486087071228181012674684955611029383856203918340737319942178359551307574960860571734116280636580345838880615960023907508557557711685024809172417158501915321218784186838741257655190585455000729383083622129609628868948249726676277253294493106296525947625488894292683743368396579557972176302660788834642986571682377084065061944297813602877267442386094825944214386962881588615647641350295615833151194129860578238557579438981981125653742249257789557993382775725475053371253388453253114388767554930717757201376871264234462722218522028239513495570792235838956736761290735188645587074543541032490480910921544712524220055506877036650544941707919785796984683077613763349440043810075865647321126369657342223266216283105467918765515509648027238828181851921508030944512218528022990331414557208690298571535000470939839374610422259618537391398372708540244194059101202045876980416904618755674374864090641143086319402705255206159939716715522572325159946151584374727293402803563649490317916550851731142329546565414052872756678550752709642141514140644887312415720781032461460469084135449228581549798958530234919354428333546302329311161749435614646524620307437588010926651247421469838824163395149886276844721865997219070763073747530532678694466483764248620427870080659444258557106858742188788653737622914355063544814000130525594435526553398005054727006693089339108428697046312624404165524216609952146639127783927657805821929870118812274835692619972342189170125526051073966305265690974102035981114664472211392870445321906756802717102950184613418495432153815515583000542460340935747096216292476988299719512373304489835367618345116165125537893963727334970678930192315510649712338698114862914593569247021931425968734954184163640509809560490848042780336975441161085770889580767018578551942238690515240939637894667542806600984936206344164296652743182331844112031960515372273407595426852931941039518753009369323550752218783223366242570249687100009339796103094481269717036699642419093164971017767868157201763875348129278469350519712461958637850159768722899292334914511424231285048821986240273737222812333502205200309398892635221450552326591389934634167755517944670675724800637463979509556639998982933552589310551950755103112761914896715941099562740381470085458267384056372207576886188119119978497253197194065003518299803117009673128296210906449321063660885528031515591136830643149965463150093336830350937170793077553745541883830280790960167835395831877190494007869866585170178733920513668503380691203524539174343582031840183318942362648503798740990773819562042341745265699660942213764479347082751129326231676717858730066392776547672600327835782998834722519472421684528802253163489222536492103425701111188914038632966243132151491755999644535553820171552831890042312827673688382442021393078095388323380152646022641553353130203916986010671652106682417878712245734671284856604760914570485526684518605815136692223900901929664094078888763615070549319014144995960291250753098283514741597601440012076922614087640963950375751836550927933657712306845568387156511303942590606199870966955385795343604272647721089994929559017446137632781341920206280935751231258837432124069022018871268099192166627650728391547254498314732608920948194000985976484948892891567917733399636937738221164231421318779363519173340714399339825985235995911730854944545601767001568494212368893595005224263623593570074241182064547463661250762451053327357299359548689921265665603212791835107834802919695809892244935571985549465402205004692802522462708093839127334313906447076043066872100776557651668982155212500563794982498845335753476022407963342886850761415644697127236293648133527694907715262111737225425540285738617935355188751623192282548613649516976640825169997959354460125139905728373137758959576771426202451593644257700875355268485806319813068061856894220967156019784163631156280208244327794506224141310841959951671653750979007509588935460282617910835108679099997553002809237735365409147905535786720377318889547967098401451948214542891785046394227431008933244314607274906411475461113685050927341279817178937824144188199034485461118004713357829817251469337344728730827176814376547764543233221564371639816591313445583306335303572290462879158070679626545711126881859782560835692344844034673513633648969192387260433125403400171796254709237339680316091608997675342404928274306910620814241576209703935568536364726675475659039942595410091819376799752986858284989211431421072261284149891643232448631985078348750625963776541689262233140659937373065649328491528793617752085988536469002316550440891856160933632086517840527203311468582942991065731054333767164610133335110912317192582622971343995600537270721973853471068548122811690796343513812776736099209820668543951140591771764374514434374083453236105873877656173519044309329556591448333806778261748967987417368637785922246942164617844304232912768492694849050910634184694365053674831470143303228728198267772732840119806782422479618165545490757925582048057365746991959612804663365691687091286211684058277850388172000278794960284842608298102283691175819961574016024616898170957185642581549911885745098562153255861566593068374163693725034292684699675836812313167236574671063621923880801542370901516451874237953904064084209086979520975606113451233496993174674263457148320483542570057010536462240415862999208359113875502262055761683119934649196072093568755043606526969899569877943480141266787177437986248128966449938275106898165644207194077098423565677590389828384917948128415200253942861917555685819630031960193403190602834732365136251457143948061713921199359601831885397348846985159041574588603082376423809809036159673834281651029071148424647998726355510188791824358003077728917551748451641782906867460204485588963390430787130713587677799476795856808727260640569798576951864899535182603312980255614200666470807597110675368679328633471466885002959301161828783733562682854151937943778383550986188572370484528111610569344367015669019917684327054683333032597263801905091760825205855779364446547464740306284583047716284784469171043482988220940763716698233090159196392367373401805543868151121230824078962524424922937810216663144950618265433287081801078917038771026041558098716642918196619852413478833339053384236162594259262789295135158696502269640458710660701107987359190701062091751397093081380932765035628615750913197350388000570413876590805534990057107373375217519284405207086784810084188719440140296850503446313394217465034373128100329026821864474509686252353763167142022506889054069281492712798859012742426184597307136207040490903329642274623095261677175361118136910844337476278098486833880290900935836557854927606914299140079377739941591347944654582163513259337534227598872410344987570586859764293454271943938085714205176239776333664310125819875915124978350719724554046364302731777537516573771807105745251044748701175025583555195424213655611096422622242197261928487458384383660778075237315249761398141627200416002418340820409377222407369710477120254697029183258358765864680668353821919060282124073213809235998127597812088399629495547405055245037809935425918438551423744037102898642447786930497784577795054589003730469438422247030302836491500162639317338857103610265354250878943110423264322039350448794178391699092059663528322176830696418297048086579286428368170475445725053509604763236931514516574211402743751807385064021688651623310854942670745171874629604899436863476388286198478426786296038868809713855072707183649162765369601523940581389914330656777688085403990482949133597922040578643840011946320782450919375859067166100671893577831116374801681768253488369766571525183921817369879546172391616806440188902647235248970845927338096236255126499520930168572054689361592931660663298548429522398059508796928221654743436117370933507387584847598995482626859667906091503485487705076717962616563871418499961598914267147223999528554729806407337823108907535805025378750603267070796646939328365281284464508149343189863736554055640238992033604085454145936219500635471779854759901512187547736450150483770489721915272744426673275506474938444346470098317531202869283682599476470065436693146533196573432181946151932250934092794163905523098799515683817705395043052275994540897507652032641008869790810948190479614583189503161242216418303472850103247630597837413954112806599497136282121667168618638638525723785659390256947705503968042145981372772855331910917142659415000745058007122106730142220174818332961626209045521159174292033587634557777148911398656192435401822820337459455865382685635588179894423207590874191495560548701415704520863158294949580308722017144077922078444492350811303897805922904539587878269962656982775879594491518590769412487709918293796694513242375348688819918517186414636455843071931303241323188913492607384880005144635404916118576279155992142205182825227641727059553261679509127173698641312867870795946640610174749039267295498924531468347014206497908372577870404194686859211738474061713102413876085340215511585136115502948455135535223787047902112172259098762791508273864882594566390747441317621961315270259424664189096130737429917640770630497065512945922733187667162206938363032109893271570144153375892561869111716314748247825457424658086122027400562823355274668572219347840944362475647133871281731415398991948031870094806511673397102929933227128948740132167800972048012168130700748565082947428269460485452438944268009119485844921061907499938762028317841797205632739807918609829915576820498147254850324164784241152490081724349148787412996837190626255738600039091310649546185068421202769890430073350946015339788818029601532280890213572575433002219292041107881288337252008331564817846187644366930542345286778810709706335070582277235223931352228036814912404819055989333520681487689185150600514650000244080337880474430706568129920428301673107616096703765686777904177232234476143252453139891065636814371616774124867622401729858138103584270794193593230310290711641495979135396471616188080704168497333785995078653516179048127803413803010997415882751256761249081303271338093800519409348523707501528319963933523916294708620597531417639044235694644782236479608478863615879041225886410219136629618325959848742630707815790109455569637952659432693492421522150467827843881388358091540730722337690708717991288953030974768523522289667545416027632778716036578403911597652033517201614939769038398297925078353377933449586868432562590995664884223136165981903861170364453942892757344118986000452341071757132649651161834772741008699002553179487287575828662924660785152524387184493989066490211474696110548214405446075305837916969857276716952209586284909886376153627374400276206043635114792144952156468520745427621118850736582453383236954308204757642291826040480724917920332809285293009494222017152265356406195123347204484324868247341789903203109016275312982146030406466769933217586333080598141959663212688570520672670477652705491993022056168492313696223565459819683573925899865541809893954247823708248258586464754026794210003790254990638307029054007846557702167495883362738553064885736877518828250178968469006919562634009032741247109548763574643142902236191021440810303980681405369474950775448362419669415108552283513176926877855011065444939844446708754897694887232148258617794933398899011395425976287794159526116316443324337890309317572953973228241305261538636171473060684869353066329828143998039120970279250435095162789267992651699648705302779887154186055106970932521239042135477396428631900880617550022353344193835002899866852136788960769179037341007836614037595079834628547255666382921827603580044262736978155903923839743857332141890992078827990771436392120011524828675944381113499180228852555156820766048715758283058600936363431589465037343746677493901503878930887090607989253824314204384972115406956029208755601356702917279273105179205672810402577739948626105421971291400508890731240309497129146210490661226672879202574857213266007685370062312466942990209389142973656977217882602357204949714875932692962657589215156545252996559123420848910084342752513474326171094468975160476843484152145418019726323853732024859477463221050835277444448549958833299440131130811158507185616242550909814601592135639371892791216111733681062215551820158766994301750378909595185959772802150142585875183163176498712388538318136252633568959038914871471858994423035609131646650513330988444035916448531465791386259749942101371403573071610698656931301934264451370311908307553004171811034660719997109882088218374505589049283428068317248897730439781154751549149279882735487017117072301234885490923481392722172220331830409644951543701726948333830006197303527177194378581772301201413177215526986532299289636700843580487249477695751778630720109903388844429819900944367435352139432103683507900983390103636295222730571233006342508290006334818517226073317495660917066120255865357523572906772003507170923010423611214866989419231170846907870684311157812252785480372966886316565328946063619906219381213339323294298277415101273120558702499388536406560429821932416478961347503036010572517570614635809855230058857845816844746093431106689771116721132585781687111488682019048875081125848770000247007618118130884971785605460683027778629940998571111447663428551895867006147454488212831636293927788356768574696077990820334664695292375163221854124024667524278871730028238958079643039390823014065696604649451149236864871950476277161702807242044137921498113856751983271288121713750704819301101259059289281610596674341994754502992512297308224937816625314387582669281105788481909347414118374337322066351917833961346873589189303919441231269317866268961781848396402105612712858452936346713849536326305717687793270118111903298010790553232463870219418180446069644014760086275606298777115685200395658342584846767434779288246776119074891849558579579316336961156952123874553056026902207351342672879202331589830400895361736675944052161950568542429351794626757963640264813151629979088391232444095084764337034946855462469805992557646163539555249680179850210457522960658355573277353591470278519724517005030265361939978327801610793088988796850736265888889332312344540213340572923359970193604799198585112696612316149314241902985988001766082994465101724312518429029166316638790188085185289852788542313321846055211871991560776414754112956327224931138699785880463708620914281135589709775278829867027426393651988297102636436376984046649567807237994862857782993648570352992668687479873777275533038245333810268176199396385148898237240034366846861919487051718910784509691210941969168104083597559622302361759166720507914884261198342497968391591943556621863169521414024676165643397087729609214025581080622316837689828069652130019479199131558924137316037918476036108437491098256957491065672036487501224382732027034327363293306880802991243586279134427402559045143653622946728499251965900258839571137054726841361378985364927657564429725708936788839035859702148568592192212850475313270342093128366828901508782083990976701628033146586288328821543974636161094211560102666534334102705321250071640588535421320343720234361889730216082696910943833341186200496515012383729617925613868720583734559261589474464471415003078040039900924283996998692185486782416574621426472409886709504748633554560808023372100220618770297344854202498469572017333174052051953855920537507983401783425088546448129613163266973262623839067797477916130030768194285976237370700452779107524007180088486938080339048493079896272239016791477495640170132401995313152180792381676723777632905530683973913322477382759810781410473513120492468479952092549569524373427406529340268628116088526513018301973838606691307196143121379627171764309458800194808868843055344417557770241257414710058035202102892979597903643555777456114491018768879086039693293165661763380330897408680314893505192834211005002782594830461673359270514725220266881022360068025742729398591089102419779758229034404773118413111088528375232387649519271206020667956090386312138779371232169030013985091105019583187773154248873189523688472112418442163600937846484047849420391467041502858395363803118195960442009572293593088667347264799830405101235722227883524896541364438704726518236713268529451863856397579570189308373077583799433661307110734565772643237688831010963868860735810655025136275122165551191549943847243971747100439919832548877917916637796639198569671881909848596513485294665976460651103981875362804423078514931606326669501898818328397135352034607987936190825252680940447342575751517854913376074332424550882017028989934638855237131931671464154794002906954365957021151585930747197520040521884303199150907140669410041036544614882495680278928810535263906056665397010934084927501205403449062695805279078241618152138511191442313564167342225581137204783734347608516087235385853529983611151596479811411048458161749000372537345948348973209364995339307241958560052725451821793006940373771850025921584754686868424560085329165459959171250326214876795260632322183891781956841727952882095971132161970746189694021549461772244891843975153589983086919723336080705643196760621667379603069248757162779810093179242528028346228538232595165755230174573187500215792925322082239208482265684280435740503595737430951849631698642416551828035314475948649038728943802458216305506858782071972903904513980812177832781819811293445255432489535182416692937997866054919513632532200755927288152140683296238652402674684000016826458057223342176100038985260380015230931795683643184144240222187835023379992515564066247023963284833221550794512173315287521428824134770878201847215677889840897349983006419142014188175787658795947439320445525652249279481906454725458255649493728690454433722955794648299382157990064654747536930298698237514071922176190287823710244169192553492659761640297884275689464567333466187207221287989959005558648671658247323323182365409658219460181039822025678507094363800259297534577519116470976020185000869785682305138833306389573279301289866974806646286596920065692547556511099351387182786401061312071510697726662986231703818623343514103961909358324443013333680037532530715865176248678229663713959928512082716928802164218770826046024152532716490220412237798824682948258776575976790846933347945488570246776234680815181092303268130477751943223697584476021982376991815550979105857595423473012929515111208187119412140864911939034271327054047344049727059355463883407576962628879573589012579690828899322276065682800785575995160206883632945816652038083516798585883191495049123607214034655768802484957424576541490454081421377507182025660364220196326407252867302248540918666146509319576027661305287881003477586411993058029343714886586414679856639052274599891089343007098829569169220553128481457836701652978071501030486920911925787722417524878743959229581324309994293030492852921014745454334733598642184903002780473080216520088524770528173524323353716216979447174536260221955632561970450417487616015370690904525566561552672074339604606126944108318402663682208382214847081081210353782818973498765043219127084193148543260135722148494362935377964015143790562678311013197886268560864875338700184181289270035788114175032291898841245290595471912093712091553949219322055925675950481355655337667607954555544694332127792517695341892180832055210072774415635741062723227146826393083376092125543782592227720506078812495786018466682890531921672564364889607332356667328611427018721961951040518487675320701214505484860554458269336148013215540159228528086743683884026835038228297771120003779757110951663439514597772907851380537270135934230851070843003078080443466117587951470130822052374175331308236182082284183783254521174375502313492588063768209475426717066387252563322045562501616985415642404599121706366700136201454950751122077281601495100336435067314927610099892716853998782905801659345620909577148404515881173576005090017663197709721808536552615277633422576337301402173405645682395731485151301593742996068210813082853428884969198550837782131102195885947568926855373155139536421534766752105238210112546816236175000129154373170887973736870588130510148927113160884837425513135164880301383767504760308907229530643414241470147948689849903205024139831157654252867134331820012631775593284179178131615016037466159474222352852386831787361571630800537203138491574393416763728591544737189231031543107260170585137760082325050093531196803924134899510061265954618999373747198059750439505325498435708660723713657113233102072722318258987859476537990245739769211941954728252218118589846667569946475047471062190240652402271224532335528791484334106917387082115733228745666586453977243994036245591546019947298054874841241056299281591944367428294646892263633740616315375262641945744706426435475146416998266225146368181014673379121278121546246367945621433260555966507297834450938530020385461983878027106860527950830750015761950854400783401921187515940842019844103625913718119207597320272635388592210815390649463782639332104494323981345434220413440843963900489515300659212948738592759271905582462861690171249424200182546940444422193683786641590994001033433494157019060178366868006940792237962503848102840564801296936757664667368854237904506053047553138047485013218945560009344466321980290996708895890306763420645747747185641335697712277499544029304721145612109679731198757429795152974127490981781845190992387046626164972770525212075016988381128489981928812348288301269339981191409413935016219539800374572356317009779857204265232929357798436789085947160447168567248607534490840374130350443855150719926507655629214737941061722578647167313054581459501931976635114529456928223343376033254235181633643554035723319841378525993564011459844371725329097788797431869671294069955862369082983998077102525714465703676543821360015846887999980381275483020731924315269166160553349810404939957720985808125715376282767993771685967924931896167772930053652272521748531767779736803827272413153371804527364510376470638950485128991805494034205899025716269690505491131817693366839982114111705743685035493430610954970990062901352837083891945912792767645805931149034442077364215540129146557831999203631056390905485757806457679948395998785653555715855773994657507159023115665091668707801020980267357279306035016616348930569747363705367642975574994653233361909500295793796740417449884860247825055739882171996893803733611446826920289549340617515057769481811519432154097517869167867201372831672827462336710884021981206102682943149630162393234188161707657743541354029600497005330039333570822775758952890237920083976368504176951869224731858717536169657477410173697819346797381707121209932871639735003601475047118873884113063584892201517319360908122747792953433387573999690744327633675171263045449317273792552399893881770755840077930250526045309555686574388063316747415650955996801232121491975430940605723241576288910520556738624041635396897355748247369272534106045915178968860756414315261328564330452424413725707273080029992332917117483835216445429722724976698615626669449825717398995905897777298081032918404732740230087521089486949485594794751797925705352025170117678851143107677636161832372061505825434481811363182189145998810773641184103305548038234764345657711760067431714546492516700235957863130001560884104509545068266659254067601895519955117550192800467090354009429950562355073562752072041297740077828393502352798935637504430345805292658929514514849707131501315132899082525307095505759377048169303940787573374037057194785405431386416275181593319684375535493612173338913920379948435280661256798390653683813503382605726014202894940812120616785816942699891122141293289312290528644844358989698896853469860403655885915457394457844481368217786507604463792531775967030275132310172383163052972535278296105455226550274674647057266443972689643153540619888335280026531153570902632593799237310736308792936132056308366349770218309409701064639080301263186729514446127514083740809758487016211096194920577536099173353470086630394842540465022611900076384183286635263162419405405002110993594740459601660322808694385976266625246570466957598846354692151243761211625189483313342283235395459488010428351150767669969457530256926672630989891119160634032258555400984589282856817232671522649982677973864241307116019893753825201385229415901036124132922531402548772169481574501047788397362777029513408348395720940044167732767219241331730850663988595472282325250156634852101293987954021843491944479622196435762069389253941610150212627300008446717699757569019500051737945817449325400620336770299883858691075036653788983222461313413421655048205183886330938600389851995228048108020691805811439507902036738272316630876749300207361086797692266641578600728215170984707463135576646399009461562789628160349581367548590778659851385246703168832515529826856469744123148114104057358035083972965411654261087718273175518769465407712720905988439207404217013256657052586774237523770187479384620174710741736566801136436102222559667297521126654474696923133622479420564823716235260912936347860692083373230896405229205847133139705682837925345701091432532216006206426106010680714855544913211337715842134653420253764706900892551174949580858033923687600594415205006709363712791342992889090931091005044745941104554134822217979392711247463011026474493876614312746003568041809045660306753534891167494366848969544281341879794918205363200321936508115177034207984854608679012097865930046241809486365403524656565090835407576180476214468253706046660996845702064235649218940724623543945414045271205858206465775210810681939762091329795913386911194823549977650331496419044159295370705202693087662211693375319178849187822532808129546292015451579748859156462501250376065515205019067663179518966828708073842521343852052562779845606950146827705055655411951090268878824431389032122028454125641421073743215599445808224362533230361479459346536138154684282578161016692717276222479645556035763177663821048949627777531322543053499394054513310690625092023826216587330866506848808735839520495278969028984204076725090335607475158163558634948798221564638683767889338897598811982057405032764532653168385418655010736695920523882600245353782791727479322701824585187685164127271647920482743720361327927744915102468384411963762213770002769675412847517368670677114222366547905167495608521368035413763757226653049016789334514680393239911894713828421667090124803700666247834037916633603076967601456115176570366014529467927292618311273288045005898264233322075682701934740999434862779310622895108947549413191152582254961628413357121777562274930678941588378537271274775715343386855777306674822612071588901145570566288685111993346901153766045218940570554719268587298831663709150325127245780750909043476498298763857821198597753033542749720321428594069480500744055157369617736072555024408353464242992514382747014018310994847278077145042494964416935839600563637862134187846504460118592984683920822121802630709610986805403852862521085648138627102853722061000401537894872734795748610071983415724336461394843301703104995522521064939301149329740030753409070415749373748889766162172403316895384109334707828201742903658294352370530688806098144333943601172991053164564077693739828344521480902884842211154503460496453517270462521371926877377582424013697023308625067520737007817600658685277554055942404988659657909463301602332762993831895181749386966706113040118961801931419485218308870551771805107150328929007434377777520357143189125884231177709949765711381805395454978523905281411913753339674674815915314637802369945006219893935056890337917844557023960543341831017524135661729457435019737450277151291204391371333508863185569307594224674439659606813909364598146222456391570341826909684118648913731464889797731471451892891274418572050644045156857504660544258768950994974607826281650746925556021850351884050042947742434934228878480643369048688278057593510390897247977941481919384887404713097230548703016507180311730211310165583963165543704233280205077549744141303112950539733615615639849389599985660039958914694856692104255084946643953979295489287392101785230063008478432561600638330082296759023361979541114626574464516025285628543713912624061931782084815265402047176078134781766675421446282858439713352947541700801608801460563682608131436506674373303735224466681667445343016711338316406315124736776064369625796627873457492990412006222553763608661157714326424929739758982837062818859647165277610677370021469911858891367078098407524959059798560036910473462398254820622382002369896730666952611765096149276108670251715355859067100210869215407228718875584474734809254713015672215680908593223439141329235736906060745035625629151954809122319050043042632767098344085136948366569477142513385001796689935122488578375928458238979901462142746015292854663465408261846847816404830186442047763571581605417616572107089830337142656884640527401059993150970447392826321999080812203504109192673996575879602685931401965822813990532501903292913111414492327082923284713710913022040109704322415241504118076314491273702676993131143482373326061701584607483530084300561286375459060134343599964761086047798694940080158496336226143206788263127861708677020507088271324536893828948490445546768249152211967219157214563925080470830835420378488041794594257397356257606665267730190857494109427544589471946935998120926960316566552945596936963357727912551678011413088364402898680317921090674872248793306909022998598722723026838168963679372678465769650244710196170641080261962827020873427144574009791823461463012578904496253838429936626183484930008203153587197255893765390014516553594509412352447307857637068160999736527349195360324401072806124204151520659212546640577195911440300249384496032698298521522055247809361794048403421863530451494333089419289282030214954797398078263012300698597999514021316552879208185488114863984330979883864550824332704825111872224720317463188440170869994430810509420109074691874293263783147303768916775905274718575255805793540065039885281976626558026493246896268170432290936314790147486999561144989034162744093674124146855705298296728121646915085627584895317402710496247631598760876830844149662357067395477720022186843353301874517786499091788609566099526898398134506913013503664350882911955074857812880233745636648621167770548308712434354847211184767874399044949099134436287988541508689874579949069077492872102879120122910342836164319357739546158546310658020286495752269164767339793906818416657976905845334606754660741549731491319114725509174354582978651949231621386044412753348551984383937457038780153657200420300295896175390304423070350586924692828198235557400666096156162780356361647249503626938998781792390606987595477926865048481032000671855236241231042081247053826623803926487452180256558401279949761744477762955464477896936302958488901716587100980122481597080732621067840126837191750566897878154240888202059295724200116298990327604495774060532002460491382188535342340585473683643101482599227352843184565364405913749150486799224818519323784925761960179175734006584556609127393457263142687595896081780403854090458089975483241728067261180460681180522067103962564470107558306058843694936121598780840054625508952103867179363488193148040848667217443251628821936842005569994224274247238765522548318119392892358183429993748211350811241408788980684957137260640665551415501932661543155560585350306478302775852656228817335845898247048936492599060581324130650910513766476071937772822307093868520459315654042752798810928450165583493851568191993147357933043422674262853104718937150590648591024348783497327389469181078985096131322130461277384507651706546298700183345790647647759864453025591489393501512326712375157730182609588199643540132714862924688640381860548203062683382106963428587047415831429646769180513594281102330888717842164820198061160050504188545927755004669675099007301896399490495470447292613467394109979853002170179744305628616810705620661335013828778982652155564595333664384848630579175528240937846707520618198805556336837610503049468084999911612664748512481041876052582187589825243972507807663202264531544386612292092335735309824264498593469751465387559414306920684719360530224431383886760998829186448288867596647955162401244704152408290594617196698040862121323020833750721057134435990862354064768197240666145542548162919427991950232403263229723588525424129156972323644433638502159607216533120847830990195023505779210320160744829503022179422634666378601386241216119436681984841749745526887740851831749212368727637946638761199397201978652907101935306231764979404212042968182849105514903781092324673850107593695091203710005383449211301931335069802141065014241104756011826768172539191778858612175401564595767602100897594332837979609052158436282200548599543694275659217461302283588599974230882034910310133892748969700184066319789432813976510714196121836490232844249889078230737214557241269631873953161726768828676699049420219663386216258811198896471273912194797202344186522127179522043789744468148644534329427150049459590535401100667616849470955955531133103063000508990360035550779784925276545290500957561201859849325237681833646902560236345002858378782978739324275376736575945172031387969180628040822194689282638541383215902222632621961438396932811633631674588912051706445532109829487659626252063685463251067564832564350570551433686945607538604733120129844560939778651875157539510967727606631275398717250701060160599647866017197849692664973535544055406024723927435912104596177242194833436391034950569684919269611759685334278216985138343034822046476033486240313781342794053578285440235051061237136361997242200160856369961384712229074921366715678480831445619565228450274654576615535256055537088130589041004886044153506085012217536460905993045161779618105134494984000623767864620818139361720038240258339278610903254262485738332364104454132756281935003411299579848123641700662709563305486566923014013689224633120030130117572482738247377825639913701597511085019482567425069025120885603851675838469232143798173020082150732150066426527456499100781303173892901128646996442848669413876411885241086296242859282581083125618736636635560042649728392586016090706496222810109076657803803676578487281540844930632549788857365153572832112788911678701349333401776826694205187283188379564795482358215314372772568231881752232786254206194076190256615258586774915414516202412331370135158827775702466627919098788289083456948169528897907860385405443712418949307764532122545890446895744845514011483282621069075099790404957635283049123205526308342933346931001731888535231227121099847272550589055527656910595629260698594368814282851751654843420796536158062363874985009528278102270958621183816184015866100666964053931505442902240817555936356553807188598034501379096845976326791228237843986164926302155889282768549678865421307788186391145573231535277231258766146302810386559314769830511965995577503224071879002482326007753463915477719077860508455347350125504483960051690705395758284187985890481092359379012159524951921961764775024727655271160987132731985093826832401994714436069942608492570923439063950332106337486259844873171464256827690275112763122313301593180366331617753336742123010432961530006678628068979409235846742556018826851692318295999885263188623143756222013850667861967762851563824077188080997700352546716533205141313204108787654066772421913114137497331422880030640335579443703663350224403874079349469662150719473612413949990438828288375993075906717686635374360700950250125006923711314518393199241617695926462154717599431379451479624554887406264583709148953562080710469245865132705926976934021314768046145080461763835764332000161857556593604523200678923946407097868971978407476330481063957468707556197843680677559421018234744693283880259254637240271001909002222545737155246345772663317456946169791437863208972329143409167196981892385055722321131570427557576373415039462648441677563294799293159019055043312699059356978724159148306124968816932288199318128910744808950062891287517033910920232046316828668094869743053443430309196343520116635255226986387177919222780490269913409648307436992191404740486845209639981299364066852997093318340180217850470543478186806427764155687137075018728511597269128017663769867830154786116942272786421928518679404778734457818204992512209959902833319349223352617079364058446531739185395947203602980959337632775794513456386879599762900202047268035065133959428084073962000903702146541480062973099481966125053635655012560458083768359379986014876508892181884861227184410334813945051583873444415463956868111984542786029549863702468799225064365292387843138265010026490915559091090087250815386797892118927798146419403333967552434114058981999098946941250396263461958117387849115156542340440834490462908505260325951221137034716443601226292549581647151862881064603673345874436663010025042182182346537556997574062812242225573284792417243877197986178565968876683715511265954202743806904586405751291186103696310010720355854263091188124111828737591672024044935700344126449066030196813178907934560606630319469444300222451162886827556162885331300377909074350366585332872946595842338322071590294483868560660873045610080539554101571110927259106159129153112411007052220875048836260021578087382096278366213977989020666030011476239718783468947302270098782226112005473432635828819779537376975072139916786508684492985477922535171497840441763529297852910269400651823906152341115919392260294626897720024956788474102926551438625376105736454795449396593765889013638422788207881941201035484510245456918622519659689080493854297804786227756138453881041741704100928208602713886978405697427902249983620709180156887878260624482588799356663541722805728582495365698155135783902751960330846173642779023346435398128294266169598512176345175297599079442767620819496658189174780814311515053695656487288692130515069483119862063418955142820729499635407288877964864740976912779787676532743543878564744111047538195163319236659551452045643542261372351957509708789004604213729278098118334497395421313685280907776944221024749005313826069176482578382367271712957083487112063801310025082832891096565600112770330180039312750923027798221501044037148127298943888976125278562475621933141449680601108433673489708995744339520074149574744723759854140925135063016942998371606052663849107278089318011415658949972788997095726603339650923254938477490200452183463291835815594426080208118519844546914498153776038708759761942800103211291560923962483171289932669832657366470079163088916502776325599187517069623985003517885623286925309346894205267057378447904858811903209720228364408494612764806086647311218311810570279504928277008243363820983759996492946631617947395459089668524220331815371227223402832220970579965252755153376047135412787613913162609353666602196168167972250007882384065942132241369796644184163304318333802785611065737653439463950193924973788339500162178557741643165179740980464413514192629149751087909753535299183172393189469538349951036515753940622884002203867945487363545803778408400108374160024201031086426290333269781051660445455984007973048921575009805785713991171734522508603976877095096569024700854480778511026461358840515607420933221474232671170900398992121163907954437083102518836524720225182554019351384587931492615088627940953834117867042694361992469130926699562531336146516065762257795014784722001181061019107190649841891832138301497495444562869703704567100339151791351448802014265022248353269638171118002210300221290088851868139880345769025201450111164512690451476769406447348481451666568119001149239599705322951923959219794439973451782385216690070732222615505304342147249574062887832726693189967537212883412851577459515280135619246036016010270999130490007009634229991312004222603221550908324458532744235451002161080211205780651340630060269925520386920179336867129211429405011277211439120649440341851528236285580872182860412843437274229822475073152638566324848547318438568973249704707856513139279871139113891791966345505861603451924522804507798996963018101558326919377588543715427850370123755462980365850204521851907381946945571800458705810695017025871093992318530096905200114530852156921296275874845333222236668314593433171971003553689411407574658240519104001924914600193937391293955407257367027701221297261413871282310225283880036058714036448900839995956657886405940521978806915561512827676261599521089185565997490116776319789243695759341997622325726896591271515814761545713485174687208426555177469501222741043741737435653600028327587336365937236788646794977628462743865407254173877048892871019636408223936800957425464167344996103332509354111846537455266010870693664507512779295991046461917479048520718473763721385250529011121548253064600395564141121854512273811857178721434161955561075319296127012244481593232178337179573963656901016864651905286147992377537219820663224297651637310156777055870904950774030089884422440112435076796643834552244242133211992616757236336275627932077987987649550838787577093842187625736920146474220058851699713744588245877919954519507328163069959572401624266192133078382076225048182507896717828315011378966592200023194526381459512805217883597903842305063740091773136387979965451273324210999258796937865066787834308178801974235478757463782502718214858647044954225607314740188597135934494523597656882352886213750383151961809615371973942739819017927842498792533333180051169342509989636122376905941602791967556663270519673000121923742421052179113222692769391885327309529250755809651527631938775842240391527714207762127494251992106668832821559076864650959925700889608370607004167260319324858834210635483836445767366245103141624197507929496222635326513061688957433157470693416268881399930004943249302673208987585187580299150878355986661910467755514542086086404872160430386529722296383355648216621484053132997038990044497835614440477178540316193715044280509691121093604212756297684671025204455226715466744481277380288617961212665006956554753525752642322294590488047185747991703128667698210756325727737575633831844623041916260645509324833011825255640677618508666622804924424813327430293320132403721722731709427872448128029362600194283736124405605880267911444877628292711184419890452256248148379216695730177252618820953404144378688215847427588667494003301337520053487110802768124512386029968610074575362035792677213413876456876124191067131813939875227885885122745545896229133910077419874103176258173699524414799670028074117925188808748945612378251977024787747370798030318659308192766028412221644544578836779033198221374810828756686340503389709435980950109081139341808671644069704280492973762359938643812436778292681673485187789004890081891280530320259224848702466849827372201258303507586252587749930688920652471260688677408549430705485487221671651010006864993645646136878551433745706831494777174987821884550415050303655128206665190061023898283686775771904887389601702478713643656349899317865748537477711413836656093808883305484511149269476768264973932288574265421535499944590580037758872497814737219921490959659668066477063359162073694163605672473186999333407480518563214444805828475676319801637314889333368378846343393283400865904535961848289010466970035449775297672455420007013363053214004970249852036431340180160224199922829812716629460261598381723615870527515773187917668375835624161887977268027066148322864949919700777089740220614452684849948508522872532371023812679579574069816823305159291028999421952821484011765017845445904394781173961872830704726957026282201367910408721481781222892524802588928258662374754912146317564597780944237140706270399597675303797539410325933463985877856966254032485629216765727560343292786563528697276846090385889902034817055934585045517691234667064626649773910510725203575738850148191678184715843631564896112923370272387823866891389354741385491979678548246024530213623780815154044661987307268874859532738720610562992736331440685120405665470282883185204362693211877905098235712791075421020781956154211705058249882164705433299979677453476028673312535793619869339941984130822664617334181148826568786552962185150106905563803402857779076549239026608912690001470357367347734873116635351948064015006497955736695745074476864318569059985040184089756473985439586519281837458781398905294157669610864711744665011063296216901651501196882148264748476665356836317021987952297484996776994124759411031771974663572624976476696145337098661535002791455639665029821041969735098182131935279923253185136702966105396041030260247136112379583546297086419737003237540827654329739551016151702605021549756218710261117537118005708934427161004424378590769584187931846288879409665954137154484587818454766274886778127739512770217648970764609273064205095495712561701799383259462504852829654435779945015339909954339811768662026782074270888378545935603949291836783702698741112407540067049367299251339074996579743851740383086202412106957834484779698819595655277885945559450466293795820003587598410172820755884747134397012103384802190124679844946557678543940602107913273357106474650171004859318625018364065122360065110596654322343438558866016105783822804874728968885333039434153258196307630637970509210765389913848418818315472254905014302529171276788561345476022217241226739009683471706406942520972762042081331881227519916962343202264897915252028514848382950504593169553615361862490089010223905072247617244317113827483595886778863822817052890642644884618106689045247944124142938069073408493562787207696941753271715054174376128555783213214036313491773784096108119572191773875093231327092387142837907410941745586388891033906873998235724304972447075721051329962427779068106935720993359980266450474141478492761307078370245083891033683000032556915511180067989032777091151204680209877198110976054589653081721778409957789554862460241621738084092177799172195597968195624262117005295467769806282627607322114434138366957160339707115647629000395697747392940591773011891323691881449805699563345121405993594322396800947157743588013916282166990664959364183799625799722405546624926678000164147555091022399760138802742565874794665915328410219123114891638946162150777895249653116804767747135924293457190493612048889619982900746918111744795293995389374140198207949985196278222943977407194907798345481133943397535648926677722017825217229343277142004635536627259774643262729481721873081121514288122797255919615757583098545480173287166679418644934895894510911624282323742063380253949268946658196344410803859338948497443494472241711712055207814618999871653827358987142691658296931500208801123311903048314315247929725117332726962976782988849522811162064880052347904285222632308409314095729663910192450325755915195303885676792373596333645750660634626645806624287045419888924083358579574732558462717844729829619872533738269669943332237547925202445335037954510865323326970455378055944423389028700397393124162232183813686583397341131579020117873610256656941505572502761819039923383334357933290203645623518083263595101861518916348479570096592381748948021132424599540083385960332396225608191359690153690366111905659645229475440999303973450162046989772748789770244906581194408648046328308681916820511149152062670921948038099578000303575311028767230183864696927940497156696355337535526483367607916232469074661658589253290164526808488685614960595565987594350723413422044775938832478535744511864824940500757700006450233965257992752754537027487701010138908390266254356142708345577598241704499204296869421342263399313845710122760677614743341484324615121328173888352277236325619441337709361053239046689004311355553789914787432583801812867176297323303410426134646713042884629046053011091193428380271874089154604185684443415466212087195887211861718108493936644371584632304752535864414842101160400960618412234674090837311450352661374165656536669578724909871112521791908346669903317959420000227701705974383143580589992585452063349959947915255982541349669363499361463598501926108541559651459240720088015248035639545802410449283644898149421428576414448497255144698263710114532997799368535861871883583464829083652981235997853640707480364570243647916839743163316834519714515274507263903658047863245558943000426492932204935626747657329264126705170682367497886451253751201232854211757295401780691293856454852470419347835556080417467369439290591969593604557142261137097997936777116099505963874836823133732702820353054837264088294290023077932405079529181826575597918775055698172624678620170973035311282904552874550226970868410101642105951361840199130637538607640895894200134448685126693015441654707758070268760449224832264725697312376622790139352305946629451395536810201429436212423463576256908445594942408014374065328426739481564612487018629885568685853254150326973212516514896673390551013370567384103406335506707928453774033101568035950754262373677226655980164294145835608673809618135084645143017981182829903835829222190046131245871547616547412230413706987661483628448472984069381846496042429575406040404660952083734516287637359482152996886145246452036176760380929250741359611476608791408778853732161106855324590707330984526863818561531321925464420053439914515716451093532952918912131324452564882191261662391838115380079731238423553264538404406540087265741141182723038408562903933780294831906641004411060911132847448986549495145417628111362397067250896879588054182375530198472882760653998319073272551357175398368048177394849660059460026837727928744384585776615326274005679503042914104397503074496555341873352600394748021679282111076945710422982131704369553172273326899116082012625975130928601903882854979535676585846579235012408199233462232108179089385814168216350297749727654407631965216159520829726510838495394633236877590108283382514525157696328347946518709273396332768352126776290030375398700838376317355675362836649624504438228748310823022518232912577513180632548555507828073321134485463508316208784517244328756445643252917985584404711451199054129624923983200123980882754423327154569707581539734637326281143565723036797638657739992114159788248609323770545978330101042921422685318514336059363775428931324212296812830401702864335751092719293483056901737054889192831868166610971342057790219884301635411035596854159430192203899231006975509814882810185011022242683764237158658768671339751973112796401680147476947636507477551287129807341731271030872304112143904730308141282665812889334198519576706960860884662770531513322701197888413880358939476763018928253627635633195204200027139686078162360583754043018894037518260035267369145007388316481897033687159108383276525074094562854200275223777963096156367506137355550093539105663501634729119749175702975403057147989211840029612573984138873252556167833279531561442733818002447075860935128175925753746295905789581660010966865954118407801405498863189614585744647452278006000386381064618545422372617652589346533271606143034912085240986670011920307184324421394833024204935514700091083103734265797710701554009002117297389506332327670659680436518096339822188358559264615698919031567261317382184591497969832553155700166864172726805474004057550518846483000221020491172530501715681002079998596547090397883739545842143328068093518961952961200563279623327160981470964041460468225904649110707301108522953346895093586239298127987988425716665224485648511745303438195589347484693968527767066062568864939375689778883153941884280071445792915575326703816204976276619313124762238853443122975238503177556395888135629499297254747223707330052293262911042066587179803947010281727814746041095773382504256512231778573161563687222262069141621177283563299484320352400881261963760824770519451077737725283135870343253222585902413612024897469112895927246233833863016673514355507729278694032623757731846700442359346159143595906194472569128560215172934069995698050568050820114486666241050364461478862177304390611671427713547081261132960639090214099980688029100435700520864271096779848794658527617003023639345062143365962143126053978462913230100694714469456140215637154063015350641479140773526149294959982091387477435056617297383163925963048860776988879740663516511520909407353210374238132447876457975212195199983769652045603807050450623844564852321281864799849647327054049097493489678952368491206230911171863552178052217799217242599180601203643226686776248816232089354896232548740517944317933665396150988906483030397917657404604645984112554084296674366729181915104863171640994409257328428075809688451440648302776282008835196348906484899803723917540415025304378159722156099184690812080302258566584282441460002080749949260781507853226279473152958430465252753935630422147642216980362198787155639885489708253504402420376442969916275995086972871116010809826319130639184063600075019269930181709666539579244827794570887593449680621649433411828886289735675702042673862997021150028380751262013931525573961831937839823798071140555609216995868027481492513702079595922123997366665762787199662950172925288850183106464526716117157726889146385890952743864092755314319405887678648815271198558527930247668286632271918838318876301610400303085878100166213268329739602651201491062186285299826361823931474703241035866937102039234974723533874241738158672321752858978002425211521041603449295931902863921820374957498795652049955710649685415137338604028664913628574600700931502277912871287815699745856054392404011887271598249684830562797337566908615704647550357535395591249488539867973492392446898976618065187225873205262742486542878937165224976049351158733732014793437713827552198659742074902499190767005542413890177331526323909599893829771049201517232628752696965482940948382162769428570318634056330865436433005655584698684352148213829633664414710289997448379391906003890963646878165075812877282261767664706653007241852169201526285750722733750051094248382940064138399943294038315528440393917672340837604036247667459403034733422472652394388303472470454156307516731045010386324863356725927106319891182091493568141056778197331925223861991399450258254895826677806254390371325995201422338400090674700599593528201199361083151999521416506030605845669707258714156244453645731843249667108236131152280979882799694551548665774572627056464529185101312311402264822929524809385641841419916031347646784607465254480243416563418770432583493076059234978585975794027235122780302918863142621625466540176917352815519720982163843189513285625508664940706919980324102295560542405370905498847729030137139361176893547604437825817724036946572839275539232354529829347374956333593519992831463289175875859228719696037162279088102834743273564895915423226532042574961817828842317960285309150494454802724599263735104050397419529206918483514758988271043748321606434322830724699752412723674139522329783493891803597976771968815663352990489512630185749713441394024732814952701765506309981500042730033353794454037479774091557074368021572921556662315468294784098696773628052434537972024783661018066109660219825629898886090659330123043881856010725978373734255807500817759496087614417938254301903438662475145993364132439676785851966817896639751253739118547814350861346831031822783812415906816202129731052938401822353135135520567910628139338261896217154180389344343005136261204554115090573505994973168177503377004689278762990054540972607463007489020332104630149261773274118636384806120497902638436386166131598250713135687630092977421830726659504037956553989395525228088421676565634600056072828564203430921818964762334920829473074375119494776318924255381773587198613936825824976137308148953754370935407093096921340314604628103506760124284798332281527129038530691312961956124456644867528037721983264474766390336795234562409730874384062102190904865573723277327243813991934226647264708093188718265609227653412763975305050295886790994765551899692667345901292910560135671031274413022669791857776261779074121773930056282317417983580513115178706467797092388702514852906100598967273917758881774832441664891299446862042941949784310133407897921864057127546042334056174049575877743766188563297761784779373947824598566403449800536395963424356456855209148828730377527877322321487026190924126600983933298919480411239875123146724419323559336950407790861573736492389774915151111262821996345313199543555468707567224238901663347461703715993525602313902376599040953764292813315412424540846700604297707370854585265986229654031231601070349000546019730318110748067170596771338689664429827688023866154818775792393096976054488824255259929600556533316791414907847679003240211413791317436928776986315608464536252514303268942000150403407030184333290322514070282033405169256114538914255631709952640158176960909761148803046456356438089483121626543487934985166092629696056033025291609228972341908804439735264224533511750214161255882544095782390755590653671234897691615443756568558335781268111990026537941865477982699430266010441563136714942479188769200831191278850483507437049175402239590106666443626175704331790396750284800606732584880954498454427548426295800011217223033242531521745020643619572744991419977614778188749375316903222061312445827788700824810896550481758630734473632696667532300562143443221498935275970996540398796333386533606957536273127683112868333854314360413217202289037762429429119634678944662125572607814591681039424580811014524345037354221202062611430927334479293441384330694638775589620337801264846115848616754057440141109485914013527499234024252716414551642779956878409595357900348730245421286460133236444569285293424723898328821094871291468145211363579396654244310290835029820992144095558669829605502723741354856892940657234507176659918338475510588976904000519511478246458353795473138870404309267031125257536768143899981512174294391182610847688363669786867405861035805701879363310405129875157722679445379649866986480149083042079918998686992417545730797680937106773853188570857651967102304858376130944038121086204040405723794751406422956636429665097631807070126655237299549142451653576688831420440097472215956482901714113883701506836633302655726814869283222225825931093231751007206912520692418168268630961252832413075287633223490875954294587150407218211225821744765747450708375750311289742034966859614313060170180311908839196888613372614530154786256488410518779236286079248760818113463917722102674696851341799678791344902521451501882424456310589262553656222957854675910226427122451274107572504642458343995633775904576874564732477080578577793519527560219700656406316107345922652344969337316766854642065977206740880989235904250657047962280817900124451665439793231534661380602681745877115721348652554184936380668773203749949264282183842548737590309743181623661737013015394826494443947433107915097767705900614946134411050527320023145226889468398476578660918132684473545556358089014152744139337462889327929876372176983051375020292491239322125429253310823251436399829022429388742365844819366528221172342429425209871970718809030496141804129393208534908946301085931653941525976688174368909694264551869832307872618587368527379308670107579593664609874529580480255635409874610829218748594326850367941497289607404446346406870344831995712022933522347552837719265314901476595676078874122403324331951351425437487143014892584978543086772118586691985138052356802205564147898263569587663173613485343924760945577720014175131819547654641104961734133707718246168229528187256488417281655424690305521620134024618809548944333779299032428373832831780097643668973553227407850494155205091903151951843839003935073955596424424843060763973269619543678945152418868413112221664313783497719137992208117505212168381379014811377080640902473472206486520872358682685769573587152085046278930009629755051734826076540314522701347943927138138970716411467266246856423096316683043351074238212634930228696696002087369656028199261106317200927134952552003039603245989755712519318141550429166991588362038825693337701383274845789693984289555802230374608048830312081438476347689411224591464402779735339047335892981688252382875525053161224308691892919037055120405293483352965752451249075574808100607456927888957829451718405015772949560128060887634599733925324283896241189891974935863038128557407876927627363765696446020751623428775749688233937466037510663730526180388570465064634892713191802058470986327799290245889753471226108266543130836767592988712881158619525163510545140835734194764071878204167721941224125605209244769496615021383519272907056751632254775620825444743795132677496502796013450685318246957481052100841440663653128495063517011946352825392142922147617817114756899097274020507076629503030371156162158852619344401078079929350380579336431071009207781400643906919928960172249362811809600278204622906463134623162215345302609865139892720672333233634504490398291562975015632406194625882654277351721238757626225675818855259985280495327707044097250722680857496886663867997298125166457952914456997899736517980652496723583764137955499360308954136351847611007989254013133351157759235580937292976533724210108317835272278795571786451799297246558020808021902167512654104325510157241049485449046441652416203858775491795766054993456417339227786440873450957517924138674321739014771781789583316722528735681386614777127433163067314453299716748484882054369411451025436395984958060524145970968031834330069727575706684386286906009223195577454376937870122759672750860698082575614065157666114225601047878648244294363417938062282780007108345934945170150448197262386736838217398385621390601515975115170727878106311372555268899520396490879292115996932014170440926383430639802304130106815257337054596751320646582059061668912517542507293995568861153122360293492663129387220638092742013589768641807839223262340986293041618334893816469407507529037286651931100496095682509040154597193600905552807215773531002879850880781222910009438897870409616350178933606636944555326706937664746237290325503207949317082882698619751645918117868353871913927683878521122292966538034013533524784687087566389204138901383253379669682126922206151041750498550575082133715933179115359887189219248049510183753304175202598234563082127486159789878838071019178363391472934008055406498238506746240852147244464105493196994961794457207117394661425708181064697059139219233538540006674928719165408147397318043791689505507819731354220170242931297646748108890358439993733936577343819330695181424892048955408980671999139277751361261011342085187623226524174362933614058275868670906505613370991343635291809893827057970050306634783545906046357401212796660754028438659850662431140540752133712197980702452135997450831357312602586857897088742127441732336772294120941452496116137570355224847508614457601638008957014563339732316912213899479572776697267252030514864115419082102612424522698122258208149827445126345495870999179732651934030413116232644677569148866741774445183518509190733651085153470260631340042550710515762639559182670051219730199404893470277078089141905894799648045403403624935790305524975519533324440649342147781857019987293956098350804182771154673064564738434712261305077926920593023126098564419739130779149069017870861584465652348469612837030959614786818162670733296751394385321901869210858172474649022491680974739343068659462118192625104469782703135405812981380877846696446215634576490679355435806980576122620477385979498763666686622816566978220087495095683685124246788716759908404323936741972087361416681788221490687052330417972631125644027560695291098411675049909440663623259325339461500639242731701677738980344091032245292074371421561358922274322344060832126286532251122361279676193767041704251215601555250633157322111157524396011583421231861364996326537087339202253277368944921943728238166620594274933775115385175544342161251852845608488867945316841124892004936195288998195594268674213316383233431354107688959981117050937603989769732786377351838821049183351645785671556619393850413090514745867322270240868953594122380099402450865784658627840396776713304115109418844324130278627840383993112135185489594860199811518248736123766313604176180619786894000594419768541713614436651944451557867577062905431799015501441499527996586580890089203219033261744587468028351036704347491497900720440897212400262258490211848672881582769026848654926285252404771912160108400558928312358958475287794286214795622558427943951758663133878955282319212924482791730341612971316689527680957217678359198847587726686242116777980106934422952979997891653936868953341840640735086439206449516497196074416399936550238443544719177794677850745343996399613806270243990741223807184553147596021956105959809303350734905994832941586028382582462217838942473423049237374635369128808188173029651322012865080552237065379260199455759597591018169775711303119220185833643038219597165060853853804877109644132493908872511011185980631605858594212347599243197551646123423526745503228756245588978829254647279727804017165060882586404975091457011525075641547234830927549604278289994365703057035718837740706438555205008007902772510249486715869494898121045129780909110699317137730330352718465102293391485627305798934156413866512421541217107172196143463923818487990208804765412335539139293351563117578518944880520542869048144322617855325568031054289589825506120273484420790522928861213262240779302684053516692713745984059154548307552327150203813182116369903838506539420878405608221377405160457188316567128036118935795009268420900958965853439402387442933386442408533484023742435872937014521357906611496902878476513365034924916315097713263741520674682528866459072913016019465731410545702623128122877938717504895353753518092221973656876176290571237767671534994083185896291232841249370828169612639553397769910248196847399914948080126374714922040162711492484018345694497577060297321894217886511347594811795742930791959492878613492225070084284411742230097292292635666430022485797281435186245740331424949158726350515075108362342433448037668171282621118808929620575670653084716407531031538671146368980972334062131597416231137703331109917218842009734609311688728509430356888215492205504710491190224419070788855770906624316144398891213193650712680642478014066576834958668342816557446110544457091188308731892874049416525317540047070539470777364445705703825984530448362507286584104797665824665779195106960478022788243135515139267571072934527015445736283015370061430418225189845614535464084751004323318637591225242151750785954798010977954181018906622714676312132065160495369053507340237463961371332193749234028480507920370229580349487189243878201785267730289960839379833445620132268304060986991347724188672046990405079094026443154148941479703719978125583697773561813870305452942352063433262884393391449529630665404141466989450882464062746426074288551762645282251833797963445487883847936877909245127765112972532001489368752604054742172960092590964627746671111888493515069531531420914795530808430259364808965998717135109931743680538792987679552947631554649688169767819393274405548669912051644110159569649350295062461991200440623495533746066403143547149708023309481897817414028681787420421997390349049010539413961718168224387426444799350588759042320623324815561662655963105123497309774039631548691760162031209339235591423814715266026756638479868396787005186182936739743479800107448533340695108118362233636125241715020385416872549181372950991011685683469174312154483903735552534068132652584346522294477540942518906303881533277364735734184149562488635509835855668337787207920207161937644302210656506563330641686062319150229360922251388764104243638752015816683332793688632611311393922806940845073391825336652247147089554649020883624705916209371219266781878332320295371577787291884520484946637544908836776995339804894345224686779515131189170433094443718680860291736888663166699387993711493940178126798409180190494226286753630542453178672785338893333187622630857670213058438400553548910604146349379220948839986383829259556269791265045881083489138242509242987785239636586858325234803709968270252829003206527488758213829789510423142483985294453094334193808116702024797576246342082949780819792711788117739350236884979822534126081661527324933891554924477566537141797613096331388056249753271031109299803797976854921712837218972034039455272576803700795650163024826835552966414482321454639141095970998950869678973952486954494200371213062261964820603509014044549534578415476607258422287586592247298210829915817564371720828926830420065703616311611653873695976604243224835910647786692144552570503390045036560411377864150229668647284531180827680918066502683663701509890309465505914268366498402828473403867950470534763380802647180873468273453041378293234821024293541770329900295768071601441364637435348226361025770179116762706582123297819518495266319489941872372800741432189561717852251624650681391162998113320237058955482334364892695919865530568340729109368078105391596847416227286280405019387837482099613173507444456777300107551682994679685454286696830746963409753644871400617390116728066795970690683552225266048082845927716411093759320453866522292422045374734227296028984603075442851344374389515939597201234594483848675934690305813953191689038066212418146882957665765112723665677383255820060432501181162872728486126347307882280147212266097931775323030758264260775289249085750400934186688326882318797236966763964676933732000235271157437186774983758759958702064845075761773369864025041263879126081726210388546304751533393847439547444676471381580226704187618175830149242729758170426421117840782150899647569171034602621116616162160891487788510228279200672083239807501434131793205657702273780957079235876632690269697077005068953513847152989925427867287617315151363019497865485366915357180391642240801468236548097014571571523027612007803096846270347411296609821306847176409038595308883088616488611852595163032282023836264803311876886574284815297603768345307356289451547721839635168208897123742713189845115477877975759929362039968092079100192381837901262790617395932737706865896618543504687380606797980334504325440380946762236353638704655010246301331283647208944490132736855342982287760998223306245394518836020522164068329437433454768839742834314914746153281824598287299036145147822865249793129124311354201448175541164162581808634281302651581605934573853112279350124419093059138423842798010724367151788881038271381921551173388295199217669354845104720846819443502263499626914078044199075981304197951524747911498955885033632509337216450372081581349435937855452886645824539142092029403167357974587836811714422603640565909109002459777027170820310974447262154250865828543192613897654831931169609898149566536511711876698672627091872476240659173199431318621470381700964310081563677412868511759647518546447281341844425827089164136096067209021656582237840852834962206696361126282028290035302067873502092906010401274442094325522240011204572459442947887923669224815961886850670229461723920527133571482168571491346568950924312367621064563354819556747760162269680856939815046600030791700111738983394612084072632364897075115884878447476454443002933767059213148951541612482129289053172835312973196899050252992694297782419906764388314935319313457985484496545720745162915389968329833983275259030316479182681463061671506125105512290249722202363334843480644093054176594831933823316277112640436624670941876119077591961696990419685952210342422109359555506911309878351305143126576839563581271338769315066795349653933072498441314438605188797123456534979614430494709998871459788627583522660463915203186885237579032228487656447091083911449156211809147942247524255317337566775208948631207120343975768506224570191741296958975911646934254359274797151669598619728158402269182952892889941274773998284523189400455514296000316250343000993947763082926108348095362853826398094815625170627828172902199598908265876185112632583094449266838519606714658111213295685281239641566896173902511747183600491770994741989026429601348676928176733032245604953916970100783524053614940388504512175947644968603925541209794701740083284819322899158035678632130188838628157430281421918608821921523320658510698460249087821173650931663298387971983735316929386536980751187084860865776938063864451729805403679245492211633159508355107157723681826509643577592597319904148185516330448595595192561812626928168368112531507635946651630967001160770691328435698929557045746441314638716309677710902871187708548440586354437883710357324932145501021893052569309107688219098898269339229872402391194013115660080904943899696994473190191557553760111515903409066497922962623754785806204457660131832159239803847326375115152254530455377934955836990712597250360419309411107785546095870585241300156310422586312139571836883446813110469430092789107176413385138313575024750613529068425043528620713557202603074946716594676908644741868762096122623935211735688634595755254229520022051042014319419207222136537255221721034444613220165429789658893356666478562942213222126927438916396494104776796988197756826254546979159440215719326316070111407855421489810172923872760703730766819546388993485834503203951936178722777582167296741844607738202040235723063891307714895762413599592436210590804230090517254113146487494308823734972653957253511882753730034247060225186861515149260502013086290229693931648971176991022094655150163259549401442628950641763682152579735449296796051909957046974678523765361724101675769515305048401037629491321453967777485878960952625691841939356519013294375798886248536128475236859214084970632039627255764132089716140510272913717595049298402532189974488153378430408871873810555736300793062064855426128069323651526139687222803786747138449196340664118336039544523085217166945966650514864952510847109278594755520832345886937385450746775120119537416396718259504682534728501144799880141273341083009527873910628077696877281824252946207492786186077137518698039168851807239095774390787347402359731058310091711447437242714112673795506072772767284431842099890746463681794750088695799933894958604909844900187959389401102708144344094843022910130439179673581542917432412758286503815393542980039439409940543043452286967852057474194964772660873584552713598853706211006587763200396680876925120320877044482408652185898494691931562340671861258510531509585509810041185122134699261526759255396717444656158855232347174475588435737008038783852118111456427947360482272064092268413435279948971985268971564043372374139945252775091194347028704003767228130620594662420846291120184493690662807374568989118602429362734753049015308292997148074095638799947443162787681083989557665317670158557289785567364826424289651969841025474605399646621557482236365927561214227951510819646061651570860209171401286893932581512337959111642209127792696753867282109725273574236295240801052655778821152322115776179505930655790072533862510760576470621493883446160200853735920026824954341770434917468656344710798773693094312385781805252446434741635618658905433185536595159740920861316703255098836075178474175864932018245134462324751090731525812314482988977919785528210256896372374330862839681134164987664580353038800014514312171633751127939018843892700979726542451879538831051631383710408553786468480910363312536028000427071645607181566907509862097700738022701529603669684063760912244731022371517589741408113805181838153564966549023671822921084200163269249698026651941112610450510548092171075766730165200983450660710651522812942944657469109484316919065738023882647230583756617423946346154089777336781182494346126979453064782017509221613106822057075848873128587927249261824393658842990622954082068429407092413344130855079610940608066021118263103556688546218917446101962755589953044180297245224403285464160190438485434188291145342038911678944483203443195641113977485184519954984746283064162765347833790312415377788581807209109650801549121585441217382313957596520323627936134988695772802199037777994453959364412212031295745662179197720364184963173418817287781677896001480442106861078868153327746083145759274824063829549899956905129740880066356880205564184511964485693183707228104014042281087392671037197273835709757595790998043227382396310874206179464790718587588923752522369305623155380527452164642191874749183378316001442638030929932827927171299420547907729374222066389954566837105047485067848044691073726420631588301019691711292763336481157564189242100250262941814998683258670917650788322003577997992591298600093435586132256352442577121376412099777166891333647668361107963259804418512369498058702190568510274313174437057687955025419100727712871108148142721999346951134309510483161821540671095397149201365076136300556523239430803330326662981971490659350975062057043893427393545632222473450297860249091243180628567967569005946172767931936774724010920104835607818486875968107011780113250631373465407850103473841667785050169302215785415211298119187143231147835357766742527633587606692887453623588573569798250915062552568473533104656381047672697228971084264210123863989498192097864457061634074849621348601396080283280026584170147312777995423144103287698001203771598473805988987382102907399137277186022199622557843502352664562411831654545306314526890933010050051570179296601794298076160794998114378109570531314415613148075761915465280967672981139129606004395523887017814872232305412467876148001085711107595621532172478181865237995160575441384526513192146299926974117989457329981748754237425217214547719770534560639444291075785736704528555976078061495522223330679061869712867160773295961804180912736055073364963940570069177911751569267436961431051634109841196623462458990029205722323582539057146122540711082841812472358818717345179414498283545712719117777408542685228846963997141402556162640928118427337212627332891662879357790977807311233593977656986995640633212918601236311846726049926575728916480353671447198425964676891733240175810284450244250515206558294283953670971325857305697612165171673902229239257002007479751505984488321621814997729075721938707759663531865114295366765563002615870233304272756441534318597359067806976548268032308019738235181609646775433280837571964985443432666869090705685887286723761164233604987635437155341030649787448630798176919703076024184186871206021908825729256500923573158179037847160102764398858580163833115778963753161207640462416078754129218220672724306239799377560130757462840815941359212910666388547792289427114277754458827707335426376903644726927390441932318947422449698259324406360250913313087429344689419603459623250404126885431056281124263567982540846318412772264118336768346569316494772491831648713277054170447392165656951615465895053851188423306447471444126697013225271479121151338870739495507838801442784735824790508000607266825156286995981989099263919702392764173538280259151036853399278312521961955932786906851000228613290817284002889172478665353333464105303272701150236960656149132832414855247624869316730170998799287378613511981434046086558044125660042637341161554962285458692534134681312040372364753309786674316880239532948711128237231340168978186998870724909227006740043539991745253701344435701270002581468238150203850860574361846931567303423847415783503205978217386518639844804589263549101847975731886245309155455079724909357968494365623169825102646657784167258711797931905354380759117923148754159274854803370242610901479042714322639941370802872142369803446524273214918006652905716291081838067294023020620660145895691040901972133588618507248273063129669948309886707071207889326419049714616130149564426409862910123392565913519827040135225542049782120736068013168912712185726408938665191104721281236916280611862668344936156979876574692015561299402901259588029748650841848549294390806463138054717936116097832436050203656567123805158547140120576622426696216005061171360593503137719961439998146969125108539468531901920941990788938414707059788428502593442564102869528053724676807154332681133713313479064050609833883147039085396245330785678653860594882851110389621864018152310105117804153829004814020200973578546183144307078449135611129515519861180845713871874266181211351016354109246573350884570512166277826260089872180762151205519633726907403903284779928012296173810026705322755329088250963162551785411801331540808258547661857827268075203302224232838840189219300691926073723774006192485989618792914848624474500985744942791614541974217208940277357659258459196785303358147118560313977708026496078959609689666222784396302527892141421579208351977795239634669232071656102958304889987095371141681684988653480514583598258763321336434693084057542332190058290366634368220094633086210121300684478259377414837197580432863859479896242820668777046144970372580084752782682652873649241015695258392694469378759754770811762821603494844332299036099945563363374353627655324550761008257364855517833626849503670623427648170941606629841451676126873028530832719543300538927181266773998756143534120171674408025331176605686379284813077344880556210703025601626482465314870194304332853353312247808099512548976649434973022764553422416470857313975100061878723840763185510334822308677610019750730426295484302183365030382948757916867565388440889730219586152901016123975826122179018727610726785918508420796968810323644134559177161243950895619100541156466094412741783644572034292216181244359029212244774262254208846674346364226165826524035155767448929724659326585516324012118005503360795003726698153052882170068268139232984555078174265703263067478514462727794781353936482252653382065403965766383658601119076722397333657618872080640448189065954579468816690157023736003764524033954806192004190322439934109975189218458157770141916618575327675004395391460839643225302429059027644355735562677457576799005678164013591678612230972794855762809300073492016085363603483751614930412345275110258721476560769803881023686652520211139399944423034172396054841877683331384377882909215573229976735746013658769810637359286625843657865846740521520646361097245297259136667596196336234620735345344346006561766548913168950642367353873753977177342727641291430025214497147343822033865666304554837095696896107778979617582474796094595806749660951192459310484458791801716250414608687792518998506572991335248752057007593952080249553053356407862562007547701796502714416441366461501254901929482333043609522429585422231845841673643644344701121094048508645490061073501504150598568811732838248106505658836790565299809653807548497552227773363234703528270742416608298992260918149672555008412030939835500873262999200865832623430203478024636955721622541563250473965874763234164469405093945439134371655979834001180883393389832359158716149721412417482522142818970344365923879944510431797738104582898312973947313744199047071791494442117654196005714254112772815119844749388052575503619488652626607250443525660818009917416793129237186472945303481327412462328776265017987218666725442325689464872151150487323654654726192405398730464647436952923691685992333044834813697252354226647772835340211826319128433425514171873285919243892413863101296258431290139964627687405363141727617130417757844459774769468894272489716756646147710371100159853723775092400243459693528728391351219071179783524228718165541171166580607726095524565850495509058447872937875678319469934405236993626905378849786842031976272186217484388030091163864655396431937632514374255023482552044177283585139059095598475256503334878231947578995932162785816164025243705867167193450387232077655048357642106113571481137513124027722867209371549820062471977301774969628336447138954450892437709347300277152628545752837926683196379164410819636512442406448853436501437707036251526823737440493252644095751386381459875660066715496111405816056587331613718155134971751362996174106325210092550442926288381819610835871215435969997545235469412929783144396147710515848911986118946926067667392784546795873906358153622395842953505181605488644630141170806709072631350523960889089445445822239255720077574592293957919706155406893897384386640919631486772081943895856961954704667640993134684516315246498176556824296155141584766125526671897617773617359467150795728434985012848801272757430763929090739452805495419960924618213932457382044332988445659869948023633799723599033433169465129177992939789851893085009881739109144823580128217111212511665249066503307262748027398750332155894356780152649243029823325757896391893475057476878533289276848854248765653771165500964276354506330398669058204440532698145056945379179618182082787408935783519112841033594677707286252034105905657055214167201143712313966688570838966986337630750246392879709340378891163927953508639078732300392876251112641659791639346679628909916448352007851796415380956494005431561031677640208491508836448840944307049212670913157570120168817707103184636305060589290395974983192014764061718302501057025558663591798932447225434643553132755180486279686856366149138553836313053431442950307373806661660482258177560453290582995445790409505174376179068946179418955483004484707064612500647539744353648367653139595266430848761312002710882414795585506882097055953943810913741995128524232184823198359043707628214269116385849418316961680488009047214400635673361257655403710346991353100440118551741345023839558965528473134351162291678528134527092676488697544121977726370518032110608991506167543443985937609758886276587642145210447443635302691082873442869895321994832121717541317953479315711917271062502122210602775830108293070859998897685404803980503270692786175393522120088656625331584667736425856845619081442525535351256442861618870970362592362551976762847319540331245535852756397270216084183427392795111401560267251333662938037611846648355919617330676264639307434923350268169455454378895738998885444983802672221608679493890914406217362303782989604660089407898408582259524441859160611873399348767337348589309575590670160389091352150159685835818293812464746221060616315892344301766425139704096372017708375737109095165535354030438774802298759303461327490470447227610340477770332717221455472016255356581364936601478565061179657333406327632265862100262551211810915406538300634011172427903945146358486111141657792903679456100035006444518562032721532516048410995209102355856749377794513757811314440099228470043076653011131534375714839400641759665241083166603240097176720131282530805632077273882790768272914392025921713316078788042053739289077278485205824541882169288388651117466020011237478703487588184343257300894688938085251760306943538955244492042501948571332302303255147329929281439244569478831818768097950301134703342519416475560886406592132762544950588268720129489199146120563331579692759517266741331675136089540051694797816130301942563673197411498583404757590541554954312962671018072233001952103225055380778304961931233054818151764743183096297705017806242960463904913633430395982212038237124816004243952425555641794488161805716859987894307110366239034070036401567549664389759522628371355238218820365110512387153888150160257734559016385801647657738856926601811545357750048138816385269896045715653422843154577838451560184915140822331968032853167273583958107513471345395903586180896234665054469430089624292174568758806593981635581877329660568302392195645171341978539028212600510156285584051634310955999338061219518892379754766494802229081187463022350833067282564499053492929509012570445992112171370809312496586806168622305807485697646728487082135064678938740550504112684073574029298041856917096446117654806549048087908389304335744135206345824535773619411217102347438806150905139687962077549791610818318691060241571604233788021784421150639125895193566843932371452798059232271250619695403231504594959604114714637007518474912249523159184128300627391256071776671589371980448696223076565198561230746421209707175973602580117049129521097761023238758052797625711111776674664654318412982934951464237007522621428737541878936041933493394530046469654459714387066721720023860648739880820119821940016305635044560801803901257617462010937433139813346988946324087011522059040851808434809765997756532447576724683313123646420767713321196289949714168058620197654339060619808085572640802129588025577116344611686661664781946928957244463389713086140032090585688803345899190522946194179332394743976632256142711831002121995143242034890682004957114443686915813544068585449879744583162810424279850166958781714290933135338506606464902587024573846935573730876709042084012163827108166890189814532942870512858122812588954138174058258562796564554430531864555264663219556181831133751789294498046516278689974984673869490322064390268844251213413177972736078773564818672448888215180753329879351333971602128625837428489312213895460011188244308828229383079801392745452824959434102556483425886517249703074510930814955452255423858733191342870257574471434648398650282928029586233215765513588682964640844233756808593991188763373644868852061454089257919387826208881533233633386288803211752425115185207025084659372462683445149214583890412093258224266968486912359701917528655627310601427495496593534570774171556273138453779603435633044799034478509439395068023671703949331183060531625463649899549737918298502679956504214932363311049821391810812028012604356861749359740242010188987377186090911870665817913486549185236282157274229178111243867945735432010256260213768175204810704337470757407130283170466358181972722914266431266591394557957408766623048881350829993780602876526281423821340288749495721131627224975565720587170191025448898742107838578573113565704965976053267933135535106723530184219777723509091907883068458764685589657522088983189898154197001563168656269425694017567202531463689418591249094425572593707711051990416713913674361084855116670008507367700307904845982587496902829767088610682713740398871279347655771500742388465979945253922158700177667980789744341535003435251146361751614349806840072288286532227924697050353942753742433343758668291364921032873083019186214988444258201543687576394938430294111844136547236768087866536745621373725342219453242459871429102167903088531037281487556038413902458847651879226335152843999248541957676285709801223749366499047817887144356555946489978864881552381321535503598667054273995518227057856616886202635596182600924159798327092778566298666175726208168643185053568817481238806801943357999542750420348106184497218733450736985114268070361678355953553004898597984005845370954320601434626603715087669273837078050155209815437557192268109070687813783555893102955937859840789450318970878346952251659179638093845675674852043116359544615565198788564762263198851210258053768575029843006643017577124817151634554895465508417694729055601628990307838714648670688216438394517754840137370033564995099509207050349340602404410545054985538065063341263350176412292466715616501747110062089944777984752802664097566107895910380990315437556724812839982269341570727647313984503803011995851744138960233151517669282961622328629659002968889753812828890162299522944748229585073781559285846608509731463374509038355103537636053284216448264593954243732635143054774158084187075713733632062976062113810184171630373379090435180199304777495346589235526575163211212950078324986808983699329225742489177045148721181014633481685367178997886463996637483477093624443128237659668684870567958089184909618697907621305557228589593622966319740590436918563166679204012716359388252799365520578992047089240349578527419901708517987920397525905406606714235811674048060619911719753686505191772863820065080789963309911048352698678772563134664776590149936316504368435922736487339774080766531656208678084465590011370520483349824848561702596321800978809443860294982757827970841094963049384015648536765897397753680958685024479864413609637297036409868771096259621326868078629582263135244304267569215523932944016824126422062006025455510828553413395511075122473940280826194276245061928528663626994129712845927407515158303431346050946972705484038109536880927999350591543449178212739339642339596461555988914091774177600376096973571690056321964154555280241678829018112466493603124062859393159948987114748263263685095339076741964918813683271054638590366453017470411231167320947230788633294184798493049088472016235873628027151577200593327926618174194450531359969815458520611820345007288810024858199570169965869702351740026804001133278475249933474325145382504321176640424633928402085310766597688791471690174792375068174544557797868222763520954781670610762752878415896234193877066267167963895669816233135085879768339545346539392734664282067445514400898821923285382128582190038185308032673632914599599133073805386522517402033240475811262368587026990393543269012843750415038415624063168036019066521042991741100790609892796408976630851196298373371845042754674512755455148597319446985274888815673205983083506106856108392920984124785251470916747545781202936390233081607951213594137485283284876241418784355196924686744230029414874737888474744427049584550823170975924376929664339315443273622196078711871450189309725730087226496118699023241862957306323006266694552429349010414860473863136432577291727063861906906673079380181856695420492156683638112117831205270361488840359618850294154781316868929240520068000639006330311001731371689216874187206928788874125616325073817527921040526687146177438230445686064015201438486429665500495357286448246936206910710560428138959703597321954581645270873839496457504390153660434020488576712477343607092704556924207940663017732985987055296052716569382403759488142017237129463559322957883131041000987547093813255933766744599575261951827491236599712210079294411620937424923123975764946548377404772643291717706513147733111395113250906335151729069546411973686239012299608234521492705180343469944971716136977760389981974090779905193863941574698686625284618198624971875533608555768509623803147351107038616174300221045670418268998106291386010289037780577422871452001686123919588722406429857237015633302963364171115906626426512801065217168131901686441795932997381907349382604878167599887216777667333459895238563977640991540155382754369068271835173052807589180025569419209982436815457535123227948812664295651286050693984995828781286741662212212459530137997579895019319268029063195206367789829384330211212556464505113124967503403338350751915054693287207845133399602201652821539576130167979640446980864844904116484750968170761110146733011752642323939300266520560670481936006142683633334033764617416715366308968092629075993846978463960566767401356741163853145208025532446091772464976661071040833820094304253249390188843056958556318193700853782341694319491212154115065899242170189511469379477281437844093689925507614728207300756493552657480234309571751181587224586599934244131254198669901552715786282856300511402628083365875395070062361354859263044416188718818838288831359763878875276001202876461954059189043031364870030948375142999328859069603724916364881921133756616242556527847187330552601624668949634534768364172561764275222456099607106002898216394248169196060064952977699907678190953045417136562274757007632518199236180424909395469600824969097194866678656153168660452312962723967653513678106808697022044457139802445143870766038794243170158851600135317378954083349092064023775390748525461528145493840858645982544028717502362675860885625505639225363509854547159162705927215288568331078648861243705952273269883995265805305901403733057198053260516347706602143444353459181747308020664008134593111692013669938952401849621414460568545195517033074552381834525295997083762526446188115723379008163500028409970075891687340468299862439618613563464853040905273294459712450302100989750840736262797392012237524231538025470323150511195098408757195451146724086741186908582364682516024059902741913368604320150686700970457722542790538789218619621629000213567175286733822544787022105828096756168864191719182217694086109518370193530624448735202180965064313361799370854903671022442473291169622497956931068872261818541888806024932147065625449997285958892791852990050937220716144856032608198495637088493218039389575389124986392428129076395415275150257212176872650859430668535126208628479042228126958004091623284509218311448963974754396248007167780725643998247477272665525998191732464349061505744672337002266225840023198950113766375816439082054779162250803195163091070199074680121314563796848046069198504193967650349485728005061683430563624454879187234881512296717207263565966911639980364513261715935587947857145951314761921426165888167459292332788411229505407476514148006604936026934965799432458600036221691543867343551570358016721014131822089232756539409640696626005620111322251331017969772415025499033514471671437254226207502891757564391319800697826791779439302986152393818456377287571762627582010434903332605910226367476980900195591741628526043087337989615326539357674655438475048612052887136875191568248168499109251500610215149210750655974671347507030036103427563884571747819200334279593592596578765273024735485647963069539131466513962469707814141303054196833589256484899308062809010215300359547834195649589966653532412662030837579200158230863851518529981455247505451949215266197543864305794085933946596393703498629282740548376897441869380491346296568204456761485604366008231841998387236178008558577120649421318204965687180383896446306883620416899776763145549404550795959329055138240839782912567144011667444369880736614537053546783094501604790011629108877937871982949736239917258793753602851901934763645019710694388408792221656193721109828755083298333503411741095950343559557793088457909821076305208904185357946883886132855705783685325734671914110346878247892209782736166463147806516241595430005113780242139281334146750352207089699987123896174597756670374016897232077698364796874202071987362589898167640286454216961465231593944588414154774181355389612509290083844761440824203867723849144763782907649268492619372142882258102305184180641012934751384112737819916138295216612674784127956980502224826706038832048623053008161584510832625581888658010030667184336848108045614131818358964940423988223414584552505146599173496446709998641552506944072035602125308363743460923943959087028289191266385296379376708315037099484047732176027447126383880110295715802358974299558156317917964256531804093393244985196270318466083828792691067366494664533102400842426592125682623855440348870924979290322114909619548999230785296227758805811012012951437930537634960402089529261942902248728013468843812183768101821826441915095066739736442346280909941385457163918565906380502089917190883841489578371786769695330529319658002020887211852408324074005153101905935212583343674514419037041929153531786496296860816872381285487239718666646782009221801503322913119423583556068878556002366360270136891556057509553249355663652857458118757549902548926479598414334525515959433524608924845921922867106123540069090778735976521379808042512083099375074130889870104783095566643650902038731854910624453424911961410783607510917435085570758830778985463240113854108814617312717086700440199541823835411147050564533336167942020769590950883880952797242575774722817409456679511114297859050942320968568867636605370369862547322800679845599075787923630856649768709747071778503582949190990153824206415895638271978496203398641292826472880917659214863690610619354714710629212296318687435256944034271352587647382529656485906339976336893044284420367653236190627023735707943498014820891038200587232414018059792822219721850728608499528143559505677409294483484363397700813279396436775992743211242276994001001330223525080278167975213663944836175418739593568964114700694741232103815342955161651861548030901809480775756324774575354968078317400118943004267065812540204000969991651987152736933928128866053577200910104495851407282856306497180387649732035574412988267376524822252346749422427759976088187282906939622892022318038299537485559276507094179093918012560228516063934729117213478141748584205801093355931882148177131354517337415010474335996529169435373436772334946055919693759519713321390193147138922273744422221630302049691226917109287892802916408559412311134964205442832666073563382539858540712898764911833822676084338080285059203187680036521204718649993847792852073004344323885262156596480286238251579282990607516024305833382596805073653240231194816851700467494856684212089529605353616063013234924211870842735513333161238234767826264283658539729126067328892030304763251138209854173091811439517847628187673594594908841492221252554784429166216133794605759934102670317950096950665882028663411563622890459444457683736883415590784014141144005177850736775478673812444783399002223300538280345102084317532709164212023350615085988036973472681532240369537967058289283879939481127012121252259288740544875481848860790095271730911672365530791132996673015701743148787172635163720527108463245535280638776572367361447842112384604305221875061626216857701954217092377289106424902399635316558687311673228336645061895306889180001543356017309426283908806422372861914054165384950828423503681105031342807064320128185413829557976334988329031236807731379597521751760125704333857848845867779445510850597771977893071232053486985717698134752539925517749292856199713715785894938924835969054323971014443018476360594541878021610841617186250151333996084640136882874832216753715455998594783563793231876440518953614290918542427347750138806706425337175376538079400882764627014461323131617690891203765478307600488990428780729183641378497124814482938909092638333227815469485156746593882394460218328814771912896781567606744717452336824000542028026605021875863821717444122184794184620067883884414769635871480772248542672432190312102107277179281898508498157874218921417635158745786793359681914199300268364178877896013500883727781735598681246250465903210149756816585834332893464335440790563944952313076362871595742383362916602700282525876920909713344184503071493227898521013382630932417038495283522066915720189522436631134582059933390286174462083028823531263410413677083909506630442638051253769788615040884513033843501951933388970777599301688737370187235121788930589497278475291992662812912340988092541672892416738838148194953775312290889183359470588267787339626861257468475316624847444801272048787214129873387981097272019067984990080281119389457011529514754841084423272163406027099468382077371583154665565738076572584071938272571981700843153441488176320569013538482135518103277164860003804910330802763034794525031859575389852106796806981527598623657222536094773754408022397574402670107530237298989182756455979500449427087463996090911780419835266559702248445443189983042381945686633246936604277163550000400638258318066685737444732096257670458144785289199571914196853452296583719365345852308014823634834110552799213423712410636627357360335577721643177424602033424848161209780995206516697171946531398066564262146168808687814161822623192574017240350435969612016012240833049567154162691744521334067407115927465251124126507396549984457964813134300544122241240961029757452503199953117996308640468911639437721410444679022025253290110107600983969205888386174366159236210496816483513180117413414911772698939412990346028968077917756877753732036300633225874849395235755072232961007441618325136631843238506921995215263140717328469981622431994349526884487539775467612527700903182893055129583363163921852334221087395171016322999413068669580706147993060003921463136162395159336879795305765794742312404600316261195835404204257836145898703209930838033225598605030573794275522835286580728554614740943012384169654971081038998044652812222378328266822016481936828002090305075674597686903380380940406996297012046745859120768034160494337469695841136871232135303907975303792485605834154545134067412731843491408615544404925951856240139501944953211091914762677682561631770430260709984770357711028803625984131819592277398116159999946144816075017530673433605777060751339370603316356244628044674361077630315013974507931638650409180476653744121357829433964049307373971908674076377302908908684327702328249021761375975070253545902386500102409069120625356206525062098129683290297649274919663311188938473096640017012900479108902574570276033576780190116363926373246104511540558517766210013775720051189839354337342415965910577001733439186435135995968492797216039018588506701885482209062822588753022845591153581315967151141700146614386961182517273006770653830735297252257419644931432341438619663785845364654376204799607254449976417045785717679540696137790147171891842616652205558941452547727804081397891648328008689863124605173811024933110074343827305089747338194436005670419902531099953738614545930555297486495057652817165680401699466598872248330773173997641420300091655437307112655799629873268534723609664687466823794416105479554636842187092629233668706646766978519144349760423979696828384799655120046737326063928622197564785465546737264402314903059650047335387715808093947881689112509051959236891297187986026734113095478498140412629595836490150513806624737778116181025895980960532083480139464673585684749630493248700609323483270453893577889747524249873682605531711828919543053790612176987362665945048510571669645867253792698748857923550709130663011756350829210312095516038955421364052253221656333637121883938854223984988901734426361234326847293357464453024927817338138257952955832523755102893763387267664703986387112235947394029784526907880996916766649846902652735159981824930634142351294488409842891638229641175875673952558362537898112245670183178645868794777436985786583235461422151738005516184195228312827959608893055496682500421773944430355214306034810795612009148373132693535373723348039849413277533033343130327635779337027091865810480870247604833078239553024005902037098793416120835757513721655248273679778066047382731543734282835031553340369220434258639483839840775052823454587790410886175618623257910343854286274901936863767159867436464653528360018402008060198391726205943648726307065523597203247994842095709929187662308369734220843430116461011326775335437751307344519620190737973567017587120047885589551767719176184531720730177025529328789737690572428253490702350589943540969646831715339459539794823480066581213240630570883046594940028111179478077482775542381848600401419902485551398532316289819154115128891647815679661543280175046214080925772567797865017030605917863889562913751686600202644519090804261718130745614479587490755764225996633514089255181768056922716162528231770355068380486726317816412068214154204598912353984448307351459494862372383984960947688921296672862169691040227470396038111401813737470127744469106236830849970466748474091257045784944690412580953979757945342381774252036128511965022017126968771207590584384137401413202131835203223943126021289149001767078941344470490491467408428373382844631433791953664664489963302706942208877288335437469976461432883175599107231119713253059345851499039005785560265032179259595659062806540531540129901847276877982186927498230109570083608925638465997598572072389117658035125124383263948464704229406201415919673002015109918489961747172155130880076735322552090367286461616998713745901068517611624543164043457445986161092307530019179539272415384422330224200386267234252627962273513954950963573114598397894137493106655358430576892723458773560157320397433181820900282306608830201813374164533465301131560201305156933079348821466543431407904710009018643485379134875488143913354430725383446121721834018083584091707579584351782716016049714649589630507392946324956025099584639989632354132770466901751769075932718245605024358567192085849652875986793139584780750509283715121059875481096034119172137565879258812265939481526022149238040668928841893174906956874691351460570551459005903535120479224667189925650069774535001478459329118616389479491014780110873908289963228266559181044361026307435046632242108316868058682991492567815712480252725394107410042555105058079768946508504080455276354442362834742396946533839275195570849485302331306729488965858584077136597531759143034481243925851346189766269952732907236213242250920052403622397506633162235806372043379811256093879541683982870273432630712714545893357572493108228524539249057388536335685990587632218653286698485734574834221465936196766334711761340899060825688921090454790445403680229458847802148837651732264968861911592128863395326825023057786551659917565143084537732604767918766245039873380401033678812531787265276955372878067562620291944840805805949986809763175925643415783115248941056918771190012058255083470310975872129233241021977592766448292653189871240473975681640353302787121920496262819460554622443136794382183193116581859549019228828489837530604921984626144867172552854279768911881523098106410508907968263215521875205876989824264653835251448155271754633593039485689180687700023530672645278548309454895177438593015916251859859165288191951925947501041498058140892795575718017357250271732703060900825659182044287630652220621159086765178531055940566955095121235691300504674170714988785055168240921142485092084718608609264820396875036063493292544108348014019851223917004670841835233360669482325787311768350301714441139223705227410348036328196772756625666515349920111375888602851557029367815659494222347284598645840768749010947642020002951530757045296867321970087237502905664011997329632658351669506274734782390783131783756861112425773438073251840736090407221335202112333391491365267207009556651669294467888916247887221024384618806495653404707451980827409607962790345108626065356896984592505414859194982481036501431407548840071322512913865147122915335680958742363870561662044476075191197452517766517264874361926816388784175722046103389573113095716483508266167362375090004169647319981320743917902231093750189057644876612338651847372334027763500656056453520857890977760978786094034559281435303717315611543079269678222030669128169048868998416615807848532576378000380172822558867814704002115912834240749422793350824792814280872126597330159720413518750265553202413646801398046620005841655676118653105944564262723055053072895047176171671989771927717549124937240586733287553376678887605741193104337911630977847311215716459850490739952164496078703339372140403626785377503490096607709794588353116847532071835995123365764445989052127380536144057896796396919616103962637181218968695508891763924258246966711487033289280338659070669508396310399797818661647772713728960598551187561665538547560309413645263614104884286709058414296723946653809974197163417483747516827828424515058605213183522185658507339280719771899700930199025876546905377976525673094753953741396239596394282361048844275685029843102009661470679369802350727305610314856363239830964643811177028978737905771103333140347335905939943122647687028896658915600132476845524560449932887736633349429758358227561234948884690466655441801816602238747784628640476262299864738135231843982714683144066692202443694837769581549997478761755736511576677982758759951137673006294247639645354052073041804690991451754326982940427309753049500368161006658932615001546436176544014095508556076560866733867800366273114972969371172112231474757837649029623653504185380278450979046628143609856956432147852615385205466386970936246624025882324868478117884238091589984009249170952281460660977152890185193106222050333696852654501478876219135290291178466681500434576803168514949135620384755882510899615713242880929706235076483130587122109631211196806768171059301209538654148382422799589058139849451442528381372919685495873128931471337688692038570112485989320690473641198636957122685259692586012589529933328179517859381767433731098165448166523383467172108374169492604690750681667323400414143563638562630615825107804262640037111736018495444589878301923179138232481969531004532677296571880244986736523456887571188882326940669693430268419557429950244658821422108261610480552146685925991604737035237084361384434082527862873425373729056327139510645440502656140404881528386959449122376064178102665451483338287158367452922779232069884604688397332424817817492888280781504847240354941346063670957944976003143295113556026846625608493844287219487264944824427538759432922161549692883954077794861528232647608602364449057813760614499664752357423859844016069205410316273089550196520739879712556030193223635905173203756356954058904428340343624095055871407141318085281918592660219002959593396121723581194215578269292122207257430275560644882103197310203681905932075116270429248008659701119380706639567581633979569546221156551635668349091785068495859943770835951551430135628932626450242003733040989264024713093041703610794169978535541563252118012830509970633488649844164608878437051840273740602160888939177658287307350926788593365420669928994252288019332884222062550226657209127338860178104813652072553391128706590128980898273098391073229726214118243965223560218288286820023977060754895045421268326460964437944213245012382887901809601774989633426693537556155799808960219949773676041114394071080588202386087225718002518380455143112922182878047711009851112427273123517502209396318176187770245874142719311551358782947317265675824942948709752522324880919751308745251226896686438957092916704275684203220135040117118065281800903395443888969587632416137661970080992058665273003000468974682723596195717132443288144419043115127068678508786845195736164473499621601452160892797556659836270337122649532528404454245183156301243875042965115268797999889522964047065072365694703758636085358718575549009871819119319493832508834375975828434643778415883046142953124391452202867999698387593718453356848721476956019300782530271633415476507973964642893763934875374718421091732899215464380489261916527084457715390464326096161241839374958670939305666077350254945542608486399674439073199239617807776921485539293982226844880868111247325780282478865199886618428999462418176835640382186956637138497516307480723076909634279425553799484397550747893384585752053347046862014865038134530326560417387207509200235583850540128210154268846263414300073091195310026688741804190974267642668825416736985686106605826909442348953809473950401266754764842441573711994148942748034753287884822017313653795248082549428304194937080804095897190599444605715975401506356382757478185522247032939622964781704386788995824962112152646871052093356050687996095995272216487872513283547298691120297495438338744090014179087814558651388395208474158254194599431569421943943146575953099330683360003576957476604571052088094320295194531213125141294829848749632218254352622394887948256892128987636500912828115235707943303908951070293536540943697886864816167798481623868158916423984435339504312963353009917082816799202070074418582676765122172467952521748345634297283933943526327325088567487719122615890148994330938715511286608621664115670695083009461392359827140555593063001429096985235264624936533684903764990071814210641133029647399995851925441898794590421495927385587572469604479299308803721450854047977130964796018691345784290920924165250319526866492902085883474847685737989512113391663192750868892324204659253726140154929826260226239182630705990697731417821133548102480739831640889485058623335273205066100091903529154970189541776661692390786313271820037690037546691217020703392387828265499301021685879821347504582652516543434947796787218270090415724364669162594370464900206821933289635546218617606939772001569801290669467737866880322014806104661140811854730037368127244938977074016118425089798411124683047535364442754735903474689782527370406796784181746720269099317057896963169226057943540313183417725248121365425464914952658452968008114959711022184989606657456102382970616969203741667102663536487268626352167751053947929803229969592817782056221959326857447972475752698135244888767992585931801570580968956731810210626668420620466390287184398383835718456901541791643796854266911892651587795430756278683099865587732786537709106461100516097425095930695391024378135741001969295183617744978057968481102665741943240777263182151521836464976015788271755203907218649082900835493701741590620517273450264829710567800913686469420715354181601964675615628548838652378892244014646997783979820695151468141144077780725818096168461201979159436155149322920605901458346614662920185624257577116872244101085071697236231487842271294678007740802451167195337797358542737491341918388333788612246056448237634363177791817446048167864774939154579920563467509292118851692853244208779300692678071178297417213355744294685319368256185867361576697336345528183595086252954174346467261963552259882273514905975737594477780803572312835400335063667575787187689809518171483981985339331553991130263209328974335669645039444472624720212788758124684635134939487621612916130122970348194453756441820573726935185855788540862990637336548719392852689771466583589665126710144930821677964322588521939324345743526310947787905643653135520618271076605820478687904981792277074941315091814805045630718463057856624775505555683939563742597514892675037198249181771387343285660798084307443075721750304928483093236093412390317964292746680847380719724705782872176565268974900021599255278383893434719455478124377813751408597137539539987176605415279723382609067590092254773784904160511176135325989506751867325873095955840788967188015627326122917394231392698464452476373248275551926321756008451381929066111771855339905559627747993109287507249880774548463698541380237699747962095737623947359977168774670063186661144355451636862944264990138284287708388474935139547127749065786509860772727515540726407625529894913424273726174431422203353489332508441159504406345309230807725090639369179424654235932006608076574180690215323574867218761488085708222581148762028311957374711030980530745193987403304951424861172085255183842001315235693111573808489817532870421967324405017438575641451227910289278541201122510468703694190270778140282440511584658372167669997597059761985773077420592392726210241292134630629200442055691573230889781599880723768496317668648791304148183087503394433288909807790753197042406674996404688065818496740622381156772791444212361807179132815505091676823363610293048838516339920183548125100819985476825875527878263596047902066945938621329805135548363337196566755031594510775892465948932630323265896908640819301557577856282768100000840607302396713402203545464069081333874577815922251733946121453029620892046173785263050504541417180068841272097441338676164968783753595652641851638869834016135886100627904309764451398597665815293680052570866294899961117234386528919104056705382292257002384907101101962546262557946302957329020670673152593558099260684740872134326022673202809306250244881274679737671246731378306810796298568361635676253991114389466637274287973207043169003210667407943408910208197672985997411472241057454089799080370039444520954180340115748959064674009377875844547983287903871134196413928174991900521008410402092924716679191770616343807970194057157584123785101896345966062307493155316926253376368207183050111709053580611556207417899915817252643054273526290922293835106037523045240703611471249209084108684582305885985201113143098549131275808441523224840825472106002381804438713987663884546635295906053052193764636731260431210230227736335459595226801035471525177355883698997294462868928683312388954921956384878551986782132845987060669213781614270338108346010817842594094410412964288191468304523249934931367961221756368624894739008634233784872358566637598295289402359059568576143126049402613227574720957528076943058271408181866385648684296907106975957888220881253928568861409814458972116135738688551559994696804761727307553522402664520258451417731984546591259510573759011641573899410874704289885778572633884902470532517426786063536798733670988282476210916230682647745497242956979728899445085166933147180497433315747757536552231034261925957873739333399131212251620435375509116748678159763693617506823086103222710508730391550571171806280877990740990729993312710548742424585394967165318143221518261474637049611374891269206868685218816531630742213639299484738866293744822254890405075463819944288833444390600617790623205158146670963304896078526776050475211798396349769724302868200558557679961254115955181588840710100161437148170395715453978209224730814673600136444537663768818911472824768827088152129994551154974360275266213640590467895445716973434614777498140285851257264301754026706375680976800260857582392981062606771374044644480371998934238617446609755071911129934918026564600207520382994224058061209983418452164274320894348120555182876927099737981559734569708626330375193505689732338391847453383166965276316906210701855734729518021482297052259616858021408379946471333266430223239447405209731389158333748885915291336356660601389164243933426838919228974552225327916796358867662067198645979185181775304745992074117193700657564782323815798517713165309034280036377793190076928724299285810505953506258472241332164667179290200425674586540658698623079627918261067536798859194298130860059629716630880810262768989628550239253594786322751082417455477429213700535320310156062100208348786055054440289035776421803065136536289428813240928934839170794129870062311052756107934904093812487123183725706602595110924288518903686651093749378596078268899785359441071825651020935994356075828027712252305295283081063126672044929078291131457320188667895616557440011271187631877968914878109405850640676089072610995225764753113180614395214509680114330472417913432514521592808645074348313918926790822155227002570128858801379892692667321931372099712957707084474502055142366302770071066360837917187042539166461365220111324599319885648430954869485052057880318224534617169109615154073960982348270541958273730030535184794693955205434653726940549223763453512802052349931150290041404635437172616322863647478759886764739443457365496990430350568806529131356013266832620393791783833383871492469835528877436512715957616854150825636763515629025372097129244250370122316654387706803585292824866176987480274772621603529906716799630426433554262919029922512600295164845191618063341184330288294975006803374433756672295564988496919714330035713518675444677379858339095596116326113071674875502393550511613474052089002515176999244878661335272486246659597229810193972560695252794778992540320488246280423616808334047530733509076975150830044802707505061878901020983240700667583174615149058966607512589179818333874995646795719307871269788226453958378388766848292496628174319863525664334638666921784728844794373454413975572315722017227092063112743436942340432649461459092035929923391848948416779007234703962669623096823413498269814051673105683026445560389800861660928657646953757866796422088483801927864373511611863160731549920778795493604259369811978636798800877961029648237856174940297044153984636259698803417503380123367848042195070075414602558613370214363313436543358295066560414056844189600797642840328535755225251619747780104885218361162864773868646203581959062458092002399200076822107112539640292478130778505083339579345606298170091672254088130061360260144585248011941520549061965646822041954897265470578522534984052370194265280370387350738048786108489745894270982084748601082076263908437389844190103191132691145370779375714997860118565942861399474887412048230434130724036364636600565046275393798170508800141871310378385001137221249384569303460811491908605583832813332493595596241605535698248039067729727444610008332628271798583333585685733653370118307327303062152967830165133375232064073541323368136193251314221016551835805691250815146733197719612829201434202857260268068509214187516165034267646777595603091625913179857346252785368643455144066812264874301565188181205731895599482578090131328983133448118958035062771620686817373006401893874716602431810980196962925642189561368838114119224596225203573765352353282411384412124638122281398694138222369764045428825729138314514699756850594309698114545663192487118770567184536098385699797031375113974525934457803587703654383251731185563180695692722695452925231061493769277727325369612702928045946530525198890671565988547656954285779664615616927705975178076090070051739236332694356610960115801557401775062869626956926337375037909496888554856518809987806638820280011261117901704912745368371117619475731606327808480738136255720176500429753477400917564241905278137924170911880649811864938682190465745435953288934769814393356299874697701082135749177120166485358833050416391984801373549947432557680042257638806711246054114635819016590257728711999156330104366920982920491967232863341722423943353837979049195166836384161399515428789138990961158729888991958749054748169882605197996528296615099150907483892684641343079271861167764419296440900961277080467087446136801928314280280847000676026168227372669502731887894117337269914362023181111488660654584533005485288530922973943095206259076807418170723103890658953853364078562565620784817190391566483873127027042883198975528899553749029426989573212829817010729747813404988566368508091664108173275909227842277363535954104991246670102003963609702887315871772050197092513401429306695286826464212189874366934931162246504453724877689559451294324393190828938707135969319825861773140487150775616132397678500774075077587952768541371756477009466663025298436531133085523995439354568096462018342009515910409226340778147078627764297665687980002612461218025417002269515969168736752484419527128982878905926352535724810999913786157492485423328375305293394544005752527853511345095652702951700274069047356594709063858577073585409676474117812478854397044787229182794800352645210731097756526948609262947306681773777039629900358633952890391487236526753757479952404659655053816632760271396722517498739449043832567255912449453423952797756369901041389584967926725116212932650399652843202709032862253684072942263829211200685168175839666282030264783077599631758505891727132958759127885875464561023198499509180698915449793550989575697694941605432917797939434246820459369770948797055094496733002385429931642610554094019305901232330595027232978584012502621109226680799446743217088812795816524836340595728055589978881745936892139467624085155887641695695780097375598245079233580947545359054412835090508673951770254010279228990796937372555047875773966129997450403369440590431119700807903967391660942686466551676470402265506599052810996135010097722528501220068077652246723903575631992928581267376845040166243727548871557213455423897594666092204339408792773422079128861469909214598947046186653975590677118733906203424845861454834934905970675040273991090086040417397992502149978653750296162214492513668678886060498965714484863116873317232380621079567060280963263208871216803755306517389290181137808060676521404691230440975988197949134017707117472346345956795244438369912650813094223874871315583754448099173936233215394349494453091842552820246581535037178101845536476834746378530176065842609377580801023325629973977685406193824189373842626418719026507572944975671591021884552612420645672592659759739071527206027946386628848413067368472586897664340041928003255900128008228409752636258562061246711363253109317895089599778216579414382102700862186018262253902678541408123613823479895167686508626405672863254914646699643268176624177946902434640753379168737857153243040728528097292798292317306348009023087901132584403085002924893904058670613307882685490412625892199131525179404017114560618112355449556477147173635343678956945697167519652130711695697980557021614226705099712460152155975108019703287425664718954357641406723883692251532403924092721588954559134243440734027529850831714144914722537175745018201968633665229996419810508733580985127759885920105431968013330375600231684061456525293209152789733806725339588495737639420393390874554167648894386747595455937597624961628224357430428319735107272605629766643082920722410466513895382335405871431455132874570277888772687761549579344787864377813731710422894499032956474981654899347569740233179356130597457247200926078595680086601997824613142799940547000559003765660780682658518740488426109788992780673289668118988903703900835907435916944101025870286534018991858459266413495263362605972964898847747664308690555834085340322593309104084031395810394281889087463594297062708396508826558351060127886136173413678175901320998056923701725527854484207592492178086831137733880400496111187123663563182738368159827513571810398711191244827499720429887934036250356987162494838557948032582108118215205722993170175606719406319816092370038838274478183845295291855059576940196654180235894761499941319868085385733716116507101069101247308304660737731332215488635817487851413568240337004152746644733862626826110925921822771599412579848586088062882220118516843314198487394913300420848960024259612132865203262474718806138074752341451445124561761732564573754466706452339250529906506934264109523210503362204801947358741454572001414314222548546488021992294092727332428266924372442818876103226942611143896352756907488432327529945311629104723215178934132816204602410541966258910937962793292336264748567227992388736218562831570940433002817629539517593508271274839621721099898613772881739967616634376922535054308702924661477472348672474082396566458254869774091316588512314539845209930439481270907990100111499848037721975942187559839337142592248025707926449420602557243018596362669632215955547850167014166163004474207329100405750329104300876153208571001698280480214198060569555519530521186128844278843702992389258820420788661750048677227350126381460486108444099779053229403201726058010442093275778533227641478843633690671553587384179402506868216024783554432395158933145293215452907562448828718889250943002251924488796493719059767895238459058824831852289080062109430019016986175532924047623996095796823709371473621499699884894561645142940238276550064424968491617642430021239187633590368031986081096836413733448149086913385436566212344407018412042827788032249229660484511178951527393881450176199057540768039282530815573975348112566148547038995020751236682588429566427016444847739553018808900239079875263727403180224484977253191820587760306426669876449352032412613711499775290617322349003528442313883351153782511298190535816451091154082291777712613359864381355246917243331746241431584506110941454525164252440949007342573371703057104175187656712743522270184007205840436277687154744308840592343824053247394950995151878658214707353737079005010651807169241324133318926627904283756204609635268495416087884106951515296564011270653141510495057496354359089402669602314314022824205532263575608026556745482840895989604893976968293374264740847123095281337907553391022989809700660632247909756126174769136965661136196430501523694583769461369249717089062215298846855616590074084884243824292462337230705363060259939154037723189879733488123542394975574930550340995702796078660125902457517680646488434304489972175033316294895072322311879722084931338263012695654182401610476424020787414441552188658153279364425912787539186813495005263201456504218801185154837246943277652518016349580848236291048604761642473210671057370335112492071163669461156952304376919461537263009261469330906263725615554711369187764334700456812354929100752535164781750578156022346382593783475617615682561204821881311136512189454820298193079593571721111496990323653491313323311261205333860606903267805401024777304020726641281801608554032321976133854100889986645602166254747982117135138644854754174189795482260538538196537171536594955486703863640044698811864057726234680633001442338975652529315009651374238371872828017458914709102310894528192631002545450600780833209532763456307090188888429182591432895250898853354626905332814479261419018702865890035194662518355202748088591277159326280397652081637196712049501857930167514861866865782134939160415009919081751641369121927256994377297965786768398621929146945715275238445849295064062596539325396188676950081070223921111986410073431879534066959780061916143698884720823148833294182339103432418755532556673439472264332207772369922133071183892517034250889018991829173677462023872652746429385436117402637646501949343310273710338391784128757311170120374853208636540333588030276763420995874734046892922835105808188158185004866802619628764861602246491309401209845616486102463927222994440183985288099048814174977009058670075976507661262540802209155264885210234953782910606650592267732974930663004278450577099575293169609133295556716075272842370456085556051466497526211882104558260707440204128673182498175149748315284951485161494315350905854586260224038811838468082600620365292826752170726619631764705048613554074763400646766899191769007117985610933706003968011902628658963059363721120509053447573103210348878606727124847923517326111701592737748115604486374151881093028067285037922828051945142985110522004840085985596307718848509453870289571837533877570175610345137152209668601158559667448148283680534305586501701116387729321101609534136858085588138158962668330908942890646494820483046717667624483868707173225547898685270865954297492801435607234617361989325902694220987329194712253892921443609149895758851076764129776300181194912520857781951767302859347534944617916199892143325738831239185837754633223405567264117767336022177852372436555703653195591362910679138457234780431994880583900625520498482490025847359211444486170988842867933390875725728102159567740891965300294462957153714742245703014638590750911056451865534285246690790733766176706165580533780336239755392394553009533516504836247572449346906986434833634221400908664825893203787780264795658902240949482554623955354746058807409427787637518436218429721382262013148426823476536791477884244391787451921794594319228056396740551579593727767457962305397683741008279311457275668137099727621783742821902504001338154349098701006382062152024210886481221657662490123500016119622980376768819855087478510205180835520624195361793216385978503598364515351879609855895273757792413517035021350196178105089834038151905849091917182831521332341872724484819823972051610897547745591776478045305162919666033697575719846145241583411418842441389754713105008176557372742153831979988099510200683690514483014558762385946817550879482122117234448462605343606396548742475524162749692301719683738765331669807608222097640693254084148386462655603704420287341684161841761814227982005235448290916121517371463614187204113194593996933664724433722077508515926033059317564754622764896950718191369473081337582841761946808294336827206659057290718933732599515774165860075015419367183107629307910697534837200121163314480426999435273474074251439337130817073581819585172738722362524179019220804414022665314205719925792345608828186976257989836595219891053594660945019438948726569871415696994199748227058145391445136169203162389501396995126806398449266685391020726085043625939278403081366262934412652215825985744596190952640184271467202163648087233311250456907853343560503243201878020284471890531879532426053670635704350464606817748300488976789382911619881451002132789601609075303870251162322982015293540182308633938191623210360870955098477227384401339543165643069387930412509955598310415488218603869060925562025754439361433852864758923044862129705945123540557561090463655954173299353897821488759097738178387610167096075155719033259510967878451411401732449500375085242879873702740209542265346142904502383664673834817243672641113385221924475467477457652171735884442338008333464203555533620173432954462705639156713609777784001471629038642345288078559700644574686138300698410934731888961237327809514755327336835620478691791586214909421868260986961372560041425836925753702265086063839486493788808817093990811114237689867206900844814404722188892194932412690352302532988080789961179335442197328734841053225924889719197938451565854400261829611574337592385114693679809338990577549890739466779358615722135569653463676296369934357781444444172022357898409069378924899886744542500931138141905499625218410915786675715435581731340038279505038148247078558541037983655307672620726399481213412305467278953000867164880037280590540346262571588540117192749229468157404218718363083955308644520895117510089418745122379538257984254874965547380746556741903245161796220343087089631091607102243655469435502888542975567563798856278080176523886303850841237996149249408677375589871894464656805040759513045129270781946482486226009283911593120430593803345050183611539368322191038668213921249425514187392369139048036636075192344898327082045471858434048286284009528484954674155121036851094752187972568659504669352953544593740196260189617642194497971672410914165561093986140207749970629052263974346489715935676034084702721823539538596457989839677760594587080012283470933468336665031453702407796322565217129079773845649679532944373147868144224617582333428553658627542385250116250776728650566146972343998004612988981919388201258116489756866533046729494465779732558078579854374431933030346386598866757938576391599621328118213744057899653233435138933551025035280108201084225119858935844758068972362424860008678719621459387161628952883670675757973116771178397235123533759290605305891459856285622715038124160072879595390031001576847738293160732468828848056081698074754050556232752791276457278910364749943885887894733009006949987500129177662890398518533200251250400876209771104611593628552585366828804089814303780751105311296925988220504264887215332715469833523132786384466072940575958813869518371715625778270957127856629348487162722911166632505890159110516056961501439557754671083788883050453754073081707196032242816594558431685815471122839027260985502884975563847701245908204980012673502388133976132738346404464538719875085151777753324273203951266885150412786550071275865337768117883266716474111254452722091692315563735026142898359428006694955423997674272965330622529757515238577971906572941209877579779480751091556168814741287174202746043963925701760720201501192040462953229060627009270078431383822036364352125288767399508429479925796606564224910079580975896605711351170725136198784164004135602305065541525006663978986336825362194369819176565467052078261537336393040762206103179788681882612416120636607825310433577855582718321819596968085246085027996201753210798868791087414484381623861521840112582449036502598516337973386246826653143407820447504104112463066037132019354005492203297094036727466416465701685320117969708105899567379031658939529637329247347628692238980251592893839897673696185237814283382583010869569156571104089349934565842904732693228722003307846095454614044687765133985353971994746788753147544946922101889128444456884857999000661947757718827710055029922662029138277449846184120410750841672837998204934491612224364860410318569450502520164169492093392074761274783587653495853159403982277759119788553297615889578824641893262839261971044649409783122983140695541878038623610404729543051753530375123397537408535605037669179965735296000437952940930209760855850075119523569225239173145469676653587620542809198939391509114283766754204805201348660547557531737083810222695168472180504091961508406248921051397851301416945733065027022532998985402460206708632710674173860018584810785452003361158234991682019327571954305605453154410960415792955358923575147369858415521462275916230341521638790128075038031243332132347571111390649879016257731452576544008328144304426672385724707954465081883574541344219061288760694044768972216520714887989671184398958358316025140710353280807772000323800678626665468620422301736961280231725755182798403282885681343082648118032497303928695724703418863850107575237920998931952361343910867359928914949478855823469255082373994752814775717606622016933148293639260017614622580571904227983948721979794105651965237259994562224994909436741663612076499027683900234612053894902025311969611463959813636197731198380209296814289080025445137770032901158317930294588808125882857834674326061880948969065593332426636642034444350671968856304865221271923779861403306646782769914895643394874014496996984995462556674590033999387285890667150942162954385296120082375836852640539182770152869904957113277892282593659151845526668383443800973403577120818293052482296401227509603479078274433423529197507513979369309412660848294654545439027485729487486353042731261207498598595638002955966988539192843133715192798079490738785402446815587594224025626581129259789629358589764545892605374721016243499638725714532285245686558467572565589404227285166981769539297980091683070992793856114929582876775725233530379899443990457097950576292794983722223352463276666022832274359450232762282141417885381450366112916452291779275285968521944018952491400837816870784824516038577620555374509296777578242131279391653316668673689667421144226394229004005548780200613265256491492424776876142842463234928894210073771446238485675483849398495255198316873237162036234299107064339904895335290814404053652606673407807084037555204611351228667232655729114879018461709896098184069717573698232762774295229339062059209347780553187776195926674465159391704389185580370649366271416114169324125585483775447501868600094112197684287910815779171438500965998718143635938884571454433138728488814040618094448966172778410311436515079607275416851873902646238610491478541107739240746371042570142690292769116290755341786154789047151174938973829623343502275243323621523123466971992956814915302784465692231489768417891331246688036952683115630928728810460370058451754043219379515407745819322235265824615013110633530262759548500215593273134579673574681327360613496968974612661900923196661482829299829248471701889728678242670957530392397313999823072369986917616665011290315412110220220154419825598497018336679962477328358501437346620386576325849725149437164979810832508064120953784315876085942650553675385241828644300297583540651342917335324890385120804426091044121680457285343582097379974994315044893443926759694698285656842114530208192643148927426627754870856280290418744964337594793526371920364416722717442245634815664363208594098398213460730926760653587273402512320130924864978688533871424073833706657577683594515327623755298857554579230743922661124210022867018322242398957616201015684465670437414547657657121103782832587720940434808882101095799441014198707166902611989204064423355884946061695282913121104520352840198502264447613250176083650367675377290309604628420701188477251454509914120443901704361051085288457300493249669755130198166612900182017058717456654132179499272287524928594901913084787801745031894392880105745825587157793053472602893074144085483115190330973211517094295321966721842753095000722603924063417469139842455714364957342263615455423418232489148926123911372147780548323838404892883423690642879357053111913631615752242669460295753182413872774683565138298502283594955151225851635164167864073850334112742414026273214355923576776461435433268908370647707922882765015379561594218881034048410233116386960063555440491604623765107900315479600867782893877346543063696168584922100809062623905792944427925323742443313609483478641659512989686511207861498244141838787837443362959445463213316084778349320103236174511599280231013684978638296488111083886641938321022407615705079697906308051760626358662085937434906775714959467249721181301731318426756537773884832689013974452989455242738104779207752482482156526813701706569631114240036235667735176742713471090925306247450368248870240722714973701039608730390966341238253060947068474397587912748294442770594226680071628599023196480551943176659015008213080532386922334946530264898111880866603023127914961747970091468427470789252243260082481879889200319950869322258716731289301600595314374621782603147958555022002391754173812135171661969784149375375099340860283467419523793130625887562360579536319834729872170558326075362785107245384025368155438096235481214945748555203432206362184846848729132986064525378636751142756645515859851087150861957530780100330411847015758309240380420778741541134347769112084081620195233414474910475287589794954876456763015946810908806257563804479765276012238495840563374811035185785566600763768339725047264201890658823815548577702893681303240302942554412484667964392010086368301511211410458483541317425116812759644777725322953644856021288931474419524938549509582359949657800574082894003219396969070265384929616850028505011505932700441647301435093241440146913911190846880390962411069867823829248660144222298220272007703403842953491466774538852163928308740658758391452912218677967155792764922775299977308043500048549368053821188210449075443550414952080177479688166952945154435839325059796510285739717489508123341302176134057346417898380285458753898254113657682902271211816294997279362154830175659511012241179636775221108602951529663911628661655012880385892730550598177227716963533924538344376941216318760233335432506288616284088374244198569910909169128668869520587572585775481085613659531610667053611461473076297634824741988336688077633611308189197163439644293279086333753808137589608758225495099417410397568054285103192338017833661125249098179784299083812696165470073812956498791233317392345418172108448110303878172958549826355430200783803654963669364163920629688060795987692737383918293047094850036241251365466977965751726485997304072833971556059924230556635222794810969864405055237839852456230613695545630160919839489798842249768309599405929201353734637862459290305331401905782088443153837462439542760831347941122656331064352363237515307328120138872471694594753391746855137842441928775098185805472961843423408128524965401761577462331574992766366739577283815551678718235812632892024276981788258453752747439644493372348505473457481245676398580715761047675507649540628927586141371764228068785791958173801532306269539199555959908147152491529905616139904433349135144615660635247262642410896527844117636557549462589518604416115352834945540118740988635407107268123935518142524543701212108933845379292947098440170342202047197089673068584075746863321303144091373334073183827153863434734863797816206569991048515124005293545619545293629733457393754151003931373900055991132094076913826253098687427295068927359690848319297622629236361563127069236871947310928740000191174557601183837094056464961582020419647671731529219513277324149319356832118836239002569812906624464595782672540129129322317034098998737553616632076708112986928038053206780762780052718061609839536859163875759930403139033717463659398334380213133396357527268958794606102827666249351431548866224545126793557586363955174391458214200252747135948566608391565646696242832888030062008852059786965468978270568486941641390717906036631702303052595710340908438810886596341975557577827719641310217032413715679081721354898908658825037825205332422826879114699854354037812443428721349361862990522435735107691426927429799897808284100054400098960776826735176397495829265069764514508043331752519858087061414494487496846454474091061199384709299024832424423180530663266331131704100442591165179568710796190888972471995423241475875094398791810121416841513926871651369272348874941349094017218019110503584805799557194656849568880642903478330805388221615289866111762077146668147885253311277022502384512587457238811905780390504757001596812631065975157771448586651318616037700329740601693736314483894472272017343337608764489317544909009724667534610736039780549259570620786638928111498825948660511836289396196616240539478200364874788826799292164808302739562917284116429064291617470720891422003565205460719898481225459010125126702064410372426977912504669442408546443173171822737756004868353711166151144192904797808374034018307928815608707050765803160568960068516498935076409494283835987891559320399758207312028368591666670276419787482481523241670215452889701041319231784600702370963411761109489032267902119044237034189979498226888215522547693716928159290155205344358121856847099518424167286189329782585953840824177179762238979019539480980259926662292865295769664553784868842581660423325140212831644783245648686197114445006145967924992712465032921053495807181642926500896316281104038142080009829572993293305592179821184014284107933813073113915577797750921895994305987186866876394370512603756533155482962319375792098406944234088682740931151848554403261764081901752033907063408894449886346954572356350897144824548374963713342031745347952802470517741755781470004152312259427730672261094112048355681794724789015239156663350583875372478153573361165550966743065451046899164552606934524222932411317329822411869481046380095162282751619571984995640256476584032836771722269198464565641540950385001323276173357592730711139372433175680529599086223878148495100181932920392321749333275856443921505754360474223628286494588439850264837173246185118750860258325895581076984504118995985162955293564067428251533516271105979038434955953006410539969561365591802977448708391044715035307211074730601930595682324046139117422779747128402864255568828945774906821198813662879055023533457492842326415828822999337007356646902381067425547386700596572304083553393851433214719213482499378158736208407333878544345266031727046411179880892572458863870503768096377608121053480468745430085409247251767962396093173695995789568326797204974912974796503706368009957926569810994674884817486442093741490290638576803671144480649497690856643495325308800996583936838667227754823119497109394878299087316142722897385803774554561255390474873923040331361984996067986295310897119247587639038858802660656406916187367637995333071354133248834015382177801067636543272888444086881309953555027970286885393509246940843631345964691032227210763693951329311614608024824460647169205180797958098070545603600859216459658272760304847410990914374895612377769998284461029287824517624533396742278820846083347882904332332493502731529233210274580447110813358205268294392770257456774112367794750493578133544728009426705499892327881447836202234227471027749209398218285136747058254840006705468368902680756516604108527021017003412723688338410927091757261738230659826539774374305809195732932113839791958483402172390658337632583105729314432417013783702440376896378878804427435641511234846370166267629759424319245576339124311422980217154297380673425995004823044309558055304158585170835516710597908273465798082160335085321798142154240448999960969114465012144845903213797499954369265099594130299377656959835460597525892841108928915579122889983618393128284065098446249859302418212165113779710749505494423362307908008970504678167439489744341133966271471522720003760841974559179895424719433383410537860988478587658718327332642177400269344250132465156019938997832167603692179464775582216503533733568321288010810759567966542351500079261471173810569448026044182775823366007574722384850344556398865324708450572999845925876355142477136966505185426023156172100491800173305174911279958067816161816839765827175040588614380602869356990038680032859087986172081905350334659859892555132726814309819704384037535145214578918562872888343789787156637419591783925209249392727337422986062657415727865246509450905216642268025986172246833980081163975190202492952486684968173365590010870036487911210020184825464423222954695454504171491297266023652830091218912422042714267292683194460017734503978078367059493559870848291290565725830594766640383196180780493184826913497231320263929301479283546346084927977170775795371958471606628371543905788876532032686049576082062460692308798763189890862162529846268877627543058467793583024235074215096776692100403451802979990029272054436055994891744373046485658398588591473236439472492822554103681287783072581329361638896158142412385765113143687043233777613588228826519473953396151784043087163877063625868143746554855226813560406147721112158920728412920362271307673222963103974563447133593480241177448232883603377853850751075210072780667187917732936363965934449404884900443885219367040432975924410952039784986090968130535518019775969360922571583274759365114346000237107091219542305182534488815997661948922397635425953825236368491977755990382490085046240658297958460810115202102540376263502835286103075133318046239990142869128002488960140671330465930676269392456005426978982565662650112278531349437989277974780772496002787372452045133180777567248609379917511207834411780327962553958248408832754935794932551996188811991645186169961693228438796506644525253600186287125598847539784480996571536195391162904811358296890634126761054504039813550171528635688932937396012438981245052244725380831525107903749888768651237243079702731214415842515553418048478795878559935939093500137346625773681518000257396759705721664882937419752114321160346972425041015717523628941043603113195368982556026657961556196792138965879026711579590783848535614563993288827707049080607743516807709801105198329471232065372198403041420774035244003395717530101928322930121606294995638223623735497302404632020587509977342263167838991023617092755808218028466197814554789480192697530127279457234702262765294263327935020003399641562476024771856110143918153202695805339038711547920352849906246956977298074848951833286880352093230967137540601710203350765724967549181965864768763076199276714977782802958110157381594744906058083087814466560859581549260980548033800279994906173505747344257057013551881644909110949496024040643900367665720768797426976054370458304865088305566642626436180939153645726497052653826573966635590960805408356330178946128412354651702388418029655698417291740073893298243323271612490147568628236866757315463433641580867878694908192909602074155727301863420628943642507876403462924604215941776312434065870891597235373665871529914400278888649344274872387530186458127620591918646114787791825211107684491069346496404176208393587283597151874809194569942692568006211698623660779969785459258748270656744607033391870620036003408058066177663213437967944785274896757131455781204885569887428777760771160703443024017133080528014370587954138108119068562468542556053732365895165610061339848660261194257248181146676484577186612901341986646293013334843236987022114157077711474604149325503986126307270643304987508201398799423226267048726993918368169355780842095291502536378746162667144004518126780200540571813614742258535746464326062188989424814814241038843639004224532116020029153399780240507687829005739236558849998560697162770397996225228553000677821431108274971540972319277124328654696998506594434040248502132673976924539526918359190616456472140089025750729841184258104308357984350893460448006480072006878755604985279901342204956127050115246635344113675084638141580879338022400232890180865770017213753886442034223248976445984013515936298753364907308840545256185951486607061842303898819191522017451752038148250862952053263501756417222849381011817562647764019849149329623410042749619271883208865484150972443680296785287192034788835575593808221676352972918181230803768496513877630973897711800388643122448262397745180839002729683539255897543724330407266004675173349466825903167819364233309795098213115787359947489780314060045335601152280400806055146216189323270531451575186698571786440287012892463866113964349908022948254320104031013306409301468370828842629692942649623905229407427205411023929035985561629769798612286836770308185506856882258583309139362028425324844127414427450167671486667518401910240439531705058364521602239670053352757085326072417775723183063714986912680539717661887101300994967438966396392263398196860724257139631116987771078224985057436290788174123285948899051587571122533486825233429381926885418310863594260385196829748441716729459513387687049594470275805408338705549826164548463050111834162896119368161043857884373590074835240336976584867564752505113835877163923942840995561023799596308855709328753897865377981153745919981690918081197035917284145766121823803222891539696807495647295375619192371505551320158364972744140865523235957218006783511299998556687367007996742571846825035297038525207901820549700331264928406204094865308430236538089593848840496345349500218439367613029363766012082558203243412871924512164494042084418004173560554441565420748264864214501213568087790885725805303313937172777655597317230189023333536709922597698046734465863253007947834332643994804825955312999988754932523256516611491395486481207453126238185628437394982648200740201374229157869835879272115788871342291420986595885771004641776114321462783756697978680032849775140225054467780046382128757065584178779359124277130258776303976377692460643323280854233318575809542458838444421782844349211603045324640254806514086204617744148784421909564611769348120715300882363379233073976398698981659061325678359777909911305305634278494127013079300650200781942272575677277026919556361232941487906443163426438659713018045639203691983201822794817400915276352620989487038592993995954795003838729211060097677997189463104899273089401280611088584212666650444593958545181225556475810776887913320642957224790121740864778019363231153184682111324336954925586836880546830037383272737656708047690502131964439174122442281624001208449777317348703275848010697880132694243937621743620916230215646411224993885123769814636897262972342066787275595051112010678386449611703091887007046739111352544075835150050493703476913437796832392279007532428222826312977754881244527522814384282261252893686906768464743147672105513308552346605238842592756303322907052251760483695881219007527474178343877279880255988955387173188743841498745483199525305122990510234789381000108147746768704465634213883130152907402307324488880104446426027890004605957438940640371909382433349437929610555577406250950600918968275964785715648853835591581021913961546053790792832016324042247105806025208743373733426245557076572774034971756234999700286030917870858094803153708760347681434826020209900602957574068723054601323728704809390698400208595597357927174900102873919425221882137306467600526142314093348387854497344210191399070220367301882681325469678525572514545888599221432230553280872677679218813939646947456913484371226089398381802909757841152908162971356708936256427724134263763618087152166981035291457274651791938014603738755083025460269301106507211472485352150481786919978437966294342816700425621568542762252268827975854615147821798926002997904582687413111935199249119843774072224138438614198106152562603649562522973189782787712811937010473097414849699567811865163029518145379255476205986878562386167613143881901685438189445997626676058829549619006827411895943731007609245636888298920868813297192083857042632692631206670242067631727990271956238584248779391203827041835519412407029185508779610057540204180117069191488018473224274521992434699487576515661804775630564108090002805006531460472403192987453906972557541132173830620257937541992464844661222185800397371677873320140265430798068658080293787572082422396383120345985288714434137326480036251715486784564960677558680446325392564305638850139307094571018288929243820756152066251839651352691980846428883658915034979821696436761781085251775652614471329101229963526642503706189533681157032047804717458860802215776724127765236893944777283991186181373490241734033886878151213013731347615151317055590169844002209802511910151655021452676942952369921182449348935166284142248764303009289896371384547261514152753846255429654745315359696183869265750391281064232989099498180270291341657881521381163040045268387098751059293517947776143214971921234194341556055242835780377246515675940972271922226044010612348128183462087459577605017203571732515324508567393033585979573297891830973184487089836649425881553730305785721926311872977902239940082538129869197061846216174657871500645840087404064412769807218148944434908338283333494838669729695619834081895886283043475982649972778954654400271863612439389315116592511604096635192401632127020612036141705929959968909427015528063772551699448616424933521870635606288591874961210437381890482024585072706154732425228659700863986530385802776128787398125365025444348077985924007519767146773152607920145402937611263335459061790366534401290506366730456265121590320505143076748233331455586296841082810294178900890665836692637751181998669826953439829526125299013596667352765208134000895925803354001448566328040781913467378771173576466983066887182189175928970903615812945878830738524619489804383598311191674820698714544748256152340389692364722580987241083382037902039266024028427902348413746093092883701777969666246479194086340217223886153893643620308679813134418312803518150881953315654394736976644918805823544663269186845338677095325212968616099417610285004822943989764730169523666822445170248362206381814407763656198661738804520626063657268110433821745261675168420271911118430311043071654582235582147199986402820110367894354285506116161125575764030156369208814853145744148364617438811691557773488726306962289692986566025256549415935878632646207773418594419332306492032996414148925073021512984434342741036267867388674477209013416701132394570970947989181709031410761909467133710744829547536704596956685874349752372134262355979200768270319533935597638636913310162082276810834901053441358962327711358312629859605313218014768769059072956091933191826435400591397190743016587571178915513128118292053936386464012798248622613606485069466351599948089484817107918856408151719493105997205772162799824697877472216377488223994196826588693480560068651936818692193827398795072601096280986238392057564237296924798958620841551267749095556936621917292075222061405991528355733304057946161487759616095875022969841485920653450426265671783864885286954495778989434048375060046564067967167445117711460876231371979665238895983278849417996046026895382376940407076319092477572068315726727172915045583077043412018007784433251239577978027057338853252973524818099021712613369829762458085411039153715331064414382763879369722438994185277109413483843293818941260132936761066673355504942015884412345473787948340710680905810515436136909532404371212580278213204500365662497794962484788358763758564552675328645978390305275645242724869856886054262167698687110044363525526313092290628026966365055982934436509586650544923020793903601842906868397892228409688347889703050129214757165821448731511901024514071543908252505543612170273394589067692015886859169001736411715809349508844177687645170117200075157371756878608414992006173781792299778327501599013544306112008049665227280416486007854601903220795814833613617299463630872569385304085617006595888944318259759722650430417456627858059152780111285271728113408028155626587937845528875018446797680680842909261252144599948649042254252800017493283184401606071356874310930233201492095518467160788182958304464201299184769466236780749420924980249606865537602254349844261381497289819615470394994419467789858060525379381678257903705068466482029929409440523843135525802125388039367992574324890946613179979293489365005833738284854269381998955276825697248165472286262263224811541010985817030197256571374514325861121501621689496568629865283505305870795299560699666954364320302797248466036608476281420470177599408395510472195840640689573240891654029900855888091023594653220804682294152716341004786974103633931716127987557228278127904786330668216366348027112003921341647624353041035619419041281711613550064823333124928213333482192819100098485493287069932754044846075812917387748157467614042427852111766361040122359341928366189231683331471278100474647188732251324022441798329220662495751523272720113810553155617982869854111956768607696661558967240894686329405112931273022866305523087401491107591505341761787144671561974093027294982765142237724998744352690439695386365056981072634390656275891070196934089321691292116815259583133541980391798596634316923192705862549498086080037553957273857530235632285429915399256006530807433424112736933448239203953656235903933695387846885135715029790258626845816599772413740150051690154817224446291379788950366802612108439051716224510613998276418546038703278450560446557222817759712868737045172047428995831330833839656371500313729824006257180658386240621923618943088255386754004730011145300612429908228873014273847734910330483085175758091929844347197824636380796512820281024258486490318848807691074316534650668471597323816068687240819945835956245014747099614005071324945308261599384562292998821593410039424418759165939634548634185424568908243920287544487170880894328868709310933738728841897725000396404387510016484989477400769199820690353832139076233878346544366843603155045620055199009567937223715082458436718510290952296840267890321534116652731806306286185437279254410145542318762970385977143924169031979033919180311975657896283038579867349223576599775311134259747915844289199124145124936124087693106234442829406303667617430575023393083167004448697942596130798854421365044390701708999626904735859756245450447450771196872318521982718024490528211667867850047272727884915512102865591150577799839663806217875156961602198519696272056683947248701683367957612318315608594727070117806407079821531308219661491938163924511175663720604130526376505744087223800326314667545827958512977516339034374304186973212596287038223087801485568385642059987097023952596435927583389711138760050351199443298879622998592480846089765844375777325816751962787768362500198147404140903416604524144357481731222357091888919734052136376527731404928259500803110522052486969518824491694233765053033680773419057059039179370790777480465666199623922344960899427824544034112222751122561512578615828734599385949508818616777804370642426472965597226661811222877638160780725747993856754126996416943565176999092770446094716689542300951631782964185227691295530657949251702581515474784455553455506887821247300113242614250606910638879647787140580063134976820430044172006456579285466791152934660945493256652253273634194932352795379925714993015169292580592523902596904513822156825557829117098888618305011421666968686503646664821196218705182426967852042996787817845473016716489665322018078260131881778429064787661773170299367184278914363527768396443771982067290593682363140762738413701910722462605328837330887682262517994246850422444650000680235157007415507225933199125075277019160890865406671690078836931362404872231537596958909776029217043755699395916306660540767257660655293475449209491985622056717179127784888835762852326436372667348828484637173501455207999701375332250314199121692401331326520684000810692470319817626728358383722812169241981675550434662398867667133523849457886380612402890771587382277503616547606276460777994768992769459618237912873254465934245243438886039866350613984638743043124880117563959918738577864265178792163836612276240552381497798039883232278808121511045203492705135896211881567059032141701124880375174722795286488010482202691534310014738236900915117813247627949167514765135316714039423533913863050002912912041958400746929972623540412104385151721203012867212870368467527603335574961480812519223812375019041585665125282275806821425839928127060005137186519950604018986406835104924016399718374054745764402795162763913854250437143183810669947923022146307717460172075451640756563212148519374430325916185801000181873347982791663142978861313778608148357975218089009219418435224557892776665995256523326872479801772193644975787658174522260769597984878768048601592217730477351600969492184747047678080970336617391921063638856540233697228018140110803665964750711863060942139166094928483733464553327728041547717049805001420520330411372203531325242496247454744587399870470826913532731700165973443617155855295836274985564601794502920577145321690411152354626147864089940084771376159915802400798926441162569743261137001196316246398584114240155200552255800938853899689295849050716782298469664618251066978031125971240776709908817326732492066188402927337930688195337369947892910932927915720622849800454459336881480296190746623354999204148422262257392844848803613103873192908460193914000406352508454135992931863771912690801294501776886960360538963965053395794940094847492403674568613429916279728647863859348297791591396516764903529709697919197448732586409908470264594324020811503498393586141955842574655292268560871832742880078477921996653187200059484476831067506621934760894126324881221031700363768656065015572370411610231873224487132721794857794918855602968577149822511741090320612901469870230696988826808353426308903132462868873208903879007532374882771171465205876955972036594584573198384477588814883396448479888380110581993194019076799411395372310385802136317976258833127175001086270744011401216806434676134756089031169763905033353041988419705253468083907204240277242092247488573431273961291009143030169715580926566125558443517633963981984432142507891671555426853236943002578833646917101222661410399869529528002808747896171266756216818231977437463543431311804701333124906702882971882583675438665887053619515587117530713283988835813161384214624641631749097585939031518988482667117301077631492352614933651855383107694122146196324663903754510448985015210329805292562316096217912406748081952256598204361330647928865959687380160937401423414917743951499799364491087135227223256824896404949360602270814945687668084607603310140637462034862766987320976222090671586700158450260565776024148966295036667261193345099685608726434961612039229633455280859411521107344956878571959322115655495941581652321425610057333669550827482624391818167261017848492065320796689963195646615929949414162993414801617378385193542137568341981379577125386064124566748719095129450918735601934607878929757045252144166607749269318898853731068453422999617638418402912638528927319947631717666178281026083176578843111390049443395058196251806588434515928769584660566285721764835971351182412221644607062365277687962686452654708014844025187699461169691833775423611398789143364517951708810564150115441278507806909877673893864429090670990100642173721043547956478182308290316599992629305736737579351915717904337777601114495254546671503533897162805419298187458478470915867128934032666208490968413323036792657749026620689587036607987471768724574610097851003183706916699953027404269292938121561967333913885466747655339310831762316680040015297551889029991982584753028605652856377619742293316102364632578524214922037942139472691836960600465903217537412004850523444617688405379551743046844880426705523952078902470437240375121513151608364467490545995376617070866895819786657776999415282591387976501883147242169042087153436753958140159659411715217185636963979983459287223739028379118865498044576925363982775599606635256841954426866808159735380941610365860112647190001263812748978283345256116794996755168816255522500236411915385182765168073096732452738553780879888843257600543062047617561914186281540928444511788270456308605494289300751567784704942938794639596443318972440033455593161763164231196180701166791893323209231182552650891549310436399018354149892066577418980121323531041163072934789810734687560935466095860098025790444077965940050673011693454914052523633085768966531102354116613075702329508427861330831868916253288989387688696967769354149982388367194945115641240425771437391718768139704346322755312610061128085067974655233029230732737634712770652119901550346003518227387635670415359652110105369873399481199607468909416116852786224832604315301218946009264610402685989438900393921524528388222173432086721934589528911555970900638176375518168221925955348030795385344354578128536803349470623556963977491575968621815810636419890898704404702228882123448411512837544746110779249610291423485785081370360549764276090497908326096770223696009629095600210587644989868109343843831902980831003830757570697399442894567713324913341124051999290761317850975141609150089651442836167856991291256329775109656910311895626035978987698801645320915362611067288760293873357952657967919852039142440982481486105477617120176264849864774366405694970692199321194435188042066459469130483422692858412262525671306236899824444899184948132332737357225961299643905186795341572292064835917170020452913862237452244584294218302596475748138371472635151777515811130475011544259597011305517566339328875194916522367486132837463354876819304983276108269126264055551888553541317389416355820677183248764575363375847576151845947231509676097954371960557187601373929175781833012098941282374755889724051101845101876950967042872930332300230615433893589229855768026267367839428489354026772625362669752918828343813763531418946247590208975936026566886417166832206966500437303782532924439225197958418170275397555437731122112923214841108379117242354469544689235670744034857815165514602216066564797333535113459177113022486342695496769114806967701123502023766698791746270175093438316542956612409999633841071871892908092023216589304748357002055001340157767202870631707503816908874380830364087547750507568294220425812309975512274871997077745252799243258367303675819293341337618417879911689984336019697823282759987980012536932312707154677663152146652279572739426581501564469035556015142377971371755482698047199839992718372215223918680552252688497436467273407258693122274469516884991258231019316260979315382174892804315818098499702899516250751463976838780176094626865420822004816010832041243893634982151858110037718921377523611832166289745981823068252294194079550564838695863116902031963995784091754075952395022509886729635227726565920284118418212318997659974622976035358629426111483421964697539647341911594971599056669256497102760689686818587855901151705035328899657100904000512376634062931217417551087818894440976534757808192973909792982677934188708026835028449783162683472432618385819108916678695379489416435953433772537069394307407644762528786934670237072064423915244969050110921145874008561075025581077596306885256174929263045718442025917090302424828284347709964459091923865155207272972014801729575912802814496286257666399369543537823934069700226558641003471671556358441513228466356414237850736923715448833672824902914096602710475607517003861141599148704102115174675144487548929308533999253858637916966580520474642880325737322369923646320574938902585935214166444951785118599195742938874128334636673340892978224339915508435565062316176819114656492402368710370690680555642472374849739390659376009574682994965433682356877510932921816518372765201834252316950088685531798196606244497607291323595792322656937823394475848499124807438307102781541783227722626506607081849979060603333981003618354159680614051464704260715714008573233217521629701522998109516542473106746299652933917764198198042215915151061404986708096540763079503872551818413193667010390876284154574446242586836419163759759720260589517692135708691104574692715374472104676280843771933734317996613282467689738283313563359881119044683458447525267767826560083423730948443296258752126905948683740352230282602157955867960397442836759877310701977716250729849859460197084328053151978300091654088788714475592501034947138071583280011046196664749746392399480146960294841357948638426445792255537234692940023098019688550974946483937893051234631220462105014138842973007193852916248268211599491584019627555452169733705607196383065921107987874303331426893587353149806138276523441610637860299442808437881286418399943203745960245792167621629414033724138622841315178216500448715368640851696240319559966585631374645931177215891416793129451216383939380823298746944935916978754864692229348838752114216262174124796111946837970387715056722685032936915472547533175563205076850013093099939008675754546037820586469016809678473836041255394091829161720408007020927647888641035429120153057871485426269436753137675561617555623346046735887731929517076572673387766276670189328726344391291982333086615165504152616784366956496469288575386924305282959940109189278190088225233888651807854248583079488044282100269711899383212538569991043933326043510474135689607808405750037473748178731851387152896220729410933435834366942531235529520111173764223461444166508883078132020407950688733601631461976893235711475798073969849878344367406388441141815054172568850838444187991640190388425408977048422912915791986316127415286460389925128874212554431554170333910634809472388861493157058252952085559136956973248847921126900272224110652079659185477903645838056052891921636876115225905797912856158732531077468659279645088698450284962123029412665280287792221828282045657981695942248166483186618023219943554225088714180253933641602537463250079663894568821162045837929816977799702349973867250587803349474041070957259017075512692155663647535544913615022411413590135634843691897633333461355435523802442043090765827703511681684719230960937472329299920971841340529184260538603384323978466448471106274148094949059468711887587761886510670050055188380313945029786019204349240846826023719207620259439014110648005050091790188514529903337283464759803800586690787352597040219952514795539644296953430101699984924734513782868125272847785994678094553214859248998053293955719740962962490963443887844996547997590599775942979570556557267952220452594266581463561046401952951422799128117405089037448647033702471158174601069005514803714608704528164982993432183283477657065291157340306362748837978418958002922325187457406585093482488029733175367370814236319110362093775605813682126912626450294730007818549177199591931044705451276844927450718677514065164988861700902608646836994225609023105468965109264383941271444434586347559505412106683035197859840721831403816039761426965963646927032073525699020721132346335824404972359301141848657949319623604592642125371751627246456790651440617377821674584624997319154670604817270759345067444040433203680238035109177566692384910029391722068267805010169476847761612756075750371838557883146013167035677550622070475274859041525954065644744292929043863277702990035257911456576631157264988041251242347356198732616564182396203779773012366955273135425709224521917670237435242471316584560711075858539994315129508246726353166785953946822597428907620135615344072611717096470637810312719759658774100156685757833587956092376402005593395039813738374346105211819856459303147049504885299980977561959118440434442923923357167946625122676658812944370832850836921814684609458058888539091028487818708147501249807153369557854435984045004018409662929279112900836814784182515428499257304096963903828883654888201160102383715554723689581820537119939503207806428476566671362694667530027770794808497370879304111442020189586341049195302815531079547357983824423593231278628419972949203576693056540949429592326278773101098967393365448270379908522460857388302129974491807503194787066074300163457527853203559342662525977753494946873295864429763515132331416714034398855900264445818695721122760734779468760054176071139510162274706858318918851938893206552563978357889692540281336619389282482100781610295815621412457896982632804656282914193985329952125258776275150116531879430851180678416616549004883001521592307852875396286778362983593184913689127197128455360324010337432601029297798484736608436902716259118454340836892858834762726951643223111944085312598936683504055228821662010540317463711843124565944926222599750393534676736618798502075626044940290462959128224148630030341303680946566775444783177537939603611917026837964674957876686649346279672792703189005823639777157196287808185044643571861632558266551509384119667028074562239218279959239761848174649846131488851719664453049138183913575924277423712363324996197142750000802973560375641617913533209477758645129771424793030364870439666534329954448613698574953184738965261613869179829814241552550592428854121351218265463672386531571374038186030401559861104755198823825368332305681490619122664395512858633124233092945808033421343393639842464195722494962542411826657901227866957681516491167931071037478058170112950811859720964549618981854792737245825791154746009744825838270122596363158607982833635876980831458855934645187105016595161972147079776503440688033331715879235864041970120639850275412550727867998900769539102470045262961333858229408794571718406060723659329624318633947775157164362041054470476475647303748000882775986306922540556568227206165950782461116854814124692736924529243354412597723459279369836394558518305386071717307940861421235147426683679554699780578575433605874944085479122048322806255070200939025233256392735534019945709376070312302186079190988788886954688557399066406925400580925219662884345154555916141103161693477277486165407828412032329318607578926774187203787732260670479786974699956174735077039429178649429631340976058809328137596156326671403603237199357387257266117925140277541632364562541725342574583556589133311234592790129544417915849419144512169534439369775194562766661612455188474658690261798411702301630670922242532187476732770699150488935948522764867892843584025152609731262025984016103589589521503259216401812403926100061723715135091171333773636084754761528277261303003105697341628142415247114120362792771378168406026092965233949828136677125322101650915531205511549216810508470847225780488859975592699249579356085650362414226314582396985879961967551560680198502348788318075709538517265752026553944371356504755497799156122345795932732895026219683180716529718379727892684179874419256809612208561682780812110939817344309882862888742765923146778605127854195033977527646614383978995068897793972742020850860679918678456100482418259863326190166368621253140701905505630429481639278179408157795037269140083124269130123201920801484467932347889426230053501101809552815376255488164990728009595375666015796122059909555725572487049770438815174627250211413465813268259717684173783935851104447254624056606112964904798563385622813715267929377425185826032579285049444880461171058974084276034228157740168039907571595974604985402478261805289215106670643158912091643761314131749009150054350852102706430286061569963494256782802098283659474862164414731066995846175854730529969270719181837824007287813761032976259187214766138377732749064737441116661292271358658500563713970825303577184938812164000525869017210442556448545072888800672643381459492261136491355492194520168421465062948167549283463923597260935172048633605253366153014106984919412175147866817550877051125905735105716578414393540822530672689220256137117564764434418182453207440401206584063341398368398774350094519080619555125926659042645171172040034346310849113743191091841243016545322812617131757101076360331788565475106559925973948401474564470185774909116133177117928040202788252314683313726244018657200600813790123889767156805820500636166993138959750661412975005622291119943802392575388608201323015593339414721253667128490658558932561600369581118756524702335225765403885808409406299403765104874102857159061703249275493762989183274885977002194191474169254999104107319247639457631899355010924007170322749616310949935493706358955137771108883340174468067687976288634830124398227411339943214849084911288709938199168784042463570208488288789899191461111895373810829574667347380559051549412517936357492569116832071629414858999722470020339246252044444535315061790445163485970510361607282062296846168173560467493444922124650296615263603686371638824554352228918402594387914355960855288721610767130197927608558761188305656897853975629105035955417505329542606580354653113646297355474899175752442200793533366592966116403446317336235620534035030781327179598229906969301906606734423905733528397461007250813467775774130754409331689063339258076411137573880966826630711403098945334482787651616085859717974646423364259695021877794698927524363621670202542548173324348521806142575234102373037222030961590670083907116489825221449818390967552763514072709627965360415811765090383503931303406631456961040724503219551207311390225110885282247706814983995763142919383186901641097090573366548855211639377822152774997196420869115188563053913303881132502233793057940718615035766530942910981081707419489446539642767224535185351502638871047937986043786399769407975106404960364524917589945413139798075446237732029632757540594720729487216945167463223085839662250935449918735514078888785475811210481649043755073531895045968623526123434685878961717622042018779689902316281627513676581298643314083363075327723284265131282377564065523695131737490252572309227192568540477732401509267746059737859976427995123264195930832489198705227689304074765272774712356376159940977890774638446389349398657763426120396652827577590044848258635009522548206283470746184791809243203069392098352360174886781207125295915173924802021160907926343476048743924871657350418561328665982628190600514124914327495745764100458820181373490173361877453313066315936186196152614042778810581762644798626004759897967618860888632322782716434650528449420368374102883875522389805418497719838800619844219842029596321434976446548435245695732013436978701207957684311997056961436052736381491650152954277846421002463834723159915628730744999705719515208809715943823906005757576711040608199706212903327698507390240968700165847736926370451415819764745344614433970808338427683490918229456222739061915325898363032648319967268228532574318772710500605402480361794997618189778281908943468551691556297300586956013442024007712309944264151173829250454348888996211018082434200171876494270202918009866137836493958524659735788746913427293861068854892712782337687015823342140356904763788932985899752959287613090848456458712998246119321151390978808836498671137263785208796915158979395834223575560655146814721682651659976459400239817736701592641967766730903804827827169718265612696060113082558230505673135895493475218562312930024755349698270490418874636605274230897398005072038397601820520708188911580436578856498917705942819084837819574829787391842603600805927279896290809751839144594297705052709198428311528562359852753332809839353367879424056810226573348575512929197176326392417228385953313365392688345737508304124232734706258249323707521122490479358288440301281218772487854957561714288823524928481148479561889712999694415914302904364312194083878952348788067750849072239057609828420734015757475828060928142982796569726182860994653095493906869904514543768292857982814230693217419473341151095750321743151568170777586676734828749877278967876565476479317043896218930191499409233993716646665777026331653040111179766839723697401327703470499163239437942416235613148536637393667023806718026200642558568434210571883559930518584070528686160419974641274931494846815509774905364467535346549871341564890144746663380020731838837965902390562686432370805975802529539199251312676205658231427421991857145744238721336817036527294919735774267877631473848255023689125875908301901192301777843514998152000516750237337770492602357110697127751515542146957517674020152145067813655937949128934284078967497492177439256112458810673234979051686505236134236496861849040997264166608764822929779440705256827740456173401957955555720543459473524459140736350872424815787604296915295883983810198874405565738259973416446063466018315874786399070668612131959990529290007482067728460083932822288363573491874868568533005055094710401850833064062749008528195711040863437814437575147095250471055065160843907958859671986601090855992382468870437511376982904843495143323167644638338215533568581392955005224461710702625692333559384008050189494988751287896434316861042368935142617088073193773628389021035136339276089331096438008165896242573172471483664917971453140386364907320405405279158583719802859712618467926557582914209815694618842667987329097109901685436484582105773240643589903332362647712687191419305559964342280474721474558561693432857102189293607927961977664382635330678122096495385365413748976913530042427027457314462769834400280662576593518407395440270529486787347858458893842556119675375967026878042881647005589900475241087016229178549106094933489686006711745825001294530365549656803858567214097094481612675344316426720387697101113526461120844096553836957794487389168662002204895493703965207812807354360911917313114280047570268777514664015710761117225080696824322876145975992849249939959232444529728501313389610609145782453844560637008784949608463879233462828575464135489187953117807465094421687158285285129880456820828366636583314479366111743453007236601362959480434759894735459108070744921525035757801417999018413104250640152423833886941060009362690882992616872747815308445349892210342798773831474702919757683178630473792943167418706948267081716081087952121163471724114014011437369712204762972895898340756340681661511371063927129676493598601048369363910026426974959637945250495941217715889749718547838975390381910994793688793965014491802272465850786588337211956585240920937225672226793273581451127009247292101394216040361231767659364429184284098197960448637774994079077779163334934006439206973325589456818921442551401097807095696537888205946985511464050963710800002908762057409859156697982787004651101883476826649565390935700886197422487067194311990284335224402044643753565848885688911086162998092954389650299895780671297317942971838949907355029418693906996936881048839586484192805191725053664088021220911780366515963111124300456396269169642117952647425388083089358698710048857925812292125032211024305887761503891579690060034521380023018703881492148044244306445183711591767089387696750649310272502459447470946178735485352913263018650435773846833948923833778896718196092848663586129072935743565499887511434020543223510511291294132798343097967406708381954655904863937428199394585715760482607342791146875433263468157808863953904336712417013551303498747040516323011118256764724187226365897957090194115961838491953616205711129438402081941849419581551233732284759888116997591321440051360915264748459068565206086053125573773402029567988556430299710968067640776210864601751229279934810848568742857108117801332215880231971966021090434884687606525011850238078854180283215747336374677921975732936700374981223637926153731664614489517556940645719362864818051948683091223704939229704047211158503054097777943363149402372173025419789483778704734013608446961113544549113775441921532898541480284722679159299634135133880616181986900801644335454519112449985056539354182806028427204054665794993699677036017654022046507910441649861306180686583126309317017310313802233289858863341321125603656392117199880006089391252790273127468887832365536505806366370981212718287596585934645922320566168157302579896377677241956240425313813449666524689306900367849231985744350595523313191957872334563041005370529917805884778111898006343076782449455086697607235232492103764624989961530627160108774594856468357898683767518765851718060799454454309590188817319077504262425251514154972048092387400397270546895350055969918395149828645490799627379068292099885956615436993135353772079850213043580237432885984431580306188779757368723584979711686225927575680188721605807469221680066071586262971709094522300490132451803206512981950080786234528301478238697608483117944860014424709154295691612164146340089027115239636133492381186877124922375827304865528213871260442178605812978557245566690772265365634392572702061096788075831921631633582513614875366761109056544377132060177155326679086332525211882635309962643991082785598178438688439220985298871706075402106455128787715874160248837148164758888256375997391523584747841164274091561233386213646554683142655049827630294714272377885445910192787797938025953032044583721073714194387261900439000486364623319685227312322493921077434926896912465940720832784944380405882829185656746758642375805612354141515480249956770348993096901265152405726425272403963692539035474951600460815612815347170929817795107891142162491026848646789797420270837641603901994911201544512092206124597174932025228510722406944762955852053772709461243965221092562250145518592238749922085888475318909248609850256207954518841438162459026617191298918121107628259962920852539887768887992970457394344486574355857880432085823079293624398187664023610532890522630654605818677191058518079163681737477453802683959781169381141761254052010322927138074059277543972799770305583930444028475134295846881525090248168069274323438625942540095953751161547709389365377680408411976740511525149283991552350582684535591327367542368251031725742039201675910478159828848038080316887901554748790293007237202270429118776140037164858105009954965055895195246022343471280594655237504327904245762739485608188243754209515920297977622460938819901111194059218047627524185870305404153729634156116008645240039243959843072080347773921499479086287329202125306527866368059854159506024592718028369254785500503361461439869528228434716974256828653980673611348366138518571714378291649781863440428896350948988895319533192249032744147569848463980028496691497112258519012122872124427970837580720635429656680846545593728819746690983239932080445031825906953536274972979872786207521867379057686120231628966176083172923674474637636377941141536187564280771353529646374515603691817476560006421022920948337941502704198851174974463612903160358945151765253738489961199790615970256877686519231781257168926847337055991263679489552378704420695026589303915742324005015724578654741402504157084795638668952775406585059225875130248011587466216683263765396780736484710024642463918458997022822989547302230287633056046965909423382632226701394253198825000939195179695269084647441368638045803572924284196159255965461247817426882087616783995540072876500321226173988952443067904499896933786118252520369850896753678842741542492508016676252030229265207824088227633893768615083566686138197602426612940251829030398256368254020744364309326022381903701663634595596717219606980200699903965004795020397241852536931195095045914928141802461843354525263368688570941761655807549640858024820155509398536757437227392465475951288751856718690696122881452891487614126508049470056162205959251290241417517864813404736740324805583217760718914639154006498097866360183513098776274244607988171416081260447560233276625567557017436625365907185979863973402495787406029431651100664798215527392497542870973359595996529727295866699128459912414474212497196639158627183143580568811096315931417579078931658213166298707860430622326157143100799769784021917699062692987452957737282443610351926334147062975892681916314204441973169203584198949793562203646656870465251467192976028759509003779531247778299334072364883321715534434175324059429587803075391984405085312113630483125116133886808046691288301210508717893928952197016442632557769595288701389422131221567392347440924896492119417742760172014160323676636736253616655510369454569008985204234442797133085616818008606491862025662286755465706455814209433417141815332467714369828051268691891028019438697607057267013100623068896068267802354109594668197170111565553054830744242159631428313378342270741235791744155472473778874578939732013410775953334204280416083834365464868206817932986056022069260436858744568451461055129530950680460747651443595412358275988530096198484346302890417758382306981474467325784014019809081271871886927859236212276601073075401826649844682979443435114340020666586043023225163190139156215205278502099936731426367544175305379245782264469279111670524552168671832208442365476482315674042022718313376151174854872747333504274185319295558392406733261702801430393369673781948862662476339646355197622605719673601679357038013527715983331657415818169765064881130814589130976280055651799638354856076003922978078786700734163746397256913837663458368897400070863558758983699770560589721250192265808800437482919591702154983149168182229846214131212758937773136904856173532730157986535506677559862301411000019729402220867172508059868956021910330124385656336078494238839662456904319540819860329868956926630417240807011005215675933497381440064402151333893548472361685822335230516143106498644411029822042403595201400636116677637616775010171361500848142763973068948980479456416697550500525632793543545245036306510888746393184355621296576061045297799525527425252802547567324246828471189095667632333657664252969148111120494908215732706161803521314165488024212311091526037644694347030259128028026217192972562581913069819031339240052949204719081165941111262027304899407820209893351084250256140077107688704453972953720786885271525882604497451300343585143846091844266494786267703373453040109048236901634166446371527177397748392119976492527078395274172572193813201882796685225957642173169008646774752614425882599995157724558145114224799428701644278046021478932492365880698744415670339974024143353194695151739929190800268475519335956972558548274063456023326068764511785127982470237156814314284554096555741072379183219209268882288313451980706763225944350451946866301236015669449305751896683517478550231734497686864722785739226186574427339716197907322366626268764124684557145109002859165490246773073752872053705312260259875015906352418971435161057918997789548445604995095656753634683168867829098996498600437918715647291066494662986071538328762074573998523414564012075689977517196546949290705917741599813617159945552006241885819503253323677478271396483624236515140195647888401767424506327677984875915263543920839960747509621387003925433942843884085366005450371705634266393055630051941293044430347646990910606250073654013613387906238661811240339383901818708950019025113806282507925437532238882693460398658328535274462569058352815628429463779655386825394235235642853448963044830278679239993004695748462712710171968589413839212490731179942250663407466709357290943979885868260266649669735039949010806058048603035509653373151126380744114746234765841493827356893866561159614829939121859103463493583420437044613195056696392508479132017236388130152154570568526836707906244324464020693458613531974796815225683783747662565489938265205338046820038044362152426015337043285790913853653551930292499717581028788594504697465460455588594120855718329514652780531418756092645881581829549299811081883672430220752748667059234786568456867436697000143907531083307506117925016545775456417813945378574387142067306360305099363113806950029699684532286936759189419996532863528546646636115830401667151914429835544564081994138500683163346766754692220276025673136315486388942622758840419385704704233223503260723510588251004690845515907979033529350429545505312930315668227664031266940590310568384527304671039689294379936601759153110075355870230594397941385970032855851516736098437808399162726409734379186853519725585311481062887979926997919131914192071413802666990597240687071618309495422434522155208342686719960738930563618260132475118557412120271288839333157823375197075627140294548090036108825615593325521388729053187503072512886792304163698887633879789992190651579977154513147143023430056057322351998747399224617571090103606892019035567454153014091968845443952179681493042052739601785909828427511681234817720207443406448802232615217663833583807070149335528100092368354733527935273283120255329413775049150051683652655774508330894983116742938725346844194403439637838127689703544813118411192275842078482984464260439600188152827904136699270724230063357376233637543806344395106401348816664187528772742171234278366422563175875666438367571254478585025718280625919141308553916609395555329622248126825600873831101674689348269052037117782724367206193675976852820660943560472005150760859934242409112439554115010809485714149587566538182982190247865048918259680052846168615478724898505192191906938501231136905958110899019683361819206334014325581996700630634603133063683002909262857655823782950231835969787348616212740488772562092896991738246085805144259464728556678799444415286540416839171664914710587795259567195701567032991715850712195960393409169884618843442300216389931331515904840109543986250162689953529145249373169291502794640143495041469062580196441353916977734452073927534144131671325956527652242876303034194569835146888912025551522923289451228147497475445696559425299584083851830618573893342360028062821689768495029492601881156322148013132222515143830485432105617386760974611406639218618236637204331760704313180142335374373695868427748486578780391382933500362168565297116735991193294325485508182321237862793419487088362494475400670052077920474033056847822432295470687436387289989726501532284708223164712928024625052056487195605495074531803103947555715630098658523103790975176532603454383151769333765316489759096940910233638833176271992872275885659817023591204877037840867205337330711308595993471730797237588937840857143553032359978658918446214426140392802864627665845608339699852719106609786535556563391423501547715738733830630069601879931103561194117352769764370662716903931240947213039366414553561490301884973285062665267780053688259703525816504251393768470076582955047660228577716864908479600828819880206660172545444810362460493479274407183659910390822164125855716303915944881711165294302341396962142224701737108037591965749527244694868229826310300611650547012056374534755120085896605348387390969651332998212024937469693464817859363845196971515174340446582791000190175927709502027676503185957458544981035976013585378976342343143032320979316057627129510035797100372105845509191239702253575696351107989522756633829814282415509387875793452255214472486198338618595700735277969713555563201336343770225626098388624297387027350418858999063119636475531862032768371185968494521731881476363840567919639362939442881703033867927768979717254460344311119751129799790472417440377365731308069375140305666502793896324310920704850047662134738622333562290822086531675000986574882439273897527999020900663558096626098469394115845533847486186930870568896996742377246966850505364768567776320186835419334946213987109988336683316059897911680624855258676807073281098156530524147860434838076726915090470525044391411786436640290618534853567821762277147300228817590826581797020594942880410266230001625040706370329121815064100477542708232756017895943869925943803535061741885345160017593866319771467216797620210071014535974395809257336040916991607263225234577251423147435955581775921888081356614491189863376255512775568417579965305870944608255280801895285210987663290931401697174325116844905291104025700232094989921852786692413003147477852298232503653646117464564151522327308723652318235259663115647828774182517586972683207387764015257263975534784675760016110894004278024323884913420376121039426066883201145897682053294783415990070398098889206266508639840491806656730446979803886459300822608767161660723948310691441960457958044367602268653203808835222912452460140314636593389317938635633356716348610873739435392829695335419884008646129227687527487592477041598209268620177878948632827475014051560646366858501977164715258896155619857863821016808342539673447997574785476134894280065430558288048423307245044982519147582807117367743087437067112752114336852753139556513588098067869358944373235246658674091888059527947266441592817911112812560162775042243718362322285145987132325063530230132835434795087688074438264222326186505789221453343537185051473168144494114216908651187953619144847420807043070547628873339712970051945030850308789005334704542048085851033093493662706141869810129908654016005636188510360451831098485061615522980303735388343884480502345689294535691821369996043958951756547222947617114437263432565133943039124901061270472574897316676858687365065414766673653583932993723305914587553491883815387665108426396385321201739223245118178069114943354865794709026505718723312365042547501393663708812312851304516790305090683280267066110446989163873642210284351436510298081031502981911159135555844368372888547703118850203524566818598753436327322639131089712818272000569152299686966613208735724516367649129849325343408278082385859805150703447319970501366966956062887275931891830334148661822033073991995623528922479982337321423407732690542418666812514967546092370768324532653605884603789903790306267375754221630297095081759464646867321403534611249851339650063002191094818882695346497204804785261798421503014411898269120514233153744224101326962940857902634629265126564652233844263780577349039207292734028867443457068894322156257077037495238249424559171893449203768467943891134925619470423722545744248140713335260485419689922505264877747024630000208409479639144743529305106432287956183250651799195422139466192202140532737745411153831943073926120241727837170329966550172065668842503053936111054814379626645299755330180013534851133053145992949686566620586063514472945166689749012301404656582434206445513199453523208925016494700947182605297265033760330502078715001964590403982858398382630268885059157833744414828449229078413006246961905506077796492491158394788346552737240250438140094763020139249886842209666035208235793612476467107336320061903768954118968740032537838218277167709518945115923256836017280455388546045290267463056364672028022836764157258674404255507752215879377229541801528043571482589809103902269574659792676175366058040357709733721467574810411637238874316427970620247008586168478898207195814255103427587002156207046093626740622844168469207804587824411734005201994124572814976338377848248345799018085318951138316933953128192095804853358174802446522692506671064390570621142845478918162143046013716321774346722886319832847978631082198044841953961280534565678930057460942331206168813085109946201375490888487607922323347803739623512724987951350340179159347752578178870100243497967018825467693727772489391262848198287282538945048356656479788546957357190724994614302800489597290137739367099836954336282399677865732581672494267356309456797746185224158759759478603434996587113631102497469507217352270044755438291377810308423485446106873108548035257350242726178832686755762974497570985921906683885274683971483239617527085115595519413254783095701663421683872348282033038852639694741007439512090644602899679706192899729862409856089585877369389355899028049789678091303046898422111109409291460446484490709436167354393783338725332664553520764735698825970243493608920614090499642743640978914106227029433469262614955868494863215861864664720975533947812429517932948092081868218158044926223781243046271937711788834653152021526473352145575847422135312707666037480438942842028797505628969942241412779663310609842944997064735509117294303566826620905747224455512358459904054374916031189765218442962232363224508428361345832362237298389590206246469343892999314781688099713815604044781148828598071361390887451705966904474871941996800719968055058536266449582899534174509274389964457814053883447406991922336981227243324209251679672950186857188325116287746563161971967617341022015680107833752402776596142227269292395850207743074347179856558095167361504430727292414340187001045869308568513260354661391875022128783691642098441821581395083687389657734619113824457342967033999123783855985486073030972320137704112648810047183116675328956560432073263365562028807500961610995564921001666949180048969424861197428780180369920575609069098037723486150818127263790718915617028542161982976612175461949409022768451896440842139029673166722023564317659413405278399476435102178671113014930192098893216940230598257735997086309870351991996570826974089337918471006099822505833106559161526728577343792659052260117346888417078747746940198586506407741345452025533080126035893096086789512178188259339395345765256627858209991383732319995476981374415448264367284015806305914221029343756211871537193623272053202219049634398903383984971643347624393971229773541083298945328608794463615106467376810404592162908960703256769024203093722612225838983373070357663526220311319409965297150616949820872019146533230046994325922516998631538556549698587969890238474766731918038189152853489126206243566809945823467085434623225496499857154459112905811851458504554850401030963850384675599779650546043047699540138992615071255639874807442633040300825034134859103057353193588626607758326335171391363695750468666131925438425228159345632757597596983513325599492027804464830007159413649574250493580167887095936701434831927646842156779235883508067363186658744232850054595220372947695571283419067663673632664375629791118549989692149716121230038838134727843972298817723699556367175190274559973530500653917093295808801460845947875056379362401038198795788378438598143312943489453428079304725775073060025857098007696323394656565581823379605827470024954301288755901008910497780291867583618237264922409851360849920412386014233820488475516769914550830306279302727189554604256660580914774732741179260324336243369948435519823379574709565242404028291873715650953050998091032196357971270050110055748362915489316358323739408205897014225745441183105418179913376994693080468509795501783330743958452544807144559132445992516301772438917017867733623734101094423068126847396258781255239568721926947882841430866088495038560220793334997803352865927599292686971291217097233659727318107760964308157133498151764157577177639271988432235622004810910814693820068156702155971347337833709029035849298372172275438757736734595768226352636716034949768093824286777450701157834957943197766841026820472667176929916932024781536266117173290556308411863240020931378088204281077747411505028445059641879041550623343382845278874950601423334080244688445690116654515374084659757581644493680852773645279565725070370979627103232022965458744424355640368973586931855193719915574378688406334421313487177070494469563917809560454197525751962901966534456681350908398684697619473620675245346471122060995665008719913604370946835613418348964644748510296758156019782954127374386444566631831295056724185170684799811992403304372125149496217874218140552067766582648620316500583249049321472998683031828937610714125332111548389810921089560088029372601351385680722520496316720845868271270348664658689224657581690997011532695118004414611777148881620625672086270287969637787114566925563267974901567442028575798846275655511213484253960510345358010433374879782641879098240013201813652510455688656203936866823861414765235849132326179696258339218136508452903477084900245855353829518421687736701652796125072872475398775805800912164019779962454380970576105185488708722659213063418423226775877553306101302634035127002853200720389892580369063612688942610464262262660201180362161041160460238597379238160734807409772125519067527544433602560041199471230831214248067225016513169557528479225307801645415602380265585494323219737159594765381577071083854673457013490477845322143490548780212834177951609940054636348505062886224023710314059304959403909086493648501567962081471045728568382256556372226841959266774318246952789872924526918251307862895817108939117493217711776176915479704006146042651810079225851465562240839430848276321851373750093808056879197812283126721593038968832586204955193977251280750756508885436748206024916208397705936473058441446076494575752869606430294358845584567376409763292881937937981258548352776035488739591114862569189240479603533325445044584589735816340009440486766203438621927319673202288144509080824473730250034474198420831231208201675720497129977023132360312230694742289098695821680790355756501455195833432780557246305651868018486069065204037548369677901277563329296632105116040771852329272281406083206126543964054436620648830721290266424934767151283456644892302974502771539193668607330557782346600174048479328048360734176981660772490986776475037973702508397465600674952066152449305303503883188127021662617595908972593634771571926749925997702206974314430974193224813719497543184165160725061803882167067987860111291516516029236329396313575261070585788008475065462226830674206894685989284326665126456866252948277516705325750542933203386655349133291309038964793523597019844889969728108565538143706281912825861906865041788666612533023710783232953833505092584475829540133161475114414985906017877329577475632024340112188670162758475330977181098213589478012117267601809936367910104410796189792476868909128203298514420332151423253022303472493465854426193883754876250925023263258561000233726564331831574819414483026858935936415624741220781028587884356939539424816699513103209631017501376938493197224375540034129227013925904683747590733893510760194487689649381697830586365655608759997016882637210852583169215377833472439337401570002405894316023251145048617474714686587346467213732894666542409673061064070917757180777660770203493957287019894187584123707476715667309179592988179847247316565076508072489487377452080631647577501710789848116304847272136261455398363279032186444084749359075645709532718761876369526138354259049875383974751858178750675714240369980477085760267233446980131780817529587581790814394354962183824953781416159876523070983953636029054686790475336697464679500217182968101642452135897884802506107298827215350343193995676122568478556931352447756103143458203291296907314037592339204410694861581522363652813869957304094516705031216743431439813445292634609016337217577971515026505282049196920042164409905070283256126037779662607001571745010963080267819220058688417759896060497580630422375777545863746338361089914584002519611326525569514877898795121632305276882105669321253779968622605093587159580955620379237582962123742414872838212340779529700542467749328680699673981135023536147445754883186437736420037967051481870637112285796306462436744624250916373782319814492044860595636251623318714988412823936937059860455803447615522422436504811092187609042182476707165302404050660477834499984418596686398233129590562382404912373167625539538398511681057627225816009377144877662591545956946067960068214594842872396594721067535758595924610197768628222184426884841512534543309484020512510840857340829842739429020074936122198356632644320025431074305625635500876245370697583070095134355922939249535433187831302230899440553724625136887626636329890052924844815526907900745478721364162830393712755579855129697308986791512304451115819160626716256855257179890459599222961264255336234762311438963084707412699045853594612021171361136887898956910178477347515966772043122275752776569617908382064491178911655382642931921537660509837301061231032862490202073409392517649392411734835411990321252540345163899332659717053141711982610857146928800957952536924445099080492430793286334582130125839226891281622011743077348331148138652087343056221423491515500330130607122843593243088906942771944338666257352743602904784561379243922757282967733623491905669577743059018813286772982885926315018505380082998189638170084579776428513268387579678548919701982920020981499012545920724619647397698751393531855925530844118329231972696616390203589647203711006702809118130272022582328949227264205803180082114973225248935195255779561632143390361988499018479602216137783847657065384020884095391881468671316390454880652945328033418435342176405370101209466884993913015519091294599707278238410836376418723741520614202536305840855745974704807786557979330445648647997642677103037203469501047709673742357171233849401360464362500475922589491380788549157538820293771497560528021316093891693866530622856527318757964233070544750595076249416424699015920818155357724451924156033196083673008299841328961066944438607629623312404455912743944245076756164110780863314176865472531757279895444813495592868855087351619748075207127734912406670042107410896555571746462284972632436035409287173878858004883726617442607992206624757104582300931548563069534614599102748461425903192771877509044883176918076652642769868466409625417998358034982157080931679501719719182806711873191718076319740951483751944739891230174976379863869479502163397390505115163838889793560721023141334128042785630596522849605466232599343022050762434776525578083337042974962667787947853223085974781628057499095750967590579540421267777090167202760713345649530335507889917332501183337554071823175347930086074896561938434038749431376771362195386067174019204416848020266391050100518060518190084678464254236939310375809090354433598361723702227428094142775085346558889058154343202935596047545403443446414135529273010766190701045714326433735942940774214459147775020442866066529830475192158906571769994735742488463228865631027224390757887066887869226080313870436314747548973006212809344060313955311323438116154925582537686630507760969810207081671103531182219511289236784921640818133272900714155420294865586967258562869189289198596787258805070358726313406440464138480302591210985931700471608305528000296250371177847418593421354649918703072377559113191454605385421666908620860012038732510982004852057988418472822691235662920582639525217060529542422495497444271804961093449372685046591228215018787873231870365500843817242918736899936750011066964032711088322679409842914702922219019002970955663443098151759766970671036840491838999511531979188032534858463161035674588448851484919839468779943208812976731346193151711001408631556190724334608285612487109151837895039023343446550895432733308899240809658140574566832051731428829098237970524390030824956404906489963802958179300002441737265179119749637634258822340067876989773168523547926711369891242918590937451521217553734588131220437216409885661983761771006717437776029441748644418792069141743803478434400154622216273375798152528388692157280912460904014023520342257852427894618439563439301452609840258402303355679159064016365361911473116263342252383365727025625675588529237737234623594536855278420200034981565559227743668098109845751943980564261539164827054324128783754298901416633444862597508374970324131936952414051518709782545908735656933118159304212628872944908343905676823124326911146545916090825968467386680659551507055519925714179729873924038713812099380167097030942905940787035399979637013197480449935307484595411743775327711646930363975188271359097578240438712928338097594010758703860251140585286338970234484318540656968235917088174221670060800082219938925551423510601879026596049585614085329492641873100678064599825691859110776957697971707545233840668585094334752406324032582054543621974297252504346214291807405703908902401938925921581519733520835960353398708877525230471038986234616029834949200065243674721055692447717515613903294700429427880190397287307245649970405035613920406559567015125255346353185808157285570982539837139653845036745433891506946413255171451909960215067977183414969796051109916516705111407882652431318895589576378524521020178143556104560325533613059052308444031188422121969943069383791864054991513866153231899731802831418606089000388995371808120353896870879345987071793479898990951833952405100194145082577355289001064438497075585282750381321769683884213601180676838535594490599064748180916287614457148895880572701890733577661932857725797514285835373574967847999161569493718451122992632700903270801877726895263332371273129269226717519779389039189171658283829464572632800673365728689814072783580000026669306257008920568055829261278929635041124688639717469785274343824514777566352249232587582406655039705592513736274660459589446942975444870430458348916053173782690706069710993041944264010522742777315929601540520327910214122713309571294081477248722199278859073247366701489383231771388898514001163945831489082901427541253533212203598670084729664365579238229092343564254174677438318083915061472443366613723720201890298020307559808651180219684360069276000071942903845890938785355258386658465586599393487534354877581198592186287885568927502375798523720938420183118357385501594057832911226949134281278975435501186674131777825402305279277823517907199867033559974180473050232491623875774517125929677585982776217496362426278731969715929207440224852070159422889728655606708297702051456320410478712220271532175369222057602884166072369290361778076870732702680454402183163810732679560596356168812836298243412045221705916207695898018385584636913897901332797112301355811812338240860035657226931003707388249148876355882543480360161924393678248968616161800384790619121702365718218745881515654903598285609700007272755777891034931288387871538054521885468427617857796054153225929787881403085452239921423319154979586153264965068859805467661308027984953678118203358725500789208995663658822555464492945153744696645625681286529780328847182878158529520547977030194978565087410517905392371242958969961335132141416945770573555908505356493508499291162983976181263247317186973928406325251020309747898676376365018466381398721497644007454188422886966323477670722690032314966617656158091782402124448140412527923314777181835793999817448558822724281823346373829595750643436979481418446171889093798518233697530223931462635307827457893796826224533178993356468062490389896613661744785047284548778937216508998578770513458579953601777836357947432309826165236392648213488996418813927050309974581538131363669387431546517368939620223025853945872241095739727188663881161744228473355318010344303872508235600323513460238223838567076549042208001528897077287016633367178559293672818049767450804871110067450474176628321920361649998854572437107997883612142254658419169729675504451971565704366325341764605722615594664307854647581824078515467132488173657613519299585347042162643367258143208892659242085587178830701847435373949374434236059520931729900412914371050129021639897162223809068258545096700243051906854285484830602771660936219286164741599734157273817229713993856127503541522033011257016978202824801294025972845388458328042550128030377041395793808884996852244454320944060964652269594693377852891075576533197762977674189210120635488284054996220515915004636375712928840394494053364780636751761931818811978290772327987712132727723342092651825249701853967834442041449219783302059509123153030370020933262398312636904947800616589290135707620521549482527597848514304881518808203322065474444297828439620140773244552886811429084796015873391478384504606391052605446614262224323918622832018590405950545547064982526687300353123807686072557900154750963041753199978907777488581409900495219996955185862608168129620693341357926753679068152633433875824182504530418159420967578831328203579624527950044820501907890797436290768220272728045605948229174113224010327210642028314667034612963448033674016253104682544475686666988686367909651571854222899620525669866799809408767854628570559525279028314911450227199489892926731129645788648204745991248815935660977057051670389008863952873428636728059920598479780603828700344126075855140905674915743156222822777107667385486164920622058728622755296255655364289113565095273525435034829885647469419896235913408736193523426794995326181867684601828812411689674951992094081577498471496819895403773721970246332586637131160107743806605496837491338918517555806085154975353740126195225560143234028677638389823159808929086341275964021176881846825822580215024617177554433832609376458134994750748063478998384214531484996480991863083076251180627430855264943238778905209591540871141802632152666867805333076761142329103169323944986058123834014528617472819464978496812578283785956482774438880224275908643018614809301152935143547471304131792791389039869429939006845440211911069594015771503778711633343442071387451234983185262637718378018290335828463927285674859621128827811580898844949390256676403482701469367311052360315682477551489694747482783142124048553700414383098445255102920537090436833665091967952662165651295154754097808439004106649089932045036190343983193453131984932796665662525424232236068549433122317193133245129450608859183246758111429599593877006453939012887460311171642309723337127002737940001071819139449474720536557084453623052959766548593879686661605044356074385542112349331758797868080946430586302336876712396907225116152223726607387610699337130957537710703308604913275158861743013267929855165550487283443944104190326299384351207727906829345962502688584781432302000184932705544092216849115167213497749344884166235696361973879936559036362674110671966556017662399409058614139091046436365737593335103246718934498643056669673824632796361739595006762959113867756006440194993482237679782427454631674909634387766899555215297570282259545927305541628816731160728172139743428784346126449809053176710351011909946046418203054392995560121795134721182340551139087584028203245808751999679485783763493453739918132990647629657773340369050467112408772175117460280971345948609986138989492471091032016525966690377774994874243899642948771432728947902102238462662935956236687380888141585117277392909632329327672637115685510631697391427611264824054971609509747795805690362664770526005306372628361924171371042594666558266908909155695611335791531251645034835777146450734948195449494566974155302364593964187310599322940810346794328706648782082267115972978901213509088374278014494241479092818278900494798353717765661794300967816367713350662294115364059916266151525110964564072483676801823726011939053581191212760761320450632789028399771062890231936282021298433147131113612425424327554289954296613464520882950887554135286931053815665120977353929205725057015197914765973204302111487638230202341302494893408004047965063638679538293907575376511801851296690821388357311491226634500754991893557291414273121963535672437276394950112243627356797209430250125678030347462633857702947625044222510436606282044612255211840545517368276731661113205790594881074306805325943957454663524283281310415083430889418842864848300849298806723754378963333700054209218531951934707489315604483410004743169133568536232443977053255962126231555109353583701469639914619195704473760633553334571197091276184783834508565353530508642791749891582762222198765335567684661615388658969786673599361507358605914438630442277347549779509761288176255480688203356337573339605809472422129712227282807855667650198821423110319066600456655360323547997215217253431934903100003643665839623095495966896073674823803652361164435831638831243797904713732102426446147334157489556769111202942790239012005551839860130528546396804114290549854831205368463313467421366776007090156910824637385255236020904246919447452169768113729709153563597313312781522862379158167093062163651039055366916683948137967814363562101267775356637748639135729319662418477009440888442550396740102990166951124709896344908047927741962419303492430999286560287644894684567662209865780419275555103645442474902546687878164500483969551583145057406668483872601498593708915129473414960403960252470134562423662593152915792960345462813184149414091543071369902112037503919016302671391317800851004318465663625479797396255235438570027778670095336661289353611292296419781919294427781016400357430016139542263098701695044434002053473547945554243542220089958338643290769594382020504181596983325240233410098455937175946508683493630928080007960935471832705099082518365085072948692547300861895761050035711164170216930136064687999014520308378115214327729222871608009471101571302110449930843325064857738851077301804658365791960284196166597540017347818081455112447426616397165924569444119756408684725593120838092570507376527346925782300655724245191424939582437460968663119941073958436395830990809698552184640947999676015040788164033127093674378105456501641473664908005797344564463993080985504251926240607054151438896457804096416943317661886418547175351065864724752801414925136152431188413037456215019906989075899696259916411207493867517468249666814143333865547424570394137189972492398878197031114749476423006335164207307877989045736866327066868328990771921204600620091417133693897865536075769439256082781739655398937699373289798238646147032868983206715447966220725342885614491111072721892598797230828672866703652886993151876559885030483700728684392104073053638422472001955153421097289347434945738857763749708655469198559438042979435110529045037141665913729095429183181716854038326108300555472601015752462886380221036623472230179069553794465346569276903017014283415573670156039453097124749021167729233349205802574446439463947429784137676842340228781132623314299846417077902215683945421342398676625552940937281862609721860918328534419879342104418478983503208788447748868833796256330120117366386163728859761292107079594036593074475224933965486516441830319164712120959409018578840632922989702638536310875046490441954401821583607178899474336897539232663624232592341406256715094442581312057684653490832315253514490659020981592977794237581907201502828475827070557935813182929833803122346693791524545142692832203497617329045903495662506060445686997812061880456818625671593587587415447215079156801771327834927264307056128415200077760989766131191181371344851275940634831160946528464186154727330847104518388542013771002909106986283239412093970365677620870256415925558310757321428001706592896721881185603611215200568661755559137510250243178469295852647202284872671128716945113222421546572755600477426189031679426680857684481801113958643499573840985472841378532110452687294387691268946182969381660791238773546527775852309363449310817320013527070749636284204639897981564896833234883140667301589616628229812152906768929479683634546421742216232198004244873006576752623923873042453202376150990227647201581661735006574512506517165098616943984594127979029591041295945030855195670080282367513549259261250079888787070325333739625635419672778605987338727820777447588868195459727179586501403534069793321189097611195295292079276184364382618298238368005931481936637896931619146925099431419298086177446521802536492479333193357461413076495658602439657706602791233008996023126544103425961035060258109891325870264040606935683347679185610961073855553822076751225298728375454147204916009265639891378254739899800216282354924554464718831062283667960772070039870400628652524461829726464588696198155880221521696457655157988109163729384328337828168860641265198201164956973043905823288599351478680065733243324868462215086806394047827296523211354672193416646032933782985442455719309182602878573342112121842946898518336465805866025886103938275212737605357000434667792002656010872806011793889789313503937110258593840934601867028042985304225576511708509138773969779893208232228861254166830462787440149748433258201555017462268184788789586934233029817902969501947524984383442643440438732364142893945216198753503730093709361054292015806355893950078195636675088950020799955180797860174624846504298868254427050106400715964039121571930398072756554621298379051678678395211122623648497620895940644409501972163167227865238981253050011096547249564192474785743818157876595443044593327717052958915408311616046490850902152487103320529412562318293720416450862087776932928848364744671536449827056056490115675076759523667979617599871392907253811775874353556387231166234026651729010837417073154475171062356373555514767055168018401206131880422760431497950560179166432283358017094885294485568226450043477702470015217535237486904149843414225621950166118219123990638848564913430149304230311116080178577989334672997007359366921215394101067022600127397131653785135306415013544295436739936666390218826551936454788376804164457761260319345195558277896452716514558703256150000249776950578567717555010920577497326798712471023847798472657320343957624559513936200858211334397341999260420537377636729928924145991378767764175087917508233882677841843907449934732302866357967982707008034660502261288522414651862791828444134060888706827179521721472243755857641184739905738531980468901383117906823836112748305243552842590654681436468157160173394603089478716121291633885821060693885773008071094126644727425353134534251399281514142897205932965094791057148610443412950716793231876600062468017607778037269492495950786768906113152966110452135573400908282347043147567907236935858723776443328868608502735169535102618776092814673956428691026551210075044760609984254164553072222258022490143787302364943385571617720593263516912055319734868618391791716861919127141563293313502008117006016192712601502271605262689603690926652371409490026576879043851392758086567495381807948693850166054494853299528306820392026283966739555128016925124105400216826971032753125267627901613992315652684386160534561457725111706660186981554589228855782986443869530645162467195505114525860323269541633777637489239307489641752728415892012031277442920073082736830624721115029358020113374683329972589312570906685016543352131709157102881031253328194454365365887689126155811347875549127899376350666961992638003340347311474806083328524718338820536669446097392909535724096315377846601667950020170760477481244337662113678230045798241241614567957071285048773211173280549559460686720948284431782550079444666153340590029478649534085364884507034037815135119852411588088165554565427108146989524505698824476313416474885833083421559068213409829561375789064072648562301182758180503810795370960365804106804565258565355510296816866112004438653008031300606213520214350711832422886587604514626147573038452437414005802800651151474540528688184255085135989168652400934097429785891200363284222508182353632117048317082819667536939779876110360928271523243350666344569543329065457257805189545776312696596225981265816382628448767953919544209592500684258976253817428514375459493578019491001728628475686403437930922787524565569444716956168306860663768898901091441036207507012562661649381935631451553346301597140936510247690060953777654760548076175748783615083057938897960366409344774410957484779905567094952352902544940723103936941543485349682487666130027293885290411584788948494475154948818271430800690466023979726043399492847133229777085597609270188931015456101547293115125229485064646970803090054756502113240857012000291915545525497173269855686622665844145638335075454825452945739716649670532034444654810199874257889679770965391862807015935019346595182872822190166311921102394005169210866305098044860754818758531208785145285211151947772531835146160190128537004143532734221500258030603632929407503529421373783100087017703472448273887664041284055773440553495800740694253689982966718177732226498663575509696846813425717885387811982105634857204344261244027850379421991935949318359061651627326160128086719142738137832747057253080682603851494792966542307338058911500740064518761673402741507181714397072290882010200382034705341641405547206631914960332810887480175555296155769997909465843074038626602287745737946676602061253181864698156793613593527660949564714805179101485353702651388361652161232688445768540918578093429898187674042890589709718121579216776390198335517253381813039875000059261779765007573034774881374048834825178792731506288579969268183203486057637952002628677435469016442539561896409424311651521675097888803082604193806768284407707711269522546884936268655576332703113173848204139092671777895470235633990654524550623299565856052657179196995996783202458556886806616268877209870127111211309672732538584371167281131111397878125023534861922018979761415267333235737192365866784000861525367878213266316999288256213121600135481487145481622739643155162425254488992387019468790581532564426827104231739459902296677820036977480828109560741842778530405989221482585396011348846753849691777666970809804811239493504584560627029148857849446996433844491447526600384484735049651801575910339724114631136646609302748666530602945973267405389991672481051239796196473322235524613045756800083789976221329788559937131327700782893117687456671626089445779965108937144124355776743742806703964927961987516070003518095378363607185073641574807808788737086767015485753087650757049239855508862604122260482494728619894004260150640367793502781771176906652606289582877666107778312791901398518918204399989774525552327894359610960662958741214867681210571277194317153714451052005043699876017179219370847837471033618361532299712840002550248840223345149258443196927774173177287641234619904886096370205595102082915651809282976805985653319494128438026384161670469991734448003246959928491155404189325774347517636972006896908955685954553774866863753194945383066061228354944645501986118156257118036140259410247768649709855169718170114825904039165707779444791225815212626128963002952656937821493204940283929378288591313521088851687180266449716383594258518093165523670639367619616047152717286904692900809322949745210129063344305255446881597136465511313387776082933316514033638679380855808649133789232152992516717188129911374502543872500382106653375578633491585139889400908299659179307085275058486250193450235825499793010055317262153830454796048753411872516394194437334643640337024700161350709549323861099034489634694207965178125125729337915945283726558322667677115691515580576948060394717447291203313982442719627146971441839473377108289685937377952742957476251820810045535683441080462886554543431625824081672652100254953871540469712293074308287129546454422016940947887746652853879543323904661712827630216543192558592962699940507382348465368402020671012044181689922019917688144000482649117407438891041910526719059127483281555864707506881824093312353172539430151784028403671910626100738513338060021913002897265871010475320806113635272805447685715450104458823231903305061996922066263372860269202139089448727816638302795798843584683656894865308750876892910710675893117008078614841289337860274236850316768574799568631656597313613050410180532922223999517970159539105571124493091431238567394275033632433276270074239106028640489414475356813464866533550043205990036461910290659608968809016234590696697124628029399968375859007472613936118950966380782282042177830380587736992801878997883700188522618579051735502697035987427347465292439434863790338855048466179417373725809459276258642979278572994010980883589837980161980621759698816859865741971040633824050025040628316989386404720880459702416184969832990329225553035912221722259450708946960388829544585110869614635135055134676548718263045561018682164034185275260497942495659412137425933423041007558497329410636736608220157032041298815912617600139233024962642097977176401192177101938527665566500013226835113840350854297724487705434450734851963669096970595101216127807344760789566994125810639176822126830320356037112916451254687234636084021225231412694097433857064043652042097220318316666335632171244576105379023743867218841987737566559578746566718185904150508930133292969839450915048942916310224274220043518876844435631379198468597752810042510505763769638956031516964435162373084574040963819795878902788439388594160594807441120358729362990178806356520524070869350828132363161425095780564659055945763844065325917288778443909301675937333488709021933951805528477056116513357103880652985030131478364394108487425227543886577352441964613653854488513771959562458648076493764707268548982049890002792849960034469312454784438175657307023853250217991745207456398446640255342611345047722618650763189292710145071275070199509107528908868398203368519069809708440498337283314836164696685967721743194870470925510379323332408285444590498657673332091214383357519455944133629143708638766922234565936820363027097015909508399540655305431157552000408679109500760254638600916289267885426212345095017025726847019703365041792406961997542958108523760071555155292633745559638138509358966030777478060575321421627788800105823220486781992923622262650951580098754925926982420326558051954924394607162235125240737898736344630651393637572175719892816137464977691005374089634722353707641555254330590835509422108388800481814124127250436240201805792492679553937943236304708807803832170737965419642598381992149078995790549422684216546257332073164761827862379671640276537451559282318745063709060789988344123278940240110161587702165748868043418984229693967040207364493137937703683765253182392722676913832600798853799339253828631933317219485189305009082686623506463173428182155095794650414180098582079007529537751371113878342928550842424821354769924295590212136192513153884501622478452565126036796605847387852537897189629998074486120350744246304727016459663542366494785240724469990925398171104328563383892544608303262026263138399859397003917096264418477132214932686367713317136708799947356469719033396935725968373789803364937032373883857936522938177663442523900624706923846378057762032285345502081903975498880853513441104979124395628740700718612809423092471859539849640655664382945300683472847740690769440248469003498760659930673018731909578975661830125777980568928411915620347702198141414288570214838635796439116097572627087587658249038831287344214868601898133118307465053038909556059337364740961246477874103219844343137938059032164171262998855865320894888187233502982102189127446096399173405515615962243719693005900417071268765006380607828941075376848950935248407357827586205000469941966302368354777718677998122506095449106374533949895969259980119411759420369970515953529231912762804073824116633606844709376493647971370093051957053737003762585261615198208746372946531229930408482219947184202824501601416704888276902827092802458667859766265310300604572260611648952897529607689550506838754250767012573473330941625079739036447467022696435765490307219203397778082797499507262061507948408984766908880584062908356095879106889910328784348854615650199175131669370810700145912961921380853176532915888558610554549563494685168162996604384410747455608472291622640081247053058656071841039050942617235955617853680660948176996455728265282143551650344506597879555873244061148602887622940208749435239083058865707295362624878249798827991342934659059940669715331243839093941302672908824303580715436932657061728696787889833181355224835228123632910729682669041559018245607026323048243881168020715100016311537865332973098179887183532553969351100325741448616339441727717829692975251532553517232442026073879342966590762278799455919978156987298102944131237154008943556331282754738292932282331193236385753182701421654627951579189093666415819062145380608657301966572209103649573254011089875759151381112565661795054964721917256705361295450902062400474076159314887315336554498678296914901927755626468043252433599547705004661107013567969005764459727604662682931823584070023885203438795880221241574560540429528505702901936868463495209266427307089335687575900216705250896774447334513265106150932766054723982549899254726667114460476132263779071291585356046994697444509348096919689619350062693391018016372232427123343593284332762160392187110206141596617870274511072268144307273228003180681050022676502635823598999013689304731694304516372523113211870143254841586726448735040336112307339741755838421700990989702490721249657859533837720910793291504966598070644250689000405445376977775462602931309757066100242947335693300037022488037716266103862808100071836441607631100751392251938937006371585375044674161978527338286089324893871560569701682184095304588493517990256446386523421842897644849807976747318555594828716335857268777384758136685425992928445920602954856323265993034012741650472246813846803644204225363488629375664939703254473063471821855874543573044906880035447180195696888894558089232436437735148938102438973893512384039850274584034292516037486526561446082128901447819679545933938443726312958455958677152126074285635363893238248324599107487170924193759372154867227579729392514474837981612784961664747500548311241232113085816323999726381269390570050108174000211038244097846286774747230536377798511447781468941246516994161963204730730747458389325349433219958064838633959145082573162541374700003852508221554939462664997486684602545703668030916174743560255022275295073698431647102422989493559874578244741508935548010590333651174830657405074883120385206854548445376632448528331874849663640511652888231012254496785602411265961626237678382456208705371687750529292907500231804236823553771018748162750583905178913956763133572710354069913023209173237595342653486424357679647878624120250513000931234380613059584243682752576079381379580697823822711128263282389733813681051980337968979337882084451815381484806075353022146739632358210110160280044766627420466278205323723523095630241785553041723710404248487473355165115277888503143935640417205620867189339638882795134770699009832311220116425878449189313633439862511019435488689448750754078871703426410322505769200190772615522505634564220021034097649472303481954655341635112570004894517034216441191905569133638737501599929655649345373220679330813235528065139923550084877536946572607687457422752353630609855394879839380634588687913297136388376711519150085223793734174157619046000495163935538960079072758913446017445030795366338583610602945638757198305525063302664756044982405931032657353119514185804946580245280528818654846395116907958201176824902007924272811564732813944791381324943291933489384580170209920885656905528010285724545309168933955417566536478556664437939929011716431625238420827955396257465388842064636529953386827028663372818198401914023636827001940526112809008680862205021407613899575957530911847242780919265431751510524144801741554590985715456239831001316795106066139880379336794330264627842281785103411578979965633921997192836453068206322179780519455523623868428592369962278881145694146757975604432056789033240420878476447939569169916093663377566442772294198230034473627494940823782872477351927322850478102593450911170473266447694769801951195358498874242219736126595697190766557568793299773852333956564211679372439543509222992704053554125608473608126433151638385919432597679535187125521018476516017922019915091555627418632763362908706821662089318592494255834589428393893271964368888479734377300933694924596713249584426414689353169159999185761547668035108880763075278213686377417403220872437953816069505325876395765595248208124062044824717851259692616331645341278568388855733921190005072557903383131743341874028651134166460604354403179159706421400035355583614175710501693667576007066521934191019679599778870137431079293791784575101655096445042068998704538826169486402290354959483855298741329583781734448059185819580463912807312938685595076218609125953670029898459594193645853549219113396099009760005551091633681441246095925037595128212713565863606307524659470871730183339554668667050260233822916061387328528581047111658270445104440147413366224107923240887833560947813211160912834134787162776941860236941361643865844320410949255377966454978157814213941907155739520166755926744754748410492798610949529169911229740529591185821140940827842899487191185796792409966434391133453301963119673486482183075374329489704564734065678195006245041496199809325248941197727144107770014323083469795268596798853135403824395707155980062508555720042780670771250810612736412088986922386618649936991407839415254172108638591934808924214739730294900429461523047766448248232798804560295854277980014962554059080262631854497355484079497092282745439653031113312692460630567480541871003177034376324696866326145837172821065914937230088500250426701226219172809740753385974133750012834238319076843202886485232258661748160288834804988796888706522417532862499707055502788749139613661654292977006795746884848811714738400779977975083406443638725392011058189963103594728038668373623000311961880784834710141272521917999631946783418198227793630525545699911889648424457809329333291843044611633303845208066966875676106909141785307729640325432410494170628979425721397004278495866904274455468475140205462368289905780990471843193041459644877648980085973651342336047489055913030907864662519117438812363071511692010739843107917353501258676625054167737385007885592960707151176130581871929782555774627240667827824878180004701362988789605974974528454862734339937582900105960423440797528017244504809196866990508096496645982086213536680641950115558716888737567677268612324616273271738323813423896785899994182825274233607482154303356175059808424341738802386440766474780001259036001041305134780561679005898448948647712613963696097636246234730011234357557150760300179567975599518367655420640499205737164378286140980842503916281008125016849554319882096029487310051021842883045366181932465791904781423085216271142997680597809936483979290323707905202828134979793530798884959731062264064475900290202145546694712694019279789588615691700313653168362957425746866255231073506499144656937111636870964382282657634607049681875638947788104526558488597806888181751739292433024220712250215024645959651640012008960097289251003214422870401716312020547210009771496201399172947038881523790616484241134009265444331073509205514508571388215626792375636881805086648134479553576505093865023691501844899715500630280742587882156756863086325910860433508155056613763360875450069211147704403601711740227794688364403791284705001301256618340118187314779791474767018277877226062310416377004292288979958183052953569882470822367115784902299536174053403474258827837883881602633970106031868030948309657926203499810967941616012291478580069428342302940212126206256964082706869580834984165171886512773272000026343339359064345078904339230365807231747887657566757095057433364396871179003441477314553497990233701385766261520125647079442626109513144708800746130705050613030775388688233860534876698386782024616497684331848436604584643147035913864493719852404222778248175331317535976000496648272398244326973907332224580542969881061945921393352582605191319400574991103586803009335870126258134799520362626709927130388906788965809611931695401799206506732547873803098891566843902067263104029505861845952593978826878133505289003392679932381407673073053229922635090684426510831252306498087295626220381178752987382282581115209198953390146807660422917577381853780011064877386518272528519232301669749353078988719693879392950672730540740251120553183689563489567873396804605675396770833865945848647454739875327149396070800518807627583192526005179538368354253516466039438996655091789534711003842962195812994897021624347765667784940204628152058207037879865408042657906463111940421614853905851054028394372395634345287917005760858066509140648854292360763899292828097806145506547427712722521747882491736266460522907334245432790020018390868775391557112519969360873704403965943912479803692628808787700985126838757847108431547890535904607275731795230177633837738857463140819544988275037890101954329794797647249822075504502346444134489023191681724261131511031267485236439278669885689739921207767081311784273722316135284090010192317096960395829595765913502050429279424065756437456273650896847893295116276657818521308075377145786226145529655054902605551012774899751477487981254364211310535640485132399225812327036441368441235712560251690434936226933479887630632714450511748920126475383757052884516795547480564296059533368545245915913141227203605419760497314975181588529196777171701993928711556176410372839158601434681312018772359483022053545485198428211751526768254936303914109164089914012201242693656019780275565257673037174503922954866936409831856248816464527387282053054083037791137359476062701527818437646810440645428067955386697649392533811377445163360142736748724838726991049464762965627732683121340518927112591300174357181882582235979252946608662759450364220266838659257793895144722786231726737993469072923255346931910905039328623576375201745392282607694293763923380546149694632912709370267512807595593976657633231934129611640632849347551428587865124772660266764381294069554236002536589669480439094821109967552306313766915751897398785199708337942968474356621223518846259432047374625030122907722713493934912853506698935367208439082896203147110598293199731824297617895145546101318826951492314898144535480006610163461516788136450919610002663880367919863092783944322761182133159704304292327482685474908051445159482118917676628401227490561540294287521468447966298191976435012716532385895057163376691800783644667306361270838291883641562503598448827305151411700573311204450882120968640618458193938114528972911372209741164521473172866456338201682926492782256829393929587986370104921515245100244885368982119650926875689611050335397324161761866481790681240764178695598409444113161108844577683116757373316834030386702234509373444051521047677978006085371503910281479983866951632970329228209718111648583994819210557522884296628737099514350085644818037947928647332055159646644191627527091959955339058925608058442937345961427338287212532596612178748869616598577447263702928369097801571805614041176081698471013251787168541834321731263387665049383506553310920243630786664262833595550830370333159424113549414506740893965669858583445727117744338189770188077982000010082258230898758263236163749664750027970382324705017343661831724303891836614739976888246667849208243994533539181751407205909764009927202858760879366816207482567277594059049751859162772312388588778297079297109860580238406329797533128982559878857640879144567828982884742342509217898641537137112116338338966936922354445220852309149631039379289615332252469376503672964810665820202954491180795829061776442774867887722823181354984942464441216876211238283440558203694473638659835823567631201009187422824750542202041640362506249395035465887570941948151262331564198034016406870986072361613632600997834298078460357282232645587702439550474894667856855159645614829951682423710510747048219384432389034230294069710348844488791404720157088710369643989179815202933277673030165059926458270019500988412034732337173953770651723320649795936828635993916882964623645636752705753676131714750129276675344401510591827979627433352564726692349833057550644474099283013515646437458675997928598279239024932492806819696767818083392750388777983050587039706930331596177224188769122924324880907383423173232573513713834657583400777559864042469011116726965594280149899589722169513511415034566525810165772330090020549698210123528328385690465239296727414401792210766349989545781504590489713512212742306688169695253297107377228097079685378842620106423509940385001883915705960417275991267724299570333787433907727670864443199291519380546445884018660922456316758283501799701428268838131629818871009883916865463876231559437967514316242620381790371721755251271101808120046366350499509244490531926773389681985520917356128503503634856354409692577755531008529136013041589427586526338409090207344049803753164127017216189131908559025187832067738594014245772119317193922807204697859456765154998939883823929045086184747621446183381712982203970445339553239405187897610156027103602316966336957482366887517120302667716755390539318667630746162950130921210734752992720247407940375289833135838779652317802880847122751405060345560809166271173552014251888950288660786559848534730431453272996907476509971649354130124999801950123367536548318071866690281268059454911144367537001889664737940081126184860207366050148655660694035654686147346927564745582517906874415894295102280430455521943563138246880855066310425947509584213222922452084386070055013456068884809223779982101523468396151661441039849723609468121923843553181479333031760963465914361505561294607473744744718936254767899202694421090751100927973106581230467493237474568188387939445426854510029796479061425924270595073281970605691074179327618693567398738550045906671327652603828209213387503481482677811813806337670553000927847701610402088395781666023964950548349033248991483706142652575930516033489547698015269907858658813621209668384934878798998766691466234745654910476668121648813665863762153708079895365213962603937457521687434197989006116122188641759531941127196364658698070772763473743556135354920585485416485124389030238021637224778260721292641152126613686935282067722079635679122447226641621170437776383991893950711573759132266525758938094613232506184782722645632742743031614025258202483986824254896370461758867059924952743259318270717468821402400619573898544472892095330253766256778673201227527454838569508857625023668571811186040944851797915026240269589071799476394253317891855289843330360045251561121614517512330272133521948499293657941989571357590728288398572029806255930459217111057025243865914009245493572868777852692656444608604645987085724161113198720837387999863850769654752118606881826126050334277992389854163209057913021908341150865066355129836714689311648994763076667574618626925433465778901599449171764950202825697649803228554193036004358693012299432730901391136658353629087172700734221824164196575775920759349921442066724204378988049481073888313091824089667021097279875695471347789232747246448747165178136545021365443096028623072268562638410204797195582589203384745910151307486434738410071393284040282913142320615772890908069940805927018885211260409697175494658116907962197631674765944645878793487111150645672621484238106674880392203904319316655488275125343226618310091752877828292109733019766186046811594296169179162982261747452084468980442791967003046917321560975820630603414718323331191931554111087272213715560704736729177034237603837800630449454872854462203102763885687312907629368870683359764058110486908265776492197004301427675622670586882179676136135228280194742282990052704378525896988300298352251073299047748528812187120697888829673385006460122097417450831758528888284809145152966867982112812953478718665258443598511592679548046297700176020425119588862579053409791816381046150647282371807640984023932778027330747043039187090524521744531742000403948349951174168821482042395682121379473247259789544160273605810844821834505839151309885411422757317086070415057197641230868253308322947008154409620741989585868968118478208985460427965591207382242471527348863200512461558544889406982493206349451635757917517160246409247902880815495314932846452829668334787355488621781481990133842618823398855037618790129301462918059639032147035789149573602470111752645689960487265545899737070881589747124209030745929839106427859833381265043181405402667542857317820690897991104763096171753768321301074113493756633608209433314449469041624105708489354600581217348192793220517454779895603861569470078142801913266388872305123565563254238963151520471559229567415762272836929075153504713725114788238413455801846389898215335344981243027318614727744973696666943984699092752954617027567041760654848946507769310102260084775294384985511695920270753249371041339677476082570035167209163009982555070839768958716567286132570466551116530467719419799690240386009244431922458910437016463140673809363822361307320373225803648905248272016941844534795982821016718010847686132525157722574624806644100346896713338685666546513743440909195015999892681762500075533110107970829383291926598322875607012042271011118938255360498513701793682237721689360904698828380855037658001951102608477935393985460036057050862341781568946674631037328502098782694123519831735322072526214603104615766164778291202892603037442189769133338450836557115689500777874014749702394004855782014603462674792688607827187827676158780516584841887464846142668612943471411909241611799293731921866308375422796438539444787501858286270516085578690234644574246944925988615124340146064317356828793261105550410496428022006048829594058607394620623160996147552439355211051889287234524727221001482454417661263934595924792105944470271090981020411863670187526116001105916004364950175299834469210351941171766505488693550580498147849623291788331432565944280203327229584589769105568781489462640227717687321310546534890644950845064360186163663345062571098917135862526396725738961644459955217903108989170956400206314840062313247793636166557863973712326572312789164523197096216833565996005716164396499249012560371086421546579242622583536225652680294032855539395004861284309559437025191980020955705592039726900977198955176462491734567196005732568035315571805079430606563368327820831168915239294949751219377086578429487294133740962665896549938690393130930492844059953869693066419523254656446597647388181267172448900858616836480588898829364671758260357368139742198102817861599991878006880071378369316004835966226173584668161247774454167448648418511512398860135977986857374181272483204451756913927566886622769717123607204255169967011912581203812296417869727258997011204734214167199212628997429768315508349476273083022007354798785642188107485438969240295385932036337938237694567657598215455253975903713825385213927945686168503730797050639964050850375281155526473989446841025817581518902691089534948042647993033894356879117321495194729031987485091099731726593480703669327906880696379367360473748305337275011592449690965266668954170235593826214273802189266902522296699214525586251789719747520481394051676008270025047732072991048232389813631155708490630838000235215492718764008298733141309601073086267201281861744928528409924362423710891228194286008909138277206315985137572941652832148891453223160586688539534702135737196867610162429111928594554193021523998277722078128318236646624210920669506864529758474574946761661599635291751715900240968588134367057232750780458193676519112974397376393568736325236574859849048950472472389865749980804746050130168366786206904087101284215325543939477819315550230372459025764084949532576059625264893807630194636602625915329175093474013165733431519425033229667497071149778634201215228338879118060970935919906546796418368326981833731573909181188833410080449149535067188836771001313710180946501304191298025365547265926083011669680246702792207229861730529279858586516601028603103936721582532935201342851195968071898736875082200239889912678272505420395051994600910824036034119275479362949122579729623372641744591327958334663848831915794368984166138081695345103559497168322130019228665879748662408111876117245928391824874917595829110629868502103857884883112249128709533817457820301282771680572853925171377192394442200240913959117819847818391750376737975411611993446965347112527395468208611864453107606911509401031699782297388384256564220139422734656024685031052090779148126153439037002851707568649731066869073004189261904942684107542530694804925790824682444566161554190803611912611852534318990905670265186894929816564528749063165838371207590244319876848574812822615071897622893292240891087586578454497712533253615131541511462651650746105139333850513548189756706625675810999716546607375815950097300964048567568371801403203812200117343638839425527346592531293033146333368891186751902728085966757354989008616755425943430235868180078158097063540583070577328371070648862305513637630448400146597430001934761757331330421204425315972166037436793467322405403814364484666574829273171643930736951332680285308783770823342289686153852029584218378056222433713087703467218071376317199101080207204440480172854067787120993141330696348608937381424520897613163056446866394010376033701962084468407829212182061776251960907778861727460858835431406604465344848136023723553911586250841742138536046813497456234404404181039010551158598259487315977725575192470471210141042636276901115478067535180010259396731023858741597149057424492496208666979015986968279906664616128730880164684787449604051503197125344606614770913622692653213002846420197076569443246225554656594671194460019553381563485982255767039638551533875387413754327249339167029848433897557078742876689298306896594807308364949356132474890133848470816793378417780943645448417632323806777759214398448268392923754381258278535040415530264717676608330742780304897955148491999539587161455382353289460092769109748365642019847861509565005520289425892958251803530488823785175899112796747676786705201422410190627859725325359438118290485356931638418311303971788037277517726507282023173993353483665830453951751186651448041150619666021762677605817952368241640573579421040557977750706005071260578548034257851490260883029019725872686824693684548468146304623880461938760295170304584664265496024364752237162802507112348224520577757892798128258920838066156409581007146984683949640415450988691554736146111611925569209678610252333423618839108076159782841849463142804390200363578051067299748182022464310203797246606050490746102009682591049984414734562830694967515951966427911599151460731763513582873028418225739961180449466351969794812492418859584040671438552905544985499692299708719930669783966520928181607737940621573793972634490518606202787548827721853740594636604901528028653421985085272147884055641595014747627649312263438113277887208628763273707298853700070706595351942956230672647163499596597366406864941277261369851467793100727570163708879099414801522756645601901032942348868141900851293203039202232814245325859056502999377382469063416645749159813010378586343872575833536086489540766613307168524974428365300489759762154808658351034745477172517264395940768358325196866854526667043695238834582230701747651564178365178726592748093158971686773381332674736586250511117821917675157888134188050813356249498369214942140961069191377702453607680852641169622946066030377260055573018999745327121869697802130098332343583930054558852100839820963716742524905319410794611136932170708263688820473975993355081272642058555737385759176345370905201638921581659640440208173473478245848604258579871734360503431776643459209376663733883325369725577709876832641216279702256820102598229889863927289235885825403796220957137840572228361267314193072157449270777492995021865609058628165248803639402279760641638634380587755465610693236235223976992018890354359515556697238424209986398322630296259560165377867962616875640514275379537504327958662002220801753157016837760900110621354950631501489130936725848929031912363582791664179647723763298722984394474428459171896689653715901509434537395667057370028011366070328412010501299939934440936946054002404183927574014033536874784094110380961298044020712230443257262583676032008371865709264161456276337726318776771159328709394481315098995524892753587173269147160246029154128547743054560628650147552899621434425071400335398171254302832804752803630524168058669087197346404512829073630780670565511453097222621761318394586412012917757484135561007946536956125018223327456122773808683899722186548936578109546161075822258717781887256073335163599174589559269782599739901566870999276365480258119287836554480303907665440444650343681498079490091531187628554724669221701268337551459531148637149226495553968833722918186587159654866507275881092214862665388885681408224517401456298344769123319611194182421129214493314877250642207663250940397616605204730854405955917275288083932921346913861959112226901462628516905784268437800673684291231388629979990216971485996294710045198786264758976046122133318805629747431002863232006930359655248082406770064921818900909274023120601112907493203364037013337603596447174271228023561918063114723401620108187579367690770485439584348525194798739665160683726978962069625094127844942705996551098436676492156101712603032264682143547336648819788499278613170545147951979574457875251563962813436705603892215843670436349542753439677943332301382058219371733382652593379952077063566096364519126866916693563502979174532712931510557147239274049433186222100261470450852376776933565939878936790421316014203187021313097315801224952653458524554157162465865913794524128486607096631382214645137548156214534512455381729907346942186466002319753973569558262203204815028893201801930282882646072366775655034464311390393873555544767391358270069750829531376603562241990209219311637755231871931312852655177962711933079959134292322918564959426815575617373526662995199911934291928724878836283919283718209031610681639849492600964444475478805583101911448421182490758644829230990243197010752992708976851580395117793495349431136158804750596060594832434421251442573691659810741265762569622003370525146492637730350118596073795499934954996202447086245323925909430221923124600053675856511256792979113647184056468197553130395987271603916748251953239370257234204916577744227899236900609835954966186323598055734761938786747152968082741132170522483922713163292026220803233760201188839295876427357974196396964814222819055734505325446778634089655664883297379175689249592534499738442612011406986198493024843634147325208491909814460290342058996776578052467123083349889034382374097683661581656762097368773120543690376317449547153677716992889975821037116182316073616986608718350686334353307086421801818567221337079642750947021665241240874642475168755598309755523591209334056314272573586865448305125959691142655823394329694824227741810090613374507680739760362646461599394922352826684473609691552281616425744635522657860374298897376119252209112157931696460482647745658972754577553122547408733677835306766377477664392950353702416676718789120960856373431628373074986062640608253924287384303484899501855355809413541465022558036559941855991555217155528074894835344651845258611181584036437432043504411639969710319677078057352675783135810987253252818407533077742897031844921490488674637165437029332932278673394384016977063306082199948920769945573751040863313714107420153656070792718182052605265225157811242144016278851371719451513968842119463001234892656193314030408150233135678391677041620713946188062635441040595612977352081606870604849966203770108616043347559925326816775784520335428078164194329546861185898773223992045475494856612772786579801958105283168430391598653323733144115014782770275757930191426508531746780308993263041359914881283041320782941079089967066533136809243447277195498318350100553778584386066571693128745429213676071529780829991527558930697435446965581026405342143942677487274236835996984923313315106367498200762394420753391274848274608362997490028521909038568385355918459099805124147342577032619121717617688794236492678711433975887562490493794693505939341750137433179294005347842148887217247799184250874511005863518326747513486853490297388958481287149171491064742171712606676307070402878490573801131755407886885979185823868346732822285548847666355842878997323679576312564146001509501978297816407193985065725090930396525103353299304792504314146269803592375583370589927502090448475179815889673937523412141444657370550032323528486450168863018419038699986802906775592376744074488476032628289034558352292085989052004588770122469617880379420274976606585473715690494398182892954018176079603324821732402988789028339332633858358770848661648484802101107018749846984721593343308694292202506830101711390595413782336329695673629681400600010176277946344327371915214070749360056167719213647344810737581527814400380700452379029224856563693095390848971682505151829063036758700975467876639001942183294500290234563645213992556155861385324472652704999934795849765014779540707033024746993247875488203571945016941377509416589897270323363486078085904248702801272796696687765521580474494481116726838631503548186366802485652066951819476427255058455152847509652180632858581554634963814315480449338903001155637499462181193117525127009389164459137128688025807088693673861560835089074647525852892985456556115857419854145586298209271330841527543509001600143519803088145481800185853015245478463390633067696206094287390220240315003418622707946517099392083823920148829859586461798721733357482775134661532473883796206188974646966789712915216020981073883993070467302927459576986768441967761430250748828246780990084613041098294449756240796615904344216793507888914447693568683510097148526843789681763000746806318456489825394584420040156155906739032276844794883401420736761292910861528613791250484404591112659176632121188259309247972062778232858170965453239132956433134305680064000308701234192545216207593684002893790779409358400973628543400648794283636120444325900838556891310761281376294824267973567112029172696368149145550946319740574856414695343078003547042717425166708088246427614941081158627401416188659771613546996643076830607723366754155379065107762256320049755852901647368478884954206869124318128554577785078046567040340939151104260489556722914689481820494118198921867910772807251513990340338479899239292655711223862164167946162920510014115723243027845506102833081339528023260117372266573758907380071536063715613401405542690747389186225713076634033401846203508191238577256588603950761575269318041818366672567884998282062993509322183982054167277322835205164022369625836243887147688339831520304949532103235320907124769165713066909110602426890454857106338768717742671546511619540899910295436308592292249493968716124370967933205747205960211329192611097056200259223903963236091526435152663296852244903334511377105043285803529480145461625638345495274000167084328807660123428298281941364922772785887099041848063093949569503560893686622347099543938667699846980082296390873534472000573307107623180535776327655380583331720154140763169293535915162484795788857377560264324030918349049330597418321793485541385889586321094357665960300242676539013376088020169371958495271581535949903692279625877002214493061526217835406234394252532869669830011310574798460032290857633489625992813874602208444456409843967289983851481353423138203071725257719831467842466175199347632308931028108070944661241820311562161840963045193637713508242089182954591825560997815838499694138079498130500933156993309668204571355878631410719586013255825687307511356744026923835013655200071415439618839117829002076062534451387257266612644890858864788049508634026215086757148273309573596398284275090740290530402756270728680034357465317961754160825227759061748467238123043269776599307758696781064009508120034603856464806274861745791155913556210134345308996051018664850863146384416446712617458430769773900847421892056928221249947790309162113470046438010107507737765448226544243392345844017816182023288198257369696372832199813229029684394109679755164877622233379341727523677384605941779678829653801660353129561202486596329989886056406907361439759643605870867100324699548578985810430713671564995683340311350751749805015128176038779568630392018901629875468690631607638462480360728620869939205191992512428939293473480921939293998167164539006117141555998095890044297390610717016946814580227791950827101597680579927525435518469023942301725660862883415517099880760494485294010926059236790180264760314424519333482146094746003130112747203948188472999936307241265239231113773969126314183424481578273836609132472801178372249696431379196819264792496165947769142081700182413790689458154486401340906468496550940592824670414495168846707694832578589421648765272715843051238724019133703442272887166888641848884501224893832416746055191641486112564543365162728357576245809183080162477220266323562391933547605862169346745570276044298495513121080185316171670095681412525768645792251744184927057415684218089952795725135818750852695632926313180044410895547537195777067187295278225485741997800366775951673664682989741004215601567023466437646146523245085618958267554321661748784861796141165398614809716724486541132577801235758942911899611985547433575460109360612293778046838630741423510876184878177088191483645070389285976128603340512144997145608301559653973673063884924457751262540243613912936420067237272703879147103357702317076485213350415381288457569710152649458894163688363189999632761409137371865376006577374368754247512132708809867514209897112771212995238608176327096925294644766328979123906017653189371498461349594305947123342731871800752292544872073549249029073220109301551221224885733545797866683104171567159350462641617776168300863169402475878525127086730694485428385244387114890789700851215769638481383636817866841945238010961883508066201587711187404562886932652201854561660849939088398597830153104764123815402755387558990142031600894298224610455862435765112570118209727224496184632020250024329822705860524535320179585051301423132955441351602556062676320054043274194423931480972767541218443220367168976901324996375379611774203501617672435699853533558699895554780587561268115384786231744185392816077194156824529423914414965369874304759640931355703349127078520642591181379714713287908959148356689368984990177157249015583987694702212133194474812797786735822564860676107818635767501398954483910100279921902472372580877066292611972559196746595203836017342633959919557483902442480045414855711637575004905719468326057767752699837427943342473431425455974574233790845871597958102208983320970164786901596250779850849423061335882729344391301306051404541244408438405330862718541388305719343375168100411029770507603222369088361152299117676604346843711323144983307014822704974631356895336878622044804117688840289759923284596424406797393938605305683743216468495200653317342667851830971181381492480160708639189562601589784089696171052197266127554182269150043905339282429955596167920049205517807733978067362702361946952950396023876847302967240203136533696580686622872645179213613302588059114240629715524308168944026741157051275589685394555663752255729520429423790884066057600857547048151130673565145804291085680742613442051390383190099272164087933383813453319129475382959644371975364319806459667311687268483486021048030795704631750174019321765726798280094860163416372035297764775808809653672337941698729965044765691087238487975625903847152920569593471743412966457132440936410418028073404374756041058146897524116657413920498727258105100944968143865122214596368868980932565287004235156053472915134609524214403058653877340147365479140589940464671269262550450352850089079737622877942598948509118466372589644192814663246396043961396284623546075610836736097879734083352090288388756045581818692540047359120699200620356533179827307786539825533807180768281351979158203292092829823318446374068932010223928180125615121356821390658009509304410721565497493715175269805790154568179315504921925210491706228715779250617925007475652828608812603966065699826890529058274744899577842620515071929134801646360362633136440145852121562882349840647436091173729476631143600085741502780274471538282803015254358921391513662377034148591052606842028912166393984954607551712666967977331732489044933159381820046029309160900162795840702841438589881537547010511162070880246035248243897538732869489508628278027254157380250186601436430618841374800144143747356889144525938801917448660807516235513237528324534949868127224226308535596078611515834836064842103682203788883684946415780210022981366174983404326078999382349541228557575615103581757145479943928755561694036312352075326104941369137064283305757292019226261812200637252651695248755433225889246047355684820792895794400637441769159393279499937013135654610395455275941432737707819180714217853745383886044961379175884033639937138592298806618981867045318046542250749164664291862476184247777509155893315898143880130990212854922582091512138759425172062198219113080448828635217830018206475948724064381709625575703731879925353945473691361684033496507263974349685546842072448573551853259548762405424028964409215744430592375961217948121077278057936448068647531312056763293979403124770696249138328274914142043615784797498790824498307085616864223340838771888946548781807594551649896902190000718720890262739429866436907404553006147494213401649356563488777213885678824541013279628266275738328600231589342843622385613978198274427852673699221555804222282300320757843835039547668359792816982426540924271277844349349246580225186423509424935322793160284826413068299199281068916211530147590692367045643393868080443862988392248883259195518919400402057666467185875771822466946089592114751879164447572290164069468410124150484312699589282323902416207391183740492343027413952367266933149870779010313656699629466736094817178608799496278136358083948625861975157416905273081934298562418642690032771601320403610466273829954420025435172248660412571156475592445588108972175858226263458271539708230769883092389397520619534771619153696225366445871609363720797513937716392767604327885700753434174879469310331589624891849281503402166804623846074820553955871283433417887396330855992513837353349235237248144289345803330856397049523371839708131665636378006669999994145136606544162529393344486429925615567777468605386701473591889349276692003286467867112028910074381138520962633564661636507034990839190543103220715990699206605356988802802414678516172259760794385670224883760275811051727383611323182167759691925731322143207089911203934621313827444013377233488101033219040869648445575399125352334777474853244453438022392846793189321206046591383433067729176743577757096877163146210890783046673671095621840512057586483691569048745076717304760652444825528340172891815015555346430710116173108663201371815234899766707604531606417927137153993598103175004949533061598168583147662816797943764346941191999048874566173139222490632506508494380189282182340455892610860169681846021100673448902337597883976075571086558813910494662670543194565072868791518917005048345911778928903993680599321367970612400979757191322996958806479372155124928192979648539475405666895792124517688548052235952825697955838672099075229059400154403282728953005660268916946558266686473751694102416620264801605114077134118531238041062377744494841423958481439429754224543215626636792644275813250140182372988387717045176496079583934111442047027160981068452788888017496776057587627526623318548969425864252247597046895688148346634996866089161399123940473963086453967258020093527505792544827175236186398958445591825143175868299604310087558593636123148692429300417504666103675373553112494543747408978532194228781456586461218209525228087277000979518002956306993564103074009702279103195358041278535277791725277846067411970206238557034032240248371330941446914512582711238646333268245362914082138763098463465460847214053471256646545122128887557279951650831125150772868604958555920485376226535757112424936475970028905385407056435688419290644514940701582125027519557445587382600407795305099802078114390832371974195258494427551232801267222941413408413659868959841514230372307107572391953945024103709249583764758289235536348996299768189660680232401049025797533753248369897981545186636840077901354571383250330875502635284316454315320830008839966193062358810900273196332323303121923609903251390776597877939562863163613406843013152899723011578130074685656216302285339159071868470008973374175636791866035354248141537390418866000405766968978679405433870024675444855629461112150068990595292100810792865761390518646219945602071812049219055955144201689146977251848988108934212768338241419641652979168995044873991235788911436690627488032843528767839966760364888397640044306066626719974740767492866974363724491759837676715956391991532334009785785068193416469967543645021775918046476202669185540809778882539879530186395492205690116243353403647135720047780087477593280895701533907691207624244292428199858457713271583932433338804747891532729487583662624685950543240570377370665472785210544409939564581997577824164082849278204323712123776876094760223924697528425495722101100760565611634783609541605357296825179017820894647927895971580597559753779773367203033696816028550991439615783654774030441314520318648272737907631041419616077651846777953582041218703564317808436978411702470773302964633937858043733904989229811008193702989038951022102628352764722331124912407530558062062120045819177608510228190844529463275121250582249557016082356997774800356215616349187373314518680209983724608359982670962707136845558201372893205507619828150958734238446997952722959525926321353700904245429707148116932068960144444289006839137405062155396231088553224014103981510034045466611892205637639721797093061574977733273762907934255328669031472861817236781042479578378134148696436245456237591170519300307675383372759734011767509531798290779173856651863246500818244695308243850581810801542086982605230437227935407163066150166461859615961231193907484334233037611522557591022250296806938784303792601027518492906287698148646370283236788005681509959479490994070298963963641969138820305649362955127801888535956136401409528378344141170518953330030352462054925144413550674283552766546483194624173904362448951073894973374348272363941459384653367755679385724708168481405711845274119008133189957624332609977768672612835178178137367209688910981779979896663454229642893894305598100497692100049666341005392180787550834167736598381523365212020775898994107215043399200825919996639594089057909071431642111284328334945878082385615186200811219430523382929889471487107666716830083507445714290420831414602765671881676314696265605190742798123661861763244332791973375377763286330634748392165686856222493891702826428466265152276866180407415510980876332499533679631365561610408284373820351647861362114407566363746714045783923003652500330033722971859810084609797940065931012849702406941410938772586429323068133139006464938721384061995715141473880502239219489329050544875709485058408337804159689643233832131480325528871800341251864728586730185627922376823169948142036031772153376822009319058147230426393790928775314672411188517837478549844693710261354207789016961665163036157359780249580262130035464224337001837484552038898962387187297781315875877439541925458010322287353703711290124392578269216017188932272329215147809704729673784061366556354846526214218067375547173168968263886371667319725244615558343654986086520754902079217583715487718190531103876404184217175323514741101221308340652332817897342164363861101656726804377471135571555680118168301719061676887763352726396595396190808964644266965267773498693835756392276056373481851432339553748649944160104529085727315343511001516346415866571738657340892315020939448562285112246308657507797512402127720667878456283972635879711468980068161583973737473519950101408673438948655646718294965348898105505039386297386797222047560580787552254232451997709120271128567328232791437598212064112833570954184927317760836671010562743421437283978220000708347905893395052155043040299386997429777565094348997376543012735944599009031685311566639009097564658902290722957938627223107120610614501413157274248227333306604257002645674614544373395688363602099473124537267715811901652888861370323695276950369435555590695623506831703935572831090401090131026174910717501259364167902853315726914110977976620192562963034632688365597817725367117137123116241013550166896582432422990268298571136988988802250525523858035267746134350305289420239431998330427612138906763584327150891646642679650021333176187737778569489890071122698919817118546920501823639133821130011457214217936690739108652770246884854385498177554467658223095712744203337415867423855081619241953207757534475367616335422737152103011384392245506952054340834309658050143117816896165649084641844643622515973661739308016541430513421881021756856855552958063074318405546429184123474972156234542700179969598288616597302369699108838824592242291226178073141969908626689294658963819406020952319718514049132661297332656088913614020640001489344170708545519689390660374628264200450710660487960950519062338953732098575653240173167460635953613465506645889413302407270415332634281372281762799391191503764008082974776039482545979469733550770677153099263098657585085132071178056061089017143832523341690563515260293588031710912563121919474941133128052200048771665343224610566051455571348540807909207152236195484693676826607839612772651427824588274319611480291070505346879857869639771350929169723424529773990505959845177646914366595624801756924138430858909371880385283195454255031874254414136569754056596917931107677206088614327727889711656157025894821617402512877241627389952922481281397483723511807536167964697922255895172591121375587197892532206642914151362366588177090225589822332736124789899334722449880651075429595841791328100790125090768094264449054787378173967396908215683182859280648212680254096804771675598180586707483833440413967725870770182573087940654463783301749589444820865734858741158260098797342008270805980401147238547029502598949350465638700547932722447897414666252697502919067191641153409103638881553261340447336621216021603950831547446166662248501876258345015263066880802964942761493488891446809450942189844470902298898596436338694331800329659485457753596604468450425187826603180185545743887929856966432315265350987385274346967396972428984479533547682445143557180796010795213191795035865079946144344691543748192847932855387969985625037312242021225339370436743387870738622143493942898415155269571798624734071587930189942764674058965199943858337775118329740508897456771322340930755727806329491950564212430878503503665371138161690913832363623565851329409360205173275625916024239968281960859758727073693660544841928557903751458555749897385110951788059316107400112725163852545786486824308246941232857916979008286422222248894947892996877774647144740424396515454645435847344626744267441937950425622368056037005916008696279471994555198301897431094623565034634459496999090429771042161184447565149104451686078319507958600445609225030930757908627617453363123996490127594387908294212275872375240333982163353382985826391677469173391308705136359082175480094019039715713994376608808005973137662232655048822055936574172868336315665990126120002726597260096979792589368276356388025682989139863498556313566862317773110040578051389368072957606404411379482530982714785586376238409029856194424055623023945569228348501431741206510050973631888868835539538327412533685973722867298423707170735893866823257192100188154110740756931314122655722968042312415955657619544184109772150130971876158066847090849580619217020791861327076749865500512792841138760499568157824598811392440450844515652606379985429248671742438899231311105519574915657325823470485870481966708301852490544613202631867121579549126107492978794970072634335189786002860845934392387261755410206447573438467270119050964411621470263957877478019558325887594987810107792634929297128294718954999210025341189980502679824775120041222471840192683006625322581485212011624972430687098434554730668572424198928747652870325730386650563239504243141112175905347288128404082898694998179037184739345664124281174630498102967147829157235663285104281672332031884659411633226363109076378215441481067655972620259861402729854833649446562295632972174651527798803711622809634522936778396553684918734397927149636444968009333748566625124249393925491416847974713861283736454144320949122782697450226074436932728169211404584902349407176604281468606721129266881822400847198526715339730409120771640141960481360683880310700497886040846328766655150776038410638629301132261539263258941848219120188175553634390221304122848329324352460281918794215769164663190373629972860386083606457405474547093537436634255160789271247836340781531403141800985245560734438371307391630636310491501034046987800449202147531506380243533659404813856039994847263634963232070280525892115149851765657798505227874185928026914508524112035427539128553144471854893262447028772829493723069206153656462138431509910196731658399857730969493738940566050249477124442809660719683991053927409817858397790348984005575383557959274405941176734648872401237094987230295940842959494813636071451303028723311698604779941102725218533254965402380640302458090626810640847152688002237984749973672142937753957626558652145601963239213234353983211816979082857513885722007512935652732391999493523087456807646531660462162989029938276077010378064850340889217012781784357915486376950698767841686092256243860889016926151785049360740224987920953555464577052564682274671351661535732133791023461946974189686905574418997495840157697905204354813704532961278456089789107606999183009013132646412845365955770366309773995348600863520885514845184128785359483502706652056321708217364742605163391785873407878533216230766794966591112505254261922130009085217520631097544020033178333151158599700706238145614691799874532668526728641482344899324045064586666048659576326907548039886812077665802953296745579869875440128209899126540445165638536467624485995142572592911931249789452722069079304204069527869937086950401121164510200898941263846746170890101000098976417012991978916449607830017848501796351347084654048960116022095236049495933286082798623695838517758862285347717798024139881034950993290287815548284819723254800075074864112993190127029057043586163554700359931952728745326052946200480758719688102464758431803271448740078716635486922199630064566348299799570656082653707500152778634552249144373709911110141822748275125877067856603040108394015092550315865313557552293069820263726918776482078837103297122458666638600890952712635630438914786521792687824112627008028609627834166345978944743164560808578820339095389365825801052854846162692743595607284024521527339855490836696745548446008319164542080366752745756179681389107485476972520198205163168313986718887923670860849504440702454027867598700881146476423457421717277391392645161701371720212671343346524542466917211302966261866511113176521116855692726974380330748155058924851098851278322234045500004605904706449197277535620349994583707176072168927875996772278277291129033114822870555733616004299660933486897410968377061948774364242526479207532643214818537704519679496230852664927860896007736199574099305537933763782923180958021705235244280807860739260082011369569551250486389378917620584352856854309328693013979943713673919928224980684306568649737289011525038745605452767170529560126019061228158288610344016970859474753781525275285972314373595833329182792789280961891719580629387677825115882340194250947907852565971157458092797798027541357155704081775132163253766588064007792710027509462192478115035529910186273578647979396856311174942545657721225867292986411426321976732024535186602848616737506629056383378508669375049476466049981463872764681745930939763641028160406438341460472247945335024464351246354607365507745354623879576697519323176024511464078282172336931240108853738691423066689538162396742797736242260713776551123696221481578231363810144148937093525801853221436522820870843310827346534252843907517714093133442254224979449934714537515524789897204563760020975370907407476204026460354772977978748103834916138151940569205091368798887713565713563877717911590731499142936074411043287528912106588368608120288100849370370854632536823530878590177758425531642312625731148551352216831819541806032598815990752285906006871299753483187725184346842864316819934195627493871678128293881636559601192680658510540682516455412323395161269878958078254278114257864457979116124909639448562159655328575989210555182943055293661802918746483360162457026747288746105749391777551713461271370083457750462380590142964401730390367533657801281538263170278976724020452151768739961504202341772345360114623453969530198524279608575916840873257541082275810826809468336915412661540979477758874456154362930564343041479010343854927667550135811247107421873294308843434749938025066770967248272913289067395442897943984840627583988547561792075237375797753897864624426883676085984921603714901211665902204186803966711537044119499668374907689963116568840532293922749152029297735554778217928881632252418757654667188503268622552221991400449996462669386721387541883445377746326216622296930022482716404107401934951566529624317621369250249812306495723639433907791535175719133829014027652170272416763708710521199651094234628875076004756494476882164562197899669883024648294222825385946204987814361438927443726683938384379242962201773359507757542482612310073000048366709790765801019899235253435862215562628558777806436397008405751607678087079787765727340263944315579212718063928116126999264374203950359794738096992174816759049189381092873511028871717088094744070711799889063321103148010636050443172047497015057820274533537274276896770256653863553197911171434358251953617456958457722037366179829309396554257142933986315998560803773729705284687666535457134775040091812737283542607441018497582251032603056715633079927162168331885578156352765410413802022899424288312593242821646892989269821328292725903417898387144101548438646187285121704661928432135291665740198962312280241768255647945534910240364257563511575425630389330922512173028992082519694005842179312175521833094615564704734442109643287586376376322806084769904988130780259481875117005292745269153144246500830963079859105285006840771658283635291137088301581592679472762474728952510136920429053513737378956390492391256287913033937473184770085550286514758697418940685345749617457309726538346281083416137911293014012268791455813043726924606264502801951656753023884825415807127177784882700906716427402512917546590405892268339647293046280300876022436367034999044419998271046577394142433329757321726045834749821309540453011578744818566825556190801472345509913677220923503534475074285981677203325036905320699623980569690963381792692005792136346001838627362655828266503380116691779719407242874629646320027608428070952341111106783107163482657508039850340169151606815664453046709299636962733373889607802724391779434275421898438137463922787105939460807337044896579266111694757099068323368632523542739064962494509544185537969635659435682603776519206272695932371703613380025213613517663015512829646865468122265331877764319407916533796229519626411490206872367592924596220733418524084840733064126027011369543711221055755404296611996406724761615211598795615448193088883709917954265257048427328869646009615256987271877297261309777518923162296470963181489656080864750979616726168091568996584972070185507052498154821586006554010002746773608425329484925962142533348206416213796592272838214572399860631318551155473239563782759491889381767189038620802037195912467007115108493719556517714853764995336627523271753897257229733077550824743673327659334229109506090199201944880169097351340317982407461080716737876605293209588988093828201534584145814177363748100995838388290310892583613191683304412227610608442928586667344919122487076802210036280859614487496264718377221479217271623069200427563695014092292185305367988084911016308492615252930184125666910957711607981233333413181363064297845261246836706534022603862654873754923800704124117492412565859722262916502975731604111871158210770163575132670395771957044641415678954601389663899668090359066196974285658574773367260725875545393473885157052562629808057117838017540758231343642415851048851109382140166963931285834222069120150793766895115016183629804854720286084804046820203805120682832984417829749783605309006853229152424168084339494436812332068931256060918670004641112398923301120392049037908495857865089508143333176549816940647253638202394232559520416741641901960239977152308629154538523686666377546715508761696796125537166478569403972768293952032513982579191316655562200573351101266888444961072301124155420457917442920808114641786079129384685551791074960611530679789348198504875648410281145379488867133876824367589741094380032476088315413702791365818718425912091287488859797031932440477457413087734300906163272390792247039641984782500785204481390417270517440557048896866973418181415458806732261891322705042282616461636914137677915792694755973292205727751597960274405450925932111994946617157355368428544235764334607264427226960066638892506991843540738570840593167028144575730223241236629505645750115391526060738837958532733639268852100244588811874632495176904586103249092554478661573068992400549856616849263266624297080109637329466429395966710793428130505767943449393552162845878064151321604304131191262588821372291514329767693240793614790281169762555596800908468787251810019682821011292307933827445517599190442398645419745555684111420394489951520623976982204900663819784455666350471206513068268638697145804030029291448817292403078836993953247672760099363083640865283641580128981390142615191220885308970824382469446060443710551798851680735002761396506503920049382010671065281893714696193573086126743130267422816784709262239121952713120283978925320545415106352077625518822539073575090817490617576463784351860648982031087775427097693307492810673350668150363407396066240925671336551444142325304964675056903974370982761537391071468971549433740203695697682420677759513212801771778147474580455579047583550032257594262801041887834423675060394916290293051900385594158784311210250713453612160512678779050831267173430144843396746113442910250928930185880189852939074637028493345714013131809750738897464523112204910934321108766367192725998528725464563883760635891467617024248996655439641150757541353361718221068352019459504226360188974294635235529966248801813008231584646229348459994692716060320033915659495066700704529557039118641106030835786677251864152309102436019453769187940000069442260123881104385431168896686350364887951950145698929995448984496177576278401027574896367182213598439168392532777317995802995335323588294665242544948110415870196431019114300289793618529034110749109886153412658802516430762846996104197202583012444292421806192507720915698125265906412700836703692165030637003036827832805648898663605576855341851965530794392661204200645222287784113829092680947795668547153442404916583275645923739395963751032077695527551226881560321614275352356762843586490175087948513399131147553479100757975529019270257138275336243399102856732222435706637665774457901731417339061504858546390494351337358306881214193965435418440640791485480403658568831958587243645316344801304845056259123643555853037045750061043232578171077136809951964935342381213571533203871583997990866574412321312068021606282135406064758267658533415632272909722186681645222406090087455804793096557419205983226501197148209540447606042196169958046279417265270694338833218736638647012785788307543374266740756125212910223349353278586205821331892633506066629293415000235880065127446538095988971965911327621255311769985881319313872688411682914652325233364222636828774532151698323593672903922855854068045779671893855190374736572540265556598418107787439397595180084055933016270243680592846425116715772315709272380619045078272131463528064745196020728446693474992834605752734344735032496899243612830760634700705699951636914844633582809810075732667251712204186295283299176465069160806737660724572818423745879510016483792337090301697868518747497509988170742963271998131610351393813009931405249229624521286287803593097151039000729624552939074076474182954099239226595957840899880174746302006083197995810326112207607049411699030413174684164111469473890952040322256420126090154695171374353217435094408993424698357044828778173674606424165934353149466182561897716954573185169279344914730043897822616508696972084935286590785377011721141816624197024749101716120827415527146514293981503273505276977081143813672254290046736425248509895520592990491947367141486810283910053471128292157532969564208322425146799744622625205721340467821159913336249159215784979500469113625785462952925783985615589807858051914095180905269745984224057280110146341451749524753626867332989460421665692263287458396956385329815383820672008522460833024278165880961706480237468603422495169039715117135740743002394004127518007113685576813801090823874252471088742066335546041174665925222374625340721594805293790363038599252033675909264822901180858611855723166707750099463056825292567615783320249957684249287015698576172951418999223079382946616578611614404119511297231731334479507024666367903920900085189269463196292032643222575103737238161604485256779637637462026400605382344472253744756203409738245632686332928112245244617297415112484849148398837934448681625531731770886075165932404454443055080290152533157556959581164887833055645256415144796956952692666503101709728583024540470760663987233786731938583625849218885328139477223165883293162421837532648211112179553737978619880331809658682125524998759739673916398041180596559168907639909693063776620750471928356271246786859586070978670987521695870611729792580827403413481095479259651828164789589193502747133649248628448391930671398955818644539574730231016964589338603851745231005308663360924563042187163771906286882054203355375050050714222865329254067913257578810040000548049004333742005089148166280339155163794303329633562687113362707546114948481106878151546210551803315877150621668102458885463199878348361945988342988825250932272997810340988423322297981242211731580363288729369554813504880411965876667405814391889030236218306266749681746227138277596088324880344332591355477723794293315726069643341421005071574015496698398701757065255718330284301148729799122951231942124719488267162317854669285039666592036665158597873104795136386803523162938063894283738333041583733893198229033072747434347846493046492911259922588178243738665640955616110946877165725668472956868273550538514116351785308214291660274852842045395673039637060718917722135571518739516944516286820327094129460255684905375456348515324283806878158476530709419759189686572980009577492286081308255541767016577890474428079163831000071684730622092670859753562344891402636692508800390191756762621979328172886844395547649333984274637809864379977626562132995025910207953607746554989840535730287334874347871015614224546548814612780129630831176472303519954504941927248280269224342813383875466414930537563329428856704426165703246341209680909762457899286802423041323357795211399326734133398446923549255928989119231804969856200093547664490101815565992597417916808890024683344129267364350985069226059551886443138382377084747640416878517458964598755736692887065248736752765435305898399506776395675261284204066065383714278189562456121816865134074234565227400100596919139820607751905760136621537864990110345300982458466628909102920842760968126659843702034713455288431432717119525072246743249446520806503962350100711295605032274539307078183506524136605672017234856161921424986282671527159755502863626938694738925098810927351223853103954235230006483300250726739209154765275521381319093092960679875154275549666859221887213986075989029811195057122802655794011841801212586997874466465102073862791553899146835061177259748417191901217197216165858807732157052000826107117347925582609805168147852687870136804608501016707541294400898047861549670882952275222973700505722773051970987926980273563938816323638657153841582788398945239257998599603975611689968260989149156867860837280581268654306283836150163270640422569315936554892164849412532034214299794480895862549740984928262243463183464592613226273585374725666479727201779515779624152887357074914569486260002853111893706280704717285384686210935638794185034704822607266117131820515881450943006977988229376955668028232119799770649278894892479016512610882168802206391499112310919215001411746553075098308621158035676938993662393905730157266371938383196533457149403469499629399122904453525944638946087460034020646204057985090258649712866311675937754662235807616388812987203146823813694656007828974647540194877743423302526902468870804045532241680084436933016146887599975805309712088453341675376538933554858282116940874693880997493167515178436342467034065837137940205948406784109119667362211577878743796881989586815298027576985413823312854713646563931378087267263400227053112583651336927437312636849559290053361462108458637403039721889065006426319090660641185552863814063195463058485641694210114742661020540093898855330303596929770908414445309171552408354152863577297084588471619426902793061927695077972298566723946429902286999648980741584357436300055208479344562422251310892341124756505585765635769377225855898784357218970407863710575220520900993244440656712713063613935828716315349725245510002592350180503682853043551042316506588342374613193605742752815416269663418239855788639835612561041546149278032414290562503343336562888306012876642593082396793374869031727684784624115171075805760641984990833366027728539912705701799585017785675872088292229668680028633760419452738819936865981405862197471395836029511006632100520097278567958551146476476969992517133595557734072043029488279637597919236551625191991076815144938391135823669001041790498914423054631989355788319624742458167244575215230476725368433936770727392123808900127618796620349056383175374767642158009226349731681039551083286303905915129953668813193799049164185618799522019153669653439322399854985952265836039858343027104645626654781404544126544131461314469703963105385580820111167572829805710397561807486748109557831526807540955585156936546817110033367633318176467490468304014804733664836230629634110399273402829491240951680368456765156037263680410554814175762474528298071540721986168004667390405145769397429878944482392143062556666290966749938252308309888774150945312170297209835217109882853771855789527240951112375075161205484028734052639332539328476130244591747746528286806485443714197664198068402079788387268415892917523001397949304798077324812745729994757215292857355604524699891848879950017481128700593503680114214855812402445339726412205540412104370695334688049895093871497491929114740997126859252919778979589973266996607316558449205046637770215817276485825390235380628027801390014084662002959934317570546169055648619577560504814196332115420468955522743555985390447071900394942999800942655455939292227578535103394624739777805023396310267273920932709070588257442910713036419119749219854182562371595273708937780518243918167097966937771829995591505732450017134589944028071673796964289551848366813784475557023401547834361798858262274059567901958298792924402265145857893343740100811699680839627553019454705930230106914091221770972271936883301121457030072260675940585661729576440383163046476530685952584281211487870170577513411393907956375574765354106088620764246354488474520267853981178451489616478830800547019266165487629912568830786790570032258608236548922330044391397625932375598434824977836776394627042263681823583167345066129921937481227380986831973738480294963289050507599966209755054679538578594153662315070255956205162663941392644540679707317326426375112877541464874937311857909784154774442126023268414197157669933410817896480906239049056663637832480114590329690828994796756105535578290069821329921792390876902626456938543093705294056607949579006842023321568937054790832161562854626924013769601110622168333916197606477245580535289434137934048584279058709157768012730214549675246029142994114267063439191606357326407658376812446753949236098033387056391709984487390570839331052321232153156238072625279384405925228580490889760304286375910633271009651010058422895816981485600405459199737981725822771506451676181232580148126659815833225413234570318669227914044215536563053002601362168349263530897341273574839851389786530057081375702930472711301854613232950661375801507017582765793653665727858511066799461126632261210195666828080471174759046821877450304887950899188563112847530672684417445453150984619029744582000901427354833472039966964120960930553482044482674344720059422796905573451195368181124819626224495475734772579588370701912526108278636041456322805830649620114664765213890627467627247405385803599159265985220491872702803120126640331398396499607725791420844330907832765479085041911985609809421559259516991062859083819725917551623274182642575751039901691969410560821387283033326071468908120573122287752107577011689164427703116176974141423419406837909401726384602545339200665718227879343611791594147815457761668710322441278185023220003295787340973278464574752742129438925045236699464724617085686126778785685933820040345605538272217377784559219250633864160833221642753587064943041614836936125554671208103038439065951637834492590474061924679530212026414129287566424643128633745988047377192797142949560375348337083406402355624244319729003346723398033135659081298198358769944533085121977875476134420414767368524712005087757490155406242243507496883682851182684351065982465988788030592017701193883179560163659609842028919932492428841348269856759177374065588451870222601498252907604489365044835470306847937571117651075582871997020579515694397094340594327586439827055788025864542544774408218344879388807709790593481855508042747702380782520650809037361513436473098427475636556874843333136496935650166587546270576962287701908687989652969044135365731247941418045119053986791302680713213121471828946668057014664076484200108622514052480329133383346350415237618843234078487106285417670681414792145923104094792701659789257001530866570130439461224110278526531259375452181871410661659891470285426590721459017891779965645846863962821436487655593668228664418377697218677369684398178731297047708176864524804254839017412056027028360835624610608073530854603327272477980335872132334982064036675766939985664463652901071171351322424112887638816670856511939965983368644863775387643589139668433109293079731231147709758751100681393546988833272091634280279261650503984236192805158121585550488457425238594039828517225304829260779361848846227256843183264824353150270732130441667200115640341155829329878187110205083494952835627278777270076612621712767985755503269482968786492165820323189929769843507857839087916639042520661261735580475243047570868017271297309100580964126951295335805257916743060555606374296549980950911160872840789695709282489284557493062557588679987102446972588352051301042600869456470172861031184554605413353090072599231064370771098680429208308606991898743405306940774309150476325196611527775933669313760310463287114584754676187427830891882154501904917745813970106030930819278274537763072628216183632623773864736450363239415832657319009039662172510994652671943932610856281263009995118900490883428233928694936426683541173785337647041090249101334651949576304710126461813621620917803966799175468747857957836217057061258673061661421211303306412491666886134471606038121544195346833971201120915754658457501565911176854536478028227465612464405977931404488557558642968020894266807028522245890911587926688667613923063087026641125980226423714594368417708615580073740778688546659808323335690102135069426121843646347133393945932132383538331101707916684972019105898313661575022986976376400977283752407905849110682201234613800916185609485448012740353607494332096770113958692448031262052656198098249308294999137802456057881676525512003683093132547170210465489633533930149766088647968375782791854757402826003792102898404258838425558841482354832125018731996851558991056778449803277562370019455259277569815835730980623740391521447228784911537567649441882029753746491572746931023508862283898573496168442684905700918203735050868401750014801490596569257116433831419942084542205224306591710790292056080256489499531429654302850877204063404278612564990527407079197757677472019855933366437280566989500342103465114181662327268878264119949789025914002472543140976541314913654426759597768388510172181561701318784977084490750039691973304350720822755513266396161298312272944470885705191054128066070956733308582838361877986308171307629162881579819987199098875424791258807658577561523343018717093261250458264268063111457060252591065335253249467323051367130315886998205185860185045703483775411158056693026169003824537491946429132528383678349061718453898823965684986926031305968239102871895551047246747298675550461491131811030878003797846308467290838283959588340189836544612832573971842689599848741381708603380701318237686376297884228583447759946598545018236463523448958535796416291009519087724141825778334634421948145853548281901342106237719777494475209242975827901811615938659185008745018239446061816525113008932760491576796597072998393903364802495779119758429963058853750740977863272030885645777865370724592317874891524185078224187525354783535711904256775660074434149091871841512277299402282901118130414160303261502050725649530661408671239724503481455460736672166175177586017366510185488079866056565075791009185469759721283161536836814991866849532145634103488777079918996701795910854998027817134861602376658213373474408874412467708677983172376011419270225738345079599181884418196253563548668873849521340510536205031070477325712399327618245558702433240052672106439407872620656068886934237882103277034349349074092223335896533019405259250391824587700683508564745562905441258417502656434062671638134908765219960691727605057833908722732589557301708212756406884124193900320020456589050838286752747402383827059272522498499298550694620873335479738458589276253231037919089923258375944905691306543411053946698035370519774563559988665417689816456851314350810204150379505048478553077629344620386739321701732029673510470200168615173025299412859581452371723272485373560733373008678890268273420433429159633270412523716835600439792979182790770777627785957559885482914561212049048294621071440568214387039464547811192435184116736132615228907523324118835601737106804171034054657356082518435569425314973964415316414029232977006179375080872678316144672419883125645346060536592688707967447124692797116796584685103148937087695587685404607953934963522730947182983788752877990163138423540023079049369402401900882322329527349642772430451716260437080986902007093695214772408314417497431681581733263625102105510436576038801879818946691251048754729985982345113909123523542947784905154448380245339782055384480786918289289657947428966565783271887982406676052252051834371396714855201189073469154155085652322121720632901422928315013336884300977396592731237175304691732902311147503159860200263456012355043392269973734769633443444125503403753022152013950851072949665866677447150293673559367497149487679542628905837037033931469046622455636591283126663875621554686380622308065064513704981810542462084085982860617617943660119450545580051417673330268891994158888223739302432255097052459995756520493317615907348594503065967507989638225311692337148454494726584577055169937295955940342618051609530659836221677603260455013258068553366533175128406082738271289093274551300137512243547055966769979305664771860397004290647793020400514727583620048002423363322153249574033076393996298750987660894749224355175124785939904604102454929572370655954992255531443070851057296645806139341929492858404512234812276046201058302306571370442223882527537072733667522978663227309498999826810579462083429666892624293315666409714653138493070021432026115796143005753126715991686100822779570750571002289015782535408072075081292344337204619649566241671624420738421557727906070965975396728035410261892336208446467761923996395818766453135539561883786861709525304664168056235480990596225140509657652094566818159748859029314974600476650131616663298369698182699613635199974538012991589043776075868174140180205186634191229980642850293642037469503859924154174331322273449572025334438983080224696061362590142853563856612720938069901348811778287623077832952105653423943001222440996115291589173933290876830624427685642866544426117748705864385215570398825595846890730444924600546577661831905305928195827679523513028114651817488113246480132928701527129266423167294935926531392472497383743279332398857176687278831947068090262755587135387400486383539575901444004693860970861016718921138755621355097605369753028615749279573678492389082364791628222247054344999043548342369899578117298721908404276461591865011835521205021770059362456993416559329551922078904723572890412020157798262607722803431636186388013443040229144464696186204366315520051937162327479486487271349888821325385310911062821070171854938112388542593373930691808848336323691197844914995500301858689112969136860610652797786858273231640549137410546181852610734002744798221503400385400642728002188533405625509675844510155319932965150210065523184349022768441622409833276034926102826204785844554785785664556571665915669945318688827660099519835556793919399240828405365654718750418537069014407626154711068007188674513162068037174723698763604809040610083973708733602771891284088409295691794781863050606266939657688262987764160391339981894944715158759058551534119810443833637210343074135918158905251050302158366455658118133006111781251825808790757284655298052786553098227936835540539996528856907792482709596196543102734289031745812301637831724149863280392111264325076634443445695663680223246595930289778486394920316179981783342982249487125782495757868386695890213157782063876869378654595346372333473001169954336757589704545745078263644556611661066071283797677188246948633324268741120882347884684769420536932457200147730001800227859327127349506617977972171852762099977640140186361622932120448437493198984084737249981135812555133665482589638795121261311514130798450792028407480274224881468185436219276295029838021817193974943390171093216944219101791518703323376178983160944910164243593401260814695138584315460482462528883350962414844751625016995365345520528197948046713322148426671815326878484914890049011282542671343651449395510876017070327110107711501743657644265975682715554444156611467234078450086482578875690253848954186871980640007632715963036995671621017427330759404899808036841899669748309811822224021357695024062055141143567737838825162412492311704199636556775771954415900904384497408266019680511278811240809466968792092002793987178340566709996913180271263297933202433249837759493298689872974287489974093416099133180638046004114688885072465153232497424903940537792465873287046997046941374322981426017851882129671120333628240539030804388508496136917480981758557140379581541871250773447502145343330094629175074866511575537148696763138840137687023144372347907712850212532407742869561303820509359953560959269213705811219874335149921246956536738375685086218823262005092259874468735992018696173430517581015187236597035164887011361422771641933491715874804558564083782852120904361752611222629534203752709534533287782090152006101585196114535249725990782718639939870200899093818554186699710625343817147395234344800968551763850397523013557924890618228901919895135727814604002277821940363627057784721830662741624612455597675660984884935827771184890717554464121607258674564721141875476993568440094287560404967872267651571060712729903783184402697733954922012975444797922342218025437370870169123919173734169277678950908194894458503767507340879552680272921295649811419247647906498587236945959871073816272209610973877305455834503038869451519180044213448980906431554969411183124780336014616646701585023994279933924339011326646624925568497068747602090045705967218233097500606149220311731438668029787570133920862126979869051357851947653585194669589020094458479027811298098741117174433415797561455771610333803090133767402187399352085456262833119483573970926681341859121321466715289428308596489584721822971552088906208446642400180531280678798528893323741961460953286008167899227403661958410660773489454105080245910992954899417956719512808169333736610345945972003461329842052606822454023973730079299704569688673001730754985461026401201884933707775314177952302838203485735468767426983695453713829506563132609299974335645838097137848036898428691585714748416806921498388769514232389114439441262409884386424181060702403752066089728513801397044037640874059910245630462178744985924194344453740625140004449585373402985436969514845371722770227888375921153464555180068398058656803012235467182890903710654971155271895780873980450148012546476582630146337617116998594507362176690690451218702043987051519688151088382072176127137800590101375711792176034163226790687890985938268678428878601424030305483686053360652547497393898383773347573038060502328488741253635074122693508944119706537631193822298909917380601169212306361553151636818013549024380621840069608626112989988621092841425168413376914416812269261878437097371470872262785347466869891796421540775257765586493424525402544689706168447518139568064340393102099614136289169562782560996155277460232628283388241450255150303466964261656335758759274539934176591365208640388793331725175370311918214079555737391822759842613370035437367761656072025701754543460501910786989650423038803139047537937706478689372397543453412365693830669250397181681447336791794081759221945887648187142818837960823294825985895236937808849230678110504166921422314885829855529747253417397704445155101882091997219217630926702913170217630184597440666113927448400047627027684607541675212964143552354640339573925404957107895207310794845533727899030347461153965518139219885227640263967382202625901642602203769894359139201539674838365990005335722175026987145395015238726842895137422717676565663005189542795856237053988186958386358161494237172481273102007960753006144515544650917940105958295874203795032572532657602466000595246863527108204158275019259079399109324918107142206581578498599140881250578107812096299601259165715639835333470363489287912010206195520143739859010749513514964210585617191937557875880320333046660474384747127523757668929830292293682864811137669537717791186821671389756825514816003525250255380828878246190407759890243563586702727932655498348275491939184005866900919536943881089993987732733179774686795130474266528810292608129436940505160215812875313534803281195418638252447047540338778054035418697694888216824535280359441263523155658603660795592007772839171974400094559383676806902487386694623950876734155292823115094577180422124373566303143216851787527577941823716548817857203812934237074868015682682743824891719402119585074300883717563295276770999498744444848641263434287316124149690486124588623452464780218330889818158227340770538746433213573960604078409136947343907581437222856883550977594683631600329742639927708977664315327118625404192574990964928557953202991675773225465690587583656255647809363276106342747528378846103334363122001449324124996610878050877881009111056257450391095502490740607640350374127621500992552803682858207864882984712248739358641263098322578099464306614218544408162078266144784014398508163960117011778002787434235571822505981286845929665590354915741619567244306025866160368509821370594343391097090726991842966304641340118662071930928470473683929170982622568841467031843614401820393239685506793485482230249010994950480446410762980357344631950639698444843428736253371422994872409025777581852659902215285418562658499839333730970300311467264478500933916762693203687171094861556986123856503349585091667931912102241562273445599288835123470843039517034240228029048521115119167429332571212607519878694027550691762315594936419275734982059050389657356609301267568069180353844786989288394405728566068427695573556873008284838005606925309992421182053200078989120538178409362020616777586958654996975523881709708426087080779931259283495306231581984906794813442954552646904310617351742730587905619100016544143887884651554607959831385942264776312112245433740891290148325054485073573123337046170512552196569491077072645729878385716279394455256273383923209232493745619344709409395822727752318881533753813893140823508455784320472176316697382725312169978367693614295171599487574608493864334971127489349728321156382641214384043596546814857546273026818019664836040755936419066419260732711613978615640960093853277465009601330140587332712405559729186986331150633499880058627026065475624902348324410658310904477269982246027489829618284406104856478183792236516693186280665705087771182025996881525229894921477741861374544550864793098932131266633736632933344341557586952553614334941320010704335323681427944970670641035540497054064096601324756199565511809755812225137799608759056593286920096932398102401148498769918270520452735841620736287237924033074083031302426392341546108729884300636353564683769441461848428464717330132984214541345348209907149978691207658664228637262862204594953787443643608393570075205607681082414768193992072132384101042906280948499892052081805787252518076349661321880984735098766436271898553962507002085899287790435876233045926841874927704349492662871585374508535606221940581681767012625789651144931196487936231914466840414777991638994887279401914913658283856512850298796847912548374041762235003781561956489422498746731821830361514442494563006410892456025603725016091735262362933313007080404789942786024726719676113329654633864596345571922933447801373308481839386554601971494668275732582246715513464234450873836669021206100837749488681479088735633623448773583576125937984850058048512731759859822174956646765284781110147230778308730656297186181323326701107342552343406241255810352083659554324382268724808460755980808002737408192404903112044584350055657221645940435894926182205164586621487614540975778491366109468985797939795735169245476036340723710488472108811758658890620331769112070361911846119425453971587701160204547866420622986205009887635680664283112881461861788052326302277580483338692090127599095689683142533626271223085343551203572387357489155027451179281740182287589940314044461992716969586813459075494862780388538261283920046938320401403478890822261147806222958744387170406586250332664994773818135820466300936883391411446540611538186614901817850294092164431293631858674953030752196294567263888552989346359025471951941609025674245035911649383515518647330092544996209628284316463990713069810377694226155783933376205452435979343523889888956263174705772431216007871307642230117716345089529567572785502905916044037029136235101741425122829115531454262649303991713189879044062150153352967721375720235580647443226564476411238729972119262814599311084459982091023654795021472607848515569331425504749471299493733809215836726382893116153099139349247466883649847135496845036032211626994839830844908240718547154340505473628570458994445534899754423037124860977410556543403195148852058522476505505781768153274878143117756709089502525656881868120851044635983780074286082771758904442140844875004817840884519374347565282628536827284049674247033442410670589382208944165764729212310685108044274715585447082307342138422381834330698371457547056491457343426856755829034330322293479214738519363397971612119447854541052699344431724059861465889142818716464990427708698067205187554009686291788976959116823450213791931745228972759370332214917434901689198641957565494993820212241327474264166950996923149756728324900521868123434524153584620066213208240664161025682856079418674641506555159882022765706053203144030595101984178318374813381767668480179854748304863968392719095368126635559870724305386089411863534744298431675163137934793803026012917136288140732329501874761888585103179076847926515803045607862742044248677366812133530813223564301383114350501551807824431694061411717607383432803735373403177358714673553093076059134531602751159640754755986702879815211047390937921154755128493152717549043888555784294031787049318086672803458460540738550354821110677965236487237317968543148632677903256899946636323731960163135828362882151483780840291932241424411914839574762596737419401275653095183014205444404797336047692411961890002263684825605264057244449853822214177848966323544368334770926777657188936232028323488647707859869353088143232442809296247410782089355195665103103778196677952025351526275453860586626111192108829579210274821025506193761032988611256633487805902626084987817098883058869600687950624162416890888577407989937868890039539630056162047009676283589805234184246258181241634565786497143921671217096500205388571233482516933674933290878572915593489180066843996105990694279083852117500186355544289735199016765773049489990370269495133285884031108614021923933221155739379571100282755097564582838454284363610688881002875911126688276420123986503684025131665621160511855031339150769196027989748256468882386991341639638898606711648053980230131590361154883146126577598433875256727831558597859112742662075642306143021837113287200419870200368382859339798101635704241371116306611719848099696666134762329045766538833832748559616924226531099146851132797835277693743559993057907118987478737853676328726500351263593090999496302081997778510629880344234245836791609925115092899409935755164565428880165581234083813833749622336373677146541768473324355128468692341610407822347665248112542230125775906031442624313827866435354974158954784741759171860516245002279644684532451298228338787522448268159879316804045142252900776896515778492539516917558759774986256203161488788147806520009132263178462587677832537716780700950705909392442995636556758509270166483013136699470424331012972644101485919502102637996429021485732870367245631445289531596221006175620096295392200148092716674935866837719193696301493972011947111413558999672595934399891818166752854109259128846855814548023640256008874714251540493232083340901696600005852384224719967487893367546779132486043725700553506059597487706105508488649603569672343585944856268622689483476137763640697635278908715704202699869059297696638348363653075617105993825039714257468246991350467407409912706078930872674243146345017311843950722766227258386386349566439010157591508330677369632222213975133423477785161030204869158043150438268898300227652005676430426492447556888608404523022901912910862523784650069088255483427863356784893386667666022491802635960121660048411373169186087330461585871548625780378423003260891061675829152651833451107104661269418168644974929338878563727182054872665305264005008383640988453155987445909591471977720572937440511854562221786469697818946291235862104498467992336841130551041117862883475813936838190224021480247141602078984485109268160692627444449071667519659154366325517882949007646266807240867250686479698794090319364431167609516372642929762218584238067479910854890595704402789714263278947691855980169401960336764297454566699050412010928855355280681592381650846086583064197994349501442019422558424062645466894361351052383046206594706068810751685777187571479387743583785488540916773653548386405069110080856339209541621243256654448139697511294888957738056635114449286795691269562585863419601145904269771913267301007395065980498823096424239604188787518168553724860208533152801715356949556874040462920745895310100787973642470885840541038726145255234592066240271535840813331046272672520343692360386506891064251684603357566159313059842014852568706274286623276324885398631480580739231284976841384939212291437543055102764314758506229837293279558563443415919180021008634035480547946872319419736298857679000934015677160967959386398359881024886462346420688152872819338834222262381899386486606209095459569840761246709799867445754118837240517807445094923652395764699155460598657482409456542510676306215761311636323107651511041225970600306210300901043271495830821064487084972558625456147774935349311086096650995403382170819088944209206893675359421059260036102225198150475688026894051351313951228721830859309921329193849117178496536930202186395828221212536258806445788566853964758598101972351420452698768492597984318956913540409869961017189351988253415964210409194272990583467898960887322350221853930731494145293305505212120279143863669798150346802412970138825077058555288371527481130145698974936414598045430509220806234031403313885150901309580972315158792801073341895922536954446699745524355332029440043420305608635020476248181546684407593973035811726846678041913989844278360371278250599055172114200758683537656369255818459431564776061835347606582347875267980285875388449441694609699420967565467098469006143453065074022950930283453546191068983835859789962420056919211547996351910954359814905518398690571922983405368540944113827718645809694607168294083581585897731464720540896806699803692903886250853412717937724913528099684919809098160385144640060073722643687588246788093909227194768772234860840951441174911270036883772568849795473572339861025697848306188856996493491545067462914000747035627500300601380813129081601355233213923406974831979617352881363829166716756418782306453623992409330003240500998470819237149506846271535584606449514314123256743515071714139550236440217088816310586769692680371660194759461233796792802092057726542580317591320195150670510910234006821581935894417144936325555667549997999328675288267156557245713888623156208119117654683150524599089700204250836132626370213640902522787021355761053057856815566539497642783127078169506045568665249379788391697943871152548615630905422580193537974735902668666834619763563102612846082275378757614268662691206019809812965175032297752320728979982956534311401517669374862283674677774129724603841353991811035448888377419714082511790525092605969780461212697090235425850972267014620503634457569386428556544097957875344512039810052284920588171425468720584536105669624145660942130060390155481667901201155448975586738910869945231294428523468234701188502080437893933384492881809453093244894885185043339181340105961671221255442763211397492448090928330055475532238871968734778225444468966898119421897955113582193763839382636931047335458598467355429698785042892151065575145203132612841215249107413033931375086863581558972326278543764579634312501205196887481492728908130623480703029797522434105309763272995512673431642846302184192850214679890772153121288860718687400000555536264456837825905569940705983432186107793552738852374584839288047931174281109812969113215754200747745310524719712809862763041947164207612413593011899959915520947265951043853469648547517636969976959697320616733769760110307943002121403353215714696916162985026409208978201288861223764367274013632790219198479070866380541275086036202245344366211371183414345745644718282961180234154371352445047596940573459886623109641018288422105434015939136972009534996458618387791119893850562903282740393467474897607713577198740605776181125946173603840350986483489487152608237484322231163002667727669133265617616340411947890489399147354011678109959472413655201153351404763724563557254171519803785107841940429206745668943378851894230645478762398162129382650590992420893032358997832404120924718588969984934110435540539852711494258313322622080485054140667587587305710403882780256805125409170440652615695648211871550851608113690442715038655321253319727022961303267579815090451402459957692852456947424479655881692192753183939934721076577333331611912359434337288835990837541850494957068212264445243746660121533143775437411423126974301246642715117596295971863580535330423580150202250850712094523432035382116756681678583526675710855378720344566698941537686104225077774556071445706975700912330320884626420781049931125966439995106224516575652102595086097858609886899974365553147349870293602427722601189097402562179547638394425368712132431462385687470472816608545863596103577696713013278921338138072079912653091382697181425583420258637704081011981165171770817834126978465389810332949951516378610235654037242070333203741414486386152610575616972041904969265997692496177207615884745719022924225655222023221136002180560098808106735847639073410171369415945227221114666882386001711274105565532444439128620006258027699451180119336378856005472280411182422933085833735771352179793624181881649006989286557555015111035571081545846688922547030204669262408646796458093866086358498206765426529501168202997214523492803855617905730356695127915938022186080268309559679657025780893391639021303472123274692632857202045465771967206032112144793704019564920647455477716019748234337410021092378536334167312485410148817793434872384142633481360140415105166261122620042058314687623461011802451232088763816176147457735751069995235620219550425714217275205362619250507687294188362448164087423223283766204546187055386962479062076817302934876099498676551329415942347219539279975770633314671198795654936531400635884640568919713708302002175473527490809885648470951793144736336282303768768359459671256197225204723001451519990372868301339008217258126450781787964176237005130187265649498578726019993210666763594000591215018000086481849893113613990551396562235568508164825935388131181747956667514883054447373878274740645126502858657568623851417946192100448302977476420246317998877503040311580970002744918718856819146064854513495067919291999515633609142274105229021492476238302601043338368921550818440357587132985057850822888811861033140349304922989882986571838018464942891551452051243146820775121628643404690725221259064965170138677448293554145644540721622822235193266796763908610904885694735588269321226110405118231669373501471575877853477745736645226682867444710377704725830034337970625895711141351191915219840736737487440164743590396046112071298001618251182170863281723571692889144491035535066709771327122076962707476123149994229665668531913094334220144382391906743003519487647539779485012342262196776381807707239321308649600801478515562022739025034194394231524812493197863367822413510578124927591536629678505387883784865487716606681273010272270847010839098144236453680162422869045895662019838339712902416660250251807097457904420492665292999605879991053864463036276622540903011223827492770441925772562917662367451232636017071714585314897446183841304613748728395062769459283695546112076107555324451649138506280811404934208090103491347525433974804986413226587991631770472927480847669403713838970380659840442843509105020985251362617250719576824688722323937163708971362028301051915752460123103468953942914768947979178349449283009673257703928756745058198858691529872158310313258322178980945556233639867590273428914262002058339255178560729925074783092808266432568781047541249167145162507125932595940629730046327962704261535146808560551873433642712918224146149856663416563775667620444608511529537677441662250600616496518244603551947957907010539650824395284304274168791106335034249959392935707008517297254209722697335858144600651817689164894523015407572714381341337777577143441469541270534461707855264469263045478456939083977161328564102138703993502450862250300053800792631875395158375404642299189432679139429901393968191335520906850915434826487640407658478914777878616602837489283228230799963039320654793004022121863509362738355698850065776488988833870454877210581284974127158764861419681540993372401041481918124140428030987225897141707724787523584090264869365243136752092244565951457274135267256864497294768771047903586094090677639845458310850144852534343828776452863793760968445076390658694550212247164755303526217169319776623163606603279386533713965526125370184115111590011082378734015813037793185893250889851059738139462671422635865637931784691269989462992492876211932822202394774437432192403749214874684250986591799718340768445573677535325652686460857790837427260381340355497389025011818307333143831207917436856615412354008813216018652733410828700350229157413009358237973867520371051451125871005361906339123051240812944088350652583280978088141318898556163004678825179013401978458826927138925405134318172941175307584634325458360561049025428087347853732895366843095429626171967278186359180107930480667988523930368043509959094444538103003449778308959618222086578884625001203222583138974087290667292697897668429210174302750245452800625157791652861072366914852563008244595340188290174609994863894467573667817774054802289724001039072639433640534006023097841745600607073689641111711686307367596585622160807880675775964747037064934151007143709432130750398939843631057058324368845257066661797141346319590857114353661919523601668760512425397572532493542823374261636974239598490273860549259067072383601333003444196571024899194953212036170215695480993417098444461601279062635796317146310239154217526981800936405073185420809544020815511912336750045957480119419409959691122688410151352176331342489097756580169051284323081327643734215374994817610325756198747218303841682125735899997055944041691179219671936795807082071743835934187946460866248621767007809660431750681583539723753779143020073880506358464021655571378086884308961410493763099025238019726935457314609210030649047239336916361614629188467712276861618531415134986039806931900726128622499315193947243516521549915381907176920838737474547662591630322952166049688708102288288851991261392514584850539674024376610034117376671136847858907483116255762949965410730289815188001199815504039858891348115968242588546106963565803595247616940382791813236971308124272333125767942800717402938103131344407040294785833377128436343826166899395759998890396969141476855910935755274393158088322978243230441069601325408894374603601711175637659466634448853189298707050462646997014865425942339053477092327261553535636647223958431091664608567036599903753735803202827658426382218526362636272430563606424974779806865769414069576301550705193390195395895662329890793792778905531901897505343756318083065341720808308713199396143367491919212085332710251035895112474273737815617810694165786505755343701450488282805519349406486105514305877174525550678980201418180720784179830440080633090826457218630366421626864025385486667233010357288495166516823385189583498593743449894488248997881395595324247918037394357428409184370244210193102706627798773019223463512687088277970373439649474428907185545309865632721770957041020233942318407900732491705728255971135324306246882850827321740844668291805275393044114390981821865945889255035482372471945810432650287393974035981077553897953506294354929379214678210022536864170062424770805501327889556031644167726602907470334672603929909305663773569450214292924900628651116924223171317360992650022009914855726673795169183198884500261343218582741106980213844336901579027592459639349848774612854177746436710011686653161910303529908703104502377588081774350237144085767246180541774496406353758215264788962514755211047514332072982077590158254122615171594361521055104211868911196550189862001700155564089831277539977096594440163498409522911003908129963369348179925215926946977048243350675865961342977181790733619399144706233494196637345426786507351738748619375517585717852240182464723856565378110918941827661058127836074616792406093628262427171286352705692365604267754457794192236055411991239424686651661681739885395807512736740096718801286838469410953032973396459137465392487771336598663743415237954685337772812642446211319800602477053923108715108986272582011254884527642265744233487926940804925387959875026366258887856106736399189987371953782625894203055895806782099811668715612736306013306933401512547412813146886822894450493279437599077675244206427465080989582265540216357892575905349877661820449155860880671157123902502486794366641120510100277292913504997025880039013790245639579521543132729951920134759887325151438027514501581964213467310453103971803855749063602723105438126710848959970100508058517366626646690848839730020803551140271363077177290805327114520686847215867844519249241085948886410921758330970755508889728109086697260604498497363084813778962099811753076792252361993367904438077416298139883385113055007145323669232973065313021977356247282090321657624648907843004479732439680268605975585979707482608051204917989192039234046656867098251165621654447954022980804820672175539440381449903074163532238586529116278965936284587402426609775501567216608141672473360425872791818723516590643801399388193950784651162467096038828062742149968020768795974206036911105553107281255991011809396321670641849146913796451450560635492758255245749640618588572160463757803419663658252026512451731722924948182301146710328190548358770394739859929489340464839315563607809767876931662180549185981198776411860161329165077475950136678717722026661736278078140438679947197306149641878870133024437125969088027383309286703700707058358887272306515553252536041265586660331071256929035714751315237883979998555882146791956776509941314088906543089523172687986273880860640486681943256543880202964729528602168831203873807773644186500521937437212408304584861748724473403480495021587040751649024141606424243514129724844790341533990241309441591725375855775296838410469362791161756522457034732002666628880480426215394659885548033275121288853165812127262724340633664275981343133564434123712009828040106033000558340037846760760211744657108610103386396779789814684005076065003537752483693826698832304012637682862559328573481260072858896736194150407433503729889233299459155978413417832572788679636509788793749435946275887304958518322833645001870902193286951813455213996498329205290986295956044806142748373670885070784671742042287542347886203622300837350492569205023343385869375810128401948260767935870432598723483079269766918856721942575917470091130936400707502075824734744129077340112388111824980684323101653511838804853745025885597844722465153297289212399553126706756524946510306090489644382542127860014635000849070093942262885682208195691663660976577924387995563516641462694815354580810638034073210072654908649437787653833217622013014777084610297790385183115606025592099727600600084671836004641524992229553299146193918389321129708726093486375117390573326231514742026689106497318018379015184990155403232109536219618603083714724882040919638972855279847705317864570272963955289240977432872829785781935323619228420634125982455113024515810896827399264198438751714497811160611220948529982359572230857344777996453648709031414029476016671549150496128292569945946171161236620146963119270640588823789952411241655818520327438398567544709922421201362350880036740251123854758661537814753816868351569961046878626304938453546982568063119892274987737454138333563613895132309621327693852548236845614956185585295735276144712693629010567101606660047941761220471410870021369631945695532180317627190635374379273656105697332956096880542138292379984682029886338312873335324630363027732595961549827249434464400979067010841571777393266174254974596750888701990122504599650889220633034357389708865969604730212909611730424457350847574687217826865205382578067610976559566470359788118487743728440537482354592975323223084435779430198443157744500167815356178773667675078931712550099731251287615655570104553919120299880067485532678441637849653264779593038649185714227863711429098854425284356101131688404060719743698758842348586009054410797088584931061248786757852682476112342661551148587831188149665032813450387847022911917328975173180430709570924361601671658796700782735504344388919263940265922013870717701011893954387685523720085284554318336548340134420889737255135904441365186699643766386956869072965209118323038001035799099619500003679940312643365183014363667451510091079826944684118650020776575505778949273525679813124183443566527456083568475718873711311046566032903089696839067722129624730417603798778399150503246885805345768472680068270560567770655570295285609834219600801034834905292004369214758476516595789324241459326648891868876846763158043876982354280499397067416189911063787204758172907701551931148798515722357807867205990352952692422439504127256502867567289952088944969046159961314401737909643883297906792541248720950029370049682140157544884152876699347717599367009276338366761079655592603176673905435192771852090595446636184183733719094550341267683160970007358007634881183260857178337352763319618411808942066655158870674279719980481469057008456210095890055119740085169006842184806235588300500927182336614282777026728135729283703134802616816637775652033117169532612308496569987725627233719798408499890505664666204468029022603573493977793085287089621066482249793080366175391214473943348517065558989475547211587096560482356717427573417297598847568181275066375664961017182779657809913328807298438448118102551549006126826048221890474441497734875462066519769189047157553286758142243520016079336317219786016730570312071416669388656915292394804080243712664894555721078381493117512607113846946510378976029136377953652879464635843350822268409515221506497840050745590053965226630098867034474926403830981579415440043133416068238878988760353755487112267133790087004400957887574576597124297286505265989139906697129119131938315118598134404507389338041686967839604351741210994836586318115150094166950130435740216268660132298780944149771712769720155927335291663773680184540171886566587394573445206250543867790593426977615604066342946885372494512509679519063465840179867279026191738789391103579248589240248586825743510006851979096851865973329987825081051976836956795850987823890976334947877094154580177409147116225205745509868610932307394450755870733507160606636994048899096896915809214780513373545710339076145197907726527704380596555066850122663291716370191483014353758192568279278420991624278498388747449313517094717025597112006454355276857886723835805998274510933237022577998193104518859654654937207780169264183159911393149065649420118466860752312869221152882015811433315722423900100057556562042708013386229045900342780554112846589985128083411279319838214284482957696959266972718533752837744938259794172394727635584853673437926182302207702313337686222246883799868937687891025354076934023117806616395365251449481226855406735235837947460546708673179259539537571605621866025039215070558785031421044160058460081377266893678464445708664228883557008181169998702429217398512601889636057107558312221338785493181310463600338162528088020131715802240764078016106513708282467907895400549800996085635601937613315634162901736965715928862214738281321474842915230713278137468203909158679935521108273905048861881833396349129669654302584751897716724952717114644212309980283594915459692054653075396618777037991719254012220227472973079322928128242713050115379523542070001728278616461972115493286199311183076042655495392565446562434225201063936234876388466439929088676632424890095855939217426468678438665193578489223082316039403342829517691454842145219372550854648869504519894602731441826313208028456326554492271928256409013452179555553246012645438407384407292576106529508034693745767789088797113208147153052223106773604096313919386503561855020504196701649773557525131681794511227884167890386293397836271624425739649189671155821679250676972190003041644847199356931110848925773101625848854431529073082312545542258668258009002104956606734294688371658564972914085477848500065650400506605403384605792706016937673110158556101946113475405936909723699811729785578394086289377792479603821906848963918413988388884178052255433543743716555354043795392564998079113493561896092641781296482644791838375578643762486882368986819129381507454963692248684845639457441641510696555140609793233192869679824250866548477456689603569494233188698060542974857820968511793316268629506701420106321537027802302503679310560335609437940714601342162972899556138094989721780513852712939462412641140753842795849328116635347531735271448741773128367186107395843191817671563070326857376301966290115191400523313261629085256689707344949394199193577801022767572758307721359445076882616129822792504127080147198434069170403853347908254805869946830239462711359873421472265558473694901449998230719792128387088197208035908980801587306008169509050769314386047520593803815038924140792630595598114152271350230850685086654872986889660519837926992374405185045058004381707941306151260989456685594674365654448980724996031463569771889354903443605424928217133463346091732960304673576356698044043475415925677405803781896715431261503836384456426005912206394080657517443818965622104094791882023200469636527165330471850007424653272247754606499843313607195378571993237217808831261666363571918098674878039699155056905072312929812873063944149716290630970900634521204502300715405243591576468960081257207186172953481168028778711525123968794393653491301134194358652192504148453923922091406348493195324351768447210324267699810666727058249160211597031950731115497592881975846342914120701227291090618499695861020579131913478208893914616887856750249119282916730962321844477411664577025368404372269632374577896294040871951767992991671076386994347554009119516327798635316861864138728710670219366739185236699476199860015528249142040281488590618103230541697717027926358803206657340124857698054715699145280030005287976696401757656180041426551959503208290457721354349656293178186101587869161143806443665429541196483240806199555035619721920386033611446518951462915124429299199090989599877815083026112378883887009113489725916729879033116419498265289283638068401052904257091623088127787918224264673897016637194313816157978687174508697900883184102250929735299328369585742078478955493857796663234365173086146944016474333502517263028205207963049596341739617161102481925498883232507232915220393666410630412315887767721398296540360916626241588179542579148627297907263141773260025057075847353593635288226708950626537063009271443098306073008433790126739133873830375922179855702277262222345505374556436944845400348302277135209976865369773306546777416357521078264155695360182617167804325148809453132928167185188068447789166380865105224642306431039798362379650911160449636603271925934242870410718446707543991475103025414246781552601348201882141150592432248600232028501205087472412637071240105372241948787576612922415533514250555244204149619817149956194256437605817862951516857978196326399385341970690359560900411504980151746625506877067352460084388234502828759377262235842797913572118103699248969524400515162792374915088378798373231846000089402568675861277965995254076449473050873325449314103213476148977954291664498898275398034664336687571266813642049493928124321051517777595295686509681274991309772700835155279012137577512166875054707573274593198665544044242755872158626822079936252366825024993924358096425812398300295460783848385869920311937048706540800168693748445427197714279378252300090949753360880907481181322209898412215742252983110998179613512826855668573312081888613078249120703659621928546550168447443150794406627500614831973284339872803500948082481098633929196557100596583516839468253609134669134870129977651840029266460762325683884333841968140880319173033779518294545169708449284516456012948503491234162740645660821893117508497181229732686504974437612662229792238867260429672734004065340824764800093255322046388866804621334892415769516075847548516116591792350400297326453385217740278760115286998189700455922236732136923694325245993835049955884076934649605580944758828548555353662343669326488817130803766126062037604619634795219027483875485075251569834493874623320922107373256252787534139800496904837883066201514369816056089404338872777711312921102100879301620951030290569824311146816110700994787636187388051835247903572337427204706260522330714173911507131247950916975365053576356047273623083543620377563591614997039093132819167531756219186618675156801929154168271574366149695039118602851085996050622658143470119086624278469589018847803241930465930561320008828788904893722191545227523960136607127150435874539544518944200122735508328770160550312460471063613807913340413870908920247483266032692284989489981056557636611904002311726212225111379257716845625357937605573158396600822511882990108296635355428258046528940277483324359191931399338950076653044984264850098630957397129609543032988898637914141847245943415060666747315239629263961348166401402782455760386096343313885290413403212082135394520422532515961859828486852952806513844232586758646351375732435118653720511636843381208645933037309161343637859389172740522107204967126836615286306491328444707741976065657830616954385901807244389361889693951599990348140647892616673168789461835496314197082864036359741789267425145235851276867190202377557679815773679744550816712728213147539704342673955994177497924627871701719276988405065185802958628953844771201915721350569664082214517796080136109552289301373242052361083202931992209843521601056809426465918757035632423476249383466915889964091224230388819800083903326766370075244509522095899225342303558644461768187199609655131900401234482546462393946962572705028084016431496104760939120576805853664910995971291610817564946359380502823466776847117858301295003739787286409566081322737272696552463671416887994062298814996999051192903149358402727126939704620147476419049513850483469941267113803258435255093474691214314699076486913431815708083933062019797873983563680373141799663024364847933563032277166002256959511399537130976056528992372132818851999481350994066630037360610744956175731069893071976690076241352918554440157646543506665194631796635065245823576034742132934560597297558041102990161483494230310040482904453149339165428249719956592819071673555284145677123047145996922481065221577192168332956947550034882130850074099987798896937739752319896475594165673485674477600444809336933535923863248575384858194355639407650723834602359891951697949172935039556517549239014625865448213976272307044741836340159979637462146787384272777494806243931692029864849260718283423827520718722771447591093718083570929417744423781251053325082264761994492432352011422657014959432526691866915777713461135416598406471324969987403495172775735531125234246931707904887267459484381611481378692682998109538652565967561104183630742595751549613244028270724232035797680814716431770270409024460994078399043381878924838003460564018080983437523765642393094165723501909289431499761177515924309172374361873505379709666769703577770111570058135377659087938065185576461828116883086390609501246912850593801131746620344236978473200462778223519135365472427852666479482226224151543527683272833706216176330866608565898251681380159452705626300678338144585432723426963447529915390142913875188651173712742185253054058426572147632674958811428325584109670834680999026174450324160381835105715900628359444009701520202298920684761245153241925346277487922613246818527001667816409552511081408555769402721755699609898655712811856523738921893610458043789546269154321926377902548572057882249659391643152776816182796880523981065977540064580045835251048644708963781514846767747957670956819234805959982242033888651477700593910635559258853129098849095444015085550550719204332238298232262066914536147461127948589130456204133400409433461747611178953218307873764666818500601725161126769579619057828824205087457941135355345382657544115803730928917552417168316505565655876351836817810172404792452965645831856914122288534649908952296199817393840983682924405768056815817641253225555965723351668821840188537930745210011679020546332759917376141126769460770718985166804562041674689767450797271410530705711721607011581917061111547726708949968416503887219464960264801485976883437694048981174685239774507960495820232118344054977660132837608527187614363521288065447772908906498111037718909717454105857101492208549197691541224855413219008585591947447954869707025478559795235205304766254747001679002541077058563810318780476757132610957058357390000085603950795863502942275530301823978415758229784019714419570956296117686058759008240230170832100018153128942618109204727200263506296062027687356722823237852588189277080059251674320528199764993337948682914812047012319356795786517851286726308926675548606247690498708790668039575768351978303206382299922412922814486721151146313051584221675718062973715705191527600748472736005711687528186392228180781573525990452041928692019726591053394768982046645266209350356243516166536797062041258293167588864653856568437543101088051919508141877918649457358200895081071790736772743296973227112869288532704200277088560817550235057654216008367815971942583003305282275733885759437804600763342751608173861029153363325867934565582929667818126249339834067881622728523951410447002435989842305174652393977545472056877125117097900259634266408123318596054109785327615551524966126716256718158688695758332649011443220259283562881472349792493623080437857788108705104052468201163061800171699849156434305721251686253949304272527528932478628591673885107735460207905074967377853861071781719058859323360501816554581677626444912315568913934411075800478983067267968671973498941951379276565653159739846207405572341105054935473416214872059766891751760719878612981646934499499389592595836567186906361433971043542899972341784492598407737781921342098957702326169474100125956591585944747820713586683191452585360882463237891323632216093531767039620292996500819549340001095966249725220298672913924724329544983809654076485153487735994469977414597860650293766340349951529621318189971210623550962936954123038001837434965286059059076383715851709509073416373994994928861676458350390387835689783799767340668667314097085203721494235011819916449676321996723566148616919390405231279836968253223040282622473619838140330603294005970696833561364325597095634111205332360197595068401230561764372382809896052199465977427077655918106639953852069548308700994906301602618759242834792073574794072327063485127244008131152256683371778065987027936065482626817868813608410596498124534509185677168476003242869572474191332867451911972450770644141987011954604410257111333278010428996784383154777353027312500854180345580126354013815257145772360413035961009761787362519032432730674362509430842502370973527530678905124459737275669171826231665440165073625564886532291188914575964054417489903598891021038330777608513664118896936573189006870284473204247864713858731321411307350227275188995950485955257009281171093469108024157444174069625005822310618363693304368091140528207293585024012344271855152010002371071740630188575195894219824207952253085318628988113581078836195272689452494122089116773175229468387071541525633026831914901752051637085159318979113115987502160668783583077094569810734175593497650875018668179714261294557846381464061937710086032751952312941954881826229304922044883503014030524597848475389709119780707420932359644057497153232235209181028988043764027227156100455422475006072463272276857861441464245041330488791002194248992680539196559077298958144086867948910763537888808534945455231558787212793324389308148253131189491612714471229858156696273851361269826021445066647482196367150677667138084438971144991602972138208631327793503712390921466493539429565948103167196152201816677959891588796844598494055516535395874009651208758306089744227228173189149916334817392782686412667801230181100986087493642492539946306832668776216966636761335652223693594127625221611268163639093820073795809831254152611504601081173414194993467584759191150857235092053685448580740972944536638846018300681339005162182974935987290673800767504409547720324284334397971421419347417813640993731161694763998577853125542833612499433006129536793311663808965485643518335311668335915439336650706406710168054852923695670091803038060152351841214672632739817606162612669854492934553824760651434761847281012690978322205439265724980759580691753853271900508376093869509491142443537394035053505705547434816741529273450492909304631769780816777436275837611318916977768589510413070411328913115389879546380527991272842936725176227300012988552462352734542055887442740405196961236566638481520551664178013918018820082749179792499576503218726050810173434574620136547252227497311558748516622399492597794945238410284772629622663027716585759017334629235721924176290544462289292503499750882810540217000157338590331869837915371255692968191534215263021308031829407499583881274261389370404848648465673018953656326398421551269836064947782405661105282925546777526686966298107497596936878933642686731605763199051008803902464232526478793431949123823769784895379924796954253784404099153128667344276663244488556047970728392005946582798653436376709374845378073197332263871377971087364915699879833548527599111967663701424397740471312840693491621595868782038441670269369830463091956836182540868028627014043927758313562294888630659867303992873651646618393409603221634039045633499159579770351774775570343994296165159424063677336420434570572266607747174009684792096096041488890672930825648946420203723962223674292753497070893612665056302132902783301953848358258917311004013962309284056465847617092347540185354641670107226240238579689527769803999849316745653459547360370395328731981662552168585351841211365709082391955889237807426714165236256806082940339053028354854178781014630539229605349439611510138195320392829338773149865652042066623132911306262975662079060045733331100884167379604871185762895504230317717900731479927518337762134503193560024891188440341697592650353304359630635264224221167058861917839030191312537069175404858558486092964460018343739655929395585646891616681978122557041932557406138831877607114430582315505326218431088992654138962153416751603272786041868953402016943198408626922676867136757710190276720364290887365969994669289319461301277931870473392338333072380961746175922764828748450639617930426033863720776421998418255800680782602025683819650671372973286910320913290701197897149735076953932038099265892326357261701689550144369567745510803376306014289144274139743405756078992386648902417942017434191418529447989126010563519891448068773412564798135015494976704411764422251086090045349327999093589923621319580159187597441785114056442340221682415269651271092732799835976870501777869834449523449978299909982164528969404011471227244805070290244669967566195381885613031358741905118393885442866283662574339259056785765073102734059479187686482195179102206001615851619032317772219971783668507635358228638303937680894134438136195418750118894615194913226064399443726811374011843921625135973040763572947712328407511879182257556362202746590319196378305959071378572038372945076933575509789114371186857186082138889278215978923679038546358731515002096072012967481107044460862476292264130116436674567398432217012347900652750633129047546534941869574733123809280719770934285798955621702672050487732431061206071945910015668393229394960661060817247327128492207769233669434439955659474145520911531837160315631940265269984893574761039698516121937016666536774486877266837926173212579170319655434696841109412791717934497473473333014403782940437236419478773291944884825460687048649833223551414529689166488226945611840951090997726879377459449854280580004919392920920614746975122642486807065491013878964757363311352398395269847844134761932578057076743776223563087667252836336395294426437935639292733556351211447773964747805581891321490414986276985751016407102444967049187884500413363118289743780051857864486917515634557330013682643184043135200729409572362319641434723703933032397116577799875106241412157107585960150693850455717730653879930059987369132927640740651017393459277423501736862835807218435514830660352080081456865458675426748335995997019800836263978506593540835844702104200010825717355761349780315769796661579070090719218550967538190706144708327580940132695784535858822470434750484424194407157004847352445789870555570512340688871815112644580762486352521634657783988881105533898413590602156336102990062743092300536210847570735474934538887882169887471259392196622871484794111382851024403763040182101361146322756490642194748440760739949007003391440574393616074955966108048186011098934938681837424369897036028998232642370063317577359208784657627183434865951399868564310433446210827883305711512276101375808149521490150186333180830731905862818724343353789422672540167620641028556426107287186358860531662645680794457081618216140375098169782283657040956652145074673698577301783865485433061204666917061178089104167107899212990242398519904035038683831638697607971682827244986265297475577224661216383039550961037861396904648181070590260707449813077284363214549313577363436177223607675921507829205594486275654647473009806593579585054421134298082980650190529435231709526419212741758042234800356321820770350671290491996512312597906420540628142379394209344997989307271373512771904943521746165913621319615865532450572237147063985370240479289166487204681457135474123746477477037359200816115627362536612636743382629743670270946320075094155152525879298599323608226681290394021922591204412380421106842516881589176141973082807407786742834686504389560240672287891717561019624973159794256834862511981312090971509258399689019756087754785503423759513187047893032606779499379609112101584533507781160042619972566457409353943891498785724256980949786802535419221505109954441228493614409940984998676278917826919293553775081966463121786799741568617505258619953601308531824875380734067063732246670851326583127929082968188863870050421144086363485943745687926874532794821429728883911545497851089979529610226540857778725535710125229470969468881715062345161560778796313372259594359913297064609875606607171335728649843043006425654310537265261592322572698596272264917401440743235603759862023161315445536095496065891495649728926425509691444120753908547154655115055117196355781713747093717845741803319743529080092109081176294183615180893245989180251650146134173946614636058971844266497760130619610523600383640526795355691388259899145642136474832991205391633438411838543394074845486432600388900410004697177681522700156795690017368998130963343223658659406161601293903593896324439797656011147928334164315549661056043970683465476779070711470916286976145079710065104772644573941960520463349757205367601376724665236293243914000159337579324963873538243320146267109154619067018154784352024939853967983218792426211353266739831999719543301461907805626305112554131096668373501881302773324530473920963474751590905584818612042948367049204196109199567900093337105943513679432614290440993406354553436453970715285633154709880984082233359245046794970147575131043905688410128116077259568345262947999731172700120584284048620609690821525687822234840068529729723646671456420103754884358930636144362281933762893025321308863686112083788744286443722244779913127684676231763123226112019276012850527335147073774202056590376257481792667902102225593751326524668570706714706197065135124717293569730625395071311716760661934698057728984680440588639434116952876820772397435387273433680676042019494572160885401613369022284224471711876572834051548747571908496063422359669465505197427463497684964257497205610113401020251721222240774803211252410645176284526431771103774223292811974260396715726128711919188477983324679021903293692764015078646005930204507660988518256436317889315300153419577534974635289023932897832514847369153568172211533918666879989927928382745372741386177163714414757595717043503902361328432821869921165141949713175086326417726855793591870913979205117307501178635750627586442314026809986875789012922763768906995098393263508714047640098157775475383749866478081053632914813926673615721147402300637188169741389527643267267190221196878328092220297088858725536407486011021224954326664743651756323366682156583780437586331220189583176139644225899052205032044488310118455671184984924979518950006647496079119911728839377320883677366947892118916213014737026809618603309562391346001852328888251170667354966823360942268353844501201269733985952140776685190677363121687855620832173582944355073448965733185104562655555474670660097441857468990538999669193659619603078643935993946219835179372173861898998657812427094760993045315182883419300395515527232557200905468687175365966263618147196002996496786512920382652485779885893495909273244440849020990042720694960432519288383367294257101991911400048675900204459402685409708794532214599156156813218335544918782622784616552723231761704201119007950521673436813953290108604287616662283339538342701995462342569242835578942140565075147199898328948937041865508664178275604858902624951709621648961767864692477365688655532045911890151608596545463091609994985684565137676283480552830481849037641580128740733850644660418596954446687285282182313166788256788628877499605194837311250567927124708488816019433784649738166307875414401871805654515611153241563108809459917997236688489931768986827044103002797341962699713165199777472280244254786449297389797069364252762586799314977736586649540878639739066319880088311287357038227106669617127087863393354817170474076533682233927377660929875398193334165152951074834667787472999499107045093797814312093339932189401104560105015747934925674601200308178297685105487716799368333928200479971447317084416182453959823618873964755225473327590636215621585282901860843765665401364603698976938703865939518288501423844943577115849197136004862193041120703561756031614086844827497450901202883572074283640647270440372035538495322865412171043100186235882795982796965421256642204490277792333758324410063020057248517553838177225464459394486725494446535733668313692132611222087311935197129378338802216816726312069208278176526310205140012312507436599160444383148760878291990089129045296086092900824902988169140010068048529131238016007561669398743586874988215628278456507322556512937573395629083500453134524454918427629300968950258647857563400151641555759712592565972440166357357002699462318381500764059414046859493225664186265460580004228007157537452084374906874053587096040586805857961664715904127509713465601289659737023743237471267467040303680396603647841723112514456177164419925491141897627254318381280618841048754430951669841088555895132755283247066754988933430092094753816713801871121656669122420761540626107603386014251230710812610044834786497409842681335847982986503731872336159541050826101753014669115915441429614597835116691146646515998716141209321235442014736829838294610660290685568341274221697045957841047444518914508457172066735539698169193658200575626840547171503460716282381121425430629656262454606397131481552413752103424789437959490710791774659420863348725033074123161174239509951263746959738871071594255105578819756955453543589895986413008011736531279875187263585923791443133890147632174216244723580882955919677842598584436622740607554320704183633188105778598390652548596341180943426423352523586297667462027396357136365438977638241688620815867233774078865338758401395196726221852599232935759489063566997819524066740254931486738012247097003599155093567007451772538315182472103997201725306653925809713226142453320199386770420542979507137694267417091230415948526797202310124924314012832396066617467482684328411541897615983240734886726446017242769086712101027328654941876725968795879473763534653855484506870465477165587628507061519308061029620334649456956259667991133310880837381194065306285824993278937067663739320580048238613076316158486458199415067908198489086874156076022990342207784325423047782844541368488756671571786441967232195274369146332449407620485741229402452644238873015245457264815573215711643951897866032167027258899176990784548934373544321642553464428973509852639092726817087392208707592228601589319598150323074070703432801020866398935040447991084821968543711649623468793517648204694411847525128071884721057236725116326791811070864768683673904226563631505170576517948808178427522898808356694830897476601861045665958910727057053688538636507992920274874627648042704007760262267871309830545613237056493072774164100227412966269144636490629466966649847146304993939713690580207634415407189131636210764540973457140252860681851834132919673359616848347428638735135072785409353027183545497305759321412613997665184592754335153266939433709571558751280941083841573804194494196741839545661840591260595227705603251130919668873302323120633419011605752405237910473822769796082773227749953268181740541062307756181355886126208098220423863144532256154249585091948633478086455847419140546044678509444016826014672601573651738552370602636526170555251847100668785368247096644203897228832831701910632994787136025203958372406955231640587678050230046510838371016653493431942934745979053234694576054350890574771697382043746056871444005971850292155075086226445738807677471416624791007671726354358478442387515421747579924025443943460378807700482489957637983684430422523598020194961922961272493303559309443206529276724212622660144801407997667555557310905030689613708816163039117225500954017822008856752898797572086420372086748890427969526233353950804482909130716210421233600209812359830539817361578034894032672921787106291773488529965265019556629220256822014701376239217465077540314103153312492846648717812729543493766250181770019717606412640280689459536692859756679295489145109182456294717644614280504955565184692889192947025343185298845518042261295865905923847031838226651364970337089597067153078772806250490153987548729033834728896244565457548707891677885829109711251768556694945304826681394254176147560837477947150941561938251501820683913884930183586314270298264825519847357530417246692474422984015823343163893022896063217413839865087682834922453086610105589171741497064178811771422814583944212740889819606247615188591602507997589305854280084064181280940070909296205401814616332998911006964042788892970749512474044606768401554450678781020040705635074096600639860821282215365514071767028084616145607594865438848196438011718803439697441022216779218384695184402423656053723994220993456512849945497438039981703590110873081877083484073870096151041471272041099833321861190903462870817286856733458406356008673401624541455185283501200746610386284594003677269904501251223416401082970930638153424361966835513576442222616894417198126224661880514825424469181155778590392214797842586259098746846130770848476171437119394900337535505503283721828162166715501305420227723811525841912635863216306498486603971407369970509959599220624023268016268386556208386035159733919853142212821195232086305209318077824317962571676050111103842473369689772071821727044487226238226464815087039250868181622643484373400159589908015836893935039528206111688483239529887639100688994722936198508012549051462288346534437126477429308696237776231567586467702762161067519270863872604729672585951291154360812402643782369839825955740004638014116870525565242588636268999153627239739791719587115450401232994537036463673024261350435423487194864607905472349443162769817318471710147692543419943565422668642385864635357698752037141636575252181796333086510697960779977095202669250889663340477209641512147201568016753154972659024962555297136534643863214584178431793612069753637626139013248546632368143225870666701202045476187130440539449858674581249028643374201715256675983644780837487881322334170058346351362386013159577970874435733482294296806165902050744606412968199007639173011389825143117734422269627796084282116786703600647060844934125275806877165321522891551463631217737707530803144808768453483432656897598493644343555724518450982824973501011117630692800126616595913559384678956705362118980525482084552901338098843540460155589896235924899309109166617470828174426998785973486464278792773744432087403123550041365668964138370210882176632128409230297582284705867669497236490566361835161867360052811427902003096944067204951871965763180868855639022165529929239830806080780598783659278416931134607312418600573856058532966932467670347686926047679877257712641297676651501046712678921954566347008645880008374354016157243248398733310596651302846052576904662351848525123893731588292998985365483385394614663312294432903030214928430254966299016125833372595718671588584567233162738950478396909496239073438876431720456969797665362603528701206806657789637705360590774071368094723189893404769513781422991656416880872655272782818299313264462863849142662742367547942160065259469904753025320157577849562761476127465590330622662591790463042756102825953624212584608842063291555963794777916502044905404169788173644082755678610621617833818181353129538681109471656815226182520901647292624252229147601094774404983884473213947122057666428211187767944455043760926364608373355076153198261333342411979850336117138772658611178682181935917278382450850344484111952447455060517763835326213853388937963276233010644654018084203245649098310669163910375989218963920784288023787107431147434325717383287840972027983690276534373239249358394877676276608335069725319852605191041547171316711494760782175982020809589726766635445452675078447302612136369704518631581144113541382369847715951081435025613065569183142127956012225727681755164587792717844157974151665468075609525454303663830190325020057893127276913017421164926992658707328902237627656069235785193343197316703420148945915404327664375168094459714744952630489510112327084437874029221302814348222253643555501280460260302092402049175391711553089137576931891646915527738688803609647926521267379547503843815471878042813812500383248994538684214795611801678416944225848370832202710906036677241161047428484779438576106178381300914329010827451169502020764329930784781887284962466953585069850993790922256650761837446575311819592302003935072536368234141561915556238476643337096753833883553649767115175194123954383610636236310892085571736469864194572427998639366860354747861262927727559883267757871096269598779599446355817311598040081849446930093857736240375494843215854573126286619727368891529354468866522259801241312213178795578993957132053291535847575408524205020664324261738428245488871719573163408955668482648220992970724965591933651786928070932036007706657097427328940558310681242789407693286898354203966869931092319758961246167185167099369587518550933283297845056678549418532148754730460746880568037204890524849617193113910300604670839061536382012941135442868777776017512798744445598511530943783261835629096156009190485799614824305491340329409519319610851636511990676781198242822889822807148821179819374348525030378248198256459533105059279184688157232952415012164257404836299104526178277155496783870295933599800425380938759208401507654570508278276236647466503195263838758430407309282242047325752553869659882668389881996622578694534777564462592061935475028458067386195425559141825491213926815305406383776986676266315058792837580650533903266842157260821095230627908746034062030046133633333779412253223337004450166166469257825376434791728872409390913530243845431568432984623056852925241254653260282445103225528391985866275812627011867062606032104144026661090552156516776520761535975495327578267614188638273935648213331310314062667333557949670025600822200828715830788599407077515858896492658837702367562040848191976118770827006111998214729378551909417081994104966323813849369507994159504870193876379242234725969396168830066925112291949542089020643597318368393356960556585182978932813211918640190617132637977689759673093587379546640976319526008342817397398803995042728669646689259216209198800606227143630351828983408746520150678863608303322640116153908430159405612639687502413923137449485490463372093660135587246834736466887849821617120432366318801260973292026518488972993247185704269436866083646117761806386776244105582358663188161511776479892156672615661066134072839448186962958693767391030383490833293070835510572247606877025607871051973220487039898027380254040642266565054938387608758268413041689709364466989059684247963527778034050222741912852795584429496013308799921295131663682448029352479752145544196281193926308295224517139249592058330423260458733407551820202816387648449110902219226239370269247716523584018657062928917490443980631831389798670665467183457235377636897442093272556425880896558691351855181865670732579396694577602607820892575837907368155178182343523240888537503302794828712134252949152428132530318072184078626283483433984882901968738743930248474490238890491901882714760731392749809123153516329970811241701095375121626129415682271881387240519887660460698151541846045395432795223460562000160932607250290599021925560655752865398937404088245023799067798774929530945095406018914819055845848850932694076986088249061626306081363857933307924432052864445477744074825263436692246226558896655233468036829858506228449436890846807907419932693397417952822888614990376958946063742643370452091001749800649040221989783604303617360138008876384041004545210495766602253495375051089963573188218684994092015538749817952050806676892884464182502648605602821619623895518246914715438837044977203480574459772019680801117732762360067398177724000181726096274885888009646359445249686168240207070936483966004502152703676433634378951745101579387649654934458357293551617468594913864784374852399478789769346475666488619914126510312217914174793599263001490193950774486448861617185766074760070076853330811954621148387323179471348179072232029733693050905479474584714902094551426279096117990861520090109506641267707936706744559037334218078561473781863920839642528605276728528700683966791973354073093500291099153482101850125777677941632034045059623822193620963117664860313521871349312344837488603974712161962567537938243899291213298388638348112736456999741174737321100677407844402703880837134028554642842795257032180329834261760704208125419158908834204152307794157907733756376582492070681722765598273952201792894271678279227342834827130146776600196641764456270874296886575398854631747428638034424808394403541813657712160954620724762987664344635518216836716404068053570935240217201444243227069923011905802059251998389929459977084042616703898456661920949437754992009428509368189493236048802723991733610543081389214729388914065798239943294802971748757534960638925004079093684697023528482722190606543591437461079486279742596314172738721687236202751048189355065364902159841667546746220560886370910622423058871283732404074020928771595552607470551047269946386979188573552367009663940908339259024566251845374021863538771053324258500859013471498401086849735666163296104263683360341119440800123031379119248002804605418452438944680912603701364672206085449399656149244576519705451461662646019686089640038022420384793399620334834505142127049394931053890587936429718867905468060848205545154749210491313302888779331187206829342893562815721422161676094863538041709148963855566814075635992665352273690550269837625029863658672038626341290068910182851337013429525523139083024534848802439228252519675299614489002505392917279537793796144392887731801690198806059432770659974819716704761025491302144151106676286098254139089516125717927945668415823467496398685861168647266879929723859122626794595013028571759915131921044775066633921351574158852181554597412882365514028903369610593929341870689666119214986079569896849404099010793245750596366631549247713323273830952532563083577421613791263850240424041505425319703751907513189152149382387457158203763305122075095397874970667600770723439320157720104712648612547856378772825416494806610703030435196270788751094601148261471232149772767265347552352739729654153934057539727761935751854008516330924613852359178421925030488502712543707670869478865205033639143963743708589048868357616678374004649396343939976165002629692722954684799660309387298235176128153834559462514787846998475571822766971679075533511920234035205479560131296488509469649368612406574585400474127426012206861768351140686396101053049085716036363795766475240363179515196687817054431049451029132348926611194360965728684168847759077515292955326583523607629383176054694852558883876116825396906008096702106274885562013476308358825573966776715418286623083941354030806958793695974459985804562781878112872684253202041140836455373774297004010368718252892443332077140987967256400135102133504251012424497025490471073066828749512939926587928986793033609509268136123161352640895264747568919037667159907702287562868688313315844616199385990119977079938324715605559914362962154790185944145293330648170323564017673921409563732428104053877978343423399074995815306605241723486415317999363392166157307996141177953180525837963274736934251894572184030205698633597517943373267193763031518339015122959249184737300821429466672932239999550248482062555844091343299906493371737423124383843030323303790043943405292585964865839930062596090809764429029378668109371206274937082026395092286045640525842455043901372408963444244927594202394750324790199077903280482817794151036713924372569553007018884036239762932740537920448126844377258875795152998622128633436918639102420053108463412463363276136556851349700570054143886326183171427829820708181046716298358320810515012446336065551787578766469413115754496784263575746259376914009924927922979330632687850738458079932235721006354530081716727014600818411784318989789176997164187432881023671382648375556579748617799646340740992714302547645101441738745205942667397334424396980612900447906647581255541225834427825214137471471130164142358145770301895791025088496437903416715197381478647793568888405636173025114656718082681627935617272272150742588040943515259398764731465389811068448052620561488138259895505807839442855612786886167174350553276602515031430382651286968949905242461706753084625710037578597393516112560927818423451849358310353007103969966502480918097410823742586898491156700913296873239040013304361736325538167925119394125424800931863596153691580750553182416043528010024072834246820188698887518475943553834182319477449575652420287913437101023398460982416698219152597496487249036969239731458021056641244329076409029834497948471315668966341070713763043514482115144252943268868353742513020314167128815874773679393074234533995421093158292508780737876611719967028664995547364150392740685650127714841357676269096241052450313300476822618169475584063651261961264430661270663175802454590478380202901746965293137490864552677384509000405108017629312720209906006489485005035869407403976789845382133452212851360414989194632342514498905223520831926642576858045329133371303573938639047688431534464173926527527036661616299908696119167204372808001316596827306083493747919398316235484242651274916471543324863626549222384189339464940659441663001842310861521293160819683945128376972406938005145956964076653349583736431238621174144175715073937078253971732689086973813168528828078608427072571445250908678256794955464052364632264214823271495046063493370855124336071865539110307859101436751522854038966120305702909245450416373249787288542483414214064583885058889914473865915823191829115122157437878070616237457933246928889216235161494983996325968891973130516244861793167784428304716062328951019951713575189235927338454808850315603899956117844800604372739304335599163729296620135676594658814890333028395110981110626060129690686074378125249604765666296982464600424839537453081238512217010509198780355861922374012392473281552094499687728329853402767250029865212422665837999953239331244906896306303164143834908737013049836683150616147320559436052437772416363138864906346933607863161424934100379526588246234027195389916270621233141264783748028337470975433819757866436898650656205418930757615279579929275993884702716993795931143091863146358297797295948090976991030357627423432535046037668569930198724859346923327957746320486828149840624581201396815556800126732323849427380091865525568699290706933708770318024025816251294732494520075891417669476206560853042799612418118216196709080842380432018032139615118700953059216820090931867972338272064441660361027227706310480293346585444623555651371961788199492595690849927970599269121354046482211020298038029729144668276568301571530110672377353108568222253715306134506844273834406800206568708973866263474094807781570379216122058744530334901148301465349387932009980654988143070511149984528859261347266937877191878784349754415219893233997627567163321649752152724628292770570591672856469141874718967497706953003130850657034956362195177771838354342038301239531347148038123088652740238004555786739886815560820556700861362229380602476804102068383318907542715743112998559845245420126698967295913629589839507276061966237067720970120838232528561993456302904494459748801767757673586843095882139791514014438992214547771199269986748890342305069846537966915379665128076602133718187037387207233120417097890829083288452399975903459573315596480652690305903964975600104630537407043052172141617870690255957151236355571279899652408090408455195128362477737649570941223222241762658566155592662047384610848438326572549263681840567613098231518710362415687720061433018119001495582071373800486021947133397801964711362135246268473621026756155452321135521800686096484180689858560857198540352799771032477006097659616836357583568655558200086616141027798961484934538367758716020996371652759194055596734005364978287282820318552026339938641792207351097494829272612992575571561115546901847923064538501474457328231731717449991483624362147249675307085969320757950987302732483228627997628021558359210235779441958245319039776425842974368954661259326121662337758365204949357930679992940866710660368733930371258371158579438550306368457723673774534183945731261328356549822383778937583230276282495424051192587377407210768811953905977072077566666228901879156085040329501318386562801801210335636550569609315665540030677366530703537587128105732898752724221106427545694998798609583268603845077354394847064136478401186758867497112230917877449870932381063997319375839724228165642910898510326565437159865829342230094165373554285515822163115184019210268628309299366052718956477392255677401956375278030140283132506802522242758699322638810020768526278872209483052162963616832629191591813386663842118660876635715357198240403929959174311799383654764688162554666415595429194040668709569484117294137472552650269302788874804673797109366212491319754639419367379869767890066391357946193516099812334907107431608818210871116786930302882298770300504457594920635064882154650750983714127626111382339823441758849117946732949473693662560020429096415228463942532636205300062022488463851554002625516678361334318113386615579764797438526652737790794250130091276869090992233653924130533190581699950622324408284708064075693206305384383499267050303869956423308191921733541077914197386420013025827001509122949786796633317709392611309280754888607436456028440602634331838985101137127751727150787097259067596430192512983313764690846252186653105224340943852314050189440686878539552796679349236637923936139052121776679247671037210489893674839474474380758683502140958314800302115374803065583197121608943766285035799718306574745517017198786219951969598596581515140032428302521453917735323128885576699734600126067932115821527697931666900795741571917224672734623339465509135686548016141426017203881995441514203711564204694693614102360054209748044425173604802511699223201712277616958423611665462878596848906353471746000793079733716958248882887437799750492498939599748063110389874511560947376647384697900220041798234531315040826361663372358862144830779433266451758971628692893668928500402225746029027656865712928736971627871354091166522668860457135063273422179471984456444103500865573716495925715814191249329600858953223306012369180887663260377336179010677564483778717032416691288772716441769951486857556198961351886051377815934605431375043659836891826586034153543070447240141076462756213102831002425340065041843061756563094392048374226653719557511728351671843400105689145017098807830714136873478517949424204049744264332380384649892546065813062658496721145581890365055879769142636932311666407000612828500667063980806044221302072647640010485871049853656182081929416819197073391196894734259622263941624315483167507630896415537814699160825909860009555795506016085066284343221761532142529993487113602246162716591965823185570861726494204398455975609642577901220906949548194724623041257701580389985340741139785695314957973683437898540907527246478731957348583712126649691812329881722193070242784355846874423747135282930363959391604332892356587578922393284473660190911110827762387289647831370098306607340133664945529024167115006861428549532022608402176987552943515659055783871015433705915169243673811372918565334085563641125703645649470148402008564398944049522466079041281625638871153613646718726298871967385858308826581464882792542057943677500210624550220356379356864375046557565331405732498853738737402684551775590058655562465310646782840683093595850923175215708354607709869284073009054213303738654075076356554258419850979522440805839817906914080706261296092430212419900618526456125695323864024447847531285307678745342658610515582116092211165840937979898743550009225761673097612941771003391892016200503091893476692878366804920161107246891321527304983546382827315523454837957649238836730533677076901384528818066875058502406771603817593775373414660240180203790438404448544603152969522435230815200340857880679642648752863858237278900119907202072911794285819981610395233947686137699423996493290170513472973365353687493425507735513631960583813081917224133204415871303100665475332056390201581120527436917351812336320015787741531481184248765647426019434165909029196204900353548676285780820144092066963284718397723263741947254513011970166496610030909282311946413740811589271310703939176707444340950710254058450247312862752011714655267136526480951098695879904851047926245608967148780536800451095282200011797584419522626975732292044884473847959592133421427271453992756127573163034716169228728029864232942281853148181823714349504129917376777410486446012032641405158432161360780272219460695284929782017362226553514305038033029487851217416218770530172359132271373101820265314904780954167035296793401833856666388093604551905571915535146426034028606153238807504456513756721373078118969436682484518535925957413510795320232412729492509095148744103319649587354583283824947114013410449422891752554983472192862596836148152686522588774083555832403122545695684077622880599208977444999057047138927874414179278265991737864114220782336004607060588246572267998832115440428618202689743198927376013366922068686151090650670519600394809678149701797428883291840585798796205391654149838932917433541824834204764156376481120734692589664531807961744181395983080183276471164563011324315896186647938212007072768237209295469259158792881090030255814912114938798937214193803941581684202387963234328976684858099668616524521369558924977402496669513119686043012531952235345838594123118077538602981258898901040311339731895734054148410604561771647271837467028420309458477236911158015923772977058331622311258448753243010842775383983060069444760142982132009048385274892048479858833215727093681020365658043230288367414542266145880418626780520161902522431843758610727345192049744739339446507074059177684196471645729552304901027060525153098392907201614489770225123967718238373572543171101027230099789738526236617242082581207773196335015551214534437962851436732899055990335852140257593387216370776585252414799177118677475583176261704136519247478520774880241528240423817240270493397390622807252087829600026419326660966594451636055684726933599312999905223810933590299180213808732202672471693181380746964739824713088629159353442302871789738054682084034608508410567702321333426204898505956924504886057091965599183192283516062075501499230828509441602098668971313609671928743198891183596499898419809225497833608155645571721967285864347397778239245059343386429519654278051515510802483736273988455723094664408180274920375427391030465753186699812744101890016617618565942031543728666152465692254175073350059667397555684055310505503269439656658667694642431830512409785676707418501072147292806018658571835435854166351190381959965284910272739236817469220804958212665360266184613122804774640631733096878699852813532113597720819310701649146719994045486798306434388819613229515923583242273891362346688315057579836752817709532155148013414320128055041296363142810820716587832940671761899813673033747465516000684570269507011639865714536403541577285973371126708312623386204666036656948708165240372557955171392978137918135746947685526224042535022257531009132823983332656488391061556340956991437632775357500180617692351102962657838093466907833676029346856284335474395643668370715040734577034918865338906357931321004754697915592902431078347911020275610508614201407645117845967951353548698944784465045364406108406398981843223979588871166922154132840555775151966443345940581267586682055475283394448756099982081437117265849657144850380972394156502664617295469843194105012608937244125578779255165974548976281209504700910926860169421719523838075792771626266550551268000920114979882459517199508995730856828509889194839996462839420297011634990622017099521730587657570957770196801477857799002107785352509148581119845647403466679290949366426125023312762134411817549487345687121296584099023037725241611559577050721925803105377596851277170761335644168099613676400249577419385252448361320212524001072956394393147719563092838411271194641251371923212076342702146972248281855086075963284791179790780942728433737623297854247651067787224831792891246560552132642743195697618122233006677550634110830409665315847450269112365010166338249942841483969444670430052940953212528749686247177155559771388757615745595619855613849530076027360263880043548773010774086098682433185972258933572562560166331275999229814724604867720512196959671665150950394482680785878988797446601141183811222538663918622997596694100705625686371275436288290540581791295432700437234539376194767252576637394025406636636840072641946381289320159348507718326217070443840048307598807937725477516771975437668444898476168673136084533034290316768376852591130770757491698941296830181128792094061899535032708980868286748420483556301657387009965911016494063828711812340305876832409586030986586980911432620326092609025325283773807566040836789909840082249436217816879017437204451048649847900453719279706514295945585369215321143168362018273486789311965735243099372055936581928456285501469057489317672486271151179060506637865396931816467808116974771705787801502709958625212823753962394240334164443328581520230002978240735707514654161202075146911704010170633131838216284967152600496419764691848915761270922921465423698117536711215201477012047783286327901529000829938890244517411556852948461165301218389429311775693743612601692014358829270786806049071993665647910642050528491242500058232764462239110844609055661280237314405053930661220951814607809115000634274955164379961163920028169484203764883160036166838126624204115042177347438498602430639711492220944427268691767615494974912094349480517395404236823036890429895554678777490726368074141267469560948796353221179530802306187474875342866875723798229764684534590352426243693920372730941996488104947012873838061791958462561067137232425039080228390808260286859859417208324676820540142226179308232421790387844570767382808339135304892318645304640143547294950185714565262978099845400411844001758713258517311048109236675233324983842775219982988227664115886921769529487765591244137538566933753199482453063497841042509706016873471153832519440223205840190774964340361529719015830010045831114256007768019980504417215856914884687478279234622414051145351867853475662941672887689475527310953673188602978240534391303019068549037582147525637539337513075601240946375369670321934842784557875575559856154278158250804172045825232324172951633227164204749037907535276310437213642325357858363046888379027108951418837013203506245082781739727061852818926040181865684855163151660392036583647749824473243186568056125458696200407326987912178146675898213227077153066912544288612009814420066422448125063898744605050798259132328962917749452661006743047778324410139553464917268116203828095552584730933513124321680926487296085788239959083150144229271546547126008119414232357242574346683981510117367621254762773462249803389420967938876591689999257963400647023109101687569372530040554710661103507312062368731202863541664216767214440542093969693320167778059019905950980632010714002846817248919022822341782752299600210470488543388415668940380596458804971103482579088862470108177447599137505048394406463087127465227471963237493267586153803912466986447486536132573246345426186024436938839724332080564554458354139922084598792515182512922170241135077313595268486559674910963031648285385743747283299680176447917214574017623587740325593945449647480428107151845425596835090717103845504141251628294271018029605133210164237357303447910238819770644105125285466073100889289425867874971073987713071340881171469162141016812270107970729921682629415620238073354913141036037552833928508795471840317250567960543637962362869832942878921764758038193827613629098710374823844551911722905050005925074415340066244804910152806928924681635267376866192174755060749462683307866282252564977874090180473505051150166951895637183943433895676667561741984948891183016755992897085044250183116004254321636643146784273898573190607841512146588572902293175543035863544569984106051568287502684747595685763418313943469494068145709304511382647492493529556492591824918524700104497058772829476379537751025524724847412159680365133387214551210756483015988695842105428352655133569054436074794958886399629388533881078335571776641715593925720618270168809787437983293717706342050757265489468604377832160036804273086784337962307504772977532718931586875135948147616848926368764297399799815171680411671081895997907152354497366630592791035875024486083239604179521654145261265595326480701623201069336598850101352955072413858788332757358521808417404963741702360262102801146704549528927438869874522632493659911465161748194801004839047909264245192505083577228919867695981654802215360471806044115035680450189687230033366435751262854725689262340996672350055059326293413328552281519467640375906475818480572322994316219101584049394565075882080965653801728461400533097934088397105376516638848173525898588119696461753276752747626759855012022116820605331489679287337756449988641463151609105094990478656094288339627840032408644351467545091953641621509018120184848110561182269820418924335627178078059187407831130480821542996238165058301721316621804192168559968217854806552851556511893329142814333245311298330697936906901164881459217736379136718254708478862459446782212912756775324054839364863607253973136540619269525840650561211059451173766793679236962144623912647215740362497804484140128770413483342165121596242423617885268262234228109833036172312757197644783064942917668525873478839786473258685859096416709181530182066774557953446284438823123286964597780639915131831386550813356167333082250674106235124490042180564007063236947142804026564706243869220614044103838373467603882030521647739030905569093857838133723330299603554018684826444273447379536676077326332087959869361935962350187391088059558551737186748300633663127282127210660045074766686958344578987652214665546127980962382599623881369761154123594504494157380564967823876051157560240699538929060470312735706177954211056306247582118989575860848463200221156787394633890972697267739450917513232020257097433056396655464976358565841209572714704016038277323685309338959636707651947268006545513375427822474928217337125528165977200728732761231990049284576177043455640854772941563930416946578747390674484525407905059915572914331871378559001660468342945140355804081154281628909368480894569042040743044392106256322440885436126156633339667799729097432876779269655008720719291500967074224442283719216479527903714854789427518163773103831400719020548565671260033147750477794078450647944972592903561465807312051883760583811294150043042174340773812091854026492638189491169776058661932510328963712543241176548720032704220690402358577149325905803899310407630567258578556174085655387717251141730064369111601616608093831684189767465034397058828687399333006834597038967640621801122574601312990681840481541701618910182624303279967530144551757847974812338741782927600302722820261357072560825514997580464113201797309741710832475692447830971732879852818797035165651723403480082914202341882173998251460898569969167969639112636825782489052072820293073626781158298832491608252830248904236496575446172774190109869787975796963886562903447916622939424094509514256984388695392282215880144737311837008632468559583647649167286531299157196590228161843819594301234889950235480943324707556192256090672300965310057856685961980820411347395084271140532830048866282232427853600824928449147111161065021528390345997021062011649430139477038656012757034721344807328209695792734131388636775729642036469263390786877021779771548886178731912932075224362835946407974086070477753242159770409582788449597532105906994101009262493972115631620344246345425651213376649265722208994678986035093704757199230441648771676759296743745860956259000370838689240264524677166181227150002267251270044302326004438471608989161992131643824809744935340740939879813854267275512280191825338536341279727583765413362637747750998126070157987874282756604042040310134509795060374622475043129355709421598193940834881412494842760043568058370169842817612949318934109993774271619223596104094766710415383895358017833684945010134072321469169821205923506446036668929765388600660903101390372273130758426884921805675595989445374072917819177700560112583865942796909455938064537960123082448556728896762068480433294381997882109342118987155055101824490689046604714309286992026277656994937911583430491874345877568696903283439831960213058282531457837733499396632982033059930550273113724534546158959599253736619375968093522967192588310509892345935432136493305528842967607199650848415356305162479659769953633797805948020659952572213975091255010972723220286944956379202729256588716778935057575412547346870565463378517143509098235769205235664237413115929906514790130821146987504777035414088131559277311733006838963192430057391553204305006947664008021384525531072730893141388795654372815208154134279745811376161135969661014513479037104707650972731723795491403459247431774042669897746848011791274689049342927476796025187108036330950657663105817600140586089594553895327470168499843476933984726979447700354902534860165766761239314305934465554507589881929846246350116028383284562967750234987935964934601579042989961492712688575241689589467091503200640113608166118707042124814147566691348031667759931659014880880276221806416982315601763942406172692376897881136550266103581713590175422325045218107788721771787270631124807253801350490544086846281336399271779109724352629081753909304795609796638874063295535520841378894196727202299342895638694303803505389890844958302507925090938448100966142096006962496163706198973249264912241301868683111542211057327961684118495884303534266104283634220162623191309420559512672120883722891164891427717072072376606428775018319156631762407014833462763997207109019130392720125737412215275578137542588701940367485872603827076253541981018477077036271560323179564883221792682099399228783410009559992540386381503593995187298489769341521911232809153022430039300289619168836997070840485648625867428083645995127764098616257074779052594738631435838728758082286173499108753238742861921727280674668800066281592107268858860992935694688972726917765077952560306003077830262118152947847027480605473394084133380523617033370747360284007574758569917896956718072315882223850029518662061372539174235487829593291232511005813222431250052059508960117041137546407471111375554404028055423151769153741341081794692664127220925214878455336901137596473526534761060086249084523735078524228998866182226901834424792766319044218378070871047122228801455413520890931433237045381351454085345080089287241588882773383668586487608907582381275350017991997950790222908346069157490465283798908078871243767628150960392133100616401682595208794470095278871541617637605503181521218219936640424792436864947449200202179572269888684432440865477961528102890428280718816482405539455873525203452329572418700347196520252177623349385288967607836168766841474016987932704825391474353426575517856004288575075186068128002381206046268848842755213638849744927968963418656109763364225927600443696172944485211452018505262657670812283795482194879778525927371906080171880157187069831274729705918431960719093514085316612178720168602123341814429007390018827646327583688115334810460871151197478535799626595863731301781761049665291229600725211837779363491310672569848627205598335788072260902653432638136733921308153300980543101850295915544163629085992492365791513001632517773528351136031128530513978705991217697529423721801870648497680401666115675024449411521211209415261101737418214175449182671009450764173049754610143163463502243530729292893379236883949886797750871540319556605187616905066988655206367071067565561443793496228451047197954480707730045761079136174838148090812467436492104705664054489869196778846424197486357785233337938340707757092618301111812584049034566111693519346654727869713722237517962683582156049879739258845197606525615323091177228910982605573114811659319836344008263759365289054312570846658611204373053637543027456969406787014577799603754380398050298043788155892445457281263316140864079379483295888491345446833369747105677551157567298988587388801159665572965669329284636190665549839242024252560942045485783177682476982401872044875470847171189051108631954220828353916949766846069365200624587512988543716329582404526021569682370394351306838459867988770035925052888620421948805790525147948444811570659013282739501018054627235417075487010829192512535774798003565628796689996029873518066981830348742677294159042855058557425395825684258961128880389748206277046367167733242792246428832012374911988422650029770487098990640003619883557688258685254868535489164181818327371550465192145268070350790500745018867266913390031722023450493515955256669858113057020265356676356925027404591733516580480875107573376764009266883427048427789591843162436618367209133357554895147896158933735380500695760494633190339913270901622609607037421153519547966617037944044470045089911727672863444504729885288132760508400987635819246536436888320093287902559381084271622320075832315196290418100148057500119153062890497052915215768324839729432899947818973497904856790180943641371323436601529771926520655947558294619875344448474997768195235886065832400213875993159461821024568115380023943208407130042686888362744641063243476281100684495842794570958940266747390317997502350173480754584114949972107641052538515451926045378099771589186531635802280117043828114226018578852412332438870984495522110371291261416897393225656011966260897336718537682897934266784565585549851167765927759288942314476224383772900897606020896448537493051975281892279175681518500889045452541071609206053256090870734232315553840056476007666247533354383346288167695935347762256804480989363317810136989350347208869331018266464088738132489477553434573115877933457112429033778111327510765167402081971839040584294766899535298737925129564156929568687646688821459887661392322702424954509740169086256268988741983499159701348619227165339553097430431282696052661913402008955553873721945598774466692771813300166607932364650158933920888651754382543754819159832730130088025283114086463778602061888545151624937493417009098472322053317891019279992544561035932928078949616460606512210701617857313926347187481761504241583522682285200040999447038511386408158982451805867030398745518686488342471614004702654541143890647052712245201672681796896353434783390927505735822097028590276171373023211102351377376906970946674230904843052645793485896094850766513409094242169227886781299848036860765587546363536196891063913707371204801844050408274408259507211361429358604651434578836378394485481481992722989799511144712070046869410132212424615205195155532442514977722756547663147895387824198198101906413886717536713794324019007084185471655088887164806196382253170927282902179127076465073581847022560812940471769369265128835188520887454108422699205594642229809383432726169782454069180858966883654246481434495447627347629904807960815647239734760048888371939825352468133790458998705544686775186284618158391609593813168117987649913323774934530505779194748429125807313179993173221124061945819722466983258933162329404118671754083283562880760117984255201157402155385580094089163730095474403081419870352689578361555455556112905680621186423667867458714309718884415009276076533109202597086211469725386523728292938822176644123148399250856510367292942377760734159211360324158356436923173283177889398652281385735255076074179567923406050735610819161266427377014156194943974494138232091313404811626701307728107404967479284120391066007297800993328010260522593321808138792301914790717639311233854688585877689479710203570444088935881460837959533793449567053922613471809069495177989537724793865704064908614698728797354412547858109293918206860073547884567303390228869915390383957732780107472068864320172036940867852112519096443171137946415977236984988326566244834737341361957763026061896610008081193305101591650878038248490142057481213835681599124231596665785042565179738419007680556922982967592715361249956332714414897077527531337724886174632575708489764155979699036198617841352340738209202206504342401668324216620927372874849384609796835129695074291797870191715498694137687545964395957249646141548992062229347921855016953267434094165717692800169596765831117414633879600642975670149163304728495747516577905260540002998392710859956356251723323716174854531824489365268751295811120194807442149292233788022071852299874698422342039823907725967277388411123288973690262505763375578554751126844608281097507909433272855109955143036607864572506261808413343664627236870775692910725178046916557319211896165839946497985863771180587267585814768821896396373410774057846693795880519891308865358492871128500173073894330908539068611614957501767734894648246846455589479235857584030923698623938118650901473549729602429125515661788873509182363101272327744719827741384855606294677861862267509251879052327922278061861637598257235308638390900995467219717410415763555066818639386592898171352851484161658695428336346358292757887893009746486415730709999349343794860668931914687374079474807090963642981324756399442853361646230957272955339684577800704388285539988397861776095460764560973450005928086065283865566289185257940211948460721707610019441544248309353531496121775082806209733175870220821740353928599323809415006636770411379471806396033562367240468081892465500729150317176474092440323046207181428306457244654786195113116543095659537831080596593035791063046806580979022752100459587236912418867544438691113665178021004148676331810434011903062809094176593525238564487356787250413803068666972830062492897861422565680719038349746307144447842325790500059545325920055744297349989341132397687914049936654770913070366570772244899418248459604789609858147779883967063257758773366108277380285126994922161118586998648046448107820623290679226886941607822591532140519131061985924621612210329644170199138334474225317013155398913623705229512922098968580129180145656308552136119516488694038534895712380637893580511978190828403800751880270246770595871616279111096497102581581473237025216188221787052215581991582863465361525814356905807185536670558318326013251023178000743037312072478872808437462491713135943734576071328267990366581842448682746596455976723645676150384581092795670255234974483586834695296842919359861361950404959575755796376588061256335573953992773240276407899900551830409923939722278423282090451946260930663875645412190796127183192268643848917629701426755064971288137434947266867681712668218805812219647150466197062581343641696080083874771178206191940912218049718711229812792718977279980151766467138752341759357962180717465591208159254213524968535218575554669627831544701191787003471904538597102766683305273482955049118746342381244615924838837851601866507642694017211122943354930832012067863886592675230511063485025149723105821499521827373723995961943942939791949748840347329611043482195217532397029121477775028746850904184765007668060065595409176682278710780165920027735473501097479782907040065487673417156166153942979955242787983450581040395672928227901791743144948040283438872036889657280965194348000619423523722238065760343960429588283316731090177370487336126734821656847827129732310170689694097622832934847640278578028040171509541275481769419469043887982543000441614797487098288230346290717252192594483117056733614858322777596403723728038981915886488573345935931162027895360338386289675089972641613598361843572517801196774757914306619984642306362584621083314771227945727624274736990254920263274003322648785105698681950039828927189476250818018666693624575417858599986764242656901504498252062343789361860733458137414813455012218188287943897744268713461219685800700208894643435760203485071885929710105550267622332413929107361812271679925236707270501214743779887375669515164542033881536142923251695886219456853272337329549493059117068645816218546085341563999651260862265935929972063561958961060343721491373777706825033214891348408581980854006134371348297179399355976624000635395704607495415087879332264014373381617330772811924259669694273906720554864986119330598821014748813086336851256091889666676308423164029544698717575466106955778260799945193008352822573938272598389995761540229803319566067658416030176271493362153941318782609465513106768265916187785729738684964801588179848442105692688373344720574102296053033630738960355283267905079170442313662301530180380589935013570137987283178333028621760013669782726356976878782961814672944575421461862539605931883323934107742898297371645912310472023949812932312484168476826462439183566985512575723649947111285081492479479328693934578681352363723243424950285846486703167463512476810093249208635580565463189624740672238455064230033815083757176399366084515094091169527571357865970963156047629130077440948598134694534026593463360295498978542746503422329742659212358292322039060862954068493455617216412259277577758757231602793268630599737703130366650747496486301728127289736085797733803714150516094687233357946199359958187293428274451602118341745754348943755538916323266631867083027452890583870383212262757665869301036226215917066694163832934068619418203208650797773188996896624491099659012196319264417790391067631746277620886237720748582293561829641535231328241250368642178369113922253402214408289931849649454702379249752059477975892906669759339175597401673366790780171646359536048519042186073195458990464518121588918637754877097395820159408560493123503145072733999086362000651465727745008744016423986768989969020227624285339132217826685023991895949813416029605776752030778078523809507703541734333196767662401778247226216577090632252142418779827838606156392449636828375133522821294256344725888460050022358110842788662849895049437074955332557567175285383834684703159556511301905648706358733712340989367972140514358728446947350767040296678715011121153858804274668963244919853365392284661250279242344391797803788953784475054796916766387536059379839971827320375785207301058828799613529217198838915177840299729014866456688757158633742439085507309764819676582189372570635329016577205563426704855149912732145262352475373967071731461015118104151155350997512238614616323198937321954722533101628187404082947689231695297241107779372186897359707280750395839940306588305019499056493718403932548383575037583220419065067554176118102931871920906296832824261351192304262478414953885792688106628591862785393259764318635596637274114812089193051540422260529924935990849252171591750009649456942972059243855137539600169909640649412278916588326342822320025966392229885132636830817004825618554337309832880370518631726793852767809437503136481419803256678138241274510119251078408843594168488479027649388874297719123505762873429225979054329202905882225018502671048297922988145050161028845204690071849063107574370503183230318556173801974696285573610880022187282386810628224338789857919818628809167638534192313923458449008813911581384068919237930884374641387786332901726557513413313350897406329531911901751197251121435611846400556095964900384464239958260676844789943614706985715298711870966214126385876391076476050252512006261530865170000608929837205267816857772401918906973620710634573441839053950756299808156815902902625294586774630353728173588296728005872182126183971292693518755183907534600424610963943009395128358931533718320361593793766430427347757972605930358317390636301451481775808578455624085489089044146797904447915260436046596350452712811873582812943962694048300682464442647887123760912065519017202366131031208224635661530221944780791467722490533701146743825409172611459596389873567983915947349343322040688884478557247093070500079290208966692455778233549849384433745826259496392103465044741249548267219931801361778550484984333047410124759647690319008237989785009743358307526806439519920183212415554443383985536628170046165836961868571543866694134888892608635289650194668169191628863479147427507264058029674075647359985269006036961229372922210134949875988653117267275952593273316154478220496910994554081511992074322713516787177671833226200050625136115270328750833438505429555515855792637775040522899323941630999190630552279776700332253900438249270966911036433805046282528331184260586077837598807805783164187024081049625066312004435746794060108968016614229460447498143537775954333408172695219826402988695650864611455348964532015120181567677191652667816893871984918973812242213722288471890902172714037478095345147697850741889711932010975623651314953780313594571263227254338834273107376533322668938859856784627233770193914695596415833945566106252475446176169688158121026335659837329258691547883751386907289962905198706494704963814171455453709862974894878093522430112914387237774761456522355731332615268635181275306353525210468548739286899876440157827161946661723148257885876806626664596642417691298964664530883819867589281603745318985748452063456027035950628235164046557885065683832222801465882031231724412491826080019469156825014073875603437754477763520891891101376060110631434382924477849374125378421302190600245388168191847466404890668633609198104118722205800661664985255786659438335518915493837019903789709813724211954412140231820225469764986901204893130268217410444426573420027853980353671655442868989676994129399261528472142444080127596120682639934060478442295114840387237606658866525436295702903304326170675525082908615867047995339197844202599947557399567673589781069393025048253474579271263831837040820359869006948050391650655280093784133325995170734791900529769580505680165642083055678565292878255833193502386038177594643726225302189467434536454802972100527360789863480298272825403642542179994817315038925862682517021021908138148410714741117249336610677472713746632137447954523169959661496107026266291405502279591345728924653786701186114259859606049286226914891279038492052368094983093247539392695536249268493955051660182958883929272259279407688430520881654896709229328903539635316736166690569007355023494265887009316206354726596456716052086722188388946762124285162157190971328042959524140882981933247644527486604684177245762391126415475521477782571440198366862040877162842699964721669398280487714517293218462033567108229038181279967784450531447056988637343149044268379239309400623405657293726901651631845397723949569423340707203869469215829747781953629953525960377344665905613697896071101332751565873312530036663780409163771983055057751562225187691576904956547031393305828243688850398303993785004968188068722441035101635798707074921103088486026064065991323255695778748092460062601868488156308310956938142677478086954229903282436027518630983831866346671838361312921653745261553929904328077170372420895948605978705578301606186542098577577252497072144359395666427499012929139081149732977632339495842894381770254802046204459433583634200953875209197401969072296807308219308037701672886030503170587422583826662735910371978985307682933742979446893983172052519134638969615100139539855734657055028488115439923878333732248084498473970141269471163733276952967526152599328526129570852580492137019494551059716177865639683835359481836462937868371745207286882298652181917174962692866730000557506822748614356209165999411527585387025380351553033551197820115558051111947127929313858965984030293080963147558957667975500487501573684227643532733093585788229849115731923621611045828505464416966934167639455860001935473356771927856702292132554242778149343387821678968239638033658313894335921338907737608276021228047422328384742043211289115029208076295229530175713118271236997869912545603469409838046900903155004671714838885502413969022467440123743519064476582882464044248126733901121686447380858635447494397426299381926856204570579562399731498724582711578686067418695876211971987832746838220598798874684316555223467431156796993088927164059856316376311413609652324708016097785423798662740564707113624254000757084180409937039112508239890490208352118178442358813900149825076236832737335066164321305500983245572798360475182172903676278158515381125657497415863003726032595159528653389938393068527354412688935587576063196114731143493491152899195082391997201904228881994283562474643269436279405332808771474069291337136474274935381583506881099943159009453394621362333260957010172169974821592720845907776097994649179542794121869981383083769659052817237486219798592388228677442534853225861432096620092597851534500816044010250644861423046094960642177657053380204370844114818079876888177868273408367123550781770379652596306375293159940548259638798793248426647337981616629111607125842301362036190913351733135463383832247683122779357972527398972259942391723568468531235120887777708563866501902973936283168193343630462680127363749711320429961958292066072136098270951917681793069683087043953335016585429049484313846029036004359368807430110972164357882175270614743766420708623229340127521064359178901390720410511041128602723352837411330048539481862814394572624521522304975016990318643383578719001878533020202849307185062476650960307935517826372485445130675155951633850286183627841510568907343501038377087486739820207967400752467963852051998993377984955459066613062072028501683496726341703004294761522078471424837754488163961316167098651107067621460859583148808257992451596382062805904332391623779121365198392104972668271565220282852990314266018094195761511451362744984514084162456877044720844401162530575687635040654132519064028866197200304782046873623867108455644377726520414179084652883720286341687018598512415093939534191910154809222405444028050345248072502901247418250684305680520358773752394344236257121618882645797985006413885841618676522297909193569007154169413810745037245110038224754573472028778591155942703615282134897698936455555020530410401029454262112347567451908764883069082269707234104071645153545612282306853644501233026188850750768215695980008391157251467325013530272717489792588887738270686495857088270497706759011366138125308082501594828249412753281901335124569107503669519225712853956208311863869280466710775807822882634301600397631720288704552910048547958616923756030755374469129046905446029951739163960688226204789692653129580205320127780012122485770484432673802054002949701788632936412945327671255295286779379591600170261011561620192630111173079969665208851846202499099178424614699488549936780169707729319022164675682392062967260491950985473067021258363589974031887692129505211468727285817017270092830327299954866600183988933165074977531982489127675158801556775089075530465547586194702673273705019479972566749092399610718754526743004781070556760152989553804379479440661628679193779322026662966681004390556864226829564007951091446254939239347527643732228973106269426390100908923797637888126147238952146207956949504066726895586753320069964615306514954710430838643383149892500418341186244960067333342940172741404755638829785526576433545543138819193864172645012726143545581535668628766409595910114538155882043301509519226340868835163612021342871395131745522171436889680169213754455350003114926423876379845395133723400949392820520939973849281559875898714512029596108914588016153145879465496096792970144510149985403908235562277685253644151880023361598506866499056253033235729628846402909823378849687015530875734473114856803190082490379867437946010536272245934343701204126159108991097430192247182813954702386633904258452742535383399368085465310099195232790195888639175705914992726087761565953821815692908345903295327393620016108196098053941614746151082751447978298722333351354222816793451141870665243511221756423026707511019802900116813651027624869037141462391552333825947574939923399924403050560178775090954096099615365915951211138353975639790662329032217425697653943034635975803966086860317307573291776715576001922971659341719867505385982467206595452404724448396445782675248258714865876636342386735917182075551886896772273378337441745353222195165033047556986274047400527501193204086481844837882674094446124300851048837071749590644031293403952461023580412121071078531195092092681966807806261496078740740461180106129136467504056043079790567276580745943942974308704395968623523697328254707384127823890424769012106299184639306872817779118453044683387993621797799987959011069090695727507492304792550715837108992766909815935982565873454980243318945734552728237140588388957434175470518399951908919444599300036352703637305912280745235994267359571738517207551215576640493107681495815484787231896208273990337857380479911738048992965996374433555035626063962990297950883110888725722653616348797702511899622156328355009717848439036963155664407256097515774190592874349985266555197394646584220272357518154521321723704361063430437234117805964169016401192159871935032440783038104586828757779952694523893618294171706097247339345838968903603292367403680924613892506751915983272111664018995206467502903282013736778929545576638214664233578112265014863957721718276757027060147567286325597130638986022203068112708616096525593170132954907025712416120390178901775982885836884381695429156218350728940099285291335918441680081547184267506955644500334840661528414771218632440789584196507817143685696662709426575714550878930263774344780886530756923486450787591480376400054514487751114705946713832789574801807815003420579474169100864198392817558903234977674201785732918689844017745763131189034405227292254272517033238046298157293448377057227403577388572125766360973672891431809230705582167029461975672296400908473782961340131001660875812618198950432532723434781802722317853217528830077291458631024434796683815538636613060832352750952709500384196807408081266178445194578197718932351490395486119706263589860241889549159821247892301845645118523157597744441267651287270850617559669242870196047410430826089973835233135720122477855734106907286241798482795216910181926192379044306423257299125189518404138607950674447069126446559953778826012748816423690921478609590515285369579376832627692737582575201373930951403083498445914000267247477577413173727534040413685260037369804835320479191767500253361474534085938676801223559139463263484743392742819113158548163731817770768641401377835313767003179058155112651599541382050944595409701661093085435772547060221389949597633990862240865879223893353722328196434762543946496824667259674122807384894393706888149661318169556364729853346278265774308837618293289255591213187980956343744814845106631302097351135851657447222489446855967278783053887782186234527013040998135574821566795894668937337983818891919662076794317306315223645711606413327453509278800590999027114067697719323249683434486620442413933034776681599922084863787734834906310273840279002057405519537168773115016657350260549291988224942478552350115347458308479490845716482679626179379224643703203265175659783857900765972492118858339631059148658221075057444906832349658131425452089619953031847019426330043999983638457741378347459962606016361156234033768503026974218312334044777237723127160695297021117066691883125506577291947188342560529221024943170895764412192140948371058816659013120731809979983489091066410625481936068121472905538319078485393856505999318472196204473257256754161857742957890167686367995997067012658948909570657817769146234392329924800851534093893413108101033171036388885373140061681468277996127148129528326482614152934009418610219127985543291545047454021039404987506382540163123242464093940457220535963817606733452056200291361109562175818728504650302054411014060493243385938713850318489057036909277621663541572815190214983499152782602727938547773720518019355838979907626310337193606333750624704637651155930832252557492539290691739392276263434220074853344683364956267421264491076152356566995863949429266487955683549752702881138871060960515696876454825844420651396285835847798992038532264146728712613974465740889843337118317707278978676255363635076734747697530124244599670430229403596961447107776671000409733018536458172452551173798154600736620316878117126403847831369375745176727250479353839303655242329086867015436185280468463069866417221777302479009301255551569708184634266903001912714936590436011628438280946780081130245164765428360790079447982945415955476642761028325227099142583365238472333791626531525470347322034600775930306382946877224663508394264157249618908037200517168115919067372441409506323023533296080674455266213517557302470424878514027420631691273367417492623893291871140087245833167674579498147078189805040096337896549308711558289289881833290284769416238079386460872465861018274821891319528923024332970381900290703300907427134469866728538113520130024462532911913321079410229031491853752605165417825580980113914351815742481306484215238277272469661721144266584331223273992838844331486586213128922439793202367471929746299940755594171895634491889201072989812565121657812506448426193379098409048550682712936411606790517767380538429122661870679565586254025631224607052720892286024587760295886768937355916600934795825365705395306439070392392288484290876943125064963933781407306032325447258895633761776428689758607194050520028452765696586244086848775469415557012162310455550084905356684000474861213283747769831469405713291600694269607827625649613184991504202309109004588035044473275403451616724800870637191701067647156247572346257664885190963442273371353677950675425621246296890963101347396449727809249334380052541607219317739701120805510428120945653393019288162791216280491494487141023019862203156701761675192982145111144340304726820497065380525565669256072397328348611142030057072151281828230754389548264136246861775919445745151459519645340008320187995500652496282966047261583846797232463356398981411290114704344929552523458402993839860550281096894147145037169385007245084293371871237725232200632237314100979579124436924915746338449365644560162074623558966098762557597078780959327601851593939660237103436737962601558613225092120420441270758667949543008466508695608315292603838536216625015441417118139401986929303049619897480494480697961793699636068609453937289267430261442123475823749765199433880345687969647204035124965943692246936733486801785961682703547127293254933431755940858766674810685270861397311335742323180137845123218314073890826798151821279739089203787422082512012919546735518433932221655982722203349039065472496583202117009375604691293776787914044750033352386579088769317727845549368326116871613185520145346320283648188903422169723341974102880854047635346308999850203112724641288081097843864573630848627272025264280684537976160957910326687640602634956176995799079396835667430206679414000083945587249795852110591347109039046958562994086972914062361035333934861847058932501620758971050890945414442349737358762075807956789612029443110294362694619042219632795210029262955367284089429193323078787125529388512235837658408521915715421458333722206665851541927709565314191992458287144075815090961241880892504179857886290591067694398437679131613275987894363385878282893554018859214299492642334730862849191292156069683025326778207942063944447118893947316744254464835842611835219071432091405224957268092752082587668302787969547902321875978667783405451430212516131391606436360373679602207554835177367724092722675933051741077352333161883598838380666817416612417076900545132247629723008240897406162948711802204329059216492238750525672931180372203064705690792215802065795949284470535245977773336950323519188274471847791431683511738690602950434893984033801949108571397680012144820109432696270094544295379350596156920756367723083263487600961681087959767885401554841697196595543791745646597073194107740226292621889412865560866536075073683912038350034086020522559604615646737247302539539857782318799574445736708157109081666664744649206947421254912091234464056346114168316154636601681568512122229192027278952199065740057513564590802005135752985616843765675265799504039810326034090548060648786788714852747074955847028422598949449505475637897297320744899547009155923179141687934252870797424979006823624906478771462111345145729306249433752250161440494431299143030021065409438315426688397977116735417802995496067615195108448944785735699661929854384533149632452371023673609214974392339710440813897418613574560174953247660936120775671900925131112704349773625033622665683557748742426234723172724101545760092425420862697066863846327248172070557614991742241243067969206980260456736707144936580868067580931778980937689112462156243622203184952470012687530973980239584312247545684113431945963445543922412161511109719361511145718414083048163188620132641481294081976818444023072633070329997484135797233968425615347514154022209110447858419909885359844609208234882599909416722601726852267264926668666847492828967107719868455765703287473866942754960202304718874159532975537251099289241390194332742954126513575053766372445831127486817774645901758989372211104090574776971407642519041737706489718066954990963308852287811083041348077991980793759471695065428622944183508922780797630629725026200950329326579659597714086455175341015044063672501213631730190003129800870721183752343331662935023909756704708473004937988148475156992185448091534405298763176107594534793887407069247261779528626637059408813709214995180578719634141696761778305699770075161761974794326165759428892538420965143465445398710593629669131298378060209360330930008897724808647093862877598133247640518656738310826723145683391245688515616536989695724576256144479664823806827071446681609517294812497509401528187312397530562196372218899217362446381627185578056601280742934971554622532927989994493936908112520018829401145771431302024157737135700898373776779919264204702514332758922713151675211269991249302346671122303326866242174125435688275608920991339148101294798490741898095479492848444510405360197715156137138661401268981865758918446324974435278269640755851100141477212753376047368912153159092391616722059731219404197720306737801024241793556641248537929162859923687867217279274738513099064390814322862393931562298434229866531557324553895901626891355171761615448485330990281117112777284748525782179421157921032425994659707757779443920420209869150404103237219394024056680084317062389786134386306903919060659571994827098474032392522379138187315856975525417219655883702331748702222005911533582526734653890750303868341666986855074512807826825264930892502913197747547220666047630603328537208743859311154758841163868112236206510524186308299719332735841240034379610137838418862295630285469951901823095960800351037626402140489496208921096525572696436947654396115399618029311371610975209715549945602409312515219954798980817892762904700245468378862724122493181187630800438380636431592869695557322434678123507298881913706752428847706091963525638459916408148550810459690494220074409123560070984826804256456287998537853310436589158152657436384534998607750272216731957599654128529780156319833626599977113866464572548522955926119756543332040698534392712775585646878357679401764155111357421402455922698393179072399684709274097887637211356446627045330643777173668843649762751283575834449931001307860211724595071166430140956331727061498531976306583391282840628171158865129005124028699936045751984906101653632679468358783999834522067604076357049542369655764365698802307858510288546776230653288172769733787524984209669565891859625332086483085011245469468542306591401382059856433517859560414111765846061010807448763456451135282350313220762494203590271073574166451898936071007160019846694685292370205068268532666003283698918633708464043117031669047917080696014425104202380404777436537882447656529043258574625607057823228145291160024860077699168953159595652013377610897405782893163379462637999645489377388753897377292925086566265949393018513377515098326787672659163443461812258650493935277403298185314720024248213245415499738479334865333377202490400462932342149859054368898032433476603122318889571852944953349726727451956832266640510411968757237003897553746640222765886799690087910805283733076518800947222350572400504251993961463021688379047924512031456533952119173345419291858582464524235984134950313069064090281559009219097802285024472005200223620967064237797905298704760471134476544212470838642112831547719262435757541202118207996153376448058874564857044268269926051107886406113251545997375448696969243224440156014391117697548391541536747055889086157944003928225530802035473960195625244959000117542014595105027231410098018861958209407692032252645337675888056463896883574903351357538103072349466872234747804046049573403879603734632278107339664133537724905600322263463371606018073630039899705016651509381802875602542018946987927976392808360551153151934388697179370772760388997458733563461818948462418049954493191582650408547484910028653273363989228227152388699541885538063919661479093657831742483786843950473498981984913446369900830645623520712302634271666035786042284875589320490494610941703933645949853718741410168158211523289529821595673103279257368896870820316425656238825422624375208288871276625559999197179072706519216470777517501584066022288471567472790596040282217570841504973811875494718197770643361553308956972807629131471085767932592158352393542422940529413162255770085856054706830295794557424619567150868863343559937831414612614836200460112624752174735684412740851180011876385172725969573759297149647101298900712442296643826420707314003915182427137582446017070885481638537170676462137912161379702669551362905816208213577773894674262864912382030411510500859617477753926758372891369886746367009000352548179437784948090488892908443884228286303479398317469012627990246371722298463324192960791669208622348457833362003012747533954855933656645600805795435366395413046933346375238453787156352382361631412511429902992125166293837128873088136421865403075256795408544257611407792560421032901918270956047736137994547238397987361036857148261049220355187015662998132639371967789292073297956420794995542108200310638237531503726243991677887059651456218752079691092841851597428083970481197878662489437225423528761197879525720617414564737704205761520374776309708250010480746343460673565538032936002863013510016877471221817758447179925455219109855722359595973469119675021269020147741734016490276290747299543362530112488413765923625166735221301910675030481692106951542600155236336668480847082726356315392898950241102866328850948899910551802884799468055828353256017911194121239681902388198359764201865924915048871296213861645109661683301729038577272127906604069302953583350711636363888768431999712862312635090883461380702937304048934092699059805929137762101580418475492873544926072212128737518229331076871664648110907177599474616743304849755616815921616016183926754225177584570374967770017886227147129642272189222095767120233220321520999662309660015541351003569724227974762718903582851425501201755429090609032037053675998488394895955044521986474227325388606160452886383220567136247938728542688451879764931212234781266450642654577202368093585377791527584394651054782568497142688710743807809385287115210722389637973607471477465644471112552679562062819741578682321642232672907833735858252049494155493316359504976554607941003738059062628309532099171280784491408593416751377707879442497412429878157445510625511045988606549150273206105068710619119383867425266634720710068897669997884292128844971788023331232522005637799631177781831529291396633254405600084141957142820418818318026250217064799156000755482815272686530747015293439373016553704426957964864786986417078277126951047265821753740371630619989136591491269515068510179842065279870155290580178239374317170251605136280945143125130440885205786623351156207414160441927674264344868168402177289668714811007285614635080062990290637811704180376654688655120751933501850645647644899099569700857111660032992464134440965950933875604838716184983322369972767226601360742207214808047093935841149760569376138142343620466036797583135550097703845950759896112635455456594066799650389010437945604668344075873401136602170297257190176973997329876597398010495532090540983181537099183187828613178328176000318931165951217140170592821506566740865385136158290119200086329381220442712099312231720813734789517136548884719354373455269390849236482675674000924942513820394539034757356912669653490380336487859597601078486518151627202183530502731140652433493375889478720734285697697701607617354558929542231435665203143577848901812406955782069455272443395219849686616474990090377023929057621828927311907635093273053517758252662516757681302384353665510911380925035459074759479478649262455696543946875991949083912083907207166998525036695989212972258535355212917640199890152366293489233705757406097611175211868151086794172283040487962055831257327045266470026971156581630962471922891959561450266334192789950427799363383536587872742640641602547706611242374449068942131124763834237268761620027539218256404316740613724457010389658239835408957780415157047509852825629469472679769055783797598116791239227074531122832748877782837874540151753098284028098250103897197379689357285152001838758636595052115625358934025483574136954021968241791672241589549984863242399570772728756500145541895240958724836365991585898431362690415167098182224259943356112941118753603177010912791248203374082594083018217012544558348469349401102625548893826024030463250500149856156439011098612105824292457881683161208914795639842836507300754542228856293395301028569412108963257300959037747518839597359216345451086633521971044620020784259753636111174151175080427163269127881913994784539503599533029404922507101220361915647896557601603060527719949424354134161007670565001432548863573673280139636821824692689335458979196187065516397077897531863396312994295143878441858844756666557104126271999019792871509887129791061041071161140507324448655168693388602357968807218684701274481545778191722933443847749323394710703126674765917900185183397033294424402053203497035717246537072189295857372059151355947895001294997314769756300696290937837988904806143497586436539485591879625142739929551582258211256392996663597121077250328657266166795179550392797146102277372923342610056207489313716837715928122203303094575625807405284533396541764435341672452696855048464058617015351863849267959840320736381446630028841293027958668974151591337907829623158514781322625640644932930601278969323739408041143136870251267149129625160208529779222668695777931498867491043803078753202770182406420056267089257561073799581530007078705694661211863407281332349832653089220870358811432183892417097314952618329040561727302621664295019703013623392132456162074051926293833919736572141380329740571803640109760389498210813390329318051466045637370102641075864925326274415783733139369718460470721464687152797439088989110522383406992256183623403552873889590792323003824941646249225858990830342093793095675769366343159289316954112868295736965352611810883143799723845331708730603361265927814143576172107283905125423753150933309727004028837714019227615777913175599259921147707229004769221869722784754659766629390089355773496434087270635030785431642891342209358218386664334061060818475340648653939878941160343423840104630264806159385848363048135691030613655431842518741244951819099021704344011285185974546634601170393035301625539337122725756372163610922956473950190014847133920144463476900587406906676400113539677556528551350274384105372761780059577431625551704936146545653916521571076351195865427439169045432233936786835130160443297463795406964099545129938249117571578178160581104743165792586569044563945728436532932532435459838199693658303155855912468525193381252889476100832042265664166033681842934864134317295763965787132327808410257385553471314697858737309676362511457920167020489150136486421510688363642848197864377147644479588934778004545069444405269016751930544065475159340534447890385951279780682496865820398517955027972405575592509004839004324167080334743240883324003723653983996348145432299952006864650033048035959010471465663446498260502718763471569129450575552604950415113931596620263998398073073080419455189325874578293638859473440522169683914855410376003850477889733731008324027203713662253130433350871312207608194004016199353668668373730752528646256518928873555317437437247028750505814237550952302096450288914165848230079234349109907447337331207546906550264411034758554500592387734833760903493294033821935965239109698140340457577574164113372013246928759187511430709654242165131397680472581618569684198963579400177767067606366707673194313416529770926028377226282535547058033080481038445008060921426211880425790279849139525820197450003314559414233622355155130795861210403964575396335343926422885361725829454379665408047107873147878523586034349288458874547788104544838832593388299140381460330808780112726115580545081664293645259016207960142812163676042675508455328349568033112980456275324448706173802104734843202627027657697221396183263188484735731033061728154701976956447292334677935753977291293801586024337381344937770593597366205530983471601390296048375861298212228789304413224732176604329889211823491344017203930798984506002712438641002164335616412399841767656536189627368811278985149747783442583901488601565762442234405547892842814983124861952395855888881001896997645586036764816739985227652675706373697889192711372160988545523993936122093317049939340732292341332352976553470653634020073305472743031938110414806444335814449230863955685561142520550259017571515774532012492646456793883924366818465315201155095447188361841842550573387211646049863471766929761455268605171577195676374727449788838008675344976029670367991979058713894350423968627548050436793683602855207327811956484511119076271211851717154778252319871449520663326626375008202899889380840841964529025965726798370085062709684511089571962815416140704787665124441744557127655738807039278527700706851235674437758085322222600586576730239413986703784392573341793926176454377890515163488023081990483196528862094228779086256758128793367383053230077697095115692055497637090594765811216198502792788988882675227636305837956520111924289870975067554133330065421356718897178318719208612003919759640422204178483794734913248022371600128381991885397726351705635791194479847189163153098036661361563537094050482399293361519762085330838659782449196311017973539311803805325840908917308549579129702662739954334823946549750226211720110954078099862151808888911464262906886479680593744275077381774567495068220814492260134376030780885848801649161458514048223410694145480307266515204113058429707997151073938176325449778706070146112115680548831091033123204058738817274465113163521551028747612876665099136391069982267065690204849579891429067336461927056619827690261434588187287097099637375805868820336717153965000653822993537088167919868889355537677250190578350820334050019165552137057876168465981884317668114426737587376681973390880771567620080837523718678849925124459037472393452692779790289016419684381489835665721471911673304213078357766381012985938171246245141188494532154798675423154572571319259543331655769458479155534638197764414850248513895649334638409568795735281020879906622756237436329392873685372927811331921643058343140477662353953826859456933819873203043594917423088463732499689626112367394768768963830980460270402984578289270844159646471501611531410911808535620907854757623317473097030162334745512690743554894673013258721140868894699335774123966834693443884574125762375345620297306347634934812181630087517738169278654405216028784491012928447020784901231872053360173976286551778377039697553271224875790938854981794893841633434872461614842081653267375550276193883445070827751859531300900265570079271807426040524887993397032710067963584882953270632755038545261973604586270054239833567894996609685336947978938664651529200404558323878614963406080045817656547917875096307675924421952911689903798784412006697995937908138109112517644525313324120155427368146437349195109225645475510407177528622723714674086058274318161704279672063190256452918301557666710509142375776509498901071989899474668422732766208816043277388118547443513857294346529590601440790117812758174831600304114415449484573630318039117674763868493276222551560025120958210622805838611327471131257975403156575360100471789793856197550758095200665991196497604406315691922213555581129010901274265705135571062474574518404366483121610629738149989953550858701192043840094120345339077327110752257299381974912298695035102137072955385386124600299070984083209234412029404314664925158256069608084946412870215956283631360130285466347195151977764822216825418343664063586724184703491085619605126243925780961854389141311962354538370411062814015485068905542904815312443014792728089335718197183409146660065634150256894943169454522330148805769937547386970523941835790861954262130101042106071528487951190307150857756168181385418258951585447013594535428070962904927163356016925146197517530780584974628018036341238501389811001195834359490859096450627230156110340432426627768197746740599980837046415097051224765711662015742476282869540372601324429153236858076916865941662538993241576147440161536090702911376012291557209240531796351055039586649511037711750813994825756563848975650093303580219713883520343906776033115648571374507650447176658415190446741809497588128721695862868435402996703947565411683425937864883580306847198407388168841959322244942116010775363282975373117503781850747399009321438696609064762046539898698695002603154829665131492368239518414308807153399193932053538569936971828914148478734282455549889336128159999959663322989436687597982962847516190289272768755063822074185635802202824322010517754861617376603400332708233436071214579326840661545595895308766409509478960338985231738352439176619333108699175973579405809098287521136669427113437739542880222242990318129149798710615096834638185807838262551005339012237848448424725955618782034283144393968854528431800938893755363708149529229219343780844321298541146570307267690929842440590720749583820502879420935363590485565523332627695635330557073095635637938538714363743963818073852577885009042636772299439708794718007797202161444765889803679298722409217896954610858694987604716262313761540598614898449377303619512184197050004972811639892380981338417306085404586999836657230873568034558939754877913894600890816641663893971191702694996589351377422934723145738710903397940586937982470421737792829896101957792808226505708932157012251075437985422936474500903393803783677089454808760690495580503936802705147452806404898243498300341513011300057855045705719615214525920100848302823582098654898603219813686847345106502537365950542593807240854618386829670821804782022702374407782824191774615547244821362843586085520851671449961717591186545917112254859034567662102205504554719203781012155452764771474331584592887836882758088820298059238205705505867309038495280644878886816361184822579529904483212798273833465475362688107104190784832872989179642016548677194317143848352929352162026044659314673143436803189170042278460225458366173294942381518627243675560510060165823610155788694480177516739644551848657994874417890738428026303237631557488616082948704715236450430412361299645758295392514558177882039817541885434978696957858521582498704565121246619951280430290556039235237239223307866967515942175031696995193114637312823825742807922688452530697949976391140384283426392521790973248801169924432662623195363900244542300441635867710685718237101878288810248174192127544940226298285488774238752239509759634101620617334680438841091606493431385242535501580008495109743013284800680549290137830370099054904024735617427602755113007669341754814284417286724291796956846671905661826914696287807652481202778266387522823274252661619810628818571162882483653743297280888686022528356600468762481479067008586993348918616186995170791592276162672576586384653097267825627455222181625787467778239796750503541359944354054353868572429248806373726990124883505862885506820852053858090312391942680478837345473340633524124652240775671113703946550050753534693989120477081521113217339683809896038413655770852524194192928836129864940293214001770511534257386289655994103318262756896136495432426346497945230012392280164024052920733687824322794527740681291166643162829204431541051131824903161465362893358138170321149960839364899107680046852931221443796498599258784988605348665779924689312272069405873393812361178588003212044700796307095355035138453994857560982616099262963179916562973960931053152922901006971435468770610629547657947546148461799796412266249335311428548666987569691322983759597902849510402140363413201461976256752541120467540275822264640875496953419580549324122292409617304081274604319847094720290508213580626612376624436130032035051940586532523792494278036482272674057730427679824285320650275103160605324387827993769702151219071686826107994265315167185732923887562976431726743901902509822676087551638997795282901511908641074231975904448634534292608658084431222939715536372581045955060863951852692181856442554657091083690185479893695107244066714121420038093480267359564413803361423884572430034263963024955837799492946512065209299652496709616910159263799015455161171880475884705856898593517917918011209022472074076913032500707852725984351529791892573965864400750386244475109475331678475108737180845517428185014731153360284142115551802318077354885343440246717283099983007037213079529232776873638194016406970160519610768691015040354533424911944353558514561546319609894182926228152534914423106901855391770880426434605438514256329754628275548007646323724537912074573175530618060558348777786474124256746522558888211110691420848211204727938536850711499316591163119282320862503776877298973251648663880359429732663913174093305157913969467975459335324134456665122407090511605175664599010702012910646378994350755464774027109039810748746259285133513554062878970943660373806715806507177991876977495840371778453187870704482181281272683501672796266050988625901808815482136102972067424138677837032602047578638703947469695909503396169526868105282367722498849899911394595733850247584651514779558176152450181192843280907440460557090143654818891499856454729551966121116098430787187383452386896764339613030416641805249808631286780640456086951729227999444152723506034177588305897030220467906276802781700277212329423803131858501596818573465659390433010218345071818324161493269377550870868824518417943738049851853342682518794946950744060430568905869225609653776863658946530911684744282804571107229562152582460866769442383790169506973156667546911102902407635226632522055015064338346669625949270966763428057266036928844770156285756736311056041543841125262951347512531777215172716559099500212229823719095943965762502306403771532568085568474062040783377158787035897237960045467979718387228294948417855325583470376490178722260231794547820596993549020180581171469634844144942431859681935680119545279582462471648151768983607670532650601710176824133798964966765211133449417503878413534638579842741885237844402984532349325343179845949033254228175447894274205536691839129859583083256831770339253057978255133723369742163501628240918783424104125608401566797369474241246364624746321223691276803188947516270522357121188929256949252728766270659187951073246081018112568185564950178590100749804748002439677973559519241455100585924127933257885389742580461549174964273739037288021995557778095400740357624643897596070000926818002555889993523931592376566070400333624822755995280715430737898389872945645583448935770413314275459341222174378125536186830050218404945043521998426166986472321521624146400558939493923354116840091914584317696542330743485044436042734782557106002230786436358648493139787080065402545853389238005956438489762568103055782885283840504690992361049744564083544605054801721187994841690627754868673895554076399914714028286096591289409138689924405045744223404876353293346491521979030583193264094327958778806928646684952803127667798519932331234986355333957246178525889501641981002830330924580227512170724889140504699575109347528278554696833507369029107852076663526973274662827832951116019166592961377611449540710566073812111493954827985263570871133751837420601548931177040188227493416883704871198151536220146155679776287356179445032797283851597036640919872510531426761175510996578272792017641452902910748644613651734936388096005656128345825953838783988573221244153368801629024288231691966693991487040740109894509773046153874037827853763103038257034846281583267447074344507344242870291601996205152708882993814976493428073130200861798122671988774961524483511630697947635894145324917022748170327251616390746210444090498017148340750088491724372815357819111861602656236467269168262292171178354842279817716702212560273712964686110256964744866539863812833121340820075667357028240994333067157122604847254059675828514505958581266242017208215852218426219808785276159593522543632296322246436942791443319097317155977221803902915126845629947791445205908487560896095454247087453480745753996617512177861741960255761146560796934829714516434594563505726607408721944880517841842437748407245737718867097459671305875668008158484007494431339275801122007308321018726694294030896216309940594170799501853378420160811772408486559922737361005127282140754999094011371714455665684763474466303155845139532116411587046075059432176871802499384001919510531091984221515633290943826909873880244312661816416989234835074753331778632464915979870946434963415000312194932855208131614827641557969127183495147228216541833663273487835446279943931537653227555268283371734636057417426525258583460912125948302010340390990141786957882939468172029770300803673916140251255779537083260367041292475228714002189551338806848063382277616222670110108201542924593256630036411822862911376123523691420330432026200790269780746199410456015582963901722149608779346023435398064953431359133363423215683304611414629424219352560121215883364310339447945581907564211122481885640510705019643142947905515145002384706639387735337573209798011854865963551621580876972187911505844299021039588254409591136007786538373137531183755397472257320992416318138001448165269606554657636323385299000840751610818636785560023652144163132309495029247381459185991275100122244294763033111722396644155984081051748780057939461465089156089756032554467361705095605674182551709753990883111182311400081592862113669052456156206038823862313109403705572314317223116659779057034504450576758526187662461860057226297201520076891744055540441949594309598783709994478617641780432108940484783418713041910649437847093080251258124315000201636911478806313258043527206668650288998613140601814596285907712202368638211008286530923445263426355355091736381521643383407896538825081847219641585630548808154906339958097272242947519700758552010307026271797693674848935483528879377206860092258610527254841305621202521461358373341610058081094008212965110831775719557964020886060278347240681795446641391693410703447865729245022111344587606370582056827731017595256949535905729567669978086159759791953650553689292609337510839089499271478380490271213705571800897187461296667460930738518748496440679027737131559019071019313795967417352108285856197599516070252794987585964713496752336144510101693711128730058782441796886305807109592822095819820823753232964554140694991841646821628396824745068531103541520024427907105263066165255891599625830952474340800766609121266616655595461496124575534938648410838099606342069165956879999657153153509171998677993693936513482259186707363782777422709024507549859851580195017581569536609826786281774764213294403188155147393711607899268374358795217400627690521691264100806456899101567042791397069021215939441325585441091341426956660095794371061508939828819650530102008796792842272873355267411490217733533969614953034698834687089907550039379574345884869389160314359465294628187520052661475825324839804200520016774953260921991356355625953867275217896088875466553810735330024230631381464572482627703072870616004831496620943317199396277562386348999147464219967662113358666289903896335134081303269672673224259266045115854401177471965051756561033588296810526054454664878696051682500509584435355777884335835379940005657454698441295962894176348425968646782397142509681159997085208294902603449136055444074421110712740468872485479138490352480483164258185396980556853204065074844003119719720778680725994268486064688405414194603126292391803280241292504100459658001401292192714477017717371860961251910058515437014358608421633134068728054783518329449782935469256716220166017590986050650667782162678235259648193688309899144651312613554829378797653057401494792476836214792222359306030721969401334110669090065077902881528497163519112756956913134046484429004296068686766082248085318511955654864895306443586132269812777270365500687194923760587068025865328398181628904799729073129750260813624649814845635563917749703871646959583626705510874571538190221964090647323318423926791275623363233242694043529610904618424590781309099115271284725813519873843377244646727662139151636066524164430301270271197960772324634432870105951354402017111232657967160053381195583458060386843009884512077867555878703532387745291100791976678927009830585952149594937658548683993553891219982997411620507027731830347772239539322115641684396704738577089750211746891909440705568734095588033586656939566962745635628975639990384523685659099363074329496103011172904268265406602034771243224209319442507857254655514874899974201384128113775815191267787020317247854991438227567018344421776194055086663224466256184706800049344167024667488068153836523624575353809624432015050124708484977369703460605293476590058749089958983062384832230497072822621777684128528511487370780051811817904533011557198899677540958890067584430658568655108736378756085744398813717225857562629023040009049714928889963877967353365182186814707339126167934619057536738269294959919256481632777335328006292680720367853402418737465313558092818589270698689331181234482898883734008972273287021109781199859914781206574097165258220256291930720631075781613413072593373849358760559505664540729553107503095147450187542135097275862206145256688332542405991300732101941527042465321145571591070544884709633671921390101528628877089378014989496113615818901980538819226868510646785331668290041075417013920450739799687233406915769823241921580790900022775896675456147380598595892921809959239494538263366574316396631498466825370810499377119198176530554733491502284103713358190075894869188405135525300744596980954890581733086344262771417383496455970098547633090390963384923393152553512998016593203852539197699136630712658439460492783324628530117960552865978891353578877494538644729976479612320374334932250441998843458466043283748472208472648809807487706512714167905898523740238169908368158719235075903929363356683201289706108425577675766763254382239068132596216135063508929152520252818434688598141877112774537957945544315027770499319145947783942992593822736103526782025214871103455042543599221080746001483679352946727257271701798556106024978503046724282302283965681036033318089032030562136911072652427123790611786030956685027786977048155987119674098787082897749816710184823438285224277092229793603994326053369945291947477902180822389168746072546824169964342884917617172626349046300580177663585328405883298311947842439583961099042151613830324521942365767589113818486740249538373153888202467294708355851896395941105341855939851944225051371259097905947558712631674127520925806996283270935928764469290853627070551407750712861434979271481490229388359031139784783934968997700143693692212044309357323186474483273862569384158464344350960594221928031277497836237700009485672752926033975876513779499144707328094596626196579411520869190641129615185722087610755403240581112682483310197495833390721202322836185894753050543516048017214669613781095077815718386297613818261145170161677210217530305519826583426052110444320313460645939150044997940631319799628854560295214918871102600104187726509233437081612683833251489214000216265903687223763766826227229517316622954196661546070718851730554223577075191754453321400224374142323356701469977371810212891217072491488181281374094571859140435201595472419995031047857423964608443370918882125445537863268025219727124986580577179350942312942258813290728846254403018693580093105766403293003023046648284281653419995326975092535408205008398417749144929390448597531290724230990523899950009779903398534224433558145176044422125545512685425180207950521399545764522384176280705603523313041718632712952770526029881246339050311513908400248924819063379299644593960873612760128916833598171462631202466147408537634598654665878145326238020947071772873446255387135538960244927459045296026935843935549222977222648538412278896536608506114590267928012430989030054598795131764425366636251956914033791482411540633364065941047080259384448295147974750764161758816096741091382972543347731079682910174500840115775563049314326452358969961458548262236166452664990035878089909752639346742188571072209248412400123309221624805886319141478595759158299600402819639807801513699420342151318463255456678817272691402741226839094204191426735357014891815815241985608480973174689281365655152008695719683761496442328747819366158853749547649399122847347722517831682414415155481123770544787119311193028546721825218233809110674093509199822160735354816006993400396630291461316418018996009906625853335929057398582884867616035491293681684505964025009771781035178803018413613352433557151749726302814149956645599714514567945195769286647395901324116145463713703363717219561493131834033171535891442070532606187097693225894731358459827389938629249110017569609787927917889017997812505403839235249561123234292286185121431988026660444881575809959859421016129397845678342086637409015945082661357169066988732041921605901893282683900674151699848003867052289270246769658945431707398470144022872509333444987031644247139655782696306739053368458447978111060342393255190093313233392112888060577661832007433348546216730960573238635703666037378506430850741483468895831008789314413539600197629752010507431474388334926809911236753542903390463429490117542084334647634733548126495943720235821236109878654888613938991332649307270742978403486637468100002320395556467649381539251816874544343124415717754680526088247812869529600650878127486480292909675179284937435565781529877820629843968704910546650765784935721620314168975294492336868173193045608009724495820137327624893017777639530824966261586555869140084730520610226280531191310579190208768852189992064410258514620691876104366899219336225818573592284235490225203769477171281067057604187055132553460322568481562403613187430486913958150658361561203685785102523537594375184679424034053077534416233300294195968133054118333814444153389408412051677450916156764736514540468653910077843194655798410339907681611952948473568072856982248642307679248101777146323060165906881339902021802198054458285266362330771669617546039070662138836725800204773393162378374215614054684262494789964868722307613535064666132179066412814042982608721171533433340227171234675482186414506443424046168404771638636808060825652098892464516852514303239380894388279264804035221490220012489136394081052504375168875687284995024532245011238229345903622535916885905182689711746332038461502620330269912751272853502587241214193968909017000836078088804471024651111185490489291488609317559532742117423770168394120243913983133638483377553993202463501462243626375174293550519318244238706760868075473440337348693550921040662536911905477626752678968795608005727942733509676343147211185010962745548363855673998824832048864392953314113969974050640565883820089399986858887206466171902616255086744460551933466873393669962173132107255494389220001944248833086102944289063085440654028853385342123338949409208071921723865253401072208978233960929433087381152133042482024231267216901289294496074929220224771824162238455636762188576477208101512171164469981545423143532570674844246142432744514783535791507141056103329847398778449896356770868695199024387805387025641874457785363411920713444006387460585105646196460066928098677013241887066981307086272053954715125718541986465572033959885448551199202465729115923718948972461436993778759698552724085277725791527620618227468756708548692976125846723369846897972160155974920013699284151879056681642934076759260251067843145507295375758557261193996850010339831862824226890981018423361972425424199145731122807568258462394823953047770466906693302389800879341588369543342093399629908435971901095543409488040180568616575172198872998532898537331761171656858412682111996240644195409897283608574940292996328305690447530860631926921071299362903775973712750258577542719741769299716713369943632037575109348811816934673014140727003756249139356270672985634470638600549346434650601413010857975761272058459375306027597233533647992346357104075186514081264032990809325228745362692549026330419295488358634083021684907088351557401981864548670929045163215782642401181442061226745989268277433975234632481015120507065243989568548637356569589332486320203204530681728882281890818693151576386539511773148141558382278996658584896304216512839286484681630202088885156710592796084045334868771880808794546990860305809228122123362106394662939878134247540512564562703584485147118640632551399385371960267977210250210490867999604657725667713271257659812554389293913569628392783280213773419162046163447393734932702003110063422270503912107780355161732907227211405418420829221993218257868492681060778195355667773918478297885427353740507115841688901442859803286332361194669123521757731892643005930136958460698114275965912774351302456048273697783991848156166325497879851090296272887858835014294249311782527177206326335899223762904282430290211148548930492024293284514348426173850914187228193416625587455928323947163322276012697696083451900273431645612398898417712476405076316815350173348130993740550225807357978469997572743414933316369925396509098512265581993996678938634320063047209889175717916724728875954913975590525763066447003170073433502362074699215587154269133254006354282131253167405377599507622248244482815053403929954734472401826864543955475230324227928352985046252589553533940055357359722113118840526140448168527974371035480002832665441535786387914934569436946355241425107237840664414916961466021302609126725783154250801632617116267470645426810736521804411547021776123748222484261733071925213781745979571648247354196222579668426886881890759818794071279798619179895845630671665026739840307158470296806217462378869597742744847790847626038269524236986084622821447423664819618573609735484529438891605611509871889853962323306666645476572926544965869018194892097933802253940050967984731795568463115457914690353438814183381671178872062762341401063751405231750883519429153088602551520849108677096625621111409086932280028071550752447094864108310023679607294695412751322905784754780569987979981183853188659411150134293627140631885160147694200675945345384301762146218682881659751066384302391153602048111112300660957357711144400440310481888284012847397451144626351102109452236851137218698727856217962921507166306127832544796992425089808322920048379181616891703587271243936803933407496287994551854952696284548312738130037292901537447655522474277488377112970864539460092827974562838649946609278438720209011426387113197522595822565398349169684018531007552709351161648360183375233354238144537323410128573059314177473462581125806923797753276517662250882610751515794552708508804441720865753390089206066477766437280801567124856196919762620704025140071365283605005501792221431262362761390009064595233526434735420397836459955342971997835660520403048195639218816499002339377815193469252346446454828738719926097878529586300613374608582851957948960807187444224057429742624478964056631095809502684373349925824733119885789060473360741007808761895526514803604050985339867383030843924145284811484266640818587890914127265812221424477930863286249950571221279999060058108027972571047407417308735292777351654220628211856816477999452406343748557754010707863018215292515187535959085199791486018250581607361361434310063698304197875830445819080857352241624429255297987416860457389929966141984342809281865008916685349660949346712157237654547307546179249490615725283206822668637960655755659934798093881956925725516651499935502919126396590330741744374211013630443314112935796729028812765380690408770366598079835452624917272332373424596425406973090273527026312469554428475202601168464064506123096884127993303933033316636441033015997245147640815512594580716007740093992023507475995165768142589527842730954233441770571388197164596854817499355482880024636875092083773081986197978667401220303112809262645461171063624473976258392789926725622120112467521572470622795502923150498105664326540141044379884044638355714359923998299767899129788970386230585213399164771183645794170746790490173898846230282435142128056354049389948669548268864884700861780885332315262483804914362396615036557338502886713148875961741671211482527011779589381262381938615042329385480901169857488280320506607997895776831868275181821013225833005789152053915595057850691044778860993116502287107923109757361216556164902539343194873668514143855739807593961394356802910069047906084722514723943110870954383698389154758191385864817766162203977623957444217804996343257329262831429351980776929957245733482677915746609639948514701813478307110527723629011063594594071859349068160613472082837560796181240980711132437657711521902314863132576445410627254169141002160189872242113731627002322975762346507950213998056349999801297982297768568326534107134050925098949524709629176680225066316730105636771412670662911629862379603076594536513164208948629320763143454808993974245547838151934414285405978883637199273256375504808750472925037722595112891024693659138343849804393968194445574503395839511475969150956539606361922229141184129477361778866372884489487174444458263609358771905622053168956800153076161601235249064285584751035239868556224497414038648474068909706852988201323141449344703296401927747146376158916880778798851019621610912557874707363789231439852353576036956987118661260576146436268957146116630770771719140633200883610999357435183271119891954493103005008879731860689978261518041526976244845599086855143802315882512327278057866707806553179277163491912366718167073501856631657578919708420862492722687778325775007626870225180344846744647973560099056425187528750271284997711156144365157766782955239144679752369015603376887077716516439499261053754704308488868779612087422462241653664150141367669988891326008767230809163987001060599777883697132099206344462604956745608352449218217947187974763003852760427207528446577417359045135509863567277813287707767091118479720265204387223145775648043040388280492362121848244908971804892420815526293419550014773859703563740803966518253979590121383425766689096315800974458389423861094432571515651568995251897965888857634475378214656052055868803863879274471332465177328311236241492603158299382960416462745769657512525536574807975549607013130323792826765684403626268705761323222413334141993734206536148175437485822965594273600383160786438558869186657536957302487409659544196025984692056179518742225056112386259960647184905658952235838399544020385416571874785644744905042541094046235312302646271910817866964233835212215545910449689639442615171805631579928411072497608145851505697011683044468385473991528005194094800986690970322854093550003333131279611442195019131798102244548938164000702361219295167980559677714415712098222339777757445532378384916994564000180949201424337527449104865597496779575642774178130353285957613915433595834782735943494714584822818382440534237540889434317834348507128541878401114857779210992371712035642762427165871775055173869827463306204709752774617033781978207789482023208846125037071235349082706731149464381571202379837933552753199560317157971080249655563408982068332194902816142483784570361440394567668374009042425497173032472896464780069778574057574372519249228987482830085465864874998793808493264050594178790660870344084781890636328943169864586884193010609039161836201365828039734498274833923369408922529534111955845735943912955327861875288355598381282779399107264870704408450165096238621188947186910600325058162860993972227402164598171709889258401853006036831080147929097394977680394199752930537702605258975369796066762660481103680079007768661414877746654092034756336929823464893622889671632829501281170110895819825554292219559230040158396009594303460873670748340469291140575222346157923601626687903646741275058202211420618943614594479060159683732575516470200748156681434687436261874004578463776469251731042171487747436520841563054567341063324726498657121662785146856075176592724623182667522207578724983166808477221118669387500998233102399022191815245040809565248160713186471751939585157632199604265328563387278188507120035292645337617237420000996953594126826587468902343518617418105564606786320897390576962739225034705149143873561039335668881837667818389025825236667471877289525094596112624927376433813076034913796960618788829771647275719286242174775267028418240699539865162131978416009333798182584673409916687272148271207088121002831826919540539019733743811078623345415438419212939149400258088227640385473680751714167956279772077888641142785265937663320527034702893965299213978355288466463553841182236665316748891172952935465325277510951938278744645529720410064412351170243397890457384329401148849423422445526838834683541949452146685131776295123235025431080227819316753837613965277695708985991971399235299316498972774754440688909870160399720207823913664038199542507017237888580843437732301003875328675077571494908227650370202837921093141755163668705674850423061379519189820155765524921113919144974056144698569768778740580275852054051906122279365252850025641212105842128861732707608765485169881229788999450755951210536450860278622158890627893939445424331095466722796880167837541344194640744526262844962823341952199861275101128382105979267258041248406874739426575371676556985271585402942858514622971888797322761432004676169246389555678178580615819208885077194718337601756175625303286126775932163203358931095033135451885422249193621756434274758608518438479336850547116410776916984447542028017164215563447167893750787149780140419426302173213274145411049661230028875326395943400757973956101901146514264648492629790447287054132060570064080106138856845349018525664739454280472641061865531775763805285327390440625500451198748788881832558219353787056468647632910757183383046120244418256098816748214919461305233680765456949774641651876948266816916735955516222817095821526446338597276498670393382596157002755859245355960526085519924114754260282388730835194770016567393057668313530619950523880825840410443562335322586336745662333097595373409444181628956336550121468845242196593959855361975259350742954839389194682875452226509642732891788340989384542441307660351954834139537408545539480532235833023907249907787163809115862694464930363081335149640123494764680946167662805167984401471186572158907432244335604490269937242600476156355261564935449230825265099365662345949670781606662949068620034337285658399311184548995669612043319897831174613798291858240677716323712539887854296143981378188351797348552112432740499010754260691683172298825938164686943590931695849403046877130416807833288263042434429821363171901158840710061027068523699565896731519885551210641659455396884452234367071593215665198121473683393203472176136708235261591625232164584705622024959342411658391801119103947880975356481536599439888403930484378266164683861121107579938929301436328648731756872404078891538890136078298270984397136115254032383040878420624618803885110683918101663957767949889989184692120265770193571834182706724006848489140263063245476817991535153642699674585925907717214899591170864404402378436018737284246226263017171110281673863956972586513011520203336235706015230526482965254438900242435011117825457163065523082780968125852365427222494650456665102975647301955123513991981039253454257597419533493387198493775285340036529837631957944732386852963039288482768943330430550598396657608864330916648617961555982235573015106238929120462338434678721505511068779873877601271835334459348912541481992079369814534896227584896798648178204296143135859180613121230309795392909482220425297889089028963980526497439048544677992406349576802135121553894026528915707366162054488158279673585417995334574411065268115142866290049305622734291468513120916736895493543769776055516665449903301855790273940295922047815238767522819722532284554401441797043401773699773109781379362514626380943841442172346827849702321729602222021684989695738126595597888552162324322841124329447036723098192887700581726251627232446881215167821185523711738396124130086448209451664918218520787563537309736663598424100679388591444804204277752401247839163290656242977742431841526488138361043934582970238306815311649135913753392134704451895157621190512158677387176906422253134025172301930228135577617748418418483897609927616888197348617492267254065835545919790932992331018081554177432342936996348382775455707413413453766574423376934116939596920989087956834761223210353590318456679278635833411602769624180813067144672779862600196017367387091670738527503657966819743107761654649500331502000813291922750693355085299387782578775094945761515695079418082495110838482963130795465910605395957964957293040206043314432043517745627448616588022422431657207831613616733683176928006887510445808809149840999171219302507886465233190585884017943096734340163407027109746819969714285925918301977720169539252589235175766165440198494905400790454100654446836783846139044357787030142064981284782111382854987709597078243376103920322425956238710738453137442485258715720950803865570382862840808954146241096631646902004489854524724807654856716659088090745391712391952123580518013477480594935081177363751878105621577474541039340131719278813085248319921286970117879429286798518986445846438822253202789236858482174891747592509139548299545909433357188165461675667173531012505802449252268626098314038889248719803193150324394455215007683811481711476350266814150387746704110627607837414471011475351954694624634008359198813986957970403921765634978099278336711042504703488502070364243376271323869200628789995007142192371028577820321055361252819393272231071243449933243519971067678022298230734282603830343273948108660894744452079806181139803762951541905170694628585995033203151778299028183870786660107405784397266673283649997757541601631073991196955961876367564381109440909964695816239422315840581457133065774251218109410350059316653309993257492030997827673849497433968106101881864863902100722462929582017200931616829058788538345146403593258817766184960639925440690152110693034983957115730569599606800839575752607767307205512929774625099717360739872619607417722309399156952490463777154394932758545951695469534690116234516146004872219929315347731878985433415036647475401129246729204969620192032692128418408702826822260186119884621695959002359346108914467542524550058234349667167072037768771290517137145970700107968488681113428244135535595896463746369871596593633158779458663861594234720147714431769255920633606611507407041736213951646567634567968053491373340262199281663689332240352273804402273492166210349924155534984875032019025145227999662510706668443571287271669423496639838802492068269926842954333735286450307105641550712887482521291346037501221522397672141293583860891305679432959988289617574051503250852670256548096019253135220992986433303997531191153483117386215750611146913091457401182216013748496116339393764534818288823984341612342046367690038318822330137248222524874849779845364041483398813969300690435752628695630260945672391642705366495717136239290350248209100263288482202544481253524751007374336080953498758622157817013208489935865294204179215224298129149313693380941809019105401859897919707663460919687533221266029570009317246581662959992387367746708917023663540806981198665895849123706793849167990282571695446962379088373720500055782207994642804642014909760116181558523081818159272642404845171720813822699293127330851153512651731580211904584783595448017330533309470753698060535932002255683451440324579721308894393031563630775510435892396903182527168878344623745720837538769860696528001625767756491331698463715523327705760389190956939834289485337425134024365681178043279294235576644846014413599103188344996902892683891201728002424467986593291728778211580401956993204956391786160133898495050969989240664068824536378075048577185069113430407695201264124066487677896510207269499709892671313683406503653687080433391222425713632782726459553107355338657356840292789387715314112896151172623922689488991184631150263311321382556070024443114252649841836544688191393116364517070214776127923303009045176522951693164645707494765753729555411242813991788269289482008847494982318076460139328149635116282271409180632658215118990626627712491290026657005998471043268566137728619108115548305157746956745034888467377222966279931457380517408562484860514067782827850917861851828329486055982878633714424525263496780615664503139567768468218941718163245924663664416858903247715419135083551250800638339744042994807770195684663078984541452052500639623941084785164773304383864781346143060460269628760722045705603729454265094402500386142093899623949126401346807818365736527373698554075885730469286968440128136639291021499224584689258294705978333453841382298996147751462374849924357884267599126096190330333788446728885703035480133854588818272706621811041993591050534401778174880840897559981740875661162297180454694694458972778218747025144187405274960619974446640204211070907047025931285446387873079900403052771712785384050811645574709787378925569212182044010860970773548210647804523179280362891565123902575751813023702388286110613939531391439999645533017718260343040090535521329652513323253480944696683671176484650048765146223064357215806879112439702862262402072612022750307822092846529917236433470527816064754680416124554992490180112402139412808504331485334049218964983730762736144854975310042383039351216856732598733632351727583753783840791374159288069709968536698694469427337441122349105926462061811957049468883626248520942654302623512666245605978402555685742391794620817171638037569181373880207663097806588240950769096208476741123830035393380833547283803844112294879117409346824600620902685466916746489161264235679171506976733414771534939900131661434289196992818914446134678682770864356586969612261480612158722732305239884374944631952870264281368282159371044896772564740933857175666587270383618088696655815303297121965753403760072205780240505807646180387529543290065605791618100794694856462357005619700687320617221174383889272672436487777647595809755642278756635370740607157004111149829024052866514789739890283632641177520559577445130421474305627553506117312829948126310152340112565137431921387647230310231847610480323777146574006706284578840158132049698594058410497227393964977108714718487864173309076031737418298655486878287576479347360696487922263785007447251819305642991850285397054756662235490662354279991441431815430415125052138392445291848633188664529433260407719783557259585230434333799113195582428346832435822331961979781271426272969530960693552999321574186539598428461896020444687198434568243433047484278180982061192449971357681097314519502661615363800638584920078663570501784066946097427523678398219374529706712843007049068780237127519113230502561176577370085533742068169726222091688512918033414558963558249295659913708537448948729453739919623991987620091796416930726053476851266460634945526097663941240318093647426825353690843128364014679918432606043094752523352595868906676418922617398750522053845328996516105835216343341669287192242027200587444282280206392986662019959667093772524150835925044773068814916809686115114081871098390637950106747573205460388401584826323335130918080438351051663691927185158874419943909384482839797659043050153583509841312058738690222383635165073518425036457623166451204134762253529627687616820913662301802447735304508851490834191644318147179785126247591077597605685057837313709146357106001380734440686050862421634576154496756215980879529035236629762265521028584792268013089986505792915490916791134883276919638108410209703049250646373370580677604711396985176143098213343637766638700558117519923690995307433900782780945200093046029092358321872972766755597209946592847676185607668537269534663761146983192374720317271546855289762671806216892296759376753833766053628521719060796316702041488965788264966454981795234029297782101852962485771776208692535706554919700054655231220215066811650199487949277357221817059164396915967841533636157904207167174132344634582240612465715631421927136792892852344781110186973218210543697761568814532887198175690724361166514341632734683122122266400232754271733806330235444869022368581733741734882649546950072881189447064849015300965497994891033955947091405812053186193188107529070396539668330029275038442711497242409303849930681659949340854988729016849889310753546522399152809114589556370522035865525710398541899630680101261250193344297033777186569905837400690134078607240787153998073673741499476096034093763854771111696633465839581327087236513873978413837636649565978556608958384831914128887646116363392717623415529926612161041131171184144578525036839038165859577150857270617336958636475029905079314473226736586564629625627339292063597035873532586452918315143416419380538828650110639206832351032215472963829298629205796643396248760191256656903106004611827480064017601972348549111323268859965050510296577943978611454067037237369959619570026652096871678749649388427844116546692319013783096993495379211514456651035796585657818415588677486077255074555255908265364585286968517229019275883103425984776229965566920353027299393894171633932259503739360141573114768611626162682996268019294349723423555508636589089296876513365110213854702156145962285452948922816280502039247346710234612716091958332951083056508934408197872574129957486891584353592807950414522043647091486347102859678141565977566081153263943898411908088018664461943301202812653988108530037081169648820229886566563874865023246276873510469155768648794695687411677545672341710588638631847970792010273536162011146844376162657036144951915731666354626476641228457141602317602764473504746227206486811308971689974040993399421785280401960340846012590351794363736936148613711691160695278694227507565669506335304799398544614800269405144059990677867939703093975338358588546011314609327960555018526652385619765578116301533152715058162746519181408757694697037902280499610791989283298870580445176470477495831192333545475544699100223266998918979773844110747519191691200617684986319136758670967623122387345230701719889516149066524199218143576309489789846114535461090801250137175147196665428482221361282346920979249988105573130716140399782299122717046984770781023525894901623305989177270981143901207038785967021880995032035134851602720951592099794574076490009541685112662400317551285046103583594414893206099608298529072789069338161389047426945206889158056260571976125738379349984214367309290618399093555381321069006219426235863447586671908329452668545321856970215949654816711341881902483498825771797711001352569930426962912863367457325330475918739756231499280876542413792550467746349315368585665458903001685810663127947879179096197983042576745118402562145390855486403732095599898672727516093534764672741604804306159659764465204058057713143681434520962828662345532694068937196164317816487006491846150719129649212609051077801070763514779303221518949621408496374637014560850490012494079130570866359836495997351232551686958920573640657597162266065327297132591945294901885489106681446622014205089939035558411769234509788566907217800444842746876173582988344122461195117694138227457107657872849204496752952463255370910668497511942648732548368729993835725480365538618670993522478672508450860735313290711657101258449039056304196534026536032607316254366522085938849263074259598196896812654309381658314857015254269908186281191531770129324833496598047454555540595091607340893512985557842954547311740429612468394902703867097781216752388766894590604949145613685593941825449783380113354112821413489215567470436590057261962213741058678885121419585142813082979550960881052229114688831272158552981863337992969969749570487929608166930238068854796799151310123961898769891123565670892299700320376096536334053133554601741116522214328679756639412923700155659267833416045841399440856981415265296132160247204455561677752699339890591009008946621545751544312041306826182966303032480299378743103078963574646047061136393784107191856335268027205894337468785750575566135250865203902241013023415089030713592990200776450646176500204673291742611770750779025141209926913987730069796324089718333945195883808273654967795058648971008083050892001281329718904247819144673542989284352642657878566663639613073959228761044612390421442593775764835441819118986312889591436156862792461139139832767023256111507376351532405602823874246647430439359470057885454815326397165414584104035397253733489578047525579910951772646546831023177308939033782924902923664168265859229363565144983013815635330409465966102701851196664958233963012624291136057549306759651218384670487814918272208221959629161036784718130690808545041491916913895555549934208958785804718869164468724562180956882766284251307350041809107598149271441738684593339021930023422406920882991446923231409193537766606830196436806415901213560066269828208688502763379195264818650151218468977192424466238257858350665807263765178816361781132287515091159512297184553401017095079346959356550666978324425455988276144815842755996394374317609243456217975074389626012406111602624654067932766075968154064110774368222068111315861047210554447349648028311272528513141616363056799445331579420445771289792037923550389627045865341027857337743303836271856271984524015362454250262921739985554864803808235133653095678442795590122907057107146892902003631731579420134115881404853014695074259101344346399931262146587330089842290113128588988249368764528187783495492386523770750305202114614365966882120640823056137368281954149760684663457688360519509175991865017967122433870430981012148348987474106558436001765487239917823898439443267904631857894893966141933623594585656124385594736226823876587169145811459126613852787953036089768203570454387902747973158243856666630072963022044773925852675243207765616349549030829679219820713051285926243276175798484209216540544862374709403684332347091137937039197207338678671976043228962711103378099407991750257652555597816240188193022713391669653948072188670645057127411480773713733959200269369975849600134372172584188070063875597569666379120162902460452409332076660029973329164522526002638796411705917734100755641166179535364200599847024532973776510065262163341436788327162317437529074558586403893732080048022979637280249553317720345694292335338353667869243023228161044514979924009397643554431079448003718485830840961075326003411317233557604624098854457156113703417826291042136557278381371998818830745863474383575112534857043496456985857382074697295525946022015766744381832872608693232199915616930225161449271474789811509390765795137486102920183870178742815855433998457635335525478161145743975930373304006687472525228368063335291486381881813622400985067739014111635026957113223812821282421163973258928492282440079063964214340292344202341722596171527054506213100165434455620863807607198369643235703326431237548315319769483497516353760683652619496580199990861158274025689644324956613125105986477348817898883749523807062413400065721722815734276215451197657247747014184243936231521458521110221996741273688223791222947506101978916820464138578455170220471830735629854822750081227295144654023131583220767340488345379965980504527735252291679919460396516510713750845179085379445947550613019062663969181880357618629749056671954397240453194840416156886002098023901779284888552608560262232388163324896932640156367841496811546929510271977209091636472123997470048340227337950315074820238455945665631768543931036301704461065650199614304174347506048063170899893716637042965088667429531885478781149100933736494914403823021388609277559430464970989134038655291260428947566638961628314690785947196897783428156920502354321656844086144625801202221912227485024796649929586345898472882660692878598789421098470888429509426962201176135414114476580371489153843675013696388330130891937832442872666155916231769771874025755454650606432630168000460653699977010816066693226322654696881577083104806372829645700090848064792968973297183306666482178074356415419658177821089582819201900293019625132857597410124740001466360082808877457641811416912250828150977149227959254574091612624321867346077936786695679469932980314346076086484683818779816066290265240005660188655139837823102448495202423473231507695221995476329074733627990485225353318860644614059936037572932335015267842383139933073416466569788231559318827522702901837287188692964780724236339136579015754161827810572993928786552397215965265348051755759784189484515049533266480280874089191290511092069030685154372010076728834853600004920961573406460622737172317464903185677045052204967324977253413990908674637426496315186519107752486833785892857527187448244529260482257412122672788991561877481242817314212553434898735127378528554276459938868001496795215063287332815803890468841752782585465549505626207555433692665379735054618018392472805153532725809603731983584787146199474640574523179350778119935159747983633544648442637453171999950864871255245773414218225522018672879515723836252397778219223286950439482553506722640588128002957250706926351467426675878391809343078513246111886100146746449410461072306429393602588177113044604748014142861861935122659888182019687120461839417509957566851096160039741105251261311427743272764140803112306711894162944609701318400638288946369635092268644899799231031482503424581381724730338199706358908317066900617929872638234589949593412244967997487426284228948079112345076255729260055619974316605841229201162936044715118971057540168838675813974632874558209503442413190646618719711536660718273366056304019412219456772366630325070216613648972540293733067458201173544667403676249372220253996227049785273417374874671206522987746649906810840981827536680045072702217778665686282178342250203060451378985374822995492052593347766359727633851139610544962568731133691508913909376245151750704259880894779104139152192397427823954927645077245506447412369053606913486152618690610920443472903974829916760888730128316913577886276005053415173603354855655683604940560278461528222943840643465300857405000447216965475735561917672272768204693110250246310714133996340248493507932488492989810102213162466527240545520490509375388705600709058284059158299042334001837091597688713085942676110755364429528833704946124169694747535721861538819844584155725696269046960188197797150882102097897674735144860621218289665363131059348459542223089596082585868590719628320087817799794950063737721125584050686025364975737196065062820627503030622319966078080942448046331778661810002881368927037251653664258481644630142196592162199429619863128382587296930843387836809153655854638039152840737047099076871552690138760297447597155201190006300973498644806830159224777757216938892530564313734379571023828866647454818212513678943494580981015672313859144961137141041774807429025509450529875290611866088050253745541369263965713748615192313280783287846199044533538639645949614968601358763088143724770823666189761977755721896228395751611976143059602462612826524957699383767884532328680219777125515231698923739975787469923862767943836438290935756495220313155209326761038656218996352544647487026186342135133623850601493958005147800112735616651025670019801304328332181666403776374530790751852488431477593418626304860558095838305582889165851747706531063411876148757314121552675974235950157196887436776248891367240815759626962182514000071377499531634989763513448718830466803705489395678019760513644943878271042822527740997069369810027741972399733405671476121286508166505131980282889612187455964576858483429605941112856940418532725327141038364467443952254810779670656117126235610378780921435848937321281914845872071335038209166040336705350788520281555878298893576824161612931101416303793459977435695661541177977550913936970417372951821591105283558759595901641126554828353800462797935254637955225916397459009879143417295947470226977430533484957474559822822790623350410648878569873216314668983854636041420271710911425191007689532987685572327261489768322786677452003104738157225094473028873791806019950216262245083136749698283351635068294001287406755807554312833660723366434937001971208542769559169654120925542753311464430038264241723107152016511933757845221398477112545559890018120958290775893445426068856927199463479937779862471547023491149114124084587275803044759934720331263128245335945519549774445046892191770023501739119539018565953022777019699461041188252028237560349965894054135710011889207157622344215546841445250220633146477407241032858000915877299864062828251534247034614901340557892838964610395464664279291238125187066456668635741642555824847773043206937846821363859289410686463449964609744316378050802845063631601170968354764632025894474070323871742063374430096667177640402588621444235838250625578206191053949676632825533790107554279566150287167870013278653429806104680870950721916677046881717160929563142280649044059858892273550494157163627936131196103201479339667719181639580399926981657314819609700549060104450955815758497998533771795480172772311186240240489940213844116970262119554761412899687079823368219411736331960977142796454181105971074311531468943248992852367959937679270689475137870242398838502812108578418661284185796296138554577883505707761282128826452390233217934121632145779420581569880492905697126943936935601051162896418065515748653303543297928614583763933740216906502361960532036972176041044243725544171957326861926043988534122455551469731247922258455142034457786506816840478007278500772282127425220068554864164220085672343120774628681302656278518602058640128548824127572123495342486989759686842986895908844243851511855575669845375003024054848506258582651917125691012466601787943755656604548528251837658883060641236503662362363930237540005893109213614227490998053217151601041610009270466564457216139361703860332579277920159535731402525335011317755247072661230802256709534165782687288575988244025885325675656933022510945357139727820714740265166624291737184610827385033692112651577591727613501162900001732726514127907160769648890604589596230647001694164420051366918694139951510984345676156949574985409917153845330626362171366740875089162390154744025876431542877339939772879743347846666229978310579565554520336225076634810622589293705516234818221391146211451629146309705199360466250401084673837982322072857273931327973934636756121867345627448600790778125450919481090195653218500657392883352026936401276906296731881663572943691886245391321187459272416383893674238917013682622402251394614782270537380935693556257854105280956115253742498127245843676551873269853035947216316547135885604674339969608346817826803720281206501723285088684378330122137654665480863837969524435013880721651414826874170746030730577159949924292606589180463870178633169791856394345511490017325677369220219289263595026491217863070167163109095763271749020516466759483324762249690024717488502183008161503202010616733417845157803855542193117198185845617025349837155759341150890907170383862634760821258809179778100680059177182257708091387603480671342494844545969369117375310588532413291593261944006085984888387447052079484978524498815294519956858178500860856195895412340375723607560014022745499034378147629906089969459591482831912767442904530917442216135850960726133025440344266584103442725321739228294117320809379236858981558048269690023054326067877510048182039973379218866549429562699971106242814522067448340815911089770360985137765815786490234753846465450867910903012794562882730604435422988422237415758304797638184588653959911507175227678009024213183368336896482566213218825561778375158820640638006682433160234826683493806056727529628254781397049962819052173495769333413232365409914662137927949049021181224230510884982421686927205640918443306966383583807052361949130942300029396827881034131017618228428705650517344087958327520838298065707579383334364941342780482772760083679690883221223577369586505501914493213061660665713345681694044788534223025849344323527244313779138135925157091292443130601532015474925796331499139992572977024051580939845188934465934222325603446525644410911704773529079828610055144053101410533845458833627914304356998621266074011162160153831059193394310965574022669771316761439411014093732880701407358016656634307421662583420209861922823503633294873676419525112331718855928097929708803355324842029178755109660667312710260128685561956426473666660988056233733757452008892533994421020363039829998534033238896297173862052429933915130280354910692797919903078495734404004255285214814446518856119690671606950341065008595701144099706813919578768882046967308243752781164162567371769950220690358935230055223527909088916934757209836797226794119701903479727390809612687260177886023268279391323454690833361942671109950334740415857591574026363917085089449993666482397222622061463434303516777610887417137301143876855041463729197013312261703629872933918781658243444469495993702821718139119409840846236630040019044335171527865911751322659835435382829575579980260254858245800508445998712820434753230817575693174081051872013407598389705063292067597797647028908786116126600663316168815654440242630599638734497193130565095716717021788141650649866196417564578378343371032005640583458091117960090300244341950163748029895184649819899969454312201356763649861594106047089681868925741353736630066362677912579258858622281514120368295382131485543645932568392862934443794482847520868169663913489924569161824081485761262766687784178789269902499653560561169266458544835629291290851508817607434084494185917075375738639293416780520876121856706241800362842932229324477771603720420983928954052929122354495272480543833619924244746531394332688318862180698623414023388351371133647718003721010349439505864703276976947489078504913285609254584364386566777165347967645362582253874762115074771792840323331590037408706438338678180445043726516632923745379750638042023655846658837682014432238983384368891785183056447226393229776509650792772773065988228027702277947055686559231889546547506752336867268454749130866806966992750691935267705204461420969631008788537565240332176019295906245553819807488657054064713158036704134221394010383132172802536253578128122166914553040974486879297566295320110568923020047096970499288278556873434905861770613269451816471582831306704962274011604995640812343199764887484799261602328344745019739342634180229641137007692320478805308736203355626003529606410236711735457864149659123179379789887865073309755778201685047712225018765782390823797881983955702696601338161937551141527935497160515476652230782301806652331589196648494722748144303498225525131609522101996108787864489604151733445237897009565357295508468184569390649008661600598617641434617444919499721137191271458013302492300407188666469463305878662570769848488535520134987652612427159618675445480216251627337913896392897778521223665304021283634213228043461057936598198167166788370982892296468765963497134325563843021134807890015766530700978239073870317734753747231316735492851171555906382158183606357747184899468755029200984204753971102067741808014637033684737734749177346834876908611149235749496890631001351910198130368022287414638297269468959412482277957168683167824645237841072960531386660405589425659642560023548553013959254725920606331308111145731248261833091311093412794398505271543162249165583425392915673014635720995207382912772268533536565005883515634722655024210390082957613402270857701293568281420764711371901263687383730713865189749850671697407145007632722340345816482524110583825299969085341959272865639695408899902444004174464123416658194314098388957760429423668275028875523257202727561924189499131174962171834091030996741352944778150119471546929983939223057865813055397505138577136416875982252090266687565768046317195553604756550955600717274226115070040801749800083447304966595899412640897884090603136797002612021301456853874909523115113130255610835269830084974195496397090075887792903327144928435686647541852121153950138360208087280017714830684326502716096801061833957409702093225228184576870675392052882080350104961379725200512889301191917897249161893720305071626301098508758743252962978078991237931540338123894438734601956900351056045377707824081201966655892048272999293153064064206681452771713152133107136210873541010762250144515486690569448055501096510934462645158158605539811253407656324432472373678477259972383060926443621973124668326568874130411145307604035749688304652696537004402033828933377475360889603323042006205946284689721488677361408734501471018873489205883309444933206654565418387547121592007055435983260370102394678110313287812573550299622985355968681818419556247218167377895433399873443135338715684517985032174035236895058613763442495925322117849465349502376094486923733064927701458751776847034654428961981020244645405276754541632848353259686256151000029486099657135160826578038478729291406276856516807080435339449064916859801257978099299098036614077220167381039747979351471857822951437469648546885843566294986016139849857531090872320285235172028566031438063552504083882855996429844321240453754072291111152772927861952139081158551867450860086151034306937306061507815915801021263475025622989537159448553867790895040094667673374614335509204713034158028190489845784198300366651949579607417142802820187170309013699149242497294645568759882880390438280036704666915451025900090930049123147377743252916029434579291507296475598611615730775930730019969977543431757174091960974293155145884356061023770322527936004525634375247859159413520286370587628290505865248854734016136046359183487760454644388228234931508037977238018787333576721460592179625284381019252265199374473716478172624237432253448807289912153355307196546429234582239123572148942712155680387017568247446479689673093413922735527961492916682181699856156152638860072876169926657951806778482353057331207433563011917182988489956757330296285101458765318703316160172770698133441153217907305785440622047602919228365926708147394903611266200192801960929316121413185008794059192116260748481704923214770457991875091298206981786613525343795268847993169514225590600867610690200515205802438660006923461274558890258125077265799235984501032898851189654096350071279538367744995144287503573610330765913504318741412814425647447652478856474332572402793423613753680946200482664358904655021820210225846313848386596220293040596100526916703812430776653463487664619508471965311661241690406490769869259861137902913834160537318865670677531570312020448987863472261635585415654319626585623281559944063064054267968152903342475922251740687190923208571222642890766242744923223354450336965623417315476458170701961137260399563406257780265689973754375023240507331009764384475319667971241798213339773690425605272210694931423426083149316149827317998159792307884838228868241983654435040890066369156268875431802225938578615903930547167294842460932216818926326115424647263714963348514918860966772766563791676323640730375493125429111683905189123016968298498304469419302870005570512918310818334244183719388610753784544068622156841012442818931746764845184251282394647206813199941208915937191276267084842730709261054390632799161120210614342865180719717746239499577838353551607514397872691485210476564028260451365334479979994867094606105813811199319370146199766711059001187648298442414260211864416320379663419714782414122714728003904176873426445944883219272048279156419071337110664459388454695169698472194787418544159268656994162964588521752850529276840152300332601741753742711699366434158391874223152407249022293077607375672615195460283750663375819671158990443674747123994306131380618664438437705460513287648120976546499480091952352720744186459979248453651373153365349944418489563213591346966767896470031450521856064645683949730784168951881972339444671935903487600078790699174861447406539608789036367517591946753223247595350514510707690759033141412856616007298235323712811933599762529324623691410890351091756591849738642766809233009392960340309137611547234953742363984388696348418118637761178330364929138060737361688866781765521586856670521045359369478592081248164285221746661527083094073549290187054040114504454725686158576467273530321785531379188378228363844624520479621638004093418959783064087722030415454081947243708623857151246481626513810983600775222801603701313909836446682613582205207546998755349207840766935257376539996943350818359308678710529574279338583693106515449727460596748972307097271625131722081395702080461535518460914312793469733687762504151854209958953786341106352033914389430212158810527624270567352069057603470678155628767238027191828091230855525590128530709402398069226803565949719474692663401552194495482736979304451470673343801592784478460970694425018825177493591115052447363883083639023739357066351285064330076980962548182453799059818526439570471152067475485184985531974806308856760541573334316670529601600320678719934764279481686511895054842168350915061147624151332494839780286562949396820830764501561953059839615258613134327850268958019668741206516443431675926500198936784695700954545930288137058197639027190051424679645718902741858029447506653687129350437926137028387906996474901693626660409573979692829309527804970349400743341509241238816573724997266060247191584266594718381477010514108802215087683900965270535652012930185961530374220051435245788691588769583753016887230831926934594972074186114382067309053491370346796501025702687205825888895013078594733882525071030577172508852483621661823683750943026150584778559287268192828369710161389862734247393245671226264371033470129511109915639655211391848750345717232341600623304419930991884952610393423191419074712073361622150562943229500791118017219294835663731062767909985063627192743809343151617141654558036914738891344523821466228330048091346971209165335247137207542359872339423044870328011049862153551622655729756902695018237460062586918706573453279270047520961597867574267045326365520241842723265023685235127132962561845996503752150258937011431328140253920537057250475930134249788123391396503152664465008415774700625587809748802419493091224087940034873655565783218508539149683781795302127976784540140226447897652113061099202195580278730517201686992408167414167841175380528817601566342926281042526944719164241096017116041055345424445824171073936166850019001447204145261591242802300068175151238253408174878880747650369306840081267471654666481655400976539293218462018268327424203988571033546026423944719664309155867321071479445842658570039424359484055128890997983636744630206429414286261606120083813255669266271032669291339579704997281865518602147531938580129094909830395635493042239901354249803626795498707029919222090556405577628183685740400417214907947184949357694345324917524483703078243325106151874414915561098645296889663750709711728340801278091730953562773575259567069186437687128457543911827614238711810287004719333977794855344986982767457010755480881116732036451639051733064374404316313173046859836460254819065871235330100907779534511225277151000639343106525161999380459334777094820965041093552202521632696413935673060416178545400946731723819717680064808067698238383790359521760826739443135826885430173391721165241161636367527913483604635531684436879629291451264791529361203086483837442207871576524877181222476481250434786957922404414405047419000565014219079317440225221991253825895981121115743896512471112285490514320791293299253874043166286435306051726780210717043478783528030426077013465402552432316833767246554060689574175781292791224433362745392146301639922036424018143948804257211716677859565964499345454566444650686530006909686734701140665979910402652566923956039857646004048891901986473958561105979528484568333782818856681624649509722451145367623403134318077440697772050329349998180219803234624648116077100205908929962792997120024458279637399816022612390993796425147442958050321553720570291630163800257084767339903526683135834501606446335817737939533320711365484610684303858969104455268985230251045635731108150833442659760581958958566629490475177985543863551396476187061257573678663498523617672346383258779564128172602850639455709836005073134987424713263078471536096612872738350247609799831352715848569866240900675518118801880249494553315084698454119768670285625422266000308217057519837244535335868805271322466570020788169961463976630572855307501803450955650428659657725302518442714881339767556842819760185939653758554927109557243923622680596675795997606457537544539159262798779304270677972133755518286791224612088030180113812544885165510317929516985983088755740190436607870264661636812310510305446985080666827298066221734385102425731945746064876324901296117250474710344628170548186214088150624253619579773748066647532456763136592581157251802288558735339201849370752192648215030697515571703129468028251205258703823184670423979724278491173912626702318300091725818590941058612386140785413052017914856133513249687572925384972654645305214100027865014890241536462976897395935955851360974903333948852946050458427300470441202245435775243440090974459057711438146267294333343404284179869537806507666874655308667303868253542190975835398834946070194865261594768725957625627531863034809577762400963320814952844022708064811075864832259252306705754868199838163212746048991821432471598632928315812335649117322437289348556476028336406275669524481417543136290891323531188134953052395446613473391211556125134703769409019393190743971306879468623467906404421802670590778205551694386642651548810369772765739648346169038103764796985429063339176097855703060537804793783719641354094867140792602529611579610035433144091637790969804344562517539359903354852519380425975194648715060036122641529101446938387556135649267419089316993424343403380291558639719749290890657066755456668264541053065915100393086259282368377552664840963956211671357491992601736299510764745210774865765567873525889324743742080076520168303690705821717303255437684829946688276605142131497121001504979000171555981021481979074676643550352441407018480602300793197065535816629709454864228360587769939379693517879026497312300862591175904368857409663550498418817334917051962736801839766148223610108711814821965584763636625244818712298512800704785773581295814014487944448371737835685724884860636253028763569235597645988325421120700131872620720210246303669381316940250121572453023660079433903391831935718589742691230658445877697101475041588701037618347255605485132820243684925526057324784531629596648493168163774688187615490203623301744881858246735798398849874338304628590604804031872632827535320477885627471290055671566032891678928122260789211103748977153332237181703434810142997228034985055070581983051832589840231795467293811517593403373800738665716647613940272764572995611201676702137667002096063252063055933844940170869199229588942405699367291295501692823904551813612825680219946845164379039367576404568158626190643040605446727174481446016111657636333997276408682279296891500119143690717687508731868333529890890090636226850637672481038366573491410369242126415828518125303274900149149133180993634843658088826028415342702299146932729474718417916746722325444574184082915815682020892292351734194261898601408587300974529827426926648659969263164082236083716451832647748751761403079476061634676403685711409642925171285362962964342340228847877280415228188286541279748152164496188085037991772626507611982597161012853927199885624811307231795932646751703544947886207493775462782415515284377452241933959063584886855337212021137474603727874351411222678944293926421321396727906029119811629883047021921346370547458258477910158955616057957171739036393158196062754613418170646758811674642782217190872307368599168562537104049198620343730518220857700658555829137075911927327156153936706725686639863637295379537470984034390672943698669295040970453548518220279820960613470342654140469021737197613418548798385041088493201806373914214079152181795439267702761961482150078236933925336144884156955205618138669778046412388510647265249069243453063562057157856101236071002246925111563281738216180250486228769489755666023424028922683343891736603006790308623230325570778346000615225529314547993986493383817190208411334953375984709059790453699864076559680230275114494592007919389046306439754816031138715314183676751179241722278348089644930652442736243830720434363367159397058735790216600040154280240538523261682012048013774513446870307519105467753194972833717333207633683222402244362138912120485258107469737199969487395301061963017870133130860872865359661809833770090575383906597452614674926196460401692210931236288546322984000869624201219314582518662824456558891794072908171256262954705359815440703331616128328701165264402807642219957645644302013467117510551763707775706028753205443959582332538791317112286407771590659975736701230479124859153457893041637933895936928457746667283723040634883741099237978730522256558555323361704664024460139290052372822381102502555937790170480432242273102744657926439152972678976686197955810646941600479891538309717759255177146500760813597274574633378252122463969970815267672868502361618909116116513313541277550940118489065735395049009323131512681582054666743646912434184720169391317494641859046667524113189459862263909737222071139299680288497214392667297546087825592862697425352168200115611207329052614751268014411231293449232950797722048070501412558693543197344300433771189450520380492018944287284604767552867860134720016006920972098070546777611810702799652612318411685438451669677125641481594821646248259746952370815021591594487814731878484162673173212764401926492012038817061721816405018159845721186025341950446519717055372121315530226554616467624494757330050262973125829538504297707125969715642026768474961226050909803160076129415442309213059355497584556281124147887611453459452881294136975291624758963193372325483760631267257175728534389134864475704933123220636335175754647074031693060431596202719684506334071516819316063699133763834851227527660843826949690070050258347326017022581917016311967729031575718825330868354904991792643516087981270570561820259628586756480387413639144562807878695208375457566756483380874973039420755630752677424864887027876646660895350177237528253124805577641961143704838540180300166249344027315922462591931571563886314876479821972590955466620907308761152424281315783286874398803256391986896857576164850801225789404281345521393538443056990655609706770689886860454747122026401506718637271449255544228907372185240910798533580118383756104400226226044945426932240129859001914688804317215992066402456295957554102971652953000815067834895005616490778258521072397527150491910594549107400758020693254855055338498329174115515301157160070899249801653688683701994361014630178825837194396621234177778886938770147423563293349010971047896476993321782379146145017344365025527017690196068463665721901414567462631443846072535194769915824178193600915599791454155056547588063344192993182206219285883141599151751875226303613756239010521568187456326482106655475921789511253322695735950699530395679342929688818897156810935798977179696163589354186468054586014458197948563725247431152714061125054070665914928779505327652189991933563678000470140853727604223864107302374499228632515950964333110132120512700583505339923045304043661741073964253960808775160044073831962466970563846238016598793747590964708019257142969090110447592348820319576867786166344491255751479857006406533116832832105754342507189732630648307799176642536056047983848812963415353763079089124334147226720078498081366791058750558437419841591033299150142789209294893273875458535199531884163190103420727549498038730307164259108592508310785146285146302576495679062710763725665996467598412891393361894849802343070621498220330996519233580531704132489689275548927397854992867769664181685739348445953391709623397422450626478974759609834999972068691860899684965744001714127613941912683185242401519192952553779689169804459883341070454769521438156938044238033456417388676775541991427257840687371850660356211470059762173789930845934837340075396912189249764742024078288545385289566954706741004841259008095887288701004467788708644003290968512290425612613393456083136504083310399718951620736119115057205696324976437103159731368154927527318162903110360459742487860485029410209410363479554808372730969247028613845916434750959988431242034526237625228287836009324848718172330544359400066297620847546214894047187602823545485828281477577284691152879992340208788532509141708950102565740573346916753995738654660801590151240939429842099841413045987174345209464873186466824431430063439368415661770680453887356628190473991765300134027825446224330866110619771195552650782225937105917868880043823076288169555043880823728600075918442840412018405427576291433257154554710716248248371507911476789853323047162131935086806666254099509917120834189684004951282294939036931478530533998100370530080144842556576261400765955506436718029378597149355707817427418320805889049036529808103459256223728810290633387019867047555257378117963502911988803945330161054406106682587134625828410697888372462288554399874047366618580978981996096726186740254207653616544556452909074200055508859564434116813039444533470993435348465809855335095608988457169292221755761172138439318522103265862373494203795836758550213575946636220207536565969164975151518366291595481523600902074239797442418853534745585281990723297896123874482881528528675434978972532416000145111842650764836521170696660703770809509524110512918371372749018354609501111456620910512614118144815479717771998257390634966668218197165480853077857854970554411897034425491550689427463895795185871624637408196463161380428816541822434857576326294403670243544031196567321020545149364162653604869809992438099868566111564194911357068547643001839826529621733782671230381565132342536212925401892542950295517927610267401001008087048173681690925299677725169940024440214184175273825441503325371818316197839107793200218322511176580016754537532287310349143244082677542836675344389800947396799969183890429367038878417913356382979384665497700992872468823267055125187405176736912326939383347700690359435127828695366052713771581077996003116833199660494539159313159192906028686597877636000167747273698502210506030472934662349196211557693558516800336990721225723400733026170719442756956016512415799157655759582265047738759130250219171152684983247804403581668709597333631959660790194744065262414301045891405439195126599581747503837432358365211023827472899961141322529647718893721622580687723160131537086533311436508622331613128150751756758860738620338241503780616214764482418848869098610110237338956174993534995466815098466621520953655875752975444595665963324216945661301296761593921621931893668311711257776797588820782010949878752967067926099157292248989878344280126932855821568512023097940570991572739718780605266542112916550118088896308532574448948644728984878316655768161234176197353461460587803207301503886104499069057955132706291833485192058834685101846880713751620034262458441292017050231118338404328336485598576535987947603870779645520889985737841053281140449396110271201303724038484302163709304528502177165113551207677039610526828056046266024249644427980925600406969122341761486143879640866208615410749473321598394557706610513576606707363374115153602369835003830962878439976772594378085374023109610938009993920117586292458471077485302642357822845281823024029030285962767153991193624059719184899175368362116662539035745685405447665106768893509034337421100484090650231513310877354593684450047266386456702547038564626368955782511243627831612934943529989342808688208851680021598215934210502678508966364698426077920306702823880221789748861595274512324634466966797572034295223028911813023698149620592119584560477189514193196490144517602524400541553353268530500932574280248275714112159965315326294920994161034821247917422929507102139509697102011732739873898798598870183559653134054767537812287564256427419360013314534476976783099621599212970230751447125480436994190607024457887856481162707006167692851493818780660797477936061268925761411535728916313070244967036526955443338972248628908498301931400605167845533398918082723402634549993596401555455978064798423644648525405663174033440620467943374135293231247131834755645010543044088063227822385965785211852051935229641853028230712638320481930608736313040118555988124069063082035892724504314099550023690720108528550902732280484351147929147250198873583586623585184020642048500459736284483762214571196505718487087394813710443711907598309487986875042287627180331201461332709323046398210221473029631480868358366091978901776557540784712615525838680349202614647162358354288982476511934425630295927959234471208805896625609619955806688120230914580576869159392241561516109865071238038179731022096473862180244247910182015873338121322430738993111457045713518644582860925002228030607760171006041475507063058631413020946452031737914639000613080015293564845151750363275919136942891886328066867112297809875460173055313034083951576878312322979056319191420811201443260790337193281984360462014876546805636080259168593983760943283044453695393609303050918336447915061724044659226175138468018363005036824724031291335760095245696270872104858495724188256223510253895400034369298148236385601066136636488446110175134225814034628146071455744059361010283390698242925324007610792516069976483942533897682117217130591396948115676534101723780316393968853889719879057413309283755310859919194859860709947752172864123472984585287720843086206071694787115422999471423043362012636518566240480590672601093731403144131925950530368044586084579992935629223611658997679804541024666045559714583419911890518429274278768193832114512956678531321529789735620066554154645910939951538743412466207876809402070837811291653155684203215840939151908429873176097213961403502436457336360034254588191374219235224483855405104670422323358441011354523569471338250692889206209733019132907224657557835426514027337253799207401930180293981818684092388819282806303351172869789940750273816451586012277936989845972437958816076860784267506406691683837935414416075155880103551666106967189512280457294673786680892936552038488854361593593237402283249757628463262367851937086248738426929740503102194232203947025058526669196178576870760979966745347058800683479687148915660194753120462350595907131487448486201771785089181688676940351217907327329198197860831637082395585577319338021809989951211576446999486030276993551443245690786294175955372612491067237509084846127209844467812727237635819104755048445311691411761154846841976803652220166228457905302815590683670227176944509487499866020681519249871215761426100436527397270382961455114341266572738164587739995953575621576074324732789023454746698737250164382367333161292798802055604898913593051987711934897954253769353719044080442247816808233203149534938090721441856497363915365673091833413324522830730948174986356349536416888235011155040333882366220677763401456013068964241232312624841447207628721030220491596354272074076781701968527911287798805884383369259419853180762896812530751666957686166495260633674683878297652781079761068018672510879691671742716359184625809236423287385417966346371723944681827676873556841949791368192811688733068607301285038483034345494002764688736704837217254476630132914096693289668412015663462240229126616675520863345496958254461915885296505468515548016585069198971421030292300301194076860478278944116919219834212762316553514492523091263304660017117660162657312529905764316614741239158478036953004233119234028816097916167709427820550718432054193845967631155663931742805696194814392349693819224859742913647353414902726671713265262677034670353213107779753493791243106197689057107252483627619931791927845929682008205248962051252201818982035069757302239522050337824567419259932486569413198517049374089963827007380676643398061307891377146780527222873848109488181330564121859668044013887489784765334303063023040044896948435563139473384444497737489928535527466033566507744737651059915208696829228748232120986467896678655896058900450246035184289224379679103074884825234363672563381537128717448571907058165520110302893202262562763279249461395448272506516551416395066396059777017763670960121287273232195860124747851286046608363002243881110110733316123619129778091209461398620158146010277348583834026599612030414737438108925387971783529329296215144314139103986420353104318266714686866064741469989153554887563152279407600582455513233313580477420757835147839205567720707820210407193204660180159278467628902545677120586255717180962870954042758526450272362760224344145898102201853154598763164785426605373100565692569960604349592439225340616423274107953751940189368789525879643845392022319626241128739497728912907110750135724681376190336003795340181255315798299876930496796292762539809224618993211087480840515191191820478581236444323634613594135983555925178621818955630512923444270855043316827801355956779216546176210165527645234471107342152986258689856115666929325794404257821818625077231868149847318356132896351047049145224066392147401251814387907982155879549451365842463050842947877717709455007990724699897394358616614291076222337434137112746932476879246719780892005351000822793113828759494135606315619995320491617868365394672948259840289542817089661612963303096668336960575347803555342330921982858350849632730768456519734234444549789432164124178254232362749748824796897234247931944260133209335081647498124783926182708004736199772428676090031916058763554922122450295714050380925266788112752325996613534914450115316278451528175706830236944851371841564424203191927650519199492219539142244454257902430144290488211685180710782987601726367944297505564305114564452534488145479998508476824498484579560522646993199745339862926775867796138834928676925623838777059780815451093046686576274940223806715419441773705066821143207344535899837601675345652082990595462506532864039010133905322241729623578220724994654772689198147709915552946159815656868592771619213004123342345386206468511472845711583111227191952148758714962738160653678852565452296776502435196629403902353552214637439111875905267247863549717640557611130919392209372751202024080303428165019416047439513179085168156386753999945247227477979716096004414462655782311686271791370437947705897398955536563380131118074535702248013027257128762083074521392391527987726693172869475529150009288401240685639138365137801016721878434755969951942607142948123307333885689320051330267239231440070036827896101675859781967512921949814226239865493173656951148077963921345476653766836293239145930365229697734540661185942777263940391524158045935066632203797225445797416846655730640245906178380361496036458153004018899918298299020351404209082284985712595069909004399273672853635729322652465911831885017680616710196542149327511661091825800208406563545631992469454213318050448446801084166444056652143755092400541377049889095967822327129959975139479642886064274750643262892642734955099924829133291154176680248179876889181446434010577123810648472497323777559715632258076656857704334402570452592367146070764151576389692406272259879313159088283133477854674701752183604485128036448782061539600121496013396016490121638510693315706806943948929006638896486329848133778976223068357375958511507109473909549166787185975431740560485783959625509326650396578237311311655238779729994458163988394066721148742254914471326154490547624927421364118119147146536759979723006861644092632251549442931047757105046315686910424978743016043397942111511373408282711781455041509151008855755176497503379496687276451765229773648907666723361878553931918644530784775895419571795572526584277072396055713450800222636938676913887473107067000446756490202234915260141222061708522244065943248065668729809109660746553247013477551607680898617079316352391605483612142129076023160416819250617461710676940630988991754088701728827756060192464147987648135040251855645842698021177192826333347311701877244744381091121413062873352817482828784959012501855102503877029418902191506446101280329211147249624501569466987403659288730351492977856707029166205707404924890926517404590149367387180858660430474217833890272362528436075385722452862193035953428335421280075597499483293411462881129352382546329610316769667475302391412126270193555449115312063341655457049171554505636368528355513341689366295052759020869480054619999763573841382428847865421933858094418637074483113951670591077681796641117607160462579812144115015030213992720038389757266228499257770311772918064245476450075662186601428404828019618192172951678004268122618302085349305240507852060379658595022886641542606319225836536654935369972828540933789067023553986445784924587195845977838153005204078866053431659996529463083037192228568014921111388288134052392297751438584374092921973367475080155244178116907039494846011942632441043568406178170638503677519227548424419124972746242672625489435177621255236797271006211847912650036280297490294667012759262360200495843962345338680578879658724039125707243289804453072441292063605420536976798975865808092936484959797270202486220779551559974794493802406912588286620340349792940218046180299072054474656371203852053786491975605271033527096358100725381959396056480685133264234059153220063945049084281360555193810436382313931822312484854536791118028724511750630770788670302361791910299097119704293661386928480416568189959046706998557812004570074014923894812966132946165946859262585470640742704117657307753238968483042625473499769891334104507720172144264231005307533999136266520256231686569541118507937018358143643078494723580319653693287709334406490734223091622858295102524922977603949244967418322151920896441442660405432789906200139911296266600783473108290068690501077794688521655298746046264440321318595677373826658138927747556752482516074774322052525066951022762010606779552880281205743610095955837693466683059523231534241043713253479884721101830143807382052389445134118857194195364247710174516881268746232667441581288927430146769967236229460811457925022780147728798344986904166722438880258033767091826317530722962092492348092806774153770961506948371437795076713627355408158648076001432389442300588009319718420166660736401466004372120897376553397325581681177373096454254561344790566589822161236660008688721857305510808611918509139721034849969535965132441523405600329308913645887348498758858928608364481731081833044764941401351224777724893633357260274752840772714522210513069338335312606709517108858486182750079174786932175335582634974568939206493030219073601324359721350027047390877265384443793816893730180956160466739250278540636515954147567718153965309187365316182518994507538693676255693071216181475531322642616614572229586397653632457121708708812224970059644326897870446034034880019665026609623288711197434464625755092536033458969099674094480743127302826814430086856993283400048624621507653084485422291702156782275677527858428749942493803619212943332378867065047596599621423724284568578408306235414200911334249046555823836092486783035919559352257634782270926958075208883435142513743435337451551768773051816269714488811485497911369302190317203818609101073430450870361984984083943011741127089322288628546599419808974452222310268759518167610645530501730801880689370515648078246622108009510985433247296331943399201062715373161808791539869197301820399919610847199895926065844381638670830658189022393262513041327918134823655358916966471785688625773668278402683180876699146911313863423926999302468800319458607873296068888862639786015012514978503420912761192353182603699450816471922283050296935780516406295617908677036049499949075781713235531066272227942770352756876601603900683956658999434179759846725853573546687594961136293381504741738693868401650795677330378602743501415576397557209791426104291026092849435780197784739667336257142488281659573166692766632393589792466441336766424820779491772667441463145041502695125870391296985080337119326451355269932605128029497836306020866810890953504908212632813825364099404564812127963348670055158203242265592254254725316957687045817250991648533938041368942371671692401626241827179584193555382193273736259016845359827649300901914710930135208643015896907810228172890976156790617370842935640135995061693080267933786743826074057678346503649677609233183806048794330340237762451441059740163288577787031083948411631791170615216696331619316653303008998512296250391825447760810320048334883631792311544061285451326859084010822602337401759109460894513101231706650179509068847290472307943871614792235600829610645780916860473741091531066193923722333067772234176541151919081586923486796119128937849919909271200293394057093392463966724108696289814684174027543763453826949670063060939221528677642024867504271474954220106701016145130108118203854976423992372555702921524017708752577295137015990744261786141206003899838658294210045031781774278108939299197978462122641043872399601392736445322469034045163999217127549806796241503134652045401926539557003409183360635658074424508130565071863187908299154167767672732682538800532897939199627524251301234958179710482302724679535652926905750049470063498620970522778788821913523749249045630252736101567937270011067289182829348203147483330294277522788844442362114613456832539227902843673790095729974889480651511804913001251707446616252472442558645656242205087376730672359383706055639113427806846206287734640465913706121129572537138247204494957673193515132918498878369936698975708281184708459789990852937064524384273604959956936283227273446874746247704551069477473457141147194797613389286514029569151034179954065669220261725736577827586708818126349010188768204425371850067799008667613030288966224806951592873163984179061783660540261549250516301516115255935727372511200062981721787070355061454056387122065077593053106115905854517226298138529452053692905499658939742947385774980291774629952413198208515332345956043046220410691532640648202190673252739288560102892598870534891444667471546961157991335418401880741078863517187660367491511939900807362916048802423068980613875657431595091050355981913240904488995194348897809323685219811095038890814040846520152095828976470107293637937047336655194852735467487497928666667568946864840633334651923985239291541012472918751779717123101137622657897682739798440683870364187675811233194691762152007814939666706565783707371202069911801488872357991737662417634224807307026844227069872850280512904883781239344011466555952790780529736396114381526056607313246098166628936313970089300183267696527906822577773309013787798524247562809560731170248758996248065729409243960382712560391952320290728182822413136278485219534617574801003126026218039301345513744394452478449241414967982501224595096890758290985135790607843945409704132439357343934134584526455908780385727238184113756944736776243406979647686314229769710743636554600653558467897532265314046631034540966958432694817700947769797628443267745026244371399397774116541845078471106069483829619580056242977113165595148602714492801581820762085528068079839712395663625855414798944452087593748366542642487022291122420656437261326673806056098967106626011377850189420209269627271215660017388978000477887467491928347516360383662891609903419534288821322950501818345715900054573011473720835086372388129264162179911980430331680260995713807311116890380166914822676102971715569308823090902016046949003033392451474121735533300274525242805344402340186106711999260579973661941749309102227060547463107304800153396787792660546136636924707346515098215468923013039330531070157105739052672936644013595853344118646682138522023011656481878230255502423236236039953936147055139760741240354398927179279383136107891926463477616374353910367962820519284603029308310489962447446948753212618601080523758003785167023613507771594093062174412672299847495629846021998876926681251466775694897636687147186702427459743551442506518232347669797314193137893072658250630164034212081384875279143059684531113948871362067215780486342261473659610479107480975193198735445611439136851882968687112324154626770298992430920735945003384423298365401470876205809789799293561266042584123710566075345226437275815763953625628636717251292351121962846595694166192850628792348881296416774141291652227621628025042919157174269075720081893654430659185153772928830567394825848738256833123499173842292856568414221262821724714329380395438485160106919151022636863919020990265591925774186683783279534726886556887710070811437708092813836891288616165719158112523842352674992010943505403752678363784482488376714912833952691923464541361506935873820151393651396303088759395925319112463859224348899663942570843848461055368489177081331211138735964837248350104540272905463124943835019044762147995769362542752408896571707584909261903305502650861943737272659135582480542679416177550251126370621869179099110490925894477223012373750694709486611368065742160521826697363418940172408497554956226705514305014664896129284938422309889776804957242720677900338218255222693412284389868959817740223186121514104640349898913539355866994338040816108663220556426297636314270638226412396854252694081781208760039617778798426759418331274230624718470001687932972631535920440129072078526583914451692128262972240868355632705086469845816074060203714011084397061931440932243665186478256944338316210484197588261159622330528334720296024231592104494849321003094764421537911834377023666783838746047172675404685258813434099904256755788900886270937600301727836013990907763396498651675686711622953438729229036736311787439737722223740392610179299676842958436240562609977206098846672027554949367647161972279668799243266493159138315901273936222382439944496500700220855819450350363039020195010221585935018123095620074364352564926558319602879534924459567497046637907492276165095901391640651986274721055262351093862029430957098344578971961340741638659264205991127801663054958192782888606931389086528946516957601562647572095263617515115914874318131926109347173115634626584881247492592179162351054231430101433107923448741895833168767487184528474993577602308472682145505676069849367470389572662122207758422301505637699181460082606844273185006504044242782460593714651871273184786372753804600525116059326880939134451947585699778014554606177479212710414359506707324382108307529697472488339478335474611924284139290287751112264750867243136659317050278764872004874752917540398765896666439137272992661527181791875630520277243791150017147992421342947299317072085409560577142215346124188653787374047310359577805110413999094167053943480085395291731404082387629992119815977052988801811795025891947928761551557882920112961233141470337306791756394560922082444001160440533667956171162681849674459905751826540735472075228785747198411751861385106700032235026802972604619091652349590042729877751512528768399385944705032660200683126676614579345059760213521366277973127106331103782798620936867625434608413618228587914955565820823417615983382170900718346181057455430870723360696220440468501970282124212513666678997162259841592488815292663581063465216983028577110331307189506787943729912443092961254754339200759277527883891315298214739595011359791771083214147255589364033934736608514565852981185637525086348986266388133772595227888348715787746551396522503869835510308882638974576826022198006527842700487207385015042582359065464548499126457197718891739060899856441215726079261720814292839584886702445747891844768289304868064349798097705582732493073912108293232157353150272245605753625765444841784053545177414343666883127280792805048015165650517824269777027602282435710980779905578695247745185561332353652334702960543802574531966182450350843693388126289095522131519588752753061518385816663036972776870863611385321844935146956140054381651085143036523057409900855927229556940575591252805057680196030574753840073828926308215675174484791954579596512386817367553690238341493399475277836062665492704264384289467127924623758257162733820300649549946543503297875332080863752417148339305333876012805108553005912915004743036259500166603100992331500090951465251588745136824777485370297579493971545606968979524035954958612543021585603097609695401840307994464501685796583331926463722715628426067196316573640710729120724565928302255939051778471258186121396173093184602635522479608279709067830500416622398285523534945079925837220933182980603646829024178913347354076041237408330610461558638040783130889684614928572415358157778022590535376687094555749622292625035354250682177331304385112521356980725595032695423072425035553601285023834340343320481378457873996719812206209953173238584375964581106439765430558377444257702360904980601568696778428110735438766491241009693720013646414083070195280846164067014330346366482422990021384363213558855117357593903290700757309059623362018549788493320235876395699146593717131812232469192344581157512080288896643882335928863216461369696409949698003268051699086453173124922227774835397588377634545229512204958042731829516776241215621972090523868931774181194652149484151163081809942680856780452418489540158515968211853299593760044702153649359108977432167412809440770333928531159937520842039209679789299883910183350577310809654000507855398394259901722324647367359213370756476666739482624115842589413823128819242967085157288306894404217454465712825158274628033962156806829375491199055370527245842433826158368912695664677370318399244750803778418086442632418675833837876723633659492789701686144022232483710198092545654979721821242095973059828610255260073148831005518254317195934659293224696039603763529389282186248305760334128946526794585665052687087059897886042230961901202671390869781642912002247523906323001380751538080206004191985129338588977281384374521446818965173266222864576469650167372649837454805540273865284549242135857202151850132394934533267338256107078050997604126483122385494429387494211866006926902020903593398164022928674076999822528034044645908302252331682299358614844349533439172344662355359617851800649362077212701562745802857056732887249777571201506300054436520967507950389980223917900818072279599040621868248326888070278194395592737689285573755495955516051248693599407640344010677576263295289259099484759209330187742538809000517079892690944735178611165888771236387257272299345941345560804043935981826684254355991250163989821929913004574100465004726725552012629171621225174983043948708042090242993433517666337051058848757463215029625603514720293361425450961545314731255129385557609525744333373849280312529415121847374469725962515635602076322881906671323143825807819122517006834525260627778516314735340872190598403966649543423891751553456731647282997868196567584727650682525215453740931844543770767292418616467735500678390465496942938791887848959206580169517408985909417031953527557983786382943093949522501023873448694435138737300387759090319672696081512529451775049113547101150900071804386018028529680450867119149376621048705035807810759623241873821184149451852462659075433963875629479044470584540835357293744258174816971176612947767197749868655912990170738619978622239890344401444120954526531094805324371363204687561728894084044770268549564926454695867060436865984595041652322762374831203739383357395077702569202963615100607361821073120531724118681727405057017896142969871793110977162069403649945831738560931815969024269071910958892703872135180259121922019874010194796146760621059213604973494023995393836634415371077993588648923387333032429048222963507621097397645740358285910560459991302044214683939878280620487914081985094714791485240092287450466251545186453742420913577018598786064532083238850044737497744111269791858919312678020239588408311671149514022433251043852800056057758364864686283238355413477694752207404907569663404307039464340439255327343708058593150013110653950515936739479438280037009265545775062758054119985125569234302591869388236518463280252324973022907160200112861366618267319138889532562608336352094835209132377343087426127913415147972781616771803722343244595169016211567938592906244774111622076933038615490865919757666371228616105758586649187946398955179569538267354815191317250676610633851545924970067656310647558139365736337460338715274141975587067548350972618398430999268321694709003919070695568801675440113539426897851774175915992385639564086932029308630111106007148862754531094813050672848647092285459718396630332409099900733120063050915549506926956465569232818254110231637728610415492407617866163485836770100696899797949669052630489298921672622798477298811613638352652132526186093276063138359597766735680517152385533585921957916745045581399311431224359106991200351436221239325352673452958348217658514153369410336256635564443374698954060956037752229755931057905660702972161327625302310426340130660187029817597446678902932947872933923197127887954473588001274806992757865023446553531951098226361286364098457385114213031159789881526477128262662111614144068008700489957451551762723257297813235925829128646563439471231258993224658563362451398967312245748928170299578431858106654853314633631410324212635829917041343139997226645198062667705081922800783536010561384440866638855100751569668239542530494910907383985115475142101478491939579012807420877268265295776451856323930665938422416682264473908790051894402545032539831455132033704024559120577647209150398619158602071622765533783575807172238459862626494804767525194795392943651078816376276290478945653211292746064603267881593863466240630876049089306067044571556472215953613144844361717917246156955224554684990526922317663048931938403562558639003623612397680416436099286462612351840032862239058408771203374411475523823957305208063295153369826247644499433341985722312847830519117433450137841763476764373425195294459655452457812844206377511154332936466195671139049814797864786143439624446995801677534540279393980589120073237342818377097798249094984291956442767201619280856002374163062851549470828205491402714455939730040823601637813985434486109148705431227644646169291024610764586206213391119354674302979196358295638277638037547838083906574134833577778965831971915658800734446583380053324402425742572832749105984849073035469170775855986872768092593538456998719568348224437190859805810517546425409570669010952024060339866940811537689526051967408784178806671060711164314427131932352860448856420483512521951518632141801225474918063025265619207812166064943743420360595578761458998756282920621235264376050399671997337985848222183282724439378823283985867341502706867931849126523412159952103389689717698125661222931486746625858363024167770310465313933476664554434838617518679042322827116629652690264063431986584666997870117615042884078413089538148010539632137115343357111702199355498927166750520705163027275124442733884315522159345832974333070182514951132972975481192067273069754095662592757247697279995978776830186603067582948100683312261611652099908307461896991421270758855936221814297862410817995536228803370893900953862617031736564095001010116828042456527166407501535141390019984902370833430083012028628345137064656710428877839207166567804008012408466702828540595849618033896899627956206376451924286799698061853341479851557870679763141926416394629623265112552111036023547689561648311709830797995401789419416861332245746791593407486394220444924776979659466833745102062870908944515795378439504352679243886578793170184944788359082420868972275074918529262263189966911185714577511641030993685536685751545509813635855125301910329974055202914519465416385472306187951488661110788027500627554948933882147067937989196067539027608677677187201426499787947967724521948795177439450670015151862322461136762900691509719976723847287021539562499361827561100995303937001433375399833126022327449950692301426324607041833319997414435077859151487619263357572532523579606586157291793602735892205433269946462868285465221725481061446939336130624019935594628526992439749200615274526606597879438607292697416485628545618182080783945056093643832828853266992020389539861920364810090509116831848583671188536362730831398480120447093995178768829905092743948914910113915641667505015815139044002289088754800030706655465696323800212924881146295176711134054342059759851687055316888407225383489178739107396470896015334775406599404711856722727010338454975442834501633965397139450523094050923967264428159299915010025044473857865981232896009824987779106350367117672177453078140134550679303827067791554515383041330931311011924626815097504981514752225021117522364076687104610214427988394510727423293625185206079275738755622669506277989248227411422589436711985830367662207257450053886722186214161446597267986692500388049212350769642191693984886102766212197720517286179727530209669685744988529629065168564116723809653231506886728758266090575706645227110160063291513268676767197143588378883154401484455760389996316400730732432357079614238283667306709110135279953626750296578903411456010811066777645534224513177670260600560323991460112441419168321026245425248510745070467277561142245777239040172490030867590902327972980418294936552560164259930730482189265085885785768731856066458960845045725839693695741451956194058592291772019635300666400680503850731299195537383575776624465511533659047679459540343400118924969916757382510514791456822951254575434255617677892974006834646968250663168032578292110159250822472752200563195200128452763731825513804621022508832442930511692339816917600958893143599856175559241829770759378167204053347522059011187545305590163426640282056714462836136744528299667308026025666578076830009723618618831811444793141006787030429848905842568500613480562851741033253447826923864693822192102881252656028353067620792481313072890240986201822117575277692547754881043251765395778243608947665985523430021869260433260197047162726101951816648107470052742364900312462558957053010006641065610874783113509629616079332994593298743662267921143395245319325098187943773474984029915708445668739482766376581849706102131333826539515212099253949643811425477695832880021405484890706558451976636786392744513155892354438361414878447915177342151544861850351270831335619927795603485372385523638891619817877370681640017441817966773594970943929828718274865141188521070809501281210010008937993700984056914744614850877882706682487886347633658589979350144453377162285725073096963487540739481185725296012513933175866646431170444462977214714210443258799336869375313917205026983316892983058194194961424523028282520526480902424567619480190892802565279717253670610125203362656257535200989132618256458539232995267262662293609877832042433974308192397354403004878352424454261180342596033793702628627001613331987237951681790796487256761343888157312511319894613228943863706883415071320722087994603369656195909810965645459426414631878086584703148855565781520626225457396950848400920477647045026626746078294794523736277647747873990729272561081846763195987105687046323416073079448052540298257441153601594946943004729219028286840640429827000561213100724668209934829620443718279324168307774402033656180774736997154863385863150881913396958866369965923996368998378240620539651366262343290995119198863387397828572272717284088843890501019165898995970330119294447638192753579606170791395384876818358022878383947632468395460527581748474123341459539208417170137825426470307759827441779853402160925492118929208143717214967830732820393801505734662399892256720819493244680549741207089980558472240635815244746930573311528547910926304804094044541051686378389019849833252353651978415350588578020389617592530417493102091034657400576211514620284873548047576609039151467699868335373240518105642562321486520355951030477683095639643479407387822022502027145112930256156156234625586399815027149290403138371783388583853886559964698207805993766614883787102631099068274698429724903874573395791791212819049621067288441361866405842283925048292739109453782583484078397077105148224121709553386493392211763034021623836026712342781535604338424365768668839203809370849125618179491524521110161099015354629850702918140855443579062113947434107656263966467273511416260384525922139516430966544180889125574467342457479267152172477511090813560629276491256966516000010267950051968477197034411544520125797340523898863181568712752019785382602536073318978233440420536016579751793925067452542806640881193700929687443227597182437175762332018602363175607703325202151883200167978409584819863176229745416920364649687579273008592622774821601255668465987502317060719241063665095699829640474611328962190871037367578563800503119475764812520615330869716935580797919486126953559836165584802918420113082703475079454869750980256845940481143147473195302959360524893268517789888124808127957949030349129643011884837259312152701829468383000147404155369878673006811157190427209466136431500650470270238298854316862075215262799031215592904916027471119703834242251651490213417311245561729529021679144890000374624998738125614020959642625128545035279940419069238373255518681247425666585003071860531488742980743971547090418174303198870380068421639554415737987402901927840763664777824669536473487549225669403033211122487509969811140674419188751654365560637184548403559584775402918828290717405583896184708681293776621911862747174402713576956938984702256196781860995002179760125927309794400805808394757971909966522811969687309044353028022191052885627608018633451058527234185829105233440617273766380207777511282676976802047899717289023931044608151142557315332601639469037734959863624087532888923918059331655903427372842189987909300689377400907095324795386055530163068896605263896456029528156588119583019271947801880307083114675345630350990636573315982699517381362057585231238345033882479109948639539499784628740692449873960859682333608073576025953911634517362082634789861993454427738521530111530323254915279628554240563775056577342392584869109375683447061128733598658303571460133441073473315026484115306200032373701494973360482635322940752460341010228755257976115808793949975091638105471840016043299940805264022670959129311252857700500572114643073949871221628237756226464187299467608555814506828742991606601390364389388346219608241856877722509194876588306195221460028534355642018341239530697167237855889207750730274620235880838348653128151678311171808991618451181560117791796562826838873578869319551415541700646301270166435264853482038616503327926892573348926463725870642058939891053022995409744545297988875245938438385561743966646355918234763802997247223134412593622924429638549376550415067141167129689642581536564355365238528603502082873655933597514615704122578055950901511734753989448049509993197516216270997954208355293236425279613551246496652070761438922170630675812900185247822214705322149724975368285840579738698048842016557694462171549653693695531810429377580639979496555520211533695049750977735108137329241209456490381021784331186294211474906905652127575628397352949536573227199042520592325072603127959361188876767801237527556922556830502842157225072101873649995538502272146250435295592328579175445848502173375475582705572971155156017509259253267883910829280795672658089325008019389109731107922567831569602083945284439581012133293462094692077461025288112496224868456934549184472894988846765847482960756755941745051260635888335381753381740152222709403606786542466423487009533712466790635819202244233349503766928612629577301658622621112612288451303398994963703121247890851258184990176950773973120688491145598195326724644481848987654542443000216722236732656808153242095690287186558150045146786421398706795419105791545994489095539508849232803223229797938894631069372042823837700524825527586175166520421427919235095493348536143116958955020182931594170211046193111773569295764677279740340367327059688822974516882611370565542906495964628455249687212020971039573202524872069766324968604178028524909914102368414935329305169634813289786478631839750232061451457411709373196977453504083559115975787367615384059392501750196054583654925794006193391496631133395571147590200979203171761877545143099249610314038379731976116744453990814885741710398618174198672128461668085760529748203647420034904759589057456815304042669527553970546252879979984763800627537099954327922223385092287108649728539369603079454081366520739450232147966390111624376466396574803244287182355584738720046990581118802276685773080833813275935954342960839730277116174000892193352734506275561976385584239642375648393386025740376002112869483118217079350407811128595861122792674791729017481639524975331468720309844210807139222122600574673308395350596718446000166724645733051432794752899613291668116848261049658264223864717500052113976441415187610920035255096384473126962414064524040651798311376099180105848341495363094796106703568476207051773822870608625993018026509583233466226004180102058485129089313333361851097394545960657560689492721624489879290787146757718549475702421761334862506096012596232909475222394690792594973985410728080510916286866246409981191962013270083668556388572281196318745087282625652420665961421324306743980587779997744732390255093128148870487291608132893442552506429925251495323673734967229164268826954543958245164483822596712324491042345616446345305655227337388553380222886282360541102400392350347501217440209811954951400135368150015514349987477981718825922819213098948130281321808258027468362904581442934921661075965830076944995096209796395438931718713515896791796047454758700361501094122955419010446747634490571442716524959991749592192477000269177784685951816807619705976271775039383178854953498550411470791801181670405592232484106226027744513241564062478353555024353222381404694252260427460919920544208434980526453066973486486604573038258862638656388957565466169585789534226088113278148211482792289108661516284324798192085626168259671128311993783914162698006581366007574112973270994764102846517564392404421730536017119566800430533734021953512129785834665353048813290032082469361640466882342435132500528454036363996898716627347174294218898212228672022369136837560030671301286540780544341573472993571988474785742944640091599162628525628531085396761766584293618052617255154465991120061400485432764655440019405335354443997124050444421521614669785742674306275973282745329286690168722379559020059622587642014945146748573594786551712335605825259790215935421460168146677582773467777459238396909404723983480528489371541882766027949266791745103038141682381807098979615280538139253344199626032660087775614802653149107161428949895988386923117496043324872610122788852653112000957643074494069842347307142707594564080810846454292337265192293715339194459194083969568046885799909726045900657228010211753112651339434833597445630240901659392800545543701569599765120306960291498948912323161089276651473136542037432500408387857901134327748654878406172081989902679370462268777363658866446021642795499266319479590702195426136553613762820368443670779984650450013140556768220409015064883826382878660096111125330177528945266516397502186991822645083254099996326981066296936616732452303227224398245837711990204756977806803354431741961098075889063830045602513833033993999029979110041944997609953327865929081382792197974345231903895127028377806647920555862689062096970823733642094943052543133809859700215306354647335864929744283770455553029024295497721272001979652406117437819897760786240951998752993703867867852829850595548105820791172765459090112666916897654610437300101252022750573660018465141228222499152491638030953135490320338170487904965872036220511791369763382626731134343088303187067184944950969651914423875536104997002775365633122816283627437346657103378011068563151595656051925506514948058654063568950010631159348963312557042414710449716036370975325894420864687089444861851912195165846401286886913010538428425907767087789234105576848911094644324701611897551987382441871375807203681745033007516993467905027204790353092578390744350068501032319325890886516851753369646851225695577571185618310816590161687409106100568625348682330025259155458393788489124118182479363219088386049608220854102523221296497306632623128649693984913032243547394805666966898590837668675052000983700720771297339405409115544414189797079403662811278654957025591576819238025456368364832874681483299476986384595017648157684373425482970513326216987690091058215703770871693780182256116444175798488762309228146043145971095500236956438099693673675346612199091812052803303088270755075139635957948503500474056477070335619290044530716674552317294370243947763106424685823024689363418530191766660992728559997350805282398973721355437393247029599272118659584367923214427725246435563048813371022943662238197579354062035691640595312932336907917290567555980749682520109764492000327933380366025264321634948356478545045156969837710672395584714094847351689051079713367607605055696190042856613646188273735979651868169619437615101613329145626278837341702049885769625565174483522612096957223321550979111571496193255064416006061666269433653663108282316810863112322484968088183186938354776584114350162627279545249546360860421644696101437167602872096156428489101458396728152133328293801717269703121622368354270370201092631454573610589985068632453983548793350627789227867488842149403711423912570556162282289038158746755057993732911592404537584119065214797755975609208353624007132201538536337727900147538036080243848162477201877730364920431082542022002099608677995897674967000101135042412422255615091154933707830630652853970099175527738425497358797887295853120600659458185142987612734431007167490304184461179806756401060426297614152948542872021211549692635170651927411043667157364031579607586814979062555769734729053890741500899217365408939994882496700715220768378246689833706569848772982805745374690759540039485585437122902107294540712730201197291558430849723031138606743746113942612410095019579077098412687205308703135774170437052039669426861538483513486573676896134188444355213446616830319300678500912690574648980666656486663870562669851498017018480212224791892599735043951168314074975876951678712492903033104403275056030405377898169583551931534845380156597301521987402373849763011177552433151565482942368127294913633724202941400257193668658130932493736766557008782374900477483804218148222970899893207674265739908355715575080322395259635707651390256899628184300635226616636155995814468834920445553131889379046704863798162181887561813534681768625018407986030189084450171171178391347740034463188340136818390541598364633252972041276169513645621580195401494592801381517954843820963440872239334213327987049537824006244971329289805283336584916066910493465883191061069077245296130833306461667938056354260444607209851282099114233292163640061627642418042779243822813322034639041450623989372349910714925996899637263128810189564128420081741945183950290959940276056382877866784048057167278484381284147811696686044237740523207203807834364226199080111991443009924965269390829535998767678389974369465098805826970003629004079058195514261294192832419619386329207684068972606301136556389958986759773815167962102454445464461072195118301260145693711400562495925741434221693477370063435137026738282092119233643469372152274874922427196895316143865633563425262752394905901703241174648731150163553669755655296736044209788800247475597921345761909106964653052996757698980802077386371129184659229310617143987530137129728782220189766983305076630924152383750723124646105311263969148817669979114125110324444542901930082748716607844713771683705144898638759488302379085595519340709397687224253717366179294906868454935606175090766503182646724886008730428923770496189728268799940755536054581628579915200812404408595669652144984378086085757877035908010821080824917881688409426464319193235463836711098758412031646263592086800253443188034230762146997668959744736183185655527234014975165279542971079696258111411225791013483421384060391245103642102534691826593647696521645726237957812913638009262448890444709426080679065843060235425142745819054018974022356263999901259016500252481957297764504152525785590541931837328653931360304837990338806532549745687385970134318141516867509196926669427370907173397023699784288328563746412589418078603515057730245498894260402782998560499003690747386667671864195693749547758090902864046707845208096716306774936177508328470840891959166361617198243901628826871242021151814183019393064583301612025116750229450755816823400762156178840065465210667770706938558267431322801014414314054221783327849426945608118909463826687981401838111601066096944088739831670138821269693015058240987898373570790347923707242872739499976422585206986884151079298648478566418152066541756150838585596761428911824779999699420705607754740925523986473102358174790489790274335456697990695693108366364528961560639932574911401520242942702309722066584817099320891877911374665449353487778374352595782913464493267863491652803879337326232991962958614323858931007660968019626325057302544456255894686468176620642099065647143736331746987573073224536093169804734566500193464539208913713332737648319074558630271022172378686509870403754880315283301663341260841951867444553768213047945403129518365389575286299595014705071650208658855708136476641558824612247718174707255578689257542954264794536630124327838342291916549858635710742317792573514058724057083445412983051526823611543698041714516879525192644734545629287187228558120871797973562164228344559278449442774444670074220137671852045300635172346261669694184899749138296902399539253558653664145283192681094698104626954141250717200235175583249767510622479889374220896323765381019089597529735242311309387971244475607679867181372575871917808526463258544438114543016739520086853084505556480854996919273934349174021360805048278006501444533306084773966524668245832101027604899968999736665735906519219254988493020007115592885295411283417808751252844933822303378418511728042539823195078641439980537620546829563393077590152062211719160874552295009747326991158398135310648892112931442516401495832950023478350387427929054847327352909872876148995158768165092967616700373281426797932513850941081377067174287433946969770383379229630783746901003875194800011319499041604447338195484245778903946496095692785033635491967433558668291057407741421445482481406303024079705458870171360593962001271802202926610547974086903198136301278848473372698697785084355365800852876219462923890449987539088678160098625578943733286119740408017345698853896636692900225148005679456315875561270659066865175073106007262085035717558307822296716620037311843363612562476905317253945430148126137557800158559175653069934017737675592484723376705807600766361404016528823247977296373791258709568804200394699223517146823823863890487046381750917832345542874981571846357775744209201340796242989494644564938402752693610407919798599759560136987221300461063737754403390671504031353335376948041117477268009867801121340172371719159769455426344498753862215233410867863757721197488190909319285307190823314779471189184286154033276184673269847317092912917523805781038462307707054643512856586586978294601907867374550846328687663455696253474125847722310496257432553591548613838443028869590004056510934925478022272470382124847461894983599830992067053616503110599569363292355799340772593863058143082236410220599792255457710059950262633676565863641871608956625207749405572985558432065145967119461660650157863544207436807895829887703978957911605518257674619907566385012392110355847117219205680910272234869702487385624933098797009735257771670561681573657050690859518617444226077551517057067398364465367774239362068433818701873264569352151392158534442823974281101860649625828385526436356593984144113878882697678206247611656794525162697564648746447495264026687086643433270347131939719587605103168156232108261907494581771914573556151377671766788233020485449297802723553094818165651545394546516691216940176908660674505674345573776900837476253946450511228938253422027837034545776046209382791120113104782613619786310060130318789572235022146764279562124792539840988910603259977332096302409969988077391110652013524420646033373010478788572453756581725597050665468106066129770012632210999490492782354640804933247068297880829640241072212614203846475633456721320572554082959262127836477161089803708503525388597603525018877350322228591975119372883505382050069924553096873760125369481189462896165365365576549248918035659944775645099645275461805503394428427005069776571178422432939977556155857357932815541567702870483024967000667356969285213147586039772694180773071654505668914564782955733001461116997530073394732445972994468424396376619534263076814678272563121065465449788679234558699243426775358410841797529385805128667950330759004618101210173295952648593157164630782591085849066340656288726726444308881612805925959879928801113037728514447457749197546573116555567287023864218537534936528435151269490246855656737091051912462393856633392886439226522394733406978507827854103640976326760736772310840135553038798420850378716425292953678101492592835116541889078073119928790966244976153726891073781408997029193035466612127399855318696034949294051413124382880007383682216812785133042954900952650391457632943201649607590422486018110496298518212807503604602353864016964397036328605602464220193267059762308071517372347022177179480155890798627025053460273493534096593007360400089025381019405718487204724744165393615788127374910428892933314483668670455263253183055660515562738324956136857013097979733442492020438767786801853469672367522452762033428821677049215485096255942882918909438084995567825332104256841443349923137392131950024156560757617357271713286431056131520970375544102385200637797149621252788923582383321753458722487331216403158080188618369053155520130614864973006109823028506151089464968957373402518355061226908513881871174731817427334854933165206554472592003150519199337284990425289450856635996411850724454002527692927751755590621588351720875278990121119671291607148661135031614752644452496140863896713106293388558179196479603208836545464189769821728433054863470147248046294049545448999179225990028862003826018698796089541563920092055344180539052615029622285498713427900912737702657128428409063051469762158435348716532395173678132939370019010848474965960711797409150510207362042862134284701687178194859556031461774810486018063277517219550729848947865982723760273337173565244597205825877878076275882715909231341090922826859960835107186173602772522522737845002798006949145128989166731411594672247611166611485156438055535894732940604093583963654656403740693064028400078487271613103339042222945853726625567283705783156370192640138957399870717917628917700588322336178028349896263937921179934739428700373948571729276555535505836635325208357558412192169873766031794532327254978922090598980881617252790178638737119783672359257359167709513895756404099362273375217626902078502362040525044454603178997287987925371826805198005970443638237210572660813399052923054820879946285586564125480901031393413656786470328961700173692637369378952568751348927467362190141091473369423469752659545699678503176755130353563263615091382822527496211989945226505970430962033292188009997545129989505285820162958604575662439208839994506950220145608944280544504303587721701093569559739474836203236487338512162359479627278911144156513988791395502455787214683681119721351633854396479482588068313900037814933085385200293834240587947304046640931504485052224990668997155617784845287062625559889014354742599543020737182411834173623188673367922867333066899475073719691414832487761614927750460278951053734593553536293791375388919998983215843276235983958693113705569197136470204950568198272199017380119418282929054042002888526701478236795772298162074543948641891125816406715227715262611624085415669018669184920452032713481265835370774497367893495605403955999570577582954001863619880990412046735432274675210459731722341272440216208091387334508201668763420738083242987090361548144342180455616554105551971485975978732013895405319911861700008362275462286028134509486910824579440665494943638420012136453408826482584921600571343210916300119856849978498589464322011154369807127146451825975224326471180432554685014184574711395449977204749529460160905938618077533103930962122875354390570714133330922866266298888381620847428518508265376380225071762297742253219581934482706917489631609956464860682896950849127386101604984492393745162800660464786021395930667932447847580447469285441332016934024971287198994681115697527977123528650686983315787064539709740102672178757372285056801745436599919671647933916277858761722318089193396793181324836392156734618785596038324493026171596957631055853626015005988772864807536852771965718379134701418453228277425386343327364216931956509905671025825259101542580838072085652990182416393769351083894859773951992213186885155016396084487446534007886145357509406409894404282050258094803290266460847052152998033440733222947620181336484480501915549788958744030598141429115833767350379634564091812118244134863288379410502550505826419439203032226637741369635074367107924374478890464926209894636332293591295640705478166376463414493919854460577287833175164796271447851250354966993537795008617689226027872020146011603837581956680327143970308845715018673625447005307374010658176454335931370280415226023312440803758795040385621412834301867126193141924198498517269771737727033475922083035845852093266677395939216136262084653583608355570948890869414979920992705723272412197512458720857622110416637115346173249397707750202696960962795178753123700933608987011985959748772796314619863023577439573254899936438639667347443650391123698716348559742989540378636968954914195157455213741789340974973560766261238635194980985852263303650997776172188248944616449872063701376161811298712150281348095654800649956762172702724963116489304256231916099359769590394923687345450455074385320112370776751725523863288272535780910340480692247108580874425711713551049701892007200099405904118661684500918966923700957221728006387958365942963667871201382468612408953605734873587081105184481885486662214053404821220660289672233346302068571438011250471890036323005400464686393499316756026006149962508612540761692701545753661319213626080426434139472687951696710908559302140041591740463943331055154913997303241757423837407962342031734859758022245999350099501886799373509745021393405951819036369687566884541340590602324594748910143597471495130057950975701183167535625432802092329181378014673434420892601763519332136198047759569385171666763513164815451708619941656883993632942959274702382168994615478797828651656253915255357087157158546567071438845378215133186322070398906366558436732390238754627861208432574412271005482355631758684862608070160819440591527158908691502694819297839791924001636813343399456688013360739338980100199139698646789106731409629571316997666945052146523183059271958205523836381263162098687058993620873002576109079704855640360513024132826514594158101469033646128439707443773087326619959997281954972982489703795509671140225585760992166531667185135840429088329593518677369983133166336243342326309625328380682689171805073444294947767894931591920112862270999166314927611930024006123842379806805154715241847233129460249127470582042342097993352623064048913442884242648796465889116432426581647001133694437528154807774243939954948993071969668018308536306241644625648552376203232196734468002362996062598880178560693547081924619226157002473098844495121900815261411067223201700084890485838980462578915870051804225661089965234071067779561498921488159682855484261413471349650506064050964595698854451046288310786404193932420559748385304531585157569019027180883699706352207458711836225422089590890946934389714882673250072686778025302135661876718429387187530236100704792774501833049028006988354295946758095566414960138631084567987138781254595712223943628512840274447234129601717419398082668546551717627395154337280812070852327699814733663107394252051391737757284133053574242272948190082241331548528690853424648720442790582063530893733603802002749251698952819721607769182612968194419752862944946232155282014784982945258094869327641900732016756939774809394519834453680091613830167903170629308174494902501157491159971145075066293024330710489691111403791741850795132293521228803291142564399655495868028496439786739004569653036541266340448319217140591431887251764092353868346816912153642729186981699687210911904935388628700224868212231592953646608186245734779801970827535135783255727274356964127397100432079659025494180222286248553634397696728311441773217629265377821903335194670943424722192698340589627997299566022116318848016979682110318102041295741259578847278410872731665568916136833689929331561759010385034538179623617518742282484526980280376367215550345118455140734288967419460637388291170803914300376722954198556867164232196773561638169223899418382302250075474053693126248749888789357136143055914222443814553025558999156401747072449080818262116150875845740760615058885853194449817866489624305086461587830384814716177817277596527305680208337640644624316368687159098201551102001649788284514617974344123004841338293978643754841919429008514775042656643090273465996067584901426024505112786384833148195120943073187618757035704405721740179529719506204301589529835779344698944179621407431134570091894274208146714070619006190903835810038141927506348882335594393375493101925663657713304193349906069813295772949419260579925860947477157332379512523593256668947232220927938976436472542347250089615521412935619925433104664408200144483647550312271190170350861646994907387393300789816721913012498996947719066162957711000709893050830139298791309156897623647549567603968815483328159393345306847241476549362991365796847011264440448643467247268609755497559336279360333172546673720741256446361325854349628817666724668155312441871898801205303087650141250607585925766870734472593383170004354490802275085897595835597273106077501571832601272837280169497701121909943317797266009402906792743770639668931511121463261329357049478058455624004149084172458147160054488091680016624341149775895572962464167790540729658634924150981888494248319920900802145846648550700862696573052830306500313837853476502099597872489268689224535414369682564008925388324132725205815759955630544537763528862073165117860408384436901517655198973038604985099474098824140237555414677171479385626693501212234799478671808550798427094962312917875597699278135697090047458771075762529003385245810676655045320556767368178007099493860311739948460517618592583686801899546526100801195998096869964154087571113286961365479012108408663977009432733847200787364088804889185520565654545287331860113433716105014655287909119932190174197245077848128378555568633408587608165594895687002794167918009830328084143468586063997339630409068842379121096685868232358679293956269421237770380617119312124211374535931437369273214393996409940041820498033462424053807767818487348258844991938287870534009728657485521767615373767476796774139278203203256168208935548500070938602326170685739854128696457267262186636288230283330291113350029211913705849459259448205929673337046963135339585939788884818019888279673991421706227174652088632997119367658679032487717603130311365389234034430324469024191466670167784055313565541769696238114472468579875709884328808171630239384293297232598546794382172505547193467686481167044788888884769545764645989934353458052213208972442343040051559675991644945803508914907369482357304517613687108100810055064909788599663498032047408888819322511393828877766703392696774479404050840821333854608476083921410814500704879241287821495570343747092457873301757367854165415582554540357099376112033611109645549378956013150716626305083707663688976962650355320325964882976453455281264748014694962010990150866082751796502585336768458830791440677960670663031268387873640904378803872127263077394983507138606950133015983739399773160118283346901290508916657236977560514708233646076749035320504444199738556809808810797642512654800769973304074599052265653083339260131937555958063574516944511544366179086503860788495659779984397458267364209341502332777124123785408691891917978050999359662469246529316306655966748895139700905504322189500955742806866920138246128388430230369632452690449144422153653693583879266478952823932848645651247273008943880001712366975000740048656341471241663099446951883328462808051277831758650233798685036994853264170464971686063922619175007966730309450025361478340586186234563373614272638888159884980417927485869008998056085519639251615664557963314403624409694444823440853002531851618337211702866442633548436222040106306749068022686035430128750892530796496583843897273705165641763731122389359409423692313004591869437237297974419326142062186301906272498818025648354286225902431907016000619048507715601279784618908133153241948600958055944999872433976916669476390186609779920707580828158925887143909751209652870158951479775133970702055399826212062292060527600530319415389487776489478955740255238776785449767225848805915401352862740882189493211727076582917844952052925255862368077262290030450495305731715772229129690674942409476630439367949963028171333585856852101327210721209645475825063700323924541023139696171071426089054954304503741487776776171222263702185108357672513524048926484055795094908625514786446467637411364651019145626389601732268819261713795794267164433248688037267134731053407264303797839225145302476102088481704581005701524670445026720835239026985649590750598804032535523234628401947422211300287400032750812339696912219609872286033947789046241104554076199173884794693852427921522725648509337037223217797244367088166819265686837297502792351876119718196304977292336485557400029062639461027978228076562231827895608622334529579221105334311976103242178444794099521104660812239903856981339838396964983902483051621687541330123893157975348095515672512634264435002212072633247914444378137057365193709672232062430413096749621296019026767187937034917013297055333381640629926589930218047869300845707437722938006331312729850162684544921579586904139013294090952050731847890558043506752278676045732028491786309018156900678759602055723575609700208466527176073468164033970546227365275781805464621492340441680748989380002513548056639663621761160406849139285864837839816791019479003070336407425206508578264157995934203846936602406015224570965744556254843471046110338060865231305605484950398355102093471806924585365296043941762687997764325727812782320894021088773780553778282571000294715565895460418966115078455680675522502791861660036082390510903667745293859327484695587308188932137714434313708541138671546104832899286031474510348495936368881642082553194085061875883889083839518775812543142658716326988152958218201762325151192525272052603074953789953652289439595109032476275536373864329197692264410000280956591250883764832867941312966035023637489319636292943126329367175926056578434365627694283381749833459869116316691243566303064608093002845233873379813301928982402462326552889140239138910272798033478696728884395319822233593431612164026542165381394719237965579594950500919824660656387232819323084458285177159463801993848112504667195559520173247999346899885330566024946912137941594131936524442058911541093506550441170250449729963554672815031851985355408295721916621785829764060833169054318401067945851006341358660009638922309818981243090550151080063017947547863317160295212835158149306585556211145405780292561898018748218239840275891456258671647818586274751963901891077585852840225622428137779060025392233424143641302854846256706615901129871002104608056280999155391197292790980901899199783595575323775759925927747370820431490491304482283002969922281663716032595231475399359021957448541202627134075277328345211941831005670015296539260947408198741938528366578164130726083435953235609799512650595489055857666902584407980771509020121299529398740778971343830528109575225987591997661898655658360423274041630017710558701768669894444892047389603176859399228227077623964507765151421978266488342328493345762521023149143890763235089931555239103560468530776914425117476360568355672683002252283762260438695992329516395342105687023714163357756194341449376730627439960441278933262135061369561065085961375720044576170557847279504463413673240519533695495016394660668265648449063176174760966575768033447006579110552009316340002095801368659260099176161869526943797379577150542580341273156681219399924587502822719430068661820845145582602749839141361853366219245745604190958166842653425430088383921344232555126127784406903737232252343296454839128066280587387351099823164272596055551870216550724165214098285697721756440138254119569924159494700526972603916348999622335208796871082620418734775718872803846392484246599793457214241276036569945940062520771588829238790921126358033557217065521456595257451127548471765163177387275038822564548518331089187274298882164437184386492055904904120713612956235818940681517523612923290900181222656454298512111501222607838738781289775961943845361397801648505877815148379680843772553894082412747090885271624800388975513537080189086032060659989695993436145875417634757235252911529299679232902459010915674218991233131615421823511855509331528840960341937302162778234761076420986561545471425690986372171691797552845177428375787538454849776093913900647873759311862667691500236964544535148587476737341512722208408543184005818678750103879021431599409176263978842124350664668832666266335616264190393675571643041799439208011416656710066381332703974841446900666474358834027134138582003063568521248703590751301082909015071868390459557764565130897794025292321148624884542761318641458521798819753458107499940091881634045722553125395765977654973667219015304427308186386390057683787684052947321465400364727665665881007439634078473198695833324495752589231005471498685188602683952416188728851147327228610937360710184414812436174626939766065129862128796715055335085096121750574867555103620128650763305648483295368781419283150522617211639794145170616092424519890592728034018945265523762202575879229533591745242772754217760456286770633763139749829405618883971761931859637135747027754170073318510306272881458529159772673023562529832164151508680031676887669671754695792776800321123204900907390299862891205987880896046306025480661786243932964681866049544150573045592108499796495448228102123250864341676019763489434674916519105514437493302981357956915662658117185398413238722427401438048005632475974276182192388198972269817533897989008149851396577708196812209275486170395887451762945815118328697538651858354760574630124194749138230236149614695693595657676023122299406452698988932756566048247057361982606993842668240968176391104276731753655699624414188541505863550304487931701117555913452805756499327972653284029171993273123260951984234872684849665424401326268877639900741901502729176453904787610644848474065338929414002640138960115108134069134551784390317381206062995509767004475249809647157704445800837851033429994573819772370841346203772403642611578296742703273605183482450867205488584874806568338120637169698046412567835408230131343933425071239507490275595782323807510833814220251818742166590996720334636817817582932154000546915178176850380368390756947695542656164321677939812453409172958499628439560158993199503471253650681144536725482804130980571340968073437435723467358828652613044125404048291026570885408019701968239907964869935192072639753875500268914229554335095982846638992551514777963947020234422964432250818862349623228950125244987503262658549822178929202389542587575687373583787639694136317590744558034866309075995236456740598659091736180256787289543001286705640148405841195227313769383109815732653816993963622788717312495944426068656975695202171482597566619792514941776893239362307628802799051370289686373018348842251917081253346480518179496500461866885378058456160743416181175784285655527244786881501496037396986026843036890976315379849672426166357336319226023600883124880061998962028651513003756836317153528731261026566308421386838001402964356206577280307902993688904165756833790721266135976296034594598421861363935033131373252379944616082635625008979721004785313803595393947585071191499002127555839629511945310238003854283696124303079489637778542608409241659280762633144996802202082119718830150146462312044675091484322739752566892084191996204984264029901075565867342916221202214387985226468712125361426443033176147475732738284288487297180382561964137794089258568671549822609222718381654587277420697268724179101561811762262170339402040429644661166097902807558554152704233172566333380100398609858512579010480747702364721258399157458359838772845020744777205152234648379050240140008273817107165827558780866514764037544835821705302905711587247873635908461990964919715740793889764550608992637351835308725661215898977619608075285198227404519650931298156079672148612789918540974897976528182566060530640472720700753968296604968097274270454618925323646267326778793821149958606497181720009646784638600096134311744949420651648027141548256218066500672188879428042841703239848209616890307588283676177756635691388515789221910981267977339037718516079074502516573398464472303469409469902332764437879012363462594425176799429126018289677637763576938998694505814644645583671076352071104985700078229489396411880266902219762647647847812220291969994423090835379775756737212875476216089560520422031736024265515518773089193622665141266295093530302645299659794306461926461380339132384210060477840184616538111604716629745620217577046125809767244589940452700833090006167148073186770183181790909365179302716249232729291304954402202556512546374916284971814608526906584146773166196265830134917367217274523355309732833506371230606088500397498115678770362915111558819125822331893341247257930564726443791386011677609023973428118964493649729104752077587694316553325933233515326141565862492201934925547983083490350955860031285676822758715332332769675291231337850965683854267548538672282115112675258418556298930819984849661180503703969155359022304411252689918037635437938905706188071259705821975387405148652884910522774667210575310024280476762023294617049658537678987840147182159425244871858354479792620732323557581832396418568737454386468617818331970805528211139524399789703086362308164252015555960854751306492303262486782337316613672262990510678674060706502790211553175995249950294757378867085612024157815307816185434724563397064729196768608988174325859375269228624511672120904328953446885529114445444641619608770504200341691418213012771074350174633380009304404744486208181385046406528673324845879274987731966935743723030991907111463904860821852051397501491529402673075653283739113474174049752990961193306851374529619129184497054902698275071637479222556324862417089868664349614723176727503428283957993531113637666788787232886589069507530581638464957507907633163132676566023064608191807447563557840132588056728561240760371810277620184306687637847494082803059088192163943422891977315846850445590937542749442214634625412173380571135526616862771246522478323882306681769873038722387647709825175607565809598814175696844928298352300395503932931879737496914898559150218346790361462181044230216327868145185555377247556357134591700620907489860480566546601288659924777895842301036823287210248599155297726649466982112404256342174066836029659104975164020694667179062614299628234898464653044315302502481598993772406852592241360939400997096837663441583498071506953780086839420993256174374755721803691186113346257884145158835769837264556066547661942292274887683271992783441087660156634856484042121284730213438596711816153785157255161128069222908134218728096773885885129650200542490227434601455938898640678916999890784012270058706352951070086936346172180336348494099058055423252347807636813809964673377440094650289551812426646995412744639838500729352084020478545878786893458151541516860158481123293943875691719728017355835493896565692753475717249293373771372076601729871486625652843176041914507826315849970613513542629860537850371640153653234945458804153894265131980313744045877924600901207442057418181428001857706280721576486292387472877093186406975063651630680953681396361027354933546798801662467984175427801094617136111870065363921371079439127618407026566077345377386959565664015167959084769141445860977479094231950947905317181848267795136007069169528890592251388432917337321571696785100915381085244791098053052314753744296202057088132700227811803603549987374217649849997056208347183140927593402894477776447758416708585328220133785563404987649859013624714109658826744133338198386756280375522745483253931946333101979791162227846360627583199079003016843250029085842061587949722414845052689976658447223321425494274111327207883909052756039640985771281921476271889066470551040967306591694819312118088594405352032436322153272160124451724399831745828960797485936989935223956813190942457352156925580297810009810426828949912946044762164329359351932280051160861249478064881705124367472256597024517273836309773519394858220697089712676284164365608079836719282388936959708269659044012566113252472886939256668306436550212702615491515974030600526212999958960668954323200823927659173664230952806613232760382229162312868627696584125566339569347088208057311718819570232505883470509860741076582539740481248731872266319311865031862994496777058323208031657601048992736566128798834220941765571503665097188216088857860099955786648338222449917763819790888490079443939318282738335399952207783692629769935616569232558050921278856076959797428785750338375470408991936879409519679831822074111307357720952754690837746247808316454058788087308040260802654370886145223940326202839565904358367984999433809889520531894093635579776525999154212089866707471062368843561182080640391965338883765399036515546940791344444548447922185927351271919991585940499117197465274550750168200796833080993181251107352687534246302182256786579771225742240203752568852987141278741014042923858921399526311653931425636804976736330389618462838903275118705015701051487057804939853299100426306092262953098882753085281497500840849341187404756715807840734875019470884342723373029403704496862608670348095698150042507553624599219041193374981512879654630053148992130466280031980269186708464796778225815397879917673286627174702244394940623348698776885154637418982648311774227204858443319780318994813175060000709497641980909024358188270104971642051476652675504583401155711157350687735160878446149839325602536668664396476200843552287068922632563945020162177711469464296895639751623763289725548096367480518730369552560240168318501920521929100062759387265270746708942719259079209169445068166860871409443718208987786924623242490891857979485980071782393529569788981441333166904857887813358787112429159892034434442782908338950122854412314456511900228379517887258172300177403419049938296574493173024232564308349398680918571311059127018368957422636560155057964716536133916179822607935662485474647978210833364725663717485279456192236218888355172397949803544534312756694937796401790427005797029131981839326380112992907151835955860943188603706901386492467023746267296801707236091176913156674416763872177950681927038130347882518841620565730096385718877071898962255925518374439735078001345608234163793386124546048531359722270583595609165401539775680129933232751361965461614586742564773228918561592661232038579797340712251988340659343384535856515761867331683959968290874450249527711403767106490742186214291086293754893235087850234785166081001337846018866808601195543953871535788464674536098102334429200180570511527938187910808433953475280142498199756059773029010746163752824079610415700435639365123019540596698067090462230687956937033157433297352966998045950282252879495400178487987692805052821062945479182306378348391407496793219637900835229763021686931353918642551058297858093872674548460508061622876779742523639204449628412331501555326808376828315520197929317079393178101412503744468889652983763636488672179505987770018580557114562630230504013590064792304039662356752671961314446569155440541079387576549093744427523516022748065880557970095225860829375380285262124115757926078423059636457602589332461467611753717095043086151342076065739278552492059058892021774927676846204260553761663481399208988691890511972334390647980439763749803759339132886620136380852249083346227323700784586850580474297128165352138817370074886451271938114945288876970060073349387922533145685824738724036988105197957007114768218765279907568526168715516751662101215189595882488467697320145854893074058612989395059840845139763533512037642423750966983763055758226933199151512589046078156789342626985894130907574261204150861861968293841976424013910992168368529590974935671444263324664102331684003200272919749215864250380159978077836251884394173052288602204142050393581917713249979755182357959061108751918517852123290376727898272323125569464597802032851359212227298075612828470473580356986508974179136027840870002490243023372794986415763372142489633908759886618336311440480308252279172002822689806574293527785380826755422276069911877680482069644940589318086280397272779229762012413647420472239059134366993974336216702246655396452860032735241551060466496426513885549673988208402001591193185787769026760817899801884320796310067286743671977311615729751215297630551344828155371457064124789660050271129856326346692232102783653531479184825404816327720882114320778636534816360206827488702585983569348381435242461288735123346686288181505121709125549169962304165713062216841259622079946774084885607854214123519578504266723288347360701049539437929353966025981539248104994133578916254698887662961918022216390587884255868069550440345275814097953950653718244621719112232018493968927768111298076636386580463689669722351053766988906797917449645022367432455169799139925030335962310714793634636940375772098885520992571546595709208176528638662126454221474522806943646487575844629369128189852778808167052691350963865142963414658987927299144295857371475498817750711541824863163506858789340561026423113056552305287693904564885885280863950044603355374835130239331440804667805639674476975417035933403215768930446560002717134691734659755324881914190028558375671983725567988755657577930869799483962742619313153218426154112702679801659602302310283640726886658126214726559869523124983543414737853626495012213510675266198443178088881643883536562705528837424759277016241124241359972301082490303822822697557871222200794991459884316779888960317435654508254350257859933262700732384440388593556618881597639541849723943092284280747859151076597857462092442836346915921934431136122618783176385718885852083251725652802855069204978320219705688098090424517013209818501189185499153699083874115326098816829518594543471138760525936171493547489507467950930632182508047577382919707176187397138548750295129059744798273958355737146896906206126416953517393435962800296836372706015046833936331242266432407821868521167216481310923679151795600335526991324466634699152195831904992553111343014365488282557693693853651828891511333425662143309901036371308787816861645755271551032928188236008398486164177730318304329286723582202150977152996220997793195154752645607476718092635551518145375441153040970535212361490558919790854052058520408734057793239598725574487443489048485716377041084056358990380956846684347848395552324752307663002469690913273750172175075075710949966863729329788260698809798550644062237919623604103735714581175039507839011296531972702243452343225355510025250059213805570980909370104897349922031230072391733409256810626779029393010248661114458320404981344494082121589432467113852232322949269747685090405755129524647239474692875231481141873207187335063243848051423801442120421428962711763122236723534077229467719273043039342293407435898480856397344034015932040419366087838627060693141186774784471411725758935197061857901961554798398963154719536958258030571167567149000660370308390325932199812680885251535431506684944633766688904257870725564644827766001271146604702031366993924316405151087573950513205371458191749029258097816288099096235248248911925888267001411335513626281737059450874007629561641135409457966800282660546863765004296070027243820994897348192308117422975532455064069420424492420765412089200060188538618797170687585463929960500601301217641984199363480568254875339621550169691405326557065477162841702227395396706621902300128493407200524148443855580230845079962986643892276909331991190983566862147653788662819627525292549067026429016591280019208527563704908902029141417445323081118140467055965249648806813137486147090207685166556939377983035557681729273582101499967913834712370462252197594728282157671209402990383886115660545977105111935613629878251732336128788958716269203805581416192451591475967740653534068503954027273807689920816207064256660556684594381233381076853106959259715841042916805289422101570677024131718265263873737797812203769930614742911645690245651898347183324959318142802587172078842997280467757910954971050773703344976928853456412892098877930146608365836400287523752120055440441186786248831217276591599972962326744911424877795414152753201551432557242568396094408073345407944636524107872899144506453289232883720118419891341944408421812346314846734429744478673023304906521109310824082939517624244304836899646351432523290690846918791056124296940187939951389581158560899802859259770522359675974832746123423288922158238890464910396234275385246330390022804966759803507980079079173272993914600881390831469735911578363337064352511290714450941289892701120094849079446187700783590446868322282854752302858292505701625801739414098158724881982263947699792911706618584068309609457633980027292416955912135672090416074496286469412186694366567803556294811556899047536274513100108623194881509423062471158427647461615197192301426094286959153719559651739458952107711936460915769175738641445403465848782216473692826265339857557672910806365326025375084894350509200467982079664873270129388693817845330556548171135672138619547783139076174477439314695030533673690400014174992321564419338718144281220423424292613504214465159778858521110729577502756702860551465991811573412503101546844522267097069080312538337967365648987923889383076482448086569989041581387304331168411081841117537017125505287704533420658771327048293710468156850268778552304446204591027266999925376506654805131414525459875514715230006526119480067324780072853893476286699978980589725986438172155213839723075525240615428129852601659699970496528066041837437528787048517179590262270784192420146955151579226336431412962828123502279888076947145188411018019522372748197434812382289624283851023306723238981007036021018312386010727058416711860102502726383457166826612539043289787488924565681847139271102453146611140408544016734430359981621743209997407427135642455243889182373242084048393379615131906892191648839992434325835760377530087890905282992789697629133938967316402545123771862124874433353512344842583439422201107298725482568658975693419460645685328831471505365485965669435261183370052675981881444665896918090476892467122212396636293629435859996431055230196573866636718554870596452956081566181261658120578279590089357530131621725568538919450596761338352762541667514528408686092929238292109781912840805481184912524972184076186013568918197254614253724653911228220986733241701821896237008812013654739802758488166792614247952455216492453329793478043043153160308641683078808570712002176646878965289460953995005143940594331709797156085343584990011869782562306011778038677624286735012540766642017596005719685015005247614831819260188665478827012239866317190166631381850509615608980207300947544551071961450587031959947195311648349703248041730429448663357352147461113297212054935251531720006120727434704320455684878587045328623771358401757429866692370914285049788317327996838320982387196594039532545752793535351064152466189187964462043831058062583992907099094026801245531036193272574344771560391255419072270195116901292288581423086656673597151224512172692031970925553312916507803052810332246269991592869783586512707031754652667146474737378605965980559294495401676201839517083394278643974819284852877826531124982203288384604938475143902241769996464821296118670899917273121463624260942602930384540957912685947985021072975888904095045054231081049924920159454342242405504309224879432478144864076565286909697497746752348110751426280403318696176335547673743839044846069291816767561136906052621739214567992915802269587118128853740673050252159615729930360376454075448326228993302701915224392625798834755323434261857059739090264585224220637632480318475348142642924474369377228727603679755531386424923380788682417239906703539342810422171335588357234414214700475834740329035241659962690385149982259685735372731910427683198772991015788940756457479979575211297635393353657371034852444415328673295772805305951224430825345379844709013292780234593148464134267034449120260602801199405020620100340590107119410885439753995686859560030579936488300796418856333515085662990687479377179189938959517120729901441902023198252162904282213288702752678529441436441223067291159264269547446742401479554642159983695123353400562629706675071310037695568481173990931597223630711281850032025304604380208357806562068261558907028465062016256589849099288507183945378618185535518273455863394915706433914082660248896717357202441372560393550872780647441031908482567241284249131968636885552395940016550924699727704376122195247506060127549146650835233187518100524374556268575292489679924576721238598377354471836615442012576762931501400957018633352634892312951312914226397678149073651658794057927188572460427830817780675388165011634157065491394272846554074227923652326784921797307977215064426854396604362562439069742812417975347645825033043601427550250513765087595595995884471995557248240486486627423332759305834364354166190405247175906439942097644696070799593081999404925712457916125646594351205262353475659770034483314170707411430762840072987971726543800978883757714513054848018919652069159375425594221615584786754289208296372636808171914810938487293092573415081611202370360825905696958346474477042355350854431456270350602648310098180477992955183572717094208449205559640357798850819459142419193259691542555840696448391571052738737190046273167268163933746473600225930600144113223924869397312865603062945878381011843531175072316807236204043393245485523986003346746284814484350967762136157861898905088553372308745850384534736252855184116305460812166710180584398804627615816062803302891475048849184475979986771383504076820328589739632826436076895929623298453851707480317410415172708581325991692829283258622541043089635149967367503809875428253366264998817698535065952132541416813187840139286035447478577437570122376799457930322393225554518303610207268238350760989788625599901927941995922905443520068990154888389104835519907468952662977296511270999280532946095993917318609676910978880914935882757301512277410033272116543080109224026845746444994518320324959456913041403778997276643874153328745955337627762842096040316681694815475867037743410095953447710232117425778188315904183915425584421387649588871934844651976180573355269192451200501938311184791627258925849054557665564953243362874526423132392065950997094492666452336240879844477880014406342147769628868447918276323898972286888733853669490339680128645392583153179075474960103852066365061958375019183648981795063756733029713729729742267556617234499307661708340443534973687241298908379864003576546524201346266910582098001342226839126036659117270573714453285675527858863768320655974138262146988278249264028962801600258629222264403659835439593929500715802649969898472722298228396867842276773212088176586403465315978304793551920605662729288206887767461459670608786216935359801401902554526072824194392876649958305010760066815065389604231624322911752915311069336396362611052019798268022368414652066446240793316894232538925854192387453090453808232299312432539447616327173432707582194198444742699270405837307757445029545945866994938345233256678886929373663959654512542821518778970121733288055428030215627313820705743881788522586256914867555278226836424549626163973111467550152047970910367648089065734703197290773707091686066540710260875561408731814109073338567466553684933774234188708247097283954447190899619228377448605587343955647299892617190483589852762487272630611277993367393884819149915955956546065356834483311611576611769797533252528365827927220256906867645151648303169859031849680551991743050728890022108503615827916128693922676837053623657121408372967852114574360973583637416227492355692301226288749650533490301351579483728623572232957404031099405049892500331377965624225242661303660857003245257314081490165486712430236777758566776700938477962552348160696099783716554796087181628704068864735042615169532299528970108483114587377324572739287831905433390019421602531290254989829857184589550684889884163748448198932715488656806616553628369068553041207582981226879551377923289684414640434601934898450166438235499209219112935042161789821876646732800391209102502753520293308321438793618090211508529325090541585998734584689183984180988629131151892392986243610319269393474493000149558785037301106368398137621885784512749404371240094102952565753883692554409511604592797481453175781274188550554479078619763637946484947770818473891822596092792862732655391678509332879640343224477271970075591107993569133254024390838147584572225996021445503468120338621499205347111650599786456939020895189446053375295201204780518639101339991555982335063463664296872615541808742305409813478583547725475791487344470389706930654230526567801021752859460822064198523010359660459214923593369744334211639062118799207672244193959747458040211943346120653539803334099056335972488950659331257878429928619433122102145873209859413892514267273442696853047033528010201993204806749208866035941908128509262287260259461735366850613668980759407950745129305227993369945615670445827107034385247200304694121954806979713084020836361657677173952049414005432522398384718497376428074033982307037417632458048025130636115502094459456785611543466316139686584001453011372131329224783533242193828280455714620293453099675467991764510048409942247782694199209114342614580443631513796504648956884523546231859138978619546475579894241377034148727658859955961376119713025374531444333888615215586021059992261345837863774866467032050842445648298619614996508604662492797102455490282817229569535207429731562570763156719400540815220417791706272487788403590325711506190663026309542193354265019799807463996948985754920182007555934766873929657301426763723410509763201251500645739258309125917060393011531292083699952048115692705209214472934662383875725854123071049873814929338660755369804304318324173454303313657049404312165749221944071621928867937124356567321795660651251109964549265520292307083054359345555399523070526219813477684353239525535656754299016504666578648889753279204688692505738633061541848335375690477983879579017919559476584162632984709657644360205363935088294521893168674792644509987828434035712098675371400639488704031076999024135547192002152783335177321981082566010502075467761201344326320495384087137381206382879490171062187982775139058844624353026780096845653849371523922093269428217920187759658413184850644723049096939379155644752090523189534085294697297439567959277744427877269239396145205348153706759613503743088671004029718299432765920158770740132046249050726166982030152779776643495419645256172785742425175242960156069169335254810755791364444006898849271805758071435492086104659833834969965533523693432796973854624519709477274762318638362263587837040321617105651707832652867405808863806563369018011275776907882840414895183335026575581518962983809731836508987864305613968898388873452247017345466879552717708980549684995752191989204932861630166495583073214605452953020373037313746192476533786996134028106696012252604722599714569664359295256927622918117566650029325118315744989947062428849073112332088091365839453840223726748107146745570556777338301100610174730505207958778876452300290790043436046104456888505562819556947587590141461847249146230946820158690840367725347335136136382816381609895405128576841062107544645863930678045708206664394667426426860580886012894377759354802623240654680695726267823285665409984737423217528488342503096993577188662128537037283472977904795423314837399819655227938092049180739283218875667931536335762362704870215889296763800583751188623226109838863288288295511983208603269488542957194537950146719719571725356401608929160405615027813714399512797884592275266303737721086602929532384765880016666865007252877332568573704007199346737441608301314098140337829128201527946137593044327292220980667122731803991880246998635957859222180302898061922708136487944912930906215244698306027930244470006378291283945808327946034079136572014395052885237517138581776288786934126183741266945648843018983537376078003571775017722238835656890200450517682980648596861639535540524424475148123755644524608124626308463241117610438810770051106846747538411279516984704674640053667830587596064256014626103945049221261416653068374290145242745078001022358893113906719177261019253903834313029645652848723178442842126012506760183396507427117003693666924016807157652582865208414626851852449977927996661568580266931776737582752587612927720591140058692217927903454476553343331780684459090442990012609496889111055869250671503516545630712924951171394575293186969457398015872977179225684297547298833419178600039855496092862488599968948965669681898802045663555389478582493300764835336845148185805178868285982940278100801028554398293636939405822616651545472717472498982938488711051529515831169490178687990736185678271541563625057271430302082603782544164113511169641376433098325695748680980812002957182262560105687838239257638665876020483917013466533302227500993283529349348816133385843634464175566321010145200373865890157909806220125197710209760001652539443110986448567483880252208850399205280196261991207495356292919492919649160894768243211141903713711849860141484300023568388034762155029144693159645869695847377750829126657318805605092693664301465589310539886672144365746787510759496895818973466148974896153738876971253707591139911826814060773450047178670556843168498394847945200364315490214996475809165280154929255422675634753209765095587410278461952076738866521837022888639555997039827516876410543284817424547911638991666741595700240458041030779125308907496687219014066751407178728983553610047012507722983054272235337206741754725525291398435932094967010657836483256799863801968600066406012789544014148020387266745796377523012665569844674452846821181083611125099702477578577455520812572991420200767481962035076899898985838203009075186174652554114854308226078758963689619614606710314601770511225378069744737769162176584522867038201010648107279545554665486303078955173230552934775760269383591144824315371452388846648955360295495998535657937565945562786503660303597354142840502729217600733713187960582407470548258663960649019272369985252978245581723377608275361772240341082721915232353195378547813654838121880307771256532459388665552270155947256973686899835215869782253739537769951887982670750157241007887757901920372089507696294175982896964000236284829627299502763967362645692372245611354063289940608308227954466905397326303723260653584154711058713842306191361630497446759512682963801192646146118342587503292058138600177626110785652604809940425954459818516100143133533123215108714060302725853743031396913742535636542501946455566779389471558949988493005163867365857183532322853112552057015000218848188253622141527208563613672295188329641224261409811659024557394411208489804440731241256634112590071388799730359833138129958463478174652425143682753141057244066490055606510615281577392259407493809820100647993591411587034016750997385961297246829658583107132868677242200580956868393496201249226025380575157737247184561172625982982558933469693280673052454318658244999288370225487234860094434555939958260774431273263958561334439101903840620981502015441061318160882018968013149188109792528203946383242456130917086958073841774235130099783477174866910804109693099418389229730886042404507895158045782958763935731954552187580670235310392436176784385137923803840349757102195138004936190041576576130664119524748644874212372107993411733685042512269111164251835201632657214397819793778208319334872252202420760654929581881915819205700439377806177498961078189671772237253986050922417517229003526740806226192986620984555305842048597359476057567316018414091256802069222796151153209995724668227094326555607166060311566053025232217068388951491859261763408566771729342994938448144229529290920380424289738420222844731440561102219652726920670553490571904577560131072179028355949783264057853778308463351959407131527293679691094640873851146470204499891907549901945122348906579618114994974676894328843422488085142296248563081932211524549742557216213498626113827769789920585030066176236879880181824589374436800020407990273162039789424788458873525620656591576352409423149951020096009634728230557556275097259004552687689124375444652097997069516743446855024975523282950294919387053640014015225700697611049646070301362630009657431992191151482942618855137163677304157246457999147976936006904567811469640540505345607972162874915072944785078772918086370500920023959747318784424064611725074736269557512542258796710571276394297812547648556315059797847263090252335860594409942223683004513161006169940598553108816825391971647325778540969906594256960703345707833715525571308815257259964283225048555617597238865045067112577708007178891928757795142883497986107597937985180312059007371917522089861492194077048828447883877160572006120211837877838776789698632047629245050080157251693095374331328047798006171479482063674290394404962849879440763684000005887960575100173123728076622185207097618465851874763449828409562084983885108103691996582034539948755992553707918092814173478431179184344559928380745380473823163768719774254051285204967855632923703576019737847784838349229554314933578706651996119400548395508931012245782794564762092144839492137218155215506669633822769979362085535122458180733033787741330390967945309709856615045407940296474384931209415333579740205851557640119845742603344586120206450525510735013832751931294585727830393535666155652335164176562255930527240608406740074694540222455465859518358134096460733745582059180586273553954090793891902963891075259078516472129527894253546836805676813097278823587936664309603172288475291723233393380544119781602425749595367790666549813617659630876084102839605146517365735257307480010006392287115843713430496071505572999429553420764735194743380065866007997619160259764452182322310126638627273790315936422612072917108375736555585909257934715394903603662365387829739566841255289890330259513878663526588046916028960617540418913666134155745755100085622787365763172475103456947567791414770015795130035261702619169605588780314119859591846810832101444518789151002451882723826291261123844509479924021976397000162120528375053693241036934212073075216880810628956184372437630735128831524721039127870555704691853065680332512471968348112696985295545569594770806694138770743658857393550548576698023201682011681905164399239875454442665290260646307327448534937498967615117644849710016298142359752198548722364936291683926085925208309135534998481240761896418401967267900755524733133030489889799812577670774046858925253473018914625988437509002828963421448726287793752669702285478082078148969811543608988559379035050750903650418808453272746667418921787246709669886993603432990787455686133981712395808730888901159402992305331850626462640759932335288656743697555686573971797708074691462668500011258322197968316091185992769385538870830091181571943443177839698009880292286987538460367800608712403080083540047572294364949234224646443622451061219035074323445541636939603756668318649664710944528323972614617073745616844099186611548672790385074880794257302668919032761385051730272781188371394349422483189487773398592450673550230722531682610610273464618500840598790689505171446267940602544595976900337563876988839242072426772578217342362625541056243859541692612193208909297030023333460243706740232672952616781414292209277798438419619802199815251386572691047069031279379115430692294102696728742822550917540963273970498360676778803388199853029057884689467443013331218665990997635632149364313103228750462116286893853606660075205126997903801874335689935543838275890551189171803248988934966728581061350701635022951002790919825982619533001262646963106371515445535799846407493286904653784932067751609112477281716756964761447467140656696756794948682866723212283523653394056592971767931954413528776349607092730158694821612003991721133030257937016281473406018695811463898428360074633966496804278569303980008981857306475924451254697261960026988524435625640965444238604742269334641043709027668686381615623641837134405383272774317434606491305545442470898806794558070991315147694149281953357983835622378179522102854840128593642120838136766405935593167314507700205491391050936224243573773674495153347389731633058836365093561205503424973818966607719585579178703899025534567639980186504971445964019264935273810557458026022996605902236396925544528117023642981765810445060832576765383769281761727306306180690969442946645542865636764147385860716967823109608528093148615222247710041996867239845188590247819781040998379734536471078104714674250134322783746988851062499751075219219811412377221229850178315771614327907262308343187527820635436078865501878142834206716864455936840672702897398158641800385976956851334126247745517149446919929644471440956668343744163187135986038761131683076386209403751885723613752179335871299637212974444364346830440818479672053627210244969395263514425151902278151114998779884907272483204930133561961583207366912902968011826679961619708755816318995909560030316708398274509191128583290387147984436563288204917358766696184004816086112204992893821686613701753693594460690385922353594844104063977736568545634093253145781855874934701173703598739884399156864304254243674128510920256789639275140951830370469255226985740067971445314909219264911844890674493097064499725292796654032263868265290509999959634143257030172874300081730672460258736117415028692645625512686255861803402763613417371050974937504838559923489750547273719427946917457358489208636128176033746174961454197519721144890678516050316351836282622345884526640903300555892136670427557424578315445030196330272566476188276344053294789544789177484960493457443592892332566471971629955372585462058862703640085230241018275727276607610571206228656101169202207887716755285357284046661743874883738956832471366557734430580040622800675460883288355837267440609311461884924600829912738933792836005231196087192301351683449002995845324791892347333517971521427329425877284862648493958327140737242623725271992729968813268146755906798645121502938011836342205688294476436871112347756507671106318565252761609546711152497891103281072966183253462075977628189746265003567393399957356019400282353156755886204484388545119000714149547582181614248559527968529200739682094240034205539309340059192009915844695556670425347289491294485115776761052675508868808187014746202978070431084506932755249828164015535474175858970048882908361444857095677756814639025308569002281497423495076590138151405700486867948004813716881961518783498670753655491847455761818810919866938934686577300646967199855549328535201597700885871860365578258690888808944759552610523488145469533795612047693569829918524236017433327465521237398152934572858411221892509984073789793657522998106269267540958881853470627616238315811552356502131077994102416728911102658897772282635391393511828236906894860568617249855335118629152429442234636197486259371757114010383991500022081130768631663595543202605556134015888142763409422977135806384876748904471426215959843202723454522321351537805290555962524485828846458201374783077049323032766530432272281470701835161273998365035966995673076575356203579311042881015618109005622791750315496104796787988850697723191589274491638699498077036760289975754499881458861294037895466574389192198334159171131656670521908650047394600990579179910529044955248760250521039815201383624107924443705540992246432700298279501369848405201134105474641698382096616931228595455511052086999809702162334248851198727546184183679678295898459915502904499360795708990761493068207721671267344197111361311427597019059646941798125384918955961987153857250219289873823370808081310891312317051370385488079695752967329479685775414767836033777009918954703854125637844523181180088961692281151903847497932579064679480411651704296926803722932377501262683394187057992408193076023011515474497925893216614179582551363831248759692640186151095602228721572158017132114007234644252056562225951046000312941585610224092562752393592235858307574158687822379981630417676133484842647647178027965333991325610402060236417700119949966385708261217196915721009336818225730228647448623323684726514892083876361095311446893454391625594154573953507936814471188138721334758836249481596823589661672151318682420758272350127057999261234598778983969097885555824447034565849509322099258371235801904546287140093984561388566253078264649786725676394664964757588573003909624594667743698880999152152779452911162067410062878938584527788345845107857740460385361535758028628228374624608690076021810419364597220733925487580864523266643259145732949122431201661515371386893875268917590244509399112015280246594213337257192978737944309027840135575828852716082768322749972118558123842423485503992384448959800550520702325980994504161241374482551356977675924139677932498051251562503464946301943090278986246408340026278764462863086465310815475856993940382274301285259386998812670951112795168212183058854692030220967820420857936444857132585675800616681529686081279168053386038670032752779705185311093155905883074670850309644999179193129001303140003311841772582047251075404107740099467360054960770629348963640904387734783356775520342761522470547420178603602985728509049224256452072319222225681100205999394363577329008909647321215420180476372378101072342136575879730156601600202907841036863389743493935113187387033528401708543163233863781465639478957397727192440366575554106669091484568749753753229529243695263169979484105704823447391869980209040819787776875195485457128186838661777453153275917559515285559088279023822452806024339215656231920778764954110652251795577053177499096496647565923942700547984230453937066909017473771595580268802517737287178691082847091973536184040647650939104086861168174233649366567315707790951027496857328159260444482173567308340101107032234731998371123094479828387564275820213696642825775186694545904282679041295338371962326243172585001401905861494219260403870642384220499742434191280312385268011307233112680193437327951990263888842669684865114220041389513619326497575676252605387430324209976167753727901819599856760041179361654283134165713017108078866469176158960283254174406777838198705685528403851070501679291532488594244892708220361526315504676751592664774695163601536573581228070306328757798095520878604788730619745538410593400987405179006937585476351063687093990600096399512435431217520388587147314960571122215793135688172740260236713040308119806291779798307300974065466692969774423165613531332494398420185057930047170915220346258398494729972499692596014594468163719923400172423427847925404800148172588032799076723699624101985795180375591175241462104961776316028721120614793721014379563060428625515493185263536122617861334740652422599810201533173310022907920413981115576529488539753740675448124952655362910785933074463325294591614159387265184500955250692717483733395099752483000602306188052555969324748525776091295658776280359110978124992835159216447888524998749757639349179028485029283578152673780854499849499385195638559449520261802595250919563314582103328218190752198503502816704082785810419095012580847841503985716730679633825587330117913448546948883497985214832316770582682309375660437649577443312939556749460641716925760019135780148581843501941933942493057427875989571751080046403445503780968966248879949604282520672382704644993885441931605776288522112338392139122488334191661226104051887768002789795283331556998969782609464524863053109001870681817694927276053456024409631176526168044180934025552249661823493030622942273237448527943642622876512888412490057284341759674687608963692883545820281061268419836546089741935468905986025504036510339026033557220063511658917659274733539256364772780892210708712143039407481942125281498934590469635223113014420711890291089225717225081461967877307548122060438125080136379805138065740095716095372532452024445916630380396427574059622343587787395050566100044347412550683430626357897855907445904819132305228615396301479829094516683610913972353618373315648214057988609601120746423604215816076673059169129932902716762595274371936929486647249268128870823455084477923276648226023954518455746490645567552857542698473877413861158444793182957721473316161934790237387906584088411269733453918451822546226369293317003684628852629188698494875415125040956680413859865632587723082903323546014556789437688342300688547100749647075765096624671405538418037270263013459814993914853912180360572151066402167666968961929661050785959523824117328450891869763951218196355411779871609752664375630057425448952564388500498060423432884872610870397301199000422763032156214557930911085720215826893047019230850959550991203545648203507564076143470974767780309926272210301114369796012569818134955502169055348010158569296817725800224976133010692878149910844804438364389289371047563836525387181829861297518234890039218740473217495953901605776864529715641706293189008495060089234380778795116766213802043007468912089783993792056231472336689922365729661361653094725668994342876002762910020249270786608840088307953731471766238052419099342273797445521588615940184445550847900588340797880032839967671352217720476941278136213518195610570051176090549878840544287577799298530149146300154215648497723220954626581019857581782018933520963968548932899332567369563023075312474825426758810424621137329713019546510746538159699936061489530895342847264454884189023433669869488004781108156949006566544803460764766637825933373423098133216951710786384613807931839568942734734864094641602391796110238417881763215487026975663349289831740975926892694776468149874824945800203663238739567430039488617579300862085593749469431317526120453478544780116096840236268859389662643770166946968180481875509998977032414352048932977522837928719986917699921981498758531600770898044412528419897623684519752445893876515074183452319178530362911815511391422863392148179431061766186427050355730462727261209395223472037142216461971607339127732616785287654016068998722098711392398661158803085915599644302308164470615631669812504532619154719699464655008232312041683397718176684604083689703870338487273947613840678876732311873215292275294410569577332677034566105814118280162517344372635384197663586807936808745150033751729004666136284866077699502689898795797352100621121228730026056954994103279925085121786399155831607457610170647525084320227555077759015216797552955830222923508309537588501972614852568466960409966026088762244506145190263805904748297856446184286319967819707726880923369334296601148096429350121052412347124126001088092751697292972629993147023523000165019378567062223749541560391215568709204296136142225453575430795010950693161483043105888989559516589507057877409627900412160109078736300442445504479186281332001850597946833873805719510096169362794192951681835415958284760198984275325377560028854286900506651659631361917958322838792462890870527460923016808234647799706708305423625345346132842931533631619357336074582520212253301248200292732061201630238497104620398365461841914688037711149421653411090494093664781295356479750725431776277196970425713811180565014134392785139983863200432098479598969080514195212153177325041531352990498759199143682722512175280881884157132117809908911514787815498966809409067274576340578404201243154595810096845578057917512517406378011754835356469160462037231491939196519329065588193909802207848971364187395381466401562117548431026521251345669166046779636712859020447442658281881081252151343071796594715288537802135267612751701598351872159936166205074697554610914696957304805183239055278499352512550017403848983977909320270105177846319102965262922105367891199961441774680916696300123355279107854397462594995246691125741516057001218147559860429917289765059112764216181164455417932973232431777411355740045712426164988668467108312635127333198859487478384249051494577375551203059861257168890336385125728051051625311609214683101551049056434547973062110652550221726564993842147410800326657126766765973011858444588223054255426366687195224527485042186862193458673051971959460723017847904386942432136357729855291102657193415298668096929904046159251693053759169286518423886600514585256315193590159440101182208003910673482758260030512269344724428528246112339019215479690105395499052575370013728047876596451496025012986249835624600765745878804859342875379016199986345639605004158817430080916603861645092246527079554302128207674293182071860481364885184030722264901175053726600912553830378120912837614555439516449175016559143828024456865640131492001957137309255065158976646631986465168814341397427369621477974879180545351643824719213328683550736632382429614401716903487562672631992157875962147551655136755783243597282508071253914818135170431963099337678429892240268077016479503837997845525173786207097246107554282192818085683147247669369895855320519651989595734736816154344299647803379349209190088951747496290065911713274240328018014175798130324584420087832840905198609147172274065043124021879577219035622983045509011609327606099567643442130837517595550916158976641384165256922056702320630862285967681597868235126165928324135681292375456175105490223760325262421545819037448435634691612858302795669744376287803714866280163312476941362768028932558176415331374090194186126247752155931543033904902449332554038835145220169720481512835657136223072517557391174864753955450832149475193728021026067752153227005437506519571879534562691514204169142149387464362411766019594093151505193896887468551216256237540177724514421242249201575159534210299484092506315023884611495212283325922144372454949169625855865515014289515415010117881676174814608365662274047050500664761248394225397191852468131644284102774260838861466020306267532634908627443139144307410896570475325631430345955776510169555647032776639053577723874149068551162304232125955607988208755310982039339514227882964936578674410926176722252551447600611042599212527133754463657754219305730217905703245352673960659208540666634676529399010595265832376521841909550753792341489619214735983911678537662198739951243894477324785830387614592417555611217150415586457599730070409749809006404750871461933560426129446779794045524963572607058415899330162411148085427804036241465866375496265776219687575530483512691164084991197730240973925497008776158229850613621605258024279998772007300404909078241276945420201498023315016520848945350886474769400519158023744528730763443372652595342606844043569093085835561358199697335347926178850896983560065725280387922353425335016684045181901041262061511826087425139253262646887063331421846353506898259747178770672545232893106805027012245622726388865455046935797283296153639374771805765163812575107478644705288734629224459506328024780598632932587445945354185070550418859572108797386946568476066376911547729289393522905683722578326667720337621672009827737903206756478626521297374818823854146422595357197499248436226846488809174083591477777913103793766071536798682140950054045424090110790565752216458272097303045769363745722078907855220417728359558995389777861498869015326461892874384885988270943034076865472151341205494530648757554670123120946462607042333894759658116314165238855835648349894475492841193521101031081806781209879986031741158865245055246674957890965607610415991947235843689804574663791807644429611754997642431379404131969779822691692734953882122487412290875070422320970226419320299788497867745380615909601589437668827744804718392852515446412136818508005895053398558117224104767062904498923197151707501876827447919945407504732451815398376866797835339246143050890471406895568478042929150385497044819855494375109846768076569668361406900439778174104777212164694330294357064360956223753835353087482809222506201707879758284141839022361273293411104372196294000343552208273234208602395875631978182167881645727265601190910828292306445964622729296473444711278989108080869092473578071053540252302663588609216604823566032672524093091533428341437354233628487351263149220841950314551169056033945649666889886070548626462998866812852244963940140817451328349098737031570704441325358835548585194203159061708407378870573879142882906917634412203281926921168776071725764884579264608915224169912914064703604340516193988588688382458700992799305404510766978644468215644975869485569733116507680125208174566370542434189870406490273149488225631695415804109896264815180384388532481847379879786359821043781302104476642977027380452187879439068341944887105810035241053135483505903412393444556331410596955461083084672060868403088276922531648106452251476129903988657022275670214632011953119184010613962668208176197943402161646024851079765886865182069558035220468607765650199072554615046684837682986251475355018744519605295441907699112484892384261024110185184360646509294580152920099549275180663935464169828664420851478094070447193403392388976578800203447094569107362654822347514385370275853978899210391592646674951660482632395791785022040957999052172606124681049047667251027727080731217145750298455304832369420829258935148542889755262467089010016248762899064510612174419781368088096879964971404680632668543059180024019054684966301825472095228814757475740076947540914876067064710063435698852543361443962319998575965517615288335002958710944456986949687807104400271714087759554726047665614092888902955301173335412034337938378491304539412180357301346692916576381634479390003400240582806752471924544137104354518922150228664759562542421775843097258367342615427275676395849796794332295676237306876088017356490882881556502582392868493750222142272291525497618317562687932084082781706627657116166169325469616035681306487535595618505270945177091251940451364889382579543591554497247283204063908129284337166869346100871200751197256207953429468825883628521204736696136156546059276850540917648866640307992427394556170924584350883692893849630768716271769227454795758347716976751340905403872283869772489704954471804603378574698875138630055406499830994154796106909507674423327540383524497112269717532462241230706562774135878721601992303312409616805132506534415537829026490322849379788309775645298368223268008985582249230141939269368466234604033593823206020263051830789003204075940128984629253402714846364992121788682261978091481782672419005310654712383895431307357068889299782486677626656413898526940305098180966017975468303869963971739863737839866644004652065255876111026669996005519900780727940137942567627566515422147864817846025260733254087330806286424343410914535300341019183408961373713499554812672027468735182954382940342013401475276125721150957672278754058953638189737436034870888275915073323114680891007618207895193937555740327376607147143221862877160664919141038290163172879021934578386501658316922831145341159779620471989728174032935983432306012701828185093199343850043775253915653872177431303582677720110173560196956011070341180106633017163636515832048968844473715405567708324064285939855467420590316410293229003426633139497534134687265665170491815350770280902189360831364877740340877878537161638883711054227283879505928103231421809228661025006737863662484518522959397750446866746233976294200320091881976468050545355542644001624016739715771785202023205926790077784702061947773738528299706959084833203822393539296206928949812871918664171278368183247265246993678384410999744110400468088639633763997609113465695437032834399366510839219123143372297453169216493522014505145480612368876352409777627412729548536669499449777564807499325769064651798594548925386052546968583693410979579829669142015925198310855338707284780179718031610791225444407339425922466751465332272504226033178563086654618299003831973642976795679722398022236914323968374159342898743517594861749187651354467839125303080811614123270826974428429484210362212259095899428654963161159410040426069096932694063379122991415761976927601408936885684202375517494288104753805303613517993224458027216297575961887137224476189293691934267138896174544853080727467178629797059051238400279960879155244022943506492071803089845165819631448741547013939035979463902024202568885703412028832337969615023860852014861805293200745017345705705653572847756026210048844734749938041863597748451486753187499843181282782530475466421953014799343943061875353475140668858759539808238072266826544405798582188120737816119888652979501804583556338740210538235696769049899450331282598686968928460810846200992496501874531208513949594588820628256917439801170842556562759095956338143202336865122739223977860255655446205721726151790884351181717779565154798075029556316956366662424189634954291819262578511679905194031991350551275110652515203508826328207155030872241500547948098914611947205756360984941655211373140413201997093509495801336089879531052106097306599029660886976333490624726709929502726555787082211386267920161761087584321197203414170660616260373683167316343281927475415861139192675893848872186320150508973684628995416467999141685346235093975020547915117213880547509691912759742332964467622670723055247914710307616015698056731372768315077439738217504726617103677115265372874558411628040985928011410606435189407388987396148983752469944820191614863287333672481359525557426076030999303757154664430357391439767625781319093812956518745654880455893210852258380123145775275550938115155125651376745183193756538938861508841220390916589714257024416495996443588165005479576303282737770355026388266344693155716947318811814489157123559922572020141054990875961007866864848439464301433103708029771447797637799975829475223141884733533420377275069102074279092525177029371638771505974941707617297639738668542730971650570099538478982163786196063837391755900010696569389444642642667397547815106487776163399452829316756425566278506768566192857073220549545479133325245950276755593193252144140624080724479597371564716643296285054103244592468059353065164957614360221214538577731805504909481325977443288173300154522627572917096337647853040661677367166742038192600444917838820682105456798763412725556460534967940698973615627788264550635065472530779667199927592236679976948432631267021421939114939104543264378636903628665424166682221212723837304104664087555047701805774813856833237077341281770127912943488264000448123892825151443426568435107234790911031645573556817983037975188210815395151512323667614565875772840973418843176758075810967891986461834137130105882899751459235055807895013227359092589104380394012697360988690348750187193033797479732069939205611224811132289448128997840698104841331735831433761195949317969585884213902452856757211793212884083745141910963623618985759959613697602281277652684534788606947356017703926785098893447743393533523828844724643161841190924003866626833505269045336923941060551014159763399703759628518348890437144747288789369638509402163259354362339249076094074184180113981511134725331693622109805617744531405449960345322946226991762042884427444592631231451164371904464890020382180012233592956629930737480678176472594756718189087466556070737836681012791076322733135731274421031552303046878678264248606471228235624211890017206873762736401686888600299075284089243011462405422726143913140513408815077442181563393354296854636596353958132778747706692853691325907891789708214780362384115013689043949282245017183289789070690420685716163220030172620341565429855953504133317084119206571836632847164077580812007709085807148757303505727575031421568749682969867173584885086815769198585380957268738689237362612201704595243036666227655456876697773108723989839337583874599463796635708528976873408017637115323827739156707139289848240142238485539619690530250765022533799385969365252811846073868301425406368867659612556197561032778108880150775026705444821257431899581093392584500004460583703984590529436970802482875193163762633268160185079719117043415195762083939845984277429850022010929530747156846961836095844773525827832945712985633041836374679494824601210469047937589164545603988349147729442457120968340868257040268599559501198877400584196820185388578342410712832739745104161666558084358047193356072770612577440854326865948833470298852840468254187152613413236191907934392354563860646980566516976293468582274130382466376456985293266300699194853040058440018773551202862952141521155385269119644932784287240688292483768402065791384438405291216828313581117947449524585616271706103270666767290734775955390763284949668374896563866315488206317359723079525149904231140407255083218607331651566394202313352929017666353312364020573864122767638288782027148997000715142252679342020128196220705246808295057722123732301286009745205627989640998851441373415459715414249101683795773995052341732011144768922648497091980227487082849837951112090437954963723242533771661103137476594937420517388119521874978752452219916906497580750607710176669565555836745148716315679111989810678525620928059121060784834283524715172435727242798711646496150664913913827543998407214774345983648105027585990833842837243144681227747871992376237658039718053705714102493102934821322754900422936975433874300780223651379496660417530216435493084154054995830774575224677093828986935790627599767827500619028761051921791897039721089367750082173891370050028623344293531475836887051831351972225737784420755143715677910597988857133197372742732051432533827818337651798279861383978634123519629626904787177918738653835402410512258353200348231838991772731047350605208517851210737272859106626815278651874728122646859092225811199330456399073825591739531017342771565350392247972746299736656873299928432007581480552458700374946010056268288896569668954955287910566371402839630536577982077190854728591869658873214171911062237467544446549209195151870104148244218744909204176768563812845508132634440529756555592920354905840027124188067278241718076984420733352825688397268684968931579819301424656358708958604620680868461123169103360265489438856511052853042057583040798869582912650374905081092070046325609871693964817481623476350438429808780264118989561134019699440638559163430405583137576052971649435439111222749175246111183527585530732081607218959501788604497412821172461287565258658199006336165066431499688471630573930036342710341589517338570360194627297549943599309417795155701247089385801770413732693173745908163371101911339404937387053809817734008560987354376540461884103457511555623156807687844793253985316858518753310162277621046575184254640988185924771290008490621548744980291257054949500154348026922120260423497804287072885472254541537132778272040239856600249734355341350958820302897448209744185843229407673952835526670230619327130428097156991684609437459843410529330106715872771805962431400840084501025749550344630717625981760176522000530962241578389013019717003816625547241982103435612798041554455572239634278620979374815066482267379079250381022350478926207622184831916928838821297966267039362887184794556855781007660463152976294999039248005098628388307725124577018275571779653019942497712702900995675743312631853570791001342190903231360258763490301363127102413123458516990832508739839994945140335631612618283143142827596563390607270749230778663069261789870502786313874743715561829398932017068600969110890232650171191164178415284378472234439690407094445903327602737117586430810062748649343217248665922203589993214176768279538772872566065317574780502892063381674456063122766808885325226958381323070953446381031855715259218582717710120858449059810159428893376768714782089683016398647640033518947929201377526136061962167247847441510663628551109533845555286567101439258616467649077216983312897103834991318787799135124307182584958720332187352410314325890458687684715380579620361942716563805868290776004946267974494878280661498761651252059579966375286069088672758870333778233421264199097281610568075833315073908820233325417352902056149351179684264555588865214575309173358180048210469795909095620323994115110842225763442613476374058248002958357291888858639583353770706959200913782939851554155158742228493679277515932756394362335779746530049225640013649943455991619260004411675340153557667257108281517653528151126212146510724534749555412781400049968911525540140659372873214341525255771272908726938594537254112398228752528807266386609467060939924821930984066328723197567541954787756546047569195347867280922859883091251110349082855866521576559592464761024344635326652738532916195661216508324757154393291813181855480615706452378809691370587323230596968617985030954610597673265577185270770609452166694559900380232635852671834883139491703643557006812342982581274170566055976643358149645150255357553947645477311085238697256304100070042027893963451555966074045151840326187224764115752978980797908497388375936914440446471490183917664886443532805209120244716290515749204991004491932938691368539004404075140629877818472258970062776631367491160235545319258703949372870481645499333270548801559172033237853675738739158380873686818523419691777652440200162218751904194099901270385708571431472655067339424147881028386644175951065599596772319774543899310134630524187411864309010084917403402717459803403987079728817373579190205919702027857397738404963677769770452530294791375883166495037993465710854414281886058378811890150734124313655166389289248356903356437483338851366653715332589747953813734710645609445419551208087676241685192513478023440721537483541589048628688319041583622012786732186268016624737402321189197834979465489999982136304241220284864180983232239052877974189052345330466846287146782997353347724097789626143542173464427831772920541182911842666696126206779208085973697508800949508709511644617502452098174841914321373151554557555520163976126552946103679898843993189696589483502382136075990874277240756752786650649724979738766273394657768010983326288747138679629795568192218941217093621338134841994110319440243428891442209708388110608397853491738536666304696312293395871908488396760467317277668190799934815397646655462486701038248330815957298106509044197119138276727075677924011582402113753383871971304671207935151154359982442129454847728737552292320844051447253127622153403544090619155624491833470641704498120848789854422545864369146442901422350646129122057087847024256753667746174789277612443393062678059305586395167611062701274468029290918421453795623075948937974899709443777584136754508830779869157130131347600059524110383833824278378133843744965150970580986223492359225268491772958561001557028788807829838612323133343509599576789834690269479992160390003674071926838600998279512793906176374046353134755397157601864187197733407586970633355896656162698772577332183886886077355015248281694042169211336621622558366915993525684710605766426861713456081345558952984734063189553669652336599475612332473995400833513882596674772299777602520243220713523243212998159910292869104803698249865705096790056657067491429420557177368319141903572934206781103637002446879522735681546841777604064173345155512607756895605356969060427537747962305646553984905962665425838344089423209207797859583641784499422521193704890390560681596248949551767619278194235513832986431451039277898213438485735040255057829899680547848826238311033332159930656328097542815110668677353774432502165554632336684194854009053397188948827535856041821618763140983828626962902125555471681748695310500369035485744688908979589647113698317948405790042529373455891358001685601052326642565383111963667456408769393540424678324817050833040175903674114442464651374952764264901427407403748741908930060851263538929085773842201279913523276516649424810588217103709943398994934063787777251990690987989713757127666430982964963400256459069050428717073710431771125508352389455975735760491214308806104584121653490899812338043518943901930128910387511126646754419766267333459474988912255419973645656965841854578991334875261624928381367923919536653556108125110753561376239989330618815100045816653836747423400715137105028459905070626957077855399572033232831923322116538156655528337844912555555260432328828503930866702411324569638875293618568070067266164275507602619670694757704717520004663827072641790273949439976256981118755094314246526341243334759382389975487752803357979071710128006573973392570013947093329241966669209478761484243141122823478291681638210998283410799553056664313905690680218466404604955364882188211588861651785738274870662810685520914729718439607079879141825723554255099094963642152654253508108934359121648261769905947947242773119460803078332640666952474531051073844270709797286679094059863694141109959654000627572480151557383779991682066489043650004241766030784147087075221252537646241059769640412775454698032323466665582367711997115630569416397663089485483821432412971237162061429558689438521189037652771480819928147357292207045247480501557096213734638938759140177374014306632251888565832708609817852703258967842506470352877773209229500414745048781929551561709430321258955412917567220123768069011582678332568826194748406051719520596498270249547747850463223594812213962552095224538149324074139487849639282156759956779823064666853293242526805523900481814884159618468885893744178971823613725410004005196953718281395958046187721956010500180299057262200116044176794487166365900616413464019463502678018620739285562999512680974841257509624790019652431687876552963620679386856093600277272740405044485644676306746867500303656886230546593097592149994277134083958398620261041678130688653193747954386763972245030960978358046869552861679449686778542349424663056068448642627159572512340785367068770470911419033648399797332145124553695117145973728541262924987852618426758161676327207936008876047126699424790227841507989485064548801271738252649473734839573284699402918370876773346251807485979448453111320368953013957479385281788631738107207558088011899303648445797158259087503367649601462962690890317087233195896203754411164050703293686967521666552615595932062167744343974110992293621735192525229418117252330472031721867400326211236578974050446223165549910757215249511768438960309358103386031202513448247319925986360990963589284295554928423652937180052987719642753597450435358705854409829996327066398967194202896606534562912087240132881101707745204975437313494593031605719235758994367981949824336079879229446134953611211900711122902138154884500781293879353102704571921695195115220211439368927317562817201499472897504909338414776150137367547557658123427824010320004869873104746670749005286530827893826845712660924926243122795766285848717616986735832040573073260301922127767226093425020064601478353085168912723528054400175462787457549726552442240479369873151613196858012220768461546425724662454047899674749200622657760050828367409709951692270670360552567030157878823812166416870909537658435109243917209587783546257689182933393028457302563571366239332286510153404414836717848489846110387080245440755744688261928265635225282473652666777717834468421152065615062571078111872680054538250280452965987458037247337592627754438503391098528636958012956476759925461178429863683012780181758042199397485927955926355881952152744097452727342564721587266498497750781168114656758958166939713515974876779245881560215213991437214214817050048588281160907224076834232666150521816237475614356616879535659127331118571382506905701660034008380033116408664368701038973388355846177566234961402052750171570830515552734597789844787773167870210918881153157258477402211974448999075436017546377152877697062178037769614217291664724047631380372755311726643394665382926211956712245527736075793350614904974278303142583779136366508675324630437337545062536998861166796088219806381619629544820596965972192258782612562150836847622422356116539574011201108900427481165221225975625606644328225571481216420064823287703604168618045747261223536167087027850303881432105900287051301637178190395796334622954828341356343393074394683248556772208302200090380668412009620795893327347603136474076209886193505801646184299337945705021160233317526502733143947059187813037859424936614653002428747655033397545770842352055128736894746087458909976824380254299066428131046750122878996046076609437020361992233962590469860324328410981337618120956519004078612949247279797318857167737369968642198688593529209355550429862066078844481484479697122462300973291719740952810038999752768537934516848956984786011430872099411208655992373513360410870413601934792486842738143825565321492371110370863560912590042231269762523250290481777420987297182265686464601533591663527884396076886174454879020977690461043472616159056556616645144044677452883209850501828825728599149327073622544035270158932700230295055546472914999543528276166412422315953414395926563005890973318472636910035656753468231865515959040886177002026470610309580503394544068107978443796074449483308819052792313023572721742888949592218330976175513750095932365990156754975687605398969162280740527322419814773257037854266548550297017138963860747112464103234451408913107399869335689820909060439538889221938729362081441659899508841667046409065505439962366670733143468683362752037306612435599565938091732630243517539117850835159563288786348925837024686585052203057719985205035950833981914322198333437489285804888346532758410697132359344240195716508449019914127479823755992669254407661532804225099407384680482769316766649450205626322606021645721630347812959606459236985674640815301763598380559004384329009223660297345191841084794642197479729701287912899935411004807300496997963179180055746984854809285683719788382239567643919136358809535639536590229283410124641688478276078702602577983370332864366809259097487108781345401801825434817790255302886954031706264706029973964978045215511886410668578946627458173672539500633909525042968825999031494599328926305226586157366445717590210536890221887649616850312438107747536762371054295819247130396111149746596256148590182073607607596209109390432003522950836595116876831294352321782529349076681392181307113578247569416262109584605437694036143980599649996881915035736528296132069409058633193762975401382023760017201363041765401511466560876821222083313596925320780184712841487993480852816669654294029603888174500123005984552435263625970637997133105062336609381911233090889863792881580332694103897241757046474790978459803498609850435657140106611801451294729423042004233269910763749545039396295831108406210926493359665420655482477805749092995427017377336796436182427140303791078612286140327202778560823299123850644616937642083345846600250607849032461208956653265229681555590087284670650244929602205855585929529127609122041585409793584757744686551992040387311827950406993883512715274095686113346639468032237521885715863564471323066939476517294660095277091394684612056631701353567098816472220885827407862602999722441269675985168309535828277657747067191076511438129502274274699043887936705448429628803560236765079336473476862719907500959699703454898293685645823651827589168789413211249526376138127976670404746083123414722601054604761428550740450877209373148420252263123767204234387428346401505773599358617412700113139883162278292223732134931183216998201102314324316799967978866240179544585318165776412486082387963245872920203344600603975395627843916719242339563909479232107531038408979228113808861575292217084680199600142675868679867705366574821669437711992029951695190324282467553048693382130987857949434249677072290724649983859533621283954621039737790499521419737906193410563484925994136866354691483311580801139140887436388414004416713325913523200499649842711026320999636276558506059460012972038203856636178445100620330406907743668410629840015088331291654008122036482106379150384265154480044544377370508505373480294056382878701551210177396995252754276163968227691559010806552838215835236851817019793495122576148867374223872716092339377765242749085323604213348322930563820079523078465613770530489452662794976068190235491365033467983490776273963406130269297108759135967608941321518068289724112536753805742502843598403328302992088162149186345734100031668931394774271304897186018976285123787708548484170371120046369752414323342063831219303275713067954175846611053371996235221834770675366419950512984052142880680812322418009981063723441149098883046852827414354650263470809947600233956561809167139051258287271090605563791056041507798234336934057789687747508901491407156817359327234576608969503479448699056418783142755834106603438820149073987573045504444137086808044457503514208345525443302278444333391771956109699347031409910535511620131761939880828096034226649585686416389629426512651644879822148372502711562356566424562413905175649209753307147293731757856483869054322877435387442183141868531790952746625262913047635688152769306262178831010314182035259834131208420325765629756821643267526776165470496071907132289231330598452912964456406599252874330580915486226688521405042515815471788943555877395351706795047186600971577000431996379713261857012834172787854097149224400684666064747908127979482319759103655650165206280784262955520926256245866380130028176603097807215782182144834328730155870879288111663847917483509830467620398599074234588947869712833633984151027030635653941093352475152110342070324741810872380064731560345816260710033738018896535554732982234596758489465638474089642584636762663511316017989546903473445414111641360077251695784963934099925868905624666752160116368913250717507480359942705409518279304415294034200815672920662615279798489292914666227511143695711383880224335813375452857036905344972203364862341074250486965242578616769299157251917429116453432797244404374342394045610777483453694619029514314791037309622418610287955524787698767335451459887280391650367792549814390494750273446478164440900356603458479516612468428725691254003907168621467292815907379256527440521108593913506552662735465995673533126536663138149753800813732849997900694707641707939570848436981105809893607940839347638444290133234458472406577643815505209845060782710630596746469657247080587107899524478397040979541918028060220861231522617505215065531707413049675284385341446456165778720486057898749936657014117170194083005190225987664562281803157774822292687708407316667545179810648435576571105872573062994494294705728856493582645108146943459150348922745366731406882570103151928987352350380688118101128217874017066372290497456568637180535477089337657600243022191943616519078876795458736838249594655585011702943735232442593920299984117195818131672572211777603886952604685791902010990758438012328508870216577453025004876474498856194288369599208526973348411648432464866665675065241910377434822762903097806908101866033564815180194823590118859780337078348416511965271179659022163962243320092905882885752559927811007504450288994195423839981288251533092990081506722936653577408945255520139516043491556873014143517993950160877899625934609757553543439696673767428706344356373116939837451077619623231793377767348420334463017246032863176601066945548207322094970543738397167255222842956691929407416377462656530002910296488063791455090529716733499707347278760913629887758685511275608540776675219516631188477678390861373092545933292574663209168770861790643583292727272845590525714396557351295400674354110743754084997298926896849534694312297244851979010668932241783759933949098056646114259289208467961727852341296967438642602553011493526525676714052447051923553218229705992957464552017203597665546391360563723171330555555856223700762246861120417581060606027594162436273272052009044085654512173765186547901034315203901825638971125633283374082992379831463926992486099302182876902863621085692630400127325626728202095775240743167047659367579196078626392349315719325122641899051263479747741885122870670206910438332352895316640591166961778403221886156386311582010786984480724609214644467122106893791223261874606342227106555666843481282308033232154088932278427836745184775606526717601671449010800850685665133897223985992344183704457772993745394972300735479230925643646745568983850536842466417685803737835684811621954991532840302247525664009584185162196606445086833737150385881271963546021309331504139065459835220321597949258023527634446544455216756618783389810000492436749077769595212907755609509280208980286126847026334235193744260163222071582250860092733658867977037382965035222328923022237790333046893581627625666933592183877699471890466201093634813422493352245121408388049859019430258646379451328808982378569938989659349810646411302730593781379279994920197736666686568973800697165900909966037109660894064675179844402388649640083525509582086500783334363225130758203022212749889529568784790209227515788610159908569245200586361738508419639067046255412095116271788037784455933334492444542309394545751798266037197821959716429244165244954783241444553189499324976267988655668761993584326834789068567126659227092968647819577054288338598616134520890059342833825032099025682135071901747231620786511937885607045382420025568691652374336857862107049695204525520564953100460302622736475811532121789706499164912013195099169935605983832816616679201834081113669909724381919572033663480568348212292813192281991599628204894975928849908462939424352650375364626796418138731451780035308207909751946283630904803507324547787315422523229699394367915639313452411245296307888593844505263120363114890903953697715401164871502510906228528759249843223402277552390592336630598944107644617012784580805614444319384273915884266893708449837930644609811446112007095609405083232302052887370160791555605984031608478164206073730363013745328516576608918187168945111552552816433404062403162253115889965793975704692868013984608442886531658214678501276505520936898264793067927863896890154553829649861743238653989881260205256151283272019429667093640210059628246773854689556614609567171834995821556107613494256773474222712820543126038784601730731417529191733409765435613710472414625590754170369505695639383430886990989969778515545608260335295113929000338726104487297406969766423904645675900032465911877159685810844131734221536322785684637786260809551727102114908032909613007803252002583113152303939990504704551350184388411843548367178163731614775138779037719878276016711570790004141210913802004780097724310969268081815122129043240912867363238640459265713840175899741502157523099714641802414586651472941888051362765272424927306609755368258820175214931000362574421519844538577497382605933073583513710927198050300162896816399721330808495026894120692962234275299019568599443964353588882691252947247619806687949421344017756600671936581834679613474981123912196124879279265297411914312273539350085159574451776534911498721744694349728423489856732420253993824800438094274154625709871926322758858132707761317293622710016861159516707363886281176418071207576052021252912231560844434801173369453002235826494487498098973450866053820554728326099351428492411238116247489316141067565304400070855299374383008893953803210481532312342394519672663754183111322227905108349952990009394903966757427408122907902694108461846382570748401455906591708156689854202748743505661021590813549756794408382844115617924498072704520453482913513922137738982229682751673278235639858695713676099577232365452421569072294655038091864199779026154687954575526846932367358088601251132605646850629638033155969909409483098603677121227865013242461606665474312391289622883912324543989549991380811157943325531915714671320540069550446373086273948191951341114098278706220761220065101177487736332937457264665599180512712023690613225165364163165144332916109119185712484813523650504720778026444920335130083366107761671577766112062396268823546420874209763329312016945041761260007962866805066918874548161986668495843791510854428265229121703553888837186354268632464147797448474056484341465868055085735264394459606045368687318657237053725913454600745601361338613074257361096604232148906999941797194265748137742010670766382281119333121255657301618319326110716940955069771326401577758292204945814605712956001496728133144847731131844797736608650398468689771244244068717846305105901855894336324467768890871257926339604521734616914350890689074282525433668801046418556681066518444106707126789128526983556725749910731755396914451115934101698802963301768302823917876743581961639793027684725157035208949544548281921231176118155109425616691353440413280410850645100732916485247580143648195613646845314838788404237360113995643203214929598352091976642436088885819138600394967680956190674297548427889142649386446661604583734105083716164827224051510624387999113424872713919952686629961850397579473826921210430880832774697103324305400490940941671418153911309815430764568516757988745613201791308976852241442484679376589543462585810469104814184871650030724447203588644403670411022059950169227148632322241009035765748787234995485706345656231822235053428312287587384978084080808589139255644188659732853702287811365684543488071465767858711481609385856550607558419341501714591786614435286432574360710207166477215433954635723424522863740968699843108291131306815281985383067829254874849243699191912961247006177349378891306303247996444432386692353293073999589875558910805033669398299329669235062601897496195953406984051361687875501297246228757345728315152131818027212149676525279463456747298066206184233681799536407176845651281150518821374767945330703541074200627969540209617603838046059299407517147391241707867525268840462899833772613053027956155971056115457650259297107814062015050209286297317203795208328606514585950250136241932211084839037586614346762819329900974736524095114244433371270155786979759739311005210738852879568632512643375049925685469150228922490511822943232987864488350805744360316717247905798000610586993142167209148309446805599841963945922396074655367472176538096151058918310913902689867539106985585592939389517635701029898184741497890625821990929921448133907896449523663198281118299701194510515315992856150635152542456013645587068362199771138359029605257402897255460714852469879730199720393631983564712162682830870304388212168548314528873378435903116712962274431607945640443682255697661748858705018319921816189863846152255538903023810844459324610839676492832992164987979995139615704169637089945337570747623690891048898889602068573961443530673328227337547460359960520323032768368371518340221964430764313906575233275601447161260424427299080806989057647504378436445760614585820718334712365811244893143268441387325482600753852172531231747679014756194101882165732159157341639707292349093792875055347152337987127648199195417439396394851797999982570927523399845802780747691384178780251607214356959535116778442335159834401402057115409075276836431607173091046383265688066433611363714106578300131174804591190103430572046265311923143375235496929696729067485714571649367003960405086558857271855898197052619740627365486053949747433751284694662362957038359140624923292624964506662736663509502262227671988366446294145034884366639180629018892565748494142285656138012496546689800981787441500022681083894349714509670940903866606081121017054376504752462283025222524835304083780712081275318881932024923933653033501365648531081130235900346234395935402202497336952472897619065731164379023535585913459348216803097280698315596374560949400164170449866412041209173333723582730082457312541499447152979959797402059839949596234263981554961851107031120883878038890792445105720141734720493648506747397077283349353176967763696215636953807536181695948039945293626716629402477523153930698466023132123718888261473148716554444964431178077422222508306295876896787869293693001391790390425049645961012934151027492343131485976098668024844189373573472482953197048392841933603223935433795280868704707906854266518334117766636804307185807348697043160979502665752089619305876106072323224533038227674334556639817320191289388801215382983214933440100330790439966782479687579561010519771300844533042875796934748374599717810354427731431134404661189843575380966771980653038063177140801834818276771246952911011528666786868777829822421746801652366026949938296548796637846093353263482809297096700071347982817248173655284836083811811021637009384085846323317138635508008114895363212976596327467361227976447618035652809893722165381572242105952207118773739117875171087897960114172604635355065205373887958348677102783690150784664303153891677926064826136613213327513160554100283807663062837978274330029298033591802423340706631033407330011969716089260240936042210586459219063743847353990316364547026908578690018890107104579619709501639499167928397889238916699238445893045803986008753102453819784269159892639963653997270168727847027650180652456912844261912975687428543407942337147032136284465158288894351805719539891038473340007459208360562844641456834518403805064444586094960704021704732849887840848012847074418376960044303673581994835394922910712445040060166480340370452189945800370411054131176766705823191359135566568445801582054558734349418686841862520632896740580440648123208762983875046134419990112982272443846355171322573203089479052948941792655050942235116812137630287130682161450609040940637048777058536768112192177322218991946511771786498199607470497247143074714611601532292033093344687213122985436271801044700478902227587970331275217585268858192246082259882946299060047998016242621508544734818011034114161035172484055023099476636830073121437374250193144203083607137265485135175077375194228498706132455378721400296520659870500426006493201603314033590518348118463899480693566793084669216713948494307235927451376920308208237205284002537773324463697171747593943231273067650998712367008702028952035461050960138784831234615665964631286938185563862289691282924623584824124035345687185794333574929071063494138679093176368286626679374071130850908261652685819772187872285794830081453115526805645065717014446726876812134219384603096584716558178871890490657881776186554541138693284266636021583714981067895223026475460438615300380966997452544031022738609784175779301416388065627486593574994605587862651720558329758183442941691883907404264457501643251870085362134935725131527373858455683916488674714041062789861526662145787584206776132029719283379050383537138841668468437171784687217883423395097361586903064812175321164695859985993936680450566435801219466139443972239901232425954807599749260698144722074041968470612773909041749125914752036305286645176734640852824893895844480450475909758662260643408472199252621688976574364623370103851953305969204020144003330580514603581305842486815940070795496899841383968869274943743175345074505235637500131320515762425041608182872916031275900865842548042580638484217830522386320062205647719680194222191828452138081021895045896146828582316205105317354413185161288579356958499707404708664467242793839382225482105304374173078130164622650039538429427423410255615392899274975323341457014115262154598097522238029905309314248081782976792495149057578595141024268531697164117460692696799696085811546909155022495026112964282239534687042771061887485740838785854286169228396609621845628517624158606035665773368787628239026193382179969598533781775154206483720627559462080382242948689083013337239213339828771772981664353867924804124161786779576294584262792417290168810883265101793522593755066296121887651381517868861760161019324811696008907326643900333882000600158830143491511399262400993536326044529269161307663165520283436415436162167818213985675405780633359608903777204209094256229882935269905127623406266956546332741318836295962976339431512468663632377691606065507919641167135252027394314813498723406552483721809783867100757280098946491979697876813039873669344075843299163973766535728408662752451180513694209734549431510469526768039171407986982196043865736358707237356787148573690465611747793722321837792582774589903644378967461846770355813332357736451020419990067530155908945151208541251929028493222540702417419361234299051102270470160491898466009969678986550382888599311064084335082005049100996427439707061998578143969733772307464886713187400147266678735290654193241913414932753158065481441684100297836742383729957355547629268193975521505761776981690759654484678129727433932823852313286633940237538252686470158277900518511213583749439317321258160680945765618054050148042927475015591312745817893997419788484158225581545566248240177550819092909978529551824657389244565598586469032756918689031691156613855371432027285115281825065907441794086786210699898456813730420588540894591035764439413090974054860350257214389138894258471075095796000615851642659308732991593062699026436565900721168100503253723646580474161061616350043570052063177608824744459015737656620520503869966780564176972794851999589181561127490462107658762504724490551670355851616924195984664027791395979624363798051027184144075621550913943147680232940324803288648579398312845199881335916038787907362175823599292366301837047226887037234960331720034954528422129983328775613676543254986564405445932742284661434017656522158341049974455336740525756890689560323147732495543201752007132760938843164525734260820974481658576267776946989765532116467048951670839644689159868423713387401668938518405944082545334572760967560533166703542269141799608963845241952279873307730074544265450788553722724733614660659804008445265942314500937891519738098487127797950348837219382717540374253661944164946264099262230018217666305927938149930907749137125815844372932345910328074935633334175416399588535016749616288956496929506644096731850352655110144941698180808833357115738895186619872938240009342063641567179140236986220016341227367110240748119323542212885341258362156356933440303739499721773598693160684787428525050948951100227942816534277373337313944452880829893353744959789266771229956319181921507302480047324687282336585938059714109994704660526964888423482332869512599142493863280890175975433938613238859697729987485269696792802035615824895867972593702294301476843638884920084746305936141150128099425023655532926544765603852233689244599554947161992586587190780226964694421975855342495593245059438570079492199690841117386482153514079049051037256087950900811658928675695362419266755462533021543529326024746390796425282321068148382386140484432535507464347767595691047462449803215520212352762648558376949035546799808716806856609691600555415955063872320240366815731028128341249003756875086903727355254151719785830914754841480608539654370799102690200737887235316575256866651054085123830432482927049503862952434424982075893594223139121935298196278283349042155778363083972869444842577179373977887213675366195394032375352494450635924315409854908343224706994893912507668911491577072179406728192444665921628111376037048889714714753720266469915327240576231033996827593606565257461765094919111147333057559525133470298537593522780240198014686504584764827593884980208892368756044927545078018977867221885693612137053372297886657526523494767759816094027201465905417205323213278232652493719804901412630072449929014140252109592567266449914241953768125673028326035733046455838909705817248127954199480370409722059086887843377872921833758603250530920128994845353274427230020611273764768417043572051437169035062437577387845827847277139445661288152498354800210743523179014301796409397797178849315610307726971278885522241247129048217183388043928222669172300618640834288562972861015197416426228000569892664903551086680101543951539020798055103894236059530513137699425996649909011160550530037094899720259167933623035773186342751949956547212084261443976958663754547686332324175402653245517131522477635079390382462400181518726325826967457047813156675006510968408026428044018037214008574803645969017799225812579774873303678841423214643372941972668888565848652692524931693638861421969974052011370713875191589759404081573741255762065483551037473008183271498898149946573092945250308347401346746233242839576678328825292457556114609930914398595009249661469698636158849819874805096717824619160544972231269300488688442154356793760892298125596267534496306635984826206304494651086218646339277868490146584268330709122435762058090397291960974134884164638505641355344800871332351538716658210831777348282953795229828534323989311531099234804555479229839621406937029795349567217706686714274966618382629553225456586531415376157219840758155318548235457997880034295586067212073341786260593621831404562284287164371367218545465112030930907212805776786307480383663254009987257242145480310622038360673429085590248832108089072612797565663994675444922673526110026459963365268258087105247248130582618780827944540532333212707463348752998935115141807494764408389518894272783406122123743737410502649233024682901271370899512507043627880051995623581272032758843070002375451916862802326211249661785697215462005138824507845335033545339385646293244696658674679078080542661781010410954088464610937204304011994556072928497879027579004613011691192250643734030835539947621019955928030100846135059400056319460204858707940210038102663907839417063646033496588083585225272018356028378740595217764838943366696130493685767943532599019683190834758738068904854861633575625595574931929037544256768244180718544713652261202536204489675267230824768929376857247299793227554383105361558614466678203546054958389823519920838571605603114188210548940744562386719596546045060541517405253570225073259120786803070196187706510690899884057739517392778502893269025953210097316938888294656377403536127135725115515926588467164691973766575418020041128706828722074699129106925951041678344003070309842193885399718940311660600578436487169901334284523994288219034580075413235289917449384303806169914543062771321181759992162979405985995134727712885572464291663517149507282993112083780234715696177190461737715541499950248484911430731640679912071041142342367729782195634159177924938386385952057431474790683278390314925150461532690789014530224580777262020726724104956853794554054166318535994902766854110272995825726342906987259436472048596438324442009376882257022490394011502098572190629486007972853731838052279312664628866960947571596113056021730232891401245586836163224708516486582087405240714099636054361581612690829361686194380535285672659715404656233309747636455223786883179038156090246081651565652426915824256431348811672427906487762476426113728604206094987971302983632693623637633740439142835474516742775249171146109845249519105417349638840050087151136538832282963280343455340634685906480115940755375128682082819188121359967928698566347775392296465915101039826090194323231743949385355712889989758518062095656095178384406720039761771589573608926496015709932039957885180874062138450012208422619116608542979166982988171403388017063032822751574271089511886206330280914173031167915803483044436941719208764834633138412265984795326998173111392511517922973208153112000636982670576984024953381026367395330154773954682295641475175592750748898114342787879580099296230167897896062676605543820391727957935218020983367497024436978474954815580501572201379101587221138033448898378862038790210763748285448499782362480390988179561906104797691320392219637245898472464477660301160283117256844266263158365067099828074434114013414274625254899547002560715530812572312009467587031650663520336285862073597484383730429715113639758045674439123354922333119682646466310361541751847717356682480460811421599683716254152690106940189124457915377807590735968124176747628365142931148594643420064313746042521041380675878583330408595033470865568490208116805598544684301421581119966113909475740569032845093988611952679214749966246122629649472886304551282727004612244412835750296516975625860100872699447726626791178880425904894466180469227252897388049041350278408737073201264237841943896907366676006906439335058884744378996783032732658272344627956270833063554795180288614147341372933243220807199634945158131070458548556141282135212320603193778929279406077475861703502451845708847675791857024773996801857104368483703023792585866739696282024083841367698976012859961613010194877547895135765683822265000895793240257925685347135996469268666034144517286436578268404575894101253805219298825452734570802241699690175212624802875821850342281862701031495038470869856449763221127360039354578949816757192390207521419375483594948444524691611284911232688384534396539257382845616554649480802644384690209911860240305870916566564266729887108446290969203249011581246991736323985049593032293500011997949329973289059400609196244207250198036904886543194090835781774447255035524481661185843881107451588020517758689727283522244957080621772891894802755499440848303729822008923961558900706379869086919138299998482824159010529662975354038851720433892517715780813568003658425214596629180478760293931150678995840168812686279485666114880603004606561102727516817900651003478214911822916439309122532342412143598617765891246315830040519310543298900807199430008778809113131832334377904071320343746916497681133772267086617995947338892413007375700534909956795657482873134230233908768478861676755087925593654151968456373979640330102501751242970684431319559163472215753302522401361566966345036653926755658240407003539542314378128602279761928894518665972532903992675525533605823054992796916235455871561745801181259736601770806129669038179990635460083903104892258428819506977144351024240277412050297346428396859513570582810822002635147900243742890054071228899048567722045931774407933621192774955936431715131991911429952337798064456484528158304124448218436594833717979752647178147009384862321535960185616731620857178745159716288622064446546797055733175850303126544996617706698997941435176623661288915391167151595386313168827051160949010434781154842887249002528655569034806339912403736120506863887839055788263098688900416714392930919578250244585927647063319844635487066701967716209111021488131784056778221926544867063761197076413051012203691077360201173644664425250467319221702036306263249586209062453882770565873678907049724756022350710861058994903652641552649869655917970729164710808103945109558656452573881069751193911127568829300887329664413451837584954355910193371919351996610268494187370890023779326772698118901054798185271634508097188391422101262574722120229062425462240421633310221743684271809448635665955357531567082258977011562769727012936734842613432051727804175571888029540319689879264503616470048117147965316151323831000714513832987707863447401397406716069816002797419274144605287325013770777170208209357353178375128017723801168613425745195236554563787029978888889967343527771852229369368994526569089010506251690803788939166304520329904413685137495234292327747135732449934811866731030902456088621992145783418768622409345892227393372758206838965882377400232480232337398255076284468978986457636611589825597473082734733304363179621102197627540502385619462002748998381875470602417737679947300150897474962225378856304759601994879458665739648341035011794165244367356239352895049001687164056745794969285647158754066554685700236430629926040438422383348586230592630496317682295694867548213082041397513222703055475446621267178077799396315027506383800959934101877195060151074269570270581077323263463155957199198884918959580092107463090603296904936922408482791131729780098068625172961933297725069349556942757851789839590354212378246955402398086797185228226689203937209339356777434942532160953157389565629462322290196061304443140053592246008858888123196514704029354798724198939091192771540241562513266809012639094527110790013327014595379072931512470525944343559267092238293382646656453754116729779644383139691723473543571249885632167741379872876913626894786757095540223725691280865058956843218953911194530688176180903828737421604954324283061053356362887590821182285167005610754530835178808126080468171749784520476133863772240568155494802381889649130184841897122062119597339159537088639436362063001557001082803805215254107800431756781967814273484783209129658131779441496788562013378282306124136814530316297139397791580556659890083846664521011127064557543949560106736424827954858584049720168669183380536235922054539028302540579032465682145042603867042814274515013381185841858867071923820620681999480206238300355635392415232266788716122791803968942363713728770580069145354170932305585841177962496488991500447088786218399987324101468492138669034733556182361784512674964397569609814938750768158191241540173620527550330905134400159068113036836069991375105796374850790274366271708242881354200677569291647248133204599642722115644992569606340400599326071071515000427968841530894185960385896202423422291640035943608382710378351231836064329247816594677011401652035434442298825096374703122625165623724085777432486690165908519838944455633795189667056937615409631181565869827688762437720394849992388727216646586020563667712324466173830185270510733683030444143047732475922676837098060506272388797212273061785737068558207483663065073458493969883223921693282500953073427775723428782964110306565363111824704674895278968173576922308607320214001403296562129183198982154217947755890699746993089430938772778747522400064831702025336654296844800299152456288815431087560957854910053497030128091105392618421709591224584454300413321377779330774299687830776450561889358794719152875377701377287306666909819834416563937400183053741603416176743733941803834202967527918841536259141935116191568646318423525992828392635776009098331223866027555637461454617057004888482549590533576562282620031917265948572079618345992512952300410575597874602037978891980476758683870502121434760378342868366465412589898832697650374411771751250119598666003176141366245895472879478274164958160425526429772753344587702507115671496230731060079394906112431726527945360615645950572225435315847134734890460953104982025726351621744870680056256677238314161402121026722759144059655044957548110048672179538771157184805739249258846301669813406716268519144517018050371357526048563025674522320599896969955248358351149794848261256199301635919972370023932897398410537180445316791118977444889531249684755759010364485756770907588253267405707262848552102951807444870071772339686503297492428254961126955671494638919581077846542797396956629732319766813956215997173436274354924979146354317348491075529731412814859751604306661553717089960149842826490156956413435267496894831318095049165743072045281205049479161072522150079174376918879317378182456729380300495959796082179890280836816712467299040083329756819540302897737747493548123593561627844427944080602008641954257045775024146101322878222667851533189128801458130734674580806871095977872575535134932244263384933551035627774648215404985352086255591869283361356283206548446113804678496627531063068133711458849309823983610881806673131152907428427394203793789578194937104398330399842965388193653558112518938028827301055701056680911690452214193963524917413602764023835469082732742008899035937832176476271896701734415240769624623626417775388886793474987496544587025858552596714535479942684514455183658855433331435581981421564363727298736784356250821688878143984628085918365123205506354978803640029089486284183909573384965701776689263399597658119127292920355170721037263466125635109974290931806511140925606632904688787162614349303280059918842495727233696393275920964897469887378117383441336725944214254373310700585427631803405036099617745770818230710412235343215042219702639576358360575349106785971408266700616864027882638435858372928287659352453328794167905043762124147914349338767907922490697943126272930675805644791811889611549144661213255977942448369410184381969078632893358263934703172973652875806329290762667017828811552728458907011616206950338041665132953235386249303963001892679979222809947711546290370120741682228770756642714428905719035922601336128218257656479869316022436447446633417001654238242140085669484882862373280656729851665586371001014376087352727170167704991141473725193769539504122619650887170439092640810988913344352835360426864104833447077900198572288788368257763440514516071759062644637662071252090534436450503608164146772886707491833571892303876726883562059868991665647041606579959402987396247251507271959084773790847019014570311265265383360178211311376670829259752585656763320329912523834456089821213562989977309499653151090331612451882686889506100931327193071208080933272160037736794328132044041430678174857218643148692594326062452230154977366696201582901880588507062395610137371025929675321793059894021399855244836684773639726697678970470121721686104923837957755423093794041701484953114666337553394683142679000746148262364014395809630079421581294669774647090675444576632436010040046960558200200209267498464987049006115814577820447819958580244479445216423782062427031825290178247660328758115739145423361185105196490130391609726034145548654164755623753971175691836046956865271333489012272737598883591574554765782098371014768912527271505750712457733191137549545668070010169987651918332638373332036493983563419439735914505412554369239101142577839905479066656387070208617400219928233545598111510965578455328729615433291267191736277129333512391315951232356262723064374400682465828416328511784104955999015368326642939878822614059750483682091513148897933515973942271821390668659087721424453857026721554739514717735286265672203452051757465258912657209132494197950557142572268842173300908740774351713438653932976833556712061600917828923381105721597101024315345091072542068436404737688035047132169374852083591721246045156440997333704801005940196276599061856579468888404729650033518151695080608053107212563528658636939345005187587639617100321878196738908439350197821472502153622324426308700880634844375980668912172911499506295206737628666336099670923859545287428980609978846334991244827840321856433464322404415505641336486161125081683574351530130042984179526776604974965276389509388765388256810271180618391581463553020563359361286534066907228520738172050509839166413488093719492124947342596672281372112866128451924598341041910838945745773159750253797436138636890765410471150489352755139693567877619153915801328740839093201542137974940962230668912784648520082077856451656770326734901161561280235266709639518143799819369395408116289105350586004288803866852823031197639408197041418934772879660964552522799602684223626169579923967943052055954535723021432055822660419450228765849480673438624392933489542958060924985058973137350346818144246802028087890411239698254789314828406990277294463522194042326686443709510671200423766905673008405672953051307416997194075757340722702791374665896560764119695978636920856334828516548546095704896622990312651235331989075912361952315252866878661698560285049649095487665000794528010542288940447522219607308730310579203178470951851711657127601914895087897306812064225105070966743130246215120027222910038521516644769572129888754865466103490242602891078427227021737076193308283924823726711283546388182032748248943303094407060238257451475267308219543992084955454563611154458682481507140511274515410659954635470134528210294390605822594029267648185649486173316621486744865028488020445424824304902646912232194719420377223979211094279499458203155053921603969963686880205698956017218805122019585213103145867054186353265126866532325948075292454942851187552995819411746734523557727667742670815457718223867613125531983622562998981745644819847019925408841852187590091512255951958901046529864568836604941751018306890739991783188844417431368760341271907530628063830783202432978371697813074429089651966142418276157939809526692876356266551695986965582585177607803028913439816633264026938933524030490017483934135041367306346135450116672133897036507152540349694453310467688668338516624384701820292888581475984476660854583499417459428380591350088364794460976197461150400874619317760554476628963120578892622567607573542424263317029459012361320784625279532465362121530618345405347083888734382507792634970841671902393719649416633823203493899490700421942330247525955829811127919572627668870862579425173416561323531066161046236320672733959482753318828871181889897280101632222657922481718097013898528015844096875151911197579869736961918416336327202697977117612812793911495701612417308384112878153970304410110178587096658184974948770717107399527653763157869893843998606050839868562729195478737553474034530200562666556054609374913610031073735640832740216452206542060095453448156884585075424979743046991616298687619114491656350766423089499278076285029357388240282146728459127861775489394000328511759464520593866404492324717495826636774622823793465760659603697462366202403760161523671348472346651121119445008635882213524166052459353719541321129917707605569584979430770248783298316620599221772086766188310673532444333007252003981739268216477697559257150211885298153393870190422600669534424193496063874955322963104501709359993445153069774473517765133244658185203040756227295438183575014160747207744514897629632213891988284289374546824705155986963904455272024100436189172490222327126030835040502657575806687342052057788134201243380060473793972020852714602997814858408108265292444241031475874756663204671370601786541259698463912997153376001181081586949103576003873833490217522153423927375493278475565654530396697028855859418875604697264429280688770264139885208238587274587649645878890068246247013043480679932277022340072340896693976973069597125557238477090206692647451152054839114695412942081019439539048246408285737472276371231060283398205255866576983790139968468043971621628152649143707166515820356983729002058164438893803381430909033481960475370780395325630551912468102042862534340094439579976971308621782125126580612961024981785039076397980508764069490157957745774983627023941386482592115371330492360289185032644836010236451458160619252013815055435066169452166778835504772989916457060974290805067013105377496688100505226619060164433385443728337570725278338196179893691516372154425623934134632342575785529973776914218399646668171264903406149396449080678145353711080370397636408590085758299356724305415660033579662198302322893775887309890611094702640904079349785262445406148135138302323222961785468611801856092293441352221924169585332426537851784278003609726963705465661178337969667855452810621378091879177779146677980913859609478054333824412902323910005700055186794639033007257309834032095164148942557522317293614951647628230653584282304836690329783671033958686843573267023556960546125517630338572588303760113082664818563062099449700958639278963859989105795732966337074171313891970534129160895420645606635656656664916814431042661964064432941548005600963366802695723126796532735539914122273390364355170828918139196999903563932066129581994014341483020741711477636861912931798631378027105791498855861470282324757653901343448634723668058882781505863368034573113880243659519698263047019860643540542771207470905038446485287270326311523719730310899802544880492337077169688469718466006745807360145812425930528106850208121480571130641083131714029316230348582452491644615366529034903990516845372574169995409407387128674388534032797197978877585846443570883329087367724058375564095823196227267759589868501645090177568791366560561239996778085715442679838400770778131058125846924958664102779053516786304090103609799681162143923385613585119321612053112981430374357346438285740890593700313677291907614333968701989943733646600381238291035995697899440939181041337716147851917337765443958635355760657235124313635571998274696025240412414326220295673977913005888047380336128157932114727744738983346068090828788198664385428212130736735978951203444332989174324400448082819825057560247449906601892660906771153218250700317091345032097735883693454404893173393199359635276909006858084760932067784441714215318708219942585503136640971102847457697172853931120189884712893820613897010509207664576404554722089006122761840588642346314812341058473883704580128933534326630002793565181056228016372596370035913470033260506117277553597478684152434725051088917266562108639108109118271249745696535737458049900176092946794250565414980275478513343899360917662704304697173365437165119744151916495233147398889984653998444633224098304513348046292240344315415474260808789950110016005288106146489143485622581802428737926226142778931850667112355246286376205562195529663233167951799032594957519723035531498903338888613447547364119105764884727728282143202032222429020805392122104909214917942197292112684681189060682680897318687527415511324225443500971038798276762446075178866190481450469171441883817105176877225086752725166103264100744429331018780951694907060556351141336281036761995714300748604990440715030654605414990920076534123489617931867017217037681833705031319937027427853376303207936286135076699893158898204748763088460621164218646120765331265624693781099868966995839736296613630708658488535390243126922105346614493043957391726981560636161190144668720956114653141685966181460639229695795827957712323078614039131905169649279284570395555862762707602972290736428240628732299814788417530674696469124787970087025760596402847955619081014508514903450018418293703983749667925924988198014253207532611357599274960139027565253265207451067441131912653207026559338190285692601954437087925953085527248581766042918008330380754556527468763055872495951372013343084114487811259486287381577477417379976148133287733923092928835463421561191795197307725177853271281110829420031449106303346391434789814673230439861291112800056191186895236914553464040115736309671352548982359110540068949695261031206657440852977901301570470633892887992396573178358449468819627508113821584234733720600589364022293010942367426704482209857173954580156783288695258767473522454013519103429512941614977770536342327209186128581074524943666530032144982601352056174989815777084446317776646203303922421351282564778117737425914016024162012089755509789481112335258712153437862233387527873394104942542442975242735233842695496690117909090665175190604146285791122181404791714399865763786619911715333507361754672281718249425793409256732425757656922190689441789731025064309994568717474803432643596715440032001844364915745235352207933128980138431081735224446959782070200818107946921484574318171587335989070643707056489062541848161429229338627565451752575730019806327757472025153659672170492014674537030668221759181511890769335180423310408464723652159633148440012965197063128307030376095911261313082309029079048943936162024522238337687684288403937518955616388928115534089886067676792250073211286656572039365167897058854127057225055203196058296841948935417502160837356667438017617915243182712569732566857138322575764356052863100560506557426147977675904062090507408096843011943760987322816040749831349650089934952614506400114844776139815807954694360459182147413930041652160147493671902367607226394989393202641801520318712431786835365697590238618784854203248903397780618828683019907789880140516074453480745950021709154678545924332850950865106300987971253232653432387855739127622672584962348247021968640498602950781117905256468295496178021510766088974739139522504903620876680580733029595854067253016523362714360001353315240035254751024263041330201643877222428380419536794555430381303625870728989913295091442022383743698453908545738166296283997289409544398669882460836080143239591444544434378766694121556886633316841453914778461483381453326404209325014992825794771053145483564325655385405037487801290744634937380081765173511690471925643834531019613080222954262256300826093511719759020738317538074009341889315915146176265222240753516365870498158939780490668078581621173300549718529753820725555545725995084402602451216468381702968571676992431984715904419341621088991668499093151792971312481878935723514536168836898742259340632209292870347726994195419948866001716732053732711607010243331013638300566488022125385626291224478300575102644451122043563453547281027370889061344058089824680793918963867162926895706251073808027749221419000547697322550672469198897133826832375878711964606015494198768623985029891890392018589842374707725335733217272640670128545350324484094340068448460431788188765066992299353571970640110931970850514326331358184703576373811223867289230452754316389970058517457496377943372550942812197344017074599129008216443061441029749916574470653058190129138726806611762925526827323260924818179092320873901953940677106467717664148692528548816487798144100669557581300818698104748809415766190042723402612806917068816808477112468397440092980506643783184552318559583569057057838496459625437669189951582231040640618043348565997400340963434158952264463900677621226182188823906080798719053464111842088997549421682210957409897918189141540387259289029742848819118169199848143179173950706163959342751792903257189992328807910613047159700020598734743757877493145403480154634233824871632856413907516176663047909463440240178313202154730568292592490215923057195256352568327981173700644752137136236871849451149939028913357121475220644500044880051153659041583213904483573665838545973562020492324444298527768498445116536421828616629538472513596125568124078373232976696047848616456592508256255579772583580767471875702340454329858120761888487772001732438224972901478234007128272571715910269206876296985249820519161421554922355120131563114840653928821179638167076183501202831172887282507339426757242707819111595949677461788952131418483589417734728212590267415331744553560941512678036146456798951297225786248722037160996344818152359895253843871600345700228716216272327387177076943005475466252038587717099920460309368645835606438621303982019221997071666113549049000177630283388524005354178669480191129896566530254965041003442795422290612012770393647166348600240443466036100206970497961756466600078147902892795529837863676307064315192976346387823606296843762849577852503145061758702385126942754966719814887207205555151912640870353471443361410350860536564362933296998529075590439819131316163747110987936679058410517173769439664252756491910772034221975605847215486752836307871330092968144683098352493751400955807643720834773509650088461881550151605260779897567740930162684110336108987596509161747972450370714699883604309326718584983411973211094248447288855084282338980261227452348252234509556351133811959441019533961961015947156715618602561383950411130597627127681195360968963785982439944803291776966942591978266839551202358451779234645216641010566150533823552367713733790308004548194240283969338884673706198991145498845068583195989456368738918505584989918825837444945173590769208054626290396084472398371573506498608277594395327861707802367441755793296698083356629422361551545656286502079100327590812086277591155837549360745291979026267944837914570276838257354307602054949633079543804353961604743181250136595427256205450182733864387570085751320674367679996249367362026217106755104356965096087627300885273939183422182933543355964849151867726260074383048897502017225698424833284899767276593132811459238997008056722449940007829832236899404093213029202569470569412998461486255390604317294380428872933590704610351927824316229216332904194448470443122510840243737829811161163929067008765382951116062925508691415337048759939422464079510184794496100809196312200866581580497893436294788485918958531056982820343211550916115349255206629535782906495297752313541685900397657166100684643124960112470661930026884601483212233116034304370552416455974945842514224473314490713968299352972828207156610455982934222059432487671003457568831475371557646840060590148483707319595782271520373651330850411644227930168702178754996229302164606396689896442513611499674670923819748746701313404512448933533209700012694164080668564027424297883588720739963809080904085691810106371250443076866907408849289939745978416359046435463135336206043539521246538215446476786433230066874163058931824524626974199738523375887658512307726861515031239040376982239438169930149022731380040225596847806202839327894330457703139169562080943562059086915428370167152734860787948466063693370006658556591861397803203337307369391090283069237747069826900307363445882352316104259431451145911033053456360790538247113910656742353443981577812505020281945203157960785044870432520621994164827570857554316612255719698854007628690749952200366310064678692238068788543054772327516201016733016118083183919737526087487632729978753297398773833292781739042472480682906203784283975139292141595784295105228224091257650443596333341518950152963815663180979889371371902856408537888803464626118606757882835175150085669154199427264792214242785614971577442790918120183177881302960724330821528779909583160437876063428199020969359986286680524689197325174650441947291625981048264656090960453251968376906418151048124592974661839740559121945938657387349789612003305655595593503443035084519087780451140628412937786136744380895572351667908651848850860807553718183228923769574435294770154411062204548166903488542190632765137173998592675347424528524513357353725214381056936986393544054385817742296803849152779119247388092756076586334294441005333478053292481457506323146314321806716398248507298148512747267665672034877747362005577782210488920869805577306868001443201550416731881050967571689291158052228051283467939723594621728825295238066706794318512275550228910852954638291893239525137946384683069771918039246555195400760430230855128398583181652755569634634876257059354998294644847628878001183558973217706900863874459940516327853941727187377459329807743391580588591659737988303125655957981751238236325205521114477640450484283328069019074597044216633294821094503635603953495327653768594780702111034179732047669489574982815572604211187612528672223372387556005402377043608220788828435278803179073367880951055065807687469854256558129842236968491252378669983000072636403432937017834074693289939110498281501819554270359304050218779839198215819504734132490272676452312080213418241040457396096541295480912647262364918565326010516244542026776871733889936415097421872308393534460702572583564680230415232560124013916562800339920793904505788569922227772581473263406085571988032201967986784821654415579256595337808685902548199664225802596329474050089119870840660576449787863682178730955123303716036568395260562895362042331006457676553242899517080435025394445160795051363522330488202520218322352852006775325034525903378864518282099906958724862389089881485675491190536827956515456337334290307364793919699301617253240906961188540261129213641713232659047859116343899620944064892701829424086800260618575614135386958240766240773316918584071174381619355161164879293875438350226799140112454527658981175297541161770519875404353723909743675182809402292285185762141621286064439101625407828229687581835209105479046377495243297099917485159932909899174546238151610515813513426432639607655940317224609356186301526491783470040250555747452403172837735238277995617225666483020490319270139073325443245139631081882603512994144978386857358738335430653120861431768724072256068657875723014835134073195412024967240668334569959971301472894223553356460181969353696045813218563986983503616231495652193319516628453330946712513902681235354425957930330548792297283456405535341862550346373303314788721386727941680506055679189403467198759817048325221465219981404226709283691108547017083165361531418744796313350127074446574349895748933738875758283536383437739897206795100158434233400747499353236807826831875276400854576218852058891263140478294373023177077709048295873684246777358801088100287567307502345352699436280435922684512488501477145093470877336600043163435888501807967197714362177798065202331093657674610444806304298638545103155341574545063725189360894170390474848124928779247455599892384167165532412082941373213298538691571620197523538319636929982926676237201148953848259232724488721448183124232249056120636113523995344043235444676856797812397650548815311336232683325444463583439270417524034629745779660734838149853767877990310793909111970941205957081102544138113654415998913472740223252367015923921057250842810006374572449890942147159605816599883831110866994935937774820131451250736490210345731236185105362679378057118833835104673281852539426321154017812752098842359744787342643192785314436103829954504219258387262795212421334168975014458292382344231972510027051475416161088943286439354711738930183548139692221905102339697113834969780390790097237156141571671165739080320721908571145379920549067679743521702057944515809032008338524350034307980633154068950828661082838026019444527780264042296064926725988331289152303738566139196343552418223196229667987792088487406413849136677764288871683646949277011203098536711840614261436480702907239832863438589513112949574447980641115702906031589098650386981660693993829306670514027499298760050998785724741283904035134521508640203249380164523467875413141416682943577089901726822376596234647676106747510549260577556884416950615383355539270154010717606887669038337888624871221847238034424531375967291155559628326336880416355381372644151357559191519549740189265518095142008743418524751763453466849199554760927010732780279916324543554979018755317175216830745450250638132558774597850900063508576183125171384477672105384807933812225513204439068661282047987569763162102618572986286224161527428187181481299575499326783601790826136969617662455842338441943233115630473090079139833078579743337596673480727294028392216122579991817920410221590998563520205945582939656128099032452001139353375422653009088402653158410531166695062350221972168766108580039509700059176943187726220925235361982741207758584758008536428170950486634557206499757669332996820065134526948847079403096695833862289906522934487027177850244831360145575709596388261925366311483588411084085128949045548212588013694283317466378226130093206486623828289026439631072151030407352051532737232426908666249537946262284442081236999411761253750438770643607023026497962145063446113515297705755470358437281603408305860273350359546475257194847038068833478068452111116816904614738949843737203284519985641505827650405969480228398504961866584113973542998419081248719222628886661962759717364107385588401729963590463160086401058941031464045859601407073194610915603628975627728412615956893787094692606574535929509658747655582398928166684172862590072425874229851749686373195067482711359312247705937098436615436289823886348306866258182893081276257615255359632358379168395648101745324205544561071150157542836818303813547843628326776129520914663744907479397924432249716965726580939046508896798400640074029865765242669603784271362621668182914172470113736815626631353228381722561231388946610859003449455494108735498385208393785977840392862517605060236699362717362891251124190226356358224181385912744316259519998849848265594223879420896331559711526270238466771240498506250991726706382356898433837920654132499402307085528917092147039957692844688541513969355544670890984894831996522392610378645346636836598809586723081908015206800629326563551406110259792261954681672060980237103090722659889302727278761895390955314333370800176045925597723154813395499075766654574849086892068923109240947551790235039467040445601477907176061311964967057561293739037633725951500471052358781155352680189456106334617993318205320920637558558709142929833308144125020344456533555474616980479812758497571219096593813229029678873659536114320327937886443895459923918808690353080430925431752460700355865435950789655831701674796575777273468024143794548783532988243465020854382814315509586374059559705347390124846334044340548828870877124440903108110216486258902884793192125056575881068762183799819239701099173510014550725656160363868580043110519337966274802510294679774744141792304156969258433370462274901523323913423776207401545368785970446729401040935162528566482132917287973682664916716286617323297229663195548450435020712188141367648317342764438568381366903372663080552169175636724379886442459325710357458841286475556170220275773821732601416490511314507454710074337966272324967283235349301165684225655609257849323651825762506745000054062701434518976347852090490272890440522676068600499285228027550833016570107449364993628641556418432583323346199746595264120620892228034603633324857932305490127145435733269300686867156049529483093291870447737751629667118821262770331411502321158235834284226668753783846251375355124648017092111010457968438341749362465722973506528754236797920119327073815562362743220552773177314644155732095740244367358796652586641871559873242650130028970904261017125300817163893827481367715268310096807396068619380177940041501391699882203671786638272305287807136176200483210396804901463046761648597770889865236306146179250135922513491625330631604499661109751951598869633099961930700551639430567660667035746516565470027106735401760153433421342346683658945746287266290048251752126854435502162696188216613886638872453650543960723400639542897569537365134686550743997085856191391579883642860073783827500093118218769220454749739608866992671511039848892059697279336129358954961073014603337504242719089177255057819068080320072880735257698294670103703901176282648236906709976417650226958241247851046714504139080979704213071798310216086827773911058361382189426126673092421194387261024301565395297719703142043295442171573948028383973126756018088066405157045266542703519366281636854227458951406311903522880033176429506419218664389407000331155845288674474610567287665202654418077824567662209407418501967336543973589956017456638982300984298920271024941019375556979432297021978638791503356171463969219278450793816392699410865339813320083070228674565630462257896700443761027154632515536453552996268053821693347347147988808390887398413143434752498340213188500964557971881544431854634795184887719017024953947714322231681753769634459295296659242153915892200497228209490354252649482826883548056212571528774910773106236868396518273365074844341080247450148996387332777431902551129140678996800375073795046953057976724825717967120943510799250010580661410425634848790696654893314171054418964172128448796086736848416481926685255364362563971968232164508152086263816217914484106341296717791282892601180044402849341098466733550499158615919999391194056611334033536292169701091001711548221047250426949509647806989842023835077215416906272542604731641821855167759324623981300969304769003700426422146223951124251173640248535386799699147416064351742057399199343872374885184282643435227210579017311127520159804489633008365678040993681569122857724371623889035774472285241055280913631147752560120145719275879971000463562632176714163813593169389685038410998919482742583200968673100927819929731406167992092697034735407710919807031528972703551594438870100019683072737035276217663890159237136954687755148727885666228314851577066867242396966735787316219264743242360218612916320958743987689621567025011695752450701858322025188261890252690318167349202458647046076129838139007707045253230316287987785825879423900518221549114619564224905419738941997364040060830018697429947297075528093240846538453793585849019161135149289845206755002091945161963532959447735629874458271309696179192928495813559479488131508189635044654159147616472534433087961523364841971420641423232077187376683453579480367746773884863930053095681367939394114848644621328823546281550189833547599650981868287724460567181449176604359642788872569015072573958619637237243586642200496950999017857414352954906198966160543280580643572887257283168242600623510359504417792228386942079345667254360023645687223426945903752433279936420207704762358933875411502857943922060269300752199052349371295142229008982875624151021904002092032624651156612476360871666183827205402717216510008930441522138256719165002106066870401219702155767401261061872944601298688990209936610467730738673984958967226752449519238800344903585330727480996978904036376795881563521718624092605477395095209267763540425342605468851686786104227138281615909847087871403999180959832879705641024280645368962745629515837901285449808876541818798536727217806229775607927852168330135165455848921686407924809998426289731943575715501487519314687920527863303804552426549173507231853389629068366787463359472447356022855107256733183880303400703514705430110725348229495012997934886619902834358919266152877105019944183969619758973899062878521599538816868727390249356714746031854547588319918016847335300340329482779647367608307574941581986505988808088031900782821442169268834325254236271581103233482710239973901034502834564243958457847727615607991467038791963991449888015042704371842634312600889132746249610838505374564267324944053325474369696950943993439318026033295080264651632509330630992597744053191998890693219750749244759926626989905141886047105545246774802490700861519733499332332552246593406905285773487761491847258554450975152510629540168390058462050415855445197904956562427714606517534982701394497241038622181215817206279821515395347534914153152361619714965533461580852041064659025524412034728775698127630397568044667732031709818560611060940485160730967068229542960497918186298207658931658974178471795680158982288212873860162773207069102238849339718075380955147528629129833597203395029761871994167465342443886763974451482343487354205869513141407988680207200227961088331515836837251655299020462409337976357911024546152908753771926499779116719406981958057768261319311726784842346836196105722436964772492073428381607324916294658170290231788796159210284763934620361946811324507017745585218797231250150319356014022425187065531099959169265275013412845007061811760397570391949298025129371935592940083282204642954337459278057955847075360912326099283570435051092522377290880079496172260462823086351917049516868485175296368024910131810714857779363895767828760198855702632729043752148310439534137360446651854359429218568330593073386175952292054531037873638382042094070452982458338856038924589425988588613494660160006784025435634961407689508235114541308499192189968352846626320797435368713702453374626472205304225735856014709827526798129673212404734708369229152703590778006020804148874443438217517854637171180718217759571067514157505018526208163762011687104009770702795270131586726094864877072224608058789929066271007608910406887995627059065155107095402210046968208680645005242606875383243666726378484506882735440017019157791004694839657324866946352157136716656616215677026852077482483718979930416795101813098152906229273851833645606816637466152309801617615911165415813799689299969628568733885584024389519003968867846842187493819492577131507738734653057837482116190487661895996843397524171129537688887807265541129172812658488987717051852230311908045078751589441939810803436628739104216007793785756592410440413404275323391051037228639448584693239408135355844783869209115974585788700325654263358857303388455675743798582628755081937899175616908795827813505597550653608749766453781577008503830386817229379146846333947708919408355431374762815588890203034223786353005044113862585183178855547049403198387000455934568243187473201076850828587392325188780971895902058501167035529749680251704884439866714275263657862167210448281622562325166024870168507939202556876267603990289824002538402045513197393298582965387481588134700652664476636898408322421047211387514063734911685993836428201072670496300330628973539121831564473574558980574245896059147267746734478208910384140473411694964334286926727643408118223366964793096043677921970633946671777855482868738197710940581549944753327711803745122121335880881790727209936305326925097070518624655426077936113579507727607596553181053984982274076631974498056476774955406600287442374432705418000077021013529179027162848178328800258614489852252423137622462940622149119032015385820053083946926943581049193015298738713958967578440894829166966782858914975662166674748289797363236674456196884884924936244269279715765146007932110485848939527003537148434682169170004357293171688127587901074776179446693990741981320665873313737122992902318290030191184057836728190571049597800525863987948544585882556250778720032447385934538603095268653046860448092430440528587319271288035472941523122406475849569912944392860388351107254639510181434037230295366566130206272312408100469986700840196543684347554385543472115611290218552816113948185795625039839225034349282398808459177904341707855273715754552309795817568648770755065986276518824797909788122466191823527320730477161068941913533851045766842013054043224917563435566534999855593973644077814127405080776141759587335532948569924611994031391782117526986841938636007860912511250450406205582656406224279257061287707547366363634967989620818893684962087120478439358505605700745207652854325251328868247317574565084603517798006426311790643963496437694538772428295912769656020347938570227712870147652125342784780255658640360516038549428791911602399672286759744870237451819411495991093610903870076267462073565682682067851591868874906225880352554904806902744586632744058726971424285497609597794324812285088240347430120580466926301290467491507705501923418857525560555295441984647847261534515001992164704959316753567356007450597005683561224914476989889048616662984641421345357560952650793812432887543045588559925949198276165498144433602205704033650753691010295301220808988550502942450420688150616742829063361649182514269505111451365555333489906791975590073911539315431321806784723908881381190294612583782744033703557314440963989236776771187298891604296000446548874899227894722435344348233289200124195855517647653684858806187911247544737263742164414393338625926993193065184016686987679634129582421448223319571324927027130723660246205544617954463244955722547474679174186573742034402441432565435736147425363992942815148044425786684741590293484758022453611185912431578281961729706746059830076918209081130577946555646403121223032313865063271311576437159903501648368440864658986425873382164869315113771340533049083726263506794377252047982142563125610508033956064612500765543304703945903044625881900058130934970986000050000924087379957189563119126386121452832762229301669731516359977839048283569618411819641925558568735164316654357360344197240313677542594735857475479713988875109307489691698368396222960478068371159478397667641679558329594578351425818081862501559903532541624251268737813048886960693711774147896962417139026169902495804758147419584740896893108392176267982297578201045329469201875837008472571935905205912242257470680307270094763932221989046505565505217118731722350669917025009952370999094185970362058254923683148137103005237118342779299895381920675087868222950516931758309753831792789310666166197052245022582849084749680787396095774896364187613370109032475643359668011946926185783726938485068350653361571862382582420935072455009396072357679784704484550709558095937642929255140147554535243857434835118110586259299355189368546153484034010127071281210034611401448016799130678773810144162138916430562278694409458859274471399766451444459488833870932728493672602429570616472447047970004742974915973292692066666064169520594584235205516578844257199063161070787298059226898577959580926665196663906270432324328250553417211712937372150968347228932924756228666480490049670188662758994147460066610570868838178369727889629391758718016005365304350122377308278412167187983740458284991691525924945178585918273801638755556379658704051931523713792194458660323287734376022428730284503542518549335122722684250853906363935603122839552085530756910973899125856451825825713558729561249867822233596818294480545194058364509549940557571330842444335683068261678203886860086883329488008299378999074680965460741529995874512828118561475888615345879344788367442769184190079664615257890759663908897482695907465771154021416773402975653502587994657780614211736425384917030855851838775251316800626297621744950053268287584114908581374331603240856367296989058160539975728249284737666966367667319469813375600354641915433621713884934308789023526046734809605737307015412238092730457140320386892161123819220064433079681479859117229340870534599636270136003132230564230236233307753694170309487936396763733524398417806635487656178363732671872194830361811592327932377087383936004058274832696267575043113839281314635978108134067164407925105147247337442023187129628742909466468760798084779245525432833564136579772643091912164133161266095482191918331437031059737695707547634982749441465479198129225819613553421433944724408393305714302230354244260492910384566489654996305236276188791359253826797669047245615642135607020421099547265888912544782529084036639471010312609124559649108222915937846321545408320603696876615600420707929377117687085226802397602183469867498716613682157510517577278823865171364284462938346746670983026483843402641012897487189033181213142734666770910879775636856751725455559051729679536872207088384909875069153302951946642066407076041447947609346299324592574214062263398467573541889499465771846527957320062034214454625553133778611734613669203957178202406967626244157286222540749671973451982596682314912655904703291253738213090279175122710594154508066553510751950064789358202590457417446853793830288689328079115413716827006427742356783089802898743479304228066283989192265451605355809010152807679574134487734427019530243883286657867246656514732635542642957070416699881809694096414111162031667653551586362134843569282410603980953641077423667217966858027289309177910127476268447497564905081000148462321271755201892391298209646180904514152749305769946960590765975974043601339531957535059474981755441335306423276628508010504519655456787572126146431952975794032089353759554644806706680240203901751601375415833936992121359718727336107503691090564358071667680260546922774148941528246174326192365491986840020950354996317266993068214309633819299959472812580849091210276164719883223336398009841274590255059642402543363661051367262787458319250622570825163578163073445825929328682500657821540127015919275505302252924059002720985038600157884672634709480582282147388511547095592758580277385793985867013864929529031433859653881777137395403376485065985047825326108444935966410788596243023992300921297511045502613650260427163658965304205404525183371575628660389879258649907743362973856205076742805249919067284748410086055556995707622912959718983261853495121573332043600477234826339819670660877775500003027223595186466390155953043914651812536620439439934354855286323649715986209762801208472529700498864817209892163116257003990960758021764104766131371575409322005773492025611450171135065988213026064332688674837058104166167490949200347432610746298902041911757164577102842041869949175429131272975425294902457373726721356920048146975613981302996159843815985794318906900608694046352270262483340474792102362022740886261051570093018229107952018460870670146527131165298712218947269209749815780375183552007484824645322487961408986973895974418333629977853617054073888610432411792698212488861798801026333308491346111536849735911711926348091672852491063038954369719577035240034736123479557688175540344529452197976233190982622464156719780427282902860572528151574662663872657538101637881806919698764557654544757008776005571936614873070909925731460991666289589135134623936351368378218104527286969712768782252686933900239486564191700166278641681985821733218005574086131834314377646236934309841649304725404362450359037827748961960399496705003135194907747849832858936965011204420973319708215689462457149299203132979166437354508109205994284833126439559912745582385268318574072694338278105179904151157491965504531531498988605663049838197626496520099974064616479136557733508717339704913671572991459709451885817659823069627155922843771541558254753710506135972528436671071042181418650212842321315532136238043996871539883156205733365934747871308199495670904469400351726645146131033648405316644923718277482984894417425737577010538961837095438818758947866411888337297962946300409679363370774866347792069938753705714694225175038255151852694709845221243999948134478390764600683481211952874399756515002939895558413058191402651753166122470386304127199372071942416127524532643310782223424332484635852574292679085792005187454693712759711344091375321843570940775776970026474075489041404814227332362609619479204089211415654872030267011912027981449411566629020351323902571266822406967369988816524999429803355636539851749969698854660433271991226401752216454804993928943331392030456532009001635559258034351247524765542531386897336625873168860851732911211677021275727471001620136212238332646478288245097242395696167436764125968660749920315351992513274380619736257537091485079086894764360477050993289921749897273266706902598139496388648936198505287244303507804289215653068193843639813528346177349657097191576876295507687338311413861332903472563321091517093587951041888936678728441976038874261031077238373224523643861628885674239141157384200553538102592459105290575920556017576910092022711095817803092112610967344753781631340481942949539197440043513698929267030537308365325632624703704762918075056880150028634315470887482646375710305642716943266904644848215595406903959678449826540907749628820297492441917853342826475569256723499313364072982389025022518681226268976784305994974030266268532628046373109250812807132925300774940374866099634451308026352878905511295778432468593119181809069835534287350211161201685138865497622041298636092255637480548532052735948549084924312612131393548923997218533238713951815378235661334866657591880282514701247111185171511346601657461206545180632305834286927849102237379513283034677241180796262461199414318792934076224370738692492571966782111082358325001798184620292861144131930764126554571481815362887918648771645576705966976223644750730163004664513265639884343969045818254506358122094682052666642195976172068309747841496716935007256484717736523195788575387590966827740002145404658599849377519508028811192640743960527609203847044160325918207705780669587146042618122244076934999569337420150463456961329534226281208603506657531559325367944381148518282566339585072357043709184455703841641954588060444171020496841508432352986642131755929169980329678867784316833873858459265794927211679024272558450634134321171749493164029261325965297667099718482543902746338238563405222950677399248382751760873803627065394285426810184873084336693249700254153566370477336629828231330002961778978723590555894604543050552296479486093061471731688001590014446215644407203179698296951045672692250449275495074385609560417482774560750673421037976978479703613349324560568746574221512564297189722125288419377574490314781540141502122513629562650243580738308685102731693023059352668768263695367586057923368342491764475600928968442618100554140745100959149750522947047003209093473997430022163248985682871083063696504231864375081391802436361960323014672532321520257873313032553960695472131236974847155211910209444016396070209555885549453343137687442025104100326289742026229582770119707229923408387885878376866283870844130237767175364795734954992438729554610169791173899621058431114691574341720865206135081530117099397369910914683476252630436283166382235420106094088878580915202831065784358966207008067416067072438143586375126819331023647754642752593576703595714455489887755115904271291918940619233535213976654746987093199169304522454012868601976337922411032903962708283819755245523696795926759350203317704634103312098171688191749454381160223214107804937960416703229464717851588261679620130099683442479054249892105619501472941147575837398040106390217814397073154965706356770960963003342207991364324050535132593086702037118970355829481236424743338107498633004968450358053564640489258539698899379856224369634244212546895587904420856495069020987842201193237431721843190992574420429527182524026060873915945907498220680056426235855367473086464126309473273889064737690398189798752989564850240381734807783023266410909054102218502124227707726730769088569864621222635311467366187944596777769857002172503989950215141563996294183952128136749337973437255246985679348966981424838944904791805379525180409856360332182691964226428909215014229474227327884104076833849838038850179569013627730253630306349508484293861827829337424836526127379837806268873165832171042459005399395048108587561183249470609026941317623922974471242904695203251710279857695957979391533086100560900544455514768432689298636208340896898801788742792339108158688350778861723408995367650748602807996290958746447768859273760641566129964474451841862466421694196805642524828465996234240886986499993459907569560655351541895191524334118558402566341173814616224167073640275815377631123687592396830728437704354939683565791897202893491343470690141924288233138416646132924673482431364759459771341829451220457178073250325657922766962705951498145065291541570458468124160161167732367001418657364726476128889388296841478524381675195907512899189968898916153549627179549503539180792401924467272202189595979073348673560239953892725366068503997609132495587130418515853211346281607140605988064905098336932676135840607585067653140684507205213648914947684934352954916923822097254359151536849434283697762047737362995673442693112501762357268492086568887960027320240535555935262088513689729131599748875050221092828582610868738383910013458078491758168752638411925247549790422089412215949068556652870965128727650280646123034909584969909595795996910976449997575975795942541724963739763787802031959290616854006136036418503996420732491118310971869041502320904416957479479259982808224841409688358893209769208056895718454210645826371174992384273083468867044598136949391532962472843401806629082951163064781979693088437795762362562124730244370071169659866433772895292804476218310294954090517830300493889451301231217352906371122218072642036303513908136104142593581113277505543194036754914916098614157198195567359784385018667138286935866389277569819160949031564109836105870217953858990056654174272965573707860584349633363823592162801064439785571561536443696922962470325597714026358788023278475477996054244531960570539166568316332571823092008788040012967390415415428836193753464324892464264732686862773674462297040151312399656901673379301150581420384340403520686833345605906147162198016814086408919835469759528187405813018274916022575729797175976485950590837310476466450726086971408951317649063504706239287355253994323109219432853120272455713453194675282602625609031741153373705817610331770884114636733182707380506265367552102350822069483061280299036673739568382444829059203626915580835784191080467440746124160577169643887074442312530171346802509457662684540690841613064451916847176262627887290897751303250625495373008837874968133214082008306356258025186776037473845738613134215059511008575539168135222747289659907603414847202598503688685001525891598306243848192679713113597828479880078558722227232092967064925950594156302364028249180426753915321459998924123779726939398860853442998619008493286729019932049953103671208462892181213380627478262372558034449039073986147995114018309935016118704118797244146711780348394577632109648760557997360323604734799155225286135219485257260461264618463303729541222531579072086216373149819173856517497823421586347519460246076039032328358397197107859635435361266751299711228729492804213508018127157131298003598175647343226324479671775946385615987953958705133736411965724626322073294365795222087326115130147444130450939039217635390872777377062149341330858185560959056831146599757656798676892054017716801590333046719426701312461049968226900418449995986752546058581065235827779071157672103689981349707222719914427750029810443735127761264803358818560951385028300364803939089094574109234686519676892056145101188712752641934417289795293748874630664919272445566580819089177496132262510289285144625293092642989477841485514791941770723271642815294323192621988599987949331947697979512759501275415056017257533437801543375794373965366582380401790539268456922769624220750189809535452549085821464087610971035684063164793212457973525849627054042540059057061627753733066930340242265657257632577453987362215600470673081397733558438104030990973835826457290149735546982918335619539852993633402551110310903503679098363120972519365935687330345993630130200568229313153072761859663076399259157708548511729430767007296390893920546198261223224592713537144675235462784870716303973386124258325652888299688661176285576857830828214594409863783485637831659491981627530744492847281325053708828649453130648814440793666172179299546457178217361639483667817234495976346521207583300723811621445955714202565671352848900665659843910132358742309828060831256705167166188127511179630505409973346734083586266633484993012700230101694763726823884411438247049104187213244174398190324732327062849810609719658003378658916565803163775356149738713976998689130859326402394485084393443973505012011132827080982943898894437360081739981731221541644280992899240046278199455149866346142343724239525917164787497898749435095491021685793955731953348518596054601467567749197223645950272243592229036391237222943970628589499532514970404397034301362686859480962632083272010790044795551965767973595319601094952181308157202907289452242677687323540026391932475920165426963615396176095706174631440288315720000570924120558070890681622907765849359683085822046271696861701365679526082457774640323789247501098105686580835639172691942372399000151834042154362965349173311026523081924006505935688784477169775537568235678082032314535385100160031478139324682751099344631146760919137223592473938473785663111391605550548979253448758838306004029914636659122937030619396798709103392525089099888183423736175240954373488143493248226622711222453212846639989901051136250680619729651620461810347168286785444874538158372218785028675359264225230007266634729839609867280600452521850316622882475333171144819811139531799862485610215886522304936228105362062752112022251312877580514124625313159096399737999826077894459387733407771929364933061194262196376727952493787968506219656930923135920106259800694636299790404555093602573427905089394863089207665775706998050060948979610984247907238450745373904923954331587318863712409554608660975063639242192059201125609105924834091307620921374911897980547221043470370052447658493854331102249193157812252473331652406409345001262908002806949918052044466063699244952042829184599388252175382546989573291132494178767278768414010128054606941276278089015603184618499252889830931896246578199395375766958361237577321722866689538853286900440150083701701713719764666498730146007380329348404881570525080010196183051926797113115512123327480197649438341867147697983320983425073071576081999917058838303873629666296403157527466975757817874501436912596601068250018602608754035485170896985647646736159558745593030374250520951856257137545943891223585872638197348765392444789430232714538891764731266277087198592568820487956905009726012286305289996796203599314507419986404953743913049210942105128267063367516150732483654425988938345276281146345694774992237582410312486146257474723177994428443197963061427721944585362785297652580076126701091541599437773035579731907418648307520579321810268913666702885831451939124019979218855804301284681138168736072750016754240552224027707595538900764047540547282661521696035854944460090971597438229618635308791487935445325919526978777534651199545647232082399455222924323396215036689422646763105325457384470300866292646260977248130823079159241627840528132598851569850216395033076681267664775243175264604558561785211861672093410327928999981941463204345330731925228829395708676604680575087802007578843035216200445006842161621442263244711225921722242855859885748180886722487697775267490268605088834004746660088277660199616554990201744261095561969655237920588780163409717520841879740541197406104653072130682282093208712096354461673192424417961626291323602346579399971357490809129654881703519693975375480646289565759619990594599905964753276088726725121130030769987464525728993719465054111463885633250200105464636595187378568175751548698441957675035633328408563333045368107387362695294293067953227168271643937699876866778376465686220032806539166310709097275034217883518782811844911138441758432043212083792102374622657711811480829734950488184037807045535398372237158450404230594086043209618021343788037207022874522851422692103965459511694410983830322542602033758618649459739983473728270169072425433085202362627862557701944893460824958951646575591298016825523793602796754792637708030639413617179871603881169862718332565670697783203941115976245559680697324561240298518309896989386709054097137511702822593990061608680684931620535951262456151477067942667939107695857258302263630071496404780793484751242478240864409720756981255638352534427367535916492352754950169583059980309021666497246207957723009796047181063593661239673012413565131509092355389382882572518178401776954832756891573219450183116603708815064348242059681148534217355257365449050779099073691913659346392897981653708688840448416600559400381804331648293367134219676103540931096363282385380512136140069580286028796939660963036317251844264281949827488909279862082632801019079193627562115458460666804743781743045995556406853681821934465176844370944339758313921092461900183745628668886157816180307308143163843368016003560027270098880362997314020645245405240185744057247255174245158413844086755995459955348410794744266822621207680609102832283555604295355193887503009415745369904448321440492673479991676296217514097953926143937543646231559115586251310373750166073180094341217631993841118500189331333003871128044639889120999065305165652406608212490898451312952734529650082270076028735531552247479612896692509958603317050737979215297033686400992519910007156227175009835031980971707967186258748359232988963537558506447506629489650722271776740808327429654287110616406544710581745458625220957453246222905513306912820253629374382167925206166875734367892088407946082590684402568714109095821147476296624410095371915874199491178919551615407280843915565449553146767172118795051183094174150870358582775912114150228591155396590907834436603032520904827606326342376698937631302207159229439855165609697780161928162090344723571679352069402384537374433606534381610890542692030956305823853894410410685404432655480245158591158448638252049760507986551756925639047875963876519276971740154869149347992372866726980455076259937019501083167998293708812573920765801342992762187256137380056071249783518863923137113058832002249559975692446514113680562185965622070155656188352446015578763666801595159247624131016076675161666488681871552283331532177432031773958501922068099480913623267108966483094083046371337303294029352540301328050758648622829924705669707132521320078020418221742368347672600942496682051489373907816716304901821216720741192577502519814656651184603711153675497678533783292922275737823489710353082308529994636884461789328649657103367061975919678294552021147335221955546157157412114247790109353277619705912210447822548638686339718111975688287199769286195234388245555351640141487169523177559848707001654674241794983934111834682725390324531455662712938145766782674766416849904640921890696181650622152622795307370571382606905224971675656646714557737547179859178606888195868089107438462566765053176575272238401717944972176011178858695494972223588881142944340669952247785210936509052428464373589255649117476255082461520469260709868811637540613235064373566977227603167682503124168782743191919217246817632923719360775527450604630365373245221472572884015725101626395688954709109221543260816929746710517298288512024181946115068080030092723435476334815068477730700489796612267435906911529811606995514877008335118089117468531387218892189376500803021375539289376400963464956651265128689690083173578038679348206953003411064342538259167994024830909743728321456586514496697350611208617083559687025868610563200776710682514145606987149574146596181210908839951774046223138727609624468067305611065308312934434832412101957683763296970076307913677136719623241061533294294486987010954496250455918078268768559235628558974628452839583689837810839818704248484268952264271831473056837456733598034064855330434099810000297771466749520627795430492420940013512773495718741528922565799284880099386099599389635741147538431240903929841326588364100970168534734509709349195742269083794353363049578274439154609848259363835215350676337611559226590747405320255457180269800869148832130069501274178894613891472099915773897872797913226955094024108989537826239684202570480470075495763221342061468023685263963520469320050701694904946865032784663263706637359571531886950187955308720350859557859281674637497810620872574768551935934220209063266339877315068313737788473574077650487169263758390581367732977008817714587163309814087310840553949048637567631018260579156234440487329268695199782103099335404070871123700616758520300828937485803851368665501356203695670728247819757431278098869312760736064709325956938599652693199135553168998803364938198466212950742846200211582308737667140581069832448479502099724024410719689684549245898768073194550567456725265932369793095540489213043291810098374849587446885556100953951019866177303396027726291889891640322865704509070003798262472242244404651362816878725274989337066819148111660914088764974652012884852565810298119981839619900487243620045867605514175891835534984696178297836979068833462508800076675651717884174433558475129110001813083741786394878744152154684338808312002345078242456197094014602153569720949549011531400220198506671202002811415672353455996575702463859934693168610307116805008905093712758968408888156728758725394190919662012753734948704129966238642118662080855948763798623772023569779381584557730739538289654205989254422910407383742494719365784495955153126411405509502993689700422971543878009167952445022289970931770722241998513730836357755785419363465120515420409416082366248678992967869965665998789930282915639582207362732866067371611990760524531619083315894528396563024149565521242502479675361007964015681607083301212863748360055626259462176477178007928551531281732012169727113902556739654760937670045101013282869962230709840348272659648409134077698655058573501759508649626303058650974976148273932284786748467431754865806627528871986029609358881121290120546749256260584354754917964127119427017157560764120217724681156993594172736184604806687433543893208642985304403894566619408688849382082614394100781824663992146613913437801675338438436634839949628657305058881271403369977922836319251975525690411394303728515719525714375539215094891470607045420741840344698958156872355903723222710739846721807416882485095350809090207891956301670302771308002812159366700581663591679222311101283328903356082191613596977819187504332220393750321353231774541533923275052035883538634064561936971956914996150777092670263338215648341598618834616929467744181860334803588202673063500394004019654428925129407777552786543358678555422481934021707934329506455359828302200236770165356990256092210768696822443218939997135662066089407458341538129369110154599942896718650502149673317570238423867459138394814726887909984853024886603000540148632101529305782955003474779093819800443431523724240531450112344311834061481845403147540406937378405776811658227433566764855669904129805941078762951396157824098202069854267914908024999615636641152900242743466417547812405565191196518912419340522126639220679406798751550791193831831646458593540315090507392279869735187880611739147946740488219378662425537058808377828283153454185704884200643217267222835039876764677590643384527341977355122833837510288977158314791185371343665628288052973624780640460380489444189283382548202647856316360217241882882885586499885986541227247359996389556711151769804245325503087792322458428795254856401588713220573390867085322051665292416349133962108846451337230008432359392811351576124896123146546960393274708946931057142275493194795613851951690127743280848689913770403627070121989494694246168142903945862271141816678667720103452136787880755087758197409408471732368225220509115292675743901339152874535634922512149808561620315226008018748335134456919006232756228298683226240101189522020171093784312928646469698478596778798256074303572731654801281574659978150764613157360427953655079353474813099567054932288358749565737514175129334687877333548797633633224628740160030607598514667416323350422884631049098314162891763579541940149481303357607562789103477773839591701795367407924129550194817521761529954807488818535062854769839855138345413774612406499704606145196998125501709636836882030194013029877659465809994025891560023985906330206364353485949525486617431388085034583950286893101825665076371318803911470547309375295597204742268995365519496240906820112727595808019985487443613383216655386091562195851450555724967632234758709336462773272570469423898950207184889619366515073254544617020082258610184573703399006063432873040924341155805704369356277773671891637094613753513248092086403400635192686197907104923785923737881516673113565206861344164480722351045970925229190182283062489791752901506708644994815419350452356539175959125398420953757943140448641486785037743483088646089620037596909767085188117215508984763570802722140214029789308803075442622324316110704997830976891735181094563439623740277345328195160824396056452822763953691951522277374000719999196641452421782721287295218685090110181652073810725997559497988143140660826550860505587078628377824402919498968502752946830347640999328681310396263255150527649453287853326131223688931781149564293731565124342420184663887827688713351846755547007895798178129933012353970611444598648171481542997096133005592408213542992952251545014135902100733429875863292408826472335471933090691958180417684520920641497323424917663582555307229160250361994995868676114769017492116471172927233304091512954578467506993173427485855785677892953715330953304318817546757636281816677045601350993417027200621930423341708172865407495268680981887038201992942613137031714443528923801970224694426541691246760347263517799489890685829835427959657363112222896112604677413437286335084377947863287163343281356616182889465522471726792418364432928209954581797105944185739676775072961333753554452052174463982869433209203873119674927295765118544980512793822388732874620435695673967760641762302442741408794591231349518833138394548473813605575463572362164437510258393084422612132321110413334462772054699628834048679090406443928450640241369972156551109851311607538157246201378768881367796843563479540548031122517825246471684224103940055559424355512429615060969301610366244119010728040606593940956773808299409946275054357174239179053285396743332537130481516033111564850978747903283088941306841411840448816336429567640612072982085643257443859696038188307317063173482893647662773951233925764583038502692124455111810216845484429740602079238110920042936300429324731326010724345642803773472150823360690025273650549609694735342358369116877704751829349082374905204187273666949831023860842776271617811485801227661439011005015394743166673932957714977247666961930087445556164188344643151595095829804933998278420456554871998886995142028251449006063161413635592063992563905969720648491719530509603557443106744053872501437665472250359344501172966133744682535380005804464624029370340445568357729504865498153452834963855855963331866939897872509083798981322246651505349742445445503031589577379641233137854054184932205873691605467829828464833632362222192461991106425357333688573768595835386640084165084759249541226268045691347283082592287891180975175362665526558649849153563248659599686587557823101711694523908714984280140424387616847111569174745855136353520406969868890305985131773204891964715232323307046169875693434070244228292323929022261853019239594905381450471984326585150827648696904002369651096781104655834483083573479634267196155122008905106469413511408071690176785915477580427520659947533358504155425106746908844421872848159440827782972849321092077170609946367990807378591970550521248874139334550660944727248138165507674318541555520544439512106720539142940851038093198602970877557259358738017509702444677948158763231784691500346804838435727830054446963780463512818375803882069872500780339841284450347940954557272727176941043410827095333072122276468654763244500225365687460750546886604444443904733041454566237031191593911986065506231003008617622531379996409384950403695454166031182657437641471058300566518745882552401155257448859292559096093301331795349213153064895512288275359892447535729324926053529646769472003177541537095001479593041674710162562683943709819170195791750243190967137425600458004914313658257427684839274631459196910231734454548073526711877428147328756711659793087384332523006702733527380393287724342771821682475071751453752650074326121674930510092508678114970199108467114014226400248337812384989799574024910787193526455057600396332240606275780574542713402629213940462867095383356730048590760967358132562257360543391795268485801720136832964361414610045141365056690591257016969927999164471402739866732515512161861977550608035768568623972888095827522618046231707222706573116409285956593456507187181955008358346330622847366798320057114084239046413571751509408442039319886091616187356404859299595524954448715906661646590043818743862241146224582759245566105368527977928170262601524799732554999740754476172944642245189734917713221947923155538862350368827758890575581845424997197941109979557839589227097819431894600418745611551176446920960515650921781425875974822432437867826722904338070813768139425634315936398434879598044403587733062151250761058369172232843251185065383745584785122475868765378020850724853370855514002328658600067388041362497325254300481969769091833559603344503973259158798961517097185107449239625348231585062824540716845210117468463293382703173996704603941388164827835917503953534935462922880841578190724206823177520931832750537826859530336730792440974499986398541452861446254087284969176020484768912402450393874798086395356967012911537558134792660690488764772370292775860279954503876006466570160795876985995392836418464439739403397523837147908253281845465966424656843391870319346081612696455393209438914059277095283541110590422157671035256645855773800218842092528347116122945515570564675454805089095628562133004539489182599681804092241636030156319520534114783714865063106988510373605868656742810270997807196576354245107033543408327263700285775945310268883412464664612822885306779169427907346008433910531206475892251731893249142914359945597258751633236034564374702104537531650872922159202351654076164351560533671279845759038411429280633018458499215950260560803589657365232310693348273734979835419812108439857301284802147867867220802128971877866694894554629247799364621769983124133004448846314609822429004860054620148113754621261264947861766717313600037403778839743286644293844978800655354283448146097994918626092265027878855236991020410715361044167349649436572637378752473184706730277645877233506010399448923663977546102040876529736375857924077752712006549507073512019335667574286124316818554549053729967950578565574012849311938705645739672142765172021130608207457626726741214446885843776033673536987274015934827931177526134472991557044835340817509646459905527198361570770557776749645752123237139903349301382120182103770879572357195313263543119572518920389139193790631561691887869309427309216688903351776196875023060248396633873768994506792241169902453973820392083221670341462423228863425684495361930014453229973452564464320428851964842060834449476588521990941621250302954740510505363224314647205162780952872339998097477189249645619217352805197747728988554201318898098208816905769207785127364397978466078695713365368375597992578195051255591066877092958652569126599103319891254583446905007801244531753534144224210119599745526352970694704663862757859520263038470323546837866919072736064242127248716971748937241610876049054928638651577591032986018880310941343822193939469132866026746474523689567123282433824405485582505339820261845553089646007949160645323042986570365369032311274326389365990590016666787731102418811751375616991395953652189675797373689406659518170871984010195950700252688586733609902991716203048905421666692465881530503889115784578016817355604259544722641740614512863986000840092171748060110917057215458030022372642360337133760889277599503877531915299738327965364136633155172025852049959456451302075957302636310663727238011305060752153400858412107125063183222247482480600863396501093349660422113222456615609268084723957378960652453518144115827526195701120527892530724167796201751039524895619740017823067337678042719771430238557407047561394642702640255377238629296985902820417383806441021932086786428363684933840767242915811578209436391755864105432784060976130877489663623822746707677508796483977084796981648935592963889633448712692202644667623511110396392689499248768108104621684182386863069537942604206980797565671931136078987727583319131335349037361159699146711026352652355990360578791516003568818230365280711835259838460982368512000373797417968461859902093614012984194844047881609321683404495156970140214009766013532011208606787982362378839263028838239261804702839874136215077388325602117248152398969150501273228109894529558148133200843838578445326672739337049282441946310844888427125653608793191946010426632734292711676315849164038386643105159835800433192264687866978888444048860691829751573943178068984187202268601686058082931714454341378813445656488004261671252930018521720574043318816243214951743463845984249550364356629094277608953727142064743091667375206852492967118482447464326068487618777401730354750320404098801811814809432655430420209790756624492052832889200433613261426074432126978341272536189367940587140700290083338579921653083607128839214243245213460082547937341034667221107604773106413199975433612037809023230510171702401053776960289967907799974712929591954493102473576117054223702395464251044733387632838734349498336659384223859963278034655466613300977372845707642046195884258893338497356349911183488696804686781253588372279947383530532182901746728321504734808605398195449009890488689155487750228614258602106308601409749158640315564722427667834790658541071338915660462525871198763753631523205756673739639325793184477092043122868026590860219109104437468509150268390427654749696172445677667007827698578627190518636223296034672788607170200071634455603932174351564019639020429971807109339303355994586149601718263731282924997419849776831536410547994332036122334788762501392211705895288925570719788406000749721918742937345733866054756268293050254887913197429400452428262384161551506534252423183115634171020172879598416062513286525499679534779396438463798599042526552691313285307317965004976596407909273594136055085234509818834961327213534815680057578813275124684563032115422533071454315283031893367086833776765927528151065787316849726630200821265875001813672820604889822082107878703079427466194178131790193761471684516459997925280097051463021462780699822651052019013975863938121870406041555256046797208491304548373689287512923830830787168227819279183647574911554318066071965488727424721097764474714224695086828413255330932840809079738385042991502650666922216000076672036687484983087534700707695291152378425742622097775008695872159975943067659672622430230802411387991374473092158190272783307859273358656727959137785163701554461405293202147184452403565011423099352014514312446627684048690956734064800064543223661093640788954325491176538693091870815484548768556935723410860542579619855152804951616032734988866416049240743780479126339561884634894144234821094262512274071832024411286668073209559473195897749492871985969739980650241665250946893748442439444493227081936643441789620574240440128217531795931853646119415466446763755646223521976878553980209025024431075722195012439560925030419446040344577465086439526093006051003191912929729573393584186189725240422238813594877141411103773364860719457354863937009963132562577707266230482329884643834999765515932131291464664577869738003049556117213586528076669629232100547916680733465912858605473017961626332518978409214958452055788854224466596673319632187719398643137852482285952858747857401275424227937484273645000012193231062778714260727737715886445806687663678355661870025652820289428033109463628520810392681736191154732114180087474920973998568241614103553992622271915630587925509965303859861571784176081086739183560507822423739984563891124952519584071827876471504592527728898976549961705640423213573873394369549183798395387843057763062238877256627124716973917636919779222448353359953797528309075985498370713025098577231494621751266387109417418449637925366467374957401957345630603630795782745452003561524551880824449702798133428720585975931407651172192910579071706408513950780851023412867417677712510609211183515567099115695997422203909290457294776996726301658092310438916613830628028641207586238819258730889346765272240768969404809520014438884298368671903110241209736493411676179766148156266285944221912409582146491161804316468448501397587470785816036410467160664389627994189098928516878870317184961391465936438459204093658872867475264121750798319436910452268753005959940660210542452554329983074992855590554305730593237777931680383144420418040309231868287115643235786484873091898491002064916586730349991458500711905740022821326862009113736756842087229382431812679287552683655088857538734484874284666435332772662925022281262656766884005126908962552053727704154463326177215457183450120740789894590939167047675259585832045584587455932568020343667520497380846193510932880986707837592427746277446861989091216614272484832411073739945879125768103631366169695525876738981708424710230146415328075717896855709883487609880234827242330268362474734682324677479310506792453953579137298397926673676523008775700001237252412765748833506988216590758186578737465722671867326169902827396553756400754763742924765294714690586286104348169120088048145636884069955233134801622314527785066778949695350384858686355714216971642949345516328292004171297129996158581092664750855102949835127653046524123423506499891910415805095604253921338900402847806179806096000533479257998743595788075210319675192990374322281427063415250986284568058532066142411546381795778827194459895348098611854831978379499166379630571842705768352287710727352962439875059845890588212000256905013329171460452688085178322642134174208666824408041529230485234271441192367480530569655375844019523763838692595381719851797334365369720786784598480304634424240886579114629120193874750546725835933378569855072039064989237844606319633315174713371519852327222764057987425056373696679031898948067583361672051875334787086817851395402478029288891114159409228920346992510090004808823177672760519981807292448998994425020530888264972556805016202158427135945614581182326915357924581305552297327411919893089096584286354994595956815148302434629175841009941307370980022708785343674481092472478257824537898490279051745594649276655916535922705037759138917023094561053015600375334555763176123453197743537424659681922508706383807171618111908376587538218494670881117819813035279702094110285135051249462681257732008529261885465512276669707860365844456490924445912796526755559135364950307511803337134666972674568195291078073989161112713081879108474503476597784821764972369340214912510433381858652050547056067878749683075419250069328729091777556247801344165501689228334380096646037013372037831793263165214934078019614344029536194047681365365331397586207803391869593954067187095579259077776299175375361660900902088900491857939234292920472043425284392026846350614469606320952088898519624415618928327045465199033866139579702773359668054078473073117825707199191677092754072402052116427516082974666084530369259870438675667178519637567595850223282980495930692009344930479538186078507081274076939623080156462972585234689014199189383923029722114105850373209209537274116572188845684910313895572915920921921928100996056139580248658386901262045532781143486472226816407598006411953500916888587259340229787825570315786704222731430192372741806824176349412189140179137728482556281675025359444787345423334132945441557780871873597394398135582820229295157000641509609496440591716362745279310949918863120559573813110926427608681938798849805040744521051097635294434078737933993058444880099413073493480719175340814440774754441578959859249406529317545166899172098844057918935426997782034981801865368402750158964014495744253713905422782793001255194730450825400560909046735102054943258923661954690195572275855303183170351251254615985789691983467529906802589933463657044095958785978558236920773402416668562835936025336089427040001701385290584374323630164169427602435377447288329938628711086929160656707293338141703703336139090479128487106925446566916057982005418538893431130544913141629490913022308465728745970948341398256748135835663096519362910179460091412599123693821067564340541172532541533409838532155527461468859424748003006626994889348384165641466479454185273120669196223308294738118363053107224886717342921497393033642194448497766515864660809047087578291890140019252573670872282477759163035007515963093568527769237248028538839930824077707981316142100025372594406042373019731486708231515073655645826574908966654376217539554711743491634272484442348476350937395131366983426626037285592659442460540180659379838952195130529943222009518825818135369364498109004602856421436615727638135155752144871238235139915793858310001573779467276754943773391012662098458528453940100158106256884513637825391361245306616612580577245178730489511024759254310149586401253492864119266082306441877699353595261235829485191009859879994901981785686426880807571260720755383128851054029787542226295639881775378219235542882894939960062166845188427392081171026348869826307894660930203945722979219111157022517516939875785867816316545759420441265359323240232920316760121023112534399145524520229983472477416670270981952684828817862024162608711079081684509819706008628764220076477173769409726968460990505767401273007160364046447437223046065177854718161008666481865086479703101027233967835752453383511100239587279647014671483098285940753611911279383485990925588436346509261723938908962110403312878266884269013394019823575262853120820322746135225302071250991458141127273542945508684043150768535305961893475221143914230501964538066186628147824846196409236110368694258933838540757309002553512008077216265588162959363397996937476363101115771368207579089858322562358154130903920681111510960435299550034521457240163178172019188488177893229210415225364947395381060351694591802506982298743741700765247565909807318125419034403567533893343278399033115225162725432143307455722774981259224494658963912575600513517089856686127079380750359535848637054873209522279137073224289909045294802032271139784644675214829385838281775323875353868979644180952223804698397951506850892441446563164232222047743421396931012715922187020205015925507680067417299936737880921350255234226643563656685834469049186761284618368005937950859737611116549783381922894139103516278931031611024814417354769745854200833222674679757301612212099032483809456428756815248892491845154150768959446263937400311095183565031148101281506814679615822039260830483772086483844137985481751503684379329099819694275631841162008262857250188328348191533599868903713300524999687824709945276105032352049589146546846358986719546545871978277431021726042314951278192341015689984453187885279647399775457290436384686093171407594549786477873916651153978915352624330675111923950534730758603543768794029564594974860978109508645373557104240979878894109506626422868312669397389718565572594286912228198177545614600739662395720737374260506625833340196515975856895176581075039375266676373410312822286414764943231070670869831796049234846594517350185787594901114981967777314691208048764886940760939515605615642160036681245559142052081014343295767610004917989701532541109173430082907694028002441045926783294725803555138318907705284457785620052549734529598631373776344044667698075662165303128047041875267902354222782093329417231345342214816781926790889424258941670399248040380982188812917701194717946534134742788135175297336989085130411128583828908018909383290920843478965750901860887541142455770072778321289099000000809923599614916609879941041227026737094656230810774943097247718899219862609012916575322870317379551426583944393144559240626756947353082037278318379326505577362126000416092649778709745030669984495730452602353235726021514882058817787046174295558844751411752935104590597699683902320916783111929829389020908961853889426326565823815414302341166483845205740937136724045610187873523051868216831419035961036216733721055798884603861198876353971317418932801549651551549421038864134174849365672045768060594787516580547431869556286421827863611420354253125786127725792340790244151443256106098445648386675160179850521770515042016143807604801815096132288648912278069099057708680095608015398201313968016251640161671045010965220586464681565439610355459560307216112708704910809451403362656135512309157966851373597399358570792681067342392426023967452407615647529799406601265756032811412390716018058116141627235719269484606840244872916724987321074978430527228182634554630076833590950504037933596029620475212809502279550454537071255986190535122681546148029097405246867644105590311265472272588563211607199749627041071909660398714406248749577883942272423880765141580964115313300671516648525794090119258238710474800221018985879303936634495143401527377888442257440020913220051168939866214486112062402289344405771696706745285936078156135167036230821223538812232514593496841622641037231018886006371452486199892294803900455408111445629464732191079722833583512634467506917029914364162507891680271157236889748391687647865465496023650044852040001794143505342090897586026883729515477182135772759668308679091202534109292534660004127043306722224225440175776623200846646970260217875118099074388078957980573567526789817693761616830125607750700157317602131616501505047495217691646020934273252704023326146334350003684293888051061824713076032790926106670336285504937072424123760382802608237944003394495040929591184974178399543550727760658333212892799315563249991958973220516233518878015591174344305780087555697263400977585530940726956766672257427241016792230809092320082941404229718572944423848797217737698293234280792129979324188292556007287348115660104046848517926933342536657820276696583352695174129144291444169928403133822166996997912151567253409704976387438753089073844601827255322158274236426222964818494850062182189811294322949326597315901645066218900131733337589202746109768933236405037932575156906028869093704988814771787248037794732022936275543196544550134409044419747624277517417189786682788402801779603494127830311219697925460345397097948234140505069439108432845847717595491711213290419360194610884892641444671683655969955729067032194891741741250046461986557268125802393812188835610361690155016582487458379151461020870649357952778258733348307519243359952406337188335813592528210668950269593981389138705147380612215463930491355592902563699822517014664243696839368239830751989790938608011930163047283112062145675700009567692772866728046590757659580340870534212334477504421402093858762508362983913091631321765785888911575255590849895269767295863078981033647169235763561711972725325585678598425360251794989115983594368425438492640470492403945123866184564880172045839278152735624873946593554188257001942352303527561351618721850971226954943454975070938275511995264625659535473345783231992600826563581230016034463441494615215264369570022498533245118935690554345758054001075681022082827605289608739183112038473597980136439383212326041125598712709829456482977519719048495866842843788895498110879822534215261506471856464059085773123076229569845343014566650284033352648623485381653821397229221664097721909066156347058240297335396305794051173338012731373671743699199493717564005623290415010610998679156680581731072696330188440752567117987066065272157811636241918430318148371291756335732313018488106569182729487281591634783021443512702387503922833845595656922693439843072610940503727318619559170985865552246587690247789256918145061129413941366870404136561926777243868760434100320554730069316300559987041426833132869137733919911819227360845716174043008232974358010342553074139137909843266875907949169842887373161293326741634705217392309531992558662242280603478706795534020506143243318024741050154858518433795924024224083491169001730701817928893145489804413171301155013217275931146555510219174363226612172344409655051011888679481554903912847897844807524592214268974290537654412173860554720502216924630920958464966569333879894044293190726437423039977117237513547736943915538903051904325327367473362399461503415625266888649521006518853684985480461265766948955996270090335357563908717097640342816671100271721266923407372293834060441372790505407756017768964411605220396281903376837095864069363391706393592320580526460093543364872539459528974900465373452483625331908152442694999865836081508984043413275482830605981766145215914980152889174929078261090235148504291598937031606371767828119258666113198356486904687693303663520099321061326889656366151268507936872923415060838224142840732734209579945543341206707819020394569159817162485984180871718714251368286968807347560984980028959683427541429023727261383728964846860285721300236025273016982470141653258225798464399757461483066768142796712102680195835923084641616500567344821841234428138327744670393915907970944153554809300285374453400574822331773185262370393512952055959644432639533335067668717077205896499712288859561856213792146223880748835850925593917068137175881575411485990773176185638005429748361468375882151615276783498980360927375922414175239411511455782688266880543822497850182809926664334649265380617729087830345233668160278041795450412103443681600685680186905437130265052829288491819044804211685052290209629045303584878626727847889104226874453173206557722764478186006952812056421843036653553566149248744230450405737810996927523612412902833930604183794965557419840631983422416769903187401290255572779493950038523607277279879003981052146237053914148887197683067011622983315048981916649292801922576235350799303603209531450680878825425312222675252193641837862866924722008143738359033721963013546498840202327926838500918260550753705909942404297334280333321792171045982489833065558856862256794740540710328029571155647620067048035182867488270539649057616436892588844591008959762779236045876707190971561187191000542578274826425572804996367297205184892565225101105179902291082870332095065558807499260291346003571434170528800754966887059466953458651772038313203661191350817423647411239137864761100184752299314112623637320118618305858232481739864912802422488650020182267593575551502186807025503847429424230587664386257786273371610787207760323013527476692796187210117325510093132833646624926142456798704841863454644554754817774668660216552124491832299541394016371387184786693890485387439225951487467090623040444242268614721721135243337310568005281359802539321729421933733726183237596131931600625652841034746393610712586201196359088103258781020019836173998355806767948138526449133965774207688272303988186068954225392783069092319965209360024837900627238299066348112264490774159391912701102185114566352746009219587300479403264373140251113672060675863916403994497567320046799387303570107835215502546591803263021181748127745447478799755083072911735927439533482355070847648840056257283045187044775679634792226612940116424324928767240443748518986219549750010958185165087734218949690319392747125215984645447465770186337557429336893709270484643588943583096058876498934035427529657248630180242339870673666899727665850422700260697925731558493267054269417088341612902158338372481445084069583238577338676526991829004488243552389169885894702029047424897799225980987362559628988917317685117692918649241117655616745512328810180493291181572090229184184443256041776192550884110049697845143264293767525204253691494969074120633518170603893820220396466232277879790087885420711254907202840200242602414643443631101739402551156166037528757508785947028563161215741530478220566923133402180009115459332844514692281605154427810545614189426747104062471744152901701201168443544121560589841783995081543017991100528498480610901186455328155834877955191822647906841548467620078710066064407398552484324408022459688191527504604082124097522474423584025738216508121574167343484352617846636173553984681754303000299233390201771998019528873128414243398356272787779870686436053173561121550390611208310522177368846798198116285435121922416427948253217359474005123320403935537272235146402760238647044169178792471065190083443792085736820208139657750540474340854883638193735826097972781663571248835777370864795763684517744495452418106233361072276366422896001566515620925862001195672765163850626166158168812076544155729927016958964397418739428433804216453778644799231704782376598144054476164782122158380875343245873096298456082677733151298063872739100052753593929761991214897995376668749402394960900730406134199022016519498602447982774226772998656070121616686782141171039792262017849697470101216262111862393855904695001698127796310649874938417680286036545350308881550086479178623587330685213917193371951782309175713186149002416388062750542478537482168825732231564137752040570663850931086220233290628707708518153628520668452831545426194546323368913399268463959669340372130726652336629874549780186627652430507885842823977183771438071205891060114261432185757763865777103132941790189428039633799241522987308869375094145300047901945003876278672571021529596562280724896585480736847267092620486606665731557239877757643219354535721902801342830171397636544308751098253033339122140639131781674513239415288903871350502412479559071919925464937467995769349111915258840390676509919182392623200817143507325360546422442341015766219484460156865891410133289525101408555751656482807496005573547776852052459823253731302105954440009204744601834171288794646447323564620421213428947940284192784269931488143776451718294801196856509866005095691552246171923669689319692431220058064427040696776685826410217864092436279530906448364652514610702871137377761903728486186914683915644974193488288000555761473101090040141055736665886047838383670832095110786230396302694238081353455975188249594167813887896616020282229240694073411409534136065812704485311402797431229622048918481503403595261704656023109320863353023044819469321925997198463520478273745559252365335277591180427368323838811236547367920069501077277961961712297212953564626294353276448884973069773125268632446044585484427611364599206175520425304300722225796212978950710101023160960794354205326558356689636224631554453029459251031810382348919719077492903282276677810417371081480430471518004112683857244484190671247021583664095849180428056506782112253946063881954478096874159692952885477437011830433382602959525417767517983940813935582029953177696649557877579268969786297541798499475700748611293642057131984847657102721809583901919558690850876234296747743127137802152963471536039418717493538481432518951530114453080135382263398663506220226549097604055293093931090535830598081184063278398936697808445908934930089111198304073105132386022793607996906622909712576086440803762019252963929383052556810690576656045989904430669596001789430500687597935520259211315606692516457680492846204441060204952138323967162915813942742767200357628569159726233191310272656734832853744854015744284832212944957093408869329178438382908398662866687119618928599410146730927827480407415366386722880446398770363936914777447633287872667430265807787878300761839557799747960481542468948459780358352163849891209221999899118408318355632057036951156284195553149988094009533282742503141855862336422277843070522801136138600633241960274926155215084874833240538862899205862125224918748459839274089658158754458894791182431616385465060296828848641235145326793380886624016974887394874408725230904157374529310659307239511674650676141342911672346130914416659490849691481674387561793898481536462235812959389389131509160968225777355038995063603784133537336819390400203087883761162937767023047431020110413362856487446604804246940947274754299711992883844983680086430293038917993991426925000211282418328584498508103813407560418860456671599585254333989388275449457568726625192922033057857630139910769200368874174727834530427557188865637989867565420083339880784905869600526404051872810766236467664113729879846827250866630684797300232830349163810312634028652425108121962598494074335734161032435654862495177213841635633921872699874947375530147819008204939873393914736426854837449386768614808284405525100073162856840535503177866270096853520056223073194365224439757694556087436587811887427019330110285300855980387902203812131003154994796842965806959979785754384389954117166904342485309621617401534342104490498894319306814755036450392401860234869439173816441444452788099427581029129820048252506618553801097289329982301186057300920863574754419596708439766650177830292142905442678741771386080173224296405717086904360743710033099851777554805164829874150195826841707514935544368791346202745717635428849656488271411059101352413787830146910944162410697057362385047303376264438087931276864398105524885144848161884619040783913354753562541188073706254747486352838530376047354299028735662512461601847575678502999758925983526765523780648975276714506606506812260986101198446551314122726503694142046723126096120510753614524073173061240195247209288449058966309240995090396005355085138399670122220921356313985169647356973410974979767487918199790634088738325282493703270977457620956239151300186579643864753105030912599466885009474834530634269752335090433324380933486264670834036857033393645974995623409584242250903765197385808591998702521117361242477607458812087312747165923425123982841689159613509605816368653802218125193213630415760648422074467304916639071701560216588189932938911309344818229090349824024336076723316788161344853966098277785952269584805547723806202495027755388872887393640173900642678478878654295013109503602974770639918758412848082020235293478623046858561711795241486177773416308189213099855065001259259154260702998116787857798313383022962373356182584431534305840149483672471275710895582354644970383183807771180363556199860514158645742782194058251784043759679515813258149182676876922498452321249590499208771464915311823864650214401854015497569102874478286897563837543989306295482589732146998714545459061613367246238461331856228900266989230007688860272508926072178519777655751365607801764190296667852346306730291868130910059511893777451119117452729317027713124185441547025056653314629320048054921442459922650638923110040056008713586530865961406331515148509888675884314935230836252139758616328327724903728293507410642480475592509118160113406355281120323454503467412335232084958661712217817954826911297664042419521595759584465144808250389515076883074224696248612902056983903666590974405371925711243176445962716789234418831354995596234350705347207548479102054777528236179810784714943822223800404001792092452167451759135333200027115365506751133886743313503222543837868529752552973160718763264661382305393886556606637810582928990521107685270830055793338280651237792170853556792186010988396920378020814197637389213793915343023690407662866156364409976638954836048618960695914133453634151657288732616812397445521730132529116369532559548892072418280573149709517743219288433667804528183598120343154491665907964378148686272044584331499249290431630696629920995921339815193220653586929664471037931053789742653319476970512525595811739204162819766914029143938143085520156661329559011473887030821080862997236591572849897224127829089982629581339322063731642428884777983104056739397152384824181072173563113132664787632748490418627613918065361043420823288232016525871824539330033633442780549072481638638222425725794530042996992826280929373613994776556953784906567666294338800582404412483089059399475158842793710388392700790811990610964390536709666142624430930453978863286851142726380843279092334238514673678557453057297924713168185790672783504939731259565996524494107706723803973141310686282193099037150105556374376439078915016469208801732292471378039550387662959402736190342482627127802422703229003730730900000293953693408128831691495766849151137475137158654013092281073476313751905928083312541092332329357954910349015878792536812976070031690628732870477582909222828609327145991928480003143734654054732408416878328959501152510850245358304085153298241774839809942771925137520478971549212093349507481055289102362362297679916742630636775059166159650787864357759615994098683215459322427626727734188248354671424637977352275778427926651787018536526438975059261275452687792715140640224126209560440955722728361866935887191424053611978870204881881896295098254720458567189066933615666913272665765566447314334435298314715451125181314626653239588825370878946364311865689295791739896237870308102614643106445453377597732344072334863116227338031497736536218802701593750540176172474485562040985085362488448707410722222885870159694474741463515476667568153122872325707289398785472923450452370557382648039383120366174590924242680353659338157177081174115662524577057168439805015466043012889787062452227842695501069494712162551735291311704037459113988869447122929719145641956796975905330226273184838486764971446623219828596332145539651317733577199629171756485762973359869575971017931764855036162737879598346165958668342354940423288546432896301829455940273327550102226575314134328357850481407274539954866276165824974231360294692936809906295491416158044726611982187540608769797385412299163824762833787520963124255636956472534677692264942454171500543145090723703427921093568720412856720350845842644663325511015360899203196567679666718058719117702575460663520198763095661401344378818401537643776314508755757186391098307149488195234510159144057834443678604683858185104216208771778777692031962316963171389761363738873151862005848011478534387084605176077558195924364853092631800217157481816436858635970672129345843437078393986715263256549575173418384315241730511100928225871947779256157390578707552153143962777701349545754559221521117137643623835736414259180498727881943894591954684135811449515979104864959184395616089276324710354899100739436776101600997887928980845648033295241633942205414365546704647076853351882816292403302713081685569264883362069143886282639005551466154216151764766788756498391464881485146550726626632109715970341533810892037788898577730980515996484774671417266658639806028086146653792662582072231011976317148068761230191925387097905808498855366886246181224321104898417963445016572150519205280983763727441338311694882703316206695666514533697364778899298143357060027829347475548669451109372457926595499682728560977114713318878189381845842648642063688758343908106859917220887776483366141518979404795290508051006709792532832116437044387980213807645511424573678365319592789218545113275788885403586847988784135961876935220779375388469273371787880952459014054408300617375092933710318306334604499184057549219269585073147715271019840295913183336236504739994315091815560580618717814524806910446261649381272928399990094139323204142155746401812798538906067926700104938495551035857190827343092897923336099949126119137348630365312464068313067185370071936986989800649829611483686028804603653848786172871304992257904513746703333252647597619749327073383363931414643101163350008433033531873544020138682306726188882005324427938619816582611769382694632447306059602462566308131741643841456260855710382470734246458117231054264410562338158471347246616495090526811893462003875236202644493131418739155167645100841926311470228212133989527934029454793905139285672154845919418862031040910564549326870511071588420948593777226023880503692672696743459578409032331121464615006669372660757521138056770563902608510656146207629384644705033865355878660599092644586073702691975465104951238943065812873038960119993163268783445622775289038098676590238018989429937998307749991537802229956757295474235040438093916126837462018856462130759073621910614141856683208710499963513888593774376525778016196113748403095072780419056246307687875329585062655262445868803119574372127761152765932902409430127242373713780991123260712503101336634083372537260177782220579264306509932314801726382910682455151245694984936770573765285983896344208150926592004710741238764778525660605670609644727317293837846474981743726109866301348634776658443471654873392885586331543619572924568412712674055077641783881709129110684554081252622861044775724487076042353645410552104939109174294889363046673025781982805158658214310012388720330412743547489842677124031128326996623745726055481581160688172292729588865749260454648879555334252007524959058043347116232039949125235072853562288066983109636212621891111536708319988637358561996041659077471022450305524391278603170523540651779479620915871268177270115249254858911477691829221337737700134526791502962186944478431381945347958748273528894313217294024882114582950888619881939267866914512071999548393607981617895028930870023488051504155552529657474891310218045210133832685915812735257180850821609120328911321972432125035931129126355066518867835895820460231765825021195303271461007720840885682914295337521319202807431047606708522652572448946279059208679306778142635804536897506021754477525874116208442493243419734242666837930168019013823977033921334115868471035121856886005650186986901195303937513281065610353479993805459346974653283357410169197715040505696100788807113236612579152138944799068229087462115926026547583343972791861780589605659193930400787188131027402393742089273440455588161326599582365204618010579825692877291703441291209998621586241284759347503369743716074321504734579081239587524244348825449397307667708215489744042386695367784429805818399822504484502546336275656490057982299023866718107409674588841109820987199906504368600661537401297514045078342710870453880896538386798089189726215280241618891197095099129031650557540670253942993810925856242803801460095716230061182236253009281321596592465767097283603752090549634281522157384976831921024181581880291256596200794645082642806282562796631233007545672480433674580779761312667252436905549006588993233874112674960272440311447248825542081893808590086421707068641486701550510131016102273084560679551730154502715180766273765541009584583194027776112476868952502046005427539577523395569576224680863340058933294981643254557508377341853504053152416888172657012100346468187579854449934426157549251658368745205479807791811614067191291012041197460619671865967777128981516318608899779881913167324552173634703255537115124650842946026486468657411594739253754841234476129158003753360326514158886550440384980716916482157010603891419567917393961468512101631718146610368058725608998063688803830088411795698455805208881832616398647166068765183521365568622101206653435004709806963380794680823837562423255710786572636189763397030964253429493952008868304027926524184825698249071064205015389742817906254496020808777957160670517185956999783070494796744737147529094674953807937746890437193127684335608745366893257577223113728922333100913996113113633706850653812103139482990044327754979383249090900378651303267137144632573572347465304554582516983238003541705990650136950160402232405257500043475875978715184705366434246286133301058902100012434675331475852651152254140702105334142274127440049869098866546989229332276146932936396796009866937127986413747765929835369228268832498979479298394320606186335594292271658118749906763495142514255478935834527325941310037694930363947907136137595592739924694514872249806457061402132864761373394974843979506555080585682370530196486926891248331848537472944941368556821594511468976827692615700917905001938491556143732596575955286196618556089365659445732795953807767768816192674380482324287674756114596839586267657024840218620928344628167821917724233701089058754292723699400467578570751124936953580721877598332097671470801765918312022310328919609280720482136271726136154261302194487977576230266812743207497715993093183515454155996032025373907500213322099677790978491879161593997238927083540076455699379013461357547717917166935273345967205148699425674017820811813088392827241257580732062622644114194512377345653096762079569677441009552873761217509288237448771955217483040319989734400109258709587226261845289569186134749445254237027563722796087562595126110122642545934857387567263586104650318867809412789979954978589586918206955107708560104354349769452773945579360869417757655838598528617070538567708075167523387279903479980094186380524505036607956858259821972738529734042679543272724957401881374382167295988391917682335384304408363609015343122521637141621122729189578219455164369081672236778210206734682364382150025965862915180370079796333338665403293128850064259227283879313975322315240498999163159407042919591170337110363182013242230378474429030079864112664286620101585067649936911504287358597927169279269909823939096603442255936587664827953433152433720469775936757318929871941292660718665339846277438686047796463066757557719871014151574147175427876389169486722257600306333314779683422352952702322669423056600417365144528989661962612463292206916874254429818905765076799087669829266011223406765373931485565080320583043745565115938198168453555761367264511019114588495960322466497259297675674018588108880238276891020183421198377863693681151064545242011748471123078712379403046500659357139716283532034086473085394147639100062460328566054729932913106785763500100829279687399718951324525350542923545247117165355767101744759974157914662005580744639177730076457905276810777821809971962745601771350471212837977376130469641660542053759267003212514275217956146293844480808265633150080644546614302150545819664811943241975658682078596912765625929696824772605305248487670994444098943485366205782848371972427619397965939617548514022396830353826540670780522596994538169865404354085154658012027482996710374589078687361695319729326454873857909955624771804355597890652911504743600275288851321328264354155642674703090156820741511676100817557620742474872496554219436048985425865162614539166165485801792528023403038493909481046678617209197507803242691744403167254434855348097273879975572376078668052915130007323577267590209943073114624692089221275997505042688438709252271883973581237808834530247032344161361425691881735901457399065178124373946286819228869289380283923839708739619168968921048697190251838627816150694135819135247806746251301390598863063434220779984731860172623610990325398908614144386516248806166681950633151377208342545808133826041818471747072609629817458479891475733682849984758236991972110354410845996537151204017008616083938565460974693280175631968328118818146250962671661001436325827743011870713499024811164446415659873673304106686611803700537915646232264177410917490175189817300767367273470824168783504554231942635616238443023320296768043897767442910573667199075978635560160913747356807563371513424729649188931908476110365479087132334816296230261400916278227696305220243371298606429034120738359777330481746016225302866629477729003357559702974601869358035619828323427248447121433570168612251096541605478825475196017487034410240320667006978568066401966412813249972651680943537230939948982397740961679364161718327126993586734433910247475462506512626284820193764406293609368028941224117295901734511403862776016034164467405132256754597994148231379497474195719626163489565887916507818834541405292282062842683552516320459470974916094071917557861120445201925141021650076201299691563726863781739812045319758932850423836142061548100928415416498779251292623421138881761103910842974209999313269396063908178511163042207471734223249168423163383296967037886213061621273056131062422940497834924203015872872385915070849996790783712288930464107725123085416178042644837289218741575267861965882537147241599044243469177148726960235271154089567885537287218229343080337953353454967169300588326620101391876966156457890159670659492191850709340354143345553708003475960523766769023200917736761552672474561466893418155493386414046691358433994925022636318085783533241170804823244220053603076501922813912272481977878344372091961326941653627024709053317617940797267641881737098283249398077603058892849436074516233405390061173546647979256665744586195388612750254466005623904152120928320173214133323839710447261156540765639369981082822425342453609171909580043842999572170213407403443629878444376705814191161522124881483443131639960123696950881238911661417141743472122448540203855106662352280311476962134106678518626962243015322992530172968046444443504241669012426668182215352607161547192784238923925366528481936301767899385119533270618245800055005238293018914621814257003674360047473736414576990922129348633734887031576768970266916662737693856018181388912614164015230443383572950762298193415226376563631869602232741314347680155633057453705398367728865112002576504139644170224614693842209129741825683027819516916305252919213054384608916711481474268999591797568081623201511706158392443570366540124006832148478857585382996395349157877653931925169073229530489467099958266424935650966137761617884372073972627516762304623169432738108395697496887171124665272086538214582686589149975112642428623122574384879875424282527562057199996464345304099801420019730983652708088861000782772561293502958665674106742731631779182261531881893576611522879693007753139257238880522744681961057149544993991248700094607763646429190171247238205837508066985332654849562063447392424501131179730927655855665982061035578182835327773616793040569800249778009407011835376708747716373886856399709696370990764993522992147765170633590187902580657346519950002451045638277502393974783841712429079177860647676293850543790065600283814519836580487461332947137964178136009641821733881096438907487364648476119060243090077080962983506004897807223226900875425704842632624277113028568126731458145418406508669152872794794759002161831197375229498128303307871816503346798931401535508392454820744657044614352679383746621200855939758881742300981307113128454637031112158458029388841431293760225684495333726447401953373063216830200108115424799052625844688539182631649893666771431079651167980195815624947627429652490068970617911875069201696064367364575087721483388565650757295284560251807033128861175524448746127522429957894522917326956881195808710570981883661120717686207063317188127132788181345229503269996513477018976258121798476303525783463537911216662927191563924662380835099468785856500419401169616474678643311693174205904262157351600679032186923564354570311650783696293225214252694901860187545871949319345381464833483152546948621114448266804132412372855015710414491147659452725240678023776600941374868543714792640088266337532658992614709320835264071627018956820905923987134050144093794225651051204293485676164038192625196177212088079682842914352368753327084490767854151292375048129724819099344424836003056957395230220868270174862814327341715831127338514755435759817158963453514764212788123561735935418107844964455414920970275796484758720124176561777375606989633169479423892681050111962606089859721194787994018140677884043406988281008895366809001792490845345259858295111035401071158583113131023021410153070174170624393863814171636522399251164402433564397386065565812228481716293380902502579716941900792252714379575915203612220067808766720521112903198464188471262498841137602279730629397892843801056273016094792496952031827553638834092882092422888301836148212815804667370818981044320057385845547973781658159453740734924601536213799624052842498864905886143279216601639685649660253424103352310579807031401899538822706247928315411845724995762912509329963223764383246380929250130473647442618577674953199923473537988766514485822484300262826002579303707943863371050868599772034694199211726092267218704578714084781280953638378915636607829114002949246146575173668468327965511060966988114169006931612825909126516982709507195759033102989079932412422604913299857684620715957524788382141524561814543823132479166069903619428718352099559897873102423082703216035343772632274055719176517358082486239056429014601582259145195257916644917893336173510447468316414914803162214937060897866033492291614216010607178175693960424608938027213121582796310478034274877771748720449278171491239700468053082152736654271701114846572709037603547776742742269623856066688147287815232245030100662255317090548354992553682427493461206970496268237121248547312327627801950311326725957764595185605530163680004913491415709258700094095984212521035618864353984158796410883430115970892301187837886610180157290788859340630313947844963590712513658111123933271442023874819692570106515371229885772312612587637419450149093650708939202711968746506047445029134046500819412322964913600178410991284734128318447917809851522860939081505880997442859821003372462718422963878408719205701260234192946874866259127098481987395549294683016498667624165897140100335568265167181457079232075665502613679046135118593880905688680391610819118058679830325916008289399416905708888045443946910855498273982324927405598914224883722256546118896674988288934866172607853402515386160797706222529822810871955367057606979170674343708631036918328099419385618408318219234916436365315901318761219040353638370169357844249146713306034153061208190883572756162901525742615976058227867419900586434781831202317968006659535948860019222431133718810152382278615845427664109133076592712792376841645348123012779278286703693796693288036389972628241901293450470955123026401929827091676555639160479857116216411218360057086420594148297303879675479846293530381480521845531273454128350398262275265996303616505378347712857868146360464531129185490649099754449451314275744342397256409120737078849909982570121181508600068223555979728667077955962100627351387057943178541517632867031888042580436102461517807546526780365916192350919586727975501131374991959617141859622039943670888116455450013129390650028038306229789178439172744669323140728524101107676034811853208877445052772833753719384821627650330745722643949306043544517589224522610285242868248334374547272560092345302986167609557832155642942672907018565115487818917112515227548669900064673836796317202101615651726570559988778727547881413317950826723958605381118776247200870801000222609432054836186823658768937704993470657905574278185045398619305151542234996276220417517463821471330926544626077311994211820503889925348871738297550317133925863929849082772405046069205082451596285351284764061484632551936716149232983673925716063789198279253026700083143467415043358530407542693523728991643211811813177591774277525958456523750049124767477829842103050207986728346836985730513350598281250242749854954920358095270125393440194734221754281925977358418484780499977885236760831981690860994696012683168009624643162440034222600245594080324491619692405620081587505613950955939796721193604010153768093081547215378190556843106147127648911010802789032073972915079681484477973449046530602337285868530062314401999944886732024255414181618452586503395262824912018644949033775248092025663294158952145946512175911254859376122709540664028984471809751975878993181561663916389564591542912590348296194021721923367531036400167478038586181993075172172783600741087692865636515562768272981809182488862028187535261113606043992049311592863840314652697054439050927649607773267090419003666830574155888700770872096402263409095577815511209971434327707711892929777371460097939077037088937641290281606576218876698406594618201662780731073372494037187951591454868324711638183553269831841309181960962836023888940816607643292008826387597985893560984726179298433479041882357504298195638182599850624497027470860009659257739946460545798689564588519328476120913159557126224129651546664385362543542482299277981172712600848750982754286923840751080868884998363478385411830006808123888055136793192217038654665850970021345579631294891784762676474344823999311859258599936216916350169340956552704498793719906967292256000391125007189222281713324048462179651600416888643411542944555761726176622797783923787420932844631199805938233450933971472009264402688932901466143181233606948773074905764491326274608735868676360271088550529751433566910211930034940587193015611218687690837349883870698787911123465470793668015411910101083501175403326429618690246694154866953549938021547201523445418295371422104953037673381201733417251283978241469481947511063116945775667010847836582559423970239400084596398641854963035779399117278896953435985887556885297912641416017535728431009084623667516406491028678580490570243614936441942002717054847180696122778761131780309687183102244176740672768329105480968519271998447960018969143879613262148655216311189043017919013754083368016046903591078659575155384205789280645112545528054496227329571729534119305819514376700289130698391591756167377227939204810646860567900228934156861906473963471042795556682157400127685185175608709915594592462524890395513639537590282001335764883862396356493209452870855747011908756053507871455785043683222088807234098365409917731393859766248323685228498593944865256009516047277566483072693380891899442091650796780819862485282688275293180618546273704620358168241447348268794242720094726050019151000513249015349875883041200702175454440587181520165453389758865055098345306377617154752424038428425907118880091457548778322851123797125272009681520184487962194406749085550183129887396550190916545330897600851096690015135709882949522601498652848212047782778105963525335152209041773356627749981071071210374329184253321298022933493963045550137249095394417410370336353198472920871451112408904597952160780959418593099480030793441773938962293693523642581437051864788488340786456672253855366111495593403400012035135528875905255588145925022597121868099620609620327946577209883837739601840772862935413484629954252677595012691570291170574968822677987561385003123372467467845505989368915665090190782254898908281205996734998866011400474828141220497467431627384914806904662641700866037811133164570336771760997217549861629555002362193095439844736512803559590120131045957392547264312600590554871280160753753509272982160255709256662367843131953716031302013336721027239182372780156054026646490923062432847940439335413353126690461730489983712897440867981652721744713246000831637834997225991393508010604960021896736706032578174960041319106317978458864923219826721359723259573555028680852743416725343139803979051399175396029830875910219446989335297828212239491783468707141184317851888746001619160973849834146793373018433187810513432492831594475140835962285059326680497621615842339973665766823286130255774022189980798465642038932274044828998379728514186652578009910689054758088813092265400731543391676703678683942963991620111402890856392455742862638873174386521799073772521725968015404346523992632137765036001359015058036650573862926937562235801986289078013853587051320689901835751560531109731436635216066730464637279158678292406188595090937459914896497766503783561240000586035705865251909170157515713863591480907983357110945317738689158361166929861151905187192313495269357508154965197297317737527211577879179765337187313955920797786995343447123278712936630466701746912422345405635471829787752567881506438260389125516488556447500866081830607869194006188948449704039772308593367021038021926019452883062138923020431893654687385082325227492974016055281245644722216556613187086337656082006781140858620018711250728898067386926525699334928208572925194569917626178608384990741201240523288260233813329312530634705703545199775946095555920021569128870245348362560134727320788692678403105864837734098186362724804024634678695024818902663078764427014522897295134478772983407596945625138694982788709243646548650616789636518195415705639983579161373792076722419242285575795583187754614281881537724848984238765993647644704673248723563773242199062791308841443397620167276502344589053851825715209475054181741834930470204878964574307645299085867842794777552579150885645307639128597614223227301356526823204771066792212942024596249555004579178055706058077721456740296338152920688844794111041929934106039949116467336283064920933882982077731721773743905088161955657948633729433599510853701305791155876763118191375223280321775205765594112015258597702610633537645111029699762685379565002606359094923317608818541947358961248820695622296324412856047600849431453310704025576216035844682211122180113695675202425893675748553462238794544013541438894219404672441610653668216881912739624477415654450710175250371692312828338210820017835816339990751864175129113165237362157987152313021977975268876858470341508516101416573670264631525157168023081998366579329807167282509900799565172526965049615375370735789725554390158134736509176804561009407436824612756857736025004066476187953383562009762106532896168005961386764822441760575990219065947855235893966573529918320740800473795502773764418446995901796507763055078964475871202644803596419927685337921911467109931507851957654993498554830881814698601773397874422105621792928824533946501565063045667704158834233042383142474614511425450432380392675500624983674241859898821827380155770266873296761385590302064695090978700063999117102283200544091018004247420134319446656351755741805557409252978084982150049236643442611534632773469412718718107594739578098879586809824447238655905117621242650678438253988472159534979358219209625275342348719488003393488065280083000610329206359648323332274962014319084481989537161113847179184526464732807935228995584238085567053555961272058683934811804554614548789166397785288235781767190271873769077433055747507756131806740817385578049969392726858933330568054032196147509361346607362368340865138499009297233684721973586817494765307943789612318665802919109616776822130372824690981454822877993953765329433679873353318666531345310207606837956616371589700248228739451911064098698066661023381865657887785208120175443023954902604405172570166835089780201608456188015150313859547404502984818594484715435421591468952486441646819355878238662275014874668830543135101395025352375450200984621558233474657999764933035976051256908280928594833982322822095646186247864744445467653545470688007942440756522274850794965477678263957058513892249850228496737873277679631023279212309297197970420715911869858698462074767587854184736734644116223331416941345475306045634871968852395597729330455561637855155654584252866106139245905371392252614445494334498367062015809821879453635304299041169710190123810056348886209801585207443844921599280938983829205378384583285510562991784606600876561690418275964099228073990942008239843295771805706370955938599149436642509703897205808427744955916077584332224227974996182594656683470535728064958831801859186014597269863535787992014471131695161038971897899526260831948891337597924728718572864769616254619300630713276639408713368561604563641790918256000723825224615818956954781986015456759584598885891863714163104072868137082358358953780101497871356164160345762399947330104163919035694717309910718323398262268672248084810039773962382504276613689393312444644067948210194872185360116515489326630007186391180418692868662995365776248524566763496102610618783330860502809304696851684556483097758529899015185347139942042305355570500709954177394224853677537379122768383293741502063122228100599750301200831620416159132048570329935565716189965819421384577600142095720141153407526469422001226354375670627272030237171856912398610503926543441416891099782377164723151644742650810903215484055441498704349588546073374300138280772682510437270772896934292558550088213972070916079207940048092374632496393226531576841416526096271558585899254625029210250361259731782443805715114837696792129456795326437854634112965798953918401340655324469878877917438289709297585450777519356496873695370024353602466652364692011769103462453071944814117439338142373755753917393956732270018773666915618165967290131377951034539950342286851391226383949294069338553095245944317397436503145659177022371848612485692145729872118762101371520965085544314368695892081629750443428116302133270638275511375380473276455571981879387776472440862232185932321235125820228706787802315089787760551621865659769748191051936055862983778902747834021725703947108563784466867225799501124927662625108593347929087191102266957165595930717027826696618598474916776393996802598016114394041234612032395243521881376300939950114044430752909316565567602455599421515459754406622029737577974274544740620420622423090101339908226843608314811114576297770755862868390137869052694303755951094747524232189183456487039930847089166478583176133794840203656050526512422904590861538107526837611593202680351892537738563801840454249073029712625001468171183031563983467937853712012441937652303013034467198820163055381505900091780320274956151897242173540974700080429395262182537300049885292623826261979126626126014060304777581530789147912619429907488494696660584360591272822327467076590080305114981330355177775847443240170792459246728521623484904035377650039485730703785086802383348086701853369636403493948649380677385282726215156303287181127477233609569427099709241800759164753979975426818530900997992446207143471961546273059431515494133679264891067998174302219236705878554353821157926664482501300694963967224544464212152164825806254545758497276142677491740669587672064491791375824725195841914869758399374996104657178220668672446008187000733592752785335297066843914586973940719323396870916419424505991237880898675580720820594797482658753830018655803422418208734603647735956444756036205138731153975547231525096795735884121523002354408450326687039574199419401947452570334456371489164353152976105924699543910651753907562028306492206029352159104624356846416670564686850977502832082650502669884384761874506811261565866694225552785241258873642016920673154034474489637959203054893901146335884426263329467076240862703857692137230236782430658015658498879409133821914025225679774758709356817166731879125815105711897700356757332067984485982585328402685228771271437341079870982644400470428174921839119771369807797892432713847635911217540946586923895364188453620364023137908579212944863166011426735944898032323432367617729843081718976072291546356183201951737249215079066420099830516718847617804778826954327904967772615787290130882778152070065087237948055468016706236016603990963859132696190676878786147230234198956107405593656216937706772844072231602511440353412759901011446246856781318378609184785939151824436357777923782612333345446909477950440635769985796711842881858863792038356260253954583144880166765452885718200522861312290622677772774863819149448788542933835807471034134385879330902984527828234579925879786136424828370403694987176793348782123294304983277717003424268111860404266343590768496637207599310718234068785321791524623850908454087024125772743605677659303417150733313380780554869819676975952932662847084386857986524315353394119644558309208867069958870165336136808368261438429405360869838088589059423160181524605615497358533801057189605370576647411806368262543055507190785871531877129168016607543638788204101213427743359718682741803301875604825127332318289130939138967386059891797152444516020933018659512458191974541087151369159707982254965198718446922298754161892319058736628764914479655081577890589713281767692627318453752948879392843409786694049789627698896326894350121035318438262999582209643155268028318680798588031351020210492805960826220324973667398305251715172723192503296779222204363752179628884913282902146476192183618951458305332338727007113183010649211465617678432482734219720416487904337208371400225216212213740795357712609538334558363647755975673510562418933876251989601017129563311927621589425608957040768631399345570249556698089484263640758137926483317474470343503377135530534278784583137821728649438486223378332996618509447591380546479300258868747346740934493007078040038681356355078622048849016270627636485931346193471579126390768128037999900410027717559669348993669915454608547530973541107622026618847443236430462995759723981970807798091491651825622300703516142998445765489874202294038153699954132787282557288446196132941749626563323713259717646494957233408272723933383430244880834656749618603866206817577386979740008585205340011050335168818125234557289790353228623719672268235655617399996907280935720876397829008703850980438692130820299405820532402029967358606958626613422692970682590750719279083347564718237385254438517890231341767968453421544418463990574945850196530484412293497559762108158116993168898377136237992905152588352886755935598949475105033505578664225020819854281689117559738176094371973902379796128353608722614144828883339531406694652394281345143042442474841691153450570050552781540406242658059607538314848616900126189922216328323853742795573631687840166240738908573114191215794636039551474529287866291317766293133283898751878844629194592107594790310357937785803145456937937726991532965572092631212260531595199126636349710405711898295869099732098186190403277487708552130729045916219815707930959995375960827008193092494675938975755934269136377760618545804267802443149043807852890457712714442218978923464828194461156766047185145091689280682029936997222412071372264171600525160342730396563478871583163379234859493065828037738295219946883908678928149650501761518790963055835501517147532273254920045927282579943571030963602230145728442371733360741678928829865911099522586681234642292714243275820417157199521329480999916064617906865012904911307722173544542512801180602251301430512633818968735735252403240321166920354174075369158054707756214575435213164700940524685412697142436374002250728844373008199221301340259588779698911915113057305529611201010889028375198949562483896026237599430441813723241058917269225509692298226303802158069434434526554001883114912600112714792824145901459083707781791799920846020032316924552353603987551226542913187254285552933437219500845034899950680796728465712582034302664532232022007683795462694459369844201824935974429685226328883104620170000228737000817708701702904322721160111554307484915072059265833125582729734561973246513046929247971925212298543322625446338631106607018140458092041560869173156737330959174787013425510245442158011025453940623523466003705533583773818449145341163127320108229399236975556610701252959604437634702157934152472701999093607788556192179477086105019507639812544406714121372910287634910107101175745998598017851244462097522022814625104066899603009036908469538223244925539843851593085511292192866602203504292933332487089044773672473626925251300865567483750837380134445804676170961542841876543115806712480638707979842005520115661212011935171625086948760725629138867013663802402922774701118894902078054755694916255830284863006170297454158447475701610357243876157371998064840930763046573600759922043665954922624617909570424660500737806420094431456550386476289940293552451912658205189642994641869252664808571351994372007595491221118956742595280403388598054017592227395049732812341344083163935912663805740434978718671497837899016186859127494874022433918100619930060777403397939627242089169947592824437481819206144395094079673017128562713568459552710572207464524742131006694725616644641896372351381298464115902133015050532437770972243901724812745925397420791479325223371703823607473498196970514354225058910243180356791451657372820553171288878909754212686588255088130960087023153917714037177394347009476228709145051648759047671784803841814553112942256030637297266891986197098432342458852575467579889591448703085015392777745127527816832929904907675492198389934254334322666775759947698065700785128130477099934825182774479105998298623097349990489646405908864877457773367952797889357751961246449684447888578231992274155920427346487285212687310836414805602430568952548067903374208679347114014476317050658415478110134905926354638125378288013389931294599756325073495514150785928484837210023983989410514161066726125542443106648192135130839013456615790713705919656151836304284638486582897448741193707992324927764322581625251452986475673828152792531857910949606706420670917578830636390530416056266557289434985532241919774414030524610838055848407508489258731017135765374658117393249639466557964775741296841317854512581981186790173817314960433813148793876809628340779424328565866709854862843343825722069691109592205997336647217236622542840764354674416515087283381566542091929479967063787345437793248731583311113938837368992486553758466841763652047803357066617298882664248680598720280911108666984660634682046625108306845262766561682801978753269382040525851723505272132385506397732087766148584560526084648013430419172528509034249736378938369909478402426455507121903020991861650730927102226691978517450643445894282128258837790438794218453792853930939113156304106265865477691594492288730738697774790295017144190942505517831599877242028852731573916371829976096419952000500253024156212801262241750023787854043230720371832579396770413103786006026173722440058365660761144619612963382327364097826386293838716655788556117762614584408796348589055438648213970598898726624049898236328559029079542727149392644461975383132223884293948153487552143669815395667565540957691605101720193383059180080658082423046361339085418790946111701364988212172405999325498501776396992198856637148729597187484974940838400287752161990237771927031004324305430583864844103430331555591973463912640351669559600427337762961599323464001668441125084558216212743280130326445823016250226535568786278578573637154064732648366278645734326995810760771945300125923103762881271478051149402546479107435622170085776589130391536118428117298335862893562875160240915059252237253788929738416258134826725537678450555096950028876590053643763295301363031385414611233061275520394562545807508629534444060252673473793432307061723796769784374807893571140867903928697969314166998452945216145110496648276480229255008465326355104820138147522732206236412472190870510923363075504888220138914128542850305305036274200037572105009958119494518448763780589334898980850800710018727409163379924772133244185761140108412006974930433766114660447695452334995744350115492761540720329370005372918567049816461224033766178344085427610164430585805959378802542179255749418537793942340162490542969267190996685313795881598823767790896997755722471496123086498667529589436549924981833195123573423448216315930385792875439446359939970701114118006026189048870139335111035271541224466287921812141451468586532966320966528774387239325854387441938187535754931263575719988319357851969647746338610390060953891063553182950302496595111800933948029954041477055834832263634218600763205923168060905772615978420213840515942132624988583668128217151745273531628504933627202518013925633695709790572418423674037454371367143913822843887149265059653417425927581474636604723087121514159909840525613117011254574307733198121938645600044004552116280228313300614104764969833331280936628900754919292141956753279670970085916811843926659712156994204470453979791575844574035923694263497847489147845011946061010595789774393908625736633181448816672425096393889533128050652664612016216583718908007983523753886781891464948819827371342091147969817841824154257940312090894015173223379748052530543197974372471088489407410509358304303524744079063006244882469045850784269801348921450835853547878984835415925349873527662406676610078725775668959211018492211476665027430260745172715529285098318826872900309696517999375306905046711859504343707383830516832405091246047480105076143190071244482535688472998554825279456723524848808201280903350327649743265232405179510480496902459494937710734422999936969598221844378869348582150560764650189881880226076206864779775811619705525824929129735495635424037437501218274673083449045644454977542440288279310242916018546149109070618082014558196097424288347213190089903187646122944252497409965450201850242869600001101574530950689338598614372362339206701604013661655736104023577673357739587982520363287793956187871314762856248581042833998226984057473585138212191558542393845028356598364016642253593911110604176751433019438704750902181359170256259846450946855825579308956063265132253215867173003985771576396162432527077961172763793365507482120106047444399351954002348232833314355749279950196275071587087331138817373207851379566049537143726120639776618922637018273703534122990356858347089558562843289660746163674222006064065248330612507869995972162966346224421467567060553051243687151780695751011872401536421270951658254843843381649809886801858932106603313387256258334870994806702354355531153430023811283921577720359738212939994868732060411953749740941116102086447619033403034822950983909417961709629694381891257091419341153302303347419196358148183601818981364423916556973617638274076893007149607276693661187975553730860420875866581747642109565187476885903849933655409525959076794670238717591818643372628496107951334872101854120434625367194058716292085632913933518266518745940660017882953635529245017391846346450462744411686224194719644965622078054853787415272014461853297972201754708459329740079846988934261410107751357923987304540234498125976425341291740457361279732903263965000216555246573714469184285259245280028751198365575606088799413885036982805787979615257637555520136146781336463969201734983861309368170069155349124221019248480320242970894472560683384549042326974980636061805669954953617282635989835236636035007802583544001431737317653548453089325942773417844474353127467173448391051584095435731967542438895847022946443354078282277514460950374541416408189870347669591904578325229083704963340073222902757827657223748669682427002827913548176909667049041937636246882345984998044300156381264824417253969665241214350575848798585958180434839419530285608159801717406439594927507417655013982398076012822141712943839054184233102784056342699249630699632354751742239661334303219446271818147522777747168589986766151619131820477049808341903119115239561687087173177990153945134227299151831902358869355275214125915647480267338142675837668617763059415525035888851557161190822944033760492506630987045530572942087545654520675252015479091291251355332545657388465523345395741723761084264918076711941172617069203052673985094001267999285188393159738694962924401048581066131720721133490196766991333080324976772538172706603330152836760407104194742278905599798796612184698649457580181952929403512102909600576124204181627183795280797377190256386864920381464067170325652869290743537321792823500715241058731518549180769804580013953596052599278554429176290517839214120368814847147543293287105325587129757916073062929594990002657614441082495058917966005222547112900272324580024150840699048430452809070785643154945977297922978270365451016430894345993092110227134994805154472493595630455512828853648837605146704834364473345469100914363744981410510876175416064463989147700547559623941731501134479496060732197595410681145362265895619270287979033512736407679420566384678214476352674603213467255629146880535801680027754243548702504523650543871899544568571008294315965034159190638859277143451324922729565274450114175865361840458595847882100258015439038239751266455410364288636719204147787367281351008948090866157865139672208681691144388141420986738222416175852057479323808030207693468098598375326873485595235695816596376685908262036225984115968609223306104653873326881670790354331981735807179301179274878877756597221395246550758412080152267140988593248458975122532810051571073380280623113889874121288970041860149898679022936581557794686015319650565128024534052457230936346861780910633803386766739851843561678673581672352627625845081600305675774700650533306894792311504948759140445800206959122446234147325939453133605183043562143588118333934792899387392503725628662385153984291286412161784180388901857518822372015286769039101274237810561531818177953147602418297887098196864863438999992341235806916120902139736292880814041463537180604115118337257270484104163006301213543355712058355293522138246447405982312930406703256472479327839259338850445107841505654730211395409986125532972974635931754997874726645988281523193293050982342021359596741345995805968264423694076438920227811952436984057162757869703083115211195248772433786768636760723532646733786827706459928919290753842215750215499879184768545607903005536633961776890538177668083102161517321863180492346334791883717057865279339881720297406522890027508299210355194628558466109829506985488196224835419299501523864407152561328809694129132740317174374371744533122054928326522341875736804689591437368700672842029206697255686283086123641884238813658029587919849886344136553056599149017950174624178526358224664256727901682700950269217235066063031909021210701773619061538826528174241572136580652227186160747897912055645747880150074608619363996481729313903630716774263875625027123537342482679376921624126955792647217557264431883200413081102944423910047071185175239383213273130871275927081692320557551036003802013872244249014707581542503389777330404019568153597259205435576120066033606188659803578092989399995196291237245093186998807347276093878648579565475417712179712104101607546636991908794692172809083414676477153397613119499837883437476055259841473981007909848893922449354222083075238491693970364574995685160104157689884610452181807671934536095380537417315062099220142001395583890135489210376124720473334447051779772811332743232849997865968310412450106910597165972014535055566200465399739990656152746253448792833627084911699759516901948341708864669064810018085067324159863702485224817222116347878619459992776827312797163028909236636464919465394306834855893518218169798846738972311614861506224440585542939453967758705116238901046668839643544917549006477315517321697884002139029168285576850406539448066658413440227800410711380828393580424852454571371042615936208126584297863711425186586815142946525820693430463282951903893794918019653268289736498915016126520219516111179970227706650398781325243457584275900891671740812887674243262822033168907873122852893690658655731530944142501995887064155301254196469785713121517002156763733906784630017617238692495640751061148918812105258592962540489759366259836309080266717919481187319951506932847841420876106545160051595822928931545901275524393444312912637740083515512886111522866840801076945397249991857863431109086421513442216393665306386077614135635115518722122185579224211187161533472167283616229536658289634408319659118715168676687125889232496760070226751973545365008469247285068362411764705597674553259912978491743042988472689983207977399729789243995285873092583742912298791978629477088340355649123405473448086137679089684813774701906081470900118429434581524848757154268530119674314220351185367773076551937777036033145672695832370339618630182809574320320957242107834238821131399892700908109973201372176034741966671121562050534857384107471914975360390983409846585647123649452086982273435127493907130250299571524404877807878353637935211134456565733631095051722499963100758692114144098181166965293391555500657223684209721046176557945897980079849463864881102996243516792091926062160170173927771497103372751882010507576516467904032515331942629478440325299015828738098034912425656331217786607687505755279634019540159729722441516000821237906526031403903815515408147581567847593207712284528369520736612034933545855940958398377254978919134263820343275975826315473585399315846123454569538092134546377171777973606898708608879726812897037058183860093190810890434995744961484273428801653297315799522610071592094505234570851284233578486623588410763451781033742672595190610978414055005569076632547173770043414060467913790863375987754141536598255643547392380078533487788777176700852834458593818729223610871203448009722008728896936086971673837270055449451144616819984721112032774834650794784608535412548843989021638427389966735782901558442886468176015497322339698851917522205557300420911883848471319681441398839802024181963977102010780349271890704307714728124878416008094785971943002110171009960582118434521188941111028017061929814175010139251493762088249798417573010648927878854174366351786113608825312305372961040606129215646277731393665232012864938772260602192840699666166969235915847942015532392539386998639528581438049591831918088745879202762763512659932946245844751811200216570729236160819341782418158540649080684480881420929229292727280805750881443376411125072088962812555062160089312510465891128158934125300716268215840855075550055423167725275301277876302634547596635951665656719193605113834996506055176163523537902534834731546608287742547238851492382656535485174897215524369874024322922113529854967197674477035394526796333421995911194492115320744337796218662025930486649517638828107075456363369241975189084681789348650998855808960272312059460302990843864920207217500685811361570180136834015942551227093802805333913959437077679357693795937138567669991510053817142589305891160425584418542266605572765716994469872009323696961232108059875351309701113220229366944645462600644969721322443932497474339650561107951959012119656142243551371780816795643597449007489224805358618831888658143791500966453609364072983345157765087687261232230627744701530412599350600315003359214327514828022528194468280715498553887074728444451991674512871465847043688813289309109319780382101275227066793352510758568094923735306551140367500732112318022172239680937547963773048496813338497039582170439138811651245691381019324678945574147428280645169988198556495278563052259017014164443556721217655573271654506882363328132301924851246140633714983295956776785083768580910872981123614452805101215635633241459498893804137424066896751330702613893162510629668407510537109199217630434590262102990791608169402184141757056154374698014199431031835930238618908764227312616185283141108563651913843923163257706787509363965638579116930689486486157268763903268825684763583584688473051339494694167835424630033009129137324355810857441253622244348595357396390777422334942536991033473610242972110883801297093429990392696416120578528711756719231977873712373946090912803558197712926410417243198080772158838490178539979682267511076816366875154215916195048935614017216939772914640862077510177797864600767728805973273368380029750356340952062504925602948865315291060401255915655247776150060669135590755931701341391193611328656256269957193450094427752508374206212501904803987841862703021535230529605755073339406675807076043871988564784360457291989515880263743428656473611555582617407180820287008939659731525517614557295029767024470042197923287822846160463157731138946970091934827594137809268263999192206094461445168785674243460822553823416792140700579151962941764418987357200835476666693292457125452623952349278712042932731349067575538526875376963701060328370590484035238253833347652737347385560145627351422939772926687887539073691970912612423546678959391356051843416716285955788149827325075039177986941497262788777057473178636646900423895196428786562953672319233474503539555516860719260930037979830405673151032637458144579226533536023104271726828747401658075707071238489109526011126378279611540864900664406391411562063311020827444318220275814928484553054286610942665087988622545657854662703180840982489179566059636182587901424064603707655207389794110564939889025589494766803861554337246866888845263057332290635578518446463984534914351120056993925947766355241132317900196744850239565886918238429615194631107827250196821121292859554174987809484072160979476449419504237919246502765628986576611138242992084165861508762554902428726016302192330611645103803960916843558523552175479269862833815950376762589350130409100218059692940301416589124692469017493988049854262298830067320016807011304412894281539440469431196460153151225258364847860930595718203545149439036381812497974953890231955060803683948872223004211293936638478082025797971018935953521343420778467546075612977856233288846034790770340876392181883643789320151302210191917921393406634286529886827871453683428875655520883001367864458746212589573134447324541295389852455026080280004138473833957336405491878125844307132808210281621554658532166881727176855050274063282554831238955370819293125009757609396828930035129230915708494465477539058655900598177861962949386603073151965963988034436843948855028179382466106292331159707369783875251809725172906602892871506057326967600223073208227251567811960455840678537461883033139846371712386911474316681601407749446830124558237272027873528212814199328450254504512487028015086836346033835462421900987464439832701317805596617011572307151082406994490293580379305956753767615449882192300400667694609270051935777243663188778995008601717540543257291255422166834157932271310559934308683413423154578083721002103850951656813472805648071838596383148509440578708916191900053167692768164407200082445133572669115393096009685336229502709683651403260183658062645883299067186190991544136769949138631522052653774478000618805178125530420955263258708042267385574918409366362842484054860944880913096010832298629454053400863019451877542302983489342926166353498279440375112929725076528228895177232971534639245267472845174094016190869901084987131762527205369103539406166741766934087141288039438357597307410690862135919361902299679643989317919641424137192335935539578941637151399897116836312279702531558828772854358042044531833604490443587441939851577996432723234342417825944270875407368128607631730643116679450478775108934672598504433412415613642889888747830089805013349509029346881298919157674483039515812808092798710695336266878813031671953086478345733948828686650175688873501911754689922409972877127508824062141217985913316592095206238217424391580333725494456429950800044422272992089393648266571217032331060852145154750011727964123071060155867250285937851642584893262373194037410213976880168325819602782403669489201842381191298968214349703202163864355813317203696655724023533629310473478236476239148888080307448436347895423905867982102581065897394796873268293549228576809854285514811177073469277120154286977124641030795892167801092506489629308506214063883081594884934734364080282143164923799146165058840337807760162192329912247758414977453066606247626075302884119204931215723085691914678892927375612367606941765267597587046457867651487268594809233744403471335560425720487695868335160840790073147983811634715903750418817931359671843887884610422747871653571681780538278675948051518609139211737901568791894365141633463797939932876898682750885264395968124630964620339052993554259676855323286326608898136538730725736837759192888424938788525283672039542274235563179304958859283197704615060638878189316615742387920597136466524306525250121716961681952102733468132213812277135993123017647302842763866669102544783171070865780173496793231242163260931596540284312540890461767187379978686434726675042527993218615570883574620769875714553864913393207860047425728012937142974672149717508967944538926490476471178510507634297141239988751910191432713992199863221213104984222128891419648479223848641065345753268233703011885071811599276537470089728097100618235851443774123699094061893809269689035954093642139065592584423728350061172751158447906405943014022375956953410087817936755924059631822970371563215610958797965883139807895698972940864632243965381123426520564818273303989276563316670711013490832587702384038046951636063134507688042474833890435338220735835477443080557202171487474047165408412027474917709241412309457103075773451267484197214364109148093873305984082308158019656107605182491194780432002630599561376902529064939017748009196582857340924671974301447541267122058448025547658779548744563169758085554603151603285881434761711029452838267010034004139444790560651415861094108637426058143252969341024588719122779272175746179206318238775594027418725556351343499130197297432639726300052882253502520544853066369859381300330035934945471399004642324208208480310196582919070927131945221878774901831514848609692045226525772696427728543108471397310007922089367317506072738641411018586911930158907625370924351006267293981272760628879358731175490606456062379723132584088145759948530340968868434519653600221776825868309356168661830870503158382736371697301781886864336699052502361853981568606649244503286579317034000514959004491691206911070236184840998921309118673414624727535740407931884056818951907800184927145208827656706580611350397882535244758856370209966895698116457368270848511069556867291826179020401918380353960784646952881268892800248253936622649844104620602063061686467480198353508475413402483157460908442529827173568123660148563270467637712291417274833008162166891204958386191388873705917992281785524865930786253318483959613583400074525102595714650515499880783951897598145516626079652079704467532396573945155514730180872284354503167248687180373251852500548504963814283283103630834349298221710557745632732902280377795505598754226652478349952736204750346562535303952111497569059271403800001144771978333018143575491761876921720243648637497246137886524455851475684437716506610937242143452594322854307790238490516962913096922794308114138485668935244080656321830265916188325965728611803017033383115189245900227869533727517684907448473422989820788847173091007836745266583162914114318778063735537532691079201449436744387324257799810027067800701820104410139812657754021707945004612854239397438532145341478673679914034460083731212606246196717966721071187898319558174232567563372809968723325782982934998580361138398540237577296275834399620273760989402855124564350740369943564628157953653250423576159700743643727430754510277122443717402166101165272702365573531178672650939163923983514781258704850375450949863660653684825595133935058513777585579449183149890793205664908093752062604173672699791789506781695920236898283580378678440254551064561227389176851767545632308061633757049222671412363613414761900282872665391815360553054072863106452430010867741246497499658687594966174210504571383784965871039922297943741806812209760614782203127636482039647406507976743381826280223363603258282517536391851010528375655561096934537546075132913503428866275150445525767361056960063773792318772743035266371514863067422966093481770197024120820747796130519254314632086337246699814040171655510185088177772923360688267599503423864576451042326920879354047578671387188645365390344350491189505775473169524232666110351497904105775710891145906642682033026923860494533241593526364665066619168545829077050066095178632283723777565082657189202165260201718418531331526867263890627988450585787613580009862784722938799974303450995265013024098168164698666463167677888580693728978750712082647858326489562885964625943402949601533317359390789505380865453606215182003081967026439311525280213199628574854932431095246971428077618059667771535019057851265161061797673172975641590698840307836969895562511748629194610766217551810365438021626800361729422441937162441031808606561860824589243173241989481777261118089879829805517789861065213793682018627537393837291639116472260862602830560507790483494899378602705736861903496608960339665743413142057336964020286341277841815567710883598263972151383978240394654744549157741380727276516325935400857451213200290750970119687724552943698906509579877921209359978200431539725375266019650058388381525775301714832065048059183756176442596701362340794931894659664103287608256457981452450079326474570537768481093481205254187815948358491599831107378021810930891301338677032444091754202780507698249712648015136683731331804772046352508502418431735749344383410619876095309321384695447731566616344994176573192379014317897786171226076654379570099270046786153312898568631345279285756586717470940073365527756338711075606837204151857416414921566678957493309015738827451276905998090250348604327844013705930056446160654142782751342157270069292417242288743873815114620844475828247141507030582939766125571676058873465076582397445340167573122281460690097304346719886272055145725949829417750812097947691611641387738247741334900030819729638316531082517440124957322576562950166307158303323307146240475441139620572820817193793140014145673325125061053912333886072239823669163551122869510118862483804888942564828842912313837270386745852570165281930736225095307040885961078313999322008857110144650969854801463241593371399217794618244351252327847661959851833612288607395254053192053403176205109482043170096031247322562185075318246918783929588963281875178158597630071329352369515724424319250836105828190497682901511369708516680073664374174332808899689749097402130644955429386824867666273453593282840287079647349890564756129928127677135018705278755693515230980857991639641537202628990741211178021056211457884441054632519509676927517385698903422655131179530876580519319564660202038131804357165125384512746714332854623825580632739978930876560091640953534480508595952057739607365718049174779442559986810190778218752307623389000437239621268227987358200937076917256375016688776561787347492204249690042127421154426902251318805275621664083990460790685280437377702396079224825624214934869509765427538874164983993772906534320574556601065603901483761692786543716358440685717092982870265159995463088810878131296634771416906935540932833554043971618362252469669675153491252419351221188142573869892412195556043946470738103516726685816799627291743932495626245706796316734556741692129555782310901536355903259932993841976253971961760181217905511138141288986330565004940127976258906066609947193665117533101993700283350102980169834929468016883098137413167083346007271048610477500380337526778119992258966337367794960817781494597053512827230033016191001872525293314613208412215414498384178673789156751444599314325285963407891840912066311944187824452435337649805221087273735708559580619855495107755908709774663236162367573697145374135167027763908420943172904474129352912955379149606661625375202578573100666462664062432141654061038696384432657804663682654663819770407474004446799761872680318315297335607938175957176465100842949927284207377238496458095684094773945787912127410162697154359194047235322870716657426187652995733211010531777429066102901209425030183712882355586589546530071094837800763431145414967002761411302068452524850097001014650073578202620575857892201380346054022064101317777779336857576574823788334104477448874858879014418495426003075485130644917231052666238422339737946523793223519797705050495731731957425877858867600826726309696478481396435477323466183781568665734918875649314033734494993216136819803641949212303271288102097814020168911122437340669993386427187106047774043363336553072617054506794834280516835395218508528389982237572430697408666471354882979774642885954815110382466537621066476140676511182440408379808295512825529845385047918263209801592712990432563648174170363589869408216134835417996078555914250903682211734840095065803811357434902266462482036537584281811191697378477346406599551273261214679083218317608465312986014623268988339850146869848350010152893325511641137988945752003268766255145871762352071738771095025556820097544879962608260332971046018188451958900858219077921253811370890578473669503236725979401650029497003603530743488566856809923044456601851151624751431838117974599052335999976867803783532065699567923283134103351010924326220918206642040150093616472721417512224370603897397179188388034654901723235038369311206706203855324493319257932392882788703273866375560089517958101094504934680845764824833313423359007694361755903741628692953756467583387147717477232827474340770018985834710212585885638591209974541106320442189834542891198001527143907939361583879173600799718929507456513577534854896864216942305798097475103900972870460009765250810882557133423362013312325013624130738059292362726926600097656556227897252017643692639471987879157453217463137762285764155746093481745792263484254560557995863120974452428078008158939937122318747438757275217482517786768327977921473773397360879289092956848986437514736392346451203089946485780330388104812811806294512512454716365644234640770899865298726040221428964086327425459367640569747943533520785839127616252544954350056427102031220258162722525615523890679885262707311290656076934734038884721733238956314614509152451887480040372592251056868454213633918138518814799053874845137807606971180159099686720987399775266694611812012344714323684126987906698876119298422113555596416809855185926286246907645644232822892874332616884536917925948117252743341890294057150179992769072670377765121664882165373383353287890901891723297547488074486532934819664079481977523849196981138148087925535475812072478712656442347559325634028251661415789935089593278815060942551111518271338863311713911173269237786958277232431899039341015737838502307293096779875591789405267516324265124666393247794089309223680057748294434284662843908738883381714496424898442726643136154943901091271943328250410553949749131259002328128365968511004952109838272824775583836593225147272845760197046718522532118124825647821220132436621327472172642561952106934880799736827213874352697088919802548113546342779818966500023762527066546703483613511013936126438013984159850375063876924152875095754559772995480335830146516640485279726950578301695604422161077660889881929561642864394701028925163723245753257831563041081665653741352206984861639999934202186881144236589051346951078897646644818398789966102281611887122064585975205664389175739041231588940162074604892437382574499427809629240826588019030288380292333755416719822623818172747548644171928757730650594324715814817162562368165317352692157218377405747842868558242695200372219892513191071024946606464689420699672105162289435369551915248822647264191615824743644405904099814705924256742991032515933423112591462023094906013112905667957119670479859763071347487022644510563536742469249340572277316332190096620656713418178054155023770251745413640940587633457892727266260893137681485531466058550411442501994550481114174075047613013693458519295208731475757864321635025167319657322451163660903721588041057359710755231909123577898600035389097564219577626162872775551025708624494914885836872658557170435853689987488559431741647830820314611795474737398504438712960665759555293124098461288428376128242584186415364707930753858730029828724646504029021722854909581215585036852611517178609492505833665137633101982508069939490134336700926161376769741324958883794359598649059960169412940952099460703793428411481878101523009752607361508302078826256520676640862713315490732366672656211215720572544599440594798905173841704292202808411867470336992215793510724267346967398308596447277729818375324126121180863978160806659106669863613669715303780551014159178162416996880781532597525913392048820160239537564825446601465204592732061427329492218687885103662809539189740006315576126191713465153789668830277905229338688569543029271612636939914861317680575945601606071395945492720756491490028686133957143486257777890893449666979264746808104102029256692429020063699253892135916682976523495644099579428544585712864074415073253174752994781363304700852476748292271644349991080106608757015431210134470639944915949587943819666141778484520278125171193037210324099163020891415519650074419609732623740176411617263238906846840815986169051240889729520085536839955555244406203120229692375570139573758926276216056335615365143833881486406800025467793716490790625186644692834456985002938675286957497678203975462943114993071293793184071303391021603478404047869678122993800988427368510783292185182379887711587385261824461194193899209588412553909596452376717961900619160473345967746019061565701834705718667419450721682439638861919842784822656464538237027334790947531494527217771793418522786186459964955764027456936128116460009281545636927867604735766104378609070392159989530732184345859701165356140210249489179014110396767416012450631453657232427424399896207598248696866018102948755210011907858617136135408898467619574951309567063282744846125664407654486917697951505922008895393807328299378992459844168475161288266146226986152142249368767856923405041508381072656074469701416010086211029227210818333157042449640136930348141786748836711908943292404387419962263730484096252965244194161804713007732483572536024011124916800175749759064864057153571359463116853864317013678395255979089383506783634806687829923439284966134678349568009204710009221584893443110483011800778103852211636529565992387577437839733810426921341721618072956780792845482697417350209526438287587402405646768317497102880610652603171546255265562875395826577011713059671636519180625747709523979327963717365286196309376510882248635006081854131511837853618547486938803631508286123746266473523608116884562914441529751881282487942229221921719271566741498375801479085893390791459639775063300041563584081598933757089225994639048052549377256903494526066736348698781102421643544433576179811996753966109098181832166693540426994969014592131894285947890030408924205621235076041218330174867017686581145168286835623344406405681181950302437307337025009708680991574862890660790424603210514238790708945455650508612718250241840149501114592572850662334003023730990488395677220552552772285279732717222538750593057771766035589186320886230325904449848995656031531763840197148352026441755826678881540153357770104880411861307751351266925297746954633856585642209889829255913866962832164795060972295771553114924936069254591917984640650883221024791968674383751483170707205906486971481667780605664489084346996266064113946924257889677658902522649462548630525174549737086996330967955588376828877768801181981804839527462105997649316505219477462583316383944274161702543048376396835737279691223481093243194457071788431888935428004549864900201613502150028279767359114830040036439428624950792547350116875205717839568012331441373946329303499552091992052846399240231185301906803872506612871096757238942923117260638604145975778957258531619503331050473343881922680525825078031743200609886153686303504854889657408450207557399469696259949371141498351943024939680188116559340014838114285487506534497292520182361487450389235251010735407455402217183767837098333817461880604023068378787780298556720160343368206567319585853632598005470848225207214955155642371582500708553220760493084900181581461708697701224224724803020931947187712970098657895659840769249766877748800775998854269375452366201865835353109104352890550800518821041240313711971992398621796566653221836652377674529379761746204079905231382464366958842881981366104546686965278948795391074217027367349381830870454598918087004434477127106890004241338137507316558925668157200933142834996320094732387982650255781495750082169715507528250937786395567731504448349039064953538899321858425125647831559511745723605954078967246824602489181806751602184974275894445797708340490110746666151943004332576956237159742771725007964991037792231191622609946008487278001230307341345497124918375675335559984088665136129397425813774384525719697606729883857907819061317770042992735976827000606080928122683183562891230927825291348752435719594436684939986072958342396921181598879060533619470862657706869909844021987919763573613809026972209022655113607656972152934350373681700648646636133357002308857499314185170852610388824415298183203873927797347976109860485957507967043255128394329488520506659500235482077947753736170635042214739930632889431392188284437217901416772682278750586601361876442307772482529186070051373261249289966672510971962645758482117475402622845966869080313272905891623684405215467493356988244157917808759022020758729542931752722278631460237349924094320534692911861162131049658794132233767786999441283561871416192597794442371566189981839424187865286081042237310690555388777637230427063845703547571798832595227935644325373426663779134261246090078867153171706253121962802006463428128937281180661531350458949179099383858021646188522484518972467358243003906848893573404072167512456974366647315719628988721762011975741582357110903848325369257539335334026446576197597707149774280897455547165917443785532779740389896260781297866113199367266132233268779465914619666853788800748950686691665598619549264267050483201497171732483883403948815346676018554621972748780942639867203501991282194575875162084626585556004532045517626034731577339441949187737044884582335235062737961955316081673906559481304495760810834372848792227700475371576012801018082150513683602421000344958739189656438485562638755448773832414153749107832909422501470233729067631930240616016348828177441583003732037560849470056811461449038803044649735310177998972921153793250499573943923499911788473196525062779655736046328836975163598718884259957537969666460924950277412688264770090072413913815891587195243086965645928817483056795810580091968577312320663910498246157356747542865802349235004559144781789737243764226784952412266341490997002301340076133076055885588916094248242526816114384814393130360623741750103104269871755092208347305878983247809087768526924213375411304546212174281449988355293702513354914271284197723764863469159502285838142189703650204701278172734217662590037210417878354643617510358693819357870485059411482280102039199443517691391772401299956815700618549134771255520648864508352932846856914518462347131294717005403065154899782976841068525298070517816461386326656976992612516052335209781674447835943930109780327294371699851478782200063076729595815794043999294148042879017305085494666773650504726186862135441756237882335998332321735403387119894331151264633204874792174729450017029958719125706315946080972591635279998952986452380774329058265268765012682308119910695388824488624071190351904883728685790577071827889906084794720714766230137286665062246710965555264997046910036486266329727651680063010528282400504119265294408485994859781061725341442450106408232689056755926983636121580577525608671432951683352862245228614127801793243288607340539436476899759185817022120315320139367301358080074401203645252575409204244181993545128344711701364740019810811165898463689073487222303252661081603246508398423207793008729231494947766770593900837756324419700383576456753880650834431425634088041773070820846627737702179015984106799234889430914097614863633165567152651066063847213747398705115945319618910412796405940371563628298993374545826412155698872598474817080287362992079786183474433134350554021274054202014150413956044717191520811349577858984539021551742175587555625006070019801851473688000662334416361397447407167064943846027791029382123403350543480241355094118100979164645614971464870563900119792805351455087059218886368515340175399437237647189185535165512929591727494187292823724759756815281846431738891299426964545427050630021313890069526544458888546432516429445743717819762389335691842013343570068096598004798885437412709303607957667562389905669167931046517505123131925067181944712820756554797615984740502646006045993265138146586601963848525672744272683249101110579610946175002693756326030327868325869291248681645933573465237689756822569449217042336540033158285801820326413297833978843118441144242773345508319405937102880372950136414322262468659066968140705123709181590861353014384230140134558097673122908935732882370184793673475871270421677364985808295171249402756422882620529917635759549223362427318899807963787234891179187205224630766144658600146872491652510711788803239644881412170041184910374466889246817781161064815128059310202492868902485360658233150688209548127876957570463683566301385577189635351580275711841597976426046110379869649420658821387986416138563341401297063313583277198697271122026224504420249979218926180903935804348221069211051016067429854101588627055412325010999741773874955889532177329118889752278756117489553247952501911492582149082918893457354001785838344042312801234718321098925470921388275381160230695557845996895627736676010900083737128355275079013676513781558770922889584193985722387205535019881155324432729340118628969826660352939109090916137122704054718465746832318786095653805805853544189308070399631344895017608617462305459800391455177622642515394474380683581406178152518344372563065102969090827386384047095018021457396338796635288926384219683111872265581714885812740591830339135036079056925843811527422300445299660022192638263618502206234868270476411028522197812407684132533385885082063884080618862019169981190027142198638934140432646816426406111715101092034081387430543468402249220591835980962963435789177232181464581882730985137087846722136220953908789630421954910042885948895083512663280602066475249145676219683647428718216581689070541514311896797561688209531988382069246982608126817463748566766928788518418952480176096740213404027169348853574108025262896335797433733587433637576509044405222065784399123048103230335641377398559586604111361755327290071097625281527091158280096242502650716407263899992721999643488435209614267038737551069078839456577750211892576943649486260045410134554199105137404420362886231474963675048547334904662666143778483236304009881188990136122153342290381678920754863147314058707682845646821799947950691856508400268222978700254717842500835943775350816367516262943138687383006888519467201314541804101466691129292099285984888456727611391366883332278076373533413631273670824738237620759690214310618479797523689008195220194885071167001603068712891857824032321601403076637487296536158605522857310016412285482466083043999654178817083108394533343192949426873283194533625191193504014813059941904868981568241034264191738822543434275869291801436020994804876024789806897779913107437217144893631388282716065153483161803252813266813703564606204564324002692986112702604420022746673650873991720804252566842342943563584452015374073656712602397985346028128984952619535271029351716977735837082694941791396416177762836996118286852874707518261373906792060716406558328059114577828038371826492765335089733513085801322236681851159387370009119142095869508392312803813209895506410266131215959275152192818815988941692742228019184062465341257148313747756722183233240361017979267224829029401850923208586085330474458055867318690919331598255849453206462027678560393040299955070377965173806872890450869673432352133573238295888989097057033602661944549600638376333755227481857184459755535581204951594534990343331032262014101465066994114826931932604320538234547953248461239148297441385256813518467812008363148236725788307242051991934455813755875273082610815372914915860852281121136740208765592501333109399879418581080079223940847450375305294824354526936787488310858655890776916946475757871180817747746348138891056190997963359094557186074684146593279474194250344204385433173060893987287505010704550043042398187805157898012480706599209088520146563963143417190892638280440238726353591992159143123608357725966215469331653157121966273046578392412831335615486359586347835908132438352642506581029739002126002292345054523341110467130618407441877256584010219968120801409647851292906965598342520684203771559140995746454397475718451029614337635700238408311578250366253345780334327340957979733644612427573855087113503360531606437617685343999986596792117095893466737290156255247894599469718958415933516339726537175888338022815378799993404107392040737368044211844793803703979809751971574377048517486439977280188937495480009382307895367750705640560477569956631570519334893529554676641616616710849242456908386602450888835765212186934872518759508427430938635644002576985758874790804223851362151999678176091211553651073105177507560125303579544884380493067245339619859344215212334495189603872210286100437572958958077491885372668019373071171351729016324401405937565061972224803263687683336557207283054361170384709132886540171916332475844804426364854414458401720561818107187597785992263722724271050872581331440701264353546106217807974062627346489310963038079036852350983661407902132001111352354551923937516996616276136302445968660973009009506591778976390015887952492629951397236868928502390024764387278153533951590054234523933224035556376962558987360611951645415395739910897532887617464109622327277087219981309729037106588273252564068428051456302983080551854401244305678467423867567793193679353555255414392346414607503714146725268863092484899636152285578386890830342010293536607944935047178063234613614185483533174665779781742758045481774278369909050314952806891676790159727954273750412519671508402884351798928554516852153139750538672330754995429944399094606977136306255106736331878381693428509303359693707929919450769615003235045434788277698619467083560667238136683786346356851220416532182037629320160770148726309835952278603973614427137769635534173183741579412466175702668242256463037625394944655799512240260541332837018676698310849045349297992965829490584790544593066260021107828746750425414673250601847503449586032635664465691157457018230927174056507088734553992675774512965214351256983761425849834077639030557527065442055933933456972761772778372272990941676122437461017291692134891255652309614497396532026242558571822970052446717317326222971276078668106186089015990472426852359758240547661599858845015395021021093233264298178378481053965618219138531821515728537681680236857364932272250827672294359980324492589357087288975348511803694696389837883312257249939852467663037404391781138687192900037941161478075649562884431339480904239180480333791896949354648025773848494345175125591705871047567481593981047308642339435502546105026009678214717689773589973806582091613066022555958563721327435415208632748836423686666641724239077629753486056274438558691205016039082152016429556178381358095161814607776290551751698585630054082067611078660216705189680038497044466006949936627114774032887617663454159660197815501998350997700542610187941094379896757890701376729274946466323617313370009066344524984944089944686118032864625220224816307134524591844362853299457622263268127290585363204637757124643179533396956856078719592787012170022868713742440992503916663208958862470822901535659995294283768241498358797329448161180554390795144482754934199231549146789611831205063010134867784757687379576013431085270222627242207410920967346289338897565642195902953554513979787111221012998805175840041449573334206937864970591143014585220511314531676255251386236258679941749594717706117521703785226817657115978017595953999830913463431555432411434113813389180506356144974134803390368181362988796013750509299361034061784242808963861403973885624396152971502395808119614864523358521901592368266867785046162180670804515218864439981823467520426700913861265549551958628410229799960049862772174376853462894202346793106536315734948756506749397097684033056975978945749850231697025912524117078264795349847256217325886260313020150216299686580896962833765092644650030533335892378429366685972374391925862827393501038454986339858794646166224083232492255575604583748737725888241965181737264638007024377772810875163618352053560184082565891624386386201341237973321431136883772187139565773899688445436069269137430992252385672909332163068196675758125797066402085389591465283846480186720365702689622886448583714462135514030054066408174746569217272531046795071055119281503087291187383801941805830987050717420110166967275307077531893256322388132394842329230766800450676490276592254461498314991006015044737822173897261147268118402027162400569021936914146318990982452477423419698884021454937482019133246187373080349751115318081174687560145560105258003637679023407027679556404345161452127537190130252019612700812894413601317265945930324597765786922548440805058596590981397810036730772366700888572416338703232972882577859346612790462068320923956861383154329196954422239013704400736493607569540707984766862247201111089082669647958375256307977374336627341521594263721907208193012962299261639222806198055599430180288240401915305706468724013549466354387116145715842934831104143240034865807019152866443962102284664089033398877587298728185798553626745695075268747376176039144700814631758206435563895026732172656937919133839591407408735213593602997256936397636823272392864812175339699907094467169915511646982862617233818400438714124448082660690785940290532373945697122247810499985052480519417862819083876069740269622420527939598988168424081599177920737025649052153664771749741376033612308424026552273736517001906662180708820015985260575338754980531759000424259718303869168394115378740981428616448594289078878930232223792378241166952413403366374605748866797707256458293420295242522329972060457791189015091428477973775733665949018660954846464577996003251061136271420589657518089236861940669607395817024415564666340768221619512312326668266701450917417894348822805431335458077262984714662431616077647071482570464892813733321870753041409621540778629638128065108029265175770387479544818054028618076773962124577997245373476447360176173947171720046174016292882123844441217456357490193030825238773119314958157544828263048039702710093703019249825803307440646423238351714306097516086360838663496129135343731260307446472838712603889805230015414137803580761708038833126827978691321723835616279024178650010361032878522019965126650466145382349177511771666029171785906483813083340695222732187277640496396148728382746042098363341867754622932727300080564905703950447634714387192239744846255556110638914584887193195971334081199680444537449927985734059413810855383003938191962217288932095194627046955957297077279618808414140618782123229115097000373916544434494065173765875253663979716219872785966473318070086235689987222622037611192147475155141479455495802690321373290077472845633576554271462702690166520957421542352143787592904935288368764228147056091589714341903145344545667939340109981915503199809193648449922934485977450486884709560656821261707947862041585688782696584410939140178157954287658026431036987536806717008346691520604262276014498169196088368101406848761370891585570547632880290212839525231938938696981518467316847582035452621330611195354092091161766923059826373656701735149403493464267442793919775976402720634054551617042245209299094652621199536146656439475913290598324308081945485728138222325120855346618116251291515034609166511349376497851273143897196394273054829508217830429609879012677867960722055748779273852380395704305792274107450552974872671169443658493416200285991456409396597361773397125586653418643408304158073412174941092305451069008152387725555561017139293107597720971460346771318025778796420376289808752278384338405940816930861026946520610433699645227233396682885398679844899693886001887488105249051184415798516150057053012043851993604188110335781275108726784818371227331689572305227827001249740040622626289830632950980401228810135662035591244735977461401732687679139166624096878476662843285413924160059520260990064472981216569975786547316267473168807207170709680105193542998584397239437326405669466987646882385123293769824156619209487353049548355762368008267875022672192242891716585422190047633942222826846347358927977445217642237464647607338184357847276928150287503920385839570590691960135974975967563122874811838636135905660001205066242552216087226006111816520291083882142788032541080656090501854181441416762292504111641041044105079044167196261938041138897240593878498399686498427039803735333807799638157069134541726886287486733573049515530570027487044711344287839844371723244052227485195425399904077685083962926232772461017959783961297671379403563115589950903025681849155114102888289286939446569590762883828087720274953772147446936047833469574433386854351961205860548696570420809655887936601433353403162106175878094688392273895720432912345072892022824406427007339076735172592132122725813954417068775388634954772541349034262034522366070393670353888762380615782028448901850267141578208173453914304001177016465316799962286522850553533365395829543430995483177977291308493316519823059745042419337215665533159841178217042851202787138988499589466741055379987328629208028311989502735478979009796106488051336338214588778941554632965403913071867082153178002480250927652083007263185725822164225830203726838786549481464055652982117114097218966903986539576272881509254539449489700131377626141667485208241163159391356856933390257490330375658375141667406235230265743414843603850714410337103680806490315178874316016651429514287298542339647880353088896300742563558843244400219959629404647226925931395425680567329477740433491976134271951896208343045369303671183555083610816641583767938499596362837809761393962265167005547572388282281163530681035743811798280867058871072777687572414470052859165496738230984995314041834090757860657705295240498438103643434406485320377555916691834397049243154328970019919900877870053944063036652364201296549506505324658437725630987861913707217899733381761262897573244059310589501976510489900591636639160745361743945751349536717396896305548689073439358182018055555160617404498160966020498100168301002201681535404926122262708052755603189907622465217258120852176708567741539594951819706754051131455362217877142972027211676033544939455823401116995756807965736075675002025867205314263209313607122467682807119449041386049487575544274043241043629466630325031267056939000986237084911017190032135983564351243821000900707642046001883356678070917452967225575358983811363026956213080708388647319591886287281670458938044620574265278956342670411182660204521203688160716003612949837573711517868075104043888891404752594975040249883161140095761725699435348899418284784882964699913293317498784297203674556297176329006270973584594664010181134898700450868755704928471583805718740282814722846421951825004530349128155837123227397991495359671061927018921166548719412132056492254811436257128103734896995248013142836734428848775416427629161286583655099666205881127675992145009789662305968109365816320366364140535545149298044454715929739296490760160448635567958054432190183682730650463041385225180084340262731879032463791502532278125479558496261427133140348086192927585618084490955529136423471025270878847539109574017745420078453383803099331992434376291024337971177866871505618471739297369600530703935488499075160283792629164987762992235877475964176846964616983829664602174734772648219855577361821612803113813901445113689406394074098129118657785308595511115198647712350693170990736235003663243227590669557042265606919912227639117923286169741415062747800415703466099891516687586533712924913338265714518884011023449175062774121018258836328275429922404103038276082127731216620646684641531069102103978714668246992110900642156469844297106373819672924367681847867555142417667022520047484100777845985457788614480652360266914450460190663566399532850416334834258214019488295704535660132121706930228830141202137214888794148101265147246727345603420309756639762894939710185604484348321905462020401044978126719449174358045640102368996075107558448106928369632708126747988817811797807305141374544517389364999387451607881962741588591656011073813797827402011563394944440730145471810739742907205309476894726538093659827588673682344118009431752754807818371770366560324069586306346239411320161941405629081031765980499088976308871845882384974002402874538987315834669528342910749769907063690365590516213053375281234549795109216454902562050421390470972583144533518467972339685883270771300967066387882094390966457193190128354084552956892904315991222968622001738168035615233719964513594523832529378500770421071267072945233196899926955472508356043711729518742965206138770013405456316093997128280565848536937392322218983016110313290976503463482415697051026965670450997814615592909300424301345885298290443559691460096752138511340606480282329545919597557185795016596233714736042310083759263874433588995742140367776288734359257929015493786769963735029277861761790291769877080261472125669472282508217372797762690554248138040998396796407016843116929982636340757711900206656011280268347843694913476865959352426133951972168690874304851942669812348127418215166013176727404225073904724645511805005724039776984298718438510153360588736023460780066780972697974590653712046080657338994975551434807472246702725564228014583504101216316192267738837664279037985412508369832942678833330232365639281972103121172723838292071801628459496383160454793417675657515575355022273483419981673034007041239962791353974875365171093515499936990802281809179404274292805012455117009537283771337396528675619394263654600317866716558673045186629487839392508829140322723264490887122963838655583823212084274673631801929597591594714317000755961602100374290730458516695382295343933703389802115459586826981694198280056096721511167506169406937440854593066880354164060199487412496490871469168225645380852968362118393887634855141741922622482450436439619464947331636265233554505575426476178787453978734218058839225701038108513780222783068428632767259308357270301107431645223506106772716266921748351802805639913617707966346734357454314012153672291417332561718275886336472320066484989433143395647495788771587651215131955163793543950548968422553671158841587104243501306750283105981852688560137986009261454580022129190690994777910823273923602022748008837192826573709254619381068356178148590309942515746749570206179106160940764702499481231589295933040011397487591315961213926136166594255769247752712363495678538561335251925381404665078001450858204570847032984027631017247707683737493058199796743172064590713423276698354143271231139782501881965577968438560456769248543991459927630673506205064947291630964603219440012099739016227711693128346885775671292326213420445508190466442589555997814452115407980066495906955195349402893013196620180724539076284128952283720642353655646483434164763089739211059734275328710012676629430354095450005753949342329097882694093453097512370544730226350667771904247963667913014697112014692316307272144766500000409328855409241965738304366450718611695047441099036986453024866666084690824855735027950967857961585348728384799937871210259742098010701154970558092608067728492375706517571101182258630048143231753622900404842361596634252813994970122209718363365478928811954699058507409878834005541810097999682239552959245058499625380761677542426073474955405210762686736422425117778994340379593148042935463936577881529972437174826633587461118620126942453811501308041961503522941002759533038725423744475990481234204334739711474315352358118330688387848466954248783276680759430183690036971585258461435622804070513517034925172458098458816943093177587369301186308259875497782748805556426909135339145621942630567946141317615714521827756715858155110550087003004287245066492620319933083614992130408399492144317852699146261361763683072111544548353261344346390161461348609344198518547114413348270808559111780770857807479217216654057753299506986406777875630196288656795385368020791908424805635241991210568939881835817061629421102124704492494050483608080074139303981100395835872698555600641165399185095169560482257224010140045214795264711844076693413082396281197765679125631160421891697033080277739461116134210593644829304866247111600853017373237360019265234458891547583306167731832736270793419971121924108376632680968499671189713352909396461433746521866155629126036805996304168700781468801567862164494477161941466467951293321238375386653673337031848111188656745577064956065873496779313395053871861204148290131677221929624657251427411405855518235485178879281705593157392868164708640132795042363594191032037340366495728588740053782292183250780697840973893513748766200087067310736712592860434854455678861108447237418415084630655682690564943711623911112372566492453256151548376338708293767626506946151500451278974204557985939760433029338185821789564185858434932401048780493654921348404065032341836348182388370138168316304543128627184027678879941850501607850813672336328443891303395302559154622499092798328439038643148288584257866198894787426475093694507766178691614755751462937570371516338388343059144753655139528692935160237971874775751393621864816964132064903721247025493101243693569603095224123481056276385904149589729990291483985245184652750012526875900603390248995043511227469546233457545343274781172722496783362587890470644337553213642669636888884327359079335866544543723487625350402419894852577698010912055487610086793864751229461712718587390944463877336954673755542680426368906807624043587209226132491147667541345915131777714650270093425117383943467805052586333538630164071080255993044258881891984244681953901635032907831934005052672896502246839174304874131058307955376801325488649465581984440468120206303514297747359696190121977238029839870542386992741967389029563564941270650368040777450549719933011383584488874291194434945169424048024230502842533210008307500607043813635178581538691654319720459485099124236834069131471433102401325153240675165774188250210169914132540376535226530784380127872352801381704711001421966540937363537176518225610182307479355475345762836045084418436401826058767337617625669180719763190424657464829431235418384229626410521154342463938452692917027103704587783626646056244177654821612161032502048847554726024674093140936464678231235122735395678909822362178659608416884042176969922682450397386557354634524260183321824842067329924697800834735540540515284311980053527515601958711953798874748670492897867221377773387828203301905667063568163661633820410544999436383217507015361946203910755387569728282123673522528012467213727627723734713772532187940452793884338759250018655413221208670061144529942937301795571579923385312235202581001161337450005495807485095088196827166715252191014642319857453226352281373382626307118353992606182196320599730047003081190930504122018293704177525582281540489040310437133709312489847004225392615096847673350553283168770507454196574354795910354314290330070626657578620692296248248849373316848393181561318446554379869949005366744129163196857390166374389172370431265561257783751218425829087960597351098657045536887356305706271579761702001570244282620221146146865786376153993663185940644488696954513397242174220149314188167963534162424937845802202902948305650082901668082169990682133640819483758653685867337406079594928709212327903164148450330363989886480356696916076180680943995254589926340285505677333635978172148447346386652245736820781078212190376151301995327864592840366399156505369721062249807240877980374584212582296741403797373773668223770782921602539490283200702940637941050280987959018401146950186292789867740599867682845207907411231346723934106343935990471656810829810717332109959900897024719349989412501547342386914655931890009317206848631271489841074764229095584863654199979998589797304718480708651325989161464312946218178095778594257681989395909760838496255607499959426941388840152377330675779793913168170098319155229788828058676837040136251529540324243043080049654785975880672831655077385816681804795433122819610035810408171787704315240438755668815061717952938215985540315845478214312919153035042242838939041460966499100032202642340674923700899623401854542186125586054531536351120722230434996634272246174704116734844483725996369090572184018704246064465392113421879118317890824805113545217741560117458629131088760553191911228529980651501543867858257098286508981851284155234850129699382984970946649254020419763684988079761317604702498697574576720075679024671801430901217097287727203591017880088561512452533550533589631198268376123146137767483169786897490887557151522779871007415804327310169459735855742757859085805770895971671898977126339682921097906760449142837807719835090943558558082157297254610005958203336703237586969732944812149533260787927269270371800254133671706092464767361279204013661833239303516615248673965724225666705319189899126168637225479916694907097943705764507989350875401545793859083933018420544934266550823360491462052085696188375005276701788231719549395735886705490123276261972485293804521227851330112461850971258802103454288704810553162470050461744353632150503200451409370292483538446226560499874622490508059998581070115644226311317773574177921921269837819206518144304774619734578344997348594107484091971167722339084567748711897943356438195159587453784618477366481528960119421695433663799026652027543256779681194487131212974117744852680091617940993901829426205270168913123797349719530724035082787671409355344562121732503005955127519868401822499714256213726187445360766172425616221420356610748476735311987314784687983343880115845784114292759558503414940225203762727982101788448583494401470716798376703173803039686574732850964224711945202941413356398253159417393651298430962116242314585456235095802903331910233576399399797791507074649300411637681527690051407004731715275816867977715126075660364997897029409041058440749237228654963803117510678294476187649651128878399128023175723527353325710800372693078969470458699171510362115717949462211170183526333654445966811266800164435059835671271713292607293583698904581227750941142976690398532625863888206071457495309607759903995367109147250764076007551684141211478273858781503441638058336156396657430975850249069202831727240915676113895922864892733169286254298956976179452647781899400195327089340774195321313696197825916186826036059790831482233077837575635908916679367815578983375415904829553575344574730190146859796524804732945233326894494553091040481203741349454655931581234735789233825194582480983933671897677321419895035829920704154000156374058135536774095682832822877464535371816201414610581022182578217788198986692030997750554491545257299740077211514352388116640245594304792848886644691430192569776866088332622269586816421426602994790864969742489980490657020765757339695555496417603127350835156881202844713561800519161681951994584969420900389817189615728207931047946940341719413494461149764749095463779176182669915591036240299749549542390302990813032100305011454897513072100003684829747546296704776085747679693673617856302531274540969475676056668036956365416468862825432048740597032572450991660577380018475694367451675897930929524723300254627468066797021533008404585219493855102018788279755843353954935799772386420741033481296744433754834404827287041922665882951676171638111485052670699828050293313905324657508751233029638212245694402150974460462219733024879370230780530178851714084504926056835187000457081341393391950338578591137434996477591318471873034205061961680524855171185797042481157591970090013566254403854028558872510006405571617965331933355115351833888475838043441218993460699110902930785613517379346514600354429798853989561845520685447878170470144395711113161456017884910022142962647049315190800269073552230170054122517117392777056051428496300041644692823543274689679664338093366205763836983170443535370057213028605275149649120310275262191529309571546910565260242943023768722807311857500280174063943410762149012260398296829891857945969470044015774064840275480352918395078167425893987849611506317016889992530666602595139962059988747997985916343284776007558931648260770576726827740336597650614426782705913222170735859983136088684500206427478800296990536755618487342194911808272144573349730560927126430128802413379351145018468169739653660576043307311590354291172215065121481036156840061906944819810370591036013116842451688588689800594270884178988958200631851274781241247235500120300969878064239803804209173925236287353517810425131856441804370773093807828216116143280156920651478535313832151875182158838713011155150010642408271115701291028679528647992116285835887550536714158731308588147990923798158382980397645678410203964908238891855088318627509266277544052297763731573921111331998021481334291294333955741329289390439726368514059984516443146671719685717154105138253936261368874099732565303722771770781506251050940862340195874959495132391235420210688863099472690388670954823387481680702142815899374128692276147978481911814440615082855647986223101368938296722043746403610298430413268899745664662536040852959239794120635859929142383012509789776177764716383934641384398019084824812408811632125028663618836519720739678347582248813536904778678024889017131266337575066122695805129697270452886569342346850767777449148077344538986691521520456546982567073133642284223322495979626028505386540813940042058594295800330180721052427973815666889537752181893454966294999168774568193065657103944963184441442388013966902528033312120322183448866669602292375645356228500048891868961701993828819818511949981112835459735336554350970197283478757692449167077037159117364115472108960057052688689250523411882932774016525137879235649859272405015490106483114775894096489116985437540250016202214588255492277233745883826017957501585108684265415876469749732147519780254579987920282014771041937896452088890054974602743146627649957746542635053645001745218082050074179970644587344108526409767087042884587822923956203920014149870349571049153139035322587943019372914477835517464150683746414273280944754009032212717054710919754661130305380315426535624694626325863052737634590475474212292759484493932346150677126673024464702648993832622308972520244661107379619904951234289786087404934498400507630287887925010347788428325469941450160345633575739350676778027993466701618610235939568821030463489766885845375766310472155031335069488596428270236540636061775284496136133568923055009799184383727168532290635618041718286097832478816607746193750803807980417196213851674914717881665680177653183952906889797864322529834853941833074314055671603672399629751431576482345461422050733089877978645407909320048615587824516396097174479297242906409832855826695576045377093822559619577750264616939366297630862551646958704807986997423464544495777538522546179107488185242226358206458584259625312213696201215825274500417279045064632382365168157597668894512222708454244128290576543699972378632929747460576401325477160815984974526750732140833543490614307254314447999191745830420184408406666758131565669051690035073084917850041245486100899162805095911787227642288015181265264275601854855735943664305856301381568267494874780033397428983655161279419390818197231428534150418854803358384273289518244521057157059268667275643988616630599496697752162038268758258697428040791019575505585628695699247347947372935139537487122881217988842191289728604765366993128488799306814479973325123607602380460788433400822583407442481122263350131487717776613948758105259328344383119144317948893394907984892896322852070809046259979108825675788224581133580311390789547075413867513183169036954474213863701223879750694064266331516772880101476324604035929471894794527576323581431848508261794858910098073373999513657785885622429292513122995743310918382114660582624785803010068577422782883966300782260762880599606840731193792747317009553439407868226070160467533705333225982224150399259358168058377235022951887791469600945561648331533229944502919373887250826788418882676141371251103046199655302334430313458429075226535891675646503540144360145996787327776885562801487960306329334020291210536543535368868614059971659710877046972758707792606475596194602309174511030311297143978450634589762949427707462647499395030137223543273207806991074949548931243297105891475080824347338316105210923043090031735513944275987266574316547806437963507870745655090806555637115785388784515857053385348748286128483027252137052143622772394641011741064002223961591056491029327347058588750949083857432543522961287590287584231943243991506814808834205909571117679357547135274670118628085310945044314359371147307885576086015175972081483090190404524023318538142857369951085922318927617021487712220600165795413368663006547007873993445405951757377683508153130092086646646332412218513480063867411740246700699012625664684238007895717708464759102741880208161245276402400551346530519883140099212065140979440054157026443598242260922642699276585285971019748602376777576068764533197734811415535582847232028103510290243167358337309804110914360204340680026918566479637159883214418722352777014153468078039870129650619545383580420437856257887082175949718026056636342708423245245830339160964760490234524922947069661805302777979255689389181558642129288560831415044499549537426763018118771808856874294812068419847044357257131432476612491746860763629016481481571425251470821245971618659984721946741725985083021430367607110227210159734547873514352810942027040349925271901043038770464008999155169474704112317486630746642309523154937161026175027226779740800539236988563012596819799349175703419862984202833200512733663715383225075189419247896432761825076998853648069880061336437531833931760762276996234236514516637530737021198325203633529213624890395732672770151371390120405052777495675070486565155842858598044855785739504320869469150879847307312714169158631328018588414413081457934367596605516107236181707125375386930903188479538202767481244119335233237437809439656167582340384450037406335048846511770721708666007109383535225788266382125383229042794579523671300736276682108011227661733854485492532224327064920965959988882479539426178725136581870342372525926258076159914905101585348026266614047791109710728065662951188395637117454267795006843657507649037298476518246604690424626942102221639379214697730735438456262616787022701503414208400390699297510978961295657184232760949557842516415482480397517815076699637943811624498875229431298658625272502525727385348406700250292486643886473023008579020114397271553606173360579308321182946645838415241108593870638234140652106205219495293662338518174756397680819556316683429851031072412902239593552917546945480507406595400311850137634396746102175216963800737230757056320696882196696500805076045075125127612477997720996057321896065523303844155631236267142382374001175663156749044374255906133181590985216233192033125974208562008327480635087250728965437800701392784759872725761083098809218423370734382392367777937083057319817045677047960255593911121103444714700672993702177266329210286198734610566611888372612260244517702549597862214056110329102277883359579944984485688580277978857748327524838267402518878968518206266219307818247025151778774352248309244507317245994199711144570823318441833244538503388009280474632611993234145024736144548594721794924510215320502483801024502098424670891350723078550239498964621778335277922934370987106998156592278745884532816607569663522494612033219944649444183343258116322737514253499065326588523458037301936766731838978412722467021374587488661933323469294603504394351740129141380175777162100337757241316474521713256863809503857261837332704740330777485974448387090021750176572326700467784553875432566606631004617525402663999612706616279429137398064286650201384861385773404216647562903602484356875851137684184023692307292245745267223038013257659735007165684642583282422827659645664227865547526857770885505466936523601315501874708399592120404947056260423112090079762481957678241314259626873247834784729567638908382779876258377624243057801195756060527445516076991146884056223776234258352241817723613985492135169701138435863186017241912424784873086728419180455183978218041787885363124603138005348437104975668504100742439716832828224694313332711526865264984205691958159651324219588701958980109517435318904655719824898992389376767046231642324111442259125199082589851759737927642808320542240688565852245231280258951389376455811475791748054167782978449487311137934273471678616317620336875129761522907135082727047661356450814498603692287708173038444812271568650368277728033083158387848931260077284251545037806013643125395887477676460337179085238473291451647077065035133395724989016058892019210853581179906437242223624657078023354752599863178754205747334441735503220924032990551354110288351605824863522086679271208555851990983891984706827167613190127550324725068842797588127817797235814819739567903666232066137402147201220645704800127105329060181937161019731253308047198994206019875954907003288109199622112650181108195600511260584986724652784367678199850104356713695456784546771820074764874426848533528330341246931183776928955245325036075456217959564791419584370076432823630045835929446915546953534720752067533733171516463167389001257530938165381496176569850124261867649906891569298377970367739921295093976294398652716376256062567501670471664506435554978171173290613812656476523543639535825135390310085709627777777597199454133152129608800440460087755464023588819246549676058786060311280784990853167405382911359674657356544924919630194119028680052921331701770395483145850167194915776832439727210655563763651619670086727100978727974964558785031139138743295547717085059924206629251977212582890009590475143528766823724976417026869573384112866911812906802751201341494935784356567050975549753204663521536966527230616128543931429533808795252867566513059044277873492837290660423782637305220290124839890122739518611199359285741092550854730659941546612003478849217446194237459107205342978169832668142146372073106047857168570519222976654135680002430273341460570275291525640130532477771511484520469694123083054135426152143149465445658632726367985369138937529972407567952456569654103255666457176620686558900218927284550967823575399039632914461563059177994162610945915391302678423576122165506608125022308310853350310262121434815979369993259734627460416334593267774620114950913102758638468456807617394531646650392631799813199085284428725606971957740480941428224995140250404984709087208520080339272238038834633724353821552326382456749376300774567165852220189462814289692653911558558130286978491973877091679352351804382998050526347733034445845807507311416069095931224664379385270702667924068104318709466110442498094578800126520754450290172957110137043802507820783731282853822775816266016839033271318936006915251845128852006316318174360246859578553311584396604845964495685552712389676997333850561374594653478108403272068775565084230344985327964096833578659439774162357841862043277390654624879608718787219308625111390959687965141749137423127171341007174298250514556248562987092818279287934742653339144478889392483264597374236601832111109251911627574470736786190257575557550836490575213314222245857900988822167709141516487717595739424659295395443510574254302928676332665363572706365238507323071531799242537531826510000897539322903986490315868766556434645063559344503080453397168663852572200259119071163305183494337683715856112091196444858416530595363164871483004391185096002907978700711210307438432605964944576504168683815711299249345074188162528554031001940347735167644271215806517119249081431753392823252573317020853197277095790176498833273232171404311163928366738631958570243610464631425696810458619146629538585574128530014412881160934685225896497395260998681988697172976621104685104110499342360613737160080590146585177954087713828484262228861444363095918460798414206433586263558474704207624603842942124059473494556058218609400407484370572887805893754126042089820658306844278542494030810347556573435344231076558694854290282278336000547219599730187091422434774888704757315492066300159378001144771303375979396747268539063861002283635846387342611552212655816726912865388191103703844308142100966294683265705689013503292332207623273165811843690480817425724032817638834666178436369522298873186618626745068191672415884251998068591239148980165947866171156936490083719055982065790210157661158611381838607996009114722003242097000607497600486156038153887769908696927023106952752936635898639241443376014147269964002074937034342479164023733813101202860408882974523886866493328627723848215027004758680771243503509336669921936474544388858058321316656659135873019176600626697825485829454636198651408415405123287771752877330892028123104903836832609257270180363697805866427104060355690071998064770115836368784434278602820636606135604267905904302601764864648295173763949223921431006325099220166993965308229879943913503233936885908606028028824130742845601354921139568430813186010365722646200140854919715223662969221233038188583278641645467727426157589746518110040495120025847567243823190382003686498254611600577014983785186367701234529220807194153219027201941274984365314380999040895968939111713110366186074416384748073631582785987396054987086662876438910235342564036149885727751691636648648994374019446146212703147476410475642010938659971174805340535733865166952905331067327862224181762519486522335683476926337190957637026339739329974622853059765251048464859038264946039109569665834226015525040438912312676368786230260433067864343732393456899260409090337673696650333654721716436585435011515346818745432724115673610685885968996384995536847390928731712424843556918275333165632750515460089287138674647116705166250365792500632036071310723527656945641442760042069873301148403850494453249754944958555286007458627665983178484716540018432200926783549159028318332478803664198793605478742137044168377008243807859487799099314460268928052314697326243771210176493255547050167700511770702461575426080643658013414907793214973186604921725777477862843282987933694927026195045345665036067394455458804154734757907767168358312217119079966958659058636910468232194532488959681598766884239899524724184856395626473152177054553560199408595853891806227155857407302075791440509871993789230422836672176777248426187890089341156879827989924591641145747020780640240375355680775476156192256443858325061681934270758443595765861923952698399782515304551808127070453560778227644009771369830546748213460497501386944704604671800526710910754218430592927537931224844910269271940004870380780365523515036801664211131493852787489014748534441872504154501440704774980333699439877858710258303015949648849464698830990783791418986450318401953248260830319934395500450094797202331185767213014532463216412366317565222860872082691241666801982340987737037225887634310088739936854816477309641229777286332855056565358780557363574468254949427383467215795609358949041593190144811406020661797373428472490125891774867294564648819601786975978060435543942459668153890147465479472062473524942905437502783765285587954660818144147032778795142348941973683260461987706884079741195387341397927984096695076737190341555955798076581341214589798339115509381693677978528892653484114717429244704373001325546537337913844136351608580078965415521689423232387834859361714846861221253330471486082739406775094508285218037668255736485625902987402616031359438459983362032482461598738647441060959347594623719009875859546748093220720401868910626897081954244911579505224188358028104741548363123871741594153697133110959528279211013553724543758841304374130172196233447190099405513438057807200718386048490012824740405715414998187658608030915453111541707795347797557689424565397318340065514375067662100512982969245525395223224911235332585248861302110612490089107285873627606769293192094743203052780006236776269787043045549989408356280898127515256254370370030591827309850201607444708039770348134461192467985117828129271566827646885368210486173518827422262091636677652848637429372564361974716840426066448221768157570136890689698804963361170263126742550707241772552234958162199795808640271166636830177257752877839251235965917120352175792758707670204812986750365248407846121847244041606264419359793519386793109055552800482184859352689381213853737287405326968626248122070955194606491508805468892107858747158975648227146735639075521058087855876494101789390539775649073752457332097816608556937042390507706454340138833203821850269632651606631213938636162516490061347781119778527433955205470571823377951491387670569731239650569587387490061746161177064687290413984712068183598978752576331302763132282944951724606873849066778446619302624777604710059853241979192799209666393784834179645555068078306696742863096794825815663851657990477746842752329866659555141059949851507384285101158207094082190523868385625270467930444366194754625684094835740457142706403317091335112388119896574301426057539011420294190923812243094188020836451094301312139134020681270855872245232122869370660734166669660476815422598194884323020472638701361287196961570077661420173572154352373452851243241862137395624040695892254657624772765284692132877106526125409831982611902335133264422486830839336640143408259470115441595581683976277296018565331073042575264794217889773089568186356911484695509634457076354247522278104144651098882590000984105459557309053963153027221210195763330319039639914865392799337388098580113973866604316731621108128075849705354984429101572708029009668765766262332905670649825367034756956723751014975165752906460518304570627524140321467449814341134389222796575999692648919140409083525715388827745019896837063367491065750612733444235921148029461750553745907791890508015113442769309552860570717891116627305159919513259877333138076489757907319155069071431707545077839797941989092527557285021790258729663754907999619276397443084439320913246616427734382309404626342071128482942273005429452082495767068365015780094247363752185301658269889629701254550195910206433837389776888371182006394191988848434809808044406684632386809595620934701371986916397682708802327410545431322015784171733795575103637724311381759624421549329733770336908830489157628591568993765818867211982424105998832482924280630292951089549813481682502649999718810124493375858456230065397680756575498860691002833544424466414661619888033623269997505453564877477472791758114780239354852792769980252725977286717139902477138164533622833249239911467835911414337151457213215744939016486466451354022019508496840974543400839297502840451882199427658337332190676496962106212902699041336729884945791144338003985896909499681877355466305398057201216762605667863622230014470845831926427759265074596723865966607708845969846074331761752929316150561161752735800586260667840743874891403360115576074679204167771871843477314919358016076588409921091374024723423573964277214129710544413479021177956384279783196480345308770855642405178227302573777011302855526759547361941675947669138499788353251341813180536812557213523592115477770151688888414763954880005786623704492460468435532733874578135633886299429173367107114583207267468055420352025413354881497610804728942481715641700025160119535588442616241132711428048880813393115275393161723685734727946209304202242575186680462199961404992519779442068286143231208240571565706282222672609816167000073087858503912882416964509652766084153378734857955138625530335278496052040975114772212518709468630574072228570911425337244445409361135795792178447477723898598116129619960450294327752270274535311083089072141369697935774513707889144374867539771132373365192720864497646786970818009113541851675266938108331808101336761069141909466381035879433573532194129664513690957701651839475719018290344927629872919913737215619782895204717899867724988368365888695615796040736115475013500613712831833570354061630423160770665993487014728249985576124044158694044023052579740822152273245575277315195292178024448656197776406866044480270644826330659696394034928518907912862673538959939683118754017004306863381497293505818026283975636574929570389131957937645911531748504365023169807500826854243658242605576573233138350686598138676632938566822317883280948037849626145930641177820095025420087156026415544417908071034077057029768788948575608282176055792700246965966411622532773267662989228489417028160850052579889356445442459289470612671103115111995232622634957159406892466517701337871432115771057494783209600476313891260458703621457304917991398707526844167475251682331357222971598468083893194234842671050005998055314063655619537784343241613743175868598406078321349489068650142691573386818177907788398812997612607626114518037505856294749353670395275687662703011033719502091420819890979414954491831642690009149841861125275996735045533158738715639119403964277821107740947591421575425430288727347598975052085056799277436016238651491824490535743824190159023787064279144493729484852167665167771649709212654052822466929501042275811909556158864042225963756048235495398744416373875368549330254549312453525683156760333754180999169472095808761543214770621392145695711162266655868797792830862281848023434786237038668364797139775998156032604500347235764413829122638622650879715225684667257132519970811736647390416852482781567817306872942817872460321638394475925445360915427402284523621407846569216668078435273655921172619154817451835410021851856083292747118462039251526745359754302144735038900460333059932481324197284551708105555714503907793444834870920061724686054708668382008027304915520129823709307183655628510386892859278238700034407250854956663956662909997238225241347076147314127359435604466615573949499475734856007878644181443762068875393430814240449635031764806774293527896885738186633227754496278856364276385103479962269831314033820088496342730146284317682368829781462596210095959479009511920241247070413072650984443986147784235386141085611298189570737615342179343881658635309707739770770513694927167637572973170859620407011699762737527371417354037108478556152242093181800266077711473804219127902555452686120878434639422986247199633831829831217578275108853286233526033517551906760611074375043913519178920381448191276549722377879105925197076721516382966113455836570107297190913468995813166447589151973744730942985174051768411580415160444477391795475698453811923975326007969835202442874998581645444988295806435363862671276760079517962371186618646023154296771446351685289729153238232246346678654450932485639792826579292797583267638275167376159415979547341847311811751371296112378357554369971082421529322396658653021072005817234400194635523249020628680528926639459783684667364730043293953150341324446209063142354188401628348957101383822311405733656806020114234846540464252808550266163249279413084466472258046348270739630893617620812353239605334198589391196573033838022576751788329246657464530223705476812986770469979392471556738235251082056792420634893351744295925856493670922614543442050508709271101005667128210668168425838517206871551679998057567586895438899333490372083410314674996354765938548200148150578488051995163965337353294513858187631132828266474920499279037251607201429027406399846959515605365518273602475157468526234224807457482639924291916780374520558453193618894387959374629951142100500426416752574468866729833307575571367479110393623139163322626161605524149165211129225376424485264270145353981000293972157760653722389699134027539117842068813766447506266439854752746743545961052491002119692837564409035981769423501962505787895470250639254855636706623973263330228491738298128647592667112176709607406977574642436872691356523950724062862176985905952981000455204186238751449813254059587849175968723151643995483567150548430679495214534868998685782339637292357695538428753341582755730813941661217179970589924443320184305097838258069738274206158831142195704527559807289026730744106850548944806369912325605104339128373229508650819289456845210638014913687784995761900683642640755717222453459509703263602706204295672251097091618285653202382536366314576280567072784523582524357072310790883587024515899371615016224590615398218332883873706186253029203432437889616803933123742205000028049549696824586529082649013381196376584872530294054237350406995416363965238926177969236180175786931616913203838938936539914306534207089441181627960043467911972821788736759059526240186181336150797725381488039483328867848202694038888109677782864199184678829029521073547248134123121147504531185500367103402817471541515411499815096479117796689763744213441532142346571822431057514893198978956831378010329637518022581000494882148794895204864682884759345392014137371643189735199316184301810058209233617112286163850310038155874847058890513731883429204991717846829610227702239336611823147472906478441180127091944252560264235200639631840049996359577469408396043661006483025128139793334004021043291476721154205153449965847795414724976835983443765106417226499012223342503856041656873647187205989339487045106174185906751803483273787870779162997153854900568261283579064407440108128080563634453326748024829301731987138864228588078089400448376736362513385753542236120695738938047215498813242039004400762696294016211061530922601254265402916194703792406378025204783070899624432309183625081036522226106613854670626351458971961996018878912689665725127678741805978913788271589631454598383746521695743993287161113573385507465724114247868514951427597746022659011913723422913120326093396759800375805936249751651685523548464122314784402485476347338470283243251748734743449132585760875475219972187703421204489995106937726310859870162113006569549152067376293603227538804179618223466040512052283534880797982384806719374656440029838920065992974402968255708367843444683294228018579716672977914829362835819136684888224424428908468418668201164811418629741277791272073356958194217621138211256366379942657046624785114588811577814934013999670289516036392361867003909347774859427767974463911093619913426689586002296872822356229022208912703604955409824867305250542191094221184363431724515628188685155337071849968646959208402594786427037915005421241659316219580766335605913761701341749404643872723299849977954486084235836934068368432817792312743205390450634998945229234033999241109400704555713867046371592946051555389621315953992739102535505904871561491990690916740551432162540173695112368413901554839147679095237117117954107074066869692287689997543582580815974311428713355005525553893321556451730629140438214498983319533643265772265594372425580164693383473466992759949306334837178770804013256725005607063678742381349341081017375383722583229501762839374288067878369940471251092581821661229691908435065162037627661466342833700276418221170557109027772559312863804408478682843428218643966182166807797363402659416450533316269357708612442066900975152451106935912286094559476916299565113392247607599853012027974413024840473095814018046859994414158951352376557966234454540167794195696057718122541088422517825897718720544744688959413667749126982919245283593262204705273310808515571228069522005041934274773055747072896805331829313665242792359394601800228444626219963839749971684077939669026780189572228296136798390160844998514527380730119006777283801509814941863934816547690519179757017663599425754940419869584999667548228525069205212097970915649261384803331781033390133050215213102218637610976373630884057789348746167104987614254652389596640970673499247159521369082192684072231145138016666631119504958218452570463245909683199699088343026068441885609220166635621640596470154571361494376201697294374665095580033505527124740184074176892011758829234748905780870508527627113504687491603253794667291401059597808132371381138924603346494240815894519526977398922068588437212825342119928246298650705842869330825793026713598436676541628528216080361067857495321549007077521500675051348310470980892839912445297557827802873772763245290613910436924472384807810083102683871877977076513599762711353316055658225170662094341614720768332888281877922866474862450562560295377344198564321949477240118139160590546349838391064288994182150789592295575198025121108300367062683807512964441356608815994009148554067530826360356409398245956198117261815930324959367165767723149672256924234590007645754108563620673940131106731536367027025673961203704934513117468818619557773785589320579367067573368796246920271583804716696902445619648913996251490998920439167939576185770948251896543320253770086243688761082198822987135938985154179354098206859282611653750432277044946343323752947963687408434471048289990492889223792840651522739239071623078963372788949590893701214133114621003428031810299026579663882514844917835666009567752563661980444018330559213523659942313738923006089688891724101752342706927767299363742660814716812844100674070779694735320993431319216628536581413694405113034063736312081687145578729945540988780472951446633520356021736250395778043186746996241262132084967837947098891920953060842700286845220391526931489552880428418635352958521438543192082024630547662866859105461621507040780148345133737141340803875616166668631294167961654633971614341303129846840951087466797466560999556369121235200556041640917905619424601604843958162805748192729665065301415844472774744707030197017426554396512388963662898842009634998574453457866259792011911027500679130862550371327054005553264334412218445729335114955382079034203514251464106885726815650034055610292644363913807969449124296241274797661798479227614418007587829916446570669031143591323651044662052379417966815864241267117962172002032779541085122406458402121845706067786458221128745556138354522313531300842791330805012661625528960811303018498924830462428577572230746679481159115226071218312954103636879299733032449214684208420455326635934966246154104037338925360473098154043984595815823857655776558336224746590329657515271018102636671689150184150443543293589826818572894921167078806009022693521027735832341183078537679707850443059251720634060200838268918857846577236274925159499460861294483422695316189974262376034913734309246746012819268152962766941535281174798220056248139289534908171310181129904102244392006242917302439690877481718552379127391828602140048397790160293806289782954278027487457843412702479216013473720251980597867199217617180827611027273160459626401280515407862408055133887188461455194047179314965702902215197729378427514810659154929960709557538411817254447755192237924947307157142209613071745232948956683260204932878437666557353326590123845308251730603703513148583508724807991035162821974823220268374134295244021718753851712586882964267444788756997630656175982162334784142812827713305545876754776921027146328746085072582324083767598589420649465757566934576721281299382046875444115257585680323707290599267042149434065605168667605763371248510753293827396161395593642006977414499465247464940697562223794461429612789767152654262171675337505077987297546827068465697694831544386589043418052899204664203041849880052811878250196162065064762884293627129170353890926285656977960304460312845162588750058322890371786123218708178919925122271597536068093100576541387276142972188123333190753720601697136426653149574925549978297866341453421993985290080003401998902266887806223103270892108682181409547721411053964944230411137119769862335363406338634239990737796331733740507992214068837231313618654109426029511522695615944502907030865791112144580070210468336656272946618844818049459875569743923546202546262462320213750165534972412621415302430210157832184441852058789170938977843084404784127829185874037952303961933017495026043700152375075494737980132154863575211066665658363255321999346775584959439789360988005651624617303367434407449367652501327163250608830559790770993898446245499749356217701904337292791238044113905269247583056365654606538298110828994881959206990028886222579080797179889350403943765723204334201667829659269338521806934302208533225969931300352108499166496708254800702594389902635553789611931200830595246154187427561418658013977964196254289387586474369336728865395062175792225771275791826862446068519380913416020072177839334405131019985899169750070890723742321990075676199169847079567704441152916284997872583825576676172755171880568567250034859235691102892073870841206542496266603433549318615505732604716698416667080703128707409066679109697820790667176986080076165558744963742604166412773675529371928482750604986814864401161019295021636166745865089204330600112890405363385049023359132143801660513898205994063713427795512596154762433171964834634599409392734041049030012979387021059815008144723283024654163473402481980991852819434901404939833898281004664906463696168530838973453558331663476843517701375122950191320270560141790683582785671547576038174417890531825584292815764028775730849197473551377167439536310318337815643400292161873522554560532069258262403232770429415561359552901621122305068304598272556866938939361522615688843604188077001728562163420616558828429739993790991023254049333423706260868771396482425896501021308734659387253940263006822100931245176634389481319504852249735410097850217480221196794162997395030153124178013520634737356146658732092819136692613187289031807628856147019269551447673247152501442187004645591611998503531082856425661434187975899998877769593509860962638721994830762009440233918748988509925654672432631642809375982871549101291323531038440402534841106647736629316577072204876404032209153439717319691570196237135452272632500638646295752848956268756399551606541385417221061135616814216343764005429190168342812800956311185657132900465227141715058046319413116108085316338642576029510794987129689510394176933294168306604825069405057758417623586742342272393980400998017309748084069702987921198436759670260788400522493374582690448569040481763725416386476188701244641562756478124915623642641486961356148298716019183122308686641287940096047626062159739019906638357498295246594060774376127696315561817386728634616768432645085516184541878337034498752736132315821171291434675554124630599170788513486877448388906470210292534142931043128552708517736627345020598797784109867293893733810557695323695615685170212109126123296117114035848372888746465145766723908539186265286912122542628053336105902729193060221864071748452385725854324339590418675485280682543165621169666471913036756596043886189402569981733319035981236978192608053368183984621842382176249488384739669914548560836736007175887351758278421519147417706466789473808299858088418591192832239538343699649381913831192364016268108311116831224963722109817976135427307571027131481353277674908174108340344572238235812250659535139199768002901690251682275900443173173767015792181154017328169160301332472135534749985602362446627407502236050321041756957277882758574477404373022660339288875586992809838571897261812943202206422164758331551211046458829977804617506069832466993214234174631652894841128707069037044203471558195727811084502864650825973928220714727186061997094473184554321467839655329617722307731536369922376135267789319676593349927787514158701396957335235740337375727124762828078183498846375723074600693497162474736506065707184611400257331375361019557681323588338177393790004230445898389361370562240674017520815678967988076916193568678455459723332745637200867223151352422433768073499911610405880042783535487288587713121998734846855889344925842431342796277053086163566986633897683463706342570572821057548096112410092087826546715780215887014867384778912281536973141807756356190330216718539480896067012728936448873080641213058252893273452536150379411849321355495218666388486465641523977508741793699761270465082597833681948196503417557700255900097061739056608781740260887033805988981316071053888631722616438446168937744310284889101283527738719988531191519931689208844988680815406979556980298585499656365609448399569983790044351781581258883535953068817947396430191721735803825275485015946520026363246655459741533672837973533340121729474893682255585500825606976617460490970928273765799905370262149237363065768256300620626627132263632718096764782258025387122166152327613530543338814740858572288668088075873107182646099616315326542259584338769756227083416335982622673421795848691915685232990441716325852303968544127343014464553247695942822914471844324374462342690136891904902077181741294544463610108356890123170496963704911803879014708894265614772899249423304445634255401346674446462925281506985432923938651398223692318156037491412033385464572841462140276566838332600871977078189429312346457765246896357149246225623949572103461950471373345947464817259211463434975167342862329371537566370101431004654950263682599062662060503388591086916953388490763214916715205340127013814163935974523003200441254971971592801283918443099354843716794822526167535497351786899254737063951082933111770140279091158981539641976555919102926553590940131973860730436533795426597837638085973616428266382698189952589679338745023337076770829284089628588379261776086016367903456600890087983270106119725179779821304234018205443599339402713031175105424716065663974332511285751675231998192542464872796548676447242463352082782003466727483848722076744487410980727464497045028391650885832842935225130372762022769153814704633860708486564320135813952050955654902600446076339593778019178875300057181945452069230479158292860809982793695925181951246677285272171035572061409254132666615039224529566818361385928284750651995688909931821052547490210245372076772454550570352727166411228362485172299549520872182640359505799885677803342489450915815879635040769984539797624747068561984817823312850773945870236082656409011365662743157142398610174550072301632811615146744815315857457539505726053578842633799395425732060703548056677703563797348616363611727721821743419830539769290730075142244353630072158507662401422216211695381810952295374949987416496024435899525214882180012933405911179695088911883842951991799988047416568824195915543984231070565706931394326603695766391638249263504946125040627950489620704533922466535424271275886201979119252679694522243047255038298266328646672967857708282192585141810576220475843837104673977518582290977738980099026884713185400998337480143740881778550306712618529831007628863061567845551441925264138737691323101720652311089106449970488908354310505857618940614363449320380910687386921762831011775916182061854800322429792547800240870884127694713284510692529451060907342475612356335966041138976841633102618190565627523407367740648157197396463468114252258133786277608565220382307014181923072583738400441927866752950369373807295863461683852767901337923386977466921826548486486201876990449260251363624327724007887662811148326545264387404174038259053394541760022222396386412377129617325995466567595141334091461619727704582411243772152764595231701315998644185347546906399655349717610285534689898663065947495732793110241390888552830307704248384425126725004892340494492689638831822109629625226344425171986717320865763646651588106030585019501644252065089575631233805361780323371451241160007483903643518467517330166019085440568378199043177382305660082139596765377196858594255557224488084702787810292905516611274801300775553201385909666446403811878769862997795539768018486310060491212181546967991877133873490861320300817053320647205567558219683276133087920786617621752185170383984032159008840218170148023053770034608191430514976290765865738058947923071341019864662985745231174493616038141221107512702018141750771511328310369573734073163349068083338263060730487698292268306897837717011442650871694849395734937829572660322575554033323321875242211118608766084613565047358002130027969718899509388786091847784241436099569729391622453918056233877529636822969829515418228205455472070581830839542983967918566314465173492471551241235037930105786540857338333670757158189336580975004331735061122144660444826495962415313603087729470514244891308448037205964099850115012845285545258734634002100552190882051404890028769215169950163875940172329506335772973332120701539156456769010705625292140616921372692085122995339315872522620689626279093782463304653557679060714833500978846774568536879007842516718568689754901852768239981940314612351659200857184697445615376517465694098206529223798688847101358965337956996101393943353485577877265231317227056093708015630217020426466945364698663375912466314671367367896090315011614912278085755467100258090296368161851257681980882813173341250997127731638676307190734115848171758037032900832136909026477678351225285167985556499497649711939615596475305655783965790282904850347166935988497554790475331248376525277590262081357359865585758671403746168128844721503875509402209467955654938985692167268104942809946338336153912767738054372848179265311816120965995483158189373552900642661377663134068949256228211697833233760396475139993227735784748402798704020018166257337786745493555248130474904780536276556964802820810349608672526151080261170869301360963338018722232974521606043824285750256900707928784449250295746180176476482102638580772854864380724685257993569891089128105409486367467958761784335538115135550987854767998659986435065826468484994599537634216630493165607479983816433192616039809813951907537550809020854691794930729749034746569123921615723831507203882452881044408313514596318883224071371547730164728654643161883753153573842473241333355018133946520928654192636338397860276803622438751673762685609619388371640777593404103357377998279386123820309531205215676051688807150795242392282816707252613039094755608711425130230885185941199736006952839806384508562232093116420342093430041446358033042177038548389007912937708017550292292047799396839953714114536506860140003366406820716266075476473701264728308500707738041706620075147543442253335860402155010478506314000143348612605674409599103295332206855193502672894395877554509872031184263743172364453950174075825565287701188461473494556843709990264197237667318900259409135704152692726396648386605290971418593618380999467381838478979412186809635050951760894663797709113832172232281667012302697003485757803722734495134441466803442058533972493294435135309854336581492367250155904725455777446622583198383876831335089264008836179293179464314232604208557383838889518078976881746482804706195575609817697195435568762588240224046992203571280047877100905457557333428460743433141870550456352313894276720928586531793699073446191250153297830135164483949537387840373877786161406318536944427464927895371119472059004665757074713957913347642717195747239025765138173591544982213534642958461396158518665708320233207931291690309809881171637627168008454793165299202097935315319168115923998951111074185353960646480310862350330088612955132423301216686716279366658716797916310744293203086015952075330989145891225704445579849624927339981439787870420884687690646781897571207003834388132077117446979841826722305211483277302843681269992177175878961597303783643687901775743545998137084651887268549336312031211188417752429489080953650818038795576464108648770612061814808533499639418786561074044209405054807597877362042232934688710559073025650965288649015340037577836911678782174162510410839802070404858988419311948136768533493572428884798260343338244535245483183506590121184839053710556130199800315250782134509053536143592348691046953469968679308244373838187038521248071802201886257157593854006590934852605483821146291404524127035350601107323329916074774043583500421426405040695979225751561289372802513573421500338942602479295380240445817978186404013576017138184749799935694026640670125709320983498176773617553005248409839121915764998396872220131911616479241619714576349844065210816644651485640111238243708209183626255718073599580763505516049740341540422210451460061486179003882673918762653074967805290126974155222741081604726598355353808988883328189747647526696123095524033655041249123511104182713925535091069480341871794192684312009657404943359497025221287655777323403484016652075034017218619861240495449909076995926998424894629918530430646775313624944817749489636631239822933608481123205066231030112723066816528982480019741880637702371694560352689938954580933176566446247922201961801625984484066316112081622299087515276942092243435708057691758024995844898551165940952481285599523977310036797281095784060744928066450468052460395679594589308093282633583647412949468829626971336338303965418772517115809354511957669403604928217312686594067205488111247631449377426608322642817803367867289224375803034741149635930524734168250283174444086489565868363112475633847366454733705678518085947455056984898029170868582919622231646303029810716957816805483051426400316942896860652094270347737423867879836831223440324865921126207085237107273580904954153829823645219024395584522243866762865132946125155913866748066836500345833151879162659556772143594810975676815329271648998469733607012223160661820907664484856806166369088974900500848522815931669722248900174032439508325501263166783468299217965395310393402624113388170382981140947488823403581694440217224612333487353522579711949510128460203804894902246838800307221051325293707888943294236464171510489046172076072681792827560715956127925669751454682662563243437168429797662792185699756216798454120979522021314074543108383136918988182170482805795617715616286256614876538324262403359856244332031478448019876248398445026891859626613988517608351331855611791967105074400574248062565428028066095344859830665775064411858732937417016931546168339295275765679802784973749742631413618377373761989289740721425064153971080402558654136239193454658956469632623918696256819306508249738098998961308997253694645538252159947200762619873991611454727227430883547735691433845169184370659569671683880264190971049538631142526928853830872183392105484098887802318899201225260721714467272483066661453479844730764959870262743587810646041688846521406192381853170232195557003796780096217459861495851211089781501570213030244067475170942284927220097768936617205579465967585608158188509653358092340053840418039698936675101889916224055419796301063532214992551715358423834893427345251602028452175944133137087387481929836412388410782482572396325754759049738475990462861915619328322991383526547445757364553955372874042581314999031715369069235680104695636703195583396144531039507244579528992111227933137381096917485809104292599549604494283776453117171113971350432182814847063817248197404213498542884384814947132449205980691805040790858773414483017748577558954317281377210026865991863963227538877861159272190101500206589424697494636393196057751257189417778599664286794387773780968930445882575766632404184062473056120930216228356700145027341489673512531445128443205411733073295971331104609743179470479461316068165921267407305632210036283082698813016258136099594873808399609837125337297385360375367723710350328134145655987709415888896195159153078553541931206801468993358091257715531459302720380537216839374935272860276420780826638749666628540114731108977931944825199419469458489891991151287104475774963435329638036029391424996512770460999444831526665768334572143517732131190218275519927092984549601488507168934823012834292597695108404491989726506038309818282976257236336538164855453964439755241402335344299291004075460769317456926257480553331609451326996151036176214006401356965483729502861822193382483615326721545270544543117114375776084982205392853632654620847897736923986776019621754315928596349179884942701542624131087888359301314891494244607763466833334095966578351650509641292404917116929198306213772246776770097598340277852189314634201984199639256333046622557294618252781232647987046936485119343977517408398075385948120522610408867381334508115048797858317910425729166682825630894505735912006991556121333186532786159892316829779338064502258575082167302655716493480853453377954036398827466432613842974119271700187352445347676004398310637903157748623781666240640785187993284118343635748627629860969138004595981303951173779166052721590687784727651740023525239746369185024750957231032817647363202282046399345756730819488746839156008370993599747116699266680744963739610270586629020856191955151104653945114455859301007309045987477723032425905475116251154507603168613365358530302648222418743803488792133119593290104617025429383878886343299781274505813195049395140514643258026073465925103319233433597218143537666993099313940814771687034518596712390367860954340682759259690850887620458734966847903500794986994356175122842361120494374573846879498675644787830592037584284872219609592766806145281009480897361156185718404641187800150265537061107502174705159424311696374067362830775670026920720969346749960301961499155014291728406135824044278736691083813045971325047528062986280658020122915166448102705421271612885491723775530899494017543260230585972291260840643764712620846071688358123564713532575223710942967670232264994275247017748568699248207197567825243578687466595810822213027538720971586588358066388022897887050641736087485209922497908221144075947909091831043219324008298238331271054298708018301773925341445616855138102458876705155357918733116781225694681401045813831527817298899200342865862360733258883672015178392939473312712070742978897988101375885637920617722119911648305550604312396839027690635413129111094638805716283185388419502760948837646938260119508204468284887077056698874652595333631229803602276001420832080251642666723565364124480647574026979586663208852816758434982896691380300121389492476391624323902230241006831886056345832258874636051956392551647892016764959670687792596935754100310116524269063458669216108483281044914764264737937167619745178211456740275661885128173175455297323704394715926927721876004209677690613746727592728505548458927073051045952888271804152139094149256707969043187768476489839722860966493396900931373813893559283930839873574570809727239631459935789234849049174960466388645452589013973822594973799112355486227392758567303542823214556833345222613800353910540592254751967608302484187649843036114274920794398444166105309314806204503794055506039998830597753848752192761963033909830789474524023357677276903063599094706202352175925739405870467147908915990427264022391684495198752968312866593905660569238032385708578901590634907102921653706405321269951744411677837534150040876659334785260083335057495972081451441214595572673904518221109732927707843645158886275039296087238016088434641636876789997260193653797048596209639483781491309943488150529915958527795512274293162797115158391747112400672562901800977884484555911898502274019445024670436043719779062946346491325823754622186217760478643819580753286747106558216633892325867736279704032741701471949513569080070334533195708931101764479439267027171970759809108850940463596506088691949530506860584007572533134348421403131784938343578833558912610214946236151893424081038199173721417636121905709775748024941369705230817252463657055797723301139842848735489061071981407247467749415397295069486352457430150759936737710459837813031529618397698888230815675424756074019598429825857225749533163568135225025889911178540479061929610716215597611043236432302446320845882237085247902397098400809112449909501850292478289287266484981622112226778225635888918318132385683251296609709435560191650478766502348313712548402373429170255838320501813345110079938463338323651174355111091227128351168272842194167676406123093806181539799000694743682754576743043015379970360448859810791201047073080585670197988732274014952676682753546937095983501775050857031469490809497156741178770591264131551039014951544117528921207160942393028217181168162076512740080733006324245070360724056310263612318681987785265031057570401143766487588018392555384399362520605651960830153263265342521257566169590258301186478958976061620221356230200907908389951808227390158075572579773636017263767276777264982364853556541056272744060485318692196403393470188856250772336679347332813772719761967988311328130459698180981831758413975542648390562051670978437163847067515749079566966675254010430295639806223586446319365001941048691737496346933672337669658184582422722401669404940622101305575961239609279383187324566319128447622899241132631314003765835640707929664791046170477759869736400131509953346371538817724336287755304147769729031888349923176742413354123871841909871045606945279467879692948358921996871969324063794529271024866711428349147835616513627667426642348396128385152316888655723374764505210138412277156332315058850372833855263442033057847345830859056593556104206061818146611738574678206083622946227283562092592550749084519635141995087867210729048069428708074754315868653574154277412284640153969480832698220924897096495834868162783069913847842903541603128771060812307537207403858189339612157825788019177172327252911452194545469785486964279315156798580532297280893935170550386494805192817677922835067992405915319114549938883158528924163156127003952699535318325342427481147836659587179568246276231546883070957482486548452808587816597580792034422577155565926379663933885941645849837054919817025952906951540560560584246945098633203458305402330093023761573347573364140758373096455105757192385209820667011927932289523029147320884284829773217970202241027708791422054316839275756103252570952198371792176161550419986082720201389178954411219595833964244372751624515982717656607733847209697252058520834278117653509637053999160662545364676448601960891131573541479862404055667729701942754562464618563768317352114037132254500886457361753357462169723678496223308885291725972092193111021126376355873648000702535495252077827453101076123941321225013524771447869309446784550529704598483232858110810540954968405973345768869645298140061813462709273102652119410967315415462383671776299607338406167907994010689164854714507984723165355657646550991440665473001355019379242602634189424122275134605727262910753540930220292675131292149868141071139524383825313833285077567570077055997278396290385246028311004467192133367933162226521517940284561480950406477826092104368832827682764466994139180000369490043032296612297018299633343607469973612517119781615189984242827962252309239849738899843545886197814519917548414334306991295641535817422220589783030913513944215085973120053435369232774859594645471142224812359199468881791749048423654764185423216693493313207169369449825309936336765297865219222980200576034554503179172320322383726998091917355978918406282594653545305941610997918432983342138234446854052751411825367564360587516520268376375565612313263950134658938923065453225951220374747688838829598643400042118633860320657140651901079516348905584857129298145815503059139377098692513570540865864071536789133487090385854284521583081726158959402413329143796219786964325952145126315721636978105883294124764935542585142421745429179274410358974148904464429959073994556301728949665516056830864786958631398565785969691643093628557354132366582461267071818022435035027625603473354427977365554065662423806759701405534741126644301390355124603271721661054369662516895198793236477786219548249529035529873394168724909930957305655921578288127897984680483247884530230317524607085307931384216542838909764371639094540693042720846487722640248514637841401404799549431303106602336711235647945441399444398875845092084475755010808968045099628563350503377722655619355772160296990243750570481894901527656382802741473553887809988474192447649578394004211319328454213929693721589336209772033428561233816455042652299046136339881628691409063743514126896293365393762286254604111959108830175163999415955986861670351416188653866744738727984521260625339366623149458088226778562688688266126585366603514504359886346905410833984155138753829477865081531370886131001278244228600231721189470404876363959298041630967323099320299357625271470591013384251656423449096593688980571049960696780780488668055487578751358636462560614413650050551646918567809934005045294349807671689774295120297846335296058455386321956950422596824167436632916103628139000271986607474306396984003732083036075037922695589103598187962776472138546373509276593921394878612888665050677230877042209036050786723393385121072756221642205859851104772485496123142818289257516286478476970038411273248363224945616803423445168791140301393008217584303505503240694592749004879233376211822448071029915412618405129199720412332308094916492626008023531357510630840452706202887777125842981894215264155570388408377912414032044067311447764927600253976196886607553380280570335346463501279354966470766614869826252696345461597180241448831471032892403239183529258363060124929565470629080618244782922871482095931089611599614821693431815918725822163931019112834512447780356114672754485991802728323985771846311593013682083454410129296797183314171534514957352329020267919391909685109834043601226391744092964283388893881122253913704790764818358553257390490921101304922811747171150920611750410946596378955587374177836699242253584976552493474734987601785700779244404120286757561098661600354765584248410277320459224590116598671864510075506356438730237767329454536165440653681084684302371288797002374816675940386352133787281333180112496903739095056250036460587698994702922466941650539684134343780828688016066552912100088763657796331947091547643453888610779037357373817016526751558393907935356418750137921366304392376517355423884056648914885245710189870391240972322385205171243382457842943296183444631091218925230660825898567536675691901943884269078451036635166358291420791452531523713671395338909510067225187524075957459544798705099885512088265125990070391842038049777654390615682011985369135502025156496877096068948003558083473515253451267566984571601162762281693335648865760295738165054223615334803142808258509701531257991493262880454894723427415045905052813639917369805492336893641499825490287448584465594177570143490557143391849232177047743213034964490845429049550223959900060291721850230329503758964773493854653884352436354473782679467666416726935995139638669808928258917074640139331487748475905223347568960529402217606153041409186095777449394433397054555942309009462523326663534934204500628435927112716889574476953284104113797350597080961406559931059806276430601154825572906922193731657296107665443195577063184940313476414527586750720400334868100944812796649039489850193625473491937828590472408844502156142011450274414866568192472214093377347066000959357678576437520968514327666252958570890864601219114202142220746672870758490199309863540023383516411926438814956130929172830966480949596494722196416548706766085186132433555783137937816389666740813839617611178324957859457077905307038298982625867688516842701765501617350927945361291415932530283214156699721754668635152483586402531334059487437121424894910348918704443943272516536713130163990426494468094760708048902644124368841177713773841758296120473020370936174236037511423400289839656973572614622158253203521740901226691264958050022947278082240552125308550964067566762943186040561536391782437530126108688728155700280633357474399565554604777579811326476719780484990964046299084118947171229910539641343062633085509122309107324215812794634732420796609759489832376571656760676675140794755229681025624779675347195437942076304424081313604272645080465212145118945061602155732271912014761713872246628382315151910854644090855223477435389173936390181002785511797903670442182211304635625687336720576321722210131405820658543621450846771507391802121582053386899725407325574680200480646742183621567119616657896590715417569842251842585584136683580768851688985951108648463366248300200732703749398618524399637906566165226353393277721947342556050784771989933235305168613739220574806872199375209398609472624339391069524151988051275679624328100124776078984991218477912254869692879706480580016270569549759489978135168960641648800672362442955176838161055508973248073137752400305590506339145272003730635606226377688818887606382341063482595685077604072761533970703210153762943682007788215172985596232365870766410908004338403233914695591845580318809815822741799060813531012455904901706430233224702713764692140919405049807380949761177701785781927305518188429275528792143589728501578904372907418390460059491341484196929234750550058551021718778010868596170305736563503609047947857584908717720159866740047902592921423134656362967223598140431310957201557597147203843881686673840440264905556754914161376960770744249266534646993416243630827334790554383171706260419419324181245805499446750959153908097053977234790995823434065277266465953117136580830423083379578678934003636771820013960117426894676323487801760015546700067323011970734933637749526993982020006945358367502142805496205677149574523665917721032611114116919955956346335244181447901961976934927262035112002943400144759449131353644033316734424493983337123228467970943578965160399210766327661121820918816431785131686906309010007330277150285019376561073260021875429603741660167015323009067984321346494094661980164767638592537244938707725573374330993437420892828814413520555335203152166903963080410687755833760647500720102568953684989787731167852680785583033174764103429264426731028705018334568915030790351958745566193523212157494315173963488711158401104486141950395402355961969360516564163274059378284493815582199583804245102460317873061884348990881317154509426759742413463486664696191753574023514734674107028859905976675933764282740322621404310172675938104290537922935806884137661690911792964684057102509355514615338680991455373801194738595153809918908033294364262038697062582453718704401443430587875403720905861324122191418964107386493348690855349677886657856723040622049109514237889681435848669654809513751604979613324857557720480583687868083524191138634149973536470228945531632203015473156166274927542412205281169946393457898639493472912699660671929990940798165992381595464939550401660744747629599501618970595716063475852678917431679394392466220005595432051214001386172911234659070123474573237810245485415847533918421247694597338290406700258858680787924605095871843258910691292112961089076075706145955942215525947157753103200343592388023957957099345746302019087011955508181625850045424271006407632792224746542675769051826643811789003596966745958520598529207368261312176229981504672060224201822289112806399952903551035656718343248961225880633545115127483205023215749927537379291191449201295031372620023255508106225006188720055939422233316418024503855110027204244556227995130012935471156411820315589834017802250185313371396236122296540135005266562161735915592552275436290710596932811479778959437522908199097596297193113669454779980304960273132346841465868049475399596174389656752508229568221627821043870664492680842709564505364354662487051583441672221228005425337628138869255686903362954501497129669190584343271871597821502901078682639557474787766698590053348126376341460292780341726769111825650818189657451021388491241276788244961133633786737575447036433356555282648232073205260599237954592427176509145053472135592167572164224662059416301823935513928289421985767946627712870387127716635329109638346539409326193202267096788626755362434129519808358356742650584658581551018415609829830323485764934632546234271509255691863203242323241773609214401675865268806031186677750153962432771913663552535857202854002829269832189689851215755722119304709003327137812623061850737766036616130785837021031802336612108428625008852394657986991042880222235539793335264857192011742634669937378400564955042463729502703304946727835893801864541651034238929201501826195276254641179496637215967492472558825335513058370597974108105593951381295557775393386728259468841027212433619036225690610018374093287183946240744839199545567877205803008086107638207960557801198026105826840631748364609591102733988564451629465232027391221021952416282388994755181090550583784732089820843224588171390703523236042771091008758470787326553005175437148319721354989849494050364788179110826600916249190463526737779777735537627909054014116571913517720793739286996846862501191811696251666001337086636458639568156176556118968194141616363050545666273257214890104900139491504995288249736176500188045451175498874146279470482795681871160873595015367904317763130845941759217212382739100790105380343613577575115763250454959303706883505725865695759259100076780857268228432832234144380621444520137497431967626910378635175412854710867660456964676955843843450858110183905513372590462077811979335002636191589677875114746742516060382008272407123106687254263849603870702212500472989188210566130571093884444655749261207578436919437075448360144153854729127752320964845269752452094141979447879204397448896138481991474530829200341718709334443166117077015046043429625112554457685598702518525439519966116246104673470753307645075407575442596741937637648971614895265110927156059652437946313100947781448302056852790292955384955457370941960701406741002179799922005415042701636218483243000922142993406802786838553756080828982476950690756330858240027283692549188672204838601545463708912948767579075108444633720478621298332011806910118984026066753943508877900503557847730682010702708717968845861632588979273733956888655614872412657420819352365822351638155358060829457028078241428198678973725372073304886247728764661411410940204719973492243089108865680234984642113764614774298873910793700355521851243875997200809736569156336051130859689411198764854156510759489834876832338883354199399281320281411176803946339836301611474681901464912647692210168616654883047123876247183854009025317203626105524286534541430971860066523975459831544917375013081289501341634123598161070503654947457570162613340492528156786626628903544453109437279766063076474352691041324742313718421534897014194061062484956640171728774264145840306876561736474113365254577253138831948534511162680507974590367171773706029492321986649940476999511959477873647228037175850935955183593115515759657296830988673312548544406082573525509705746509005399699484123016063389802679102173603906126402867750688328588056090920182577835524079551987043752101271786394086776396885851025784003041152531819062778922812388890768278856324089084177698389861109170473238079144021548797317108001147964940314318056767970147125326870927152714500282903822228762942590433115592337246161426674288230741227921846316719749519688695073156787674612774928671027592060087918781045756435862907488549615031988035385691756085695772386964182851800788530715925740884631989570011442700424469267253860377543746955975429014981207958239747639500801862924484768981951357373362867437030506600631802314113921000512625086177998405494948212672005147384977821151019587633098078357740362474525860160643059200761758748401366389841744468752531168255723337904020166303132992799964971731856805784745379610753002614158365277575458427718903779036047861121736615103942422199085753185063014051026833062429308527785797933337360934776609406747331560920372169492833520423764213042372755693506628866433053383062096823888081904756361676782431233555866254217503688919960846963661780711754015221905254954107658452018525514312211734044995419704763045947077867308913760993790686240449076887298098013097226419694846346132067436681651079353442891629248539356634504873202202455731109971170586671126841717618716439843438174203638713788294861031167147012164447329688382970075327575870900775819979810339207843444690663594533775339096017141833950187503461015257198803990856044658221918706132024194281912456140942261139725002501066194029546268402909179542563097566044505456121798018603355603484838040082059524547828673631266406896518211841884700032464953426487985694655937555320491330196703463226223212948304515799137659334044695800706611258788037003290554032687493249025619179807108686243361555734823514553712693853355236488347378880251783397648969579258459745787455321227425828351794028309279936514447286748860726933636200413043028548352983579247326744772305653563755342156333762868904780185363555807533701633766898357224041701105162600892444146082352099038433153006426049943681063607144103453575347190772517438316093691185065880632960590048347295810924859962596064803631839759678296677175218317998136340359239945903820256061415149958933348167747958007392738336497446731449050935626958637301089446245639518314590809075443948995196892120011678440128538971784603742271152228332638769224417952906554188873560007012345726207312217187007235094996580954801164075392764421859083967372685469839043455498033245106392834484455324854278784505694800226843626092306021765222286067060986951795410102688635214445667085933184265268072711050896430730428312633972794293307132873910204312674793188935255276737738853170968675233256557137551424473184386851154883519221311502299119835928953684424373651114979453870781700690258230686695884781279204519999221109170513808088710868222687380448528040911394966966555024245214592183957576251841983797876834308354328816218579187100639814073618024940978968148000124243793679590727960300624280939848490485645584424351673435580583902229760155624461624491638119230482045734935494868522141173046838269018389402459292777989534038707812010768892528373422431417390748721025163805699042580674333774631365563511784522688286334507639302766072008820513224355117028763907120865370483045147451971190229675432529096163295445160373665789634327973433486763172881611705583176193834837874972067567275419784197486554427849735617716651655427188638973508829374060068727537575756952513733375905070690831791661127517543210751734775969159794545648168077849506330147304525716461511644997148143393163256828389953956503058983284503802790932720271209808693912399642901474607294627777396392366856492628953408302013648780762594651384542447879351205191853753258763617672680841491556796310668493347526761858436542970065798744759211524061351386918771970018841905858174766128074358752084725449134981851765505804084108797213613837925081222067677150295954478290045090570946552754046441990171349755235606984620055128460128241248186739910482929816242960561211444112289252479456351290659096592430178983231830284854486840836112219681781323047703580226199344000962423761586036540699868931356736459714697260486350761052979347656448812774578661761999369235024310039169868032993418912028353189394412928103888690950681528411603888810946635409408385205530725738603150487560974133156787537274581797813356963571772660497467675384997978102348694268494768025340748527324044039608245202189484610554627761056272477786216194977149695205268612924146971881127723104154844581741895437509808580553920652565030021501995235279602908938011514758006173047380662128517782149915394467978571845700350874772181878888366701371463329328170621865839522879875486221742557170889567041141836589539578750564543389753591635890586595088751927665441186197444520981390062659904499417493983306198299565868575044949084028121618343736579847400641940906327027335306356369195088366336999463480404700023495027070707366551708340532192683973718205124037832919426310360880717387582446374439379573919581430550840002254072547094769885794673762350428384020809121081429925631459506507905705890348455784908328953154166282108385843438193735453441372027710363229176773639198958666886395759670639337305603636804839486525081363779139463639701681545227334718313626750301129650066087016907129866907010967294833122262650489594858322677067434455517864645048196998390946875856590040944662929156226463944364716934043259885264554196491674486621942033121076527849567199094669313484845556552251047179502986347989538723963147423532907897884475378976616330124296856001661922030633788818825084056128516359122484082581397212932499173062354537256294445082147394251825776598805704062041339264470957474555459800591174381644648443472928704399007205335884624811343215068604449520549820644067058569529590959443746777203770906692055318363945135991564527526405931383058932207434465705481708534616462379087882631520384943978604816362973061128174381483455415629697093016603371648709570025394919057904239993220063187034418055939248831704973701776873374177475359869749900598282992126792906507993484537347700794107341418386239254356022107988160000394479026222195229307931109117884155055809925954676205768916482704757575186679387824117341314292950866364386504636410395276543573104677291760451689900614435668653564614884443197599478737056712743291250169825396933429580880751565837382812881209420487449357976325739354360525119532108431465214276883489079195075661289605374218603033430417946448487840860408064089598455811863484783228873337826205774736779227784957809671685386979255235347782228767077886871285747517337614399246238620582844721555539068719537894859512889799382934179535890770918414251600480009813193347306367410842875823272887802473548201232523710076379785203187907585324803652771945295282625818939116129687355328386753482770562148657592464622331882001612535396657751328506910254712483983151063543315799224870676196445569990173040793631958892136045790596887054909438986354397710037218382268328971489472257866701546673739551520669384525148240636682992751014268837319015577795079273692659843567336865668399937621983240862520237290544810888676812623822841124279226587887288550683873932861003799784235779613535204176911832294698959646829718089667788957632840636594881682339149034620890876265466877550017854738584777616486922466309449628461540147063203198902940288441481347976518761172872537368721411932607567017345654056796495902609266327763315593642268375849884966602097534838337820978811253446967826739639749920176550158037869598758600259042800905905454264536986784544293299030454676445492788214080432554836645184026223031228626116817491584180140015249236427660069515748683248056428332566815349330479980213052186122578235987689010928523036880229266140173347703413298017666033005435109521058688731548017274184129793179005318309788967742281172135993565474917180325960644578429905106583166247935061932386530032041543447731683813553352167740469625490091122374291184088761876714495784760076220665921314954036850909066800343731229230614853175021517314334714565467292566859314404474271870240191128110537644540327885866674841075762777914734338717876853802916159315337080252889424671002992483400980973117463030966511485726087376962465017624973597223502196131707376084163326005330286887175874435613291019891882980693395484854496334825517196905219188335996439526844063915094624565342422777218446632537317683711485460545801018749956181705131500063965724517419574700459630954431712809503719656422774072987410293060281967593988333403314604382194230602712768542720887687927314474590273938393997985784420068790835051226986699880863274413288799339667263201137457972968435292837990205971631735521004344316756030611546130554817942583797831816041751031824865188987907071904544133999065326843821788937854299633198313145656130512665344203910293967649274405830492040087811983352195944922220520313093977657769412247940439603680946546862355336911743943276791615927969426434770727301567212791509376096544670231018518684518914180722746242986201499435943536043564182548176208924018480482317819226861699526843900289449000335572807034105585524142650141249457773875757865254483584364042329957597841563637129222994661507043676815349434712233674220978938924664963528721625284346618499317761193237772559622842093194201899314252507846295522045819194204709515306682315454656268289431734229201138647311195535518262421297025076440107379333597531735676004938552764923355977809799228520633026796269182833786720292811281231399622267491770003525581825131995442541897829428831175040558913493206817310532411538293134568503965230007375915718878106473522227612297223702023053393107526493245508049537110790005539284272880661123542147753472954745789520881467929698990419585714804124919340296380636311013232125023940765592075722354416792052344693041017312020913930087925345022867552465372465196243364388769246739210363228613332827666867247911738876533663451322041541550846463604074550222217256399483135752606418534203197685493229490921927046278695207747564547886206084858918138424859458313006024444567309903792248230050223445172661516215764366768113518606945118898053794182259097099050394665636804853796502103668235755197956128164933598628231231409183569179793241157606532808350828557259523019503918267325887626359817688768881417450695222053452501025979232117410056454931867193869266840416980535277429014021503646457173116848008225580593565640650052016185367402117517151764237024143880900640404982860875011751753693971611719213700417125811929270018444776112115568618380885630734156586312283042885804177216752288314929721056035470227976201493316641392862851042912126620890541801226978313381311413345124758305993400032960365681469267505841770868864040146861394558153366015310039735284507483780623151123622601763297809177474079314036219872492441522473751059286161273680469126470038137228307819776073774605902940101853585464533596488378974696462344074367876638181174110208771762155284011056678998224632337188885982264731281460094379541001043703697282221405047368622946333933650111346580865852111552830328198444245900639079604571945500862493014249168286277711184384618261686813917943654853874759602601352453109010154081768823757458723436931395626868860357484840984509102748142578068875110812395944397598889919923345668157316885906597502364346236538842625161739651535589669155240508997326515915404751700284162307560107271539383126196139716641631465653542635517731966886248257425064479917942642221162755450997347805938160977443777452125033499276784832897045910567214229597576228266856839665934566251409333065261264919488257948070654446360032904046152976978940496280877818850619559200613642756693097422788983973491212129035847751414938807323625481875939934617997919115708737886722083380597570888194399644659067903647151111977446004997540457012466253105699245819726790193046478912482975902944575750819368917585006408144046471730346611514042557611641090489632781980239315426973316242820817177599784421804400091289313804787022118926598093682531007171477174420472014437110666588004803316069440574973706081274756097768397416118782325449278566452809673712303730253300844430193318748169475889178160813377064647910201966157461971825327569584440521605008959643720231075388940314300026381032425705549949296267621282710734668813786096750198568961617391973796914315936462060741636647822581773752392057435030746725985910184667239228060735359198954036460531565004367622815273855510473299850467843779398976890345989359830719995034293996355665696179841490435224139333743410644268540366689079675204866804512704591183925867549715163048436887343821688794868327697164830006927132158090097940440269876903802506550267255407460689033020725087598724120602116524997041785585438228749249868618750105107528559311797256713584598676305943964590630061485539336173773984040268862574603403717833360147536014881837955002291087906218976757375863343728528721134582583801906942108673491070529895304244769394469347802874255522734433236371217543435572993784264108650355703231009180258468200266923354433763823472366983954277313471165711769778686974558009934330624196094141826539653464154927183244579797715006098751071795346782037274399257252952268043703617065617295466278558874324664870745327793081491783916368074569608419829658249071659895926491303909654768221681201830569499625116826031111144287361129638931832531322370236559656124778926396993127419902945737096457828043104004430362015346202917626475701423076476411941847601411491665147741184656854236778616075558702633036139977810054560013122448089128669525557905993363910979195299876831586906934833789806202036543917031803483556718117178165908278032195464425845363239131089322331571872450533490029647457717043662181662141795499782434852120075491283357861758673998069643433512748593821294184364076559317431308496848027056565484945692251670045557630618142789042402452144447859355468702277412134678340712299497409069842102030119105831013211913086800222424931245284246334638825516725125702169326328405231762838480801304061722662775936436826808042579442031671755799357412646628512387601158768792042967308242116539444915684045061836436972476883477778178345119480434224910317061993791704246772423104062647538187993711729675904009191366263106639076509785963071104196957338128224148075835955180748206498171091045277581751894802442022510608815839849334172004927934502754595904630623662193055437178152630868215127012957168810871213948039385794072054753048991732797903712781379318523248382678595540789182399778206751927827371702224076865061423128140217713098709447193041076640292214997371863295028850248293213452490331144976991220643225671925455359458168035994634261117785376099133689870889559027895048708882524742248161495368858669879773748583607703514874444651350988564812914284032302032139313565666143963508368690093485606469473030278093234034129217317827817997847027030567362700955389444476468256770059441459918020624100769678039131230034236147372255362847784156419319856931903595680855523891532180095987866935707866173609007388123689801962989874786552334385797196599597710796308569656714445866149800447808921613843478892504678583035241985616324665343857832165691273517291425480189924120335937017461900511050930051434298711592255647597732471655328813963368269319015329568735742914474657033362105770184852668349654129023037870108482247078244618519816290219836518590580200293354624362678094307635936444140787829363391525136779976065863023978191809230137446354081318721104330547952387428926437422985649144263649326138543265485939754732887792377518324983178497789465396792742039567744672034857152659404196530315516495093718581690548855681485634598822492315707312117258634273488436007710237955735562968819336596278989460664859203377129916371121122317564712093591015705798295076687981218728551849833302701318900711337349899828963518296724097247522820347256327880444628858954982492803193049710745816604133813477717499017898078927355053907113387250087703972037109115043523239433624587897444375229278532352858682596819561889024364606888715717841448345798585176794002146150736641634647518131201386176484128471530476322667223552201057812820860816922373495607873318831926012214930927540657287655864541288166342887239208371216530211067663757212321086560986677913841109855900693028543368480333586070633450101769486916884123987741488735624166846581029068881494866333362995589821773246798141847762074784128883089934772592008011561712127755085898629257319973874656567457462435073979583460140704890343770978867389012670349914899166205811955219624259963664729814383191483189190384918609710280820807395319426906744697849047456726848767436114488990493870591368849388076296024446523462711489853329429599643782429060384841224106484591106623830829630245101449733630288651456360107150682967650495161147807069799979733111749658566174297061830606423414511746928252282383481822423699965168518667749778413818303348864665131920571464748739674380560638251800258373960370089314811790417148986712882872164766580469403854905645912643715882390449997844570820350797259548626340711647037486312595853092618175967586281804650985861096962834211486888180453304548000077578857868696805963669651619262046694460885594231610902505622105181645816311491845220329300033390632052590007627914311768087867937049381941886513933601032546848653344464605101739746414013496876854623771094150848370114885427102898502249780487230473385987130301510084141640080354346918284815788322093062680405094337745864793348385768428770123479282319820181239082305808008252982282547135107710088193412183474366159762870208016203529135427439678286261902672748765903267458437649614282352391875886625555305786340614830867963656604855108559849201676444641870742065142410495217369940703442358934835908793127125713114454028489098746676975186559046486773117543767863208459782922312845789273543820937613468198097962753394147462004929718387581097648141397573248429821339393319262845223340174014443346177264071149797297621438934977379629538172894853642538733764209707348338386245659981358349956978264483990500877522502328995103546400283040978172642237895115796989158977171596523405785038015325411920182662419310475500931985230107463301451431274908914894919383557911934709762581131356478863915431090664644613196726798285813175940777735132111980072053116568653110058683870897787811345043274491142248590007237169306678599539898902457661280603980370632384559374350378158306701916836721686637366794449341812997969466175350035196096540756446470315146507557869796842429379864086405752366696426564481912407040008878945937664590211741524077364030780133473032095372902046595931147789081921156320160643698455955271905513746947734034244273142690683835929980252465014525977026531315399732768457271258359364431338159714095583795514064253264638088568937082843248647066096227691861376252569799160219916800189870615259022705214350929437092525749337761664950327245095258929266947221638529343387063979549973414805629550658252103946826865625675438868244274620817264181448710689578492395760228647639058277412102992220343986552868744622720977895779663488833933425313467931723884123216917706898541457817207134080110853964816614375304190390590420417091389218471322613751102101392988671856990836290613237506662566393081530923355562716000054470838182464166686664385759383704332467378572809431213013339764973015065762835387468137511492493002372316086126285769567742419432895201373039143924842692561363033512105586865137076386411158727672973837496705259142837266901199754471977199791104896556115123087328167648279415303743926555915478418836646378455572075255580618546395177285841156867123146235794515817602420080129447612327203893357013952271919818268871995348016191457554659495222232173100316950357560502673126644389299016534716365567059056746613963752721147799929984286557669958029151679393448399361918472018197781605854886261228248945382748571799661985962972781856846856062793998536127068489919655815990381377811126579729962723107366175274024915186650929527458642298657901430718275198383028472833757265747732332486133951573672392777251458863526213713326365590052437344581914906155824071020458768925944373237045141715220590072934259841971128673169631228826309417540807885108158857945851352272413154251840738382409843539830525416352096302039491255501204324329165511963782502748464638620873037955623965318682808339649002514651015473235308565398435087233333248982730032146314841684788887639902755217959428880189953884063604256594525416892626464627877724016092939887750252544874402270986183625899278383512762675543723197003354211009342225989487370636579943102914328505471072250950208327514552980376417682780288969470718353402696505989749205663280851364291808785610721833181612640953802751552237554893775891759205634020803781119295031455025837317947332722029505418225463034668444020974638838118860810503207475321794903242028803345839654336624732843248074201798130178094862874691381952912201780318303097808352009636266703552367507058366929696597311977185744769285959877180429066543862192733815675944387910967858537988046527871406610834933500120990484529579765640790551753965607582113061108977666694302737079675564961443715829301903266554657528843463527960696624005909881098963502960931438461278215336692603529813803374363986783430531055050234979956701465157988486595264045119670994786604328894895959514855434938254295424501037295360637592055019096559422701403958142813076295832738373412097603290087347384831369559062455965692360528632590827990740628910074852069739979540297993739619410794239744481233226873054098918993214550930188872064720970031807711656327159901566112224722121716441508806890822616743377452443229330403028930971540311417355707361601928606991494987057387831856435184044456909669977206270884767296740062853069995877512623840423903836625041623250269829990808663126110401820923348537500548333839763603280243004429120755235565658555663543417979548434454197829738209272707458439775094630877662093929580992087503367016321132369636616947915311392632171876507311238994711704802158286321837410123504131142853268578866793078498877899404820567454473937784286258786093959374115770647096908796125321208396592459791391598845036369474215505848146255202998320024193578272021166962014272518115524330245952961276872501117528834573142885352678897138386978139810367328813077593313615647396392023176054417968319552476830927429969711017920720789423567393287416012930920117467774440763940599794725038289112344182074474897319181225362254696673165674017905662191931011627294198499254752248278741872717483425259823733504374743269042584646654912293649873276126686599633013909752768573751424640999093961182128495335252383025840645676614395702175849616340198255769413820235492012855949963491018581430034583250298990952788927924851334775728010148794577540384105759586361716246762311156208371859265842297761473971107312738497350463094580574810750704266121374149665582392551172605758461069461554603921491477887119562048136653786556204023128452510581058492558575295190721714832068389944606132686591931402287543954685913569184204128878091595328545807153823253955790977786507746333672821481098335098523993630373331066217843027775710522343739470892704950744708581483611006512633519500161512625020905512932220964100436429389225530846199999352810589483689517204356677386234561149722057171964301734399190492779594570896810444100288011625283686649608292811123774525851881641445157374525054272338187112186504214614669082086477208735539769441474596836682788821537870238814764752072616295269989998658147565994247946197592144924005280921356207788766496532333515525497811887905401930405582542089426708386941514409414215297645352768258940310284232163255418105761903961440552235618753682586889284961333424128363458754314365131496517038782563152662827997655645276161385870509462590031867983511315019092183848200254640850425028917750237161606091363474276785062949063867681678288230715647231643717205266492400094968116613226667208324469122016279931839009250424464263299996437145877220286016102610018985756171021037668874083026174448875774350064322812642120767455853918477046811704563776552780371374278766507880687710966312246245104927449722183680073489572768975556682780290528642943279243615664315523374904579751841197094623055268419884099048681722926011095330033347317010773439503679030650483181699876516282889435315655793675972762637523939552093886896221396768447657175896556382356735427583278845651447941054431844489791768090202036411428581876103854858773524134669126366414724290463401008779288696767699932283011406635987085280600258871796244787478587937395672898190569105729726536875191356830657668822122480254852072471626590624714494421189951105853522752185724666211324015191978688250156495755237552748166098893974954464007756962484008945039805135311130741079823949009870402114270712765526485409228248515252950234828852452067711948417395386060508474406289747962280469894034513379269230007210935506422159494112030475395923125990202949231492595122631339554415630130452145128223870906658102202110104401651819009273809233045920525230827000085548650683375835150553754439731294205779191828366714417053553276555697471296511202040949492934195617383899680255603524313215007039625343267002284605232710056702707966222747001100318619878057975529462657157604134601690551667333004249930176171340388252357354132993847099789619118633125722039667271044015344430275011309122640920257294478288139456747174875369693340087085583847956629296424029406192047634346053552481129498917155507910476664072019664814662472549251374656641139901006772145309565099680344639130977943282276457917867430486144290823488116236232698802557878094902039746231773385523427097252595796109883510641303685434341980752758309472938472997265982490072259130717010740075913776284373287718106412380496130669988609244350454362050986566227190364066999305922295663578008533363109314051177493068116192638027597121676412521108567749332735785367490055269589170002247454510399605360299380091068191312376374405343355106398965179227364310807787201228302452937747548942507280257874895437099701761598676280550487047681456659672077119608098278762706485089264335739242033211898781862661827423991235703319034966773129230835913022625806686681948773084172866186669257122060705166820204854928345405757578693457452140103541290842014665475595469058719304695614641497121391045457647587539782252349844865586547043942100898183539089695889563661219308705277182967365553313128150035415031731352975195487089745252277972119387217615333824094240958836504593742190161069991884092985739890296349313636909071317271125661204125968693427955433233755390481963168208787636437624435811100639439837825275067355719591590231770184176952390985210900255504216161028040757216675568093728530306992343682705405580473205749620820644846114263935534079308984597898927427283663297120526236918097175743859246962671323489856495634965388257385654968651960675733601228713105082699425855544196775393248879521398960082836197500534548669750331455003309074406581320554082468279709532230394088559917087641871391017877495172880426790490620788358874121491082282354138383006273659569490402252279619177269218290707820545330644209903552614114882591077440348290097296883001283076353664705573612600400146979379527818031526940002453086675920752104122758390603641143661988488595643725339680404405985005280630768382241604760704184949962609406709946576999528352336140473924660319751423469985894223281048666815839613915302602985363456853340916758569934795860820713056441858400692220261614664420953567814653509367720659691537599535154089293260405092166588209342477494823112338024841622054505347952307813077565034870632184562893302951820032144299441644432079632828856980809793664168311521624459357374196924632577451544734828489450524211590007590993377385301890647456889137287568239500602872847915905212354169753467637772881603034421857713578073686810763150023054539613459122177667388600667476702111622593812366909038099456431783502887040482616596277045569316061344318995137052111758217831483516598055332086244995280116663122041858407484541664896634258812092350779768275044010403715136792968411962251955706049881691413133661324841153046685420777141534756310025315566939498740130629476042141883841379477987491315277405036690375744751583031829961827160539006052698411386256808326651718151296603445962189244726368386372484111894884731382797438845922734074050357018176728270973910115934327780739466314520371237422309146155887122953284131257316402797430479839016879244671251264629761146954767158523678954664892946816173958403006917458144248165954899528177747151705417205301557381456575125391723714181354826306684820465628439129662947470300208057057413473608430669312041855290408358423326102546533010262393025892560832646685338846940705455256866866377011871465788760502092243598095468566745583645023575128893989879117495115239189094644035617917151155514497605083985942243970453134402468544000697410586099719940883556480661327760343670876874775626300570508514443639873460518696231656884899509977810288069117134879012353611481047718222756633129724120997922477748153935940730620618628296986692373174742431659240978111691112720177859028914484315753657181285754511990356484750037852581594095363754029037770237177958160181826284867805239981817038359886864821148051637237050361975748050904488112065551981894306615171575356767735300592223040100491275043436292298554809359704235687419064661612989890230407259800953971452196033472350025512142669159995467345381664271269729894277153779152351088819607658096383293129160942863279218313337049673842401469457342685885504831540050971462360506279804661253135832268156282716034193060119145089749927698354293897454732082673562333339877590823936048962287752742022965364843824605563256778350298273203073846532461255147851409831921948758728469147782971102582263825915340659669736518072909563185692099800360663070829192370685921277412192474985466619108911433192251651441823238319474500395629762315016897336132771134199154771445554737680460673510211225433041964296882302522321446424397025538221727580532255157302657163246410492854442182746350708850879317962630571985204921107509389156285592898593761006025962725000530853349855362478192448915546238545752471770450320777258084755573808637720650728636020943345944427778800173534774883463616964686428913763878232054286646041694968437360165845334493173176116463207170124693210836686958954881009312493751106563532371346011194369377944988313726469714505790176783168518085317774031487263732800266126991048016319767327640380763924285478457003482239053339573229236554392631852709241653078652007952047286400017147527220786280985537328562531764211066246169839808965617369266470038749412689584303765421186585683465480418960453908929784311398512286110632286630967300647483072926679082178776771134098444342983804635528351546055530191537555187277953072634599831880888229187704178825472414524997095871634048024901097391764442453380089822057865265671894969085847716477073769574222186634655138768832668992525448890513293742054688489515241904706637343755049396100524600635672786224013963740850630083887357105834839242973077918708579545279268535397052499726101655410153208233701293249771481948448102344797351462324286125342076168251921019783593686702675322997632344837668297304398969367977037022558998733796785808469733074179756124295726793101219355928463147175618243302179346191375410620691447402214891749301693841932857763984501265971968998176824586972120910673494765772340260942226849140197507828565250085791487434061069791166926107872195179070377616167329176882037030409712495460610198959003212957879810620837334154341116611007709359838016288910211471259932454250216388881754372779131053090508029347905304211376827624565482383994044699236828800476561783263426962258907279639878841883775909071972492692155677703524896583527326002885729508456901254845155471879895117444296702742010725219096151737257617800173109060047782635845446967098317078791893103883484205986078646352147913112297752410879798393623750154614282854990134909092495139719533969667035819285457309749374292911683084747081084728396715024529629076648732780468243324280599459638582620290411890669156518137100881389626892402808207610578160125070764022381712432774895983587567060366709869799955998214716622736608617641982180238123605339691864624102589806599290987130975345673396129455513538215766694147697967543114703688853581602414593565738047838841974748395663143730457167648662222552187569803509473642874435698838974489588700226287990081630832855961516186921144373754092278917086074724309406852799043481547631327098990702968658125536273216297954174653253868199775898528166290414977827768866322552855366108658595732467246745902644585271262230147890176703418091389617381907334760402501290026726840755271270073516851547799760127433850190755167432743579769254003895360554238133068022209803292137356271761919181735186520713287579790669937822928959383572918320558722493870819537385930465968709029714026484104615666252594232316520156219729049155486886416533534641200157727599278114166298906427925546882092580417666505991516498282336182637646520874627364062599277693283640298596799291088255863420548109134349507497404619315690008770339637943537238874881360817106106572928929872066390067060208562555583046291947510664677322367753487050535807321129256208330491092598651208152929601653592600646287942569199245697441463612257097986642397191894236253875981066543302475843681329826469019145054304634355579760676670167135945590353764282453101787072029053159164035526941670916135279052524547633035494019196350663053415598333095762228454454946324652955103847974114489044204425157408446458150992563451117187372032501828513675106357481925111291431266940955708140931738794815424852931847184246493542263907843761174341733356207296380959287298598211673032906884170812828344490055731041278832493748080220070662448398989857736183204302356516553038272662242594268177304237864658239927478555025089710559429475875458831065835473195553432312933701433576669504416661020254823860097459511410309406804531262532937229810569403154144988844418839496312826896429422208469130849466302127141054588223571308044247240797347970065239074797731125869868611153367325274417136387366356754198770785362975274910301173865510777753081106020749926770826124299930330536911481021934186303530443890340329688993630198659386603901093559044568055212630669317620261569018719220556358562182138522510327376867183374865990548977081882395639806804524960552733486214246834707176838247861539859542984383548379344062730710279335891182020230684173944856155655834487442481408004607253271376163635278742224225175956331352916071997083576128024853330247082573475776980616534451207970549165010713529224651466072193584017067591291125339268675646828492974485796774755957735097160495571697346401685559252069811886366446806761313262950381270029487474531507537100550456875734147918646254902375993546944400646238429155639805663720020764117757537680199202915941947686857613712873015979977656951281960101978008248967081780916992988947076330017672462590744941016316788737496052585498227644253244998741766009113619097387923544403383112085731058994702964976050430680346883364310992491444968518021645747029358050160294747148395304439526185777756332692914544197878648739157325573140310903315199173858200764546871745255647071866711694658709280486895883747814747760670740809201988704152147876944861423630770844796469667863719877607923169648701164203651243994012176309595643449796329573628479243536529803476247879570863648886239791914738998729384953623581175249330835362967530381744827993718436626022723895855550129812601116415268545909614352268917768651737123928774432427114623128488153745039965578378288348564256891575798286722517979468547099147302885141949479262138405572266447905618481441203452825727493896762725893038764752774698404026504603555388325854809947950781338996610387099316273668124467598801492801485935605907819169495433182056208991724722833477032071235968761314838245163313039627275668611828972331936499040779722848504071088565247058597170737638102585950191294603295299413432647901084040611248999709156359857463361789739644874316459079975030081508256710449051657709662300802622201181418398350888086715756055471350352602972611062880677300061416103500792506029171225734371993728576394302409983135929081408182012870127987475600271479035839264727068920066298117757053981253742654088719398972303683587864004283713809070551167191701860072137219195849499911629506206098702672346586369057695663829525314126733075925432861543576308140265877918976158920005092318884336021949050186356587954896792488622330314747378096333236874401131833435665465997829301107136346250591025849342984882934367976359688933746390261582116613696413027622486646683390164776866005333983457414987420746979489699352324844672150322073038776940830424007777701006743353822010862983450044829038285638979251133382941624474571579522813391118470665764641147144519328056170340775808244969359466757444933381347970312613647427533067266731670340070294589169379582145556769016167884326849923382653620900080571432150794810958971915874022642750734015401151861307781130912701664075724133084968277442857440693549796845617858869422528460872462867954054792017299336842656182969097118982508506650577945396850944768673915921176986934058405925524322430659852518260669509101070718477581052947693881250911662877258038008077139847508456941053027598071731646401452658790022272833012024143344312130704016454404797545861487887896562949356875768125654964645966426810300581347359508517993594713552074948023789244188726023556757329097663174314947234678217374035563827720940869964587662160764086404072598232136768461334596361334107357192797287421030747534402118468946027251818853888168206969725412869323510716100778972535180106198041466951909256919790180871255784374705493625258761841287758420887390074631586172572052239224242373157150945920416607267716723344696117148425252301587675222364679073469677534559051610315412809924892650007185848884086034843188773814342546401382381460669444747687319994133470641830193074806268207207495900384328223566549443245111342187940287813196764236799390026891743891779768998918355052000444131386407624423435808188998272096285624163669887088466478905813898807315904115320657716484963433604346474171264441137357653673764717143737196141606601977908685483314113640265220450573922277266149191388803695192068191055035609645885636143258488054799867257684448450842164317526143353602715422491583489992589732875406947338175644990792873192942649237937182093766602891949090262147626260948770162736988791557833101377844074797135102398082679317468058020312779069272720088836541703674896331424266665108998745311096230920939859693329184610557371697063215954987553337115034138682024193054965355504654309511637717679538483398963149948339258415785021401277138723739785260368177225438595271935992569542526847699743098366058902332947850377270917596108224021879192913041949019653148272261842694900627746031087642168758926621367010108343909296735895285653361880931671672965868033336055645137904927152598358919396161482573720468063424624063428744950918442860650634175733548444380784147525201922909094826832475932866490338393292216074513497651000569435439489943971793344455993114384100624626108229258587009838361797679061221414837636749227174691690829940051629752612856945951865227277310337845739612657983755404315697244893797374096298472795332353369955072101619452516452677211209109564138177954566447895307591467036572168928082591689002920571756714169491518072237900282131479449800935002734667273261737203711950294132269584015043554299751509425919447683311441940445980874580517503590763640926436313051403578181590761946311473747636151250451379536200446075983448007767285177548330802173491693446335159436490213196590052671134427461786465352505482452255794935383786307522503093158558178966324410797358422378366794027657076008032617100010568152890001678288068866762979580095188009564217591228338668647923839570221308420725241329535211789194690904822820728917998968837724305476662396607119497010319261251189847347079539787453902296163873065872063617530240647145678688945241354893438799392130439508651837597613903362446175525197444984771554951231098448298678809267989368927655569858412916831692289440155026613970781856113883320797641593932881781560570904669077433281684144116946495449723745614552931991463360127170610325090076897110549417524528455588515644031452482293743882660742717998173573345046739668239863616484035843082855778892244829559614440485390730667560426347385799677720102832898844852213457766890265844349827734385476385699179702965211253656014487863924050331782408258238388018351087810287055306372487795045584994372844749691004765934482318326714071600577010492537205724531696395110222497806210873529103245282883013312448921448369600121676695153822723651011389269221603075281687053023319283773927441058306835116467290999711073625175151820941531512146542329594982863174581069164344783138732942252678392456526411079557229917021916228576135942286402228989112216323429366487007637886697046437909424841702393547683911936082304038851396794910178698093505598097361299455076330741530414207013035940934747201006188116024970974921501007834712343194460927032589359220577268487558207021087804718228221330787096336430266054238662317008276036711526883959404663308636204353177499810348999686446979502646884805867552448813473663092610339843704528790949954800019962266640662730712595750580843568017579243091969769419316201931106139351058088509726551592499959083156671065870613148694158137515527139163990021446727522973260553626724619482431502582539817270010806282215802965226266193907770069420723798733007923681235443350285403867043887814525215077956596935967857474499201253491557212657839156731264663484264687628591698150088636625991067357360531137070995903897706734986174648188453730389991619264312739005889165883558787809887340034674872206233202326219164353065440274604749654310770651736759573622219621197551150222973327923127250221564805147590831591914107927886898770448826500907147854067576576327326089356565574746634636726190772338128546397105384130002936222093026770967902888652508673628890003569089453059820059015242532776558688699033043365478997031462301030366537613287219841996872114526014273894988909556920056692941932954169008139041309490921130241561522765132634503578245321005696080243529726143578869592869508945796876676008662850393112407317963521326208288342608951215547573577088881898081851810912415111425128407146642906732882203658553810614808653213677522393490907616685411068975359427311623850145306307232670719708808416191660409500037694242899292827716100189242794236920985877139858758009648876522162619665563387427701860152121240073903660692417854997625589307969048651179568668686951788157829871320939449186943740857850151275937615299867611466962251303998956893383414537849175099487464866987142233685800207275895162801662349544969576589738260851884833222303102585411513647865119543263810676086621963560878646646353740389681260782351878682944522565238590237863595018179277891228390765041109911049253483135480103105185468057125859668754570457405751161118167895738751030104796239715280417997177984788206422428233033617927928596393216494081931084364228312658561049970771340332967633968168747936271347376465339529694563189421656694723893920117810563492865972686498435467024331608610166604827742366098212766087110798609199735136496742856843963725933801686252183283551877989466086917957848962824414449319425760358385536880604728685935502686348580719206889216227470235003436064538909800804315699388111534640079414685758730117129628493335117126566106031939370707677040459658320690295065576997205508433380765587172333841622903874247909918416400311160729536581773734363847137147455459067593011665331506763660481862830589846754589205225610953306719384929396236395779425420302590663224944669154043460126558137177032486933213730527932407800361449974079502919545294668181546994977934699485590767474882190841814155524849533230963416440893168046211153913798115645569362674836054506718715893301432063511597287210887924667023874804086438039610963617836612506819218384917341036174004810881844086677605070382523683034351349865677089694821544778365724018076136806639911837882208953687473297143028771208408477285345716769337758721229001348571155791792691561801514752517838047642076781312958453938858368004008096375655968166736953556703234119002319338887430223143846007262577020867552091834333495539989443546572629188660503602950678625811693692338324141996596611004611218561031386494027010148822868475377715447677680381364588003428032596582708010925494826726435272844316974527713651816085785567800461347661576868925884358708381071666570336291244931296603497097139985842865371841552295657858235186273316907326607314713217257325106463225612411457024099249725327334965787151720370622840738315420496253814802489451592798449238163975793792447343528589452324391060403687742582718553172257797053553166035827298344204768729314862585814952266105004282326263947760212274963553950221509064593031203173951586969017509044591092733049551984533411004458694992895650625336203487206769220716511808980139226273637687820466286152020262201686508056222153808315665013641009596432049412289709132346918425379659815775717412407080283610897750960207125052738928704265807941521738498447617398392554961861525148778720473336792349716179779171034073804739754313638494885816197632674185318183946956854079877880190906963292408108700426156709291534136151721924012319721687763894180154480427921299950196487122829523972139267207958296900521218720590286895757349419917425258995350760915495236723584603418463788717809496387005577847149893036107155183918892920928009194551502585285464676946357234901576211227596375729126768590120467195176547595806300533112440155801914436235363947772826217960126889368839092896187348158651868061242087409667898943204838413968187133943918959818969236470668972927018151437389456252784378883441661080931357039562057671434811375169830303890630899277094785633318048956183679540771983057615265490971860707523950620287903718759001061485269892243257550866730089500542317577446187609295600155325903599308143610876498209786587712203504617570520508089821277306595955748009943207676628396107513490189582977343912637166792645680769708788319501720489559750642201289595035911847123751968151739501105957093196563240649141499908177922931975830000801128674683835940174576762043793636263064616379303799925224846003378417247115537164341548126902320288834549890502582472939452218437477303378723827687427499628803267665887252783920717575355838785878944728898595457786566932680159532771305097083018505722351847100450408935375816765868711766299340031798469274296908432036356458062671384801416417419781940656121208691187617756266765692127187621419070646358106814034672739395295323420985161816571125647474633901499344591141180430249895408072700399811688679328648021360950951172010205208201979644587941342296205703498597865456321883309772801123244583197345374513129094123445601528887143394983597810226533650538374902119033107079916933289336169129006328310292197202196960946288598671835588532764009022402140805717566248178695544393258676110303017810698275839204811622242999821995946963615657863900232070030465046335010659923487073182036564443544359298477762539404307372635157233031207833354519135889755857261016712468704808950971343391279433248176406553886316372187488814789238153027134154863219040287664674018930156492509566133361306107147045724483085941484911614523439994606739629393615248402722427271748421502495847304392377890695829758082108179211493813532652915732703887803691199134046691006258985855899753692869792553058436195802558847882626005924782806150202979315156108176581783334918936688364219055844763230313645363505612500324529784561312279695669009484543173271770604244872193464658467354325873817410369779184776355612640020665965302767142466524817819857464468259126057217202289847932069534473650705394596085413170129524728197352797562339495167904753989201738432728332579113273282435886013457397151254561851179784214346830222231854178825851913562063949085313391343291386307755228125188272282763783080371846698695754494573297658906308105258049900413603599711034894994634131406211224790207217160308714757407771531281629204864354169968195744764355773319173978997911413509966541884361377931462201519801552065940063838793307109126175806724449984285491329675649416412568402133887856253591976591683708262608773227679542375859085099865812209625472456158253912073357894967439899274983566054457222193271681192056553271964682339363946397295235478599368986609340005202568550376573223304932201850786916809985801660920429264148246980017684968601332002961845538807140825789820723430990596399878140750602841956358018878864004849194811262036156471215282854651487410593167974403139178926818606017923164819571896762719249006893287890127876623121337441125370824097919512037021334245009833797040866533072266284854120640364843757495481737065611021012063117396843983085975167573366181000210484373560683352740629369284863102463569016747346995509810303357076121294610836352542180362596818792557576917153184679175091256321755788418304064534095229547533187796696239983094770851966315061540878457781006106034213342440499055421851006786958643071102314313710434077563901528144080510821080463744576787478531947259277772988754307723514456795847028824021901847058069989041162391259110932857777444090945976030289685674523088956550137362274733789144009187789862456770746597697991890965386058203464626865018057486002362435652076477651034902446022194802527353418158506887959664576880256000071305333846740566249500451917758752476444347203403958433355934146994072849762965759114819678589347554189524267277669340085300541367858407525331382131837907112623301909968954321407509163294662769387824134703203325817082993994605961751018944805690328951464908167631331638842478314947120685593533263613010843920605132198050997360356269574411338649832312508824164590919004992983082474616346578439937745339832096026834471884038852842264142140192154876789361884221313321845542112572994012019321517054269689865459322569685821841217395614165179474876894203825780106232600478462504248981074915867669391529822038940003747124615687676562959757563400051057038553998234918611389865610308222658960123575970691693247577242687423234271978684633518977309097052950129347602634977230569485452417646131258419144975431914350284221193280458106752704860002324999104876979038748196304598541878722412910794603364149341482421012792346160290524325925849063169847313802914069653614741100937288163016477709100443643436769687038245583306246358175628128312241118502101744919891554414244221608986603292757591421896884454337692398345577072809780534005285584923779329759307055895965652438068753242597140166316112085637808223732650424336970810098527882275636071068116862929986166701751220036530061587509169775406420602842168134157192776546406376224190006713040909361995885517002453551806288034248160509493655480933747484696815735625783480650206116250790091151478225348070845967567917126782167433473431755559882202579950002441585764992087598814738575195722526358242446468695542874174649196348026651789438347947320801074058310036912804993109445671927337044727889701685680370607660990354833330402366462726373538942061563067323277796479894294018938112253166776388611947003244437929267150914337647922368532504822351153268481767400165210450184456272785588326798410209210294180560231841508167746500602833043699511421275774881407500682230730693782839633950230936692216730466547341771871537469944356255448635499970050897227406203972644203549267649838439636530426461761940473641832048013120728388720842496705532334427942671790560485228944592694808421363654699909005883566214749106426811108188463152026350289200098619246467311280643929425199881062671686259538178412524471488792122820511306604484040578462976587454727663730289508802044965402273301473031141020616756542097262808958712895931482982920061763059791160047481344921626948430949239814642883602059912446444988819876017735671310052346418281693465663290323186314898656153194771075525566912644906013482114092867361125330587623059610877547786105049228373541575819096382252335531888618628407916001000505227635607427803005738729666399526200291005445053851075126915171757483315443970952092391252999166778644729295316851041542921101864636420349583972863042173313002302126032752867387350920767683568605354832362677735471049230961572980676632716074973827155253127117923423757751602449839246380223899673436769295440025639247766913500315438006814508054830900986885536797402867164340565080671358822077166517237298170210752620613576310428604906892121109800721846346194881989087032117445432287137480040450103399953477905972962088502604997070779126957262036926388300143282346452949089832653935031879140868971200503014758585801484006043328769313124317720894708042738579748017613274403236890483734602780878893467003530591599391414397635538648129034664537663358274457319162302856177805422986731557404872984525002653814058071743252557477780549027269668413547746550270058326141188475535702591790854137164110009291209382214939920798992534991027898609210384928832856212435011771275687325211838206585820221915598838191308480920638281775720552813801399325937713624713037803400910221625546512915990097530311568368248304736415797651236216342437991717383965162379703741405268094493485481348718288201072527014529332775348734949456596129868290368969920376313995809775660312688692211731040816147430544843260894561025987164169585956131202759228050368683897529149405841120933896981846732521319628812004874292330880701233085911262168502403468154626342557554009276198653027692666190855431040852228538273042775107727116777546537895525657098171744769574813538122300599862227575385445841553507700398135966853752835096937429048212315691918960508288567317937703904012412378182453762618522999317226147591698033613166729823153173740311892214597773223926048589167752048533999188366675560133884988256541973433922126587960045976390102086278266680211645388745264650282923292222975675181115041265360759574415323806731618962381513915792063423967160824575014477367728114229738673145829683973199648936189987578413732506014163117529876564438285139519098940135915526990421193447027696953454281177183060027312303879794403536330428815551374906523597166308686537867373542982343054536453976248057494427432668948111967210221472009970009872387443412124641276607276179192979728354982477677482871159168051655204844100938223833358945388723968525893852063043252784917568850470840735434336855293094927712347721443140077509483373518755174871836279061324696529186677160332505633514826902075820031796599053006487156959857154677854063128099271765789768690400671068903486209333305751755520495503968642199644215789901682270908499966718208835739396223402358051717088534513076957357460156160163346683962347553268544783003432459542348164905734603540533468739506114434703057065679588287940755848709571556882922800409794614496062942973626962787246144255218858304671304199244063071645299200003102248118415370860104197587874454728684049678321868555311467610371256854463760192167889948117501338825793244119169329806182229337811853503556470708883554475031818854055626129781846709776252290200825123435467393382589191937982205019423763999044738189381742967883837794347126165398908435341425655913111692031402552895728232889442955191459386515830094919412047318353825824707384800499789310334617711679999173983684900242815914282010472692372475192366833836817208727119781963767739158854383145649155248847318603556233517216872213904060577550157359526150586497991372583209316972947664935253153998749795430185338896628838844484017375237153718320348818106869449978300814968924485200159128305293707123837072886246977033873140765148609175026317306990822551046832451278494544690052715173181416234913972655276747210102804788054879878171320927379615260320064228570905505305532812744588793738067180586408391199080049020177711665446510085394862345119066641038117890035144045126086450239533842460333361245744174114568495863037785205136382634362030346104768556920257863306723676259149815924655031755217663980477592408161226382683056240311250429513775312800886400979935967311740538406136885328002132729468646155608755295158516765728534231198559653698767075468368630615069897110615034640455440906539893808226214639880762097174980436929864128508911810581860194116362172989003132723561119116685861326426202138406188935115380820043153078716333647414737356023441298313349710468713145073509419804693554689941711502066872399098705747817624976046760140106510160654786274995105172583891015242154080659688768420149279145035892444203424343944545304381177255235556550504701741682650882972009181955788462761122779960258843707821213161009401342919310007934113190080722269655998896216820849143005400077364900752037270906694548157741014746672059155188718204355194903676669251632683867217505804328316531410506568363483597555464982266818096710388228736133023511481020516355782008416483864888511449431238845878395351125282240961201962617811039388400722674768954569309508965485401549971881916816539299832505183676610156063733691838367946508594906784101139985742120763834064190582637030510682448276419943483387897854736400993861577018747797168341700001120865746945986434019405846913834958575061468460907711228960877045655740351550656914040888632353687541506191286140430428569285836292551780850869028878656063609964016665916841301045475130665279318936355569373743847166232584883570458209371803600393618227458441904520150085831241145043932702682126874961435642472152622484357416995732205168167747323145661762879058820469996340648566139464735408630635035579139397037155443350075684569547794679734706380671294368739207227905789908265959965693948510411307642774480988823346716825283711254634050756191493677012520133215867291632125226576945219079554368662240051843165349115645280679531284607267785469221742441677140842577111984418973499721305901941073272134641152119945870425296726006120096874577437826213728886704911270757703588763402482715171660774445526746105773362418814373849011097548584817922244794631006288573923783986951690294604165437791724842334879917547925061372476256234401056317735514147236227750271325385702041245785583234673860726135976133549311014239533391269147613828004292408828257995625083290708394537498946239491343915557736657747830833827013640572017344195114596346513440731490031131589528402556917036985879774870442411687472417326122489902038557282673997045869416745983963092130181709973524517990689736000319149264985544676010008871707564234084335679338396768085945884867163254465896041967595189333048860588688157377323780627704551744460293093251996970812202558417954201222301942381645149604726519031963213470759404507784235938870085036555617864600299213234554119796818479790680882006388160833937963439391388947633261049554221533903083547830272673317643242704765277575040102104552131002985109415117443450095449393248422888471578286303155269116430725325654375068923777155065655795854490750197562507441195395531752971798998452730384290295807423594652352436257103491616727038333718722027188481931421089935480967641799492598498474172437181010268750639047921708293431980005514807167478989233583453932869103208856261583423307267864121079524397635506467935066161916230823747803037367095709434650276621022412483212712650911427107831873401455691731848333383294525559929642245720361491835442711279597154713588470449464094423918735574601573372348723163278230953224953786203839673877350833069952791561019521298420379168314870926014966562581448273759880452809149228435186059998759161168556993319369250658087501200844756997209879155393058622299289830931322598104347509975329711313413157468317001780426776257995372344019875110544329010124141686958433111082664063956532824859773620372885931671884690802675462001061903936641049383338753251238400731158757985146246432555076265375574307589059842967428559054895275824171690455155713083273784710466476327496426060223081765192138584715994876489840929709349452812545460645371870142243258207384483538643836002885948835808985033722659899563081988669052034424616045762174923954199828027841624100705655096191549541527172764463138475402560743014130467642599199764066971242138521859077993801940710541312736552976398512983691964112968229843908222857956409656786914640326912918271124649355533731115727545010065904677965565776656334358615780927417574880661747518450538716370463046643197054586356122337830541928233086152230309276294422004622860179994323481293669650008512056594614094836370221239084665931736443262083805985613436371711553557545140089404250517439053516577694851873971845713221676140210570132054424942557487597765234188570672518702453784290348801933168062677716655991555448797137563532478450755559483551992234762705230775787978680724801655494629424663590482632648634710750518889471802057553073205075371256244615556760507511284993545802661572032996961049848794910635208821276459513897977232249267002329644668403176638791372252054011236603699427425633526342782255074842862050142270027905341937801912101588714690848928129403234339750599547722375546730200403195715714510869413415701233408946437677150482290000190124457800512862211454931003928537165010087552787771480799658975686086300885541665679248347646187714880436895291492948288025147607391499006553714164010694745473587779585687837754380300654171731261593183386319453105419260246583794373420254380191890159997800846236383387313281058394023131648613443130543207292987526553742331112316727255828821336268444241288571385310006491111765817263230515479493529532815901504834608500482328709784602974003192061987189368133336247315797082862068335601593003569095301173026326679538066682366755520141218063506499766467353074916731406415020600254935137442020033775304673822958072432711050278686002728571406033732617392581536629714901143224232172546316275357593479245243791029465870182728184982571445307648456262208656590164610263577279260049506384763654415908122567328413658978698336447127509143526369862962801631829287176299579940925715518161749645494229831564459235020089735781116938090911858603260624588204949672490771419328822262539704181970345847976929973332815677109028157913045444273445164328904599776016060401703659404608915609416221906276476194924075378626411395434883886083467726343209715276776496948100660251676091520322941726237113321688240366752168298808448145412768242847833310397638231609643910277316825074643891555063982964743958739701738695397112991096979547467691527050300174806490083690679371857585797180767871403419408073670902909578844312841289459738737879324515030103987797211900732890231160138962901607429711935230921792572771723287854627108750818301150095606354304798757908318194101585741554870328813993721064607457527629744802331065167376030315995642804925859381730020580018754274940673155493439565305873643243302929223724525166856986927179647870736907718437943405383393323100741546448485653733390628870426323266384778460516551683585779713841325702324482659414425845911935203635569935698568819836034359893778964719542171029833372043762951449110144262450298428884183964573027885114009949675730392849279765234457102962356724462067226985656375083665259693743613634354381622944718887361179877365662478351191175599867085494899294026451335805581044369260501334070687470529718153831139309087938629622234447843968527177494650485024119061517475343357204365996045369344345695697227362724910009059228122332428275533939239689760718532246184727813136706673806425394221831955476960197384218659372090822157320822060183706020543129189867432933954792761646740681121991451792711125980093913468205359273063501677059988315847516560429293890390957626100575337366107640767527715198129219077133651624382282372154339513306276306555424516123857539992337307549283244588383654143813798823804952120368174573585992996092743241621718151604397281730408272676862240269959662549422838672269969658358887020106882097657155047782864538570344684109167408593521537417382024589441602845284672067325127721698503144582359879021025174653817968238890122992830294273770224233079486445236273997462586821708321896305362381754959545657561238364217823913452630911800844360960042135114937979860233039576321159664589790037290156067016593673598613970176689080687597591127625384650975238321253701523654384364043357565569398049763926126669647085275345893989570580509901083702352540605381033172952742794305265570151549831298752550834150287958062803349308367738039273163591199999729317920489224698668435562226163191506194282478928830387572142344668281866683392858777239781902801758974288757877092881110709214510007246198549623212621878999680972474287849413111515020469000502278710513473356811628592184283283128741667534522928900445800880422071935546680230785173901406514109678660982612289388810590594088648264311211298853763770727534109792770043528184006566342808705066354588957530867002907470723301339440046295318598209513060297679492802132633410082089867415048744859919438359323849277284545409011695363258285458576233745944811167069297714052948714648335538484242326263864411521852079111415343535715326342532529149508923083252086059689374322142842959108224381391519470202300256773641898943029611927417311150718251634974487275873258119621296782013457300828535094503827048813181539177282966782799788192345053051283677432141332571519826758357931021831831588494617735672536455836820394854256270412745780951396111461158846002707993320802225628721628475373918346086591888854248713606972359763700666962935017796781138108728072527021331353950903865607607547602682663835048438557590052278317518139057924552438784633332730267212618215807633978571561980724144151557437190315203943904934188457141427846825845572493350716317859936384439621286088211583579280549635950126005712114514845285202109352522496469510505218899081956292482083133348406959771195355216623283227781385534887206996727376080088752413548218471792884285070885839772457337063089644943410175945583529580201632407037638663304666936675063684874361163581273311256729345982636124830824215714162387575914357731631664464687622488161223157151147430119013823090872608442503057963267664384011349729481157981022799223820393623856509876131523971477880668651212557757237215359456609756699357989087702176446703926672318065572949002992931331016696957181975995745202841556078410166329769117532205943070344412953790858542978187318365936773991704824436845872962178491108589267182638146188127155485874511191328158357206574222340729205747602180856918737373963482694035133160626679970446936799056375788092987039005344352064026410306703622497375927497709818211854059720324681919911880304887937309553055567039485687496057821006477172824882747727104261873394206605568232936390273506829541358008552909024274050948071943573949817595448442743513943058291583547470833354335653403606303358177814266622237636185895879196922456433254264521811092110033221146358745465891374623723820272516753564220903822241948610768588710757688096098231328132120118309422462872752946469989925172678517511564602657545860255731103508114839655398182890924332463390616460333524802842190516434249787352919985846214160807453466375240736335787888057667408460674493809596715328530749473874338148832010255553760465128370621665034394658049877243691985234641811069023856169249706425650110576011236517379709946424722259767176677328868148610150409297204214430469031895458748076737434154299659264337626939363219486774842237527514179018440229628887113228037585222887709142166645161166840103053803128467539008988801871062608718064939639787769843208038967336626509785800851134232962862492537825857058076179802460305423075180980398462650868334465313094642428121394780209514529724668545880384191291942090698734904279639963736388077837989501188808463673516401935939472539152283906287689540801200814859086352791204438187719276019190173436777149809344255187603733049013086759253365580449680056301748963244761247769031788184964466088818065645189103889808647290885647858388670807925880073702843768198371213422447380925224514784822791103817859684340909595337400837186541564610885385747157448967562078013981762811170030983869506301140033803339032286459979920942087384000082414246800241472208637403877348977839319336161732130393280808309251431180537593501169060180758723032763824820904566815086291487248953587640222257437275098924679109528143887120198862131661869920708142856108745953634542305421642840153640461713101701803558718786551986590972941009688771412513589495336373661948447006553589661729072431109644541904480770625896062189609547137386767802547011930211964481429549897155030982278138705846858058339044480798823644148725788671348039986268524773138751402936322971692940916770780764843955117153290208192704792256286791640100987633374621317908554096657712717682912023141353443511537224653720391714921391872501408524386654486298534020236405877315422790708925002535219905148417558890236584140295395724480500838310897132207009861452103142422022057811766384240411602748005673581744227400287719267874294873464169203556015811640273922243234290625304014105879323161406932359931637318549322728476408225269549238081625788557136188940703251115989235827106803992301264622635333152462502731092071204396646910639736935259380846172700916194096614851073131991794996198176411088979136724688766723150810140754505565658477079526634058143533919831306288000220806639806431436811058519450525298225042424688787679723430616571672799407578200400220111972054825140466078991807513742312326399247785509674287893321735063386111429280449701834125492728866515793178302442328860278366095280124427560209974289841295169060427238492911032106375297910238900938574246115434897659807239527915827137391518665652554366782984431802541780282714429960094704082548188524940239143770529532406206603314965643036885537010576649151199718003344131431178624671156087169574329260387728997047360498774525708543469435475154027860155309769998305438660570679729193868039466754975635720409571120486522917143412962418344659153458012728485452135765650607486002087014127032578032629483604109197089207033335464428345910985967982942992114933172461128312305805808928380045942621888943751816330255824011964229479103612264637359520066144563753996970067946527707443193737870925663719606169444803103233095718113762832764382459618241849870700278142616504022253342867552372267945682234031264796729541179922448543140527662649411770296951967496377746339445407807342025484329535634387628007929068680449984518860221717082016172089960427946968402654639959097004827410081050512248037551613279833673204250660037303471547521038267824614242539313348533671301765531140719857883022895693893421100993475197866570800075630760493115735974363414183181177884962887774631762585313409736046792690521253022408705512026059010419442005866242518291114000234291301824234484387091827688345954913974045921595671287989691560836103956239515291408109984323976666048853836800695956669847449978559655395800502659593607245799066572271204717494000222322444486963408388937760315082499204433871215050357443462335120366224152301771002420126101203499027346500378634307139577808497926923991991283752164971558270365242138188122493098322581987381108587077543259592217805335817404536430479385130549638711423784114055082378986706142212223476475865891729771341321856681481685515665116630746991053981344121125270416347455829886355523477176497080576343676138408284871560482474599219701365692018453123625822944768605552323026705278895025433608487515270479690405801568743395889561720884861738909133045902819506365527165366299881006464960492653274538589776203528028264672000510565041811443773789111740918195732999322325798015857442352017855627356915858806830788301696238345936911184746730635124330715624913404731637559213677979650569953634208348423460526732230167777585223548374111586561744723192561516685159158320209097622997458659346835084736107140151337282752432148964031649311137691034449671459404267824315633230452590343853915533369596624712200304480381319276093074992831194673114306766558933317042689315773682305792540200923250752452973980070214247228030370877955430659757310471049397775086636645859424146280205968647165453733404956648181329161097723911070743699643979474913399460529486602274857635497940402262342177926565697733556650745246329160113334584434858511203252267702466564812739742685364676735430072237916408484417770112049428335226169535040577422563836853681530150518015187979911159369870259367807739778554223448958299605881291097969312734849665439172225037755652378717911005426389332356278711113371490939773005717713533488191884347642916306165305952727412137943092899229842012899418134255298530771054791011625918434118626644679985137650338986113147796237777110997375419755328093004952730975162196672760252882080931299270014272036095252354621667284992548550473219005050394677416212139694696697172452277316362271650010811863461088145770731351041568571545203113616138724032133079360882293876839622567042849234292402480691753976881346605175635726651397370415885655670378265680171487890133463022240004829351145221927985322041993218576635926029570357624636846351275632711698252499737769726443317065255320299845709443396162225942877521086633832188560354989359184797584638476963122777342431174887803241833904655022347791545387727219633836853077907062846332966966832900664661033446749023697249432378268650271117248444366911555928503412493870602494744109099711774590769362494865673742723729373676912932684045628321569087455838604852545363363021448955085820311776227627155738042580913926234841547485904663669230139410716317331816858258883683347928116888842761008244395722032729787584181829858579434222717590724886987611593294096960626154306673710534608575305249634905732753819547518595606211656048343354415857800262613426809389878761740781068977375058240260939437036474728839751631071433973272851604929194295272155475408341667542040563462491810668338500585367731753876994361151183469228134184052925954841562429397399347415300797339268486171596234945478478559156926456320139787804183161856771880283907319584892090331353172069896775668836516060291119664135145887614871914970130361381116919781011364136409797541028674451971232505949126909022239055673541496747196158435979386521457115022037449957863220923766538297490520200726856082877376953024827454543251611066676857706091045738124390834392492935237729890241314230130163091567180980755678898700918655034355023941161070563632438687787182369139667535745308778747847981866861219040894520308865648210187822522548273951039820887135337723031497838465431723624726254044300257201607921378825523218544456442858107659643265804434834041853341512119018086253440735982364470389789283875861401478892810300796117836734675857897790541386588402444697082813198033405420535403848027435079261591857090187258004188675145439808862853283953709520743105338390449101696165450423749286315610431823778041489444288153685280633672969239261654282525376846814221941020322840093618097539285853140384579874072075826411797996607389600449972831885982866968838131666311510344596675233651583631694625865423988660629944824757431105284823623040942044918032977179758788619653294107543768890905803215353862890935960327023315541236960020524405993561687182304996880421615086288262681484505063088063498042440597095230224873386878448363180429769485553145658905521337084330330114370609903814055139596864278644841646246187692337243977615646019684985502235589669906383904963823365395622843429118850381511163128813113321442566683977080170866528794930167373347220435109843827851894311985399809101826257566558278344982579644408859239975559489012090078706156698525732677265979149451710384954926601582387818904647118089611026620551259573322018918601094004979928588348659299061086231784228843589422881097159080048409962888158897547774058150113468172021299705986833614611510398956742957471937529266059072062666034021164730128218355271834502624435360926040870582924621546973121946430550652451404753029562284062338754999267452555808292948605091952924343410061170492672741659326381127143109336721140057418291061269582384790187422650205481965171121190912742763232530411739957445309010021504007079623105902195463215402061142974500125889290164211569595668110632503780203584962367262014391697266221627225302943433332069366965685492894654965176557721756717438193896199472801163566494759221800211943141230759420832363053559197622447340887813426062328859508502501439451904990190870251985059565380547201793111478299147820002350441579702630468404438391090589725182807695916639146367703032750105129565053609045870463185419471099198360173748347578372156859495604197611690814202025902568042677220561331476364400312209831605068333263551108495053408566904846126873642218557968072425095046874272281885841539450157142944125049532110750343936887522867702720381324863800105854442288417658723599038597893217908109978634925123386335007632441392974130566786790822596515395637963875849104212220766809849954279014301090796819436293983903268992107991764562079152730748812394879819034201909225313020820620568167328215109277045706389661860355115600830746463868146887100170205231130828247195629184775631412252357184090388494844399161237875439156306131515243903082289636296849803887444843271556312464933927331891456679395942623985375510009780286932174707273274423899586605552225237499614504793194057151602243298822567045351613824855629006713561906830864180761216300614467654336172204517840354905127116219815968159424656394926359611267281590528801446041478310155684082342374691245748893087250110422073194821929648291260618595441983054712640025619267362375658297920578135525592839252301789791302291571402326869897675187108799601574094488272561059794176602803421060067677377107558008309981553463909603289717345589746627628766548867337058082486292644731044775952668060029443804228208822671507659496521833325940777238021668750519102671717062548564524894571868540530626636548624593136034996979821738968890346194726770392219244852862440304323158624889903378164401010262809567192198937604963148060826659412097917485695244166234123470057656268778126372605066983501272116291665982190438595606310779173346730368850508649390691866656830548236949311581653310176843258517874701217420127171675589268413023599012699168017868525956233505351798482632677316404829634625036739699918911185930408426121180089208806673971502050426851817674748879772988177115847693133414496762597464211806249750473827584012089126824869995979622009728511952611417266263510133327077876186958368583335254698626023169306572656583681099515187721643269355589981039477315512160302289434469980202536924912038615416235342124834524904058488140917730476016435049739894841305758105564273628717009750189350727955898042462007737781358013262873063852697021427455046116773160302044044450357469075993879187345057848060340680947506633471556513926577202651481904186723961019911791769521812663827402873062492227963071249006273227987574952324234078718549680001774865467625925475911233556422035696701827368796396687712945601724498602860034913664710408677080503970921157660200295292665458848328576649228679590942960443245780192761541199356880273770601399023268771422669511577928674204986615443972798013659260379899299088265371895696944299928612265530370211649300803776941318307528399699927001180473665437598833039478225603852003974048690734087383304779033366786243172439480545025570542553993266971217805773029899707358618970974313334803065345870272638465668639257500305771303444525101826288866365627969016475480727607701804701782088814463103277541693390647111436708773844318389573736980835350382362326409427078701558152846162022807288103459261734761796076420758403091124083388103727112177622914783802999327688776719219492131478909938560127228595975016731451798146875702690480364702296976369918338476110049392397748744633062649448214843004565173436535091131049982386436914742633815060316272343404510229750057021493886745222394954445029786957553156699926660362228508471775899439763518106378225761918548066898254763313369699184958255239382829572072704671056773723963999389138251848920936716324550375072625712822458291564209374475256663435584922182941975778022565006956843435624374798206313078617416455297517538258929900221855974539698376819853938890030150646963748979277219073909067445755745425604606649073276141331285242576370343947651886760790592406683773853257910818648748747246255050448572252386158717577923127685645750755234568290672594759100883591207764975046158441348118285158698048896338441890094398788041403038669575381398595849351331355551434281808886029855814023168089799016414845624572082336077949553839869224614955781385819503486617590158595742545881113056447460374910995825858643817288350385506875001524550649412981464715475441009346246448924886110874441731232705394689064162526095523029326532771615687285705444756599269577139168936688825307896965301989624618837730561626408234105815981704085417146457691205669701059495085357518452288371302462143579016522555867713647762707678910739624081392493210120940761867602339366103782469676994709260978687054994127555677647858703187421526874838777252097946741664691469283801543461975017628454574618037706695895583119084426356704915971603647076839167630410673500291666216411335943574672692526984635284304729281101763803886509149843728456544733869077830577973758210576018332825130032927271476320098031882548076649609517050272248711428388166350152320874151435925226003080362220629505301141996220787761505737079204374057113771279117876157785200868634494624553818710070732990567613482889413210284987946794874838606696420643128167235973121015149427002887219000216044991596960623366424201798595741297204777311311050505702257883358973283595003101542090340113411584446152374061413273597733685580461823842410111826148049981727324333344714327765118700371393620404570634697334018089640831545550447554216691941797675632239960027336575837926866596361206926749727798417719979367390109151932746863324829166559937546350366369984964495821984973459854014650910812929179311875516853519780341135749444397580194327204807237361643461084278913912956886481122325548967277038837084310433412753001130775257188762492208495658833159425100028327299816120843395691678372082993891361689189911310532733059191293329626363725075189184323721820865223081955931436868203993880327960338625982628901909734256078972461044658078205743418401026590929825014681936839580186066681395512410387712711887753455042354882889474898682627792322482149947658720983558881835365548047564562083775561197029458752022019333536124614092296312991671056195118694556561663555912717506610881688429438378873726703510328517899236193799603563472524571478305230970327878497848550485220514273137119813102264458479037125280752939088899040199648803186539750343384917972629594767474334106886154804426057902904750623913265382272315541645508759596415151434168889421790401790493437259178818956846959845342832386303660195315274434813438321157650164726198239257865737552850092694494602277062766197146732462626138057432627608191503641855407725246508677766538761160903232399494583940565373051645855416983009421582371235468524608745380200667460076762373615256966169139213677280112701241073219601157125639290790899788060637514638634845065139835392818941289623098011119718995814671002396195550457777215101909715917991169767372151675053905508786616440555723340694769873486216486948410532859214212573586216483437026329105504384802489519769360953170926516668975367418793479249882957066168589832894063384553872018101421259868018548553499474397748643750453669680914037599544267501213789386248352783315353893397713188984779932163115085920155584387661845373143936628123488181955575198905174861865413257264951383606014813146248721026362374616320071130860720732709010095520657655441430480378685011086531145030217725664823497646862792038880816948087234007532268696009373428171172820062681434572888427274429348719946198091840865256439734379675208647539301738821475108754323093451786979232056959397160480405162479725351119026614112145857019091548143835636886404165582123271634979465620225756905763017113805082615840007574163413348862973255994435558442062957151222973454177305091229742011152659043917500245256015022051917241040574118977779668933606645888464987330343905486148319637257717817792153102597218160745575856350850539180592294277960283051626983183504087811180623492414824320218945269176215983234885384511197874829213284113130966370933290787649461865761219467174082821046678864272718797436295399379903721493635388221898836693458573416409769728576053513192597721422015300282189520764210832785922334605574631997192094530159748546654594958047616677720839375717534297456292549469705785901913941725726851270200050877320201765506406341037263732485330635020535256810027037578425784545529089487046174618834802145260081897099737506982612799640841564464157860240906941665808797106017537808713322881499515022715078652757525270114749956369871483010759543272551256941170701967682748681033637540253980120464413811664243987279068748930364760467646107397313351680981947787051373810168411007797170005848720536127376474444354453883490339528758938111858025894182458117071583603697334680874026522545327498574371726133550761259315802083260730062245005992065803134453635242955422360544856504862816152486284092337620553482254424363387036525857685866594385945778708380476040269622298992698121636416594122280275062133413040764221123046461804577729803732222833897292727027718036247280669717083691297953786269768280407044601864175981116571045757624928255812820183366132624920367553122819209616651057525019574095794708121810515246230327952431448624847528808142919965613334783019638042552473359907210631109968466208713063886524282410816937001141055860276997182480595027826647815336625403309288043037715884449915395807863847568791119000191160304393569701075537361197836704396563009705716424037362215074916396410887728215737528278488385209176277881963443995010795656461613967144624735752023995232612670369094036067493765850497522668340115561077262045268875034804507138412397684468479044756750054314755885664627199425084358752920240456461069602341037482654261115956116257345277300044493074816605000832638402304929260340025514474871288215589004558450261243226227949772755360950777124453005286062890742822594679923349364820680190276288100821667741247374183936526746491625917319162948464140790263306568158684191502336562049566168679845544066425442601287932959370697604432527463067031427615491945217344102288632609802865159333860939116608735989008736683233289758717079524862840761119142475289968669226833249948886564922156918402463531689143057918320069555939241594672246146710760683347342011971294595584611782737095990738065171690958040901437315188948867592562719308002872943886584643827277303077285406605843714389323331209870877310716806184135891513622615006282144976519557123145518377276389324917672490077581827933145073279849493102361921117987305417943322924113908466977497308468201615796070887717261458512888946869146765765335638933512191867682650814573214714439807555633761833940300899946539569916777722493056665549626589243933261531163021410552696739107515655321957325419865085023405158077592395514660621635466939425333880605626351890413748667851436779753317870489907223722782201668626578893392127391058066568431801798564698973921582094684519158147920852993141961442923021427626371502347544066661806708268219131814516493034850968701867314558451974203375148454950990138947464083653403003089054921015601579242469095345704609553298096352233560380851284478703168057281575020143528801545581953613979145524913863628745566415350786174306873980380429652620160392988094230532432002103530003583392982874106560186877116307466558556201457612399184079921212474337262108621941952044754587913142308786041268650545029424986093849248639739386094217618728708578419253007787096801394081226118603234477821844847243310383618680139889579250668681086241082038673585241120837239868645426769586913641897459096683629270168227437395454196683000253104997065011582463252443394242521095186738459672769068117129274624705952990260543270691120732635777775516182504260364106890002320987559307098533243613519586513022847498416731662937076006935802447791561210906449354229575553555340361771236681523502511155394968383534578821653297774867250628957221534355839389259546858101692639794152109616761970508808152913794025622179473657133980144181678070334192864190134741578818280538141619590553024863408868399850231235867366664542101890599136327898480519675694788500617044023112919557876783971174142873831900257248150088063215181624337213968808933738300825055580584519021741533020154339726472971382001091895765486642928649125716696670806537799112134471872161963736151732038999457954998685052888270789282633699574922735751780241226605864425693980403071526892428947298173937550592776414280462922339238494967590905639420090412094077630225476988709083680265877627419594034864474483115884490967815510714756534051685097132534554310154231693960423827208979242857044899585370870516660848688069241893747535291735627291028128866377402687552506533929332349613516618265412821669702013024999123206292596786374589256090700333767135251490776162085712366588302670550641993326273423186381667325214409656664336654105217832097017233739436383593785806261404076678856322390730234733932183703334720435755533266887774983221017247801140366365141733287672573697768795474003339902896442041965556476642768580150198959815501207364982655120839531672189779435961594888477724956262757054726786223875778530694663773119167654422258136475060835573923784441518178086194470730587178988703704106356944856728292555572111293137175898696105289235620238785531147715196579361087213257063171337879602337139332207966494103038747524844309183377528126754765004786927940081495769902786086792205841759488220849585662415096779816049287818086786834576179394049097525167979816039773827422185170442044349342241717588099199193204706625239731434762155127772889837833293139145755215207940934336657610857127149075203988268766554550711778321286946407800886803518831900925616910286689477767374454487025400672793938133505348030566731336374964003273369157224921230344879335840307180719591984304246476069681034406941357860103027262273513393407754610825873643473807197917305406131559873687648334805771478514835558127413504919129070576115238803320138229522718042233771630881519495264757326807502474158281955303768664127631062113802545640684944001593447633016968510040939867443667740174058766542825182791009368793808723398958920452590675850737135549004556746952215227016195846761413699262164794189112925350195044737484589257105853876767395362004687969878729849888920318631360546966040480587139786894158750612186085635036400987895840400406866409819385578300300075768964708950208220354968205951423899963740472338741995031584842897565436034023864157786771463732845631689829975004188230037826009877349391578956756133406354682670420313628734546420615755688728139973958593363640039227242907714061021685193681695129672384735458508570954230848746225667625468218469448473916758389794953055490922897490578922869791858607307067525654329623867834158557621580176402281148032402053859783337141625105246227160009242615108551247671900275531139950434595692672275876298541831576300356432684194023944395138532421723509157339880906316278506086075769833834646279346181226229722602243303868449558671036008923441420452913305186507178732565107575384169592377113998261482802360760272195922673477496500344276320423341017471089184407752971232073268649329336639975302048753198153122614157121075299499546611347387771026740852534231366165464865775248634326498635850275797810107630466138839655740588259228055946633326043309134033585762701173437380666461152686686937876768042741402470700074826938251468113291780831758362271835222811030442320880916506855551350755166288109672040917105513329610429651129286603516220787089443556166969038734475014257049145774463486202570657229852677667398705715020198249581707837800807027871316761881053790689979429396026561695511428672492605209386012100226341291637108365455587084656360471075983355535821701055402387908902995554536846050760825971091476242962225048600472817893619903195602052462574965062514055816794755075442167079989017455575814124639255713329860204124687022379565904734599353734947910630229890609570401274823885196287232906446745526850724728985912675432246461634796777756426997797397383500925974702446606332250230630113669875696844696101815138711879485123949539200136623200954360999616110290270874726932300190042466754603812026924675295063196587201616200934985531265799378778182732826035802339473526688319168484344532098433515869221682539374460121673253959230458458977007732914994311210114440883657840728803776166816234235540457410805216453162819913871800603816340652875147168699228879813561287619657512021826410550156827255361794236346589294096772105196490924066765808785603572220238619356728669884847015701333592020831952991644633016544151165721851818232723300131736769968264557885186746072087126694081534838157716576142678526439382144717783270642903847166033339237273056050378867031032438123355151321820029666952019256754508148414330605241970123228533934853731895322223126806382554603765848170076706757805904547136601279988788897768327464457795926474055129915495366789697026714651391866417089857036892889095570962107860711678199557285079235538297951509772845422566189670009862737057709542944642119510389833062215279934764600430593906356482115699398838175954753210460576926032438752870544759642112494171305555083142254889667949168917364023720611200202454705012090816110659060335208889429769987807546738362679458606327817130622383806046224436008411882398685285106976942297489990310587872375314329056177729563641730619367248372983869504513854548204576362941104959053342498099194248094149047819723178760596294087084896047745738649075371275524552633805157193684349229758261073664965885610606101158764617796790964667021541362661778402316522773992325785803249492379310985777581544211273727632069047187911256575807356091254661937844741288820549792532556043178219815187115436876736738424965858341669746724120294097164127661499975464230093117926969889569288747802956396264063826648966377169624306476736118786565052392153435300131571003692619825294483801681602618602531701040636555270173458372955844395392176960717642956491581560080275757042078647936803019877392866710640345570170038410492516365520111452921334092681851210940292934988230938904916477972255774678726181618317548473362954029867723321112248558068458128013237009807552352900308650924966226301298225589306384903279692894466378966979416176137756834300709110575557422912928116694487305300981157955422918373923018174638122753558569164411996119004433908322966443919410574789008509812856849911158616932888319195369506512186254912261238622002151668010086549153166135281406090029452805913263703855768512523824964105804084167037251131378983783521084705469916747763812496942408168782856348642749219254320372622316427100508927189359897583460919131180588792418256989430420347046157936725519289575278928581693204158955775115275595501797015355355737723283864286429350128323113335971802754228386100963398953542606614896332139654765568662434449981433889101161739459054529774407279692389115598486885796379886437825963911823441591910312502243229112444965784610378006512658786120541131411312909172477112866543024337204724654144139016603073782091721518150690170564623176870643707159507708907934264387155311724396272055834902148478233710564473409095783936489945626099941701244403104131956436512803950982273046124869173720944841494315093635856624011014697172658886295840327250297255562753193970993863158052782931207261675751828501579008722528067462783455831699677783427841378130878135016113590180938096352105714361516432307265915737997919381845532524452695149967305739369047794409211198507708682355867255838362939917323913481651818486358989875620918756378471510243420161230636568404725457461776773068385252881444415774795242428193749621539390484370431181391449957201669967642402743237101913468467349092527595711355632422931259975870580344427418298117260735026821486639001999384689741730874087748423097289339451632799959955796009922056340954227480554320774346343568010202665842585033952327534283306754129605343604035055785450476218080430539396018570187940771787505522610383163629446207167239160226608289448129266868110736800198238442884627299226857910420918674084147194796863654534505259921221649501300245126937524728372261706859807129911189553562655987239470659500181693289935305051731590126698531677376666416904373291204718794485081584161205676273305082612454866552295635224191396404260422730612510089350020882638278537191995298027859527970154961987513568433521784655346380634409606403906511387493478680079164795153158983559756917112599432866888618231254739915190894107164486519318833399193383696154139048175861824574846436719222004934712927087583838476157487511531722149784775244625819896314742387412115261947730676277232830426808732136727770080658224748708825464297850690008800331872651787071002601412874687809930747304150585948438290541547819879755078313924087140997130329830946249900278449723234272535430630280757846039062811670273788230071252749353062706642973654016975964050991974210481822387934627541249712851934528626099933271866330346589414184964518478616040235671813001897287933178934906366322901272793301655803365470881197676676257330738130399065754870131921373172032295304125502793991011247246250591007598063547246438425160899231381794290334483885115027417604970191291130201694728584412736629166141858081244839112058592751393847847027320892236200520786727348841436274516676654427513980201536914111409377428420332880139322189954099312339123976167703814949409733062741243468446674420854319466051728260956847828598611572486344730081820329575246089180384112274458428206894941389508955093965168110010272431530717900647003215597694758582731069348656928121531378326506833912243984971429382922087703479148366558595598658535866841675848685643603875311390795677424131286885686229305014554733330795065880071852050303031405364518840022127546865025155875653781800305386194814473225666275127754791572158106002147922946606300890251595720768406664206470799703864926196429947745322240471786094420482591499899781459020735189466993446250479366296624035186697194207694528072346435173229193407251988866817644780172427675862170528583461433997178253086991342207971422204979356877005925006227128778619437013342899116341149215743888428906571052926016770295703724193087411334993484606726679854264395235049366651344180089186458993420570619197172773404179469006742564846018818255828572933448546879059166396198791444029997480175462650587646121572325901422088116283455001100951607665330819572666955846307018236033081346646245412803357408025528432408559201266077557425241436645053286409520607012238995341841914409941148671247138041682542225528992641353442937555386114445195188991562574397874582850547606709722106696637257420967686491350444035568539443973048299254672567869004897919920856222791858994767978293361611341729751753437643955519130386411031339329824244801695061488279643823675064964358585966781017395842133194752475479006370542128754241882718593532078088824842517048463775403395214068132307178293320463873186817067543935723259110476367109773418218543251866056674175359290541924166948477317304506553951304203448623843882863397941528658779681497147767111173148548271483532525179891066808786906172278549856355819872037224323630522831434442490751752937218348031382300948275250455678222177728224877273441233998397506784238851950022839960263009223334566455461545806628098871660897681647679584374712588016928958609298778453857896668616715958266150078978089692740545763740632842169462800743716974833480042022382970054037882228977129389402787618297609285038705466889325468727599393163912668373316890853897753035399381438177326121872900910438042884895547345512476990070094466339740255770039730776898887562063021942781128564713502807769378365378502244320305904423264606268663600223299255725178251958282938993174878933006251312639674273286254665235696658393333422569488167831551169036464668906606327322359460108266910851875270606931652334575889837675172681431454532345815301777035957636278527729079418562807048129013330501100166002341085845213280800279179674084764764488572678064682904952728812647191104980346274218369393411247134420914230548859618692822220859346397633865381944264693099114609578145570334450477225291559491959957252484680704907002311088166570778159779744127618095926717532073085528779421897269174700280392424079010737551975283812877887142872492685906406574359074800276928365129658997560271364004218065299875279420621566881536165703869277547828818266607341865187725860324302411460574250133074331802776274297773770604844208390248867509027445235616314446455646561280566936701903626732448898326099150517211791730178935352448790232084040022722879880707107714295600908587313159221760216159119425687372983766247016316298555869237688913763315528257075186274240405899776288845479355179301421275096820656706672443002459879478792494195163799368988010331877685460981843966395270394128421714318000728334561604043141119821012094086942832381356409566358812434495835164234913576038346484642497289862577631902331866103661849758594802561057597083853013969183061652606844249312296494724814737228821096446476863103293803355005584005772985004977401583217635871816576005635369461532733761790815987359740845764718601554762243477425957841277717624356661898314714251513938713044656900700760955961461413465704501500771241211674810146253436213671425694707856626313415570333782910599714736768839624559531131491279239334237600685809162582141041010453414396265354540188438203611723691056127920442910236232960275552564390547378638452895663267516105320786339402326732196431517816340798553047411091260757902259467609351863855711031407573158436811664520367710272483524856566259743271348617457578283301365078021799103545744635637158287324718392033362043665451133527879775846769174442515168067680592800042034958570365496884485955288284268843100345840214864548178596722054135589817185435645770370805355309308258567049666012725712801927445928289369581261565093153988639253643715941376547398393724590103080902213224887427112538232388778752318520250675698699036293648295811674065586309756383841874086510219548230046385907320617441125081265253069792974690161313030733518812465478933079844839996526489666092557529834371911995542342795309233045962044634023533857658918417487809977836070657791407017221654874795532103198642168770299877776289576713843268283084562813668823013907036071799837591510348732232380519665250468952213126169655713971185264294781101580245181317736932038442603232581888760020429120918702072515506175695645266782162573075664000516588974467215139220370839870865838804944317413915828182016464108006174564952711056712738192814654371971830306276425114419618755484870951155220632230759206415280153401791449333213905870200118874635921037174623633333850796021728496591098956020726989631029622556698253408738767243849687696098692242168603045387611782258856504210078240090135617074325783743647228349885156307024553472607293396115183159799238665519771715860174371735023791144153995079371563284346661150632370783760195518698138757991193173760328622761347399998209943754843613886235444668674083228296360826382740473347918182748184751098565049231826249442406788788352334729358017504403016465457214095139710700383055319311556885867475024924792380375249998957033123951094069787153313006859955146488189916493964208870746006786580902868991892016380101457780413155910320594642023574046100887204117319429945726927595248220551526702950753489069329732028314332777955641516830883388062660978466796108986808175259732448765607051296263858537980743478342057523588471939755133071984390356026162835579200754694124924781651978600846733008599626071661648823611330228989942308635033029945589082092573898827736659414661855592882425477797840425816006424912174627477116962082101772275796627150749817343176777996280278323607588052764592488484308524608497547276685100581263861974263644456214281493608157972169087980730684532434296574596147572910786548717349539349799981489128105918829194326813533825501218544704097068029134833844592427244964483141545294174672575754639232205340975704250189574979352878934431701615977285953755614403682257291012624720457214522993998765367185654687674584548524895251882757946239842417274697837128302814441593324203791675817468474819634674839070518812923441286620083713846012984129491713179246345423492971531099567310630396638452119881794357687277328194320400986596816071777375940218208627960373434836959152044752588840503536943795091260828945865470525262951420316504651523753457502998216238958513761686582082597860294940138929172941963634998335285907547482324976380559071772268748232177286921070881315004345368652084024048399009990868602646239927396487447835652838251629972685127204143718191664333201126245457333385383450786005804207760396794771471039860443923086449414889169545988060030131536635266179806940317089107403483975385904824771638854190627852196601158393157384544624680853943950447387246608157093850988384233803147659535670533479111801971460955402675199284311282237830578565035344457070650668115516776149111841099636017455070424871995959468244620216726379242842931047955724848984111508292054497472499403889484384609952799949638515959637881095168824786327911169134779015535110768025162542198216389902128643742114195466374919333093906527617753133832140005161507095788244976217073393826406245690476993636752830810636012531072169508157455546678866531862639630227126652969820230382511468091019805217781344167348339921752252360757440228024071183476581920220488841555104575692293034551759252556834096173172477222009816606477906031563963596456372660163769609911830596211486046839134027880120058943669071076611965687841307190403525882650742583561915911459049258011294240921620718031583408384321662537566730634465015255855194184157108310782374504050033275936659803932850295055990297973424499116600820063729573311267720241357384550065782341650819267184606456014267419593967797106574358904828132736897119999088492582582993019095675458065138033108154419448469152633737017978551996782547936625156497785239582262799343882391775222071250469436523730191440703335248375003410697584529819639364796126027637346198569509156369738181628964915643939624779074249811514922610726529393936015364978537746456482536386378818318991167215507242863412656123258865442567069554441076168479246881172735885985963398626655383654823219491880751680916436374377487873090979418486792295495655226161508900349749780184737868904842959829795890565535233188651148337572924598253602526519777640592318539580743004405188280541696646742617808996455444496908360357195165249136670620596010200691998143957361972434759048627132365438012616528053514327696859864918396681474629399303047011788949862583512819812155922808817233216155429711097935023206755859964183558774553241702785061315003538031226415529481689346169640234216344742114132618245906764990574170847819944421009359346180962444901136578442111427747126303754487977645204503965417213063991303164666655323134884559194293927339676141981658178413107202710400605906492297558046450884664018119437648177813952177649918304467095111527295373799093410295028644336443878389441953400566657406955343449457253091496130038690065619521640918524482936241223072644678435909896397081367624403340095597410493633218640926982036677451706208332849882245855856349687235210454514752290631753324312644657661176424863843376270158447254833573688990848337131636253375685644166706592657148421000351546524646282867548597901704704416180594795789922547148985868262768981573791123010357903268345378977559723740973086615956015078996118880536820172968017036144698336064642167398688384841469291981032868731498527051285843861689210051477225548963226958370088186418930895668278907529097614118439548589121465516841089455900833490094323980315335909123073232246622421512677903999622643379988459272037885715661213873505384522112282540000906082035587947542320521987678244773691556517779967947804036572665944517244482260807552052561323059586609450170808256964655741770760223414374729833670898003610416686112720347978728602366170827841376249762296520821195503670898317519552095816066069664767302801122924833530604060324284897562892127638219818402518152095278684885266382361046163529943189663425001047412567677786380971367817678633972540713055133229812994369253182885130277028989495578814788184409609873485838212457120019807583591837950756545186064509909375273030581096029127353502639895580053346016802463308929050332909393019882444107552768780601059568427273069867673160146534216473556596523660563527161122345781645626672371189387586904477011238941162517844188734490658182860528948328574129258945625383636751916181227337935112503464446935149298771158143421772722291988474613180590986381848735701055287410653195275140403783033624431294632139593670478240466906749632186071751296452987926361949870898981939519026902626832074841593742369336479104322171883145104185782145554983339942544704151142949740358193244834656761100975629918946173542504160556498435416964024608536641154883701978969952076867490408843861431603176843282348703414658676164410933160902457839618336091689623138653405614507792219248231598380874176482735194547943785536953363707988651031014464553309087692400824188062005560243315056255581478469663392315952318539022563710676913996205849854224044307066773210341738387077626605953862860792510743360389461832084872372599983629535960251887402424953728659831883907692275226254646591906921639249716026677669322846019515302998385414376243413864829555758896465642626721914361919275119646622098777251073718621238899663999586651180652353986144411720584213792845958949345077173803248043860546982865169825468993439711804201863133026571922559792586402861274107062954821065816695704161194094024966038399266093659682210473108296634214807407094944920346104513376520341791382649080766549622928362040104112588861277744053695878888438909641136803728331386212442856175965623483222290791049377284191638557267377165909845640192620983175456149156578850037231003735470212846463242980587553333156621497583132025827213283953239101084175293592429071289604697178704351615672864527457053302173512568594594317842064868593327418781011436047127238119746027677569612749914516995360290752172130659789258081250614430089206814378181856582592437069319131573033258287297406535261675715770103547256492102816959088835904231094395070073538033578716967180064709546134241258995033096136625354294621871406000698988902549329227895641814590729354247118147703563926149818393639436631772487911426524373463836983024054662013913618033141965017142076857541899714695646536891420095108841258802483676415212842587589230239946389811189734078679431922400515643876698989303127221305085937940979012432888146114282178647008921800702983450244714972928420755293724962553427614972190372219544522171773684130989203487155730569956877204628879050580296902966204585956192033101682175677635207078878782873840619473173990988407378830554615719514557523102055701782922264920554774392058139118303474675549176024003609615896910249985608692748016847288720574000863730486546342707705357806663936693472622505165006473372779428871344179018715683590491268127448457998998472395476458252246221770682472266384347091102417930057623867278443330996223718400491558926855085380297865196960700603670324040398781173476701943586220201779149543067765053002264970543890655611171479817393187891678526257087867670402243723042133215767704609948508912233189167062394090536437908316580515978076857659669262300163762666620610831484376664289753270470968935641334184842453355556166230835258122774919665866858196177465390998140011749192846842704026191396446862583376585889070203024680584416030896800348738233983505066089940345283032229635309455322199880798180269410272856311197641106698628409451938803180535280832403932880980053649054581154634911620785501448395135701993626384237633185338172096755599774495349668679218340956871196539793219266817138671770459922850410167987432577477040560896143211210565789235415397613884058765252520869690056194505129152999304546988109749506752604748667983785683504905071261706718313814788294123277967946546539135184607030640233605280774012837537710149638328767942596252572515429348809432502043515007518660988880293760030853477258326884310412416963247257041399376433634823355357743378640215388057744454570143627884245308227763592862142021388677501979579629551661024058359336952488298072757183741135052973630975166843876485464825258041370477303061620420851826195352510523752404713378647126470440593008365374992616666688002421826668986344647347993220734856617192609483414535930343090909731443595232146175167890816475625906608813433991138870695161803625807275647858785609975568096319498767785780255396099204652807305521047551811099346188230434328198895139398468991710660431556297511051369097301021208815415940263723345894281149067133382691050590060021529092210845250393742204732940412440462302582989280908675923468467636451926698091124022390618475384887116095857784777915751009458202505784489653831843882071300571638548407428351776932928760955163297126066662019968671334082694679693747478599949198202275443997096281365644517592237648102748953240215725873652281831639612658009360118751576533950744364196716456732145677466056172355667683470157876243419195712381170133050013521054247812406575452226432921646461161335601226836123884995902263919240481562662565245345041164763929797499901681701807705111743478657437335875162323890601561935238847474934385636415451321134524371580349019109945073746353502590977577474705948246788699013766187852726209956312302099734557782154136971889727089154585689221185441382966072785755206374729188173277952749154025079321634845312446002414891142877169849037049479260538513410211803529287777477277364062421392512975685997503099006330184870207344451321397209686638207145891387386229638448978250133553809035426805667715531736664810075887750344132787544897097618212012889200026271675962274679957519856941812223204131990656349548331425991612209421397481218538249332069455283315283094313085643203954452844850627196114827543299082099239494097634772567136259456835818753582845905443914214192823081270336344422461269804910118095884740147230029488391735643772408359349260251071730426117005589721436562893557461000820853095561584205139169522147390547522548910263360959263924702907423538504247315407730385351675889759443330649891946503402691958455194596238199032367152814044315312533286094777169025942959026511775966228523606331931525656918792538384777815332588623779114985041119725524465338382985389320645542309996116068340448507235236858410192605821887898208585009516911263358500788742946409450931894534609063041689669161080972051080317110472363005837204366833048342783936078812437520607053630746201538987218159914512878319361341768885141652829473702373827809023598763222676290569219977300641039306559854990116442151471643521691600227151382222489877745522427968735686899956037776101461987158480333897475771214846601771259030318355905477740112831311145883032571725488442634166853660094702694778933234674298251910050177745129903559238237273111285814641316509608174249735037498745074919118513154866353460806737125715427427501370233088927199562640628833800795042719131980061311275614030164909185186022108941533750864851180997532490282910296389056394540693338543236032769055566649206805116365866410120106951917662422776394098103625943435313309656061772595040330124832680375433981088744218419477595410566058684738012364101620705775029007939100654097121655845528403924839222638311840280262821200956688157151974343919291920023788713530132130726835541980072725801739714468170815392815976305853544925938045391509944520978836948378635951405745013732822477374996163035488861533829352647356397466268697318568589237315722712120777577380165745139201391050167088078910964729957074799390220393415267963675070437486543620386661762025516780916498931519081606663154225931962695702275382741890963143111842240091415310709702661585833457690842067713730970641136108643585101122956035737161653392889271420956758620178189570131595415844731095287175901515981888316442286770017981258759404683184225394690390243699603492069913929794533316690863632663400096908688917046040857474439292844931550563004564472995514965213265922281876441960889618748509385842059911503743229796787312510913881293795591288808736764580636911589903819541872511335684647462665176826699050910077806116473714067788433016345076704073506652987517873099281539650087548939293828509482771077443202801097186017990483536020772332008713298412304718196316976595180549687486206407124393301602145766169198310450604644275414580495047176497751010798329512843272955553027772747550651503098211592266840241722629398132786116022842423217658330210828698233702494998461859839591139489680439451937350569383843439598235960251359584137532398560296651912466299101589195073514647061165802569741310759318862582051488992794779298832521319884074061381024475875784784456307466898543603820505154980322433439297643330204311845261227463201538236128017965003183766902972742450917972178692910810692550750683787589334456233073322713327904455596440668924061781971032914598982988202016570871276812133925410626034152115455904835725738691701502673763109003732721882960031890556503844868192428723506256775487309069334782035609384365701799847250473975313690422528249404542937050752835642339090668920669704573283371717451417675214584286190550497282816944795203531711982047502850814152993027978096760820466139154158496390553952210720674835484571934122996110972653751802723443472630750719227764891771397718089122533877530008613719571294345230612792207296650297682786046176722490783158193754699218061521266783384806466715275293771089942996957658783074162023536971547653806948142424568452263591452331288691832561016748713011642044032485588698702597068546074248322450347473405763872162147055446196701746309880358194000098571027675557899678294475156792571394275388618623918475909421088193194809965153699961581568511507460076084029955577277417997335584708460015225763697068686125026768854768349105354140977863386633576649841892777189048945846744568859533604212470100188015991307112902160948281155645630054887733345910716189390918828519811385586292827137492624195689549020649862683105852746211078599563600166914279513794956819169931602145059179832156787430940168896127830096081444714922426113655372736321223707123264310590217808307370997719734326832320796237222418092406005412893278069562011244576651560807565904877299083147516702025730645805928604392032770182052330422022000834024483684578269993843932257383939324797314511231041152084599198918188324816660793943199144339905446324662593115441749174219910616621313727090076351703648070230212792256439716147094694729311636704614834860880993895247896492365321942159502087904366715422308544138878837089508032204376492922233416211531402852142567004241865110635084607025788549401542892758790940608658426527053591606063118187823265512597798583954627236062661682565472821117912255566317857654131046316681128653781437833025136860673345875038805002407440733305649969449133985223645087564196681247450963830790860632875617287019813476317659620554126785063098207750992842593801640499620447895530677367117071256046960685082813663967699864247288820956459345588296850786002818971334292770295186725703419549403816769796935728735580658955502680826700467841699672757801210968234188761117755486362919922991845341951563499570977481956662691659320956846644197192960885145486020297004380733311549693330308917681321834336672841185089840675772561516739023038100797715339084569204032846554330746965521895978677342387051794716644888242284639258165671770756443086658917901775608951264269264071769652098751781580754007997539529123941311188891230900850504686141593313958501592720811387235339208687535687758035973649364336137251007052392439906205740772858895565209625639443518621128774109350449786756250347548779731181928771822347436968179510427993505437929360045613345255560560097673230118338198910466950617462728167906015590916971163632589484011124514055842233710907012483874928306521317633200221216892084170711809729537226907465671723055524193922303221861298248567795198762574114525096124929613865172124767715503197470972544173667818090966156813278927649610860974080175865805730247150932678438374802022469047502024731388502376891989983567039667263096907847684159222472369186701847541846248188924915925418069854334858440656091052058735080610719465769259028242842689626507770586294655452828969885081441600417943532149150248316655830204154699831920342983053070349323510533247554626379906877824600412442127339247691563922002430182410731041360169409580295501173668474664761371801015936662805723277047724889607975122481886130412783192262483973737777621848983739213990327428567418940005798371543599196209269852331084204779932212329867442076036471946108131053426802244312481773034190172340023629033420837429488832703485037226573040880816116653197065225424777130199126933636728309066767610696597429208978393672545974173649742786533428805825086870348965890675518302349249626961767677227555304564951541428774844486349901615925855822111252972216633548530878140240458401140003782636973361025501191342975069698157510503981858892929519767323623442872653919145036759061811778687538131207675688763292341253019691930997266648867353457034339592465652300170010881916065146917203783390611944180109213953175764422762706589168978528985869449128169555243738567909105950557830007977060879732851917954324964089198380167210527942461752740844287489683057276503445977565756190657148106525204438115660186060314329331736316641095263577146349923632221138677593193298013387208962557199564623979917969349389291118189809713024117003586826218706320365653637310822173198688520349589619517610606585895027372048535984906003361947433591077604083296914637754822469613002994344357890710682428041973934641880697509157605677767590328065964251452625630911451748232716898564138142807433135869868397834160707274119781881380065543439383086842215651122870003604827547328039287107627416401806555881014638170367151488396757866107948357339921487554436992890508716565952392591851299950433350064768795090259432999782965524090874367438447424944046603792869133753845214735280569536838697138993547215144435571256077432361710480493179224175298178529858222835882423073803456044055988739012892334874978717514843674720147018166321648208651828100522159710159401329367595181522840953766994987458678919740696009312603131938700536631831906058987520057750046702727843401800335149649359570310434504031013676791425785234773015437819138761599622980634317088121613084821329450158375064957724090556810386808252321867275411196799057507125844973633456339215769752038116124602022992877494780986381866996187463264234107822659624279941376240279483137136639098151784130487778549289093905094560545826788906115295309474068990201835609726004160272382527943464073114473093649134998548390499614339383639291360064488072774711942346763257883831160116092559997262481466861507755081015812178799021441968235787118408185152366172986312729971655734054533807724315623211848734365411660359695877737824292914068874120642925387366386645693285248833302372141277773929446571027671132879711048660702471070515531335096360288255891212425606086403482781106903156774425349035431808019541051977116125413019414418458123994214279360269525765117862645468910359947015574018510125512308698188031382433646219881533722922865534811097111203561661234336227763185114545507221109862053395272998679548988362689868009720509662999795990519981999242266438204471895049777557055189978209022079807080656926962488320627679371288611253457757321078172738848389986206652084954944952030263350601881191287997301668132670519143057479272376436715772106056177443117765050311529282538660771540648191390830175860815688193787954517451714168911688985472923963066589388842523311009614372564530783518415393645874541620386227096793295482943111260360839921801120499861813784932618945469280527382474168266926739936361212695213852529489819704464269444556477533587230230674194515242469558348675072572052203867011801493945568083458654876577183523908017434560834456166388732085097111277731988341494209173315527902596282351771317857370946526497761344441678739646238676948242411119946004646572764033804462469176378255149569969823702738341183629866294774157392425699886858854724975966227443726285137906229605195090960541290466893426655524016459011740308558878263575288184501340829419703451233812857519385387658516400044510994766047649656475963158537183943514285250574768488184227213518117282085483932026587434673714069465067337083194086870327032642365070935785027581507983066797007272476943264043247109194391574422517854499425047699445975173116532288616953749442237905250655271432777690221345656358389802844433066284630692824975838346597893479025768142802369450518147777501834103260005332784736162739636993638852249269763127919372100548485723431931585684300877163225849032515914417805664476460195858852531092556346119431326183140192890786120076708655287516995974508115352759740551461473344300825288005969389309528117136769086065919782388517918111956878239610663919645336695119166163091260287480442170122495549313105508706405543769577006921080355996189443088173738618535921828109642159125179664769084183167960079934432727602776630351113452075601654744437126119598476995359956193309516529464501561006281271428726447532059745000251653611454394349272739202505337695058721487416514496814594478966042357910331987310644042251895821570423254727152996381932312990461725087609039576199910730103714310030789951938758372713779597044332732542829886203922132702081202560661854205368087458982061901450279364110215481101237458194353969116399268865910344734350750051722660065965528179277650068561666531607813548064578606183441484845113500840123887377399933661566732394784868883715069442885814000517671891034328052159688843579187203685238349201227351486050543343038620051836971690769389756037235042999857593554630618477506830088587508583153983670761685853836070283087259438115700805053442007414578326795758943053788661805625177048457595982648865823427015638108129248356665851303296202755773999329307067194046308227546325539774583595681435478865665049949203364707035895530414112356232566331301661353351948279639148968357260392249463065366384627615506625296212869726996480635130516773504357554410852178683281014983828388051117232546217975823463337342829375380035904733307785340362675424312481221540454292357227794061763035403910211398080373571820148456988710186321525324198996776799642661153650727245517319678373962826285965936840375565967050179036857686213449147418850539495156109888347289287341980258778227229269771067348911511180307499053211830706903773963907960967044859665576660188818140734911644953383125952495773224006720274998392393999540834463767252608626569787344703483484615430153458770696423848045331599444502516419310633873586666780152887581589158977350264677061211143122246460602966479725117055137762329728242831521641572875109481065342081824044835222419090103456898349084790323582518336593661812623813691800723183340289850345895570936896635303297330129947666637781033119592543995676600780908592709606579580049172214593922386439010551530941858555547815219192398075258825358610116800615679369118300240320229360002517523551350955423285143752085420279742022377132352619316761802663356313540294137651153523986622905484238216871233396615852361475263784477532753936308690251123916752383262528677733263992665294539364635494626145669509209875158992529179353913021470948639003081364799473248931407256980857867230599467429720755783223709185634436973019441274717666621129329800102996802339492909213699062319110550102050823601528654243884067155570086041893854310165544756221101841135489790436972614974840511614828179616372156507997689665553486374036217680551154643765111361189663348370683377653221212234910856430355444791369473333065946336435103310194097935248912928234105472161020725299740646354663710828962589690967626027750163875374615683472122135629771838574679877448942763195629921575677153241428287901364718846646405085723525963926626871977332481819628508647233678810481949677919364566602122455315082452186920260360118252213333989952555883040014664051968218888082833587810146436227350758780801979010290149967058661629858431986658072154451340810834814783386578864194421313304325758262169017186120000419706365793382073818794484492769375558557659661657101489003051155850927803049886894923986978083655173603438968874577615806067940415921616366615907069691587211475887539982393918042062375075047228493219364146846558101174007503697313694194828968181232759706906492749826714228998954228780308841663959325929034872243887990782830189018181332129606375257449830209689413375720164230992736396938401243341580854229111316665596862975320544114179244718821553062541250706894953021123265926167918447701193607704104955193741754406121913337709593494608370780854958606769054038674889803263407918886699934540465326361508809495810658959162656278307511521133230101012493614203253747039917750359560519931487510727929456799681120420320237077465568968722583034563654128703239575332936833960149699946698458912849604078625175788187740786920615849716574491638626146097890696636819122665700315640235411118790579883626596964172740123009652089601526832495873628641741877841694756634149827005375009151670054703246756502260115773238047837662992632827573186728902284075172421820149463990703628932233890162901896529724164123601387924141806577983150478103252136881360815961349155956838731047220703520212855700557487224371761064161777557029566130668856666625198550792500776088544609629013937436007443495504848060739181880436038930442317157852930296261821905534164011420691411978859309663891100751755872640922767376007434801895774765468034517260701386168809526082612684659921511597611316712806604677071468191927394762389589576132117979818494706746419229733796185594575838415912283773109781601866406919463026090854770439717797760237874991659073031580577599366970429589642988537465858728334276043311750164889441450604185750166746317908050485161537910041968938209754269578111552690172974019624339474612625529233955805803371365891154941990015287711969501813903394780936329910837232108542198300428670723144017319501092587819423198378137132958676420506505842005129426254191511443254799119278024435302613749578844301999796223159541024578576566612784075803993800172019111915984131741273856288744490183241179848725431740035842823442250820924886078658383712504568639580184764915677902805929965312511743495238974330803046832752324745124583617174478216353305027179749767563999619572116112345610672380194781229639794081002015748011494232941976702348092805611568466772532873076577381817497700069147952506856869360897411326030235803901491605522244859680459808004999692449692196509144096590440505413378195305884886210147309379674946573240173008309682202280446074180966977555319311404743901085184603592294851385631828291288426705514492326183808743018479358114572314811436372309800513173106067356351333206436544707487857364081928329906466576941896555235056307120394704284643753946119670589972220976995716157204021312830058757135348273521114586091770837108617333485908400967112236647205286895441035075921534389652068120161077686090743360308613825188775853233028637641335567710289642534608562774734644464328749395894378242854723889385894501905845182509763251414611128677710215165768024710950174429456991816498365037159147706771051267824784731987206162200207384323492599067293482980086102092533874465979662423760946910744601691147769410014528934314811796354001584627626537176782141454994184899556066735620480626599504765462380910144639133174062151165111124848589299770773076398986107614280749976995168059693010009187779381833040830798754927770808560649987480258051308357589804855375020858504873528069242060845372897083888702981578769902467075415682200724585952776277634819384388863149651894508970119236543948077684735316160980937988917543489695124285401903650573281671680529524259765287116589554058097028124604385388070907046726650351236282013820477505695141665694129230067804051295350879233306202823209354890023802669621227998512331285363765725187845422827278327022646111032237782897803394267069513636325427538196180993646224603444737058061982445131650133520789050841347426886859188571971526188071199029169493225298767546215882077391065145337986000875799244386600168001000532070883423544393977208970889941078169700909736173782520868367049075755623448184772043946453713173324210877433460667263449167773521765366810976393398779057587310751851596671605813405875457705237203184697281584945822444340812715874613408305614826291317010797010605229246906771287216516210046496031472390303325592955420908843185717784819104498167337592104918125351115520407375032719953003288200846164331462308059496605446821728763346929645029576267619499776153483456536074062273089474059263990913949209576546911422331866422106959932681989904420891538719600985896720192326110420195391871827595023692442711038349553792495023453529498928507801554812751153287867880791274578429567945042115389954529663760823889947053317013255439901525915197462940838844975922532876280775569910704537028638333469630169965019807824293378756070984064920954241932653009404287444616441438906093094664800518086873414032961481586186913687022861321652616354752726666318806500915628985507901473410112543560454981873152946886331236987195701932514340222970084659469858395453605650231998200412355552972802086189052376108260616223385840300125259134480420275596386733869072100012840377321786734999404425810315122080709957319774767884607395305250929370953889536124253964992020590933690816788958268639437100393795400388337430541316398095375588212046012033390300011685253936680128698544910146438608316033230828173760658246712270880766007881054518520036491233311528141065689356055397571773693394159861665040248443260984804881734625295136664806420717419667798941639873792220616988500380749308038042204971204462471070648310540428297328884502099127739263639942226283370485193316547281373420314565933124446050790004454718759387124733888433975028193205013125806497755492938697805754167661700482405897645235548840354000999043807808367393021354060122613297252805864175476896466611069941842240165299257595484436625539379150415712506952068219919902260367053842520844477533460721707796010045049602210529984765377881300551393602674637265923511940412476549793811289858631471965503710806298286827593873312304185227485051839359705421854349367493634420262688515656884621617139281532900854579749674209282806309305432927365058668853804353785880748549784856253594688577898017101454324131666856160343706436230934861708303932071337966182449217473010356873183265757497746602192009376885239536653970688656349196864833099377480634505933263305336117268906763106898146002884926317632977152888332149603768024176951395959637974160894170993909384943364609773646463441345852137948177461882172463239480552761219133314435872869927910574314754461230269405260048778753248179634236087964928026549998654167324450730259049275305268158819859103330529546325991250912027767155354594981476250318723865811894868291797940243522000543690316218617783320231998107900024485521669026511724573376379028243120675448006449992099085235596702449476873156907381599215383460150344279031643787312210857992896648486649199363715396614789807257476653592146989416103271607098514464840381004548293285783645944874250590818157318633371203394741801209546025121851036947502037983079120753796630432939941189199362288857722743728121381947700633256653947078570503932202153614974813287486256291874892907390226745521090498497631821364315861115577203316649072052192605530943601016776435557981649275056614996073139324399291600683534207131125668870499186811605079780941639865751635323076721244756777887306303378247437306793975665281770429203019797135590063429129238986035583046713557535489796113827981363466291537988240769128365416177896302164607189922211639133279861415477796153202951360546072770122235214890107023418343777777360261491271093036445664102757312411663885905603297715601396778078780269648006861707323242563381731921190496346803367565453772292551813708267636567276389726609772030837694257769286563843526004835102869217920186386818679892092467691514546658491242994629208105994137168544129073167147936939593276384738915829294939946778784066914015968804499515116292394513756262020481215282722804774253805864187367990733170082908903807391257609585044778538962058046869469717584855659486022140289365407945749339221246402931047261608188456384030113754528309251674583143095744375117284766103510666255465225856542767172561171759182300039407772218594264742335538084971535465348195876217041934529397721581185019085442242673507106512352203329989227824020114051533886814647862320059442309577142939658839042369332937385017505064051224311883391883481467217567148578828827818615453391570403721106280346773308413422764992249723980763970592905510889092067944251844088270994397852432014064141766353186319740349563347395951644790645952424432481208660066952699270473060976229710643964350212417518185930461568529354058345282247845736817998186605322254333201000547804115095251154797810192764007097935912730163350441177172498940168302154058297934437101357082185057697554481313967922642717256640308161705385709062132267219696279085059787451792285560575345748077729473075921838341048429695512893787539335723023515285437453155773352824323183902154003550364932439001874443028526342670341310225469523256605409871563927918673839746419120417316352445551940567112272456579078996738200310455353878733639421829328557918756914018606036855798672535416314312201372354261686652102145805851692036606495694945256676966226342215900833766860706090708404077460605783839494033359268194148488199745926860517450485698561887736074418419425358462216199952568772531118829086051751794488637055418542546303669365476120336626469335657328009944163834251783513160216512256952629257466505917460117512704120940468135631418089178671393076340311366093294461542615967077521547151737657589876337538994110641751901064010892821547959518784066692513347795253225083922439945728285302598018529028721854158539291063412493505641257797062485376726000263210051489695385395340224122986812924214936833043484459873442131747678299317527614457465902253245317621067281369809916419199225035980201673459345324129817699123035477606655540396898477853814062904003480888001871505066768850547930263931089680448250222351599999562546280379931493965708218441777737488229010495897590716824678794024379409856511650169667124971417750041911614659294014601832258830629070542860789061020048597245280852610198394128884683567055741296324681261928559401336104984807168534631359308802995283676056834000451060463740571606586020656765451303443313534096282206750589453379299979433541565371978334176533454066239733705398518067922393790185638031430612172553018805783080690924238508328747414790744827736154295481051859130940633019892951457953820150698110095775569671516056675836555460929362954433769201952512761753146113503410536419769895019376524584920561203798724340140142515431665403516697032302658739438404496436009950677842354415395162173555077429744940076329011487414398965045463731783705677218310255031076069220979987449102138877818792377605113108473897011732076299584455551228125448137281814005804550315076290128095911697355296490525208637504254849415119092409029553921114341930518500411369941629272630772315733999957865222450722127376395644974325975287688076354433901598608835179164516465775149711488988622276072613631309713321906459085181389400938567050294312542188521972318809993043492050482403059243885490086454413199489173108866263358472162944492281174456369470302995192653150523738197491808185691635422920443027405522582992594073404914961570336020447000940958099127911386392422040086016128849645939644278795725536286030446800282247450340467328938076777448420826023693516690907514278538284708433054730687733228143653793715384370928149739040185479871150761224492649907056976535250259203391138749814723243952928067217502001375526773760357758318316722366241212687072348265309904598549089854962912940955565835896017115362480699085430825634770213216849147599904447163418484166454617219670493796406227361739973651100701201264259208577470802443019009176920157274778416850862000235244836948626869093606955381680019646399132049265181610516435551516626693734998608449486812950930111552167655040860092526484786014274887790494924370568177922112362595987536611502856192833055061291523343408693482252657800797255859096101585756618384575470529500885297130081542763884467925888091789668042422112335137057900766599609921671234907587765908549689710215177161820156626950332308554531231720942781411565455060167723182736748295483607113801283355574638577065359704867503427485708310384691067353632846352512977867591302889241849329612153093407251107774359544112841835768522990697168244951829483336718172846631414256190210637800059808878214126655638158139106793120846400751543924278172783827501635258196023794983671400604545865312500448700566870626850319595896634317722734597787414674816343584333211662410943501072429113482419347065428951205855487778668841703873474418308327571206750563252111402462074977790839761107654729933844268765639016535082814370219147288141573850212443293636079445579281593711826695980701797704268411071424189057535903207437262477070177852081465080983942677355899201264213568851094042395842861150961626400462504038272525798572817249053205148046442219285258638573472340165350032807701609343781779219154573094576888231964109072943989517397598925907045970927790160989684588048358932658740050396962257741103363737873760142358052957242405601822484684212006944126607352166999869662003560885430902151890927650628028116282433582554523083517650981383969296257455569428976712600043837853373949698425656077157223565189086590994433022391229943580406528870202912195586772571387994045395751149968690590860905151352235480288937815145569321093719684162976226006591898079351976983492127981908563215292106833209419147488484150507993409818945001823039586082533580805322646338988083131885657749544503965173182243434608325262493838590205110159687319511775897961619968602270867634900413395509526294529332208448036232901449489075893842740527568391120600564968039881390830892277967606880743873419624120025061274199078846779441795469469168020681208094528854572716649244730058079863170560342732616443048232120680972273260044026879862620018554999003846345431711250990073690356229456011220244789694761097347586425872218825233824331691026907187994880199483121690489323353804771183163781948988172514797203291985432705913418260274371249040416477845768772214424794593565689046298917035805213322199765698585280668858549887760884392838974983470334548686089667911853065029325206409659871718197666304777186892628677035746743193704280946625003956328792223928683660292537385568597689994091116167172992234583907951033439676163933704199307011017094987414195262116580539371907205147479563850847036556943818933512940536492134885287054075007816464667014880277332906692740175350214802392386060977435284829984001742456912064741023926798490109834266351429331387984209284760633389746706099246619055381049751481656188556626405304647775793509512834656365071940959377574729277837599986675814638930204584428162960657442648054128873964291034827943161911281290217172135615730103176420756845330199052993268548510573578260013481455525948555802217921106743044027608907975775933677704266978958753522588286182677716385473655863975462422445292097307841944867129319490001376709221815053535679219460884523851505995349044475445486392200670903344465607462572435440660282766664658555690163701865636520067027659272411495726416620896250933703159392464609118050316886487866840718733726937689690708778416607975089466160624528978937530893580354127143658545394126635915448133732986420666569151575023093068085670723159964668554168618618368816110132872843762175495292517939352127161655438761966068433588718991332698628930481365139380756349541436849235180270024423152421628362471470059284043480644291613607517114839255608841507580571489534711062891657190835750037800225193141226022069448785058381790872760746784171998239802167622511808259909610048560448565322396810005294473274695524609837599130458762628135962895692638986826594026185044667762999985703219851999353803641889561215691362424563637804470443957662749749495420377895405075006990373860560831502991505585629941191333893472033714774480275628777929273640752026365318704829445031177041968197930071605823804625324186893953585919728108307130331095469830469593336962363106827287251697991452900852824106455297554090875779000256450279789339820536629987322474642471384568879206344366346173876110254511958713549115253907892832198952797010027758220528397351880119046603302909788747279827120818778795409646544162860609102631463635565542242880936522470935267697640207243636993243927324728736816100516017831245410887865185048052756633032288609055268623327518986557164083172002268422412694004620207118464211221307617495025459596926542062941282816569194924951234001458215261011459916836136512869978427352540228941190464810036769404180613958020871749476774464766486875104162732118688381514758359478735360260954228124562349225435596357932932524322466313030471587007876706780596848472834494717006444609585488406149688889839221562977751448692235548393438938732480031799751765330915863867932224725096569742353787225023562412055113904074493023535528964741125812065790702129596232516438579324676729966710050524615924089586206121899403069723556400961082506614588452161354251006067604042723814019322564610885617095481435655281389852832039824016385910472778373017261343995629797314141599240033995478395457818757096511534322361622106060413818532075017852780182848413165476563662001236619488708799143078360813200140857454166606456431721828901904567428002490307274965646499443131594069353930649698142547228033326365638709759860876412541298815812578386733527402456448685944652088173727093815565206657988244054529438196622530207962513464466334634195629411301177361053292407206222862837424759195096396739660309586697312124472569489136915805276571243500648484598685352851354737288055494319540559816038891577790732328541832856867650662872678236758755021324481709716592429314479400454283922908719242748717111203236230800278651024460858505308910029682130420681308181000884556869599142135180995916402345252862135703514395603527215889400658705390623795059240341761832854911853267677257795193023150403335611540607536693902161959693481552058299504852175041155668487533249974437484707979656948026165043368197968560906782182190480134475423215605100637719292682913103163690349668112465116258912413816045285451645333115563944175697915508828259363499658205297016477422119466642896376035117288176645481284163555454806088467781015511286477077094900580044113916578194539470731699414473777194722989666321768674584328136986750077339364575565538043441662394404347095856388408425061813236732878896077969490999599877378508060417297905475141551453384548498113598999275161434435735749511059736874599411935544674507018414017957585526674737777646462137895344772730660573033533593698277898683048988298171749516497591151355527377258990081068007164145823172231575189130848158486505444266653369983576236821959464809885782138355778952699520124977225066101988250317459273577472394715885077598699876463721490616352674428987207436113059962932326785399189262113579570630324502622986574357348598795813886104219399314886175437699319575792825418589896960773294207308422029767160980527222475861994809403826796110430488010118942921330253217506540070219057600967072618055602534790368598007622513961008987382340668098195178555660793127310752310381788513776385088476188144723028301420135849813125748292935406416352853751845787867020824691626212405167095238437359639694977870842581346497731317441150524416196946295207194443965588108321993489899302848090617269108485689662748720652289840603404356832297062058078922395887680509191124282164405662668068454572572888629202376132652658005653287949769815463703274856785008580651267325294865910198430866516426042575726396490617306830344289428127197117286944677558766748114710038059211168976948045284255720971161763743846792938184123009276704476558687785200662493495828831187366216351278467566268226325592856332346888046724216909940390585025844698003228637736265259595822772279535886810125226944629471867983167563921035184694216601813548338933260971393524993240533210862436379027637808672502123011000685641357011181281540823262628131111420320921913228688721622617089696796079257282191042956328019963844594944130572417790580234440752031375187911549180116063046919419409740629145894728728840160493843418476969935971670360051628093069448690317837640678499717124824755771949107957477360939834349762601706684701614278628749153103998010585683327989846594614040281971930397058443819706134454318835276079402741539396351047645891146504565283759458739196610818587963638424021812882122627699382511695982014361655915237254618929511880987740242738203118498644909480029900921964664861610005534431854827977361919255022632532383746300654299500422765640011206636943230757679024742372836870439211269807722168775386564637748018843607549074214371033094679617350241153780445436601169651695745086099855903842080265756184304866223010520252396620152668594667310284718581565327732250301258726992583905942475836631874028382197153672634896105256145202384369582110087168982216530061006797651693192193195387671730513508099597448962980777674617551744346331628676045659123007440483154276280358863281755878137600679859876425956831943012037731043622182027833706002896387192191257375166489923318168084783705238593777877003553926057124364639005728197568195104078790433576174983483262507675880558464774924663018830527512731786359933456417187274458460684082739381686477101009112045577829780825036720193513851332354479264841316453632443786490019537963135013431439155594501576409948826755165026312339070655748549310894552380562970511803772125642795203626751536388304771169165700619429929828998738685602246583411208849184326896887384200376920162500450880802120029547722508309255089247290910324675202575467317551135621519402465236310415908540146808607020310928136477432676937012554120875949458749912473721241433790954854336678188639220920056355252308328506632772394506575445462725999943650073120367282374684963102841803516783739532062137525276469255301403517216092647691175392162078736896054226165584990323360441900904465756414353972101558579733388688731516836307100580477943480905713655751116716589354138132111617816142403423128391468554436592966180320327093871430299766775824435324947269365568564431103241278740535047325448064708794465244646891804400016698016935324587641590456854814733407875209815711840088124200336684302128702232404053569805185880099802045864937231296741827094144682926507863433350174917577227101663972787405998185132376796743965980821828722399820342254626063728983314755157511090181212547646519796885324244482777682067547263519570346545188057337977986890751249250172973486618814043010811352012090461043166998904842327916798423584297530334765835975898680296498147107032094452507314992041052251460945809066429385738813616121561572712050369628112479414121416371037780791616231495943224917710034558327450647741406479615729982410248253153972278304081656466068275688700455856070997845001247556954928245577469040153982349354451221550485208535592050340705379318302702803555079278549328074104023178034210716999777358616884812132295375552094016171840709950093058244291219430905549547587107984643607433190056588169705757918434420434569670550001616867640057872431806910377654372759879100779106647654919830199925689445594131998303502976833005454141896708460115948102295010259182572152480988068585028856830418291510832004051688130861075973099325539051619100624364034664237239375330640678212528290749209090549168130129984036231066479714387116332031623356066416338017444827714106428857899490982125952302741897472783620712079571709750181620455906056508645021971624801205491436706760186987242115049748574798893387970681546256091572770499533494781197398520411633587258662041701763233035512156551928798799549103196415528237505897624530945756582271448664013376030981498063301877932206017093502829023633948205670202125365370604310604962573378925865844885889136147904917362001629438808071130597553676722795546075881474484266892303029083399701260979218180917886167450888107540048943827518503306455772471184749575655574229267789729839422386076305001555742564516915620554615611406355380995889888309134233285982554389215782293060325801331404159305575845615926167550554970899695663889584299308446945966602528504535474822227210565030609235189488531929542857453386407670134842418708080325732424438625501209464640284022938227589854626248688933990682211313143199068250523025062075067056914225639690355477617529899553656854306286799718619939735210340826394132459515105634120251168378465228214321810267884304106675370979043228194508787748845698510923281150847301302821670998483104784802103158567451146586687316529340204541719623408136995480476010163672677981462234318140819172958241888973568195117736970581386583272935049868802392996682904443634062785191774395981724121058576243472728987124255336810004845480842369012239952316082962237630639286959005309508899564211134136280309376052327416006815600535628033960604441282295829848280645324912232466476548168463753547283974623015379183058976164094284367475528203537144094865577973463675066249753183916582345167334931381982114484880882531037275135118740383283671957746366309509494920964446450202174619135437542679921465360395875722430191004753406026628993082969795818378800428722250127118023821359275551411396807325127337565417382005163750412689832468632100301753172649978882119223946516999527467520262450434231118457979213971013001176595613807818025803221554166576025554985165978601595974792871328632887979860087461194053454343187448895937095879474991662514202546256177696260290640627115339750347786917528402389518559636723448233864756511702504777815599782601465910068239687224170027710372905375990907365899862312457219475875805112599485823005974027653317405678806843709534148553392466056699346794190840142918210287798044760330885039733116007093369783457345976370622068743576178620172670840408780698359167432370177694838482264331417892160999539443607455170045850556598623297483892000267868490368178139490070510664025883249753105718258900834085939806524891229006381686323590281374118049700815535596891192250159299763596537883872863046384473719903646957601110189690027412688524717579889374942705851195841908641643279532466331959706554486118133761096375259182667738856241183806202734414343258015072205714501475519609536925535179548276608258640525562897512236417838151777999913525105013653852954543121279758443357936522270569553591522084580836197315594270137042862833461875193347045648838555019985682381651617524441992299282215234014123743098096730221526218094668598015147951423626029525687611978667143991047323079940993875862847477895195733501431536953782934995930658827046629478824310111323949429493659367533953724434572319206314215708229813074090624339532244514474200505081270667404967103843603206700596556389727371770834030548523441100647072038664629791819867904341122123539692865634690825796633148327456319673655526119519003727707194471564855654400109999146555544312067252079941318555803830078301231791196712100874801798255273792466658130637093478528728248786906517585970826990497112200054771259024711701450847753207527189494381259569208137959330348090962801153873495718583518630687434048543006911179548639163528622308726180398161553138854668992311211599579042620942688776205742939319714515817586254247377210484088501132032108502831851234527827001458494241506376048274803967114503505948203826520240975870182713390734741451729542724293819016623719404803787439075445580792679829081206417346210526765900496506487395112724329175864510988119122581459655970137747663817656371794778176105882235013658366848651352200880379212031950006521020953900019763281384353006118374816589425316110211031749741703186621404475029079163940261515050835465367571702536548067984823674589017688906318431645213166646524401303553780831339773852408394369402084135740601544239360620759049558401060365383093801999287579159766223391799653237653956071145184278041812836136301236267582314922230878000058621316424132403791489160290756906966474292139584331785308527456728330882195253647969560727224873579223546672064272787673830911824448288467083890576532923609627332509440721499020242563828179010027402097930498403178824566161639039255354826531723689991668056410655523813746533576326077029261667658139784613104650187830856739442492506259180468920700987533557876141043527691731485666180485606472748343010773455501006122116487754997345543879595610939838039203223977767440191104779828845315559265276681966711346293566168699800002602456261248832642956382147695834893835553793084689664884474071314037525769281889055360388682776807251681819638493923342285569008712106589356374874628119412315220181385882976576967243444687175964415962443989398307044322002061963881135194616297669314766841574117229034943713202455880372226299271273109961006519897800853714640280301259006701605211225515725422896175204874315277225626184584906133623467355105110868151570091394714165214127067409190232562804152838909108842673392718865225395112943057707795112285775254412472642038787128527858081123217029469119689081340835371418897188681917235645574268908410834646769544481543713054179567957032904426239232102703814465867320027934912046308049009672931799518483731666110505826551973275796058826319693419372388665725668007798647500587292655729636451913021644618731788601698134125373215719478528629591607692403874748775353663482337992209938242406761836996982544912504203259520911979405343963171626620039197294812788250943643592416805818596113402329113334687162623359232527196561574567628025336007021107962876761557438473693663515871309077161104888611486339707873811641665910565711799740506580113943025554296724321654481738892226047489251187961380144959035564618656649617040187506302612982486065984332423707281673298071073980140441990773081340057552015510975255043396312538095517253202938602431775642040430293270416130301596529544878807474448354311370365045640550218463552305212691103363998348826890826397868086567043544458825177668922421296248025601505873086529561031395893183047538390544162434836192423734050775183438527577951900188806978212271989565760060566740442763334689220556430288475436064997224656757009054904407626720061388743778437512390711308829722157232791545773297303586805071895253925524321739133588007698479726527477745804978021688612943178734047118083064735572312466287675045920006796614761492381560874206247092118131617767966279635336498112226616252586315387623816001979744009473084935289331712265099088132798672674413504993806064431010546359291182060079087714872362758728370415198713863866097809023210147356072070396714802958131154802523897460793753900260967564058516612496991651522022454749471035245712252762460086413037407250452049698911352286434501870281697217505810037650804780431467122014509615326025258429311291834752855112027762616755832024677204431227094579476733126913027646499260669395612422404942508846715307290557564454962776215125814366079589978094827128383593099043557300972227072832094907413677945277472623878575122967347267182372499771674088391159674698746040406540529570658161180674274838909956832734502839760035115638467498560895507383320252416845481550199517972341401640101830623517550662678867546190530395120959204615522572417879275676382766306666576056187582636216009797832684494618930768470106783842891318885912874686839519154082144422520723599437159808926165969886000464555768600037940360845616890901079297733299262980081963938352064540196413270799251556237693488260722166870520277987305991307249019022592559338471174300588932734272734786902454736413534979222884471607154680830840756864724462858102996284164551283898000329174672907612450739104197724120774286368923839717049908433518220688198743526536109511943095365296217315087734325516436223471744288511047724402931336517628064971355012272049066783513222557272488678853707531159552979937224107019381731053140940060582757876673371306709751869443041908829301081634479934647232553836711698992315552513688589134653168322780863079651444733534877276917404300244303925933547316937341308227128140145246965338641524506665852239526730707666570179329401183232858221231594861882515638937537313817455908947369749341600174182029306581294902240137198862662784366058331028650327658975817012023273379695899262102413546876926310484805566670185457484746056436461673625035897722014450835695088535191055591905550397934105606596495332532658457076965388531140497903017123961160634285752016711056983306448725145230848885136662675677706901482352323625831013646173378074304851354294545792707765649037848661294478140455599921598507722088558032943321167050196026469650767799218841780822270668801572924600455210813764642957355093101800898607650994033241446408962759550015662144771726658872394523900256153251208140646103237432107603005813910648646797329785696294894739018813818075919082510623483710676952722737144592438123925217146171529507165335656414393930348308041334209291815861475330160232141302489531190455172319177646561960420193289861945308684458301370224665648321372827748671515146469524672088450659060469768172279172600661532709009442159615644476269478510897038357308355006714928488154824737070133399181513590528477713290618289870313480481499653372435755335389889539365454551056141610606345435620909014007787386649955675468164955157010226042704600125388302604720395384882350071987430170652128403330207045869096489337097548697517545438013492925837242955570886659944503102159034246582232763280269130076593763086233150979881622935170844474003218897895564963698206891028134164916082750825988499342121108708392925075410940447939743934795786520155948050005722970382700989638313198546383522856835192293389900851293482780208831770286708893916225768408385383389005194528438102785369468465930953775705559367428818135016350827807657535751348376409504289028736136608932073173939288739966203095294670818838696724595794217832491271151539141080873300228984458804035630664502405324044717991213579427722005251132232287863901646057355470453040216298063768892917787930327170249861385451918958331637364973229744524076028454895701928964973322743835047757315953108571720611746612634528633876381766318894805248652878707044532381784326493381939254406434599263137594267548371377310442411673635026596767480708673942666439601856548855566137931800977592438291768916077430353285198120590471395236239480144028415022687524740420182527522744419629859387117798609717692236172892572380357205661400482551788785179800828888852744386437476112389255228613245974383104955823197422617720459032451186790291151069308195125938692100919897830238367349204301348578740384261384036890973989673982139653260159590987939063172900104345309745279961310432080700392684858737537391826139971979348239098220348028759817860819311726440082455029989319232323694942282461230860340141247136114011367983540372697542205694135934538784627746751636689367725894198619035110762872956291390419680518443312307561931376594258486525371310953066525761367521523804832739952947395928429886839289807027890529815848022322723183461359139573227406786771758504388625018332752522851368791653290399531916062157635518259889510890586623735002577846192607654738644185737514983427136712902609832934721472349100379710527705729894285807809252022096788445329981588723646504095158453388676155657223097182745911646534812628437366023931726198763736047036792632870330148030440381378718393573336320896864433569172096610742957293581273204292471217485371681867292718721558330863142637197734342827692869438464969999624172434264463203574315187040663517894666268616658369957423152518073079965476476222702944861445621147859599026942162811099568669839157522448733310867910481959919360783266331404117450560470278769421461621654638038359149965873721641114608082676778490989794873041705412410706944286408796859829542403028487229676926247284660342105395462035706245401200114263156039339729340727964728950490846709426130950587759284686657961736525529137210096461757543560172961108796960311049915549940543550943838559675072061938678337885949834109545814446244382884267166232790501803261436729277538005880858003498195830110451946274055583052214134577948090200511215697645646383761446114791813352301327865496292443108143779754232206977841412466372585540831509367253318128362605081958925630684987956686791090202395017960284299184637058994222955300357670232852158362142759266560365628332982371406380928814522451951809633947879451839571771301119517061979557248470222863342428147278516083568819807486176211829161435515085762441947021184055709100737581732508309698655498466783520720986808528879299325106516467182447403608801432418525004392991457953748426483440392256034623100133467993385290391483493914085810210162270766254751304026368315456660642759464520404737407500939382908728199002909041011078649403005926845610715043567583620574124148735589671321823852460190204915686671908530654125466208021168362377178301697901236960687188868523964986415730607124369672442807013721662320888490515289781891706087082626812127034791808126183934983328588130972254935016384876495068268292502662731494992308015841257814626502814213183399668251745949736589347868062836008261990072168094629772034315623185657533216129388814000298060065420214339272809827422515074961917856328270820559986399875907295334803688968635412386206938914027270287691305545730219706084749242031517116733976094043527206959591010799988361793785889534262997173360324037162095015536456310624668599337927290228041564897243936417875542526163268256049439575606733234716664169817553162397999356446208240707582822958984979030372651594164221323026244938355721376543807366048375656847106507607235012420834321717359186861806018114874963513552882993919832974657285969978929877325501351005194977245098012745221117326484301496156089481815226373505116029032331326888401438475319103691270058074383219709408635259736529384493554670804568415596127925583428278222751352465188960589137439143444573913625273985252800552707804377883147572267080472802802161796622198428293343929843835660937333477463330155922048962744000283870055115493131045082414918459526359777534957308602473377057204409064604296903667095870130067210098626374316518575008148201709342434331391695746511227875341255376480942832726910920874572669706895136779296730558697680185874972910613378716260287883775184487755407485452052997565788930091929817785473778935062162866270551830655544171103520385575827959129699611874607624236669315207243885888415019476089736492351483494445698618136677212259914702439691851568642044937389442098462254583071285232491839405579973402056802039268503949772647991532179113873752007249266982738733708072690753606420387202256356961927226599883625270991582782029364335011635296363593262860285711731310477651012062873228924741282946230979333493834563687622801561147747428214269051760787756713885861864813503260827838211856136143382486711219537828566770786986756479906448598540843937004804396773864087323994318513522918710043345205722387644835689221610914506518479909252548817956020693251132866818090734597532021977196431305092628761202728820596455846129996314920248364800865350552483549019135115475129175444295964347889120856699973470533751111656800890248047224596401334951206397404809304317441787955492781882672783647518880057438857266168919076257092499918209915062032983275244459378481893807369230643947536853898088886803482204607301759009082851951441614919358626006414031736601210512740913827909452143893101019517286886022583945634240640757863836326144029923645956932319660086073448144030856795382245300900971528533007776589698220230416181387470941070026773870843058460299503964180819418425979091036362672978661892445819818223143877967109266848255704237652187838128251627638866450982588959339092892481876116368745511817775204518690743545120246550088513737461113622752906194343428924058530738984965860134997947800853794332648257325273401849903439301243499839355175293469705385977270041095635536877246768618920029523692902121429142532741121659870125417174461458647864715426370306686703785246985218563446627846569296010887990712190299984454558012568819701287648270617610102427425577812937127678899450900994115160869614885434342359112427396225099525714168340421035279027520579073771699406221216580838924577288247253732337259810967645788290364696049001349050338415097481526095568336319524069676669680947372518836445390299853377589711600738743515353271566664888629959822589570254717676608154050934143707980651336175701007628226299882244022747602639683219250319246750008034712182328558955821257837809202699994370477351507044804664230767203194202750695616471616572135766441987380375886595179076375958948225508848910575954483872343789626606136218606410378764973823161802340226194652640592845421365300756056870118276790232976488787146681466867913534825056269474321197929415518303029913931691469545281293619908640730540521179994609431196441504439106733910551145460710437761089342530934284253802710123303118983677283200633033192712268419658587285229608544132834648970936596105537732487236259374061525759069869755387328969473353036385156634612931985613297914818539601902636839449706700255510206945067050416430576859186072830589266899651592873342298259304703689686579726959188835279346663505449587163982336868569043491727119080559319809347220769843080564922561491475382954923969599882373030525563921726060367711685098363473983836133278637856659267363950448120599338652382680033859890163580702391909260213903693228295497992297876930344245832405197922554713331585768675033290419443065108558144075326921867495199368147910511914105649567617982084916916935044631635076085395750398196525341800883866560553286559759909344214441267602687417785402198166183975587942748054985149878914964546088033368475058054064166766248902563896989637705100704817347354139734359321519744951986459413706553686849375512193901127064748477399254452210014706444758019435616720141305543085125961468090466946896410787603523279513212734530784312782399594777980773455157041951276338678276217501540460906379638349735079456530989724999373231137088151366086342295545250733086989100690059547670652644620544490584333071623714854258230778075818388843988267816855796986542592997736292014853292992027864611836441849883748873346018446654621423514484832940345436060729131926392777953131337990006588344676462915922320059854894843489520431130896987398983480628541993289985204652673233016458089099525049863055138829157835292072106428880943504160597682309390875854323020153421128686320017663145703161271760088640649993764862892866841471423733842069439193375663225213605950025251548894283154186554692321518993327765546184102224687734882261623999584236304218854013583553155202347998922856897056849929160206175477810981650653208302921435528470554160281262057897311026976877149499455561326151106028227277456249131885867493709729317111410767600984123015624101747804579677097964447449151342979748137239305224299814758109558989802737656645412210685465078586530516016550515952873648149424113539259034054108170079436708406897126586020305151076948007138586898622011464824856765768754200502702538904981074696018253756912234391037024686753560130046343871388378074836690755941514397376670655474142887139356929946046653873355406544358638878150748656780835490596773702810951655521415781992531354187372709852144739342438577187460170727741540459636111295047428912582888600576738161358732283682869080666041142825809862312985634677985955464673728980596520280072128234111855422377702465508248024726564236408395821052956323304027063700746723147837557714633928179715143535445475260809683384283416542502101849743829013019784863654504200067317523217583669005601386718932715606643719606744460971394951724693885495053751771194055616146602955733518265992110852222095886378733008187411152415017543580432457701534800190551788093765134507243487139444986475898850080678068528072408620942497745870136442434699365378290948147704526832644787397529624110268704529218455595095752249100132844531898212833734899915853811698714296149495376364322453193857479711513137793128776795426468623364041699711385795339322749000121984576962473325472681773366798980736706791829173859194619434279128968736289387867657787141271981501963016270698345183025707668629003478443327293944308780810009828208810348950579079463347052546760441897346313283023430665152032193521872060452097181655675164311771118695396299831268255100803908675330543987580703615086187345604902105537484933678441780389086762509469693165800526248354186263025748190369739452694199459185988036268780026615411544460865073280147342026736071863649506502279966062358354172727457360148142054162599868225616702016161318023313892013974445103852350925357864505497691732604456476699495045670702408325987641302848584627479275384891401208157642118009196499515377134670955710811195501374549744883680258063700188249568870761668405144639733958971758736855541535694888939073242290469735171631610400470076100019171314769303420818743692233259424548679776374139385547586296676206591770818284766731865548761973861152684607785122571231076996333321794895771107512802113151236563877127096436778189932639271595211964285291608252111951248383080659556782011887054488456939307731195194241278303881827875990172723573192747581804618167946422062844146733518597624331508415394314140523734229298623517963389809839791632627006254818231851251156572009152934578709776488053092671089607603061369041020691471534563245921541727486892715952715360318395607690978257214230571658637862902193705023123644803098206183791052856645534348072248005022353586330049652381424084241367252364524171466455095310598183356764624581286564637192708312886829742869623954354855317732413314539339889795213851202986350818134810404403528520146020925108489822695518394436417272677754386088456404948124532254171713565732329887162778886771631118329186537459448774074215558907077258871032879999613845057276792256458029266455569109800431524616241880631156687481369708860757985642743774233305576391322419361399221395573054872619957048614828590667265452687334232797091048651240610098857770887560597064278827469187151762714612299626237722020322946759322480379997415028549131464167190950084070033119935722506197484396453489379064493809196578521545965230193507424751416341016040428508021054829201675780591553571873283013893667947048691528986737237791768836976534497104485360641889567922412243081826467791501076645927432693942501178647057096054597696807955958395432516167406659717333533992816759628968284035365917383124059937681010930203631632870433961559848787974016007655971979309850314887712298258361995616731942466995340761486897558571462553613879607710719153162728306395144057387521297774137395714793034944859802273911698005256358223750277003271575638454308139211491657395407558823061604327814014276489908365521357046294085669483701046597858822282613955260032993563662653273988891033441364294756026163203221173309059090632493947561649180657891211480762877984695106813401979381867320106681524970969275206417685662424841360983688598371711334871204614226216052363863335233300607422341779057905596815866130485925878507273579231388575968065445159164863252875143545579679887574022356321829492969374310915499553198768206274981142371722374189625506569031203363950141027762818965130583109915113967792900046621573463233117200371580898079667782544396514264296047120175395016471520023001663641904597466114774279770954728089920021424269927588305429051166891843921508527513935883816162462387097751927453179930333872176773355150954343108945923111679660677140828120240481400024649581500664835882728604282065743875045536572209816270013771035846476924069266257633055384011804056280222126400081586638670235340666058116076887484484605005902744436119608005170534690251134899064866375711109813783429597683531573197987521069408170403094601589448302231276170320872348644191283618984855038828357803187318650981457719976569660001870672001452365710622132922753784580708800732434308909969009670056803687378742536769404272615816711429906281528596918174291590947172877597141043616869306356485597330383109145972441034977747124608013647008497339570727408399235931883701011464677857819517726487407022514546392920370630359690715327421841732247984217020890596088724902482129339178332516735990232344811218512173915478147538395113468300636051988318845164600496583286478964267757783739951730335497897992016987303566764907520642261233914154344497653959277651696968014339976692333202165080108144436750345866890053690503579531126413588798060036986007955680444367767109165460548921358243428332091492057303274550475403171754576844813593374973232377052667820198789960050999563696097560482346011852780010318724359808696595717347072246100379560393654892206472355778187738004419530786690714424989203613598058875011860221979173949406793967709994329732034283985846102715053875767836047646027597284200142144939102087548371897964186632367396797946327635199570250240033867287295014417259376101679769359006686058495756662790329977104647530572919380509373894757827902924128116152644949237730963117020435930741537754460570749667095835527130556317809111293135183076644919450110928313566053185034666329121905007999805438912665905612265811629888101671452352174682446661251754442714539149681699768482239265916215740480204277716216899643989916794589172522649587751654211428730497735029546309907575862013517770911402539054517722574702384071938612684403149843661584839140634871475276779435874572839546583355501778176970021310476602801009984477392184213881125545962270712564154101672830344601205615040556845888474558648852777694774072253432069511705629104318978786402420348077173977202487067501720421750028917753725675419082132462718156222887588861244408065807745169746506805721188346889273107623103976695357179752628767694957742694804824644172589709414988933293948735760752638261323167333534654306369129924460242907866073086780553444788888403619032084773733890517077654908810741497638545023506799338472716205366274280933484734049235462918989993683923339365172961070251370069298708698973393909120265724552954645192373494124204525006967497322585311367702257002078708981179388382974739218537267882343925069104915658975929903069539568130734127129992462365386532847278442491840326608832773905520555726551456590049863683956101411807051295917855144616805660636164354142676769130532193497929783174677113728857913239281805783122255919443617293765054968113269727596087909843828113000196099101602042778860686962798244307732555099638483449080469191761134420575635131637091910023773598783800901242785114825785839744447205929705900240391978800147035515970269169522558256013942000400465102272567970165947708628419974076378632434081067306560200873204687432414369636059811041503579316147066458695439871305377916590971362458523819845754058320608597694020874193152233874982022032735582153526094453171656767082245280191137539406289038665489460572658881424578560664971607931164766593883225129606026905274027827428949407398887991278304509284619330139016752847852105445246300622059889690339993050182510807681212862079700586483383746229502392723071541936234892269925771459458767495793292662535975072164261793730140276407601015182011192009153553833777902601729851718401616739681865541624274250726918197340630908669556476676596734797923376265707663995922638552555227478689483674437057223391769318988423099969603565974588093814284336392760125466214304953276382018500003815302834323307972454553943065091879759001529850653442760372108622970336186860512667099165447356689364825457189554233844583227339302314980605859115222194746599040205290280102262679305956835623861778567033719440928531156950249293218812761068694139399303694522146001866728632473335469619398701985645980613440732815755529955678122126831244476263514131658335255657477193251265717687923543320019907502875187403026722788178422783939030776094221718044938831297445841086158829849178585835165708148948744055784706408403118685733451810041437115578231560802231453643333786044261539216390722206964905467858627520690337065847682569904370567681043579265706627334674998198721942566593500805299203296607813517033550173839555506008642887150828332848290028080127395215443867677995976281806959094668124840157094999155612656197186141805746941064652477847370909562374890059401571212642371154381431741822217648659048782816515086713330320098203963324417475823138536509908460911255626377684121154225274681057849928999179384446919055806869330859573616274300907961430472889088386933306557941483636726576365112285071381609214936358786007718009301907361337261575692352588135391776968969202811950879549511976286942754886876674190179659802908503902848725623064649205497665425185593186592864896673266885309019093219630140762498774153930841026193678698713791412788493782986064443742463273358885546612227077771000781154017120194195741727201723098791342668611983381737362995911204272418793076108339275316840327050850625067339273375076624264898781366815373762298778091516898378538637310412038371734340956579012363290587081272514297712712693371950109027909093878025676893467755907429895356207899158274914730729678954946186152771303322151933228882012131143631576540007219378646829846938721623352256261263553987807177529676804727754974730278458244427041191766808709345003068803265285915471823097026255852728142089812005096471538970733516527292470807574118107722011058757640451638607709795660130803030729068530015469307343361869934424724675392934235752040813481557303805331928298618308956405011608401295816765671062726518333340133832053685399910370815599761252547125825146501951933323937260315361540439894788412059360052073446852622478887724205747962620868191269696940993502391654640315376347423570034082898637700378186655141192950852998630838838931143200376935946927665488204966700040705066846263885962601936278881785211358453130345628689787898940061662134263015985903255847271336778869928218939546249855507255202969548808725609999577061420774115917777126997650475464368649949345370233779923664518464661841507271457690285642448720227546023722092858026015492570350204971249374375401261924875871214815382915780268678107498575177426814521223291641218196112829736953032198226514178015895830711755288030779334651010493586998403946697445687801030684267658949881281739702048199875559689673637524124343590947514225314344811060941923508839837436942443263679564345686577930365424723540917824719841465785273196911600910277578878195494475127936143798377323760888356256468237097068124615273017017363390264675169486331893202547244585119301200434457141086020497260721601199280529321940383752026616415634089761196510373934806550505946439479825684149099681689384123605224140045403001090840495478359195230730667233729893493597168758772120258328870736003103160179460138794987628527720509179263401414047086459397304198310582774850258996809953254296291361529930574530323150178836271719428132526759669539902704604720454153586788116163609943505797658002357048389547822149637754234439636085711621905383774844396080249169806296230342061520554065734870758816354746208816525036782071544373347754064432485310090500032646181538928937174720824147265702861621064299675999984996761453674003913049165194304632068913601683974054984406799422763506008502647134217931498648183037757372436016644778545033620314505959844130084925695498710054319613607244496591869693019486855464221565309118138919981830668815140516464411357218792262085513032380111693754901818506864019670678573866496655075859682086946824718089510138354711468827589851147919154119837953746131123112247741513161175113340823737260331017310305510534319595957704485813467442280187972329318167335728875315651036262944203108397566760298970255790962902186720507569374289058929935182688198910265098555520557171244713526069365911346989982149080331872995439722995246983160899032944031467848434406686641252296576617032414770067770614344435258419196400368747827823957759337328901720578871511698995068618987953717503180131227626921701542520788596511103340001267175993621870663280874549587901095538769453238735095178261183535659662936033568531040205654415647313100282060425671350502854728695985818539029309661167256530032276490681708524252359359767288073331215163969085293183155891451427116594185762442939937913566303920808506844097506991462577094348104840701722180643899976221487001595584556294328688553450522813408125601720965745133064014520761991089589332094589281577983006453410170192466643815874585163208236613343164506945256711900320409754587808799092882155492412315324118782584934535949786999371493689704872782571383452329288584438358716396435443086587347046864879855213463126524529326833203435526625592429610918253277531941963347202120077460376001355655021161595654316538314980819956252032400062800417508072774553971199561229922653893785776394794468967593880339997899309561059696895606561982634584650066556962717012276739332632605709211044030441659376839764752817189202739417885962648582389151048371481941079683815918322955837894845880229068331569738504726143316715594185201387914743877747506239397730123158209298112407748335618160291659504683000903259302751023858982674173148474564237425142033793908897115073196730761207864727055442554761985044831365662460602971209886889950493702872808945073177946479591195040713437490637463043898600576319818275786864336108999662103768895065910475517532409268434832901051546520956694953951674350839809571913654865678469554251607823246799189041017622421707870371190093478101997530691526542478092031447163332870251552468976999489833520556613999348163996852951755812051508034563757810360504776536887153422101152080044474165686873944221785527856499043724381860191568013718446852968458654120244124219338418082711720115066393792573152363553916400569467275785168762231624389773602645942675425103649148047827550813374472097064401345349154864990453381866279043834660962170760830415668242895217487376034981074720849712745272240451339753212744114874406419735516421501189332025748865674197853212362289396502839381106448656408488640751096275992484269601334183869813071298330245131888110707843422231122408257767963052569632010159728629863162467102800518468867706227228830316843211626829350669915844163977987064322183456268176460360188215753510925183886415491023788495680501773322439948976506232252078545470370256674625751922750418655282016896611456159867377615022039208751285240804638603771185508830107214945068130672627003943068320667870987213590420287101075458584270261200713010824471762179688450315007383240774536918377284517810346028463946631715747200088392918029740152806768178350325641776296297102089184419335888324733953443813882684048187429364000388978312191676806750148473503400443611206160519746115099273643942009117113523373405108213264017900740167536521199265086130963486447580877959377810622125289286727960618245556308206524898309946729731235663977622919880645593208878548092376497435615663404357066898070490214074997118297591453312739445969372929965141041528682550135728783561523398755680345635744683996158613464817643589149512736221359356446227693967094591603530358379821010864897171817621205585398346068900994344538984938456896873213552446142903769410077166822034727405109071789303648671883656037275851475621959661221412533114365782642564513777169225838310146928230454343884391986097524341143608968685484884371254930282231703259248930813849088105840816754984563392216844024516782566762310215040542952083558811618341854353430781653381120183298280137840254688066669190105475802128534085083698581193202956195969828582886237322461480089026481624996814940155350746737972091578834336995638599034120344648052963422085723020658662260559949682570061415307590911348663998704302091511761926849173030826601259094260088337914071127651549307828355800061099706640084420196296385685460136702107114473907147054387743076314684018439962992679373147246463759882353205463779652775974035122443890988408596433734027337457388458417781054596194188976151984438802748965523204934889202026155384612650397422567901190151274979836993137683876942795285349642809219793144047797022409747951098393951172933304961780134721135109952988316625943491253529635138983259355150337568313876493848339756565896797180223989650145428255477728390082431136759674920247026125644338353164735259977941055920667933047137787561660062565912144284226988340411363966844613540577872596481492039841209224365890219431292133634840809661257613117755311234007627922529064293883848822571537988298043159421231378988166611909192068577017360570701831683245131969519898985040413384472791421929208091855505742906842432885751499000282868817620303770491985035326529157803652758508876508154874440058144195656284179949259854775554237617150421741594503323795131562229998153611886704010551286857491640098065057798906404954483767507028336809742059367408633132680498114109547997535039883754031301641162525323274531165188664275868100126848894419385381996229003971959138110472674495519180950284838452001627689701656475229048371639587643028968693411261301895511740969572563507910978329142706328523908886408324503721076434521569276948714999235970772750881085229072673114847791941861572442842322766381094901074823971863674972561646678325349064643788966467134988913930089353144224182996752199975716233514091427916778402278876811982495402683997493792977980076230004692941599620902636963954391092704322708212875750113354619730407068895507453477809861900091641760733185162707591310562909385570657644900506520485859043774157409501990911344775288863625703363455332203334856464414182464575300275232166504977605368042982965489338258562022228490374666885516402314381794766375546459716032362087870668688380171618685530497500041671117885921642534881182093042430442861109978745376242330878228105010446700877835779164414559301150007738279691907224597382808409795097654063478780188228418486985343053877511035747408922571782418797829335116355938284949236369026073636940046379227093630601611171937435497019747602625095761717632398853144193038592165837380178613519682204989212428839699370825081205849951963437762171393652663725894242242881618822243851593970368810031810393418074722642044590818517783879234246648574545120004846627468891441892951927581015478671652998335238485447146235995820792249459216082601470648572477159271426977751335057923281769045421402849806490260463495023153302270400632431097445198743985643263039090209219625625725775581568829644193748733932425990251515910654890642350741431651224993700760416713078293431676123412020392117544527957430976088601587925955549808095092937072697714855110024986042553435066186133099723281230086830594380196606756929380413843168277773257344906402295416866946432459439878205334783019217506830400442899071271193056056387916550013603099815515950060892510462199161586194994985472557124392594248322865435879427564076687040329195177222558074260080648371850694577583357901285871331746389032297201381131123522373630476304141012158698586845261267024300758387435171034761799975916758032027270188517996950844893441308997202535368639707928341747704606981514920696798911861828902039728258231177617339093731340620623412294976913871053087733302090093212510804244215447318733628692863083056896826852293319368448469604327217328879417275090514431291392060634383102369292126121915114741737460456807033022368163013278447151192640166747903270467570674162118351650938667900469123887668103119519597091610229841780909116270216171083144699704713518617857453460161637183036171917132428971427471375836539904703238274941656747372242960238909301237701646872125786195508433310475049639396451720720645828536611509379072001684560781490878976540684838759591321271588246955565117084202544039768329494428882870529693577941705914214218288146635858146836144526360146580982208437354953788556796917505104211110497030827212149222214850821072431615982085854224377887346690983477204237896333304590248075128177540901764397167714004628228539547372491237230282453699907979384567287854660902696551365853432392763484153654485970167844958006893454725691032659837152100799702995836890306921986855157733498879806583676615652480787410814707722728995903098046240997703249399266384727565817173433302385645126000769435645429831157931367858520729950952917841577119987257108034745090238766621376365482020549254228175802979853709437610216900636129212951687227116910462351684793655190373452055205533709071987174078107071245267994261502827029771474347752172810025834650231869808905930949965879752802696692855467492054312159329358148153827393625513681185558902712283550434897481905234041207250814801790914238302698419983025729525373266835308122185952847239853611995437003465520234601023200531565103056549534916711577336012405751398598461300992526425895415410067075086018737628000219982922379661348473104207060975078681280910656142651488828873765395999685724634050031238293889180932622581898961755819371648271624000080312220272733846845477402376618032644975122677470628008865646455279748896522123123098812485043828855611547303050631075927388614160392021437955729191836101223092569524931805090714129178665665726575945146235732567949603774148700062936712615494729209459143368860161692116525417209966787682777528087811769276367411823194987314670304105019533370816469781996688696777239193810470965838277977878602439180352269098398699670585895866045485649706733258795280071224106319751244081713492369149363409138202198063316322990543028110908165795249125687253118559718868803738204828335086386527182292136470905078216828369409567292709238042573516954651632483344124635053967031771112350716291199087288008215607369784216388308290575168424988457314367731041884481116212887911432887586868191080372471832711271036541974928719376619884563346469580346423670166849800204708338896841771534258566627458814508838277939975494854370214203064804653122418442357152151829478898257458190031374975134886119188688450479544572277882218005600217879187488545736470602040167799357798517841266177857220295308694469175897871184296192672835634981977956934589329170032901784349718079225313989895973011486229399972607386423083849854044899814521942871752347052478834001542961075552604190970229799588127715919531607052957361130326094899075185657589156957506286682004550573321481848079754482182247952310815174159891165648100354061073952036234048008450135188462430193072167573154390900934692728921430706544110470555350419846912514678918533906588549975552457559568340043615318447948057860567260820503892929903114100778834181161589735731345187150666508230617866761402406715062815145453156281552039204456805959547276202389596988350930415809609385733070858068379127402445061118790815615520254896278051035204547258598016693525961972958349451636158386025378492400572675365255426930866160323839582678406146626728373040839418996997571812620604345839299288507492995906599757560382005300813171921075672146081443599699413634176929744106307441294017772837188008388668126776699806002448720291388308193294984127195424001261427027808423557456414767500668223007558572609911406882026318310114124135901576559250130493290971634663671817604856886293948860781009142103157429976086686983453324333089708562081546699406982937077993816585500496729701184537907753271748334443062386539860481193229842825386082444820056011235158321153922645982232465735338081303958748324014540854273555533761941956881188464185809131053994317671097245769969119068107797184912993410574781421127857789558472376357168188429498896231013721137154746018205266830626728425759754719891013181278204210933005976198977871126848208639530225814355682114018751537104811695831186703113332019057968801968178660146524730301470252131078098025515195914030187433199399787963022236340026704562554643561648359568153868898276947438059967346430426342081397273200504482493976798107024880785141867519467470573939424962447424347845290705411193573070599317270057896661504964239960309674775171925165865935908973930507583452222135069120684813438173468589823366924084546505899849802977644525179796293099602092312191672278045657157307559555588896121119182052240415239979518858767742809918381900877612923240482095020139932961996247462563792746975982022839324233163485025380396827763858111318142550788709218543391784588178888504662063958709596836922555214325046792890163557218261879660426716425367539380435250192056701436316934096656869558696688549925460249654696436187149807816252553279130852803652151767319717622271392632339217050536132629230090117052094058195230418904406199169686318661121350126844629655123713312425733085187608708406505430461761227191964613992765624408746014175962244051818090250355103536721985766798204458972402905460977200205457117460946706130892131803014418581656826015440324942238052455373571356661255761570144042789749139755709279607835809541244830891870340698050671717492433662983509351015733441871142094053917277416967032538859357058795841673528658973372012130743404478812902873536319916352648070511367063011810671658170662345546520363560584418863187816825947197390651116998780091037674421313242396204653390466127976994514836233024639168625459576079355147339025235383011783844943503970105444670190678235823621302588139688498104900894347847822911083438894026974649369394104916555397035292857825957203047939778583829510522060398695859808552194379879962416669755826329380845212592788533516217151373736600956790136415129567231017204885027138186222211216415214939858048755044025345758976082273757352595969797079875300712737030657473778174256616116509413011861581234230149760037857786987590033158633669242637860204968981895374309869705160335493613518778593227124033406249679206778353742628797621969089612781592592452206751198718980224255900958028935872226016775399936553773300499327089906843520092071812252193936503158876119751464928269661327170880893859155968861984891423689799045458095393463401902506526151060797200604400807019278419386756515015003494550961462607228905715243103780476166901046045463089637990396245381810799984497271638833307385775886238077356312582305682020156816286481119754614841540143422963012507956217480387601072774764923799844313213165714024373960496992879424199932020457667002881422898724750062723771748794665568833181709039127252050859849695753909103355779196928332042395150256197610782814358747240255318670130485172572262563835807431302456073656366601537131133963304455173715216712883098552602472579283819114752697091395986124487047554984992786560883696406348255096215082633548509481037414347516949510836078121723329106048266230230699956075412602078171799863311768489546574121716900424210919016507497889149904253999738732078854786676207341630976421420869914836524488532719589167851891177336417898399695369138970640380174612821947375610531562663870118288996803123631862909892457975446229964146227577971869634631706352334558337950889353070855000123630833467111516613472440260914705008334748566334761580881376187251461247028175893632799702117719794975236053422047440215507719236310054379194533592765939871768210999763869601626833188475338583711005199936049437569037815229014070308715958589385485845541663659209034862579260210210296657989956114864556629356470795182013736801329422417152796374618839619300220216083505656046768739258328629205373895394278193400520712405187207422090397536756636362146060077698219497287520424151271035718963444607157822209565296077654217715524888039284608006042976945911834166367149628606453264516101193379492163658994628889570326985819723891285070861534951651584805730008042396145261378451775302259844737898598743693305978835823776466318018866561063577081601826003866347412360891879659465120888509083409840651906211976689795472990587945066654767430662372987798755033570477275523358581936435475382535631374988899755186825585382069364957314993115999844265731653565341674980931195408203541106598950406865918988445664817601167768673878511859130943701570113389910918216959023371372846820044301297510074417131899874593429644247788764273627129194459979536820825955223991224452936359025456945687327384367873514569701745570912807829093062319591750369917471893312620712610762108383881962796740008731592426086633547937688314686426341850685409519028612103422168293825345962951190788378050849650531969912865689080814789955750118993640575385888177438322366630816707836626059944891347630166849232009505642517002664050349897371184887541534106619372768272215580051041286777313296487527999911797201576425821023519857536934197702261788702945961335851273831016700796023876059808979888246210415474328146325655431944706486592877871032807081633158721149326619451174729407849978183266242573999970845051745101053032489819743080076733999262508640468969944923729702671058675138772722133881422873111573702705265495142828637613626712853478219187878471733531377212509666198087808557261743735618061940227847440295804612101926136342045692657490954109349511599122759569391097659887434491253025269132046553562372146128573252205101602491917949541517741454917855678661917606876606566143099362911704816890439126515944838189560631575072577292670033246549091643052724601476244009837709241489445681139785295858769602643636985636241546694993271841934078642560388978420571746489021897256196578866581326729035851247794074902261734566595182193808855784508763345740130243098838986412875252755959370673034567310187435895076247821984692053013045914983708075768819628096138509454459193919492619336210337071328851251434738140773481733969055046673078712508386314378652012848263582390214254214178357495418758860403469591437589182398555333997406371972802551241107401023059622607315476568340621015127575535286013720357547995696310210005443827474898584461778688955482791351426851737850912355314242346863546355469011590033361488077095872952944356829545438603193862257371897490429148525484285011625996015064716862162526602887549664689167366285161869913100490951349071252799495742368476412208489102167053204817317109455668644797576666466215352217104182166746370035906364234604517732287422135769932276511572827201890559955408340401640393937291339996385218382257351511011605244244057234294548530736111733438718901899747032123052259579984342633485686378479803241837977733711116900752040729243404736888867763308385844642689439190644736199858734738565579737066064449645896605107025002136415550512697378726500664132400774328089279701788928525998809148336721449702447876350833382273278458793395334493764457391026496059356022731841840435986713059089914130445126705251218782264023501859788483369900096895256761666771834246271839163438721917879770548664590623754559747170438433135108392884920179956464639454006189470040079757609084944013784384945677754758773608556696618917258679204352344124171747679403364876496797673111565309154393593512830742912132106404226549899470811404055467794767616758568629005667087690513108563528043560574743299019451987786001815629165880480685627768401414651795208934920634760442789536269869544915934852476050057061860016178943870593958909076018500211727834836098333297231115861937963717077051982868540187968096231156500833174102121504433322704308752005811635505182031481959160718452901337112524871326740192217118087710216240720163637721336414157539257399848051800435713194010686265972846267156725902786337261657023166494127698866863623810597691940809503938443785000986884567406101905573614457418547213363934205598151355583709123800941080312680153308685920192384386067203435821680247115057515411347356335325089276339120082965570679334522373382710668908991903603134372516949934227023735772727782178689386418944686153731687855752568441598671449728225197555167871292731709906555913715615478188111519211361352932047633859889594319425570703937827865700714565406075154757892270809738315105725202521140972394043139045514565222095054409177341370439368073475092056704637568398353181400230334702688716270554114516556404860747736307476130383173150098515632437619516598759586749689606547762071286657027402334583856723005855113370539896660252688467338807410746404931180628549405015043331337716388472085602567455131132689084645184378156538963847842724407310910204250326010219470700598697127383567785359217630575421256927899402738558298472433455305497858102983205346167359920910439393678572171744788266621194130425957148023868370844475165022225359732272971051911779110511583321741601270282740036289822535160175336118969154022236960975976759503778536747899061261821474147767640966784908919522618118930731164857890277271752929639447061437966299697916667249281617007659157017495302320678482341315858362461398750299917805204392120886808658567762733136978304604409915757393355683779899430889902678870814549836613385435360336590219925371377035996802819770824960603156127251512081037360199807713020459087164590823977825972670599684330986647975213860125452155089075659648950482636044521669598680737157419515308207561212580190222682477782723000829868184268093150408776194940992895252305170767521703281518170447331343471926040061688180361606135240855285388580417134244633760277289693569552311577093160369626091621719750462443592680374069565956657004472717040112969304617277233739733944475416612182201739250316517531058268877319573205840179265010504413569560806205510323480438642603898242290723253636933814586955315576365483640188362145591668691841098270890551140834325497303924339504381123904729795769459632402251742104307256811000273101497835318320716775482819649061958671209606884996995084099599156584169477240425762529737078539968747958662118418008432408873350729489601366928499031990775799535301758470095827767316905349810974368540555857534661849615042375338774362691613536036707238730562168130777487284670643452080883475097385017367181343297816209624592821413664719965265698166108821718747280424293934015899181093966960014611714322959007689848081778575099360754928415506224554646300518681697848723564280381545085779365043112962926371798244478580832884750344762293344379834790557999800965711353086611868414753107706503828452892240000644691712043162255485268318682776678001325479731542149124688824477630883706509544522364530734183761873844136501779543917523016459333522912309222988033274929038432712338137374144127281078072443402032019622406027295878186099784746679210455718734833910737512701539738656198020054512800387129887714679768163622786719180613663885974204129005475848313902374535211129237059689833092837569964012684630298481759314989406657245473250901976461827334377792997303333916332145950903603248533608896960415488944711702354356165369178383188447422911439069668373528496084364436167661195277289329258668642285529992208702923552201672574449084935037244465787320216690803918970175320765350842163345665440084758318192338527793278843081769863690144505837414123747166065160379668849745480260439445630599194795074084856596514285120775297950763636607945632156376863485417877878965372920843110832865176112262782924939194102197130658951450245763078920288834908762898475910275900818032440375216540770795263323364328963205855530369438555924171173729327330600798548396904712282560292268595457913162029532485707214209290845182800548724269499543170276154192548183425470168029180282717251412170533293199498856639588746629932320430733805546293532658087291827955018600013344461520655232322335420542228704337725525676469825373326181159536545058411512240660772216022560968836215176716088663108022235881170090612238626572199582156454760620197528623503908290977015553937473980677204678159416401991334568497138209744040224514733607122749658770836045729217342286478760249029528751039552420495274315698476939259406320692930160866443110256992402468720876422044429620935613567703835435813382548176516171665568747722580115303363207560975877600470362817389071503416434426337635613119663396868968211359162986076088720584059333327916708825366493994292726861818545560383219748885951446848200178082659524529312826256363966348777474764163498625039293843991038182159847142423232232982900229045370519346747621258584630653952536687542618880367017750560644260153782484235503714310071704839504528062749745209355465871480448445494536323521003972817610246804512727918367620212240936022329679028535192091608002993720771354400053112958327596958821586871932717692869209274756071850604854421417519862881151817128801426162962726308246914303391034234055890679870636930482357374329316850656535098104299756647038681998502972137691660178422939591620676641682073880306362164146805984292650842166842945997420109262369989285003625618907441344397512767554159358443365108923510883938325080460576807716969884680975775261738758724225121607548308916691055547857148015926035962595645932023680036714035989588224057559844134957621246959758525273299730692018746953924297894319583351324969579805162396332566237298371189663776010752678374538635277052334767343158579733625611044769710097896090306698937935043313881538170530433912441888053708221605206155132354775037070053194595849525441474436059708387902269185039000802907141349352484824443606387950332587038238608458060303127342744347039950189968954647200143190966109411707722458007732352375351436245631428025553955814741976748131280380401068852110371033933347788872632035323010169653452203041867489481524557901110397062902788581445741127572904855864688271864457989548031613785052879556244020497163095170330358110076711130640634155387118239450924538351391830988060259557251490323134845638509560350688122168922196728199874894387304433103778908875345253864303888235714952687578049472763760114354904313048788967478817046111725845810940557786658591582177401971300451955606480854996633852260395429419687449080450236474651338377410788578284936098251041831055224156630046928941085934615505270113525696784689655838048883148631958890331649573268750533244756805558753246726706853800729601392158854737544720635827822814586843298660777092173408498462121728482876799259913760344161830821833150343676228496102031197764592500040123137567029500957253673220267050528576719648711424339602777865697811586113816611448225845583569314469923671356356875691931662319303637503167024542296572547552577773060673197214588026589014972821455743504040899449346290433991701194436960711706296542439208572298499967427469339157887994441702221836640210652126062426542375637689905956611877268829541582778718867130129052156993239223743079664478172199680323644292692582525137775426610328808892180757198225478877227828098472686886079983783044377224492204212041116065986807686233054368401787231360035287630975982834501954527835781094396830098409745601699495659800568034167637577791425745103098582808408835226984394334183292260260055956668150901143241970485816394345131840113419688903639428719451531443068831786796531036214332744121067505978558360557648781015553490714575083187013239426123885532849320430790444199275841821588387539980338289785096984174946014519729124905897346515918362664572372562753672204067023428436042421449896052631337553438026830741931386745836379384098332791301303676415304498048639026191165312289945374137433685864287242145750123116355315485674353229686197343701317182062499136336111487459300296070260312645357555397197093458451629790299620311103030242313506580421078149233221856211222223573383898310920654199907912465998774421573141863765796344906366044777124351631100595597037901170784360940872458226459172277820573266001882358190884153609151285285323791596324105041985685047618685508912065685121608272501857431015694138841712083031705514139765472745124537737676145539870623436306660111904354228567321824355335041692805234804047361801712923261977286547725360950960453806108262423271965947858529817279149331635185533425627432743658800987827632052028666062097258079332587551401955821972225422041023271456236032033336454583572853976490693455166225747298607740836977965202153837312957462534848139206495655753508380686276966368425404390575836047532904667465048117679440742104744350110256360132241757970950939270807316577816706673521558595135201264990283437546760473217350611492047260812581860206317107511487547044792572389286530871681840087700012564632516116179319996229999470386855241381472806070883393498518313255931237399889022171369342708546099349506234722870957854751524622566292091161226237341847818695974190989027062917783352522610268528401691246901951345726736925859668634357819569347496542539601321565740852823779800975760515656795850033991126896925401598231456682836110887995853713679581768347412501398321368455818315313793533867640149106555040293295891247205156556380806592753412200920254775223702123215792572740925617794289668918665869122698867309122320932548724346065416991959272285163689718997550483391021048992104216201710322881367293981720372982809501509599512355140962354491922564074630440467243840984478016046820797668584812262218577059871187487168684625085389665056537140149132936584249685331295430125436908802203702568862861952505174552935096129874749137106193683531879262260045713349168342283363278371838291262798840140779759142754910218614498864015791726276821454929638459829299936116497704390551120955944544838565103682073411487832177327916238879711700643149866588770647580190174423693425244175255046898123884225630943208266755931528543221089213589154614283566246954174976969352794547596454199643024487905936375116028447565729798079834777390215454302476869936234037236297315508210413090691569310104111989362533839647184501499400566534715459197938774702680021751272556621917418227524310318894854688100774423883243968292194821162613851008851666493438085574664090887304638691240370908639814816054012104258326663905868363199415918389640806604518790203386596053725447923410345671969201744919444972363110574756925947895015741940831274255086156528546017392272736350069484518706347960099354287363756196117564699228316968660451321310292111456424280733633972276154463733122495043644169093050937435559170463576303223113201634480343856928712730625777770840188527643261804904746199641495665564614063216841525382677973435019619689846197169668316933564602647013644941626009242224926577061806073882778507263490593243709752029382346652691859185440781008400728320369367405494198104495508256130690411372324675591053290777191385368260260334674515295145313468166670530658291696391063289179322685528940599440306045737934806513590019982345323727821662318036171908872197181117083146280725888572088947184711364830712715159524318887172094958765635760777727737193599455015568200706990278124198387521439081560336172351630208557652868686908965193167959883550979992498815164882026187052524463878884940907630482738436818416832754174638087144981049710859805189590598227513693469900984602119741009040028534106223654388986108943652054391658756805485957742955489897584362450762555398916729874109395760079453380659676637591695548856522147431549975777180602345310563706624215122939669832862511712208443656586089751584582236420990324627750351531334084059180043895593722024424516620565507872541854508783771343218971763735455260480666470707505994231846446596035175193308568200633300599058600498374336469549696709867818215768274456142192892870081910961439152804251392850509249494234174741939546307092031230294570104905643477980485323696129623085072947615018097152485216696229251376258228187753345383935536802183760338880780406971328435285159926943956487379209207710521302296876590146025016343451051075747710494237717125354617458385817849357725057216040499040005619639466239476734168415162277763241803445482271392355378214033077400547768514654483694709362344267815719885493518657911145163006813866563564774000365367070980955998440706178332028135295849892530780317969600066717023204625445307135033677870720679053427764185496517631982297349196092647501920713098064821269724019303359403904703067164032594659808932765320868789875732992980384741065583341534427574328126396810709868862714078573762690305671515101616596563096372372400420424406848362138316900544973658227122136000803346909976191079989285010204401702798960410643721613042349361803410317089066341578491219886485855254646658075712782991605566504651436234473173522375473675743298968194664809677855428326232070744214238020974527864119009601312398743206638598065304713039145295799558518872009862374165142457316103185644853947418635705988301659706682078885059520968439707989825192152801624380651524985884305906637750000959992699728823125042132184543180166553932905532919486239826634772316291776522085163366840215332001184469548345221653968787901526614528628527086593978093124204471407623813725647000749400823437851707446050525167475883043113731383775737742673793388768176839044641602379296601403083043560959475545407037975982739523348816221337242768263714304415523962649761555325300156678575534678828098864978709221086397987477400401067925554722306915452807478960455621106451120946637154893883756222677274437509582597812899425570712392542775705651005832038367295165889151419896900497452395398443504607456816297667056414499979352944855311271302411971959363035582000915093208110657346594544650696029800538369534518898765051669092452872296165458028670355810567748585822711180122153887402594880012975638530104189366728186761586366552381288935379044972655587230894257103994029717047947938531977489498101545543150435738831954722693706508284123840460676993634067411543947677874350166607336498766368759822849283846498750641437211584702551945764151129047719117684642399155421701490879148470133739173047059615547316984655218304244824953636682959754025518203496471768738372480801789063780458757595623763750318388352704843022199421866843822538111306643676125323563228040887861364529292576706352312222998123156741476442145310186049385029333317571487036051937356844314762203895951584580222697357143211205970904105247230422913589091669307857153303161369413312771663157946604194946665587299592396914196845014340116795975416595979001667292259349148020898371127419546609129115951709388675352630810382330960690593725237212019725573636752333419347830519275313619089551252322666291824000167451892288515557750259708429768503925625873520737101784011760881526584608039537139341446718851994013101251537802244853388795775304068821734707347360002619203295156642685058945625873325942166395110990597969181024675380303752653658057133476461674362044850242323850478837659614577064906047047083362960989026882889877391332877318440724173260543476856420937718980260635122168683571500989923206617508782754144806042534980244265280314717671101917636705348625081465363858831643199030905761873152098837114123812228270970312529824776092583992903723438323568113582052136641100967892373009394098185547212566053857511187131362142386034714956637486744309710175669954438329202732704639819209700849687198649545137529362352403529400611431857507573201859834593729843240661706739744675519897012313547272645316406375800101038060351777217805139280743066063900353308729009117721570359256133094315676762927374587299369551810677123740288335786465303809416908527900466617694867158770994856863123060425970041852529727364519576559774234750992482927771248438646198349632513282843646826850026200836244189880868601166973762532950860256995580884197266438881174594428755000661594404186921608452665039506286222559053743914982091632285970191420945355267478975391812933753896992783354105130293352635289310226506583926153708910688621652735914700981331181505718519105406656001177397256488066799445543145843461443473920584063583766208079320379611058734996191880714587947523286566738416882133341476909763771416587408305183095293334670542880564220436459817725493287347489774509781276367470796101129441560029628925785037109615324864592298808696783303619205730510400171697402181348146698483905135263914296509973420733202052978026731025343664315661847176855770810646169351792032683053103255794558025915030270922802092331403280758740986445940058789380815693551739830014590532508329154488274625379133555834994421472848268315365208366013650365498320688831337230397241374060485024214530414402222035254237320706185295399051788994394297723450161322410770060944855720155177650696542945682468176913300432219104800825895238813617720332193039685267213334474571667120290425134010188025532289712298827191157299874550197460139377295540689937872700731639901294354444030543197939012228903642295689704264124043556425847499872896576745541428456800783776527183871456357224191643713951038778638583859127458225207366954918649472960629328777386006099345858095002418413286967890245368599260881498072087808236717142160057117780075672992394067963036735298559363329618371307099852417488255126674841310439281291191712798994909701786170315217854957274298250532326430802017358374175074851154626695174411664953190968061379991966590598797905227190394851498729445301408089573334679915416702476083916284449642278765243995338784275917581807530083008314964763033667107533620871047558875945721212747247141466531548312484529123054652941577052317057136845574270082382470303646028061213916793085609987909767373606163577916334937532508362536161673800739483653719369801261472011578540638280399051436889017117878097858981039261778729282421939409506041228465421132983229692145951480266304540446104977653024858477394416182384347222594408359917772902058283917511625978814190137282328772654367118414424454674137642066391152556419225090018205597386955565980981650929955520351395545868574104857617525831709544284750476234792428361095402381654475309114571682263144337862408937843828584097635925197986186322778563065432961923427847548615608954168240414894810212094664630473581635380047036374831730642972684926057709361303337891800292449488256722798765039521578257871045338248259204288301547831284632119833245707091065898292487977354304183071215032817949419947403754858576377592975853115807968121181311477098313600227020358337564514498905880130044670781267247940916164067066736753731922040358498585091142785109089532064515378409213875759039809741083758251284998916515623632719201536868287172912844765968081376414393011133051611542136264705093650718111846971159419243561004541542990116114901125678899576375921723160039602692922289459773442158268750662784633737840990170529195340647565438461839147905782439565690545277427879822722589189097670952365569048952223048487766576624376142246352988951782037692608229184673382453172956231321090674464715840792524485073297797416678332054768113831490787891296435189593992652957518146944878984810178115433140155954151334928157365943005123531530520534524996387698563886208085579896773909236636123029293280748257296288195750694366131751089626492391457789070274163975172061181156711473431900777541551812170939480147998430921149597282459591315232249534140779056501550041595490722542969031605232405740937573869527727201706589236353595509317734416039603823025809804797813641233224134100962117562218435202297097533281438842215590690405153263924308692786815700151192989176423086981048313453839765236949670018721674194692754275169288869793192875105679756341473928252967127213124893495691633371863487462145569651506986807499947048391960726212633467803299366767319954326107544188688645491622436816349735413672676463053219313592241478108371966506265975636860460909720285248083904349886349218963211532889942918013935151144422733218601156347129209286491191145156886196761144397902019440989549972203166966588241580144344857578015738601065504031173932853632568407728712129311283200276477247985769844143265795166845097457912694877716996088058944186703328898091058290795432521121045560212557740166202653047394320632368207049890930141885440137997391159894153873482756979187978768707989464862491409600687264430435762511717332523097062067527284849181424957520899083594295852113260321324928685562686603943111358715236070616381230368129991068211208496736993916270411838875255790053305481064418082115301109907203501551698818425152008801222540112304060250294795999829374157374150501156818997030515443650532923799941848962151480817806181271449285035698277388338872393147153460325831466995301038488832134911672851663302688357657261355215214845554378439250785496906958445545958109148470343933434113013857601449798747354253633702339139283938116924506675195693359508870686674500926998316441181867457844476072729073583880193171013165135393187868170346246449160244455039302065340643369644871206302891380957814062712627513676251877777860707541899007310413138654035664632344776374939695989970676652346978695500486677490801739446435427636547410911930015982868043783672900673804197513699906204590807309380563982233550086823837303451364708631842516764689163192899041295175415372013462886438070850479552040978390915142515287615900713097804455993419149046304594367471420697353341829076995845739489822651692808577457259533956252796057741977586761518833157944433320181355730933351282145805825375165269402850328549034601693550541204178646759290139610042376974286211332886842479275383267891928222117292349912854382884405100910913620873192025865309046449875734737168597971727872032058511481928808839555343787217189607359538159926465683694511841765150921429068506459332583644600017171959688324968564479364770923629836966537566006674018974582005533589565744703328017352856450720850737966876742662883861940032329859577211803926262624014871243358898459637548485170503787610952914611786815568087121175913833529114769949274347516779552069338579109186502019079654036618017366814132457577221847846444159877106725245523786298997787036913785104193852017248694894933412383390029808065563220421464207063893839329546430465250779883226832951715925444408671810726235114857639856980340083620979336412227313185834030286864449567071851133829632221011990508697459642654939357177667798577711931375983530559361924386149339289144536390226333576325676934105176527211542764546098276205263387891168784408340621050065628886174054707198341019439120830850412101097319588922047490491581572171207683967677994734759684881015808478623892650264809071750775593076358702988218106921086142199496430444489353689833630971951062501788966257327193095374019133778990284738362529731446997822962201731761129362833790935963345056260412938961521247897042755344018294569066780739015390502056951967086782208738731668819649132626012220455211223259690329976185837868817978994712446957710589256011666401260176575567191557988800224747632672729879915977298319951472409451702294735841571996707170569696631867797218027769177569329965198671450922544619518918583635161237916833299811751563696665063289903520499489725781049007853871296402333929305448582291458688776083583003932825227773600061460242053722711443969835386559325197720068169042243961982488969549580999609159195768278878523176952747390600723327606220224640473450865192387101214775566426774790949808538688018631418390848579722958416616528233808548336705192690433811474739950005113658004107197957427308728411974544314424029735551850425053494186291618737644383945579958638677682450097526284726066846946152449853753459268855341413655510828161989127353946886983381565137930395539446557178440534240042740150362478690602137868242352802751945712169843447101255105517326478535071202044035208316559448234379612326352138575006591472221563293279200938357294619951823620201296943258064307108459657658999637487856643686163107071795062258983148496161913414019490730045481154768071022936418043262134172452820508954975859384396118003050519347011602919220931899074486132350855918339584312083376348693460696129155686618154330001345748297643373529993454806297556138734263188182204521102819923947796726742714637177731813768745785779164497485940824523085345792402817164847599623807887404662710802626476777288193215992223843908896420023851067433070339845326604375509547959776158214803358747453584648978131939933210076888048658200476346444364104878910484084785027929753603748294665385155334625343027361835869378242214184492365971509425765990291638702545469172157305962568598523817967624334384037192987077250585009266224092214871290406869772720736465206324506205632186239815694186884635360329577336668413676763921247747402947855445408410621945398662638760332949863740289803082938320954467895520827657516004639568207487578539692283235876028147372984571094076546542877719466917821114889112647473523680393799525604833344159106133960892902587056710937549900648241555747482942138981549489578905405628818114446634083529808821153639020586567630025613336169796644587703665363177473570226651663519008246566543729236542188271403432285476817454185484743417669397238944922431803023465933784251549806399836570938433705838211668695188031257855486712501195551773909678162220791685663616135025673676446420551838414263886438466272854082120068310757888671326952740661615603632348375828193800825556476066117035641856286150692309906487641193979457781837519388478116852094156527490414657334767172904432470066860236838426280682112007477265100289774356285807424973520577079525946115112251411908139089687651104278247722478457354807158059670448117068537123149721412847720332060858566532780076955961799910584829212455861673783343986411690219171161802512683163348898667453323593954051904828084568635684408379463924914934512195672164630601465157340116775811686264164511412798161474284413684111600385355234571297072042801797706842927956492330559412731686080987571747837194970071444095665853457023270287608684997718998174415421426466592273014988482011450158580755561546591631812867551860571028381152501229972361343620610056250806255159978973757640821016482246886366940755471395063911280501450212155260995015493023289481801849471225457249463462208942933476645344530137284840654802608057555284227517172313478880543267366937017747678475351091765979661112104876509246530948026919234172415371975621220240813627653494743947020747631095789411509967596508314917169215253819672994908788736197212316749029241008079166236433749264315592944144060516533043665672379027698313812902922583038245779800616307950736920450857156879321994573654239525693548781329812624532307364341905515542354094462911310287478169854809323908675323207987328369157705428950706867322844513158706461415309605794138286726103758465855471885296344215258077352029464626423043676877046478085322015860123989730367067409889554545029987879709627257506985154465577794777282767928925826389476781254542983285558569599168183885291232332434749245573069858920847995724074600336588974072566467899713460366745797663735303167043216648948757354273517033768128092679085332091915539622169776025358000104612293852542270379290023344905321422957554407303978423047360602357579670770643562642453826104820978277210406782063794958621006484523148124207121189903634335619682549779004486431961555198920273797241578739769772782837515838426008022004187814473237364689167906591565388969997252442786220348180736033294512190352031148784474236562462074887409061677242635259147413106867535975281563342290494217081348091205534258193068186283486482345970251149910680896634289783578678094362666652509772994848354259132393337695816844266527252497100089481535323480552056710054559328443170722309374223079721693011401083980234982556455739485212194673304268796220848390991101349883333340194833664563938939293625665613544376619945861722367974086510002324979104898650079996382898941295442137433330108950721809281316364437830950869402065379025280651208508169201670441931325339873464320911156179570759998434690535042972436793822352219665926369528887226780194168033793626763143858479685726464669173422173655588447789773756510264665185923113160110186831314602983014199489194632206643326293723132010539979318178340575646617244602673711336609140580739633244355590103393937083705910564671769145789076046918842328872455751717057139008044905477890986347856013572196404028909276446470129626055630521981678633904965763258316255327986153373381905820459039613618859508907953269224716306013227423834198267797466316299981245820389841343105077966367567293815165470592915676631254636462124574114704689826400298802436530297764805550907931840787988870796076706514635252299292810911270182810648916219227271724634566235786108855918082929343045081727650707842052785743892249516787096479037833678766704651806736268644837106346938036061802029522771610252553668401136821782011229940032355153604962263478386970138240773380038303112897179856259258605659759604057811743673678835379735350640414712016047013866533818843487537225800260747496620493288842804871052906831941004345694140124406178479619893012010684060413195429992287230527095758944795780617795758781191874186718856748214422885873169216247153070623609127398592624655534507105366702948509496200671681497817105177092552266731200423295524974101672738294952328680991541240751034438424780622463742100695211768450318922538104789605495381397900061786581729173334445379189791454121202360593804226246360576069044918220266671348352634630329481312622737695297002851391294485835257758151796664196626727924525927606073379957532495393485627390297418706509031447154573861688040625312132349338730314239606321046207695074446379441653654130168909946146770419203985731377077654379205486956362367116562136687442805935488347180044650988840528671296951416414820104646017615232637240626388904927142307339984593583162549550695964179792674918844441524782947436217177581181853968317367612771546356590653721321437404659319217457193437405450312644803948592814186946784506717652228707414311772974935206731548745437985088190385394924726639751759959793847849504995205556132189505881253349248481088242041182904861675709088550481329545921684378659439992139676751345673613303066703381190000365554151942106654481434262528674040390125419907617023984710350096439207610583778218260376346293668267161671153415302800447216193326482535498664638800405084341028689380771030916123784942896615489282394171038944071709400389798149872343292867341901131599747952803367697048384346239674141719415263913445861661264170948491813618201906024051079060657347114079437533783340352043646201944964621126647716040757569369880440671784182435931708636511666940936983080271571157195685742863434570211679276034535748441919490996779608353489343071036026171402374828110178584095088025192383888094938168791822955463753516551029816176534092734417857343113951251248241998778885131916735510151587485619698105523843328027185411975731253372537393661172146924226494544862863819618220463978507189224840003733473197982235383781812200386851758411045714548364927539585611009780136941846794479235903440082503555471617366254327081841465435651215791317199787830564711406241821094293018503236413070976379508395847161640137641257046301718846071232229691675112412026010930445691110728021970723066758696583699206509720394346011707075983945698824065386628773693978584805894850708312115536088273799465543904047194091181486810409405786789771443959671932626435428928836630951413070869098772537725524841468603225074570016800580381017458778334793966563428694780089807142910204288836713765638219693075497723620457939157360776972942785290958020919092631887826015666935277529582285037275593760778905059934251584325580473883289692539990084099815632119808417530083626002686390557634172755106771548466098600925469762433294541317734171007453224548446936830534081130660676720228594867981223358517521546389406662102826253200447100523370590535372283989346475157593931917170605367466181258080491185582473771915682545162563386793674692453820494497041604554228131839131599866020281660723116343673228092448312131923902801964200870042723950633801513018971939501580654417988694237894854236009390862363711360799375186842023058257192555489056320377266547348052861375303065184018053796283490475563571869477306466545071619681382753769135472326845173167984069303357755249799935744092687765028243532599573835520563869163783271686987951525435676306236119774589247552193474747249521905406492105638797498041549029118751093115540042678322795245743255645754549252749276156701987692719323955617421112648767767477562705010363794662342566122093757116161593993317882099297089631635717081314844860944993926766680214195167008267254421604847170614108095940580914209201420408273937847920861925449859042497731539757356487883680280864944016981782015841754400935807482778234849321810878401951781879660500277348399907894514990549291892896423600219117460392103737855763877142569193598947404191801169154754754227863171246800428349165541372652132455580101605239514592348997043040357504971890467621466300342820331120742115098298936753694866394413938584100474118807786259464708872812430282251603735398396496581812788921508282941151438945283125582250591535385148554640636460443433365215797695460924786207136848992677805587068629182587367961710694023123511628382578368457689318178102986443337539744727427145006070828985629400010014001792311906975972465777904018177645941338553792531197437203959583068807020386298859286050326802312718055346475474320884981433283912161854984453582171715773985028114002372539178060440380125604022636054926215636240408234153092754712936774305753759033109650672083532136204276364151866424007470992582272042583282790842759384113058416931617778023992136634178416020734372475209608087823974266854266563081384212398042977551062155869891705645770303727315650613521343503938995339329084156568437746836642612563934620544955840607025818345383449680031286010682643851170943843748205192822680882219199071378851854384699726433961004461915205140060478667028356298541953724249515745353130789236865896274122469495676937356750827631815762344316478065165396835758891915959927825097148911767680879828527269994617233382726525527326262326601047979827691571948662685489152749688553019538512634001588634332466035456513715599708095387195422633991621126237368267242745276255542937161807965422322674532866144555319658202498947757359347408262016595526630409268820397943652699735659117479791259128392502882798746733406641219405327560380197887372290938536070596369624680830982110491909989189390484539441038107323478470529293724623976477773894529425897581657949135771485367230314345278736944188191515271858400954419362955396184269036384562231888625906255254327997497325028468166295858722363559047728422206671167312892983313383384472870990029515458468888907391333014461834594070388220515965974222401851157069407001550138312771956557615519367725367090538916448769127008591648608320028297277438181527657602201963263073990736024388445378146081436875665740842376029835287041536034248649681459032058519712385936328407979135616487675013231468235353036147792190401066448816323153946358182005054060235961708421031150033814932169442959668423159680049250836500125008923450403101610738993100405338851074502955623940539694625213450840724793823467130295177793656363521149877273948141561407787124661617180423794214332101883703783977181836251184126248206064724703468654296176806839202909065118488836835839589536051407922483276867862358308483582081110520285155523541290308438514279332775887642346332891210440022152212862543767478679815691172147931948483651814161733400885724008839029489806833671960870519681982060568235846989819759872396948513722161222666076396984186277428854561024715631819376884831966692185562930700463436078458584018031640149299051711539612352875268418503621553826818991460318998532355452511501776404387284247393278753283810054437726996871322353436896718538720814897123032317590664457458442060907422640930441185014356458486600047382379659770387958283057387766486597723510991379414174279026416368216921603162942525625007303389715222795557981770145368864591939117804156653790167791766194275449793603552169060828108117350784050282433429893840599120325001291118466684308929171174686998740815043608561706878729490263516126673393041364071611208351318440557600898070906227542026203793072052301108007084362631090150867339659979492645224800923944987944700822282059409581721132336818408995996281377921816551682435902138870113278836042964215575991000712884998327904443360208637053409129685639274554609949234659957806964235895017802022602078910919532510696162105751790662344561208249588221031870007871615104729212942039679578110531679203986620340758950712674853035548862294319679405255278729676661682096287177564062492407412705640695802638557333939662860893155475024736586238585057265750257464021140423527165284409830674254487515246388808302788682479548647300779511610983323308906188435451483497957205241625471212232016872407466423984775503964505997605661220269985588605544822234362404458127372139915483547753610362286719462205838505389518146105527647515831129054651237305424682292233250660710200990140353090940924025352037179670147664454326474720309640524147292136094599661524416392121004262323001464995657780431999312985041417321192544228202546103544535088092051669053996404442091289966799709843577874904673365705545070189382011755393489667154345533382828060600402912517847378393120098648973574011991502111765842902873593581946430875612177009882199930568440987556212592346143987495455571639221351477453376422569792094696858464914013452406563058274257240976001997369609008074095365304968570842373635140940286111710660605846166988470404293186668473396047910535417653446571763182536691331966447832884733649655573580318361078489529909079609291158790397323112216680782234558543856501772703097791251508613985633173365088977104985402756684947330535955059832269006790270942755405425183214346041205140685174605918590530593984156796220792994671834043867523324312888633014138603387454774491721207580302167837573189275078357192445769733718863040290946964668200206060252878453379693141818888887761979181642694602403866693522917112565367454952675361879254183298684361183747759475165074382849176573119882674825218281056985118761960970937742034146997075800292211494692431173229575186228374348408074823760109675636252637882990480780823440328925237694077984326106683112326239139465529986539063462617288891348520558065748822996583264212150136835007985390104955139914260602069528722530904980791182488960822586631503779385771876677951298795028451674558828102309929506281191413830450792848812964099863499437270436100536794548551978220343211353498756132057605556239285970214605108197921161939125986090757976521467018178935419397462741246065254015257307087236585779356213553972119461746840903577572389770985666251732310244003654110237499846355239106236759658726404569147930152154438904512764694410544448493726576152849733782515012849677897809253243252266820234293218679860426420664332127290365549035563713266878572970787377183093683000925459042352927234472319094539390972501820104289222284054564714118522731804165960897747902320755583245541717465562280059926276747342110641394259210044627750732587801932758705973290813964813128316363014705813211517225026612346804166894803172884791180984063136988735612351519660586127008827998190410869136082534974440599112835416935928211079238077597863239631928436053705123167607232571900793652290648319724221200690623042675962688483684476664945350499357627975387741204410570636180490191656243559508792712406539751234741144144523445842476371501981417043648462034998265795832856648980318830590471777045526800764549127029594353613789127643234109170718390421878271126513150253899301957125029555563238315630663629271419352678352480692242519885589712314971345662948601853189251880483759164935897749803728401309222696608033511537862762008636869485334092807455100515677891652303320514271828112975465791635819626245878247207108102986377408929082825469754970079258723858244607940877798657995603847521955348884815910881604627318202330758185925621528570873410144419086314212925735446916958253713170273199271292125003094568021697270342871992864069574741096633191812507801618724115485245851981648928129822565266856542216660255582590394016234084738136833966545422507629597404333033880336471810584979730526587798382805556591380588545594134001075566158350279436326810393785104901884107222583959462221582755500887844192611767136832429987265522112002905565504603173836007686583293669730944164447051670437011473931011364683806702912437894613822889381810880044282243243559969126869008681879779208715893976139306952603848877664853613932004839808565445151274020671595901376890375805481495100770083747486785517750125456035507866169493838454116350423494987220379784896972149838254958937558282765962087644644891441955363895064745304307464428411011555297724876289841202006407228771462819651904036348401793701411739698123875020454367715896730592344692693859017284207094918356262315346316369081753334734446725457370433626062260503668849458263461047831098688392786374744008552157066466358097804260483465315520502456427414450717858560929402546744173162807353183256569968317336761070503557282911402423815231590734533356496909518948161334894572774907463227068000237970444726344320877749370637502341635688599968268369779070530666868902151675486209297835892764842846209908895464067761092483433637120527785848546732667686202951046674572835491193256456683007332080073434075629040547959308589616581946256501299108023788169549635187441662701663600997852636117470472411074698497893070948278572485343937272160208220153882768482682558679544725117352252301356608235371377324624475358994195187349787431650448376422336784201599949711667166871208195376237036242481638162157429438308960762923541703209226324614718457428351817890997252435195630897125015126471431545129228101441171128210218772269523766214437929017718952796587808640403063496325364215009796499106545506682914969638749216143777097834416493427990524384594158395395926380645299471739483769727373203515959576032035449895619983851334945796047919622643886499197935158278820010639030669808889753022251605500414085427165367921918782120035112226738318412480808935962286758234150762052509649198284912773640402386042091072143077841871635597942115813668782649386840444472409698388612377300096709158060056059576138077078333760510144662790757019604649511243364281549123971441499087526649762668597706163307950848701910455614439877561522479439694929322576512049690144603212416640720404736204771388555972193493729120113568735330070281011582605135629349460654425844385754708650222028910449325902059546745048375363754165454590123741181104396721621288884479843759080900132035296388170458828540621236971617185586750341929324894251723498188206711525900012186465512971898127135778135704899062200326910945266961726593967566335264447138362782176341844839727911997762274336864671505743805613937218065838980490651089918781246917856615965466014024736875786560923870001222773058251327941387979034235543187957282200256225281912236189390319859209651540068889551978659370419215166814785638077415222764148375302373883610267364684821283053999260671270337882272160494277912857972202456080080187188805720663527580743740793680602722160342734488560616632816454559881459684247883535106126781867032306972672954121114982232654812023813305177954124341082383493368214148630754835130197853675781666861956118189303880435969768598311135785613203773896679714661947585314033431550391762866580110527491477906471393477197075584289792007211906918668855332743997836737126582028701661770651324681144502439132951195044760509401480415074273855766410801031026652736046365006699355209150881723579009409669404405622204170475902866415680419544183862999145088594457482832950835442645485878236566697454914055022227845304215920929157217400332282388400662366692758664481797577070044370506400727027462334273311190772632574573997727255650085751573062760074663197932985606640868747283234507000346300396829537295259934014923016430385401387774007440744905032711384633449155073242580194334519472941527339977119992559203859775043802812881054204935261099201387040245307600068682983653444370915847922174952692282222269093669111075896562451190078854204368341213926670754538063232845676044109907425155426651777418397957789758698855120549158339361430895733559721264771693522019780874277923281653828602318483056112073673658920895342385633642006195206135828899028810348629206460780054630608859060862651505856657576482192126486759805642711917736937935753692317136886719214028993741463411225948336419935666898767446215665264433136062069665231536248787941285180996126097094622067011201835203551226625221669669077187605924872591236237477923815440497938261717858183408748670522471471122840093360209311930493307111101091424644049012273192264818679327218583652832930300271027411228398720382673202342203093880841490724128428714211664381408600512173765145134852934256063334686334005017412068618782076378608792455475227026202804926121277544333075826409840341953061151748156423404129711747536818439180569031777262388881031221721144461152619410118270219813636877091476560229493827267229917804125196613788493404092893154248136252319760117124494392977277744017185579540001911585448406620132367660435510118746499543947646075701654415721973322451363325349471229628793771700536633176827020046421372195313511544237970844266940909635971907911008407706575225565833147537529852017329086041187437325854685012634976539506745247888163990012236695709102878180410934217516922997604416355070446358669071912069040523064499180653858940281796554222095279077988143484110420030754047652574857823851300312737840201385839836537976701466893398114944344304517146077302307489187272918916742573109470703626997669181817985684297150133476935726180710832998720551278059182616515504598506424722431104581889901926525357422147853937529140525176802123316716712352168700063147895118937380270548334368173380656901400221483636416054391526442302648912329263395793861304799627778259484250503824252783168820850751179586459830010127977637473597712805831138785834141210004969657773537728197383420588442693417180357147352427930517905630908126586982355041835364128495016010448062442351694186499830443398595261809614805048458203849342041654663006871839634759426911373775118210547919633451367460573252809809009373205745092162603059088265662300615311841902445973590805752313692646776296373332266499102063947600853225996142672354957208120753336074794294196644156406829010303727610523991663448757140558722434555076023759395592134679902021399996130120720483725198915390214223094548463057220988658799207146563257864972712626064118361718701542849138396425649688856155626825615239135279190407928727256908128831651552347244053242226855558554519794611495799350979785641984535426929326846502610920459351348910623158885070337719360836713235762967303456000295798092919317694107675111026206663498243196189399082478021026839757327340337620525104677071583685421744968918763324032710671987083789591960354392344227065153207100019830378964564719514101322377723962277369016813679182943374611365031575248356265576121397550479560289636137235504735788994596643470516621301106171294177376503905994278661097406793517542047750950106808710927803145821221233644491053617718469422384851430368092484005690964512443138636625874812807103629866310092961025930298980598124129655235915893235928257154397343466530339356540215802082140452068950763110338498441557257105644611369584206552736450325811134687270005338257167661549508137285629466844132979665255065347783141729025889364012786667907512755856632022435389821953795098981200153885425252600647180566746122241888588568474328969902114406316416228576778934704403497264235289700542817029635718394513868780940683356183907804802237626183430508164259579026150925185112205850217619200003377614086611715303525844365268838062169226723555990738399692996877452241301114111888580983777891931639616142721432531573019416041207138509247452795063110079304859503044046162315059882989901761871084560740068850412430723141529505171866984665287343140091012023916835121273156523118345830113534569839768424401041323671139144382101935416538924625488286607412806642202384228335719682799877354254536531722351117694867905213807911496263370847628336970772410572647018155324553051945710693383469381224228092243086527996238499161538339925149941284950722482325347007615319654317652168538583918885400234610196047837225921699539215585834308351213573978164540248750089974030366482778160408017083653297067012095855599745027630584140359152593114192887752148548007239608207298927369741884273812618669408508219674018404645613204014819331012475230894452854083543765051332053518210303045598443771289070094033576153812117829718751017821439810867701152927601114885094866382248567769559443606761970491495023927195570486041006365300698590300704550204509843021594933760421120357224284426186230064737224005281745845713521380249659882234905481159100169433699973905292695407459417173740978758854230796912945690806586826766836135612778852066331722125056476707490992680662782931155205792965191950079669233168117965930596328448104482035426087286361537995378218180033331120059029764912215181488968740233282262320241925005300931493665490777930190793027454838447701894956569326139754318201449245005676743903140689316561997431856865377267159828346537196279535038168402270108405007152971379433303690438673380523654213808096410073162999416293704247799000241300884394090948215440374383967344731026777773970719427541814996524849045455854487262748604352230170550444179279054609550012686821717543140201805682971646213752535507795119733259313115286990669169436116988191480266184649722687071502141386553341434370589809599696557841601765875889243466465135643817910402330643993141479456840631916678693075934146777355877614595389271201871940797424453945887858522580442664231476705212748619785657884354750551773678268229183277948924404742549862209973384947097288489888789335795902045226607172568434027909784985472094956797349355589035937575329137222998533365659271417437577138621232189441742753800245546058934740222671559591860617759255046892808369591170174506819730198706039609829089192311528451871793030748840572932265699242709906122130593452268790857698680250795461274107697175388333754859032878709814065324245410093696931702246395687240067923025583715300273110569786196810480108940921040908007807089433901316266267887458795999218646512850485259931177838511157349279804013600762340308287151793282257071089372721528011507543232439252062114565322359803187569764348933331901985558801677650673544798332946571400506401367442499777716928618441395423288734899843031256597250073973535045101326475438192279584061659925779036469061203996389425097565684553743510163036479671316215293154703381732704058956538587113553039854151273113943589541334444015740050376138519368017759442946551966760662448171412567589847789580842360249483068803627237992087190080708806530959148970597738671865593342643025474496963592329738398471401283971531328235728457725592508309170298388417365446927765594709880369028832608998725720613131684518884827716992770826998739523352839226057429371921548286275236392292578686670338226706023808896335349076992323213901501265994379192823943439068651841957625824045372039073798689831356284575992155218167551202235387670852337184685626143446638021855603046050744542905420015402227017942185688877788146895679852930949733286545171151446872094180387692041266226998074622053546869652210458824956325275205248744943860371416556617297868743245793828941429580396657127622541881394181624072624335869298440187574494026471427556218803336191030017185411582930335901625059639837363295573891046943034412701460804855635399595505062165393435667341736329956600029795165565517137996187770944937945423286821538004077608455500616271113783805918013747386153182736304058939491352201045881745048261919642192373853241075103149591213577318899975123583694343987582564315453470858877125024963850202925762701845809194166211739624205850103945398135192851811421446639785810069240947254723138559435147433340431443851764224007910928266535066450012821955231457310598854644427358966561210891999488799032091165553436105494049448206873489106697627707477334241886965054654779538588009751191091715981878377681731302562069958334972793401600918306191917521695788666616860494123874860880797573233902887557838357004389486752197487999165951355258628571081496712203052281972222879698211788796869191810584233276477412562797879730005177030819529361133656978299470260062534994118546233620218520267653759306440380592331981320930119225241005396221362460921143523303441273764938657066954362385411594238718410702825242483987324851812276359315548834756074132916949396440255920089658336081044959821402854763212749630983047596489978177712905294608722308693992752998395302292463197251651930576349886966233678979617061269546960017495654907956147328670471317134040826464526119604768186810376548470217369329808730773387890740876605827185557032780510080475508455357137025341417676189779334886153643599124953193008607700017980358031068347491754524755559291849610995162192961822694597141506674117791672104911887921575723071329138954187780945050710944254755721162793639160689184568113867467950889015236388949835588900441542027335151392798277755316805490687830560860333728820477975881733317397336377988187202041979309610448555925255668263454995459161294315833679866086959239262043202968981483579610493703934071540372381063018444065889652578808553297438578557491576308044461336295400459545060786240465876300756330622657249435850230333650878905210610045296768486394379362120671468253647728300778392576233959282279229584861916939443790248056026164172090392382967323000086856613267170143857907637720987167648367051926945644334855909135359584725225652980726444635307290958997157678922781314672553644014327613931168951688657983058346682715986650297673861654623839833970261307934143822164136758315178716884891160229540588837139023722030976771929035153361725513835517746192150933696328848965687758399869538732165658640388861385697853567080312529115991688838770978318828480427143039501172818882109684658898309620513655101309146784544000721811497971378263470422521012438974308513091217045167552677167478463597698438297730114573859832810760464574809228068159436212664115234176406409123198839076602107206184741249429061023366121565067950863433928380944912208222744535322652503666939460155425519877863948080878958761716077224603413324983382000824886888012977702025409177876867499350973382586899425157926469801504561802559984252693824562612996613680479978042733447778663300073241483077394491114575707644631088223909813507175276496657128592287411145341474093024161307916450000628896265323158717175853145419904914199071010349389842333457611246120326920966831030466828876976431338632509530204319696962913259632906017729413545205471440120003239321029849794885598738039064907462924653975254615926658581853296588220569192566273287422923914102649174538372328459836732799535107888731711041992832499203912909506633107580341717483101388926129853260194190502125249007832862812208636339873244093533105036446754689678374190449281051538890751962581697327727088405387228079322123467641595064866198658915716372343179175504597575477224393842723642147758640646709532840084756101934516459761249691791720364963326681109900833474572628422816650818601436372415897495026972935502478370017218330887071644011187160596705112424719916668306932251846900344057271094758805195784550408371149682462434870549476863946240241523067447123745871233860723035099727405894122699316305685528234976503491869247907631526038702042368081304934230194080653635686778970238607457979351465806750391973261187950952983793222787770201660068318744510860133811045761963218566973703166532447973702918108746032371242617843244992099430826618154818131229291934898374485602586743121275585812126039301214327246098888887037393219579684892705944248142046281810035762366983109641912816015538035865230239339251488660841131761337586808174091297940000746724520206471921494626395087834869245170886302533455252225962940503373308088577045675963397080312203691725304898680618348016946475831787935849389195102494923274219664767973647532671908205134276327704510637196476422013460063846642434841835651351792488637441704974250513118273148090860915430584873441106481279122112475100722293679573422403709511654638450937090740199785530435593061792085368633405842075490451577821047671026983884268895967107595864855036475725861786291060656375305612857219491782619440408598283033292716578374604189193946575741883965902716910056038263104924329273805398383788811296752396932803836834193049705764208758669720329937885484090071252486948387786978913992729167696245962901587779956362522800992562400525536832051539435311279610382322009308455853997253060970269484634708480060595937138584777757233421260581809582739619091220817778950306013819809665146586319341631275039566461975861203202030879817381365985113075711494502234576825304594611266856087975329193945436821235647160256162184950673291291256571447532492008718483594669277891237638345558711675652569628517816909017537136408058552446524537098959937074415622218885211902470110602095043445084252051372669487563840265786927459616906354241083677841292956677983239101696831835605884319340225998976163067101377431495765467162586591683164899469503478614873987289071453258518016659819150904871246065723394242526812630990359960567597529295144663071620749246930241586035807735014705656556932597861957677392518730755179742281390702370380398427925449441958049908213275839708433617020589658122488775697978127862458485341265430590578505594669891088171952138304711958586513638512478674901270201047763217573671088881265001334684413489995557989253957045457209204016193654804013990436496100731768926547219980571874609566421278202699698198580611973427837818056855510983106438138894456148320364142050305607906481013421756800793677072331849123374687931093456380940613648513650263506572407481161002782315599850454843538649490336746333876374953779966307962673775714827292948634994646095208462676429361531467322480358536144213273132758758599282071679789602740339691785762292731203289047989384795473605805417292155931404342967207359173993649937624675783742760583431393186936522656808905605202646734539291022587679889040011261013972187038695356329869477304629133287246394198924867446513127055950923072803230686059595707517492512919817292509757947575000145952122883073844774065356363965162194166809521605849685524691888286270692072994349979762287927420018215772657003021215050293947960527265736369743495905286512553131653784940342245708910297857014470028233916036041869176881769891532155673479549234939247893544086873958811324961300831668556809957553038964224962967223227522423651026160422118180750399363142250712388824437098044523668708399299693380939933441268705134368218204932119273882616672023222445749991632314454720315814226278010860720324809517423406433833051649755786120910393158733141437620984828628907111808530474701461164531157044271307254152165429807947691193867750740749885949422501305646172796721372398401041086044217366058051040333056117472473757349003359485975176771065734132442802588208562849324102487156341517935388051352714278087628950559688773163155151848867114760298207713245038690967723874944974842548688656352779233097796680926024640460178632876127590798332620422191898132828793019368215419138539824532220463187646255767465067816598207452248942089402354754739677657660784139039273848731264783510770115326935821346013836955271876289381252944499383806416589269822322775173890402952768531570393693495970998662163273370620669844691551980974576844240843315745280543684555755418059074839144571773319593451177943693151691769321203682770805569694501449547084871466893047520954366525205452423300529167617218687434298536388619066082046179682102261745386454432660332551548871278442662279311210172771265775154157862853992875785604439715938899757564115243152628369952151560875024081746220971376084714430783202966854865514488708618565718311620246476691571793351842945677590632684002527190109740332419383495514783147546715485030540021506780165994782906092791304293694033453172619324250659905271946866188460936796752799354751761406239069574203817755059705993344918570134870871733133826011591082441734459790968079660167914150196073897092006037768146706534462773238304918260625131847052980520899756377988690339502973083436712915255406157657738455154020394093089919354890861392857794164720089173263340730778234907315785394383131760641315358014719898773297577058472710344028255159019598861998815089583070151229437254364080468769107182008229771036294799044638781638572960008693916102759400283539734971090851974159651688629385510073095925130843754452679168364980066526499507341980093151489160889903056860181254745645877537383927453306991342248489706783583664103963505320741038896208827016136063397669528437190705965669954398803210612475841245263917299533796655969048561156731912114438356887431394942950319800411554627395480560789719607001621957687741451901965742998241358383509499003414695036353587634974228536727711870948945590807305336624387852374160501071818408580814124290646520303897259406304005545532785530943798687174911187833215526979507008583133295031194555266153900871048201545199343231631404200969924660733217372055387619106940545943224679562773337817731428677419307751794495216773713338364076065810501209803524943466245769453285738545147319840113118878355533246909530162967174858341397137663398406436598439703964178600690244868515020308534319300283002245984286808351974167125189765511157227550920675194604360025516608916521034181795246471889817581191482491568637900806160439063416331995708537346146580728351395707966645815258913707818262523783332793600018078506754830306530236247025237232158899518756214236300421176524703739943413927405775553840078344488078381456166713078824730865465337538277404935977811150965066764806951823863328484655407623061511867364755821750985465371038843661346697427596555159494152452783757915080649977475212978897527590270149061899078303224045885918766571131761137606368353737166421022315933295394298192735281079747890809931056865771489717832689381079525803007132214738169890194444563128006733802517066050879331171739373474043221388626246305213727150310265097425555124174391224622946401899976563495764695757529293940241955287632477665996378575523812405142840430237344016343535787871488962488121581809531188417693476580911627921946131887395200435936664750358995507579145459515414985945150395333234986153969550028787435730306135867912575869182329999279328294665869786038354370487434854826056532146822649764070185109870339673477418036703787616815556147827910615839862874858380376330577390534515542003267032966565408036190031093094034909743416418725792286568687552293396286480019609137244151003528244204879144500323438534877115890573724367400371387347038325398435186134843536550490844274295369459087801448935410928383021222422880738481367266526094569475541009217353456220543158792219099183320336053943682290840215349898087203963747735371756702245800423123378578862013478746644340424613602224501805456107503958470830374742819240796062115629140474485841021585568566747371767644161289744266891443108033326569877800316974301529606684280342707885844589493121233970711642930603370418248623275684559200916992020915844936379943791941675369930987555481928006912055197887108343543629641719858696091034843311310151301067622987828620100351208674394894052019293817481391080879847674723428194771123435161128793376274098921863401142724650692364973718178343767100156999476383031213973082351702492008699554167128116946340900559835344669265732844753296742425694180653143771819174249570133518841297419323964384733831552355835638044557251332455977448380967272143423776253245862158027544016025519385610168823128263384244498108367244866394603675534171366954458590955939147125411139517886025369349847004586704616377170403555852916556486369475252521423667437831300595351585782728054522013701450073288119123541268452855581534849273048594268150336462893085026921520271798626498386491714562723366039353808958103205380962556201127811066006675611970975527008897222538190318196008295930883369379998026372971607679318800510951441763947650061029564969391414328566046227669533827263497493049363337041831393398293417435619498990564257171739639947432433165542823496546050634909512525875713470190255606879885427556198264209949182838031176335866043595714592706405351752415098533728742236041123005194621092700021012775645487247959775159684718506487012307562850538918302217286103519836418706992217770530245994314223791876945915014527943909890822485786425513535873198331785891931857637814738475972294385761410958701574214748071183974724942438746209665850690062302833883971207601276853523367079499358150088259605499005510359563948990910627881637705254793563170926190632959654064549577278099827299547475123259878572675469236477049718380259033924023140045090566238834484627282558397441875478538574922688266536286060951373277901049096083974272276617234480762855501681134478994277649499664134574394252330291192311207740678637029661770734173729100192354368246803747082824811476631733409354329180999922749695168343863818680709913668994859653099429112795209368607371816034906437887439685446801929981520718097880315279623534067866109605219383872644355128484810195653581714647096074011693210584360266988526002826263625017498052646077387965204532136171727726800402261986592480312643286707889360825199124892447866128375087715013890407885886430965493121994793378435503140145095116626839229826636969861704825834947123388532959638604986138782280553074861387337363308605403865421941359247690555173670207894388774624411155413183837196401629759625710790399126133822802926311491539146861138129175106406550728628593985101390316827686616801713344239651915185254541133318475457150051067687200867087189412894995644223097314127955326141433361622598619043689221803992901837415540373251937214612310220613627078414272758849288323011531139832033445791926311322357614636820109257999209390026477182251005700723920169375001549872513025192403038089525216135710585517533575906521132263836280587515961483499397149957847556248889439200659810426331463343017529821869128883519703570898890773100029590982844327943599264721924803542513690537255475557140018619952568757976014811758746244086491003546013551723676686975404290642228084030084666359091724572395099919707237162703056936816907114823999423159587261726642801175489013732264884513625637436088506889651759121577721341466855197949133076519201888083071958636290025297825529007208769818201251790032891986730571006868309137786723897668299512348831092371689938611873189999636204158517646597881480085577141763868630114720869227878351606834744722126163688817070300204985811772754000385866091607596292493378629571866204313585951884919221244238097913818995734032582068280870144305822592014173886219857755651119226135745621428192469744812070427998484604060183320677864719464266483782404003074730848973581783673203315257322227044490892739856086857088729590982295414249010180029787940017157598123947359051211121132346992570802195105137107815062840244154325809533657399720326705915539553651153017172056648959949854185947631514873530181891829222282433541658534985357342450146536250382570394912762702818125759189811062495383015582951204929156449529816747370690149815825432558725518612934552763062511665917583944933398720972099157292305505582051470621458551972282235882213880703911070039153343637650021301426187446039164600984730354392002221826913222434399189866855359073598227630894473554542523487257207835336129907633944424505783415969746616572252951405197642406619118122417395278516894837801117306228557161283937923421820877645666472469891841621375030137321478469158375126012259538105294654100828345667084034117755445827367585075245307049741662958425974685912761838097312823128386213137174565545489992334370363272890135004931655483008899004009838286911014632803343052374064446120334783475879241523688716365849095480382458821633751156132753470534079216250054909665715648180827332231711895260763382467465832267098568340629059016896711417428198304263334785182626924329743914459456747447766891038193605358531167057316595291530527009448522211968291407048936427158664390778413339113940711852021846843212556239510329456012161802854665209352306696541323477696976896159359387355535473028870685163870629949496336785834010139225366303747542286002904927907407228020694874828207451092951768961460014833116653536540438560017582887422192016163108125350786752040715542002113617178088754094268939386753890704755441449637879130290964882201370520503408823812228080207710526068487265487636444366197713632728597151894972656476802243199661425431357176837182632766763507193409460617326233579571254359264378295515678441733420026415178606777565143386762925194918734838869288568531402628991835504139064278763988386556622992723218777361861627567758023518879436697791716771318531455097667299204249955382553656356477996862605688362140935759816245605406692632813334031144813053418924730622270228711070741724966183373044324826453935845824471397984378880838533327691460727921974319588813367116901332556037484140624199729287000772930547329203552151733240097970392219784881451621563780377208101306735336515215219834203143739587440673889938045919719222584918158643116438522985231463943635763719569436929245376276004754758304579621231808409019656308525511809104240379010583208573570263039968862189683091198196391015569980322525496688193565150236955525303912935508760640286130305698468314986258719158796987791040963274929636638202919163227760284256592054184488107378918976260964644944164671779542716949958326381539861340979928522179899235745195484163893356949512933169245566372933357477516651627207210351093821400343796581838932551174881672507695161424320212107123206269359801347268951582814838393054107553328990091603956761620678944101238056057433956587724025653509666498551646594654308265336929916149334254227725689304702417275840131739979231438580346668325098774933375822889602682247417975527735222282347318784249031090178050650996000335360156478585533771644504446601514196654446927670070719730122163235281914472499675521340209863344329188881240715699433787942056979136076779107451901955057093305831315246591521414781043644803445389055800633881733603089434432450214957938898049107198660108407942827621650013640540043944826139558536135973782950305331507894250395069310067316869916677547118801357402994826285161239230847595920801184986029531126575525009386475905695778123775081694346686783235606362354428902015987249041011083478986207724628143495654591133739598987817689373716115507320638085356392995740315657104311426677227061082518422533259216069237425586539830041032975096311319116092474223847583394046500166205402762291049001419045661319497571822236397199293285049182773301293275796788277297567209029833318397246558955330253317318728638188535455298102442832823209390813450935664734702117105878752421495495603147327414559730057467321384157612887572281693051240146073289518480746019511049006064751306714959125996066660916623954871603723538825922187757935349868462252315656077065315221757461108386060288070171780490835485272062015653769897179036905584929001722850086095358363465839678488433374520423606610640569381997103231461441397300647656977030807901177026734131526761724882670011635684029291196327706920871167586757248204124028258847912219002036740594786156146466878162004756939616189497987315564636844812602490982889221902020131432111466071979989531584157330632730274386237566560909804655028651665894257190686995699369928106383119634143480106579227035296841521020133751848221000099715908221428682288141897235359380503686056011108373153249640118546229064801037367286141828473678096892619794453324781882214329952904413278833720118411942885257512291759194401271270572265181315020724451562750746757009893896551291026924078851321935239747358360766144467486433867033238227388945680301713490010510024455281083268660409759353621227747514824527036965558723925123799033630309517476007951831930832984838729828358718015419875645131581520469791925729493835793455172492070118175651983947596575676638405220669053508159559087793761744396228826108200817023328470160724847163303859074065577820768787381203223733978957820881047909834269750858882496427482494659948540075203009931323885182029703829015728936079423223401006824953088689863894740980445184937831994280596367252767738429871143246916875758007410515175040076909595711441614902173396481015288004791968516499318764571838024831315416909797845046644582126680396917440480186731172682952894934668116987826218443546005497746752527516719368294463716575418523068063709552230740893982503694251292232105393584677963272290564282819831033200802533611769924296538608913483702921978948878261950623493386990765044341739797982820959898467653996650361457863161445998490698121541253977929511821891855534759117854327966720526729479006899130985373657172091832334766047547626699225666929206989405648801155516228576735813357613932872584860722415041736670077154026486687403632410172498841669010532554317558713623565115137655748831848856060907455600185306978250169395405316873796699959974457917450106901555337111628141791973870969816648232122357324156743120280128875603298665589379005236509267976434674714409892955435425002742117602507214200293849741264591054337094873232041225695318364035684553265974580630498114163400816775692484233789128112200341350159455636446322380013723066053307941314914626390937261406219855994421914234197483213183817519620408895250153115824039762399529838461149347745007192207238871075252329574077860543924294217343360046775078516368344103574349746472243182282049892130172498631984965286566630044323589143000943169344442693330757463275315413777922160574481184212550394910774667576692921419653179236426688045027662921696596076526357825406155584370121943508578817934818860293363512397574418379029581989163395298330312616378332177424736654218274199798855411220931470508079848503548040176708002112595397227443462229277837001438695709294986615740079333090461506064759730027180168443330980027266622879737869995756599273220926953414408362978049972126197698078114583898150946974809254278716891740537198847175038416853060674749385064063568408459401505629424419944068644797100839255620437114110123073344529748676058506597144870498322445982951470262649638108877026767195125762797733597119204942334214716117106992542312643095151077803129782309870876054157214063916246061949075614469116292666771794393878435914023280397212282270094021680191586208229199149190628903730451287417012393223502728922893661338149947318185729234385977254697997260919611995936834095244591607663762895404121036812128071695130774380442402842477118104602263816887341981824535330363926616502333362278498746700029168616166578298172464008138387604476877725138543543669922840979032178358792036844014903449560017413367965554291863592887023867573641185534776801112512569808698661723871730595444330547442670647315401019157533670331183912454718819665745651508988647072117926265751625636251273119832865928148666544521336610257963619142496920277117152888906987971365108564044462980527901008013820225237940134432210336863941358316152491148837830609516720290396390213849791323458498542674873139715400548311558897560807513924180442387295972973900934010682602665216313713350738814380293251403626457719109959591310262010303375024356800514665685944482061308075536947769141128589060849720064934068363722354698107066474122912115566162522887061941416117367363650631478105390261573070386514801014812117361798078438971831100118564031593640329963851706114905540400038727904886916658518999978917349575939985139204261901189109963181044010196650835743932762826269546573202770517596771674965081558978280745556476388521292197625371592160793805883508204183751827545976608652711332203033034513466426964467527792366359076373231578349483722995161367462897448921200348499852195236656146591233606014924264564104031051084618003344471652496296681794614995206197488753865537379206851115161477060564447766816850797686927665614652061889129586865181941079526255694431295291272954260700892992500023787823795164613071855396569588951441642794117319629498749162892870458577167748559715482257381007952610521721310178316751591834882581725437092261827513821878914376641630457009546064935468536831600642881899711669580638654737897565967428567005855263480893989176608368092500297017236404126327055010365778807389452516467913627623801494891680487664367021171263345421808093027184580624808974987388933879339272841791072242699208080556419114863595042676097215642140393963006145181667327660795203146636524218534458824657148188917875257495245020171370904220465988963084153781016285941541904393373979674409748327616225760818121111841147696713156480534078347899831010592569048199346052781793077708089363036535818054303027834654498088479551918686108207241089812509904477990399955253955108318093974516853581378927798581495094816744421055623206050233078781592115300238545144439466347206216899161883706365203594238803094323373641591468913501268586572197869216804636425536495968083351716871472970973324513690888633540866002838907285967186515882631567783884926487564681802038896838763375493821286899677263816954958198436144286522026619081577869741707161033157020389094586106408185355664374527384982522521439762973186722110823573967599427277767625677219798270988232677464012633955991782827111349918881812257049060604480939845239107729238657555766428581276274922371827010299429128369468697763154196368128181166406754194691020334259776912384780007210297341459636710637582796243465424714051129247265919065314426734367237065645518878288364002550318711003479940488086026094418576511526468429995832824269055432980599166062723956886863590279521854100861035580464052231016548606080522228783406709919424524677943045725728613263093127579097600176186561290096236075711979551989838660512320083961013201163062944485237704351547142036230187770871985926378650040637888299907533907392498885334372034047143681562085635433697051829904243669039947964227449153844914606979445457717106784207400896912360934287248588376719426400091993153301456240418642006485896829381078916104550029252899717804610754838483184415834596167009094882359835312452014714489663747691019152306921380143885730499715905095903654697738112829210625432517011237671529091535452590918151609851356633080303176474636846390084939836912537461714340289645818639480218894488424233764477486272994546362086064023249747118417244327783870756170864087164592930011978269279313532151181422697040605462332767661583815069217034035670959491499513874460393084562953995145259659398324487659815372601658661985345060282656548181031431413807449010556995003378346903383460318405412500985663193429927246439110946132518509354370713355358362086233313604373606336247991528756431721423367880083805474772728996362478702770502978082487936331513186650309533702709337937710799919269005668419934683821356579096875253576496346762451274711958962687344076036854993106992096714664079569424014808372873586575808245795888175041823483970130845543228158997666730090270346115287074478192458470777440039941882889948527367242693353581339174221159572977540057120320559985696663559646495851484286112318208819106276239718671071871031777361197087061184948978870036861497266065554400960415600748899663178166383217795479557868555645798987768629584197711671981689059230215851905657184915552167716863686489796510004149531197884095910770272008565238371303541832302048796306853161652876804180406199929363772734018821181130979134704058103696487365265812083286538078662066925948807388213497370069815390172131724627804883298263355080055696372266211699958823272007050494005082461497242645894348379990161059177150829636512600585168148462545398258881211965448099516851827029706837659222121787824862223016784406953945035607532729395760084809357076443904342386127555425573565288552122495187881058348332248424915149306080969497063534988305801204150065533638827334963855690095790765855927559245473346081015353281006785784174911754349175547966536694054064562952306941889281386704361292535591055328768568935061401015356288118845103272701131079544597049709836929273992758637910780794805422969242973689691587157781167849947847528881036061560508508913771457881175639123258252902184134885125987869639900157488216515940301116587892270003686937628471312959139228635187855025450243071247294544584848740672374791159915077421495530814782372122656233547450967238346807647013201767293842951657204173054099523594450300759352621348952390988771901867847788802500935161171777430930763508638096580105783717157684480771970887667013268420854925074362077907557688137971247371681857883904199524619169422491666097503090528542792899623982434313837717928110129445930949404512980118276202483579185540719174030452654195367182033657033105720129835504875661018421841386832623781371841995009010245280687526283431582343816818169804244285503485844005090520844496581582187153927422191094799401449487970248328903008902921635352432688840214726585145638836806105527908525607792202041007447440558178563922021480287076075986070166720035193721141522019241827173873075216252483955212666318365012329897232442165329297128240359997785844268760419015047916426044156814899952445828100237523630635995719886896338606113694670592119763891869671817939120264198987952974642391720639525446085847991328852514365663971163129225773447148698768102227264394427798418851136297422578752079152762425100128496008563333349034774713659683097989594375288635240827069842689626255509699075445026796661695571374724736459588040142171258227370303825825104089402975652862473538805864654324046568189707819901490381514347476412764244743892950274107561197341580119698876826738192326635396725924733881223387018229404039633553468038455962985721034848523116167934076072796975578070584959098277511510538623361176221297890413640816040943269585890837210076255374008372224015956554169905089734772250330461278859075711731686853910784705297964613290500570539736239635719007162782258245365392075159607190899459383540128339416069903551036325557426455021492582575205484010525864898669572156936195391532298762718314142684171183708356359776253176734316822301786412767723208294434751386983833285485429911573307301790871499140607588620980241070528165604294234556638139192601954870848859687887448467499616780115265242599921257216061731972552011110045570884233274087579629219024758181020062208456585186511589640335429100104196109215119181708107933963750065103868668917889197293630366996239653285585781577692953409977829188269932710116712007708692057523874301016371171572842357810903724959111542474256877632156280756125234623194658146735131870858859781650318966095041010560308833541231678676635658447903395436616823507027616967464266928165152241304662210963419768894405716858099322368596609927474645278688485039050046205563545508688876005347491554540637773409688765583418945624421189483702173553850910755497766921776032682619391572554553752239146800498392434396062722068056561522433291977367921336940610181180569802399968068021377469684976626393748186788749362096085465848226466686427445944240813649480666621912086780690180196465878621448644328844816561540402321241013356055035450386478706331551276798171568253840060770988634570285504608144724907322999932157044856833558962898786658498388636928460759180824271759209512990602054079003153559372458425518089594663652946453873099891602954000432556782238368132053806190310124028817297378354504011408064151226014916167212359575868151660511676477206860131654511675901839664298906507016604125958356866974585265554897628051907513701634471527282369405913395435103283761945076428083126466198202297795051956429884754419314006506850719546989355504183324238030960332137955492473939767431622397784579152503901214834081730394133538414551561657181444919934033260896221373729448077627022425136088069663432484167719769011170775351533442959740288853264643022613108566397296605593733191064741344258840867348365628814387845035377620341094887713951254465417258733234314395792285881151151393832727750575783328277640003302281987537286154679125517923935750515297772407690525267645986778705097933336987504449632081006833486833574215707556730641361494332137174989664059287874815941068027466240814830645412779197709627189260631126145854922820974839084147083504813396037478903982333520276594522863588704628461374733191776101404817036932576478595107014850815072667286641673975753471223292424390267294594219772271598431272112432828785850227238260473343787176749756576776250162851020276736320881576729744793401622154588470116592733722722527690799087579589871690009255374381785831676822681614225154198874809343770614024761146806514076442213313694296327579436648036679961142451462935820213298508778249813302258960843597247138698294355092820713136188723352802415480613881296153770503185155218553402400118901106002313855424375728349737303876962976928585612509551521071967163112838545581745733629411025049860366165892620229917343664035190653772538854471210032748374374241465141452035829290682484846574617130124103625269621792182851807770714542686478175093773044115348058960928099172834844347760239443544112006520718421270656668876074118043290945095305317111271205430949297098457611169815569968318809283669804389680340065078560595757869327353228518182927586902479493695342477914710918985244564910428771425867652272173443990410209202976299048643395137192712044031739627231970230336228246257091053761188640275622719470609372152047238828054091958240074331366835674517208756396909940893846353679620868780442150790180920896635296697058860319039591096220241649404314531721961205980740554600190109194491973971828855913973157105641163297455640870121396912764913035083238351350458111744344435287530178386066740081657839866109699496374044418480062318489080259902361518725305732798496582875973184098557782593832521401149394208933767812901993446964415627825851240744517050749018854215555634106060900468437729683377373182156614956046939491384834252870943717136342540399925765643109315805412521216646742451952094147443776745689529464705563634968456966644393011449612339920894786469330310670091975536281882910833939783328275634420082792624540667557900420614563446300851114618674565505467402426914075384213526138170333020443704460819669104747013611619084491336353241184765591982869214679673149359921777193598177424832218306639375091504104073172496490200474793111900793177734283280238899619754515377545963057197448999302330557048131140008209053588180664212084149284176245124809954449571685300579123462886823173471923119390525771741015236087568057142311613987165413999711704379666626235671935255770687477555555017592923404144923009763449672780763994621453028930189211802244294644828324081996999599309032439403337494527002102011506735098984713242754106648966596742410134141293885224238754728995251293946214597762187332490122070251958163293982802295957385913584450205611816596509144806737270864817407610860500974271748532774315883231794865821931239923624283377244476545220624187546745496477074415524080182812848822523033187231668132152649922723918278137682672626459986803562132193587201371117712705462149244664683404614771476112687770539398182545776467801180372781479005935910272316945333916567421715410965194776422266383597495999705858562740117438531979937823415724908650513165952370299829755799367337359376102834606060439985874192819844312964665806974546354735901044053512814605311643430817151678087852052117309705554605910324065961020900836433757779327038235169300142705225982778176379390198916005323010902642110547362042764002670837521070929771546629206344609916746858524041868961860024599461098268436052786731203289572355427731966737093609129894537760508577673003781823648749512881485204245227380081902125804438939649123048454416845974146696071574228346989729398807909015525740400894824321052778698817877542206259776795569925812130531422680054109274800347091911012948404935520794296796130958869679984631385821334113874196176200410717009626776718842718031403400030197816228854063098224916199901040098215712581023452182355261380463695552759225452213791159041279521545991914558924711719357117906025740568053554917299424310498037507793561787501352163517457670792440675435719820192498859226388696318056817099880434851840213441203586593757784606771875651876259033999969710506048220377149181618688199969110702088064571111752027071972565789753113658844530565303320402242371326778770564053895050430595486010459430328252614645294094105162114989319918114471452023136356735145034671826595478753284810572049194768022684692773965688521077050822402287583512440560690105665509537957794006420577231822365527195749365145154681543366625534648775522547144512177128926576494942179417674046206486593376530949383825245821382888025870802464375753991857089807497930967407987629770306571234284267189821371644649709371962438693750889906114636268959477573934738385281853444425524571666194915573986668123105143568432218209359986558126253766069725464245230782257174210668722812417452894860095318265163992504025109981797665293689536323380920104769208452099316765189620806940584718892032105827580743447370068717730371288736607682851791861409422145488855415427165612032237431703936396188864330745626376289104701324901112914599604189607321776678159176311800757192026394205785186005184326068858159458160864730842685427732148837989179219857505245689738967416432067009190621839951400776290617493054133239218311170230402447779979450764845767359972994291234472215025991393384914699063077395526623866509363181579314279918280493777997550887181570342164404737634419421335292196974434202466567173661974418363387242188626566747984067297807658492059699301718925005068262044297323170573029030677233601093938300366528869389339885997966719268777526452836520969719633793714234347306536335012080050089393878795115117209707378198524663753883385468763329689859522226504763953710437432528304062482779001021265402554587335972655652047654660152021611846883629176031101854470398932024787359350709286335123135151075895124933874555367878789280325101833077094777379133910798915833282074462852305977466308981256583920587003894559211125281850617519798853493094478782762092075414821820129318854136904315634587539355181181896195038802735955217507139106538104805220828298725258532107267854065814741703329274203691698118179630363572740997322636478008596072875762526862608564511284652760766706246830295146215277857062023372619471687491859514252751693245912714055179671445820780715393053797691421167312231860709481767444246992401601431138852535630062984984379392712255282655307512356977508973387627774366650087478605646030929931890187161727381878017371607983704360813201051412030485545792411371327464343864200428590882036599115078705499873966904061809409344980554030838887008933834887651846841331424320371802572381888164854020548976700198785315945667733091864386799831674661814233767149810539403196320832387039812336746597312699885331174051769393691527100902932505054978194236987015848216607940931298293740489703926574672696263752300891967924258060900964880636620471949904090290024114129522533391135827414637662439969242332719353046550809742050964209676517388468232497383111283233284822014712296342795210459807769577544763950346466849704582767987164980238795782451738245130127414017117426271536561140662089740946920943555329297351099062482763361128117724570221351655134554323161847106728510443203395013169090692250245004534895648434533618994617904874018675267015969811112865544652412801171403611564909454781982619820602751534669194294194467807859903789166991322815769604763554951453665476159414082866740158157650443246188986816262023971092490070878293255460316830203578667631790262465909422183027180220869033494345874768464492400787788816969606087144128851572217741621165678781198070308005994459338010521206302021470420467408413500623939802713649968140508136883231846879181560089269665502636903902718381855909895121812834963102104659059580440921777859280562051897495479075182537946934196630688694647213239853550114243544657613140575952078945957860284511219209399260676568463703249034860944244346924329735471209773414294152889512225620389393146782951756594699061699979389051011400030529941116282656875715589064015302081078190819421411900125464419811001262256597627518348513651269179107195612314841000935920178120743488150798509646389812647136657431143274711078957288149163399797089036198802379088252348053959573134710912908161448734995333352010950618105887997920497380519021690988392673819204668439277772197129046456263351991181458210765143521233773130218800101952585278081945107070292209003696822644403268261088540730414175345171443142434305125317612683300723050438966242767809547741527632699316193749142113749326197248236171960318480858710635837631538189622082915986830839442842544023294280646212422018470355513717452115653864120004912094835372857123009899084324375164436469084356642443633239803785645430884137506504547540084844563735788198723261157512060219119706132636535525191460932619916861239869603786818105382619380949251589592764733480552580437478127469744596580791918906432593411488146187068380933014972116421729513068953590275334247977320155774610590139339345025385427274640618156870091831701077283078434444678305942078720535790047590345108574726596008737215075911375526834222746857008393225308302358825553646780159769822399095011583179391183741216824266077358405691387685711379147582700497581913974345099445586406558156448061506680386515314542814020026955861613793210025647080628091794868722469111303098717024824904010787090450397679931912117940120908233423607770550121230573575997130894244507382942313300691304252856973681835938609461195605386641339033882266296805369539209170939737945075630011103821773216838424986005673155419296368622995974026649445274867059981163090062935673189493178372180579020462327166679643784853762861137011061229011907511135544252271355470231144139574154119856789049440118872625501107691653638755507462435953897196704699928931857647359180475724988674918452463444608640528670611624277762304673357714548962267468107464894917340808466863599591266217874849825914092917074074207720663674279153099655868886488817970494326831905559072436824244590356777722919982447759426551979990047945964579026087415642165277568726641223014765084584019532951559684125397840178937803125860584149150786993170482418242977370417322605779306769969949717200947836846378966216204842083738919725093093366005851187838722770950654565809764719980046172303812744907552679976398925650071135008937028665847693374517386820370277247254422181758021775235610284224700852770111718405843183835442572132908765198289401502552127857657014477687345416186632661557842051774243097737033367080118689511315547002716852240494448079304376040914519774585560058103459605849218210649554037616190187305117790322974123697457144924717740731331959516579828255774475141713164179700098701457808488660760215898499919333187215827405127400216145168735691670992237305612548079277872912117871228484659073667782097622635720332925477042777141750894023640852154394295855854324020795396800036190928699373738390707549340523201441758024267930248374946745593529150876446287990964699074267428685645092987564420190681699847119193402383317293004561389910175352573546428005632445551600477723380523171259768068682595874534149865932037059404702218056887863176994440742710408775937410775480836758487296931649712856944994338036800849639773976901926195150195808967622210067528180734525462036439151926918643613164064897126677958339053124442216282105144598249695737774286470768450939846252896067994657786332520024755410511995634521422825367385696560606343722799761172431271143499294346206193156531989038180131544489800542097691582927909060292110951612439710571131526008010151222897884221263893381638207615496697789896961206860249947178966737578833129157019252699089006414063175659333864373978426210199207298985795939216800955695320399281314701609915108340222588556206679493707641959410512162388838321085177211886649479975490276651295065425018236369080028743550602910130045661504372604175065776254750384424174499530588241547344571158624645981775383020702218196416920971586562970407532219499876584394302357198019669471616474028979342197002084706333059998538144242863531583703367698769128062799875954226622358699695657508428789676184789384823790224738045468255039263557545246713750716602389276570336857044715961483066399855633367803741583405961102830490430451006210724060906024414772972263276078240690941283680182069826696165348781248894237010679690772881344429203800884688135877159161207431846861603667193915166629761090254994794067598031637353030454344901495612552098462150516117323655235064178866238025066007247742072911513594393996053414523642046145755029881064346319084358471091485136400792025560671474821950042233397187728919684789670197132626394462708455407952797270059967345768248818209209860586019474423613608086426593189003399482767077098990276954828914659912047477744603689794637233847335758308326870056689515283574702566176514806953336222736198852411920962804685118778467643533279857456551883567295411223486393545339631900490071539496364512415819926087019936200089875533454371073330497664195326847201591313827052570665850647636389233406305351315611635624102437701910754109121103958314637336699446277389290445996345895584712783385556441942264894738338863581313444596873732879600441388026782438301031302009921366674447241156713023494815764160164289088307251843340680347841585974343412666505029744445102180833802645577454218563279739380883978980310018950376632201289092026570947098524350526821329027962030938070070154842935439150358820911923758752821024558438704528660041638348259782758040830351850969025893035055558987587577239869459905831902707418462588182865143028718636299922392916747008491670410585570952297369594918544297243242023381378122095267895270338942653993289207416139128968357251680942002123853851328450404580026285788722581178265280781211962297957741819609422605448856739702617191564851836356379606888155154212714092793975851860513291798610562905888473287244404190969674374649812062524862618404949281191018259532742254209674031874537253435004247415902333282062086770845219072580932277755286648289898947280928949700542325818974024948676877077929702380926995484294900889192058202834501933416293706303562143994589688105018570735917308214257689912263775468486256925439150531426522501429514213490342531260249392654741430298797591523639288738479212179554539228215620398249531249891731032936163291473556779659947384572944724545708161035641648181097768676807128879362658010099834542554033323001083585189731541588623300974460701636634925730249072768798204106777740345246465124151222818168596704557571697350236665074101575563620771735358543479425251276403989955740644711502526100817900568717608223183129037291790543962741663357856700086231510122165982732578685878641274094124563555685948639280119658028940213916702479968739403099277398267139210090743668192091672293792680303114080810697613417623847047174854551729513994595717502855010869390460541385248148546705961179984846270930580230151243256790901933033646807922215998505561924578340821003672399286164528491378667132987146426670493476957839876145984300026681268746661179561124722340818369906597632802790528583802364957672466496495061987140371590635009799543891405085838311379410732763846379110490677859321999361208707296112926026718778425835296495939825960411512132579673449318685621978048239062396063533721272838754684840253289879007415921716889294064170393819183353630626826600765489629892954228740891879889366807958799329605797668874805423413392611112165177559005084230648745420248616265117525946752663262872942527199743555893450945054269684632447660199882017902511582667716473427609510442199027134144102174667195883177658787634498758489753614799338682868736536028301832328994554573122897391367397225329075660675503564157059834394509609734455522390819918768394249107003119617345994038476515924380308403542627608956443920747934376206207384608116074947259924954481411932799833819642665477490571421823382153124363573302858726627892084492409622326658292846302782755555040009738079696970633484758370625166357924661146339154583851900071064428805202255182433552872488066125013066783806781440081032891719183522218197437030021238822229445478084760727674464375655401383257379416533000586226852119025264080058139742013850344021357805656063416094580198326231508512528913998959873515045310830769243422698777301058467937267257874972077728772664651008535742532635107582898122216672327935971902310858578030470026710001465759635270271960490365742591903796250579656563954566654530240602057718461259978686646504076792787301397751192998308816820570654988418540827810406589290526263801523687186846509494640911549082099223302006811352499487100161793499038131386178070127659603073709269938280859984698815870951166175232311215777307932472345305625449226469875888213297288356191595689742648581051496040378259283300037085275414949668929009929113183515229380444374747694845591549853198529146502395581552422334731667614721487971266630083700380879772961368107219347316813379539015626194887546022826322840529694937016159990982659738928317354784088521155810738738290942048080421264955117581064441385134441386660257337880963914686167057461150607714168524484462765897422268376937107433230225981870726522773751956426824671978075383392835249847393358631863802332979614429765715551758770747539189235271907505163591290635240729751138365832189619868899544069255528404779130172228558384737678603000680529548776751480192529767879259068613601542948610972083855067738035533954561927073798957018040602933693609179865690212612914685813564244586897919442687428770183669074546164340792247106958127853327232610517305491410808484159704362004870505365566846373813579798459859654932607311266601231784795933138676059328533407081586804386376664444873805770906417308370294032288489759057742996202332217909586141361594569054233650997326059083760823046625571124614556690141342946354747668680388841892695878183494769466678012454097613175792366188786115995703952573165449421731463422197951345261332428973933585395747598095822128698409087120953303660221713187238136662428651573071337046550199307143637132398635004299564304222248434422937633483233018082677676175976683723452385686719271994594983204643728230533522693983697123394034898042880846184863738139699153625417930370043680957947503923955940467252602643406455793967249488874588610941618838105261157552996283707527732151119049221717464624312898186925426317743104609425646314754977792144032713293775156558733593896047618952935076668943114351310299653419243753404653593343213293163468509835610715523690204941838837370429396821286269732567216935979766601182814862012127221856522816134320392646253591774819542536391457727986426281195897321089684589326891614884960199408129087743964468534694988501388075021203790852016400686748786062129947138830125525109222098968699685721019777022107087158388580774184393085076097316496286914280743637786335871657187798346972737090728859515937764977876768333659730975125524261155030425682492745824517810639366232953691151895046320008251773884320593819690554772487804680326889809431109141450622191632405403256146652959875803184218281204596734115331206907960953817724779771488608274116781420448585661279506050250099653027853627360750160442058743085638955214966396261059279618818829056996377763035096065125887824370541185818089798906386586964165908272912402893863638980008572690161877907821461423351496195696867158863616341885230503073391183535757117464120496871995348652023359890897530105639446745040445826209325068828184194813228903953712271017223223897738946673628823342469644060813582813812357893984316578541826700661950280034069018320899447640387529688075376164755526491158120731090491050139363838768640079429199775070491525974776836079227236025481243741665452306273276521238341734218504823954044374961350469933024126577574646736547654470924231755459253590993495920160398770353381053211396695162651752572835978707289180348696545787532999103326011552904612613426052158509358055400902041553680487617668772786724951252622498332335398163302389126181177212640266058034577613442924502985944529433620497476126792870804747751781638771901947893944827606035879718326779150777772618705200270703789506579912190833390964262106206082945599433260536431930570395866765737625139702707091506420694131169875211507231614077344822567372038221226020086065031378205381235989429333009909559941242122110060917010156054478738451793881215992899549841227303894116004041357836616449012569795385165632566801843264496354473899661072786845400639167901046862841138966590415124566932892979880103751279986008188910741366866760122912498065706296528797430272073145685564005670946634439221806486723541952546437408022061957371012765380837118899271403550987160340093919852649844139052310862391765650891805135896904287099822239832423504464988350378982869814092547697834954087887601660393710522541828703122553462452007449163584155239845651475649302996564020842376418560269130596527717405417541999120040204910017403059743771058936353750142889941171349918940193455494577869760382168850225645067878813149188126148928281360324517123841294564151241979368852865833901893423291230506890040478007298425884215097868857180288277356288426436642394887206717493334165484792552021240396373386403710683715164597379072269856218298457054817805498391821188743316910133393542480729623460556004579698889647306310459333234280743308913268668950524426033620414018329606975841837715521500825681250102228059743364113979135476621827098928190365218102326064138889522895332449966865524070728421649893882103320800526445541707479969224560811421504233022791909840728778114603813694374641216243768912226646837641873530875201996086734979286882698360584134813831471845365346988370550883506764031486033884908629502457165799261704856296313811229968183426142361390815621972305631896496928596680842212436722593215796691756023338617111589038446635725753686145814442396065268078364230887079132167807612625242123565905636030381815568688052556349906014005128832819215063617552935444921089154274561905998405978194715534743268083327154823330187899117483031373757947352261900564738255740495261598615956203621675184782717972139620187787008658466453570049854103422420971310991924499765058381935257261509180403312998362924433852293809750821277655900527678458837483099089309642886286568927939576222402625976478815745540868618616529650024847173805538276564408545784134806010615060903728693374833477811494005206173477735909532623754928868358866324081425460510106694528786768811837855454164159875062087999216335873244570851163895517189909157446769512645863513735326971340964301132499029214859006567933327940213592443796468216824722651462314300898438132231660590831532437341788266127330371128465368414836601424396795476626358137816733784804403387271685456729308494050096047599279991783036789690126857558825989407109935041605915616298825086962936747761698111797243777041471547377285584312948276994613885761187746016628730297011982580655341201361953701177641194072923981087959297308297362520703545028887262849104842410188697675265269971565690914159161354413175555140254249158731441165824075809067863812126515746134382352159458089207843736767497501805567140423135899881283749373001461821291075491279073217694635003734017158462101547965204162288897532656140991876376709216223945804306639881664304742912520082889442723740437449338890183341172679919206979583792566149182641223208055903291405094866482793250649634723354762775845059977715905831814116271902313588495404579736510058882277592403250412382115472992565280275407325041591751776258253231264409954138428429934192445581055794202969546383672258466885204512197030775871162747551624601173952275129182404117955848292646082217233925963219679767632382939560527586319913794618937377268957178257992614023954717038698061695153783391396557423405738361493339884722237721915748163030354126400839804955132320690872611053663823090770546367893835429319905420369108594695514114506472203099884880434067611974223321850831895967714596878996415903855882133788378128673321399285966289446586756423345213496628180235030604032422169517346966419388817136320418635020864859374007007924092668329299950391261126048803595892225476805515858670932354850887307612301741647798911317537951292561311937045635676340631783283183791132170777592820176749644685935515662062233736925234625036870741199128908285490354052710723315137296408459125665355165388618651469564829932923826591193010448129232927081699654975345756327521700326607004675775838396299430417957541357371265131860904780961295348228047331011519617640247033906809240914862258567961592553969681646187552229669528156764346829451102799855243795371629780448325853417171261696847195130443421205382085889625825211302443428438960545210385874983888378020462823937902245684620506836994017810654305423378299287553738920862564982666885515183116069650062073007766606646740712578035526100949523613303003019510366703197978737164399601008673839816950612112551694186682767017204867939863983340511294090772305847748401368936510928813492158389262149806954576875294023857829203605717789375122154880126369775696139351366828795994764839318568480705443729328786193377873091648925576204570066597449999721139994538566183063078552672579273631194605932693712588673148409085693207074095700429397539797533223530805423554880685338968913759894436741802548896344597207481393913949553672423999393770988839506519048152411991788194444361327527409445047672048355128470242511988223467931063131558345430240599654464735727214272364429979975845074069983780979200634858160981953847329466326517681909776013128535962411938434755941983097332964021377866052542003426519500323529308225555302533950288581197017164146742951611812961700598561294293054051092310783799501738885356516365703029285804564198970174488370515990429705344421455944219337722844728684294697417582903759218644808592365670975413073834814712249576272323829028808996216240467140226151604069512626023413821536174585113161502994752072197215856825459813512524556715638703740067224017553755656810391511798364315028331499744742815954217202658301630523463502746476670071089210099465478829097548788058514930554811265137454011764418645990841319261913706869629822953026871738225279999613045539889894654537077419068547041449120722070889521979282278890088496239579596063979596578966248216469444902354774979951922459015373854040698790568655104771235432520369796184611378892037098367317527108886360172691464828225127125480674382327631933744230018481811690482212315318023465358258135791871088184251876124636195575218211020233192394844978729272374493739084656866012523406407105595269519792681661783736430942725502865843225520245149837373668062325903321900059136762423245619966753916310241503654590955252827366050641142047811122263735884736795920108560461377154586454085500524571886582167705447629207035874948425716944395125264809070795597710776656720237336780838878689990966899681778565247733366805253116525286782840259972956119090550195321955828826321590729148029390099540058391570711550777123980935180684590323627656423229080873160940621638645492310589569065551486841146293888477803162697746219300500520813594175264349565680771350811584184633323545089043474576729721505149914060867649771181134917340308135755475425670737578278050156308450505429014040587016686436545760095846936647623433920325910298219998726798231404625045996881234768440982279799577776546977178478527493050195528420139282106086297000398736223379297102005924032522308136450421385803473819359178374896917559834875069910883295594479911802676131467016477544319656774636347136948115280705779973302959651415299508433207278241509714672176236689353441157984339583304393899302533467122840356260093629197492242470330262087805645856760758738236149035940297273478056104361439678781898301308104724157294245863833125484252344030753125239194303034484661492850130693377919584522236841922988054834702858574615479371390739628712642322624521744757230287075996230954102327913625496419928688798625638334472194612659176631546976523012155738768279072747005549730631469235500434702349066619952256893777882635870972604545008751486179835992307599633238224244831457471280687079162872119891823839762988927471225283836714426144010155758673153414136021619957511363892205446457163169171061839247503228010453709189045106908391627267323770806752158702300172169164457390778194566294527641159870539614522497395210412489660284253390316571154565999439994444204509757956358233065277620567221331829340504931515550862905952545947619990787099619811566605040890433615143744781074963844628890098039664556821443934674902044956653457423237610003066129969090263787058234918171670289435391538149213315859850604956065688961049011485403748597998456016359205500242020719581332821407919432536896584827106769676592441916758957474500908714191105302394831225342935735820762270394832780108730371543558253040492098999734159711173605225904934314723228417257111651782020994059625197857388111015034865948682361549691430922150703665707814832899970294322781449537783685977028222453063895026919313329497500576059710647461806369038849076078339656674557397382843685174017791902792274386225343200460307532255966930356322682054565084291651029778588744020166872908556409858642382087043842547178765435189276154473080594019661020540526085820695621560741386843087689571396598983052125182734561680976960412779436884224959952411672213124200890555615332425232077185585634645986482903089172470625775341328084504427329616414018903111648711171102341076419845288201275243043354787144326796233569060669387273127729918627540047557536301548653402587636060026366775466065505593328842368002631476142326180631427311155513076702343820126750873719658775433728963634129812035661383285850402122270703236427379057913427074115404901343620109488025101657475035272804432685288458228978701060761091240799250473322691286552998284819493584714230605494346688450176924681371682881659974248115621440693062496595235423707925112771444355453579986194671799265315706459831805850240677035733570939406364336473875316287697171414625674459738771427743264485758106581174981970681606658846702126197455505412335403168455850348492027071860706805433826469879861903467355679685422517931871232110159372596733329577633533408044863996399837611393890757185238702717249776800502772458791418856997446010996715509507354597400487361482815776837567354700332434803083246960045672576243347212901837151210205059376506938120989145972971837188051577503193314050020389657726735488780405124149920625557296362062060153442529240143354563160383093901415529793606769279916583683672116613717133085868889909929213676645380828029737132818059096622154462275166432619154990489632498644596861456930231433667593078701665055616372631737971941204579207400174566384283408237969708463240092693908860931175418383806441583010772322033821164610439335501547288234142863128000474795575839308125456687051286743931435051069186746366671134854201220999944318505170722897581181688627053146889374829651084762432534550568716426333524893881097271664412977827045876732499171479521414369320110811832679925476923958573749965183857446768364838659585141220485507071902600105439906684595298568373842565393002159268401007175372468047724175553911131938305344809223595563688432647005087552237226049887583904817294198891124406042665908456696818014137881522526327904103581855016894463902950661066798375017746315795054380984646626480894152528397110116528472366851856215123302124357519712984514463594997763358767058424521765544755135490196034853201360959138247349357259451357625344046713795744944423904507849444484249389265311964300448701825148827292882924093120184636832232281733639719631059852981310617091863271737249364225826235408170404876667195685482431281549034667366905582612703320565075092890070571390447437857864866338797442307849349975900023275294356329797346213431152210417083007796786972907240121648842798512430433045380784508158140128020224099426901250038318468713086453913947548186884616982298181197276335616310627458249005134752762596562942801599940843488717806812568182548582207086004175786394793340271556462599379648691616471141405248814572775613460360355880186297108562728228384811185863749976121092833006820129725246550955617823391505035364347443039769852007558910059938908039675663579347589460482260422701265524050725786240015481307832289151212130086858440134157467986219705753741768773760297684249177241662213777585136785792390984796248085823656234080643222385629413449171864883935155462437074037253786920084698419085949264665161382142199440063408509027350957074618761905563446615204656045846712133847868770487869883380634272045206179536614247223045858030185382316241787675061147592520525453193664490669878091046475215122769037685524719428893455335374252944932204298360800544768447248175972697475463045770146682852478035929855721993762917788502117212522468610921847356034777948089919887077799999791092690460119748236053604449624068033672890200740612903215183199703454660933654972585223618871131338794631233117617386265810219123807512667936439101313951374396886498434411108361730946126940271479291534530077529951717348260471491891012249474370595293344040473860235777213362090071729751472646941212636475051496802709679675748745416472394922029671012895108033295771024230020148502428293606147558460528022972379960483426995309483631438563343708788740564220044956396379592118606187334128795538632134486840516298828927158162687584537488870400672033615856005762602034360971717099498631094425050212624675034601477363242766984242509314228776183321768478192711348117400039046779369442678832715515717568305096985843873141272261291917869689225453959699246895737698618007195374665495708531493591922688458910217106982131363179375441762042326870931858107442549912805373488263666495453255016332668509509113780669916015553252245864192843016057162003330485918591113220720983301840120862273242818025883179862505339740262331886882609953298522445877087143935855238381164173635449007039778138884513826031615162658365868884014164743024322789281745259817824808311562168729770953179360137087478132552076325014856106430941408046980129356504386370209795874196240624123611530804876780263932757486335064863859681400173551636954479962516828408072589710918214721633217667533508908131353168269768394932832711832942867725603917302074410435036825694722881062635751448097574250982598397049648967943581653293375422957851898670347691441797471651707265316725178930526380551611772861051164488436875652116854384891321517405523911621806384938166861028680918312938432797721306191800590173325168840794668927959337009473252696943982309826267211272353961695708188681845235054808858661343637435887918267889592944631858310741741187278181421506174600382677915930414804426389908838145081674402567323162300783804514398511032152596295786695698828601121687882217751374007701076051384101514495006659430193147333908394030513606105262495944762432429197463115449038374676169340953763019854442624362706001841760499524649702227828020575240397072610141639488755122051387987849459802575324617181287834221555947558373449435945861325051746417282365782155259782726077828399904114557531367896357046441015306420461239120322789944941322415761090111480373939518835872729689851297746698085529633345460852300114821904656772743670982087611193061937211635769303378587043910413511749165219069069435144057421150642939387103311516160141700617510299361811382456840207512235897795500980401477194426031860946973027993974388274697613383698451240748025859328726876583812374364628489428261002413199514540843970894171990130293105356515440987221181383364511087861155193221464106480009099361853938492107814509253830486950645165589421622331210737434061239002552619924792467509081982748302313323544036946348267280073651783793822687994951735116900561679536970866221847314281903965199338876058784131296097440844688283166904165619783582290351207693100611238393233001897397692263587212291478018237422268647445709298056209582881471595855177726789996594252409406842098798588411180890586279067603235372651865111948168547193540860727803811731276540855174417983932998167312083039715919106407492668881210998172996212174452289319908220692114655645218146705817209954380679187229569706768709777086637938082163213438829802961864535268590258428086556282699663418193830812484259468139520564286880212142368429426970329919293622248626195608763633153479192807000754681923580350122762713562882521950388625249183793893006123606035727465653352787033619702574607426862531424818795327672829462221397986134253728602159256981209460145888070150708893580629327877323521133207613481597577896970302639548863171172800493901378203038569799515363399320730665498761411084832586109363791548634871247965223126427000176917610278347216636229934800575565266412336070063899184755610222180042639894120901183257519309084013227580624858899222101212070995903644326687465875765435086737604847619087163118552377029675946313878247932494547747667871132552643367153709217812457816619754826051634413964826383039189424247841565496647394656615734267382326404950394626731783378620582186762333116256864002125716771201938332306087266533271387514653422257331352912425487276820274780616808393529849473998171246898560829744847116905842587708196287098640687970612507560564222080163764803140369871015300598609941393425782969481298208886095419325032765034436477391138126172019822286644769806937467110676205003656646487959450715069982109525376051856744955284573205136329690706359203133162106105078454227726660763330879164877977899234106206232254868791771786102441101769558583293160020989284267041150583762342311725703759146572826780690880406924041034286606287188894753498518694132868947839934959604613153451256551734563849310012989022328075085897429274694248347991167692477828755277623348047053230713932557210590671122072609353305371057275091169404669898847989067056550772897072106867311339880993953610523872082212922430725204402324832227965161217502156753388495983866860333591405986362216925456488681037288601144717043358720153660831435561398204203486639111300628648945482074454230082239584948863053187556371712616693204966493964226791182560988540205600840755686971024332787989903544686267188330988373047845040326848177972778649348249627435342016003726680752789013197581911553143042899796854453966953604553639117222785095908734601414485499002673227268251775832986054198859313291636284399643774694237255108183804217734320944054427413628053165341045023236391383174586723124388240671895951151674016216331163876419718634223683209607178684750457339285902694909764871650732671823387392038875892469904167251848566419240730235891006985791108288096387185011384436389357770693591400598216278045983640777350188875111344175707271908745079655446294392621741784390023893148274887932544414026541181675115741299816166911498705699042347392584588814586398858519562691955166601360083663691765284813384021602116819398157617644985247862731393201666341038026848889928245789625389224479650176494272874723178693596257838475944408768391363499857257276215071400893808481227729654845602508795454626112019122669319772698782343058677912346171475854421358464534497395796928595458265973755989919621523040089490828893663503965000061825395826416191564517581343969638873366236335313830379509807995342904263493291153259793465453582039631194734701993636057411605241879510738064161337981734044741958607146938630592971903986236745249628835938922286166596687983732017264487698849704073749582176434056600983259919639348461409214064829502944544725989022315858987497588681709883966276868890699388593909773674614910639733300726418386679390126004723793328196388641412438757054138484801144718954343356150924956527529318122328045071585048407567523045509251309690151290168120948583868380703923740156864867215224826449320328551781262576852296606478080649295660138184989568562947630659306649968397223737574264741599411862940722126728925062140794289044441755025149709485581318855198323375502889344310579451923477403223013068035116006077543748760886075542422145450742175613018480636675562570550441951082836455980275167318959920743452021918472953862559209183244159352001141306778463765430345596397346903750152462536781263166876734439399919608541494249122381998125665915550009855202722797242678938443666272297856449698040407835777110519914038281961442712437099086776178726895740617670722952546567729840403681415342397450067470211257308912303345823450115863755583919168159090617523844829130168237479849807355027629730570845547541366998294594230623956002835872156906136821429980290061863185040395415042028589990504014765354384548299729705567718917395919994820785190645647850496451983261987022545113342194165731712419010508611257814789263403740366627555912298208122601542682319989857372574579328128010267948943944804254848260323301418701471060964871236116548983805344544893426950246446226768008937254374676817864969614904654017090754129469041884407702740136978033231311884818455858059399139926113802166879498920069537127875360004789475333353414377709887668552835561962359120512150821074668893127131657950465083286970422403351179875842648576392071709288830003279893534642538429275194142465235933838727491913202282871121155619379850241712616560417530498846145289287264450539562761396595816758441830379288251249849704643969611676271881791914527080655161357518548161916484097480548433537087378233467710778412330550137986707475249393869632906651278318209784125804305141776783960722012161293182857775689254176672855325978265917300228226757366030719173239001839572646872633849839153953287961769375367402758872501033341485329186625871512841436367689701810046246197900884011156843330894660541815795956920839032532615890586349458263292164181585842495062608748291919629577452598080937993632634367364439158505347049639379249213468350261279654072126973330036562469300645005082578321656299157061534481602034359420366895223374258620715100448978239161401143205021594843699135666729543691347421315469726565608413491876664238158748364408931224955861279238233329440413569711592189850842937974927935511301038514002705438357396835325041598057779096159516224052870381073682287316855331751523461431422724944138801543578305608364089058846623694442620697923125687576743277568645710319557114580737946323813969977811105172081516787875194838338977228079551892617867143545110481834486004887471444865167832876484015428814390967515080764466602163287871603665704642618538515013706611817479654566573466584609751694305772008957351984586707902670694034046090873304768769789344917182837172134735830166121765435931815257036751773117907447862702972469128510703081264310393258097883847824350315132466718668227622432777807984594413452832775277720470218814281453216045367607600373336578651265358055711777868655796305410973403616214556145119733041663390057057686983946288018412940183733295808555036804427992147268071756627913015515920870561920114725135898093652817347262198338460871439445236711897982572224389206516440369306758066469659344287466970823014156929995830188354975952694754172419512404234202824272420450362907638954102482697296025624636356650415513241244775951596096352935078948856224928051690806514522941337021076269831414741460894313930717537564079107415461723418048251083651162482570298201006554234825660633390703213093991482478209249097623952306149981494191692768625947674977157071109091477987579077487021095372587521143481493975576207279054769777529810185044272137252437453192364166147884828499933345430574293424695789070061792494796149512239325762347908051171095843689340010158543843768213705359169110244145107751011094307598161477278951344841633746311934163804187290110469666166742341062146943503156739190338100305693443182996878939421092035180915966616463898085456871171019110295161632176462298801751627369377729233231679432789280877660108697634740138889509879306133312300681340911598661165167513628097743850434456610795377035688659191064782704935174584047738281317845803890851250315843866681536596148188152312660538153525354019944489019914755086317748007731425780392114493750682579520042550636959831169978095512948588607013838560246242265098688672128241207309448468251689882344369508833947584229344893666419616707158748489121039581415146872296752046850805783096319118680920797515773238583294773315881493386352656679712501095045220296094972498110366885753453927133848170355503366256709353762679390569290165393226206516347867393400324822682784444060769944267628106405429207053592423482751167213760227976196372843412135141589556169245340414513599278505939953896866620756367040608764496519703176483810065741160123298423816475701233622458652722470003698361693020004008383594591178676107124568216689847528761327278737106219281747573765820437463792000778547129842450018033200986241925275315265770986990840346240484690554503939695717428306738319596039124047682880770195650557804979284671707486823138125901807394461481871143576548213672751583431284047553837118587508928708762298794050749037526996698793531809818938149080170078135912302257168839663427591851478096395135785171752874851818203141142361820604886238269821612408042294569398349976352118657237041380104877604131682734849668749703930824246156901741543300030882765355143426026253163841613451218328664150809921716633021309168632473055487527946084398158829583683110508182418946847022717622882612013687278032039044969880829057532863471754761797663077749960877073928010166655158752342539263788346474088570672233606946921123496533205239181886078937645527642613614110801163788183939516049920977030139359498220162288391628060403419993320767178027967433907646245105883159730865111942198699143801697542709061364078885930361051058572351200930166357986495376367924440641420700606025718799437254509726446083430470885749479123080774968282797486927141114234024221367796822427157770214353181202749823416892211117696213023718096980771393035056605512977274742471375513309441900614140932894604315721188033628402331888447486596756672981235048141068199451606602475272041226169717347030233491325897137011137641369453022890633721890000037997284327691127117270505084391222989927013757944329446292770885958216505336791148850089330564940650609519920811273892431413551428560035521454816918986862203505926255403010980922601302880164534924461588009242858903909009830685943541021453085848760960296049202235288638866593563702757018119402310904762628610851269553403799096571881770724532796512293039130469095254872748047052982093333722517825600513307186545087201655541257180205978005580343123521899654286824446347316411325522804630335286239891333199531873923823351047842799640915407780541880351355367191848580920044344955910185348225225505705034882453221915535198736279144319924344326992855885934727549048691603752955684506923473926668624178635044157552561730460851208050338865482090456971194028073575975540439257262826205443503332097111179426243481909890956856406232970676562372881615521159318802868802023716801097768710830293139267476270495868542425282976678370420004576535013035192548549580343390135339386117531406918209708044772191169726038258828005790475100240711757455779022476419062503236160868881244037881535358358701113213025414795533555487733389419899687363193824616027823063974950562983620889012991098299681213664837810452394870522966167909743600973716969089985398211258119975759790011619520623606029523603298703805292451832217240331813851101471064421144246242300479583805045154573552760762738684958134119084005248679672953602286641717684384504248331361025811539156295305372002949641077247216587037604477718828904226700344201452450551020811718436113868783556275217008842884219126104404433286282422065633737835072221038076161527929486224765355086284940861847098164793670741913366632400765775982336242925652172640315704575427450090816293601163668698764265180546927124985253536433695865999029991138014467544172690125926843767542799771287739388605606204883276664037006336252289329397500952149353899045709306603942654916669991107984718548155864112535500755152162993890440980001610097536933534232978346457416832351505708130480833328638078597892618029640030934872110077992670934197798144705228131080904946921109580914711225024262030885362527357208692858190510496831804860963389872572976506638977905564128108066893959602068306477856763636219161750003233189134050656277313733840377228791520828976972193634087741874739518785249130243322681499703633676249612181932838997052357836196974546035812812835993638451744843640771177073969666205328474341265348563346993275368410370471847311156880108160531401214410597720670917635267563569228255805840718609841708983447184129032588393672415074829867778500921394854935911627814862466281911319757668413417121947963083668566971065845898947042487975931673196158625304550155105798907953647733650782664858213328947116102420201084153878335747382314031060650385450537512280667333382991073047995515635612369866159096351282897256780795807195340709766065195397971404288383901715297274195864232846527834066671121373197022213133251864387358788222961709062250746257759989238472681445135724601625588659568158201198915536630917841901349914959570779674719124189227693823991210180339366232517941215203413665022397765012725782354702541659140113139848047421269055807742157707924684443191917420225956172148737871019400849813912290520080944710852743237422349385984497457854310261729007003489015391168583022916780423642823435155334274535078729095496351854127149919332668747867427734838145103785328737055291201695222262513566097574063953382631848267041314471484034803053179623330592234111661150520490916681404635857195721165414410230881610487164569119205596613232894137529557542292930528212442399698303171290518911824241238241714001433897055684215830175287201575100620176355047252339473211985203682886737684167701038089745194931961669134300566824698096327709057953619584290184639730829859425095150067809207665203457484340721979655821490521920430561800287877019442325108211268734396068275274680771381778555876070151673310325451593015879116449750402080629133154503875430713371863491987266716775760483807908317978042597026938463936147193481114851491039748387995813560284865847254651373309324692619797850136157084056234365023465461825575800498651007777143224305251612057956353841753962635110713499243615052831573065405917273846683618267742015897602201518674738900819946647530325650846950748316339839251694068104382757715654623321439327033873970953271627603184411122731305119853784340643351556138277072031062345605675788408629044132507587724257855388041767983094206608807727192956463129018142511099956814943157038733105355831798946397140285050683983270359657029954690714391469669825963997148245403957824419710174746593300180070197948041793138571971969708417367631102928085483686432970704997663134254428383479364391101038441726136796456530205103661343211660872969018608656827479574658122463789966441402098166125728423224855009509694332681267128016246328375821826879768090456585038270411484040919588462757587510599503618381926145994697403839811256587551087302059860665493143561114611420295745183269239098971214082144705959114451565144502157432639404989792651379793827663940239328276336453612698692138684694413567429561062573236244829858077619606513874133620781906232473962046734096719010207824952422577027689157732160916500931501551850078444340127902313404284364790696973288951807634744844216389983989045716120691492329467742000697918876819060154761568093574299329329858402345798323593089147949994523075930410967503033458451725200347910707218374236734116890725783300288269439075056681090856666482844649241207658993944827215874427196890542688422581910042711277695327508785405507003618206491403612962466753613569893314437080583356987046339279602341256818816534803663354036396333596677829599609022751100001222989573577254470898365804566988167898051872107989077845688681461860778803456075221017785604797349687530438302889126620769648112854019556917485760750226567542847989005645432929611968468646224271169395768929825112390471681990669069460851447035445937881264963915905761709847321573955704040066181550125057297466013530248559883404990668306131363841961219025554484742662661846757863452154700068751229146049456125127214244670974372490391959797984169422349527411950854540341420764415621150014644554208807715419909838244942518270155631673305027376088657678274561590228341764927719959755190793014094085816137648289163163524057105971441481133171796240246300918510689364901724434694922269327427073749277154861986978764756317838189596620738123433259093940459576629665843511174401201324570669307734415524363460020224906312498935275645617226251780166746836823260720526192519260446579489459546354492980665004736005498526064789463021996612407934520321482998750913024143118095329638182483974081851164323517810748447644791213554375969474448597697046924436972477971521313383799097939970890852260767665465269702297313011119863450820863930596653147556908247720637049855956958986916415595313589870845345884412729453871515385896779064977019583772962801469969224765704675507378796840058944487226380505945326661446469865742857526467387810222981081179191536839753825195125020090313093939753598867655317087497365949945934248524124030989895399510416257238261336748823960682771134364723572194050358453823131282445079466643388133753680998940734485075637004482509844236072512308089750692287718629910222576769657035161680496493262057989126551236264941429343484343898636967104553655185382911642658680190574153301050572033080729977160071716825188481186478086568026489674842173350480151924727144388021572474436261944788594476024356334504452068228864264453275017767658120025986002605922874197651545865378227053652680811841853051035247865737111367860729922267426918787292357900920365483281192889326327249822373002077066786473396690991245171264686550685106716159890085735700247902686550194980833575627726352731896852079973138127043169328537918563863841795084984624034152738104731517925613235356090189299678105631501154307106517830569933531248021419148593099838774906012319710957273790551097763603345254683987420424485773490446976002110827216279423358822623707034142601359790768975721085733120151939781533959472928342681320461865987957965253107333874038074887168742702525788632203628072697108118288967718643645861561665078354196513312527801356473575494997966274192993120934010732544370797064285594333375320346308846913735041346113702917762444662368908278523232894839736229200446393811343759840419861226762438847855053649206976068795260488285866940635186558325113487120352664201859986418928843254324216560208781289886955900646061201162162280051699103506149182417456380502452019489279956387364859744600682487462481919368587501668241902041983338705036585785793348665819623238632489841787741550444105105359755686703359226035779302466157670342042916831074428402435754005843690391375441845381127220585965990905963405599519579182188268282837217256991892907419972599056160861794356526922883484969103286652691856724016467872109418898228852229827621965338631304717814392901413994651246896273441735152711665118846537694694977707205835648149746667888214410728580583959594444726423939072106872077896574602891833422088770271578962894787744080692249718162208600413642172048365729385708775109957905206830923153959541251317988854789597704956299396315001027178786303752792710664306405608506556589145792784709897679168151172486531366177232508327745276093971497858752050394619216378349681320995432354566973516501767080433362944811682468914353423608674018025265174195360706634767290780300656724466437219856116061224301953671374500152178952419530338968399586186514922264939495474949214314026117618914921752576432726221357616793141507488771759309591805466841345865761203551719298473551379936259310292538977012331430154983625997941376251405445594345267170210355114066811083490726103776356295988842326697046680110339139502783668047550555861019464324589693830613239850396708528499373504912552149327054093579266676684933078906231960074938953814721218809141374266373846674661453546346988128379694243250556757993126953649653820417282593195454857761577081651439173818983987632888404162588222265576395845234866397812102119107634334601327132736928723481485530323293809099920915744116021026687379253513617006445695839834771203700246715348133158913099986864130296469596775192244997920297868390661744713766038830824924172683702732258838732245962422369899177564718941734428801397103627614625775804623219943046468648680090310694886209500533478483702787995517183321166432534566439752022898181040136004983644723983735239211257035481687723413548356270577069531235791481122367219555225337637590355418162396095588637870489640722698990937647808928854528298639111756617582961761523104739913401243842876849546133030894775815990495614821606211296009911522174222914688933107652575998020174018623106674958333952588253005234735502458323893675387858292207701350654595001638323522371531092721210374266422623624217317708901167828482457841744446561465244323272897450349699422328974959224021616754305024869278409241289110581863229391219494721823354260223476038804918389901747561553275770621759639673658794036409805785962443925772908739473644242695462956242121072026553139084960063010773976646543112222987375583025170632226066255311842181491140337536175429854468024335908515287995142481967412065152218480163545356642497759224027286758218742954106832085933654477321653065820837493784149329499754068415775198207699560341195187501778885861383964684965331931453921568120581900814007564557433341116917208485368235831507324273966431950699842277493396695927615980739828973502804445414416422266561847180618526614080718121382429448998068404475653384319009722791971413482821917591429474751264828990723561196792426845998381402154817280770456857819958444879558184266731919910011667537964751685040291567121451922246937706831935560692158445987472237459002409239471306774546488632933763382637966268170735328130386004140553613163778743699374277020821194479756417586798271310821933757723222043635346892108789500435831603192403845110818668092422275089142328201794665395278074928920320540160588042710733011417288104815670034578121190110121938658343272398414169697573845027651574089331841979138083661257685097948122853107228133171373863938895608029889777917485204239152939850904115458245663256385687599949825164166904322389222620037174156070388728931444804725344306036116986744546367328970901643292424615674124948530371108813660699959768747092618955463945683491585588648929597990843935602459435249903470789254033510016335681169481789049630721903786029833024795333059522237167164551954975937961679546761386719917003987817270352275727728975303249835304834968187760570896806371547156996130954239214912199530818219500397480313623799624308786137095387391442394244318493925026870204559651288271540895486783346920314014374341196399964327117523919330963822522294193150191474559086901265797023139876842092905517803555530272296847075728181838807084166716516458756145136685468595756770033948991849070617302892357732790764487471215392692169796818664802578877588912342117744774308143600749951934918138508013697841329869736609649400205754432696573963162900484025516305432670786846406081392292352402463173943613532727962138080463420514279525066700701013552652206318956609652957019536270848570276344955011539488014912871505989061668913850950267042830855864488054139832458356085309735974231351954482440631721345231354569818302170797431969219425839682594003996117478336639412662519669893079503638071655952379624538634599277802259379467543510831153847413493352477451242738159081123980279767342712608525761758852515976953731209468780569354501306194390773429072050940681719433804505166272944939931722363700676047726395368095942460186482729497105151979995075452705657001554595908149017442847504432213477970829466395749659413456555836299563893612250827943832021271870626395352251849196298771970992456953146734968468319998963816727684708216387754370386865259956422083224792003022477577942298290637943240203320525041154062612850911578234909507687760660277355338024536966630853809409059691448007892703923566514888542153776956857948638289677616729050733309528435985713923060998069188352579817362649854230523608107980225563370215003695885062647988207814276481274587174277503800064778601518936608522542219924642596859394762657829418535052104435758587193549848066233694792120587038288902996425390612770139538701517827646184900597715781079434635997844752933055831756611073369345390170911775887744745232760676143234751071189412921748538931682096637860134993386204786465373409574778943805542541681064627892445912696871140937982449498240650200931255975489116848661758481965262388665094592399371976410214364222790668647089100488966243721894113314614514471523643840989803248352589351681308354644101394511810010677200103618441673933559747778240849457885361517139998141675706343430396890849174064993151451948140982161848141686038975999943560170386132698604230505654091608788970052439118435401610158520974716548660902400226924529436990032168027584410864885970740046639351918019001333075222580112377294247464447968439662622291144271093896150667384028230304397532223836746483651645682171916071489810731871187598203585321646776462275861224795662761241670571123604115296293763970033551313149018199113228469241989880450092462622521130029533608569669504551621518502677541904034791587834939573976753433672835847920638059553060345533647805370284295045107922596762829524458971565707558350779950877086221273539993984007625279364207475764617379442078443002802874233200331200428095756672314503126704427589110824784930296535933263468711047767440476497274595469990589210189806162201964392034257252927100467067233741799245742117927392964125719084979244295563319702082545120763482722013732373206366830597453966212682792999402895843377145257101572422163941002475143859768761914456023601641388900037128955860315901216254331439428432470013160950472039330298089214003349028816430912799077822910900391973586345694424441375496572943935779132966992682128315222938429683241165792843343255000047839978804111581071455479883387110306201582027107589346039778679808185734566078610001433869472739692939167069810496152231141205250262619084026535707723110655823666202699420442182593043088418488304574474265443512475413958237851107519820252970920390859413897468953913670345882532665343455924450386834767306390229057755816149642871380656324204946261765285733462979283675174116919620312594589644751957845640939694014645463090519971381521262108592118502777975904418988485479484420434408985261921413580372212899891034163328784260858672037861957343433320055290890879458367529096228732372796706165138506060821575870024636175658057899965174108019158521295990066479924050744684014565414703136793903856185305014429419290051826986924404548785265890674756224017688547971460708211090849642158184301843050023123271519323829809575624908459859504927992752021920491017848057995827591186702195658167609742769752142031284009295410318435813719583722280778328484219276618112245432331135913987824592600806926214724327869193967839766477414116301307318995528132948106726589373038544934718629779896886426281873520194145899515559360395747202207409833363755999013942382479320910040982457350705867398363053310275896848122189018457211023504943977549436250896267014203900914422684874804645582786037392646534911292241312802640221153532760311031253350101276193369635603800113948073566881396870977955637062285616026147298658072582844586634903608599548225097001478215245202318001633412723761032743492453824681865013151641180926145466619048901958246448266762947407499422197200747115548378758128349167425671552189702911187823534906957859460522328955555523737475521314396949520783443102863194352053414696919834437943062461320837819942701910680435255207399413688536603365927158926715290049216903255747978151731409680532817321391572709331277842613227807560372244027734207420182127180919094526671867002837051537060814990611093952113512098111203905989575102781163830932912350587051606567168791500730631457959004958839451019471318655296058528079918042461367426679459985624245314760295346268823241744664304298144677229029248340596486463105351548548882054777737991830781194309817316821600821033276280528662592790002150918474661374051900295718921652410619572025769416503823349418598734522204843718587317213286720323822391916152299722612462099843890063801148637812881450449636054608008617508866767802859678389964864689382419662555525178534857917073593419293715563552041518413921433435422117526798367861478850621046408674218530166873435446587943335806765893758423829795687443146146748842398263752651786477849945847217996211135969325971432878943085379869173415900926374128981991870392618493694640093567203548791834311239713203031410774746822574250681108611903604084869058911062457070562590806781477934858743334954407683322276230683448216717736487278931057605318586190628202431690298055270775679163780702570976024390660683074425661712120739722062750116849221158824777251488063333477740140915896560060402576200121866695704207492273318294450952922060691737957570105788797183686758257252693606782736551592201589075104883362751633695420536463607151787907278202175582839938435445788164150542413947243691208569338457076131363240104303900226908422668049674636065625339758925045148009367720819031614054392404947099945034302872754126153441385326506878825894202735097721580454168568120825238174338429736929385369123666256053631433408690753462032382084901595627673207385248201072775798770108705177294650873743456721108490699582284719782467581518665202908395436341288119386765611984151609476860539020338441062506409068202536134290414644165607612929867873323547727751137171589331971716947118045071721504513051318844203679972984649612408188177827837440951437649309919196836065748712964603549906157921469631216088237269871891004995999704405124038076604073932749313509468453522643056644229637831886912350672778801542018143268221200350684790011476596830380721421982396160888895092886089262332259221586405309978803241616109687162094895537812314650605103930792007627532762518649287532982535781771330809080841101103954299411412313594300024760153291195763352355117543682591748422207768702414127153250821678009618949035282301459656118240838218411228410999986681457960732574935443782557363463822904142835907705961480344857692589631807058002553890008368462543025100421017929350745466845115500187101261927848979765547324910020151578064519564061892321601418034223926139257711851145909657569491300373552192592456386423530019645200648430357723497937217654317029519706720754229002357083037750468133805925718776577831632258099086005600773819678811829181438705546206853928738068979410601960890829037622645033062946725070239523469421084404890922081591361838701525402741117513089589242378395625532708062469092724913740732585754820872840932815787813131470342816529819103804538439525369179520996931110275286954243044944083263930535510136996350430884180231471573938706437718267607598072638684585283387546065790137935924415490638043162894413991377748359071174890304977596472276483802775136514177994162617588647743724416173253610927346808223324140342543814449402776508822747851617611641638177166608245900656522682949443823629860364021910403815220012538364128108004712397966947342498137380164757074581062174016098783709002063267106569412023577858595856812723193233619301237417599830565914889810064833988094745540833615655423824242298884286095052935312348410412782115580388986889617283188092331055475635891070236864173080532636959175736663071126314772009042565714023850279315063621503787043870573724555128923262986836137727616626277228149379409086205832148238510380830050138924294797271188908429594139168922062077666211849386360027473174384145400661528152832745928181778174519948473693268094410914458585129435924381567970889506330986833490783842359690506415928359248390679533483389458035353224782329954135232371488575276735588359632800093378398651202295418306471879504499446656615785888976728194389663017348810993288752675190381033596462839609572593924009290622240716144067203199466295726369580673421274520620713035344717702941176516205796925386300318405425426561675989041289548622391066819989300101433670943708785764078609694799004692848520626185966302402676445076730218262711743942554833670130599614972457991065253701749819176498358915622530733731091752272148385076039558143584963565248155067004758360428479404027786052064859478880620856032558313905036484124065943550306536817696874018202993157409760554014656128954896198685590197122863931405927610574305899208986063333625550170663303092034008338783201354336657924280553429369144369488235277476594273835206007850022645787108170401504596600127025191789800704455551967971137732125888619724963563826152133373574183741962734179728794813691733117195139767539275514537694860426887552523995429642609321568466329629503607338176276194193445890651328970485888391923092389096429516511764484138096084821197510533957079542511443607813386827811510201370627410463157422443977748204215075380104492518689077104834153135284684267658164251888981803291261727735556238643062146274315057593087660202765557915116958717217599046441812371533729248475933131369285740989193203675597244163329986397488235555441056593292623963085080440566738827954190766917892808468919050102238737784534265811579359900857762362644507889419516836535724540702650109020982095426144882807950459068873104394295337452092534354081607453048803922776803661990066824008639506852754612294346699750582934071024718013080677923616561559467890525687287788202250857349762087107333269447702608251296237371868596999544929172540436624143934705189774012198865811487402605428508800149075367925700205447221300052123232619938631532888969570804495512798397823439864972286895012332708551128789156489866297228676494192028981102455557629410761248403787870662642110766687404271276996410563625372694651702353916101375514252341556610672244630414339067082039686743519231963238271199833236115311753935097551636752360925519089951432100390975082492204068546630666068422382348732958660153734853153886769440276215240022422724088701220210042867943017543859904010483722064303830948050780181594465827074329228437714178883874108200819432081850905031452631667036600857687991648710649733515604868666644443278178891816307504082187812813093516057049167458374110457303328832504945889431290189908802563469801731940926881862885723352651282027331190612831808085044382401127687530539012298220271390295588018766259662596217765423490271017546335059784461830994640735744121495278061494956622617088431941513914288093444096600901063885081507615824993342560006285708667018358333479409846373795251852919945153178525489908064833612882900835223679141586450771986309299708951621527471279620285315976823237207761835479658591856466474053736297281293513819351966027421580731670840375921569488364000514394539077538759737316188269325168472725526135324634140350518614965034812002339935812813603557520327694291635802122783097536492897581536924080082301393347757342322447964748306406650115288106953690247750689295726799335249631609406672960152559496379395995002187468838907222066084995206900325749899977050819353554948066232909981097965647292248039788120924204604872017338887180873567173701880779115367740952806767968556154343439118304162441827246354799458798193830854900795111230766587714857148679249406331872408354383329317332948467470116569059643579920720109345574666205114625553042510389488374412140315620010869476099506318936743671358823172101187324957646755410280263949228449963276916509518194735529047008859727423749895213562575104106686068951569792148768783241379187944596326756717945662953243769643251069881452018261598844240754791058100346852579992874055750134957865304617182076512161940866848287985651375192699797100268687442296445102871739145067048452401449345708180301374885536189824126068250830120634249191741719816628568420521559265250570572622632655613785110873822596555756782960529144312204771822381441867740916735468643577507519879619607544132631915265785034339383713453529209249741548195369722688008201270704019636888598737817490809577100834219840764666343776268718064120514204008507078999115552517998109258545227357558370388920472833938620340180415161772127393227927159958264950929837124371137732506268035820004454514516080999383988750735145168805249059955809557680582049246319788447993075615610132596031433392286960582474047607205474263468411820890281599940929318393315092676472644218158333895191042747484251630948986629469201518417441845110115478323699540392580648540533196256500289716073709929847937555064482662958893717473879233708635125697967085643564119123461421624983751035177553683047010580596082343118379273396144195569517295293653256627791642555030713800759544337624741154529645895786707435775976357994573827454445294014225122160268445442382637722136582333017214917289069823089848280881381889619833249321494908924536310542284810631785509941844634196794034927280558026224141296434721782053593907058796712438260415781271948492112817875745706203481034092852705133200428812927862862954463334169925931382580492841404433261524782041592156195545998166319457345881014630511566720862292056181225456195507186418477849518628593539763554957662806243791061898946999187715117573165274662874086513749903242457472673555907940251308858699626977790731859713234962596686943309419619776702955201182248436340536150801441349861208339976343685124776691069476512273933122780692701559980863968926722484864932133445452771930912244025599956815107948302747200561496906449167145227900618728466725365245385128326786046386499513150879798302585537949725137931533480353710499807434847817016665049724008715416907966996421136204082075544564599374852838427092562370247829824816526820483471037406694854483763062661229842086472536683934629094713293645914849623852074512121421955452441234305941526023002933902475330624013049950211625507642517079522000045339912703464057780814245817307037480601330865232350383952495104584769054792019326550269468945886616965623373224901336720974789419683495038630998609159392621766843245585967482663662383385997858199158467871690803511230913232622826350022665610404598028544342565351815678527906461270563605398033702485285385034673344214577607879153473036246455220834094122489406935469172834177720633268515800110196116876559499528277761779323915051034984013157057600342397083948658953710777967455878131575632027851594597259664596265180994654591606718741007917283614975922201305979803989331851560451261794223824941930438330319241135932609861290892138828034494785858249492947935991498777600012690433077431326323026598476906024982249942998315229755554402686867426111983654221695135097932031842425611887837626035351376757673810868418738607488596537682333628924535295235350277548716166182001343400348176549730728051931895341640110901791672915220984924669554898251060477158655747001247311132014893370706262953841495576933864279134946604028776322440894155337597644250576234440405303040332242449881437719635831391885339223540590347751611320092235132843668843386294774768312821523151763770455539170315729010863082739555807193473974812597427413082568087063768942042229914855382059364057103731864993302232116096501765693004627855433575474267421633172240241049027006621076050905185864751403701102760235531202865915675293047336587045065685334918633885276877277082772488549379091239869097646766096161540416891357401557503452308686847934070367710295297550673505661268776331518512167528760237327603896503222164815791594359341427847127056541974175337384700100554338048953293745721335819209234463316931026044421012430127583115453694375019535288993487478162942395341278175554953036439782305673858612231765685248958952047758414718661200956638222215192484593385175581836345813918328758992002406365945682405994317961182161334936003347983597611735738785840080293555541076293769718729476564799476284097966571212365693844845910589227464157403525178225942945520536841287755428594406972364578097230163875570112436742019431769632459885441744573963108847039399281998732420950385993819804972257540285195606421532800892364679312865326733480278690072065511732819058685710063262503022756212483488554021367370581260612713942023163836420096524299079754797815071605502206824572898846135396237891852517719441754558724129611717878595389632399793018682972580459479534307728465891827640737542768477453126517617675827501807099037934770657122565491807883868801425062337375314007330192335892751108696639057233110944724205314895526308954205616206318090381883501141779198217874316618454513431212136613674469652599356412161000377922643392848746154201617189668591075071100052177331880018775279281551885638195758027340857166814096362093588241890443961962378676034687528041014523337904031867511620061709406642122800249851173928650928167950809599685889820586452037948667274576777742965216840812771515275127073657776517128762279411003456963424027183581127903223922378028263663739514362203792769191054402776193854929322990986018593630110081226971031325197508841792478421369794604557129785295037797691156047699047152588758734615652624068266976465554369737945378220493620647215818340850630802230573682310130930052093133503937631232531305404087007015633746561531832127797527613835885596749614846336752728035875885686504935178048249141165808927670186794376201857358786359463566904592800892203641384866055941515525339240180858025473371556168315122013020086600273102058622935491140380272468647675988027816913968010327604784111351115402541610448667030630161301831628366067123632686448896008125417377422838942974702638821850904340004269317656539353474033880516615809591076229705224716457985146067130016275714816647381733098935274011899039144309389299456889193729405889827992096313535165618773349484245713762425406884536393293805945261492943529172101770905169934815277796600537018889885119690146428983873573528825574358313063537763082951288781257161655701654166169288013293530073071192206727346764009107904646596027961373865837626925786725941033385693245621269004339052335656976678265443337860735149874288019618200223427357876782025375940286244119218524904810815844090636370253892779831993652213405965816373230810587039893339219699450859745435729693344604559246899766043710593517930486473314939954982554842580894969596567294698246284455901055750928143790920139295573176041369334555185235184407489481082220426807434582377252620034815207435313334395181434216224018224530585948506560898632771217439043053326106379141782467183348587013634774342086728745184307779208350438898682214229154995715060275997990026082636595677801140758143312256709235677879407647815828214734573582103742213670305311857117011883197964020669805373860561754488746908759919265582278373833754917639041590916920537871600439097802360975588949272933139976888267220896367136178445632546518978037027813757682076391264705161650205192213638299957648434332352485270595300012761945336931165156008017160107127643848524725066984049836457456339964961136899905908564309340556139544457903356357650030332950804383099533260838006234022153716279021333812969236082070107093854387172658024539304186370238947331714212626376225942110056562122420687641536135681412421866889105330165119541699140807780787203858859629421434735218530700257870672065535899722936450741719726916363447567298600533181545662442161961638556367728702197285286721795162790936443379588584097897519489821041538596409494056784149480524591754284164440156967453985406582847693181968387481369675906778513713870886184073629261776832152536677589107932418065026422840885430104374928165524591737540616117466363754201627872494904437528880398625611104767956110629824814586401069311833266795397551859096940898359638494147938490843102283986177088072041210654350449132639375109797234523456906159436094317522139149244702139666279425433721405530516054049096414792422552391890685613697002156840999938079151551811941357985202391235469985772691667845448133935544477943699568114568279484428337109642694042679006003077089004189472843810275956599838731821011664182031234598992812041841797121876685462781762027489618024754065302146853270486944275843680507924300822256540302054048488672144386951451369441026325240053236791103101677807523507629076637155423158642195580583943251304068407438020409136558964963057330500229765263197287736727143126623293179356886284775021907182747765132448902400624115441289408690676740955436373290172599086293903173943462906543605367463308034870870512899715159609906274947120188152748278065716754007340650870798434714290290366964838410611161397997051192114569576876853462604702698860006814193059807842629629247557125875950568611603872715469756791936504601732254655569364654454133076198453180628893917847762986796508714266888362704322766091832753624142025904452170902597365160181628247830187162017590088536775754278757469816666457645186677249018552495497653810633154783955260956075565560902177102856567615552589525373813459553820090481512866724760588556812688472223569016454545533434100239032898337221509055756995843644433455798715746479064083436506189373807928736423535234519270609578009066265393791959502497484582182462324211288350579509132562778674878180318793306045725186258692635795500726319082762613240023380593852057090348356440273001291433786835046542410908793218635566304419436337807566860793204830666488020269765630964986784144698737684044603717229681800787096360601129465754785891952280203593527956746456280217957272223943731649349330908450363335927761568821310938691502853907074828707156138362264628999930941949644454797613205738664686474432094377663708757519897762534033516489938171451244162229100331134723092952612529452623500843316666053142482537691004658832674114129860652870774342401173403578381146698764041488318081985427098761206008467502697149554963260577965880038127185615883117919880036669984025196562335099146616299204693920849496246572798121244805875980809494897402123159448885220032792838909020928993773545001000210223838536869261107404097315517647462023957735919017183062416556991226252416997345574463694097696575471788393911846303297456761395058615273867460849695650781727586723409829247644603044506122207531432096559322176174787976141852041556738161253107817284929646234397731029306377591522968641148364849426953716245351117368254516507581784221578182568421419532268238581750824839997979441433120438231080547031419876581664339315253636342358562323545082784388672061040076564125584753190006375016103804425707370277316146050048569741126379503411608150565185596783634166152199117141777373700973938896286879013805798387001487648909611702947901612086760126054362992783237438846879298901177012506514958158821462697144679383990066891642860405169346259879656661124246883778755141526212877736273508128751770256627602132771130002580871126724800676915559656633842924139122566241474354774278880719669112425180074835534075813280254211760621922531022173392735319853932527338571925362101519212130167606671257227555680284387099375617823560912390950790305417646874986946182854646782102031951175748537571867362752510726089145739327457376521912482977428891914169853833452960865619817942658922906308852703399291855974257832258655186315918091116733927968502960727864446818930600808482896843339304031932292787916066159289478574440833768533458854156298599575872760156814096999849710166545309482593677522828890897260511170169612869937749161047322483875213868873750588428727916749390085023746937947750052858365042585949227096660881219262527682239492969361112292110893154274498424260456658890579990199231821441578690239774382278804342413679873783182449907514991394593034979109845169866203243991613913648294837770954941514428769906284129213769934734486961706873434046727510540134688047168209059045205619397737365936078274558403643793146668543105786663952109867969019939088293210777299712724768991532756114142844723168646116783716922649799873038557610845890698314631330416860798947534525721513388697552087310962437128641119216587175570356036481786743170897946039318943744239146177832920338937016643910351939229945020602212177592549135879735591033358004443538260552170974437309731740338096954681144394721675601581559074030116452539712158896261656754163739831164884971494647408308443386376360858254960328920565648288889311866401022052256687633316912047705096655410001126090219256564714056451437145512026564602768689519687796438937080585241286520656127579291118591603340774423831101603471511128194608705604128302422591199041844047906735959824346430247705695198535019954465358873489460487437376723520299206390429796303279523423563282276197903143224801566951879299232045717484448791354949469813231667776373444023771171204718443380463075235663457911819408446147513012430095600011000736147853327196294609199233344176658662750519559723373070880558978870340351613235462285800471928882562378557384198492782881188113071374290200906052679779838115274084699961151963085790118629215500524031191390329263784988917696631180559331622564956373783656717770507113620048457876326563435984060088048294792220582862151600295191921226170753434067563959320936637251605234307594965792936781198087838888145266366328685449784652181715762631470925415432725890683351585296688051227265431707128169334191463460394526574603711273285680278735816624322489655262478197252668503076792473933010750142016246281235574294046148600440618328205920314776726818718251027146332384102798650282293980261081843266772293622265052536934917438048561516244579732361277640007796301391690619075414576819831764834072702740915529884071956025999739525651518622969624345134308599737134328825885210632257037308387179227932116696725320619597579387316425744841664727070725974462243894948466813054299670968809292341770816112976129774338866734934709862203395384050733903903935280021593746694309632967793878145656175438286726772965311259828743387527780713682198823412064099628957945438073140733124472731694640939805553573317293746958900793635410173329379991117536432611885875986039756081506965060683832545651686733345134964591237010933635555682478677751046912853032911783982645749713810755778760756486724732970858206953426557990419481409582720723737872686113069132873854852521208482883936191656507456203434731095440851928369312260502965660113478522642389578408187389177968730508697808140969510377104756225472365276906951249061746545755284891550142472798509834049005016377466410166199155449511653275609328957237883208490508572421463841605570825731644004683034373403520301725978537578755465730162771833750385810356697886297959523510008254853518770395708722058295974788352707273943555444892095523856450193377984702022232881841781684325635723932602271563798084639691101973583851218672573417221759565113642108121559377723875176479476436103823690248232028310681780384149849493701790348007039491069243296582304361265207232873550668626796420678081901685200307630303139858662864249853998404101156911622782073394918063274649955350322531332654465851234388714943278356640340857461086936345767565920273837623831717485527998844758925894704655708108387827211095495049186808307628875700293320465122534464834655839817195850490482543905453773796620130649614468286348072368364482044202417090441353415259110214967871121421831711389020911303993884658762564790481364408406830221101905118751118711939786883326716283442788260671413088657361485803758943625560000321806284241970624507870033651197412329162379285113107982142775686387013986209631486791330048646520860095818943160990328968202768091191106559863090131346957143426695858406383909754865535823892074578581687508108143721865725007859995764356747352656101623839336116387248741806750650202620200859240699141711119037588279430430591805228269303230297330120474124976904026476399427176466014017305470462972822762301044357008107270970636703898469857042008422452170087228205779915587941204683690082692606651643765702218137925789551903474300878054567213257876624088989387279983326315795374172232079990851006663985477748064731333429300300397090027522508926872512659157038170320165587659868656245132912734509838229810208936261812557774976587684605834685734495446756551615919810728377205618342557575686197948145880255890454141800966485572482434468738359193412559242892884809292445763443303464229874229249389467225082518935720190145073351591275491905129606957623274980198165704188880981297034795171694753102696759631015247750065826111878351767920503571017993978935626898359269698120708924512594003697291633485532109649116702381818434894271806680709647927160029553382204947242454745509033485585818737516930722270215680806737705280331944291575464013347525502852897963958340806823497178883538308740645559586468813300885700883798829461186500511739902503941806348134273454389377100384238804397212756054410626407342391309379868608654214148497672924318341634400024347430635558062143314150711770137576983531714991569122530518904927982089985408360252598585511999449512881055725151963569817996688847162371249118148870756660913406430778051498836827164223359626403124993767886667049363077066644775890275500375913201143937792267927988644284427380540958256977180921040800591867011401515174214715150309534554623113270552863749542485998870510180254868247701079983394979188343571496539213976935471848015568617758828255081153054125038459042417105171535702980367796506438817727915385273428891851894849611538328032294163425032892212281478212597041995342623592792342996325931423239158536051621305561761018155264246334450985488954880886446452591582558643097128391428484978637780794213096365502014885332050854242037557430425464716633963342648712759327840428291051171528427702931864008083931632791289322716733860793206766792351878339641919925452961380914205532397446177345601057459010846515431055070975873721721289282325502707153035314597371628699596630262428352794416619876483835772219621257331354377598524893652917538233008407807921521929610294455222216656514842523828991765286015013249107923503047308897357853434461516672986420178002640538236894039417380490979147620719731311372029535014497653437280729144911513135626812975887811596098783935665798723099612359845622637921511395726242329066153000512599784176022831287525124462611153086622031540273233796334688469656308554607007382553746404908445548129318239824026890848368310661018518748938297616604769027657636646609323719567913738067219096799925694698077225109526482252944849009527761861927235296616520607014822699746317093869337130141425319175940131798387262148271619456690625779822061107521962796863885449382041562827052435251112370298303530532358312064784021998453930773781063905842871581365580087725335464885371156471736534029759675360239801304772410848835060095420028772867778520638199711586161518304826300833291213592080934803957432807251537862080259933011378921846521160294111663069123724868306052848246406401921420783079202564572967137091281637095200500956591255616875548916192470975621887921497809721155997503988340742469373868373016700986181306987300030471536557850959224706462150878645910988737924026219035602221957416371660795610803083899077100561913048567728287267872432433378136283956013472807975856434849347617107888336190244952531683902973491627045325771738265816478064463007311779146705114692773481987188669784010141602825346984863716977389853641048623242347405411311829725226757370048247508454848542050857126371480302421288594477910581204149005987555371150430250978438882458361923596799258536198216783457531049089343808791350616657361626048364367251490831834150788107648290890603601426732648714754077956762432007567692279624705497471107801965283189502408668055413470021811163185390503573546204276897623795962448857693739317154483972640636419344222907789310091967554228231436347124826637399337771462335272812640622340946890506448856029851667234471100074101707859596621290307583911008585277862759499428173522755918381963610902421841928327910519086163465050209580017572630841976271790050657918795401230175592484367111426971993315229490149870740396934949045731657314628814108992344917881594138331924228299197430901692917494204200619698830757644709922237013999398142919568583210208576580703233023190649802641639265201745881960142830808509201499115504694266307846732572510495296560889964064199236413981630516055377431796233780318387617462882466474165074707142307839414299023284433717944792932457409406436423142215530493999031855873562044448605194345718455695886535207403089377616462494201463365938908338037646420828623777359360016976104448201681863907123966081559734984191192680561012926784708313421000517291561021816066759506048931454410754813325940918174619458008024822867828643901411477938917242063651605046152896835998578085447288879289393186316195178480112595141130825146426688749024882074049777805682065200984791989921353516062217780287386612406852172958962736381147422738487691824189171125917891760466188118742719660635990131685962260625315339850483685784005389685786167766602862941792376106463460712019742502688075100198286100034363902846264149382932591906490340467584552189549249713425122004997601950669718718006298083513588113571778928372316382958319011684846527760928416926168365964877268668015687730268700335960439865873646928319568102311342965960718558585772593927964050486710007057941417672516737419464743503240513065902599949005413957646259529015791356299106995291113124281132950075253889742516659963880814244000878114604078305153861278078693951828408687655900743252866005509920019654932449456653746478676689107417273909507099790097597940939396278054328426394773080486519230053178076681473274826513705025352574043998505640811913638560608449105102415183401701095149616997031760350607662317673369670761835620970303645597352872114198923840430781041065356357570215552575096327106945247084859314825004917910505675602622343704970751839502147575643016552869046109875654164371185893355785246696126609142957055583839134616136302302902476913168438048619970859178860790722455356937169672182855703547387996407479319396808893553718797262799935690369603454153503172826693470010650670757906941009988241792081773064420561760161076921866064368137127750888984137780907511678363311573069375070903294920631405806579106864736640183025823201767471825832823484972699432745165385229503995476572784022037825955252787390483795436358254272025429745604138837272703793120053840489747677890267500855940026322811523023033363450451906391784217857313731202032346457164769689025982523921253465665980901547297828883555012975704991918016397438231311276384078866897206308791382906400402373918850534864542890244447313073116241932747745296123599269317757541880882842403136710286147422909690163125373801107683830496976590311413225683383606752389231294910786173188000926085750801145580660957667631754990866892720379601119023676110504974616456582674031885119064008540704486927691879664569292994390296055594544751850551559964377296524065370844499744063781111656824384428727049255542241964064853382666468232820048821019560154608973862295379089700338068742770843417271370751285018416311884476091515356353981643223637648033216329236843867756055095199231809067053978198835841171135035490119188778000455933907451035578729388738305352536524153545418757517522382984117326822677520190816467129159393365307243300400729378167540629628716501764705080066715640440595546263146224876864311390383147148777838476359510442406847420983104000116285216081345579458079872650585926565198034511099807502340597895792889644055493027590106427653694303515635389767525164781862767167109719339037817410361332790037017796945671634815118699273035183645527407505438063707298966366785438963791075627339031547214770702094813909273302052898672634604100720466811852279068324719413052983232491693406251025609743789320916912003695788926716612280132086791214853961709267033528487908036553046455404009439428894359309152698539944869501573655740216734761991175810129953935857557163794755177335570490549686643659266306792750740679168393822907695911924650548495116636454796188483807454411664793688504391557999950743642065280478337169613253721847623200110576135379942342013955322330443937769897570094795178737251232059244090154622183869020820802055827842417983346350466277310322363147250842317089891926515033121722712690641793099522917183804053813352272270935583479827724364004729571859075961996601200628113871503583699794795974669279042560758478113165656100366264325555110704712743825998701434545686176064780597681535627830703942641977343272393398355304532852391902878294283349454029401660964016598635530017932230630775055095491565500592727257248050351655592210352844299189837522093294078987742774128270082130723730839048548764215347374043377063374803386162596901469578426845678116049865125724735638058646044587147611208573226445691251312880967477964034933330962967836761336819947956034625015019363917333457268508475333583870981466024174545164294952006808879515995658829800821581242444287515375811398149727455582837504728079118032520263967276519073949210737196894709627099631321694982884076223222995534948497792265356388672711262560701532128737175777021794791842190945033057496820148904595493808795343311809614074051484027019095503319483728089194022194215944660622183949489633775356924699828046759071007593846970110868277208050953972716636143182767022682273714690537834671945742566042030469527573918235093081602692813974681053138792240992792823417975751507932332337355197544565039182771475495820575527771607179389112149167668217701048066693544276466433657591466389197106655159210085898689257306243238110277496900849826203161068709584901335476997134433880273362312001434955582407982611988737161443078112539378730777790551413751355086603483781420418599014507904216985311873768611133697934086763100605181132732578344586039968935960717350043126956746751030667412315628599193549084910631204279738868294393942468543709136357526367158791738138363733587194416381194827623335018013958518102266595127491243652897014526317379525915068915653638881315244301458162863102132323576673169191984837981554621908249148196102314978804688491132843374195669508939531273212205577219487596205183249254944027498097567156659861276732927280705373342090955334288079532330084030278637364699356719795824234177582676002127973090341175571950281201400056293064548841138871184205282478285220885775439413927225143254150262402713393214905114924167739216843334171670771241794827752025047648281840661885044711532915116952677727325002364361994234816284193061563510626105660938041429144480172534883440282662881384006054577983679594603163090726013519818661374504809393599752823033926928605193868131028441244978277353376034675519165418363323831158515806006430435110520802187722546396725220228314652407029468878856672542674405776289919789124169768656979242099427524629732395043163700484488664357171529691575939470732935085008930919600739593613740157878864225765254157067452902248572517481914387872016277600033278398002013058242987854669135369506940861858996508303397548327575092097079007218511630777958891329156479759837769092716879072657661197783263068122963100185876363678143907507751930643475514863919998063087270811466273914456777569888097509968999792302359545703343854734580269545513604806742352752149738834228001099142002745666512652528581755478185561153738768134936019909256370845815434115829544911230307234240194489726762297324080392140603947955795736180089035730162070453111719396018080171125468253599142262382403798662263752807132370177196943943760576225703301232039217244539190490331340197256721603966258083399007803978651154709591617034552935894954900400117976784666267750825272630560454968848238769553128818773897262491745603201603662800120547604998441754252335813340121274796943839053361370675817951988100024192284694451555456322866919432898714963842048846924037912323082243994256649470705579361006725240306446411386105759469445592034966140758068462364015739684945122814636328536112607443472956205979386648965106121963544783517538623825251929026334028878450962769063379026259668975951427934564142134542606545292377586973972410629486730500259003590577558101238627919499031853207075290267874146196708798186622572208409309342038185794026340177362514376803979074730141164965665653992821611756949154897676627961234553664759258455592098310742986032118695611409960894518837158325969459313662959266294619020242072403865472625722748749191435806823500717031311583014860297602223768703304614479733235991619353576796090624202994230288869700213612860470445909001428541153462400781509382352433111593632948093634199034994756881047252673979269386977109303887281639465239803085958573570617862026095619688336551482098813304337584729558743658765809112237700134791363950639303671301380134559040547617181186446458169498632767966137031606921628313490956619049047258974918103511421914558529330291985650143684256179279085347056117240808519743192734451050078747932956409620603605648866228611336175368645900220739419417175847158791904339064461834189372147497178508799530217367962623765362711256700391908967513507815033514503547047936473034520448386697788735379928935869755253823391700799250026400242929165700954851509841533627266146467010441378059101858802943356529785597564870929870618467312172527417927278322732415951753234506887519823462371577911657454386398645600175993406963374149221966224367758686792853901941097021573374021888395842486655743796118955777595049475246374516045498253716119021725141072579000998485566326620683254881362879559447472575541554387208034267742418916283159270719102734346314238250391175340269406740063769035283156680462965250249656057654954867083883687974436971207867385453925256496191741585446238799192226009466194520720915724355184044367745723532621102539331961237493376515378413103023823768604513457772743406308890485725186356212679767447807803603316215940906044814708395133232771277086953399685704595315201374714009387524558909194647881940666535233261815702368250453948124445454117903129633969081057562433084228386438624539760310684864280218521133289760348107410187389247999705499773222364783522505006324881019110710401954912346638314586871881140044200041992554044352102597121746599463324047687668621730355942972785250908301960206249647293670343852767396174998887338423045635414531449659449946144610768798608043983035998548381086583575413754030532753188557586249714446956400354923299014215649467122956078087093439633074788254743935446667014575956663815699322934171906371572631866370863909519569309749566066841228273014583045794389799572297446597577576372887687891503531670720460835323761384708971130935241363150213331193867883639892839287857658250678417352740690196146726651514431371683661448281908428009497897200675261116037519811165060333228235070761476231562948605949130518809344506418705144920080797756647606847059581985294271963124139520206555459309501516295308487691063697988303971830284584472877132062256192002367659392667228087876009679627185815927491160517461444963209519106025397535209122428101741828012724556901656279757024360353702958015906450018473307342786257402735538833174497856221610883399159205616857710031528630143909615009457621499499744664694049046730481171793888284050801002068385904030895289520799278347782598131860231096912794579309616940641228076947314244419350962503691569227065726067752540301223819655217807380589089030882580486666094269948963699172062520712585547038357486018896106663083606913797664149487924280647964481446394496375755651020202123667610415583441264089632233069100691958370121807699481158737945556681528283092839148210943116644805245392703396555575492256665544716199814708876961947394457499136489226478427913584879684400538734553002098584158119351615210117707081567180824921764581462366379271997073529564596496464121444583857442469343769612712545420927018145345888565983303987566046977567999116570652778347769680895242382705403025288751488748450031849597090146877395871033717084543845084977312999164252415445038804197722671272257253055276944112403491860805822217791634296794999068012579216973057714447540050488402888269671351165581309124805894073277842637010930084635680988371789850978219151449675686750574555870247664251500472408714854959671815146028668793081736542450174835960287872023010864192542159427769226830507056204619470881200299618457953031491048681087185721519618253525577396958606651323857217777539542164539941736919670415930473028098462142075696759912730952168832827341224875435338032224366093414836176407037045102089002685184940835763032457112539831008505631733361606409645473276532564944432192913301288988448862726012940839069737774061294820419884470417112193550979735891432080375230273775164617804795029139823530391753725898230773120718542326969750225889117431278472971727313219080044111011513043421532668759029451098191985835760699191913772639707577543445263663346321354302858493493541971012553209199892975255820583208492291009626325803504741491613631857688697449456308494091673718844075643696403739172107472770355819422125518900675480147939256386564688335030196939564731807063786710632666459507001198151303330536792495846476840558970267638185644728764997815472077481749794380932947350341455487014664344230957901513432303608105603478838920607062645942574361208603433878418692167770790062361410803006649143885253402171998598524891679038191716317014173471525591991825422674208330987925418803090549600213830388503977316297181468796455820774066436177582767983468412646219789118561233074762427988921010105338924913541908747388184902215160395382899894292114603615685528897667442251815479714907246238086607109227337951442555080498836816444550493935824228781123595401702871003009385248359261476376886164781349308319435533217909887373109582291522050149039900088633563201296348159216814301338047516888914713735288770126550166895872901148148996450186943039993197569138822616838065782551413132569643487659860927902688239645645687223326664163176022073444366795017911180120267654552111929360907953689141895257731913412750105869525037811252796201305541219479054659100259793150023564410766009536332950688807403229451192735389277177522364637426201560051191057369214444069663289100110024767989634517532682838655780870284176686985747753287816258605364634677401238305458923350281798159253314946837375061918622876288210355766524312138904364506231785107955149426300036298376151596895102437670880362450830085984618281438122223826270242240624674714001571301473105445816914690280467127722412186970314902113652715054066675489900920354935357561685147600050624775690129693983050633094542162705843290073136596666990104722676834884215162014347782595418020559522397880643485434416638970913881139966831801548624558773693871741532324926691870514864229102655130952222915795141665491494195962680352593732551349877542021376398391035530617136420098665513203746750272429187608686439422173974276652257772256399556006103031762617984849561358970833310064545008962668476192174053701751668809847206855539273947384466150525102143368161678356506532643022792954627976533577317408047700595832026777542729797730726930200052436581375399593750972381819013136025848591461679383660233772041581756074102681765839115821000125124011983440200937426512006123735831451395315106296365146140886105597388717212097643668587105918179599269006710616566077104262675456920611341469688010995743874350083227375883689455850519432459650058796262164885177481566099178543863256030108659461149845210839484164973447099483967766565037969151562984967333209109066408222650816407497482414862171180078071717726430150888673456334896010796261588746146776060807406115177123284270749395182607184082993813516214100649235588533275745137291581535893005938571024733708134046430534564805390193488000674281318689287864393600919706014223994000219288520573678429954701053405822058659764280943865591344925386043246754167979704359235003185351216565265211182154375988826832803980784519038831543985577208733884442120762192216725029632048102283470052266176063180615677292782448439594192991917219840270386764308805250458878784775373638451863104599774951547250493813318733855827215619013519026736427621945141765614877155078997528864675584936003083853811806050206275628198051053747361208620991041755814986014903766745261338236431032845635391908542621128709006397494932392847726807522595126713645152269560914911604249043901742662869903219829750839006209781539306195466894031412024885420779465527300159163893139184700455674152978111708567083795103060273931129011536392767002785186768272992170251671846722859470588412043427171955779302955701807225031335199010792815732232408914121617118272323163262202459497371609264848272028314221217441653604779502340638153439557685934912024213177239809502768388104573219885323772668535497557550260459306063316012412422608886438697936895986662643469338326358177040887985207069324963452646865585290016654548877570166163955362265122733243213798053427917482100833323899461741607978998657215566764307048246792228319983954926013062974254720490814606538583874096749244316957883465327294463585368468822936846882626632292113188698454186718514319622540623579282431421511402304648020292027623453969024504055220879874103219974117114962576071929730699000019836072599859454909471490375328247582585643511772592037463006376921726007230992304543916417659249941868763593067169151234922965570058240399771895442822020966500033617835732449091548777526724740857578408790735400895617910743791774660813059692973612059676946751910623712390068794969265694869803317081179653388640993967705578636482617376646667653175156549564741351941086926051691182285729013324652435441394681282629163976296848872664324483869600299208871369413268745696147032949567502630710952527452520106280810893226005175224066761452470633116927836514899908890534213051612493194862031908393853711947830860645473785745854362642108032592530523751984576356479923532918507418145188570546558929697669298080072118177826653905492260603388615083397339424360326101106828076665696911598870198352898854976938700711858707943250986643415968688990537697331494425151630129518412502218047293770318285608290502654211137405572197948819228600044108016246959229073940866768746348866345297436174494658939174607383540264956562469461044287849185042063170320845572250997491593378395003407565331878300460447522149338694465166347581410803939402449110412482499397845010063707101937287293663699003207582892942160037185858402225374591297998597567721449969536217535774659646214782537167007108646231195148419005916749147413071659381687012573933151971958586307750991830723767267179662212746268233459993227442729958996775202992914469946609992853778409324552178152800253941907458053851114179895505617009147027382175459088966160111879808510476234301689179629187449755116726042388073658732965578301801098172204918330079192572781216028400429586731301902981034457896869386230750774033268016362889992602823980011959388398355925200163657400197455009471755705385804196170560715716295777227293915214996823187123584974908890748767708836129482009025386954908517967648191284364624365972315254133540919546740784517761753066280380458466106469581885117355687891181733477452376173548158597918570278089887705933001248880097622315455642414710280603246944118925370296443559488876336493146790536265614664937486260229606441179654485264986206928547628828477314818100985108745299641265939751519535537117232757046502972148546734556013866933551294379997065480590612011086993490604650688676769071544123053645119560960083948212579544807589073130584686553179044698812852953270656846236331175645956879560440717128218410533963729318198704982856589124771068947938350944095485219398845975452845008286098255223389887282274822748155118254031720600963402220776763197101637114216680324935291236973965627020390350701625103205343658877957891614542343194656852330382774356348019090207267917825267279092420498992193341874535705934624702795290409311436119103922913755791948939573343374470836835646544507122970522826882913418266541730261331923797385175581480694392596541433059478043589040072349864530105337472940444609686124399133997954549054053416575127416086010697937050094516320019296466693464640207410271942045544646836027610978540494958952416738575966617791120982577656057318919436757725914074407177620083157676669950459870019391311813562401902011481398030037791970393453714616288721295513200080074223364819048165911073867929115333753986120957355545044629876851835949247119507162035130845918402454494956229363588343361746251264638274061607145856654797438061183527207933259217938891569744804100573981773361098553833849529351941843730159005647846764413414794894091703973571408616690554556216337120720086244073752113047962538338518992915406187496786664679397585233983837264786232172893711839714740668348144338650006155325644336302068951947038011977727857997823194759879222564483776674420512663053358023775738312723714909253910666190075318143430589311060965469220180606746851581246753547187700774892992818938002973695555398004065027885919482260231751235065475596876394147351764014142969279753301589112896342044561624029482921669793249658805071134867326558669493551534022240419037052846788940758410717345787005259475887922829644851482641489532440371104257786985659464137382788906570134416345688845119617593856599825993908640366550326788833337674423067752291256281123548992729240705370803888775891820493506829886180378359729742446306247160305413152365812255337668195227992925434927256462477995145636840709413669485501401981927049105300224539568208566192605794963259660593848383309832500642901592332796069739857920105856439935517223058654596213130247140726958487187894054992796914551926901464661822442634263844153458937001857140919893077772174207794283068577640142242425756292214516222569001369313358826268782531584064768130914515414668337488378511481610692216914688601716348071103632881104538726421196973410540025184060650732906004625426562146286454365041894429127046525399303558306623902310807002024814397299584553304233244775886859308453009630482906686273698655811084659216638880550280256406658238672022574425680871280864525076427450757959809986424697484366755717559479972646443806020666738394962589705232250410221368548671737130513127740161679867570836547593715072753143092779851994551412061627142550901565844626427865880078916451651316184111279015766849358661986106002347692415402822741460134883909658497727688992287272268166655898111874324969243240255816208294024716570431816859067563768968158537186373287739171665379664754024325851638353518508003190422487596215828686266248615571422968905933431345163710949591279305102435360826301783952605166883070228245638006633387141079672293810073850821968506886934198164681971631005405035977686645682121865894252406510918741689462425245885040029982844825943993492354757488640876535776925891703467808511580344452475092753263580171327703714050089216998819767928393478401477056605017897396222029782745160685171450156912563894845535475535155060153860635368056679669475909013063646885327763187185310628987370837259969894431737925177391040957421513446600451048426448781811277198259263215371745398446116618044545198534352427746863524828169204268123998631049433754583441299255535413054940353626717167217486678646215213326297514125121104468640199404182827296142128562707966560704482997749038331366556692735214539525300030088406309788798865754973385032037002610145678589065497538788027494368084433327507865950002123395595239977885921753580985603407176393431031911275888621333384428993042703483730710240184930278639244881625163364686520039342321893714522325202692918603519271465589255652433052985334386521832429983275956314780084227216011227604511080677031919801015182903224392143604353298551020311858108970500579245249003430398711567335067686460114301535887940563862906568147779702606472502276699053809780007977316395663633399533233494866263694430413661992913398859980950733618275832038050263260033786016826522786856465196544250523144290697037055846294974390331571960616344256640923256632547568209164052647619387921154245568649320216698863551164771122421448411141507838314958966644913638797018496742931779698891130949140243985700189294818610015274872947918531894293261008360156593282944353928526194361154623858111910129141301113543056609712494971656230132063852166994851102402636054664339653876737643798586753371842538946264398413170182280978819726884151640024556322554700600220484989712199437603458288562204240087589608032111017929752974715452468492805179229834703966356786552420995561581841455328987412767568757028146429959530815936023866221393013789214056041649668182689850134835869494296330390537361772313811198044303510059077755456364083164266223391780729338218082049744901868146734827870644242335796268413708886828054385609467175526742557476731613529615138870922738710334083142253758969128818335520429867225319859919476807021049103335547733909078485308784042002852638375297122751831748406799880775891628655746937715123251086183108640284113367232392374288340070443235310441989560571037437717800914674103626981106200226540589384007551143191768169648609515517785134528918165479981267277299465391115259269787704557483965759834897787186843399398732104029601659887942138451285679213402372989553272597425849517241879939943868718253588049255480078394369942327879539588691282965766689794705577134821016755035917785549219916175785333745647655751951740346396284728574259326480966791009535690067116301698535375442585692814641305840220331718491542729774762992980686323184526175997143980663485555558744789046370745116618904966880659077483969912562552838508834764774036566688927837388957874631612781351187296443945675774645469092909720645884569645008202858556872291328646075281952064568860873764980245438427810715777921603448771736233049064531417708501419669168955249219271379924074560104554553659088405157407503351334118049392652974361406287406994207167380581040842146354058172546989905921810092513937841710874612972355571669202412681117457653608896056419383646559588579514515786342490845784409257255725974681800891409027403078813554190685630801861088944637364839321955163170317253363106711122733437524301587582409021747288198946881600886048896553402287099692278169367617138343834115408925737627258384216103127425826362784186157551611839119219439734033079159727794456888795774769502072121693114712669624785707776221999181272991800155729778798662298547842560071842798578585402078684034320552157412340116011000498280194729920841950170228229193174086720562384901750438331100129749021458344136921173714989897792288339602665038946352648046098097818667877429335328265139612520985627940362076643066394997564997139658825360070900901882089527072509040314233090158309103134515544621008917706675964859417972611963242518379136798543933817687210923093416874431410218321506719582576474970296586233289931063296634803685257197846565145678238344722994173064419013196306473104462619749562653054681976944165546820920628372571742176155749144880933628342554206171022621715371930953336336180639037402955428839539039953660151979197440074345806086985013823845441564525075356114962616368309631233383741607601270939439260347327591834155125879229640405673673326224428727942558879483133670382523823780490460967302337854229673167521079835502739605534771191683500461892393009660036098006749089505974252189067816002355932834684864335299204759245812174837559192172270682881755743448932522721446249642595552778844634717261143557894990287374515215654813629528234980475699958405365928503279394285780667076516112476476548162857570128831770834139280505084954116259514209130871849436308766753057060844677552583859000390316330299533815264658966660597287405457063446537865550274380843785706071838391116601765566249776639060604455092448005713367296359300502812816267710909663777427662083683611710775889946820152040957314178467099885759660032604708206799548998887884081105120767274928998043812584694646206063636977180380526495376711529061301782885140701627741030922288199214946384020362501386311204698973378777877551212520334487741164066577714005865237685540262722098322610651142175740435097431500219829101298212732455055801649883410048408762611095704444170008271976216668130559485760879057067701564621893724745403531210509338977013300245955528130975179685598553502219045593819599044408895180550749444957845849594508184979014277786091042313518656289939093733544839438953679774357546128205584447829467068759962133581130940841413029404951042266799351840926710433764575992225742439349925580422693725101856466335339601236804075353367030780129596539636978800297774776967145902478567914147523529105698850576006975478161056014241658044566408161089748747489181426089505488886340975423548539008678112058138933275572212502440465293265208621709765396106332697413968459466157612922181968386718041903855823620766940022566598987705847262494133584779800045414200723640926853890661916494556305014996938631512521820271966004237763384059931998391536928707563747754980447792382995274746958473121845711182149294959308778740199701446907878528359379988195126485803085725700219189303168537167994932006617140721480791110753621462216239989429952683656264402554024471406766183749603612083375433437131071429417844471431086572830421199528083712227597339902129779257874220278249739670992934094519700681572420778475870024598347586884409372525749783687946266345381276698323946895330821012165088145234147167839780733414368407498933503294679972680107506492567146834300678282701938051204626184292106781770079989392082701928947995998083506541837865944568936634132909789452057509943755628889684132551119408683249796988132355516244482742827490102069449479978371466915213413239094266394233024429149119122263319459138881584868020188574749805335528786208699165043319852094920633349902734041229232020390133992441253529539218327924261937652903347476141580916625615690669771284627159374298785718292447086256160207432561070371638644884442724600958998465714976398613452510793501116911339214675745032568779389637735873287022524855091079586864393682408309023116252965588878268317449694363563971031940494819517289009673698347634944108501407461338812035400238550647190034895057014138179906346489762852591227453573930912314565574237964582088298452091427731541169148556307835974018548249552717627394125780906276406301371471132710557026578808504265839324560141381145608529901937452246594310528684982632310529687437803423254304773128629264137864717068592076487456550488151690699940217539305707106593247138088478586391109485690664789938352575824559923851725771671936390354296308125934212316804449344611260926564316945743129644400804225321099805935510889229294857700998508762210870390021942170961642316171702619673701168389342601721646221727788509747135343873041292568393090573376023834840850656029855849228018840281586284313461355276902151719774463516996956812793712653948844212453523373790293740068401494663938129197175191792844895993336925249777683076319806412530001129823393667705211907890077100811175849429284306577074512430237108812198519188518806542202401505371111940674671038760199139126830805244197387456230195550850344238403996245237701971650131911126958496211470027689928064334441259859770475126088044658012071689114298210401634487976655164104502484078091671595686757266409169822462366268112111964825103854378989066272246924264545923659098403717894107221378692352403756989872881652822053134285535680311702547321455247503863628757681299396802572104203669671968910076149017955129279678537781704876740220500589206027323733373916662649550286042988417410701151185619201243692372510039201582105493974342515855612623526250152192745025181668155997260565973686406735471180001957926045808220207208860703610269540300968294043161382612249342020841457482284891498235074358136369091485900772803718315135780171492175358898695060600262849803265128980679943387036637115551577909915060620836101108577667957017921087954331742194531108234751410941434405010580114962424870145410501653908024893420732750951048845607678135877901011400596507590173888364250077492186476674586993288528220197740763284569965888174838762344291932945742128899807943803365266345861663628745321380370183488265437636820892002514811362822921217683899322051707705863643022224407475294421673500106401009806875213015094776023163589694825235344097072106344604019776932437296251893465054331592342395179387257944394600339053588628130235916644099876365595595784259448300684980644030096705812430493443599650395189114573368030074675677474436104257089662935080327460008565787128447077779646448357435239176984466997663946190633808864219937362335714190633480329440001290877548446478292099459758405510917733328793489911025157417169176560461380827058962708502315911652163998880544026577665269126803037557864144993794153109191785350690595407133456824504317720373984949710721338559981178344714346526531457986025881750077024951849504112704270356207322310157259215606054044369769054404211999510105051761467993748726811707904569194550184473546272862429979459036108427042291177876443523686265482660271727974248035923925122187799745012682873317483570029025822256070883385328544190844318884943978464090421240434454746787367003237343457976333718740585973614336325556006763508485860771981834404259999482962618617771376263736321664689487686681320614487165850497825271693058502461563855126855762827615703403566524738528073816836405781024399732950053244293957879168839400271450380340002594637385383380602494889825185095426242148925799887657761274801045620884696152225555830062527705890918972375732506418129901084423508861875647711924389673086278283045184014716533605195007874626216645847067908177000465376165521254744937704063418538686006943714669396740586107740110032586840957747859070269506701254795408483442477131289830324975407209994527986824960479560320638614494991479864069911860207396393764941674647606568960588626081510289178535999759665850556332985021336863112169310353455545778207235863537310069016613828375580760120609169321651750734605989903377555028083779761527730234157863412166042806262162149500104293985020404364873504928321844968160587956670801697933935984274050155690708890751300611637389615678264015180372703084642783956678882505735973965991421062937791432403497927086112008515752053794549579947218391549305932987246126058506922639660456402654912658487534845167666057682403236169492345158096289888975904042006860598942922955132186078932109568366468532034547663252493177772432359630064798068842767061343790021873680332616969082530308774395819781787641427906072840395601395820291465350494298007223469859864092339617082062327289101242166510273594594989316418225175376567412743672423049209847442117262397586977390151569158524277626395362755823479444574004693366945358801206232093749194106048980836524958205034510679868849168420929471235204586999091540308141297099557680073163906223659206643159064862299505004651362528266697063484019298279805495227576896367664253677548155506407373768560496536935331594077119407554489619967610473415294916179422281048587996170425931218761290212588542358457252401327889196943252180418208123287101930560203490190042237615346311429426152606850063256073297407347406594215840707257254315122650128867297712991867274605933807119161513836017818963133733086413506768788875051678170174904946496575957214966602747516579938474816828802240964873982212728913316481051277216242983099894378907769571178520598278670025079431353858637551190593651018563645842916604224823262803328540236811863105134701946097739043116531067113965826244419386833352227910374508491035720245296111569552867533717247613691393201241172255521077201374725780002885753017167291232651593033019891386399401231440645399801821612535993799329181108586510524926544566012269074970309166559955171764636759255534410103570446804802323102310383884813760571155656442924013773903864508003189972105264758847812828191225974508907913732661219183547277748953773119744093119707684709805595870701891391965794023315923969310785207059784296675392705340478258501069362049580638348418769779627150226844193635396715686562341525751281421012396367081417973238659814259420869843874116607922015928211233136573847611074299988318874142652860204048113666546903699192148348999598422864895134323603349058778608640813547138451422868366764949503671601971755759143762688740406502640412945444614318595942043466926953656975806645877211809916691636182796662544627720604815752487209025973564501050742171977124124448689223831118585545843758186474314975179113149316410033453580442663297032154018770918492739322664897757371508185812705043854655635785529213769569953948629281949436540005135083204524135461154782183506056242820639592604680878110405469818979760739589134082277993683138049665257192703676360047743928967701463595385251554828233609658986621352933562622444723527590946720260568456003652359649270494498810276459197938210797497248831253811029890385318889058060411595039978328146811861552433587181901015629346295039903952120667041364278558165977596645126024105098516436340454192102302128665393422528840976639732835335988791840597861070364661975923602511964967392652960363224464817573664181027616228058795885585432294828349004509510002389541426919978227031292598892650011067307760049431038247683129434335845807008841572576021472260313112045082481169001667744915846204175738890577112016992040114188538908926466608077746584559091216302664893151306915554089730070657767295448862922828081572125573785126918316639120196178031697076491366542609182982721639716121170350403384610049892928204808505311970487177618961016147142902804556449903690697922915184694684110957706923412588606837554148168418440365362679480878459276544623704970535504517152327925681778456786108548925099516093529633015465271951496950276208350864820052067429781262945872654950985482370475690466344661742933377601291082079604747374218089343157750975262873040147271637538442267487676179167833650887148992035767354384730460571358046429922451063691293250036823732853131074499436370642619878409214779291401446636628013744009648597342621332313720004555084974021494981389058032389530948842383189786814992898371251191106477063275558109482194567892426646926199417752590693890550672197242804792008619873619963854206840476235736054985601882706668331870996192853182936497042895279556506963984926874754630647532352964712399763646878506289640046468116788078160124116081876660533048742370371483438275687539830853994374713165448197973487947120975518970984921669793979990237027457646815537449887086888049142340176055367663732135034953647838274352986094219760982252713266369644661857026178097008068276286649920885230771241919481828644294370310260986362851874730086187274649104549487244464440868409858066569336994534771339685341601306614249692099065125764844502472417566098688155825116864933824294855250832845008128587649579747838839587087114938057948766380726313783008888430605702484681304613474926304935470110205930603391892314833192601314525581613807760952732084998904576099177916396402425537136526373809489124874737845975527109436165043360004714774445833586577552123031188692760403527630857219770782124612747937491901859982942400560409953320805618563236958240014772095307793786572436014328740002942258419289692247511247636465154878702308568025691997757004448358461593649918787630110804699760250972589851509525033424136446518428520831255044396191775549289699176382306180844792836823573608234655333891037895539658843974871263116635731058782878565683904058530311086241113119369169154605415263183405126840756844598112676625510701323262315502596208033238915819285294173302476828741308174711619315549714454185538947484738393777399541170901811731884448235647985221251397817730746644562543656266335590253673684575233260849704704988299390982828514417267049816990673869002536098993678648629632113369576240793796671186917990075199112099987473673971223575998860055453369476237977151439997175657654947545505193645098477974192992763682537395765035788179619048444396509688461073901238185531965399448659989524365110159682098732833117984842378028697432982174517892101394629489830742754000658481373070603704112622503427843518228778960644586568609164085197904715100466525353925442713987509882521597293492214974632050057803231345491839038293658442706751723200984388871804181889308583497277872216274021357608384549549644980258468465614940221360798211518032345169165604443313959187156465736814897735864506827509375213528410507547928577291009298543003595263246393943578639792138216653395182329322992894984658331213391481399962792256849678766820308945584775483172328284611241194974383773605173747686278566433617158493851423832878769640201052893315032040737529691244167570525293876329310137853428387925417067995728108882036165828378120889188998165453420776446935991871458758369139371455144877896339368363397137359245596723627347757555479433241982366288403214480211710009408886779344009362548006321679144160207209217562016068023571749702578587326938984213179015651240954884575957231795417129842789600682706587252621508175894223685986021899060519487989374609885009015341495198503391072688126821496443108864831355036512331347903982077678120563099047111923599730208661625739754622746652130799799993835504589644598527715435581730328811892665451330175987348818240271473615637391208238155770012164890946513851348230150146011295063954796544364944019021234595306598919908488696599060265461338272907673793965846511596356486171832548466675089612410002602246435462740608591960347681377780803391815989408704969221664140969745755171098849373283787610760169613235174241564033707805242480265982267455450072048756192845664257527101621522035683350373611566096076690163975313001879495009387591958897373862750468924330747773112392785080568412236992012713337121255295069784741034154007850818783476717456240776024214881651118947328759295596759910703958728578014335191960655213853489783920594173283982124924130250655959560439351624401812027488396274013992582338599960135770547167310051104601772775713938499843932923040511256682442707601978932801449153605086060404080663643420823998217488999096381837996036600303913972333949364365356985852466308901185853774521417965225683358108525875972510756640364336446575024761701870320386606196725031728887649647090417146853848145914087342062340859275814194079559586423626261638290442319708997071419008390125921819621088681272918963858335938241317992797174683595158475885324849408532958086554673948243537391860335564311677589932064196085387168531669019454683965897139690326237850190490085839322516482574660933586967690250012996665185726304773333811426815374684151188457570640466711777056719343150818826624268041969325932443596087325186491435254296104183199364719724960856855499131397804034325888714190414075280521337995185629374199687350990485922374265173607496480482680236738744232061223720565901163690797571045391867798077574492974119885358084917456065776488324617079735916822302768157732208842629047919627530085704700615359986372466672983168471717882241133086391858756179772406217807007864110726806789857307650586675675234756497014523361155076275040988757689310054434169840628068139835632448332116901751887261840747475405431001869337929723221574673797421142069017721046665240731313753301348898309616289449772323031802134212030253614048306934445564369772379786213963779082558436434436056580885096202334711199049306135424806188390232638267558945282023340382358271547667320910334161340730021221099756482838144597027519715823625212125776824819079050972478059033337387629079330030541484405619545827118762989360591778207513348261943362737956204208135475314471630903824592506143859651491637581629834436040413438291518548611855918390532343677246269114943653491820225132928387654021772982835886793563921472103056514535337924021140988483365770139164664214832867418591904549353439011926241536840052862869236843187099536269171003312528309989509499688252940543528643810136438850101227355833519066216085028979861437595503899346332588472370095172808660273257550993246520207610601085517366690395950648366777173354871145179628850790191517106348964121781933148793556443718478955272902886141306149299303547484766090902463309300030917015747920111562111034543672894685986052403667602967845445297799546933993293190396480534721201920302062726354274602505091992165965324755824228779175113905284127536766092568870672750546912464223265814503293404191214481988351333945269331979303656332894719826786271492421522219348118616009698990853487519011937197493953446924011987050106018607223921583214362770074679119771067655126991203310032429226868586822058332856851836038592796371518784227661267727347652890562705944112094262200971377734978732279372772401149726705401468776440143923562327189982314787253882071026290592245077564838093763092046008675335837404795862764211239860630760187337788883638648990500422641023723121646247527430390689661877984165973575091269292090211926046920552456344894938848708671022802662824482227333477910025725373862525309389868443223276496871456049155879906235698007865974189632772142565088369370344178582121445748845229817434810391688743536006339731936599129708210402945524036215378613811657259270623670272455587156433291982544512517503747186577548592018751265524722702775660022564915356554059945273452610271781144626302769395766432248112910796770617756758034848574854718738593679093655649298388870225340621759771108752464494979517822683494569957754547303344505694005237167001748472367609875025460780474165758763551372473774981295011988064413445502846822702337698503755129268879488454767355083717185050278144896840847509304000306018635344350295238028626757818965646347247305413433109774970940840561709497902966161499566698614845073299883531498779190873274522298660734927578406209266874355798501121547581559076392194889454490609553471724149720139546739411048610834887376395719501678515702305546206043237389317405604107178006568295981547285198153184636030798826096445089798110603919257428741616012191092898264752613865616226233430089690791360684573443660004108784505797645468570447479461565397973514598776949262671748204124704634585276210323415913504420282891439880863990245167127585527841262030997586207241824375873095411241411423347976716239428296273408033117458767915130110273928478993450372933039243939976856405520030806115388151341754443861458369472268109814546809826868505905622438686708708308418444492008952499182292248529373956734037312732808767686652249255644658993787330435326234439312970140736545937853711669966406509184290524248087637242124866773451064135233969626029193678594116481176745251729041245148745067995347428107631580346746007814742949065537776253448277901612075395519426386722387565030775844222488921097084950361610563033896194441507532325891552660064932437577927930705603680123058064104063938154785133058448092930282093285915287335962009929248322437826369095011266870707184747656323693363275807619860208993368381183508815593620852041673458370944981515992779967826598045509222203233805704051094354864098874502263431721866480602991578696387183767546579454847803548183452266032306194214971287839827778877545603365142700819411524782297332540119496573407363333474879912067703502157275255420229893012213290918254531051886526243830159321415118284980299353232995691616174067233056266786318852994561551499596261443799818457414586932498442792814143815598733893863703760153883672060375557298512606583632159140561958010275316500192480976881975833021641286439206364229018017023445825547106010960211210655568331629642837012750236266784636605388186627474335306096564984999799974020074292560622085541461768042974117925878762580050546843594024861806911732423111168436411877498111159733941169252848595555627760910799329854056927903935753357945322452458798131147741575226748020571327509294163674125524295721850821047228624562841866951790176505712279466555948568634196054221071909312120912043859986231916972790210915712374409115042617729705905572201830899729177828276399808881162417034203757009188325474908976361259017337182217162903738927595115453433896530906178072991782958527638618530832483249190775082911265568483450829311409913236707666820194800193069767644324018462256629646119624217558523236285699567247460081641607618558533860944127587892354659364276159713468774730456547043069236027865425405779970323413572012231650518977484620838529555898818741742195557188693872467312371167837510730023319060359753508011501460019914841611585400240250025661154059647335216674836709431170086873559453645878715188341574309991049933397758623832841881141680616049992825843653706847920706618963873597939821156912956586425099972391665688142551644597876118868524578157853365045703904633159541159835065504115810345975263914269889010250988007700592279640345221876815823701199037689923015568638813046262279241649965368977293096158764516914830743946502681303705015256737202276630171321214612638455647246893469929343037773319258382043735551251810672033119808311552563911600854378066514662677300636884469089786728075056321937042187926460031696810142387587291302228142762994842636721452603994447385503114451164706348970856812082761331123866659324362775784727946147020419737196752179684621991216859070249616664114074120116994653168520265100261534025529721152868769756347851538480504507391420704161074875887626864358687069928405224476467271273176989669247591302282642468691013713502029137691101330335578794293600860881662776125456496845375803368599978325134781679337391083053906515591340517687633380039725496001971578964742911810263932723278585170262965771490736637823325769889630224459430557782783633325883054286793861161402980311016297385290706144903867788340419650895846673107885115859237208427300785720101979978417076426115884694546698292453554856517915665442602606452373637856623268914507598104576413299450273904658391720698379391004138518911052744747365975705683497019744337632643734113013905988750903196351694565981615503289410372435900235035567535882614481984893922818475199601634455318616592029188125156342872972067305929352825607623941241734522933591494540884570272491534492883124940629396425866005114279351253961089318063796718604319671143941709453923577969920881537071268881829587362791711863425324777327091396940346292192293071761080060203525472805979448576285329989445208251435202694918543412163153098933227652511751079514463593754196956741390008569888249492292497298350027347166836502935617847971842416783312632139101664558351119120471014371522045787021646430785059997523104807653215788291644912462963397622883937982419062802449780986123351015219098649390884052043247867481392070595858309035861491077458983608715636017590153318574196931975348245819373002407397878179660037753773008897375783108953141086187776840861388959192554445461075078313216362001238707199322933082930788288834830159206581333536527032805241770059717801724387874010683620717326227796515265756614638152854103024935746782962265199172105503214723829045385200119288549830939576882450070951607342151912801690481379996959289166879437702660128415278275706750354551141634587797228485234146131303042396086869765686184891111001344575904927601964147748022664816412250529673248438380210161418607628620980128009135719420040830839436217602058498097696973142834095234721415023448788249951758054810243893971124642135393802184596753415236707212691601368453863467631586290090047613410491930488264207746899789157739107276711863868918141036294872285211177966039560235816493859280492140312224300735560562121357373607304157716896895296585896306876466144117640633645187180177364760989378130357327701922376496188419746552743148073436203138125504997127812801811567322171272418784983016094055774136003638665490192529120737544598327079440476756895361965627669427284799378742236920998273783191996894337316983566913691171740950688192426841779494809082899631497897380808591466683320794408741916644114111566846089206770149025962323049717549250586367193578488502754796644294865543380379116620536421790028220634740477796142032921028104157449683782948111951028171109380131266336312290806315083149582889317147110130970034885416693808041686905714454864149397497423003678892539128132496338301408624896526158045935434795714461061270004397446035464791586423271546575824514313941928793479120277656602557476795613040798206564622936251706740930965046937832177863823099329989422060088423549690498148144555847038456816287742464178270775108159485975369678601002071424935296351340873933695233308863988504872560371454731578703692232914851936225290596104420274855118769067078789882571891353487917641717769167393735736062461231512065658169537063252841930618259700423425583049217260344059186617193253659742235818102750866332939625588857811824880984334905101820401629978730920623060003520302534630144771912737616356434196708732902265972224288742774666660502309050323940693692782910376061074465256552675713115348759091742872120205571389446091540340414989756613501552178384057521433203210648809984707395474771349599986281668750333471701418952420335067225730003523913581927610678828130671913505713372361797288999138821626661123018435346191548589818453425862597564340353559962528436486625106981947672553127676946847224521605968495731706102959237172670183598898930909943356904879975568291882075236311822949819856631896327339423723621453177082014817179404166380421202686489094875496991071817428122359188386447753980483960283753328374508556302976102625904544480113987400592431014489673051234738393585905877683811161543057077320073557563352294059653683631354690335387049296524084250265544189463415555359923532587762185062662872090145329256722409494684256939116323777414330094888542029911594743375676464622883419665387596882283575366350267321975682114079065705036275883672003386108784438127755347789415114946584256324814546500856167211730068232795677464555450430729009885167485518485216245278750163613433978240474328298372494654926590365380766061661203448014668499738480483006068270526400703004570814715054042165009641884152279387563160505237394852214894036631520179404977076812735465642625507178169013952337152337512050089591707248552592558935482593505918158571780586923347061300181989867833554696197620076884104715262671191625509183956451713852081005113935170257705018312418436136339999749419542760044539594159673794086466819577957485794248396092699154165373575968495421523153555669326698025431291530770500156265150657242110774952292289500877878605161253662561968004367350598446933457167169134001640810711522155968302931688480363268503342356393406259822841219595990417417814421932529284170633821828793644985755145131554452549750171857254869668389697196521210933185462291539630982684205838705918650238255325268623186785908133943468070738522633656236909750897059915748449498775602747412471772383112350924900457567799499162247147738504847490848822466871091547248076805006731523143724926374671370418859847405796753926944542915096161910489365640580529926339296213803219130450771095004668679360278533715222786998003614472319831755723858940866921763914942370314015746757769816999399258418418674320758169002180047004903393913638337315362678303884722280016335852980540478528518050614653251526521862764458261522212064967129068653338477896786530757762233553039760422859152797528936816413624486866535801377284583428206285695083316758768238159681028259435694923378626212166887119941626498842835410620949921349219093661758445336998013533830879882794528550446606190291977237685420173876846870372162301102737274646090376054844499447232765017535737525594784114676530239264710304282291532322146325102047354885456002645876599235201953058954715945497268461056142051804785264691315114132517077467731829471333126655859769020900269001079412470292938013155680646415240817906402200024290466242990456016986366135396165002921828275162078939881676303682347576847099210459195391496690545094438826554648378973430962315979631916969289643803864881022128101246678569788119664690242358814934370294072630125202326090073739521548759989412026069976399572972948723522124272644108102789392735457080736921809943333883131498065847392243178928138275204122184520865945308935122072242180147444971953611946738920970274938471281092997502017509418754141288122773166022457964831998032602482957101127496077064093745595096841971238376967735786650021065470457170561087368417700702127212426373315674268748966730787838526247228079708050417057929403530257740197583226545411881210559494752580327662367925352185605512974500966574852588806846929923650533514016257299609987219027564529685087059503449364712224986456144432618223106841532919084481744170405661322489305772700261798639184369503377616776966885244851564868455392091830209913069585798585954903631873985572037733137714146477852806388806087825169232805822360355624268734450186028920302355819190160815745283654439139501303903918517842044539465540393104560888451222968316950020994259045012989923963054281115258495434467919941735511477460284541869726772358343794907911426964071829796923973300651542612505881291625139707363041031091917784951133399536161963415628100548216360314692936996197013145064832337264624810985581184180134447706329298591939451527687289793094788617301552375943047268172517016622625606570527371753671527624439041030601433070052716610478765247169263416547774803911201218800398666781349469818927038318175382334803624606592239715012108905252555826707539772474178951579450212657180701048899765616029527230185700735984851418595791374094555060872894633174799042331294983343889259113337561138833937963819077598021554041052366510319925375400051434832633536902168274236829413405393760658862903886703040596068911011604706281284876335077362877742551616480750353707271894967894465111502034653139723292168752250058394534893573038418607118869799987243481061008329709876330629495841257269206187046449870392715472834342553619672779790624889665717673938431799238629255084955624759646682987417097762690109029632673610427182049807534156206553354639226640207629973931864836512410582073906123766346397594392318576524477621049466097724216822574348347626274599858887245110937552688167273728891231810224827214983842354688338103201249236075366988111806407599391162284698749613224260529357652308476984577524106960952102084698026171438913812632570954092349017188628873237753538176662356277822101181325700202346968028271444757596686601320626593328177003837845928843263493656660841791256632495399472261132706653091119950019173221029202386111153099897097829201812463144817433141737841046560238422664400159467870605947140350443527396400526820485941151460099568252112457388853597171215522121757578477442005590454166014706816298011254996728388614654097516015964441438540851961774361961721527890997107929590185003766707850987703383887510676845166826879453131190618957734538093418198400771104832853052238142321240634190010373960909289901845969938871029471328237665050916616064393445486807363433860292781340655897060740677872127757907795887270862885543974799694988071198854383750526964484999236291399797337785744450216834035884814847373766310211113300275120300156750364787364032076866836644122419035722891686612265257254303952024448161886239175008843730033311895829666407008338970136061371022125170048763569315048216307952590148401638782907348393822387094494649893932294207296753719205456309895151497970131327986182816813607421774023010500020247218747011321552756515444023775878910983846961949537194794176525221262022720366865613211668667192503465989021688448096702656466656622341830339594558999065652707803878581301718871784352216265350317532948421923455330721747658369598018800597350629447604489458069018251090808436522095480276338297434128182142466255763854892145461088616338681342959079917707675195872589611883618334705610622528029807790871797692103405177924815733000871424214754312902852215412585675536650299221113434890522130030024975474730661329609434738565820808266486025850235225092327514530194482024401008352574211855949979062321114167601232478563215325857090736859115970047680888349398560339067377278382376080495875128062784086719491184140482109670735313743241019658237936668609977656350874083754682413025662550113785726369953824772381882158635845411820976077328878937857595424587112665696345385216224213532671418261534860027163978708498893537327075953115985089870756332662041592863865540723863609226160303831460566307400266316854623302240176539720852063717226483121886766423694238587873722625111490015051758699992578692208160904513073503396823802674576184718354217100525673146326133279205451217610991949616566686975019440970548213283805865201640574320597183170407981567635321495421301771568217413365779877549656964737623000566021477008562513116441873363817636145150489692597082230663150974884283468280240849465538261253135478995427451039373770876086231553966801284406491220561726615568429935794054000526590423401139284445864253167220182979900003054100030244774155895385699783686826465250150546521681508955928124777851886418798920108527832757828312057064264488101798104336744279504569186519007473120261626613681832128250403802035906843893155235285162788567224675957237566594661101928398069932935705884145933706544243789607882240260325594209936920943711894285525387055342553400055447793636790054801880326121206936869343751463647632439208500454765024528504258756730999985422584776463065588787370007103122217649476343535143348830039473959184397568056002328110370232517722611143682143042950125786836512242173159674074447649906003780177369913362864934163838776914642279072942573147546711000215562564701669327701974380287388165450926019850065663193426785756735698555146110737749706599532437573214883912420973067230368708757024055447275035111059214280646986171010426246369969852395085232146780945646805146577436627857954760781880499105072330214815313159690598860762382319548956806296429856414466353126548580571300711770550017855042783579869238143443155759622348685314043302707128519353487978999333943020910568471767982352477261232241894468002726514555722866537304335253509669195788013797511667721286299873139303702993173181204533623231886985405142336586469053273835544122050972768592209232351745210270418867101470683284227685918669004089214036545744982638194091370674148313210838969645123305271921854286727515891719853609213679881675563770715660658510613479738285585751871908110952329182343055106956584326485885107514845498489577333424680703723977251721676178510820690100706054856561998604075293736306614952682911757802927311765306778633129020516386844284740223533316398075026945786164913611487715262300035471008922160912230889166033460317457236087784470371061899346049649849287603838163248804507512027144292295392011350498667941834505192668100950287197960543569772315963735261823924850134677926205200449720933707448536760914959272447121516383194609187067259222699683059559868804321486717163485218336347747374347880825556850397744452342576721802029553659623960793220308317273985322267598142782399464140162654363379838051614452871397947131342131124870275285476694929818383992642560858130208875147401859855097630796252685448208199320753677802854326211510145038493783944685337553566781680187506534100781155674075611727171274405421448648127715207922573039805944424508379882279847323144526885816493647665843322420108063249043323825912335928004763033277331964983353703205487596618473236207298288062920251994515630676079496486700921720374164777355948174621992833375890439543034713014259273608970088061421964288548129323058479875293450528332010728853455542653549293347982741262313138259088484792692159907266145860414707893871013530144540038648974857459629981046594750692724433555801607966654891084222584450011432277033442090571705497041732867694021044248479234560220982158121419056434853656493241683552326329614011666136301042392440302851410655164134027079556598741279275795656897714195678092850460136429930910350389913898378640256045094742263390010973313510371711572321751222412440128956609265301323397458958879374785821820976161982477028202555916909421068198942911265399233243521667512616071173423386490187113922504724335840994618203820559827098072832692316626832007770114680171559159972506831608465382417031538043994696169742816167868231250507904075283224400676514855898115694373304490633585585127516948390959727202105876943762724559171232052493408283665067689665927441832587496314390484288017998382996760291244840228119819704811346869277835160518847777545185925201344220770921425855649054731563548451202020461845493400371172713543985970238819759727051343216904474075594180302657314401539394542697180737990792357258295175676372371912259827490455209664439171989690140851234712391652437195954595942678269169075444421221759503082764983537118259090519073938859782608100297740389100843495024393175355440295559486827454934724179988662180718375022243135523271631952528447795031021814669955374190835355513383273021154175551019100960717914975617109154775593174851175527712220787637327798910726270258756266182615644003217063581267381364291196042410623510868706388375426797690447383477452662021120390439238598147517284464005744313064547212298926318646513584958845672067219413596812830288984515754470111548239579235435475480549002047129040894476993696520620060711122521152885165580993917393083890276467900919490090363088223500162772963647100307778493908835123817150952936221254539974330157514710747236986601121418946104113230420950820599049266437717535445529733573582595668682480154219335519000756941971769458496672050481096853847353470760898445986121147105064058272216639927455930409953073209512399077531735588768107156150890807889074673369994989395433223899866217038891025720546911068683838267414373011001730275815046452734668847576482932232650492505550291298445707069089799075365823866004753045172340368882464475055766224835013600471201110239281503602314864704551543127450051412554859699904558211312984377036721484403195123977812758990793286190361935261641174395705715438641068613747406549562144137558240782965834538874146550993661021333031619970293241139471768396197162005238214151500961784398650500399344903416785779007792928440748696561232661161292154093459325646160566616610722602237478362557444166926476181160319668615235536127091949772446255493266015206189341512922810292422432294474925720322286909613129359387134818089643838002386826155536429316017815204803460031834340048859593241064539785475355903740261197142587794606481399959589877162432704043464562364570790080989443635849993384287391892935878619314681455986277054733028339676140296341893426445586328926659869271999930523761876795466803472121549318498295745381741236624337909338019073595759819568376983149063680571248255370432074304419241467345673822732524419780061478717203019951572327233291968712357963956121616960628456131458324712953794319570410792933718276047048593637244265375674710677604763749556898681079391154923205837677340563621917230590315842675349463877376108053750597929620900946458299741139951378020498281386045257182433691198460701547003208271622474499935939840187902052535826011052084629486389290512430846355209401108376938381749312948677583592152202223717123532686450483493668815128936034904553933453912145442243997641074648812581952409400204238938884447079814956167059199031335460741684085442525061909431032362784892096456843741080287661249542976505153168734414800655854217133938396261015928425268816409459316439147999982869857969622870090296832604987786688458967483936621689617885298790928471477457987026788991351272956499620867835499234971245756237387623289600498646796048768751655384903803257004542231351249516153507962063787531754161516056495503715395313016792546342996334895395743133894632278742474009380875548724953350283588134602263200059236900679501712911025988126615702183695033205114841324033243831232303498168759286260201623655408040967031930809729183179873192527656768732645645749190254110923775094159758799572884004256129433208283204710610630832004074715097556592433908843047228868027050100491395916458977828684528984003012859290263049207627895954673778173038458002524505465885753424621189155850966267966383576487811300898959235885394952038536416524398398754366142426791557192247573832281727076313516861555449677703052226934672542086902871266792769076835128694262328103668767018372129466762565315674839259914366924882988523836677136051677692803359126251182714699690606445722309897331286313953393732827107974843637000217002971926778596311388131682008613022509013979856282646146581666104605694182369383791201314542885196147245872448767288273887665401883758861624263312359166339472378013824351761014939133504120255721558864209371003733941871770096671417349062298620857879856074934695179548993938786626900707099329610125455577276555105269923038221051481919557155693193001325052752715135499702419498085660044898526513225743387157413457830633461595083023581961580345836914244613690402562884534811756275844669849718752331071037222239815184979474663352007539225776787073474069087199803731066183238285439229317990250404541422297177199120606138316587988238917671456175181334142021983080977587345709853980127696989976918445368406736096029337565068054808781030697836834471074525240059432644287649844478534564688733828786065242443132644904201359563161977823888069117118675868185140450364247366132403111897682353987473961405219603196887814006446575940688210638656712567034624883895991891396775719546534643711291566122555770637926341961360733627220994395654552087093686096778869220132968721103376785732090117400589931776228517574933747602962127676761517825214839741603388279238732310785214047882685091641286117428986525307034495114782520766777552408567183332024327268203198723137129346598785999637095256718550248849760829109694481861019978064561961363970464247132229339179279136627857241436491054057741668467040098778151862166097020161358230626050329061292043953126976959372123663510469705536516374069196093932463863429410995924909120377785561769102753801197582572426057710664313247914930763978265972779638962859523466658403230739557809725403098083395151006330907192575651774622268282291726854150557278303309107121790100885717527006331741630134030387434644150825362965132820796125281740811745393431578365787881071368468828787417722625464485129961056062212547051870638321130753278714479790395275294332681372982785235198241590329970384282764131301004134896619187902742614305733929507103035690725379097740549943577167959364896404959809647297243137388695479629959322270573870653330078051177817877032850119663718880188264581409640720468833279453204321766135816930831441030006492473924077480493075756920461834993253990062137618906938658236757633201520202251646978738657877255375702280144955087537520053609702563091875148369677673648067045284284088066758000700582001740309683772466544532115535550371226164243083532939820932351077544547122806688247166894500635223946786683667458240271558122700134831798342753275209011648333782780679167897087502624948205409681829791963127752026961188530406077789068049781813618320389353560780799994879968179485658671509268344160648513717275610240236558232171549942930749930843465301890597979675741882122571514559719032440340636363369902886917414098725954211611011355026445957011035133094925519563934448404384674958874434995904544904571038185514261327067006475832852699472330045259609271634501165401371118102945171446785297921722960266203480302574120720680636550034037359731872507645595267464655361799674583925116396120231685337154883460072165106862457181616818097580337202183120428135527439985513063163542747833044662020098382385837796546351741339797905640896764714345770424708031946139369814553759157413630079816204359565356729928849889916781320551353421442786956957223406926995503583049824994027609825988309681614656943071196714174469724733859419374656336455802594207587928906077419123815898357188608278910381962610928087704898314276712554978343890345472213059642780552605813623900292107341818340205898316383014393352155371325286248659216596188064210913720306751822028317491560208962746203936857564566259189066435179333034372406686960400040028213711225967310192847355712186609064081489338078834404221062845626596948787066923301407704738160599718079066558802905149822630606837218125616134771109294665537007876035146594590364126915550679404013347318866975573140684524730344156246601984900674063571010538543692634348701063245525971051411319157676292065818179740533988338630418503380854628593317377398210175390351951153041486178857817975109275989893665806698961066147428121970985839018511964498136053678287652275962125929496477364603203239311908976258477235200883355612007180974971845897991814542350335859433406337232223519295118277029949527241638242102836282874681334679815828630677342201854612963269119234024802374475935582642378665313701975345513519765704763345579776179889742349198990493487033335885912525884628668543895814333292244213596516131596391934819338900851513391681535165980055898172377617363200040694904075762623199955549788478669552584146244435933767252629179183651484182007349007614201412881297480261786993459366772683958748802120928664202879134708332826660068557109310990377302052813751636590180365437435414093270015224645151251228395198229057290585245705557851279572693890082375757160005930944031606698784362286782074851693588710983579295744601847393351955048227338426523636131980019211410085201678269143725015762791434419261914535934053272525393969838674862374103585054422505400057664348581805949315214587346023456004760329528278456041051323311465484722402985190816826608996756200970684863179584984670013382071800517601261323426661521990411953620141539979291522983095706655900843014044343017139281740066162554782390928063644084536579040979665232813241918647107382427816059760902305319095781731098624657002900235186315954668624050754525526379432321284904988115948940517963083553491868790677319459393150627110580428305091997470668142903889733520427084572078828283338265657474158610522034929609479952059166739356875390178793934118342614022706953976361894501437115086431578192180403282379157754820513445520678105398850955471928914149414714236283264103305704815575396193882734680276840344722063314950543017911810145857502158581475468563464612655035614392983597810860320695069544600705092326567859854880743620935166488405602010656556921749824169704310751198412983645239213281639920325750828237529810244316852846247348069015287737011943007396717290516285999347676655074072819595996222365579357859923309501498691455734866743745273317930100151226222347700876881326504407363074164482994212042713913731682730114895943663366339208370788732685107760938237978188368004537277626432444273792289440138184880945416005829823689842935109142115574337853649041026017869101950243665030301481088130193790351570212736467653935770868502982582736953110083266755828856934462050166627834120034310505541717317361458452701707001213022253165561181452097514231475737449024751760416202707638837805304727476690742692963594808222652953347011542051855286066286670844671657004772869938550079928993627227838634844210096804731826855588132491075220836893928543313079936064320763993223723147822774473423275105126139860420607332524641333372273876515011377557541044600922668162851094166086792318544067719879816054411698937004965556404126986721258602277554898647084937957332090269352882920669636581153068545662059205076462920689036501724577773032914817781230979212263924056092963269794163567478855814592953199051591100120140471950237080261318153032647854867858554370890981052042563144250085030822595487697092809484760726078975538986145820637818597037258657300929108705199186124569811370296373377318500584072105413471010082597264273756636485677200454207048753146363238537008566999530212211460715539502886928794371167384747803033718558104314099450212275687994252821292270723479347047756611304625814428559162422192851483480971948993131110272897726642556510287195331968206952088702210969474438912722144078880517489459235412903427450547578826400939518542417058665450278902730856512711822246316307517793538068860443873394801827957321254527950548630592692693860863870981827763712786343736371774261451343801401366536403086403165325294820911110294434656429893952307643980519882668063202557261034029225405227691087094742167511882824074230303345526912223196896326890862423469229527992914702131747658023290385476579361653027958837271250290116949185691062848802121969871267503092498639435085695103607659818805505158352616921390955257084844842045964662716082014109313205327083392403531678644718528884782290304995430616868530944625099738021942310019584376530587802584980294204220425178085938943412353691272207473349427937051606938586268636032020860450834979084307316951816722626297966501786475010999494717630910225058182642970918719340462936996163389521202718043479330583888864092659354884420384499683789315876458329787605193161937995354950808922191348204225194704650746917464887987909000977708933709979989456666332766583713261444010647786091256325045922013544131468870882768061533763193387439448376803746952435586841223834940764038643344261391046779526825025842081740136525773921973930976282973539339028827241357350486226928846088558056830524214425183932216206721634708978899893480379617366706511452656097909015291522043190952767199001964257649015460857834641673409359700880444491900434351973565222284158618456615843254746555005344920064081059247215912849508729048861439516570209003271497867253591111341894723989174536923022685794797505965570133392259620747774980896536746840354157166659709794560937480388058765623266437848415297656327583856778079028304513659096670831475334953435594260471977102113169623972690301278669518539746258760471554289954858346822041482984790257202892724345036857836836530171709087164266629220427931261406305085580740215145922366430609494567222391548983388141939073723156842839598497688694959379954132030312759656860366323712209297983681287827268003236051772760395543693755077783453007263531402160390035006292454292064182957163819024134907878863490238798063076237893731656103031808451310243542452572169671250847239727997037377232451844734962313804406132406338222192890375102094920362200987791312976056625954790579105187515399330146397280935286944704402535508980747824730315198997662726825591372552015660284542867227365484409457638364627851249206764964452690318007050419779536163530656578441853772779134915711824522340520079968020746930458353263607198314453667762569056782880097766174413110837222056140473646697062948694515630597065831025423417664672919068490317452865761340790495282198876133432898566400741157719158282714220445095459133871665735327769431731041102947734790877592162364175890850095384672575456480846713945701510363939382619083169012778474680211540216533754392243847368761198765227080809934714318131334762930493839176743157605416164834508664366495620138295723624175968428726664519206054177300222091667136793573014510653662636899470642147052575239150979728230336594496737587986781510712242371558365748598626060575631059517749434928805514180062092822088429114019288671081440402708395093699834123899483774387839840046145781945973300589029762453835883169520864146964280107871883508346599684954483508520703509287767263565637543600546910451891205812256114480018333235566276431544953596395152533994790268897769041730180360756436828463805442525945753214995517274420256758973608782876286641846407139242216612839057538034950710814032282811498978052755479616571101231072641907428252661753965489731568192967177775133261704706393630344364091402525351614761462011001398936166936363930035588217168550972701359282494695669847270209073245540458663321547403440918664105410613839530687877925922974983757201251017504836534273372841034403539083632503895458351159668923848871552061260347548788759123427519699229175209252938980146693381971826977591268219119954571124074545402288996213792740375298668228885942605527326279010267703211804110020120501446795087249307819357923547329096659639475617094695424465232972863075852482830818740297723987648180498753918858047683461100578166753031785255925770540392728376344035921923134480985876788335625756885089832947231375169115277612415183944765902346185406714603191081792526525574462896651650688438876442824089852211049021199683690278018678206315626034195518057201709115956887178749512818678039822842913811239042235341228867487658435487649556867385882146756142189908407875452444665495230063654857614740525540955534144718512135862578573533654033301619819833303095754988835514588740777681663638421105430715140679941543369533230533186750256560814122129435846104790414680033439663299947967396258579117566748037052623626603278315806869919453763540045058116606740516734762446946777837849156130383681289700518698790463250016457354235161537498994356386578971284598862584907866901724442470093429354855856255399707203088970303895065132741007048021487708952353663376692487881904286042789816923692951482257669834178550091780889156870097474383692342463506199213502198918258411007601585669091628325137199296532771357375526332084625745207525899671806656651410062506516055792856481097833138936889474440710525813464133784069034261161110861099438719079866544182836973451348187053407338767693892701714051444410971710127250194164112693195873637211889946668853126167882429931451019275809817626283482339571705565410681588591020186351829512649686881073574930540802218032182667192467620938909088738943321581072086990410080577269510133470208821511699044394449586428661649173101418643984824003150146016434236119368810123752970063243239671947712399611745595398570514343112895793954250193243219048570524509221627862085507957174205790555369008550371461173060776204724585142994617729267671906223536304334443318605898849680237138296231220328737996263729656292291536815024767786233261486165274502544103169756412166273644969087072319420498987812108680635646289720657731025333651619861321144771598842623873264935059479863682286234760843314828896306985985936816685551752650212370128792935156703671450610882505052213545348560250810409694608702113879772929030981418255596650023075882455016031569625447733777639236911990675635291057572602074421779313629596662597950800039508703965038401219543647651956450009148722934532635744501644245469414487178796911299445547969892081201998234231284911438985899601490608577134361391541200667297650705428288347816810591229989785741742755822607216177743658151581892938147572828582162143064141172737497657590769532414100244960776369014622790285944575911550564673682393809621896000083179655957868475651963455336580539936586402691366645017704516271669353622978124835363027660723200648011293019483469605459736823573611817896680669223042991283552711064243749442822394633978912868585709675454287649459118013181185416958194550379607135577208976623967044309181154950238598642469949380788731208384694553847722777327982883942716816479817538242450676713016989852517283825353497098215966896694418481995340198811408167708545500420916155926911843624059150314958051548263971855605624152169579442983019911139581730004555123584941157017324107691434086877506233751836461446365099572913083090780204239992886735147977448668688851114419552852783210803823297006916136021159063876220449284227864711441655628305371709429474310662754869506619000105179023255607487942211166142228214825533544766095245467744829245120946903268414866289107094425430081623346327519264227536973944956881164438119118599184212664288866427886792389787735603144116098937780126318569226160716269824562647913743577770569048946190136546464816626495523485955035311218764793271904401713512394460782864153962268249810382087970838019769037055484581187006396795058689305289878840651359361780226490662333780665162443088244146832537168380141614177987443762341437612297596653254797696162076656959755352222773123211614057133275803097928645581032683029841906304907754472561232219999330434571971034456500782907059878728980979400131288239052095259442181878112520394590242717609657715014757729020107599308174999474518604674999732607426140903920532767208657815025044806275654507593855226669786689781034946711132994497123238556095659523676647770382101361780638469968835163758838599686186573739404208386869451400618666871917298547102750893835369864269057601832241596157746970629812281873781919896017791965826081339786073471858652640562741144303633376715215434080359891903078679891117277472237962299253609763485184332679133352650605797115158181205035228390586703859536932434929561838816805695802340890063772690002960170462705750135611801981241738986168036931938739335385531542335669132856037475851118197289023591875421365014505614931937166293403842123603965707732782193732045412796485643200332617873123289043025772333879913007513459768354067298720507136915034647452542783288562423635885788378937678412001375136348758758153256574313335850433387193558911097453691621413649954980037254888321255807650720357739104136857189367109752586369051044416471429143136729831851613263387343891057267609783822627356026718367541177780608534659749430449611632845249202422873693936065095433605254422467569244930844115225868591295842961551372630019515877084679806928240698062022266009809006055243300017898237724556992785746181221301748392077466967006446129035139837302586285446768642025166474406734750097254539344980651931908547606646904440398092789408445630184344753284486569686933938479242611747108235468692626214121791107088267739544977388060847858470449443050580992678569863905514835411219764461078906978602946890386633629033658111771518880915516679648561132812658382706061088474863478854263778990460833527107030138746018156175986178263009811589491255982267153593603967897624339579873876786277137276749331414963203188120100910852808877673641006619217235569395458690089259953339190054702969244230327389248592103177197589251530804173173723704600958381563343162146381377072794164296823332772586727271051643047656208690584071226114931546454874969733748021898602604757335972104032471646883987672284316255860730804297098292902253961200820999525229060500015711880430154375286280679634641165996201528085787454701909550315706305652153300261489119162895701636292327995578707284602851010710706889649391741436161806634480567653575605140494942303313900257305000526519874908589854018875591721042143766629811639908586774082245075911495425841029949906278668039356024204278059793857564831730687764805057459481575017005388243387182123086600632857019306782140105918450896347965331401568918476625238740757095469617921440109584901164975744267360714927894679977638217832031925465343059023110212171665486283910963209259631994453683141547948202577580994668887903971978378679325389877632477285461246203153568363589927334434525634957936958662846048907369188185590007583878151430765930938466847173617772814612732638964155777403258461586804726448549776435375126432154369898077590408461097885713985860759785689540044296906225794892788936784478748970221846166569782305898277492861028840499732683329966808942972276544969600284381110336120000498347701765414018010524062984433471882143174861098580030851769147730084019806978171509919348534416167985328963346853093480888848545768168516901717046037639793638595552603716631535447249300867025533520877874956043337658028153962062023214528640716764883464142860055759499218773538367893563298569008716335329849832422064256854957787679265304160576853772926482620255424796719364419024216530276236246532844802276738106356690496407192586426828693922206401075341862490768386226916662983161621920509668040567245037203922831791833460671440357853280965970220430047917060619005361585736571594408505606463950686916697476690025404221816707791704786637549996085118492100269208333158459941850895493225913296327097052251322392469857817592315115641455869703289023984483981269113677500722742779352342029507933536413886902267502401061899685768911503293938635622246089287529938740778747294550468491661959222703384583919861658310242180802262402930763110631990172372812388108937285255972794473984540742156492529489453976121907598364768444374454237011362248938025059762935958053587953025612509495255080980865786196020256667762093322401534939486293897465363585579562660013883972075234900082940093274793429811370162584119850514075144875930093119215970258672649452932739003664798830577079808526276881055432471318485130391462022494386542868878317999095522620423044647638039893366988938928892540453702403675612886039963760956148091393391871514713855013894819913918531057925501972059640549955226451128917204149313909436572945109897895266023900601539003818104298817948825212510479802401753743042661952107909132502731329767711897734837427979928971121094561643440030473777312266884297556889960740500201254416421665106321714407072187914689539208866526966389959854301633656813545383233129236916012943351402015849272433728192660153820045096905208396998607356533036412503559860677009443683185650010320070162298283651752473488886554433276150061612599754317974574802799142595764277055335785837443378069137784437487486869529814772065974545908833389454234428885380978662472803443952000202905560048284596824346663327913168321310622088329419302175647710375743040300247258399589877945697563485593135295608142440103018306312226648998053824128899184343252857427854962527210980634877670315601164143026131356180104425712169688900232985461806806479911300523940773330337120069440473881270412042465939723114390630866423446835218003287008853475290258972727664186935724536448726914933130733122279592679528985884575256925805588962527875550783526800051387665011757876224641256346400738147378662227026516627895774841327296479383014937290467887548889995810558773095444943059845880594704670559831853230000942003727442538689154281465257741568120393530124906397063666827014076863021318480327315879019623199895107740387742172843966422560672039805871211099284901065703963562045985401715789249805715486947343209990691415555976716017772484051681076904766642596576438188333038515642017148327056973503055526402324614798341829197178155757018664011210141470829657077986882545902373587591147280004536145854338476470625902951012507114295772543405930573277323422593079187555759278530047372429110615309465435524000619209956353403285648227053548893936586261466519337631948836650367329582442706968134548448186132848868400729102967051339250848030715734360748698254196267383494947158038734217469927685552026267547270782030112810526487130503332389340268619013818855214475178860884537564294412165759288231737265112053729694183713742786802025619725826088831616543704675594405499427444693567362910354906525570419511165858343962659985112816455283016685922397087805533116987967470420827317594494958905868303989037939724304486654463544509624727167418624853547962226924494314529366469790501454035231219585025063782502881274155491655599139344871571800783083200916811956676974979673870614757560650214367821443362652150382081930656159566962382042875397593595906994567555675049402473092327481392893276920927393980492217887966955982419403645586783104211886887087188338501822405424943520900846726048409669264075373900116416703789893726853175902639681288410499296589034713816414135674977383248587411888645594951772637966304268507312662666400646431437608174580988601785092724131273723251264041035488377874942534974999143318255527865019957372435953527899212225821647684482094756467304184834976512017036538517417201705322033236620397086876217663065583847135435317596259043189512735010190574767351457921662579388953060650702029215880923040634680998217763126122063104345807133310594662810255450553367319282843038216539972062214389661918223895682670040065954120721765743936501927156801347423440214235681702628194111079989024337701636242400943633358424814544245086719153205932314555280598374544767299324244225099148006394147437800316971452440894627240758663827220687305740087329076498664123267777455598600896876104761911427833194708164153237965825476350823999332949775920205887788730790091639530478129705843192680427496871371219975708594267178933710349010388852911637629175187539850060180874388059548870620053309950077310300275113353698683420319727508487274332619205203174488884696824831783418382629107613198016049334311844655718798490078554943762223300881272611379174145014375974985933068018924619967908966761908996000354241640851244848040726520094540941236790211316833060469751665079375280539207409713752696073145060694567887189999496116175620759492200482701254085519013733476772544879560450761269172524785257190696643956589613585900825394261901611321287351708894035361337745748502599675175177659565659727316201258676758444017141667662478240888415477551009575420103571984820307645437456409146568791924715666304332808467575477828000405974269355159174878494865134483250533512688390424774451746221066182094775882425685808675552383107613217629581367257617681512380245509541946959744279839365563466130997437571446130406400031620835955705950074129814574945064521250752457029396801532322778381477115112343145893063470910571385513746251273481889919477768711032067279756002573740729317828965088930239518896960403964528028429019179344096222768839267448720237493415917048028265571606869046139509581601752210813513736303771337984669998609822332420521701375361262223045689473123107266305012042534001473041253870751091101931552557775928878963248742114100853965764914969473808330912571269475819000261661846605599220802701788618206626328896822022824666714682559278360965613195390136599745675974018537449191327664532855722029717572818224955531815625526225536179102596386222328540971406203597715675009213152542046093351705108533340359040232689760509048848194480962583193997779354205447971111009756198397269873937224438409394335149307865940344446359815338595824108090320317939284367437224680309706149920781019857097150538307299047689411983758284001343170768107059213146668891263191114696509915709675851482384026329633954089107656462154201435893600033691513366743538782728710656997970977585044668906724665521284454902351326647651749054604181923656553369274792688133508840149616589897976991317022462851873823010104976619935299599712234345205844156033712540349442333344532699406597677745058142561069280765214520140402435376231889819248402736626395594201148659518587441151448528999453419232769011959257516878701818076104968613800030424812200608329809308777242713466456615211365017856719045659906322643920296263669916740800040598254686691292313260037643435919138325605849212725923889507902077579986703111915819640876085538970572776729494977306431180405152266344622549462857870103874758320685302265870381707140677779193693361096222012419673131745255705174085828706309695858542155411966359073832633325287046782289958540004427697590625018212546138573738528183763857318602422946058268140963650156726379252306560778611559184325378915328378972325496031358135821640143589919581379383492296625359449317975035265289209248423643318043412461651741776609442587743554663143850858986528877209954956097522808516793874966395055502094157952704332520301534217005395145360512395489253204954075672225954068243945329707592412605337929002468513899038416860633431123601537205116742203247987082301347607255895064348535027142310747644954808859326146524790388996040889344598832983671864166416588891341227106033024890052829520306080899625713812671653977353265410872550493981129510236676401278006951183633460356865105147123458788213885974027959724502129114263485643423300599099748503441985232523663651757715017920039117738585206401664560380710367893048326372071022937958247622727821820589005432207116111679412127594742441560684934311712666444024220224681513220298881056483793384776692549550102182462255795512954422478421334772969278667773879646237039996490354549012824857088864165308854402344196902283257835392518470670360533466434479016937253831438246078283310404966844121572748585289237961673220246433676914371006437046559932992737398644828395526472389167414949837504212683826209596433073720343153673627450953387501726377962930807617861335560053541662356600845774367793514807371464701158857672113320988277649968585959787450713374763614146951396025254970059533684045249083838081766185556882564791611213649681438712336003174754748885989770521964668644870945194939896262837121804416207949807784705539366461410675721313824035118068686285069924811436463620285104230198940013781477747672106397500044940924805496011807645173265923445031834691016943541794852785571152236569306848263069465242132612674806443032083253329206249246696988116667168703466228898714745289478049078272985027352855665108490835824426031914753440147512156195287414516441668583169379482523582556475826671472802067211884355346725218514278428188068006013565116497207842784629285775907619729986156772188907356491507384205382717434218163814926973093052041414974971544111667528917119660360710539291168961825302691397597113085897626877161794339574125981935570404421072895152756885820594273494558649718500561800958439087645213310841835792798037261986651329056839110419518597660848210648715735136337487562795957915315982062713792130875359218402218610721293375634636836496301300162106317773500320944698305002925275622418328118090398145320397254945233181325339558407160029725504537960984993274948875147419721412821088689877944759472173414802177001902149464271911363604784058879213253215699072039358292366924842994488502141430015142932590022700402061218413900110076338316358067007301031229876122306929847368520655568161129673238642602550625688715108188465459402387031289218246961492362536341384058125855471390708051244080783695224699375022351280622230485915494285556618815422075477436918365300319867738625917517915354183926577397152796525328527866005733704614645282292235945206840110356903044454237973973703810098465996107449017685818077563997641088707995794541223592098079626300635496635933243110063775332124123677247149744345482506155159961819308817927811727483151639538900294634206251256091584634968932149321475748653037285189866997152658005645066089834901951700019148765236661867972855597973682231329684976445806247963726979400286206648793507361324934441942299338292646214231703584711036961364837368346326775762288878706680062035387059284473255448590062999221713108493224728974306808857836139934981239665878415674826042250706185825547821498362789450262005771822673009944621411446612642568720060638409854316747515596560887884469312843927613792959684317436379033013302665675629949644532257785986860333796810632977916519809738900118951560969211052900505689636184351771167232822105595709205596305128816221493073075542638157787129465842291222700692189599217254910402309230133388501073513418087902426148560917423573947844547287246844979697727255231748914085756684490376493368768640401609070332297116823285153152415311956751490914871350681818251510055214198358389736826150416085074338911300330047259708868326051746030491887811708348695628913729577541444660434549420464567198144409131735474669348763428649203702643469897621905051859903619153116349892423690033495376929117348394446149820659398043577865663199807714406480248425615764201175677527656654888877369403112916011590866896911227559038178866546270851016233757413194822036977822916895226515753516538786156172502295734280868279409749996250949540485949979897345929809250928696548759873713462635609235751312419477591226700911043580595206864632435405801377309736210685799119263842291929673088014490991506081070219822229938604015261972501313900481626709799565161623105481928666248923604390755539545389314902770626382392235212775966428974112264947190435843335620943139560041698214957516657668459729842930677422733474342764559030508357668661393502371596144315643011773740981572714729527157959122030490976158355575542367063660717438596162716702945109682991022661313859708751648953775402699923450680271023294971001322172350205540888101836422502508358258127351098047343224672371169403388209047756184914413886748513233165511027558858842348837672491183125412483487869429902169507572954693456675544050887195837331231822805064353264834051230462381281071605712814919863406475384490215673659521641553092105435744987885125241340789727318952310054571517117639345216839934044575831501381817451081086877033285118251560817142735611797078585184750993881338798592680955340835762489437497862083327236107331647357791232318349846749610375791879248751267228749151657227155380679772412129451500285236064634894133116854640647884992924953898656750029794424237108561004095372866901016845074503622408914552904997708656500903175759198495618666403468131130468294835343750980058566420709855587587956655939821773852057562097262819215050918460477792639234821066409068134854890262600535514750029961717236436044462599273403462615341568828982176097275164880692124177204581958394225501111495534654646967200634305825933137194261645563390134865138681006247705298997478373692756571014811180433881606484332612137483478334544670187619147338119681567783005598927602982583447784174480106997357890769714473746868374257638935585472410232811638633472291650356828964995264360393915710267211314402601880144250512639336082504902883107047019307329749746921301127423903977061519184574562126932857385493446092576483586173991139564233890220632352629601795383305963148905456764989509381160627724601520082438127108226650292086185321765564480416623856328887782291977254546431009953210852803381650035268777205449293594834200345071538599178841917885930445247010357590968380350051179354404430458611629885430967067027685573369907306582610238223646072905563946479029376517123851655885076051868258631343377832754366138491719052298921702796132927174458136817708639324121379186730423385765402160507474477339037954135976453618768666294694580514995013198379516690134333989760729699054278302728257434216238964103355076427072006463912497756259550523586807899507553198913102567819688615808160267953371554502061168170079093868307873295769466967032686860777808538758465071238973089501935769158585971470689533325301249394963908292589624379332802203642890084285787967577922026189585482356747885070605233081100676838938066332953284861128314335340554419525055636245450595201721852937104439685142101977743935624304993811415744849346770580674259655376374135121911780012327326775050812675345866978946347508407572086422503337652833911467270076500308501569106713276891537202671581521665566814386113888505948046310641648433768623450456942663871143168563682501625365771910536365209465933211354853057534346672369610004475107651835364931630928177441805262147398873838430478786632644667791725839453523076299256626962645094909613213305220289151151936401570375852022655534538098495043612097114041342697435238365420811789278710864538286841785547438463722615332109374542851904869389116908954848195521606577021673621738158849255063933260115814778716650330893916069852044900360423626985171518213254238689177269741277381425210345628507288444871927803075736260686050794668162985083648585669403653515449205275217654620427515638740759062898531768301016832681591452042507904337417223230429345252267661724821627846669423824163613716113498015398772949291080283693968869967110482743518140304354572152838779566046237778389027692079125512748030655129162312784551122385697565123433913674542369929230729848320130221654186342063488053944046898723446492759067711238029567158703899042897252577302986810715725034985489050453972042510229188880291587938498815042550403492669358898774668059545763538761005391234910933309880117887096471892483055554759565261376874334615001170593643354037055826779880133726027438794665310367040073786436507436353448908513530651983727568532767817854728484430397340588686732086037125135495357384810917968063392463299753183317383382164076294228523503841560764245819550827780538618381458841067137411115369910530519415722359940428186004316914981133744379807452930694848626940078531713776392308351036963747871026732337956663731481940452949346593219375280977043307354579305105810945976691468578871467026050474357292151067271886953563913402227534459746350969383360118344336352056535008692924767060289838234011940235754190734971351303099741063423354166453178117064335002672135884198292894719742102808794853601288357769895849627347525498801455818908494520839080436654939211713371623935512047350933074782016810968062265207004915398431763791885565257349355128430910279520034098483076732967913373487826508236873336305671435081680281205568851337308903233559932551249278670791379746909119191031444160856258455587167003729869931250971675594218957971076141189545482402932860178344355338747829137121367105744575747822957507912988623437891612580051495577960610433957419680825554806552310227591442923384558936470032701122326980333611156136828298459151383112912785615874782683488665948829960677050279218052339461883422032995184737936379216573542540723818015573626464420425592682603085400139470308057376517556890368389061824458888553990577043712710939738391311142093401152506829579677649661323155380189212228565137254479415854809434338100076605866630568107466062141859821625368628729445859134399964046350378688249322189772330878360131773193729454726905021942937049589995402953207055597501207035921279253544975129500791626000164010200938478338615693930047192034741868331845521090813790825908994863772561485529009124182996119592773689540131471227707634819570263142414823983456420315292514746757152651659088868246670019910397007386267290674533554131970820979650244014177010170407577687981734428696500035495458603002030740693742427963216492929811066232998235581741941103501765091733678537185415861522316212506157541005719685547855037873030801661013563016873629191862254256128654136015964316889543705963451302923737239397312864788403608924305810856204629488685830748721725994823146497122474867798104542710836496126554289006209521111166383677155254198358800770297057049933334021576677260906729957875087488780050832131021588175461784924655183156507023332070872111845235467320524642530283286600310844816786937637410305294232389072492687336306594899455064570276418619144432239647018218796461455571072039605667143280492241581674040028933139756813447609472950821047682850814192473699959057000179477796888150572020827904433007346150736723410555401930150544972762389495860646562991026548915491361163280153607269858664779367719838621786702569846961989023911455722441368731283412159544342775217613048016473755869180272522232388387301329092787115280709264950526305821523329256846679013376844694889721406968206122239862902929701663905944507328346167624762077105099011831076054726458527502632637961291242285908298423859904546401798472771966645579543818666561876978999957691323290538850508857773842192170303475061694454785002890134372681156691317059052680848762648925974168868631931721033748694018185634833562349290771416484429330124293538740678728260695278186546490780900838523216536042684173625942676863095442218340514696381304438074712844522488176983803432954016635941722179303963962498535721430049553182472325206237019707324814494632226154473052186048795821225049274567475447366161744428712637025661187665134847537348333740730107277104871387062934483078480792233396922808654124858764057260450437043733183579009636673234810235783420738872641491945313538798965129964097303643314540048258457139141721940703471077791723280245064394398797000098422618136511879142014388447430184438038580308896578300931550737078930563130471007113772116086456234167569968188416979745045450074278506115731476660751777459169294240928376103038254881561965701693330145925088426729897216690975406024290818740402895253593729258945638104533780654185035295768353494622568736126145366907786494180203104075912929256924968375517265803881109575880056652069581906130553483753547694080473624685560364312335933575791619274172647419556639943637687776653777734922376775669860675211788425505697810558264945901250813671106455218918284001732523927927262351752837852499786902093142210244179896592716196560195932009692035768097719181210276193706025668309183336793499525033150385558839059624967906190445957146100970307737196166205046401388331016206597836791382359478055720553210826297037287992405279594335790142273555879844174625265468877129336289364821371134219044567146140466602266643386688108586187362264592325301729127127223162086436720309108304918031758530271589331111610022633109500860090259403276508196221802523077692727032420680675975610174951242427726179000675999858481033989840961472211153524604348439406433274319782881401642919416631187873270638954384363890046211110329781439420023899162252729162473775067670164883648590606951571825876210126070821880439096433826590255959599215333836014783877080564672256112272096150719340903986746640557155097735310134135042833861380931654920352657071942749711748346085218364467943187296203165120172184640121041866559158669166363613144750187665227272649441238193420847703302545099909592590740594699229104810681623104674050605901763312213357779090295421721774890024088556439906437139613297181083143472906910576224095605489677652265194759572013377000499067901438408504163766591632367242751859281474552258593923089992041850333850421871685468759209281287964823339248541810753958209510142307597601015057715162151847664234421191468537186128502761036092171122313016174419512692258808460638189881007194347705322735680671423789652731550977700668266599819101729846638996978520670404458631784931492897945052500915314523269545541893438874986455122480507289008625820271925055176004705927776196369780061534577872701775946789003463919255408290632636268763299581467102081553700147605756422727108345873153004390320020982728409346696118734248860623118189244672053248098636026286363682252776193647133978932106924524852131473861292053323480538615037922777905327079398939454238967211349306072234393124900551149195800742114879102130556523398110588455648804215106279690543219669414535628822845176335380299505706628750037213324461441576851046988244257831043668672255356624088659456162237905712878334683519553386042738895091873207347476919432873171781819792268116751618104035989641709784633850122654903506721690963853439236580076187559240396535144876101717269199662816006650587068864444838655502111840175602968445214178850070658148022445498055513084595630547623774795880224426949082018271684295440603577119153176696710587307517468736813029177650883785274761434895929414609985339559231644772812984535863756666310589634523206739083524976331871574090919360067387110628824226241700922263685019458176019304843920979789159953548199745113004435029317172916870892373806527030339655503303541379819284094570245784112357391661921178749856873233627299145992990565885794084008171671767924972140546138623718278560103168521612469146876383357283846958363379397582058952318926724295175728938397629368075679829242964072229263543808365316977352291257050089965752581720936565927510714196361248670488999935426644045845071538702633922261219200499626518871579368944187240054673951685167799957528790704393095259135611374060165061747709346918270916190834182257343062428470685874015494228231229093194786049997209265851163203888073828638137135555730939013337996476762065808763308186920956748287598416068774845615919185049185872686647931339614350666237385557435871913370160441841676070781737135814666568348772331386245412427754619540102963299616947751307254354846555237319063745187349806294979861075021251674999363761913199845510977907356392030076282448128817134999221053983891834016020536232353412638462305366838568253125063711701075897719787058325763447745905676440258303651079278286729884878579738720433831165408735672270595631714755478887511260194216990787697737597993494842168289818556249030168880446816965088260788926105137402110038493397367760556884901698868432285726075724181785522672538945282804481924559713606158724456591042984282769645630106900938692897145225211046121534395851760454430412319898222400384368371560749885589317587021358732538587151670337975986011802105276466764566799437718025689520375412951779869220970597820857275865726496891273577629400307339743929950509843590039447571496579495458339383045535216216730883782974355138141727993025423359708208546896016851251318320436940833995293111547720479149267489561485599108597772468782255451540571287624126056603170795626326877218528658692885809405048350433341988320128270667989880951553228496677925217217192567416393664803844224671323233238401929815487608627041083145218892881153175390224037972077868067546839892411184249516004121399752829778826840093161602684528340574568233601369816972015710908065620014296453065424625064208143307483067597701102185580745748054120382570474063369353540045168315571293156818988361931682824319886142848675422386463973704155923504145079161605303748981108285456946945164265957971479409383663668187607361441251784151834765764001046786653787006446888649571931238853415505775300613303878713586157189626607851246076600455171657285783339439928527478589459853921017203551073567914155718325655605385470170825760424918025722228608006415411236196410263985960056792282683215517491271736293799349658166099088611489430124205400853491727577035550773740694936205685501067546981434890406495659878084399459720276166104098226783479022253631468109817923792136256221533820764682412177464715661049847242030193505476166805905365213623680490864106667642824079375571014542995092513886038850569475016451731456569925226715255849352883052791903291595387173300904296698212890915426943736056178435244724458487006745380538068131298203892122976647382705387353552753962293459989528762453700974793807818067597713321754875832695836543709456287562839010362554432530012613379025332468271152612665715727243119196547897948589904086775148170316310683331010497158571213608792239659913522716100036969506445283995535302894958018071766642627530034252717103814475764353640192964392692400243748200786309908907381638512993461362026130977109604955412144024496225415852149667362136169627463015597847057686153710900660040611398006868980735421066686736748140491800935558509558343152912372205810239803921399492494206998218929515184027801454185627283679875311832167248640104685936555786691891300029053664045271959194190251796575178043727546958832866798465309588357333379284794697738189130083956105998983608559709424999571333302692296777762286048223496203724305105504477534396405626820561102210689278322992538401183470120827836928676667126909449204487784083759129563193582561688876144516376548349489997305851598438592172561277292119060884533254471928607345217426530758900097410169669094946054455420085175710370384560796136162849964629155426479320268037100594636449778633080620148784666892600935545502192667155855374382105597259213652622685798679393070089998525287818265428354010378024109648767988305404082706592779196803923823101747572368118413919118863614326591338748473449475871736086845604220611287169645744725059068346079966866637635129563925776697753054282724414237603040620843350080612531528505653692202896032170446231180080738988921867909309805280214904395039618924465069057564722178488806305984619179330896431325156787124849801822847825303139154150517986440756088940606346164393112459697870359059893021148649317348367335881884932998431319623575198638593717823270966611135042327835813018600780599230524954318023878173605349702636607841236708958836174803387633799495318464901467322830386229334373628003170382407538272656954212611560425824094799268881172321399213376217263876311360642404391608807962868596403005900176525703111627464081801511829363487028756213930464669168600455196363746258506238852345817097071066116265269690540131377950582685423533565371943679735448919135493595078208410842729204948542916721587428424350434131763177977539272614802833296432658931738982394920389113372833194186384390558732363276470399971163746193790965291260479138422163236816260314624109265144811645197551144932300956092646469569333346418007683936640341776765460607381693324435769649239755804304495271545446410917630623912682262706288616865183858975706459771873620538230535419014887825628808001609725093942305454755675455943291454122119074748858814952011547732469140810675251032011276775546857065000951985360462940841282856104075527965063244078745651169774212862460560687129814344207422160781102535492687243528058586064162208812143750901982316489470493644155213210239882439914837349026910896407792480046568698637039960093945939723688509770345007929748115039004562118089411737389886109106894654669358843832494231218298737229523183455069828427151927840915160125341254068115613744181268872260536766629203192364551396363138605902509450048869308906941828116045769513277359088753732614706324468559404026353659955800858649367404169442225378375764029500584271030536738208561893274228951773511598001810982218699782710634833396116027787118782587694122680793183674009710688874627561978444746212572906618729513210348901911626552057643133653114804981788266561901433510967933629896653409185810522840117757787195365675474895759597917285355206704686311113295713732579712345382149808064616096846227505333545522222847140428009560835155899045588381042253215495540163542626740379401500705345717947358809333196880890673591236130802179380577941779382313327882726850306899346935199918337626909004976596838461102195061080948405936997295894670282805373403917448930303292916396357097760470659388528677510666369121576011201813773417313327303390227701462405674723214855403223847644890761296283735196400373941683474881725920528553373513715004390401257804490254192254321890740119526889728361402941480202833131882119008882226543897146690854006468794420256346903144629941576807347951256638296918407043777318720360955547342211606153179771099400102649796622271149393773854795063591292621467339953767781935331544252400142333154840822147375938314518444031674433834213175942730322806274105170046763307186555205099781371861674179104862138601852212619923636739813918492511332040283909860437999958379244115096663336505112931906044177207299496068575117374046691239641595880112763842964241592946042408104605954055415593278241528610094538959999071525312706410023126973869484738768758074976386291778455999849057780710586788697267717725300995193709586230317918719706082083112975139988131468686937630616766156469778430512847611117081380112423956718136452130225037296140642264387608895113194270886403655146210308654679200497947873613937430267153117340333340111366382461114832969372247108043834064304542796400931897236550450894599855334322031684622367200311428618895867695480212218003116164240443090772419984937427992434354711373394522884671628474728669184115291591757260723240063144532078484970997473541663365925693398154204362001374031955218824500618778770511331585186733963095535034973024419301115534734924519061814793405360747596353605744105255905992014147231977706698170892117650073643711415192374801809324856923691026771725818351190840827222670299220843518226269258282641036668086130883591209123461669731926864941861477181782013025901511068286775950468606551433314144945739201303410538623933656633434229695446550513192689829096319932089368532708273483318672563103812264602907632044389837402226844304963648624895343902200701309883710437809143254254336038296866976173665958706405318201206649472891239481812928120552797248623062936142905220425194119527208999258209267881543109638058097041068967948102081398449705944635463401832665139080247391201803977307218395253021858839786770734358469677880549475779763783543595335903968948627761421536632924849855547140719012434344716620009954145802802510813961576745245768768744024633284823729377942909413849751103093293032294012615123200701521690946050529298250013855308310014714616846526165185499019825451193026578293113834871057901574541323504448354326935060074548394332129114241745069131092543698838511888915410479329643990732765085612318635240420431486130412497182615924687139279467942035173284741428339985373884822577335699654142255972353651821102358790555527358047367548593822276297170793652156894754790070399653196150149878273293645972538370693584938150558237117740486699660040059174024035675047681160443955391764305827794091814739790290270694011523426378897439129313834543173283726950451173985860986458647629348234458402650702788350647757187508565492158533532240868164341878575079303315767929456743396840953141093182437224533249297506472099757548340917730855941239418804945532488848756159551179686804214387726958942024061900622055465754375721419042363724927972499086871043368223277087978744890467120642765658886847006455458543755823672838741706576328493720050778731483104144167069115543291651932155610941613300143215357607936934803843377360883829419702995843346977489832226078841027844179877380612991788064728826723787556952610386181240787513627115932928151763112446875971910355332767155624372775071932513384727661289018796601582943582675145838998775288541112848065051151869975917838912956722690427557309152823190205658196353674999018180000290303913066272985640621303760106050166649127338776239380358942780464453922083287830801491243208488826603528350154188864417038979317164684299266255413335366715209287157192650032790525805432985000725447370093313587922136078792483019903764037763230995461258824122254217635941072935348087501859439476520441829460201781299927816729271412890146254693735187896989251279896533686181654204216311997274640405247842867296287353252303100399923369962449204986217396493235245748901946632768386620942416938451304267232298629827845122524274351900325467656648664216026171337289632290503901122550475339162966156422900424909583968022572299659639691350608920686711407417665554889825832977214068762850230965247612202186912434820315704094509742557523108831103407763464513815190510154139037733055317164336420729098085295819615327471120802236548480363823248317119205965281748898971525803784609798809331469183218351990688012961708607537406667754292580568975985026154250862420616381666760071196583125332009333829340728196815903987735722826542039415758501630767974521404981953665282467160028389109953610403609940278553327516747829658025832531372201303152346081136613685480078511182583229304050974396802555509382923392330955681426868114229803396627238523124080942567380408872480841000057097137813450984849635121364838655015141541977991531770997050710645015383728216555094649562992248884407924973150626303983189098829390121680334619008930545244856648496159259392929929322718629788933675296523498138868045516781926698198392765412564538213403287282215884221670147351978576510584166968325681261324653334153730098012055699764927369980705004490028578983249296955191198097325568492979445803876438012658409921334138509649295215124364465324019809431456511261288344825642443045925777695843558995465596343764753264551464275322432716115409224825751372477269176261713143521548336321760339793840787269242114137994964047606702933851102731718307341570851371037364192964786397535892573198315873064880262914831151670740606776027918521228191276534311846001987290993674334458020215280877101000147210059877700769663923650972584490937741167726587488576668070449060538990738473147569159379733737993686417336116899937077034968178430220142358904854404656472641484110875141502543668658935641996718472000397495356559150383645310735177980734142023984497818966913768778496542664868647003736014079245736885702407882102815485266187350005764581330226714620606557830454994474401016577966178398990216490052367975627610555016687168328692598500218284904305383785384540778625845711007757619035862667001929888758950362047194047030544860411911872330619174926952724341801328244075280892350378390908505872306612051340674778583201980351462724778533543270437958261734295584518385251113048893551812072551484639125268958934698220193160498548388200603887852350424023691426824015721658965626526838932559260267953008133496079336150254318500291855702302369643742905081827704861831511378972618264187227974058816267289461444909426727974998440120246572809064049860712051470227280027286665862923762752442601980180115102821101076303320311946468417222308141395317821564081336654110629303601263397342754215125033473380849847341791576280496271883772154693482538247030343508392184656763154753619537193817642996523423104139520581973560788976961566892236523701489993251869155891145361553252821103535814546063448285366237869862825240604471794424334582938488966109194631688428729224540430282617360916267117060627191194464596730195382956951736554093444164575725547688679478128816203178680158417445674980347769179230831024866192946524501464280056540677788600272249167426241427072882792347980656426370752952253582265352607081340642606431028818411540020205252125995548565984343135982211991806067174901770142455715529178949561513861486189272194834078026749489088521300364306828077742648058715798527048447183231098997823947263332632665202531738543159191251846115204275863592082460084837041711789844020534921206055036660870766569933816541270860247936390972887855778437269655656709913138290855755001824575514992768343652990111634524850295631923964608008331016728580546098916922216562381620665637437901182038851173321493405143257977392257033614387874725071131028983582755153843767844939414759077225895169650350392674814347482051459361912484116349077805218975126624936739721357495305076660216662275739836761461453966377002044773379362136018496743958970648796520456649315623999301087285186482343460019879725174323040720574474372508569395986908921818181892431508261799566629889080530201522358637009137968004836292165605512131343385663633729741704557438743677762686207697471453110784390958832679826276002595820600559497192298616237818757891242599568856136447962304371172851018803950162832919421425602850611514604444853161535840020302984786539123345514057382412330971424278787143824003994278166845503322274351026383096504752357192886663783277520283714966444117307982052056619278112180238995431689167732817987693459349040418052738726383547067552419303386627108744310530027122346354909870276582101732251859223625934292368290018623976151495724037587357722370165258179850968874404542723125681727868811656023774406693121191331669183929522480978569514011925773702263433517048440139838410217564808660105466813916110896719612775115712884867630897177653546998563871043730473501936041208520920550630755049215148686865146685942324261401982227200089211435662939819278139660274736317096140601119955014392067373195451106499538741178740969631879146320875882644705399893896162093658661848216194412773287872395591171523186628341024263844771227891454939097311517693176687199536164810896866884565553188578844305250588662798118034799921015351101591621810120926299121055277558799747664029328309813623482931171907141939636602897368857814429892682433840004116530337018918338728319396578434965548119955465349358302826840077970753172355252388834041463048999023115394592929704216083240342321200784624363150257534854770521575147627341620193833308238318917497991236113599269748662695369722558347113366057624201287692588709018346872703890974943263679205920278565321552440246698397556807195361448809158882747409827283073647287127463056600345087058528196441783127422548920828087389455213729197262811239256595068202866259423917455310879003505609300015447037465096371812877308388230840584171654822856889234050804726481358104881611018085291144426250676948282651844712644064982914865880594037331534608096338097102142597642328703673250397238137664874120559416647361978288930530665382123861333859348975881217134952618183903352268819566956979868308764973267166213670538345600353127996619836261017694983800181884052488176842938117855040393846627571407845019900153409700008157171448689398784362400367142896425003683329159353054031735549000772797276506513197795798619994771795150155763362346933031926459413710781984191893360301812121791025819981721409104213287311275607604338562036391084114028472562272970766495010306863629810968852468429213377357555658870217845944299258841993479552299526462750570369962000359520480550003586638815667004848101591753030685000707412159552857191661216385278006918623545132782883791472242290443336938901817289221724688220197914494080234474484312098557153025880672343333710301396483550702291640336005391675111623121102873558376703636513178945271043106488625121411937485980504923022046381247045614330468744709466286308107708297948064638673684583691753396266772848871246116471735486621498087669741068002656018915709273200855808942294487440610417274773161219489194426292880486301712127208832780375201442319370153441213948492272054086741037316765931527042761565008814041702927423846059531496833120029370974159929908882991090963609829947177544925588932825311805012754997607428094401631862452857877764805942030276981429373253325450437915155797679315408320500290498368004271327411843980482592149179706813000936688560087510325312334353057267541163065160996988883506831573646080817324108062952647446183956127412021517954607413842854253109705767854347108331860281920959960357876064881538105419575472220869963164559080772864318992503813092718105335655331853751550145520321397151420080000142879875261623270039756608455665320237792512455854162107475490593622769911801449881402850934058307613501608971430404559005119544276395558444608242821904788833825524250461642547477492949393154665009539834453229270709046085494326236441353962265728318351143056834000813682963724107129681700740638162383843491605344566706937925485633697269368056817153646296262597113533072371080431484509498548604091738601797194383158490284556382430716664624341803674202437532465927923607308482114015094703227199169031826741748576209854792533576097078042161420028774194187725759535281342264480093808047637871912567518827824248788953209956988198166153841920047073418477543504078762562848318628978370884456244659259951432457537193530904677421884400316182761447300762645060252974260041949341469742874948222681815867431494286224667385296890931143638931062639280082431727118363025307124682081450754223559724560850587274349750404017480790307619304099548815490432107818832214921525576344942596010052918356134350118409848795191391977133665178305484174964924806829886759997838636473029505121601456105931371661430746773265205740171126299920482471453177477810323152938926417843599320665873487734750699581884738075370262641573698544262456125132151001677818671421241625828153263453295464607931074120195243707968449378609007669868867204774988542274802043230460974501461195423136590086678455476396242616202850610236316033915960948675255029363158716334594460412082434739641660247852639295987951273914685355373463134910463573538907663769574194014086517365382376280055215280182762313483828741622748683266270197463334040319374916212163545895643215680360618665244496003488861959117766268701847948617501372547929602977609277613717820052591802044964015257475325682905020141751651203725635634568892948339495518028356308762998632896071637772184659667230237287627721537056041309493420300372019777310108451550082834708085644347409319165620771507221057932486207994059190399588670362493810197326920189235567565675731297002396714124435991537776451233755876339788673503005324048297371263353357803883880869178541682487880733284845850337201415025983010274847880588491519836372700588252666771469500477860672273904907057778109647068728075772003736024941816928526792451069024520160954638798958145332973901046903632601760687018319179913815047765481125816857040804669503352855987355482210007489315104605574578658820333152775109506220527908375925983344456686849261626086326052688727878577430186300143940506993556600971383502186755324064875067636011581007283180824141407878149217324121499903567338562191681394397527497372961186730912113034312668051245511980495453199389240765337180641728035931531816284603313853316270095062045865795650928673763575437939245299544996737775384780312847513358654355088899352855396181195237935951399915526118513619126333326781169577567292477952780047353643381791474658316779004463988080037774261241116050623897979393818183897841003134924987866497782406492495621652731587055350571095593284840749428946610755048413505695262773157313737988445543117928149452940402597317837887456575569569843370469919367887613138129735682018552726958871971847385156585719774685559977347741248137110383586890090142742578859844760782118288144309449770858225478620458726814191316274503036941021949100222956509934306876556559516732154465396368822113910830051807876488258066838021565710051555150367002897006835666228351897675016512377644101516799835385941004385958069669317150038078445350528609451886858788953801932202198461301598324626724117445437119995499788566228218556153809277802211875094767346161056132195387064896252733979479911920903463123306441577255557121287466346788269377131164488515514661050117128020074277157423168628132425408804002516613191451752794517124973607737581644036309398526464054635522783081827696708130423775593770810087475724244178086613850803245218241247358274422591290617090507563631326378375741863489597678463695790064780546481306219375882966995464904795821160303894530355440587046038943656790811471322079690497586278088989474040229362419024901827269399887984725443301809813643395052338190753792745603890153382379775235361578278665451089806620017104723258217760289358728559593271728306262976536194577501206379173068906677692506536693803080131009134029168699163593958945603497292363438713969422572529054257523983564624114896053125678809144543128952628474634845602707248385472713780129917621331572265903421920161703414274574123315307699536743776999469496263757154520051522433701684604473553312199369127045731220243626369560581526408514648210928596541241555359386217740199708364953432220318938040006766371043369288824478355561077186810498845830748655835799623001153643139551617488826584240079549633870391763059907182762011938066627188123105770728841837555772282918419584094210086821915653675527957756631886286102271733615027104632889064407713778694890024011261608089630242114347567499319505262308184373653265047425899707797492997881128375055485326911196763874538942598525313613741679583014980357811238643055795153538684092558189040011410998164614147891977629508351030333000645345973887447358519086229558320886523795449258346428366893711526181336291229903274985125957524176602615369527537943928783192022296820148413690182502687485401156984819314304008828388930299377927647128419281768809280723696443185725024904905596109341531632022726384110348595973963984710264502704978055729164739547382415307893659742587659774433469798127204959050658893952908386991782663618166444925854119834969789594145963406210667229049147848880794969741464473518837424637347416143159661370501754384421309124622407469989264784830550306523269416346474095815173422597971885719012113347529561899850394957941565692432332571428556600385044915283559532906413243430232340386957734926412543807973027829588493067052587430739059579190791251534661668970786425014477169894745287430305718197932316353083264621361005846177281903869325182674992899118213496964501158685835992737197437657444671148107842706511960703944951768589422646444634352709257015014880574757715889973613786675213562652878894862649566650171623210092997762218027815536114257653858612945470817421841051874235672882173334126044046912767180033975620373391437340184189895373515685971214862475197756821077545907741980867391190896393235876059471517615392691021713718005895331426017444697392840428591844872545192628924250446793711953443553331821796760019635448840414144429976210755704137922500385341152364876558711818304655235224302091364082944033871179675055290499252288753045853192162096833428627176725962417048269001835652761820067764970178930037776071126914481916888654969702801550140115348242014439945218292956793911028927053245683911408254081927580569525076203750444207902684643168115314205283997278177734716536533326248677111524532526109771033488918078171155025681305877080894598247905488417019661022135791070144469128035079725939991584120552110942939692117001846887982211770954831869695589439494455125049591868420407205218649701429414721996488734467378475442782644533402959852937605087083814515500427413693900380086682007018979815855766453596066989799383961194163259383900220557636048198630451260858908140544245343447923924496133587035537037913551790375878170673378918175835423325975563898820223089479838030575657843475309426508886456468191618394703874429027333046024535082407174581665741508184750896159756755738725208753605926022794260156007127425026217408807216444991790593385569582669630738172705242214995190094183713023448111363458334486008055114214862591197488594881985052718467112857838283665006766435393236949171765969607919498532351514464916340276364650053619170513953482323211155647357687073676051839305552690789525340740660962181366513705537421599820266615590988841305956995551456151930541987660848265404062582646667951306839328459268314418346635126901282117790217762420634828273365303957378720074412261752010280741391394740848842003176059638591768562446094171506103126452433647944976857833809812447351073484553708119830929744199688943412877257662900481021793883549237828469411814553710714108172775375137015850252775829887861627305553476050400926367563425393025343759841133321063423748508483396392935570747518460161464186074186319616897211062583380193521947430283223114725174671771118020771549235443751475380677403663515865817879774051426628160487316346438984269895371498473188115119807456488221861308667042550259868217201340964066564384021966719618133635384412165935075837117408559961221809613917023632603423109043812756325692542350311235230037423095929141585370685024766689335899910061663835870903833347064000311369448073762663930676614759139970261546417128366296041451407455068276177263615982945558566263570285966500293937872520475017053946941992762434313093554091981607953667432482963872935646793786848070169282202536881816013182633588841290212450042817942740476678118078355138943060986855709828881149069076183023121086208260919000031768229278327814305552191440309377419838000977721587570599269635178070894621954472416219030827011990543692022428302177207018714338384940050893085685090229120785343972349214593151414901919798811483857334718553491156739863396888578839735746937199063962226869565206200267963347822034985823335628760343762720473652452423597116554501948867441963132154794708221464862277437640658034386006507537515950222142851135506644794192009642162760423296598186136552965135410894570972036187857613765378597615507742846265521792401556206290616119554119125129479542259470803339582757494666866173867353331118518103263405906576332378447901511103784521690428975668038248738386238625124362333098351646118695079551564737018143894322420727414632959092289303318814750491500677866177492983843413372374346249582183521391439419926532389736998344507734556097324927386478656397255254640958521420525311004228144141187395457706452913891578320649692815658254878657248060276399844371717594222622687994803795237960976279923554338902906337929139551319441592984763928027463175484953056106975998936017895065751177676630707089897103544090622210675718080411810228775849845161461210876098023648740942629984489758381453334995604249806645173845224258887248003479135711614672927545585373659857342626729660115339701963881011943283111535673426001529658306073322090384260951249701025706176833584229013781380047121404268852792323750531925487193920695760645960103224027941840732588989859066198472366261393517167484664753878665311071208717896042667969775119470403351291976861304846048098523663408679735922878033964139965827598327737515659941845423005450297197098269315259803097365276025409722927863540701820244354233183622357243974477591272815552448495378464416506698622141541404837204024928848150481167218392847139368839130180137703222891877722838958543721440884793940870702904000988618755648249728818346134716975124954600772037604345104746350573014391427859037860362240406740432929219556600879538463568387507497827947077204612072765716372974583209825262563139720269862672646137619704588040290570330469903077266071602334837366009396239645841120233295811514801837261239994287638818809707120979816394625652993386730077438655203032329909804484300045174967072091443301443981901431251147192909366178297114298926512369067848019623012912872359759531862413076115468684225579789983823876649309160340247648659237920415773824406432308894788881093555911455150846257523280824890673720978876791052379210545601168494680936884911291365851272226420539983993344589002980597808142916117579415740632444408636923276647360523274449557886408993402057556617128949703560584254080039137258021574575572972979478150856820190192753720552892346012483212078202409261009100208649662846463929800035380627783334082824988827392646612031106886147406866155696898207591554573037148215925021740616535674221823046586031874265550586183900965805742169145213507504708756201839795049088850373585354162735293410888347040273304023034621712098061207422580169249441913198338637929055789619753230371235600753348738883116155509768674991035332594118968773841345050605015327687573898293121002838632521793972763960488449896938632403558385061835217941701716095079936689039764345400800127534859583351948426613425538430755919764615270579034592423118637715904467956530297242068419275446849085790059953630787536909306413330899081735091714023750625365961086961320688469122725248878789697999071304509776742842550282657897821488271223316303322964956176903360580997443807724548237210063849487605323881916409720935767932577674479029774193499182932277909520635324423989976433148269790159289136620981941208524085306113704716307035640997084264705235398821039130213528934275634581377588210157867282632659827497748686810808757029039057521704932139357949278454769045984315638842542678074353496705554353047226716489406333966577207768701272741679634368468557596801281407281483445820438420419863549552596619339481908758948546077982130370812321706910928284964914551672696787409153737692868887927143913786362487312129166485682467909873002335110055876364288972601887655933993100744769321275778564473004922095209442543328642636945423278732516960829567019726555392159435851706453959721144098166821140228915736683798277359725264250200884714692568476704660798450987212548736416700454412179320714455795565868179576256617275713929032487756755229676685253024099239276869001609533961107008864821968731901398587431438863502454943016750010998746957039318597465237505065734965911341086894676092748316722977370943016015486326370687418874607548962249688343548410226106222287393059705039988361622964298219694614216699088720313183071285619533743446156678112634405852871795277151687326302846875283315277984407874569837766784411535161531528805224288929829243579192521639391003023105734980811945615300195433422429927884021840594271737406569050232978975539246239495881912088428984594523818657789790782116205564841997764073023373806027228953179096218913661752041520266984868072412682350984035592003742020975377208973132694711745784554644576811570263310710995480351336175947974670617426211548966611548799408921476069091757651086865096222302897483313458541522188490334775034010074220835106318442723556701583174327184021928909922071737966297024827842303797009260711726847895569512167677756153009848332843228811729681566073794943912118549885816631631568133301336217697181265413633427582463335764223104035121361435578878412361102548839277694965488793899834814337910729390853840720917536955756223264681605270590724525681333721537720622739870499456138761734416127020049113158669737658776304783642967654220410544801709439858343075611411526100418575210938909922084756716014142810544746052450556447781343063539125814962056035466786502552978684520136643376540195030605938783052363287054149889147255037143360185381048635176485823654074503971509287586341825255077301687912044030746017365277886915342359906493701343067778443849754550660113332493556371768605372362675057000524401292550903899089587211591643960178407305794203294000553664841799231865499776552943830845626924586172777216780563633321613940346968131492196242119184581399248067911648057297356357319959558330975941486986090190035008979311471316657836548556664409964460056578869186333391769327891711792681742545143763177593675666721884723669727298306372250300651149840160242960303279991988985541485766594542850996488229533706697710924459891682208879481238389672462229895727389027217997270791306668968044257976673769630144321425025242621863415366586089758357954903808801489705418774337322549195551616419032344901136943537905424082921361997645947247626138732853920637689311270482709363696523689851108237289451022732455459716271895324329796878827381103158445920211757706806731549703179300953697622088153786740186923578800102699851413800087271229108979865070909814145714109256394527913777768006645528131489368817097530629596412677171151340386797830798718099183702454216067153470479330433497199020862194671262481493896355571065498672906530926486772258836502435949404668596185334820194863064056772473103520469451398572609875497746696427588699999595218240014765177082413616385776728393779209124482357607982071276173093468497175622929852361677124512652695668619373930010170295858329241808840768789944391691798972365482901756474889976363728074064880708548233773573078911094030853502548867410782600768588927386943394815491209205239658127624086235439178208822431634841706169674421856600445494703698612392998738913407558230854569184941008664237298779850733980660626593256586560001153968047235709880076830391710620664505518296066421393508092208737591610278635130928770137654105122657032779716735638302541625057766106293635726109327535791627199980845130829556164671523441886059229679016694290632685566283813976900148248501081052675349995873559238591685606138020696072006475832185617381072399054273890416961141481594820336686231810336011167891543985908071275575946057449853518717938818332733428888149270431982057165822444066602623284466052950434447865987228841488206875683910558193220092698807387366494269665879923994377885779500550674297736927748311785460833694214207719437009372949432918027505096741114153041969160227911521902427346705675827106665464397697458982529222956682772679773092390311983630581285867122107847415947275599221140586417050716599517600869744759255549240166397209279392889896789382961161365648097498101631780736504398812031578725251039647977752151925410810179842526256740549600340631711963048532358786876771972834976773730521049126723402251442020949256459977336827198410514399561614697484192613264360720805481248050465035344991756564139853076437162527235643365410239020243267875294273340344143841260051743055712333388353618405360282736913605350656860041781506347825337941447252706870702638032679666359722092900539765316798563405084582283770029458570401453677491930907356471741625038641088281525193459807762414740721910896922675926567971351464425823626449710209706196146937938090276099149880115970467317796432719123141823124360939554158232506040854037908178781234575666802573638270604401908255904201015501506007276340551717429443259110269872676771918701884988102492230160990361132240611667538970608444949606323241044774988502536691345523103528706497230638530080452516168225124742305391218023741870132117689939390444987201679380165407562895251839760878812256989972996081756673940333589933109830963400057971085045099250135680594729389665475785431943226741234398612484210366920950082977757278694389660390894546023706144984920371368154977856202304818072236335024592006247523705012147466466828959918074621010275080312991039058861413228658515782614053627197240740754041143501511601757781416940803321673489208208842798500903573123490271347365496976969678065975771731773943856809795025175156589926948173635528323706679071201420306618394954404241664939698383984117949528998450326235584745375414360735263292538909499639857794478432621965415029082631857894295744161586431736479825080306895092125314200414551078054150091707986987387953656243365819295360360197995747718401733687080738326368823663698868902693680908234165499357971988203145173436628979945443406744800901092558274526612355782611775818013373193894566574731921453171648173011650690775011765752272415596825457091803834286548446563631630059791384406506892631320432359076874214015583197407664499794099720503552883512509522514144841411351825218027509117156915235133684721309750362598536779739716837852326573273678409311948618596253120451477823808035765240359622576498732247534222950826800647807292230445326227207768381594534952316413993010023747585995723727451352252117704359560350689476476907679432523568548657584673664838572189462897674880293723044665033987752892373100175296520885161712430318545563376928512657643033679042325182384380364455870154396572224981068115495888213066176912451348975281726928674108503874025144378121783606843754831991290643876708276340157608603458620457474612145988967496866873996229632676371203684767785236546075963938179912814418826789442022625722975555382702686846874782323726658308161301910755240827999172433186530565268538161746414292139973106502820014999653965619109960109686874246542657050858749947824026786025859198865112648102532119715020967997728389399005211613719306996469539737043200528088532419462735136506352426498653311274496402716523401418050138166186984752414711612699670570119812024095538553689658187804124708331988248507936757821663899638207174947951717744593665716277163944908101229407769631031263563159067024274238261217090281369712929494071098567806848998765365939305738822284349250626431738984554029568037446398956548167484043418433211849450762036778388250481474398924918917996210495674634622331265861836390539041510206906749255257456148531738725303784722290965539664144733476461702075051327202750255598928854991656919608972619250282325330391407221511498308566368781397578148939303436847509242421113276305923391080269348304969105258965865514639222069294389483358693990605053631456538208647748427925390681083362987476590071289238534117421331253830014970023650420244888154160213808639942754067580688277626443006432796251962848188606270761496499763303921512385746175593807795600269337449159234227773811530979551503454053620074806233441924706015890694115938877036990325092017649239666760932119341161820160365045233080226132497313149113353883709316344370955219565449092448896158297564565678203912430411916686072700451028801967523537691702162373753157020459193727812021521112372445657137755783509689836309701346623379631109965418085694079322344375436703521245775133807550034332914875918297604392176853901024243642634732845966888189860845091196393394544029079797563695694236683854862726321545764584823747807123523944877359808448250511705958175808609911619591950392775343628137569742794024201120195025448366308190832641436943488569212604410401817817335019562343761941234420979922930626469635564998781358798167648003458271707843134007679164216409236519969080053037559804592955775094640138546663610313893553658283389884887860022868276031163717116181009340974852044532857851829502189920019082117218155272450464534682080565267651914539823663126560232600980879622401956800883538720720118983247959262195181999676909537768113520834249166351237146062407412508557274652095387033997107770819505786938717307662582322418110271062987590060400563427195460105140702188272338448411670756118221249649817102756219490142033933010118316717566978971714051071459882704529674261941005548635792263178282115632367899105431643986275385285024135801847512169557323273088082325362805861642413888949541855142350627949926301191082213871009161112482034521361384716511570450934278512449966347694914868971686330660173244590749651685269202902140693202769850758201641959350003511910346773710297742458795772131686699772198181242342541893321609230124678013631111841810105245064496390284955785350291608578318129286336890496770723544050092538664477706193480772576879308929955966706961600916236383355248364223738479590776471012815258282568360765076033624933554005499987027212429859697060262046508169852395260111993358577403968035253210807406381115546205481379925725848559284187832861612346705707893319869810118485761315988295590631751804674904936074552094858842567732759013535358516343816791854467576114883792108271134821550487501206857136299569236218745600008357218481990741219352304346851881117633099289308149256220690263713970781616197369752779269326255682190284765779377645951623080592628474661174484108673052307203254443870798878751787758439035940156488530061376905080686782165585153402062942252020654642841543786682046331113864351715091863428291368331950256594202571121237109147542991815635879324177422628334932414482751592563081449495427091189994036739004730224847013877495628032925130782985406378717140913389477449530671252630374989624004484380941613903667895465003195560044171196959558780817792210342982287158949782992437430228500288917885063988146047651723662361843427773200471419168831374613508873719746122374375979119719178227975006047141327175810933081355276229035421048754711219203671247625682108018180553822227072212233603238691594323789236291084232578592720441469440894271712622891027262055082108416331097518208707671217786639840544925695205722098185034049679762372728323841500904305588507045335689873059446519797228437986014346156474789449039543633449723110288471345676302638165575665904912900885990340327268264484562219506411992938897917049679076424023288016962573664912247096769454595076995097385016748423317951915796103557848850480793203928375567976342334829456886654928368773342200427514267646486758208773358271636560023749118353412558512824167709860683802061215660797191271093833722315140905824300726976446512843458242005779710227203336247757304734331324314686672661466532498531120037707214969177211284917898949938455313115814822386295512598038502920106236473279865675788157483445721900698979655500662255685332230060150808247991178033059880227183374949048677746123148968474232360311472925524535550313220584211366242718176622477445617458852623471635028460969822124306055370298528826892783225161499742268053563173666703529626533242197911583152221151079142749643551326701225982898210323633671788924841518818142676643823124753886787048681406093641799516675029498011216871330396042666875081752512160696678288842968807054997979104657114623527095299119319652644700522006840394586327076171668496100126280022701101380394817614541079334897895666157905262089456894133455658824070695423599494971078555152734523460221631976193895600518110630085185639309596319768394600805749891938140496252728849089079183146467637811199469129857377748378996783590824823056801917183833405483307994001662496551585724594665023989531004827561499673298352702120620389170185732671157506416057404754606828326468299497571308091000694532820860005516457888350218092976075126054839367054250108719929229199218877082783745781428608626648380799464970511828497134155163434743751932363833031515142053070992723680880667550327598425323451091403679454219422034306057348185315897431490868357301813464167706196995915212561217676439663256553064893870704028261005454195299198200228947503718031120772809332539544212540876655067778741812740840128297168963385240672258111998845355183803304719262575350755053068800037375000115990612757459704335464850919904095558024427869009912214729731746121667721918952352825454119587481268633537730335113740489120126136728784451803398499888283840067569857850152585902188463378462523733104802238628613537302583724747761823326018851038798754298407464507822994473542529443055287191808818283962078479764025122846224257455424182108003465716981172355508267740468801327788618842012025914740040917169059282996901379974115658874405247231291052451426363223454488129666026581193852374904218297598934682841709470829772961362061172262358978291073264346647153925012128122594671310613086824392917854497990119392782718927437127816360027460816595085345088580095535166063741289850536836283783010435368523656880394016766417618808067788375146485817110750558509192366038618264671030403314351900290743620807512387252424565801232298132434660157132835749357599285411282620806980539700370485964448467635945458619936869482093787978494224586289639279897027008881680516301369432980630681547636168228518525222122610540916602787395703785105784263326079227940317037362181362230323456194420433034586943591649890781178298720345529914342092000397639077687871488838456558048334874350114341040109742750939053063591398691578145592657721650863584024475072609809912471383271045658661118421090149368597370928793108825665032937531257629056070090260229040849475129710811245048492476405732626229021939083948119348101879843751703462335027610093718389397752806685164355429055868739424368131647309163469913625237845658651316143586747702277883220780853761512566964399784748126486756877425605298917803212515320413479646115641100003623788210621696995441486603061782308003471185062045082190252970322644073220715790773591014121400998810021366543957441232844809748473889606145253960128928305194131668993424700720675541614805732316098388929944771329539616153992178708277475137152307562721637285937267927222722389703994388209733259590378337741178817246900840564309027646526417019609068890733973592838600588895450072741911343753929648104934113117356239188747591684718296514885102382731428543153070144219280550907651008108466248321449813545854690900478734558668367332160281135715272025815201277754113240860830150890911714740759311577725584616708307724402698316158463018821812006474674170142988514928130136383171992650825588138592704914125923144250647577286852850735962503246655152011451521892882470856547600925289574097598188909259620560792149489166717492414165599737800624438532004005545683697560502500043430521194400683888974377900694358366413936290348476986571432416604377138936377069512882363252319472649194934661580841229021594219534592309928329797895083114870988882265274102375884057614324950477695433746167129299077166070954003267227647037888069257935445208853419959301905689747915448188665020255589985264979958394571769403926188445118985644805262383609336797766765807486726403354483006443471592102470750034249075807135414805285039482275360424386694979578543550507039502371807892038442775957557313951544757912224581753375051839664856910520162315321340581174098421648461355474484286785649984087392144019669024805773587932640942584546486857539686440541836934985548145933259168646601982421310784113008523905214225652500889086315808248194664149552358478007910978050767388575568844917384522852315010320974749719743170997323426168143186505796251578603979281664465558252323513637401904123014155013129716962242901632512811678075038678726498561041933828692649977438378897844513671901128822600969967378652274464635520729367683274393100369014655482400212808768675360578040730785169472689376167533694436514777254597155820015343560489056596709486655369036352112298736246458516304951103446679119178392455563479406421219669093108541274515774582990899098276618770970702833214225157525063263090798625068320497814615810804587341907610047729475676994273680446337235591557394400287253255680133521313159334931014433555100385057631526806822753861041155990630668488431652280640610523570185936938335807013028711082339490789867677605460321392698963928298232618060761062343078878166970334836422190395118600942173374776036140046982452373272153352246316293033932091269044133427641401360162264865572245456137250088252376375909773922196407147961489855636865284774749087595779402003322916336923946619601274831976741342047757646882530948284755469752505505873890705398732532880086751893629066854461776200932197371167519272179928208978367236078023989658656159758233832809827648261229419212307030571009347168166590243122760355329649477032706217452186405367796679203644693218145470544400845724802412566205066732153218782885826535637491543402915417042892749693024025579066962723910864606340245206467285109488662415396316683282394530263614653760326777869951642371826827261367742134928447817781421166230773011754081793686688701609544096643129855548160312928265251480282029109132105670232298240558343161708900953057971251857290759591344470087738980432668821946949002255662095155503566600218867454414611529390235023788472254983829290493219079737155678872755561885946194649077086824944433942642954691666941172429284012831568635334076681444917330744283748371608742032509386326434860481212969186672403928750942331184206135762595640573393303452528679474353276720867546659332304360416773804946863104344229199508447916971495877828917312106245702719393466882705169908792591572517479278521883386512613766846917075539016075722249261751627198994613350591324349536218772355495916242347691331579769429823080631868960035515200272785638475771828170750074991324373642977056225083057479754044425583871167326200568833022606464648753979628896988797746125476908717385047559663459794533203941476548494425682393717169076264451985668117388118441133766560081963118618318461206688965175462858784244063297420020120979886460667722619321430889003117490483841296084237930852060654881313080646441948657693626021687234855203416121824532380418019261908474356824641639973763472862773985154232593735722704129946999776409375921713696084407629016033417571475257908831415953368047927813208567779763393547674698156362434845254157593884900093917019834792196538316149048564554462667681947247926381185767070737177765961178288920682628593774068673172738588350449571600302978703781156992615631194197079330849385191041193019474056132907247264827826524724845892075580640421716145778721697918223027247174544305724391055084660192413927464844158819948236928709493415037223896106908867122890730062283842028873110591350815963629714641728640844501737225434538453122828099447863973745687127030271172842333711834730744404578663319646661393573612256418474874230475277577767768538842989818647231944668797359969993221926243380047656880049769578639399434517991178221709860325684151063204369910672528768434681514399333094997545518918705073115380677548242152553982633938902000156218522427308675914346615175403792453288956636010564429919006601829892988856715365831662385559121045458673808759681213342212077583250869879157679018207146783191993461517306748391242248222301945811795047846332355250264806960167811940578421858055768972948428775711434299593926903949818710545637844277407729299426258395139501866646938032805912600195727960604459971762951761479843491684362090392684390023819492078012089360366100860791594461739947406835350163149020031865836676700059832625496350109000839545216096762850871308784497740697516870009982098444428278663789897330818350633345531837082438002230095936913016146624931693681084369861840117618961052123828223645363391127038511334009996873261742397287711926763261572331661856598968337057233904296797712413373659247246142031652324679173251768380348567229096358850135490724103054402667394279853389552554147714340047378903711752968443972164441153480974633653905270147269519890936387690298943310717357477986935496627784362462496878890157197570497222443928296263774334476171805253946128996894503100275485519669745600392999370738786267005474843346742960654829799033557667709256944713184458637020825605826689174224466789797688845911452736405773643601506653907941553582130690511264194289859696185822164675178416512012768417114090404288802771981426435983514680985262514586506837700759661107065573294596848546395022207392444123882123205488185248614898993763206827748393198162008320896466282382663882304635543671046306246638424541050978529396042317979175708127948147963112604728726195295436274378442429124939401175152158621645287331865796948499875584043823318998911302786101624767382082633866679427084328048299583546117037014215635630244454023366693097605296137947658353014665266698585308273811986692670395548712406447718103851344024887361526475461117203030257082981683368570252479474686387274100271544619519267827805957873205026111632003090417845633296519324244494111407606476942716258162132554862047445326710915209493130510397853737999282711229625485814137391136298785936846219043090996035973460727948335773455808255059733697558020253883818381136472436215360480787898820066905809989576535024969331250398684260326842370688431918129926325197129207522370737869463465128822628213070111925435633107845183138260719132627130827498724990395591087370208665520604065651667714212169138048451241060390393170930959441700123425986387787857517595078530816724424414697586857487346890682712158635830201300700860503595284467025647196506229046409739171940050244271510003835417547304452506475746017510733697762781497238665851550549452599147620977074564401143509296152409034495885579638019178084289424429005046932728323268324861228606873807331247260172381152965205465951873444357753172418349385260972420847395026174202933532755021545550022699956928148097289257069244955772910547155198389331013056688302806648445590111875225740393487915271467669443814051665865762543273264777311566078264624282741363022820187140953852572420682083484392914579533120914901302416629098913935929701470614474588868917769396710561075033329620301783029905278265123287067868790570494185602314609515280978099702560002920802445671116075336801820666977690744111071619640650080107142506159121573584076136836300265933827138931337270121674883704436417972192370443619078592963013181213083039892015534229069384272147272517139327407361821478628037899909178239122710106422902599352334328043454684743413444800414056457855687545358195464084800812730336648909045284162313226305415976759231340505158092309791625907161319916401709613081754217880625589133179192402418574351742221241676013308450952187453262614087325817138142705446403228339203396263417556917360340993668817725395333421235058800182325951109593643392947189352686364517620773338397780013116825605681010362410388504349076932606352091549698430869336115488044183706171801728792741487739552502269810089160508642620597482767924877348579578825128121270947618425578953333175691611241412127485505425520316656678204862521698356715180355288209692361124318685383113467328007963206666127975988030150831219264488220129782611932447389366524205289660713137754225654683650790975623677652507082389866541745858589774558148603559102342854159898757273126461019853326644165337123405695858381353353720613891280208655681151396465677001256720189458968345816639596807633905946297345800748605437512359957398147437930189825156286099584316770152293640168108013008746244835475504567585764911530224173384571772696202624483449033267163002269154780919052959795660362503303248729528734993085568687022429471978284484546340190298095260823054001604408022941528525002308636180772694707179435367439362868156472020012009887283918582598021136880250975653414867259797539641853671645504857234536397831890093098240907747847585361525308149701757504429315388022186081343909497076313792483399899648319386750489766805368340994895320708687863915126025364123464310910015671794082389299010738439295154309570338921406997670238894564044146635995680101808869812102502105468163605828684848737720622212855830403947879607286337249177182659305063771723741307807810295473307634535500384953081262321905337271161938906419042483021689447984943580706375589760452971803270741063776344058957362748514224060878836998865208012249305340373613712555632673740915003426114542850815294505915965418026587767020248288799640112334946996017282886453629521541978511913996671623711912085762838737602909732546283535958662341777534387886632879359309765775678149575466615680858500283342401155840694084967380047307849375101246903762299774548277481110390001637604317763518400342882832724038239761895276141338157634082326652773085368803447206810007276809120170098648220072570127605323183419111627926798026388462156193687138153038227991948569957146759008530073389667321968771733485476981006179355848772369413423489318654017506532563511590541486238170393129894758050106711140562158191737975290374200534006730938955418597891584488683634654116332188825155659077402074683539412107778173394310769513433906100628010680214573102365771506433428012016055816520056812357774235982284838168288985565989304748366188280351213130478069979791404014146945947131168519468117185376574317325167724153389593750901713579428977350855128618735966906419033597679001720471621305148019693603252876947247140186772193035002828937490212753342473409752594236321282084310879412765971209517969815955977235444032814973084232996678001142584806792459629074268780918853083878256440056918391856683457518555515824470274684633448582617203027682949480928780738662475304637524999016869145846928815829403782933531186810486447884220154773705147473287745577491977260975776018344486119858795248157804046056083562371226209342241811339893236582194868679782032244246953204515302376183995427106194156438977807569441987771279053461253778917424469914844218933598308297254414903458527544467441034614935596542288991259192281953056292388050628451161174021024325313176258526019558837725114930106019856095113780859519845474709937868517454661388573635782941999187118031738055357701683486069113952102291486604315298327001348279674463134480746428384297846325083973096216847609579240475844430715212996689740421473917282810252945860835836422699715178537322900365641390797409977512113358928441102276423275186302678112686976500811823424773038387764562308713430200649541931359426200808748886649654243910217950104621855397242328072402367770760484544216076749510396118666054553837674077559692871768950815998205494284641527797865522147205185002050922421349036582681169435392631603037705705424348802522919833887800224175805882434637605567937807501764876636881934870972174253706121433024189746621067655731747220689117782911098532864189862806342584375037816715633169002048872305449635488420389901050337433376010138149465249653880958152141636580378715794641705179453547796178505751409250092129561618460346993647413185243857505021876155378251455855343939970563023083225912802900081823430342947189617990092965339444663025174876713284716246016643941540931357545031549867686099234715418659407320062548437922294408184613867376063691810866289617136815956860598131862479304166434682809098854491875680957915904590137437813646979891593847684571626587828924378625426155620443166654741993670721290747431747586227805609741335938733191699019733559826425570982874691904076530020214904146437426633050654698421441216824390173073652809816120558101784189028459447270022262712480813050221436982436011253372655877847785260233267070278108030629926757366094814780140442264338852953032065978435035954764302234231732439353348320037026944752297920517477469066354664734917373681994820790971534140533514543888940907574234291402485876794225350699779848861389873764222441172438196429556220636947542814332925296137840969660109385715562852854551600335278614777131841890136769283756807862805761426027021205698156028473773482193337092323016082402990460264221317317059231761667583503627607508743766784947124946354612614136243674621934238590431712398718198349657292697786259899234081914759803260343642325864499287001718208467614655098456717995391034614093209776769967137159791919310922084548475469170924348256785258759187952960647366277028718351179545146138945142499704620882585654853165481298240345178277427900791565400598856275120406785907861767829461639604477744196986440356534402576217470945511386410330197999749214795788089317282125629277784813688204260350211734456257442011932471694328294217417427186732118213364537255441936102265153836824795767923094279612876969188548368482242910992920651414831903961291121072545281635821808027077392541149560164877478261593690737971302460440894085838614483685713520697522009096500284566882909402499378872978659842299218846569962603264913224907230820559588938699578310574946036104730290743601746187052701537622518629455434801521183885530880199358399475107025859473195369628781849276793854793041434412565347794060761101211275456275923953962390014376387486095477643679150216884920452679927779883422765972861448282255254525734932309862140635573123483769174358110924754938723739366912909096404052881322844346243088775329536284872985740817116169147218690938567111885981957696583874259053851769927504354853330963922124347731221515241386797019358646917868698863942844622874769793813678254199627120785730909245030574951718926836327373005820624204375745094060874954034233727176277814253568162031571909271315817585254561902086715629787342777924523367179545503459353440414292217388655671173745934247703114944447519474297143145088066687704409060518995270859067255059204351313402529071393525892657084296667593531205504201106098232820756199081708818259782042950666682358901182410711471794282052987496516319669723253236957316977481704107705246795197930927818730655181544451178634798537758527066325114216106653242017699704873922402592198415344753356114283892412919143138971996466903776630318162716590569625049475599805210722058883519307764388486597031492023850803699845927848399607328351581789960449809828642529680672960988062060464891507791829502939396121590967405668891004266575668564942807132601898774190250023569118270170253212896492234592159137107298254913813475512803047895971416270784640202965834765134809607218648928757732522232270142944355181334769080624782331133417479806539948965351110901972477390885307323850159807657414859953857743736379476918799739379364221285988959920990671341434357901800137733711214476293890072251803442469966980551858406156155570715396784019221088577414406715868785553945128292301379124017193776391690042995679767925033526569011225095753154990979021817028757447946341828715819202063891367469074800809716727223843871471426123634656631982264471407942769402239601468298029103468810085987871648562774636848967268770630151290109965835528368296032601782669595840013119058012660624055625428431576055339579793465466766072151336787437594273184086401117184597536953265554942630451095482058098954757029285374415737113134928932957153520619654652563233477421874138773706478731935371211067185574553489693550239043827872671951273233012233995858452796038261174180318871879537569142050054176455946242085540056943684391778662801867293092405345907086456416028328806611203154935035075850467585094193778346688799087139360100881750264238670736045903931248510877810465217258979310388672506301846173795691415489542921110995694841298446544831987466965564175067409524484078706837829704028374131238786548659419513619495189013554675407690376430797473099558849703079296342115708606210515200632188484390375278692401702389613144974399567310006932891657079791148558339514793854540163851093475972146655617561815221933910968547948207428993753464537264663877392859472996834333048669764450714348244982766274234336829150680686257426216926379838944161485007493165132672837118099725010401524472939094541778578913544045189286445356941565250484893863022565882391364089665123787109200095303733675660314981522063861869840323580177578589230870722522378746169903723969862982006483015497942743735842058892128440942416158009107724937677118845929858005234666483289574797919523395795688549094038170217694617385610086457695493685968829375705014669486758333191008909052863145242225343022987368834766342104963396674033828958439826267270339138586725243781487368896142342548051298219576612702898851122483894677457518947732183715334424321059960016751325827873495407987962671540416356280012833322612151424981176899037489100474410822268546850445974549602096134170222313599829289281905764084763056070013032885088224759799245213043951533221912191736963498503774998631401706726002702378516931786576959577557511053644327810366644024478893962143260666383090617540429816942113300119043082016058089583602805186691825956454167265703205485260062234517649341703455732630728798817625613151023903705913885753296845755737127928565009119922620449402977637952678259303894400994660868169005600898599247826639058433865566993902035014587978697204677511695228910056826588568996895937218312146033805603473727964895415906955685488116783849725238313803297294157776706968870552129559148546867800822816579100756973349434860702592666883604549127523778403527554719262346030320964323794723991403201119304022061517316872528068388964176033917327141116422639856359595506956585733424772001093945826754425964133912866740937709369751599162803586059339723016511722276319451905098139046976926325326821490627287474726035281792813076956430995347546095832218458884643508190154200256795352636611178073271895907800175564100212485995637552130228442738643968329621587971357168586676664782667512916949198090995316667720667218715760431516392995099709283945614293192853273181387436026675376570848719949345511079993842046014125260272771253373787357604040460173241671470826148646756300677104893184461502995534554647087126040150222839397369896719073074568849765372323355222603944213317784205404952220975126668159683426882189041458496344497011250228334830312430430468810258060807145298900662597908538482976063315636239753046667087454601865690292463406857089104735484763425326471955274478869451252542723870034767172460841590483269409493051753740241850212219641383184144474524935046646963554926657393536275857464981099756256428591347010866372893948561738059554975636427136763076834693570324384442524864918760010898870384761007014208325957063860748067980408668309636395218220950284654230103382213780192733795297246858200431737163708777309604034079997171201143366408263981261593614192223322616196513855190580692575025181394011052794206359963490179304493141559163366349164791066964141129536994621975786164405005624895688071843103997698254949985822172294297107912494690593365022651859244833576843353291560023550074732438244377614090801704987555127000625127388392754878504554894881001248865805895446185678478746213089523235739479552581568390894069841439885409571853815230798952117960520396277725107275487090197073249276960223445787967922374532160012657663340753683473451814741486513006684880478378359587626254989235832525961040897838355816651017196184485009633744799863686112935109334859086705154537902457353105956486603633276858053191812598221559606659039554628432829486204051934788933486173986317933819286460357522293734109546380017999943790734347471920385712662180857510230938470553898696797185165525285895335394395688386441679731553981977954500134996561243695637216655703414590387646639555337036432656099904450143915139643342439710405807399238457718014212246023394557222862366385096490285352896096443007913514978058543633283008926275633010980836863935330665771796761695440693513982748187571210720486002185051817172751429091859486986433796660713496268903469369024293073769435551329203160437462834458188789258057465678308527568041912580652961275343488182612428162574913659019649138623553632404173851114319454955119031965569115994609979730255732133645088449366061120582542076114954976304058892599712782779671265540636131111595016259960365553876305998518661304974833899967416542322167518128108106471286215060323280338785875402101514389004667363544076269888641690634924544005861931112564430394140301285418670686240374863707669426682383712215747173983920325875314792877822208743689408631395004502391865619103149539422755225932866234650086589305440580177839160827265740867596675948381106962726521529892554512017165379099602715657407346286683716923977523323777711955928632094581307906548487448747515563693033683315143587687351821892640822767507808467358657180400154668485822871846436009041302192445270362036228592884110843875881288454862354424751497719453853590998279341138111064745154240306766428412659178535782953970221859719266151056227352878419722592598921456471259144373106809157559395136506459652266325198713832357926734598618488555367270866522374495103217821454753306072755471280837470840635830959295095649261654616526591534263765569055070156934449102754705311241235065505421940772830185420456710853709888819755610830723959788745025230262391189125584796633989669182475160350622704485854113857041066722453273484372077916249972665114478948820608312313190521482003290871223566509356557407300734252491158090818490932562677510710674499937007073844954255178242534535214469502295183148306996770268300419055798334900950359704487943546943111468755953328706623042130795966485643739318027557571646209454745637372123960138161490662979152341959379278340536951208737781737847882357701483633720583061185748167183344086480843926322893125935224286259494881998721652477468791056884441149869948544794177049408667002696690834834257732027230662716771318984190648358561608752303954709165196913286458826983255786957115231426885557260601357917960646095355917188323278203429375336423314958744166475043007036080416475821191850487322423265487080022189025663841504197623084476387594654413091052244727337140681117758383302148135150715241171978644244236772461956864402343116022399703188073862694452688649461891423921395587118946894606154624470474963777558787175377804318368855107107090238857265554316568513605876684055739457813392777826916462391374281496930512117690458635954584670045667444257018720564090681965434054108413002235222469734945194594062155249848818597439701760789413231983534089305998511365190169942369104760763783963450739493013429801172782025715395536771447010768681515291051230360178617378171807417850380550100103144292871141741888554864312860714580863419346044055588641379308764992604068794615646093779975998949750067038904377280052882884470972930405510642642145047095559223724852970814806201073586892049235100605584568550729745053425982205804105809797344883470752129919120060597428456928702570317767443698896904406873524030724754028752533301132729004495353862400939080060631493998267759398061766843526751393507335264771653815460796125358376144199923560219251117905695717883319126244543196637448778168268104960329490059083944562560720677833136416926024542066194765273531359200072959913008859640103289472079989602576918838813309002922818921169357393254109139981563902373102211818911647340914371649927414850246495765144065962944016142022038343628081150537212044259673362506083115137217701420704367354749312681584886645028155022157632540843519575900509906001530345060852416490383423432871215818326441711470796223393503160682797255565798692753065067977742109511888583152533566724480171229095572531938854253087490519362985842757152652317090005601377146053239884424965449343967888924423123680348883490834952246340084581134513175161005725033656012197215540929195021664819336541953299942531033873144173708952900736986167891930642290770383731072119849700378116968911150635164858120367568777753016657843791366229327885411120216382986334691147943003629541525119218730101778665442820052442069090916854678541357624047518239300677946936540219814933397856843598483113834465458607614088869431930675218567888134014772684305093329419611149164652620916069874116029612236994647687627793291796489838520410213785399382062211440483638273527594949468096182050312668027287498300969127415201832948391535204245506971920242445872559552626921927387033613318256647436606480924363955772429742636572285736817055101982544517211484155825868331776013315385315340013511588189552225696364939415083548665213031125227322064067176543555163334738329548661126390765519830830835323161398983586435673423528956323754691661163842249610416833025666572038526068868737252054931474721761941663952517518874122822316098155076675454822771923135230861107841618960458884137585448383258251205958514088169681819291997858483322117026065532738412767230455871600156721427732664751482360649198675460570730192278462545315237840257159742655793817519873373740963687958627565487138075579206588879922821088777193929826198836066486929772598629701103333708293759165718134323852915354585862367391873549246525542479917626576757565741542878968889277079287660259588399702487584800830661874334438433219880198788405636737077613453388056384261793329533232333109646655205132656138513126846820532265695372197125388437482768360664527482131484811180260177930455418205008191437967308098763037624697706110880628862274412249428483033028248259409272460726553163527156021186691855734349294730109053734661904408963659822646601271104641757451277733998955743651733441181900746359679346335917850688995082321927503695834537724427658974259347600614388281858607594199729395211751449488717002532409758978165076918952736612666286475602628016914026456677553228125628437753538799592717462295474832649603730607832273257237734439002012494259268568577674264637435347808889717883709215728279272882388026250675554868065003231084989870775023778001997678587185458269679760648191532942081793872949216986462532009245212923303618515443090471992659589624223976601323992197071203739210558648811772381675671714008285248243262314788382652661038367554044862525611435852624616780008430433623645528591831056365068774867041704007307089674560025990047339385154183731244490568348297382499475567061474281021458236829520432006534313814781656298171609155865578003795895872050601162342292850682362207867623051194258193975345507165548121652349154269916617625773355193518821245450890540910882150673002926673948005754713582838809470544133707613400731350369629548797709769711067194718340995502115127944490694261334280099284994731126188832258451451222379405104631107867787757508217767222720689792171204103090209199126214844633580735150175103456614398672614857777530847284778044267330230616698411587769623044653215106790171216847172960856127904525328516069360286212404499001615426201002518495202581989618493597777758182234493863651720460960016194913825257403382755867654720104873599596623184122229636291154023497302959803500826476164422422616050465732656430477731950731716221520657225059758153410249733222861248453298657915423601582536018293302751207534889564513735045794252547807982763250316934646079938435415038569401060148013399207477058842797228001687890855305239203159214522878165415629124870458704316975087821161627038301540787675920854645588550535920592724745059119235488958069846437565107033166280072152247729338903147784984487009064349132397522026292842762324687988386898355949241475530209442754055679769413970359494968911761614760389552825259976315786744094215815029846806528749223077571617616117129599707809737999909311683450246135142024565826946775989535233574300609446732598285468027278920442086978559071324269240600342477917155666954206981878395215026438809992212336395606532065919509768348723811435089827458824854425207173197674621995949753306146107386051630472167645192522967060279919401586641569145879144935418497131354489493902543538109625798204861479214877388012151516355761028210684498949250793973553323833326675925115040483543086210532407667874735797564172271803245741598806520471030821600642027669461700703731528972492357322526555606924251443485706356243682633933693707731130010734025049888976748654926186951314866971233926849414534954439297949759053735140445502974216037667693546147975079403923370413418955641600117179931021778826407659695837366618230586305006515967336056238965441715475825806052327647815319945913771933367461033971406806570804385700043578066831616251043578162019306766019685939491157447213218642727776426112158269674142874810645745581493456616059688432880615860812703792533150826684382278206944103191702069138634733605916422085103628597744055081038308128138761246890566570497397612922816340731638469365391019876958655744328586517077592234771842491833906989615106868215081447076705820238779159906383788151506162037781085937193287017540741120392134817622299497522021556527887949915230469489787269463478180069192012488978087724865857201191240965320612657496693961535296206728844945873003806240818886477024062278688233719792767844029714040878034758837228380617695889718163237125065716857568716920589670195779759982599563748937138977439281573469160490657731794538608156792515597099776630093555367452231803198499313697950055849067045762965428090774479452908414719008876153678900049378041593558511007552298878939772271993765367664572962023687929077834808576055106199430964090735767011264290581529822554201434583784699156688694767897012198033315007890593580524326347111873758154634505057810365845327530560646861345329516267724774888872475033565986370544176184845968422133761528105496991733741052234937449619890698381040240582966350548188088760166804387362298333953277038095940804549492322102116309270076830811713916886798627389257939797085516041848808938342890776096772358937903317597426482424775614606468571755082045719671200531747707921912328553818384262768144305418889221099252174448621145569558081950628663614717912695312051311260727679718213280928080800491007039538016396645498976772270967203506014729625948420809034156868086342102849218064118424388649082757244517419614781417024583144585026585978239171075018551523275448691937486929940277713711248788059979247410914636599467951811609400895037193891122417812915091540240532055248570212138484521870957602885878464920492146249493585247367727005758832339703545880386003556436782856617200916099609408650755478929914214409697713248366156291023531872216368738623725749540796186001522913581779825776204858262028460610895371422003137555192332975891818375017632750818026672977783181669967755763630639846127691094849388362847011511777811981812523297210428546874267484734623539508473129725964615874157637877666801066723098124142995521381736934318438774431701751231675409702353226477984011905705916175008821593888279182349978425185723256775972096901677958347953645046816515778266509215765511047698269309638782443801591245396416877980176752966160464899770709220972153786387278857104989741450554166482368843385544296840966331922993775668477527635485664049373143752976903840820510293679383790647311857268342568709251900182898136779767487129773299847687219976032719987940702793459007367733217626570428042162625884932074875288035008494870647550334098118822700846934286612922191692656411304003310925325747746451929585058391842157698539032357990889109408378724435778224018540241532593805603110277992368545401337027437178032254518505393395881524135628306585785272754983706266141332398541546628160292829221171856672796516767503666453564719960362852846002760233533123073596535299729746175819131481237827895126581989711509089313722966361581326334780185706662983365962975648702361202469200606223898170449525082777241883038947838643872397659514969516558092539780530996420431331337882984385605230835917757094813515567124767140521819236649672726582865568234929818617505024309897170835893894223269083755257057657366668355133210381047084418357028394763876226400769044692403029838227561965687832037338969463914034236525804269091903592196078466451802169027017863894745735734931188435716093745072062389629610703829476730565692450172185179119192156031650334478581578621552770504762218034289573058803039384104667937554130590537471450907211647946659380804550315099201745392997814823365940560509472429237307269899071107623091961675339941526802667689159220099622732570981679625621047117991298577528927447264314153279617098030666299916516775768317836019251717328186721149223057428561260148272254099934397179575213711400056338631410560231610359848451036413744089809585185147809164028641278703573876496852282300195802279147418253970912169962966144518112750069904165079325703654307753450790493787034498321728902894308005945621245311431631078994661776095799313497078034698985059500117807145924137341278252371468776891108924983809183064294679216891341355091404466596918564705394035490885873724165134931368932241547887934157051519649987850901664915826623317859105165725492735432503807307345832152791075090897289760167801855122645686383383436545656832602169605733473324029513304466717110711819245874978391515605003495098259320462823635701654441950153153963273282370055659408052533448961380225306873083228742357921709234449170864892300681628790300798518846356061588645557067018539715560220207224550446094726833339632943601377276390456316933260971641362292864096604743977316072330356271828584873686543247488013671043678359546743483924307417920467069874630760318484726582863926591871240198782387044727720607230002910025295623948853538945719944772124171949815782190884969661820914033698892359296995117969120002319607298925099313675385877606672421658574459186074506433582874111313912603494353149897813348392861494757561891999003599802540283259180721964088503221722890918134607243126861421962376487701826070235519861770899056302934549161137884638785118042437923187934703986484899078081665923944732764002294673000188299607991186334900462148352518668086703303461914553591254799658829022751216577711133760129375609102371199077810600294811222022909505920607961518351078313481509495110261395099911978850416273461966752080317626095535950146074240125586822784072047060285591286789719588449904892583582799940783175430376355974168414239886162229327397273161014140871255045763381557557555520081476085850853409539891745093856292167283348656079664451849556274843433716860836134581875954597344991551985796330072598747621154466233693434564554753758435573770199145852147110730629045171320157142562574011015969865549650765039666094379304953331660749442600736313967849187110044284424841031800072806086757180765679521347709481511964705183999102893710344286741397916390923229360135558324453421042706360361152265899343503294413520814920877562194209399337024747709255129807864087733154362377515189693919932373917543755799212505513673049125157737660643437580028067804110276762764240614772633987356201914534060845551013179932601481027974908636383083393317138883522438933619818150534958117266599134551179313567342807800180816930443284269198035506626733341628921517169452037927822911677787162253371347596548925871478769027978105667069757969192187088230504671903173191701544477708702082641297393814143336790220779736908404303997123621567771287463760227115447906737559009451717189675220671040132733991383025574969675795845495057674393668422262916652607653336369232863890528755845975257491607846079250633716192827846638386383901544968381186849686440236739538080419014643621252837716310082106850485801071059862645606816521791216745280831218451808583732533788280921230464453474830364862780583056112654767611653240481966118443750076928421597093180254600092267893429801035686816552452320603696558492846527755189169087455884295893051581109775633902151088289257956862060085553242582329571543711552325680739880026722911186558647091086152282336700066870049692133584230576784860501822811743883519144927424019345560387254034017569577693737041941986593929365357564414964813447592040066142381156687283834414681554004893515464423967510929106538025976563625545088333418962238881111586390996279966905465242556759856400504358286100846475561962496323656586378305556909247884514914691433827758587942338521198976330333304306168695412546745697684397515052650420120707037680207723165475988356955166805929860387736871443122798411933724766893341902031704009136285110647405990910343310579862435085503580845989785026979843531283208805185859124611438273385091602142248960129112717729459925266248410437205722183472207896520042717924851441233778392955579108503690146274495228608903471489384629217951927262800734279390713819541546884804345458493701801396747673494514129671238635457754042901420368571492798428143941975690157877632512029748322948426918715433761750575104055529040675278602632508096638005082043277964349400677678523617051534426160319765201211688023206261249548399572273149667396107535219789508460702722083089826132653240045583394219760417237485547290501399723309015414571204532499519218698136101677280321086054901035481556408894090786748416293603502522169751022356778424599342292547286696988513664979186049607074807385722058730657152549859127987446701756767587874023547293798256084296606798725005638629461658239743394990024375902628914163798338658016832696055158380398162479132635566685659491704409203602403465963792651004519034946317179593207610578128741632442103738545738826815809186913626941384643893228350729410603707342830495634585402243124767851730796241340341594358616479167036767644658447156487558823758065020859574932227308370638057120348680142934616678428985012011187213970055131254107586587055906594685128372160395390764534280046883138895778872633616569247346767132430526156748261770432308644300784745440827312741864538257010071297067559062843492557762186453700628285484778600861829590804890020805187173761088948534174467749592430367084780126332646108473931496668008111953286598335095072146818827286826123653842421262027539507861569908130960298385701992157240591360858459290445283352157837505973505398495231869369043930546848355045451704972979163008810752451766622927805604263195669439787363401777164507435731155884525800573567136003462788564451958298104769720451976985123059894761833162353323547623643466979751998598355975153885779479848688239098235472235903943172697427040796764421578198715175687748436800331966199969089761961295578429388270159647329095356313278449087578951168830094072729640093862083091449891269527508427635130500409188525278251232980991010275250774612575760607645414106498721703347502892031296070200722248290225043155557746037491889628818820901424973483844002533016687823884996286904949424562781090882854104862759894642146435917315759820497404323644324777744710752222320872950884010980564435871041316503979417463401422007083816082913593881537401020787238823027715542218117582983099789162353939971057572097577262946989477271695608041802410700269697777274730783012057120069044129350960970857920545571358768549586708856055701623342879992680175908497920062099977153776672852366703077145392368467023320655663292746753492300864563355692275413279543125953386023488091376467855808107927895149669163513949945966465265793641442965107700696837662169305656022430097556146272535300760380993262902810833779277023327551272556806411165767970134236464317953801001367728457277494188618785681791195884452221239985599901234513397711667726600616646136751878550716954159766422497506352867467687792825025070467085812982808598070918602511033013713022501673825376222939279912371753103670443012990371278988362595514175094977748451821480812802753177565576576703293927763157316295633008900783656499508333038996405184386143952380482819652753426678996928477725091772753731117704375404186954953447645847411391618639417483731311633439359409447379071217111622892416077643709776188003761817775113428668957710210084702997320541669968761278342651887691707765225721000254007711824925707427318327207568568758282511367952801346975850815538470985138653420071310044185040282606804212158344429568229112452773840726830347329005289670352404169059518175385142129554079648256613772850911143127280130585459508194767880712688923173940219141159334831673802532840999619211330937671527308353825372716086577265031252123137617881247574075827585728383703939379553048334133592812998609081153964117027297166143881269197571690264124330704622387158510503076007447771631364578308840869367755556597157451618608051215495491744047559280821540016681886447401628663600121712859417347306199646998832811928569702506355028012733197460102544185208426248303524864683956459821755606912697530913059415140841258193944600460329722046497021409322969169386942747955229690156480411113113376326374491595902479923718566546412046542329223041902311787304294632297907244399141319597938641904808342679829729048936410660474648399126805054713099062647026431801596824925281136128414100801566231050889569833097708834600685040549927504014683474523806757152482262887538721277368874814809863531714182306394570694248684528935524474579383176258852878269094927338051631607114850528005113544192817640751465858841639218190080057888638459171950703900673378843145587402133818532262703595816668736247028042633686567252042108695074550356109291732182421997140925078110782869628398282495013455509731914867112217819273262783714809037426229548404390269398333212010689813636100149097333305551719947907174469408165318411520314185185254983960340966339992115481170609569066878310426959612030815932048160868644732796974982388045308943438546991548430137899315173439537190495064939933053341955579992483369979731488021438226864365565506473578613442433558949096529246142089333657868606071328355587848652098960529223409543463752669431935224476279473267112298399202668667617648718605865658729919240080186320090363514775467310277481978224412076318720202336268285926697837190127786664664792960641167397794493906469023188882772707974118784641641144520731806519407470355450752024624897711988907070252638147119783150247329465367079060029863883813397789788868241888311683352255295353263813185850600175521870887073304987480220499141340632051734873572943953156652508046096639557992565161691940301416180695889845773045802845443502594623485675313099323140107249688953026955289436136076908883104119400232125555943174481640655460429695881013357943618175290483550299620687495031212045784679629990125170756045400946782066270554985852324971874509069075160042917612003378320635956915323996745423255127549795813617294396511823101773001228516271157218246179604839286973925574844601559261653297451516548595914802298366491982615891217758364133037267770753465981675710550427193670675321969023636323283492098921890617570481175236278641426496793899678075101305483779004502767406185116413952688591067141526989874943875029591846131032094138413524058956047935959165336007364423733610428320836836271008112735142146775003110133430442384649637768300665031369001088961279926272408858359934404751679936152479295333266198563224451586538395643873839704878647814452748529174684918307634632255323372969278492481579339893147062670849836676137199549854658583338412083302227028882143604907719358613106768345363540094337374814456378336419419714282350053752981687575440344580430961973605611312696592077296488898779196656044780455192370980953607609075907882784365632240209910573875073020057950089217339067511140981496019552924233820691605540142612032927993577194156619933700986193572924921857145150804713658350272098651338742172382137712728270116467362100388180406271755420693103413985364690756772935931288710043667672396758604493719418113338584308124579414831246170554037384549353095601022871705553119096392359417902721286050016194454028295888760834064968229893273393667409463022543942751836921189562219835550405854686949439662698617459477913565003573886569788907382460328936651928827771765599264314186641950267580388874157006356878920078757170212235137930991380389898070432765580994215300287915808882265739608944001864350954797524992760863007136944169805967265471201038109873379198655749608880476789891268958777620710459660440428173039428069333300864292490056970653972012611124741352646559304252193038668650559335063172993177584973388213575969088188756449236447449897933485033500325158822831319332763635598363929510730547164444412044777013330408009524600135119822904354311839222056805243389191797275668521874214807332011147774903174547644679899929075830640087268641798594059578819519833226659566454115124679110489533613963412304977138379586674311856737086337724060565253842082153451759782207421644526878027152464720733315100572577088581165140040036201600901673042502212177468365181734687289229715510274768877954660611077982251741180047546900200330799033622342577728202837090246332132020168602095961473684718300071402344770492084197669665762157307978770819696646635262692848616113418043919000968627230571298760875596812334317248856337779970910675546290520560032138552202570560488335391484928488520072013409888123886587627656064304385258160400468136981270761943979476320766952262793468051465271719275226021774850997692409549172628750103147391918599478038644296999244078789153735261706698045545125135340203053925840211124180564001616345095977995322107284675839724814426711054745520491563448420013059788442215434613475160720362132452362609400241784847419411215813915885211706866594665388275120377263663131704256171637605475980211362733669041140877128331497752465127496793139045905673308311767252286363182733949497483727353478640731377543564529823119763665689660464811858277234509157693131666274441041424998439982251156668868460214692724918310499189127413422625181528577953908340894526169186126809219885349591877128256023024375071064297404262767251986364229498541978205642222142342586970029535417083019604829681203671060146913744873673758291069997768738367817178369244614297789107649279231577223526009926650855029032449279782300112720742586943378594363010336312179193624553726152570172797737951766455674085539500715532871574219518059729652479740893329287244863832672705049711826773528976984899672967157916084292055278967156446064796690194210110369414562727885542961035828343723687570871905478977799559178092665229649500723462622397446636631193616880389989570424565177163484998652618927312781971639404370503642806233634359476050324932895840901286163409504004696019171620558374771317760184089324825257806358330310176949029992896790154611289407420447113101011926046126632554914289376875717169497010287233988548215615526062670990052030693989338589623172567729895585263324314604522905879027068390836287701211380035995097200686138882130042770124918721660791794782366549264566438607119596949710688819817639014779935414526680094912725348636466366364663014170452177055877249994615282563376494497824140444685423425475390077533677987942291268252566476631643033987597893510420968774409205529952180934394215004133278007887843109511878912615499355376539013199072393079003343311812671349474808096351610571971563737732440790938284677465563074509661865018877556705024623451909603977688762355039713172759733016896727689714946411779494571283229474511980265943784031804636110692442366946868413719081957505944506059528764019522673083891179695392563219245802351833454189480560806759472926346572955963687805982724839556596903614914994541391745806453105442281683122422154846219254605579190007982816418721734653159286052538447136129954231881479288823848739748601625957880368813842085969225506625175389595575541841778648758465346113650343113604639339298721795463408792600832763538006267162532434937828329888668397052604292585494086620573773007688874243417242419908829144346431600495615194413917911684459001002446879555321149121806895403063622518645358968439243537915283730148457318072796260487622772367255190692334752731175688976292501026779393541529439271223394610414406659432233088995991346514055462280277708099064177921436268251463710876976282670681582186123729986843694023039940260967065897468545166964919171289161500815926668339137592703090212181794147131732912597199235188095542750545884240861936396651676549137883627099537540100435104501581823333460654902394531339300488522003804565653314010888652576924081503913302711890496419576308545509352156032595371973399937489382370376617522771962519052640346539782005022622931696759428136478949016707510267740126463389408746621937168843845365875453651999189136210436450840707044613232142192336333749839345595418033226981349403592400197339194903262486504314952774689941005999261117060221634194351183126400134606137740362189884627984398466731132188019240610720148432704108663793609100075765688004745841294661578345470414703612570039300939734191443519238286315118480993810028043687943921000093018646136520466984673861343862394952943289660992651170178071775055326898151170615769672338987746644308942011216951749549980338901224521674127110648634028828087136380392223258707572559449341029542774817888824215114915865339146652030620785147776765215160710801027909696174693583327021533292884640165460778753063729066107118400975262072174181522481837627119286349783403125442958904076850980361657164125295698065205726483738713947849410809520629337794846944109895011706725158487642944959562674921731313676872340184721203559762834383941381269350294563552795940330504699800021655102388023875461263387207896619961878124774494863852429260284034693342549247367179667789881132266510116737805256778909216214454449688573633844678106550697472970884757489576955415639312716019141648355812470654207393735796918431130259807745067308394065453576954503816456034240295872751980101694384776594686038606885539208672584064887518908543810335773513848808358892387809267953772991341035361059255014385078083921980848449240966007815985936848317017293995231103828473129193550596616615613655035412401470099992195116683545816161842763360792108345568910702831136985310458620893426856022560200412325703031449884513784112187283175033291839054309332975689555444728348080214629623344816579597483088608673736362286381176680513456546909915848912816933973159479879965180061976221286116852212276982941088224869161277911006914982337316182580757608051978024937357782836999692066380601116502999910620445257392787340296656743336435432742236791582605976355507529763130794053112055705726170338330557369697664623520891642423745515812980685401255089303280096684731819436243808945653212924261360342000921238901450299405081683807600593212509305289342381778581669587256042305511037963676187490200549619254470396750052027486203067596262409330514717365509413835855818743445374544688363550545877518548759033655449972503136292644756116539456844266837530128165652665285920967749003994113907565316221663880331512696572346628646031343682387785473209387956760419439339274052052070020206269573819035486718581578860820490560114703026387963635599559507999331982244003971783818871340247073899450475804608026745324488782744263770852146454159115333906090341009069770990169354858436823367405017835241795882101153102425278821839499991452358898543179192325827130022259703029988637421035809819089195172479841323218299478570425665964612829627314476055791802792449398235551122774504354934920832891058249512702589264778740708587056395105705702820298025654254090165691929263054183512230702868560691588278077214599880815238180937608873861636829607426427762935473575913998586325213540831531768163779265418795625999087234851577253877724329092095789814147040928643360296284827818575128102200221131716782719434846583164360928188629120227499817988066754835261651947209267834250921156098102494869544616329285566506419785948764414279853488574680389243771672651265837776988739186461114237752106695645167370839128994040486582830454141270984902985882893257290266129288427610214466078716758861342384742808057459019506653439420075222256908463904753696385802708949375357530554892867956895107098856657390933681621402383552924425480355265633340635871712512444972905827724661271011846176333553694329774462418266985879416297873414951750002533294717230818332502987135229154255003783756095313813943339720396683436570156886815317685630539981149065214998146493216015412643119198165745472615491830034247579684657340576896946584237092978074996310565122255236809923877082777303883186584912432689678621223812580448641708939757804335877558778985607070949431491176371536903112511109235674683661932008085167761867387886499908935385739198281043560791171947219219193910626329725210113419688607966791444736928612353281550286335930504817613084988577374506297536767400969093106402152244602602099323784255391700769474978062488618286306530923830533346307409601422271630837491084954464794207700488249893357985524750191609662222573755682921824913746184811478319063209202194068544398575189608658516066732895438277924356972512782686665912260674775443092675823616641954168292639736276094750865826017496619129821952343628680418262116041551860676972605800338332851272121352898899437507523645802416840656010662567174638039588288789875575258277984633077187466138135123445533462704404822304171317494609778205374704716901321768408122013836666254124568365920039996630486261310072650267435973769595050868946894224959473965433344767750622145396600787409619340829544633323343664838778379783842315932233296042289590070037208692659809102233581422949157290804978267351129315532787281122089651134486394475351420895965283977036466985797558429501092667308097315101917832570725875328748473920248862985527152911025037106765384818924612625739715088790723250775156695888233986299744121597594318685687779446058156218928383958112542496141824551972279343616514800411832782420379069384457933696140560871546105278693020945721325518323103059033308407599046681276353039072095042125904880353540622603398138986537661224207915133793447761220618673925316109652410915155163074948489669243285398857707562884333737787305628846129487885755179894638279172238638626594406397392421772092904694374025044353176822198433416526193473804081512039826273880493124160877651843193747722537152736564289566697937902265025602566114924371591006411887240914693661500681595357477669709164560096464336842880445115874048393370776094117371571499836179205123683575785694563066813151585060447255213983992113341043955129299856431064391626448133021791876364676078422555027476610429476202661278600512363129464366451281919510112303025650270285364111386484202238458695197815914791110983052194289667236572461690450590582297127459271134196171400430832764694738821145104837998425394316959473126363726296682476063349279572662678837591229559048975216923470628585183064863361684767487253117459229580481092916441774321314608286241216985624809999019263182805558736676597353631191819529689404503809397495251355098312047185297348018871382141125078238299896655761632976013349505763216907452255164383509656264180561764905656574677173156576974125193266673670889288528119987999648632157572644790220605297993552866523082297585735308395238122693508627013067696844476210060857665773070905848119577055405049634017785351974527048623790125207638397752111548805400175803861294994525718796378217489021780133127428538038594839904478572054707618923911636940199699334420962799432790708104854996916345677534582791867447057627389806719776627337296350768511490049530604628324349205135420150982004217107553041360917484527178672232123590432536342858551257434416945724839443967567868080748147730603461181935418090119010142439957032044074881659621963166661101496460928964403126860571896217084272631895690464914128103269695445554538923385567437567841172227931173798991315365391794649166899875759267282910507038440561903759656151767908518447132793661425317679816595817621021915601722951746133780785206574218665645435655194585702044313412818208585101292329096535441712229992176277893449003180004382439443051630807426237899557370804598095873282368576691559463594800326934499373957999572495037896472599016242031305956994757371656553835321601903047300306735535916346967010162535032801051604996463549357547360798262087003228949684204202624401773382724280241302259073998019930408238517775755447040070492654534555098187047245819973138570466099798143174034792102426477259949669912828269499804337477375520569086819668521524868474840894094247344125986926112472214670674394800346382240414079112726949792223761127238833410470734566815239055624571155080492322437241463809530270337542582017678595092575685900197231892710780576662311664715493446453607120656615928514800344967652652013627230279288163150899817403912107399160366783196172332522639872252393237115894565007616837587095279777546145200906514029584620271317144112412825459671178172716466615288011368283543950215372398967285117943567431605641232830343546276754965461756074281701548021635257735848636694995606889488785147464689925011546451456293182155897741776685148829701949952882427780581502001532391776889328745209197116135509924336726074041564432295904454741520300696238613351482086744987468728440358252445480494659026116548107015799969920223866528156260464925636386845395415059843152888444037304507491130391621632370751697983874542124600492024589201338034835869704497143475563011861031442567101611158714582274106513187259148370930984502896805751568031214119431956837663861265077005490070009490324228087177549902051220780570271405722435883275197825877352245946337847137959937452459175122684541742186992870172050833897197568335968928316741717154282054174035191840639971288289020326308033487014550376403120832422070145342740188417816201011504381094532225670920998197324963065324253215648923187901238892547975667400342054512207150729563225898912240722940186506961808507919135478546025429102161681178720090748437127428291134737251406390526074933380118355642498319363038380199609301145065328086543687517993847391568873594416050421566687238661259360058325370744044971070681862295958355688563577880363912424886554959801545107181462943120570707081936610838034858631355064830119217164745557342208572034341935686666507868210635322985213155574420369546524553565914952548528456507483542309705387694193821254935706674721392047561298637899762051354793424815647021844801292683830807007456961286275525497889045537518123322093264739466890094906755880858640202399473441358550414474118715534988454762365935852681746845122170358483724210478929809973786019598996002317433462857587643096148180840662776525649777956073529309752945086721756207797445426796995017088117978071136026223289035379447259180361325725663674334903672965961058703345891667681888696704878822851619868317359770823638178105450297841485569049699577743821122321582936318957749515680122178917250848689785846472910322506335368363662297545845992934923489025718604435307000093654712697082844655350132691089713900467006832227761877883092845552283685357154862565890890535856574870592203286197055900436976834699925748801451457413204683214847405768349341357162312592337318903059788867243527683184654547611842410628031334568781882993271062497845907429858140857830585624812217120203597422685350571543436892221088699428879952628651009451856021719100566756424984986203158296858946036947396318726099176031385073188399921834721669401684222877696838244228532519749986444795527827066730207571334707757600653261248241556303247117957566389422522521329263545065792878193342532904536398398968186271593506735790065240002307014591866005802001226793156535907475108016112835843377124291014912093939092988550401369523030550502998693475216182756174264967410096804560992237088890381988160875227773635348133465553835530407242152553729865111547838323129522250680823484488238048999682319916348449353812566910497357976611141962285724044932511254153288669197732082144994096505306503765133862866647959850280048107480829227082118817546988418449487554152266358429147496349004661105779031333285908236566737176787672187182354499331219046062737976606087774125373027618145052558287350338844715067670786441708547003093398489264940380451674835831599193943108849087451553784125882899705225501335501862680242991730063115861178430341727900418507720844202954534568219119381556169418519953216909201143644728841290682591420825051289813032302770860169438222001270040133579209116944325633040046659194329443368671380806145170713425875237786492835358596907997664232586714011951673311375981878799173426440532160232409074384299777590631459216327919827981264146878000226454606907909666929758402574412742186814459784227210844330362241932737728789354197761627202213280377381121009648690746519012981904703890083829079051201155951820533775871305857516863450832043346172107542807306380493691163467729495065001063001735738957542885450629830103853162736501685080282546854075123805603354740762402113762099216794967033002987471848220696313068252706913789518958868908557594755128732327786679466108886496368707313307479182832557828876718188702252296541732746221661790161408087234528892613386292100056564280791935407631265734223761321510888366502683790710214990531714511135347916906098738603877062008071933256918209028282142628200629403060220708005755083169824970375145040479480573731374154768244129577053736163797803671325237508910321716120338843976156556701628805882443499688037464494864922444140363385073282868470008927629173129301989517826604965194690972106913416505631717674428119242641141238413181617181576487866018507119981214450359165546116336888852208757185219990312595914642734382640362992645645542140704228227721490966421586114370705873264686072646801723230679206589996245749936160522291308829876764571900168530643154836370332822897508523685277169601906112790759571518518391016083345241830755396270890632830510082471099494201533713318419806260227201549338516782112289677184442572933761902944658614810075909039851560340241351079656005956756060200504701824089518683668588689979225877846060714545388789179789188863554090870168145037670781699456704535866100972654342346191841298977524547383138872185935089365455380136097610276203814482130070643751698033350398784823435781481440448920873962233912113082941396122790917156398462160074172958464142057716835681068087947678165348711217499600427903873966272939044511711734546822663621938599607992380632384538143647484676854053504042583881933958232126914568046961951282697105566813702320402583478982803939525195949776737526432781437232354747242430640328063415377178206466853452830693972085988556242475496825452776016290847411164929455014802133604381263946050293855038156963965388922518514257823707777397956304095212563848891006519033818514756721314029241391610499432631089790369910521954863356481129410204896496670920069437205640266673820409769537716612186984226436938827040662851865935907250337058298548715198397927867818192370132573415285276422793334521268093850008542790735321600017551381115791594217001790585367309652536724345427431307063950154834204083832710934962204641295017020216944755348258420081433833901553319773866299594513308445723897050585292135795849633040096058239595265232143055891989426702106958774738684204776142161972522687026570593944801323758846889404560095258790729817962901611217589334944669463661214372218964160291695012174163307292299607314647331865754599948065568565789744408910536900054849935900604476728497673668421795654265699939365393500893217084669860169231709225241588740371406526758725337853758520733873540470013174096826100047547432357849372303425128602014871542700507385210554011116634407205851104216011653590917564350662527824828318885140397921029196320713388456531177578510804107990755144943304121845499595859463013213322708244127286703414003336803528718202598544172475434105855976827324614737310033065894076452720264079491129012670547868035422780650973698051143857433914938257423100525796912073165218611521279065041214139419138596940101193448789727085403220859729316017504821268781754504869385130141465701817340871115379338004798412837809396235641704336649473415652081416635331178616056169977862015059758881977129008810644934924256653519992001186455562325582952478614787189132192283469940834318381299859991257981398750130241459305555339594605393804435339723041216319574655703128166804248662229971878530431542572581061935852150423560687780656640164246863568931148318058672875777896465492254363301585573407872662486285099311408926236278787824851253271883498082302473550602916819125454861509019564173476890239463750668372679814693996422467131201331907201815183006752357852633657485558392121291469552601531314382647742808522468026057158853918278335653223579945844212031684356368276336742352883447599653362908229297266789376160858290009999269530949948895222370795220757469341480833809133083202387535649683946208200951249284199448991479764622298631317185136862481922102644697744454547897327204817880750002837459839644245493042329116213426772246648850001338076965260072763660022281819284930636662640855410581472257717046217624501404207800616732319753106427348440629470658148492759142813790731258142151261929397723536361458747313802861118197173951057549424660744128697735100718718873151854042962397449569659270161778749386932052898410081533290671587696082925126584478968127673394428403764548421349316497185350315059269940447471547906363898954026278600938802680918990944454095649352935303232437978305895659099515067094302251556940659989875193991392533469925764176226037964496618309868630842283841169443360047255282174411275211318867982256451448346943410229651236196198843961066530938244491874426137441570810995530340612853406835042395042351797588348035558334841590557155633660065492982245229903917878146085670732835260797483075183197143616641766999996534236355258620065333693937515678620036381737750748490371650518565665225813826922301310875296907776944453728557320129984564798369583708346020737008265172081842216379705924464071487114771651779466851595302362884550111306472143800054189764543055344327979582607649049696321280931074861518654851502262707363862357055531103343470897735488886963033747360013675512523173548999724684289958506245975802804091618093195567347807130338021854877489364316987678653011471519251791421523840559644686966865927319226484066935552960488162473604998353682785119645407883143242226932350654235245162134258902693419509247108974074042447137039764573624984706112961808407013177717334321567968540386525954674759205271508274730073498646893028632112371735003699139186432907958841630378584758957296419939877462371939591934063248038749864307485750877132072403129853406460059333648280666823690777920314166657071129588707208917077415577024988734319963818896020829334466119964294670196999939983176336188501118510312574706308892915430143665893703180714906380860540779054513533302119281848842339377700848560295681980413423321084608232899652318603292233848847368403585464294824053007170915088355811047365768124277446875208490400014824091171537101240654863151858387104356142012464213798205857726486520058998222579510977221463064673387161482521253760823140395289947606544500380574355110354463219079920598899825652647520396868367623771525636853042086312290347225063751335726906476329961349494057873571145798463403315841949215682492245894292645018131631735409051975028654961233337298586405116968758536870087920213942822417753048912397500816518205913983146326648204493760997961964336010563193924911574103573456313475882375214057918942073500789548452454238879209284869575991240640315022603694079475685022686555668468410072521900983430148174446660831347291491931671035046546241038653102778876182017199613936535078181161807386165276053865310264769930095674051285761101632957056905619702877819304107135341003767999208818173547053775459527741149562322477053517114160888755616519512829297920309084415205521898817019856463322446698316549627760658280126111809646437269524893020284430973951881356948912659949373051290329152933720807410887351059993087352703140456757985128439318573094099544577549827482093893269813916733996869921808819269399128500507818995075648039277735895957691853231624946485643792295361646250631979645465368842655856833089973221880338415487940680578142054928014972842451681676479324904639659371004118109923918554112628763352139850693760177326495522970356466399694099517981379909919829766375107301292491854935908672283024922985280843004828494640942998134291768335528271348264101327926577771969840887844417971015724800364536127796521145964865454402482783738195623331725947588027713178613392403647999530140059078269361910221977156950882449616753669138458602376982364666418493148498459679038950581115929287123242501261299677593027793696915571973207657184695929312511154086414647325479675395548096544346683245768597648220055614159023605675127295183229841905669566142375564270760903266602241580145402055731372036393822655270598897978478146322917001822184214156341818501509641046318055074013024580596434701889292339605172815631420932180235021480533885411716077281513735303602894350941581949270448154556243364869042944344178086676985542416576222670018120380307336101898987946764361292763941685898741754994386877178741514390712014458269426826910503755878274401363113157788127336496882277774082786946734732448894497906911581378840820471265356055336748532387102301415778017750820255621457536149784273798321090647807060086054364641817939050336469379284231995857722661110941855433328285904196332126561207210215768074261051232168850114392851074200646876606104428915068178027720583612917756611290374826205313644964522188038429206402851793152341883559498922089807254195771320264346194262120428231890157651890707716118775533755106493117445458700961049061872558589599975331750767859904218997381624282424827772123957093982824368960667330621207767906848648667358398966842173535847157029230498308970854569507934326073594052444608921435921844408595862022266887881439085295819989637422963545662418668157403479854296754443081630832482729022938476235023912864535539973360003622984435102786615272174594882186628748103214816571483895276981219295804497470347488609634585678229934452901527606635502326591803376212328287658490110191781161560235159196170990840554377241795615443343052032079562265382080800406478620816776206424714871991796543040135435121713295834700227382092308915210905581294591320451447695961417411136619252177060832809447929327295655174245415668136085691743580235212346539301305180075612285034332541935620024246249893982764311918979060557764054236832809786199879133241207338243062757526063050988146554420514349762114959982821405133585005965948419714339133900055747188435376697274853587471999810892391939081307270049773083417439642016539110632042408030487362534712111146335039045731311627966431365176584358758491213916987444873219496315499110160558533104759949751270165864208281451162712420326161319926680289734519632937450561888313438239452788088508291290111235985047131509137421099680635044771134959641546005311934480143634361860952339945547515055772907082492005333880186331102069482316419163279463226336067596937751258973327641616338353004538372231735670234788356795153524373080392798840590976074463334392862450019892010468388297464507434097184768875852071178766893477677080435366758713031645917471047654961250796763684106560770438391069915773085567037312343014430288049563775178414033615865613424465631451986266000610808369303601896939232812599174594355236922556116438812250946515041620388549839610808802827065268373350080226972255947421445290475747265498097330865757662782568129393695167628206822637674480077736769842769963284819519061089332589109777745160487105007713925198832288825168619839681384599936269952156557930664673010957811615598126993627276551642067960542534807645900847194365127350297433149850384407886687538551360569023885912537558233229584277949813640170466320925226975164586940526922064283304412285261750018174868817121691613350379939256854530974901728980773017074981636280581619886982453444330722213913706509567979754005731950798465392172748575822628792319397219439980313994195503135001046750527949168610602600176633771624265344501120788979762847573663791786146714600997435372895951660763809798462382092518537583059943530840541559625839612708399060808277874990259740080628256605288574704342490529293847320353877981134884725099681228881154778318527393822275500020455277645377721767773755005240990312278438248616220354701325294713643783609536908463347372201657626872988120454040679621872113320866833942138453136514884748373579463685582190986863709257239072980389030058080686161729108465541758127872903734920415774026036201080440466002575138879460582197953422413219032810819457005945220783718962419000532809755210079071005962487363518873314203920425505031752698693060569207157581194866188559392735568892840067071431215666435967460235218731807397548116306397754092876270505493664853499629084194895731772870464266705152674853058170132567633259920461478834150957711310425244116755315155848998820268627660233675103416788661818255370861437023098357655076763386378098125533457461811617912913269708874960399972572319046819960740190900778705656558825345279617101704217757942487913745129175411114636032352326199439476528322672456982950223180719731147899077643251630447216337262468122003017899439525409541088808938128794931639689735435968541623871607113040914860611982915828825334848792233035861153332951995259256808365148594745019391514589831353438411433067096067992897477807670840870483370666975715676044530564696724493833412530660172153979397772046738906685730867926789935341183792015233906843309374666763845697307096110873258537547084830391748133945967059723368092259606981134417276654874102542634186643909919207809939206621388397154261842258929583041182331813380103104964855381567680455046085433784669095946551005269735992040736614680537686399738390791979165815495657876408028249513690165495221453239499687394080859871569455282404333407446789516370959884986050624249739455758381306423373402540417728848949739410695816652201498892392599241959134621057507770024015199804630042699824434981141397014189849237154959221935684394787133542112658156679545863545701834204506171653103028601342897254525276449346639016456921675544800088965799616491285226553978046804344733345640700610895395404195012680295465249829194815336896560902244078697928842198515940311538154535354612226658624741533405116042950118878134895381749288865055624677543714672290800653983046879041172332674208080521838128512616060410632688069734927919066923254551238937187862554149001108215307567637122420564179859891227630349636701521965989874361925813941400689578306056449586030554309994513106675670568211944281018648821970730227128243078921372695864903966814625729009506005226062494444157293801974358655473158209095539250565985046762806187994028561121147147037811693530574774508816070374616460909985720798848072412877788473704103573242730076785982822654492316750958789815235285288714388365033300129751553251854086797747218292096140280399761453283824120821821575425485063913852974988482162355321954642832687935800901122425698469493252055980630889877872104167670398118855742673664130682869464103729317397342647997286752341579760101890434032221451599035361896404680189849767748729569133036141536095489998468003345297668366872927092402761521505768051817705517389469506540614618646780981549794264526835500207993161694581766676690539754332270530389223804512664426249100011024325009762628679536468875116296912181344532901755378864003409400785971302713189461825950516461991220028554744023720128055000377521881854281500129233436586799277886857650674738071468687874432410685560648463295834149090175036918933248396522907324369647469999172883546710127176094479067887608863954077086078324816553744913741583433701194259324805273623634149041723240101069374554375979024404235695148932539991858844433224528804746343959230375218116004032133432431590831670513806606384283305786694996544116710801084891632177195410330970753694769060023246178488569796143066875971789104420416251475390859864836383295048609524297990157817021296796960811714547608299172901003418538924923012837709319680847698776101718155679506349497568970456179504291278521258038775147615305029583235416828759267640032020811215066057731835700902913545107195819736802426769756090181926338575082170544445197505309875505459347451689307674830074878613304957164051018466929282024906356186612114890692629659374162320398789416977904752050453037658005302334010357756345199177224960652173281597037491388140960228803734164065979210293307464557135138679263559373307573276603294326684196753456586336083329348381338203846819990239936317401040841235406629658595871100054440686621480334975103448422489741642828647558815212527349456574731380289068781327044755150595434738353629544933253060041094124484889328201372764140138547285052244349519761916153115897454588721809117983965803027985612366253834407094136587030329327289041699837350995103871255332981440552233968381628934396336736288379477664747375240737173826219044472864436081910921562064883698306625811996565900313694551838803021284444619250233622356311696097868018276610701220573252177892753341027701619071261320309069460780774953204397473897992527189981834484174898994129236057148426649194461366771496349806732580687071101368364146899545568832916793831313358873552336888328083470941795749289216999530922555318661926267085051687302873281351529020715570693409640208224280758727277952227081092826607861573185765814813528536132227786109396830145589453687661257003308508641711099331169375966380252928527025707297939516553659492635537326388647430927707940959802441245641607056861611192268342864317169777923341317390710538276443439535816667113883380978724487057226911945398857394250027773839748071643143633923775926643263722951332597773971766489933850809533463179893283771720080384801399853170029709711259907501774713688503326050926464866776053213079303211252021976663380252424554677193797009949378030431511395358147689848789955186100351632302180205219332984225550953455922351833940660570263688668231811779614598911226070590717216118719699327321849594072893391034919308064598092363495635953931324788664444713147727328533552129009397543044935854629902853496569176068615935556729428535320409296113781437302417005671425520406439374647628404200095312800353394763855944334769960691913101797250196138027544678845617868556362059114897310283687822129360717185978204841623865528402459875280233497643876764677359474683994482952527925142459567660785889685266161997790225280111770892630364743799234619990679854147371912359616465791527310639581883035567952340810368810318459066765267455525156682309343941515412185070723532112576181857827505278068277633084804670455489536440216311617399542231435057493529417321729519049934924978586329838572618358612668072153038815438756131843102445494711644152913709219945047038497844167184573988384685509223067038893905400369689243926933414642054774958702664277832868641313454576026732561367324743458520486137621610690157397270866904890353906064056329589392958553404854858135102844744614235704410268694020225246688778581038617156264623881311678462066615976212803379537874204660298671619087547276452158181605748576789253570600091839696100430623132803201762338461590519064461878735142489213076683940000888378498199571682893274444598522077132583942803572009559623401547177817818953092263775639557701619170422151079343051227017225789162469833192202712021084790685139298672619709716875474962439649840988322612151033598135257575309676309397886999318915351242713164205770757068195334494068163863126974627115283321625757947160738797987040162500017365112682710908074333340770595466652272276335438536189030824953538752754701615314485024748727974194280286810338592096226731693750007459673828693165995160196547199817838620067315526179425685009874712968948865529856676056614869672937617016228896411824192714640912502882948363303329184059363370950687308896452408569036829091505406694827103003927631094087530894358960174399842259577037659605530090698811989414804596110571713708816674621236376325923109459673906451489300720400844009008296566413355858805830449604313020874328520319949168664054198127802290344456180451353300605824479010945836973358678958633326577963562854499276724485288905289183763320726303074629897283334300574229341619269862385931810994191106683673464692372015601077687690484965268280140838004646395723562763575114787673756387405588351884664322749912187788601751554416231063227840331141393661925983821099663889300068609342913993230798970694160053720619741764349758142238974531010798866357776124088222394294544940460168729374572109482595556188048193878535235769732278966930419409209838746230628384514901242187814875954119443332256968637110471554461333764461353035888355437211644646651442427797366330154769967066261008039925153324651250840564848795925948651732168270504825801208407954222425962726833035719708652370623200701978705015969317530691617264632576789442130312355995916630422028315213707846748177589338422558357605045496231579005387714314499560739574554654840550814509701939948983813695830089419620428539585721703998005634745224518684012990755812576940230834740598878230316992342892456209163106309601091693657430041899524145047368325535824587198388009911556928536552063337100889650689457311583806717351700671766823946650522477778238781675815415499871536401934235973308774722814497805894641960569848197203549128807891723486400843834621667462009453284797151227079226698893089969044876981664228445798195985648510023617493525197366158220264592549525145391960577114341164104519864887717326210434315868522446596839637201107617888328684527362977588303117136808384678190475182240335233450185889304484184168107790439111666150874784530902044607505836673111206773125263347026343388663235433493578098369057495932652036565558200343425560859685982441924673563976641820478054703437625450830026874882584557472145701604449349405349117374370738723724419823173754720819763808530001496890433537673130081426679125898652213757937381940034957882902294314141976840437875398334342612337273639815261200058299766830813336429031214282247487233553732190513688550022102096940073153728329877430373497238532052821674692147800368857428055552781048023028399762545240360292481799623261960428986663794157046349713916465624591778944929426754330701552789847072848919450674874440375587350796762741894002837278516445308954628535145989619409954396331703735451655928532572443737388298114121367069011032195457852887990801534864854010250175888822163279224309341829222780622610382316590651704199949978469527516208239889643196794701876998676466326822148839581981342312042487664932123622753844147636022391919993652546309425058150941416784129447498766798430792670704106260407046613669999829730087495103285071731365152718123299694697052247868299077715005063183357684286228179742902786321575175901768485306465796050447569073476223930020881671921107503528802598186210176346597534101508844835446440719281648388023118370701629997451780737906887287635828247157082820714075518953776256263746142664277197220325922953519910551874813416189509715293456249018149114511802669802307132385593461557856868250787046840477712284162013547151923422158521602967435659857453342726272213844326785517637257537840953107285753270394935146021892797993451690328886930317494062064209995171197199267200215471833411468295223372730932710153106141282634046248428190621220904031696377329398162547447177205905464901938175212589397473362276941751425500654075369223289314678315389126455268572945398175353625239975201094895269284935369454545796417336636254554990965336817718716084494197115045934708561673585574605920832955263079078895174326540344179629071068385296833530210105946563815394301394160606826124018239578229953286220590085855099786768244073688579933285261644220164879936862279609208166972872028584364724272646171054091158038614122376169276567445585809350635477135896855141051283078381889086084613859080362266377820543614884071297173480545609053904449426494739425308400289438116080620480682147836475405855563243278820284663317401563311836557135876872757998162605547780504273610805164932777302725227721267804977990074540415769792858235980351239480485729565421924467217115746435027972682045504501034494160381740683468323917624765411552887338928633434094315128566132034472712992160224175225701980556312278766452306966467552745263756879504707429215311673469975844236282758497767950931850911237658225272618023416312330680490057640864873201088642604836755728803547761802771479904258966751954374281981134574496514690290048361830199196229299406684023254931481347226642294582695101393325874627526240196500082760103630107750072092754641115574205911502788084268189809212511647550752568441963477349495871158938516219014880611722904002485949552884174948559632883838962126123317075792955676030388225420010980050606874758391375378158775384236849167617722200489367915938956441330328914839621166795873506173872586363902670402738308594444811955675300088783547766879076988463210361644767829304732635176897163711440087307385979039416295931102422137317876163137191150490444392947143635510199023754124869580775538114541370652777344193920771798306046045809630312031824027704730838170145692768777034867281428478386114371045757465065335491863733552194652700547873747128838545942115428438390563197537524589010214169113448346656325756601986050043800852251680772725609463913215206420574373694747978685788516227217420518971852356967389077864319571194297674617283519921735681115427147709712076256517380141379755764278045551482601064265158640303531367596749968833796894890196749787958983905871092834407854292398164918428385699520324347352485648234806682308491319932461000149635539098635823313490689005917822784776129870879441900702965417425545791130051399297306694772609609532169297647598776322253993110096250440107011178419461446916492763045852493898908533999278463913763653705075307112396531917774476675164822380377702194331659148110734392418267685095641197945449189790376910286395134678606410049989800081207650937834353040100172411961100790387597873815353825196787026703790995914802731707694076482923892303751747357112657692784702436061716943350146733943891025597029107179373522356448143159203898866295237766181584206687960996419303796847749330948928295112094325761634184699903786551578903982672369967109250885543070518890574028901902408840677424263329520980877419318329319199250401365899193435197086327034052312160888143999765200381505800472599450605563652917449238191944167563847697288022928958448015096705337690175462640317167931681105983938105847634317800188867693941715866114400521635456058304291345630827682879789575022639881727334686348099116140083934688856461343394961685408534205349856548037518239547857236700436504638491528363031580491217271296481819838960192889971160655088874067697536142305995752484287341002255777148025683595937369766484701238514256818643443505695869539711413273261723090380260203649168432854330880073938296578959563047496384606897581265967384841600593967691131385849612390874297152224197446361052489078894830831963620527774962723979061150608908658049299207570147670710269822266144231908000911736589678471344371039937138009788325846312348088229108216767932472580520351567330354037865522675695650786057859009181497951955753791935506309249896759229398127744016188154511990799863941985508112262614396461288439966408112516821544943423961579008197657547501786323529286756168021310622010965101528895111467462720466034677582329209899847996069159210632725101969453476033723481000733302436248676874643107293189013888101286901074391315445788671215102280050104079833034595171319133613586240205989179314045994894937525820231821573389704447497440630525355751485052239457346501932993650751496939273202843599960148441901057595211020167722057112505041155103188162412626873127494278208763415715486152242631696558313889277610516288024573494787221715478656777981749914588062662353882789140643304901477835023796060591013627059460233848224575150541050873941274022749802224527315233410579519259918400408945096424176985023790355476359293665123615638240480008227183723987169104544199191148168029505643006008542942571721581392628557448755130844827607994442511323384402066619190549452653803192370739568079348007455549196670191251039953353174736479549589525901742872126499858653140891173017700030073426127136320788909887127344961920919859368718920838094166238873203970959797526244449040245431794861320430703310456430274588334640539091041054558600101831704358759330541847176340061665860664490383624711501372091707746957524830090874179967292289499046179487398114682751187702434036143643467661203920833326589092650949139933108600141470346507357425831613181290426251307323866024347266242492636019472840280061030590063752877502728251432990879297728120739405365858253450074767660237463084559037574773167107500930311924143487833550769290728018736300682733758201161896140797115957620581296430964035609083966779462799160177814726383833045842845948852686717504701733721375163655069715889480656618400295979669825408412284794732151451098412481918634830869719053142085940830534382078360194348891671341482795029569795544271446198196868136998000622669637676889224969878191315845351152064361342190846127203986906687895817269410749201410634196081513925968239804920549016672285485233974849543267632140210112077158042054878663083959315861722368262167883420981658567557846238851954229279155098754103129162017870406252671463027717621067341016210804322456135946483149218262677722822997340868783168928098972642088470946487363940108045346946390730157677835784195891997595549997818958732706697650155491009012619114475855982171171093957817611975026726410397177879776086607627731626924259463713752656120604441809278391222558917330519134359598029855894105060828928605532664991672225788482881742176923639123330514884032801292316754101362702873804819510414931924059881942815588324824430281702652218388213175011246940061327542770456065707301987906981128490796202310126675037273051735965175855690559392057507783924892142687173901274578394346207592056612733773429396044195553143860102705035643361591437492113854783537862462689339000189684623323300508515239029815864101582162612870384482373927172602451352480950292896880089482627393214958046658211137836668481681497159598973949582243155932052821814546800965610592363996856297123582175856426143598633298327547676253042897184578514090048730364913715355812045474906541257221261713606838766631847481255940527211746055051857070300495715699129700921197073862441467334159253198730158734544779987693950275274866035834672902832294903764904148115558181847302459961494701269126154121036558774640247712370354935451741766628074301416243350513044646890753682760413798591318449966131794129865511408488091346626843639814723829294309335104483916166730112539160908421430607271848555159927025836891641190335902466309078741358490180478749793859950385769827525513811662731902846107446547555187503081257695231028311482501311571562364060421503127653465727808713801973363453783106510074833558721582256991944077554150809672880325384775332208835019264803094485868351816784079479528210274768520360424974513869768868708562902673333872973582490815991809374569031221257949755731773482675809303764910430739976439809084296780172565726987404259852368032800198906283805501748551485917144649807646336500669429476319516839150809490410082511997310215125294531392071667965391924023107531612442049998981173339759773574783612540370412230276368587196009878561653313338014261928752926441829409251615703879630237530198526782611211836148157725420780405307855707104338896650333083557928857453857076491294508777231640725554423672678286628263735670345495017996917943518613778838046568011786356584544980728560971288167933782483006085193771903252400743791480010435928535615369657624541624778416736119762920899082806819602851320914867656141415769265994288804177153613821366336976344852942391174469877305785780755858697062334353721568998366573095529035346601734031737271998783500538603851040400890027972955514318481581493266961176409986551449732683342337182957228686092042450217214329792424836823408693340907736960033598695815728828755397377632534854211315713940702200597561740762898252540799782983852043596205928971703349489214558011266954664961579924014416956339634520485393931601082677991995150075796410909845443044820047190787987648730998312459663190727404342509686607834765717562515174752115719448259423178412602427591108610398948298343008636280413121193332889954823040218073714207498220453587540597821240031929448285892700870048756993465015648196688797307052899690346153152718093502455641574458904038055544266576627055714989070775928483436416397352707333034630373248286888086194520957678339956574901309842577070404848064575215908693469440379964176712300594306513180538405566033081297434442484776579081202869833834465466039999531526740525438406791098866553091047632732946094986668960806302910479694507766274422210955791837091407908388405172052075753148080527906197189052183809538858684607963217312563246798391486015519822816913424606884581159070815612794471684552781908971861048335371081366207034281451563011613889707427925999437552247078270517367476975556129316885160672163145882139123390375372210779663614010966482382837304695763654540281872511221626876000766950468787390540944193664762850253405759374154696347856161648395350204875464406749826627192411063334839081631510183912143337396343381239018563054939949092952262311083494193155266186916305954926765827737528384530965790382000413131996166540380580600019499041517836228245972491153529061546311651690214388234800576855382570371128989406275225697767510503789493223589437949655757270227000786135858547733522703674608578857123578486195723014917934422712488473718912602106661241619051417084979558836509422361653651179291360948874460581310913470437044079675922151850930307198718396346920998708354265760015315143237393338217700891378874150428938975508338926803772630225929251844167764142296432564131204430634200810970833822025796848488155970039570237644199970550361804645396457164611843757170937293937010786626454967854211743734289682436001297117311180331258442124076746707682826048168226245438550802335486302618503388470028353855926230478008381446070531466447328932853252414441826786957394249452354182927667942915960036665889384149947185450512754367940149732206238260964563375083680575194562538542929317970279570732905812834600738360043208748557422312711684965587961639418343532232759938291252200819023404548490680647831574712256554303659135084330921293800314388708046687908259868714989853387409551815423387041994000764473246663869327532405580320026910852697182251298848052031705101245622913311006316936613361966229557221540296287805449318724350967481850918220465702102876234582958702794939456055057157943905458486143625490429794927961561169997730184173347879570496048062658795046435904765039142333005916382221241571116176934783559203011569424159374390411473949956661003909865642238904156681900327962084147878502218319576719723880473089574608676878739513488436928172215268966848758767457851667785755233997342339762877589292699774813112128640260085268592260144278852974741589836609723410754062399651122610208957932213418083963361310245116191979196430846381921514944715926513779019771375637076883032850983921568156337410089517035724925805631525092374912066736491880986667863302309546978793408771259600327802604630540674392214360901845922569740516524759603869601353137009617903533371476310538561996719124645817229947711401568810639999515661613068925621308745328734498536295031386600396532158908929006940714500007520212985751203552221318990398543732788354478725771172627573479335889814808696369241090725874045589656607972565431501115547011767161210240834856630372150487803367868373905763329550444608955406519210804562616007847768019566016852699516379269036214161409591793244899820021552264350502680403567047844224223725391144943150888946940036258319588093130601316486375623535228970800916847296468926815737125944057263533912060015603618755979528469954001465243041020581020576762015660883868584454721888413952293853340964015551426275480437496350096871988482259294115051794843253670069051308579415946375226691843586875327072696609730199674613066216854952331325892248941489437954876582546498034563613859500706589760539117564589168397847644092878835346753022220119752265756575710072359825286388229419711551666202809204971843632182007216910960767565516090624160732504985283279277497100273825078643699552293508582666730890036666252996025920243360668699045615795871177937769836565540139555186606758209358562676108390107048519957512322425418283075029513794447215094163797422064001370771896196657883200170326998178405787318024770007707620700155507787719505893698440900818887730301043675971560066651653038666647111754373793877361501211024426112626958853758642446767168054535239713037624224724167969318403968955213964841426067133467209885974911003572893350666652819491378262690344096462728000986830358453286751759829318016879094015426220630976523928771316195892759919918050886015633987490930174841159780745635516231106860171162820237604279319315515707058015642982962686608755951923024803175338657962176431384220587758040109886470434215408868813748398835583297566007464792287256908594610607651018574128830933398690783177639949428620276626170640126266714406161596847646401522343221471016151695294153942701111761296653998180751803573566035563198760693120657059340763769337048233875177604405441387634140559859130220607776288188869209074379408156398262178897683370907772867697079415687356896331369100845307007093463097175474209831530496882752810146622438217410387102745437173345521953386856533336521406936717104961843503990631959195271766698660670401828835472169736544064130278482684948781852026096057459838380405765384447620883067446514999591177017017891971100877303570416002320143089993281600142670540325687970085359221322598056975714249769012836378373805031777467326864961094580194992604798450021816678365068624414943522918885476698602012767380090660736414182802190289363987580658095473357673135812807156025805120751293209089407282399899678853985243666940806242917268170775050972923081976327293072810432530048169108506666078081013407985110399776842308770966771877532559233730414577916352838604573350846616881388749193205514842913442030087555011851464021397587993534310205092465435454433569482955431604286154419671564559717715306683471696832848991272306574668535371237997053338804323200365111603005087363072292597402235183967418969326148781021639926204717381591231698342908022729239329230980460131728588118427445389073662489819090833822496903961770757858025254031493621039121659192110172750814016352949855761978380874235308586512324737170220148597849996822892627265415043523426687741093048140439882824740304334859073705598028009007238942337336698835260787157470628994373746463363564333283625428866481614653511405312632160292182403229703132775525052289536990371189906721449961505557970969498758494340132302185218871048561656170950736084863246261264344666029130827062428878896529669083312311641689864834156619653852848535575474849071657433629516145404920869068383520039873342926372294421052794031627206721093982900453642729079745167403638316139182623620759498788615947979561251129544086339598689614803370893026491346858191367966995327151880629943863536844447780863319412341022416425163343622279901538522012998868968631665837679777593923062959895730849967412951700991842729602543539948523274853294975150290653981233238081114005130098437323857984283836398627146520374874072115503211912138503950043345345391575122811259500308896522496882052667491015746191676963111995180700172326607570433759673044742112832165844010412187732878129807541031457134639433307821939743275370224602766435567288526232744217923030294284845275000715667376860156349899627171327905915651840828694818643642974905783591224917534287151374326038333759314111894456501208586462158685687851218291696809111916329134508745574433427173105868310539774443988059254939287213495615497626522415171799755425270428025822485063179987328105238062869865899265409703853055128268105307173887967120885640973004979238256754594266552218071167478228326641325078323295971257626434973791841066320151086339588763362061748220891901595890209995505756117593248293707742152994234623069378130178665474076796885941114092047516206254297691209446282231739390238139943594718737248521454993548878375803013715555106655917553702733376075398150702299204931485717639461248654926847641487480032737147917733297513293003136981853039647700049969280455580229932248401605593304831087247329701062081721225745373789435859670486859796437826456540307798856434275737380910762146009593087538442933180517910484737754485164715524162900277479664898016870852761340221349113547125953047943399390081918637283565648866908856100090095351304463441720566775975558868922299817596653368336311087295703972174910726978571157650518239105048409903074944533457032409406420607611097682336311978840341270647303635972445557782237851795561842127997536914203780495570975202816028261303762507099517342651273544060785471889414236625698693464624427333986155524341157396309309851501156322874328114817142119089199341770078749466909089095840306638425622741967958304614843435613323270417773497490980201022136249279249940045127479959191830462186467350311484923785601829780917620653949482426815028080389527197904283492906684179875028475125286473147920826527653166561069471099588071549022021045487825602964965741173837279810737963371918929038571694480785738211273552590532095209146150534254376502325707369263223976138882490387591422509866826752066020262665663391698665619404544876641376685624475140205495195568427106078148388910886652875831193686372863299849747469820714505881082774463914049084085685714451794863870405312876495309436300672073857900627723326105490843690722377946864405993798798249185295076108678108426686317149561073832633889692717242956841343076744903418263581880129171608080072822353985887669403416200232177337218608958336810757473349651020227882992408651216372452363220489630072263743520946719849932925296086608701113151092673628543785494547436468585820599680686918824196846375393557402605498228448776832230089862842052203859385447307985665438348916115063313948419850848907620464030753195036709669139155743366898236939391139524784874796218275664569344691142562951884099085595028816295611124842843910818239700677964648548106595961264761629258521573958765310455707024471603318954854623557560387433220253512705903016849176551293057685135233347388354780617164269790708957066632233633486657392212378233926355200268677052121496243367063433643226517728464999592035714753892088894867966046633988212457185041599919027008095426348886639612080084671657869721886805045403348125813672572642454170921887439058542942858195594222010615899905901742651720505556476824760247719724807876831430584736935069217147969699669657983622822132409701894075111656959853241359247351322140423055813922956939185143001546314238696732178753776349597314933686367996564018757475952767505950637581919912320567574484907226401051339369631962846303195103185973597180738456947884028071818917427708446346796482655064998833692694155728328453145191519775211021747416216562064828220387903279856942818253984961985633105499889331952801270863730070963072901116267767615354052777678345562449878662710343908203525149652565123443638643086934679869692355616762544940510105189168023583474489796760648356701982646623933937058190990565647260202106704006520385173686860353284484701695657752218923406807028636242251453230374134304106707830284169117912627884311314320756431604931416509265276144450587223904561161936736821863501866738748464412828129286707474102000962325023264700628762849246971122349931636364222440637192051749126515268213995888492386687202625792274718134460187467672558896909055530891711794999094760121879658492196432257073376049778097255360224883973179898553628839327764682921036328371771888295154641756615060661962876269480564280387841364741792761426410075795282024962579835222501147958056136177718456921123666061837664482340108622172605653666149745843608616600057633737442029295461247880266034329270213749247524978402882802718090805331969836068684585032356658249194396783736079300403437515128269474489754355761584933213068363703618514983701800206886709314559541784079487858705889668760983695577123771753888651439762524067346349088220289530040215528196866018243031479518965636161844047181666492254541596586770051442570457844534118327776260552809622015334935580272220829617430045884563489740705036110710390037751098347987365665412073781222518043089873544758840697480146331498147032903474380237602197610230733125790584809502493840900280818178625009478111350015799375974345382243363740492713274998495989913195268166000467580035065100541693358737458664919259621888052238493221809007485077420482367864075478378637637186125338583119530897387843935356690443856591950659282393347518253820088703306293047992693694313353981526915924336448119120913672016873463812675235456998867232341649352249573699009115734196607090427138226681328685892857588600782548691939855316139178894395727000164148371097645933424063236302853911117157010337079878844219700002535444917985899936982148642267943681101044023002489194178900923924596750803617500525595031399811237066935877350192293029592825285945363191917440946542218737698456446385737679169757235235903454288583659737264519678325326524907188681801457563046469014449409638600569076871378306750551118526242354125978259214822291046119928168945952391168937208297988906207828374447940940339793066728494355298718249807428346942582650740980794989075742290126714712843555476471241735201904943023619682551267999992584252295621617306455871855135523214054646459384084950660274794973459399397209400318679931775674954871016971875032103711590942078688366926791019529280071573108915686748415418144423334711507078009528117263811654567621766516933055159774388690430987428257458577271028222213318106033548394578557800657048535294958618129919745902111042850896313532460655801727628849220650521765877596109915666061114812039595272692428293275664294264060242766932584416888411235507866127137065293444932607452713302921368913830366782764998111617147611868934051913317400700109409720650771896037980169031274279034980420884115291665519153785701467192699202273190585227239399995428315053502405752614132772705000682362662738942143571009706936215989682185979595602157600603305780222592126978006477664796349126106405557934408106985552565421119171276608272517255227010247901669641345361653294132891994444613544554451053663765113001558986067924206584724866059278618346976010274285819095475717170568739448776653623967375354775119258932883799536726947106337983752087093773803100782483204413186656572549702752157004381414251315481977984108750061776028507735862270922189334617330512312460295006624874835062828956938192933646179606934926329836016030217815469738897623246900124185449686572784948184855219750472699464709609499426081789101889717915189846765517254173633824579999455783339298834911858751304913688226629086659949262588384192306623016112398778477151779937765396597679979642204194284154095497337940250781149554511790196129144944639852655191787159963645135476865936782945229471438644322378797940844010371885233635991284207775658290820336773811461174320988711812824961193306368635522473710607952357286875495621087316241262643201330458830510082032293981374342284877253517371907923360796160115270319828069037192806298010024718619573066129848564442648067107200295952628548993688582633411442732383444765651890022109044930006194770381208452827826763777576124225015230267904760225073943734234028278170252583094207922587720382762155748701990354148259548204814239225562714151141368003645941134902320182040870377272519283221955212330843245869382738616797131597548408068261634681291667977409048933854969403742063319580330748622255086011447257283243576630371133585205573654508376031197361745043263637525177839829198487786939939072622415282717259557282024134843846451863604152909112300220660175043737851895203941914692876713339851333169762898807729902527390359549436332850032734520764155767049926618906868803890445840044066577296635517936972240497205382323936194340485453425506399494599319535810952017766144807655188665849155502172023521464171027561882068910680849372067069531025995785751577962754989187480729695746902435603143942167923685777493148024063062192009565641127951810690435795133467819551693094123886364002685761209598351080231444648838809538859748400554416494533533019380502946377400368157976241174507297873832718970844676394443652198320222417366618062782854280873927715545617498231109592832268928956923311518245095400533131611226708073764709911850904635330151327498582723752888614733742930889898514034184814321626916789577591518091607070955897466869929707054867241504743631619226675297312224231784394501208986578017739977513072916851008128784703911750749435664659888849791550276373703793596106673151276721981103626455630808603008702537257757127318678308330571980592567921492207723437465589056896048061423626330996020652042566084555297144763104071685284395412725738228103201682922193998454255631846976730137150109211603537905748743541857792572056491211817970253419333761457988308982406972844806601306937038951784661709936139144108566093633060294213629933015544866072924870556250120261489046250931474919510822113721731171648402883181944982819908615907811034306350365209611807468956302897646907092102961457802805414161210531694856241517800604977582467998133377762771544651344806641073980700799428895202814218975800472687592000000841610673573214253556878870352107410932742669345052318246941115854430288473656096073414206373739213261105899757756981614449643059082263135068751771933922131515046919207203009059655918912187816555636538563404701804627508467340733020367828837463591064750361228097676351079134260821505560186162005845479381576322372208344798240360825050661197708016497239426854035332179096938346126061034048341486600905360307704896126082885234643805420547727144310256916420601483285103810665814487043787139109988759018927656084791318813807541614691239918385986585689517877702088944534210549992615479394448654107535457925701217811113155903746652094602891789905539420581781261714909118742201586363293054829783550270111867338983921252033213391750900554940717293426146732002451559406397841000870842712525838729654915497208009920794261130137338397086409537883174470947110841302742292398969471073437620599747073740678881833835709790382980630094734620421534955531296715428080680187998917207969062183659182465706057570268776711281150895210965501366846630858911450592089670797136147502669944320912695011374231630735403650380044049638328284336483008165019792413648782436257220529687894990853907359987463124418384471376280304944212906933398312872345178041862193508915589822682140855557331029599612370961577434895669799865045193502843674925372647840913525666222036438078451999910040991715197548685695471663088582349758329432003152462973867068303764832925875769173495565824299130992407863199336015154611087215184668556884488590920012066606688877581857663773947553582333449295343495542727887001953771641790981479504122214933770679064048694419070540831697772864169898227834904372905443530903520017846207938493257775743349613926664522256205600736029779342218519556559996705645953913885279467559770488360065543344249015793279189967033108687402008424234856347045860178077595685696665030972770282125686002096528355820396393555136380816986236872853007280172334842921206024570807934906222552177840893715668304308996938310018296714038527700688219869602229106263647827696004578698212560847073058171097930941050478162842570329618260682956335233716102980339766246505144270602439132538028910591802405236618561866269111649287521132535323845185127900836988686422433961078714887776690787921443865237410511589926339411821878929394865164000119829496347492322122686619402937417922526434002762458564595912811652648648459872297687799210263050092640290909687015875440809059048223926024709934947324866988166031916200140611138006210181245237000870701224036670983270390227495435730722090719227460709870680574183616261610557487890561859344636763466345659732910337673578737914912023703356753811435289605028470786671046948992996985538695677221069602127338747514955716967745440675793247992083959049364991908455359978320486122206006000202548707902971510679257597271613721142231966325235607630919094520550839368239216374652686739440864123163843240191784923576658848681677445937770917701558146028140687242374247299216141489517019397174012797019711442974583341859117261156934319144893213931302896268239317435972604684341146348722677128138642311819747227575086367422546989953817232010005577590583808000730625885754757356112171893542112790907325801711733915926143527699165973761422842836239958722979501654152955823178736512016127454396132686947916752648260579452742294356494425158785197960007402707971909663671578787258292508164956623385977689974216043513251729205596558590729229822445348194085081764454092969322514981855485658589707750642244896383324366869030916417288984907885694932218603317088858257246123360185779702659195884518773011879003798205823842311072787427845890384172822688709668172994792807123342474309792569688751888902466759659832301563307315443670565929388505924477834349572855542444886138387869930732881952796622421767535311941043361097361252614322303893764649156933478292845511881149180138070173019983686770309087352279734267456578538754508820304032909226381298779058361528099566082061589334173783373525722957975317210378741426909611694060848777873030581384148065718807649377813377252174907057231549233825600498050105798493365224112838930999971073157588082256858787525072036499450838309673583018274378134888815897113725890475505693266871800473727286320429510714641329743313084733113904526051749378358550912773285050264257751688121394372039571818987955859676935138648873849836283497867196413551457906002700594686596630839157283108861567110201645782886691419403367355856018672337267838775925027787716559963856712017369108362870068803681727736047150091068971491266256834595147253562759309856502840767669150276093370832599606586045676310376410372072182226476607349165913887397172590408178970003438803182794268379022645519951466206124424155094802225638507146431476929988762605324537571586916857839488872614335484172932560182647357004755791449467910882338246862945234519444698000778983005053707601730783584471663450986914921745677976690395461409378680387429475463944646998369098199723184778840609567850795928990068285482180743430349877057839745489759824804872397453159331651040365195550916789077730531808008221830437280561991962650729127855360955919413235384560452523218904674939553324256010340575090614476334234331684969064726546474481792314393537221557788823306631119395651564935281635079131133107433420079524801311151847972705171273522738759296201064200315389556164184263964321505300110373894834074236549250522599030255388174432070429414934462288834357706993176616760151681242861949919784546347508544618755709657534730993728659712439371292833025726741576655210774953707248274800744333772120108800414108042216817727081445653570806025012094673338919559876353620962792051995716844114082785682107035455289464217292050557878839186746549528429686795493454129307664300091646038520523107190706980548198559301515132535445333172956487862445593886574137522275501913354569933213736342052602212834198560109358316661758088206935822280464807445070982028966457049787420656474185741936184746992472386894351973897044255091883022158813822100694850031277354945682360807564009189961088190906910434681479819607389228622962206173502511207081435716888584647917947137325805945252339428215174289406181892086763306066256118848571582228463773240509889402019234474315542318140561037068164613201000120331288434996659874000018763107361131760809704028410911593790652369023103485362789174665116179971724960904985797359255264209018851849295222097363546289056993619864472519173591094603572406197088747339094502605008998397914674056615107013841854183286048075131266419954133889164374974362153979860413595261164621167349138383526352803729544374557528806362606909980977575832712447331240701165881134351552452463167612954070130228230308188410046305370464594672339015622101916290668302945681400873186423046210813852865396614044214165378855811719589634389393176726658059706355493676802963954898080950834151587317577987938151889061013994802219828097469290555883408026629655584697985288180881346483205444835150925607457334176953347113080598943600291305351465201229200613737861412653798194889297438380301908869582450666930931848077643388215267905292648428442510216159692623919014090800652799626585305013438312744731885799989092655402964097811377227181849984381890686376877285663317042263423653483046253081547663525148706950329971585825001830778500298433866312332392722807737930073721527786771349823203297550891283712174062799608950789683760024180818339890990406652873705839965188388805853046003800645119594941378085766742307827966466111900568824807071145620089791854794656187921138376412334959962979880240158636238404788180727150014556398900056774832478761146767468751401415549593934604885554109685445109713562035063160503486358697688001686339798793055123300412695298307617547828724324740921470085042127326843596406584111252613866853222225832876093368523553374697448710257026234355943656856365385197740594707569869130578580230648819421473753985772829186485444130032602923011788161558482559060173495460723434289556948731777473818988923244930185146346534476156728904120395157205872827331981668231551084161967837772993344158330013098635327371019935669829118261428384612873929458595834199710859123158633330805612714205385638080817706278755014292435928676457243612432746337467641703696680854523047839212802120196603170264113536925267810467702714721801413252628452662131664044649699716995969703732194580119083157021283421694916302261713259557833897440499257100692903312308559702811191491762518254873325031063544383449094381077364091909206250144982802253873198155112951295064207977306794662018636571193157131473022842481461637555763359964723498179239039993515844868081069673556814306393447649663971510046314260630238448103938652688506275993836138273386146220219427658908413053942909951397462213218650344157740682164550728696231527560956936988315554214639508389460751584401098423696888151023896442590492876918684899504264216578587097068602989611471867475889348488209325097842433017905808727228639098394751117522271997399259273053352520088013782495674891537960757251190842082901850566711401460618431211369394019473129049009275776248810707355653524287751443891928183167141747713187219031807840279072038985135428063652776718479667447239397807371521711119150122761286156349064099339754469416477324747434779886129433036974574342726945109723017830252153758728522505936278900037460828932803161030092073503683921784706231818519816703327930155854843041036837884448294023796847622977087227938100322678821812529560694552381937298860549730899202489464413429117160446176452563044859163584917283035431152817418427823371060788936248545054261316177515130433046302457892543036861980024798628450948574058742051593755064019780468910654164480062727355461858389451802221918632944023690588659296643084319676482810201981319771269054488715555642925244753877006878503823003520881423107252569629519065453307709605927222479536333888187227912020917450485076943337360595752561078831184724707470476720568161041346231667104440029647153703369266816423621088144870992409539143555720863331675471663097124052570198280429435746455924442819464869906982299750851250414578469853452875603568718737176939669061047570715642502104385884343241828094591063500251131279643054665086964337082951170666745959353537094698539830382505533591897615021647456883496011809681833423126397594468271119217717733533127227139741272142520350544843704254728024735300800365215341751463245307527271760167731714643906551865531146388704218476300760899865538270361095420222874536890640805226273857482631170636272253106294260492923985904088701201979907235478982464799236842957990833658176384265934471618640371206671466277227175343055538730502474564546897375758069453959748481313654206146404659339851240525547974261006309502707472659495650615721131345524634968512840003426822582343456056137351574098156321914968415848085694594959469356423367620908584273272938567759274656471053937850732482230278597714655802444997857886472568344092975914044451806365491471316003916212063564058472471482964937830999168376562242089892835096468310696595574264125225390087775041439259861724628201535980792060118416339848771190818606774274691529320277760703114482399722690404142423364139382136798203957676637766454728349681203294008470298045916411993615685649292382653436861009494805338733400640687227737993373904392519042838416383610250647201418191676822267057110162027152982450739517265277734324711707975904893636237465843730101627070370267160696438764682144033054232801936652180792353775514962601584818375654687497144586872627400937840957659467392379892514429929203909053596322212476339184349675556662591474202338215778682699536844657807390693456133884886222603550113969423074722080959028553377838592960800154357946590729879914959344127210471606955784152073362945525260324603229945350697146758337599922269868397064668964423301902874388116465936963412501318861890483247450696507072692694516324730191293416640178264818988844002030936053971151389116419205403077764949943284768567673066755213792615056544212377323615185499082308178829527228837782967104282708085981628437203934302812640976387169310289999767987540222461150335892091846072910875422990142126148556420160789991041690492970075870768149444979936354306430526763271046265069908448478389078391418223659207610934483725158418305152379637658166001560067559404593697068864437668889290565922177544903587375117633258210899786230846680718954286194480044766587457935740526703990431564664655520076724770643260253361529207361720560130677747564266133526840058039546274070504775050811615045322379436685082569415161436324494421676174784661542850428668595983169738969104236598545749686706398795790845499154045866622578854202863356075847042978571424422082972184017964658345980439529056487446780012510720692317433554353985179929146982140275400399131556215346794208497937963548163954261275143129696136599699301607188176127984252872202306553307516346313567595621965635259571732417666654676354040555462136508600993379167462505373660712214783362267834402630979883135376578398414172500773655957226343684961393586826375619604730003919074281748427328051674901160744782129201545360609717525551072653935167893847857391331004455475357608084849502105717491528958204849998036383023440361851299751410724967287004627670465384423077053445758270014468498769308990379783818635537125695243662121923268827932432522546264220828554447754976396052002262274830584359964435802313217272716109922977926799025444900518822916043946203548464848758347755733885631412678328538348076776196229069867506211453667584272759554150643870033316347902664017426388078391935853428341822677202421944826122562188946256140987387496726884547265912948253497143082017627141683606440602810477859710586716453796618337972834149790383713107713118387697032626084955321714037275315432180236440531272062841764922595994007471146495161266097102754927523436858811935892286878607625034010753083922676665932258051140914198656682621865863778543470891307737570865297520672815864279011207540484360083557109011187654238563253934619592801629542700345776520056590312025437014793728910495750901943804764040726860521233215355215519480555685219916310751682827549562241385468759269228200624257285765625582408169023413870283269188958852160049972830650308691020904770151601418696386898642699069234870765456173074100365718953053283452775418057951199393328670464748173077463725593918337902260596927565345722821384181232992948108187579931652248896925921269299807321450548697905902135501855140839394136340726226138901321735125526236643241922452748828301002512549910258655224642330528140495985555263750084396156483763153138318054987543742173510362435584869145169117300184786149931183905226177348345065172746790630491675917029710392990673439304528482891794399638860889003652297583021110240951663232655055386406462542342652162109584580433727431367390758982475397908057743407888459221994235060402410558793193117553999237273196794355383412618640499750569907327876958210533403638861773808990944495326586371084630930900063406021537521285027635989619181542410353789619770468156041657558522871811991886180145543220809796562796345088351447789275405669262503843553644893605323448974415200920448162884094171881351077056830311211880668132886907144951104653561490044149179336890244783668988180541168249686556465009836637341877058504698215209083019176103760944146366977585963666851232991422237931267573093167134416407614913486005300242107398897362656346551687162958364770928124790406881929217125211553372046768322542963905125933080833192587665533839070387772873430093681392902981772650940367452685972073417871936123263118123572600318274279154557614715158414135610680973810857494728975912082678790934729626621253300571917882736499016405633013046420607178579634472504527988294677723617869389169977259006737596226227539197006237097251094295935613541671526097160772429714960079806405689804657454492218533385914826425637750750716266901276385063560146113807374901546992390203462309140588814829599367838824001779314166224351544034767876688279062734718736402782679840294947697515500435305129424159357064112590917969070260168757750210569123594753911702557302388787893844846265030640456090817523322030829775983977063713355297883539151712628425032646168779391736755681514219494566782849580283446259181893826848610790450505403232110863214212577286875572473199972501845789681871092535405855572960192364064776668300481868558318131075505093110101258575517099230329935687478508704592104356364920975749422731997745294987072372305693066785285932083242121973441101047827634016287643994043497791402343934447759933432036724220307564927912338883355221045314770239411479923240548034432898062745926918807689117368216139454466186447263252035622787128645857306736134105479444780574994289412422730168738967483752731218477289896368361887015317639263907694006998107490621890458792482581062143196705376456615489856524695416183593595150820709144328296358201782325265685512053031253501261340773075322687238510700063093965233161919270570463876155311054340970753658034291823532011082950203802972739935881617929603983936014407934164834054005658639937496653798097758251170131736636340090648632343816971062876704464164766006173967982886649699613493109182106682708782141167918615608620198435967663722571999673732022240265370266069489785661996981326378915208386797443714334897399693351806972189440429591346385354445621773348947312892952811192415319774727868774368477614448251318925966793742949355674489619432915765763951436279606829475573974250356159819825519662952861824592585307136716500270677281965721180178941473811166177775034088414955156672543886531206075232497374761868994985624468624440724050027104729624665203857110398648073826689851288101929328460984762674665544463464794270432368156250094684356453158970857658210035582989797280010974227013965314111253422275663003159889441933566562611873757019853417658889096482844021119503932785253930662524707505384098478769302204587154629179653711802781688345507685916241514869278227938347484192781450267868425047071348502271527357656321634362437079669858214961226390622300055850987562580182632413176504730921600148779525427661190106196406257714505033038432622501674850498158308570929905183374741828693461151078488475360786216322259250675620412232301002308810595295460179367885319531035538838543174051074355959705592153274606214491724417178605969975793687628426531719550354366110732997714061685642535654441914927158698091290159600038534460275936236443849372294725972140250939188529890878033067066650868996368246829286363312948773955945410370847497127038724728771899219644936493419033623919529422642411513562974141225228724823106923276551341040959800068937700202827494326303074727188639358997744412640768565859493376929284772072295662291457223163689646784021758523688878804290938562980361852293526343582854445808193419663295503163657193048254051213828661954145076899858518408949894707380822022637947563119814872023422601698584120814622060027078999381975967278904498534218980412248122999970041157709939324727061360402015348637817547863927727238608943305879099307041645633690598938374946371419553025302662666105918407150704486065322591309541850443480619887761389181530905101393677734534075279281885972222376959140218159605400128313498369363551025648653606558409991965704925461197245898643186266854433343055530290645750741198096000258749368351943213664999993063961608839413871632604417038954191614139174838632043699711117897978571948255737738808606324907709400668714371336338138337616253919151891046215441126953262747760744391635201536280422867147520110671576509511575982304297252849678287346498856513250687307662085070952849650451528158255083944327185288467724133839303723823794972861229495718278275842821826106690609815803018032585189314994096023044401790947778031651334594259799756124062501116640396786773779116337876519905621320490448114477585948348815226064378210341607463669250579830498846274973308646483671203545493805445303655952296180163781823499153350923946630940220076511565318864471498470471044488137464862369175429838476930108054757747550550297214639725163799977980502076899605591274967181627927117363037616012282764336486404417664560557770982281428353552325257267761400589193610400029243416846162512037132060932836017760946482078514370741526142693913199612640421054936383652763404140999210292444656878566711284192217074819105393178725884947075968980408046675029430420828399704352901786591064401024442098850533566319302013728108733226082225400712714004278068901026959741531686270257103476397893938081931931926552860625494403512985700313496825972359931477910740150840882593215831252953026687276903686241130413555905964984276146861786587971484843558166056314760841939606293172397892587008897834145033980105997480528260611612658060859303297301971908991089010156453783965601977326175568594445967722317493714171699857842500951095054537422520995216080278359788086072055989689968928180270846016791437463395882458761885426974515032559651680484906529820932692811340171613365187155560834023160801362102833555144487301354621790612075954810977700194825681636129365748820053838719641347532198807652009437412952134532760630337064340496738666935854679777578560292974465642136449409683898064550778040189762028136675306380053589129937063492684344940214808688780942834185620702085274787332267543684679970590696496423874360685963996106841545328455301903212496599399755132871331477618948808633536365469553361477986122978436188117533404805515533835162866317161754798263856787804381632228577322976156843296731799963777897271564112953287998357384087308479137967739404582849027637544971390175322284772985296366805029537668363306611699878773124219510285125478571535471494224795491704440125469686347237039286932217554090343765828580747807697152505803049350048151842195681011721499996636742849861068020223748374877098030862519820527166440596055629974948074854553253485551158008030858277865398722319138150221827597971510040475045992729650252367670812351876825624326748923769639561536815266317376593620685752842730603497961793048973384903552815159941061650997198940722151976998656814256380065935441643070429659230427425075394981991155068351244372159326091534499320067732007691958550827352480886794339471283386886844830913209134329117205168993402060316402626867410442899457795100314031442166164968311977767982269899711142377259086738469735990067565424146038126733781067559695915131239679098951931629463451440677853136450073090284179464349933014946471783393945426739970531396220957602686981143160697867260526028896952713275299203593208070555749964139522776890978184681236430787850615494123979185232732477564445617763780087491716205153731061242837623077674819095575152285654376226869739716888976949479703780804231288231419877768017137604889157306307816680498242950678906077462963773376203788128637735024818354404607639224845053292052578909087486121713639314356765187151079266860149680104877051060641531952749128131372891021289990902918505120609310366620647319339012916745686938836480772597084289366144697486831677276661984211940820493367661972554721812764605037117920725583844970059732605783168145461037682184484383701692329395861284307799410817418221152475885052741471663789624574318216474536476764756944904352281472318898286672474574363498581791682967979688718087145617614653710683483409215943205311711449689093565256673514818667188856860761744334396167783241080914192787795299415284077027166482810745210671110538900009511352701136629661593897884858478870268913153823771101266050856939379155134450042638564863888517308297989498850388907642654513568340727632310660345894233239338102654845824902029364999718050849756672563243858569566192234953285437830214504363169123830794338210043635127988735694118241487282541030359077601306845880597969889756330587611885294294756557134242410675273891064749301812175449769704728032214342411319638282790651325040279091900562029570225571180674190216466175689054139747690809303982707193130465809895148126704138340253048784924092552550098029019829150454011659003563799735089344087059068953895883657051311557667076423475871429794278976500544296455964924819464004169344483122389446611260609381781231768787383262194404816913272007364368619876393823051894192446347233907547367052587560458740072569481931226343896357484512192247763939111702224420744489685133877633578882482556747629857937718489550388320357202451734284112216999985678623641002604268550816490758495298776191196926578602032780745972744654087323656740437403813492242329110592134606612448504061608728675554797331970067639840296044096344433007735515371901837550825491784840547890516975791841110102470474689455700870807555225977394494186223884528631473086553906466241536465770862009908276525238733850720054034600708878788655439857284706298365850082357870855001607827211571677842560161143649213180134412311469325911964081352880534892829778951270260983565745596718136567182843287003138080920528415203720151997517463735744989725083388287697612460610173057863557559236796493608161236969797508930619874327820091865357753323683854985135738410138418968801834215317664322412919115562803432672404790714881308206120318448912347868429926154304507371300025603884460859540662260642399336160535210743223218971290367802407238745857305362400615314008843002435335597071577148766672617834877556113877422600212972262837312465007708294212321847147745473978144720347293741421619680800946042100972627445898543184272985365602344440624202667875900632626241128727912248170833210153246044353603882478114814439750624058568308945415590321546985002695940775957400112861989948306633522472811175196933737396203960686613562556740242210087095845893365739074646873680918107349140823482479640751872660731841637947450875296778924709123825938911214292023567573014322149633700840761489103305946679898131024112718093838212920169908311938397750983474180034934942538758665109085643338225133203808982368715256636952471828833310053328769921364199747634779021392210710216863809735098377627636777143811553228468072432230920807833124203959556297094193423393944481322618816312707030552895404591203930027577740034588244349619720116879041548907234467923120003595444958206071082464510552846936023556750642077789096439186303227329674753740147963797196757586199694086417783918262549150149673280602844295400061501414209752184084151546592298426944653284379258346584360060998572291689141495784615361411698087459080708533301323108073613927937542861266905931758367195731647205704863306724574282689167604364228806254327925943166031553732738368076857927712278244874932126121258010860376197988612217407855389793856709716971020532327893291708584018953447537756780234170897543367075205009946832004171174723285599680391747008323763696786117629596187949178200569085676181906025892229502707559328235164323837202464010784516916749344627340186359520774326687085589928394311525123614801816136112644110357330059791178357729878761487070475940704493330151055786472015114546608543775150206121387191741160167668467820717855190845491838516051660331435660653671723924135109563067575201757104872866963378069685413299578665479262240669759630741011313113357405801616693722051042004201893717178848696604609760636832722224690697030820460796329122537402034939669677508286936498911183713978667246376039201616529396312279053846222465989983450762469530711870334550198734686565183802198129949470901392990535394745779043847347316466106904453496189330492630179377768877644164726017335485477404790263368681103265763363514058815748280795499275693684562650984565145761370087792915731550744728781087400354503689656216499822748320676345882755509745149507180955398101202801908501943198142990470520813207251338491528456643887050336907998727483288215316673330402577073846666770810584091519641595767074791856630771660575023910628384234539687827556414058988117472073943125611943972318460555661188411736255256283350585916626996727928384458882911648082956009240122531442115244616474638436311957536379238404314449666813208786322703444070680767715330584404103994208828482155363191450984934971921983890150085636113003221410106102854810715193414878473204660810739368240911384271825095121195940347878454737133012703870993114870789260428218265438727282059577627118785572742605935912850772660835218443826229197815986553053812621518690207368506185163288766842205676968971659775035814495562385641179567641370933673445377771806675671808463099167473730198491173485866540879449838435304315544853905044060368065920074935622159698506308693543669178375027926087897829702411463720549203693134341416853998833550615789109531103683645709741237628109452226816206241317110103721040637520447297257471006001700350707917597954043534527593521070309020887427756287935647195076876882908105403029233011439269788062429683773957196661568126046059400531855343182239525649394644151142582507802849775280368618445482005117777586828430163336250680105903316134466246512686259169439134216246039236702547961513429678200781638510311351702482648353042960746478967603783364837107759999976899855021365962216637795039824777228165510127391833747029639124905092911112200088341206507747775762916156575255817633320624323410939823305224855347234587138909394045584648549413484239766612897383761900545475495391858112137932492561827138807617144553597559498309638054058717147963464114724863802110663360413683233466099252852543433529344562801932608230943172687749965061076176012319869357743558761713035484134193886093233369258213293185762323080580830565207392158662671545330211990669962471833371263328780139294332989957465979794020320876124465815767332162597226611612740787400988455652814399705109710737778665028678023423560842290732042044715301261402268909448939844534192797472821690630365888871680373616144818426084630433555553974785183334153841391298494050054718798816439509072551371865292348366251440428765469153742365745593720783301402110213731380173212039743336888812960660371854119037065497266492045739595239925305995177039540238242697029810227059024778654549272931921316365048849864711795942193537187565627465666027461581539679333871946155398336837719603846795645989154724858888236003577594724770808967463603361875272025544430037681071084018872521302510832207034988057697623523246979723828117810486799889462699922714870858402357955484710557616478913703698112957947052945038613197508114910262616475805044973391407735113928099179660026022014134027681349424738438055040656707222851048935720367185565305441336163632992391746062037745539721350653564347601660438906120609262675169056878791706129147477492451487435539276340798042968556444387577675760891131885890221684481803337602391845732424175298223011109237609906921715755898576743363413836986141562558869866009302643285585415371953350073947412887644053020737365832085415181090721956784037134734498573851596270875764843482291324254521320953810467931034211996773604719173896578461322721168095785533824246492485919810065810794427378049877801682673701189750963655555422850723744453685014733077692205812028760684871471119375931558267298428253570228449276130805752312497820539087424804859875118402731876170166910825750679952958245554392673257847546101428515925925168193524786253499734743656047896367450910548786679455831465868649782524245749537275846255517948873487280775965132038228851219055647465340858898552426867343362501837416480736694211493832883556363266016511188780078615171684422709164891685508209428608138595839626078579384914488163064145067748586307473328555727170865991354033971398463844929204249219644314048487926587332726599618929427380847169999272436374630057900033953844225427135310932375691508238252556849214586359140368819770848537955237685230718908207897628112688037854477822347539568102555452065556005518075386592700776095206017561362141061385724106714957208039390268616910093173750152226923210023301642341194316844099776449189525931009978390412573019563153235858517059075284001354754607854877983279571651908190723319992708874142231726666453141735085262707638610748698349398875278149740755116301220758664266166337632867709297192661776293780972336341789168926308308935974021004458747712928254945286490211436722045596995514992974851846001729209645533111691886329961075877216271850237115991625484541381265433471380299955085409443041242399841311874569884597178968239764787173033027311543770618373394153465502064677915457809144739892561633526304764236964537223128709013003965862687100090332878888000636189853555566352862368817867334419553708221286423174400496632478419373307171869012960370385647093807818270453875300231873123504706680121231357748337635356955931367157882298122928435803756821246047231133279606629213296644447022281907723247648910594760691454678696333719418102029373966347636790341030885480504617783072166854722345353868865211177584513416645745557996325229380633774817506049716204590749342978868645634569690167091211086938625566554295017687508644981620309477081923298842473209259327202305742052562473818504726604068110874539977239708389826193050710465030085024558922466569740865665120123675087100560750781537693536940730805800653885665365391187105326012766545791441680776259406829902676194104477913980050643768013512038399358527295115029137699943246774452203990077166369345506367056199198663441652075191814592245264286293004568536485597741035287990047980969104194956206301772647258437376436863951584541737289712754182917929803713985307598843400208376794982072616111653226410246864098952140111152579747083936856940893998120207715722441291424918867026218286409270779062145847335490041120292644331395402373938792495017710684059548332750613507578880422682737162408196375667928830883521260577688073364093145996573731822131911872044548748057690581685470823482621567360619322713637300230557147847459856146589136192313057788370069787561676239387327657207164711134854511707170762032780829326809396423353122833561467301447318429506527896186962983651340948037184713808756969610549901919661025885368875908183875864457701796644803414356980608883257913160688084283899062249799060953075103791679398286287197431189924641623436260899246955517540704820181149207518005166706266421690710380309189875743279779325373203783520412936346944485772341166016370154877567772577804828892216640662862786380409705112764113986647829310298386659617357734921489886722517274452839808023321686923276067568861033666529675231108509027205187569460406328310174229316441534658269654826749433615225623765568122991028911750656087753114833160431723529223572112747267265003760858800705284187784682405282836796904178698565065597946340761611405199488891420402247348671135225997825908975747731725407973075254775084038077588164300800287283193685347810775003401560187551083949229197594615431841023481012404174876900217656834968523718618641215194553689406110570854079575336635882791349830777237616109238879172012199936482082687706795583577231435440045220917714637494372616896353491705466445965031662643035318013078044543251038311152977823369246580592230701383479062317687617850986798726411528372619194768072783970382025249436600763070886033485547245345412860046643377161572923352551712432544257517739627752664764064484941197827810489894607041347186856205170875995483762794784377304362330414963363400283518200199462976493615713520960683909390162805560089591680039521804885549388205006285112584165570795687030810047222009926954108351328775476543331891020058851511951025585707557073843768459821657251639493476982235737578858603735422239652300660805949324059251246220533178817530835055613257187233797194808697745803081672308466142754654129378853103988276711950675187466244184492581157313973675418718727516131470468896294932401469504438293727811287336695601119139470129535239074685561590548951818238488918972453950538174912916402069790424262279705015230731901484110799853442214221294458333853748037755762025408782596457263471672157446690219134244624405108918010224918048537919174365689999106686186464204413946749226124663969503156670033553570222017836051036625507822810057496615774620403259110712447167982371642942415795961819855143259542691713989819346306368903525542736736302643301940503646088403976328819838915933817941315574110613851978541807875481022257220000310232872810560315395103062304053542639685164492399401426768422609507279629576079497492880354713445244767802042357683840656448958052380254927306503046728453080654748232663023297098109082675376505952499960207590696787591785151456527645967896380868455685456354812509205590279125274404375174187501636704910506908151298932961846978553068916683398619825271841381916772364476598856216585605088624109598437335314126516913361812996067732795097841509240563726767316345330162903532851034434648868745091492149502018161646347739911577263998971153211093157939442913604150055883653333428307836581659081203150035745400073801779356961272775525052031942712788462523263748273178279056653966617755979545372933684350193287735411667412853503516565092124488822076709510732772552143132938834198533415719895089755135693972535861295788666737308522775219443626081190739302508508108028465633915881963832850683526811117574635319203706055834542277931188924772558485579188613219083503449513433835446549706790546311105148120593732880096870206795604086340405419631614629261601042799900010196783952728643429676090300320222247348674604980819500763686629803720918675559131011445165695247709203043691602264155406143066561489971304122041114510228787555617398422212175918829895398808184151304133396909299952924489194402569001925009284906758339781347976063348551215789462900210469151451985566720653534736849321308842860861799582320538378765495884145765798258020722508218751131131649850543214480735394375019260653257792737508657204914971837321151104424908272939366290028636254645436295717955249642216866435960418100426552940350413673801527923663373981899261547869374147225571929120424468793857991569221745653039085612174232281131618989604205161916894087296108313116892982807704671528726583915060939960375126548224163741710188879932351422347370335823395221345838804575136952512068919118852389026824960595140735516348355704845436125695653717795984121069727038750404122659123312127110367163594229219789664789408534218231035236779171325141179328981758956431046364271507765224980715789986333019258361075730454467586431860996626664659019717222433796506399361561885950501941736821791486031505678033589830280670608440021843188215511272131963697918798999033432455956092869101278203950745008404516968548387960691863027370282028536074774552191293486170333797945468378228988228885404806958680286575845656898281303308603930331784913074886392238943658670426899301627951560472421288619441209720809783166453196772116401759416198937479075828501554699776594466765632224110664014681130880498060123107165574751768938289545423843097509074069479558080907306791917047256887871574628688108014441945184463640713499978932075063727153376708855663343257936478439901081687738520805638464710310853419030075898205427450236197128581727971957309250710429915206133688436304078378413726435419226062548120125994831011265182983243451698738047664615126175545704303283379069447805110266855810605764892837397422094883542854894812263413341339572518947888002826343788566014145071801036716900977933432181499834157044487743568472034874709828318696408771173566088970052881240050095076644000475788767095303980723388941812701023113189004431846725201098478246452379442176830766732098028007126386738031490765385829378289301065090125272351695305957441686521463104476062102955898326400525653964883058925323249515250292641436728938968341079175479552541325995215709232364616011393442912170857743174926728122215187853628284091494310875120224414924184891358228492061197862214499020136451882702018423814364389520732393275200393645087098445599430857430180598058342540834921145183902186663022021327577818927694630626137301692279840900302556623638412196842040884365643830738206726891476314196023330863151145252093978130420851118318991313833731920832264982322500766433611290183441737002223850600602122456014875754759592703440698977998358656152975167178249656071692240356211842747531108441016951760114714455639359111287596016808093525784548500450395480578782568567085366924166138291445499745624839902261135521237109008682828270526786619346200542429026403947656986923039177218931160087439752962960002835804004122504941172754255811686891736237486721989838221735929910301363630419592116466085887342368434551148277138446560382622371790357607573990418519966747734820706324489416937923485560898997911689111628604420165884115781250020400879859942736358755028187516855914630211073766911929842825322257888874125556024353322939784117757840360815685108261057514372254275386222732070232588938588544981180826578854603829072138087807617644640514288875092645880466501787950846781028069643203958650790233459336159775239128111197948828038465037480960972945849430589525093632696140415872630072251086814635143974670238995855450848205114373237240838496324537087247658815069847107763006692015748437887904892171971610314422825283720397777002212230827392096584698829565161714719829709836980165425834489321038867766271899805967491709450182379017782144133787124160373470569657649274886215572883044315853427096248430680112647443194195328880667387221673518407545197960060099301305362494402604658882145233421206397829170488482434378269245636532615701905922638668981980274929837288983660879120701535539373552456546432621087606398354395258251633574122044221215500167825802141065066498362308688268977135771952307861013629117407805352756226959825922963569493801963015199620122050353916475292837887401875039661496490271268470263621179791468984060226791243549881955924268134085260736572315265228186576149458746445695381045792698986370465136372999279076748039292799163897994404980415023948018156389740290162366602176825959829138105398066398263575726389391531805152156705284896682650338523740448721923350311404998263500147064420158682503268450196100123006062329584455793479402798390198596071754336094043049392192768172679853570609384935489749249895378654046114285184434845600172643695853106982755816701016519697258268035605843264095533277852840657486361037640425438383015511919548679435643045959412398987196718843370109921344668729580887297101730718107445111214317734132717171389443044629250629442500107233610247713529744507988924138039865558775430648910742368679287119782491528240539614295177142007534612871087386583693200949644148637794575749978952293660970884403993790101639814903295889790836334510089250698074919077428013035638766971016877571276026767407485476555052185887777804654509121954844643039551605491976331857553371976448827974755409557105269324155742750698161130638374600397810903339403419353874148613143265658107561554165614363726613018395159992647823967764514977256340072270430885029813324566961202543442823808406081307631016708973827502726161096976753251616846753731433448631560949051261634814238151931692934205702939042584348004378633058532127088989488500712221695471096568367184395647358538336142781469268602242209010252399556667255750982301440062976874300153646595097475524911573221854299082131143947399782419067542644616233843371866962214370513349917411264519214911202423062868262118987851592226228486222159820193168511037827366682695068310609010871009160096584961241226135600216439275703156495360237868470642149391869020081810284995953093472562926357749249409845492428315705528946570406788401964385912924332024294234392899805756683701270656378260196289276175246910097812538917677202566080325037696363221481218656436420243116428409591378756465752895594229212532540045764919219014379757765154108662900298425268897670445457695263631140946249479602758063461016981717149353659528363153525730230864016186791969071769046069222279251089966537486775813426640641970318241477860241057637934385828937317425767117512094440194307413752311621533884766549798588017243319005109386393648411976915640480607113766463751076206824100160874810174426185733354225610215970170011839527584465051976313468667410840651246077077730455140449580712756458834378545814446882049407802581831753233191078619883064026263337900657587263803918995692240466459527398683502237837329794729458172881733538694946616384751196685285935019424023978485114876947057381976976634189037732230660900540042134970059444374968464266049204036994400318210396391719977262907421814966324650202621909900960798432389783600763911430994580900172692470052889199192701039768737701609982820083005538454966219547103315551159817752650371105693556874917480818916365588244095465731202431539747502070570066647502415298537722369747308152176701364078544653236781799333981477356149482369617859185871097082059448415326964589889346266570046082598917030767195660900054171026565601730088369385936394902982037571766723937590599945222784448518395389592064769214544489745852982565255839057810683042922681637870273775390063096881491090487185145423672543706799693073065017559444102619336239803578937813264540013126874200275583640704173820958413094778786659638390229115794204018894675958787777717015434127368514209511743265132477291231529107355009427120699093724312018395467636276269379853778804371461733623828612209434641838167730837836744975935186313004360559128326306589897771959146601101718523808569044176396674206670636879269264643423593445598598563243056752887385432703946949979738319087040688743098853564742391020809117269110794855187281948473493729347304991733634930629965456429243775824572719017376053221820338696740575689774186353805618997576259886920503476310837179738881655195031780463731569043630750349386287213991181441954848048718237949774182931300029307879634881369483645034271348252761429692950246091647398113838964955512416116073139312442891121755709278737108122389325954641206315199993359453790424435606444381693391680778773356182428898475751228828807007518040642116061818638391969661976181127386181957381691070658247296078225963741506103500830496324750144949342622803693152784843656047152151531699706977798773435319890146589992786485033129375672579126204379714581992867230417440703074448482220034848698005574789242091362743501276284700210089774389118430002604541933439739530449936873563878311689695753435011537149156840053581849837112290680417820373655842676619541007331814717398313102007953305014258415304557779396293527912309749016733323934840123144048394893415645380398302398819908347323025498704685597787518861825620629140992287229101009447175274620606379947784852189633991917141900219097428214572007960100611722959252692480287059745417111544423610703951329546995506860036588737108580579680690207435317748338631418677006730955172268459671645996341738093403364545208285904432898133710922784060183263293759543958376992322453627245351058353539358585372637344701475219408270225240576588189645048088254768984312326077393654285460745181152190203888167713433091899987673084240321462042385868309607926622976395553865433112594883328938728541331961765593083135946519965624772936938384081290642886575497874149135215399536204663847238181110402965469507503672739963104359963567049185145301392703204575785297174366706494110997948131763189264780606292802587099651246711547299421912187802803496800204054137963252505576188774664174035771234778779025375521827999121672075844685322103959062448967177566501527020006209216620051935778793273701812827796714818225906261024910581292531536812276399285368116851727528118190356547021711149927161216450335939862742173067567512555585642660134967796077166105011932977887545169149126431947631725424333052983229000144471581367467393522753660170074472374954972334485523680082796680548866700413039618900279306129860482348363914099008363059044355900880789393708445361313246191447351383229292779974800169858365409312718978011956893737419759280390871962389727113069327579079534153307709564237968279367202138153704862723435136966651050639047840583292482203239158066475767820700346032668494969364628976919544781182694142904229912006937582858274019569083943076466290423148432608988260007664003640576329834666874832503369578039892509947579469156293170214973734007837715453772350297932786941581867442328990812673591980779461144706000343255931830177432679753142364888300177864045501828177838581604494976206459012990458509655883472556636367408804107461285880884021455631652456605419357815003330110299518665532668891965981785631570770873621856309261523069381413310891415133974785811543088341357883927017875531517180944179081725952010745591328953836788516564984128075994949811848709406343375877167184332571204910747141576561992331843155285777152203990039913271335057535599779180349791664846049610442805737528490004394699775504672075225649316522196214893255448989296360345867723521568781502844818827831396893197765645031946702507487340489862469518296038569991683264864279530174260477180936221778808288623593748028416131320852606937979016045496918923971308243931315630930441177956610345144829570859657549552434481979978034482050041451310490923927254987837168581495646876944918641976689765048210876219936109024873126507445333645261558549402457930720859001418701821108453000227134541057224685763330344968292720762066593833743329941111546439020669236893626787852599059608634987617478441692624288218067576525135932015629149914901990165849626948607730020668468431122954728950360914768259084291386467417714290663272721987509944756737342638800246672328074567178890390276818570554219119072560027548295354473719090766611619718529374638828606084477540263398005225543737727438839467305674990507431788643118629471586190064629682383265632267010172529693194640471589078367726132528856700608508642281693131688952731612224567690799802295116274232925574842940440563378437207599057698522902306640078102559209218315211531650147032640404518104913271193105565021202841480567523448317931805146620528538317730426351047823004011995926334988088479400417593047187089321783911538342859333721259135251783271362655865784496802213686291118313186766061234389642601562019291657659953030799284270123638342010405539735492375455103606598577917873701601847869766663160484604148386109393448539392353056432345606167466696046655272013716129549179980139526396756927619933259823984850056004394867730019957004941003921373577992528265621832907270679343462266879937086756322436877401504524553529128187992126010888561210794602457968183169919646729339338203629993968004785833279137624277193166332680672094838991128751070753285951098621901786064337593417060944571048958886297753526006602671958927896845144569569780923176202297595624369372718449973060768368747138519726221104625740963508181585632549373576588100572067227200071313628510729958392752910377927724263090407789474007018469459710333077064585998598451683327819973023123210980615346004685592067393198009447517800415959905175138997567923355346553582261769462679358324806026110345320908375125590575684557780462505780462108490080686291631714370442226482988592251997660921159007690916552962804122269271692398378427501056563725125543102332192154233411112869236740605180817020952588551026882282011025938344630271566126736100730527410765385265017865218223043710250233828858559391791347662234835421139817336608416281450744525844481933137501859433337200329936128974117410694187135789263698834441049973184126724850568660799235464084380399802223824363577030942486501299058869208759476065620758252778724979014591662568562100183482650850937074069153136660599227050316681888184567723662863555848101425856034506588127775778421794549961849303636069565844100681733437520851946565930475751900705467797764301120335315212932000387697164971177397197635047536202368438525420872102731728123179557044286969707268190891517860766759556939309459939742310366987557271019278667283539817704551386973852092524848228154780012717454546304599011559144498026322330068279972217262715678593039258734673821185295295908874066182594331027056664890682371063602771689068442613500799775867677227249330878106779898209635915201224353155805083585958099225783987205991695992796068333370723358862444117495453318417683313798308825975206782551539199190799371819446428378934583198802447685232026387084473439120814774733995315508433888974841556433952376979773729055106187825603461268432764054375502668126262543051013955093562159585055877095297221273873763927088657008873274648327452927441783315961719788992849739950380280235018637108549637432724831401715251497967192351910647576132223679192245895467257682428675591859925422667904688258322186406092856586533955084811113008542938945003439780612976049738316457221289996210667550798684219175281704562695464612001970532150677772718693163651303315939947695505566640384498087153272740033794797188680386460740043937165367607075799068644891228132268571650504149758253069530647600958676392158980268915872494714079875460245761638890569898310728699078054116559500930054637983407272535760864090080048988272269751194510091061125380083225675336642544937955000548563605389550600010578658703376334712305854564914130020457859788158699446220914209354316192282851928212472716912566945850612088114095736178553741036926442929328588989192579017164237135493847270535431836818974126943519183773694244534862757528986787285337953496718874242897674607174189551609557232975279359021441108740300988337650578010350551791416218238443202919739851707665591847581301228579139489708509048950355849028820151366661711386173162331791284651143155485355720869325968066805643382464826930895340043603121519775746139685876752725562510245080729960270803884114090962987308516407918548418641382671057913277711525373767004979417282003734031230293366913656504790818200666788174378324132415116651881596916705083879526988181033212181237688732972813956462197356105606869511331867695750215032303039502457014688290640613490791095066076831069894787250556370622711552958058491266623091590988501731184307051725828901065835933562602296314269858026441435703529746814900642075613051488788730664705703332829331323509648884496066937894719704139097823023083451803491626043584371392935842502518972948052183067127903696985527577571391070086653932294886381984105965553503302961215559665464247635165390127894507398782988200637081450072487096103788397525953361190729431207783121337850420624133958057942760619545113826714421484787196682216712112243418699591775537034164852117571994829885201216320597280676501204068822908764480847273172632618172726755206911203812167119364820639669747221429252716942309175255079274629884216612502801460200782421016065533291554143033902946702564552235579234286757056628542315012191985031123405732844143488681739951010289427957829187608589356173403711856767180445031654634015484866914931045158082609491749827430387092243643060967982726895225184120938175522838998630197143542507048188405273267122997764738672282187277337067121486496947774959385737765176651940466054632052767148769572362699745999996119569129066865761003097941574537968443410846494283829041004262380824593213314604975254567811067967922911441673520303112356001534117185696505706711318005362195054642454622466927149591805562517045914252936102658370320364418419317453367714135016217954504155172694544948098617794122649071167009812721989325514861153149804503336865789456430562911088027002228228839066660683671060643041253626940477493923349536990263608535340502198654783242429894704482975109110039951054014553110942373126141718281523346096095606443751292020209299843914328254624343132926309510786751361569083323837807091408588696197697783261888812623750378811013433258244740655632867529418985725941977117787751286627804397846232573207907811867803107101317774296118827024733622513721547046351846194524245561023248210790048002870070308678041129316080685049479262186378347368326393866091104482551678275524372187785529619800338006792065886971937401006646355579009091991589764934728080724912600044772214735833018949948714599778423654386516339313388055386518201356691143842133317476164310218884184256964275380875512537142235934179585517762021236488059323308416942455810262483113540615289373238666675586926265005983717076362165018125453125808347295827018863080031505986027355609294173143831801317584668873123506663123247011117656292663237352399327921764766642259409542334394675410716915750853710007685803064792590387591682946853675034176568071734925638975334582855031247081823354055228716222149902174925103142505998352190444916543486288388881695996582209430013349599584655644061394689349235987891551144828186192544359150961479767734639847383777084100071372305330627691717052134377096987379381675355666304571705599475458749771421477581161060997589675118578577847961182587454661318870535994234258039851501032904014768369184216571233806619693714530412464005649465378087279856009022825017921230277508547827834729838437713320356993596312854271575664508318487708924277300129495162086068429546339506884937056024864136416844860473386663891578642902787322556340769601928045911765437509300172353790641770625825229150995041114077680349001062050124217472057796321580738521120201389117560517375404757662240464464424416953019678816345364087209743235828341920571969468386360223827102126912906589811618276632038539397933037202345298383207707130079362109944115817425899801060114822754400501761525019912058906151804897277950208308488344486764283642168344961415483823189017874065613497221331207269095982748018710014257079094515643163657072772263682347968597693495826254496755506685031399742519321393955778089267064457693761782701170845979041031954381526379344376941279482706063681237733445768373534868351852029153908418324514673563375337872651999812562157785692953346787365250032447988437030305750146291652913461210988766570130565190088146018061789192582870866946045751666447242405846300833716237571455574792201218985268503184612535004614445540691452465169950049340323646912688831128099986413542238959808471251420569947236233921798871916422086108773196049754180552609236695365301684283031726112841611457611651642365612068614963053095363178188536641313088475878949153342908941862070533123241279444939814309251673722120667774150609317548480500971462225094354575370444355646091161035110850024142448353562079168982303699253004921179852567342090279643591551646393561564788590738299955748762602977820575678633775515284116487658164148195488890433344519508915597800817454782631245372134865880732231060420596033239828938127117161725694670871577223949299361018153574828630544221628759109876714476862939270970354156092249773880743476955109818257841753440938374138277109663595073670083526806039675966670648280812256704417461490691700561036012838024074976596390798650537958057325934084824022181561520226504233290610889142758025239079887197577489841712336244989901017085179523752279263467992446086093142440686638244337590866129191442349533802030677563901337280549120385685843300239305756667594963413434201521080973346506248320651593239428798141743945962052268855121195662019734453188353686600932004175063597270090275538092321463915541253899209630501892529579242032983537485234313506250757196108332554116114827001790618127564128234945800311633767813531405016791283708582599933120020678767553402230654247239331456800105726346710107482298643018354889950843803213093549114422551074455001660073681129527093129483351675915257803756190707013323495310981390923186801143117470779777778054729418863560916103131938308881426695502789068112537420354507545458100508535904687068812793017364703432400500132284343365747775554238644650880244217825457694086090063862538953294359228822876377476608661196370792304804366727355034623896480824003628797117988253851595081899008634498151032591673126354985593579104210688138241543464636724940221621612901717197694029663743836506173064014269354058534902347745572200878208818866540719060108049562198766052770289300002204904457398074156697336046859706379194807955867408173455837455337310262900937354613785614003584163468267658684647838955118344661689745240556402246685234378174806380603066635784376805332944378435869911025778591859799532764830326672954065429880458467121879715300674088252233057970184647321760693770432789074844003242873691782033848683333268019195582272930838898978205984697909552258416639334457917023138516056599658697052702419816249623319929989967071891301949258407982605434782778411288686056699697845652704741578168356829470418241073124142465701107264256303502562309150771451228805668499674641189453912814889001238249065915220491533418457752457743596129026501288665279914771183106143178120297369026455510785334911017466013277071143294598407229773174374128985267945982057220587229520044422161893864122622042194734240737625011175637888650539220736757432332399949136006096179857685926595375412981640070526764641000852629453952089513974169417943532080631007843255163564729994822209400584015836287450774105759514816538810884670105292196184268350511518132200582798352875774790603021928682022988700416428091768229077990195978184939342991910660270302741365341687576565843566352549704054116834059312065674456496558013615447643555925549304200287384697328549222105300881198302917858659268371748984767681307225789362426038058286408945276013629945864812889628803589639113793082381701647717178918893614622332895550071639301848095969421080525490933452895102119185739376426104174359658019419719746435954887144850981123928634405000453062920587997802443710274342233280391800250621370848244646142029672083347888325071406014380704640714835339870665253065914280722316909588438785781136407340622702667768366937176581944516761964776855618642896650164727702110951989823187991379314534192924029479316150117751426767801627375341880947392828135513952910390925240450921115363215307360633652466940953460861637503716484253204894088863256408976810498498473514984971635953822660262617325109431296905841619878725708027992731423354037973768258133371467643084064592376845316031880262231086234813578633977886443358922324958442274043480554925576950874936263949996604148979861332047491573522753196667661775329743925773078564023670926984181142682505243789336498618739560646428900752440593979750502104117246807614306238526334734093459437188467724840981598369745964039775984279836681809039556323201230086181297201482798621898164658585033871009050199347128681008075793789668318399169389573803888956049005086080678066794357114722463446156695774533765596276040557196154654387043589529181633986762816297911758562981129125769659804460863219927742054395504276353807984474907823564157646618024190079901734399343468998806288111120226429075935428431509521321932866135340223826894010654688374775825778503285070230907505953788192463000155643724076787783463555541317198013642789934458472595430601003024448308288791683846208208987287893470707323760216801393667132291405878347304481522736601778314936166429006872711924425023995927630259467985566568201275044833763723330865512990613773719856403411560858167600109301094012559230157518130508959980423480892523671674092519948617781514542671567999223569320144292489427932131057000797619572512504665009667280350988055293647709671457736679974284850926625980343262742283909345999681194485480768982411897935285064614088048026241452955431160681915736732389605224070185192355108535802466642962528135381596694944450795467321790898057474347023234683145653011252594285381148912072815217046057502282725832904084557717775037178379410990225583080401871849944626723181370446509771319064150828771620562410963065820072013307705830860427984432126443673647497016517999392044922042199161148958956071090239810221356194138943983501948304447566611900944295638355897766821541304681347988279421891189779481781130749002850118121971649824633989333364169492522317242815337888141185296135325687665553056554438309818404071955676456666293000111633954523957124983478918236513924080522566268034986709525950127011054221518801207220715268226212154662699229307120545633212750455722099258632705232691818243970324844173299783137413757992101755245992556196162188838649203279356058106592524784227548454297290577711446186014166129691890031543229414495558355000440897214053094176547039576697845585441659042997736034780803664565403401215371117660123550536955262767753021319592324151887965026513784984519110814799510291692960324098263424928611473464873504267170945771312455204372710310461862598428795875436799329416243653066742122315826753401403923809270071165126189095017400049175306131368403307394453676878421023696958492352953300598402680983394251449639047437749233967565215732327776921515680472857175885078176973720074130157329086561073331376644911901451136625476183057047815888945585030362313878594201858340061589999142388077028198365373186374389745302691792337851829616637911302820389119535836198257947807981301593683968630651294690956902375921297395834450236449268758407662796923572437674564006137938316463280921345266150419612504273188265689947454407328388907947445045398708339408259006225073365199741605910847750803519804248763962354657180477331208020305237640674599004844846280177369143512879258534977366210458954149634197511545111111770386967718788762610791083726148306904241577942427653648729589717621114100204045079177744660910549338825252795597175233402312472524610958798763450895247692152878115103601844485190017061722979117259928121492986539174006733957548327631783174761880969967588716045057490489523824925965829637423418062920157416295264760793556172540349153656260861698386808414863994027771483085233957893785839071023276943909233575243124499037433878946042555048430098960430241446814021312028985942402679960325229257745545604017102678412432230603689202178273001967327713048329208832396733971236285028540545785958036305329799425374853780972733830028371490900531774058177639076911560032975562295395706779637636819250261604381022491570668746734452065021950682628844832809758749157349003026057643687317467722924776357479876240202363918441266467417391692169047526636040043275861372955727945451041756469168841310771068840569686799796949313086961863708663605198542609294157669830251278706621315485092834906156827845436726240741899276572343805627398611060003190378665369579928778043497815541598901067398027265273820037306030255708525712417082818763349232243734454229866144412854449292881569052183391149663781381116422667219029018093158369428581043445877198790058452194420999876036438992650801545761253094260155368968579088406046370850838391822647573586964884298225108269342481773231814145533275943847546728974049919788655026150776460491090178830576613168862065699082122653993833595631492376677966196063745971073617720380543278872140186997379361703514788166694207603251412957495707257959992758726393875378505556998993839408065379308212934793775493006442893393061818568995675706275193971532130344327229883398014983476437005173420946599669413626116231923041977898486561296087075798363670326692500442338378504593312929413804398194446106314548349687072706509958015892112718307564273576696031432927709208643932522311984631070299189866539576906983512124985938148790345962076168488299797984972201934773435997740275246606125549771227076567051963462313208761664474592567810557448406639709362213118328322840142529319678030172068532995363603084553673620079947366163765949856863660470855240378281419668326570550689593949618971911042333209587427868762834488612361384389587659079169060457095912379011417416021951641596910367359581391308700827841852323091760068351083867072603903620777779561289745151736778087809100911022823187252646430425675299779861043335204406745865752674656229938322888457298187647402535994205375269038145961783206167973041010093136577778645099793529077532530903557632578837995676761911684357004454883028039451743609669951157762811314709508293078700899824296245943455311166785973511011966817287109687423638909909249338449051950093589311905590201171797889773512505263075934278261527281076539735473343073577618083161629018635008723054902644019068274522862246539215822797341123963057280471992379902246173287379487752426746278188296778002556498305971110439444421226752913220594209775975601649144989471382469327673818721797528684720950628590471938726653621668244285585499775445400110123799016245619618644332888543165005465152970276330550733049532750273658923835195466276070206778117863122178273872939893260438990744853655909668362815202939000214240100970782096032857268138251524555865294735947896297064955311114077329473851150912902468882576932148854630457242464868560575546272380347167210660101155216401773109723228160735947796873213545316963894219608541903695294252231800689553924160902349266124825981949334773710344593852829845134606994050990908181018711261993755930086452247488926311307002408926515405797729427021368190263077280438153360333716944326178057023943602550116741367833303902833288998870305007427387061274898685305025507711926491501149494289926583194165599777233436262672473019730741932415228943173378070114524938680565191795942585350110721042040226770982402014960227160792600758064610452767257529343439008226950220223605541484519782912159811481380855354465879102014287160110942009893912960024826213353165844992595959340292288186351519538738199255077495202187239619156355592371110302958108162868307305178677488230247558313882153097826651527198441626757136724522319130632601492731495088319036029577822985701761934210338959683595615350605011899230666558134561895740837454681305672140893760682042908659883309947518041790800577912564653049349907177447196766053464132025830094233122727776112171244341000243787725722379485162483758675268980818511706182410853140207951398056684877861573145983585696246389751827227121152476275942661935524402939958184972541538983611207655006952576967086692977468028185465558235107159405708608703052507454862425079140686205074127247177313264311228692897352761034568771095008166673307831566081311248391077648287929977002014304852767725649698101714061313986370191155732340194933728719539151595415424629866348049157094046030196410946273038596997255399262044447480512198625191376936181708475958055406518010991837360675516249005968175314467683684010482742751710303179118556700361893120087688559030147385992769502210588153590263149220170066511750613695476590127990601763601353408085052420469438454045915153276667951027141947893113726902686144441639994000823398669224871855771264731322920155403649587858824193686042358008868614296842570710480493632125947885786470453646024887687113294511559999125565701469959727880287380165232467697842278878293351983322754697990945582649561282011765795592696208251666781030504204714468121501635063918759056278316008552426466284399662558775069793831792155961087350783171507733130289298520640616615804669133051955383743172197907689557142305376425716194441833096814297088470428131249457933792388303713406015370905805414109058860139401780906340725042970971700924418036434967103838707946343829617315708652924659277489953608008957884179240751397896785341837740998960609605080267550547460504836481127192740940068719920850806668564197624705869845797685426646574278338514948546260993257190015209382677114399004534176802017766995743183980443337603779877454979835564838614029823413502929260096150943940668437652204008491515907783783452707881787698004608888694812027031061137678695041070287272333755402238807267287462389843046450173279513358810255545161274367354190044853973509772997570336145987129056030542375551912533809047038298973272159577306091827030751651976325071633492454269442047421089548816749770212448886893833509245115095899089918072486243342337716011535429114289868535043724507025177737410058996246678498220455586329823295230956581396502031664989714170452298965165260347279980374886138923596332762863694590445298733193845089014297572655209296510148715681066860340482874097335627013647387086048537009265440682160857445848845877050737924633628542581850199997032060254513656703866458930031853088423954748951909495736938680697735305375377327620894393907506794525574488297361300101836995612025067081100156353244556736933771765463428091459677937288682056180838443490743789809949328749515183257531698851154796568608166778704227682220276139918305322012641248640505760077465226804389411674283980139241034099884473512059597693084768853843434026163170197416019953097539928530776735869409155717460497060402203502976800707418482075923427220166530718725496496044208470870828861264441157734135814515559325399496147893513737873431923782972988239858897317723206636653671242991490782836375159280892069405583225883281994798293912322870422329909535295434286541173379026765786735083287294520387834431829034460091721591768277723761117070853842863920016818451524114876891941033621036612508653760004475879142576306535591081963773179464123618349816046212770689064327820901497787535621286683201560130757697944003542255996308719290905800666401323960923127297192350572282429714881967880261330887665200979554166700294799082567248000079689324709106118043026730105933097439415968234141571234830938851239802983257999936506723387401162094819466636787892403073317547183561140007466213620699294861843410232719157284779314443855329043717797589182194322139887343551032904344710546236352931562019569106381790688682940093774843683561835753699022452657213683257187823845097919561568360311558951666621190020972029862780749732968498267184701339963147380418319125273030200318778953813908508259707077298700951134851052701688015333841421468418560738579126303297541517382291809706712836077867997100938927752328411260413244762934356605712343078818538753596679402749923544878678916310955012799147800230909218428674267329254798095547491054449488714072167787686612539645105342309194964279658182903481121674950869913343931835490528910589715614305107506399671193545782132999749734250064389183360186780715978160713427442669235646430495561637860031397385334209638562139040339117669261735794718006508570991265944065322500837720814054323940389487288887894707908629002752169161663952293342408155674441063122238269975928707298456154267272683746823568844748332472955531814761325419829731777714676348249893364503439254650418627289468126744095074127593197747051927247640066234342156700752374789815761013597198658129505844286951215036056378673155695214395449194555847819474770162310127659905479274860760645687050494115044659796471352720976433428866998956423703830919666031596144323128046118652407877201112571388083905592499973911886074251642689278233914007946502124297587603479905346418963118724255926169210987144377047052181075846396040680400876439579072713724457409867303673674704851218105993646545268987240753438741520131823902036369611717468046916057347534512243690833369800862459998013185745682313956570215135899144532420898268118635657948464162536311578493915732450017086544537050158815326701776722350019959255392536223760437445149144082552873166103534989194011328626495651903479780967440723889368827656263143588002094370788379418767504162159912460723184979830208934727609740490858768068947753847089636154196894037378071675992055207868892871182209945019285413525254809946673994904578193378099778289197033545140945909173236149455602389281810413257083187575615585593266291500099576749338851509238878986470841505646738972590253030618687065513347163390729812451838091123216772438546819395853954963926700139715192494500638449317973273413011004559907604379654528385708909388900559997383132632272083890681554156633522722471963174926840062295155647940719642660060844410555243158256371181110872038411647195459397937366447545828905309038667820752353777968735912158542824336715166393180380352719961055953768430116195894145363874366062232123209757117752709894788824387378227291577327842948405191287861966733400467345771248267228812388197031775281039042689901359982792789373328883064198177459484436669085973782232007391230556762774637916565040337543860336419858180431135738118965969404178598888654606455772093495782109876947138859365872908438930452473700956307340136175914880622508932302282088660715002199736907776612957116639927093382800475791186822748216335364435501204976536577528227820032053312348876742131662829195435763019149372026402481628128518237225305979520936117994044125336925386997255846091648506495397300435649107153002298472870011682874412497830082384791476997678367136316761307979390746656028705071651348927141751650570061358660624893705259978273609735309502935911752550692336580252085106376550343485765653318057315859548860607959789329229417019441751311732611488702505597353341252691889418143828691027951207477778066971895689273426315724561681713379262794542653500863668088073667324994147008782079637081222098521246628183974201291095606808220926160835058800315329971766372065529052574448962165829675314834276767040348309768464728254232948881551316901108870325481077878149520269094136521484381768158489171112837641549756501717874215859057293944646163311477353934208721895243177448654088469554331863791508558038052477946123282000288548619171547267538599830585259177262071355715338775986930357602345440739991685052546572347113776094454434404164669539481267674221290481067461380852219827540132005961834307809634537811711553380059085339862842268276807384853490432376335076091749225441246720037099114056346836257917711350753107607740946972373952592782755116685223661808032860514604268659044245947552655330861812654786311619529039363105529228645183212647143931901174117092641303823987826953682728732427251015528377628600035696488056407629529913163169213471623256351352990708456028322332143492225672434751213015813291397717297021590815056465234095280280403896063682479790428955426441807473246730261020026561683325780903106019086835224541917745182491715543057599499905977254596840949201682672978637027951824039327489778770373767249878264421573941026097612103112373334869879258935117049552205509791522794529323969591493965876991110999107159196794739018845742364917052971345825803566204535517209852931617495386708599612493617667650106308897846707457032246607997784490213405252486008509163718718536883643899824425722607248205110691428111086016881310259904855357461180717958850647344474417902084344827150905663882587941106605989167262265832326555530116020829470125637001541593087043994624573237653004922968970620246162882936873965635952199672449765866026638585766930657137331023369340842550122108719376292096289848936393641511227986735282550833391523127940005013976754946029226418276029274144002974196768739407711023751520616240180974733922735314562820700818076964210243707738946040794596531250379388739288060509049136070223317901498147713990832453068673875140992895675326015063411030719521667160371776009695770470659201339936236073775885584350950181887327139283815260536142447528258005752350065412534066632953409352065845775498210579225255289707570739972799034271019471231215709596178556736474676986075959732749579749508144859644575783443839802713849501428089308958692715550214181351283038275579249625736556343771787267359766245218525647817494961751448010497914361831770974532208617740219458185377296758170953108884649496441545933159845075047234535475369762086040372289589911226061065345164577153654845000091161755471120624741982966992221125152739673687288978570615622504106410985626025706364875257572735688534376335290904507796847905780612251085480110644029527298480336322330614478347376811383731101558704404753639907042444707180732368831540914251269391968277514380715918277026777588766104048515410398274339888532526913015068798958891556555623075576368867487152995386644708345740473456601777525899424834031622417437888281490855984169419160046394486212671568761167945518342398615663412765650906892743516528235884542575235485098334758916262870183689775989151812284485978569865239008468714576371006673040291147911987845612253107465445674549198948610481370396808835262250722542688809282971941208249644276263270563318027814969142149913433305743832706904514906459202495385073108850624270677958502606492446686526213090160872499090350292362943815472198221064290217358223342832199901791944603163478041395862389572471568147804825865696382546367197869577552267913604784630535157846931023556754494040083482010651557280339091656630754733762331971502816880999444127964358422965696316105681991313169698872891556516644595391130362099116265593002658529318247017442956590590434094076481154750540593811883442792025776518388905503622523933747974536458565872645888902740529692232495617083710635862440868014090328468191950917303837634694781553869961462723882779434520572563214027461894979666097114518555989836331287616472717015761496459636647089958569115462397678699989550732318810464059427879761301632337587682545266890744479411926090503250217864103134911248881035622317327749635928065272954663443987780388780298474639150962108862712055379431499580748009463273297106922244143286500780211059993607212592807011298788820976582541277446176803858867464028696943517072124689679258007751948028758536198712179805389473456936080792296854012455820550504213281190018281437778133554886614503608781751920608804953201733297466218524555703065997610427578472333547807145209723668450950542606836576916856580690598814240441212824762858230782015251408823611768802039489664272418865223825088962254718254136183694239893274931381913926434116054473863340191694246974469294125988727177238378746041413642519101453712223259157317421221282287358554832447316616451871589430064259376878304767426580155723166975305611733964582424055496693289378078226669799348455169050048455845176888941092051359202433251663174558119752470485714827689679814223243618578537688502575955866827009449544691801662620914516208334174764451957447259307574939846723181478889736950583796501100278946428420172633495765577918287860160423812284463609861176815937533608231313625190006560833658548715592618132636892897048686197243766496124538527417899157557468054093788867000709649271588164202125205180168406055411048830999700532092222868108385334635200605293839468319686352274850501696878700034035020387946828243011899014357218027705998526316771609202561290890904667065058459556541973842518295299155713888591761323769451333757260640425347337891268288819960958006311793169128395175577617456286899350748915259669980473382467401152727997520043063205681792007123216176417055693252521383391212266326094427116731773600245334457453766229850938511857448902241967874204652992306407178092653349189551575077329102396400118565253499918188816126081272053328825036240061974395714462089064433948993855803834224294557912280288960627683463684213323655054144931630354553960286689997817454811491510563897259411854354296263687722985106837254413809382912575992109559412386644490598125373620729762391840036481689346991748927300357888931778082584320922674947310267090173730472653513210479081465670235990144333316950614761098694373840185843343622167595865189429051573071062934836438181043917195574532740004324275521776442374544091455725243425250267343279136338713023652793604336117845411459697751010639434280959269288180651000300609089774711587914079260641823428531891208681145612884388868112226643343401400616898019592109390249063576678938076552046958106631379848521397606859128814746573011584122985451496816981358678895069809388818467765643850702555451490654328092649532630740113742298777925482720183066014812639620342452523180052502382560087668792020740071918103021234266447368346633478637474252831553945073454647272788810630886411713025064763240842894675369915985189521181562112211951032584317832178880115777024076423350316125004095319863051681588156506390152468973582251177636644337036211831555938374427934959122538079656493986027794507513887536392412915959291458779790260764517676817230495077485860869129586219787876403510701411932437505960816098510356005423964909040047061342049430569372865822616528936649334938759094479227544539723870701040294640954695529119032052670424297526309296560533998662018342973727036596978108846079161806802237535116411928625890014462665195532821374690684825530039713429359926504437475172362892145161467152158186928212043807137587936124901226430484815270280116614972173039946805202798982028459047381529638186996491610916781508774673287215260114221258618106445955500153504652073757539744754606915632427155115247239305487442407997567448772496340350197575003999652270256109051130664864484016404293503323652000365678579972599495524757202462817948690897591802743063074013631219809495238733108584725067539183396591975693343822009272869677398110844008307611447968138650006955215081967042596411765268610883134394640625553209455408823309798502826369382415135530380043908782750682205429149673296465272554701403570667928526935198995596530489998273114423485653354089921915253047600806189723509455642883400986543621090794333416085740481968051908823558014359044321091374330664253191805758906010605337619282663408533634325872838068381533302077202946034839498884933741583449745550871122572856356123882202958776046514231300835542068268379693636712809835468017145623984819941210373364346203647194320322316640376273231384919597750170470601554244187817767972431448270176721005578962263257477918215754870308794603623821574294730047001967792392134650861500424498270947587626038696539332158174679112421377824143801892924359088500341122866371346591734942587538109428109216643089077431220772828540381364392391276976620831118362248609240895954100049280716151616733797723909808839138406608593166076638313573431225663140827300491289021457752677201201364080231777167504463774608857472916244371659827216285683563329197614981260164064606404498282005057935594351800409310233591831883201145376151197218272284389389517561084145721954219351345575152010302207250930264588388452343064747119375318431227041838497789185507958068907022829456742135594944272407665584506136661414200856742543110018126583702640397233148279134383531149945531641714448911090832570786587504098800655726332413119547602584027530576191873199605200391984850431629593126798139934090020956289312790858896966040925344394038792277509376132118865804125765990210116887016340426576657737285597666558273459834353540455163448572737214915555367105499055243508278827965176357694086990590778585963581797937551532709849584167345457850303812686631395941234349653103415009112986081269335317405392614817635158566310249076886483754639268931640515049539744558193117950477225748624299076737336783467060170179357038286997026772134688337080627858858286091843264062310688292302268324680111183774513664796333126272280662320066527208315137182079360207255529288733067498429465013774319389866484077737321301950798502050481754177296798566618817752428099753661438603051918462563058488912802164579217084774858730049821560120647436841588247330188256417287519831539355362826730782219396737487716450262062398802370289466092726730294047041388120065091310472242457203329269631629865077467149948386853184730180856614205792411282337455906213731759556761101304734864794254959863912501690790807949004671114480267585988341484629977697736617133748858349855784290338254150456829663104006975111843631685726774819762140535893185852312925390547111552862393938353702513984557349032671232668288044970447507575692600899970939913842062510707379623570896296517769003721972593369487567680610585539420033955713099117752961826252215809282387930927558846997451441082541084469084039271869121286903930197108721935900166052396494992695357072923794484719356327146786852485723402241211803975859265394158086120406838981831496005846083600881009519986652277553909885260994090103302588068740963581369853927875161030033257504505495973935403617530889289419000343173646568427367970410150956582760333518063129694311565553475867479326103831484722119325378435999559999661760289336389908690402157755553614214272398136894876240832043448419614263290537623890381130137671648583692498113894719126994844148433771096028009313231970660059674737836927077461076873727495685438378408498890066139066111251298061646126701184453688218365307551228624972142075288048408935314245967364212135132778691234930327507436648252814952713362693795918928830962139932451856450247302194601881732967563022101039094968816441810063299502657738429940508900918290666787433923704423866446772677836279596914661746554724273279981784985310097235100948552659558299323647817996131598634481914199427336424745852962619778948244624733400611439658817720620556692151231287670636101679344218672989804512236515335282124784005465367986726306271019745368046332678289339567866402809837604709240820570978102675245924063896600844963417138267068577686023269835300969561267595887532570452276810057633568557485037576431939078794262904635598644280638803250985025286812235588211177008068861163232649001210152871418553927776879492696473606591190972690691885693457805831672024276853807951644552665588303392826449519741094014939163133863828692426223535568190475364379383789336726206058173566441355004059040767702021772866436114450560193748685759273905608952929648439647997358893590235224453588789846141282538301008027891010822987059008413107544013131268326578918363277679110175990191003766607685752258132966581782327024983753611530885156449070479734689031536316231061998382087173096503569085336532174633194594451082421283440248459237999108065112020899838387691036422682237422866870178621976975706303404767856094832825861031862856573477843689410986582872041746586797998514216761239024214222876596956640600946868076713314862249307387808612114712570263024420960438914075252945279870705527512667675426070385181151667080028216290768902251960452503640974228515784338266797520960952906689595203044763478211474309789796223827222271110577084985212831845253728952990695674118192548012423463335697781148429188961362369908962458506191381476442994743523435959321421859465188263143054595927030983916660151283975861618735962153797843397414106293246644185594567278865718926749314312315421075434564345544318272861217458883517035363126970847614295108715713901958142785369926510026120559124771191202709028669381490302636926587366995646576784170706167195538858892556023369048484333299998132809549334262944769208151389766312495314095908753957708153306826615109007915861768716663249992834720843791546009243567926234574097243084553597051103965934589872798684060854822499854223762130437718655513310702375724953872131465387974777801792038599120387677720616574719215987871827809812587813471385252398694883432685578562783135247940275015989066345124250612333085550039482541369071858990715034873229495443309229561227527213153225721226975718429614976702503967963530838809837319635125934567250534352051386250744941291181845455324397196233006682936208459951901744744514556220653712632175798178365812042349057953588723835923590684623943086134107488430070105192213399389143456204272945771765227253477444124954268585036805133481310019151605788662990552639196009927872790419327420307867615240766596419403224494145692749886529086917650593904985878077048131973085929766956778525449839515795064001551353482681572464390079310036350231085175123639103205580423893262574905391481912987177669306146420363303602929455535057650162826214940277582181792792407466259381856183801087888226899552303984769734799290767514564789616644836423791485329697773498629637637189499262789687646916588020371562896856271419404609507128953063287562683102715060118220002800561714120139711646931881844916631332896260962854177886235041648786940236779060321922343114643113043060110588934009840613183150321762876164846470018802174595790384496876010425566539781362363781634298985896259086261196723452718657924560607128699309442992670107922541047499818680795864942657624892919439345484212632216365429862452495533772850372648885520010667832478225385077085164877436983604918249877852297350128370404523154391448741215792681749446431764621859632558071067247088374429850696198383574067014744995987723569940684117331562544285658023372876499825558436831120324068547232812115230680955664263179359677469628297605419680068696255319919801018631420581268047016118590990874222527265553408094987349698883916220183306484716099500754728867373194129283337151346994548927447264422258996456855521899790727834673543044117186257540155239390774875069643464323200405904871003858739933393581601422746689088913450850730918027205533992384400678146640033471568579377811796559668668745660833256031340896338514433248457203767276479444178216219122836436641303308972089382263256551493996390860781833788529885666239018062250267540930186742487326544110086399156234214513054333788170238422958299662707919090200655644981937691031289827238516867380579325904485510732233678574230414445092534098028403030019970151475490341978279200748334592403009936271572598990614614351132102228655350717664800375191487584228716721526679268923148385929810082211142670408516441333552845888502704297691833884108751973549591172334043971478767924543614801863121192880295620891617288930138903170225057158607812222405549962531323128341932154715169628293439763905693909023807756036024084211528143636623096528992034577647177204329700747399834154171221058460734000151458039266488591059074445442697326210402139470314894749565078363886337642649591496699605813306447417601884722929951423527804945829002270075683987475988623465913579496537987857935277367155785662769873845826783279609066423171544759528599790215826534538971652143142051577481626526240507071217590136558530965151574038183026783635402905877332605082784468713894476012172224013388855908298411169187831953772166067255225727057725816250550999169557940890907773877668393434656013109234497753350905925688896777097828298232276257614150646657236087078783573331707141745784346754811948998203159641745497614526741022044556122259743520008521581730837917051345714445305568588916670670759252889533966908260368978584164772105767804891847217269448209556269481119008384375742670298521460443197043724658560435540828518062974510944910789916017445930460471171927104089745243839975833208657809163818706078580568071911556651651421372473067121295221890489334217256987175800092093970664742144056488295130418414365832294344096972450277253672609517384731689520408623176161362270569535073753235240476103753414795389899776886507136066710500144854977369413997715434698101825772714674780592908689395978805174968670283724254788484450837063739893953907287016940314371890163473290795236798972653136735536506170046961421098064325451359921007771749438294588249461698697018545299754901144800752724917597642140073410431062458071995580039488748506144139579921239938145932905133580031014014455411737470620840446849411364320133269276318616020990004611247745252470769620807970292760174684500175783102754106318495706101235643001020355491055871394198892368690658042675011599323620399945408025322781604548463582254522928288008467608907490010986932740738735305719231263322205837755671081136452730294816283814726653568770151604348532879603947838444496919717465426094040392249045577444624358231005464135409387705271690660611303907481883304437218745235291956631953760450403767563058452207572558638130077339365545305774642206159580052528767552424223141829662187896946524921563512368081525257944233632950907381660041826269772041005902816215802002775591214489783419371086834520762510721050474356164655300164405855929436977654198613472591030265783443023843460921322156421669280338800257373401048277371933713854172803824479571454919488713076155691804325283708799778041652273933120986038758624483783693945063715206906069938011330446066539130090107504115420045376296060210471089986679612463267273628557445959902137229639056410250229861351037972598705984569420536921564668946471612226903422411348351920005400170084700732196414855931099119407254723967861169564728038047197488557925154205801880314269111205505700638433724305290381701627899976044636411244005636586466052534986019338357671125735191785983672792479143125810760773181076833548808825574642654153396037451361206261488096637923176528620809196526028742530608952457516776878920467648402012850661329384851628179760006393215674640058412119752510153546144296764981682791129913090374736903663230424840977697722162245502797268851830619283696810081518317729343839147517439133957784714518020244233786981699185715240288066893762146733639581069008545407338029833382420328865602126084971803393861823560538483783744013262884260591245325452489682437221736371582165303400672232923815265962070553983163633951539692349762639576821323271716384301564064556986681811764088278133248296384648266091702394082713234936835283979180798681275942517229868778724207760360724052977719942310445940341941322891551694393455061160425278812867578793631123748275696464031674101488116772506186208392652335997542477731754891025400742133893509854569259185612800834544295014446462625757245120072702372334407978050428585533736629365290617434133563442894590662364066054388417005445190164848983011341423360191697811989515874771248758090264009555755359518231005568490037516732481447669489998762609816105053710910048777707311900742255278265877258089670257007270388334098223336675334662575378893131625851925514611674078692989505149041066625314734308657734660737549332226110426520737789885775345098796850968007171111158520761007153514251101365848352302112687616239466975834703076576687490865343375358039373607150431639901258142899729743717005732867311002326677388960659786283348374514398770713427689887319159056904366256020866295055730842813774394489595633364468964268217097525524219817848243077915166592712554042063476781247909155475404381255275611230412751749449314371438270525380582141608191298665087097980449315867409087635143418312257953114294982414284823540501874573579933759533183253487979012796196518590063471756594679181392547998764220223516746531271739839527159465007020366285493230664956812758238626587343302080524365262493114343292926421275595500838704839272157921635507148254958643954901914852193453224248970428687027422593479692140178236527001481846712932955229033852900608192384289361758827176461674230968644021776597400936437466294317561718701101833023516179080301874371137515141014958069426514814480479098393979861490229603536761384463271059124661343493193515402608566504018979037476388825408646866274100855713938679360819318349490886741493303038252765653041387368675007004670649160187161876769773570307175675250152549645890108155278490210639257270457920757893444828896600177336276578463549118740383508104150505301542659826593149009795219160638284941535798180269210809451664923602583399395478166120705180446197165351051839752824405434434895839565522470238632799361040648473249527965867637605941994400427543216062555877230135514633199390124178514781028889265439659492123075598425481715572679039423850453298186614004107310448060453627290105590666536919188273479453788080290738163406515345302598997186589309596122341710596232878864271967923629961203902041170486239557136520667659852599730267896221282379469935407670856573303411381207046158068651365024280171322122699690779801362351205074532432169137487057207451076512597621184969012401198275507264432205837216676378156320479341946080856579226962853547550400741031776561744097070808333140895283848842710561782056783448055460062027409278932331215327898402456950017623415780920140985722700501880799422242563271871891588558164083536371200152528427562593560510543360843311193674037502232913365261932804905165125125060039361051908362735790984630115936965301158707261825131251417839360001265828485532215551316068050111146827811535630030358794752579697760693511224254625803365412852409360906745746850747523767606043162604002630758476008082132883326635627011300525204713449201096133265517526448493101185309682894753764493237478603331212846518394817981820531953569295734772483143485264250712056939969331762651661410595115452458106746431375135139056217825542059791571384772245857828558868377693349775812076091196189619406878992709907384180015231737698934686702231691458604913596037737496328117496818390318662320301474818532542415913128088476712626566885204130662503115179693486502349377300948698420027569864965787927621836779209815225576116623669025167580920255715085913931080545534539968512669713959061422605824944023753564006589961166012058195564559760124332164440323006633933958602842901938089591243490171371990834077570703675160216571019594068101114894249638884636940493315542434012962566972729300445837588531976596140316932331099958280862101841452096098777755427550149045997802680096101925787749201869545106490199400758031326715120920730022671483971814094130369448757135750067812092610665751557069601157142134775519422997863501319876464547752098479458517732719877409960472069385318032985214778597203449516953295684299957911050161360216592034229727452012427268445848486705992578904055626011388784235988204126030075115986139792777762958919194127306139313397577945787183954464970600238985797349526405103690117848765602314912143206303939639374144724364955033086486686157132492831307437512242221186494126763915328344925241243250606100535857021837372416432827426645273238373199635286760179346227915039561819441952855575294406905283609899394371867207418374737419879932984072006663292388813551027280975597600318151858091498910109535889267774207735307154695143128504076482195196571012927385039874108002273258242796385986950512261068289272965139358974940175738264702223346535170714373892419954199241993052804588914122918346077479617344654049563901503877939306055344598722437744383712808752894862279974176167454830376429227608247659548227478936885454048434737662308969424568866581774341515644540413776522005952437799004926669573419152567300697145897897108417385592200893448428891289133390443486553882349290081760731161623789675757050745841759027829502356092219766049296828360473912207103707344543452871867180957153185462799556567822355255440045210323877464857351102968923963094541672143331406339017190565109732763654492546654998001077237391105525387019640697072922058207368946280591767921948133011929635406417407278293461349835324981240541450993718555672997265996269241142605950173902848692044688444255514538217851188113512917973470990976893471822606659369207887793878959757724337738977512041585922104327655923791984842183402619851798446906785391547064518245812086656299613459548619528456680722851788714681305499576272944090531505728900007475498711270970783784766322928659766006554225043486607129081178589814059979578440687842608052168784662925946753173678994063810970226068637738655014599671597265156682081908987154504201494178826405148467909831217986828417379532301145078014282571892144706364429555112786279705037336622342872470817287040949081974749645443058361891773888324344946212907011895834753452041084856587612536724327012462492603856939355365594467895086695016634855764307836469552476979035250561770917514626489763207664731294559791959226988665478250345188713792964303730336402201524847758452718131659467261488435032163792289336028722731358075060010650253005084440676149546705341686323660649703221789575478252682869939005306261686499176466058438711229111935747264186077054062439530591881988301810774025530345266049895996469046418270763975958040862229629554628912729403417207997316387886102999116274617853937051927665971134067974092448513278250338451453717620340685680340561835683144823061927694709396026403618865791845008988388593842149199656114210495028780656966283665063396603456689540153018426125720159049933220958309467702899895665675156310728178337302758712265493320900739753507902682738331733326970393741316106861870888257029763920147503925367431160608840750699005201681176405863492815452242188400721058569014893046989107997184850927236296989971766968727397369393946400892630451457781408098271027201468323905221571155274530033101576466893450424307989557970043620394919548098695102448142144183333380884891773123130851339301540615816623539344734188751046406962262304237044243830384915690251213973054506735020836210687028891011899069845140341720398549286795843701262954769738139740611514060557887138979170778201828423658668107022528444404737644494096853203552719924135421954679017382597240466084091110393911628258099130724718260561856706826299069667183596417600095656489406843389575875790641519617927291237619883694663578785279832564293317442533169924749233468511217672026794917657317422173095245976216810514138794405316234369200294790374466116824393865358854315758632644404013131063053810251082824248001774134138164558676962636371075318213602597219511511500560420411946907256049411985809042230380778235148578126843840600138290694766156916286497096393086013866090567438436831549595014509693495728463697077047485564964902166110555826775921233393775291623057482350239639133270363988182132421945029747682613803665414059524164528514564889824217295329922065247683643427055254512966527258031010985490278950507869153537578092649112756958703570672499052904287627724383801067382348783313332315178037240551491591649609728083716571322947849967390550842463488995083460125375256106147076852001133616128934224815663074646214101272697722872168199552301026700129998261635313499935642370694841566317328371956063488992748672554573645754127082683322946865082365449046812056862106611323301047111665572266272027937838269298420301200331602591830251344584628542408496101986963631112791548170650336978376906740902352509495942037465008379988690068788214055208719249782803196671103543187619845404048815077550121712320587673729600961029016393399639380283836926455653557498344986473993748591513756738329840142804461138355194708286389283878933621732698818705388559958485808228047653971316933092623311646037347034558841366545307295171284438477965747323442528583791967282557035668829508427924197865733596526906563803011221717855250892789184975369507390072109496562356342490136694932995464773071055820818083503712822808460208383569676201454807973570506116821609289387742949249697216500923772628752504866885649347141099998978030764360475991687450584557603538437578435520065017074915824081804448065298345568255234552598040274274826960994082992766201788575525096989598381251930903733049050808057477742442102622430534494893171227103893319902100227975224935506478023081824223235276645741880373094828874120413932728147693278120498821725864992102540287614325611281775369560253035983233909536850011651714844548725189462011156395326392876223755585259803660168255753440695017335095697899645474053598354975119177033569232669155174736244802691180343436966017385698699902078759492346653889924372883401483124328870545854524320119322895539347696207424315293487719189931946619601462521894603399436812521146462090996485959143985335043565388151842875944880579318787298154441268103658258571041344621744780591601449123851248816583987078458590818517572790180220756803355632561136883406253616106758205580685717553251352961744125707228244182821561140817623439218262458823828962571857106454430513651912766752600395080096830792473262316008652428367347969576827660894050473510139732790410270415665974766622079916342923068109010809988916893578844859214412041280359004242294609317757670270305595247732210269161970918711228616421837085622172625841340916072502697109753444212920638923929869886105288088995060085543002157258694123797478322968073032209835225165986409076690286942150798747434179229767461378858306269717447807151538940289859699784241695196829689250711651222819395855059298933175220357977820952979240012079322556428352765071937986261628614806968047082821191578069675603150025111469458315633458541289686326622152396662939101724766110235929114460328293831427856479902211704602471450678711243052083320749072707053438978425987103868341931192207803039392277213120554135714347280273800610086207615983921881512220286855887151773682386044253726361659422361165532783116984258091135457438909603586320156155571677473231214184527600769189535135049578338433447339977617076029814455792524859251137970367875859575545569529350270024911614158920038427695705790350986096889283224924518084216017953796991343690331583788600961801407057867303128303220161074389458602693807577259019522781546644940279638805714617843379813298496545166334724227631911249629603061597026859763540915107616199153362309699417385409357683367916380919912338738093674461994530260718561457200108648353401381965642074769452851841229960147153824191305205027723899978986114727600740482445383010653819511537523305451150612129026891459728472538930255416678282921068819216107821388906392474054837422943210253974609269554520739790706197004182947340557245465124113097478432404728774202009375110471036141569047755362521940027320538651926905903762874447956298298045135606381385050458997785118520291229102688738966131627769884511498177344606519740699610728160941134102857416610446711519237344357512621421065767250394034062378309428951483603488496210284716420346003954551127629200125267068360896405770732811761082674778860201402296878439672574941327726015461318446035503733897392242349977663075587674897313546116108202107826158610331226883212633283789079301537893521191714402749608703012307500012076285213790873666216608445924905984317353541008096482088033242781084980292018493994295982060692933586045316024437995390495858278460187097426055047339664609630317885490079802243482824977350116129048341311161573840237640449622147209903103945916744256911610098096739018653173065794121051331217262270370731792743412607860407785545663455982881741497409347426155680950360514095471755347167365901540853323800839964720866178229695841229857039693042590666041362883409775472826044584261400482725077047488827208243248880520390968578989564890848775960570039465441966901448991275206338833029047808239423498116096030993379109906395284519472284447260659060044134422912512422366203867000118057099044903592744669114163739797989604952752150943403138323785276750882150272697727032877545301239006787994143556557571933079642208848047054129149897450134803770288188396521674910913706966179373576679842232859870037527088584183715989089315119945648866372763022499405418479982884526397842342631423060181887156933911833493862000763291982571112856632246727927626577112649768417898340903370568514203621457774322008351937934588543402973220075064882075636118303247705444021635155784894648644386596326897635097184770732978457001229947552695128776750100713859135532289344632930914823504802863213185037834753344018868394449435551598660048501248167842470826105595461180072130997149711715401976943648155119338246432992223315399469153719341901714196830334585112117352515852282593099459910401836831563408860938318111986513361572410249477176389813825171071449157277712127017499327902647942167887166577739842531749406683251813969509029027813351488513619653859306136077901430092129069671667342329805375919363778112162986519837307221028375752136852948079956478151693639239075532844406500782655652583980740866680826273909148709444346646644251723404157346131666129961661985977176629626492694328444552976040611518289634867384463531420623742813174746188618160757889540523052979709446952268278927929676769846424393391004441806778961854023727178756011311084870185377404500483181203375570729159409694277744444498149995988210700390799276988182444408344968859976544656211262514544696401762177963210158802939267490759289360333214748202755344815213346117151332358467130246523889465505389836349006612386458281051792259460044280042420437155521263296627103420252895413961648826934638673629666167585084736644147506261485919852363972273256983499227311217150051707634116803507419603994272337574633245517573104894582097768291995324731947966707988425629441656113903627238876958390232879271396789313113146097908463591980609636873027963562460003709225634216733561307939770718466795004068646163750957065737809212221072821706013713155349607785289511736367587506452002532013478088704065120500815569139474721360950289644354766654057470218422587084040811884179876219641284609532697892427003971742634600326565361958641039347706507322231444394356438809525005796290088266770445678640643024637971948568100703449528342209061254024517260537022187920997083502017909835659556594240698861440577985131868768952373207996822732803692333574381563299489980121744159302049981193082137785491966720370967297469292214573524688830296833142489895039848223228990007741052395598136735408017200061255503622121743515225032513261881926165625501852693607051815855706273137784227223952996463511039590253296784046487732724443636113667459338598480811935671268911101320077432488008176267325765719007379176215242304562149877295173352375433497852844576795757179947471685759223349305519517837316652639651304319453928403811998331914584602176128962509513945388429990363887652519106981422897281801267731417375655820188549432886445674983469693752832686751614290149902752009425433634088764869719515336640020300945811424099697028074517432054391371400531120005470206064250932587420568038216598716599002128836472243063677814109019451541341531536646323766608429112530771095838281777389661516364362896860257652384973973048824402800455515342473384129305320086137818423538584790548899381980288502132654300978413048348504474403641903538489800545259249761264112796335128100097170020903593119426590897503546331917134598345492859341644873032834633808619291280522082153681497527271400976234628167625784639472407075260155003624900908270516843607738243155825482515321158754121379046988169481602586492216536571563971016247513465104975032194976965929250026377070123900947914346504302040200806587005411697543986832880319077022002341916414154351321106229905541640032238045502604842087075239235380920653386159662053533929020081190664698589102372639836485539563714007699531392243740103129535162406052020334355443986981205529768453868247611713093671297744519367911171770325619110042228217472342447600335145056544159528780244770812591836942464429452501200892343167648213259036842333482309519464971801648885535293858547103443186708289220498749017764601213416760613184517753450087688654422234238921468569926994547885746663716551183172278665504205442365543369390169770546868763871063616530196862124950796236446551702759890846906188306634707876613966470091732020938886580468941326275385729459318681966930566098044307093716744450299603284093038861152580178460816808495182608392665349566033084451338120452116352773699603623248661578156509866953219358353128964687862988004278643615931963240752318858112923078885104375037866973336910581308920636494657221932278996295521065805525079941547460100966584259270964893531878277294891579388242824450678510232574396700281668339224200181877601377676796517253278386527689552624739719487928308591463884623440559199117494642952956042775746839251514156410288263503118129781685392580820364553998733762318444541069220501860144158770292346009871824729631323225527612035943338554350260935155121240267963105861091623216282206499822643260155179091371747218134152896568438271469316479519824457219879175052571485867313122996706073527651160586011757622765199769683563157489436255421660910268439833955334588642744021456374596535334845044522560416966174631501851605908990707722930798299906064496351302111662638904460281955785313460378741730251024977862008315698021017193834898139410623501974968179472899640511811008379716604051399472664562982471497595611428292238495713202998909426839909607560389834361066321572313999719272793260506985604241490896785895541617394006267878863616600294023137296623085026139327126889084725939426726498592653137352576602705216704596846507233359389942643990985032309081940806332119287583309682026211946305427962306077106240233944351024691061274845625128815310670343815072312149673070955104182017457615025443588711888375273392427795234647884810481711537749623169484673477069140457301031627035055465485841344645540032893361047057421900174661650444345757635239647904975774731139892850326410786288191728191636894652498264132512271416113491412510269526052795163657407322203561209800948417751177092348502561944666093905127705920354310181031607948056065555505713677200173696355066923416908053798587924093412988998669240839460339353507103790959252491453540768429218896644210680646830941469669051272053335938869010750479943333357805760444346343124128458788573028960317957333268609120487601628190256550814748103571527254596172402861817559726766013206714008714710937759871761963880507915813613982860362907299530014665127438692224722129080550736472400058223778859892416584759275345583735161889558818793983159524330818405632844889360369007897259631138652935908549683674716227267247766663540106772989865343788919969742887405253055211242528606963909940230924904125667369181954999338424124668487388550049629750807750184371218112455239178733511522471357257014201213484205095712951952757156040446135911653858353221823358874278291488507416938451627060945333298970267540025453185404574668853224849344290222031683994782107249323609459394533556870214361858364627892276068026928291714401768433676329411242008648780403279062294063927858942353592082416652738313304044451456426321369240744441872928813285508065983684370318211035440698730119449435133454926920199378123373187547821120232093565461300783808353929486702866164417473160905164340559992335295744862536612476843042524736606474315150673383191510647868337843522662252133253614810279237761635867460269270783112944702424168917240616536999185417530491909236616386096796380200819681873422500241609280887273165268699459501783509418028789648271867888344866177775263325189658154744687214785650366633842442497561286378913382233376456160792002666134354736957027257176376124383872929668083859776986934982132641648267204816525230762445724698543584068669840879066829832904352520754067162359730480400237886652410873560403897127283160876253189773895462804805439613196690228796493712364082589920190432416221050781543880971145236444157511366798724017716579813377681301459012714760076049138328212223476474163413552447439640776107239088770472837639209605961094046139344546790069845488624336584477352379562835592102739925521935837007540078323238221504376190199139959874448744710835012505114050902537655447631554629206981805000776824366041875681527420601500495937648433590455152349791273761726360359352437441694603430787112211021037005860188833206759036057891135241076446311383883499486882676490258676952576798430470994020559370212045925480141799268609921396994881746537827998834073067315834328087288943374800672365209423867778469400668570591018897100214859101027816872668549116186782723806606923684847685464548888079959503326604323384403569015838672860291355418764499346113987740978117331399554473440155548330367214426345035654327202278996881239476846411064808922786670970630857394761142771703931995664304661069223095201780565767512364086317947766916030151593269491032296139779754109682678248867677748415052065179467044683897203543974546809826402973358359127799458090183709232248137193642725046688469370436956920561429797134547049765196106504720215519042726809934647079732081250553412896430872007473884646756238124389529053654234409627117536159134519942167895052268949533388286350028461248882316740404581868960873294916701907671725315366075495535092762853624766076845215274809589537343556010176358209200876292868534098034796931678488034024797478220263530024150526396162710913297807301652287816666805520212982828517236492343184919842441908726519242643930676956809101905071163785360978519465502243946515889887852204389755912358149248481340823505121004649299030891661405883984148826038299308644383464531684659342226217434991507844914864560578401457561705073834833147305066424828770974268206033999252090127005460185204149640774143315200803680852328332627016784347895374209389721559309424117443586268139039213346333305489573980056307984982302048745998468699196263537225319664150899430584422178842883845571240690601598370672247128677028264488519084375982766576681217405002556193070053478455247930778665749050312783345310916368024226342268502543515583441254894979062126820648509155761625033031519041141138203941477969522363129051423594394785020571881023611049386492166002748249878351802384286147628451893521405864543002839572296451433439629411643740694819557446411375139695378460148873909307074737703869691154036267565556852763318268106272378876271620467824128833025576738293355606379769161788259597263600772236328682034519027398598269688453108022863438715055304366387667571920678821355410918748100901759512115685218095704396941270030332742916316094746737887673501758246111186598366046749643223172182590098386021920531157112181993795012298579131855777210180789163060265960193059676280137024522676381145064953814634614714614305814262709077191568062860671814367966518805748835987426125968952121485792025321314328735114040923483739113517583712125855235985983171001927403395349604903496599070050576317727434463873972179876395514892749548478306188771429591649894123855047541141068733046558380950238398767936733397267611235400705747498119977293126482070955804195735348547925814626825874044179438336008469142408817475451968335445569735626537432412906771997804151047417452154575620300963589614917429275961565288006460346697982503222973400767915018164372964440952849791386219889691190595427978677230904824791730322648287720071933731656853822238165207477284808226654813385284947521805849474789128089125121974111990053517750360125138801717181772212631243210315477471136744003991299548016260049606368147294637081205563519930159938992014237482214687248435006939444510771430342101059226568323663002436464000974992175419160844319184535141258614034811525520944674311660142246633095855590318443006748152973067496308260140853817830598550569990764754141131488444797738779065593642178789221204798570348362967371040794392697238791263274206510110466878467503772251280212539267464319086100957588898339978512731008130737036097737403644948871900713130985378078732604907272390906761705190398025772750894714492801542351705167839318088193088992653130797147530551214127268705053620180874390196530229391033824839183634164774665097726098133452962774444875927970302176984039120210972874762676250869299919941437019415214782062017750235070809993734948081586513170625992565925207569030246310852026305092063893630261410106720502179076196838902498180013723185247714480682724372268330325944793554670296093141960953419785321765523103474007633759757629490905963638427002994896027037924981601508141055452381401629178536944266462333026625305740828717105313793607270514520243019142249427486856913464184857734361438910553469654895535852638247130643382311682609456003757943678145274510209719757168993999821171184942905208580836826021298278544414720010236399799873853787295117570905762922737204363007234096511099233766511644420543193149101450632962264477609406265929687777815374003201463424339418696041816995838012471181384744088513292414498795813357284146695413154290618652403409666916623308697676638006829045475152896208669433407381957909492678373619335550344202042174101873117052223959532020361975114508723213607244873735742368439031206855988597920991917673527712533237442991414501964064272263192508621951081075534815169767692191094669666089855736109346037234361068466940546018762216541217812103929429345343860565946209551178508805375466395860799299045718598089087987139748720056862643191978311570805903953355880938236544493552571477857047991097454241958307533358979304306903949025389222192028217219249588392220350301664165493825845289773020222334092935019125057829937512650831291813542864400502243141939738762388561902460088883908853026286362239205322057585400157724438909887200355973184839514571680590524547928319088216032626920837841357047788091155161142789773966963295128690160837444942541374843809247684278204516099243970861592783965653971621242921393383350653789395241438499476489452181529074156810109594898438962558807315267787087573695060137997468480347335793696892752666219176849373341796136626409586298189800246754549170556663187502332879806235548585624737149882115495326854846705467129754388087724584376840970836140679534602684869210023109739954977901976094571348237498546716307885839099141675082707014231727302724010229733607969841561961600150880686185019338256050913600180757178362114158081890448441335395098325733711016870882111569950708152406721923405444389571652300165965302167065050473678285278790247609620288028443676415048031779020108750312365784305100716943314355063722799295089725421210625447261319124230487997118727082919920637585293279208435716177374664833070650017900608975567664860038737417705869226729354262984617000661761038201243716650015129415674732945055705809828562100987069126058269302530448655139088202737511429728173335003194851369349526409041040534802074843798830233192867375339496182894950473673524391162140415181673276594602859568672147662642019726226539903201665830003292394470852314823465528995413111704936420060306334985698403607508716224024196664452700990761479023992557253423523148844073204771869860485410027902218691946065463764203621036096900016471813633814512306485089866996164144114683034780364068264755102513166115167433699784302805530165873424020316228986079053108480605156901161784929070588675669058916420767141356611141994889260346753885499686263843459469294829252669321348896941884319216338635519047125840400555571979325559216635449395778763626217096527090224301633389052424313701931817043935208043323990567245659590551497041574474726163452675764253305408479689659892801830519584984927482579600251017985870167444517629238540007627919478196147447143471963143554839952876979779237386304350997965850855445615697739131462944470358486535748285578663039096360457783842180942839581925971672333107611291656028954396305218452559041270806188515085662035022394199308913175066471361452193115352176443431719551633212850493937401073883692092225426491730421442152851091167583856594282145808509682101528087188496301385522924526529774800835685136573782374324621871048511686526622920534117953053779028607309208507481271534791638579622173520652171379378227775495825442480659561415012372323750357889741663952920126055957921536081407171396752149385770004406397483520386542010655500871864073843303665606881572154427373398417832082862446270106572469218471520626533292705939267888090566137672443960859334805584536068610731540577861935890029285130533335688707049611446160537815444018823068846762412184034108374153710774710154069009354426514809800205592952466970258534502802684516285226414549532817650447295702726280927636709994079826467523245176691316351363862784946131695528704013160424784404890456924826530068784425030686472682665268347730411522761401972064751642215315832955504645369840741136084134558289189249952885154986811347585128596182047984301358670158377855382081959118677860227830556224359515830187238638443068529804829864716005557211983135092556576478025084618392330768537837911547260483741334075380554605312060142580365466660491228552070433671281781368114895050079221842644857309623205670285175916489609806444243023801784415230852756624764258273172036923369904041156888679261051792939364108761998412993907825761402418075359568727506306588906697627634782972556602654434126579754872095138727760021621743090262952390404545420148462435136703364980902300822411342278729859524340523696202668221848510377762353207877100365299157928837421871253948074540754372402224831503294510861924480465863641265727707861155385223779385329289605198037000818522245274268678920904004824247418119711528492372510011047975447990510355335568346847064819470586827207672786227612461555715354032052625482775464858715411652690933600587687525496487443591778453184149379064128264305125386357233380533242997658643216729716237352758059199553654072687405505368817062886297002626215446966622654190631586109432305955497264782679340534299898750313781856708811758162095378491278433054331423858010861778786076780536693156564757737992584127714410230262021304250748847744098045884623945565836890552491325163488601786678895924823669305300680880350707537471933554082024105835555377961550140592330653408834144014969195672449985658127390948932725129344926849562953280240124260369013015419764571246919675039616677603984083188673371351899689293454122406911473224253637322087160124313654297273297703049949794800153767308007860834388506763096195803526099708425335774641000988944293247085520040621273579433655338172720271657282810734140918859920675960168525269281946627460900342360326794850313876909130845284703120118318192642278537973167769356396186397394742004851360606119055601702068809853069822433182547538888256425770984574314119130102986449331610236765407093359520902103363197764103837961351377427049998693024090703304618978545013430774953799299331010653042355860392254802762783566104441681424371201687454777380086331319125522377547282849388620105577373534182669061776265921180221011712004973158989870633693942096832007735161277132443855311009188293002612376283344125649691033515817107234617028147635795832000404452506986410873552195874755979076967034499330219409590501720352694337453752386662226932737046926218445795326169078354030721161195807991041614375696013706369526915893694796711366904089499074354983385302667286029822707354410556151614945365152066776611814836634197716165787498133303828689501953363864005675559572210827590726505927491171781287716536304070017246477367642986826366805998308865959165225458163124880111949044156393880085648075889907102551743756737251911080153354129152764691334267754855320018954311155760484643307057293413442455217151801754203402640268723587001376812833808512003048191832907750911095437913308881816858535470051884056606265279007169812769355970004106236329944454864123583594698760679550339682725135591794078113017524623042934577699607358508353743347693805933862555068593559612748355819039407758477100721820927177368459006854495885033620656523551978133484641162752376600952556412500677713994660668860179509633463946895991567289824610121693985666722918880708468758982949047408311367715881971456206394555390947440271820868677819332778866680475817265656956287264959113647816284402040533951316720881391383773700287557946617150721367382861093486256080292438747932571841107821200221340687399028980482872263346181868469886989710023538593110171864767257103970425551576033740745986804649293112354165052558214134892376182858655106878058870891197940895613475865128264691410573993252382203303314087480970198532213770858384547067616734208297507240539900028969215325099307052063576169526287568161946030319280939807879946337879816243095431991337409124909968352203191219981705602992604064314294885153703871203014121827451546308159852316087969402795824741790675573348351694033328989009594873768328820617775801118315873315717261126782587006904503310370676768412557939831774558667343497608920203935926283231654401192412764450076022647245902650322064441714216563332585801720141014973489136244732525339341646285012274107843325062125039048653251414352715752782201241486068720552602761700984633049073405271210614897901469535312772415552240504957234791413029256124874373605857745121271344740259931467192228391598255425635826557247942112326584807673355814772777247039972382787385127537145955905263349886972008723286766290636879766388142280625125802379590798339612727648228640353254261303374384412747309292687053046019415624936047792114934686406094207686272599766515641287496833083946548912559385150513630475411687345806697149230450064714447525002288511190663987936607525791329720316136487834475716434155050165337146764727814446595850490579866783826397676225632121573318749094588998221682247242183343972476704782346862650397096554547576429044732020332562273695828459554271262936898842845082528570970944990475344625792479479298005137797363426079288259581210638920149204942371466551584313012673939163422069014924663198405358041233594599048650153005361163057310335335684258664514874348853910506149567421525924357217486975557694233883161842961766751221617620779941644004087365781409824029400371970451316076323647017456873588260075827645978097015538524019097788241353626787132577112718201283639897032322350605518151832262595816646344249603235718490307759091514610980512704084071846318583369364205126096895013637806843022090733028810713629405459824469681817441967247209344742226501935275045109266249987618758033305805307638799074716857268457401896746157214150651207480307799282456088054715035846539958220876995311681559803398635668225151970066603879962144826663513124989328853473933127268418301575055851990377369641479674794825618666197932919120787976154577436302448404808112193548196604764274401115523481675152635809113836389584671664609217916766615904077036585445385814957087803144493188450152458427773885373432310523479738977667945522204849885046139895921538987728269910651897423398311003559510785663585171413325637585060518270128504616578989992609997659103392697863447602293213280457022117022957007282143217013803919545840592370445344109163988612194691632418229309913968129516526729144119325171819217104326989618319080013893279082783178854597543582134977608194214697659858123725461651655478858836788973419842920381858539273864339600140721118511262813645663014404221643831405162486980994134755346590047864007361447445821494916904604790421757519880341285772970944038249986042235152945012109451063991587154771250518601309292446515992289560479624846351638365565679501640736744626917509272158437907842442177604946227605609947756826145533530089075641355004027746256126561041369123445228115123878220690351660303684674841205258200233479965998880077825083893093418055123823194616322090098007601028473785372828005580543251696854639195732160837243140845687131367063930089949060901287549907452184195227624625467744647147092662009211794778998995889898654391434414226056488326355034587981008372324033306044755369749361710018402529319811002244701362193580519144134997588951190894191209378629467113497155656892599272608066521574750731138440554449837679692560953185384215236400149487066342163478118443040259732101201953820840426366790215264538241677095756612666662450546929431873890823684193340074779621172403388957871801310390919197625007455954685241655364034705281011691289091334705532596061304541789864548006023494964569601450340198997778965522239797119829586253005425536636171331044106551468689776404213549167328753921982201120225919247440278490195343928382801772308192445639800443504400713698389038865096904588446810448168354317612521796003059024374674802339467487413798262295132234750987712431460649848386496303221972544021141387405723199977869425709617641322585480562434702116314704986139830966410851416274949108835865429467507308425418097414844747883391986290725378921937825711612052359797589309016448149401606430126455844901570808538481231848136468199050098707977819683894897495265948945847917065796021531545971536118876935707014802312085811244369441460825174882040994344612729253968873547774086149144285858871817976048533748959641401324042934747061682839566260179042211131819505185776876448193569059928073574180917527435529565752865577145748890861690719130060649987610893553839866272795327158816236347463120165001591658402553227151993218149228893594878999370616265300075438929888293977533790329833921311580886300621797211883531879023042325334461677267855383794933759738393564328377792261501379403159198304879448740936503750578047592737175302545111942302698039529044731243097628934235135032278447532897885162210703714640972684171428142479734207470244275336704039997024346931731304352597273188978078341875053542098055959114363315978800468715271175883821687506802180335964946520031469975907126673706619485676439859769183736591901595475824555583370761033369571328905585277261397948023642127831143693229335568746235597159089153623964951431201671305823465350636288883743307544418338035832408296134508395529876528543823639634522272022617778537694078213397806880980244451848786054307858039610656472181505330185084852174394847541894232152709928332581863179165238754137608538034485478438250401530837611620873479365375916126598536199745769812848222611361478099232795304155952492424679888463206885665185200760944782743076979099054702523109011065185086368186007429063358605076242780338469634156515880357644485227242248372927823994959923035160366562450295001969355139653770333207403764954168286576844438677365188005759408542751184588667727531377750863450698399183480494326201364590464926204347471289217584338547841885321741486819320878383543091208032569863529179853240328121133982492206358874652543036295646802411630873574918446848201882003111423044077038045210428840562054664533273386435324160350306792681050779521307591060705132950863332865922154067856822551911736541315131454209954600821002933175763667366178645240649590439859012725601511606837739684287160570788731065120618391554063653805937921535387470329806431491271278969300405891260732354091071269920318498071812153276250752039098773991151597687298772135667814291056887052927326663285879686192989512206191153623618991054252850372218673312708617872340360980766255437531615249104708202170659405137455788852293780185900182893598486801391833342181650323432698207863196074383369634083459371261725783714146789325686320587616124032858991541018080417529663176248467392566814512876481704320942732826573860391393124244034106955798173200885536162901623988733665914356616972751481679597318197549726723831275185857988513781157809510559664177127932840181956746369676884555424010211620937759228606301450972752727661650737783155446735623794330128387218508498248529629710598384452774640543131004045744882462869693913117265892154570400938823207011603295864949269852685073794136355291472762441936896745170794499853996839173502329390385740721625912775552641500315858037197056883834237755304812871889456110809867663158218919288796276323066453841660888667827669973155474900031539795572483639322060131892634026167635552793214877623735655227007568433565454329238074675930461221099127048786509077184821245473782674602303792608681708566702042328697037591772357785779936426964340272044940648476562918774214966706113843841249182961485010350326250382554497440167311698069757708861890042625493330594798628735156917626480549873560827300104903685231776066987620144413924327855528000562184666113936160580725155278930552896753769993894032101157927597569576990627138971813012193762360009621720414824850607792915527722443710609466692548343180655057181749187288972540871793612397109211888524505530520640955935895073187201308964907172585147528638584885483687876037112407814461213895220415241374120647665687863443868735374867071443095082448517251123337006563298545174861202870087403634031397182379518310872505350636157352333808864709794771512537067787878663786224895872032885846309730915998723539143241691184857927106291081845607624022832416261136981815965156814978169289693815415642724044600914005260454794480216096974039219863603107318523077123833701086319534958397894987441003537528873723087453608414381441139880108137979437998707134642098624354197781576814879067193536047232878724256691120110253892872024572532447962196118589292050571148660892892064559476444243265867945847466625395449754083809292279989657082255877872018966237917136728414564301234027925386862140090738169969179407921413115482422257574957614959225568219183754966261901694548262224982059599445198636829746464106649265930145082118212122932072573053024978119788376555930647267805801689893310492626410584209159811363349106986072325189593307275420256319247740145530169816430695021393200909021507637282004636073098711685956416554438289016610801588333488642625384745650383229036502653025610093131512248961698664505545202104537855232636101884577214834273156749729800062614593002019161838121599930615342503353192975855103671242973916050314705302616454170407005933796484434778363796942775117544608385191122822171122202180516115913438014212151050008992657104480662430537748153208144282468326964234860147004399009118356363103659643664963713308816128292987117785560671263645401771468872769599288626716031328680985009868808151538307388558335655601549027757723423719099930469098174844708717391678377144457346701630114443681393509362940129551966782054542815502583838628739776112915530028246746131854297013926364987629716094289858243903240300760390475552843554985171543443976683855480307531331506542128367418257466300685326392808326392311374234729788726224977403934008186469128627105160267029823993506385077521640372442317878162596055336276080646272339330354233786672875458515877749385461139251073270581098792545546811273159262186322527226756129153512652080433123011662026622453093413978133859703700140172390532063365723152163344891823805679994832003337794411357041007314597857310785755916000527698674190774046613234532606300834945071593904383549883219267504045933061432311936726568378105214387455755821815247943791857411614326057245312651850807704451108098609840904497356008500564809867041988208381781055369293100501260159630403524342298770715184851344301547567858242449159534380046109349490434437764801982773893691520435027728215333861962036620501482784488090913084171748953592667666314393238979934036568776183130274344008471103440909730117680308222897645417328338503658871340438169213648249159075418161302440176472956971668705829621194347350739148160995427186357712725090096374902388353082258161342850790431723941994243678631263149645642244168721425167988829282257149739939133662141820549071052985453996144227026902718654854930179768557710474794409867102356586006941625135341671904902326793184416055855742769220048652337607966321996808669355825566913707857240553400605017879762118554663782634151896260072568769947136022755892549622014605260109826157666587845612658718204952815634440184991896117569498126384398088339675279658002833730542866384210966055417549409261730272663066034093427700941312128669368140671973660355886835235775481264256759808994646027670038411420916674951838243326591215082769493708013975024846104751823328771561883286400184980575617969766587346295600529605319501285045175657404362699672223331232528488848621990019871927595348526216328219024159759263743528975699514459498784208304885955241485414522984957056186299312625413817995388537219453393178398711994620844985668931175669317986510067122635087552559920025531303276806331190050212414805848355838713784962940032196440954986059706782956079838248100560751825752673098315617267145483628111482394018746483529782837543385131707667122621163785459622628803852270396439741768005308712180454600216477705219624072395937880650653082505378987229813873275971033443482118535362623616971011155059199761527245552149144996059258003035399320586416152903883374578187656823895536072288094091236357897985901572686091712188584310896759193767801473078237877953960314689071919235657590970468687184788063016803158144124543076337478053792631807175646104102801842514749283621914698087904598622812915507969990686095840805638768620581463127757766186969713971043256038903811567385102065267342393876468474787491265272185053125515752383440986391000286125727080856572553136762216029929816126154612664862757905598639611383945009952129221477902380470476418296219929678789548769122769522853169434584055092886115709714148614457534157354531184630947691906469952760909782158000824312729296990830474191784709418646724344045383905515390731911572308547759106952243569207457834005387137768023509255695030472769274733352948746541235189949841924773905245010250677898846995601427204241362260940516296193032996718186153478851410583581571900103457990007978951042564621391933172062861905671489899505928387647737024020665700764134270522764801492818996802408709132344441946025088165160755332512167729623578749480065969911827959098570221775128293838711708491210406668003087320462427746091875675888424536938270737496761003244497772699038424260658425482068049844039812007107006467406056476411740200954624041621331868681585397132356365921322449805417806923274207828095673176510301870541687010656734953940636361136427216194513096072904573685817741605165737543012403489685929600009331619227977959452212837421225737057503424990411292470775370218450116912216213464529163287051469421848850411222110320985258709855800924448356819709582093702869825216661619672727433223279243285830209282756892851176392073332044359461921506691289238682076301686606825761510078845588956285974924804644977546892789289608967315503985436912940596350878506493635880715553138117461862138305621359463355520719610943538625274171740521437496778783452114449405317843672322353010923841606776573264373808701711989074482477215140379952582702185081756839362204940314238843554337115994227524864866202516989431026331388316760931911557994893417054584314176401434789841295183191143012143005019722013569382038137560345824646913784477794406724736049992780878471488780071483287414995606651702629182979430726304990970433715616759401049895688487596059497905364542617326035124826923129389786900931193141654788918887973975514607586972524026490455568139530451390647068438098759618677851452863757371258270158812316705153095245123689321009596131983016475805032699031859904676543487001796937512423237699776077327380138473767008657872754948583181022982219136083982351360509027322318435789288625916687632818605166311827370159930648747380845655271791314062523892752432656331499729527087148162231065840462402324578456414783293329689682106381569675479155768348367695471494241685499151069270487002118421482705467435542256973207441802050137106229021802771658879066110797369041628746198756112255746389292951368199618362495504743303504263327174533681208475121925248098949768469563295173367236292532711613190021212709253735002758791129581531613870785369616016597874599693705875743437797207738836292392118539855017027931902965562563271586867901877090297124171750061676105874239396317799605166882276308243453743677203039994020486812035388806366980510874849128085241891882232853161708202462496280754339564205599479004939975336053635187471131662200176704683255392837517555671498574850263925863645706790229603040379703287905229606766768217168617613769134328785688614664193608753993854524614439952930345067816226785357632341538691713328328989534261647044540998395779160540379362083653817996384727065413375242814690432575989855926871551627043164718040664609130053608153926647238202246559312421344961431113878219870688329595404708009673979198722767803200741112175723072211776267034058909350163706396580769829423356721937003569022980812266827209449038561606280454784782933115385636761286572064123256718075889069831581043153914203015223985626264353341282658082154916062785466594217237694494211982468421727452429802149913531875730205385170188662012807943939809514042714929008488726299350213550704835259397479061372396858884261258370198125480610592328657001049178695224247677906173368191366395840222972573105485607097944953611452160859355973682254078262119311539403590325342833395646850039324708917837339339474273821129553071679178152329761305405156868424691865732454222599498067525141245050731520707993254457552362258566635414111424740562706582390301000726082754672422565645504281384661173202018709891653542598207237148186354990554061693170047853410392327526334290830918878183235178659078426519892507756496937775206833440858502983971334275286682304491671654886991324952460384596396583771306666392891023600109200196226237032092842859094158933610782440781876073085438465794234696044987564543863889616965084464079920985554818452505753594831679562916504562946772704409998897835889189494416216952137600521040476303252646897768649945001715264918555952406360199757134280155539325484040592265452529824100243571821409151169896840195013396161172003301647303373481815882633611907392304804600974302717539158294375317990898947104323961962787635835633975435183373683854698265273607179615900805416739808832758226708163024070619205661393248717221817696009289550804586317956552817136822491530708508935046841875575592749020147534373447716500568250203840216053523561513402112162869033271250713855131608098176118032089999933929907180098294506222975254695970646398144801615215375752740262695864612443002947089067018262163355857541053910636143256415395893016609426650341338785414819141934990451534397304161844044518438800914391184229182052078617196887149100328793907626998523098562706425889356957446138034852322649996978130588390854944676837617033890664276795844378258176781856034175509548890352607760223803151250196950944732871693951761357630455561835623021122198902004662473186261600422958371563589614690156165184660055562985744767709927631296703678848392709646458078197186697713799843033342652568807125212651769448824463712097415571433350489580461160023989305754254607577578898826346192817625053289138792623384609116260831382987796019161295399653106487620885888479589366858358757399769064696632565721766956924581808055817499670293168739372667138827767529023969246448662936894382860147163672409603136240764179559416404104992278128835488475965399359807783255378248004818949719336207060379010384679986221188764013619442258844095650186875106333973589196658169994153541429003633342107637853480178617589415331191254992819472489556205559183037887462055258478039177939896721413232224382730980584642851177222376835071991021869778986591239108490025172613742001678850386800139273583604879615353998975960953132297060701198733205717408449059224753390468405968798616858496097449049748829900951778721923672807395358776819174713682726340538386387244598351062504711284934713543358294708353404090623527560901524524074040224463675172067913043620150760412343970685600313903174084735524842006169922462825327331829098859972937945345732141949326850217331484380196884544837111724784057537061804792276734216077013211289034635440650834528457535106790162071540646172839716922582261729558889162929374608686491620117565049607961635148241901620939635007046033360785813006173555708885146997207679853859234547777410588839889908324677862063105260563258825699071670141240737130698882227007075103391343429372396971039596989889961060603997544145663683477154364001903892785786807801066703750570354670156621411116283378943192588863293529407166817052668712021733991403014111464460301525173038756281656331974991282013532911687566452585305527599243581940882869200440787633143329923770581803872821102492190498859323176176285527921711218851935094691092166588688308860708453860770560031679640886391137078050760254792586157383473569388611509391736823487670111693330947791470958400946404893745728902014461193318874400662288051152698197086496722665355505160982974074276563481654626919482445310342799833463151275596290213840952104427805004117599766324082398019920316318315104369295014230230463772508694310461239890176298162142623546383529273710555256169614009073623526161632864894794087600968370701774775577720189676958385192353285320328557804034152740398443595171227625476758886592635875580615576256138619394545058382795339933184663153554347760196420743866293039859283032969523535698443872809467226064396476323875351913724378258449017024140500497623105398194751728357841883354831241170330467075861100896417279859129493304960016477125960387290435343883004573244075409097025224869380329583655209115033592761527189032045174057267552056847965070827784664441442187659670252483769973877455113712152426941237312981157015284727933510219269593079339374458972854768452440889791962439859353729379104753013328217599974243321369167485404312871334099632180783566486938775958284039538989584158699786645311143045609209876991222450844834666697894248006562860451938664140971687127815501200826735687415089315581032971438287607435531277609643482114683086466353299853308395288046939514402760436486835883761753770950730832101574139339525867592193243937066739297143437654047487050782303091228258931445078321705871541796085400152868256692616158134756668021694732270754664066329798531267922741571924707076415604763686234923367299410873344927018321069549743446855568527874701571888684472404788151350166164907452771050229096551734497424512462766680213290500587920559972471532035113379520044189618158322505328639002244873009223980549268371346076772444097017392332713258934690804883117750557125505551764441340327922298300866671949275044677139771794715787407511795035298860594053008798637321169118537010527974769737346153575995364987716591311186840985645545027240960970886816532257045969872891726340667866978433012784924537286647340208459086333061535309852848600476605852699474127845918081813963909458519600085872549334932803974080974405007448525344209775164465456299940479435883253819446641616764667065298122476638154522723228626774228686802078931366105181036215019757939080342045887889605954743442203107279363760547624864383952634938118202271871703031473393029878509059994734098695520061332569049096595976235053736103050070665559668376860614380337060447430342814941030142228962281868919612579044239188712863407341437931998557790517304790093301834104461019411489860798673389700860170847666684200445327885953229195426449513617394435404242994092790198722255897484210645515596915855417035237383649660575210813850267796049311851303566904504913771488942267329970143840661406788846650052046399834498371695766263873611489332042741551989985746395192722677421378789866524786081032729808704542563217945504168974554698702596171141420082030070080728067500314276371678387526869214775841460717409323715329081893905801123555420367796884529013335305616606157559065320077860761223870989160571707610764086377740574827601742214261641156125619468960074600301648195045150845035318986177502069723453630742067528867522900050139658826206042462936798904519730256136712176729365400285833105697721752516093970391393083688318453945812383565486428212747335811136329831114873612533716782600978132004511617021652258423234914566488556807775466480278320160643702538711422362693515665327843903659374035831718995045435618148596239556899313344742997278456646776924302520993360164146155391890187624597266845709417180033269094114978102897181304659399071714028052462326890150142307316352647903213750060558892391522316985637764307296639130403141876452375509874706659945273662797632406275719304900163423650709715438771015784082097494663396345320632655903351203393414398450612649758163412316481619662838978534874285710666803805786940376958141660424959725791005810780217747103686611423985982185469111884135123916086538760630225433093563132181878774990659277526716336844325919750235939162281758347880880291820414044210068387065212772825203796195863686515369429710889864674140644427147342707851896789201072822416501277361394313172105869354568159953310780152568398093004190046354220377997482099603843520038207661971658837647990242760139133113378936059276644978393552221638637717199478674925446996508400238407488810412478914005432011428580279669330578961973674296390638717556518928894722511887016680943194460072665544661910538978396667183873997002047444761628180641345065540902576598059388821503275976419450362045394249008165045036818824793246981392503574330802968514138527190261261023170120289259357054006527874432936801572808819849423119565031220282785894197768293667470919125199485572249730358802167516799074762624435817424325092552552920565555521341841459150656323787698405902975825767835245022897232657251115528812533943653974371983662167888216318576540056075018310471689926069337617260738513433799326621978327835867175125538226744357260251311075913966750813661761020149719120016955882833284752766520214517453283677658495720281945482198315474484046464745939264273883047955374403228753368670192918832633840193113441777511980653814366371386414870706031434361254881972267953400165294881046277837771301225691295434871629418818061361881794978269070942861598909471571294193000386033152578545704851286550085560911302721619600282120314419010486932569912575600636698708920259600102148289039350280290289509634623461634347508279083222063915252157003144505262725785384635224795530556807495179568104518220751915410958515297605165319706841312584634865885353880913766471432313117377322635945506050391491733141741212640632684226786144907922899329794991952935711544956025606974742275402366737934165560587147495682420139558734025511627345162436044401183477455243631003551969250668481780596645980691636050454434934827602597228745676960319153652958486434434820075796962890419846956078475940797591484266968377740200533457381584364809267864242480935068865392411407839418033795827114790387181748571705182509634515169816724453601564445198756125017720902873247167740838309142866217956828758365061615161489908098914387752445186369530302176811341082078623880044478524359609046342372723280352701087180536168662156908979132170142276354784262383676942707830496187700463474193865030083519736487667403118486246119638603687097935684073168546341147698887411861270115628295706797718429201248262628972349982139216513353479123406758342099214666520503285393521715598904554648129382481469905893576286083979803032501192366845848243441354908576261736843557107177584721098193245828916467211730450694393903292811306212926737535358935687420454589278335583372285174475322825489118401261518226086310129069361087304072862190353924285233025446865467117291369062124060755037686259055797880391031072128358652903425811888439252303754365965829890683961610269141842489644660043386647416052337560721860157962600990587339825243922551934392687955606898426226684420688621585514708484385074040086757438078508069048617550366529739286716601212988807904056149342036676188440016795263013956479467271171836539278545028617798112451704608007568744374273929410853684494923357558592221936152432522282778056690848237203532932945519207654142382336043383664694475699260602343172770805948783191907263914451608064899729759003642697960303705363449220059914626007723113483881006091337109801307417879109802616553099850537665146722445171206293833992498375000506488467267002165584277907559010349070992586395724407684381955950446779529227666605295513922328401559364517596926924966869155612283329483310445119707215908370972011364248163716993949250463714752010071907529050044260316935398318490696721368134565086247887573564559888742897810949658316192027629395543383784030045584081526189490294119029632021257805206280660340166393408340396104753713291422718870461455007315194238546930458185582614872925178699898125501119955910511348636498084752646386330897583689569677236556224867800726468058327977535204107106781732910334008759493135557932304214898036065989725793526049949599276290338392425636758354360607696771050444883500997761503232262865133452346978770867509033883741764034509282068397962189463454093104350820699887209750668200112587599314377788248700630985683477383997264264455755044143661327270729750361698180126225949712643700185452456764703621307328413240661981508450316557088924623974159568818671381065827495074074065385572668671562452696746671088130195872494905904929099895799256917381152863016677979680261401173075667140254334656229632334186376918096163499901926417842199535338936952735639159965841973166837047406589818157245654340690334775151596351382198210286125759038530719189480011167411744656946875614484805710665442538248867046941969153983735698734836071672186095728403789811743378485973663754640219516101011503945928805543354332121579865057895587366301413360721324922691368098685028425327063508251145394638611659709414607889324495744451955415791659576402395285861951800185154314736735826987251880147680534495037658559691907959972727178596503038499953942714627619811335051901219310931412038781901578732093923273536476288930752266358670918874968884899157863389044273835275296902571592753561022530503810753514833921869816668348531658848657767542025770675994112328017181218274763313284932198728712126856554251316079952047070843825406106422363134600138073484017455935236932241905551628430778265139110669211545926953615096920919496053813041509468325644648041573360990479085221312879317734852636263009262975373344283824553150067966030175611882662771575583789284449175331538894662750289787215818659647492876034236970750713698111782468691211160996224613077713769050145347802489940715097871038262820561488919941989846333760728110549825085889844538491215497926856146881297916441259313082417079065521568002646633075777489537170788905850540316489224143365144044603701893856312754551185791001893264834859038775364562679185075782607666881995092394237770046982351579243397363925962934677614752366756135631163704218717211109911679174570820129670912842898452153134911229307185532702585832015878884471803808484391065090201419284556557963017977005060017225775128383367031054975482072987691496889308574315141447033454424473304990056248615508149994594698682881539598813190971471245049010350869807893544162224877821027570818088239693874803719995888710660025906588636580300524273111710402969370619219957264752080046067047926797151742146919304719953254479889804617952794605827526525902562835986015553070591717733200694725327424792212659525112867478413394115499868143042730628429899074782839764527847699292560192010135949488346270756996147685048333395304339151604104846785103633291752935367347588647676164141382614860187182140928602744141075419093366691934996716150629803248406059859478947434324857931117156939847601783834233453257953309103641539427385015906634990106435331229892144891511047569236719189006156353771287984026167783573491417937339224032857401073041672534883089465054676755027599652546370944481528546621282798236041206715423512806240229439108838057579123519461372238364517686182384941125036914620251039955734134416691147395604263478617045570153451677744335623315252266313790971433826425959489955717571846006062976238829904160672601427731434241441089976705793296934045618524836834043940646531190770746662785185265181444506793106079578240684255203609767812939461564731834330840992418769813856344379730040993457537033753470649202723295002007721533188392890138137447098571295820779162400966231955115005781708130792969613378754496802492516740016505226458134684248336270209992794526974886214894914169320592694317408277098013423174560167815750624960742922078744204790339480805876065623249289739873646948654965105332032394588096353526121032482618545326618831182585314893222594118202825985195983008560415152310166127633058022902345622911382540466293025615167773624208264683488039887742474877617908783243600989024239125959147728909390273539670191752155760558517363054202768722588323459344163886541687993231971845658928803207009776987454061587697030491047508201863108221204314883275300073507109780387927019926018592922826672074358251544877142889687664622152804931677584275010135868052437891599920404572211707476377339515879409519966817090111929176051961243948238568318256446176826416224427666550394480823562241876515902747928936870191878484572724555361543584208747456399311218374109976451079962121548418764243795571532214443754792580113822649221814873758652407878427114728392382137304324608490164846188463168652414926205711280766253754017882243034353072689276889675348984109554819260650021270199332083380131741435191065215946812826713855925241590466247634396396512140852078330599183936091548646462856132095603144969958212814902181091365097771693098197445603676335658650254532098644333458476984637642283136737681276725960975259478819770804939408413382636648238208145102693503427072664297643419840822335941901347077822536355312779524437606503291521955021732133197405037643978833850330284474889922079806142082310979812475866836367785589431208138082044018762834611615926552767651189767136689847270217956362089497689697766879234804818216995046290523986858488183626211178417964618929525070541169331827403016948207590520834197322345290815639365372986613037456668974126994855682595879527454104921161596008818260809194971348468426125756052518082561615860129118323151082354494927388971106399139520049620340707072469385617186129274282079976497934281502090622783070214851503343999846587068161044418586975260890430676654004461257120150522718017502290308937139291596211410765576983899260577765031501411199095802956795502782455431712892222632683873356221613464778022662712969999742587927309075156329282568493842804134664989813292551404265478235785170801476449825316783908247051314646920632682420410300985377593301989001355033375059458222239155815280715213077949666672450677115623123354033307139405657430226824703074474802380066063970822847143739897596774556810614410258362636876717376205591316500503592039798332565690599910395205831989710603417699691036690135091846224882903656369763105220011204443248512953807802928440440179010402260675640873203573442713075217520932783486847972548989954428741065296881333200851352367503719015847446448130041813578089032685468357149830233615885130937828351427607925712404427324213316162110141243914632157378589425282759745699698089433224234191484823347105072335253141001632784974237533194724270276734788022012009726538884467947740660653176704644956181660432275670421938422458580540489078536107845011141477335734603176288591989620114654224689450735534348827050949912484440099269351770127283035610868695885680713922890938847257638088017729922851597083897883782745218506140333592053443946492908919165065316195648616177782023124092742336081260616902870275688064862924433446019620541127097125154499646348211977006298864881362910498869078910648363825793122963661817867239134677887377493439156140292960913086663949383940836882155101424801487358335908818424291978516268987988452456135889229876429336701243484646057872332385080789482118061326899940975842037554670888597250095537139140832591756866814699352437368234230400250320926484210986942808603591928938960200261052573899229982865333803203296817959682728069435356760040480026847193703359542580521039269903323717424745553885048943050702068656457579817427957320671665599655090182072894041569275622622690430769337618574924471814735270350888811463409874710482205999848001831967586767864429889649109219507966323464268639521504383256944105056104852637287597857537826673693221593651440294836767904175946232936057473139848703192714361117943248261556937002962105856056530646877876273794502524885562022859509807720148270370127683483231074106875889116338844032465127776850944384432221650897636538429324394922195555212179812190013948335013016338704123718546577135696077300574084640117863772401002433668040516688674984570548225890075664963073699380049841485411429771398764205222531962321706855481329026753421909202173764693031991059407187495992102576124492060842371084069093723396545122656857855193592258788823040828612358698752672808573618826424505289714702929335990122362399349152931571085223092155798746510879743261991786515665559968670922340517730673488812664950960733065183856940536214357249404930921904437790303163282409920669980005409910675157112176443650182390332582042987286632778149081633471508938883860702282888447866173178926684137355420335037247372684767591396909909208181866420059919960596377918745457734082544602757747802130111095526489838486936233055632417142745675936992312087737480805384691727303419914665732559651235977493225070723381459817716973847533025617873748266875950471454134210661762936129002878370293971580119830684336954178465667234205807480794229226128596177690381293485514735082191280964359314836012145058892528547579557444448040226898322514147841132391302108665313376694125859527477454837935574652765001406976331300495712270580779026590947093908693838713976081237508966640720858711431994113619816928127143776463554435501055446460654798506573580308287663730670226081439994701816300604291324176806877535335704557739122518804299512998227603051882458718466860180640577599785701778076798795534116810037625393545081224047621508904068035381479111742993133873131991434046522354622895512030265870121546367538021212560384989783500847367721308921407034863583119743044433428905619778313131864831447155356588188454288927120483546520906252198867352413778197222375416977857411781711638095924507284685435859387707428709177359561531693560810205286377837586994441860088178845050656650132670744334595667591318663054220200972309138696785454467478786444272476890921427856441465957150733301257734231136001392321140879096195131089312969519397208356728149393509662685760195394111664203199208654103180256365834007109768482559807000014425161985032654998548021679391078390041435031910051532221367706068144586641548026639017464891830666902420654004381956520042279108847019583846906547945298039063059791429626500069310235409672652687798008382543853167190233254823599662109516301815555014415581296049359572220844747784257886237347454743489953465276926815715499111221673677039523144705155330235840607470027113929647879446018245843363697036703454581150752109612036937525447828228130869992245859162961016746624166651090052244496231077603277504250395757117305977036013096838441822555831664582737462805125322277790257839384872664936573927568811932775651285352145968587065794532659277738177226033188752225727336802910558894415503223651580451740771943245349062656221214145770313825616050878082895881333638381314924265699819352596475328649686115966113341763519174534954119158865180984106729134577998536191765458715666996094044372103553891214881837288482447869910803548782838086740580677326767438166225804291674958918948335223464361956305818800775199097185632025126839072779195122197959002139889035796327940565836702834063516324523786826038615079810510836252807030369814246473677700648672484474196034579487821421384048045402317252321017248691197786985107017914418796705129465480378956220966988091773524343763421521916246913011620809273638967333576010219699057955423157711392668336736217762491066064935430295345445966391140774564816781611960233476078334269502443036354621106400711697710557857536212411298563464138478034840390781401590106575387002754076822727256609611901184501934376525633961125583434421628544253768096719889071506994670063674776743579289788415578037807411267489033946775145517874326705153652449214351993608882197712177699585131925026734709898794466204819869264474816399729709579258148337058548489083289232512300752178734685986888206204432739187941587947722635225496929879892142873437386111778726173889908990491959754327362885892982402849415022440743246095190582653793123763173420742026324312361206682003491504319827583839739238943234599487345329722635794019958989374007423619310068673110810226285284534890294209891960302853624445871036446946753483763680176613331731183447989802231482766969299191198362847555761308664057067536225791129307210577258733972035720042132860156896167211914455568227485664061208288722948632827573827098022826951001261521201324468552408020708745888710248666187622917282756599699418915653758462301319506615195750403741332886300314093261185141670896610083166088145731775560175041150510342594349461353958171374284368101318376130199143433381490285214650851374484085238768129812726737382711510875607011488345167137355330813388512015203751392923595045635736527237075476550073668698805364600825799114987536066020528603849139338516923911441589616576599178232458817368398440692981888556357868113991302232982358697823661182805050161237331125888596125573789456989288465047059134115733772056988121974166361190084509200360443801726931445308196559864902387286900093005449136084208916452246756076490270501685596278055942031328811706554390926883442489617468260446114817336344061233358257035664032166978306213425009058260286358724635310174801212973043271685962005375863915154633153122783073766812114431213316033897989146647223994892791841214117664216197837089679107307693060376969365953809944084530449229090512221570161959110205360317937047930985896356060789471322233407250227559507385987219101371094405679915745231226762692443835069061329593187891415061878976470396535601651485397405538015490265286176661537457193817805486336556067642501787511111188037127019029476809944700693313836233627696582846512182893802388798236791910797535869228254455781402602868997309659467615006064307884676854264024086260752364044110839955240244553527257399392288418848277595670650069993148272951487473198438026880565498010081984062643923495889485368826899899547432051751078775479233839998260930763154354644534546973030162976422415294048953460709416388397082587549760461867475749467974675707022123336310628031320824282101309882495614639613160937108064690498329344126513887505233905534615909579168211557225076933698342477368036727811990120661676839099263763194640461984392984108358137503977170596859134878577325421218031388156306094094438438594157403586119009169563381139441736941602897912467371469497915551327139745302991089380155432799798460515793381320854794077526518261192436339505176293273375469351019409679179429684516901323336438604497596917658623245773528450561775355446535306318268429908958156795339705002371159097635582687970080001507488876532263964652797916503627793929595731962423484851239329488723533036350606587802958436109035660755389508423321871003944863903535421430117553821413614653809304464841032177607546542650292926694470980450265013189997972039118494822628456796341945636171832900041625238243217949103438875733813968009934288252024024738988836361051629947824446720511598950282371056242991420578127447389957896972909739226605086683339845862866955192863618577181365715945927872712692320450370607043963838271860160805284971724201467762866301384354241628542095887947703700645605031700239282773242995237325497854953763585125955995141223861604738045971723859246263709402117565115853533396158715250986728276531754460356659538318623361576468284574209329166046238347366511145817938521863487886743026789413751741108857672155381745543830493320049189936334605464182278751894706890534539325548749599079586940857912750883312112516785633692000764328711813495968593340529524345901001303958099028265345822230460766064729972098871501953732734706285000347821534055988637734728142619165199509916873571748069580618247941556042979076369650788325523264287615632336604909336878892900920437117178434784844714593024088564593610559065433763645653037634039137185101273999966175918498943252169560017253839022720037998161602771283410706793784021599225972438385754742386109105706756775513723318631538443395466036502338378961527247847628413801252447962949415090312560823843228042944512421762348893972005531345023888099582362816014406444685598339731346039135301433119367711817917896109668996577609543579545712873165011479674045829256280255788410470800795041127621907922963540439249493324784926291158195039782674371300159738307445319302017917403976360760171068837472093762306432513574660814309154616352495562094986888451272892629167094947309515618369808114624020979049997674634306305486082921193862008031786072488748910930576966306611399398453611714895734721185609788556210669349822146508839472883694914029305574251293361971339427054263981126865266023299402079132400014541580577178294317170264179154501880141512799488158064862110118734511612919822256490036191046050720232318945309731123874844569461920188680242796310453603745670727525014035305305254773314995427873064958914933881691959649801970860629859034031925846585177598846462810706626034124452359514087027370759575205841957123271344435502176547701682664250472133715598602302542967277094022237891298325519874560461342278650648882528301308728985083345464236845153951610647148014352752425670675767216439945345631670981232487243656275526871969215783073870228014345404149861355169932443527567985657373581925956979438357598883574159229835185333389334968163808858584445425105948098587531880287815319502341098161173052262806276114949512243361059860962273013042291259744768690727550763904137772995316344448477867736760935168701717575357822961487260615904779431909531913667257681110610782186857161836138390582280110858921879598542167452472502073775307652358298109126075415894002548091714758708437447163341939148171654535887789554506594520370185544768655155897661839813936399881781787089941180605838606726352697298811101872347397693160696325757375633691368392601884443013878709325609296686282974778510083785850520400786157971476473357648031255966256771018896448379411536195937299286428379674532252420361859422997060046591024792047074832855314727882082233015424672230815060433907703663755819278447945872232765484776991589124708439032407571276693971323038699983097159427538986275500630054597928836213362498396012365237598463504706330314367911739862906968543453020551617993088536536997580424550876690175070889816221414654666801764736723676582573474099391266848911567246251710138233374116250761955558058430237236477585594330191105896510305565397903553400598825851837727147735636342780672476945302362907204718509198837487360615401358160356621386263047217912079081859657139078443689349948097283700130632697335016221813555418349428335019021154475762563833125277491834706035528368088626876771052506241949463109628402030941687923219619832792185108702795724390171152077103389525687959984100119636378224723845779681751330875655936815516560043394356220275885641301058595194004642908989525681999668478561385788245626741625945999365785188597758639216773572581773412619788852302662425727485327050936720861352094093085384566153877703407829567132900172717876471891432438647627395776728760637767484940895958591892227497716862676534847670764327806990727575232905352202122633436715738604785853499526401944535474567565939560430313833595810927489405350928304831318076343774979188363963739444357503292408164427187060997653421250528664073003934372853089403232964106818014252544339380130167729842189599603271694257424773555361823048839168312760901379756278904172062885835978158332173088019609449711680289691485597702802411931634038624883504621009200090014947924119055955947611680951367030852757797084795499757915352849826900381138224245033799400431730113336114728110039561547877595563121868893258683287045391630517243603843602890247910554528879460112980815503149240701750780935986938599990954780940336078508439076190104043312151453978186421046506863461330405249356835190640594866786053452876351669100249553572574467550794473146157177256546784592583033609321232495629815448174988067409620422900412857750072322654243880162974684749855186916870344823643594813692184984291940132379720985042371123769002008555511632536998637820245935286777304802622094058873678138293139603661809171070441366885833328831693443417649945419786556161620988996033841331676137354384043155264108443412822634569935559537606189669192747687697943498271622896105248099072755549242891190746420948964642482868095686834738254464095535560846668514427370134254573666308181567768431684509139140291897193163389686625735302540776611264759725102264362811362315162164393762929835655541723596603891493923603020118980087976864008535612463299838378583761643937465309696653172946451115539390357120978144379049684376960739080556093997973484387161330482397856601747611124332058235669134967573529110936182894439874021400235178923845154525599726231814023419882982541102098522437280252250317506162682954324138541710355635891181040327687122818716839731791425543438381298818730588966617424129115922230902933674395076658079005991578294516799458908125193983704279938932297156161043761698101211968758660257148667526899708151717684509459213649282829107285912075345471615202559471811242954719002557913267551947105274124635785053514711266274444084131984775942460929747649083687056462927902949257323942715671877429447628202249090135789204545879860082940115234814794014058796448534838593070752807042385156607157175454648600654039910345832352247609338101283325945164646835014431236266258627512806912662981129542082484397798724265235882004376063254852438912529885837544537089475036167558039365792758203778385438269094397035369289090428943731481250498801209775237162490031230581465416210016162484961443106657765272468547737860628321656967307936109996703937037248376871476814587613114658111725891655703385722617191931818257979718276954419833808199217317827549261501295355169812870860510974914227732585710366506329585443006441827813279298705341279436814865213785985015357002767530778073425346458421284197821577317195410725671786066960754648068144827365180280041728950080594024445847290086526501697172849790610483109751797284535554640352963032147166096680866290857793854671901550989353975178293568176877723244710392709705102173283628306342939391611066753792537381082296032906037966751509434195114134182634177335998088791055087156892719480541758800157379985460430517365621894086601761749784567137539076270878459142871342014761907034317445201038898673770058060370796970657278600670998227024871262095201957134644253686652726214133441816301922604047866785447086853664673567693831420539260124895629284877848692674545072175531021954637621170173550287550784340059142295577186385726163246962794017974168777555394792373801653338532139162615616266279874934354750961334382178848348131075558201950490324268413687361590020766774308008228786517715004793095860400866793163315652908088538313061889553423883060647384891098567117887088899118682873615523682915054059150156967596243436009568733448937190087908522219543374956482670430602505412009301587795460548241745438791559303192065602325323564789419553168959802773047919067719847232969566288046835443221287694648529870212197823947027862620753287428828189350288919095061378586236163151127744088551045771265537190657435869882385682704264842336439991958802729281505260935836296021487796809016992138365798531012263548908031413138670444580805724660613765045915463228296415616240144855070966058153497345210974472891128481704759551438946868643278340464888039962944596249524584070026182768144560043727278892532082785084234121926286348441971845888284748809043032341895980295125486961284117411740517051737999167674197468378107310294839913147845999899273249013052082462902766005795292789433391554581221504963041123236975435399703024943843551841415072804117462163938494259055079439864679041306731412506129517347307871861608438455497494655569741995833091343320091530128843714378671528987580864731161446265296951120688086642087652643405748982992996003479447080416401928605344958796434379357114409736566757044911329791408032256942044766382274698398136431133896157769997921181621647076403435399322200226185234184688853278689002775906042198300269456697275116284885116379338316559244099425182951793370326037592879020704736384980220251955207554790386492874067522300903669278746293805418717587775378574810667499680275867187060809307219743750562580322083844821777688219657940033326787616562724727361780016158651408621305165949894290223386140350641552121810983554656179720524799177071242831111959474853620429503436314572740394061446633733246544929336303723464483923287622195535419153036019705998577953654616497532436372709479117762863004307235973413104499177165668634547959485108833802056510547108140387648117605192083647612476289781063822592266421134143410751731504297864679533310437205795135779357495072812028520705549429958590180115884622910642817610653920421631647425830466791348973031773504427291829216176724777270418309420019723482903956748495357704423680697627165716358100670965970327522526757985545991802079755194854699480594257737511799433899131965019276926589930278953288044758982492595455685416776223054447697087110157484918126672602920674464425581628739650708657257222973491331841400092502473322721158293409808448919159112528460371223950243631563486294804316928414296124250592847564664619586238974916577355477223439905617730067441979712854473709868244258282576372840936291069795847415506282008588608289602769734003324243706162964122623966660024181481575670149320085774038073921878211373404618893520707582937249781852064378392232337142148805020610557021269811033514233755529311077695139318113032319566132494227605481231688836103308388865813627478363769788209845120344693062643902709400814247568916896818775574050097488793748020170630831295290957774272298561430263654528208578359860235903876906507199537312562080012748217114136912147325662208855178568737955849223470330194643839925909171507121285134192561809979892258401601641804865208494391685854818658603929611284056318678411461546106855925696250569324168677104671136470940011850755203071294207296398678085088859575477030497239345933136338831101747919939062778569716798989246324379088212422189584634180030879865323195765528823224850313924470044657562523047233072414881023391623383487015707921629619465244184035082377014813066571973130350418030955309826752442991691891035160289592071443071865944085635297389655142621849869296910041527221271125289141732883712347580008967575024819291983820007187512475031709680627372501314492481314681899133287780729475402641705348670340044712144668978427018831098391859414385754091371153084759005352404299447623624625401954823684378451135371497444189444880664316448126980826126525973082394501628318630871712629981038639007796812788278035183055167477013477881146148220790681950470847346147958391724620032530047599452853929304937224068834796638164812004785642508079507615073944953497119709073984908627723917094594973985507317082425937719311534813149897155237777242048271611455329494465309421008834225385364040384613147602813107736293750000579547178882996319165716842529636230906274678026174751030821203038103051800907250783965102289023239463930513238135105014595319982082545474595423927690790966116939758702792447947395884496435920779215642607843466900755021119579268617980031257274812364902441757044001258085192958274245508434332530037859662210513465740418951891899386487604231941906533900900762348879242728267247576135196237481092022289486319012069293305520678256341447765296834600926124187160989386217067667021127145044763814197688735803337337949832274022182442719150868856468468064329647219044327392782810938271178310098866462335407027622687947961713093759096426032454051451604710521234777667143335079832732140055976772231718418072760947946301639010227634309549979088707804587554199509288241039409968779084907095727471685012933916318782479808640649020700405089587580523740577775547783609889600818068308535920962172249354209302015642142079088162021413454340107173292563904391151693092014919893595624817670036543888200465740679418923180104582218164208223905995874053388597037991564669505777198197489076851148138540382823564256964502652856854788323064317689439326957189216169685985095312087829474621813799120128345726445102207578527580354163244084291133387316837580016065602025164695456877751827493952760494467646686892251027540921183373647363388152111633393326416426502240606704304443969619536074505052778449312623868748011814434798987654520312117538317025400101268897180108809010214000966483023567312503063665332545947404414735936225779210141586429025479694638466936351653140980904402878907192123318405928827330472714652241091234320131749573484306581754860458051836879842476755294361345832408768213253964103555095755644401132117881363413209777013751055904426473533523011733582356291057374534583598262726675673857228044728357857048977505242223722567121277387783531809114138734891207527993963778069645561439646478675642922528831755322147490809822849749980440544192431783730131924023790565888158342877805609830304961772008080696340175716287561041026449731242386833340722158609389717032059058003115531018555108511782006704941701757834471218997585607829257420708316580004485545296878709545687369836278770216739976270867423620821840773221592211548130719374309779991362005728366335383084375808686550037400986645495258628495429066337694074334954764714650336754926296765519083601044935875120927514314986046857351058849203833420771286435149065166857050069658234296898962121671750222941513327991173378317503614467993232554344583195544024479115796835298260875672145765524759647556638274258859841594923449923355366793110637804506321882010205718981559279740927640298179642849569459935521874341640623102708041134908021930288044130507757549274943297461165103551211666203602066587248796932269931290777529836781374950815475803841586927727974413694437182676074533245756335627508934149318689038256665281523195056023276355371845659279128732007418179658719240991906375703323046153715117962790139502731554181862062046369602189441557767149744424547192122418150897906705262111194263739780377669771688127186447743032408828554631145779151694093844656439455061875916211916310315103828406628441149600502322357745772078520469694369428986655079575076614789688541314483143039627711559129015470212373957936938513900973050932084510738316554797200415660087770501223431144061032936162036365989263178114219405031777558039396453958612823054243914554095243245716128822977172134341795383682715191748465775305694221776177317034694582114954786882363539758569583445232406356698192773322318433514953918385708945165774645839614793716574784235181704726051563163040355955702619311978888561752520475563080954578632222399895065497735818256555186664320424359296034043487630976625489107337668177535220997208393722176878886662860333586199676221531289230025104289415123617901366654237316427340559340433131037538893666065422902467543540118858503561603188161537533548672608431895181968040829151661750335847555140680193776817640296865134422626590026947904593600829008242265416060500131034699899908857266264476098425049007659743064984973981048594609414096132425982672343937107472066568303711437618150050535318170428654309973242978630699926359536315380243711670566501982677532509981037098755517511978689002121703338258409185927769666574346120559611929094684821212262724206212008112314248482981313728942468659266453528329782137086020634699142770057820747026942949350224175057709593629898648049384242097915319712956008648843924440338083014371416701508684733731273868641429162733875439193957059428215624768655523687186422203978685009264396244250667516632525885136343011233855704515112771345973932275733865867217970889300409498886748413164836292324905606815470458123567561707504908665132829356889750792726002136221221663583985074900015306248505781298865379749509953736628186136867056560875248741909100030026964110706269529145453201187203515079647213881714654213724170875220976839214940885348943046562534645177139862946332874093900001527139849944549808831975402030374287701155343883008344897674325754481687661254258223879252435578594829431114234104242465466388987398513820216451676522347425635994764715130777854838591814681925123278075400174194573810778872213678127223754848542610798730223917132995231842205703776312467743732974265645699318645751243794258634168362631845334273652554943468169530762282554544732398618945915129026069559656311702594843320423487677566973018290026451669338036544293951766085580933667208338458874466982657589052791706925922686922471840333528292120603463129895415864304648451689805946764912106459406393174163293063330410813481175430366753500967122102440263921996631150710275918410111887165134208792285281817764605617397847936272463912172215071069101295502843014805492504418249392528616593415993470128761211863449460552082802493912768471500764582755207728734542624703394897973698711442116375095459793075651063411977849808248336261247593631796981664768236704900472617629578445557213704343923472332366058231254972300399903278024359237018580212146274036309769880635756347313077715634582570918303867739637042962105967021933143263973132990260902678236078221965625282906898236859368088740628273990618010363095551469964845720727191793605971036568001207406964432299312265495489476448194159551997446861242470745458476151421726250032083738258645899808954898326107701520823177026214011355019882131520203703284806804800663869687723775898812720565811714264761615192234620352217867704365567253624151265324399183330564271586195937705242136245107707655798723485484916531259440242700302023556838831026846817574627504681705698585212853521649984242090263919829211243954759515297250699431846099590726368653798160147975170945391509209014899950571091489339373792425497200421814769696828098496156315681556071843112524438537231491706554752961244161907694151076101959028659795110307027935833330993146295484091229841099611466456851698780985741243845427979920560011816068405680226328035135481548399503430282182230819134573502555279748311988828383510520733143672193647890792177515968120797564557173900399715945312469529394562376596547906059906799526868615461532403687335119732000030914588598807242072758641413402761220709309490884344889947210420419881586414142351050704092779571292588260932266884455158595442612543701628045594354628457660900903793464716158083201264296944724846211523351174882779552697147575197564460395851643752520793869675819420005831344868525696540251985613934132526652446971246937762662208620157343991716190297435451987483180914623637416838783960117571538563566534337545596622331963484977178781962568639819324298142995381894283507924987242011760207103339566496102119675052680955193262010506579094230645683078421540451905459119742183271104863460591585900175428585137123974879276786769327502508409696644152645961475434775177157113802572857139240118468288461651935129792333372211788091375424716522657759426230243981802410324366484079251388844978188637833832657455991788065831798601463643441326975643476087883505521093228316599220202126146549551010799003219986397923708421997031400561155307955782123139331271432590516016903135163536903835303024134431144889247817847747974015876918804289912542701371111459421850757851854664442905851825997582685782653400670014237292203950278708922674957862908684918258963954399425388647854092203436400588011000480457354337535666586678690524578498148312380306512266138156521841783106864056441882616684481442631521796359649718325720801757035223818416163036231361951724241465195593633010434982905943913564500293738543230318545895797470943729955370318162292296757293310271133913449746172932244598446271584791455559004857273741629557624911537768676869836056025263561984126295302131523327997201116083916893878030848988815055457373819675654412695845415505010532588502001387659787699376335771494025822752331540463714417693874238856152543527771886220977700015696892321588474624715451339302782075445321008091352235061204832803686865886351467446337159484121009968230000588340705365093425158461119992661493159933478887969956733641733283604685611178456708630769623779223501420770422553404621560360551878527029019760547325870334261945719697126619498261795601282719906732909130048524892903664655774254839499248641229026896746149840845461389567199144175237729196298172010807524861791797977170089360538095668813532433929626048343375093897515679897976817138736707506227956786291672706583445729632230297453097407340626140255935271504003057211176754792884458487577226652822276201423311525739287778583815500355400297539288896610068629943237412656608201226491693157404188075424994522372479260151894392213823056552903331427274047146492553272297571937029906833432602939763887645667506477223530898132047186578437135305074281157790144265307068933596300727535297605472694394303388820279821021426414254546957243035829187030154944618596269444190309459047995740663562705381631974639088978747744684684364970928541786457166959109804829912740410317950374026647423495566818421981074880450577649851418230948866190795789221611545827644485600371114218270869977085497159032750640447185812614682395855673099557976634557074631435219438271662422236132982522943885602235242742047905295797544036616379796054189182780127913471788037787774095539993267844244395988345856553016170618723308959429738215379439364946058371270061584361898904101561285319827649104794209272494792422951320471205470230039038285153702181011655620978802501546423694893583917952803972771959087904898714259375525770184681439542121781718706840726258605101245924728990350638870380145305336374430808150756662213783501966623884267229045529315749667996017509655697175533054268505993976770178253478748558021386264520441137813914254230459228331298136706503043327747414453111695242859623112419452521931851544558070335158893919290530580239733414313995463794106817743259640888503639113854276327304709857813738685026814431595398982469888814137283384819797349192593086038279328706118127029157901578822394404556783535689025112277460006669449413871746964155795708983585400324679318974835494096596609978982156321559845283548863963561498575779882364073148288770448126193722200609946758289681008146578843036667366476243698206380239365088920792324885025253185804195412561569425140455260110545012366580876515467282640143786171843222521931287374958023344392514789498260781470968655658558014493551118524289479458315964543570573137213878230089470872725230038083162884947024986252835929690491870018088169248125203449217241685643798329851505724617951100311152116455844347724416376244345436279486168575036605999832592074050284772144393860859595491867290279314650861792501522451630315411717201372514244180799390589390225976475767766581700533576683794935522675608997217092002356560015945032851349923070225151002805377918508854193610784115039720656492847006308342738586745520120665439759496974808579901899580338789012392944007754349447450134765698160713577247755877284865695673135803805020566624186137859509395303293246676454923683248462759305565653325386341346710308896356697721823572409870214663672858060346020446376652912081141903663707651775283515349496075783030653161801817264497772797223875081049317695659445846756604709428106389972449705484629033278308632930547959178296855365304196259490224774101352051987840997596077381264114178416062004442411545142863787130382673852936805924063733942328456010707225983869044958627587286162247603129268332495377463029728591020509124245399962044412728595842884330584365950313753790763100749965225828295561763556687139892324147913536890958363927279602184743399810375057976306035150126735159735491430194932651619970550923291362706680132092079682907671777717178108687235681253287537497189470465416928920552726412158914948295511278132593593040116845202173812140185038475949752300065130067909016033033556998235104525193600323991111992349143100352221875029405168924730185229651122762439136077359684014493265247595576046403289556629325754915845176415997773248601180399011230093464610539091365938414524501026114205880901707665700538465770829084525862903253459593431330850914277094250566823011386218763755097359371599058242391641364935165495281408088544129137152260234378845358067039841986339128394481772134989533283203597902637728444345631704080728826200170579784837992666519244023765456774149768344391300347095908313204164550611416455093494612448636871957921458179390256582073875347822502566711513820579510466278717719591880029533941995946513061354105321040852245610119502087895884397157569253681513944198491354582817920791095257798676537874026413004844896003067080857365619293810431001922640338503157251273041876468391178071117809326595484166482022811694277140724801622691740665897450236634372241585055227250331040466413216384104858653254815334933273461897559635473044013023847091504079645678155797778896491792738502530356957399422010066212867071261246863652199361053009230659205310533808678549676664172674360282113250120651687899331518149349891750684999155121323797985950573467493984387880532920436484397671909253420860926054943786306948617908515936844923163669006551734345411090874374555519375818292648711273255472087100782584674184776583176322777477230861967298683764634537670940963200329425161747885839897647811221206181121107127513159266717990241001922253901999611463741666816384915795104499827592129179142167278938189606332764430463935684620408095837961853903431477830718297883038402150577356453905914027007413993587034882193039309400006186848809847629749814585429095957543716668371495133905559176261045571515084977038793875664183630267307766610290491500127895525336367957621317058390594360791517995747198005536751880783579763663090950514647766760661073123000327670413386066971899940251342251393747660454145398140891369385932249244681086140960258363299372812324128588035189537371124450630836014352559099345242877586815504837126601895870380471726184590300854213924499533750964957416113678689414248530464609241689170848444389513097652724901318914813388555926959063745043257934462344062536082754375340511386044483549519793560594347588874381996296879823187625504507468857365703985129268302787777444959953090272608681769722425122324824229406111250660387358906402546706631021315070980446920856801889304366696608344740090900522380150747320555431494218683708644994843292615989908654167626689857277728877154509499491983108936050758256354852973847866908795724001868543937799457744363076293398569067518286568608583641052869886752518501058766322377760364801109236702900265314362453568570551289878524261339649712266076970417718009850514302737160218885795519403003043592911826162299883563098613428612406624233478994229539850322259963444835678352904443185811882441933874737578821084035919691003018565122719390068477267264534163595918551337181522793040311243367009795674367930478517674906735597589972736226211305484662683803145835914464173569537139804639044740705727562058964531209696099763135884800947252129137655944559777692349643303261506069272071622668349921981197111663151296529585900767366434377807531933181415850287488790850947729992526460469299077144091739605237446258652689509385868521102264223602470660530336975430722291093708306099176718008110066068998543624665446442551969000953397436862323085556515964275716616142500847566221736849851260345575769206015080588065572971859465732744957830785585116276179481027010922402927234297385619009727618126870327194942763394887086520276621806494199567903049142802674152767221349991870666451132574278889384387621853866052165242932338807366447803951903445227728885473751303873173401589353794455008071359893299747708011242007555990388992730118071306709621844495675197751467761238988254357762650987239595399185676367826630605720326138284650734590591974284879443224536537024851832514702381934107951980311765164957584353105198819144314686761023798085880882245978604090154937695156451632415297977049440240674915949026738950340073693991232107709195843032577223749208764114791326033552952374561277789973655339846527775344339671197802641228637660086269360670604843907638983224862948959430258333064595829015409252187528976082873164034989224194066720156043829868861084860169810476221413922938716652217971284882444495639953003757243129618953525131330357879937801315391472982180234031719873356637167932514195864224704264402529888547110567285377304943819946588212514305568910535426726113921959380957055218989790612295629399840873962363375147865754711953789513518576611698789309153263389865901479655249876000991266502990073806783473232856373279759820541658833461618859475251301075882997645927716023975458119308769361060164674638034835418537379503255844862017880571759948479723628066590949748295374421512946470066016021231732308942467890393851271346377379437640692923956994388970871861375228911828650876312141374310618680770131072089817788063255885407827792547446265568301984354195782346773197996494372655683558328692474934430175681825992320363264510472711553974369999483917311944321811237844170800866933996195621578758999255369532145794348702743025117071667475077964591899255509391929042537205657448340208520867213022296553980264117796861068329406093603181272177783600643496399858483777117365948497303380501452842693318155501339925729588618236287517678872547948396600434981323744228364538860559940094862330899662766597338068558478382907313456316146469521447078143342168534848027501620824054121379847891378728391032541379893349206119406774250818978947648650089344176723048953602311705559766184470733848795881137000055386994698552685219556631694737132296735372536838592567430758574992925018060643109011968393725872150406568097559054321056553680447365885187620485433943105502886065734942846206034393903617458506233833024829056867441739775477334824590921370725785812662669985818953126098661882874376411818842456970221319255019561047598938417424090480094307612949363193993841218663137557683728113195464451756153492470864871115656921754401306029437389201466393793488923722512442471238373383893509445489195460956239146000813505224353412328904080181207476460616932463044302550227841783211438584666763021964932398025553564037562987942818693227124514139097235698418933538015579403849975384533969551659361251575273207690228713988866071902833720815718288921786420739922376371252555570745370999261482882314572828222827959814417533580715063719158288947566171174541162634989935162677593320215525609654975455229724652966525153724804104912096700986015660483524148585790524543846400409885842701969209006555284581062443928731222468308324439143656651787628545011413694202835828836414330812078865245700568553686875675262851464551754544437754548223498812898981810329789528915608970674952238711625703382982234380955327100434756664318442359525720572097489471141274542251329904587200739516113803889608279174504551878778794827825379516993445734012621212251071309473221089753413118898139122490373230852805189802519404352699849821883165135452590238074909441258888021896264373891800725248797169690094892286619329143390495188222758375235027532660713477289272040020731534123065476190965190809066909151002797573661551423762059499267639348920354799872564775786828784541715842074523299523550844385262246457067786940031767007670349814150476590520392623264798946753416295582151921212421085040094836663978080851061379989434351993296355785821331250222401301688399456951495493311342330672643075311203943376271139657299692736471194416622833739193886045179752220212244039300022608048566258627129019431090087762276865865126488927998544294266201961128316200787701159170852240072836280302919033249122639064762230405166770270695203689565932739720495129657825313348288718753818264446988196361825381895040785045085713971419848059892901967773396262533904680106818442711724851366065689319233486222863768469461624162351603618500807884479066292649869360750004473135328360421987987757548479402448869363299573502441091156046624525683596555455181044880332485068474302678631334819847623584891708062052230328214098940511173239502006601261096746509105229728205016976474116842864871540080218068808549405766902233284621139455325822104613900437845429851004084248366373242261932567902341988392566544313162171458839590834281879561186898251649802768447081721043148410372208421257890323578852178384065400678040528612889329173761038315490258484902226873848066769009605140832173440365669525424294098727852829455846829184946689929447758711697251167066661729415702797079813121701412226019271370098231938019700716810190508965828946584835189686082246170523291861077509253228086873787282919657537262299551849250478317546766622018553431068361779299150546671503105147501534943577640296305249713454986083459479480822662637070644663471205770324794570454900957928820831240222155264941251475264120723323037655217426555222728118584699104257961928466068012153680079307201589714495314160752179997705256017585989791633008079065816215224301388882074241750139484717691721888752282648222081605384790327046214032233764693045859971348694177203535707173021676602810286505520839770722663654898976274096446278170654775489414513835166332652341148298257683766655902899318175844021896470800321982755862040333382724007923329881152302344015763491660433757258694652606815487455825269282461809188824649278156474132993410421543796661821922339182594519983440307834632333703966885201288500721315854666205521879807242760204062455693590532688299776590027588439079094155213517439788627889210750204527868913163449088102546190377885982636776147727457116915667301973629009148215278239637319810057662198062261011138096560576835594210169252454070579409832180822243023936448462562288294873793529993866680019086385948089901382312284737737975625610173130400121585009533567732436679147761827672778486605698974822206342431702882812753071353061885145384319461053537255987754458305923265454783058231949800963384271584930299956573845168178090626113020756945189891602176047514964061678282677767148414261612365101552487136485296155648349754533703613452359689591436254131136446288445925084782370404840325153373047433791533691791759148481645616046280905524150422340295383194147305230986713809913806500614748984011580415843301235617264394367766648031728329489112104717544174859184335172155881374826246616021212927108207405426730283421925831079963220464186752085564647446892507022807889801409103171285721476871343918526512513177069874975928077962390526239503407159301700894493085204062229421977572782040981611816333727119701361755606801793495530092152451683468779033350483734354564589869096290487340148358561153640225342644385543130976006076635949947349772625763077572863621598223382148060199662197931243574115928411501097017883375118268977597835070813431029892833875201925803740412554701071817834100918637989404752174572504952935544826304604832523447133972238965444429919674711725301424564911737342819950302493523768468701081870763346757177113728787821284820037726644483289807730962416166943350886225954722478492970790187632392402665564659237389244457555122689246030815818458046041366257883162788056166997369804234340854561453295545194857259033382392937969608114771165522935036509563575119459383158414246329124271588764195262777904483573865176696104953910738659581177380540045572872644712657933819218776649715098025717521295339741435170204555479356525360774551609199816845684335186985636931579223314252275574208019697053080191733513438401563573441440532868333621970931266555833283611077395257933341909320098864307679931821058244635154083081960822192710832919613815146861243530294414578518823189305619411900790693876199408991961585805920832188724547431718283218850113068978208296235008185438152529858255992998141329559374835392852062724278827292182179409568635240663189811715984325684331998278035273288384800717266002288509879240500140781548615311304171367097961108879553187465956639244033906151902414465341456752112570671040700414719674437652766382931763754667497950978054321822397971766267204157808578990313184648319712415575588672137092918171647350273969200224311497759633197373138780995685677120362116759502373155477723265616294929396394249965954145427193954478085517469774514738209960100165941380040358191467348514131775041388560229822561767117465870843355664386969527365285612520360577022406989510450508714027130612088969387861958035448432495378547735993382148415111112751209641786569303570382402319233739514913450602891328342516997516248753200855836567969255617640629884592011224087555990020629462548864102968580266246479728091425233204684938540133803579884588271996285647528966190676739103697497922312662682513371670484291135868546186971159367569514615013612683088929465902068365480375476915319407298989234067913158963145338932441103958622796941986159404475321172336431628207513428386877382993421413315330726930930143850642858872290053650663884217105770972144922109914750718513553604085494461971897816820810576060232920726045529419375179003026061963006342564548769624869344452744701191183853153098191937859442204330133919390126287072123712202535924084074354524131077911394631305031453697706012476097975585806558095717504636817231556368662379854303221009792122668973239623924547696052257174939640761441163807666069862108536267477671368727892036753310892765084873725585137732199120123189103223508042594717919614126542745757790123808981942622094461170759643159110190220146608743287866273209127052902206512524126173029165145738031305552406755218285282900432481947363289109555058315343778326499931354730106708726737599741524846296774475625884950411841735502341084046763096895039266565675268363685576901870990829862967473351730352307447747975158878850402426531350752214459269098430069567034506557361875325205377269106049823066622691517048663758463032619391700472258675748326781836756972244005200022050500682968652707754749302532872933013942664902732438958659463410760705032825439845704689603781193768397652700805085250469665984349938960326111968198158733340971300017070741536723228811737500640844238567983042572036881568853379786235465611294012743698501000580930094141819865275747550200338590412658503555367897523541683667121103006609672317922207842126679178851261518354809532835789212108215705719334482668212251570213886796673610757297210351941334790477869887215288500525359569957083419060541959184168446792408939719894697471985325117643789962211777145353593671398571734721090610659272925786636803964570814742707127214474168915479239976599849795911913254457599974289728713698569146982158585067575212078981263975489857596735933768522791101077662893098729977402404947085830782851585169721067435350009673615764661158811983968075525562225751033978422661767029303947102898462751629319253695700290109055941465073394546776403508495038291120818359428289529444024168085193002250610293106720346373466270712533847763535238532770407328676587107364518550417465880942937867025215482532786499199440075935743926802707766000083263146386358420980221695388349874338148295705608050762840037718997419378321872425926367438542064270621204983465955258151294754625108499107470342494245830947288874237321050731947243755266046922112607715494159932836109888131383062506706516516811955032820273374691751230937884846006524958734091197463766615457424680275423280666936772195080726723356555329335300410970822645274669328116044545124799712860517416908698192199002448107886158032881640459641723108817083848755946944332428355282126570796897034535082126272493222548526684618706250383102233867342673406360781561801738295305499546189049554398056371229519451002243876436479943301093969367758732075716905959844441882067560259580017373697005053070563417195703821786415576247011633233535134882291222826063569482657867966469740343166567727990149582281810526732657464919606215951766301712284981993197600413968798803656078998903808755702140811030728966004380828607845572803082343200482238600294977219713538930518333436806087524881315104013997635667156437186063151798993703251696557901213968919325481640788944286788582379086450048065583759258292969761114647368417268104466865192083047311848543800810704208786198768213195890461299796796449048307321746394275813759353099596685156316411950500813041684898135223731396980045197894682743591064571570893547284147543440127605404955883858273060205694461276910884955629106251595960166279921593295527115126354095874930343862621352189514495766041055270094135424499258906643324333519036136242405484647723971999271686725478127781030656749580297362286074623550078821121283632458003736209046064719154138689973119956921511562327842530043229874784310684373952132984758650240661014676974760750654669644235520400693973414860582355407175164072815746514774677532561904015991408544671389242059999118546354367356918946165236239143718307613622852486707406894668321368879561858535801420712383045309000676761610537233316180066171160211563934911991919074594443782951376915456607375749353314058345801010423380660567139806449328308818023721611038836699194255538773856137930141327182819061700185629096629114326683983248182879497271985372985452315786080828134193705481902691024094757198114403272741396927370938962715359420629832429386150411355374819128018299326101486771174608915957754783898537632894778300289845602647239686256213961220487502357696144630163884330382754481274102360970647270658665005770877645854731825918558725399523714371221132671455927509405351403241512273775952876268977310343721634338231643525913477549375723692144095166081566114658712677368487177662447934140755730260018975319815742097701832428828770917535543510756852934713542435589321855027483233802424620794074787435951262192513467552069311230581210327467313151159299791495390685406497386448555491886772571483906630763323067149878972567764786276778076561830461907661640994069207304847624244851577388881967083018820245058360072329033309271665922719848918999456177959675200591000680367804834662079971264695955502218082483825623859836166214279724072185470207263191441152045195544634461507490450047168137476433407998403942364401588710580881873667208477310571304356671241788385417979347214421922581720673655805820142451622748474982214067983146614556953319450489991360068624339395059264953064183498080380616452628200861020020174803829842761412853451978863289893341230591516420502533994065720540690039141953286691048946782571582284462655434870444364080862764808796871443370835610422482539314435739786548058312156400596032091976412443820480221737136716358109400154101894462843356630569478806518551689405579842863601941545655567931924543241823518752572566918318248604381653594325137658607333043289298887118034224556664092698461974897928871173502289912026598783755377335914851026672221325642310552285267418563530883840925569893422637969134979733075096307445808335015224496185119387404436295380735417020402912216535510827315790823935702077277201320637454240826640473935393031137394056157162965634107542979983563366276956325654420126648244136892661284298767294720769640823580769646937537969901307854938032988223716030052274149054412771181244821173788161724623459392217027725447104726074489318179261219226262871494649606635919029823514966387042742080282939905474959929352719832052629993429454288593855776278379720745925989667632665267798014849630923949193266903047092845445225509069954750086317312864733434717082895310910636790537001226474280980354293785603471201138574351412389489157601680571468060965204779774490677280452623094835054701436398547860052457935713069530322803458688805733517752527778724162953705877301659992742426833116876383905676635238227869240582186003888553915736437455342853466003173657690506754983813069124495635754805305546517194189969071407051704895859500287467452466090294539394124379693961787565524937562814495566698355985717614646235477548045004030905261468006548795065418925889242841081175821296739596126121611670377586251959066843963806639513228851968191094634867461281962371788573104333743351897881602888771733150482423114715377602390365162755341547109164182883258567080730858951888683745007526030146709904505014069057000882076487210001146492775179448433780288569880599587682713629839660133418866931259891685310936993927197912749690886896334784632481091024604738673368866714399182968206483065203639516123740228907127324594062309156366344907005009345523637842525825560574228023330269224303921092828078648203682543683308736937554512002612926248994354306469563150626939130023377949609570600191749966388330817631495706746422519771332293698694870278263233989525597848121141297036379681746534905032502834451107977558136715225829479743662736328706971039166198168033939219799358569601463253472111854010637382266076434738643310297053343765550163847455182599174105860824086187928600707674648323607158654174639511894943636637163046133226640743149125781517690915016532647337807965565359541044495455350193961205035605539280728490277206105030868344144009458077468907402854785067472135254207296548803210746287532375364450454887760608788769774167843626759554450085485997203973290880957030632901705714720498618791755018386539312597319467310279374931269998816400881635168026597928574310784926673830969917650676499331508879277090687503583487155397464986380513336347671325330439746111226520755030309171177345851029796206860356413605088766372215454430785797140975385211088751425919749044055632888184215255808958397155776336984185230509372862538009666639489891468892349953951679475201722668307527576969430515121999512930328032234338905871946603243897212681555181733090432050889275032208024381567030615513680787225135291312148494881646746969106284925217636240301730489568631307505717213205590745849085869433273677531499830229693078831292446397544430606324348305073213186780475255008868779733634098490071351799160102987086601417307401829689213253929860367816744126444501678040945147026074150844449424112486221326403570377491226899591415910400683130585736524287091989139331158078981358602505165036635681397113025323766910004717459663825351385477173949197459633719191421550642292016419398542298583044345916341472362907933030451103252393431850405205741528220488276650783027871830768334696276996899669243692036289451565146462986919581419593341004768639509445394731809621114578431551780669811970111850216925471595417317591453253916213299748628549008603878088267371620141275720539202341718271377677792526481478716122070602453613393254800732251038344069217868641170012354344411335844996072158990721539157256577648850102859930047844504172584582552178438279978944448302851449117804560273168675189554679565642150642955559346127414202762284220167391098835038192902761707526510256146176465679058590418642217380811739492892165842096760249151335200814848739867755373517287101476745652448451026010719011160390910730176715367508499911294833641256713744274493620548397491118461032243722158047973800663141711636401566818361560769797300386090719065844948272237781015644185520132090936057904801192341655501981292328886262964337475473124972075646178381472531205954935746512491141543967651733609054302903931819172962706619617435311403346805530272383176108082358531134562645312530843636663729503071619475464677209330412692820074581354650954037907672603060596861778772042891944571681454500774151816925318426723902504305002866895247264683236511653072414459845325300263046590918566836888835510952491460780315627312414562189205361230900308893065981374464153989896610654354277898579375315836548659977345400350132613736663550108858609491837437466809879105414894355661377101349613146974561748527935767508871246534723447650773717571522414655199661105712722632963527381274975395181403226558256680735725976100841084251168634569572257583133678749933450453595671985495342837390160343942228253867727248405204140402614778702494953216702699835977946147135383715344595436765117977879122579670781761068122838240187461216197620388429702490983739551001046720289109521549539222130140348883689367959118037622773461765915691183157111245146572605795805708511004200049947333045634931616443620864099968677173949115765822587334668607207001941729694871666342685103057732515064390258829648017926504640137918553856491446743006366385070954761261475710896478341181610915817646739851522722020831626233066766015195989553349336595327705101196689341966303494117177558834979145352660834889495068567825495717620239356173722182080774275269736610656541009309701007445330927302886878630718289810208430693535141915545388074463752252453011885619667501690791563949645228397318269433248708436513798546245750011798891982842272753292481365833983328869115650156209275634362022478071693297529950730117352844188018409762522470189148191475851472427256275020806451823426140521986349638415923149640495347949030826887370294658300697431226047446220938091572550158432168949267325130249889633428548998915443307770078435040807767315926848658299910500169969872207415403935764131760844138036870841723320982183402057358160910000535154475183758968991174503493731581001060389351449369055233659319251458160673286730834853902793082967598435383637542420746005427360489589665359775822353597664863950119546444039698788084174847892958284317492115928366189298238419323875158843007099565326308213862372343970739120449787666412759065131993511631954184410720355473925040482760446612611517296269567371462437222026571599831140057316915032286453200405041979022095870350846108491935343012973010102961619241449192085481426194833258275191934851759653268628172395163415121947969909404322606590842150314358615425805386503183798376077926953769483917793191686150377809155291100146370572711206332217095333126015765110592505752096501521923260252833839358876652990735484312538148006620329986690589073588856233038927978401723873235957653153190177653524339952343822746373750880877202040337328600762668407516560702239221949806923988134542295128297329141392333924755213002278401734813690905814525873243833767865517032285539969701943674087014815978288115397810190766868181510421263739075460923691548458720534863384659580995299494635258594238222709215281115599185551046706665183101257486206887282605209886802453887034863481489885109150532340315256614367988186260313455497879220688512672770492186444437094008315805476501271506354718221373717774445645991996465805738716602540640808575080053769596766766360798843087054997657431327385743892287440718351783254914710075855825339183383118822152288765119213006261792187158925387636771465224801093736996974157238932214682207764845958279519814833963786624442890014299110985704832302479786791624875150062220661953332804422009116922350392879987055251300613639050552872119459969668366367209729546847390196735507018663208595031641797137905559322102128858650871924651868035621618366023990945745163902858212030933535943475949655867686343010400798900641071436017245586687262202384670330909370980706068047586220544970643864769818049031322266501669294655764414373283198257405696318624049092955653055203816348122684294922568337968843939967890442337845213981947682185565409069914925093803177772663332126817488398482688947258783279907656839219456861363659461457539809229708069087972834928833105353521981629951731810416823822421434451769819202620526713850231302959175918620685897471375716588856965676206928914312880287276475724913318494264366343755990246819963570717657753050399683163095720760241106264330332803815250810839777844282358668805260780262359884436488353630409403949368416333320411865731978047627844276484199632002839217215605603521070421861942820962002913212800752499688216332973614618120395504772714084016522223190775920667658241533799439547704327756017208790009670559545979209242706297204021165613665693129109867953283731071277985417025605655968229920039129671236423593963948649355198336338432531809841342923114467351464690790039118491891529485104166186065424469615154216914654545431807666815170331415694027078874601359620409018412662905881612444178091755330227382062997932717955952336665847407184725262348165991654442869726514060812360965001322460248330309981441445300771651341865402562884737884888969517958724152872790524959235036514392902468978950649774587440300460315714860311195437275941625439759718564897514745916352785693575353325363672746744514209229679088421762802346037675950935404385982785989516486695869820451082226173784730198536164372654459582293753252975661698689724392781424117675547198967362266825965093444416008308954005506797522226952787593782933002173868958992989422641791532222671893790782222224371166256757248536631545725464067058671145880043242124997839961979595649104373589648027208095244075832363591731941177332784041881064842280841815705880158439312588799024005437266255608957171664281494258252300279067269306874295491719102265541014821848573711826338911620701621982723700147764009253727916311427885735266051199576531017261654217830836062482076298430304475668869198667717646166515357095522244066433728208455178007116585205103653072794484024956181763562428794670432172964738271892301455787862587101419050374445564000617440806627581075148819613671181802337194775786946220106910940598034545134202463263512388338788456014729374387578375101156122771166017594358333266720275429546634921648263580459837058121338491727370624834630903811640358846574834233473787273800109297670301283360553686192665018204197313052192684072407741033764343434858092056734496184702490746819399437590918958820783680787429340274882172353923320330046763460932391882663284318724155405850780248639563299101717507773302470060339166770386027542420493947182283439326172040133349635936765705127458502847946799834762288702956618194686500115958984621868779273643679999311072961914990292885392570587431502075060631792106900326536829374941109651462891740328714644504493253628045166193986420637594719194970270321408454326288851842454319802768950252674039248218427379138024311009287703124334998318400022633152458730130369073580203200591992778038010897060525992718338524321035771922808760927502101156112288602321547638323557487983887353885179990700935050970427812263907509872222042902928273914468465164387528803224998348265289945183529460345374982946465049429163868325684346381084832032573920614695129719679692689188002312761159503002346408182426021738963879736301599028031749979972579737504751557048196289478935737752619595476601672619708344929010754991307548616657112779924637958227705773079810321749972519563770970716856208550363892599114805961898005758811676330069050259871417642120360368032462148480985050762475398650763619907474557421622025566192073359501280464442555219256128360500546866999680636178419829209983006230619437811780661944232959842024340202472142033674122684484294914847591563480389755034132347386176983920088663012321354852950089339695253819048340014188838087581035683952698775003826199190381357482309082702910715509338946115913242091796050137630528535942986326874509453516591605627072562351818617703211776904735079856940104490459283378713525402914569827628425744502584145361849225655808442173643311060112610140888786921783391515150166510752942489766123915892543013553501883618027534862517657012460119953094980580652488796454605735436614502484378714687433107348922519303958848709431631302425895835303841948190803581393143011088968311664190096480058291604989784810537837398968383842657299898059120844290752366719506513345352871787904858158452741565306552844140291948991477337579611082522102600691904356120959343325305990001172926539699122027948179124439073108316225218727048721343548624420754704803947737465825385016097669915627272720034589240722356462748664043784384247881121616077567631095775840662878119924084990299301317920093788281181139053951122556379815634487822690844016336588422807293421948514832459725285208899697661679161621424180874341404847562687816269537211030404523343898815607222256510438528852413220431494976859857816903025694823781605596189704147181028815587268737843391022409947335320119703769091339468077363521362990007601132159085864438983566919335856951643025378384061865808117555223123136335243418231341796342138042577163421418213038683721007894853356419843211415215677105171005225887219495513976778377036826254804880576752023367278286105670238849296647672838571231195640827296646712461915604306396571021715681256946355694754606533606712731474423103452920653985485158764243206497906935388661753781933683813177402459126258801641426576482921394931646997373856273797850764281013069142584025048662806903599733785168586661940351477477440072540750386963650860037919911808677899023782093964952840763700283249956544568661563570378463331256367467417175372681148314793378201581739423781022638661346157782755335659815236984484307556971343293944463151642445339487360099017512738842412271565166302203785718382961927074091039045263784415799076904197678867952872381614625749946289224184936220738490315383067757567808182649328762916207798125692120018314932173759189729025437559862229287973436845375443906097608619371765566021121040383418224436256316549737398627036418359080641626575629188623095548247045799359107096919348189445345411445949303469220637194636257649398856210697757345200752965115244326477276266466348225210716839877767651542198914146905453265730905624005717230449862027799084207475949360820421991219650360590472293612100776082118824712585416389297797526200707253959564089278412386813485347976007950400514536605501749431472103424830058774804653278368468250907049349031661288605387026214565103203846977645910897137505014255141075542082588309938516954429056018350691953656455900936803735531270157733057119033801685110011788269057090325118510296702503808579501498548827163905050417392462673449866668615836242878797791861867907099561150763729814461674162319158127512426257023795850049297241691269467560826280842658006709468166567180407855487448500182957992948058362163638259607816097936826265446377148066829800847641141405170493554988808240645040361342481185727021913976580601725320728226449136597054229496301504005691005439812962052402625296901194216799116137477859534197484946519990571167903103605887389974979033268513531257440338960328113047644828778986956558410011822067237455700102611785524487510718454209648055786055604628958740936330617686627522402793300547215893284423698750237657135968063560772711242731156445230926046868772031581622784221807070169851390606001110891925764912240683681854736417373228771170993083168324309403916826419512372004367523156737260124348858223086068016243627833097042334439711574706942053801015413161645402810826252233169936789079521811810011010486051389942021169177229013760474385955554641876136687368724917053506922244637796422184720613690375729493211519842591946552976297107185675677024013020163565062631647837276961747244812932623541903090852530477119983891435065012624191155943833061380855591841536678660449496425397435365725984811966855006515897316212076734344579791068986481036735194462150688901829696409172515987872419174373919608484328256451620223459633778389037449506772984535070009611256898167613745462145039076657809640860212503479026605282417164035515504199589671192682540495417092842734422100535009137812736110511037844982579500555272864597279411373310979355960176790677034206906411047977579165552124126131297891317399802091980592709289408405369272481707540802262998509938846572320550485834775202087686097318184476635714291919569538577259349596737934224587001381290470913284219128356454552706106223015817986711318447642056554093788991700739602675238006282282551151129388274546803307161618924637937767086937423316470760635999520386568320144987327749179362975173762232118964492663886334330958478194676964057276482033919462721268336628111988086090800632186979896918020284437757972107082264627764320765783715203727351159640678527046207205461080758217250688722470923747923709019634628803653007790647765705797560804442316332289450394954546527589626846234093510331663954050718998387988316181318518118504639950179705652096197300332558331055113259307280403939247553555681913580501666553224699843919846373204996509311110106205708698274602424823393999286469575340681258130642515074496620378626135962952320196653451869660072746335315163085716244011747397800818329815708518063095839320350699621970700114419381891485631283764641535419440153928299177733167140182560877041700141386221136160144593553738946186375244167508832519916247772669178372626045557442527183038772012823475876614430170747018138419418831547289080498280448200753632755382382773026111801274623438666146547793926762810998245231503052767671396085065775375505573457138804629231204326691707722153720321180689475744580851464693887679142393456470195131463959414620580312609505346834005681882889881287164451128345175614544498284562787348630491522828229700656411066520137036395721204768342745647272080300030596316640736504560044540877629609504088322467007991656281956312326832037075134404316040010536799608109833155407335045984134338161823587297035736415709770540431585465665526452687039067022977122959788257153061294203721386887634430686653284162059903670903635701749993989171677369342370722551993805900530104913457306939757614033124367818649381887898879819481750332842153299450009031237089105709650310446134593653012068723486842781638096296615060200174025076641888214370057603443441282017402570729918480653997905187274527200611931009742581943973251006028341978864679533049968885971157888091487214771008516354297811983980660509916765770671024534804570514367372501485837412828848082697938540552690676550701890799968903794357119169482413461523013767823894088827479213397068346429806082518110254142074681633955230379696002640494594402714677959288586536825769883287701359338623096975172397543260586146373071277531233012565634004843155819011892116931497543249012825803927799859363377464333730786380830285172647082074974606775461478839578200600349207820213961164193433482396602041274032932635386643431900691343121811114458970860472097841154675146803781816193819309706655717552530162258996021669316510325969512292833909161139853638679914633396717343832310053540498077882392786334147252903388543686198717981321442791195421783095043685110387505787349163960538190362531343057792679927846518470757258855120965381931933797248029162087157642828453413440336802558743001248238016686913030683505289123824018065430709121729186569737828656664501166549819033105074812347751575715726892229758083951344897346457081646277082800250142512363545872320843185084990690918180756664401119894553870911556405925968454321282764688137271950097899575990387420548568252694695229189494200123683972163962272528450548474979110207063342000391417273261509081281799327858528524088363353639993206936256967422943730488114029052221027987153419920691033025043472185029482698581639381267985637465958850427565203628246142611253922750508597144935093916454140065715915933222403026642610233210857423367346937504963764747274924070071500950256625471746007455206156841988105891574873010744678325786939102539322783455906616460832741681653644157262617628648188187197948907732337140267026414585064696348913846555493767154050815832742839524778975206967558930780669302524131037321661523605745729190739423526628666040400252445220396645915255509016359501591676953319213914288298644612154346800978839022241514272184602005508108204419409658611555125650259758742552675789553761606597828905951383093254598472935976334390965595069099052824708968712544238521852769098736638400622724690153759847370617970984928863008017555929728263645725017796540418898814451383016057463592066923055317147298804609538394767946304176362011803380167125569245836656400681699242484051969078408347990107214019060281022267337557024383975354559852863130683643313767938234712448696120717502920357594156170187690633244209345399217793742781311926777053248972170974254987465968521531696219346473656746712575312829130161706404576772973398858380886783626310890355520102346285002703491740269575720966863160890397416322080434004645916766610463476327888497529616282714782464145308450029202537858595858012816727706732785458890987024785816432643091822200098340730100728108253639146133745440719929359766147900698258196818855161729716285829417457066865664589202416216437492406901845521169158502969707835348989421840254805206521072763243415210865011275210628492731996357090382223432642046819858500145598216485850557760770808394098640204431166922932855573907445127574475895464821736481629878214350507987714118394710552644830409970220358091702769345700001542522051524226215262478441472791665516091328834587532559928748992650379957058680748427388799228448458499219246219150561768311957425264716625915037478366828497133639414254792177921451524736720257103551223869678674045071787930370873303242396526500097087018992061433608223486941504671231760723087259346345189485303116616428111000838523669954238205023739592420342923335311168626659975485001761065603857216013082802487194099372107092161877131900238356757310467659987867156289977370511519417304834037540492672366488576489827222421171125076546121657457262697483883596741819710028855301421573447306601945232385718151742200664237622960214802370936592436810040711704683051240415668217671878370386761830318271178402829848360769028321289496132416902300185143289602744567013409713658203376136610237977480736502677752193291713997967781432265098845315426083806069369960047986210188412484855699643295322493613289869093152368835863567105722915973275550875951088098183809171207159520375039274036977245169285852609663035783479488055642062078279814409381025496394124357041191648104227595843528991974524655447876644880262091427451365880564387931253855287347036456912719575437214907770073238703913620066285218327093023562758788255783834077533006151400549848621249114907352912222284192009359594531556468427575088239596200036422802362840581649573737667723559641747591969363670109498835865304374991794305873384609602697519941893064086781595175374371491992628197009015181224265109774737795585543687168886886806432943869202602031436029828328341112513815238847356567010542528408245538937861195474931487622048315676599885742149312541568215985660990773809699190674425416360341075734481475247621816742213102013651093103529881238422625688698175192985239945401145865705739304946108230127532139216525488649118074804457148280299528371437651595608675015871318308060785862992451469324225999731325947757194637805144497065190897730635516528333553497814309375045502258295450858250855678926472301994567758764089046897917167128340283958281147508902576818265378762209451921474725481312668056376481310066791237470267140067826421373557814753134507906778103085262624598208043671386149371537311117478403189504003272250838018534635121587393263621602868475119117249733647744218688289270599888419558426430216141393820628356749234703281821949290806457388184160594333676706252888180249233399359034443612718885800897675758708713259867133374737699327758005715828155464046492404999721866321402603680929214287695796978346822512010827876043130773554597782635733176150014010615595275024014622097766590589039017254967446157758578955576616392628689437553469084498738500960745223924713584961444335377146815640684037425679485853177214866899348578354257014263274099510506980432478598218247504632408419243899469073138272975973305335954501961200288354999080280573506011091394896486487642779802423414757556700239968133591720398436920386344394823810415956493570738751235389193502720945206748886548949966674557243604480668339844660712994202479408225605026137302013926817812751334362111839780145515465674088680955827987286030025576521748170118417864137813643922967380647639806788764638093722808968414644690220161614079189895869640653509626022873428189682067778866776542163631045270904810745797040769270939908986968368106328011968494047357333611502187489661056116198383593342282646794647881495266561453307794038857987660307200598420653720704550572444747845273499245775735286067896313563680234801041001010269879696758718460392937455157171762637685482281247318655661113705513856274714938070442816713429335171269271659247594605728960496864492197381169430377966297790163578585405936178001438509052277331313529175248892309309848965181034307327703076777183540049343409499322048571944109397297914337326163016108099484366152541485678805562114362250316241325523657495837777998025433036232870379999348994820794328916739117095510263557542921032490778203417511750108945673726151907945752465450398364447677730727665169153072181146341882374508766765584704061212268971223617783125292943656590435199914879606593121651028152506885457199972833207054154319999400141381940384635366970362651935059584270702258276495282653899559611547468100315549687681725206787409318572384416346497961782932822743079129933917701849313008988567295498562151322525403692256252830316479339531713281544085135241183902973130864908810726724265903556754351563446388816599261626896454987150746748245904258114059808065022173151495197730304106930868543514364183986855416300647750931608855469853837756927046592624586953833168183800811938586242211434194094281077764443274956956726969170590824438122014103754605010584035987386241883189383223439890758502477730456838657175162076349642789230500289772639398817248306779010514412725728528997828900984898523758798505743397558794872617189158583058021952009495217365714603265306705004382008284291958288528927415526157764637678171187324635153450802767740677954515263578424604246942279772343003138955222867915507303833608291374309726181649679276645627086510715678897022760239309671074454122460551560716577191853969564347739447275688269556192555290782503368007988427456506601475148848176985872999037698080961778943446803221653913410562295162385246909814412745098393664733849900529602178695162324850726044982382472770304069471615002840527595822460088859757423248877068733597251820072996345788667485266548827191600783233798658597036981766621060183862830260144574269527065181837613161486171211603443946761898672730434300182682425864409653786004319491812621101557086321190379770867958507028441427106012590465949806423174340201286119950435881136444704649837758612622474911997368990015905453291518471429501878177765396863319352765939792614244429963324997247586857481965141100234564902996300318322309059074259492114641653189773129541074074853724288938163900381089719088127175348384576092079844874063939391441443550510499382225630531324346648764570121963627425017508526466390235661174289583970341073406945764394878579350226495261592157625601916811744810175182204252804272937047058580236330880759548206578864589103722635647705612874758008403044407061338850335990942760062847855616373015794871242072782499025282134317029321263632159072713142817030069427184332616756696826017261103928470433435497954658730410290409514055546757880484274294142271168866920722550460471726524708594394078324449322704587754012588557467039001455679773079319959816258019807369700190513839397196781129166066381360381041363478245213535435138937330785486353672720740056895765297594297956567968613585471643622089220473777802916031055309833779316094483102512773901157819529844180096933950462817123309284039691902065085966310123543774256886982754097118936073360098238103144592744032979407836746763494497429104083393831044746824083113382137942938587447029519580013079888960724322905527155782040100804079511580231608134199720865427111415043796119301273386349592537731374882961074394033652195686949536069421833571479540759733599054365276017025254738559203715884982251582414315087664545072821800312982396272634801638436281131448605032154368740468389535263653248273951830031181934630268983438149891831861825083150538113171376600030201003573609607877371758833327190268292930423060565568990388271660137887370647018780183597232115898461052590220057526979816883178983612778003418101999061226672269736027964582150172048640850028084516019251037101576000679325197111857437564951713419920942448747051748451046862286703909850516867928839430324658868984995812891189996537146449434092408600510595980704365530010967443418390136779724738993182482600928578210700327506272328892757859469431716924808304261016536898637320258127727931454615891418590299280450092597726902062132408679280309042771850384518902860355104364350294043350413380506609964982171389424912143445911437679822155847663081804107444147638897172940811276607849069500372237520812205579750418923379091084247370872963571682441944078078303777504770634410036077701775981140497268923155438524521259661225567726426498425194411748433872945436105317029596771196800659344833425895400844063824945792685044557737506471409318858848846692143673881672560082617180048730551253971229314514400517750978528245138774733716925736821120126052933080357832462866597154159432186241281418451770073963877101453848806243404041673401882649633519307615522093269778343198917865308610131902437650786157295496029667228113601037222649464638518847629056932174792617316497910891621313557096519233078834347675308745883066019872186377128820989621529252788281202284909543732241541807841499156280916324238241550478418413862107886518946577459357263735276327392624027552906631021745848508219214936220511834110929297422740684434652001054559214734528316483913327379667475016622566353827923545564007315160915685385317669837562940656386175097731786761445221067520489235903734617544797939291771864089665415092582149940289618359604983570483905121874897980224870790587810796618057374505831508394593926621268737411909579552291854456557071538464670299281195408429951059412361403247288235410946131764539246483277941803858565972109870393079587522573353991387528655867302761185876326563484067940422126253054400506124726007413399674064120853051041038883566655583677845035921139238282375012199798674996805692791782820395504334353141175039316561298010933267729811050135450856001131656922120468312442234565030609181885385631154066340756669915728694683424118187638070736103242250114471773777469437397105519420742764160146052960765263684044131121295477299582577154023633796131705020583354801312566997610850015877966715790247193710067220807564442619134517828847094773698625189874400335530564042114586940196933409591047487233058189667136167135290467524644281290260493684955255412725800140457744802386554485130382026318427636052590394209447409716995824731249749981170011008355618384084588016569705738935991197459405782605181436554357204692633506154151659582546187560073114775441527818342010394569936388301237714869238019936229986562902307647237870063864239867483281702161592606830595422562190019205681803961435148549445384473169058771884210622175031176027048315540050326880172683866450456974433171021351258589030583787499913254797258449614825346130012345749896246951197150343055422110151450023159286645862504866183603074030247415271655854266279063931037174351365987875274893042164823589414151695070721964897358820374588858262189281193703268516659022764608750751837220553465076922370519893538390168347615858326305502850999091994040538549523944586154195980160213613590811506717858430730358777781291358175016540902248931560114134248740805528009352096018366739886946539890751200399325294901567803743908138714014536022300380073265954839658115057033829294646020215966876270629192391810969529654894744078702269799913880772153319305052672110830743979114927116978880543315949303611496656314916544301284454110905743375703854564476410663400652552523990606110887486298211633938748342223500952866667368391496740266745167321175921800257799580678170888049967956267994485759223369824425706822561299332695924118719439787275700200778789318425821488886035577928929275507905971187884372981372141065146401899350444281029853511670084077419667351758867523073284729340636487483056870458396830487840311539661850795075527382760019645045509436653347745189756982516470946401834270692663398648443758852219513949260183643748606139720313151824982648586724701254961092367027609398989399662737452676732022840982830261583341664195436612993331122047362092306596902221314372699428413975054116510127163865790456162769035564531932885283528357064791075196214363206909437291596607790768617923761412890202288280037647822196344022877468890750445102402262795246991392991249317222359516712955064568797362457061781573857110312790839370479514678101412050544847137214011458723468006987662625860042045398595419860544016474499498299418198899009199562593590003915777626144072778222883132399736454747220077563889689274395916090203026800512290738181181431215636100608658336849963680577194244088669143912145057200614866462733928842403189312587742281033534607103599831933839552147848637665318122277170790768101056011007287618454644548628636976449608404375476129915548897974666941149677027466959691378074223096483745811789592197872756829380735432905989464502184248967628141325273746512043535255482975601282252031380834119256514052190571931104130018412259799054368358353452615095291003075356120943811226350829434995040185248506660009480199732553972265962635556440802124033775422027132465744835544807258036115167526423508116657444321318579276833282734765007243065481887755646802255129800370388724335127063901488960507309181274167490757116467390413241719376125660247870140052341235236037097635211661127069963410235982981373272449765774823137985692709533915030939862068081074654170934057406582681944225147614226582680060224521400258378384000221759026903981384262838425200097710366363240395486803914099301740164245132719675598574730258733511902531950010844438466776468471487623792467416199644653844888160454637615997615520283575408684163181278414964059621379017636255227485214943670509721745429476215030423608430655440419034816935710397950550601090085580926631400468329010710288418110921646725580223207864081820379632941521238357740973417705378410189684110983908553483842132357128192280887728608862349936672319563840836763500842913803120168728844008611262138091110549978500112781310037167439687354252678484467497666255273015916970105081446714030722423028573716709366475999087788981634320420667867269397378704225467746558537451480596076979207777183905330797102328741950078768508765482758147900166657802603797247023242063916476323374562841939554285437506387678624121104692588418292957439415726207368473097615125710468860675652371207127305452059736130142522395223223236106627802347595158610224939073985713323308149073313504326500399526004737144295174771495756753012378003887149824434608641569075388521243600649797153994918901312502260649128438726088517767985655941941485386198335631627815616495171663773479960447238246574191115745367726061364193336773755760124265157796608901716360063757171949934032230391581893854013089244426741569587665621904706119546936100252944115096434265287875840615457256509263283519024546284440375267795726696519540489659411878975272224077000365128473535807292278952610625917091522135950819582719732944168213346565805746204322730738144980759911132115212981111078147260744153454906345468119120887588214548144182518552021855530666043265329466121779750756736521535659731552226406267200947296406039157711270721595132105321185490191055303882088534631902788430705590323978269443805554849665235828032577953476462822837557464598446150908869593973820936067674710949365141525379104793304155209550828624359354798126498965377644587680598110889972366564484253342959289562409361398969344718418510850272948640234853007039230512962623059300619338269886194676294626660486675310979447780950816681753307736371032608332516554661693151319186771035401233849249988137241155548115120795735448508400431761751335378065469372301004395821151422655985114156768699865443211583839834791428251523228702204698716820518023615632045114100853754606903308851094760305491909101203289112594880453158732616851299260755390197281564495944533983997379315368372179284089041398725145233084313576449518791597266424512237270192439090832789966433182358056439992252861411433305863075311398474749801363634238958042702832316977061595213822011147243471671467618878174936816416855651046214523822907581339189175449083472635230174164223582099522885117274849143262104524856765100944602317701833986621471822428345364625226506820141939348679182563469092109571070958565828940516067829744963644490367862440851425965800137120527315291954841175474448533893236404979760955403910592769805223849936537204297535254117004320999586645304998202234316688373979140617794645315888559095525150263399581117512439120925501056542034147100453269733484105325545356791293016995796142188752621271758142186957193068691383064937679024888020421633002059922224925158419843764392159863335553815745023850483773373136805201691080004414138931420903250495618448702178165900672154151041361493030509046461368324310717535989499857415754700713515987901668613055447465716488485234172970321260098478150150970979686389541530844405921150183101538192849571287084325952733348220695624840464825314656109040078409866374531367134268148941614361324334499085930555638522794270524318852933911015133900831341875741230368899516445938772315085987501787790638003854825427788470611712755349395403977002405875804434725593065190596866554991661278485973603940277728368765285525319724941279699276977166753800998900709136109937668456050427362107108689084612901353798436514209014059320727351088277097556650186505326605869855450537029103500461003232748467386142150371174673239375402875769184173213385345389092613368042408275588567494890503626634835162773212924310918373632952862161099343495033375201111501110775633174034410816212912514956448917116778847102323901465972939167574790363957093538343745262137958886200139626243979713198268560913976870753226951995172656584563831423763561741934922395132182673621927452249521903560182083365201463921388955911849231006338871769778831882373186957087786077491054190813343892343069596541690097596041032310386095922032429284893171378673104405975820788307636803105905665429709560046383606603113426605177641112028566114601666899767904267781057840241701284335218665572587235162871516746878511142409174387279361241218593713530374713115409103050549896093763849115313468669917500679451565480448807935412132778062846521773475967750090320018998233824187291898827250020069877776803609623774337265777003610911693871135350513138213965442218334855481110690040490463598669989461787601413288404458456146735284898827907250547590934829598682197316283349659854515067187307556061991666193573615457859884686257386962730342722166535296130420009078461748822610890637653173640111967967675735251200280721162527982781365259832161762082052456747440770776418738761737172758165723166295100203660277229667514630189601256518168899299529364061621773603354734774864995891327789167383707626814075807142354915564266568378184140540673471414167274856524585640991973710295158124142474422140240047043503603945829728206537271904537600542868682345197863688708179662469032379187750332914689978887255577936055027395684106334650694191275492621603471495572269605017004043390432781162917287303025724523797026594958638190209549682994907338845808940642927289664556084126756780166556378158465026990945232362641317140774565929143034905565870364041403779555040282547046184756255301932227330359766668487262690442993294314017371556934341784963871641257538848583184075322960468551387316425141692365689724657512936858209161853415032970424740165325212773132609547270868057967550714929973472549339318670201652644444539856655998744265832417518286023895499795451595990726439859007961843483735870377424979907169098137628538450484457243727632438959830734606393853966498390948147681116578251553495723050925194091469702865858980087151233129702062259253275746704282726704933982292943586089296094234270619980351766022321393329061100555431314669522732050981641393209781138510455664036680523908699466486741949637501859326056201730573861479149077390654520328847937215842235063867003635724800296638541200813960919059159337989429158084355435202986533279941669451366454238828133770551213419261198675695652381303479710092514149199714304152118805625041036460247630083903525664494826139515601342532845126841869030432140020771011041895885740397325021323440178461757723638208851882585250716374388965117757203877447950080748802924279327621076262046054290077625556942193912858344710055418190987003449759740193686132057791031243940058619572311383558820882444498191997757224872956104977223238933879782596799364545084018835294521841650470605504698632579111042451450672990562069572657359863492391172763820570753763670443692760122917222747257771802018630620392759826197605129322980325934016386913629502869017417150165619325910178500935081486034210029168061830858488642862987356216322539109445170230991147313051195003356075037471947207801492518749188758635924907018003674517305596840388897072378620754597740459494885060927496029529215553178353232706632852808916434623754580696485217664282050260910354699285235239679556953067835165250362940259935572975438355920148907119757344531001848769457063015494565601409840057949224910927360360289416326536015836724699914740785097026387502453187881362777139064639874980121299657254161151882407655694600360818227118643261254957227222520891342959963382383034874837783492899334777947749436402488948621460034749015937150003212244072481169476163527590875554892483095713689307672570926669342994659212588144505048220778923567004524968534933977792505021320025085887653325645749018244056455450442384524158374470663922927800289469906491148189200994683029358249020667307611845300181199321608095049968894532783252168173214376639691554942449931044432709993421948114242729177452537749132373269214966626680751053732419586801181269174068140713552058352303638093376959156263872301834378237975613875630011028594223772754797978423910652431122210043460911341269456013735513032239114432500695099719126775648030799493478805518712926938789665652450133531431265843975894275941740464652470532594641609457102940032024853870321580153034122285374449406558629239545430637592214100631745727806267426936504432463198394513724249821855398655091392406292073943066614406780101952321137544316140610480412865726498446659415762447706985096061702452073351753734222767449797946403081441827172235740041585459065790689562088579904122433002132254355004417817838045958723349684560996012978638830623692497339719868047138039219846811465974859359229709471080786642963566173121774653713231728784000458643141766874528758237433111452112664727950896381263812016016048366826004965387299633021405678428456286045584135091892382374348721330079864300146519989719848744272718248046419697738429903223141906059530467898607650781159299730555354905491310220481954765015021782331511684809042786727288178914423238577110769355421688748652289982595417301410822392474476157367530338090794990041986023213765373947742607378484600043414273878674196806265078630720086497577757158320658974182565938687114811589564191255622530146380577892061295594449959090596055094718861481530168855783496230963923818152883881849235389411184991770963277426844475463833436887404062287222311013022515917138040439844398026728832685570911154939821486309089237641237947921929657662713993755206032250078051258926588569295288151948076022763504071135263764295507884262241094813123050339067494782816475810144285998454386600497546068227358314906571098479312617512485457874933977040755653072766104220883441754937764080809017690529573792160098976388933340316243787097873804071722191798607795135824564041129481061972156137231854672718030126893620286153528606904285578501318690839834208808597245821113987556175179065130079869195516287423069526112290218483597303510907468083612682934434873671152329860199930830610442779757573971247198916125611507200996918121156594971931302606038203112280887663768925395102841543225936432412030163351235702676283422207542689866367257956829598450359339298110854808653666257996662610801760022038488221223544501750325765631261005374242010751742663710020476985124584766803211797456243507671221827842458261720433670254249880506116425257645769710096822421530473169753002851242757068218456225633769331441259161093992971427468450809418257436860070970229747740929206895254697336442365123327202513750101567433364851946170066194642399844796744002157759663305972895475079813917037117456934278099436120019441649934552011490620548754289333013884155327300121166297410897340365140368803932885334859068627882645945375155128749171822499956237324283951806330687673739752559111234243667359070249768304889565998356417547691735211205506750950957414383565970900757092757472386548911739482211471044104214252387990070776862171337907378402789188038733547644709169816724512768202944440487309727779898638074053426284815826421162183393456439927465526322572050902708351505151993677736187544718094168312758773013596934858654093445872398122197988013472384058830856633279530140494796951972311435716760495782658082290566979324703079235057309991684685661136630524821037691027597210487506138772902283549218178369730891874213341723216141693600531402603790173993819879844356588713228831557907945100650339157886206035654838160292930444697174344598522814871861979563975184819192774899580215658403176772722971713083958415928000873424813826469090087437652328873206159166338162891999051887424796375996931457943425355637146729099428608189573501852183195127059673841814228570660495711936734227967764355034812706939112786008241915949176099524406417022507530701688654611742003592410514240195391499801038270229696792902771784467379485402592151942807920201419990823240830087405714241817261296535434065039507385772984416547492662168342339732734225512570044565832079105763540208052245294546658766005772105734590288319751046009890932984364881056051223906822065675238874124167528920535843519367374616168885914130453251740239481659603157521792909834556013007562626723977273002294307291988404340633166393164125254285603820634365774698553407062804297398715551298942766734425616931456255648649873617066203752805989365968457242301467083688646301893469314589121347732674441657733530193840489380775023986878176824585100134941856745865613861048959596112121300769089620856259684866979459816303087259607114349488773292754010427291989825264321300721327830738226803524504471448482922751409190571299190670599470109668573822091775308876753399724363781504761266279320919890734359407005038910672128491924989392486965918112464938952469142763732564897580532082412144073425152986287808000551080851945341935621388937642560402439587764435842462640564866839783265751560176628915651278934860883855376711696138220712417398337729332611999760862486208318953565792661080070892102167965587959050599331271048860628700872167179596515553179195669730972879625985775990554712493568787967859268855764128020429082523288436768144107642537153902882629198321138214993200113662728487379921080800576765081233359592453899665931454082012468158214815567161172606134385419980185007451899804690477132837093846019360451059582454564392637279764253771182273480417485116188992748718859877429024238415974564163265338394902607081892256040282600657058693642790282648524860474724538876342923960969632489968924735376140790398982456449455395707749230974119857564310557702929458916824753474907630682426237949355616998364858014501749223483339898500137838764331415073277030350259646312226481376599696036472037773675481221760987535888077379732286137805375573034126795210984321898883602967734980114953544990756964752250225243934353098117304572318779750906557567789631124015976480134270990686276661682902068061930927918301987232795233295676937573173595931832906181544191730574552864446556778861458921714333279851473229258008746445653849701037934733154782372394565373206957868705483672922129747121658986805412638839554907131826112713794897356334885178347699989291744263909777559669740869347221247709605353331168167242317499436943004374763030507100378777751908747535187646864575528154620203183598152390055669447488683943070990540651726644445259840847497789524810514080624055799842854471613719440932339311126641258083191561568523718592560621107628019853814994217343995320922446110856133195549717387271681004281264955607122543639113226606935646159597770812151339818698631437775257002011219283347605787529318568994037778739175148562873865368021721168331756273119987775869918582797776243313184642838386690293661308012665213556433786903492853068082091334852442592436191377802411911433814848706494479375541064022680410182257857540025296368589245178225168606579805776394233606017994340819871292306903941297092961522850851437922130623524314984935012432471229777233821340301397622466799491741272416363827073211530270999561457994250499320099958537026487922849009528942905517631188015981225662700679487635521545383433277394182491952152438481349854037694170038602899015921499575130952409975712670390373773514215565043517782397246797727831661928453387338533232091751783744383724871445504505173256750929129336418818114674596661271094839250250331286801643055011796063587013119546405601348799806930592112797090094766618774455456905956401775695984939586790965697188831255817697700888200511943771206904135202604564484705930487605012205452578162398765847554484803858588378398928991698281838392577356482080551312261087870483179272453746835672531137158341738755758547983835440836258599220223524048342040192825199068058249344495701159269207037559043741791996870819941532890749532521571082038391482195820283708710395498219397035566284137152964044777866723469954983178263122270751251624101133146811092989322129496424128469405244308250916096704023966699905251405139856339756484884446252705369655567178696351596539129351950064912977232672171706508618253818301509203607684451321074926697139839784249976017742761937387679191897747634113593602462176670644294674376591917715917610459952449704656652283301643491213123226374454898095785877381405142186950313965244350823583142932110985142245203086713656683048682855771984487303340522167781009111624070179270601189908488395751067746292721481290913737830665208994534228735207354457913344465665307787992029268322033737551461288340758667424123952022887994550438532152017851135821436953617086438662451817051797074785033193398438335101364802998588465431101379318764418525269445244790336198868097454358229681249812838237895805986222072531241737497409536244802152456772151015445299742748756577216390550089722888573974328311833452221367490297259859058581376666159593425096042019516433473974841698518544489373304516382800534240385562968939246282106562820896794295795618217483872251114531036041702727490120011595448315217594664456505869725768888727433473599571470422563692229948301182756150665714028252930202477161526416959241783070753283441434163532598962787068266429977254077439187968887464742626106306265161157169078307641421110187683005039020371243566499812382969021151031931730045362098157511073315461840241729804656500776103703194739208721088610059083331650208817751012980816424125933668459209076345661617922089221516006771472682858464037426288687530832285940866421828109944191971219165214811963478234388122333418038135330931425364823612164409949457964520247198968490980270633370244116446862967908353076168831093415324180772493667280314416731854460273058028628807001339662423183754382015491202721686525406580752733009198138984392219471696563143851892355612207655812771002959047805094605671638429527427222728494443924652195668478960201902054476337319837958090047950679790527997533712275633459429962485004683171259249237367112327548025904009407235851341332419685659173875036483375469338268685134111459314201816678658715708908040602923764150491754261537772272570279869872323982121130698018157803755282883114939558758375176711298066846092335767241176728530352598394996720685853525310200540707994602416168053065793199349972439807633608200024359083452838907464107911899765108863048592455875399822151911893993392853310740004522061784720083340371010021346490528488483491489810620797170955533266904732005358873378447137352259955444408189940434249760044244272713606491060471165296670612005256411432113075079384361579415707037480524399949051086704990203230735202982452273518579360167275747810730149968971616964958971229047764949760599425974952579960000569120779197810218616576911377935223551345328135089953550323618602523642138041911524132843138642967649927329158620908888859740497662484583243743356590957568149446035877290144673710828350685642411996683672304334536413827191882408714451108520633067009782945908876956435247008002977555210322237581746692456453809705375130918744220269936492746634157650639987091684980863493011797341857768995385916001253762318866125838559617892709591148232049592678260529819585714120301447474947065061665347065778093945804644297379330115966381365594001777361134817195818094029573785200640805136270767945503819983423381724055315022510354840971307118427736873786165250068735241180728725418148882162669583748135747816367034098077504326585850372654225923889888987571812610495895642032697256535914003415419675642719772585041867650482723547516330932491526125617679771597664264277645623525545551826779975484703753224178594313099288998689457112236714901953135196331106796419993929572506819917028821201012360869378038092287813925718966039252284296318442773234189474066523253283902980740775623640900724202675635892731355287408981522849523970261995732288614319255678112398308779516313427459139397705860653869076028640414381047453378988410035714236978932383586733269756639855001700773211177434040480588656147366370240805591132613168051328656976196044873445177904589871225723515557482197291437491142183129952159200434491011212922103330247937845875947822341953804355904411201773051046849485330997548536282831305557466523753007943005956131486531060098577741315328003246644862392637546610078357251654405000315393231043151093242577699757277377548437602701155855560934955875840732868319624463740318313851196370832607563239427917776387650600670157994267533630900858756815648097040763472783767005814052268164034152053315885082763943149819793241869562284295043975470425980562751056356501599090700936634003591116645763704046555810840882894628959327545536110149753316223895535913000781079751919919749143329146538587758453498829828350055197565257576325370286532587029312947204993344864883843586816427480113073582345250908347528834635774768074119588337174847591584477866574268185951250255689064021104742439755438588796489984311855748918740296256705633862959994334420730785845852948461803932947625494535214063603770303539064309972477335630186346915788540055742502672306243193325160855999905324445270513441732892644578263931910430240833960388943375401122543786009892160174204634843910743039662617009681040688728292423937010052111229608028587844613301037496217148894966199695317509670168313205526269046546774504863605403101519148317940061684941960711745993370996822326265204876405133804738363607017571662178877584916807381308232130650646950988155911951665775840959615976839247969168976559413065619043761681965572233941322336792795305054090825170342554750933718995119191973585172592738853460592931079496457362974883508250287556092842992352551992299741341134009854802850015501853802826811885341087119002601134733847081282746449743489327885743859017885948601135939315233011847665061457809329741874776342492851700104715313720197559201837527843857221478635293364623746213181060204726761627260657529350114395427237027481656542466802496512209521195961642634824167377617834290321823465484321127401149807982062637798318978242418315821725555815418792297503325837346580140594415213788873010172417207040791582013383538650571199746535832721789620404822108385530622342097540619880201510256354920135873953500195967927344575063593815227525925472053276912493186997984427244537468357759040912881607072402473850153137062722477027187097202996391173497120184497182341561897351065432258330065843117530591711023992804280687852938482883110298022683500778848616347379273195964321632497312098036904066748403483267489573439195754033497427505595217360653215456794115087860537506480239360971715077932027444002787650814199283170196935288057974235934718416357796987966413747190196385839752376139922883717084880551156890845583665144523264321342482905788696066262676541648301686832281234430250253326189352048873024857693166349671466456949070492843160203113848598420829972342949617708190441250222835131396717430610641159669963133496080412662480240076920252938239671144542751723014438745203268142842285770282905377407809719608463860005094896746869077682203187139239695294162848738931493929543707192616550655551375076041920119866623312485144306474197302239054678699977700127179115463081758453113429009242987842509785252665357041706385530484165125913535406874457069695361988831036269425506088022451573187351184819172059157832828893876864019914599860003988217011192537475609804046520125099311853736626772278090592532156666337702135511069791184858391418687909242734118512967041300975713156311798371748616141273784391678885018583242986215946984758185938699109047464567058725076987459400874032796955885908253756824170158614608814142646353569728376301380579439728474881107331345126031717834616037921664072810797738573781504482137137459931329887386898054341964956867447567749308438024525413473077115325924759671645697522394127423936583598305628147523225561479599125739632018401358829206444194460870649714477420497550813387254139886522162114934104714070592978576794409451842667900032451618934150402036352546712085518307088272712998963319187452572132624976723215453397926742793758183983540034486341982184977406690045588655504928442795045863351623915671812704011062580877750256306113373138234242242258422180806336209927547962170909282698395763935896344587054019348757662987311022200391829617829829928075579484827426574859361883179824638504288903420635071638229909128017797044374151003810817713755422406858885077044240025831168679624703605691861194164615034416709016057737640181966296330471554551790315730377860344507213713631897711291660351588584883171911101400963405323197203592866136889287943185623311226348274342019696182802545867343283363494689098932328176412485676194304145895986873525131885449545784328457781964928745637477473460389007451256322931906407205940934433693359849495913127234412621036538569157157395290664139832020551055096991183211293430627370842295044173462349185940176914003942569325440995120481666605546641522375784389808272797605752440814442897270236832330568523889399230044873733009158642105732654143392015407797986780504136483093991555221257031657079338060977707109077695839130100363222568174501075435832918926707842978284937236287782550104723738947967254689181214781996974807814037852046278668817462618338618207128794152243565381344943845068458304798758375251565943517469216984124703287170493630190883153454152202011900527163727424442141741811517752964745286435284333816705052008886650204078316074616153585202263308272698249962963507791402857006143812878734219059932598437086684058762904884780808478250411752143309915752224416936580822055564483782610047214867175469488970774843147829048502293672369019623389053638204012012280650618537038995922301786678575027197571312615187342044626629215153412827172687208114554287094094925200608580563756716880058081375408303950425281488587422845628227684019281156052936431981196719223794079736104281822109191198936610923542137922793172553759652264542738681433584171067276635130139273959236377820496766242522341926583080308709711703448554959922801350128645684922037597070076631207238159356914772986873388918837548685472316134648308749608079211317721541855254817418235550222998790918118551097524902207229309658327293503489758661598482479493911580350358714215061520554103931817738478538984831393914084425206750516732180893940152307529711261931182699512618349464016056122361132138884993929998650912646085284477561022593307007871284045583638546951374503784049950254826757064567448201181420339416304492816245991694321315415591040438232400890512972265636923831080661568653986295814330678174027388754372833732893761517675577324171342992177032549093257546395316806330327979577591036081605107330634599312670682145558502616870951100810579473152606905243227705466784579961062370620226360340897952854810922996243545839342151828254428560960988630434021788579156534506435963179072460188506243850303604705815369013828159771289515186987375547708244031753175603760540459237889989605505240936023708760695147034061814990901412648698926652065152241748054143314008730167271964619030024818545127960840395566262574626616386391833901454752230057096735550089919187002706091410542240530617071326069093814831430771669322600033618866473673254020944455880861184805178253623486587955114187604786427635740947401658306044723658877842180663108270718029587695481392304793280777341839538969547569259477386667733931516790973880508609383470775439111200482362658880577072034441145999804391013639015286782520603729511183861284993594809527464988526316419956477656787839252484997150513040739334727516160481613119561159197898922954012663773316843257711420497161286606332698825951197561689956030817449008457459069930460108371625426576044755951926369225859451171902381531161621922860265246092797249232833723003170216341334742926480361397710007281046774787341704296125625393989925451265787170646670913251379056944743880633842529207820781408971516361262298688354052430473395230829760299258353698380563731646328317470353137842717186370360385122857048448688385397807121853259310245887905065137392214772035233243614330316662441713058244449690010263211071024761110934561926767302773876691727140820231241907103318510347308764404936181195304753291813197289776195715187987406285357756081923548292642023737986854688544496345875595523235317052149062555485719968185066409838284446901438160309357993469828827183891653078153627747523435523978765350925172426913745925499880488059166196386250181283126766809511136531961645188847866139118552167205873187936022608466728675779608396415061587342439716301158247051733786869336728815511462883699345900677402786082233940525223883249077149064868017578080950789216519225706728301817543618577057474998799482651766337171714207072322777317645058344487085609539728076793529747901418063943735142191193743383304881468224120458633856351093957744533458800532132790566966533919650387749493411097797924581195916411396858294143370472112613278129366160046667316991348991272664687113748733766180225892406437398744262437257713605277618136967799889112736247493774076762771657653786649600525649365575744566679686174961397756909061184771173131372054893737536557285742298728921674525625272702726357888457014773138426244738258699582017808411346175300755373686816846065294479562826980893076363644549858011375157535457091134387697549272742010345990954717208047512732180748091485516807075956923321626644226158607620756852978160587058526126803350864656477929100497128296906609828741618163985210307228252111975848782087664379124308955881152642396963242677984779886810386198303111520411207946337151356123629272439430527273664356362076550989713337988037237044579410723701520135731358237921266175148735992315843467592897151538511064089369544067060281285739911720944738608981786778045342826826441335810880955947542097893763720656189014614083336547917115914235607754857633003136393423121941924347825961807205283557851416637108123452445892745489874190024514625763325939851281737818117722110958532674056972596515299950181384252650573165865430506246914800291554233428017357350900162839001464366625049296686001496239090497040179942678825659722239907932985008383219529661308395106511120292706201756119616526732596532127366081097652269468546203052917571202691394392159453800888718501805677034299894944484501795692389406489761778628898017497556970233022974192205749462111673932206991384204400323257884639743316709130038419147101166947166201629269420039219698314709062064691910449469701983789663016296275041443931988241653364064324154452212204610435161886853448637770118319795107528701420055408265944005095873420279855195367311582474091863611343156253218231336007731581327367585379617694728864215468871767535617550311833187998580207959682020274999628864463697089576237397833751484734531133801798147716668782978472273191414279396779910192796353468754616988495864272281188167233300908055245806818773472849514332095818789284698306881358971389706657944109822868293490434836446448820954277441615271221224159834469983729029049950359322817695919214414189917695160864662524857855746250911299882712697745157826941365478064933854455317330360663288939368245736411953036405882029954278376289547971271298891615103230029328231186421588353872452198493735653754695833065196105684551841348410240073434814469071379503033889573122406188212505854344966477617042576609933604239244587782893518373820587737013159033843495427602536070765469573973027438163573598591481640977362360068504357860394790233171562458508239586097942205494016657440151760486594565173297941971320110474991201075281520907219400958885954409128164339033579830234632724445008852055019249357521148913948248773430298004957237974323417796322683888828058865884024731244161840534814278813557845529847912961928239544405396270912142965873305787638487992101426504647750184344688362202760051124352827696966131546487282712317805432283899616577935305874109591201485159268258112673699692947744069082557307945513549685864817299665658365297093396449807953813204936795238669670950572396077806027619272098489924098280198713847858818312346817986805579215113896356045253456569953383174829123795638984213403991832562735504401084566135537871502001740599373513854690066312245398411835327579103692007478560684102180636505597805559344813977269337066293199729121763702433527671863437087645088032965188670092815062469946270981721785234403291206245805327852744506640377762644405491219375728210041958381003030100398812585353140831315248084460680636370111358298739419121963126469780686780345471559112587803960534272197905286243143898406481618074689002062184468739713058609191596269120936144792464844240137462813132085414197268163143836446693866506519152303754929301860677797883376761567401068999243801278081564050666739953434261814431337202900722391492192738806600133685932977629730227732770539215020820871672969669360105521425481638743959372340933467624012110880520566282905914893790075971149982316516963281047675854748340491170686224388545159393897968345307135662707838347610080540000366957502333115187523243375310640803287936905507427700601875990228673271109263334842530007575152313317843598413489943798695602378067583160417152290542410079789970741699220149497379790313605192895394371908752592715182889068102646137382613999135281879667167553003025187591550993986310551017487156310018672523604802989264351064543975105599536281221567822042076111395268770014949474614683164660482787537087881638010057135841352515230229436450378639576524070118358885275486610658889555180019611343032588799199763701591810800663501749716368916891410626242772475130919658199364382959253169727566511009724552407381498626773856428164772436723513810305035319912779346176249459897391101583205346756628044929297061916024045511391789359465783804309251722048384305980394704276823894239934919697817767083769581335583457410042061611879780309912176584739595459177824641753075356034529071045514355506485729783710484745185066137044712406870820558612346934061465284576716006084661143843611954529002043010111603233669727974037755546379152082633096619380675476662747060011381356025517527443284125249970797659390939663157294889142131612195060695346635136647302871145384722538495314419017515210778966404339358167084455693562744077044069369323363086400037846573722175554481951513159069710109871407902289126124862170163687612615843922403362619032698910782680268685077551224940415808597379882514595110643670374235500930709263576560187798241765454772475140093634991506899675213176639366165534550264980811214361146276492052270385137212629201672105347195752645922526978762266676947727764475990846963306783977582880607185161216992475111463795512882581076623265645812442887283586164547318990499973620955886711074189210894706419392829343235990473325351786021466637633681099171336273321220619119260156324186255748360024419107945872102126878313910165909649340545728795863859916584156898728717090460434182835467414642270112477364084500008382763085975308693439418594190473866841559431240315618100030274031444698724173924154895084869593288305019336819946362382606651738557309721141423252740813140070572429356376435951731382393779099662051744912024557218129844657831584983550917695901743643546989366469035430751053611139834157683406481109223901541908287394496773922126093550266207225027796678641881138961341687143433760895952750333998934761283342010497623225030770275060377168245763424371627385598322118999407340950849098441601692257849089176468273058910318701496152183159556230454839662841342262752680202210474632679995793976804453299530529603665228092681454656390037297133146215253447159644234420742515273113790124980143864663560010095793906256605262303752630019809002083790608078453354155308433051098105293195427606910861473279562674145923191603790979767428524762452784642988787240607208016075220450600435407522808364830814649250572621319893945969752213828504054359932752702655509891909588246066971920357501309519247148887112708190495510898997759851973349214860530887237535226813570953922290899586190530787371471040640535565835265751938608036046525946784309986913198334924463089936827645832193819412076335661950639261812461079021996225202446872870056102492332608407428518519958223574694729914005497325444751495761141303111464278059614108386583508573347530784470957565536628449401326736111460115804969220539959816606713995756796544450018280286150190973430607502961413225374389600753475596893699809747169003340291323513402828996211254274380007114525768964239944263929966667159328689421748610548603620860303870331833553263171915920140046916570466551065136740557021017877267859143224776501056052849028698167650364217344321739834942130711886370210000790713010861559220976787480616296571054699543183658793098873149291221392249745159645173229287552932861525816161904562687455185262195172643895423931397432583553967199462009214661211046593271256297703936522033451922864801535092246472020448954192508737362050957215348129415193283939473341866263624355149839297194988366018505595584245437253833335271234155045971736898406577422545508921242512998184795723230375842627063268709816766119830482407650501190916791131861907270788827353827486062685535185641499696115147344917615540926761809294010312997279039753259233657962058287952522389509739275219920688566884139939322650641703287866187456835656999154943359458683488229616268268462661780510436854607659791128549796230262498313985840271333232489043685872525541818426716995728291779033839985064759790295321372081271094670098693139668143984211751067006025025698559388754037178493412717980518730547727266623236239845990388624182885046406424871967859471712566495622113562524953977696502025573782543959831113025408141847492710548516843900071947837200005177024728584521036594171829179825144639246512005266717317507732894239526168910073666684036836173119096059127522509176635716054570365633498038263250781372931955260983633281420409380653149406519604474971124616624379205455524008784516331514843647621795745480466136840297535975262449139735279182748484458514178418883665649920346961031852891826029834632709994738551748089544845436953284104285721017386245271494788129798337018231075527281676039254035849933438365296102286861035715047242080217223852541816818920088054179069880969901643678318634504157908810131525896425221898318615613344521710807979393236179686566183647451443346698559035710256778242288448711899318130013851262227713611362789320575065416708896284737305999991937021379639149503795997797706012890896278402504210894920329219183916086213615903516644360684189977075819683184118591139587614485193988389062299996286970834959081746817237132187163727682779007856968975009561849938096618076735705873401528096871907953009513884303752628932820990590491668086594062779246276748367838759217124212306042561620862362476512046208119980589732813682478469922004809053862785921934690489240793647406150118847928940311982614427962492048143707904917019412618544393886030296772172388434838533603245570523447723386377372767896515341828133171393779865227244641321528875251378365641638009715162027815101098312664117132912108847892147426887891558888526326906958850222149162870954597035726554956055119349721747957133256291143648565818680190076008813208141085290614225104901976325488784554744496067118821506282605568126314786694080148109979301519851495833095105304778297323166952101951155249701840480192766535207366302255775027531397941159060129218602923833767808764923317460428510316386940800819549140246939695281947580371194834456395800537192505400367814007676214288084736246624285386233391133139288964079970534357270628003945081166810262974716921262505091658774633509513179582981341513813413238050400925831839893531240499688158310178566620656750607323803030001047623549411799432384505657202305845495324960154115370296561459325243979647062616775416260045645813693933990716664969646632169551285950585197036919439932770460480706841653215626962187516163593368391214830912052037204685006589631064025080890670294976259098430489185893486468500280724095341327082529201945041421868263165356886870419932230235008907899990039229231767378332276752026564580123581801018998190133164114429724438171502007609583149917158698249401024712517240040578502267904034856582722836997276638928781357101680063666138023036182950444577115611296910019823334262795268239637128545229394757053537373841377871896804816640126836217999484192655388565672434612976766385640022369808196404603406654452401315392522662553548744952703710351361870682660983969090995177504208327288216622866186229633886951403753773033878102374121756333901409476538523524857639659196520379803153992032593786315174860199430809231816116574672459897457043900383880899926215516832277182271158432664490167652888341127742186707891821261016076910206087458664594949572913653231692227004291806402953048548981251797613524177274569527806475043442539342687496866854533129533569242990511681775662318459696081978714024376060744023691171795705681293525397767953031661796152906306360508182265864386007195645616991878507854519538878148427937084633792707943168838451955689283760968605552910798081648260180147744545678392079725876934175718180491858399532338194529324476231412230939543026683063246819476042126864977808529876898616486718854269405846185694557454426969012643733798392424601644125589334799317581941099946772868395233584835700828036018142635981684986451231241823497210826181445343717640539503560964956171118555763225678130344245161812624445227939085161121554470111839814722212056697142955585525088394355375773632004427347561995781006865959773509730515643593988640812768280360274140627238608396006458936600297745036636423502897270411924508865361361429648234020217387429241781370567033073926032320515858494857831603343776973688748509289023440865618295460316742558401216002229283403906494283905667431259356439111402668237050881868388271017193854065395390977026693093767981082400690742257079739401590702882557363866207435434891861320031112532073972624321360573375177566461169676033851593450274113723384483961743788773313493607784336320231103921545596743331786888211188040090715841478781877220675544828959840758336398781113275952988652329889782945153167660429626897996314265307774615865771744354454224050417138251764865298364179825850427601895459752426427530621637760394607200388471681692301145175649947603362345746992936100261755762013259927116679273649740093237368427152277558353354861043971151743265584222761919021734955190389738379559561763789394115327314574537621838160867268338078200557431692343792917032409396650654598627913856370629653886841658223835181621970628386091733532161388922954986923024762068990787838195302446735647301470172526869230174574809671329821062088959490932259268538523038072301804810917461021376694133109404235453752642012625347912861510612330546146685618841559019935928557807845810819230065851778424039683859589151161598750052103093543061495748648386906711269829964432573677437589472258957308081015982200266631185651751357236258079704717233217398485438825682734936737909090565159384128418088289331581535637546244403618528480860111155543415130170647766056906625028085799335914913497468967762575888008122182305940959999362742659543920073846257149913729766734168796630552845595203407942246424989287092763472301039254307095317122612680401928050527121432644533749302749797769904869310782904093964018533400121452845691958185886205794483287569212328521472483095592308470648099601344488315410164756469222803612751965157105364545738768765300833663374166825619101550501743813534684088353713309867729202483328816365598053436166950695406501238386904038953460538201814051661799232423064815512606815701365416569389794276269935169166485286931480451270865296647861445533222573417844598917528080939850956882533263558178820771703205232378023364039489799722466104949233839547329252986839775595791767357604903377333396975768343762626261819771740295197636134548173307918550129161229650788205678575720240504345027617950573195635756230399768591493522479269434599177977110804496288216719932654745715651968384290801645200376807926564657268668431243185175133903659804006042227119460566760173428096517431754101570327291899623485372508488307166322993484481810245616028083000690551859341137662717316503178463581118703941414214007306862378828237236137635008583637201687872395928997741582162362630241113383202763125048149093039520533528255700081362646165330068746531619837986322439804110924754123660321375407423969145597245431067239043000140179061098167049070123119550094634598007798758402580751253716684209516449892854383559443911153353045963076625915758906521708994299973861054211291814463193423146326500247175141905206972672019530721477644958711004264711578967568111566927963252301410429924927249910908085358399054676021083319611016002189887717687712316704813774583441584583468885497391789338938648858297784943377310209260047636243998459853623583062341675958108501368774301464594694098796311111597404431491627972860262403297020783855259809448906191447989201994222728876190701634670346057715093625851949424116223644273465610096416370023659306100356031512959714844802362121642266429671790829869774531399401018455786217378278755904207145092878294030347948164444166163206891645825485373848807853683349747053056856898140478814347197765910313115199999801734925254309047488580108912446904634555148475732126413872909509331768520040060661570145817711225053100543028688530630181403678147750662123727679665080308019922649099106193307109487603674166878811589131896800147170440501372820018779886294779737960445654112222665968898907932908159003593026296457692526070185350006390081777535963887952084438114860147062293091686220604343070128514516544157661184612047698750266313645931886917916588116873633880847403703740487306708682945744025585056716282356594147296844453571837025034760582199937404731354468754807915762114330887860361068542413987808362515249343607791153627024651240599286955689164325128685856392786762969528014034780121363547537494460010221666255360059214807579557649411398859607325613920502694899323782864805516561097011966179292545244483636825288201642221547379032413273193058381960764183066930668588822614251597336748728390887012024214863813129163230230660413167436213088614131404067562856097001865836454955060316190977470092573478618138510129191280042849982959177978088065872655227088159644268540076619238477731196700660649905983240167085503255562448784401321601546772232568152593932152503468642872347420643141383525617595366953837064557190289987013930268324290950328035611572195392629053352074747748181971910660631064524347527605129071806772032297953510230525423955689616736989610237974980440663265222423936621336404976403594975817421353040697135905423351737342844674229366963877502522627313017184208641642555296633268050417781313547692076046967989689356666454275210430762885747334452308545820469605788240488991604374562533466700280019824191753953212760855296916223260920341062560080277707033018302379045557822655153899277719926063766294558010221007403470485367392575569932435330054720525733112882439253014205768202111549213897044040388208374319776337008633443509686208266006861235735587488008052922269424134457820224176652304179981445378062149655367028406530623463142415751965652007797202475954238558442843628835619066637476901048695433599868553365428846411119116913639486466100995386267085612112332415813854798091892019815840607658207079386964037933283621635732742400651565725742544802529737265766861569832933315237846016864410580099923883790393273381628341154212231963209687076507318962830068201755598823732735868052525607252216658465065618573951869772148511922966504003630082987259715353336646685522687930927931556740019759281924706184905280935421419519641647984612752393809504338159197146943247236220179702405529580842426697083031299049686871737104511785673105000950530659229333630327321200441929653396564956610537149809814007058015845216585405815560643447974088449244519191173025631058723965618996014587516820617669554288439553964416198249310913881113129144342729635057834913405035065668378586065761786146503138822104486337007442965638145784555254758537802312188434386970565560055801746640480453570599484141644499929958074486657644324052080707212923913121582707040371051015297255197163646395311344133271048481233951671065464996375204868586512359584165283149641469738311475674211087548531700688805761930368312635258833613411757134884603292423718794943100549432967531170088737807109989522258080018914904255256114907375866811910617923748024327916804227961473649598480095428005157443333845224467317757929372969713407705539120482051964613603835151776101423209314533247850146138425373863808573794682587624946158247663237648791053809618961908505847420754795082333546883578277058194520779027545518435437014361952297029749269537792418111907467651351475506119739002281927326543200948226275317535266465768255554945793329259790828880630665518414679538721260000043075045395087779756721201396106277728000777914265307958321148677855434384927488568303897008471061808899868954015366334448128719480545633187423359383529998767181202086204530212062157236558627980244997039168003021924438994499353894848917759315047938594484269997290967924600562594983848298324807486441913715499818095996703151317355928839131838476239234461984419618855073461343439172039886604826316188758770310972258705355299838688644344308672611483063999976165290335316154873521040611025907519843085239357279281585989312123255028897779710025735740460279446225319104327156575691468081198770201154518953194338191941905200744987182226226764701430706045870041210650654606721785679854058487336754150088860640081070614555291329559468957545392772911747556287778893228974503805636233202880916229147398124820462739732098254600286548124523833514108930468307627326651666640398169969760485039258074368943872134359155150877112429342343795830062069606963097884975648511700858902166992429328359618324136321881114527595587239609103295389921082772421223259282909755533729874777463362602476505808106058633018036208405028274518692020339241934453593217515410873571715180549572995367759555685518604942934369256911513646579552103388909295008134600188070547889506537224041284796698512011208398942504738451232469457270527603333261456188329255839165183508167160054554492243283438856560544264730912241814341923899400208221731526879081078378444260698371307255265940105272626784676784616391131644834206529056691222118775711007650220716192662955275820163942951176628698811858062297044103577304493430060875781913790239213268057133956867163311414945828774101520046902286334588913140653560978124133010056198684595556316787243892252850677712249783856653248386243927164155112058477574051435461259650250291501370541187406955582186200214543664648787800177493774841785150627689405079747207268862662594300851105908166586937470289085309258433684039283566133082207246429265234816639230632558401489379494568210634999307575713971051594261940650184317278780776455937138396753578402209012592421271761170427981017126541231513994682258471394490521150147089393244723948679217251777236799618034074364166153362851729637926951623370484894497827087783169789247156243178676035240418652800951882906385165385939583550743795686634617133434482783537658011869858527867811082402947063355367609161878674589216689261958519272199147570295256565854229244217241951564914942388106598542794523537816169231156163458306613139078849504372658569929411086759445135974276567443895003324557150019599656767651899413512386998817376055843922209852403755570854857900112925467264317836396661627989285697367298109340947257443964916580249775817099440150989636784221249551471786488049769393248514308605660955654303207679809719159666405063738791271188249881591858649277524046312515562026508276978636392308381541781194287945847707210458917648097501035984066806522679274215176367386017240782452540962774945363857478413782367475475518972465600704865212648779513136268319393578214001477290343539836813719047121856970027858471977863906099558529123032216646612943470526196278593613207040492830017910538385876409633922655294419714259366932854630833861649998637564940973952556925690103885633306225301797507899759911765519837416183297422654240811279093671077971264732493037937433399478495388901480549613028963434569033580138642894927178985295256082853068057550074001033950763542631730151149438204995387666515510775093667707914008508691262534513051059727820986538778763529116834951044092091978059954087496289852042385340071284138164569240168241596802782963487310228382205913901298186944328998703956395010018111571992401568993329828652557946477441990897046840835150543034412738083532423901976182825793155027261552267285659899917085279838640749926688984340050550303118709789643778128287101580150978551908610726289583263072497459871625487471974070532136012206168672515297701905295490159243589538554847473724858261399088493595865645353173203435902056442603290520520130646116100052538416126324076909186512545172396370530103464499555562532227705426562363414474669546399246088909881737741138237408737296889108402382936080261546600124486835274022366457480534251657227504210192871912328275349768459776892961092330099702793402496544969620817272835780510146299005713295751025031734360766241639373469387399460376229362698215852949768870654543197619598306642500868603001908611243996504056467480183514990354925474034328128790950620227177970240463319049078226815449415037069421632886585501128491200724292140107081113777975580749357050112261398665659946269283133466477646481038339734192263234565768391230800939299793456523367446937152631995818543325216345401634805011655400886602056093800483355318046779137085119746598333481309396898299661029595987780524106350748479299694520165629332154014255252559615547013912782562920192575110802722831088090187496793085637100825416574308036026986804245297960979058398382586552938537423545446169704873751106602654986034743108064190826857357693108865557670314179296221094915616885255529351392901685421870394472188259490592497270247095717924608962409051459395556364152388144501661665420191105417749254916959372135596856294396523096016912219613701185046086858371483432508482789126574978768565397383915079160136984067342098288510806192261398444817473013696955697434671490342283055715552736762038527489932290003985545791704534295471885177941471243329593971561156633980898457858698282529047433644447013783504190166689507869102717366224830417178351146172091340599340392696004241621149766465813413481945322374538812227547965504852410467090792837094264619739909440770808014513768438097738196353988391648438711722444888788756102107007797692879973822295600829655562329053295497459052478145306890229942656185123849559874167287808594141073854629656016736934283228402751520978953589310613157257137685617879026842455242869070068191723792688359422862835580897076750659273747171347140747749276504621566669261731044911794248531087305765719814494355912821700423787267826915732613703245992138991673294887094394224291750420833709012644795080693189453425828550823302815729467333531492523074447558908919553282031946479796808348271465229023290686935450616136986487025620780986223221297073489898402708809547828796612910727500702802093414809342774100821486095746158793817424511291083590575907815666051483340236827827385523411999344676309993294083298439489951598385598352454449844195655419732160560042125473583058248151647578469955455318537832694901960143953884602260593378998829218971315994465287290440062802162836679800854461162510600493228766781138546673680601361668299005930132585872854977309745345555507865548837926631551488926041523095103587034525493810649156741826397742732614189182156271740546347976438115954138995423551761534222535772281507950265283046731691799599779309038166164596587465754125926294447252848036784097255166706701889278437955944252987323958304228676606575701020190739542998271389189986354216430230627646203731280160906857549978189970666574802380817619662271672219347040993453515218791952652012012621637050005983556998855171033537482882903683598819272971182552050064452073824149405365617723497917592527777562717669574596516004900225814167285040190108723318964708729263323434691400378496840949885736800200025911803540616507913823638735395272806722394119425154128321728536238727357240944547535078006249863872415012210537915907505036299258832737678956364874707365933345828017950004625956481496274520672181650521256046421786864770436463253232193965642410540763751380609712737500545202164594885882260005887051124399237155337516689451401145764954817379561451278770281157042651618705330467401925179486533180832791860905066531739145106495502667168775722030623732999142226289294399287529111218531254558318562976319897494718606606273718118873473649682230453160707079850340055445885152271408270489939305360937238804832850342743279307158386138823301047452648766400934627342243593094788740720327990342845540711876081622852841837611616269700200131704850867573581355996194683434220986771216116327451167306743291308189555780313529821532556247150168180982179420221824547552051329001842574955608659468729943706527089314789407275182246914103835944784897798731900357369332305102174346626577672568662999840280078408094370414248643100826378917828070386641866916661097605795269491277771927296328046217853832055166600081869381582595137632200676617789717574035722010721991832334009919628250725540740309455010855408953405621489198707705431158033749064179221641972290445782492272876942217702562612879803479260916636447159671132104320687948131296781507631601468198134299814732969697434578352936929364577785811498023936338520003164847971581312443753694031020445448880272669158948139466021618250403738462853574931673875728615005721516549395590921420718271981150399285102167806805168230512200518767535483209202530783630403396547224517478527148944636994694842181174532912486447314446174068526307012370908768903261382610921309787736496823678565349321843394189085430124032111530548555605546725411458713337070504773647020211333562856848030918379901532297095331450074965495838514530004502089911380854105961772466433286387061224235093855999557182006358079697153615359482116706385703085992029935117325135735654949814816132754562733049229287245317291368493601639438424819135294037148516931279087741544036637887724756846726530148594982236970735063553816176101336460157507309062809095317704705486672307549812235185840581416305392849239624397138388859909623226920401211869270063589167197294368318725519673921729551385113121280684831837639361144330299497018159730245253784581909358228286755825094404875049248382954206574437399337066375038712779531210146898874186334121822449710683169387066969483768609609324213887165895574191551926544568718425090290668866871967260488343095460428885994010036915536876547872842282114740797816294274571172820346629080710358160675637312560176624274045291474220835656580059359347015753677290947287443042814025681354228784606042264650417681021696971833001485830132594300099891819200961584393042628629543296935268884596486432474790827567299932798764826063917292231695848604017588471707025470394652092671597417947957822983310451522711782767874552683477947248405841825975275915485278289372133635470206198008714448686795809195057353424274916239071286178154058451616777035861906927018845081844929563750916419195567127685331056825287197883538814540698321450507180701262579681973330558518081768257730273427435351040671694955472530795448226918244065979995573639406544752077054869190160434311549760044793860606343485089147294315549219230969795228170605363010549410174238599288343364298066847024623108231220612950367151947183033851770275317474864281711783406291036314275817786882786718695264931136067386028135588787688837639371838152388222483674756774088032352585357203187678319117097935457751473224524989487841360978772053423245929843698623921714488658464941852646375875540484831070429818533834683315289073869966866445198006840760750067611684167906299839185458229186677194579191606518289367854583096458374662089283013714074377995328932704144194331957124792461486541194589502434604091468552942689789723775681036644472019579646441207654097240945022571890180423558394225623380196084396686256638573097432874772097495735407848118986798144902448704194484712549279898429582552733662681270749634643377491855599846603190547844811675549203404295905453820834606301233614588106044863175270553291556874169245765124804111417152597774416771123157545312276246729776769047091016495585792701035242174465835354924743236639002564276207111961411763559844207716323657938952575681554219872765350356035334336146317724337352378845002031641227576412199821133306183376291332557767309757937317168302109436322482412642930796568133605436496663458828492715196751885076377670493097320189677904210745456392426711840002800038082248157989143033099302004005452563300236774069244525554319620305405963815044007933313850806651981977196467548865044884544956144027027247172245200842062793861706483739807164852386900605671527775166589745670730254295606352355209341945202672258617751528986939516958831503889897731276170784269692411357287816875503120590744977204968568793313429624013164771559354867117696493866383028120578868259610957261821685872748805928964206760073170793558131933913603076052769176561694966311059273227667199575865502623159521673949364855001494596593206763163470603306433853984431496840414916254940423396616546616738746070506003851909291868745286221030023397159601465760822750624518317788244426836869345461452858161475999431078410644170804584468318438112938113745228889740124614669581252820860983504934045481718906483924747739701788998520738768709866610900664470891127372328825407692128477109863745083739181054124671851469595302774071378524070493569875479483710938566336367489456802066805268261086640105353415292102636394651572238334154931380559971047429188957157605222067004959541222892512473427595724796619668280671169857477370963797689286232418336284772656057010847970030349206635952812224146466122383160248506320080828194759672406727055626234268219275657872815167508183770856270763349607949636029020362845350184771486234951168163208769563213892141320645122857131509111427349823912223577220092686194851111071217174560881689372898869780778935435407284206821907287738472262393495145080890717526741274749061291421703107152451899784063061423033348148525899725108529422606535837690588332004758808898876968556996291844801114167666039703349068041196108511642129789976435478567433547838297272843568546412274650059848598386117223010089778253906911362642942601479696623794820655688225061667072843498900129667733747183662097061810964059733884593817140910267277333183211986496812357758767408647107037507025731784717299300726587693456430850245045046262097405692073738881431396135297461944855632709692457647076991428926716559270937901822071225749521747603432876919134486917364160496354712294938619153778117982077605000277277265760263510384456904002611132262992870951526636350837275088376215376821421527938260143375757509026341089154533700397592053734239500686442037193379757668119521470915151243716085508276170905548271176171865077947960352100322823571946034374794085078513742332854305785749025463841952160479828527067624086791442480921184213511065190835809796094501256903091250570671362429628965894390961562657704563420170317231861211518582675088968244088193061224033244839422600966535645748367297913028498104633121551120494157863062498159011600697963012300728778512115935530514708623781455844346353499481062757787716189641020547812260764389348248322645352580681352296536260434315047697282507361385730767717427460547706732747651793057115276624611586512012107206726381351727785799081541373543321341196556390247550955445844787067655111279024049276250388878769500081937426043536803770404140330465946099870053950916369646835589897490556658000166044785794033446110513375783711559682333150975847346578058181233156468478039905420413148189265955918644320524981775833472380784920285675713686053974397755446024882598643865453873043317391443167930132999045714115801348569472247562691351848676799553933703243178859532204299442882076509734181524220835523849962918222542276333723671424689947889673491829556233761681610187371107902321829604703012858903447236474628570519515729910137402962616480136601504416679259959791577634856864456157877961430779383716988524650340666814226923504321801854718096396559498976921030561325791545134120816534081154419646502669973645030577666673152425250585832989444430242156325885077588316756102642019227041356187608076111358820180779622357833343230083730193754449600567797781044988551813549635001451009411737638547928104470078003803370093246090540622880525972824441460325235270258260603194812774742297986896327068136026394656184491976806032224301053947697153907853197952706086507083915034957186621238825238086135999799544770561197444959532020580684083552378060814193790028913988952370550699552376109061119424654413065068347220597653244057113374765424314086424289323179894413018816865958989629778960123095625131114013993651474227794243539638549134897455332163974521784834636312678473374735337958438847970697932303898241623238975136424092760716411204539587350389151097933012681296721725536168188937911274207856200528537854367981180365070359656828869794656269142397507804375414573204134404939005089918993874352030343231748185209075025525069955081772647155570158094715419981852774170080389274745068700458826520582736134358714873967761728121255776511043386514610383503826163279893786267468510238571648717288841275626921989528258031399095099144050107930168157886826775597644677113746245182586889543224084938572602886577095595193736224291303548592125819507874695379049149320264715106951006164776347799066638469562569828107341400984918805137426031359861459867641679759666522477015112099057002299053134278317187703771033136386380236539690836158036195440958435769981129220012639276349994260346850970226986898411679333105888152995465382607628497319870180422454595405602131034372619345328760463695446239905667060500764756742517003643846914953381885875499958051149628799360142862564310650772165021551293648815460443787494717140049847680051991328650313705638703435104016955218921520609887539951989362245384515073553893011980046289248020894968266261515682564505727694801931729772971621585263580640147596796360494285376148680655334482522356204788665183102537401015518971336033653584168354741104125893006903803669946677860746075194600654673602237465078862562722334823759230657510261974454951886053375228474019281485241222931599410463501144991060930317231074387395247846756582810933092316718811795632525862053042161356882313249125152505785185597165016318585957635856872284966128077133930843016571686666939200259991296850956488195894570771587457791721542448789889589464968094895021147830027116840063788757438532584951448202878958351043557944403841618013554621291410135735430632164802078414839806296925269571461306777466929434351017568008335505872773309085148326913189096272339886989723753558726222575755680340228630496517948665034502921185213525402959823231590021094723581775252487180142845438820616765116645237935499091042861202285753086199951942884289840574543832805279024561501574931549234220525077512875218008591536248014576044904759386910162122708948483230411819050970573017418821165185806884351912922159408090141605103168175187700340192532138856266917943498416359564397616388346652394120363836888445257715787966116156810070069663358063107725750935146264545697368852568132113897835826161085059805165001341777682808765349739951470662801914408244571900226564575901370284357087571371819416623254718958241668452295300476238122965224828082146262313391978239266632889986247964411807052628540224507333739929122957685416671409904475774690830994426677824886913113973640550051696229356862528688345847096742138613146678565697268169733513774160445164732100738113831851990454313902801751515027068092067779169988034841758757116003669789351591603052510392420978382591584436710984273150366023454525410787977767263471185872478308459436650815775679168509710650414876342843628907887725767617695023270644673861223022866662225080501375725439083214067869989885195105216814612381164675250333933751635819885984216286079607942729270991923304839138388835184476917058093902021685586470834291231339357849666302383136151866496119638929098463383046772733076191285085847072385477919611300430967621603730629101685581990173750453789704572552073091077960818300410488400506691612496550882236517390365280509644590098620330312323434671850089046145157353223999936543613368965523439145381786020749285582899258049028327317331467884962660464591758150832279150839003431233886363828477348937891648726989330480882150614278019725556291420708150573386856831295031077724560200055871306825624582352370885531369276233975604620296035954973356396229559828485009029586111618030217319642159353362199764116455530149762377381492324806732869596947348868646266404848584468152843757627442684891162024787112357116467237397207299762616379767438063629975759481217891547965188587982732204981245538891241082590167901210127661949399973897917671564186765170634567143933863668812651810118152537545332759740757147435358868306519956837342871788076271002248308342005253305503982727031512604042920679865384603106928713023272131765742952235665589321248232770282306762852867122318963271140909231335551802730633796805024161458445304727898935506895015822685352459871799409045460038018481049177485005673602911087056045809902563628326603727399454278292237489611910039290806585703370355005775798883217775079197591359598569006216810646318247888733072652338238480820575373888987511145320903547498125707352651489794312422039373644063637925401322456944979984866410515048532459493578225306301516263039151706739396957336929065704749727781640963792637746562661901920317331565609785428402182240019581197638252895652587658937584726897419139191288558984577931551524482334534714151916713615939740313752629539866807377171016038472535992132066004608402099485043876954366664093297004201220592611257859146483454317708994535531873832478577993872138222919228817293978756426334554074522411069893871597334907982441207180315060657921394486289227604360613927082968408171943854473793969153974017320228052356952402120978719273548436129401733717014508518316505486179668868440150767562606881798453608900779050368357748720392027812811273482077539001791125955367591883025293729823519470727113399649962755040033877837431526970504588505091832743332671860700397252265857071896902938689086830978410615409979367456639289814231841381043402593089993861668163738982121640443339760540701932254351761584362751505326520052039998297211507274799550319089922426185345994646058716624283510672462481545661758991926810091479632491202752206275620468892407729624274198803681016576479483027982758952642060122670098739530084885485382595644042095827300363985990370023323614491031493232342632879028235768834876781609050967011621011575053300830525821367893708678331549360565745893348435130813725305782487479229134469691148589907428542696955704674973989123365234596400893973686111037438504675459416843125499215727887240924072606253222252951733001669617367020130923020894747316485278234872591860387425282261573676865098606310150678229678550033468713309902817720553695079871174231799119450056579512980199361799440522304695882193968887254823215781303060023563000199577798372543901982916470157294562942878938116084240077076919932333231051653101583006453064857555126044095150031239124089983792354989057034790732401956902087401145033882166861011544268469352214351753492732646025262864816272996479863607857155656948557835715244671373545988348937808833119802355340733813545951252707808869499730804668463871908744562825529422681562198951648972050089903612351153135052354648419664884618572477170097378868739302001106467876592836067374728887883447756715449504324995508045719089641454196978759295902203894098948344424790196767403235985817063395027397674485874336423618071634694158970547584444718486105752808109601659646918624170606163911396140292598405425399787731472867084274413185172012006979280117326629798602263092170193427563040051152975203090742021295253476356787061750600800722708165672184584201971894121628834607814018768013215607346741181980956299063649414440735362619369274465174888716809822868161551229421908857146198514869502470331560551044755341671029249778640929382892217006321464632030111308660013874760843178355573413592588934723661543935139470908850774686313608257673746309090558679923236561150092845932598860919903191421697742695749720579654976726651991849659727695743010625244249312311119598411213791001156581470104499879083855366653821370459175069979564220260786902822683083940050909416697278366384954608913912240526778327179763395532142992948835407260468924841786686372296098502462460112122102261209757139077425880142429910949029777116071365867773850418878110081154880244874992578649897851495410453718306935277708929934813459483736613529265788880558918702110470088774417841996295651802915296302023668770421457959727720976241562748214591971827848985153230345614373315755204835392030012117457050986975046424095541038226984090856812195642259143031819505460433739882930024172743977448618374708018231777431612341224186082318609630008206633150186837426464613308387006241104513871806940255942724107459565645717088508863291439898084909343224838668287564956638764470980288296071508530734904993474913594230600216675989105612191151668072283296232835582953894340354037800580060569524114943613649134810596083007356403189322050331079479992268572406865072661564621475461744780009516164961374466738907435804065667863134316179699745360223014917937294480760281941511617911537678058369173155772353864036574419636045834613262627133784562569014340245901978960360962952668601809118657707010790441081637272951587704286202880754438489670493098907499253516225387681594770411353554789704563318175598255124407539440466610697031407907997317505372959432331001161278344070285430280003356917971305227534287565014121610551368439770114019147966772095332617965939739934206733698378177549115160624784369664038953014964248370835283428489866815191703115486124666171226490584551470859695200252654487480515558904536446684435064690690777878872522193583867125340387795762109094710383372190306324797876063310254749376823276268867577848631969634583241317168441042247963027633009397744548487225543061377844956997695446356667363411664002653080328848375459562233458251946059189851016601447032930054363737562081399209991505671878893576541440487470197513759943925412730040257576731975239328762001564623495960131299204169674619270915578755065206716199223918394290327241354847444143804839595809364162183324379416714456319930855064188875227439899812511132784721453450897833085622984670286691252856584397190147369554617611513110278506195301731287269040421200907258424504084983729950883696950909772605918320626039772328758694787283270695466040048856645588088326538071353113240225378994076816644240160408309187578537542145303067724823162044429274984690156177010220674511846199112252594560942981762126023450779916333871509828458585253619842722326694456753115190793932716387380559700405430195085397623410313622025670937472677774018224322913374613013974780422547688401776896021997995865952007798447383467359022222192057513483997695185044736928776853735058900709952498427349655617768630724361452293361420598556106438542970581021494378748949222209572342916137273334963461408891070623039815370910203073296668282084657344464268560487331115995560375748235067856252357648956629753768801562446653832580923474512498351139082569312022053940112718276316838562584705639778339848327843538185498763469761714531610958795945774971099919936382081603555327910214597717252922019769463396344563118904900608404587699625125080689735530113558729092796719860294444882828513187148806308925187488634447282365911931456319800703924460722943213931952156080634846407777426409399718653212976763044417295357200008445332431558618482504473968831692658538223233973162342391146129505197547040615455489390131514874419988147573164432207305816968571664401806713070188612509063797871917050906343701947700061264089283061450846980578896876041238276037283516796560921645570594952994421389488880692532838616652983439429321145272246979127377449787348651693787513990454932431457281772261009757215830141508829388555996068195352169402941182892994846062037338192618157521991461596903407272497120247531080375039045238688751902236981163932085279505874785015598649450878041068998182901355082550283100512825497905227220023732191038246505243468177633687145630278160310127486647924090029864529389590258409426986931260651448363433531021233895697664411962386722513760555766134480765869685372436787389576971814854928732817819935240920749695552231490151112652322385144782527913764326374267941277747635471157151042606115586970962558201704806997362132990061161785167921942443609527451804726830775313642896130682671827132206337903353926286070751751916845251234121819963721153214762229081684811178827119248236051483204540741979123638687301545965944002623219231950771636416698636522864329993400864260083350527994885641309802980534887870642071769998172093736994392309517984755125274633467814971551410669936092205060727233474196571874082571171369771116735577873262327456487537786641579129179791398746736945742076548116295599331464967996904088066279543777657173358793041291572872711965165002971370281493866548108531756096145556704480197252819473143681845503919591825688656434237253943190015174163579087041671646894835541109144701199997539832658080253752809150868008009627777850585640541774439015115425125489303138095114860578352384068298284240597899409634136171011158768277299295261267919545359551933933825427387056728779394284077643034370499559850257860456926274687914367866799445719543742152538843866209511363213155737148275040992709140687901840371645178902532473927296014814901243638666295142054594970308466681653615861365322754772979287484822400242301347892751311379221073714261727800995754956694683988342086775037904491988810418482404543076402530118816237552502968056679740768152813106117316679883062870581940717048980169394604449783568826548111361527092291743060878852222494569498368306099216342738734420486785025715843008980954742448643326736664651465189274214705927894884100687163419710369540337142658165754954389314869276003712156168341126203111411559947745840888533435437344239458449984799908415092614227248753279908883323150720704265918170723425376453640866794554167725968859893940907191518691838054295130115899792517377002681097869792255448485632911362257987115107844857501411297661691348869512497604934155711236693165977908824100605531375462505353681076816256941674071685378112643341306939213052945753915602087485149575025194914831057321660237628054357676048669615821529395598199818183153688391942616216238719386033448333111686260630924132733060392724911958515110516969987853088041266937976145854173678360517393368047124506492568701973355357700225627022426683435596546573035539535943183194983120955705373044740593891026663410841384564857212956217564561491865720832203720969942963929145133664908786679954529357708808215062090643528935276531306250649417479119552111951328878392124052236373403763893586008904122994585446005127248412761892122161916358700422256520643083056448699924259011450668948246372096393987823657512848604914917174923585409003759705481601296476853141976309677639363352942685253201163625405913596556485097146492236020933514833882819890071611813547550570268164169993110940750401129741254721415934443088032661100941378429662399343578854226501198844480275228336195069146884616696065845922515841347090621244172815960466885420851457594842184054144803581385922801807123913951237752432672993038877134858167405673975104249121110816755383911093712924045590339242496972247531702057342406234636349121212941710282309489789006937984131680255761888792650675210418970641216884212251937883792692560415492279819927046877662884174010875142909588008898634163435989820099987043463193124957245727607523071227209889699982269401730778712402788993769740612614596659701880056022881768562628141320958025558522827451193046297905314597045901456316771787938726738404404772359061622611177933423202126354067294469809916530743450633145378291088627451841457421631351015051104958633037359195393766951129265445026755772127784310985557188788906648880392592106169023310429009379721520702537033615192618306105088753037027092169148637257702175097751097114267201656014495735884600205141556460202351181623688642948963961741151328410568944123187450920901872107991229216671580405346273796281864756014163717718548067016851263131081972230261248394505219490408094834069323450564435192716759201813557184946753636268942073288918389074237741414569653910712874720688891701063975479072450606741632963071967119345193404737956171380878175550071377503930074674896136644118850234102304975453630595256095773463148592683866540900178864730761906965266589795908607400276583535946309624281156099440019318613625987069338698674895399959239920915211819295581655339834502863683263031263364946243670763595291256412713859099051101926442179391705649934491765295622964205791483132128235830378925658151232821183417685508593299126389958734950656893950166555450733315108252513651395559557068769115405586798834877310580059199859419537956502218972111210136417743848860336117731548022142403122554736982774892445790212145975339860343366584758708271348823565178376068546449912588052020527477677712834952690113229811418066634830334136169085152578607938169194186061196844819680026255681404022939446661107664626058017250762225730796188893890636626300422577664603539263571125997471743985287021587581840609146259846333468002878787751316445371422172931858068965130254027919041328757963803635321471554593822422902345431490913356121850739029198974410662097644729888162821853955181503423323620446902102732161837388064393449356340959717796117522873080853178030893705458146317160476495384470184104992974426941977191918142898860280898654076986380132796881860379507795018156113584349104790663502451046872197665772463042593535001887285546008540886919625209813890841970466938850732965592150648064891611421378586667916608079563244500648390600880406020277036741390534014613311186790396557791634200017267032514209472978854770692119298947912423322410454601426443350040562691487848648355003025090592953407942490971735052350561038735569171984400185322062091685187935289494081783567178368684445066511220225244592382981876196460154829991066762435206099258549329582960501537474381705105210273001398371793428797680639172768423291611080998933744801798504156899214008258994745688197914597180110176475414625724985199390658865364217450555087786564625182126967056786542120804145867995404006664531803640482965523902908711505805862944966407261068076401525193628268741593868843930120771637400004609729191839125166394043214329185130310584969452276240653849534423758391645290090459298910526988112366019691521390574567033065338449550909808844976209754507670738402362065761798299875769248635636152311902419423133518570443028779897123382059799541457659395825302123023274476704594550153716731737991079540423164006455382544730570821204656995711928795206757960828593327816103929465019143340114974060092396400981730939945344478003869402151436336031196144184748821095526950884773994411841786682805691399423668761320216048640329574044173834758323301602208426847392302848376801901973743108583184347539055571560014194957071220108639936011196776265945440654739817325187616825125110251814741602688422637766045958260463813230098911122349748541866772808826083304394499639431245880649658985054614052899248403073664593883239847170712238090424372266518176066942428654764418817334151167927704805216734553200773379754553513243094967166274220287879417867065605537687004541305686901639927366470535767221821751732083814306757935533289468504890489572771626421174983811780922731756384728922522377000340228335036068098274987556547026146348339757732605104882014857902363746583247892040332801079311647234129995298616727996073122260851506671198306669743843438514583921146220547573139486092164682624639291942904289096252305984912907727199329584910883851215154591291714176477479050192913005160937479639254364734851554134612317162588208032305817467227202507837491606505826363166323088215738363548854494386833114992001190788132575401169831292401540557733911998540375319602110945385256654139775966477009832467908213644848548701880298413735546750598739083939822812963072628883357255235021875141201604903636628171494833056656253592515338964126884044110274136191609750810145516036919391476770925255036531852931989856852089149647522383149281970916568914300006073592400317737043894847208034992467431385188922003164936401572172902142890275176256512196740126585651445496687783012793677382654242910453909443288280788295827633931520104285760770664522371615369512291790331887033629084982608585727466454993086850376160637328553286956941399113159897940500280869588535418777005061049395512662091082662239613001747327142546619791844525935565045050176563722899864533058753577213215734482612297055744058581154338410356062548400182481416926448544839347175969234595523084667704341674538529479914115353193715325403430318896099384393418727383884875909781332157234186511432151518297478491329560693950112441548008838453032370981093670933681301786030877843520372203779485405885833906322052431970664834338726066249745748855654727881972794502249319640125718140642501984826805313763658829801779379926169614538675889371081210195021241420498150409518428109612913521573729360542931971106316289453859862098672329383465593485425427765508604922617221116355019886057510024085083639072057958236840002999862982583364592234662515465697450314620849717379005693189272007856248943813211993836828641743083247561155531558559359638235292053773904478008416223414438373664006693902178740293947297333153389246801146345157928624664858609663762670776205580799079215103865382670218917024427355391585711226925821871075747968928987522600543617637861616429150113482743396916100176019607437982959339534068484766791109731338204506893990079266956191830749498412306321208750412062492464871119957767883865103452059224022746629557883177927041342519301080554980426492392791688268671285175023834686321820202101886463495744049813371032193386639377316860066818403597180685600079378080389297110394889992817852782595725153577312298546717507784347274940275902422490462829908198430339817171845503134802277637114822497805340591344816713257931065232949451956343694848281395902149159439410803781129402947079199161801733423575889285950075635129728663834555302147230817756535043631655056773871374818120828037828607255622765847405113491590043872832850027993465789855792516971545426131107967566590629272686335531937775271302063900185077506357236674122210062558560444653379552988387824636575339243200396577868107737691753913361442116546448188153270199317428622300748849194823647419022046949471223990279355522009770887844669618659587533503541396676653036822486067859026288223705822294573457400169133216803025802605450059094823311096197256056623309096137479304333868258035945787619879775311713990002943722101546707454601348210466400094444711900961440243261712798871971609691474392099441301858386140072801456835210535463984363679700750014982110250743192614733269750633370826179320614638300078713880479556181732391283689087883389023897628565163043634296646779843976034539079268237735527142671643336702620985797690770684206775189515511388936769172450556322266538655290880133991121510958533260806264579099544137505759986300176239652751530742892805353125103736545999583681709798879520307471359877469186503556834647659706127631821453360095213446381469751319723134692693772729159316787356540424317130191392734048736526707616313626035493889110010479884013539611205551586583728796222413507083816409959023225558674991909719795297616393394054166036106938159682092173424546592912237116377564624474196839262780628866760591129149192721970710786216850740790548008604951172098295018105415225059812167119462438161675909332779597547760807870774998892927909476960922720012802710902647597963768201022190904694938305329105675768895797191759549153024812381856703493034109360031161589224226024215265676140269149743211918165415066555498490719175792970459040593407415321578196190743958208602125304859670540658983165374756942766099508533232545175655675107461937335127167341128229270243241619681212964885481996558729568466278563584008554299841293164135748024062207227130713792084220432224866376713697182467235004389938956578623995051002679816836985990253283434879196070163144027292449537164223318111606842833926766170801348728767827573035271688338729355903457505880931552861836359548464862300901989170831301855520515386203104094773340461138829483662500312763656921799048774788867911522254854067839432503591422265196069088869716472538161584633824825482045492420208087846823559978260161349652682074245954419097869577979379055220470868404298305500119524035701290865684163760928401244520460332285157352786066775075499746861802907303543059817312958205582178495251643012229225086641585048135257587740080583021891228858535462734531450134600941286498233586894506931489696631677752746464301718866946793705703237200555458683971493823006302224231244419001192830642232792675179619906696640031997707615007108596450035713313977260166262506545855082853782012441784427635738732909903635722091897504447641336256168727894578419229399617173735882520094294282353091828739559768989007617519943315063170996833502988800630305240617769203731468100431927471551600867302835744258215818693258006391745754045338678832167752977168937507600502300332883584167653375206644978658339066563495234410551612703803394869835197940041876461315286156625220698938171822761826027555696570437379543546251588679142099036904922992434684489434671205259000431275722998423328728578182244264199638304792450629377612574297981568860581890895295141727993686771614362792157117721051444298169904123931476280231454648120699837369886849046744303209739850002128131509464036473471773029653865571882137322289137225224558272596820582408802763370120689240801474914104683862888569001902236132343012781276281539320770701717708154875899525754455674851803701811805319048040192093471467350091417225846504191770252175334675908597683044417525320262046536765493348675874579935726293104892785046390057700468460379885366271212080526487611802411711623064256077140377956257398224073968437696740855971124214883837399673999214252153484335925810116213604928900754549906855917872282519422066409177458049765903093036212502275594670683613311577560071163722100350178872172280072488770978696362571252033784588372958101944542213529860216393783654456271108354474866539397110798974153022745848122432481797558760518119899473057502518118264265868900852930293410673001673394029157677549261956558678629833350116617040803120917595115190336441335807571396004472442778704677398559591266798387219416766228192839962836139829759902149970390650447977977540978124363754156809897024746143694255787743375741880047766371068986226337249285283739687916454621881497928381190960506617823964240607777646015810206612263437412198440871566365552166136023456515981861944503052269047674078264921828399855352831238933775101983877108249200407739729647824872848240432925701938829338094145017602160854763807336288733073745011668163307605848930092982651676557261859988305237002982689564676721310840272469797226222761223558734208441737561898728687649802085688162247972203832205693366052885824063068665274901235897334003069279843489157443079366054430433497854375592418496736461526072600595731174477264766151571466051341554236392940607201676433291991748605752810819550814421321483467696195890257564272908354419965349288143869588592610208574698940672242916071987685290383080859549793752037336397580978899553748348899454678185750488349614066952238304305563670628339338800429138142640241431113386956280542660722243314448663145579854206391599328554703926217549462116468895508345557335620767852446957369249082096917360711415795250351736129307912291942850449041124136334675114783076105669510486106223075549836321291002173958857931085363196804548369291087246990540487333871652664524280676018867081923500104108899009866870682829503287225012865251842755617670019446286730407162802991533350915380723181784673944384463399666345996962449773464093768312434391652575188094226554686394448780541271758678849746077265700888006594933664575625157482405806290105163220021237374070491817204674234560081361205191625695273962798111278695368991341902793749204550865553827786305142794957735351371485593085371571832155036784707590177947123074049955283596861864634409999612461298859131370905626189978903666250023415094613335071311823408345901168844889952401221906117518953520041201335077502712891145930307680704696278064505063136530047815945773985809490709928069820990319154615410108401215014608362006775698661596751422664535650500477696785922902049350178272753794076165176126917050587761197775611726138092187068150196995032937937648483876868396562506360189756640158857808118888043333555046931834314196759929881921244927587865121797580788656400245708759507861105023474826792866202230606586432850455671454535442513578885469663133989481439260654595444620742655573655436986062582950361990781012680672617709830443044687799384526478366738439452565609996033105716267937330776044965592050600312687455928037020088914289591285932537508124080685701637197394002958201763313283550539901146918659246577388792277591479089400550171729257413988493386846882438561338422062415812833500829421787290352394915603333618266542342779442824917220749335641366824283794796066943347570107756025026538415092299529441296335206663381342057104281977177844676304650108241025687468579045603853178180896268304870460316433614660663294471520664666847140570305242446724265234475166756102436306333411070251965026893173456767469848898042754749781091955644590648106963740392938805555653580251824007281017102505524208601598993011461456339160908645507888482736010638597824657393993270624378881428206948790523578783276004263745450891352789879571718658414042769080114157593657875060999203832964205791434223068607126735868054237599035262251239980533969969100528467599823173458043982127456197593006132836795702119144855173211979761475886576193390844579538121216018229093111733079150973159425582567312293207106420637147768056803031885534613741756150063028709537069169251750561308905078627622360551003204094145790227039934156808097740946246521438100385411684952151443714547232731028591185445485766974479279530167775160740580602669316180435050514522475839967422774646095271825465854377165675630519409434582418799767903888597942645234415198393733448572664883225668056745976877060209852926923803636651822362942686404380752745830613719916489486808506676508388696909568542777851814768893246315049881634732772087587347512660477913977221521607324570567863726300771371022375855131640858790489438388851601339391462654447581344608785326119178930595231147974736574156633564999623003845442315438840960927989229913258717514499267037321506469091918445123636333987110680348014143045538989484495360030438255801613027443581862569094223935269204078066196440453394850637000757024579148511508363141606194963091698844094259928771181027564423371680511952356355102912179129989010256523323695488857703818687927825598889925761343703911801793827795703498962755375091188925892473146378980734860405697047461094745846829864134239154679964587369537746287188502889295785234355037400373313111019866884471014463894804508778972490473670163694537550497158981346233759986743926431557656822996242845759683344251681979115303875902070515106095945833430973519073958948657949748773874182325318215899696156753095132657041862500207707612382270662635238866299748478928675321178940986406872131677903922309747557950311707707836944711041005568342656215074932032534883007794822220021204749486914317123015943649991423848234182134864489832734909753224440615529089148566258867565865897812534405133639150262916936234020626845724654461760145077202964243605085711120484919338601880195593848582940285138189569465012910646152541873356206142529820786955412068858750731348743913577749256756561911849389409708613611369356734898209359481970084603257220811029716428658625533720225436590896896865908600573480674528293801738111684780227475688892329470938252619516175196900188323372950600240359715716472210469065654593039595684678191897572892304747468921526988068290026638297549796607613476382501864230640336407493365645471349992862056534194590495572427413981574106786293898747038872170573188151071303754945082093402848979712130713168049962113101435733228999383588628755681517683425958938147202045263309534616576562331996030944443412873460943925446162070960409343544821534803086316601963054198280812413628107460447523998908009637203638801018398260058822186015337782050978367392042086880212153736607491824365327192619474543022368105220601579329012745800239329159709664358932417371378171892390164924965550732770870971257141467287616451790785336998920644883393265735223410027585680546164667761758034945406717045948691130800543231422925630046387326468445525493450387488706707513035283326082590321376075476880241379835316906600361213398049572827138339726781290745991239194673021951403317504617614177743793023215970725516851874208828050448595716151734700700010345399987166229214358973371843038723974600377411029379754816661053951866171997439676599490366683490873968218836775437142911744536501936656516226552531403006803116597848747117853519065922299184078913692888570554974974000723698408233806127655696590299397099997583536475957738303175207544889109916651629022065591068888075085460244440580197851130086535960063600069751263609151664727296707637001131345036416988262370143683515512178934533426854197041776985870022515710864515521096552581887186824140473692354081933502020977430953334639353455380452489645948677917649133653539727247204336199038180506615859864138986069107285600523791307790882840406705511313367144444742056324872287902138729322113326064972252539817266029542359255034644739010859393888054309810516310309870511381989719544315240994659206896843057043749603502506929627766091889305550344714134857299225831691364050499583394762185238951886438617755401786924543235419236813916451706290114622160734592343591644709410141015570234984893158439686036293359690005381006596401751147319867167882040791229635259077721901733071969524994677397625917916818892277486420138109872214875213849149717214039727156939343076949929678029187490805398802981001759148118524768187754709346290292145374715211239254965158376689287902781270425750025949386557756106936460572030115547551445346271401591377489655201284280139507333053919619582727960922991748860019940657647350452430591469569691194974945409544101111470038101786166121161404283117596058402897003142836164320860022443637769384715184356545196210195707039473808293329009463069666774211265975687153543600736502773783980033482826687604739123648759202629039100281082491709994891016410468222462345142802631599821403843413138700968205531155740559068962324656238385668081667037768779326088500937570749265277224546839573836527882726640650043613460276947912612789827074737544482782641999613942085321228322657436232585845834019220694975007418704537669093811503439817222345081386886999695634262745169625218113246047198644212147853132022876600332679804453679866886938744269377205138186760098047012290187399961235630013215284100968906710653897780102639573538636719468153089075787300925434722453552663926210270504911904622545168217400147099882333508702623134381900573453316840219819541154424534776848726762260254308126403395517757140631088867318848779094503905966489739990515972978017064016490207719710373011905895719556672895723753831682532535322714842631685946601337462671852230191196304777917091748649074348413265357647342565647944658360903206538428616732660512839867621342571783627964842689372198403405457232522511768679575629745230367127787232137634723855377900577495416657686439879679575536765145184099220916477435206359007835778795562839547488162374115814761517754130279693383449893339544450875144360686684429716153639497691754205360495061477499293700135188506304924868352200277783284984531244125795119633330849670178492579015876152629666527054108250874579465812733789515437193636250898082894547817731675108816407279233776772012385676398814684022563194464533819747592201913295882554466590594129015527944147490261742173601969585310665274681509571999559331561250974884972106897279090951773162902122768393219812977392663143403160331079357807618626396723494417543710124196474159245926664407408232380479704594221780218299442010226551466608325808999676622922173197423861880402256285309255450908834413423635114798508368895375338901803411145244018660190851273772438275615327053296350412866460771982120764378321745916467134648463146759293720175175613471787980372054500381588699301955955677152639331514315250594742301530915811935453363001131125828947432028763653353806048417770325754113459318381291579687388743229505790458867051352178860231686079878586795780951970413696679616256320516702447663874030361244036728315208105380442754824071515310795496546084159093231424227777554965917766755844396965422275011856420912027087581369515024506031879844453364375422806197495996761733783339036151756664549669739401867630495448324442562466889969560724987925064861650458659538703689172482410000666586694085982451080359902139265527764906390323701943046711185093360267531704625838837108686841824188560627555256465993772242091789817684971808652935350445779235993732075527207664117615341440409617493740972292918189720038826434392852595082727002085640861337811334732734089857585645524398042953547507417447215825644418309805563587211730295823608628477460548639893903041042571763914589254602560463635970968413173073346693931473650584881089541461751373199627572452908249894112630999058236659985366104546921722785795271895082181906687457810940216265367955583306587927268480080823145347472009205770532954600194186024091875373604627632857381339394620534254802605189968313442386919116014067737407403470705435002352848578428657160848836316557980463591780401916499453374507151860091050861337750595940645481110013850397201222540914406354131892712439282047832700336361964879387277825025701556952838873951485735196898251972910598893963838359869813322105447216334297322683224457583504970610369125598812344341790322565815779419651645511082246165467203828060576082559201835619389771926020316440618144806941056061813409834252383783050406233324431450641471754788391151099176804858630521017124224471360793753851990097065409540740312023817327310282523757350696309532254154167355356112198325479509276552839115062260475299189562519483282755647130428301476414854500194969342850616019376299961449561933595777949080348016102314030485849928387485285456148174554907462973845521338876424579557645461900716778897383389067515890281417880567191810659999017430676330329231342080603021725829231591128917507911462096695705575039656020415658756157873254158676419690219712213665334334892413405585692104937873474402564128683028443705242556982019521760921168785298197618479376485773725817561699723427561146281863727800630241716840043304880396127563866084170292890036212352848620562284950263326122797192941149443067755464240331753728509342064791001288646515772152355591562737620439760591628790022575459190485060659226486955150945430177427746936228634038773353797336929126089571802182146969223671910516288617856277477871841724810023925379843123934413505238005122503065366835685150590152331015253557906725809403144369200249603193921585733984074915691318197453752672525453603479855382635573772515594475030123593133026551530621673164800643553596275650099086602813083232429039521175201229308806224297864684705504543588650528550901424305822532739707564702727885548185592521572548638347506960751418031744655530089815605117056621280220267939039331953404023204435718466825650583656992358650652049623515068403126967811023961809635731402312189184569522698024246645022065384316198792090060504322841924117587557908747256971091144546850052399278375834325580185532056062105643175607313176290452972455006552293227039470301065408083659746445043379363425216025241828754524295603259237712392747877107206121611778753529181660146050311432311158868073900101898272229765595179630501659800878063593545365529613198497673551862630394207972121205294185037810196639364405344902457947849375897587127846808051726432225420462613357125980845461313942195839196787381365289320772520668037730368662509670430490965919922387565181953927223817211845741411864732169700352811577670007140360027555038055245159342891660915825276234881016710670351437749126898420397686477959013333680113020834073068147739903905948835980224162398867550565048247269820821366043648249599715725751495620067514950767776842614955798506943536130394791060238210360463189228533335121911057767127636913682655386978958901210540259214913096023227651412512195634952387707248104905475503713731420828679618967054976835010214005057325775080605534415854722388049054191512280459282525116526271141717232389072579586213439350179232420766269484566364236966724790774038289123318988795734156775494851770630195113995223902306123796216164813212366032887725507655249721464735335339385162305725075552969615958289522902451078390091242032890292531993469026304749559221252415886779559996236733763143499032414486180069197232840583865889447801272750724513221142104964253299390568255050203390430161677717936085771883651040555425249330702753943145534308961093435188490666263379994129753542185241043686782437353780170237918252830422358739568939917711016877997623312173136329789755617399938394967396530284595804698525127436851235750283790951540850057239221941341861771104869078421296375385493697325764094555480473743090688672752894629949308674954590595160390036611126937960976347024672658144765924472448958854357143095404855196271602305898710663134368870031984928777163629775431558790055466548340486399027441422240138867500902001575644124482008660851013552015607226606134682087077060928177935344709206867648972483713943643572150647386608963227122062600674932020425671147720905191804543783911720432796370681168498308007582767380187324847555622869663620005709742743191595054451235699102253617414978867752627391060360084238417921030710246789375059480326009841601386323534969581196445988119972494675887825482082701922507898948028823242256936000531300336233175909691031309265412285644714850751253734133022190195365083757715676311002806542053004321705688680402015502874558687684697777510497677795017010855850854458786071277240801480772177500761261916559593052345538967796436623443679003242276855289093569361468098304402745690342715036871190155505958180043745114736617686982842321172823766508577086526800605159671486103048896563872367497389184405204966750317705447152497134248103520379941160902215312430409203675951973459937816940171476376327281522061676265754978931695990234595446831887100242531298427792898400575114394144623223007729592753144606245340378682812519554672636530618255863692082651988966913860373857831515628206289654354393659156448790359871192188370913246183149195598509244391528966899382908732503456824387570305994004355505908605701125320618649467926900708636478994655770462109310162127392439341871357048746004821967953954945012730659809871193588571721101589034783617598963864864773952244352971345538249364444916040003285196541636115125673091558073345144982444733999757366221226475572076587936036818585997882237344876250342908524318182360925647060488207883918024502509054899422291663473986945959526735843217786019605749912567714613652414263351267775236595303898433727134850034877498465230536576536084340526949432152031993861020276694454167269952947892954396856343156820998870112119007003070307909668290766477086440427036675910890157563200040854314298111314213156554872399444596515455545886408538350249988011031269583753289761109410104022719169468418741564541277002610449381547316791618224033243317124884460295905976134600343289313903389548815179585760966620702533282984483979969840752645549347738174005316785319941946782805666674565694551030968619066128455359716605300217125574416263545033147775275027601440680609797504906460674109294454304942791980219787159957325566628348446984699058429957415887896526015274063481083444106712190055726342353048598631151886567381290132669196394736918188516521436582075031716340568706522116822885125948524344027047228168133078963526942090523715458960097187642402211402109984745855496498751547677440249823120150732657165409169877225034282604480362056684133916525558557798081923476355881446747430421785070634574199949271894463588424020297911603359691557221209704374252258478029489088596192846543583653057366202221893541981125416016547050965038840306045501677010774988078596877020809884519861481977880146799126911220624973606323991692180616478406813756610535558674483880107333049843916602954631786928214036999171811281020821472707440391190972173350903405668039892145325950760411421395616927629971193427060127062175309997813482269293182291126604129347165347672662058525687112210337117504593580779702847311170572223962232205461299588375439401013351326595436841491452904137022795721016768673147235894052431934233141232361999186283541925007701758824517014274911903397460205886494248104994558995492689661399371549877188431007587209035757498056645932386526929519367788524466333324519116568391074669104508888840899215140274232347405043960571667422883407896221844088766243220956105730329575943742566974753281325622383600316818800682598902536590504667692911683244480136995800965549320705461836879079048606162227307374280142930987881983404106448979925801829782021180356737487971894384907181154606914700559877160979564661248609114264812879936951351661443866381055654719088803795184438732023116911179482765661299597753013316210569720720266578064870467269352517504878434570657380209874497308919663158545137451747349016408439724702932215866403958085950699961421932307879621573450264782698514345028239097210722460901815988370052752714243900421208415103136790722655836316558163996550161084390282557818851063870845386944665539673904785875574067765994932805472488534210185787019834660187146733327400361789876368185225149993338578769086488361141625455573663523124693141768684929547981551842221043102945525014800127071151659572820967420874282802267222071158162337240468021215353075386791923148228731411620984487035217388036205139677932370778979688091847387107955340748844468235860054189812460488452010654174608530252536655809174494813275464316984734491492973901872034104650592264693185444719251909847855577322411956053005527863644008271706010148635930862037453644071323067357925448457917327038331003021704337483698510136557072480739795466573800461410787928199429106239368542180205133842116758467694850125397701421908014880388947463161351363582484198624735915203307383392507152067010191773803581209958160976351979985232653107923765906248911309472831457096926202025731734223360372370508681992140395704417344295199347147996245724565997153738827990582846879118693474462015734056941058319190851056839613927486613501457410210644065777134490243369670709590904325222736620265883203975919899292622326510693720954368209494700842652801807457865757652767531387047694642924648893810176572180324134691963287837333294974329910795806526018051561212987584909339567117184399785127768098090488549273329675652186338155990282017592655068937628920606113792748984832990557862510402027765107815920866826552093035235401958745767923245135098387999871346611978094543407302380321026180343187631590285119958163793392037646964898591598769639128129678412376262409230131465723961224926657739379859560736724698266673017788055000063714486191992022746404331680025768661698421283754823556524580038981462568188485189877259655539081171571966407113477078409043654345129136634943397082521302824458439290988848925777625798792439235180754147701086059859879465185426799362712389119565905901672853494389284849200755561885605006292645858546767732289050415682763078193619691797307312165381766707758115729160371697077575538996801049633307157346594673303985933277342256363128955884862161330473657500413972613954413428662667460967919955799021429764508460314426863775672640413089679024581756809781148569463419623528943296166138546678942139530355756724365462981215392518786600406537949374521176011226852931624714305784136861522057208746514249201485105328419040167596996967758793461252981398668806962197611479007561100463768501758511349122573001485835812199445247768249870983587036899083640583538107201792425915732170787919003819487019437234545771374081475918736779760054276949605664387515309198779555346070706672504089857922136746588499448307599723589107560993663067206110124936906467736116866937876580589839969218445718469064045985635015312262113777598935228878759488200247332377740792903942056558392737143652738644453910499937298629784273818781739911610992883574348325718674242577968782594190136043391151846848477381323536203127444830753200786812821607143434705476689288417207578183771356139200505058754355499933264871630540890928910133264335486054396709395727032157016053607785086439720716709286191629200579322515697219016331649746132325265604094003047978033456638546678560502043228017749448673802375277938553034145580124919300191486107975297594847330380536899222711408461690313898533589540481045610150509970599052476986688890404474524460105458622499070377717993922577742811048418928824199814733225511323687904027880591328953193684118019967491694527360808260909691196995001136756903081058801773999839656335876285371394862993864031568098655182982548878025300746348260102644024464022126188772038749926499966709648504512613531003346908446070834414524366793454356883229401215505415636196498304857818595936111540578596958846344806299577125624376767536201906246079989416947801815835586813049122398015435401502332920126022458296637334844424925429949736678235814617829658582942760798917549966225190511527161583522460104066788943270810090563182276989618189758337452471066099025924535961892133913894556538622296523655603419719341047312834333544672970414149273653031358692208378968985618466529727026105507119997388748379384124005332280455345245516971697331915542239078587488167402905282899121931644515457277295441772475730037915241437023629591190962965836262044213736661949418948271539827589333422568658296755434405275309324620701204962038300612421033737494177877102905480696781836717533220146747846748046112459625075793090707341165120499121518681110239268941920657730404806180592273284541149195420660648683877707757860427904891611251397772669161178539604339875919610890459967066184253946642468918138762349271998198068965212426831028765473345995798511513928786208275957624607730522437540906848667626238983171468152260109956714389293691763690190641275749255798625786117856290083884010430514828446915967399953658242230414583010762840994240067416919156485804829481174841485900012852762967746822390872645550543977998054509881708833512923030268090518014023298195111746224055677759063554348986393445713565721671868607836711912419568408398977543566667989877763213028488411146065839072190852416446023317950654855405305561233376481724914704862890091462763560689901284890196178497940804816373072921511380962215771997525951329249294274747738043784438526040174751573916381864346677253676726925891953588628250861657105783396560086342882350019003467278526784849836126628446571130029383354820278170018435295638615924623481037849693445236104568834266079964092641053528444342074545693052529374756606236605625028834697162775441730505171802024911080371220906138512455095621969051994596962713877746556941241970624502697050441050142341854215143432831200006327857230573341866039054435555757532632895400484892213348971875789457240034779186829555886936375212021032522953575466416626532500108843532820295238489615919666728314946832764638096355491188197766648428276582811093414108040731789911151367955448687597993170849350752301012323730386122786424606495433330520229714898154869540268663774961796589131581924508390120822240495240720999246866312475765708685701962305593762388877984009980171229210456243824338283802320217157020157653595438976167141975156763019707870320686601998144329898640121077355180759868154290448580838410998513659690264020266943122025838934016926900263805792025867870479578814876804905843877105530052238768182951599848989636642452857525019661257933069488912519288513158347945147676731029078431375848406819025846491526518349685417539125035882634649211857813696403969984353063990344239254652200442062044891962426237031924358937879091836089333897111905303501646274100409505025805754112367028613832138398475740204551128466864990960449799993987366482472666389500774665052330302571562996778979962287672422819759173732408832431601527063299652968206339780020911297218545062151619698160327286422247108000340646811733162213725905664120652076115223241176184590187528343123052680299970113056625416519834946366165433500895159525609451550589786831830088873354544538109659219680973736334865576044064289770775195050212827078755271385107664565263632952697060012610588403225135731884882588718384907828321643480505192328654671738837654965831337120649649968003623214669790962763323049634980452616345387904547947555511382750820584035817236803625828890429694506938451743880166347838717397446573236651623712388523243368133756938257892444949348376227693346684617265467372291556251729463944282457722561583000452557437670560217538310509448698744869399692988932118228577365462632094089022047578488373435429499177757296237501502390857971998752013709833506804921246658279228511923302982069659996981513110836662378174470433785552731057941227670123692861866271558965526106754788465806511843114721422471924083965849624577409984931667095608043424113153846400432935988904674653286100517987349574665066458521573152652161277439213684654703932608715714214997167357763660598968999358047816799783950444233390052627454047227964716957917574760399524609273373127467117765586924317863869755150739620570617588740890432009383524160587870741705125295463475763691069287998823105538978388988842627558431525127527223340635951348792180388163852023805585602227518084129367328102362170693798102683224490569907485497032659922612876846657996437375699089416945992530568564845290771257415994031847847560433227896030805595906564466309793700013809704245184768487463275635385778208447771204937033717835430120276691524484762630243678805497751924121934054466579994116880056928102654400642835850800641865688301765623235064570152846958437430287587454401954978866158747145245719121295866792299515132353873504233106325874622168022654466716750872341717454347650837454652791414165267174119157034462859759842921769599062187647642457706181740371378603988580477942378587139361289140831240882178742660674645907373171269905870018996566928149353023802437582980871826996068594644391949476110001940494726526513912899360891245895655128586580287166351690549460900654720594710490604395286849386010010697313440535073030385616204842284893230313641155490954199807703571672274237256794808339760200160181234312429962984282059535184468193307221210609559618663023579724737198743255631990406954063153811986155578609274614462525728174520346994945225137221946317054049169581449539594782162871687402686766468043607425723432368144311556324282111318671863474324271632779692843124490062642297650384443863349650269588864882379937618316924294994322789751742448553819621700056603698152192569239963504050922506414373972173934146305018103830705016041195785058827894356578691997109873362856644847439291551390643167484064860956930580169240403344569281495395770875634378399557882993336373821081074972444247209864284244035655093524872854053435851539740054428779859896068503826661584120617173198023558210669603377111871532003443249072178925879836577990879764445133330376746654267845726151052810591569288670924325116337456007391136625347274561972832401524837578789836250642891846659852749973736294404256834661840905055678060922581501532286094145203804390207788957601636851262153634732998583474905110438451718223415013131695693159528846883851092185408704651301789662814476047581969978722949430156793227401696826707870877826125922780675156146318047113666313683695350547293405917311357525260495658294948880512579163394318948151658819850723684299423186018540315120309196449462924942326883867883721189032934225797082506295325679675734085194180814176935827775412983000879127816628384881388146529937932537938852214024634979035057378452485558894838545592838458708372863388813327553639416411352978799532135990664122436583825106329417796019540880582411768376779862581103140437835443418297908463222016694722184272615367571011278131632181248006191004735587203680785342452666483935554272416659464673318712977559308332217364152887866392432583845569567401184887059221489714926342738762975776453315239730360886336456065634977616440049188672296857052977202791661140010282020680824329861302102739069863530360674848387801783212401665654008076196187680130198279125874317314196178559934312220585570022492032941618598205126739298552592920208738577420452615458624864812445579663242990500289727251422864190103559670591821562047598373693585215552661765603958694520517908965415725429525387857367270424495949810790629672578066173817764272042901435451204317367500572540332604158593546769696243035985589345911046256415012135499230448971447812611535605739939435097579314827035508667241663732475415570205469051581981518335446340846456772159372213609633093852860114133199363945232549286388254693054177634198548024890772063450442394452512132039164886352468709911194520238099981766584422962902177431709898814137503338598577641361486993249903831054178605876688847417799641784581625251737965009184194498156503405350483320976357392825515475452615886508556092685268284681325897988008947938512658791179294254922903131352824255507533200611822906418578366797175299116425570546233811958696095523417898467415456132300774222900642171891620616345355111557934998010841879070299262191941556721366258974161329069538046918099377023565337921808904723450054935094381937141039140455626947592171301682025847256499425766693851778782740732170261114277107091087057501956280794378080841828026606682143996584903193902511246604331660171515510653360513207654448259756719004465384974378303498830843185714640301029438878047732091761705582523943134498420544674291343578644487584138459373046730284889851162012548777899118764293415267630834530663519005138332605455593581409369009796374203250799994149340733949293719307425910739862559189044759990886694060222668486977441924556767462296720760866352136489071216208392055808818745376007036385271389875041303925093595834255140082986350645131789206513615346089744286275009300206588523895279352955353431100647715833127473340321459526533628678386702830388006099141997978321356205006981074186897999624700072966538408272540546387842146723275978326777279362798195165906631952243905505086937838922339506318560233918056187884344390843082910635771825369135785526550569022143608449967701781712746490426734600030363598801961952398853383138453078756349919865330786172090700247440045355539852992726436788487291641836071920172322881184934804568237467129575899956176953871261867152140745403083193630469628982166454759820300785037633228943438447545402371807833992113396924068036555097633605723994817116625360074316281057983047398448486384937618505733996490930934003989003791322250936613402213535510514428690192853568211893020063505581183102042526149682693620469496241387305835527689301745129005075276551033716722962773113387160720313461143211082933624010402517725828249739451167426958881840592855603416171975380508706894913324936257473108352019522052863976857811617876619516554169680748739487494216651149001627307662083457262012022333594022873326146128292276909730553626601197588085059272554802750599395056017882234227657286478768221554681708098817623523431393518494779696510545754198783629070307554812949147520692028995455865952322748946340625454230568954940882898704659463335091344022913850876701883005393401795665405015478886425278095094614438709602894652488688971235607418610984638499097608707095376226099896554983216340412126187522011129947632155839452598608781266780327874087594882556331122520397347079772405134570498391777798981472814810468853831844303234188601321661421396799324262950611276635923640829553031988153432523983553978076832814181210294220859502516345115924342280063450164380665656084506761823140816136955257313400280250037522542896847209852267024536438064801892486268336117449186755411656969910116287023546296447716179329967344701077527490787314055927252237809924978746079570089237351702043851772430301660664066814486935566550349065131802566302678876673089105576089602987744565544479335481407947791103717120719804688426327098699578300038019754150043002024260915204057013130070934206536572567159845154390015091109184879358839899382675400906339392453970056749972594310299582679513192913228951663468870937749321841387890344935791852651202066680874191179891861623322321783290021085532227822313805401245173473818573923931731934602343574367650870234552031359407289978664835553242499928858667492532064268788417545181899564402284466436375870391316980405493494294019336855779598172477054608091526904293543933807091615859041674273320281058051432610635016824184614167085623547848610022143279914929147766477359551436209243774080036188703299991981893296448880751129032126217539766017075322829785163748979826875086467572863442320697748618676234324801937557043292926208842971439597015963240772426300797506974009617858492016431171008126559896314237355217407055568165829461464057617220023246741745150993781158563353335966660176500812821181936597716620880642229722434783574027219435937075083167091076346859418245570337997485660585759053287293436575869942201763326046184691102215602074429376575091015902177451421442699224812943638585966970797032135652035143477991671243777955075737695503879582825774595003790022833780245138346056964694650741522035373613372419398181270138304480526299207646080865615375455174409769380098474396008998163343363103123038755536504111103547827948001421346265926550331302170313667900636633790550785099889525173910839244300814469481671843213794414892579930700743680588115630666807685671176370720958130347258432880702371938412897680009065259520192725332292483397608902109457429792443629835675881874345656495330029180369284430525408653058959676002368104958064404199483573480907459685838414749571848344996303735796996528132770173081261010352692275180135175298087286275214082004135731849871114106976014516884072803411718663505390834801164305955408721310071669190205402051873488345024216958112277192977214098638155200125637108117763682437318701963727391868202355473620982125617415149821521116905132303563262016560660498986822869145705464326600038412994494010225304230825416782505443885809795213476218738107114921957276360127778396701792037268352156400449229159159234028483430597250740668340648512241756744277116078243949866196431667447398038350059861023608742166293213989193620683977352983037585248846524641313288662658634135559084116644262129346175816713289373805821538537493982048251739975030095282535272859903457190662842972430338737145876954099362431528175081165835465115618226717351784601709447364388949851711539274706330703361224039569060300640495746437416477684391546619622280701880580887378831504702729154905898923822800267590074221539686840651162597442687237961287575262778929534427893143483745781936836816958282831392236371279048916710042335274171012081075791694565714947080432536046749296774309028879117176563295020418060406108956581942202800950657196602956219177544665423200251947648924628359082865981608733483105269986183952212922606247105059308249209419367409016663394424623305874362749834463001529995826111448348880389832083595802448075033926782252280236941160998060380734871877169136037134817481229514362021786226361001029089337010990852252843391883938629716746607095259156856780495287019481002592014049089312782219829503484629747038677195014833959597234694405572585642064768229615063694705412285654203363299821289922935256169881683744529723542302971019864497456203517225961915797879507378907506947734041118229987808169638050093069994372911063549714878477148032539203702338363184122240563744970941447404457337909163963946021310233339218165354128277740559179108916291428244155657770355716118433731451500223857486459297668000519738579561284797729271745477893914795216781918313600306194223999038580612759520762513475503670848233996193793594135542807097756794768399062287705757057442613311488998975015863550033698527173576021898869636262032001520863450413347048054875780652958938393190721524889670727862562376243713337722249686980925884849538528397666184166071589898849628036211828236730859968495046325603415337654418161993223273252989497451971790630593444348557910341449393215627190088451986822910855397639240519901694776218998459000243945564487337497118610193296309595145084695360330370039609990096526184568008982393873196072340158027329975937746328441191079947093647215686821804787180355006751825937400962591328043457691470490425550546304178640186837867644261996860465666357337042895175807454596368392710063992214679151466829091816041071787949856358593865304677952636293558232517985379687007427245774913064201175957163660559055000280481210700088449821262342442287983137105873601187682902532607274674541722633814430062133797805796417224728641732343405556122129451771109369948051870015047069134785489222987631135522957219654628131034782383121545040367756604751741071315112816576941525348552887813962334381642035181824911253488631429109612189345350638837893845050060227579889959064124044800098276407758360490603600698145625956370159580524618351779949997987509314403636959741713307271844983737468557708748842824219360270610413731813386569492094908277422738910074888366989879198562920506655219741717220398673173818313648546539227537150346052429707760270125397875582537886149594047566533277918606822816933035847921041292296113394069996744486816039994711257314063299591884655121044843595797730156970797820992359874385597417894792314946570612246723597571925089850389682237678459070346928972470027539649572010242162728073218195128475774189656234882133966761143797624497052317124514365463321860278925364520827263976969897204794495483352040586236865002183590939186995473104655472038522036859753204233194039209104779167730534191918750312360774852749395696042980822341377063148335782470044812470851224797902215292353839627507099346590622117250967333330044812819080135502086422504786382718790182199104047745024293725501347582828952175620809309285149358798352936982196199976800517519582105692264754986371444237273838566410295941283838444225425339526958029492434122577424071615463549559424057894979288572335253750198777939772724280345384096687899417056058216415305693410356734246227178661341005643829558079470823351861125394893653343098237950429126400718189677717751384220736550684050783878486605418684760243224978543140065699809799297053248765289321514730388874701780238255579975812276720549263624100481162705048462235887257715183257563308101533506984588895451117126602501987147557819286014146258497039717788453478732281799353402672500180486058993536901954141864717924832750268161672849772168561987811223836172115267431341349697964628900649826962732747480404392685676652579642914814863941408568701031423695906757374001456376363573115404476001775575495652804272250787041554743946372967707493300449456465803232865299766968364125876128909484297047154521985331574594992725964348709464634283261389263082932550850158232071959753910857712131657216156457162165547523038983076801105290713417417267129308655473692854960498897612093892252541868891382550639325771449019454825420934042085403624449972593573265014678666317825482818349039053973837483189346160171810214151566558118404943584152539386067631166043152718013011522094532368115791877724798529050279081219040569836478215662213558669105227315156051675001717633624875465221447964714284629232677198557037936098675475833475259348874936191532754682306307738581513747399912578438122982016357213076632776267786553520876670117472061425904315457317371576639905706998992414877842400162217165853176452149650274401482624255552205825100030574778011259138522328577887391505177666470676582548991496134026246000340045241221180893861562982758499610283466483401221130333368052596599536826356029133065393667364642507117828884257594774826624640223897937594838524538841440212255209211545926382890733312064404094587694373405101930483755541740841485577948839598947980022304395343337101291278403445230315128468899848108806509160511142945751838908524909749304936861059663881938175704976511811044026079338919820210018191709114772508328217905296583816466509679196505788023702981996551921557594483828763471189039419301697507424303945496498340055106306633348735718714776624018053784494659753213607524537606481326691511255090337786013585978292124164030935862388710809019579626341670859584039653930927687135101876825829319799104630010759561229384695582037612741546495384128113575474855623727023635824348550753919506432698821596232566498097168451586623801497303733141059813452438751095946154052360523917673130265712729695131487710394448171997455832087011736144966884847762128724960479318553806939840601967102777132821040679757247535326312318913188960374961538141766749254992004110115034739024225592509278864594957307001406470924901202363373180701086870755656106314762534011063717025980740485188601677357764202626907444709954582215433339864625931602218176512559077401375594231851109401949666826260980231548111441964562488604002384520956410785935273360058608316105412628105682812531846307004000119959626052823383679955023908179333224560878530244611046828428685885008504356555323997994460631309074532411614832253544179758444618842456888333264166377818700101596256327093642893615450995740040444855902062668664154411178857571176603814037325915402364226995694819392257245248378302433235287083947765411406475281368906118290222564590887766427572405878165060036304962004695443729982044212974901618648379934002975033790876441137787249983150140713058431429368668140409581669414144403012718832614318454090312791193228016323017026040702637371072050489945370937101429233896415529107865536425771449861586901426240650180798167266045289837401961784007669375714544579717753528424376474109326545200213714508946849592919118976714521309210891813045352139735731908548939542296292154462189461126446307813681659607188650153955666648222333549438978099148150949662670317747618667457768238684330544355201974332010501394748027454672502737258574404439411146270535200401867771134325766056266709634838781315497782600282344064411674544027850332988799549366126258468004492660466852187571037511699744228544645791102460144585798452122784144733531833883134547168911270935934310763230848611685589196730270182152249153626560422713660054242001783187324911710476404923186062988984900867196515024912408873175295340680271078143843757000890434311732519781985965368883461025034239129599824468488953342882753132157831041566227870218260854349762200466661329338000207865294881068774971764065374129966262559547111643389816293653144741612001085708562271308162341164862211032054879109990945283450053882522056049658201284098946108264483780319826015295115200853903697218789605353624492533936507543363082711487020073637694650748250999774196461722044769079353083368049704215420240491844563419201549707068933980312112270310302953941755901237714861028379057661450740468388218994418997620613915366101382084467532784781076433660946763424724424474819402150770306086178454575739627966332707874951492093893558687625277963542982983898963970406199999484512182869106169012720206039891438360854722940504975208063795318122704328149543927212194439442803526326555778839324914473430435834601419153942161472291321528059076704752305903821811157375979270423230441892579365934882573280701329728032849731685870671435308824025903518849027324103432237022781353433074121291174039695628338517825982732515267360364766204521187892694947558700059431778830338633854028101987147641468162366490860446569669682373275920622359596251677069250330282723347290342377617475191007028262653596462699637250701359247264187157018325041697170952127704040600316930087043081388243481854154074809191330524714484101293530108384739615366401307518826416678342779571704221329546872956538874441892714794139477632996874988274296344417873939975349022806774498252057105625796531236987804141197480800397208583431519805635021780998682934517224094368929142703043462757733911936199984033377696851028545469115902346755104454449791524410368975151207894278275431049182034597003577923427264578730796115805756453444928854331213472890907178901043545344047969965594725434505988515019385274929749326921913087832823291963169297215948538364176845975974251877407184003201852047528649200937013301434872959152078362789480362290913139160290792641554451440290844937060921099206983281354643915673829614012944143388990245244473295088551062924105151894626629114965306712618201821690392032897966248963302567172426566222773877499912637780257731054119369600022918476898716275272006943859354815378774976619379536273503215160373912390555631907887956860418177167867722132993592931191454408802737911469731191425829652998087749958863323591953617881028637428992952374105682460304374817414307498861656959084342860481201175987075661514300819795388146795522304362228381499451556897083169291088721709660188824288150012628214681247199716366068710452675874543322697088552524217550134570548811730352431528410600165863989820545942126424673844032121788682108139271236876029241878628739792244165546228245887115495903740824983084780820638899554366698407943031236725431835101921345851571255005241088394908505778509147502046744767909564361478553770567604994423535286489557251824125395158945087536590317256151552957713583505426358664350317516971148088299579289064495645578744285706164041803720262233109299615995348486318158739413159465514746495192015449478562912925548937273220122051603200200104630378622907481656117984654452210701690545352525753701863802970283854177764820362598923252480079046094475426325228798101639860465488365226827413572677642199745118048516500972865437632897159301875143627860955009103239527580090110912464468148733043331368368992121449977946343615078514436335190830183020470155703018185859616380084645702228160185949478675760301594207560584452982761679464623788187916006638008891831094186402279497810697400874728681807601005968549473676738205152258841922568788675058334778530609086000674499103720904209218449482177008283834080991693967836468655880914120718238070938088907246762795639886296893957914140409825682578574691245832603465139046243830903036338452854869769592023356468316338126060946287271564559533748766122936226885709404435663293727897734136079529067775048267791166800514799491992714628360827045287747016858971379219162525659928973230084147844198756940847075647480779153785352281574863284847446788541580260879543398802251636316313416621887156271163981209317677575661000753458236534081348862984527024908266259880314323967557740112511472354090414724116882474822007142044292392887489798021772945485783711058310873480119418528460198434399170787831190323833517174191754104267902051178611154279478846259634062519204847392403491823287467448159214532963128524911437142906967535949237140293653915741779706909931948754446349520138869351120799210141989941044475857034002136389446224947204491293199213368612568343889775195143219368599171591109048354793263357972494078883413550163709163101819268173021908963568180080729058351560609367881276753222401093122671108238998020297348059235615580680793226963577106673619459028370945540627119606422645828679680086741917795556864313983839235124234230116601470804919832022094856516832597961120630063882887283806043501406107530343446686328342222819352437806550254848663870070463451250686711581400233309791542210379692776837924541623823938040227047174678476953588555074999382341282460618884497564822808088356602225782995368719805631806701190511914206487845388620888630881517893745787645039954305624436643812291801232942506033635951994319590117864488551006738544787404240488035126796502480565422459743304335317695631355861791444877103980491707758240203059963505058746214674515878749818918592682892177216944450690678302212982190927753800729409287222602818504594070864096624891933981603905034997601776822552677855244644400710439969172670277280800437853556564087185795280220610749932573500518833267010119722927506520884152556513279393500499905591522094772657708570865449751239389787961882439817069596927791620472551317248621032721629231099227114740904715109359756107585995226986551291349698718949993058470085597495206315882996083504257810484226386941365492606807994644095050872229112126782664038229366875930198549033461570214723135789453055388436902032438451384881096969684052354403564051048789004520762580028281170711731801981792071727327593379354485829940990667759621401418954449287156516408343434308682457155322497424921400660187986604871508876935057724247935385880108615350434920523518680709601254313198028084020612398717122791749758527968682376613794729071377306258337801881175612072378948678515743939798149683618904796402091222017895096720084584311542185163842054300790133590586511138726298551512396160751908521287884994839598791806645665456401018244506807204880325233061615013770175447594780543907013576033375513562381662675350349019826758346034543633685262558583504604652916268259127084187402419621280313254261800216096144135971868627175423110488379339405753114888656461071192254868294512319257853317523096531748328124342477758846939456970014112532370282586253092132532731810455845471168674194762101749508515200293773380410191114472026620480623915759650065333993810651449538178985025745577884466659590791335647093323114750823380551737053271263232799434620596606623565556115535661245702655723554129100335960926190897975172428878641123260355775885225026341764402284874323887175233446077238228451525835258993603375337531442455853245674144760011156146359441929192207166628572646896551122388554974261610513445665173081394918400880476937313707834285955585724126162847565473360353657002563996619293529991154633553780505241100271347959187683978420813046626248302718203728805442482407097489704962759796678861828586364620196632372332533593658940325820844719258368882192626034673911412559698031939880056352403330813697329776624784126832192257118089434968190088522290555065682084582082756147903724715186704983810045625119429846955346415237303424119956384219176007128169465547920321681710250591488270384087455538517710394537313375747752358037682524293264329693686501666041853461240476362925715236483923310592530366234612093909146355644729163435562800934790356233645293059506450553182916788428690684571484541992397841193229174970245191273574586025332410482009952959892988802058271725168458358212061459092599720460725498062921549245572054747531883037314935965077236837610263112415241471415996997961156130057325638977919236571193260013067127415204544403864467232844534791807065740594038822638221706295583601862923280682083640171926386764747058522839025535550733523602285010675029920506601786955050778976968752843129020646559045193452601141473494572481406024854757977166275014372227068590277852492092343987798136465337129611870077953751736560912286825486913622812809958443357222407024917074598877029553502581645473011356264977262391933089378099983189423713025862119843916560253227704769475738811447054091777293221172445268439146358307964924743026746055539517867831972716473188407307460230249793772873500389757447718073251431292113950319798425712117732341091998885770073970440218173749425561299927687535893435354067595645334861193041145964782855683517872254450994902109571716423938264657690946881971542523990528517061460971212127223477443126890354536050191130874215534089813512460948289692995000772741427141330808100972531412906257593499332317823941984321491967681084958682351863102810753005790249417283714888370661970676751872704505244274008637590462717953794703082924027620436964794740798492409449643015181936047824728286645885620842401595108757697607568971718159264947945423911025447501287077488358168706363497467653474761279815118587605102498108409630042601727290637602551507202096358912939574777016828028139785901564599754051977033771556618464616309319175202343259536245958053308091209429064446386450548025702395928261975402069469095178889558454668932541160941885320760355494968029525347955616268516440764645596032348484803911893541963696608109613159276559436633180677984665562935529222544792451219741254733726716663735409257689586569568612383135961447479187981156511166717875556213158324559145918078054183531727269281897073906064663731281970068472654420112529185908404734866943943874378653925333827935509978281018371184715754585707587320830378417925244471526789587881480560552654083191909539112905505165408478714054111664035378469460346534080137508849792288678935783036424856462506233139160612165716179916483051708618162841478881677953711595846066827981389149168152411617405998740395799142006423848616331376678533074802067302603620922778389545397782722412422590570460807997516988180710127891307010848184683382739810535276419052803327069012429233321672950612665726802665608044469291653903645820120632478779162846289494732836285362299855745824968003715809427975918890025197139666893698991976362547791646216109047101453095530325140583312225973176478013094512819963724784091283089884514285210572529258716260412276674146425512841508701462428841182449840331274805520224957655449173595271143991952476257615743018741482895478538290441068759802386965095051085941036557739138615915449037229106763974003096474605395615093815781748203796786920685534294177873746129373209546251832909859461658238674752334583410023801557225352136819017630679712916435369977094248570106740659232444043379433105496123795034137036527246605138807629185218101271020327024077865941670309454101233245876799905202668566035470029331285188362246061420961543913467612680945291388404374121007934444579056500261747422854170843970878318665414654052391867164289687065749832102926253205724370173615474006989264273906719508680000183510867092832469273914831586098306375036298910146675260017315445934965049711157096570146528154787843040046312923243154382437835240157841416425311639424347887109462195184919045758671873516652467648842327157636089911605699582095614756793101702561104214113465804074525952795383425521794106434181939009692508514440901226132378400936457448143175685930284018807647272326954944386363526702413901120792652196814859945507011119393793863120254633079542562276287590816155548963240044238270055987601374633084198001474978533500107149525364449481304952206413386032048432169706725822324980016238279061828877920356648057943414361361745908831206011902419041804222766210312890533350251156725632417397083041449319233235476851857516885383271014914157094014153538378599122694466289527864552684910364354501078672223268393508471230400773660621123034412539987185167880975149516798468220150961767388594733836486648701215192736612986763669343595843163520840412463138013328953147079502499735502743742270208565797644158335388813110595316850997372333847341957559046628684030327305139055708959797080023974905558278527713582301564931584913020110433441916171445946055644985770435781109918687039132936064277033320558305978035744134423130377113382122066496101018324081183298165654839042556561113629199827102338527981660817392503067739278957448541497972626354408977558183552452774779229951792321518686478009255104911366093599516112969117122797610067092491504478110851146126319979667996701816199621310168938979934612026785191847824179974640290629003019912128193972155213321480005429167266799764216381861648996074043341194605931114955682475328047644179243686223633863976378390949564665354478353323452397722539131533637166313417064854250928145564868993484471132073349942310001764117886561483221298133311523524322324735293213737029510226697444123938321483518238301826503493368509387281179684973062273161060985417426103723322048279538269503212679496840661656205444820300987075867570203662157787419547501324297015150481054272973849938235602817460706364300839895711824202985365571513177147011383253186411999356842313822132970028563107197360626911332670227792158364678706800472613902243070970251604233575796238547205733198820540303596876097997197631819319028753155695291601206861325518818638765293634003616416763059823013019098214338754415773476896728266546795859029224300799730988388156244479687963677444066689639420697193800128520833741905113351650609719487629756076280975363450371666841661033102231252733323716160755405867443742747907643142783491107453310871816105465166836470537943989874495553897234207876268024717726722262761299959888383301146522026964622495916706446069713311196236026529161781579098872228819652200851257704157891941224196464705829036852150394869389397086482144206418194284073248615942090424752839214143595404401796275002282978582981040782974481452495131484120850911148348920350365740316375087165440588992348363501208066155880002622305066898953647179363735903339190108274066812321307994453543247540742061018188270617499799530969824499541632507877291855943836950378150814310412328389646888586039664900256911372605493989817667417832095201130204495399913141217746548399237072145314230808727899605170522958711944391564973153757021818358499598079906835702700600753725168758653328811669019621985541945471224388362635370249222563054951969427137347026926773204375852741405830659758292287574436782483552879987699223084759022090627015836042287553533848211061491741635217692685377543605066835148966012701908158595475622804610200668067750045416495001007672081378953951561237256667073844272407873932368054124433139984024648759587799190116829382932233754840598767230443226741368896122780078068483075574446488184988331959700065656316545761020982989494776418441661022465590011922601357966556635511955517047255711778080632874155651497379053880007056377718841327016074707310679789871536119841879767209315426604838542983872363642631964682445281374285214371940817378986724844502175100830761922966239369954771989787672163265463975393012077024224015427451518658923614188539502169415082363809640115096752378263882655954700780043359708398463560722684802866051590152853888819607674529240787355552636404606562980394695370687840501179101384702257217635530562206924408368897689773074721160093262910648943869026927099820467790522038703161355925533481773540491525210787157322533391476682461735635910330038569373807994826448365403550578542294198506058792494526114745762981168378915992681290365313291624702926453485672137087815486703105389987050584683010497609996433464936131334012193103908720328842220607370864211165420139786651090830910127388280571876809342321357905927405123746271890439851252356990084899542874320318444530986857460327207161491759947330435876617000390266323762576702685817530874344360486716979646009222884641376537919142055080026734983434413867986734152821945573705202146141899663892814248589646198303837302684471603592808047869347654755261936713591332360502430168442373536031226128869759568969250898847248834996106483673292081830320416840564602625232103324088081922557343696874574172494490848997183249893851743688444622201730496800409307907636104960112290280983783838932003530741512305405844207771699060187341338189280123499240170656826266371325074029307440859874312204368657530270155678238809550324401400001292898992628754995642235362847104621308537877044491433081500581903354040583536577789533314840322264399759248220925910142266168544151858683173125971166117185910302745327945332534381521314607521054506437099076488545390964351238887489963496743139737086893713790060294436004608218577598229590835572563066339480917319743710907953017799287192855590498740585907144029511934515777890788943676601704280139263482994182736311196318363782566505699392114773818853150983526244594863441148038576611820377702829357472203923635416603890137836757534641168957920055726055640834770367606021689842136874867449985486760614979402625389696145636205963753704840357292416110679980109243474886562027536868844945370253514021565921294700662873145068524843455298553570002824530070852717646209519565429364446245195411864802065459603005265885512793217262180695996484156626091318726032877401090919823329179714436923401151168576957655158304428925182923476985890776237981734916177498915321147039635768028508755055044333821221541485999730571256953505111853998641286018560557575312491696802812464806877589757236486834521086370485997665716736229745518105105019206565216042884025684587826382077208258719909213155843478615278988073369653857228485183283151585891898399669529926207551455426010082821969106303066823580266580808721748402108880404725828168446602364840796621372962701160408612851462228782265221785156931836153738299967395035621600092988639139229693064128087118838764604487183083993376260596738292219872998661395662489776289313243890689309775880284281114642482222996136057926578652416072225941338631157828839064284096181356351340656374472737126353474278111233519646050325645319864133817494403070951498510404636960443337842996947003803093278146942267492052252998160285655007372148623782091655014759113342089623965359793357562006519457356694307728457680429705964091437479029647456003078614771995167324179924668540208703039262853741209194134168677636323930771883235882386204293998994617200652728198054340025245267604322092624585024479592472824922006676490488264671071910189870793023495563196315119570807378159768357478736375018197552818340957723745093657124064378585022358022240238419678385403637276433490667608356554799113311264506069471644534571057508630518237650039170387126407336550366311794853206322265507520940114444859540351044752422224865143700806362453940042923300886422789050406835851104628693645164025041069376004670019726633453325105162250720951892216676661490944835071958947722190567371346559881363969809023696168395402949991231300122612581045455590085587910575425157011540310832563964742627483302788441383184242106025053523044495394526670727114845545549812799795671653513309417661807680883557033468474282103578762770849380272054562575371379787446348738917259203141025705099335392434654655410788794530548166012885813760903083543861958956051470902064210096399825933810758240624682295568976440682050672436726854526533048360023768305667351223469590140645834164086041153002216095042025079355380833574435413863479053965482170910235734915562468333874160508864947665540900588350983710860691672008830663341587753261943973408256090086556683237223727780755729214202268927031280887291007973924881989033767512136243613933622745296520884558550360963345673820808149300751406231390213968514879279778960597527420972679805173853035296406085481251765149116941374264400139020359805969897385745029559498447096501731872598926676984043600043260205533825453220264564257673950249767302667615753128747306724170495583796027755159716089933206835556726278209682993804959447722624454753015221803675702408892659582300207870940853241563389786865707615545096863970533268415062035298061180567861681264117272555767636754892093491640505330667167912373045282500464406359196565065725196632717790694762039797516678163496170417458126435999594758162848930300239965543042764844304062220360177023746938028588672922539007907627362139483866495700598375270097739300512089475465214426108575171986205768259603794907482167636890614855737540473847288949028381456753977021025610576452539024172758763218530738426416474275906892708778362402236857908587178010371006339061964075356518294402113277433106635211111422447577017945232401278038826659526912081019578682576790591530155900303850024497626771035238212870501660153479043854376906369922394004894120735366467171286896424168058338508752304065660299276257198404317706425042039075092067627628247134811587491452120202554719417837612392502793829085410646471112000599292982193837420536478257440637669296274636893362044032905139673019645303976558543379790623442284778920510713254635607470624508047970025587391945232954577502693769929791459982440363259943861818630352054386619060587983616871001285957642676854156962303271840836447261363255051858335169486098414421844622900710522599580531748284834850209961920960902056071411345500201193579851188031424409159322160771760680489828173175867168327099634257088915198889388887862411981988870033947002930004445981824061161826432938546894777975669839154809721928388442382364941383184676667169780467707620781918245309627739001744715745339922161479249860313777737948243267047354214608696442161489783830992390885708080181860429400297320240203180849127365950126337149370191031135456498340283716900509656396900675658798315796301728023336478886679237920256161068610733672892841123581184500644585255661432755063797898749514923931112718740774255351587322036786067590800958505478720898712475380337290375964799240069241913019609600619827339544742818497576813015879909731974189958614484245116514649927807265658064956175296883396991408167908719945299628957531217798777494221990726694360315288596391504240782903977005340084572927139430401621546915799089159969129706682493851644030099688607946566239496305321304129692807057552867415648370911074265714926755959977788717970038977468817356358973126061012644962713090805891863568757442730892565439965581333643296622863899233738457069970586482939972641799497394763777771808629845658470081635386636815910361053460004768372643372814061441049539526461482828411346617323419489076889506017346546625054285938184704550757521894070413329395480371908316513206751947638006544975061997586440089125131742374722912000474018393746896558860970731723389896626799736852940206451764424313694278425051366197449736022520246098342376061772205133243958305016705895998761103029866972187820774301595012401108045701949898057428441578761675439405580748865261813881229448081940093618305360972381885388106961442451019717687573642386115923993645777218530675528922321445623683838794102622663790294196880068152484437110258781246212056421567181917534564277317902385389171763018055797270605335910433972988835594781840776565533292477121322993642659299758740129738644488815913630080900375500168872563476138276964553416603727326190507199684255252895160884867661277395330333095158086076520966650196091724492253958214799331045234649629373319617044768929903877730499610368104292421865273852858211778578432900211835577034239552480994244605452655618473979537845931528490097759701879630974257710282700703928629836080488096844126919225067313615099166153834570613553527627630221673684437935381958066297207251438244185257738878320892075237605722383338598898624170621771820231543472123748778622314379133063223652216397052914529171612342374091684535000179644701353501833375967089419003816856480643327377580607476347381801990715511797049339147429262819447782037971247117497048042323473312026787802579697842759072668319375236072221590648834834615932399595435213936799466630607008007745037377509045362653538512114965742539725679723618060040315232034279272872377210400620301924096356319120475881654825635571416274977120376693113687134299651004496778363859654094864781584388869244230758523094829595154823899287498463273728690142231837684658035478294058065660643189401721273888675393454969692338016303085169294439494098061362341742854161274788829768511353904079270141748013704452815077249904056788735376218097960429616671437560875034337449531351095628938315644918193114334547551496222017574783899943400096346591720613095217109156274249326846501500797899358383573246345546730562493785311535675604680135882723873394664061585034484298004676040751589166007840326074967646803194064080871155634338473510919416565923597673465002624007419159226644237718131418992291573857461192519882596267671225722739893587069543135300472253216849566558729338284011910489156989864683216965964214014968729056659265528732828989240458599893413600980377853225506891950240888793314564968774658926481343618619640883111576088356858054312672175586859067841546802811582717294813807721740663934202718285091728151597675585757509027694332156117829902119653719261719804855044050679726730880500987308929217412882783177715173679504534581212475521235378563962838492650556996438372862697647822463080886566531598333714942873511538246647193647750107956492171640577302739483556009340497986038305125044230331962174541210426752743809965663147148704400002649680639489581801617728625276439528215077615789773449362988335319900665232358639889397992710226831477191291618365102392386535650813230236840402184974896460978540888335266987819754787036212129811173073750411404107637713257225907750314012371848715528332504197091871018342359539125981229290448010828098708275355330579907576204409019999950106685568968165892968571606444661119563402743932760708511795028236749430398487825397599768444989658546249967964580781857353126166478405189058709651616952417744488064521136688115412107184257286309442095615413665359438189912700817472617280189096912611036485190056021328294335612604690963875572426537523562932795717402834581027851138267120979812090451656418521013175643479576762230172830396608471058695000595863385031753117324623011556362251270201265514021838163036526829831529732316744558026466140651602783917251759614785433546589254240895939579178244242996760495605493092022575907422335846659732475032124383990437282019405878866111368916436271995621076143040476463696182620797568180593317674803267771095314744993572923550901574879456982177994704846729458763920190239495137836372935504096338124172645082718979779152273994061660402551945220722957020046087447065758336979878053130526396855170645492612150970533050392603468817245750939932988149034819902136356374122071744386038547316355935534333304404085584952892050239075776677133215709909733665965585341297642400425329718371985532990561063340552986234685777438844317258201384846029161205208156099682519026574995178657118190770201455374754179065334413902972569780076881434984237015865835846416661673089002303171252115862828299382667487663732751374204211425967289412793182825547781916704458259176084965669959277254064426053694652296037720733922980715867700446966932036003612062398710337823790915625829507634117320856055360009763763866281762583115648570026034086484178691533208350756895556213989443294038144827302746187615613215902017737947915893039582406140824000524754042227310800133931705660416655689297555855919964277638804218804044762901624097531687922407852127023818543057259792287289747550659479562006863009074277311489205702894406387562324853979208035859331450216330199347457746580238875894451674815203534348087203335743066453309597612102252138119267891913087614527856557284286451640689351502728094433831452654505109450876599497818605017941586857434766392828783640757451052338582716121218527021536132447879055499098602874861427196899823004763966215316232479574428498441789062145817174576303559930451448948716988065241612041939565118750231238744296561576432234148019196749340876717240807301617063248368323162222645124777811267920690422255526521649629534742934961871550643908916251800624826126956535315313078871596610528691283985911074645454422837836526876360814200552034264020851960415168615524499663700492081171019375085182186765351809248215665951409529480310885219281129716966242321662172887256265543434902502971897423224590933348265829625833140612298651468060396240527097535321475288395721393130319765419028412998295608271448956919231036108477439337396028531789510766227175218606018136149872053415561792041568925599865385082586869218239491322914457162654470869786859048376545147963883414874901271710192613206975878917523400152375201176003077880284413682585350815993475340854612059259951815854246122589109962836940046239379586064712278169531508712684540226885774749766091796049210066708686984589550325485652453751832957882123244334704238903470489321134652606321761894229600990579832246403953780662441936656101240416977852269452524674508237039646239602636334295702337167631856784680883449522389467350705897089101047416326700799484169457915574002655584046912354767858254232404117165485498086910143881069923598284895299675949927322717928888166482357899174441756161201294364106019975233963769490246870234116173879957359204781630318662758595187098420159942519343105938929971675431920037633772373290388163204926817222331984860165584467419445289528315108260266603530890699074512237151620168463012019747876303737954732368791147120984452429897061002848413365554157743115809701510099407655605274135116473788711573530551085651493613502393151762031869625173709476627618316600846651800501239400770036115335390071181939866578324729516662508344768930518087667570808174585101986552369215575196841196372451849082105869828783084154811701239323835949387076727248923353085534596901182433696078305637174491567810290785537723259653813533408784181474195574880946312669340682866719055691926196801783445199193436985485606051571939201710586163469914093323079597213695988130635952112504348908542484913275342649343055715166228260346417043464355999726878260063407609968091902081922279913791456620495519520932285712032658189881088650595700153721498198277731418394834452098753525910249435967229046630501161356498593568947884919244311255783830535858424885980640698840402445207222970728561987494037387835702618604409028905369764726689874071451390516714902765455872780508694011902539764091153299156629098454386566780303179980228217083371890411557714990386817984357711456400581069554481021047389219498777189765873481316329445949942051371751448756436650698961215180298203246068399380361146491504884721941728312252923944850403146314953634076364588180208764961266507447526626328734664026906208966415371575727569667223704790146262680040345702255469915468339264242148559705164386122669587300634387729386817143810700220509161983005658389608108191370510385005367651456204902431076913339479667944045144691630531525973740462608931787576648680265700658105858511606829681801855609537637605753661705690901880715572956730754983608477170516981058901875325975667182110742070906150526599072541895737952163262134019202959825016558905706145216380511632476421656136879409233091341435426548992654855632578477419879865122688425156645041668736900115790116425732240718645325344949732263594057098279284990180399989553956197206384309359027526489645454883392693676963328821649004769328012573721993361378227932009463081407289809586709867131136478349163385660917363765766131967073296280540496735082998717216694090430650722619182730228831821847988834657627593744849955453876929038221296230792467235913344628365138370476208674014543753719652147889806118538437279117460191856204590169108064984128199343695169793304504517492782367170067098941327863906423198763774224099793140921064032369428967855822576465423821441455982960937794549863772584438707402621189738493257466407685226638399229207466287168397989213535425295278202146289543532172331458654707466422268034142247128099301308168610843421496571472540593109930557275987884626806127143170635520459352300213377344683385961416328462464948113669587155534310677055720262326128960299819824592497785872109877506695844396125198959165917851562681690768678289970944825135009778676023522126141280157639539313079058119936401757025855598098973069292093024659624267242315087198441978590120136859389166956234644272385769295797129965101995140729481203292514114523575161404183011376751366488109390509369092059598069811869864217577831609240430988197506823669657340468107307862378960482359246280654490799773114128598547241499337236826340548023797084873106802849892054617912711330820043930977896400624133215137547220670200026145766124142025301221709373563648558404010420069994259174726614403305011718209147350883786310159492297148967913267807107545225842348963718272841857737773887155447092953584861602848258974270154901683730903312031011148875604312688413681578152087307427987992381125959285620487690773545618111333976974210165368726330347376734139545511840766864580259559096706586394942688509432431058206786724467633251487981260142991564422689279248398038773955151226787978234776996918517970886560775014071293325794523026781345057134847646164025772817722882311823641906371073443527049896780334899266078736652782875787786545019288341663243967388070133736025648372535608741707901034205359910627213139418645534331769761606431112643153080362959526342930819475840012549992482964583345913163640050903619289120285296608722509763735877208511163908589937130147441915963918756293356642198069627382401646943631472988700759327512493644853574601240846916606167165161486778114797464392911223391047464113700101962356288272606072396430982688276450684573342052665992550654570659248879258404623998450645344060940996659117766558797239806915729454859603104705284424685628406051330787956612787922759683235202762891728768757514859014396285536923687980486390738131536738381179429320855378619162641895676553793183723423104517971496885963040401196946922195468822730525511214941237815953490608272543871891316633762787163059176938655515602594758175784541796676535415721665915953438906842016501502006823194357431797603840403216274965601571020071192525810318748992788075208065203622553798634299357807901688414757350087068816568494815431447594749873195645551654295252995302144154451214215395007929685904983481967319802715575694565818395473149087048646954666837549193044131820531175085984237420274976092150486741263798668423473836240386404716288878456579312613516421444090954575384708284793515701670266389658042832285295878241787444462242361068950157644923442442627216502550282384296881404015852380162217120276147966403394841557878914619250179491415054643958653583308873725987197241386917399047499874710571885606201901054191214464535031145793719882971102522515753453707522646449194832125965666083316464494411908292044939132936444172207717097314527141148313683242281674384591740866936002517515512756246211089445930358967501004653908044901471896734186435895444171842514594008858665023922472767362979314543956632086306969759505006602467953713749895912718437964370010659786049615340551728938411863267015842416678588826045123615805726625283674418945538696954089640001374018456044764187391138467638608051080459543036608017949574449667647265186731003771566246562711387250320992228549986444024827566370877421931517608426695980060489139997792488471477657455603453474449660414102807776415320400922797610240268759681726346348384824423836726341759847121341821558162676984942354668677638823743880167874746833095889245580167706484788464919172800645721246238893186402605956102618950610685652823101939099608327219132474666901159524822004105400799221456253360772644139160398754082627043314136234628605306829139723182894930106960175048326128931999789351481941367337144974426417634225151330629955813816870147626647528636457701806254631831672973945498790634375674338499367216913880146510989778887643503995384001332483979184495567261333895920663692929404570367623213964233653324246982813632988144383278512520523373867089794954737218924198134049203013973165008283465772632066756656520628900698861194522370478561304347293640164164708998769245251114514020419887181774322175755226227993810287591537550190571656235891828136693633488747093860272270304183271866253113678583611580241982376557643933173833617677040785950657316741844699029960690146105169234167015378220235578813832953981302929630373163118910044393022967739974846371256357561766472829491272167249995854307118394663773951279575407026936177383004611306830178175499647807194165174232516288492760031953937492687817769394575467529127110504816099280298385410866491885480515380925225867057205219383787066889269813821794121140386057990937001466598804735956283564554118918867826962657202107992620093846682158594227208329885927422083652337364733387341133132166680928829967369174767899573767360453629110324259137772173085771275518334277192205747159701552998764984985155350818849424434931919946239300820516553347450391162310092006962716547544231345329793688214685911153551536981135286694657327214794119854154963804549661180898132875456317727073644962592194577878085984500562411187512443057539660808762649072495251354921344681258580715738964615879169904723935299829629967377810008283976184047012318812817065600924764343473357792993586663018330211973890652734424755831053481421813429481307605669205770027053254746383076868550831783989678633290288992564266161594193149586488990445764053597558359652042642072750582035860387861025152412178121556407866800130374194791109891337026449870497229591602197947821554776646237883786396529513093859482074370832837268141260859036417891266816287142480570120802321737966584401426636947505738112607559389653146668310006044324053941780262649670669103740632442075267806602446513548598165236856545240884863158784045763255243335104337616169628880839073477514479294414619927215011798455714763787757958159499673745670063038328832387457519415380092039447484222899612265754346428891139503572407251025658379405489211029976435017715861333508644010637274567260808609155907836669994802691193973776981368431463456417350473671690011403718723369098002174716582989733487174391607995638123683658120937817358950687680565916390240043469948876537316818777689800594569222386632669243986289682087115873027077596451643953089304823316549128896060339434371413577922830718409218778904972246735988593066023044334195455869525939802703867818823811708614370341806694821366867451955055715024027963500827385848107138052098677413323959036767969155567093680072589921087286159730703194766456532526366701438190106931534041755997727164181000281105094087544156550573341059816454116665832181736844900589641100360996328542290931244987218656407140383675414188839738085551305696944438558181526375087246357003845916577627495715905863767912921264779182006835354252561317470836328885897822913444223801593544913966181551120678243380841991282829889668781380253892812425268260809711675509491814151554251983582782668056117154215639175628219820975754477323075481158391329591976616212530402859162179840557972006627614879232559021901790586831830280523898360669083812529024491403815811117538931654967417384422510117528967133000907516823764934003068411570694981861259764265640825123938372475924949490817952150270343877814958567766939514474824349896090403294010696926808750095048104923523926593261202381233530691468523985066439576744127404414894261572619264522850084451301257308168260160375016326975834282319116351389147662649214753762120205501539526942007834654920399232053318902541165924834499483107251720877540570081117008960749253846781604341683508962963075191829300738676658347326936522308870679661495298845701967555146860460517886438561326623252006575119094526010489110306659697668502732187065884790425453367652382575300015316166992931330205124687771571168394452457279311479845938902493248989512649479920404742015447306346471834546455541911470644192624125317018891324285371903897137195741229670265661710928236306085713226016060159665202053477303918635913048506758675496269955388104371886667519873954159523718106970726558855951542797470091916408944360483139152597065309458613585324600916873395377221499578858251464774704399473477902701039956020587264348000056306048764705319954612220772510494808445331811796118566968245276171449195608903953717988203549230804998078312573695435829652565347009222104673500345601688542601560914700705750798673001366221377536031102515448913975576647737496799931591648130807579659077453761120046276728841193750780285607794900207977074550890979263598597879939772155486512414071461587089100684599017545222135896883429853021679106328637680214638037649105223543871208464657927087299558928706297214117140090197743920137524802680077845022610695163057402472467278587273453333461931792031704468823058334434145518410881082891510622689759262456210388473309275333379148798699970800624102613763432917489612899479494764053230913253426527694010199767138928995354066639100709075598578382113776605084380290110399415913037075942407333036744610018192808659647334496411246605479860241322721217566409874736632503518790996358202241874227026804845718487584485942417428244855722291134321037279362932700562963598704990701929516439629955175133685077353017962652511759389406567698637970060294429954241992489387410452621547310771151467847006620842501300489925296163422357751216341487499513263707206871568952812658546838754705698125788481538299191756368206595012601779572136846891598184783359849955314396146257114939423768987316123275103477718756080081628113358599634673212492475925749017811447695556172597522340994764026383646999151211417315090407905267167634779320161069814662345819990494645402240743194033197801749616157724865252346733453992764863945272425293535718876970765850475998679274053877271738990477226393178744680224322254898203288136861908412080088967982327992991471451071876597322635303094637697015380321818811956817238619670900073408697888101755109550426997447057059213184981262248520395687952753448926478990450117565545302928501105511306099816807356734102587424486764764882566270167928346576052243714161172853215453177436376882350604773360122421572541340718404447776300501811582112058107761368066678061975313680149058805808221911514794689983480572257084615084826509007622319547596126108954934574281124547080769901869395620046991818277442318534086101814927352210368779928903235622424065258163434744601531813911200197325730090989705445046813269515219424490885565928748010962095857547833478356969542178358340288801814156008675317635295958935123087183035834000020016969736010618590133497288940645532088363452329963452627556690580317730445679041062106461850004539444680686048116960941249341114724356708305032079522457777246046130399581082561542623673870065581766617550851416374276281946100024943476348471964499221917327646408844318855874498413415314286693909118256665519716000492104193113464046306884186742042060598019330522273879390174882804696763383310406961360846117986660239909703900464838658044772488260397915725175096896661774815732568264856279255947837073638755817649632383657652477222996883472389228711304497392825610012340757258588262224175116934483983348698984190954220387312753170991137370819014822914757871590697458806734624381296598562481713231973895360694419215309776749126714767678095413668230263923227429643159942489287601812522166586867264438827700834424628102158636611768271542525361163396412247875402758048794940930819370971422116460750122412008197102448390118344855801216042258903761037437663183976932006161124940048814803004997865697540267852014340139146693162864264273780773555015693720172250216807019847914814072846494324830387460429517610063068807467524668861429427781418901180225876121085581403984672836820195496092162597729495537691815118543828634189508598105584542832459207840557595939754088068685260500336959454848364429112691735850445962129920158063975675785517317009821038802189955013538113671414123946208218420040415194841628434993662430553503434943083876149730266042140108688107026745714965350636656681354097549689556909364908737793515090523936286939926601481490482767753906191533463846013500517152609951866339997031247330827602530331293994867347776537797372350773252835272949216537107618162793210087880917167939418783641277122573528941556766632326547836968372932228708734295630139422704627871834202479996776082160633063258289761430023929494640433450030521946976618738450967605093888626150357163140046404895423530141356260443499591041910148573977803665434174098817089096545015558057044096983659484755914014262020590583441930528093337059418497883166915845350236707709061582543227690108075992086475526185635812652921365332696814413460705531279800567553990344432067729332258522584130907794590750325828697898422147946699463420595832697970580265593701536421629190923110440910331873419370793946789518209642425558517490402581370464856355691568297057394543518108480788908605332806678538773935019427548042790495670853722744276458966415197034978404929845910214441524045846271044187512386038486989123992171957573951068527965415301175282345188109542401429392920407321708517212683381845133266047332481035489638407828747959204973227896353580617433193844146568437403749464068402852181493326353526447086892050378113885085008162617683795885983252420697587594805705066306884514028649807755619418827598441051305499626508220612779563007239579864756275537814868001855975853425197265974197493062535718917464375150018157927098212089471502357693402586195908841584291098815597407126589518288909339767985686690635762435557085938980787004294792260909266951407855334631635362757060294046965956576536210808550545683521097895054575833734267551234740057089741549109883979343259474054143077397055060534223925488735981119959063492004922231165113941850559012214894204900177428955022112020251734397143380925159751130188045748676385958213249927029429110109067419823470274785478075254685572579804448922881663439538593209678572505468217531278592397283994907079348018100125239289711002423170210609001745411773075810066673822660113715787386498295767590914792311344176967558539100940635048363758830565261296164636559167308986481189049030331817077452130803750955107128665104338480882793993806950540022145871732498245337617602243779281709765723770726414100883614791736622644493878153627162925947589689388724487361735049688065654655996073213784045368168476909727984578774741475942931745571816489884122766136401257949251520897553852236787806912161654070052460570473679432382852415882849116473065761825092821233196503213558505611012825601526508742109222962639072163027325968839042753706783446581388031499662612988699785034265170196536330825918186813871627624794312986935509126260316238408895039353106559192443480716836359301798420489840935196567186673986844811686166097074736072323382156003220976570996663112610455291013778599986750552918169527613210897150193091999197629694438917376808758381804304398853530203181624515444203921430314590965274425048762810340768061472721783257233619892953539466143762781964520981246330918189699070537412468771804907217186143342460858554582358691703219794351710251189313369732807942971863866944803643993475834764435798965846499674716385031467861931698326194561226661035159302633913714816997053425898633074711680253463099258063107973068085069295013837913460941081694820951297222433355552283878568493948765268049577707604739552303091981386125296723512449757483226405548369264393713969140499111283078837484405190375352240696553489626649095539728351324367268932625263764386224238731709075892175572025776479219232614154800205807371368550514469645948717364054564860590200897435326599662276831867166278839843596779399723464349755555644771833224773831713220403652085324498565796617814222144763662061543614751022375300177047095360801529657291310380226219580157246344318210038980775125300452503111292344422730947066313435538384634452231001918650026166142081074321770001035697766795582076188029772313606546772087426580021431805814159733397649722045331104041235109884802618733283755308517125370681666480700805009255108913357809301454461705981716056718622931583960814334770643035010643387418612794168186338501966247102956536250679622906458486507064722869827414159535206996357177329313222995097051047724890066738334361018432282023510757659631087719637242362840406716786978900747473422799046082804951747175548327423860005473384558259238401798164240140484976534802664733604261405948874792950481481455475233586797156268271736260672661218717562130964478390436758315981956622866743152003429714450075548996979051221897206627865638969186830504264100624661013238852921871644092523136120441540581394390867566633625529071731257668298535097471297460182075730535910282468772062425865248078133164019125068285316359955738323932483228081598070832101263526789541325524102466938821183557071770977616169806532591298640462944739011486303563331814108737412473449581810893067438115439412549043007274073686017609524385492843239026168266515209455313202712661016601584557606421736430348421090338372585658410090575500489156898088408699791272955127692346436007303381938209337811299116381840322702287247393675924707065955356368012493728155627988724687609474420199494999901468319000074326206730737371665835376766442014608664222012707815669207020259527440030465910007529043492499715468939480942028289569407122551181175958597466872517030644580892349195728060262110254172006001393459500392858289779104397627604733381436410307143689995680155307374880694001963325469640899278063355024432266611001871404843373209541246572903006692248560276878398079813645999293255376680486531908072581100340719927374029630498557198649142982295974724399833095905200900742260080928010338706533671640436706959055771756290025301447762543507547306267944053225252959074062360649933720264547564855666754123164428469209731787321579322253517533834440644038463525330567204415714789386798292055235145867069439552143700998333112260705054784145672130640702953404494489902323524903884073506063040348129436817428882932075033656022042745740687695335787401513399115035069379349891761385885189783580606746015957510576975402609083994987844519738414692200290646570796778851043430391568253433963598468070133662840084242213783969524079702421378696751875309134161041008062368132780112961185783801003380700351932317647983244758857378015490796652079356253880671074606489903612352244315620382777455871540844811260433625944965533300241378723572166184027146648050103584331798058123947278868089517667935218464296227075446986359994980565814332702166994867167654562346566800477714961159662249015670002442629720942650512264391205876363946718491907594660867035986748385726290817473731918978412608115155431100145648725249971413970217971566382953380761898132117415747742862903296003041552348348355053003624060068372784033335034228329927214772774234444729650753684216209192720550965505553923537217095077669486296022250928368838058583288086340209123242037082740646903712804470894311436341545580972428779530597073585043313413006649509010722447245329242587436879874431859067907559603830653957406690490009630891399861055129984109012463278263109273209833580609867864070970441731297033502852098667403185160859912623234790091528431368706944052177423705428952469047264250126414791494513788960804400358212408705695232842362270276060503998189592166504282822817933845109856886339345972141831820213666607583433044077377288918896662932171686422337996721009296468697384785454444962481140442025735402013381515120931537246072147138353092694664353836009698315000742400158005045918094843126150045893358365720345780275856257344344072125918264413246415169317314139208537853459023391523298699622381237890891910065222255577830169838026503942406340673821560821809694991962622497245612333869217193328224569967034928797609701972201674924614687687115684064008772185136519353502590920991967893541401835250196235680814726546695727667893235917421306019007208776125182461273326298167868157047359268390673066786645723718590260331760623144001242092557953550534952687573407074431461395445086447339774167799655185954118867669529904187762745281495202745515775390288716648276077585448303549041398040295082555894278407972915929380156400745303387393850817089090897124777543307300073151511997047681280875835458086032602234058862688324760093925482056020599953443882257118531864148222071144186943297889277373415369736704903039500619862157545189918646324702806204896824215044628593972327505318237866616612048232580324984265379596004571525552790049190836719922395157572689979982998494368757005322708522589526754579646192390946863762449875272756982427672772406855472644962026217655142137135233617668471970559649232715881883233759702083065010323462161504076433757945758736335472207484032455905713142302330683046860763546454966498866089187903380777574834026013022502197167428864180913499020492198721868579726133445709521209619044052919472841829147128165975014813246335159598312798567914140082254503956483458528452772268102351494746358438397208702802399842620702109085160801032035495582410668433323318734804599759434873128482226001500506319768644159950387015865027307259070334918961140601824341216877618215019314938454401172634594052795442133127953880797153773213524910535640817848796015362220791335558368163043768546528617060840814146640855054586233556019241173031049989722063276494745770767546100235978494277544630512835382957309903967837280981269270994759027194553208154975781531000795933288309784245300473090354026453728208479389467715713256019560458212113495331174199836043483139379428756445320589572247915963388936386884252621440712252169554018725374164799291862895990354555715511647016995167292549234050035477893355907364526117566966796307535162969969544170277396688081228813708488082944482613623428062451089088261553932733785261812964887040239288405272547314122087297668833703650180207431632554471599961218749673025604263164665732424085635194219941810768595384710532877617413927754513790125396205677790063670799943167965583851978453546572778179474922778313316907334228568887810346365317762563043507372470456399223281327287231502099499076693857105130418860043530613352838535648856747703866877010937950073601907274800726757456310473626404063546154377367903398684229516254757942376184327535292126705914028767805500934026189899840432417234074336429906539435148854137937128466633249294525077462485699754938473216880082357706609263700315160982975973741952610813696821484054238068361663442684967069875977236702655041419533815804303931329734058947430030289193855650953650533815535099535365331068814963613949368627366324205958579316852175241074362442184871354800442752519559794294891981108005004252517676689717128270161764531395261188393479047467479164808037152642519876328992986945204665568818152631508066739279293841687636834893549570793628167989549406687019472471609635220330963941149474263901266196578592128045752419050242786718885133086887609640151908757124594761557026412135788570822317467856603550157116133606729441969442898920792626525832692714282128011472724161608657857091471938647459877173964559201428981207393478698171759127750052968061941535522465645883124908914640734180608546899500549427891426505535198043242383031754912429994926136882842597430082522404759898704407638529868389195904825358359012404027162504924962257192188629457075526304744547730960853278924894381176230495982862805512314021436663936236322746814543685377498299054850271941761864652751318241696872585106002188976731502856964562437109904256462104948865685434502557571438608337089993196992718232884337668095511232339312833068025216954594943133891341092486335503940452364703833313522506768030970081373954145317640348527147521123848691450450506185277473577354668132603177169046208675482450912439501410171313082458998154122120341393272114893360758063184691757287092931525270916822119126232690305442045151100970719320130102743442861998181758632954163119366836275855027554321881629031250746672795634108900433445308589593756775583030594364672008191796390979713770204243135913667571231288854762599901572080351666249289158658190115150532007389453413392539401135651949486818540709089111080130881824721209355974865988034135087661804200964175202754567714357843252074147055426911637666209205490375829952191448076718653076408998828262387569869979680610087410578677311866832200971375147888086312432410000950055324372410866529593868896255540760533143201460854106281018690131366562811901889332649159287600224993274059596024963818343566922941733833204170629967666121889988626058466296469676834389479683371099144008033927978963732628600448786139471057110427990036609099975473053722880647975812157888406892780559307223009213132727136661226156457306102424007589247053373503219360646830688909166273478084753962833728400435480448129317263338679780586915642918477526901685574087298563750239342402629502465649984952061804726866390047456483871090487727423012999276885676998641781175651059480948420234508074566574868223456638353830563872282629866274447618964888851870707396175206259973045527796123692441126378072701170133662089532713599947747966875963216832998433273656130558233664821580470977435831942643189891039991618149324633604141054524464465818226896350408886705215112680956759249876646404258055488441959967264558531706923023406819617819142979392931776710732351901651239923539689666452356932553061215899400462011599163770150411215269417258409299550510746163532273850448711729244786789184514003449519287427480748070541757989892416274651090321664747575702981651061628801164382703412061827089009574829986186183459152256793833566822178891322403031444227970500919116559809096208167004626171175987676452142339134995773389355468465081659999500660457191232808518336451187743601186024554481854140370433498915130833060572184974474256373323570937916548289446490267782600978431550765371727054143470520581289281731287695922879336608050570669410891173439862118156700542844240357619361468476377064469824020188386340848239359513106404599698880408805713029281129601620827146523086505524676551543919515483134691343612897814737514067122102675076234628676431098699475860747083304614174880202178787670138075268340472208813982933423262482177890818282872075821543211953541121311787485601459269107352016860950218359299073358448998616800836015882971044749850352222092462908917520244151652712749521055027151930125792964201524684516145208138053755481966355800692041510870667958851954444566019546655461892717074882486631313269429286275106978067435038608001006230755903652837789864078461920066090377995053665776853164807842435674452808850208715729921422491914141307310814720766860491261686049380254222643185523663860729016913251918796906867491521657282761677273328569144631528308961473183524985055852134684513723956046778664663012274329836372371342564873650832136158830229487956488197013326627504139031028956399629774979776853600691741342206532391477526000805584248296301082635855634088791872634805194720331036534288995108291142520187358153618661780509831548118858964939714872208292658484621225339908888588738709847512663347161425045138795117791156453027468015524242443873276362431107815311109520928844725915261539732802354267702302358202643404918457606287228360364962629538427851912917427267328196122835615317524414243221486685484194270633626030451295572573414541415239118981773739710401801009923250987505694855630401530636599827796393437074405537477233997501193257211052264570627209814435254384992910418456056959425703057474922151391820204583052585324734964491874475683478073039479017030091428235351773508788024507716357816434831907337988475220950445172251201036165685226610672413991101656024318858938329296749329183358117437470950752680178109559413342607961168383025625915071973788265138299928051369184735867932410520833066347141830125101179860188276244240064026798790096246195191714743704649234883598130006094102104787663736972060302025661771799681873192615745890678608027536518929812266602703322585863985007320971608484668288587082440022315196202505922995924990208923507611526585133672570191908856766348110464263153778871321587684217326754563242681013309865014775728231910901635872293369330157593537844770186469822954277694237338208869923071576827192571691081382411225078121893219803775777694310436842044883514526649822083737854570057549523708506647259317155791587633568374171392634926324810865172076358709587302016607777398343297054170502145069335012914903218546536662830846268862705297150678677946365326060466031344895990512781322555402941792302347240810057214653894566736170948537129264455711769682752988640464305852340047259266646868854208904470233666536202182880066253874255643170905205451574823529836746270654293599748996266337283637555667961588293381666261579305296752398333687422022844194539272971526696779076946798152942330393712597413556479325767433518661985449079824991310671960113352540658384265195136804920123977905079313176820391037558283881323688760513105886512854877265231701743076800199696238230955789588635670896331559078863498921506918028313860548694551248486200898392399378462577666203910852308488204119469466071460771901593395738808283728020873035537895227577844524476456898114887982666267547041561401109855459358033871806172548774096782435685571237161886138280541143169485579097227160255183112786609338296394839794093919184903713675865705378721617143868803079246771767384323517929142461623195182476532124087216899271296416541178532794860245932804500401154015723851462994767214587997112743322269595395562337184786289119230969044751327289923333967461343181989398559873014315505453751818501155920119382684459069721448914048985745350693287047733706387368073696220275920025045811344429525176833983041265684487016259358460499168836016355719775179743044039563140757784708820422443966923546189431817013734368778479994523188134637776895020869892455762735406653396578806986009834978928876084677494998240478458775407000304205314443249331006207333208438158961418651941213197958966822284457458902636382167351456201873757069699254554180890559200895173793643493751841943402096924143187436117085254270814208605858714952989401399826371436232376508807237381653480677314663333835901958117901340286082237602460129862303955777230359866099580706993378628202246273667260375484281297757652310945025661051929064748133058485143192583402413150408255267210552749403579886931165778478630851318512030104744026899862660850267559168314616615215574956440280056043018572589941996437768645240240431329389448901079584437491557098775589330624682134905304512569800591967927051275736333275790817452671253536662137752774582245046335443702842831590196370434891505832103764558150027851030210394259578973029881532953149345895863613559912111361562617661234945167686920964222733287360146106568810451332918144791792971371854575223745024828025274248784029049106931337857640179083788202576347412223284176269567333802902902386149600266455962895616806382155730437126068038392622132386872556873181093935458489162254663010261412945675650693515107024213440638160666107455143132225177091586287243647172327229897758076634002699141054699109518738307915445506661946117397868061147844468672021841721169610572318873389106328257931533844380854186766882613730011202423513942430263923950727222291531926332837293052080125120797531178064034799101064300063662235532362458980865120683786037529811042469207501704835847985967982874727917484487652759413898697380785049504040185043718707410379022202566622391749376584568293959710041749057745125447117686820201179275606596883819274403070649953764119337118718870772180732462170065812559881460284288423289940454222063313106123259393482367716128016081818579301023846629287512524975955442937311970319869949317649175611614045735068033815286287458394116794041558141229243990507532431959343681870172306490271013402461237384327464451764269823789663416494762716288350600349947243234124988685727290863828948703376715030449982589408652399627841803639977799427766191203936533640609782815555927498545320847665298346405053225385780214025722216246322027140449686650233692696284739111980842562810539862970070329039836575862964485817386753204270088967525870844402860413165219015522679853163074192690739145826379943922568096258541293254313513351202089679906276354092288353419551845422698659972818303022142009925876465999385855512736221193560007419015261241263757842889614328256825451300030203142289190084621925167287254226262452829316672730915093339667318810704804581568891355138309557242420176288936388628305122754640181809420314168573795828818452227927035404321557634641408560656895607281078061407799151188406138480891216476413937686382474642738843386678744302631646051664542560799810272083256463993087584870983539527533171489285929833605823616747506082732504558975550584269065860398642509275359864055256633560432788092805050775954591607879425946708123295969992290360951828811945713291633583457517114979574923403819978747523417777444816504576286340938753898519119091851879675155254634832556545993845206438234203304903642173937919080344014462896151229333099172408330592190740377402436965968955440303386546877374610921927449817450405199674544424431451635603937545292533960709867109036955885874184874598242247009269128961221213995352812043711569606345450578015753561826202799934582755099821659766919167677912591416205087197349069469568481868915775841424764980634192175171751063073507808570443654028950632613418480819033415352385231490642803344703693646351392160115038002663076819032917022698875172173147361984790458345120362575289775823135104291953993325218077797875659764150237172806677197916259174687255245960073071522335540463568980587101488971984082973987192485540014297614867704224471143587874296251047309174530259323014967520539335811624724170291366062751656564326122517046082832955451851565816035128954759920926980867532477263493477383218693378513659886140993154151107245949760680064249127792179232696792297240104948668195205991919009292976620391933569114371793368351066501969165155195519634256068695021392712089132562587333887963740519204793080391078616923033894761029908840300997252687551541965860086361850012679786815215167218925633884115551631904271234835892770626602026862413217776914178297217380585790163566110269918787869281364390849286542232057056420505396649165079356916065665493996428984059469881587539666466944854153692440245125524586462463642409664441139796075814357732863779392655342974408727075574245381907028652982539787188820716243341485838794267884286293356733966793292842442032477502833911656196815928622588620357194771675779026369339141035185622963386512426228684243757349031270512616277215422263457844691097160581016618161293975087187866302201673750282375964984638706682571610480806729624784787204514682509827568234842437604188072586966564022726947551452083512017391763747572868756067885265624284693488473402161195108657683546403747467738122917308212507709202631303290073544834573263044579459153463518075290102040719029651711005430005058638138366901790161895590271924709639535520915995875983736892222847108808305697801605469489300938615647629801469880124394272565054296269679357075221521984815702772448506261258014384966089032894601835901335181805541005320094121186153469615959178456517397377270301361458015800910822990812631594974491527858025330055496225297016432492788384151572063907247472557641683416631779605686547655341772463541558242017613777159027787700905908302399857975393684278812608373460278052542401091156661489976888868366555843127315684460055685800597087450546359781410583059602469160446073662970858563198789567196093276888620303681606489744133540349256227164064500249837456188874417732140608073547856608165425819646441142787721450597840872924520042925510843055121546666026322353763778997389688141239707302463408483048248223278650504354099777153310398206242448634935640170354710181429936463724115435099442401455743897951029364141182319964385421976774322456791767958562522158095878392206065366409498481321352280535293067524790181207019031661484925654149641133302279940882458872331927717568234533931223999732689976157319213864756414286580710239278870126129823928111299223590871924158202926440949599455203811016889475494436002597281635615392575935378214119052673161934112906023710462969178426084345790919408408994301700077628339306487307464077173345367078408589145628787148775156269413752284853979345445190361006054011872079555674144508457491188659073316915681710336020242754548100899121081055390648984162981877743052104846051000746559879152569368914251915297904302705676315030087141395063277819469462017447045260628407794146676057236738826610164074974231136989766456037321730408802277919623786720042507728689311650211146871562977409087566451568030426432909736518175111189531036154591955286810088575036280827671916042456299037936891738936887788133605491727934076766899792281402505687880099486276739269261020691176642490424338361438183904304842460802505197559517270628389287906522117626593590593424952095051827356194161729186568785112570689996820021762339043972242724569346953545669420207012805352302804304084585221890102559589922038361638174638957416383866569675106349433831601268272433732872348763344133743918420317842761242771846058353057778995685343250016169323819637210791341712429756870505419351626171104502921843371774655105942247832125992097083932367433063989666934189852932251485216036192463313822601193972769301400568673894609191937311167901641974773081399858237268439534377411998036340961716356907462039984120833914839586267591078701326671524554846017445976281282693949101721950687900786936776837819084638522329938588629348582319543480659597479012166905765375665898942583630726022637248474659730885258790545060030639453435269116306762834388892632964185680302377333293163829717119211644584343319299834683360163934831023738244283295079019082313693308628998717135455168266108896917589230258726247758710946701915369745335925332762271366632618124808668792408590258720457969028008627507534036389498434661551766075258070044828767493339539089704904610787044607423210837097580472341434569974645246258873147632190860239208757688525658432263363139912939189817392986686922963092705290136737195904971251162777544385523585029268272217025821411517335990328757066745397552088735815893952081863991028559152728677933702288716844241966758786091760322534700559950459833939223348105517300108002889446937743153046677744181038045047908544498680297060624820080516076963932818895761879717754079724008317761795671776844718757124121749719538002725351932005241815725112717084941819479116211603134223720735915512985299052331298994718710071365602681826910510025596704296848879447371328126017011158406853053573192763642199024707403167642568871816937025396005459879576961764408585371522925280487332391448259886100508923876570679881637597265369024072201822925350840480000000168341588892899929959964667040766498579826322480539619210136595355462142640627488678522217544964508210977546906898708479983011526101044081158038404336759147642853568508781158135785034630202831223228420482628532860448537476864548995383060263545237551421686419159335816313646039603574821214265669117925794635832956694432011497619584161512640693423456880827080623644386244396797349526914682497376213039663618309722963055218387817377267939681833193099687498881529375253325516109767318236633397237113121088244459364269735438709660883833064711574619001870186194605589835217922232082632427015597840957499579503729004698108075817517623101728537633303818323852521378658646599627445103328080651508918123321370159831558310197514787488600028247883873022709278867219340215029660014913177805035899627133023658219469239663301990787421508740700565924140282334592847410887568075349037016030398994310012831853312228001585616968906834084621820690581713016203117612701221259552177949724443958746880382971284064829102210467894794888414535086907517568929328671595039194976183821754891308336896667281073847158926796646360762318204145244675338417980495818953549592261769121950260857425953561523020612894127591888321802730253306471686578353664082970149608110630666390418514347222968340486073795974703704572150385764005468484844224067523330241772044433135319900725376742891399661408589754465114811425901306613001610357556731305598743744230638676861263809060356144356550709206406098293080535901290568099956083537672259168384507043725144649012561633675220835120998896136317113238778593728362875442252390386480959951687422036413205668540043942930248347511818719560082306956745609210228672733851223198836498671475413264908320450821193169810025568966284622370911932975274535664904090253417539813556200797390862068829479722917478427674897432306725400401187860718202176825579493304534731182412258374148795879863573831394627715424993152315908038778394030848396335434342221636437176048646636341880040623089841584708025425472997516667081126192924890843556855145173554048940808698470946503556568930012942660663153037579389578118259991287961386894119925830634547493878871273405465369116376258493899586463490549471481223047511436227964237770104799850473345254991656924254510086999515552549067055225073484590734372595290082577818643351342838489200841445532489503146157773167604426969472739675226704910089333481285661080995318672152291876446168077772256893324496326903762042935719993257049920714431972229119811436593752990298973034824674703946363352856154400309979146344141746118378076424932108986576755605605834309717521047187812177927778407203728363166207103254366181732843172617417116053713661392066195600017319175841616587090561616020376472482529443924724167795368533147053432896189280885878013486611565030687977641669660393671993207852280869122524991319319916918911184027393003446314355167077970173600668799549641531786175173754582448429498891114752332315155484857323616076204604326866579646743716524076397053131887462002148849312581964754534526738903701867919135244798920841521523738525989012980422384664553727414019301781578839225941835970881889041819296058757108519405482699907399835951898291670122201206669190313345033812780014578655331756832735622849792267220102653767996192782118328290482573422750220197077552280587346434256097259891548806040890018011713778224096192912327683933147427317657960106153924133437237903225489462651608306196004160577423526263055598432779494567031140280035176891375361358842774370025176780876073144260873233378564412324957212545951560569343127590045170624867762447680733739228386778108469084833406548998368886773914345800853582876698223672334038783621612366925902985321370117924434396562760228249288930361278127516471809964708052300685169584509386427837084091959302837746910055035567628891891230194585783058541974516964240030809173175539813922000526258408936188284592533128990788613827149078608581525658139281137442473722366550058997780020901341852276380548765328352249468084828618182655654503669565002851521056648015690787174509305942959621204482412500001367739283849103803204449762722263651764108460951202271231179411102941569910936454412580597294041791747005726792753778159808769245036905560549440637174357780251173611945636853515646041661014059377196856935197967643230816068709062815694522561451259497773683406874154411502576243720326517478828999772955667807925798351964987461316405848541933327292034370146128040630740702117820972735804238992171649428687324333946179167088522330973520936040633986970140004138467937176270408381287574456978450641028835716933174668453023407938794002738599077897396291151811030518271096534779249236192106231292338237521550107428120334177023943682966934892231253688607633188827770858169059807316928906818212561190105617025326303747959206561021024916907945150950586406914771357020574664015878187898911195528151452978525454931511540634288715640413378712614881670151113552168180696401211653660069825662574820320801819077578284704941727021220895252019872169971968396161961640991041109314917250655282264480696504121491734205956760493856391008591171572351546962309467306633591375499870888468781378798210311952778362954954065994728749596753834570305736904560158752569945883956789821108227857568007148295612929724107970312073153374226052194419984961013015877190684685199275803967304805613853900910599687415563961003095649631715719267303838937383609557516051132906397493482707800419480596140877433496152503475245082209359973108181687340500267123164277079442859970312159703047676559206827856972851692018334863727752689703282547139269520268117934734422785593286656811761057346261654755872234602808822802470873395980078406368441013381518999287082288720889346318682814291307073001869814436134898714366690966620815689249391625034983839307117356186839471360196213092535876186114063783950305761084777863610717716388921791030014327998393811336659369768613927831573555920078446383320602013789106115196998054418205762772717891795664938591903625634090178389340607540657529254413286671177547321705705388430734163773316439443539847649362894526189674983932977321641595343061317520670754780115764978753368499813046400669193381504019947693129757669318727156834442990650809665083031536264142167012469508160456864844282066338466864292839395911598172794078739520983467070716490427142558193597473009648174124091778404496029667746679281208445336142790806859664524410754763591323315862842051729524861461496570257086391356984970557924726576304071137137109423371259000747469973889334275287556298025039637117313812470982926559683898579423758677691155129061791795975232545014378681835556300488229839207271456325787261778285302014744888477949483473424308663963277619168314244990236576394648901246846030868457662245219768206266372329082684624605251603610019581126710810003341959913335761412593737417931995638779431812712810538496176335650097929152194846825708005436465153796020461268335906523177494541250628470843065475333955043653730379488887740248828321725085302586069423311510716232296468306107075293447721144775834797049247629541033295660637670438815702204253465636135608881683751673686913604334666398573515831863130499406547333886848235133719670321843017866286278761643491111242463206281338445249715176858623051175232908540923442311391445326540892106837624652593397464732172529505721732578852867205154147238798350726080612848574426680192313215006094772615093428275579110453396195788486579453122990921926988427916444045355631601295829944327459438839211885797149559088913833394362411813338435848793886245129040102762995729537577045062164977953940511787515304911165959274934597798266967280650348712703799751905278138604933109887766861180807630081985834585567951845510304983773479773772459885345589180517742531149667090926960992562660224780619157521978372406300206810747559271063163650845840415902623109528174268569377171643535406232345686010302235409608592870469921765318119252157767299905790740642484058034744435827173394516012224228685621574068031374683439639358579322971358211823782801966564091341323125865267540805324193469532596885315767353072409809312259901534370019719063264955384879156079220668855850482949677319776589598489344680909567947221796471920046805412101009434454339920730956636690664867570584749415747863778673069417305855084477056796365208730871706625920681449391756348347807093090260971366613389263502287409834670585004252956147418629846569102853280582104553672937342381897215160985800371776955737134366543112125731187495148169190606693707870827141290647394597963771749370820737872896368205353150995036913185551962192803017303919399472567432101225809539633747953362098227676959428662818377422603275274732384971021589611925359628483998559842466794133841776870903693205249475102665767873512276663630079683268687511939981041809679499823150515441811306882615406177653754092808009811007798160239277760939807878534289596760651287715146214162237345489482490236356923938941687328913632900313251649339064208444021530735144896550731797471849983558589558016174934719635516160733861857091008434699218066706619340121709754963458501748552972000472827435461572383977451366011697108862968008726248527131464507072936353275673304688095513747021450892636105204808027632090685893499877346017387084232077951669427159976318124903880400379950707518620457868045760810856326150740184501510386734303945291703094008770604372061465018364797424294911604363413340963120121822788413528281685217403255507297715735434126310034555044439268709741954658740035663708715256267500302316088979150800487966718986343966030898962674432438093283299491911161958718168159296132143830099267504870888330337974957570325966621590429941441389776976867286396070070163791378069163063667543939229391803118768592089694363685130870545651673523300347171827693336470780558340982584186225269425635778210440913823280694679687707526101969317415506288996752582654033570239728486319868860831823391979388436140241677528019906303025969583518671491770704145478548629492758414361184798146162801555232005313354036629801663436783572962315426081183393409810453025819881441856474776080904493691321071237364745246133958058704175043438566302036516001550581949702556562588175069070674787539472952082560419961513104292405338005663208601120146341838033151993824547776760896159853614966731199197528529268213873724504081109759905525466122321504811283535491477940757950666310613870070046456194164382182764463290198363510747818345167455021181305995440562643351564805445400459421818896999106821329321078241096428019463778985229199926828234941530284630097010970827701311182811406084981785489448272838144406302593046560489053261832738979029582701959714267029779466613423346428071243138332260835557870580834304402757718516992954567869808082527039985850669889386167389133320983776371537985780808657649263338862644026619155794898263400834517104045107116965296285241287932429533096296733823494775291792524999798918050200197358066214727566544095271195025810099515862765569638484042163022143020551283779759645578873946275798624620481443311447618602378789457672461044661181798193441876248391108201721771603032777532206498217237008469922734009612371707093110001472106318440035898520018497532859876050515025064951406272339074971742418936656879219027496826027671379053593150039716862924849812409995400098476151589054450383298999395763227965900121521111694942290537108153164203637106384225540477134034653226191507467560307704996656421227289528618570739344122113311344391702736311689694055094420172942774465663996060644454210570884402613533707729732968521628412133124321192170514253837815410027920050989591194347739927807179322168556321513673004427796093650047493939961028140729144110700145061963428969510458684550277563324498049137200885218323809312043405304052456278178386045326603252629972349161250985418302279538927867276219549299465103657899390203198666978437856922651001839040927885040504321431417061085485200471897673182908506967752112691612992394574136508078551809233235057100724568165127529862311835970543186329119495273291706485883012657974513722875454580006351855658319653198747828292450342772458749970044832826173144396783128732855363111340681405748326193839077234861436747321369345807870473430646021138452835834543887024370700101954181892862788140259915758967566099712454220006467093380119107711679141347792720744294786438650027983732508452387209547561888395183047699310764722095498954605647003055015179395688442875215511867044475399426666706315388704381575757729251910643657363383380972368063946715852620075457081255020133543916314497688663238355433665050458690126424654728063472383904870465576382555623207776418182667720579449930406632491702662007220703946554098075075336165914523860816794779332359333210145938380525639589807353543887366510492804116414936691743038510849641012503168911872426366864804137747284183274144867816127225526496211953531256585171947056559997540520332714725263213833816102708507594067596240594276993994978427003031888364099945581476271558514464548286972914025376099564427627633647161769555994209398153146695849148227466781033732948014130894044269685361195564340766864555770483645317933820577671936556159208765754663792616403575848273366008701203774901203316324363235640565583507298074196960815572140949642403326868600956685404060334564855369645755522611992029860102416300340059695776155588395703002388200734519205042677689880724704586200731421824470373316278449041615560083228112894388451400109096626025873335219096655879374388708026023077024025635169921303972634403596912438018331405300550446663704448406925626875755396971450843512554335741522536132159542875888645691541761792332850961705466555774991421358128822955241996202835923098839297640237718780506125403422188362638310700088446357986386113421310164130525127777464811477647583307924301375751786625816322828691611082340072917030421612338345392837401733893592584353524451508942009500802554684298754860172627671137258901004235293246468935689105911546031209190672589509988445503617120244993414861991771600146939929875422038923872946416527071007525488196991841019660354996860447512416592465119255506689369461524865979458112756029949321868805811025087653237320722034867331009970452129697378423144750636263470137584041491648952851294466474063074108386497327395204469998389963021324305562317636807846042840248402582684982619196906865959990452788497428612452175280014535976602574445493018001143016023164917991518860785685769195920113739910890693347659002424160646331595407785760835131810019963142180786393181891562099097745983573193213997906111097312369396697994578059581986606707090648420440053094624791486038532976837717268154906369866052127337581355906452923569095952759941532741316146642467424091093986148157687222614803454184588329295820059950882790976027614072762537602767447459549703365472169173649425881371032504659432186668342313751131740577089726889994785860724044499394541829241949721502798579270596431238386693342464350823556832980216307677001910269557748515679047672708557065179219709684740052015716934050216544548416398201621679136594130891226115820631724418638282146799307988728376838906645113678184226705968762411868473518722943606855816603605220058670530145806060248410847991178020405110286597102345000559698216726492595992827632336050617101165463417659034207972693655217209159500833700953707987642752606095894163437352710242092726176411088473881613301028519046823703000524903903251371024781143333245240230682632565854984937831236522706750630146200354336797385819004443874884542650162968032539887350603916193508903903830863276614233781795471415656902135266436009263553320190856544492236688192200098637392604051988994580073873389454057230619238474201896017504987962858792846454332193715899003932098166584313511731030039073440329467034189440573986835238572274363246207235441339696486678996600678432710867474208888070354412088365776284996738770993197470022885627860759618706813029584701335093674774055141023184549785549817624517211023146444046129254436272603087921690757519190131282815271953241668517569656108655964999955446794728592267991956689078682510010169896721297401915644766172057001351303402373875318462542014563661136920477268660920766314095052993328477644698605807802903587353076605637024109666573603338874882663774375294382528388281873452101758039363236962826388472734568457361753307939176870941145985343102696348327882731081614934962850598729014297177122733314327398738322625113478125814833873892610993912290952150398558475138005547354529217386331803868304369995910845099750152256182840582826908252401879619285610374662292823089522193394441566221434336213210409355010114692508947580663179486545310663037589694592458668606809354691373772626722537029299949658671037107004801965846207167377555783810407498156109267638747996581946853811669319759205143054440927814199213821278092133132050716880084753679561024601220739755475166276827142701972153976312640445120563848973435141397993409823801121838613281998507509505740270383851725556256129787352453020057659272612329237900514470018439864926031829333713266602318773301286156882119475047569391593495946958287902572122961330533450832929735941972799534353689407060731785707936970143211166108836647782169564534104060460459070211108364995155497100165851718806149902106896216708089906969060841063905664546911025249724060713796426939925661409705773117029683502934149918584885653332714732813777774823984005480590090414879867877477025016216845937169284433713966162147820106708232289823885586502021856026833598429877184104749523883551042699094888301397931555006343670445488653913209045076259561298740865493580312945474620266246393800448426192966480791543926228531051727678242670729001972845215244094442715858229268118319388978602763557465777740049905888499942464749500300887690208534038502652477957721522943495087921647788464573677931693723294161271353864528744830649201303704721263618096832571198055459615675370924954197957785491616856242886834490916701985952045176916502130685409687198730106190416616436187317414619629712374477959780643979458625115329274116628338092331861547013114446822146900317305376950208326326652597517249652071592972085316226245752788119619089732216202460029668188325676764375117203996778358334214963497381667994768379355935588497203880279257693159979355288117832000104330363172131561378981837442993238050184440218085532403638601200467903270669392279761716385446638194956466564248002232709461779157326343339192927687449403275784895324178381990996034491683007972088267156939974716180373191095317628452377515699424986457533736425526194383953324917909215316664040117028638250046656949947221553179642524682384912355373778505906227534581079199448815385636013225912279344325127309832453583392110889782825409351858708627004966561914547483161219912195297386934110609084861174816763164151510166556114301210972728493574551692723518957522039833242707320409288480220836819915844068596685786588513784678535921852641910599659937068915638966878373882453753731767994020924865117746401118340327203955396869092363940298915091876934828128993275705009608333127299156921294023483510619487688891952530260840862389709385522784487203929157357725742345307564810423785550370924380231524968422016769612998130390615853936675571258627680815273307484477076288699903411613801329037548174832695750109721329024161694789475258290219218452689965798389054776250927506888069195062582658962153991542663532125746331983224453828402566240657301825918555133044772058932729274809039055266637393145582844921257709207814536650197945847418231049751764158897693654481542081390969186630311878787618069834552059876215458585118997955511203512612840485810320959880010406223032985057124217678751292941859734396304480513801051751759121021370472991638712146788273848658834535743068221434342968470031361001993124771949169272930181437169318928143232319362116602362287611569110738944683442792558308671762131532712675800383750714824320017102778016537973696864572242310124696378472617401507680037341424593907032052683317436452472369859108552379798700024938914295178996266555133475757675005038227411908376634410733593969035350521068242671021297428400482364292613597017343171251217994868399309332246681370777152450621185176099138223732823461162100595181750238654373393688855914581974317484295650730846483389143750474671257240599851376596255182176185800988662096095933033171567896964540612647132497554757651463659911097392030482496897003460431565898859041601190841079544006286397696730201002541893004651168280584922962621711928766493209780658262076172187443744054952729042592975803662299698890245349299639071738093792731715479286759215227789428666648654582891382499747886591833764266669034581514254596466444510011485908743601258956740511063469557000659483323940569538974693124975087926184026737529578778107349916263382618818756347699586369996702959860142307014572732819054261787764435696502010344372198903722537033614663759267325792528159067473597663151493925950675453730822751801895059263486268749433526686797181773875225884019000663211046423730267777682973427567820040694961107500084397498120074213261921077327377741251376404743270835911849345711771817791122205988498312152299970917136685888735716092996915099226602862516058638817622643494073770764665585893418017376100704140140162538915458864926283310905404954664214549009900245470647137920421338360618092231766291109885235226272324812467239145267188405019988501666848603801226623967050764662128039429092147911735607198970425783064998941253826156709820522839632578808695911871153688031483536433535097204906463302182246537703374918167170980183553700843100812705880860943683799459500996018327340019453914633761837880907064046121424295216022016458370298020387912516377632150783441522383792189710253413823030464805358274218691518842786950457773945544075452263811729837249195522086900786338957255295716797001162617532038810462700050170838463269078882475543279698141757501909888784858297995616367878461768341655182228503786606938383941884533306920139583796012192144479953837380133815812239222186917966850962148952599092654061999270318299952622624809983813690903460665520790294335886299083652328846162061405749606366454465555721156502270923370737857799652438921871414984757905506734858329505728440976797159438182624066500814241926918953421804938553217900136126756566187181181474908433964493641807051117666326298316128702554377445376210915205010887505082712515540366718516929883064177670284654604092164957517012006597152051900861910392002128653949637432649134074743372041326213598852754293629043713050666872708154128392855359302940583861906960049259029818218755422047042815467062864463377211944851502321143595252029323773909736490224572104931590707670410867053681122829389547225477451997337699903263800030216752677346014040037895919661464316339544409603601462692861658407589838811236779554417317720298703520774476272839043828452161931852975681324238022036264168384345416705513752747013909624341925996002625277108501497422948819506248708218847293844889183485790677368324911597541906239245551963746874634495026824118702313831772718233823302493300031544914654546329317204599193714034313314758352716235259956352662085572018678900704580290520749121069613710456588172035433082492046673328164775041687319327645381261440037294786811880854893340434067463359000048660893179122647350576791769229774552902432508905383723823797614651668751845230428397910650547486744183872519185394989393834851901271749816813664940799728904413289262736471170791961797557175288246310378833696270557130676553677375504548943583783514473706625954673761149852482212015542450099158488969153320652977166755311296791521038186559166764989738005569551716040203535965982611577526591636404497985058753273533610260122548036932095079923694432543765054230315245054798431140865692053550265410041676933521584761238672697730590380526490929444110040371246812279362826140962236153887636678663906329070284764944453470012813174683818652626093851015851402229564430309512269409870658782404537347562453345325347413938708634697525333511453394896002293129480697657428104993900635491564639760828704513903104002667710782629500672092272929451297124437419518576922447401126979649585102049046208792751606107785370624205471493546804358076935753763656199061823532614213864247003291679364373936929943818610577432761352323217596840145661775841912458347008951508020661442967430059453857088240767760585054793088048560136662814543742352946949939799157128024556438600235076674928355066317811868559884142467608127117831178434369622732359638380714374326125934788933950439002000866558490702571394418282555820639608704633814101070830483202855568587404716297337820108874295533538875993620942338596010970822630820079354655473866533737267169079766337823414105109989305950358956177151221586634238658955860942618253971074500578812534412576204804041652338966294757871211681610580285262395100493077052474952081329924223211287932799457768083920887357518833920244905480147654408192279227510706608701151235261216149082888467930558452443309716292683525382026664304613621362382774235850027184087038674475209640395541069550449326551163143985839255346402976729281741918889450571875017207194804600436612927918761177703784673328051036875146918620927152084546295789713281184699130175359020077570853264516613128340335974469510391491185651818055376887690550170928167698397333027720408668188374335864932952337526741859653695098957730998853851193257187267861657385049696868426554567896004593788542156388089604283276181768386137626310677244583692137375022956708603226727501681461461782489846836862825152292007068566127047070526302205717247456935655390230830779687299035918105127559368788983413183376341166430485162950904016482447008388233289993887016508219611965266116820207853345389059844922704266381614158796842974557610229667069617597927640340394608755002348060525186148113746914423987486868496099522773243884020277667685066309672162666791744409305690281187458878797123271255765342642626439583253335646900592052836332545940534290834399048058702343490414393580687677647291644783932556127908209768926607795349370728292271747505192595251028023782298525115180964624577486473037030250256313695696638772958880646194011953724948805849421839021542624841550718229251846409221471562545715915037375793830156613026905646817393197776355313052648831977559396341678262365635851190659460638778088168338135241092774697421574627307814439437169585032283354440374311366788998245327317374445733413164030614938307723644098707764838197376866259475641145268823305734254736157728634858313308029586103270085726910497117224953122619132382968309887469142760177478938853348697459487390297535229877483467542461180148743956312680337678748476421510742559341511583920465307862451026609134142856436589781334518105630994859013944153752647540697881499141033675205069044941324730130084467832858980787123549496869269386094442289881389534357121205194463973367857779114393901712875221937861555666933731937507028984455810052311288950343658176174775489145464788761368187677166416741346041948421944491284417538566259670705765203135333008837044739619846683310603467375383991889541224051836394162152265205382487225484719182835718960471760114548412197507301520531737016088334104796280869418340371677833062847741883798641076901225327766685115771073926704492609982524319421669497046501554199771365429982374338344214525836545576483387561195778644857429032750520469822637318197839985335358904497262800644162874613047184426919991744544867984006392256014056278192490417716811170721466787386606452511740926771741101557921866246945727192847687135023523900255713178844191333088503385047891354208759915912227912550657068594823072682872940027072511012017365954478460282198280312250783454341630231936597832142520601867062163132190805413964585496534001176433594301852417938955124972440567966833998331630756089142805089560154051533573358984064587809504962609470738282939113272642907061564685317599590307315290813094282871820660005457634509026190184900159198872708402205428535723175365604150371921712672125208245607820122788086161441767073429132513157946371017357075400822840958694852535959708261523877940537829136810372627996451474634019458320166045865877741520275654907621398441629209287959107806593719204233634908233570649030512270012504623050861181974848681004114902228789823550734100309292259511359365635235414633085021561367458741865721206231830757500485315265796788211046848080614859119187182562480215265130482899632451770457102282933420874197240313869751103090649346177162841269912499383331754267714101225113565057196349060958418544289335696540135392521875118160128089425481285211825744281977784465881648869103216885452735766629343829481947014123118497550298436688870803588178519729670375947544494066174285850049278926171648117883100464761548764605972206672983848778777139108388975405076920607176269660154144245627397317910253597349972499368729399615321716173415017810974017978048266846962644179569682970826859742062195664346235995593542658076070555041729340930802854618222326303339473002379870207920796591462092155425255539320480558125072835815040167157948032952825381429084426204435574148446029862858982344966810465759850900152057191971561310437423566535709237919764928365836013988303682833232393275832379564268702252896412229618411834644215750207407794196643548098758851045510013827383250730446476226950698632347330148777080822851387115986088280454289811796805523201911079821380356313365356982018957855649061318297317910916480807836392050991745522736859240460638650810192357620145833027447626428491667776926867093965166896474226483364818453393139780950458105231802501466321678666019746503951281600990074704578051617285110077686111947050486014400668473769657526172192280172828801861336137827184331776403205385108630785599310368861182307590820935245575784715125459651488765296957782741628832233131288427612780570694139645372452078761501193185058291407579705860847588697573516409973932659002988740947301759631463480436207574068335247816945730832384923395562430248052266597947138389151473499752743094424191617602957042509941883140850220447707375430986892174053935187628216286925537257659098965410041680577170169216164201832207846144474282124340819890271156011845807279152736546037369571435885181328854345929888667464449686663470421044987945881520713718980972056583441918903297533560928766003400843969366336082294638741834403627066247345564900267490485327751057160989080793352146094750975017126283245149231176440016976084292965777257499954056663260216696094171441073170933980556236918515845080615775180449384452045506112349006367433023131627511357738235348898691818669733977545836960954188988470126880228595924287869416414371857481381971728435305394000817420417642296998942811417070805122729142487481479729164971733914664221707095521635102376799491062377063056427982125881679249495690238198394966055852962513900676728751120711773154096395610694848412310106287004704922436530265283153089239602347143820511583397933898063420495131242013316644438375448385666598963226952220799287059596220912273957915173486142168182762256935148713841278396884830008368944195763257828201483729900349913131306078111860761020756467277963550630830957870591768633906366467749813105329257159848516880957118181244423947665270746198319459160163471085360300486861718739296294586916870721010859989038361868125844486895247509388332939302138674897836851207153202273877166934648451429163703255925703462555714519113192464167597710932992979218126360088685311650813421221755107806865363128279730649409446377457056378237157335192261801538979462808370704535092441972348144939661280924571130887461269716514117114598981049895999948288495678692792934480446516570973166095034309827188648188180289515560849893748299451215124563871148837706716343974804016950366517042340638147922856334209539764504765805529018035345584898627985458865631886050186644586909307473101639020846612783925119149101349350860192727902306481561499588977669554231750455089575234020115296521069511903901817626172185609171072303568683740574095572813783269847926945969577666655339919510260346441046791207934145820446439028663735659991829660863160080288367494474374149683256791078796071423705497435565019298756247622380488405513032798638357606522728088532789425469475903995196035400550898684938847384737803580311947999216429539930781937069596137390335661869342877048523475196490241080109914399648145376861222557795462852218231377650170901352834311668798924516580375016087363967493125182547152629383985181084625611965731087330790956350126868987465037454166230386146795246828049070373337426066684406926873895380032350759441717033407007130019029188190670747256973417699925664184292226636141924663287042630744198858803918566557669151694692835064624070882878509082890220375662843626706604072514908380281566518751120002846489288396752377740478457510465323131959378769817802386184174057424004572666194088417143163678195244424291967824768428752537875141363534274907846013961925757704054294128150823377678423655932874739178290948057233283729593988999389202046402634299333513580707729365629488072725953903643925218936917312336466872941490489817826356127648429056235281692252328255329752546016719566658089332344913789129580534594915322896491306344420496834299666013043406283174957843654804761975342034315776799677292212104634600461057426841691638448863471830393876823317605407983609569228548449307174132503482294776742495786907973082903045620513765181321556079992321959503312609633263596038493912422632407884796713045424497958470634263530048671812843991164457348679265632577687396043005323105723650043741243548395124111593631455308822101536650705372629244839161082345939682881559574289646924040791225616633856028208737838269053314872354658627787771213678171113263081076620104117585136060193665864731109864194166568628314995351184980565652630634027060215139713427810481501894240632989808404329493841708942020827395797734031299013429144639646836615052164636275321760146083281456065482536924010136438231801915310169300676435957258701286678547978653485014032765052515630724820395304886761098329688906847686530387714089240125483571599164351792789387557334962111875797270117678594419856771475085244403301884007966370040575183023948900205470700443088456382364148789702380403100612970536270729177143319238269786104807873875457176821516783330359601559524846630036987876781985888473061184579174085713570360814737856532207558315300824329731080543336735793705034939113083790213983462763683045591213004696100775275049465353430052370349659859475922054615738726646908750053573063279089380506925531509431057664991589411870131950378950459382080604419067079249723880113399003751483958629427397695892272908878310880352702144521982517309408882894998775684101406692229660037424488580192846804011646413013554276162409875530453076087050947200228975200329069366095689066422887346699653805661607849591949981716059798735076155336425664629441684163950607984970391252189966269197456316819457926602305105263062697725031274753026696140059228151172610958356331818274875658692455969048955607373735235148441951315937606535931147394720105276454888511026027691428291072950722242853509765923399499892216636745987122851281907501776828032892135717885981604881856953165861560512147538594968025044490435256356712833781438633475667310782460729600366450229379460036800540754091773391802643738633214808852471961478281101375180005405855391073752502762812587134860740058484830097604732286973940839012325553536094098835068365853924391997041460853863623621581475257201155859464466550266157672172437555302722163019508747314005251412213263994039964514933667816751053975661339201903620473847998189995615155627730539837078663342452077047037485727716066560367968876747648646186256403154952110616933609463770571181761642525097409030747032036404828288984596596711240349651017654317993567530635843095314778011429353844883055564756469817752259711557273503526047581088882954841956279826871831440094557689466362058199968967414945813953756553887172641688289549424614659401210884393958452471239775407273396552299269371541563396532256455999892558660863226647450671464290937336579455273268869789554002140336877878808517226230416894790645898289895324962911675418592862555688737147664029208252934441551222618760752910040434144485378842575387866141357039498887690261330570133595734983556800304530355682554195171846603951943403248447728929507889748178272500734641314373737286895937161056587599792845547030621243137086780706895442824150313205714944706979737461564202574519027318047485188653513830636303154837556823737338643070563433482761643617769419379817996940129505571974180708122812311019151356527169637038463176622609287782108370116735318716849025029385863698789144800534579069373649988488203014869570821806888936560271916571108167880099147982167159037564348231560058364408542472058273212538690401607143394134013917309248823598712531784085886398877836304597296273721981183177399105938310205495616511595181687396960320681691494947345223399939119584766606579313300746594269214334123999531400501441885974883654456062558603487338392979012763463890261555372582206594815829512161391947889018421440641955553836219745644852643520209041359302732281924345379182990249666204671850331504655873848799507623821969692644459072674414229442388149886182906691063786175645291882226615171795250764065795447365039026212244501086383681359374732035046761332686948933976115922328638648574207387263708361497371990090687718103494471673388717479538482640603381664205849149775250829989004488477480842775007777395529607482642656436503042280047725879373757646678651825412701608175766780129407724535370770515558510684485943438398407485391794870199676005097940267874101103546794838919395312287426300986075098280596079974374824814128442693157263608946733675522676775794564238772946346924819538824141353505114625970211263361838835558461879599026500841086330558020056718526237333010407813299760348235685376430831540279618179931961886749824192520030117013616227342039580325507895275038996791900350904629889728055094490404284795762107174944890596433853453818425133205168120004757151231916319419001375876525785455664405670539749978435326322123817406883577957138481480903243458028739986156646726631799545568974478907153557611621047448722355216648203277680069857184031213887152695780601594450342520085715693019818559209164626443641501001557568061756553989974488850734457173982209064748796814684254397092030704110260741581390407474534799441517762979918947955913625513205334320875917077137911428182394000536836225994570710849250955206870636117107588192361221667831083804002795720262839002096436673096911365471835665057625332702398043925365484985916065733638029397712251772434045523504605641611098204483448141588407945924178161994074163550203155219625384070044224536081779708069990537430569614813743175021801649250596479216307311309436429549818084041299642809924168026470696693781651555164382820560948217529087993229178651179677634973770854805736410428500916954132291609235569692929625622254968192048125977322035115466507625877912763299160603954679558603017295066173739998831949088759413455476642553981286414446446708757697112157541432370500505089255041290044074158884688254718463744483484945147367414791193342681946502465147020588792669430825492784650227841618141876340025314259594464179326059155129535940270934920292740714803117865455303994059367151958189808147210477480525908885788183804014818258200353471416182701547644844958733594498795726702557613923627157612646810029679501879059273384447235695267030711786827578232100240348200555402387053403946792888771407265092306873152919784848524183576894540373383074432524360042284695453952359833144602069536646110176540637210649825879339215114930748373512141223226440529292091217024293386991397903347207942231508674130057473180558687375048376802700105508057408601328524521152670160268999829113068787283126844999912702680202172926631632936384830932240641475795224246018578889854513596227985040756112508661012321422999189839849582739472021720132685148574218812613720734893089455306649693931713197783586787964614613424333868381120083374700235580686216939102539654906184726221984681531998035400272046605117450559222926888952948440982909613019733029344982091007458544738217117885400071734563974542702610160416598815632845029704043320518508736115621251928512321249897543776976487408151828639438816034428615865423053540794357032904966356796721871298834093618332220455794585573961811715783506161641331182748234052319265602500463114642461327682995487480601072720118146050609003127918087174566650784188313159356990795935647388172783499336001127883002792481976952046514563391259371971763764929716293069298999188075061957855511733261685719032458560541300357433568663731886074851770769117511961987992004200615708435523691164872051317959506373397920406210118323333016203861909371625343216586892018012848577919392379509009037444362814658445332037141103864677998025468084143955353421517645729912481768810178965462580134379395227179750089238904863289178423146691538899672456889336401992244477465400292102827489910436464642709645487348771687806983684188006261463671970512220605910863823989693353872562275356543731786546156511285447882444441008124980185781955903162705286983843586065867475874651158760343614378701415397772318784995916167657999422499310796372488726900113617282205799465980871199423304735201497625104858217103957189141065596357617858312679935429452880336531629514199290480935585486839239407546529756032344285464776417708906078099189487815911663336641099168070459062801606458810320424217968562962223942686501751757571262899556556714968505630518623330055084894171856570370788138745828611208215746570963027730670200291071883610406408845955726841379373982985910110446419784340739574264921404838169056323467869653196085970604853818079700275957585414186189439947593138219181862363027319239855802586453657649059005164558789759507044919606137691005143029725662886913632777489309441379272524868004233672374595681878688678108664763142255535923185229070779292309529249919148828834381805944326943888466451633049982809656071980249047221512800040892118277433212873186443526879237534581287091404855816536125894996900539031261158160493964768165906001652234965461333403811952977447627310329063007220695978889025690519327456329641948744984327687121634586280165081481085671166524386776581433815939098198247035416073067352543845937540354074485913857940461072660012318410394964691304780665956350725598487877103329118757134149078948794426113729904270234130758673046653044819594735739145183716483919291998134155412175646082933195542663827419881373017659693534056179065355030464228766178263422300869305067236109544484417226781606140838922582887245650997627034856922021565855703512044706684696142794926753412655771299745528644082957744616567257099293408521338567624766823588960195779824118185196402576139652917488060682517615432404692271253624459874831298843794772619842446619779272683948225210792206813364788643074842473682672828328724499823313417871901480245001449349246310366108459610732715951676845945500490359600222370681656591689039880245582024613449125505050368053915930411616245692454501466747926076488874867876632003770266648230220342269973421747353338498437279843604589846219630876925050756200877142798091379689490118224762810157732486504978348533883334017889939739372499272236785272682123567862110361337693807340546814194874773948419147865698942424568641654367493049614828432598478602070877651405052291958410788849184216946475638478935752854340121855147310904817609816245456316298453361641914284109272441099485060810182465210185525585784278216501349308775130011251846516484683726903027045834228527166068384403160603252251199769076924719371559437702122029693301423690349994520033902177031980457355828139284265345660919217138729331108402517363800370091339869530360647270394851325410751145793008066836505660824497092960453360471582942031271948904142412160159529551242109205045797121773562597465658591748801929929525259138395760422564412510980091094842860523167415593053078469120814624928995391797101383930935394107940488780973078412798629993316312076363960240720429897524567634160327181077684710380515594279347581946799932416064592789615185463282084673358731119923024378781504897656595428916347862559605338239710084495212273582953603881463166336745413686371304262007036550182654435608426914441077616631296457197571436321244163814068110548464374435000381769713098721723615513922219800879894642299782278778190089810230496960667808035579971003057463438843933991540937446936242489552471401057205595829890890621572946648971406735381757754763966655172803259419283893498694409257092092490617031533074628022855545800192894965963919599237835351403463521999946411627846895138665420140354979987541731334883106320476727464642544093279525480497957956700955262959489941355099142381590095686553832821267456232267665043129409152120887576104866161840349542573891762773446222229058430320776378444400794811523522388228536030159521343379276113609113516706202117960114958353718894770725288954817964764469952900693399575305242073859152358087762191323953800762581345386639937273498272420655538724783887871825355147970061985828034309653587927075402014199319217267836825944866892105316726772135093852514796959965060695114865101960761646636383401797567746527886816807617786163829820203964011375885057566884162205067117442082553442044743738959579782065455293640026904978841117446819541026239889464540027683952744857902551609986481179416245682747661364754566914653122719913663201216582915793774100446733874815975695084861637590488923001748283543909623672031636754534666350739883438321614838187005545193411830905815621311352018574924127853994694969512278483708749287158333212433018442667112596681877273223220943962911105559483166784350507359288906091490016597515983184325987360028774091551308272777704011541281505471041870395924031517685291527095934816501701888549163322995483029453002476818373525142036311337647352618038476976773756851537989900884252434856839786270581103670406849600766514546751665239005477899382087642306302776357154267522952438630473540759833347871273402189901054092944296962499445630342266645853845850916027890805484262070575177303524330865176901909297374657497400460211719732051505112373786436248513740516208297743173009557994290717712794852179761949622261132904568422662952131430542410414591437580590266061318142014466127047138943971380224289294371157854450985196665012814799022803063951841278469002941436005549688905200065248897111669286420362853985793453634821857427583668238573708696107093570811012831334636049748247214949303420600834243914403519347697366318172278165100790978679635796827588173104877001222478931397390430695224809407999043374225543152772088943123700801881779793158384062970389253550748160962416789823709065563999274300170255142887470797479397859995685362370037952100348077911376660274841295128535022816587763994463372670003527622049460672213475119817928540263778625577753928152746845976114765869926782724697077707684951334128680734221127288312635471331620125100719002599485038148596692888305992868700593508215122675142780311425436117582521691426230368012458574154602766620870842204676626235942028864361679188113516166280149438048532044139537622071780309209069150112539320989320514120152093615910000122919076835867970006990571961567873251817398843101384610035081701767437447347763319975223625130090983215024727427625756129128149757223246458605216973095073595419597630739447072340751072346975220869543082863654721441337959836955336749318624937444474267976007058395984173544766844830674018599888960094419047832371163880923894435372484846342770079222152600932837572462005150291786880563990045404730019639408912070042735864197407332569009599662845582592442771947598096692030802510561220220029784150199418972777520524329985014486111381072252569993321661284700495170016773831578235837289244585681405653304468837406224605675104630757142122371268804005581376329301441682936414379861864661188711325755251307161337985479254331178975795689712909220618796948777812876058683928443497434226112823164699325802828667393943614298248267949169868313313407079975466588285484446742173421699773103847167884565277758645370597522704148402825237666289314264405210599307416669050932796708854725511016750377064755884510620667997591613155935392246775626225607318687019183676132347020334503274556695729825342700930549713386354313072743568485514422777708173483894968718628614298224394387920389456869211360001538993164964576404929468351609072282561891653823077896613199896715602867154590585488992971142391416434745257349170447964928964171925046118930859940677224041610874462079793072741656551708370427002502858647691953244011334650866004659831340399533834094226464526334921866714115989438269873734407778771493622926828211462486062199019179867856045033754137929599570090326211169856373828802449378418071575802133280989118961138230673157438668781486823913462969888588662259343297132060231580147778053143862959979265792905858934529182932472491354732863734936419357473461315333171373244030928323425336635088024188502568983209573176040799721543226282567696578690717850452542352921898393886882343069988256958290863402566351407359898189786133299308041107081341434686973585309279462444141010123090620813103589504813599422782932932012692699947356649039188694168988826226493864161821110899510469746936670307592668742009336214969191219695128991867129302041048735582494681828063857188820919566908971113808421095095297377076574264784500288381368108256553590591346235818126302038379590235042998402678024355594118381810379686946918023669907951797291028618203203908525151878173531686237819083576422203902766055796088955677985858720417847857154715561497694941813291480224249318564407091629414743353164348144147953731187390730294899527663956634438338507652338340203903240999510999900014273961500704100710988840781246656961742163898179601460802512720607331357302256033827716052232435760407143822426338596753144232808478813753955670404799334672100123392401852312868567907118067251915968007318288964677611589757266234820268078361102797562370071215005854741368505941808346431356859977532436016020440143919222974056776145085355575122366870657392481304873879130824612503384372205932680341419375033540157407514581993326261906897907630684152124917473709636399509394746288116773162746081061977029091450243794697505137273910285032793932345463295522763667702358790589941291092428518660756747548827755997686104240871335879888793573676010789683698713699186306843654343104505105663738197377348346150560293818700002146911886246635198504838608713342492079462846771211213008947318810697636682354159964985306519466185359011570914732593036792899492907280277380288035331014955108463885010600801103003714239718182411365920315674975511363889303347624591734279909416038981676092745581559223349347654459141436790667290420516970206348362933189220289336837658045439326026596085890613858321331629958602531002375132038448311856430476015934992677278726497202109000963864811051109297737163251580332671316190801874749596251265269055055690329349730053793588519827315896858085176728584776435747592730214694812059057891746319448451774354013897808292010987453562735857311289314060053567803010245588782200956085960163914925136000639279063288504338161504353898218581952657948269986699991557287855664531121094056545906415491872807505547701644537915279193219542873212001641579450642150196693433349022590500079592694163455781274643647816187032251975153174573580541443794043898428209404935923719742002933251926284997310257046889113926512597039413312178739985729183557516692389621760119160219023145870781736191495060880814539221976765917374638616709108901895020206901288310994823888879832472125117042474953445132362723181172271691759719553701042317075203804385938152357107425252167808308498677049903642756770581743963756290349798953917408576496922937166664719307916500680805311393289747266887291979808727931031855061344044165494885161201594951239365559011341998441129316101054028973130427329322313034405523097985534096233538897929255675607585787163899424335455883326994213839595802879609699334933321183944679813718237012157236105550280142339375489037617779856724084521416789370406962972112611872594319708513041260829862279224991599056699001796218502379921341816911326801809879254762000336758779039174425488153966304856161761866528344684187645678708589629742340672573251409251187561203561728698921213004241962357793408325084231783003160686256559601510969980536471493043790633717247427820517925821921642266251469724673630351563459660321844183986609144922013997166398249466020718013539647237762095831550734344599795244915648404155594871450934089171820698814400445038809688372173232785897310002271468583145856260618613825703682526308804122262804443837111325449157350659869253983245089195212997461574573424600294108043563132534008344715124235812070205452649487021400502990702641135985789125092845723098672297651928713023131567665925751159965166296798170826239397446907845057309057629092857047333488264898262679914444983785918700081184280380300350585118398693414500159194046461405625686645277086571925499332881893569670631264142627504424051466162570659097648072456532897829479899112140009326320179247284598518086159772054948970348171674176866632024919054857585538952783043670408041435649593311468839265139979816860291479393193402747671319012675918047703180383610244115121454460039800995506328783300323313187058777298944211194292401717932376998171384001830782044222067311098631256398533845462519111784719238978498193950481518195934057548293626837625898873693751236714211570213546152113173188946917508897613352914271245992817920299918941706214805460673933853806455619586377387162544380302761720262133987574305017841043583258173817403143197995103111269171647919885713779396522414714017729549871391657275104733930963066505509072994347678854116044419709702835015378689104119909685597229611273843222951285989098507249933070489506252865572143541746200113259872753254813768657860987576446647637585268448351020612315955413810360493646377563173594415368469982085533154171096608624686335949574508084762041466956961064428975600662078139143266387733131656865413528860113948255594512363396438964308408194360836492845523707589220932867864017379039359068771818885676401980532840153813313052629782596903223252932999296244590081303130566898458866908041322239604520544820692224039876217619290744319403508486207898392016309105346732472414775945114254251997325607975746744542077055421513371230650794495130147818116951383350139587610090808568364438084252879056384473496688515798185467135755124451394347872174767104047704822803728490969992516285132075433441708975184630506726237233576081499821683698305205217267530194083516720153556837372185451316082725807718640387672552485063267662926891748399334627222209635251579068945189632315582536237744841997429299973896469405903745047084507246426400766254256841710914423285142625742540058295450045325823934341672187746738629546969965649676214649429805247382367748389911044051765568142965070702042235967795725040332284892085260214234084739224912611868170400968629847564692307211899558868646076664954182363490422805668332179586108117265362401337872361189590051652518447452044178318664198155868941833728196543834940991409057217896693676578007220974254028212530044533404190239302241860403078357673568099381263542509280400745916272763257027611179495325883362842224071889121414846648399242119322214631333689694645575382263142242318567309542467672571222903988214711934989154200598531597045630194764386771031874815718048642362237746916859736104111286191427670854355132531674155477239254718169608887843778824571940879156868109766821607900749925933085911626440995420231719687384325614472578823341989443044335811356994930360221677625708712631741501125180882149727651244916834967878773918590237735785767428406100256094512643591440312058880437422326126958899321916615292175106826400663645092045520908793826332194375762774014714939133817479840204065717741107986365371662843915734631066893904442750565007045854393484985059037819385758380005659424668050333120548157130044394429260738993441933082300440886976357922551590663767196101920797017995234860599600040621112908594936455570480380327409646133497279626269738638399935973758540513819140956354341647824005417702542366339380361687113766474878151115819561723842367255958181488048804649664688025444553397979188145272988959106396065742367938045604918635317723501479741349552981303063586985154841333889497634077550664167223044700949015631698540743509054279911336628955532067923183462352171744661241573223996567574232482644733904384612511247330806508651084494637597915278218994230053493568528927246589511213167708684859786980554605886087956386463555417977100790305121095126041975316299219003094304023438530157448130282123128262103400088827708431839964723285726744289594003410300511615971068835138601031350292193259478819990902712116156402651204799312390453106737882785032970103309226672368193677930424220119412640056402573206802585638855944476392039141889858721657494881551467891615804497030219489245958845983526638944194415299967179602346953500793331979113194914549823125880088491917473716584335667239689699109147765612892555120521853390033560302834380457767826223863299174994196878949076689337137290473067879986067636680236770328671574415284364800231130148993055754301504552333717331242696692653564333097745092517216994990024712882459895167737920480990179887001957614874686194120932259281459352305688222430215327430624674876977140947533702901444872377955004138544032615490379455318117670104570742814200658163943094500581540633925374985772800958239162559216569343798238649430073647025282578924006723754472815641025124405110435106106403711022138223695063216501959713403310749710515437301719254788569079222919864514507808888402862372904456768931454589788318875245877589064983426743823646969232706085573171208704287305262119334562219233915470719436282858323268607732861441877163989639409638192861542438139483759788141735796614087171852139864088998154235575404291506914683647539316223541673584821019329951220082652748157509408448257330403630984430249031200161877908232459783040307760771642325849822610329325137936396917260424265386708388707176095637292265869811490091180426982933313865807879844567358105113925310969173417718171859804456295072786602943370151767156019353961599298965581360635946960174644741061648208765006759255516757813002820510504787783606187427373748589783220539203176523544394114060626071569023205586157789179978606230331009800683251494009532094143915833625990212718591697801944899912266109347696153726015468960262821311005316263108844154497638177630862032588189268968253307337715542878461620262743228596401272125253037254529786606481104206033575058562049342491568663104412891009944822764031225602380138201263429253770935577857096734455265766109565954851254598748201296090677428293410110378333918150936437390901591807493137736886692565614343801022606075069220379549621655651748258976296096119855195477869775797153840559020173444568341911846497008157753365204758184726357180422399953600526482054844416025211971825538607212817217627259005424922532706703294338886011061099175075834252792260283128418860148548042568731686691829608409742252234724226813247011640847589219722217649381597800577772596713145395032348068609124081116097942361705319864192266309260113169771758384488951219125606610514991448456844053912130508720381145302520828966990422077969908145276249568633928552246259822835663318056652302081059529179240897432578340844628993034647508346514706831776750765832248139413571203458977613625351948559719031816928735706000076808742220775206735980536147007178322161568925837164720227692964133580290782850811752505897243684411702130229901124320038088892049289721852594973067766790401676921690808350628950657359080472874928869956839550177978108367032335685553015322546291093882649910350555039687048853993846427837011124690706420333257282107668749882313401162530684543772058868825083681773658147161549806033655167026042441228642996645599880237756731465135034492346919244090137538523115705717878041742149282202370968062844077338381210265926813016389432228978233896337875425611140697499142619610274688823192800151370549586563217130710691917188026253905605602956618125471576742054831515257846500201895842144310317374266094847526203410936633060733504083097487685238043017488002260112493034250823656685094347435853762048886586539148977736064306786424391998868695291343495471508464069058352632362056888053172289944341571505711776976137892500802916933976037007939291936194310622306143866097455227274001509846717692940818818582434390343645730598680257602809482577008780294377408222121105621548062469248496778625886034109076248832837339745898568554787381768229899837963701898249410337606220953917907470216151922166984723523894589796894130757818488536219322046517045919978899204727168223547016845779820563428441315235773544332198511897849982935665311035086308676373502416556304644689852678936621559280556635550315812748585673033890039778150523232995330119057180147492079140142092723905704104294291797852337313940285446032433733057275323514870483405016541014398167731367258831764939969854566387401375489829934978500103576197834625219268798768041038894402543742444417620921974322762564978807452833681217560543550978042470279484058213916058955089864935338819246813786145447714511521922049717312455796330273842786061786845811178306406013960052882988411476221534965893108946172740018639521014626555291300883288831717728523480453689021834511470599684487487630579240294743363627103035423568583957146328017179701339352122293033046953479434571099651625200199144632658426236498450266569605703022233183763557909386856830614852646233761361959295254714329030317312545681182685881100642188798480712138546922074708462539231087467590148299732055611326600814947477119761917835339690688598513513081955494371079069056853269789229927849189924135242049795737138781431643645640586248308150561457483051146268636489421967193690987690900848586939903441017560831243471773672538572903992717148099110960664768441851608013563314835646499193215512666630445546355061243006227367379115275873514613076789773268190406407696942783413773620755268076237567205353635111140207668083442302558874528145696914266855454799070287567634826218227098127807718707761465913079315676237835192187480122565760248648302157715725376958644714802594445148755389308487691307557915647742011098605607366371141023019923296901887109833088644810712612185540487728884330846596269672073277002257403754146621300500245056334360894595289187166053477208591297660772184698964960550448003666571079453488850948021000969734669837925727340136991957389684416178916181122612470105892500187164316408476414692035583614679341617796607724550393794536827958894741062128820414319255971215234689167628587184796877399603601031509269910484620310432264146681916395625934350590488517853972904386024249358701808278009649785998611799530275829586044695106008178387397191702087175128414321307252984125900107323878545167347503961536688863552674787984369158857305330280115130074813232767021171077114507851983407497389668530731837310030233614764456183305950776219549545100878065349384570743519393335104836142546362157319384796652724683442929875018803130772462368652380411636483331760525683442007436877634142786767236498548049360505246990700652612889653879525680431694518458433451760873384895226726281564989952807693462062189153240345138124196142000158313360755417567985407984880873657953654792688923495414832770229814691233828046806678512006308227679392469725460764159925411416043236282693010258806094684858387628263374269870628596722236068837712497000859743375665190826854401125271224938058928105359361185957500660732287284801747237059255585976024676364778862166218789686401817460339832722243005149935909414367757249097951107425544470576719148350654430191796136322883728259234065185734028072825492920002544883850182449527944926297486817163178034614551588797420916308334987469233897351599422310932689332989832545506494002290524468093571611750854999944010377436356608329189157710900452088057672482304954320352814627529818412619486262483900138082402382553227455465540840709419915691749295771028858649241875385507350041327307620345978557091767420949869268072667995615158592605055862319052306945502550341171073088510925423214968168117398330446896173131063555936212698927816755058371232753238943174257462111287036823041913201214417322168092863423268681988693352148517410600985135325894045410241807537981145793920605470443689041474113766298215764657554536286012664977442497306187280370455612780301189801647464334012602902880541876234694501515651348940733131094975328968563912626527556959934668421561496936370907202367476437506517812881202747413361545411477365576774328324265703338300201611775478519060876134990105186549295851468822599222593171797631772986307361877734006083920943070652706665733443232688506195459236210640401914849404474101946674880390935656141659756082901471773017841023363382031371635334463679943178005178843343643295632044592397342379599555382479092350678978382363138306690433235971586956154208024796645570859045550669417787154029518135211120942773665677167658911979804588796702039056683388763336967413534549420542731992599745689096656841133157400214917510593204841395880789539359545926573534441608586703728664952212046110696265942328596911101793229021546350909017837616651605953516046852518985771016687664964890691563834080754946396715209413565917256662855268885240364941616096840806942940559495354940522982483109520588490083141199215691023934455665363713719525640534072425815011843770025697978529868444070711469746224546450384804849438312672529645607764487393269134043192094557479312796766929294025298029075362560316945450030030504296665300955202514406345766381646308670120793785607302855036195447076330688445645342376102719588885553351176194791874786585039262352869572295400620982346671509091203633664054112217462278902247409098408041348451462678803238599651829533685889800996781260358482214290516937728810084683151872811802818313825596711667316759442691155260892003514081055405419466259276917467561151763656527121465594660869492817008645659406794273583784360405904990402216521010389749720374114912557479866760453241407404088031079592765495903560742044640064034616190304367132739335607456047930970124789140562366727450182879384257255299006365994761374978652443246059842300974989993654374902364655262034372707732024362959027298440056722583555056455954870495972046377123387592590218848400443880974424912072985953243853554540130785078661026790113726231927385760506037300625015672097232041441371126807275524087019197625161524506299073776309363241808832796019869296609771755365328125569584289868451206041559139333368313038245793300556451603536058440057923508900308756464602672128319028984041002487746928370221156636959089765980590453946142375073018364971616604973880305914814320406203816702506456779496410223599837924756047331363186818159605182929482589278752614119841934839951257904128526890688629689477519480702594919205226780747916592159037182845501207709711324209100505784977227762837297850793806733530166035078115093100509929032244738129681122334216062931443520065237254206201730746288216228821569930215283537516171230164339579442220993584110060018133414389561647874581326363021575547202585735016449293618164256896557719954493413212326803445092712731066380825340647848010129496784049015244825908433318751657743006219976221483925539753050776221317617809246522969648520423778143848679790210735477770506677783711858000018392636250508724943441095058307762154272662401432309950154097093044333800299039552218391051857714524290297294922182737820265407597075496464613978135650389114624074792946390693153622662595861660951433974601374140315312959712019696627416890535077573933659165164072110090036797087938388925474512657704839928350729991390867201418305428362970802330827058439822087054119761895450954112990314324480828460665151939112509188984406866790956876263914272460393973683181103313207873645004461663039349330901292918249097683409097847022406925886020307872561419571879123237824673050980073505019006524879078773338317786872121415127630139700157473601661759955134074028026023474025818946811923030284837147674793779080622703065950593763153872130450493365662452537038660125728215394240609494648998120937922901354922894415215287864155604486244836849602211387808766221216368817362474758041399740846608933558574624130215941780671804720409800577499455856781058313780996490230335664073532133592399221785091182624407658624965866734663674320946650102432930201816624565045185337862771533444608835806068021754551789202467238780148234745131935171043828208958548044332571636194195847179564218844596735113777266109230665847758487528284476552302378463568221351303214420146634355150292670068455330903891604855157666490344844185568288964846449860269627215855706750506379094570108566070403461632069692244136871182919292579227850104769689125456451557571882560584135902779856318497062927313520112886886308239357943394017396130766176195428090547005373909620116909054876637166917149275469631035634962136959998043746636460628921256225971979981319002756963132112571199185632463425288074862558390287306202473171109695682615711536695835727985860683797024233982438039307297561874335721726580183931697579705612605846351003217884556386157927937349209311125939326517131725776637943145268476187092693091621382281746321027354558002328936768706518402475954267414687407958853903034783861007341835890889674870535366811189962870983642631673391705462488562728986121987424727041706416754108390184864698289713655914449717862399939352263194427655768403088155519254685063751434388068417840060926642900460859615797201963917823684203766627789300757027144427181834233239416178473563581522541874841365334916497291267347675374364392460041067005911315383841132536517772169835943227418489921017422910605960724676906368147109000314117436718260418335132344105706592268592434495874636985843651825258704496557042268971208252024367472995530799833221008010054951299730026076935108661813949311932144717394649678666746245771557399185076440353915830324122674924502883507818202353597334228808821807098791725009743400007771781887744517323085899069476589709353398330094608377234803750115627670014994591395217611870440152810744284070306095592032181990314559800278682591024139406368855616392878906690315335113880041917883434941028191497084557778590664323499134188701806614600631977854821314023084954602734052673656781833716980505983731926775049954396577387368941053761398929732778113297136373319459928781676078829436584437066042462713727220066759940411564109076168599910149560538553601212124277879724998934384652467240061911389110974598407457771757037129472831211870606836405199677004169752093450698325917335949016208738116997977808951622373971966075026798884512123622475263202948259815533165602252871702516199713946767119671443212219772942708793065500191447798324883505842164177279983641424022390704022920908880018155205794709333123407128851133105675113891201386758497393245392357928680917978413814395295693527455369573092667302977829705861345132358726835035120418799802844048000398632583828911684630550268840824805196540215663383761446513366676909791193657498014245880525089688072618586348068130492196038006660107334829920654255292336519511838203938517120368660085210023241396032432837120055974533402177388354572127113225346265735481556175456498270407396423946968630536249738219676688125309051392070117810947625955554098202654001833907142796287615751289900005294271844578340259726038928941373556319309524073545900894247349839704659983045777385204482587939047806970668579669100759268012804073383132227327379701406061129667891069960488530684129798939774788088990712377645463372640900581445991654899753999077655915116184633577827388125000334359139740488455446687879144919424364542174091295720169839309113717021945279449569594989636836249333160904684435048481777697971527070630840811850311837437216528488764662287297540901697188820479412724289978963039023213604230972239430430075730616247710629761832525994575868432444550893082898157289982752266986533194145585050956688203159213986191757182421815141537562150090452477561755483943773605326820223079146657082249161555294762520548567392210702548888762858230257391995089081035397776920455748342592734570816846835440195552534609429487274689656045936658956037005632287587994133476758369678139527416931590983646510735230064155824271538446563796027899946482492398892047821077417134176505031400698268886880230634067674110987438470145584050737961099561496388677628640313477328461217740042320995920454726215959714720862311422822259040040954619735665700236819825287117602456818643305431100482590503463473039879007151415815738922717559080849811426696179558165872076424969895818057161120972241415181914616819846428804887017936195133757858232730871445524567766961062384733904696823105680877819140544696639659859542620276616645669087671109208412078625139846943166901719365720791798526569041329792660768500852714441349522959037187432038328602990686011623242105395549470170415200895493506630030413940350141446742145069319031216145626348838359171966422718273149066314263187518480880424604747826591122191391470652761190219150630027057594862563083079792331678648158186407649516085323062592815422101532940081912372365509340913409149809148526870173684157305448126447409664917752416878015890397024819659785052184304667231272871486268787342408047145038331977828559756228948009381358946238535136357272204366242817375945593014675323197926537075253667406466569226582093278118162190662871496121165595271634435409389288114561056811351794005926903299428559026606924348264851020989091233014339611299615623933777793652023655419441303353909002591340203019665184659536868198832417917376746782692413237898781170354337044032832848781013761552550504619258919347737685133454019252951687069427557302373875009995310833446904014393336872545589882002193258283186481517016889778811937549809052608027970608298872246253232043121903859208042321867556945264552353055871615495046259115881186204579175300981012334282818253906857300815258977164235365044752275322550844530164065390135466653305421512547277705039716071768149002332360580128173714665429254433105810788205104033456939723222878273647110813935888487834461010375094644130972689573910952061258560782505630887975387611645496444432587949252612344558636527892389483696893178847283265121513620486176973799730242391054607193164829596035773216485068886976558191390332880539542273751824792236286871783876510431634368021532413858896820370055659894374367674518417779886400260622621847270920180001436540167090289523998030104579104174141754704959118970641741744021205246342887293041452128794911840442246167039613870304650068798302768158614053817525607886458323068068675239457436537480903609845058383741570561281756245482089746039742161397273975630156245331322237120685353912198203617292677711516704931020749578424871308046762917325951495323477518280296262777290192090902544523427284181451682052359374732997500341437608905828276344870945373740578583678844046896723435845815412664410608622849447219033385054162186895676376102727643371514517259303094126232618895807667110689406680301766706444398732225250683564747746664838065702019846341249477735228910768010739120952842455006677144837035358174161779216925344839132748480423696086171206875046727641250197371534776453001063536314120207940166616822311710264657645052491347345025236178917324652177265438213628812309075926056153512697548732359978571400216402159686569704682094035922411045655053555058718667814743019346475408926721110861856533180948721322473170024132932786522683236245429386089312958498268087101821501810767958002362990029366566897519337053984625047306785221426172061969111996161119590084401132128487306516682655288434472430111319286894798767331463668364174807120311230896794997927269483590570936289018416608000676074788921486528788240336917381592388873848885590963333117598229451737925406768274325374411417672093381812603571990711300431036807174498392238108199243563383318023408171427134871791494245347484871601397522571896048908072604292849731916284279522438134253244407864413234189698504570765082474944525354678981503568151198271414383373551144262120256208932237787765259152488426038698763610261739502507177161059625371747895681267428484307257912164959220540749159329098898816952230589758799303294049816213572862408195213626370197564855737691355742073397340475926859881956372833783226479373089740282447218202748648532052637281125012548691161902059968406253363366981649946386930188647892877790178862518226836403841681430957951365151626633618116873227091593142132869819657184010544495287240455540949710700275719848675905713591646620875576221859866546676135007962774214292401361479026920533573289913832730307511717768587674250585793692510437929419314158443153445532778802999197326480762542028201033874931610064087432507552401396492046657607363932742260348057381333156208353485224981067964864891333164675046166548017325572846639439440075221473378262599329986662285887300881348931119849499690666333456862637244319069468907653444619421425856897691168775159107155178991358058833702798326176287882322476130587000982953747033243409038466084128343989682353164035658647523079863781978479665955660534650247019883731862011844830640625418719754180172683061521172926145484951876939578728846671028561408165035353444212003893725446194999878707476877464844725350358688772166875501331817629995783097427400000599655065365737884487368286731138023875434590306163362003579868879550237783567923924258865784627353024200664223671299937975846335975764457921722835435341581956416260531279831710152892328320053345326217221315819214146541221628294833390483218294540937571233518325518804237056955762303870740734623567730932813486873494470531980431060343711929681058713461782506310474067460358548752019027659343012552991443968590742324994864849969674139308587569349279123324264405115611299447752654751012836675017193579561231261012140141478224202583019610680207313459098641159384354330048970547978438558424072640915270083207224878642849426173405838958505197968114183396224154389407964271856547908376032479653162062603319531151389808964398462598206550838669451561132857709984015158670211213370335880114123899857984507766711421519174427400617836476421576524728997345416134323896196864863824853382991827750534267173811969597502714852350752006428410518240523775914460589926844498874925523415696912566684304173519116665513340414533728355271304560135868983747408311027206011738814325611659328029991306396453897467882895362109901356362861263976129479015379095053546663536619167513704676931437363694486177520531886230511653624339638500880878925338260366722435980777424498339134442073347956759366877891321712800151193030396653625157208214915731114644374998654817282517147370458647132840648446916021855771332847980276248943877935762813560105235972234008778424668620687106319649593787263455550519359239564438943931893434038835972241705299258869882587102704050987361256906599430396599454742760901081755833997698492088251016457040652271838150416940522144318033587317249571071155808151291683997076310605921576155378396763283115347140856539863768800251319488944948482626372269507072646090364809688989670928760743924823957718190976135082223190166868889955947213169177166025537494125961025026045518043574929934305418414790688625450587022543183829449576997635174001666998514011061706999332628482677517486103536063683903426927836496311967841229212770700583196096405120653875161840223999885474689477285604158765085684262022768196585578851411733976631696575591823760093647588734985013164129212597348791965607605814054915737417329439556603335014809049560947736107695621061430715891271407170824871942797348146388616599313715966441701013005660824634579957687079731352709506857435278241369207390798751346113435566566146803689099908973397698755354538579191328051375737781390497352988245904322834365327910425205990657631638118152447386476759068749235800822371363453290152801787508612845816186194951312048721070105078881572442533577844041635117184073757130419488344464159286807732741101713494883370521961726216176213719717861387593980853604238067475071345029735691409486985165933774761019528673056998307538182823490235263821328643758581736688002059866480238645713112209069840974408745554476637838885486023898560599304690890978095224361878324328932641523834837412163223439393280184825051027097356065985902729280230147295293553169640179771517784857967999324054130001263647524962455079752981274012446332481281607748491980035576527369282213607157125471970121363767022829005818485780158607413510526910076678431272755724576681627380793156049064768561001906352875821255946536780634963724048435350387524669324044471352025955797734511739893136195652176946193409081637653311098506666932240095368312290252800341285934888439089124414751060691863298954348814596705439252989586340652197763578583215551338650984980509403230892924760923966493623107082196750569102364181728509758880292681884955295894741741502320357312685782518305296077055859375864067963337259297147707822562277238371976440247640991662776225846069929099177455001234189260745390529724222895826980102998711527235467695537945199453093477823230653805395506849348383390169179373294969288089965153597294711500673570359166786043014652433982842349929788661199236129586345819105792067310462115952239653825033379667421408761007613903202836564160506015566254688768785152681387709302539537836822418657327195769982021213602811514775456506405767884095495031172501995746811454629496148440931301137622044931578099246740616127449980349320878236939859875895763882167024369890524478964382796645934433058308324050278622045099896167339945625663435211971152714609981606684698612949291127958675370655142362605473056680704573393645594869687908313978191685943175984998436240025602487224745022353750171213800402501113189017292675210485882791142728386297837990781510488859042880630376865017340361313706629990415820040413089428502501166791134584981900881360942801710949754157203591512300847779150297796888619773998021515970666085236476037809672186144887236425430151180403485200786092802014783619421992770763180577472642387452105623214979657233352197268941746022973527970967756802066110002280436745485608228017055008862895703747007689353984695570532740923218037372768097212892197428453313450439593808780156439478942839484640464071580651182821392739421888979740957191113101514935178760141360483609324386814143191280780888424745325984772971821561751167226139972479814413820944557569436418639406548938175414557083888120431891032596104663519462871012749814851938263659132973601732673384814089171447442757810671776952328681947266551290499781628653741518297907708878568625636000998030798307714706492778006782352358482718047034951237010564885427280541474992234473146431860920966716647329621688191100812821893610975370167904475174152217587155166015659485760832995045559335821706923734011087732495565353102617544242930185069138264305575255707736886319271911123909108371125400804905397794766533478895199267056293323877589464369309635458094262679058337421245275707818569526875962038920281866771052273484112302151123913887304375109232043619717607881780019526369524099380068598817302747245411460586382561788556219907266326837590507353220416458561073974693316032250981901358192498507771633201907806240442434408381281146039630784905634884524167175312087850069606090444483309820048435546970205009085034482262169632069158352806451589309363547539937140910575573156955792960245742958561096531127343794179241807379269452818739537720891658410482475519391374844015644020830602740826278466605786156194202916710892709659902740607337602221005238134833419701253883755544674803511558597515337246789378027431718954233344792175377625408746504450785248138615105510008043076838317179449876213270176889835276152911654707001024189451695250396768382236228850765257462980010123909783864258544012909034419415882089072081225272987934665727337858521992036504116258099311664803775145019596885359365892392949602682373935862726390766063216117970700444585980548605051465853762577151738729091890867588047492102446019374400432378975083715095556673774059805493261073350948186616892703259345644686014470876631180166885675232182195004768113064681725337489990818307178201539104666843914950664596102624379838786333480548323108269287557661648151621432393296824542462007388388350529976065039306771214524216742155429062413506818941535971861676374756205343726950090640376710153995093980154984349426705436841945363311954729519119040142292538086535996235021726214496105418757518653593298778468972301130364468495297924796620614523890132120931342196969384127207778337229402952428680794226922120506532738490790128719533802289428715188517665701549338035745370401555870292554202232400597122481487530891557162040240120463288626513109210099067017731690946883332668192299086945439388070799991317394203881365451913778392555047995420761494621257869766523745897438693556885976817751142334867846721101565558650051987281912487676370987176843066889070143388977407609253467298366457510443125987838888850520718456198304000010886737424541415236587334900316593704235167621496043885193361053413486636021504788458148177362650988656115008959469243390239003386696474472016889860639608038177396730207017758659010789316342137678486758546196014881418945232010904780690430231917123159497382346182293006112568174209699144075029724164627916008516915803585048988187243620543151400697100273423295061544928387039406635727518334469814927645428800363501540796667445351763580465994180938003533753307401471162634431474066643802577726588158508741876552958594894741268013632000139316082629093985078726437518553296583626267726243812825081322071590635296490543534765083821687112216919351458298073845997030000566376292686630052388615885936604192065904861442787876198038333917399919552318626649476367897050486524707763737898952257955942456234271248961434395901612928909314212154426711902463772037522537151340830647849144555612417053222872511915148197521056438190579906916585791562913255005555901980597798324164415283235662008673666358994876957815657209956192584814849088718016759864331808818171229019395642610864009559859888380403578251199689916286110452124976262721355171369046501902323844527508244108632881078332614297723511022104710836262254178874013451333126992281158914208756442662867862685896772793079895945037804156457345204984218350494402899449465722168050758638930525559693793977372061339847622469810320279246614863951904633245209942215865916072345144800708909421179213985046358704211605418121558629817105768829422805215981964923752935765553695034045893017367547963580865753801217600706600770940370069851957135585066439853285175112556700039682470529445343929606081567014595720339235812318793357885145375105849838654109234383393508101056280325342560652627033510627217782497892713524301803226345005161486792374275836160982737998411850578532398249650118448628033075500390758301511209475190301300419436519400352542574794442102521636466278921303337731835489209398997381048685721396325969943703465185177967608134824735788441240093529638336736796403796430169524225959629838484172848091883033909106140902864395268677215575720133298638985091286886914207045272532434865787131197963752826064008012394647774326436869701985695339196911919751612119921752020489106761650143220594886910072446836010664515990617526320130963029274568759501902828354856896157775908366334441445175082769616643824115107031834829501511362192638083025584355878641573011892890083080774827663880766070649816764711508822559511559304947805218003296517419863150277666509689256580673937215357721654051136115764017317049357006917782266084975854870795006550684255339217549602441904607935817682564175908893889112198984394968086668243366583156475577857530753309960656858970526670062105020685646536835554130263339727714082238490490300370161092929104750808456175142713346220302002171319168674853250485725358591193320751524434182178499390119610054899857715800677720492127784082188418787156943143290505166468933882776035041823522751621108635945625222169534658346095728242055566902424213916349379795126927849613309371116753812492784860125632384740435743162305296990721812628686056903336297930117864906990555255461566152508288157084949591302528508648801245859917359501487470580687684195252611863061187790178609054279403749821627453218668146848728212168637815489739750819160191958204643877039389038091326513409762211856350004835271954046560647371961837178692248810338871544146705962449259621717938221222211779422069684754455536542088485798504290396462758151490237896187670177567678433912495657536480930515991453218707407125140561445796989870328285382604878484187909519280270200849060122047108137221680855094855613820248320945470420372927877974964251761281320839618140476011691422763751488346869123819632408661852992482832175278621846009639519248422816935088228566145079518804030744797966772755073885285181703449634575305398074175108949097345534279317534940406430094410062524853659431183158222351868623591876036088162970727753481672056954079035311206081319515485442667104696809691166292413739650094862795633558634325029867271170902392866671053628950564808098029448320121039330649058916743088760267460551139762752255997058396271104901720381195558150811446543237588792885122795690703062342568252032000100464685643049918906688264037358939309671889185095809710788365393299999039602607702148502322682553633017407414750081113282657837850673094956596675416999168891514623299997118658118652420060857996981325186376983830328513083043043690380254134439860996849756122153877190242865121356464060268189049558915321312569111418394200131370411671886480977906166117324726218403378348506642035194506149345972179999095796035022324615029601804868298786660142399799809581295526789644596659488485933705265915907668497979622647309701364399238269015757898098284818830720208270644581418269967943023309733302969129750614317926547681521552821447514209965058686570944457566775729652377294482765985107426828446707581347045296726782555938226531176679480452506341252228609869379518404531091088835895618141492636252735604190450594695572367642049066884984599408536589178850823135839150585512701028254078399534488027184931422749347176072075472495398933465385028914723402537085719723474653970751643520734364932971636314898027223550751558195474545447271626529407426491404404327961615237810949246542069044553824429673865775685492115409270510512215288604595075984879822577148219300483189887777778778102531737366874979054914754160741519796032082188467631658852045937793313229460680649204234679104700330907868683935414634505898365211607040978760085388603779230753579343600692816639387721920917832353345981790499066930145460726944279048356064445792921496548460622146243591597067427022393708469904743581078299452892319560195564643107996200791667614066678367904380201494682699814871236344295486347239577924157436725375699550898201456177803067985633205500264272438887924896586158158997931457466001917704627433015970296721542149839232640283324370398225921044722711771271280942622207036559564176235028184824743770333609280956973715132344806510977195828836715636148086018533443344349643268815841062901463177060761695101761841310748537986643154410863054781535605995083640022359011390098192417841012110678007145832454611840671466738069581036255424418707867109176190478951548015239727375397670678640215770165721259380153968905354055025170098166669231950338581627107120690873769881938831252228290889931012798471445022170471404734015193012451275026464632152467776105255190153872038801965718457910350838929044127753136118485329999580561545805118325708203698412768665944049347693696543845048205105469479457980771338465258254918276302736921660886795934717481860402002936135385028019065397368730068175506522818178678048955481799479715198406572513725168990816034635057859282380010270191823935628928013021529860960387633112612722810685892697261504507229931383496521015077066566464411302253495515314801394576642429958418750382817182324321372521764087531830068969508377082661987652363023027190573657295317937705333592890218869295287157686439722319182227278521300769507584786140763011496020789744721759586647605846052306126582504689681442983764779882890895213016113514354596318645072537951517801178039470837141596052693069905819520461051863613944455487735319898890224664484784407227791954423901751050889941141301415247647993363872533821809966032636615087243853602942902702088266967857375574520202384317431510883261657495646613009674839698897127291669099262957455126288907613266817306664720031143896573787924180890790243782814827735408381561910600385393508740913122367949113606685948364914572211000616963546516665094454014946501054475551205181132548694031109250337938527764335656899789123392938193521059307459570080100249058419049801206200561698064865021520440780675787512437832089326743685136300773720689810475937768726888630990175080965021939049219617610505117307024897217910654343501613699040670170529678746175230097268449982010299151104730666927390423806585650375642538405639890062063995854034498526788589876773400853260275872081138414942077369246459255412225174410034890145157859461543638632141538757295532707609464187433551198440502441924383322644455393797463167512105742420224118422316537389450802186484156617910398353144000216282417250495596539264379656606258026947855262321594694534067113337199587253097223342516103249271659178185637780569690475790877498333566770184126569872440568303321844722798026497266134091565269815873998607057457936884492016046820825116402865125040258107514925127374336117401175197338959777409068240871941845812232807441909884507176405251442834871156276565112062942342329480942091047223217341024722229285475148202616125132023934523753387762419406793834308777230568542048487475008937376770423996238412681408937600012804718679221107447388974319905274569339317814934685724948676770811515844042740544832912613028703672743166171465991943508835596355919781235761440567634194130293692990029754900951375402584467712503665868895407132138134774072878163085122487916172911832783651940232289404405594409398908221459228065395513057847127179908142852140764295485005013900991716102324687234713556648866102247614331798774229147057288709313906014757358009513782073731039244185841286647201478492013126118542995043249031278899118133893865116438478423198780968115933110342768227019878096489775334443479156233043295190645327659897129655569132288682188557366666813485064291473381811705225018006916978176557117107966760067598679476127917047205978756635621692745637725715837181926309417219774543854339714537870603775899185012909837813229053604693709500094951171662569504577349548807578699302876188229897512452088422690709983937622249162265777869668758854030472392233723827822959085959153283221148893288500928704978685604782164540632235627348347236342443741824048435992316374987501087095944810242225477073767775757479157394040807210433887366614757798027349126415696903350572705332132703581616576300829990879478946248268566921795776174657977819768206426083878971525312575941385874861154582272227444433700414983814944634463627674790110273117979458456543557420697171441876577825059116625490346526435085115901990338210518241273037281184834713708157923565966194947598316839648988548142608407614348461234642791986865467600525813636026681129164522357887223120038318740194968342823557938957190256383256782186261785114757172700695642391769596578397708715855669437007675593502962753729808990167733288707764414835980348661377343095755069902958239472845843094218922822700053312172530590954001474235229332948353685414168397229405654062014956117311682778375808542773415015866225002262967744065130117842300561007613387643292998957423789510177718331010087171490882643123480642439853466556862052565653761921306561138379340508411630169087508124897369107988543807923994479467596253942856763591489701040918036898670433363109598999234312467884271897934078243292366726395035160493836002431648990594468943733688093506096152654993939392306152228451336747838277469354022413639573117562017416570976664506706890926872526199420383179751413113382257316215218458016816958131227687564774341117326852941638276373331603058524326798511904690158221957374838532765624366019546665518199584378832266180581150429186088911726055088111593344431562169174964108305528770377367044681172046955264291786735213446747211309557897555075509904988305273470159297930151387430005320825031318301932803899970881998402622399928737159309505429044604603087654111783173006226043405622832848854823704207871333875255733872017596492727926632424532913897238091938468106260010086463956832905570869421162668705788994210240919943782985482098125244437777480910658689644687896969798647913231277660295496008734476124969342971531498537117310833945096433854506260271864312136735011203822174575867517498594103529351618272168531527561529674661214198849443722188707526241236770184466763424257185989784543785500486423414585768075400296867364145470760399119127798088104642705069452954092991620459714919890149439409688671076054610184526091276684943362638549302645235601883116473698921427005674980997713777561740101667291195952754678514360749834084697685181302963512127637663267572251318143168157794675589651330001471157610226053648263529751305023221980837324340284890858760600215810885328166961509488808060964330206649521243342858343944100856986346954379712063854409754747629840357082201773018979446665063240361525575290979563030967295928165614047200195945241738670880909855050884488530263128912744980224197145027540584020003690996956724273465641421074402810813153676492265821095135875184320394879938715961647597348037614669136247393577239834733495774755314701208408299164614801561101256728868491692083758814249367976096139215989668603794274286867890304673961256134297281009491771115859596312184889346242623767571788904179383941929731968190957272920561011208180961062438592429919106477997328743980838936401496029371186157023239341626530949949758622258571300106650345714339276156595251973525442012942575844887721389445797073153485539394297048653080535770782480019651403513569905751337034490254080114866164471087335056640646121970900933873580434532922304847049326752508027328699095679387813011669584105247023875551439798984547126629495712878558507758192471833298019275400151726517838622390077316727588722983962455259489608639667159717330247019065246418884612570510936672732447314839429481021552073133861883885770181764306145858649018408692244725825998386087048463773623934959605202071716512316106756978391008905833429826808371260624665442456355782602196589817011918468793573737731443653630696198880361467632514492514388642852347156133727101703743759643188069850544367605719292208782030025948698678096979352652262833475658927182847891806871466235117022346343108727888282693683885100548446062827405368746848844243727183027222260694494942850764832491298839381072345719551000968552628792525054571636901614778723066138084754181025462267104998588602641432980327600833174200773284008517003234033922508574627408692762297061497657533214062012802125138192114820546067471074042214142106660661163040966756275132201166502451261568078098845049275853794585081428526314260226260411819682487477412813438903406850131125142879672597217136041717895170965386550553368985513776944696737557633055655130495099273115360662477427275218414914978187089988277944007764260764093029643597787685924073736714806003470809020851196386001911979102932925987748493505227970667672412941757906411013192066642201183067649633798303646929473207150295192927806040990490396557657820922952816423532940105647417789569673245789475226733492232088463453309334459929223110412275430507591218966293719390536485558804620144902168531906623888334494681225221900720868731021778582527656648153065914076022859153522258932887673838468234905515404816869278795938545175648294299879979481857411938628593147968888699630264744216419332948032883645777289845976995471514079376459232119470940769538613288593502466115145320663988397259663251999690227541922762847335439515968647292945974948883708176179337880726365505258060752612384187315036319454592850503554173860902317761573535739832333838557677356962155323132921695639689926299945723046339813627530551172344125206734720578429047718072629580358232825690523611392069515981088891135916254652963485424632409667907949940443904539413712457934145397475119101575482212358756923762602411452660051812262384667620598177405087586315128211074449956118892969056637798869090304773421858829886785432279151616947449760156796880253066869373992861239997741341574120867140592649485937848245381282449226691404424041583232174337905455098148150873092875629406501522388486865785180861991799160071025946668315030157907150570461302444089381737315615353256378255196957712606625001639215370825637620862176916483925974768618216563593433495627053065815724338777689297385258909489592143662483021989187345907910049951708680072008705016073810054011643877780676069047201401007082306861897435435038069277666433424933572187405908311153737690032055097734799662262544165256975805105998131735538674158941995584347259446952035352095146148214702922047013667581588322518196465469502084186029168761909936570919162571810150584432509344488938479329657447825928738664084516152639795574996567197015229022486237013715142338683527738419442009099448793363386011905139757682998348332670935786190587435744980106486858532885987903446948897416157178529807775962155084118182989459534125834061187503964883180882304891188174608872117207585135952946371619620121639411751125936111018383749639751978131416282810426810639126013340119498160135046420974677069613820244141619931128593202285042349029709881905505092107014353987148332996102977811422787720908190125647769762031067259053508757379783436687360885037283772088566834251204876602970610468922711560299447583100360192700274326508043921972664113207329284709419638378380993388787198471036210128605128113076350076564729487606356855691461937287300726648744624021899256375002577818433625081425284349757589768492786713323147128046287600029330443631500173187396932755492467711356616445527353283097084944945544097872893086015755822837402914059274991970235554111139111569229807960002115433958516926854749293906431800609279369000948478188311351316009679227978595049410314335512422661492646143204883989577528914691764876355241668930823932869341081826579612226028539620403010166358881274550777660582305010584073049110001599005943898991455428896090660202059469404948613866965493302011269545417894924455520534457836638660943492884515086160579374519881262891403403819422197277311166940370178429838569445740250481558025515027947200726017730296490114484860246045177206026172476447430308596428514418323570879838034504097565279612619976592239925241106620187208893549197771847729657607392644506970128009244443094442892395467190437471144065696627794636859083672509901004293859412546066224770674514983510617217663163620504778598963990829054367436698286979514873594771761368846911004306854989214769883660574323579181116438846558168263786371297852485392644057829470353495740363795871146936686908815808438454889556562273679989678393830746275414647217529601855819692258667601184468697669735088607855480611979809012625141837668386137310439197911147021596698779593294081051770111591834925876843744774948125798752596849291617504795097350439875901882459197004513005570508438151410212837295792501177080920255642559884710634685034061018301209819349813174317125520029691594822359561224181971406148945089011563932450074135436572066508109786353113912241191517976078879542563563990494974867381177081392416928128073279959354716109896064028267803312914259381837239812150310924498251293188724733338798553781434423483548235096289695015488060295422337783768954519625846568015005857105325924254652901570001157854418187385409422694921851710416790328583810802932890537434185578235040167990056835767385646906601826303549523469925114879971573103603009407873030829093633586981081757709162356961116878034193904302214445405950009007238212472741992873164670648043778368267632032763546624034882691964820117502277929121419803113661490430102847266363713001371297188680580335926569746737614111052763925604037544161114744309024003509139648289067854508187833551067125503114792736994523327814906506511706734049326777313898163988390587672442967106284169341477528454920715211542527323397694683447637732720364433080657002123877030982667221928777790393646354908530670333718823215872662727322901493859130218968332792499652566238524803871895321828881852197483667140860608290576175457334115368545613962747627262177242893015637979547471232342360308986921538850046605268744722727443685033294629754104877440560877660147972148408606928103971147882318348286370822113234989153304593761056421670578116064946732553601778405808969376516040163581286872637014032567069834168527238295214852628570209438577992691070762592180967528065831083707143090308790467698814166720451172328101318884025058092997943884800721490140864218363181164039891096330689735683371658923478209510634498352219017588985417892320041090073672123095551289845793392777580756001004416868102262190996355940287062025716122001481231099717795027647752994979893807155205734426821586155039070446737929459726441984171888094268558781249328355252635429256685158347902304574142432088049450694094491186430327411904682112000219375426970297900159002091884191773663169207939403533075952779050717111520969636786584008649455440769870634898309924835375136568190052901200383282727431973191829938985397058444351421873686416449466084819225606751263370579801426800742777748132742120927341898615791797137331269473641588543082054918091497668203842370524977651284736792375995276115913400458151415440682958220201017779896027255582885257788070576684040142383363339628035090422642439926169036764160108787521428250872669073184213565504468415865027154169171540566774468436207712117641791030220009346287036392585421303737604037960628708050616511914638996965174153779204877503976182529343474846444261520886490926143932303632375376893713230592761672105096528850002690016378186693700547060382327471884822958359012554611800631514612461143347443196680243688594878313640355546349313211028159877505039211230726802766562574418550243158103486620080701439910848737715947353972865931317003085729617616815578844166660516808134079243931750748254543951927828872229439644702042842292026680933699361373406655402094985683546914083031966858105867420577969003107507237133939363848780834719123509704182746148537259898361916032741107574579470411407672879872145450329744509886444018440498626480958014223891124687960427661535017459011533532541174729657666867802907833564031801516513701329240596480109959940749981381509474945309290175797034626023312935586294305962867314058566460920593151666748333279168489538391364809604151229976016209307139423398173019007109741103347036423317136685003353172181171839056961215914964261328671664962343310768716286644652477648774861116142289170801746291208349097206870444232275703027041601690394616303580021108458397051641614580470462516706278445515489784882861815988989912869704360698194127288630973563207282023846197910019841452937250964347093331360133859977467571783576673370284398816053182804647712083111815033729041661469873715183505776390842327043230003416728163831807369297493417079570111921668435832681950797657530400522384735144461412868845592800263697498195541069263978576366171627499737393927420034794744914669325315372905775805658815714716070452382896490443992821221605032644033509317826228379057842360053442115429082220835022484058248409360584003297593517300303508068625576392859024075481204273082875007145313663217152952800449555707705821221474927092220519602626667187270805861906775819880969307113040127655017580935275720425839135130098282815382724521513520261118658275250666508867807391004590488699401886777572403504476367982180394127159692992076409939510183330809212810064227200431932474944885970643274405342224263178729774499645620342123245531988603403155946950053949467523530151686612583078786903036525039326074679646599021019369418534003277513183826945285703223346497735332247904866204906947615021134092210107238392339879687651580974346435528590330243394856698716357594555968068351729789790927495830821065435778227788028499997202777043311099736049267189809640159866548749696833217598609720328545530954997727245283736178076965860807417449858996353928572234843411577794800391098828615744987660700648885916740375142970416632712050175517293921414186637249492438224014549432540907938337553678727599502698097782463826015837884792143449246861996296117197539601153858618750840449501885679590099085097162923285679953001349218749370038918931631178316504826583453073343010973484289283020418933981733716227488706841289416465488029783050659975120716996849121328246899263126154856843566389432286820532587218412061278914726647713577677269535663484059398838006278086593907602381869630327189939488879672754931526054171199055316225981383415411041887027810450951947880394604763351704539655092270631471838094897225345509897743455809340633665618354576305970392371568486253483045409661933619342879379019689441323993051213488314356506097872558433113501640960205108004210421764259835970623218960313662828386243152318371780799821998549207350489109730252845989498560826513961525156582589325565911747816720198947091283696392510421724948235035544927264065699888042944950288628645443971142991002242825993400220930789294458813170830962306932192658965281881774474246398300196569159629925594971107054955823786308089504760322041034418721998554649063526574112380736356834190332089793840058209224649879286766890049434076837788268356145432994340502483030617076147278528989191343319887309723889654773349234095471035539521424951727198885393372395069088496205244264516838874792379176678665701042725123276013417873488254887332826797779045769044926381866340680242801740282820857204832762207047918487229979542767603708656698567288500472811040007314525138033788179167663631344154600929543479704755994085840509111859051696271073389021955342539082649703415676680394522980132319329960020684626393212390330263536683131832549073884082456395460830874750341239672585689653063206876892544297601583554186805964080107051432234349081253102375782482649361268454885903289856970604706581624117461779675399642621952468177938138801534840220537056592810522218737141958740312784449613835965491184486872443435745143895299298129744947308051278482910561343286329365480272977328008584424431221758104162546443531852977177229716289323301383201549498640019603505558896450046497863268064370455176570548223280913644402737457745855756752063145343939577614011101609474303781786411127516171408267080015274273915490220376504215127215132550489992964243061459109182044398306726078029725983774064431503725293689278513876648006885745122092909033998086644061271179478696670354942933574059265264514278614323435108709848965904103429874704085152003894654489842991905169269819542129951384958991342573378509351933125305979036606253607412348971586364481659291913851463515006548138454074215117931641658879218432183983071083415805374197414355797704697095492531103579078969963800842132864499826111049870665380375289908128806885075241247230358911151815156448736372961858527059174925895778147546901127878052078926866877369681809863912824649811260835719466404508851265642928106293971338568798221058802915901143333522117444870362403320120947380054628221635169945638419645498279060866696561868148868856749532667124586999317044935842938807642530588774307220780893826974863091585033955620463850544876200328811301054005187850345075358797116400407115322972838263900890317515129461551405300310702052505555970839495029957214436815406275466488480492032826637216756571095677987889405772322447525435642155122361446780822802538262171849055864808602303233419328870388880783301109831171258399868852901961462745643524056646209255900692627819199746931727848154124542487227937139742981683479773493254523012279254946524424398956979342036449137313909440414058959371421306891036955710730354406899743860146810114529566481668867384670600928834683612913948479650525853765631655686992697146285196372766529527721860477145549935466445717254455312049781711648039979450893369037899261333748944707405276376478683092330328255071941702655855223676756089759163957447179213712479195310787703750830219880807877468328829312016626956762272611598219629594897288209781608604905298343502466061989012607206018036753038083344423600202295851316166329243852906286890347395067022259986651847979140136837274294131968418967743947346632864344091388159390131233643823145015315249058378306064783182019810646164154471372379136520828478267959400213539160717901244938680239000889270537501347908253090783719073453132044342620567476106665670491407135520743998166622509438387713581619081188897231491387269645312692125841824261493493829489833777076545045981976651568169471456731255606933589116757919202426908572639021223988320498146356080449622035489206057115474100704345286829716163638756570633351797870014807821776946512573164151222990388080509737630753730206211209737185707569363833185050073358100877835718104120874742859306247658416965769557586136441870080476078050898574205006353991845765417555319226423650667062368153315338491363346685448932671974513955887745844722995672545024244984968541341530510790658511855501056583774738472140655758030475044827860318132601769814167034092142444224225492057577955906996920892826463116627592171705297130240442952780462849145270147606937033491353720601029740734777664499682281127997812493502698886677654820697108040910148537807167020700255693029033584343233741086557126464433954063272068692753089817864888904543259318047541573579458616018970415309911865614506841309129517934815475049542015097596543944248095710129094159444463331270597412190732898734382526559016959556312425955783339488789942531896765617384001378233824054640074571292583230364145413330509387483946283576049246614501858872057767749853017450394304875091412461883782804807010093624538356784150750557195519227963797898195362006285995118124295373027627323574351899098587004921604221388706772701213877467124027272220538936786137471571129995086331468563168710051833191144329777749347436227705187084682919765508500237144199026248230687011981791353373481205282603830483441293660147848715407474499509302889168720195499948177814690669643320375305364883349653643089924106901313622546237347829185444123406521487397775182013130977859818676373739349420314649115724784311861591709780223765877794192994189057616317622412760433467459833238428062376889951863229966775203970301478426231282940472760310490655338088187517784084750040523831405459747176189415861889748434112001996679254851035084287176033830718224496096783792380240063411616432364231711603786417638384804696907868230178344477436088072236801746977048644680386096451635299246679151263153004399836261741943955687468316407717904868968417109752134647384585828976259970702805420800511813656065606039950798091726744763049874914938265815235445513940447257752569656223729623350813300713099179187246196687362319087756439706389791863912427389659214195223006100630113273582887913142618295967956550319937978568586005126006957048235672801248125091930006690528883746530831128607783197740998982626736866965789131331756531770882831007517415258316593447626354152883543219228221107501637117231109631072883721486685832598832269335117625889749690331987727778181007292605114219073727616748225159602072196428054774608473544529892057205914807627654535658685264091293147227057209368035981992744214772183984023705828635933338701659788575477354158208122138340732931232157306083944660371407042174380542780439520185067205016977028906665455315857595563772609223445169391944931440078974766239341187953066632425656326275228400542237455167170159032125521826843725902844799088416439519843396211195418393902545715984890003177720177565608749329333946554901579241515091447151261939923095834645437516525849034237010141358151592628908469854408357826237287539804925916172873882752299423174584537511264481076172435318120109049146135663335933143636552638997799359766581704320193397929566748397740525239383305002042427234021984974946844470167418991649244450475040687032703779418207965247350285612568482650359814874411381575426140640186387290234057385767044511882768906691601071622103555391495088159621803452902151046216834144444933458262165150781505125990771553390670105148686555669065416667903956088896766466237318613757437354412302376404987925111282965573441604550618701113902945522857695862761335827250028142938752784586822220183450594252978654197876012038147774554847962314395056400786151639536767330999029265439338264689293392612814003834937030773048059806677960970921021818179929282933992463603183860988480551580470282983323722489098924471914329611591464832571801825623418849144504519465042222034327112896648664788140049613634924530356990787746678531080571998034910464217442989649474207035146990160162387368979056835145396823912528936852226166405060733449785139061746423452540982337890612097197011126172151779180052070927202475704221126543413761717987574893441868960142400631725694664478077846000857136383963574468341152665727965063650428234009865324198046783072530806947925109659134179525235211569346011400654870624226705468952105110934469531290428537782288785424132452246291284394929497956550763816551226490042165471472041960080542792928318620728632689540775680215691709638054940574724509606425353381743170363092791996816557795856642067548690645491022934985446439119628069530931484137995625222512540943888702949029552447490422743471784526228067605443567409594978162839360039000776959836776399862497913060621774707102717527597253406543545248710171724376528121221496060374036121407564452342176625725633980137106839780753444006304476144461107068452288668584480377667786530284076754428669348348673023925961958049238220098227146669159315475111289245674234924091401795149365903903163690446190179229484606887030359355442897326059941330958060052554616048615779897105245933848178312067659081632910853430008889588715331562449129271402022697202959140184435949280464543059532990032526914129522933150120759016856139293135867294637354757885424783134986749792437719710150820018727314339243283548783286705735941303143827703740863821726145193232423561149528465414836020956104611200036841884761489973755766076851293433606807814531241166908046208404511036394942720962997519739509002358838040060128560436124881347428349241649503875344805559313754010769460800234570393717598037564991732916562126119171668182635939858257886843307908845169135359239347154209737386708413826251154494387004866766448242776045655347610409389401934063677437254534732826108668726214622956995603048035005218804281209092563296418967408108999650779163515639141236206256473823160357330540601841347575915929233838686882032429738485491033407238803576658678745841346308726547893258962371251640895527531976685493055728315635227830462614269370328205644116100256837977407748308369164129308357938437277269293000575854738135573489146822813347494268494836654599026625845660555822344731265694604971186253644034591848295821223200646827557707219782941623301540572250460711044402814825396715661943618842529607517271103824723269152465956557270399092646175326259948313003841129327795843854892043633950272313268492325939500410687933711992576554946995899226440570221004359455772377293372162895503219876797627220695020012486155242069992135825384818501913517180252692671120066952575316127834845828198766199914253855308304033172808771374235097662543327787756213001193857744107910363134490010003396985764023117268142011248593982084281771435856474178668919683635680092150730891832206622046811831148141763585708535859393276516891577342533814231236081192806821931569016723703444815265786542519367772677161927410394810927705700430395855040094986287723958198364609000141257052696116542647353188850509452294789188679424267624130945511644239045178517090064938160401726678712246669736360116044300547194122452270734081812558293679055115030223662040503915225272492755499460919058881710389959585773619916265570793009366936156398912114478995174332625696506004134471765964457278534980865352166586315465010656097428853485705132663644698313221134508356130663564130167719954764591871858191990343006591954142973822658621221601220673435928807707980698068691629214667093161288294442058319312957278193854634833667139415496731844744882976971468491983847644732892637183236891348148150773015168288569914876545314109173775654931305352765281305654734951379334542135617739204690062981797623701520596165562215864804190793296264864758158408744472355855676360627950858074233974345212190604171903080031333546342286156461975010358915051185840343753280511457728278115415282360042963289475087214283770795770460313024473746551669624565710536077814919226624446785700888872806925156014321305505402701572404538680385641142465486282160092273171866527749900610527380891438211995174581607015006556925843779334774324705379504916361590602911923651410345362739152536234638363412465767322710459386749588915577165974590560552763727391281686189857356670083191418346634397164353548294410707375026013402098277897064663601996275837771599912760602522412926603691077794032393780206304621271140230176776589891791027084689677879897422801731143278093951853593184562997494003746493476279680158180356835325454512936509378315597188776651472169474993401837872046073566598628404586335792244166421719523531509330085565229338022433881095310860659822142180320081494168568845677151195589013246155073948629781537217641459564373274622048609467254635609435966732454494925908248149718735731753664257533470491389953784727164159454960642367730935303720940812155309211495181264773075972636780819196459881026257219258072873952617016406365065215897258407673806440507014072200676561719836394825574734869626921068242284355294640147744790887033363835797700593970966850466158552473128064810341861780270111137983392085615902693547530519895706224217477968083563696451043616370946802565371761834558312514896618784166810034483975586365825624345015522650115331814394033651989173099885946705609552962074425528256011507226386801126704983539170362698091411980243018451973382603301782238575968349766293340513674524225369683347841208590331197672511152245162607088105378384083802838522433390513075794688382611917546325328293038812054915788905768839539601151089105765663403306432512901330179738073091123420155212053795650926489935389786051688376728299508389912641957945093959295783314193216830466999890248767644127931452263802372100574354335492885231999362334892879629131262708051592062918347160132025897826659989367026859325328600119194701716029578724675830831667232349353683019542618197974396275287534586923778605080405826189726981314107880542199108101834579091151025196893482706588414263146063507140295918491883954104115271320081051925152174733633701017682928294644160792318268949651928805943198249628377203829045805529636758715699369441252645698865168991849257273264347054867609818402272020862468447359879511112901746336805467481390675125350022471320180735100853491158631095672075500461340256487619249878774011974416343798144016229268157046790123546818005012175986453340281742364935675616616934630528482776492562574123726221840504632238294253637059139996567364098752435925675498535857445598244416940416990115456046661924148141812988230668320172444602142034016054942051548166053628926946535439019630569368073983691261580195435185629706804896291629987503164698578995410556974194105231875373914675503150535149733877168229501338335759665227861085869325741229474011407580528239538450717988874171316631881329399963501483311066535525189502528715980367878303743418683493316641637023482264610666123226355130986607467130343586785461280044285195737459457021909361466090887227410872690234895441170229067465101584340308189023531403007654920722900492772005206666600030863397074107660614538540569053463200008419406864146940456592648043485148544342728606945326432179968689157136170362844122055598298320211564113337992725998191611342278329505539625881841817301267612306404114125443511473747059554708628397628251608908060981960676076884543419612360468556782137413118865982798877524975135977940065146922149894281395174964497931482236243274441279591643246149484217610160334380024658685660890065773495098154500215013709850859305724641081891184263737899948794887142020206061330693185378781592326024627369964123009920770662622111951981869864740096104349375124928755175060051851374829128657370219938180743035696406962179429292806259738192242747529372225312813168717221333098609203957476513704447278989188532831758530803881109467867067623772082798096229047609405104541291494975901220610356614329657467353816061115277216268569412035837981632635611854992074574412304036909577967226133328066122820692987819085165406268855164587015564818921858514380079718278880912863136311311770815652463548701803956767302777930183069782355852732390010192539307268077386822960308161734168392723510837462345071712870809793642748640225758086595869373834309512342429469181741250328904652335025084382577232179529054528781984937054802672034095670805227401902341942311226605774137332637356463150138769335321782787404582954349635305057856130392206751973429685757283287743588870057266379311447040785258845197460151807318334928023172590461383790852336987098281722815067230723072424208174085435649677218817571406559299072873469979919110648200415392742968255131495161970389881335046882303500997713536178486235901283093512419968707904051275208203537996933466890495748385753063345297017783243734423126659755729383292545625082995269320705748790962518243950593824586627057408433687887667741157155377321739657612536729634878950253039149043129454743656950022130234047259882632140515250863216904453603782786309708005125478172050196409398486041574388527694625700029818720835910958752234020051794786998915483823373829054710827651163222948323577252223984843763413902841062577665288128509804008141062944009024325215156620127661844481890438203150041949706398596384456196901994455121081273368708273024739109324244062748002730563254352613298709138404087065504603698267188379312229664883675753286324164718585559006701841353221659919596339798685289742703320693733306442400132242857418511522541669010638749760260279803380869819434127808660074304815321090537293469384895421505949239981384440040373691242083494338125620678300902646005653601361546257588990127478639811897027661702110191781489819131440858717849223052524348962396896863736561617584146853556427727847573669010900824467580582217341789400457023575598145900242015148541602636340354478988094966091131591279636031921492632531047354717151231993866181548409348629592182766152464885369418232863344273879338384111449920558066582802958650335029146779561763453591978754329238171141589306054493648434788020920826696634574477186405046744678487304166858495377660803302300834913730856996125437435459441176337976078421148117417303159079332797936366282902375131470385169745268705893082860981768270946753141990053691942742480668490981742603146845023572994794312678784031054859285824369820446647441082402408196810261989760205840133505537055044734749243838850515692459221936908635237769030406943164813893428688778873679043371875576867561503155384038793435810013651148403346257860309297035786101469603301861525056683798590514468513812908251699838143695117529905776709296711539345282987389874180617353302514376451926329422407907270680768542188122484188611252768799613987003174625896249407796590772463667532179401157241561752715977401650132033241920677177500524034841799042422923661683477868386702686681251063526454309650619412350998888729846817472278518933222610433013627957063030584368353621365087273153035649788972213042133829399474362386918075515347863705490411422388104841434067539398369211709535881544820499073041332946907572842209287680916957360518687735379742378872320804030269809243163506280551869537703992982316287500489571951652385560058161121948493408459966485863813146524455373384123404731978670730156541360107841837755546937886425373089235093352968641285459562801143096260445709585982320337288970216861110449474751442750181562281463720398888522014219580689613217653849868045275664440313105885497870564464414155814215918588131291194164777110337828411858379392648736173723754285762312390442409489695982432775815485491064816739342265732257685941113355078323782976968898488470475317767815059399431214379024180526571951702661298682779941051947676554231654102534208366177151565252943639250485063795503963661989503211821461373008287711456758728201461524770672396376337957310651667492534977910296381983833375520520360984232311546201067791205693697299606563486804337072574743707134002648946974105632659248370799381323792818865040024121352773444477527550070734673816870109813291007125771677079361347958424134481749920690619037381328569451556343722784268123566297205202578782996870123898183997889195589348870447616607144734651066682395731822902586490731676015296416739634519117687760652590173563469816023315230566782025365387346936856535978099620885920329684248363377173360678884792764754682811621312703286076570280795730212418445177129344793315727483073028120065248766585055906028741394370271233634801625533391424202591604804823027931709534104071977355334353951988120484165726667325782865294557217231178929847957665221225409341965176905770194182932210687925739067606504000224918957589854155621109249653891728285771509071028269548096372563855704537284525304063781932082460890368772830200722901728436607916041186914596474445779639369976885820948738922162976781221952406371090985903931284820965635510850845545879876481959546272022801290464599653688230677207228284183880735184691579758678637760315641375103700469268545688468568064481497649416678848068467954908587184545598219397327432478761299593690913448787520147408571724804019154097438190241850550832071842087310706324543454781366475649483657627867269071947245587027772289212794767735601122097136623338369363204059172775221926451835248822694725462654544362935256871925382636693439833386175956051022851941340748388980464948767992530021400128441236108538267262727156385912074586264166174194330233639616169888599778753649539700524916264013712794548981409751142179170539079486440996822522581996038860295325661400405933174451561344008311582473424456744280976737711257516301599227616620115566921670386460361722066446984850196880978669624706980112630624262505841246939607828564773610418112112229521612173342893113736686642103234293588407601452022185773401393177385064687407985531988247732887450353215006328684976527642585745696833417213675212041190769955975567954958381125726774299592950448083641130640784388879494956623096976310171871692097270422235461430162683975345548509091135111635804020336455303865638491943702575558945612652756416462468449518270964479465003580875508289250222265855670410483762192602365261112487654197912328149604302028496978647610792504968160491147330124106002924058536469995513258684728621842460830034187095182109550916264429327134707982264111615467521564064464452204219298369885029634634213611543096356436046916814868355753616105665977635122249581702264846084532707544967271823844417418534944100345592017026735680634587678291388631628002186149240255403158208847859179337948011243777130941020776872071336624370589844405576505602976184864714090508458148802293278703499480479807114803150159987486263771582369601860385459952008801248045932935117354473336858333154741913552440012911822742379200606867075547561852688901307812245756567375681810573114118817124623059183785974879278837622731167330947963634264130359094221765918097924159161694610939993203024965545290881529939518031747485308837460911527888626083198172631780974744679007471445632879677590721423817230784717707799302903022976068377070650605713406484834785452799426763010752280638348863358337376798345670943384900782576801996267188311998756031483645635631979928070389031506976231485580990060905828613717228881334838956072693180488077443407457163470010985857346723284835524275783373788507887058355589030570731700951058955803780112589020748380596193534140639280878313754047031482480425395166599354884744299365124485161413509552832787700891719785960039815141480928874197509375257761549638254431599921844906923154980048216494117337993612310372590227855063561755996240432186204639642644645823189906205299623879103998648272926336073315927921297816025416444918141302989632455115250817761362655459606740992116107044582985295365942100445782763526064412421195577020370287730696481308000928314842263391758522552254892030494011035898934200183610458822320496049843920227851354102834585079061159143322718690630894900637929362367929242733093478125722916593597982739457763347759410382142816042173246912957354740769736832561526149038426727690910859548129797439947940282392089211590759920386690369741128872739231290555919575552329731197270987076363855727805624455489687042511570142916010864773964619228799814444694445431238794149288469792782043106437371838635563701273627341481638253207372731082917244964141597997241748185656439286857339454077219463163830192472121477808623057599046851396634138450493447098111379387563834921517105136173825445834723199242959690363747470244925980800873836249306425215576805672513742496460824638598038048211356730486878876608174745131666313896721372302314108859990890012949195291118158581394666897044996801808040140937615937650856402020136727801403382680978241224466483588330025616092628113713290864823515600128570375721564505342073176475908772056856641434721595476364333510168928643755782715552566675685334313346356481474364523516550943490909065498360284083502146794667318183528100141971350858506399325725460729147883437924586723654089196953134370087359936635640150695747553162238926799271548187141140795111303473357543878470257211955083635495105228386632848652709239559974862530797360347547072343706051600524273050796590485304048205515567920903135174630370542472446201199728209188919242124701731204594453117133235888302935040115407862780992223568576883962790303495281235604222090754256870520394259322446443554130693598876331348991539774455731341177222929405302064889513989128166731343344548393407645875028309904632828818527548027482592674189091953485855367850953038814383263722969611494210587920942166930148069456425408754808598229130227051576902404935073412800972865571257674323119724550621596900091509199878382156152556429643230925115014506889292169448784485199808149624702124560433186455307437937146402979544295365399375294942711045066677926209551059755970600402962529138576415120696663076069929861076899012296176711283389910508776499155073157404270237625545647584203001563892350367543233572281527721168214903173636851325051825208113528281927861383813713631094135886439282106459930339182510763905566213973928297565393069535094227397953108887964207007968641212829273288308242740237212794463202917947746875921033897137704430113564709772004303677590530703107776810507905391485638347998893784726966423171212091016849235251963906937497965889953512556056442788601791747344152951287118236155074895599181838188686959530350191042365053164648848455751090257703915822855907533500518332666044579786861140135455453996118040209534686964130691266800385185627693723369726107950033775714366957227866962331933967636603071596107411519050088275870966872406018294070332152939267794617078196380692578818008593487103951259021828211243272947847649058719602162842302625064559110530536413951213049962238441662130687931408158433750758993358101013596523352118013606373326177538508827170158511360716429735252471797194308511111157878582181152599453577658803215104619237566565692948211590573008265176838919078388927538208080101425411713148408243372675066438765493469374793169583898458907086201478730146998099762931974385865744725695350357736842643473805755497654326599185642528956288308799190778719907463335365487020779816899052782294800740138231358550530786889602067905275921716606009481348420004539835975896491840123344501820820485738778757046656474499754202809272693886820464746658528731899396311249197717789900341407388365295419740686185161213253301444675089768965206117761938769078067507691745654251731179232984568933481973349119226432788289725009561254125533166705288170909811343295938445101873255812226645920538406577941569772950891173462676645765955919409930270603804770282326045169584042715883124902347584945321654408510255987028937378329120889095445653201678824187419558989874994355612134372771901004390432033148270235957283244180151938824172115369887881547475385366241048313178945138964430765306817384196563403308161627275621075446513209290601115644172084824953243733043472950213124571336465145172593801974255906637321644559166909474983245148846141270374753910706836632547828617543615699382976048956894298736114197099538710288587801569013499999770571385678133177438430247620962647048120497856973782247271109399034560963459997220872248404754775079660811059318929453940005664263528874450519906219095397644403059539214540998799810576751074325644862167060462370809744584466562550440039305926118971823529735706557163083903604011750110537113819911800891400413392775304376026641165959951454014504534243807142389563063597491281083965193134160016885140276983476755632111123644744855543753228503396661498311603892433465275301198933570632559001517621617962252529243930296102157763515889219378383460829190365759848515766344480360208108264074608559544479133168203758028478154831117726424121890601245376972286541599467147202204702936932361600336217863747084128053966991198111315951408197113993449399557269502123263125982607494071035198101349303426106682891903954061828330671860757510224751357508137483474031770969348504563529321751088803894233720158712090686880876036213602195305722999399153771233532964825065433428376843470476383680326813969135735819938654891487932111500191587104229530747644884111109614066073833114606575427905462042194447744733131923892477667536390307306462113265582050530041170721830522763827805622213671270137891162918012900416600015719203644538766262949227852612384426927276656392582630524444875845061513781651311461858770211753819839850824897882448906758680620135668381809547392625130230959767032212063864063758642506205463856847343304156257890010889220145120240853476067363273865607831690237367122247920194640856382971664657545089692808862830683769903919982737126073657197316958033033811698525057768461175690515453352948688777905725812494412668498195970197199982548854404133115963504892079861186100434327645264318974861906477233121649147874223196512893441883167864394136544723924598118053080898165301901145879538327630835288264553109560726074477216177504601450408095120804024845629088395051744257621580574761843972275422889487925147562296717531544692147460811672563098862913959779389932068715517757926840895975311979927226639268133314662681297770651344782130212446942364227878130537298885751841449521729299361205931278535644522819317876096548813376285200801610248534082477812705253357561639409396024961744424046510819911222032354404427816794582565957002986561695777671809518645930071308416414489257431607382344113760174034432106090710081502031151444399942419839681085732763351841225331532392931343591116019557062261063690667100481196502598222161477578930944058618908183919717452444312984723791503261520843893546154543023249879231606089180768022638011681832991042485310907291155620540205744188179998480739255293588049465847089630051152295983653883308266892056824133316888098381851399526160839371938965477730334935256109039657670575049543028670394243420477481220024077026260608350525372817236839352850034914854237576332972729903918629537865642685943255863477767490248193825360823578993282939932178894637646668931318378763864015177989122871145715326683488115188962707382254358757389147254266367435961751799981635365960487819551649713867738417899466237517065403097791853064257252949457253108245604026702298257215529591742046758137124774084187708942551555544618404690939153288733787471838211020010366282156612136847125243211755565668585969858187103283746389172531799127808690544375531860830607972372902709301739495775869799308025588111733362999053984113361113714832549892048472316359776693868138387039637429697132896100353004230346235570924877064884699052305927707256848697577070993422422734053417338910450319313769224184742786900718250111887714364012059559989956246701836834494888130304527624847426552179235470775134547798552770576291046089866760168498683992366708101386326547796260203141327374532447357912428522427018965659114999946075642113908098494030526064888175961111535578230860769756552388291657687279096699539075526533849207082745269251049692988957500151093971351513401379618591502395495917436544057211911961893368982983700878227482053901103725370574165198618387045438513848005146140012308365715202161945007899279906827683733925502547252008230327809349345215047802742365889020130075703701466543077319354038807041025556289251803198255807985462122613094531012022143823735492969167810114070634596319244117559491673798579897116526500170786907603856203852425325849711109618176711389708215813676265206091364590728172676723650965386433197563094995346861539383599958150625444786828718674255239561011803070457824042391314343735015503535017047255992674396999192457461143519018316603425184702799364029955183961838075874470610220311852005825630262470889461914630357057082933542002827666774123747657739659176957907311689168407121751432867703987633386795160650030748960156869392553506042184355393665946976625582248188375349984560480177698450550709278806993394376847385712248095397831566867661905692189828092667660827956252191344792092664188226550914449597865304005462632842226171634768110300247811718025686118312104165281697289704108137080653753854687902684208626121498492963506794743802268794523449173678804851079630069037734434437936680061973291857906472435240238172651230995395633587985439993196449305278668277580101929556293549303683886537719071918009252773831038565276228417036453428429647518823655582563671427115889150078952196495556568174600359623257318086936093403585648175495876940477921862193668008457576899203588336471630315560735394083499783247022393366194426199944215177333479114216896745720853991186229100219344912431029398435883879596147430439189914367359059220961222605797705620938288535200042639263339498564522110975377972755105518440410207408211527523966134672010778942811571763796618166864939894129135090350531212711904753114443799640151038780074277813627809856758455466964518413874812124132652441141542084383572010684245486748715703581826735350387976478771800965888016722880573258060268496381178105233755492312354351964187177772711772867548102049277984118093535258877798537176120759996456610328536587204748543954560922088625234588634357009578469208545099967238485434297924494776158613426914471894660372453471838964302232581050706374813170373562021872273671898116346079608929488280533394523692146478723263822801490732846866880432497108143849724582834956637116271331516719870258789295602412776808128144253011030650774340209804919549641436518238229177762320208046524679770314818656919628150768334126896518747933781564191234710803242010279077213321651924752226844233543291443650152304496083257485517757507172448525116345541982559928531170731890052757140806680527543972408097960521806973186291822279974390108076641195083326541803129481684746123479364393380850860748858720710989429691374831668640427615021039417376070574150480270737372608885550670335710816790378738742201369163478050962888698330976862444776825754219699123091487206279354404926827250947613754530443661346062359266509293869993428401438653114961380475655086228345177066171514136146828020110705889213920481207495402237959332732690733097229683743667382977747275487097050714349459860013034406907922374995174145951814327537285193658611511758614364321482417358327108867935121781678035851657578530022872343332104361775214147508122466212463805653462042728631710685544468869753061777281395332026152676668088465538200108774939020751891278891946334371066335449198117743463943088428957317629692627509425256178541396090534080150056266615493038481404488955198737454623562912753830825205216036673578321225309622614801771995796234947769069978844102291178108054104937420447609643313996453546249547356930898172077990654223936894959920099016990818890806448810990506181095836675298269956068897872920735112875738215646561021884396539778537856881514717905308233366656065327485929942483016675587316964682425163562905842656671119450287986740101609324777503885514079137238001965608460434530739744720480976793454155477674172911819901003431609892933362799392726621010984426886422844341221030417503749627132893124256614895668033396294530576330761678476611461222186285221753197778778254225665643006331062185050449481815120970786942763644657575759226476824450125250271216571177787106098596202240585287906912277073392779996515942110151355172208883456605489819750495693364116452542197115991014115548836410621706115373636837869690556148519949473789361440611728113638061844825684763826801868315576004511963656327284768361940635519501151249347325768624239911215305796252908167287031128105899792068485635499295611024338775948280720314591464608928624981969069464876678079019535301436610520505401473806225697067012716468246553320221382844716023830381502588291720247897492997516039431957583291556003405556458737785994138518507035911184487140114707531819931904798166244036955007289698759067874526295130174925577912373370802718326863174992160408944450185691407666940836494934886549831351600316635685510374196585697699420009718841463098030545554642044496620801051100231051209809295097437219611155745326864447333834151491640486664656965599490012834398754527981014694645878580803522135927691465090389339263870434325999791863411417334014435579511839359972066352214562451053261091379927459823493281081868419795505611552985582432589367639016502258717768905857889494371133294420992617515672361650312911047844162509823784647224279932485061882314738979658389492493779567064544210548819473320690598507197395113522295620204613958980759503160801241014743862950464987684923721616984502775981299695281118857396616546705032827123055822676307954658457755362660153050094691879280881575673819380084115858669910942603200679580462943329748452163544590746991285731649925194239403387220466294437515545163344473120028492521338632795440848115556014107011491339376094889780765632348396885003385052425116570401922839630752898723234246840511472691134473301530001132266098324533475499690838906902762931976537961779464319190584814628456528675337415163216331011830267852818533097806264563265914879012438337741316280916285811651758458260835601046153489649304000456792653947880362758837795120881021723091767836579235884816876573079991067535638766958516722333193934887191967907551091916102156075891012606075427196682595891421204136457227020442498914484119824631988411158303147525121081789992351027179287233725914834148310856320923261559930652831899536883198876642759919373299708531128394362992650385920901334087987020423625416924308106877856173430690173652837933088655971670479679245888948270875708301927318863302027323315193091002702716958791256488796284679917956419665903996731708460526912516403300427477925687101426042286926303268324411035541586026420002940085293986983952276917991617766236746906363167104842041648515929097296781170901084677321809231999289065792745482355416236338369704027827726519337180391650963701710430092345645419544293875377360740121697059800819894848060636306349999960752403276537299821542353402441306431898652257009303544281510732617515934263210411902546739638878574366869253868782826516907060846398603873753861057300891218767723514901644976981404233906169247169336999960151161701625519120427046176099128007690773345676293592206508016479728347403632829124568276122344038187651178505482104985466242758718974867728062320237624721824737618642449768768657007947223346695103840899635316164206486387427980950691762052501443168949482313928924860764326295226841283291663319742706428105351169916287058350040004414309611477662864830178614898052652664863924849067279235943525918567698397059080727148881113401286300006507544001713059311020639314715931586367337541707699316463062214453473789637412993148992551382228337408031987737125047394475497490898570486142349828296613155576239184625920824649150245659687634691050446572470118661755610600744000428453120450787280015618204122505666273312713605463661331661847051649783754603542605067284386532762590353857488925915015832089803276537385890186097378591676461556548412137652006348429449105367471184452548300707127243657770794659225911526252698945604140866616862956879227754402531243862711082352280198315132158603104244460766937956065152547080633630451914022624801326265443012609033210612603599793179193870290985780022693248237304451055023315852223823919797017783425539499699855850671117186942984417557928328179475176177738541956338395265560881876663843685964482588227203955473251636246651140017529095117080660338471198609354788166523707869233951830323689031227094859637775481157289859640330122258084865067618460718280042814098696279545185729732322820330894673864941702595388764593846049300049760826288805563397546157659358729048617681781139683566296606765516000543301322233480391709294929591892027405900274094597465580536171500492938247735320753479644453498814065346984958388532223050443766914404241854860860375441131673508864292414604663765188310918419169791220815455067053292617452673786450309400710997729474732198431663564863211982467729745595143087537166779075646024560503246999269021191181267659741129577197692491274938602840379703113394576991554200490548908834107878198263083705515404825510328789757762091188913765824615984643143180183518769624551622699745118686697054327094813647602160653921635954234101887617620270316476350640534227489475944984292143603202425058594985271409873738587548921912107563641876824216580650134571773126580976845867885694981678512446783359407142269860012746186999613483283835606504078834833823619689062658393666197723561030447258907752571996991347225188841848748562648391717014041346209404977282545901683792687977654366261000883556149377443003159389158675819355313679786010089406006824862415114589324241917185911695519738648577474858012943415690090882088885984912660735864113997612013074986246057346108620224561491813968872629963918867519595204269408617808973286802743976910228758180947305508426172451924992581497347009174301208844835393863898512943755749075702671871143350812347890867238138771958225630807796103439123046671396452205121328523070362053019463949725909503351337717008892079973606742067172586325785433199990939971410590008014607794304584945475110661751630207167058155827385381913340967316474022294294729523582040911254341550654092241686465535699789826631819258659019059275363172732385919709406765860380087561302326320144928753425897181021268025724023899420818748002939283442732897201929370979599757614762157264133620134240488758161565070644233104850588453790490572206273159526882371793968262545712796631052839055269204942235456688131398226461996419655727023421614009550686288306374190299749035100148875489880340759088256077599870889818633303713274734465416883436092285907324214360502003464244052367413753548698241040408686040620285273265790329440758638993789005148987675509841898912074127528961426716656428042110098665189953119282203294074446650043063229645032754518483810968991104277519346160580136992463322351312712800339947224640318131419197131405719386581161627180913278858411912717551516129798528126278333224424450432600214078540593232508161485522042787497906995709499445362656554080769425747504650626343160884524335629042354162235346288696116879518851479670966889705177931612026168236200872751690370652278267452483056641326779102762654510658312460630904097552531416549341388569471904857646427987974635272395798254203176200987023838328679965500994980269962612074859880547748993563873956342152463640295327089355757079509186200408286394830789622452885535537750499426148047172533132558001881307494565507348585397879647355256282159652321708797971816142218914540349816592530583053701020146556786719427030365951647088848740560817354757777298533935400824144862719400541299753581205117574919696272350643686773949107737090300102119202169335212633833119863591835252910407257751278569240228077885675813374795585270368215702093675761546639211725232992057148758244663718341545917776467935121713109125470004912691599689977150581692766834142102711742694686611167239004194873283866506848240331297229242402298500331704406333894211287321491161996625271016878965336382144872793421802979747693522328971296618438901212077993724079462913745268932490002046270184151236801339301506377955230670654628181630051201402549415885259992278995333683847322054713239593648726111855742521792223058273327550863941927202097920242699243224784958437012511857247336749369627716799585449149098430770542885403118448186120882493293189355972962576443181153632151400135433195791650800441536712473974754782222835740777507278580485064970591289305329986344216325937626709938698239440816156945086991744017681031902703418923298643149774204477858287748563971110005587195063622041789588519921427993954265673078637606307150203485275156500855059349692443294616043118427628284769872721257579380622191321898440243160448084945609151458850326402254322209280454418033767472362033425771283726838289154829542808485917760280708537222510638766448197312836378863614522547639376472776044557610541860023829342569625355776852096130772181877513799627625004885977135795769756626880523591412424492881570249578677890998492360224229056358500378821518464811839386753691884827613834952097521631671903402244047272317433377138962301082215514957950605375390130733411654067757526938357393848372040842801867921705127583191968188988142429603847783143848854534330523453945990058903612869162966614486806400920495701684882830869584691772242866645944189000562810802402883591586178955055522704921775840130691722977702284531521081893385352952284744098165485602130499871498674337552221762641292475882191160074152539196102259589639761458514383768346708235627449577913178854212072747360536848802683836201869863330874478515610878038943765052558124116697232187304391593716686234050166697728929313506226242575322837101006943380372508307362492935479632940135998774787654944233128102617864624783922471864300166206761396946082546740377953077116577739382819649096565245665900049450599682057947692630712439439488879865857957169416210466587216170467164400636362913198311790073302850806829741200074738532857991642560878150616038508086725712245061082551662859233848993707005920578942408147982785473645713609539211919400400953015287133216252386096613089475729830925543273636055316001887839980281298720156563591455468118629378556819579022129190097385336075144882795065858665613088354756094597277397563279127959898809195568538567549998015366253074576788740015343701060520052214351388130922272121767778553395943130822149206329786685507235371850967308278866769407488779753464968357126661068884642627171278783978464121467610386708791249603977716869231299052613971411700310298548899584926990113840063041282956542394708456563883081123784483183876496578669477571480192997399275357981092907660942761887519786493635777024173876694501045019436359304908167740146975214176459698912669035007766146406037431982394973117060315379972071169008324485289910146832758762872214781243976175540600614472829485382810699789364685302068673855636243194452260127515796173523143660962554311685061477592118590047109787214021652311363392029414219025816167432464517791074043101811254428105298922123095204909973628526998265517372815582402031905531233569854615957019416746902430480735295069765701326606694728015441526434079048815597207598912292288761398070187859593666494138354203087120102611389748575999953764242815879918849222816796728559950018585062923370380948074725916749441557141435218662844636937800872252455924497393770075518688466026664151535156789086890801856222777191405708926495945005011439795564067822163886498306272459437964226162947798345832663865158629315238725928184756951925776850040868857859815416946407620352867826177835041843798724750607383989300047596330863548361543544741269143220674337305012173618421344245403146696031599458503314354765704244619267629433235424900103071231555593994138595031377553118957930541720647411665685432223279814864220632192150514116385332569213565527655855233371531750351350504026919537497356323419151991518834374896438576171450541882485975467176172312729759320752187431707831080322172289591531078205737006508785328315344451922866560903683349578422841985017474230098597868536959449763436889417658352344527668385751187507581618927695680749578841685656830733947434165032139205913951837744399709201396376740280994320719135631963048522574003486633920649990147181026718484324915742231361592691876001722723966331606267104589400042409214446609448529634643542146507308962751655289888685585368564037500962721983398964558238000208105556326038829517411856927960248998414020792108940872727507727806736308312481824517115551986245536842320265317137662934749897863719444854285485320117649425985316307348831020939947728387376336690504759567910226586531962534084276982665363457575581199809893222426695309844881421985156806373371350389855113191719403980476020613576829772166809693548314428811686947707207110290463422086039349828959049240389933894276584827978334724272997468125239401651052289068401991624921514301929390264951547675020189570277003683725819738171813022257902530195942588865057823289570835761933054245422413429230092326497356559339282428281726965559428724708273845775136126692730581236388578481682822578929347203047812478152100725043896375544364347210883070858692251218203924740885326755353778576398693549604846071457598447423131316189669769780271072810824651895020297057545421943242419823282022715955608460802453692459176017957080801226037220863560212820899123028022154177737309352078133488360411193122973252793413840485658440542538102497243879252724439968721219819797104446001227601374694428466324579558516670963048107320230800974137689445834287114176735568692889512306452341442281820957688679917320827459475729490232780415573679048759503266450428522077266359584827150168414640214016841772745948472531452683432740619897165668115364121615598479037164275467310049755945880057433057329649972078823919725719138912786427352670497072940146615614954095640812860757608791400449609132241376905075295478059320824297824536810227618493424996260497996079043697559705570207774803200694431501583273539407169629128788506885438897509139981498377858722545343587748015434852442744463837230288561177399910983188472777734698574852148806421913568558284096834898175914652218182582807501658935960102015682281460384505488156292931548419152772826440052610474978543497245336175589662521708103306161357751132145073910545580208163138687420923504915986249744868490408314983052895565976843789983966977667346387114659667285215977842354183761580665297668704668338880469181923300502076391387116075952147619736222087709053923396139594605485490702510601441670136052921059609009468366166077257168377813328657507495379690815278681400496054332501909182002443194777538862772577006517533167567551510199458304665103855955584643628769829429783277156222848310737774304423820355103412890805596890673711810418653234850142110018307429569186369103887503734990932142607748326378167027812216052280917061856875301223378153270759937188581911559965067526970820222871030848198043387725703784292635971963502594938377328453141832067475818508111128462956679171546103095857465291743294883825878631989908285510542815578526875848637959279400824762685359552451888761502415354658874188542784424160771624954098450136921851342155316355365643025556086394093000139866738455032708501672697010487032117711824701443094618062820151532261243631089295313867696027644105365198203118102762715851750009208522965822329454392147366067550726679909308938890355981444933991071838610335208608023926253503165498008245000654817658697636676130990338980085837914924630642945044894105539923603021694250069265242139326579716076578429779114554121421879982144337076773391384530111969714869468246423868543761321243560795611119587831902447386558784194711045139666406962017968162895730092876761859923699427914873925250829618485780580922084555665915359747965708032656142725772304627719655120187124591151548996769619797238041117669457973517205682213155680764527490244075215805433173045167916559905868305651561359167492024166886550509692057682729353931749030508862274998387272444474165461645346253933783375459035204332654166751262380244523571763965274570431674661457556772686696940968344527913374349452418203050767695541200309144727551398578788451067231795563969057880505330331464489148528836696728019947297912318357119895935858394381463002880024974541668785916099597861681808676909801765688242366221668907382577125962667685419671225882685376966101561285671593101235822063318866717061336605448341894874876250483862319240466116512575424243714323797507005579830666525463953202525781669479689390046491536194369637839437582587189523037984234604467724087202940062296045277019704448931624386280909824427968504218421831981143372206851093731066290825495607810847616952617732191770501923039507155577289723502402654187955043250934251392425942070825454127011215882101595234123372066736176237720442741448002959822536254059634560839446847818845187271227420778608664907397358852478904094637793148524835339936992736630888430797617267368688238513763379381467527896082835009829604575479967748210661902726779881073052541353717822171045441955135562073114164509432360879413132734020616288684573326623515059045631432417069687986968495948448351950267137142186837504268851907094918821253060553034428361251907773416244774870331581904381664582824218473954452844411368157759193122891344087650706802988701723867022097750149044409564612510155517221792953181684233241498373327409222165277643997712242629931704685620783844116807414436136677712970808796542837799212067869884764064735695709266681774373660854876235669549277647650307121483933574527856380320359791052809943462031931703530776327967345924361665262687471007269369665236114940412084109942025978909317963838149910405852564267431850441032321238350348070198060182352589697562520912967783195463046244574789318315410560618824538744809139752537473544924106664887782811430720449911142946226604789838030437526387301878572271744599478403861985457742536690500156331820527401335353323851312743697506735449763028524070579909566421282580175367381027970040911297220284141868207670276375805442691869332875401141804164330047701159620255743908147014307694147027934995070042449109911836304883086090322689669702715268747877345538807820826682575479243711754846303671811951480886554665569564825073015749479461487810918548049823498742899326727096994104020812971543770475555144165909382800367953789871741448573398712877235614579248387903971248525166150072882599430886582194653327126493026349411050604894793940112165146804131140906095378286169558442333397476213754953678728176532595592149503714042990744626632374857855453955648485578297329961019992473750588465346071687207010465596930976369773449297508705429600808569711690323229048535880535569930231315047336282499593269621633912316015701624453337362752673514416312805648689226515919469801004893475696899447490654118808192871440428373291833523065386132446687061295299091757034573758808440533197959887333944245268614887365471115123079924090995302505686017474334701400075416517496974331855113482228976463179426084462566163239298736061478183758422299803043351880933119687842251289327751796858245401339560973329537712915476462448326428312746542352687151799406900171228056080255901177534919538365657516968593244392932594198813284241142335491727870029327461912437441571062025906777857566440221683091073212468266435057421884618859951615467648598726137294246779917767684535745808568769071311083744037475122834114903661922643558174372346674702384333783933188608325333385403071813835835040070862325174157864142467234038718443536545294873258187140426843731573715605569925299187130833314223569567706252481479477856611255058087263581784556427933246415541865208148092064895887608823849569291149356901137979890456323722679704034719586485985741989164841768622952029400141183796214923649367274098976589376069244550561683784855310762514076877877586930216395840535950559519877431389450327748827998932837240613363299847466760305163533750171609992944581734228570093410644523693266691958119603148926179851826798645490501364090733099725189775947951918624055348645638833857052734668687805316652172296659789392751446648145018537440639751688210942557523621469987982787113975767488672202544153181497978278419915177889253539062440313427734320703968450059110216550231073021184444973457073594339072046144976593758869569746046143742377167108755999323584363564786061641898370490636351273773956439044059214208598464532213588863461651023007735998623010260664991518274149351927304696729523533997249780275935404008874480258111442819349369093570516496694647923611057192414611672477538400456213696277993968399153500455742662086316841325756428222823471369178602420111101235699478271058987679232705392087564618668822430328085579512562846337243364439837010800712814706567552971887356162463713364942735673532242846082412859692351730517399599587126313612598941379542983485415328200131273444183335662381587725813510181733155419819047883392784153542406226105214658054113378474200190611467428709282934271311451031428266581457144214982826078808080331101548338563252929124078236932750917337882394322128913481895073903683534089175883670248942793578927328543240388818394772156196741114335235319975336725933702360619106348986798879773878026995503372501009530662365309486042804130117882162401809525551050650786320542062904450658042813929021699591831190458864501603873441570143669118494925677412584791806799783933721164543291511824240064524809099302197027066357091279292526375447529165697095070441182586947434410562749005451333075640028773639738917407033992452575314375546240434846984161104655218888160022446769220367531811624248137114286820540671321472414020900785828991783217130337196274300109755764545854564450432464549178170767516788004797229376515461875399073528878136252149351853762044129930442699054801255490036096040590834308730031179636329545693339302525485943541347944547395458093752069775685944951617817657954742162215223648372747086738869901654719767004218150326821793942031337396912324424132334768918797994844240227760218210458783291719443094475754233613540653351118652403115262725672622693275127588764962055842455773533780258814652958642563156400215572446019272187521606303589697609929376198194340982758769865416717539527630540553723560145880152492077000104824993620860326355111254634259852984308779575713517039216593371190883941585900948063128807723034626963956899017271316311755425925595311345697939212763435604738794328408004216040295834259199457073881502088114035967114146038361997036274080242469628043731317376361276355560501535093832244032509321345390927251209240632594853458317681034713582319384156761535717442389508072899760639070075049838227831774510814857202100154759134354006422020728678853402914387435052259467358364619087966183826393371482223307606568835384173152670455033758273721422523946893992161565396622611899313742932022664995285617627899470347804367242862466337293011777431144973734272298147166878783646040332353622891968047018587272088137506422290748482029186143431366034479276272584876506661960178801365063961721166166333638215256449567272314599665567484157259689895024927914958414706307292861455851833711701486318740692742910852783550826576888009980598178246639736980332808477168409205904568764271838811509200901570870275645883971643003161310379214462130877524265529694848005920364728882404253207954912278689177530202721682822484097721764677145382373299347739122678947087104936696882093371629009017981788960961815422439862415043885500533411877861718465329936360482159568312281909228903173455770689845180764862522832909835929348666495548010868348812689483220088067171473052739141952213318245896067215228537944293101618082740451779088130829537692115458920309204675701796027546675994643722519260029629465224039976473358662468395266090486561690694446299934169848396387409567597103859807719289792629943437697165797748967909908027913483935857224567780042726277357393513415752322972914557946366811287239897152908432961593222600437043369183237472156045245521204553402064911571886957256672759472330434724117323130509333035791395424499238355087884037498237384624112444579386266079152101089352667330369407264627491310801710450676028055775433358926013933819363986411985759679754713667451627314160479189299462785206643129746952812152228367721580400063880787122437830491881365682994116380690180499152985767645174025750554937910094418851151551123149293267212838099899043647564253172759258092861958478454969827139798862797916043161742435581444879637365685565470099039878526042374197683262067560261874958323421843132266826835268567663672575412233832253701649678123588726914858869556769727336951963342583803078005859362344470311811946491369297784687945370834913704712123938724557614571196529704147127468516961939646815923570040346837824668173427864324751545328039669772692852097975746422623476303750931787655800077575421520335485310908896458998005665079794283114260442997180492020664653591640465124393421858711425119816409875865576965144297452790195130478657527361564663264698076953967695193037330589208051175346912638146420252364250678916799119467256299520095495562465057051011459206712005815333245449229734579036191509880479885017081040286310805641384989790605528989037871305063716836899561881131460877547293632929665746297269196811136145614675077005178428315812639645361084140473294227356562795695717155079260801314324713167881533850355644416745465506415732873308906589992094117440878970051190087893043134921661604630610238334693867646169449534117610086878700098272830076380400541734475992744400715027683586300615819068446388118197442754857983960341333256818504189315971019708491001879466907318929222335049360004279767510321454643110983261458814649119009191180020263187962970375645729607716955445236386478995311354171239517625745763831274593490795715272376277995787883482502697978476265255518144316595772264266192688782837411317710199645974407659288631339855249045641282858614170624263314603205129008096821452217926954125612088836094165424632782997324736841563260239961488114627809633524009006136133264036131935428812618952108614459811150947506362602744625427668642854632647859141668895085323121802519032721299529514047183255058098363814594052800338099253893921529023184855591230543490375336731600665435961899473577480881011782103581199915447839282376002313072164325340061831541734527897652513706393947143381221600765551834789360800103780581297989483677392718757023712458810612080284080519635519631387077291526951463638809443645763600420497790731189631987969612038278379538022289213076951285577430002648050735005817044023564683046491845411575390468190476082483497049834066955738573754654685097670502345432235993007166639999845489638426372925275984606761850405959905045754319694282400264350264187639064538752595085147324416970806820133874734234339971145210750622744693981018888586389622954705792204536105780631611643324787070271362349080083139382388970420983825148663544209963466892331876906561436686640999429060741999756585539131921114398538997193299814443588425697376697898658404485404311527388757210125393478854001561171994072017942107975836541906782659161971850644887526094587587108495551291358733112314401575929257460261868336965777529169231954040916925766509900908352542403137858963142953611078526948371382159659215373612974690095559205873260670032758821281571032425916719204860278891027482085115020830030519929531842949041478491454092933489908282436840741528310475360997289372834832280491209925958951256823254486617450005082588681592713322010863927471550915241187721185470569056199638548365070190756637189428230740599970946217642661575345980487195037845240886187394466050100974021940095416696876264502717749309094650848408667663549063326634718649286440474454122424488470225862038030330846248699914960151930062964533669949763852885504802922020725956551474311447092841332329301125555463186847503201238379050463260136443152417213939083249637980524788125223001991569088499283170622680650715761385610787589346937762577992587042605619424986063160834042008800081158327816268228378338574964957594654659244212095163745970731020575110835207145009156875359796236807055979204739038973023971347633061796620272312955744910292527401090747126831506305067048600196189916168230450508376218295806949363378438515466792885345439923797977395173013659115443340368249733610223600315713082428787329769214335540007602222489719772387352841329044667207896586056509205500793997122800312378764100538535573385906539280136045311109620785389220567224149824143190920703535789801773306838099289312104053487206843682240089217894175931435715125595707415217933194973101763486467015223926370201228717476168513658740729925878762605352716696736552491604814107961389937353768679080452078021354530275333890692727195930262412023114174927709994966050322388098842811250081532055692345898913217661496606116697252902574130452059330814933354040377579179490488967329954055799326392466277012858889275338675660561047764127293496997993946569040881437304100096559184512797705148201573559164820155679088090650121566169968746611536706236175523580634209346928719554400590419652417528098089256352575309561956456023887016867156767243571270746269935927843948948368904986376158477537415829242456043277120679044248060851292093340235039220785072864753867413275458220880853636474506485917791273971403943683579255359459127112206285700140368954672378456667513864832239856480208324398897454450081178180566773099496364214130162643550531720121639124914506633175966629236930559569496612217716086509731895603661768568445397872115216163698382740693093027233797793787834137905114436931508141642798041503044382688716955838940682159504277215220225554212729912599536032750573739951906606152936306772871477788385629943722380976897807592555637949561063415738267814909123877850647644714047798350007351219964780929482636862060330096740294989571150755665705274518923573418523169119101215843624336989148026706732062732211320503566101978559049189982222600266535099083527452002105958904161521386299183915157633105991239107391388394859305553386840677080353340976897175316020556886678835347286937592038257154907374434211149331370173154172605581337542142842763066157267018083124517779275681820776410410217164908752657097222316629956570404621582202905882839406626885410257870812128564884763881004869620167247225647648158689525961197700562380842339255405498375573741497346736907494576222109622297902682413440216598488021923088388611998341363138873762041028828854940189185066093332858146060475355251663384326273185856475608432728110831847007132860345463942214406932461107999180521573945191507372042255229968281593556579931188695536010968617236032205915056960720819753977189217082518674634784216182864310084524022008052389671048325249948287152502585567225473181759530199782280047651191771671199648105845614401850650271967028320478913493169244648335234418658315706184150119788786446950703055199683227589146448615774559694363649349630219850003369853627372369555165085286541540221013311641282498951235641308278796899461788702235057924957022593231498043345412031989888911719554923901517252622448581969251262535545279771076554639440411228461281954394071067805861303043344724532581342767051006529604606494598431234595639875569437735634038372253589528657639119571043284472293474784784791634214053323423228999512051358546511207423104363052737616290389333316228260306602979529668207955935744134824527021276736659288838606967831445917643525713835974122938930241757528055904955080120516290184659100784522454460761532986502280204637025566130206627641226133700388138586075684378429587849656268794262253242509462756853729163376291150371199766275508030657120874046413820772295410327990710963038401062032380404787473958864662113402554991943785825198764298773634788248875625639194149483149343300410300743456519882641662457899226056186032615934236745483389571902724099828663354930344380196518227188203730081789478962108232088353664963846531479862116927312767492265158788937668616840217937677278664248531699582510792851120822417381975663821795108459965842059530359896879918650238702383462909843387017461033650301482071191707175110887668898821138084027474588005081878654935255897467122540987830912284784512974474828872336236953295437552407556661501554189627005888442836479721404412628423724813665283614946478730412880286090435203544525525901369229728536958036753269201357441100695795160582510511338347831616116166807978801264322314210791796619189342329537895181409778479218467856706541903586710107047616558826563147514123054666125973671135605894532957171774883964217358594272165307797905895143647164906947385678502336982671278127117831816135627113502605210837065362570524042457238042943114131512364613959809872970263121292963815879485436736139854833919570807869979025718245066206920930177494464012250132100890703461507758148849120059670941777887741721805763580068993584063684080172444431576572256668739816749362208057792622756822415413892794126675822832347909377814263483495827589329414416141947060559639571704196449762101715129068348863030900416041804357591731828126774705967697528324055026170046135194542003895784399431967295908495966644482028049985277088345546760440445851466296149176100631819598238911737022997582420771304541283540768457368432690210963557290042462131306961073842136035109632981218655179870979843173689544225471413100544966616925300842286033664799612727884953762510197745308147887695779027763527454145515110622540090922203236579093211043458019360049682026173962352130289436427103712068277751270188335251593784230013663886983154503679120266847113177803003538864064859203627120667382996860135556761677214903802555603783967686141240670199564078278552603842009707675532333713641403943583396163609313376780091092785734364606588792325995459051344581727799856097131268922445087145666416817889806435858997025509435400601276201667159909238857136340344507004165088134084173902485846105154874748439862581161030046363857480316030219304681617823713549447318191668109221040908037401670828317515145779290369240280581494696374044413599874650692774575073945722756731719772621491200413985530270228555909056969088156344185819856239494954586901690351334676106972222792153825321539525195411932010826383020603867906793347175704321311041234037230878083751964832505799203410740025623996995619064879861873263246882837768494318757273582205206650393887409602132162465553294868852185146849108980407235723457443757272414294137258193766005643368313126793194292247088182006159577336744368937584323520493720446945372583795677306795751686156402609750682312939103538212349618139270406932701621827697566069984542106216691013200332410686650417575862569673964985166043708940258605259755162957763432241999294277108126569898895129043794336666495485339657048882463541426782333020122834239365224156571896073966540519897657111080728276922184917583244762814017772094601350030120821026336708841468712673896159124822253357211492080571144480678757506304514574548980307391962083385607059636833965324027006521709534566410413625024681248616923493896418312783473865851996572531111327960432081190154151062476948436660484298701589805749713281398214244221528139387464268766950780873955433340175307670678742102583240101177750216270186425077726224852904673078003084915320827632749779768855502160741146946351146028294092842554421524696174927794661918469193226495465505651301573657177213560199242620596159656851922991740173283652380316156397696064436907780759675527600169515380868601925520408654205979743172514444183617017969374570495617737645969361528633249537542707902331157510538084484501468860081144551147379387481083107959836767282609223106689867564910689226011357788111534207929559130151399232273045281006951175671975361549855081778406677636883151483357354699187001598708614189327961244133519744187927037897693317220615085182371672792656319834787821134846226013984241595165960080612974506530313162517869532864749781848981912762843028808772899644957932640606196010303377404022308075628069544513398373213978999085464640947935551786408450615717711085668017350825432859399065466910688616820218201636910944254445320733258251380692957367998003891226262198432169847146465742135819981317667612719280869078145669567804857549578084921969214602014471033496516421322429027784174783373646197588694336997628927431898624124411721596909170388386128982968371302643347805029203139955127215050513329682775075425434802501236167291525036050109885875990483433091906304263113650447730400344412751776701989463687957315667870729515638507664823529496813768413000161657276004892467968995702152131806421986046023679770611261433480170863769716869079665643835662496966475931570257763665215990714077382189117479600382918918730328700262913463572139777987693610843751738348921942268738179759563403641108287992990355046374347050642870301988595141554372168953451226002247608932098094809539401144667631880452330549689482510126187557582771792624812653352240297201064164392201178093858155824841247784492200127851882318919540922268235830761191659796516223586647823568717153553463497438023422863695181012710338408155167949520559388826484868223798481112044280504095375547794680501030403986715378044347429462340539791605662294222471783423622745443169102734582890587406112214814553143686909847423687219076471570809795967763700186395924584610064744910552393750909665492043468071217339436698022287761000032483232679801740250427141407671472958868314153744638769703733935210253581827156681816307525086575129834732928107156440851995823671661343958995280747298408542463583747910992234632669421148493625329547981256106263686808992796100368175458265949960720544759461323785665666418547281291202408747815401126487797896589296275834462271690726745157459442161563255328474375050745554397463943274745423200205723176377497016806327873463596251308788824188248305312752132961238996832553470642201909406616896112901113725267794443600795710372615806324956455838084273473716026970824476826399797839726028173461231292321604559923689895382453219019668444766308860821571359325655705553368896301742364477703808731460558995375336487605080643493646176448329549963672488981597072578251668836804194492858516272069749312805614203726442811408677351099212793779644614738603871164785593571976901622504651479597389882125894243382568467282387143765338499737253416974496165127475990460891655269845384278395114442217747943130886786801798417533439758263967734963574069248798981826534002113494246164725716508820035788366602527170793336476158759221923182610937622225924283468140841311032681700746024960552062849575785523772551831758580804761658572614470822955774262179669262987611717702283064156372008488014549092092055159594665848702738871405887753735564287686218549938446077111873637013000421346015187599335835511481442414408156088790894792115024944630960492449468984001079984211402833545106563537025293539797054769853880086048178655148903734129091683245517153923753750057061273247355191489687539759507189399492807353225632366430097032545918460382800830592677771182085447520624753632866802935964986705769999244634576692694330379973375436456729864273287819526997695579053069060424872292211895176727313920055359197507832709189905620532788035274160254962534881582426984112247709576153460479622738067191663820126579635641636411307090948070117488559516213293379662864527827982653212565717357761405939456052376954249594152917157913740105996314748440831439752825885943888614615017030315070910551686129703021310764966264873774014528204444209605423887080819660363846627646925641220470456702885594259540511596362213788129589666270365953435374037398434632808103937344851287960041898740279057453378926042684557135379740242037299522718349896281804694713988175640254463904303593383776280506853355668785600162246123791250673213187613408326740028555089349728021808197552447041011955152357427849935493540671943391690067657422177703215225904990455556034331897570519268922542480356454624166139676323790267059171682086313833812571895133479405246902816818863668984244291807607157542744205283253809399541078771010532238005229107901968868335767289915110365736098622025507849306608114469373204083852072587907031716146388981546294935840677624180583687608988622747760781810125215911173423385278791752538146818672325459964943939474221121874229665214023292766542029273763447856186730543565803343957335159088034077408219316672798319062858650230390919933645620948233482385823752652830955745449142574982687013030749194172443640246292607618359326803548245876022449749166168281318447779946829381736609502655686902632987166466315913589096018650852363445732575255249671416073068434556959083770054682146204589746150699560976592326652091992251338010335791787178167193508018413599005670455287788960174158303346139859890466883307330319313386271368276611553279350287648184042869001915567947044665490743338955893550946649355137313309125078649437093247320709035136775182762444125152339743717212988627093388296852448416918078299379129893713953273607824290592796553903092395300509516608798940946819625649117780176854929791685139743420342703732527126702423994250943551102723294700223006587684575879480234031539521348892187287302031804080764850975422999770932098494207222980155540658639336920732935806068158827299082572400736637616859260502791857413417439335323258489825559327619158140553840157969204359420833433933324199728594761888260732877174023016195970516611425024499661549422281599757916874708850637559331215539257645222879190580977317992757591812940356661023749952926636019819741565689583172953453596745274863879897953208034215308566971657471006610852873052632137011588817005445009159644111217859859509120289310281254548486381308294638804985377204797782173258082746625232192807927914131374346599453457306490735916069716247432710340606149181353096896569207553303627495642193933899307959258118862547373482972790047134106513274562027655054871828286375227735319614602153512631980824841137752407579581022109781190864279014901289163291135520141085925104885314014575505237144956465885475012840530020692636296009721558230787404418823292933655361224528107841883611602255160436746561609431475173512863482707608410002432433414353984066354185304141360457290365436116794533156055704055790562701164567274618227076089554619543974899990649426319027991723015828747921892284212630115301079419781979260454849463222078715402585014804757451801238162375240712146935964254022184814579449620385015771108720435656865672721173900107255767145191368686207515579922753367589425034233259331931747543214955412362015198782330432140667593824081712873666637175399397816303219199600174022860066546226329580348447395855966382355908476428909373308768506242609761156886600937291866426637569194712486390883931816475469405532889413724229883580148091234343807046898638882224775625867626878188757929053654954415102972055814954308188991844823454735632443446062771065610691885139714139653315102137648428947600212263971372052998636921028148565146919084254590100259036338483469033245926223030409371916527445448895478871210173457911672054427148748970213168172996640012026650903442640483426126939149331973734377372998663527785534928191464220601507749779166114921111975106357812314379084693002080773441683145124074568944133129603416153578133686049717975746552810351422949024487474085873610144859765626096447768109756530610204949194501547739587550710362521120569400355607322452780525570796390247030196732984938342273069351836060293553007695511600960085788508758722609958234572830072573518581517393043564407207861248273362929307412306993421634645156831448383834698437833598669204230871891228572835709562459718555830239026662771839466624042755706160655752676749630646508412652601893189204643675719388010592475677590537033501010793217023046275375048042366068976475378369328778769660030234142582659566159842748398461698432859893585667702060361363554550478022962664528728246305393874280450603230425915605189588527865972306573006330215567876343307061492432042183993626906748870209625827345327012681608196558926667692034383794175572348664242620865026623976269969157862422996659781483905699175584341187619189368881688938736637522043341993693723827831125232966117516886555247484473060146783717933816758947336818942645068817950032898801338702354640146632778615730785143730943867892975635360866130631893744929377219687534274430892026844865120081265503766007306803456476384161381867797467849342902414548348774676962035891304660991090186040773776840739773493404770553952878543172751517498344276637868223699598322702506064454019901629718310320711633594467262159410790952480840865202740660073787482518055195655643902463198109605575677271380829861894105780095128902611645223624656903477225581909079318138024477315120799796199060085079442145860714602872451186480422340712360651905741995196948397989177864210748106420188558686460039428929969866520299236754503624191255701857106775651081293629427344210946049561583301955035929019171949024773040958926273533790507578652897170624869646232578185202974703419087936590560188720221632157730727335607748868817883196675899699108319801890154837950797691479448582240537737021989248203601804470859511205874062228646303581979240069353586079624452453582094643648140686572164451231824084040691743569075859880535743027555425426696196768495307273331026361908690586449242732963827161714188857889965362442163181964342102821348207125958924993913883975530911184202777043823918330049152917395561036599293833714562961534600312208788798661725882267235961395222220806654073733165168062812156933403783930371453851431883596698579555100093243920610792194234231985457053567137105413727543372870180801210008482354818141815373783490187484051962405116491999973195526368990920337764207268777746291351956921492813972835292107754419768718551700465928149286441447820578741922556273865533509616158999232072629206427873037077487915246049858281914409168677258254838606249829859613951163866714472518243834372831870370602456227639956382972151822060749645514837188110949104614503908685364154287767932476654255384971039977865401976006149713023052438845411188004706423964228902299146468565152662308416258050525757010614701691262882708828272067115233027196088128456744291547696726908681278193991786716876295310215004565435847699739354348940828077967385747202005756333007321770079080916681735707506457782467395695833990926432715754669323384212182225427690781841516265350728953446767004694030281696308896426496828480134428653783477296118153529764612378123915758370848404094406333937175944386679598553685119314993697159806877862493776481015144541997582749920486894733803176410986305363713697329149770093485909802141107536429685714964262238766011819716682079107892136714423391002472463903293631268777979315302448039111682442645238565349761948052977912361749316590274078418684625435361900912749711262307496509436412701187654721021857574947826461027326050751320776143126309781587894771814413004399261929513757143081978657815092840609756550845525505369914682661290451040392010809194785639369569179839599571098591097010583730021750378126906218293449288702657724118659798001084644155501953205365857187559614424837611826250142010110930658345082667463718457155810636209112464244615370504106249982016414809287437532261479748327576445618267890153253123977901141319784020155841852981934736890829966801377293034987239464802085864250238723315054628913128633567047401027655320061168389300711091035179469790355155048282893948371765906382370030561763518596656032926381181837308990685179756895816888645040306214724382600673472603568866675258552870223617237190310609586171634958720180715515601739604475386906154687556697306687069445680729937900738169790190471301537003249687306734024051875555038388058553832557120315757334887106374761422866054899220344170785356793131512858101447160915763380786775280089885382722722823890927151707368997053093341975224036129987804166327675030474779852531046555454291083070753462082961310282699523911358536075915808024468438448357021539808214085254545780448310830699520433380797223863491936412239028487270534386478292014698664565884233603857208363814538024107697933587247874538223564209041024432008006274489333518065903654906042540442394219917328066460669741035601308807261471595108403738677085979248982136134509388469892513811306049241822396735440925227978896258325304339286683296127820756787630002866498606183078996791444163372494184540552074302857368050113900775279032954087265389852554417905469307056604310412840840607699630884219394693760161318071475734483422293641560649636175871311890726192637501122230716513719236549421891547500770426089869971156952696168970447716207957795455204076991692639985675177780390028588396229910090956326134857699249346916861406835297226291791525198631433208442637806962927699962041038572044404643531439431304628460365530578516783743610804627974092090372626570402952173290140609908481291558134741203505257989343060838867267040841593478831220923229335739171617518472049727167964704045436720665563177414749986291181134238286626761710920667652532216480750851138040485660921708035469421802953760279062224516149681387247421153906408886916854794597418850088264711310756549832259083455758377786060201569478528745294616607595836881796263910575327348495733605625470029355258918271187373459544425797547719203330528826211428923136876903709600087862345269660095738533810923423339608268830152874432894797507577460245937578247604230638631495014540686538635202875191685634209158080304608270747322375605375188902251185845857423413082416220063273176928134359162882960034572149476633958355293119934315826655518704958883171708751638371033778484990111466959775311224775847982771552631731997855508970394430041847533505357447973716285809086595592870695379634258149582374524155699424370366218113095119979029627395033080405909990039955581945245063083273026008543231945456210399369144553357508868946698034529412919550695136567716632708982108534802949500722945018512987227188791215101948786823993124827437372109346014477988860022733513709533061492545478956407789967503969025289211261362997560662433907276111679601925758383444446194247789780429448183370819624831492951449909612986902233215969690734440654133086739065524440412315724268464762664052467021153428144993759273761722040107945237567570089772578400170635640933565706120855808147536874037519084034216374145517938502473770943433925191665573982969429462282442217644960098213227886439596903120279175483457727534308288675538060111348375947049412468080200849329941592593726954117099856466757827633806184446285249662067502357988035630060773354536193743044049737532905422444301061853254567768735485514580363439066267334572587390444086681470643156198417012667129774089289197026530503818470120894042862313098717344644844667210142483306613464173504830104726725577527500680046720639525846146309179422458855206599495016820992404229518927363124080575363171839907689592372884475233978053175712910608394308985687250238608756350283333089821105077707597330728073265061252695790657515926017258629606304591813096046969897806683844813825850524312230523526948897056703782522596957638026868734069497686587167468694714256011149527892535027918894254102157116953922151063828774772818967276617466701851528465811086512531612080513883528848040518230151055705348703646246669397896939202662414287323239442810094070180512805103168929435401047588948943230276023373991295974508902006586693285734293808054896236248196857960352114746497020090803847117471555358866076320448242413852366370708669635824892613703711170268107653587204410952263237380451294594768063372809304500951256636131723271540295364541574963270949489094970850687922208327676690765506992549653707941935831314754842790258205378676643902152485557825860285505925165223215260155384422417680205114594257849998640129710408081603954270313917398871527659268041704631312300904954352088657611237538000557415971374621153679930039533379927746725973596527738782604549368211812321536138543221451775830947611360469841790859214057220517222757240913819464596391115830219010502173280585451161617023561936608451474119566693959049238074989897318932948532884372989255449481073768284241507429839077002640891697661320367693304780170070589512813001670856597242815240781030226314085993330993159486720842273639848171987384731337772984431880324161805009143241536528828975146467772877399113905909022202983006151886849471301280514800318897334553220527565104567826030548286141095508209687169760363871011628176671331340541547591767022721009580155684171603825014437415522688107546771325349615364770724030149262808286432439098105750951581957141260881375174270599021085812198978413085561040030245845450627352322079838462037150976590291988620221321699041115720622351153336529570037691339685723065252274489824017734283847041197552918061113694776376284828598031119567416969377633845222678587132196710176681983671125463769475456196940824883497866829823824740283232332368273514430930463800221678694897949410491548665093491307742257362439819549339323480670029507838127912982804860800205312564636466411557338969527769310851421283347799787278381039956835544494287292741364055972325928905606124635363163173731882118215625485969218617436751710574914783742157171594791746768903068636240709258621458849808784310034453946078675924710141899963925135442890462429362226887570676396309553244254617450777702859805286666781413209068174363746149059610890010576378653963892438446102328007816438985053647000425512803739073521308523673602963836652700235478609479882670850087373220895368099487026528188207590223970182247178599758260479483507809155447571645912760248755451424721448325815708782623691852539166830274184363192980054156842769620663307931222036395501100591057723234303326661813938981282133475164663369145491815537455963280632107972366717283225300046868492716241091442384258294451303418982650976296827430143671801684623713473103228847210095994865786185202776103780341563130270529804196776149993234537993418663265279210908794579088543780329943219982225167536337134659786152714813747492097848632533864677024214649148257045121901997389877071530876879632992156370536018201236907855387587644462515260546651091302177225597657758969595654427101285266362008029580648111573815605447742590194508966103807004448041688707840151068833321078954600214601742437236086378671459101293014515960575553722127492678402867583598249982363214621769959521656054820420286912279339354120218405174996240670028848069746916015593070926204344727189754897827435759504713893520744128983306631505667272833774106268712221631913207327028403352597532040479583007439111137145363556759762106738135386954643146050615995798844891204144828444719001456241018511869644864707420885118302311479817725651964480177809469745615076103041330757943392944856059057732171678392697406614097886461499149654787873418054289229892894222422152249687717205116534063573209047477167741574916618683868193344654636063910064629225864906649043806004152835589151943792320222664170596107830298742205058127549400549973391499721043745460079779043576067176400030877515769358952733789502462450502623224579304273791721061199625189323025255446654750956851863799151195026979200261850640498024103442546282008840583959660238544111849431535763567677393699883670529772709639307497180959755161786523066474038364510453126279121005002497624234371067442457019349250939229367039463223495110825497534459587574435198633415146252336231675868058030911327762642427257160489324882678858848248695229513467195633806480455004965055431566803752244870543438608635720281841880184643823243994424192211553710558381644852061928004351464582039239724062869411094327285756896974702110874371483567487738857123108529758050982615638307355018703714167332216756818342348545584392254873714698393617906824902732173697877156049755490588532858850003313059189980930864926311685798717303015256002709930492403660968686437816036905402356129770224940966673041554827463372541134209339659382099234991293191331946584885186658200208512128109765154486057676892255138868025983503095232066479336465600875354837797416725187918083235956704778502361400667726988239608323969505299455074041591455305623528622122607287085721129587055993808980933270465112400047336948186963688540795299138625503770430821536283047248532140811023649619555648289819808872514415072134747994288677790049102934903975317642309377788252319340806492483099535134651406622575261683617560068153392274656625363577211459604907660254781981645633563992714813910200394954765999272733231855975181682773374838153948743426255855592180806023953625057806970160246442555620047782107352409483633819556673548644108503199629740848951340823986655259042114098494452602164254869879820762550714522279200417679484889787925935223238893520804506439019051844483141499327764128264591829719314350579210248329453131803022068291514763344324006160424016881015506106993537584996980190998325346875515635053735642086229887659602833358077935190949463673069614903646258874967425582929200163519092048913254817961295813492287432765617562792533600197006176526881353654234007661756648160394065246384035999947400527700671698611744213697030254962727423134502108599324178407409723456416639229832831331809146701660680829730895436063994261627787906841888633672292909064409898287918387911137192969471366623891412817792922335077539475679460127404117197775470084037092394161143935809580134608856492265772989183773224458958717519628283468559645816344833225350519835492439527737239155343158599395613361919297325047349759778933775887038813796054249242046246425593877126196469799531085309125991620833606016406889797165375606340514213896995261499533414366621621018265750121844783232395614317552103034758680102409142207246925953626944363121802272114890055599293524527816923961777574572475051711209444993587460336448850072909705993893705511207252267291279996834735592894183366454796849423261536799100069422641547123510049603479299047304801659055401632335953512812386559168031422477543450281587926169720911717032910417999756599636460660759869402817543127756272577138274216863006041946124946663657554261395864895151438648502876927968415953919247403469647123195620514615729629626351157689047962445922499984290816741796125216419260152318758431162694362424125283218443821896895204512379540042012708633436514330048980810201684442644422749081067140156394077503924953521664047204119684655150231098514267603357902210085456693399214558673513680766890866623210535748876672330854702735769344161122760904020087586835441948068449406984502629954114470089997555685441460443339494407583743433880425081800929279683442994901993047208135582055922594039520298830798803364379452993055334652651526527297495059504922760975984662101963517260725201524599936765569788359438640894923496435518937579282213964625601790407962967516944606421341453772092069315727222400837082962080493975424999841324298549807925322867718621158305760357892390489848118347753782672899445433861117509221739799667932457590948805548924457275315886408612489116501274290824441475923189201268216177959026435908914893836252402289508433160969464353327702899248548596862081289252649391302588061511825830168344848247650229910667312255179414147169112281368448217671954022948665261937819487499373080375926355795267232166579071054748701516458099760540263093884379210508441911235244919970661394306713011679864849100416747888893404437064243517402110721654095452873265553963117061330692641309417778373082051955865061342535683811218438975840926127100330289820511149421077510572663754842011786110601235892808860196083391211036593930171426639602164215933418388763687202367113305695308349244812932458752259054985062675254369108865358645683503597811006724001476849140077168348979039536375244293131105978999807339696822613235658659493481316755567001942405491765717300227141716634021539328504114856089862779636742434229372598047983483677897633102011183780780045810909631863448195760064435834314299037663694529542800387290981293335075402827789652522491244763104992001609905664770011189785980382716294519202716966726598042222180161202316742191320884155058258075942412758188339346316471642772456753271065189030880910866186387540531015274786179834425229147161198445075805513296750813828832498396066208025367069884188437787261092682390889200571128483799077061775106975960320523603564039461137096833974117723646795855125302490347892182582303468976193063859011215346103907342497355037255399651092194275400038968554527743589800720363944451826276053395822786078816555169175460357624941526171910991098865011356247649085433854732795367286038555810159866015102406736798967226940438728329549905754667506279534779742697108769593497163513582389870411304552738374956804237749272165102294496247877635331266078036135141012609279449725365584290383116969153993978247860809018451649366291798355599074266903051584622016583957346016446984237845508856117090235916886166432444198314785188538000278534748278201203895913558602074941074471240564014084626135414524588363590178514812682468350646884429796330664103978810275716180528693590348699901036848888581009992626493967825313601454999924855639522729359524818658291842350290126246135909577719316280773757228252593916171287750841364492337482139282102432397658292268333777210352508735060225314897687572348672897760820366104514021568307941960138379269281271658541033228744631833064600295150153802611794700210552518066204471448542309400069300665366653894553500283901076783856078618684302555617221774073662965616300086733961604620326360819952845826483477635852542561116170069025667448222232487411718929297235451586986738206599450444084266532330934404117272413931849597011510458641733101707732932079065383258258938726597794033841885340061987233755507173545475207049640251593591002038921726843709149775776311934964142364060924113556747839277153702261787072088313608740926152653185627681020049833554572007917740358276529784606774545438123273689683915451197761406707223964808833995143637602201898593574003510689426996000581447345049524413269917986837916039624290468303276092135979824997827980675335948251847427214456648895787320947847692437803288137083388271725738535103437512728511306662175325549662423540573539987638121043666091235505019383964235164395065437047451194467404218747301112444075187389273795269833571072704038987066154188960390916694517590913027455124856001696806565101261254401914086383470389417977127750585397276293434964751138123217857248639505452403742268554142725838167164669210077867089324106748084811356602318840653143412339523651864633318318424394331183336418575096946415233342432533130244335505917930177361669297611490834202848739751001064441533403601174609362254275634445953630592265135822975200363372426242138695722055745487668207627231399949139053224912122641142578595848958750298783809209392668614572573999719072273528678133943420264925179421840902925098546581951941895874267134433451729067843862162032693982202445193944125362681127682948310546518919414789031488244852657121607570998424223921989540693995138473867230938632596900882402906487866897238229930995083026007033299528476380153500801741167082566426892008453352705149443588863309434932653943407130531666335762248998415617724534329854900249421277195198088125103979629949654412274683567049615567874494714862870606306257468948100680086831916316866831339610410978261193310538071241299918708453765677442727329777527915463750878275673515592917758292888734231548377969944716609491847733417025963285864177369711879882937133157371684891275985024268940579514076162938112218767191446693235089709912833386327571809147932748525445744713544200914536364860539155035111098550973928387683939141993566539040846628796890719269396797996211756504851344835578155693188025801445861646720157388990265512301358114063111486534307318221496233767902842196740476352583742748503151868495547733164190360451711965420334635654582908180088294270954790352186561964462844407995267934413451876811465612937807881040608500087410987743739768600350666007754269680734201807368216944538386146799426940973014736439918892674201451098396383272315264174291995404451359585034684336242812977703995469384415119312304461854857848180164076801685883593866270101886152934648847799173404608103124957789779684119805240470532079639232029367063486348951977623826219025983251756602481847320001322283190980247230565019819928100977860588682939046923300224881045484957108394239925888959578681330896507556836448283775146066067164248329078984971527947307542296307002990848588292165119096514467797933670477263941112753899941926171110724411319276103915635256497111789401731470498612281575854116099452609664063890741383212908725087900261874511747816918435873687539821720660154866142595607071993708482241623300439375237126463706625019904920812682902742727377303445958102816376180473088882590713022632147598853515027318314930154471138204709865489632136681224626584310677312913038214242763084808220870830729083403008874701366441204833562400534736152633062272510558451358419630862759373566138666524748927263380973941911312231420134587387695154528327155160038843754808832331236546815103665672407200117319076851462400305710817636600692738405733385952179416861073978196156245397520799374354920480312891305047105172155426955741547712055847199961373548394246999952002264599116774366433808158571647944288956875824212837125863866428781027581323797880921017332004535254668443612654059741348867465099463757437112309714482622598137412931988461237236705713563540467626328950186159514444257555879812910814252979293385419106401988548724709361944275309691517453640254953470100167297322303450354292026785054383636783680817631474052250236467162594378426550796102028603307323310191963831584018769323977141694830154128153815843388005463490331399494124318151571271656803687605019162907011229022723862797772982192926922647699801752498961075214480737380562999577489050918508211587854474125707189635570741748832903242716941149419855227135323819092065922793040753047714756623905642828171698789966421092909084007083185745522241255833005306179464581065520444536317040835953891814560622253007756544577886699839275264043461560618255623703419237875202776152334973367132668146903118965336897415778480347460639066016602937499095083128680566914737049426834393918584905529857223361274954820130764349067592858622597256997686788541475144894036028353046571972522744947368770713279026503532610169046652933592540317258894153052645099992388065746241500582871206010553005768330606115185483044247500471326418127096188638290737285737578076981987103789412503796721032551642939852573511599126118495188681112978515156768908196210523317377789271418227125329444401234183724198759009197240447617570529235306868951085100010257316233060554635588203646016661046957039039823016056432540742450501432005122951113794778875591369624482837649272220473076128609965099353031404060358030271926156828423921660636240149830421482078997086969557044787160146287961365145621115640290636466398030922229894941192790123440196973218239162159692250979561847892631289034727483733913231950149007670587288844764600901825895573518044966726410964768059393605344204192272879084589330599839540588921109710197685896451532254152541472765690067898859561976040177068643764274578555597839094763507251351635492342640161234677215645130759804885347472501240254291871844795857751266268674706993273451065313086230442390376374858698716573336202043835977830490374859016883507112723749847849568648444737941426146241836384325721658291172389670399799204330711615874567350689018949602901599884891775768872820762696429119544511312775752899348179520414212442489909091795995997514683792330881526601928668498341291231256672529700974984592783344920426167112497570237709629105836790651526193633419732857612790521647748161277867650562849970471491293104100195346652220902141443971753862222155539823246153629219815215873525959891073692939591148826074320493034652832231477649194005726983690162740871075771920679746023056753974433374406993627330172711559477235104772193416064318801728249468426940615240985089136610547017018573388610430778400686442227571672995151548378317776402910671112649521111070849981694388254741745567260820454880254928895896337776601539509915856813087137191135419026982559029180401952861526747653307284359459164100197685233945200168576910424864653941246038293507695808008521149453688382625013045019327988079824791952479939011947529005872244566594341362789982808940855183532554121678230418621711242502020194684545392801033095289640573192198700930876968812174070475275848187078792278451274117713232654077068679514439840861401114582489720206361697908275566187713109819827211532860489868052248183147473853107200515840112065931279334772260027770415625843375031931749888018980708944642926699970280840860380407921768689926434275867455155683294084648471665347662572499501383856499225517324341697151140079150704461978875152731303646835440722476022957018155724611876181252665373475515640220593935722597578207068004524883653927077333515369579208575580127462914820759758051086305885050455509286132182179892847412253113689001007009562408836601860264509917037483126178759407863791073813466916012404535344026752871220336376403105032936885150393208120286688543001686246969286333364079158373478150369180360391384234242609193597041023291527217942420296109762537700891723716312672465697987063926581910332515864056197968371738375265771389642479096802033744746779367584796758763435510500747647739637364264081190127020564969658500016175640003979372460311884904265831389002325321872292492977081791999221847331893675855714849469253300857824304099289139796649111370980991139981240592475684121252020293618119474037234670497960585887778933183484558296192698377380793129377956556079744891469944327680397328923764431750845307823274531942867321339538685083197315171491626871815396136394588390592088401572555303141986169217008253075118028905701694958046313553996123180207744995776732315366620443549533471608488577957559322665486454856438554852382354796742099625165907446803030475764501061790783724667759603596136406217639685480157251535270882288125066611342848813347737245409186426609929945916156311766081233404461648433565126612070013286873517863668575271706719746343135875668550349228480004976578503148463209241780482807810064012904829977687309433498443194186909287314098266882486595261558419434380211617683984048811714750780810331159192820386663038307532840988715928677875523029134426092425321155299119400197534015799140021192375264963983233370777091062744529206182954323570544292408269899329350202897288263279019183140317879486559113283905814487963703189160865707651221256502861429864120727324820423363203142516193435891852554318897929840398131184060084255954237273187507991202083426389187552157682916996016228181694507486922602282789622346161569756320373692054361287904044850384242840783965970247044319525106425247411181070129339694499849593276137621729176355795521940403402977540099658531078143110329079877547256017451969949614094830848245655226675955730771657289169165044907831276778890797932954320221455332102816084675539613267750466444658303889797656172240786868205536874658132157698144734948351064919248530006866679500624509905781245163662214810139799393560540071684266166773983075352481969543662094283759883000366638524784297730682324980173403111788401716420915522880009595258324563033509021371006550399430374512434837626286137302940208468946115028044679860857727418946403367075472336326334034898180027951542755969131646677835217275968553103098365837482438024169689167893377870485870978545909127959856182440822202139030078187201711249657417704193354422776007033315470200077509573794028654716878944351613700953905392773760737915591682925119934365671193006008619735940228854552025248579702955814007311449580002086911812463015141220405914781530876269744161816031862153145888283959032848582094335955416490786066781455469543415347113746314374893125706847200663155391048430467179096356486172217445342634401570307956894626546407944307791485832793804845513506666654580422856434249126209064098165711549716309576669085674780404214820735816352961579461905198565150243809222379070102116397377827352012697688788604620920223729431016546913858005460522556464972811914165321913455540995007764625305790658896689552844493458956533672392562198452574562763275253825907492636528167248632275950885502106630274838171235477261537955494093006228525054486852260674585281790898751359012189406222919969040468654037998016991632286995995742607194838034131073183051256946456376108309747076277532116272830586171021943435277593599211757928756605067951777999532920258269089338059452175958544075715715579776542932971455216944316064839129798057556538324009430333662737654390634403908694146029511229047884525660719511798426635964608123424669543818148185470790410724063221292385380680686203451432140494261765663864837081717812120926235177753190366301204251015380302566521286810283907003646896613546232253559451035670134821719521517536454403095413971673294070447885984215847708218244318198586977241047984369229339230965433051956220741818746381998237118171582839049211335862365649289482091282551830387394803204368193410091987994216254416443913376995876100835010487082580065953151508481315646444994462742060102477898542103017670503723246070201632992953682412587796575115961860193548571501040801857029666716930961423859246864676197061267903258655434868906401313649438667869507412945659055987113771201365805998677599437723295429232773855209139756213976038842978713762804868067441509415792724043992329762075442733563005396554785732919057407445103593338687419509840145362574661798738780573326068300733015151032460721219413062115653962235105988087080794174831675442617532649814364444974385301019205956652952443057360632563334282071842563307532025385288873097272798190592222051922957176141289157472382338974624979393141604691054466508092186110801868434835524747364568492682350700998936998658648393832454134447121144971056911323681806453629530990208838900076347334784628564682387648079720423430165669111616509660668029468142404550081297701478175923829151690531134120598479531297039998398302129143326575266566869022310331721309023181330701435261860802875727971834543538969925274359058384312396955940885184649284533402613476469266599233515224204357032944753982933137500963842383052173919783668631102014515036532803220344198550572301972282015796385762035818045245741956038611114840537138030567830736145129767153972019564596254908841519322975584796930920237471976109810544302550297777243503773437920639472467430920343182475873388442488043191809995164950594904275893846845589388890195615064532943413609581654773860075036969792515817592237009156520277250400384695563372810146569406712073377760728866299188134580918692429095577771763523503786712856794003847736573532867805128876340564710785884422055152277211441144308425491249918665353119153291031384594234140708032157032014854356594983713012935112769845764588073066249302173780217165725834200124882962574515759530023654341872568459671389386211639260941816824921436390834949921685151308593870676542780995080721387326466391968972838074419869533526777965604392501168856811974569503730251886525061404385510824997132054418305576324959190725312262177475740789860926483225934568123906951705230027603170847095198289421423227571961696644529359488802786346396280288606900599598300324939732746456516756598977477210339004489506802965330970674655388156224413827437706516434527117939202970017687050343712849922345235754217344445231995493690568371302494133879046923051637708895013015547558930591643613519140252853300532556452005918491947086903568796298704154385343788816556882966787540906962349935475437857223891387668789265395618343596327539652950210028986260947365278924664869380708823977041298564226563748642308152128693103806015871808920392484301857193388823648454057253446453651654116580013752324993848439819597480641019286593779663742028743341101770817278401787681517588529991740320968554527660434098004438294206393543213745178529280289642396288248037108977247769553705115805702407176034650621002137967387562499315809407202248614166690194605664360829027349849499338995462463943208780077082792012593463625902477746833208967660329547428195085454918672486037712462779236760007006955846899043691875862171074834031313872962649461122503361585613108673650095885981882919245981185830418181036219430578436162579199109662904220130752899096193810682930839490653927908292796797946547098309729097207722405657929473456318494893903686475965581173112409267070750439458973692066018017976576461249566787414530123470353144288883563700520264378637009922017789900802108506451309535118437730924844341144654710972354693380203452791526569145116443386590274397496183244107912699440243319509364127042427063262313800540361891438461929727546886411427455429365902890782604264812600782890332377832134183938698081954710899395125920190623220615268797730989436320961245794290903793490821421319509452678651486334009850318566749443431785793994204778949375329397506163579202825365544879638492493501317233613262508767717725831286452320067899509854016141172024067866061033288826036884333499671025671179365265528986093759851621133149059688664069116751910753167649410030171230972266290237842296775286772625346553640443638749647230436112512519586391499743999312020021001982188024982130691799058268065010476640979757661259396178226587892056869470785128536794359277867693387073161791301768627749499383755655975982067477699699120513423705302558231526305408102304545154677384027441382480943118758960842956075526152565991729687741392420156116272023703165792468829142933546739384863060005750720951773335558383808907620629246156375645511836158506545833712777728837541745989345285514001688324213864033656208141228389306317490847515068836837909830782824589592574763564257138512250807095016434454999899798219322765648261483797122585341038791064588858705063569342242791251154633545697910041242094184946023814088040596158035414476262412464519090803386239562976325422127033036427574748085884684883154490850396440812921774809575746369261949331589890757388142367569038053049501310907028461907347083416391011770907820579889115176629642750033014365202184426129031209696413878439264989715988413206071500055178533893909288319113173378347464955188104655782572543201653695849368677612596037266447869846951498973666997945852152260540963182830701304925197846692915333781143982316555149788705612151703977135679847791556921794301036021630308457379839359342741072039700965343704697350877324103990708346328052556615483456725190981550782009632520732484105143346815455660640073018619691941960749543499788645532849014202649762991360698266642493256633511127957994825100667762479634759803694143940064941561212178781746855559218020259001090407950048108023107900239222627369237726618746279011442435910034442172516524467751769263946801540961119590604724505395139232086848120186724031699599940610353651225456499040994157378940877463049026900896239893963066334424992999006853923820126090465117576862005848975796184286672815507388791207795357838659823442496655976579120311149236150966309096398690520439117598487074145347994147882642860323629616725276230211069639729127208399601301576485646685769408796959360027888090174836811192826048793112191708150754600733523188459291425838593902564352167690892183852839449980132770644128887792720462930646090769990175076879315264020327966187295246633653920954920259145855336666192593071278671220460635605245918563733056288929234427693972717528563311940100484565249132442996053416118263478803235163638583187688052170667565498057669125198631157270097287692339830557480950233102929986290341635703698522679440221859889142558752296609149508087736202759495620821526514342880508689602616220474423493516291189428280865343407657148188911217122467012749456338752956115779726455902670104408492736749987060282356933197317223674799004612174595159800869543765366388467492727528787697523966975609141899430255708503060255431979840630665332292969668030698071984660905922986296006947094919529623503950810256356009513203117754097745316710630067522180971444204084357945000807493492696704606171281128664610556475850424073009096851857890577227717735882093820529722002331810540954503376999617128251127453161511990393690717502088833368281972883438881563716231492965083757475089209301237847365148761669700076495723743810790238368773009639070632604141883815832215766113956817240084158001104562657462568680568948440040377684404883207237189399986623134531047108091510371221226496965322007917074371535502303922497831495240665136767864254493293113040189843585732086723603778083600345992873638468591587308497708859840875129886657551421735511999362980047913892039031738956385671120963364086813201955772771388388308116394465377901227884352718600428104959109767380072731047975190523975785004462644053016146846805717898800496594811890726173488172979558384550544476800237756598764047779821735434669978992125665942235082649401556308572030689284487921149513979091020337863124152731452869861611586295074712765716505673782205272740433988173551836346698182082521947861134455478164385928234055389377476312719368699199128097692362364033930478040815324883560668511586807574304293371691598530542500107701749993855637404818149571938396284417231188313539318381189582520339661806042605467438592411928351140736720085116616176336114496385543464025260878798292772889682462034244525545177442456319127958454493847875188408994976236013393168934759482711514371695362595544238171394088987660572939978894911902692629075279724398663067846625243368801766502367511232362512614714628234532464535604248401512592247867101088275616372614580385060122433045793919824478812137877079585197087805883575778021877656875959986322023445962190670352905273637345487402349315956897167741380671547029896053703242026759410398532915793885854622774678791265613731276861403755840832910677741054312690510104075199201829384440621781137093432691646829565925128338632589224486853684225789645319952814313334620187274546696893164086132481734054880656564110039783629087773134509148349649251809007532618319523865920651747302352261334023938313232247389707274622615668839601279559861858980133069967262989654442270597792274857834212605601835139445151747166345923564180192626436392501119812301814838585652634950609303502328110982723426153009442689382411944340334378684154211789269449833683531756187190296574039507220322886204795036262349216988683672668555714055798740491990294970633646566516201078414168654404876667840878228665465931130662930597415038527704451415080180082263519314281882282000348137005652258489796456797347705894226880073529719030050255768489365399118552708703269137083407339027785753126261587069293396886813582062775157390449933265651196281869560659750300289749592299491007268331460371657117940711780800477351834749776038817218207968694887177500011189707514656782534698904412166015988104793618706313601018528558960350074896012408752660620236290887065995371493111567889358955552479251373107853932564366613691335310476423773250356622603716497969974923558393709358894607331613507809588693628074013227593451392696850989809599349101847861664600325116526504386541523908088390227289749539329493599893997286927948940135632911835431860838059297379088438549657427964790392653231459016838578465527350380234265421188271421465696434785042588171263319306484085568764701938193404111108129846007036268620974762804497276579989481459560784167545580864466222018344572173733942061489159489457249620128954624246190520198799635615486154184067451514779526478449561844394731402173504573107919436545226015675640343085776226889366448701985165740170013858977677345612293183581537721430602677337822624027887722280477380606329879426451909576026978118177389832046318996232421650058379185544202082440003205501470720961361249275909028730690415237506336486799936292924676835163165164125730372967824202438045306686911019639404825654557810864925796460722714046221803106171915884024219504287975863137193143239255189118393376990685598856805359836695322222508160438183502007902332798817567198274752500328073344649693272200508524180840125570018135582475738800459799740496439283604096948511482605756918749758830215795037236845195807818763921356971347615695345724819439758270963807214953826335383597260631400904427185768970963262869409587423184643250385118039731967031469223212076031372366898000909431351367693873133122410585722115193863260150401135809125749287941009465408602814318470312972464314485285476422664016914689937842090540677012766884425480532698110439579231954564484998302300292336337589985686940255740067148294075272208430137392191555260232052973666027766202170229066623866302465837483087747213296584913434534903164357150068085346986766070457832030677637062574784264513775825295383237581703783204184117649747742224893135824721982866931203075243553136955181517500820939835513359111721291200295001519013875229182381896072584238404835393861576767943206948174694117067376445930023045964878618424616695659886364252933662715319753593544596959910156942960510089010988015884555269203577254920536302587147183607975149622964847183704633098430648039904427851946156660169415672047746208478341138447195263076970219086392175693043110055150309089684984734199618751461038938463419887584537013297295538941798034185392532758102247678588210790270303272365961310690742646736980743961473740749438985403900641122955031688221064397487415616296841330977862637805509159638625912474692542451264058314429712821116290003063845895604906334904664311579327375716937579528262688566002816362292765515543496182995031647471520891616401102435027425166108183747213629292384725071912144957168647603413018283380458394480954530803515660883966051668170711348055759334441695336640954953445563513361334789421598155639752701359106815157782487692229901643281674007031271325515604941008614810229756083858852563331947755535375223840470581246391444423241308211932690639580374494746491521560939568305554674049170322154673625439809087421365206296105139902744246846505302802695266060367178564660564857856953186607060715076437088706982680908770565421191116160406433619489293008584735943419801555826696955554655932511150709245658630888136170709983226770445432233876626385269261445890118608656811578136915928820004512342420963425003427198886323988187881687508582489994999770946687577860820519397234525814804375132491251998412989791298187960666938445371688028360162144999778176100188003951446780673546967660162721557878661198133822295018729842537330026326927549947952207633178360691441527577794535280082060525233004717776809773566603694261805821409655877582312780826494061214770455767773707915600567202373212446334364305823044270051895970002361334824353104885516006894155626492151165197102932079128125210108741038127264994472630739702443375356366747806538337590057797919050093380148511843572289632971978824176804312598987319708705202615897895792128265114223108305695873391085246339808082074435176657969086939637173717449045566737531429950376514789600394385129289514341426635020851746348015658302490477395349434425504833373986535707577169279420897880664879816843853623541854058865727515206641496242498985684391951889412503760899121835709176186561493232070094329135797644121250500192068604783521973520792552146748664503741330418933041879993686269857952075285277572930410953534100652291879229170448108002889466733018566374495091023719708728993959060359017302178957062654221723162933651693794382099164023581853173049860393888143332852910548004921564879295671568587119743283423009547240148018454917825748805073425388156500134961829916731887725654954953817291579163333405084758312021630531506315747465872839042346566324060819375679550975947814370916487871371106199206560917644380128063565535444374203878120695242234515416225287367647424527712489825536983717919784448604719120910964646469298368610610059268820657306971778093033753460652381377437973902620525853575515861927081516604469901214586249928949543447678936194081331765613618069492240353464291262858298511488346952485290690500002562454014537533736639158556906851326534949126391498379250527262353792672236848280014447475019916948453906353436027783921619837805487213186602569769876180905077166415154497366064625412244869096236078190494649883899965926812611541220130845610365243819903623607629601824611948009668417923575100529479352165816799583175939575790113868647087049264834796095620457072565289090558937984221314155695052893287052083124065706865047167338027471115267020595001554477343182116119828470683871701902742610049628935534950147579651588597149600696240505811641543869019896464164431988933176218360364743045874610900051584266660709388909711958391034197287037116016425599678204617228067818474168853495299881404107165100174728666153184728600510710308481129942710817190858454116699005121170600874053505099012638278557749658412938241239502606200456244355090553735570039857648070500353545238158508431295649066253529557381755595205413603576990618720752323296529963173126589820281784662964787212189156961303463619297302945911498693848994218447375047265364139833565412516893816740666227880408926335041747335007448879401378919901169324219494831971260788473838776481992979062406616218991082065732177149638029180389230584552920593061785012130303877197397281436289410041346679939778404656250320367884178189163938246731699795029624471621544049751673367866510039385101462428583369082419380756253768980728941729378761379423278765063307627292784903844274516402895187590069540663304281889537108438880554981366990471543011334937835362412395263701402092088364890277380493837696498706237133350368990314265876000603594259260404747778762150004072075976744477930091915443433495631492833945583014880539002706964030590273142811156711590205462548115114352446064905850894578430549543332281212580345255740417511688635697153642750932188962800513875826117887213199722085258751357913290862683551651723074168791104066797458726601975229135502855817343744814518741238299646723687848694689555129193062516629295488545033371296445599952713081665420775430294160851345803970383814263836211135519637851942118716917273881542077316427189179312244417478499393874847385765126723974068027133559484593760164453240468961215511673719936734204718188267040231654951514018352816169141476742664105960372283161929416693681085309356492614479110586496705448336646718136623521781147291865426903300699777565895050893642778644489411719583113042735595835528019906852874605699362610040663449912219238899640579952847395851880450119689751124563511476220043844083944072592758056106386658159273703879093723287849428564338415659660081136183670110642393571691973450241161433811879444590629187352831564434850364285834232447197252714213452279004849842135919297631420182922506486101520368755760536191637937028479906515505346171601317677873064299299407501456494134407215187277114837539696241033661912276179246495709610814909469689338610615543442239797069089003208896536705902462242196497819864257587172234827402739821884753995872897376829402909916054813210267097208890152136522415602880534646114134295385571102938986316157593394262993848418032087952091880061770626468320218006653554985407561691838213907268459551434522511867940428458234793552050663085956727791921613769737525000154488221574030940676654016806327468562326935021445338291406117632043225264605928430605167245872854924566448904409733197389126921457466056749791801806748628396411459720126461174093606923334101022847270319760221121010507604545407606493146755929796862616956685150174539937957021089757784483477829723076141289355132615458073452434903202670302760753940705244123088044534183160189666758525582646502595440271042032039502026759472688931165851573205155309147444641235510227523448105199294400259185163626349868407415848877964581551834706787271918802763657792061947322188428733137297020743693780944612035453464283210661489403187653468194685156652534872140601354113124778239992755667358962321198224193807494961230940879474357509354354080477656556231537381080478279853607948615288923194930278755359031145344296868667166689219714859014971683724083848409973730888042100818277309923858726465225275408597844229491991146537859859747585961876381392003863584740932722917918244207800222829707781926678373120076876335041740126487358043833576321251115280209127839191336771898899398270784422123716875676575071755124520329223888607139367189873009667891924212247751124178984760289710002842624157454300324909410439592846378590424750717958855208414615514823133838968144530447921456416560796146209839970516680253133593035795500109723672638856463812049909464336285313977495333665779964359909590348078906172421187791216126968042071989849432611471533597217679558385399228218047694278327888623147541534901586617039638648304502907335336639888386595902950380075599448854684530821435314693887450971485021953760200419769323906527688886093104384437045440998101070169072081120232022072545541517496337276660071756698717786447912683531733887355041003284932054618767440515414707034018025516424944381598984007162791436027308996495564941186840906627367505732742081056898962604572259871702645704311968338828182463975594654025366937202937185982135862715426462118337680313827499092520049613717264790139458716664107820318358114953687798279299882024452835374415071940624508116212746474049632079771082974660113561347299663587674284995811458063378497239590017564502509118755503223387997091640816306550698269093318424028449461903726421898260065352746081435460985436594769336115209661708249509089389831703207568092075882522719669704902616197019697524684702138580396204146960194631827411543817834913174402582741557572474622020694948242566844010008596598132865054804089512173226618667515938613991478845574640128281501734817291873672291925048151781070158470633529243368174753262142296295568976551067686772082852838546114786355211065027260027084775325824486492297237574762696363831360566855445178962526244087361358436180866662035568311702952964020565829022677149810373120708653231995036636658685410845149086160295867181818228351359923712938285676320363541911593447793759230404445066297944819213364229650888141315460277993857345876335067200298967511141957995750563568026937406492771874961358760967234184543321997425931073067972751336110939250517373506569861281709161689369777956043452841288235232613001552925356563596037890525154849584420987155186003489884663787109136521374280542803642232292927684806167015193749032651521421185122469114188797610138150786184761744345085150459898449543164451381552169802623257717937096357647194970230537894080661696656257648552276474803789521021460746643858123021853469077006691284058106178699268741473104487987532358017842380063983361963515437480287449449609032791822813455166984843022885217745030651741696238067632065575897680551754944262475988321969078015040337992747971002701693466228227398111261807403038404790403111644646140727255909743015328881182871539936263871059947727821158946294444624951789844904635444446339293630595041274644217343750814926483502606271022274773072688424033653804518506251824129854584244679332241351005238639749522645648358452519334871099901758582497294081567044531801529337377886835206706137751990807656647101880974147542091231984416172630279235208231294768221277483914438135338095816924763019879774998696379681140918827104270995827189420911880569904028818639774588805781370734474789179365987697230043092142871134263517101367023189928752338261093698210018906142642079728693941782777695200327802487783552332559671126606865687551595918308430469997628131436935732708558914375180823886497768062984814700290892036270633151719851822087539027804594626174571636869452427566974562888384057183261337453721709655450773073984893383665159380017824141985294527605679635818579561625721638977965636354595114928447420975607654333598443711609390180990044302639669983816150248682396622965565967807432852224168337510477072745772704541310501471989664226702906582261604082900244048084892091839913764004502542329060066578248568545803477512218010585615676596604080715348951769921551143865201567561382675583497209954636830099789524511926152629234167488578865263797111440261749550329081942507086040197116487980286770230723591413769858812884975955405390865691978826214713731430569120793589301768251437443450987379405529525697548241078252138933390514334820394457982062018330843341547514174617469187044309599079853994450848057102971681716473305230347773534252294122297000064602251174232839772053822295187592034452511050114067500792046334893123498278360542491206702300117825067049759181315672705073945898095277123443242907250268921142244503860917449738084942605433223777668562241817479608974600018722729044799210803776418290456255194844369239713316531697294644738817314228366758393969205394914559953991379497200045922706159596866654969462323361525406006701988039696653547797713991556943355285590718019769139037436924477231136743153533586936642738563613697671426576913250027033092716140094630789564377298734793510337934133461123133701651829228258626851036628801723942066695367801977894915846410224712749237790599325283668409429649106377520341707743029357739592357206590931175018044476272179363411171482760640284428074230868911660333969796770302133138753255664547492042699768608957310102734899482667679050286477230380647331219556363699518037767919232766638395736960643575390565649743286512204127857967324654280290146540204274513497155690655268107043727525547055197480808250570588403478694502144492815697605682578715527401602376805276896038082258445215660561225286823369980292960795370835529309690169755043309278713532842375443013594248293202247285315861828533565753444592392766782435350356453684670384755018278211473942232081239224224575489542053514880810708063329750614878310423963890956052399929670064418702537645006071764669312473286510062467730970286480693933803344758571206420281415797510930992398158407905577662868355798747597418840988067539161943377325070895466341335810833218430749109315891944827126074511077518470189447297262341734656420426848081018122491400353484042438995956924611505011972518411682230990895254769248202505911344543303515303829359781265526303127132104898718948205513140935688452998811533049486241365501141703115551366922962819704126598876200219929612713696199700150910919758991779683696582349666154874783587906152052534690140790937048978526391760682349005183126296705974270830978837076834351700370694605043529571797103072081771469454517977699805944991370996841558033419578015150520310832311774354625365156922651434188164797164556665440811223930963578846940132977783630205289166140380780555054599354663227946010664442536979956226042976209434064163138734845148963363376841170144081412401166846412168845734981319150925960433091814113940917980110977579130256019663106448788090734064352424329492346776480631463877438457530536592739598660581312921420814695657275111482364225019241516695312776095078656861047118388027908710469350508943242308514754670497581343629212965963503300404922153463035607216090630783211783538525811818944462400562039255787118396206666140744853960241986091843157928331377647849414503878116954799938796326535408124179053473172258062552727776512570395494222471227456021557441569354212948254453671467243502781879607431383928436997109619014945297930723257083813534669010150814022613146936503315971326929691258895031272439645299144103076437463967860923965012409242738087776120027438477549364234443769053164796772204032923188813997534227749126347517987968878911687282469477834079569087237354368250354361818868046621995398105787294920878402687623177238158038160649767842176571322656312794666338578869593903242787303765645553545854427546789046533159562047891752634693261690023762695782023063118907632253035688971530177077354368678473072070102576947822365668121540165235588624612517435917718373137292025941872413899001347543203282555411632068401960925172621025346088018924609046429221387325936045674020292729642853786940876530179747444539198147501274393979746099528165064062557375839246973811284333254605784462064293524229383944292690540458469108607498146138870090792449818805852778278765009479524117419958993640519180767022404459057605071611561963809899209443063889986902732121148235324024142481472154228010294971318383519222994697972290458460692470306107625149476309787785741877485901439804209104768479378579557743393295513362533825834228183054059014701667098713053995781700674257131694964963316539355449155479351963423634128828751363283706954684243342958268586533919803285633260608689799359899972753437589473208160753678154428237446998636029507964859559455967629307076897714649050566856609853823112488343210529907946097258053257260821452480107088324727105795860477066641741785152858366914944299145271494221831381265076848788707165809703318079344865955538467362412172794555206039196232812667279897173946142879004514968416528140620496306999202258286351964817291218355777619692292792481711918867916909634360686228327281284228054623475390884388563542856960691300790273247501024622916792864969209630180807699336996098891382792636068693409216823906197279112668757498227275486656915828459919870806550799997689889171614317632015518207746675047360396093016384994420206727025430881855649703164507881733170685751597429282295251561650018880850562451416545058789932518071063879640895054667712815025520417328863046863412819045398654904473253538996169925131121718736643218748743465521419657712125441816701985038136318072396972401572090153336972721200839517140433546294333671109776780956728817100523361009149016875410959958731184306672791946279313745233665237771921784856597338075404101900979342732281840560946103972618877506959604807276152481721859250628819719311159246301133209334628198527910934882835242741668745123192506154212112028869358064621307982048051833591697995021295905172494873789375637095479037512049274992391343852379303625263655258879695218054045503485119295040464783156004419693724734656810509989624713674239645364030322597823595315891266379145191257779569650605494392785709918366011138233893656173228771637107253180163600476757056728133455369804820212770586646016652227157005058669358741110346351117696151955141628995996641226116488884556321745036366774047020010397985717295877467943150203819881820350991693557869481371767292216074715274214279276014980806348085378906648220376645173589080334799608496998072469077267525628810157321096441051575050966312930351868224098780700559808039183275772371177807206098783125512063308966035353194463790497351386379303986375776120134750148753360668014033724805007226995207562646329533626197283385754682146135870413845772085948116729304462233244455908065762417105507711950205137503831958868053001500560438603671641455822820654002210340575226792877593772097298517291068159659842813332575054123375302994235860569121953133382489258108576019567241007135439305293431971262882960613460396442150872579681978621923028615370609159296504275540543501077118436146806607739782401808505216312922309826864328237532703951816091456307788687147439816724012160385843907412068236910678263332280501241205197664464125836248057836541575925126956257289927253561767841648846160518476625706573235764230768925612888231487638411005100316452065585674869849726869806479769016067783948267937887424168524057073816203976819243633066010926699533819714667890502125531807511493005981761124559328554059822971241694966266630135865770160759942610844299470195421154795418253228685665857159945793743055566649519317954086088114963082171155519729306767477872057409528986451469941010317010526550193411003797112685646710694364605306593256354801746903733108801717314394893451476679175582280445408594320170308593712218865138032681970462069081169679891456808338336164490125496909470192548202286055547305272046975121155709833043055928229923590027330148680753865232793331563148652554396305900588754524724854449398774503992067933280873818838552167583862195211777647413715237923742260406760240581636624035075355348081298462905315241146697070178231528007142876678433211464456025763317427713007572457281224921220645888490695697110570499163493885341275548498606286939255622684567653105664217991322020455597442651098619862432739052731057853614767492655314414824263726902867409954996178911550540588947713813925379569975699486268523432770490544840396726697467835337935525329009907493597278539461120590546128196653666937982497635351239454064372890226281062141736742361520750704960351517067189006705651493158819773242016461268667622606017707864685304611396350410925355474135069502382227092315693612668425760327271551681916555392779945332433358047775742645144229382860330355757976498396887725143087509437521065734869582620243440207427286102096080253391712665794023794789299022721942495015419689685139861913078066719967480350142798109129540599771713041303105419323713954328384477753759547668341587849840893406539287841665245540282223879365639183499127045315656663640505998806029144607719148171532817866938563660711383884596106077064679444232431752655854748711357062893603343885580728434736099729607577333844035827107816541399459388843355470717545617594942821960503470635206943583433054865207468589177063254375549056001530968572812094779476378926134736837482168097763835591141836939145960543672523737880972057036299796390169419115608927553749784371926425043874490055724436889252580241804460869843039638818716997216404217209270412501231524906633209470465316008591896450960370242658921099698703735683412296991852909121361071167490943886193837815896080971463697458379677800871277811373591035390844295153151535650247777700590475893046406607468198147630065430678886485460837132491057864379605690315877352629897269956232896262936432811714306939867214880016457804190679389741905666148174109251542171476819634039144921219308510772597968752441785052771822038102859961483620104458000500598153085938632922590829861807104052345965190649833719626362878226444040773227628367131573285278075850745002200970540640852545929881735130618708159710115496020969179921517375795432797018678000809730374338199682130620465222160277658136966816919098380209403637425899478396671684793089580119428728148345053164481321192393620272111287098229877436361658143962089192090857169316650899084683575319639919196941261917059959260595074436459998389315833138000795029223622016691908234290282028347528225213371153632743631889249571407102817344033849986767663416933230715229202306449234566678422163898828115437482239644269020269941483808519480279069888161216710879931462052338635055043394706720857740151500876903718854777788730122319757620770026851553123623554683091777531901919733974117137343933000583558677231933721388942720357448815732585869966827656265152656307514035801698454265554950518708313181629519835322622800826973331715564137455699484841318119421080280828655076130253508732025633570835453526611754267089195726433775237436744305319503784655653802472326149688885754593842745974873731553730570754759477326507052029057494713909294574412917944509802299938030906964982992221362422176396792571939777138290400238393204431153475632834853618328081338536318508294156067970886952652013883420786728030029110327926837215314862162240630714258672237132708817703925928193690228138243773095002400285702131916490159516436199494846573955536988874691505461205915344975008204811792887089242097194876252225425244606329711509051662215221884587813523395014529460762663741915573038364873630107124630916094862694705290729080621350257960426096547200636360369896601699807668743520819250091518721296437880355853321388753562067435497858131986673105061464245614305789689489679881381024745894872605243423622790956287693068289970225629293651414750041141403411778738488311794239868623792242496550596655090701755477962864283551705712110558891784769103696036678371233244936801486866475159752642228073503913276234036767949292538792314028173481935370812160611146313545880282611770994269483016856889544491112390906305056716180461669092410647363040257643843135911765802622176980501999532956943278135796337846878957957220751931596628622758567405474328552717858311711393511690958065889600572608725166236337672340665503224709671723654819456131282378918150548655483169103803424360480041615061488618935992771782748331776401736918619376962657149789316473092763047849240786894347955059411582801967246919898487266946452046158203552804162843810291522910354866316238243596138680437830777326185153945336609741002601354273519057470437928436178915313024887325241451511693858039904994325181440237911876549843894190306890520354362549908350961408973547799826003058408788237766786748047090220035596208520071247713153790798562470152271747855303447904494829285084384060179390244194863109303275092039309128195568581424403760883039916686372475287137854206803850645121813734504780389622034036449028598792781134069718232511414658158928647572337439099900594833918797214109673909490212417114705562150301214319960104842653872537935162871317216954380435230775390308862664354334669362456764724024697020700093248333438171885571137860476306730699356277986432118187903601757218858791229673468598796370038236979986546124875807645027466657349410456234754923152701167449916334653111455655736734563658302302481621538882273938469778021580416218721515167135028899005415530660800166172760226910488765842927878356638898372807931418395815407274561349437991318653440355195218911064424038986490108651573903384039782460704950423063325998764754607308679487425309947884317521235878961798779578475638038159402819928494966581202914523335321761393880422886756106742616294645926827041475517037504070639583941705036247220238477748398504090806129048939041529323091594941481364574560221804301986282020810129825983803253235733396012572630806679816731418766255567385215658576236187738023262520662131221756882347820095096953597785302387015589521539491126436817142259543698260917471742081929544729813030836186917738163043958883608838716988108584587650129920227680144392389467537638122353020810418332405929941803088903173543512485273754027373360906581457401331657248145112739458869747270879672114496053903408784172661319180806218700918039411910124852564068362701882831538944689966441255849793590754027239973762871051173843257128302036783528970310751043349203735699860221952616064228015717011244428531019833904485575375231992722486398503718682627682590024934453815377227988460728548142208441243593763597666993758096246655688993597120317487366277083006992573575573523716778351971604147525486900093886376192825847924420986790339650358978363537894684996158653305342982599215034892176189867835612189555674273807842456240571952936978260122540745619025251469804447297677107649497870114996056794083284312764222157425037776313442805740131184649250875701208919804585839150656300892012163955820992179006691321348554290156615322703599554721985671125900440960654958836195865330767557968249801537202346206156457810730759407351897514822325683428063583506571335596403823811778865486068568098850916131230350133450972341601561664492379502807823367198420843770089931104384960100201170919856164893317008060123013857401609260234047563211904949548865453077461328737203458794582252702210948287967383198649656278329965800994429219204519781759043335585246634626262825309620901073171716311424888416055703950312702570619175676209893333583127574804849988602293629653906349426637013822785881669696948402745486332891601133390553587661802468325682348408679881630776431001050906983650227553846575602786841591919246522919647769334967650516387313845085672903747808218744702845021502203475046293540085168233263165296382727924179564200646847258357439242804961534480220187780380622280334510630597793844450755620348852651645519045027072147091518053091873382137989883248816459452487788006477837280059511087274418127341328038960095725452875705064062054740074033103601907121495040260724912391628990687128272135264207045791725501317274288450026078145203505492775255361875022795983829651777214448436982141260784131486407897271584012083318186383758778644933326077810319067966003416535910926359005845939866304976539297861750214812161094035543775867095536961719874176345530707499268510189405071175820971764551895791918231015533987902613257085738132458953197823828497938343187128569066351066045441653223917381354796896891262160992555059475536900718090082612304354711493744575177792053542990753676877156810740548300007028600919056660125762819761606552251071286391233054630644898372334154753495048811637543140062823258907434105232032421289752339514047211216731106902698981261102273916235601344332892449133076917912655311485559494715868613637721965712676843422121642689943763036950045524823832777393339435170048370165209586855243723362230559011016244929328167915586142889370220051552178340330541713426679758000835511462078528243856686685359517029375556394877072491386009392329121316307824650560489763923848723707224124232593427209083354153582180069457609969776649189366209144335785897588751617566838215501290685512349588565280592928016496020011605640198669509703520938531666329764409499748750765300695781012729730281635716486858455477856759748415680110726089877808533872461499313118409619031338866803283510882482521001156317490139123133839980553368048673344145577897332166207692100117890426489619912063226914312135875326469332166095107431933180827629399508807436049682248996169430518936424754206319650688972715082494983909436126660375283518821339488975174755213130982366991055579436117234636745576477980059352664929607289629346023821273147758773857746334574435617877039925236498439332834810565473446365359551367488333050445162762300627473211800437296405905866277709166959915682576845866469120447020835868589430696355412373500287127078431484140838379184210249410430225591216999404033404563699886315874676036452660505849623224599426597948845050379684313614929051480685483121393832066235056346330429420742268029348903410736160716980521473073015402162389517581345200450028721506478996262050126955874331919310039488422897302608549856485724576916564676374201108527065512041702018327927546817302434659228121960797857312597392188432612971251506118109179153540939863097100816933649821538522250016509030658114493020343842205489649207024778132323686673038381753526979636532664479107366846198893864854177761463419851875802100192987707016921997762225249031542381774831234023818276897960834612590699936855232164330382726655019639786770484788836509044172361673331902222939580046507079385925085046623858184739628609419173201542422291311532364837352050503593664930745608142255911108879232254894548778911438529843401022362497964461858724450673647239695216756357949238596219324455607258129526223767794029268553841837858852705621036705770837710802386340529075564549768691194318397469667808971899264339440729730595711671214291441965273658905820284071511341956862837386730143262252723468674282840967226826690581452784915780963274690616607579612895108038267168652795931008455741635815940980419829544450731791806563998529794768394802766852907012069855141230271553708894035276805623108388877642648597996669598457321565712480068255063566178780650565784960717311991982787228552938490927802380333784530845433443162066075930655106996090475031734058649474766071408955968315915835812247023801909655481956653515779782751284560695002097474087553616179092247058102284264850967394610470657832428944055055130109191420885317858634353081004212248775631199738524697156267074530159521901797043064800340420477516636331877126877454980936304347322050607795000076540315881956869415488030856422707082179005038042842506587214449833130498252658799997199680307179616307416494431930728714560985778689323621246431835452340211408509002208584138329206872181834638699083778969144632278842621365681089349862568783014125494441544509869369535634993140274950600802505223320909897565068490322577658521944824850126467421580450830396698185864923423456297474480895287633874574829536576373573680703543610550666779556399946025324746082033663778896821851524142795146851466030980396772648458440635701955018410087719694522011682970978227166876006400850830973330037816584543056207557166025844020393981704064087592719550783425694891297386852631308859152323914835912614422215887691590625908173173211560947590162508225384077310693590421787750075959290555861608670503829702896452197026104819628980528084131140948292211171685323757257857947826452428943733257720688144288835370072741485580125460559334116530885436324352310188670057771974889646879855693457552337405959329516796533814922036416660220473373805290208326668596403349932939701079639247160755738586896078864494620598584529272207709440023123883139709984823647069734332260869972968013471610669603033595671137744725843634507053416201963520168857633071884948790841924185038707303799465486054112790833442573487706864443022796796106811154685512342476962493990062333327483973230784826780052899255389861564597441240146307868672469174169390649892791751263382433767247639955284393246408085582975324227540739819709392516535379364721007616551364226631739172540477184229885567480261348404079717558680821303397608076503064325298887354935047801693790028792281223218903509089303232724815657603875395722886558824836805973342253993837034612079659396499113178538880590762068333494498589264049882721373085175609822712789472197016569553262171036021466920792210156887430608544152176105124827000233815339371889387457560567139861231100541440699445371883785287049726531758167755366678014075718383456948544004527309761645316869231728603550403897107424895692982909610204435229278426059905046077111957221481692293120819154603557293514961270646692123765750993447783758974240765701350791481065602768465702179626364496827814975464817705188551607135613184074064977115166307727978484268460303413462523366184539667953162398941338976812242710787408993720579748858733488882045722692290273414273924108369779458223081932715873426576726302620569068447654015181169491850574331714224357658972452620119317361855580324691368410680743448595255270303606331149004952710702809617973446061908310311783996615368651480954243961564630673410833878855844502633180800233292611949947235469305576907201745808516706106901587489307027674181276635700613363893642232899140770630101365701546974776911380926419725679937721269811977157171167065414637114838275126628186568589314405479846620190937547460134542688399760342029117452492837373581977197313680179868315516544513232278215909059626199432036557651493392797662901731340858000620166664843667424829278574065736887905671955084349194947945307057691716879888647280163562566711271290157090189425337824357971616405936473915823052586711852435319774508211490705170970791661142565309965429284139636696815117901414982695629555234607176374196666036635774850588013364382263861415133980255105037762597541330192089162185233765662626987321861121829652441969120292853677143523434463336453744131458168310260810909232512526282563247373230930026120053929467468692201616485154585643470602055016390948574731001847469540120688527600000138599497731916253667266223501962134859929654841138916643894033337531570910684203887009839956439920714859301240665242285932679997228568688497418482434410604366670155064060031785642130399306192191082340909723729295312927070678451294192506502937745871616777538516963618047292339073437915193955084846350999975806770342115220158491867019912186384456826335412574515717192164875413528819813125201398297060308519681792662730996179832711754937938545929370290651252118264736909214175510297961490712691672096314242887609239077286550368527190340308937700006869735806686463691239847745477176928679115059079848259815902783134224845905144768731600386700118206025877403793488871002745863831460444420363816949339218045882259838077317308500505182443988572244775805824956533061352812224542900072451090230113766818068084666794212420131205394992323800322637111108707322810157614893408382216966558438986649048491293377668082384167768957630584866249424765278793207595456978472374414930467905081467313144755211889553801188860186821477408956637705186782722612135544985010553470869542797399086649043991141975712000557993622897545067369521821693209817485980438894678562632859561024471907985107681483797943363815405632077994537730719245598597010296530141643488179301572232016598464443507743921286410747839076086610441440621886525829931807610766349793426918521229156316735291598260057855770121056431827945375286299080717929694395957789702153822679875388165475475715343202599832872425597249365858554530458612554757084873138913354804846115459610037648581327829163964752941083185562884784558291688765996149620856686222262926562895117705719063899077498042861276818071946809037224697449738307594610469951545830011733746484106048688209146048551758086460523549432389527609594094164803231176580345190319315730892956687737131944101905253700838515169122709417313711932175612956818071537650072376709587224593110425514391871082142187237650131598056922228828975481557805145625251795648720145475233404065453486343328653548115247301296860209947575526911298218585778109187596332806747343727801417423617445265551984030898568766136060413186148052433693996046783167568807351092036921224638985761425228251808951999347528063218155245577663184080623408068552951525871086362800875737126780617443722652402079809990316213749792768584667867926541667368631598565871011448803740715663122519495680523977510303663691087386572456661320975561620791772477643521756096319918992200439529745988244441529572032026160614112834463631385282118040525777919460646710590937408033866255690510920659150814157937606201958916599431226007619010793893130744265060631394291577819942962835487556936730875553255358320141402406364491080794598572254492240345752075340253598255186585686747472635115479047194995847120076574986172561646891864741420449905856929829202924839041203414201774983683802353286935457474788970414458391263537102472155616389555246822107262029138180890246734418688124603288351155044902185510083692120414277699872258246521431445501716455216821834373625956382342236142870702551488938201038227133181404165629909847348221977559490174041327653163575275553543256602647459998682998608058519903515369733934826228647027680977140054593888489048721564165540347361689111573857066396509317977893106981423635991709879212210123818024335955485339398636744823015314830981393531274970017933092872671734327255243335171698583204355426123351473010960409117725962357621862527175966800862622374170029072651486389968152202132322264362346750470630489352042411073387027295221971192035354064422366708114944671813511386144304975262305043988167754048740459676350430486127838309864449816895772378948283968469375502080205680384327836008950884756333836578935955345832165735963861595693159546800388310040286377697864188625389028986852030869853681674813308464079801009572671497203970269505261895807066067908670571231205385428719191704932114260395648042352902871662919190352926668452698640882986388901252867445057808570847293385379322946071100407867983503156054534264587028136001901956326540807760015229357105270059092235396980396201020931992420722921420421333134484705034519337584011796399000007954145344391364813046898625264276806310639306025336162555745917578591736922322573770568305992125727806835066106185781628848908393372677033045547577825381445729713187862456655593760319677775627719825809664386308374519734613555992766909777263491826033425592232076021403084616291561760851979634621856539052470060976709325624621783944945118116912829426617615035152335590342679509224273562636757719129628200871661380510836044311073598004233224388853049267627901720115077068961037588888175307613075007894058504247260376208359870313162875228673482498911458142294572381002985221128249942085551513088443336293413729818931882309414508519020859649369364527360945909226112426786232149380586164646688386258705033464316528545277895176899559674146321219289448132282548945725057394978038083624385667163086184075960414711936442290855213171212158059673589139727036289066849467877038886230041970380799297499917831796103292516510813819750413867616524865168308572561808285602917790566864400833515412991699336671778241702665555421380902196765813868757233864093957516603409379996454980331004574915940386183340959270593369495328986612648065959067992009908126977396955751286323930286979985501184947780397715266380017997387078273060126962833557567502025543734259013780738253722888779764974277452821900520065967552364406975019035993564896056529714170484932138895635764932826404955662585472373616332596309533256554645779464765580891826835070934296509721093166329369550435248856330987139501765871200547221354942566153382323966772499242698298482275347713839898390480169811692203795298817228148928658875034612721418881543734802040884814168220499008751293473818207977587262529721230071448439918063631528765726892335146846970965207222686399913716981732572084297533263490108256413944491196417597616588356105120553342790671294112748749490729530698335055494578034887682346672514381962356563411271687762026992360230527964725396253576909796381650707569866951541094768835835552429132684331959824534792970493775423031045692751852047225043057935010884758795544864976374261455979985762116157101966684432326901730515619848685321680875509427106134345539411754030517248066670332713258004476275511582267398018046906357384537660720153597750218516412255079722824267406597361165884947377008312817557141634036738269938293589445430018042856754194360017179734768991013412464750177453418905615736234497506478148114000094973132230752760691413542287996054140939470399484354101733391563840509594264273167498694374335631621166588841089156966802514767701311909737383104999466325576247178452218057153201596792809349755959509084207370869509709245179260289683286023042926505628042862146215599172949386347065245083953289454681052703531595943870119228610546769533181031211945932460371886258352134993838887186513748589103963423599250826194953664686166129816087747612490785980170716262608020605715109103679810317216755235181669260684370073801906525978758213346128493736254423204907589823990098294862851852400980906041315657283726475589275874964105075571402524355945646365161279938951531799206105148860284722664116219528266680681554630541951150897478605566924085813842951050511380138508758922640316946534365669229358209604306783301931973016551827935777478847720472831105693554212912365620829142302187646222122991472005348097424279495323572423151985069296684869651556744944735927717131501530946009543380742151915227154540538446879484625475431197555046434170812291908865644294973830540853691136266209899101574585923278271242201299817343990989248245789154839430607972340288435168123261848993301618851502210821892891951135523647857031700004143064383068632004447267832583988292936434895921006531582628417141364570117387244704834427188307949755009037409961479714773453242050428767397174372781589509723756956306261699905677107088320909852328601341112407331486008459375005212910947228325207866964665137019138904593592834914833343025793519611190022984700974259112401776833240954493315970965634482284141530209430492356276371043035901162605391872814453625754589071930062100191310583073745208713440056965257375576447347130960878638861560777986083777996698988423680283153878115846568420521967039299945011864808187165572072356368009339233608370325726400462345196112819895008300452236023147870564899288131052218559637921468371172781909800144671316563191505281645647860560395231095235890702917210221367840143504193615409424184524680347068843799632493516021363403509304092352298952123929736734059697999955848332902463049653961208115913951290443240298238642454534056962151430506004726977480723638228539204436223866303342401198127868881816885495554247438320448276985929455840230642126385289105818463456985171411975497562327416629969635456875497543310118035116101097342955747962425436966652761436664658357618567760994415567077169497898254819114724039097702307143644379144703970538535783703064838019392430202326538400446223481025167029278588200950083196164806736204312027323745037270586809283127302018589204147889056030456676563146700509558147696737426517059915485170021327934985340122974080725085579024454261808189608898481870028447415466542799991102019479067819570101589252746298314521932000991281764240949740840867944047923213068466417030502185287258583451272022619554673563438241641356326435153855543997903360786635021806134209979009799121001598435918423259529017060036829382093564065895846274993090479962848049977443953553120922404613522211149072352332019887016368477039548900006440980459915559268770024679087128532756109784627652182348329969723001895167594608060815796546001391283175964714169270328676841329307605303942758543482537296204910848232210991022284343381278784183690579779712887684089708342023950748305047067809185034389280077675909361645786334042853026333001293271223652963410389419392786461211033478426850950119057507503270088075715246724809133507355313472870529027477404317415620100546176485515187481478349810920895167280418296732150369719271054030193041334402894884352922301927067577482767044537334144403405639420001039462539675058858783074940391211000730070244882474707211606737204427446970829976144881659838098529402412976358596170361799529709167989927737362328023719624436415182066558790216093897699064066661630409723434315549454495386901411516326407652190861472422183207429633417605712051927763646895173105312867131841325921810251868151647743393333539215317992527201938281975116041895929017733700426090423449963968170202936499246082686272101893247399669016847401521924629083589844734486656117001893173256818751702664316997045807059176172263028023468764558795829755761459292331449102956670093518453831058472340985844074634182612669610323061833079326739065039065910326031983685503419510119654507378877360881284180292098158795947972640883964399126535765941824646673409155563178265910665622272231420067313313172684179029615931367317418204780092094461426306804519203669725396380079107299595844579793620906843426370436057141541324746624046614697881394920868573484491660546457407485124000243368726486332259419076462286851941005186356553145999586287886859142525512442410063100382387610814280958698512204006253553707357479846763157887294484316810274085907512129230798000027729122380659054277066157891801271087682984999224187050325536354855229775791371998795067843528911951429774831979870911470763548261191917605052337869607543037330551548940382840378579082735856980632009131478482948629083896541387822808033127803206643380908276791404356385232848459965827716211898736936702549547190320452557678708868948144866218843705235909325691296955931568717034531822801355752407984469157860045546149821348598978836263115430307873354943477062765508093086937628522428200346717114884939906309542813875126686917483064492271969528599414697305305789875721423409329298839290522671886953929652035821717268711214752595900158046346173979007721659946512595423293422397411064882384612204439746178879804776847589836901987264889198869989884907224334152236786780385782848214017508059117534846573786690290363283836931482696776086343449244241940505432250919974752121503687550648532282706040943311283935489981689139747069212775846668746596711799457158807418614181953499464325754785442424737703043953747652055991976897586901535430662035029134207384851675240501993967772933462148471131581930903788052342090404799339647934810204376551332535641609653430996148987609405606725520381983306182642992615113625762361467865107062119230745421043471689629003898128726575968675888343990225286138304309909820690927282550494433332880577733136606201384300657512930727855012538717580412446431086661225791110690068941574843084150983730461937879069516895467595292447583990167990465843673116147020374377617282489734207067274318237133315611948498235126963711259323690141965429119552571300856697413254804231992806780606328407458336766817405862391585373397559579258473746858266296713304795713463205515527851655297732071962208970485798655908142763679205586551133805028829291657998321720626125463195155005538516132019881634994294975572517668900743592454062816811483944785068073192002122860866342537333225401181399743923085789622179203907430291109865441715301173165046696737572682069491494668758862078269533762593231134493245708401064996143818949996889682693889193252510946055408314239580480550125502456009378740153777876658324357202782931672404229686492689110122698023953049481724551128860758104880485030652884874512687707712021497857956380170492601200256342766647933511525076358537115373041701705857542025468640121342252669072816193462880961477707236353141229576527875363449347477572404927839755120361336540706928820060379217888247439691341100610942362321669209615112690687431127266868167298486855370935049311761959975087308130885871179594410285638510603912822802331583353377191935223126144375708828530023967005887606408672323604698386735577640388281005309451120430597172303042127648160782697545887272413125414287350339469231326415447026954421359468984333115918418371881789355886605886109559957068173313161960016466616409917086640366309081827149944552783041186649146426995056914105216274676506988356954966045593482298225703064921398878205460827625551837025056297333774063341396837496488366086125082677932988847275066951424883914115312877034824260518279541758512379106772160312950859794885561991768843409999843932290477349753333875954274557404986132778549905731053317867405017254899567813045508356231113953172134583949851923356360427069017471270654444729460577121683081445421940389497782031749028030958256868342449781949053826003159827697013300153320421913278808714208977395539035199970257937099696192272883908212491297027234061329499765608559305536552143270116445263115092482385090006327728215838964492031837578825849378880405101447425759699630012446829218660488164765301219149434819770320526331341089566289916646906315398198680066715041252021050133157450289913162794610751224758644216955639006270718885093967663260800715227326973371694026897182018890197913776217014330231258417354601440796282921947832456285173298468614928114093733145425892762556826439955148448799763482259016506670709201107982395868351573320027694798065693390424431427088464912080942101348528872367501107849270520258315949411032295244139482858091976740708295794326551747360181467399151858802913383698606364383242957019868483257201101046763755238235358783109892813615444161030965057748538013830573518386831135377832851750490065009867213425296924152737842548879781327604606025044728295168030089806182590287028623352444325556071327854415962932571484430225974941246604803546732253209220336068378079624611234764092872694559645039044629227678577018510924348977626826586123725335109944707915374911644022832208552803405753806600738706017204463207253462894424193414736593423215914313735219538911440226204306539096515290908195266403922926318125333734603626501434552883224787167014292480163278680553586716596410357928551639901378401148568642588800952597524043772402335338309757311540339294947826966824293764510953101808979877068190100796352114353724856468747649126435671019545239072506197240620428827818408036075417318266918218318913114753477069781590995794675722170729074847643715436316242335287700323910024824136363263243341299140870026577376167433897459111152570133222801172945871180146262659819263827332747681445903604088036364498525317163691187686051577885634883129070720197254685900029074875362638792009410815980471891928070306871920627109959417236240000612993772559316836312203113573876480792062125005575542700895852624131561409134589903264610798979580767686681296416989216017570321490898223767144181214563588652354556009752358411692125601086479963111087399725668500264316745126902693515528846645045338014823552485513442488407040224933336709026437579092666698614682606051868453641168314885647680196676053357905027842386467123163698827617363559430476440412297514430857604881598504193235333231288747468126685308471284159341813605559658979390423191872291908226787465080012802360383070745689064639609135398369802162970969681930098106331850618532037652068657408540321471103118893365743135831704520711638454740051090511666889454240503675026127541142148932096711740954142266291994070868326887401950224225657744322705435045340113690283817021931821243012696513818939073867612573510892453170492296575368843359118493112531759716286047902571183136659608235991282356588069440281468934827830490417910502853754129013750928067967668176542065775593142925846648106128251692407630122494913154021516188840378904050224283329133599920793851329756227749124649489680512439159545146873761732435673849492001840061571993032715223927115989302612623859107850258109662568058350781758682355650381482538928818028518872153298578366376787970948691100431818490644282286948321213090836433596091033018413690011499161162327884994426419908260592518448693323532458043333722161653552619087346529999342408935570134316403140238659535010833356631176084696404359328901272679620633526131439389881580556873883171415439619184800689870307610338004892882307292793234831220744350089762515141126698699532747683104692742159666222155409465940335123854871178815280964497406750584448917425885090917347101818267888662048654654401060939919111552145767706210586597520855576894024548777090614658734532809124519681461308767095143861803767095131004033695277735680341519413958796006387346933802933783716374651336677397772698386143467518336603677534967655023030792583687822375441944467432543126137259903892088427866787755601838047178109403085431050178680424354685432252980729496347009198207877519479675434164152208302797618695833610881745359338698327634341108826423973337753828585670310514977117310617934434115893781741190120720433522478380913525900175594290038994997021327882193759885697683416539011736934443339354849595618299943442132505481958653079231587285432930777440809507558396852935261687668345165563215240745388184165262933477623229977323233843109205043730395293308024190927411364021999486057949929230933906128021657244949572150141828974751179596630224795219674145490911985926332915528497880528810452286715584053857098786917195033900420651761260816129620282775291661392993571966099098988372669726335118829666823103972952323747560905930867002930511315811953404847993124282109548325170187290317001575020397777975716392852872828548591425120730225217590739930816624569908457280880406286342429282377600060143628837485526784542600400397959970773376516741026577494931330479710257135272357804929061336309467169076653579110905706084008042829655875478653578003442024067019862424909729868734923903497972498254209114615408998013267024874348145762850458937645210015287041911947856344007559816306121790295162954423446580643558674588149590590915642969603327470953379444253392069815909054315684913516859044795478362799422461445854509661919416787150026355664502812793719031660972483253085927448665925146679037131547712816739241360996626300943167150765125986796836623500801726846618049937988411933520044537795711962720546923706470839394380083095300513138608541387108124629592937089976263676645742647369927045158647041035460026269656208027642011928150009364208974414312643979564895474389945549475083583012587036871273944844082037724187476624473217144703006375738062550626677335800206639006030045850906256687416301049065737696126640659343618859077014210239895458614038868369074313141054593504728297272739706155496638403159421245615998946534933268459328366732796651637994522435175729669836424768922445868281679757327640087619594756834264558323928396448147127026120681720147068768410897323735850985013559869004155887468495802584922000794339694165782866840848599210860839314394733487771106402171823189701580208652643069503446365120470438592203053603304532739465461865570761292930463671593550297435281778276126273585164069053864645582088003853830370619101373609283797452483593603414443545251700199965453081222409055200875754046797422587012084389366685896885424281560595568143277359052217063387074935927815735920372906759023597642840901233620929956136681424794368737597890492086743256252538055948146351572350801767895101345737864863986349676243505985387104448854900800678645369748749556595089968894368586557705905922050153785938304484793181553813323077040520700990270694161154861641678032152002470979296761166701034373683875290434103848628333424550216129930244486702796799322046876042276390931725047961918894001490331656626037289076089989281466715881981895747032701329103326577488966285050276481139032278702397795800464032335384902539005181139297363601656829978729095175779542155544678202769514815659335320882136595707124446396134435475140168355470579644420122781216724870747312639968690536665550453888608565747797335418353215958496512511800046692167837731068421763928046243829525953414096489684491871480453361665752642028667652451536594684958772576513037685068194670619947208981457037351694107818033277958881043616320372958548084663397903133656364801895077400137648121741792722990192487033357354849924088009454667305223422200134618406604390232383852971656810087121927824610000682234548570068313640866177556361713462981829384942210781579248806778678111870747641982238982274412971078716436373170344495382068241805520890104668060686502053639061543669391061883651734125723385568908885293612080931222123241128048313272046751359665032472387488032449381670528121880679608206995796609990402653387998440670409645041399401242441290132116854204324344905757067478517871434473212929753481184171705776726753216861847711206693109086844098857918548106203629666268290134261590364508380440823639403198239629388707584449684908502653382283200380755657981631811973477084263238374718867886914955335705039770957512566536486170014160385768336174048316442973682631413495638452968758537525656176952983949799927269164349270173702170945765896486512696980621492240687810600114610741514905073032818462926448352148672476105571685740668717317587426923767484656206040546493417791116432991256458311039011508615684993223078355906016424460270203674740372913913085667364069066460536352865142309918771931240499227623143455755702149578781824168275928070086361347645378931217873278799856013042210256965175969012228296736234131512847476904641307078530765955138760644484945251749007189827221855912518850959313305096528040631528993179986932865490960465425496990574578046859866118342966263999761291258170220632891866482695891039786155425979124998129446174971303167042584362267397948551792905483214037286578290535432616454182103273366483200513277593319384529724850042446405657727148149058097100402028979502707334676392421049323925550886095099698379912108987714581138520320525410922780473250827549804930300779802587051117494024942359756109692381244161245584537025616993371139222645458351517645877542972104427696782595236824882122990747631967723837607743592064505539773464586909359770411389182923782441963767045011950169935856249489820947700846609371413590181169258511798983848712299499413896673227303218672923733597448848568136765173311747250754184733537845880401162944247430143643125294794298272292761247007829718960671226616875349500240993751664319111953116819186156352029027693731945702694666804023222323313196959494783514133098958760311852783551687327326385974717764954155826320017634884602340405142158437902559095254813122286911100439719079544172394521669498004306555737937148851585641060613874602353712877943369912299261658720946138329283035818906530839789115405798850476039655559457892425539831812270585502687527864478832542205674908607368915259176032242095232902203642369553863212014599719931161681139792506061013357918495814724456718699065008785826162907547849435850592153159886914617364788307502657760780707102418821488454402679013934877519201931079510606051578665292813326349612859615877295863349339322508916317425026316537626557703883928167447952488302776836042581033067827706033471992981645380523655582549685610331260425699818173145446730800561378276381823601623966463177117522163475602077234246247293504095061623203804316591959769225073088240982633827589755930688280734773287057872454930365454157350651161828968927061955168784173141063885441640679202612495380024435297366271597514670673689412659489205970128350967612341377984470124803316637274390928847623579862071742608748292029079417621569809101766322047336582825482618990259790571070707609138843381403397053014452797558656951684676242313303331716533488570236474414477408943282703211612826431740585310205734294758540750477237807672660233567045230270511659784633255038931967424775832017013345509043491371293631385254402905589276207579657902898262755580746912831167621528643052080061350914951084938377564597740290284892298976480817114816731034502822867097159404926040960118714280302940523963855485161529126847107698892323501784213258647006977486827386304665610209373051741896720314938215888619171874109852719866429156291308950148200220217021316268141759807708443615002210875327958788059551317187564305643195643283785681922686489695688649243257242245482264963515178580037741328241111451410777322272225415989880075536040707126113200377153600681354580250544012083310037444534897123984165653129064716697360874508617434798480891980073775786834431395702273157643911188735977836792916455785663585597153946041210001930173362706401591063567038929677777689224403470757962820394153368494171108574177202105369892294770788785730372134262538331806472435172808860825910426732426689413780150647530865520124040380980362729880223895824549955372429673084022924791262256439688913173759417887308734565630943438957574773553498501582819636760003155887867752267177754882996056053330649099285856177918215527393884823485508866481954301736816092526359710788843920907909971987885585894103765155453809461370370253387757092236240290589951705052442316205199645597143080664990419710597916525176888632145067379143285942588851969323085481930008677613140649211398507368520155694538952598681308744047295207726617247161978325115231496742776863343474784639645441403557299941489792981773952035814314325900390343307617358360578172183861186654471790929459823533992034803353466709653798475362729238654943053894684625359150750394327475238262806160265983817486997672341023087121751768602850776068592754429125295245760104251595938532089421739080378015843375290535618779238710696605995784447067070046809369834706877669801842169981089402217821896445370079755607235541529522489558925903525274688269652168551567870254512602761906603471309882278060643513576834074474771640245702284271355518948064568468236059234118926694582654459865467074822175767876892011212107224755315611921179471020338819501799402909672493548281983874558513285668232249285275780378832420578855524608132064358198336189179102370618191550032467052735832235369265015901714170283586206191104125513515168684885863343934162978189147923557816083959763477693388860277202211900124115786143290804527672589309130308305328927750368279704270771922063854175363992873420698330921723671035380208793445127435736421022771909258536087714742330240654716865738050661386033742900160858214118941833487502404924848113406121657474516681389887817435647777606638974946643518843505341257796298862801282394186357893739696218362044176596500868518697484562929995336062949044009729689352943015946743582021340208238375752723098516836527906333409606549635381636140601838983175566906007591375059143985578309507648187193985840112004478332222741920432738094459325572143836264728379559071501187297365948215949188860449738901831590639151175137708047919255275597450285466830774450338786825131856269924240469770831561007239612970539903511977371338468331755352957656026895534022827238090520686961603115046586026313713443698188810004704756098346499107566744145362036577496789978069098422350740510930854457364287252837162673082174496094346106429943377362455964868998797912429850938829661332611158653791062105343560515793491722335474864212177273818883000053687164777363728310967875305847000513143110316121418182008400131102313967239433855310749330882547530240691149049683016542530282853962229379893091441916077915013681357070203405910819014288952939182692218122711534079144017940701264502593398102087303253523359103555265306924590394718242087520181431036734885630456018554432276483192893994761103000699725149907003054407938627280267477927296461876554625728711829048442572997738519559133311912232407001574360149157505832190441256607126612355463746799803367876590043185167341352488594319570635103203325648301171666123682477139675191626713607245255232744933824839479846788838152073344084534348476387412101898399252447826889988097953385761021175982924234689863660241650202857733328634706591115866348928228443088836982031796646460161807768708951176750958689270197765209528135118652706627449750172406035028269594486714250185448391427821373324600627449677870706018545557705315984971082532961781492357826949642662410223453789451962056768886263891280942128879776504418126823839109106559729807827885525196219576960495255164552986159290912295268739016182475405188091276364531960701931358014861244104131013650744858619378473724901699083163570554990741651136274761835384823134459552563690660538893917679133725193612433731010655072391632062368258659508995787165803307868581744791679400023314899260387634132341006608519569369707456197772354914870844641473276805505629231681310102222062296702896295221376559711566475268808785241351191917612337136906420996195805734279883791787498938608078750785157870853811495976601651250576258792878257208644773437662565734923989697863980682670680430881648226350582082024283069462923063114600856493271090170672935467219775993175424829855221292381013024059176878705831265689021130327276924634124654179342134616856120027716879407406294553656883564204709025667984150175570690048730043453932303709759914663624414302243317125393887948212927844601362491637486082775706188956498905350412153291953170529678209666064158601853020585061944908891359608849464716516707113048572341515137194762655012720993016522123782780744936397182871077802816918079801325226074986075165474274440323044419564243979439164136388799917011896078248614672286217061029018395305658493048029943097846873109515559552676716275235877731501098853969479560875391904698676269053621896368808431499547806962178223785500040643486602176222797202462695332023428742568814631094827435819025928470076850797370503752945135426627246776627142228068783278115035403540099149965061429717976701557921133772759182882936363568362996596173327878089698112982432381516114492986894340967258508938248988748361880957682921378455600085591642859740146586722586124043310193998378199824798982441520664470212731219834039594775758213462640447658340522188066970349928502977193384180848070024215913108954528454822200816300644125214658279509294564417471786675397797908417445937938110089885518119547994588334307478763027445509573152607659879107106687141012372965973818068039773842475396589545346276731618568330550833559141045950352680595146580000185163015865189703045540783201923739545607234934758205683967296114532204427460577847985105203779039516164848370984525827851170178993421993869904385041734852211601657640450801065048123997509934057735082850400488263848987062590625032434556798315891326537751237653708760664779527315318264883142383001700430718037635086297492140769668050046601220904928299269255234495814977747267813238383515998984819687303752150109695722629484093170366673455342111039280037492234483071858393013829154477070148197408563205103513863649268006576880721365120553446476104256040524347234510537733467062876612081593493936871022673823861171675622872269508226532595497992036101728223444325584370267046086358170881782376529240981899506720583790802313058218599822246367197827065841267714597724408649305232569920356897004147919205664328972694862788329430457490673529466751407700579801720461234067157153185900018357339841654635685616958352516481501189413195554297517769346445417950446173274857262157992174428370026873857420258272049167680526912471813979228109800943249314070807570723734961401228964486995084069314591819189928444932771955874148616914916022172310865261964820309124704576099250614177967827201727996926867042172681312278995536074239533250390251086676188922821784835209665779324649614239831767547551395683327820146153881567038958880937529819920208062617892265407896177960214180795310655690170819104633009109901406396947328991309978301352486090995381510827477216470299047992501177375113900607717191066275045588554287162868749540308620031266451559968932881605173547143588753103892318953623956968073203780579165730489960554940989846282949945404254594933890229711307173858712650504043552259912730167029710615406826764107551697619820900962086047443447731824060527292986211720766246307862110910806873445353942042284470945666269088491213852769345838199289536010407666447160073666772956538757339009387742302673361163085900450397740257674435992365651435316647855113307893317042173084077832404089265904677707228247124709128721379941536610915407842523614494118623489875548824272260513811934106784314950360816096359282453836465971577670024966931932217127658510297469426360136897904622977990955846894942068639808740923074400433799870293367442813137975162501075693492282361906706243920473932803795778771912464533791010434255750111915409121587647655984847873148773372459770716500095758695574636441306248639322454767232302602880131922559778848954500653248143481107078772349123752075905061457245142730178183186975559602114600850893734618285403198914202864671529702759243142949080392578363247991038969935368924011296877363796600207195883484713920453967668525891882094138373199932324251624908643806956069015803515858567567193022378864248380708337127273799947586548366037817057549561035714136468506785057667941759651890411043379466895872918568729450485637011929871860284098509458912262635518344953037767853242412797931961621165306241396616609504043905161312116032794846300655466657408654888445787316520934995245183175418170140438592439867555507354214112544377703667709823013855913511382155231417942303038321779821374089096470701932879616983520722152848857517324922281713230902503514329173115001454798154909693814171958779427184592350871326640469909724516205146702449099586369780234885019456471598136003336437478040647557492099252565570520435468599598904304013725640094238382917786501028013205386962743409619751771556492425619549038174142583219407746635381949737909234018862281509930204011164312126527024301669712634129228839309759863969940976482783526108479883918388711564220891410868625649584952245908888249114411406390717657307138793118453828675541664403062515636124184535324909132384852671739112147875966951153082902076202522048746905136991155661975996302019902000811394687607149559480811311167681965605249433970365081212955380359974380000470810562451361046856436382684664684787549406209906628908809757569834483064832211180589529462134310849369447512435585433512069945521530311077326811849334667642764897552024776800634428418608972260798531502070869821071049182569341454225708196839607695648257423966730944263950008488021378377275523885047150092479866123298577358518497019256339069552656759204476514146659917992610535830847453938095352086747207831325844600115938557316068235405034145501425637195195573424429557982992699903318564782794710904382457903330834648696716793976125677031422321999041428766595811318761712739483977483172863565314912234267037936339916520115671284270629078881688862267389176744030878928566545328036839990620018474339944744378699115839678275021858549922365893742084156273775407514554217033070752790507267075896354415990038730498979833955305130455164300539270173113563257202538382966477533283012032521591635854631004182493472144551312163038890824543920936557180777878779301084165574819746938174443772572614457865273834171109626936061959510584529544704416680942485687708116888165368406080107264662152809168074559502721617077367793697798139943422044910585717849312615267748515525115168923252070954777280568943888134424179744451365148077026576149344274248825953044700142410976481235130099919680089261756304809947823588582746963794257156707160450057293668734821564544836450165386026297008912847272977762753416440433059611797629760963446565360232741301669533079438373339652844940826855549126516761774141555052271746625776103242569108067993766853737238563031409057314231229855611506237326105452942251801426473321844831830154405117939942018372708943890339766690581929817454830198115603170053710820522001305289911347835529332382969873932624712365807263467866244155280042503659079213018209476788326976074018162535946422773334350832558818637331829431997651408703614500306701050598799429150328177196522624933171136085766152269616787433076256020301557224477774917413127812951467902859288306215760101057618445133218621429005068611078212578811167637456843668674701919081257621986763915225491671008076538497939348877388231283471027502545120326573414728777922409776699580015577872416630186780648712662529291340229635283631645479901096407591939948281483221082638499396101620632165756022848938582054652245439849851260878496072898195721141331620792991545157267163456192718673827676566322430008999237340859764486705766709727191879362753714263293919098918805623485364184304772742612600537673555959839332245347201390163508040440831669837645577082495500106484269947086983879481299893744254482050904238828799551545210596671578423297671229359352627382823817715084417334010763966616581096577353311536146721078837156959117837442964272561863373650646342453654788889269013529227718704245778124641768147591651533839971248348695696090605376363570139959587439694460618025417146358710668818716076733775222915783511450636533809449368168780292033878098431367986358668595283128897653052968255136900195083661106865696743650140025411414994975925427197931645056681392035700281580327758527797394233129837443295784945882132924573150872146899591763740950866080233411237044052839989843565490255976756117954265855450655926518881499851755548552316169317170564795454999285339857520914959851309963580689109534705734981322812484106818407688857849443821580887898116155006268681604903507192218571399833586147388445706728081439576775424270547592017409953395742999160043842631800808252902952232893676420640963484647435407086186267146709304973904619383594062344336060550284141261036249274491910690387224839498446949515118089216531619280266653158443301363990769088197620369676465193862996649487592313364299697003530541140541115290447193031587947094497359933855265734833919335003319569447612458942698627172824589101281061492137063814643409175031420117675501019063414651378229625948513579493979194379615270053233634505258371992844578003210561843457446195529471305240633087431922813116321978214200742330424447069538651142031026775232233435794750380013442362889590972092537445947912779530679558069877306557773433811007813876769075642517282438055699866827803706547216841871840302752321653194804515910813873253937509343281103802898627777288387679419300542015773989709604395071688873965504622594400424403322243096304965378217297055473476245903958571743006860125316642582721895654799956401748863646547262920593372430846418396860882073748008438283524109283156382732341334631122530509725288899872851018720237437683699816069447350519239592090560594017001567902987200017536360535521794651400605508526994171622646372150714277455542664094069972410950070460437366963977822602700105349584850912358107741319323354083018486997103667035503273505437922659562790452135272809649247872923619297673773012199238344797593061495300561374055866808079793958689223813781085305070540054634372593426707912389656545989188968697329631832842619534511307324010472249713696551136081403466815024655877294935479400847617304405072867281655824926666722837118458899344661930288802567196192022053797227074269832877247901891754921743440227741851453986001041004048487891970129340671086687992619233414475186722065918310721831808258374181450361063981641899631905782887063393899385721238613740589069210507634145037853959342440760758197573620078635942772224700042138782669974141257361349553806321997548577258249079093337530089266088100539740545198271257244133086408901833787643476393975697946515916172748318500147993135562907177368255934806484631230400619002570257967866290483404306328291763239118940524055321351595753402046309195727549122716907026936169724196875500010845678227037044702468621324165471566628748277451018973230120583645549159618398969340728400037023631712887071173108942492910359213388166079488948987855853393553662157760202798220859488611013224871849959989341348940772361723039068762899144562764112615885648067889223533435988821705189266861785735628700720089426112746113354238761751488725257024390825491499203349038345019588606430319219587775685394415811531724891791307368180717205865650147259171887577690109769623652501754378528933700536644997109046332554922624910402334150042967329482284741706531148109621395617422245953169960295051448979916910307698721308382177503054653141678599945581753224331736626968181720210191462233774492413093076402808230739940556163187408516107588259614378817658331432609057149124714472640368162314999553273129151569221290027299389374806368343525676988228281161584971189787422525968021280791364233006444092146676970532459097522801196596547246929839097888312278782509245207479422463843817957672935154943339842199706187702044206236781869298035513033443550121028338209515056694537487136439598562173363069683056496313946576543271679119021204468641285962440293152767739597674735862396557309544411672231594471092997788661501652563145587079412570047073243510432048410220763064241357008920772806353135565186093027038643398233845789256104360782977073530241759100208529340437027939474752776632856928868368068094521611931950848142517087882196037500764868415158878463106483105822405945446220742938475847658185719420256769518316427948801639017566027763456491191773534258498793552519330843571668952838780837520784595760504324301693522154229270062694704739352017336335554573986837129916235562157059352109401814502594240056629447484520132694022238413455532894439690737862292535316579726522412135604986709540320115233491087226744268199513584535207430242852044953895123705995175271829038466433037236306907137562609348362983031949772559251941916680965637888831913908298124627652327317020685394956552530355914912308256258354311480960088455426956781932757830235920301153628479525500560243503002569399812209673374711710563650002855949150848075442968414659911566618867758069327064542207372575027179357067696796223702295596029933729761155600019507386716188904679777595969127695913542435177561272768536710818447374578258561271557153162198034692801571545302629603468791299608620738186206380113334868070919880806207912385259603869711063874899268142803201817347644753029710574248573170822746817785130966327376121781602367428164095765750440139356268131082961564461283924653131336791150653526745576871444742711584516477105046081289918961213955640095824310154892870216584328793310305905724496518222481083892908497035538403835282487353597665067204926739024316331109468653366042373074868200318410481850738875808946214862900756589271124241753003742435646423338820143928838296767947877636675429379034814901449071468205319999601546799513941303454335875278308724459294607222549004819134773727674444388066433574118329383757102518379787679864897389423181871445647782469027953456483203370117065966395753520728708271938030748873787529905359186968913776159672684404391782951485251781583235086505332437364161677620577533893750719258040784902533123461415733505781805977353479016444049014648088409338274225620601600514370189119858795355935323212479300697028229177656966716079260255922007265480048424339883503284314180576676976889956570137658307512644470028936541785998560361058582194425215773595104984063076386201411601140028618047611545806968108442812689649299353605516557373008403334332446781284520553214498024243397060397637169157951684426807971471240321521309499735438787407028830658399562908069854116203967929720994897224701597813274756532711865152715141476158361662635375065894389004696893780943226381575482854651180499868248230952644928345385371965228329900821852790161844437978638183684222109982812405790607499262538438030839424303416128010454954070213488634558009135191036969161051490852001092206387665029495722781981179918480246170151508153406238593601062393180673600980753851011765416215632227760524353647139673351900602895338175195647224613351315341632024442164521697006983340502763080790128374880308278805030439506793591111020273253665611054751206127699137823712229710109793559180576190807688750638098983300223728231718711320545100903689804798998858366424965149890831191413885065626427664540982163673005153062978302150250150738679878268892867373645402850920918480953656734322186836746637434781680437140637375552510089079639414628407271161275958526287943436719172541866548147533859367581768907592654478768959942118816354155926820710117699520198708991973457353997670181942462295293307791968052415254584127215991180201402823100772003977784599494744142482187602305037493070419845706125855558743416601500530166078829048719256504176755778995854552336355457348713143469530402779410372508194108036950451293062915518024061520045485877882467877161505854674316236548800454380194260092954380552960091826339237320116425744279794696992426772848757378784666221043154671396324721254946494627317703024092367813019875235314174311644881670345565600171054203211339033395485834888453157581293160509402850168281402252731716776354076438938615789313153703144855438636073020611535743595454350370609672522754934009688781977253218646956521014316209664281562266807787077461280935576003967771235436058986851462825717694206505594995438636629198939498499057868421493125246428781048619936839716135019975848884706943657011296815750348104474542681119902556125586774791719031803782616314097615342865264671495906507167105852441187914695991297892496755684419808982848465955657847314027126822683493938464522532162992869244180849321152362437266583384270097582454838507096926339660889093790132790516469620807909673112238296093063129922263929378096328449655141089997628230729515824845903621071302564296895004667335799572771267777216218180951767792855152920464927910295892002154945051525484639192672012255784712222505717779804889200109695473402606717593036335378493563201144201729849385357270152584624716689307020976761756754994042402336236364947982562943739935376854736076112423229295705110183155201827637314563699934879800731269486846345247364959262473201960845626792841563555280395486324025406312078958646709562006820568970193787156470336049071505358798305073765397153863815046206236447916977036413512898397373016289034859184941176208609557340025056256057311727851116647770173199166415347658480821999675427002015305169074760617906772407256125786367835545390716681818816699388421667505706592717310417273614907618039509857474887307481857966758779255524692815106731126210401812557201639610249960481398447615344382351465419460256726991224867841233179335887633003317644837674235133626804549237014211229783566753326647283411476083490491338423054137253338347143983831062069199144262964594444351594375004268092900965209638310191142106294544004582488841882013069117862037735944382815761197277374084981856538466651870236987153818489631280468527376271616534431416314782539333419638525481246799277922124920387392161260702866467060219660520528288759081738589879327053593207641126327888086861602681571549252120407231446365415091021415731609676221539613892934195463141815488519609356112642454524927973037883252935305713230567787911825072583574204157517646822927604496104180226103579340246211891784730144708231460106388058787188651180974598726368377869545019501709961563553582620638175042020029408046772967786317474780783017720861851358638564336460666572863685491814199407307355404919692310777699858205879406158598575019833265072545053251177727471200291074674937066940324192520376899891686619224335883143419659101546362441717737789802825430356527589999997719862977562368571734548527519909573309478512736866461602564975241581400957645722543873284467292110835094466338347543867251184071065818972986936042954454642704320040086047548827278397203365619312440464037641473614496272888456896350814577992134134551404568697789312700180230153283552785684759214315333322432031134485575267595904100707668192780067713256680465996811093441002235812119646996569421124455384545764712731872895819902100102462249596989589497502297220848696196148650306424738465329775047265420968187083776903927455955414470131959767878167374475612543175479433397610152134758672059821407265636692369017934623123179471124164517506335546817762130907579676421916879261279006366355743024252231984345435816804431050934795800389990053002686482476024374928060103173912173613372028157539424132459411709172256112750520008284530233023824453756910976969586346823721826380436520473933276684216425209783125287294021525356627019651228231300579101849479769928260069167719269748584672605742900497316037981232121881172624336176164600304776935238016411457205501774545148079645431588109373841659430652266095379858783120329393511904019983133209868068469152767347067573972649349532874174970928988710234661115657349934204930858085994580955669422148543228772270039928857045898108233562122918743934479092080758036277631620620508198004316208998335734047283083690852802927411618263266586134657838511447185770358052284283083421956099482584540017017707607315988005198726411123526630269990676299614469327241638072358220343057960586613100362287555052262981784722658401745319073816343316755928391704963746599715095836808094645774649410371899489679165351275282071907957010629099957889440045196821370653758945071406714687721544345182195401844165195632196728760050589766979728802188979903822274565507861389295054204194417753730288347355387859693127706575322741275594528219123369898469182077377111535163253956268759802152898531070550387805355757994049079624063451884182877970039232545936676911770452585703609740779077900668081155239677577930093154193393626031561492857817998596113506570706733797839464308932710558290218996475838071261400068529224501500668288732960274939121582284031395872559699261023489133930270523641381475189656704131272494634485716753002123652588446600049411063853938371089197438612592818772756623975846235888893197926633487837196555590688942644376183762940062262375280357151140148171732070483104449628648893103945866358188552163232355337640788905716986654479492350157101974352748779098042349032799216830729341323037943726564811139453484472898517581524830560775817437235059587331517028363775965651080886745344100014166533749985118540610442678169668487704106655140462610638875978206053160501987783367333982449850331950083889411444872842378153064673860178104395483502158583777021853669149835737088451300540710832043089317796407768521631787842323156025576822818071235324266490852570900548716107166851655834234038257240116196333066475824595874419067885723804179231581307985396968900998135543889458095199726066906481775813949061540340352050507095067242880714852846523920303144597799511567487348397070990860990178783421955479738720023606988197943563206958996841683429388301177300342322863719052057845613783059025122285656931260676791620738376712389433635765689476234925733658870833798830837045884104942676437631850338765086424747915181608989196833500888133066076782512518497685683750613216150298893705108371668238376529651386389552981632965149596759449440603856971727411828981996157396921405370832760268773140795559547052613845638909865181718901965312035255178559118373293469886093078828323385997562498715446529598831050571489969760133652109429598041937835236835414509430161909926468830846812516462976772202447307296257247724326530224839264041863106278631282596589860948753596990859448211991709624381237594278809793401318560578815770327818879584603670238775796746957556647505208900620346264179628492749199953017000167130721522743975397270638340148870275061175080044555757287104565948146715776784045398825503477834355643108023296215740787573500538335658500809037464666916502242367194759406594608361514406380851840192677000796181560030701902234641127136135717673638274066490372672719643886411485682931157290215385449083159057291087106967221749215168917048690510445173489080830031736608849416906240208496960783478914925320405965687812068986653245040725271457421960050975024790944254518751243050576680691228496583628576137362719932144627505636601759578094024348080867889559745400327183562491056063230912310886533680472489833224011515810161651464352101405267834709718780607454286603019993816983533146830238531395045895175546886821687005782472896493914131781628812106283832878712591497788044455443113499062133751857845890534526828139766261099694583084727318598671646366628585750623772420231961813237489321200093260149319676946982489955607862296071811421934310736692730193082194877138711702101314701937558007632058353204389231083497416024863116650822156286150666530230256903656568475303788867614966608224786531867366911167879598083226097013907790498148315014297801123158637935567295616127956693310103003207679044644596664909952557131934618151454527311126829793287859663180572513421904273424411565541394507511962296940659592189917941682745452407088789087097623253940369140983000962640943324281993765747209317301073677797837819114271172393987216335639966896874381988298409802534626651374022636359082516189365769774014696844472920887352563713158176290316958622007594961742387177194649058232176186799899283988383394386389446738601909804704447284105193805206229832585268286559007551056201794504665806522766096005859492727301213309130331711888501550179919153022626254834501946268377413248722481431930219985841489252733318713588045749321572070318830252835007311429604130680083821122298561129158224636481028046147832980472802152142315890600658549620797469387482198188783072860781813292861290331068146336298814929911729519710127010117748453414742619453897254033242925380592654247782037768810013501819969682279259260607601238459058758495070057708427768245202027862128765164240189750819396767380667861465414133707580625628367802610880099287959828397799214642339284015159303097020148174216514089390753741954275535326509224824380509393863490128427448886603468131470442371110751424368489310388855833415461860459052994274497940066224181693370193496164055500371588691711782989689482821556637256192946168841198168645994829176706615735235878325715184380734923259633991029417823709777926014251311187616825128501893293658162629000260797429450998582959285700044412009933627506315435873556306502056553434144022795372714416013889426816793585287322046881456270869387538877021592614367634901182662737253015640338116290239956437358786814970817082238008178342773737253451738982352681286746806783555866134539299418970907641266565659857060311121321380004961519480785731040795733237967205658411809094639276363332405223159370095938448152677253019376685406195736248448797311579940184141519885978352101299989991562491563575458154760192021200408600583659748432398038982162722072913145390160556805557613448472779819737059267643338031943302077761883591967056285164696992650783750432915684051118398941282238959544546545051199121240592344185111541953054758106179129444786131476594135969338958916669981851726861120955371165761382881634740871180418952461274521157062062364782535724545020665430402959400772166548366220471917994406172466935758150317230747076142471260071350663167330874002683112283087541213339300071392218871179663850121513445262775240399857848907578560034158550105016584020026470023624184986646958716254333594820111885759509858856050499582615857693560384691251784116457035626221879656094513562851937190961342946014978237765865245125762092431015782360393339919592628676674304721243286614349673767278691119111454360900797903159363866824209553301676310193513643764127379787078885786335673703742842016022795445778024781509251152189166151515409973245420779372893600176921336384539420292058396226118744416413005121444935860768885171766790231547718776105621735771854564457052765979325608699570930387593658788663182120715212085199990849080532934394292637431242188610103489850679738868484648661966550035209560358466650692799113836696719302002763062882366328619933107912638913697996379369116072980256411692523052267748303476960451310467476232562461468498933198215438717841564546768230111428571458590775903269027282829079162745997562627382870720584996631371848678163502699706274419026493077657159695854836227119141973044950328651787205531811667898674051931672568276897892440880194533239705586784875609255672353057119565899031926091604118343905353772856440630539293916145523292931252636104933688801445764789825891645484887453731025845480798916961880518514342806463088853120396110299832701013001928353025073172956277622220857464528712247793022255605077882162471564237711141473807642621044940541373801456702732796192439542587066993728150676755984141777645920085355684643066374131243661944169299863112507068967041096004231755900456002249868882648472401023844199711124521801830562157656683955478828289335104573490148693672727550221444660633831750545093914890070435828995731002041962878674954039515566457670124730656654942597185355838554859854985257733790124542665769595456859297883290688000363586065812880588487391688387826003282762779810507432741617048718784227422160372193031107655775910910973555232966689756147918990227505634865715371473482491912799541417682906085085438113749461352294449359765014110683287269745500704208773781430759789547310998524930557293129622857141330985827261308254744988658958023582843348798751994961020236169770090337383344505764366642227099433153513583060210651904006574827710505917750005668069921846850255562508397538865247034281292002172753081253610994015816744614715379602508392397815306470240694510430931779204182369162307019544460008891819803760389317158835264911935596630991835848667795219429441034601517207628644373552788861392060640756245244266055211974083010242705785339411469191820117036138909386040986876257689870020183752771999002855552960665564031321047604216114405326230292830325247379448292087810973915617634941157739310964750536500030616902837481788953687037368255627425020456262742627716617837745927314837041570958160350465324995572805553860411188790255140558529152739400780204899300353224052966174168763326495034058005363200828465927509728243596389346652661595719741946857395651951580743353162676973997141929075199601888990778278733549387334981574062717653054484367334461762851995650355649128875971306725303967421675783876820537333490166721873152345316853597088822092815651620916832467084089796610310340868636009525242213412381865811680048277837708492274198538834502305903331390463244656724232351015878053277502640583262913962089145525768551566737365643798512955190828797357140334379379322420230931446487794904768764526187916931387032311648600662057310658764543860813700562363376674996339325112783607943876154234031027400693406390793693044333518408162473334187813156005362759312819281570455658337398594387306498605590581705936660602696243827295961341688510610296919454384404377546202089147262769291917133018189981964471729572113038359556131723366472839568989371760990442890540901065818391916400843390223360748643085511525908721258519714348460389091503412231527126895999408742172456049011857576665835526633990915498631743592784132597763950911185692376751900935149449906412216670276415068089359015639938876351810221562141828268085806015452180016047953055392121028111181795950152766457305042597151272084665152648814933224696715819473854337282849915499126756321253809283459414212007790331469394009275644103858284412783569593500758664035981430331617513154714684580187209610264989354371542124303358670260394443842455257584604464702104131394369345067566414548371238330845998722264847084965512855521465032834710567376212566122302185500959489465013704868301715846174961562965833304175731691306680222217565960554053494091471775663716184775661750804963384917924047068033707771392918375658168161956183183600910279178960133829815933931312305916646373140092979991130207670119609212406497046991477331044230427908319002285024489289441836658136462745016027863668511505724422118916538733811417419886043920220322709219710418653759103158798635024298134497272957755288581681718795167494357029907974028063217851773470121654355513169261926069082559104641701082788289925596856782168746042408108147565275535069239083459449370413225020858930619435044399272742913468462806813029256056391691292114151616485292224249090073136586520577446580166189266837078463844890651308739804104816256054843767465808463081210902586862394510133944331331902848765965762341133180921464708282839634119967663011149055167144051730694082693471483916313612450219019257660442834838306977008481197573924892285785521328987450003111042234500218207409651682842643344745673518420571411178625562240592062196650484325357225970639991718170983577634337165805528240032429011244836039655571828889451529262306470223743956089093730943668106785997660120703882790347312113158172194045676532910619269566782465642356845279079291243181962991005563284474173671998886340684796054548336565543200717578901129117150587402881875868955716922707042939047461769510622072624994874510235187447481776845676730165754918339496584902084744248609463341754555373709903510345774337464619530894529359780852246942997042728023419094358229140433440709076694000717952767404875436239836087321327198070083346021340683958032769411938790271389516635710395875147579924847224831192517880473262576965971013528041201212845826845626551453462104555720205343866923976378974865957121038039594237262287456719431345771962410110209595553451054264067054848321517165663089486772966846827872720782064251623347073269377413329548572095094894760677461763063962643478005961322757064814459022845065120114546264197411403818825550836493395086066548868930713305244332015364907479927860121698325986333635247715910109940766393276726704561871491890535969543904830038379613864494878985902020042578144361171012436129980084863668430644270781591114622310557715418905811448173338169267698278387145005160118891352863899785724763683960819727857403641938943210356113950420986502610931765683399027350626789838831763495439620395083457452798569101693316319594165899140524699056940323605518447014449423231079813760565311559989357708399475333691756172308459296786388064749199228546181332041190180694099470968074281815341051575154498631698279417100863812196522631788418553082944747435165597683004708125905525345943112613589318544990809439994314005363906373097390371518455748648036409241395066840957880283272793527816465306110863536429708595519720325125655882890330875029976533857042042039507478613443126780019185071151230154088549311849355939112379379138566637546393239652445720669624812407821432410095857236828329276220390991787607389877106453572803796984548659218031151889990760088729716562940554681313298114959540774773095922833906483235800406032804083146276329595677715181209325587098049132754109979889959603585399093758557254294521475763166072298089871208834806028275574356335973796779142789041458124468153036058192201869606626612368085779113241956854014544531022165090427796314682540292369524767700296396670329798743942694629929024868344697100076487632692436981615326044495319449441000488707769140261034546957553191539514025036324435905061391739143960480720723932929736696548291964905804758689441990189637287420537522977422983083264842104145707913802251876238345811894922727096181681952902695748772502348558251148706229969596325533822042604277179805667691702214945827427548950027624677254424974208184755688828216471898676356964393659102490054724548831049908686981041237388796008876904712839103043673291447566695246534314271830230876140714361007219931951425124644409048205603898421286055335001459627340994683079693558539646991091921048429527320394226075559862974396159321098873227847818609650009434255820885988064441340198347488958424328906584638523226376490131277791031298525587186272747569937802697609837424231094160028149329514073578537499834468141854939311941091958518600449730873749736358191056463864673958423890457826040796454031070852121669877264822020720381376511248135737430251395105055649490151193010854207725303035607767375225053668973456468168826194762728571478692667847729102955980522660331432659024811122604125647825211308017365899748148459375689718805569101325985589780823953945366334083181168241080858140022891044119553781683923197423634858249450460588391182850166927296621114335770470835242476752949652284467307449491057039718766351988916007113376635200867359912222743566935727948058773294945635082814182096895594064771686145608749575583739755069847366635030246836465813598361060653837329032942759699104857452056505154494274128855533286512200120572163569515538111059580686999917599225005806859579879969476235944322256917581016313956481504242094829431218938531285752660001889785563039248615699383141085464489162326269613609629842849075542290740469187438271555398107723580222284220326064766641615815548846425067034073999015351863956750814017640668215975955843289176324231582720512801786595998454058401657532731905146493536036503066522642811348095355407678173372742737204245087471682657213773012470561419767211601978870614358894712716217823913621597368377233484586958466769176139249892065034148784390460998486051353574646685938426046757801992269541753509503783570628684166853906644408622944921723411916927884818616996590530240967100198002998761358524739766593681828454464111915732682366257656746740225762368160953155495472917804668812226468081808122935722360774955372424943896559733072122857709449807256031636519954279200129217769086364750342581574047329839500189629605571560539482638020457081514478288826568021213917911539221016758913468765717817624871085933013469226423748390951671348049862739830594962265292068214135323279344516962219014704789410861597823515867203442795650422487852071600073339064183797788012067459382628456483268417488748503868379944827903992147868209145087187243899514647211935965385744918927310892745342734673994645142700103967378609834734018885820802026202622174426153746874034250425003410160772024291933273470929446020778028093574574143787390591064944573981447167653073781332501954402508725793368681650134175843221622884032102356396706747730501648752199800629455203010582401489890190714703348649621669319730550935037579800623118026616686694549147222365464525317776028942003320165695858809128094075404020267869266564234661406555654400840226805289805739882173521336899544191655324719099887430049626325780747368468660887938069798565952672031271338063904430252739396510018974774227845057869678344327657224042738140769374831478824185425883231467967810977192248568460400729592285752822655041701254982648466270551388932268736645557203137888075840849845086704265362039365031657331082370441910458309717467247244483192785946326959842465398138221860567810762539036175573590031432027466945633641444254645839537003076932300733679015353864695408660294962495987310583236052432319687518397019922596868504131318507967280796058592337079053426391886619081596498219326521600989897360580995283314276063378529611380501856823461377658632741266898346822420762438033406132136572386505629352584012438097420144567825419568399371238222144510646645042161470443384541103569013845881831954551618459160332924946592324041701057624982651864501491031942887803030621562660227574578946831333152604446874652904660376730518966357749546907106940557458211371967080048523528342683146721578490719460077087906806938022945356993951579990901311190457700413630351113354977854340735045949685432987967374933375949940623100960506588994714051317242724181057521789506024734963687727146869188206899954468861701451927756681060068211850463065337229423865208020298540414528372894465229826299010166889611528408812943304054507390938063512482556125486347261924994223920822865474055933155058399017339925406864341660798941034921227819618119864251040244656771232262322936575974884396032750951596992088119136887291107983752495519735596560274678510090200279796845657654978653060912755388970762556438075730506314772246864102329147061785309998111177276468755849391912677113522680069338572576185033185186147646270143502847616392925388441317223487500251179559804525868226957838177726652710816836359227534868251410227420157229570997314615755240400297733054238005596552153492423449477044582819605505646476322793102119502634244114313044878464419463420659296540257149324833144749649385197097816623006434030110588198061416435197976742332106211399929516077997306880468117826253527822682247210004308779911219379763962832451447786501106860158299236096070847293306919798473788232515669995305443215828419364163309649603307814778221165176419049574551859936350708162736957095965373737979997248211544169944987381071282322821158617583809833411171840246163832990767173560213745043915906200458218929116003708314357925982290068258918969320989374933510273717455986682416324246765527368624321554712639007509349038994144715439588903840230907544173690410301000444120504310774615077512144220783831118378980088193605658012328316410320078092975420640990934833568973194744860425195885861765756078058433207385344419278183683709295744703147715600555980475680913629979151365081913148366326887654911969079226800028692792357410805635826533909051214813602422751366201862698761470493783720672695243672491236989165432365306869935203975871900094017621955800753590407655955530997715300146283427150600370805829317468609023578107956941843478827872061378765648936287664462185522966241027712760540241929009314038056430368623454537968212436299872340355669666138323880543406320606959907317621876659046740890162205052372189242856262654571217996782240162754862073994851680051472732875422651116469592259438760888977762424530818730358799720517650513584178499867406431195215369344745792569312072976553002794672220022977170926296427284554276422263707469876482426365012254057157822406638564071424114681790139165121307326763029766473010584467152520623690779983890112375155040402184094595662604035700370142703230805252476497781882110945977933051551497292882453062469150045394058153731425662786963386335790452544271889065973483910607911270436661311873710634988980814779781909986024354135115429178504007876054756331306570754909978274106827915875440085300801663412061816487048000269467668879334446853740673097941292701235566723858228005407857516725462889098820805213936953910812090481243774147122885432839884658953500504064496274604939468505018322053513208067483615885589758001117851726151838365999290836992663261248155951051742893190289263132191004058671747076622916589001393399983541399838497588211119292809785304268024239306374158660786861495665317040217487113946819764585034037605841818905907077534352740475049851877720223357496090733030122729246089425239052367084499927306667091696196717575107252995536630895726933402579463149948700082680815257076954481671777219653174536285621406832682882196687036461830804475415705782432618864819612235071403533677105648126522067212607921084601056066065658084025874269167475057561392332852099228425145394801658753955309023890229510711365583962694611211180663342753205178979291538639751443624642164938760959119779564755858977457896027216808869589415069710454886388132892234138568213835415522130337573732882901710656998343512743583402120000620983437217400418350521346642844702262378890197012797187606329666425932536084388508900310020997873198942309259421824684804356734898257591011695469315757617481269633732498715768521343679933265883337903678441685230766016852136444356403720607729898596554198323017697705795876149815736125055105208149477977818389962323750389496661802610061513683458051755461284200830157343612784186934493863739386384846485506746255403496776205337933747730995814549417260596635079717645508866365583288906019147592551490518412170505533285560149554923446076191678138765417414440668359456564532224978574560823094038281879610014468254615332135601181911385126523847916840924810994082996838502882140556478569069386087001996895464316337256701881917296747509247795123331650064738077239412374455658571195486353878701906290006256449232518246863121160216688393847350272553378693641433918988377243717402096717031055033725580502892083185921591010691356710704804350476479852802885967392018225855990451193656160402492053446763161528398294219332814973347309031542288509050753024851291369737116579309680563455315985692722224972654175624698705554562619150044204663490526780829966752854145820630701922484019202798263958302058014894420101230943444749857142552705027603066337728348382712021300668994119672504739981448657479287003424180570219179700418639757520695783692224335023386370396947237031633144978338756630368041826410364873559402437529840514756577219892082832552860276224768697961980450726203752202946751917862390494983280158735392324355807693478625500683526372025750882050388908223589808003058519533013621990478549478932534912317376151803277000654969242511224229316881806408410699148638914233534341722082260880747847001618751847616940351605889103170199407879126739264704005006370994623576904281644073952673738899717437714020111538789729329054156370422485022501991539817220593535744295898964381380011711440122008988574188108170457124655587716107069676760136626378138191410620057879045264965438821948994017805974820381951460204024853252068328294158037382089968018264826559958730544313725728584244107360593995268389689898869254822811327260340175913032767437025612032704554081028346231628437314839215002141388324227003407439917735904472381553824579281998427484089520473636785816707561269638820922022405300397719696704301006963605442027659496175669328448004613633760196066500674612000164680678843610967171912442408631130696308711739202488003603830009894842368501306096814115074258674842403768917000172602360913306660620552812224415258870228280860311288253799902597303982678372316294563599703973941813575093460936778108246695146810080573042842652619219953681294358174761385010349915072290039789103966935129237967682134773089332113465393546954524411429013316089956172748969207310315018876074179323011306389373749801596349899221483419588443823949390942713803397439865792532442887510717006494236560792872707503090212483451592435569202281916277859401469076627212731730175846643035405620268635419787306565560600660227898989993434793264387244016662488937168449021749893892935230951378995350808476263323053059410333103663380053694863767366383962780489937153490408208125269171240726700776902493682090587810578195159215665547151075286058816049592536443757726504526365154011648170009037693591672746045856144302711830479656016512495117491039693945009029522986119226549434283731987047907913947840528756352363566396886685431807909941200136421445386687544528977021971777104716393186073244728789455269782956930830854513969736625142938150387623485473990901601304630757327897976986546115594476082636935270179073001414556198630649572451200905758220665084606726259452508661373062205319105465698827626024276187919271649870905158502719241236290390511355046105763774291345301718337369246375264849309462308430474021369302587463957340770286208337359204850282492655368828870856858063631966360396574942751186733438114251002906989880200706493630008393608428932991453096595226153236651396412105653123118576518580086313083526273229938877879531198428774911524049281382682697229008445258503497928349184841874054875620998976556199466208531579667840497638126117673265850760503310308553191517088023036753988543072704602043780712840097154879591583486856132889160434466420524833654195031203254415462819714269764528853760699865153537800095668075283033486203100276174318224090019553572610438150779579485361348076060597696543995778654193272485855563621526012996278857151671056789060282014678393285072436174435507744410318620423718719323811435789537864494574211297102174456604376514143501182920407011923823393903220414312765647056634186907147237384340417401556400816273675009544539516600487065791430556563618334493120362730731281267804145686242624101803130195286556569100317553086122191353580802479739098169939498366001191976805924715035447763928269888518416957655480879825835315321481782572733002699051091033934977826685921516864407745409088254859475154220692995271822007208126674521870923174876936172758351832615440220921030007463025559864226736199400702404146375310146146537168457741353196086937409502075371684354360500643670628193407121695173976143191336287555612478438938988686798743812313042436680131134021264408730936118218471916778209115211046979577362226873205933597177692270869024362249136744846161843579090219207911360104536548708575599176598797062716331141534379111151026698471788659309179591767065035438736888664469454714560505197499246057976046686998988212380852490699194612667474876212105547649878167185306812472816020986897035003531449308991081680609047261217526439300529763369773745652543267884054813817932933553322431272837187529282800034230119933622377602933834349833234208263147404604514482012695562964935256106167780703010591341940874525336564198134666059600904678510297269932836484180693832567072976400581699713543863826921888698156185082315296818379872465842162225296916988554018940444903051276185179932555332385989848582937205474371100894988716337237104365377200794828661768197191380706791671058953032316263479884664334496570765250304734888651453302729280383037394163828549455878586969855314987379221615978693277665643711779591722915318342823449417024483347691334974332768537926849222339171373272855625349179613702148443296339826644888479756615873435551389188412320963097698455786684165724043169489075136873888169331641069808084047482378929745380025080045233949761815743646764697019764260611555066374084251031809357147560825661564652640531277764122851907075061121897858701152540552975332045123689019115262486799164790317790160026630751708169382773495536156082307474329261223464143608698818535927163354544923721183304873975862080989456777488003279231369604274798052818774708691982832592805794372819383883823577454012002198319920671283324310422274282685003983055022836291319881893058336771763124048416377198944203801275304426407495253141676874057675272490467012413049133183842716757348981068850406397512375348233162376195197720568370436569142666796233726296033341231541765988353024721725960060657967590410383873273540642138644470025580213267240420822162779972514981716104678426964186855136200465993036200555854400343316055043565296987212998829476842736750899014359654009494360005528546453845945154187920340653151507060227207548403770561500542017546010477096440234687994279251809531819104123590586972681289083306060428149176741307243750657141150542268985246868466484993798266902053016724478124270004578944053376876621631245039958132142565306068371632808925207000550090236443686550386574727161692206783802386331194042348389393089103172007844214531383533823964481082753305954439251779017908060688211406651348042425234017780408524294355546607842165941408443546612119432417173438869772016141064180298112606972236244020999383215215000375874666533628019698991146203850265969929755527050106785611235985476273180400489341367112654284160222239650487425185597269063748027261603370637098663785919399388890108460513715841301303991153832896790199552885590809950798744341612688343321056928037387645341660779231901402374534255062101264644974864081254888218450566737067969422338842438512280514353296963097726675157572293606679418153734012956997825030195828927869640015137773294658698890501211395952565008626408396100088746746966790436382962803149690223334780134482019540019038624368787736983868821641131889126366691318252028421454157021321304870960659995504292544815300376537495681479334540555610147437191223426222419100987932914628000366141486877268587513092695183295830865031815941869321399139986064541509173537674499113692309992444955205001672396770064361227834214125760907822062211841824254650248837265142893071640927438131438172069187405820203546576976656539140673083024216414340882657400299891280534575582837176237314402104245937358826402618938726272376057315547263110109800522936368811058749333472279710251291607021521287481081080702994197353273690571427141168606371552270871211751475410844998387115248170299125708977606347864370482193860207141884317859167380140786528209944564827001319289189951378265744936792423211662787702397888721639315207584589213097124356419106174666921335524759261726174255800098515813836239626908636923917608488102660497741877422039726219876973152248091002485426925854882933891720282850698864081850233239091632630774615033449897638600901400730325409155970548686837937836743678531335253867514481244654202700241435466034362082549206660956128770222633299879598504500160524119148654902360955081245020436417709686421116486608683666668723099555013758825455520543092355810353606800302330724419247034790679777934645029230450008291170584747383105710433675467523762900108548922158897092863988426913157854334244733550129746592901372056723838957745883748081945637427484679035182355983024536302589027038191116128864947216036964898902622047965303760039414448632011602137543982892400225079492680194218337038995560277468403445866759800253361705322763242660130457444884989316630178811985008173521789368092130534853945599589430029404475305986797645885025896820035093502622257036229172030741590027618617321610717632517336579017245123442063168624242937210918570809265266076203015253911069234440251704776819909934705676578061296248824328510866184525891088685407262620379515977479316685836197168059858423355857458499271188118460584453140930161000178021109296312375741755393782593163987421409030364712999313490514977222162252611866707247394768674147786844057537912290659513666518469896038274846509777128077023963574327994841330661808934736709700219521313109681023332771390510729801585254907024406315092784755292727953283393038604946044607548950875935354791288222604586221445727711701455940061843940286069502156679665257536392081827097330999956585584811005076893323578179893118826385111051744712077969814044186057268941657417321914486631516887960025927933398913911691279179891265321322792046059058061284491076373824754827563107207516797192540456112509892181357725683538684259563997150972375281211650140228777030409429606759346699620069005938129926120560527079055948846362002483997774442110301012169417006988954922042949572307731694194573648994387791455169393912277898512541379736225875152704779786501335274180937388547711790102190886747032595676721663161084994162709709326285766431041793496075334863842331722604802659501904108272243662966527528970041577182513804383224725733511848584102715686401785446142473930677444045976513942708566734754860222668809526237896176699643203915171985883048785663202420409282950473040536719071134617401385124637961534241916023839674598668666978451564793284254936122594597971741811015928977112362665490764912095530391894256396769453046469464500540370573864654564486440278953198097593595300595602244708179615189392326624960278591940210358252874790084980524835867571799314683348075160912586833448549081147347413477459931519722940807259135742253190159875959728169401071731265641078374113367764032605382332132587754124546623678390202225967476326428723139382572225089797278216871844856023283145030949431597235974077798708935734946291132168602344458485771566278052935099437422383778644431921507525382864561029377559425462789560061112978634745471256715342549758637020013440207729898321368636470346248830427643784664808733789171847443836579586961388937856095210600703692219675896359155561758560021678685724979421690313786114382494139348367177431841543847061077145858655621053694889471446088478474153308848157635991875811663298719664922401447097427337607848344565290183146241240029778956256515311681665875759743062824509719851561260088133706965094914138470399332880877780832642185225612988217767247505126738553040548864873855517999745227622096568580811511417961851033973142771891538112529623367651718217812754986924767493847424844844862665140128102824319695796324117534746332372741800082835789176693369188532783301335644365002523574843076001083121104565347640260907096423565579722032574816213373695522723580763276122063477476757569497055949279006105006676384137072836041617156089954627085765988621850601226518481340637410129459678080064472183172263173760024634314578881939068164057694852401327249878839646526326170650259690233912801097960121988692898192983048877882488441491299383448585364423652273440189324984666985142669900058597389350907252407890615982860157064981019433347245826570398336192914912208718509450686662705718234361970154507501396646267922390201069063117230259762418714491949134346815529134785630985569041871672401596295595277917583410758401782199095790134641085047488095953792100208478928756607060330528726568650263370642730422893846688399003621413050450628635402441414877610008029637540456942208822826972377756907928842767871762260039295890237051400996219653602855250230654725448671033923733523430581978962549386322576342419239925161413127817623832006052674842593076422947605233595742009986074848154678893056848946462119896845788464126817392119842909345193879059292939572512391163675114293968894731001465906811278256398127251901763469930485019970756434667626496995100607121604964972788021704261555558218298291783182563891678549207976840787240845991118858889212424349894381962989794481244390107274491001267503286855808777137784711822728326549632143226020246239155424612307480112694968608015924858799660990255926230744270229255881530746983866540726399759178891088691181390418926711184631905320639162751994078173559655668499903119465355580594938997458191366210065013818159935850493621985912549593426830617892586282767509874841210048994400176522930179422202756233791012245808512920246640882393172466966326965947619345142956366905214442617094536268205142502018962021780646893448621933464036319967747988993887313160640567025239005235840087720877689500271345086253878715844207804500973309269528328470477938774179834796835877533195966426276376182334280177414616417515596038370847536542693648232141058323575896740958686071524941477375036863768504022929094267174968381180404751587075415627357348815200530713281763125742461976244017107143085526338716907155193800360925221084171613492509814832623510079470329322093492014136942814278277245460749994151421670040571020457304861394445201688776620449606455711199817415215351772776816077387167902011504587268690069639348222461173366601773219465014348045418002684392304820609530003094856060036114426891410695221268806192426273755590124247784735951297182480466672853640816313333915282657841271022815818054076087119930318980933762530455909983122619822340705103468524457083163350388250651755685817525839242322278210593165276814736890517687642179917346308834133565614222650471767636078856974942754055964708215095686026122809481482700899953858501735726253566705570312112439222927764616509794580415969044474562978072804886651670487903963852800408692978475281336152549911557878042186695518853245724485751006349202908285854262700922753721341823799078833501411684891987711606098889140225554241581282785714661198596855975737972712321426974644771758066242740747420065580689448875421388977452770984888367749306019082639598591106147669496414855490698572870673070453007348295005993308630385787297615779677814590970191379593711088835313828250868705088751405455185195165529457225893501876326753135349747711620379961320365464968515241280641744076044568850119041817328851395871762926616904181122923178879908060897772188241871251542968959069727852766357147111853017047808611456355041682549056286390200200684169248005155646982551190144918887444505270188631387957291422520205393841005842880734182061207751427321514733604697425035344834430526882440577246340655785048401313330771909712463595106419471278780862162033728015990499179882908744862873019236180170778459630282937955430000471504321160317148059853614953375155875001935314829017117502712951515112981527985019129436264759253956246484019494123043891494634815240272042047687476160455562681822890149810139585239791837421299913067270975915399374173193535041120541306941215821840849139879630695065132341381033494382443172871388082211873056287983889127273188865625246958447681064384145050217804519796216226565939705393661918112328432976257956624156072666532423379992761272217458027658700244354025829484007029710692291531448038914517625331572579565850084946030569264317357329437598832930678553852436897696857842455185125535101605905033916733699749897917657930208056783762691374082315621050125961068533417454143332899059374434146972408610565755615778578468674406911530156363608737752558752566400791645221562561246517995354734445365230710470983511653956244874554930140970157549783859306099200189798328187142152580027108090313761903900380475276815776252221765730006029478431317916034854616842484202965839218628291323277668949309778355467123546192280841580421115037098299007371662712012383355284425868510243799173734457125341870561582387543255252298694629546491852000731883547086953440613066504406027016301186127401406802589573253772489662970631635016782970040487012289377910265987019808297712278296770444421258085458427716569589456291160583686912710526102903907136066862533459014546555837830696979052905275400956449598690818320328394796194296991791231534397345155925046445566447287064847521288044533954154500857031983288465597992849479279347979193515857499239814714372153467076568344351673438060126955540693789803750544206698083795002309845829135684995976234375060053281112969356587772694190199742536975618400203071893788792550980788431688587786458690977099658975408857263438482695120930766063949454948985381501090383173331186196059013692597574700870094495519131899568389191994502633215481947917744927479207701673334555964022721179304038211541760668513028890112730247831835200667170360257358713950734824516521171425424531022041279757094495586054201808496086202860653867428893098241034450724745930731468733919221229474892082465232479116017262597203366302893519265388953323531761038943252067114195277274888699107605106929222960372785652510050270897212455011360901248364701336651145534783053101726267784859588214896747663788220276855885236294580641482928573746644959515695534434805689659479281772920381523561564874970781730021782280666454279933110984754700690114379646019057105852638342363090124864233964156537569905160216687775792643283713758634235659428968606315241784997078403093830536680462024394673454830873418556980925700338418541589041025305346374972967719675589652297592842001427766084768051403435508580070249818242315712310673066559134809809593931019548619607396854977262946672015901842056611674576874616710480492916444536996012439508235350431785363616589367807709323114107842991583035951754192165217954883765054408857226615948753670469529441937553195536577089548936645152250989186823482652311712515535877297192034742149100024041047090851871581005166336105348669946646260053195674498399531083525887085567449792270493179605989110754149883493757485218170123141182591129117235910431310134391061676740593620830817460229339113232963466159280184419634935815067475876226481296761006456936839191402295755062459108383846943276710058335142005989996276221085285357503798621707709214424270608126454106105796200159840435568670373992598231775671018943438101967893896039866366086274841131253278256275179190191156577262386507028309965111404669681804114288166645828529643363124794366436394193523786073341661035485018641731568490909402622171907730656078002980082140370730882628047099881960203864464708571241260258165249312412485857138099855767272101154126004093484354046609105899288025393151761934911148106856300597728843673102344930237832583711736930836779953859676147560571439355989380948446960084787486725993694015070224974583381099211635597724582404671916843711551353673202089857878685383065821210831384394221551435769942241988265764415660355512245107543080368928271091502469955837517263352848396042597161609844154050169414625667319303415642778286552390014387434734288395392068364193129002243926789312269482629801802373059202246469547784061332422715640085010693989680732713770354017085373074628038884386675803598786901171156834899648874660549371208978918776299256744942944957497493795548386594521788341213387802187915102048964396789755645069978718140735402512114532513809059433774709039568868240905317667997588178813135834051377821618790772895839066218592219254964053636972522102926523340147257694916407957347755863305822188306458186999599167113111193438585842013385548687252859560358720410301547912293504538203286238875764152376775873899591324377833839903134113011566199942146531446191217708012327912364017861331089843434906787369268777739921138755400378126385530209931574778027462609440530061041974798700129733027330207266655897891902051690907308950832559211981510726944469909264960800180940317514023432690445532857128982102558145977460324838483593433533590686738746054650782947690517920540720549953460772390344191172286558398443399161089333860564524987318089928331167285739524291707908223221805867280062330444356015336035994973219415848313142990516764543615684082571755665539827548021791208357980494895536219431755677330681954486966074871567748581236080200575752901266373876494029593803733537347957646575148459040933293004396613345383297848026452296248534684731886357547407473445519221199836145914526100904898533565758262414016158630649591240554977601481848506379884070918538359864125742926660027219020705889134630721851725636504226585807351814828914448783017825271603002851164287259503230713572471499056024659795214338452917403320679190358644253625647661275493143032206101083057782728362626140490956093514878007302391991394507750825579253821415771246814759202516925000886263426209507458948850587913345385806395087118409840659817611619776212630082426407946454307925684525745138745591031682824994445216281646040020927318033323279412553940555173106982665950695987530381813840410809065605629187060150376809975664670687831042191508569030365630149847884081535538385699961648522801840982453288509334467689444554229014184937032877243261060529103667912343867261517169016892129687256031373956131399773396883591161052568606758032971178430899681231626157895480130570854189512862850973451214984558548095934224377961959476731688626066855615086280161268958805327121040469670950078645687567462343336907827768768909068087119383322499675633042477633323783229881536112636531270897152053856937667329929223010355684744726780877020948728790022094436016012997941770760243836715289361933189298156186073490276334953342903516151683370084870869020008125190530720230445245124877600004057113093576089617048179001232928005319541202278887515501883235999430067355442195288340226434237889311364990119019749567023599903129200887839410946995171689688651472849696924113740267844942076506548449725680671574462058498839333340200036801559135811265087543373335350527546913433938015115519211024906768410012758028125778130402507157999127263483935371233462229370071832861898207165790356238382020216432509793545511541256993345255523765334187403167262538532441219306786629309072170484140590124503388724711666722442872010527126911826296943928660339075796879418579806696951108420667387566680794655976437369421814315244396198123107401148491518341333588145175633948951922442356192861205637369801397331489612847715985955125396125305646370941039904718317206612501795405684577595619258393883439898091912655653970203507944398357970151536257568548146749869668664805652422008140350102642120053915124978541840916465633962015419238877511830879908310297397962346967340376259741815774193360712256240632708588768781326290169248920090237870028902983572417777214687471325620529505753475098479567853338813647283109938452069068589865183656466226558320138189084222555588421125985005284664677442897819924345066970337995486418218395307242409400480686406230372239497294997171342903116234569531671879573885618022191145453742730663039210369543054344634982125188033631035893084593580774554389049318220943272911878412845888785074694803886400637996954075186691131595687823846995522768523718465467169933654166501010148679369464663070956129147534183069858591900905159116162059399102759881072202449168643605304741924940679059372010089363619329952803284150448302107572492999018692988331521031516495979004036519912587138883293298501494363183051790309868786042284063035737537030713178096607870244527442543236757932488957353023240417927230856629229886336873563571825217058720994112514090338261456279875325196002867995428097574845542361857741117110594219007669877642949722137039273756310115993122005378968239195343626381846560371116305983866084870386630397232965292763502343841389935141461897377072470818252542111825942521865599496147122383950428448149441477078093362668553716068564622508647792328383801413241990892826408520727247270352581173799779196007071832653031946956807631655958427698109342702607574740622389897681663380880588966198653028335398276749190088377548950330335890719054161401713462591760517245072910352573190835710566723639248311354927512198669663452299689385634919424376536733658566343241143146084152618685308915943998451971515563667416523607353054965543260442128804428305516756405004256583622820651227047734540119944041741129566651115944140652067649539397558756403983746192699840015828063187875175998706328436666394219607177390126719111179528944675352890372116800760829158178663857586384308904263444501020316695201799378792756383772483525370150569144795413453189444912721249894639270415610080784951834932903132106995182122858772142943419000018297077368543591543745692844454923393264052640957270135982235683841008951493562275901639853165475270207066098316872284317348246046935409224411277822443863679600138727012678191864976340328365029626163403022759654672185062337332653261503998063918891986862127036968359269300898398393733689897315782402978780650438247029034506738888594568231694430238836575063941762706776806548345859350660207967931076708172752838527764274432535032915975273912995858488050014562960412692499455111200857538037615781036883337822504317319446979822394284060286795830067282440821281186166291531550808328228197527370631724669099248028627167921130773606995063942318298962169425818755694933642970059382720036498859326240073567765750842493945587982367726322878591696444313869020339706240539494728490826637475140656977261823335273955860449901087949511043501473746734791373390005685277928969239612675791104480967331297984647160929563215484983982438395260226029769295522608992749580575305603284598049054328484585810445065341922618015845278588671473240326358027678652879104931202564186203112682298875997806749327348063413466342100159569762672706719571276540556186269803381451657573761269530525590410841623266879360163489386835455096164106595455570326048072216060515059693354051391570346644441377126209375778814011784646557703910539163025544601390628197507604262909457514359237005940718621246463025862875651542752945463628753046323390898407324252890100759475556149659487860788783875059732440681591027275428371940019998938976142098273003971921889523179652453043308691357542336444810819841641453956044912290729055625624109398390108480230226814305404697514934355378095972100566857702544179024179203201845058319906553861200409178997837539112224248341164913364280717893200980080906773569697248928995678322780147515196591352507187313206003478912793152142033379101804837170968834367413643872006396695760556491361604585370797664663529843624847305490532509802239728214409883338148048400798134963326877684681267024660831373041258581415151782460957860428864086864673936869985486094817011670641552475892726167732947190521338916953427412734776748099620214690736972621183572400293877193784671783208252680261231845068078257975356104526313129359026504691088081255799404841592206047996971703207590338618783596274016607877725682991292106862879255921103657835351279045955804472792379085258000476498759528814095983565849119268515880569061016975952168459179855038340269306641370097428774027847822412362598573472336180628256932680263475459591510281350559996364973706543831700299185120775238117655589645888830926575741953710194656634256395517442686533144794619720282325897261275462166978426718319829999739304505109361873444190796883913430518668486212449585479667074694751190158668800123250960642734675762629571556185442429944966936907265294421812443131032543438153465942181218511643389891524163086895581777760422915905038084450272269104590003945619028272618392416897821004054396200442527232610409305007722842542906707299261535811829356729306554554682248017726827198806019885582859872706622126545246131321319915119376050803097663304095156227820720600570150376487436673425546830066936892938058816834346608553863215139407712796516878141048294597782795159437589014942262704963753712502884169041615141789631730311540237340109903205121526563003734069409161101925044975554697889696768564606184998280883158744824902530536735301925063434429919500329316157815943194029552868748279862601395415831704323612816786115741984819038735327520671870141953248901477051712328108604679312519627129678021896746039539097097972902901682394658250255175222984378666753652243420338906634907812161532242628269032679794312633741194600396597683081244163541711934730880983997312806890390542890284562186293986783190701070950808132083822333184772914023679971308442432409795048653713875596596408016406206655762368235992334689670125666114153747535897525177851873966045351972966095233195318268087621513498850267566087481362361731392867937152590933441184897276626383905649226816304787751047520085502772413082232721092383806032573228027666549036659520547553061192790854074262627724518882448224292643498115452543133948076478566620433426202579630970801946312368074515639119855672941638884728558843902022941549038063326536421007855963712352230073442521547421451556065540590438385675458669554909313271563100019028204312933889162554605449298007371986055601661122566347488976682407597744901271698096679170054271348406285505530021255784354960433106234498990794804582016576057162349423428231755223200543793541621256318786081265443046201950313557008745435591500755626282104479783922383816413397873969053604275369741208295569526180356481065410213132740540056681489285910068371901294504902479475448341662401663239428788782727882555712141019029246155160235245086396789356305582446627260416505598453489385374299818169809105871782384600151342836689830889323468422357259910228807823389996934173173022115331767943077686290546066486354030656816516832989341340326775216442664473315389791045519338395967247405268001982858444347277449835701791953637377038734817250714191021142771690186209717525655811935893150203963058463971335773231541854206220379636494081846015838607970102366821814109476367216025597156520837717612793344314238874954565443918236883899571232601539884172194546051373448213420041272754643601397201022570265471105947721441671296590752839788385047378863697603157304430243370031475869914749365373926389373816990678749984836486648589232477966130563325084032968183060433111375394906865572943670809925119697905357319607562624281198625532233066789676184855680217772390141500512838002211274030637071113691573406144960630464958601009350196846413220352235563243197489375705396298981426986880012251617303554647977188038229655483079914969311194250663966958774145531608113046097041053317855473397159302224967599511278416512253776108322493708947068908239207139926211613860008186450340609583651901114762114202190016314933111521876118707607574260424066129672412041650960175954216369920654842031719224774353162754715090833075111118932184093096359389136793627332134039473930079096377622084353919711044967854039441796522424538792302248311250756927498788621840301015680347528972541144905497149675588326855666486788703346688110579243389107687366818428891163348282489323482849484301504029051938204206052401806308538262473722972281345497755006547236757025753957634433816868612162807026509812264110822845724848311942236962605050124148582683690007310831841467417711826832064199749276276628645854684928583002577453006299254183810264130306685833562622919600576060983387979860995220027507934651533962166740417787953301633197273106005046783404978881801731877945342859770244207526980985454748944464481964493200741716867841225072565006105971246594102256614464890880142344040042646087776783153466490130057630587223029032810325804578934483787451230020312731918612999944251096984609206446587384417463719869847251285874246470713103569112896807161150249693398730739478988280784026903036985227482950262440019285127719392610970117893700413308154842375990264430488280495207404941015033371860645005439645645071257361349185298274425620218946443034912963518156524019608079950518893249987720732428138688314610372256051487808230493685118909022439241441635084541364866413414623563494623074364867855188984766438676261104378174100796287091602369660248869786697890604807944973348064291900514756619482364316350090913567581384241131016940972104498917768350549719284384120775483969190599649739829229432839954554634369691553107043776254330047728881458977021495769351430728510551430034147712595846158403042469558040480568168362524814867465646839449881426265224189269503169485273336970273435185706454199308625804100029684456198829184567579020499974843445492406444899376359700252007146882932344716526903929807903498342883395454285032185438192472884979836173127906253637599529463793782384825017382715225954066573196660119652479892991522532355603360705549823667847341987602816894241044564735930042040777284230798731691342405456865323834832340002697138227993014195181011684032274277653510884657804814080217131548915309228122927202306940373315951828266224701032011042279488088081910923748641714582242099781155854513066876638225741832170640043959213136482360748706149745468410822162666548094358606719169362597184628750536510594883106405809404314057336659396849819860239301031970459642068807085693597964154939447304572324097277968573606310316859279758917874162440152728314914661846649644144228505137308541245504114647434567520070682194415529508377046661134651403651240170348213730252554962114167870092070556568652141499494577171922564507370553771465788314385698256650509825949930986501868723957825031134880777949209152605900030870760962821841215353164387083806182383524954098179816954792808540969830382953124618591461405639519884774567190683034562671154642544632255682539287884912681722878949149250549252834477532366038795472725522956073769222250066533631407664209507977505024778384574376324057033583975543559240289769407300386005866098226705868488576333434174856294205787565115781033332654076597217989009679983107980936686413132785091329049210519745368260886520868928006205911101444501479506045055330970035215661685426493316270560506890944797507031706940782618086712964988557994592850133106895723899477107646495992628412000822157347778883043603019472715912933517250644025680328178595584393852344719430036950500667740757419992833340818550458526582453998861660431316696179401678133402290838173116890104904020505705420148075605418796086176398283094495950876953015165282158802686821092780331163778370979168754918893439193011121254964331401518639887496285294831449945526086360210543933546459158790727210907558547971635364051397409866318961761830477731024409919864075675787933360772291813325753877899408910070944584915882638780268497122161830260361628998553698185396911588377784392995541906824710570817687320315293391544327152522623400144304417540068757220927307240962960549676781382927460864991701208407686428644610430181938068068891914186193994394681530901687560123163876621005165385450525113861781629195183636987604211730593631376999548901118870517797887177024294035824217372674306598503076946993197253499598928597835477747072319284465965707833944903839232690722732853582033215582318025373423239655977459265418932344612600794588405779339527340585940650722432352893023457238484366738997693196622838784470085616278685955761869621458202150304191090213997992428750322219984560267975925142646493327313461724674317171224219384435470797111425095176581397469749346991767827425251846842971567049332066938662587599991510390975019371157284091135287901747869929832872975482005127565001449617312066272683755781646604526730880627790493293713117512003379597030328410609396610000494144774475721043949336049138191679471052375171246096729854655609009560832232046853377187637181380043245555413309458592440697555513735602450246643097734786805845494301043087130883670331228381253780096269860898954883291257992068702231638014472607665548524233190706876738830797587931307797591683657527240044531096466881730216365647879739645388786451855203736266401423155651005936518023790523943516309986674512920001957071108457011723893872144039994989274772030579959918755766371274328432764742084687849008446505422104537198093202330622870348341525689802614247095288005747300831318929085581576357073783547272014846935703969557478089674704444008340291312766699662530686501258076591833088721090955643939335860587696399094614829678573492077732314434950253461293195766370106640251553588236410032363106450925799085528485960899017817615109803141795907968006696283931795731984445078522365429021306635000329518988185007525026676856920945343573287919178058274357705141329299721091812745282357033261121493584152080870679195678890224759970170916348785590355463766996493675001291205252912119126286131207341540280748735088185836581452286273146947175716721209095677211311589644723497683338544743420480998707971302447316797219585997012244563108895269163399568259079525845715903556350853973862993152341832117882846008817497796817536510064213020003672985805346594457653588824331681172938455024849689742843155858523367201352622889459396401038935098799160120466862496855512760170555716433612187631765689298972180248601901587541854093408237494551326410331980708766094024197226686199800522729352202153839283528224060844152886460589147177469196359570699518638849301554325808796668753045663427488170499803951003214865834384763341206407376619820507906080968512903309310052747071888790915013826419860465680538192491749977650848730063239308200870494054232344851425675504992510686697905598091787794987554361545580796964271555160872607458574403540567033154594967345314718334666934202740020930712050127837956622550656728087072260104484007938143278428211405876689948398401060704059958439047594566156674826382770713419342452682942432138153340800092460617001557858807952432104173979833284183893797826789929886737849793454144499546074356675621901739671092950029337167275625943294343318048206268645601853106091439451305652463600033101234006657276426739242561483116897062270125693785352218264468946749139018741640612831689846423117787222609968470831790161934501489962376089895868555289817782884562861076506663758951916800986450540347977431488168023039476930877173120205692727768597384673700885868990049032002818287256513670224141881792543310080732292825108970812527362115559374736077346781415642393061582268799764087205974333397020865146176689349273627627107314676354322933176476020799796491715548915719169827072962304776895122430167019500629465755098973705093640878704303839521137705081781267902439338081185118865374917890930955684593223300621405790094216108878061449539362798472779862285748118727628703227505870633680966543518608454875554860203996395892720864174154889253107368324479191729945406485320872223820239076967529058973716287263497356837630969665615934603009085815401504865132066456427681142049591035977622727671043356998936621540308443560877583677215896760265835220318525999130367539721199076889113291764287296833243299293860535995710953908847932019398981824823817817215780484673868980551345504364537136677664896240905846103857104762101252528770051950226896621486277887307984105582263577088057668973134712072398750064503246611513400556966610211780509676348213283204194157396449487617115110453526333774040112046045041533939853928001232926268991184776497903251010033468382875363355232241973103446288497728172678449291331652412312965091883364722439465690430665071156992871109676104552224430466940123429162496281489073815525174521454829055328883952063141254756235044529656911777245932932061482271843248287865488527804058172902612948692888819077023453407553249053260207017654248420462804254816237909815601681436045053728800463693264407597021880934783491862356443476013197844404421252184397774296972682390263099683467104388718005875849649490559103652686775603435728391052336691257562640212562196333888709918856479868857890792606551443057149203989919753665206610859890118033938534980770981469797027026093075627254690890213735908077505889845708499893730022589467471442566410459917559466002950479796428429254879596312370662040914033296707489903974699833780526711967244476756596014269126533789640325555806039302640285593398171704264509070981323654189001145078297044890078666791616893998404841652542329576646605998995619317496490067045506102965790046634710684772910882002986733680001596133354213954971927424500430624726406550449827444318254719213563478308206135028926099757603249024537384716740540683859833738382607505591075546003163283825699904761918207468925161657207849758317162592347546067813313575917110312599989567841605715857600015764166365821239086484610953678628549148910898874674599556393876964237692662144519789343258562812659633982083610702474274349807906690549106675035162627958520422100970232413072706226958174518786454213933949374917413018558518352742630672189980151066249849485746513424018146981468452741259129978780598584222505477264887093544293106888017068441789785613357976893121610319763884077276984308101707330477285836010158125271410934895484118760992364080667290349923620716378878337506671402575769601414953944495514986667972654223270636516836114766741267724481926343713184861639996688092289490581886993004776218483575996206892954077792772475325908873545968921627178047454702714120447398116161964268478493649825248931128479433144631688168051798993342003196778717887891096737028378668839584290810537626257278312996802028892452583626406446878389085396835986277967707295310819847025587948046567015602411059224341931997608442737339933866165746259808340703499497318904001412254014973194319178409417618716998412392306762273555268591903632752676957833174267807904511720363636115558557118597023386588365039644963609685051344457656617215858288973131739793126843978874325488661285943421114675657036673535438560973840324726800510100970743189911892018715308489822750535832878951030065018015198422332152956652771971187758423467366086222666982757720397040529481541838389331230861957356590579382188445912387359419239749170780921496190173196563801332595158190795867070317638343798155490745054193066238255981569303361266071619162512204125792841820640132196232464048258909069384060825641900949647107595817691356414891046170874024745466399159409301763146498034221867570925310555493266288288439803297350389212210367207773406530963750893213049931911784343165173857168288006103072966983026233464197675332356336319573818724561420413319634061776712621760745211785306799108858878584451037385654848167465242747502122371836834340386256084842777660647615368304562805902793304664064914079356812091329537655980754699607766677894715146026803111703257202118425675690548766125909926861364801877904796799906195146520039419477999513616920391893051365423900120493572165650827800807229844574823718686480872261556264911495830011841918284492711505237219258266277200311010245011325314250106939823541930579869606408189634395465677248820601723046834903825335937960904624047258265459546273133625684407474856111739128636565985404186282084231720791614813768278934285403518836418913768218498291125859482504847578321421808709355543773778215370605057910592288300065513784660358883630853414179788620529806707891395924175179802694791378157916445986091371217298877965394925551203525620501450521664964095587568266147341699939582721979338612613305801242904597615231478018803620789493774852947174343758990774751854343387651102258323466599018109867627275316524033150713603928558785094833347753860233607261179352087851971533614793979199089432708189891871327590670530711518633781909514765689157710303602552182070074705598307219494497815885110148621763416533043759135390625125329333113135349350220358160715096359440199979215067934107438614313714458845087850455127300597899985664948174192002641323718559439901105694620814518149029442221674029438350101004631942907206213022065077654761873480913657214131940702678059484641721982533618286217339731208927457454638452841538833592710095157077418149841940351706339214532114122159839248509548402887862465221526990164879124771366594958750152954771111972352549994999651957360255546500909745512491628617820999115368703524022236667709170859733906264930669335205339511609513876437661725806051491501648332881392667283898918348016044394591417090071670734510374828443236906016346755008195750038783350516419681931894783329268017814689799311729274297033429639773064602375149157512198346845176719450523997165226347884111774838195810937454555297328043362019778261334517389946581175131534673049991765173633444945679799847629166215928092188660551412559348802126124508263684188197727258520252124572364304050765303980877320816927644674797709508139418457810460875802523869420252413362645832554631471688983879671616490033337487638038824343006034616262751988210571483303651942291837073413870349233973552807275494525748122111972116410159044887755880143216403352432462824698000528230840828038681546444104629544504021149714377283012198851258293160216983667087383437298063688133766841371843879730369448476012798795283025720129284590587319826939578023001223072912601068489728571945059212476575089304334160245066588343453462290423646359914008290963211319996861090056728982151054377338652911004720621388887530823474961751129821974886171745526012718401782302476276562810334689961656951167369733040226414818989971250192033296721104607439861495734646447007817426719118587188056194544664247331827265654862364683581048709065289276218776654286131154410307273960181143631612376035952603353238707440951134119124007285572784770394525423066782787692949932470284769204819553887647702876470853437603020004222286281195946752241379152644553045471642534039594990198114361409430451780760955030848512498162270230396363846859626762145804743779101648094082828784148302399307258212166097964731641714174126952832073068676800208717248173406821724257907521741658727434821523021178386136271098263683731656381126504067596896898469093105655300283489823787891244115359299996109503152178085697865330488732904973968601351459352191918938907613481315924508061309392354278158102733750197010734691559815168691786392295428453640589128420462793226892287205187563080307536777676795597967180597750533525661922019847802483510310555411218304176672668678331010271665972996754345145960207466452362204499668539994608586948455079354250499988133697006591206551205970586912833127551964638325442546069653324460886445566956506938615880539779302125582895605232074714474688857992771480758696277896664672374997422700104194223729055970918867512083934936830922015506016391928200880164542441838373077826203235029588332017022270700123598778596660398715515124977815567043340258810995804726441833519093419467330688501470832225684907993410081854314943012673640384136040919721916682249194383762311247104007591861638549940398269218298229411145874093560380857604538401161836139908317490410885329694033346381344648398115283450128607458697516334914904912134069852750005278274795864640806589208100607802085650402966607521154323971063065990068559141667957143503587763166534716794130856966807230290141250226325966557444946989778021696874586535158439930089499897275053273909850296530153048518550945960714373590085463834718390238704879432132054114233924325447932491663412765412302193232464728128196982979201323383032873076933503201331586412741427756522619582272801201788351095332202711177692587968909237641166678835475720280921601392248896068189390733923519599865446808888357917336716140040062822344465979282174166158832492011882579109846064705039968435377135983739228054894475936748190311031610735890202268524232221993322087731133826890164590401846641588149330930555871606379557336211651583153029142788362234578739527105621052824802306150152363002930618159738476536847112396266621207786724679374009556762430462791555727054767780568407591949373415070134333654342563066596313846435623767395839607607766549025757974896555304903295053823375437915077739771518857776567208068997983855798798433312968980467395162536163004231051007286233231890298729783631149291461594180556720268243713825594030270291622132331168780435720208636877838464014494447492727648530900404744150639708052916397815479698050919784439946041418356142000506202235086931728782491944924488806446447738260109051985332335200758926017666176012523213260205849634165512963052988039844520887463835438126065971619276148488196521312574911537386826368017761681591019607808502130877269085857170593507144415115140802536568850725681937323868822542672261299050197320086693839595057891786746238077785394615873231261198064707450961879916565519903822337710414775295866949753550046847962989893080257441332312149308475668527951904396530924150067109851491658140179279168290338084803388786213751489560985084418453059904888319208784939507879625772887341533919865010210643776115107005391978282914696576346083243675311540511572165565866746953094272547553722366067850272379231841182605015127501712555228998812274363849633646417872833922019950898459380278797420469877589382409063416180619627639140059502553914303309375496543554511440378988890056590599147408166947469616747664187447263741186165861365374536293156232881930457685243759982474915333723339942962088891097375373811773722507093758060943838551537183503651001787116447145841930773226253957945989787804019886041842611202865576428941069417959860632406007246241517103922857625948808712885626826395543844904979413238188674129685340757502115460326229822048666694663814465494451954294093150412773678578518210754059980959344913771165989754807643973555058359457188047530724725935663663552519518563267458772715282857225916976000137965293541698608539357399571383514168611777537158374415122703739671005987875930687973110074994986148613953386869079327187629326038468148005971278414268925466932620592158922295999002773274683449584884241598053777149090302128322318577802364398497972238681321287915821570638176416694393413593995031713377287385285479925837129992032870378275329299130087264669511932653009288193010268463926618388704555301750269803183390231093511823032947400082338097384201373008560423634902815359429982721637209938233421785057272252619300429239220581365127246220694133889159602871913014305778674476181301221023960547289574346901474579578046546992727018548818384187767787722769809062306325053057477947438087810555837171945995028003196196883029894945665032806924200840655434331785091970626720967954811400985243292567436003155367756548856470375711702269882683056164881325073228711137742348777578303546936917296772793297687388198173871382548465522558910539737321519047876187207432491658556482258509467416055461422233121566382791423837115177261542572880680183497196376983889228399806695738048476389380978704023957593865560540960827597943028984337334828731376963958254778055796291461106545774091247841960126534708040314038526544432634646549468777569397197261201412491799674754849745175298918169036685208734189215900042104206051460935759485756595127258904797040622733807314958439327798996227936458518293079798081514132923575463511649813532039635988612220395585575789099676759340354175121660452118606902417959213461981244002157473965885543750508900752265091028472523262394281148035456421901096206128322898128127946425491959771186832565935467661360917874920883622298443913711169728284884131136409984946497682141490609450777359864706898196943839364426980025426999237676718090648221853608523051704714716261225397383685655170709335436687530942899454246421431068396870107102443574593982611658287577971464346603267089205114653926809030372324670798150614932388787993141227878011640732050617419537568592560183826554760145687837577968514651876291590373866213883024248025275881610424694093182258853342487229937124204459909940509998669752570952726026573306262214614267658279937317536249028275670370290365979364234514509677294406716519323862965281648585892173231865213849748560523273839261310656007355063819948059137353037197720596166229815059940480056957909051587252412508663932105169073325305401033880202152380249353255021948599917278437413041791633885672445986582498728802287276448892308077520797712917976416964240065374293012473359566789318616368675065190219378216946844680683998368106068569096083895872375175484348612660343876214814337136893640024812749058798034194904239399853171306146979655935404941561750699592995112368989737125089895089222088347814312063528468309206641266064611747397876433521633036087230828006973671657323677481213415197846319479546724127735754148388835302666107980351105123386175911046803331466027454429977720095607237842967742942716746526752374134106231235626449282159035076657151601478447956744081401474003362083313388962725981203847479712576170530960492799572619231312960071301741242786817752918909690157127442137496282959842806783597456050854327264419400901502887816316039717699275380306062076270860698815750673172747793228140857475511568513401928040295529446332536314452028527932307216557999698230275084426120574014446552827461685378053053581666511506791795598604488808708872130944080062588333884252078250529581049955646736387098654239162514421196306917157051574220303120887483513677675413869175692770490657849209943765316208467277666606748502799021346638999868186841015397230068786618696502009368830194781104443940827708296250674132820044434506858274272868708739418926159736996157620031297051604173480198302556953288925064838975816145112311233042015711871478966862819700433136040370075271500531082659905842976671907380720421607194050598778645872491248194800608390971564703647863855672684890152650621829493378471152580081396788157674247672404164040315770713354410653865812949605036821341093569477498550391896926790177398440948616187886168100055200577322786767035418311684805812604141359752894746534875533052817712119684723207305308449787660760166421327615572621792932087283466455786606257863694812108290429449319771873709104943927507189416868073909400347727883407548959021793687029436719950813359786411247614870963769429039666550019407211113118259657999998143416427947783782405529624306724197287166387720346910014842690914181428376597944253956657112879123194205877715741781075542364885702274505103090948432910193147720382859665478925532047608221951062366181815441181407682558160912829292076954224962388763192112048621084997389695120210850636252736324640493354626933918066171614674231839023582592299229504109406477648668726402508629776009996181849806077852929268803485157542580829661591054257208458811964991692666451086954727449180355911161359896975221019241796345338250626194618795084782142898703224171730352180341337245711351606256735052533840035743414985355008075509136118290056466515312978387120956290792623122484509713570678552381630915187291004039348706524653563614690042315636799865726242636483169821198543399560542451596735673950388074290438464114909632858993725124980232109357266152685094162322779944657574525330688035104629505494761437046461643838876503499511844118142922832214972331123567201923067039134490448878986373446137565121540897558764594363446140442610821557007073201611885349348015918042184610073759908153085252133587290540040393874806062990738656712585981662785992762366241539320888795903138725959402806860778340837192250134271917311786963867817596707318626232854845385714944504971915215500876986031837317790353042213395205234005789193946129323605903933988568871835176888840904901108613007666003117121910525845696862187647892245717484277520675166728378939881484669158272277248928948244689695953501399131041487549828469562475743936596153812023233308502318379674307508725152526561083192149584620950548835476651463784485407199097270702635684004904534927170559026095598193880833173256817775398231047046466289479328045614144573747881205920902108107929109733863129877773923213685733314889338147617536308371759681932916359313503308241488580396962145699893452300742954125302749209098626676769367847874439377196883261931829663074831551248837518324404542588555786845565995707199604111842036114661081540470521059564867887309567646999433086648926094298606767249282152031064762742404450757625025956200387031680468487075528280461098100889523422547789379791760578783489482239355285780692877431889390450828983636216943767344135730216803635160499435425155445873266409854157018550195130451796572679819436696826275395981636147052667360713096531010783899832001108896437205564203650089610158956991497027284285607445928796695997968747646354755906960453233171307025180180661063952648658108980591561638603043076286712034703654363763235612317367620215242964967565262209548751040857872410710830131176759760127851167606328107595126919779282068921450309306403907815472037844043056712593073416571077584481217020184237477815854712568711061998808867822120711280445363485219941169481938735528430270327558929144106582910858318469771684759471290969783967679784789344787637429109620451551496164005443183958764821449082405147774956873498688001856821508676463100482237479749113518937318387612861781140440131255353757283838866342460796411537131726801941050083874991418547870873524681046357398585225433358500333341055094165654385916246968851359230516324356482197272414768634330932555666877539853272435828577300687688434665151350675813716034648299465866246260302722009727253393022251975465923464337018336119399345736823112943325663410696542780791277684983652517979633805826291997865498457586141868373482919476173490317193227584563747619116328822033711766943878498254836397150238710584409357385143155475393595855455762670111965508413870870720771962096870406764114185610922571922501464788401119066931349833759466307803418508014202732016692224653791836386607679648566203010296529036849364401244885510272515245963212642451649268866995293853811022353768653371305474500695283686197933719390750415586399383240182202074697966866442914749538478023406008598854176983493928772742109653929653340769332012521838410941973115932128059337290855102118585765283891993423450024188923893622219437423626859515116243818212138842529814860415458194084563790987867824558547880616110519217179548358473600289590948888739571486638175667364270712291129392916630076404556324852592862263815424483680653783478494780993769520324788777145255903913340730048955370284495083888107451777002758601042218874959086985775591919450410200244649319576296935140721689201127443608130292417525235489182224743040266946526684766041988464922674358742872297201653458070900737469415581482803069887831559211257124436111066056176357369742185879374447098369879403335241545674905611125376881106005787624160561770439928078364778995609057024972416429254380873123984568833394534474320406389159292611970350610782097747153307398504536964445189200411197526086005826460210877315743010765935712575300761916534104273102842957792071932999029010417428556478581300984816931420343206639336736781520401847480192339778553526066042616893257004693109947077480261479400334580762315854645379931352910393377767044383982313184771351814830113097627095360945902805269114695851097517014114986837799726432524665842672371052864697503018291058736308168380620809871278137427546718653501801322991547990985347611963833453557604248961566578887366912573993948594015049084321848875242040228635088971753417084613901668747306262812295628818901592415310989022550678070750705243178317033720994498773385050430303656913401882101379261688548243135032640174788191447832017075890994109456558545506354156576093431970434076053501513825604124580519164002692477156864386160435954625835312145787393947898124693618085659332038640240804081500923251383990666122090185895382921284569327792464331570048611128106519328832368364934894441016568227103825829353541610335495811436099626215370597719194923886941761919866752071003582858773991197986330546238102314847051668611529336593494810712330443612889302728698898718647011283089680009094197313838480183974021453511864677522779939202022406098982146397972438701635601641892452906432813763329498743403557171671054992252827365174775219794492284398432107219057405698301198243327368222646763937731633279649939108786320699190546465981415071684164505751617138468997203232676015802593819361013476268446559944913181104963863324137966086765109260873756788941445780052854427496650717986609384871373667507533659165531533342991760802126825102767277777221539927650656037617845159527949825278235098689786168986220164361500093399164216710329266804628573429963823373705019447209176865877679859764719546480212910971507724277486396562601147428796498981960183084396024072865541710219991547213282186880968943465813509611180647105926349948538903317191662289702060817495752473173899960760760569418479721475472544221934796523986637153677940440255364416148631072638453865436249743900898595016500163424097047119640299792446442220948751271757358133363090593424389882979966226405945720719806987290120190540219603698442845313563570814709916839537458284252445088725127934861449963866001714033031523914080379835716362843911123671951779683879183577859396286052589772631436220623652334205186305946957499832821530921280995763734377406727052593753669256403861237110325137471646335859383566960349266208533158075650603478724271054675066380145772633748710889531611220404941727441902185570191278090935294101669559084011689034568675339237227524521758614638835306819575411669743345669601935656927264066780362775533826887917456933076387860105540777430102235271532249034231368608542880192346817471116385344955597532191895802756197646051379495611334974125778882216638176911701248556614900513946248683101931706033597727585773768465068726554415846992075135067980395595316299938107226671918048318741658857993960732793036502007978190657746096844366898120974677943276172120898102177005823910405877161566303686145973879120933968991610411242693614432593820517347866532644545258174620648835349070175251838380518116595406112796023366288313893112985309138011382390515010079068051755958239727448547213122548421681778953851044552270186152710903752631992204876900305232162191321487696303939724013409106211844036512732859151037629970258806060852707615028556177451539805903051672389777157039827727619711470205183047339540427642159298978086368762228530176258422169996018320504533637433690554150070232459985599977004896453034570638172975684581021949585056332086637766619118110568463949698109758582344656931044252539174503728815959297186502841872001850559988656056382181429920849534014327311830572251821462964647770020953021367415944319080780306277152292734012598063493468746582704167549006794263514802135871092354405633388091937612686492400531545860089669447613772270826342717092190868441829317293775620488441491350060907281012572139425459316825887927379460751005857943327914274367292021313979220512820479161652720782967730092774810252782366128174870841391407771387856623355273464525161305700885146670872070311761155733936656949603090453905533475844170057538481762600137620169289725258404008611067958871770000254765818785864855056831634737032868782957181951409579810311669645132278051924910558508589828106642326367554868223710828657508486714372650855846316469249343298030553471184926941962633063589982353494161067999811844533482274464249781613879409390746345419436712074722589832429275373672979573481966893744099117561360394770186213042208145971119001643068970321590640801648988966243919949743477749676711921428167140139769215576992706976273176850794717755146417679903241049651820856066572347139408512172341141340206908175985627112761666057198261963038092702660298588426368831839297584264027429831314199359029929358088470984221522791733023622631987015408827568236460635388190440496682900256479991558145340749243880645650378162100296621346000949832649550177374987350646562765536816724639899993924273456910459050837846911363746440442033899113318359688824192694056665442164498000809535797788040125190947557902026454407798792804611685461264849624058902769397108385342517664110603461244321057183104143693137866559899843200483882676473621774178952069672864763762397316861109135582430838331516048783317959627449886075081024503248446664714290941374030814954328110267350231593678150158247654783217657179039361979353187436286478055742294842510766358535064992883612112912559835405007612431302388283783192388834727986571756785470711494478095349911057354170152036062150233116589867977087968746394783168801494976055978457034238499631569218044751267415380485356719231306824870810668155472454036056141261090263696995037552351622606583831348151140133484270501011349913705446470709904196267970734282057737513683312973770696283197627204854427783304095195866816777594178460383389905632673517288917682489045692542207658171839747032564655156039633338715323866460974584312015651411506829938823367226019733970246282643164120831229046684977639928975416205604929793982193345076039893737312263641317106155394387458134086880164192744436730559817464990861383112774966483825498506159163014023220024911808553093412466484174727704591924948822985667369267641640321416788890774701266461144126775868066267711201912262814644146661359637810469829679968897487984703976107846419304658407226660424140064198076646887808742195503190509478426348105367479723933351889887080505038502385479149404201867714650917464362685564327480865652490813403037320188343701039722284620102164307894075731909374494346636000182203175950805561965891255545608418327188012546135351884926538304834599717216245548458483115899061558543222566086704311847045559274845809371339577154564309163009730501182255958249633472287772653264122111706669999528082406605150425432196237070603562418164716432969007022600584068934766748004804019186471034811634474667783504604208069468679581541219686565112447875570008975252471834444810906294710898721550631772286741207808714428854639878839196683495991443053921702884805958524117844431904084951433558951866503121658357401083442054059637638696377673871295467974846130744210742412420193641777092938345781383170197218871360319453803840636362910008795530833891305932954852514584067278134156658953926915922707519461779335429030770884740427557760128832922851988732287408783308147010896732828473319420447691452460465340059518860716545084219880464610170251889760462438214917943708154930856367675594290651976613594935488398693963699239877557745940759993589735003549072008864362194055312516317269138773716597625990338486304002496407194813259204915595416633593844131024367044518012632661375319321170524970199491026192874724980364130457385877919968669660185348733860870675706542114319337506717939038129536422547843418155795323483978158111514659452595437932477827247333506277487378207663725293006535040248080539384125475885389208084810476573116230227207105742610970216006133306504731900550601116617594245724539499350010588014544697322349679011469542474004505601317607754892948998093470139773486840307028728071855700412567019993600526152541461291390130430612842927192132983042805605159407387434314621555278027767709035301309559282464828727514892311781261565172077009484409751825818970104452874564386695802976685056583834410824696429015531072380396769065737063616181987725572986194902859918330986661643922035237690883142467332742247483050037250043853373450660726090849975914590303901857464913121901436980555047334108710794548438329896746249159198921170285442302774393337563084265190792923468493480107726122495973230912810817983697481837135593337185453929278259234896634539463918706507383516727005063906385425317599357290218924799046953931209708297990619284366408510415888377154944735607444254172955756031995442216334473882735585352397295683358179940380038764953675786812838671118334772925748523544663225737199138528735810577667748904595442103286567483824280398658710078880193737482116723374262020146330588500558510625862682943520328834157838910959988314578455796281185421337038667334312261949794497145570788071101946332137531746346731420597472251548010287026268086857883823578888442942783009816841863356271568403158774996888916398849295494705170548294525069109917116785439089245392304414924049588168269523952677512943865309870370121668216928607090061136408663817023819756719767045422085425352819631766373208449172855817044232396748575674191126505808832308623370642907422316805865425664850183054244142786101733456045892798429670226993391502663669064564481347922679812872904698227393447295443494610353348144511476545236180696869241374585457926726855635797415670155570659196317371350965512665380271426547635247562498804505872694915729256979216172417200966249845772983066764096619154465292998406879617724918319698145892385900214770935780191013772247361232893162504728521621589121052869504914996107700597975795809089390071266180330449693705098735354953461957477762147714704273932087490627738754624197859231677712656661995679101712644026399499478262504571870165106010870983012872226452434113473044356766976740865904242789808956581539770694699149147717251212425711880464902201821330545533460757361634690383365109189318828646620544133495153272674207833878914514312672412252625444910368035451300849247078085154269266695727768395008634097268791384761892691452831628474329111159915072777356873186315741987136095269111452702834162522021293366157876132330150746839497812355061971690003126207046907423512306333832530130413867384664795663280944224757169031083031524214327185432883713555583107486973761653272525032793363193620883104253769851665480390628784372039088517713678887098014231494036341256173741364315037151225825848734625194745827724221476511652609751260436916511241282700991792978505511300868869185867135891605396547752446508378087223239291477302221165119685895080268774123069130814200305431268052327649175359010895184273328728917240152234524923886908053286299516519446199605336880469767646017053400205327801045576486788492416322928246119204660210326563048046020796755068135083402015784267136549318140298572278445845701432689139088210395279820853425909027982041233772887814294582508961738333011171189213525602239750334790202457637025774421474518614461398084521143129546303889963845989815417503924965711473703627074066803331554006778777087280840599342819053744897335426500864014280604762751044198438270847593302829213809780491669630089282298461403624519573768793122878092580386145056213372254752332915510351154319157936439785788958362129274667855650278482837602979644256769378082917717123353381266888441265691378327807486457761960723584381045345599758253012071294247387258509528987537969137993693469314873786723099004400930937609868146939912580053840559288011352070299722354366793655995083685487610050585552767476923973149308188618601925096932408142609047546136225350037301905107977959297703310728212738303442836586683958763596705885315865184788590460978608536249043632154858670679509017204962453536288094972770461036310351517935264667493447771950685568314009034285327818502067474700542366657900302696404917752780077128048182202027336504643234368513819707604527441574874193146963242801633869171420305835742883976698676188799646189330497527853682124382323946320828794086156908088952989175854871541056483484618913275042395669481246725994114345320082176249145130479614604996011967551349882234809381479826111398711561519745369842214939877384026950492607125254403144015350836845707910507119329699735746901721905656568954630682248615121293107930148930672236493100376749490690128587288780480984404212787247884626081804824203779016913910595816106867635129514756901380849226509408674978477484917282002206805650968189826365080345131921930637728677653920801480705854859517412755108509887261782320244157225276957842754524458113737853547363597065479132088073376637768818599971067160997646954239259677120847539214930732771465217603252094947099606196202678905580479309622832185774784937811552510128086208994097654691046424595163846431782257260121600186559065847214917198931945550275071870032895839384078103987819571553961543610318671115702001650719114330367742759867851023730659653268420008102990284734410979200234305358538700377712550197140013804308226386019973320030321801073717854472792587116011483879531243773056521191406387747468467443838094852484650312153279212395992380496314337464327134799135203411746684942894823304141872013572787867307645899447651468225366439030785331304655850508659755584576036448360629163804374040498608549662610093537730693019706977718890941863271573931439902893317152518384513856451585263849680210378060863914210054859124253810388391699770159280347025443708784934282363014519912761634341927347169234461730273026574073492765695564028056451238057140849925912561313333943460905866892958766336780691021167479837512377799546217572607800084497699885404929795155569920946724031282165149998631222728145675061422636706901637505876322753302226592079361509628604094622623204138005645231291926819455812094050124851608260096887991335559086028765232581356322403350074312893425948592332810322210343901896851236906707205057388708088539007466364041790406196827815349701957196238065479846525096771984998335094620708234145021149950776158781285584392696354030966382509165367965510718721720502837733777023509154558919998870932929688768397678381828710151657365797493351559464149785909203320889374368260502226543987582267211306302297049596373348460711752342824362035596834461667654398382807587851415115280403424371949234525885852652004067491227142253647519667379668810967245801183756028980372872389967202931238245331386030206998007174805784154247290246651033870881873637478293454318897817999224731102887240796740094682218047431886294590883121002807009749312475426915447626484289143646826567119959868806392727177697301578392020759369830358905230579062818428618429727323523538032717901647178098258655489081035626794294880990352777810213235266604705057651945702738053003817883451312159672156035269773769377663800407349721326081742682183916947007216811151099391305394373391316130093245582024635790195959964332509524134917266155338792288753727596530159682353874107585568061095889018246075972550953002252696070327962405926846527584082233929368103014391190125534712157355281336749409299376445880886693954252147716440306286337436480148935251165803861926396661939612660385442171923233830901057256248877182568314477321263871133549646527132172335096611164819269977142465805405968115642638296141254479384864536037649036797799862263065406331614346567120517395756718650739411277553557611902347584042606943698899050973293905376410998000788909178286208305085555632474611659428032232534867791325840001770858540848944039388650042280805142438825615289321224725544662855735456374917311584153213341903120432918529543464015262312054324977025538857271315218899033983499483249524846746546952563373407734732657935166628794613056386634350587983892294937860645188921605688603379977000271260242161919192267958751549799801696949711827509642422759038416110788529909015607759481901130257278528441245974673530443469320428041531919662230696625465035435820389979027776325617364227083459361490121204185442520399119455511148141789996171892574693605565679924595466719606154867810285232663333829499334028902051521814492931176539047848213333845366700379584519418799950692716517875194473844829923758735142599647374047330985513164578195476307593218787384882762650176578780167135671253297345362175501897525344549059770542906365751280115184291508239007197491142417296662007058100736805686959662491960940516677012477712661131248245665562042325982498771868524614675324436321896638402896972620829649411682936414516999068080947387530135961256192818982148082983816591690180638924665072845432176092063571215121429959412398418518874896887562129784376658766062512552691923958672873463761045420121345912483427121848209586066484675649880573524824973532333964014820099310218682307477939835865463626978909199078578516527852632948384332548269979546416706930392429302704227100826364424295180875560183023108310224403883025415444069060122293399644673605977104066098058877929154171300139034807788772023876098699406309247536533525772832302140005302675745124363350345702492164960896615498244584225681299303938134385920908324561582599799069739961155050293080795142487982252316542570219153406839799391416719539458241691795780941882983940988857073255553447365976244889518014650962729517000881732854624842274826023607443671359698061157154642508045622837307642499339292113143141718408959373678106661924636305060606932697295517466461574848283854579761268961475523441685385264045637364181211359301048816968953058164507122606836196430478794832482139326244984383087109650301839806650778818515997582589663264430149697675048410277796170262432655620477943844630425670554694051455172046385293233957781408307922693275433497378436896833966591572949179690811236974515546000493754601227485734688713671628884970136607100435021878207597023687942184404278844751044522346536085433846142650197232188052890552852140271433088044584005585125313023612240018853525871370954159441357823223301583751571537965791508927094198762546943753309593028425698038579399992478227304077117235883671207885197052863113304520598816103598689300764785282310448681222905045320087439014915179483059117270924176677696900169282425109272143939813721607695059683132386354586789566067535073858826581709346417814189690963817580775507566863715646836296882075793075841972779075459232845445505418554761538890179005531827558133219935457526560194112443531849133503767537272414296272967492655993628478658893524173413747566530223572010194813259218413654855001631518206715484989368223162297414232468619157378622458588779534509488924302270798977586290618978920810869088201405981947637231174346719821980841243075451022935412525945723626876993334410567258079492728403673486673545579870357559488541869766748532263749571006502235302739520174358897533930714632150639170521066826940727171924133488887384543717306309215560996867030616680218330398292152561153307551800722668124856490782627990429939146622288771661375348511374081212457654597471286683317202248685140149191503562481560192974667529527056356268184303539873150945306614576853252894832814725217461462396654596424882259970820968581171567061787205915321447441753309841985009820320689885854621623990316843288685852464605660805263798598900208116397393450286118777596838497733656597372958068801087132879559434357714384094682008476468988407900295266349533840875304978852511660745256888685173497927698911793069385596398859901132157279186429638943142826387027259066951029502947475849632809235235391794226085635665802659090889069539019286206371026920959529007872907451683113104702090381919982923459302505646783310787152517399035557527141344437289847160491020035129845023129292297388096727663895009771549269982067541183626151815963484281548620770149796651888962686878932625350381092284399917378838887673692213619012015309078050316252031025884987887495610049823017114003796665952504116985641004969209836138767087487943356852886257441460794686796580334150878887792669688034021009013293339810529353145023374498950160154605398538930888217593064750865925089512967616299767997378627119654660878301565801075837438161521095320483312825117963459480785714799938128987650178950176293958144858036133895273937526568920373493832236095100965320323321393082786132518128673154891538212430737549583528197151755257005460387723948453450426852053043681197135453681946377810954359459721370563016338089187393959509207870099829556359102104478544946353793270333890393795473500400404937271709286719594668586763657983382849136572519682740289832402240540042055141520067241173211485274490062877220568852243262934607095481818132215972809285548481358578643860829307226935621946496073697530341688434363894961512028338345736769382487103967320097845472925916105544818397936142849322957931158949096055821296699181012473422866358392505182015568818976203462547490102140546861465060094408075429868810483146180763282702665941386409573153409043106147091911238418373589553166019835731460096817813805495124032041406366036928297561142291253727754231282443673751659829324112611396142086048959288373960335320027658335287406634796743367185651514748058942433607962708399492623648112260121431620293922680527745456611373472184880376496077840531829222526592699030999656286427874345489006983813782028780279842137906197445582851211738831480624753110433991393025435670561727334756340339390209042370986135302501644845376439730518558234128455417644265341288998699556835796590051372652132420225522564883202206889641890940845113446711673513792564678310508267793447810751519920311612165571091109509994985977705676879402133494338548209617024252899556230405224262615249216351307937601946265782173342960564161508877936360386663293938664150926283380782777132120852067039841466264024442416380152496517402511609983076740325437810871768283262443449336678252839464348053376077684774272353098322139183840508424846799079954679212285477049575667925310986646373299141357292684315013992063458574668832709351449254594299700929307600704548419322097405046302039841921502904911890053004323188584492480374887639947052114668981997412291385807194063859414227970140779084852857277619028400418513544895417278861780107438464712940355471414988636399831983162847952855847272750049565336371775990822136302843520498996058856682917815934897191455951590212273598753790474756442153503500056895965507007349072349152602385669259905886586690882482363295265299501845227166350987552109024645744762670722050219662766894190793399081234308493458009815546256228347926719003623763461912122743296493694977110616616924094133663138761401749191661239198504954772269574224966234201224158584294901182721220449167538065089890904753205016857113386830343458510029095400941056550093859757217157217177842720730008973049934621933309348853877462069883903628083919807501072351720663355965342303084691754710449905723228391504653235873692691498075341072975590935065575538738907405971064957902027146238746217790913025167276586981477545656006344830287121107216519750624536455792234758957506770262181669587042246861500034069758948924380354875674869412844802463966513397601620641530567547205285751271587467410844672477724924818964929815138794429143896288319695135742460792656887631594952335086278796757632941104031913720078916548102504689895897515866102662555859177810021488246707355530500216398304066206646569641883442587848744338053629669752685371472872658213915450149530038887588267178797704077962213743671270342854449294943290192625953924878871658274613838816708620873310959818172561964189142909892714505294510358419996143981581886177494699474794498576854468700970674418068676316149193347491638424755933827823999117273603685330847004915940150148283106372397859283565616085565286576230084886488732158929400005641967086353384743722250712129187585436398714596921152326734988540683143086600737050346588630237455521475944968604450793285324280649106246722621829329538561631805301330952327109707232485349531815195682471746962395057956672134928429370892982792565984431408461325782138818787367839639984022924081063989839205308225855442459268234555141659603000423401542067840221141069998832792827161981813930936426848171161639161216192246102550612185976658062855720350499468392662417732268647787763284739967314414683533734147900923919967002286302347871424401657868175743282085127740903674990006864164724055494094544070577458791085187522936614744629360582168173445526458907682920853353744781724333406012834686903369404808649726634832633831248991133020236031513520272487415346158270581306048139180331510619344749758076853642997134896294617929167737705862313476309210869776561251337678909570993781906877751492532587613768698245964466687328405333523479395854623317635699457907409323206167590117222288196160471365078853491535310950029036485447768487549438861771102982954572405517506998171297662957996573172303326872791919997172351200144895795781656995993143213159112895768757496509649888198121224924910318835956482037689549068879057483510168685586987109732583703961367012915098288898558687103735934014167680634083443055776665574753346516588721752212620096704153799487974934327369971175910853886325898469703013116481431985932297784209606686689338105466317321520426210270194164036589039770975383717361560826278104215212447692062517412439545490976089912998917765808269798987034245693537240408686106724737809995781160660884224761498829158275522772044506799795783280616678952104748211929253971249202277384672533175614756294951106432698731756840852249638376145898757637311102565252693922122969678259285248600974514398438940615483078892179790438353267116660846711030016207728802008608343526355747687810768017107055693582548366236851227675675128136685066944760422358618406385408360967535117408730289520469637508141831072339094058400556548214673518297732098880929339871087125207326108679419048765832639918137456154516844198749535038042357612211579686737836812079201922021738263426205259455482880948906526542101381979333237436718222714506461582432875132865327029721448097776449391495780161280145639559873653695487195321272702815873179667164395061414900471477988620295131267441527840141346335366724641007546943655372228244170752968843537481880287482779541856981255813520662822547957620022058025175947390572565453576471410224135332189421040528398804391996719383209956435137737679404674339523080790452305457509596972709239684771830479609964747368492031368248971115531777531350420266527169146625203122530435426212734438672878293745523678613453823858066891709367073723666397139773869650564439426306717751698735055259606451749705515029592876176606287780370487774343030676182719370778164126534088105009356784722046426725942544149696397660915331680768902226288942756771778220008438249929765737869653668269257820053788603784206944690179860537406581601196847875097925022715028729005401213696144447757566170305487883988676011427295932472885936171801045858415627159350663508667193721737918198991619192579799910613233788808173057302533751633965171696334264938377834826979710075545324984706129514502712305484842521290953039602484730907198831764393592907559079300460429846601666110000557546847571588088754172208509501842505587133608245210084685083815034966421056065575003672573850877064561813811900699469309035588226503641653771232924651439528183622914390712025972160753483602864347808853046622018008466185158251222969673113027054027224106717822168158215241010581643604647558315248154380081315164170410779307846036559355605193535718828635577906188034407256462505998955977238317613951030940966244717543354940293171892395665217826262758457986521705533468747902566652103616452948794971097732110739008405051327840065475373364885740736393719606614108766962075334281159102755878570195463583637417315310515943497797827327072205321847585360222858097897747454351109006760149198674252790044664835267919149936249040747071622163540999689601435135084976252830246606379333973265996803870654823957003135356561640263136470877799204203047012522764477625407584053647646993387234003045559183975999199807568732306001170460703799165167288729790430312718613542205854567919931409694986112185010282998440090129811512645793917303268305396463499831093774759541965717352938875922262659272821139786051309214392381931105240969331810810364656113376475068284666503423833150379149035897365268638932028507174873202099854884868938976599503193482652678994081152723276345193540435116779542543487345672572986943146814331372202627001142649931994250278677584316681270643727881599592765713082540814417194784728478007960089159137180865883574983275738398640574964184294900298277502263269746425949271458760776517136517812505031171318270707507745271416637150978601373904259932409043043763541420916408167283350763113686395088547690619083584987218378510959433299273326781782158793709281779871302241359748344046561716327763515155338734869683515726790429469969326181450216213814829733707976398440007431881156322363208984153227384267900326073860753900623757391167342465347093541387927533916692992831226044425521976511682269529549934950741836629500672888685189940467040249863146049564896353778161087982792202638333884857745329310757676134145777558491148913859556050106545085398272429071114359832230505031895593998361300809469643451599368311407267447853135173319662536569084537116579045474595053799556992644235982932906424492610414757664132920261009913409565981547358990669141615584522152140555032791764306725587085625363887891722266517815268723874047809219028477070970744351030552008696537669882834515351510832657425701112879797563129675570364084731975170278258666387670233607398860918599147379308520326397219955265134238932826645117260825202273656948392189668668396157885535569452717804302038244824619716507224935927582090235129777042691898415576007074683586845987827678396226992149420453944013224248277349887805478661828300543802123588924349014217879364817280158388216652215298484128533862755105581192990110927059144361839328249958576448315224972013180820795754369520054970184652465539463822248020600842402505196650191336132293127209400450575045697752087192804434631618456294809542168727592456073151936793679917988020769680352608715422299685685963397998823685885109287820669350916125040859074402154562337572808727983614716903013108072404837245623152956454765034752990718878516744232436837966871868054104564594758733643691986223684595641480175125149109850697334153074109168188059306649527184507017387762217431723460398734567095271577937941172812858376791888550222729577595025912657388773216279138714853553393850292142776422105166703349818518668641568614757641497147965809440209419582142667051936055801960258055316338731537599326040791251427364235610361442073132196542930970352891320454487003788107145587353789658776974067195333928349726669930907293876724879673419794492606440486503483127084618878061772660274564554892278215475435987500351284009112135842883684444046863510206618780724726837271844448051145766471714177433305117502006467236559450463016097962469902837502773566293526509024501491635914850496640113033471446526625417558228295482670719182748482359810010572709684181828859601405301759250695935064198578827081703873329466922913087201302526740396614186931356365241567435135932613914240845451602804109330897063304070058886611488797003702335560085511263713687286071451121340298831089762329063576743273389503198800630229767944210417320768438396662610677544930682540869307427228012616160704001242334394319484630258931544246265068144549685473582059865191071126327638790884369037111534331359825698890030835705702507278453447910625480430211526755962050090000491416926428661598527646554010887792757132651782708834242561073260279796892784824914564730546377959498518967361796764448298005953108032344633426478017532928592940546846068894358008579942480942971936416451243666166379474963277725738569481844573164781706389817419123170464944064236800875982031031133988251275561243916092730047290547857461860222215771087150221879339741296952716620932753431973429714965315427641034755175037178909942262734405264529197756329759031533903336847168652295141308030192950222379903432351442156907827500733020733522858722991228348909026996726620271774016027054914149019295445224143259507311692517736983095193164248176204674499619675887925796900946847227561334139447237715959082731831035414400130047493315053855450556940683972940385016675737642956753941261546983203789935871426447630262193394280903745097949360267350551510477938954297094100627318417509075782610722932902098802544300073958895434303548461656575557550765837424784655126560248867963335612110489599019680492656021712043952443536665151304586651959814891949116645786459433157507315116524266034624809464907800636413874107144303867316537917140418200125987643907356387165139278823933504225953958897510195763060303635429290706766121572634490512464078313453457068727478314337334695217125198561979629125799977046481844169205211409683696740922623033746356097399783664883605470540984083874061238012070536323382037445064230556119896671942068125040358395252976434742988195149634456579072865925412700096183141157102847795480781457405455511032919057066961208547239311335368935588816517931918993362031303062952320618567471715730495723968710558241891671063619249398057438107603799464659069421953279551160351774831489160543668584845712197432237337307965902736489532929916729199133315493531232183253178572720850160898300928220280892860506589211128755504440717025039087830775485203241214324260988961581917249485393449310272850028977895457335375232275167382340412175840854942203900563020485716261042936835396005760008308378951068673785997963831379895759797102466700830844076969634838411827064945968169899191692403601555052932647528102814255281091450392491034653096417377584688527278491641752912194010428591077249688643495036119429225889624019235067697808201055927773277940942912155405914232848323261350508231126089994343098627785162848033861159810637099539206724293691637234192600116610715698661334023231281833860497206623318622712644383091727355854812289255206497322555452767042209797993436864024557119949937429568554018974795618118318955488061434716992857917246869750957746703227549224644688966770294335409836511400268374667399039474836351877467325024754877380637701921395181299182058579321493427492786882321266933773696925278155122368207956919399115504498467805912169706518014714601799702152768015749583691600861527882557176015106198974905346173340524032788518140953169800542459427588832235563312844801232917463230403305573539433786189007638831744688608682966445012433316385077041200116355604330940696219550518046570520538207526001809786660982369643960368216333393319842300645785310184121224706280912185276951666143406187339645537717308259228705121151416666625778487454602703455393476206007159528166584354087128816389096336981493018295058711910761642469535377877124974521114985436213940295742031801011932048751071848014587307090240164151368622706885654078538179665020564726119682060242561191213286192614574058637482308183999676799795643520461651923971987651611563434947005835576566070931494804434408743179536757922570974979430243312754739055753037526780033186635202603738617006766391322994074630793136431461269787815223076576190843251593281043737286346673445700096472918420821125774878748567548037588448116374344821153065730394364790819058096049482194098113988675123301405699155576886002504627528393946983657990547052450086950144548949085256950867983393983449771177341824560049562244023141880805008353868468542284722973687893193382399780860319846958217354052370225462752955280211903767430644321069819441318791663361333211166572124114827797465443352992583257934450710591130131258347056999254954304298915410198845138640691017137948505379336714991477279787456326143047815537794989435439670747827428362620764934207214800695957505350271229014254335903895166166626546706618891865650428258547139001062582045408984034089815479984981945016310926762006844504299118180142738569480382041704936005284402219952883745361677710640755407315964377753633855472120153831553624238113246316574459542586594351378544093312889748372969010897802719764618778508674323440580805750070529585109062539402613137901351466765488213689618103166416381725858442904960418589919995774471861957292519393657340914755728313930915455264911500628003862407520822872492538634968231640470398061069906455798471319726220267877483795008683521428687159763404102303363595745163458603290065729489601528415741674657332375281640318117467279937302776400980818974292426463055334184264660895789108860692189226215461810593583983453699994675506430919125379355869208479076793403403243796727243362284774578698984511582823023258087651605384055921761302982465649977039176141843120269831809250210514821290239158115313425166753187789237575394837605755308731319872198897634886942722544569859610093110190881468276869319400925116752624309219537956061630041148548843392650878218622742299670142904409554804842462623945951568121840789517461670874499367641025593151770703746470064967939351156631450921074874961300413128218812719906733667942870354452982992797248128114186197361034645676129304625633306924206431876747578010247649270708258637193142473041400451737653728760055662103000537559636959974578429814752878770257785665094699773834255722743816326008462764082078771561783714806134307786712161711013525808744402077246290712170780384758394886154120953889874751588323434834419665306566502630643336125773655985571728909936173661634089341648748590196514699186560579345778512838263918883847670831068357922028616234795140105477514168154844980221903943183758774159650058366723243536248597891540535371662823950628235336734625689187430991163652304922617757059857258588851834909732983176740936609156889893588012023322893603293352039669091238263196255454192375831862122053914030758774080415232624067575891242035725673904571767341243593807364885210545957405046174110075308968856227010514547736963900353594731459400019595193221297286754276028649382752656401687102012465864747450993106699290572321480556885720687866791326241185345505159599266892855817062608261980399560264863086246148830594627912949992173261331997757153476581239332599444740986789136044691818640256259281284244721123267218487452293466335601159530217975492113881786257507381079380892733471889574992049127495902545889822247786705340396061528325394575441085352719196004104900948550157876953754269929857409495190925208845773209504393106915527472962545790874135861544296665479334978090182321081703281682039234426101168199477850884842372443587930277457314813569337731135785675447155923472404275139848556235563060555618491011587481603634211972660028510200389579312568803009242173577656281855512649261371568087030655687883649196503464300921084616492965774273960839191692401625446019583737655206431901624065088028274801877150019956449439499938306279369394298074147571408207814781127961901319460793441200088812488204572356277665432872466942752645815731026411943301490896082717043159975774561924083070915140406482346484864451426930060023567274161136295019940014328117286137149249085227130224207023800983266320133231757030506710120353609428283478957058915147615855684196714311943122637993109747363654272863966645922812596016623702600326841901329124300386607218762720700147463695893339671078271589406019069547295118430639388180964786035191530298997715805564034441174235983250389078322337033991406713447500056569475101039601290951560339541674894249222502752165819599048013451111484296610026305858598514065373749301163951721632299288495754561350604804484598027744374127503178239965192753215198582677300623071087275913898381544476597880484449537945639945878180609462885877805327901431402577874271004825481732790220450881789174627925391022239483520174103198821957945436546462642901598595288510963209160664687771298369782987463319829865852688135001560025123210813509574922521863157167749413268227323810312237913850733612697158009207767984665223136537109833960130540999750630438775606180627313576812160998943312715217374509976834136247088196819181350655047855358077227589241893321479280719583155802869104644390525998389166136132860364385873694169399338698014361241131362855597453855202124772008662979133792181369085608960693527354926625615544361197772788903828169468821392235913252533147822145309509694804377345967387697239516863126187997500627584923679272211883373621625803470599484104469754176093851426553976013725494547505249209306472493385023148961540744506583844405283884981565225950446925430673923288493356376261748443225558936889982979803421356601878490192719748837606979031786154956633432245850117962225419829703208222197512276818742545894643753480884536133616928162985428979205883693584583450281477025463330399698367437174241740142927357623687274147175078157559349698084683626829496358920074388025072453695373823516351235787689790771957729120941130057765015625793117730456399027994271570797416345446846202683265806923763255377873180345258253241472845511666993631534271996153947314430872223784706501293839090841178944320171225238633177945951838684311429942580602369837839965147620905570807673846054270381938949874066827277403539169417384583156914739682863122700690749877780447012327879017965328527194294171965247851332479043842988678481038885248616812533757113810040517986532327211753983826297269695295204514395887155943545417386106013023948826940629608090062305098381577649167596343196518767636429441897563833176769434451852447585861589319297580315122075445601768784539739196984574041725685963851197685160055264861752912873429253847889010811671610161786364815166507765175164028156558730501746195234834305362452891493333439747569261388462661222776060201295064546732654144689008377776106490871161397919411628645472097054770479920132492239028359445423819256056461346815570930088793169760658946638870257404358500383320512502238526826306727371954103719181976572508670788994884788141218134691698710328061702251837995132575869517620922663513230807856037293575466742648946670491133846816051931579430548126513635777089050671147247627646439729514519661460738350353545876662838599557648539250403064537496610279382541544614733914853304786680684597713259015875547269698552465583133251621505792220812593329326111461244786318300235517357902271839300138979514594799728104176057897574244679749574302841288950785915589639156697432778433080837930845470522467114093191340867712682880002545591121911262723343121334959573754279991893416309434015916014614020591672325154128828129160944257627866091074231604202185505484991429457875138044618230831367872668629515282037135333922489906837424612606384523969089035109121303830470203032094055355361783711617748507984492395897313236380531018458774714289799025624667499059109325557722223694844440013997215595916561644397098368086711853214637272561283107332400481423580812876326405257875658955861913845050000840940343745541861589098813527133992687120701867754114945130933864719103400933555420098728776218621512290307807735177267408182463529807586208322044266021785302924646011811974088680821481659898674548709242192651221121036538155706674299280006676424514455276544363895837804610065178036333158475286571617444750412342393137922694462525286533086186400487762735591905386814172667979130103415298502574674409892426124764707513267576342626305175497971188206327172002095460093947997394272452563000365628288024634493677526600030068233222358058775588547506497341234360626611429089778114678608014945913767008706309633066561788901951049069581960187582641101709278549507675481401684947584466655924616916560536981509083613655941027037336333320232537415690850717019166085821246720840441231605956722705872640702888637968128648559311482629115879118471611139345572202997578949977830266557966117533101429226974717931585331651960859685639182609637520145942253555553080676616037069262763798947974643023975527981173327338981443362455157382149625517677234778220437435045375766688335536843835288547490614679199119825811591560098769523710798568674246897135747724324270075106436120016088615497413306112580559245293411829766857606936956581488543799657548963004282146325202281882614272443902742621950100672079482942381101568343669613399605315231234619538384256610125826608541286621202911638423117527319740221382908968322202683658043963332664754316906558369846195526287209313267024616433001739774523869526178137902442731569881189846369661603402562339777418727967744936237927734955339182364882826220139095052332644561544568774887576082734986158589323619557147616044999614555535198126939418360243003377286136255134359445491889727619960612043231874315752447960229974877811235888685990675166915461077042611678599783118249036459073414201180844796233318124108951392180353935945397779153670394614311033716853193031477028264410141914346706469901991715429424088965409510036655733948267215255181691844701496841866596300889484960893791752918969993208939144761793727956472871060772706906322506004122189768968542947728539533269363533997808268171403753250388309886132474521862403422018645680785004684254961244181361614087454607988621664050420763242486876480952818271559741806290361180658859461039939007392533319152833794650035459460673879546153081210551676171211679230745379573003865381523274374966886675714262791260149276864112528595426156643544427452971633159340585287084901179448235158958393985384602552649952929454719941429483531843391715725818904899332622902790469924393142955155117056123561762397757744960203610523703397890449976538044165751499546555816739969394682779280387487992530860617942545777242935848202235899094336905751362869422051715893756885346836905323344942031925184698157753960133152483717429249099496656416723639522998662248992902522199288940577511335025336791679092490015356074939543913962564407364961063894387286477158131822721158982000731847401744329538694841116466624433365780120976447668130777612193228615358537464000054393389394437666671958655131234217085009493963110297090536824988370935656185467015941043552476223428308245989789159168604395560891603737544648234136907996289482414711107488433827034468752801166636743347308713087159229786449472224160046178297961033412744990228596315336067232474366546766466415918247712685786523310081663388699016923432007425218244771565214134671923253302115999733551972250293648272551597081799726454645807489676341433578949800685632883032332842875909592782357212216562708611100343787574882165691094911719283566599930528198142588143253182356904705766190012934147467145608116025961522998677750970482155705652326267061381184597749496431047504034891550061006750343701902565935075114771110514642688953569172228082206648309396811477071608258473177553176686290144601729343493012408660766923108399132874817940100117102884198517473710302024905109026301492334627496913117201125406474688956685373155052087198258419533406822105900732271108527268338556444171306243508317569886944709065087959046996392418500165661159918131136962546207283679173370449590261022270201999525709478525467611636302674969720671855673886171815173164006496993558887290675850911270616559592677029897435453587581506947717795920483885358141711703602339770142465654821915619620458663421293711816285462871089150606006764106989831459712486770239984339617042075727999630696922734064129605428436827414878763556774608976166324449895346739861078499642950939613264066484177404876580091722331305866719091597342636608254378165390430687870053634743680661099420856065307057136130181895297901074322675410851309721271719889589726121958577753242897144374591839163072740809593175003324398717624901461490709636623668805156159746759430090552014155412407367532985259152418626874301175580383746069399422081986165353809600960427953783656430812077459254399418097542900918470944353186078508025242725009768359145397841984844065070223321715038001748538234748496661210639679944222463977479587228119803684155991607960258664274003055226259266856156479433420295383881691772798644259565428832086049389143598757033203114992483688809298599826091284900612707524275041123180370659211275523310336820183481111921639418896185275800829910629040517325499121490330003409037995765256766972943549251963409487991029662872968288615337045920144093937952433418735556178009805358247513977042500027403575681598741077604535555301995072417479677225262561105009497996899775909039962561740995149503221152870431504411053993745827232237695682790610812291894977892584123563397730840206849812159160443408305120955483458524009556917105760941155413810385333761608372251487799240081277967765203052096746200147693035418447429949101525456143272352340320210998673920054279702729568127239391188763614534749717820197329543321505528562220236835008177416430978392958695317210436592995419168773280723425314731307366549125131246904075325045526380136977535332349276014044414426871956587929554679484765233738322146142926997966240592983046491171924240764513487373031114188660989251667419105438277690537689889476269081544748136427419290915846418889002233823317193431693440058436212719270436069760002196809765712116242999647678254418338453288432915286682291142999002843262469866586087122773477098369064791580773226415688720549713608958124796348075490513358972512789222288175829943416080904639502628261045870911703877556149190334795803966250232798197701673705883620296397973814088642533435854396538050913559469725679782899038132397263574408256242469460234324507283221735807085749100762293593197201692794036857882836862778686514819233834823479281149719922940184247135332103906279552350625721678776234504105948643594367935896992685212147229476824565687635118586612490878183609361343329351661074702122441095956717573295149551625812774721762230758533525320170111581836309012289474427363484280299576267372550015437799361259292721685484639061794946762182033084357341375747205604238283244799557606266693881860011392804062029066678501688172862988212233775061206066407238799038501814411964175982606640280419937081953123636363529330558472975174894814081158637092831691906534813083577441855757901863088289198492806439727384867071442331078949857066992506043615942367944852375893323885152824122380314396222609871305974527227446367015101427726890660475144548593882927273465094595739916732902679312724011004779679818291401348820025243405489059637770886176805932395863945960574900834236519380219076879889889663407523947417857017569326308846035583853746356506059548111239359792874461931916947343199899059139854295482892777744489359775534744431002401613247266346194073078730017861957598885529952532611867511825497381695738856503593897008032624301126683859755341773724100541979731750990162038129215185943286425127556997627323267460645583596311722157746567359966043476691887005320542405911583415021764829311460699040475568092833933036386603004243537843020034224132422257637804515303232243050456405019948930506467537319423404963987238366672461828415641193374980195780537080189982875193741012551454771809650104618188507212895434899360861358997761364275679511142730145577666762653984793518057004199665761262054904703156227634583347884975813820411140126947372296758323243240179244776578595083060168360245571720287858589529780025382754139794002803628649005556610495103653937996602093537248083963631057815825206970425417908901954824845601728168866611440270776568670338227818908324153064185670615121985581665744006605140484372607993105233714851074743296937492208421588535598517926150955974348138018727206070521008102069267135175476282104907418537476774825469643622340067984165794746797692867751402810153691923561893515603470547278954212265827702170128895507143077930802510116848215546397419218873599257790085478438926893547552842547349590357225512649465883482025975471108346985301754559412958182761259575652588540429429553095056924520414740056289874254241463593570106156238560038193473217868586468839106978603288663699081805136922102655899530122662727569472245395269453154569055898236866518633388437623968704384368336548970967380366145043694715486986923181406182711151163183591972347224543086196800971777261658686214060535268183105696161808063712310184937029392870427460181772203541004108656849550173084225717263775835513717983834752002987615502850478161260125131815531459881058337918986398277059832588697401590189591818029148882144943760835435985251740751230676823570874991818552592203326511145955552786334448527850267534506663019472046795087635131721591091741723520706527947080037681561917320326970805060572460258279464224351840382403398247651789675353680086435591853714731041420721961420175561699579670939924595674364086088632862380057415989663467695381624835693998640872447818446108384867980258089757539134865340052693437087287946240922716359776460380894526077235134878627484056467272264441997058133319114937551777968604288893168099903349984122999137740507613102448007670018701817324213002718850127878872771566523855881955212271507428227261490473090549562339272318175756750945803724977695676501587688373021404054472617289230500781712704387189965205999702016079751062312790475179034077742504322592584023856862192202690561987023139795394547458128764867738374986174756257377270390751628681893766006292700015295805600637149567576230858357502775271190288332834964615523195912795920987394871450100233798568026165455850581910029872477058532879553900029665977745106876160450557289868333233183563118855968003757440202534017187747192725926744239953756539876134407008327541602867649079306356368342208693010405439667720723615131371705516218712123912090768523436692079348149894476875583935673462985912531708995246488469941831752873435982139988838313688251217921345778460213345152070346017184117754726907543356471541069940399744725545420328938702375478072280869848988495457320919864816488707332448533228928885534663246198559174139885981397034020212315820521404914209040114777933144359569201205611800237026697992590651123758352031421005487559555247443576656601288858232713079714897405336490114821486702052002762468407090491158020761125627288296440818075415748540735123145989342060526564966107532390053840110414592056379401354211836334429202166976169109181212575136257915275187648741179149991561195543494901618131859126815495825886228960348822708947566973682964608724256518972088336770543092495743655483036451868491719991130157773286265906129278324585610326645760197204121456460024242798117296884917920954044319419362901361527194856592946726225110017336571589602771354187345400859260282756405316487339594119832741844336928284195661751467742054486505511150451711617282656057297733135283773198035908873701078880547661472079273459752326632744872243930000427681123166074016498244477788596945688545842327221463174213441897837629588540105832875156146987556126912269641550189729319089834009880294687487551373053945634134022879528997279128822453547380019334569846134983161809120191158130864922907932290741689411754244131308024409196730341874092493812349443802352942660422667754060585695638758993572036714392074616148342240864396849294885271380244188944654234917003216719558044876299503465171441546300642719136739346206857616479854334118416358653845640273035546020346716136240747601972398951203016267584146091512012947058633537148841204471259040194151280048042985027426479468084251449268812339682537576391892044197349935855763570334025626414443518471426564293947806109943186602812623440468271680358165648332506322750075250638088536848682205933255275222848380868656036468081516937082268072271967590510386330850495536350690470357019698473590246847296603819315911871300275475077894947287950958366689136635902486766654854377676283706086949467854007341380324268862435908410930226621000337008386177363284613860189801647820532276974055845195157105236761767569403161671777269699086434480132978764617618167122580913041943436556746792625123208753261363076109388722223491783520988170125978043887307195287160777162963352064729059639304806086529705306229081370919583045186155684713541945312321258759313231380794320836729984709675950255372411041908380200833993469120923915174527008192100208815188032879025721934166933954400919040527369070128593396982543876613473827448604760006451614552594735401159254193414400920542320927621380800572667109869576009063864983524620271742591402797897325331423423186680146210135879629301935828355735679658853866978850442190059139199678225407238878512151076850861425169476475677044621466745158773462017828554232408581025236461080734171183172893888534455005132905168985409002362476398854526677359219445423279134673310980165339794608129882176043996952955283857431030266187807927240217841187408971339157810901139804876561973703677074564918839728147023387921828341776438827930151666914820380756057326933950503963833532919591380801785071519504818943528362042684129153018388471281637750956276524354283807634628401979563453067835700667711741042871941719678489446149497119004411786538594768224371493675283061832299224633608880991357267412018449679825065149497725855563032471908916412121511613007715433747835919370508179395692891640802000856299035219554725676255266380744984402862828804881365292217960579008083331048775138746525938016548795937411223001749580878377796670768890911189648777209448214480631610754753797028315842230320066505876206235569910416826390940374535662594647698682567417757581628773687866032913299508803789983301097715710091747040305288715000006173568654192087229806372382225254214927918483466765711255949039188847390291204268659076039783876334352289561840239750800380756235103655854902694063693956331913100396809515683772857106797851813540438484146488942520291533183592367693706847209313631662472497464792218341204670760385916554799515408430877454420511924980960454068666291611699946621068775119260742691588403174099159037110154010696842121463091102680048444281399495042883387176279160296592091569523216199227547415225601407772569071597862132937188753679539293908826836281031469238939537218179087614804719396818131927290288810611002540855997767514587318396127849711617437501878603875058577234126817748352481133370709651470156511492603009523806871689303011352825673932267686439454271377340691553790871518902974177377443727969765673261444545444812218329773148911410421457079440693324401795413558104453017930621817858143655244513084120506071778354720112551301951269457902799629182952150742211234299575784675846430869290988429012039508549251823066102954763731351167499250706986887757224232443486825928996397316606597068190138720910197880865068622657996422463864752021477817665413116466335420866668677370599118654309537981242465566394728099996962958464170201579828664973372388411650886125212258821116498467629198528800699566802726200775627066667591835868945274987079506816467773514196601514500906401520328985181149887218928300270182671619950135757111687294732355996722361574357577246673813810950143585885591312533442034715115804783222980786859838294644319749106483981582617637331833377218163305989184347299389065328865767920830319543839950423640389419005581680879703695610816558192012825610157580648502496123582517099229288049541283122440366198325219573352774220391085615248367278291040096117751209159033193683744919495282094857933100664287838167944231011367230851741815576684566174814513490410272791813458868287754883553872804588591111959051104756376654635115828052618162451006156868517705271194906126920636334191103728505776712600038368104009297650392330079769547152341849307544152340688988136617095474431515750025677508349921197251327120099012106762981045450961336100093162825582072607704399020133707498191237486001431395876585118674384255573894363961356720427796270751159670298656069548592026927422186577025973744784499477423903955736639602790815546177371102710403657592849880310458063414725391339184566414323598112728447269640321015577026754428910218110684723049933641650753953089972395288741674982904026991731966905663473192585554357391573391496448421616934341016057879185018235919739866137370486061118269508514508258266670915421486145741552786960332509977693257063713035250579992464857368209209010035182392087810760404166247933299254478709245470248680555157519003913327288690251748709367824441472923237863330006836434857223844559414304487302197350407266019317545876533658432507980386489759283849838382486006903802343208950421908825097822782180404084532181718906239776413328636830272631578691269369715429045418015959917111648940524978309412116795078338700977481558677900348898781790408614007729851448072251598370223319730886316146316772062688980396850751587346193551631963115142387063710472459406682314245136695000070113608411951716313718500179532538165815606361203602732267188783751850791247711419595359406302626427232946137344158131641914383158023721779776374525105666708368647330832310340358940433575443523068470316343647388934734855384527497034485730023435586218805679099209189410849578176556137384381944175099488281165665638323486572824835315037627907775628882018007621936023102583663308881434233121337479694823101174219288856008692372789354691912142540050989914955735633217908303972525574831011561114190564913038984262612260778858236105942212607808807722087911349495173744057883448019929503269727946949529321352399419439590096314722881846322122731276166695481315637465952027568464248753823894803219794404125429167473080998705714937661404071475248070053477254958892218721130095314198125028596420277476700076856978286627440918580976509424005735389822844019984041922541904957609652367023448711627146235966354801706114879211096899767996516152128290641707658928066913605392276494375952711035951813957215710531473471065520344232002094172322164141816738920036098681560248861745117209649486106603050275412314496906386892628972164437606120784252705297019629828130708393957178268945715796280338687796824964264357618392580335404032966052047894003838493087397939510115768245896557866750367316028992946309333554150734749357199626797058268561769840752325689367289499459138645942719389838107125032504035799441552610323593061295601671437103313352212586285843661110142703578543603265030097397040753188427530465230905776995983408719806411063434651535949969792345212553499206880198441689068129108570594374113554487984840731485893758149806971359761915544215934137095592168646485393532973547663367551566872012856327439836892889560579641836691183050549065060191085517023692883681043777971115024698769633212928703667681646382563708652360567594678235273806889763134905704508183013965583093004791935610803226813129528255948500967116947684651554666001614172250010110467597199925631900757166906526324952093676262106249957229797035588848274484948454517273528174029529415843636250832453233273409549134526316420733626609858391552741179053696540852960401027983670494763022054323352200284555556256001575901890798637189609630551500442785023840752394129274355898660089996752750395258535098560473285420858924833410239905728015109282094906685813201441299463614582679275102431814080945716823229061187469217907970076615710752179219009878761092288240710192196114472566764599348563904503119607105675848423128537159481048218467272633814320217976189354078119528191834783934794300718463480417706205931797161479173812448324514614784881234034759630140028043525602240235085071788212500230969047678202483115720781068726348094384025470327755049650918119409015717878013804693078306745388873938306450556572189716645619507109599953908254589510685569933342911024345419940413121699010996558530529300669926222390537859985678365854699339173437798188248194245921729795770343775236741621954489289987124373516339787785205631320314334591685804989947658621909984571901007900102937784383491511186474880920213162379453605485815702644806365948201963081063869595524351417180789296579821224255270955583611081752137815656644189759553561904135907653133408114819657006564353158327754037352224050725746118593365805435812606536718720581468443408511486641894673183924324094591683125461695028878952375484968779557318847375357995011978560232318018780704057485165207001740233271399792562755976830569588644225524029994999565652561284480530137591646663909282092796223456141946978186579605769515004647826474035786305717513659336522241717405254205335654092858268454744868033789525790334779882044847434704259038227275184494782316895224453673527383130071569653383922203850000682816700810511999300322729310561754508504739994731102279555514463866680050837863030618530590233016867736680845085706159294626060090115278202417852043584345769181951001316359537602040271533225534159221240309582729231626751164861756356692804031529936024889578033052681037909651615528301258086576869286711374160168887606466911935281129810083350613330000996616047218574974003353997231162418795761230635230515532944272959849006586925002374945090360251488864061384664501799846033781565586788700417149478682144054976959208278808848746189428118791966987169670793249016831085603061024547541683954663098956483678598752427126439038933515130921260264554218019640569883026825394843481906199713919250722342577129077581239185371544402051558440128152998532987636343171529393795963770878271247297499724896697566044010581743802780797904074444361649494066955947360485661580948893914514761988108663891624464074974672284124504594000820338639544196784957279710294610043377606638057713365149335725514476225484432163577801049738512566987955330118273615478997246404719970167788166225025306188584903413160227369699855107416685716962166275086757793240148177024773953589689884971274475497557697817496248489737357014748828199446593230607729188664454152704090968776390755385329647511535575252771402862756357120402714319399663501264026154675868613604256475451717270461311729700017189295831556694077450855567150205668021777657365417282994545096980991442242746306740254095311870628802270166697821282851521933456213005993136148671033771615924215889517472424794977675124322191462418932995927225267538566997013182274800542885519190607649114200027428827542042999596692839102662155184516054833122032579396625742094511495438412898531509194730748991599834828756289276527440089669256206396667868803005896928254242294006014328316980294834649163837878231259039953238849496537289106272338997377440670277472596290009014513224053639870505338878971997061610244691007694790398133536321378313050793735003270572713788178686550140107906163179149021509855695287056259318063499874052579149395709405283874879501649697384839107964921675398603786914243340999738944850754807114549762631247247201427750171681229667872083160167977001056597824889243404106693701196516059815384336460364225989640669576470785633940987449707903093035314681540128122129913121369846608338497683408845678232945836977002189899672734428684935063491423605807324630646433654922061099803612453950621609928559146555264618847365644271180327369189212367071773285245173000258580441724209155871718267521669672571564131299657686172930064973428590246900872423984491394552068353591914682582707487038356334886753958442365273906952278456374469835956530981459146448333581802927782418038966242970352497703658583142202367662006624397966148204949972539828755353022682318346378569768561479188019183650283270047378307233050736228243487226659388327287371383403895049621966155670691647302357257453713668692162843481407438806350034242235198913244884637062521023160546318825139902562414937774808808992885979583830047324400907180928141722580691017052388658270262562810990999509864979680910788363427252751345086060364740382731447830881527916536067162525563620196394090268623376037200412673963621097431329864248275246960017676768456932972454742568834169965638745242111183003616734262109929391551052227150780780287051191760351359058062663066807001242218051262618829748172155377200535978352477894324190916594171879364785267392017900904036265152287505622268707339737800778016867695677522699542393940171776357775871940495185087499368740432839216061258184471892826294840509185169370704592910306333050536076784577960725600690340256790111905551221875415170945493545341856546161355072352498309175671328349649569933334418391452239716620621221242920591657334586578700964875205160849957558953772387572001383428088717876587128932913998564660873729873382690185941826946250432022431918936917068632155230070926616174672125041270168260575777099297874290704857213772713842427077719174552567016343699921704137424493578987964211237901747914296148529583850639556942531750854646167744218680567281653186380981928660750195994231912422905179363712521478876195731865937233602792559012091673870147630221864245293189843217227693982776688839012291425926809540942883691297869083083425345910959915181559122110046912963162848547326383543342431805137351615506157602864794453137821293531111732020520156714981338971049249380459825946937408461060192455038622402398535968115593659467169142779768651555512919001535955631305676886339177534814300837350601936207483361615568054653264342420578119055420365297748081531070862196504479908801342309328186152834593868611559525235843244459991746077199247819030505986845024096122483155661815554656714067987820366149371391225579563523524741583962501499261391867939141197777204146695923371119195234433422411403431426566207137097745394266681279489894326995691398130775383597877263939868733190130033519312578931410270493262196202251931093536775024402896496916929644762683023932102048038292950191046911785792576727644392075509896484715601335498325665634639795790392172930259087943436063141213618250215465905608683293331703585060062657732966801778263591829523290893766260119400669733962688094350379369936194907686820663208003787287886432593502895332843117615374662486980968670812655637347711841625040753533125616824517890531705299070719633466284084637967579483465824746770409349738907238545005106574435282602826603410610823999291747619806806530860027760011849304840843108341019770123041807895179937868535569110317594919625988347643061517690808972636010379341471657510004638030686431213116688389702507070983489066089065303940473320780756679850836701362176112744891052075914605872254365504501651021079445595263256271502153280497142992578028352934322500065470565300634674074205578870481977594556090971520680918407879317519295423661591271423359319556819856551747038935766851421749163791209826653568004707830034676570483313725268316967198059303054514043449094596899340047542873565631065024575225355256369379769397522519028722939293714950536043672205537898520229653381619257070956837735413508326852407022875411794497282791897823507908934277788074221003371305898346701613980323672563967692624793314614151610878474969347095299116573477034038900631344005540145154656676568033393169817963349675577146919913274394384397570633968209536220212888288904314378194249527402360529625226684995290996091107042601225289061990613345144796670148569193386806046956712139859964373139840170289461336527647222525822246482868251524170183388906909124956145925210848036675597760023875645467239782076532464843183897049086260887275430218261350750902624995797594636919835640146885670194332569848079386587854867948042891477388548133997369683713650624814492284549982626200138512885207918501431722533841250091225690578108686256442459111604418900708707710983237282795186940682675283764968103563398036522282718414112955876070103301182589506987960678150268799861135033898465064884441382820282173027828126179249419072591625614131206245306116271107642501979856594418486330056279652351732946640715483852633716129902046515108014733540726839530470429752482662040731978803205039801004420129990104129498501383899998663121506229713944486923907132735133725386802304310111062094702198992564948829869946590317634745383581459678564200364918614589849383613299123035603019742525473565357310477333242966735026100226385254579459608584274844570766582070256441196403941372647845196942263733646306558658652782378063087108569014333554936746841056366553367530469333591156623075507749125744499918846489475304164566468938499321035639868023837883205439053710085215375956748033412465251877322953303588072140037642597180152464241983687456728999758954052440014453171342603007081683834275281158119957793118183417941903212643622604811400278433245661059092305435685096898367473747603446936431853171825812415505943619614693549652275288334153645386330384085140802973507114735595498175941579818832690439465519384584083726985621882442463548028696622059745420043050019731069688168644007437587339453655652577856965958483036358376525682688695328084492151888487650465574691320515928552841217320886561082254139449765976424057369443126494071622540860163460151119965828855599309727367506342523899368584262752303188283526351441989828439574129607835300249451265737775016594489010492423826161326674769387983350882696640420377590781649520471776010982767418899352495094000962241997556964178262817291854626322534766381335969706333042159522035783219487369259071875981157620134063894684112288997088790342297174311916690944561623442338924572376386086824175295547532418269067258851320852113976860477365955228008249513484738016858731614907666702892302106760119660270795890833389988583521871589975452774092782060218096324291335174370617954521125797289441091090515420221535639952701735401348829965502125600645756489995554681187825140462466753374507558707235755881193003898228583799410265148350145786910583824850092877645838724194778162852321158718688122355369750521877519700461711744623824018854095670682392933126525639605993478817114971514190011439997743473792607647256827099266203064685201214840306529202831868536540552858810171000283133796263135786337707213631022672545153198499969959075010571795737960017183785676532257678703924658207962780387098119690435274628363597132621901921520452361031315796770400147466397122812682588168107489997434412732289823372416127034289403702334533826837094042092810447156682097474865610898870517637132298709732316093698842469771122008110422966569581932144027271044701256861175181177490660470858807730634820803259417116332261419950614581198058617829239933351195870328242390059167308362906637813320103632809338785185311718848752218412443954193518714274490656988761654096798235758979612230900529159966645604279287853687411527734568345824793984724252602802972594549537596308542258399217754744958162931182313371734981912132098159510868876402575869294271122307697940314634066913581076646687456424208431130721626139436530172120912595146804685210591152656946341210443345683717956339998657243241674170197917981919095524890381364732511723140688609515025578652153755196383859092885032708865478023754089932669577226124168473785585935711043365956001764951512342774458888398667863553737593722789847585441394087421262937459451870936057192101132612034074051347216164307819897500652352984454147253487015907354950803963592472110914355785816801216698474981331919719463100843359164360795183677865605763297176393324575154371845023773112696560432628671365191734783903917930914761372701658847905064637975953432329088285229340466039265199179275795310504121250391870709319732771866757595557885543753206280243282478389325273336982124860207411698340986688869345756669989389987836939546564407805181916792463518254584720954513463078055577525346088262369196336232625702450886754667543059604737336599493128902754237587054727494851982329962171031242556073995369477583654558627633782941600636695867448762340236071108280728784116570448578466000030539064611036817289730264285762183534735081354456658376381463078189933759899034789407018797822278820048542444170186751256246809252539043662182454054755291457696296462955793921510564678442023758167957431760926466281366924047540070736896405070087491702935252591311756429694417959421049303165536447423298915045256288933176023181707608122575247696221957966699397681506055243291516423229893136014129503601865749718369199294166987415056754134661277625219749331269615577722001637304857176422710932322086152003506713465425344166896727283206974697743225246909221296431417777248807110844201364929142339789490018370863438711202092009922081520861919388704618796854526576105857967343734419678137422601965237532970991694828648492232655870267887152273834448236287466791113360925809976901955949658367141666013286660937957812984471007308121508521651072374014733783204639022727505083019514815053348977127849393533977304689141150814572768519257628517614383031953645416925686218740676967854113784591849861535383492454805926189049522558958426431499683293934954712134902839042962845474537044550131997011116004823196600593399274353627365851805654435460487684187986639518157132569657417767119822056141881724852167072902102741921366068200554749678087663073925488152656812044910530414143171304042380006250897050641226921753094639959978617553312532192072192086093267728013616738366053727968587973212203707157718804366366318060470717724079538952651294859670310589837802137409756479977151593517565740850856270739722083324904949378001844844241187707589835892972391981525855468659240445769223818446301888879225936996818494073375736297635730054155520564042056310433291913612984121038775429692245768408789696079967979369601653492411471297980640240412355511658150681581603791544163364870554511779734717530249224619479715442367360302804662624349449981027144287284818756863998661606589235669811223612538848330101751150427158016377258986259924297180357740096938139669739405432311523845566450845971921895829632776228248271420129982570921205203263078380685705687093140890080577337808221643119416753161867961710778837645832178854167350998530537444000568698239168881340390299437241748646908176795031071466562639284870677314633318809409137426183046910826506176702602799126208651400990035931864015931249663526773069297842785091258440328974735717804310350741996629236368583743878888261115392537310294960010826997990276878168278546536273274826213254394221196880084470385788456689035177855921104335034499167474539889732335417928517321417829670131495555269494431562721873316841781233720052175505718798498550166708203314333202459927079800238074838013898516620694635323760260877028203800970013505089561776158341762794987624373202068374846532337462371895294299793095354080353668589759471863199161436620527008561980204941970513891564388792686639737493262997093785186752158467683221382636354244098424335081080364761701275750802081750600464126309428510675051415722022608809226457555259471762003193551889078407270541654947133621937712626162268780783695599712381545096876363720311742821340526464900414942590606924868175679741673231026149405994524463941184185816313220484670452662217092549733829252322320029780446304430197960587859239534998826621091259008451209974696719719106235251620364817010934483144778529520282769216100512951944173413912197762318383703698836102266298891445729431206671614210797088718860566242962057480603706623233191994186843547911257571017297812060847869061043739808193239666102267024890540594246217802950472437675965922712919795504750015988813643514036075126212385214582906678384671909942795085157927694373868124663564531987249536867856171840889441883881477476044394499724984876325981831427686281986040989191171292516607530341789023188313502844707074338467156888921095153760031362485390159171340230684825796809513758440858263403919520560513132499446684051477345324768185972213733684782373514098354657382596754748832896660644260435979813523373059738090241004468334413469985852833367030209670732797704118879187637901613467685302258232618267460757107523028088561741961448072203053510113554986923540989464520189242113700958217762584439915287872464587463207117969056905425325883350650795680891564204503810064733723767685570225225945842506489279268016955192196399421225066892569575656265066815959814050459234231304482660884781988098427995898189975719409768507001489411114914839682862066932182611435850158989285819493164012085520176615978459373496479468985833082299887516683319442573621776933268033718328825449935547646551921835842776693352143533828151584694135550434619949633867973896166459183010790016196700493836536553643271466073389846043358773115156329303008215364290230578587052195764550172177961971139154103001025365204173809500120303120674507048376081001225353540292230774747412619520674978070146496443093749837564233587997613638072770987409480580814616926845509063640381149896405226290510121454471947879077387923393184011665299495749068898005898563327602385612806588246986734834194484936646708638953774870865970117957411258218425675737242274764448418858251724171034316804085412228746973491950030659575832072130899111215067878706149106330193698025098342449568560013191358291494965852066685757403393778110516584047946487924404085793027717238679237765601821830905640812754453658078006258340483712429415161318263059418042405515695879539264825277479686775844313619719230946623530674217458334485381175821849071036584532359129420658630466534411525699317546163427356435594316479712692324188301083054398085192817500407603215056989528686466859673359806549691221408284532970634654789914608375775209735991775252300297028754452902574837037565836191867133213498212909050374434561459591676972370427119561872067571140422954047230287324919000386229372182512602758797904967298595458512516331089630793318636641917465580489404485037523648247449673491641859546684806596447762449726411713029170820240649962263855164324500822891909100094701891639531711590117968971442735724325134192270907618084584341994454085667841156813655429654168313182251330357470799550244332847848383914176968832354125056125764943067237580178384944459034956412332144348206873713040855499916257943498382656410331868493530475192116278085580690041625423366755831282284913102736856070713372038072776573896752937007655228258756950817823364240450145371675923607010157929110745900376412204620479520346185897864196475790712787461392334886840417742460456463528703548025828699404081552952548752637718606640833846719755649968054480832439011661090305573190059731500747429785111665733727909986927469811893645781449018690038929013640064696302114720607585973495948517155228123477224363526447778667038268893446284220847424537310239967552249804034738095878357767404712401785538038263172767176745755837767111254100010586084336626952628197153619287029916887186678547176791088034048386073345582900634994845608216494251573861969389259706531828028095965257002511888060408144591112897341239772602072070132358845818543856078934641358626271284108701781442102989350630210142500066748450435621653721751204979089085145572510851229588393486206478185062569249426813925263563110384829065375580140504132630590055611501774867745608142630499287271103010549632003137968132298840271445972192164028458383686185383419694230831391915895224803536253063936160010501893420618695157197216896887954017933398135503753786272301416127694762671989509889166435638075325440321122854322304730741629178819804911860090138773687875790847837055955059231460231624720196811191536655478614070767514353928490576351851181605824578409123947778961651541716905767559618861072444526005296191154640859242271612226995762259316587086817440112316368562226962046871442455653507291842454000395454476140942226972145238863254676164881194303446620170778411259571289013421012265405002343120156643218148541988794997864349889472595852436136916552396734810304386296255868551896485517212975066480531164592564637616205024126610794118569053994251816499046118493298669058076922144033141759291035262663270901688449387376050420890669511672848731851393686622107351517189957872828335467775606680411059780721487068111094046183445277321727494694604413217180245370973586209984112595531360666576630039756957301493271539532742158794196862287584606234876713635352605850645256664395960853044507889145862501441570365673199859753937110600080039177380565577034754767583308196986461690424743724783536836861406530897977404142506889435505863720776983133989274474557743060524234474552409150366351223902942447917364028987771388426214205060725143820896298069112916525476835022951313115816113181224309341974299907513667960715460286422964803021424547120566799708284142078267353375120125923939186662498855119384291594667523709265163144313407753331557075674847753233978922574893670225567570149059480900213426626636656162236454097941332672936777856595051302985803933756666458066628493751464360340487530523681888894720899330569148976342487244047551922016891703697728684092990844451720028237668305158952326321490166318761142140272150167935815035203802905282353776061128963377265253661920202005108740093189813270147677978161659457685635531703696496842459155622902687486706760689015015785127524494382407069147062259092548344918653864119940020397649172546863773171611090875285686578830358274224554172830105397638732114518267756818700880578650859037696729123530400678115933556570062257963616945665274242967672427459303331025282595776892658354603097530886000307343706040319057094317014282032133255892469912775375690078203695817360655070628059464542607798847475303804026015714693311919643454402431010256616953803182187016491702954303611606104926420348634240133872360294779052702840332624662540382937355274701686819852564022881286449172862435057614626002567525771125114715839646344900042948536413320148537303002979265386585298495747047679232126077484703427994611705545784450215887728657949661152495834200037032159886169052928019339820925994734630592769636461853508677768791950387629035475981165215648715177434022570189808081226999167136223098763229932313320228804711719096538540863195234419661409904699649368072195538023972597782463669209591808284256351601628053033379084080821029429463811878206491824055333441785296533204387148066504909535922253327587517713486969626735492273176340378068131309078993700877534234446298163969729604105090732909490343467602801301908368572233528696609369915264331316388969634849231459225380164704895005403201167783403590049162020139939820956804840713964004123598543532503776399303466725248071208822189078323096411389351954452309764726892592914449502849959376541100664950895390514612873120975361578513923086868962149605717499079405392415167155376298326129988241845281557427590765132054540244638905284511875911700457398002328168083004995150773641140675170652051116575300855383239018511924438884609691199501044390272510294976730533411213054060432227502865898603970717123512503369796753628694128335886712919036916763126426037921958879804643935590859565460948905405181968423081057282611674271956325450692359100772875941407381682037111262599084744275674639149377198968146049354891702398581493298465259551445678643404452101246582336020788339446998143286889244840979128412229102992311611818429391447044093929239487011261844652336791379516569783838691873597376966404073486507512309130389386261407846539631149700774005191623921044264098829633490556411861170469746372453340462933599875014624637429572840816291346114737760741832891158005599681956429913517935935121269766167491176748422541303471173937123239490004540588793821295094223686014600646324910847147547274343088260106903908396934629853599820194136731474727684721074882457007735532047736317689285320366283693426288767416467426327064638842967440761597507119297901396778845769343946709209328576589141172598044621603130168993011009423445070947232394787818483352563352894299849412869815404893641862891792082343048726920295614477780749498844778803821113078919679793189336361233352385364057104988090421470505516923523317928707894008446502983627456698897200911059034054533955597496338578928449657617270666699822104815153083705792531227398471407994815729992401702400588449794789749603321188449849057855045282106712451184499633077757620779471306063049316737791987339968750374401470786603235636602173276788656704584923063870706895755570896104416838030787549656294651726536077437323844856578577527009884357489402151416154266495045117856619195193057706750119377518385536413586246527656887588691817154715481308512827122924703629659175399350186025095692288554776927308562477311343412714966106123985920106486110472510208922104187161368086872061901580652517211502629916052307552556277632015874596353185174324833082199443483556036367895726244401499480136880432622807063486030344736603458432348282841163510762919870552558201278604421916941698229622949945803039974972286455777675184570946485979492184297416969559897904417252767738231483483647463985402544709235541378338049025822355284112748539654266692222282476185469596501789476429244937019133037020587707493485072963271216416795058890670497093420355092810247518200406721102448197619690552966525990801291392031675976630672237876051825416512906173587243334526640462729004384301631808752254864172532807689084635786253975227644572466382890981550758028691631563939808509747667470582030567295535252092988020297762943098425838723116582950317897346066212184513173632479884987697414071086353384192926788851609709168159382106150594617905174815907270545164807181611031120594169234618539341067113847626054303385708190013652578538623575585131058731803201045332874205520363522030293515538082806687511877420225995330349164457961796840371060149243582620632296754635978736791882422865690509803758440225637284157639415772474060489607919672395190669181843503188499303184815240608587145025870658155791051309971227413122416975327601011086030758899189332288926659800732301951478310041943629252091392378336583254005788280347077422032292517955032757085429630959100861158819528142126320916155582224349820659592386867320273901965351943291216816751882943105048884829019164564745261419866380778111890596687680835495970838331000536525318817821769169188209466347703799889870118099448356735239583073204634816041353383180472732334437078667167164996774376755185275433290493498403125299412133512028747188810858656946857951112145290871409350285107039004450344851568165298433328750623087030569831597846898933218794186819837578332242346854507053861333055960830469315491330412207144966427118412913291114107462738944738737109479723929237824851239526132138952660522912044920033039084650495567606372993373595375023890509460718846398676170769023147846791279023447900829753797233992154532713552445534113465346414847882257112239310665241742333136916016723566303833452136000276478753344918172770681989546768198478767460842081862521936536949979087762499868971150550690507068587331987974939651833754182047121998488242351406898474960111809319026499022742876748074043141434431999734507448259535642419056365495376659606079240960717028460726650176083158426600470812170495181780983654647408307560005288357869425622626258076311891532632693999776287049132821135694611397907998712060640340945354939285905972790059012080057205881043043045033678315394184129310975682184370238203090537598316568756274046448457454088887659755650805218262558392664452419444867764470509059637714907485657704356357574563596411215093688362425544543869329021569966732007356661379280269224800653555791227151484230182843522639599291571322069534434262735691057199824135695465501638705691901961276332348665160490234326953535920951731313471745941417237741359786508742761214942159207185698059920961309815052337380059672852319221100506842077448925647217535737282377588862207570690237684733640013411079377767617786277680078662790520647581436540218445364719403974248526347762358812380215830028308542074568282869781000671327377005213153184063709245074400974518004038433527397823395236769342876233792827830836435008083966304819793624992592839781549075551686345178457045639874163102544598696972474794154210547679685175817467485356122684932102978444724829065088092845952845778356409024524111898751663214518636504877235742460629791169234653569302386608062196254247031506634372078030623375639180100197521903973239278907455210651830791726413799125281006644062937841886417589851163324740526467066157488593538904250169568792791753527614928706507729721175548370337868592486646686512862405405281881332279064274740857791888295284650224394992719949661315331266967346108155739479164840587189072581626310240949690735183451032256382456675080817580342506021173552782067554922757331566745828394400594256524231338909400083507124626537582548884983868771073432334937626137841598053047823211340575296015296247531925563569038771786928849130125524152300303774558274333278222788225946975197729113222184241354866337256225881019370178189097293217860935102726896124666698185297370032536808513809480535091410152981316485364793899382195814085875216591650093389696906820141305088217014688826823610111881468091451929900081269053745616662433755799168758583818783382273191526621764581859364257444322935588345636598140024031211523411720736178521109986557505071328126229753233163523763845017924293257934415137338261095198205305314361794121289761913000003109405811041324349101586275311366718007134509525446758701767325650022339700502279630234591190099411403352911342892455647881616120023773711962855801274302461027935260594199493544193518807175703902791841183456545220582148858572291458921465146120926791374848818577504110646547724229955536704482160115974606290976425044815085880115857380385023305044290018319060113509848097785884848948331259202569460228410802309120023045526883312273833752663014827569802123854080137169783806592560337189740781530666443533900753727727655177468156807237623516495616749979283896588934883107922108300841044166023825190081020652777458926631203760521740620654151255014277783068275277370390623640924098949331906463518932675836346554855968747817778484995195367824244898098377946764661928526525320665327571144014954790006686401547630778963060904478522526802334493285192149549958731474381753558888187689959204253440785041542138717634197238272154306363059458252448790163578358663740386613034754017143621082400545324333387022982137825111450302229513107983239174136660375910388889778055438173889422306716549311184253861003230740252164415085720549783892776743488076216166546511796566089155415158296114845657721735275571405973678750810024676341798229832074920036157030249632833563730490186457555240391965333163666703309440634899287495914942178771888825252704219466570530974188933457131567309017929995008305283355544664549746151259203577099202218302137371924077704864653168645160534397182893000530416487290698762544595436636206156713002741874940857484455620372895656402980110322394505471354420256926592688798950268719867579173465737778503649208645882988219883359634490549257132262425327738881096940581495992293093972308755255465238383102129760927736911068691109634307272834912982806315619858395754868232438854041569692137838737839803758671774965674521107439021628828277641538449456269600386910585901013490093906217510104865235353054318198251826894334639737779094053910322580842013487951603867971721552592616655113276547620929652542241058441555948618081605350242754629550974677952145659236508538158042922625018223431253336449525900997616918966256033632477353351051419967124121018738412833787787403545133917111408024867251243226149806401602859088716348516259235179134137953364742276873440957386971652196239170952648427362104935831703340122023133295945831701454954707861359577261796144896325469188311611187908185871194174752855112219987206013255107293652204087059914476437476240463376132185047852382442767135743752033759280926587196616376658207975851648280512638665584437872352412503728350129665079991870931833216779006976982931037487030615082075526829626986528225413667145452520175747924784790384056185528435413699773204840555797954013033658388487258341520331184064926050554741437035547886402182923857167098672315619896695927758224824459750285950134528328257424869423900989054901110305735990520555620966953663553905886226347668836572692317137639172891363787020695129803009736315569853853506308755536640307881056386343084565200007437817496213800559238239375935476351427510702058097155282941562692792722127809682684696374011659682224370292156303889927971504011139389980258598314119149214587911322867144354321743231250907944886655011179810569350469939954642661145750574438685139803536184814399339474554183081374674550861052649716525617618982524027387501540247722446711784782536387007947414481126578770730245302978024344145677169125844685454743595137989820087861290680045375130905918438246260701383195353239525052945102726501151857674524156250024261773488625944257164280177506364994415464191296911013562959284687002337351004786485796646498306360397707290889878471341657298361339801615573873993982733333821927058085741792733709957973661583478629119093216470601686618463574932457483462357009042566569280231604064955232832526806198528118662769149169830705857840808517613972547289312402504447642733387451278755783382021931312176889842901267424886204687538874112099270530985997117894700486753278561637864754991275130381639904515088601700616836480584174661337780995625056805873983935392449713272938609882147102544344531188572095877672098045937578811734396767192466758819939259439161494275467653007888270113745335927808525706173559028142242464012514596969982209067422553282727505933616226394105088781956800968705828902902774699160905452774536325069127036719097258044280687188393877724404133948461461633007099497502056742316869197200752519456399356185137225683982057931994239359455151010864736193462300888368733672998354132886167830250298286795113809751613919497789144465505210470084982587389246444437329282044957488598725202782985343602962353152798275655224727274382400634159320598846644020152212870395095264981253822982994927355853243917490171694400854251944160532840234327500833775662787698867249251817256926470972981525134960660375210882901433660670476455185076890137217367814422267983919968741739382227566649277956580077005392430858699254142150201579587091397851539448071273440678136141242285548056616361375297026464838223394764532268099859872719688500642849557710457442881310436251835694323337920010335595615683551942560552395083851837907143290744368877878136030750012549373255523435998193886822371205548012530057024872938294381934843359104695703112234883662135472434094043508179807547172288242909342469488749894116820297551770167123353959109348925525004315854752846842055580837445948917239460822798069602333701565957045224311454405210595430308216078524162745592985308145514783152208837698967143397531516233085203300022139020153764158336567270469849013801182179986525214142826868317918291054861089691550992555903898604649429731419451460529252180557736156049688652673612964131285204014572705340203122712327816798382457053046038987455327513323825428032266852312177236979743887844047897875420978993970196894222445617244097841338095806088465097948632956299451051267527899422680378810385078717075756470082825156157536728218642848048375990983271997899426043387665642624306654880577367824785208641046926102117785339894636830058079179342971429695633291517887368783991118665049160873987616959160128024941949902603101367831891082444839285919133483694753920365357547586922343395210461491352121200413267592490057792215255028544409593217599841510148817362008007946044022704253399704902358895903396099158381242003636873662984638976874506648003506624767766214367788240406101375573623668971247801799873959460624650473262257871724513790629614450808011109516577536445713182686668872969984839891986937156419688691896330165063850381335224018048045732128761600717715996417139718027790166077230777210802029685531234063175296961046561986494551605297452159244364142812718826713391992352065637616435404659336286335362006808728838238679417066938852661303851507874814032172285239310166174553900163963771210806447229266035488947995179695873690048066380360216158012506069981525810344393844225843184830340410947150454463636751434586460045025260441597482439283955293748283321928134726554670609260286546378486596263082898197501684757065633307626038072559468595013188457005739014476126826210581382489818065260394463943958063433065798273859413877423225850037161468275054341611812704724673291022853059441007325874576430144285835909608984398267730134889066071959474929884445817531645618118871458715231153110814557127793174091061327842609272721464781012870746957299787175633513961254928415759925422982966541479454388210069837940223694637894336045610307989620736289186367260564773189483723600353640585170483949941663511580789212934746183763709488386955173529717989882211498134420281758345437738039124425991669863265059083282765376453841407162904978159093585707694636516396194934236099779831620365513385767081314391264172502164246640198263831669156098519147993332241324379825338419765950336258842667824743050488413083168840632842093514042226422636228432022940256684024049558889120818625686674325364412581340169259463294613944902729567844769375602177086959175516663551142837951425545088679703779538786699783592301815167529564507766167252677657653423084303727540218500189923907985332750956740417509885240920843432408428686456993889767315849926803347529097862294709311901611857443130867093614701531258769651176382257683393274527360161667353007740973161550658143884711863367792550988665134760760532462321924678522395093504166134637752369806817666232860653895280109897229809026479850660132111693546951828920773837039462605527711480774983742321467940020754197778919563498400002433451946864890451468376550485127429701767411078125975655951981872295828667424138518646551561784032112157668394416591896686001438865308697424634165987923078378213995114398404603591053174257168874772007021343875670963398490390196138372847676821628480790372670088624622197662703394788095031142268387859693772076311948513115540959777004941414901154221893128865673719769247322471862968793572227690118318822713739376965651138998201399480655379004396665027955864629002562334017574006383018777118743201342764540375558045041825079702240292892597283633328109085194505744621193264987036964327736857763411141990560627307082723483686985611575976068395580602755388548380630436364025168058097802348009259386828374291594610118529258401543662918420452508545781365879180733125033956975257788923345599092012346564690057845688325085452276653260167893826261278650588859929554411556532356373637124799472851657778999746527221129720803216084897384119534840423426268004949588474456426605113370451264324605519445454512828595713007400555857109092942741686547218385133445944253434368017821350042655077404831708822568414465103947647437284930771450984324175805282699086517402181110160254302566391425846536719427058736079547532689943312691341633433661381705731407010146758540682976774764691226983792608161034277958312241044309104553326596436314276537409205568794809190756486197569626967310169539334924030398012354845648555129634782481299516000874144777192573870639932926449973785215910988567652881143608035671155599089634472400454162437727999050590594447050531303395561384649276032026946565699058726236331780381790127358951335676740460295923432468614052924167957704828229011857382586758477328627480079897552324771580457059046472563561158031291619175715237063601075028855959820235824351477266289958837606043440265295830622814316034400232477204310875387713439279042888092342310615714807192067805077285612136655752970057506497175303001886158632559322047792961993487446160825775584732363766832764447792916277716133433890968124319753499303117982075791287865124463758812432051738512872338655579129717972703207288596404067783017777320529088694514347466659077501745723187135872283521766258836011439527310581641154438468513853888377527798611240216549002529870413287346996521556229718645825320235937424446553513965497084603053595500394013742622217236548848843738667327948921225958686692020053096239768883122748099652212960359644294975143199507434554632554524747735000480652093399508837764818606478709596320789809371224691943684306491976885591658397943074829151556936031279366410496269709828658688537151464019357508099752632615169790298106020546460279890747491533775526364098035228806302645130765641433445102101672648102901859889335081375158863359152428098407681039100851318278664727173420439548302167225692508302582105254133213780886072764301009495951902851560006491137153642883888786029594884187329080742782697474880937948664061433114333913837357840355273961113914129814003107863282871452829484348195662346249467045110405369997418513733730112180975921674624468100681352895893800167736069519531801125490066767734074399716280073690903456796880457674294587957308725094236779792683609916672156064486721037914224926877795145731938553608382576501661238145606337577215274752736037430829744631316736870989017823741468925682589015110468610576751338910751700564541183058412554578412518613442219618964345209842123894402547413162791280126497162063677801492553558713997950459375098170387771224837680089629031358480004282474036958054507645849253929829860280152219002017052250245581680432530836909135834811627023364045439355685277564955921291797546042424862553372479334256877527757256206259778207473646818112800768577258074899942191066931065773002078041204913810363213285483261876764497323185442554944417119321719348480951962035458214881039945124210503569189852853596046656564640391652176656789040561187447593877513934042625894791781758819325662531993221015402879059319489763277296893007496396156367082328785841193749493772136452511430742973406134658813043784206782977895725290317664486525183905232914565434609450197549912656954655333060148228567161375445813459643888017405873566736798094210730110994172369871093978677752365216537706816965101577934008428983451007656409176681551908168431114772551366312193949017439099563093851530049360672040843206206936835316416886116688053115271453806957530411799038732165841175653362707113124749287678612156514956835409365712107577975272513125754455433837068302007684381460576205484659672527513805160156291329842161388257368263599124742651961826968085581621681501622675488649622872904752090742042649999455418273198362000405532489902553424801041645857849864637320776365287958917462996330620804039220554961356570778482785652541226879554923910598668766165524810271671535260683459541657925696299622831602419212910107793676598080752225540915033775920898679659253154198491390404032817384895079282436700663695100660199739438663119300864995533105122048110845543302515711870398861719991386103819542508764757175079516064471514301038148815453846311445774030516013397225236600506153428695175382163603171404061139555434273644560954373465316468812927568238201757679040828762616251439260764447596316414559123735853812485141046198826241847959265053837558635775758114183298472566719957943876970287677050054621117706413715900576008587757268802224928137020347900091727930914679802639250889027105417658025096884242108610372557904717844621707630574862573706850902667232785588982936416616727329319794372100279526747300700291496556980532424663547173916072350767402319005725041080692739762724847306779127059904253803159002922139235530028162152090407857925240080887053790096079517642323698894981495595548523885360344150551321617979694515576837707630130617454752989519851921626573031169071973010969084093261157251969638715766466156794783518422717283428431881612871359400642484415264809899494628409403837361978392096636834158563329402289628836295227076002095239357506804375796752724166590856431436027398870425912109566586004744034517908986612129528374739116576935744695592209753598300374278283928032620402986376578097174578006328926686644143077078128895432731284422329662729044200205723608693453239723031264055766415446722452251762523571398869092369798170304622683136852824722526458525420744495835269460910670762190164338453132226743542600806650858312660629340334372190391798023852337465681368864986034243990762468244449234373702051754964533712970321281363516379309093273095156719417351294758208627570979974375997236953978755869601803068300022199379303500757093960907318603670682266059399296697102328655530774258484275468591792012485550261769467541929015055406725274942274062591144723497231809350668784889258288957553608075842074990857758396176648775381543886251350856904398677982195864265285952041518001891396233880601665803743174405768015742161843235192823310021606580715231723511143478446999302991945339025802243117178444822612779132781578132079395910499891193004033911246240699424096044101835891307517975730897354571908444166031793277880892790901154600913961573570942086972021398091697034198796938907053108935269049625377457692976085413857433459199218000105619728454846862492593509836026825463900329430067574677274385537961233982323908528525724459357543827689846983275667883781524826157001349384138641638067367398935990405173255143993389305615826386435455504879351751297563113644510519372710263468366233997512218328139993966325258664345005758465407965756979926204832535195731173027711566126537366656099299521108846555928122350615278921896612988715126711588835434478416668490424554833010911993094754736938366030068990198516567334657420932152652080565518288832559780976016251024184781513145163440795337445017691837754418547491876559188593511144037598357474863554525176986096537737255310148533645160104198371519256105976677540159112161926274515042152027429977495989950458713538564937075396895535381076011163405930242108348469242242200565597447453792976108959240091740252591941251577538713527716308537773951428659126526460792026681927155964065624888717211580699026398385972594451685927949933518447301850440692502647892598027040069752515841040726437859536848902325659936569395090530409461435709921056175674900764592034610218487800435421144843711452940806551027055162871015735125132342300685856822892493533795256789590133863537771550651446517686485073760589739362566656042309998214225304543612263334004028379843555751382696111888232023251183285242483674741559251490060143097364592170397750593953664084513723477392812189847472760293962034224745404309327949755184539971890129846723833128576620023903293998739418839542755235825191103679711667784455281348824138088411828567222464468684558381878831916571100036401078679829621019405635516770493642019315836106906107698163812864064593440923027716369043375149322982700352915674078526995278106349603246178807565581807154082163921521290574735003876701455802212717127444925604719128251869178200833420865745539578411666612565956616029652571786546540842832747739947594636724329137327650584248062811697348898429955124811081037073250920982428237107287152351763871128503513184056383041032250854089080138753906599865404911444214425509630619268664814505547083188298774990907290969023208637594736008864228755092943873213966369282565486715333663928195131074553079876177016373338559799270619318134055659157775165332686060569413200601396693179930301688334087099828940213531251291056375755492558874086076287553914109002991661918382788999395634201884541168024883722286244480185262191621593714344523692439601586832401678114355402403054994632172753032631754537038597387446158881349087832418774531877407409563344111051005088905330410482585720116203959492365193716521720498146412887508154806131069043643983348114912521160795382425785662821395838931089035559568305512936022645900205038445477800463427486525002028135276708186748148992300355430686303614838226948871636378482308225082019603361521320240819875352005972101863870200894240078734651396867971820112252874913197576969407623658275449589957259895599088672106349820638949275124652968468202814016960766198934855044720354720474431967031609975674535681122250753640296631635449810124673504610137030930568057707329243955559754611496938487820501609318773128587809778003655709602533438948749526303110919064235762974884844859719303452763122839426881994800639228403288029411074085918883151479589092479548266537581652608901904299306411880974704993810516337128910479064292037356772445962298914162708951729128634857292090515309055679955759527644838592555112749616312492357929863298488018631171935352541377985455266707603638468294133956679191494131051087262751166789653378661058270324213729413738919134703718653590050171940835508245013024610139486671374247039284589719128083168595497350977704488069740535563611607271571260384368197662831159741723563149056261502439251487589346684009479395343746768595822603800365297829449627290266508256177097309564118438475542676238690006694758117314244657908125603728368263809254599169036802491165991445663026657898117937054886165490544435186948747378311412347570833298653580168206368322019652176457838327199039190032757084064611333012074489450273295903833860962880770503259069346385097087035675450135049340930365306706343602525789303806010133437332691883710034958301898999404990025808592014653037444721374249940586529582576965874861884589923726183131568394698776924260851688902874997342273900820081034402990076315893483302608263348281024393475637196688955653021693125528662895425876197595232123551726545883844361148792104512139176430883341766302113430480956896539848591361104992155117318840518261829164739193355329905573658316416767135551499082005236118253995861185912797744021647670607696369327288913629913728207368105245442032423273780804511279155885912864616529892138390647293092580282020596185788504465867483208395884761312963944830823701283108436086250373972185393916465099236862274829793989046397878830162708283296235022064410621823830386249503325575751391498988511839508504445922669817837748481103854872900093519089550021087482081788299195154142798524474487169307770212006625293742798229169455842929972501185381449581502865390587239801740961413403694454385759750834524820408965219913877104621819273845781654538667710438376340273916827572886633741113641553904916239083213609631824028636769329220577602848660856023240919965489068451710277510418733740884084075479383241018457464476315515321034183118526031693139008865982675906519890033254176335038929070190146676170967938984267553345826255957583167671808842120169694173863007350877609871865768481480173289375261489838868707156571412988554396018463116331144185728483062065341108874466773671899422775243702373098781218052737196032019485394119633510074198853938563367716143423193535774768954065971748028967696306281921383828446195630200554542826143929716353110942801842682821755221254308491804126353655035227820996205684729312685727593786057539946615998735154428575373878338454141319755641211438020186020666666045188950683020212252389520457815632472423367401018291834891201916519204645955817682883700316951119657760562077597035327270428415571526960537699090766995917517071131487844140131892392167743427605025155442937985237996712277275605470997081979125406854583422017422621958603116311718145851760068428999357441141945225269049013284289116463307412499163133314003785291999289281307405357794192772853427954666978515448662674896387799924262479290933126573853869501493738410121837606602393731525386878210756752667625150057973714174979206996802257713153171755466029158571779114701473071375602115958654078690628412456295210380245757692600585519010538387953104840097593495815840244918033032734183960398156077028041184408188440523869473746737104120940190934388514643395809692467838165082698740118445817797546378487014839883831783552913398282893744465237010108750396904531340231221611481151758073068433677266441879713186965502395033489316709939448971052531772954831049939200806111607845839446630639823219022452943306860843917400822726342769635712442461311082161830701545081946736564271689104942374311709367443826531899262026592242313386282832695468487993942550688992474615217788187713259467248823926465986992384503076643537462660094006336795109122250768943494948615505456010911337768293936843759418867361778625170732054248922995847616662745721836125650806843073922227223015629442378562053559969968059313223320940694280760944919701640775589588481961271615020751989258189289818437737235209487815767120175158457498552249300769307603048732339438790805804027090452610031532231239997355941487879896098096525688663305221733404041822489879621649464240140335054933587632313578922177444813372477694399118588114973043757215638522807504069001481708536629527958551058737637089774528395262691166667843997535881809831046933554053935237357132295698832359394464923468440710634087845930277521716361776785132059842177253456846783027285956416644885187023430757842081360582891173258210146624509759552364176495133445485357874157618747713271639836848111025372057767589914423856076568376560081388424315980092827448907078510461273110300755441115925213397539448180798091517335102141484304359571005800549223975268089473280982482324270768712269674174864354773703761799963497571742947497809434650903984560053066538431090371153318808032628919584109325419469228565654961177271729292520304346874144753561966681895760306509845552657274597972389133573831579280612664733776169584347796539294649304319216739462004842888563730959591617715577584598731885663812750936909221829032723812375596055394956937236975632122307785170139822984423001794702880223343347678158224535723615533098354965001515058302340734890521052670193731092177833842875114156509336038710019975669631618637162338349838821799322528999343983042369403805213106606696936979120173018594463090649606953361295954916975452386518037893450246841738465918367266965374598690792231970677815917045328877632176164057784757587768525473397042752229575127024352852407499951517663766671545245850096623182778907712620001394652678536542435310470940769249036260887524020720535388877891019047825920925281837740628925065731706519194882352763400343087672161280510786862601559134015067326332215082330453264139919348299029458598024182110812542320010119726319467012737380655204593361078735525703311423615791952538778653806354257751638764883817353081167223243924717151972677765546306719504815867208658955348492951763029562364540667811373247720499958067056928596112154358758950307451261567966017484484615562673875707770432299716012513452431905389723311046695617859820908051863338386580503658656514590586867169950804781149587771062663138096424774306414460558170525935351333349628915902748562814991824773915213940805610743719221040202088590551157520175212982345776519100748940534142853229903787647495390614743653591846961365390453820544790117245913130624311097387242887625863475939983600610952087940166617602360488298180802628806865265007367256358410354313838366778122215764146904251646394879143497466691066931572081808127068263529561508859632168611438420646154181080036597853579496023499959465842661174456882122736084954476561607324382711012997286923502302734324279481430887591284491540219675455130083381821765661071526456031713547194837382215021578775457302936208687207809869081926996536038211408960384067634259196103459517577538405414678123482068010494450146665982206816140564925831014853479939413167699206542280645249701532209990595621800634059755254790987569815613621614942020347376997553694462146034612912372096236019428138404707352386611124009560428160104424816394975668816589666917870213207783913103114267331487249359407967813213519542190836397051103198445731131992185589134541615632103071323391904075528600312193959223179219376642191342648267754918756926635232435346100189355653578033205179803376752577491209936408079714219322323656565508690219748614256055770309814307687456855978198468775991927499339148730094670935117810495689456180809519533677152143947067822587237556421040742481484681115303506607297875676639363957773842365773301229889265386908179639178486432543103034144882642567947557155858653775386761072859319367125931930043492615436020966258333992606437945608391259595199732306960748553220335577485388796949823524223957425598729756452091170094528375690599004425922232304575012433737031830370154242757780823815506960623147211402021099473265444730992476824932744195136636052746618589983541802483446149234460935275404233264221639958143063119652855566254010575357401373383430511581582029424682538340971214077258681148371339946132946792106203104595454875191291262547786085904008116735984182728790568246670942421272732263965632067327059559497294687935096242992461913723754639312158134893662846523020930097675877806721441953567352171400368894229919175402123936200259491649077093886153027087888704238377651655902625586677488821091857812628910209304679541607370131592611321005673063685446509212331791956198054560831688817458403624916284438233336176548256605543643323936762494928428575037991165790148380565329246283791523406485879576254302606750514505235380686063123536994386950162361378855465385770229347561679107469266845370227338294169055294158320654303506127417681423388017649561638804958487273616556937613166919810020075234347323702834611117615935939418772594212818066511916279720975675153724451655562835147271915398599707096154965852454085102210589845428374946505117110854004057293769637470900654909786123929350429216180791561355505641800690928343045508859915241267847332175828710278708256724381233868603314732528128253079247725768864570629196271092921630262581349044181564773274818024059136176112118193819311921349967911998373943900551128947039043203771290111923148895693079715245001469527451500609983146529870476435132512222389875826194051619782045419601380928390403693234582961192050844472603850634297576849661954211758113185141919255847155774587422876811946435114882937314376037624816509911626412430194794493640857301092788527462106364444083668304772465388899722259053355495021883743844831485906373174959142343546670907573758117901463640544281569062678993440804824875764461014402627960148462074603478747178215471478689053208569378462721753691161030640982920725159500610470194648977498657604263715944183110504672592240347515838261222515610777008235739596370970423998103803310582646213848238894022463655754265127381057894368584289974058892184864183327935274702003185826550168854337853947955128845214748656156845777336040544184458813706543664696173298815993061465817831721160421581073088468051953298544091133570294823192420952470231020379545449384855084410973520944277179842687214390597719871931513858196977275588238675795344937826219724181552386790068319194501569372035903336343033788945181906792875220663546796158488941054092288858194204365570702023856342915117908634722406283256315233701044659099768725172955687170786574791351231434839423618917293880151694299406190517218081728337329429245088441562029100570347629323249447267789250966929821787093794639624778703926240770590473990103748237491589804031380262473943239249573571698202572702782032443106120799859728831240241772466530948663113089516763746369861453657538563951857206131004874528699602737582672941872262284863962865261541877605007046146122912612862054056945792950539162554221304499350901801231578139090431677479067562962765210745576870640530996714284652372302139721457022344498721058577859393588949664873755419010896961815534695403540721967596621122011155177305926531003859582957337391192199394183270002686036600376359227222847697573173440868407467517890007440091298643419656354618051403719390421869421487789064151869138322892015876671993548920132396928073541552826479424278836962162910678021259779200325075789148623051041312304514032476969886705532138074531749783570511143662600912771644456728103545785179884838989869256968563917359880524561365406528535429258155826889363767844121903240308066671467191923743373001188056561379555775579441791566003317271099168405602146764521706491177927578162497090486410060071814124949831528722002720435487682220714022952887416672003771400132766782690032073300235214397423461136475086287923549738212245988702809046333830133122601958641825418533013693419853306190498445563189905783193424117465970974338678497535593220007362847279992500532395559630128014344882374407825499939006307654791549936033444836841504986935964808680874418931440877564780046612888477819604932380042352803625283457245125402185565732235803595154119085956876322199421847256402559717837527489856721043316442057771024179058758712617670375987101637392252860244935857324930474631998053817750629263392414890929286881675536170023919339624853814548651939879811299402253872545272497138015455799684478755325419087940710005752117418101669576406872379565745851505975591647477535218512429408534233434656050176575663716115182057847960485710380595157886371986550734145711068674555821505013850397666510462115265742345943355404940794576560043768054125990395741154713403641681978817566606402780505854887867914303753443265720998231545860524138510953268422524629676548923966003014348351800109093730420800112699859390071249423508542167605008009457798473497224083115442228151569452546582818751131667891234118135538269766286963957729377354005902299950354731748057191988273849119496529355352635446382086101378092661237793145630242757648397275683780734211184609745589737337278940202017311607203909082638325512636427739985158972787001078014889038627584303173673760855499109749475977545725707680959149935293383024348050347461301020058785924037502584243200738100420466273926598544209657880883671064785833294918979829705484792086494013821976172755443298615502475664697435437924771275155482312358080956253044278025726316691549792791121148277884941673122598527656730639383335996620711313111848865569605711939530843780791955058902366896992902741311226614408045704720689111462369009044612967614830459925071372799138230253244225002378176605890530117584506158646752167383591030504274610648238710115364065302409579674309625240778426376684229766275925600697563175637249042671983022172868810082472462921168795258173753242262953806298319507930224608381848739212270600764882916480379390255222202077488521451545820153154804905306457055100490337727698669564377324157236533528466408117094056926102378331845200076215247285550840045733414406458163578472756224314241854897210977842768390351504208667216938772387683794054739288222216854578234309591036702753479296876380962001841182469369899381141256324725282177593602868327665546354088488267221136170810284451931081524665439916367530435250485303754740624928669685153812092905986328198602069956407744663689518945893595889227707837538410740027943970888153765265281099664754975731261337492881530323048629007617823178900311733694403270490796712160107366885583125876243968240411660842296684778010137414413366923598810803534502495702831610663378386430466007165647591474667044345009844288945488549079074931962599930390777391339777687472227841427510426846634583550899035336818179840009363454563357159030673220126969221011661119528506106447645631416398866305992514601672586444043506025696786990390718038790399869938730138115755571075820031275845685114512657221914151710964749331815697437295172249953549946843688395546695605843229755702782611977690867917893632597611261162034871956234032248499274513767717970791013920750978767219020731347619942484428532695623706123233624290037047543551018049255253296676218065445651598943370143420848776835876225804149040283851263413915034061819115353357120257686291247241680360241179525887461639568752342851293258960115546496794411212152765506617554305169547218209684535643911067473992955931126468599940497028707969457995858112461642136390503037406753566436079383802756081967755027611953991341106792822518454077447426734688013170491752115789530304307149149590097155213462685242215971069557866916207840030748234162907878028983779940228638310938255475832494844415837386862582978365471565183557861927170639439884032715596538614674597023999423057532178072436607063226719470492717660229558200580137809818243279448034721868392459928828790844004047573540355532333360393138711632098361702870841894498606702043517611315903928057104925559705383371939100616695453626537768748065204230388907446277281611506759675594883191330924072540968154404624279915385526099633214884923849198535523939654744121627277065316505857730303289315358312728689233115307453360257706025038882802356854709596169925570828203196051251170107828506232189040080476647687631867786541847173304221366013530616372270491620676933525601529458012888932628930898574726142063754039231982300552943526892528838754675189419281990389330497253828898175404575334652308872194817535327444907785494601297649440649687114782528735488299944094650556814942271162700755103984002613794837898621330497363143269047199379592590425704208860713985361095377830620214609599591687439535375063364309296675073499113042490528769516441050653669922961836401482102653211012419047911444078289047884878441451824082654068500360254422344430045700107702551369466585761101884612816268228712209277837097560857126094977330088565391191333533573663941004976245909071093235726358466195840560218121465769453053641503580680973804060250306758360622171383719845537999179195118718574698481755013838430449179100292925835963707383826972240317462240039383762731775225343564609395512345050454412751549229652773935757096552794767441754117696397488210903854143280641217764755769504465837450483281206380258794891711365530975861398547124187116569070092970607193204703285607097535856369560104134010533515364318795055951542819000839614760898721544515678479400193860679235829177717859429324954411959093606758440440923855768528228029332953915447389193241958878945649379619835638401888870013140072265177951160994584639413423134893228610855012420866018984770511208202807325996359712913913391074087236006174502151214441607869437666961310854583531837078225414861608957702654590909375136021520666543843363533576779083019790777566162543178437265267352696584154746184157845338043192213945815407305771267423940387835031107833625827203524436165075890203269778194065416454286775090470227104446870125907483130998664575287921083703018813221317277206412817807229986239344719688011815112118237723415229739541384598393071884748592372818412777807578155844797108666593730508844813062350988908448974762449228131664592719333452291690013459451918819054850033292550182731367893029785844825632824091955841415883529246395823798113806737789577343209178602913274519360601270819180676467866320885180336421355584964387995729908306086972635283843620198781650963323048953113039468588191093059067075054408155857733334861880692776720629783285171661692860552198251805635923064330709081495798066046923489870075314078839260867551431641891207457902636200985837237314537636533438906424211225944384501175416771501378470321173052032926367105560242126740152317451279865563779945985271307750332637586492932609469039197902557053791789670389406528181361141746077252381203996877244178165427962435838572954077304034314166897750448991007074333268960424688022365421023483962693694290100359757337045530545286868564745310382793239470871945178186820527695664042795896688156237279743005120635559305157159076539150303263032115493529893457151540140264004524076438158251335716610973805153344676629693652149075483405749996083430134660305002438220269446901797253341600198805760738425614833010135478255972567417294754408611814207140034055465257251410975361843398544913509959316494246825433631451293489440157668479074469318047212040285141028800380216332071188468901707299315982885072326333906778516122127739402681553478464817505233321783852749150466673222620643468210525146480401207702768969142331830586686837650313253913171766418994366472706034229666483413449085383049070868375797689890032652591980571644988435988338711432188978882577857727144779298050986583103490205345234025660272715383141513627589030397320792436991852366320817627544407446247325356311531063901075601032112678164270909123615160789698789692416319277696123582752142477580908524219955179716933880489495316957174550843408055188372649577941973104173409665194994036842493893098084537655814677391372964436938674523354265939443509165953823366671802495247953349192191117911181910860790971346071214778086812788851327111681305738099158781231918723059707293851784667030202867241454470059252111381796799472137293235306733580935277140706933554498255210744336772617874482834010123304536792958999610046517509910928714444718153467368785410444982301047845886031789355072180400308882168595212408804128512276557051621407017944128430271869960711206582914021446484758669778729463005293558608520007124738852785213526998492985371645269818252764842806221926980754913104413232995472506117416232663046309435195142202447822465928511843615228904674450644124832697100001869368206259608015239613116688000743755430181434428172814359416776619272316768145169234538897095527361527755522365973006540178505779706584535632258457701628110664273634564878400836344984894012343090206061777522411026759779299425543103661935211594257697913157740585811451762216222384838920078867393625848690537848824427195804696954665191801146693619227649365243490812271785441652207755801826596749924583038947765701728049347761056581464980500333596283688291693887695660288209788952867093108884844547490250027873112616449930636599035418565128367921285702578532075663881072282423132871485852753592828775723554411126073091363098883671253481499936355402926515208186676463505570851368859942026852510952464147854227085380111637738692240786194936592044685145593864023176044964036118639826204646081732945310858339468488228905381757670854505437091589952207513180283005354847335104018990076652434016212454694428293346153062805614741583847716293033056639775537725049577817888769526562211026815809562665716286374107966054639142598892497918479336191408068652422166420082615961522462791593926548886485381226222525046667033576169037963069940330495075773375632385379231840727905414133391155902786146184760721274476022640112684624815697288726241580806825310675843721640200567483280529391073116844235044225479922364212242576359896823728650966407164946109022751333412476199661295633890339504808086164120982632912731262943505020322992440328759295372122158905558983876822623568717864385516845127837277662735286011618318970102857375842367715280057462599916811691905659582425658456500700819049580500037068960042081343320595727833164517435628089634902292370478923054897524573342959577704612077918826273632758085563540477734472262316707258555037982432638988910163865792255238769112406716648838340903908716168468158770773405386793787619599425546558009842742601520287093694535059019184151341048164917282178820537741163162221073698723050344271985720812811802909082504052851399896051009779591851078368913099353639847244936131603842210214045639914140724621066078627316644083977419511899675332908158164292927760053218626074731853353087609685325838703241076524989849062313143688593596507468906239511239764684584990571555520217068302109823770328319981817458987386171238392657608465565838881014698705791882806669210297209367571094595203347908876256797271543869352051682969022083450417669578896199361062609812008329619940680115288103663746923723963848472151464889293164360189226587850858774939394917999953901018956839359148954244898330519753180494060548422486568119620907359944517826082114996592256991896790374307202768441063433200937097053563351745965169672254410679158873633125449392676285043502321740489740078902512238802894248758196644114551226682671491834752850123819092681516528538087902570991219936256332129668602364892744128712247393134713020052320466878489411400045364080354271172909818706098133083621315180021381657306790355910728144721305221182936367227945320501208206394479024776142354079451502002124681282118209327074771976206789969817908899515828552090248511396216897968791520931722959256800251375959482862673571626183646157403854742878951747874450461561359752133140380812362702834065961628582613047774408253473809490356327503949318836774359787420329644361326244928417411360162280186031322869140682144104203110442269129073514482276042429304774350519854757107954299758109334041520761724309078559356396226324371675249413762884335738712047948836221390491044633234135852313937508857600448125824390648696666055285925776554091848019839981646531339103135758530442569105339758705104020155134186220859172133308315489014030329279873914001573105696989522216847235459062111688377534362303549374528628323489664455541995886268938513984473436423978750939799659856591425487702169047625444941777865187283294535980583334096312257852156834822004762736849736970686247787224240019019186725031898690762926147101570789399859088161991649801554219579987906855323405209351191412134642188885047363411640386815946886603120979150142075207851516020883657100828507588882007702230120506627126967228677751921118118436948756233769376397901592337272296741719967746741039216926856595975046868919042117281074263119068009446159099461596979723056172045315068713287118782660168839444278942282946745002487694656847183393679261320244591246910568614724034728205532587089893263972097217885197385722910841442631492687978797243600064335926927074871840293947345602303966294799245394328676851541682894937459483400476493166853664953733837352585122550504288585447658854508519408136854745078332494594353647182763024027370573788300875834045016272741696365460726955066541684032891676873884057709776411338787695165704721961664666459141804076433030464880880252141524398367769475866436344435394771598471335576703276128264885667651606902216260676846866747191031418228968283771385700681382922930424503662853921899541727320954057156777537801571480172749340695833633918422510554732652328253502476734053134572174153448820178411692683114574204511498934300275296665653829171547993826594823965630201493756540636755554224577717589067649842082018730852991945914722719307405985310360428278861531285377774006133441021858473088579257462309347280291476760433576541866117598822023979816864394377408468790898790968307969805528759448616199079391851674103747637465028072875940360047322087820971281702307474649801202059097699539167573055807112725586334074580439470404438605902921301753182029114360390778047470135765347309726039577775441246068804689866011043343460355187911377459929951435192639410818761637298208913252360064781348293867633544930152114361337991938280372460736404357777764689291209735035965354742050824369413760109824081007864108650294863604984258368692905974498271137413752252050948542911212015233748764167757621511453300286036734431417364670347598408751611387235993349846514077604598510267498583931171278747468940366927668792676317776927659705276044393762854946862740617416954870342776162951234808461561815984625585044222851842019623972125476509984025297737026651592658403628133006481706842705985045778510166338538830429456104972961791654873872342920629878897743570904075520473699476347172094500902489506349241662593301217752125747258541007422057337549827626116015169275063758526056692887335083419424129397982527445475803277890699607179982953031588805672545213843541935939290705986814929052137551737541353552696756110574530922094397393850262747695195814012921442583397398654378577763937149663298942600290950551238714770012812441669765581767654431036309222975992139818347709731029386765925487908980445832856406908374378568098456673576653715980221491579210978782512177407887166065906013442990389721243493694714398168018517257451671734349572249870416106434500422410160175336448658988753996308340814800033779773200099269397986366022090121138585464576345011345014649993615323502242075605229693698332345591414465503540374020568113864218544299110689976877921751315065179590949241015484459904291983727806739598327810895758814721015540181307081288613701561881750834753575239043737457437585254515314853915549632622450247600711891601588711539075490314664072609494621915077927266615931855068687064099851465490877374706287184082718059288489887782322387662834237889989671877383118742081184124440658545174397459212062598295946454815778489367720206697527731581307510830053917689193920843399238816390297311174550642605030307024231197374014055492535831806114150579936675491300536059389608189927052461424477421522214850965779534991044012518066851449246961927910438801015470609888929860043598927710339771618260986582583950616885290706631641985092113390652225556582421531327112542126647738359107309013693303957477347285485978441920030467970107800750841216246987540098973092364875468708440541779038792165181153731057183096099152442926696016950152504862848405557513294898937915857268380663680343645228295566678341202382559353078373668984622579167839302767887453744568846182507092341838317182145801696672762296455403542092233397738098517334397125568616766912417181261502601759714534817323435380129117889071364188422066164039065568084623574497299604455316087696585096683566623259932202572240460827758581482158300188428002720866155903139103464990833770426769685276627451490131694891876447083825196265075241144658850249248906456259372177961514409669116553915723597825415283408474448819299603373980194720202086964815432076150498061233412488118346874628995406361850382439289292791761800211891939411837120959789721843584699729120558615799385589392679724513917354474058844904201258627365811577226636922280412734013874922292216473014198069797904359423535124200054266643261091827124934502254781593954121142484033421980949149988107098118716715693445206741332100458020366726419573471171039980384683512515459897438348684131399700311282715977521424536899025605550705505747764918148205660724176171880382597390536369435347625727883512112630236388166725233126806803215493939011151864919224008904162582016327891365025501597214070142284390315770656427545097393492984637278650908513477496012635016094670933481340868652687697089243821455232453500130057228194909709978360323807306204744665762554995394639044902376160979771298293221061047385983951221944316101141007763029924935720608518930902850534326715187551905976565650667368565168282125171615887180712851353076226177335783984237066532355673283065299468380413274297675787182622522852620854396844600854680207281331056448548728099751031978702553391923110988129731916430288245524556517387323504795631150157897604276539415927170306582363024912578263401555274566085542050705180380520285587693449489875051332826109835186247047561671089061585646832303445996308427552560888148052755947010545640914039021780524004292014223146739129873204435598716680553127702802864079985711527233854982618976586910790070119782999652681344502682604828011885210043891620368497820343514729340266035423361290366036332062358195803997079842020859499917760976455089625922392608912358642663149135144544355350167947827937159910782647113680586136045283591798908752948577792066017647135068406244862249056999369548824451417046983208775381470906335192180170273871542634079629167372176593400037947243637388859347456016643492361661504074827062487339708832228538380560316421850838349741475857234158239415715983575221625235269731355000957775080847345321274614687907737029968907261991707078294867385813143304785417202381150474970278107815972520262586788198929190495337711298574247448896912485040764177685580886478593537527924857333575986086782172692641391412657420590389805127356793454989578601563369352288657086929403548048228825820943536334346467070030495170826253442062721809164461055883293097574238131989982673964031964758611886756226415914160975696238326588550561819401257779242903963976809060559579634343347373512543338920476460038732993667517024660983268428710357694445391054250022298129124027492678037001932914097109048815123753243241862670890161810250059975407197693723869127223225146708822719605560396089439164069884586377343181269304867307819573993815199742819176970544974195195173684067628232174787454855527677514289906617221525908032044310141262556347819488585963798530380576138313321312109751402454056525565435834537142491426417472358168558561717469482368078755060225383375275513923391631183549373182817169669763630238332424758386256809743959055714965243705102584683323579603171194876263343751891817764887785646528377786880396660017515019908729261782897996992536795640595378309714851550804957857058914564900643758827248424060995330866665028702038042769560859006109428856601878893392073447444467874590232808013961359893874693456822589663063242754636996973189925282807846013801959749399799002074792915789270603894932037096097874519692456365102716771970373050678680720687630747470892086191604370054747309152804604745128903628408886022415853679160471855031085345112308949341699075804929510847958771626628116255288447682115237233094320217481805389421306908044001652935351229337101920248565171058197984347913243291679256297227922004923808645570983025671254142063557548697054496735160625467192821532056239468474041478683728276114875689533655807489031000506719159107456440219454864696020851564294001964037947713373629160475989724491285159903921736219663520671305680946792139109443815197125440482653060481806163265131044732190741807980668298168007534006103411544247714648260421690305835806073419834975140768681241247512511467798419957037318105252876188775633910927480910771847515276676712540280757980943054245423809943307291003590332133855447745381691536662126963646140184633975883663532001811090012615371999487411525648265569638171955198941123286354128051976443001630442008634083101057357742761601224517903839318300592185319594425064086930634688837260810458218277666346610165135558208779631340414082271750497578112857833948567091428502502517707871376748349645039546958180314360789063209455813726733129874552884930621503812094319144475787269717605184489776047490159604157659881750577333783055870971323997218610482836623426581225159662120000789009710658148015026921889447154888935576944469320146110222191668242317484129090071151239308307260851768667803617915546470241183180287866727985280386662207204083827663751796687138823059507576663692824669384322401392082368446458490081069032698919983552631763236136778546462239323314420494765630475337577876308198769046878764846143562007050556806490621065494844775474979036774779223702780040689522693129347497581772554606120181800699064694740984552860127499464431538243035847421607873082745487032292599914135341935579894141351757999533303561936137047887581896789055116286802015714850974161268644900067705601695957996731657422681235020424225995609501914007697873648645880668047498528661582455270331491266651177087349699932737212877639649858368164510449888409502397082487841852502320466610263213631690109837956092599619794417098358157386131776286787475556114825129281871904878632943339913315516661407384802700771398266415534304283279084931130011219837722465228670088408949265387259162094779898595607926399250031913461473440649238927759096582395743149769879743274335304881347447003804392143629302540752599635439405746900568172059455219899244751131506121362626780168757460759253120503924396863300902074691271336831357994005611095176408127232829773871356485620757102211124961162211045635870264880734450000918677487550703870266593782242204392381900238509313590801047470999115781310682449815394199072149305673169998571087481156792365260281828819186658502321141008516405145085030437409519633327034373950007308447118905655524004375894914909127266671989643085374247025737514706678910744924530550732408826115676137169287471551242016419483985498694111780197484174944701399878716076693917413150743661701327213997983691629540536107773151845633866515002106260931688006924494449000308387147434710460353866937077811372478779732513500098508202341601317701478576505269921128487901712089822761187404209294389523509102068960182271073918532700407712745431376516444023185705165261154674988582297374817120994222976504888577514882987699972992390925154331070728171257915084849718222536168678747446041270260167271671171685242875010926118669417869521404810760965267826772475135719929001944085388629315661477510822389494976122260607592628770568522474725006818144761318145863634125596079059287613775060619236963600958252069983217725989477736743137150122409618649274197694409169014254022206966734893488105420441805155649596653365044738399423128371317881697908905887736593824881001227697659819521363401633442238987893662228893606812489005371328207571965712036827332794104603907275441112283546432185511919901867447571650695490746729785959553995854467066590556053562125541370329358301204815991324660826763599112514235609123223419390037194788132809525105766729953859726676790790659628731769716507897789372415041894778943153894136016926365673620196177541388248013297400852310834173561345821432779433676959570175230641358908656433659115758402030316241508822367401595537980793627604086863590780361543793836443135670725396149670417851346561039055328940338693217037234752979643412272180818455316486475953787507656348976645985632229535355705650328683985262713705899701293118284189366677217364461795742422691339584863755158733702160529493920579342571141495975097868382956648496277048548019725897261835641052236394425840143715761047130293308900939674550881236535029267405267168939789727460335078036384638325093097390669762748757984848269788675259977844712667228653677966745317074198746606479895599413344337555738747862330601526936379934942721088808278354464194527064846452075111948771950261401710090253695370002465932688021335617648565888431881438314527815491164407958799784289990200937373699619844200320975308188340631098911216302505002764253065393384483115570265655291523769263525174229524581411275425592677797958490649099222695337105467104700852411196989036432222248320339217592911048919437272357145164567557554573303339887432424456109813934305025075521534917930701460386079395909299843348202744267121804804433437871714631020603002658933515993780886531549266215739888714267218200927668718868230660764759803374220196085962741637325775701783479643859558516435431587372015566730541097095174318329360965364881182405811556427564985681424203251915281730272817828149718116406930864440280304449039036937754329865065559277683404504924070746937235383078642046975717779875653778629424997826734834177156964198049423350840766898656455640937635391754947406449505505928190252492572061280999098620522261167552696567620279840002064921276277673235851941649105626145329821288475192760315946861301515503608603592893741758025934676725195718673997457423319599159794283647640105293939248950743843508618024978097141699274680890540322101149354078113893650059338459954592865866143114189400367337960494280057605581115266306191394062776317131386783763623743312259300386449944662620411032364024476707911340606985088807247870735544752194996289668367851698153811772146938035944221687106895049035854962083073628179128294013360026102889919688835545856454086650718126252448005624393674723084453485690135272670238372011922638320354585904274447757907136914281425436232920135137548631021079687179731857593078656575718949854507994572124684847272220566123472457176279520689120138871430957031932558863510421572948386426608375354950808565960042063998902766954699900778088960373674905766312727761084199304081997958593238833832341138518227904900671214379344685881708059439909825116994238661711439696468577030227401960742345277835979167774737298889599647305449124095974083261017497317259698586932811655528426962323935855318156318667953687671299496868491203288486669710167999207507016601594899141778750078696874353423961908182877563462635836691200749200829618260003206450926926846005833728847761063990029808756623713739189368148658701414722323002914332958091372000258300308805489740874012570345043634998670441266059721240753300933859555726429103271262649053049834780416288059899547619266804931654107138127565558857763563522839495514628496855124748474616319214766349003016779382930839005237218920540918243726170150045752306323076151780204964941268933505394352398437625464593047208144810621051445512959147644909371327560243469007433054582604285224862341546947740351562721688279158741868484690902776027521958974673133889566432085073216287251906509844136587724973146934130677954389870276646202313187143803028152133680725277004294296215205696228353643753341565230550000951141876367438408570979617490027666746120244020676345565450080230491649783286291440699926994332230816038047878136847720650021637024734805731319363496735792076948798673809489835831128626685603093162158640403549409834846087110708342228879226615054917647996298327895458656676793021244789154751221052048638333402986179201553577644550038109568491436895234269858299663618000252898687675293096149792238009201824639421473298993935712044344892997000970312774776965701264190722473462560492267756779782701635219977800065032292429648056776351061816773427940805036445751021686862431781785843790893346329648085837123498215109541598695142638625681483769078518698676815000414830459462554963832365873035548028679031011146089458597736637447034604318337566785493284840315036910183034756180770610176114272620687863755103933368731995320862926058515803676787450761792022331162982450845634504061473713144670523176579855601547897531232972257776473868882611096323851011944320058809653893512875849757040582174253466273824951398090831713436988220684083096703788624311442591876027175241838101031127861551777714763120045131835036446351660058085731936229137479091205273365459856415617394478093315351984151347583725490248821498352595539716640013175266343582206915712748947208632414829229384529223514908946388260829023238026729331983931695626967618767657539604871491022137218702797606778684867629737246768037625692796854232920782324507504138475131909725523538655438087761774331686059006079411079028017820542695769573415090935817647766637440740999282779938903829005584016616159844597916798840834058094816045598803238800205908321496143931505747385996008726125678281910559089358069753889323652783243439237120236981366753435546476944902830422318121393199370842871853622685566963203279143861921379336843803887035910221172616469027428539860858405652160227910713934755037310295843160502864605005438293570698728800049504063829077679700477685482804514456592797782159617650395065135986065900562361857918686699853471889514585682707507542666517409763392621123720890927006176893201661091658369715415264613345896498330318015596435314625995039709232152274698204643534514138519612868263282347929602546625188787022591949542808412343732535764196535250560012795163149858641994651071134474205382574679351753130353283659108585121416666942360328159794010997375054714083040126964485552847583068442470794096218026902497382440785156984158789446603485301520888146829085178986084564958058084850439078033520837434944861057668991153500767665033864678178965852454687005564024633050602385060412641664811529756111579157949299690908204667366696584328861727715421403998103524185812835080226911208165695387535428746184377589332670114576593654066190666726549172963687251402585672767177590750726151609325969677639347565206721270202310988446983444890234905592390650092625937760633981662604408753879194411266697968613779462854904292227798020131404747199465267773747703369742575566442437881104288700957244488626091491502418549298908620688490261153041016533971119815560222717911677873173023532458514443052997105329618953589476176236579691334843571804992992046739309362210639407509810380642946463384297074400983118406405779169641724668479292229082316713314423196142722219153636387943851008232764550708207246556248498690503466298912411635453870315211676746034376702835218011283618139572806927678934097109955070679162170724189202769155751551567151130727504065122992117966540411096047357347750286805530261817980050256896254221626185811967435784387044676416685805988207115079985646375145463236449167310203181959317144337756488695664622215602639959570602186076520334377867637151604634756999491323139458607332441919650050865220829918350092148227650849828841463860316762071280227377475138420822627443506320798923003263447856851205441206602720267460704068582175449291253439774135367556893598407754248039065413585537810371743329766820499092084261919350583491183168868595933991430443778420371099924377722558678625682008861362516539274757750468878666732401942351832889241765969044830494759176103320515525609370343127919479406767202860972264284807359800601510237596224303156502383986905375483786151847180237450263479908441088423645007640624506781395267360472223521951935277355078196106186722204486542398638412505716354148798709946951690400355672349064521683802421578869437358190648078420950047501004543604153281243779607983356644810693275928272799406332958268130047355018388708908966855593554623205148332397525830566573448821128476944272717479606336714240373045311154074160745388339050046329206813766637959568024437017656816522521357269519344849326819795374207775569854579847361497709338637273056066773156026224629500744226152120757118749233897253596008003718435060385494244398828342403343142890596061440609790685869572093638504672891083578006866828961829970471279865089785735036043106855975691685384417602528954140670416952176214062034185674765525096749840204180836636963313081687005044571284698634057515071436633512171901586096115264800031958554828749152195013464723659834301743168546407152910359378103546171565162310271106425368515915563727939219862841793706634526564303229489154433637366261985249760152151795400232633885171996191728822622043614844874982279976708121783868101106525625103612240309468460964443605609147979940882553793484970679802136847839533400881183127795084628654739407854456748117060754587276207049230089044795557227692591811920335585779841747156532813607733127868427079072709643380173204213496369494793847958366690094614474731924643820044579082375448608705578435036741084377516518340832929091307966934936936197439289589603246217120265499623325395016995946065146097706073287531429404936350631629626807407252512911553368091358889195365146941672394472425705256846718404219026364820344925593592067293525709877385218030968736243614605059230900715947463737921031491144518289743285554797183957320538502047266783736857945861903364647877197105592572455011036015176502925880888584139832212968085940987468571006432713207968173880660635959492548861017756644935841540480289444917479858888297450242500842011565345194445775805393294881311104579152829991674746118878801224111957313022396277603117760256285239640478742793783063276682458690150747152433350371212130908570298550765303070342468626242732159084387954153017370672266039992296146966165384607358339214953359807479651502803031559410423983865405573134712917336235715546381980937923947693980167504953732136071770039285061775501482950861102148632238689047638017413381071476965777211513729274213095242121252528568372332214999672203396674316402827636148293184345697041285521950629659006241123990772186976650953348132222363002359712353687694431426436368374297399660877338983633890852187156419695297603103086144080586681902087720974187162970351446847429185216895855601027249060726817837214040946182572851605720445319649174471046286714827065415564597867946127808235747195320627947111061565085099938516023257488337574371156884139765039940774780737206539610958418880475740015697128859432357737531197369697213557693138175973302538272673730443687992958086606325035770406341818882643587294341929186522620590200390041474682844838817727168766951504213277139665192173690527187940270309130726771676037174599754610476067723124443125698727124090387127259843535866465308597062124120843916237483826999168895118818796292225532380482390524048395675247390447913566171031249101825931047099748029332324561736099547036877815294898546451275660240855699920859536745520415647520645154330996571484105332723198615037628431464770538196815830100944918808530979926185216592548132969611623224888859427628761969412415933297378853732477502815698716913731779512963718660544965839173441513707314201050815071181758287196223537147704169755107435577203304260630710421901822489902265396146972629723168643681208885393451091317871405716061838430683846865114269024267107195068340142644631204537851739724628591104146138262785351721117795347976826615159565028499292173484383309914208737370387215922271227903295497385252144983298386108501554737958969112204252888172349918164960698586098398018950843805743410220798490869090113066156645609384135949592226236254043403586521231376311690397395189188714418042341845262245753299547569048631439438472291725171905026095043298240186529011579059855716943399278243916760946407222451203966506589814064005354121322629182340249357831821386906657594196762518526103610483311847734626817785267201360252750554014612076728006500673851252229039399338625007191442872853562341738573645296701460031416726181847989281783128309908549493085714425346856536971880541084427699345908599786426696355949865093498733497097764274722143342957254347837569319279640660341626347232229683970231509864084028015510537830866985116348043706337201304538095665699379729907705704263138981891381481993022247653262797873137691103514563395203327872107217205884897291888694094114991492068334640587508684267986319579703633803100096022924678060103642254701617084707461960804149734966909234844192729823764898702534158629702365606437749439188874659187332609736824477277058505976772317558620027568923409318294260123163070201323163553018671202597787099618914339825006979166784648967198994325382920451252185647148361327397935984545362943924084884042522403761659741539487169788097756597082207202350803384311874484894326071853003641814378144026607092488000254617155981470765221572563239248387935611844210629150553973685675914510258214356754455204262253110205939819444043612721878290154988541836556603788043798006893999452942919788293521279447992804165364118675169012892538529601392925251706819830026621554549225617268805391432298298881305559260185135244020056353539846072739377457601617343721747833286445506436467814352882166157538344650089345137331965046494880285584497986190840309651588074433860653369688183327525408258066761300783014706893326263136947298559592607929141844683674462272220982180153015609384766671835220164703137990494329577378289443014464529824261607757663815866481521436918541384033951927438368868961321869643129526936764615507378671868779384227334022562802543281351273209452709205189071290601401398162988375519762165860827543403891463622509535780378920083022392052995817958941474887641765818430820353093365952464370781129350459260309020936618805990024948138950938185101959862346536658816671109972715810511529330215816537512273206682916833713205031120770034321197210071405150521232601408417946375029107041667792135263184390712075066447964602620916553180773500355743951843283220433705925546820824931078999340296381952323634657803739264115403461276364465272457191516938405390914690489002736109195649383160085273365514526981169367407606197762415671022923436095511868580312870434002648642685823751393190269153563646462500814684692611051766038448188884178690645473158152306414228678790978701045805801567265537837998050005869965072905595572137758277255778482048355379452987494191050405063020567765922455730873429818720250171547925934659227603982497290578601844038085769597837541056195046964377151856026918400524258505681811100275475494600234562462634777442221245410512598990380651948273924410289105806189063949674544168058519104255193372992847236532507083982233973192414808391590854973766107157906790297361993194904382645371145519490048158442121841620212620048720524890095957330941736387451021868530754028746923127984992957840629381539743161362435569823329765691329509702736983409458457265065663276075124215023179127019108686851708640968954184577789808086515416595688295912209895035601947863718437158576390611953227330354220348576437805003782265324961630042873527464188369065407755381870068813744904083225894147769641736538032484340333092832597790351381467310757549691891526205047786531966516507752356298386384586170872167528526310297112518897389277911073922055546514551012579529058359220728021094107907989062052317638975799693058392106098685494080017029212752628227483005779185000818363248250111650708343706833569462455990976905647436500254446218271157915167817596556825189939309466646217363630985641363650096880317523408988618890235506996521886781045184930949690924750905308107154579922783452452174616131998808144396143032435461668633447239178860713852572454715759885589239347703241467666373880312508399733073133229329781993175914565565262450825334881793799539405923969195803610282921639346524221440573210147461365890892457603141617328697725475005042067277398435985489442184306062658764708864309216231768834882918981220919143967485494783346733078065545669055151429456573021920815718856684699891865666971585048449361234754268702556111553347706123275750863013427116579938679367444894469634558727262612719529447755142064307038742211872210632298133418217093081985529528159548644245484133592573481610401101206859707211481488829307775337148245276816220192969335187220961899674092577680469396957230652771145371800348234768271256778166885130049643487618455184003564702079559787203023741105644723798078045653080949312316342586123784458899218718974763136504943288459874583194772789766200145256813766960876627997604488406254301335024674610647852891938656389921786622764214969544400795961213968550792729616838312745328119061090640073678772021811633885300581277371924332671226573098611048029303287896694186426676337708038280022581011377458056587722612612663516659584819494195162971237307160286401931058963263449439713424818407258324728508559978799854665233451920831868348398249750437221695535752390051960729181579235681508735717303792705157568147272847101203018622319823518614379168249923879972596418265703138421288973873941093762216416278524741159260211200244222886216348705021456730134266496970992467052072626477410535007263616486902537696014972118246162473045149686794080279734184792709603815607798325502736247116276594409586051779208053519861176349510307046092712130696041224700467459430568273157299179381603137877927894949059137523972184179735499053582981035161191213427162727536644933037875895911298210054058445032485409700162659299833313041014880284747677229498696097287187303614910738250089884225890719644097374283408197589337129576761549294971136380683778022308535453109782884411152865997952168758084411810608104074405924600171260685474356703956400772128486956862924851309979749986300207316676031388488874360157423973062561792925020641036158626963533540017366692583417435279760514383818004501203541835448560632272787182553418850149986140609344840446820945942707623581450461701192906827073679405713958832462017490135230874465221885530956306773611493071638226703402886557431868676516219142772445170282214778356618644694589157465888621980368975298564115511538730275082607904589911229811174579414221033727562231805525208358971793871120235435930343997539678068650727235984602628195988258647312167745354566503788454822468021682601611580601682867409508781377704861261248461217498384255586026946495571448486458030216115732975290045210362205471491190977323761042068978296942516423449753758962768186093209058974662991085765960203068886348023782145672620818906273248779389828539728652288879932646519029080437109457215870010960966689018125075464171580335958809189703492969276050112594642465913431141165873452623482636603464522220460990926460477347678236911529472484847191245173614363438666406942822151166333749416136167824080239703167708865638011044705632246305531104286343145557388724127448436623111608839388524699625114661689354893470594533998364486312303251188702056453257894929848041219229627378332879530737065231522790232411601576818130160430147257119075042500357566913993841527442420439220369025447616946032485816094207345302882191090011144062132601362108931210894300916643026863479464136686448309058321255556992347495752587311159946454849105063472365904787699046599349078540953134828283803893553823893748930761328026002556880725261957172697043415020928625447710055666717776073950075228360404204665275631698946440288573411481534492137510906881927779568146374197167358171147552449909047961798318380077319275019164162316877706542665958332469620940905832713984370766752553778326085119835623762281870949285323680037758277268842426483080022205881805752715337059140476203578268826160449319488295557045643186741001958228372078692277274055995759195953978075402779522021866229331523488788775731313538003882716382425005361733332883313146324107714530397922238013411594178241439348426938447991161982976094295462401578052858373286220352089137278330381176278902302981101711644599631713088628270742524595825125317862863828669690229547849329978800623224610416588445476821082843409014772838703024734595396261302859234085128214144859597040251806819024078487663881178377600214401353163837860611982191049339067997057227843480816065796681792377401758747190365890791959076500379658983927723436803861904492422911370244275963760271972065147972758942087413179182909370775434973079330664774131365985634237508646381201249882118719524128185823635450063145669132999537180696134286644052162487343291056252041498412522708198832934856020118773926334003975361344041880222521754587723371945293024441355778080323253659645353636950275423455099625863610967064436809925027220284478298377866396585364373993059831017925105240459053148330287225930769350948006566265644172969573575301677961704442529348894394335617871220320629936693848874165551639397888116510078478841993076143281742733880574551505603054749177124002056686160601093493753202471603552299417121389938049702229442245476600860227877219110813492242590554018489451854809100448784308007061354448863388896040802001879631925645131677661754475096843902462801804205049812474719447303583080994849819947039668837998282450438554605484429834408954316594645013136237168352346145028719110421906130678446966282820573568452475604686598412427735771472209130724918824625653658201471857748832586678481643712437995461150520845514286423074131531086548083423218009781767884701878678027489025225279994014643868688166308207060024444585855320944854244939558458061530322270954766457589727050161212488842933611901858041169965171482221999204486351812172831146007123158219403723167732265846112632524727131412102568335679195767478749350341398784803568341048260946477215138075296919933366368044217030199501309073634975907411135251084879418060749350040885516487175243481307029782090631956311710901782761193571964882792492820397368026292103506832494790450969951234708809094938745222273784493261758569700180525282947703224385147918701477118819915021499847382226498214049127979533227494903671685053825551127814304111497639364240272834639843548432158508626455467295972324802775270927087443714396786034685895803978439983228299088228851330604346423502070986453494556603039828579386834337981866394898742893979035404282839214449356355948954309533391990484512682074898734811773605537591055951442855823384636717632719786418897982787018070259924609135664978211583573197241968283651388986216092804773544413696915074110000771350423220403343032671860555080537482912788934786635421258937473395793388352683780000864227774536100058878569644808589916273838157078283791908309886352528678562740574089708298059429901874519044289707618167435613047149966504029833045152552730242626743423402697985735345851782079018018290593767623511107025083405525728657508279731470944804949126543388150164051485708675665820395647471301315856874642831906397362229472402333323925312772069768609815993456604624986686658961102087662613052079169932899096554975876563723171049414487572251542677706103436531734863319994077929835116747085007056009369316463479454669985269478418212737942990907373595225628110458541143109372386996112111547132759246887592444991350196764580376534218613707524209893517401650112679276381147328928692312746574770141485982495317924470616214745347414758791464921597814297726521798287241913756809300203465293378921853835884487204368107305027594370115046291333581109441816106126084978181282555926066831197653963855852966018504192941919088112115684553514916146303449521802245058321867768781466139374171362560079527521690518880789483591028063688588461403653385707906702828379084450718093554319273498384683188415724988217763745996358599102923766710731518901092193645124673098184163464993111887576386570402196977525315460447849261876283323537057503413601659068202138434086665968990225354042350020530189667708128454186638293776787150554043242328506128968596083356075433147375470080745574640466074862409738286512294615405491445555823982762539482380534932641755329650025160520373550958183491719784363805634056176702411195682861185343578743122380875382517606888298824295140340998345061389204623436926366372142810414516803895706833681660210734540524138616344799471502154638179866897237965250112407356826839185655923746509770448311472803122550774239255685217894962507055432553069626422050261256010954952187834076113603748804044293979992142584792240548222492578697060890211578774178955194352353682096584571497777654136552659300163586533443860018554387694319892561253190212852883412887848303448969582808611557689249877318034103634468494659881061638210779911814763576524597832213936842428948086209187742835684200877279376853527840175253656760847116412751829391979129838992702000987900318960660048566357497248607972843878331154243213573439816057538198398466119052434460370103645606832858213032656657293362149818457911700437062104564786255108987696123903555343743131672050639414132247030151502620742421196180840569831800504049275717359184893918818974328268364392168008326330439381886127650950214672977111894843233740742642375727711835350740466431270245232390088996023943458100064760400823694822867970946691012966805624661270334962171291298170447963863079411757620256660476736164793361718090081254746575611981177442041611990406430135709121223264420310936597904224082591066392803101295816376009087753994584827267111201783966423164805173461649557858656931576600490336590146043124580727915661606735365953284296447817539851875392917475943775309474685056398521651245149808171582638457729649444041850664464298449549608382650067755674178003674313676420988255301045239189001021892018176023779922169824592179240533370956652672449612949535723109781190114555831406482862329965750239760644654912313458045035242149334497089891882329117379045760025516856697793315186135831395724924489432639985760025075778959881863974635158960469751900174888088272827619540109815931597315445789486336232455326340836003091740922294603241939158006202471650759907419599821470949201695403576256743630780916834194438001553764035636205389260065247445403770499947641170936093850641746426950432809675194121658705982264717903189219323118161483643686450006749045833469611827575576516610103881043156763612237765501051633802485571200007393867455658224822500821492121575047957677936965450199967491152614841179831585371122228200935152687061690055042600845093776686548975026742990666084832121184953901063011634163131228216320876475651154395527666895995985817535220887303063382128834018510701479070769105845154583208269594137544088407670819340012330470013894737657928927342396731401253735071847144941865604099230377180677226349335764049903240231282479733916328673212260934711026760834623529880475403087216832090101803518014239627319425183454652284786356717569653576310289649898377411193879384117205964046188517131466177331420488554172751471396384795482163012603897827755741075773821573024023310283134050555267961896202353926278019093340391435731021071606328422110500632426880294348500566637863642444394180829747188952541329625485544232051866731879880809518284609671093091295896318197451692197930324963060695506396204126894401280990978950930338647220299902597882900646274453705606232484014585643384920420880775993565883434573501342663580426652941208287200429014089381121502808915593302871095940949431969776149551102963876313955211745767146743879551163874143228080231820004825765874135968967721013192890684015164935690243974756962287418409600112638839554401234545573720356573924384546824433553191250616758923488595139057700916945800895255138887379697746326696046808286982621675257009051776432180145939336151260587036189956628336260200679643996140893222756548595564325076807863229256873358160525895443129894321585152414852357186009931069933603441691242641389456385730761050478039508960663028552592884817765995982741582853341367761902831462443974807928290138460596974084695041206887092814105799891950856105385069850978472420346948532441457025306210602282918537640498457585897820769669530725965654070668643683434177073672630530842385682874004379369848362128162786150512298611137322469343466297940970542741666026553613163881403697319629080250212682169399590904013733292522719864214432456107137834632194434917559732922969497382204134641358059544817041508482760797698084908918945639258061048635211310998268899685367206409143233473539076379194131262210972791201377770923262690640530911803876131131594520703882545178197583309638221361554212896196737724097876976590865733177664777856434592067412057511618550539509490224979669973531264955870307469464908954594346097649976250118812874468655562093791665534420492530163372883462778076302957308109210468434013214399893409782711382160467524903623934706264051818607106318799595763940608550113767776442921186477439305622119576873709222982321804886730795794355810457094718460307034899600217618192202708293188878242806792722123599666946623972231411423778454801069822329453232172564626953323480147730869688954515554899138599304657215663429132865473273275416770371923943436838541934037676244810016792893793689963588550249101758290479741766802030019927046478902939204233949508650700507870414047511733011403876479241597866719253272136829688037002576703633140947581576153267046769786197085983961452636435067425448021006814969098122684404462563609232209934016814244986177811177298877210563250526827834667505204753833361025234112543361995708546612421059511710324647113277848756048111786650878001410746149357332702474275754395944105800109266396585145679731284682806439924718425398139001626091731471860097556845490990482966176615247001028314188288684450341663814019623440409823410965705093774956685457162182677161348102848209298150131816422720356256462317592604082121210779476678284792364988896726840686776756970452089561628193395105143101116969374439233241880747344615543209081185209414579906197374422652141037604940102858437718776566480035053776751979352989510898016378541417921138534498164269753608608577240409532915319658823930144284850017256317645309199256379329758092748322306558155143501146679322237603475764380404766522157511869847612674145374898020823490322315493101066164947639407863904478693865429514116459363414471844300840135639649637156802312930802068780809686569924616485821069788901603709483308836881232409423913408387273403525023647774385491834824347629073810560815592109345383394676401796899630330831367101798651882999321934331748464014392260951738478188892347472685274846321509956425409659011634076216364606287028902674821275232352233282104374097042410780212691157743426373430058851129097584223004823221664375109504863187013754327157705686138776528928444934558619698031971279796591600295603084165485628201212312340397376304944876052852687986423472331013828569008769657893016640536583534643345261087074295306418916250718658126450719998843503991185627000541691072033614212028211834499918462745676605163306963722871790771832743139848661617516629500526325611998405755302439566782332104411497435958050412359885283885815386875857381380280090109789578175695319122286005806497330920263889851061026499892574963188980069901123591282045848161391916672133982438730998076412398881252750400691453479094760852555302734978688355026028346723204576070088208844306073552492238645365110039648895170389712415228321871737901896933665751527544012860583568304987262050675352287184573622673931123352558413693738514998398925682796003778883141600506005703235416221500037779885836591930615947962053126880174256501618384201219994969757337913420545715102722777374031694134800963183583648626839453155464262085396977507071833644890897632955932296897285012635362858757271683323148375615767349045669829193817583860284774809048076606070148029564608908080586774971704629131067385835066133347766004002322555487434386914898677873348149583763481700050136934017732544313341531068755979354943494449722511964117864947975312586422849896518901732717467193831612237987475367434851482943474977862245828884953760004096602044718656668271401999212768169541460600757140398076106092772586825890213589220101342294053427993972700045585412382814258279308630828548106913933346535727127627540626044336355024278537160553839075138438841289985009706005623803694537296486820840408863827092018857205983855973003991661762431090842604438000455517687704425986897245892171629385300098976424891918107977083003918738933377465053395436452274401320133343373949472363496163581692317348263449246456094805927653286636979539406604993008780652524939723301765973742664163041248212939801383683584061605728375697847555480575064709168513423160862323270985639107625829579580023669570482159178034031288823554102303757475835460235218017485813496777952759588002944445584102564381227818195353580812864594391304414145613823373387623925383409645159137327666590585335061369041232788001521671412713377829274836608253283448071634799393308667812332948386009207907735848805969125494234174762649564435660173715276083337375921448055264205170078657400528619246142725733224944280061126638580452419293345995127373082356116345919664930438288348748201369547764200933392908971024431895728644267355714087300028621962337791360488049406795785027026470222485227640711553793595415829227420305910979775612356700456351398722337652969132822029675372876874849498364135044999823357234691933437031285524138147336499891649894538322704291454993642759284003177982732009240888620162728776632702213080721891694324499505517115711144493950843571189147329520744608635553122976877304445502592647967433242366647165486321134006045210384324636662706864079223552509139713878608409155840837678387617682247870601357725137518941390862299783761404132106705379760000812469951133683517904153705180641339638919312031087460792943188527718087582504054179902189304597266796904398482190966566591190728298777664706998435433848542018661380439006164666274945561728394125107668743627112635163695442618442592848827160847050825066764868265397650023725465069782353663037306931469606211279755290032154217562145017972602507021912009181922071345207139494015045404518538442260485381042529697904435537814725272899586410959183346635578210959572680947117270362271023947036377008374216360252460312063347751109491565075613109182237774959901982528436558801698051453137953519288653608393318408342404738517429294999014273278948346569134576717951090767617529957850914469213816274792527420956496693592695897430533768534319475520039710324654870575573142293043397946915782627301455497403161206557465368247343990491007879087269058898109206241389663888486613858791500522726734174496496485751413916849638724176781395411813343489119622563598219075891463165239693365145585193097531331781693891535911850849661758088066994882721689422551456373632827751448519350325478442675756218706682765657289940771146898269885856685883464102063501995299120233962331048856750826591858620439267395426993243838160019292384564446353431014712655622395328592409601225433454631539960580829646789292149993752078478761666531150223804676104031034585922251851517382694588454872000554293186946388930493437670672310868205357482198589882709925243996263422292835416913585088107196097576420482091622063853878115791650427709381461678682080888226072594838210472774704685957127054832289567374684871223654426135237313373806635787001938051092526913672394905307296739389750518595688389400380185602006904499542411253972519727859901709470646608406917600971498455654086157165384604393685190834943523345172959510456246255051294503113012171854733544896454093121565991490613836546934146915898254559674974014604955263904157505290746085013970427943248533547539341242679620407354249711904944903927701292523517294478081689744025477896378448784727434448010839291819015025026477240037163890225148481239389190097128974711726337869387506422053029831674231142922888800699355124723705604773306228708596280162131520739353737801471558505528167437670257325718613691942971431686720861087412449111688284793273537938743719825487365513967968933380584895300039802744092235259906064133976293882916779194197216062108149230689724076316131311768853194514668948685584398857175952098205985067848730401485848451976455256117343239499591721107855467204629301567410752994359272490927909257652408553197836871084226420509087926893001411352155142884419502548087865584817593537171754566190347352826958598234135655978835944074441205395868163189919273760584599443452028630250400573874519174555359227853936992259868177656216798614348271756038693892651685922156979932552739895477142943419565019112930175008927087208516871698712175543618098860713659101772604547220217083122610315955336675597737445507829534197996959736138439011981259203915430114406484770233570284938088142741220222245777222177855527514835687272444483686894661944393711556481195038437511440625710149513911120548665701029246040065869904707500188045937986269069739247647709423085827564238991232839541193756832842483387479969025028164668625688845246617114432522204419104147571687607274366464942827110677243899803761844715196062420021061748434864405198390509403850124254617367958061413195254511931204207649463819431469288135483235054819328472611931341053140236609787641393178462509616671702359248737256791318111429324260802585112795289000793716600801775179445332203168564509483830394803611392714145545214591281889545961749570369027421156322383184044693195102359351448996519061177845226561304108334532624583110200359439426682903852134246598928793778390215822558015118207910517932816539501985760018342876337707657017386387524237269381471181205642262927276054248469527895319042311782034652166669281474028615616192691825138881860086225242553964659530609256646334821798108665258622116198793833985264367405135028543566625602119172769997503927927870083952656648617318634545221764775942554557667570493528004020137278981295936245129118851220754597569617558471236496537068620967115567763505324836333507360884477936265517056848381492032113541416298669083110340877124510262214243887445793802060914687583563674623618390742616617230516852852648411322239873003613220567618836739728994062689124743595940079367504867885761968692117694076288751486411355951392957497774948349445438748050687932512688646644266542678456184047935052382204891199410185298668869556491983667345234039643836260040982086806869198249683315291499391059236662242812266956772870581691231197254615916155506036275641034035734920336603241067064615423689676239090141889673895659318536562685933455744580601579777022284020694983567850991857254483548554683009459277576022406285346444773483616074471427415477716509979944185310393906142977145826550584193382047657561872898239692926420338939786516124954938337895739995744198507310094236297268704798574794046192860475172675254760279059215638418950959833893867133269021945350527487271620566295019796364291550868676176278313949994052597083729750257014180917532117994943069214034086916622089537652905936096852847429813449143597779915835499843131027700478267690860368761949326380373852996903101650158131092576168954635918297516680923397545256087713824471826926643800859786089704020949725058476042305252493929187343605239005175092391224080418853792195858615299006485479430665529993974910961175110390462454212331585951020517808676442101455475920544040657242141522014210211483946914570131959508987045259992820731472509989296848994524002114226115239555908305142022781215436614700738334287578857302267783259696477267634846022132196835235371432633561519870790924713545952886590851413295906479493627950870110819625396417091146549691073078369107400384693764452237504627305725392477923463793319829523926482185056253444873424958410981838127468219908307979741577815248338987993117667540025987294272319178100958565469265837227556318296559661748814850429267558717542437000998391505532992464595873772849025708235336696283002334898285317748450593347171183364595267463021960996704855384288468069875038539442610967279361915256703590859167146075096263886493788199568139608794794969974597851127321141114263162084436247036569131164364770600411789640857816650774907132543487141196799384061564983367435567340216729143698013458111267664863701296335606683471953241649489865529828351353266451053465584874626338674969606283640830737304672120046931582077230789947003759277610526254358808537387072446372244123204829268048663689621723354377980852711735232930309306433104092273420616785516426507355146046329650153117589519099614350224477173180810796058606981804648202419528382421561681018556903546767295372299147126693059387121120769264167168243942289883255727898637811272737961395208106000964037106331833033036322269416848321881877845085987355718887896925869715529311410200718969635356283152718172121072137131699108580331154358030245148893912334512697373190669581900419398718544044999769231062198935675958102278515030700743402021691706789601323961593238622238627475754414681874725228981199881447960532184251049140662094370906539545520028078895473057039150383026773492120727989912833553422955561013869617310564572581072110266650987682784919751659290206241138054838330694515169322761582261207856480010970020176840910129829129666114693594683233769610511126404782236937745098836903947446379922793812299894943853485357590674699773744335076711069884978089755849777803982325895603501873382536983216862976350211944350994719561304126556828000232488773047458301363995272812800080979652464153103666630892746482551269131619632861223529524195954480942128434344953086428345940448374709070174693084262717534172248515134317776719074972177538978225680463531923143622480566945980202128244061010909733285879216896850873329692400683573938238016497274352714551483628269984532918887212090273038328842786015914729338498572421148531554941643388219549509098630291684315283954466117670188478527815511081499766560854748216205617268327937303350473276778227549461746077534986622735612983554066928754534458972587969201156108094825018134544165778705372883241838160869302942271695854711026212973616365286586986817594314816273652165643619831802776930205734680807059016294686498103627722287377512239833354455059714656474152762759156883066828608365527278880430101919023257860909101147168284048998936937440711445375940636322726006737115823868169558754041187517093026622525624977957587694219635732340453867596224140889659806365859087756648173666478937387595969830437343110289375449601907676785271451075536845403517072909468127787220704137566709418845464745184785785426021249457374410529836477440322369280592060822446027084517688314174413246422803163249533036305852830180246864024590053378124237110318991962682671536480340123272302142004515723993580073027280229696842605148617384843160396982709437839243779267685411257965923829399873370472046302402333976999227070227443715800495709876028631115423577320988639203698594453924056786295278236602729037977718369123485690976537360849647280194396007977374740563905600620635555608633778031491398155831278811341314485975295029905926823307118821941459463501935220262243420969801907993979542953499111034773948273739765072767038429170120486971850421383078877879938772707244550554103569677987717634105209061115202451438332668875313711772772641319677981990060918896246167572923902832572619240626737914229246566940616172090190690139752159562497198106972504403448944283000017480387668232531225584166373460174086968808508484705140143446948284405691667694239495640446933968827919259820113081012670430410757331588307212162061556155185072707667203849298575251843379661234393473558136532460529930628612697981448309515480548276499685461901410540674933677610036446955572384537498848040893411418924724618181403529423158701387189963435903667268811008504260703700215955388537125523759817952050709053394785761612188887396358633829117185751339887369339833619821132839229414887411667404323245315282042292106496966842969456436108883390813366470396614179068798146742099779891428843839500377584436468965880797201460974293269917494761277542467507503344259837019109324250922431069923042652825209961379391938421778143032007568169588314942885347303280730628179676231926388427293204699633433553766322420765557313560861307668749754972127875513962195257245689139261928465473783003134573604041643525071597671316385420291548597763530706947256175293756190241171425637834961819391296532983050665672244470465232840114992001491907566042819951679162021027441504093605796502585824276585246953134046503178286873083056890669203585169132563522959474412487871478348438006059920035195122422508504084350238715842715350215774507805191703844798794037865460442859595465696978967827180060787426782516432531953555425462027328607438007736923542930551246575680937473311262547963943381836832490884429945821059566349269119774928224351832637205168852194164799884997859723416056138278818765988796996747184730615365941115882338885519585168858255532964526416621899180336371283433627934886795801835984647804092995510275683472776694075953276174660638111758710682231646369065899405548942808609979626216163342607659041680019302409754218493347386959495971127242481489921983050325354454584374902952891006870289398633128485611980893530850500314471583959925256887664621001808361036272052395134310681193837927760081532306971953403695056060232149574311387521189396289029714528283625556435810835159563538164647337578221081494609252899748404958836548436101128257422325243825274844817496653238715310289299035124024243935920846842839403930084033517383407040150268203182250671256807756389382411992080346021888827283228155303191419656375814803310569613412585603809445385617801787359866994508157264145231616532301207069960308451875002625092747722800447595885758184212006374141252599494917407921880654962882190131842811613231039057655928089654708638058432143998098178236203609313726465600064593653649669287752935538794757435170209550481943162444147000121709891262180264142991304926947253918720014042078958861922203933217460195174991869864793286899089972867020696264861474276622537629177171433060329823104058495818154214719962932866253821626776878698233667974939730773068380174315930993849800504419645839006065204582061358324378056017429356568521427595593961274313602911829749077085924448938308702500092660710274233045913179522719409591979589061050435528302453482342210407902255131894328132788290897036830113960988078469101194388447248934000113642427339548189521571122177573622934009275977155687813573733835361618301406101304784395723266287038710899010138158684594950796284107668534925374040874492553653089435187279395916409725052943420163380874831042499239593998108660031938501320384309880595562435887736169732448134317460374958451400751500637657579549672655748442304898045958120730490733122464053896746407983693496681679804986793427710334497696816547903772676973059280969689537957756408857133473430176063432599578081356443623483831382124485023893032150683925826374536731783615116854353237986651773101067373844798733009818743337028413883123197538254882855684652930030176650730939527295005569165315409904395234963862146347072655085861355980289788041970826009731101318261760974083196317475670378880188030850378336022046853155671381180230608692453941514335341046760545552738419084371506491838376949157815225096493334512007881255696811850015134533194006871083352231954380989063679620278583194420827810822714112530592477267148382424031390644727364016411346146750852773427478965007340988493654380143606585970147797785651030551774366634268859413494049095192859480317816059616849111454542383119583756408216523943670618294450345591100353956430484293273864365334515465207542725825775398911258132179691277923252095779244845251015915478205994269852813060664765984251071741905225816262487134211252885427418426656399719697263522355573005872457936282718486439862493767693097157716300692085536996574986080678014328193274172131277789840348870380378172198134160460330346247999394699067617496751112012326213074766972107253575493479117845357141447239501032151513381312425692367735905213214621031393628924094263262529233703747689301073509739712099604034898993319823162773830051227282442611759559641078007820640238000335446864428498123379924782684399452392795020953566756941653960264578425081104970661970496758511583138493937940167367508423134949227763057209938432876972272712947688679749516331971283697914156434137067051163017743633264588097709000864027765673893827104620990149903485274791328846853522303602480221579912435416418515645318469421972212915130898860598291869926264060070732571388943752927956671312657723188817145581052321767003205913798764124257296584864525296923823280736503723842568261920221269256953716327192317402551959469592877126514271307358891982038676210010769274431096631798840257737438467138337794974834949244016898176792907451191833604175942251838135621421092512488034234121063298393078628377974561763312977970730148252220591899746428900183299194060301458840206632702309106761447265260454108262941183245953306347850406837000456756549684383354106537725957830838779210009788300538606218425754566661813109301043800576161624371884200785385042321467714310815535479661032249946766824917112346369226424795253244369382433633565521293647505829907547262647139856573909695766810809034192793464688923060189269952824621409639543698089225839885411828358673673946014034065512103241197493740186036048648165032503170992326964569602458626539033509278423564186218493475760880734431373438090519808504343497759334073832466239496787112806132696004447922717045979403504285710825294362067482135165158202407935893713649275528435253781668761722922517637791304784669835210699715523552505966761164409462062748917647618471270982611227099722574560070380912154769529292635557667739007584369578251380858064715060773411336797895440349356755935566264122655824182361480789776743220499255794068717410386069590235787599657756698606700095227642562168396637852292299055002640500902912524538025972710988659562441851288557687902070120407746771610429011965713344847751613150855670941180917325772571709102487000359671978724652650971626855639271249363898244302169475477655059699321049675218416014082728979928430403774356020184030438271431496028478386354341237408665752180806610933919814867756266754961764560294073883056861600619134803102506836593749387649333113519607948627071098031428914040564784443957508225125330590956635139754237761038210000978571904953690349012595271564314914627831620136547230031886023133167780274487014733383064420292957007193325617287908707009625700332570613519915497642066503632828845545555372087600320337489502576692657352939782749604054109895037943729347793946194664002097269014016556286087937617242262266368900139809993058194270807110598592237670221306643565701224196223702839958139959935202904635770421501827504262711753308168841145397025631901906540668824391313310620916156570466044637428252435747384042771446707706816605050792485363302940320131027836196642762702257396344297939309818163832596172076547764131184668355389553019478078228879806050535906416658735534261479441712145564875811221241420699932234706880635383995606778555222006160365192782639137972824429999048541621137473300952900542991408011003774790249647026310761617169870125844263713872882417950552567674808056627512296195973372313001892717136540177982675208941174980149777041282205514009926086492435473850844959801031751605819343033704647705211579540745004353735602354213774840299103504669070776499531485159491770893729937831420958535787771867475485604453933882604448472738953972398866320110214445450455299809624071398558774335065993340895754013077801318320048595567947861267928690890049477844237264175410346308055074607077520474044909578139312460290830935595314970959732558088356442431136533510431483696418306959715948142926343588943574504080401281965806040483648869626798442446829147252696748515743510929088343563637031633672325425761222242771197640968839162325750681401847326751069489428460422411834077765978004330626097907549713272535564662638502268729035701137187216606505059391762810250107667302123444604287514764965435929184502524610429082098572675446947915454270490292339641791122491224344659881729171184664063698584930066728667492800079983946908627637486908547741609903885161505368711071453437943887144462370314071815366485374326856417743948648791896791528254232445648429078331710290508037650892039729519514344151768887838920947284694745002919407461908581006233032153614414447104746136834086799277314592150531492869089574110648553344362808893329701934842545053470410307030508909667802196189555264108259722264609675211570049595201175996449139020150603031022587146785510324776114363662469882384101164830711874376158076027060079391601342379089722052884438171657843172907777920368825730231871927763481485068615250323992335696050714312005418669084437518961460206435233978881642489831831515165947704098093139911783341948818638936887693361630140324735810849044659447127016012799641309279111975802393628819323948468585137333442858965385081253331339245845357144087915051005200874412823334449802263645567673489796287957160083869957571122784717603136550593955282435394863148771634404455462215538545617257158001327550383805632279603582045227583646073027637418090372912263979349744576141985422034052448178999860811078567479488928415614983406459605167642711518660828243180349905279376330571451816287775527335660505791856031251579966271527962179773317373550115125548853170324646615440204215964820488479532691557822190763362423335160852921958380821647934867143332433955774836172575084619269257690135352109047604942656827061607773223830900127394423565702569225380898596819421691405907776090835491271365594100641303794031362886053035918439443801217479343532721999126405589246562415335274482828961068853614879789698223646335292555963595166449870155469514061666226679469441867229883617993095042500826070070977089427119689243780519296872356316234793425528302252371484514137416079799925381769987785029232316131057528175964997110799139262023073944894760714810254139704465590639196745590957775387856514031796264857155130970346653294706397999554338317728299947660391620125059801952782665177980761649307825299549671258698964500264694674912624496603804210954906767271093410210407387593058663792269474536028658228186027371436478773771018020760071409792896920569794113812245322435684713599038540840697978754587330011433532608958085092722112022411090978294563331833008829730019281114309581341339489162512123981194505626706192005131530849144473960859819405757650714965686143077719649293686856777095393109313539318716862144772102456853338756916998394844327995666065487061326853060189366013313189536141815254575639280343421766736432772869265133465891268014523768122486389549259142751615202730509039617252652755709040022989347865174322403330071931817357667117448005275797717281740644771758926995128046415064916536655799004747096093044309412925112896448926146993866804153287157233247181023605806746924960942223760974242574132843069189281126551866083642806501179450908913683463944972724011556499392536632238593895654808815290977957679512647062163375017121570662825843037925622573292432530331151408471053845706163832398114619411504743745377563257138305731557891541659150661021492814315304308542104198379592635429683273685836521552597345854795127605499822627935718950613591966481563778383874053754203270004896033372570027618435182123026014976277711533178279755307293702068368974529459187188836139359959870838089992496532908075608730789415380207662213733336287015513811025659261784470284932311598077179406749391403193072933422402161191106686929665811162946546083148180799000683532991505452746286606641257602068472774434649129673859095795458647506194508731102495780223831047426149322023841311822647161476232789031841175732074893651822770681980744514945992821058955743879548510477366933215388903663653734912738710693534423016407397897941518119637482733728463466383376858100137968152212112437512083654295873778133522910877828156044247707649243912753688880696351618040146078997635568427148195026446272930751318765212450737097673922240248245918281718164026613030835385137504193983958282256712938189799031194600867815366133471025881791209678917634315917746434735837181477414919735125617737768715070890920609924770346088427585569018335591529424034109220828286944962338638795240446466380743000583512705045488093225578972835231109252550699825598255760571274269485797124313152568991910592805527726490896333492568847123837804514155436915220074946116638185695843268897056862461565631563003444068443028634291585635961170120743763904980038773284313449127042598070235575418374515126037103666074608505075839013158780734030660329988498497396404271412809277201831262939163430330792746493812965560301842987504115170936452810136529272597065598412708517827483736082718375496324302121443889257392486659088569003856705283822878687449732691223889615907461675817362778237870326776324135591832309837390285016011156475053900538884221154826570293368987013885258210106640946650658684874929597666063117801386438443432189949857747784677096399715722076008356792139759738575999094117306808334092601155685882345813277590159913576824306030098927452725899532770485391400293059446137563900192912670591057102712550659050542949325088249290927897384217734920406786459845518614976713554737650735427083611178079897925512989255522006377923706652037400977692746658943200044046054737650145446461221911441900337560756821631979315361605884209559130798811673195420838381224955449383329745313506779507077271006170579858328766223696888490316885758661274510553776659783043854947122902364826952097876384320273141622613182094614215375433134559065544137015950757728461166790285550656039153440503676647831754398495563362676106322433095302997364572228790951795207254622869043233369887905005228358348690357368316741982810901837744331213239235995692289334491155941631743125678259507686654139099050332140070967204221019117390864762170062347032274096831659822904391559009972513257791346807550145871632708263334424658975774489071979920579445346438828949331924583372840648166793632327880225793493824545642532851032659594160090401107074470749274331226803614203670562314773400525715865471596660670546048382648883696370597073305891214775900838527699260143609913109617238277124912202081638060626241560380071616635062417544928482920150546892637048093586249240292703016911190030369660907364302252366434025577333162096954299373532170362948969965651828499149381805351505557356409201770434358737348133476770741631161534386318569030380596801173913422590333229441787080275507322965581867535997203364136138461165696126545619168260230816730089609981296120642901266030938852184251479471850774674824718821684473801178156337532951288947760466939237874242322056988993233914293367809951363598647121018270822780699465318921432664922066990703224911518108521722226212383092940073779553586668746321864022866009232458534391063400824784749027719035525089291604543755310234249830755811538668136185119375098746401912885953697555798286905380739034532705707050179290064716828961787057982559021213843244805027649812665706353473799336076843421608973671543549661092946453536808804100347748141532295955818577229026975826301771642920573278091164102555651630492775445545263661211925058653827949158955934055785046871865670394089096225553879150441529946887555564888065840844736744852749906714767261110546704838432015332502917741327719866520369824268522614868419638626239125066710970039224646870002832615672595983640118228640923458201440267645086056312533905929046130500996569975556548522867757802790073451430169821679034508835623446403652792129979243495519563265198589703691042877261873457722127387776208801786628989782693049409261314809105679405059151004045247216590960281543055921850457794447089511774711830997244992799778473250241269875911929404052660327775915543709769203251697994129757900379274529628192261524864357755534051284039353055769303695642226358990837229534304227745887859398101502164090492033389917411900326085863618805779973630863629877568084282243288289513698237975198842393151083947195834603869876132039877170247463948421977821599757727008223349055876792356125692032544321990097975151713976882093193687149918789496006536167637353746534836615383546263682751649690146406239727200595440370044480237666525448556249820495820384996295819257342958555061889800987517703109833105313040272529963132625606380196053387279437087710690934480168205757722782183601681894373108448566028232549995197115109824503932098883191479661899127384631361747209689785386661272999712354402809125260694617045201231559525563433935765281278896676266537375051566192344086031923202450972329492021793403433397092253897655443398221402433320777915215435401712177758099699508128920101698701122049342028454284274347034941793671638665069035833909178301260276528388830195959950800541462827187134015352336474873767825485438166651033515818462913693538419563415691166699682443244179436978151501469752431461194541354248959173682261743893263232012416165133964012974611742512046004385033821206010088167535217598425522786096164380780343876522923272077007598875641220418119082913574031219964919183891827444974322046014233132013801504241765947104135590346514416582281815959507817760607528126849786764453597550338519959433594928720602833320826096437719667282489923050250117151540361202767861848385718524275390513840943907633779444423765992772171174574073582035904292774147098940247266865527271202814508214553519776736248016876982421744924835582679726970148934352801434474940764735992662750223910323276285560772245969810688376438336528739728476275662867213250706901878176775539316690535052370710713251112187037220066141172285964542278192130605748866510555614327972108467359165022116487592470808971617181283877677599511368007676288752148063566965688616222406208988949325873793358259660450094779091753720969730726122039278392823402273973062326537047069053506867421632757878946989257120686217364510217703691361516775056908951286198056765388654252395703334327465102784056243468542721771599260133604614405828608428301496013404786878806401254962552017550562130557564945043744691532565080507164778486293468289159043058833827907246304041190617546089614957335408816304758816295647606652479156722321800469469087403592674455397327464507172674747442536723429113386630967672279891415582157171111594057035371136285773578021949846182009196008054942792421851495758202817399171630659339802520680566492902998607652828006925630534760554418290996637569032386636295228501242861007353517831354922328372763864312913265349044976837473544047397514756458372429254568806867992066647834441426611474706710582745836758290281127732685349434024034938990621112863986874532487012166366377187450505513825347722069527349799167162766891182985120085308788835273712212340315005650760770927149428952479581014041425389536765010616103719039011093933388157782221239262867585973782061893134438500258982616436106173449740866284940313207375067940152376122106679773978081938587852642060056309635845298918905826854418961480037554478535866817755280432504609275558716016790414307017895092491716146522515481900918543695968991098314178833432165304620932576554673084443025009216792379149274277869971661238215035834911978726195897802806810233740328085928509197991030792010757709542484113117008762037087016166020939945864303503911238717082558093104961866022306974534915533470393580120936414328648660130056792519457241865912356871638479935937139789732302797183297392332431456584081078286270970314994093088084807275613676905987167739217678469408988024406376315809655876176861166461164732522295643832889848103413397349236471562438393482339327770132458371598182961446522282573838410117003482240700379388418835176639600781372097764179139551683636196353135223337058571700998060570525650208842123114180608531152689121591339278736300297330750797106640739756193246533208360044450040333086817817444062681181495181536943346655799897052876496298335461041672445714580380979041792250589538310530028376777889947938003225515967509647157069597889074843969013998678595803552432014469294441896514797535860206061053550295797108372861281398790347976366444044064899224933494443561860821274823262582559685088492496749234844722076783986087173600272451288903749514462678209110433685154906043187025973245440746223482212872099502881453286461345044155959157222104846400549733992288168329298638536304218342379125926194561447425658699879922016408586198470024163946699003595435889865452646178692966630752926921715390756470900310467810117203288308947695839843197858503265077565948685800100869307749675411768452400284293082758498003747857996705649404467057165631079900762960309603409445178883639772251211367643437363820215732837245777946190413817455510999186034524229116535619060530819352890555759191607385232980406781386294027591591548246465958185330146866931995300465696747694357738964049455975613596330855555876457701943493090582229869960169718637834001856276600405542421837448889392312306279638773702584513585756167068533202719646088384909059969901015848099127728467803088099688950604430669693464305152175031426438232864029472606039971916180264942170268799787701368532249415340093955826521002693534471796339482939786506395301546178724614734558190646527585651217010028249214706256850514253189203368246273292689750993249068993497971334312444598036743779278203227649679945965099968212678283517486074578027161071278536682697007312102507816079223519231105970806172353373602225853620085958685316568102527886166304272420442724965565245057417905660518570313372697766286452066232774229302345273547200117993638507731198927684338639063787329104706835859330484467104042554859192296214297173732367005929082356018811964210810277079338371449506229788944658748299011180978183380698734485510612750963861887621197488287426572055716124830692509546044852182861084905295740021885502319362167881274453006270169642134985616230203993887923131404192702219756328297379790989006923234066323348114443378420603682255496672034681643046632119283232455925524709647011511200813194291543820941958153103164380408038088199695222459144401475860574582037678591470232456607513971750528416086863508200448971076378363882615037252912476001181763099864832092102856497561438273353253806304744794397920696944586067510346108012168907354664502360716112643626704518830608021166727473622558216587411673351364622470996515436713486708534921315620124386465892512651038817567120380260819229602338389248415672797952569550744961952950046418752207223404593311476324540900110094318716844147101447124995414783876168086389065985444715833336913851151205732929368523009499968581587631715840516191440227587330404062575975377854664671279722416961746090916380317769629380908402428499648923740776068227879703296613206180085433096868554245967895467709449318869761997668696540055213395841626118997445376880255817474512013987425689944112395279451127342274777849039982961884035800589895795398817818155833733547526661070007947351438694819849930537981309327663745908888690403870390939259687319605001273079995088140776195626714383882102021753836537524635401427663893084813723230030560354739409503162258423151232128403317468660112949384642807866871803431941521383081100988961693370996621939468245523796310926615468984662571070022858417531813791692528696875856714468154905969572626312770295243367636054843240435611074493370377437643346581245753498593053616453767294142737367843163856359259160948831396039490527605090682503120988771685027764622582535165162362245606768612344462611786911251742077292830479450244787723040610268327352024513496527411557145960611271648583300421156366447698068417408320383337016285439617661383265070951372509252071680770309251271437137199608539399931903766337606267421988104104612552442223030508622219241417647334045064309632415055604366878521418542648742691698379753048960543804316307121194309979891746825803818464484303189643290265626991567445576960244082982702994707715146877698543451583396125026232714532960945054368297714956594000684456085712802252314381984858897116442404349759452996789446341725136442699644143918373227701638977266358949090828766113826805205142031820802906751776261900667708154001655549401711262538843252307849426394136053128281409191408588633101988114071095358091623913249567269034833555838958235871730423245848695039082284947913649351772593885333152834070614814806455661165514459122671913834811752175081619097229297803435682075317466142812882708984288304931233187333985772658650308072988459861841500284094616624422164267047339948227812138685424767177705783994179004835555332540910421272074011522211404820297382121305733355410475792109853122629664414060646263165443133127637330439842655251657782173341268835901437878239600781493809020934448777714277802922020675566119304557367297270251448978434650962525086116576705242920074214368796254573119825497316031243221397888726466892538396520182253663298661352807958960684225337290482565275535223671940289045561691483419473649610618796111425693143093053789460607280759875238256060693544701911247078589601015782616805039831534904982622172334380232759991578106607720706379987130523300191980925337329015896185836198440875985661790839841783970967081193443042922172973397794182173652053787533594904204809975083227018228777947854757179662671570602946377142108732392589756472428268208779299297165310396379919066770562602709048446322362320185681973931779109740854026739276159114723636720127784859832896014787938819943361566983953552941749350544901279010969178658585984843398292623797732688685844005988968346645420709638249105416264934841296585191853321837407911901439544145146231724565991225623477572933904371468859609571806739401437267304845564676198973817204897407581578890207931361967613891630775795343466634603616693525206573530302957406962981487158450310146009230991708961809097876780740461204487516194647258505589397803052951647104855829680100566098980592894905052854796132092315076353627090335699077130770731524158411319672034640986527856961272338376749193825788682297037524662737255660632829264534979484656503481769578323364584229136367045220982648117359834499914004224919444209321920953694969941539424276850494973449195254470212565409069618245901172164356471301719043695790893665852267539177791360923830522697418649032230801344024313050381844258092305667553339241799196143236157000950323365438647920126939011233817527361923545536790665373437830428747672156983385931047864699016436519684971372343979913939023011988674478688436758536711926125082096464811648128883160004317903026741601609855870232326444124423250801231629114189848132783406372181806185204188774267349716475872453736694018432272925266440332920020803854294965034560546237802836434245967108305302489262214297774272033290568959009495625993577004247168822099844612592577611928189877114455888106125636333250943266584844372389688989349723958461598147297341098268129911544621014613320566476839662216188545470009838542311905852644976348046839314320645283173654345052576522742636096539026098861166015569302310359754739684773170625946719172487306775095899124904620036381974804245535642098847383350457581792197718860632741511068748398743644818231721525543865418692285131559286600964773696478510849708510145215902231903762400436699762603756002106727368245256377934368080541696257164274656477119865181573548874118858239737662500721021276178188244603266273896017476618284094524302383667233374665774049701528652069268575049968511334907100670513020741133639980379262200717324079959076391122961583245345458411789868310068803530778092454912389840542550197567710009005464784484241244752767155730733678260109339617031726130305947094186513242017164228503276960093403372675003160077606413190126965410270101279706850479908959712790619838415886611460063146484279129903987064276266728097249805680637861094011535549285989231554007405993916614839833184770141273440691225298750413889915639222821995769952278313037912060626858978435508677488356785673270889537697972268329972628644312176438444136486599161880801821983779232904721149692847402356209291277567397450662156113800785587180112545788793201869248168948526571593775322975747180064280385193901122578113364245840898816615895528833591909048278859535153762390781212885345499974510763263208496495170026236653023496378670890028130762320682085039596201440914704539175104835402624324114852680868417214661528560923121077371909853023850978788741347949639499468782196013542127254802571143135047954643184172685668679436678540256175854261497393725021609973089296796131743608957520588781465833127426390791701490034335415541174656181780039816315602079598071097966055711191009047374965799933073758747157439356515053033760625287644246173768849422687751980255713753191497121566239299089709611250813951603705083042266741318835480384073857125172933619223851920076576166904229059018682674138677564925663775788007863349788386833946275125259044514081036577993255247937194649081858590578896992636719012074681458792753539580353052414995113251446956460055731557444960125708761932056573549598629753989547703859498082014042580879028372727576815598438049386411763143957744228779654949856909606601870722720514813101645363315033091216951756358795649654869288474915473443482585704464222522014558231170517783579785253950288265266430793741106239419248251052229540968542437874329894797798821664835072392078125800401982638346249110001510242973630260705561405966222561170700356818027755440452845075841309719975403296190817400844186983079263263788875384597071436602922136711856858814673218674801619205454248541234767306810973006023966370277577098406141151243714090155489663981778585783071161708165605465668966925699035916266758638764747155512047502369916968869678848260266238446881651290011408403271605464977636693242516197514930016119171368357229819314827760390273444101331237860085337498358862186498594668460727306263778566169585448241421961120310601251777643132871242692759347561881087526440262264344907538987017185951393295061869401769467785582413786261249937480119926157167832504047478332143902890582741718323593348901422936553472694448634114283958855559697827190312344261463748837665013604701347364910009101954034261733007938314027017138867715578683423666035755698713114353212535178366208359830925010180705115890858929351720632720555839811412221435742770535906123692635177112853487434882387702538691763330063500973135563844435771360106440469044385597164609138350164531403521395228885819172715117142254938825386910387288728833216453831422086385053010705907974832616149961401620954295023529776388385800187007788211730482450998450005178257530667057900077633777795212017187751449915181154348600901485442902801786404782439282850704179348200043535108439659355764690388911781320591058988116827170469297673941432586119407098771163867119538365224995328169712386718971537657834432090672632822367489006668056906927311252865809025656721316975548610149826203843897664467238050018170042730137285906602346971996831413188713842858406620786333390870968587817633473803468875438621364558583831982597617775051968046186526254957245433236942490943832939722953452039348236241560357958772442143650935433045378197502932799137799718413355147309310399883234966899654916295088460644130555927803731963757553971179049618484482755475594855206893907354083246154599909461851431805947560591843449489568169345912084211545285666722240939070643743294840269577034168011628873054140161013616450997322022431333365557020999182029970358814179475172026556264690303864936244655241560526007672328132395480287067202268921579250994303308734183772480131831706999108697969714625466195175332368969615531248833607737593841522733872840087224085818897388725822587735216978337600812037215590969665910244161273456045018992047424551158662463469920026428519792950383187241328079101089976208859199453555115402088406146305163666297655822453988308245938751161691954617242223617136358125143681557919158723894604832292542170000049745049176175687529074628100170575258461135171759090677324020877191403714307571326039245738682008449945924063833556529985987803023574875615829525375653517530611486575659042645024622927982692651500386689875291078468463635833515814240513477437905593267366039095625251434579135962756652209314505104334438449311714740553247122189155923513175450692639605824177324984047029639920671606238536292230760792790852171982270105911588800262883421227639354851930531832970366818323370670959058469536098370561168121998504210398386901999510946782506338908703443735798838399366727018310044001502215844966897593676518197833627126459976608440099364423948824852406332713360775096736874986506972014337430606882252991720353194541594008727240486095342386110223341870919599377051195471484483057940979864415452277871476412463747262703461504263382534126487534346113294009426666070092034320381635282084169783857970097669341199201583928891078861754141710448000974699112866259786253480095017879952134473273712790249847809622130251693604558137290538038825018128654752977640422545099120758869920895302014049264914037765529907532826132452610814297516408671138230345583181122632997073641550559034362559566327012813091894605158387375082140293185618447978298827801975352978372383156856617430349628283362787195051692100986787127057348793891978604759396161688290029951598706533001171235733399974610995300564515874132847376133050790124112731599949350241116735219813697365374632338888631857215644521686373732794186146030185553455851917533488264687592444453621532978837465732399586272497230854107467687413314617608911605574667813349157339021168695497974390845390100229810882440973739836889943668167107668517508447308442645313931011603948187792713519973888170022524040829809816635274030885495062398020198649875546261493602002226574450877011341697780101011328201443033842589502014132748955600884023716674542149209683591856424922895729512698628473107666309987346261781098054382881483105964737527668836972639586627413665694963587814963298290875750120186512759677096515271792849551394188282994308249865066827143460396983908059881886070993176786983528095013171684486681091253426378030920059090846332963927078837897742523524514280614967790263679186411878826526162103092325262005355080304675442641898888838103504164451531446055574495586001705596544818872444092270649948332315201900249053879899829521471396524384297540067786085768099460495649350242252956072221875574899147452459657755282649831981960669237741749961987239075342215688260782215636011058678974623049505823753727852393303141640094967094097037404546926625116437313682645786587352997120486296420292883657984991877007795450107819604535823647489627816747743287601010997911234252426332117403908886270763223998185659169466574287990931792393530589017967855519130660604529401469866642336729837917026780702610763128843931166217349028674150832281252272469784736170251361869108402139449213032501823801888016098911379976520318404618819304649558317636614427836407594285068367121807458227178531269774011766091569868852899823784695221832848771636856816014874323823904860103253389688150248931550004221086596076036060413153201434087315701640089791109490847130319997556986846965567422480508459229937256789368477264166578809798550094405136281071331458741233734280736305547850857692463086889870306454371954947944996453327773999655783795789600007382209939512567092327876139403142665263821698287779551319963340344290475788550681029825543861717754386274240982915097145419415591108013954060058921955132024498148115950193072272734273371458779876914715731754664716577708762274351654772972353870798760040297493587982231420340909083300358475999268595004055372660606276452819248120298258055411963315645843306694365528032488875437486429157912595544962908572381841609809725643749574687531153986732529591429784307139993865308459127522700966493980153290486715076121603375176977336366990901644771805067657980845039554425779345062979743236141108536291802305149173238542066456433845205839760077736053437532870191199557082041628203822719805430503727524719835628222026300876603090501137587211536730853200731355224986771314831543340314640315496417775167675943766124799986202761210450456833301828762122948736161702960389784773486795551208868076031937530892512107263593066645381369567255775029009578192777561957371154795920217510633671597280580587556010239447302291384109448168860887812740426667241297804282840593817386615641560142493793928839977504738162332380347520821091206754138223039122622110183828587484009607902334156421201188038389154049098201840491293731306126443537930112008362601680356805983604112050491950707242471193002154611856118105541779171561017069796740888236275096444055399402316093669905726689694023288363897811703661920934229620555048313737195138355090033162701004458479465786130440325240331750228346289760957872053499641601370250910655865298284079118829905182354313505818015220253096742831614109964999146860119051734812520922631142979515230716072029577117630715457321343801730240487745550212748910553787657482119849701673590444382575876065289198393152669856964400195579832459235941157643670398822865208448075882962119637702475739475834618449654675258457192869591083115999797398389967698083384313926287991857941521645469464122599804683892141339944135470783125230822829070452385942887898346022488688781932529121447972622533615386790470663831743254880064650125989620156110515779442040452982524463827579227817355926950068545392607549712573634138859101727962919689216424271518923026789459796929692163388867761460589313993440610002556603903220336419434922445108855248635627306706416253380129421865241255276152020052324568854987604253412357369673172775908564250238020782159639592712082763979903820295895303715192052202562602662492361300226987866495290712856849304245630815657962220482261321933715092699546367029571315166245228463590476917719091690377420964407689258009627627047980523994018303939374811154178037266330884875672507708763295941071462279963435873042127405991076699763887448753800116410730033322570929178292737761752766618117718863961583578809801981140131191370981069681966904229428190163662534952536146628051361215930101719848513142930709599974515622987402525751222968228508859723902149372205219470781408014869519872028828831461220502421320998729073108201264599694220452040365449600043638043642072050325725013908882501771249713537049360826847073517436060987008739927828650112451925582749326078168555741096171037150956431570657662497241025851924751957794808284412757596645623249452490686636289874649731478676064873817986464952586741876474443371832122433507512243457977393695782699581655807800859877182059548806025169110772256171950791865048893700300332525556379428539200391063512121934922038804241356107999017601123350258197436219659253246035754276608806552056715400761139984241531190532479379377383574439415278767430283811069484058039495202323412334109413355511681948511639996483416760881987731153085941953811156360747988517469374495393639977866227164442928003894563262082097343007788418187547899138958029401803318661854499146328381260361780744236618677554727708921332939107369159725882098732926654766106371272308171556885943743720691191991098084649218248026583289055155269081520736205219729320748176871008030140543819388329502665079877251170321020001681166332867361308598961993809219054187296031738145770972287746762772764729651904244458320511843483612858166972271390772084933269693085034459025195512619918202680128869506131664129046799704026953538235777914784649139835234556687524398103828570142365805767219412873867634051739120923148447734118791665776521842215080030066827459969915466803192485357661639376398213620376203935609403267347202760816957917224825913631576585752042408519910679064266946856043484357098828390597787892339056026031922866496249816192399616310271222491493089989742607852837930574930587281600453307188326012688007800753400679738099110307971786318343675729818002346044210901716345197455338077140330128818706666788269866062285812807474669414779256570498405994558480822287330179650176460842750940621071788205375596234360663111359709907221213632725029984380636429800139564234091693514724681096450752058341697877813184455646922348052961692379013110206355146345943152953590355465224012049392363968441784820842278619609735863452350020496485637588892313088972460702341109591554711710351153659296570198932602903856041676941118992552811050426834396035530132900942417386842396113825561894571639889407833018146672776100635412744842499750918480120169182801438282270850833244825163787682955518171476290389769432878681704508650916681980560787829905895972436671491799085909742651128511616325750381705494049381120244331923128030595835523740362876379866526945555751745618235979429934792106171149246517238567222378542601292100943142014875378286061703268355484516034512303982790883100648218853321139464326803250398068171973487843973832559281998124042101347253252753774842493677756286945533153007597426388040187834827230061737464992535161833681032639884147647281751454708588705775066944891969965035461572197794358192221744974730461398970625060755188495435974046200169335215419704688211774861275172868281175073422999495726027756477415732004970661703741764558907887327214928847417873662413128865300080362329708953857284771973480212273084373318026596788343504811310493345600255684597375668774010620364489932543838974022350019478624328402121979662943845384281521333113876379305215582055713441871068482098975989449985307135200818917991484820983382908816222341057958541999537132431976856211210344412621978061653038390470030451241924646926836479312373587385892223461479458341056779041496906163450829519348631954505882690276551759475344155882176132350187437911429260808405602240259825424916360799720450849412188251459395426895259571472911624844180283247397240786230822974237389902229206781412872491123450266281173756052034343802422598392563788032776294428795488346714680951110576541130016420795065555717651635309499460113523456070910260274484673873379512100366827228595213861617982978203936535904163966162972602173495820695894535731804860470004907674620944077979428755442232962029012523150899643026970295161498678887029189614659369623645257809281733278407591706857836858597996214990870649344175636902696024743144920020474578597650781255378467488988249510566742336911391965477414315635691765855396891966542103644139941070198787602233378649053416219617246101213304626253040387515556900367989674709557617160329838669132724502449741560807240858620658068370032277783981379854305882465856691785030754950155410212346041031714226999792191326513263308104424361484052344846625462750305750623587246513973055673550565594316756742763679676580033192776639220977655899002505203245564138249683707254257906243621931969443849763205153499412486546233651273020875996005441390541877355790909824720024504331086966235083872372586191454355141789411773889181334592194969217508833781275725635209109156436405308184210908006698348254393324667758700889181480376834322182853061783764838634950046416228635619099676579104074721405694055908442775735281932758688031889457649763682618962501616579778972883253327900373604130740392417281437279307752968331883227282723852076337483688948334958609116803921611872267700627384534059163681775034896429433033795756001055759094811092347629007930328518073361593658579797580990841889297487588591694402024422598967064660403556776944632040388253241142610022052421898778236458241426063660446041251817822678802358896975951796454531811317831466387907565551636180416596667502285162531220591495975655749477279665496738879365075159558166322962482021293810561052229707631024855112791453500917702628311789261948475222956614400509396311911385847521509867351961949156083090954525644087415602677389941040130444657517820048644219833985447318785541873688123496173383395757539637158617938539866979785105976765197666030371710089149384754777791501726004853979086692481585757078507773530460732132221059571304758691514895248617018468734718383176754682946196176093100528352319828650171947368288958194476663256849787152524311030176575908273108543260963686583578082044698357506437682316944959304252071865722917626807394429095088714086736208401154466045038717147116362817773560869350093752225657411783090054763612933096050969247129360974630174233043861249896011414983176092156591527150862911359138845757295908039738373981315838572898854122351644052452084311602809136227937682687159654937297264208256623463085348991382670680856310050212628158522736968713985053602100474930200100744804600925247266604600907179373040202039297472951791796553785230851185674097711438248580725625913731635626535730416860797182755484036681131009874821387097107781405649836250589364186340432418376011896015264523021777370599064134246379934881506704505729618892905667012052725935124870533847767568653511631106483945232224546668744688033574715126054923122956103833749218643534730054729131759463921851506871082058393064660191880296302150076946205891298693158451958672136094405603742123363936888304571747248503923655894186178527262029247353281391402830676372480140090004593598542771364775722547269397726949446018153082870427428534071483156272251739692042021957458350551419280495965393880805115936524314253708536348660263414999069892392606608340300704515098286773082008555354205725367697648832984814249540597009754375940687603447262971298991590264271136528423642617843024310870104529473745991582344786346123379542434717744701617803669790547813178698298333656912025342915081148970343480202935051038750595631942796774883268499055638004487713425677114064365535824304800102591801113105510606258568519259546228038246653790560331094735373216666637279972409238023994650946229271915012316826600556529777904111541727852694315735683245337754167150373977577735127998972690341987042492676131315430744366332243210838319594338602014508037435352063724454052200759491861209026808311711416722170782084663070636402150334648749111007149836403556300254866873015672750571111215863630350728477816234882623080797996703461870092126850447159762046339241915619131083469503599326221249501100646148039868003367020315280905111849397414511059319810634142737947722260117201410829343987382658922185866542282256632212405076492989057638452457783885517615898916950190822383690140723413963865574957582319235652132054106013420957544131239610037579334500867068842628370987187496937012488977774836030118826310161893275195695654264303207871186628656757224750374525337289834490230060840705105701733612423282837048408096164735860286052915700797664091641884993585796506286934858439031644783667613980174930167948027420035412321431622044297061629939775802046959211114272301765798220461261244015692389774005580493473257694649834787473918671232104685605990570853367226953850158604217794474128795047089887672806540821151980682872742491446190458493605788313339150054174553998520763023880644866627911983400356629253373927980315119594368206849361399662270075442416772603225293488573277346453538377130631871981918601266837412405466382370655723764267470583165482722513900516818713920919742635215560401165905160789776661073216083628930295032372430869748007257233993505112617493288916699620846896019561322575435999930129663683331867200877186632333224545968708340094423313431307785205621288974366991015989380813442753448063180426983288663536840110327056711858000798331146806025162949977601505266569771976059440219542716197784631292699246835823329087375817487239373745496005782148174653317785907287132426488012554326233099790652750181049932083787408233357565600160162278693260846551563166623278228100852897902730394173551800329792040450427899718287430263226692107341459349542497755562459817055553300063651065687294266551677250117265412387220280874186174174919360503801272840455771189847277536527588542206106541994316492504238075573424573819075248720385832315837613720884611114186164556309218382339389341873173663921133199984594797661162943040990596325356123166407277112293363324274347801935869321919387548650003239382590945827021281950983141138088401865523424005603882049170652216698439075119535432412940265603215377430490207974181555502415106582666468758010099329456163527109957396679490677628662982081223373674719719074614341307527659345606519983000152724282491173258826265404092257432496592683935410744904837953338477276570056474074701975031354929813963987640410045694205243322902369758934391477791198055979125486307245456436439483020438881092791462654492854631886823444506090457318701630414142919701969067610803248921260154103990173281144028255656948530913472821245380540130289593258254328143234788393333067745127473507172103066937919508054242386599679358871708507875126373766961280197175870393805210339114339326492801558670005113210768140226556841200273021693221377917320203164191965509901214790537948724630061320621092278760062544065238605967414170595391706455585645898284322069350076657736519918554112583471347024904731128938484773962457257238014980582973639605220320992803023893077535853335765860897136638785051256319079208578497673683542656573768586034969822967982906178824847361902512529256269932188072194935284095192833580242359261565294376886577304033067539092241451062128605222169020743014408146206260557212183736856658711671503348336912044537046493435548721843384000261222927483860415103793439736010323244898675833545230821354538624459965369261932863152566738178669008929838578513004693462059222700995615913494426394705892087799136202079852593998815687943241306742376390460172000514408375731609635732312962898909806801343307181373387344850880068543852141076758724411330832009144449767366995381790702356517291367465026386832317339458434552892567454016986346198523763519531958503956114549068906902753616298876915458243690611406127890312120788529302306256665097758546700998572220272876122039122838487169147493434157416277940272292934691786189750305363151294471258115603248994578590168371017759010977628358931313643091086547087851244150489907017153857905736955731540223989741222391149314212796037313438082125504237646000483845243545200324530035196410043596444054395718339509114892150366835043664256879756572634550833048301176146405793994685741105453338330830716134906811340989443914218940414834818321896343159400944603701698607128883932340164903105750723491531221129195686768955145766162235901136064060044086624512151001056206576958401024572494929895270162294016427233912914330809854284289244127326991891346693457498524351625726436465954910258427345574825730952676656138835195706981436537313822383028192179012831180506870067907983838332782870282037855534366320468610631354821538698909771950650056473697478380812889363326128046912807771566734756863504254042344604716938777266405045613482604607503897836586154908413770091242256381838277740947821972002615405868583389205883367575315711590076635178497951349688682470634921082437782760037705076002549197759724462214010621455960875896758747866587206781364878210932482943574703668474975733567670762745280990091093194444181194130835085828335764676099153741363612636739970020352623371378571521781788931498944972962477901685550378490633105820975197022084931369106285538706611199957032749790518323409958694462049420474503981934824904029120096935143262626678072927983716988024809226142320757579131864906010500138511544513462585233277327260985681945421494427835576893440724620309699439071114864750494626561831653150586213545812408360036545299893904768674260118076570085727010077008876532372008983561611928550392712780680191898060703866600514687667051784914130769339850591500593995938927763377173104977192568057741345720484570514246780762832667029681153407837403599574940606301962402035364896688607715827708366065171357035116365051393725048554348194262007503176035452434213630271098849821473990493636177012787104687522409508343361017807408900289449088919726932984002056988655948560763531493534856949201898310947685883731160194838239351923884822427889410770838781969968089401278002670575041053661889248081000146545385797462498701636820390082556465551431509516542990999975786904204318003135091343568761965996474361933806455503556137079296519074587050680513215339830233485365122692378918200645588097082133647368115294118677125320128976085503891336143542307620135310298852134353423175533088124433853467929151675945123019561330822943815577326376532672904095439900252520908937438471314339852063820632657115528320655008882653213047596758207232631300646043334307136437140967558641563558047284362421980222764347538746058411648035840832426883891708887099970737428313278793339219648890764529126594398548895516840041851103685244465115656787100652098932757044993114829019223570571246528725393803435715247172526047620551530110527177566234423629793897053997100131658973256770033659081191597760400107366804802613541749395162293764102065055627776311370877591822882766554480385467428981680956497946060927096019146144540772780530124967151294613065237553749638433556188668780920830512272846273348810233318018163466749909825178552496470653325352975667252728412388049901775113209831604488727991432234647508200449617304501269714937218293303717592231982402024745528090083521554265632094262823512357583743562851342391447688898662137523366444241911520921856821792227990853172699605011221146272611363254037285886631221635264875385725334926201782393482891899480751339257096316854223775183165877463411232273490405576935399664892546742563406517165508753724221921513400128801269563084382113953071848728264770045546094736211773558107961954825949426549256391451635842392713492289918314234086502239935721786139750272839189581153460739633198602305290266321618175782198808712921845134647724204522555425658117443363142046992128152110057027371630708886130287122520603632528670599065236565489884514837921401791109810447877877444246847596055684384002861615187291053542266660747848942099489386734086907749812873618470921708517667300878504552469983255551625982171894225307906506947538022685484667270726121553987292728115603262444591632196915099551373259016053769590469706442727567273015552548416052815909755444053344549812360746131375814248125390398791173054301693692383477732320885045563049926484593441420085774196232744002259462236550178683594316810466370882922919324687420459172821443769868822320567529061773913725378707312557641126237322625072678861389693603863866137019161058212675523251919426253840240221907041109353483553089520671955796291886761741730942095227329232942235945351444500551559850601027642994016469908335904361044570213464586488426553912517436791164585759077975292380216091776088222366762270043447642666418982038741382985137888858454970038421994774837459062121311855439934413723337282053763632762904948207665607177101450442257517666606532965131613274442269060402885012760553614359283517660351671122360339692827026257614082944139537060178473791282389751692527895327473507095114979436503896654116506079326360751391177819682285659648900653451238551436981936805833510367081854653286999052968245489489615202416839622308026629155242579111146995433000675875121573017051068347447346265950311844415441419023982223107678453261749004423433108193743158726330358344185592770945162086554402581848215973473272546780600757670381616307460619652044510425733935110313624620657947502295105791227182537853752782440945660569216575034774924679768982572701902842082879444997008385597220537691549266900832027935818355824302156805253350186158202143318691018658620412712725186230660037229667932751173669379889670815674694850986107135186001888437165575736377165510460649151573426900303021919273535960507851233964941330721509096418447995478654520154152434384147686148489462772839482653282454486677318407746935177079114249443387977540479311798406010939371304784544361875865682462911143679257448217921826915858665691265781128923754166282947769939836213057184458807737843171703854963448858041093459635810935048266527066010548600004346659833781344940741449582042303674157910627381006042797917222071622794563079773061007451949319749338024157865942594377027199891785041182000917502326285201238423148309648576651212739072412919373767672676492134025214027731984872334315886917711841175590975234816685977717960159535981538341596728209121384079401751485581171570187618852544716456920034072603875176265923586627908115635720850328750073745419813854166190855054646716919746469197464590603881977363102599691550680176679277316018278457677381885837569546295364352338708575847724352273967909302135882386526888699851238563371909931562686784020488463191761130758724135677814223431959130298430309831869546350978798719333468318204186865243580651937708250081616624975100155413093992948188649797402656481735078694244935146972801267600057155989389979843919105130014170406244446556175347807540409204174770896849197257172832943414184350864494504958495195937390293460754331828753289100530406027099930061641593661846128490091844677079291691003338621779902056389813178604984551883785795731812895018816606165424960929668487902275591563193415237931413791970058432826846580385631532670640167409996300894489270711891433063094570454815832333190353510502506733627823968071199743358273246237422315077575552812471442970526213452597619122377179353683809030479561676368468355283232134149421291286507369122761614892508667157762907304617076042063285161604684087166754348969071168686538491406278034332651993109932134825655461652892448276822440488802871673371674068211665462427576771157587682444014357223644402707899217464566533249941974899232469030397919409343874945571378171801719902976149336463568378935813371739658286850172517550381121893538386997063014464019500276265908280904515488868993650483706922879159534294426173971937442626998619845438770918924673202251706442611903559135371752494918952220221284667931837739178451740242927183226941947288614031742736845825737390392196195483871284212985676753591574193304261121812608382303952710620225972039591854878727294192843199826040581409420280241494085463015771944864128088428291343459681943957834266814272573348230879625753753445514743181624803570850250577638596502136525879290035083118122983222765884767651581721374507357619305912851443640039552516943638437105208838526339109290246219043944715841412723977331271798293450351258935624876009000158245356354149341610929296635040628136856750973546670801025472401322010147538974039402519292277130563450316672611545910348945525058621517802593083822239825700666633085837672778473481495134686621645738668915898787910842772851360841641469560985540651729220076539312188262235505202377414276691214440281959956440556807160783761493068160084654096429284173683743405869445571764211334117669785066806711021166918794585703347744468125354474632592418063807752475717312284068179138489361006727360127537118545164846416625680585397011213336668629705087217656971567831773559050648482115409863717821766175847207896635892760405891097788158245788177355937898888998770135909217799281253834333649957930906544806427250799517831176945528369513117008551674113106716704653377663105231023441202517312227363098389270290277672915016575600376929117496545569045977112278797199013364984157538679609625531872710204096254939980105592712591897029054684195753928685593714714067473295505517358019968283538843884847009240689969166514830616217349563873861230183874543660029375779630998615822318112446584681986473489280172236471147059236126156043132838793928649026150172889540071459691460401761904250035635298915916567748253808169921427478808823903410085986367950244664100658340285328701854707639963315396419555692195986248690954829338093811575302650999727888590789575293650594810118444626247573058691525005705262680895939149539370151481176060156627707988231146988633509157183997304639377998350026533136408730602034241394501930226468834654926527137770512834847745545112196055319455310106723524669761064207530769501047162633750346210731526167154367045907608631637418892909395700586643254874244068827132150480723239697072742812377972124446631195288491828231626978829347941397760093743289336517393482503514827840764407344093517510051491251224671407212501743968977044121741623119631472342044036567792285496713690561375802238199812708113460634313370422849038780870346186779649834512471527496645805353766328676593512645678264697391856881880226634929089758387828022345732177812214211609800804433464446016166583986847162168064481979279088959059079752236373983669282917140665836051215402911375595876024096133711716174886557473347970028420992428263333174977134489842147927275331026908736805776843587105526007440999513547170738670466493958782126598348489525906741968688879877477795603341296615416097998629143018214864423330026777702229954089236440956898182331760942870029515968971088491501670798449955034890407017092869013175259668426650956373665636444241892347075645881711697654450711019632912750887843582490846719873804532239053026831484868441718636021968878400064888848776931567926947036839654591382373945921376427301373591039232659402731091889256877300945591801526710032958843864776085603209082004993552024040315712004861685675128499067046680154160407890195098024926031277143918786171584364334342904133385943388843318556486436460847290945737655121719176016561904296932828668923940341671095984197323601316847043592980223282283070709417383820617060876955416977606169867135545183604948586803959414154259747258358455917566320446285896950379200529577929500451421279797872172592213553931358077750626465384760373985818068960664478361956774174914382712200478654202960487161621478767703149645080862299030831680400943476367126977641750138392738165369636165181165772071910001046798738147626669652655097662149497902893203262417078550687168681319093432742631451214782949523922722288464737245462913186906899834122357596130242546677462583679683275474004779467960524997394619215730096465938327157357702357977754616139466386570277223316342730004019946429186524840444914606757414667743711769500063777540802546654286200665026965023110756767538246776859430043065657946722887959309698263041786376960156034875022753356644483665337910096973539413599739554203679628504107482915083275128330817720030060617674946636542814861637986046343754733637619600294399086374922322804306114037346655237195500068264383993167264738572319056499982026809314662246581927076316714825977170610788161267253146256075627385636978719445740340548423392849986882772567963660229439197884186614330877071619850925121024378156153402068845748305273302319085245514223510511493199675924456694880625186819475836138948743288189837754774905508423528346032797704244548117198131636150514098109012502845903530104120699789840144258266475443578234186459940669865529476518119234471049486748597455125294474974443813529079340354561738373699560971004583247599840506977031377062049565680019731943450225832239773216378202624482811966222696324513914519950683722503337956275801305893580254540402834011452832780262178952237143582904624301088393013803457652668609058823646668753317831001726863782912918743863612257932617008725115710101272669260247678403483885490151102634941063470586049111418989784692215406155496166128732689183531057010871826934508157022545758916529519225323802808688840061710014463059140278068404000299616797458887116137248301247901299470840208397753144188745945341795230668580337656076547101704395539183786771096328054583204564350114203743688549022040622393368019722084712163355280433017895117347329909996050278313836796331941666429714920971624628028208779342925230339681364452078253095558193817563712765902846846514737437832612238403903833987451059400760926533980576562322762563081612005340704718395736487003172853914822829159903272850060713469898776170271694796803223077996645580888331741322782272064612582070017861260425992121957409813027179179394370016210932859427167601205666149877525022365152699407112505457125430028617416424687316026134067246844961627142544096357244778586805197014574834421138186945646711828981297182248092039928323662897605979641336860222769602625886464525526494830400282340412040174425511175805022619480112438449520563006944303675725508115109785352575213419154161108474777121301155745662580365881877732432497385069177152445109206364809232824932195292031860613961452944668730001133589506440668805570477722882199612130472765428458827021536997492800667950816494862400023141236513338044930763342477267545896036884134421052352086681012749682970661009562997155066078375801368054545541612484277143475327653883925841822839258145640042232364556916124348362191556344695257816471733649284237545209072445977548176581259366371886112808052916368379591512554322802820784712973269375957940647556262692229518068579158584162632727626807616683217982439928702476485579903210221636396762566653930506391638794838038341199083532025455014799006980872842681268138007511949899326337657143807201887141093982459002900369858906515083427526627792705572600796746060654535105151993357271390563014118676692902168597905566372801394118907502778264471361311664150842331782570666067342848030978376738417663806184144957951342414848267956505701907245231314872812285656463735350267851633827246562689637085944740145459523189381297061058507643508044922033622550092097367546924292778719226068933047808309086742220193865822072766781924680235010186556310763707312219913345249008202910705272121955188181982145241587749590221917940534752576382582558724026246356662997564448699325822415120711599180286928834743604001430538908992433384926477496399148716916895451277681156412713088799390840155036988758175140390216897220509081820172216556688205531713474073004902682972343493335729763374325331422120628359258950323886147077984202722397833940548528013966121173608996343338812331355954919218198191206964679977633746768392042290726970226612723972170299758522220727517893262658482842333823559904878760605511388315975297593322379774354036616145494639399965644522664010067576338432991472436463353671537382989486729200377948547027413140369377230789741338622530197522867538062039460207243514976899032215002472883802733898852187098497777499798985052120930957267191896004166682356362628545766949591338736293144475041062461521349004473179490110276983463916738644626742656754102150363075355028960152583392083164758989820653258365430571728809716159793245311005460050225862641718608399559452680603697525312827031800636257737163118581650735958683566300682689148602285594235333911867581823998879269100401229601872597846212600376358310840953884742455245159649276688416058969092621483838157795260001495719564331224457106022392267192483305862903600556077824604590178009801149969169689675700271306456286686552637088227807474956925577437920045801037684740117338662715758320171249084264298208155416385003703842884031910740766691461467718510660404628995524560912553664417781659836548403773419140888416328863729667940211652040505993264784865468732286570222808084895688281931345954748689203583998036058203610267137299480592730887905324647099323229470115698816235637463415033716250128504945451950049982473288064536168585278980331632205705992589396674806185479881449757024496557678957769983341359439429670336296160163975939958420443992491099303639669985139787484092468870484449632571001690498008320381512924878485248691586801768398879146235368083099104245461407002985935077961617539725192147520343168793347785180969330114023056607875619988354395971814699774825126045933735439325123891510736034333192489352278380003875491221845449027263958291567589004902367078380460100430088384161982069962684205375880737465685708236306312715366204806181313668088541286305584833661784785083642226692065380232658867869581831727897279311685134272919433752436558352471544975650639154022380918713927861887599839393711523725999105736463595637991882807540874624571548087290356517155201330229038511372282342814338798044156379459727108432695993668403088965186975837701288188005146328488544047533814687130677101867737803817444119147549480825634240550243001973688239623057329948648184077779893991640206632462487918761448999397013456430062512205055979140998473917844556390015212891181868562177151933931416025505448032713536390935227665602514057699967672177425612128340300503069986765136944531494130944886304906363219081368390178035611147079219328083744226660065940716692395021149159443757245080844049742453104623691422524823103439197749998349614907421913177632273670413381667576211535488453576941447161960679542277106174698481089154861202799514469530231260723808040574528894551780126463493392974443629979476934117025039472621697782743375226425394717671687979425622910730348462600047838720955735950081190418782910887796720484297115338944452103424505526109688411764153702066173749624851530798703034700228303695115280687833254821313172288781630616709651045398053566591141115892217645221754191879529741731779566544056846448642222244842456818657871082931272161817259823641023594330825356489623908460583291548510853271606852554046584402113750569476036338422836960714400520474441790678955262724328084882346535031444847854096385955288127779977989066111925776250810727849390801295728773151215987568434720652410468857606857988545547054846710270692616088151263691336245101249797444826697771746229156729435003809692798076765366745524398016802431281718137916585025727723462462394118168302453972438333218451299925588347033134266837736107484859008156952703100753161866965828819889633977316340454527196439238580001508802843937833853956301804241044389674506082479527078164954093236788659049794970583503568065704297841714189337639348534005069599840776551473330850382976309958938826561032048066867466308224955025995230373053217661491931719128289322373800449445516209334342757849571717237088931665693017782008621191377596595320026933134653916384896891210752857926929423871009544594964352044556846056209104572802833845397383406795460113015725733967161542566303341692920432182002382465884154540602086597598157650424217581946234052845002064689532930993988596811436576123593288696512367022074640668491605009460934841510995980993700233795696591223992055660151256819092742143874296288242465081842893577561414217915297213319284807107284689008293916216912658256244302889601357399650675186323760020671671898710253228345125419940797823391499278166700160091329308576663294645682752808148422213023722657825105660347928889765918833155913102543821814695960252221386660149700209670839962266690427010731744519826999811147748413110986714795935898504452478005378662210791826840048774763562649210880645522174416934108791514582110918332290469024392954864329167267511462414403309697019922284200654943728702598989170499501784903284444321848620812335886919857928365299221282435943501795030738186592205874082086523513760431731709311268432633423398710575134893136877697722245442492974792003915035755552611574796689724452988436058052712453611819736571738819702281916015154353506397266703848287729199568398598809630793281171650531441265611831734315778712521610948024418882174787473694785773486729753944709777584588860847315388016483286272921818382952193852944569517399597219857199025700926592979238078195676711291243026552561977952905108776619506452492311805648618776881262223212279845145576259409292377066455950263869092372026917842910018574094026315369379317040246837303535698216589165805725309144575541521018394498938224907132578638707128436544185334864379237230606517765454628154189577050925463826287234467267888611876072448859766794870981242622305145140783133813149922592963315251995211879506238375339200068759388704112287789822317385227993360833681830439546722924337646475214924286563347359017215120721529800354741834637586529096211138654418550595386028751464284793977774084271350411305727032715231576046494635653200905726264035691975410613029332142190408890627646038196896355889999801212843991866099755285765100913004018525747945173318406030905599013755986292340621792790258396257585216527957418552824028565294356202115920104181376457381422094951929063888373165077655385906182925454169612469883043910971930925911788398130824845053707337024202742124707619852878666238663511382755245521828042877557764515311291973626335369656637746481777201241980565570296259505133636075905425392964410785775589103072385205041178568927764968180960622811773450081692873978095661503711783074927555391970260221092023193241992641747112291823025426371815988628581712728969015664672155590494740240651175301932250022407966868208043016035884023481360468183583058188408352012384934434631201934481821335789982552025227071865270686933237448050864495903804511848450983597235389764918708663012188387928573081874621121882231372763763920978937401789075268939959255988889927123202160572323674468262636779116777581186893737306623140180220143633111304590973414929769554703766167456869874945492869150936410682898182110922534475401063534499097493900110804597055263772151192344363957612248663865721441309792005171201954084447560671100015368861269937572193656992699448489327574720645445655689707958770121790076223767083715122479905342943814329964737883492253231776100938997472234104811523547540540041638718384260997457219419212139818846493318278311803265562636929051159084361626424267226089742181222792594010338017682567016925774523699440951043787151798301973120288005174632093261144415448390454084250530708521564778925152103003572771406440538443424132728449882560588040361449203703918847824642307973620674895192905721711052747426766205401098392333583991705492595055829507616205156675282619341829219583024717099813422646939119795211887381355240660165824273975423608160645964784301067490775062915579379414580567938523435904440432000357254991668885303980696800296871950646008945157901163632760024371383052364425046539777340944510515226423752404925480373666252274287342662017223020864469273842023445573778091773010169514960078563037375518769576944865370289932549702846038918244842236085615976511726397986167973807568588410052603463704798356067085842185449450628942854908902704005027771633944390012550696661580029740341252449699127803160926576253936682745994872425735786304346243555117067478926721364940264583948606735913092883738996836968218542017075977520190989624642020417674730118303301607883962198388815533831473148798609876724348106681128298595337539736484862964170779941138423812060524839325210593709043807438222996078762851583745458817967123444261547018185239575343785663026500699086029812302910427028869581985922575290752852293352232688720973602887795481776629400183274351591666281043644458161897760098230261916010374875015685467685507631928945177401177233035856219368168187948652874000121162540614288064202604189852024455444845378795689244065189546070151838440324908407845353925422698163255305687812131603128074817875457815209914834364481891964078463188072015498629466216289303409585195241941550071125777723297649063885370529496635735872854561632642061710370802136873081967391664209957785498927136799112352119560298776328501900829946285901499315947572880575122954473497567820102122129975095812383928786995860696759711486761368841030077386436195603154652898469318131585313159764427707598186267002451077478855799763848141462079619977782856698080358326980256931335604986162908825254749331002666570292119461909410992659924145918850848495036674711768565661022098862388769056653155979307115904681746488660368305570045818622164805647048990427009141851032372586872132666325144486540143450854241599590229313712589593995115869643627207660714018624939234717957300877794260187185026524873711414609092196507758614517793153595312755494173034638154184886875357232477893779598376416579543970707580030111848888743369892813949178159188125368666757639462194011310680284924567942633203824704461424446300839997644755061662853974159532320016306844566548337339830092050355078410996023000233092622223157152487626802015244834689224815957921113490701329382955405061177127527049681124168218236913311902101459845535145918956881876140114466501761503409001818770503563433329933618722510118851406498929904466677050192844445807969407044717976694365606532538362342970638440276532009861766203070629683422530235297516893519319667002669044737628590465313446106647114684740363350614653368812238696352099582687279340291363500456704632896517851063266100096211436755630584562355323975816650793960318463762979485516062974081737706187313891561549938587359476136852393695600626184687263384184042311610396450632726115695308545315894952914861460828868553071294011720095527893143707556797226985736086893106862033849094087294054842058377367001282491684401978677734984194466740680767644934587168695470022232164874748355093892791727603989922313755920823441132469532410855676724748874318860836127497542006231010007208410020425033923595851786966015531048110758136984354319805301313056571552141159540472199317562544065120066049800558652357440534275413933272664281341694547241461147951337271895325742425766311799498137909733423360870005777744389982112836341141639150227198060771448184745454121523634150494710445230300309046993031691201055144121242743795116462232780197818156404371533807059773008394096947946919291056236583959690548906659947694600343078589685978882698687882956221726457558557787030203067692351537369416727780021207911014160946020450740987311548832699205903271401807911825024772450193560549272541933752755171007446285952006368322901085310802951931231417821343693806161011534684714792076997842040801000037976280478812559851361051729005146328285978650744396210467520862443291570064933300899395634909699986649194318683108260790192398912053406700063803025972617286849758366600689597340668548940932132003056724038768446744317112588482689279667849346365874980017281605902191401143030777393682309518718939426045432048930187735234877283386109026477360003797256208469132748034863643861689704616671764341098079691069154421788149374741534964229394273508396807735775271178997481922180813918779825103777716218839044475417713017343129461425735485685518079198546532495699798466028979369374167177338170823016112050126620609552589445816861313798581343826209528616933767677607868882457299906393402107823360826262526165884230977647681683712644601304807782099579659851770031510128170301154373304488789144738820193952766467284811458644751184679664682385159393930060518195324387479918411632424948797093692374837033928558721739861423376744811578360605294661777765169663703759455757357479893697287629632076543078696558956834384872847081422648931576014287975407738717721881835214475178070581335940262313300420642957786012188300200160839843201746073618530090777160961427266912833203520827303275231707508770556319060870492464515491863795568919045275602160655654892367833689354772201789511536499691308189812061375699459036681441193418018907897743605339941767175206105694140215057875357342588997052728874122915375207919733771034569916804667515644610695408723596187459093714370132495583878426221668696444672227028073780057583206518165242545919993035306066865160934444005966318351304279447551152210243599445220862844125153020267499100114166130748955350188210818348480056808907591504157216231179047077943180589319074591826319336798868438522004821396626636626100937825286001890164352829367390806011204913109650545943526225400455374396874341133726380857548462217972508107499419985851297561455329664966514824243032844488288133208849123625411826106012109691897554139947903577948722194025538100375389782405541610948525445569783349507038640964527086451535881508623079931274915229959574581499700915783691929875918641986726773589245096234351498019129926771848062167619582317640883788010298455357950823136011480485177502716532665548453607344505688563646310421196994743518698321034382805678290434822598543144034984329652694464681940392464474907737350381470856980212527734105800981805075438252297637404988080620094792657081783127369182510440679362067254942835638645641256839944018812594550428971589814497612976706036291831131698911971425977539532921093221719525583532894179688715587127942784129658684034685086125663513312687527569048759174291462834311331047079283924538146451379081360318511331499262990048483002397828207329975391019062619675032789656065811646551410085844448107386867412930837229541805760434311886652192147685796994469115134720648246857569949379177054490126844235642335261559539252398040064696429224100936973314185734430364087660816903699914615723834297967106045089735547424787393090410555756698941437531671885807097015035679961862684454531039913264754287417202969543057904947351941489004047716571918774015293432671891526852168688810534063839979020244608538139712983461816650024585834981793218721256605766003298176305330123742752501031707278353750316460979221287444826612807892170667029334116594312480519619457389777513829900577102136929100939949247030065075197710134061331408708449936978641311139686491426785765718110176638917306868770578639435783178420917273474477423121227181923927360717820097329079219797619135051327295120241336649792057853227027159140343388040647446953688768071252495853924678795376848359100775088066868316159793214551234254308467327738024435609112961881454879416378337286030654353694939777085482893287469066032736560420529219836768195175728556403652565241578691643479812677500616391986520863402497978476787211241551680468375020780435522530085414506330030962653425817197647621929698519000119207949643921440553402659811168038856810921894590333069311398577174590024866408365425405481797027818127796791034676989016347555857091124872309777583502709456094453430347300879482742126651252546378897581424317448940694021122285779680408042756181476130548822420848112347218971159119237252234841636623776069335220519196963558306112056316796847813587835500797856384763529549355077529200639081657226223361710868743389961147365406841142771174963991055837831143705553951693147176435493054893152274525586401455998261981913768140950674620555179380076745614074189388468975065366193219882834406245823417637001883624727564770792956413561786277530181277266458103834227392086788819371288485688792338092007602640189191713086559948492327034601790632110229924464347888271674868825849942447514375333855319410700646479208248176412151766661768693136625798469700445633834026626043941051343806356422770773458625106707039875546786884891675551619913751529460765462077955243796550770560482893112562594776347158959777435573219125200994296359972296338735283699272212116452271884615439812382762422681555517495390513221732217152913964070226912702493374804582345639287609267234517561746696910678876206656532820819509346502591084189882138134599892432973667517512631525889426941747764280420042273490060704720347572835587607048291836923076156057089161729361036611924060154815332511624770056057116594542460016267598367743350071711135412363278515540195516280943758933904364470181007465531394120602166059144714697995427842620489731998320860289554392232287261549469720118465719679895668330834908837825260555224857570905021980768141587861853799441536288520647324218061010415452574407662072588340683843802706680264257430598912692706954468731938298428890588995252243786262642062177673073028134177272957370009655188489211469949956114284395076429617537105420231147810168130191528791337351377970160546087983483068161236251929097332973555841503046975370341401097466890435309400409549804666981740700305440390895657004498901576832272394341732986873382283570339249515267092405385482198444120802028713911273495091803310435853283025260809094930998697499056289791804303507790928511336680935653548677649833659769175878623965470000610238202118334309195982381862794882900042414679173138944450425257923060117714579613930358804360917288561867740741884077780846654891485033893127850406855098953025705880691352579785716191634205732036493491469263484086662044601687757631239877530779541478052798446497592563077315656577551092873546340430121791444888555175817213819037973767807115519476760959612353073485498572012153501582150784661531507003766605891263990949881994215804043532118571292877839723481759816153972966902253820596635299107153967677172185249237729104844234172798653170442777631010879631683276723822136837084303968853359239619843800548375996381396845770098744445155328360703567638604365848549405883785807798242071762343322862475163683543489432763075705229346145977241956790662237418233466757094124973687941321600932250048444190593780644466750488607747452795483743756528606164957746439941391980922732055134623962455205356371741646630644082495717646642574979732749429582066748401738640759325210733309780205518488034533310423835428017971179313097349113770413509086152671987481471902823655459160475316866600926909936187718794076289031640266428440693285998552656999495194182927905299859112988785293481493322856087553576327180661031385017597867588248941716592424461402797742439434351689189871981146691424575896285856179223289696486140770639714555120882327462852016002114889750077203169068552637400566447812785413712726529421083056064221877015474329998958106957516325459558040576319518675064554575180696636100340233744002543387156098303818551226193658475222088079850619566168258868112966102154181859747743878879801455514731796531259024783811016444187418943795436447498096803628093787461162765684156712341042249536560037221166027291696245679907412529708791888945354072755468785676634939630351161157950599418846344555743454035639783575501473801115383111616315549902871233297739856454743568414511906337853903816304183299255639428959951107714946670847775314731898461147033764610558732821022753771370633327373845632052665826682262836060784049022631605090561116538970078987923913803562615983112581845211197531500049070630537038996051478173951664059130597477573603382066558913089043387312426086122912142426531123263245364915940894716242479661258783214029409910836306487973659489560050435087425515857579608766258379046814929342988909769529947828948285283046786401105772859853549865212162352387973719192218067728968820719014060682835741198462896319278504882259958211975820622487354835337902394826174854271998860398969454619966974584715479677314035742547121346035316353233044827988776618329812859653499572570453009727754932446625693358170024128738004508073295643764059625586478369207022580149727363224625018289248152745753913094625576839993006902881010686503438190713422160045044929435492584423773506975816689954428032957088551841728811162262680979338137682801764150623453294394404296279407988048241762173661451163488545429097161581243739564897618797498765070653406468460499635380389769036521266974000461198053787827336393532222086454633977195081285816581428757455489623599643372419406541809178995232087989661735408110859389601867784322715505397836123828226851209658225914672819655979332578726861294345388911005543247850426355842812752876665434337895520334213066536515452735243513734850424477869644229885702480745792899573599477318411360602932972678908356175515834148055320813009967377321234001384500856810088983817604872145794367718457902255556313732650548783612639936638828257625815843540815237038339071863469809844106624599633598608433024575574547679007109724613000743562601584817009980263631410763657554823952623646154632704799287934038384235450499745669452113383860416329790623780485296446628411561912904661900442545632973220501929781142939734636311711018942715282965200540152195266001952658295975842426728756980594103836100225794010138025395126278415353613906071105567923272544515707929559396062670711843882131222336460646237198428549384617972816093100106180114887340219863532886672344927887146670006945470414682823700365041552643905126951232993506159660204416099245693170161385634837882043209265019396695301743704902157738881776819700935595557285882429782267146261208576204648218591480743172831238541181745049379824523255531640112492290162428276009528944523233152293628862340871570245209646530501170783744794959215465513068830290430717744346048717159150303627374173654151350417813368576328428073505344803088190410788286165607616297819423333623769451221350786256056449211368162199078134018177705256460975869164453484024214502233201073362394299402410466426895300478104805618355027718894841378189525383845744235296530197649294807530611571939645299128894904140518391586984056056174623942510612514169495927683879864571408569001454720235629388949432564865797746289224750871514744336413605612979588158431945070907354446933693422047355020918789734017630710678265879232210004857225249711152028171976665436843405038142399876723106997063623203865305640515521055126997077473043922011365419094347358384367788379805593356527622686969911444874215031603123378532570227477928618055336246398737777539755845239177889952430448772985483189710206626803078999735826981003627110340244088401767452149809796870955069088431905281904232011639401308571639633138838776703346708096823446653746265321228650484466156551495690040468418089508551278272368502881903342369370321868599646397158459419544032077551273327302783639867509212733806689205661080898499020695938606828119864882282180592647372859944195604274040064216886819992478443042972653349133635077587973638691667866326375250761961818034373065500385201490497695925272310080263510930600637016923603361226279459579402610775064997874320815184392518769303173408821361901481936666449698800643392939576734655362165646075615039728232691196011204588189469741689176840458923366079344608684952396734964004736601797369984868674147369495114577601019359638152041025423301415088174344838255166728617501910649339754385153670655410450665187101699120501158614759005383129516706330563053724581357135027583991601906434607772437980759767758885698079031117591680578320103987768680726716624812051487877016722031622466690379124801402344605270302659655065382530034386326441938317940889437774817348247908202816675323671747863236160443720503499277929896539708144829072049094928756575097837784768680461457117373660170085862984121626472555835281984137841453579602678342998560177394551318002047602060848062388362293333120016299487592446697743033666364936119492575652503779800169176039189520844573978948806420456671673952097553802035406715552285176219000387475978754420500654363106282351459854816284131159095184941234480459612359708834588911608147510204134469380927879458226055082255673750017423343053927637757040725669761330184959829148872166183275606335065108445411188929396532967200166007103328814112902486944072463368949462137380993560434006857267151788383666023794609237172609220207042752375844011445742257338324469081307757943681953310191419479618621226344917994916343506006381992747454561035552239852543350713908529649410727605660581372856869747207592621233971960456686839057239617945066713933951382116372706974184077717145438898333958710066235721072853148201095867903169458395238792046260464166895736433992048537601167863309702927642834668822199242580882337962837378471330678483663230298646789003675858208332809539382371413945488719848601321443784884696828183637094571724959245813722890818723399891605266886320057373701109470912295084119009950461986277001571188256444556341008346621837764376754219747896749557868776809726712719966593872532058079144542002013755024800986575648993994231322092786402206276715032259046019701158316083987587524535311024368038229940879312858437144833960119042659858840805863775222936279271850493235329351816282986643193247447237616687409419445780252205719545692898625450316888847667779266849856233585216128353448131512705446865099047932242612958617068854008553235059907886125933654014139782700891011128940004999606508904176971315309017320491578948149129189110319202066354741765728928932968169932563036515815112870231060173012031539577723833765410339031318556642326208449639047182911072131374998026937039675134728841433857780399650351225471950150311396217981359127177653730553629925120146864223821525042362653319809542549102105008303840073987641170008604439265474160312660272181984043911282628439422258259266651940494176778996545223772851900855871409447881722656206191889961878614856214208568270612334292606673173284463037039520765442413034723671837396728751245872851042102405630219351601907487478546871943548575570835447349482894921675612028341029231057185929388452676670237210767653299940481263223916706378360895607509091480368308711292204844164467505660884833904226663269012619143553804391469234295373379302970333855658790615305932549561663240048105484637710955974927169372525373195305921501560381773371002151126793819345252381416785948242897483737189946084903591140412051565782789674598098070965895274366278455873189987904569076269544052193119915293325564209904066257295806019598434714769288016610105740181245497436832946315162581490666855254090073194603312721950931883286309506335773266555654163614360962183385826660499530554775303191079008429541869143902642331454913968092368460399273778583746850517532366000822070278122098180145546818153904829231756311634056200973363597687569648924070559606166412472824868975962528293657282604869483729832919076889885357845695804118966122421476605701277688593412718050824598156575488196826318312257840698477582876662224435565146895424565803819721254048050550060991525854296561366385930646959188997337671537551766018691598190612770462473558825089215466394652462175239171924487571457696727872482368508835061620952918103022253384476909514347848603886809194232394111786961133404394499137816682553611393272690202655745812123428006061749438808112024627301972221691940488474156644764656555827827140026117290935174583928821177486352857554352270835927438374871142564154173104235765860051180179700872438835677174696745613779053892801774722257638034362659543318557932597108614248204520525405887051914568436459121332274526898418142491880779934938858737808784102816038939085074961313320888489291670199629353838377032383639779665252775324756596134197422124955245464508329250736007929469339092648488459260080348418092269940972071951321632368360698944068149828613347747470159929405933095909147881780167862381395673899785807593636274131308191428772302641173915443448184418217769182568988225791417601289617504931295285175775744998965966267836679997903882100301210247276763873804140748598852625038615541066376657559523745543750735417992241986031530124287319215687523662606650876713427927148370944448694986655366924800986384278041575067963390036234466351108496616286019618710599784706976676715481088613576838189705092709719463298631716441940300556083167698955518178430754873343054539308799279508067967447837918543121958882725536874867953803607445569513594783098162470512818737329189753905116610938913385291143581909169252161022179838733182756465488756900903090374082679720616015810955581317304602315329581766136070492722278222010034020392280895444771893509977841842687034131068879460341983018337106905000723850252143086522780657368088187543521904924411699078536843103514273853599364322960098788530425532687032161065788074045058059889346396152093110759441763602518335507371267864216212164268408907115769452728462541263817996391862816132050052057820991438252643605085895509326453529871076383775257066496527071319897121136615524673319830253179727765610273533931998588016515667892338895689000082471632261893684558250403926817073166417994466946577128524958890678747460414114459341088917895653004315107124617693499684364124998116659945052495306894713762761109816826331432848449746263999247208566011115136599495673021734969872247443810221214894139453312919907918382274071539666472873892552546833526583790816734829144334819980940422232208519890083553650085172288095176318014393726553188780481154845199741508690584308548360838039563134155432240736755894707917476285105790069526826526365502398627060051295896440195305563089708913792913414003184756184724117666429524200081601510962556986485323709142887965195619610491252198272275778154176069364717139271503622806582432313991900305781650388538568216596249573443558735871418906970046127375553957410597851057029126993382880968104574395415729404063403147212418247202820250599649046119835468437571125125770556769733081848404283580835727473528905283925528470220803092750146675655373944801743446188931227096070387691687230471178132946450713918823830698425357859988077533352721458120431994941412689584230658337941361333951294824849945051250809168179728259847745473969601045677629120776838397130386639931420934745401373693452144369357402617068372468692566059063313349281869759916788510412116510483316826579161018218453600428975968538257109204451414807283721626902403794406353530406040666799377547344907524196859476440085586997542739795162011137990167018724917784104618319877438222235234989919655406423535739197958994800641678371736264111903600878045201990465445780477456427164086160779357206509452072460813896700100624477135389669274417042603713135031191348200287262019317686769035342623626023720721805390701734681091700684666337367340088469504315021742716306358148725782436387066230820252689837057491093885819602672342124597417070295128102761590522483074525198563478340216824805782047576440852033609528517532011891129043627969877939255953551171672768716310546424417097278537328790169035309368067414767649231572512266175079581599459957431029888340492539820580545435926506922805314725569393316628713466000246794142359378428756787386833844102245853785896765845511949998791104685460864903418360748845617455993139440955976652138330213310910259713204293332206224262371962922159089175140113112716806149832681553801904955859585173476597077242562617730436200314073669492935127058594662214110429986387949256238881696548625996330425934323514913017946359851911639483573546747795421899844497507671480251671662485641378336675797932611185079766599868271529056357032192228758596952887934140740105277322931071629124959164473790646084816341216906082615718325366890106103160254351384697484258703329172038689073876776156695895908355233758328888209711946286311621068763998035109387337683194922762373395834839361447137644985537567851735174963727004633460455353026430095504412818740226903341972758816868744966309906058309070366939291480478442194112710874915139314480051396499118640380491054033273233788401347476693423340682271242476812609845312466726446689418957298606753874581456220915767966186950751060224295938952546912800469505596307695365196849687141705062167099018951837341961054988806378096628172145642522281377455700739431579346062002831120831082758503957648476923695538867781586871169148769902434475913452177120224827583662281230896504352856223472753507852358090156361947287949288381795273543896352061323970922373266218417352523840971565390747911739721332303390863213373953806552100041437108486045799927787218128151172050423176657571055856110670761463960491037849273476404686772245839710519399606821208539579036502769291624801948175963854293800195347336315093717392425266311673127868516504690835573971083797075510639726549081151062303000466957984271940096292237471280839263974784985182968956513081748059305100175590588675819555788660584352654035202741514820290293509912614836601662699785696122687197288369113857321153876681979105136686308450672636988801883936354533537432001944821576603033568635382186110949446077707632726380066362390115617050525642696185645507941491199495850514970535023075086735449839939694607845054497913868095320111528767421226150263005422462460561375987099719201492220973038247302968428188821423425834873941114725004025202095806489729461605814815625513962683855297318335631926208806660512829284128968867057880032900659350505197162865040285857705198264610001548479900307775107948303947533935944903770211220211442573171301772349088382315578712889875532243791005966701849243707028391841673921044728773400334472956656700309394423927918241604768587969467571583547402547197999640076661532589472495404728921984748194830821348498534852546035905115254730724399853497665103760892552366205121677291219130214023416130321063472063106483508885464101462582712748985700000331911855668684154555361835592105751825516481252557239564443371693992378463957241618965693446483115857642949200200744272930010302903270305713072079048362795792064636448247512060187291992233503453103091391847594381643596260099661867795597728335321996166181429324441049650559319655304812416525370504966518599370200543307483660097841420318418178016820937963313662932358365543316101551837115187180735951640832958565518141232689827019380291395597226891613945339631088508475658010315988811532302700692439594859025821786017917476031866634756228581165755502576825414331040371826049268850654002719426718053738928443984419287276026734356430536379791237528291468521214321156976210194357640307088114442010716645017449587838889901767028993666915530880508958817942896821113603767160089434124529324950466177751889920620886711089458228141915453997494724317538572430512011600494135207791529545876886829838288049027061368180181015236472911671689629390889334160223690283664490591206852274587079541110006311408169545394542975302234909026026862837605626443256890206326086109183029010080806895423658871036230255809927814515114514831085302768070431087296851720586361517659956621976054525418315176971636165541733289915189052198137974331088172941687930571069730108798213720709983853966977280767729684116893154288367510011670840579922562156602979462467098478644540208169351260430647130769927695310692400105794828425086264317222750221447169687084229502894085062080033293377558436945300189386594222000075737841397203483475059397269482300616816898227406574639607869986808175375520222946550413580086704296783650438401340809188036963993698890351531264945077845959351396300780207272197222352146232590348975026794427509593172563334039150470362869782228240921682526251400566322445732163322169007833071126631647946630117284558204186093011786398781928877380627531099324996489341290656329904933066975638811232993488142376631858322971692421436922043230299779432469380506663558483800005809111404529017780027152955276803599675334573543795457710694776453323734740903386144448935806361096896933114773982542575955895703956492672379171524564643062444490823376527596049485968055992738233100834719294973623623753819250914587579428857565929081533154140590847437149696910121463939889809898798069247835826037121497312091527019734890649098585278122638443988696816744468064692615941509493574796384985098207992033747424508482333204256599021404287289635629374179979119872871886985878226230627966302503487047661788832774286153435357075543524434202056775750634875402423512329225698038219640451679771356295815289061467988101079351454262590000620842723312218389908906529869899468852568067987683785809432887119363531614061704015234769725596347568217876146512381783051939574716200307684717660329622244151167371916506107269389199612566465050461981723923957174366707071394514275533066781085411232509108448768048297486661833449326654022366986458381014834334360397449193779926309800896054511465639677709003466972081831860564326576759459066304892349015225074364037728806609279983990874202970269894009175533109557320756139315150833942533208199533684692680834237549513160015400407100416190039403369493027565433930342355679821368520495446984392555080855052333193760585450237282672468434230703433584313297140337433436991500003542007309343041476608726847638340342178729756343953565104398024077252859957457211210541349325022533073206449504466041395114825507346970458229797684336536920546436013487758208681181399289359075836453642409726243756291857559350244020889239260680650787323082722882329127459403072373052254163277399155622415309697628007267077402627894593802325682809870607872210800216558456228886850008920363181417088446481151537857207432180835507101729626914336118763450491879714309557581295009464198549160896319977713827287060836318557075151536511065635196241753312541296914992076896457397845985269471520784437892588502244482450325038699948792575135563877625104787587208222312287081980385445471737315478524085124726912843257280604293856697030371492015759468872680525372224903894158075993359071711676237437806174061356824653988515689002033988962614806110294290348348271415843314054402374579832055107789635537924035668924824702295675524217450243096947659465524890923976913666213481442839794007986922283594090660267890099368286530594212636500933643083173317251767227494844956507603430754308363446379317584836628877224770042718585863631746220650571892132118977812207224176586966409924942010902834131507636811849066888965669995543751012318239148573358611442463265740744645554461173298869584535382475147330855833044731326523892011917373661294640077610907482537379393045159376978182297059645124508820557655798535414541857337682773703827906443890828791680333561661448729503263650269426266179609956991510049980269281345044036252501061052124038238592535271111352860803063271374127081335014545575568495149883583288953152276346297200360663803755424248950282163188651867898089429362513944831754611739456685200482249303723946345650212560018760409360949834846652274129227188692963690915822582665724214811037989777106020305139250837205596631546452425013498170409715426128575613351475688107398878860712031587143843625222943866906073554801214494657404808092905565884962958690135354203602825241532885632725636349617948696172281979463917264808496230708766921015947633319897563584742387287877109644767704424182473631187315969388403136529290794126190213672548688951621459630090376857819747622281901889226625590267275501076301293057737982731342372270198994867225583106658159594320465242182436097349081525776833867939308814202567825938068201902470139346171995760163441043934787764265326459534170520869612183693888445522920053545158424470708650815859802849011721319717623077907341420659988756098710204238081427089104756530756201955335535132883675972438292017969238350311759337883291790332853640115368279363958265357057386002462898306108805921532413416206925688865735032877158708937793271281688172837298147320106619311653091714947164190249359481341698596918282125641460017140334523208204383376465098549258065065920215905298209311014175378825590144830741853509853285577400291646905219314935058567959592543772884413490501263176452101563019574557496984836955419838870266075246270464112589682452049324105474882730948499203518564485099194805482393429046289674074343445836449334875439070136202781938051504452748584448637174963056999937225619394812825305973478071445730616371379530580803333560141310164431909993435622043296304209190916629222410326400265905420023999460941176833860039374884438573220791551508796740138854092654013138973481060957809408340456757864643884236524593138426078145313822806742231421901129503993376398864368128942778208763371055365243040295773435886587233383468430510540478190298105961533432361051957794721838629526918584972518427343056225915602702629861704422044036530960392575340260358077390025720281850040015232095999136018313604277530194798295613235107473796055230996163531493338155304390008098084675126281585644618147094343543651206973692493395381402340649819224004358777340977733849262168066191200515440557184837971861776206678207181768879832613043224175373484311727521924581911105770526570671718914480964792099726517461942129154833626803934474157822435019666143299475143726374020576197789371885700357288175005731573596159581073225987805552798978494634955441693013237282524627124451607193490380032174446251956737472801395956486039259947336318456215204657015821076239949167525851092143840743713763417009340087440130747857095741348530406893217601896428664111024710366171796669430381055153824292393920095102935024340544192350711288223701101075991095489108517885089714443583330084912792768238967656242898707961445531578518762331704324759686813179824077065054206777519459333437071780763411904300400575675684501334396607980252595144737052720249066115354215625835184056460970310276391822412585395157686818140248493142362949289248598101950720564323540020372853722943824180343942333905939183615566773099929923801716278428459570512047770185667457317018097467607485091322341335811427576454900751452833628596778785214782482290823824141202742893538640673552383010980650131570999658612181794325496390209090295161871372017989759250019444692318988506124207517693333146932790945247282412167172485300404802295353277846437702319211529533384444227484908009175312369620564921929085537862206625033738049766422245648687689791975050363833097482222948927632284499131701309262187414082605769687693626142145847538371147321363371813352409549578703285935597980916092851105963267570391821913049171231434921830156594818221337143974779534458374955047471301667325751009484528539610499521511292018051994769320094413923188771759785438837347163468123729303822502765864446286621733753201902404432989678711771532329884331756358789462491066604100429759811784339173243601507077975505812137234688210554840475752924495387557414266491526435492552393980814960719456419781835978813704864054876627240103593050721725379952918990542238380696429480972184322918579485593174402207537962845930418054344720874531088946393103574928855594877990802816985679742168781492798311085592530862497347021278170271369681427390187099298384840031563195073380569822105136172245912552902638111359823416938654721624988551905680021480825127701717349398707013264637327557860844586416729895618384560914070776599558361633180646938222626446019141789070305810366659997593518412660663577092785796304486084191980754021310113906138061058254102531027714919509831646486384142246765094501215796263041963650904943013039669253191210560945660652754958956386093477160347523586965450982715499030888037826696193709007487426337996897476872214728956742659585030185954732068444587235594237288799439546638415642870521583944504867004480371336073116972619057683890316672247668469874751089308883844685143816958384784624241816023728549630953854239858865709156518229011676676826011319721653615966522700609407475013998069586802390502775058794765610474469693254194486573093975167959700216014208743490773646984510300099074866303364814491776945667775153346970443207835181130880058105795919161034609161464830914036225900705095251265205406925544582595880884612919140795696782175855358476380788855247017177670678246171342931171169104342875165679618772051952801637708737297411471748566237815619721374791141912935232533506713774011237550334133611375858963633109314813181667222637508704008245878330469957531173792607894236067259386453102875607982031080810501224609004561285941883062787024472759506820701003408106406625445171999777642147127633582980206389116240615248841383473630537583957608373782501329038872086946775231158309243973400401679178448481730346756081635958691211678493700332873854457737605777867420805660662833510945420037749919412877591165296672130839617812905330822938972532361294885285599474819576948138776609193740710304214067963976103543488599151163717904863275857286016051056072850429714659314879018302354989457794255049462485183345890885443045052534776592753723669104698348975566087867633173612556742450933914222468480980163821682498617734766864812687285357625221270699486561598240317630048857170885372979211659687483382737415388317154912263800792167981722681319036039039158232313764961641395612622744550284058198673208287719961623661358960374201768974530408455663582150395188543146106840948678938756392701456242369210340284746858228282613348213846557298674274572675562397636689809861176017352047687138077458402008597700636118217305834281235940267498340669188484385601305371457744061434861507523694405674321285737801273905802656816471150626220891943384290361853964303631202570185574230045247406409860725016489160949320211619162258138460973525914056050019723696916554493810907805250230830857934431971945116993757394886675807030648008798501840814107519559933120155141153394674737748786768866993151038801501387008378417119160241062693214233471792393037676318248239993386181873243503324828247286530057878910017704098935008023246349329915462731358450044211135553395237506450655438736102173757290926046671498088885121976954925402031332437435989308655802798938538663916940547867556759600889966578836753821709010725280949677884973936124414167035941950037318608968575106722353392120074263133931483443896992257346043635244702858321497385965470646446302658593774331016996613398902673487880540331747986228787259788026257994048179355984796494757195795932082837662266158709682131795022841422999422015918125897203439417116934134693535283102742341032324268748287939551122603909156146244663110538470797470459561685591784348359468439042527206180241838959424656417692152641636285753505121134079289877454338566606690807015504749700866826049672716856854820454189602512190651808714085626551048637271703217985853509640575242574990466126356136726780313964315182642454367844162380320728232261244169321751374060419947852848107719560393278491596662295667814963921354233273071364269178638705785203027787250557264294782655422062374373227680594194499292593132401208941682014322003585843417941774278994166484848308331174735179866639462255952537597243190757959974381479761192284307667885114801549724615496734479714103734096280666159593482083669192853235579771923906186631081951696630705751823576820939189235898892704709997841949080227949051406472279471540652808311518805671552786456740383770517207001754871550649233835365377045845490925738068932688688852968473648578087940613605631766895683686049762160528047236770251211469764842765546318207524167918255556720981698045563987571104311377601466531974436541706669241440424959154013385861879572582838170169450533498632504021400259908322802977233636913158305275696652141680503661542830494812924829957786890244821062680692164072728243543644296424874498096672657804233544253291692993009459773134577217793722982154461796718307815912959539210213841879302515327445202541085949024124349885171245289379648747101674985362341251998771928727470950202678226703599112790409874621287946485321632689180269683762062147209990463455984215206394178528621382925267505565914827396225509134431279025121843210395945069138039689573837750879265523418820573319713306640717316292926698005837076561916862985419327850555315564018240697919627229558732016130961830216421101946508111899496954185820766202274869670363964866472487324762797116127062084382956658843645166934737150870167656571780442889214250872029910379880985631428294167780033355181571894200483231959005452495202721550950132084122648482629590666548627710873453267452423176252191759281721351543943762873114978374044842539432699355450100143123753465624853393201683946963784109771951086792140659053219611524197210972132634223668255140500082485003859390447741884270950080359627236933984129228970536231760746956134085243875617584088898033969255428889177353539741687203876735051957449412125817513294409727452074620839073436982169707290235688700830526404583384788437586852624283826422447917309852110903858366392751272274531237692729021143073959905646509588084883101524154269998215390351657904455202949951880454917130488281042613269171495468647976042967460434321099812254647915021091101639558615680196870032342341738129879628946524784159114512663897544197915969538867752781890023799665618880451105479819410712675051713569414727094051524445257477988676448919434554388386573522826286443775913237941263572178381335618266262854654764415253818587001736753094649954240049842398630057141799500785760787458697088487127884122547872617305997188411253387680777201957783994605329437883089812348115760508856783982935076891692125089160177853124786957410146097912341130158596261643911074907878800049093242618506760904501892055615006388430781524434977482823072335832772179681786396925398362792365878501389701108160139150443820916585280757403413553704580782069693553497158202602208415167158223414500855632664436611760417297307938416832368679920514828412037877115569155027115077505754829635727935711730613584301001290428990384325004773996896895480825729694339069563609533947080910645135468372494015207070847025079405028123365735983178930156345208019093001625040429408121204665696719047167229472408676826944150126838581154995593283752376295242537112928108019556593526692062808222223456264608304971184826342376048402172197869362314533679819219811243954238595439708289502855395720415799374238992725772820427972520105781989368241502047849855588134976605696687818761682797324133724471501104210140941471678460128438667173599183159844005712242877740643079471812563180375283701976447012390797179390169360919320148921553114297590839351657137051113201775385569139454804938889824241609910514355126945540762554853148299586180137882980192670118002929942354690738067801105774607465079057531810104877858434837687892529030996525377105560752770047028509276900095390765999089722579307881824147768851843980098140223240848897877717146540748828200106253090365849037952076191586017389887216943298638217045030683389353411106357713642240175833107097420816138059835140360261332868655969223190547660579864471968620692305289471664527469631471975460105774568041192100089388590283368901719157115387090944875295074593474987096663010898684868946103479489687752215978649214226809709377659912491261282255147975687053883349129944360637226514493573233294823143744267123472032650318414449362763059906292449249859797754994561336607994752388919864960795063110650655088605887246991927182619005183408288023433495612099321622876360040996945019733879921517435275786110293927390708448186738549996618618661516357462903768871619327239308623357442107452000017546643650691980702347384503106684548543592179957283845324302327484161100685694160400890275352727005057230028567377175408586756110296887312890881253763882556774311085366560141320044456424701423381077720481502350034495398116519086596337871003009852312727958396498111873546725601089123241303867703808986940394702803601082415649178683483291364363310826491798788709361855553404128517685907278772695085999237950737468703340476104869209659958904290103957869686272053235503296106311712461736359199143668804094099810618229321697686080266631187442768744675231953287885196348112278968820064605462214851544965689677554289237402036135993965228916179941504199067447095991843431668988826615624662512229313625291847527050396859288428096408428051300121846763986057062429265308911208597598514403738726069012153541103166456806357733181065008623165844621466318208158608610032410276641583879508640670833236866148306039852627813394669857710439481126034921032903225137917506707729208379805428086095307311008041932950472785494792755373879020059804234929715164660108861772011805519445507429741511338056895734325221323430194714972080981466537152886715812273661762150121948570895392518961303850194477671123146009965586293409645017428511198696375795238618550374422830016801576862304186695544207515918449306629359870980255660761892581074472488502285255372435149378941003732472711254010184011410225443883369039251488572730253816989376113826835709456047124185896582527378612396926705974107427985234955743445964603382507130880004894100266280034734613612300214630300270264773534076724177707067499117794530228704340629037917120898334478725268417517284038553786105602043015448988999884376999201028956565042698843929348941977569864255661424789580797078530106426506740075261856547927065925966343881246149713080167817382392858409044573139058868217119494990856491840405421806455874049738707787905073429079072843330151906787945973256670904753495460485413806896494335425168438412719730521580945034002320528021050982289893302478401465859603980228928055666682015149584926228965231100833171868784771576388348524219071581418995792520715331694544962893747819745163021589828988402689316068259679595550810597887328464864396526273748464292896012263266461303238412491564325011563321185641479679731203888257905666290029160994154020418862874464358252303508873586959642729103978030653112062786500219159866109863763653668060173759867420754289104960077936644243367667050803152714423728353085965435208247560006292610139782296705770571194721651810864036829448934188799221926454423284346340713874533118946603477146477470503670533193983359331997411529475064927638815014441783762309411936825654813536937232372129146397322537050468160193009971622778821341750296597045220430548467732052030289746227854310722381718161339522491792414075529567801091404535184162893234192050819707408451610735367454399929520455731316164475589323442994856118012167489620856725240169206358755976056787147296648547786808592593737912576377422475455986816097476531850051621131987768998161307178578814281969158282695125904187435101503383583006597246559149580718034632680815888434117577371356932365766376302997312382430567433176589508102921472540282283038539526025484106130865768543641807392228884411678567900133370709478697916604629371625976462871443964031133680848144526772743803621577548370288915176017813461978307173514840133263608754917784861903640543040572553366884180133401714272864196747288085162347267400824270718140601557188896560937675554150868943475025935843475076218816246880104411564727675035064644848795936313543064092246257842345906324332726495066664185271429253016763771300505099712310110385706615021713864447635245630253458880026251013509729475594839265732511029525566293602885045072596595545443070444038513578979353801548873981138376387721569688888428961827719805135004440633545309941972401678793824591489194514108840041234475840950111970466832286396758757332112291289291646837493592496025392827340062539100497541842342642134138251956009036858409118338805464090559468497670316357749908024822958607375782736452379795283970766854940382696020333605515545358474285959685961675963237438084529461907329579740910574473697815752777464771495117026228473866451510724286919761503462720635842340607657396421570475558399857887509135714532752820564924865970539750382542650494384935761878443230366589504148433075810007440192923740030329958793825855534812414584857095378398687705981513352506493633252049267283610962474294337135448203027275114841919504895455221839827893910471453728011379097341312700661081915928709599392177593673570118008682414355685845479038570604064269491708911367781199016189137404389058820772997531279033091705897914280951962900919466441541908762234600889254380778721437322187282401170967132387765518963637777791693993919998424459692624190000499690867867976577092110563135705922204704664766864997758768084158340909655589301943058616681622649090275553832208035631407721214705925428103461168485157489426022997202939205236255674191967999211297310638850847168789608559141494551572909428350508812987333657246104549071759402433193140613911084450957614673415388628287626520038281128852821938097619245103344818808677946950490914561515494033302153258972875729676682409837310951255822523830668168307809155705711810089558135210112838498870753470441554034548451391538476687440793325125530066159365750650160504092826174549235964813626172365206492464761671392505877524026099898182069200887666693629987893848042091354190234542643448483778091079500366011615288236759050792277284721698004284017484876975735253670339467909301401781879267064468495601850611580020138369049317389961238665627357512899409858159382456752128310189228113512787463680795595210120022464839259494718834986134295310439906050362142711651125545579393047374612572807319700416554547032485120571547868977489707431135908624212208348358332148646951276303856252811918389188501892545812893065055191684217181320164310561817838227338603731136896932711389524886709050489613810838729427125486627544223784272239584978745740434916546703034463460243860334471065580939987609423827250883686709616441556433595638183266152857512250186242616348924384925773051922544756995643857184661126136392703545964272398201195373101599112774959641596291418500930070997383816553598517461575423856994296102512548740430532934060841838048237223774897340014163150235762322480020998815560654964419490058281943036435640135354673214850631738107052315252747520152520847328819557433099186551974186159242769621097689480415630917608846729787216685409117114210477198945405103086759988987751555590193062515651921481550324904796103289814578040359546117648061062627234336755150631793176103135540695298565177616121398179977586827879284087948870496933697929399286828890049448410380600262076506380217848572108788058660864337586728384541875476610891384330753453766031700977001349030648553198141051492337620503015326951654064300206568521217996013510180819000713524089893828357468846271012938966199751620659107179324516747224905778506409420462706624523322404064755587231084467606768120249340414712509423511348250040770143942510995143315003260329936990623904029421353818167115958868902043004576348168526557572506986001078887873261774692632056405940509749615926529717164457469919346996438661144050294229066949257899297869582998847725076406857655160441385935711556414389328150243434339236544513720349362325867631422601752627382518728887473345804066923710805706231373020781406302944891045571035634423975575840840408073228104398027395604779921017533657626810360063187308732246737145633597557861275568725223368409222472546614146997355155105507274395912943043829915451255574886448762498855326167013552979080566294255138144404159621365127061585701236705016897783133755725485109403199947927641658796047028665188402019915289249389234798577023130162101447419815222180543276964017510421212627719823285483440692011691380419909154342297618865716662090773231617512353388502808484482722016313129067193834777023617027628122850666494899689819485435691463520048572716824500024120678927430281082222450237976498232149026439909058977386234183874317539888896626576424771421257988481782475387464210289726276185840220664946828790713935911184390937050563365438800638047473392649085111975606715248249227690813446401572643154911398008812767065264951826736142376799301123851112244038189388785301178468047900264508433695381503688970082352114952401640278555272406675495213929913175199387902450252782913353859145562066100392583659430557163625591830495987959420025794785777586055127950190923484197666133741314057316619856497710982993860547790251605490519180991236303894125521397590554773810207346392838475756050177313459025838157251540571047932932330221934625552867366703409832986787218137303375482120762778181930800463803708983841198121542151300302066981699306152410571703566277971161920330227831539860203271976202524151335225857077552598676207261515750177231363342447619403554274034855580059875685332225210463415287673798722278808730950531231412816614856135525796736529401073445350533894673216047108419900635936350634114338681842345462154139767200167798260497754690197890788471435616181697156795740883002664155936079174506141197007879784286114587288935991037595933239108100385428983773930932541285999562533274262833332581038168884674922382322040857897535841595490907246182932571651244114764320241536777846112358618905961309133011086110036662700897843078687364202030493792063149323219446762827391759901044377072346569647378530914460596120760336900425527960733954147646114740225941662680158474076898414329223937394348623923558747970057651469353881482202137796917211802620778336164993670723821756605457398771127069277898239657097304912082932578325762548639331066342006301269062118153624342694962871877794617595200867784090564336286579714864021801615345887011517157468876063586187840323630444133959683909740818918930888821743024449195358966461893518582114071525802304452964404813313496361345520120185629938649311723679667660718909545554282066784840223320109195401413129853951146409694245510364470094858453265729607268037244586423466722308767002528489594986914800149157696284782423025647187655617792087202624027115926743331103354504458695173536444504839331315008097053736418753487838167890641730281262415250130017846359808414546278462969990605520242348500855374628256256258061087804080143344923474768696958042273924839254815839820669967945344565156032394007401627083652762280095168621375663144801196552249117514440643624061888697893911605411783892201532196976559631057252967425800156393528226486973586426737082905983452403868707197150317362126607726472712577727034676136722651204824256455645713056562596155056240120205322772339567850812614621041666484356266979257856901120442948157118550481509382495186873726429245827252834179699012117006977467185709829609734578510124457580033861324306325771054272773230835959651727630446987944220680018372322168064410174682947201306448635526590165391660733400451666786281654513368841498489144241190852071108427459463259752861549805510752351036410785261799835624289291678404011094107541951925802880118594841600858554613445679595175385321393036293142750394794582770436174354119422177002425432170087225292748941749673526097705005475308708383651016692196828531916306633879211727285792089257554745886507596993916068989863681471858344383713898341439034538685043613797132880977299673362613983979108674230005222444141522689513537730902280910043961358111196645268423153598728420459300665088977832817929189899889128114514936639213466358450251478792505321761381123938094357984308758982507947616746481806861177560323021558743306131212968431214750026325049448988637199119824702186320461948946183302401807169933886891477127580903878891981040874506986891857219263975254494696783331454547125523756855649563986729272280604363654527478025958857434310283306178371824634051219093014505885561454408003899668779962600290018147201117872182035726718691120946081714388226067913362912173207757086423013010443751357466640124971672833794809823365928309689635008859769496054916393448473481901988410103854461555675918063344449678083220827321276546842244358769678687995593096922131575344305112388339793981441957703644791911828513448121903881736893900037023940149094992848054791057346011973127907111768562081860949401306923146561691786700334084376487767196129177794135114826346607732724433978780884446132257585768315951882177570875602277229442558850275853579240161984648204587163064754377335444928549770101584058543531379515240432789073986226600709140168076539313345714053686913077867596979842442174744511790307944480744071704314256363870214147306937228343249376707016868049588816067715824478441997996339258416774870895508104939069100360175148693981043997929557209057609707051784209309352382619064482373046959671198652105706772778136207531212463305940686336652112926865981565112421954971573421679085428696726049722886306348974429233259661849700686604328342689984791242282227395926825320272554102615766745683628766586607606401919299468769034383581689226781926772785424123216367865893294230217774732459822346135627783549078984179338185318449235016366194892132578289423877236724589622924071377136028428278009758575525057130809481065919974364170991276420705322596166583175482348991257394007535588944779988464734579494681118010048926498270960886712634285561858237296403465122223264117192981505581144153028085801776386174982325510337599822070508803937118299095167276300530813780445103973608350778492162720089738571160039512137300032767166064815762254831534746829112491634913438020727520006276531349252504038451089348040737449515472338567365693155909064878552306616254456852571010042424302488582308139184584244474888750164875906029260488616329855985994790326704204324238331872650021746539910447510202940743507904681226945241713084474697472206856831168450896068028567354542429930327180200392052127935363901193567588165493309355533411691183576311107296470252677096811307712231692386622290651160500026560911257416680531952025438162366518719768977953916880380420239668742708531416517896200717345086125879438238656290853285742554020348952939833729311477771735349962337627270202462661214589058812937823802049658230376095148325380985253468065315691013244377789664271796630216725501317281677419646366046835836901091894726111834277817648508857091667425706026200993449829565310521498116402586465638096061513018547678069179354723982874755494776155903401516092400820218970848318490001788647072072935138754835588108006133334517336205362987899689276113702452728646591949092713569810882319769729752447336110717682797542145586958642547135609858007997034107589199301336046934482712164799075258584509117203465467427097347586618541188936914473197644497794877337170764411949969906808727373679864773479396007360593655835361317827312060084082679116505492140419967761581547394573919675193924090120578166679519332330231139806015119399322188657766958133058111539998285845548846775616070082735951377994969018803481280466202990565244613253405237014303024513217580026268489884760652238859088143184186281963363219886110757085174279684678720037080680694170650951025338717154220410669530992400412857667893007603228827449821367178671700884522542552578458302120217788389278230875252758035907352369500144123460903377423109965013023501789499009119631884217574306371035170977574111908562792886777651043006578103144634043579955760830692029920452619778047082587721506128686852296343314614370086452383418479187331909041553758716188531055374815090774363606940111215308017248614048633250334561152051446305577212919389645308871975142470070872028645577166366840878227877854792018837830060289167597501275157484416247655894911999127719981218440012476713733130663788910863130229969759310341449967517881131973281649030472388312293076352712996408900764230735434255737513367545223239495341550358452161700602745336979235245022611797476030691480574978881690073124570692286452122424885090124964547443342509690277858950735469008280466686634638227447530527525488057060205871901588219175464198757925773776875219236925340149293558116780173379151225185834629072673768554246672411795882888988157613958392579347936896208803550055123373207843331753808223675864001257559462493451624271542686227753419121754581774016334154981794768412011595202066925558252016942181108195744849596019877071858926149064136598473876939331788409276235221995973453657914084073559206976506925595956693575795125766357119647641101814936844704399538648516223594961451205759909424145902258861097286926957867821553494319162519086293742592107442649897526048054686488414354156749540836815765542872078815697925539443663742655739730268161076243637551052297241873279958714079878009286365405986780398190213420008900572141249234384260735082719068939856427765475849646590769930969930630044243898179923640562792685530853481699299603857491176730528858257118195944989288274513706356726379807747718359975369779670666061230233032809900034697211345157101298183851393670049909195887515630930741653534710014443348648397115848017082812233745414131132302550473027136500179527704380744372112056957898645562536874779264089472983251966978133499237491695601548574942089418373932652524273823963331177294419888589029497265887885882921055043489182794089699239678726687852019818380038812105469586599336065911595228983582711162051267692580268617213923764996267109121321472745194455096976855735608108689632003676575349380315187909129526676959834861340747547994561271089338472774153721432348090814835006592440098876634788978604765603871410024552426421152094752366203218099827988328567052118673256208083806844442996400081605010553071355315005472953907764971555017235914323589513021652383469217465679095964631585414174494106090653339746648923851334577080341310064204221645558385004461270443816602114700974331421464623747182363172680808576988558662117196015281033417937453332410934477285436405927455033696765138313335462954048685518334518071668892302398143159000595500353465292962536927479509706054499599138746616997271646895773490162695120345681312657558589726564637157582697531275509532154870510013135614278365640906963079950162064379890014814597705906803350274561912691768794504067178761881817842405464727599581923656697997086997903936038493698139842712570441893077028387508090893936527540211909005517749574483896499203157271511546372891921531344623118353463873521946663197095343775731312403902767628892181872665060717339890692095331453226261688287576835044707398080028585166257680187915296035996015831083130889754024459783695049831072924404176355704873475440736836607193405299941485614635892726822938846503820388900829801102137603148622815916403155528773708398688414413088463959339413935555893772746030697075890748526569627036831449836364851143713866295971601490461392571676934439321483015775839450325411574887415313062747939470675718952068573754924841410750698995062256280077237338868611001642875515244005854191941734044808582728234699026702949338376276013470762677242013294939463982931292936939182502750719801466168365103887137334923417919404912052253777221857720168347119392255738998030271222651350330535928577220696724086064092985624342202167475025576385886685067742980765734412352250423412362687965577575970691262918884819300633106492497048401791963705438924787260646583022508635296855443230601764497396599352448839410292714535748301757520529185814150199953129626998355503011604028497125892212190553710581695690727739242399610121605358595608497756995403977220999297351565486748452051831664792382142561572055302941711716004895796252847213626552356466083518945271824844527608746334902389040108350383663564161389033992332002118817557762494419295256910877181647391088972549474402790923302518200907021881202226388759518762781271588530408791966657822567222323736278650973613596157795946428532882799014240546745027033408204638306656491856713222052158247417159645838252286124162143217762060374028768192375554241984312853902929044420013596726674525267697257576676831248424267127667919672942280318877672246782579783236215801980804499448968724225574380702424380683001897459573243060964878398654660797367610668442570876376098337505279159048023017140727705916608811949842869464696210091051939475806432308986636586399221402825878529329046572058609965897898334440830576387460912386067800434572527716524201676621649293097836099190202212580567073211881259522868882631911446031910727540307598099096483620217577718526617235414306202079205433769698068708750305200460871284102764247799323577223850882972049311774897568980891982051028288466042824671341961962786818412541055825604893596837940522707544538821670122023043047809992490804391016121487983402138619508456719675590907915037636998112757850422456157283725594760074155241717713326166292094881534223708719339145648583998529187869427490702058462812546613058748917900909664821646059384963967927970862249643521872670949760621309969271334801306423133723304997541283436492500545330405588645898649440159463703354863569274783125339980327786150831682185058608101869765098831565613967498434428328250798939068945291872616517361620232968892935586065222344670426386422378322402220354453259922136089204421380672720979324959949837607396236398767667542588691822827400836658910076360886797487439391465242807542933006214094500553158604560705210309496954556281814779746199622669343442909849001704937876907173394913390672309505301640795330197588905930112856715727607965403746606980941462669052920465614872513780023412933107328882107372692889124174121275715377403841423004572362745176080364235993050694222180254830790696374193085566236369418774015418913369417945251884606023337645816439747906072959017935053228027823200313004376060881154171225713382335484082206854970173989048005952520499930511983988142955229254158422415804603261941126255879783796969882879875619752044784414668911644165869832478299517614293964788487108082438384499002159185188445773333255469902977324015654785255949129056829800979699317485114247835238984494302458803432933828155508929797752382907331395165488293651279296671472124605667508709935937297932783307505775853973404779205208876836482660713222640834735868229910191581114716536642130852494172441369535355812616999396575197163057463248652682431053189222833350363676628559583094891080190163034238437488924948939056706624417122664411476311343307042596954291950407066289064531846037243769249736427064470303357183420934571449654387451567276977783880811459982411214044606793126178532051234560033986419979416534797561456306700289423997971205354783623656908835835293577649382982034906507049014263261211726233957470473951618302914842863851447507429762168658804723617602691348574196788101357743081855673908324649645804505237535094627026313890331132512033679416442751804021120258257833335104916887199727315256367970421182888479509828064425022169009438786562521633137247706874118848084382698650508103283297284227864766155363522222396818801673786870237813388114559212595871030105405502662792170794684798008226243752814250961164600522736162770009616374573454392637940655134828476749397680712689380369239905962625348983539895142839372763115014430000763234498166167030617729531479390241523363376283753405422975972878575645520076221438223210995587577799213473520942932131341791775637079182270019963491489142761241186077018468141583827577218955107615109166245298721789999563237489821071043556264061461921961037503493738865426878767964158926374693247166588675862799548814372637361465517141272249358926498190563127480735180252811298595001637608979464502136294823661912459335476955393965085274097409826600512391314840515851607599920425228440936230011788471683955669161288488413852226799134171531915668797970807215158197462919820083806315405236565469952916730138545037273520638400408012969303527708796769444659645266496519164530212037179009497244405129053532542481114807159711124621499062231055168381084552740901060183612272775134219688802592443254680151210766041253959588053546149260336425587617914999149667900324258572138647955070479039268091984617299301958620145567455785805167665332902696991138374115686979361040135940509740787713004617895701270933500815955021963216247050613169631243526236598367096449106999404155261938478438118019378898767450469916073182272214266862342641142450782218120208802816057393488457649145450816717298067389886675635310896195805927142530869739969807327381612450618053503508511306211621064941238215734149768923334132805756112553141920362737000431958175609683473672272239989943879235337094836620585788873181129117244837820655972745274177273083103874914698223741770418379828149333721241615490355315346910500006213428504167561699034386791816227364469944433681589564644275899227830204650279380826511260508250854568317223181347079659110672865895527728255375686830720007656509772071643709050909570271627410978270435693851252994305669549357342764387900924115901933324726290802518436515825619914471295601365422919242406650994842452982680986795624197287975484313636441930199835720387460047370692999961464408537918774795512875788368247463302750795810209726971132831000893446084464361639959845258134104493737987585200697299142370932656423554576176603885060658356641594274743347143433415241413035708262325708985831334083066421399919365344256070288976224080624936820248386760526168270494413394503537605697160211077819443755536362007592621198895065687423977041650265131693094802355136765471969380122752716481770931035160784128633524210581962444392336529530313044648792622461035060918825512337546653589237290679504914979790437607127340456057880992483127109397217190188732823459274657097259776791368507376451402669361410605822139896270626554509620107255031164376154036247490925261645303991986702286518235168630518703226481033453690639448734117864115213018588337125889699733640872576251372068472185562748947120841545116173691485327201688872079178808135484201325055303627377587334032209415587384012817049777207850870876236400266929342508196378375031171975816221363122642171011780498241542937241946831068891592529976627900437574334884935555868583371083084805778764494655126188382264866787499956674843742706017516943283708979994156371526181296036492926457282384478620295022747174052946167133128718816335966260887128644510364941930367129199803146863869904562933149952065632222180140323319600557759891898365178374045176775947418533708289795274928257072865638992724182261579285499362756670625481302141096195131182306876480823718862907165300648408155963205635705358908159036538904514559788653623150308098688734135625091884265875691079732383370337197674580098503432065458220701630584552436005572867263105481402526406273185125828153791885001079665034842024640746177160796932917585944105483498062247355166868628127524924537926320657904839929394220097470052777567596120688006074025365220087583999941818079261863661423973562752603971329640407325865771509900931206518634305249593273541978100347123226069888863750312941343199121029762013797623213693238095161528247358427351263765630691828109320108630795783655181807570158574268138044781252519386483911096206727173118699384126092585388004945962197765468113228804321474765532085553422034714020369667372004148982938153120979559688424711000011653536854964335498661541847392956990170245734121680594672729794235155467730790432219379141957688115511292131719724342160080624498556012065773390309665013415326638450541858216200783569868510797827707953045122753171116582577047441720567841595184463105350184124564565961247898628963997839919189338326744044329829473023736405688082275543120536854400587299801354061728894707888391738767516687865086732551144951786529128485506137400669498878722046446866432182900018230108784203940422360630548383198601440268129336750766677803323979714732301155693471899420284836048150319536784098143839923457079018426736974216684548312571306261038176862491719315966816967996024803561911913277935934036747429300176608474432953026100662984118801843754311175317692515267404196614305838018609325216504728242167723200339885038486040736083504704171812316207953563887210836463634142475225650955661829384116237013008284194341552121952210111211865064929954166807949203888122147744575776272084638844678845598845712067948352478311591464889667475673703956447758067407395224999502809990583891439620746642743229006605904828276329072891993831390495336702712723411492036696161479895029880074450265444715285552374367189486048884952655713086553895337859672748913114491794959206411270123697296415638288850900260903025396838627561739912314432345005179585949005848659529562330724160261513167934726606902604684412660372117506222369740762640101558253504935327887931971418191547087653805907092781379949120416710436155009055967921773626020921377844357150645211180297636855745120512301668955488522138538508729516380864842062768839265215956555071719381332416015235869001213442713181069381310557029376932500210165187207631048467417275288513005759380221336432889325750271429284513850767644990748034217450402574629611188965129733187514669871689727998882163049352179014193646418695599975596498487665562950903060842508992132779505594251666409588009737197955544560663888207291183041110612485971973268973851590353359597841091986085232171780550951137579229874992908008647088756288393526652210201120009216331371757413734051431168174754447454982824247719498076379867082703283206452297894806718708578520397081736543755411440852304633607946715894019046669641061446396504257683645734792304352422150284147754223726055033462663397356881903838362703282936737611466538043831321974822454250668311429490972900578387526915209954313867542088700337102417395427254423204053179255908268589246190378274219506572931890737481417653551934869267508419628658202704457381545305139161365609205967619706471561664448719825106937621226247730972750192508793672828144183286284737196326561708001942712803570471272289611440142401341061493627305435290857560714103366914197050325891567907574669637529411795319499339809398531891825524570812072164331180908446794290258520688150330778785132596698042655398229654713342498169098065218529635115222639497312382616592498786606286244786823580793790887623657781828641790220620162814315916864684423633463769616069021432887541260234945646001580324364366133658311636652849601760021492423846028642005211146874488727185230784108884955199691179307818034824223229174491074319863129417814967608727760905827365526524581297436534122204813940783566181883445254944919196876766273277904962927850229324841353067403818464346626728429843755353323633054030282551733886990713283229452067625428373307747919841720370593234025571332096102546627025156762782382873502395215922238306220327752122160283252758684567704542299050818880143859894346519613976707333446014491468701475668611445140008596767421278997342197570796261726791084212140639394941799252122981040157399005969124731819162087427223613298713526638807902565068191616287959652040868479661447066304950024496951833264822949222525720901862296063699940007304821553103508581533586565762485204208758742665783846512330140654979979165389144382117397869325287137909225606371066265036188449087255405270644304349058343694084232669548340111128358061654838014060260629034882268811381419277756739909950681679368778438573198552163709288891148502042307930514041955075050526858325642070756324323057281586503566761491199120072787522369777713024072556813899962437415261493221567615130700950429685101788460976466555344990530087955211560618455941477101299640396353907268266647020739840479675305342992698461196898903099932888146030739257811860308984833044196704643095494039916292918705835152901695884637063868063093309801443296437407490190058982182571297487937561342506963937774504464634915172501450776493385691095008827247884569681236499778206175786098074944257543519339217676108507418141583077345270621181555997484931047424320046690778743853202486461117855825059677902725831275012542791034868961119606063265619500935877033101501779904144581936940647736898590513176620636833722222700147217856676333913544245322352729222810375570523027442125739415551434687492006020696970420346117072204689603785820331348201888023421862608089643367321381571940678539646604648826549034391201971253583961806841627313224312538565635144319822084382048050991515246958693890910432548821255767274267887910988852165237734683375392307608565382557448376185795796230227140992947493269963464963978008077659858480707151081769696563506639822524883413325256783051235865937952146807971291481313467896794645051013934330074719445674393747822836345916335008386674507644642814493964966852659360605227353628036874197584001135605929573712762394449524100490866810189151859158742841340215191041745378420553527969148644409098928715579026532360131797328333432689617848653137029558792877630242289915277237599021764621732547234911007040261216486964286774893885604560733298325504294878985440156237684391779980982240240586721340517047685742459343182405964853767451621338566788717979199176340293654925491561992127886374556485079863423692447545694774663541686524952813412998785117017740385532093070076892173743362618140356850487285239846624228346800110367245646100752520897740466405700083135754412787180259834393693276697330771000523720189194964001207631968630645683423435193314913684141031673943977964978782042811817965194506014797850838113831088303078369358250803877787669730207792188221117858405827523700809329982998984284145601290349429704063619047163145052864600435841966726769820028079603127797772264216879727316911854860426386259125839792810548069705122628957255838253527931108760098665479485081631917015867796163557010914505227316840195260695343126026579972011454550768543083238086416064764768547278284041265076696299373532078559387686631834991066379818481102812619031468382438895930329487043503482924509610211130517623536631377027754618038812070576353005184043229939546730015471036019351613876811260155308236559175751378463604055910894797389333060080203347022100065307546656967314685361647066732262825663963853106432167908190983966697239138919164290615370900329683394171232720994614796481571565139166236104732837922080311441496205926376162253932077717622441910186450748903245226841714201284152777239500563455182043563030909247800686329229307420052458087155456062244153243522976671904237095950407708106823975001145944267480657234459577679811524379854403141709707043708949966630810938657658099748322419675247539031428105955344190975744234889784747196910833787206619325118713701915083849336453792465339804473831231584251803626292795182054392631375857209283310265377449057679123275689317521752091584141288094802252436040819070351568735608967567926095404457295244643556252532054498134851979034680897918783318116955282665091878913117841607688880013732855073100208850959985386787113619667068529278472023960553010373958105905680883799794245734518000879308478361217547186270156919773042126265961618649891956341370073657230543855115550871514942142134785188752443867422239656569709351809220328516348621734774762008875356012193534045812255491030821610809099625999419943273580026461501024800904236070102444749147606424397918574671466210195974445807737649542737281324668585589493132252604693829886905377241120001234969181698099093213426106205046059025662618694485284226562792590121315266605728701389958469910460715742376182167021293897912096297431839726613922318780642951500424390337531888722633268762792902491618228097023853190805132630197187691314714312800815279974948868254772744480233856449808441350800871754113263032321937938487936629010537520160807149694470212643394319719851203225634506727059674871158162256796929103278290488137690658095923794229797194507913229686465658595392630874468515027759614632467566214879283242333184670531156920043066112168932060166973957122687990729941152656879516264902909704018413808895463143997304870342819731037439362351563519799552173310244673256390819813674086050423085252637068202224246410244721850406285004169259660673580870885434070739998928334935292189715578775624425191768797798901293131210068509142778926378609163566251737747797159545721736772829691754319119300628147301211887223768363327592341393227381163060973313585905366593149564002742395290013986082038623158970532263636633486787731150050843948241421931114102435044736481363580858559968844690908136047510455296043847749021906966893608897178899555323387711116508783779445610714794817716192347346074738282117910448116626092877389675849033467006936420723770555298283750199172508034650876407193603324018441928348346614413605515690195903345154053002782807250125989474746518460366129632670573820185518033559237272318784429166117778337130865220292469209343257444167516314055362671953694184500099498631398625630506619115463858718453309132430286318381259060507803951498245837917362487597652411036287597526733317562063588403486517907037189095288618860848391043530217370870663847226121191508055116510296468859457468150533755464546790545554891289971542332833445419276937963076941088252791768106987371761619357183327144668397453637838193174902246782158468230775152199646443946564588101806449245057061419066822594595525949511307745415934642032419526078821498815166661124639097581958056727823459190381531671722416534641637793813801424603827258959198272995544800659004440840145783137542769353320708368218819941297369753517668212690154119120437940560036913231188883513105140431409673932767110982216574981525127003511259503419160853239968932158667014985859932421735578392396968048471153015738420212730581000854203220064994584090636460001272427007962226363959349727939612403176258651496688917293274032736136281501678088712388000390471662122089261883258470964409657839238867050610398177885285446289732062427457700195894897756336500763509442865399510999989975382255619736763025290645952549419973261287312624797130862535254313838343925712605979892979317963600426597148614921303245353751852916930303509978837664167245424644628381778154553572314195168739503926020303566529020480029293837942801214002891473916642871693136812959627768923092491912641481422743968305651401955698841009333835416824162592647255513247356485455323016613832970485505209750585775049015851432718198436897480247214539646709458936920336909374402317604141900166955439039863989203669198738219518825909930939243979980180408638603069931647338884566623530667518028190950257434743542532864336155186752304758563082896627220584701287680713046411708577241829733877688504480589312769371977160980096172014979228082312002898388138819057061420702300885231887201902025788629760822980423451011121304875261153727230783705270830152026326166308515503673047149175397518326564859530040920774072592488802069384032710255429954794041246213790294331648422088313722408178184796028084602058129534891413027461204985363197350510846113269834345027135393543850821818543249050595197744901015481789053619910890811952690037590368565564865331799855381198000720773872833095560446445894862670087880268949125690298082340715958627484956888944819713184168387941679739656333214066075575570956256677370858780508942305398080545748016700660535766415375900485055130337582128629376590783018116570656358290494966737055631222126239404250662013469464001850622383521243425652869871420539808049205211071752002608840227469701585979017307124410358553753186990559920377244019196607141411706236844463822101378325947294295633410661870931377919122647425347354719345153175594463289763409488244254816690118042172265286292396202055697117925517771326899027271595605411866979939433301614687988600045146007619623549067977281249048980993328552857591062657802430349670963683697504634884761813725322074738999346968596672704361870900899498083431866924329840164414295624770566859012459676807434921581739924710144473779024740980219623527914352008462467570538660071231261095617945445046833705932758453072235603667980794128631128054268807586203003325209890018071392505733148251849626115253592782976632493702379171614585004018239266814855466709924408385119013555849816526947846031055176520640085204133750290994193542199912224176850080807897899793909193118264267928227400075899284772238310098423728652844083208758028212419215226769181814014028556346312368441611949671744186974347094968811562643736154974428863568088526917258004959188030486165057710235140370944338797466243272407833075156708467546442770822300791962284584771499716125024762506154986136584675413620753530293691602479221436247120775118082351470698187170819466445643405150673531354157513965226150490571232568957173059680931797231134924765477326540865449367974212535837952766421642764695492341405234427166116131721217781735282485940096499806139102235865977031450929018808134090117942391927460786676204294513111852560975216849613837293918394570338204874896772921235203962659834092549576354553059120451347800906546839529994976589190162487990126106284486316570241809770930478997877300442857395530706954332257013630750711053955393780783222610612403903311630944661905258530971548746935793327581567266608232245781079803186859314555414689418638152598532186620933473534589665398624805582466365486956893192165137964786029921602791925864378721238930434576059576940518711758331068983492431261301723974654753103516570904994346409970989483718496793702574242603401806850282972893322120420610744906409616909327088865844229410013159590544357094500568067560244631044439809023107515304930010051403583519569039676127669040464372285164210097024295004002297711649769284861050308575857400579984210304713492137234726368502659166383866904850906778553939200085485644656153734315503795531869408606665096510903616099184705287158066127102795862559381875425531866898882537158382311107753792740981143655832791580616250109168560109171969593827702093781445373479818550389958034903418081497022395694649290353647339955599249411203418889848535026006199671193935279767233206933282603382547339023589264095476523533512004429839960454973085316507963826644579062275872052450056782426119780071462922799308325683647554732061081002092300786979261805901294227777866834026679163757549680275478915513422961429948428922258265320953023392475798835697779936671562767800672990470620828807196959716888121240232627024100915920642200691064079305300278853681751512510452272852018971671239553711947649316631572624323216233004567438677262573304793555571602550718904671623584168894546897767936034758523914631406817315957553318045572412188192023888250317069474643154896185994199209116156579291280288878138824545595195928137202059631702770603419124768207372117141610464254701999718358983861635049554760496004642912193120674116803221380417109257731405366917595062729675899742990116368323157499150220519562682677500028463746173857750305340562673296248103384988314731835735358496298925286024176597833028568688016588507614381227899005510249914609653561297454421276130886659997816969056479244671813062737964920581862517837447837193621628041077195969843471638076926248074324361026506701852903394942055869189669960390817838144723522236196929922877805520704890316012668970720330582174261969982483259409358032232349375941075807473503837981658853755839437916155595426013504262001528309005505034324914725035167224446490478348574232709936090366959673854219034411004754713683078146675439488479246560693544291607552987772303649365660178681020000555527610177527609044559698461904102345578353070438438825493721356323207705648433056297362669892492521274486966822620433384126098109576658233211912396738133499618985868435022266867582805773411669383440656415497323043706001153865311756540198376203491920503379407675986222339520074969925359251698548056336549611564755411112225651315662126971674355715176410542592856718594950633346552880334116013113851611254672517560564107687103663129877902471420645733424249962271769638099021294318422233501339800476885457653026104126664866335073901051678821203980884331969778699988424246124168476180686764180616326384068232965868043879109668351554545241044174379140392326487555949135068400295123565330408480736185151433552633334068814859597591911591978002519070946152004326883115764233855319763878545035419329416146251524390933277095681805170329967701325068933313337310692021091211167410580902644050809485617695632380840940176298446153290004989625423152964811862886941647370369063009335552346684204584033223254125062624992192787271243268194648288700810405498176300764769809519851147155755457055002959499476113307783662464389920752674534433956176742555782571097583906626044445319719926755009974027889453511411171087063553254866307950454655183792880702674692887494513627607051825471067873443606510494182327671602028333699986051247362398770558176677372359326480145777271274915294471001595801469228534695049837559465440918847991504580628623268799984798999400666550343416832263216724529573353401228673917610158816538427570865536438092283215332192233913596430956363757010457418620342955101303302198278600208024338043614650265976033364017645265263908474710638934309689240334996823146079505704613154550560379795756290608223104096198633643986899405308578270392211548154568999220704261151540015008996923638049435399788137289337916956543987304338065721582367946473334116071771387072345384737410527011291808083108223869522203806162916304488966160336681127986507842871948669196479650559845300698560568711573923966781254021541157949297886054133623527424878165982206665750660525429589444392405517670435819062451873503711841882121244150292358406083279468454159477935271121318901744888091319263802943738558240208025632231815662627023245891200725420957463083651080750204441581771951554617335514718244909282020119823891883034933159100239569083068467765194184634165499302156292721184728802652485479000844514751853566801345829287325187778835347648052983614623637662733634606453299088962253287467768271643139349988121004206495554468814142670013350878504378914675612972662651506215086222849024921466625549274712624085221875416905909175894278257726893210736962876707393196239778957130177836239431296361184729623290963612262420950219726923789216555350839639160511043462565458799685731084097269023864549701500338810127610716384274471271630668360205323992727877181122263559459174372430249857244456515538116805571466264683060737599463808455872275471809462978785560876163078863102052671167317460722525941304391169303140892287515667729480466990818860941689548467447418489609735098649023337249066208161940282580601740452245539290601372493779291488172176266456444888081323276738026383737976825032720684505258048942589060957238570933010518048471179756490115301390085161004729674016962423030388496142240584521849672097905614548485592463228180865717620199292460820933282263324285066963502046651512262946789432914440713213712195806524812566388053273019042729751098528153213274190885454633372850440602969728172112684514306660497419748484987884504355883806036108909714411978294202851075769392150450499663491299933562317383621210343841005026498842012146366291970471314138659977913755573671898149376509822064945264655586810368156133175940780282648588217698158862155007026537805568049021433892628324442124753640991033624384611645647549572494698117498069502550486125405644429393356993157901868280142335595890876713259591099366777168662870134065486070095926890238406934963645075622297198166318862761338213077150108301621300384999904672385433105194554557407756939432124123982768417118367921164553685595818117254312194497011937337839043598582452100483991155423918434407650976461597852798351038299785050659471759542379551855210857476125262185120836236927007153038314516365115019842459746212447338915376956477950150915994224344082195795757330467007903658689320051937125652139446070628318032574848342790923598959080948673638097148276856537179462489716830837687899157250726509870633948059251832187675645229661306132819309149663069760779297831200847451631643412722474344182024442051268413705890914469261652257709017066192731014442733314535762148230701545158911933092766398751142158623591187660698940800346073568230937322206228535491239374597917277294230419701169600497380863201655566632639987315938809523741325276630845191978414846257841613607744704336447703544856450136857109553617645305133414461215501556289733639112002235829441413655324237212855626555328678009952211879589487483201103522069533524534174771883806567261207406550350618524189478927345719008786127022965150383155123464245305214873685536050106405616849041642140364606456988845224367169070024673961406577210739062505670109879853025506664879454917395370518576323792045277104315896734360446255871078736664969815206908251773011561716227906236167187848153364470864409746870331576885955707137878278911418514371259425449534352560937716645854744060815519118302950037992142307920204962797332143332906423223030584964873992233951154495902968409999549621530339515461567584670947667026163133288720326213055083255879821069079865741697424309075458892970533885740437471572831093901663131497902237707744403469599617790566094170450219090621042734182202462359650570910008524431398753078318551723997951015088040679587618078790351918010830232094041160527410892910289734202958623393331615954849753182006838798002955013894138183102497726432173418336671555810142633953876388219714578166285620174746293774890231911961916817596030803630792614719795096378328461817191912300533118528847725621303085569641318658440698157444678892094231876359027510762216809525929685016417341652196329471359302366439301511675688492848443300799826630784079651895894105231856222643266241894306996143750918914583099509580665074866989637772859241455112100316921447291799390532985451825510728718314849752391162057774183796421170894339311391344460755748618693877805190160661302861905658774231370018699108726564989141527701717165487737946479584092319191149748594084381064533626657630792882367376455734101791639739800689639824496300335816231355360756681851228326328243351968795830135653534438922202291359089428876860553206569779263376695345610961288729730109565113544882583802619237148594112321691004367501956116246654006846813761787820675383577657026380278319790610470878218302368194246972272648899228588332308363307646467770380949346936227505711476199261626489790874925651972402156462799462554904067875518347998429632281265909571105508760016609462458601321036755208296236374698474164695834379563037244076725451016340912545334437063756103010376535883712748742761813865175126508924476970649267185399841271574521396433265115065628434399330195178275714187117639395479008189207552794847615064214382276304808787293562899800205173545992319441695649803860334083237639353441410074738345296449683698875893716366891418055212493365781140267544833732291653869244668063668766998645881392764652223017834292687816385025135309268383311251281073744010139048736468299619232095186998549937075864572796840220190671307591795747442055799869889601119645168934513896634114051115921800047137094470398115384239494103688985167546508358986173549173840275743812959493277507888137870308216775069427134690430841758490861843475721863924023896588652106615009405929344883155635625364652301137054310508126761785834105872233280415326953076677675754988909380275126931863096467611696563989843507866113259835408123024425559164176954221642665127813906143186579235470761746821260635853774051913690828622392012719550457622466361365400892953380944108457481278785839517522197569603850817552727180559522314786276934734954688809845542344450464573630537585032587122456851978876835798245173262814698130444766755467190713019113296614923359617675854311559372672223085231013903314907180256517430944161046011683825931419085784845179460429354902889138751581899495552071639948142018775678299791205974640524501975470256396045603751665066381823490083934063583791506358215834620835486552578743891324443161630575442014492542901465800362647677184839783046209953473163884171962581817318860353926856260216043385452058005569288103872731509048779182954769919713422935992864236795676773302392899598208172377881580437353173120501544981507301184213685097119374545533521081339391197240914445404201261740281558656873730815122168631461779161853803532352691749403551368339396660779181129128751348899756450206934736727482420297335266134315126425978715086439774554029263823365958454357738675298555123506023752544112029388765779247654638828211125753715002560695040304210210848897592741701950961870788776659295222949720113008553523753043137342083193931442252803888473206666170966703353786432906874322288185759614918122252899728520561116342692515342948962427500716320934584691956788982729998631217378154867509102608501725546197370096354118390179793311045747669289064625593796442338544493867385607613378397427424439350117561518571820144338288160062514258163512031760166022033244368617121888239299531315847192654747184015831595573099696375767700866160390853926493321485362541175087098460864669428913197918589965276096255262050413987490411505282647075395723072013290656103733218928429251326808927061569258635946104741973909889078120213876509248533913617101220193212892232092990664099436135044227544154085903747925096623318080211931012869323771823641220120579711318120539303392514791717140622711213005297802800428365919479466435879227699081951165066674062688810230149854826274136412130101768832564641926305937029971543920218501839866769152331835534850409906740802204699168291705412473768312550905727338569065942028970252538801063512139222093796559757728812445173857453616429169088226081884729316318966787905289625492080107491972555015931942798862109980628134596393756328694698411078338735564945089498052554593661739549329426439990257735602705020125150763618296045269835614840520099161389513515915688701621358670681919832841910225495585899202060421638885260909626901376257463587220760216373347388516269491861184252198153473818641735670380546290983801053007012433032762607191307404838933502611539215152686732502868712053147737880903295143217825363941667210076337963187850392985319105019892319479868085840017101600201783481467779996223479960633694988363594359758008182293886255257054877207432633956227346820920712547121073116566288514050745446777451954665263213174420988850885461530117487207017340447674836855855131586218813892848959155157208968904637873061547820491459888966987122857668323638106958784893151520772933258817946603388566667373530246968609202460219080736119780588665836483903058709366233749801690985229656669373319795641374630356917046084650856311536401031354785551713281267981789297540634754688129926557992442071522585072024029516380958939684412756089713166654112972482891773961052504611983336349629996557443785686581532562004818661011287438043994232592430205453027793167779310196978428724576888108442475099567828934740315284866603334403390314685696187347368669031268000805581314033371582046319729572258248734179793105326615181284389223003175350590659764922933355358381981868671215257882490342337684143436152955539247033942982599740201690044302755865070601206284489657647662435211153919649527821323183572409466251992642464101433549197267256445526119725742756844702821599503139505662434147352741710189731414637708017079031199017179221435745869618040343125058592365060316537505193238585858336399221579912911036353279914045965490500373445805065825462546395075186924066777632517971135228444186131024223193018702224349718997680736063409835787455615672611503959986581395687770050799450324933786070932589056092912063156938868444818576024437079436167152184990404138164537075379945625625644910718766254836742545383358164194452826046275506885564660556066659093777870945104796636066852016469035916147299585530323992592207936996437361203057497826798312274394946189907600881681737924819063515644294207155359163969642136925902119199573269706862981578308642747274457826756647809799274103641480228634636673413904577622583653211460262184091054030693953236235694815053616522635112808469744326976983284013983484299942617064483708060646274611593269755321555530422222885543462845108328793294812606086373200013815164504960204977817533156230375193088009123298083291680187116261799713653520115326289203183596483474530173236726147740770523984796795330214732853290403249433875786803985259837198554568739008531391532878739299121835314713403809871452334907325339736537901829368014055717831308264727031164056187850540459504314823276706372655229656193444519894966598369506529665603746524518448697258730518528779825724163802225850023560817444721129358261062834455849487441015516435784306766530973583305289181516088265418718691857659863469046268787303671842003436650646212129357526003142839757570889262072278146855444235209780539989095276277128825050251795881757105200999340499520525737981868784796127285490639676298631480057226506146260584328371420217253863387642703111080946342694134311669095383712589542503360479864794008385055274566164144228669147468396912123356558934827718947836093706369145014102377880351791998819773769178575202511365457833798703576955402091224721644265295563802562606908611176081796029513305964557535955692999331314044802209669606610686914734559853053956285549947227436730725404132947478456291135476502901973793917419726970299054362231238610362587254062384386297516882543913269670029091859556863779570587605173353827324183073283621422804726027721437923763249464286711105017882877543017258004534120734792073054358683897183361876737102612137516494338169780712866249569463517493568039891544974005200337122326272221348126708811364470476880050763371372051034252664844409050302203726647339756334428309805633570449277479003627067302669581596996527609647619732437685490763393315302837597882800790072376658827299118675643875849872295361999730737332900622140636391093243835195292089615290758054336989132434738865728614478084773038203045691306686137334300146148460929249383118250430664181534568884299929351913459459674010018947368730872407459172941249347260358975829350800265376415591108170295395559679544952842413832140554799992766860202552426063002238227411092057760787478456974409630298506424299834094160287115886256488437448196418236539234049735331147658492948263919762899902137869172964934747722115716446257384090432778659096211352387618515572465885903480490690851920815372448168685781768514995672467299507614639127706279263433231902963352749906275454554180687713187430143105347312177850119736722370049958742783403193269586643349971550469103397471755827479330916162036502803757651768452723665160168017795454981384850683792084525162831037388427154546242085993515381862416108541627917614978106743764067204225778909342252071613909717112842450544928838089312326730619228010303462075838396664969098705677814814409190526590202754861877628069307514351159311648040139349576025477031706013317510551796945438914651785067540844459831681488406601697080111093258805431850263259764327493213588598059728782547486143396097070508046510506747700063436151241924673457039105362491753381651199063399618535414065767279931127986084130747472051058489136509953774651277570008912580069523006055565439727261847502952583801694449341312255315569338246445574883231699436782603197524377350854220041575283193456703301294867540406067240777444345841890940960002761226807734164506165543040050785691379795223537401399898640447978288777628246921488349893427055975082324800479340378853599146527261032549561890236461698061916642213185199353930359334922344149282109946372780285485345038986166887450307532653671814716544614149934478506395807134554014960735021864406035181464942861406539577053232226895647460623275761758702344176864890818042157017362289075776420102922715906647013126985680508882463053724991229646386462137078180602532630800503451288047469522683478184800288635139725489050061090556551347444215131391587037708856627399371046568099156290465247553215664681635402702702824075995477920919300229464105592318429444142672512102072481726198625587716946714064486591405927395439492820960144281605815824164432370965964301869739500676936922551336718505343874929033464141900323451813259106945354063023592136548838676784430817088398502060305062685825756666637733796684977519203717757339041870815763851592519692205128966936767286901223189208655923678419165826042644835411082079425489986814045561826901080180385834750330495804391252238363060029472358063257024796178226851294765792141386798061619850521729306663331136216972329075561864384347421433553920570653994933467566261006922599832481100714840193809892896962377219958138329567247549106071255972407353079643105391298600960289881279250161502845940011619408111820819052575564838689901205724030530918320394565035380270469146365810725175713954198138735095622238021179148420143011453776828340907042989381233297121861839679811139282848845027135827666865241121415349385611069642437207487960674518899597210007547749699510416717377793771435690413317879964873424844994139602886185692372293635854148530511391355306214866455504385337157417398409705581313098073230794502283425155535384637901049862246075207473905469830796895061749946397389007246783193287665703858290507205495100067718283434436116302727522246366175191719404242416334134140129038936267558603799592320349620419782265986283022120416965902059903805643378941287356167124237078812018688246157897988528115934265333391704122170516172324235581895263420528588707244618536040783578760927239686323155368435625370870571532258638877855429196491828145311445399982894204434001492562921459049662107653178876331141806177203756255364039794248936985184926671235315612241223544753820581096909323562739013816347171602423414677581289610785984276466893924868715543967629867004289560574297877990992701869651464201663336825948780204899877572485450528561639451194743995918670524078099706366129974394358747726375022650466000170003556355051440558183317721754733140891282874711803983507336940684652936562828013932524355372249939891988693742172105325635412166508470625733638135619380836002027569486203491298912916835008546384359579772802391302328838459267879619350788285414949131982242039575629479051088810732446043947131526452232825648325181177548138325908897186307848272425493053499573644622585494192769840757423669283322784588547524094782277604372149691533091216176818059099204014782172508090328432145279794918131218249634175715842498879153999015027763784538130839134855045295855498807481229042707900359041263230973033268935156408537152885570093931321749321907410708528665943261153842049326802793031992432881459474445344938004156544610229155871274759743934119792459427077009489818260142426902618151932697448866104484593849098303612197252158581861734767891721831188928290439247774349624154215734679072253099464617346072335095116683252475038615833878719485561529347943893724403021318758682723147941203496369033191095786721448317950171736910703469352457608345729327737199543040419867909367826706731101855797592661466572456382264659934761992957402303266480770047331414499521764436365760110761634025971088668112772757578810462736805770590773567342745681379926912909935658587744127858238159713584773478442554725031586882830757928358455057765752511134004778443862656329632675285655122980066415152514035250212676599902005806438887695676662818915479378844340016383450225747333095964095733758568372598579220521202208730081072401085518387546682059381562666255134212276962002223150329963478116758064454059999249554739052894049192025445494798389502067640306667072370821539537485741048792905713797334606561847808282117433923385509399147267961072868731956594834481406459779759830671492994769956562409417443392562625516290089375880881136583942224487499476796593864031096338642143644598317438122930480201487102824793818074739962996582707824807812576628600755644242416938049133399770521124331579887971589511849232958381524543040387959988242657082012670562439704796277167486049713423491932259721224920238525810672249131031563452177403052270435043351405256571895895690128835419158867370476067073844437832575049406336392857091834942755615809156413811383442647304439189051795010458147951537545347488499116787621780064733710537986281264492844445684561900129250594953017527741298888749807201917283392209372324757344501504520654232452008166885234815656425866954702205415699030407527739645207514513424083357768331281004199650247790473722215168121606249737566666879194238894935769192815817358202211116307024895091527689767785765264069015993490822803833835841157503382229240464863632500040063737093885775436912323456853462718728977751034699955907079326922435370719659993914020772799199920594030007329282210173393296796292381356552717182035939804332911793618619094578722998134525924415456944288235293002144987562200715585875351515545421189572649467130968583700409890921267603879891777588339629131699743401935298477862592036898953371736999270180131213406287188249867400608441704408203903260988804108820340741710499354223584877713786903695353407983143093955600289174654570418513800167048812888577823974457743509778943530764750669259388200641825796395417091409348129734213633121277569690759950183016745102899260091119324962516547381238443608449698925884718881348381361109200740209566302462958954170347986264182901546544334854919891902458630455266477525661357767814666180732307508896315984895039230570621662714550924443542457914261647327814452822565395152963272474238942445849436099963135113566207393030758391371213478831248294265632262044207385367330531634589758505050701807571770016609337333983180051939353061449791069845049173004156074477653868040878450580777214137905728204769793265929163820877079824338447630539060352934797609528634100570077509720862383882932933347136012528096015848074932515807043889353832073226275987768757117004289037247141447944898084158887390702706525568954923319278723376246666974948728419748282386033012813784252310862147315749480696915331336851685722910546830334261500645264047492724743542322734406100936033129484430673419962903421144227765192876283175614299273214538094736710238973846789676464329823161693188445459360727352348690837524984906632166564162920261268584507778297248053038723388768858250187429355413263006141802500140306354152328522506435050147042486483697070155680805491274980770723860297774308350478007205240665686628980607816921877303677195669609995625045508681529082990222085691200449571666679297011205746056123012019002309073295114416244586388579255588827036034794576388007268137626542217506258183234672115285243510049356580479275482258816190952086296610774798931104495149743936504541142643605498968609919664575465542520900098905035798159852889716847066156245560361689396522937265244167259132159079324550187429804024907384682564559111050672322774983130034264525134228281116164680854438390779172273559746482563666136115529774891654270912486100462570012761077847992858595876242090541017344362567974211164878045577308536826727259420082497294017402135678621311576048910960012329729373750217042189515169925106928792764578884308783424327242798782352046573796771698494505834926334455198842881579393211333393347223832778122131727823947196486543267514292816432867774692953160201997717557275406722983325774767832174928051722149795242840197489710080362368026685071438967979549679706723682493935767338788887716381250319858003431436483302193694193446277606154132840272053575142176820852053567717759488103390941844405074544921406377534609827327997067013379891064105066749178695695098311022831703916643036762082625500948533329533600087484067345992918318581760810089603662989382143675001923470437526344404791361382958406526196683223436837956940766018003347548184499515007906657075832991724791381064886689048844579877478007335124593648540394141486828944514450453420695961496048700752361352595824673914649694185573710325051570435311354746278729191841881745234495406679662444483635001691905900539458454603524268100121627226018686842337353588102399481804202551184257855965398074520501327193380730913583272799587334232844983033497066201710094770890416560579307991795662945516956240653638707661855464768583987337652178691779422902264370202470180984923066273241595440084853706722472645476487422604137562395214332607149140891518414191864772242777669726135809774456375076243172107797985716240801104115428906935015563910704450189958107510014459519504497946015207857866532210049923208407903689057382055643060879936017885129737122942787332236695669896242397985205894935695287929117086376240613423988283888345283769083867311474442277504741073373299957671564535741995948832316407319685736585453075962726117468199930560597955154728398865743850468630506030085052378757247641915133883526008706045594111498634395520431961154954677000897489483889222905872761070915696546990981191222172402927752809765276203707024618673572107504898735822314134342721734800638797801642952316867477062660609272141296454118039052332207410138407201120796401884833962447784958882679135181725820136096989558030083293287475533378850633393837303667489269622079837354316271151969484700449782698489295404647643703905640407271326717701049315987877007949432651247213521054858727118217507448584995510445113579045930839319907890256641252676511941707191917760399774520123670451197539167378963789863488767838493019002102415085427379524866230641281877898495617295797455495308539426817493006157099945687972996136024260189991677305580748798086740859307296269462017691992523557613349304104119919201820915889430443009828823800611621325956908361071845210427066742181785548237347399978119616150016587277649186094950129265311966145824572653355635595682563498184545258490335204531132826285490925891736533571879720301091539747088443669088814584039070410577448465811129636903922248953948775616499000222031063258653570837163535659747726326602668753260168870621891397511017375695284660268385326478293540516879132954121116414808451892564526773838608888001583524769927991913905121942616910712848732195596646370311474993900323203508497395425662453574744419942739704948757722161389667408082141002122933701177399359926499923422415090668101632427891506523692178245502270732189789493414424961643796800134198575489452762778342834862227770694724556964582617662209143824464067323855550169748180395423514507797332747447107822338580381330452504361620086264006703814502326540097510412747128559538519884002721428465582112264501549404884908629435938743340929535230819023427513537300986372257752804835052074222988217117835851320297270975480619162715596219861362030491341862912752977507684870151091772293469451795419723498624230552580291070466382144606092596284439340202669694467986774005862541245164766775036873215935772251765917597609193474621987800726066769622141968502957625776901564226397832292876521479142937868342856973645479301111873684729589016910606349711540074742687399595213019870037976141854760713174186807700141551532791817435384965549094579412842533539216237966499128328131100875372453913277701242053490525789076057285919720532853796037202015069824628224531397383387982481025621020942936280660438720416210368071998876058286882658833188707271590056784528777448604133868292542243517265877152906942691007114322304611694936575154016204773909731133399343524307888268180352372093126767918531801111761677986071766048937656296658530543052959003979206768425566748321274618004122075367291693174282407589219747836472479919518747098136106858868482673551160661627763720186121117105377930999001441954836511825779644516335411016522354169475907455978110670722775267104696848133069098700550621791236583152451331353310108976272901521389463854338281960092732740898638249207482342077656441374730597885213470310130912106179474493632385232007248686689146618151761494867762573341265704546036420525886295558178461721144328242344537482603600820525414043719906936419206610144270647267430426302369749222908251056176151660561278574682779343968477298712130875469782742845630008589393513856810538544679540314202471034462150112760164023452320437781822350224422667029809810037307667758768880783017792020483984972990172940119273828694052846206191372223061085239688106570329071571957992245236852921611120443907691772062158973045825260550701758449456313575856411043016702790073279614387366804544678293430666778161788781965620113588404106994505791042641614308536568223164740400895662520188107658815858603297819398945010775417319804344504214972576569340227903131473408017492548669165787659409321893530378337733186141196256965219233513300377884967246964596560244848511963855603466242101879973275311763578376845718233144103072988705093346231992670476490212038253526506533321069877599651462887772674153290962105867295918455188976632712031788169242822945031003986536824903881110021565702809826804412317393074452937920070687955221594938434057268856831471940801459104740718933699017461441095981636530541274959856656480059233762715706431157299743675966365914610579953236369939341470093703557471667203668343786143041992478407553944235672039064575303303038850832907569220132913503611744508713387701052842823521334590827587740871583373091860970058298613611291550091220225653428859042696742102165979434672470360738316678927578485144067604426834632620513599662529995745429088713295960423264937230219237325505948908747861258338021871123315853397541190991442916617337637451461750121180084788616369786452120502691584293193803786494526346198129212472858098519086218452101455602389134172177691025193674659042894313906594898585427656971517327252980378226956095767090044765246790895368434817400555863561787906873114471267608454849011393123275572745352139793129684436779725732228406329626436755816087673202229873091317255919741323458867357618623092329519421620199451562699689620809623616604993087400273841285835337595169499324130404027145142844886472807403953425183709181197439804905944340697549918967679582440426259079517991303806308000307576329260644977725788913294018356580537137699079659787287395011439195628734347869410870340963493947760785765827754547605046141810132600249028619777531917447035861188865562694682639300362669352641678975712083502567938878993810707870738047553462006729596805384330856770951361316623214598368754149354231241871811369771959187581126560746365266249181518829809543114710756972742187181729220375096703192554315024805490800704369763077403046831450448498369992465540578909815683523496203304077363776647719842698518974924910352516023684789592419035639870953901328292125743474938254847379801488411253374669709550597864137694460327913074633612537809033123009341813599822334792435454438088880692050127215248044184595237787441481653725698457579180258822689048921155534124475350776934786853681937128198192104722397525743173223080979727263039830302312309808654044376996853569354547845616878025176618043610411785503199236319998948232883847052920882145856365424896800626452843356201926410236910979433596072200455276121283665213460006333392350421667136652774821566010521088317088405086299544758463616620445784761468954728177382470727237186213132128831794861454337308506484253545523633529468034159255135281727791968177933720095291268220503463968067839305259052358830067189133306536664925018048314886461316154113516272695126867134510988003831029850286726651918871453844015161138052175700126324459518349937767812430508244238885134034900555059212760693575795002211087318897537443843967469991831601354384416894900759555412041937872900920423500672239215406291715850419276021928243480734201076276518629279345695435310704772051246972043046771117629398846618598992652388362342831275965218662582837737737749327475048512538336446606457042292547575752462833365372111428455015369375545320747656299186402836292697144073118204095922204869859873640687161557065816133452201939600461665630848876747484262995240364592084813862170631862954336511727626371592491031553996472907358765568638273091682641740034872743123242320049666892390856384664842673758041065207042565147403692641311559389157951167926713074748696396013081373137484744943186569026613161514874588169973712465531004137882177265613567528720207075337173700239258071756836082020111303087418101262979310011524893052270401694565852697616516183238358867309443076320311318491067160607717727427398589966364349382957313515248275087057051113697067743653920287825081113377200591063069613086332307686826175240780938982583617892585448025838859990886904977188858211496341208161428824996812337293687109037598974744880704465593961280681766049873251263114578480198875836910305574126221363185770454494187086162967986606770425344161447105557982285764603896009331595190026085779091469127198812394499141392772319273082642016402858008363490351087650496096149174909356885237192745573477683089396838019611348440659727382383297811834546665614192137091506931134177432085551111723017843275925560319854355998505242159977882858275329780958792551126657988582827016937035581943164201545441100474634745988565931400007800686739488201980815534207720663559407335618550456214638686743969795012298216491251273756784155954486200256734272249757368175739622713722255876022282807310005789210543206807010688235096504935458974159470984917547977291881546344243127965952929256430223092457304382972975905092549238587438325971084630692796894794794693751500311348607131566245616248340125970019687883488724953552454785053507525774433574350176064063183213875812443898506419512505510177714386534556358605813488154234999104215424845550122988654185301950431093730236958495046950402161328821734716672403005222275972606667495344433726776627430788193432271365362677220535610198303921858853857300651040662707856776712612310674916170448408441747673964355729404177419360090264515047399915137158378681232718543276140806987617203328090397948671970343112032890650210417544122933617064884281113718404572867393493034238336577754360407327946441115698263548069741964892208424935591562428406532895954498328203414745086587182742611465963779104584638365136177183245224432925777925842532552114136283928272272141022177364429968842891309019478480834739382452991194048758342621149039156679960582836919954688338271951056992615417430327389761513695279806642152195866757638706121566201993227272460036110800819407841819566007028436417326072489817724268894685399778972969013867449577457254888261373715592587119459341428359623551177458432886534961090372786422562232117576203261755315096765158726126477938401646083858682430051031905457858045418490780556394905514087728251180855739259998206596490568002917515682499210305469910201177778468862889381381870813949560309017066974969703496712347301468012813971843979523992845090521606819273691301929648861547990008656338749126399067540320308827541161130558932611513246076921496722877218427609964616808031187083738071411224456841265623816768587345844484331878861639081872799569047012123404130321449044083864353499596086384429695173548388959200087787132308386282226938377283991149615423136459351690210109659460140396379625381317628758863463480667048175141345170583795312931297376883663059374979328771697104174282508656308856523614513824182990178180662453886678697663797858903727744265694098450514735378736077172378773137840491676305468584107415932286133544333723515443352887845090444384262919644819656026464332597315619725720331055308086790028189396086409653246236898883645685251542103111003825445161659420243342311194279392682083877130413440488931032137593416946139693955913620753334731729094088767705816274607863715556390882998024018001690713689142301993844963359891122908360140635883675732321178532899003438780751164695576329395714067576009557322997064585900543553003181812826064688884586840575454161439529095327268838237606376856274890771405098503026523166480588222360532273585037429443554690081640349521959464493250844703200054336375377117944546626163636032752751445954399554167176006434148195243145668158763644714663093323357646913022092017307253905722007253126616271807362774237697445358924463574275132015632729693822448933843808938707564441999107697919404329528896650233363936176474684691153381429727692779092257916310150458990806544815206862906640224877602917335279545941626513405315017066556161770402960224073846279058122903528200549861372983722399938310067706262677609734120680794351394672198511192988898145242595196905814016268379383555595398552132223511734580094293081610974811222578247238039758614917249696923591814974462749955237198175879401397597628780657818164082806433496076467011863309356242348233318255835522546092391732726226790795442396213012917943544156860120343159373448557197275540830385507776607316002743233430343891535661236055585929246959269252006432165939977886234982996361215943571410690643052332877949197862962356863428801870337532936019119233856466148445927183069931306136756982902892674381458679336904768079768445257201899521952168651361416423421622750911386930762858998211312426575803390505590919272515518813677251748135844749823521980353689067621668656868774774894972220588746761076423897910097388816579417980205951626722513702334401943062737863945464126473539070182521312936210588376103405618706509631626541307560591633390104474283951342390056028961072183887844806215554443873853575417169688743635500126241937557167694355262820844037707395540519321701559799440543039435249442588295751188250586791516413062093487832535330386894476331740421446605596800734419239631911149790158276307386552567868645261115636242678278521608846068611823104753085513120675588554454400231052784700999956812990680920848994791683734759093104381181454847882356341669442469751236715484872465815461107481254201747376088500621067528045821312875785346190394076625575017667026190843368126643254507944697008254112266132363548546536047729343839663632174753764357644836621167087033270890680922887619423874863161047152075794508334560765165042852669227988891942225222993944409119435154280588613983905083343857213426304499003463819920367089394493218686818252999814712474533615643678849449130840466893885288653409529251868688260127237256672564009303429435658417000250735623271252139646545545443995859127323445045973009316995436428072089098311728116832682421771835562935143080111521170092708222181874072720127956435714010342496873706926097128035421863250058003056462917872375739264128405092666528959275293304730981492388633374138114212004316047527682419011644834386289101379952564793587703353792602456121382674210944856381533028901329031275618345680220270761222791744026753928146577118649924729094946784360813939576994883031347555287921330483064333345096625762330177655859455170202091622902280294995341464039584283557190294937829054310204421447987312076160399228282166272006089324072070990576114674150741783811603280352954363052820906714450497212087722949373662466767419599070134859240117613649345211401063847857633408175092784055386388831778531802198676199227306008093270913348633578753807842667697700532399827283099193363987937671550536075299366215044290201267780012553871283281225985463079851736609972479422707517545540046235345826032448718098339583733018724392760247805714594937581742042909482690155718088359053811065469641805044086369191548315426360793418924098644871750974019233900306982554521478489912682941146961019458470655644157716615568592030039719098031532063756203381345334262377836882875347783981668628331967503175639000772735454972292207377141845198115038809039077265633144185895688421962967252325414059861636461244030036722179883585004116370352821193918740775141580148615346409061823556096288472887139689916428034705311995026408542455302126000355495974657830688409429032729883698538976095170896847663635381146283269411440193101408415848696765823142877682140729392759081712101070077869023163070285390172842970734379746686256473730285279097507206958349509307453250752077267319965748457012645173365803438467914897201369106341841914627105813686997660975592256710682439771621340191649220476970318373070278996478241352024840692954406976958422566657436374528297562343859056680162287862136066327122538994453249556438093491608205742926410471884106516692204349008626304988914306837823832531404574349721447470737774871422534820592097730513179881151990500153398661775237403479840308779909977300580499414169124810468154680986578832765378074110628078294457803823309429672729312367404013714417911500649552894847404641741957519292711207913011417424001259395835663575270263488896440531805908474015899152298482400734986738091770542705054006979127941304903151190283616523174447320490785533748495616371891948201486666452074977346600589264438706768604570697718056321538771721444905704908441587143373996285339125322988394992170149172208369615676114420005957000031301262247763971116571277816812786223411931020712998607206704564850276589423905465942366159683191289664528205582342565508299822954154842841528181703321939728682782838839585907685109587704765037304547686552151006233082388411327722291583509595692642096110841988528260141486528383423518729112279511975230051329060154457868876827664138207335508072517889711641428890891286880227288157127336686438161396359763829665125522167651719916964770727359304659454112255312922804599743844782279935002814567316726845981057447908153118407616777951626939320051065987747842049990391008109657975690854655204812859038841000766286191094590516738277390679788142946199071818620050201271841619920108863132324499296482861495228282621441034927517540897971429756200265595029558285297039622615023494891453529951920521723477570368938151733562086090649041825800681005216761327076042621754824737895788424589528063741268957563147937073148911897613238844962954475493416773519872377120502555860710633731181992726946958901885954223737427704955235952931832586795658233299589208886416929467179528533088972564391295003629403805772522959117658077602685709614590420294189542756903707762048150556835835943957271295894305237408543992326612897793257420719476732059410517872243780197368412756624651044330409384135298748506562582502779647013540216020335704502553539429036101610889191535692703174580416302186134989440424613839190403901542548406518364364049815682469638096416141030074832894855197912863315994908131704388115891784501344165080022731548480181322876383321515008018950957009527955773498530757453911968062041458604367743034864868850610573694065311041096984609968988596581873567314183727673048793323491006873424413524543534484533801461980038604272592243251252633191319907395956517108517317008617522277825313096853850011018351041082649280803906677226012558582209862457647842755368805502160222003548273885610284716876032210630533161131944549881861723160647407419673958945584567229287835336692317332337433546044194616903516670980120476628614008377133500896718133443807908373046989634254943920019479140056914262924823569005560733590973086139241327270440464528463641523572206330495953097532633969952298947351228737538314697423578614664258640646353272397630600394846514322780767178224461364649845168910214414697016567196593495766278938658257151265997189331345980392654657175358594497420347488627716522519758045703572330544914421193439003311246540246424809769272000082177678077564533381860350991060971665370113479925270086935340909627165310371439085818003162053946691524315680918612144617456997064356883437710433964451900213458781998616785499105992761447635561429265692144209212968166807633325969411718206633819959856363505168217347843467543533103032579030202262846044027576444911473998638522609762272180893743850314671498500535727881285890306885673274741459690762106555795106703697109696473543136642873828292078427886192780048985545240303345103638275123335346964458645732385020422673834965999820401074196274325905163140378036301399327701547203178876767809849584122511871289472799489654186890199817160955025772760341359540932186965821081526008063490687150919362791678125290461508134516895459358975203546311055017982717143076272595169475768571360530905055054321357796325590214345956488673950824282222668489721536472266172150932777367888934279811932149119989297460181958185820375177376375653116014263507729125947821701669380887065859350094385526503162437035582350419233992043562983875588835719128500507699993572246157489843987248578961427971640845807303169232928503930200856381225210795171376422876021006452617114011655990595023245093648160348745879599334329617791208462436132431864827852783431250618013723427372397533925686727459585962563713179855349468603874830945686585472128364439270133911973622346025831510153839515564532159735462192037493305190694132421672341361423653885376100702252614037507616388355185362601560035213670168403856816033748996395113480811269953020913468960245344859067329685248055244567589229959966254732163278479288230734592320865375488874147505854052277693012946588534726134788675972486603130152059732627148646325217070496575513155028217182795833284428603098330159650439807331102261053892725792643766361051309337069375023604610253566523279209240535571297241074014545967209683101730003908793323607970635414671380858522561774129988012920483317409188245611814369334065734123815956758414748985697217522296011881777039948263503218062814921922352011149839362883146824244249279684258904865115908304284013535594312454686984208372606321279243241294953130343897895194237358458771494305707279976768885759878505755149391908282023834291790993988009547495055033592741875329656621604473649223122901987254090997255361749498639999870506707122155994985871706790327462466966635842957047916213952997550968196012088885655370227207255942529343487050280817673785262066756132091683286469825863219322912226205933279356789459159656161851565753800327346918008875397298193578606988277428623495535504988080467871125176583203287618233622720026909137278800651506122114560667118141135221616110359971084912726164218773580932153362673600905220124740240114639349892059080201083600079047819934740360217321580908542944158652315189774166820904521064150239697969731042911400279242821520950066676959117334639661834517906450471459953787343373978568378363218282355028430476753790661632580110847238122162501200413620360401363051993670346173775172997992519310104515495928886584317724358505456863223186494998804497622078939406412068400061024624119506331586819740771835100845111385907348263085641581926290105777067336145837009659121468856615633330837332222205788648481486384238320405154832057940822298368334795213279091380334007737530841361658971683306840451964424507439511782627248563407434435308622420046823354966944398976375572237125653737378328526807041562129502583179724833091427499514833603426015093880082401001409692448789767895501884945380416905394045176503055070709775773620023598387965162511258126620443419224786092324666788830163599736526245557705618725431458904538042814865539390334380193148669613931266195809559578883482815084607221874579354261417584100159498348213677775028111663597028489667387462379466644133981194875369508780056121444582185041263143009542932841141256341241020357391250874661970782392037434779727228128828836009595030443503750162996323432706469374521163465021072666244601986797016064059477804615253306560050274955406725132987003190759868539433960691684480754308204402035504445525925305247906316014559974566709868739240430699327339230873839783552604726871172288927490332690483431946364743200176053482107506453275712658190401437496299015953425494181870233298789377577525315362218244692663902878138213970931541546504118240990681104217457456577588003268488114901467448077642052425212076873250033096943550669532805404846775439833289381617993306325276585953825581811796947737240985246272739878545949333607778352452969548055663793729327820009473352348762711576690370740277944985801281083213089688135144634881150454119393429160812634534039728592882123476795037338543539797837886844671232018231156211062954524679183655987522198900294388447394981115665466143326854991239899815225351133487779390196449901525665909985324761342849759728682299899048531805053091592322283497968572354933079313064277711857087447348932762704221415326130283626297207699115222786952032355890732834733946683781958217927306934722182293899432601818985963472086765768539651289194902424919462572976596389939067688573576953683252263403322294692420203039286170771983879293226090247892399882258072744319919755340847144130346281790245934072002965552944080671667978359690442676604529607708396700132745991398281946183930683435090438770296814962373805194852891009377179284592822779221250641432191626808913699167791351634575124555418900812313975462254616058021388005004711976710274682542364936031750470896546202452810205007314536442092631781929571810556540971692508574270920109347273642357284364852659704194777477463425225184863763352406557574625145429361414042076255024808313607783246358956608181375260869594756971459704372035215893507078577508087407503706787237271896864537533413090373348564830440696706304350999000842995101760209095623256668800537542993860659599385679564889406279209992395687132644224355502908379993725996293737032200734056459558204850054912291998542858383395161200117571049220761685304882718919745471632069128420600042119273588438529473248997246618337086102684114549399586308012083605661902320441153466019654813889833884551866406690387271410391388395702280954748719426915266192502342683168937819618493702188996066707682037503798041455961621312557100167604171733216796698785573113510941339367644849385730904284835820467426772020917521867215755596503150182276562962659444916877096839333228271238954665263506157738666321905630253125402098818053088640521167468279374639787128203706855985120607691269615043309948201542227128832012918588866452425978506094529691239537461218477997721447470322587705427148463185302019242737997958787287936480080112398778184439535175203435874084089555821840568920205176252025905985093057012754029285215261252801115361044577065693171121472120094790207989562761111733102573521494314948234075883893356922318230827565778602584247709445146172929130469898624417458514120309137895551113902891480592856246976856264171557512584981924529251535283474531326941277565055977910954786862247948260930875383704681649663031697681726515602814144978105782311066166653098754076921679089182595394876023417130086609289876623059677855902930680409323180278697861092543787094213421853336392966845224830385077338601058881257282957844992934911796904585980920460678470996073506676755795127701340803360224979193335963345268334415078084796923419784270570555680687891931138890096833118054642572332278245636072570411153499279674474706752141834986344105628642621286720502382665018187482346956794197403374326972544346469366332253006144016940705507081870891481990430928934511635120295332497391989089357638074876252178122493347487795953157743586021482754511531811429130460588161982160914104505583576983073344313098754497685431620787928710249713910915036860652277578906940513072383719616894488334172699533625264524052436396711382478593560149284809862177816334617091105172096133053948895747006853183587182409502200598246609121571771153549878573532151689313867168900283782704459639380521552852022682887312026045103535638811223458214804646475077225600047769152507220221066077707531492684968088596928225902015092185252955183586281064511555228452799878048628136264787943203488900803129653750724416102217935696580135935630391966432976243595210483292492794445486184152476772892010113156439423316808827233693324154161126494977969147469764877498756846328421657483957111110714035139820535197497947087108208831443360480402168400910571016571364812723241146412761558633174831467575017135557279288461799439973160443712885176767103227337194436082547934899069360705180343474898975314208481268526619784943569445411305698470557129294544245484268673266846939551220211927303201672869102328135707948264124728768399738622295783733596457827151893430687627402534198880985827177514631878621415371242576508904837026694087705294146001239648670810210204198238315547699301289846588621529044794551241174588050429720861295959815259064030484316464925509579225841385306299535884746343602188082327493989823521963117939262307180370507944148880309726722208879289890678599477924394202905632743298434784230695111857120953890201355106684368985784892440225599949110832190023133605236987609245095981534312363385103118446059811952662799273508789968538538194850136988643018414874999940376902362963837186268533647453990143317433776730378018607575492172048329316691907421813810533728372779781439912516164544114967439914558864338788427587408947193778512749810463296282667303701505732239774731343476917546494983799351673276926104598723919279086216094818121574465185695232294732763657941946551319472535678237785805463903049107546757246807676580104817188198634257025395334256389291042185169616181005017159046289345106831496597968533623216137273321581067044202553458737618024419691833915873119300080432518198556568822748354370304546184578569442492664768142771726390155530589235416047284339150934517242299957378036417317810055744671134081569979820827788851025920883005525113123176664044423647980078912628518869511375692135313531936180499850751684583117486450556844046519438915778476183134313539520547099869647910717809582277430817747291035810501220329046387636731149849857896617667850866034713407594321608149310727475116224650436091852402999750174548190142916605456673584147676211502533248186061961660758078119575491100694998679193444803260529775362582768986881106170127582564688358659993150450487232552639090295707706896648199199868995017707417541760347163838298453068404107348432526010831342349313397123649274755717880050478190265247252417648375283069334194342437986982554461999682571130964571844315234595084809867537596834060777029693174446247698146712097742259455298674021840720341786510907861071975566724210095408958221445359369596590618499882844950271659363481177941690447209324308313694192398712672254108665181907948326256596918792642418056064105624895481260787690342371004781506799961253646265384062971272972441542337453058401748926796251900270543200568682306478072032427712860021286992343959934605225206042570859456695717191434925070927778734945790411929570853992522578785346639798143216832260375935490684380442880533657471257242188620836896794766275377280834616921461582220705055951594441193488632663165135642883036287696664471343930993834974817494544702264071104110399106886944233519639375947379413445862810537344907010722982080330143266572121138937586118901829538535301608378769264584708961889025976870385137988889474434853947027335134583311754888211625568060183297222209371277845282748101659745257336883820563676439883651277062244725663356974938040982280399373150112489622320727693272093046971425599100608318773970366978684800821106566662687460725371402853597648380629292964095697546185825171704315318495957213874663522012027472053929256567155530215731668432871371969387960139549329302880974991291405262584784392040212985467207469964686656089679855262199358841483860783997271079866391940450120866022990026042076639622770244418182044429444821740787702780957809995262607530155074431153809418493193737058685432097696064874574845055962726415833033467401887606054364723392493907227864469965368095786209070086320555191546810466382092241453743917292171327998580073175646965492020491177345780303421878347138551546545848276581465980771073881780032693596468778011869121225978455187599460252711774577486726954069553663600567800698192176601500001033950170313279604297611106727373667261696452727035724788765888338500050840377097833975671620576448367095912400907631402092872568972688856202811279689997639525422693439665580597370996807472654164683693543282901647310781358991905943220547605775860959103642056044654711215793490453479679367886397534955116736358539546825712947264255566382586638189511842553862838292142387950071506716716244337353103246245600073845531693871473254245269113487239118722026395221425711601040988011079657478369908349536984708826950697322236224476029853166244157422338441336740941782930531458798202639997559835944521955365302344394086999313633222561614085035490185131889639746565448713832815644633690183121169059278332638237384166726448857075275136448747035434387699342901017443948261945190291251023783005497511468604283829232651487868563093297650815530927837473221688482003028601463811141567580643722210479922319898963987758853849542240276779422745421314190500885618041355444985258037008382341721407179135674993010140644633998591169671760308390197558754360421847821255938309121136093708699042366583515053371824875307933386410319756772767838069913218017428074301896299889082203219721925895540412803644581167321175845269210377071485709855401937063140521612149249437423118534724328706002406160220876243198959840028613573345161880311630693900916707533472586769301948046742351006096422441722664949990217719787535382307210374887530544982726519259118966829394993685919009868812270684299830764104516877598795043266906473317554885567960639454609750764558150321236874233057533654682022007031777404602691138673788221454643713384314952251976861417237279893552006947126829933933260075064697701648449151780721955325364326423823424155860079905592261501977995033052777996365200983370299324227980065137255332830375956374585251415700566156950475031334143062354701790977432587927727390079372707148089863531069323392036790828411105079360193905982384434418523963276874786069317723812043871886371417677257800127671811457734331277652002221946838607342209284782336814406539842229772226055658411788365175415718085379911718640108270062151139511983791959823398508501123225256875236320435247232729131813277022294087697051891085837342267540214614417305672585135506982630493463034014513391752211053467070942021244497227560543703011952373798733831469106588647701271640200055807088196631826168556856980151047517253965126522314925456173124332234304172043580442272304167234089933643402695415524689428602586129800644891352254650028715832614777392875618158702371990541445201705278515049124366990223301496382932618509325706970390240157500986679989937903838789075448583227167627667965048727731167077618457043588879223458795823875399791919716989131548960793482016222485109469521310888172789403115977260080802765748184007323859545626006488907681226680312383873687016572473083711681928421411958607374987739972558769584191298247154586290112010590939940569983505571817569685775586557923939990700237946732129005458674907779943581305531408503124541844163980119785732184666837132058596734449311396115043497522988966079212789872659357586209682801493430737271111834104601915432118829615011809095295607012368966590611715864061293270566196714372530276932057409359895878628563457317230605537897293470843501473156903592643811701530382855839152615850469982234753428510016458297599136231234770545546825546052938916550427326552893926228372653436437420461337563065541672567551277103244986415487274842137144902073660231268301280050765770442950232421443925717115419877450141787351223098769607987647468496959587538253204418597255997317739159153809185740878836652611487547034483190567972243440397777791527464975763556753129324900823554361461272943910992897745377197467762975495239913526045683471094556825451795634134466208176880933945805462238413075493439238486866829012973743058488433148944093594007331036037403363565540530284678743142303512586523523511639979344386092772873804304535488484328154697415040693079528334730566761104240413893700041616974849813229255327215692756704044689187866852113426183855395824939953877632010716377699498510502003733503736856748180208062020385314440723473966174181026866317686728837066947007406339531076488281585156964235340371576896117229650432509184944866219172546096217455660986494952282244584249345424008152683056406145451793391702461238662886557022625061597006315748759197870976167353015801488898234018500487969652167372764011804118089185243650359519510494712549173583887917164261006867130481722648266918714334940600432204874835152693363579630851651598011737804097930981215627844214004468060199387742575749750242313425037379339093579973098761776347968963661039484086125958091216261777995868099218640782114777772211988797099060184352855920257054556295850761656399029606713713304906073286223141854501545926110305168958595432580010895731295533393346918109817907807380181725967360315217924477660683645668063809795238271965294610484598473308558220627045322802561972895278025214222157636389252176843874173941365962625163993449463136377988269873388033432981470717541777034936650117301442788505769871064324821413402458463095557051985607593666703779207971713986744261984581337363003823054840907738264891734421787423555498218139967343786348864772828600075297927597068919627380663544038166894636895637110528426278417325669072097458682845197463023852630775520334127021838965904262932094011936273460628632446710864846442732626918541075703905670927196826268436569501447868157663902116046974259053820561233479878508480110943547883145183420499758116312944282144748045295729954662003852784995386653379800578724957087196549497806583996945273565087085058373123976064203729140860457724609257309033409565359844275395492607568859044765585062039150709414037251778104947159509475029120486142572033344642279439155705269544602193900173991107135991688448912220265606206911644232892499939465434942309056706124876576120395627788194486722488329925366406371976862612708797170872615216537446523573132949904765551921049084320057000029733811482364628155049136410431913650290945985070566971707301023127136601348589509439744538845797063761622971430818766281219330956503597425879945259368237567925652766577946385238882489913514708009671975307975548136527220240937688769334790325825438637575029749576850340788569175000861958692293452862730047096679855502800323041963314419168656160608231630323970368293574902635345768548559654243405760348726894415451989753292319248919866507822397160242417685106364693640319628416638886615729328837402301063249330705291504721912563354090023216078248079696027739535407841936090356969916287487593343399584535745685752793754615962634220254530135013433731206065296180671207601656481910813144036567184061526159407008551545093502943937836810359273299721983437561883635313809081153440044109302668980061125261212384924542272406543560982379773421329980815253823473422579794658181079859121695261245833273803734273867310668319285982582465684355856489030989945067428072112541905935523487710051550864312373702943860921696764404574156270776573824507884778868594102552545077283798358184485096581809336887257408401906264508268610169888268267086014240290935457917373450647431085052908671210341776638990599148049705728012642649587464789294363753863535496951843755935391554548741136979880219668246237552041115325948695544241202373213535231429716408041512621342609821804487194313246044367875519802156940524208045529724014465600366071779900839557392928597723623526391093820935757080881627274439022078998475597841046248837794177822571669057523112770749193039822810891050235781720287901112555641129113821500335504929151127301606493080203693127219049213830870545554157890670908375265098816822615869741495243265211147279665174035915932599988087278296970847330452653343912391632903975835620750968287412307146943194668117400021541225101873704230116471288378172774591226633218217994310393752842707423545847224892598972443660865747753768933311505084132535996494518176063597322998060706694349695892499854161657756590017179717188485474949643865177301466290970349994739594864501695529151574733708551142688415111038467219159424942964953352437750267283803872137711109067757153090535692365286994273305407879929649274407692759512432729010227073741217972049923251249266791063029268769198313960557964757211954195224189037384475308334995854322154554308468327984058266962444441735803140468536143775829074744250589200079279833221913243154054127637571345316173664122301869308823058265901815310426410903710463136822020087654646167603089591327586432759953873266217092061762443638447295982076739490559893169744175107313126161605471055733188527142036533312908485429322810013384682613538708222167633385375110672926598586538568970827402805160553193466801295733802817796197469426267263786348467741549280455630703120448245880973490671143374917620712822650539595815435620544354239511482393245143112199789533607758891666551086225574178310949020045734891703760444585556722648197351543691006408255996502542213855239457396808437556099553554526552108215783396324822844067461257618811242496287371553974781795885464613101952408916577816384144108657903399289695524287662055684852929778201050611333780382544477446177297642063112363111539664648538662556791292014647986645060032838529609174719053331083941917103263024469957832356764282325496202128747015059015712607295184091471229875177014238365961865885123343318001485359859705082578076002762375060341548105641556486058624356315288147037628840749009435864806385805637235880671187487827114183091830592449925221338453526355935652670617968588383939809465810825625867925797392122331883943784509009434485855232825961991655448463711409963238341301229634371615589374891122442804797283578948288988553198345892531330580941833208815926133950677577882108096205904985527197843474274526469632854520188817317042842210087714744416354789560534507122855558372207625130843806419575388351534546680672057000983754996748077908535561059901599856455288201028033655768522316102994793968593423065554836734462126449220091851174373058534221117036413996502783231151558166280491023968502698899138041697645396616642030139024759514591212686048126465397605629518226371475422222646814649695816944622202578878129055494407421156140530807692464178020069248804036538867339236264747935929054453917845336308397435047547044102152521053011663467477589579177741825840744533204056728708530489954931180765940224833363897638526365901375419496839227604754333845266693908534640098150964565483491825841867765126377230588531794913952856877583581012532514632177981099695175721888198696876264587425078790316205343796339227854672461222732271528946365971142498732762102391283791348585542496527418777867504611479014294285042774757364032451006985751474579309536372800632936721543335988048271052512241108870035790944297573790833218998454122922370711076148953356670399179147542720685839616093763479910932938240525097673525328014938150295043190464638552002508632502764728984425575530767102804690160654969838831243176316372697031467939517675084394768512496351013705893666782034328283622845555294320062185737380184282397231769881855516977532074281170050011747097597949653943569073826656328050533676094510826801895763032104401481960428459242917187830903405488736054403750395327824201227527085358298593576801841208354982968764899281426997187989630999806007187645117255157644259135830774615570289694338828537991828361413906993746645751004728499649349749197091019391282800233156570847481022658123690583693873545842364546079128328473992275019475888291166959114355114920638057351564811315959397926178131400531491353469086087225003149912829317201579057155928205660523978581564550354116156154375048555765567195615155967310980595955920336943175150666223875859243208784998357659665643580983823610773604400529809104826547144225194578502048568375775515572861717914777282425773828602821106951606773730708209222697806571031950667214995394801504112775942799447066560320624073035382411590101583449058538413890068598031716736913541382361523702219921185415587554593870983937134698560762617726817260415993829009444943310784138767584813911336293286375619760684095451829063680588812302277578907183029545036461928342791713915574782499043492381675559120639836902462311178519134653616241642600190681752464036885086806469360957975067475897219405585586913222477555648283964925987948271129846011698734219317707428405377214603660360967116543564500505768598418264785325160002572370558350466374394124781671615264768563220944731101862337408484603126802288109397231129626361673942539946676295310303612147935670565300856551234930924400875252694203013477763617787543733535126395378281347649503205954323892220073085803120329829464786373972569296112307908895889171783330404512309274101823853645583111981942663720858532376958573285385304976716436228373421662964546717612864473715746587568162100290275532722832052267250781650293488488466241046368890441167907887377273628752104463115551440244017815206157538906562158923364277010744988582097551821111144541775463587190296676759050260766419968294835096857651608485438371347421738010697519514395660280537061647556335409916677538702868481045780154236259075802502512498165652229553919920252879341154651830005791008991665197288530812520108761432621314234477443996246032798413291389772288752992522012740512688516741610390251198218274978788290069753141658586447275420900923363534655473248278897263658009581391305538955098310993663838455048010467380926060581989009235291726563440587692386091221340085797554527704238489031997336193573528835943780812545146331947286182623541256499578483912581324174510952355524010845172765618341498762912596536523187641182584184779871941098041369605730818614435923152084978521715289775888651518074214023772474864091008807653169063905608273750660392474805098862980021294132096787274318832110576868039614642200414362609465225171401316638935924908049526413959495331627561250869527068808433268345068841659292182129196262418721042146523024401657012551954189070753196032634637963947897250002220648825280425429145011117293641789135107182565745438178728878457079936649763948736467189826508082319140782462253950816992343733319706764542572107072350718713401205034446308414783408223446199607717811918663893111517165187307182240352964697521258343039223987319153214329009814648859991146275491532725758092674000366692617956855475256704944879813699747711748935755597183734617392306258738132431392164078071348127271685624811965384132457957938992651895774726373868030375986135144585335126578245465433053938403613896477864661929941989489711629490911507508587479608625250162503390803346068471661765145729323178554816561554518405562418984605513673843317062542338458650623364475563202532578083514921965364784799828864523051902199845646789758036030743012319687481595271813893065146599274416593822569142100640451496714947272497723528617970613562447322255069124107697818605900448233837012495915985157908104518374443559026799669388370403166154441295252587733315781772863886885533600472660246464595321322240696567745052197968781797755868154189930764537581907962722147553247162297034133585707785370355237841891442415557345136296987927247366460713665800276594581554307812176673595618760937242099395259672996856256142060702138414031531453390071269829934497319646024824564519006613715846500945986700229647735233233757988747444264184756777301403720302673687249952496617152729524029862883274131604085238764276079660784675097474486537854655742802236722378490216190096950779067103244482714706877011650645334309840270863110176806115777214107927021264475757847450434422311480989815113525809115630131115996134402822603583586555128652632706582236914599696526931397623528486030373280654315669839624734008815130778268465408620696517375624624056972393688853251591407499497409376928412843932958716276054666282495317042434477961059910686922781367828529034013808441976200490286978048533972598701452551175289136605646601703089652254662423599604683284122009600233181042433539477381056240205808986484086403526236227055058788028850323354752982097336786687641860192863801234155178757985427088936934166532789783217789751861666384943786616132039113222306194784802906931932440009949408261331885155286143892179153364465603728171852093104027311606867228629949916691478700323617966355207595893622711084518476990953631207976743888390290592820960919454800428191677076830287895453099695621673848494046023189356841468300488222908221258221768504769624945538806149438921832551705637376153610356187244390015004518916669737381335841257178479581185712070701380899149537579457866374078936034828812901738003097784960384506810943610517901854158043312841445455314038735646841408701266512132137315989326362470099674080588060785144788986496826423664205391772656717069265139218340130962234075752975390293339029319755233194691803514930232885066837341702145714056451505153655965937500782685061102311267069995098084621645587280985420710272735964310595206081771005854902966463284091861236690977328882202940753099430589083989327774036565145179444265041234965133759758915788692839992876304125914026025965326697485331208160648136709490427155582190217939775772755812638007365123710382773683998639874067627396069271255419498243852398115917606296509421888177562020927680119663908132375411091641481324748420277597838364167576816972238504388019090336564829695520531080614782137716733014013445877124805397048265564841989560099705583390734613462120840793829670697122979149882215495544338489063876949698299656627602550838448277970859230358865574264303945034485845721746814908583187453219433072233816644431570460646409569928933747718649492966385166858905838388257552070318269555030774294621668226027726054621848152116659584418881865450528476401126830557538079288364768422023662819650668370197611801771878892851409022267095632080234619248795787531055224477401015833839145223817554787938158149277759121132418905462818938246169555818905211004649432897832538009064008797168076135759944746236481052607226859470656506000293395091824850787863144760088168138615605283951495481084002685095310202957732509760468698468921273305193902064252018186014864711429863924710919496090426271510397002426351247228284383389499166488804925389630769350214773115894882156028431630291636708542991663818962364823451140200482887446679955683109651591043066329209315120263107688226391750942474979774783465975346585945529894606070063394910312632562960685628914433934130192133945847128584284936938768985449943642404817494581899186074631592171617136264481751631619863517816683153602469513625388157658014891457403462275461194388202443690280953239985937830850063537402064093121689255576205090858863110025160721513121336750822371052360912019318437041905576688119888968266281280787094791092320129560881458190428678860582424407607963982838560900862285166970987104833640825906676262339102157182486662908072383896621972802695701326523332274534648195634724876813477874841176222861617664855735683815076154432974957991458361589288793663397494792139720309557762868900427293481268123060398065929433609129212401595934151117990658867631575643578611562755603806534821140119746009933097772044644161037378007899557739739058025138540623210744969342864397559863060670983647885378651953732277932883713545412312893745823045503549330029487412333737714945569619595842825957152944946284254168817438107231218745015098384435798391634487887609031846149795796494415750265059555799244305337047796998419414771876836529608024334080632777039171423561260482646780372283873454618181655580896876234473268445568785344367610005934225839358356574712466336852708923073352766794263751536849430954783523727515440291454859581855203735977855283406780459091341778790064106765254031859303692826819853336815499317793765466857199877228874995310459540822013175229854610858151203835514111584499894164951690419089329271559764568070734808617475164681027524787363737616399586169751037979941155809002824257616058832298613601912573035541480295670939680340118258885170498970535086279715135180123814977024604177296234247304295754530691730147680774520394953900724006445101383933718327264347739970010076218846691771153377576957298552864097052676822974869028351775220126795234197156461036233381503968163995681299145349574522611768237611344337424655383772490366288379295417701395392328451237660295712472790625922800088956256412025148769268277528030479529077927345476156961165085508255540427462526133600366922749442630354838971019947878198987304901673515093981146453126705173275470701216021809340704841453353101849168052859418509645929217518588064500010812439624762005849344583039366025859333211067068675398890276980085032210839962929864328947941032252515900339740571078233922291474631537810463148698759295739865120149111354069358576506399312560177635821405912527870156828721901216392139684968050346605621727400935533604509833601253527612455283333795872884286515928952826916712170579232959749228476717430814162308994256612981977347705839485734502396979374977436902420880831725450404828117437759136102703285259568865318299881044173859681911802702491090818844633799616575502747231035080091068118317620540633484645006914191392553106600293939192311529981797821163340249515172654233340590395798537358793251223163484521283941713774452643608279645053877610604820159243416042280493174979060603755257149811604851372174755185747730131832668437224748194704805865883200561590106839021178199237411230025173664364046428564185617125982256737233037692070196194225442870793472461208443936990156816006335954435716125869779287190679533639803878362064592456475291994383624363954907372766863452979860680139857479449700312281820119263873067749514220763560418047251918415362539501634639111468935592867320235084454337555515043068899019126509892588759666613490443967943310923101453914923563374837387136118168789856019385233966458022774097424005199677315602744243951850081871575062018914718296443336743532958543897870940745079872882833043570641091664255114295569193634709624264526917348001702629822442265473734618667588638443373528963096317114422701651205357993761411950863171128671938389690304597566968693411688157784678583504046350233482508309742572402863898308830559584615264869426471497005711973050243899638781259931721178735297969537643646354984877237586285467673981344523385509007670802243522413189612174665013159525462968033291276843444293511107569867545695162085118029594623182823046429678386111192282787856157856308727317918055201059200441001962409207328029741220458336967813820392806613696639447924671358873815517380505982857057515793343130529808775149696062941122901866693675087308482076382245497588683482785236949935484087441522141185498536341748472039950710268084092593849794730878104811187597558835009301551830197836084599081490645918796025550946831853239511376069066468969712087077114523224114684102142786119703436802607355700432555016181974936661492650397711820739330500099498722647893386136164847646073164082652583577450353295248738489089454547998256775578052304819301953504847234435594583115703818947804708117384775858489493603608742868027207266843312251579849590550732355005627906166742905419487162070749480837975767642941750510139525703612511081809426726327638358809525639858799485572577420720343680600519469572065642073919006864312305285947654011877016804751125055359716331616689673466482794347800964996703670185235841006659918899006196914538147832333263030524335803227709301404069309127611449895518218368300868248085278734065378337599560603856659637547546296956768854631950059385194917878739759144587561990826017058695940979160068397344600931167955313931511242692925012044645613741117398923745651593993220293155947037786169611816649664398667424439045026887770140586978368121812516962263373386534625599025518555827368652565918284411136226615841575725474382125806826412548367927614306494127798943677776525485172374770333058856599599961415805746145823364179775273725498679426028930743964680675778112046264801288300032279747415980862762697822455521099252005966134490170364904632588426896212231079818615610411560710878576802454634122215996381569167898824538206125997219273435751233441861601029731113907498052499852685243229230888629906374386543242782428242442280764422670922756209611279726168714829341333450047983540437961343615340817208514362960884931693866589540980487241446603848082815527148058338394926730202151482846650570742451774009002253941472759406716448198608971602830523465531682624179813955359568492802493592731742270832231940919581009053495663032273756029287657327339771877540823755834531036631926521073041967341992198338534270781575693090562560162877186523571467157946126930531110122621334679391581177989918773941346261520151370468557013578932993951095887813292051590523047092530801849345764667148228555548228926088956099875277527457056953525352496970920572879927093199124736489904152047196816606447093554406649911519509270529626518837520211165231300599127270386723016502709158531181168004258035417104921498849954888253046475631959347807794984414096223732633902639653194033978528037632335608494711059594141228892668721184544015112011726656380928340751627915169185723044255624128314984470239511626328388335275570232789449760657430027171888723348493627338916720753221083422534912536447092617030382720695152477340938677193940589004972921606289948672678652607164529294661781441706477280383195989840149035009951313927467266907516648809770669073036117485495254750911644731574068116309041492503950688982096387252954955995610950349519466211765179864822918169286039496325902289541312926759959998082276385754377070042427462472813195097642160065029954969811584161957573156037305128986604886753878685995136292374560453335291676956609667076941686233450883870332216775075500722476763952079710972432008893954369850078647769545396253074168061459310351534691939317891878159703674760353885519024457221419178002566372896007721096369445440300720834580598672761421059981904104207955385402530398214728038511212503781011142765717874755972474717250162364512875867149403777607001539494767160531831345776190777829363639016966336954013765102877778697278488007064198129265342496673734161843896729091821643535231093866931158589342086119481283872293108844004780926013939783714164824845108904649541440312034273287264685456395371038014330738392267534103690818177599833307421281440706370687959235613286866450249417912202857056975217553864852528328269947969501655925978261144758915805748219726619106727265183400311270534803399828570387282920004021825335789936131274371017009652026462131513136643776823454832463837471597628482991762823768399928862634157649609962031875309575652207437564264561129074027761466899536985409605853019023636402248491143460000407101146743370701991199895488999210890992805911131543609896542816233213211587165349940597740913638392626708508845345703288812294013587708667781659644456426118102937430730727700105364247324864808267478589866949317187800091819072754868450468451406077307675493794339341787089855280752606591612218910826129270444877528673484201525371993686357688252974670753506846211186526536719830331467154769194229832586946538640434093284702712768158989953751718066802860766940035626074782085695002969224847397049615700021973914076593430790283095805370664531032762951130752413501056829602745301314132901117098289261343695942087946713903226413617003955896772572186622760316966876177042585468320439617484158352860015790819470230581479612438203009733132616200570393226375472983248775506501518605782403243712211176073306454639434800267762434325761554231014505708715580943270992801028239335006274054293306665163929096265293686389843537503989572214563962550004376788473004906930900710577794219007421242060387495750429927478162282210001759203290938155623392531560596464207360323830087171109250184161009781866307443752225842566469232150652161299577867898488457759038569710849369125826972986327852715161176924064589248903835285312241029553551973454026003846763259730052359015386909667704857804304005971313207566822468752682172634017704334298483953543072554391663181864562154113635935982903114982345910401393122495384223958390841554020230720301699555974612169388033676560468764632700597717905078092292337070076044691681887023856850484986135317995226967200298163889069453605805254310406635143972183488924830860044495596599482591825214513222219415628044703756861783635772761419222538655810203921762507697232834983246903319017704800680008815413068721262447149733540024588062034857159365785715183914685175904759153203359106821183518450057358246228683608444930498068621245031706506127912049847090972682468414272185107575344114867509286592387130720387347991215393692116038109698410850688550470512712585702658859933351583943581626705676391066541240199811289679297158338358469875201484296573153551566611247882205085175538253861334505804536496462040199892008535604088287545404140512170083536432492138067087344567428637156312345339612475639856527451647224060148674982968419404103238301592981399554955457208778964260589905495960878984126029866741302357673926095009177329694215731246926283535442528120683362284631501211314664832488472821164034399221088641764286741613392468058000358269391128402729826381765698053229102335692063154673496686774450445628435811906107503757549478858086578559708514934505488392801344575357540125087578771899940932840485085844156768181559989278494416696608824194974476178576221511929490161329115556768684296038199111716608881653785035838190483502526521152961344250895952123145773451349729502090118374644002203746708521601863211605524758130969936935420027398155717545844914324015548072887905661321236572096824966249709365196390792628963738173990018600008627102087762859370936745929292199369361287017118066620117096282749486514338518346457586819330763036844224466118998419400912648595076549875627133140471265822467074726221673652257776641191387784967373174788616645495869499839947259723514619993483511475651677512125391334816744487660440893395017379840078115210393243425951147648307840711598289783983782518767333114763776039346248643102244173483167922351111685457082298336127193676864290712537878302777185719045934545792520052229457229251653462770007591479198446404457931631752057996254665031245941335592910706142062979280207390379824948787433701475646921737163594770760493894150581444432675111123392754957129751498249615842510959079923280782468663073502281618482488465804232948742086235706767337719010863721085175810970035875867377490183082841949928157313402931614456560919234776930352617108525276675326831982722201602687564169457764538653782847794562341730854074167146179464576599526899091658980207496681179770547209228579024030416681757042708269498529723670128746787118008641288621094441965696837163782804681735204508156790077317148232153002922191837291895759259069096920745938323382292421706142055853771124388654842538574786067704345144475917134147058593696625962455267757616061836326964156764771096223231400602805726171344352364405474469771424902674846429694340591019493151445462068245523407092328326589200939042671214498847893439780527144195482590206787872731823675982867594882493203030260440753982795287362001320832260524132467321458221255396828525440342566135545251918993974047468273261408511822413761909853937297806411110807759465301325345062822014948082115806410700022809058605248336895601811414962885804118561916386055369717727840610146575199816448111297682463775029789509810559610677230325120358780504331037091261288803525250503592271665038143715734864763424028679215018671634694062385768504449818503345791803031816706416387570034669681244954546179896992633163607355191915013822005155902539242752381399953703228907811851971404805633877553998188516025162807070801099327648959880078891762142436621131186870854609276567717664905432196049848747287429484808741025027316675760424918343805568586019431215242778415983500638546900780701918012227676248738373996744448911502249071786145704652387341196942761689997650800947471530197756751514338318884545841119686945917727480404265608136854759207120093508272202914912407259759800275240832352559512034470653653947018894956880104816989882853577939967119273227340145450707105441903085958800637071817813331027701210643335286250131604621983970126408944674508122011881864687961565878048423386601531532864981313241326224070287067434997697029403348816316984296453355840290163291866780617574365189724423745920107162626669522358517097271914559681079548351541761413980792088902335410563197902642888786931720290305996612355597016755666611768227776065395115280381853455836791144755337930689613931767717208805623176802456454229072788046665832867032313205987471010673687899379795104291020976012395282384679693312784618290486156907557002125405898619594938753723399040882991246397919098048697450605311365714311463394625554081588228300692294657308131778233204052072365341521681533564158019271834474569575728792865367746618919137876182823012033086796112262327555886236137990803166021039866770440768016028240227831922800491073417444250498223114934065024519681267174640779486815178395131767664663095015742052455554997970143000769814184504839761320715134835387282734885613316164408342191951789815403228624025488610685132680860569936703093729009018331940600922381217749860941545477126287796652689947970138550588143662058876077019394807179218462777882388191874090483923710737096592120252626800765498492946873427254964751497285924757994472215939695636619560247531988080008920162558662853929778517583950570113821268548037669745483839740361787549791755631978413978859453060239971649664123861856539270443901768924656230039245380983334683025249919338234051475231782593506663536003286285891650875018229440518390036217098770885677487435085273105145910726239548500925262406387407169462156183767675499157968250183094224646116616730311349300774290332406463173334523201486415523569600538586638985632251194198614834139981916997581422821422454947617818528229252770976325911407055077296521743632614506232367861416687010814337499142157232446367150868067139656949328208889997898150927677475739385393364747960533266286930356369888335527296761137628461404872512803191747378310216042952651768614790802957211482330234090866014762607440437066044077173951198842578279423879806177813345597950568066282264336411730238491212503043622737578703732869015542142972414006598650047302414624552221375971346684821758970343795963099905873272557571907910172018028717604596840748176780448142222028429140317658381604833040930368585328315114517912652928299256732951756933329156836794796958199960420384189517551221625354121642010663350631622820516724617209032436531910166284967016876332803659631507113960881920951871556717662020277154554626000215314999403150242371789603574020866667364656080092914020843644054107981309197522778403024672938723719394026470517047179745553938179915100877082063309554863789451737314334329744598644208705488715215686124523873672995463636741458646053774140713791481734718123269066913520578594007358760721595564287337356460215072477980428959716871634802748105795116863227801092423023229263321499624579809896197566249199828044673788656664832908426799715251656247053749526566279010059352182744206585138482063045534354534363120627992006043004543927235443394401018982717437669707904838115206328566262163043434622083701665424886616835871748492259759570761809997155158051334117569908582837768595709143055619834181167272177308366463037652657292488332457180691952378593342856363757956745996277034602618636438204384064579747058683646767979848590920190470263719383869718687022163184946712714657088531715518933571284171748341382160241393802583892196744707506920143987360921687894352605197993968850989798217118323863203840983299570087524037762974119819566236479470645037402357314234028095254523855130412600971178934549687976702897555915167827822466569092743067745799198735064409454440672051561851114368705544504742194196682625776009594869797494479154451690932481435613761024357874816665780961378964089661667341802393840913632601760406999480023420116073664627034404910525106750181411707357962573772935611145502729082640395253966774342449075311164548028025920864177063780728535901151717591481186214760689191967028739615073971581082057981135407600671153693833550802501869310655546160094194684678750766086713568061790243830949843037649394005797110641923038933144429858205377997690402003654128631141706520736017117334510927762641313922759272823897335327784316187787217463007392085501930295676134015378866489341683052611387906861697438501892976456910875215480842524408238019352934752463591649894720490669373856195948603679595406508272529972183600927686143013248353005999462133191205350054204044074339179023605679250551798466038863099031759123699594079390259117634049401005493435014636708490246740696759989353733965120550534607811999444403033623717545923439104120113714221891518301580553662735507536538471698768880003070913949664859064903293361389548663446430475376068908798649556860015247258198852191811453669320769086293199298441332446290653070397885845158586906927485025844963959945793863296087233594721663746476562518741355055380859692932858579487889083097587838636558554210947691780404523304893327705712766732996568007080660674303048936537693850154104334920285750009231931801290166098130087986234749758385620375783124396962871240795749041780325834359957979550362823055684017381000214826892302503665255650564497529906073013565380560939353155155387971133363418867338297956717812164863923037966997743923328074516259443366805851005849534037101244460898570122089978440240532761544046325470731454171844754453694536293903263122443246485403931117173266007650279630545145382357694872660187341522291796734526029048892511540813073653527504782356020311597947680634846307052796700112113076086959445059636361130432429971268127293818153098454994430418677357072623250016193134831351806713079115540729170028914617463155228901727877128264883318286135591979034354698465924385308008659060584606327922826744755356062097390255192555045663700349758186591936584646294889597822464451993283644894192569059923291016523965300045194997828286251513464117837378414066270192469701359824364422806536697023646679969939496612137194285147272588939152389133420009083573087831552690837949525285487171024641390617923935518785437392030584136269442927134631639333019008547594666962206475761711487546888816818093593047600473002380317682405975004013341893399301086337476670781893717583998825741495898984738071137983213181071697483784204388590921802257603150176748995299273406407931941255113657372378210345762846040219505701571437726968423409390170787015789901069494272821235162323313780770310458821126845945844117801558725439727207502443129373270511551902793619334048124029269201371124114073960387634039167707262462209577593300891335990306185066512159261007434257755392976826486358364776106647171249706027128426600612847705021135086560166916189317561532007188659687968306621455941986037673211379225989886700843402871632431175723400299404503234486578917582200278421400780647602546987030772588806495762057185550101972532842516474884824501884690223992876215763165455778996489330306738985183125885638436099030826850925117705702056618011366002394139966127814025194105560248749019817108850306430824651264432438667842663690911004940662662927562809706700807652538349282982560673928259405539983390719503989570809645369775513829816911620847340089019937179040488353798614665052401166197425488156415910796183559210905944820216823836820233873953876408293840872955026537539855165639050765052906706373790948010268722270040992281942823515836783753215177420830213002893420280305310070164646855993418644001020758282004394470165294033151049566983682435695749422081084439267015644713333098859292382144977587503390805468450583881760152992619146784576603976185467766250908038668508358550491078121009867459329691997981398435442108150811270605367536837555830737753057347335977427655065342417323640401185597988000126657123052406673531452647394257130230537280191460730521246705282389537003009001133563579224899028693479768937143573026044034868194495221168855195554897807819725237030573750749252554949369335863532964535574922790513778293325339938961716958048144039448878986044692354519364050122733223323697635879712629916475966720443703386588994793507004281809619596179214957189102895034294554886714877224779875703114337378643105731016040301465378125360733710473575962759057441922753500474318749648879727104489364180139796954933643774818232027507337456597316607948498257783779933091285120679788976389475830994693638889229516322834876046064586795583163271203576622617087979330283800318558472018399091108994274994151739505566536123002108739314505163099661045080195807192807550475482397099286313336594056786258813363392447665444835042041043459850698039214485010145652109317700779741504590670858479200582039710550842445285594016016111527833812301931683090325029175857753283912707189634682367429468072734555174231917201054764573906842431608381702737826007497087305040892857801854974098891613521110525365200313543070809163957475349103318940969949336476434507715844964997161257626331635271803291809464418547600912701177603127293463380314406285137701950155638549709248326553268644796916153469988390377125832540201337017179253132792930592323203607057757912748432541395234878982214147221069370783425738928276740643091665792340379779419406522515236405606250259051187126149955370575157345690981893052554577946709320108964840792280439499491077034640114013593269345442240385737316006326927960162024416173736848204452041947995850086310725923494657042848473128788656844856043785002551530941166777100933064186258278308448794345283208689887083683189342025589201252614381328144358044822796753836523369719905750565683403619831390692719009411125479844747149271355712628940558368774818182373912687367704720727609901924025299188944549858785881924838772478706687168685462146270346503937412918755279612399910453117205152243543568547064368986539908055013701152501655880380299979406568594158163301848811944646411855675555440832875099344511670579104391999853718859545422952827359190745635199791622997801843289391733229685210838212364126870704097003237998365408165227338600659219381983328817435153680659730627605460123051709137885301347403930925913227871244753667369783159216813561244900350920884852649365050192374624873598939682370237345598982799741059777429310983624756164870897472977277239569211854118565065353653393257597682590080281947080836406701534785925657566395273781181575709898759947852155257086171040326967498810447219864861928083340451886332804584802954332828257088708955847914424428031311399139742400123887088979595070840803583413278350739031759606144234158119521951403097769339159853092286913328951937346193836701950376678284244678681482777027481340768995753968429217462915171782946442598343985597708396369204462782908197099476598156948178761403551083109602741615203625454667783764587797665945998005725319694259541948282805073120471127887861340146346129163226058835279135833809747811197643031425761487244308975758554547929841417095347939174292456010169354355698485932540202177820327383033828012106430081057410669059512150914856604805080779087062297587658719837557064195469540564231145738073809041444377491101657823579068580117863371694465020850300545738249883732488763372585252801805599565860225066411277766248072016931674876411058681293742089186234049290469940010548742367036508622889024675396240586372835099823237798820715887482276413723326194455097627563717771583720081992022011587302413453074484179355199621165032493953691430297894951738269317600963985401483470410066242781815903532918024047726019437826802044350928082868878675046645645862150455492713172615844445221039994898802977262673560064726547958090209192416206521459775531264420975234283565733706817904301943932703714002126037497530857062944108760038862008107849358246467101441694602788987965142933148250338778897083148127621121493277268194351951414921248958398509623536418552841615445536689050408280627198772373841063891719547184805173659515865099208951679636508605233101200302362586955402225181242439080619874067363821137094257298933671481777405619993333547084374687611764258455196886253045097992866126403051631161053166768878904045356747052133834443334210261908725901322976693956935442777342538014572578397982354258523294071166543501404302639274791375881644684123597969092396166519326512215517373591601670399843992541944399175577279009285700519033157274691395623550653731983192298402604079324425265421814849459066133509384861304977111565047594341396148224974337482212856072770128874304147775753490282117782165877318364432515077750813236865673301384644231699417451644766501391017403246702484739660113670158686487852816716354169276324389459771732518504962739020266439031581434900066525311336128404041740798411059399341229063911943567235389037705302546680000430619605173607251305139975042530280728019997277511165084707105724615707072955682651168253632299631081752812500375386038909938673146211985653568359093366692195825556461572347322066859389100519610091298510052125752897920533001137553887569826280817225342609973026462001496942292743553334836169161733735633945078585762910858346712560946363112305749529442008441024023020919105525796599356936233547519223752107068010250058986115483343339924499009255587762832983829745242007583373138403240583260819054911805529058036725919755446598901447067650120917038589256032056534348778504645074489537399144443145255868637279640427760020263161665391299025280790649969116420081115581432675464181392195388883953969542393485629948090158132574872026717674712299322956353302774497896722701647111367180304071074047318354038803140990855221986850851125902129820526242152900347149248184446520789788712169285180661661042048838925975589209748533699084319247387876652473095324154206257680681230903766503677182913736176785227456224945340226295215753598159167885936739555734800429625430155567413499520153866925719309918169950310287347090478255221478338052843102986699749921396103827346640135448788040394418922773870940431613972999948926336486465765442207381198901539055827094795144195079356613869239741575583271934411587841400015032847380627760417758135141891479546867347220070733816981577150226532997883803230047275139351267621376809987221504140169708329170692161664620345312257546218866592594966826538847786941473257601990857286445740842459324665275408910003829235737916450909718365795171032718225042517176896991691815710736583958133751535750571602651458464052165827711199195785203354838209861326353121641738626434391687674507688992171173448531573575097997036315228806780988301821838077276532524911955550766667111425798614201309085646847430905521571643109688895016022239018286163327857235379903055511466437474876418013516603679737881664879422680949048245486170300363737647654543534072669349994494352186176862269975747219047033570702848731364165752586392871245939700732446969709105025297910396413325891945270950852460250286768631552261811710867520256288249106911189428935784009410518541009761733689495645549989078436738474704191697502970128227245014665801660325650482887246878220299931129637658080439940663549371685978093340297954750700338236462173817307227680506711358390383076873788630141490095533453548587594373899650441102799456702653772704824163254145427457782509749471028052486155104651862148268218181324859397984468374848444429300389069562920247502595266861368550048870028001824638036434328329748781987850708038307567848212388366804606884966274526719977904404206194824901679674080923395335161070823329070522421784921894221757186320113624329444219169439582257560435155162039968236721594004335159662889531219885937827664566587578544168693317866915402193499026343103161656517240974536607142421983912483967761322919590237937947468224051937569855032882231924467561622971824861560588942775660217678433128412438314824580149181784337013478310869425473679408664778299407477412609487819410708987273538053280459558002128047835831475077683265747355518727331158959342691773750700130873113604867862017818781324658185329644523229146648389932504182649243407725331290827420950782164304914592097247461259568550175373104050986156547764033773509598744382657344494748155396599866156847117009286935459858246311001629628604693970466753204490503557340817230466409548701669346560880001139127920167939456856730499053330322901395718737064366003348167200600511969258556362898361018834243190941547427264497744036888712577271271775195024863322779352978781655193059156379067557084844700765173866733055394078155345491215017352524091388764209751155886072567910921563840013640580684502867300231739090012130217882875967660222491579475223500801204577442254391093226318297040135198466909292606333998255432838112695150520808760261894919517850131244869410806465201049460403340991356407071962168882592399486892821219754295059991785526792851012965014875596006448142245865010887422863640584429359973955641246579938626867602003308705975138815580054697151696651546959852350480266729909269474351290829835276984845002244737344266817876230483658891070768982201382651116234791346254747386327424928169004038012639307410509926148016877162241912054062287665310789761811126535447257110535838662639344411872244395293899704441883050774124090657561466546743458517424732245427657472636980074006481867013531792964036195322629232164723051634043121576759520151951640788340364455055021623751547163570397570494893264452230464670566886082078869302420148632006713274009097635732152395449525683281821462063137961696857443164283544265931483484690571184143689665676022363144939564119650963947178177518670412831380969614711002707540000584476585759527126650584066405584106843115861977145138560226480330229555169282897120140390231731650639856087252273859260281682356257421834597463255135866372429333766763139820353591177471767769911828313915402581595461505354332800073449083662866069230958409142832570359916461225434860351315583924985793748964377890952999438010886081512195884162102977726242815180028768477820090880896545288151738606802456941767913176456789325629244974535978870262814867703717625043528818142635202461249125176771714574510532204874996887296851462305099416819504629680226796897747341192057430552699050121679653786410517044634673444547183150072142498260596528493942882327419369144371753558461797201612258375167038238175962941810844146502741617557495200041499582990732073265616938006809384130804754949767406223823970203071746758610672195227010619333037776839827765710006341276458337197644826673984040094769819424929100090748573094335103403812004680877938635246948919988935225000345014894774730846811850294419147494301916010532373399793988599528568634993573625418018100131200384477310139394239788425366011034469299295589107563640100229682195328902126385193409105287414008166036050377071056721649739541761577501865178862125128142783907135137315880508309337484495359905114214096416830549608265237605441785263436953417897595709703776430191296087776939724382593902978754405706986242880442445989776759233969332053097679689994033136547431500652889732057112408620029041768923439420502336757804701628096279521241307550037341713471904373980144649309553684145948190804646537089690492003737094061286971185327069570529762278679979583592643960724554974589461039184346570306301916093905449616925205070875520422798566419565938414345877938193113704025574139498923661522498260635152465730927283039448565910837632419584151515692045981813631333275249304533629119936670680271519143930111267928860369371084420924682272813046328901158997299267022979564249899717482622416454137105022060191558177143622454646349862934513394651948981743466158888317487350862231420656792135145713483439336870300845359519246509498031409949722250980705237315106714139054389141390072567668705530918549164550401539285902820916629760629577453988117333418342292341345945667117258607067798024585264313951759671567908210176968415010229387338151900680033223559132703734416636914992539626383352950250849240932127045541562814047893033617746286403020588294269521348251560685067335016373564557308132380430027260210499126669823778358703030519777341639430980543400097935081824670720245649539649582659981922609828641516301685044245860729834289909230903735999537746412669382689252026770278916696955215396377804933846890165452557068325297335227099317307664159650846568296992311525949344979769640997179840625769279709313864101620660131030510671416677066443694071812499973979522382840585590617220419267226681498819036303740682453717592330059802405888375836330009639506666308886246715379857749143751746215940537611640781500203217966772985820956264014285075866289198088234572055108956075170333944257731691449719190064329514524522048420534078480699316584244204269086108987088011573653105014427285902711252374680907391679142293142132213503059627887013482114060615970543094937608338249106596436254436270559306629976940198641507963188800127609377669963614741767504161496258701966750949611666132489480055937839120977617684667167857943333364513034711415508643316666776521071342257902090050559842790846118089157451382561531931684721331010732230309146457469940397647864224719974801485639410541032664134067590281296273234269119792401435666513929535356402188681278995642651946701770463722544772167623742030836805706282880621041218243570090287394484805446340651961043257101727655219985645915571040049575392042359416075730141731577649643328576261767498798489915186180179269314583709113705201059194280287768227580402813430016874856687447626783163606328329383070713649165077943916283758772444512184611946528452141228020106253075646978643599714167001418445314710093029846384895483559930616701306402464913385899913780446511697729384335635452709783147044453268821860467587195269538813894419855119870936914095485361261674183292349820737107618886005875808869020687906507876287799454834845424919199753244202651255882315264941882447998289705418461926743330085830447334677648034737265277714093890068971990950288648065587494278833650921332309002074439472524796983852630315334155566668236185012127346100978536076859271207762905301316015341919713373954713365009836343299659382699378762637121498556086165513718896110834612659022975212148182228887364129582721457679538370921510913690448931332515169666541477394174309653800364159583732765954297310613692559107275226719400517269272174744516496119606584498165582750571430125657657285142397247556049064911648187681744617361863858708084308824903464438797356850510817472815935778848562637771248556552056076674673679285385630289943548264802790064080649826455223114084650839632647876116328053768412879162404674407948170417482657522614676284477448407804478070002686605390418698613156151967029683182808147387966669568291449556312172929088996346528832954851963663583187658796338717249963750807078112531932186236428586999772704957748602819928384914239600920081073716650051975366207847818993513066253865723902165717736030594811568144754648469241828760469316957124016207918884267930392524812346690102963647858416250746436967171641500704227901865133560810957973431186623007663105790464230995913466877097903177460600925461314054849572524516937150475036963272721709730398136372451628940179997403917660029470996463851970636090463979391806723056674422259022315536982215119793102921930372607354942413344060419551468364405972485461228287793516590272800608441923904534776391709745312302159812335451433293833403709962780985050070935628228111312497877298863784892395456874689427771826938676061085969472303238053131826704713699519274010736697410328788048915349698371582233456716498531732090301427384402133961206449983818776604289783802389520888711638954088728661448406517562555253176793070546772029978980501701077829500858949538739403605352902901924598112407113440502427741363816748550769241424587884557839520169702126988494079852315596091991614522838656425960217352736973076865032070674586197492133012189256191723735689021584213509072522859068287781740946852995308619646378261536555839087358808662668424181758100209419676147176470431186628559090777046143430961503212468105555649626628906630900248174090599865168763816884003494630885330672690416544966411994479361154492809755338453227988085178303854076975583595804705445567480345411590297816415971189063742499587804864440658796067759895528156304635287935072146230640233496862320760925193368487937145367586514634230827654733704396713326650400446024369563780838607920130460446370374091337830464326835263286788079286341866961860374783140542718838387692052687294053571362890413397032668710634470333611214338341153405000024666321785206192270394216213149097415180600080882583581727423280607429843320364404933326645897723232169701878158524486773803190110653388349338296479899217861989035051796897730732674242134666632305967674488883225278048321112951376749627767540619054602108278903619320820592876964535211172539565545226541439649770381477475038410290870465800051037937812687174824080741193115535523917692909950905422134458470939402100203520636532198050189612360343457395202019144866059958455934956599286156209219194804191911890497438477214845568450135528499077305006285196995854331523866839915368773766410499448216585642851145664448479829400263875709887041852322339348294962707738548308884323092502186183842877864851907321689130091827800328603252254653048620033083828175708403550280956667495545485818934997983337769975460599022284794674903557019795324325327736957820916251939765486838568495727553972018414989234106401214600738581832811958170276843709812103801090874194934554471757474701372277598154115253584468717035100576766735963910259762476391986984815354560530951313039249002375785256660090395683828546828484418386664244235226027703812571604179003376715244084418053821945378874316852323725066258584492151180732454901005164876620285280173731020553937167393716101176581295092275346259813316261925921001834744023401607149296715791580245420147053823391152676897737790947225259316678797841562981873335440273505997950690115158452493927743359057778818641644324393793835859129334291635515171904670133185948598309222386078764228773577406441836894864422979841296965742508085772502602525056366902820902058590494160997716829754861616836783164940464864320654812005376223351433956032726789902157359672808093289854663952743474587481225297970724285764429701866358318203902264530174410025533635294509961203658278857886095938208204073712915478708394753032547934797444308137309666412362404214310260413428105313895477260713515542378929426818417584722511800956491269148127548526803526874823093309958115483216287652320515499561557180375127891128866041460964314546528752795756888952616392718964077722512526214074731015971928892228425063877494878716771776263511304221771876597520076539275307922853318215425366467741801168117660318828563856643112231403485008983456031129425273625335708090176314143367841365108734467950826300622879372813042175075764864063216093873055749583218630195832067194507398382244062705224576169034225816392277662400186008244673259029212467487871537397933762623909735488504539072709289548138169495305220395915803190550594045456728632795647454677556310089776416505862425104709579348924927796062910959408808364523889943323612292396504525240086106443945923908005054780715908700226434583548269537544050214811345317419025784504799434923691849556928757354390330841861608509973518785314067211315347248810902528955994681132516848864091857593111805359528814652455541910229301924633559785799415366096129630821970553166862549213718217157724065987240895307305219195937592816543623080396615282089840646538369619937910879102229814418020377215444331310227258952656512288130626495373094826281292593414168284467176784189381783430557043556647668710761334528675333121858344205878952365007663404116480288919716397025028798032272715695465248268692442770563820745185607569495351565671696555969631342939396033765832994977883506830357363062269121153464976719168300293088950517197344862103780537496124278070474447327410937141064206517489248849468677673637865886982229287261191174346735724647229568927330785709579583165434681991862636840078593560128454143410699050178940678158378180092383386683545953776062375619568366591545229575453401326711504418181113533361441392390269604893560955637981217227606869812626670672742830901127858833019015180303802173008387488785069868633160937747017524193726248743568837784734184725564216593955892219621139416003218286264508242274592863883368029645684235353380776695361979849811693101776071739881542122023845834463288049397719129414753980105321285823645079658483977417121971575034087484628005074823126517580933767511891058518982111329621055874875480141312401815164572795344317577624474168286123753512514377379372044449860388036586042067429197455495693193004534715918099010112116957912699003922232167336775372438610608296586009864244846020623347765414844309782594585314232669637154816724590149344518397771666400355686056640739647040333276213723223614136351841608389292786096261589971505969765071489749612638360116783629554832653747438931440275543475997857626627059271845875245003410650060592787071815102106389754383571406848517475189110308388531651606957591881026542651548347557774773082537658878731431068949595636043778072240431695790137033341421264924803853616555093939132821530601423815597894610547816215718266119061016875386055361481450385712963544394197961790687305880165847960459833457997551106402154348250376607851677038868736472644873278176091098059871480892071012583116573200669791074321081520824589712279248480476355458112412421634445995168543583667462005476571805577078643558326776294782890276224588109066746030238495157573471462603249006663452178263305963253848378767283772028028067981553731747542025588796838346263542299836588885674829297716215001384685069280394658301961074543887234909874853281097761338157793042360147331306403584164359914151410086412107666739850915129496423544708756731521269214588034734964113137612648393978277504033989077423990265693751561750800575158082391877106546588758521382166890637603547993757587925745512727785865774541543987304994646617050582329365638411166512372844470731685694730958674471244584920158191433576180739256688070392209436277725477249628153282968689208715133728833056312900000349137930490710960523657666637928007530899517939153294111309896555275378230270502672552312617471694647982896017811741772572842366532849276033097314834887141432732827285450137338966182117282075952152035735921354532638731039446950508997476874120363637258239259475835761581485988492091733116707566173983243900262462127195302380926932951458380794737837244741830645969281211593182384092034517915510935604674049303151372287140822799395998041189670361339203399862911368770003628734083514009274433666364414967350333715216022315212450601336704991528501373981830115664597362083351808191150132431267499284216568237725403708724745890584407651087502924348919849106084586890237229735933305098765724363156183808068477088573986295122453068507132870320326608921083143725384264397293478289888043966124192343510641960111476735598762531604771349565132865457363282223313259812275031390124730735012771255852100292062854597965185544365364894066956664481772246527285129154994198924237491650754095461004748319722397716323621085956338883476124068190894275921155784632694420470452412934686985941217461493000857714535252525065728092997194201882973451216429478416158386166663888578522590970370184548764342711858932625244701983014815279445335097369245128699839682417056109502259244469674364386149119624413155132557772120463499061338272000315836575540780069391307787386726896924451843073389559940318696249943320061677383627271470237210434077408981830546907784678856144882843221904153733622030438738322823969196019030889409480715084896843582117693460491436404836134292624777968893143282684757198045207703594739010020805669811230040400939608895848789873166047392960881946097708422558230901874139177399961682742313128617889643835846304617816502101176512606331902029365280181595957979702280987555125725553743957010922711754494868791803459018059997612923134965030854709723838259440337161861083328237063831276942522764862256190572789891598029300600931705685371434372992936597558288430756554801045843903342154422177324914067433300370548837449663609469115910377503644591968082141526582617561502726517441190880372167678457997106861889506721028115305385216657119643321878491179963520923672280831632430018756968657592609426544788697701959805134292510637714131101385291818361014515306398772338401485711122358232892949990860005074792976001721013511124061148923073760732076699598742736506966236278566924138368227844027273183549942340430879438231992040691965449861230052567834596616556484150937432827992881126832153050441406320784791101630296824744924167140836778926357184381013625703994307859189386221990922282701125260722757964311834831574557826162432097643281946286758653571688309836135257939848749854598142397338224922177799975444578350470234120031630910607322433020014060535510652348833036163440519422871646254029599557885851488174078821511128143640076517043972154226989953943852252294725179560654425085772079588095881667867514973992477964925880479007711243917159098054000754388782766783753627190782860996562070975682732908464378071032993595428489486762469962325065494468324006151918232413579284019241927456409856980320185008922153466754056560755293802863547281364964225758289379132384510987454815998278426755875544725157699253809168998528609726092908140377183917049754130392498544788210420621755946628851072704341903014187895558064556113761477884434801376990826824298708436855675501621927967553157470867055186279028280451701781492553705901135068466560366908851787530190337456132228172540301846863571066999094360970879141090758454696767610273165471656399880581820370650900101627966196121781051089508071589282865248407985707748196937939452405500674505220331359734789706262548040749629479569577762983698089686760241713069411381183847040715795546076820336976503849815594984404398712217696421037633564506029854956588655923024947768723237692454405296758662190551787582562692689884619769985923334235519408930608481626437832849332554475452724085052234306627382506305347293164174250040446115981413644457466097933317700528965371623375069195660485312144543772103046945458653868455966784016222782296830881113940225854748952782472861669870247957319928775619518801518105527395444468587790409387686710053883632778118369433271530090212177902734440347647841257556241372321807677288708118156456476502526597167607732347985750098315077761134762455145498967670051632468791471159070033266562294158848417922092917253401769484589551940543780201747524820886735419383618585662731580766074880023119708596898629724703657726839079228637176036390313636517410304617850068139251837697036400706093234865330379420605068875964048226802563689875976678901796949468884725839320877414383503023997149055239031417618140090401526014121454283247099145783827911801624938989938517636470402540291686624576939135609560532756802907259612613777809662048952479892541186507715772201135633838477035474622058527014217501066334146620324786492085710511587547510581155573319596206192576325523870734153270858454749563344943327033562147942098407202815111918457770969872604157176713270688397688992253958345708295723375582188837386895040075280778427195593961498854447897319085144196623957387993785909053903378059092082149023214102700042095387908328781060333518109642843166204167197028938945308873116278174470495072799342203841417500327590850396742720482177904627157771222069288245940000164719590445751412283852735893842342188520348354351973143295930611612117866539236156160015677237697686234441875919594675467461955352021743830974463556144707885680334632526206019911403040351107428108304558188982707302807239761876102588864526576471953147098868033432624937172945424788859388249369841401434623006433662674804247840686184809609914773948686344391847854741987398340513469197686030864097775550997669854235622375011267264091569553377026076047511722805589137198244467737733655442743924998961493898667878121829558277083514906488913194861852780027842058692124147804006144837495284650679704372931535954029560023598472870418526655382540309792172255413023501421694453414510734207160681390081934874341301821566925718172338081742790204249266995118249941226131874526652438035898378922041762450892396043731502190271460632792450561152781313440079840936579297292091225367201928765675249364649494942389963222517277601377848571248563594927343841852887752679139527042230658653968762937261389513095704326595961906961827584879385275400470715303419621217213302705907831767054509948690509766029279392229227640134976751636587315110717895742424388360827954283250992301074232480898892499069713910496104157422779060187897833777169287427865739193887078526454572137688511448117800953609052561190459800812779642120718212981429215091296021264096107588899921598110801712355679059266163511600061940166065717353053629035038969605184127870619504269959228959384816960145212491854453928419085728866823517251938096097615828829818821765689553107569171826588043682865208263708951841414279599158544770307892503930739774239617169073569089305790160895729540454140888910514660452547493642093432684935288527710289902553591107099598799411949015320710131425913451927073928713589009269710281111510997121502697612149499640937505042250767643269692860875858268673031288873153597570633503629530473129522326313120227179730299532364837966999733818523468836692578691222058805939652754297892551468080522899956391878525338306398897719954995285906663307419551697643430421346870468104673751096525343935697974441574855719538873318698844282386969289433060744162628422561328972854559182358586352665434964547854192540585616720577525461504081854892295140667890681344467427028140119741753940875678448715579608746714194537173562544263784479057985307280589761284662340349560654662557897559417785824484007650244416745415142041355903413676923046077472406834533601185412308719839481180402202230633239232460196879735541596412846264890352029650008410356079312681462349977147743358236736294873835709033912157759631279945505727574778587679186268777599082510060089725047344089295792637010633629157934277838268329302959082561102084875202308697549621712700359311944454868242083364594991078115198643232696543822709048852639208826218974120034173334510503086526085870554655948691207454189017097160744327300766745084156931809637310451528861276331233331858941520284881955253741001567288800885239235707722674406158920809136623170662486854667580962355213786821352101210260820793357582909325309741713227782425263131259990171288051355062658285357309936965471774593743509142912030316129571501474209276287500317289182606887500655567764180478756608260522811281945529687577660689829453507743966832487782899913304522397462468949648144272328974548134354427932696918816554699468898612881940278514315308690020763622147736362879024881329399956522967647341403616722276634092735564870773960773722435584988640832129943163177334007194708494070517008300581736509651867470057192814850981363913648268479146191400718044885284142429877088076523500345244475415677041519739240941159129436461175238477237537405903716947301764051252412370631007322614423958953052244680926827649943656228294690252355024660407049539222344737889300708824829303091267459336350240700611687489655549352271360818313469487959888194803706012360391840901391392262631997867732700495576579187709369253873401546956740408600247272453083240480946480224924399355635055768535265992113073892590432235014356611886222808050468008135376050330818862420636657909119771297864423897986045440348857958440795944966606764787053782632725628961858987118803536573308108030789325469966453873333033965701123786936797032111889536276995980502230720747147472846363451373039018905102242444383171967916859523410915295699801949296092942494874215110762570805196489864740375437085287055951832652569443608955391891677597548421558505409779504346849554811670522386405062062070560034336841782367701501560285487298935353392315974236051561918132227898246676515645486266737048251943388743904259474051385390553770926497321584771083931283232648133317749213056300872204245313830710857530703568984313229048559526239349857661471642053951366636381328611414158709187927067837270702798203176275948879039310715397249691666440791272071682553142997049185781731493289350427056068685029700973373164197319716097338110240508499373439178927164463779841038484705174445150357338155213430082303378168416559331146862005222976662531703456588445188476434856973535244188219252252446685030342178735776184830061752500090261647798221640376468092237651642498561193310931397802769899307113400665752532001830089827656022074565508455541085151721292118316590816086233237103813598881892016077565424664122365374096011827359079207154563671136053297309612753469511904335739163975850954935164283922011794894352249847591857871372856701692049224398305851633136783555869429817352980344208677569250445795327887769045302441674447345042556410638811472209817845378229443033103286212208751464510660238664865983965230960492116071675628214651963641987575227072260298590308662555144132640337679045356308218514419440966121881458663624385200753621439199749814575845655473130208942880058910426662494730728310541372037506244865579720374393824100315952685524780254877647635547487913247075667556906279091665776078577316267453921855101513338464262107511196335152648703597691208823881277877103643247678836026586109146422673989954035171901872987374907400788261062441832778639334920783959603692240724006358467764105019992693727196505277881084437515188682094034155940561054790246065783934321006358411228733891175218957512881526157902742525527987610645672933408588363545275369989260248726323546501704341738708275663032054133709042693665215279145323916131381177199109387891490906078564323857642556499796228302741157245773686497053200917813950009316856350944804735367470707648541305619573521190890701665085210098626230748561471875431999304537820002668861113164628899995754060212045975812842991557143059249848197639929089705698574040109998959042929563858794146616320516301822836545925185321279154548712169276544328392327907013733563916919660522925123664996013164789348243145922148075278040720805760050747352780014466834460444032561197507285556600299088797465062341621104262246382553156498559570780429993876891435107657226832621046580239338665834912618780767342294261856753848063471946064985558987490805558083137806178202103923637966921362423826946587959533085058683700524457657878179492797663862858948810786741609196054434891293528161495251729384297096765524304837448315697159381456631574020325505759497001172277038786485873395288061582875859282430666600085395343692510425649632677830271992771915542089277071062909051477444293866668942343491482795047902017292656818956123440896467122838777284092322880370570571370274277353666325157897810452210543120695917506929800709635348681879375604649779453630760404783132976408273052150687244805453997693458158074212708021620750030447257113899990180003207309246066611995016674572494391516637992978160945472212995104702104765585057686066599498396810478923981785682935797293055788417308458765880922157912931312543204520211654700473821616284387739325844533469415385443100241670615716695874494319901446166438291174433116931259628833684032700410289828380989595955850539957794228562746288553334442848971059028198169564114523004443478039848822085432989164971464224323637526285751812741067493196106482654121867063243705070600436705107851031246479981250947942519318041923286439036623247544644407388367663632105901414440882861086394761997062858824553334477762102513348959851766140359691406878707342217890198607287550270210526021886898208385480145987296865957194156306452840315121405034308751212091514216092446012333346757554208811818587131584090346119322438293547030501793067594619536455431953784609905399841350558406197785545501067064864696782305645620349493299428695241196818970966962386880779074069966641232144806566614165492597680722534729371986011522443296965961362302771253489568547779500297095779652067334628232665223208088352580980993293732484924413519428491283684076834512702996183628630190854740853665125065995374175408606551813898215977826116718504438848490904637938705595188755047306555994849891518691270572877697959233550122066336870095822134980737986017471070383555359389615866054674044734008595012905901610541965756950182904655221346858524550206487582675337053264569690656233990171551754210201752785128653059572504449772197607699864423102914907149357504477773227650607540823261821034986837465563764234698056110594249394188857401181570426161673122982141635862313575189838337090854389859138269123574435432677042754087234184855910783759043984245862319620362443921034576849857899193425446705641710335747539209279881789445655233927664431033837581454690429680405927825164297815550574953113768375353170748738913903825271265541246209071334388139165889703196055441286312334517074994292076724317530238711296127874538977857968908703149277307707509017192849462289543988697985867393637665230696686400111437652519046847736816566025283323695693280550422514515520857424447078847757660023231790420644950441734494987039508673534575741586157020936377700675497727002872403559974779070131541472172755704547864598325305210035082640059995888382278914887438846376521376092016067295524915109475457155060126608342111067340568093122572818976332367903319483628735316551799103037063172191611517530269264512519770932185417002518808500299672270839085980957269331111310207626319119135054392198519828017143411659402247761533695423609915438560805412072362205132102783312264294218642404693246419181787881644296545324247815219205597727117999643452324689330655641143931894089100374418187567152776614550284007738054778203033556430021987274411751307304156840006076552574657093218433673045059304321027029641200529320867158037148504369935429362245535475780544032440882332612040713364101782693717202177344010757599905068214566637639476268177692337375576394116070090922674098309478023436167031348661012448337053069199823431878948365307709038378771558884795101609942487494321766790210126224590035860277480424869950046464099855861028530401363651868127218282211032965251394345174307976869168228575999152715490949860487938202443020721357319174224367564579806981233726539593785327687172161741945624715006367783210870839776624025867194420312930024221153598860712320242524821630824679790636286791205500189691614835271626985088013622194102755088177217708326345467485033033924046074934063178664567646771700545115293093637300785008285526486106319814095128202246430889557782919578320798346248859672662060005827759971921352781961562199183014420531738758854656432341019097424878563998553878244169191939323106716599131278753391368022547909946438304799673305113158771498304319711825649156828822510879112638707157285007832636822598849587918497567788875992086214127286005745753435290121985179045217937442559119015862129645457672704085906463404138301309086814617442595672897257799132620994265117286340165511201507525714811417091945012333304178231115608613658706209901826620098178215831901739629086484271263370545330473384405962937859489515938490473575441739464411703066457452475531438811689163141620817718917452754047680777405724702583088914273477531569872948388971428798258177563358588560470963119849380560834583773141441572656735878305001554817819167513975867177068838116664141385054596513306494456049775168419576166821455728823426410527012376977205136265385781162833506792768056949782961824143451950542449391931547312746189231169376780372202985489996883492920414060206626701425691585782302229318034158169548320531737414808240853998164088081362333514894806328082789474316485487933125739681738898234360375441879412133138653319858586118475116830423876528889768246406663632427262280587488158593045859913715475673726012610556679939001902637821108567183244968020918963579229501227926921924686700168926115506993025969963481044538320433721218557299308579604277273649806845902359848255257729448098966814576005320498368523782522241004697704804452132902701539079816785486871577607680649871802003544912179064088475210574707523125799521149223193601698101758871444185228452804018076405287699755832498442388698153391307918509239441529622599523365920623090887866282523681560714680874347521301008250972373592073041081948634838957923518253860595806626663699741267957146742350727210032938137536633118992229558586409065759618303779499131634748034081424362219311087822108193404892248637017236609227945713800923969925267324088213339799560072232404110710976513133445618441520555289195626315348651117711634576229276263592611559646717228398440281201774008424885016931325623074692120594402791656915854182496017927688043039607054481930531417925070406985579793083931065518163030421399594060988686511718437641852732578537734583320631214392161105427499795981460140806346148902078255907320311062364435303150653940236891035361364769118570798357486563607424531902267608054448480759412803332785639893610691780667362486029809154321334886653897912412510119551158096380421932101302883009736410379368407033381522920174179213632325834694792115486702264028165050065820965676601454691626251865262508788180111758834755791860527560245031075960716377735369458419385813300219968343635979815231722275511204220016501937042499707101283218263384366659326125642290622401786880775442981376055692150307059908185678443901108521692763387776183463428299319196907686533149632443021588058974701732381170092440906284756287145067885315668214257877536352631326335842820327220889339749503270696506411079606715028803947137890314138758663399722493812752075252149335601382716486189767907944810375746215298990605845015474226216956301399005207119796445226162684274673382428124825698433753676342134221029243250191391293755889852918206820868795285941079296683523759110369937139026672669323841180288310960859643622871378258845531456481567020384378740163139174736525603171202764887698307232318031715405615644527444826019956764450473851580122791164446564361178330495838168812251672418168051181163341398272718885797327147191100282502884662188660238198779711024764258611562312920213371348053767212454233204447151302560727867767177015410068584207262421050500472660897445672185843584421878499087581355055637464313773784093295877550318573709045804465881782465606230117388647407608291315736199419931251356855124702127213464170534128271097898708496273345992590288979899777605628602197798423582437467777025875348551150562329067836795591511226235162638334721848138849225635978170738715988355629784264419231218694915611858849327622120088334914763906152793762989861952110120548791575467884945442267570479488346802568380551153909998365310083660748150779889429743817730679412572599265492131482557850701515012370075444301665333143929004307113450477234512058108909316319710178101827026403171824711974395217692818794800356646924359537833272177311332310254664999655492053641315706187154838442038608656644417608009808422598316754393320871195498606288518333707746891670446042438556021063203394212564087386758825969633203639679990943457345055777880865005940181848021718922856975718869777676640970466805957498700470592232065838118026368105614064506321107695469372618650918941661961175836743875675289133874722456576922811476951182359667185959142459843883606233240512022885879307321722886718395143955085785044900672835887635364165018568411801659943782300471838991850600414120711172628077182209036619040596327908732761919256399970272202806033408145838448618186943757767257289109975617653279617078741724198035743143930730608496235295341330747517262914338949866245312576256981987247195926660904935466739931114119230951305893003444308267024484833557745406393076862715043767626492066589446216258251694749648619265986207992960144526708648009346740776880156499432832511761340252253928180626616615053556385236049321150595529147111085418489708594066216489895877786072201172603152524607954042953469379639765598283281321351738072234781931055039171078125414357175138904587792627460032230157308034871773299116367614431692928087508297788196731176696807633607284132149782349040256325258574759059693781249110847780177714044239678013807804254292820276307454972763025197411756950004933150989196637985406717252917241062391147516539596416958678696381672924880572740595129536919491536810938851207901353740785401212837979541055807276458378951939441148987092895155993997606163558845344566599711888567556896088143507183604438770175937188983530507118038973799156463424697690849300263703468616433462598823671806647308554849243914332218464164574850548615956287370609969617462549013461696998578293020312923607402305438065403156457998142186628525232110602424446218259156106625004260778667151818915668762643491167472058541123089963977789220746427622379229565666634567661609319340160038766889066499366742801521721046415743119774084604599265015955995672406018123328926327561669279838877632069529991186526575211544951723399010145858309760445144467321684001745984261684860953680255534734776736335760259374992969685399721932383200188574282350847010838999730919412062076983794775506679361424091855033946666805193180504304286509427224749872371072186232016396933491753175053686396523226268374068077207489454242089981856068515155508640148487448135104405532941907385736862366876251448040111714455317542766710281591912400788658028070929797291020234819971761801109810501060427437632859388645302595623186535584812791819803331463607562400400383483293360457265144638549554045271407341313336516081353079180002545620761168724235987779435932252972494310561449351048283522254597351905713693277706404756542968578331683746665760425790990870477666182234548637414927568021187426338699782816341713272128697420801500996165714516795019893025198456296450863853100214221227846779175839874577904802961368532820764860929220857788335356087237295373821579585517572209910117238344968154507784599000713859902827634669629283783088783790255967322852452881716475847098175955849921598870772855402842653400770684896334121695033595743569152866961048125505658076599653539328598629882413451043163211806446184158557198262098007924037500543125962893281526201655558694897898171562475031038071681880391538889672437223655212321512517336323329883135092640152969572735438661256280356658234132012102757884466983016838494028597876578152275404364781406013906441522864901010953291713149218150991068800796450714030374910731905763629683384163304726523237289850615079074621583946058279358860897002777312219430640264033551624396627017653171548568975837570929333973003436531921469502385986309614061694870419968439165367756151824326003987378676038390286199245896731040620836600963635620967286701915545180491820691058670765200388797406709306567296371240897753762739959336320022025613456223756186437127621027162710030990640473819279097634952776974544935139537287919022815950834115469568938747329589371332528509809818143576733668514757302033944347327812483570797560383191861231616598932034772804746959033165719402164189946857182822016783555568741365356988318270087494816155070211906519048079699839933489986131644943220610572324044023576288548428512504673400324921323535284874421271340958779112351801214875879128196249241738728532011419989080064249432607252475162566401024267160172128910491535487072259166650387035422440245625916383145373682382637224364354936117730375516183624926334987703860587751339711124722283313080625312923189189070076313071624938683613282545750051713245285938980774390961038561768493835516473550299985328537844027248714032102381095200848131954089304865468199730858333657385936314543510733435035694144424488304654719148546777915531516762427434400764586031387739275457351489742763859674784927139652476931919098701407319922595273698351765891796336339905409150218183838559558518277756638254971632181990551740289472837875493301892188789326470321721904499274720557840133396605006721425556920317572708083253990419026299113271824221190677312479998217349286381526340333020475590233354126107550624486769640905196846593461444930118512725287737084413369357080850128721714177390896971824625963095662602861223717805910577362953826502812877931829538290463762427649687358975642872215205931433411615097441698072885169413911433233030618071238269272279528747224807454171221775027366004877644600022106010548418299015199309045227669712927426883999945434371835379261778731564027255957591355906442068069726344827020475852012640907607360710561385221350737762503416938880879263235375411089609081161019132738488309277883428652822118625433612253590881349066252310761247471853595319917446296714471218464811184506753795776055825531699847661389217012402571200106897822629455046261074405683880846122424135504477154751521006229667879286848568416566237631963132382744394325691083861684775396355655114778716653764076864007452411399723907277784001817856178554628842098902967217525695484693832381766211708156972753911230279498381153111801691578852671576964828673338160822566948385689801137131543864742785481624072373625833414051551577281062532839621609561298598467119660997005009732091771317445501200601794169273056215108688875613302839614622970736704611261003687567101325221829629797567749919534671714139698178088096337485178578573158550551332203056499635800093043053143090588383712777638783337329992903419086409096818743835081997695178419501441313928385642919141709213784895262048310573699180481226035046413107473820208886072331033716274333634067209920604898732291960022360481626371549350241699168068588563407697522388102181270672573244779250102866396452236927955873219342459594394301948596398911327698291349042108695614584465858006614434460356577292135864802739940437256048247419704400783397982387409543504195833640219725669811971549900283093063468064117846909541553030756471754413026364534137693367901806148391369771569654761815724362990470209185857294873382842791157421463001756005017398628309394246751156509858896004056610959529037295143814102118143124540958148821264905234885417680626612620024053496569805165263173648802520637278408545243903421616427199121817201196502439383233386102118283168689029905402551168521507247029415098358082709740766673277035562445518717551317105590136153895277576353384352575271332918716537170437234787423407393796531754366897644307315793663981973243060077336686277375848484220594406144583232307273473085381206877987101702803293434860553236580863142495671428179294096490125093768114651678060309690589523299090227169912934785350401833444203614981726471112079530353843443665025067056193114123493825588022201944385748290663741060225819275500490086424797654862958337205599815200506459993027687519614500125563034830921643588585247721281489030574643340234476495445576483565918943790792629495691691044219456422995507320347867858054609695109038746555705134604294982145437719488709295549643075850457455983042422384848787570772769340912008267340798453183833400300864957779544882510708165365441054587440061785428183153752482871836125239209186984239651902511107299180495217827732235975003891236209904290148153163015464388137039360958653447438529165259700977606205740196040546646079651499749205295058377342655500828316831933062276425083539332053867259206470974647641154338500279486263214858439598064979909662914262702755314408904463536104316084103807343318724196347336297217639508011501376403562530046579865629565228954128085566069473487736847698763951159861591209871713894192544757193732446907983869960833096514553309467587077139967379132587037732851776280401809388209879963908435750595814609576379245766171657992217054495907046655952484153970126690648194464872348755264849897929465649589167489674665128426230521290700793578536598850729025890188082434858738564420092996586435100349759529768868899258209489814989229003086309359328684446096204927290264573717483472964398775601122110469447727648944986003372222761029628363167834074004303108986620281736094397112270242952268556624172562438203341602001022715038166121172962610772303688148442416170136869960991325484454704340419656721691079516786876290145350501229095677054415274566071803030318825151491270032233391405378607241565078069524223496118279845749357515300678698675780838162026533640943751906282223648732055812769207259210623854963889561825679308131989437204375806190705295270630717420814031122873969198461257903727270905939611820540484017628806167143103141967947087744886044002912484670185699076241216505784334619701129632821631095895256379300687666138118036434755097421385666385084671431996173831377725426426623271777454361040620454755979382270688680151605901768110850217813470354493990926878360775077782200009232314506609473830588464479314892266565416393937307106954925930095348372743456114897481132037988828497315946978718149216309610425458128500012230062424505001060158285704477358438745375356480341842562550231699804897485591156377267628484548559616287382365699129076050610373822851771034820707023782827798005537088752190589188533534241324154504425172409484080908626145267554057017028875502945806354612022135392385368004286950203780692886797878877280981507992342456398502130931694592464258263372345532476333697254468888760680502350100579978918588510496710543510047935231206286843352020244316759994599352456908534792057560791209046503982629049003352272511479058387788680257662100101115280674506099076099265013900630107961375455875766583669675422957163130010882451048073774181334540031627210915686329870500348224867561591180762914129704487682060268173982278186018722977622498652979992588150706162067598385968948704380071270981259846022589999089950370129173739143474031214875918178783257068989858898308903537496491758066340244023836143816343718547013186732041921414745527896137850587054926078988920746590349381255195790911976122654037345324491798632498292152507335539951846576544382166099570026338073355189336876829785364866397919877305765795084641735417629876997574742694541527955104955016273735702785599744474661977703719039841667073250007901431516952810463926954370153409268033765138019987920525512198808814471605749590374917203209006494022716242487826472202720025058052968846685536000027970884651742356929080496762944993928540039254181280166756633374440465338868047176712432384452722569516834718943188349603313905439254333927063139332302470320694309636175317020953403063252292061617402317997629757670593150403988045228133641551861545896913583156475875904808669268823511611497343425489901949235478967852760332429896806120906328704797703943108752976036748479513890876322139994510303595823899297459407752117814774846047948973592947478101900231313407579857119644634101911462976786456028426437478911337667255563358932860896655131479237365488055993401927225163147696572855687336363840197741439644222615863345741913727560102753833670526842986426578085168764684833421347079095885357040718660723646126427996589100320057668549262774989979855573911318943892835510617661063553235676901255629193954254378350754247535082030285457116616255017579640596164970027371392958171193965659543394755831589729921104850049673964694847632979662495373340823360857317034699266283936831012081408317087089963614416935401704384786190650069046846178461014847451337512156891775221209093567592031949725963029293128218830026311247188074300438877590166037517864351176360494913831312245810286626344870977025677101466702228553322733227968911155314434522572509982861736781179064236119025444802533908816693492063357220632757352471887699418667018460611586867404121438785483860222745644223787365907697625808751235631618846528768885960795098480098846785094736218713259542455508911951193013195475662837286837126592246886890812512101017765478972432649377452946277206067525339787733768652100584049689589753222857140469478896940953043175367298364736955339806741867624589595950164409129030898583514182668103043427155491193181366361510133171338473000916857258394272020680789291612295465726159395627491667675346000380462679819584660004860812508180163404015909515200868206143182953952705885155623947101223158900458333474402128044660750395891972909165634230968481755597082261900187725451294362958109773350591569928143206706550418886025308768278328517518794219222271947226178302540582136603219347196069157928065637648399679898639398228975895438065325137031151941946294815059868313231524159483552547361692631941791422610914276402984391361854077540546704899585693377208519114862627113089328724372759290435482702014859316800462098026764256932552879680345012583734430247329641224395317194503933917484304544441721969265707017640380370538048010839505634733878905306635268781757536371355007328056683233043329066606930498450861752186532784720146379066383058757108751844764576652616505140100195261213209512334312146950830108758329495833374436013947283546424509616907376376474697065026489988863249290428082416743925281443480179122293244179097026717957142576950034803766450972624926555088868231535562401932059290956446115584001968703903122911147044593804457409741274286719545409888121308325637253127511076736487852052010984014594043907990996562431422730182549234256704985914202339458461304533800680663798019825189970670864348729554294597485646910314943585437190155596175178626559312829812843504532405179379582144063519294566969253108781913752185049474787688917470303536531895839780628505677859856591076189541021264745431770172630364015543239253705515230163791951667271082630524506680095129193785462632039742465381717347983851810387327107531468933750385302838758151724102740164685379189276578446449428972851232550164076911482314842206735456611752090256297403444807980414264148672849992523596356140500849461173424167045379265493837781329002673087904728933623000997694900999457266595490437524368024453961945759758513874601874759125936712549439219120362471412664020704729278095559591659972202336576930384678806758610616401183466305605327390613729492371069663318575507740740980929408643067889642176264761825621324278151666826685431126024924234434583876385016866979486095111314094143637901981371442024668899548878416712543262637551716172953985754912174144863922123671845045004976761748857459445028644360286520950075984674167251191732519443053801735357470706852803110433351671694948624010485651185887517571301357535228320561482092058571478728630366773877392224508527447626576060694578607228433626774485928971774915411722736144269240427482206155250035355051728259966445410954854547859686149885172470917155672187266365004458889332119813118304964640597861909395357256755956300681707812983757190962805559760608765388496668477960477012690125350078058317956440892424766814675574505569997752192312290106494669173980632836422446305266525134930125116033959701368560018338812786021073877678192945314898395864740180899294288397647380404490249109010415033988155151623523916688819353350520325556119889773429225193905770875318360480901771191988896188728713401684742533200497195517555583852209289919009391371145763713344582675213313861048227015793805605538101032062771426917108916974080481109436676755802309373810397830669543379895389407592523012167880984244389538087034843060448961449559998645757488490752661617593301511822535064265906398527083987344722836184760703268808274605670749432107889283026479307013585960660109458593483763205750000998344155702824677327760355085519994250654983768552318103802682153510341676540940814855899334054168769937387413484376607664219271674549870096456311682567987820338219788635799438565405000724130918383061524485142333904267384228522744854512531639220478024635254549463244650256100944001763156856103203230249288896405669656819143678305986692339936141718950421718865758734264988154964562775750007127696015838734630149266738756263618785959732601411717611556834037708520872264303863025046281228540466357552631233133289777012321876824329783295332893748716088065144915727256478804138047920384036210255429259300305267471868417628694361646493477213769621874928668830062199475774891899103828373348627418322836696712581960818783565022314951452174223644051889107838146468010866365876261139212745493457035769447984619148452864363145061049606652786135989005148115401709715105377796730545509120221061390621773506131511042559593531164915217301021112875237987506781884978391587027405650321145308915525064419288419290081317084638390939621630108459599584016957925944631584622280842541450169524114400516665227427202666939749131126361817439143713711256998665120839442151263574018142200369643739155821653124434356792749162940216876481534892955175208378648484234008981948855877191442213467215607276871234652686378777153777432459358651828486488237887590097447489239547831260726933472363272302708358417293596686749276655660104594730039915164725534033282716001731760472738951739130909569841322051864117736423646579250249822764746035586667109029644091454878636784890836157101898823315605618918749543441011916403938220119668689488372571557143265721850716530735492281540868436663620479223973983170471410527458127871396019347597145946253627654245320727322596385744821790511966399333628783993559822450449223607773507949224288201942161571248544369520268612156106641033040027931573913217837435558219478596622429449893020774946588267219812454352202149131471820392585494839629884098699463933228919897663292448805523130364094647563044119569034609653024948738006335940510769159371772893272164772252944832771792773157936187511988884405087250012703526916789253909625496779964715238265635960353623335596287798713357653514595274792644395504499688877022625578740800293595244651570219331766423557669176492994103313770793033428204810554671237726163153443019405049611557802177008913155921575981336544353112696412843666836396939434552433618737017188432417240220684926724564980385253310464313744016949208383780984719442482104478089816715400058203298933896702893274672035566679944347975950817317651382181532718062802671824468057910537416720363894066731572527709659140533476596503271227834800688741468109450441807054666472035209434648591432714047373040339008614344852266894988985413179376338692339766496516372671273777578020613860141503987642511581934063521945807829801919895963828200596399873291882623913797927418016995925567495035590495513997567817726360138509762991248864312681623512763485013066051191486608468249285835450269290546264457963498455363859068046267858621177168861191323505467225470889094105419218434379621372642336592639496031273095521025187388030952484537211588917734975771109843913917575038990209325068280741217592750593250329796880623225069523781936053929622857000377980552569322059197890312667811961506947025130256335550601556063614925303055307514373198601137434383047888817580468149124666558311679146623805395855386365916568906573897676712393493261657538637734267982414805446776696201038450722906261452969632682228421884725649594621713396377328417538722550048351515875219606026285156475188441992166899545365356857276631809802377725807283929562518787361245519018679625637414304396489423027168295716140292102016006180737121433527391603964124251234068422040868464030486392725100019317199891451292365879174233953090872155287671763073573996067350831776694566009065402728379693863728761587206296089191769679710272131320743655157885972662062571568745246177439027749683379900266546809053957104521692198324917232580107497320935057746519657392180121768610146087357322706175576603894964742669351723719513534740305671266336137012500075039523829519603187652228856952150489570061635476227954412133357751061046909006743941314311472608518707422451328327140906757555883190349082653866596523961977505829050711717854873804888354626056486268398063709222989571734241480978171165356467163590823729768402537482920032926812119901367653621635831892103592435130953984499781777553869487039414037733121155379700943215888107410574785557535095967306145751538640995616763644004000582559992108390055307496570279499952231088373708181515750459202923564322626801075891943800825145556398374656580483002606699384568299416614362956138059036343994149681787046800245000915615076869552191726605952137595398290192467386263288887386993350576281723991367745683639131527655805252656875518092123793827546782933157398454738769314685983590999133467489960989293423018733435672163083302822192661209285417510110067501200454702901744490661233875123595601333779646784537483332209429664468429396382708903186811887879154068439639848655075823469284255422127008206053331486756570903756187889651291327815148453982903371101769147616122412050584610643284072401945328459564703042622410396547095993028542985830271424076949138187211689891978452305045475920057932123257219127698738700762529343258657764600569886149606993997488895356044450928527243348391948339393153315103309080356430303628416233873556300585862037578495228582632572969333396471746049210213072471786401091702991384258689179963024052749623255684881727124800744717675949867217427523722392220185546771024216071931788160275519237168017126550821995409764550921707649980198422313064424750597055035067227833650022779205341960399261021028699664025728690902890690301829286535831510473212551379993770294139872112678911382123322758799620834542348028248671583850213350951335440633313342480707639172802712769603322598562193816692895879774647830065894362866912973698591177413432038035232894741514098001580764004297774632338308417910377099252364978465516451103310575859103318313466766536233495226704832358456701312834546406897294861983646744956264618086360169321223855473619633798418361190300265531304867718283431632137262842896904625474460335561584558889173413472593098111158227481864198512841655859040192539857298928517725209119757397191449131788126564483756339494932670692613532513057591678099815148235073754715614134310395558575439179885199548325946094175173522605043980473149994108458554185478688333406387463359044422189502926093410032327363704699750609693160896419898357303404395272044515542421140242458110905393762030159997462807151465215761882237563373816802928485647466636469739236412686848821097909030031920143896887929766569372167897862676396102783447809618797847141287255039411346630532326542001847598101226778347369391904258597889927333827966111224890313704805866331536178287860238921681559496126382084167294948550216360346869768164274064400687165367901126009349657110620712741553234097826168222717711344991719701589595775965997534654702190357271976309651198358263046587595593871401756999009930438416360514945242885214961599554190189055596680309441448280209601330709181287232839542502803981632651982701534042060182824211860427759320439645495024457744757255135881538569098775610729821118203755389208928809663657632253840982912566800909382702981068128209675249703662242012073855176146657843806784084131963437401829774443333492519159509370222839255104473948152433800165228947345444695370864266902994473299285101124983852840979322595480901948575369743176587629539461243747724750638864246502704838105953600187047238900735624941282967472049879353257610289204797972019215878979152465880442866992105503709963529356833772240904397093161673018311605713141312973926292044095537391675751453554330577246654248951346581020381627301155473979538068306889946513669132954397154384913083903659066436220106458819715189869024068377442094881663504498038813778798079371444657128726682800569776532180612824109913334631839192581349625487673062183544965483228132850436943207126970923355423526465994465750337571167758638756116278056577829448187035519181354004029503105717912616507139413372311463083229828360911089218917221094595785626178002872415727849242497195024148769035194995348886254960996409847431160201662317953601573874226387913777068142258761142909502064756871225846795831010799890052624434659811507957551816452503565790329842651827236703561693763532420751624235372222096405438962709134032147481456693559898358895265080292949624685430844979362963445268322586110923694690610648950217293446702722286500000386688853656380616430012433965024308329211817786652599449425575699415755606415419497513769880604193073160141405361270767714531342175761640768653671155947452333239574604811331696042400490169212877949335324007835241073644670388553003092856450637338799553370370315467530504100121314206874636846614808330380104337475415183480827539084569095279579480341652458513366239172582382406376126293587231469556638264081558598499619422209515604344670380807034672275106777495648036064663523390221255769752019594985496196604409398929169144039252895001012655798006670252375927401282893611863377554998675692196687485982444835473639139919089272041527279541558399138188898585221026463087787378995746524124519522080704819422327640065066213687821805806038417548781351820015828326243885391626243366140455551782127346575188851299895935129531365987923960905692574102154150263753097568325955132722711031053500184567394579314132291787843664727696710080711568290953906510262901161910047047402722104327173438420566638591011939644310651956431644666661305108296017727638879676361238242466607584623555574064113810074521276433145104144847908561547008557630225085831181056012573185369186959470297523792942390582164210434831003509274257468505250032794931470001632191253058564217453204590869283437434043498180505213018699661055510527933469209259790549938494283454060360410221298190108477788892033317769298175216886661536536210167376600830847067340881995352831277328185517733858064685453471821981983563548259587988161268105791894195853904669178897427744047427199288776189926241714399672177740546202447823352313102475948565895039909775654021030718317877363830743006751876262013576898407719341930980698257256459123212577765597613232740679304240145152672239156081357053302082056048532696673165677063819317302225751651056283134947384618218799080958583592914234017702015471519962424290697889479920953846679070137532440731748397774358835955941833412837373657266974136105764695149242646712553115194731408653266223241191654299725787049296185675828303279394396096978719061157572887830707707592653685054560292076733070179488901288308381247487919814456624702125772301765797217718675801447801423478355172406514617234292123633087507205588201453100038882135689759703372774367510153804080962881795688376574746474502178461602646434919522168977128177669412177338270953136861748433786942887054721425633849538681156950917077507382035860727638489062024879339717118854436279324290160525307202522829384110150919661171320874413792732322627818811142241565514091345323441820291571904976089713017337485192971261877011891145490991972704518517618111286978025468505021509404094706529261618347979483042191930853261527280932118081004948596624281613599950381900802673592612002220395963248498491410419922910740933037698539846788346500243965091581260959263191071839028281328452204390599354628015209187738069736833883579460215476706374858923760593230853761423326058345592200624143407136207384327671126930465019669377704085651413509766649360870200357780915652506459197844458121673094416143028589083889997289340092412181886350030039870974402414104447436251126902975206890215311729054312002484701432749842778768865296694763420559924498464034136497018199515153867274239587190398978638041769195684762251244456188258391906862002622545807769685802582511867795965467847669482363746959293157458113321996035307385675573812270328419280150703962492323756974374585777133856753683671211185143883027296011988673509411475392088310901129473300500926529625935036059126652391745057026694967290471621959129916952579123523700474636044386368551539790485060170088219677292961579608741501774396493243617563355219877511066762560148437630603744968959517169471100061678097905679326640708911321128436495368662900074439682781879987204752739249864722435166091167141851978789579164480775572338870363471792115169177085040464726106985517775376876912939083233411361011800310777444886760563810792563531173413871333000973552418249226514960281024980764288173216968770539111864682469510339908767470576876568907509031572810940264092356293038822670977513653625384972216531678533019349652353645254703145175081834181768410387464150160994869889450365473568144541537780416621508728704937735190783896675033855766767349654151892481260059657221925326587291713605897816893840610336407838329514669802136277123915917981323356829800879892237541992241670093411203775854296094909062189259318587823395409066801352478144550270912012197915918154916998586772127120309891894825952259253341663550692711712610672729342214106471212022583699331574081341497690310703334040294214864095972853939652777432994577289224762627034113939434517315607322652444529270308445774721791886158435302207389127231739969265255490712556411570833941891626584266121212880169099434718382046075582680656332941398936325466761729491269325919307432925450323104956677988661763695403433031392505162000691170025213865200862790139185023314447605271500266197581281563105706226056154425045124485789477759919069640597433706144164214240169511684013937146859993289481662110335844962791164335499974599405572676980851314199582606759916989017962295816127753531008760735286671641239037648296723932913302770224205159912950693521043350682803508279561484777571069789745020328223640706219964271333871028345577664838408690002608356452936265181359465784449420723923790973326214655639030909342178616728879069547873370827880639065317971109707352008758590208031853810380612161585033724730525306415694670491278129313725504852123431413222248152914623804469549894994810321784289480408481675810109444946238609973296069199664265257726965618054472640934094709761038875543571626593684784938465582683868620510492577001527960834199742656185901414271117621179246441747372770177458732217924542580570494530839528247539386076576942423586438772455674696885068021351715840732209993499925114882785627302320783012763654174314392772598131500496577024884744433701004724205581242895843402356284871128449281758493229958718903705378265673348272834719080458646429505020467002970979812165103780227546448803584670980021301676526509572911875661943198977650583007769812230812280377331182083729870838473362189951738576107349164538184492385107646514036952559667299285671221118340918151326132815944817815488739317947079255387137974320497279173587394304024769975705424954758636789656068707963365681679340108198114529907441189109344214039951968801946236532239942932975192573286932574837794257720065088950843014663116378746049352409973767664727739749161131015932007277692635937558792441037048913851931192764972062726750255645838047724744769871264260416288856347263586701681304535517214885056960651098295207991274888173091189916011274831792881531274436122384194830093906063701303442088579496091523688299447774581142679341436818094502804878668323185411354394066832432676455812042248910020707720161996873940084220407375318645639088720303833415450465668093895016361553886375833316741256492549993942784303917087364026189910498739529789552360413929910771534440333397546549878366566734269816303857477356276483096472705317252816863569891055452208433070994264507620864146174423404232568296709714707871306493490234290312499415167778828604503209875364379465345448825344106721561860943491029183315490959310850415348763310297457247218633622574322318819416516800334191108177518055371800709706608400971153213561780843743546929683124865826901792273647806225740464647112432002029240527792754817986788094953282314255550106177127626989128896464259883849808054755170096754416290248764912744227118103191400402303220502531374498911882089208830414042707308023812301343269519338940662487620995589165921136494950043115800677442547502829417024278983676892715716507732772579632315364774135926152478240911954093151470662847290552342994718034159293740069967795886162497493884960979957474307323084709461614031286851464451898050366625324831083774251933485244934677340313687756661515905934517276741289021255000701850548748909664967330552700348409508028371907737871849376461339610523930610426687922876374354177858637872864350416689861718130854258715669728154167058739453761320366464158043052445999235278383276944649349677998125216444424790689598138542236902488593781875414175097686201224800155071355132165028783194251610953963860819098767813458349170429050915386331750448182010283668617007157604089338998902781297481200942333303402937821134932969497790377484852358992896910770233341291322513562529525327767375977675773572918063892397376882900154831651870271675840173561921717581543722072436347299361600934027964881555126775658269608382388970741379957393116454796080421135888018781616296658672821655429237795084997803910332855970738752693457607352274564643122456594573241308795750624982927263533517510187253694236413382567941332734617066701992340938659830878867449053752608463100009363950437032093064987887378152014487567621257375986602662191684406191178800047251906258733173794516340750930376606001892203554638809270585902822225568766329276122554923780536202525659258871845526588023989001838209293993537509967184665192427068882454264555792365034340983883438468190267845891093783634590588043912233121742292095341246638869790967476091799817015326416242946876350789907065161167309242777750565004061811823496246524357031455248525823496762679451151633050024908635084867111788667587134061428703582187667936650898720195232146288726815851606433670572003846086382896029880858918937757705091697935593427581682082785642272525548696983149553147074418251494309283658437240543498404763073935898703790409511481478856046282665329454029057817698637694091404143677693767057705472215601278958910613417587682746552998609284919170798367874530714159328758540995396607338669911657718868278728679443534523757933072257190865669841642513956894748223814510440585994248262367352714664922274615156342318398330896985973891866865990254056301147216074857068314795964580821923440733926856381805407405369182792874478223041859185174922714084668880262839246315536365019137460101860553943591223144217013624450740100503606279335780297260434487475901036824180854595199247730244995448325960114582214159909168713860083330461838248766074946030390895645041687263275801325887586555637870611416926736384121754361954368614802452436458353389852126557826606836896692386769603698065118696420397313125654252585434534303393172043895139291319063209675819855254045575452250155785657931561565214689629460289125768787501471446115160160947987012050598405832896766019656053067581818630606770002973874280516750131813245185044905368553313770770785938885922558824151415623987396710337212975441438994800389431121722151196274059132373722852063138465821327965588186330979657163575293919901482053252741892645892802218935415301894814771093025571117890397347376582652893617551344178284598809256349536666542677255074970270756488448611905553123514210845517603087509895982929212751297878577794126622868014846866394489862977818592249693018502432181139455720318849903098693296678371217214285085021009908441153147668514783592434326905767451465804376460885406269875879754753390547520078070938567126035234463131976724467280474364601835993424307968004995629267024333409882457579719939671560280599295670999639793487652795824380916846076059498104407377108046034315823269753950133600272512211160827145416327233838532597066849776198124431990729658061904292906652938756291397921014257856214272996376910267782081386920793566868352863484221564535516056115792651198365961200636616735296414576110492299434706382299750231797638677083647848360310850192757000909453288369688878061147709911737813367230656672068708289247508980648622225702328780566399926880862571160633230044057365731279762451736272572696117608312671359839636539983687195429731103036514414079522093605349096391950502195299504757243096891328043822716054967457133778930307830853667178898810856779161670803365627143068554721928141005610043210294198656865225661419334863339056550274823307757807976576580401500170431433499391877979535667642771329077778033041528529448261946653755204061326502454990468419904375730100966616213328133162552755048772805365161655440481988202484409802264564039068033794105565201513690320511879803354235878911577651320671436195758836246962592750931823274033355662614434650788385377408469109201274198156603186209771130775957144332013884239293008902623720356708623560151851177043022134362974221497063922645720681949834113162825823977318225594798765926111317337736326441464669036854535007329304487685300264165421899937397650120729205193504739689774353109997604513085163607934618001496062913809126497277526008841034361103483059752314860403782688735045386514966613987484109444270384208800425225447317261996805670807231346101925327145167789946142361173795959488190066729610036188303810937804158916204700805643963047106317517649675149465313041957479591254246914012336449627498061012116885122408686867261308449159774429791244511058621249423950554617783595436263910550753790718309397870286941406313276427970385045753039212276710017197585487709444696319494744942379894279932244066748222765321295375729627784397354594521312261932633049884690870490278547258068932918494588300811863704913775030910227906444671676403586252846832165959549382416546886353159370859326626992265134453126624447361532742137688568309751689027616025333787895840634730140917559064051203952958853512142888800263130905515646586235807311456229962051269303573538152636319091678435863616574249750239198515857470589020396284726376336072677530482514325709804224424887502889561299946056540749232385708975701108154008861609394386286125944657899244547647754525635188549905938168108142372208259501166859195386828524965993264619806796035333899244533146794956974727164511638580281204404219409514332688117014934268781709077575167043803652949143721694270207375181615267430508875107440532553015446485220235859369758740044267491791883766649805411568068807349477259212476857215575453301377675887252645821879653056955441532300500827570553748810945285633758443484555503057132720424907326963876153099795628150785925981835877882149287017389708712784334479894783068267142090427814099674897752599085339982650093749696629208076999509903914756927308735992226871333819994282551663004848926189213725105762033012940644590671784447107074359359134766735563977626492436462037077933026982476900210742618816154702382233442271754301786313343758249350904012397025189642850375430005799208760063443120132018688109582536296832993687250212577066918257919856833939009853335053348221411274467081974307869545092601598537312431124774207636627437201740125380891188661959693466763591467563554619798953203729280917072678483404176728599984871046523254961643894803522716173465996527165835456533556126266466470898657617972559578635113020566301558567773859147373553479324201805333403859214314672309868344007255241242830620423650704746712965184879460099081658452964386599294920194451213978392131843897348699980746048685897596966792532661130305778575254152994694392586560262007288435041626662982564353395639427132301481462506325743529460861837939665581889311853683593178352503737655148163525218342168215152928853659030593906256595644831650885703201103345884145909506621238771589239913763378093039074572226239005729936715003497746859786734268091218313764844202427123308660216912251502553979811907810173632339819460504654495108479173232125221161103475762474668073339670818279779971903383969003215589887698406363721363992529844094381015347027116982837470856624895521711815744309424703675415221395483619971403419342819314789322987856799811154836315283070996611879925647681564534607737758861781334250533620256555034562952526701325532988484700578455181971611027912417255391545584459978343912599682777762490630779920052842698896634494489020230351565030752125758753568908719510998227026415175757459639213018304113846670471100300033134840501230828958364738257603503783739758131147461901359053104769801628488056970315254804126186563752786183321189834158224094654453563737590265120353246538742263605142289088086497480988271688947204012387975020100030662384890996998271257208845548799069558105741804442523119561700589173252317368921527096125413013234994254032667319161054144679301348866068282124306767686756937448931791635234164297097824207943988649004383295530830487150229471739310135540816705275587606734753030960477195981060565384611791278492104761176188844048112115894662724698012219108816884086853697039020328773013443837781057389889647016676366038163687330222098603378804657765343594153006539900777910646397519016429916184888641870775557196705416196633638970028634155175669559770696684227948013844866443149561727826002228227688508695681706775199786406461762995376591107198633763183142488097986736660274391224123344535346059319930549344151845896894490602532377403481796360433370115158716219435798759789692170140192141504725960560155038412393696862853500214987355575012491318027078748780614196288277802019475525350972883195438746189888789571207097442792375669484779711693799210896042360371268262610650227319355865225885509690801149247548942447304926305022180373982199922930768096856831569019753032892671869838918994020690521382337159607452640433908971359190264343644840403948725032112997765173974043525494714652008665490443494082201645385690716660946033769438199906352495938367696350856607329162301838765442598214128391321456473178405836805923555433724642711039535714035252927627368456871643120016937144566076982080618127612766719335472714832640806840332593329135454712711872327351819791483128670738941789333946699392028059138608360113647126512629230071994195095318528355750408663878773699843226466306369154300257526636931091733592836600573127722273138405009498314466021237501936115834316630281959065229969757827487056155721889803395824700960364355760339949185175619378267141812385192781991558350587868738026770197587431108468407386397707380139688359276549411221153040868840014855904299550260790852202342833822505728592466823346691030256482076969590278622533822245644281380678442453774993456275407419655411037422086779571739531263037385658171900968810756616995295214131288265444995573902806373605376189973508135199139682113614796035339856069816265544444543802508910131234647069940795022810118202126641275086117219016616117670825492674467129772339995537629845058577176194004600697500891615661387064058073582711731486291960482032754832459958194199080068257969131933738276088879456551041552317163366891497395306387402544780764637608243975546404871647816475766371424568648820448802236822193608034350159447393991422566735495374234532852214450743905690383335670660114039362057018671617926122981039117263539332313864136256523323136954085918132147081423043186951632746993556036642078583794333466105688809854243107341261858897901102597020436732615320674939318903634529064749865146068729592057325167808973200210676946781634787861443520117514749965179549164906450350878905630616173433913814159006702527464798927348280114195922356709867545495368482141631242068427534306729974159247119664340519872220176735211239030889210011856077385539181886431340084412207053971357692858396868875503368980025814267996215759843448936751599181758117473861443716268748531962185348278554864343141265631793288615420052997587054233524775354433351231984316614332530222205896178424853953130965186511405542009414767081253447519502823373409741477316685190390661684986179896199413035256986115699191071067016680937811723066355530285352375118320910258335471656441806412471985015184266137717123009629633764526176471316955218028542782444001727348151852993102573769470229104994167207859730593749131187284523401566546228094313679118765057843978288131612402978153098891289139311745633920120543571406742090709922798845071637995951439100384985139630194815618545763372917361953167112795211116386991679534871250702220645802683656648867392769742418396879908504209157783833149169984432013887655633784109340028129469980641675663156008578896512910463306951334146158709752597256398505553813764739589442331653735639120798351047961907623455752350545164726933336159563802265919583881498253033643046200378124803121664841007940445398127851652231242329561206345154936249399696676591258024606637365978354333548401057835736276650860458070963661960997611203925084150016968914176741565420193489113325834594969447521473789778900444747303713891457369457606587240284187625189351161751567638433911108826711379567015233630597217713765940554529878978615128547793261136240195146947718938225303362260240637337458551928549157399756161585336178022227524642898053680896877270705651272325361090009289895630431710637702609462495253420873188581315607149905660540564227014289631732052423305034081324047792046509540766329573995527513393463511843394187027071573755152210490064099334144819781053292074964084878596850949163718653984867676323254956667177999389119785293401509043319231116297080420445739213695642349416177956972610200384680683952171631361384376988100127898910006642891597080920281667574318614484464464713594344781148210439388471729419922256711818257312396736962661063206208031703655587719253332955774777977334164937249767062100266851851868279013712639717198698198934683285200258695213092154465333597964674566913766215595945261151808738785717955235223163084594081309591250850436692976293341158850625648329475769321818820798920187705971070746859628217358120832502990052374178127343477957380315280162953996865808371027954878870636638155281347891596286515239725629015458752709229303526415139988718385270545545494030220064737881894408429268815203315231941182177342475793349477673420198463525759087770125644814105402963465852186858788417255119943729505522144965991797882683859202969419180041898595860144950626878709385611593693545636583888710393327472050781193618989827441561964661954292678469505770144757827392923740251864908431801946797719300959875799863532175150965530068918021632047000726481764618939024377354577985428844095882376794892935541699830793504584033467615084175456121284934813048386174256815575833741497416794492394355832574207395410659633844234529656480789108052538081430125572618900477762872552974169245245745260210267774395122940488217535186296470508566778611764144823062720497341877394350600438391688143072597107557024447636201898285008689044301616122454635520237141010287092456069469245209219891132706961587252169340556918074014887916038273268156022825241308417850451799807418261469591867615307389191239208099995344892669006459749682716095937250927525861467881048303433119837206374655887276497197962118783850324127672985441307736953485114107567123979765083528412922762079076662357915728887821548236793760472408580835831430994247783373374124683569260359983933971855445006248113087452927419606837858027263403126387657196734517395418171308938802251957158380092134961844175103411810578754378293927535000150646360305537084825559700133658143215608803067412285897844047523955378091709365844511350767961751560515252329766323969901905727663830793613064045803808164500323348140151871743634458000515942655040647438479293454562574125067178325032560380393516565417260698988157628971353976144702140532185955237348195610964091403736018365782638770884696715102076854128249250500588508608832346053792293292829703751203818424967799221650417720083229492631325281782487637684785234697834724556967705401253204999211837928790536985100612806043265725472276203561469930152386005931834845018567294719648489093721799655897167843645675163657698392988519355914928317402530202228817141786344925871929228787582918217115817686505595408884458743410178593819894515339474056825291256954858242596924223890383867116837887766704850391431774832106902840206466168228697560105563600698754697513142394682798668330565461635913980043500604552814360887386858646863451695883274747545197944750168936981434992479291050520789746530563819771284659976225293319340258014056183516260746736234659990406457625330224051278386587411398592130963409358796790188299121144668278886010703849303529488456038630510358497516019556094542280973327001154980956834909745067961525144827231421014873231601684858941262883020007135556918522451191256636303882807289430712323404001117866640432831781539679702220719411187122973836494155078796401773619659501096556859488390517912345282876169946408752257130008558938006377775986883461136427448995707235351764502820112922175749466116299831511690615549684807293604716902910536455140487685632076427775825475356779075875962654718716752644225769747283018320944102309366771742619130572074066877696768219934225778338917797016875053986683534247782520198132505311240303768775301687414723057864038708055559770729357121154300206540389703594480033773710883822029864993983699959101991389763263455977088223422662955529219971578319216252626145505103980854294941896501399456440811485287381642305162382074532795593575254514868020858357103669288113098843062493166850520828166348715178771740457259489755054151631556316297180431750841311782569000645438612145078006897929823022985883628942512369508220026271006225481036289859720696634187814544933590352254063769029652033312330048374356225025606412855168958792280306736397592558984258679936588731302575297042718449450971295805592534244635159444115425341426681271134578896090213233526503185413407916000074599229710363152554961908362993962996176704077643667996929340653587551546161030441998281149615219194395929262999500667896039714366852540813806409599271774672014862314784039111559848631284993348318124818808810365620241349588622864298505015817094057293652785402198116722496681320902429257811717291749801653280090993029255182371553720266972891288137973541824818917148299776443119365219055013818663819273741750060674797995300159295494972183848687719060457523778250726128958914635955857294020305369053341272346244869823906089433321792525275492484135933612822083627917787272061706053205417953009765494883101630340668157293280866938536077486838207853166015295433240138940072010248287102385325441805054123332968315995927179564096215044575243228247597545425267095666693000571682789707852531044477481196433900383227911070183179402879529978238586689784082158448093269157684748809447155851502641925404349154188883778894009161419875982282680550646858455900794219000824456621900361724341447877282798947416504313014928541344844796413434322620581329724746739152883387137417248950470261889346197121067805326687793214814156388972982084180432716079792727338057367645258857983930126062082670342785393438329471924377984493266004152828739368759212655382409058357261310621111042864519103242046051783139458181842055549311298883271302680482756438673357388975056130338626735818241485902064523817464866610179225503763344541966999805157013732468844886263324085640095119446727109870882224191846763665558043687565175870387106804949855342542359507814030531303152363715412290221172181504522881650993799033433728607307192059688073197425685796113211161196253121810192078040170402415081669421249544643001700633258855911592714086824396410628206810152057401224594288878337844771948941820164692282385583133973067556021399830829842334881380194592872586249666441670831077870666663669613183938141785344950084153125038115206026272743506330954006496350822121306728232334077507592339739546938714313923271346099536295618578862961806093249253548014132878877271091761191702370869711314411900476306105708453393296028453934391013372535346198562162770318336317019818950203308193124671793365417231444838080056030925672924225739698946639686126731230074831471883726833550461378348850416563894414927627990093543983240249545226093562665069393305685294501116924241975003817496438644107019322216678896769196004029041043364893631853555121495475297479068263341933400318536118708636334557643202598076074089275626810495064302802223962544506348134163519261558655508819640691469988194540330699240967458288812596640541601195933511871198302351358942993187113617140190105338846102205003998498324553342091510138124960665132580883516626969129259761907911943568049934647427010839781415642958880335592300264806510873420120218411643812305485922931948236566274119436019834265750274314757863774061316106603185633180069632574188498722986279558957448166343370390680498822074831742507978644483412052605474469130809592669683397150633895365606810955242624556393644271876729424745263081416762889934875193977800020900398916200382511585652120131663315406874785147800091309433318017458824987775892094676642496351172029823077513645520280211997520798550060807933611167979457636167934125654425728406747005319293024339717311934771493698481854681813337010939096182176290800686798863974555155260375918553394150895729657849121780618017603610242541339530604063195330529434088749498944167002526429102809261389580345676784433975707980139002416268030249042446595427468596895647250372411183276921224836858934257858837104963076138857347068150070283572512144164002985926551426284288785497475002495984875014970862829762620130376676194906667645688031118255755853281018729622128191181980661599214301561649434812637397334700031727373168476486814934833103923285573945717151097151977899172811751074570199643678708424957548465381045164913833106002326881806044033438708442311298482906132191713409589654297302894685905814972059853823012829990476370463179606302799206668285019352204963732977704129488112462905836911907801715695626494922495642505980934245837563576710686090976986364695973960711457612538027774842151738307400315989438711866991916733834626747383558526322886602331497215141935150618343842055781478480833805991663522788126674296740997257927718358568449380304507856882614661611553036476808607976466480475335176812998814480482448336854944748955707552710347039250598251707518236841897425044951508221215576747178024368140776966404261109282889156086229458253209211396165645685336261750914991615404868623522284988044881003544751846370814485714091780816864793004476411890929719776218784641530312264075972017917725911867255869393358674118334330035987595756609130376396812115643375495624231199943382581667469827598965129829199570716909855732113387019027558008893514516900177238954491893423185420653780764615108498516308366228210062204024146040592914981890958256808398919943739242375201360681190754432177356688751849951891725936432607955783830259752225453827681303113696929701537696059398218031385576499729619261751269470165089493502427335339788591174661387301910855172564857217584458424413631146559293086382743500682237465922820365301031812167405217471738462634397145027887412228023430951025819251304976549971344647723937784447981430513081089142843537366236802689320689503599869234099127743351647309798280306733218594446783020505395276285782015648943982429148893605117700041609760622965594471461830410600981754220251859531426408032864368466769106875639428895753875952813077432444655065114855981230581862866933134589541211829297422595897021248984285628541776581641644128228830026880166324247346169091945942655837945191019215302658375179047738969237218574095451259234825451864392371681286256448227131383977313302874283660490932705673696310063736855563774935614932624000889642383789528712829320648104910813195788881784714530981113406154874769795513287344881521063117938368004035608172013031788678564324666349900126491915296404588346553722645423509449708727687445414258849957351898737099937268058089958730954772019454374186567800104681748195950259565904419096077390788719752130656410467050805791143132069590953748982259179027758741229254409044519110231783309412228586416602306801077947011624299958943592810114876568126729957382295389794212035009978325187316164181829533257747307876866551090523595796979398403552520370001253955376502315058412974208782277138995053228629617877701800276144588229096070059581073193315098387099651268842799651021100110437940775414917760512985179548925220468751923534329733414184813359490929922973813048643551015326241949335322308031718850840771009148492820740224642146008195634802086696366624326151542951243498716655849067107890942265770552754491242875099884416224652028615448454744403416895125478606252731418866579289408082012832693527843904653261206853167750208267741998051313509409342761710309731153876985255539002156898139562380785176948840287548686176600898362750117232730827721842093749332081650264117435465043626886984573518732341255325126369596771516176345892349543369606545862237650027790906973769390119061077394591733739236478728705532276635534955616539837519652519374402286053805299782757627193479266275431316770542191154785056748148430431063723063519278733452733829972010042857881728710310533538855613872949107418558973765432121081477197192786332775950789933288222849871284343438779204339379949060253592657949424028746228845884740759519619471698642364820860627271124672885745779034855713592892684113183531481712685417380263848989073672489494244459808246047381461972808622544648552271113435099565981824017322787482317116661786165976328554338669745613318599636594881526849280212788425388630092476789158110823894933486235259044699197883310660289282351732003007233224136993283538421754667993110759763293719315567064412517739005066163467477980730030926755087825583003808686448654345042978905550887181783688402725614028843504960339572317829280433052447483347404420791309882835415061443642430022151602393735702662464869805201400781727933423805101736359058386875720733578374159245921983362446732103800868720244058575960763609885523978560514550237224287433674003781398480112223012476180200078344145370495909615643629986486954539424106195524506310171897763169181408191794261346178620795877852419581684301577488514511049123553627863260403195194365587521125621519405703800501744513429207980551031735889884654520814993052530846006516852045043958003231813409286943862943247647527238072497228148948802803899817014294354736994496016735110488828622819702694802015098124774906930365714263362178334754402079896254085258939728812604294303855598841959954021770042434543869142856215601652248756980062973752709175473138897166246813229347256495117489463242350393509431188711545488311653147711923882579376465649711444435219627867684482617582494859086891927059911554440899456822379619330157603117548102341115800027703152917206642573181401178594196764157843645691992563151763337855105438340264761322986289229281152753439114373930344585987270276554655992666380088017362288950618299348556197001050539489036797714996299438542540639072020513050009868879516792206363493842640822849690184985985774229743160273945351945415288390260115040389663602784362078999178637596494760223523316791457233263014973998592611197456921938852300690317596811995961567281103090337263150745107906261509851815667476505861820226315144102981000548417813848115724680819937959694907723112784818361799636447536596405523517195605168936687044277312170421539376301335983030552443907204380044182549149121475356017240574120881213113841828875215129136868767913887033109113134221679069705577759868601844923832747847240705826818809436581240271757741918449594310649828936530441749567786946077017561449970153508161920659077709703025783187247380042364722806125539744128253332692614752266741118179131087400330868464565753180509094460425718017173385784898636653606394056176235164296734927067809001032558818778604740422930439175682960849201836386207905072019170972655288617544091749992307416810806442008900593606566833350262552903413501188188021029614649679022884189112903322842907465544461880629775069707020732245893138486786389585400532081060767685787497397806231147223360699421758534051465121197799800857620120061195749398567468332216655188088086056056196655576162715215112557568213908444332917634674688741431243514227058641409859294982940934149334263701833348692577370402482908609547653404353278342451014791678558668790262054675354104730297011815188577154689424774581452827384337185494414252627207425405368631500911417871940291972066488407980172388533644769521533594406433607252229754081700969458997981177002067146663870655660330706337720798851826620529119906233309007254944558509491752337714027859732735705718465619727692844925239257310217013321933022169520302948631865675952277656819064599167077571314472553845348032885715820953547015393408596367810643066755356273654067415364945887858778293227437440690604623807072246192780831774944091100082471047092519108923755521991932027673969322752539395859793922268780556486119227585916167542077164188870852955900392582696524547802036914694386029158477123280635353612026040814412977799394606336287454502180821381149172001678882119837160715491231669371007761694248450918904016664074821428151864292872235873158584777645237134286130155997896233108447305449125739741486492913634275677492477208569081830342187230232457833218596688837198289625460773455770979666536671336761669558599936489908925841749914738411810311594708463176208850619768181731695069888344670359913558829019852841649723912802007116242894831919722781584386767726203847761771496430384052076015577909898982493801548557867841241919682448613558775131859356368769870431301754842112836799035108526332960974675771008940714440467213040097313223272333985445113032621752980373987803117043890412248629739624400156194188820215699535874174540367912172213454426606628268836132801222413050298182950989761566782409251242669081250714625015457305688559915165573022505711648201746295066542629176125621603377465418487236214427753418666863124183018085294723645430619768170010310084743610347570399198216510924642017988895904618872874607604271019114619638109205835118093889934558136123073953295112890320428409419635161126461382198945109654590129784107362220253238873535644427404015501856533455857663452208701173016246529054888407493918726949574153836811302023364841807378551167163281399170243073164243273466084464054569420108705398918040645636615067243201032165770577842999644089906462118331107918809472914556408489125368354354111137923324129994133946805946476204415449959950927605200726225773906765478400541181392560510131664781289915811461620182398995801372840996912827493430992279785301096024830124704591901975428889979773564390880233794654663263522038148834930089986975578730189325247501155316058135110470655729956497391377339566436681787385220972298699310835284079376488108039062624309039580179928654085294559878822202353796413029228972053050398104566347734382523703237839042455294567343018448204608807774646831430874402751409453316248443053654597092959791885171377619113533929970716201853813256702625142551630266561660440188789621000305174479018185261142712962708919392369853522655301800179593624119219932122350553533954104957752678892244308691123638392020351301847665027409257264672496874674476165803193657025882353653409562859064020935374427914119266398780732870237598611326728097852894760155160002406109519814063976467215344303626557611481775856070661199379183317472872698295549096437667379879100525593714092154358147473293074244634467918539641150317873026992035087242485308323468529251594396507872306951926692137567382677179351172934691834190422575770496911793968460819895318420099410677745127087542530230868702379691790413091413967760443221622217465272960462130592727330998029172491927865979342876958833296545768548805844610793493859373612024555473165754037055225164891884227209218730437776142315835801996303895776702532843440751517161468556820567174988391641902487916166992591111961630152274269194165802490986670528081264445784140797829930272759112314990881212961829522278199395723656782454064271206886847743270106259719959426024062001885052937090489416007808623669395357411107797853129631945982846816385416253952990393870654999810571596763530814191486948134424981879188788439632512793709442253619183865275314700689075747035926450547735180629483469085817431894634328217468870359475955547400589220375859959511160302147845622378152767305518466514587212502211020990496353210242569879333381561139750827870177632190531080169194166711513534227296933556278837070752578604144113931000427354626823370990041857339812314611745574596159439659168792508473399638120665226405520393296151220481163124542426709050608169694362027397189482426336081246434277882546678441265782362534399944888772118808159324863450693685573486337648879962065461280026329919514855828792754160463548247291494304699172433664540208980457875847652026603850183686322590165638752141704589927946387789783428263001348831541098141741566451374125871660029999519718911966518824370522646788861406725298266444725793465309937143450468219677523149155329450329012440508151657190708484850900517981353852829503288563482625194148783055025807809223796466582679621606780183107244727434401378247969728967944453157703787690642884020200597272873922006101588553869318905473892547262259178395215971522065581075895218668676508587418911170267157486422282081975104504721988738624658530216270540060020591143547142324786427756315733144986232030333334449520713898597806579011332947808191811587797107951562832817953703833027547881475169456275100029566362133368199498429648035412423634484522750902688164144925098873630991323447683435167746856602009540258215250410708445074939689740311846442797556594215510242718379581731964917037026718311005974178563864014980534012698559056087346046096286886077219130102667934253263459545524639359734606607104493688849557065330168074673963405488237606346544521259719166875900943093300498517020622875247667159719040097638191933089848632887250789413925543623463752085878921661731562918365602731680232032221948320945356898049364573896361622367171626172357194665007160515084552928379936512247461354703995835400652559389831053489494702883861724102082334723368547959346926677189974597495459666167577443184615785218416950995526965932806306714012925570510205982483188600616341551319758738627761703158878342818658365508519996591351196253204548238022175958682713840856112293259557461933515409023870910661004327348579302778486681168298769669511528224346194726980967402696596516041852944925300452127195931127501793291204881865952622624383954649103958759199046277489630138023346700924132201308444199298583598071725848555949802940446303519881431393478065492797184016049760838923253064579971678433826983226548538906667744698922471550603699966143967131941661066415093930006381061769405424185107601522617304929848630647914042711052496241769152554967739334180509249437463383818958673283836814625371609666319725981388043407568304499840307613796951926330311252485054716519513250673727891820905161782532707366886052777250320570079202797832637519412727631665666595790182938115123333866781911903026719700398746179104768915672776205484211449245287009799659626008463837279761379806304730759913218797062263746582087058439272690654068942138950438174750703834966373594974574209051430605506223290847358518867365435300793663686756706150084339874937013547631206947493295114149488295263226871009977225120843254453914476798027525435823031455205836559673138382413964468128669311395973904036411619088145461703969030827964365530935326390227529476728878746587712700619911160278700443219181326802624935153989029924458569204279457548376511707645912345085561609017450656342933653325256658766852961962501544116548948303666823501574943280816358619790598132270363572150359679518572458560970742015929778032000346160911050940337481164489185727962146805754486140947937725970459553952274349465399257212557893115868408136697204937157935962259008035419486789266931483428370650814495526964032024699497727977936215487508246463660283932310774889511869761883217663626517480260272989882235491486117606198785978137403225029465098569222446164784479057813737258485379349450421681911927023372362857260276079295283272337839762208871059396124765122047480505385741333384637358644464884877354921281067339520690141788878394430371298199338479748101275578940441822431601036876287399247863110646803708595240925148114524405318992988551278294306223276553096601595958204908370034270431645907627276362687127160116033060611335476246884110211602731822473741745452719054714628377386950509493969604337594937500227650209903954417133826274702877947788341895099791606445521830435639966759889672806542349753233810725076878386337311503177066292275546819618908979497789718136629922421774712228355593525637867889805762050404244040443441963973623424259331581913554668986079593247291801029989394231500762301950733283759482406024620947856026822474404287404732420239570923367190683025627185793706411021255932028784024261609660654288617041199043028828081861652878773884979521647363091631690144697957420945494138735782316380517849789781386954828042433570742866006146220628990500810434109928395290486974902485468526271025628134355793825922044885447396517679525570592428513972765753901030740225845143552390671764427151244473157808012006503167645833348541914280865240014521010882613065692127737224274007101207615674364002559537034418514951618573055906101155639620360574446796243153545039233838728532125555204370007534331690011023432580122721030736094462625167034097295435031361953033856373758930347181153212361484464830524294772734885887277764560248298166469864651958308186231311110837051968012813865733664035784342322732456164882689019133565517734251636942254500439895539062721924677013338347955448607042324696227602536813443641998420321032052690442590221598243956284795378564939745138710185490306884222001472067883796503414561059135752058170201269164457685528127880636201426247304128964226344474494442198578424215712314311922372161088213196569300334049716677478361822127406181304809348497205526474725469199653337359319420763018496090714817371416561292735081434024836255154642463304781880106239980209635069303904884583362702818456935290845052409348998969077045862323004919224611389242884946326623401075915579598618788260280931414369017553357164089725343571568958256276257098791022045659926176809686597976143909654081183129068642454536425503538615799335120491261396084167592609221973929241466808305340522207513733477093127467968140343936592211176024955095286168421111219364614585241604885752600114520902561630205527479768575570245020712522838593831755691316363519558649751605816659876622990297723639892807337671582368768102866437455333340407860867719878602171915620321367609521918210006419600555072039031642832884096715835929573255630609353580599261883101103975956242857285976783376964796170052373370129942331266724935471282668230192648718830648040985422466487222954504580625667839105052832419257139982914126123858423693712253147559213538635080860325296728467981106504124858317831540575888471493104080219079537623401076392310064932243330043027159498854882271378917563620328790117441098163343883045047203943221874371523084370911008596573200719927542634105931208532626087003667686798018447029288905180340839357170370142674376638355006365381576745563311387887585404917587081222244255026219162012273389608800857902815100322525909193390673350450103261359194129541122918241921038162978140148583387472215008503252932621758601644410807855143612335181472712802615271025949071323562754389427778812094674599211492065248162601347869644759068605480987106761620528950900338802442322612920624735528287679773225929877649128917987882697284613074743222005147362048518154061999020581953235050401178691732135676701947157211263826072480972217010757238939352504328474874204403510558499292996334193920385712246459591935123904182881782463031002504476589678443318330500305818542734497040697170667780116938572805820858203919324987647506210136760468807858804765080998964856125492671573048950900162484763755408390414666977157365158653302567096439555860007654494354919148103996082652099892098059144056038967760347546065178655214019486048821355623803768293261588075613012071234742456644172039877256980728536666026486204010457587183146271907779091380412035681362235511255523100524008801577095185036817611967011425257120819579685982374462216905585645106363671978063085936457639185868132189500553499450648297978207015986700208601999315463044719307832200885561933578010368593559773468379137575424082119321275574383913599044822860049754248942480321911647256290772213524640215702627713219012386007315519987496793433484497406774750854706280040417739295408678078409292489665806731590429673334113465334421513093961582443788554790700567330861691021400463191359636482320189105113111360189684480203318585371723302200605590702833887019291081188268055601454075556439560118855313450579836912885361453569799503689682402265932797137235119750441524716636198899630201053541616808925875487528078027828903547180292176818725589425525342753545152606935225223870291487756127929179006615462896711284625233595823605495865325371439310768982865056746605651589415234791658211630806660971990182733427409392099455616068302068897130697890297686926071805443788419256363119428575453861839691689872648488551135753537443563325035510696645805103276181021573309497560100025498952385574385051675781733791933005200997386583155560001163897628277207322655876315984273958944912914631372097314210035970531748666958263284764702649616895411706430316786482376986995441788995682637615304605480259225094763974734114870604490377021811235048593289320016903397826059986104616064936399645321448636980364031458236609365924658787453091823326386265058456219642741084038776055793189549755596768751740268564392161379410360827326997599164635436913013844378087890958573798301641531935885148859897580526343286590055531559866653647406340015450861827943942175223082555945534193885539614486830102859383316984970638594355198732101673086078447860796520962021056584189954084384323632261700745983298987968520571858560149029083943619844518412252544164445035157947186276137879895127713404352375483213641706079648541863991305003063622185374728837532919489864065893598481819590511725880272308621973545601293132335116572346861700955056177250812435038805001524736903502014586611414406633643777133566129344346095389175335447608732832272453601895370074921889522746180263754382216758214390197128164029508384825199966460858688510041300055850064207979661787509849945740607654989307173915166972534584443649199492439689665584718058067389966854841459094015632595710696295887863108866375178864330769167612957348165615955856084779946711832603552123423649911088725185896423273374038519838420025673132423342489072351104655448697081111631729123589120682555176200608376877300014393088015502837657093652852355831822267209932690142918122976077885566819059383395691458310429079197354977739364675351828366757404659873966342233487352364930318829022033333792966451759716638022455407739214196806388710628002921831310784221553346003648348961594452054175510293778879053838255311484873732814613458555520460372973020141287857023886957595529596167542587047357656448634690889282265374717065326699036383548897090882618549620594550651710262295004171178307101490095582850994082737907676718259848265662464561221236239048380772573572947713168347163281284475002110954106827780158975443271438871409359172798334616744236561266945184307123700173665313896662599552405097258411297508412345630243573585556653005390911928684423755566066750876000295083410244603843039551289828508237369220451141316753549355073386995995887373176631747780699005697867349100339344770301401272685990494533618500684588711897553430585402742164210363334876559722218696336604750620563038562181970693920345396051805361535177919268736566245258230550337757794561037521370441645553949867477191201486712997678062802935028454894231867547831910605963602556473437819654733958919117045166787526885248175939822493764384801971244908979634596356390146614758172808312572293825933469717758938916159620758288602253528078527980745118820446734307291260517535915123639371027599760568092869949815466355979947705234065777548813627535667082941654094473181992226601750984468006103492604940228945630211202765629343192835336639450737676281592433522228237546643417975338394996318590228004073300730855003298790994173429748662193095816800163790718917317848275604323804797534566304994883651149722122401242745334420252732050900293073442582201342315033394704538827818606705005387533663922006929677786263725320919235971404952737262174998926827600236956498606092047049537502697718913911587650055543437333540065284426739736802138053367195753654277211842717924621807091182584680982311755096561020472995326621168493759659940540047153581271911847393132347790932704492944884606677016801077016150049023110871936032548480400848588056945252934454636040959357311435661113727702764811704291086404629991939551903002081540719629382083563454481595462007095102793940066349500821929215170620120931388403482651094939710151899641418935328860993096519079207530576707037077583587136203039332742535756550582697366769909873714800480707703291903810418780816574576550124941021850627873303839055527050091879947853278516886972932748163706618832568283463096352702412550000597494297518888452896684153972989529617629944714009264855837936235562509509668527723579137309198799392965912270700251579047252863464832745366559422458771357276749794590663522856736660701498623828578318130704479630439134018621335417857835482273123600069710849681817486799187592307647468769751966775165326526882155758684611139729878085245887823873680259949198014816386328593726271765726629680228230501442585685050052363746798790763756324082143621040306987771424907939166436149913607238912644617506837232914089021342994007316919286894519829775761406977959394211955788846627543685898042113453442741703828178388335750011484703269109051062920079539614936002010151169490088220038728226633832871064730361134800699969794505016317462250090664251720685423549633723298581756164616330855388041383534654374166723332035664939749446481460847544550785295318213622292363238439857111924246467081932755769181341157696861446520886133089666698202923463845346208413488733753896920779786490471130247733247538483693404073232438323499399561159359801762646247269647504275198818751957531744983123899260626336550190927239773366870680000264108089236544818819315172769813435738315130333145489740596009062249251579297658053091066226655553547900784604287413736692063638537013876617180235534325509323289214799153911139722272752678030744270852008790170658270907174050167935157381080816677046986085326696388451252253653136436929965924397447787460707844359813181579596400026838497629371805279796595564906622690471219465098910167542168520258462978227501147004509151359402410166962395569733216683413335382958265732235620475695692496151002679154897788437256208973340596595999106299813777484434809914475379675199939411735610444821592464027847578438633629974893479852403453597344195620660934290350678124377221986842902431688539123340785426923784521168073770175252314608741905693145952319833902502593461822772297335638984373741762435448746881718025918095223547671119880828550477389549807341461970848425495147640024780145552189656694377141297790175135683536937187848851934834718313256612010839469661166936663480583872679568816417286644397665984375448039757011655116395930865794006203151977197813708212330355022094977578467831915837840297241520182563852120982258158133036479163470769340258282011614429681462417039357390545962477267371201459809027811073968380929270366164881374384085469736803035163051258568260691496105732043740594208914749439467146593340225992705656736671549518520005433967846258347415816615777729957860474323943616953239601793425400545332506872034121968727300700894575522308025589181763981943461181387309411127537359545955210988776591734809565309338292266555985442610219917728409541777042382644274631172322975944812926196451434665424887147067101257626175562154353817531340432774967128859357611494026784792592077130688193601985632944892730125006688336239269180420426496704333544268285484176785734645592863550476923282424136279978539735284302883470429050279066337523745321479593969996312299893906862107017700970207774882646690545883928901492731872577384970929826446804813514560517149616415147178983294093013644671722231975122825397005253941049375782535535407337628473240716553031668469586370749420713154397058687268300267964062090154700119610371754607591175410817567143203446229592376347003003465005457863481616602119855109266032217836491070191796428136209701657158787099120751658636777632454583964637396698642078818739908879531371629337987367266660758680064162955129882654524737014434875758257388390508871743187016843635553092237843075544866872550117407288119576319689917695474726560755345066604501949795644357695279492286864154993490048676717425295477511229929166111792719010427337567000181719316561494343447529792710769780475072009988205287573195133978179796968692699134126522762192362078937539087434662608136345944971003659962088754700975191884957459344391701890899534263264266508379541732660439311950827594071194285755314420882223730443427371692164238798901884517089242138716933530892149069430258686218672894022464594290382289415396391833577343434810870943577173271147515948228753455937038831671156740148904873546819804993317814266330137943680213286243423485205754146775559271498437694258525684102799476732618665067694216875297174074127572257422902597352112817855870243735429043891629747995061110996022095499441047115732937827613428489244214037867459744362094605573586153853826608371747994487046308323131338258203825997731511804131209301321643941096195046766560334178437961341401441919043866032319713454267439545620105747261822920469844513029037358438862783624748157618801756825188258212063279994942168598573864128748299122949135931451143984079867782430906140089645503234839535364919885761336340999793790200503151485313587365290922203354582033191027974589253781092223773899494830539250424851144252319454147457829281825023179258707659182911124721064692184595399862798886861966280879662043827505741900524883123709416638243078216913848879166701210219197096544095672559574095439495140661068776171764293543254734704842340011946666957296116031419482707235030527791694215398458035249223113813875668437590580211006085713456495535571627259647451973554877788664376695385060159631345967601221470725207247622493982087226047685738095628731372357754315048977021840473787901047309028678697263488934488270617975352543668755938412530543732089691288507194203602488148562580184984334950978731486477328583173610211919665707535457376474726157932694594586638050992946790034404613051607693982506863656157883556439698499185814839799503701966111438014929535620704610571984623986663239971366745810272740064060936799966660718782821701775830486803529447332240774553835221188800429628614664949801739471312096958619077346497092023744040149587573676002017419329042584670284448378844596527440507365155305777943343328627726088253555787873600049971224115165358578018801334598861663521789398887680498965342467471914090656422320026533425001914262396787450652943062098292242802960091888235062402004529073129755788467075654764648857043387375668529195228453218926970622399407074529740227123797111493967449266000826487754664682649592518552181000616680104728317020096313121553051940589524356466929930021832815145607441121852993226818748912601224600823990738095165510957227557016974313992710174210135451274220762353743013691291902910386339127174991202119160143333438084866759477105035479195665286233065242723815697785358202341653012388727820396358610290101656850870320000737842568974607184188785181417744921663347652045904415156439724875977768850515055226056036851982590250167522227822033679676752908470340240298304634230193561618493170267217463167803099141540209596795506056888365820396585008833188418026379038304738067326469375915552085248828457603522300208951408583232751116373826269937770520541995243957908245054594776948152335331039041074107688567818183087479114611146576080834472599895272463778237227326995355589193213490869199395013915439374210317337760715516494802004942976121028086548913046349698432645394119734490949936881535275646755565021601146331958583650390883379005394748052524181089375063779964201204442766248751118097504739483173591047970579682616442713905177244938896059839394774892788363340826796777182405607838268858377914115153122492212191587748603060882854124615012360421225627756711467049249876841582507258098794889548484659862041077613862706985638997405298590100313473531542050665513321160175325990321274343823388937209623888787914732982414443568924584044450528360214130498725764026037401803268198014781966224333113994085442422094737201002680482535119206302654854673317740596320626886982852232816476242420580096206520917215656724676746713446319308314254086191960208661611493329065915643317012571355903923325986488028220473708172399649166208198261258668156502044000744821287116149394994692174794886008816894245305787051303032208384181757323997706131524582219753003330762862591275445164034864371117563891665814657951612041486026794069422303437621022580776234557779101874501039341700400025581883164863563870690261334048914653150212689481574780390221407514213606645616661996131317464467058776907786230244346106309033130344798407696298148954989798624538503738989899064841185794365049157696849159465844793494951631819498549508013926801237421615972331762090595764561156005994829451668550469282582453730324088640031582880092073272450302415449894591355544368100548796404197258850960695768164697791988618239093512741336482062441294537650317265100793947667097639040454366791147856696477476243361095862441633284673456033528211042489899196602390395202361775995336422418495889686660412690295706236577691634025598096150606604388859634748676008545590642639243613792550101839092740142122659809478654676130488451256514653750130535548789044085015941985442780254830186015464339330571799928261553416817395105090246369838898841084617173985767054773999535502221325128375520449704848215113487515062679714163630530366929643135741759101771290953237348688267898585620460681580973857564131591316095626337056768007996966298714213410312906786381579601962002270681679660456542519618710112034786506360880765589687600535175480563145468881846288823582317758014578180588049033705091596803625064085477325760126034713273925580951382730435530089431258666124129125996885866990388155866565390896314366710307744298729222615004839362164338913196576250923312968082418553929354420098746425735113730361709005211909385414179652005379795661282313961938374370252251710374132411281877517809373347697119272823191820072735312935358929464651672235984231928550554846685513312700934855264300653631341309627531729230938467741577826752378883126429528489210449124258635764835245639902993016879473361054295487155457638723085074916542131078989160976410902131264481585570307261730964700310642381532020045894224660151898242830007683739092391123481374895824431872299589009103799463146911042943557648179051572118637703200156789356668383987278082132817199478525820135654962440513005312349773580851280867635491389333926468536807202320754381453724074057953656484461174064916900470076028927755811503682227099973249163197573595158060022835523502373864410192920644238518339918411169926411971828560897805002649009422841752613831369111256149989229545531748928370682590002388794613028108458211503426810703074491801002973014785833206195537575104818513911957516363973540505774745523852723798856801138282001528972311708219539241021832322208739920947787111771687270369604008823639800660854941960127311265488953321591204982452646525647890919424903014003812918642587965842796802522108091153385289779708306662780973813040366730684174860269781645871641667333984422931706467466957344686021592232161887004708653275538116059619528110121939756611051161737652488730929978537687142757134884804049839983045474736934866140994565650886694276572794229080019615805640911795243998010048393273586371271344013165561492920559224159803278229139753096133350885927008061040621791144573243210763802010801874352093201531931426259253904429486308414954862518362680362933548920270841151141349556644736181099910863652900782189195650146183868758171323835520369764990735012265461609279965958370317747143519715316521101933052048207952905335614914447023643857382359546253470232357552478220107206280936339776680468816966235971352083892754470252959646742891653195023524742569356989969192761151507483596367975774484338517736282943418376666882123047631644544193540194196122310181180982900140087711554128573004467532398667537264701807644191959733428147079627867217148690593708052375223181700028919889899885430216699234906809038215327276253496231946564260717078936670147126987503553832796411784780017488691478498767405806407946192624512715711157271758979364213993628678056995067814211759918139015747397546984977069343026666538480730694776138091236288207827648156467053821722503401448307316836525516527926078851540547217896237095875022646624739098678262088757552409469967611946142860827981602359480632851700587095410598532829846961484364308133791170739228445308900681274875215819353980249806616314055792307604206459185027667802454218992136966349052514314696596054803667701282702770522162927498107376689173889004877095378431665239660769137987526599604603867204574159590534249906616997555918629682669139939256692159441259754110288525365601948002017277408821213742931979797332993876392405119377520743875009063602704815026390082662259691311774608157822490658141164791788324870264300759461106760813593807468421665137397885774864905278563779238371565026403623708572595302637374616500108344286877029651151137409979817260473946917952241882046462585777488755334638794637920968114823322128087562439709964496896207172776016769945801006455667203105673263085673213390459198404839069351000985412282960912722783039220869668469294364666953871992030823551593932342153479206591348466854488627060392257908346505596737167267842234099413487400456555379009463389135391723701622016959273936077349627072690921498604858555610724020277247157925831516662185287048708768952279484437698728645029756526213938207304026496209224082236372083465477508663108764728252312289093779251997987299699675871152421902648501928933828617760437796745601582944624285562118702388913617018399150364247014382468917126913453571247433473173146388856212777052932800879709288801475440295740443925354841346952290390440241198813120587461919903892277698792774288939267778208483562426260082749954486243500822204529491661775699044959152243426897817074794331807192030472687360099015852721811063741950544208628528763435837968601839963194485884341216381397012369694333125149861251739475124157217091859026379804572554122803139687701341844047065879463965693400093386446250905497908934710008968566011110779466750956442494268576758096417358879133527757631550999804428220365966158139792838632087093435383708985550886988950074547371703218938390864270511843713162124745564300752659691110869138485711472441117200114844873197463069105140081300877021713218472910244247042634797724696019193697473136867993090618959967644069233004654166079647758203864206285012063226582911880381296245881721858587733599209083707786404185236690966022816551967540031313621572759596888132459383018403380592485452978568514708053642523622748306491046170671765418888065003701466094409154179563926205793779426524360900700020185831543303710508974968255805264575667005930285836961986014313146515330519653326107985173944604858447880939659098964298896607666727060692105257657973595209119257834965361921619037706779043674944315364858767554744558120328360610063530332143291821029439415009182960409735950368740061303491091359564444462577699284758031921510352467623867824747357579301595968147359544790989289920825437467496776191742853878531458574057938496441470732562062299262010233835920500672088620506803793045176353687848726364265232127651269449387614721787471351106011606895963580625827731294762178938802090806058123076842700815584125502274812623220356417479520447659791758704324864599648398977773535726712058891460478615653692374295159924465896824552023132728427605771217099696018584786062699902096759943743417305515508642167029945010532182192626295580080023411750680015687305075795430681924930105924040767374786825421091271052153704441604374419037583076803598017723069101147293186385742693443349980450180802176197400383032934655153455850562683971551830088292672344334560986667141631370529667457212765756702691512884619959613619215220221906809783013529569786437305530747709275594769668858401730117902857080443094826596674974927579760401158128844311797684521753216692925973933873985142912347959348764879129672072035247966167588593945595301239121305000797773137094040059630395570271293315940681570769919544226009318547776916396971060474445085646239684574732285381666388508283162343039249614519288779323968932876168366014882585192986569110217506202456542426123178598927361065057234555615115354800044648769669724246239761554761896954887095058526995352229919137660103865447287165246622905631896658586794388980591013743813826277418958464616159183891719238444598889385496555534230808878042363543473327654875448997143631176578967234080006783987709748636100582853207375988964341542857775875555528836203178597309182112757794493556290682288944763688096698351184940329863694345759287719567595994031750673273816351896442850807186095659200644310825256020098818081560137121440122622017322909419129020369162672622514187055224875039638265639085194842540305973022026800296004959605597370176351211916937337953621552728400253014547932487156024710747025001724231303502920185216228534260259578662463746437894790770153597713853314062116470286504402499805484227567454324308837743602807117825288971866347188977952424284066338194810458109701334321741222577581954457849164003702680105042081044603375474723267963776719576745422665432300061828143013378236110419094845071949382639226848226086450989557227038597546837750580304525325797112073439537484477544102729392036111392464841115705239335144575425562796448390820358347432118279536688149378254465855780378042714194988332234805545410018772405892962243627148339518406540093603914436683493172865605982090101479714488544189642353833095481658906981478482712474082073987282902093328289519875703051516971030595649215692943324925936182559382708598050070132483905627667250725445935368965400121756475335882393335528712327441377259677078769440733851388768721907466746343042248658171729699820207874283137528433193452357846513740230581731248278909192558887022131406809694025222180377783230624483259387374550848186152655092819416448491407495801596593974481617416353361563830450409969693867913961310802865760242600503032378233176620369553840319674691796251628980935783557410043634007224824215160547704399374191404875962064734894400301846022027401874810052078759291307802190838465031721516368519935494091618021087162214392181213051685431536743840278227867287111343896511314768208256306054592438537972963037690224176343840263222536226969366831044338481398109611332664012950528085252402144183074163429237005351958295716637738679048501832530083499121413038904245352274893710003896877065957955024323659791415112050771184733463572994971207601164565590445064251793821651723815296361239114740403399480652477467007958169127951791888649319371373720358216072762595370328009223007805286516523827910182989903700592676789662035212383176691534871121428469901159847835977350319407624326090489265261319610714814831770502734247205298913062501918788682530667822321549393001955209668962248020088341601193344474404624759798605668123940392974143434705217883166929479554711072194822870182096178954383103156082706759147795816412522417039201206114334445092670431656716113996307491366649605146601935474558814633598268252846976537386054427505119645999277569534680809591492357154231769298129183117849765671593901067859780257659634690954670981758877279624081699614930306655332158451037852309788720940428517688446523693209384308634462778402812740355537670826276222506851176990016983882908114754770133794526139169976123574335070535110754371708803094415502388493924745741993348415588387586529382706744877315067554087310413565892661913018716862038667071999901203602920226213704664654326039081168723708434519232854218918364464994976628024392361877367227334688825049516460330037211846147303474680383567200158893398872356705234967202411658512079627802617815902488859946048754985399552328099305996958693315900873851921278137204756281082288241373267354076605656967760641671217152570464061337733755945520740636848822473623433813010566638343807028443217636902334749786044470202597177818950849279627293117340471294325547128644165857433284142930469269870310910927199229180638838081317248028589574643301327258817841058279283889624583808746435628753376919934839820042112525748797071921885076862602335278730756874938467356454406130010746091544489553867753460562867700199540604862624303554202303078865064237504506910261704593380478072368783347362272608170386753217830222201970367912330992259196037325624404632727017786334501039054071545771346716640437413221601775319314794620037037598712093618946494047912118828821325016260345443454639198767694454058014870115007817020590166129274017151279209081045727560812816299435894324520336094658024024393674319834109084768809747734705174782340412958684456111030813078655647336406363492950369191460580030279119862543700084589475429901535477079976940970292759111607474435442852860687242496840823173938785194922026969586890293326594677619357183006196441737798506368387798366746093554595274101613245208576083035981329398753525962528167016629692962526971295586409010081549807297466210987341813111795089456971247583164409644734220664295448611835302280089965188960567021660727928778789696476785970075367271029202613498150781964472265912952500657059596986384022604836761309327276275999840570295834364177549282411097579271665252882045002262579643460224691803175184357960498848286161745801632111072873054558864153621952738994910365770473603183726880792573246876338683314162096628341579359992011370200333760820917259834072059432581044892952478140533854483121135235418381636724474297562122938271432598634848551898529868301153438461157464701723140975670804122019416867777753639447942775968780973704550692172324206338443398135452416373888504484124674696967106769585349583395321967683535370644323650755686159320926805086052134926091638229113487478208133380194442779288343600267163905801160127340622610186265617685499371220071169214923505366317114101725142503748321162776143958774894153566007333583072552227206007537024047943052302760103447688133064221143291843120883792012706693364561623450211820352127447370726441714694368655678165944442075652598743240740549923187160266261729531908373716600554794086451866744984241055589851309762692872617023213099212461366778151186333982985399974540225625221138664948722778517253049974416104860890241828458374449249333537325154625657521817701957233059022514428026352135431668178599020753317783916349698293197086060966719108561352364808739637300383993050013112960632555901292569107483398751437846765712499159447354905956857923808694329325303325355467327604738215763456795309596397680853142183087218854976277955965845901206509362245916323805157885630388437517166167939976657280199512296578739561922143305786116088374433315312041911226111896280377204483990010022092830376530782110885086146487736909538825316313168768174299244094382247630697911600543609456146780413713122613889394903900909586193047875507385038927331120792034964235871291547706760922851546977187452547772571878157775651755004350905453095405744934822711340847335831212440512052987216297155489375481423531268331611615831522475641086388176482883717501872668006783106344730179288773916725848789464760253493911699700151597857346040940822781654899786126369767800323862588070547212717520850474065560547403975147180813574856039121984714210443888389580107212848081114929698206515629390248185683810900125759871101399292012336194262982675533031136942921966522459059765433638241114689261482170421631674180855556118913307859513741047256073591878389512891366807964352064132717294133404399282398219038864891877798799331565994975640682720066259956448147603542976153293272940263109325597889560215780810812628797011181282353351533973364101013346682549589518542994971036870756349376257510870417435931117216590827678142893564724801715933980889071118013089635020301763071434566648202803505221801865766897458878984966112352116340434188651993220905229093414225311786574688270730325250730599610817206516815511430075116163628459746361959008260894048511965552416860422559805655269183988905746310900455661590504285374825670761771132538961453650051503966125466831710027446940003453741550755585088156381284795728628696137635394433753378491924696497950906141558063276118234866190386442232488858832342094064951249480301335449652185874760995110675481931840960532677950053847414065775688139438274239487732757089199717715165001658245512867962456482691747663217113678900922775479773297944639178832125049236706586936309386453030918546691378976506050716948090823001805630268675159958157546456871649659210327768572856079409458085510638188916080719070069663528274031328973509256226954277538242831501551202334004263059896241225597444138230951322875391100086940472134863804790762587009708568990499540686613753769567385760885822076543732655283752474329425185441166780831841295386471730307188750516784665903807115040428360093088423846948415759551431217917782751915430203152501723722530972961735186818965513264919225570733709316292634756693191369246259153320094014332991177902132197405846341739625517859291568026561841853705404309230247804067466207458304721361253968121375143813968556534251752784262021653701793495211022984383815669058878724785751313460369339007295184752577598734269700821261024568100827248697290102769859653060569971560759203267381801579487028253228761899242630521530132253031694941559406239498324186369737015120457133170474529251072555459116412319107235052068467452946988424918687495681830990446675531928679580022689333488063371036788041486286772822561112489370613710045716737343625642907132311518604948833361023235862628602273740242745164244789717185255931875029372686837259290962561616601498032213371537369200443675791444089458050684108593709573687501431180327467161929525169346449537153569337313549432929974012309667303543043815568136193835287627029290782132818281478857688083499459827110527765632753922313480901177274257481639632586759009669730662503976539007998284453961420787445371146322400113353525773872764914631482476671735343041725542919800480513548245333416633119374379017818716569605721160585530715008000488042738321122297795478240489491943852453011959449477295881169563088811267400246156475342550981776905095765262657445976335475901159781305075558934129891945453097193579195125602434576381359066328924735558863840692925745497007085038065719018532179564384586109436830460434991920027894283737292810252557350256310012231842835079835684457279792463450742053657604821097046708409277225772246928738831042359747982577005040746495879895328458650650695350176227387436838013758950869921844494274134145027548563869196864598208591253082647132821612313269211328808457580984621815578154617102438987081564694615927832802013246087580026556235337775304212409074259074341858099444827111915884256460272583472154718991662970640331732286260085325813785986361410847871711368585050270454043951596521378006546600881376960237839192434943304946289983194523150142582586978788487530879101200550917928302632507470225345287609919391948712829375445693808532429852228347289394633981031323746288025326034376082929916286025808380326747606467540005333877754077853270145550014074160885908012715352769139107304662991836895521973664966564230115055681305093912035205148388049392881475256141999999840925359279842552996348409749438209358837059664864247396945800094182238162983923943128740423932427905612624243456488217582546683388342757814850966107596742359005831268832440497265727965739363037707189717257376790880982426788032648647379303844402062039595444133511483591880983171333511207665303678857130293320303540902133068047385416499441468953513046603268273352913699370936640725520737197966365772081464280014720856802290991117792016430828518875761561378595168438107683736596410060294930508579465120302677014173898898929348865136338481315203007286680340648738975668206000910622670887936739577886993331560819852259432984598663202071354873257711118783408761346293809096995330883674181526813937124844290023051137888080634354674396081285939485992033847317551588367641575376541220035340272492096648696954129845808792482758329535842874917687273117456184496650419202106950461377050229734441071338709746090168635847098106836251089312582195658591643506518069483547252935040417636090523157610627238181715061771622846781483657773561577110199065228321859219795169315045864709367444062879507132393494283194995029224774032523231794593344112081318974128173955064212338571501735819573050997170089938511965945524725975360133850090893275682079670302315110260637452035629342676028116917786537880687613166144334393276413899779608410460692457580840599121423122763714925074171569498011819484369919606158687327417039434657710733992303978041722653669555434823991633953497443960620452059746882303981632959649084844993295221985857220677288535404213438185710346437678614948103691017251857054913456033411872410597477123516591640656976608931341709306952028593129285733937904284868306473858545800327340884454422450759946732023622358306277417017264744129027990554492141091498642898132096786402893821105690097185679602415659744873217285925183870312907336253950403562388298933118184489296001948024634632753287866106011577037309669725003346748107651907495515440677405965171707811043107469379037556829082968179987970967478374182178866558245064467015857228024624317315148059378942348861829494978961270911515729146723750438557384849091064410520128736202782908956935890431975507075983131007727230435707864442487762175609929451487317090537274507460202246772625817796876314829369641302357722532030647385613167741018355591545092402089361969408612274407985932423461126641393693660534258537654013257840604815260210262098662145922063016590459866814799374822310096173657327817735992454648070308013723868577853789279867499778935556065217801117538244392384962582089119960559123381636993763653527382135324207183084563276628035627693133376802342509293657556286714101633155394652530897544876520333959445480214593957552343753801346374739525530388723666471197938831589291866694574173073849340877801982591682934959688310869543928868276350403177053011563806141519731528201312078652844134660376594441446145087692558420259021484813481127663656917998130207194518292239318645247714198767784036797920305912891257197287306323223415047694727225822342370461588752840066284620309339264423922885914575437295052053455973752208575736058936677204237869175938761431485711452720364071758768301389452143777752259432049979430356121137196365384934693614109447567879183849208244853974672886344383305450893979716613623571637411083374305564636666891967429509183725451815494350382237545451876649782405182866876086537526811051563246559291618172189090111521978959485565927341358158561957730042888669376843699322599234578674062693074200469719138525110570956748856196676166520531757080186842257070622147162740198201740087010392642747272924810283535823898089563614961883017750788339149203672344069175298705116490196297859360725525701695811093625803469912202930061785628223701153140394506389041288465717948766007981059370410067858905448472578131889998796339038023656513130288794532581900582716312426545869357758627103693981965797989357512259456399837728520754455163702026768321367838492151752439509648489147372174769594549127312462932385089900520492217270400634217151388669754624469310238787476026297088350742644357424252434478052768985499497357736453671892219654935132328220507892344137445929951814906638561920155781435541511355607507030435810056248958431193187355952268071952515282460789871492398590158129835535667982387092487711208279949670278493218981994749273909477556321928365985884858734251736455159228614676062883797599978987868285409879077392980954828840829683017719640071656692699745988469127335653274873643103964324755603397749393449607743741368839822709252296523821159662961845573295728682337335977433690554333581973497060520871957870911373870837087636557716256228706814888155745355384565330764670070555120310749571389073000528561901053588117517559964073593911920207316949200501929446129578612550145965730977138822773795367989075128155336444358706634070236219041251466398924541121226642294151240031246835526008402150158219510746082572808849312184287155116683611083529859482581150180569083019118949825053860952292396589611572982980188410579194111571607351888459657884361068022305745519609382594789844435607714768314277073223071563165006544963065593162537981119614088009236003229732014005620739709958362782324650789862444167619138402000158637275138633257187738530994106099368604149327005832791131295734426232099797926190601578574799269557182193938424630148534413241954410135931777347787353963631912338206446155709316278007866076053499567469647998461361019344247086402592925288801929086120434028301966138909669111352171075435717298172075821499827703066153675881383543359169746985381478747789587704714901204214788703961794096690086198627215373287225655080804044741988535243862578995645054247314473919020516810076140952414151387594876973229161318413116289743812674433376081276268981461166007964225448479655867327542506815866184271932093117830260665808565551470742105543838684748567475405156102986375099614603985888622570495599010567456461389940388748342145094417925662981473697242882977056330944313703756497341482195332899892263661666986419602529694074900583622488158545750581643579216924344769044709051575872915844142393229206343346799081811589231770453531076940043671190226857833782488952220770120640571365871123987219187283278746605993836546716680416206214140646294826495467911051904414890443485425428455765768850547560892921881817454771121712382599380552228136634617239594623787899360541886317590473166806647814327868202424660653085193187721395853236512084865125659069960043315401533707399956323238982178739554591626046458457369906480739138499352166727071463714044529376521234230716463523251888481839072190471032989995864768547777057972528818173969287087723744659834939131040243883480659979334939348646982876612086679106966171889918928861394152720201939489178445362628708035125208599092789230905362167378425572615432145306277049861536291278156465713194776276720177625083531935896217005487721293752328370659863710746373186866667210655842380510029289239574451754034161470400970045450506159582503415593133168679590742118073222772709930542729666091627655291828015300179001441011072589147823189136387914518592741331496934540761143973839219742746682469368804754558129087169966623473549750657493896938667147255012470344251600010486823375253743143451594730303604099065404919713305424409698949577947727889840577510951733624931847157249370263367276593309519772958413649180445928303111650713258523667155163063882164620898652839778127546079182333081253655450578159588803840083592830617819436286653127791004700921179300929887727808057657340609777734037556700963391351625494472360261082409571804937026962087422373559675566096982198222475429409645877399280062976876933269741026200065419676674912151234097954284237287738876924057939261756371005679560951339615703281713067544140308637451857041713141154682494620844367790124253293356978195542221063194063853462292195262685034457801573020561537361469982608977632203984466365425750216774223784483786477067033754485703254627682952702804597230999623852263053925906829466053862923515634387418380403677150964046303372234397655323396113345723397519336500309900403236432480340047646942774548386110091632750438992179153914808485255405339516344235298661840244442276159572100343829187885629257942849421065695579581234841201206116759032079985509337072737782348441292747958396522697290950545510621034320106655255887295048330939955485276583609165042451305324431292800492800369092480378183978166175676776851867554288483533144235857928480394048263707133595562149646384853590868882746152107350517300420001050304852757726958436158276882022551597836851307647800399690099021578662769976652426667240796388889064493946019987330143373513959551087749634674145391916649024983245694252628355955312087963476740338010510860317968222979745715819672050720941252285638099178174405422488705958603898211605906960596016666927038199978311163878229064649155982657557385841366959540841107297408965362105020363576533094898497542507974917240567304473792933938636584811891064566379051102316022408646912901025532705423531262752776195941631786658118463683856924433378499744419484596039547527576373162636597774348678180848350501086348255441547995295419311435471454509605181509519997877938864568851384664092558638065980194885865734549126711653807591609137965679358917984242262533904541793946130606846673015271606412388512260064518459360363268236516533898967940858910557673542882409309763047849108138486053001396540720612346800172065375150639088463434413705201238535427039511023756942757325637848943083908426747570170817120950217622820939010697677591876493954841194020893580742062000595080713024888756799538138893405429763909903310988486191658514242618359058886894927441999794132361884883132682234926220954452301026567963179928582671522241112173857610100179900550800685024789684545674025288165839239700840974807166820445679699211575838735146129172574633515222804085681490278363729924558757994565951929576214642244505292887726844766289897024515040185624094376067602640107109217029438156227898746419942010154028901629544872356708863671930124793152707041893663333570261171103600614621977484140495181198116167986965075875369758499711664195292105544851741320935813374779242083402267180420002694707807890361040967139234998279752572601638206802942990140008826221581505491306941589905978284380456227220293454407808687840282266469137835063379900022294868556237832747830232122061896271140390390743215440839075740941662967752675212017724395069734617840742531832003790548938896035601782667277857088997248584140508655334839966772880201951885634683354722108653756404540379256373305242783932309384953043669277100721881655394161877560461782861789488349670518178269413235153834101142174081309313882712123853065845130984300889769221971571961217695734789371383096071966754160726524163481706669695868204688113770032577898575620386113751713916660982366316613259905612402308729277924037263100213307055865020952750816455894884185649162735839511351244230715277039232383152376986971553963003191568470660597437209929365522383365219812548863177569707225415795066739849311004740376123838336583011561095744023668417033654976833200924442945034330058495967222233631868988728931479369650995665515191918533261343743990807078497783399003983971583145059990560649553067590469489775535171190692887711710742426982378505983969407875851433174366800156867297096426185121355721744980296811368427181046757923249970744939612591187987341843005383872849377621428968891100515088723969955806835546939802097773822979713281188538010471740383316990818559822366571126627732963332545737164985606689445106875207861508362834974255236848628054001249452493631268212988719483950514695195833958360850687595744395740996122690217755520507261665574947045260986368634219061260750644582445528742098186494300337935124242097990106753873338256095922184605724503988661810964836244685903185859208434930041094994752633385689744954098625544129873881327583367354668406633096229952458583063952810640285690989208688464390224586729750800336229209554333494251518899475780149139523838891030853604654008586677334712858581598952908425342495502156322866556695593208158221813637640703468085389716705831528969759455796274053563471322710084386479211356734910216875908766267384865910849730458706084803445625525353482410854780190250001846328108740713908311820107188336493666082501317026015113673566796720135947336498617145833230747880703581994988298577081187533291936369478015296361619543366574221607915433893854231778857544047802819349377447850154244117588997997328876436877389726549492673243352706053177180855554296494416017730580075176170158827640678757335200867265645435285830676899638450791166059839229509366435053842592306415065779402710169061719856062981286280953149810110971423225055302678319951530880576981881775165436474055670429921867135446221668330714814609871087189749338274330901478652946447005016137317036555268463560414076329251215229335073339395842179447553430161827842664100592890041658953176384814351941045241787496437047598825540198707891860437923404485321697677569089119049005010117400457751054206060034954849265880520442942883856999987161258655263328493044144963707637923001869216444259076859073625866853062361953777179624321912339948321686959760523760830070551213325599429831051417127406885179447076006269617377203553901709168660422615828327136854575620407656984497069427496154857293184336443185225308029426057254310539900667543294692236599997899924103476495068251622634968979215430807540235117341582790244276777652628335405568757790503129590788354415862639392706838420991085096865566756183487472863718794588992683071172920965715788118675435579787338509976116119140307517533175670365948146294336966674484351481353548542704169035217020786439930210981500934962221438434034090995784709370659487667849030840765856078189760114596533268727418609885398039788061702699806881413756217195484718942127180062543648083927784961891884693101944865753666663229614679055497246997950555434641277161335724700088109962293506520504287149024664588723295722588720956657689732586750452126115453485034614391300340557981443913414400880080343876218764509086231124768185261636313405353637876745260040271960311324214282114896623992633152453686549097118755827612876310328163010024882256650068682523800313018789085063953528737073766581491464526657956688643049074578128979621578905775874017709367314774671814290772840300258012588126908764050317636355424657455434083785968889319492188020713978040976977875463658021690496609428994869446865543179217895896741779891975423339164704774700066656862890904193638609352970463764063415367051558138622885635197123591137147970302615475769882184749714635890661063457178221387571757935775339870983119978447437570848836106578309055628772740990165428908221384504985042451452478527834004783203176641670081809287810579335029833907145510202473703796790620954520817724083704600079320076879853128810518031640448840018715236043751297045643736810707297085968969569185084111824719200010946222814848348396137204188596276991604290736998169894683860230073727359537206351092176209156873649271812412713696809453393813999316292232904191383448692778807846146914264241918267309559840214805811730209262656098606756783885186851088803576893751607559786076257519566828530379480692893474625334170168430288990025029626401364202065902455526869031501938647307898586079208677574170265324080875306500569117529398926481924916497019249450864401207425000071916909289542186574737524198390587416827319694242485578066047245462742526009640234292137976986028326410073287814553955765352611360961510771544698946209369304798058043610101826875466989309355212881079048873006020432069567268211925741850821076185312521436349736523200473690477220032201460751304681188727037011430621449709240847890764004425378270087124582129789811121127527493436276149600133540825602909445175064445185176882054120505305564945295296311136730420891186154859660850492770993920565535591586820712987023948784092967017446255177162228877377899243479761885445609679461439812405829128963417348541974093602923522585550634473065604383437606899820463063589680502753316124561236116082580069514857039841196345040273914929648939628116968838339204386911078487862512277409360548858087126430744914563222197587753959881954906723930908048784712775890095873978520300840598117487666498558019457668682977914311202554060166473240753209932620385295298923205715077682515708014689070912527655853987425677508609418173344564560562535557060116259496181329022457206529309085126275507946132061337977423802251755481955062920577947736272643242996946437454033485869612353583937798594886601716961533773975803195498380121418533377383267309885744037174971737905929744938000682853681224419314624458301405405120144048598659665226473663315987536620153025351723266670835018137042324597326101478420201892206717389334963631417935869489473356784797490841597593037772734290360497261292441784858977735057105942552619688347082060444897229567653361862630431816156166528805016803548936866769757904593442708776368394502620348766954822844240836144384791199002196092203843941227244685566042259374202300084587026785714631021249615747231519328392999760880107795162323516787376478284409305069011843153597074674051328192638329186017932077674045043806697747332968152671274524256839614915395195037854012406216931490031475332756044608119225979728827689075441434020083904487572211055881610255477373860797360935182122206198710366336919879697498303277704908848856463826336722942834526382086410737732390011938547471626451700639354099359667784566781854425972366225982871928846183933266294809421475320064844666815150840899308352429176294691761711129915042198889204356377956895942658555858503823199318709549315583259665083121615919794061310637407780071721035711450582721217385525136491859506904927560030620257570325356082513064744235302396087619230441931507146132595060563751618364972384326005455247989205054470895222554099812767906883478542976660431959953342006867155167841163765499486904078697756642938936871027940774275507336289583540413855293524561026564885270414749570184650884297024431396887459435190101921820957171082260703371845887047674170653548612485546062472281661850908509203710905492554664109438910374302143133921836960702388975688940222806254672587718357291328641262590397388874769103605391177457762835704694902866658599180006161325930020404674683149115196458451320396161513367177241437293773973689646066951321844828368399717748291833068233651698261499232204480940726192485542057829893218759028987989887557713583762901554412370438708018705170147382221568113650072985753690457829392597537145114203271902281656252839880509688861617500063251231476852926129018168615259998325657215036376333822241099574267508250597462648864826956966921487608073488245698690694772410353115082794432411226534156619628119236159447830832882318505504832130867716626010043873114662857624954965728679636479125570254522154733493685027462110897518856975381006430745031503712286436241049455689762848685755234160473657003675204399100904204745067541492379224399192102286476014353216075387031735084077317220673943767401928538957087291856766232354909537337964660184239148051327413770705657601925429460323850905164839237814609477553943615628703402066080922344583531328988697719500665111413662573629446147177304593166519843235933912005567734750278215599777955511242889591517859361831888504812241307246566906532767078374523911032679354397047694993713923150977712672559790656372008604242641330523720336086184377520412875528057673354169251351790899558580091483067531754229013489152610553604426392588693532740034929754826759682943972211814456532811323674754743293268816477103770892322499747449014507691166500765446414277395571239440319401749130880189227757481267770847480170326458414867433059167407239754155679029712357341426381686496463211414799136522136593169538679642135296562221155986693105179952037669373094206394261144325940545244922543492245033511735063374675800504544880899902889503074350450182149863912694511685974686577867037741791168296962900031229433333009956687893248759339210836815795884904072559567479293944364678590789691495806696735716663591553696628027734846193352676538502553111324474932959650195277567405606927969980530518076308391022387400243824686748917273525192392243302897646020658948740797576475125944752195879548454754223590303709063127677893034673497670545419132889368117865633192296443429559791037812348386732886676765239667445450336710282370798812846975760261214994905678696882514015746805910315613035285815021572221431303598120619061706359981755705710823127999925838719184485432626007272534518630279214708034782649569964771442350752860265863693571943096807988270847067010524112835961467008764102818617119628534515541711497281759008920690549907550432130589353859514073272480630092291818312806563716909794573262974554432634300054502494183713855916005615458337473771635349516679445418617652656706112359560498961333688628959658600318862841352117004567489503179174366514120702084363211741287880122190782109210692427298159304796082362405452377833606215898708596499147673059231476345340886085750375501989247346195166785410680295456862774734272150206194245578433437991071091292076065271236376536158749101960567478328583398751004332096325706153362183898706907869469673153763534767047377238138596654231620384845029560010251735178120898969858995734864209945709464646396690641060555578609732626089405131111332866417215293571878320609551678714371702902903486090667358527155791327460623108995701253411469833555266146831330210803454729126333794789001750253944600975888565841125962807857241012807832184760582824157819770445541792806013736839045330433683671183303131629502324249361725779406120571565575884309182353401164272171799100145376431637129402100685002972315033924031243840437491566372086318361720406566105208684840873195930006331459507820608796015575737670556416627167282509894196263637053861811481335104398675156804229937648613342229892117516876755227899847639631217187442273744076685715618238509415338671274799264263695159654476577669226466835099600973627127827221226110551507534633209776295955426856192133333486786830363995708859299472920723966192624121089963532780051315657452926564135432426982716303320839845519539018560771121500331714923642727232371213489824408572206762928048170254095715689104361164070436198980411352269346825208022415615698077036599212305958777566468467999705288918105373866187371392666361839443869819251411688995753499639403037103388072218048487388707543555731601227318914727564657988295391349769383667185658391639441225954304428864965285630523425234310676469597866715344097098871298577240363526290901623235138838423180414321810922568824774624941361656070240690396073875690377441098374479592235041947342406616201647772679717981776540125199313978994289197247436188874801423891261696554610207624006592621646729170869584665589964091365678353184077181108642724898444819615379019642321196752283505622765110082594720718221442577233847229295324389822310271829196267071813360845524643252109459905057047010675828044095629583704504600605706384988291300750046204622073018693700518294244207934009757103909683642247150803455766896933616643880463104479118233883479177932574583621141057386971887041625546246214307986823458104766502021220631705865798083879207635898526789256844316692581321813941935590158091949714195539807501043343436199534834929680374238788955086076314869970344792221029534996732509695328453927220730123932912437867879880232625043039892283594919000251648041193284195488053416205157833999021492823714581854070500923332049319066448085053126994263178823187286868399457253542331957663580166386137005303696496620258659725983907476485657075189650643025739057229568648330445509713020002185111121017741201821081019587731081794850186584522993338966568228358695731744445400041600940843860137607927829445517034898137470259688368027645253941071939298294729415514251160638356088572970342504331669755444931774366710042271751830998342706774150645109612640640432264760911588652061575586065542443902797145494693547241544298781622498784265506544701376200949647295697473243385004392956774950470684316730203698552534233411078890754616711396712270202756789366242272675436846390930563585166177706415549371534773977680449217730906551781870597418081499855935966278431841256393312638399997015870108288221247780693460030200730176210515986644503447698577201156553789836324089314690612592555609754142470484254245121046571066327239800894705150952546076019375436125542372987935488064304386281572660542250756219476243179989046191719961389488181634453486751104173483002623136824197026187662926288577606035322775722243825864313083008509930278025327654900917299325251082830803138727916075592037828830705830070869398867759701458934116309476016001776919220807484859203585698651713040101121262308779698512564301919138204573314834265183789298023050465033990180356967059789464126615751099020548838642819393422089969055982762392730780818964307617977326630194911775013257030958016836805807319441446487902980536749670990436357742807095931332540922514315625610216051693389370657518688382718435732330419282784292193042586928451141527976344075492934452865219395695887625222534511767791630164424685043171411984820110987290458616204690903470504192787210285014628739095468676067587007329281544845638983753264971429291973496985695532442664248880658591129978287981223780545425915331483826196973319586051468846144917274615323768992621678241194147378441534315973643530633591386563857192534230191195871423343202876082953051977546866858801522512679858797759410443044345983619235263147132611899436106396469640109843520856719897503113125582201822866680695244494158456210911996435183696894653016183027514358898283412279768849930929813240126322021796142756285203567932955866614047278513515107925137146266654180890101188489679480721443651266904105616677721713241433829651194558868390967584828056099258804385227108323892287631963439319314225833291631569342985833936995775303104082933710520710796534081468208104747857880668193683606866022370344414402579917715338208484516319210185484506568583486864586088236333082539154108334657341847384409612481564449140302736441934243866259445293711128812635821990940113475478021507710789278976922669361993347203819917105623589138929597623917770323143671184404058222727410887401709333108066692137664813024167897863486220921239177049950498961458903069364673190877947520020433870401097695766352490533152516242501393671373951075803759860468349354811968403212428540234875247555586275691310352025049575322042388222177556971245493062635240550255512515196350779594590477826586763814094166104120740549789625976059445683529075408201706786653874913657587052521010070426170715774999508993537353905147870193510597639746002974676816798988123664696422178759097906736195207534864425560122004309492119963527164454939801816957051121650679386085171920151291601893484394118369806028904946412826573132504801304106229359109927315494887484211561406820366827684095414985714208863352254275330898802304364870516503861061435232877784439066257736049486722543556821751266066269522046742465291346969808184008723655486902629731576755283929482957086754861347969880543660142931925639779738179159082931049970774722606494029189510711777759889805556540092054616563189346721944043163690935090400772142880366473347055338793694118434272787653271926883706999075131444399917744619954053634334318382135446128468921401360451296343197193188013782619429436845955911994325306643010711891071114396813779004789253184579365920154782962853530543752032370023615913045944904379585818416754412769115834695492730117987821284459728440117051117184234604048732578009635686618471315191835385018673851520810146330259549200183202265595953507754758771881172352203606835699848101292362037551559299259116266759735563895045171508538588630136466470285863451724153970138302878219521116475548684986688775308276237557025379747981696869415002089139885377629751391138687872095080051205557516577605401603854187159357159320855397157482640790994602882493080972762073863811655567948029636966144719554530831930270266522424280084639672388311596826980320941507578185270626234670610108295603417382037715960004721484089405384601142479991203815008355213011053414688510603216990561877070369054735341794571006191207939978966741396873452673220768443462505008352755170492705789527954513452787706099126509936643704310110810605105050135648311318068013041297986495797167342963903105346527968219019339298173185141477684380760716907972708678810591415207295171164361495849213445656180620790958428521139938514656814344040659705205425251115209227277542988629978886978704195098382141293076925987979341469433954040893774876696836314173866830446818996322135712294460374069751667450342660964720833088258293184951650003662771692648864682505328974183009691654504450615920602818928054785408842399901520585835252257900306405935427654907623009517536244325132564248221330408625858102244069560645900251699268078247762891921953023636570546637143120691907003181662092846971385033308651679015502837794920070410597514340954902854113163206233022608590533233590413990257618297876191332283594403155869316042748343372186364331902203641303278200718639141273416365846361220379339926249382223668233561008565108610827418108439245197646945359693909420536866671963890476640544957397592725305267743079256995805603731364798022137901001128019553253599712844955677524224559551566435679324270716620556910877026371403762942509270809501776943889159987443481510608762415618189423719772696990561118229518190148199814023870655064383970582613185350451477675920868338827549802634505397485566160797587984910930194836692244286418399667800254977060901911604590349084097913307257397340942316531119263814067448972716680338584605188037964092315056067522838455496104999093438400945586760753072590790328551108697379119190009192427623622675497674730893698857017449388642586384499563673284094559253708161984339699720854670449381459492990560792011359138928435225894761550934042813238802538175181659194944690336312082457394662019285549452043848940727661139776973916841794979435876993415742722126968542455445750938113346166833542832316028689301612031923912592193342456638264915869246990679487886213093605624648006016294283952299298980504050870227971298280081702120428632166279799099758732875776632900839235592720532847870775870529771724069576032452252673325040399981371022751109936913874893647599896985787607991996629873906399462245538353753758716411736719006049959333820786349857938342654064617130966319304593999557521929310531047566883031949521884880632837733225739219087776442826989083856395644056636684064962853322595254454553485632330880702066046773182653304855675727233551674424822245225996567926787767527858539349373958924859032672230093422387562433035013688049450433491273347339760935121142961267750760087765648893189048053161235441737508332731470324807171839631149518700852344796118374024981873228807522129395650340036894540195289916784824476412965406911504609614328956170773514696325454076158637722157937161171014504599443090925793834732690841373146436631629490753867044367472906047557599973071446717104151089231710595528105420018605077032400839474748741930622215939974468830362458512906707264761192971956408971653031039039161705983239154631692247928852175811115733851655022179673350435499506296700560848733538819954751427425030379051671961640273356905198997763466746426316660741586380367210136486653774339075857437907528956720173024731967769134733648245987961033972263670507721941642200392596724798433519368152942130514603237978417334906155372561295398210510642148554001434449421194595536269813751245821935802529377871802861612035210146681895204618798576046057915853262710727531284769674456711619395561576268006701959860983145129552874334771582300466609008722798148769820680862880328731324875364524530255671726510008233965565254158186974817329488471875731534478846477078569634266967687134928579126955861806805853659952777614611767721507523421506506457762409943757528646476303954740289970846227985814826881988412380072024884048688410106805289497611285520904880721573728180940008663153235098594041320025494335990299910554516942501791312319604300827836049271850468094865652410079169034801729834132837511123309004174616794298608230744538685110159293967355278566328176553439339663444551953084483289109113970886039649497763312662034084520485386320969203620402895508246560839998329628477254450123579373579399221537747033064295727048294007831728872680713810923266085834412661232584754354818970203674211882346740239314536066442438073390965352191332861237436617515030390464229820687339808506919756641540470791082487245523959068605118236326933091817600680463892667765327513841622200315808765088935659522803426408259246071507170875268994535409415323641259642711753818760107964739837677870303248103878292685266107821056723824639656965502846777114480783884296553680669597114368037916513577567625023514064208236494169004092227705588084016691088299233021773680867307862971231430774720217420924783477335813622646629265059933377502933711738496812673500266113569690731545057235643220569180275701011224888691721696747958496199073022193790448071804835909867557291601821476547844480573302086894090693841496054289048203019057525449959218344478540403426157520095204561497745449548685345033622687665163589265429129303980375638529932755881520468655540666520391234443939799817125681505397186085160568891711652456381591434482695812934073540762402962104007370864542400382984790905818978310164772385976050377428914311613248235115579754337225598316826491029320599778028430662523580214061825749122810194078259112388437106683179344035329440052537393227281169762899068274575037131645191017227111410159055210759320544728915827869371823695345852322757891557898198217985492761086520198508034684701099613809850717582376661776766361235194680114507572788193329692955639054959043672169033195699524162523080170625982257115800423353105751493638939814469965249007216903456084229499708281770625202261910492798009134844598558517877031752643206932122963396323401021204038818522947428897600675588516232970322344833522066427109722004306435975839890668703659112955300171038583289533761068132140232873747488065293686194241967078152175454679484782769467078443581869991243587428195015149379531227733091835527832674824828688770933876351575407828776404173805528366106461048618082544828910871091990676033717769683794687100471960339473582187939478146331394913137357964997364772557289143154988464616739870812345809869594733071903076001764566110864833456526841435544334407929299225163077604951237652714754521263338336464005969171688060660510057219991498125466314977186645046846156229547676569723103608026795445943754523433056681871826303100606120742499087215676581468710052326644678043083455960418297142602782999133310633268064250081335124047787057556584549965098802742284376669839261239217954747406608653326255582099509932876970892592394091577992210013521840411950853689777979549294668539924304375720316256684538973728614892008505987784371621203458777427711570024939133652945694822572851906712400217687740218317520268045542678734583507950502802323152926172561402864658360754750568128058029632016097783745529962849085764411502441431028594757509999965128630509380396711340490915697881419317534775763662489183460207843453964562425116408300036180162934135687754774040080827399021507807619807067206378271667844215813375218414946243486215229691470371748855150260883614977029304809800354529538190357784760373325666593027102289787836711042305278842038260068730170438505775985267178603699823630538135564910303505220106085823665332276577963731822179799821922548590222438231275160478966673052835070767736732023167884937941298246181991221265820613049530285448010985992884030702104522512174983534942366997459812308584688977131416343971847122762174485287477521479847461125811868406957139450549509971355498249878250658490504856557962383697875885520520620143160956422713107036433877263346083421259396687027447855367222818466951630580833043065293723104273669045862862261429805730860025093688262722593641296709655744177643386403381530132914523160293796910808345669961188940853492582078506327992332518092419149277514231037454058762274743841810289335518530677243002578250137333792643569804816299577258140411703584666761349485199661865367751551909407357790308450660086213617154833991279027970406147486074435301239383700087734070942019146007590296355817122451321771358519039160522130568372276947907352882294970326267160692807346498103454174633093630896617698975162436027971217870310730467075422715950520191262276732802142904635287048485060440931944077602582821341369311241502223928182561951654662463444569622325574000650945050407148317294949782069601912064440633643881512521852027672787808300364408588536934072625157240952112695524104421224920199237561450494466171770301408127314437423246986286060689193922825361380193062438582188165170586102260355574442878620332720187340534945002037867270940817039626731917234481343078779246487913284325835549068929898271270276163358587113459048749383778863552788091297199037396130749819816393744734386990916267860897992225273591943847947287943871618050507129604114952262726215188504041395221491991087541532466148666402530866557878112551319446067311440315658738605566895718678079125511019975673008777862240393857430923986803645604913798447584708246831901260175130678204607782330778280144241271089554265332959764094316432737801648396927076533580336439632756431949563539747278833393812364605047312460487887653640550315226621950262335986793423780274472161735369535569739857720155940577616291225268974308255134758654942886022167150178893240200828668767738548301037860002655428474284252734301279161804484450720824949372520941410400678218739873052587671680783822962524042949293451143361590683222204129293308431955269637230084597589611369535580279405529683595043111040294725505072483880021419329407830655732959436863771342871899390628252131314527441556245100413095561597287829226408259049232521585237523597858288928879279487418906023907688271000081371063099159810964262917655408799029358355999162019163947674446003714449351711191937822962596614145096721637555062269592415459402677268872443822559589387052081226211899444785008510498165779077164519464200031657249504983682329166850636160791025866697484495855969151005143538849930550396863415217811508678624787616744590496576940456236090469272881978717873814934563251740796741790778774273788532600524347486692803500292073241466847295987033379391429954877887759877935374662817873441333134065823162989915507269608778013504898482950945278978533365222822460624253708187774741122360041802846834261530064498520474545690196090021531748975307109443510278593729899933443165644330427973350991919832343181702703190282976559919674051363823767579011214872356287159257859150729502422212627264446171828886636852068050256048358528189166657617214083559961879321104382790092745001833667712641938842125480875954604200465502762203458013630632051853811840437605193962922678907655285651811171137228050401838652246599994272764895638178698760438349368460784354196431341975866447101719677552996931843357439246259942758404309283531584475426542108692247998496007051735574781116547360030539623931168197256433765645891117033104067264813432577159403115671754857631209193743320938250655286966489716702572681994060228070412177093600628790504115971427628167670968660003754949097487570485271506215575409158943199646334840380602018967753971207359309251158136452820361010872081051298258897140472508596913203453479825037311238716394253071548737764321151834571726946679012144234590004018727264797144318807200760615183671039741853339192411010538849842857384007670295852183158690923440329133367043999550000457685952006908845930985799913628750937487451723280831866153270224591376087927910490221227833215527384488340610556254156530923599663155341733465865448187006593428949355339519507927843950570979147804967667357706563025548195682526590931102239110916766537115303434880996025693632033976194503753983053385596265550115908445441457285954372222385143891475832578999852746515270338268786294505550050212394793592358027954368461511597725266031026870488344222012728559437811740579061104099242847621461754331851904856134940228736497529864045709682113391013440831460408420693513041299834177188444675626762560986814825801447043516109090458036926659996447912095402285530617902957395903132703820264231873185818089224089566601430098884356663270829909085953850022590570260393541100238949284823439804323479641996839999023737019178906122772464505778256349012792068666309075725934067913881412056539995781125992019182251899819501611948863502881321148456765489863296214894987692634466526071689998652770145090581069208395904459144097327062498469845131357147245643263998877731565162759669992068050547604444522207113320669324957873583803288077075906133848565685577021554862859081820193949527305022193957677141425553131552219778246298443037656458311167538483436398917528133397724787010578048980754242098577138855272017435258366956319500027753555208908678072624552246873733124416016180159995458164498499338010736864855418714129732832245816085959379179122406296421169826357658850293306621173813460383573643518614107945372148616978659673308794344676462319367284339627449980168959118297289809181540694008200989018141355629749001791266568534871376489430970199511814394588029618839430047587700717489225766346129711414247258145434042467213206293232791413124877775727420353547925569609283015222611636745305448190570293008373660736747131998113413190759795931742615552109476433692236768120053363095875804876407230194864578599590162731173654664905351348112240587955840924087735665406488679281096134083136181912456227235122571088789289133078021518753830973506328628598953390746383120700281316315662326159572267255915436717567289325656507954580720681887503284456423368401199765711309360802048454565464979450505904909440321116544860202329571022097847338818774856329314930341914668162565187434701872220445651324204504133042074129776614283758692914770497525567356264366820369011239819409663560817873251940332375829311529485391972718953301124540371733849785772369727856958539359359572126361006609855557084339072042643386806895183066121320504738379971573434610761510501582806874066014395544355322987467687158515607675952807943203461669172182104990348173171212464269639921672011121850582385297783421665323184387214597306948154583204436892083010863189376949261011121624929414166696562088199962204572446028244974466644091965405047120995678412698963852116450877146842002143446911903627032549030716703334618268356195561962892914188645004670793850508498782103884776755807601264988932082241377830138140667015916015320155186300157620971938408556230941764815937782543651151930110558850991435347780386052618935393874854546862611553059515958504571708093134210152657063172671397062574237661578938903301430887705633931326115860331964732674163421706529433288892041284668989423028433450867402911512764811697472817717661799056753687217267049214803567672306740756821750866298830023039218400505681724178824501262299846178070737339467971417885730850630325888976750947264630293557809101962275480722560049469162803152490600904189599892683915656756612753136149058164892434000006911208082714199900356719148638973229549003266377457095625223772457865922927166614450739847374573882959673186097627193680139705905331691269972108932803989192658645914709130778189212800623101408010681445624123185506740012224136187341514468283718076323526099041373283879297812757859228841314909293206146332528432675050752541051412232472368416615352190151235877898502107625823936512045402504595571270423316718641879228575486867557389379254618770990070530610524507551953200633782054062723482059979336943957595118889680062809579708718147326891718588622554660191590501560723299580302124854279045865613311769383200972021914411824343649341650545213077493411167905265532178223451056856043489751328960591590862467334453606545973058532245065863690984852960330162301737629462718148391404900847228752672854228096834521449684275957260605912147728851955108212645327162713343059571828057847359774313145797781016278192961264416373355567275256982944525282089679165254008877242474625343916205188781811669829978643184351192123043980671286128899643914708816521313906718531416113727710560387917906296292141909426999087433638807518383153198809818055992346088105873880749268855969711722860166184551951644298178033446519570602132205438616241804384288023465764849833321744142631697911311011672082590051349587396055372415783301332784543550611505587522738618674922059105828876157751088003038259109231157223352680475340269417317018224938038546961845113876209753066301331867248085504844428617369946034632073208467421122569182566533887007761834355880069817009289314771879518375446104577814252480050315002920721555635271771443472395302302274052798272257966340668787788247106114380743196783005505848640613867145815099984065833720408473785285401179229070909928978569648439524828112184745998852506312334110536880875131574854773808456089017872975466198282611769838052312468333264715921264996562440662894137164940557772425103665980863740589824711834437644025063719015174778982824463982094425557648285368116722880939485918566709008113102449733025822204791858353965740852727868138088284077777071394937386469202765716361352440366073708474441174192909136406313979696625623367531827761482490174111557660808107715425176550333857672163199093471619140139082579014510848927315412384937070021442255242615548328950209526070291844993780735830629349374246744976267237692251101639242801758294777772963117659781436534458043626569488149668022230040705452572811409539203228836457005166210948945516695170057717293866404511822043298802086287458213166675484844193351905594284137973962054509007411522888802503627140077647610467042526286330789871133940867180942963590983580876265285023935636444502568355399469007751706060547777033087840991240737667714723583403708970633691433191038089172897837784366862172905041582075856148299514484429139453572224138457669218448046207592826412306659311316147710219297542181482060357349200808394209312523829438533288576911577316763394152427961745179641478809343560522868839419231780399732998221912521686146727404905772487387942163652907528557035927688977092550446666628510150790739485835429116516950698318222259457047779775895538742660427579200977624169579969394318311991822101185801408448242177021105775968025631285516910568308264406076078435074018971455177846489384185767202297388171599811748869830929966547440389274505632824373177227391283050989608542279518098788510074855916936962521623062713486199588019985751177874560845403837527484282652257250466969878756238213502910027857663122393082446329875629908445277719767032593514530464617799855491736625693316414532722296273196366864841443559507261621235446731995686345775595969123038314976567529714778090146567816603596924559895529503023832481527119157368469927917585014893944446595902197597349619322491483007877009648008963657462984027149817796598790914813264069247986013082562295594908892903633626593519057555228815437974076814336608749216646095291677239253635209501025339609193218770054042108297933644154798241646922082908151408029285268004485995048481670888921741113100468487919406658428591570315787713791713200119330072075531587261125759884901899298950356332027602175291615512268508038695584497160432958585742283325164153354004723348854571665409283810057025674185348210726079932325773779211370626426588967082708185306792575085892444010401156494714898832406407010122684445204864247120493319748894930149723906799225412538721002110220668004515828114465982753092433411408400489922022035762871239420505917172359377420962605547314139744116071931057650483614453564356399529447058023653613159453852270682104485630275172451673564995997117572920167541309990500859370762700521953184012366188890122713724210690072067168890051143543432819917093448743731999675064954236794770814357238925100115347629300601534573410245186389990835048240027091694101028693829440323363426773769210925465055071997537753559459849645913203393144825516225233687671917383979669638436282011613930316653869018597480592950269573955860532827779241787253574337765033818673985693408776740117765325484977639511958844573965201045584400063351410333381926063910176288192380974545615632337328469245020197799931942331428060674498513387261311323985109828149693398737902772391060284319668787629480829372361347058437626552186800743127813891237791515826439261691288405819979818110077667050031974335877721629674940672313888263086032249086904886519740336044651561768476895190414078288314643327081419979771877405713737403409740852376929168887207728375358262605474642947585023681727426195450464547907454974887279080113170547500546165621850036445587329483689133084652709138216515193253392817739422469460714754900426526477627638954467034776137094155766839241060072114909445894372593068664742798367182068081611251144257738790778026486857131917066272735409665676683967221986037400122990109402137559762592486383098558830601489637313298267905859969911658841107362614186881263611439932217093757394992393530049078696169186673126085685736840002004265421117217960235676717054381900060282868860223317919365494737109754592689379479061511137044929175977536083713864400850104977352149684435956873133958476570670606170931735771352422012532458387454696493432749349561657896435602601853660452623379079305672953055066718963909570981848510502479685468968671768675446364530250324350584184486374780481267420698556133879688972806349307887214644392367257331772697341561874616719704969229613222296924892608097377532464525461054352260719266539672859933747452689235695174433536167207988122291252852421158053005518637940680524310244742748255986247223468573037334080345756644102765031419431024013123072131311079431011763479336964423360643818582810282042627233327677656729467801346393027711644377889365029761357006710858603054585873382187431568803040299248850242863164231025076183452194973685216504186020760007298162487386125866961945146952218747119295739548276332622997042845661025138177014093397382432554692465636626040642721594817024816669563696764451008311268604674910478478917759505613577443543548604101817309406197114360081854701014978979558021162912286645450060356232044125846233663227077737372449309696920154414115845675734163141081473732017115971873174016201241492257924750649994699392326976102308934271732912636512857728009725059596815032125015291297754165655370222438238612866513777514093209821445478240204722808942130563917081792790835396481326763928731255565502779522341758521682496987382907167488310819208704993750172682936235134141400491226476953632338772685581386393673756096432629833967598758468632555165088791298820801382756313906753689331155553267302210043913657140627913831427927002515828109519304370887486303714555411798378967967959119944853300596388804038136161981708499271977715479039665550628200166366379800714895696349067009919065317164334934264800273326094592770047537158294934754592057492251448877617249404107932466875859267588990963332423616510019649780894918744483424443472133291948532024685542622798860314925404987792102262549598750128634709358473973264480743293971205519761107980654206018485003623778448444479835917379389021557697849668651315807068488846257278907052101465353806064507064638173445410095410900203592234823158650324163060256955375053475410485768832359512698281600765200569099839490317139491375394888482854307795019399481424340516007970788166093294523475111086315570114831947525590434260171224212167613800282719648412430189924892848063622731574254220365525482198428522381220862563726439970514314386081056982529424759180059384594133591311365100889874162525492684827420073331405523827156569918283520944370298789932921282591438491072171329018662280223140051732021515041546510128140496468186281287461530368530039241413579554912428068125909977720305192831526488853952189001479598332675282218799167675074833464412205280053302336658725358823847067396483295832210328538643296444638565357623487029037337417580282713026216011244373117121329289375739068367652135450164246995414141155788694055004208452016109343422083938446658417290821921454604056114252086910182386523417784798492663669237485416634394227160583341989406381186401623485705044007079881399290844524500661252213736855921322925571929957790935479204027000021169643820712802221125772868769094713131126667040452873611297135957667496644595643291563471276511759355361176125114494291789850867197834410063520128807830021905452840032973031556698780084866178511305557137184905328771490290545232577165901704987575464313208555756391870428917650036541808517144526445602473850849706887877451124037037627167500265711026412033328715301376192157873381815189193456619000367657954098473662517911115669975130708873117535337995151120375625611818456361731864430152923168716374847348200992083291707887859537496404031552564646723064200307707048899271363379263228328569100871781588430994185700794382727043266835333115028985239010436279362988311162854527458676730304413502204270540592471846149939691296450575876265764544127853107909783335234982053047260509939151378915998239521375805415949464215139586527306024673724461875195856715937857616825843711470012808690524391386840792127919187160141167454971950660330421683570293703645032483103316710306903894919904647936619447566979101466811900905707347915330963896148941014814836473241943280466857585893784303324401443610073766016974238971207694169857204271880408311771960683432446405789161657955672953787935811256752364115629728258996720044216707550210663376850710869412743476555341047895148800380331179655397226770096749942704488877911085791274186355009568161646448379435407504825624009052247676190249837042339988938340252309180096064950984417150016584586498024888355213564912150926044154198415496682391990611919140874716860177735201989718521876489813850462134245654148183531116237737655123976223837648792577056572903556876914712015509160304435537741224807017570719370301558557179975519669290487855256181488763288201746556034163227220944089666280584575734559894724524298167654531997466372275792696437224675434986863378244680296986213160997599047011617645985877258415855467621746858513462209395844168296201870687898452596638205586561996722793623151956739781700013386149492862046598694940369147133026799823626286719049246716303081696897349299132461335037169674715488974566700035317851185367393341749583126046721317014700702127270450255771219527825643012308547151721711620923740136167336967975505276974069163616623719564123477901127376506861862262485847335254543888411454682494273259236569046438019747828436451971295308233167260841359012570820620353301225211719766964302067527588403726839873458680542078385766559032319631234741459999747100890757030175218308765345588629466229112122658170012377945010378845087318940653834212199174312266717034824728257241729676803451393475361013437317265161863908703623030895819949969942779660586486418129759573064161830758979838052008621639167798623784178022471502524321150061690268524841712886845535358635550522464564968423623683623418550199327157699837502621219788461499327736409901225409426134073132328026346752314551643316804318530702851629944199109732370612140445049622184755106713611666517221902252008460057942017678239069193217433151717993391290252136165197233725412118611214425395747580250436517363292579566739119110720733581632485669517382315288150959160746088182370825979370372289248463456046541705788518956225793925394720239822710035030001359573379127285168680826890203493914684085923133895392387686652097753262386236193964812649326613159987726959645831122832376771110211886288787249436058718820567726043972895223973270973348672082084288515720715378560872119145911228883172397512906445262040724503872422187458897552532982778060316379977889455265429428224055624946020197649645258362038780424203102306912328332077300885112321251779790029985746299756040610168792238781005415414746265991688896394382681758327789991117781012428351328226036636133352301983730321615580528919583754111549015044692674148810023289797477987902398501939611929474341532123210553488098195841236539518311389160269778343386148952007025676747679206277085122424684183645783728083309001236490897898107680405409440744789845524579141798934475311021408531763135805552515481480264973323113630354437896809167356258253080587319673547278092031833169730137201936942181080751709991060207072773804357784181033622859489466080460367079187068722484984013800658359929722835587288547730022060239282692254151689982517772553979048504338164769916428539906020523134033713479631379054251058353918338418988328379321328587060724185255454152436662585820396390561130968562148576985797571177414231746923042135770954529330363027354942026783234196369751434971852362575323812079096371485682802750163224856446228434862676899920233052859694570753563747402775549574540184224273948279849787350396003750451005722321304918234428649026382339229149031876916633261721389365742253564661209704593470434356294640713236292040796571879346610145714520700163851367784724252332959480259955848546928237568405583217947552787309627366154114946682352398094338864631124158323256308703182456209034612156070245731615242893078857189697230637752916218465509793905563725392015870984718779634723329973787562538043230979184231724321264026374285591942040254008152064441182839730079669673049834131149838919688956993728221240881721449930351507496716109910829714636472043389077088136382210721893527346276944646746492693897584749804659498516887123846767941314735423465743915693760597714076403647387282802295535571356056393733064691156627701228100553013908763861452448600584258533410907916337860079771738193900325086864202935547116622992756681270051892237290912838345611422215111722357054024103383675350939619497130541198923452251451806779355138208477861321994744622425913944096741238297969114781160197982994260240239576488768213909585750856079315601919718297463373315092269274880390015682776994625082086789627222878195300313045410795332791360105175205672473426216683470234477135046343227549737676331552569290989694390180573556347784259288506920417644245184524103710099808363581657061687697413648689950244822842943668051338948277650639904981145844401383208703182128256335471109049384515000282679470097973707234768170710121183905844348678273492066376964060973989469139236052568117677898799407456046362176018169711511828714656224957326252527304874840925256193847630410133797466060524494409085783330812288679532370029791245788087344538866183410194874610112087243218764091979222081577567833181124973343524961437529410358333781954442764240343977489006215539686627533645480879880383918485373210481325534886417875021101466891546317109437742516774525873631432088460220908826135207023070458826993319270101814433784919092795760224342652637372797409589536903048478574919534948971144835441337737894374092971410977199126885998053973674179793556339948565552300262928548203115031820909255517822050744427607825017583123117009483495143211484817622066014233695962820141725798667341516915201530859751306122013506675801563039311684334370138797296208946932910840462492600925922076084566142556141307982583407553959209946527304247968494667047056231931959762491697476553372088549497699806824329740458442526224066481252961030764330523445810654109908739841916764243946512212658039587994844938517997860967337860830125233743186241020171541848940406178196569827904531715186023829043993615838446653329553802968328558458460960077884724866408866732009946870504908776026157108544772797499838160969387392911699551561810965985769334695643354105683163155150739210260985041675280825677188153958264940655387009488303616775425734038328595630763298609782761516827546395741162350723552314175646869571193520851188769900441241285755871425251898844069043059919774070167921224760658164979196749410196063474960478341171313073465462138347866080197453309632738148215583973270940563069479611369408272837469808267949370192847140759019925096538857681025102902732088422470370529673971388582264407372086368574240366852989411003513531285044634978154530079346252783005894631451328242683979668772196744845831448814220134219305524603204406468696638360984323876487014022297815059906810864507723485700287200926202235710176823188604750999755830811364529132870090811507537112123946774617237348929636434282926933276402969200673774321913391911336666872587834794595533545564930430810108505592317753899743408929703038104834601144902980669150795857473185086565952899228545612683982589520346508098726309591326984026198338953750525768032343306346276834598046306224073393262427938287862365147190177989150211215269949855835006707642389726296221157049969460222095496073222432843407937756007356937356847525107950047835497580307275116939664894496241099112114064482590592140872995130879474620676377324556912425882163263235295520924567793629764470721465802932682748926041452457988528536291533895751358189637891700671769771388409706032701851290212901154465068011476519822117685136155784373804544324601860935470828091056636848400556187354857254280892268996160323520355286408004523761613162200590282790332908907022726224484107286152057166517582667512881312926709131143917469770243559551281690514639501304513707874597741322533596353924768831013778755892892289092499716109774328539221637867420794127435983759101410900493131997057253295091999977060158261781574242085700780039269920362265337973832582435160338920590578174988824649485404560735211181383004104729106991148547637007527684182146795034253306180983995134240406157971559941987296421688507600835114290281650390662276953970074184656741667773823028469115546619150806086118007872065560711639615606311193911371848930167853099580176128775334115554307595814216485957708143666335750207667789132106949773785515384471555128873390528264507700458864689395972609051130307315725610204605881260415689318770326330871058059492878042517373365561984872795572544878464130969467992486631487373346537286275973374558129299306909989298792369080926060236282871674933651899688309421499588144554914461195233767711999307034492811394077059148722317226382999108149783933134308707576303024907855035713511892663193569331692829000907190750926560026506472993436985462387389740262957846396640127253888733918048176839540383967708539123063225029091230927669631434116939296425522322092215219850030423574254389451322998839624167928797661938687535861404749343916434598854319446577464751253780976664336436817104658675951463844803788854256227474941464951369164986016366821256430965955377121133689084067720464201531657487502294134627038175961886494933135927377811903668540121800409022711040096515477535987251025698130088081940501625482122570373565871216282350945861302540359339450530450455073346310009264484636377427841203177274291338235436017804183768118730621332662687894959813716412934620097548174170768087136909513166197232429090510610116120637255949446273379101369176136919587445311655661101982767119215777288579400103153492549533641884181168496202172058009597072099263178457811380194281647977925084945433834346914261299400012011587231677154863217520285609672104350350712500440186724056897900703289240678513646430522517953458738771781494793856910820194786349979580514901359157648082502360833388719216927865039831659735519223757554427434123376787787900864812878897536083865298770326769579075757051765565138841537290686970381279312158627953363620131699857263398643088685887332660315082278490183840630143939398925469053369880957234799875587302195641473370623359484755208940832483612654194731749060924045767831848569271128150052516569534770634842566212373052011441163708969296167118821207952676892256851731104706683781075004503936542426486639845372601506031784781213725783018027216645937335012025452432280942494045839922575538424460352196766005609010393587017240249613477775241934890336209427774310116550546038680005082153150318899537562119663911198570393086565461694138057101315173895599913430976620852173914484211876090626258450596169484550685573285842519877525117627018722284911539901713093361293596838088854079345095884804291197067483377972772525574959782822959549302869932931638094740063717153117953637579201621225551576971302973012586221925171613889908612421043258349351946538685364379710833107975928310366324021639379372228232008958758019351772539491347041021592606712418930179729492524392265662510639727819814193905146530474165245457695177322351240063836577279756588028104715402849729367765686193435532139477928668926040299874694078894724585027245038409447683889067690454581842636224552817440188714525254961701185396189721900705420116585290851460394267285027482877498410837723458468557085738467340891500656954984267037111955000108658212096716128604594797109237854988609832568331517308567430531652218755072707826343877137723371106693333130052720268224068087748078088468802596102403720685415502916585602562552285429630182654788654870713638132230499077881327059440565145041208359917522572671114400775793928511082597067678843076117005345144899420825364236340489288545016975453518715485679286345454309167480520207484779449991419323245429332337468237465763405432795940696803392108714941948497217597979354140467251921875403026822908007886320152135469752848878745646452576063216486285661996497664427297578498888773402407723899410461173726478229371933974898855125184940354517450784432062868061925964072111873647461678117691881675113244997266065682911510607385771268892114961822310696705970117445735793419740817603521505800392546738854948024752121218786954445391310109971260211507435992633662322475701507300440002178672991476940290483739233117757866920763526534370787432106275977275821972543503583928567854760249963521386552261048427671452237199043373519700999262141890127566334122282411844751564350695685615453059593958368499786443040537811919383880657869905815265341164968018557236106238570959378906141781886094570049570646033998840180094140019346669999154342456598822126352215646177986013877776352408963467648665437263803436547395214226154549428291511724028631802355687930884247273938087569291516426733704683140412860031869899053016015424467550613909743817395170637856839736707574804527639520739702101676832712399286680588034940061641241126745489163692908856455732570978288125818894345077268452109717015968522152261136831186202121643069635666041190896312810660215841729952162873670001760421572733848444501465378864216922695075467817187926055916759401709145033383733815340128870679394713019848318989581248643614661838317950913370270222603366235002674515493404330462840360420942511070213452395658996578735379481319253537969146354206294931794525568939158813380910819419642053693297786738638417712938460244442793329218797933780204214990542464417165067511208193964712275386075044950894542409746347026674290785339638416110302987923355390229809834166628926426539289355470167400707360212228502940444520447436418735240442940582728675417867306118446052880431254982442203713873372139329114297856361373257210783543836249457330403160539535580575867209315372726502860442752046181457360235977106049684893623650140741631234497065483848557763260916395540051331971645542092485549543703576497387978057068915484239765763945667659881769637215906811477312799101115647712786197457547646378128742217306261595372762827561970217791432466780533282454705086737803183896110656316148784865291360087252576158344373496395358633133485511072053817383921335737573106846515830626346751036623898598671976241705918742436481700490776021478612263064498940580830684991531832920204688411834247689487147088929336021632821583906446869001253498399039526492715971516895906376720316248635903677417883645440167871081727608447065390786058867597597068923544326713251300736132807824487679555524586202291643240869333968057970288624816750599882500987860642949699155275632698808719465015864357675450890883036308602720492732402221547928681875634049074176451229549000947608062726334809024674840595888935939146021917233575402768794467700771514431855608030530509400904585609712312820614044116117569577185136929234212008077603659434570919527634449962015379796922314382503703700430871564600284439600037065637020439184324033679873228716047148003495137095334129163325163395725436484460394533773339687518319874774408037600448565321870862581342836238327569378667980538754545917789253145283565044882156096684017896970541261155857033460163205226716371337159328155501040330655040411679962614984897967774469595100947932473860432114850771107178724149998257849642836358024483146403684640530255754557952026004639876853035664761784510168493204263422918941585752008138017293532762423824502601593976010274140002819488022620394923109605214808844845654046099169102879033951009730378997637056323259781370927415267409559209138061559408894446860271779411824976759211537956594690994321131886529632408031210365568229604142574473389823807136251234606197404838003828281225381929202191785030362428590315836925279679628700169668739783801157017596078729995232535669376094426174037893607113515679592977068708934620782912119056757318876644751491638761772200498629723570722864910463040366001386756126846046556504583297467877085213713357873445922439491831014576642969083675585552312752255794541252103433044474930752727694462124577513417209781192141825852009044612154884324856720752220124658597153208373072978680600495286845847188006936667838655817248090378332802941741908840304523736379809948465397769005746542649169270945739580156873276393284437361763137881064172309237925684195969304307711697937147983824854981032585559650974895982074185083443466670905243351036425914924116628976926700238452586880118357179429347369591891399239837108431655584060571838047000425164589658000734229179208601441117385515085638767866006439105636586741234198062376563045918352544198087947618466632405379993168370095857631240797343220695582920710955547387468126738964270087854413510929659005243534760366416989226636833611616232332978664455996162762463585290340319521336519992887775192305225169359478320264682291069736341048988297468960415080237463041382093813672548181442790469973850796594763412310893681581836444936142767817977440039319937221668186203848856755488777472685938775979388927966812571705571492421626361344176780834687417798328418214824582801506657499107619751999984091415086214923866783174419959906881009138661796909336091034595884002604597922230888695418766371099339932063670929408934181605483589876794466024255185674563045540758393052778143992810913268675247434922840306768522826858796869737621647992274127181797815593130417596240757659524236220996951822151984837516758485814526162867347235421359985330205196821205875319845017790192548952230778694807661245771539690814781629859558409469132674202261187839235011894777227109760452290994919325399273994600468371716196933115932281530244062593542086432691131331850768605230991398316735060141798060038510927209840661544988928553180978161342863432313449726283617543443342297058634412344255030158331499364601857271166098342912513727593789904420149328257973381878351736991640010243631067180909300017518255660364579322566433164199992071687951143284831427007571057585164168201398377262261661527892214681151662495469063467854480262844397410794309553729699973980070452982769113257781885039538177768495381665728384656359195599217898109610329731915209851879404427862097478258756067522619082981017322247021636028402166180947041250575315271003548554536233919587165425053125711418581484148814218877826962215934634205857156510136860868332399227325603483765029221343343062382838845434480485599170351296309551827340693812413487932288006550675038769961625897617068502841493075774678473394880470471560889305509532134856614434116660817931789901448397225269648200620357167972201654529969468250249407443864640436248989116796510950077629497231642781816135430482685004335287459896199714000084315676607208007984902137350632277223295792680364027176497470787274020429530679395607660472117857290007825659939278298074851973109350650768771600438107909952983168900155385533630071448718750619825895849090795356712603828979561509232550841492465654141652852719382281224460549202421540202456499854089671659061499945257420190005935192975605417068719969919305272297259957608881246227363168323898806033417927695295269445979535511807396164018695259093213603743056407286310366295073598317873126429591900450571660481542768405815509154137042713624632642803273113905248705967308959819890971078433366729031443677710911546775962145096660092515287781567434406867204932961762907742020589187727340915871970739755746773861748280124819848361041221987425280659667843102624933800082896949206301046737996148841754853946435460826066848125900171519612773883858904478341624732234667979822531254900133380840227350855091445059482637166154786729973533041184789332216765912479870549996468725940968168693018365658790062600187090705517354556243791490000494610285631155621850796577845032098327721525712352649182351319915509497816048888877870259498463719973827343241207126512850279479887190460171592975769435882625872541285300198592624115415067644286136846253908708787180414577430782743713298390086559816569801996440343444847928435664173694160413942047847055627080728572696681683074778910528521620421279578321272518288744826183810748526530691089393366319255911140353701358744298978237661473762973556890953504893789130468293589733822754737032947161534664411536038029938510833804233041150738862868035555682152688232142279146736169124222407103036089260095810209075293484251013895630404926286895397301426289182962147665797887525521297635739973482330875957361215512092701021672048037262901486849343154000250861536183078553667812047999605195208858211195719778219284157621185231024107776963390212456214789787604667246911977512040393304991881405441822956081360886028685836230318402487407308870908348877915708537328663944455595558898956615750507917443357692314595554093644155890844312826341362620204828696524109567701887919071765567451870941079214892046923150391367365014112763745712401400366201670318216148653418243969630426328068503645775602577280869609078152659491560013640901476254261996073850655716225463791382741403915197061746392392717588417732613627035997480468660330821970224864416538934245438065936694499739441073803822068835649420543256887439408704188635189421201077903355582610842758307905964359551422897312199318297927363241638231113406234238130849047429844915089079000559445140451806181686235124155487604569848625506524977497406923175381223811067413862264256077813536377198335368885905128142543289662860319144840437251024057802753644837812293435485492676622957133024433350065264745422678004665780771775292805411734563346901301594354346078185949450884216944966565185461196049232993295484218007027427290839346553153624097465868047628141298244157626849322382216217283760737727999794077746373626079077951359631375867857568475007174726367343873962098568549669819537145134344340679669828311501837251850818744040720615909453210018588427301482262524965508687129695142587443368433680660392517403401210509739967297992872179152461171500110095148148488934435194670432592025409678601321551919556465400070345729815122451836490528350457936987950753307715445959559433734430382294571308267732733934792500407878104685557726885865507132717600152503322962355167815322649473851943472181889344083981054908883074891664667865235934604166990498280229531966637291814157740361803065376484338021046422099550917560049595351876363208621944414962151412270748236291428743431137081730876680199435715548616876190347354414681031250559741973951055867931213943787559630643970534377334780508494442831588346007574837189673963719255707021433933074873179467342262512188121864258456717956238591275520935030300365645240095982891429884037619054911262996927761841612675527112303406801279944306648937047537544891926772952695638772384693491780041204788346011575971423075192698238960482711657621769798402643807723599399310732352605456645034534683298781415274056372595829839041260240029751381065645228678607434827679182010330008442333850283866932592229655851348555136032906075635837042144891417087829301134334912329644811804578410985303461883199427739945432466778101857225738671464900985348872012050070061784034239887214624597035819972686065593087068067727672682947018275897794722063983989625881874280672049890690314489069948045817530757273886608648056915432339551697096589568261858710804515788308663770931232000187574066193240958543956656271071141055068064603094126294964070229124209852940861640737359317642426250165839881819992169549280035719715374050653071257812536818284308840679698799965418727255351997879285556048257676177689640686592577444133853956058202041904046738516950775539549001851781917208307529029061269428037382786527720709835704668357543188189838444556877460118739500776342675939421281566979226585289990593487523998770789081694789494142773885365163129164435736896067369375469396232035755043691119998517462474224438247711540143073018593880347534985198635524065202912011573345921741968691884664354829988862994525304340514390869681586037044712637663941245341041331879935862466609696249577114625762379908638284455933799625549490618573401035838462691848275174903537510326003753809439661378625145495545994587442534292922645241715808665682140082769461829306470263002837846114629129489730203180643738843250409385793631558729905562516176626297549623681303514105174546942893816883829415492485390641814102340232320233999662703578360046669245034375391139973584735672497419308734861040194750185197802181265445461192585309144092084641824485132804720174119727526521797209144098973860676412492562688729541998354757689925792890186055917054928823064896032264228883887124500789743108319386806860898099324938577366356864757511693791248109224653651617829380795654629971507624393415471820509174787181895945242677640038829936532720281642381830565956444558526698506189605144877547118257826658900300627824095199622256410132776715886871192555508295525138869549825780914042154534696112332536487749974125784409402505603218760285256170305650500870892066764132458618597130932277979313911574239259026640666588926752482699017876673447866109273979447945526277936263478399274894633240714284092310173422581311025406449501860947734266538104522677142902311923865658218948709012516553989815978387573361022431070290018272094826963509151123383764441684774487777673299700163393255105599059503917396839414180960530142411785715545707518993965033571491018613925498552358343896510988638965684299086535530373273614521425594161911568367790079714169817928499223271593178356124772094660085574172620387386393447565209270744850372472550925027867449935609937040668117832476886864332085015407812751414921583175771556879761062440031289910334097085628424040706077950314026963571524141676017542036888936731409367204061987565943880199196485769691457082715305818008108063267356224996124296219935134033247534015881289051527024068064395555158476146801892282722463262821332586993441567999982354572929204677883997834851025314059102297166561250008304427213632076530152417655399232466955496076958693291845374651239306256752277979195708705883923327626013595652654347591866480848953447181290752113382901453744094799743226004102495598785917547953089518028584166277276744779369436325313500239719849022084200281468215398935422467573525828973243614214010602784776567029155548519138480060634075722685759507590133383542809267714963779375309148665178156724796412510538545965233200824258979629966392661189658915972703080933190708955814798849132244560737813535470444090682354113542129129267703289592946054885727815621770299466992367451664600288974258452010956869351378823062435495679813321490702665365748055009357016136589729766328018228582394330957094420512270328986333513169972922152812219472523463083461014168512840228132462664534560249074890924192249969164864744415286465947334977930593732481560162846255125880459306333515114865693566498354308308329191177258212742229736703975460629557038754249147874779148550705213386077375615796192408472205988132353660546872288321501915414937957069148353588694811373293390213866451957348677421250074401353593816290614131821334037806194469074292113601780796480816212962391063862255822190992326826698620221310636406449717632731807838333262905841768641901683107418361936805550273705919135278373252783945506467280537878407019427402031949912881759272438981181246825362924755704072863013538928364629945146668936863097990093506258274439784593472191354469558895667309044197245192096788448143991170509012076636405902154756631270922647310884763478932911614559499806435573901313294436013844513208856228595006974794205339279481668085440440743131734018915981812654079999472900076958748310696013961340389471661783919584339417884545238958962868195840860676994863510226093252824573705444350163336869534763474476482990119574761655725787046095608387419228256957222732937903942643607931438581676905917767653382481821963125443552619255462887786564551324667555544221977648954053573852715941843831556089202115032831506532300332399052710856097196286958239121278431324797687475053433454951918878014155496960110736559219523772526231551931270283085501390709842090293422212249537983936925327685277429070798554787301335123559520706847998931309225928497937453427220197696432443749132567248049790618755168056840789226422717422757599797738144922709298825290884507194164614340854060632558064035584182741227174614266885799110550049213852674100682078226137065766865801249478248524079205978494094482393549985079822344676768273391308178377082062605367674773370169485917921923113610405923342354644387460128750453234214113074095234985393245993847213270061425342491008655366554128586094370373567474187819967006241115418150505705576870696246506852902436535907963001587960589210311828320758035514796957556069877437592960985280220416231836715685655320926639403313214146863398854054359514501596477568008015127297459110514708518069646004711176966894791810635912773109256062438345780962400739666373952148200074726327700840190595968652336348369087256601135705398508095474774502460271465947231846140858260306455933202599677737258487126775972829105321973438978007754129967314153523769878015876587418774841919152326141204196906938025676990654505222550345140785588917311469991681043394570268729625338112372293595725957539389675655507799123440441458332683398756118486594511742461024865435210800947529589746012141430461635259724672423319014507760766505029213935281596400732225450117664200504657895985132802300869272136927213032801586419538552827004277567068094324341570268721517186651074668377664065310057561540989738588049154839336956589796802770815405913360979605294993346710822560881306599627618535847684658099574232969725109574435215011816270926029528097523250629986834883976473071283935657228050831191962296805906975664641776430186133648039049698990096605779386559727133031765298439731030388256707440338868550428503416497326772987290510197303398315063168171635222590580233723884582222957940275497702231590113217318532604639135781001173556744572052511801426442709401470231177401645252464312370032340490270578507541964149289758910253133249093911031397002752528260958174767397890339108669414486680113902748279161436626509772858948264786347457344683789425549309082046129936373388797856033789109157027132814102394137617196728840388110351573918270730566653209995093037039452910481284460343170622225758724240562405212405085726630066080964065310119302449710609610420787213643035998528559340090292963576967509901097144372895174464243168674714201141243228005351781239321735122984863969511542789541963698326910670462550590937376238587262498699405875777958540115913760903167855051533851236605742433460330701264465461313582381642053284702558392681585593280416135977201964087675614014504861788274023720036616211712422743252601923758676734246364116546591356840198644909638084181596657257035812403165992674283841109457513707317472570476209623376906087285031352353311450327835060033319581933385478870310601263845719429151360875515339744950895247106216024652512784883143497136752348909306637831419969096799648364975402147517063748574398909051857956170394349144526158891407652364681102462846119261953464241151834357835151576599283596209216626118684235963241891521953081405513455539987761330026346995764630534156304205829307411663863091484554487344669506333168988202562849324145825729312140428802464301735140147631817959611948978658683800062249221657926157513116958178457214909889471295454153706102106562213719977829855888969860748516164345355888435492193487277104786014908883000974566954958147940385716406769627785657625470168414851302095561207048217025964546066175113437150834756311768016678857155791699165173846516551531239043932593747135685273238412487021939390274394779829695837119119569457161766819325165909842645500184956261770314518927351664066394100212136396125262265837121438773424957639309899416687424152937691165289187533134060843579793658134859800633220546165835394307815874188626151450868941192463859877134851990725043421828742143352502571010882132817255279132235479149796016342593874712874850833457651461413778382466943742817900767427962938060661156459900889619075925059751998604773723997053555455623440515581145530375011998793937156926826607874715018979215732566668337840443392624663280408726201068696172272056594277970250155335534399663099224565970049484996374244711532024578393936166701919668817202278533683609879168698993087237017764116996148017168251737479639445572706155040019372148657706304059704586045066633263154416535528838849081705324454491568764768045779390505850704350925085371265810117671746141503325946263316159981671963611402345666254486065578862563894540351017565262575762037535927888355002725642997741594848365901302238128315728812415293518226414443469285687377339873064697175833386140013951625145044788260718231155788238081744091447269189212946787150792013837005771962815802193435282635337215321044682151431695038489998689166231874307516823713576048429896012738222978879139191149932797398794714684181365457629186545668418372632085011542839044574405691576137434087601181759065374194273387352701436809987030173652037556417907296776313457757981946144380104755907352901561757369469391593978025013951412727093903410842000576304333492672712048575889273033508160797109345432687044884424307052383776421163043750142483204965862839027846724081541998966511973124018285170467260582126235303585593436219983036496448592821326769573154968889810282467008536521601058452730675605574260772425896828035186640783342568411111564317856922650819286105672800351154632291881369806539676819678965106239632352596040763647026877576235556393325404835523778374626368800080297702852565598824819632830232117312965025180440680613959015750627749987183954794201442080593576520672545262111291511224609948157316888049380489959478338134945297908211895525203270971423104507619641063343332243954465770610660117024828955609151487719758808577581176805107472124523959987493328118410722413216626773366075523911346897126533880328112746018232315660046851587501994024789689394767575319675661114750934364562279309285802134773546173600162351381155289686184184078478828593353099949609391260488379389774452204196746047840685445891234235385171151257256782405464361233937450802647338818046777339558750049745992909821813548207661618308965544477092199092932393002510074879550878673634623135950046337006717211079654458157288596118714118223846640177310487082146710929565836520585421053905529146987374977502455317859927555322961587723203418430515392799298263419648126408499979447875508582254491539217038119821586355954463838184811672594702688371056906058613151102354993831577438133247348929273923457422407993770137566960098899149966561907440681162938811243033798482255559717363817217079482404433031382135847468393175339826312741391271687732461776984605197400692977584507610930826297239730960025283548908368902551151959752454199812932962532188495237983608628049189954846633252895018881326482610582741488242243411344706686350947045559357116565219098534833317385758673754046725789853580890998530022827829821498370602153474202552624137075655832420411339457721746594940762414979110093338533255702118977211447906581351747189101575322197931195718136018665546520809620360462998262485409496615869172271898510267213988240996967973828214923082196173284359258887585567671602046701350608647252034742130802021356929085869962389480415757963043315735574161779294820631817477646094323873570316137073846266255591445082553750336443793078060360456890333486139556005813995960929720600811582522277146914551968641668156114870253620402269934409793835246027309403710949298777845353176301077655684156733760006297518906337852459028072923880343586833816559612488860407817949328146129071825313602512687459197387268408594811948649662277450975027336097405353240129038699409003697462585938335581725366705255270961139228221155663657488075466796119006808255326915539431024553609728565767881349387150214831966705684712014958620127796722708575141204870490457525029444290837551992692565085016207832642178465815504854024211513094850323276681678581991387506068340458956238740540700772178566754049359061002261548849709715243369132236314439182238122919842113712944171505453271864646089111929655395427212290013713795353146404598041099632294675206263974113868770999393944083936704779982879497511898669053161566715470051375205684646470932867189590926113842031947877972491249631274938804009656711845608913051300062732700860419748684072151991065369788255108382419601345080799889956482864278695222306906338605326202898326989932019000613697429514927981000481656359738551783172813138005739183308172761898756661240435817957701087615766692049546711594847279443722430346527801938142140247988539415217123610960944881963839789876313050283371199225123360797162005927711600120543211092067452950327870920166306443749250299978563549778665976230695971382236659511185971758007229182495383975091530110485681564063528232423841937440414838086706864555285270216074709956684580266988014096317056858424640481644356357599046876113029909102766001902811220749393787246414854044873430093716590350613547466889215282940721822949959132033731638901630971070844833121237372674601555266874847638302492314820724577419566601989193363144010567318909021528773035918825628217918187996782218037972812318684657010300458084751852887430092284491591933645607701096770599129051596485393374346184332951984347031197052908668071266271511984494780647536438806780892601327724747731789656774130253737025060033823638266205706312885454668711668061951656979162521331840965431868394631239062521529801090417529916723726517092146290217097104173068788383745900072764978050122193292340833418709335949643942285544229947155628209164219129910271933286534947068676411392073456278753649608720273348859486846587955773612202756055059969751305548573778985414652348314542736357249415382721815113548150285179073389101116294674227286612823994550784107353168368598976138828497603528783900377772440580813470569537760111428483445333471273725702213522321593251704251912192167388412607855198800515764183088563371327640935638189369779715644598751177580305287874003461778028660000529787809127085886079769260049296347555054010361295141738018130716005963732572323446231748174259764624924485773340649900221347557006912512852250106818319428206163884494556131866004498357414620733847228331651583974925312374254644842613189004015023107789099375961107228330241082008286769713459009347747050304460551887209285981295781507868761946276744345419461887360500222161748032256720595600239440781094388851894682691570575677271161228319123573554756622514074883647648128498070990831826554584499244804663081200817983724114213880187191532188459532901900638150565894337526321933094350119222349948365072156136812257869691876974667360745801377610578778359433771035025594524865643945772096212520428550677652512305077651588895719653735306812422163323324966869810512913984703569569362890878071320738894654527704712275567752056124882970380238322152383334091689532902461402545495768553922849242583561491330937518192129159396101509124134781359601077594622225575242457024996927276207864585240969370159957020578397661827503317643395354942988261921448472932401635715215156195890104483337656033485620595241028363977776923860788117787780679867574211772095642733255893969757918573696458720039546344979624401867550297734679280049136641066617032971472755045489358910809501788526761079494317905788419135194233201224419695275387073779635589728980680444684882377558569250264542307409868701142433780038683478576678635539879522155923648563410373301552393783749476166149697654246002870408934933175929788600674925513046181083705950209867615797706572841888617967855984401073246971697212921352035264882288363982159786412699137723858456505853589155506270058979701189390180574926338726547469140461666293922416225072166713818042537446829415484113117150259286289741216964444899989829861933869236758697015444380292453559122145902741819271379812113721144220982140812751362516868041437363765015088360468951509947909454012925104991307376041813524605851001189924746868220486961426765688276716806765406094018728207127668096888266967325750539781211133407299679134394011488561674637133098463770629257639360148703168272159671143505833369562259151454883429940663502894724319046788147342886156423813671567323589808069345451084368414248367863574828785564454849935038364500597350926645446542222489273401437465629141710464723798013303382446919015119293716017561681504389509283779292146805667807670886362443630290473587230593596281655076095327599779178188793271009551688798046791539546136264304555199510354575328361384665060271293087281883636077777026809796418727918557588260527132849710374734348501022671487101522173703869149895900082668203381264485741873141845846169617067440988022114421609255744000148580655121093448378821392296119496835653224876651354547664997202727879288184698029902530527162733249666083371410588185058128523703634003838040853536052393306355607293252198751704637413645226647802960294412532837893755591016881641659727383509972884716542106691501903737201236889029983458853288151812123467817095675447844579301895055433506542117324467948344443533142486948018251549025288363585408645576794771433873548909553582438304280655115874477840300474274436379778875125742667849697629292061396632474882917794673462303585531004658222045217639940586696394390741003084006598491369213278794593147045424878785580559770533961249291024027911447107370503602215435803986306034946120125906972079558882339066165902887115659823027375236522974167702583245331248700776869487884007231789643903457083173154704107931890085261845548355517930863107553441792337056125610712159434271627848565252855870342443831644998488747613651630625000707249267287570106040147317295331572652841811837454320399761510592496945935045877173597323390024304365125549460574173531195285226429682578900797064491330673987679072079186247941025151050571173978278343898598179735358677448425800811226947543886449717847430285328829097843777453666314764621160585239022363532731439319350487484474381452463175203087725617624343596260304939021953797890491891294945780571579681629584119735786750896429074057200045185185495567102671501337453359068029922067493551112542296822060665076813200199368782587944668702119755602309323299800527827689265239421836310604511785379018699101454354228927839050092994322772623823348174430682739658168623574089273562352006796449154502305850111692354616618973331039909715152046701159555109205924748413296092495430140803784919516866632225865599264739011739961669628870334826898882498713916822421748052791484657905698109109761612635329961575523588543746919876169124215113052657312373825806480015182533256775895968032303365123018531940965052176430611236070006069483851863779226019317247628771315607886408802245620545685848502386554349491508038478626715045285697743745357959275037806323595872402593685970545474739169447879566882125564285467054417275689334242890871046076934601146822982358702019529800917412694118311799037124342815190728558943311868170876143986928178516131802464589405329861763842360874143511944668279609133639382131486826008356767064155214960668948153977885595186943542786402215160258206278282654943409420119421107433693089636988793660698829780803694523215690978857581341843634896255707461103468786510330532242291563355080511696580572260640452718925612940658837351111518676612123320025987509560931115473124815926313129436671957040569815855983028558818386318611522857470566882390397424138110459883212650891838741828546397589345766985099561217083501788218180058130858157394324254280901193112563050523519300774518248025722709406395328850161748124126238155713518152377938663669784978316765069637157459435290046145560417817664469915359510090632221637503133831627832757923042233315480173004206017721451145823421567040286961762782525333146215699200611021608768233554041638209300481195432639434542316103625774160333882398599993037453982384292583501622224000181856775702501841063648919139884151262496539808320867889726287223560079549428811561624937834928107092756787949733146638690001301189403232670899599900311193159617492540942299208186912178909793416143389333691032766677988725712386940444314919564401649308168003330955560956992411322013259614089416926254849510988509136947290341034613659994158927667145482744429671736753851371319018813278350392247695789708880472739880989767985120501399811246067375184592082813394914748613375208755335879669447965104416472835971395112724190350441116802061536721496204618274007753305762312966678121719721489516252575886115031746951953084799369819510502060051600535104789988385332675515813118562937059737779252512601763215823671942863226247129738077597398587705395134131192532636924479305464721132012413360719128903368825552044132709121360322156967476438617453929113433328659824831877608665543682014045485015573529740908840463715888774411809258815788273686199529124475529822007270166871698302487099952264528981416202353496400993009737433917830409635044630026294443113673656290042719824385407249183775742753157609563879046052019566811076488141681914355901108684535298687376156893493238304634966851174435293876335172700357695962754594473762646626248038017513240430209976768186315165904100015304895069670162157071389407194458928752502904103001714728494844854434229507948128269308435233399378427963771212512009147170989213954461316751057216876794120075435456197892709321938708957168149873228788900669314167203485035983839063561713305788167124214640644635501700908081823482651443689727179898338677460578724320426421671234802162174254764903173592915021386074660817744529452904806011784850207919520097344560212101355192432191172227492078226437831496307532729105175825913435535058026902688969143321615337821039514205471384410828607676353261724933140393355988568030967790245601824391149596802355273411295906178229428224502800710203733599869452683963451044376460510509129147459792241971931761526303488660750552004942291557981821604584234639711009337270044968358852758491770798798431283188259137723903187837653039290915587075189328425763005584962632248734898156277685212889065208833477317722589300549146430610272246787888097989363997817435894915311003482037914216018148237472009503017117698784757440790138696664927107384585525826960990963262094199552524536817707967546570073638632988986311902012745427544101937255767722452412629909615375533330459814335203478542090846948464046106128827861456735373957828048710412696676236066296141464468298534340621150008654148392492392332063843707213664898195934282806629306419966669357349042838801981203302155560838880175520616638005158315700783603049067027102061070723689131889099055951669614410337333850180235985435669920566722474953245599740551744021531621941398240158091378651901272906234867782550599197503442349601311844786437602314822839013488481296414874172575810330323083517669087209743249267638064587032574632501466107704140551353382586236368077435695098268757063407294978004393712817934051909280624006481633985278591451149951350089547773832832139858384635752038059867903688566131217252796034889364290218050093914100048288417600386680052510399031655413010031660701708165563818594551929906737885677694761608416802215792383919261090168944890916059303093863301670651336799641036741275001027404102539481355273569996306457413167881596324327459235176777159042313674386582542785611743403068787097532403816604552956823292360597782516579290926430396233662621830177121913301036161166023027722142814520264601309986936672757132723653751180297741752846822271807116412812546876956292180807643335509645565395860128516327653472825961773953746624130829855403508082547959743071461389122868083932805458546034685059717369657303179627543417103470663073437261722732597181951289230454017818850312582393049421550650111957724668386885791953608093379207829881965487760426538032809974374652423475604411347448997972402384300303503976207293383932949999623522946531936642039148364159097779341272837354841390068294702612681841175648270108859568889881583082307477480937319880814858988439567075441962522727801006578093559128772670285175475101445275421683129685637000048762965962507187969073157084417747995827854898656164712296813821524067059549444418513282024075180797418129694366827600168137406540259915266222920000457455307241747664152190841796296219124732388999261148316876949283601655081159551706598821967414538296594247314155931075850713848574487274053895301465115222125573135702397589305026310205799857453488922021644748733058786773239267787293319921855075913655644546286325218588128976705836835291819826254427024904531212412822003985806201548943531480008865129165974326775205064122266305808704242849932774054237250024935881210661782532065635510139231573432477166893681934780542689157697661502288557959402656014726885999632549205038256342964906448939908560133396301476734100909360568820261647366487535639064722050618252797062048905013440874321235177694354225525982442167656220658669625947160570040349441218122888722532955266846403889452528521367210853055818403641610094002464717760614106779939733254057055143188386595297605817018963324394905585441316128155689110086304361290868161005717140106061189716610503760657537908605177752627848333605663093103700663441008739854846828867142808633142984727563883961979584304492832891221045206091441226794804102277497991837636862069937126620876251403779396256436227256223472258823165380745981486052744040529569436712515287868063612603652335360946796999663714868383386698047507766658806302415851565633448534363476972513373658991290538106727885609900286642211686371005755250174638496789242904970457629854115390734224905316618514148582731620934168085200594141504422696079952467659927504622156860167322438484677039671265671945613518936070883252919943928162906443184599378688006273146161611812413781746472405708958371346892393126547318027540035674987877490690431411628163893219173107159602910636094932740484812779006774265303300069796344070562536678077920384396459503356497308415521811239530797298276513008820625867848923485663064350803064131932632136158379163060594618400486129093413221699820058338324699176201379649129858244918146026234179063467600039642766092862890571741282771386908137055769117291385655674685653025011047055764463423987669760991152193616722794010730564424663157378844968781474198152969142550690887296745656071261986619981241765800099622023467294023888156013427575456332573220123685970698145664128071143154277660385403285159082652645343607628468484385864862647336363660003146456089144144313029731206561585080893126702709268292065070859823012146874818990006295883108981089503542214856779008667278401370393149415514064638027848753845853565908935063423802699668716144856147241218112568384398460835509493883809330190011344686043312847296001779908413964707012015376341324251244533707784280390544755480400380603373632147054365824034373779192146664412979156596175709248633205203929346914926922422291960890501086962907295661771474384419160615145983657404713019498014220200743654056149677162552288722357934135384566494059588119124966744697683528238007758256457300554223254515067256216260489507908581364705775293689523226065294220998497753623539646785490432504475080765982487601094321329975107082027404689359062737064796597069984035612001153825183456423013793184627172899818068540753186859532771806504157255229571485083286895144963255082681071902894480135559054086048326738289274750324375952563969721331841118604875206369058093041888303375346579981188484608034810382184966799925635651901375739515110060733280612409998690632148016994774213706962917960352939904878177112381234625821077815718316860557571467843173906531374509958698584100106329171180582544909389858694390831741528439651347612063453081700123676072293503388522121579530118202439265569419078741160607849458847410948255021282331365072206835452624985975981624849292755726653600468081866966899410150298048578516532927916855257382988196228525943496945048130623957817731688317383043888855817597837119925806459848324828132825233080201289153792312446651345045754032740135075159356943724970343149460149566898701268881031588690286871853665191354721538851323114021818815223456233251940759491196710620215586773019489760636317278903100979473210573590921663650730170205422858650365344669081398867931376555476936998989863870266507728955175923670745454707323873464601182189946737704487712462222938491634876454697085072208762522622048063048850093435241422168322189048377515798090472526469634889525127340869883129142830800138005165307725719508845302861118292409894412734313208173947459095084355391990267536760866988743420475226349253780651540295677636279252746280148697509034078166069414262338498198594397863255536704573541629592911539513539565211238984653855300774867106045684081053048860227087133841227868759887001895986016203244110520473384940059219188924383709033730773938743010016617638496318915299130793452624314415387807132278039902124028946203270929583229145294612803374276222323923499727134366915471314268827138104272550609407303060078563066008634610046625665370667381529185926531262711907071807193424936416380583645888435022955946909423182743284726344128063572469212112756653177472272603632168288957544450951571198001200588597248236622511934331777729076696882901033428103216316094972693937841559656619601469301157798384721306595081952476653326697519334229282972875791466605183973217620497013402685922045143540629476799496869133847853751804297080014549227024742893007145887167768578509794711874193730996284270027996233491357649785729707832351545456752725944678740269112339285399720076044643506440844546051515552955622018306578818367939515643029531739566163449993825611562879747049573881696215749461957363069582653562965656940439612241233833788184295937355210279097394991782035480351575900329575678145985163884019568760772757184370437613980717788610959669040889102362979910143377472099234736380226470075730044023994084506627929078142235891666246055852772271056194712834761574143926852856299318915751434526550206138913582133779004058098519877843750407886581263359912036779141973762496482915461255460699982853252316027581129236500845467031534841600579033700242186595874482289035012334567822985082462239943303231000171911559929548291729983005506608728682171761420038650726998211919408382289795930471745597518842592768405838985727270350082676500611615049487252018430193333819722102466340131755768419052652854041320911712380383856980443659599396621024326824745114227813267776397217326552706754894747487542003304245414685510818586318535511459800579907237274793223624063977971515791375630586550661797956010414708523457739284866184392301139613947904369343964302999966695930357233819573806580391086257079406314419057601553013790895139515697106394374316594772435508971325494774624751376803947918951312629965124094008678386565739619652166940413349633409008011723293190777624496883176936413164833481429826175635244419232724772207096995518249094792939370829513038769280338088988891728889907771179265231208623294026543528439083406661130058797868333840869465424123584420636655839088025069033371517911035497867792830661731796178128849549643597582561573534582000048556034896874873658772697426566254838115482337241044770697698236967330348029024740154617626675952555242816778085661994213132445080379832494220143676486883512746756041909471105190190973108572613008841131246546526697912555803502675590991840693501299921883271681143967149124672817170004058724110944623427322470174666720057878077185345201508287681895750913582593769798417289885137255512237213103856047600234056121280202488499448861140190729765083527395472517654077808007761730526694878182958923155539008720013453887929451781234546014813893527482462661862449161994649547190764808261815264449414655818959843958725683756408302261300178185492962618149685990283322256356211828033769369161876024978851081740192182093772270947008543879544017478776427653489044237610253465067631123148639465593404163067799410219151474110762168782600452739275344410657121737407534866909611993955879923572333816969200392579318772969501343604103337326164054278520224523214909498753382645586209927424304685320900685137834572225911258096934055013920373442926467447479129786319714807108367045849826583222621604888235492662528087991992781505395824329023176249354399582272857997943842923665436949754368744819813115397436320620461742683211821114869884628406150920491905770559597613089320283933824625041785722305373210738049318072944288640329595218064463406616038916312268470084693600944223748861941218193223971924568414409332196454132059863487104415186082352156481819700036718096943539237031382952978675730901163676163609497320269548135461941009704539978847410615896213798199556005624461115388514204036698933251788809729029274078224937168550591422459007967386972234108393240145070959278071521181173867116927170990849848953024733878168312109575245399267126898515735791902457826923901717304628837962293529016139227221883072357927036549624060473315518328855977955752842858248563807105603642021415930883233229511194281136495012523827809980746919838470617729591236884781947518794911027541670934191751007133528668495348378755548050676332989963630711637317697597735914957450088334098129187894854595298806704865568986360244706984155988336802805828962266866046247507663243709614800019708458460989467129331437638620109359871144305267853283622393391680523252767416574961137076875677004886833086929413490153191999246503839412198796867205062495213215291089823825325197493034240722466947238724511137266055103502769039829386674399543340129101991528302580844095337405688401214238272813151494257698123285310652639735363342284505435367413668767916821924183305531501965873613468922859608485511373479877341182598689535713209152783165158622580867902654574761751359899432404231647520370211480418472408190585647119381794108687331664451882942030344670854394504360777166976813679371500761001764709493124891274411851691624567543456717924469002863752329804165123732683317628781292752556312673870443697215557043004530809827728956757723635436806687362907423223407518634159137816806452052212381501899022272620073539910804757274592217223880761431723188329149746918398106068327278155628854333829045688083542780856143556856812658595176927989710006423145748467074214040627999957993060042317345479991780185963671402465393802037934722764605054186242088984452201430889509791189295502051548834594744968081842863771799662195752903444951893481469956256363602700456948000736827818136893236259585722226104075743517187526533930928277283877335659438314552911040519204882487606867352201960965003243589681658541133660819300229240335716414745517588617763342997507503515603845240269789748255157343669807872728336209074519793442684621153346432527927104601219144942461375345135831312364136792368894864360846565629892845334536681894758267585180323986248928426620361868770333304778952564606600424250587422127734558564477801660590294016171706022120149295169466158925221867816356813654077731184446044012376159618121174102368749378388020399750944188383893058060926729400814734421941931949187229288071145659916654051810328114103110442783827131906671880247445519683025488665375172230091289017350183861003826643304227921151947287476453506597958415417295790676832397547466736139852695463347247896293249012924005145563347859819920280727885041952890066752410628770581678930498429003767589171780855635973192924542324388622748862949569679178533493989693378859296020085131772069051392905739363900701386127033214970285300581852423951580886066573774781607771867314446437842837171783173852734419728039233780595360941520377989879101892382710923015629830138798114296583499220052390393979813087982799928910447385941850258935444223131055781690541356723734419092495666262098183906924113791014406684604463611689103899216801519752843499101508964620163563862259641156681086215505539852684790612306755039514078271157620909941895829037815843112617881747458823458290498816674650544028095151197775078510435700899095439739909904661982817390174161909301339311320112312150420774509937830832047225590214176567050261751518096533576313969283218776345509605741017019612106198989830576351565385086567757238725220412147137257121592742444594205210751624136409408279074245690057273900488189307518117364462131698853697438924423846548886653109754358153005983270514654586875133164046192641545728338772952007542114696075348572179720791899142288256913756135689905784608682540979761505324018409574965848228260077329585041266233409578989752340483617504741139438660917027653482183812512068093371964669748755954179589102605615299338128667289801155808836492475090210727462698560569640164754738874785068661954177091748411771566501574204561065300377426997787425251269974299042258351305907185937024163187568297953719384529106949459597689040444428416807260609595165815341065780623731620006125018023051735330608220052651531705465583445667845142826653144371987339248685755051294357845717370237626903623621413368462326989697619020034579924032722609591605199506217069069839048379235971482925846431561260587004576185337992018149199944893442995948974035146593120332683672942912634740903802695699839599795910255316679322796498874175531400879943769756789276137203108813985414816214047357286473279181579307386958193219520458466706750595948711507378713403102893685644916608974444558337910762620388154057323270126143343728836043754695758348415486482713234334602036371009613241472228892003832299606557921122497368747349993761449094486557979702272955657666411186592084152780476163335043817139870937500531615799839097778045508470639047321288539603874451998025203048247266523947243447156210189358859977785238833293279194491055614318951664012083681477352920488708646102193634308873943727483477336445218014600760752407410909116572823585764593872545546662212041203034190448433601015522793937537067219900808569188566370755241597790107262788229489379346914797336677483749568147014972683890309933088885384452015761060530692899365822943838856125098151175295253677049945428109927348266421078278236770076369446085855463306605210694377700375402543780953190949444826281488625124761998465084051224807483297769356080331953297628028289402612311175701602755663391719155241692563325328895720719279515921032850144484254426560686916066885098589616741768857909064241570225294647881737285402897954175354564775431233064332294256912983898219520872832126654185733427805240099382518984832355320443097277373146149742784657966133469166042192344708372455949411145308562562153581386664332801045180679236588922263682095610023777131135289796321686145090744946055854197331458841267636267335416572361591397032418014954353671446501780345394039175069122879949688726448493023071192803716479727514609576155378058949482315776139396784978639629250204811373998290268870263669868435410712668290160728031726958270535287106866570951923547030395723137097464072757004458051664528894030318759425300657602284080453966718553182817908942621998622990120858926783899256553872937584651219244044197949569513242987464287586389982260672232712790348402525071887680965885513812160429151113145335944269521722628131642042278736196383887215722668485903007598471045248712399232156147399487662185753521929194664026161606403633045980311502492394319251496900771424520801880246281046330223224745855265659029717401972101506175168269176873827485798458040680542333767155698939841737371985289210912011556603968538381261098266998623320390014806270310267031803824977231942111349589684289245886166666396045319385241834609731986859150355818641143619919408582870240922619573225164589042777264165852150576370232611763145267835711435813577253697214009179275092965979723266737729956310601536171999842590710969577657923463818837524680478307305103932284132159508928186740314780877013038924776424998401484219568230695072282571639311523096553079040604277750140302991654802133392823271675196275409327607310868252578407057837200100348172759993868402426983369849151616032989581711455497213710815923066321474021279867788926240101747133482935858934041185881564753242208979429138845967503228805722615434718621396913860664417033015378730775918257986942347175844652783332685654110989858029538293914723263870008756620785133502105894628629328272988935368498003393327270370620178340824046680793113369272796503632246957065528887618707450949078530210214544818720485858008019396893741742809689394470723858430393433457127511245030949615583075378870622701206413756090305900372477738846567074289660434827693702792684837104693573875190942314114713499506423792773598074679157998096554214095182086522654447433382308934105232291114101983416831366247591942692278054447153009493015532855973155331913037837518823014249916457276623442495472968758355482687756715113561346206229001691590138797753828748820303253704995511524812999940636271554486177265487406374901322251501504812340574426053162859344169098918779738122069151894550534917150822709650657338937627730372413723536685297046379681784595033889388390083838684471066483108698774400749096559828982703953623842476690184472233713151125920601640559727447685874667954846622681551312233874554945068177789763447974087134165246184228734748883003994671031824066528179138877775028918924221081560980412163699203818451954411672067909127039354336779087056197968289442526319186742157596868359463401803234859749894202383747262582077678722670854817726312537103734136978278787700147020190438206051436127824491190010150769168040674947755502431959464549797941695689015632623247173478967920223390092799431913457768884693790390617102042766302561405711180821249465652746510394560391187924015904501737596090438935854743195104349463451993386034576740111460948666935832262112546059992356283604005466699480816050117966049689909479519651998933705765171067966992626808769347285395830422674955261619404402411866658368860829297047703895877405767434308258805186842477968040332173268085293951673124361994064262477077283299291570996416824048936645770871720865082939657843298381491533582727973757670749688843397521339138927484474951741284701886028033312472804610913684289265045674205439124695866564983975805394474677799883731422518583401452754418356059197760590106313767852170844088127987783143721122660769222113912588658161661673098055504929177885082421406826626108167586715561444846366985634468260152497032960211345306168874776318681821646849587085110951543917829218637569176506776037144807338725767509696543251657474252957605005854966359062712322194232700837829921534593153423533945436041183117227364641442888160058903370930163766362791006578760899401248154746139284464469818294580898215088005064948734753242519832989531604909304188698828656992198620335287035414636360331164726664445014048293361038589556203487391854192194945516060673161974907177214268790383961112586325419745955842968782105793974990745234680462944221948696452808088102075395509704891051989362036535468424295303491157545831384595773863337282580982655641906730616450332992624861671822335776204229455867336265063451341999043203342647395625641080763979308899461555628828856148636868864171494226118628932453340526998797609631632720244190184789952098184175985143823013585049367375141995248362963798691121480925949248807166802425578871577407117330559395938908665254284380937713823541306445508362033721517088086466922959041035591381254300029142590873536212086379003569296806491774104163821291446896738840930306511120694935941667435479117944040483308415745077265971574387552404170636198344378029270390697281121837876656797934552676124486159866220589655873573012445501892649418687871567246899569592844506125461150155688274753199863862317569204578101373484472414563962793042267146894065814164277926940161027917352248469504062796111046731074146777594803412914380739151247456391437430209284327836429628326444792002415075432220849753439996710971687936099524548349337949572295227221381982482623967159352382947980831800256248158094189779846624733867020332182413399456039143576107428621782813540351458084751355273672792984285058783559465715041689747033124179320756570834492099374707487091449374706013346390440419871639515261533488277629370663805895937785756814999392676480011495971899707572172634468631166660435379015160323788979142837961987871178237250979541960056120892109895154063787146296369456174431465758774150698603733634118411819861837088248779721636686360219825601962122558507355721414159294076481672108330940775743724578190792246955780138921152976235049313737903035447854908333444676740745449284431979636903734398366012908194173611300985508766126950464328930591073414311168703278488675368186115155724000988757412896783026567574769884236672721654775051506028918021441761430029021406884536179015095262716686382044959805596529285808768202752456080157432118361126387790334707097317451732188166451513740138616399251150038303043518192950696691143719709687292208562457136535202524282559454774586537778180002813116671651927432768587956814732624078777498106711650666920278743483273256631360276847515530502776991341166780259812520646554377588664180362622502133579327624111749308897918559119910986864156756400736290133647704260232426895412077556099608420446886087991810810135090641789860628898856504271371109988469847881592671912384146558673600590754309833212134841513993937414279791611287624472602467896055669921000234900585993090444396080558058085766112085802493967989900384206849389797423165420854617736274778917313631511712368766252762805286283402984132487959382922274605252459720245667705265751415859341369552842206699351194107113513837067569424988439066873238956634635161670215985174633794313631691540335969363802801971892290907396784371382797787088800680030470590533294208463698830463015392899077040571121123814512030785114143953844626925226604550096639033264794940614436179685729338848243187679077206873812684010604503013002512458370848833582499089711561885058284482216217405638647786306640141952153171036093958521729915969884470159308509391248625225346770687146227881336408262815879344310600013772154136577882718516281773668130293036414091993887769464906540369942879560625726948581791722064915479018090930185386110228955435304932230836608108482312467107660487553940044385351508309791101224453566395403408726721203058665030047092786103354750969928131447786538391267120420474744099313319132626895365728407982021315424747230633040065675250486520086671565297450360082293287750033583259532548245683506091666147734914311152092886504036847443209485948413178411519033178001188610093838965228088053025322272084499710145090705786193748461833462324891119550406432906138082781105401081556696965981871436095814489806627291551252724317053112284164578771822547381617429142048908925658914089340796027639298793001464747576455972370534629414765810141602323919599492633265635648463735719487134487522864793239518006773445462569091288645623262758590589484397341417394334313425240760404677924621168079304163935938872230718708035941976199644527882494302527806765358518076234976489387516132152387512396292814982502667037391293279572014385467181084467625751029727835346301603834142279387184377516077438318533578815357789628518623917407230154794379059504447106457908207478531223346984751194360627741396478790536929074562785060975241762633675755632896440776159313913850354354045736787678260349739287747126951811268584575840909959897795552013874360948334493334684229486886384137550602815469067089831545058052708852904858165294196209859201284005038598078449421093958287606911509902948253795600978388141773529553349709280198891783978645205458704539222569395760991010166221067911764274573533702621745008928635677034088969502856965466422860194609528274119383044207351822352352965331591103396567098412140443332149970567836820147014480581956290522765282748293354385679285294872684750579783482232582778609896285185109599749682503015490186832997023337389901045578906631203412421497777853530558882115625890077494358503687665521830013758105184615937556687843917834960507565228791086829891737999732459299038475527761384409620455580259344782480817203999874971781907504958629678804763916324948120037796548567607924195339869380552843869385816304272157757912335355292931045281488982155892567886997292165770712719674140420739834596321756376085388176935078867379319254891363144593076313495556986431653390829436695803257065224201534624370820758648970914974492060677692141991623386366645316737748351584746352730179435610464277916317597492702325647639012246179919676775322380080303422086217270697474893265290771317951688140029731440707431776783260434327556830421561884632764220939742065986225242741781991241855735421366407160146942544492754805616176611572659311520069512574444462386070087558689883502318349673154111800587768242530805687410471512321132600709737280830279335100004438005554809108473416339538654003304694847523775089456470582366014294648490041570287417342296374668990449443318436373860991446403805483117979011816220222095001502919364885244112148275241631040696504914582876510497141496615280361573214653435098525239571323583072671548798534039521096721716547390585341265730313398109997474232807911488575559840377927733612764157889852028580265536793109252943683995783284094545092474556420034830920664547435978577843675092139906740962961948088576816551392508907979458744774792795923199988862155986558710228051855313231370632332341895155906426403556119255569422094018647200227013930811113227062914045621504582274027942345438663581934390224330784586847427223131034718038233112517879359986944039758522150527821204631229063435033713449887194893109696464388048195829503534234059049601478416619841898688338158437645527854064214990974039408928124319508410450909304578656974656691591077167602205053364176696884199181606426650744277034543058869416646188101244681057588675209463884512464455066703677439082602343450682673417872401365349191336041510065484308168935381838389327131144072194938979918257177203950922279543189101154276924475015352752632706408574513120562135062275592065244963164735505644000395285357212345128071106432714575124907911520255131382321268892151180121390940747662149996776693571008381775686315650554089810785419684833994955639503270024394016515218694227388442372987033556581489671780327333972115781763651150553863724348474844439370518567741833428484423816685164954343279436693525116294595527086988961326014028502370070570338290988838329899748012983968607217582057976463273482794540798288601616199730867496238846534584891855352534606038692924101167548251628742884902381230410327401638739400525903819664966132751420923023963736975560090886599555096287067717811482999716579915233425240913005662511819630703042720797922643056635008058692778639398463857353152356279711035732989684915974253470246784554467662725967977617558778525649086980885182445944452460261169725229410287127463847761903997218024142874885897596693851696469078527687993996886349336699215616829275670151485034172520187774242383404155019893066073214107439820263734712787355126348612653086142858615227175233426432338517681148975992827657985583959416876065738615150479710106779244083823650184467741647282064502800810625793368250114246714598594816271060198344334643148162006344626171613554571253553836617341232376820678931340450537907896553794114453610338260475904904547404607779122912254490895614006526553020721862183389396777092664007286228698165758846247450118744698190336486911701748042696435973965456340726519740259229631614943737185071233235511375581400292730175555673261401304014998611374061658063171728444565801248409464091231713240001010334486567359697090694181744270311484840702362327466299093217423908325469802681210496322581168234471046337748857354897307295395868493213532944449503541598296047936534476812068427076645372960538623831086468526325796246681372849911146506610417154019048202536831232291256679842796908010653683198572169573601025469242273168576348766334232359306741950620185852093936188587597546487155380506324370008690580209160828813999883435151173529578453138180377141975766698584050145779590157157485974181025756852543068861857816672705589953927670327603576415272130043003580640405173812144169323902569213639098352276525113952522094753262739157972881136672791853557538917069653286986192378787951343305629454927691062347482035892587824875899251284270667074777058110197461134405283938201819352587588549568197713029395172520718631978633274062326083426480620299924224117328138561788777849241548524013759386161533864075144900918215477864861735475104117069390397359525389952575590818578084008713973465223488813001707493352116642093736549963611510090862579469520727231221826451485846607242571224586569679068580846605645740178153438742385226050583454326119647174647059867947428379230595300931714102113533596728582972831385400376769026441636182507681099506160762500845857730784028045999173000099802427859287030525806921892370839896692160275056643321083854292419312210279376005127553557506850086404916137426772747027992583590068683263895176296999527916776348419748558691025671054462271631160266490268006232484584183458991995870624565624933195413183082575820503453800067926005029744812451705188855893378368201306387685479678685669648674436440851438355096972480521375619244023553870055838620956551607012012367377536998119167172034645560702556135619457178834968940793737929909936001572255049960552217641193129230569510569242629574354760725041641905079265275846839651150312253218735187010187369227610603140395148026518085562307641714105564840381333867641578975169028976641868955844847530548363185053162898127650766548320432420005120581681247469733572092673432033465333259027536632307823259395807534968736619882655769029864644663705687373378283422447521776373173245620231423121895306650288399124885683005905633508594514725554417467093549476080518541317252967735674833301296794765626658793944873845481638213818180046602039478822259400130051858496663288748770095331098514558662570745301562553435099915508706616860157153226147685678107660654185381240789203933909888075771843807865586400148896282247141027081519816818514162603838523161843048505093097671557489339190588637068829049719835355316075321005186423566245206505818646020783483225782895371053532108716405895118151952050104456019422644664904371233289131518356742310250417325815714382903250597716343915465248006198857937321182708112895187802637567991384884749299637309747595616136960757654468445407454773294697780157207341477468658508355650944094521463447864540210382298760105563878523174477922291701054036238894407772926454233061363215152924931423935828177771276316506668890593375659247870957588066603473845390990344225006538777206257466450087827636215133642158906761871680992273184996604976987144234112334510014081690596626549763020644880583033593400474710139833187961246917604318603774234240051443138225245574866308883816988584197302651243984890373872998018129355035986523834516946188354693863682170167986788689551155191243266273296417735774113406389910898049822098624209543640970629478742108528156150714839450531241240949624925118325622884669139515453283690893099174918862837417569371571341951825320484548835410119213391825486897960030075357413972314609150939920136144035969129868207373100287897756325195676566615451070034756757785443052936804498976133897381979656286362303421524496370829469084444908634118783255514009025209787254884218700900030615452274767661032583380235815746387184554375465965803339730941967831129727250929532850581291181648390887444852608062217136181406800725834818807231876171268532246598089021858410651309231255565685045664063334616015373748883551757725080377953153302353588911934505841994985770632308685063811041761909708096464677062743876021480414716478857364113374199343273559376710830772087674208206678578680293075148241631864672332648030326303931468468831383364600973899160843781195289910565301439006421960671726029699391203819605425704586538859851822026091573571109100451790913784622799293139401364873727240012326420963084979355765416546072717142332333091337017841049360111785237025820420385527024911745433857188688286947470550036515031709498719238734491325359813700681243497477469759410008999906914269775926854631204284716157326204236292414807323229816353645701776279826192103443358075756358720998914185150931274199436459041076454608595744070508474585192939088908931087619831551642546164010845535964186267430908336976041436674798987003210078707141079878200427421287774652712066306071407622764318401843021808752396431458440141942653768598386811595349219683104511263396558927687048819182555126349774659864961868842069037537473940723076152455251810707620178595233899662254759489704805579796617970320088919679365765531071740884006956587572217997884784121967576808397962744506625612972358628310814612683442407617903391818632406143068051618237479907906757121281148159670609134894946859447477664280445741940540699890628560460745106047411271576724648106116757949591083770891893130845901335773561453121281482624269400016576500911877107568385149065571859398800265432929882196372711708016351025412510965826475005603927126184393004791348179830985134048688479068879063887430984197383087505840735535746431828349030285204513830369946474022002617057346683154984712780892537442053584662467925608996866067831350138623120624710898345826151205583223367096571835314680776658570022376543547721921666119004889643584770658929922887780577822465522178918374850744035843892240901057030340803165972525295078735493496894464502508428389286468239128092169068709199151739703140567703953532960674978999123797636293182374240893548981327476667146273575878088894063654894855228554808896119026515220673954129641399742725508720498348918110011298911920589194869758716285584708295247856512546363425468569539575795198684630627578819549662779378156658649253584098686353613973757939339802086699582724176703967415323279619295972263083549560525691198457493005089259783191814339443459488714491097468495306390396456078815927283534673467987436200412965143501676117135038721492771514818823330917231002224957326801579402797331854787227397268194300649377015911768625463351162832512695882611774267245874209293143599900017595795521421051864285317261331678248931126456663103807666232498626038002991874668140779338852657288122212992843197547091899452403244205086700009139930195952874261748333599833783800948655613424871480504057046382863254838206671177572231897790416544073789588839823506025411009161611367142545345918915101295489177391596528117749754630368150408319120218875720459402959632953878428375048022251934692400987998849925728141217914379839646476222308913156085717295824888544963177767197958872105982272033185552075686092024795343517351831149793052317851977382018123150187672927141959711269654573244906614649220300988186579179963652265131531794128958332772627472352906474381024216229349317285334451623224936862993002041339254709327731195685089686457992130698009458008636546747448704704312485442148901153192338051902898404266692876100582345166913319340734065343218386389143293951697620267559683601508142155500764982601747560540359966831995625008020267955629447035360725270016891647994409305454384979120839396096816441680803108877338767720479222501900217015056952121448399483157008691108324620695472589585057133051208640395871708888801784849241627602290521011310930926023341873043112464277230208394464663546520303403006112735815752677238988096401901993267153851649291585384964310059627032892303840844675632856641291554049497886545579586634470743642223421648817375281955912237256322876854136585826507840614759421042448817823908191994666732870420963229748958008696361257122969941872227667270876739799415782865941572358339550978102188221900207456302432477695502495903731773777155201457703681679049856198305518987560160569388948578920440806994200265690422975413634669679090130097351073857883404144562650928745506291682569247006901935183646383179182535112447649584834903407710873298981830790887677520512033537406067188189368948966580772010128997445571057251705918230966309684018986676787940978198126508483147433910485363567187653689608872812313345188432138991341459344824298169652182214730639961195388644159955681448692345604479758432286043511631888195488045197146713768896779547760795573808887388495679538127271294805693637780141123973830323939221406746442145900014650890339246498959342955583431154547909483644793569848882120429463246992012245883258435463078280812284785760419615175849584883660233301411013051375607114914102695483116951642739527103022671976849392865773779307425546467360222132842256882434812081743322755371215647956122482649683526144747916160993167326200940540016922788267184620392930659043925402301786301762811556735507632900083023784616525586298183212734333093193320595064783260456590158553315539536778719719830075870768807781257853461906771667845439256962143039550916292804040818768741714657876504278833803509525138660186782505128516501402184873421764828809737593893310848861174235719099470079822469621917488321131374133884433295071423773395172183532828385852120845475585867371740471769302623315279925844242243734599139153535432312327106589887473465987456616025446050600765884838445467721417738339237892943022228727353735201033301066640441341725583726388651555981643338416350431977228763753953859954684178098474210088632171806035006904745691299583252879437437383317052472391472438854400582284587793004705127233912306275208175357967241926555793239085158969969690142496009692274504636115462116202048763316277656207840177698448307056710482287984895215914734532157473935627965342736848466308323212652853568907794304346848275428404362818539532077042936287626200381511223708848843569023239514692142142800423239976368871509321924578615067648943717753144035607646663075692137184980592001352401176388080097112499657142874301750094121557013130723602545939143224896205549271171352767167195390585951981134115073604371432664209085292968983639108800935716737681251563800298470651912798642445279119636890891706642402046727906190866059358045630041937141105728064265893988046134338450010730581495175688201621514975094326273609069055820416635635960436039976028108998279181065402118669910691206595876579290281822102637806858887347099411193385870450995635517154807480142992856157310370882611376202535761376788478657065510579796169867974644773814718828247967630992578281904438126261631621878005718328951452148165061518654367292073228623522430155087438095871719990260446096043564584070471970647338162101441322947145777143538457907707931033664538221084743582726790807692050474874097127075897259245711317381993906109773205405258600020939604551642048192763235551961397338122223397924899022991339730249934460174154102502413890262715820959621544578463997389658307119637944141301639198436538540902179172026819174271933431033947575573141600625339766427574433740904799173335368233232943369186015700209694969912357508163577485687290799128740736724480219902783440823018319156020748837284689634864770808230840884619847772394203439517227305270064091144755389491327954511750221515333226878588992886738016565991797223117697807552031409662968189984032212492749450537344133662908128302540147683585715172031796067098655520279555801988604184687025421911898328783011756259032991850012585438137151858781973544286711350025094966688988028674088331628468360186706205100498383547549286782384190838560508689604120491168603628320165451372827619498983230705485067103498303272097931684918274685469437157326804665530474342917473542914724033187841977500219060539012356330718157383485013765308724302119166887477693610615847613698314521875036786579504906582568227462480011776027091619787522451473911758676296419518584659958338138780956708261438008083719355866166147983906425564697119512605089583488833287159389747587356577122864380800952538746497580617902837207209493868668274799729631108014660007800866798835762839293233037486460142002978189072446301418161455299545722514035105018722120416800515803478744314591308906564829985704788096018489501581389325168208553095418583656168065777441554733091562232404190444025615269659048021857722637574202696816737009407174707153143850917822129341063293685071720824371951975569955280024598635507496626332661571587848168874119580810177261032915660271457534042609920928602997382696068209388341323330973724269312312022128611367434346593299299176810005032143051264057737339895692512121119982827358041015804393271206747831031901314476530601405411762942640272029353520707761069944684057804457966541951808703060371127009419656505438502826756801087444087955861101775817993789059487270910035291488935513068446141132587627117144860984348005986338308687899802774279411742478602008342901999229613368926846117087949168268485550201096213528847094624775741112959299943361264996315457109099769364193221008623075167048273538902275958563504854641255316829276685583940975238503732462347344888455526485389368304729473742609705511677246514318774833114340802177330530231377495831121649966439818183773013827011349912751990619595648331012886234859874111902342634867168580085895783834965561736413431354393953330895808930842209348147336198367288552608343039161862807969104463472873052205129333161533930216862521300445126142454350625162287518809443996908009675775995313928747859736751964909386838059877738498979534679011106042172507640954756944200620188583344683743862783469298341759632603927260524990324634628675902042345971909594875270614648585209992853063983982532263633201875062209987788362381634794349852012617276109538233271204502949122362398118447042459156128406327614960149191682695345955218657224774257558563998248795431274882623347918542051925812404294541537256125848990849694867987561130552542719002583061562121883434136845162640735588499498564873218071858617048271624383272768561551276589630616126416091167699462089200440634326487350140504444452341806754533859306967462100058981079279105548587142689861798869711480815853496513550187229041804257711677020704977840571984182401705844132937415421530242729083906187153301922500417445394363490644723523605644573823528597978535323964726866916213741110905909986616146334742805399093614867475591884730643128154780228145411145776637808177668546890050277226882886294927834903957983468640912559592916053509635329280422843943067724747847406778379982952502371308201270686460279466660957330096873712532145469888689193925606048622009774320241774094668868071933463569884124721062940070945047282523450714852731204200118701518749254128858938975543261136227878403888204288821238546806153612481213328565408153651302499920127849537247357890392328548662632460901596530094978036822101968636383000046378626103796315994243880326471112467571135357854849536086260981727308824742975582536524338460787892455625688988432989859105987984721025201088225378191397182205793640829801437921384308885322322557235015861477870873716621437939522952003589793287181740732058499070080502436264048920019748165076579704400452888006566991383120614925253659232292939596002516906083935885393062326891685380988969860480795909907929040481984070844908424357568792586994962795909954090861328968021457472101231385936453047235661415667262921314640914114203550449477828834098773213841754328892576227864246873144673875773390928611011537444421746309885583234195364275207957604600594070547966602491388229843479623015505358140027456404799323224730803167506283502263174619646745845020997976346184027462210052592076102153766672474457169015749991226335393167920399809760796338915888076664275942130112356954049987603906464449580691409113230995466885982329609447482529465841572887543420221609231881995042367971226620986754217453595080397079389885530358885130632610847729443345422335212747226369111597096460067896207719623865775680647871174381455809455882140435425647462102431825493904760342222304704661877223160140379608086965182158143998192707254477070484918478869137827447258148632149028996114841617541169463875965537682253783705805994086301450936671170923035526719198186160557143223341982946270958828988539230255486139557093284678271471850857323104908185008693254582089885936893000953781542847198181475226079422108687670290312379224879206805269780726113624998172373717359562733279443501218057270825287372455530435225679052769106313180615051840786469108642308520962043867529466502017882436740929062988611042980047994855337223116652504547674888288833704782685333328136282813827799607742152156095675170440218537607179509151445607403612478964601920552769631239524059197676231372442349923776464478782096956577317943112292073863194090126319243942278148103677085448395768507942004214942497871410749815332123220979572848211300425049640897740491329127365695619761779658841078362191304006157502035432330958654337260792123456854524646921916095950392074151123727396364272598025039609997547984698784338518148439758842546723920738274972129089600036718365609144597891808718394520879861893607171044172651281648337335957128698940999285394524999120106208749176731104353440613947704611359483840600769352859770527674945922449775586896914086678455886827763443692120210525729454971447699977804362453142328072361033588541011813332728991453358602840466957975030502706863306277487498284229630348490603065618262802254819216369206835639763569681199089446312545826463846311962888421508994533586379836423369984513550725559830366732253056400147002733480476130003062007908845427536821075772411284489982743001883486574272315698070559130946752755038011782139533664226241944003233527846495405228620118511776475049278337907988811777418538802299641027466837848083836712911257109994946403335605297241571286104632917432358610615011637590086466263537976071481179561089319048044934031491007288041611336482009509950079563576770398382168215143696711054603177338324240584989286398795069153809677845344054228027616941248255676758564093309154854169736891127041803369639179873658768094565933504313290037654640773365499059573465949087375270371386667985921913549608339406908359145350574984651893886678205068069053712733588926832180920870321962734893833638033146964706123652530214857025748936082498576260100150862171283037466289399651730387251223189167164251682327136805599525734215068863702961307859086837754856774516123311711706834488724614624733368191432026546978341945213299877700176300828161332540989220429105068443669302431828131010716587462160459617632213479202869355691308712621313236625155984365688284162161017617138958303306259521892891134885554204041666185567676307884341128778392629076945480444842861882165227886359952023260331503386375954708958580825133705439889865379132258309955915197950770926979591087913089400790045795026071169481447460202352151705913700189974951515517339290806439092455485740991060264325238361848027607354770445638211514149935068689034006534837807882876860389111194117788226343004595657685221071831906194757523729848446085026900486531784611010120625999097606742062452851206478696328254061029957715318884991636738978466798385690012820036166313329918506296215622914195024963081703970555680191796416069387770112746827974068378432497439104954860431728325481680457941382700516163459398530585851951961366032591275524029318676712508704589750833193847517804555322353290087779632561642336125874002998717806918039740819385283407918893855386641726066107035889472481862368634985277785163482809306997185234789675610355152430032453086717797613959256782974456595239415826605185513408594014726816900627601492993254690599163272365439905622378197695338699992653569207248142196268691580615351558906920090766015711939318377161461381268142064997441586333588241018374015431833713985275362115489220381712634292219961781611807349713227438917102791194583044329298962780386216389508821991243317927471107780134837327537552750011079481793708882597495416084207285133624737510899896437638468309084732276984573181319025357756589283100695519681675911879479337852860395754901114945316405912649877603583921579396169081163323199266628468504462476870819153624810349788978763945483238001845930048845534452373282208387585429887534291295051942606678879201013258397045582276766254219807719641670752817953993018558427720188272299003238278948629125918560508455949811749943076455315383221776253519268674325888826669848485617158881908915158055706692808572500338538916554589773609633548445163317560127058043305172752396915332940537884167941175161536867388974451978290356338962000531343540978393042824333503465979616510961356205693362033240505781364189261360708089708247790790933409215799810582591636782132833819729501130364711995925935089101736989347066985376364253310152202676183603331251472588016870298426484040349246318681845195497159721716769109451025940420043024113128325968457273630712813983983544959580940189715395169417987354705927463429802196054932931900072022564025984337747060074668498945221205478236390620141807308735564601078112323223254153524132093092669663640999834783253050539265622122555290384900886580302831013588941924595723062207918088869531829786896518618266920761943760077890263278302753037192090611854552214675703217644892367923686818727882239976109311316678127675708159240251724880973982063809074077936614241902433400163500588734896067500225976494392955882926868979676033871113382690379234233527412774210810674346437960152986790696673689493939109007191153563928003906205714503032097217246698040372799855594827166199713717704341945646380134704290800623508560501183589895731773638642579895850371251225028396718777349809449593710464067522604084263759016598605006990562139110966088015722557564964787548253059545535975062729230378299027298901892563328678079517235977233947059076628726918369513009266983535567111649061637290408626819232306011173903521994319482290379866005464508857843018386627006406189712653350923728059829497078681734337106538317075972125915415072144851505658851645806706294173391778671813030902623904305978339729099549967800625332646516852611468439026422265748938312140111378878917669915536992588185595979810524862711763404648980391972190523450499822462233370442053347475503069040298541620666287942887107660850027777911886799968529609124970551954936319623831276426948423384975525255253108134410389742669182361492095490617408922940031699618110544088115525292383350728328980777355111979392943695684281573140175913457267173293453583315881194099303784018246654085973885648099923658113650683017627944393960313356714784395391958838220790666923453834140975201793002237284691356836032987717471363337403606437601875702624171234424289627843161365748319434179380353242666422325152126985493946060574220023663034685872886832923517770340213716396115016779491110310154952518297129747219428035969402658497578404793745672957072531642684982829341606762889320236560661362620911194979257303479788469415753510408053983342124981548293092339616012344862751573684281309402526289066025964486989263547564317008992532840534488598032440243238741462786777949990787989602185226230957706681978060411726627132576055543848587387114270052308317794433865473247448632516246786532153510800747611759606940127518542331823579121657918744319901555713371264245844469848617865141912958268666075752850143793789843645572717977919497621801859734726670046838511445794584991310308814150762354200058318104915733418377565026276364384027509028761973706356213289499085066653103059664433830747207507694282730290655212130411161735177425750399123713608516604842297411569489527419898009253003370062012965168439317937534070836596979636224997557103623190551734953484503487697381682676463778447730288066200791694804952111924706499105665748480817753465112487565671455564753021141957372914925021932239674556162953435875318872284671447120057290555004850338287247892914697661597679800827397409940070434377406750185152326427404878227829819396764297108995014646034945173246876452631803691763185425072427824354300456094083010196331211914597485613401173731134685084586625752493320512181035870387705335639772414059379246280639158556559117850507877123943436330347909448718550343938926530376691240506736761779412771592299902134078089275080527013109559273960785528196016604606653515127077099496978392908360223976770461923043412965806672252677817917856737474972895683474086026004314344212411424040858688613355527284492291793629011911565588841275110969773443205519066237685440327495553395542341129277950315378981820021541708044572200969717664206386001820287617702326402808600046757737932372531318132063323199388097884981837709404483170735056664034191394189302918078807206336359636780902234866133838850522925863936626733009445879305481046201334157322729249908681735984953245442163568256210360772672774446772843297816641760004990155950486181680057875158708669304811797506550978997502164549969422213518880636698083643668676812368777611233866458752749472415226202394629869439736138184630475399304452048962304613002450047946205413265073158900170719003136041452409850349289847715721559896111219051005809610242311855010658887066928503534006639337507982633712761460380607832364695269410438248052269900062185890106456790649032745307631945652843425636604918418451619580535286043913404470927047717217649816088895888766406037521981203304137428748953748914263025643288357103511683525753715056969849944525222511975727209765983388041872506703358321098900025423389316828527557027054379743494563885786395157662389796351099727476905642137932266572562980092654637567919608213606203638488599094744066706984784523760049099428662878717559712771290572648154905614691732768638950343339971289250258230248978426505117843836060664873189703509079953263394245875925912759648605325352309646432827679211050508168428849579538941365456054104854045333384348972794817527231759322230263630712585926708578966688465452994992335369076549242862435918399639990162840357506521761459187987491775252170694382069229169709053328703401332575269593731182377861967685625755673432104520745190687102969792383108641478555179102615988326546879289807247637342775673476623609477971182758497160534714196839977071745519735773540193036348189639739480152309224584791260019001408142365248812253999215790723244357492295014348969749035869030757394599591418888346152551112855022789162392743160585328665606970989885929882504123429663252094720177699388168035081490298650740152162331848145585357491075804285324932184923910626630097613232536795780123593747974353132231954253179628730896559391374477792725588395742758609124055009074770919159489753061766575469757770622903637915609675607177143951324977276047516980508902856107971303090404497197276568656941526119347686279213476074333705204538031813912759231665886310746557800844782129266609272358114710667988669122573348333979141777651028207999455317672704075141765415597708399894190747382670584246794747369815405366671020918863260529099418549987736736055583756370482928312552676380328516106259418265910444522166661311836441342903606527865980768961885966939470659705958504756491641465766112795167718973114457223952637365409615359872080583647022124834489524322931991001152506843720500315591706550705864483799758891835720670911154297950347853969503740332533991727152916132569811078385856261554906021674432213562689555496799106003944630533055389147012835974352291871172837586033308382954330381743072541887657452454081534023930569467822878488128364766490603673691675596569984391862597565069280380412100624759198066933730367705222025295812354661561320738706023307482653216305556199439274625032865497086508915388403746826937497099796945882736348082996380849878438027534327878271805533763288449514012830579049448302160678660674717437862630281894221184936575947539006376928767119440740249834156414114522109520640417410656015774457228247924170943787704356808724295258212422649915721349172908413684373032921748377854018856415841990463031687798328848611507169436598544597221471761524956464134984386084397461233684508235376067783221551225635531695739236191353733763171641939115557319113127843731019574904922986662690738254345105286266648119671476214930258866656565592479088466242541522290594645957576219688809322461294085452308813499609239577952531299166308131178749827917748961709748915199784594273939530330667769049095021276247166279677977579826191027961736208006926505438004461712470854597549980913484315318032976796177147752511600232164988348724259631881510579008857014357693070761884352704269853330228969393502604192818497086640112680520416218525339673175589634207091466459672141509066991779106633249692596729668121244709195489141069890218795095480184389472077895827723699819252108415727771659944161906968876226806107998278155153342701015280985533639392577452145423663993871304411643297090219139009576235250209913476458594702522709960137397228520822037076306534592059047657245999034791990930072758018303417845247615388048772588068716341661091184134546615816630756534193145670039748274318154869824264864028269189688665998539715955984486390722660709997448616061138060281490176959405797686089197248971424981306596817210544485452165066194527859722335627129715073417748196624722810625045960038246345220598179663464658201757116978275353444693271279211283550368629805913510412919358299016109894402221262551246777641917713730446922539113283628163374736931366989801411177150723912596500171961581076378671509717808907203033257675109138976346721682776713906411353671329481662521391257162564808755545952289943261626110276728491657026438155400179379417236464244615924208114441865487206647478182238309268357988501838069938154552385124311873253172159810433267601143526710300918654459415900285190605479065870442798861695404420992199386208149978587551687834189848225765882596529251131339022216011171554343479880062711940209525630978815233761479107435802005280680393830996021787056567745988428345218355355811493018023310527328640886584437041966782778167008518404606544674213791060719949328015761926799267863206691439768861093620434072458538287284007687255274825450890633378804449871113430223866322066789854899005947714225097856859022416887096982673449639515901390077477109618208929871265687712317739989922126506968824548640252381849841773101126610660124361534473682761372360625455673211181660093301290182588096594992188712286884395449985214365507846381482621880124411881710916468633795247968617801455772552057950726264710160114648668357716032510898243241673360925044247818377252949146185765027749360106984096775700109989731827735031832068029858350087925625089742887767327424021695619085382157912589272706788484296002536497848383072217899985572755642040288241814515099004946273640577729829514432293457473552181318722763041004370404753305564193702182292369163330756937047317894411951640105489889187404932806826240167901741382529343294596634983249369118337603099278497154874871510913795199254401323608691129690148654657970625247032797009635167483611413187015182586477178917020876634331212072470460165668322535992178291044940399700212841680224950747927395705169536267592155624227777083907815718807712972894778122005067471438482939247074321878939987519135186578645775607006240941856762871285402549913539828761827342567180237116487934792203482282726620036238693413249663253254615879314511547560115995050012878849969032510746653363949142843457209263396398826726620036848855203266039986477905358441882724459446317522112839999028285044776119156914296929824440677008429453857930197509263907305564319154904484150455312090892107486689428589798344680343951979075496499757598332687808453777017074062445523086011643884318892886540261935731458049836089017856472982427000542987221825832693473904119415145675003165192484882564711978155262726818754384682252619844771718399716044074546937777634138582183865761531969351748543101939558601362885683269451896223072978629037567157938177653473000647742429516990273741443033676247296601715541485659206430336248554596961625601912448545585081101676060406822662165023394244125685906053506521702598174165386211799129471996746927085859915854652577073801834888180463227273769586494412271115442658856812561546142316063924657560688348043969020433509256356996543233871300293699759808757691615329761255535975793679389937620167318894694834589756926602582615309297656891674992997583251627946226826177573953882313099929769358011223727687217067665371420045270730689582935844635716651563037941105282101291065488074204769488121231949385876745296160393924311198832564117995538718239310604762118325537725032079112540356878619735799888737600913585278471919402284269170638305409459969393172222976865784264373776138659847335350900417754750498000231214293382754498424012516258969517726773985646948241614303127361849752848801231505960241937502142276907111007994639272385264871951266656707639569073378823698483048793568911286060729681865806119877628767655899934595400331159171065113788159897579390992011147054894369389276566916285902102471316056190116595564068445658423690402501340404387395338226386495138651812495792610214050155959227273584075503374058495222949044584813057018204615468225925048045038571428352391943298460311020870950737435740958976236967935219305548537171729521418591305808553976803859369919369910028065467086711313345498410653422249867456373245765710701396856212846918293443301594026215721480064354901163059547880480662863445062948281337699386488927016344197166291513432126741996873776392105594185293234585354663156624666377373596071789985548936443698655133629871274601247931413272126417816195663947059761999272251947529151250751956186488592881938120480840825729321704595284270706039282518355530790736563667092155431315203953411170817426236136803350648281472590365882899159621725258755142440613749848182928085276865706460023119962661289739927249448292681602954713126735714624361707601399320140897572231217682676707071097986461320430860888618744497835828333492182328505468176660017099127666427580896295748710356559293164752701637178167995536279503538494012111428530761929685361134182707831772202194222125356899287020883676873230158293856135424577675283450658460567880506852509213098696544960591833452957600290274249913943058526739879264546420237271212432244842508079714865794588053916538597764691349043520077896377456615388722965079116684383458255660290762033818223958331037467935580303245698121300227524447027436917690807050490761972107041283985384189891231390275929209331557801315385884875773051109029243365541251504997097067055143780925230628813651189538838125779962743441097194893564789773335287630750630055110502530707459770714813108296154199782372333396800921410553819120908502490344811392735865331705398320047911007775791992778077543202236537943511743798611511841452660444166300813966243563015970189934299773889724380114679048870786040126916131755367165332254600004924588503039751473726330566903886825757984857512877979586928988402920301633881725479671380479320703443937570378585463388887262948914898309209544211973992830371096788362534384658311609796453064869478375342709690856911341387126129342045334602164192390966150984699419988908216439834699889602576565285053335790049093017522220980551061398278419559051326487691468058464279334112485377929655483417819153439539658896939753411602692461103949034951683029194213427685992453912573025701403646719743622309624578974290238282258440992595744846191455646575399773407922236554340815615073977209618153571307289578534904909482839740664314182055100370065288811565584949773760566902363523644595518478396783889357359002030952874992282314720834858158055068088364645685359266883036367676428069059473841042616857169387667315705554580354176263184629139190473068494842608154687782624606533427216135359880002584046601819259259170802591495093436588455995179274974451885441727468382045750146038571264975365157497990683497492961145306008949111469395825250818339461609877157047076604886971124866596730983541185871167401302182357082842201896889743200727114642132306721924640550193753821227582741582513150568614119496965316684753112650589439151636340320614135033051634332320467119705544237411802499216358484003693649975830879155163218766493646444167292993484394143685108506964198384974797527187766789591971983779230767651410579153689333728628371152386932816075579099364518067991081237836549214333136543026919748603308206517939270797551924408354649114467129513595255195634314994675351008450233039287454811073200244570485066650722610862603270743570429259643874270749834582652639653730124761287893708783354966246855359497102618447926487360435122760209586871447714370329695050345703099559467239913546834008158488850715683624309960186607170864498342254616815404363324405909803164637241218789755668184028474500423449067568881411550970272822081778511577095922071282028391738042172358882109284005091094929843125907767674730895940277259064103379434558760850672145835056579766293379986476454964836360320422897848025327668424519246914952260616375340062411462283019183443044461756485127012146041562280401886853767722615574413928162896706015871947068562480319856565284896974528226569808194462076552589431926457990158125890696239841568117259742769104818958271846800308821514574281809487005759772527093364633400249139414081278866721976116068806457470363549838243235692736988624234240736790879584888122542136632128562770796136261297734570979408160530426806467894588223939294427376573791012150782554919562598314979945187352872450804310155568454641076947301646851205904137658201924258132272636534942365078084218716127360031344458420220804659013796755910462714976485637955206330369398535105309421941657044040335019836119051756373310687492998862430649001513462737192738843610453355785362348966197709106861331770947489915818352571560421447464004963984785407508151643003848548222349152781403834827217729477765670636342536507791743443561892298277675216767667277391912509880722738939038986797417672960057115676697632849537387524791600596707393101295802818421765920055946742450517575086596418150572825879251793183646583218558335870439190013815536723048594440466644663589702153266451007012210096934424689117140070727086876683974992434981188143015352863985913856069727844047999321969247331406873461974009762138271356786541421443084396965759363872174760825801628777198378457862956781379566169812391603875246831859490999208291514437899108299641140523965745333397459500535478728354608592740920666126913710278568704074452080053367166962926127763687679383349172113736150385589528593964107932234342799300455497904297080352506390917422349855016139575509961845546365489134149981612051226246386261660180786104802050939815515954803530502995975736588970079820959619839703520573066242508151732732057252432857746682894783029532087020201638369398621271823603336724347550052984230654148845443567069465107088557091523064108363795502958229277218529305162546106302156217665984752436695519972307852170195015744300485836216937585530385469611216283411775393504721179850450990187643068685502941405881183344868118354735480602432361418565267007319296163020015559740586108908946929199720415835009219619226218740835387487272672272756974263575931685962596300477687558205167411088009282720042453408514783208439804279616408315403586658907618755397904422335975689569770162688442131839196759462287605978898640468194901404667161087987023698170726271087022201456655820165859240296593114954854712672277599016273464414379781405605937693348423854216815916551076760803109253291111732119772227983683911295588855115306443860057891927636721215920785727625455811318778375914475310421516738505346737610933497251318106809851401434891443526986400758721022303773766594094551564315943037423093965834439030940515836149391755878103945791938911747710554353303803858032288374699672364892258202661993560651019488446603556118925109977556354224977071308695458745298355848832285244797897409797060042807824453564880219303122700404457077369777075065951362756688464879228917777152860949379113887506553069847510774173743131155549472149691694296639447031768401527323801408715496373752994145624514541106278577591142567843992416379368485190498151018721369855759379582403387910261942502685804331766883009592779525712283776209087596415315478775081791396778080847939560948607370370796341636735792665754856733205149092600366444260607793702276742873045096001692598683190845826081223868497284419063899558500547945517951435429427860094408115795942486122977355210028504983768894807193644822861918680008835971193961537109213002761570699906906519248044212713068033129526841929835263684181492097024784549128203240619429481578872939819599077762442103567856458499528277770175622837855802605862165435358291540835648209510883193720086706331250888325281677444518745860490687202654569344636940640357160157179585247020107571586519009642651003410189497452956580884571760227624869028453301175557917430868215013540286069685102397580628092663826895969760703478285556902798854771750147809433681949991922431996885010076329712769695516915682375170541369302014569011081876954858934722464873468184742386320700298684059804518308547515267337438740038689200946011507188907508051133433368341692446105728968740969744765174246382235020061702825645008707345716197093464002259342296281257460246930238076015511419197151569274284398992089201998754836458185392870475894261948364998075413899524830822491917971348364876354186469956062215113203992767106239455973552424987823011528379339284342997893535318856441880671472748928037479351992579118272970143998648505343513540684585637027259677228404022641912851106472194525935594307181456764868207932872628750198328424103473301299886132652960001632480398689131453219178278029772746422405202369856254591480125128602825438471765908458306713066764943500193436938662108259380431930480672499074688010952599276363888462607446631113867904988494789712086609142214140128646917383587751538057474573613868513351509572017924857743312549889633509788581760214532909877671405869971065702147510282346811713411774729749253633334260165738166903654729755411143382629120399403832405570086136142492979564080955810877192744670887581744350116073786947329216646532333251458644767838945967654594600311982341824835758815674423443666129312770238573505186015074472627969915002261832329490285676303965845289351078145390737317812156767821424165088343268096556859758745946763876273776161595105224595473805748149765147769986887472317230169178132912804345134104090009066139427286352337368808734706053662847829371384408202267004976617042630542756511519017427011010587679598962892213908469895121998029927851498218460090568451386571877327738685871615216275080642207836990150665109257594473964575036662425711309889184922582503851759883338404637249850337680813266210069697567015816339193084530957216660285381781870573053157604003401338453730740581895548884789199421565296455458160701628586124839854232637810933966869944799574348256972305816104409882357272667203706642394612757260416058531259571112261613134877743409301814424853467553069333299963208081749800031435962415151329092209385423608784597618863150240948722671636780690372600603302760667827047041715645112955540580281233781806514974196672895678763206809695323216076470896663909890046585753631715413283946935890157140658183728746302082540039472302479475949346481589200141093852356942060470846365215296514083730429793021392735828952368487426736763960300625604694455194811890648920102208953747482666294538992476507018493619031978300289843941994119022706551211757242571111672025259195492391787640981024532215311534691686230787723510033354029459383420498481752224620859367962376160468150363601104212449249324642309602659486092225208916698173445441195849430310953452962545666591569005441919234177365788024725363799427511711491483956969933957448327755445857144214342991980300688043307015826427606016571223420450784692041493398627579726304548626254691877761582209127176920568249120359171564603692903683378451436705557131890149007328203491476204459638059426573220519410141237355980791354628064108955067230842373377454703356978190772323430468380057819759473756977878199651560748325398610988351699447677582264784294299142126946098686688294418359594472286369566827573255711519866765153968536429554635129389406346882941403322954137087705098674515202597018462093524450648399895574773916420787199263915168890254171283169426294459639938833202408778457177355783510190657425910930485906430403148258250312621458577034104073786299574471210783295187016723043110959037340567324955232953283567729924285130678604132593168019025456867851604007242882614037295641068687908310423594094592334694948691517862306798656097827286872670597775695593217872203414415865157774805056735438499901403534824676266491420720316726426452031951618004779256772944123487243720391797899520524106324849608670092344986152265194021087977124173591049740379488777481174577618997077158750473145961184233691514713416007659746290297411345930097940019090667761527314470954411849049691619656656492976449741857462715465515266001866270516992697502107339385438049965862911156665310650220909179272449279584656449325547143646244917463204320891509858874230808481940047589891500176864003170873796060968620732063442389454839028473666683882853229341601130847122534430397204608679651985562851069208214204380638894980923623816385658993087156755232700649494015702754146832623577991995063899315473241804103417804779917796606590802102628143026554383087509777890856766453059109739752191000090725970973897231361772649529913223706967963492958342931819933186512021376795975112892428727017895533248012821738353532439858737750310234145744220521662623065396458199544182673009376957444275536027316902609973805269105436082853602339172876999580830415332867385911441967180611585001323872996544044100341001721853792731122324873641099129942812866138125373601284045442135075174968997722535563808626551227892696159327091871487690172870256175114831693290265985298117892145966104555582123849777714926625898340401773618160222853396587463864909367841647921256707167769532783411262417522911197982940117671808164404201544716638726300396295270404044559941628828116216422544068456717006143099330178014592808200964683409806858970300680946371869304758235630070236958476433517260421267070388645462264369154598016844883206254123401148999089218723961018157706792899948114042905071758402373405349044121991045366990973601665397843472803460648700629189185227009800810831717581946825589783109220052253888036039801653597600857607480727398997136282542237222129002244089634572282014116583225789143015080815220970414240013421170364535810759313609678685112808846841211542613025186951300765876257721814419946526890513606580394071460749834043500666231610577002761711225218508635487473513802731012572762707428026565143896328389000695059521986831526815200942392527782441589055830689246377175560455242541019194919507938737983267911811712989247090829135462947607641660069730146120396298221783033112869431862933318042301452970962253205032756162444742944047851160799921029158120821040112414378909164856994472389812863184331586174202670378031747419258331927241399261816940032177322942899250387076120979124515548785359519920349846071716015226005717415258486835999981248496752909377724717931610378880591130195278625102151313517394283347661877838321550084532826896165458882601444617671416094716203113383441830790783466847490599495458970398064074735056436434023764750347088731324120357680951045497739844391410444968620700577282864868013349382122493012843309827122135562822557295283266541324323177983622428156080233064596834661865068000042794734599071171884779199953029578302385677650420585213889061972535510367572250560183832515182152113831127988274915985636518533148813255329027195139604605678025435950017892061993185169619778372478107823648719327989449922122767980065814294836539343525706997430002114130032161779872749757991597439314031965161996358793100216759760353125195422250323007024233158951881749629468379680105246760355501574044693115314097320962239172691600656479479241341692513207519489084097504801439172399096321702119909445193582327815960660408579761843961257624068943896834465731784854196639698905307817229592999199877013514295314063062237164832022879291526008212738704988530967504983484055677435476268686624567894862936143924959495976041021072251343957413536853553595269208801735331438599792854761557604194769818773716250244912998439315237398214033164902704379071388619998707601163391616832560134499847351026132422983111015113319744005489070635337750267475208085814916409224774914093378563919417436124800301057669499050466744389104372979761444816598024105902795579861155086375203286546988408413982686708328461526831828520020779489589199128884133900931869747955234606126470819196426551852197382315946723423238564862365202791665951604361942071365241825787606083613636602354964329564714633427509954942542223329015208461425746672190315591954891070636050039307927948729414584472741634165729613101753526464664388934986859238791116130296074396026709769723551622005671852876493851127574798831138045360824840423266617705299838792591900246111646923654274996147540393314691190969733613665107388690111021675982598221942552707318821051441260622350628355764445483936070536127659042198055331974445821168917889684653701008329390846721167431287652430296896128789454678435503125089943067651185873340043686347412399442990656612508816758641299194440555200366857831775520333759188983889111088075729763102713734234103302657200058766530221149385610046982935736976003573103171515976147061317918006772885048464617106213726874632019549315881536746099278615725931507469062579023575956114811108009211133714951357904682536115264859752968433022478605545722864279958269651228439160080977325807994163568269676468713085946419672620454418862402888590030677659114937834537172384159874193297555931800436857264435064046029983906569387084216534535652736274287873233153979435239179077889223396217553345561182272908559463536466782372306585683541630705150871640180109483621159066563928986017518273203134321703107682076037328902581794467654202464834743333082578071340322144340119161437952286437564785639234095798830127748201233072609877732871686516936671771731096644310769922989083994536058385963441700284548630802481163206744554622010766123773059827451788403138854077921548665575189979473326253680422379983743270824114377929732655471651135518050851826683679348674268851817177581486513119020294135391137559020732871759697996296572443602338275284517702461717577939550336867287855721442451560667526463090711171719100647314462068081874319522799487271575819469569746124905713604315785903559701826139192161081824569602522664337814192383292701443600444400699715312072266244123191913693066075787014511638243152539058257027154388563367466318675660154367820006703694399593472608005306227128073721991073358925218012547105282651918762661051395914332323675571326109739496512374616230392095267182121575336598921271226929148134380604489120503465146463773059258841450942650523945712864874890048906572796294298444273050005970483489972711303950219943069960604393957026078150134907033558440929601568833136643096331094025168543439223849087314395657902348152005115161473414255322759974259991481354747645119660488529493078131041601405691574703201908287373641998334324606825039832393561577945376393103240508228602670538088224533729064302404307511905690718459416219372459881420774766164645395650565684649320179148695120581979812899988521532900708020962051417263233378038061777386951522455213904323751013938857938904283197974927919413773700341507978836011361462042183230489083292761847088781893783171023650991392278592579575587560692303648812379740975230413258577853789700794343634187278885282274178524670249131679718778882400999006111056227178922504404574925162799612562815363920480178641073674093115098796720312403756172324864434333481385136206058061231653390515562272871506734883398967950569534202039904733070099257133294232615299679418688772369240696440113142740612218234806852465905285492199123948040776265937528558321411955120243044890911206816932887977665007037074058654379705958613587434828093851463329310735706290430793336534307885826246446919145124127045185090896363009941473916044031099517444275067191966615077300479040584753406981589341380981513238760317144818653619005525869361432485344843533362660638075918335826970023573549790106188100021328267995860669639988910195929310734636636501798202164852345330687275199616726517800441537514371642519772267935281965493843179707995397164899169986032220095224938692867920331291184291771548750914209481352329729183997667369942744525879500925409929804294375632697126874585380619531185815434190095658304110911066667416407693703833798368173074483810210394559270485572052551070422209612609726598742997113913109205586485543034739712646330617078857473355583794264570882408472495673965357188650950581476158727857119459783666996268452716779832713427558531635590896723495259617924033773928462456487284639178163266431018383185319847390497651090323703464620259863160840786871974626659742383629493832840108080834204811478951374967283676354667952656753355277067857770328390613069978515175595508872923918032419170678491155389883629750063195861051507240985515451523873238449729699619166795390334754462163738208055493491339257836130075614355448556870896644947682224892988670388268588309774743945457592007616023521317027727011593712535807385082598841087772914359232171197817170294698827560763156383601066099841143967476607788695140281659293965982227873399207195298569607590004580229052447810766824416398589953981300938479275463923341747160222828061260901465111747732564455261903315217845690046720055821980336465419442430399213956179309860053436552679551528163703322396099666929345913491156183282313056349348101821806392794401307242765881504550618999236609519425779115194175307437812199820394859856276850509715000035406721116787550298688582898510667385920551497726545169457985485141289574385087326352124010389706581593536402344774369621022162498131442364734712852835420865540294276875863344832838494269195813366481556493174040362811874357860449270657687031524766406679276021457144573098812791785195202880436328256153874110519243343424898755488325632493622947480425586698692902067361754450172318416582757350612959984549321333768353276452308722834307660510850575341569765802615303299145289580511306301133385515922742470496697760112413700325172825631040353894137328975863561049636965000198278546208593959788282554720078009257598411405191407495309213358299135386668557504364922960361559163626143492416260165491232604294211580357028210074040357927260078565280995657012467493517971644044013760601536040058480530668400731915940810149811354407798115960435081516458367564619903848524029596987740244098218483588303936960466151771608846588588375144516919222748410023244220926531502202003711332114845278585649348049580481021271443768453392708515697002319471761704240974006877342952317593157962716227177569715179569014122703876040974140146479011757183780611844950019420352207991323212947387866442449984184836122148066613385712629519814980492237028003103416634776662645178588278781093757615014385424596401869992798345821047807122081842905494083869204349726041919946745595402476814778334644705273637314428616608716090215532488037212960503695316994702438064112166988416364072708755073213919026636767689015084016255177370784711014090518057494856157461083345171112356586457462102200262627168856344456456563130272825450914946963061484391836512230171870102413498912528349541598895264681907113027984818527918146726332092064266570769258378134755232008651007969752159424157793047057465814194365175064603547719370764225238200182312665505193125272064697823716834703741786335905819720497755047579224860917768923716422685651445434625921620317700474826395255665248931348884836352076393265643320087362077976009573462731161438255883501390268706408262436619270166854867253719920009324294096497338661950951281322645769502408679036155629635079480530602968046195749050378040992056595002442709768724556639251426567969519844258702961034230224453368386820817328429120684300162906823559974000743911498324553986785603908107241735705860652877927731540871297966925307649074745963599788271274006122133176353236570522590031635105279747105054276828996088282114676291142061474480666682724882355503875527392841706965686348075953707872665049885393783838813095361536747272295133214446718810152071327691885138471112306569143948602603499640097264113380780188609716102660660680774139927170786409916952178862817927936223629445466360682379900676596423823522011998334830863077661117372573729243090495534073927911663806639372678621378911097709394551784535862624908958491447666607052575119312580374153919720618350462025693107319728643501979435214656765281161782039145473952617863457200106671426307832429992912728115639472055663098324785420062867642695513903503239739210302617888130573527778804825079618115907513697687889629727292712615901677967948859772339080290705528491685410078322454038429633770490784469569465532741892739797247847581656685237117152130241141097079430442304735819976342769089502769778414006745320064243670420137180535352809654456261204451350328755015163745722595600817039983197810686444546262547960869810158060544290131689548807478354818579773748310664232764825000445350817865132281939375706262805212484981315902329688283637350656050070515273841619673351607489917467792263424058706192827539904559809264210065172918429275145405449350351739419774924876574411528969772128202933189871679868853102824046547510340376239698054402007459190640554141044849050680260653681305891561010741245311963995241394430688274030486312692128333121668281124596046056413160749995408812397906898230472015834341318823722302913599024481234091393245484916627819528339944886834777342876871807206923977773469698017198725400582314175566724889295542168426594365267674445030968597860730115732201330152639595354959429370563659402226475420354080193606423248503413336155489588349854567093569486747940919084907295261447427052154254067738344747195269176237256161501780467330368654747576909724255971793640793693628574228931080174893328569258399294080151271883590266150525297869067536514288798019281664211142158973323665496537332811905853306650433512325503672688200165488953284327640085826453890607526075325176899585646640124318518272488581141514750523784026094016811963372768700129186003061586921139764780481670374270450079476004523538341368358488034219203957477730731471648407012993605984584629340459966900822259731512574216872645532537391456264116305953524692027114050066339086849056811901909596713079312964402452799971170478575994055348353719316665224477033795546718966160744869045154631341987038517055181217282403409709165840971134106217305293656788273094326463560327848251666617953659344362748199331275738079583467058503030617828696345274049984895673292421899376385578567575837994540009727874953807015415123763836904898434014946173822094498468062952119926563830863788462224133445611771542495887210890548087358405981220959968595980360405707771095180198673130987544166459351483066876082344454570117481726682439683458540341352579949014209023543273923557661791398667091769662757671687600680957644303582513972298185867377892460613757863086252260306572751720127848196277935993592871092011834230034120163366572162286676597232099866928421642900418173116041393164152032213672986065217353888905527591102880482197909031533450384104543608874010446179676704571208916886609819987298085560760233162772670302707831438630873117699708072881357771057335577749492949006736382552450664822367042203969004822209758626818036717468525823744983620682428264375904928201424849924003874966993278199440254618479085969885332508690739594119505823397859148371989847581987491794096378337109199186928294940312461424071633164936445923349400582573542681843057131152514072466433180657151701138699844848537331829699515290018722835901873651536944960813988424685516177959402163889389245914929937508993189986718477917878244162939820976439719885671627668963762997069036082737093222331871170678591182019293303407889513306973888479939122613054987895680883332884585892480072779524078515593614613588142300892977041600541765516680853017579461843459588868404705357299755149368604433553958169905079050857265966894250341641248809278150136430985009842676717133276558307977481311202295159443966527891535331825580836896576434637409422823848354304458576258238850405176866788544826215503262260960472107770916740447479224210439546850907882571251893728632520815129734920248743173670321953515996775203490897825466968053239458337182224198022956791925985604887873192894029094574274531741662799068235423253666091482446655666784379530620529592978531606144507538000298284836850582040838534549618751472080849266199925170223193864012910695634501611969709226813585555460748801043242963048745232638500206153885279567127592456548904288642738566093573014868409837750954832411882006183220567972175644443252564956594299316761612613621745877250989990657096876689558561046095453599135500867583638721481385469888778959239577475659577449598408113095314568412746823188697544853897125349146702617182277177493675901466824964896852634878111131308158895622963268654731163583997791502348179351299590890433921588488698026462607327156483300127715045129756047906894504081640403623328412437301862659876624487665711803908600915363885004124607241106462419095773743402301752653331082042472340254570376800521498576659624900059667219676833580414661897979920107984201863771063250747295560748710157756453952063304231328537462959545556743925060836078098288565849309060019466389053463053217404512742269848396081480848158420354471795219742094556366751900458628713278151812130135771188462912699614079216412142609773661485289238794565187790046619284284991582902892358726388417271207691767674842762992639279324883331552389551832767539187458152853017895697235806417486647498003716632109264821023362224602028828994399946012230446066121328431569364877556370524375662576902237416574224208925067396796043600314180706394675751164300028015813990159076893521195933309469849309854453612466196191182702033966145646655384620220413744845975636010655070514741949291529561981278106086091783357450057181078621947063713286846618836848714926063642029966726600474248595643819296166920182495145398540797454801064217990573096196386511031928521980103763630435991983858451593817498983889471141484918862273606884133998411775215620189770917521814336988388340975224646450413372080790274570849863409077888347358075905172544343661756669568626657972805672966596161560217468437756926629001129177687017663776260427851975464360835845870148174062472125146027373137478934948266452901281429502218997136386452253051420854517165872096654891322836920429820557193571867098678274035667846078209846543222167830189982784902152218763254018859105137009982397370722251466650395391762056053818446217396327613785387670784479371538653323462252805083645047402157110297524394077634052721837739121678540385809547238262788431379620791175435118335266299032875806006765298023583304948702496730203896390101678823719007802105664401261362181690786079700907367347928619277601068375792615542274216688415894859016101461444905683319981508818246893449327788557312791125242712666291408932233205772664675563404481586414472355002392972281257683613220861067694593219247472329199637053239547087963829758997961084394403382168594111998219508023436636258647569153028047442840002238247882349923538480448587615507173959356320990087403792661272958638581487062387636470508665102285140151013740865369266711174189525732493104907492187911286967770409497026114748886986763933021799378694738321555813742630080179767866880871807882964682200988774913367282591755978688419142907068260965289336564594692841769353530960222274033312854537902441561766588309404649108064466950091738914689116376881822173272178208466849267727749620773289009282403009844616482080528216138781443961611657083247406574294486874596016923872581901527833310729430083297619800281002400247106797711676998651437947865439652799852917729866565539167310082376547726945456183711381577540498694697850381207139141646346643688703581227957453786128621217095954192196970921032226234434037918267725559458341115757442728950046284579622254642176669161305295248092981586564902572131237138479557437236470077443019697038918001908840152109376096632937829371379875672222944571195252684059516978683486820579188709128249754170110591035112868010346858297764524158563815737281193311941343382322163549112917146954772495945041125886557692650907940729948239502668731547244396732207407093412155081157218066804947008833161425046357792109879819965750746234817127931863661727775059520117189515821736256633136124663222468896590614553820654393043465832491368468822479044929251109101700316232263757832305749432614473368464137397744033441210472621921929558710255470082780838961167954282844636198062087278637283014346305316078147577250322925616061508685330869349514790284829237454791401059982423728133031712568928569467237833121219513325457526928766811935945895999334679293548468264944861029555996054839868676486168520855887106399406472828923177559326500441880605909955472147196541363627571904013542128822769839842102557858463199185207884995428770319388408435129990645142428961984494922657205566682886820053924905038296027468096920444266294653921592418920568124043197144738739627552503542233989027779537350772630770133076084998579052657537000490716596175844785068790960785183377158236283166864481170695316898958327546734687659273541945314809937644732379093862612139470719694280119480281346794154015154409492986544137938968149496244922452455635593208084593270605380913897244765656012733329470618738786176520220712994436613698433809784461180125016291545397848918910738734356350513127242989731168302691508839245785791042203900453963461108791702659504441723672289057703247433311918792674477996252254614550284667911785441440933310992583378245529702578296442386933917072019517563660277310505923988836624678759685946671377450482231041302835936343105560390052930598136660468081979621299518526283408308112980792710862940953865191297893020337265947272166914977253007969467530225256502511147323637564239496392623544374888671425757229344042751955370959080621357116741035253252783678440215653443979404215239671764045602861185637278870523119963899904598182103156994345292350913664940058615855180866194486274951710487680170242926138606223436958074549100587242253268568451924947716012306668186061262057289890291141167084919789539000217023112748286320131734732977504503234790933782412393022688058485088140102937355460245925126932825678749023486731157829245003964136733247168590342918648010945826895238622807628553527054263001748507645503041785163893263906842580572167611417425629206005311098177358034017144762632618957718901243000574988219437924763590584158666668631832039089794591529048670464989873650488056252391749759366070157092835510163461637435195075207780450961832079379961257641174722436186669487863315454178896787090138340006612931597793595695172203727893191583929783523181773333478374371282291962891446781199205893348714031719002771710374604636419175716789670421843511385002447510358584656596246969687660521404453391229811462859310644413794389705247656470557122680469516187448261179666957191649447555180565551577987804311177245117530488108659485713839930851766687550162337131621014553723411206847990516713977178840041153272911494533801201201960841454064432564982705182822196993231123923758012177595247641032616833759690910170012032371519841908731760339790741991396119120547620291806907991605552780351486618021792826730891812347296839965159115908509161812601409916203587440578441264674459470856781174856946925821039832598004571798013307858284948937782155674166100911191928305923735256800860557029976734703191517067110521788627122084600671541103054796963688793501867122325669686346272207489872373595308633285817604398127382284570819951393033117303341153006376950585483055355184096811139747077378863419414677460364593527980684151123960766640470096813583346888079777277072898573012908295522745980606012345460744198196495367328439114771100920860417860302439670007011097670776908330033969735785269489658974924169804446094477200732153519693144328368428158267997419663716720524393293573481118817019329971274362031119838994014931250952167630178313755511946934636292914597097025912257240530630508068750272067453200686120294414142860083138914089244549689591245679529501217332703393181543125313482103527680497150847044995922411355094860284378096160553152327757885082099803041664889060414964812355781842846907148058828127772491762859346507618802716502678462318566534197507729138287368210655991856915540309905824860679227187491567843238146553896851436001203204588805758180662882050892682402641731259409810754509218056282929146930290467916225342544385941250282420854698383530188468988821249061835192688908296950345983732709038788981918242755246992194615982367636744111970920441938354096965841012407493513465693017904945557654915522200448593310984826285364439063148103643364589727996595230612933350571941286262483855572611149373459500216400282704568678785943700181052510759384521935224516809733807836519105502288759272797000564045583876356984371818788640671468249436914078993188649996231872119419708029110101833263127460803912394610246286442584538329918654159266766367242536623462805321389661038542675859872033723966316333667545759905521132106493445989460842063118311695808540736746545965264474426922753318118076769287254233534817199764619639194039195748441933356287426313010472350150196008233086498159907839535042170186800718859241563220040236146803240620193267373393908463762309064802426931979604361706242523553294402572684314840348307667496077273147896238110414568476049533550647289906599292285675891688041445810918296228033499585853512104572278224357020103836360846834724878178524151329589042849891542915398793055931163660131136604374198768450115192497247712402451358034729852651031667778260305102702330817836786624592871550780891656557682928135004775890647814578638133447929765167025127250225711372373118799543875945892105649846264048536499981869366578507274512496940101970729616934775837859962986633276425814657067443855694023215441956928227324146883167457731925689954464908243925397418791834662078024065792570069769752626324986972058069117165949963378211263833193890968164463716096931885580550450683253170078078643158494041672921447447176225758936326191305365607812227740968709523570497159728992392415284001660312621280737806916467392145273675283682926821668235642309362706262153216825088614441975589866534409355710552447559475525758171836721519934731893026558653328309403926945291645348577843950094744984787484208996077353643641178511634971090275033746067045870887328273400088703640288063894235418981669024560610302214261993106944747486646307308550968000385717391601889853671008320452891138278413995058817649234805328181423705424491769634379662007303603162053343924791106034975368869728473949677014472212443453035978142504588202156959870269177544724084199814780888873211767605768617649827798296752092572378099751986235727671830784164312349490261689848103877272440311879137078154122429803512319131760240836624730957508723069844204088437816187627132876676841102332660272462673928247196204289341789805656967135136891353273325005201316899678555562196399931486396664382589501944440347084687606204082307803946297456442408355440598475505852119996380957285835137414995282453131837907391070033994132393118062463860524768082500036182091561119179914662362868837895978492512790340761838788038128356027061194104351138424836282024095311223918615123159197443313176725587739616360647547961661865122284855398293228586832024833748711923567068953196863570226356612810140737538440057467816721790884533811377563057009976994496318295084552184660450510401948860548251835818369651000524996488817832586312753858444844980090839269670069378616440794423937470403313385154675382355432515982886232068714022945404981751987399927137656099817843693326529895333816152022176685953406727754567637391725651843898487891938930256578872499495556669497059038415092345156785730886006140992642173961240829646913058810690821233999215810591895439463285805943955476566093770448743223738982052454273078393351537696580335036120024474600349030103192599724504821292776785571530043038864939188040238097037006091162933847475339687655292323889518584940203669844956686807154493302982339291329915665848566887838931066649587446986504582534593277307461136042895838818673196669658299072844501819560459229429441017208721602902632047281317209110732282480144509112845705921341690861621464786193994428591503457526139645741541520272434433452561211301188746492522479600717637484037041118420785348194999007467224826045053198819578703725159138734821341354895890756634837335202506012928643849470674216958101516036518377214846686120525804280082134007892936967986110040668695358671855053725601496481639061265783925896370212586328662635266483306571962581130408926252643370707157966775831917958069758886570271976587433128287358399521949313205835918897810169141379930449980305202484819341705615637536388739731633016663494503616976050597223096804766779633548473431665361794840353841648897163257776353797672840338393562521342910814909238079178706188694814731186316338803217306052122075299310520249285282124346216167351625915428954481464096924501974689867723485430367902622955755604372900132992012109582979663710087465013858646078078099526095554009278092444578143324041555497348412362622959088515099568546914594722222389822523406773758894942599280378662196138630519358010455166211564865496881836496158620528002195870269425495352630546055180185816312273891462626477940917034072152048812087134425736098579978744392538636700582476040209331611167671430561834122009319911323200204655838067315246821427127887987643595385569778532250756948451391501175338335712276738093891499792921152990638865143846181016395279681473985126407574846247286505939387891821811372038996832329639091155656133624552113699529438294050328773175515595021233317739804154344647791713774173305618159583041612541296594017682911688409168199398290059370440776975649269126449459393185260563355045854904158168075479101842436471415578246607237949262869658669846781348979325603414302894301021760020845986153206071064004214904901190772240029024575023586833041199320855569850157205989833099018554784936966621138538829617490206860742578383497647245347553248958030563944856995534671482006332502789748813908239123415710184000452172093268755104640815425238070032960092243201609511712923770247126064048615047959422942254042596736376735057524861985874256673422546606206479826245260959672336847779498590108689171582260205415409225487439196807303817620868730554792574907864774633199564224928740275710018006048706337513911446929031877038248455913533682276484351390181373825035136418412030398238056968126339792326344318033746794209411917063083573646206379744659878317376101648090140985680369676465566451357281244749697813335728826442804887708766131496757502868416483103372017545122318823175357728308946460046668034091601762743558791759515645667658071547438956736926781834960455821006009073076313817773980308722338226478937505839413906127797178250711225365567137203449430438696792238853395214015505212668447601570736612820028783690338343280302286922774935031139078509642746763321611866382289804971423818793006382732143455439356483772336379482133725029489211044418308173948337704202318061212721112025487627751916887875504309677157717667196517062858389545865139090560912012952330080189192053327401582712743190060692711175732214207462455703426806920051545344508594328618079791620717712429741826301986506054198037083269480520185785416446234385674508293560779058302305787320865247172761551056069699957111125422038958081443797654316690918647255027905868595350519587468722973211482786392379784195172353593121712155433041795311563735487470095427073465961010720869955809586857558878038268525664108679095036235750931117307839977106186653295704098259322432505810298076447802691086884183094930601394475720316914693572343755005222778261687259574275718876479893714840330992953354034709399999885315160902934417804236021426497627478476765168591337080500215186317434889342724525167789578396467927937078978656729304865350766586256790846379957518542597868116151499555839008783780437787145396474492329574315347900130394851960532864428093222283805844683255543906753472438779118801093292361983256661331115864970769259618208555094576430966698945288883870992569607074737269874619440804412247849799417302910827950383446836958780862290693039316929548998150300611761903047591381785356037489943125261828352002545468866243009346908868647657574434103980046213834787439045896029361429352458407998736991105889296549620103828474790412864222933251960389785484650098787498543008608636259551839867553684534348367571282484243287756690603343552603466464865692274729647332902920015026059459837338188610748417775552035605540059696333838457769707129180561889345721464269633711226759007801488821519674134727784101269953147077935572356339488780797575349802633021118847041210533708246946495243689461669709972423101961544106415554024275785054165752277770661206610175093895152736335761372974239264617667938469384152427448332858581673229887022904884928668774778430815955025257129501800982795755174300116065390021199069979799112840105060874759134697690480673637649083198494914507233992987467634034304031564269358829911936570459914091190762322521771208464439972330551822512029070183212599483654969382738406261888036234265769415681562547463072002283131375792097466886492855573044111344160886581846626796079694808574166064888530979841139105766944018564161269479390154279993282975332110345262243924107694838591750785119756587483199797937994250608912832076729868274307659026637408849433344725684061334112597902539971608673575857134131668959102512841995082326910230138255409807695818824995784689993072535043673338151630162680154885269364013103087949942296980315576596990255378514027454799347788545948261627636795190248283855354520189848955471399521162108929257643223431766920436448910304508084486027958415326287070501080930446495515783958851639497046556237358670932257529517388397806519472684196199869923560314349047962874512109322457835762491324568961290300070295210475737906211259735503441718411708877494588675975622119360198006486045962256419081300089564157170215169356507845809096612866223366400093229338080283297253974227168887510953524707631081251629986366232830567764406176028593471507811355595782094320701571772781895163382696905409943276703268650603280823093931262873486600374443787798725649669824413584846178823901017293787121392248579353300499017308921998420826046609046798754589127133862091017068860987637449856213350835641283429479986194804149812246220748686632411016108848927646776649330757675278156157712663105587139696417937361152711895826609512830525388016111241010372402098206386099327618995041820759621195167167588823872776045295431630742935604255199142848809835957527160358317654307257682103331181133376891835634200430238596161552590874418413908031807382851245514943911906943695465667653526332518001822289557085589413112984140635988655870173213263186583486077771736745374683275040540573662185231835998075171774795013858684013312531895041404517244920331227105227107654878114664552081691619531614017891457168437257419521585334783788592451650290165401351024442260816962065069381539119116407957263791121081301689006939825888329123310649154177626252450199219405948353453056357677557498009790372313110426688891657346942701024116676015864939204651293617548140773926317356578911054502331843082372997304014866699088418316687758846924599515449758367031698278569342636424992247460232034020941496857772785965947685548828220329657654852489705182160870961079917442081259268110462682842747613720152296032739044850088182212692173760490574998114531305174420405761911315995540355805333227908058783578060497473482852718952122282393330655904017727404178262622321468713244149501157570785639961866366743439605361944104524423147342446399131481666340116709993708684541904607985961534460802873887520816483567363355844891313729678385102065747441036816576386157035826665605089165662264968923176739303245953253327254580190574086215067623192212813128740831016327259825412589250642546128740379578512283365457244323676838402885064360854088984670810419154651222622303526210700470970817547187640232666290583621155305625389662056319679239808152147637815192870994148009095323620100759000711988628140332046484358160384362301348611615190094302086281392766024681828125829376171918701770917855566130436084745117922847080022666749364754750820377572494576124328562514776802085041567311603971124072443370387598502759362795664515184414002778592953841686010675896217504982752569860778224106971821572517798345210587033351619343050856459936412050415206397349828952700794610649868658821134170842754940581214836690456889252742180861077015354832761562815814871448735608793523102040221641825745228549779351720388572847395210785424699083402511029258271010484444386572422866342428403001210203820892881121519041879312863814746848676527810675204287588610761574347838662528229227241671442508148861127839074909340937761564301662357659631619337573544341704692019719554839605438667297365583899151553735614106094320012400368369950240450531749008935207403489142948510528715275376327984900551467863371935944630519054732923254065544161639188854896941637552658460515143081014200597578949579240176200181376396004210013252051184361465155367837600859570888787007144499641939432137576475993106933491123800063832027183636319085658335100325216587413529749541764735623239966442639002107606471296845555541702418260261094702948309911577401097955931261498654227914956439977740014600768988725708088366936063884706942582095943513675807934193262020113802293778233515498155310069822633425925571424999751522710232150572174627548674696235434814268007449279905609633977313271065502142140838687455754368421822916828578913129091285866162429098282280342378216853727179904110150794065589024751857514319794944804006436162900379167505356113537603909093286074723124640909271359882871296807496256389449557850673483730695347160426190848802272658335991348917905439920382911344325766943610825874670683893574308968278972206324607983602643445430884640851438949614628461193240001564145697636182833914938854975821406330207871715587953102172002827142504896744772546009253106566371568521714505507092228300541628917369570413738661287703720833858043832576500743329739532190039183890177829768196541368057426308586099209839275541553139725173538015524090551280405470533473400158879471861199734515189557914507775383526860496119551294654225613202614383297182674472916876834783596728436016291165785155763137859204156282819760637777548040028199089457201030065669053434175132943526060137185616740792208719402852186995456774007335715050841228088750895479518438543063225522893407693066721873538381132824561872018088075615931363123433426287452642737477925069920065382510668246711907105382217601868050252741853122479204188058507680907519182407996756158806395405973757154213763635459919152429316788519338420747929037662082136235041497235127920578185717043869584195219016543675424254949309233445893434018289931470131557446049348395565471690186451079843124431990694435514858044027799054315585628948510153393056069588430632949162006028987142079502064137771421242722319726055938045537378719680511020815635771848097540512651696947729734456058613096669721415549372411392385421314737039653934353920069082065023869300325349046030340287265679604964908392506570907742695871845027493919682089615004993794434920586255731024854650079796490310530437151584525061559513957534397988043120323297501779969806430980178863377413772874406715923818578584373306003196699615821343287711368093372583636441236527734867279070052296106816327263202022034017579501430979259609331537361789081682719828139881475209303398327320510822361346763138950256744505208259495687256269015127065072571731511753738642712812958709430775340070153404213257214961619500976217924187944722638621737215920333741538818019395371020891491667441624642253472117158593862402336864240023579158772530918440359558803049410248127923427760877237136726972504557339806361342537022175078014342479944648117465636686890521241742797211844675703880194945396020279747337714018295603040117840798048156808687939298540718912092300632416493456034853230614677401069632900897049653752367889994753928730820181938991344456843627725081884869106460342222032182414886705390980410743526272924833134649217975762082426719804624478301306393688158485907551863957671282507976995909360065928292261589241940270061491373813733221311591644133718361079458049583632724655068952862572939618929166030381601318745576019917661340767717014178880342980042988589445347712432255099876522408666394100803801536471012763857613906162902038063087463771000799439733138566883925828891407680590733852963591846722462288894676681716329378638937988647551236584848009286024604856978280528427008931668250625096377483464010225406709472863208878347121822830937146447687219491086151753503421166852392684002537992530904444321236239645349691037843483775445938604508497871308060474712508968461303071419370183249096158229342818015297620177463712968956218931170328993709442984429661757772207789328761547896276864185087454919089134666813552860737134459987025315335052050580281507128864613284980436144301097713049207468212735500853163135900528843488027036924806025738023664113457934783321362205538641235506459573893471345649145951460351801786169594948146787883527080260702878210658659913396326554732859036011322254039095760468113891351893932004735838490410848029220957232266196750663188846072754831260169808254405588345180535929864796915424502182353009336393332975156617827364885481096263538329523068074904973389530378688348861085950057229521229201842492491847828167232759826149729770323035706787430535979305089233734205595717432438064279915344147433314393833168210351011932198975885089095108856813547769529532206107264271207488974933636971484601259528955231482685167285838851284523941431515146485524364730737377961323018528584657236947354249074053827079382778183839679362244548689364766245650052702341757439660648880527251547464751008457169289796827345616099203718389862634586277848687347016533952406574304895313823715842947440565516552978456263691621060934959924537047390715264453188173345040915742985475629016121253767792966382631036490900782304225805499213385729373752464054507739719047207575343104258392311142461746040504841757345527430091345460388346121172005409674917924101545475923037168070001460610362787418302240777681261154814877188100688705077960424474755995701817912524975688076848726436708736398056785551725371683156911099718841914709732275968466987585836850071714736980086938758369716911096372432403093113165612377785491852042560519750485692630656757327348665448776076725671251626213210123843841022240044248841162716139545068277227596983142660740225716487066045701133113728815719343063052643311208629855252410487487274394302295369814603076118495463759992890309822587333966500247202458316352957421256436318898479977724512426661205423624999957140684752819444597502296466449332336455864259349897179847635688532702540955277875712957635577571465947629572925976178535994647092859201927559905874435439471841492304821496929112368433364229333555499208040181261029968188765281849852502433837792039188116724939762624185230725517539709438635382592475622757853316881899773566711532278092587973828724719602442620448735678337591830085004978181954706686656255346553253877617564348900734246296021943672594217732514416919797486421951226082700585500591010026778094580287514227856487303604402441197454357144606562298639634374870766474440194512989168626271851901479230434772575119848468089030744084928462917146125549052491017685148184099578721828117985323812636318133848792708123668050749380955984960532781820154920873805818697904436454130653247662881105857414143125935954024309867199152997764148845791407902475080538089747173771647541688539231960959091797336229192621888508681062299094630850274854758312878558403976462713415145017244546585946157307640796536767224475704428880699812320302892960780795431245907608271688672535258832900855152973327225208215381626981371750908043617425410790305230863972489894896394740010140728954285901340749070057471023480914257251572630566998076531828657891410838826035109372049904621158741177054480502216563807685839071144445078640059727079575421654273121913839287812650465939600449707975994353742211886007497732830350344136191524591007809729089325095234904755123168191186738012405272778675149109911523547736714480005039791843355782267222319461626124424554391479160128380483977202804484009355859493478318261473775490857756164643054172794712292908143033191067967803781317989565956929288282757333187664917460157312002040975229810998408545416803684318964075834657781232293584742172536814114870190953705924623669213939949296155425726704986867611446159759734995711792943395748934590755011094468330540798156754836215494763524190925264562729658879425124500324785615446421346888362840697735617143232811694310508877523220280639811284445072707101749506232863608016335312841557061334109884295796195620110484882455871636914083344601748185277356421336395531234613070417641102023666128302415963570214697031112809664119808222078842495780100700304125047703804097858509309541362394942407240238346645949266033907546150252840293579332895907385919288542537674843015163627193038790828624684752979705964395954119730248282487245826742438354460397661506830181807244724873915223988139800841426378289348205832885133607435699225728288209804619146705661801345536761489091346061417128559067956008283613432007009349302593070732780188497561134939681862855477114374878059370796243897444456971687521771831673350792652224713249538715167795443080019325444397893729760969350693684251748818091507366354552741555834394786942569039018916061295413441603243543607191327143996259715053014988014284299532064166883894374374948061821968056360428048496582858947614436508911972611656158981049223214645425152099130610392447179467471423178561216802094950306289266499148413940046121071513857589342982840817052297826454301556816992703354659489551445696226241374889869896957740050950189137762133853686697862982635511848446715138340790478374495463909272037805982501264706385601960751408281031543083162638901906669556314039181831043335609952501931771477972500497067379750053472435963820700631349466948198195752944087761591657956250029213623644052017857785629535757811567434812735057974568886962220351707731577078618149940493646408422589134382682192913776792717234769390017952225930770049401305139492880554645938428506132158776994602580429201358373217898022723045906334899187697023788211758739224373217474904723214745528396001640968931782012812574013103439316566374710532857262933640708468275425409362867407845784868004411877867839739174858891799152090333167344286127221476755197921461769700196133542960479884215864159308432553472251559895820175341724830311635565961026093007015005200334760690497223431568502616336993318695828340026892119583531999026923468258206777806126970495023323416189229944123573403545251166135062884306561017677788480251345968940657549454396745197843401003092077209094565507735590745821180120069547387570682834721184468606532936642337484454627456133698838803117841890426385239087837665991421259385120650757759199342349688504008345911031157334114900469934166377362374291299297843405984888939116953255724763792600452449364562542963612473359368988607878211331885559461530232620547236519139042624694369340901215017880939001005897934853578836516740349632469143860780318558091572200488911183809184141343816939440291535170888838099665547224035057100044327927857518867428674585401651258227212322458601392004023613732493418011875630488995983643856548492024222306490234876870432265895742218216134369635817413447384577736835706361593747440339524258517079045385892537348006291903627526791022313802262454692055756644680236929565976758204577715950085583383018908098363093357364247094002674188994124541571649334820055142849484310177954539056834813959821813386933278721249100435831376707939896701465846246863534382432684156758261137063646983288358559812371294258448692602318925802864338239984767671053525812897736971991294559472002326747140348569308953999488634560772256182645545054666437690718746078950888241743549404080245197175131987102675676969202814908882440139491262942718397309451755905680087797895273207752344896338244668165281316847788014115703115124324931791032502640757196039348132452339377814092867130655378016130053264758577742981700772149500075688162246808486419864190121698347368405073924549711922197759725052583006755165503263685242162068367483421145663861082602674997933366088914145845881799698120653928483129140042491345297412066956869625814443461855152993461456696925014259557236935685809213701836739683896564621364755480785332139566060484843394872032223581641151155410686980848745923795765460319295270031399590477920398077824707691963846180435184817625000733319500010219794447342323606527959495881208565757415345564106522183524198533736053016819514292317375463245337345946075631943740064227439666975998606431984261416337485779223025569041223071258931868229852424308645613028779684142002952030553409872572256191644997769650892898424006755794002719705579515130508723876613689735715146031128193632273804216508096041698148405200381429378497704455015649776839891500025749058970152637852419017450959927098706280350673933834398821484309904219987254356639296502955898970410078012346439789218534656434540197483321558219060210978856082317135649565718527089776121030158316021568145052014726112365941092790487699682811620646599212210761407953990954423046535609275707129630916629302930809831552091671778542687890158320668267676586111996267083684521043233003432951495370676091823218783472135601425724491721339347158846045028980528977006056366003067021981569659105284192604813831709282951219529418787244998051698603427186088978849562684254459298688852431946675624695673982742698081044256437234277689728390347254976895835079886897874844140434735133634223766404013918615478620037899864255795345284869510095127286515272967680919501777029236449498701912517711424366876881033748456956942249148378938802001837608730332550581101579409810314934837713959741341100778010213025700290514790258334975238747716298360563367673057941456031942203329024806826757705343159878867671859537183989679659506287953773157652366156928160837587780560451572656364667201579741996337271300383487193867628515550715724086319284929047544682531572608740233495662887578848296147923703573156426543413928942987712670460792332123991462967986846031125229649425479803150686413048470297924005895419613204489255883311805646607210408146946083449630486163141475207830831688448491626948214999108742610392713770716211583643897431735890846076732659242530180728873517081989968959577440338159907529441747163841493299708691264163799109602881142652147749794327005650825422265929262560971960257098093772503577139787849270287427318290999499597307645470515486098143342626865401616149314893283980758370715260827879653911145209255720029996647791726227202289280494712065925909879012722214576406304564077638024139040051389676443068977587155500510649351575898395411944850896039057679784347894069778015586262553141870307941728398125006999463260374427989810631990939769530464061070812100120981097537810937182157801083391209091487784170364884396358288188477795466355872787730491018489282248064363263425486681907795969106782342909189891795917509674750298322721835291404258239276196565435183506967227949650817725969796663580112223547172769899118215361147678797511737305059473622149102288576283060841674072413533852613306109282091049608622674201092675604085691557030879780134847607078062565543526281024662983611552316113285901863126208681132239344339206402695247708086366171472163434876418403549944197473467108771704565560651734919228171477905044894875645974098753036542865978628222549672652767840763290993129066918765351091954479308092019761774173305817677705636535825328806774808916333886346640802531338584030960884555142289711558769140963116994686741372023989394939097271461065430010075248883054222968300835932148653770235124945602869890688142414893719903835571862349835482295900576125699680666133388576423937985305510525574466471726151223960316444564765070970529951671003772151214724148399604906445768287346396540713661562584402298659181471399704416586569458631302639707841180882970131465714635157166029400325194232824309741457627158233129505574713386119208013711538695916642434771601889090480539821728700650632330885074709987367116517901335155424736965434140866102202140874748572666587763124232564781353706974739068728166182783531968519341735253108656070098485616362458108521515173225282204582027605787276097009557660950292289281332457597112514294998084507973233267837095665672421573948822129631583833210756569017786218535804754846860869887805372419886272100414518633316588205280515466315150045025609214749923814092954891216143014601083254708087198855866405624659744900503954256134575375346973430644716517431693264573632087794834323091213401469520757732478598965398185778961599701697423366634206048931324350959761058516077995012561169693599601025927738024138962873703700135524270604279438886847555023407070194574202728671058154943330123340382462214298788661374769738826985023577716218062400729587626271325137490523071468875383066542550690268110577169321588664398161887963596929592674336525761767587930326952196582438633813184709144433508398368616235910897446116060923563765984535483965739640335952197750804155391836544463377067615326408143437010703872925370194625629420186094564351399215410917070927162254716569151809362004089271920820227130924113933531059537032895639286897500769005251824648705955783846198057709945459630143527643099285303119244055853963632265305299694599279261101431513562725276926709718901497913158446527671566548638171777092557675995268444418017761197620581474094543666337264591154352101336719333338428766685044550466101299531781670126087929824109424506059708138953955769250315494422232189996580071367719021539099735007674850612080460581875763783500615508029734871843644925115951584710904583563589913602231358929816112702945527122917850772709573468507758772384572679368907451515987393970942551741907658483909355877406747134339389057826152518033225087560089165158117344049290625641577252698071987189113872351061458575280218694593407860515732567318659891314793880772326225732978365749431565534477762832222566019263056211541969599875945687143862902449469361909876348464117830085581545916469880772651747860680365504981222404698504329578148219887262087817660575544724443892054356120496867660556728666313353112518424559723107702672871757414161388784746401861537535285003420273998397610933734890147922669351090509783851336238223821811893271996275222422642426308696201255176181321500008986090116940767710075453377898786107672321355952449821022027115791740306690787344379574799190990590852818901551338715995609302700706266033538855061370414094427776936525333778796602746500095067620847342962511734434487981267850919870405410749204641872622434832129764808512914777736803443232868011981215558268150051512939117975949484511089448071125520102557073867888478714474496850089245227808208599961545696163782936928718989867237625452604874894598619783828829911403566671272993588073510092398809213131188576953954745403742076162954447790952824996725742051578588932189205392537369425886252593561039773040616677600906195793787995688516761896435508671874312383758104575470529017029721870473721259473973899956384677426998469522308796025626349324116296697210351169862836976278174937287029232328395083844473881901058304182120775658156771043103633621250602077490198008117848144302778085778465158324520877719986501922560186129697123583042498291945507252475520493149427698517156826390907706851178412243915449321749880551416407111080525684401506875159746551197069714475431628566713027426805358319764668800898832807150373355570437911215121956695555161500959411097784035409623894662044623587517654875255071016417984634501570605121568336870605291148710677972282550030199268620752309590046616899876440002363426924174258292867367816069823761812763377062328799599941575599098853869234257955907461672325779387381882759638134753042319550536859386960267462744405605418154509403052881590242293935883846113472440191997478219060777198829387086229535341584585733274601926232062613260930190737974762762053653253843414852151729843343598616577524523241144435864243487120458098582953717409375272907986283588499063606216534037275538080137137041535407972098294049809206176844063283319563172480222435089002621373271703418444219113961058439803636059170108645550576861146575706661092363210489370972482899190292230258273406475771842123807557446361909062746260769697295215443961541589436199928084124893005404061316721318975091367296935547662393028159787340066552898329263293584141470976424295138103441410566452040833627925511480318082662826633467604100432897611525178325682855152745473963995041858999607834439884011188521921990973829161901281157472073434741713074704307607580902185115583541372139777813773306303663201940772532629528387575247280902496487669746688194739649928821920983939713005274752928439285122669771975871168137244244265363182873088609909216107497698327748359670895673921020721437949020941630556596762296671310992770488870592285170273681204421163370020207756577794360685033151886081550465037610753812981165609480833203649200863071181965874304944494622927130773678024205186569975698723872964880844241960179851170684435724785316932432543206347033448137177068531813936651797163054700162247215294898854355312008379994766374714696406729984348719925001304641888325415243526155590780926223947293379530701924607361557639024765477273994178835062281315374943241314214814223265393685297674964917430993958329295385032642747536237394061986372446692493911613515483834592759542634429110705149614762037439216320804317150458203127759705584970395788854903484658963830045411732599771294525228292890878917314349353882422899108994057723540111430000809112751271957366739279329315659556970860538765178306600741884320033248907948817126988940882736501307689071480791794781996002580474459425006764851352213382026546294658184810923655234369750516511617244383370256311264322105013364134120196130605112579310442504325198456310402445189614319847660936649413366841782751226551804943380641760804488903089838022645749437315476053540076737362283375319828750878801595823268229082794766610283249915812058183189317199748943779170267765867579542749872904301585519485350004191467053404534870325595435106995716813677788846954675511589913372592836800339114875315975735305783756662619121973410554797513124524662032133386442206753413297902967128541651974372220037091137334825560082558149497223690104306482263905897856541686242933062556777527467458937471693987836280562984761995761058407316568884482733261915975326526297721869842739315848655865879475654702223001777481360078073620961486109342166725525867035886115967878492468627267247939792083645411501959535885300178426920618507989444336604299455202818417938917697636260899721631872368377787939702405313872302667866581532432563210225417537465486192412473408823273197699760511733494422395926164418288735776980845617561366397087267935798720621483684529197180149171631016457820637299310442892283256610673913059934198246123615334342325026160937137764322776212094446672613377542897512071144334976470256726005311771338252839625594137479367700793155097609570508781995469177901864700562180833895840927111087975796091432624846752535148212326843400993049233306395747593442116273753636044552786455981120798041402256602533315201645604590197179939792047652692185916573082304644499213798427806734658933302147915441298189923726077987921763144309156932743477307663288787110461917875598734323779356133709926016800705123285165734687171693173955632592747332359766384658297584808001020122098500746007773412806814461477290741545730729300320622865710034706446133261737883220304047293618588432529734901109657055283731991599506167751008428877185340191908107941165368736050270955387730286124737255134290074885837959282251603983169348475627232741761792009538375012330800280980119947430895563632078923064874365370979323591199953392649582696150354933216278631530067316716161326504732243876456791017493339039051272254707011492125835638900900267531228378391218081511911976042866522336281777307084709658911633696918251174775489932602670753540520957709391636469427653219173533240053321332034242461458084777174592011852180280354762463305739144313586959837775461572817351085721161458839542178532195638294168472144686512799620589197956386970619368097977692375839954234968383675781677898893989282003770531686607883242842545923918850986154075954309268291824043880355091438603532720299107984708075193838037885782860850960915353097049574194801642610254820521325255109718447811542698951802262420705328323250497695107320585737815882586556251288361514623034361178142499329050987394594837857146638339762742633603899876702741342089733152033243186972503457586887131222194395014806936723510248679843960558470038787496432103028429032130920943607937177115310715154110033287055431903892390757874137561111165189147409968735907857858263348561453742740879834018546649067006973579177268318068148759349362254628235261943043079430344604976749943824574210900840154293502828644730534666813713139492479646072698793849429914808677249189857146282931475825068822396123798235577811600447252930460935085748497830109580820849424952536808150023911668184754289644993959447727347520931427859662358120550588982263939343269540022662595255458499929288546332568296495408786675000435146783194683785260845751350752888336183066633886574689531815258427692114258117826940953880325353733871606788840725030986259450039667301872062323109921227696015410807533446365188964873817397703311211943612571658127458088298181712186634426731423483549722139064233298337965160120759360679340561473991433294111666991870412591144002427134620829388856000283840783240652350313412277689610452270332608882100649850900716371951778545301238835889326298166198969324727336457141212354610443129654474081122345250338080906729028238100942516858031178098299594897293919894169059489560326288364963226857417384735938289365344824818593442525636577888466727050074541252743505307873365175651930522424824386709313565402970474886309817196096616774542960074837856915417055618885771925765157345455981533940342359445490146656792967853401055320813025729186833416422405191705754674599329624554000747512296282804704709077610887060785017004254544546939091914329461510305874922291275424526608663338157996613039906697811459076124519234681735461899423961198635270252439629090866647307884155154155485157787034666767990723883331249454154933346114717410334975186338278891403287660286093167124733558771967604029412272556185654940495466754934009158704455198145934876403294530140217576845858738612729210585433989266895489179962702433096413515617126335614479747973978118823219847347285277719279446596167549883107119999996238423734881726383697535804400226840047196521848699490155521800339815968215251982100239318115245006013352869416815277616871875102588240785251187379523034804673840903040368576312715117848059336024240951672027135034541572312511420345139462167281289038584594825878333255080817343108695480538087668329360634031160253080019390531244470877568119448975705636340169577790687277689522528479105701531665205547523881864595583452711075632335020653724818936490338875363369795688151556270494524737808698928586623627759869579717936378246986605672113004498299127962134115551707668828249525982361459408060419303394076653227013176433851536760310221602753728575054643179131133177371378789929986615603409398116476441899328416319608781941824245841759883224651024232797590292269119924950878029589225065172387227053213683604723337318506371204593951268684243684336971355831195843332808390704039566691537764018373258685571199910239243169958093649220434900955012085792191993521348849029430558260979628025973075254694936854814611219579636008355685496491987975272683027802299636820235283329995182212921318844294354658378469130342649786240714376714020684892197391126260412122483359233855960921719834363664839261337602946180677802377492107742356743357110247944372346857991207064919245439148050971244315676418044089830357357024493277361735368153047856783266452466676130873823540682037273790802374211387604384179961889360713973924072270532113279860919800404492045347343364374524157650479666938780649012846814781747012186918491340436006403069832041229347543165605836153935910405133643248534270460891496261581455767905180174087971540492397924608890063205913941686371729361360394930036213690139588514732371092574047660140058757609378803029946055543224666017995964156614059627370415408289218083923007510859925102361386346672350700505953368220766123643467666150531585463056704475095093004264778757002170881836582879565981177063520534638301342009307446474209460249430812597819372323267229097575065724106663175288050467720305637109746307354005744449230080192283930965687522629760616821212031602483179318645488257916040923405472882100567211155825507657860028709963824147056016385712912506782680287495938553071721065768882964073709367603350159064952416934662378974551593625540088041309210606313485521215927652863260064151224827230139807773708869304507552822724176709823694042562145946660446624037603817641710005984172396304533947421583411937182591666929234620885880998192397473781134877104679441212993338082087162668295194733857078601851964763811287149710933864703469645231939696367010482592276070207551427766935642772775768480317883269637171482802157786213703342546948990054369433940474091356340582556253325543156844527544562758302255948574616799792857533223821443637635947565383661682890817499494648230324883051903959733164182898392660992062880729988157577594457114816349104097817711540512395640997536913662189129050615377379635219608182759179360113263409892868360763619221389515702955660489996021956027368103592751694075527941731356903200259025614436065934676789702102616680916032235862675997523584917940024956226695632523706463556782902924775312429197662785007444681535894821272607723858012774582921950780925797959279949111315806235654314468986595947058800879349096721760667376703076238503534233105398682242338326070051911521610081658778126975730181760275334371939686860790887475290313050005677913715691072182428350732723795693430683119648247333232610131089264745551898212670013658702191585638836400519654430560536442807748081446632790544821885912574867721489205453382056392774430442289581083512806645050437973653068344617467801916635241616808341770028787336138747535883802368319445729335729313078535673324004160882048399662693622272363349589517158049974137822147926668602692459879613077745576544817245274495639164670392710826112834115693669062976122563930561731582636725351754016922365478626576863881710390497020411426019342198904767855345394949440137639533031153564981963763893070243631079146910073811463800745332029819334355742453917919938894516425475074772814419061307315413305742396042828608999422679681084575081556608604915123159621134558888849486225877550876986722868851175268157706096204113264063263974267937569099020462534960094432369545026745486304730272262108631547387598839198325632113082298380439499057951809671326008418621844388650305404478088908164328711311379303738316205048327596855884517727635648796336437905641707236714236502465889529743155048187686863963624541399403669827195917741952590342558879642167334089704296854468435492543342481399654680753977702955623641424035143884481770294949302055774038421282767804471373218316827248910711288397650604846814492988308539359059470308178266231683714145418126436407657266915845530997903242390127834754730920908502519765592465381673374423315282529376837558272946143558413857924568086218078888657546927436302349230289376683627277828572330056169796737999462581311851468608997900616453647477350675697626574660261342055819771949032324963240483657304125329967965427174347072295047168875928542237481744298367549964744067189400977772727907387408914462642929201726585616942477836229677573904499473811369132737435693696368732882256658125707391663995004903916537766365897577024755206498484476440397501302239321949360576867214631635220586217341155065156181984515208999790386063615814366542702713342598788102948835809468133403649826449249055255889947825319811740632406516310793891621736609266841025385930700409384144710154227479987071419387509826556383374400825980653410379505993621875767627416335268428014055289702944830531140687242177997544962907437695573156809330101474918883561246035219884588036735747185944165296232918666772534812498383176319996083675764560533528040126558018672364389037132522809941437135062565196599744655154891467865140044764331579864410768829406386767896989316998835108469430774939714395946407612232768646789018941885092692937845808407297644103201924062308706735101606475617076037579541755052654236955647220427179581073528397249881898471550323118727720020296119343531740686316349003939705262217144194454201320990231126562887653166652517243027899809839528083053671969581845082985430355014340294611545032894850391664877465955490275123977765477945649380208593126079838893589683785458757926673097537083477617250955305516019506488305557994611447871314106734013426516102102434139870228989535099068419592661036783306014850545500333497336120277825072994053751757844026234985975372660400550685630752433948941014249747708256972968737296770126957643481210987658006099044497075422212158224177807390976508548466756631345656161250795715832699568081513417300172296880123676183652954997630320315577600868718529497829925073406342481771490089963814189334156064071024867755594868491065911410977104414266664380376898470564386634281737898199030899886708538249835252418826529436332931967271811283991613415021419011096857618500011052825219129874278177338886141167485009184158157845957342003055392287532330888715372103446539314952987815705462896908437065970093628587918381295494316203989726028731928528618460996828568106943666503938661950889039895020349400574037880276403866523814741927049406070817775991008410186880042447175029852641316876970249227666007838701440490467403865631176826827371209581824205419690217141077905165546435857978921710058210419868433630407178638421124190447175583844003493409263973824962501987451014287616439960781792380700326644107239320537000474083095595103285042950499115895928323373702941031890540830284336409371420028515473911583606702053456862580594959617173725341644771932525843351115446970002483382202129083667717855196953098308663150604082644480014937475978424470482571396254999948057546549862079989621256471945294906605985608026676533064985846489929005639968681942214870915989099878472429924786205147986256767474056094471758868781406871562846105326942559146389140170307749683041850171100769764047528769462182246524262934712532474833643326497735323454649464367135013635309162135982926248768442385737540742627415877908623316210446247129828271523787079653806821636796565070240815088243711637213521909774031568341285156862534987066446561004977911806238598628917096375747736688515461283248161524404018100823942933223097242690737312966221178176706390424585768614606507933434785076323394960041751448350367572901615314656480762458835134053271480417267737518690613051696400139744037432448518453267366288250150858964602766703521465554335038308178031745486035490410416471507067077568086822141860111178978038922315441603076682775562546341770977058883171617416045576249379133614359034015562492895897007230581184206966094854335181885957787533498334592725745040145869279693409630680938545824010840237416218914204614440862022513127877025442756125081682670155929102393062836095784551825664984636614204142318705799012336271202261262220924507415382635554466176963587902028069541225658720734315178658905332727451185496180468176447441416375427437774015361348644425151941608779293407505506216143148600219545758763291191738553294436535336290650779725928467221534196793115476578563381702496584269463878286829702447810975817350975301667697201838408613195140454052832289811426166172203033439555447937110491399958314301261642971348633645477697862480995620561179580908850452890435823761059083495656771373564997219106089992727910013450474065035519572552411391698327849683624474190058798337163471870666311908651716999014303283709821557377920962943708158248861918654696584009558097956003171005415644022788312447898984642502360148124993438160965143217603129294447194168907286228113666397046252412512093825359382531914631551296746440842903466151110955305501382599171521700907577627622559173355026934654173895790186219228302486259362040658421848908432508174948666218907064615839084554429654543409454261573410005714197878288418464400229983354845452178831175552505794715703780158045455346308250010958404605795358467111631676316495003887105309030969381513925773302328697354438382751210788746624200321407859280488215214747808054719727003796077717225150863640032407886646794629378527151061682938832974055440034858801676876928852002587843121054472806854306713571123753894743947559135842892315939601711284049001231463625335950189083226252248729468058079391298611166418517372102091978753358660390425039711616823472718400739819834939021940961186492602416167848298604174155327631008353660146169366418900868500262455810543416908431444814380235943835153769351670391350143295304040905789877419351593973898373693270290245899918087056367425096813408226301915027617100544258093698075297198524064362316067545733568560501993599020426496155521161001050913816742297625089358189154300424674853444883493081784462474505454134353151224719903850971041712623131072155328058402997100608443167158838786528368674451040195924625914405140906608159383502913535176754750387454717695957032717073430193748423567286518395760584271620712256657601513135739448382335622516067291999422896005896858343711406432365172347253790471590157040073887085911878670352157826819114761031372130135567833463172151628582062356185708113924769784031207913600304034300169759816781536383195512943618898158190105497101623559003625131461929914187661472406915557151611030485284152738324515818624375802841170735011153646243253536385182708837415554042332514404182111484578350267774229444875760712673795756085525386042081290794997402275753406329313220353625178084641939555727957173474436626233134142693516315309651455565267126696359683283543345044504562345892051242520806284468855950014845638775951211769025963829184103040276442638589350019475666423159259790228202471181895102486765514055765588085242594096934976491443728270196734108537724952428218052918491292423046773904842641596179658066568360155869484919736834196183071146546020363844031177605187949669147861105707574645702205811003468317686650220409014095746602760172394791150237823070381668038632154240224299178698823715394611356938338477045008359597767977814846011279761828287808964108967210007866731591143923037194284524097351019853797112725915809037569527255633387469108564971321802566652910863628892278191940047986155602584936668293763722356577896655140308881734925344628093807299451717737998865200696996023586677818668530549468327760756148661370457776825138448513185436967593667962178682561411278589437081027363598774522652371790808091083423639250863789859917051087717314649785015760943179359361217549632635152017486872696947130972073268867426566847173171989220613536414080519830636707078809822972417189880952491324891362432491765555617475054351528822102202114036787093836672926855111762229798506152333624943395426109615883354826144999824380448496155974939656107601282530017408001123597443301370051120054676766691656684676814112534414789479922646600245264959080078250512341257107628669966920592600250592400126708693414526714233722409305557608513067445219218239994432303052954015908392504136123716004065236759082731416884822434787919864357574645145753992050385576112719154674543978172536767380871660343598342818382702601297402321537194045464374161728695290148448411735359023626499897291295757901366655240403007307480987773962002452082661226602750438807243628866722074286421261771759798748503987183531379015624727567919879572394264431273745044677614558459073433799726360518927056600070619530601794135922109554589212141361788436371188308979467605823771494600070534221664172240274702937685424748927041987671544645291022292891393269275919762582964869805365516150078679083414289363271877907985832600544109411326095393671531506798041812367953888521597599574176872427106633963977503472844047174292560138473771048360891612515505117315878785276821511747213689628323506038982690737426274725510093684766820681054937047667636428312004193278938980617592747001716002167430228567767556613790941093129822584205349910667112848350984267341096209916775507479315496005562029290990247551556197530726634653750493913722963447715810482725855228456408636093466584589728995525186753064894667150823525030191661415549705363118834782703445378435933397083446948331576702804758997784353283092726371322056845862120460948042305725265188732579061073897516151244883705085140874867159922219526843118258106843426870952112501805063743464037048977992025141105877359647299983599014328754776230467976056835186272307991801957676287723924571393825188941619709524563379031656774852962858440994176832981467047052875173792650804346330649651046313501344374563858967343550567402390913048007664122350194688352789642625967558050405769972911734662546792057788224838086206282996357029461756559074803636048632533357194824930626047325517943608181499230235620071041848957535331485991320786153173405812685305084314904280608086744132713727836791552001322726172419128744018642284317344292270764907031300668434127977861609225560144070148383504665183828084057065554530409158927155082723976438717178938894518249876260579714393121184248589221311387472875309813652058007206127098755387130486614943644318378755412072458508426657115909444903468101428080599241008156025699688487253627740086635647917372223951016628480887466343510105477515718884934333302009188855347611431130094286536894912229030965150163724986204387650167500516130122029199748172086616648183480703605392844314702862479153961574419609699459068142822517524707483437006821334812377702890818115609422840266125198050688091710767987257091550830853759014110347116760047890618110178691183418854886306554039944711529240499744185194435117660554939442210543808709049413173886761931866314205367750915746263919662225945551739032436974764196905175941393174688160193489623832541668084789266908143636839448251411399496566875847818057676731476179836220336607386003324561689436242818721430692622215358948509846549366647614260160345968519214490181807745457247089695715885027845040163519510575245790006014283315520437892991756826444628024504020743252481077684048987793255663700566310031178267469460019558955507504947304058346467218675858219962158748597335555456353062100097003608126551571075422191716175611758716214382669576537947580538684871611608414296965140433017859024934371631415978032351208701218964994751726641527302638577521172241745607448776279188865981960485693230173978768418643476055015804373392067463696797539414838339337473737457609283290238640448303606924589505573175225389907228853263475400173673848990461667094373838271350580493045895206136485713884680693106803649131273501134346219606746799718622583535420042607412219282354028707066128120475834682441482476009423050876645734855355959796954697265262992635432105978447032390598105208545461968040139262743006440697659519163071921180520195229505534357857996117935889910395001637964977477524938225367812347436847437945160658528620374928933022822172714371119883345786007285396195976656816862506908061209916061649984866183442411970165816185617844186610074034966447797399192614168568490004025855232895342671866981307283673469165936063163873485290210453003728769511082047912904840627000275329033495311403013276336876205424012361889993143653736971136886066601619178965376791055792046036299438920460977145589041693560869223286111799426124002658667223258579569502429567958076343862251594721492659947373078651288648977753484932852379937859716547742627882347156920134223705946958778027728291203550477970145309613376305318164471226344549565419272317982305159061485496867795943948060874555643808199291857479444886900742341801145849008127346270015890494493246705017300357745494771477272717792392868771788646016525190361271377261749971830670781281854441595110113193128542814329003322449917204272396951272803842970333846294390175264046595635956375491111130413420995751172393192278844052862610213290764994622379011655950778392503060310890539072435657794623541811162049809966298876592453656213063346437428876852667140037415585558129308845745915965428081866797862795502888794992202782426756215734809453874991731310129582406692777954522845942710904424240623596666993790565741960299585815597189412946411919533085227264308093051912281024787381578181388577885649132057863044939313976670317997616472965751423715431009026287251095419417340078972489598170652823931292289694051739602919561273519623685608517860288721578457404309110130393084208088665070370552388057782926079394688105929835945773300760558231022965223316480828991112730773906924852340170136976626937000093878563077810562202641547558971806356542147741031341801916561962774690880510000544393614132674638150209077786814782928872310342473923995213318107706739293644512000716567613481820390581128224572998298140483741330873466897115081187696665550692633805730735702634473073709663350309643289706213230786388987149453518947915778123587723688933444960848405536953932362307007647367395276208651640828105032395092041111272738174584382099161396269087731852637450066581881233049829253590316373515323557485842140050305025658090330443318800536139728950241677628792947278477127808329634496522793790693637264437307367581559035638012846036176527769335058756473339322369829508820015075489404261407888127412904128324598563934005745839433267144697885419331283152464144584700329624182008858503186856832215768956382825144383202951449240247695721991690971355704225584608447038339091225829265389198785453653787207113423707329677876747461672653138881816993261361912382644567008589066141745823497591231429126551575438110664240959458163079631433591323778790474689002159599581420615407324657107756309313704072662276737770602678898904501711144985875657716859825832840923212088171001615376003591832125179511522596839554358122412946594344160489369915850549309786162901399998506935218982060808105706433599198013018285382661328452123927899438333658368911435622457501094140463581599792911524855861171290237933934524054698143809034377450209207674481809876382096072982639302138154370262308051307101521652995478034027734481110956303399562164410074756571256538544230846702609320066535902776145508909778683294034198137118248975222755962121023816283057325956966375647172433913994376928559430111055848881953763308866935284814489671565289597234308376604374563686427781682840097341413256089948411802821623980620074591668149052750242189572164668517161165958485328386810669263796992258173637087174525498315784267614780167838303948666934020561980953775545873323676643571736226152443321904308768357661537484716871293918879012643545526498757425399928530126868907965508752659088400536117945339672743934446303996824759674752003406520323462453788853188374139623425293569815196664868275402270844767611815643512655507071664312308832380575918161763279553991383412511780302465156268125343922552433530295415860343063687005686189619620970741439029156619595445742077728890424489705843659150820922902011055364845342452465139915744288374790049545696301029375091206898536843822928319326852152092450395672325585301131794378485449879199516888358320300023446515466085192838744097792638789999423312325340639952258727256038601806442128878839171989029740917721786532045745446811836119893905696108668298004912376189769310810471745478147924198376093887621044464347097264022619303580590151060349412108059366719667328130103542986159766550622418745676122093072457562673354524071072570301163390890268514184224929325724738028549649067977984312828514523296123153275148197917078048879490840205408701995357419420507103301537021345601748954511427288173855391963832800011003038322265674016494429581184225170480238460363470836580437609206805710182210881557173032015472680128797711356768733599976880988388058551977411172710908248474356095555970848193351531730822110100339617986301057066541419434747234847678372604713844562100692617905411582628411591710473093101867204796565116384767651559250631531198008779921513334681500633765287247799034452269576727396316323553366877786090668691872850121426134287621385476274352859121140946553614565513470342850491648918032003706305925580283423978658767345473604936277736700635097946729084340051173806781436878420661797788728919076196874859240196402426402152979748965957085514324474511343622197614551728918826526324201260142505145306559486218199263786815902532611325173543153689758192391451350505172295557366476488734924299864191309253510695066348014608105737317453249657533138258541537637534878709335219282711782630814706068295001272520961758837532727907481756460861237611450608930200347354080460180549002010680845974707699135236587346939914885486432328206184720083994142004701035893761467069397487022297245498279996206444310595278961792856936560084270899980920553669273271480637090963779033606307932674711710760224772288627649442044910787951326369047893692834425673830868715654715330655524729749130768364708061472053106062838509052462140354316997439824335209519956784707342514060641886924197209514031214688718075848488772140772973544800135334638598767941923729256461506477625977495247782889569804481031342416449251956833973162241580723070168704372213562266713284265480854325254134844116027871109509334690907554343313456702561228554355367696082709016369012963297327912600190008514807923160396124773704024948571378991449618668492490758045712405439980127607798393652000330990860639882558112141235260292711610361633609723458730320586850892835608397421705524877136031393455834363024035832896715016565215133782431939862768587725558215966184444581105604454746042575216802750567166944956597251487615865016589522171061716432105247549929944921822671871101260525692573476899559488546330589741064450705614014837752149864823908961633627804979944745010429874682605138570503800394421858621216770861241932267844214720033320728809505387810293681029889410269669123164042507418787049275013197541353590267034604141589702139609182484866217993760816694380267974774003467062181056163660435506253124858787996979679878984141185290795790847438781834472691577800230198366001834575453797796722616105133589749874689482619545464715070749639751951690201200051215905267452850292036257619535605164770040632256815308454483522615037744665030161364161068815681511780294753001052574960399498489565695531842013214917344094312490175851697959946235204475931395332601852128829504181616532273423206374519106538477330003150545621450218744514416527128218619992469419202316348279412199497139745617390229645562965046564694657146323733345485664041761583561407614114128596248758049392848204171566998729745525739097521079559482527756760731765799275084213032265723712169789345899369237566889555140232842782229873575550968767513883945597899090746025904002725115806845858919920617533040151786195208656246660061020231859596652097754256050168428771831118758690935963579465389263874982055544227786097439880065657624446246852615245628999888154869583635107630538594409939615920077287856018761789632212755405967281015322273959071169893467819299700951701501679924988699398812044959825090822599351371482207654626601438051358693418171200580401729135677121242755846690955636257159777783410621386008862084755412130761688069838905540594120591151409203703130243756317114014004943076174034544893798114388540883543276222642112211012035448306360526536980845375352877536540880185834995733090366844906928894074603710617100304587419663373499208054144384985123370918929462770078059408337861313096474795918280760533422671000966193592219929993062954903072008620079380143955708954388329513105157602552816391303678213939482209007593994887657948295904342468614944836552621428262521442766102963988885073293584154809523866290004385953011693315312512730666086328343867089136024971655970243299866252037929778191012421663228964229903404566993346936933166818870581345206556261251389310701324677151041569116835206494036216896211466470391260392720925809115302116780743017160705161998839675835144998300530667035115938324907468623757013194967406283069257220812239343122330751548150724778700113573330707062648208036744332621711879175626616343521219372477940508987125760389499577781662324461077920230416985365834446291913809276384899946937290238143959472403181608573837241703899685484726097758519264075932104700294929767594102919547265022095189127492728118656687683712590894003155890501805870231987773084646484292704300811422873540864101732768952420519205052582517256275121109636019639317325450873853608083939856285710556328442400283030427530127426303860660327140646564945591050577387530774592534426556986044365157736512634582456039881529817808585045753138439433851833700785199976064007838362637229383292071468545236293766538241105712580436364711396967265211166181904264711348236974584775720851516014269172321125707634218112959910246130561575784569959645921252252506919363817422622516488092215340083054660608811885889874225062337378238153662007717609966677980474209814591928109418540696934288175300604696200314104546726826028227809586584156309969350582760543440231684493976535188552879807229643778933655632106393166230193569262900584471417572279109584895794241123390365026213238473701119635100022158279356037941828630138957894411465492313164381196473932603465278210379756419406057360985297965807417690321879886802877505114642326697164262768500189039418863541510628653814967325402184933448674190965572460132356677007976380475868300771362033240883037019933917915463243729842045483989367866396919555878135398713545852394626791726654835503043777170483921609427304951910642788245966609921596991801949364369952144816918505525087179570371023872991603860577619414132156151916986040964974127130773239481435852047535658432693213611362698207615168902977985783678117675889617370133969339128653733363168905651419207832575599964063515749682990692626104523685278084697184600591503791474679169886567559262195935207729117078609915867514325834103894763288709492747269367371920650634557458094713714792042806262987589235350046270901220372681956039679575742848101157956841960410356016141097928735504302569844034912898031459978996082824762910542490752700080006577610275687915676634504690294730257511519994048105018198241041636469213667341002063826279853886257305553455873167775393331008074602179846197493854224119752908915720734582754290879240880393106686477702167681016699350461838137143175593235888046040549726805362839468933557709930279009395709492358369271690088870603082894837439712088764475803172853781525111314000314565396504454732881871225272302428143905276092480442112061952987533287993027603887832722048812027037508198335457063550518932157311700458688362399793269655439576518217439689296010878165925840491999267365313606893301809064992207899286559907258497719561081554424653741296545295534776143950884268571740478451227374173319167487273970359932857557559309165120244793194716087877785885347651650657434405171342873053060672697692995222435989369896832572717558315961733192334257681971473408860800685494885118133433939757898136540956958828019950664157594420919649667727961588698205997361982861571268194848065754305888440653444451138952457582214524945489002610965989122024949879960694946865920020817785887980047090799264084283968782759385864811193510310601242289060896597382767488784914159550237306663659584547630112096445997239455493388157758521871340314440303304401821306756794591060608081351926995202304572212115716676824677589699049986279778874827330232736490472447090077152173279958912126828951448742718276686786719673109831194133595445928096640424015752716013947822607702819837497527232121701250484523454114053816014858606077003040312906766727796112446285822167990227183513797896774109450464303672412286686316975942534218204690221280505774292383910649640344840732645350029420736706913065771963330961520678067128239980141165217823652401096546297607962701226956045963751107167970723750803637471764329921866901152711249104311209267599566053911645230995570218988688255546755034761175566270839952120838940619943893241249349281297425479602252705776430052182735405902490696751095691117221066837542729041237130436292274404681315224524718654441233936385625392792139888690486346237523936481734929270973857060128126310548737763504549146065960732458197673486488494671302288341089373884419378452680465583019574665287652371449303308889625798875140988381288955091948204320418404492741540007716883435072017021361839954301011600675620886389936989126213549316347288893808228937655455682238293848304939953725797736180115096217485465283684877201467989153966214700284163798505001123568683743984474862555835025343780684694211836255145682545254111833109752053512126099332294819214957147343187701682153464544019940983637453656273131441603259555618496041938283814205165305383591548208850725882202337358821418078369942405650739335730881747908071512692364271260886899983954067871102372997506394387765243184541622989374004737856736089167960831387016069257706284248303314069819575013447470206270968202248904927429726199805621647884484670072649905179615888021489830386959680790167692290457751811306816064271076454803482833873896537451807475494194274663318307322920349009772500840372543099900758606629170141482845132554747854426870581681743284134581561523462325473010660925436699848482870518689711271721503433520154583623409892702866961760591369137565105302455258334898765627283569521897365572024345254835084363646654842254245496444095071043321533620660567684546949354041362117550390648419217953231254630080068202875381950107417312417736768408042205976716731856253041832917593137338540611848163156136051695565396376474197858250006880005110051122919236308681950273844389250733385896451264360022897741084027343686155139289817691127460975951104477042207548415192141298329930518614876161281895707796745049793789101399359507794428105579249254942037338604096144902761578590836158005185665641516858650942741848080094989063940057555458519641584190104854610768179282031836449518839020598381569478241108402260658016235465479857265755686560677810608994277260067498013756910531903917435126486425658858298078420298987249097679576317334281978165673050215957336742778599796195725589988348270993630326820068688380935269881416351591336467605298462370700499721375736036297810404085068967562863511317743608138399814498608172733402847729568258711722415407569270006395606748033150393960184770774339156044892005888195319813665813661837159103802107294340293549867923587394178881171143592893759692308346216093927567191119883111805043617965067112952653979896556460594988255362718220671690215847351302889758655264135166488277231504471086220010257503708484910893808935683749953411863201940573791595421672765549175619643676114109135340646104486234620189965384637532372159894579371398378500825345737010455323701248437990200521046896532384786598190554418846866879876346828792593403111090359244044245512819051777526992518128820933457910611898090906534208254974478037486780177904832236977167418983322446107088543991281189869280093630222635650821320819857506609288532467210929163011225511120622060106799720182038119083608440330549202297327359586247004711098715438475157809079131310188290904496300385131492376000488363740664581828066642527223621769862275406127943787896584703955042581424491596336185375528932864534694720302921619678013253620484338560165193566599251855643411857625471235231179441910283414381669128250042203377150483620918366830088633663491193217566990080747818163730092938683579632271311916941209953422748226733123678418627405458934869725224651394319182570253415071538601983456014439721407845971382960872263340439466199375073740170147949636876533016510576564104170673063355875007922280618748381229161599957811293762477242977990209327694643461481552068092490664530663590863876938950178251024613080520666759783718172412203399621008556037981782472241534678879666066567694046640396374122768706688008103359264220601411236786036999826460955270409966374274633676345946885023589512176213356166755646771312689126126849422327234745071890924686222343889749154926313668813252184205286725446588210076483419250920551692721000329725674572868144980048271108987878243302153220823069042247558384469845401402174417857484226162881659436329682571854653636325437137803783649451854042607318918125041156183176301040753167099468354775096335033459140084623386373532825996351254050714111768462037243904035781931856129296202111896952257948128966942703773742609894201756463339067093068496538706228048984026515591439181202173585512771608369779982839916294815243269589958659064168961633046840404846309750057604284414665951772243935459382743757128470428594553265698473539397507050605439665998041680156108161122145499427668417530442268831927828005868881697671893905537892910687487550190027474160731572945858587296517797500009678580344922168253603079661657913129573526729145422038524581984526325978337769282615413906571356605437206443977919518479508678800864167237068229310924778069033875290477449117151588082665009035603539526127399483753647067512135057079456746549820103019190277839483894574710151647627896187614269939671123832025072797660810499423417285904396928972193855502740198225093284067610470499800560869168793062331402583724430976893135550782404538396659801217411726150680767018786276829114150450145631537257758892415585538101403124548700479908110647654762467901093397196516632845116782515172293161885836153232516876730261903811726315415309369953332242917451016666734108391780928092884140527841481091338598901483263963259755448514537864678705053790169424316317121647808698726883634822931550846337859945871193419186650283778907952486702753204355598627408811563726783751411333961570451094030724854066170786172366904447750405560514439237379642722726228060799185080711555296400311295241857577920948832482090330303640882566165847497567416945440703646895583971457584612530722872458012905003317027734987244927523935386616148249866617659348385094501304647697489853323581068490000848272323356842442764104254868454237599040795695941279350909288076518625531315936594417089478332766437492574443920771181075655377184063749985641757151307448392525899126252383932515057730554535390269095607714781523792672581366510191179829793573949976861689970109102468162573050017538509650638856726522653333317360568011913203912411330535521852696347723550333715922419148379478209169115296396997590955387191692013680177455319106894265782775411705544991914354237204537564823271695728771294435379357499372731581234078900075853947435517775513309263479457382782849145835801351770606379955318136159972644792373389139334078451933043120514661870377867484501910048065250766669224910593296356652628007382820441619365285284928401669597393630514956888326768901067358570106044096388301070940765137956779149907391529957030478832809870806350637804992189958481633213272932144499091927982888316410228874040007436845301370092121884974219798513774085995539940581016702995571406885408473018608670006450284303917013099379655052644601843421416907268439201189839199827985839332577877838201348952307419521095236424023229838213005536181422114646826723411532711129521745136715523048359767005217974550849245387927348775932651357731936080673899829201760393416123824609936372299303669677083578785571027715140779862772257436608600510759142183463506227014801767206325097501941234507144720907275242169901041521125671608151718513207436445986061029080047302047601267241647399786439123636344769179406766828583148098405563584292322555603101650336959613391904669529847476578801178280618877555704559383893011903485653960885420451416214233663079773096779043177180948302764117114390938026619585777565982760316097979057806584558604542474503341023941129828071768561995946766009022159030339947397825859168739138144708063006343941302876971416266131729326764405629162412290866870637022406591383513040609432215865089383885202108280234953942866691725584075318302054191526022384993391425837767831837006188706273950627259478239030453414049305046766838700208080849016032816866955293486757594155805327493593648524719239940554974806512127906463470794711810970758404981603847970636561593772733663305033292889939200759648326155587955858232754887644508331554527310244638065777994271983401455551708933909337442872229780847177879792381918246878136835462173461624160781777018809895973510416558042700058577708627633654576554112914826012358660675387588550947326654109375085217378378217441936149587462574412164710870357792210002486107995501188418785318604091335646745407486541288660731703834506964007505256839696896545065007888030432178782108090692281975936948306507546582036469103904376324899535177556939839719354444564645572396980481732706528782786922646659735977783055713051378672391078743515876927411496947983831270060509019030348894271793826342368380977843392884948527840467300916986421940386214381375625901738905643459943633752209490927645408663573361057446590304395918121631417460700457734308770027912716447171320489739928797482507753444655241509806586918510801745106775679557936521412602522745127270080727666266237521946436612074396268425023377994310765547347417343369401201058092778731227455993645853489004024311965669595957812934914538007905578286193199979890212912460331293288804752287635109732743874355353961189179194660958967382282021180993274124924665115449519935048829981928545742408567142224740966953014025803642530381802792325191571948065889323669088078050038897854793652020220009119934409316233608267687283908883203241459927922568410713796701188160313338164345482736666951014327750238904540370490648021197019247291419035117308447468801765688242897816740139650607552789773208470803836794748166367935486729897147968477422583622322136554511969288281304643405263269369148341010848445483791298093442501122469651531195546702526250657784808515651356137322982825467755342593738005433745574268156104714040157480014796135670961350349050326544966958826181145930084083626859124148246094862732059420582060208120544708001927343875016676457669224204040944925047449011551466345985729766265129663672093290494699102857417904025873724857924555080153164831471303127376263518362165953156530597000122468211700839376854476404271675991294652218226463888610336599540793719388259965604867993868908330835011492117495059182308292227636753256472823615430267502981392306653850571893805517493908985410842522180995927176039443646395445033766819639276976781327942216132607555231383379467936170705146698796075482645098843671964722476983628437153603367350975288171950928486885475923342224246368276321181765604746447479763124694366706560088921974594926272198089644665567711682995533910014534035858317602006527894539056888087612776575894431286416649211840305325429046587321802689391324905673834800150286862236676983049483045927901679586015843740391808990943919738564112618987249528003402262650092975800349933816187745172885130009251165446050062001764533491898767263438097687065194784605191185633829025894573080248371185670002521378318698203146028239020017004451825907161816871104756368578431464848296863694686950962593858039221180842909041061361149215130151723392787519883838051252227784918865268780872383898114199830037773255625938127452486678301533785904669664642301769447670172792245960036178347470336229647745169930326688705916473544319291881022171932529576180051369782508858953321482742507974056974211020179682070680550971184201152405265600783389327121784489899471519705670812596212454089182773988573299274813293775279834151126107263728474859094535693930897108139739667906628006757138738312317732353220282355460531809801799153967648470130367517609405082632115599303747811556613031309146002845271755638387496519274559351212216853202453535648478922859424371119226088281281230383863270729827058748553865237432709966276262721921863614566292823529452207135993213773857541012185127712420529059548291050221598884884737246397786201785075891936195762604380092318705909951289194078237930791638377975881468395067852241065152791064788909105683297433442262592094097274520740483428467661516201223571755617618587117415562633075031156707107309706944376292477326016734403386145576555865081503715703813387881232275576562062426427737397259472463012055278084274937201995559323908622529574984737715126948633734232740066633362789733253866828054787083646992886532110085817301377377003860657205266427687169724298201435347894744986191552660216724393954315529639483800781427858443222143934209767090326009204989808387497685426029451349130176551191028772697284401650260823185712435265626870316896918529694029925489536182817141229893530723797806786345028200162735857936535336766158086595839283514910025051459284200372163959706030903386862759190124289170500131204162596315674883058420706513114365181690563503272558352640313581217824271295989996809134069512772254379307680697517373040880063006487996883600381566491653857397899301004431344277673457203172827694088876307331225563360668541134063973204326341786743522753346697276466403775742262659678052753774993512138063380596624488692332308011048958222244282672551164419886293522098627992792055828280076185847357834174965971942423638178235331969755063042704170463874457520529658796226246998681238784260568535165845225619887912430239769950463070151079346162517885275019367516031346442428984834201132545456737751869949909468632824759114692206169632185272738936596931156782172612012418295334763928720654796870852718298383585079132195444729910356879565856818652119191201379426607259861193919263022822984521246930279724370749923820990478226495053544903930273967356873174216877741387108151993665024774866414684581867956571438933114230702047871313601476087745739172687737510853194117239894198091286822375463437536133655046669745887914947560460404255346984864831746912972418586779556531967356369320244074955892127759372967033881230679198835430004358997583903005824815835242107833445265017242855235739933229997302357170530594629276404331612267755503454853557872588146512135843846705032937234847194679970558650421051208349505174476046430205157988168918017158765069261109579339839414826580594794807253214042713068224057133265300540927993574445204079580765586940146659408054355693292643312465495415404304821479562766791927067632715240370017182690655715801982715526288395092659828908991217523224217514424721089272216824808720908649196832059817644202781104083807563266121097131567497155827782370440329122662127974340562656929472933456293905157474828480060720718337739096004249835922785838005021267507933166384068216993317796645277560300779759442391139345912761424808946429537971199049181993628152565775403795975669768199751467842884240329692482726578195249387300777890595918874509958063665706153120741098965976616536306350612382051518662974943339259027463800760693364886060849288565575976830316742224714726278745674299517090757601297826459297565307581039764967269512332549731845758786630309783863736824109639678762617309177628005732662170482194287528567524007189644728709022227391305941643688252025835279580765144160546116436130003417653699588558089523811101708616083691471391913078199532098922988177599156228927105107236734117905892517251701103364630566868557561606785812081658496181238212915721970771149681689491468324829805799066287787037933205772271235310124907652292525915901498599691696719026177649517778733068786019988096133911347235928492471694497171690024255325310024311504620146525169631971603826509206225346089930257100883070945862698050218315198094729642455367695274297108913878133859089079541600488344627344258809873625300837810655078457509401736648092814583316340571301944711842077864372852174392764470272581726988455739197431456351215316485998153982283082429790680862833946822239748446325153068498066702772403399815250169881730515802178180854196332071778412424824165933985358700530827371766962051750704319087228403073046487460306359241500328060525541948245182238181428683903144384177468066571880870890174424684546498073574401888371024293555617778424165595240124251666165017515515758244541381809241757805017599886242227529018406927607254149138235084430309247257644415497803850051636641867286199890689070987804984292668442434162940669401711444817978316840823128412868536825108504036958619787719883571721240558370796343987720993161627802963943394517865480627886793710246841104246501245910616498212850165672758199523330193769001278174517785440038638732526030762642431425938793743553431873945842654782936616515051691940112223954906466906467399445051823125742832795588722971145057564872824864845949739472405387133553088600023468394887523226180861938164876042489991115223649057425143135342419196224614593888675737065351748046941229387115259867158057251953607113841330328448560086010956821810417821417627570385393407799966257268916855912861885432481395976370968248703488981239218130446079367280005447081457383411362303719642023341714045202732003716044071751092499031355738947193449927462787708329909180808727286442715845694157033045370652828240469917501316323125083461798292633742369983876529590745055513457576055183771645422184287372282675932437247565692890681882011865464413396668133582372285785641755598297292154269808324613774899950455602153900896795724565095366556775728189472961535855836327980001649559979908212742493210267469040994273619581243761096627861175737847571729664868315377120744241770147495737582520625052342424158080582999648859664427402704846118157017608965195859245364196838735946211380351170659701269148283659009132542122902989960294519169145914109126581728198887158249856575012016335128536530521446876419330592600483006855950535199280889792366675822364844113026464319331217787289926220289602041804251186716882634670136096156503229190007873266189061961623744868373239209570283225620856088038598335637032669071190603725680579317958593253211935490693921400260886389161042166242025952581921009307864562592412751903589001092737347046191843497090866215523859423028103519355878398464340253054412797470693497587816043588381244952173231794635172968804864872955462130626316607523807559281854441914964085625950403382890674110121266403121594532600155562985418643162490261945898780440605175526757134612424808165396407708782061998450659636759198565115568095663824779729915534572248132738892406586436655276227542794640243914629422192192731306568369926213609762314754517898762701691962593501241578653722732954649168920003866154309020911132797059233609427605141309827951735332926179184259331758366878210982237103115697947494907450512261444934048856349025505000501454257034410336554767841974777966769213443592948023300638219009644820237367422264159930063647969375240935560243386876261495175217971986733510390068176521488420527778797053752713609788317429513331639162638270118813531252869297094395405587782124138355620920440103119721708870091494404904350021651356547301431000125786230044555144839380394761899157405007689649213842468156427038292433410255221796837177690470482595581091659424372898431800007951686096800258396807396938739026701308997253263294625418899374621026693420578625562508361506750190967582446321937943256523182692603072828638325780706263925892111953982730299065216050233830895579630717930422951642124043364727031259425575360810697855386940261757098287556736529854775146870421264338034104488411269355264463626240357701053916184575870287806518720463471581449455366534280133517112337302885242901958702044552545865700716279718146237615783200630910203659972776404257746637120682307618298500526100065073190011350428908370508613962597785753351560424972380184829089522466789556969521140087723577387958365315035939647493071177039305092562797572040777342491632024033903188039261376283188520771331248034728247531550513584268991545328795957542962838873432000635524502012198854019693994134669825752090583082690036366230730492623008422217290489662287295720251739735471494257165517349083903575503790485315283380470538898330791161541178504700597498876681670217421210352404228249718724072119964709796778459868172023913548456820159274261980572428883899689221648433425559567735335574155601616193037917381968310496441580324831694046373547894690779066193261069048737585932176312642238739683692909361657731549426379720873789828543631371210973956631481592115322015451791733733239541332106103302906130965352300716479458367963224254051481576188474687679804561279671421650769435792999631625048367408199541696977511496129969839670094197152595353609851465474836790057760792026830920227408552367694770615634338643281164254559998841905661318701370682996137566269787744383991993450695523199477302985088788734480237065379367652085738520736005467486659134681574133511973610037669165766414724054511383795692710590143717251688134073814125425277230700772019147714465572436877572122250477925612014027767807768763906717071359787869516999025317217517081959512947893746799391946812856786270616406492967307368315202423313896657990649428555402444392075327626601219353326650737851835726938202582139992780691290399827576692146473284530211526868682183982465638477402665573633366577508311758596526117677600563208167461341877267458429522645331632744906871814328544990862424511270136674862186756616897531988585852471104570536832101341759661511456526322525577080860298844301007171861780128521317523079876462405369249588015854016767329112841866246915784874230879751205146878986967550502518489856207459352184880157966349938401176940205452176996159834098395706919642773242359022404205866784750727906853477499848214070614822206675678300580037764446714136217708993371720669387759813683508578422480189223585468400279440344572804231794173459927739654003395319696819865230336654757868702337983355624984524945668050999523725932434640595685141500123736838215431350265720023211050978592191462342690808752817034307868387839008012457173652014463204967227336652481586180164439032367446352204033469826240341306423132946521842104227795653106520419556347418810144100003494483281605703746711006039391933045203846261084174775160712988280813400994893892571348614547638923662586763991615328378538406211606905782091218939997755684262720360473763506633458580714764184574852759826633483808861723867579676133046441579801768963817745968321470877329473575766786305707227476544037796143077693504612773996741249633621749713417058225761903299569734944098851927517700868169842490479847432884488357171554578542652886579542878147364924213013951003884421427005717031984997823331385082572880626638528949314865166013346392411468717602378434328939191443990344983228934463358167225404572401379144867669758351980730491065556469475613981469488129568708905334641334331309166934219400627545162802290730992033134879574589746794306110741438275034932615164870102505614017219954587386191537268036606970330020626851196055787865993570021449446530403492689223920596441590247074155528135859201478586537772578431890783009171011942867633528302873469131046788587385539107981017471051604519382732022764972078643959172383644366493928288760546397436225657193592913710352216474687220334933616186405185722931391747071635911128577841261657904635825148367043339328504580195871677484203151687669842756389471965750887360432663003526859359602380690468626564287943557720178628058412080645998544037835062240978616747544374503602773624496504646781203498990316555298785372790072206924737030937756422470078987258279323255353252655729156332920428017735275543606998311339513339077111281338820389424475633784254409629855213524581410598266064088610424710616156367104036763502949147599282801223799853916526978841052889969508197654319501677218005316438732613570908050564959908045270440703192204414469338371748302141853686301949447123779213092306075257937009775325186424390948958807683105656544102180659788685894765446546720013136124638678860037787494112602110964593449211223642228276538276870014591105513433995177539501149718470108847956401846102454649099202373973903410862872186237431298024821287868825318474535362212782072643754798683520539438122511481183722421653614782946897700554160293879897706584663603601565242125249349029878600323139415180499159945922192487738588706985456799278716007191782290817558674644395420585071965258238953252560108429932009280745486424391605854333201982885018382792086449537767477767280494950714808900988877578188023534331888194538934204950104667513548479335104585931392575436638104193976685073870449414834187287007858742262852248656284077690386896326968042110005870709486645733065220396167647893356125283488548545818444877883191056030177274056954695396578225453926775398389144127722183360906220873705469858579917176529026154287671710794546308132789407922509698723233846661052451700442935384776454723599929806032694740674014151530964657450878561728959505741413547375909837306143061744173929450934957022823671154477224033417383137714316824668268936336152056434811855753224854380128544714150674378522923989997766390645238256562260953987291748990004183052500293604028453282044773883066812720386821496151027978794528562702378599012861477390796562053425580337755440630367482744292952932849888000840454833851448392544406801390673082337821041083638183641745880818318450375903326094049252403972024774497750080310013484676879740760976433224883557563386412206043662260019361689276972300429042516635812398142654074804796788102179296694533737243526654402707656737622677239381861925214967194885071773414288981765881709443898167014579851954340309627490898751497061257276103510786297764540828272343440570777872233662078544406464050481905708156051784460336717795866219204006653544878031391232779773086067939195174111082708623056360382836048216830531010715451924264254339678938575775231462495132597431635309998158706914698191036054510236432983112059456927884359911361752247546747340422339978770393626632326533267778495408415402792276455265671648026059231178938508907297466729243451824007132131939075473161278973756474044239655546453258835317307015190700256457718556270213071862432013499458644057995290047641897406521157070488895441359286249652630163174189548439852475758688709688199428763042232255476650049785267719290410225483544425090604038434513139166028868503763432615897261529565069183946665961153388679901977441196398692465424318339294349649217284147535053347374494469089097538781591977365993432654478727533936538588651057519000893122443824191928916349052886288792760951278876319505238633390742606130178180378003254750240595410486351882532791713362608260387815673713037345236731230967451174325407081768806069668616819345566627227426114594750431469309121921303455775583806350337602766948516096624091885915882797315265714690623943461001810980697000063614278033145712499088013300178864114381176672304218216483939626900290554598865333390570158719082639553489049018125428741660212616139587140605007312367371982380902769533244755603460772244610791778266946715555095596710492753425330293339921872522080886185170883436671467328558055208496820134477353383642310077787626114548588254453088883560979360956167731454932801990398120913683146431200951333841709620599815408891614287334412025047318442367813973899759587078707841063425837637634417245900358171317998350766598231068191573403528468734825883203203478546026573040529495618954460976735135912510386875402358322384484103290867800784773977053760863520664045122446474130297332272527095150679909781376755495147989852660036081388593106268935955213713024886068163116107618311078009247406351291589840700630905742682025165746644248641756116039981193925907379733095362818035305082146517171181238729171135321863123059656468835198831615144478507211080175680141051762540448373717300827055930156441837731133225910995686631202603687015553186632200951881933517325693564465629409338415219979939519129488226013617705485386496504725966154953834308802008043475844504771282582304174421761670683119280640140795697378849626598544513908099262441285583570253920771857419199887349503310976050968975743682211037843165218255404374235064195609809093008509488671054808687550494961671810916201130202089942889996904893731634739061216333125248649454803159240341178762311897327795091549491323266629955639094482904817784133088726460202738826036839475161007243966112547623875108449550729559670873698768774566686337148455411243568993457087971942417882618846374553528813323527505398682372732006010362905985279708101467814977645290257310786962825343263900317914313281082804727650572061362886974931680940409909816684112508346674529962151661437343533852037911588479279079731897266411291977591440050537961375379455777201312784001553211058528089916764501413606203557301200734658764440780690025859129082100725882408282555126309478431430957968212257374954709689271793300344004592994161359789123044537054372186746775270417230098723795571968858436196405878256621874597692545019958543499430558388526139469256353677042974997322043908481729629263291090032019469097092980512207777987609966884434138676338860465573885085592909240256038972968710071455847686540781820888800410663063383754168553956583609245854272804221982860433017545800336904862812024281649031487168131996766683367674679928841183514904053196629394676010695141159828580444296526392427665012573973450669343844194964422645182390268592710791958867033228136355676883795465626833132269685531387775393042124613117149709634148152411041036975551473825992758182852104908912254328333745842781207480834643030252182681797972231887934297715000800304314179662203497641214995243597226516453371763358788195054716938667842109873805152811259785369091116644531022405433429186717915524111579432190324133624613687109575545439006430105883571267814523093753566933073285519124323007383525414853396260997420990094870023132295641628704575688194342913730293014696180948108674948254752765945394079607343443576574963255216837341825466413391564037891970925819143104585548857732063470811818028397038165272061962421899421197177160927960358912088971906276134077608457922081474898236363474249335603722571074649664347353393496086837618794793770112561109519142070091018302944002317182898598407195741136105787798751227596564048844129896477204684875986291254336436124679347447393104194131331581036462110894356183961150643663392628174655793814385868353511322815099441511293319997609263911460729568775752969185358596408122621854117478154340561131898773430927498833272785097553748773072324804214410500745286635088446782203319596133371630375346431332879411093287447492387603542966947468415287402097582338321643944323090568313175519364335437163618488179711016410164523152232005387954757192402961477647643507662216360172824538282022905526835751697607492862684020914192953803095385613942781917576344488961527913470810466287272999350861985071525422463585684419919108852292911515503008981881383510016558567970768593852429256332264769063566245697678169835687265101809110945230500887086002911906818004777463993947383276431690156532137581195549949890207189878664004942840554896377104036998131486858581961297761806798396758358430414810220665625183187253898991396137907256663007677842670772187007112435263575708232747615567869407114062982106264771371711250447798702897287385614398620578670582556304759973606756404435136107544100732368194916994819997015029264521038793466109636110112827819673838666617601655768489228293390322592770189656225474627911388896825749453413245704144393073588559082487752741981648016014938407821509010044451524577219908237659400303911761739690427164839672695729225898188639265362377091489504716053265618682906794074998406808145277017085429106063889265958347657725839002902681478531464826260071359813953448519716891855031956757411568938020905001708645355766691206630500564061663253535879048363916996812223796705673862454888577704467535860893636882316838522444495377405014086976428602503929064796416767244325641907825882058103068181475811150624336703168782225625753193689797000345172221265688677610901078194973187754444705686995848288947644185958567346659439460202971996340744117734095316583091250298323507020296005571236974558139799400697423717906749348555725581319826201007976210799580418962931336678675032069524086541180251300954787272515980759560904052227791720315974548069368490638432451970457448341597937686511315285639518798370407739079303678407471393501534960652488661569593334339023736632563607548011872833784692575805309144642652190857313394088833827182264254178682631365929240294886220743372132339146326165902048266812956159285838378700632102779608885648687787424653192864735330006437689776292712035409601635067377828951689449810427433778911329211274134228811711993189473242344558301983637213275422312567684850589957794873135661457304063294549621604717671208300910930145815882256452273130132972949153953547989362865485875839404314830271079831631244030935434936468672559056512113244662806053321101194104544521047007733794526714374696640617849204525312675353736137669406067847303421604520351068661056227797489217864407915034604899456806686760562494951456243504289094147036814031961792238246498150466130251735821580272945401557878624886377482377770364774268595686755237093968780361950708213727450849652343177459423368911613804399898075152254534708692138699385206985187109429062970718078307470889361951271692930046335718175849921397841473817583044513048284283306422387569953432274343656254314290154796738726694167039918174006370069517626761659704835187908185449340935115004404581642027469904067424779108518440635094066726267224114582193037441995896803002206344243470166230305929216497433656655261773740353543560433977758210458250240548293151540426865769981695716048506911181036273209199204560317667998116554587254851036834687911107126752880157558306419035503277379150017651488363137214336388822130570148229423997326334990280050493297616509830344478758613456001292569184549299648438969862037752953311061199723819865119690847141670201161641665273016889086140312283308050033244989904047212162502201422854328207484731454472178873992940745333068166353629361874267336389084962650154632934231589628832810557095594630959665957743342192443861659052351875070716852094718078716842013911721005167849690962008890828390721401916663423395181836621536655991581414716993242840597589341947754688441275734172579945899332109734920346984920788239306797402887006303628266891550191071615560011779471294062822804525640986052566685339049905252578513516678539645222490903668918317632437343066066535518172472923653006246500152094848452686295555948723784472545770551460187166341025421877030239203314432231118583908937910986231469596210305252309159325942050697463884429109019967162565002211336638967051169482475456916424817125981291226973132516090981115976940525305861061544359942224273360538389921251967300721844083147701781526521263220043057355497058525767656754557768788154822563125268960710934164510751761332513187406222853749152860921296569018523434079949482395088918158643295947912976366091105586641515614544092867624540510044263393752997158377340121188788138620435205760054498454056052060266243537304380041822405737122164915000086923799193952803359524905215321361272459055798933583213528725580350050407928692707086145136199709256990409604944829495417839008834510477308777364315499216807613888216691679000345233304391131694492812058391465702410538234155574704480842112067300274091154869117401786717418730332526973743967703992567250467398482971556163953379858361266097806841463267521037042312016744770519075166590380943970596180274912542235424600128477322115386470649942963555161210273197825787227096521299338012928590404613523196398035251989146414514586263296812242391567635995599360831209527252196773536226133644095261840443881797072814349889522232939213523430820384885457721229047473408897185553289772084023948363956042285783742837084150443073653172357831205713374462510047288481880116241731321325528976544012581716179352138005350734690791437012763291516247432755735577675430191556199980501944935774225777820975001168859811441013003655460537299369639896688485643606956180229015881126619187336727834930415329367597630336149775173913954012405093314100954794423148408352098035834346702319646453797840034171334999179349535972570468762238934217497981961994725069480819450020368117017616546494298346459322809073588399769843004091347350838230840493935676501316621844345676740700367364388041985376116368646073259013257158675651734911254283820802102488951071096280132886464541328045956887901103134201770163257792714181813069430385375998712839327597736776197726880782163199062025842894514698931478171547958381223706214204822145351517173009484839284967934740260864548848585467305571566480784445836927444267341342992289767317571114762394103489234705599732018373049404238863401630662484480647811459044319348267420279955494080747101376019301417170947166133855423994532045173593861569914174893123077938692968629718878540228648466361617667032804127746410200836301929010592977423184323617097275383587524040750758465782489530380243662290720063347110262894635342786721483765292410938324696423199286401538398987187424120605741528923694563593569948773168511067834735261973994127575270516229722311737014932100393259499505085186269213804690738049515547623601314005602719319005032823249253168663713564483111329560289103214139458009226824938263962821188472938505104499030019017116548778826248099851712437406785529660983217643026401223580444754249782797579686055105565106104327403692420043828065392215250254410512050632145858301092893249093416010188487748997603947842590574073310528535118426487189655370474619402753016320205851042753924682275998890179284737281524282819121201169226838246397164872589943787481014696054364016843827441175002117151019909612303795498676407564140933019092291484322858364199354047908787817463538781970743530549656472555904031605601482911104327649910565796973913395397329206007207452710108331960447660150989848486510419896162482902670009465306655147927425440077030491819361768423901154939628632925158889693316271984753714466542336634464205518065468750733494403016792526024467411806650594948498497703124397818382692731694027846007509130181688615609227595716560518962243766846878005266055720784010783062866235187175903749569754528784962544710493505390602942167239313701524558503962237402483776127728130454279561549169188256025637716793326523934746357589319330912372906886748085158605249525618641980063770325138166138022098769095649146582572701666486451870688855168373609715276765941604910310506141993947394526003696637254115078398678959343463786584398480352919529411945647107408202214306371667430531692032597493114184700672007869070836641224612474465636533381504332573733316535610398720646988641607637502309327328444946213072449999418311916961942798614779016952601001562076168786872391617136491344151918061524282886173916086963928578055166040103272188353312274629759630941300804562865094197421554316145054102128118866254005567321568928374927679009043917575784264609129495914934841093323265320901473470921544607410077902798625935045614726561221432076607026883985047751372926347822143597913867764482021947474342472122825009051986375099038124445494595202333566404352606297315917777683730115409334915036686095635759625414734161226946953383683404427084870958851658677356685254750971903673876031199970097858995714421720140437516179093772762888452403406128638508029746509477131797333543836329695361667414588687456297888098161593339703236533755353318222781223884368228422447342125523951616863592531423387309556869860446276428705489514846696860075789409696909320328469066391024329283549006691236383701106996042663213591841590565004069533937986520221499701347911335252181723132504915978685938540577467433590724960622770112084785715428394573545186705442458914188192775213618142251774356559364987688098486077159250858430844123473327969906168634816399342803753306037933100357319825376491531481668303669543566787522185106831791784621806955040333032743960918343661678948217730853493886079735548230322089671461101260593555529730198661201519451395275954853485340839657080469919581448240092016151283902973131596814462818159335160222290280817703231692386039100933222327045893765271843684895557620048408317691602796022662190275136534208531349650040746716410203142929032298325454060271330764668923370354658033316692593558832303660042792263134655664192374669258902056639568617210817713498271038813056593716657713145365212225860853633379959919239450371127786781681836213368350282288853659839969339161177491387167583645053192002493763015252386756373129905727345962513439181183706112319368915599534000384503810582056058758577935002987920625456042220382130080290431379775201365144962317414893648739471103932475319601375427980720115717852361661755077656653555364496648150245772950465864781563974169978479756575969922994017815520072023625830200492965474232140022853710328327502806853959250490372032044879415581055005600801773471508797643216341955924611442043428858616704132676365370843237368503433778367668505774994374992120146857275733835856003661366869046625332464922239420805622221064902202041273564068113345258694399497390822268381562328424008850488682850137509307044790134972995840968476927071669768524704642855721370601169695873861462210128617270590312817733852909332790417288495631504046042618211617976133909464223402941225325360255513548346984469549260463864714929032434068646617886240991543569127455113132924970407073788451482532342053052048239223298249600025034515076392502259783971053421263485099804468405912981755246731152451038960570633272700660229767789141615154985238506359969888925544936087352125787699072839027313046041642924547076114951097406162137639741055369644895031706337229281804859381665047657169985745257975930615999581093626628797974035011825696162147497998188793679862298290721966456049160694662947863938075857237469369964342462329808711689014224992508887991027725322085669983012619463684825890374787687625529858546829685646611343337338384553848436186245203870885475547128546328026896200251517524845948155263338478744302576540126620161325178322721971067398673373077090643824978618278281729090215344880744874320078941990494616970655237333250841633264232816131326728190401960605205632008874212755956725863848203417109226350242627629595819027193414895250664095716402808820032655404778471868335325268138985221838699659445769525721223869551752965525357408929946866793493594609251488343182741144486992084128352222431896941551298762863956113359961132236230089181070894218446793349959876123728695189117542298513676499391233953225696305846123436989188596875151835301120848074632334530862962571791756429435585744384837057582964450757128520161292317328948080521265057833841021079847134444658831693073330379324431221411831134240701645894395008683040092396945681137364339240303065284220188053351932383939383001220660250216082110571451054907188323409909568485364256945416301902170477869863884865597795185448239681964474246733633931997464669458450332645254082907476775410001111183665686093274887544679665733679540361169711935612038261131845968106502954688025159979422335101911070599996290585832394246306322293450742067344313445274490789161595502938392558677718067728363838694350375661199118653688024797461081179013991807851624750788774104075087014881248613464927945673335045057855688319063097860906266197173663057956968697209958692174550660708813022483121258130275659762408979345648542150459969297940332703704475793471585054899998875923762622789731204228808281036562209820244067085616115248681386792547252116287254687620247988134536015585854983939277658184013238466074924602440495113829503517363691612697740978937731709905564057139049211329543542712481931119101738234477108254587863442014721629499423876853870628116813444222108726360888203639407509637803316503798621884100139900388160648279025052923734313341172328572571612887486710193302786485079505696878103690774959449767557738791409067929841353632695718877688911775749659011105529390629965605171509842193827681242684921382002721239327283891495561733451201689091200657972386600375196820657660428336978407010962439947226458871096001928550679277985781781554461653359759002536270607522987186501324734580481319411619157941407897680841609388961986335755046723837852031806472218742184666243614643138929177069654673460187361140978596919401244638442675293914811379785286756821376247994687762671524077669070495757102827629340554556696127490150009764482340383321534714303967822082084165671860235993691238662264962469151225390580276597853176521024374395958582171378394919563015759621957157773879873582332177835871341777582900660461999454713345791645281576697411731470053600292900239158098349297889415320465778133895987009506617731003688876959249458571628708841139275904054156417729309632149210771447620278779112928914988322898703567088888840928825795272088294024161736476573455703794554046307688478432599892761694084033823597173441117924381927543435138124658056941668581439314740315702415456601860017413957440712379883300157259835149090323611045692802050213416238236773246607410979051354698492166238012434351783401975442114334887896013328879139440300665739749392817300400959398782674102657474298227575792379666654225400049631890932768796821088344415955818362860740512130793418244663895122857028937067903145986178828966338684048053590682653698675417619989451460923398460370248591248195563931160017935972346515530169178064277910456137069439568632259745387341669127301100975231467607498252244326662319161882139755981139384501367391967178008436267623055697178845706297926766183575194293723519832063825842369492581894288009431657372114869425478178120449046945466690353650825236589230433418355739582276911743342679379196334174245678375541745481660237811070920970794691441921437677416518535253477317426166454167636350360917631647204725360422660064430978909434919599338017360886773631112480678933871413271183399148534881673333394719314502706751257434061025376338218599877293050146671916107099617693976722731837742044319068492339763528343879488215782046734714371151617291014578214615832972384192970565665760736004082409620502712042974507859284245006745217568147124648225448407812078300017769175558122402355310257441396474745843547972169104935645839155897853105372858395965669069011062141886689804784407923064130525192328693882216012092519974343018511989648886910532932730565968303777307328506396056524590752280791625274997269852583356312045555691878766060624942333063185872416046941912487256713358216819336677654579076080011396429109991344732337749789441098522351460572016137049084750564823466877682843476179393065026051256922625123948167208372822373938291639591801906636464538578141541137588415701644440953175401405134602948671669742278123423438186398852982421773734818818963096598984392011231089571775698226435166475600866138212656795697121565035757795667508856340095542168990398699049098963251358608864720878336773827442160873768034692012149173899800714509289794347644775794053760274170499414507168705076639980134758539103584187875778074595322379561880656615556237460441984138223636241191144676610002424803041163719102003488697967918544877543702425565161789836738832902594205501701737444649285663739676656942404038197795500429772189559462133595352565853550983093630930456638554498665192450573872144696163269937483751919163097263232104350545372970316657897996130557002347288071364152755367557823162042912740846919338975863882314447737087146712177218086865964010996412353938892221701043941019288273412174427683180278341560570008799197687645572669547714897865108554220667811688818933361563411939878986420382242905721419318406859842569182520412161557585473335450990701568236081892617338818951550612263604865859938108091846628914582627665103435484992276046897507512624738195111323016214766443332498596471810696003019232751881486147699172942874321075454180281918075760766812354519119312748661163679628208389874908648013315285193662749286874367783646530166223945098463640032050887737177004447715667096021204034175983995865042757559879317317243975169914162504566434637592517377668265608297765015632635914095224929282536521134692981760170912894967293472056528323075778720756079502997669923084455417933529487294843762960261972194598363505586368535192552648890846764197225108956512457951744463408903926500289379043874403802171168314300935606883013120353450744739329298875169096757262434734072532909669995133481320375575066117879230397620630236340354719962494188951979513297384567801525601344745415763524079543827826806657708666393391784883547259902111600877196043192690094765395545619105611338654904549371664589052963870338821933276677137560523994745537821957564671653706119164807690063058838783646663708859837887598091435081689031568932842040003725649274843077728156792474885424088769504825076504757213127022789014558080237028463955411643757640346582920755331067747062392277598564655338996883375456084827035219679077771697157065436402178865799624510645751015469691202596012350160590603041185691440925567478133742081709149313896872700497414705508682587080342223179955474056330721859195385158416418568832789432168923787893006708029413345984020932865810324657419488444615564886811301778560727458925296461956575922177273678028937534341693049502049859880718912275890564625681447757029103616902438748451700515075734799003510908863446985300494215027261990560867246535834337716299457635856563250769642745990513763264485548628446816581515139315369366018373778687606157234662908147951809984127145797606443070589920355036091266394081089821712727870881776763059938283067490045636205534362064964548486395399213223512469440919246247141246569422475536163673814017793301914591589293859598277143672637538846533251702808875226897281481896191396581280541809053438299842210378846341163486874676456701927990084985232798502737773563202440061831335038457944071960489267768198060710834795146301313326729344589370272987844770737295616023933451663973124759435340572628528073778238513611241176775084636488796749833717766501417677111418619923870180025402736694297926649946883387592530929585638150750722926568230054338945512008126882146254503279758973141703596938378563125654110896373942638150244935292160700959891895159779242527084780471080671307279099122015112607459220486433336371800627243427712573229190594159763733631543455965393373466064538396303809444443625779501861121138134685940912413489103138686046676822452353679185976334394958024679808982032599259456406256870723962752882923702649961084852871275936148652410585640723553813225339783177134536885650486838776569862186152096524693373832734756354686179301766116747606543312216682263297622051284323540755917121801758957047675126095981605618306959493352143452260325120571625690966997553241940813749803695562993097256096288538237263419746704736938247184540745336377509486397055507852481810354784317743749751273481755266453652065698701571870902519133852392953476560734028097140767588483500771682749130442316809200501649518079931242844154280206851882193183775936277823797343112507067729051377232821854613107149962513857127317349811266160402132302770063318093782505595330926405496322957810135208389527297737639947994565916316831054558392466614529056625100643960441471543041001446965095469638352112479700743330757583307508488584941607166483064643728360995897855966874099497535377126590977975538584787244154561763860339280652153840121745643647001841035135072495989750347966300493280012777391099312915019453272509980010162949281728891254912379290856100396494534536113996768876673304989930370574241367527883436747173968466502345237750572460863225223990249989384896355477387671188446746086988778677165349955738049265412327399043529004953974036928921295778990984794177511044879105988596031624311578239750247451183186410491810364291302005315171542560215106992122733560465995042434610311642228614403549805723636257882010681122525951976235257727848932894043425912928028510014876287908855574528517704454760096412997153360162142571491139011458738560569994749358662916125555657356014905271311692552638937203428192594081194238693592453791492611406534672486774392213889873066152360480213625214439167609010467172485032690889882715472161845076800329480593295755041630164850311460044508572661493651508005435944207383575799494593166614824605318289997169465472997845807524319421944202978941317845324756131829433552005810656799287387711501878145385849743926494982539676408139114163099435092963961608961906482240047210599881039103823236390927814538498222523225519321296084005010949928281501228784929014287466219883535468088661154497283548709001029259507893140908907522387498181157958334480084220791402177101137702918470775454809724270341939172900942606553208818665273474314006123049557883629423079020063094087709280291000768744317531954809523602481599060890115154898409337252308682194208779190836059448938460464982375873055191269471531173414587398440352664422899479388394314488424681444212169893452774255967266489753405413133863199466087430158781762477609344809272232890846212488767315980828916525385222145845297409344864363970590625231535585769673593960855898628289269777162784108680164218418183944819891782338455226654190991209392933019214433645684752549424418147079183904411898328483775275427963844662465410572553711333748905006029976296172960079958582807908694036983079464686754557267158159900138737293642066339909022052906120597997828444436308657151556080006127515871911232925015930613219907826827573466915142650608887133914273138534702467644105954939264275624785628516355559887785528695441683954753482786150292730122760264516371276815958086431235206512272530945429001020995217891081974582514237448286230813407979548922525207888015621141734332275212668431636495472051661082400491102858452424807529891412647101471423436487358774674559017075218987449333076081571505768229358363192007087584010317166541798174011638854494353465319506964715881550414182478015464511593306665687546094526090245336505486344238050784097344335275552214503704900010144098484686934360532177701005928977573925849116622887573433384541686640803158249040412449153561537734425346209570236886364790514014583244060251555326017438146515159428420270422568633904608792094878663745893200299237043083672398839124173994109031028048400854083068320656059221458728630572312235091663141909447957910297603515135519024562964909868045936717644366334926902566777525460897150154432617234754124198158127174958924543841662065038290398483236678169032491301700965442857990204957255936193572623068944192055408858402014262635181186622574393537450124898610411973770735549883850026144026783442050930936658910233808300005352502097417073690869332155794418754160143475991139067836504425469248564148834290707581180424476459824698217109113755835449488409210971829425365184846946952929353080173023311979834994462152087588983532759489768337259473988178855452137551659999078636988781102379558680238917227714714286080218072434347093131491558216775473268754928175484882352067816636562231333963502539245176616079580695405653357846766452835431338551491568948086609865556615134295727867210819637573207961504673607539410577271519424140275234329880176304524640386493307483580962661687374802459617679543442960171283928063202396650887467950126225996153874165180785452069147870088024522290706795173885538157583521318325352311413711706032769961049130353248029430564870839512532817528223786479503374639858445666984686955482120434450776370200234212427145960324750766931252187757574446140375583671117571067253627110846002489019557361659512195828566860941437158522336300389558004664483420729122331179643835527480631191991014458285361421312232586454935338571371996094416235764232042680560573130275406166369112171437096846523165806819555781779627000300784994183463136307711295744460563146576241373852459365056516811393408462000426961194032836831524284760966891711887014493334378133140221528594417011269356496304655162901492231797932477824277919996741009251126612875032793769115497071908855863479737630724255034832406983180604524280395610559009018067194136700762789675778669220441972441301157260679618079393190442019542444783105670217100274949090070042312935315366658475957294876906135866882656166272575087816303338701920487505260242022756272731622401737774235728081184852224933843228830031892182692527940180761839291161415913134419199307733889718654064525765876828136902830081411277535018425647635748603952606996188976909912418162029479863697176684393230571671540943840579363307486463965787165828834981672244715704077298464849487987190965202643205482229585326957813356681152942776227166614087852371289357917097221152656567356401897575619719116686651026755630364289639515690773692376782432999440411243667452125126620498931066788750956983634166120166047917679979628724560935753368397830797152654962730957284697076112891538636189217177274530135463967523637507917104875797222141023615792340180731663778425829219756501582627296710566522831237932258531178140779912552737007664894348386914621721954990017666411761425716649425709575186925943081828924206169720986202089784448596530343088794655302736664956514472167947057583122000898279737512020966370906457129050111417556712135990812179382969421608366338838939380405401292590686549403773614859409479851007761332671304444577266813221455725285943697779630871502234731947457052465636621332404500219433647490268760017365771180141456946228587738744287449225066922740603551641395365409653398539515540554396456584735806999833742238450979235611282184303026624592197447135149693587222800000807413270373375064197237158948925253331312872396452478417112258766637781000901664322169025163701803434519603227987487259174353889320245344710477183460254473800322300606002081870231569541492470633570102762204122410225838091850578854613654062362370172194592485973744260104413908950003040020615581947710700033224190634121263022550931581841407817969381046318647133228309340453943023077114772323179857910022190401798226610249342759026607082056722262650376452749228663843719567321142747318145859224259892941565115656096067591357166486555405321301353246953568546625781466635341734062539800426550736435049952078760157759646028575965832935780607053549443920307316641942581526616989803276470594601321492194270503207499625583274229760859876393046416114208953023199136103501146391244405712762090950564794665663200490926606617670182172250799256928771763770670756005122581344462256291328371023193716808572980489411317838305197952924928657156955992671989862088283532462162464151663396807506976151867823964021603416288862645219029697681567287319903455648307995543760127184996600371014674982720708992514019869232962961085936769706545164026252311864731782372029348037889835008179967153750406325146300833322825111839705076252304523949078348898852553521388365189924564883899049634016687432321076540601816010265361177302404942624146858858855751665993678027287329703751976363007074303785092491307855618893968048688895767989444562783449302151148277941122783275788036714502393958752482945031882876171184483518373729203521570657181063046827069746783740580454054702118480874371377308188904629628219425058337486284824940042112022907323879631929992180103538688225477913985544864700874035940774781470246106638532217345339123220941061257171249519579704851243166250645940944192120243953539296236256093139912984147558686258550124610427308916399702724681307227737854991555090390245970023538140260334965692618401989103172372101435681321234746682906328302945974685220768176200820139808154894585596946167262299287820635111814759143740015831013452930801271499564598651243768329445723258061305718306753915651611663718386306856248346815628554924793965311206395043904271903172634463091254597211617692531990860457872772587840204929766693152521509071380316238756243179310956898889519942761999640999549566285578403144866919829739668148369826594079289151753010456652386596812900890295690709117140474400511120744676496728105519077064915154328207513389782510717711673980643932401544120328417713793640381395952391742984329251616492536997366977477931916928171841147261381634503626525292927707487148043514144610365765605580665702214641970386171573260760570979094719626409072631589236926271976422271154256377210613735171261540283662550482004356557251314553848114143881861714735776415492298529038366294622613215868668420048415926781290020057776794925909082776664709546158936585505373061419403457950571904248675177939271182443485394244764214994986978622763699560481309219355884283298620680468160307488766693487383104920307100999153546682248128783356955031995088637558430801562012605948912666793670895253453143273617214556643981394734724615888125164562887352277976451291823188431265031414137866967359889360521292782838246299375734856361866376577576692496442702384484742659011185392145668588898229053287214174662548341386504671133426967108949941418810090778430661225483467127129116199797061808342536799324029075729371305010757918528343101242953715234282767803924080170613787279435320098420100572701892414306498077406934742901649981901624132704550593759115535856233694305846590792521505970085053713464076458144239292574881151711753154151805900127995223342191840788374572919217411908258189489127226333579416278891886780632930740283146216473100528829248174501146676590651950616370301945865612051800653253853898521851550185151210560068185341251644981211064446272439087397281069510761555295508330488929050199243530125113055801438374858090442316463552199488749890755127394315123183869099719206697210297821390826443977493595882566596921987772063762031783030552854500292721137220818451832555873912814713497441699363997235988902242348697447798049639635913071520403199841520012674157497277334021757131502289358604931870459053572103106748899114123413643133792356139313443628373067041512626017021437798665525649235556992383255286320786163715036730807863101389851826410149838378230228930338731986062154228291852076130402710638347807430875735337860117344150867841067783095706984148431313888038884606083212748692284657063670899908246158623727347122055965288560002399457546848877694332313783824496533481200155485830336132606596227873580307760286164744536307205383760321152898607287112542029377820481882912595754548905712710584441616641731736946181002925248498686684359010111407977415172939863826168093807464006733193715448038484925989671875517155694252943774375676206276878560978113974305263732560581663317683939109802973339795689321818445199292080460649122582019532527455070571958689213870370856867997444898746334086885988756791931883985130299700518417180005242360099719652034089741748121090488554936934435095214438897902503648408431219615067072225865530712824928356119248008321362649713346606761342738142698750888601671156268087972977331652655368439656127614750328300540538403398777950534336611782119865860688957573912370551598860758623277032986580727056308000457253884339452642885500872320727093003354523865321993251762018327369776198450225185887199760672636770706035649227816395384419957592206761710136118127799701581610649831104397548593938861785191210158961582313378711834606465785501030925281472590439223571751306565124670293986264310834116336355619267191534901668489068403077578386611215661581811783404600978437645893379500925535663834105265026800311158946460423959673221090048820187060031904662243268362755405365447099592788139527846149543614020443305068493815319517015370163868584964612813863604370106580200836570915058661104901995126324414704703699207753367713041596224374432809178599413424963800524735428836193981630956203734917912573044350523019932905137718041734368541520244745298361807946743329447252777628742778638215177665544517013548432941478364303519839967520253072966953979988376181430879055581043312887353165595106742358158775064152570497336845352724672735015299539450728042858347590706582230256331861630457154272733296043899420805907570586343044457713146417246750753969372246976289339276679897478505472580197615056308836772936636638437063002337516183092212050032130277845278139896213992308094919929067901625971402934761907256555165106208991372021829201593465931747315951559704899990446985392598348266800983828372905540495697541552398892942655809489242813078768641295764943091354386996257688696156836387992369336089405271504790226103288326722405162299327537035747757918149882278243620777873269060458744611033779632881077102159977649014948794197862987921775742928973687360238431871163235806877625402428945565134087798725749280333390885806282619027169930517162007560226646321906528892830713085813544147608834429452909164432011523802786614155585263722112986193165471960346827050434718133599724145768455186317454377705459581575649387162749848844416465050989796119254587633188263527359488834654873948519921836092927822516882141629058195625783267974158953581878757362104185527837294099267744797370014680864559351331241690892959865822475904582512872222958119203281442520672014547031942335360757403911942322543633413735898803685232779603464879159615487446458699003522296118742687439318948760563183135674648479225292950694685125240034480445361557614251967680981170437902187147860237919030807079789715175871818007425777841837234401706079038416268362107477671840551668318031824209377754196445920592279725919508972240768955363522492103613660167484175973120307674106612690158917108526201155632858606683936144199323758663316737199005437842352594662370775709703756422694828129761893543799075934406040022719263429706021588471201291784210307405994649498205893740092339512147777321787363047765106044941773235973894138081284831465878106407714981237779175743247609019533430280510351500510081978542940386574565818775703347063485897458915904289900789673743227261224386024368782641650188922798483006249501564862303058857351657261932553749193642893494207304736157507922640075758401850365779178221215577116215974219190337191323552816363048292739639299325993293869056247757626541218113604164007358850775980695537674202048928554786042473976262009716605791115878181463803068855057983402818065074816367835901107589686966466248012615448332765563000274554139779831988305099285487575063355590731793741180694015177128282226373611252381112699806327413676811970952163142323038662589113118674382485974229507926502308355674534441951715375263909664267455344209805043277273706056020451831877399932868354942044026549869087064668292072628691508785151096519108027981752804358262885728285184366904862918663519769285961747716721546044420976098810522221658928824055453589881804787548732183396669717086622215866705769672847834983688315301108311478457105142922417870866648413805053702341209385665528043454299115216540646605671822566984726549064972244116519358720474780073196194676901220282870773749118323522422585189550690368248940498246212573997274167077578348910400100690131699955253593128736946079895529108422187448088924234215524337816825053917103595409467574844514001943952561044378728549217939267071519023204866519909593968523472698194691114610819980737090602638064083415162679998840590315519877684642003824231743439030817653203362659628238238492284518096901526461443355030014647314579136277131663083225242972862881966673869674664331803402650654616855047870974460520769680940163771786782434601624455343691573880049821940393777332216065641440548135102357664898861812541249551248256084776042331719314479853674924360563789302120511860238304968072919871775543966605670127492663427004544417089757999107816605170312812937608482541018525075392595173009304483873690381531097004930985928048322179958998869220530820643653454145436510698726385043423930997442428885171281358994085417727124387892144627075516593730937485819406404143573523926787449616358138497743288090993927392667397590225026094172788850357668231016579404211989055826463969206166601585037716227456848267813480342576544478064177750740305553424594210850729372756311920172136919758719975386842128916087260422128829310920166518662331026132192971430381689779258543677320913257455875021839074244889648295304637972988344464625988499204718723622228413351072341238310287093794057669616258447490953333433475434848732740706794756945080229777487461387713805099918838068021131719696506881705225309125185430762720753527230531745672004271472053156311621205027338736649485709964631804156240588704341058177643677497356696590504354888144620115337100502607184901357939119572717423617444765163504000944152613915787992572573626854924675764288495383026153564462973673684291261747960040960328502621123727436647912580267172171983468027503377640801157844007792256030726235925499833454718684992667527430352138982067758118506307438480801332691773871875597184309282461969765532975154934889775373846947124022102444247574082982462336303490105739435023076785419899523930506392596005832472557920440952995911122371054832460359660852261530184758653294988971630556313702672204771112540990767223923115889330240127020945264368488351658755016441102511184759657364849848869674679442454234083701968100751857128884386159167728141628723718262515203728540546970718355609194676162536702430509821913364442241892591673996828745710832814463650842101014291450554379202357989064006982233407144970514684982015495289826789715344730344695634772977005030774930033835679637600312138886925216643910638880002047354197169976434388762107226182769691024444280989088384554879537869916542958137346392935854204806533365173307600937197274683466827879442656889646709637623739789665316768207389503737623711329548184736514360503698456056823583875930774019752496621232228288875145779583838448221655498277428657825291570750068391727231620970737752046933125795174719382961344635524270537490780430163760722591201778825081577783109642665056115208342128002369142049651292638191813102529328673935995342373684002391775082884959132987309690259029901788116867070492870805029835564249313550679590086174913569534412181317790114416127340275839760197559739743063648262984935890222724796766669073881508860031019385674989550639127254938608549441277049764505270214808304308338006843640789453598052293987833765774205104136335226140001789583304448177176046223524288179034199372500998704179942467719577971693969765497408857467633286670260317934949426809599094463547604647002654257585657131959095915227481558676679052509858637685408472804866195491357416074442146921697066310262452585044027475608016804263519495840847876408833777344547906090186333186590908927575124481197529996522305661609995368516292911446256643542747969054937887000451980907562772359987083772794415097642556626333504674067166569377368213384232126620606002965970369810266461853977028548139256188691591476338481307885460268394982786999266068986336608382536672512462921889708444435347587126232552398061887266560541210914582032889525622799465076893138156692882198403872425572337770615399795424262396482494945715784635120090919111519721299133407792267935136677962297095886516943332165093063317788218133734931472372134869638343045817171670396778420716553565591699528692814459337368386817691400262394629000072889488689012963857298460797543627556536294398725272152702411059852060520337260319179400634798780050551524092793481133847360869998768746135952495029147753459953810407416737726569692928806792898632411542734123267391422120368266570442609395408205857134161022519812370078573728776956085930703405947503199754166158595711679542785577860370999721512627456725161132329508261552304037240396262948673458315281487337371335490485039255061771700493214053784195429159556771920990029419132270536089084640981683442373431299757570960982523761283200987443799530309218637276337628481685501744241833588930462705651763183464241613940750505630750349580606444187230083469509382918379339783083347009625954658761295473596136489073319443028322185428874457976480789775535132368971353410802949183702519140631057853156402974647230299229660981277673553982480686193052766679960454850274302365245818618252628608118629134940674918486012509806999461871854958158056395200955684920857690372234955525615226591981850010937654963889665788075987747618253470047655472784065149273759291151237284016965524379991266473407115361588459249974964324828751652368142984788626369165855523121201312298794652202042571811453999276460628895733787718043433495417488020731892244468744043048252679143243696034321793209120436067287821990303844608566137741779286693616429936491247818030851450313408202147728700498194434447548396398597526226954778249645699910036909498832003301824479370823689692822196326580349167093081167797180707196424254818667882093461202177689838379528565800602657381075197590909557546151545237265925111380026231111786608305318668161894491311596979337413592051493378819367131189206095939943919262010448083868517669227091119349769478311813810334357397293031172961466912398064511537725798291808792202273389644446898943405968920769934632613570572961918884471613932633147114062373313587555920949246684110198510350691266769046841742385934589587519925526875641708260133656416811150495218754477490033248821113999769527345741095636127929941924218217996929998341833404290571605270798177213401389052222397672028130072140617205611009183545283618338535174756164847411992640287218280798469428348815331726710768983306037758081821836726393296439533562194390060317057777277092961781955457203829085692269241276479990947437485611828675617547650604789532451497768787086397067043858115663799550822933214731676438593886939161413268859634601416657100754244401097615130032125906878692495475068500299029128632650091250056031022308681514978075637012760629408930558546817186310467620419222458345811884264388250154630310850982711082860709249992503650989793131811135557359280275758748062756103855552052547355055822757695280815571392863523340135182960821798818831394044606257955602693368045849825776197091208590592393140815846094166655222700213985657961175326150644890652935906428312036014271677556799322123002428185901766603210037254818891542348667191232127787233998762928523318645738207400594565813962518692295724719969067699122997751539426149058730501373321987496849143553246572013651429362963914492468294443498726448930219505524140710174627678999276939811417696340839107072565638043437543572239888624629865610083898990040435525634074519366818182010257195365332605787817517431572068935247617110511443383536652282946951271078922843936080265569523284873828807235360277384065763049201608277480548965119928999514700461852750243980471451591030016459644759952215464915339282206252472517443916783946401404559729759891118466799591433449433349938406400934962983549744933944998449251205407872128144939937784631328556725860825096087661024574101802238500573156740955595389341724574485823824984911892603790731525682593697830913868880811753369778036742987477566415810095098580516479826310084429224768747969064827937774387222193910311539924969298367521198915837641762898806046835610157157939250578684242530855495153887450724126679739858953157983467656198165030072093921554575285449247149596547596650905529010932946575181064116641177288065412230945933529548128405662725152380249114199482894459906116812489778667774472229589948263826526840923214537845518686790020645836700419079973294780397359221327348324491686081513251566018067512790991551662131332441633632634226991230835617610113678872143864188319052968780728283519022609035272257335943079731410876022077937394747846742146248901602676901484892662285367279522558108398416239576110058497432318123566015461869507963068057306985438704272580424938355345056237793203542512786715944415859788052865690300219070334890680240958993331480291900389820944464724090062328549528411719990362370934560096199735134018097889080544379518280449598252113688361968912263318781292710373159284711427479356340448599261258721357935472848010817324099654683207767173858477055507546772549958693647242994011208780692953980734232667385382071575920891687653212926183187357678951696993045504996624415899364294462067849626728469167840499055205590940033537863631426174555300078699047966307043858933157354870548037736084201241462403922884131935438622540545946859438417493820870712564455173920315559339627819099185598761552352614862534704160010327717364136453445573459424970072966541954477166637591253950881225583722044463636776074059129658918989696642386241587253018525292210351222851705625115888498536646377889402764348761390819324883708867455493514113827022655811247392136539884436584391487606462037064495127876960014852968989711615391176739384695676075978150867906733631142444520643780474496146473883001247797798424488775300609717066676081428218926554726100637815693777506871615227255711669255360140597202541959612770769794429119474954129523728596632226876644446906811427626450792925959783819971589088307313835628830075176191662034402306417268424068426249139758502087306418752357923242752833891006265421179224966976030284881036399673281828204489842912120684057852427778034962829990673951996677141665332009776329606735073982699167950593409450089806389785865992946141863440049969888812039955296594651758984058000898463774964077388696045051388725061630609026827600730974524292175759980479771903751166411295289226718804515361676965541842771730632374648651937862985220081721725773694641499533805119048484312663570821526217751317035753889038559492220746135528161037650089267988457436774502700008177623546109634601980617297295152814274227361921551844216882926964249299905756791972005309266344360087101150220086838009854261087216716789203068345345780960282261372272633503001894063579203133561793079118541202787231379379745718109662782486351105834013635387621653294204882949075635642508106714576981527095946034979905521537110815812211705627047147485966886427083520387383598120654384072711270272480972152821274643388719218418825379240291179824300477726234861580398694440543539557298221245146272984134716177641506642516499033700456520234340758436095044129522994900954350762139890259028871011566519103682975761398977913183750533293850982474699723739955526620160295062146366742208507192038632640235967277257322437350898793633026923125736091421440994748045631764405209169216679906394314653969926652143475442672369534018769708610561410424659321486941694999443281534773244228243889206239816374545808348964090400445070305613429660685773993252959393632726774378828701484481891657673324959647457770814215472766723401835018642022626783346123228651432317235880089809774455039650536290783429967304100083875321914296192535279803580328515799434342767322390038935568253623902489224405282375005880955533415747351596868126975452812153171758291199032509278432834306794872798446785025163414236836995003662299134443676946962087777116265112578553905301990870922936076568535163600113414971719170147222091618001829397199998708205545294331977114809909603799841773856882333727968543230340541179507289285778921709892919701898270346634768474835299195000819567832097952629727267665269616845634782374899433705032514749105429406342203239041778964678877204753420226332570806224006828875340582586846302783175473322797101635517426871073102122119529848337820730491399481947625203328975118232480012928711150505407579001083701897398330382642333995670299243011917093459547527085598923095927496635590852144812143980835556599518460059703096396318529120419264333052138136925183380204665833271836381503058791922965058841495380321001021363603065538396538159696879709016924281666218037473056249287445708557598905373659215257502533413405742772385325148139079264022527347126580983025685195746884959112166536629239026755309879832440896985478418874753440791411513344408312533947047070848021935882003718508008035930364786957648304043645246412637562850398551726893935946469228557770183739762353489599457645567223298818332414236288624366373058681114830131205654753457933355877419339844710371285186251646932575848813163191510503838856654462145975501412179272445880164383781918851872289523843302710847587185661845581424090765983349848082002088166231478669825275762272907591207350404619501454584953738226000592601518273725515388946991862592898506930997429774740375602489037332097138555352078183989363741742039349279457738368742045354200871227128032876132850277728900995471198205234427303413408064730650716823279171703357099176178787143132283911038599070409073926032287936427748736930374791673839376837549988901647886524710102564053385563551199421146537481050653649398379905929905883485929814204716369104882707930820142101543150699083130613915880527360074624152715165148277454568165973406342506273700241711253869343805165338238421273591959808199986569747255230963697883334479399359514116178490402092833301773018448116311621452195339344440291916729393185342540184439623343321484327416825646272882929611954079434198316484728081771096470141349707914932132040911825321213684012651234664908499636702529118019599140016249141148204242636398129982408711208746184830456263160351874578450951930160626736693885065448958657971428686595213272949060192176850037979777473790477612264568142114030992438446580473396533438385674487140501286438798218454231224475779383879493611222614262818077693771091895748509076868787092761919943110041378195271419257708466326687601915746498593610643239773240484695028980809230889199030441421192029704021203770679132039441894866875154446109888239010957194158946337936602754143401564232230299652438859416017122080815426585629129875027088227736849133980635052599701376605633703590647337512953823903632209184451898683913890350315557349082226606317617555425574306696037273878353656112528444794300122144740096693363446349979123808120131849226557009637840308463057636981037924168417712160536351122255170665111137274868650988644594621211261372221244680479330193992930663821629699236450320199078881478678872025828161731308102504210777747444528564528712902340598658305308678011896903596764521914022797073537790440611814062159850653679782981187162256900558737638701417170196524751832104254221895696954494631709110953123910349678472428083093207119691237104375773352656797729477254902328347158242697172012373310855662446160447235181228556837812962208840230201589948583379920931521308619094928368309179747591107512667122863184180274931179584288303707005082651301083287532774552802534829739191798655972820219982722465673361646452983399033291058305713211813638924143779160686227501314468401783268589061952467659878390514250847375864650908188996598299885203160943477420510586518423594922895030117381238163520230572734772636624913280161807977563861472845319676315729364386655618429553709463216686028102353860118721679129189265730310209480190225097298311164832930913654940276586102622234093455101609310913365441403000775310133628597056992876241365468331628789893363727442730427884019089924365702240330290310647411058127073944333541604217587699893728210611310930833745855498975544934695371058121795273569202674950246675893537444085710587165011672347548208330866900506280166774954309139510947364131966527799445992349557969801641580429358629398106177514190316397330021254382960007276759400412427348036925562784755220738542463448689475828666343980136199813103635715862216095111251770649703457864969186357665883324045518698464676785784203390465989271672135488702729117813110562372475771197875484899905435046805645881886759252351779813008127197528010259471432771245144778184772228401067913767761577518016288813153940944287672897654824671321052351050223299753170135341320621543523556960440335646645173199216832690327414728495851856437852696307658986837112485329169238175086947233916648083168365436400632110106919744352829907651563680769277498864623161100745760664745498248889885906697723136190104495277672059494743871055401783630984613911142709461225841613662287267347699930322371821343595692570751873865763540335240124502579924205885645594516454544447756407939916766078932054800268781736338835940235144398010923538487637756976719993681777371517343840083661135860142126298669208643229071890639192289157831581075511771850776847437777512056500135271354920800275565287879924860753143724889180019101744404922770300649355908045139820569152377363652343984800774798925668277152426836379943499971803905514000473629783114536531996041054989137690008741938209756322927155185654122583386650342791185868469442714680866781275995757215908031307135524429077016201341035564927115635079071115019779571602212336686817971568771352737305489095245879678512069114413814724699795971472548009251189928892913179144089367719905405194336070561773668765320995852491111246015028310679452697244873169098988304707300099943816202063855939713374378843833108055880627856126238720187564102322114891325612685172210094771298668338765627555837480228555627908569178976783015045616254979202966438565084589821383177591012944093807923603688787322667125007697616373699699250066115332639771001774800064566044966571249068131225597181286035238882674385403192772129149872958155770430014465200043153388639915549231786521072283408339661413768504750430573147016086107627022132130735607344016264204975808685542196438750980487018890733757674884990247724199151568050477354814565150120974991256123584936336264339647230682920605154686583514474262156900127504919891173487999259421151033517785112448368542084312422616426269910916856254322366622944163331866599958446056149653546847035515858491339871178067747893125569474205342061846082478673744172256083315891219427033608091764802794857950193714156420011521211818889717957932448789616027043582052986628204333190095910031412108204798760322386517737097164727843521919162751345157884136907960412677710629743142599777339777259558635389844013557709210865525760463789930953104488062836363570169385377785983641915614388288433624429457031755773586710323173774140315759096271423043748317268286430981168989845462394823462832863713088792177733914396625655515924414243078151305796626617908898234351297612008155507744623366462348371116464591325582214296249220534691644014546780148290007557802484351658747280962386996942769271438905192299978034157232199707538215893782987433957972939569205087471262078185165337228415377791282387575971314689400390161323768001291902687140463111034173971593364249651986704686264769663336617805189684470521059918834054812304591830735307892395647893184368712028865476695012846853408102296006302256551689767255818010587570793641815652986154899809564541642990782916457285021345363812429697166511362445041690093135157933897853035945763021176256564737790327168732939466664021361140459633119600000553212104382505045202061213203229362626402443687342109263038674164967220480834891954933038910530303306177284599081364473198701556498675477473371034214044665937480593080772698197509118871902031176263011976396782492205522404027116075907174914166813269156055456818382669527230863845962447409168099752621484103930091103920344498897626955217376819398116787998440836173139592187656246756191912294380190094674473645460056027757812050478033953415702462887379508671932277448913817174484332824688747449147300010605737766300108204662008716133905662076050284750036369843212498863171876371037990252429890292846450852271434198149801564786629659514061333460837849953018090175108803426573125396996285161532294465410911949473449902676246630699606429663256789813933295314266798764125225927939042883018245449874578439855739379159949732017111171886384211135005178322970827141536733252169440580034504346535866266286683186989562795921520075940940905596040645978378040373927357881882217887293868519634751061133420536787419539303874464079812059222056927711635329890431473148346217535776689109972322085872685975920009697831268684163812076984054474302926218628892357115116790811712780221418318215996667201845734277513426817354042228217780351939757681598041614500812628479487418651123975976653058742010143902244465256330260908667768874543475886147090079715928906213803383717639763025442099877957730348730259400583692517514386769000447066688482639092668301813144965319000493697257238218341066602170394708025747285216329822472187208037682582428215775456114598918900413952725817708159362500545093222299124033208717418282178166481586372789461431802019198332869829036233064457357721103461386833358969386479010680551229376495902553265566729567663420919704598536306458403636964421231604564326428462037585274181669284243690352063245356212698192073603293525986994511515130815819858853343949902842992316507782422674447942250751153227222770256124610275161169941920866022405335649926522470174464224876675338130180266019302785202487948643635550829364068865451674336980625772057857807646772758763601726445604476444950769042585504561174555228310466274806428971962543984527794477251128340427700423802625078445045444444692676153320898186052633494706789781143045517365191620478189600454900206648736660380345510839734570472173525184212996994578627089014116940673032529205662017131129595373751384843168729012437982849206492160992721262868978268046304050021871732558347501156513359595628361270847442504177916196128076844559091147019659960465042019070368018830288873343427341051997670471293055780009019139341787125475250119400725709958856848536865434675122945178182581739102028409703257943186325836760792330584130653957946509963374397025821343779893357673058039616546559107495636494109652944724881977455208229102388737264485884297701861637979777610212906684648297587976650151593721244929616509978272712401207141713667599579467299770150687016121951052176149578924672905163283243847502735345900386843744377514049618243059442792339158479777286633964367318447794780353280568825105370410217048983317401749524869238371137138960048319638646200254408425179803196453715228206879067285094485671104182742194700936297158513081664373752242323468198326509262952460437584932087411316585910350002438669072492519600373765070630912883368123526422321082196221021632805604468716026418573420671303359322162891420745289826714882106397828275344385319217380275561421116616903416756624964998194150547856994884030050857195881132827047855079322299270552942485810709097360730716515841032130124007400867416760374169503967372254052834740838716983604957752984255933046531622853717098121523839557209419953829173511732344090817103978225504273468758756792139233170876249709777679083915180906927787762311100252566457111366022411634770877503342940048503511506728680001005431429866147203502564104335201301838306310993560388275624455010113909435471553278291141413066165528216116846334681362088347074347569814715132620771003409373044112552848981751611619811824839543829166544138364183084100207451310373565130521031285155577375744343038688010642754386122865832948445855776451349354318347381232134853330649096393438659631299702812549033967782178951560060553208434401007254208898732928330435778982537018936934421650617040410116975432283419806983941599078566332893060407287226291404712942825613805784071989233628060431848864031088957829819297797544020741296511280506821176867401671562035476484122140552741479837678505618350443421708446555448384358804323474984544234521408551576639646341880056590266186080744081517693900621578641808107932861201642112656716669680721594257101392259420894100487091684848690242132615446429143345293584273845380194350466899366362002836545934015379868495992124189205878136365371215422277265019365238359550118669540889232509097762592455811405878400884445321064211019607238069277434014672333057963590044640864302269696955664748779845882587694887643859832244154628156810599051011695637118220552475692767461822026367934013673446930051164474767526755091681060828991296158223904361987903626353508584743382599890013287141809263546625645608523169812245659093095761058471465877428556224778009085593855169798010069200423116829821760170660375172000044387747100256587881897645352421013056504480753160531492733793326686259894755980886359889348726710718349055830983038534418202342989346901224340436220365273694232862293708504698680124572349774290057393323966310247712171049118856660627689469270734830126249080026777497917594736718192867594287696500989975656472445998109500507514459683169934025606522590996008835304385020955429783956079921384080185381435808589681749018052022291487348936976538402534026983721917578993569972462315044868406711962203086231269550389131424783014879529240175965668611057664038861889325119736543780263892054499457359444332850387498555503085804591750401298927194579485382923366714669704852601202062240027594592179688294364293167587853637095177928090829402297247330011826855278135645568637071077447062056885906794472859621734492194789233825496644509387183160714966345600739199057093267318459918993339850564246671907282418594056092397098773294901906842809206284744993886325281041576350030844908562264384246545346895425802664670357222894108333230249370689964862703031206310204367108322937660440725084988572178525357005056719341361008945981574041901915915822972891407406001596106877852908706669583872434102938366418438058792191927805605577200664114476761882655433124500370338124350259111070283981883284259702313246716106091947856845120788786765926184464432921063625731348072389202409072179413313081996671424413477470130947945853085573005718430071937232338054772003552891526458807344068454376967323481769233639671810254037602132090428048916667235404896951196638433749035731687915864852331573968693450114730821572326968280509693700274261394859364004981396927680659533745986088365140518614745460811213891430108344231508388100212530936626533700431281158991981436407358600960198758810560555739883118975044213593539232361469643255009488512294206040303783722486850233000361623964095579379468497324525421253057374100145875645123241958573326530658152151983196577898658498528894251622615440331603715518876182320639437546366093995581140398625665659334755146839539018696428502519533250061458930084839591038449590123718999672304855091919552783694866312573081347874566345585561483940540383252638285619427055508614352845912523413474567530600536115406116807564933858660621884268054553022871045047226325392754262473219361001088926144946178881423715655037854623899728113048540494629220040226876036661516994958665935198992112956231803574162778349602728127787147629627824648410939189724833458912390414227698224552298031767774728887331127098254455098091682025736174058967263107732403242312333591641325449962589166001396676476897793827961844657512062593045576405966418346571038315317919135168650525632245880047601797880054095064648572048277272307696719733663089323450063200060392399065690068815015832765368386096417181764576196287674223656996692294308341134485281946575444126506198429569698469615301381482427069418326233097932923149627093220623122314206139544118204020334750850067395155004900246631866566613844578194029183321794179166852465660658900351655455755328754837267418192044054400178158544245593446526543773335720020098013606504286018422465703611658359804409564773550600836109383592806847695785165679651269309613004151663339669539626576012222932087397062393096491714488714648429718372024419973760310958680402094031998961713943611360209715174917593518144296085973783264572194590926968781418809970139006248454388628515280351001918022716026512201126888959930680859393519027283833169530354045964925216325707029937386987034534351367546038643241053798364514372270496634629784957547093942199890962808468376284102247436192920712177545405880216919140206416517351429418988630974828825444288099842780493932087179496851765715245716150953398614383125286230737263812427926453669643049897173841633890136336011560290087413803819749018753536334502620879836980662156230464924196515620556711639712641908623579781752905049220049900666946886772512750647638312174694785152319092402890979953011492082663768236840213651295436791486584440209975143200600629060244989937272389784966108094698623573865571995770022782914884321566867966923181192022437256034164814309239966163592740692645990578037317817237255264000898027862004010858191867935297321838368400038261855888627172560603823688608405061531883180537003475404002710275007930234250720896104991945375201962036398106804884783823258840539867631101585658574717949103498585774333634014778985746666927360973375237496041423872265323120824033558318054374071187943538684285147534504732581341978437135582499833160002689445137456018414908501613034389203662920625500153293930500142654612028897577656265608545173030781356404620080393120856138957437958813060126879792158134587330841980077130588295252153871257827371668510190380114303098647318909829183233861482814011228967715722463280567892336644806760455621776788655136966522336468999712553187870344358946032480637622045201092727166787405258807306201418822962699125384410456506762349312800749780596567388961368143255775048217350958870942618197177301199945982152574443843546096382522485250618317270299674512157452987799874691330675699141061147933064550173888810764636970726852907441827103528933153481293084916493681361704534020517866019305675917193108176300203715348885727116973481330110099393022513031307840496348472973530007869346529360571928366220091249635477595633392353116674957843587108280085358695981190841670807976151790728449905299038653013555979704279821589455790077927928453969587488719236323496846656784003285082051069839129714491334784068783989704542718156728436015051836781949806678964278069769538466085919333542399839827814227209511451791703060678454211361118869397725104690887949393949683156172209513641665185302362773766173980389519465961448593268239302787210536618459245873588430186645666662935720402002430571206666432491921722012337572214769705194445304341574860305199115845953277745930094572821765159788788821552388974717224127502758702672556808178070695293022880984827178153577624162450447171295100872024001809749987833808955093376312996853088409726025220787164425677621113592939001070484780668633096663478006417948962058694374801508384999014136891371334568117424444401212623315687551991732981097098111578509895399761458979248610764416230574279203607478739262636430276518448980196750955616507289390172518190405993549731934577851671471449229331610029392773332109281461962708648231549765869812698003815493143383854514810977554820220935248820435788507711541892517080428089608156479652947320107420669034349447032299990366573681171830839478677391596895175394973672535252966020858565626845303303467851446594693965823766890468083552319380857477938071115308821941265007415812081847678040870224672929523195435239805146552326648466420509406821054359962828477903617176363001945086341833144953246690781742035733648755975921208979349752839351280698753221836286621898774462625345960019702145750226902249378315848885442177589772010353121386928210311231930389177383286396387727971142189013036659238302708546838858738172797912018368433048332932461412730238812362498299727308579037578051568089401897643298047109805442438540789032802512355361562084047458058283024171934581936360295739813916665575863690268707678220469085896992226945425942780320230005468810011305779365292364525535423353210727864367692024206075552055925694736281516120769029767010278712455187425132146387329737108143827148418572830316690507099340902649623419832068290024497597177161517011614395185524063366987428436377249298237238905166585389521401285447527326562955650411229014021779173233224094490855397261597300422748132253632468340435576774801692619055843979423988154374278395785193183596744971411770482404857112491820240366318025139194491841915573694000809121594873653837053816528224937264379610107915050945915826390977701998111315283084658438459336476572750490767937741816484621377769950672066928008358336429074812334733991975659502393736397289223833625294482070746264803293160177135822541742656661062502396972316126877030715755576401942156536576914653084974606954984074566755511066073620465322410114785496631950868349422955587886346370046042098865514935507567917563949135793927843997748576533842192434847255911517501318114664367273363950313885181093540029400825416587153725055773506946647912217270583372509896698184081473929200101166083190396722590739720989890899396357321650405055693080670303277466983785816143528371458904996146663757276570517697474083457400372783307772720465445933863809794162866623036697124512394110362095863671230324615794975353715890584189309966960137435716828352075394109968009765287385046793467573737904735140642434001218842083540294357457106412099106644899662293503038455561842876992763667663450119918670323749520506875939712492638031572219482974778114133208225956651961227993570489087052206729772978700407061873588737024300911228344444154767213680701146068617949263924065830408431032068613053417631336238082641094359860615732177977928216316672449328426510529049107253246441334504960250848920986392456933105086587539924683776112423562933962990384279138799256913029610733191227422589109240986970175448972952410318767553099369948055386177707047972628825371200698321049870365131130645879664828014713249908371287133596726573842337557476620483759029897995045552767283818853333238938783237849234678315786586967392712249888454212921213957471933984303425655005666932378163724121655497428309809183023740264051059992953694943518161198448259563418810992748404304658146637031845682189064863004922822718248443386725209619729586943146948652808423505417546011581053878559542027647949435098288796105032895110792697970862042978006107972336885664627886146486629431056454434406070768092812645438893778551052595314581885900273198491183195655625764215246379677886931726556021004770577621386785920491352446555696053403969180851056985585884619828504760118210660716531253144453477128631149086329784617482810826224643196761613719981249024907765048958525509414851087289913083289252394691241966766629785090373751231149404314596919862323855986108029921128352246104241761791297990505271187634474258706981555257760653257210045771847349292374669455615106420059591995828500005944325373243369407367097660581318277977721635046558613488987468174134904334689498035963994100602984570299392332028228061010328868249822624432250461484353019784840419670693978992816862079930048093521345693747326047870382066602316654801401363980496621768184563890233820225556513757702111326808972127628464603019070146997520370220990038037674825597512603710647609145384077863037837008658410957437212527388187945996692759368894150332693752177275312264729851544636569477641985375645101260246039646780961745010950534115999693677642694272746326737346152610074367214191691846350314446843084534730474955058530611099124024384285921446658768854777916617138311490899103714510133097485643582434356315495612071864556488019131446590897713066742469320212691541397517754839747403041344400398465633028959195652878732264509301748612920423579654661255653690078330612345361195098808682786090092125000604668461424457739618779727211401519823255694134293007537863525117322544538097188806542606251326110845318831611085895703712860666313877396528218887681821953300646946404328469830454881344892929481662578186020727478397020024307739181004932439293872325822285793838405347314918915389600984024726527152106715112519642961041276614235678343554551978908730447602851843907900398743500401232245406069550473105348277659372957824260503028356445128360105668297975955334020610421347614540471316297482028463999534956980665279751619719775326873371895631646591596866986968544297225004063944946240469287955809051299726073444053247867419101218439723266181779622052596912657550334373447193235066514398361476438643360816375146573012915109905982352828372156544927797196834082348755610082519642818277604021976961831223660969479302313119844159932930943701359226471592169113821380168573436241302207894671887164031620134928881496793488690192235649918137363688352530272027790498529397204153970408491448230719579194189303392033050968459706658375940186757304595915843576763455988097911307718085276084721691711982897815439707547181433856666581139447056527779847414937734441472361478810006444657170046208007206575669142282136489935239540636279260569656423935746401489563667730801597221503415755299539696518490647233520526308770781792856450863945085560183953895791354650847510198258075698877608724843865641926379178052761490009165269663533767955726148459323848155253629487316380104404910833842240621478301867731061852636660187573107574389227420013098297614519999794643186908038677200884928872616897010602602156600000624441954130053629539490087030620880294954573680670533172338930365889586529962832780918187635408713775016195897492481388239681331638872658112144732041290261029871321398796499259151934490016993615183627769288218825112887583816786411531133499614023425791897351762048329472465973562850505934682174401368244332012817249139243417359700222798047735263385719109030511085998725293734903892698186732969722085304138889185023052796170824301302639815635139547006673410692157243261534493257626200663904932230669284718784591404617889552631533786834526040368612401186017760567195456808638752679193705225906627773677332619156045231000862071020994784805081376496777653015960350396069375021012350512130273209037289153030122427073185651107869156997060408560667492338616137379815103531334244497476071590271563806399751203549426716594147137584841645193439946186875496376928721730888942269937428969677245123140209445404339254754598106712523627876011091922883176873597067854391342429849425750967201862497661608093298956710656857233089373208414339676978824650527611537847501126001014149042342170426526166651040246800051583157088454147310978424673634422241558677533334252824765373162716572559103567766426096056489087769218148380587013769100901963321695000671121271010829679254044394341483711519563031720158315256441783374355887272089221580302595107958196529144645229048718803192836251780862946044469906406017704278557001482807359908051900734578328812330615907989227998026152963267843126747302700441927849162754870636650765927494476183570002791610417650129955545575079125586713199921011054620457653376620869062845507254475734513236779477995053342211260251515847032277475198402646083725856128142453679291820846145174874231558895668279338553627873445381136032295111555664720727045031561875309183748544395885057072360523355098074184854682568406535444310090144818113903617911096211151887764112758949009980128059010897116524245616023424426858538176532398762179229335196913188527898189340336814902953268605982893525410066339766274046046675807759396055232778855253174734930875920098336132779161836941758272729459945112294949937098061373861354424715551688148311849023104203346660522781503739025154705932558066352779961641301881030444264294695515055297038221401742324592521361891802001131020724867731429261368251361297829167998443579843361039758373309140962073800393583577226061492953041185824929986821681370469258039967248488496206912161796811408357219124759572360749527282289673561958522377710282732299076799662707307488005630283564795862555262458101866108881059547053885424331786324805991774305591375841179991020638582322178008697669382365297773878194425765508436107963130802094562995042733875132989184814762043469499565250299850218858754853615876096459729421753021102129104495715482795592897683118456226176092892652960027673083977647788485684666035885070796095147241752556915516242801652466360963758077053877127202097703335979653270093944852632038618278950399782750550197030335848744179484288532366965074761112444513190474984643931627492755844041953549752353175384740151621700073194992253585200704980995756015737483794335822662028945523849940855143494749704625348226392572649095103598558744980120053096538198908340850096718151469903366030937549393858713702447044402611634644400808736025522989676318157664420576679775335047461649601137252573920382436159916809991867160691187224826542103941714485163680165187913232971699577577447818474476147312986486431638079532909797570400727527496375848784221300315797482525130306568154976157119250190109489524023780709342119427270990582780098156805053342868392588197059815262971171209509636466310343130408835953395740200081569442958029323940287440015612613244018451353985252680990124537890015177829319771167709137095376697432320722982043567264445190817669413676340168240164835602284877163423436721433437213447046452730925655430940920600548488828794480247999307603777043288387192945612682542319758531978820700029196805731594027131391424252639443848264237099222887449082189146167690015494391122275234422352414991225017912328034374601246336803553438812313452603004702088742283977788850625175202314284770043179066424507864349553962917143772627539701411924760478995457374399664298513743325094108915255076041489120473625076750851878543468362858935472331520520452624258974925043701933951287699291031410776559253124544154695782568004363861582717799644923123439108112008151357249097342182511819835827644992814362311859850722905122312595967081722267145838616735482818396225900303120358354259764080216405925193774639129420545479468854347885881838110004562443394155711535031438816077429170013329422270365269863479116240899181241575685588410764745501725726646445125660869046819180282321829959279819198899776206027780163251524107449206514836557918094193745375287443238767567889086598532915948216215575413637347510767700819918322117600067498720357948799837436632400394021156063513274146615367581631531596921033286373781456121639988630996349652406942644083307950727694968903855038302663017811426027432084767049053844083042955259642528021229203585416799557658303207376622016084847660612191677167637270599536658923563987910333290532440146917244964051525197012028455037970413959538644529128596044842263846574443402998266903525206788254539467249213383726543169312662492868738519263415636962133721604416761415899757197973523825668611250456846424120628325389129037684140337987341869379384180484124934649196897172837647404522887326854671952393362936076452311965503271304943585034080482202841056306240096108896375381967225873386815814233084909769092378647420508799108361971485406047953295177439946119174508184077394953765069219865236836085218816262222853566119459990140067874238787085393028178532747915615884605001109598675773638903941611316971760139785857670608203956386508809260207321392238118049556515030139950862336963848323066876723520652202514328039028675824581560217876832830141355884104355888149034285124410545165263273436781809987001459049290441951749933825692016052951565872954917202650668114002743062664261011786899091070769697843868767221322119536326926197947140330851977474857842992636911611112429410161051815422777760484616383149979694318617333721780817000697108043997002330241358891714689412957296548475647916987629352963485572145518298178135754937577202380240307734832994292125862474850442691548363054217172125413116376751039371222709872635283419060972541404311825085701174524012252609858618901325718730872387748998338552306309865815034668497357117869001536229031778144655741657947723255799106980663293417471228005395268846515763333952478796920197846899126884729639949416908595541987724533355718713759905732441202525637957785439707005584231420503457117722341508298886106439644215971491279611441272345859329605437881049530264904840375006268475741194802819151844780569661052685563324060578483518639053286389988372103102856919373207830645710073768931728280830037520230827835382349614848059078050595277132975668918358275445956581482684983939202217254801883998366546304160796556215386995294925622766418804953758123526624623648725886578519546479826665007954680752111853257883996486218101636151885935369641477625748346117991381782667421061044177570533832234992388580487858674978140344153911235773888700659950080315311745451278394478839482671961309671181103017835444109217259721114932740441531649798192729392046004303067109985072407382141793998826825237339473223917906619708488784147507468908712466186155185599547353665158299958459801990249544983017137825781298519066211573815521279404858379703327076013133108647787329852591837224918239227621470947825768114622360967911190586797423796310883167867124805484765550435280795062682306036725002509858973826982638293403205300785770940003023864597085307302741660200976456596378661486929542441025967798640066225727615980167169752640198914031309373218242931835114794737035318205183746493524434058779021563648174800498794864264054945472812035110296968431330660240211158724668537708872320986017444986523779596117529010558842468821606299373274687630043531961773009421873128719178959305573290027120750490220254859696514921481077520008582153179702619402349702056537189987660822049657772360936012265779304035609728682780483024501862470596391093732665175885924250677974568790428767166383541988518854694467243414471400759374208359619946804247020654509278745625468178115819316479404015706360824613306257146696131490390165652448281590102857191454490072613358986264334393976421886200929518922405784867533454844080849625697478895151787499893969696646807695719978941734886840411647261774027861563244809251954409538214014960139220896695323118623823965182709771369512222933206594397493156577301932394827406493372442588073593459973682010979198003810874079736075718218692746093772340785254397662603040118638967617595950839359686148221215009846616271566932225374347192166031119758099620456052689964529437076939132918268707523553175322713909890857861294795005971005971967317718594550903556591395589474573345278279875256715558505872491103356423557128322432508308127779930427677379906050580532151210761745361928909699504848635224317628161992774134397461611465309910507670530249077632483160756622185651717046426156867097762663618235093323523718212994382113163121795581698173899004506699475432193696970939244003678728515041052831472530175000852134920860447153559760978476637882756872672860610029040257050639375217704778641482356872178919194419260213761962753020748761670455514494966153369973214547354207375984643148364212264064648308087210132243110454843398334704310843508306526507384802804366748952115222720498422578276479259083679350742073797746888551898270158488522890939788714487812971787859082945709414703607577626981081624107801528402447928516682891162545753126483235353198651224192940712189091579376846484165276166830383502373100130197421200986087554314735929477161623503722677849209819160588320660609597522851789808449759453481288556114549621230109252515973669096932487045526454581845883733266175983871744313663848030451329410790258218980964852201348074290268392889597057448432022721924681665676409589052453306380594928629507963987317806080364122699583744533529012389827591508380895323300632507116244111647220097689667487756150116095692218785114158152070122350201505614129136611600758629669632160481928416820525138249705047990097027071793888346426492435832939844515890084642296647508789586962697580741109681424172532516050380747815779436803892130999736099549632074843687683583273329778437251038915800279662349671794697673674464341782583290191412688002377599930660886676598016833722159760141993589894113940396004380108360398897174422900820836338463229681087544507821957388663289776913690597615221241104456034645424586254804982592390430817891445392760506754552258728993437904509921035683226206592540195966311541578207041646665010685406033598538174510377700039796323994064891582649850302004542712703457066781621101483957435490399298790289416737652665926868709250337087702155334652016217479915840173010192828951153880192299507763356191779491924007029037230477922986308802101433488688315473726309758003269774728795645674652262697370959506621802891094524571020369576256779245968775456053239611645848661863072760556393145010568542939515513872110135392542121739933508366624317865903607622750608472504856808947031439576431314997835909674517824208351306286691928390112749660326718776869768570973208914919811442678431776650845427593020472846974526374734024745240805000459800734715331370959871828578233973664755952736141777550238181883349160117432432955191203731922722677532484359483370070938478049817019989892674849408116126388111345502432928832266144762829797783716244039827110165620134629607500411866214595650054576310846358238866121104385388434506051864567525677390931763007077593354866240689149830103589537979305783375063096766684041421773161006053628254607388003635895749910467446574216499298078434440347586773502789298477056138005775935698793934445347118431846743926066851144230760194618366227934359509579691930555006588348191198984672001837954557589488942091401832269362454247581216956546784847046782528046369161430499055763996556676098717534886075989227200504736125782376220698852512077871343888683881117230793623519920130449029709783452321973640380344584949729769211468365162705049760974076212485964647257945542453972814852573362623897650927470214978902732539729363096240201742286507840696924937439571575187994616753491428817456046188459645048359884619768728844326600697702954015053945925024832683792531164498799618143840792734489515192331846913559497294351072168590814899172844519604789547665202758358634608961411003207194359611278881098163465304885574679739393002225919737490506311316585614770754028246085759562229716412021009459077479572716956743350688099446892236025008031930752622437846412834456361837216698769967275028859858743644887141071105464631197289164693249266983383039743709532888993622132297108147033548744664948156317268287396063535755565627421810633437518088619627684047346458452341231092244626568216955438278547189706094313279550678211938680306199823390917884121567615314814578750798085292782161573483963423236062698024581236043281998280578431893268580629892484362136422745004919456385888119928225343667703193887447285788331419273095039798002340925111972257517191254652558581842728310756264694206924653488284199260311545790659500818539204481495983671040717447501955798215809801330772844588877892177829381893035786096274535457060321706931059963149106179123745595372578295796561423992800899734377390634442721762745842441968959896123787145583339761216520683651315767837030783821256970941105245966096276436105695549350645793748163313257283977761054622572049162847797891124851941583531272143626361625414882203522160286933494013081579774312242646723119486218972225072068049995093457918353336228241616370071063521994722025732008012376135547501302284151617971693451001114032546154354329158488439304403552114934864321420738131543131552621585347596183304769804289416444846949736815264618512045646331827640505372726380428950008651041398081372016989260876148872674665955965778891306322267114243718928266293475209084543208485930013027992062807383942466092638397567207630821493509441972184459660395352283773061064533325623581401874285731266252040353503202241203518591856077540920089768459158282164711344313951986894784737663692125482996026681450355394207987473476054836203202713660647250945903791363732663321078421648686005762835974499234383321104591771097729151121999863344691481167805903825557759415295451020002928780052247938974305373662610521715028351070766954185494307275576222389125951305725433731078136679125776825377258191113386498126726872747105413768509272300234884569523500333255610216199073135611961017108089639046465672911682790716099392226830150872460294313537539625267790734203245957670075183100338817621436613270571164494498808853851977583617599786458710270021779506375955179117098609188579831382067055635196655373101793294394185378233327971861679483425023848467290387595425048388205441695079543195527609944823136417741384938633518105148535108853289039410025479634447092979645276930640751690683464359754057479111023754824970311627344370015175079123339128051536691547752355359953561161421895039663593918657870131434425594403481062057133328091360553956415023577070543814639480398113488651654358341927943701264789426968330393600903860483847567545179336912199701812392122308150065659509823235923976230277483273661490237518046177495334255911232639570484404643493984076171188503255068960631743447814308667854881471538158162664376443104567531584907564838546392189584481481157497911636525695370751953457653517369330548835935505549411105667318426152224138850245937866232227529078294053266864673418794812457078706364626089452604177014395305794854541340546700063818059700124943223860693429893398677357601581139373547233340305336089185857936930844439861809596007020571569859880514382761798736602860843717039128383102608124178302724383686058272282350472040220592898914338863000460606748094070498883836640751746526697079647775475406088599892519060684966797966276405240915124787840930619449975362170164965842844075675037276253241138288493677317294026942071573623734389244948866304515910452448034761890750045369030529323989325053876472847996547161018048899907150353450752519938561320439098366172254124727339384810361605758921700414857508965466322006291199465973918007574524598696246265568706913497331431964145267237810952679484104405161230725612108127905189011473293392980580217419241045412506807413913823269787438064609113224963117340101635817943546072001061850570530915802941235184178542036944024422751991700167869447141142370940967381379319233561330841997818719773381505221980324035988627465485046498203249000713524341611088523418482364148263827308498078231102506539619774598851004970784863539696519584195126566358627290540176267941071817913358276766355353291312556549361670016139827654961939315587012855542109193181366726838598586963221927071089916885476191631823741908762514090244135066416107676125624602942197999641991965440366813831316643541121877654117579963535168342231150382147473546330396587350484455444830922700227449686446659271843128532847057730911651895272255258021116808848680715426289429711602957666977509568100813305765055486425113809114579593015681925915967062764607105160907258249359054953655916642562322635900125335412376086478355999198532288732670424058298425457283522732983797428263833328199602910949673661795079478100203731028154380087951444471173530540947998779722113918142550558347701209737649684299302843904811172859670827905559998699623857956359941940423158105912530648804670036621925742559167932973228672056112632771586151772284589315917060074175275333955528546400888409645930253820427161999673144172866159571587373580926448070953580406841834877732250754541856582587340797566999197169554737392802592543969231845977303047185131985159213048507413231596288568265447422912043444780348639468914584165987886418163072271840285846383030946904414036093522050967527808020108871200986847806154875457592278928809420118381589826441684938373085658285862263899692584206574497194211685320607928485971982501514802294235380586335262227964054149055425050777333758840432269323653455132558254772423737676827739575639625656949406180928408751135183413727327791746468143026126378760259919783072196326870670797494408382129778798147476027635662736951125483411566508459749275720277592383614148673270451971472393187139660222711236877021581842971843411704524055595530587579757853638102455183253377538832645424772850442909746100924583045611180324673932291771814983659334723820173866203272506848978084503411546556126110011061037795335650560226893227955048300583756570983803076077168246585952997611287129250160496550711064479428181265163240113328779757008988939753772676061197615483322359819034261723323926273319348728571015186375982138713285741994242936210078040891899264075795715844498745708761842193671875542627646209537276761541842251139045010487668977685994695588844847535170999720106012175539413934189820875890261791421479749550715103158906354072449526757082127370212139654728481148886061537056079959109352633208048114993148667830198012528248828045624761634566475389275972918182273517346932297065254751241767511686175982566998325221336458836951664736109018290045887061732202855579804192939032507618109992564587496739668112551826407939261793521803995215239353023561120438729910363352140878876863714754014929219138056517189591546079981607980471620246916468608604304698037032989172852320386869552988817875173107190499434025882930152892021268824606940383760853482657997771362890423772471857154916105382307358227742732874051219960825470061522526023364693973936192063463198020721414857263864252447618570322474869029825875631718079415134201781315665332904641203676958034563159038253221588563581570862613160813815928442494230733819139182230955131466868076898908503501720418614931239452709335912012150599345515555699436537818705971133703015293215677677310854568139629721933264154018978897931143383166309406653961206493798262346225222953638943175508624546884366040489652651187135939513665055716082054806868933664751933521928359850572009510724355589578728535550547430236301546675256288977929013063148618125228227877359423228233307628748546405777854940142325494430720302854039852713294324793137797286313428698596405489081633135246511412449012852987853241372959511293055732680622720479532995787656009966688613114330782257675326252260473436374296872528316157222355642964619698233099332669885550453048908057859847144743808989600590987142053003370694010107561533166374892058230363758560759780122594112640064509564570822810800326708463525465599615549901144360470857629744138662387751833447791582608754467174489813533865324258829859978291148148135267604463753686408214004158750439221950483902712334540402720986051126524706607631113694914159474486955624698546222486980349272362428714905620369757875138520396692066685087561040733274297738814663944167814024266265772680040284572101278906382463608419950606695588451685453665803784980411694697985684069547325947070583787957427451694158765430914020186271328184396435677967041270528779966819179434079114851299724311487234548213669419952822516274610988897041296337846895183699114195941634279055529113916086927295827496374437349222966629872949363986325991944222158249824097435493220587940970866030669033921306622511168945688217825888257442605653134758323793190971448369820574231847206313478844559930200727390449087384584282462331510356239934982404349483410488843859157366516838986772934202256669586894108611839078224035109907874868872977431434210838668462916592586396547000543084480840775051177658056872364592734291022164503216798401639037800356212483614848321947539198636637001901320218852017475371767380578885060260759137914241574300969829096578006326005910907349988713743340293894916407186333039304644090634844709896806910153161060611623109412492280149184378723547504131115236292928045319891390660760902469760514902639532699407816477116835813875374211770828899899147296601642801992332417178283885669275157868373338091390623784844037512014923147140038258491944721449839310263823210352687737564398854330307849683476063994066428641174220657619327760679909366183199277096039733445996346173109980110365625278647742706103382666252374209972200245188870506465890802252728977600272649457558833714168079752589430747136932429386698580468680436222304282243308482870038603008507746211772104666554914803819705904438344799668838807834758271014068906871641422151367558780844569209468693603142582870168973918377786923234674116783364205735796557616996086708244033486006363457662483526946696733045895868089383664066419745798370587304268538299634237633555975325172866724365338895384173381778128316822712096962301295850900406555748782716923992898772407083230655610714999885513041066468874804638204429089785678781652619038831437703287198212812554568099318966563151909255504511463102902483143140288313231009717637494650177073114770839318465044869762210164368034514347776851877144962770278921853937177759578393019945126616266906256730527348859081621473488070304611712100472278121182729623003477567629311259972054175681771126069671027120059438725154854215823983758910303752022998916443833629777061688306791778523963330070530369847862248391619989361467697427392399674519162921396487472519154291905690902958878888638736888870768596168221167451445696304670854603082754157545242496315476135631887382114488199968949956982499456384634731497629082540710507281151204616354400195345129961279374725007461891612213380777152608909315681326126142920653873478964400249116744250695734215908252137689611099129317666063406268290875744788237178576737029225837180411582392433665657850269324437642036286886389297201181464039660525058382552791143275187223883060325199284264052956608329245463271264280111371152621821610473519166911143662274996207879890097031657550397432904196652724960578047442116726485199808279348049058077026308423900358118029186626170496810964536533149619201959092458974421819966632447084485519023416798414849662644192378836397881701779613001817601512796956609558677440090381281086683091839941330717691342115680348278690805554273973997757205701386332139425814958500998882047392067980929339251821073946716722683592583236170242564319857687300006782601532874153773913127154037875300422671205880473085379111969561760315322698030997650557799027560063916408200780139678743137250121807066464129882518266568425229250373978235818110681408551662217285727199030970987213018824513645767468336292162956097538650813510900193647890725516606224535918335558760068733795151969277182302817705006832048005375328988036626186712606504605865735973979412321077914095545245526198458675656658168831650585321043339605464566048444473968079954118434511150786857534828971587202019219508972880360189752970054533532266461225093684167074111072680125797999443077724160568974278116554911671799286659943820339611628794981722862693631675803453937336756340161578500009843848948714387543729443008284228890424879818312910322581529979220006621982933884556384389476308734844550081120540601977047355090908387465148409007731386619752439862980529212046461003176937842403563498594602812231979301197380906555102220312112699160415543134656124474499997366307614217090430285866179375889126725550093503498697619257934550614063513078581199283009877783180375919865765498883280968784782434215730369935221030392562633181985324154444127558915010268208664699606423779761447739422906492037392341300094914314667374641403353142494086755697305661811653926561635462086762341587125574538467395346793818118903969288899295394347799352866450130219311584723557484112218589416666731360765967709901603741837390336909892524903312738691160485074693285592757556880977241775114072118867011723859958024228840970135689160296869292721817706747533342276325803620944527974907330801736416213482472048047010627585035721887776226985515565126388552432307647524245399341304942331594164438552850412873602076203777363805204034733070808501184896036271745869700588514086202207934857208864547596644698383951637607631678020408531720421740722096948780031514734474583292918090265366838841763239374575406647777987888759082186517091391016022307172479707957923145861055375521387775232788672468039265324299786070729564195311608379669523259810031952601183882849234193771258145888630196868640371324759530292984143139412369182579508220129594290476179910312836640291588997701112668516302320406369601059613162112060924129523812114739854795721258296495902755778436676025807080515750378532046641698505432080251084598517442408478032400372726991800933371983035074443209060959203583699296027255492794027060207646416890275315863179502345010689738732970075523885320834365728527552985664243753953911232516996612686885450108284931958838270713959118918077188092892958726122104290605948625885338678772826739880794203534870165115239777184056228108737481069705451781713672901223482437155723660934224978858823961763475231052241595884460591698133490468059019496246184899918996847921793344518940550549613542635032529454379489156184013337433662016706336635165987451644673501381240359730466003458344688799220430072888839778330019949985221897081925803727838614739295108395227547523574538805294971212871606428753789304431137535678149921125868119848221333979735624729660334092922989598761401180461250332147859280899211501300472303111253850475129363989055099995924252021013344479058767020017254537610835146207634318013516986883115762140853950759361096463176502709576424983378715568717258604769472143668468353897117571352152719202914953747050280785416676460499467826657567685236486175134099545090133605222875524149718292461884109435528652643956419676605909510173141445298316917676075378498286283872816713976478687467912982454625286539455779483975810382316619271873501573826964395492516466449914823175493639860050812839915890126704305935639649780874727011243340424345896841653980616270623996287725904479236382527459443562552454547257816531961995504472512762700565462183269624767045266898256098888868667547929151764128072949918216387344097642659315069279449895685079389784729490207576150678316014823771903011172836719690735107144849507035753102536757962889443979696221439303234625826370800515898183195738464457614276532277422850886927079944279527618918284898362540899534002902685912547519507043281632062874431677639655075980812773310616839060059522138127629576548347400215080050008746338848939587617500547530029564890659353006002260339971402289297594309013818194371877423804836102748029534903205606491679798680883673912159142940832217236393390339899629740331038612018893650091154833335536837068888410782254143445960106163290125311647758463243284158027631969043400205320617927587430209264707393345439414882309479451461256622458803992505095332369468961954848546583584654468031000608505593590609658117682075949158982956794791930229632432696795741885842458227234162347594831311206082947118361523630150550536305532537653651991423393805761106643269732566694772772023057315061159710107171522607694036108917245425064704124176898383095642776365405603224523817342589826602806078479886476962856081299956146590454684723067202762966559350312160211189177986650948564940300837199411313320516368668544078225914039738113243575862083525730639562896527286269827648359866211475492866340147266749582334948331933430864951542093629064973233707114803758345634490627883095088580739330006507235727552816681912082890987136833324574059870284978597846190005571106419447131612743792171570940521578088191332304308920556745442242630527301419732201107094341061075391395547379594497926921749282043876301450942040478958797337582543305724073355485020805314842689674099542031131116389390454153267092842298530551840860429664015886580446040831271193420921052421843302646168905091829525616757115389601535243205241289659100945704385764782337936486677456115045252256965687901626315281750523356054335541606552772507251858046231596658157724520193252511922762493000197831086353916433558902199974810418416819049960265923284254065437899255075536697784548757109591032207027194682455175877029914806618380379446667843507355383403595268575857710805991665089823171140736164703742330461540980127312718028663759827219401972408535508839206686056059675303016146885648795641934577040037192955420811686516877735398682375838019574523270108593127765446726521286470327829299110344793090477733838490522664034421260683405995330961673402105363495915917813148598528669049205498048225510605349757399988958376336777759131765389961826725707044612764789740295640513587347373982279620903281643094041463441044750685609438018057784528002177181206121286903750548656035744942696999686375557045518827284664385809178846045213045897471771730080633496534347185978542072112045155276658555672805173275636205045170219489020850967552815718372806968020645968773246185889876455399692786591464850161821927641346694644502525337186992204911949025055981704577611857653110600021124430839691851977538343359407033980509823895622400814741787202450488502854023733274211592859957360192623837531713736030121246421039721635697049956029672196706912423694474331458147546700039482332574862485224777870719661486392787378024338335833692129326081673072145300738604166476076634779764208707288583855388892209114229402209503380848911814456764126723042231039963763993305420295655630406023416026916673850905604076202140507700705835427333326399577279883850745388353725151338532216438953281467413662021230671129880466812903560066407757812635586456812004333403799375079178545257835886756240153657083293342638918221714552161654005380187060908652809081982789367939993720415689086394135096344428884090628049635930459147617321006646277493285785904812315218715145358101433021930005762760922340244051181486739387464819129943898874764857225055315253902889011087261106943027838950743704107625277765880536566601895950125871181912410748624508612253457072911282064817883428184065083204856085123751296695595535743292766669664497929794291926663564374889894389417955130209527371162729304323124222469493674831722687817773111254705914183181937871543249949865072395197070893652761064238857868062753552503994126693344372357600263209076917374510031069206486367667400222968828952281373799223863777289988432262679681002524862870872349517749417982500537347956688693164804931804541102659578864942726126692145621660626778091801812217512280049814257866019851357851113204295442553790844318643983468470224089620793443567984549190902388673501364724348755648905710175707525627069736729230463701961629521285274680075615892188688335048171339934735370229196437286733812429275956087456726561242154449101915299595459295189157735132325967220952528822306474324906232258256095543851723599914191929622092865329734713901625263537988101239086652838374702328360982836200003988888440988706217136049748126171632889439802484837289656432771247085448630251365155296044125155601397924938699504276419432242439468790611864000939639497687520378353623794244101447564580700584669032132489648896031394086294148817924511407973771060324884731808980624960937448384118021701238668227124606595150306211442792445426934222182828900695014109773434099643027786425241109809418844389793386572545836773122790113540270722070660138250254203786810697241313937309034157452763006946529147869232801111334021606315018147536911134207305817174833323513210593576049027186310488686688364898407560959132997432704602442848897385264633984736881075712385431710710570635653348178932947638263241730292153463354988551999966112010170972548863982868590394312653444634822574223247770672593220594845714407585544264504389491174955808627411268664066281755619824834145697474509333242829295733730418866631483839378925223415059790617236255640519196292055657809801453579442126405932662996370079550175853193682464672783265362992177892861906024885718429643272480251062539070166759728432254068573098492232851124358616191087753923971148797048409131646220419529015429877212450865172073723119845191349355377655623282565495026586630848287926726486574799734145275021821394735469510286582205030174711508788757450674896295265522030137688367282934001550414073829890758660956793152389054386626105061777603120242064908689780547766647108899599744639276704686216817036004967828405519588433619503178701445374654680126132132793833333234158940170118203660408701878020594821108367290505143901698599445301829674760501590011250968549676403172063770537007715638170638815283627604417862856621944394744427415359105390061119916913881710053067378305182694484762678939522978215606889805356192072737860690982197035311854595264296517014779068994187708656296056580698934668258218797775864444096014150230551806396202049117686879673067857511924274972623835940263215914148562794220513621429480507415635660629869122628753310392949918527733592490660856431161404745612745369541511977541963791668852603488118051531592464120401259487054226969191215698555330998875166110708221345370699435945176047417070681771401215055932773471298164732599486189741272861530605245635570814994586345991161665819418800625719448516303716993007003936569946733780089515670353763744706287613252730563344783242524440830497700214433684105864357027532811567976667007691215093564615089023870342340671949877888518644083154175435707257488873254693186780150442443409922157010889914175656322844197354095919176606218186918974140930850737671051726007321168979160228742557596454394520745067382985928592302797308288443978296699861489549934420170541179480575980886410634695639266238142262829838098293320512105029993410584114783101627671117272095355129467441040039461542870515612191888777261631514411250724234456992144057379134443442423062424609287564114054365661498898576974404493415207455802389333111639922770156345969628809976479348346430869812453144562193420577439671145041791389218710440672483483724137765165611856815546495157321821795273546767230627257928606482228953132050174812895312786509884403552336440759605989737729869059461809094163326815583470751533272723320151898756227721333903521529161334059356885140160383434830215093741837842247761964139085158823904292271550421798324805113406179357505837053658320219887596683393308263233368330885808579242485870678426239179977050386900792343589362393027494168283595926002191880503640714588509725257997367504823812511182651337185284997658879630368845086964130002850807215768340949893608205238476648664063525474984164688442749013970163542117613127616002516055680106605063250759128615228377154088587812887105432120394079906203566708113171017940881781750870884770309117788653761784286584881031377372658716967368109280102204255449416882002715720080209331259666563652174510246985629171015777732844332227689432453983078941141855822334543335171099102837250214087252841973672546599672088801326583662665001873388617122300426872060840903032785484992592664866052710392393026892080017085320893378188267873036231062217169718780019936999974647156075955071509867336768585217720626975618306645722876833823359820147265147705119282498140622766698644974766662909872809188039152584247987092654263165137416372517808883759909458041180395038734646417981482401810720780261219853498412704754297664919218563879361933673634049421931492203787525355314894698527548608787272829184878736315938446336393396466316080600542316059005387118041481535456349753028186657989634777094399122724987101882611719866521055053039176535677317221183486457891092752942078018568722402696484613468637951975291731903459452957093526634834182710265629095064919481816245185504451495750835027845741588494943164698320510559451049865040506902986011802177603479427006504647092056792650633357226923584693813309593331639466571819649715078611572897865271013210503303833322446269556398430284834561778401365247294340536164589522386708398964240176648379471400239812816246598316572675283031058073425140331498064635846339692528886198628481961418883618460649259244569671381984847933784638992097446478775811310569369025098419173578613777293150339900435348254386672800277158233413306217836359900241306023790049976564057263912755547792983880868705319815921677948020421995640016703056837994102730139816754750815721779450674218714372205035601312183904885144476115812518015079777905597444303309100259281793281949343488523457335300902758907546095985458520525502820022295247836892424915044572760367705115985028266882142972087904782929357735366583300472741796753606884404920432177922587765496893581374542586660441814738194959060840307122084456797655401563862057028036121043773855920065571922137301924261139707055808085565507539554355064579890036853569731062189252440895829770163994275305957376547834544908881838635158491395571002664667518734595597306682418360687366219894607155490726123660086252796804795578462671850938110483911201491162924981223292003938739705170530271674603428487960319088610280522518609643734246350513659311550976668030641976268477861554527099854227458942288593453003231711920533706389505470458064621793799986666855960790478598653783679469946554641918061025021541047062762231556719936419847039436078237447707492061344808227799746706793722854458099187879549625262043584611441573303410405250918360314829562711374232456513431649508797413464769135253483780737644807698310033483711078182971455175150995585019010000024397633465893075851880549080735472539487706095490381810074481147836606324414653728329008225132630702380362008195641380642302505188060535367191800175807968743894347820170625086883653638210780911465990625431348042025127809568122899342341000965112209364263397862342746895871886583547609527425620411644872436053853428611445486936396237419423303301745438820773119912372594283473494122416971590212643601386425457974137621296090065135644896370829082137666076481518705846245299061468716606673970225592177213162489836614120403617907544058642751523570180112606852148859921296635879265561473178093498230639675061695435634730887332270574589003572256838508896750477421715190767886519873307685136121871778028983361826822728175271325814991819146189020363924934982183577176855056802263961388691425418805043626803320800568162917490232627623213885118980647527876844721579806363725144960287923076430743699733362078455568504797997784520874944939421423133947491304002930416967397914680080338952932953068299538107810915725568516974978073152343979405711354365380797605811209616624885190677415254146256992265480376347776470548299339744603005130283452862579163529265098915315360377753457278699643936859569085676629310278451527520386339620552253243997249151574190080988808459232905589003816808926705637512701021806626887305418515026826161207271174900701735355823300996010080041557773815886766280344170003038179475205749931459226570690918790718159680385614636451921688641814304672042486963050150372065710755539729494296237528447109973620297370739082104776206247789774895888092518849784168772112756909163791641977985887812551553928759157788582048288504520545677656211462494450711008732543285714820031619030003567918100900088055084423861365026458075763410583838981878882340463358773015602424794814873128757477102898467085518604142357466528737421735743391060876647036271678699545328323590398223797389832388384788097992462123509025265335282468524670372348804114725104004097897341583818319928504306179908854790870006430997299667846877186279811253211187502027967929591798130579817983197729491696033241072216129791561408285129296544839716564121263957989187616003353665490771953004394783198701603412613290254513930669993889386330842401253484527232413531984645032473806335589997711327864867919332926574189150423027969418894924443440174972496758208410882398709745920305846935194598045620092443565294378469969660305989122972798311785099283855115191303529097638993820372869714780806207110295179720637542361825009422889834013515715392682612005663342464310239333819295039812789721874084660309312429036695939102562073282699824386246173107852034090353501424562310805010737265981149476313569164273638742859482367756291991604266120049031263936735510157170632477046990951973979206977041186190148202844913157613559025581368588052238552672692175242779805961905729940176380116698456401133748256469314474534627022227746840806075216328011643986994299258966974326180657831113716921007453313597080624713852195101756535842976978813391258398416406262276236491950504168627027136583394998177707805269882912288666010645190250279328945643759051217330861239890841942838710369490838728440218473296921520141121982934528398713879294203567028940773664964022390749557109665688363923876923489073598361730535202655965254656140715681422432434326999672169529249844135423079935821335956919269097587925666493199445008048437341063564450806199731204643837696126662958321148723558962170632337014955920102376203019574796866849308207214856848076370699290563977393838195042959911052277509169549464249695349538050361517024844122161618202440900102223633043617419576712006498234242705264735733728192090440086665959169882639219501638043328151929128155556136133843857943553571502087357282122928611847949474769749241069246449395531137604019646437309606520714024759737886674709704736886497236677065901269778829259189987267688195828002336219772656682757553877871475072257601059454263120111306554291680461902099193619658276324664482989240166817324871389391591446610801288366820058797840223128844606740101731548448195288934596175326998452357719202860173929015791352573117199856337755714907873546519867093237448064581642660147599981788134784804454173686305868784379763424694156271002415987276107116300385080278479233386959229535941203061896287333389425769379879346085859182100985767850117926741041715957937642550415114403054811676286995093077823378769284917347870324546616336134956480327669461878657511730875388509154437792641725616396178271490585856545149792183818902024002177828084255089563364231914236932100544102754044768979407538955543382479631952117637356360757410721303534994826985157059553281022814719633539789671387356790777779767747360009225364885660169593860595838694601943765334942609201752680830762234704195254373316662288363770995920410550650386888607412636973920471361505295140301751393083819255469022750816948794516081031613016563817249411366770933112332135801520719540796875115811944925141157865603866397619757089178969151412151073644651991617507800371825104859766174589357535040315388182276835797043240953632873078884705931355610625438511445639793443628786142755900073392992587049686008025900243122665524304409272524361772638580189160470314140479619343234322934193430315298573199202360403008706281843807689215519513987549021847468909861691542110996856857221379937914551385510545819539694618807170991118322263857740973359570377536673212481327268090592991239181815090125528582989684127530515092457352783546005484898138008052040339299947802488067929337723006080135631966894200984214732544914797530321739471137442498764166122396513953521811165705088078726305132571968664449144386078438594851000466510632958002497894844471340556775715444746706006287902095942140090429053923928943451955509110866076525975063364627628845593513106090296571566957772710404082849777413148708784553290524982926603610011517847359312767116652279736410144822097413873416109838666282726075921423260479425467069770540108095604481641152797487234701091469381166215649459832918845386718831163519275168548924832309610658289760766882831255352507679182309893337744000766699637895771080163865916259298990261514554312644146136494339487966724152533510983580277968396494562117659617234386655242643315582138459210783378408646781959580736880653020673072855731420660184523043907067822630065456019600782106843923325228199857509651371562262261466049388558067671560659413822815173173364133401476703345800273221051237913841071012255982253471798982174041338992834576074564618646125823085284379868342009223296200392732609828449414220721346566587859924778766791097780759419060343563411987976443444782967756120210885268205864413976850714187305499921119771961673801455474214207178903069195219764322144724135536073677881551413241154277491002169761120527468538118344487138395571151550609253360625936009388271637736944367033796690873746860263071191232526911375886959027221146019732094350220709083625876983978455778683085527782395673540604693067982361852042957171289830209356165066169967246691767448470696495181646813108981140826467953381232777739576053912711281371161526597437881901493592311510502823261873598510672951538990815169006325346800329006672028565041464244565867985211344122330574295720414412553293649010367209126237671821737246505834994937267481069467598917581342912721884261936153295253294880462408533776690075552257413583574245114692649023745394482249848587484559342634347562970432244599517424420883330407965529805594230684683608738652005056473231071439735903691533546585171851430889637789187898200823477720075274657847345282503886831192675392816448638263684151165035002046792668457721842576861150168149360318072317182716026778613305086740291161808441936689346258011300281120108707435735109814353768467414121550157934256058252145614699356794609090367573941730599306495808879978453971552194538269857734887159950406948712141872811280985697210566514349248971601199567243967210618936689010966154085115250616287831302142442524223737998023659702181904133625872357146146309797945682165537286943264239673250162036770703734213340754951525609296467230998877818259242824777626029958517539837547702681765984210093212746638836521353740639733315559731676385238382789198311766932989847694818980163301698296629016570903937336818963917034499455897862469497574896037355584211120436913694081723220182975522753219388524940626889013378656463832763461331602297361843151215855050733047852279771042104088456183979376803092943597148060128794892056520841590658012877094631848692287745799367619657426423035632107935282460357155852186261086544510721865309647645315065295797843144461630439960339567056105861550594835764566228774478989634493635055677630497914383118513243417348453908604642969547028263741985200709461155364181959062602214334389308868870248484010056074057821522125474336695207036712011024544149519159245501957520780105577085784401765892666299902113459142331773662903641511219763975552970542211682435167655286237928267218545097031050764387407959717964629372121554292343994737256049031693712030216009095362952132505015413487514210495766735217845548388159000382066022531373450803667107169296110736670959256379715623216051767111532823537992305380494346465156453882230995583501616103855621399983904275167426700627297159948680865371051705037647484111075377914887401162264055934072904559912529994209557745342214736214736160577997391832197716113970709370094245498341541115759777176084466698092487075404431586070607489284838701288098407455327215106194734881337035861957804620456277551121118366217934213350011982354325633170138207025788793232194766474039588992141537059842669584770894387453451923604920356862653625871114467459997498212070961121917199394674723354967064998101354344170066646283700415900437048432501662525172774098431060805960745343066831856969789600810937954484048785028778869799311291042586037954031357837672930755103782393604413322320022956582159375780868486495120739684269234841700385443287376143152493118011517233495459646033221345441551643581474360864126639257051249911087131842029626829461856645966289079747403156695340451037199814867543477404862017605539671001668685421527538780044330270598021225717632522839971055176957234647506931465166336092743029509208779425531942057383150489257728516398852848689266283903272397900256283769140147087468550916903627146983272707385557796608640205428649761218752600005397713503572797603521924379784263764808883463809147375647080950609695985680313100271853456355624184107596159805787369594479266232519916864962539379934133655075594348038639917229725769258867478363954585466238342666010752027560656216763603622368978935506175380148248748583033809686872401271511988002354149442572413479881825960360470692064055404006674052910293428058484078820030844667388052744978016383941174267853670539889310289379916453999641762973007143622765187205984926990024103670419055724785027110362959593824254522908015996319499971860175334534274982596351869437617970888015433168593680575093008033325550859280427924063606911544486430799578317650745052431202672839920035350677914631088141675701377374369941482058797937796750056215050223228681782604755165201864441876290069129684528800654560718472325281528014792860594088135591392318367239669114342260284459496343283762242189135730958611070367180409213386865064093421116018303324257183355417658129748471351442733956706083922581419825442822130637777331118634415917485696573924667607895669244131117134936768609971782728400502135202849091316379457870310124924436742507300579276500956877771984611787189638888717304923953659515408006063834585789208939891097847502268505097380244762106327160697062458847248248266529608438120621773814626683429016613458535450813723859127276551866240535913766410554710944664590448483856898992420029185237563185795404678787550338266518424311384515716581928920873648004038746783309783987466802544337698063403315968460666549884735364830962311654145008309119665956240930504987286594434846871378362756652686409875546333585754884849032251861688445278840755585368514044306480609464221299537671296056431926319054060109991654716734081526197253024500837424840206079113191035869029031568368833764039999007908190836892727905276573033674925115534286958864832872190643817635379848633879716550058246870397736891819762653109831987057613369946630206244363575503067023259427576554753608349390202193132245678529203358295574926587031154794266290246887576525899251505676726158412433861945867501770823185640186844553341235136346867743235200876201660488084099758861780348250804723997448311607288645854769537341096025948097984644002989152538490639079546362291137966538259444359222317537478447579226829659601687671817266512509536879799461678151639561179560667033846144894109987123912786135928667226676511412710243159318712955949638657015700732937713165011968745764717175206115777424528686947082101721671256669468251233248855590879375798544536492680098931827983777681921554131981265372098047525729045066513651279720132957567917655346610424244809086237703741467318247458801462917827708973443612625804870310671325833844658496233006037737875210319746345280415183906993105016364212586921426878916534032392445440881924255044913115834655328899518727153501366895664638485954099601390988869884413554097931074585773198003398356467613048095494267474652260536642466373879488233189460287038045864252435046245120907894974924564275916257453690055053686953492921792223138013620620689422318714874567844442184463241964245873074855366755563542679501118731030884636296782241972240484344413801202438014561312289417781094316498588380952930516009661308156236447513745309104112367722463468975052281944177129979772950052559898431150905084980042625876261484878238573712595484903234365347893391332266249108837847061349325173446204657194009620856513416868332787470929973066440260812369115577778691861149255154189619577432983157685539742722976685381594034591353274158643763764753404213922668488512795791462322224219368033640962458718836200797976942565251335739184248153308606917304973604887193470276462417640515499783429168057542333740754090985857359981841470976358332824681263191565227500152700095536064632174288407799564414196061269337916221967667989331205671888585756249077839279888513897548782317390955504919500914850970942590074364539842507350631479056033125026133818103197819499512541573448213046733915028403851298246503972820411488533188201670619609859666150466384059993465674778979192041424190618362493892464392543254317246679609304879770472173553089803120514591383881875987955041233487124013509964595408896160382903133391201155090277655839880962671527716020644556164378911897340323907798420519829343496850550421077211287651976501129360723990330956394381318721581476882016174467870549893346881341067602747301719593991007439756878405182107071993604496629805503600262572723264921092744040218470920365978389130104393860599229068457273755965825983713460211214234740433257469394567682468620123197979212202790228137433782621672894599384251551321719415783164526608272100801960351326143335549935804104430084491354913390407524992172731555257462963807919107772518295613676120939154180595256852276602586878182274336876116860030071320952828094315888727497084789131935960748133119961037397945848388068708888032136702598755594272215710585630761023533675358956543509994615358594074833131569764135364198539679862259887518962922267934840928396779764782700188546532062200220386755921543265498506122537946393313725593198618525686427320422012795288840411253521477305191045191480801314893862784282507411376783209497732560603227534628885943835917982303480902232031925700040283699813999889029184239594405656161115632306722910823739037237175392840968855509121246848544319813510236566645114642725859017336946780686905685769697338433378166184513398256938423822905337394066819119520010152444895725018537162777769099031939863986195281289064071246168183185916436311391783469372501201491403349059860845974150349512879668496418785520636259563191771427586866042597438073051434033227376135687274434377319874967592937432409356165945398270549545974855392239988559699891969145172735891297339022617279070310169466932226948716073690470910662318854935209352554645627345283241573895232474875603091670853348856289888091349300193457302203541734438485163460421700822220420436852697780460868484319158930972634339504581170319258816543255957897254390812598199702964022060920481099697335000195978809932141008949853861233439542639293923184570225633301899353292495601677551941718829712475677949472467704236610750677547452324066322113685606105012833964576073005052774999139485394500461467167494518406385184358548869500454106528619447083805939888401346457914557046547493884062026459558059868495635894407156001840392403665780280122625722532100611366740173191827934372053214456953818766075033457091884849351126718157979501105547054906961847651216645219287708844470188581107418625724845159344825066540722199201328428869515541993733951697375057282351827160426857068836177746725561166245950330225218821281378731301377724179650801168315547828268063603043102764696163196117571068898412125077357983995276581226571454693036226369975097027698601493552203124304124249895484584943973658423564385273132559467822650378466050389266784547245853139230812899612725827204830440148900477950926667799463547509084099033287167172178448089232647069405747726942371103776693432967282882938263455794176861228964726832954503377417828367193958932143137696517839030258728897146707217054493754934846388386064358062451150590279932020667803025266554316545340202698206028405571884662110652038330376478603996257815670804561559062590285592982845118212887368638127644556676192850915253404442454154596677227997286649543746903055197509637053764538944513432987358416585749244532419552376128587519273322746594419895187309598505776315695336567468495273284764909661527039184920212841034957012243616825297223861754694328052406804562490521484279984465606802935844755126562899521113658821041492652497702667056040892097679483510626452851151541917171329837895395072816089772277127997811484532408397004819485899487872366768830403662041285476126725408320829880320063283099366508995002328825270971111830111485012607094711967736918590963318599492876526901846052350602817172943244979166509571817245781369387364262970510404417749450508355350028241172343299124649151705154827105400549285337788624101541013946438754747729395864919249536607246870810390375217310417137480624269759739369177679512605057530077839305682248132150951501931652258287072026064971138272847444370860433304856317958287064876270701917565627455820707647129330979554671441481525658073252988127391853765604704129618304997448396563489966076153520538769603299344973702241039717675821744993139108908493130633194570205584087947198845158423721481446473532355275280416801887618175382983387788613691259832834801849149676936528947872312546744468939081920382660080855239836274252454378786836225205483533974702818506331630661869929340015335201306357076240361899779886680501790375616724639719938489519063292576827284731149109012062876314874886688715789968326935289465433176062469260822676573279602976569859202851161929579516542519491120550368553131171028472150754552762666611797510140471257233064116194664112852713408525909696222882246326883038519754948174143918783843502093194292765626955151521232083394772962590207799452345866111109910842637381295689917833051726561449586129925384717586516203656951699639519697035422961878279281802281492551777052162556423135849114272313397915106200322539912181325699555665257436811287102523913647054912173529454539164893062464829862422667893422929569625241216393861736264772225297235990591252546950866533849404716457883939892096136845273138802219202651476744351138708097286812996156969860086563769728530267547242198743012190183646983358970920348502827167122060383767325639211643089653057642371475376327469435546660717100863307979209399943974060427348780872411496166502537133304086015818520939029649178605271837149720947887649642155361535917199935848499903430280136378812900997869405455505181719988046743637507045909891194925175565200757448391369922638195780045494232767819864511061580060118030143591577362643929010986072730609609471600040238739799131207515930775118893324496315375401333474791061678253452864551709715942773113392746650552595316285429365508180657576016460665763568281231849515736411449418332446052836675814053304433253165066444248803351508864427821520829795896150446209954319816161681716698479911723613374631305024449437099982950816844815567436678680524584257733087860458154964363867166030624525421414546955540445032224731272340743360129822903004796283577526992840128625958061193744107582884181111321113029023095450373928659807108896954102568325747632086212772444992365839445914854475375098909162047549872044389963667562503790434195434479565146168256610705080152336999698220039175654534086174058121743675269308457948508236310330409760186782825053487220755385293019984191430787855931538782296301883341217685860564040354978350053616305468760422244062739857438189181098331829869250794979459556499101795961815524457154855070448159844122952535731288602067592959362633083893488017198593619504855502059636851441263458709960013078640988698414456594051435105292322289932427804627042846387810297436533987306862387055654704066098629065046491397924691843231253579732896622811926136888327262934575918865774224130528563484924712112378859129695723417079170939816773509771049096603321070457339836866457329483572889044443856367913973451460667947504450952619417213303909921076143332395318334638293302990726182990641903274397079951889988123736837624074128623142915914382165749558106168674637865594465942901127836642469491264153922683931017845942192325356458884123128453696794725484545181801613719279131438717436590096091332990511736889426954299161235934650065596690628202327762918745419063785875249891292665373920692320804218312609000889742699704491827536190233879667972769309554855559425850212064226655839146699705105624857810287359120815345447829653201700864691818440938475529325005842416876513933699129291801203712807000989676543927477133022477057937548632020598373041062427764506320721285877929518251993521107942113026703384570297011593559603898441055455292857775986966595122677690613400633568548848082834725260764276260749721065617630259637255745511721193233795635984656969720543853638175852188221412992644709014094685615971248252572935199932704534351634181995294463949022854042080141240544802816880337780988294485140131808966808024924242521223871285758018275576141209755238980610691379422370912446646805232165528883148150842737214533834376883856554416386466387656254046617175978070304438341720856262219726677231428897837594896301296899562419724124669676310785302282586175781836046407348747956223399224541558385833808680828636297306675968060084360403950335444030234934668480513371373387057118381259101202483296127213714706028176007063342363128293443211876910662759526409583062022000843501005106930021846498572257543011552981968360443863275630133127825581541718232649071328879511915780897189600978953451668150014784984399395104298680416753371433323629858725806476403279725748406475907184898295361469682698496324170874014755542481603803896291823249017160013837615831655570928509088945002570536068836721766036029687356583765645161680616169579675234007134238497425044731136468892966031820993815484777637592850078933209397292311961609968887539295746155036627908694254559224427983151806894705589728376987670509055962238420533510011475375343059261042499239520182211792594457900698998375467021570792169476476082776220566138890718776561066002493745073918276767754359830352358504278505616520624912951434154007724889705050077815445751803891472482307629865300991119966755249087533658424732384262844693566259354034768168621874503649784062332067079883546738717252831281805777016645298734084655490940594112601224483277907185816052392872327441660885235910935791212752965376480840748987569342400442170251064174991553443963329107088809168128418203395573826080474774643084543894596805115195336307912348205549305675293441304726732530448269943349743355206854298952769323866626856917013032628863529040182062339008725881551034316836742856914473841621318812511910154820222179070974151255796078696369358921408029132498303528862432615179426713503142787821492318448002069258141527375952564221823007159223373033153299190269701911546640661597091073557217323853217405065356745368598997219686282251982845319817695729926825746368105878938178468074005257014158286707689619647670539545963737640723231990790940821762046858917133136313223292841902029453042447765508012022876261228054928330790156306896386650119740843833596888659436821831319137387272067424001977553758829682794449078508790519556967755424222536793965985170933012533988685875922126139873155175877264173869580842723764931546949520959919741046740509150453356480270009550941778844114381713070550164810089603146098805774352816984691503559786313551093396361406438477089055956807529444596104741651196867639244810846514835504391613007735102614790197206775154816359137039019853401078065686095993730090665776480861467341022150713272908796965879186765952465796193473688261586203595714948870048109964571793903704420071816899398387379630363670980043614810290808126370793870285591149775970780287719063816651535419341429850234205733864600582367957626596893292180261238780681991140656526180770208328860534176409070501099688679424072304282930751407584338225521224436330464350518308249086723495964132127264526247834279398098387394129263492965270862234973561614691911675842788002367598025611905946183985619298508533268599793237494191292251223238655764694249027671256097785438132595752322597508726471449062747317747477636206505300589448568566177102989480617525227662307710570188024223128860445633706351609692589713662300413635899883707091932351401394192962748484161076934821726740553867764949748230986041375838271225824840470299542801154332708662848801196113338126590694202257697989773918263963287772392168392354443288118260752976207604665940385638903745764043800940932295609869517758110969048383685084950488148128367929362889280035340899276840838679896708981709174058823584036004761025810108531885968789888913586822332843099669694496973481733751593008832583074093005625084097454773365288823768723259957919101407417095366482359929015685183586085317063242990223493982567533585750552155326102786319297570425228937066554873506196419522787945169178291260920655130094047620881927072905311956117531496577947641759586281525661596085619447919794786968655249437455864938814103406505574773095433926566826282197185949974441588391122833407550450725885643097823401446336312269230122567654434012799576145732349566490884974084466657977680979689067680627766238722359098723222196098479504258149554732859144668711634540614562744717212701793979328340532641858996714359375395718535174623817644713458352943641772593835645138143455268467839917375682975787041898367930038125377579446365928644288460959692943954547307221101930346163241460654386736666587181993918458017819268426087191320393858757158850436658804411510599655285946076981682359232063102336259157621383683113447370331595967179906239854335974725209502720538371215818380822384539923774953300570851327702202373573815610767107285997044335269761961058901608719812974353570274918892945968388253035780324351861273133144320744246587801226342655016290880432600411439508252349811862145419636397398554897796438024644924687271132655750172346511074040896273529387551142510143225679459579134645773673661735963084146232312435804431043180969288611540187100671494048044312292734251143557758388600619054411112038130651012509331010584532977174475989177401004252278505133068328619584720640765845378939158338821338659207282885842249665291227044775733939913439271873279960975771433054902378930011431822638278024722059701142259410578443900034240290014114361686123669297922114052329562679926708784174376884125073755493823638091981061107290676118094263845959261199587042066568717819486053063498326050985433501262659402915958638879849920818079073132405273817963866307280028116786304627569986456016582255572735711410549710676773636370606442765029739833655807666014256727664489477929096956801623757967475552046888890250348588826891292095320460601719521602745090034255207332632935028350233532529844183246975270982935606903908709492350125890069135717900760646296864805672528095920441329934436542804502796582297026624868137588937771948131488801214058960477824443746914252399244634576726516155168615529704488514272491631911640718883255573313572746298361118396038483073199920828497461399302950737975377766281005480457861409617213456190885460027799781862934761981914929338191943014463916726893100492527940178029774208678318920220700819730648678458975843966871410974814111062524731443497991347672151939240448176401068520634713888579880667614161763721134120992905981893751574503942354706688051373090127412347701771308576632319204098830100404652318412663322165670801321907162376900135804550917159673050087014601626508089414185996598510477373801548286897725613724550833493916208225645400679582632827254895864571107734846923360362429836903199301759193359106278578410258403850533238048155863452628753205823882850597140590239476014716643386681705191054426940871500830028509514703616263304883116343788340511976760713789415615550458743415141077868276144060737803048555229337876569372402256106267059019726815656114091115140391175468803991670144831615933425099783798691284068029524688852777668904607752915367638546783879558825502924748127958920934574418667238781512215656292269846357248504533053827518321484869256051100108344321789458483139772950871259390987942241717231237357057477559626434910876284261216179690290891255594808798828354503860071112611220610474545161058461915944531990917005133168003274535357479261299572114955851753721391222862016218677977454520876410297201261707656876280260713666301534458988321539848908055196981533562555541231760212805340570912175966320282033200090496527504594411908141833705940760631550860401034310474149646838596101156971087143831238772642440251448697008187277721337093050954906194649985809370898897782901794966038632844980179771367601811374065476049228393675017108869486540813389917790416444468747099134408474330940479112874935416941934171290200206294184396622515291400099790186013977512670878121350607950987081228058980327838547478762423835749919372560998606227119487933590766561237813233781102863474279370233974212347298650564630484336287765160523503374274144165912603937059375432548469308419578446229892130133964000973019038179635349437366565136636902057876691581862514540050563546265812558296118977978984616420672954110857871411011173384939643396045697462973928784922898493791346629874464879871828152791132204697016808796064181215732812508199063914698305045661006157335566051246686074259886208197540819733424649843960119295842364396522474793517862169326389774903262838800022680335827949187356494286007608090245722980679150195942169611521751494478842558046449123575628658320124804177190728636839013217588923464366177656793760327212123737161699406193174809721929654590831443309468291337527633735943678135568119831641427284871455518392744130901544448839967143475179294443143701929969095745307280437980759479148292490309942571971418039297211248461530162021755530701154981629175503293997524996139829556943312185528144529429648613722439636126221811798576128067473148922940953391865019012126125024013759986407178537943809686952505941994461965888056942731325431102916368110005635940719333359770638613812500610710589634191346129427647654178834255139239152816251247709709237738385872370569768849973688672045836021805341457853799596291827430716358130998826859638925083007315775679716244525021705045051978386136307246264604027129181997620704572985978010245047685403752492791662411610997155621251807811933695510619030183253262594718757424712088790519178266356846751832593836060826816482569966415526274218499597852090566008570032284052514635620254757756211263774565048243732954085042890979379216092069250084889365996510910686522292835986852454912064757839718572507404075507490522685916103594924626985317993946619791107254727604863167214374314365909158789882286241763096246149535996887722828481142846895361273488502532111370546705542013354770035491478867486661410752263646053463010428548198655413698783311173039085959992217070751924643461911257651030297733614836008668586956161599470544269377533845939636251325321131201449186584227646674408544484727167857256695407034489762375028480725171080543272002847774719168780307366292479164374858169623067499159345204315257390146771189299096880250769503524931420072603501605610709742011627629336100441413734572145090612564596331850546991009314870752537731963360253122463003273259711551918559524140452340632546065024151526416028822873817597009830336406848220149071284212174702244891902067775316733765416319903862136145660716295702895040809059552538765378830627863015591309536645019817712350753258563509498181519102960979152225684081985641599441299851716443012506577878302607631589530810017071067777831102526325014291923718726947911078536191746623519283798349851175474956515101607035581759377189480448327593193220668882213234467782060697541575963643335914987422677067471965455867803170997107171589196896938140828915720754890148371237140448924726718312643606584570800898076055395536777086791167531433320312602852624747687725980657545468991307343149449501263362971916025019962675837248745139923271053080140734218883181417145291340466380780717457205896700428457315898962762495990537700643370865577788461155958963154051138751606995156865731593500165909002121014365305747530257785629210777505871298151948815820065806064378057913860060605267214522797882970699888074743084901397717617575213844459127810467998108345484684382373041326320460957714263663203029099278602967618633269784764059852952424121384548934338827581836309033923117416387242556586168472673866437893235630586460142696275763835587546087821831861135769234683073116638305984987820551664186957878324832543531837639421805314340171496295092138205702682774871838238595728851707897307371155131481626392356625207589971414986510775721433655591760719003133274730583126217688057052870719214024433037983797603856483383102595806480915747454119245250652743492491289646328590742892725574281628320237118920046571041909112123711222697406026022177117134803622827134949540715660823280045900888491228204518963555173753060540204472360184413895310016907557108336359335379617001693727092114352736662266096867570965026959456439038788574426181154013427024273746269790283811417657899689595873674720423951868852823122628966614284961951692036183389375039123668466474341371358067201578555568594921401592170330240509963722665718857224412445716024163468388234695595328763161313809402636643475133672940299287743260174820869426659580312711445930757399123427580444833446576876316365841000682056241718011334847857831127898312880489887766127113239675786340271389875902073636258123518982666310441438677616908003151668692471735982004558555517579133915446507273858859714371724845138430612141411512472855978587955940774785051819626340716680883864946104726650452515894419554222232506327329557190615061387352131195062458196684251881214974003074188209071124832780053965745787095099105261439284209809218834548997795855978598438949651962440912631473567415294462660883551501464856825030124246406133401396591825498772915719713121295772302267762666137066711851845828276899722574757281147583210090579036161310807255566665824493615997810881603526357240607297376766581259067876122188735195721060753687199536713195312085644499874492736239397960315705476604706212458998618826776225931178385625262304006455711760673089336011113043231095509008077046915057734118825693616891098108922727852040217596534982592020681649421022256121573741460897533985862466762250799286958232444621534288235549558841872521541653692050464190374331558852545693913707008770313129442067798693304097073838468708364901796112947805189624679397033696462883584347727709160247586252099283950618691186122521910179983249649540224904988059926583620485834314597207534192561811879931910234797235362727744511091225142903126575292643769192666775903476001355922708212633342992804953806399978090532425710749576686423974600432746503345897362995513996995370783821055138675119592901699763396579965936318956405619152633792265843224091667256437432686148776692306288526855273982970505543450728993079204844793322851303987012191332735315641772235777438948884284905936701415289201433034157129105658217527916779425371136636807357862951250196383629687290205180474200682707071946345516648010200924631959429438159856570951704193936579498444953259769239027733805345554989536566492575432580505629709484016227872181891775422485595080586389245834392549159198767922844071541531188221056287480261420000455984662762363000417034183672822751271520516901253430978294154889549406050601315798280015661588013820032246837904586304795181756375689204761677668055269214899782545384207537986347257969826602570418979192275165766834077182246227336208876854900595879035943369278321325235077255880606817096543587725736250042372697421790655998491497799551229664225165094242370534278695714287730860643049597931818497663425728692985964243470031182259712863243007945236105887434754323861091479683181955080231263497408903564965885015570041410839805766467753784271975697792620858703589933732159543510776038945535089058233585532719801128895669784879535987613513368682380037847049189106399885419908454908906616346724307492302304054781318059895649390080401962032479375772270054613751355659835360000743775673347435082761016311381916140561036778689096300391111516435802751272098965639836456597669942780584443899190148056179798277570932368618445793399241066474436189566748395462769497346685500775474043566243365317570395979944291466413775314451959030450786280140640564038389865099508117461851764656077644128193650445360619984122666915134433208414273959616668241575545121887095467610954246869081807515408689774294287590522822821748211967352791234494519212125529517835965292911635695576273236597234102931199117932406038170122199304346762980307384041144476503033472001264362440067481795001394729871389062751004927582102391909498162827828641243459429436624745110177566915682978373238033829045931639404827036661023203508543794686876959560664204179983947049395189461287889653000827851573395879803474174150305749023872637251777735838708491143190802515636474086889233045872005150322029597474928775343188795933284603947648596666741240910172693498844355551785801547131641160184027569411362065160439729978611160962073407104539432350950737239642505337482222742948057632382863790058474890233291996551676517708427146687679248705634910608032962568607436439466458409057477403302392369151731420521411347439954808618278840920403775229220622854100371983972424522829935547952747744409812465704992087141654176203162745277944074770269447937482821556851083949148227903168869109051533089809401499696507077149238703501196928903795215159158422341560202450308776589842092750036544298661730300983778409961106978967967798771852734272085048891011587444971937890994681998413435397362174954974016213819747132666827180621063701024581971559593895833200791985723021304031590921831242998777417059690416547373569738412354280167624625263741331302909564441540558596374587581913618596383191388394197666387711299498883185914758068546453105048981801357161593633789600349441720962855497385030550414901224641359113738350404832536920550130327570606343932361128879015888897436130473704077170166194310183977527377855652132858254067241572055710484316137700446184321031849789881458522092283372720738323778771112560913193650950992317302994775111632294161823180917362841261135343596921250290253896394322994840286093173874395988399677554906259513723565672355366563680943372059830089398353627384022755676959538327279798654947552483122267866935965749951885142490664532285578475448583103355231473002337621613885092800357912046423401538132317066979847395032964115991385583902653431353591595152760346400958202999862444415563038184632374777253557106907028716861074697362398279311979854125249735534549601072145958951682222846096950905933789440595910353873411720442499311646988772218845010809699214087434009659359880672710362988774339802424564864226239350015651146058696836254566141556693843887662095625955348221503293262146320146949565254989760012246316736310907454437112327067049614141026052133465541963670641791176083224031788683169491015831833521004541471364671330388376214046933879603026053076335983884766325828665517483314514524123552973819810950381397467422254447908032216799407316657609137982232285669536868403688669291077879593036815864858091428270044576012454305207951726426101843546695464079045606374036434747113140984222062749739070273357610411815816430817192729539532528980094307237200324919961780984857856576083967433906442342782681385864850886665470723520162321544520670412565336081772922090812016356525638280603232254195020160046860820228603507665668102758157784836563790471918522647993204092320668778113823829911057291382846997449409560949872915726577660793600792981734324998984780073836250782204252855324492469760590611431021336780215233364751996142366973697604501449795346716203052688834258439318253584981394368240123328341060111675750937725357258745158636475636418338147682256156159839106903357025384830322330700592364944157359112739402628262198363266027063515691410814713739314631392803876025324014110163633391385386758575183593585089512357413684615271110376269074552171205424346429819511336046828913767984418508245570483002616759831198128794306931813081601665245332748420419789181177200321653342680082865148973480605692405024904182931403775698990921359742887053669245765497402763463419693559568999410987444915062108754486301961969687731037248009457317273685375006102975714989370816071299117917615406013964766756155357148916912387114083261338756721786196718121134353681155020617267343040444682631306425770045014384921774127448571193226776844168393226210722032159204019337870643929844354560568487042130448413134042606284043567847443552696430224914749932036625617495512224577611945367896094866661627931367544850859356791523384039440327598274286379627285967460994697883648625750633140852071695571725061277295442734090054836730553685649839624507839193312894888477996531983964078207829805984508452561896792922766550811257892155731522296595930221869419357637630731051235931875558382880335370967846816959692473476946736952591899559247495508526766529836925747820512478407339931141287530906605451677254095041136309859913208843155232607956957116764149038511267586913740441075558333029312807784071290463138740461071694540321795586913818847528188172559212568759559073975595292141921838190384420228585843878906509372899205808831254137161413736951753598288004692551043981802204836050336649183530829059055735810646544275836077766513059069687163025196462552660927352845906149471011824242808984181340999760259207793298352419742813746479285822589265193304875574447379181785057105337519752420041780767320107371302614467868720354491753020287084629736682050458810625266184222171934567685686885415721474462000967853594252373555117850768762040561283861375677964093121733293965773814782885882790578323324254834074493037504607120042352521565697767092156843455508535453802202510700365554588365331113946466851229391156644620382701825296699094790454765419623070141388883803380478485404322704265548249640536948123599817806003379391412955390806958082278658530475933977230332545409001445877464022561725455606698104925787271480563932703004000540868150371330920380691110268495943288708321596578980937159068866370732201395129927164392216324910806876602585544953222310611999246790954127806803539841293354186242113927681121422750534092893995392262210363758592926265813903012442290066532299608681073817105251356629835536895785373818279720044031445501766654109791535097399451343378941145401383458926806878728449763622402363558596266767631904045760560318641127826407353618740478031806202341957615059281954533939548800718234163270987004668969108064988758873158234823513279154507979104392228365192084756186306111527184365572872685246107131195567832559864467005442965682987792807316785771260220937140520688050777681389297972772870537794116110027820776491486043110844888950011449096632742077077279181158623551412523814467992717067373332584851623783181856974135632655878286681073428981809210383875649121627157068875083459833188432483506782378450700590401061421916770464046624611295139248297070049569755041920138967536154104262122131138394749749878776357173984745774015061295985514494881356264950944568971204292244096972589751431541893916460343035133535654545287369692046624476054844508900838144180761814521137182843172772915869259612497397123278120415095091572019078173789698449514411600489746153822836289063011523749567311011683363413684277841720265681359003712170696321128629013413638930210253477288640224651967435470272895619571100425557856942627227754232930263372245272761477202872411190061611681790670159616951512549379763130057780402454819984621018214648880208625994546407268927130774367315852653839069091201360747182853249146903565584174532683973029854523054597255613889682468386556043190062692834407352367975993263280142918901293259190100439880432714531013869723306845724712402436188316642486147972735080927769056588118791598883936890501681197203007735891525775564778003107588881211464191164415148497392377359210248561489681105046978667376076120017732104397448092731046960232843688876516137527016118207136137761561183162034455837331575707840159022225528726154943707251700957170775116202196699574729916153702676871467435804547236078943266775084000935363403162664049619357611967965898697840035236290130306684022550941690726205807648782900551229407395484189697746431739016099892592208089402562718800003738832048287540850782716012824048920345089132526987960522753672534407867497371453818746165567051124845474401524901049109051521446279970230801200224478548321514491873724450696634556596142622148829610348885822990574214694700112811103682119705409276165506677226708648048002088689800897885542319885348017249673037153699071098380523653152945917367199469857221857561410533179381462768525255251523051824052711568893475338663360796663702151622385283076439221954012124751600041106806910047388393695702688033829394208386441147853197202571640401594434551300885081004179730025995219537656051596483816199019299923104855397646733000754430198728890956604142358035374411929167169749233954973361011192075074269795578622861128006443494011599105405306638385111786754250540945265632736901898290498465792916157576430511090697992696481586494423142423646881305523040998777506904239830171221297883253197902788353078866177429975929635852133080758656482575391912942086376979582020164101386196267991695439928697058837239148227217093308341744611355499807834386781133513280191256757451530303246589608737247308428666502358146282851636096460077181839373216704441025401249442208811312791416360968939735900815841187387639248270211326515428937667655571495160000771816621797321850542472515884297294701346785618562435608788368101344728424179466453183821062804321520743074633435949539016018152331442740518360396433428757514884885165153049941582125873654644441460809311511933712805337091754447959428173226511029254392205679952570492926127113267727919486531419440874621955328262284646958430457072206292988838809801818364155512391041647670662191186870520720231322839456883042218533137347580952053131633678028538804405320316068893260702405133737854193134738455431860752828149786663641175014375493662300025328630606515490534374577449352296214081971538646418326362264049652497390559604889729018836059035933316003269510447904007883773622724038439947409317306125756496645599597955481940580740700084084374475010883872550619930424717642165805193728535212976873996384424895710153182311581599028204550297336874705104848156134115685565840163085565914331139855254029429484828127795907826012976977933014715356999687987488877878583558917434000590701505992524772296594896412240781666085161543231672444138400640745134737457791634214119980771474172978346670963682848811054076717545277431452602561849179621609847223605158118567816766064828903366620972250866080615530130342248391237135234398921426237474771729220089707275772591173847279380562502080152977215137724025054653621767933053201064144791047149971338880147652370428275063743897350175801501186750011509996026760530410081083406377677224256487223677429395001332709471936217228761990160818112902326428511254229621330072501608873786908956396200213272915217788745908462655132109073987855611995951915220877830784831311579876494438935726432619809652098855290607206100863766250781292058527793229718439801510084904702524719532060220659706741783159528434661915786418246423261432078175308081302457761940132937652215079602814653799614269777620357764296209328478884466500798604598955238229872059988076763129582868160895745014157841369352189627011891229192081013829518831325635236614599318907311173411499708896293069870335233705926848706249870219272249929624766935019985236085471974670650286798794936223445228170099289560444678512797693448394155588904642513973366880153703807579055037113408370449858480585350128158060415214094963750641874411548020631343143480820502286180243786185762523854037600902653635132407487135711465411857819993335214060876190898166588692783685770306369258784985168477937573798094408835782311579405612163090657304471813093079940375199068339776039606579144491349344387724991399476673330925589036145649381265448638115037024722371151694972355076610027420723734575581375701704486857791268011491980729194673893628735867198077474676715857969743093368249799319775006327966670529434960917586104675048772991676478327038834874952714458835529788470579868960784664262484628068766051086348522608868949551722716335386035935236332446667725810035278521460564181584195269647915636321443510519931592276399229468168000196458781635435213050091142967341834737178038455587631067615343794056631650904998542739857556680405748779690590998514553948186919488260884977865340169766084821729838322323204146976868602404925882187819945488413791216056690841965127348855909740544972570754380237915430123031148562947601052371177322217833386501671697022727039587837935748492732315972918572814556109839513568244728064636386705940188876007697850764295739864361568591474954503402141885688024685739599983970560661314080477202043582065715738422899022010814222259175594221718864497701777999136102532725830159927320793299299784156212350078398588084319800658944103244791666913501201832841293840049157820112278057587631766777456508767260141670247001960416601409513537783644814397249414797131214091495908099252744933625839242763931530115752794689597234391360924802656300394080397847793345220452282191225616981308281366319683462131240169893133633930324413238013116799433892618178635153897362204370727124823092523581125558376600300755188502866133654612454807652165018097086063511872965446181298014290160937053517969457154789638219099403531996225263149142455416105190168100423545838409131093445349035457299205479315351298162507965466385867488679329886708565455239252180754495085482457157265660287489307045818032231867594243229408680909388970684971230484330360012306517667891559187651740698370190755231816392553701695875046138876067198424216205840931757419795248558462160714299428985980882745748704894592877418386336426319022202195118303223509756415016475627739058790575315227844310421375129403276263359363561017529619844324554824102051603971543476677541869463365642581307904795690070148346989592935850713877629108484677119273090568695796682505404626999855963342100300229882452551329704986080200498465426737638226284779974243515129626342387651364257917209448968487867506405121139876600364297206248081285506595666474285068704062643120086101157396951983149572431281971356268338539102377900547167832562580587777284477502803177174132155896258562037321700146362951833865865817018227944571018351693952467377448601741577991032409116322224240908342478783178445329597093540574596461167162874047240333793685129242234944593023294784988329292950223024407031183518196419154936840536431974812647078768982248106729214636400596429050543811726352797752994132909209527462420043159368902982021568257309161927969958255313685797326658026075906512176695649663174968784005777914353484605783259089618060352686393497132593670310165549462950986703198561467836107539920405891159575552720418304786302983598864111646444706573711765584791147177560094428093521656949537792287601077054545027896425512468236281867153005059048348410630231275430269040083996709977513473828834446659337973637608173137516570029226100341844924243210715427394017354836251404614637331542755374597456675460416485097178004153730910159454581645702614618204946462088235674115673350756287975247614096517125953426456396426628866644442198596154827231090804350448100008513841807454567406388832656789001432635325356426097232521707655847426552078419455501240508543426294411194961178445954009344625960532801495153327692739119754370770644088941714521461579655534184096391771472089518934435229493642338145996767793959578725386477701991016006975717286572470750499613126536456627615871917637831095254970573229458432149137036586695164996795957541259404723940102294795979250176645107740559820272434976902216690123175783904053564515266961461412538565512964746619881034967514168253184462536677883895043349093979075730987062171748210572301118695078447149699325952840830070961422278579838345666166508859041933936827165351190009889283598124812292839510467015314527958232839763343119430301299262945913407629443878051209497031954503704535110554240400851903961147696897654149359841709311343942847853868637049304362365020263798233112427247228948238149829074194298708764405856427115646735210904144451679116289349548969676027587882160331078169278712066051030792669849429963141456161716084582506281778226651974504511739557730235133945080123876666925313477376497932853720113689565047064771164639961320915524487971467947114998639424779720786116758605893930918631929343252498392063638047354359184302181632904478265892249710140161472528126487845796277619699593653209022893531076190418966535470781888820433970854429286572623094495752265471320761154796758844730668276653490755441018376162321669564599935337499787672692721111867637262499278930511217532773842458545739802126810488496472310722240061672493952647412579871459022986306661624007039890471506950560942840686754466278956986071648647628703815848629306387842539045811028610703517754905483024173366455999482906626538205253267960218234407374052294142042205692425084916289159285352518020198393715428209238964790430656157743850745424635614706451076042837605339852926901217315587017070476508166972590329359235578624017846269693366678503123506443583862795672193423897923252349246914780542890608549084996403852127295766803822898630273531677870395970151709936911525629008200567693064336629766064147782689229580239171292656710491920041037160337718382718401672146699728020004014991936193330761503709768240186373101421751573929845025481507627167926234180219255272706542845807382314682746710937819592648660203822181047605611860883235414017352724669163467836491627379055437754182629346299415640697309473412351002896848809442400336300375641425517509102524077823731292485102752147722221025861183586849459993965896888386826314661330006290738990881548160521582793558392665756691337955081011711314176577706680534866030290859365551286738596880233351995501426688541258725339883012626168079083981819509639484684952543760607886454246096041556960889376180065921199564604020355701006002340805544202207558494110674196867833529728812240299431568082656071012195309717886453425377756892051660492391915437990390455856797071672617265964358713756867245577573604776991634378453679221469947716940294738055362948831402325440225732472652131729446454820009937830969828900954351428270126646775829527636456521491461171176117850516757998280546941797665889668911902605411984643325711799834436775601747575570513050847643356644872600173647409638189649393257250839510230944925891866489796345474886101222038022769708797658309579774514411533949837019232304558820802963798092532726855072569778180107824146034649057385722522187422608199778127909048464169304462729168663984977117314950807238826833660340821131424727540815373096302341159398267165345816500933534761154213675233716117592773028783865685022975224496810043957498302259645067498260005562528143829559061520640276100585964186446701695089827972299585000965376329699641872323193238319229851697148321711187154462864807320075209568903705920783930979008976980164675537740560530834349324872343793473195875154088285472007549065662809680343171623647850405213756388962811111355000153815175427079313849656636854554982608514983535711698634039238153383397257863322635186760892617568980427873338481889636601638298368074025247368178157482031274952232962993297057598752566010057629653599748622865270788016790706440888464686977866185389387237614418851394274543542601370172383007870285384428611706214405596961177605145473852116368357160238476129239835971768554037719554234700206805851527627761136589519304862987854245377644317153860630537112273364031749876019910275733444194923955781479345763607355871285336617061843733476191376455286674030695977978158109267103618097888222335086038586629192944424032259267315590371313751449001724481798637658453321187112339507842678127874450348989314056254888703835844678206839768688362097454368743239943503566271197475297281061127730419343978092722958663887534180587870749374528530709344310217007483124385746802819209699126942676808770643075267937199600738615633360543534559641004968374044044477252202247243134362778852683066305358701276981399349646550611382944845418963567270557469006220078931758985351701366730501050089417385071134851883886648575130578599728527395810624839896904311155282286596798421103041318047995369178127884508503093917606715816539607770759696528682651838334605993276677041316682840670855508194068344175157158354876666144844717146769362065753542797008970961890891929107587110768036897497856949088435168513064753494105536859953050857720525123683870620818430129773272507745268516185288206651206904436252384982928479810414177201916596833640024008633844290974157705801359331367617997218106850750328148417672512836502538960037905898863687281341479818777970257725253616478928076523381205732742845404347589435995600001196003961886789123264504120580359680148102728171325723519482704715046681974402949665195947709695845032716982480692723426777967061988873102294431653493289303190164587157334096309305068911552046436803879932493619887289303353721098649214782716401335001508909947262185024510103565734942613344628544670787295509052287451510950263936243944084413332347059282186405787657580761667491418824922238285426710583560059628375076265152105481935417116573058250724763462597259250344079561891932160584174505435155001797274143198733562345799933316403180927125072360336642807099184563743217823693179353663752055547321192227672870357702289605749431976353320678823414661136344112379169662159860793861745161719129956482299314727244239153088118321259808833225728357436878950705078427798923916537861817516401273816096490163626535881249418305579956592343181852519822720489571106937823150380398746442792310893656801943615800489771150861497679982901895127206414053863476081199328756602471729899235398654416063641385156885192127616087868915344256490382179993039287514391793699174839521590784512922398253578265962310650327213482523298417411332989520812966716565866792148845333192880763529198720482363872898483862352302820837707145966805797322407515883258844250309162489441183061459899731812995362846918449320682165576694534313808484383788158005680763205445511367223196027592231442865808489214981433418654230782224774107716160964699261147597360643344254865776239202932201587532103655456195508568523238402877977640782331824894866508044543700408063352604710069929600040939707582695200715737490808793810518623823571548930599054993409556230802544361315406376162081609336879849014801053025208553357996231944835093393284796605355022459311577442361406230958886854857728990870023052128247375216381133576491534137106495955193017954145508785019554139543724597108596355976765245713394639753814204826707792893926639084363325237497767211423275046007835185996289733086570640614311035000501658528974462344670416380135042815650870937218862838443509349416249359747908970409378289136863686745598810355555318485248939752215973164622745662612385483865463359043498734363587144429223579830767823489116347990141303672118625673817835138691478351269010726845802113332899686872029796042508009496288031979933324663174230706000332608085277588177088950601107772574818924346525253939159870993552345080156956456280078496133022494520215635086720806617863812063338214337101531032186484764362496766911784858637444899684747902509279151728770524578605303941082389000798395437413292552035983336877962693835576200295957287323207129874956141034493583404848423962700132972287859249656631258552321815538153615450805265743834048121516158012648237717584000851651557508059297172913997834367672709468357092242781871466259256456656625453433382992502269439669640316443229731322232686791194548909165994630098694873343027301571652078416225067447166109324326083847851585595307451158862722135582445422840652243041763487287262513373122606278812075578224696480916637511355043800636642628823870385658310506397861886815849067941834525754435487454471180566624171223432770618596460110282473252031112723900633575915510554976623204578970552429325402983324032412142432699554932022055631622434106474131542489489538271413937085422311680920535551573020487645837494952270676082723739406783740784071364905479469166581573277971857717200203358012388568719429604926002865907725826406428282460119746999107403728572281993646986052538535085112549578859554292622283342936485176438566646035550652438747633616680172133264657668966112681274249093638168700796921709017697507773310557270826371020046592948785378416907899343077082241231500161345281543883222727057071595134154158378632767378757678615672125079200401578909841344014815885169268917308255073712382503061846880310928133870258512535180217667230810015561671518309166628528462202158646124244744229577808031658257716277957225108609148649497351169737186929693510541403986333037146607806936148223516621651755679406095287787573501565953830736309258131647458170875411533806600865026170436679310170739036032940279964117847148581309173262609000659313969306269803097329440970844376911662384400704090911451043252491452504279526072759141706548247572570134555349916467100047776826726192894758606897501550172386840224701927388946303585315149484298910949904321358541916491176220835132963890885445227149498151591702377927354707671053165559503959947927371182383549614805990599231233159605309929838940218151035622619973821124660737362174971502162761567882630025613292651789103010853813903694723676685289423875357113022020078492090445814259115797724027323038151298105694290846694252723870207560625256227080654162821523217434961428539740345413959135062720254100400476714807766495332669805627492997194170285621896650111033103557914153336593173536235495626972127714333248739564296178528309182220545590072356515785135054436281484241656987984194434729613129917000160393745579018289943068094471871570807427122751436670707777568106481719975741162606139140042638867997132335145938620280511458497943729843358500077359648516771446691450413332911974645521747055095528295206611130836789067940569035130669347573498084062510697814623965766542613571195134280081625902086457292929930058294536060030599127315220261364399494000718965584286806004746935313437916926223250329964989680513214330799191540899751042317970036953280246710322879520319544043366408061127612017549280164336865191202361151298726868935078681794732866317907537325017291375333794537702964650436684053413719509600189551431737870370533598410365389446319303422615278360479984804017900000654346460209346516322268006415817565418855506947661666360226833366524847894585313655375810969609584946681695590876135001846349691607962199844943287295541494527668356119942196742750754217373324553350519643322718252470496650966668804751948896049595583516595846528307497240973196107003809547981033103448095033612769268174240448662696989458261214253905698934004739184950761905373761576547327762125153186443794174555966246494550628941557098651561496133056004401611186157213906885385419428117496457970138845024926156766195233918970192352298367229134759691546853747439995541394797571194378795766608587315616665847981485166135924555164665547241620579688244533999024887967904370338507057489249948817979269821327306614459325979623088880263891546989611295773092157101633174183440872156900360061039427721831013697111486085414416690118901119946864034884506367747685509759371161992813508379654658482115265661404853818176619197381864997198063430103720649044931347524002995141231192410541272610643443181626142105963843196773407717596410086659641885463949081060698419776629787474032281382726717315144705919213858175010047959970142372328500399710520971370679563385561707954144690608662012451106122968430959892078664632479839941785104475214834014301163361213040056646021226108400083951616845003882007414651075292068497024841824783591550770542585376545262458876193900228030660464767552597217064418710109627725124094485294818823287316247888004785654012102753495774527794836501507929983487591587551945216554976212378742772435314519891507205981429637980743687657009693216698380181450717834714917097775982558721537294053694265630193875349474046963557757253638988154533775690815206103879406922539817180315251784254683710580360416971663317172702865826816194132141381933777762198260258509416356064032378694422191266001407141267592349486528992161392223652705399393191928555616858775197715096181418201770614353712657918473846153177706415447669964976106640107012624630340360442671293202275840615717752272598288881582648285681036450501383953143777657709236376347173561217028160178024519527919480539002421235019108377314561966654196717689387357643747324003656663265378607941226942878915507680336211706236715195000945695387423273429258906469245653450499037050336093998974348360673011045736212593803140641203501742623149816994862906844824013443761391887682804238819137167669310685431905866837326357274920411262764965513265099417296073601162260438709317569122734545133391794513319167577912808537537258971988996921054584824533255725221090384370505004789269826551228051076692137911901597511373371489722720664103083298045264615147409638719538962195979234996331059175467853913709713807774321970912343247374591427758892982669542738769596101306278598246393497993222304829495430943842991740462875095559632679591444140816645889796942409429164057365274072039907261409608669674308445014142134252778885981739485294166184312083731377123654088087559301295038576591586179742699240221517800270526304111955295768614831914805432349695437256539557311094230177168133188997933513210259382908791979657193785687468175928407121209897885080459843530712282872126403951356910640690583530677351764444146808640104256039862934682279470771499228567178203112268720364101795159761465134121631838240739506502919395745397834860255943287219749854555215766380266687684827455385105563458219242874503995377762842042897876703933422804316819976507753599344263043767483163096547462642752677667877905279504153492339367233418448226476127905537478263202427765738342713875084991870901285648443513755185824253504033824016004027127172178862762777779443642282588204810124428205772473397709893537280681954545143844870670622261212423825534135329706022100171906686959155947339487969915796330795441936017469428782743770385357021526129049243939422449810044906927880647852069497367020152625941331909423619701751518319811842745224131271244782713808597810171027380159845814183680918318750663781406202061158639727882440507739378579614291390214829097215795603462393325780697048099280255915788707791705426540839505221228662334582255336251034638725907872111212996476517683614439970832560077573513639494625025325029656526433444934069462389843402765463549199144412514313217676606993479799778546118956310980114524121025567005859308161870241255718820661905775811705503314741980997608993258697591947437673506812681329944198807055389465531337319492469499367797729394754143008240859858461077635688615000861961793560826184319209034048507408223025668769570870248529664770330219193573356821124698807252724544410778706339900345347309211304732406558885741776258949084840003353727356634085205269811663500469707662701141526321879159982015504066434767156372768016862879543545764003093825570208645240094914783878865437884271143799673450092746977636281886740971862319305551706231112543762287576259047633067254466757273404540777600239919798652914755635351681771964093234306949590537184283349293304822802889876651355625873460156791308820506904675839096477183829937125620339714793868483441751642660961269766997481614292152439760293799357313021414586410869184791350738970653493238886139772178131218182273197697801303864963744370939312440611644573758531289126356384880053121230781836197079459636208917974082940094821251405749085816229071736467297551752864680495047537814625184808744072036449266737688724299147239190353782402964995925570695053902404574612565234751267651492724404033853466358482361999913004382242673227398995727711557855069374054267628132983952723943267246341052229108980666012918744120021602051938086486580260966362731619100229562986770967564281149165925832029809693374549274524891468148344173087332473413625251587408963737441092675290683687812405735252550751178076254231628891206825190460126607010845880139042175976049575805661883540287409074071182483860408248772031780368092501296033955853088089391251876776703616970035528156641573982734780541450560229418317279918368588197547928828434521202161436246027341621038529164114474222751411324367436336307775888488182274961048548399235482337516724084076901892502738877924725878061784446540816603351274118198541947855990969190743856806498837333884092597144288333247807911561347302851549075035712348738891835587606377604003420479622411481927754862924110907064964681833343329406782674318615575747377454644510849403421194166836618584017571585398592817911323636745579332062962501987826149223070513508560255011315480447688607695550224647431595973478982980950766903073046481003042305847704475281162937655819947332446424878124968529942806365994084551644115599048940893948338922433628209201267945170349941140488738614288231528614835305577642917847990345912486471073863511220516089680230303209338340225817229494671690117824207933559775872884017087466264617335956610140313975707513364877131621355411601832294284514971038404657743327469209065546628361850241495104024300307311209309007114853777538842836351856653727921543699544965778505466006445915228522480599048419330331462684367169708162616100037039614355619358062748658042031811963819772436936331663038319626329364259221093251028449046062446135404674173968640343469979004085033293261195386278694318632252160100996449881666349350321333255775453583008351231089280769092646426274398095929195407981583194369869100399506453114649400225068353798003283721083377471000255961957901184529095380145127237047160565941734465838286612649407243639786820412685873465341660047729744204267019468198959902230702430017977867101289593273921649154962698428112676222160638479100896927593932698671879646784069565099798361369003967690136253865328329455362692758313207659265526171399980542091830792970260594022818494290612864760422474350523551865537680269102401386963133771878470136545781539196622715731115828315412325306865910371072829713672380523721851342690312629456661651450865537344102035968981608993913099742720712211715348551840713796252217228067270085374699570700958218204923669380338892567030229211125712070792361374771711700629695900736774152708097100743455111552502659240977700377646957901187278997147983145397126524899468395874673486589232537864826611643839173458841402806183551573000551494523880985246162588862710556451403993966877226210741604364633342629359346213958050840751694023868991565589190211961502706223566729608175354592037104590208024562928091598570500072380686426108902163008689939761234761707523154972837017507111578063078220126710873420150114989298256084341392708420977911285268857497374561189302642593125479097999925940751120084616273125743249255625698988707839293080319887783092111317825189394669206922863840134435022982650569630574399199889088801130650176262297517119572875540648714395060444888360502755386554683014173290572425979975787513193839926429071258106365609842289510665858734756925045370964155073203320188584283779933962565432376046766499700662310177708514864775977159621405183487538812216968413631526035269224002551742518973685412489552015180003622126993279349524694472647064184207557573565678051829886093238404829987602575641998521324733092394398442187452739055288781344221766716457321426624406827885770156715464615346349010687291087838612133310279863577635770764186832229599859625610731425247508153305887501025059266738052557852373191271398772065654941213701679991637225677135386369680331670844449574531208180098229427858546675414759176645407301602033781801278899176340175576168214110417772813994649117672482022722257564758445191979671910710529900403998837774600628974507189706591935701607229668388385654691805632304657141386042946646804033232953773004874315124174494292092959085149514831055122322012179595214628126740075124876414665315208130611664216595264906468382642250041380372896444901933735050904021444829995756463088333898023750223255670496770070525415561938482093744046174691650141264887122114647045312234697258629539579432888594332589639357732794661176951377790710818741254137934342355211348216093213516223401130395375252924086012764410706802227086712596461068169223060440298843574751915759007442459106416040756463559165206634866093640956962037204794930448374578563244832130270958072637286070762763028833693241417154267017655500264027398504365897832614195869704147649676758392220560362719852773719055779007274002620888507205197100163942630100631112396780968488562193796026357306275375774842387274849924094884015769817225473792107823224098275982352567172159900828379102235275183528197647677719734708009986837533114426488371175659675837852542443686027699034966306487805250266507017844602222409466825026508664219678385230941702068213134886477576339694965439004548380792052035650335941153039850898671764077504529898465761888168164495736242798347466872783869206095525644374606548692077122244433470231984947164714758549216164814948389333526834793566207528809721503446898951504825971791023205700410368526222437741417253470468536869716997080665771306515960102195582336932028431696933506420396371646059225367480483487333476422609637097992651287773822165299490738220453352839974669032931199330587147856234528617096523962259103829236573996854039199805821997946556114433111303062650003887164071434176630990874145041169941068789434763081776086477605122816325383684941067497197683435664492729365802730804365151767128742296563223559156278219947408109259125087229203414370379897584631087181161900140569542808847630951308614314754569842290484811526435244463839988669787631915534570964498683068650117650296675855076050880343202852560173159843990114965385451485644738717744454866354823416611922120472086015680180377685435891940736655933776013718720282973083249568672097352111753878993058104657100988079624792938461671508350319650242195166379651615147678820341132341760116784459593053260875340671079126441015015242719258160192835048631102905111041442099547187856792281993793845044128375017911718202387699891616575060094504626000497422392470901501512340025133567442663283272356995876455398839654493462233203851999890236389496504809944151034869287751218445526400334469572352021166571737247015097283407746455341630885724446361541291984003592981211697439366869478618511383690222840660954748844051511394669245046977469681196680637080394998038498914410312374683582888388434992007431549662007749977981856343954442748854322716569527483333876169467104776962525375247475764154030155327330255705833235634069334310025391922893883050093784273626521242977400526103489825679854002310097356734525015865241361151460232283635722908612778757598739788187718025789795353854810222221247332836163396818435234177879406420056106956912942231017353811521739619147470660790912617160116360977340612313603264790540889275247406193783001862931664458560763298813592214720677958412635851363638891947685658106197343120060845195745399985636532606580862880773102941222588308503923376523350560368264930791003256775415272820523689272153980949636066543838402735083309583688584002235922852390911354987921021798310387445079091029748028847660267652768168846248712940601783508723460018352219514998626117513153889255420350364470170536740030714474294513275548579982549726095137375983482755201486076380020377431824824760974429102144820602389824923926300380901488452817503573138477726754384241684963536972336955390116580878101582234892951216164282789504540071990905704718443011004628627125438914112106587681827876611891438216622818057721913743427024303932729952234529538250805967614731068572507799738745995668824120125027145002781002527267293278137280604943704130068845319068555103547805051676041160800682044671960994586692473529659809269427375788348319466446123105191584016988688116116468759205951097461405694246479278133445250205405683349672573758723108547184078849757736522846716589253174174222631503887857607453044555704955177484622909329647182733920946587712140561123233794238529646347047661369630490564370804764060199099320366947157256858633657050984182701270722144927907421661148539655546222105710723321633482924360644139841303042921858750733599100622863878010716308684429599553491519617282356435136956431912943578258421054396033801712116956464222312857372290121658798633347365008768717259112848574905961579744965682891765471945130642651112024082170963179596984192192366836344209442189561715909727407440362102321526679619215289198363818042866589570814265400885615547641453939978219643189394339553619852547360873370891187047056635702631667234413582057053816203140262715420899315432729800575299655233900743844658252771457332484998802625823024890020735433575774240187159485645684923002860433844053421890994450087205952005013882089256748123478716897885343448719819252449464601133763503752324137929760114533750159779915533027349509131477730107542738750474505025825192772424763895158096434349095956372661543104436610098321989769827698442298369360942441695296061987150634207261841803509998215804643013867933239593598701010370395317260362988538258923279051951137408517390335058374104952668443153853954211004841107603766615870347433273486903916005713388321879346229125169059014821066524888877900103616411024681964760389557157843357428932761327232793727093583379486928431881965801136287046274383950121797744217497830855107995995033065208267427396485892518961707803843914288219953246206006288735161521305388551610236971506908944983696907301747118189327141682002137883934040243766610283925985548050476404135365444764514638302600121825226048019565207404060541554370625272700989666069791429550990750608413545343948829697389083574719720009332889804698634921899834950440748959537879503205710379118488236295910194113914629445253617963647278241256598557986020215086904294462420043258353851805819705424462104361725508671175060200300606571544806934764142546876646872960900435638950098386890318175041446469913063599692602105925982915218768246679415197524745109351053067436530405360865387707767246173856608708590874330012736161570576918291114101197346913435202123975013868511244574094097652102809002912722610132054260218073080528667245400172645093413392301964136106886089063956094709840802667075236469388494916665891460221675655514743992719603625607765129426623629322240383776107040453037215522148821990440167335506750353388033959518189442584270371642257471896149555587476452469411587033115612953605004043759916002188869486776668386673000513372656319409870899027045463813363489004420618933230056999438086219827838062909237914478712101114280780716249714144929606386856192874244874303429652968116397639543506720508613195475375898139767745357861627430126914732282106406489100479654022411580300367531671108481735044616615132433562188989380170275170843615396914619548628678596274491226686049724621924971528998533010890992283694357262236921167654368158365642657028240323477619346310714516130688441595242851769137057949738431757862513956412347600545931450585949051098462698462891160062627455404949559713772259202130305559190500773457747243150317607615070300734179330398711718195058279304162633097278789128235461894128882906069958985128175838081211241542204551940695509312097799135002641749750938773509854308974634878127042568171298564566080743063987755414905228986223136754837942079616185713434990935976070970693897168014686956931898063797924461963506292293940781293503394577378492811540646111647177062852815660563794694613563406544944008482158624344267006035073916236360333088436496448564553863819350471632597184672258270260164405846572041005348868848359398125257532247110444357469075967634060269369280247220506316066592828399572390308423301861163021783810438767081845095950716537911046997546199002007122757853644934870234817830029676485292405771179446149892380187666920686261773956256694108175397524105901610413140610173945146496776109603314989896638231702892096256562584054510936297395830393224869697493134812171475230027601378362043452100526430638770091831673011119622115617844492857228055402979998212464334552257158986612229707535107872621356087007660392855692870298771438801948425683251810465542745648732599876547475677291102575066598896490348505729005241370583031366490072931865447223592402788163401871302000245428160278483948455806499813668324888432360355687258238149940869893833729641622951709909511163721113394085860339367878817728325312059153772174956805481360980564110489259277976826226312975159929164359559434562581483680315970840864832896154944787577440555399408272899417822073399444759399892986560377887144830804642721195584115797533114256796801176990944549068296963074700509733239444325809147182101963588407722271890307441198846554960482735675091553653778411551146568685929769920415620198136825039465119454110848860797894016861872158655487429967853372365798912261692174965267683053868723338502254436483127390292009829519796329828969456124910340270919815994743055312653365205922629195919125298575045445185170504800735218367188388348222423886409187819764503841812909034133768569240234015816194646169890103965639720975873543711349144857500633466075119475598363841601282270264371431601684238918242864931078201243378943459071196875265236273806091234866254520821070211646834072289047178471826325948143681309895819023690922102396860899845249620159321002377332403980103747535907944263242842812429326520421773224139871244796711181035895886684336160362859409639856458038562179074355230491106265498777581417222466512192774248174915752827912995147203330833976756581971793235264555372863118637830867558676696349073717243478920465259184101203264314123378641908704624415332144624187094317253374646566839634550504491621993311324755766316136297208573228547365539419014396294244172940316765913017441352312552015933495792797121163130916084642791058656057384062528425310236944512548682494934549234260133240481513849626709656063319794444051110962662235083502172442718758297385098573391363137198528889821555415246590908285246270950016197257843488619176783610202613479387917838982793519715767728741382206232566934995190545714171483345912785913278650352694600919378942249958783368783893545854398806912791580145715584129375951690165726248149704970557853414674172728152795090289467653493568007363166534471295302744230922426105467941472774435262984655742616783304476020967035014539012667546980436548756097274634550966892432833834375657899674780263764671203033194752534985969166934200590758569530795493065017810110658874694976748998608378410234209344184955076479921146504838109104280162992391248783885143121556180472845844470016925507135450043333475619536394250790954432433422346879412795020548632965249368917092065414239484044616827029312664656398977683451103802552934631438164107529350259115140118924994556684538157318247622458931459394989398274985833573934693734507750974272128227854927237496275832689310607723454211091886614819982190553188388305840752087531173511967763232029227749708911317831175531829216643049809523005145399087432714934727417252912509583667986866001679059840395698152643785950402050677260465989607360954262056069107580803872668646867583252723142690790001535457485704958439608992660511320605711962350710304453632637228907770807557950632624977634884948576109647220349636917820780985693771669077073678141690439733108432203955876812031526678831984623215133077922981356531132528230134407001904282098436019024697330894114712577805093044058351149530437251759271795102061175797238838830216838879259926070721836162418675114842940345810307136283768014529272194206531147942903941176868565774733967645615031540401675234919186818196056776839880735123218998497188042161141545434978583467375306527457883176055138544734842677087699853031695618182140267310411117493234077492119557543847544826973550528939434964319078115410560596739374778629511018090445468252805228239690687795452494707639595141808168347121926867580076019707914187459304848109336928224355087263667827524652995776789721421678398236353046098174935115424092455981331985673269690476127149724451828128507245268273785851873895471615004227884446508836687615333487937567696744190269234610926561035848102503744885973433652593937199111962382420808869225188508287493782579254342628154410941740494130206448345185191736932589846904679422838217854281238184381646991347911091234552878474021718591926626479368532747423799926068816999979593758863189435557499460143572607381002526242766761400528865172177647287540697813383601558802927865042787784435916385885526438123131580497469960196116174554827987216342723858344862641438254970729288197354786370689816826043369359145897275359308544071483945550146727394191347245480981167980306522585262876978849918230229094368582358543221991364897032034264517759732837524164888360877524507702240667282753766248826331336900798742478027413458666342228345921320899654799643009431446294944393945964878407918190622801753450564492317597492586796633321815598944388757604564084269076827928642714981331063593335097082745290710016204743141881131500703557946177897498512715938500178242963576492737198987317817992175105657266605391060526598065240551938140093364353356964911037606404155387739027795208536955746763147324136132869884273694736673170621657860361472283018321537262960567463985836801598023050998657041914781358602014070894672166538381048030862225546401659048392020107386985271264204393185783992282226974649887875662587432841394300111426472705752805756724665228525989978527471979750660180433254338633522792484139548744836559254228678190206703000300301304075688403026971094553706106112315464396296081349287632450507365495313430577717182911899377613059978803612424727492418227465453368901478784465918092315073640690947726587948455021782915374348256270343681825530145265243136632006721823934897877924223658516612265191962447482513019038339527680213518814663485756778490068964644471306316295133517650545752636603333531025037454548193498855937711705413151478753612838333945354926524016341605030290676493691091871534408201197867638718891814327387385294002365593189775863933413017848168195961273807289865858035171247103275809238098376754014701127441043839486984772852924517518920293426536735821067684395585997204181525489851913082090725684484510753796220886483639557995998926920116813446840175435723719612275306707190714885962392406236912389510476489273850184521145287089820000706100153581080034525583381737245279895051076091770409784435985828372738135815166094985540933077190243205116399299268792492173691390467477087277645068188342413339585001698156433709886026942556228409625291392907272044635178348470527021839117587100498157672670941718612915437595409861001950021042996919866319199783275896926467654153995819041991557308755587955826663817746691526493176065971215982808630981508817646594543329994795345520741835061220180736659125384058386377317107332879852741706981490335022984169743227651388781691682815648420444010138287823638022625009768008610998743197054122025124230393000160565805010943887858391434459425131157896763576831058204516109842146910632682176523333671050737080143301939297983570253275754503443186695352250173715149491532576916014160891919091569591861507369817388356169322212897236557752559758532002247614534291264581905088492839877136907306425352706294036173807153807491227476755633700374129552191044068066031429536793643252368973138491891704614226734857405665958143013577631098180727119099786519217203053915021619152931977727597658080333953772228053102552232510703413480826413479862017824981616954139460606358225519441861442705595493475652263185475018701002917323895044483258455688023651071198955894572422771773761506168945387992652040431780536579915734386710809515259012943058232865404393793330662817589237016193685355990580025113717036914182752339488398214438034896962959850371391756209078421426200155452484727840419222044444743889234070529573714765443513505393892284147722471001965407055809183844477894081398940429905200106624326166445854256992266565640732536816894008619839151243041811811076809846301731221827254297351214369121762395565782372882427998952034956060694252376923380217803149989733550382071072547165777453621686909162734282931414683523563236469152545178239495529059442841871309853590685638010025239746271428601539089770800549754913174705616628876780359050109198103906964646729846155986252196127899258431652670753880109381407449191543170416563764664622052735512782178448211201681534368364195775499192849188570163780928302391004994799595531395176176250693361174207181186356137898695087063890829721355709549557065899364681929830905339279078517318684282321528915954906272447162083957877053796934546648998078803592083787834422571859947081865042692816283888715631285254427280925798400383906040574171235413959842227574460394939516135768834818085513735699451504230914954234693520399724434149334487855443513524337586476387347923327763376904646587035404843171477510798953182292975550850843477400821947902851653536814048880106372552438603094149362744842574761932048275480566737060061670280827105652486704166730933087855311162284533208683920012951153530138288434091784811253837430976754760412718834828080899600492440535794721552316802087452155053564499381833257496241966245376709608203658507338658635967133689599032194976907696633076783053904265860551281516504973668313365440069635270994865110883394125261427843146097052770179527013207190731147726693546697546001677865806565663974277588275409293911717008519564966795171749339805015075138607186130656663057221533095083628377900755606771386764985420210348019922981387021376676843038568104348588175506144402086302673688624993390380861993813132950573521493811957611916843106677553428525521461569068129499970418362584433601726529114272348683270830598082431491744669859214386347992918083240396522421515374989095083136335248528615693628926808215255393322663726510163102246879548075246575654798306391052433032580181641926907369250756586426016590092079390451067378190523719950470688211892549212098844823084272718298758939625066276390651869799115566519504474612700555032642960484745288227242264108002379649594838968160293493045257733368310040725399551309157087290578945023887232024106510493738122621734536477807753167352015728154134614685270063175051482346776461299646657348577144575863874035017491616473640099920220665436215502525826037370355215043556389640778021931674853840985429538436761539204792019900327867349340253224401678700526021001258559669108258733315012660766768628737338074977351815871082802046770465380649972589675002859422272091139773728624780982101122639478429435850516129056107467644749421167696393018647669692828464418091705133255949893543773429766703163276920514778043729965016957626649479771260802361912162242882406311086622486815712009759848380162814478600060441858829943524458690543630338833458261405712556869347401969693315089978600938857475889025574708891645394697184524234301239699535506415963992640195348856996534006019975167250063657990262068055048931396220715697463619822179178358683107677734999718164020901838106668512009946849156040521865479345146142911645516870396020056180596334478169647970426023122086265241073786560572321054494439530380758846032286579415766569662912567418604403199464540119578406187832134143349618027381073759393694373560689341046829195934367864852691789652616750761188804866423317541961761600318957898505827639730567040272488133262058960768916616443351731006873146707214495746492406882566057970736368570507367610493969611483149144531487748527276171626798380900846837663002522166245322566933074852570001226891638862069064613526868076453698359118054493530922424802510741887550924936650502560596109570134912032669586370256081503829323202968496517440562108774051442132005030303260176490396125966068676527981961681541677184836882764379166866609322714088710886534771198300818321366694054965690305500511595280590456734099746323553444560413752502357970569201609901803214818788844547872137857892284946053067203935215211859609379578710593683179116669867971517366925049572055863011722702533095368633893547590878965093660681255307474589491145193227932893184768050493480433013574426772849906633991354893689037942623058475986503313583132417806824541347154076770711552133713142592513440486244771630980647071902741315888730971646646605611969182225890860679519233795588220807315747855386006961481958577756129411620957262370961762607947714577642971503705514994737096032688030244072027102474709928587806744560006985769307769918454407422964511847352961787348548533481266167045321551478754184847837273615524982026715163028552746209984933889974509099285720772920207216432604322902825427427331316917728126988699649404709162875452629398107809385370022391816947134517314542021575963756212734968034813283277454956809466900536213223433327805656974251103824630807469210370485058191804061835085759233123985509525007511378149635435429432366401181702561675925616301489643235787351461267613765195371912354825408219166771858503730622311263062547230394882889786175432777470847301361439341063594534592717874439251778222124667418952957657361107200418159469430605387660549140875021330341324077618383426904229612046191844374491524813322810361125553751961007139490470958886099350606982210768793860772916235026437287568131421319407821160759263717164687965778854469193242170608477760606327640351734852828229575652569079902448934602237024963759088024147445320169763333612147991609123453500703518262228529985260423838541371907435901632858398874983671541186665598782175434910537624018291152986818119586431944655177130381151992536805196221567201975774043126956045602074311545096504735011676473145537208494543521887658036059416490492701563198568804658183522779168969058510475893694969843108045403931085055148122966179967205947448542512579237401581927417389884778939184662091043155492657021441060218047911253299307076106375600296098422726103799260353031700383170468334948880253702749131066060013386118459029100967696134859907149116740169464250136994938602059259040218811646202405103857028818053889739027280638916791775216585858402917067224158567205073636548936439866845146034296268493931267099305861329107153869472097925726596008480624594796135129198153979259314174779139762132998680799971295841250115448515617111695289980111253293982601988892856226605015483531739979086239567085957976679713347575840183169639832949452616816774525204936255878264954313885082639584181451472872980807679834107322651350388036956032285693271085506419405106253477752113734302359054676772925353960996339679379090422053148572131815366170856537871168687478521614977138566399073013549350604956797882816108037729468189898346496620617442614352781226108711994007242117049719089530002430369674215096325649608221443439868615304962695292322529426300092322707799948001834971301875962650123604381350667417419160155918818545755309605091768986815773631888753747528698013661758559882350745895264652124947802266339975547095467619863867862375887583305779852816396115371990052218467943908189898668867521235965184062867889549981341762990090674716201462666781457392117305390343782058348695267140731412034027514731468002738676011714883136731277397058641698377303338163865053668378792032616756203323299103831061921994510506692696355656712134575868432844851936025156616664843172406543282206932941672253543718032716948234294246751008314815210981195298748056049137054814157338211908470783716408981801520668454157035501967735053392197058297909486076829367875011920926195025290050640667058681555359533454577620037874762638349682927881303694828378767463420153135963271126586087217410060809625218542742799765988964172879811525669912654794520734077258808346175681467945607620752166418351303690694702274906878139558543339802638795223857423002256341220193604479416785548160201909775298839458978905957945466963689368233488866277711226571693793993962927729812918282797077441819665854727173331576805212008571401887558019599654793479592182660212399388237300632107464319785559613198079572022574394887330683213949841856314756280583931546258189179895311696137563820128107431455066068479842143850212164808597647872477791897918946733560851958599653422118436650786295670952844285011415354789149671502920157676345451647130278502048473299361991353311436583553910826206449472160628916955501240610079755174633136885620218918116397886626945006539074944025362633948971648789023216955844204344569253914365511576399643887710683643284395889617925314998667762326408271305633078318894330138743432832799263626420303540744552114063283239154468244126847604720171895008341790045121852999368435916270840695416976224874005810628633113201215228436421177885775162934936208286644957788278942149042731814418145565424619078227311807310870844573239501185375623291266148005516615117396764859842415237596875130096777738969859458134632888534065635363209766439445556880861069510829475998003154518948042703182788080790525338616616183607067219684184089903031309136476678650822185543775220827567648766752899784992386979953174032550439127014854646415705720261536393429548585912931154092919031799902696399426492118399801134112449151762013682171905291315730007255912902100025970954087592032019689932061306881574587237826581081901729249622791397304178971815910445898023070124859378151743895781873204145752188828544977554614951825537498282534677577626914348566837895910955156565646756581171104456106424699623332570400760777413217860009938172418462015265367970325666929751751419326439054779257064000238609155680069440678385881590340590651043154933496568282994887827575081256668519634248178190982676891788168584793909844591216910451555771552631905091789088292201666703775953970067654876920519248531028168639258452914267651344698563677650694967815573779064035835244972494365922585108074125860878084334673668079133209200265639496171832127462764835276449537344493928216588005622009125900331080215996542741013956252958571018629418929781051949992398490084675438063914087842343843374231232444556391161901384582731047484451921603827079337323640615959730084053450179195897972783908056090076777356878911039125744341540176496466393622824424243720085856038490596561252111586426686130554131433568671331257087112039718099582402207797899212250972414569039084447994557215213817207339763719456708693603357456124661279260555763586661186318431399062025363292780948222921290683007644144881495586416653567724998536648833057821961096798589872388867410273548870492525884924323491053766971710301331185365448725865617848025819728998902113833812655000807319331285636003888044057078319270369607758909008795162208865088422757802591906522053149080521758360953446932750247789069569669894780984555458081217905818239340541433910164637294241210619619825357845445587648690028743562246919128481364111516825290696121485651614024782210663888529458499114958907431055972088555182497323918978543708621146534520474300779829272193513811455840477979528199450830553542523129925806489851730153940808064753111377189342463989295236994416847700467743174108803139565950418576160379715434311333159671462966765037232564167379749375440140336787267256477722606606047079320141008950207299431181770715975185088159787113453810963215064402465495715832132553700041955498142674868481748383932318337156201951331907284005594122615891469480217382654527317029758874228974716019271891519396649242094314739081692430091556134981947311537490613705841310549787682462181726279948693192859917267903324927635045141483091558388510674291297514638088987288525062636114365612789380030386414182479511899043058274139925753659935897156396658036135110718720117782847307522320175897554547327749205449308824142911651442467693654808214185807156761312396289920552913275582054844764726126779516132941039735068410314578726893813767563764736667897502060748759692671283714146878462901934717447254225055438246339983692274529325857946576762602183068810294291300971208848805948381206033900128226843084446113395661433593054455016828329026912923033263102331189865550805495314915326731236508546987543100893396129756518723301545952413100732607064897552131234818333185660314216832296453295010768094706106653052679168260384994268004202418128883169035672712160710266450071730150063358777349265270124483907799494127192029334553813617727520895599252797938256904657687195719354749989565300560533123640494701775409983271186970617290401113607936404180688749375545560268400754124293783970041002814100271710743628018875616524395619439574691451076775085623574612171845027752037503453101476104142330191054647986542453484044955425505121804426964963519536879463705739392432491115091623025628809537857334745865853962145176420837927088610234774331278552603351451256187315154152992254956928362757893504613809705685762911533644450909521080521639957098238456232968700286122447814818305038778589727451841888994556318351416145829901060562019698903829581933266679130545068485785624500294417712261810983917023396113321228686478283172027732163931487504462482944640818577369514112144510285708541142506307751395324469520353161886745020109085483241899090231137214191319063880310439843278822778739149869750230428685614633545589350278643039701402158302775502333318377308846093441834248132433211366840709904748472131005879791507037562245327801884123802024213432922979323597686574283990474807828661625468894619788319983074592926066391496355835943709983600239278442197821952952525613813230160983167475630119319071093578459371819445854254744136471684520867568567987234905750264367313374511982760492183198578792325972057123858483106034668450029614703911181996602748911932186260306757876105977263832812258472249606432499674686981456664622941455413114749720553646115437135453510943189336742604472891059360596177294191960098296216970147867635316030075560924521939481889503242390592942957387907279811019098706488372867871089021313359716417507566278863963413521865223892327862005905186392170178973830362066237952339971394020670090730786907500377227514216520778370928464639491507220717331983616722609485995340221097418687407591156218499302013831108495473281192143398621727912198715170723982930056471595861371026138286788874103320842013183322053105264519023463742426004019877922708041806866198528782383559101874561118227639536764446936701408586539121199291533976775873354420140150823246456115813157323946384024134660322482779879948827920449939583534396718888556430424785225109588017060383191769643606315798257922403218274747645044848540549368258803164623733890275794016523330164654189283881764880046331041097459666273682770162601159731363434132952559152944118895484086929170134856771601571088532036818337736409785187939293335747786989653511908251373312904896648531167251505332625565468727413864674529788475658005121703649534921218908160328516380642300985952190764716621083146825637671583191964787366904531680696342451060157250500985588659744661065002900832302881599386223138171881490627262396411703983332398367487443107186110444284200760408661731335163010793745947782283947936463856631423965756206038572763692160913956134515341260438131250106761174550331114924032687855606963818155051870332097480757630849804939092724142833432875193423296892112637639429828518898996771163685588149259343245959721636052421336394081474872604112710597892658090635753372469720986585538090316640316129800880633655122308215972650540032413524581696896260213344885754246096004293815084282357053419961065605584057207215502501674436018385784611876892434939470434467415360491179284201547283817917317094629333954375849358064585572510437928534684035449370210691207030607664483718555139320243422939555588180780717600206323628427795152830961472310664990666503890182991446648091712971688191685072565669391960985827349311169215495361595392830535805992723803456773207681451273070564302038795134886031232282021648554859213239325480789464246292812920102192321516140146263446248719832963494278719690026346276592057587130286262813252478229794387091015211192550247756582129235181727231355395721116221057161852411419416237469667988900528990947346121473095614584249021668347308123796164027384090970134727294216172012150225431804296289257426976651403593625486532171111432678206073954931859799579625693309944263610279493435772203846557901864407206514263653772006023170133115238701196377452755304809819408556745174052197531039146944140387090389223216175438439798292431196501603812159164997705743378225631014085834501892454470818199761634055412962935017477460335221205434256850568644254777778934623165376328350292759521596493294499546335135664646782708069745753883789848801612691645519035047988318195522848131555636153479516919903413277473998313867516472054350040230247627537152794439760098643000819185269869976495712252494626873225300251751437912630343803883282836811845742216019598561645395284544004796553948583318289718047674437766521933505410086987637456862720553385941908496480912382117374153199300573173940853188226187178418270264208396565554690553321980096108008137617073491030496466692657130816230956393304946421350655097902750913941845872944940065809291576466801260613292864204851459588433528771895825615732753086213707001804172035529847218141580982594184591570743725474717464132407847809094415170859806393163722998332286684712371624335469954947432859217060245226360350088566118927077296013513228249985514344132064227522996182586532562069268762096059869681273562240419073068780065727883544004135681576034627976279677523230594824878073566086280114609784753209440504621165404687391775009046131101758339013047896642450101701377902391879214184549922748677635451879385611595414618633700834903585835749747724596146590519811443295398391391032995944275747041039068672984552776422078631251023681158212767721328451296329447715872494878959152446734934367372919805331752799976521697490787057843047567244776055966538906390422963426262376370758609000675642434766067890675364752030876585962505843278073333127892411368805804370139386681279149669674348886766210933549569226804576920401536641956582834430685189991074638934238673327241864417266501871562827549978807422167585191500939238461166696705076259232923716074354471832233931530576773851559336030119309134650807678265078494390702958824376452167628833203482377734511015752235138570201440824345547099190515876305563456666064516014689292486162590157400373279311669026757372351470663094845515941345651882918048813653476352781496305432324130224384768768781176278383660585840056808077703218983937873819651157602183718447516906717918456559124947221916888519965425538829866734752411948561654354741779121623787939103826656770187158075154573891045499086489725324937078466254200944525572479556205874499782473867891055035388978144456323113026686663654369691258066542027787865184934869812557597357781383337426231704590218009766573337273527346262620381824312939462994391646864044923019215231734522292084937843475068801966126296182680512422066089734697532221154128626275875196315708177853679118399599639670233704401874431182132971646123788576407536815309244168159968198019865344360546006350447504965512906226739925070719928661763820390007358812143405290828893293876161429700244330995202840981621452377070914269693809738184562150381222629517298296052386187943745592568918175510230520879073866849569499778586986330578126073731563562336373211392610666490879293585135123262874718104666642424756387487819375615298481740840608638611669839276418783833380779582421888063458683934098054797887652749628220740575145302450197869035939111490166887043455877153808116440351227325222078041773754608999951760514360139513003316204680128015461614384140462597094205463149680393128924058086991237463790918708087097879510208139743044831165809556527024149838890452071755444308500691336440858470673322317104208405698695470763451263117303197855258400500176901282637836490968657906263058297163995272769721612777598779949201906282798103935365068397199530762790298478488418185092356887074160285701913269758782587549271966123883441657273887138298279031810808565925855985261584059940472406940534758041659662297848696087461048367508630029242752568272415262280578448678719599838829748441430877723788482084063124074286251088451796790663406585858910086485204114982624481184841434007428558888848971341855924090354968955667622522061544394132688878923176053263987511077599419334733044800344471336429135135860604652311297325343266779576273835850394062436283649184334132448766151938377264575355438847346439115417151295986753317642422996434669984995471228269188281663012501521894066653640860955405826342148207312507679572905639636430451808926957545714743535495181256380264407967038472013981096861918782755311807779639395729536452688501355274960327548205584532335378532410565749047094300174987908895209237269205866392869865541390685209425410712662914994846667276819151264855235198744154959282694825119266493773076606082627333308306210596382776025871833279334695591463559877697056357874632311127342340949236893711319336405209473870939665725815506057181128957509124202330131908423861981952586240967781315915553148974737738487799617560415013005084616293249456826994334586759443918697343240633375421748306934106189768158672729769872420366799558045352589200725969752088097219974161197662548452263109195063064847291115856200012730085783339649641921747538886070951629104108048058487555240643103408285071427723431044101849845636593911738619059634908567154924812008489873405829353668495822942412588163413863439041096245842599510640735799552658242660009439415553552688041436244836742176575936363698418481300403031871661461423263984066177396510179719853936874365769619223413610788705030022015267234512457212230102940995592146095822076934651003059217772309767488067129060652446923486453191451808932807587334794396211507017081951317667130698948864489854148429233404004262842001400786135202930429058761492002326804752181718941000873289614989779582845204873943122631447294138928336250609406806906164770265151116230238257836998524165307323999766558106051667623863412428213621047347172279273903972642280021509076507010469569859349995034830741756275877212450073562888664122971243801995766600594800304061303940559270048806072015298997761506017649360200439989823426445801784902702616483240228881842943641936776690943028769868199729692821218433766344330714086607063959942060040180106685795756195923369470097714561330615901407746252930537698349284001457870523487349854103338765628805638333373739404688068877712501575470655657898258600054555327209897151617867731404679453411011502990938536827764031414396496097896613309511664272840169023167299806757342610922464552991252744955585751119462174804232857206885446024108283974566713431734562575088932149508831129328361567740862680015901519700146432237525793419019605322061848139797902171022707616095932638164009808750001931955347135757618793278502534357319947630064721561243222990105361029928491366537978740689027541896487228978645318549568658525610709492910036554936584359584942644545554133654557211523872654037177999499932201478369200591038398281205869904121479783482034567630343856663056321786777825650357535506270301284747138761537512144747041368430135743308790898048638424489272152445468801210881365364846803666344717157536885100761983404003797665209755476104900909669680664135104907009876365322010362530071734951055702998214510284509843819323566080285349620504582821415174793371510334691858842764520351041856623726726635755779091464203266688556578160532632075278254629397822224069103090417850009455907754056372900687337534037104094973599129540901887722604534736728319587644565579151584357002255607664612605182251365049896935595354751461566497028445051561598419642342191735916110586746816032036105019965644377821487106657120839909580557644449085790499750906337183713196092546829258752455759147960840085214783430537070315324660433734703082916302184520607757184574524908263468188805655419671260880727704378178979129636337587292427928657753466167432932225401427808461523800615960315468904990433978884242296398072783687703723294590966169036646338663181428605263780854238951377033265742196962946068634881368051599059064922093616137792368899606027677560063747790461866181884233032426639772910096217406047000021781751404218220809592218633805054194025775291466400133874411172310604046538121714784338947855826318329898190191129156900583895135684719900196720090608350730419831530260026108207730595127894015089118243035681967163601234971277564014246288660488508807199195189839520492607382371911467739758317445392082467177678032618485161780650885034668967352494086728692406856480826717723615224038657202909955035304758031794371453670294207497390363740676120688784326947185094174064394156273540920605053057308216909975886512966176670466440036029317199136051049381378627719368990863392923338708114840975629024909376115128678208657491050519943739851902358905798754015423267974734817037171790157136418562145790213386097900770361633659414701833983327986296922848559051626796883712358700620647376606482677497527021639122253756490726667968602755886762029529047064064163308170881332518820040740565133894475320486847215200741820874228993522609499981747210281022326380466906495537045226436435906593618179313578120082263331489022513299400835794283686333773055888468446337130631508883136288229035644960041883792854803249126991080237797120400665877983314590670995837601427597648555703072863249497584019393018681694765699511994381738643422816516135004855374638395109225450972702601751041035736676326572126707150884721468296807674086029550057460258479808223669307416959609303161116678286121338699206511314002418555135496417619786942579846206691147422909880174026787367565289971728811892730231102478464783472517560212491614306999048820057564263763323464314114083577879399673436361088763737749806677169619657261288485666366176978251105728321738482696636188908891441145060666054395074723442026058070271137066056117552262442975733791798139199841706922492299017412089686076350779761798855772952425973825853536596922244800018717547907376079459320165750558170587168548821393349523984640578219083065990265997628194004352899531830607813622416878281962141989945388084059469102247175479883355588603029734814859571839633234827324024263317735131115877984604337184049527248232407833390291820055321152986057111558672161809435444571157606163552637240425854642760792395886529066178423266889473342412609238739948091427727171928726114392452240254951627891043318554137551657187190377886734006601116997027534834403413911594640560533497516481432964376274913770771624588769532563916365404610004727752077409619706039549080685181566580563505605318212558494113767629855284983010066132516627791383273943822841719173710319089485438109134961626827197027308871530024473754157478639205916084377265389893328135254669509022757890652083106669568110819077697586869747195827232816155441106642082287167953392546466776304598050404239489532642088075315551467755166495170065042006769873995142121442572526154248867514602187301324990669097293825390825306576646136791607018964589049606611829816444250139799195394869420134506550968120054430607599553718052753262660554407897691832257754255007020847348079230121278445773724702702256112899081150324880383935655947854065643050505847922505484009137687780535857629657719011171497128448772839277638899917448193105203484989368493602328241349570333932898749562984304974920458960286721326964924329173018645292586551169932257878621092580767026481051179108068952304690677854630910586132318057588120558688898239148214739957684524815131430622607795251189470647958702631492260055220725504575628122607390161458332432755697841901505529754718222737212235627983844407341261158044318476337288613695378370472478974231985838578679424222953431816142708876991671106570045905979019953626694271823560850421760688579580917392794735809205975282039115516671533877631194544740106355205581504715982314453433396524455946385108712364072166888101909765418432657803669844098861709281214449211451108505293387579391709548904304888975278979737894262166203492037055294564195216353825174686625684040265937748236965762302717649147732919509411964341370939875612317353776529649691090035086734789010290584443848454943688580175154061885427915573608879182871786139791927890401978118196431961442436332419954494087911156055527857522814703329678019416421648009447402276106796981708306583575155643909009817154423875144308905758653473619360940811606301025896230816256571285936434210937191148530197300223483602541745323344063286952494626960948252615696836927970730114175922295341701499652865093159657318910692590937972994121699156072576394519640570909748022938457222553179992483146969594262008474889823435197319948145300001837978895638888471570270423295301681536076470200301370435008485101269784189756250707845286685172173394721337258579316441483015698836732146122584059568284413105569297437635109748802907458173202826958687643154717532547724957120716455630550501392963408599528838757279791802146130233192080326539510402022434353884079033725408257407444256039663664832116021192205655225984137929711617282619537224582812066856831411772551686682092527524644257392362662928298481511226622021643740815551028990033357605788750174889982926260017043696423586087286746196621833286058077734086678127962037369684512428053737526948325507372658965111964421270429477671940748809993186850548919128958312043853189755766692914923436633109875727058402069253902445186565711003195073087564538999903087303478974401782594537770289064081539411515178307380027493563888420613169630311698378196334583369656819491890233954390522049674929025005735254320915778899129169092009682739363850287341892775790739718181189130679671588404952798014003298890669666366682908343982008664123847142607384302785764130771841948011963963641923407383676323984027579317620222075481357949085448759365514437848798959598208609716579517622393682582166112658538835452351159244824393283209204447677526668920888449259653339290894362290048439691037081130247772091481294700173564670218463893961595599383027719281287076574046733144732308026238398637880646487139358722526031836066508807636279465181642781275915475631156560480831026074430159039606763068361319761593805464697099233787886841791275927493943350413130591305924259506620834287898878507651475972156596269733503578561594725048294029086278564314312049571634128954889098629116385407463587735195828451826441498855169555988133445883468977222032573242838798176503799782581834880302833059150625827657907154433726579591689228983290541183807531942195967827861463703302285722260026201001681787366238106894552435800595465935794338719964414972668969856812047156789798128916471183315003447489395288164753971593999531130600966113114748781778773813430810462544564999798384554924682157755943599605203573977148647210421423336769562511320367590514141564233335305722152069197446362059632801388661689549649407402476204296705887595642243463551492297513401209854796087455857146066440089190882876684314941969562915808269680079162873959001391321010840108199450581359223038618133785649834714631761244791173229229899370131339560724572624295012644595603373938325981778136716352621419844452756020535719394633363588421616942477485619852875066053111143955819562990146930093889456156606678588147420780349248065857150535231739762892108633827415901624177136033820206990921777361516785137554507116521325483272314794332567760258225416755542587965876851234857115599181167293958905421512796675295979621924887263668112078282987119488713873119207112023130701397766184890735288698171864306281384080237760924663571632266514407123971486328885223437042532360050355660580065483991603887579369859458516205847843223417402651550113733123254507958851043803663562075422019699118882902975360326361682667849231041392488695947887755115084849755390054125504064367562955127498334539304194971050355467979262256797634375001619702722712689906101936191599678415155363787618659465967240891290832364829747762654065736049029098293260323194272740892124853228518969686651146798632205987536986157139163470521816363602269700029107629493854266762057136829329105521557151193154567999536452234994865919978219311451546605212912999573138685201096133036905266195605143038867578738856099069946346987554323915982512653627652127844998822919781275756702200696706626873195197270713401757443940085200508293089187918459519613655971766397043438374774922835141700464343794235735216212214091123385598961897221306871964445569403708576957203891038174711277154857063444070105322009507987693320883870758226487428861964849568634667939828320433218306070639547528951255169757879873035439888180421486255465533736722860600852674252709439834968896404482351835506061058642562724208644033154647988996861429944398374366909820488347115968503291931434922280484644756011909756420609055119747186905917440291709948508607251046522416546782619897707849939734797695841457212458377895569653123389884803569832340116747682630190216822729008461844578444850250008055731509000136399467611078950387930908088296422858992915001310080202005920948889178279642473622808068173552406104777930415313087132951587484956741034783812333133646059797936146675713675070564598554378190982553243115543244742903903149809783595093132685318582635664821284773358193678963288175592218723647987467459521194133061493181058943396601760595886230540349788447113910250815429317071054064016653825372535556629068156468672775584760605276720750556582050085226476028938598537040412612305867769413381797915437868699458786729749741650656229483641146502925826337482576046094633373659693144594308581323699101566790908225196663833495796166110873885184741616503443142047780232921189456295208861416387365841918064889657725865464164755892385740099599189325635644147594195380132082016726433330677724143835169860641864286414563572884517400636007203277846276429968244974030284373517007797181892035551194038050505891960209387456017834267674787917338571978199694839663009902312789131230740101073834308329841138426583511883022490749516731853281483544817798534146286211914746151446315154803686963730397625213163647378311804495595100293655705027515162189095905233318477281214028659332783636708725414974552572051113384476229065337421781732814635354864540557731635935332914933506598791063641068892011266905177848136035247153406007824950680951923130587991666938207657262710213506464212198481383696028240516520595036975536867299335837557763715598585425602662206247943129920736821277486244344122031221864473850247803516533757671853329286841801327831198383723156426049498199217473442681346294538082086363949914932652375902984943951281779541282276996848319664508639666484606944653310700262155448862596187199678051539920835705472014801622417003738851246340738050927693622442484443127749210279187535592811026926611563901738317162247211620988790421747060951969909683113887871412539336345376183905186118446314797077439513703971019827955487173288923883118173090806912764414757866096038553632732959463699426596435222025148838787135756610630994624521272848403324722231984048003449318473445747477711972391065143947473338022226977785974062433720182775670849019412549122680416848064800664805113871014291271166688332962338320827719482462503559517040571425409430605193676855712782498479094627069193701106818475382937861044749634542858076679711523285851056381111757567104727409880639730020381109300260719640155587910548436852565213410269627955186971588774026043269556574718989410463219492790561481935981715597350456749542055192940319774179926106980464893189589362793001565698424497360999785513476704664120444728021313814743802198189354949082955671949440855608591061102216402841655765700481948510091926237549371444984240055335120569918730735121014070243764216068463579960921264746063651847287083003960326290247849694509921107743741833457380648503543426884011771351149893430605082745085202182921879622440732312090786910748166904454474129201561713981973231428563969948712782570888636101775647035333847535836875668646264701751363117028871681813577104453444989039806414714130137759914837112543895602266893898324970211572472327215382765718060492478815442368657881434692174110074647846043908551929434744272308568050447712998417793474664858446839154610477130783093246913279797412668534002028327500262832362167402484758883938583747926341969964375301085616248661668677800009651806833033376161147093827894332175281764878513463750396564987886834231208599641159474287249630719165221922233696399732493396195147835559147433370937702414851618038382505139978545644109322246569107897051383582678317548314044855998432437222796868276338658456752708893831291937535710541382162589266502614433361069393820510530441651870190693537338353529874800703907307772174146587580860687044315659318228315244809651197991688035293915545132486009560698336077215889036515086921838275371911789753000062664924544654428970216823188033886758041800064726645969778708556727350249045686326622656425082286985583019098584939549335628245483410134076150054234820750729958851031795802725524575843317865614766557107665606250762771502488464238667093299476145263632632281427577342219711079510479161750640222529683484929823059696926374591162202110346125740856369127184990059267722827151876251313585207101442420480810256676136133567565614339794311079987747158344261109924791560853046501305097443911034446215468166787403129498073044704017918577108120021943864882074640802716557338285608777946202413830601490680383651191958573480998515316267461769798048409804994680624300180368311581626970530525829152014174161986590817842128006130670118491619786963051872158757496306068043683258674984769771259160111630181586572953075682884593820705294803032082872965949506540723127827062885889435434605026746868260015711888630721624719793522621736323694730442087211967678239413828294082756998752263740038080804534511388928543968692516642719888991982029134818975392598707220108816472052412878820935656096192545654273551840266769139974212614355023629672679360483830838252920372925468886190007190942043410378682598328837604246011659024180313075777863821785628856109154725032886937755785284298995826301657407121682688187496059012130870437625473821688208891481882876391729039411879600607463029707534309156294429175167125641570273893374402862167675666931384056696183387050317195141985261133972056261619123449280980597577333867096221528713930333698068725005378013042529535650127366024817748790484775141971341731403795978215336891851115449450614378919489658335091270098549681718891655980242337140884101543058911847416759410237788145443187325762828492079679016426242152465275274095037263817975226275577638195772888363225382623635386602561152497609317186553114790221321461763226073684617721219345214107894221021920014787049974607246797410078523280230819757656922791289915308213744906756307563213708510362880405559318133559485991573854333527562405847501402908050578556852599498741062535642163699096139699558015733116027726747204287450496461294043786470454824133247374124422661058492141341572495061085409167364050574721713162078717259666185116302861805894281451164208899074485260325561834627805996323869917685662590047956344574115437778265748570755896958571121511278807401321148922899664582289226570084580848387249000399315288861365881797963371937315294697313681641534847513017781867580568553121034443530342585783804547642142143356413177927116920937238967846619611862578875523067358217653517785151054468973692819432749056373391503291419641454894665876927023899292508698370625951691355436673984872801456002173754989018907800828196591816372596214440175233703930484103725691347636816910670774835442637736451584242734801353377854160268073329621179041005249122256518300054350088812664970431372367947936901708818314970631335749405890502873081264828888341244406737453004539412952861356682338724912411051411017790081030939063562879747637890507905645010357413415443452894218264117713925981656714859741000195696207612799801921062603082503122596368123854063695053457977629876299005082742606986814061997483167957421961808965296935872814547527527350769936928210505347759936739239712900481528978906809799288448640485092429917575352787566886230600657421817629517697081731932708009587354101503023634776193404176462696700438125685673704799232605791826699552149955706870724914306851900605603497776002835973239942846984339596998874645385311806365656448371814089961630177154331538920762461152274841302808018406140541948321215342962466628448435561150693030579725547692352779104603296727317072875554826425961831629894732526405103701200416361898748335228292868904252264401546153586139433265401022426426164449965426797179148551952586734834770838661032682946356370873176225850618323659210752967623175451878603843730250918194459802255365380757494872469776001977735039148366270802912455264019151268670109114624977315617912998242871360620410101455247819877957870761119382476336734946274942931170688759212495720466089276477163096301764488762160474872853845739276706335823617982532348996745155717941117234255277475144839400760751245366044094627321199456605004872215313803188798871115138739897777924285360041855951556290605256136470832928749587669259016713158541854855846244162241267247282304230813878992455357586922369001649596276931046028669116537360810861449642201749168860535258296153725046562955342647072247088642429822439090080675928628342998069102217508125183402096377100534917583815504782449762569429720192709014000270816795729415766607726512421482497553111111540528118351703396119947678649407121872989772408756778962373751116601472035497452457074479341556884284463707312838624549728259499274798126728405742778933743957632400800640330072792201231003500979184523972537492436966320363127291478094656567661659120698764547323627014863925606085183278785473059811404962916424347462132155229623416839383079403788869467151916744660686760526882251325362929227136251250868039079691473831080711027328581296573096115762795262999751841932908613474263338675102996802323486014661297151373680342064675593860938960781301074309596482250966165442750191603473119205800468023748007730872368715115353335740666674249494583096155403449083302337869599419963022318403683117619300244007542123701339283694052766181038960182809530708419200088139979516148938024094972799523534535386962326563359347407413021976003239447977784452043081378680923991675111805301981250140097101660832488924287603721378081732687071622756592422471589111294445470566955121598046963013209395061259674447658680559478792985984953258400428976701464731178536847813251534708151201267478753271346853305731859585469208515566640616921376549986628059206920566067228024404450041113572042465601973735190142086062547559049678331418332918122772134285696779967725250286456990184608430358845441315467332091984903110802332467453643637192405281888035085384861079989081362396699290712743990378524061117442035548598599079603488149482654213562487688506980215728458787983374567539964955235680888320712263541737004000436061245887165926672094729225974994195393469443277541359696928697363508433762828345661124532022475990174156107215349107151271592610936912331940964000639789221552539644794055720665990789575214854444329046978197468064608647544495896593866787584263644025937352516359145967692468430021586473361345207851359109696621522864630416691085525419428943011893621728056218885027546144509451966785451512766510091751087117655919809898194490060647132540701891847645904276551436853973892965218640262669787838973742357408795051231682707111703426441214635211270399223783999626570078432081879620032185145243899590319319863538344966643733275720578318913857698755447596127830531153431304857764351757592046035874598192649365328829535522599480722834913789389438779144726907169864384498979003170265812801981278759623663276094715437121051377338659495040114669177390784869085309581669739321371161230076550921289842152439588826362673099168521469528706956977229824509645547044592490951491706976552379047467093088533212143215212570712570965833562954620533413486411186710156439292484957122331214991230765477331296665732591925645000717799488826366412326199492255473007173715459664516917145228300607468252280707534007134809463502432252315080764705684647506041945095324064157970222317760461369616838281240724172871685409037784297253522256750667353062694498630120723071299075754581296055114096509264788397094575872866418072007380813258878788299772344569138734354796069952054792875755281839114199834353481297793328767155947801756015877806493847304537511897408294584347449082103675224258995529529714930046073935495487484425584626315482801260250738382209656286718454731177540644794345531890363428080217552518013755211207334372126282306508986500822527105811356256077201753809649227341869159883303853581485613443318298316457910525915826890940496377208032635618256057056328643286130830856203462394412875620470696912338087495381828792407949630117843146711346400822789128577324056000948700139224274940804449508924823644281275706329598004113967960635915765421875421803659874461600908380599461833670889239659284861727407602652767085975370267893578564477773776430225053176849882457172193371051562050958800529391233034859357012456480085648731615027761131196247405369845052851326825167791338610204276355996017759201759207545876266888146524059440261062286459105215455829594420778061061966589915596042887414760122266165693809581979648990884218556649066868403592389905556174560296759198891833216567206189820830883705044481094894892315815362417226606022628698602458939072660101873941334752513672004942209349656041137968214218332915369127965326857488782663076654277265141531340392123367729723905198311085758160286272309799757395734084353300084278220417835720917897870948799655321402281557493753153464324282108261674408259536897444826383769175470644827948065499128465065940510795172028254626695597121603189407481500278689389065964121620740742270826967308148502608850970737046239636499096859489654072791402356795508164324986597345163262763161804444503443928969772187892337417210259528427470548819437481280354448739284334847794553665155883682181711710809069205805989849261019020536259980303034604866167024427882354791737848006370296086068859334573556111200898422703824818942711144944863830681668918503434120029937127331207169898650756976769570742127010580396527965557480897158634646704562885246571673691358984616063174449987775423883500737265443349852536744201543096714497445498708147049359265045564387749218165236488673019713860376089283412700907732104756204074076254506664448193961689546162427143865284229331147832039546061455600122423882225265919067791885711804182859708034326500550334273067931400179052637657530532484313108276702390120906043839326006288487304843797072364587536853612700535441928190005400857631163090850139717698401305819754226444789714805846069806231626499069265769753876933817739026708612428478262250174301365372756348848320197114335331165723062902514166356005273863046091462819245747582535536636480415179039971351821544582643927412517986112917041706610231676072731987043771456493537676984038174856694790533904853195038564405864995705843668327979337199911320024188494880001515834933428326169042025575835792408803139838029099416032180760743189649182457081488000029494071471789905609176106154316070999187322080979392598694144259535431153895439693182781972391177472326787599572316648984111917555808744795445696150350767183664925357600865004032350055275599605814945088064969229940844269978432847337188222037775922449141631727326812394741144498320252637333437662026519972433698293658299161358355696068232788802759743668186448140675250589884543109204524953400299541596900908454532254749670522560504866438891963304324058297608724010833552470583187996299632378737409485989948776398169313960335462041166933077277606532377874371371018594326895232265372873753765199044411233757725712273440869308150343845764006025907671381047954355469973471832085022275130387776113593093186621119987610417111835155704064079675349104828893309569291037282259704657221779640253484065624573960574524650423449725847314590773925435395813196120584368742714180486987806223605806164319171419749568717796493635341601519101877772219972176052953567323368032167604950161830420108180785807030865292125319883266080738017880761708622374853417841706174084686521839869656236886959827982072224219836528831272719531124526386169186991099342237494451110601715671116912063567325492794781164418757188764701102659811930553136720420959949515098554063449451647953867176770459779506684339815221019122059770332470694756045106936474152782530995808667771018008757318780725041035698002667562547658250691999367561012747037707434290759759737045917430129527464815600196192631259981493401703734428369287977218917555716022200430984030801318060107453616037911265347654883880148748312218595971887843583068007491497307018853143634594362693116243328608185262900226701269044218259968714571083642591088119964520543394279355139929365377098562387095836171604538982748344450231321528865472925235334014245919299142816026094314510949961484826833426121847628907552138229152629052769441814803425008890815632305702990870913078254480895004576560710736816677722071986672592454953166995012383891453962857163329886520941232724525120071674894792676357691117953539713882509319619138808913398208399044634002197507483772518071756164809003889652082839656493695815866147469697150005238451297869692738313718949991283787074388249265861915103233573120313105024159929063877583598340897890074771722227486036775591749241464363920825749431072096963883688552926236215004488544980284399946329484853902758588566335371552294857798607718359425935470860251544254490256055235494194697733118951772826378940868997191339268676245372564522374480163408653364682421123824451892071915966428380908184580400049629926742928620063501988778756800705301401509293546983650742984357243777303281517821460683028690220860806207336059077167354602054364195136961103423566418000590884376859836899648105902484463036117714740442153583425079844802587007997449596249863061752184139243949629241186669951009763581427307563505545540256364765593654622153384671181806185553372745558659379074811046990661407427150529577708129229679232698495652995637249159791566431248852469696752410614458332949582148892885057218019119433318467747420572532780804949784286351820366485729809318013695515926429987616969862803807241785158395356827228145465550890995605512815810562190842597637971757557129228577047057866343405209838625275789169057593107040323179412521883654132008019085762193762032666374354788196095897366519605216888568661284495987740922887083783204852542823565690504013126084318895424373660680392877346555806319660725597697733277290155991513967347761752376309866910816904124112048902373506959148794581652591653106135748891134612068021330170158584096896397475849281061926748213746682163252414107757253732987829724827516986890247806487374675112252663525351478961672507783440214426445583515330321294385821737108335125295419891080679405897288945662536235925315083987274865279572918977197362161629646411541139467066860931900008264032681206346187646796566079689788432545909943706891569635037527629961037322322629736412296972522262889120059551642528605485071182219351476252666450303382878433658953274915282355553944135677415575531112839098200980837272894727331311564924578231900135680001788354371225306380170592757144982635802061324099385033902994320695642692158470951205586479030000465292146901310945630080573865070376312578297747353424942639543523276551363708477059918379668299138635482057818724263879904695007189675297011098053296228602681947749516298941375181402240342474148236865071366524300267118193677389300755228794706776964304738157091274214890662060614589685030579101651464730719682455373464462893879689108561977279576372595637858131561025531208326795272479966236060124092747158185137547374783320866455155559373811092738295477394192801749949717565547531483851730817165949546731756512988691782678915903924050006529848270766737056938367763797586094170237833835503804545634503487358743309401216980159352033341097709172553785454156031495653905786988697301338049213008571340056052145937310088449612743071893170605514014794070042255888166520515329003246055163071963355864607912209495481996972033657591305484885007615933806426976786580487205813807580964708811632914397866832829573061855308192652174936775140570670461444733381114774201346217478755208124420854155569966687025037190755575214556378965433414174691078528434589506224373953417027114152845246642748980270081327292034977143113013737049817784216870483221322784383114175689630684443743475654440148286258673711836095045396790924998084366349027501412761545358024797604924751718854673367719508631068073287282490951745288986564582174781632742549910517611013163113784579687357361935525310305562686218207127842534812177145448327614023171675342678455524893566489986153224466064260234298246551192542096024150479286828979607859037414410115592488309435918437552497296467445121785745511651726139212991552120374546798863772110014890450551417990773594911324160752188601178639429370777216297788894642518935110544528888713690497530864846313251921941215733902909931020332948761827030017080366057070454047408508182856119910832486306271407733363708064593458188719017740268181314062516321204655724644428611137272491102521071817680047341462277327472079546627683877989648325628782825173265690211362846223251147531662133337341809760406278758128395582407942442248811894631386426853723743320471664906061910729745937155885935504564825348928217525212213154378474808316775354506472772648878357391733740780257889353586367015166468149707990463820226564110494194467796028372210715593232342173141366879065152164092871999595675417661682435875391723669048218875781456834504023848708258567801129801121758045342928787004984856512288514533277711908822772806142429971976511952237387363960749951412310864549343938757829169478557815666042985358463044179624352099654692495194357573080422851604028991697005633984858169395618037657832493807321093599636070548225932174391272134339120581572879336559274414038284075943768785124186363906399180966389075035429299563824027938099900827430825730227995272719529790531481226483040893652423508302308917778708992599893592442388358320430792454060440223012856617327660770713536366814359895304775122069146888509501974641644420459890317780319435091162605767660382306453129011678774984624664939254040120039717075105427511640606618053739061651185270835884650990518368739905470671310949774416882249928985740202477026018058551844851576523976341179662710812162727875538845708720942477728466196204648743366993378714350325500197758362004367493847934273929091088378443381675011298042888748174199020627029783053305168670938136209672028238934413123627708680728831585338231727299276205985325354642135140731439268237788454514176694254333940257092867615071793832539117891257148959175129768764039632816074868161983730622503056042646212030019171620956598354151565606633395069854568311512565269036631475385563596839019869436824849440466248526340493155130226117556996072518874290956460293059847776987839828654181358460387709128824607189771147417281039752132080573411015350073485648741808999687465209595988262764370332724992323696325135323533751790491357324271421496925532042527088807728962909173299385938323562064784412891820254529837413260729945617624750598945214665883764912249386254362111378497166604858126696397171762218851398847939390688944918499169169331901165374707396992529383365414417727183000100423528822540080072623555914462905690097291404438053255055081212346471254195609041008439248698626051059679813095912608938751577840586965367293122485492792066317719496354937850360928235211956857652951002341388138625154948208087275261979097556422797662125968009336165617417667908388077891750687584849798259537902577581148083034773150340708919523285184160330619337788429725172701522543687487438531375350185852611515450653554261472320513994104835826513092557988072179992906932288604053751344079907124794762292930672542488471401343297853684007126068194770999871458196352061111546655774680725558545746283448054201676151756216837705722856425174821969138867907586961305658363602382727584599723764018874095718355961640752597076990870225843981228417183366332406652875454883904907363567851926741522442023434196704904469425649301040972206135514822883819750024088423353881951148417270924258837515092356615535368133002859787703813574733716334565010408304330868892029567139902713618948473388487872208214391982213776928596705962533773838390299269239140164372953385739549717877036830914090312036158457034356748552168205663003413425295909811456654522798555353713842639741163418292421515503905828426927517409985639390478000968587863887667112358017859672650963798543162252591865238693676384238198009408237567463031577790363263835606051967967350680700381430932226107883169342168370616033648570962200046265888643525174774497655447350611070564728380836949099033949150906151590278488895300328559345581929129852544690376081588088106836904406934124560535572005541631796019535879121506371863598661195744069917943800339735321578914260504147748112942346118349605250050515014555060224128563057610570884525996395004338347462479935633113503954266175925149390216486458815782763177430755959296713963534209306579431830668826492333698981774007232894222962760281302194871690504618221255958421839938230596528702103020172374441705547357130732990036942220000291485792926060571067296540056485488825697358102786786632529191538932550214923266617065265211038254898268886486536365793751671083474681669213263561104134788294699409535444923645760615493982024216034777651554554759575298160290101137703336924254833781952229659431814899497467884468200406122245558370391122617795996636632718223101843241965721047672754999421709700865411434832378069165890039781785143889927733044596030052697487926039022979993215511742345469899205557928003368595182561759855132179132551853177743512132334843216600132202978274061689909999255251029305376687100362793880423170703966587086051100708234294909073228668478902086688710442439212714395027577302045029424757685761378254112639892027895003044496914088528600115908638934339250579791413756825633891303190793611960696054846520843494140776748668840884052569676845396309896792376296176591702642005448343882435936424826030501541663159402909257589142631739572057313189904515618202359784367961009836668179635439408853173347369623871460407141655320756328183410255351274931133748657926005674944621242817758742024645914865066355110104115390327290347586294149574511003924683110332420563086193310309829603663476048639174967788922305511671673746644783808372136703831903615500661483292236627995046914929202461405269633438722642721836766133083377367139104182072894532594966221547553864035992203931273707464949147330220931502145182579316430042320413582900625665310814176790060631925466395887698750822508577652749686824538708133125578522163299158610218500614526941712736068108575905567635706599518657108839704783448938755361810180192980913932154686108987584732879962508603871769068053513262142860967108200675817777507113223090175962460307635513963641130147675539085003277330914238572847397912028072902524413479974121366200748421649296252736175857274773747083162458276777465322638079481028510327666027137492713338762159069203806947754775440702994346712080304835429727449549361966836444164323692141013945237205127892965563754417044171037082947501012594594427295159290514881849563633998627253661033078102507784163323118144697665168536189284213890923863538064705759698118708810389746031087127174412102941046774261665087907159014541944647138926822082284956064939321952508218487136876114108855954351738106161774068181054592758744139966140125031418431522742119017162005939785615960948621667989678229263286116929545294309051190801743807324801546192450261139991167977755249594909239816384819991005946204616390090938729613236290265090854756332578758039405065490870031722660669417636961609201130252652814956368146660044630992936215819017181332319701375253073950942178260492680475331674730587575804168324706688906969884156250568537261017617358219431965956339570477753326394100272753634866618082285527845150867919779312683648674258991460277545143966282207245603030774432765843642583959905403407508986092252566547138634485003678471737476659381770734737691262693460146830697822605280918274971022582595037464450458871485863126251408464261593490622727766347736544125209740984612889700089172599621135022214955618356423103491910608983474570450293682753528324151615841899419441209718856041940504421035063906356916818844267355833566131969822760399204375679203497755724551638943999562817482199382199460114258258860243938008797711020724341941483484669588644409918344725479003257946084665751701699511995161053704817585046672417455091843271955642498554460173246106304886327703878888550772497330166545199793423201093346311811079217115781063785105249858891205421796401485678444755390269868721598831605909551977462920173547823489380515411480674023402118931791693279618543672529570273083260508896480816710720019308983179989183036286567166758449230439306635035121338515178458512450567683663650614899685008779397286582951810484891189891251176803806532569995382688312282700819763139935722366980241289669248423070123820031097265161857450512998941036140007557797329623352977810134143462751951442203306576298821216121632768652483786219428068531804559292393890984947286469165399561405470716472419203645733445024561626971270009645699193326369023465637271390684991367138688265977050849904711753935811559394565912737404474948595276831368323377457289021795276051060948569711692026578461801200140830082701287455484922705233252326616063905142766776341415604939897556314622367565221859719304078043786927489032682257206909178278886842055062644073709193378118764430706531799004335341263413785604015960599742845010697747442472571133080653887312573579093509010928222517053184788295501495289252054741154603214843063609247078196481841240586248050161443919926547860866247879575023303617766566213843825182698543909644256630956425831226996412272487700408218508707007918251135998804450738265096719712945897938484670663840377282240184718772152654512771447491816721589614469170173267219448057352907373801155682317144641600986156898144777945647792488323246367075994732567710593721589833700039554187984823980766100362140744453920883334009796407373089871278601436203360813793417583527939922839209370330525720336196136189045831774851647056936155402006532504484768115621519153919719398427412065647688667448013722505422490788924782689295316659268747777446637437833094566451676485444863506101519979824261227449688381978457122649428087783800270466385629057574004339907754009401639352632165145419591700878837188867582730316230358338521012283618432022000528353340620645417783562972011235042547662672033418568030665459705905312072894084829449850568977347321327223289562867827284355165487750442719571388340759410839982152267843946102596530826968729723949723862334508484039778394442597947240620667630674957753234073611225373324184163059215285123587303795539929169176810168178709995359562698850602470941361471945208123418406869291454245164023991843183842377740515762257797267483216545893455852880317583191393618637739328293777503345595346101605400407763021360180835366062987869710204935797259536456716754430528036006946106091860497827442956585608310765515936982593485233523138572782136213138851393788677307857420785312283247581187966411931801334066982068600237354165240605564858933564634034876033891427654972949602949364211158811176468436736953085639022571989988427524472279511557684527883984379873810939766038745630644500220300643323077931767325041037188063043930648532948045835424557724885332150019996683613107859779444092503521794926137596876855929052420583963418155224110543223480120049087318159808365440117736846322451960978876768280841061112369320576110760698418260147372902756580018494143958588155468172664587699101713281492608877277481504856904133206811034059597286811164958396271820197880417177323654357357403041654610617050933351983853686400448989722967540810300466599893992978981490812582720221071582389244478744774980047774674113194378727696239333153364549905552006922071460560365822804683152249334921818782233010785588244337561626368887789923776669495687431387335159079960653533097672066006366359503854630145100055421516140123481780888355787328638023149693653389461663787517588020080083153508950537475334053311433023229550723033874980068911646387934391833827330435132380434613048202046815237850759257077964676289915874806725562214811264486502210746112125155734237449657885287249366620945617478585637808787279701803163668649438320598641656243549828244526344028466852741098737155614150335100349952754913690650932191553082027956000745811608840165815979462732236989711504206519008772145645385444438736530552383981711098079592467573862110451007845785329490689692594905895108835810624228904676024699124214722347545357173118160188645779832312068863134114820362248165989674763874136851271673067327170133508419803545035424331703920722969067993908730999802233007633021790824044686549434409898040319948800055946958987891072833220974468045921474696351761133563176304727555532894094959454333756361950401376168237770945177368815401008030082542291277353471947089873529310904006560722189782993284112820893723185682058435292463961955125104867780856731543512500380055402397161493918315378386143799355549668762413862770054022994701214065359612783553039586219345387489613083725122873565537945784167860869148524092851891211435046361493495498195894415515356833385488761655249729874807313448750993748659986421195751036894854064811488752954131490871515010769800123587748592836424523543811309995960469169481158481928589320231922168200839039382952118008556999192025413828325286263197234447361842600174392314436255730000009619278588875589017747172049992489363664741821345907134851071119192168065114175346194779170078433863091798115617271210580643706686464219751763601600771167423551177376819520195468536671234269015332481489176608948970161297505934840947225506411685122463728236813725296007127646713129560630599891377126667670975076506892684672640014040317595908188853404009918307651517516520938611718773100933395666584315312966459600484401081373607122713931795482824632014841058816660602051639682464939737550993675656142296709902412009806597143839237251748463131368424605832649910735650074310041872790390335179256814895073409790059827479844737960820514433304846084486524676749119686608680869984889200759438945997266281954123181661933547588469619834148327758499660103446627950026183812815436159997251963570437190300322233085417366123011273040668567958897288587229749419675502622497020111688594397849705565440531785781017843947436586435363647339064637588526105591983175943044507457245818692739112131373640279378466131785180605094952044234030900908609018534514629400319277905032952529215798923377926885119083244311002085381639998503032622931673670712768653269349850269957424709796147400542910897656694758503353120585835929946671130503297434379994801841240983201672558187706923938549836199783928867303313063389641339652290117115358365854384006206882202321533788234442030725087554654695004054026737115628136304207011438457079246188290950777268491371290828627529464117597216524817257835391958422855455786320892260010680478528492567947110755318054991818104481146500605660197705250973994215461131060616572339988604562838998860680722823468339922813606882372513449998911967369179373764009813001133109544281214643755918447483363952716639182923899038177521241077656140797199406744741136887831125379871260168604396829881773003830959040715201238989332037165616814111398799470538774081963229339505500428494510971126821696053904683269962855213082741567285255146854214853519768728211942964849050574048623486085971781049027675866070201049415627363298522607346190186501056611027296058237048747782076630211525375943442416148913329870733729692958005323775879281622137447408660748477531884454601182807041184610188288005745106872700298723071866316421965283797412473237152128645343552481926794690923830881725197407855299423259145145697665423979932362028915828505909585455326856985383293136213438169652290516795697967035124593505860767419464332468342604568247167827656018002475176619094045220825025375412314097468924205909244676736496136792958217344273303469546670051543625705080697152196255198125792927559815105994075422349354423489619643560174631245722820800628482972302284448390146877501914369837308000346486022702338489468576161985864739529203702981291606772084585959962333144657743835180794520445916939339473015252512351773368938244850504624076692125428943508201885845479577518700950862103019690086269541144777393643792599568204941106618224986770100299840807647005723603275997426753976554823299267935473353453882565244462716210119697898101152775456945553637494152112550213018339808149489393693174391406081308936689742479612513714012246213639554211206631087951330838627166669045538272800555633853590360451906454698998415594075454457657713865310078416276103692921368781860818194840309577947729332059326404925457057000041147801432863236390692103472807861150645843033434319841039957818061428227613670079291679029544362716593815445286601953695668687024501690151019749604426479296537393909919517991295352563367121233981371076840931012454077264401624686054642816005408203445781536093622535115074999289429185623839487048511542285692500595883522629178611960732535317420234702588239945561765075939381932536149569327234481932311188879633543637837370350508893235721085154541912841726247708732381516375336955165540625066723595011775300894420225010586224553658506517863055311625382245588833704398095507953230884288548800313944037358405574835853276354480675812161878186305796048591102704814825668111146191425462402450342849063180939116376904145425087469621479880268316324077298253115633540001426807461088606405101475527114095102347995081753057371719847941696711987566779533659495904212493769819242720505135847467715994379294197639512669335586943911154794011112349021136993176607100592847783680168572355253920754842331155848742950079647604803794134784847323305664756966122107032060512798297198423696491613664134347993805223687260656950019589742744012103693779224415347454147941167756964012413676381744416940904927087598698964788206610280086502958028925464356504355735108405742921161092642049484645972416928572649218271379890725794444918873866198506195265863012849088944247331273098445811685121253067298093287201220388279019703408283015830326530706529258498601322924376632856657652641057044315183259220192483186144258495937971422025322324922494858317401616447679766756865493126636767404385016075258073514097284490202000084804962732618684001774734117938959208976901401782919899051591536787794446263414878967682588480384385793764303296977366921156378692055279224481707471357497750891696360533616646163020093761528009507627624694457357112248812745758482691332396179830367648002129223435544240748256218713030905820645568370362361179074593366728816581705458394882852799761350473250542397649371159251659573542138010948281859140257458838399679070208665301253162983072015033765261572250632169475582956744058031837578972005913463237117206096398165093625470761847785731278039310823733945208360636904840721759643039186871461522316399108139527641223976716084384307900108012240964300674456961440950038027882927986689787696986905486911964460749331407755412254078402627544750962539652313027696111220108725203480736924982467427373080429836014650436879841272276458514224399714230695861789633871024787345649852556482219475020623468582286679255360949152379200321191690848847128385487785642867758312962776863696294113697478251077443426082296114204483127273301989083892592663920103967031914571649730665816202138628473643185269722036516127128538046433943645897613762506640577652008857364728019958774482904487317453582691491523558836611942490284999273986226668277501338789236668590014564024874006911571575459382905043649873309490725363879114560699476042659440480945773464804201547456991654232540327687636641517007354819420320448538045939252745117293305482783604551042181252358186665449033578817949366439308848175230196282441615661887295000053673104056887055589357623652930030068809958351529438065801375350488312918351512685226055701092167377741247119324159936021100505138316145370651017937283907240126764410909542341801201728759847990982934039051786086216733413551894057318294481246752259135598136416153828232204873377874548472770254905716202004134781577704821768776500033195515113056392898881995832558188799474259584551511572440294555258116667514242998914460596391500112858217263816545903322174085423535036013908042636814758927370830912056512108981147064592916745179557666420778271444678334156028122311776948756434348381379400074682458746557761330401209473723960571136188838206850655926751148269618387899179998360829815019613267706480632847651176271991343756984064384288030204770153070361180910884248012610000529561518722324648613222544517807722539273928212945099516073524988476130356327189668584460553926303367197191651421951243049997256440775204433587929324257644834209879557791599667614130243773954884143463226220882641784655759428420383272988084540188023542259945548547620245873059010024028235503141029126513110551454490411918917030190555440460390816614218985871881637032817837011668501364926039543928808052084810749174813428029876316138845084526141225629394373065745663950645744421957142826953406813879317760101395452772042907417312728608077695535880669075302146547405648465769048659196748864838015483085202452229788827970076498841245363571746959169509716900841943377074499454473035579104536019966594542661594198500069156468246714145371438839440799370029206015302278991213206821417688565335693829227324045598533227878139008920542035465238455150468261843407585322232986386863534653473713147603625619932742327041300326183852049414580808584172423071899291496769492268905675239301576794716149597384448240483897421815584596209312815962903293790391431503378253140072152416214596821009846551140566443091738228503968106159114373125053937158368791880433834151863284216842502294777283176664964034773947242346417902104056868932973152929734614848670115220529533911932289368626133518258132093798747488259733339275592820196309743733039433512339660523986442617632609983349600473568058938035250321405025070882019258677302630518507152205496347832779165272179131228487844101033509668002335279867229084932612373409624468826019417515915729115472744494952097614023680405818866599739140960708893191233061431015384217398380589485660508050391981300374302608750718810746690855529465740523028011609139064945514932101008728219342458478697446215487534685527740647286771653289533895908121089110729297652967649929015502628084706141293419523318730909068999308673825790873778925382083634537720569584022338089617039270116323872479478730740837589274776589572711663598467744104242907666743148909886249785006082593293218845376964602299793021517637326318519168975304326821619333318869942996037646996568797048191400773525254514006203335008254476003011515718783670785857473895622903931850842374896857300000664820416038448095190817481132242651155635369525623343947567398762762842239188887280022117880532909671862373846423127936764574238272456493690940405555013121868432658820355370975479839442267488874125460903131683625390283829797303479779835246691974660206832032698479829166224303892943835400043544444522395255326560531910873561015364069784178037566092512483514878769325393867488697508810570270721236522528246417690929734400621070679805525320773941901300366274891073814043968928171602818208327897350802293681021712494771490079321024050706980142061777350112101800260468282726474793721740036239649272783512566295632569559013585199503392262878577837007764097336888799818024139025467078798297608072971378541402185003912260041959953538352255610468262072326288554847498512490967093770359347390345914400659329784501737805070808952510859369586663642778447240147719238558182272455900012877936154094583256380192550114477996169519899835821455178237257402619743590844163391798271071550397714937768659476969153743135089953278844177866892170851966177321282999464200485603453161667594221236532533670370202305845205631776056362202271467068300162495213646561942156726100925278330327435952136523302252903475877415381298061558013654499451959705666176265279534303953815530625814838577606563463950855077471865874730358286665667469056964950643298149806059801343112457895223858133576022466566497537853814130444558545064813894875092467606496796765613693429803835892620135322908959245723481632140831708184973533961052843863396760715437138084061817926405029353520208328468108636161417996334273426639080417305211711567817279767327992811638526005793433642635828233009560780475909390514525750765418785726164916314105718450969668548002576138929232901800578149697695650340324706045512195024726803976519503902815086216193514381446142159176553776889890694199464872682510914226797717031251825672886272877855819450313912706411852682186690296297315824687337722643405590133741523831515894887110609351358444197236602973612243807393842498744204527538019974516441836716493882899414201301347401596158916573540109983290528681398626053419500668924429475081677755817261213187505154999647144332452774506733262330807536180908854751307834659419823125196191021392232290317108596512865972456601272417149416039192613804077016251798301519309060717363299335199157910233889400366262047509466877383030984794076291000548656348997815991217820622252717868725642884449434211966792854555572025915952349462094180450849278696287909625309363844844138815200411371315776394265409793797650041159588603078391238357199077496262708654836346900733086871834218467213182564680142718244881728099841213543815218516690815889064676670385571517064196611054583689696924591377025996965239496377508665354941743125750149009564451356402930967652678779271992289205992120803287200761065058665732623706075881479296083968665903806696731072654471633535265535220946827024866943756413114427966025097696948494628062113891791640455000508774346218600565690701107756778933932002248261267545475897250973936051820391126645893775768906220480759950715971172934984184667709351779708342887964910277845295476042982913919964601114714730243473118043320389218007570755862850249776430382168439323121104837954163221796095360037914093569226595853854876848766866465578651545164673225744948634670307276405695004163088404958396846390415133252018220650073156262436180542101812657772519395481698041718333502616000805616016136049108786212832018836750134344244042036446739334816142234959698615154227585472273431448742538295152389959746524450966279998831256071976086699240781265288077649500177065984311923925756929066613894183670497920190471910679602083883502349432597620299646627736436513516565382891471914195695090552860797215403090924304651398240867513999661706570733887526808930370796121597040870688256471302972364239266300818710944614908925013923233791912964205230277599213246811104464257095266342415218559873970437415766164842315146260180580319822260134077312001633512664475837873668282788803531944854434698575860466203589043130662715846257057492751481698501866291713983837849658750324328459959303585730336903688644342797187887998240628727789301314239313040046433821696223665482628338114956244730094501304302796500332447838489474698029726352023286692379973790965528579071891150519293570420328247465365961655389711984269838235544989872335845439994006761933651049164169441668899583606571132012710949891568767752161367800846890239428883303189570355491608594041080891545258218452020298774803077814622454713903633584811407357992790824797159484880126133286658738886261477829431821363655484233633472185858114750973281677820867778125880931341524032450957873167278436475977316214884132496853721170936663339200783907049888691032023214144435799175876871084021992778973353459359236701476785892761429598063734015965477861805795581250052406928087118026070634802822172319782230051511210996044634685555288098661852279627160725317562663607672845446383608787014874434293223261469812007059617306743720386118314984312056148339061387854867932208273907759301324337668964770859521027048507400562556139758741423941928505108915892180726038701593894030734123450898052440786782338054029992527744080530503891172169484664882591228114920339381246582684276125489156507025164370633956377542989364454284977970546529452453612178090002188386402352281058316729401016618078224920640195820480509198399333516144827513847683434291201980365358378330488620971434226747055857702732542505937991352741916654812093766304956632113574349749573516516766443244810226527041795156360272639408070361516712895201636126368060735837290113698917953409200643459461276709357356590390045449651871690884045858692416107795456320359007264237738232663802117363698995631213426151134544867292993996525044252215674780988094897535656513349472035302985837973250466486950106498280301184461684747268406264022580388593736804499135175097742577541198945282903390328281904396691219316616984250519818183457052038973908462963160226672479176687457242959622687950555161582326633479360681333040862877308267397232221985999824445731133056864664854506798944310339040722676218895241874824043800355504959181458303060500867283894349743022334393040134025254610988520817674400753372723925357218929864868371999098560205761892803613830921411404616027852611436618499454385907768081857635654311089994279704164066691899667128792021415122809556095170657368855017119353515137672095584852684015459909081117503244466818761663955016035403443605419666291976366853046224640540848082917031136643136102379933733092084709402276394113952663257114758788899059806560693527238012983918581030100840461680085771623454974426063592710170487863502172020098159060916058015425055876194951055984895204910192946053886193825798586377722115893317053362913962451643314035926461309360994883373893298953822843819291832919411842760290406490548467835316854230302736503459930186247455629241106291345359510763518842575380736441045646505705192512291711825756711884663148136762584060969365183520207186084115842875693386650209715199034344070333855003113766312348139061109296766140713019994535303635884847504752895038875675030834393516141396597025138193087344242155299802095155654071069601863176115257352176781274338513901237831222044938449638532882230144960174744659423643821243401719328117471215719894025117231043612196396396863049064292953724721764876952502955271399431599029659392972640642810996253054941220645628778958139282954825083027843361912903878275368949109747176500437511692766049359328726412499908609738425570352947451881446092856945081520555639531026202066391587100030927181917670832404161989693245816177510831607475201302403392021642553554324838139849444832863171610668324698015293103779214917566873916864762674338520934754352994973826619076485615658434912075751392822038678682233466257351566222587556799329703228271370894704030064545299225184846788728281260549459241882612376774674810474352541272456109810972957753020168698920775241782284942820575360610763957410610124214286641239920938355471736940886233300893790339713280964848801625029189151186463422221508755652040621175399755664678722940275066110120939950518474769771749942713784776665765911683465657896389647216352495376803913879600605600398648147137927007403437679998572331540058014987361151139963038557307802910440749187380656944011157269712197904301804390672466662329483478949875592163495435459174423533407371473831756939661566203706198545986541701841712819189937566685503815214948505544060492116046542081876041507197812090899876503667546525156349018216596450556467504846151929397661117320635661846037685194017797214693309553768354477693941200295138143416708106488210562580051046252093406213375771178813996328275565766728979301749831125865070864641059235219642084017904703928104722645762150171849593776622782825600706774740944047272400385967096217396233426684839264779407968290859388055413325107363967246804916011360395667054749911057463243167989809683826558566965621614368107318450728886797454591336011993559835988791825585421899125543125019348297297682543623388039562995832399738670190687468926660970740242101911506303614153928499660502589363568388641421848822448337395357669024483390111908307529028610587672793678408783675585704801079998548689135765389036642770819223691964466568795549502441808106343045611999619230361932579601839915148560351032342740753449898330582930545141701376409761468802362262123332312427203391341408579466767748335395374963070196475209105908744391498111721652557289677277884804700650636758060862902199608197753007165758969985898446345327771581220515470792429905985205645877002491868995702939579695076607198715259244815616705518682643810686630103806280306664736734393130630948732695434427632634396670790164495550466636687032276362140659176206271909070911071870903638173877910074150161027237209692301816636911623839208055592086427023105095588366892394043300493485308771736883849770131701073947379301277452346900478507077477859877936411764243831768304719912626384675124268752576066763092539144509228799757123475622002103860736302599578131526570355434740591369083324798093091198533881297806522185805602808724839811071011044247332318492706831622088818634645177458940369532396529623504626010461444111223326312957056500739992441030690853013884994747188295879775596378383232543168649097036223782307036284970917644668460925232769165627182704215067877400833891400670462086403162838586871428056582383994987943431903104327219673633696676759905928742399090697929009096566375487596917076060865054902239565491494720477434433478731881706541128608048184896445202836577791207887870953534637998177822451656534820098025954972385424074495775409732529353700734609341153373735916090613732711393529702037218379784452574709515592030559141432270170476372207523052308888888433927451482792351282779142714372438823033017755529231452348912969767739606866794956793406496492527004111841170480619728392643915327254322925921635841498798670263607149749162967942643472894767953846460849303868721417003024355165431625094650608546140742058296162869494015809163422707113616740823363699738519133490415863324641456712287785222552310087522067254811814528093922609265204753672974272049355786131119321981679233000351329276433335048468662283919875056628042294637538248039209774387215346299262355206747388604068756148581449759995657413555347547287080526888295540667055197512773505006341865754127134899035225583754026207213218833286164939100972094675335495972844781424500105371855057657118302520068002993338701546718215458754590141987226529575412375090031064015981447811685180472543922993878706234766871546583599061601155139524009395732003635405750983256107870051290097871870286128341213005109106715245099690228922923281672305163503633650260234180869272513249889559766328074796457564046238699908369490986361829143314830613286843028437024734745324615401433753001282213570378772869255148906559450614381140018308578274878364697092336288880244246823171526057066507247058691880408151351374521251821681469915736868867607212041621353154544866798587641256099283768284897231221769625818074010445143377923106054431225863819079589110180333852394746811222401459985172606944117813516199983958002627082884547052707952039418635442760660802301944529125005842911991985180847116549075281061430735135519644343326522125220698996088125175522640898337898476158166514006661617621807684915216776819460641814767657729560656230858711302179749703905357967631549291037914582402177463793545257937016862270772446780983312579128930468985493984817139883896139854400508655837342058988276698796338086046003907138340920507880791908898373107579915584317599350862527937822939525035914052316290391136642702393692356668876535931298364022508488601554654610348158581558246178896999739458000324773154306252833873263858625143785779308562316053461997389430268114390739251976324623312049260912091594432735321219012624707284125960719092154590231739104214915964555545985979948018620504474160359805516817047066696489439672264002926358685557898531796002715230399803589924668781015894250373627653507327612625142047154258627481048965635272833409259791829260047924460072635685239384706363630902846809261154769944917026088818099237676729226207066617757903949658023391574937455178011911110539726442474114209140255413602072829550297944928277138251890430844091552948460893074342964747679804866616976717371919349437236785029365636679974275685268073870322753596508011899788226524462840679889807790225381468922174184072919907915912516887620171914465467227361369562503206887823228127909970393312454358221130946309902061482434653676462317261374443211687058949392878924891304947885436863622215546748004122019127912129321324110991877773407031505163454021193970137152590633803845249654192875000117799697210780100687792947219612311254826610534211789500206338793488432636677751234838929326722018557713147406101556677141440246405166231486269275155692224657164552701255848487791461950315403522006427739875181751234974052646777796246026701481281704343534068861032724368999370251081620038841040243682769518115606929999916962654696122116297078170200507392718031690966883903688141443823575232976307765603276769949434837487865674073734682522982048324308712698736176431764550893720098077881669251637344569743108136575136218956560273157914334220162409835053169171168441627389155954753443743422954077040639357912476951920796314892223340198123578481356128411834349571978592091869292185360639829488159399465247055967529265317633215909153248297790166373798150303486186108814840885793002667511653910263569010210377711946969688861724659064282237453717780977741416975227133273689178110543268298208179165696167740804877005691363936572090701801103236518617974534026848929862555437640845301900557473607618511656144349502459363961070686518478994074726559605851272411770089378285059210198335270647609977984843869250604912899971726056745745222805678605304192177153928267060619497186438037478141691914388619501041986468918296719811227301807821312679739784865632394091234137917399970001954020327704298318181992823559834063325504780606567226567063430143760291219940958358517801078455890556209252080166808322242702150285467047996416591533849724799410032957422892185093145715771615841983442113632971080788553083704362031612198580341006042264484949615873731954711794914597122333506049857809678609958226922619024162469434583807806483149725603080570067856246917419451660200137478701753502888079462273463863282509941812800354283435451274014544626146711852888885987779505217440651490634749845045556361841487438604243786088559869634445181519174365835821717809621374005166321483133321272084348886944208092541359725420521077673912879508174933893349004300410456805579417753718243728141175623784206582873556530724820844121866712409089361652073975496781901438693876381399702037333492611481892450564254678615827081376525659101738157697567744616101981704033883701998273244035787803854302971659029740282350234846225300086611012583382791080639930862110423668809879487991133043317553234777551541134691635584196001945153054201907079016886332365947854128039453475585303853400152948213246958360863879546178368732074693700733825003777087474435612334115279790146557139062918304068987640199008432718316988400095847767296077579251440681075670732166703239015534150418838124373763579741034601120194936157978263380567832868734380694308777761698931015086199530547210987049210543150914709239014569184715041495393109250768624612334417127780340243470998494156938751653449613921394237791363683533244305119217465489335509401225949170803061057863892060454866107888825028492850509491113294080433083947438153456710444994100769099100839279332544124744351072856742408668127895066067053192844295088789484015993899579369755821784447444605484759406720376850798258659395469529630692213199133383848120293725188065618328455197160344464926112267186606074560033380268030921226230767283324239860253443278690644436573380847550415363660290528394512024617997820250509309579956123511561542344136907782465900279844786423545166340991993869936568681939155035131211080018585616175554538608837370926080810241519825203143965824294490790121421493709224580984622837350115318584107719070234779793274511304951700637833292273366991713779713790196331361556663688464172519786423009430678848953558994925242732163441241043626830760772853171416708807754488953646286105790354620089222225030367553260584873050760227252940051277404930430710737348853046998512748923765553618852833518288106022780158114395488693887994850620548171794872243498807472067671077634777660292486501653430677654096911125300012145549724869109564603213040194943873284590467523091658371915663240229717530545409902454026695026782708973440737022801065078134733248034280313648957631228823994230833661392087956004450728847227546944087036308335649815111868385707643285499240859074445249395118104127169683298357048637226816968335232127407102763827432799781300146044914043120120809888923164564455857054680549014728832302349424832242522144127679740629629947347284750184139147440158494890561765685032672553182852008880963576772555300393029403020030164951155003253899983666247226903434933232647048802714015904759401263263339836259577638104976492991797888993942345571905121468200234936589594526279543952418974093476191965179398435178296329201664410414866351245737474417306269380960455832097815628236479097976593843346669426952584608834597907391066217705458324041407339068563902170728581465135892756004465548603763711107471459922851349108548490844739841736277236414160450880019587291230577987716677273195498141940239526502217511623499279363667491421401953031309028795624426315965120498525698315399631240705155069554653776387513905087617098238837983320897503364054793595721056237962651156613351351248678647318886859511066022858536418145789732075407415824398045700146004428145691370320324825032489666598326543471676384312089631848420020833603363159204964222189293049223658803414798209747965383287030655142365811855122485864475729829040369666719013102101635709419727592691417035701996296194545608318049279828379168979601829737801289983998453924709933081472264092610270760796928704039493012314798880170029628145570730835421421056744107786659870242427383662413963212425279669160307615406140734440413534048944488295587120974180935666987715257596103308481288867823526549753621563971073451385868340971201799002106503503643962771275829717720617445226534795482887028921700998787105048043956400525220813185380255187718989920433101507429300854008255063240113833279033537350123114698305789299212791701683811920085346599286425457118551275678891426260487759180069710779287937053161406166839695861005013736268801401515177689836748367808146947949589177362156014947982903252029826529619265269610517964181466091762972345100208830065113987376465453646828500286157770357824777187647624558060946173683891470751245998918842503584692689646366614748404582746956400434814736533990373398650650178783517761497602973662369924602335327962253635832524537005762004571562319286631020488402691942817971740035401893597304665814466442277172528950452432145048441569103872142699108020760678350600518225234785611156484263830422980115581995134491935729459409971203513648840100580974632830944396086202117939949820243815414002555538975491132712137312508794102898317801514617314573784405335034027163965748307071183034286115538677196487649335656645396420374208646280806449192983485307903445094031857591408688542892823618413992474315489619324103435441595750949133454705292561969300432056066518117050170009037475546389380439115699760283339155418682964741365335786383583288172514024037582199608300938933655203869293200584818347646418573467652363704420876148180950723752355664058969034999973522651298578139022956135287423936550986799712855573791365037956393361697439142819032804787740567828078288735597890952152698137609367734198047592385405543464399372981361369874555171738973645333971985760708356313927488639961366136608725619431621824198184238646396186001565599774813749647057163480461703173745837119976634762826854004818241436262540046085563304539442442164189248511764149695120950946237017210820438722526490712023677612101241209146054736067748937400628541370998364898687578883727233768903508568578285581078308318828507910862489958589520873953260804960870023295516920165054153812547719732632073020215611709782388461618908884627158230724246187473982301094398662239488777251600115830416474642318217871487397953051487454940944734690737077873569885238801478959519153435278145078396316224405060890595886860413299173033542662268461612043893025465514572528551503098914061296861177855260059160756746310690991001564440062500425941623078144168940342643251020159418142406902594763910085912836975701721412101218587267470626267977897390149570101765598663821143197626159741170687671141813536067056921873729434328002679168234049086213795126009298051765253536126676816034986359737889253588365631619639365834765222837202663599108902884749750943526772546789576185618027779908289699056689935982817676210151046771633610430560881553392194430714791768560462557782867595095917928732286183548508836862743727405923208336735677045616160917142971121554176011274574507439817532419967655452442032536455305212695967061159105670984052634043601277743596624791797792541081324844868072352193858742443856675387513252483970463267036375640788207144506769584874935638870758048222518592002433440675989548415037578667694198499785779341290822185629918642712521487570248356786962795883591841071777446253973474238267336576363122637897283825713014158555727222060523264950469063538557890857437846900334519018216457823822468743762004683779393206454556551112024311369933471525654202903106626781430095686159295298219172331352538983798412317434165506585767533684904391720076552633270773402281021351373503167355161649123267729227572927319517735981417781117226229353676016847674717183532708980347979854201067879217520943366809457879237206706997462891643270637321994028000820898601027551907658871291680642076960136221509901736412309922455373778205414636973994423124624256253617382837145232639144372837112523330752462083372855317134015804415836972658770687155573636536362180284530264149192767225746749817745586803068282305930566610915329166370006902701003275823694292210249506953514886399199141879099699735300674733317474384753261576033135242069520084316357180345150845105043420475797383414552087274934762300963223266384061807206667355738788625664664443794162681726814894099038363509740491505234512134549789530104206110025866099213939785067698137901356709190210227705996487439355743975485691201609712876627804483502184216295428135625976909587594298998702032033995860897751157290848253580670438444592718439159089340371443406999192801435151005430301285459107030170826594531493237861825396189858631899545836769952833596789633545228810357197374140959360478476849431614080110878288017284219646286996216257981651272192040221423366373136663206576344057854377304468341666145885691987566352751840849791197256501204844705586933723453859648798769116561568849065101464729545117034487683507018600316162405114364213746458214521071833288496937787065202207683282184334644919005251799392145666930630253411589728733956341456621090063123284210660768859673395394783551240200010011257172248042181834853601180388858398485352481749036310734163366089394051160355800028503447154191988066466502283011194831213092050072361471509147805058932045995226457166909959872537489343172443706835451432757657746653639138058747934531675477600304604870201376960767104310738516001653360261517658368920570236397688631871102005404491368740663449677540029773848658000597863095195619994035805455335698467519168229092973092033154947416532417146043742634833443947477683913933573571432436523607913246218373973163446473554921786275069012966854191870492786152804360840038523296313761527590657078963015461359035967819459504764611498546623629326457441206836900266773512577271403816153709568956002364258382878745009121894306060288919754482083431048823442125412470215166787726799152537928809286447958315604357552249495920801833016570649018883593260506729830452956849837107556295147140405322141354712692604553834949186734560100967497895492980858213728315933284755158009083375067113038367492867999857160605824268437817221119489891834916025495060856627924199502000307499478722221000801414241643890100832538782139055068892013941105164027130823122633425470459602439678266837689880741487826031011293945777485605662599817832325153373601649814256994217551883883390781741013071590226585655710317684400724324114347949070011950861874846139916065932153897005543965126027405408871724626563971766990795413205894051114586063327596025941572897390861131130625064324505049492840027443646401524939393650524669221355122702979958435595267582430695901247365864252520827671969007468931218106985488438221697645685919654788938583649837496820512952239843933633375364065667106394112602961724798093208486370645168043603367454085667853080744379243148856665055710887537268957312217910901864606925801337649015360463723982736427622442326838045677850115291595023039864252660098505273596781512908367824129672351578960553504317978953276228013667027115812715005446059088784381962258055010890147964254580490400196648444077886775665299309926203683564760609888273153790415249632905307784313599215148128294496447826818476946492389218928108011915741988791796635091817067495547573896335525253947912801249064575410112596039551827715745946991706303246311628380429408538630925981060429586108509030968919498174726177995060201865215212903809469910097695426020188888831750269265601150974892118605316962887305839251198255035237544332861583944858756069327738130985747086389803493177364348527270627516339234675522940651331942951970772284439946148260797699149580550729989843905441033839589551747883105543576355938189010012716650222440703098976830475072613975477357728464263537131231936999177619694298294240784129498224260126457663471804878586166681635320120507888127996884964234459287165747269973840225204166824020096155241414928506403610667889639519104267397669912225111520544692998850163896231976430010523926249761376019677002674678741404706744206463336222032701402493932017588811489728519119753148131019521710766530522386336822301659233844246551166611452279858494851147379297931355081777529607603653022271147823272315818923888934647936117281773171507380219980995938488972384191131124412110831720287580137120353475413095720868011711682937058725049528275563835606343303489003402819421079881955342013532947371592450269849232085079360021864394803725378411570252857758983399041991370071140794104049966013017633740042199895048723835025541899677668363848188439525949361851785751398987371294458999557511101823438955845273821118600347230131643870453064871170279469771757920572878912314524936433528715895140775836515343779090848092762746225408907121036526764540379078485479563502122906651642192221798828854151978344846923476783676743957209984202493581957946301860642512226355221995787671716562745458504347764515341159246275219524744127127828868780020241074972870271326053305858242182955807295550406177966206634700778614994982037615358534272840705264938001622349892816194606173169785988674793383204714167285709104252196357158988694040802527876806720456732392273007498966582556356044280809110882962220549218873848828302522545396882870376537628155700898133356835699395305708999542941325888994180682832869230555491149115247916995985212675449475448546622711532786750245484568171139686561869611984009901651524819267691181463500504681399883635375471511537418833465467804407256527676657668237545978978557919548260702351214519930251272688078988911426492052478847458737811917070738118000836863632026124943468713468595287410650194042460287268865877800334520020582808522260053391097802150059747876024572393938081751978986393594457508839838316226221923201591793710837127529200473792292935022163618373333097168483718199174457997573807751265810279368638330034832093328029529132399189289870976289032627242194508728528799969369970198219445041219953280715257646844499811005596386612966709992622345107984782799346224614090619167790918302766203882470402876216175577853540830486589488064872165473960530501887467374696036871502833857313356025734938280641210692004008857790412478551054272453294588672839389570528975093896278360602651870952483559833337140064485531000648501864667079223939641537555087056255325319424745098846384745732170037241352855134902084942399971920553201648215544203377670531365796588237959768009031860691053612339796286768171807924310835303300401660906388101566154317386742587986459421898092926155605137159939149024520584173689635752118462627949439715903702691832483981254958780078093954905361099376754540598554476096588010039823297824692616909603988557101561132306119935202801545692286634834402849835887319510443236049312850822343300482410004397470117353896172783995237284178907812192629123889976995153311323884405342214082139833893059059406297831981810349184825844240749029730265323805394291306622127919821856779473449586409570610084198168509026605013915048249804818133984435951410021990119939929173013333589660995203388693177871791837699534839282654882988328760139420033512700103299995530952599551487194600070419948176928256595153496736105970764798409448366004985240260408072739641598940146760205001660410990192016180669122917881728589431592117854755481504007618105034302784653242051896848003007698255966778484665421356640566849154449751217513881878437658412879812508955193113702225517171515540020423814212797469500793788627905376260001353914853485608557708504742272421081720752646106920444409846782812331911795842761828299625538196933804056676535114511103028105986143636450292055177657837852690955194836511925778134466857915893254386247832071958678340436701354214777120661523710870795149643184541957087815568687592182788865846105802844890444323858307819701844816234456678135010487275040683200498189286018621499958797723809102653446669981578440771596445620601275043886771622651240744002927878275731289996373376142554114022433629740009185936450745650823072700465488338139530566578959806217776731928757909889523231387613752499200978879868054479944030042018448470401714600909510394595046042030175967651513287371689904411561297224656382069435303494744394651453473900266393061802389970573300077533890944654408934541165363442314438260155809245107458387609491738728850932287254081121393856328561300000692560409661552984997804411966151679912655305322988139603253314056231038121057964491198574421910374300381513097342581630403737435122841186872291712061257291585970061757074914035366164791522601355594520979772941156477451660831402010984250025914412172888023419111347811072979581360476260460317247739867117826775783012336293303272976426924496242270636109783003608362728613642843076818858222307065207873200277883222882854936113581694667231713041341992787696076846523947901480115949199560389143570663893681734536997639675568999740509263013327708370669112693751721393911313875122619478888209866311328180312473511658038703033944613862568033363196773290314241399969963005444624428187627609583092969792804354855774630564444160093413315303479474248048066364473722467955086632870467390252848577185381243711730976264065729127348151105153610221222777670985789643036006659092756934820928699189233636601199952427369145350626599875179614474288366775095954310206895398694570889544014010206692228109470986783036802818443864867651981875592361314332455076391809862258705820063463119640891154148139741165388439173260026987312096888621539098254802805770846633718807916887821685834468016405008581363477740610683651146527255196477297173406907084606903772404482450196267509816255103134008676602530663422251230322068419124332773194252492157808771361961820226841796134748425260797610758126264003507837121755043393994979655483967438167516465607098109482186497583737586192507970247960634723906989370837914075878727306545021881135329303573615612346477260312045920982769384739301045862713398065797370344010443204067406543740976136307778345360317016773999161884942906155884222952750368817252708422517842102532931785002780402856666573621500070668564156993954666449721667264258214727657136369159701025914496301881894207681395668587498034970368586915262885514661053969344906594447320049680006696395521960199127929831491373589233037766923464052892058973546528951426180382547193250076365065463251258656122292590756096961998659371888443794472701155217165575719455389930057485285219155116936024837782846542436145967526318716043236935971296385001099289067234887074781620134814896928216765240334494487980455945231237866570374109570643173445224750595900134510832113839220954058570913385675568377314164086611903637051892273695209550975241210539543162250046925889456921945711297606737780525997618899198443282669533849217893161854211987972850100488507136905651720705844349612527397331008839786102214089322599693698912910709705518903078707335860239110127836761882045366751419834411235286064934761534881672899695722069499149670906066989998432843175963542847476634601230499603015329454316389346911189435646245523563804319040678864498608105694722303737097619035184196868058134815313184808985526149281921177690109376135281761324340858818413035733890052837156752580202039340627539783292794509245248584154172701812639022669599878061935629416699399613850625977692842854198918264711333685231513921306217313298242943377028387603086336140523030078626103936238396093193396411249727305760512479266442091602051457064412341674276481653125096098374236201941738089882143641133001771479818801709805777922842209368241862820216086074809481121962242227630470421274925327605894680619994927469119054353265685204729543402157275721514133191631634239510100877685452926741380460559924574586411985598592458383958212370393707666248483593617010985437865211915617985067064152792401461994882489114367105157476377863880042722330840217813359376416637696519174695570029086459936755201377585038411064854297898832118850408850900213663524060061989636568746566631692971440817608622985816042290844568175757563602459897324029354763075512738592362930786402301445224752520390049482711189965997486751803333507169111332564332343512946004365496899137803123026154553446274264384066474395694284430167301509447454638804362673734153871805724001551910401916619706216443689759144737721766355295037030648210040738508798434967290027275693882744125079993398375748738143800699101728984035267983041145400876921665795275746551432607075608372816039909813059801827115747216696106920261206404858698282407971441886399959755876004853168632893708043240691316461469237169313419276311619262615584681188181001021700050439697468975616272624935353151118767524225089085940070444293784481779762798890781711443492707404986817014588767137054934526339357601099586674772985605171102203074509952272061009085176547136323286934140211211500553614824068086606977007815379298683222487413769565374087130194076551251774735054104373273788513293494664308819265726837187909435526440995974356356108347571704815428421114908614717641534846429117913227837134116941922305999635096510877304377295144169710336772069870649045053615232380316607666077168210510034690986066415243702802674293735411690206685686977348990183207452110398780487886127010622982251253727300035428112399186513522934772211351659751007022086741223423193474767801754466331581380747748932454583020476496427004223024300617796041148347395441420906776211353092603222493209539914850738132401346214248465984597368404327965511442949817715929224885375238893476658146005308634161264719860755933661189996330501318521540651373423148437439535270318272129229378920707710812227249222480985899634984552908407433497756822092253980405861432792915817963378743844213059397089105374211224076352437000201537179386481147768746687286354560675257482233707010530424343019007668036668031332138336577895874129538500590988257431976038298740848420918049658109958667947603593256281944316090920424899320906205072172876909051035781230489186085900888544042249127514186646164474798032212107111545067492653219730957547448218257866072046511081873206625674098978145805363864176978339825942483383944700866946034502270181519776912827142893342115928719770854488699307245551549215277390537793774558158818204040838949570848815505836992369751255472019132510315503809187938145045414356508562084832264989176703788906751387097474203895353472039687679554196502657368365891395586257948441322490366605704951235278272381963532263002294887599994236086682619767728761228657378008314407597845103932213987448910696321415016451976256325645705121642022952433191669971447930782012019805172150036460236641665859728073248218179418005908276842137234824698272095667754295634868295924717707419808529707178839474537542095933389041937864044084556347376614121487224954832954099552662972546312383466363277841965338312420713843023424833105641295213940825097745159782614782456112746179853326057079067652996797943593976083069694060053830078593848017580835849275233220910240565738658331433896868818051704131250295804478628818386740112607016792156005102494220462773340995892241520727090645313952995852568909360051819856470103590338010832662922616428119104887837193769103080162422058821126146311233417114519165218575215668630550888717331189995057055888013433627813176714936914437804344875061190125742238224982498096360922216579246774473841596817822902107481380689564924321854601846765665005060733582072897334217681244196466674405735259180480534298593594842101393773447501028171183195383838151962338822122915471324862894539705106025368244051546361445712941155604771086580775783061188872248644454411052865963232674507182987262555795813365739147887927861558075582967437512492570724872713834391443738726175568048869972221307282991607482734067607486777090562503313429258211401461604595599520499690309329608152784790135821579150238518569651706013295729736452835606508863989256988111497260407273599819188689752615950556013011319225336971248126796806543356454941593712004207020012874503083398024198924803868571577345807536640185876422234595886582951329604960659203568391066916491250858312780942928618570924520725058846612050427080506400700472889275340128906403043418042000500080791200682804229868262285081311078516113407021512019779408234341345442526881866979259279196446537325438829649995230972398450398898572375765306196967888973382081317264825736216904501662272634436620636494430963458133766214562772456687333745749926230043990901536961858375409678648217636502268903341070560940440231299891185126870331015839445762292858245404442178332657208428789262448105584650912879494522205994633238816473024619891112948062419121836965622271419029000471069827162387599275782941662175119564523289857924977504142883187620327669532417498647249741222079655381397613937152510362658400894369127030120828181904445105962788645159978719345051278257024346121706425997987666280773422882429005586794917047053700907043050989920088107385021013980228514813754294082494511358385904672101761650126914980253696498696649476090338951109059700258516992782401843817888976699223259260444067256791085717261481756250146027944614743826932060665038187403724072194910680880740301616837276874253604724154287903790727927536065426929615738219511168265470247936826721891058815798867297158372727914008178588379595583148532709668206115478030107578736847685315600792920890853521408135789896000645673204389100091970565954431502457138486248579961170435041519672981322986834061738495155874776112677018629041541103266085171994052127664740579133598361979331491404678896459358453286421570780552339356356358723940272325092491823343520239766443898010464810028382989218477367623584531128001503911992156909001066314141774379070750623710356651081858051662428065844041916382233517320085616964771996254042768207691486550347723441168694858120073477523846514279840544824807843507906391032980869822998417271009174916401502057508349176306915714269859508157872341985240919690662723154393214778742469946474994192535811452956534319843637006615627418913731276850962844821127329426462911275902772021699953356544801659795104498613536612359954849572825106491844352493637412223312510354826563006138486638313080603749905882867144455170577798386569677631018381538033420251900504728278601255104353293743736458236484697230644349243824123658488712076718739658985849141174800164892302386709494680119808896521716730136473060239260258498418611698072490777273271053280592973685305802983459042560935859925224247025655381706243110363367240404548703188656271559015503024351523391084645957766926991122947315174849188359741167260152533144466178736703429110011344608224533381518850624026064806957101872355828315175185734191087419363108050800870705615411329189051063594052222486845661376242732660070941444391402220285580076736970339494640204837274341201663236769422773502938693521435117022880690380899373818059694856210981569587959701300211731005058484371223530988494892777902572636942164968830723444163475414820341118679717192287631143162189210476372852642766299249238538752119127567138159818946339082430227893455008309688432136524203944155554326723264008975098390909868198694992332380830880775140878142533378297049769847679469183287264884878505207358114847949149538401832260073651618949824339959096626294196068255664426564491789460865648984523173566925726513861763911970250170636662139727345640308773152432929199079302643355903591136651046421908860892440511220709419558117881998032758527643662277340513239075953091403698802686173121247019063543803602703644563752249436410925942409602123640088523548527252795953945928962989578528144503211476597042070271383686375643317024067204170777490276388718931141945352304770834998854784377532240149169495058830949574937155773343801393970860161008077704422093934486443026961884403634863214507313327213970556161137265248055033460543311341412605315425049411687987560349144254188380789988186223356979902505096461038609544908869893454158324695099030567652356454344882553199777764579592898236896562223228158337397701998326835328286593616993020645292901743119920904551760405404579357732129822215628585178141949951835868107700931400234588440310766264993501298609041027438686596378863123255386434755276821375195684466942449036189758799418943169535094601743021057498190283982470539645966699169452412610269683129199234798920627921353608653748884789522835309007151086169850393880550612593205924357781157526939983453242151590180161837794134109697802455961315399539752093544359321191055881222715575115165907515198908956386560797261819698474165525569218639167458352377360903295960520080041417346892856718396716240559804465542816026553706071327304507691314681169119891479947404943678363256873182642996517361274145151999091804547971780592900843061969417286098599750990327818380210264466804975233406822824065787285509717029179024442954017373603350760002626465970828462056030642889154108937651071599535543440999302929272750199470939484507346019635523421671726755792385320296260371669859397684418201398315494246061375883798827774854187084999561280064021908215466509670400224131938138424943269404036144250780664671490370847398374652056631538232430835639805374132173717664772813994813445558636384620220242891677485578734977056731450361248582855784108447655830722661331160379531110607383394481896347798716398821018656151063159452358825798912446638823796165751351525047818468325280073675461108754756682312281248674961888208641764482235879059099203223673505845987684564059585293715119493654524376922187768939202984758518044284965813365395084059377677648893372478441605625537206774690526618793814326007077340294593954242660614661201761376792187579429135779689101338292162474813843435742492287401208194144875760961700750935938796712011230723591818354740702289991689934744653228362967395588938887156508659039082068613773455180306041290508931776763825321626319580910481814959130517204514803189758544713106990983284392009789255386332939426595526238284571492656553278409772883789503181641598664000938222974632829154564407289056983434377140152082166347840494096306378278153646761724642037670228032469523747075309101857017646982446141220788333228886098157064048440789545293311937204218128622867036730763790011753724853016175253530029523531893689693649689674493320932776849173421825364288739728122889697139308300418166703999868559258800956217193551532391239912618856288826036982710610088828478594881518781186825742088236143833421103637438096601521331046977575134095837953838175010800367764190900985716325444230858094869780889881916340051167653360875150957558578243298453553890361711938852763102732222634865574002499894502752206400746291841207547152584456633644618654182059493235418781375146101142008842842229729017645366750721737581840370526174644118543861657726855975872015416254036964091286434939160447451857647035880250411062567892473570086860845534760154986227375133437617023018352127780364764389161386775676443381776159521660058538884444140689098967213929701761157685598160232847672224821911501982175165261224958300015505922068977993092956648564535965070245556817182304889652832889815213020829069600289468404518683122402264478499729551344680106419183486099128231332853568376580788586121570956254227034709192032173113924648683342698812656587659380256259081238345205649264529974848334777510069318627957351654628407470079790013210289649883460151939324098385882949225424441524290834870406270746602194158840256468275914397331012442493621065941834512741795239021777887176033481264648235178283963175775368862476640659092584172711420347972035233779202646939055782659365526524998494631185790948099750070074446945336560248114591188464206523916045758326266175830262492964899079359032989601365030257428165712663669093768199263789738590521851221151989157975489117049189985976868299635772561384946033731017870401758296297369627168450385095227837018760309673192807326313132950854822977676007951103477512056110060115299470312180509986688868615957558759627585657845225418140217982405561954799388341255651738142874794841780331836222109175923313890207869146016192157967670099651238921532907342414063027362468089990292409153473063866334500068138945947842074429876008898799314261165020909067223366896602423748606517127652024157681648007354632261775859952577298352745583031893929541215602061721592371073552089783698426161895233613403344551791023179893129268731425026566801672942907916394588824027357566135823317049262536638132474184187244582452568524368701461856251093126950627717068387201938487903573375597271282280458725324490554842384854570366263673825921970744917296183279373108191154253547957831264813690522431043521645964102543763367003304564015524483386816238497502477153769365217559979300460667168984589251792895990369469232245451590334759827604701386168780912868155970804375103382372806551087933101376663445112776676608308927264171636963629416275886462316497008712712912711919725487743141752724357440613526870356175607751384022400058845448053806488100629581459107935847464467835419244588063742839346621894774415322153228706448371384301290940057901260058831508403795273895648700128683081030639992031462505861269771312971524242931357059425810536638137317263787846873939879112568950755423365104568436587262904915036263768196313184313721954621723262436886027337927167662668516547978079134046954264322147605695894731950413650397781701573960314136192631008472304254273683760687002751681557796289782556930992132035568041642804915608017697070065939241152288816091756560026980416676241906966646409574509622374708243788994079044007185627125336522085570053690042715065460177276749572611382238677566119211859422045211803838146363148411725559454371056041714155330271940719534171899444845642597173457149279941249163445886500883053614965283174381124163140131084579719478132490901074095898649095162434089742662116334561693929748475592349378751413894423773094810289787829893221286053208171038562807716456862010482995462863485936845178653769109369116001915924250234218190546640888623258156672807326652473149639255577347932246335095728573595494430863956074091008681736895288375945494650328548579118463263748795592891147917114584129476119006776467982735745684838321422358574233548454721740306613160798014969773167528092936842308717270763865295701020256303168985367931712102067545715869059515382810630377001922579299943918261207194492092291567729077612803658978551173509485183176841368368270192058988626351996278053274543783208691796184000862918036724881980816791246290465756248423507048874786585982741928757395384290567883868968120152097391401508016392050972092795304855154928493717706667855927536040955396272257144723280645576769750397753530273398507595572512409227666025025295357554024306545852956276909476996692095170089405091060436569410865184345992817486617777784569894402159401201969298718144284900308459623116335618812787673411550112278217276294303469706866153645763076426091659347965706986365854659114378924309860520426900968720334669869517784024905026549430774263529898495404389603998668770109708614503490402645875468481222875301580987136715981749614404880681744129324837100990192658768027757462397404762566246230999625977214799045417855655380885883685366010921649886330046703898028054223408173195944322874354883029622852803268254431641668895885920625183308324944964435874117110458273550202450904198965246527262163758379021736228531992117537734047817419083569980670681119756361534022896432075245587333281006941410418481793820388115837221359132361497164021544887104980968461488327185812415548081550573147878802177346101209913229939106797669671267785511897352304621351721285317318151100116652591289740626887521954977448267874336238429481824026618674842700466357551026462643206524623132898186079601428036225955120256292188965210580931836439854526672469446917103079874766738365245076795934212938302054319651186135778779131004610177235880724111344661312164928744333294702900627930650947880307250898247130856841885521761953935238583361989294537184852266992145777062059695671824962503772997869344201812077012116138722007209885335907321946806191724200054560096041270255957804898282227454714516978317462116826934703543703769835914152919978415950227405515324067782554179956112457238543558832884223417773332383953813695487136033419875892172659469239078024135922372203374456106691423040369407623686326219819460552307855494298620808459229550165558075487471885698375934528223455832178506276088396133888977519343055336171377759303160402482313584175156227326458212008563686482216057837797800635516530062550920216812765454062752018925081647119792183964863827178243230593668799534435673615773250891464334449010118740476217389698292198606544142123804110525386809616414210574808726544309434212975761135629943764278683838983892726307566923984560107948515913834101280423227821662865028989804680833008743774184509375744935280017899722676643747100211384559857983196532672004272401456888487335579591209207570504188086386839266704014840649154344613084891715975796850723406960480097597047267237694475187005695250628933498678536308970254666719883974791697819589391488639774223336961688145125951676027610825939475789358679374183700744649766529600546576308487045187094335618743707502801471704110299381335466148345300432799162721339547142201820809748809639778160526688101730874851935479866776855851144411271678837828286191268820745034995170094025690081105662257749489397003650514908347599666979838750518119800810235656562131985966013055923199857414370225636647071533622865502630110983380851246534355789406929857864913314305486819022023335248817165083232447487276528600724828077801752098748904587542557995224243725589573787215086800044263307203646867027893955987544111155281351747575049759168066944777268226598581126611235142691197007683626801365991867795295637033184997541808305481694674308484621820431642690613183334612338954803781479537506935331580041730760176309080450154465121716130670584189952453799557681681011724418247525353094098205877915242901071419868492762902203900233888514593703224899555254253469634539417174785059040912363688444192297934950393198866950359022415406907822427691302173171776561676295470496732670786262691574580733816340685877334222684293373510288902420521870524887913465983885108771932022580359159719382549876559417075580902568975467657857297115799938342856709083764972187129769319266593758325969094819129973582980454016080778554790217310663744671704567500117545315731140422423638157042105537651132658462112149168787020478242592924738426689376844616489484763081396251335821754022167456820631831532203773762255338706501773004831239947473855707333026084958210962228506909941247026165131981402455651556177601501052202282004153016992156211590296540659944764717236623461532675737927490195234938182987774062193156312191594356188264663660289369399138713503127788139522232724282548489203733861115251359704617937132002210109398905989424705361524341379095044682030851070951526489303177595518696792481124352700214264796752873378538810120336176327723076069140797615606069711465936910921303288136622781481399149644142483343228997418158887638212049543161985927996692978976357770629755259579899560972553922370474544833757401201658988089491479049684092353828252585275581750252468706333479917583664362619261629364304925873286499411464921674014089692761808893304145734750357286082366509515713084084746142925609055910150214948803836344956098155163638715706581483220093347766444008091399837418477267686756333790660381311261435490284434833236898482530694769248789027792157497815138105117689694180525193286004324118906759065383969024878496721267696369308800855598838998138349928439157941226290877465164524014559581108491624632682336057549327337898171970672238471950033334795664521878659923614110172450616365545731187873413066337257580286670437827720744112382276907792351284494365092251237776581815874588008053353335633426564531798550469112633344678081632260023074339704420329761490769256774626469580668058096951669937717987422197205165458091268943689838783858564724049696092274882311576423835624869014488435110184750720695359686065620623828102955620191232975535027845168453626910841634381087034172922149977531148351589312034316912842257660667583638255724087283959238453148808201616637236146581522217628006396494868859383409573332469169435082338630904296202701556877937374921254998596143098374888575342310413121489199798158048710606467703500745626978876667312987694651057560121435142605370709622358598201755162034201240526180694959852859463341472093108703778050521286961636755122866323623089893476392785816816710239605870184794090144178090634010755575940961511783491897997693691379169945503508187501184760908392768249375637336911774743033226747851266831482200181238850326205543722204645886564326643309145675787941319579222651460372527614748039084726413497901867577215602025533141610864859446697549031382823732188413496522403425411115084549927678414135457494876385899603592058107217451069657999292366340527477280387592094827932317953501680069637881773988746612250385811840625712668090932898429330962370935848684618547285081338371418269830087375038459280927172246381353775073666480652401885593875319472230737932084252490499031192393689987923029467694406616977178333458537838084435797093972654883810050122473445455158898496708641632970794420176830276263429567505787679612047116682559432375758442128254949333057113343482243275928366195685685908269836784491586054396975183830921144991934178919027798947903321735408772400919728309150648482181938811935536377837982413595430879304706394538333782355599452222011107046812294845055733872288888243612633315202504042110385367267798765139629848843983707444202677170514766637877707226818442605751897537083179732258446589867636333323008064311253433420095799276732395556790306340832234474036889556508607811055805694757826357072596559110257683486596067921986118220925745399522649613675549687947042434518165873514422023303853149747554808649093362914875981999520797938083433256672749758894390413163458651596074954751140336748318646990405257090596342682350447514591864186584072252386690221892989861529191489854177080218276470223305508949071630226155424114328625615385153700359511561610943337189177470001590380729368297939354945610973363769325160777319538959235465185050288836920555162188294057206972325714449964137260706878160211998379760670530714687438556330713026527845543638096882055572601645529843745496978650953250792300659737210473956435132356934845002984519288136900477972286109799123654620174496019691670904541104860753599654236728032432302347159357542690016917705813686469932962385750389550745120989134651656661447484906125864709127638197118203493370874749815116576036967436083245660165036119444582118977255911066798091551882003749162123091941827801839372697594383594419479437158951738999367411196071801955066468679511879645423788335194904837237515486237588475398791479056325954910550758744553471784313297512755505621803329734682262792868269490146364951256460977843575518459897495757114275378395274969692057373769000123304903168823324193417941565418729290431283243154862880672524357569559272038241112291139132989836961177336378672408362465703841839731212779841597049109114506092606769871446121799055494325589817567175935267605761817919389901487639485441315400707808145326318825125141648710152095363027650913471896745848084380686974857679603591333883552564879107749233610907295302259040837111827753190830007811346448401914512437606582672254318673126516840738161191414329128992636736761879529452617801110520091944992916604709789309321740618062868668717394093298527771261219373914769680057104396755731471737174025142087267118214864908646218564766178331644660676661405787380811720995775566414198533304090051954285919132985526300434552809609248743303808084790215479591870527326806659861262054451397351626309182396951348820754579352146469731022257770565453217706849849348782515306256235223439737604859671722370310103270958392826668334256773247688983859809772300237019743013706672063777347638917318414851347759127682104673610864304566533725932916315663766874027252030479457016416009839500657325183439248093883348718414725651990919643113259071341073765591740760043754241450887342024582258708554533600767274529084076833418254718625669877468214263322192704338822688985549823221114616796395032207756881008247906939990169140485258690675987637156490610777499936100677858120695602690260361190919168150302243172960884173865027014237057608622726578541870010872690870091344067540883598253011541098998061807516218314110091571794009325875170672876560728183024115490812191462755077301807926662737900244898068894679802705813875698341312851575852629082313943852564698692334625484676361978947155133114947556316090249423505406152734723751281859772266378428253597983543482171451082101829212992126027529951897673890371090774070087948739186233909426835363516510150013684227380400492198668032170241553540701682300381025481728664554626991889840116563055158073552395534044059807562066411776755820486558513088730776462222270975218995662014719181280509515329688238932200193949381696153738143916302809946268561490117879324212941358256386526617357265963619128559246972875642555883622409020553013226958135152669992393706345699517363990874750708373309440332641683070216495449462354541356988300941402869606592022896216863952377177453473297015532721432383627112208280749175846348500677705434605132198071456835601350376338290021106683925573385329925734680509528240722552621279358180242227998028660913371265829417329927578117771341374896276809886193931285833466164197184982146952838994591019181228773793591941032354805095825073646437392967473884874255812967347814766521514822638626538512359210390902594783313025131133936225340443509019172930517416258526779992593030401005212996109051807839976522688821764637268189218530809392248765455607516122627784712608489520280246886311805548551183343200331492742221740070495133745365035239142925941793098858208413804202490937038228774440676319593563913887432447710995970222659932569895326442858819041433240528660390341294268580280430360895498789401493579682101458867141551713865236076446436564974764212591247380661866850631833849580419171586729300689378617906525836129037756882797944925771673035619454790610667087084957368083443915175562738923793107502099045946547891330477249189618602799687969687555880629339072131539686821654658077925805377138898032486876601903082431111949432007554718935906053985347087325897715100226732545894377367164309318151782390931077479838813087814768729139658995378833540368499996501800893581759607759184674080363046473270454040324010903022501203316730759648873165576983226304942619869196240498025030605957556767810531954117011101016810666824673751097463336970168619465759599286149201212044218099094246204434913454576261740248077657713212062318283590458318090233178213744428291395833413778086044830834983160791668536309754279710315250820312949421204959107084019962458125162112427240666372580391595871528755321008268781926999805819252116998882300951675935988490778507395196783231347132999137402993637174637020817026055368424466589933549046743066478513362826469210603861203746871937916090723771652310771522197750630226074619722139765419840828481653585918251480369032369650529025782662057068429383047398194285862105740858689576130625462844927475920090748269937636506467026661642054285184206518163953447986122962957992099403421428780102853801403751766531839456250474235819566631752440305033563577171534831949917475335279562176471808660719745666412552110130325541954597665055363572998892862510486330686127242021468070155180534948473655429182761692596813378705455562961258068820500773356452271107007984633243454969523740877802377610388534759608067809968503072761957310225200195889041945810874171903683918386801647488467695094804638958444451545011458909210222280009490671467934600888840338313638560763081674282377180132004572579864984704770928288961853775003468604127300389820550541827322743944252329007309378163655347134411442267791228690735331966724750815502687622596841134076345112329864249148683645265211820051301216551499234311538213338140819364032413232324750881142059631284213356506191144927655859824929361865573459081930071361332681127798098807946175689721158930597013830825750274491916825230110866528200296863954236600439767858266282963307058624715782404194948704293242291807890970096012900898316909138263045521278123900561371890903455354473829633470771481365208209752349192206220660126567716291532665374354254388433578854412051759288968760072192876437515086126077718470643946710376550217623961317603760796233232748828897118234625877072089318203097373115883149321798489522627405915283380547306986930040390654826488498083251798979564483709501531298211268237839275727691033699653951987664411479065109093452799460989493736269148217901012440320485593952730945705764229751821522611025193704736261273563183180508445971183062098420844145420063450594243914434442133068954625822438714796334458447828688501006907878675075762605542285971573121985614034027621719900084394323249343221363416202889721670505930038026079080879944025201708472629460991525488342063796085257324831851966021320067986052866177067853854802634702215617849161423581962082586328871322817951148577164252461744316357896503718728556774060109663529799369213933214685728018553952443324139788711757420863911871208300352804624132726819280790183173013687473578156260013946766186717937440931983871032912699041832649898156578560309061833593064296287629887591152285311051411513480579936330091978632200146056376713484653262020038189901078421061366829254880398413813076875201450927760262975343527264453434809714431788636202268265514927870598535495337021342655215109894388246738732928265624030401028504949590416132190963426477196542397410859881416381503805470853582334928565041396334087467978190457440852868617024694863406016407140860408055189628988942976229547410237022089745643124510370168187511775343863158139158650690008419307440985637396610009842036677443424514611742988740447088333872964041988373553568253436624534341327585697905199570817035024235787688904405448674245244693438430737018227036474746079588356634797886099598204486125393872170140210960698764110068397221585220763058807035894365545508920272540096365890862004466211652213158961660326236682372332972802843264666988293164588038424341216640865574415129787847398761173557879364734921082887304255426658173153415458846307270280821595476101628451405620861652695858459439842218832334605640969620572511835866886035128400654539866569022762955515517505678458729295771511872735895892879849110925433994661918520588774703192225770817548889523140952740289312224329116274000003404423910953579311931451541436933171481323270532528931769066444712038173705076963320684434881501001217589082242978155996054561068664769720779536411062041117580826901642376127822658559719043632913540535970353254280775523552937396370834615481533940395771689552458580349720125775444083447415348304104631106496076370933052945914953360608936421119277408503042521881981125199808063475962526717293302179384382855892475391772483228961943119143873296981495149920089785768443631543731363497469728803189880342266670805662614968417146395768699595596127660073022691154465611417511472123443184236967284036558231778435557065562959217449315333021978387077569956449547745288256327961216461412615555175861016211314423804744871600809560344090234155007772780375386311740052240164437197226241262177000687943426398315231031298995102952872885830067408936985101420603904008647143477174567259434743081752905191013438021091277465284151463286311552901667680229063486599045235114046164843145242405821028248392915444077169081757319002000698895293394390334103901208228335369620617287658280265240980681564533321432936992072500442302937344964606977525588788999950477475429604936753928578544141115125461040290237924335356902658432860844280646374539965080522845078247582535039895934883834510320397912073660395950651443612260309972954260832780248598775947876970564855116689307711744529139933151423035510486179543926212610183794075051072223679435603901096245617535252765062048576821384044436056254027922555347416285514577633261051778978264766559925001140957659074938248872231643465225183497332907215021740433354055113711117417371649778797326631562960200665845130787392223212474377439339529897514822218473334614079347354312802700471388087376416307972035618713262744202351350005373059026459663282200219391716965604580082565030831207231456456145730418081432033218456724704986705214561719928096633771882289518957336336873978575864095239991943273156574561173113215126175415321792671210338543943077099877525762525962037223959398907054023153360573526283399678753485413830971151656797762831817362677194376021139626414956306705730128845739634841695337361825618387497879026509515660157643409072621070918560768333030790198806109800885509474130079113472899618121172194810466200231465163491531298001476551735830635650207147747674270637602187010352601114448962630370058792976843209172887963010198912866566901679309352092877820619452121289442536077956469255073796699501984016815495887598050929900146709052741934286343349175137427585929149132973620525051281931808477044269086494847415735551810141087858104901655021846415489928287874812736441617481687037868547512071109951719973030326233254512861236321862237588179719394900535559160052388369769614222964957711730526187854764793658654248017893681759479750728637988102142740003449750687063501185116420843261887884482169031532169599670234895719242331414334945166712234420814898101638792538782710311288043727101484304944535979442424298356984130353820688651685916754066105390340898635941436543657888723972456145609920094380835955802629524794485248496174294579366739581391324877828120539750058879550995740194297627793237596734251457198193651045864887125250197006130130691838133966314187182262688377847051383390241335769077145278885181495466170158054681225086564550891750746276055375126601144115000289822842567888151859202906511081468934335411099782827365879528829714641435598311584900221798724679139658714188703081437698749365205998556100397322107874936397799222971329139919306151062226223262846643608053029397714973808358889320896547748583619215205716827884415636051371527768228126544835059742017221400128011862107326480939328622593800638021777208884316342016668715696290408331151235845378206656896796733178286473341185856572172433876702871306962406605719124302433107749538811115292479492864388225373379605751851083747470714414422256544701677935229386382856904376922414881776569873960294431934885424883209745655394162326896027912628125285607320071425791323561011205581172759783273514420738374818002508308423455388068186381990354158653375265817392272799130572553350473585751752203293256434511752922862554032615703473793618906228743416413186849616140483479813350173339063268166951621476021239965378777543433009341952332664661603765438160356448755504016369069215473209193521072038835418062201939319310443275128681675639416202323460325741075513690705350413248524691371389397671049587108147560653476223180539211774852571213052952265809790791981379575971627063165690606669061754777982742124661288968637480495106807038081770841716846885877513197757513085505171941554981021379238066641128459284852488263758877194599438811010960544763792907596622614984124579227557843087628931445014046514666794216413684055634310390425726562918691993646275557101491743611635592658985824384851285169381483206835013735876172967714331717601690681364015789699946796928693448844488970262271124773181192591353306889516310767960561702915498088181210226030214514815179447699063681779612096778805938688698882720572647018351893617012379369930698666398245682588248185996910290106356948233671219731836385473454320356781104905167985202375531342776280461600260437213884715704470586162700304444699466380642307245690864039824843485480300752926857949571172727192971778430655089603281232449341372823313072082128500082189392450731270704564968545828342934988403208773194712405989689081507070861915862452970564457185582740182745182919085709472383154931142486371158241037445227853999647453784019146484468356452145383383873623746174199269305397849207448603271862195007216831390292938914999598833083006026102746538885152598642498009321202614223806227525138364824346755026185213502177674914495076719971205430543032301682550700008669951939543144729451910868864108170755888910967605335449528768046667302566813610227192057760390955730000198173173861246710553495076320127277170684595907272814187192981189381512381423191641552403422228775107525590988410243802469056263718597620423032813301170589192354555711970417652505104660287669759431811742257840869378780773257166857737870527783821753321869949928887053524049704338184499161372102610893810713889234657885779565148623789138544737652580050873760344403148609810610931165179624964659698692793694072618559391822455943610141517286128098914173818442615523284217895350090559645291741493413531406982493904950737366734881846302241638843714960631873948220270167696623145174703432092748330361894019723977187645249213880185954896432378918574223650247388669426013243859660325415498757205623558176301094725836026425555666904258146175900579187524457041951003077343468125202128943739242676213957257798215633092447360160506434109846696660419361886207865119039995248992673572883647203353010727884218073537368581882025279505985787687594904864355587782100250729002135451416919699735153037794232984923970827572429567888776837773248572369297675502201989639569844958353466541464531888273283350035718124279512515929144161241899683571691609470868047931353152298873193979164553472024575170430240303436014321530380551191419538673529854282582712352634983404106650204432094149543150718139502001699838871523164398449020208642086671897094595703094063742860139791088449772454076720869592079423194003772980471000560558912930368720622100584537676953735612957145073443139400384397697925398369177317930979651143622379750698428542966792952814625788029197948396237016849014677562128248958325672458621863667421820281445926233973171054627727795996447565174166455166264103623446525548076123176815689106936027108456023547360529664761298125101791463013050113156913166890776160745955840990996562858686708561600450627968415459910894366942561381862040057904656713618061537990189019415141442382320724713207185744843815344070973732179452066177123061876007059190962662223131650137698433082833375858420669609010665022694598297467968984499232510697963631013834147264631897259944544965591998761302755817928464165046427114174604953395785465392372746314926623447239503926253914347340850949397693064155944275210373059571096111975797000205262400343144210333529404081647463468730804066189443887071594805622170641027399957844868226902567017232238196371180333626304373906936447370451909411413697805650502407837000042986301816708065625246392608027453984237848329316973053694102260754696130478366862288462580052669359650925736173858672694128436996959097823130713900146445363894981337177919660924515436819513842555519257914065189225393200415292745488527206452117477295525436085818658810613643547059938470596342474558183634544884284537492848967517881100385435965524237910703383385034345437009488766964099420135852587450749197300109529366534137801698265022108919194271821575469672154757441287114116524676251737687045764082077084697861428536488359593082499331324586185470369289993902430906993249708335293832829111179822575530256268634554041690414973962958229861778689751513293864440701669774166351262337603174338658775204042623897128823271276128010241584646106558782598988939788586394287874013513786995289895545235724690169215016938811024287711571840274574330933312468116436241796040145974341391082281183151047973125394171463541666611589028102190682608884013329659026437358046765205582831688785056142508667538985892049966124654083349595359793463194236075892651009074525473588509312241718015031542818610801374400814752613806515119597633611844846396331374615433409700161006965164384081576298786649643207433084978725127061411926232844941808888741438102020489208206964230772332082058720331136488127388284507839983651559165795291444601411440885604361997056804401942005070187879418821396609951300182648443343671024790847090454315529307440808223574559514595574617914008990189999999013480384109483409222414055944254326655115078210121875377318483777512142709839694242515193285635017339679475363104714743870410624172653552599881695378935791141762439524021902640898501995274624253767017643830958272375625613720469402125858103878887311527431120555137928054468096010280651001348465958388737731301690918000236883724761239603751380519864176964454517302724749294036028871568039619632479570913364424644046341357267110918443443415469349638429512260303601978642062132594157570307573030518307365544043408970634525109613976594887568115013385099461298234177322381064707851212317734551494409440115848769352281660391547751753474115999578647021730342902705623405702234943294312366941085284625523862473208135884494455645550036971358309081528318080286544508247176032933437152865116366107527478549843234058962270263000601679708222875972096763983592710962866804601158124268004157149462483366175482120472897075295032885022898043699406686982281811122898665983875391656037282727404954796760164642672574547149865110399078071717684416866333625068674602196310950368474971505935895100864164313346338480977939722177061534773767467700375011194517454494209326457182479778337824062696820776802264378534426548123544193891530083923962280022509300286822969826742656297420708834826762709530562325117944228065668082586914088764421177030609726164766199187026487763682032894642472840153863867542199778444160923943596995412477634325975718096494768837342422390702193626240672119470617549265194029749485944010558622921810713559323512317828285376202665491102224678141035137961776871708832249078744392832642588918867253680182920642032177146085495394141340299736416017921091131405631198095900063246600803545524371796724431450106474088357388586683525012410803391985954181929324785514018273015817894342673084317494190968824846095733703143590394793083504206615251774520925682891880681639544722161996190193370946824238225008217370878923794606390819061956632314819584811062595609108362333075696608775370451100900948438654484414548856748616267131615512112983975998322115215704668587206717594190959979617956918778716203707298632526298659212475350237974853090217364990962504403765024649400611153763545753719276044579818514772965976540804381110604117532374551611775559046885473233549172314620250562180272524589109584799131662894478901709912096903229181660845849233284002121139039437950138455759293605788235101761207328133820262350097759733067807983233548969892421451666156541555652498747295567444751288126975421104999380592698080478152394983954098807663472519144782711242960309802355900202539177921242217261376162287828923000123129021193053377425978291108381633227889708068020823694269175736148583605973229867587278826426998815263150099689368398733423205813310731600836493625586683956795390542866626005474944463145313715553093738087331411357815963265385613693440357762272089339855036135854975548746900439626190676344549308126827915668036742340485431928363179770197657074276580403606913382349129017010850187443050515781764773906906660331244104922005246649971019964250975809373431024516842258928742197242607645674595536182658975717292186389220959150495652414697994405252304622514405878561604989622393203973638798293761703779343014608041534174355024750866204605832625551781662562268400428006688251708758148666216232234952410431098509435952305714846212088503532066785872605431315753769979048959609768455220041033848996173261719060278818858140036179680375886567067811337577670377656870984735453635816368173930545637086121829209997185487717942409040741798328685083833949992798795034009249964075393523227835637313330337672512699219150493703780261715908525700159936850486923140417776880792119962795520919853165710725050750874458206174551022304089869209783889579517239620264329866144651739722689061391275952901661381708406684591860804235742284770748428010339881606646865819139764667705142998092235926230979845419042906413928701854368598173926191609680166983853776734034570476244571125863432378689383276749937339663956291585418820961741937576513061489193388779707982782073759217796939215184798947483799483088437012467488926959084764086961150013579807811600970092692867653956222855166984178799616651557966071949572843737146337044187947599560725940983141468955239675322310484499787322532755022503624378230451252580941463292234858105437629733905322729728779868192049238302868897476492760784406093699821074123136720422335829979133323836238257332718282106438116769705218288706797704391623211012351533208485947700047912073839797776500514350347185317038243989267965920106261701767383053259153292209579180831287546593963153537381017149024358382769600590617014586891210748755992784956400518832037399806119054197927272983184131915801486105299010900827917175768176615782741073932288529584467524784100298004344998973905166041224627478471950317558659708659162536060723290630176412626837894587531480931275596237271269496778294303997622618433568164171657493479348743473032646546693183500730892235919951460172933602964384285330549030632595837319114529717420475087542729909761847132916269231198128139934548548055910401228900138062923415127532003910197084875403696484064075362873184437129147061037130559165291299977906439370258327516604348836316670387542384791836412444694813420591849962200593535867740066474998710315395632378874452348923799652074356620143786837510173783679871834914210181324112803982380060646435118762612422606083626357010853961565712485874630107277587180075941658602132442338797648306477517716315400304729724530663848140798878353082391947529372376056010927109763354311577561715766086216240676346288377747168229538487181497551705371824822905440347338155916736711372702519980298591360447438406818712860157511726223148327849761597165932082548912199712532375317455643260024892911412141245585723102735419525320023030254047099775438707863609199771551368946724333143479387963534837265556675422893762340960193284112408065468587134562932558135881342063056397724510887400765143471550989596087272950004859442912464265862514914969005110285166443020003567940132795783853595821980672643429388170578991289151923381143037337784724144845207916462325016874762878975674433396428697781089558894202158443400604702782945428204483844185623196637926364048607081253415905872909358937249707403370745811320243472667122906321921645923602709524668415983233040651730293336988243644465713132712766139901310722557352910409523111681896715710281811678009501003215520290281861924088261159327773234962674616487366126894810493408149782647212173282362471625562395957152756012004141184192697754047718658795707928192713969222447452806313779284447505538884543647980885717480565119525778525346077956331372050631438595184240319400349303714726509944591638556326215304329275697772151975952339525072716835136975652572560301867760654297535763731864443561423755919097851011059602526015036881086860734145862051641879304310785959792208378781284448131902618269660197864927082853772067776321375867539719629203718629244492810762304935974831953112441911148423858188198425752929648984820046927865739833488771692602245728598250050710673001135536095171154493887810670200695751885913446174230518216745050877084667794035120275449157998150322733905888516087362362082596387429802630063146571244861910156420922629831411760808322943370813478029554802308156014160458609777325784778986976297835536760240189673591204225937388276524681223588884530536424291270110425247880071209723536744995177919811002060176663959349119396496070472931065320232349275832577918761067422613529124578191948362623089699753058483610847304851718803820248217879043822102861450355774865663303518713536074989107020508964662984498533914651707779516850836046597590037736005581062865243422151491002237193396642996716027195929593389099151868191869481987191160234933070005506423597419359190385318266208061248897243479993315762233958453645523406124254242274942880385368907971959124313936334296684303371475037021138019977852544096673587511540456294012157336542630180464745759511209567305667372885591356277711507537341637597888089671712514755392843603924772606626021948186588825803334532011664735000928438432435555200620431050545896355077983970868214043067174111997733972477101646709531913186673830850026086580520204172813567940533639928087134624866844923475512872870152681010640284283070202384586547461551236073791771934646864689451307886213736943069358605992390795390957987463572765490904915141223257043197902198835710728866922054901285048252931277461958634348895341545387760342137008969021901563647105413541405609455284350854774948009944605275453490675388052582655603357698112884355998617894466123496623593468049261358842592124348164542537522888757141218722907513958515415017402327771107140382415559949852495781143181803032301078441536817502094400194489639166843688434604637721521492511971026263428206351603538211869697415701855872253853004766415472014113543963607165748123852582696360786497257409664027822325649428668852462772947016198252819108059682941409563357814700805313350943042529804224984988618082617242212194445707334033526814499489068811567762693127031726308520113127825235799903021531234229861516094144038849056557044372202163480765059658103892816324304589798490348435663618815698528906925166238575673926133611089053240419827880154528555852125154380793156836321570528181893901540406635011379598689199932811910009833897882692702144529763937460973142563150749385917288189294326492316003529366951140814869985638618002741422213296241626244709194474317832069389946351564155456797322457662213764910930411697825294721582126179170476050410030531437186819385228412530639489930249006764522504262672671161843777426826119610706307327064785446324802465026569944702254880397310351469290163321607510888731126474579547647972219340828025647191085328468539503665124576546578359342246259215435728846654255549666435096970567630213355869231165064312981455192175084153704764039512849425496363877514691538115686847711736096268255306028415345790142632937891773325483303857646556361863148060367598921789252086622548563115091105122182006134255029485204337687098172029776790561745551558774041231903566013258748132608260479701567590777707429898810110891890660360487447761498469208723881330975800180551731497140078785987525795056621285113327569160778241961663984367054816685431737380308628404030222644632934723112718730677772881613992267301908290910321392883593572371327029152892531434496457207920431355381461482839722059110473020244280496728894101822238134500437811654974867578189290819214987760213701129420989761850237326228680245501449207931591645107520168370479117293517389824747499572280297548797097487063666969871634662102052105331998869337883771843547739046341255076064593728428917213784579416252185405133904063194243920434674103761713589490153560538826377435951641475975900605890845195418506938272215933239819908699760620219244522675461736569693642901461295074158878357913938445408729205851755164949571221805763739224864080851306683594220947927318634644154211552968246794040843574010066440490581757064178560406087640323436225962581775333563774802953566101566987004657303668731835749370274198785420887663673411047472191940330116172488473430993126296260716369236233097500978848419335412204954213511801959220073461962914560350038790024595953584974058631466644172491085001472305008800474716843898016503873468987012534690136416630161450891323419385162538036153925638963201797838038530150374760171823526410808581930618005915945137068825047636273790945957235114616905765708788193533796977988698280134421435360303991249738871359586039030530437245287632975222062899459436821551244739480851813510701956063738698385873670896378313961971021575241378273134337215625604331548094860711987824120351813575632622391022914171680526316526479183315045058512660564582634920433041755769488582875822109617067392641414670656465899975957772070911386247970943951670340445112037336565046018016044070733594902744035517013574751888058511005420345567758855713900761219959870560200067384375649941269113988189340258516653267951119153818396513796515595839403631857787355670764559279354157502138376301164957309022019924739520399920917676174101774248590692520639797937689458715790418829284363683880562433917965541640624903494426224583845813402274154397573382593218467787123827666869333012222367662308323486221442448803918890556859488515029910731998582048089479785691093224979916452390487481651386046868822034974964347897437590821211840490665286804881252768897556522885376826323686740781267003545589013780635823198246045509049805827891806318100142783826245150789454836916870907997705834920896170701528270551305974015433099320603311177651220295174232792560808182703900882152097828657216941547011734228039295977604053910303233053289844885978797998039435497247008054520579262603433126252299404386413691396859895777138617648531553203077998047662918261546982561886163502531690943337708750975234805461624312627774164542754762261589890731157875266148281154022411338845299730483710022125893674244248780796140334954564146220073546354228295636919899585200210888994400332885824019804884040423934122254643457211947404392762641299953350419042363573529941727477501293963165129192334408373332515323103979075134933278908524589862225026418675900675021677398813406047062354289391346985975161040003674494519294191811759088518496126152911031710509812569491560321882184605594099038849174873967281936201167664955872627564442140342008785672218647885506505147936154560843917551692986782983711394515678893793378762523890065776557195508267336293352314177770135871078516314706675511111951759149819750489842843224118313782068206718249203090720840143401756853564641841002525367494936818214270269405688160482479298549242466353923374340515316702326168711323908000290565298107743179778800454811966800219617882297856621553551973041591416425986445561234799573888223951461900270563936472416968855404898814593394482595085510988727100186261129679969705633115622976484707831917614599528738316663471571485657212542249202237292179761859924847792492270669287583882896690617174326793443879171876085659349459104732744410317557867626525445061815917334909055726798102988193823626914601277110296390369442342246560082603403552507086717020238034408189227485913437755262534063156479137406595551028362881797048331216103962866799415033568336286318740218507344383440972861972332954472808677334006045205192074494031567503682950990511850998431470803838776266035201953764490561139350197786114878362839049581230271753541465477684691176598014885172561110114458964011026941871726964772508723535513344542944813748450881064047038922931949170422799287893631432312183219567490486280013728415120157188012347025999034464735017493371004096602406153859662641892222836145412930263098432102744486439838487921096119129909397574941987090875786850553658231502615617107337075649280767796616157965934192307166600627172731146501781496928379791025724681051488992622398564501404634874717123138968352921672076231799205296922151229387342727934143488278080220896911902903017490808922681465220999927276495379711802308629792261163797247946139469313515012015243294046087755045683731957943925560010567199614923659263954115979715425277298997487902330111957150704901114995526060500751280478373097309564616792859565153302690302579578952341599840480948651475534723372732645700959459349760565753515552449472001592768745710677304278789716085556525669121461432014341635396550407420043385987161357563822065226239165885818747191352853380847177155984857297142792749743160397498231757582279022605655294250598056988081086885428691302689512127669634894115337010553179548584534230608735824573828886386812402106797966079479057304050169595582602320822187400215471994604874228041948784695781330986121474774263514116154083362997847488468347344299085135769453625051270409444008367594007792392079657086747294828866115405050689250733442889078881217739273395972221454278754850431106271248584419295685760317323897915637400716335617345994933885210133476656570546492920764134952043175384686571080942787445088521596203723832068786858750015062884279296124103433102030524239129527716281961387108753053907648133587012502825576227680884818374490351148461706414054341165195715726267529827057142237224855540176645312762082260387176135998757840271236229590775294620278672346892227947654629161730061643280352575583241399641131520202414318029851634226538526055403556736147940935913877946719991588677843333326317294941431960552371656398351140779971428076842537678004442469172111502559155498065130862477238754304210766828514089334014720654482348945231681143907079331653046078649786631469952981054098635992180880539908080711326211392158080721165878955933827567896326486759631238383965943950204955278989497496445685861500947904603770080943959118785491683968364080789899505467309401888974712171742780096750856032474144182374776738741562608289685296693824574247717339457561450394827963738706696793650134690513211974714686372796636632103813833182019159241330511309139604658972464649572874254594796482502593628580530895883343996993427465666647510766811534274246907892985953734016047758319411587795911802923575784465858327445354490177549067622765541137294683775699249891860857814038621857286725143170736775578564727682053500323074052386244606379852249461811557356322039968846119982678797808054783348311885025171979313609740098517333547195442059568868569375253185216899240289826601584789421637288983197268940161069550704429369037723887439302738533788430825999779439216370160619664214879805512020328023305067504347510916987682566224165463746865039870029490642777264607364667413306412305435030399098678108375092869174293520542865572090523753177945110434982140823108094336349173984870053605375754378902248165577040858246519657969180169467638546547281198049965530524700475293290843791083932789357371369728884927711371967132138029469039842107562495465359310096863045031811826675407956257975467541765325434537550773216640363311317256437850205954171893640916157848431586287936843500315712087353588861419951471628760344695524937459470959760406094824624327090948266628967043875113669494094960180892797287640734848584428863194405700198744736243330956543134122397962175772987447049392417248118793045628235873746213531361927254953213626889848886848340440107686489477930610753813583509250273077254345912568744897757606767976607476100301284236386157828193500152491452107714481553099344733739732070599082553336642680729636255775504313087055711386434998894284808045557436182012432484666244211229548842612625101375668209457018656709086407805420627982779551742119135843823073812215644855930649632936601860419604108362228193136085980391411910215057702867652876104916175523734422889611033043210926382141589314609915905491744423074227274932803227920994746070194035540981634443090675131661293794801934866253767540943523999209919475727475374095466046156809167653187092176738465305924278923268904091955080742784042863683641014906817897209885608065336150520613895336308871626210423264061438476809659043604210428652742956545011032754168572446397349392630006432550561835404329711476889824738256874058974501855608594682979873190005121314918895807698221911412827023362701900183801871805683547967451780390567941850479529998851547783996141465404909618383605195655632357095793189872538235502421824074255585676118034582684956052159675861881241693478783943552294026586812986959816641683324246380956001863949666749871720160064907715944498340117953911981694003842259540619293481710429736325802750116941955580026246262500237899213449760514487179109764179950571950027711874831833024376988311823694838756907683678539907719263058642214354700955871262210310882560974830043060737541032093173081374587403961024100570510179734448742839010095214228947805750271605425272389500005289734839862810222569370758572657234950775416219680054918008990952192479425843810510933642199975766798350221236993789291136994835931400158249925988676749877008873155408805272236705514593186538544383788176715891173524356299382594564135996566567806205247569826419200542856310829022944170044286868080522001851627927070042414752580598920339431926199673253078288716380756458007257211575619766664930120339739698861344918239071832879060857271646056110169552781208845545312146123477805601439634680321256771031606181062584623177452889759993920951830634613978509663194650142593917151678992413759447414422977382425096489945787289003100643173247278470413357361112684586716307704295975246872990709934479629658492364390024720914569221307113603050994975661960327052536558900886422367367182207491207267417782592887112002657191140855343432016576354257615925532938206569949977421522974552457562375883391494526027512221336830433653044223763536923776016966207710430887611038245256896158491436923478971200257024866566213815159770913758734986163449201294474767863575358606323548321886910060356144694860605520706237009904991388592628751247388431782711442522960786013566817921407162146149004949718027864755458218052135792039244504707660359248725875830143797310338868431808855401791862272712972015697123243650281020731702680994569953871623486927776619749038034839099550195525382481355948884730472854090094943313951353121602687354027850107763038988099457733124109616852281419508274174255884212279869981491957362089864216501932869025210552347377533144274059271212483373573724362066106043418829712021253588979793071688122714766239773603216637998626699428054152190335191304409197885735035294674107827400016001556173695154028120072093052430939393819750299074162371928756593308422977248019403252818460570323845775773856955093511401330500468114727054418071633026820148535688514148409484122637182560240820460809753584286467819706083738227722831863984366981411726639994340338247622424578317513182741006035285872458767464599607053734286224674298554874757605172630710229121877152286427483368028256900512554718212457139465766300746046453625126532974826588857850594009659283338600215863228745417539737008716090594386950361245514131751238923399393366674595517532439538214319600693426703341740804219496020883557427482556564781931271006713603569697827947381696798719907564703666975702550014254777586800334090628333200483431848676911824484919564022119585097867685375924972416603871614823586006822977528285160228133786454152699471897641081482069896776660845112131425267923167938169938321982831924093517633114784057885795686036149138905223634203610552975701247672063696859974326169959326864093564256741157024376060069938723940691015380077063753963219856141253937976869489311335253540168427295165174746135760158152189613105777587074324466126568913677137306796197805507976592816137073130855301126838738129323643763147210877677738257721959270828851295940225079328144187419516101208977228614928342775659829032040028587961076052239328001760492492429237873557252956998205905644969245800850655141506447206652265324875257947694898729483365361622331048146819694440986966953878938143929459377550808385757863629836421845787345098893726198835807203389441243444006500724143571765460614070001693967426589507484814682959919982253544008240002004999628026053598754134189072964067971839201477637848905589997687919677718912516392388694237206680197505782458049878918337033111231468060650833998047136409604299126537042079012401484199094310762597370055945704210233498145093564821359863237423946701667751237272159521560818229996893230931442583199507504594670330420344545794893630516620119253293392516727931806435838834853112960727682727257253995985909807450830959213380896202759787174641389756835966355644499210116704009028052132850567795531044118015173862067227739703496682411114946237857164816063118523505988490299455153868186790185676007656796826071122440689538497159081732372264320348461150253517402451158575495355034887699875350984345648311164940192761147760276145218706790979946669575385479753398954658459583070410045756134080442163778836410634518069688056473689900584145297669853741831916822076623881468705407922519886455298571537657315319647676743614506476263872871407410242235318778700135396590399961124532063842704824831028290915804423976224748823504385215808334949325582954652472428028923668355915764675146834454389528543451496945361897835916602994805946201909832591730748955460983827623240836832518793395219249393019362235127816727615898550939921834858977487402420856172765422194151762840100054652032028246154805674311554571349751481421889798145385549925276702412822045960350196471465595222816570841302427638328946080747315592008488559635869692023446945123493466624934782195764031453969238134669420575887390643965808266771699971626040332316767700334370614771330675029221226036211248196593991200053275267031425377808098549683825609292731509293539797445187648096414836340521578117874318236108446741352998400900610871829863199389030188698677738842659405507772321712491598877223139419879842615926443292037056850506222250464521847122209419819366549291561912795824389620025168351330220585507081879177481345339196919103393634964499694728110993280746491593557138077553711183472096041397788879004002149024743112028203684276171830442310317415642780100823654320824943757668650917659364269260294874774994389554091142035851969135349275199917731194398924183040491508855297590623787941227020272117595234758323872315539051087005533330562501211970639568877292728948134301263665686894275778823993164571243515874795997687673743535873317330996334797948368570936438317349564134241027640233181375729494345722738619115179056109040402552023961301466512952414259288897266779712353685510866040693481024282296162106146259771394044332301898844262645503446973371686716304313740276126106205470571108445734796332867691308237194798360223240475256827724950811103134486129818410743188458857113548664500855058666013342018847403152547952663294306237683732363143892516510686756297681549865360240529088292099367340502456517832140804306600005237953378030660409104632919638246288355588964939003237826077406491262347128290280601503916150729713035988042676952907424028619402753556323211797403947774645969935801667210635471133111771834464819664423432259188482810088526015906498131585204042946195053108459988962757638781294444543567674870671754984434415271215025221501448422785643251917507893085981724617936934948830633034082121697096658042837557226000135759487461798883026300817495700564167092663280239851812736478970543941641590653545836507650317772777934908225414544179398716859273518992637617342228218840078293434573430353340680314462274764202809735059752833869076416454459980077474614805735858325809873865216903284478919713265333278381278153227856167091001985043601985738597312976170760333224814064446589648168038937501182950873231018387553167973195628408846665807112267389900444292440749975909965483947009409270335195171795266509671809634104702714452841036893476400045530889539066922521268586656354272876385800445611378651907721844394007563578539009526995595840730684193692398733404075135809716651588906135390541145149445285991865936276318926457823297293672042421808149408093534791945088606982993514099112341345637407024929247202933064680913175935049716131459569682139842067425591917260058504814797233131880532270076865036867394849446860454156346717792317293040899657975086674601659666998621929747161779558841588439345776258189693653830892110287664420169258285801894381434603731028020449525698008039814814560465622496114229836645520519511816631110398892020655023413604935426389979180169089191545346500298809066652120736987310158874471150034449792853862686734675521069611498663577614532956653470985897581879114119954737521046820592602440360272680853200880682249490235831916807213565341542168987051338210025608921061225005980321304067298955666225533505486739967369602454829065994928294523376270903122585471366673398553131981888997658382427060028829006650145981138238976980470543355404925024291530358357715499115260563013449475798203147220816268569145634008599863424146688300883006622226998218090403253693138639084325893334549305935989758302635295559864617662275024016474945344426453058202087293770719167558547136947232134910317710606411585005109864867994391289872225820541616474393303822313659854319730057796415267693086703354810555374552916600121284457422541560555262394008139176162514691294718862334369892913471459795266142037334713586872005375273597169416082237180182072986543092180596802588850140893674386289231803156102680416067814501220577880674442558495017074671857665266877770483766501406801094111812897700734638041457595148799345286660816330388260712232901613135562097098510076004490968043718664285955386083983864327500182718326443903465163333944665534981164323792768660292541472508364898364552798319196355454560732487953747169025190669293074992763991530009535907886173692323179270599253490409833356786729132833165694282085806774600155730800742215698021134595575685274136783270300384183759010445173227792338904041305184796373549584279663040056690057205669034293289633645600715231466595268346162494330920823939467444560037949782464609923650990743747892451346446352440264584254411832502745965359281376119666767391645161527845384250232815931301834849543589955158889440718144687317341781193481122640075358409447148638605644893935165056196301435946676439970941190694676983826208424625468412129285104744835937720318357868328938909379610411291866764825602885241767572637956569120805288011473734240518743712181372632223625858347030699423070868931259883728136407164991041056012770217998838858909836630901897276684685440256754147162836427068680340159489162347618666242926905678420739511863014425313785357732478758930378917338450196717268301694552050961620263963102103749882360688334600238798645474229213250113623071018504537153381634140761112356653884122766377572095944779745551819441368944644081974613776564976172257260149208989136834425858335070153052267893015005822161336214997713002345264482500590518447245777669585068640422257232742708218545563383110708715832745181854575932206623805869779716699201808550111742698944406599593728864443229543801133170525579912113290631207088842464270965531826178703746313641799774666285745028229179749453847155533595845877588575049472392681646452556537102918306184825106832894614094150132859644514116671199624526118539461096141886859395201497632063645724077844962764906675853203228023779536847608847044950186308057077717209189764648888728117061647352830619564502187539759297708651159664094440249766867543079112769712310741625071918446261813226705517314086550237841470115804077654578226761719191893909353465152085783440814796760782278615855526455141685665921586160888765809668101068844611832413094419561995442667752001663792362503601202249309009754069669343661929289573198823304858353863392645283054598385980616876621526184447420178661425304335852863314149692110868949521991930283684942828173395715982467386893169039770535584488473978969156901642752338475082792588480916212888109184271000697091439571696416974582828582260136357439894626540175471761347298686680924601269872629442332193400682327638997562640107051077345759576105166898277672493322603165796424433332489588864362804252120989317518224443654648917241915473086323288794453354725262046418291594878827927060967650082729806932298647924475820387596884041726882496519500600612887020738692667875053257723708770543191256980924423527333536975945495816740169055703030749439101109965971155605167003733557215267388907219814884540347064166160731949507638666786235342686080254286900879613937850168928494994044866483437182349937944600455383856305151540306031523623486002283920065810728175770337729804570880581398386886149591473721290301437376921982172218639062071357114013597406922708031241233075455470241450709099883875993720934133126009610059109949944214458555479037850319612435837349303407523678099171258221248408093880619950567109872002318843722469420086927312928047851508180349078574327000876183408363614402847632335268835620200613420328262133360314929402210489742580179273636913291113515620920905928247574666993790452540453379715648872646453117038476870506985748594381132994584989172984397839670911169942078384061894521263059150815298506377605217792339089869378857717422800077672357717344067555315797590444393231869537609639634821058609640322082376015776201903299524460247705679754156612750074957378205638778792188777653888041767200898046162134599777463117940463866821725286965654690298451282412402097525133236189518557268756818291651562337020802233200089565863421909444560801402541188942814412092785212016483896079047555825265019245083016091126443308886128834330152984939769150293274966849420010239149241939757286981117834639604170302463660053421115762439107830692200226799828651176491658291132831103937372098629719203490991233613537819882123772028192715734548389663453433549251645347472652358742062048122581694903275317178952308406344685102146495198640644877130130203835668152016380304206632978710001282279275793449571393751186252193371150888110373604220734627032481478024539561712737612662928315739758560560754139514277611028876134308679168616719000960681230315372464721115809160908595290562529678428372421360415948248898511753009346834639175491059159857207999529255545594216503576319242430473061094553973927874617769568594461922767612474147938324631223759175424477604882826101680349599648604001943040143935114219181585265367088400300064635156139424804065338967574107953497997125766529754851837120906880646346461516892317405125456547771973875763022927439216807331433747423138092888787432712323045346261729938030490582873350562320693404894786919432952247559121249012616774302031173793028104651248091910994145611554920471906258868235699642173694778181977341940147807441545571310161325960451655219727762146827888793996522322977134455150408500587579342173733789392318045768729980560894830630128381613534686779642903503991179026678621379446620235350856672863633970075777212964896231267980916264824615912990379356916958734281389675983773584472959145190309703966303415623863324008338478846544265352970743721820951221545581491177695409902804585183804980169733028583078005317213576362847032856576658275606826327582870615784203742058843923246240442915671415522998858912919640409577505870552074806104096948922671448294576555438664376662381544858876266114266303301619680818982870337933457020492649503318194812672815743789069433968740341374361966398109811794642400682333469638961972264006397476559665590383868454096094583483685851605856027986994858032687970390443556131820412232051307501748431037049857314975844307599636216152151720094973983707268518990845023103449203572592553739048571282396934861267809444434131761041925235348577875239813954500985972272412454275639175447532437479249968221122750904324411830676475943085493417930830252453222220323661226857180413249027618086881820276375871762042835317836548991134531808937551610251907458764480163481627194888364027544800559424473867866254036286380763810641092097381566195989902417134263713974709553276041567292451528277542810294425021832979010508426603169144033410186856429312380817195144627960708390343951736037108359807231157306475762271591169655816031395108982811688975582397873515350981616047435368750911947651206933222939032060002427645048965125315200508027239294701157835595307255766687254012594432284718852211836536774418239104058953894823391528183996825632140620992035056418856104927867239496664087061612404523290582437475766265643532731538601597343127934148211575392766217023890998867088272816918806634395618009625006975325414218763181628556111881567180121103094845790005563949782616773254962139309109063911829892089072533900545127060280774353015329462668293646078428226654193855182406795833909551061738081039850170851553755588075209571995922148421105794698443729097637146139159815158159154667186197192020136789475643596592258387194375233012123215692946003098469866553754331734664511596544530352286776381225725446401851525378098873937422510309143231884116499728575198878003870974663096584749188314620775092512403859561295594183343601993444130396405475738595739008774782681362390526791774509793046086383493487592544059705539130078142054615791553205853064097965664858412892187015031923872853589474325427551530449632155453445324607263828835106377739440679482058230975749838139937890366755341199574517153985395520535006815102300905695388045447191535494672943149689254209035009320934568679245057794656649957499627944457529452785215016495781768865671629114373411402500968345453355219612446073598364500410908839311916017335202441201919638369500275182856197310793210912701822296918955525772134130578016509733792283007301754617778275981070921741075023274518842298555508743669942768672912820494917714412639871786247807168144792664922361390411130510839897156189438821346862518831049818616198707879923716700716208717935146228360815078796529674258065978278666346900003085586918824224469152212894093600395913192198010450357201394922172016635648960069669495594134465431729821677854916173949130774762848181726528041983589648278117065764012646769844059148897974417090823664508427098192824090776480957599153345453429855809234441739150181136609428315780863681423696733337268421842047497034209875835096395597588099217777623677066104321589084926941670792053210117827214671510476131877721287042649152137368916180425635808886060833698874638668282283813989833361679109160474936524344222815751741991054699501358017631139106036232811506486525932169844602344500979496769631424228018883145811058514980300892072670003639299190115900409218590635651448087404501095810219623036303302518777908041027783732542788792455053590947151008411320998187588425925033440531823200149476988929530510158829818132721951967288412355802520706455392575870057109882153750703446360141022464490289005204394268047148660473356571322553236829915160906816336728127401795296803011208215785166912339418253749624786011790237204992180277011543503298712884513325329033381114875445050745621308531023788841306243256807582468865594991549332202757129335333185580115900358069423819985089909756883505593355500375360432858872753893756006721132871025215056224858751071915207329641684774154955157101947957717745365665551131273017843896743861113081921282098583879710513049579605814225774303156704942616241820066829516967037807990048165702871130081842097938837490835649129590572639264558326584348932445626422216819139674368997337607795666523877703595799643820773440351507497214927046526559563549683992581976282993291663599487517612339470999815477554089237356519549517523746612351146625305131883960080341363061087896713040463737321089700077676158917068565045663026877233018686096599465675692918419606803584619686867976176867136391564441140938118370999325610885295506308798133877710946505155647993686733233618172893298240239275323533621585864635036307978676259941059234639701380677032360582870661515923364920211022872218855399956396965280530960536043742886811995140414564432647714230482797338470228034625795877388674341285523725732132032691836949132805431319968096884607615371593393591636607026987042139256976628922641949274745905524366977835742172497629975656825174009646944523757579901812906601043693903568531573116903103450380598385075269213801618299092577663438839196698678594107327887995645671081014980057145322342004562292714659458677056899886400663413808712677402696982861167078092995145132234439990837744551945630888784344317986649308913936866839169805446869296454404371136611940530984857672150663550508182717276397982781993980087100756178229443286015902625156645026984331842657963647040648721712114396829846300053574350137973564475894729765760911967003619979646730920018033004588528723778938022188523174466701347077882645856652335562512905352706292219685393178557589106151632371241225324676716805331166167981207714402815495137723646717584887231291272699469244237947893749851833909741758802297172050333622613175148941103241834219100560885770679418794951998196079418288003401994420471934194828529205967802519873005734473408677662989343530029870454833706060093686716927478412035269890442268095978204800952467655585409443610470443576619530944992412958783586423899347793194746113537775353445393678384066420356211947744335459530177627948930544535231585635168939830905150537719792102359085616258213662483199637040840376193264648855126294895806333269182113991216482212500798508626130886301786368580242577869393904984714904480525654471752910991493397761158038749143451510026989191729580646488643744859803203348264735318191037447215963108718165660144633355613301872733772909653156899407572461192850425457920157328675761502269739102801989312822969307062083536473870374760422740359742483208101977984073426478611407214978162689029144544332555293604283211831986136287132957925030488319132753542752552770208507245310885133425550796226350624233134815378167600300503117164413815900314512111544374803815000626289777774940537314726927204377504547978501291989690993793814196213406531480407250818029735476557800811851599613749530379706568072734433418482099264484749336166345357223450263956006502620220882644179419279713652530276105091260547906440125564412041869005560915494195442830516704878122728639193017642012839620062429755385739382984383729030954911449959494833916725426811936924925256702290769887963698444670817748005699836313897751711338074636428971970871360392822855557433004563056590740014207337742340669828354656839631762973417489496771640698501095461106111210468056866049373552180081678896143240198524996917322642295799610552236104525740259452491351375868251284885993110962079823041398460518504834269892889120187218142345854375986324928277329628223512204842767975068620661492177397117001907640654877794606504860337069733884504405938459014140080178167016480723336593455929657409439777842191424018855064955152212208578742143445670189237153110470849917531419162901781961458560785397976215810353000590070297508684906652759474560365789660113635723688474129179303061275100105317331595807764776440222871484556486072395044358097082036834992931614077994176194219086052450691171778953822807028944407228852377825325519224356844832623964313174089299724268571788120058846350999319556018267522615687937224195674113488925962787840365669355407297342607788747560728207481602990460795943444231650609271280277763575555819226416840867643214190807804530033999235407251776342912194725386643547253799514794978579470869694457791405237591044145432611106520278009370247543435376402086436668834951286394556456437755854109876410539684307056681744309773489467342635613757346859259945231634578142586895977663597153587350754367169503032481490937373163292717997422234692659737452895951887273883942953212826413474804841656962863241984084937028033644917332711641902707112239723841943392346845131725710355528370572030772671582064450344801850641416311711010218850508336309167185637373397981552331967206732413641621268679941478943818107893055312091253599823246374380402412737895818676184512018138047017272160255891457102013761186191870212063236688017251295107109891577299984118797006284612420077146287486968493222198406831527551105699757067493239381503871534562727409449711944299804858253962884857998100686384047501195229252866545702603455070756209131575408231101405652387838051052669021911814724637526541750145884158892766602986741659399941184357199757319065138752988059826244521241454255823988489324848077003995580512172706568415374387524326073340675416741474187898063240652190969151246358510910491288340472779665099207902156185714646580442930800382304496331725991680581027265250254912648599419057595062560052149598478991030904015325654951863603450673006976818305481994245935148567595797096110901187873923667244165570668933391461603833640316374220196961340707739660828792831722619605941221231385055697364255674073999413481305872910642853041543172586305130406954154491000499272255514614290348915168828399796535959762049593057924130692046860308601562274910924018561265466827166493808969177377768838708356921257354232935468303110406732456639781108356827056808473592938279610601202153825747763989013217521191744466121394758381209789620014832744546512518104933247498079782291549511597938754676894898111351878453286834043811216695602472544895199387944000078191982639451318736814486313759906355365275862588070890189983485543071275793936314792850228824329582477460809807601826133313288440388052689728523927643214870885718782448814537961137928290233386429764025795232027079231461461063754156732522664190169751370497306887954878660851866714013054708397439014929888716297982037459903198752721099070462344403599025636752955029086914560733491709756481730826730454914112272865783116774897315355546952153711786620393616765042168620200017660687904472090078407607257161154784814254983986231558536856198159350956190845592840258896614320409309143966825149466023736963155838035319301587131408449931770478391129023363387015862352736972190618268838716382119385477089531277233177279042182523354417338936073862353869206493028190169664732994924562478533366981947529423189010716369519176514528187061987330753506558370574858457180973363742776014698869387060774069596561845830738621842277289273180798753034611970534749635280409701877850158695320812832696783718949155524625527616771301196603350234198631048570557823299267216669936307248111103418387515822160899070348000070143513990050295480497542485478152797828395248386385081707103853506207171739751856496595510091181975530567558816298574752669542839270249377017534403281822513022803472243753929687245697754892015813232850785410963516716834549524802477011639419873784087991416828374291248087123026029586974687310383197043492966209381897437319175866855819804105083570803162143227957090499507610142524132069999911855769873843360640849139293405491290676448208183413002226537076445140313282865706819185830968849130452270081734095630728970183135703547067160591181595604931030796828239475993721149964105678530987086676232611884331455536164833364416687557573923288564486592709537103530117711986147790278775504488115601708760628440485350947610047926815556532164831060167912321463350371725237943540687810186735965966790039574942939545902164971706330651164694930391899886540149558035088553805927828206137825552833209372980816051164999330470621603407557269363670964348357385571257685619953775010396498239554001258570472641729294847108939766504488422745378805943566436471139998715822554676213285280268435184104621180215514531903254906798133498212509215115048322679170207460935025415165282788922545070844121503375637910786420887483900037370981644519028733661091979751259466020800403344643706109076810830080802532287853293807287953076260288331839989929555351013863008627223075582091501295406881985618854060059710731571176258777609292500033299623566583630532222010754935543744311472556278441667660601478302414988879948310152828019210951947535117524779342695386841792177739995124248605939753220735673544319357371734682703036196084807664653053614105645654484185798024249073197662292926732623236772142152828339547060801667597707793988079358228508263875551626460130235871808426312724509529846492543367325242665442466607512150139799851825129750554387693991291335653293050008112934948393155295821230941260046850004723212887626417655758506131152812693093457791630349960880168690780228256398227815267552503749682225658362565549725679508655279802598025651626276069180069285140029318163782137394670224741212477633151341422010825040568359140265624886379933324773977442252808014286824017396954436131616669005451840686540189628387386047315262523146703178561485435860919911593969191680898714901179896473318424105670610420700488122615145604269028606256739513692473248851716460868158883042344775606114660380043123212061890101033192819005456693475197724563395342279293088242202659528831957414934361238825006230546755042650544374128354270171926886662109420613393206518356162887233809583879080100419710136245188815166120256946941231564485164131995675929136042231050647827561099817976471280964306509659273988565649669352940358925410161530144617213959744742166106314996601117092742747490666509013197402099434568372272793916956529151415193452457915352376695326902496876265552086609197593274617028458024104744054836953307136280755029404081919603258355588262242042234204541329429818045228093013267628753032990910232320602215615137675461537669478282241721354957314170997584211014667273108828393587824579012341847000098720568015728444176311939379140377525480919222333295448502048735150632338092915481085122162817092994994541498495035536491047183734808035788988056711438669887912027028511651553552752562818185094493135522476959688186827972284041261841651094196347480204679425772294737778685112350201603382808209637883069949965643399508003756370605792135283592258116971368670538754603860913802178212522116929935003767190406540629302248781754760499533529654358521084741700315886520755252500007120025655533781808526817694836856529431197037491319459000642425495087174145835419053788500640577111768361734775424754676867871133544485931224994488062881155775314409964561995758914895979772360019303732547565866973354723413985700979492435031417588629670317901301442727180571308902359923974190120394951672837818288959828791134424236437609706527000540582172472701570106820051133075914510402397805669032133754929224031071380621140568853454746818169664051902646672220033538695538999840130277689022411873409093849766139047265045594207249149964765337797287430003957336324776973058831452476779778566274141863799703123845716902118978384124979201905506460691704931704300429843548014905445122960833529463693673663983059972690506709120284257089275894212135732348491932319377198620426743467470770174985279495254582302569477008159744790067744151228821286827337202921520349823625636378224423058765689811254788524405091528840357179019652520874380530701148192844858010595232186439519562256115043906295600758403187210697608930082117374082538220095140382725677737299453226075371826096111139924829354499307340492279714611575593548138495372161003357172099330421831720693859460116565713118967985329197047125523532437345524100063492396603719124999965631604725607061526991612160065324605551394770134450256659600372646013195574354205424529446388695875733398009059341817102726382003262621327900288891887156776457534529334647100975324097235179655040432819913180868023992149430132381368698210477979447692102074853704127584771955928992583215870442200979045988470048085566289262715607836803938368676809884087087290308548148894742577759161216086088570969407102202364086861503063877616756820693693508211076032011216438961548812458438839162955422732215334285631352281369259756482485649176541618990788559337260782466201293061197838035331561578604346557818555574963901497676084069872856596353430956544176624122859292639424834917524136319710854588043801268233442126105351047668570790551681941146961857623471953609167286514980749401855219798329941437181311227656505433223462613351124304723358257698999009313029882792786531740807741956103666272753627981329073213405865469744909627923672004670127517611598938144245232822236837865839255807324424868844254636364111252857544191271595572232903961672643015269068012036479558932362925546810360484058828628120921527287949564039365812954960394853409015998717410960485938053944879081240376111732968972481613934757331563999573478211854710748704529594717618592679778278530559964354525571752321899575129414843071234553412273703811578633522759402942248357295323080213167877741474225183307429603690500294744742302953632967361141107918481635686128890083007995645069254252598077691808333581772211939166630644798181587669316377502352322712892873748879887938923972536949239595415737959894271781543575654989863037190734852788660535615094546280606987655252226792172657804819640177908158793158215835644959219494228404735958364942057365124520703429711907816098279265714797727533226463659195580341073473585244846845502442852026650865706107433348862950915449886233919924568315132101382029998176228256081769902574101546128445798052219380434681053354168778683862037855904031396333962448228132343673519901385339812751612500394035787095910691651223030597856693754767891739110731035169639580309771911500668542557123573664329745707407540706602811997497301449650722163687911612325356347767340233353544944433695646312598380828267973553720515644471928626777190937213998813982569182263635661099618199248862968165707907489313328462935144647522798480854694115892908541767455324687281786049162895028455626250402341179730192571726124564732587837911025461063166464163475139510869923126382210371260402254844364612666969762266040678087293446588770332476587379571970581345987471492614106728559438176017026084884995918979900672816198970873957173434076662931155473714588572021018743797207892860597410619518384541688126738659910606454143122823367547508051795368699459208731498273655455954968948266180779469245852352128881327000640636839783671634681909739730249983350249052715911209129854877048811244265103631867935369568417685626017597453824746262896308788936382102421738031601099269613376331885907120058968555163528365479193643121435914053218743002402425904199040184392088154316317054636795828834547692724882850448467282759874793221579934080998804986400409693357092314887688178921037527779322044533975122100522459241420783979340926347436866535506938591701240306825566642310382439517904946426589804304346097864074715320491959370441189685003563360852383530060258741058646807970811215572629401847782313731828272941793535792953746624371225548779985570877893559296181178635333298850085965631404015719658198490054528846073428141029692949623720422855316384694434387881319517727552347206727593343421377179836166579176516894494847209521335044260466356141071590908675228173643903922649660749717615109031987120583055947814943528628138622099516468343216590580804077207446456460343527797554787919401479532704004350720190279444244487468000853486490284710402886457668020888171895079706033412888473309247560134558972331301187015239166865110230036627831677540393355947713266120909994946843527697048988316678273913563244389834082046459793688810867589593118390568087890835073901951378653962882362124688906082998035965370280686401241328185685538144836929251225628300939200786041239193223537253033013034302771602383006304099502992602240911282464136488215479249509419512072284759478400821636326750245819438528795067846506192804936657119289573331500120628577109847796131426102272150616023587151083359069154017954282318487073955538967044085177222431733566711094208865820270172998077702548909405068302781488058296243345506604109606762768558263061060809869224752613160294374555492085717913694772958887387022712669129049044442312442323388430114835348641390916314314631936913584186601127687851736480222444711298283907530385128899470925743510305510566328876929239949614611329600635727319662999725647643070689787004751097716906114595588520561342049066883902460531326457561821104081821118176487808250424041226553554863608948987110487077247150464687025751841293447395114055776231513055391680934021149064249840277800539453149883288998372781044926285938065208767946861510177424724383991923139257850898399557499543469194531274636477469210906632262181675120982535700997206871428129509186546993118014399505697507720441511836539657157771172328156166875199156714797279755025399945075885984458284803470316240715595759158943254126153456794435403621132764668441698986856359481727069217648615442752003248832014859984898641368542090463501478139692281019754213502590138792825419210508275654453518445524548535150563310412611244518649304290579105255101790868302204279356911195667603762003409811315800131013224518209746958138897192222708885590544919193640033008465812113466278986042423093861935924220386264430457465121635912192897487357488482521546443761383326161565268714778775276577918901433103385044682564337243552040881063833606961834848610933393821145388692699908150619343897675941506751819283719417603386081700889015486049412992971704271945844890090247929768883732624588697277013298676016653896490684999733758976096718081118628149270420568051511891968720511969769983496201976563331578360015829128729846553728020370378922141272420986686074286413193053805477449050646748947412053977129134031329206155254626627968671348853585759275675639044397564386733219922579545290979316466137566788756030029349935104666394557580676340115783773530145819540555656995971103171303425058817656420079965325763224962388216807742029054822383037531765927640203361048016303674879586547472110553783536725053604385135393660649435576011215825200621862529151412826467453235178442474225378554094343649835975194883739414551400449582954042445092367544797020816018668724708283011352282481895127509109297826882492239929066097597001474984781211608541572577680298969863849958996284927573563786945931478485220364120563143208931886323016560660195791135483253918142425130487992391998329175106767075963523250517355765577292634532885825431238710703299769437518689369688740930596667687349768520937265652306588724152506959894924453829557993436169344344200122442326808631800242992411175581895846015927942272907943905146846041052233250183068727755263539230456320769429329530101918547899055395823268525165992729379577790612789150463514139814322375299446373666493696587402927383222076176587812610677415669508274134812752856625868391462373888625445488498616283154053956589050973398258153474285558477271245537531153760043909706441422570090410424373632610142777554578831270805111795275382072811214573158805083552939294097354209586949830679472054867811173892536613320120322461660736011139254741637907246263932684159708310167117824205027965205686887203973217120907823700187832903716789991315437597478266286500664563722550601453362206179346482876188718395626081056665937554489640537898776022751699333920681747943675443292747550238482143894535051839485079534379831874669050854867895202921613890516489909734802497075620276529070459832653284864684990537622782351583205374237157139452921781467756483566412984288224103426062534092517237195580325361745928485350059060779771111143067823206512203399061999585906911201568742717688451553021894640673163100937458550941627228327645080674897688531139375659608538657946379938127812487409388407712505333877959552562127853841187555581961211042118537426253043874995178915685103637866238181244000294931631739060057891893058111690304380930929904427132267460000842754399498817337208235013078499771758455043790774183642315093585870781360843418986000946151213357227048679902011718929127791669398393207539650064850969122666967320844223332790145238298082326907448618549617080978486234311049158634727854486849171769812825135119478697850411935416043560768799087410887244770051561729368472362913746718879763622911095530425949140060063610050913842842659791160723933641511746368216100089103876292913463442221469786458862580588257859432799335970704994993715554320494246041780226605033462715533963120652187988942640652934336103560415815461764798750562549332004868834027097949169701158052928791571172719263938205793756884933442345170516963824142962744193284518477989904995367086043758762919183093387267621543837565050693138687964053033940905861827145292088569554470556753778970771709282025692633118490080237806220223462151811791658676149447174666347228580516088932522786576718678078461251301221376533596035722329750651915758149611913698756680445503899742526556625092557361774600460019022112077312563214513326933089227123988949392549580220451922741954937683499465381358381175373145189940359158331462535475690906008168275091075106936206042486369182365348268054447333514647019539071143793364199669732211325230199644633347509585776914552232356409258021828867245422779177754523796039208126391248103759434083207230566726226060432544024105766157126898731062613262668888334835037206688248643701464255619004749010636035277955874784228267406431007109242766085724698782232402958640804598019340005709507613571168664807327336479690795082168388256409601382256499319485942128105645975804860733682432545374447883532607064035065503519612783022195304159685782227955916778042481414846422704883879449573366787998444282780117793905495013183649760781252675242231421350391024145472600946892700439849683430821709716703109055933634524935632513461202473360076968590143173142152550157084141184249537174862112518915767111783342217771558823475058940257650597170837642564257476125093472466418960678317914179400215708349261836740612363237224863051849343544266643884924580428951720596769233487033112568401409030012527016906034065367883853450064379125362751410666807937354732860786692233523928650851085913281001113433135760120232345894199114142261480467204100629036412822036574792608592163275814298734638869789584282530523310643288660267166324030146219443200323675957670497834706555658069345691584413887518802887507098512062623581343099872294341026115494157968629406591331709090957274381690059679281798774980422172558939814386769325862204758944304808148232295755450476956223822330974162216714862015862177522945931821585899006088258153351173854046475212534608266914061564671365038336865417307997200920685704075830447282702962251853791659725597040042781443137665415976316773470496684911775166933040080618532695553270637636424341660246005774652398593085230897340722360076698617266761962815952622059036208983505245403474836511962770270906344184333109167692940885392056994210841287924323470451036753776931020122305850961839901372036379948481964550240490123184883150244673518155873818730462897931102111987973873705225005529053073208631921946379806157918570046907335359838431407041560125806814550025142809812529538380159166933052955890652587538770999039689238582046036598294237425382350961990308112597454151563473760097857415253135386167463383368410936280938340363182906862100227989253711668668380671834081795128647568378338118337951580096387855631881626744669921397571221865527732870997654773221609157352310187344306603388113140434280105095253139893514723318938423003003636434471483503210590591130818004545059321575709749440270078558135051136999567569913818096548839342009181836658331785635820811371324835186360257127652060232371098170672625295427736473688826526839963323950889665188813647012575767700411383782233643906203283894508858639795958276246749664145590273668794148030870818030274560659717207973260749020807169810729685280644611942785026075427218010892014116928398831749503157459459814575368262165271727454133127904791611831920974173805258561445829293579187641951096642875175960559512174908519604501023656316079911589202807413350006018375659778265076774752282796664613714941197218865880093249833988074763162561300675552234753128560401854225876154879862905171850057007368401048391607790634380336781206685442512131759412605861247247156334803229643631750749335667724865779926995451622735225511908208131633481855397967949904278593672688533559798779192292853884908073999559245471525465941830006423353419236774690425717698224488889343460910335113409326997771411828052151421421691412664583265323048808957298392659974888322797867218960216840666703864597879527055756545560692820956553501341171756633945500093329867396269132912952437004016261811149205279338361679538954674578855621361750676182510586122799563207127235555956564954751626643231425785620375254541839232390296191973308818110702006360663783875367636039501020204759392933827506602873182857279380768296967789127975201365840547379525764060269934365693880028882039962135154357673134431084508334792511349365905992112624110767416669029067764449107414414872086333605614783464574163167033406670493710249529549644436341468664775607941377297198707947419163371129610304910652746582027111152138629670106853019137510739965804568829733516350343207922609757729907354342650519652611674309082871552362408544112524960054193172681881806781701456901105874586383711798821339885217361944708911530244304690710542940290913825800730005320120248347785641282864514550513769664695993893944828763740948365166295961678353109077117596508823810972020794605074128990632903841090119431356594430618634391609871929522389420840114762910406000424311671327828357486275633697076082070943787494537245163647213100198223760058851000662155167408846480357995174318699087612194359419481408697184825429812144976010739859477669224171629565556395474209103867932407861758380786157438320262218115327566134356327540370174292168179671137637128131948092864095343787967064017454076930038238222475114663350270844482403655704698066374926612046547180753811989382937108579021308346540861829836515161179538655142937592000008235888723271530922696600410171259899037769440880766644898589107836037407443961557773348711908058357667775451320119819249543007275808478598350292110136449493883011841719846645467895249840911106981043111423114040956473083681442217405484048222158023090475287652468021793924517040503286328291322868204413323766058296942448460787755062391626316006192378701110202023702178295557461865745537580525986314378895426119365348344618268507863133806002280145853990666823165731903171000626300865220706646617306805578441697979356311120226699569735286433642637714303275455026579972883656419742660575990130228960661047002263448208768506641892043525367608082823456505712625369023603575046301122204720054292601913398794220382141270379306171436985823376552858841792331411293571458955715174748183919682870032040190417131168656039743035900396091426308609110470704865832767824153092573641710919663768187531624801853410392762896172295192122365163893635218469786524931886813028014800639978731704013353711135584965062081607476714979672256569351194682641275046083213632538236941371679880260442968328895241832275910476649770609554302261958228484284908040588708140705473391373014901247082284264317089293702267109676131825853383426917210446292428585015467707850114912691326900034687092962961497899016881449931551376167086498050913750290485490535755448500557471356151791825657141797097817601742891819570053413181777236236465255525026527945593286715933003291772746649824712657965213193663863668285823970742872895689955488210491666982459824942718485845065123945416383090759661442837450735500216199607569237302397720198670624547196783562029427912110040651156996960403872189209639447463816205080397381720053546334162198706200873928319602227919506636076490175499438722053367625932335220911494931641230013194790833106939455218287821919277220840083028692732455718871301229477396490962655072197493967929980182890117154797703917019451953167618286716827108408491087059451880028091151815852184122516996221960444230050866370028680969932289773457981559094543231177703165913707201056863057389496868322292157631647927450060590356300683998001703478156140385575962575158005794568473832720443539215251677810677750068978819308856837772111804485069506679976467105217240255348343123611486581811222163716380360395692515247144836476720054603213718477940720614878026084119263140990890423956279741303962835984728632057484679300949033494968505252760085926384539567594326372569077923527266789361506069186587935075994841880064507485176865383064644117171688602050758819024659419114409144198294167296467033577663022817140637278415237011013648391915520671241199754105483102494925441036100815004167755085131479440890331198181829306424240484323254609533904776435960514387034242513178301411766514146959539925474939232646433161119284176874687644366434022555431472512143118252557893795009228456851110555362468429558469487684232564900778301278326884638292551088960812107572449759573173347439295603042329042842654264551925605731676098284432297245280453488471694541852689976077803717243103935911390951727194623404430036643975945356354380035806025025810230097211963041973133785551098405695737099048687279106616461554206228469220059095119216473781402807868954453966748668251989736625660563983426047276142913311569886126116317706655269675207900567095269155468703714735697345995655781248663317680720106454121126062871513653387990127757328631546347240097566621609188638577968507861942994470723192473862618031159393073694029146876541579327289802309955830864555564574286341936833130343145818186365775329218498761450597293972501136248394180562271695955539506388656460148271423235577209160738545562261759582254078448602634906543575908005906338668509588220614167341735253729186754831462877120302325703871777124488624775827649293361440405552511071069154922931228132813764499540297883857762133265227276752536717249796210473007696163060254374376873706205473873302664040052564999110471513054751822689230736427389666231061832457751894158304519816403156058482435515985337700197004430848400554149603353762022891383385561275232853096842850229614294564064741192742001442513256817245362218925303057473489336747742511947100013476267633740679592717636449215312195331641007554945202088251827642565783295837291842964717800706893005132888709310630565174586965272984017403213237208331716999932754112867495872614969505405332947306755546171771100853988740183114807301123195190106336595136290360726458266835646525885805640299214516891896715883161333884242848210860098023032548015787463181332242561206005900242093477614242794668491181004522499612487408582309267609920316538796975599535419927394452897387349242865793560159987134637751488523931316408516674704256613946550959403437892317060270378566195369991855270466170850369540724082296469193999110988530286208374154051629257049667052514355595050724222882837288783851496322274070975169448216477142107666745449970024488393002968455946159556101401019634336155688997519460023025815426222720664070366353155607249183619524738002556464792383911409820795018585827626021706308797896840498012164368758698387736631539257105270301576283590345571814332572847968899435347614789584727625382681822069041738463597012583133237929710840998185175928061237821919962042620855966640065918665541974685584638440016045676751588586697818206112528407615254251294763970645365032002990460204224558108222182080343458697994392854411482533837101203395164427197139416368668850271835204642713589766931735640524212211856629687900539115109158440963348967486726692256900171062694473199235329305883359471710771640691679006713808368912843851374931212355363837651764247284121193159270213424750666398050051596800299255620883529782013312625463092285691718912019521501265398595087900367966475578178865842293026454890800661970803040309063444738672601848939164148926188792848196899012005632362789540958611444977255577940352936817113055149905499421579032907875539906971340011503390137189840513161972941547447434024156413697059242529995885692507171683973530365756341714592078531673207501848647863314600732383213473227711319859904868447493880904145898311107073477844076767915782839008311842467088448024968983944707742072054675167975767257735446637645663100407896076900212983028744597323225233590158500378178437099929147462194926891372690873425495609054181302746885667654757913067918079940244743722561668672780343853599619584459278200672000208966022247703263023891916291649603448711321301129193099524888396879708084975507106351399049698605566412614067136886226171596596877820088396623186390350443704301925681258544702431669685601493304470873904302079842843755509598206076051067653715935549481601940109981114570766940694703031166464651485241975771727216365762004467907773446045825466407758650946137162107381675115636858347982905044500662900269125954110505785433017439460451068829977623862350948124762671499604652095335246478579163754663933104721457056867822346427197654356495274315391806609404993832123708820698331962378615492994755335989572236276801692368098948467738130889508044411794476854955945093710380286306145151421573813238617019875824815876569580347239489281462505526387007563303768422154835625573517708634728902433673561538126189463765621962475396947230845883526246811244061790991524780422770011532657663846494805294707231260297202401114849837297302220157822107015330643103500771118200108604671576423988976825252591074501163817094955554876281012891621216911919716885729038303433559958766080375071365366612367732334379975896975291003647367002787512552625115112417458287574318506710132289782451015125277576048497745973900896342147897218560589151130155009480395165495296644032661430465922358713905527103306306560422250511925398312256336732104830654606247208669433312035628051274450321689571479255786378690432202625478157924036151514581007299260212123929244799809573658155820912032827040851607429383639656125200135154815819720822262856000643079028705010683369932541217074931987526579532418123796851227530504268356237673722569992371646340285261314121908601978054005937571759551583808170198633683848898502213496414651684999396372782664988736721369834853450808038262196983453736860822384044267843280353139430871328718478185651985062415743520879461958601487922934517782490053505456833114152155689573001178159246101997646752305975864564673678889118329696427055015559489793891812361032062247784750076267547371913151466152749681067323315819676530060195999536443309869211856368629798630955293819618244646693386646956002058243620827651404739515993407704099186945190694856505363817421387872654099118365015196041327328568636558834060585181851401017938489552689311854451250601467551009454805414616130110884793839125970991137886815304697565622936068041884891196330625071707094561438345496025657464894766948806921610628906685404293595645298359415478224898539710924781612976239950484751829063855197445050027518087282912410570282208920951866136302872222652514948279966621073323390502239655131142137390929909295433763767087250462789758382407704726777849235025766952047854531340426330417093259259073432494348648155249639429387598003177139427851600752098209950756872207697854196665315486600427339604217085452488004537355662951070595036096366997859106948713353319344644349850549638893405490350537869015038051256384394802846468895247183591572376356297188235054115100559802285230234357502726789386107285844581929429732287583919138593319304657805043977410717554696413199756124592120443697398649222485445265926505196922495799839891517975368465949922774364531423795373958603928729939717164747516161683586133312713026919809227309550269603259566548909397562674882688077211012239209639496185532133742324014997803288882697844870064761547044727231585985867995311334599077839106385110285555924462861986788428315254584401913123469659803006849385267407948215262344824250865617391013610598461864009310766347965955316462380763238071494918368720531774432851582077918535934770760208141004901519574912178321794741281807287132199074242079946797306267985424073128851348935153467940445204064229876812802238319183440859156400256958183609693212450992707528608552261483101846278389426144153896176560837785343850379302488802055886771945518240680742331776958929435472072829172891106073380191912206196832037017600127738683784380862392702087993127394506639618711403444275355769770863717467484423313585040859430069410605577170088774467057326497062844888981742412554655010466451296012070217314869077618188927058802644701950006053827581574251840626333790338393811334640489911654700080262810608295974177309979543841404247093986835953671562859461283102032231923182934865927455628025057873012721018157980943803033882256935219928402377178535816871484857510503732084980164650723972468204009068041698792909780113037416335722241233178071183869733576482923001658331291185522606066322664059991840036038332755637409001390005503181189646557680837388907688591654833685430709902877316819367285990949880507510957666571942271668788541473164936585066911338836910629572218422401636055897051223707209696737108262941459775597842376375757020159858990056497331245281588114963624106321522489612236034441989299459560320185813167669274982341511984214323788395649368981304248492274963960416780189156081391202024815231915044432073901676729400116705222979067820030358815637681117251124114085418725610303028683513199651727512251824932446421988163774315539308609778366395128773213896419638423493925579595844737728869297791759785059065778416480075641842956256658970770165024314840338014808170425525206812732807297098030278845247494594391015471974620319311416382528331054568512855238237659453156330416436592796487422167930095748674098138251725618022972286843346414693903498114760629395778573010783655927692071260438385028834726457332217870265069618061705198977910018941168114693772548608533739572263929008107005715755772684971766492696464131790495184742304645669135556323996264197662108394067304242634175454623408910972741169614149767154712134721883169199999442280179040291277703330050708773270068420931092130974552751499350448185512615071142720169616333429192139436964353725544047821613186226702008986512607937276144314502237819030564162895933357244190938784519698071143579149761952904055544585153390972994997794400882760872020370692325726570269307247258411876259384192315772194530247916094376192120754089076402425770996483824509287812720267265278602048383294755343532305467227748795815396298805534153356211079474727999951354807216011160285491511719878098035455260253205977566406166138043869350274622122476609145275656938434902521910741677808797429357418481043537379972596414474333988136273910637552858969652977388399455867988488542329029437049599963124487726393476785883937340742927741526861063691388365288723771471962272983322076085501731376127823221673984026998788407085894217345185310611391263129480434096077583180475450402454856972265093097496948351132528007887813644103996713503178575171287646583279529234592474545965952408544247593408646603904949830576970735393976700108655656468600453908651558589579422803198719966649056134389850272558732448560448023016260837086589522359594383100723906232852997321368984340551367332730636296715179032525275692801542973674983417822858969622212006269802818574645027231215827619088784361337483260487809611888089449513044400634771168790402552239936902272265079608493361589316624208258521735459593298355056882855150003944790896683440276233460269074335488369250901381504805857712660365914175622791139750449926549685598679067860550943211580293956798637012324471988332178085136442630463799509851083852907095256625958911613813415687850036873220283454568209870234009152019803907251047618467953226712324530615624554987016231617152362883301467948055184466028315150394588328023387108425890882528141748703866774907555572690628681306382545550063467586367269988196179076683711506753817697277812387702075445387554670662236078014577522476321998609057599625052976312429902486224678359374967959991855904283379393540504887626941382498354350863655226907030506033454461595610167607816343643158288383697819459019866195486583722206854898539845432360723350692315881622672476206694138196879439487768903601750069274174766003101027607613936369033341728553007534371058215329008236161211110706109793300663751717087560702603003227884886787994419647172912431824483755245587122787280939706560306611252869845804986611356290712235533881440216736153863700870864649357329787958666547740609457584384155680845142482711616328410138678252584962337384604291255418891049123546730995321479565056332763216792188951241380564042240407420587128166956988181172471521215030995376658177519327317221396167549284452483648593005769737890902748590109798642253198914883153422945529754200834363318645996239818830313870419337847618816343408907486398571282449251033337521405359907010590327807689860027116222943418817914040135080296437192015384221368814724877761610810524116662845098308597031551605605660665128355171498276119311732471200095715919490591292226711301042921301982786378432351352793346763693680106926969266402504772534533624959730424714428270845087044495205692683925421461767774070170323215839228920358883607029661597109282665357270731916209092272578686738234799865044678138857130956650293159099337499852482187313162025069339540278824371246565249820578962469580939318710914146644339700829478090811237773244576052368773755039181482730998744647110684987789453073594135814495743121276531881315614938325276324355583839572728019017357121830438333642028046827049747609434943975236210858098729275935611320763729391479987212885290449064691415169941856718750322825168993720747311315154912565002696815274659183026498360877005581022848940461618532472112544927065676172074353025255963201075084766506978615277961249174613662547126120958814660107982711597680965985699558260102773914975743778845124144012591297544550011229016579780047826500682455276133555193865492809357619290440672608035334479794613749527283625504132960487444685987726930520416967387783238630891801212396201251981830928441719741368934603993395429760785925712550011146839634483811763898218628034380671824972915546756155293031458476562413055639593305377377873469268540763201383921196332996902422257600449777072366449533348902445742552727324276981959754883387749044110489700724618559227438720329701426217502816495208371444094327251948610148131296222617712590971481718945620261003947260457967350188801678897097196896948397703770982753404313902950741720597557133476251760165734258019550036968187769720913588388461279954434407861688947005913411752143383635260785670999760545569353347741077748501931538671261168554240740886126308306923745684366138574705624765664116647633941289308951224706600026404903536328678220976297397067591776373982586746828779506262474049230889922164415383584824289863584844584267220437758146503403415680102260754434411441603558595871246407164780936482349857224362669096447937141867076327248991422906069528570145621210613353333939764106933082292491474532138681539314056571774457894887118988059436880801854025419545627183607744916397685848374159040813680851691959262476997190713846998417738622097959796053290543537776256687933955538139194822224850738301927843699442535952676869480268477635574146766985856692360380070524250017274793842431400091969461567307364977866889337609245437873732875049802351068682523060027439298004850660284293740471454729629466086814262143513243343271045326546406431415065294300173762265024951715267463205508163816763116653023070719160972975225167455096764961312119914685306751955602306345789754530112611165346758502844075507260051158521252036783024134326007663044413911729640646946957065249534333004752067964881846457609713910249767142037046505718125226868129059822318345185352635331342077748992089675266043208581322575713126039565855509303057956246729835176639370534368222449409211009677949789099446346024943306912981930795861915929372437580028190906000174188166416769208128708475317143455375802458132538386868479925985541593616517292675026080639817777349351090166321106472418415199575262647502506154252578709515234748707155362404808464768283380652788161599515745898909663512037317797396073206718828249589786715061086866220959193277052697404311906115435365895486706985040385655418374825440605496202911682757604004016242495132959995782945810698924838667674719935059749466825521948536688999558928421031495258248375800352620011620311096992597169704752788168446872124743232121303932969700061308192847017455696145378418310838146225352073022787694304612016875881592506655274489368554977457462531424682298405815151017799999158209399756751068750671876274567613722238237980228748142359122960342801160548831160415057407462078118338230685719289920677824806522406072602097633410423923324320959803569050843677331235178453697898294600880830970412272567216869313158717411860678221844773176262272961313794176571983232870019372270041188742646721208140065713303634844215977614271788358451687923055413208746099033092014336768225732407657362778052553195664529427680924958576773101320438516702208720422031366048751470934037711338010783084030735056878047857250852508771506580390644629982652603411187492963038555768877694145676973370804011996731075368752099817199419869253427284560301520336041529240628240281052576828727018132679063657696017420157677330945104662062501117501024139576733340685181001165632409916866097554861158999921377865620225538179258939064507617843053290105182080898899148006280801222956840970305874337537967277985256387770151361716433852787344874613463741834621709302628947855138084669919961758576481262266854502033075942783538118331532951027436389226316449421223467814088271626944517823460159683710217865219092696473595442838508152335140150316869972486583919582832233895290373593486585790655109928193421923536599784209362790719381817164030385199578792033980320785043418922699016651963784141036548154395343196667199273962377961096899758978115402075027028394740694061540242530984956860028555313954281607358725222048555093273463024603584741323471636509169957507198106652750820812536400360309001518084244067223297661109377423189415107050142476423947984651857080946478330904204856550404447714363355265936962009308177221170310417017559610788802769244788553480928782010213526492390445014823771078893168305066060066878290423899976651302375991187591744228647615485404042378905895808734738161435356768579236691135081160275125066290510892330620368751619249198377657777867570507060505423132023398026828400007562784894071120439432274545182452035503205491950719320174496223367821703489072881789534170227267170849210699527366318155887173755044799999408111736689806859451234471789840073218028767470984742801006008321910816231724471950391207109467485204553286300398792451647419986804725392676124370722858248338149202148195297804625529624116082396754645943693027480023385188154441788074714383096894221381269640346269412385526262198624367624053022347061677725556823496796215384680004165592068748300688963449509353250261450325220439348440430862883278062797569172926964176593191202620540890573706965073806729494598370598534884730260935851676145414401625792587448420579976143243493171609516042079622003444552034528993860388847162291277505987977474544126352871794285213237905111105038789461296018820879260612998252545424425588316743394506824442484020293172004959246660593830368256595423511087632790230283841077091136144145562471299021756592699667836223525172083364434929256065924678150154458910713471746364586159237814473633340773510707274028389049817411995838646992182058865129374247134938780207414325848397440589334843222558029443983390403012031887230675323751209697479710744753324642041539965444998459945897988933540166678379381132261919463548343326100575685041355247853422997412816601744064685647384332050995833020327634418744242783976530631106004300012829408464207582106393192370898538073204528566826848008047515271332632299408303831993982096110906261419338847498038065339450542884042125696274901851606804282089219496021637496576475452743956762106096867603060359225276974629986467031386998348663772717662748968385273149202037426640767725677411851775229946942603724928233599044173842150158327842338808480946767046089815367383789902209051615903497298479133414909479457291951466476398919876406053888391647277220031761912545811207336551444320512064811270988674562376258152656057118446239228258252127511720877539759851497096774967682645039407176983678038922104499985051481774214179051476433270756674239161137633619264119766829608602166474542341046063225621395386563544653885479667278026881897282003356641385183038858284082415049270179276926605523665636184851606121551258706287877723942639192888431468141584205948474216634967250176517627558850820700339490107728213829566015898330159726282388061858928677693984558954224810908444381383059259068319100296293820563113656577549739689410584679349353144607591682946907077743253639051649952572354755206240977601570457000850859109863788619918885660342644412037767027000277924907547924840921946860470529790822260412829322786445388818947194686992813530153570263269450060131298958798941335285591227329109549779828447113197817538706503936024010910287596584378189994572831606109724829626096771200269707879774246994049717916767094029382808393279701011121025776659184693171660197422494906305580863060847597777035924706653173789125114754187673273637188851485285827655140600504877737820612045919040527671550792951970527582063589725687851092306791766490259625484553219095609323783028619949937257856706056756967625702587611647470235920987134636977001125562577381732118433255023578246112521211386768049009695561225108968055478101201811098845864648622250400640042334667743251376539518464353501427491268540955798075511182907175552136069881038547282026107182779207884160964479443932344323569317414807542644300195590476697693517926970989532786477091250902388897629775107742514318462317413372942914612324558943980200631068242581937223447725134084620425739148356285448168519972304147092087494460952175506486263703385584677659203830250259728378483730154931668609431014221479482559471203417371594944502624564565003124249557140515737000513310363346470651854876505898619950661461482915641149203029822359373641847553569581292044004475897899018943502756035830754380125542095376779444855068159996927971249113856233244830850139739989199022680150117380790446169888342764863356965387264721182394442730395759051414103328534208692092492829450464570798541373094116382712563406285745283755680617197381308498841162590390252804833231124799887353875670641065320221996430288750138745819104147402256521758449499374892906980616301963731304797946201023394555790111096821060869467960366155284400232428773204846755732817499672989564011814822207788223491788361407686453766878031970552852742146168017402760879012010305433093996748042303505129710475699761981043044422563277296132243760256454566273614920119641101317456870237667248331621119767783671508738605871578630453488157119054467660678219373960962234419661720770748817563817728575513843172653556368630260657960078118302894174174108611528050627918264187135509174534881241148717840299224014052781934030377189709161632552604693037796826255467131471132624621915903511500983597988927728194901429829287006582470386777012107657312289051951383493925165311164731702102539889219155675378381278338400617007542270302219012655122051635232137961759207761265706709028295526422549635094796843875469750490939477348949546990944633173214289431524584502734449727311946642350046616961534491107001611749073211090206471499760661693111376058826517883884643406484952008079227928038027033588001855152513600087643300425741277654612569553934320360546729586518047394448601310142381297552838821764456786771788457315109599821208119990885867411121928832252284771913189745417775008416633461701644070641080104592544541603335698196157253373894323162418264926942586868261187370731365364761975233083085202774905475944522841897731525453350209426896834969839665976135658717174755922253690843072911178267236791712226813112302645857435737976555549769626129643804464521323161174327030984121081161494451605440706228892542982902291090403334331039203408708805359646839187613354242439558616500055155033852933195951847121935561588879411724877183880898369098712636924432916804067709083189778559325223946469001335056983750645289065601787233846137672654862403239054225144486750249521644744439687521676535810497040232991729047625791865759312558293765220123511046140840023587768415671726782120640838216026530704205191306749034625317779951881714535880998121341491771123170837528075435452535689020327951562743608844425996633665975831662986957735449416152122797532625220276373715169673976849742358234664070013824304465527431347210921768839685892277465574886617039285316812873042537224971371109706271263921290362693407787094718693589660289800306588556808680075248396518660259323721538195345040181282118831438047559403203670564770204502444331872009118922534425998458134854354636446672223811390686999560547702661560758519371784614769068831624803140196325221340813984655569484577353513173965617622789801876695826853015795705026553666789436819365570668473271537563979519526371537173740703918342645231674130580746814930206873105841576357661461373998370882998749643526445305275761303140738498166685373163267680514874822689389446740076496887182302443480603010060714414804142865441388341715328534540066845515750405883789816419986339445275594690519314599934545895806918350369442394020782247931518971354598414002592297498190145119584457356090530438387972505428448242263544664512622087628779866804427722740238642256002734528091409872127255409833574668498706184191003489595049058890967051769695345564972442179321882140004581569493026551841458821956556090050435012111714845934504332199032274644587442755404413408240385345728270441888411729995725450432628937141653972275603208168919626695934350547276467273104418115767754976129826808717544500588391641828277520906506470780707549699183263128783298936492049898242957400631605489025798386406514330720087862876811960296887004312455847539949569607329792294162585508162196603988964594258806687727426545248962926374517074615660097902019918988776091092965049423416643484777938459624872934654305053184517283877589353820635290745186813876436169082904581702700437832058145421950750106481220853229186344813953015494648743523809633768894411509770718189138131169840542698027078629562566736043454644281654625954738112545570610911791107364844808468088576220860114736447903790510788890395605620332562315576632051526261375991018701885851214771443887525702974494043027924506205331953494725484263041970274109286614640487781011009391849329845736895809612525501332102818541346609058073309350605551101321988507503731970951157755423852120955910936111835233818790547512681821853519641233734934322775382467016169137592627781731356060193168884613703858277315203842595816890421998063281201013257994166659748270372642728046025816984929100277417951553951738391111413120944282806089550524536318104479119574992629596027759666217052686267187716387521036006190282017460124401565213032098854656390868751374653433416812632401912176934777305253098222721715717601973172941997571916267312745921080837823555186331158013318916837184231692618558163297552197436716346833224810477660725604549430014382944674399555955879768546560537300194861863079558213673379804108055998490761125056603756226288101524905894965705721384012281892572696171601926657323767200111432012167320313944732593544570342949701585377818636146027676362181980363746182820118866559736624897289849846053712964996346746429064773464837287025038035605499270834435951429123199356898641832579492131195574823882023965297645537289966149669998595405012497579986344407752725454982685729861103202641265947788996276423279452500311523647824421992730828585309155146019714377873574162054503680506819301749899355170783222483107261196621496512390220819804843319879928565230430831465102551892584244278884206851607865889065654406527569015005166549743591330815001786465979097816170173930741177226661355744229998963785363355587657727781017452411381087568887303765283107234141781309888843516445137187671432878012947643345647900614026653445316388182359971189527326046803776275846111148829290064343957873072671527191144832551467064497231315338135754622423096316872092985183196700420354190501422175986845060212058712050371024352335929483513394635362548451860677525737228709359165396570272813990301018334165621697716955436849129278050125158062385958392018913302696172658248045226688224358108413174674069107989688775980514969054521605799875981063326697395407701783227721211785263881755994821407902021523385063388167922563596956066966113458726887020917872478323546042000682176411581004519915551786897977727613027092251538993362524471784860075548128265196129104356317527248751045592463146147089899028530840142556007770166982415863558353570010918255579847042363557286231355105471607670063186719369059569717401595460308609623942052012324748050811281702777328836044861157216124482442835585224303467069497646303731533371555482019917979514133112215888503937865349641349469045442427677593258996275324636050950779861224416621669190088291599451452656375911502692413202804878158775522782658732521709745182341251241909523427220874243770990027418339782381689083180114808162240027680208076569404509421188807740139918821287332356952662390205181282165613593098636889217966780798493043060487513908655363301576450361999492891007723341541713698481147315813725415952494433267228779796586465579192339247486849430460266510872553449280018508924698508436622562184876009435409349330386338807278049247040770932862544759763671055056794404869436660716172874534970507363485727682726570736587022306389811776687039034613972025963068878828866007466803286186975830309392295582863499458346469270243377544537430087056254784266208144248913376722316837118878549503274574961868933505950689915707702228109405710757096749842164947842269374653594978382277545982584929425269664422138813210048799857121138323490187645846067253146721578204867412535539419935647671664879161955213314040316008680242078709995248010782319792886331176804727908717050519362588682951109995633373818375606601549252722773970285329023748099085515895089793668704249807230716278815604833842143184213227440709790690538994790174750988829892451284919425999035314083717607674149201242090325522975826254920107827888096973826739443120832010517539138520847168826264377419386277453156606028326812995848450395642506312472389579916619542596887161444331127059317536203632943009330156948037096655883476674837193733002531617017028424760502941875862822339695402179732393062373554804648843423348880552672305748726234493397882059688307887290963239547536462514625234732617595737699443487684115591816877460861037212096524486084676414948884393015676910126811596518796362707834394029488914787046124049338426485056921642425724523435126655874588592575683990949809512783559509248898770714335994834704986651896753847168117529116389886900874982898911924417995888110600970794286025496616884767218671039683542619409238588390657263178857726800290398399990423970706233512238252114391924656483906552917903891024590629910874944933754702200569226622931965408191255509262832431918621498844932173900041155734785280610857585237442723979966234551839436245414756429266162983850514341673271510994860939610857121000268286961275194230459448632433538982536337257504366185767289052482306077492774574567664123838062236954306041701910976906203696207921737310955375625982762010514449171188678497828683418154176283024680637636755764535788653862562757154887843117555472943045273637799376596272961043697339549157645915007358990383320825998328312870912508277444054590606611280341764704307357869566649887641658958127007284640854176306084739238952741885288655691896774619911872917685446670390022490729555809845691491772152143262579440337507553311014492018629859013199202114059168066803167399501516321888169367221161545233145179347859208892420882918528960569396131972493700817376173796060193752153460970802370893008620826690864536002777032591507771509899100108833890496188683184536724885271376809997177759578619118553649982600387046100106197695499007154636274698523983766447633703657622814480138259430868454458090333842092753726269397809731862541211735453715619483113789198460830095293678466228082553420609850369512141651712708173603989833794821499515344837159124381803606506769835752035704729169863580379052137127234642937067709094562950967223386867286822505571822688604677205402264356096321187638274060031948695414281577562164375244573581094449878650324986669374604718711673475517686561470267608044172065219310173943794246597888019844964818181181407771956915800452080287913382829101170824427811792657987821155921399393501810618827565297905533822873521963704370128827536384616556833052471595533962235629649506609150390591748750118277040626261372954668123046046586038798310190283354476654228799739139801434597940766454620267687603836146134333354995430510332891650920702944304834359172395346867033203199492678665492226036586073459962955208778546272035907103665577445754391898511009083042070326601777751750352631718580801237297879154323978704632143943044885406840052521296116333041026335873038917334160108220161806301776989193108334554421143313324877885279243545911383759317372208602245839758275526653214201714920157519428366401216337108394406185480370440977457034886821646387009917320961921783217290026047089797777727371280019649600006452944186109253113184159701357915058195740937133372288864639006773976945887293545133512238542061256008687035375041581973984017079211786483956948443774348962690694881633999746528397515581541859454535889818252807898030387849211900756540086841089345519662458244986074875272019134993566445707300860848758542234739049415829590577331888453370916079134531843342984184854870968598745735269117781694844690507503684992238410889997739540023314497372282362826586358550884305048908576030639625940656904020133411052340289495331736752720034666660278697477758618311048276115064223528631880571645897534150889540308186073991542571314103316942733957446856660074811087285961137264186221170503176736285600215679508444249939355662053056808775144005235428015399641301108478566382847353395756008858866303328330831823394188820539567689899559418698005299814876397082661789529361399187083227192011993775320618793897037836537006943503398798444238869495316289500763643393186221015240599942221781438829251405789119393038429662814413508579422671772650537050412463778058331148654692389951820645299604190654964116810712961049778596020873976070195272313583012045951271096692188122443436685414548542334604163012518153507401007717116875301647420820309323341863278510070887000937966052683577021863821893029770098482723255261145446360433725726608480014593694947395520512518077423354965062157972194738956755829882328787604301623022511820707348049623743606965734694506634483882043180941390454756050330738487137054318974556053403112611485403522553978013304704471601699041654930279582586906775943985780712993318550886462123189199926721910033079386086030873397329495367355670031177724720681615638718100828852930270620959326017511315489990134921635415517095026124745459135870525697536044458264502479182690000989496095357225411176070900285580040287229149320188001267776166657332826863451441951870001910589081581148225503722211921904481297292475604753797754854193470473502194572035951023221745842849246396750352768753641602016851629369410821976065231604200166880553941909907598324687316336509439831245786374960801162833294102448597405550201571391787534891264034828593116857262599444234554818021783908658852754175769251601437589764634502544566645906335529026407213164217347365743100067221104759230843324532876663121390655720290839967335777359742755851372389653606367919635128119423800105034287306420680749109541911002103981148150135743938972698650068705948636257248746526487997508807118380298894026865305832124184311602540973338432464809963866228467517465020414345747447328794209655611976577104428571723416054375060403852085453632479225790113118329834396212795918089215379266773796503340391774209140064306190507800309197366963628126845165710471638950221362640302746791115669559811514855133085032569322160128046615218861856615284383949588316188621808068320968401134738519377163348823620904291329217375439543964700982749112060953278792471575792627662743855095704132043691502299644037775287637505663815072684570866346044587064909610980324222005878914494280156747388192790151193809763136781239268536530579558620220994736014050115085998881602639186645368107553321167594162438816758402364245921760663463726396807392854293228708008940659445671744423145390252293392958823794200611543469403291665476363470396279576486511491251536011666331957356175211463596578074776516374036309483543586363326818019725632784603251545482045711450335347144454788741166670277282097826165762881019706920623229613350589480036812004021610402083980133352300490496507859031628111459366634885011254361202061514661503980373476657062310104365422455287120968552630758367286849445241024554832677692592344599847571861720291180364700640470869541162115560796410351691616333187590484020311399532150734468094517374059223866618592571303542990830405968945199656864162949505289037345363281997689507831318718513511423590358244725917520967972947373542488716562556335576164584067798927948429344177680385341451874068481470804248276657956595849234725392565296785622276509705358400410628456075807097235248936617954345240914687585629676135101105359707888693204912264324857636293777108242036080737432265114910070704809646455620275211964116186421893726396681969244711229838564594538156776488405484510596749647437741518838925639328138581327302933491651034726541787978018898507304908572688891055776318740029375423723823884977165572664391865102381268677680554661115947774608979328442449467472439026739496849964401900110023510043540992617919565792301737785763183036863168384742992919580323109539200618766984546552875267036041125210221002063079536493797994435599315769615975482308663616843997090925917108978708471914274088482571985263688235223113356446752803381465691646120872657500681192479184775174138665137968857319900433071230566884520778287816609524308075258761774527477093596494933551898942392589753054320632021284182261414273747787238651979942720470725816637390920771730044910131366800339161843544933538472805919218498060884055595471360562751985587299025513734091093044533919702226134303118559303635796385614260314761689548829931890233235908385083762348440333103708659295319032804598201574838576741610683951638422299697314710172810585197654419699535101997230856748584457357544957213246586820386613001931148326373962811264379562657026227661874462279866992033256778950210433679211323816712740332831794006334710085204867239527365392334327904299500330767636896716372053963956043418166004840340542338283480573266476308180396606756846178537106551687895686423138700538875286833949397172351763066780506828609582248431121600232844589833223082522688212883787339414422814128203588580764738137174598212887941458432219602666408843239610071385464714992316562608168219336338116595429197153467262249089978388638548447570540499502400787615530668702226163019163847780555396361581165582297569581892856820127305302086998709982186147107919328294951943401371469694622245256409834197309219070371751505076989930083969102710883444605552237712653704128478206656961791828845028736017823140463697291129259357612795432246466344475430897814654089114901409586031945477681283547720462481541335143466719819422970839436893843195644631626349358036953080576605230663129841908196598891665522101811277777023558939394576122486063270503499061456848204122973767459664869822646629609573777895585998658276567799815763936277678155831609813599028372309128963521547877651190189828122477728222094708150308024618928394598387539249864981859068019240508380230643608216922773307875344153425973848723450184558283318529754677858519888948796350934804486126565722270201320829737291177396797634588862913828637876644617215990097835503251515700563318844761562536330283359389031557176393288799453386051281842895381321872658766650417456526252967917661890654749219501172701530324524555477235906356425509291942801423565926036203213028700195042873863811378838106826661895550384260881908328773274978265402690301225166844399010248724026324944915196613474870112128721836242599028412728009798054703415715262838357613573564116233879970809327811459069347339293877691781276273171926116127200398907552391115389233668253983560946827408528287317279513263793179966314293901196147328858394413834753537501467092725105379512994070884825319869594680306100734337512296639011409107784656883887389934605022069104059457346898724464467177776919101250311902714965712845492902027368598339412097191777599957421784833879065682704816550083037721634639437973628036433904621300764603003314925768415462534404499579200691806715761194265202153666850031540507362943483724031144685558624992456855224794993639186540395595142737641163640690695280765789508041508544165824127456743834407835264697515439012546245141494557101979974782208633831299607992786081339054047414118547419166415756770078867767987827591950395796290774609267112796638260256551549987916633450861797273510637688614017615021146618160837159406832511455100262796630167739665627736584522890881884646230325232239786596556530468929406764423755769428330630106433126676009373113918547565956474285385364755706023846397752522510014897947719034055690209362287476854020236587039710026871755199864951090686991869370230703173987243475495809878426964280512481686144439833922908251091808901525437111775018135315189528609755262069073171226265163122022515617647470030328595977150945608727674415020092777456090248251553854732769234084311048268927259209529156287870199907490053415502370880283435871985525888144370426916754904087993052408673719202164908838528435840950928162844364542596135351312352277487112653240933689508288148214908910644455010842497082490042474578919496837367448558435696703825018688638595848363648110139507560784463386338917387790521791431787356898560003313550724089742147845341290708742885202915364586130210244145783637915931437001779401159161741871523540203947629429920769519619156736134933337363251841198014047139269873589890183639654861244041812075471052297473186335962998066710522574531143282047118445070759219052302477363908325488273748394097598867665697017319635849928202117471903286611011896633446333111646397061394754116668944345623686195312144741347210739102874279723689474866402972012787399621956546187456061798505897598339662691462058985550351646753759472824692134675515237578202442432905930250528486213175252638251016814590624942882600078044473246671331558333082829964994836906312948061211825970638628042839853815617243511318547971960168296087838738218575255405033617570886826573396590173761513316922913122164518570042885513844844912550124878040084697151539817504345421159710808356759791949224581783182285447760994077262706007287805771096580655683934950382096508798550259392703998749279262496683951260000719896803604475190290782541138348791434557143045363815844629760802008177622372022200396116523293370417766236246204347960369519274694858394183419047511686840335556491000992879437982532996122002292839137391126528257633755071680250474224821133193698949087367179257604618135787604067061083593084353585048911191525549861666651711628200178637097965175612727615753486186480959082346864705737738235579480974103272370365177214080951353113144934870540392364831827588180504255552766632875195343982184545460438140629311970420269579101957770518211533543953934119089527410001469007653183104299268850342756633627576661437127334950744636609631189404436759139944054895594044131962134211024674584477500187615495264235117901798042269808082264806922939828684416683273861631830941997657619702939060079017377158671946064250698817018296352294223023524722302928889628481518578002844395727325135842479104262812425916332179347403145574142936000748031600579328962097369900199687700109207372238863896154796663775906794146122393180647073356341427464106347733333237832152969691675437471434145739083239543213718893718872073065154628694738375217364350863943395291430491964026541625980550710995534561129285792673156981581107985160339296489163026973346386838779856167959314624639878301556557635736518548716589918403487530165971345975197934807473969237762972382382481932082213225123816846226465949942677896316224093622757675507907724566898803744103779316859578190546140750476024209017993755817581183098963019435264195886321755433094683313350383259614028516514953504420321150429519900535942992229280685069834750870008923269811412266993591127779470314842061574376459256776903755849223868890815310930276380202803479508832938956140777960608442584162187514746057633701280431510208274642505622577177453292299964954815871438151915171052475692389165395477080646434164115656578433214598196918414562974726213340939310926838416398439854628846331230174901854650891699465106996192550475713020968670333829436450550024157333383734235837471214536889981277903336321861620290355075997209607596083677585262016623192302716718077459643340960077182213697953368861907627561038349593399724099702921763301031684056796376672165796709485011958137108293943835818436789652664974156683143233281804548689335874470862163424855565522774983933768741947396974432849020095162009867273070947802914837527890070182180076397384032579449410389996659814474711238847499745562119432798488835239166381623460641691924967977181738508467033130646346261960600736626098394317192420501552917532851531586300435365739493550117347738102473015325352695674539485718441342613844439681237984545619802881788163630630022162865024941409884663882999231025517006514323852541721419208662817365280101150123053172142324028572975111449820701603842826900815603076198268599343059187547081539917354525666919229785272294687638846881890603905094391158106235434882950937936719436464031071646834093660306071450313425649846946491062334160393300929068488735129415891641537564112995906546032698344748167881273339200699616345824142574526394940313201436109483195647424203460397239646268180421337667475800135970575228979489270045996204847369234318315624636285099355441503549079337871611340473535311841967496679852872408561344269648939700924963790754864006477518814015823896026060631005670533674722246753274778938533871299052785581967350071444863375878801361170781634736566439322234578504333588993749906859813194874612092539517561907442977904282804733990079705581343031439012343968060031764407597219000327624276096689726063924275794909207671180848388953324471149907421635876886099754299336378030081274808198778385792834822730691981187393260735465173550483905471175947593451518743475147706596333825672096798982121019677452693026962247624568787771029486729242110815177658066477884054875198052992782207331459632203745626293903063910429723401375376904963977800302422771539756406396843507113642947860110562281106171114781202193956466969304165022976866346580972169291997061028578258098250016331647580298102459019892407624044432035560930823051508923325033725808309547545123204285392840982453370602341791832214770722205746154164279131670635506086624675108762843166241110520194765166091089069057941333799374698949700850469370528144220560033295124058802140610677532217066848693309861147006428630124827540709461945026527648715677282355827899340935172176618467701862624394881519246101197380593630106849409342177331358380705030192735703331649745637907042935200203297326009427623878347276683605796613484438698672125113450245047094541138384014857125731160450762012684027748201666769670562731624298379195323930100215711385698167480392400435182539699736123784891851164709023566038223588774801620862411521333424753712666106091346965043940657077591624351073532717140782176501387992518283350187564710023925003279291822798275385057104621152090122090683736734192455575576309047140838110238943927577163895126955647133994672199838853602984840653830023936972495510993699413875711057184192225665641384952034623704285597863503456749357934632552686258574013131770352486099664033370749099270900852055189129008958390299408710394299897764655643489718898024560898172587528836467354722639637133398762045699189159571561716271926376163135844041869118316740348058057227744855629815631941111407639820767590978913988443624353819310568681652045983500355692736067316288449018366243646411298051245435534915996644342711242101113982337064859095343431650101576842926472143030662633359984160237734175153362204572382218874607023551282364139804553626719226186547533022899985316375374099644937926387349561529134939881440564454233262844950672803705304576409503455348501073908394418800599199330064750563111790586218136651169658333685875754475068063592919523878461028836798600094428428315567554126143518446139870540393650406581636348252921514440058424809096418523526830614857872022139696489079722578658322340581499556409337182268502967943733817628378477785568646199379515428505876546337322898878429668651879850069185210777403687603658652444167403906806067784636935874464185816620460275798979261931963906059242854520839097260840145858413050931549841072294054863221756122984109109633694384346289467682044658777989574858039366302381202366631094151832310334299729391504038466535031736331538133760538877210729060137706667621115605717337489911231248102202506604989097635329211001979360203233535335874139358527382435092753026732329497905642145419365904127604921082008795441744332155324805452744452513983475622526815023118910098164184974277255376806877335249654359127993631510295500883669839282720873300851739425094276953792599738817943101796846833573872622084853359113952077190847948314238345049633667191441439129320197237190117641935468342627059463492741512950119963069441141061611596496237435780652862822016597834064971342029767408141388465032484124741654688860901342974512334030990022595759685928825063204460230517007303642115965295549199216360415367893818049183188669979642207825670423593234523096072360345639893611355911925755484868134969291145376058312218709544260702069816693984327252643098793532996682006930770302436517890551208598262935303706957846593133721910245453706267195958709206243150814419846806438347938923253507433994951845379346098400545376118720853666121601359230350009006773878136921612865120441288974129967334322545221869095311282576939608924648487170840730122756589025834618254891007778715167343948032524530251646939373492662714981116809579125388831399685951547314739039483185436836445716924242853095588082674048199071931146497497674923371318730309895807991143082450489935631226795078398834806172644066061731930657862395068118351401380998630309021571601333464443807416358815862485780373392977678580258685312507934524271116800861721598098629568177936984036577357776636024610445777783826552368471960531007835764324491380154979192380697577146237575531308858506430625479867225974688797505800407556869439577225918073902450907890693143440680244534249151883881593037091829637859884504786369533715005491027242837528996822522891192659714176767673219025169796376427816948987310226647704176167371572813332356565425495727441266971487958213301289929047859755373274201394289515994247990455130541471830192210188200314239737139019554884618835465689890170103829749730873120191476532182815322458617008345083402855176285004707546970035426600664102595174756673908756275497509063674128975135875003625230324744673047776904642561236241705485888039952495467433809123726624271091861441764286544320400987593969145554437311465897196170384230785589857164700313802068134060220314558192666599660657582867483643603436622694260236725394051036485277433018318518533893910688272055040628273370917562382388563290460717418767376856969992569331743112900768158554999479364499039449290197498689077962076106996103930415397915666132584557778641487880668065722949826844356933228836920976035708723880070319297367074264609884324171750264795920295198134022895885103943083199606048894641849781924335716292720199310773573125812348998481338841657772059495517545479915046843887323760738415222535921802636220926289588636432900984533631194001743826855766311540956429285531303047969731262612186491767547293240976756091463151395233729422941727493134532886064567122320670347265924973482107314189419165705856131340692739346362643151611536362837578734991674859655294585708587405327886034228401360564028434187610766608113487562113097952658926823005718228379648195704986506998207395904973246474896363618540330469940146556928186277713980485797249899487917247075737444390755895689818456673381051540646871864936386098541389795534267026353991514736386445917079543350895783884481657246064962187958373011403179848000619450180313754122625554822118628267735396351665700611094111276136122900963438931281016158507844402222149815770371710762870749055634451269586009882144787123633451430471683500674235789308914297741612335427067937163264749941363937620624644902235026184397560914880538582261582941884918158082373759476774106715864191746538546385625930099050435548643386464529024212168775608088998654068784251913496075936599717228633190975184984204693656706547757609836230224151475246300594761572213037363370237552586506884870883369165143286436337303011254321156130484174473069841220622260225562117562540074068233901462680648107733222862648099695913655812413782035655488336803986268745486507272777078129644244772651359362566018209997111200369601071716648524597746445875950360615255832065467922093607843303301307144854865546267856970347588440368369651665469367455857508849360856256090936796632811476056778189687037685488198861147306990857255903637054279027275786192871863679767676420377895372113673739500771294175837617183598102908251263540497300744946908940290757118989529144134087832680767525927615907508550413616514430154741333889716854565392227789580040217609615507703580196371832552897946708251506413937563987852683548521429713949069006710069406318594752413381343305688044121197952588693882460548070007614483408373813027820608684948160709515443943216360071402371434690610862388864085593917945840616022478391692712983710506982541162748142314130334938355226352313844975962101666043733746398379360508101790786034699072840486733741383812829317122986441371883345344746015432468241583697556064597036554739182070005272361494058815458179612754052419389692147310147959833784298701570430866924838860281203990293248423264019761152647160403678208722681158523655445817704700976478633879582766792505960073197986059143882559712850087251352618127308068281554677624248015003998108388753490597475738937516957984613821126840401626579555659065314406395159855959140475431556014082405567806782010429174753130045022212351077155023225248457776380811112987666316545838412549482891987247210196712858629321908709503174153925056240798093733531388002614928346487199520173970787664622268623719597443225722300677695797004269670177871357428705276503011107645466261165141555353814710498725922699334571575490023870987229635071425994834653993422526822455444686149615203643024782855593281194275358110704257985672464128205860177712211797968986272229000445217930935891001402548807889267233097278217807387835168091575514407348051969908402780058878972648743341465020550145041774594084311906305867927653379526143715317051505299608943692588941644283425440320744269717203646641505659941462834716943033107417771870160738146430995670407426520582158094739909291456810016386700820605912040536166038358655196660669089931102825535292009960180228903153670034541047360327591144842238264479746988137920587252771604671702396595195623167077758411337692292448319142514645063286795150388420444240029483357863020890570117034173673814934638266858931577314435620578778194815304081609254110119889812477650269980327238817267928951360876182158694537901851101216254359672905838333451110537514274288303845187176267854201941710708579034311476820289115299530482352510590870145231948553852741662561519549893059322996457547571502957512503913427517295273154208092969701929073963726064042365489195902227986483899327179903950113324209669895360578869666777804796838207398147655559998298068977085650263912309879967670997445163805166063213571132332273238445390774558911390561599735282742595181254491881638077023424091143581324818307596269355340163658540679608809940098230860150141113420216205240839264284202544556956400857043236118045475900026411038313458726066403258290641946289346537513129539581439526664184929493034449767555603988681264958362745977845202170217893516295823828241117478694442482805473854573208461365544301829158060611008459400793747024994499486012118255622415482654258690638993841765118096923283508125538285343486435840050380387271910098072468903818710591389213462481068931223626601928909163142763286389119363006090579347316220939379210027269022608927616726200212365049708993856550575467986745660758621877166990194756475491078793264803058424751399677369605762478729933503124641155352918658511276430538318826322964965094682111747256052266048314707806744412379682340506112591872615840906577001523894122379109991766235068657303941779589919199016520718200243307779110052560947917980401055896852236945697148994374119690645577478892966622603977142851729121973543340911131652140495695360112085752086899057511209934356601011264445333359314691327532077297603981578591346462311866759278739813743731301105064286201693032560050056897844832670869668739753475583590937191604305624052396115038534121365148389675235756641066240903005068042348718377528573433482262365486045301889518970044247740937455814107476196446731839187838696771950617246564329203520680318043541826405057280647054483582430558721844045009073029253163733094253284622313163586807792300582813308951922647619818531679096360490846482371138245879920901619969339667610005861130163477516466756465936677051619083906228923976869868692054762533297065216344358537601438010190886347278176278713935970064941340993874517972681044698331794353164147257710126811862618962700181983890490540570230736360609279324503634010641304324972049957534416708611805657911679133668387266451836423891864821164973510204205551892627334182594645749389925009768428808876602346781814656857726822016068574886793879614038292370266153053667483375301068729752352465623527522320701183948784070591224215386201179634555212650394270769640576200899370184540692255852401969934918045939160679969508858928755081064894916221415832972543779365175915783638205694090719850676464266864332252280653078653604137337277004603495845090196209095586066033491507121929844269995250119017235962366449381654482920939875857738249287411088962195793815291787015434712696377307090307475363909144077857922663855123661458964519439170359991915045455414158963832640737907409869900924599052533951524143268989501280384930991866697374821750102475987862506350250642113306424893587780823282124669108440647828937546081829716705672226966609904164739224709009754303268996516618481869841611195813664072073315696595843187342196696554839578893274079693770825323093215674126854066159569404927719640448420084578710493162796918794822248873680794270141503389225731886000649248678562632640918388153275529965151041982813894522136899468983464709302512057070056753829121644130550116793878914404294523835554314945858946745303266375231089824861456979206188368279311575565988512615128059400173784402586035628000645057651397282577477493390967255995965855985762357355508598705773378028251536476967721503358659890792850268431996478497508542381539448159322001795952345830732999822714841012310062605526006494439340582145562222627955216164375321477023410406656073393848717399994483195214399264490673925229871578193411291012102813650837205906596595943984257897651525821720137616987058845523817624344801641802187236487019187289198272065378128092119272462587587885805822539932147865397619878292320024198645388813433107271742222824611120903327850477321552828253805959778965511357597993359021952911319231315549652522313871752321546756025160218995760693668116864629944570741511620930355271877802812161261458178969946839896934294597601584885127578096990011869990655776613961191712768524582080628032736081660352918382717228018282990576990633340367709466645633105889442105339946243184339599628132882478823202788559447178724576062583500134244649056908241228401127476649748828970778376599441670893037156251805664197300492631447352356724733606106027262929632154184180444226767738509973680532688948826831663062654085704500169699570583715564394463146628840386564151328697172879063557232020585416602179041925455312540755050832761105793259341100645824417711593215952815512974381404348522748813621485267175333143917177410429891450630561638079357769257417511297239175042762796066038093814147933971733832932090640450992161263342044378204043715022721328608424452283401437666907773131162401417860392896991356298553406441928411830049217462998191488010681719745910096240141800258863314561478878567186056755414424184488688073217344965717522974071412867762494256479504874812320370751403646511812323328525980196755436280421037340706572141706631130260391138177577756692458749717362681517191161831165204077314852313222188055700636394385237943765441281195600514051605797427686450996618652980588463672505087286935131708721049164370190404999246688385277200006176587892073870824785368730306055369161013224387280697030025405753908710216086218964977610085620446608434264740388921026059035116728648060421395872024295675408257241378489883988257737139289949695935786311773994417481358169012438353153759304885209292001782356444642915956538575005284829719632600132438110632300455542723223344427390157044976115116131053210020535511640325648557026765265466761529799367767452033663898753387026486018510827323753703075516844237480799471355478215869090455130393696743232209249470056432487389957838641596318243384156414504165910152100778710327232562965628305725529560678757907774670462037623700836617334533234862050408205062791723786910795629059695609232461439510012257653464358615920508300318548608672331312431934198998543020850757707163085553493537097491261910270479359647079418117124919684353856635432680998323162434340100850419788386949329117219082991091888840183900477660658321479372456649437475953808287378485675341404892706585724791078850897898819439557286961497161811083127692736059892877041885838172029686679470800297352645537177783767127504521430017518517773326532631989543769769334197151317822747690459574062762591486521964628597777181759512394837023701327621734298702953883777318650395434163875076338234524022118997571232687607724308878527169178552694830477990018252900611696926006106367865660684319133045459854840173153333234712915101338513386674144202323204277414376182000700727428526554426410178479719259370059790249488563329118177620081745178645444991288779588695956477691733500459412027839436499031058710812356960620661978604498494234779118514001937245089944907653936980102837379643003433353457596079752764777737691656262162897523752135826250060725585564382565600607033914777260220426560651078534442986682525568464062000887989725092596115162654037107356826735688317390808250671707835988001723180452243755342273494140047432325778295025285668049434846968021542524638123871185937765353410868784224819356891363271783391363661263308021762491914939413575639984940334467322527535897259074333705303853619860867477386655439546717403162706458176370307815055422489145109167504177075327819595502449648218402231919651558257543376997499434499770534337402804322188083935526918316016625831846983938028672415275629950663394495750276516632276746168629238108830561909731953593111836878951444871482610298026148522262074404010769436524489334014382488427447041254405506398100710348907838485520010603883029122870006007781294105458324270445765612461165157216739752801955950462463246151061236262134424922950555142052005598617731003778970264762476845244291963584532826187771164311313099851653762624303499482329774457634378890916071877382810221318328049079397373132932798698831392792681957815844435518783023521441967234508713722212648376255985554073804774682553717000676843473126056426701946924879218026780234176130490225580353922926504694639229579411042634036343693198551802993001541056637109764014557855859580516782694823674390735098258679452089197991362225721097753330076715147326272335855489121890732911550542004903831326859001264114734611630997492413497708155352746607425833943134040594056603456668139651041956968476189341190089476384027042061817469578355756156268358240750295248638840684344357821884731439011181832041702411463716383952277829924580380366571087655152184835415282404247924005762599038635233521132283930298897249360165939280833600304650435344025634637296006947759459651044367759030530684387093375562116152644235018770618517510517309829609222602331675885212309750367779334145157026532467398815197339553458960541447094396037526090111025245215003072713734008741218246000282598087925830837067637953341820578975995489907566107093599423299222628348358624008422492767081140111894262490155363622905881279300453919567716958642665763782749068851363702624493282507022209153315437341987591307165863842812146434731023911695605251052944405597467170218860095539039877532449556655944511972261991081795382129912313587439437097273105050045446810828717619918529129740319694605976769561832561406424084590841173186303725416368172437443439044158908995682064977761793239379739565798670887222252561442626432079847917798195256739257175449027902881898424502988704391148743787822204553371095957802214201693128676133120703304550281505504139028966667016902600089364223911866923460482042853094814348232417073793306386538074970206217991590169777043398522023141364962798494779674575174797992288348796503963555371887857768471551390397058975148545561675838690293697781980625601275577221825931399841962810118669109983505195729197057148531151871731020346261884049289207054215665838549844669917699786237238131474586480202477459892667714547523399617827448239542666855890789212326696470110738683217147297898374982407469437829144851339331780677105282865513757204310012917491036044213507464034757100303523452541925226349619589315650298001701299867988844874385499286246855127502625694270438289893906650607455488249624881114266714087994797782555513928400385239035466359341678459355344485683963150246645994083500283419899081698500833766537239163696619974610310882076333286992659955630196585602531867643906362482559341431091468845587068026592665559127131023476638431006036896194553988583946369925996079897919773561875289268209873016355442228523803682451235525152413319978863024781226167970140155921053502887650308895001357931645078961739466959451521152619992599806989769537855785261915590917558015729121217151280756293492524349449050410582113981276341345592033937309453374340181092842227545324923402178725230220921156325860777873287221267417787450864860290771096253537327398005822836210770873911135608724692421694728850509582096882329615545292347500751192325072908498082407489521648018551756533161017005562856147293727476147370783291803052646930621467847792847979599604727838020453783120328329825292011428708412064431425185956255891385221536451026517868768291041426789192142809842536292113406747375655951465301990045703624189407491592734344095745472016113313681515413803668867362172642907416143746075989159532971984939460358211595101783139617374523860564331176372611307441340032571598352969494865077499595831008071059984526259496075053570137169948309283413986696497573991476796101406469292161342942911596754499962435894781330340533545454434099007008493681639298710117222905697182238642753939466595277868777678415976377930774613674228197523526053248682445415258476665571978232879311936502977669088461585091982248857409970669927277171280991089387481946030194573978547698710562766722746905380410047017052932857169779725121291637371380475177388050309737347015791632876727356904218905463703640016272666768182941609946914355994649308939664225468135417637573856678969794256993450801680423805958376608220268075596968111657474488649288423003159638537861451263729978148943490497732412192178199234802222093056921985563724075839017400515503195697845849902293312864472987548977010447597752369626936337755973483053693657430256610485616397430746430486123146436135851837840431313062456122069385675966143932117671581062725886640548693980925210544983244531843803783946166643698976894158143927899686452008698248980697797907602469939165471052760933733617531962808405307098603660292346357086893735690172541167915166759296588665295148167585744989413710638382020600979868693931245980714313953373113025332324241658589668384251244151074397096544969791648070397159827551903453492303957453935846829845072745987005637339067625861321678178259215937718153780127368276325227504447113895099089135371526213788092014035505480284057323275259694397871953878633234285902549544084258140531390210707671134150914345218842122011131730001632252256026869939876983320934271554789483066313332224927868990077456751751531615051956859048576212241256567431362059582812467733290741738192477321584715771622265351046483707435155814780817300935140436307422673738950128737101466001156108919544260108965957401635627887443311016266221202040593348327667697648580730449386868165743247554559827058432754739518360354201670991371150416221570876968240319060196184781817867466557039520104226944389661023536854276645749175105043596401753065632325814646027044111567212649102988688026856052769314409708302338670740794530204525676091707485590918548885050121418497590786079353967301655892274189051785661589318488311592277757635873239734266547232000698039875969020507016857621634811354704871181896268330443964940292206411098365763203494841867609123990400781134541878861875880734322164546502013326105695686795377622859757365310522355232706271833907450140531351175676916195191515479554131402943293139956849008365574025161303380243030916935900155323102956890491848680587780834270204012093793044292820813122070429148767479726559442572358330907118954657081466370464534499378882371607291071239354587121314974656629019312276713771467829804250917575290334104364762374735823643283887850055396041357701157251893142886252163535630822239896453758262087440982377262552577074418224957418396320796153084814964711536680941040310907792060393508521511018175764807812299079309676193561270560461305612309756081208988753869241316898420018643145027596182224787036157773560191059668063730880627876195031095156728921620942099580147904676886850878143736897552942127172279105358758606577030471914570975504922817209054075069866891681982108171802166698343848749868976697469389216105255021848560314149008592103569724656253868419358579060377257921967623224401784913640833379032253220363092874277816941021489813895504861998255481447652054754770950599576486335143379831725839571391318171919495232912274404094845975866543728821766990493714719130600918298106674348711582521209002513391656701448334806045300731296787082445304545981524151943140936037048852465005770347172506974108975095376882929755191729362529996711461958954232397266178170586241491912083902706385721855542296160691589710478792321511102879513425441225380973788869626838778921320595069224806304212523435661315465121526502438146763364885958223675931136585673844367343979096073418934515671138465025960998053180808115688326695615551793852017701916250675215036151695343038068050294032612790689239724037466497778307340325750816956229169687631825693373077497979582964622122973444361497733683021599376540893353754563512218394903317592116197110103008957450100460832479051590573771606563501854102075600338790439796106766260489055609875348733860142920109535472682396784885838385334162086525431417284070620641175757639214199475663760548991305703242692358493028290612524126102408968801601107365049043139201872704747921089907206908892908986354215307357241712394363474066046248800860556645339551567124646949921654790420185740818297318407030235914507479410228120530204350538399104188101255935163289295939583082444386487510149483836938165394294994414738628712917840085804858055310069420839612990637631411199218334998425562841034289340436981639342728982173845848258696354216090597072325881918013845368038793316526225383510008304492159998166081645269301859434603892716576460842636298343424431581261124721480346811699548373361494567821198845608584188440217381671343778515125389226499292959583674290998339915265815412710327238346354635943199112017326086141568744140936484494126375218325622653157893871240196503167309567384057275794271704469292455578026148617765448134441476337008922522528016115743855933089319092610545519119339266253484230070035378403363376932322726086077627275774132463924698990239097330542807234417867768480341086653526296869584979186259028374973893534247095254572037508634644016945476411208375771331496617439847465222859728910367278748312213927697865257531385995147970070587260947414281862194551824322953147349611514762330966582684787061498398271808334792087504678937046720005411599154842375140959775145810969951354648870696849050650261143947906773900216707473856019496444936434618526759195010889754754738236542112535378609439667491798797296393745022788270087423549220191659256038556344015092804350808248731437610561567725241575286819446050854614825038746455485190397080448848388904393307548921552463665722616519390496600367046588593277166476332205101473731449186279079555322087462158104305913720745595651908813933574679949559701756939722882852604735492850617005399206483706810591434580343949017720118463872635600613653001774566870613728581149339249941115184224787233870888490055423280950962982610837639014765094979726181489132334894087680924160968315867634016023038628539930386669321093409755438007361425449243082878799761079180789725456633155492250294084922439540456111069896195965092351634294156780631224879000421325681098052264169784536313484923417767325628767158892272528978216771942622815720614797168851003385254886434984471399056134138060906684196680919779428841163174454515791896627152425138398296919189931151883478061656052909301866827383365450398333907120156046766182642154007159136756386119108473641458527545731500747684871262310419546459671493121408725858159726122026772009333857908599657623555858228355778852950791696095557977106419815000074801277567331938363067420276901595295152670147363645917048166940894846318066771906379178766443956453054353440261816459959190914250872278814075195990262482262267778660108160314491398237997478225872936595008755892956819063043678159647282396977860268010052805202814863420084474907188477643976387337710526290529333298217491170491830509562920879937148776439384161062819966319475168058599900002534497357755019672810981500108203511506758221607874182229751151307054585642119840173081602459553483856642412311422083986979439144634520318982555767746090724957246461169705427480535966882446557651849083919486550092121272914701391037865250559699318700799740666820244806802901042742683902758818025352835810105000558922419444271543120325144520701939175528255367653264760080206979372637893605843082898061285394639059948028654378413540345429413231949167211777470275655660655890078566347764215418085084073108748444888434527561007865878950864104732297325097109277689882973186590052385152208772180069414689405284587331096869334162732562274560576332035443113772999160145803330872965158231569598259274040210972413446380587882202047583317695580290135359780482038688493356897386287502997477344950258729219212970825191859746604231280785974450354478105699422101928919503858980600526774771700649765811634545160304436524579064175459788737828855644905359808982767663643949569320540431980011524719208265099996770455174138617030228014040960277173637800059363987206077364772640207595316178182152906754561621186796681791371840062232951405969537844644230046156144659620695831005581811352671063210067164126850738192098855210539254034375731480680251603976908097993097857819320074752051664156788740267620258406213126793652769525851184391068197965287346702310510166882885387887302422737597681205977255643203178369426217453451435314879312353889266426160176192332444637116133272762529880298736913263708275467687532763447047684025734289690183904496351466601349226696582048867196103122151841873924616176284349948639566909900454035725932973099454162116596535270300173644989857604356722019724804269636774339292274115758607838447984900063641824689396009140889487440408526172088167041370631323606321517013903587217095070926523595222011509535614841980220250260510898956718042666422929291868773954239058584413748471149128217519077387664914341194290362793322787498852400087370609484507317817400762090942427192791410148342664596586411516641955652900376884766530947815040264635209190725641134249322459414986315159885987428852355186738037039958554975443979099895030545533398215514528765310819518494791227534659711245173770093073334761453151310046186218622149680852838747520308494954735390593392711616121369819953449061375475027336958758508399046198274415235574387610066620375365165564279459535595839992227151871145165402228450503158492037072808719217210146110232933286642072441751658663730697868247319795422029743834047178426338410574543675160359819229729221917997873518526191290599655363638939056162510502641101815932991965027666631519030795229842711280175116858954593549029207273933403463259888025027121615471288427993350924748635403109428513142022314602551816376663069791317669005598101859668564890968932305343027410002206399667910634784014579718901687647510534694439890024911918942931996567341884696615015218767568368731670131215369003521889347988047112469832242342202064846114456357562807921320335482721561202298641949508233175826609149251968857614215748788625814695785844937119099207511289613733657322812449714107087140037117878584413564181063031964091367947258240424647082147168623225392439516576647031162238289016730625808165456253843400942040178892471084538585294728930876889763234903233094829551498204818709525923474570691346955371446370029881753432222470963105935454919550064902384516378853052822360940116422547654320382064142463036661454972653667492611256601472916251894752517655638575318959505767123293311750159589892502392979388907438306986913713603019531886379221750377977839480789496308536093598541116441099445856093960594211709077822717042330051450261991668665529529512557479555795595475948002741926947840400186820810961307673992160455236315894800778712978662033765479316264507793495429343035203588351864210884941148719746967380774723816859037423591483760875958793001945628956704691391825830543777507155178432039499102090057213775295176595351125981675008168065164947808232566387434079864369554305457843713545796794031763034753761387430267683039528207340596581186756179524706281493364724224158320793897136580455131862586293679264475026565327054702190915264946768980444506392901898454053306107843798812481772528422909295893333878510042884560063231939022269932479947219194850558777033810636721101176453628977132012289780738332505473503808727614411292407769271840665550734827436228611363736677496825518857605299726396473989741665124481489975176854626791895586815112977031045659967153748661637165490632047371263892107048720715264222860968681798426670930449921136646287953492806776682706848285053601798337826505251362070454087565568591106887277147087211775347078701387209827642367241232053411171169965288065947745050979154632974256252840348428537286419045058146272724483318521198060934396808814619796779874378576235317519267724523686483133086102605818083325064882536374796505909885658873364681000671335171551056017638853228536142080609526028123909417415198977645661651367680811999219895479992263800695915443365945916008279351744159687532903424747373280782954083900037584071022938523089543843028981045346732078911483007282916699814583510125051640510017027709735988479962905615258561558730763218688599644772192065514111156873523518117875358527662225915039508595860724105741465048386070166504902990974057960332742304540083074379813070118745453203189562801680565633618669323520745062708841636903177883996433917788936470687649609242095761335325805129414206657283104946240939324319038067782625965453739432035997360108722584653229502613464114481538943863305809164700971425539287560680211116552894144384535058640992134656577879765582199865196145159742832362760123378499684854064499670469247069162593690343676926873804877805315348281794516348411656233296145519628401473892204591106148340129222010471838750187258780180298492838831073013194280032369675769932314087217681677377659394728904354478744064051079707566659880754219762764082882901734087308074831980106379045384384494553099415446477008473003030673827698443793368884338247971391139464487944509186030572289021502767905364572776431574940354670027919062589287725710557693750531007452499612743424567942038175685374089499028493707734171308578714813127116514941369521562074836654678742332559851581582802520941495469894658887244965689954872696050696810798503179442734998608265071209179416599653253086031508591662872700064155384241597070907867621593691625583491115530573917353694956754094526792754745193248700799412104047374294969552556273855689806190247528557622214935031726291098556449505598033232060602382866261502904549486539452903942414224464361645625438052776347938617508245427908497215926354632587687493543235647877570735752230312849147112795612989972025942058577101349734551763791870789060956428456608784946598876164455895218244480333708001125067068057846248464973503335421283516464614824570640542846699332988075828626953058355619054491915736175007597576560992012436776561803880577706735829097236184033218308290034492305219329089109458549069374962606639920254424035640850201684077851421073900443191135229154296916813286484927150518652529030805867701441942618971965933035599242078805272430092988649702756131806488166975607540707189239913615322591665552521095217095126452573522485780363743398367783548856982948177300761903125698072499464379033503321080336702857860588090872907086368853020359887344722374532896873703544355267471184882419576333160275652322328852731669259130375549594642927360679367768544915411124088938413141623506596094952778890040527474624489291790327989102492764509657116341572263991902850533181896177627688226977717037249990188213110563998899095336919081211209132055740300739909346573755162825571146825254235620801188953873739905037502627335671595055327643460811899162088303855979219279230180845184481464248351708638443634214213914318731744675799191604843089023479552363401098393523786036448757680724383526627609422045180196655350688152130361988936576487796044398073192993205049098114841963572937743824323829859671702144285511562836005808692210943798846578994771709542537594834198077945051666032800347662704405865428459966646612993415375423442610900375123993042378284914411112164694176536996044967385317387697046292365722043908017219306592044980842187348205113382434720816686686294415338409040023219465495533012609845038778554136152982457130532037368423856679565829767279853352428943517857402143091960325937136728080616517938031050554815297241783488177789189160290071754382426959838785210284240791325415834539140505335442130365412806766876058245255524868557052315439062394955338744908837607492175400779252052008760146870031096628224292199175412393363366774501595460859480458583922541979474344448849501207212438721946874922053116743199522901912093689549055267175130583543534589446507332182427930454835713535376113143187966756841019038144824518948557697646635847215604952376325179724716577832731291132737109534606103150593540775136253505998687816027715998306307238022424482302319633827340470422075504272584552694482890496834530580093089194216041787392129402939332344892166795955863661116276479465685046389049377918063230583034947582009474096531685008193053203479162637678716333487359277783960470007608483735265266696468994557106734855964823597133098497490787480063498261100325260873027815610120881171988060214287669411032019973678645423036981849811443270064165204436952592804848706695231522648397562682469897763221628891630342323470598315758960066830480311350791903229824224711295387331145118370832056267228580970629658430620405224993975196468457663831743676248056785852865326128722868508441882561320406465726013041831056107334107289609763882295216235698431676840555651263414945669734797875453636154916673287131800472002397505661119981377304511688587768892013047331548013350905943303057724321373817591806885369210220022218647461075962404145820226411600716864260879894027962292173074837682983598764203323522296398879967971947726821273322281113525350076758358591105695072489758222063542007052527420706301517988803037752889644307167978545056534049022158842898617251925371425133756362312212867151014598352018697528252063076028076841692376702466953030559898371086443911875264464897157021014076357877335135766012072440681498299864259729662604259261227850260055463420548228719204215479764603888737958785440456301228816954874121722393089310758535438372414123572104829741390665972382313268805218432063329428360093004054573982933399589093912632672317123265527926589225886800744730379213518977470209451308869153192892522597574155331226733970457714183645613343309981112044793269348640973435399919850354596179143924642389427653925184252513529047296406259883650316240714269898751188112640345449027056474955533250129474958234016234532001090415417312350758910814629463345969196265162711717271839612561961523398468055150000668378890076157369061365506680543182040844118152935844566955902181474854107801460666697231101352871148486073698521621306118081195264957918901326743778655278419833607303148522489982522522730719899177715565960581264482057242307845340235700528568315002098264559130425829219108843942450727400105846226133916620095055977470982277359420327425693124111114325659550076307121850598212305571043848328389281554070344946852868224898503197298019819314950120338229713282346544790807766906325175067699946286005191985345949803989299454882813602660525450243797888249797213121357429367087824169492412868104278304463203764092022786607328316981989918092719891956055043163098828312103275884142845891053244631011858556538141732289766597473522878165929814068504748617151091187668813767866778442498205627242798250173466385015434375513412097678539379956793895082742529992127274069170342221422191016925026526503527124478221088545639931690102348975240442494280855579364677851377363978223505077038717627641172644717120195275655191534561626420906219393428595934614897005820534089358139002008943211494784992653416590277198579904078713139545554418145931399987655465591650966272681904552761725643088527274588644356195551039952568902765354296213593415864065394098305370943935564487573583708602707878468885039066505074387790061884117084536003402371312385739527149688251379259737159421397007312165298267774236821505862397064848139123877210471023053846979836022665525114150479121014436649811922140867261163332378318229018157727504064989835388970807094196289440814526764102478190384081094145019845438248126343516728071521945821952399372942154337218032114759018959503073197351806933315854438774185682275153267863132128134493766302236952243279087396218720041346106824730305015301053968971055063799303224468425488519166535534573996986129234643195370098314000520902340696618840595790302532666474410588845248737389626876798011574076585916069603909780686182907259137354723792364176174817925998992684497465542422495575175338235396801409539130256337913333791661231741748894930340566660296196076579354098242785250769632170815651903036149415614922678431503251060746516896901884142884081646998360041013763407352959703271259619525897518426932204261800576532429406385269813824230452692509677637588492234415810572446154830503361938669236299767016193942760267661202864922103309032153548851352334156004013149540245545151734621429461393384075326141944394884721451840749348716896006310167493585049851188074537441672559469963714409774642104572451631851573664130443169843720393902803333451687705350466456621894091156659592816343511486330606036453453118384518909016918275356879857862429504938565493220535661584034780889576929187618664806588697127966103606093949849003756711011015838266332729390533699139465702263001633501703177375243390462090652505505625345212067600406603433443582519078012650932439685765934314073397693346127380885531122680856118435454764927692882469038628424568272289277666526098621745665050312203288308391203718812298488823448963686765317714549741063766644020433289159839762507412685228886554145234103604599431130555751441204970150862149086394059902435717315409662184804958076210530392745489134171237126536006618886302595155678750225509128268148310803003370886270647581813190868410157880373083936947110021874695024382532730356018017693443028415322824655219140332977558823341896581863502233067049979824612785115332397509295874576711211398816751923314231753749779968599184332742503585214159386136346104065827991078209103764598008469309599393568884261195413502290298850991349956920308427834131600691156789860692322966837156066016857845952715492841151579923952724286254536753031979114383184721521443368305433202259461220055175780324967510884265415908085226331419839359204333636656104239354354602092274639856114475252908746306092588333405438007266700241105701517401946995868439275846223352871042313633314123621869682476567035764453823546953709006990258563566260395582727915330627399406208386472607855536479565818984357503068511948946930600798807327152612647805177495421455742310508772846342807819277877554758094936759317356524517909467603482511261410992287370128551739644006805346551236501423435291192654395834296420959937740408955971893669370764184236825603533240363460468872766193793275038403617380427472212863595766214386774004363162504441516878219603923695012785543317485396189545697012483971030126322733239037276269905057865450176668203032198327988982732188432455207598416172258797852554992506285708969652376171973017701586849537845502824884319530235418389322555154284445375671861303388285424590945663448079463330501770180836811331373365264722600516629119085305108313255786567360296407995133017117322285186320652834976155965178416931628382238837966789190962154977814371472750659688042683191316983158707493438449084207357658021147124571439607609618124224387083473986729671479019774060018859789985547937886453717735123993199733632061526851433475557740145420964166732160401830523477269972747601474746437616249147385765610585505359388918890251442395487680953426544961421634509759632841254347028124019995987797636167489898518581277608293027695743487650427398558934938969969710719228509238032891768876301589275673097029058646720394637700814462227990090901300370396918773142650616313900576275646998257911051507950644799677378433473790642899400932823602801670785632403430321843465688444029711427736138424531002174933220250340941408261594454467566392474251919042309138476039197830400429862752940083265786540805606304467734651238439443307326444725032221989527776928807121909052474463351449289713318470472888691552895973173325050548384955196012806235485460969501671204117240378293266748032856183915248122075968674469619646102654123724231828360773580574503905667203077507543009530680524366409404664861057401097213433583833712091304788175991016601224660164303179426190417245128185195598786792300846238308035253254622155771865971671258731135277677037257678894078617963931566322367929880696629645708746493761189129074585248348619123200851504853019236518933539318879968534813450870901514615172484013861734300043724885587174641656520340169039231165620226416635688364806530204225542439560821743654012262562265328392776067424436251546961852322887149268798806704835742520455250660605952749754727100621759731049657281087181859991799716338849201513736547033852156763328416984783605646852523646582025774638528554834693863792006548962435920415379760079026358892262371809872744852539109974900366134308129769375815402299595865542135489022985151280597861463793841580378944194267719525063348303313602741861038991043712976527447682051259332210640910685935257252545154036519759376279895238825228770047833727291035605957828606925263607435535889771323876154190783914446672300476915493702034230567402335011379705265287209101937166590685088641090693688198247965052900612735376482861693640212204355753229016654999444557503922694895749740847230156208132184592609829020849000265873894675104852773256731315024185491345292845911864752492074453378560825040018720537576730209206896247848617808662812720790486011617293239882933119551718206477078444333598307330928074613717442061933666265858629925818090807793588261760951890411293896372143895579184477528080960214335172465353254637737627538409755001702168448704845329113453569914527943582070166489981035429982807369875783040084320688991695245625190662200543926940787045121545484273410262620542488410559841948408626011517602550451412367652503850818714230266685334940488601750405112551686457553399704978995913121055140302461678920817626429542949128760156920261128188486689164948251543765116709677142248577259155170521334938151851138045311892658756617236634979272989005154404557666871499744589686483343034322627097722871609192118439277105172447224316271173441450877262574270600405509838923091971905230565325447884953636967241718086359374953909901882153659693774611477650637594419764309159515071690294453751329274248126839363776922619454452512700502566731987010087029805188766960337701096565354313764797618916617263404339173892158394822065232630734002432120650970579565745495881401423630012321250303730538926763317397186447767658937186257126610995904043339305252174594493737072903970735342821515487063136822349709876990579377192635551227940673537010150548658844384439902514918970031450942956914352752666288384433080972044118528008671124985985020587230080838525458601901773842647282280161684103033273181874271264427953729461153211297870227529502709284849985376747488944054574374572859588497839112198274615207392222881981697823512468412086873121463193073212369882041629618631707345949109523908252515583980054817651521785614361736617348932966668399065513612344374787341147866359912818451902708483156212095857789158772922678746735184162014762772622982657188863313512672675490966994266566541431337530928531461863937363595963844924204179673869258913178729238738693925373496914883869206172287181662831575774370081941459852197206684582172884213685921878111586441765574609027414299373551044811036559727040694983041482190628932222269402315781694264375003047628297315670291619705272944469663179560530394420249121480178742172966297074833013532994035094446669793878847089326231383427218762699417901725967580151520987707140884925612859342085046090668692169248880269740637829838240959934376127437584557019493035595778878492147726226977977928883152516196431703113406482871731729343455803688684586864221113361198540361088379403999073202736147128713498953869329374628371350289346031668522546674600684310257992851452403494292023848564639733905480819171766460567841346970142293546172212320246002382941251534481179817600266576394807368329098858691328260830758654941367883784391350365113677030352753396630910379019134881382668547174221360632301642780636184825195937155129901898445568289713129254555829552754970761366306037015253873415596029848977351481142565018817639730197086855964313871195788140131576908729366919767887767600977643316906955499763331201641973672990835139965337817282589346169659841842181152261700344099062876654434455779682623495242257467065291695504500466529469863252081924883527818566849546839956550633051405097372141070393291522310111651976242788841176776290916460941396934422305747344448629285292543970313837113170050280482208483856734539655748525854715955161334397876789012256992523833064546170706221645886026182347719914092887196523146419432435571104574713999311072067931915371854035152020517280087711712357952125336920290094649618445642258654843146316929426783554660276389243805365787681803696526386801742669624739413307644673539195589659454543395307201157135023434428520094176910972206527001658767840354015637049427166447563364194304517283152067136752443599622181712216823689865867183225366752593237849063840322134083767167892826436972785523952173374135259873309166001255126443675080114300772102628149039879346499806901991551645313278493060752563748551187878779325011409374168696017202862106135492182943442935473235271091624696582743490728412657222759135041329603900679854907433466758037093656024977550274685112872570919642064867988237951855666166149345766205596478198328261222302779322401827531947485329051670174762306377958463910598091551407202762711043061137254520154630641990062382621899712762709290483959866082753857295757524220669483453700517517091655593972594264308306587776339253521688727663247744819193954889380781686733161366353010143856385803294124722174378411387076053284219741529832524463536682730588474579844641763315683255084638053271148226719117642897651653844591715393105574782325868750496263536046338978463381076467646349020694359001241999138765351538562123652658252667247708174915010680262516765065654882106578666421152071768984034727728407982902625698590061095042907356713725010175580696257159422138849439997418261464642451930719279734300144503426435137647251371912021207672064474726887576419618489774496287989835248860908028592792119007345523252642324734423536858322843857554260754573435758696246516379033281285744514914346053634009692243867182748073477091936347953653756891095274854714900890938203988767754084034491192197164344079795603414734543053758312433640043660801701790861129258964473268807927755128793473353834781719561963589674845216433378087873980172632637766201713019566675983932938400771514210008931304983949362646672635290365069861467438988905099645769979691481652400669493766504123714110974139685971567241196688191275413802366940582503751774393675435901973713095748952002141230374383713476685779627203954898342562048043540832066835001904343987933385823498251266279781955304630863879314120493560012535492337190664899209894307455928284387997448226654919418755092437896561675050829681326993407058394984915816136813760553684735671388637025449503963312489167873295233919264186857092436118238485616812431550682372888767708932383795384059895661632216322710508023327798573062999626779771352397189745255291830902950863535448154256396189763481353397638435551377583098185564905800751498245556060233661499582537434508945834981207315726172126076214610875857239446421393885767149009176889615403402578575829347410593595927082067035330423834021405967028230251238374720715437323364721717379133824294061825953988553625512640397953062116430899719629007549333512951034465416535719371632806360384909851058281551806121730667375964916310051717309743283391812661481925631932372017382115473980034658470218121820761695672503208312880401523075987196279994045079464563452091690002236316877674581966045881976809245959011864584202786122631228091070363614567837625790577432070989459271146691604712392382115298861518127413105549956153391106271915265938701252863971378059193621758249198337396481234508144802000145981790235385042396712550532819976580695252859151604279702016015085009815422500309905106226980505036663477617191207180125131118705070964251020347330943600949124173752668177959839089194210486699049986302531184454858959725855054657276617677447835795958889908176159375033375515892105586533907796411505095438195164908535297371069488495312815195649523969906166852367910588778941905197096752255453710262304936812997545092083307679994951893281220860212442442651892655258744141226957410734789922631083806639345972687093348181716479447871273729474083518822831398453604023145283973903275019557262661631134070226651914065241879374815140599511841749742645002432778248004632974588023476302900543775538390389746086842573983861011219201913645925490967534165968664125299306378586685055293819283007948891866472352097682588461821792730462634124938220239162223666322705974825474418462037690264192715322719030797105922893553108982751471411272631525932700634388024010324747139261063723648457922437819807853565187078187727319419724522408703026628290774380841606398998705053547668358388840238462823703495807736553217698400894050896095887521184307325178692311528772392550176150749295249328637521880724428559080394038978279041477967342363510552792266558100991618377034991944348868149376351665173694005166726928724515466441874050517624686576605137431153860693388264784633033748275569485997772146670314051345472294243759152512392333701351428182647507178864419062942802968533759410967557516087827787312171823027479699757943916588687972722036485241128132074963237732808029495189428973250538798676639623000067575267899869569252823959515941384697195517503680139943076065005458190266274439774888968711818293464175821666220348317686009150747172719516942231460177845073061125456145769373499785674281067104923220194192450950351268431947948573429022245394794675087164612952758131008464601676375270191617662487860056900137584834415952519123051917599517754209238399058259913134551259551152422158187478135477896989564161820616327631890519451299245327559207659956133235976997010646379649457663613847145587617924978361240317690591438660773423091807569395880597469019447820939344596611507891212565589387676944416690965530344064600585315580957885027300432290195247982512929177819512246298758007853285434485909022742603213806264468210213299915481185282280985856923284400861997376308366301280822255985819842600918091612853244296121339633153314178563019999170117812803279049320340513756504300492015166588751173537730231478286449265605229424264754585158736218907916939444605901471440983654279617394074754929122312000759448367901380989821667952741825070420224091144582233644938558214278220883964542866151039167414704999954703645239014825374132531563566176618133694922073374997969679506598355695352222335155729915422556689088770422971818161339609924322223449708028015145432751748864111557864024218396795712485315043270181338739127220480184093362468007939614529794204014775299358767495196483931480623559869734030344254141463236387123615960281694526612948203199731556768555650384833271652587853521786171055438142999394869223603155773511227758151913634746156147850906890256283284994109462702593886705190141313340348900233989322327065202020007110517750006728938512687381409024932044892192026041213662685952334406994312111077403590497973378795546837594885426641139831129638359290396192465613320395628516722174443276582291559421594355599499858140650245118717544342212512924237742516311112924869638339326776431587320304723614666148432369012675605777827511222123794029143762976242196781747162029724623678275312819750129377796527442098347575707671722656863866617516099014874199135584433985869853014444180345570391979752410021969050829838858238697976667183834486207859522283802087665918424428260910939479201291904881714772904787199576359999411681011319037184141646413025036316486456768516960862678609477289909258061300597306418218680159115028738365627711649401729414017519339442691702588542718876970940881084608633088149768914992329199543839409556281443961943491028951861967901590152026101943039208549174951970255676812293482593614916126417533549927542669083784780832552072172129290687990372851799997974382791134568656496238841435751691796778466796307736629064300757620164188863597079605574697409789059561101061144682679488490912952908647509879377382965204355942628738179045874593706970163718672430444785042887412854101050324810494461792580329153896865493553663710415191519862875877610316467592815810567872614284608062080209210268075457544365261899221687994400826490472330512903394035684318974029594100948686934952653780944919577272450166170518976509829784960933984172930585779806130160000589505692235577751520617585943155194928636534852531394119104185997023891382567235113878137013396202158430452048746454950237505992314423879797019248666470541172635882255015120642979228335338281666173711908931268768010038330087709176924880698328409413791691470618475547401924026894765322088892565540950977178448111521638581076091685398720252780070884394382502324446862865518209829948792257538684299877288929196262361261875861994043824101689859312805799114497016945533132611776757118520552938685103899877959271308142778613881266543494131424288304834651005110848477295181034866470627452988530208894433372632262822690053819768354711657657558946111600702736499935358938697266896805228700987372212058600995013329824453616760915769277046213286546703677845214641032098298470302311817812825296334396852964653446811689107046545533978767568140417312575699084882422617768595594012041055111503773982210393328504882786639670355497240105292469923144011133621396719604213722916837962110254645431618949985875327747000070376774982573767216858211594155317193357918429605889922317119951290996698571657284820232903898781272247077860639015487811129093817032201595042145415680399101616009783315332354875799978595088498771625255530235985736031894116227269957256448445950256516357423226118744214071029231342319508078553535116443046005645409459655109472843656480840633339296272178732788224248070993593379646208535229396661442501060319252610321351447633486554347305700558750851508332933222155745513120149027486446133562022544235227004350475051348988763160123419507825355380928935559657037435442790311550460116217212949527476183713694327815422764745876615572816511610347198456016563238917722194678268412189691389799034451485312824160906773389488693818370922376465468614747055089646913393696436743807977053956565907614002416938513729199173473239386744842583039145179952682584350345342231476263766152362319348142833312692201996912425439785694933764273467120984752822458279172325875907732813417209589107914526560366724635613548673268463880505098342863495127300685811003093763998249239629965908436969848168605691767826739479732122484789735423850143314788146980428790164759862771694092164639509420627337184686546964777779247371777454051637851086813373057536396401837195727753657692800859394962433058556337693271914765889013171726459981200192980828470637530146477104807946661911949685191308457701665320409183733146962957949353173286148969627325391062517571516460503714169446373799647194130725769262414887209509287081681374398498648658257722155889204724152030367859951843434133371601915243606410093370003073568780036537602548779465443343523032415815571486011380485504578330841565087551103009177627174073982287082910232831517147018725725616195745085675894489799370067490105185060353026514698860619832978928524660622753381812136811892783364323973173103314868116181898250671591102520944492443805315782736385615193822952568616830116227783900777576398796800506745855488968975905671664203160824941840583237990629648413020802345243746622289020628831363737567162417693098779084005192609940374053984590873289951724882033619027149507413425123242380999346390924498119774974964460273621352978853900481015692562179651742760139262509187012675677645820278564636810388094091485584664384449900103457960339005950375242109655309792575332577630047318164415578967519013538174448541478734164102917612440203779683896108554032120202282140793048429713218169026407613062587537990278922273108800081125941722330815497904740843718456160836251938619417275859205372535914575857703596401058519958511792327789170624534040834665071969152942137523176605620880718149501762009993883712851854869551980895685114806819412060619547073736395577876160107932958188433032358207630120319590628925862631341457635986465000921326609220428125388256957427913215345701643779086561515544750502913274925216583289119668062956888133757075499124523423045655728445781364721459935264656506893084348329450347190389299020725833035831242767545940068948978212532131494850306869553620978241566582632820390295757162544063776411938736635485128606384897212688898600196220792518554256405096223622318227158387989297373872077495510038854336177159032115920942831329774585944784459782488852681136005878348850047133622297300192130922671350560242321913525670062975942137260070333461625077093400977127181666211587797880134596985785775698312074463521001155869854622503867311248194604283085949947947034533069368471294370974655014968176940444637408699367626896238690907767791084435399592816853951258231633898551723437430879287295368878562929757047949560228809990837802896651417091796120085797375345146872024204701158215680759931594127668380850874469810490411889268519336453965196758918456910594078288785256284566324847109199406340475824231494468287008427149440606507621488275802421106780315786355273910689123853467339678670110063578897387597160546015308775915649431099567997573454291510656164417126476808959334918904938193600598560130299414381595193938363055283625306483007140674807075086669256167154065194188003965438095838735172631179105410360903865492232228112871489867254453434961747604063812384096850501124942094146831379843368870537535946196819518493054531643102984431558126586239553329842507901260915446467144776339384991087782976285104965623882443682883727014135804927004101260036075732581811655414786608641687406852232219236420675058187191006815009579331438917018784009535257246752175919693855369240396535619235057997392367705510311017417809980690516671823180475404726064353262283144550481522348442383920558463308769156577384943927134554625404627626318416346190078082205281056767629176398912363582128373782899515225737171336926806418255495220891009048761811297015939594312711199399728929934866182372446987093701482884713568099659894701313366945438499758897224135510376907143892136390855526696253027174244074583235850479026333711062050245473686653847950414784170651777287924507508153507208275412608275634104680951140254634118443522987429535693446934211797944946452073396885246783403184216795282304026118569816002189407852426041836652150923524005163766836055099415435267872819851733655834622064922797906956186842282768434813808549360724186961670568006003939729562449781946111449218647489066342957516053238795840147070106835594303543661657943068982572788316901115515998555895273846372613231664950806955028602856081949354125550756024214228044562795407402060048993258954402984058866590575498767530750096616078101702125151065182025095587801227298368411349471754899425988723667152086876796566707052716126325620906491201308169543546330840515542569888808817729828339117771620449269666660709945408193473031996098902094722578144623700780047320946592781950864323874478697738435814935316850519334956353175181949160802059419408635696639102395331199763284755504230265102804169400747075709963893179198040915615070163728364903441347512909236435002284486715978535656799752088898785711085932874105396456751625602632384220879674591273391327565819450095132084753972799728859481358243535507938720068627871564871057139833478848897506825278208363096335102441316741809226633364174240835108724678606698455301400896391007852536014282767803140700232073091534395098443358470183655673060364543356242331977779932456379793448420455021108352490489676863398355723619558321167262288310675622649519652439927376037201085173742242251348381906419766990994378542830891973063292507705147718045020997405625287361192667225272790846746644915741468816816293419986781438452821518612788892380397769802431479883914731133839066216436889290891967876515075135805805989368748340152146028887642323154695775876993198755721038193033309564410822680335698464116317352916031148452644782129391908811478077059964774352634448842170304645637245039644353793133888387856183800448100002233755522781143806362158402913364203378357227235348092164309272953072425731882599793820047117774637303099027425707905460940348872065701697990992134304636705278934022210608370629063821879644676567191892643162313494384378871936595319077394229339125194493833522556720728802527712996835827745862868751336686554373604710894683800610352143210966086680059992111923796911437589149500971615745013596833143108399737212708272783272629584800796076182909509670713809376360922185629131417122869038122178309798689255516713977086276212579275067649766513200606454008978041676505539812020391033877358559617414483748963616915801008362346060249340917801101325066785889253103346864400422861198745389982026482842731487096082219541521876885724312774811129196520959462537964608149202624656381315597000544381767317907587903464441989541238747232833586712634514242223086907309683105502006758325294427387618877954656496903034967947240814011743642206799354421661468609049904504520319263712572026740361595806595522649521974293791410073927029375979887291475781349927717284170872274583229319281943006823754649299577967379298604503580121663221669935565237088304813607004191355025790483019289545899668481988751450588770603216562190892466718792764353082666888511915596226902692950317501941169678777249763921033076343019581900770760112153019179940624372865592280393106328746536397451235485936080851539264732338884900216826979517453831443521026691593675243628480595013665936648400280600952868927777653847424787665715063583935972721094831375078690153219186418462720504081847442647253563958607061285368948552523873988661578240512887820110312336293281338090909699197534044158248370144278255020794474086435319989520694803089692534682911379622786439672143502568766024485922497419766229798072783313886675560933673550199512710125739948079560576641104709107017647789630164575779671151937702424556879914615990471581763660391067813289167684925976752822516947382688716833353384698562957274528698566436163160623755305536709629300063445043421105644261619419689805384400660916326939663272782034491658762736114901983419564845984371019733112790686293918114461606044187256643922435758873049768133149898282765758491368502075141565338316248062946388217054323786174002376076988364978220593156719544480845135391529420822619041121569667742653005505287654533326387230865235730892378421536416792653356174310026978744331527902955139805468749965985449910627573173056631585661150113559905382094470002484012236594030872140881174694401528694270027331396653385860164697283792621668895603716503344523045955004942120179586615798119152963086815109009592261795039234086125838726737028464119140481886211822526753081606995628626942301075715157365281339373839914155044823938438222852456755173922994217158402175232098845536702616672675904611760653344249572249521859281655108095855192081061157179945323990389572790429698986578526445838399697280372046967570199665171240201614143192788667257679761149263195406131442108822011502932242474968106244534071866421210074981111584443947040918660096336267837293043909679391867946763281029098373164462545146015465945153275533595595430417144308467264411083602349431818896818541563190319216540599655549024117305997552366701262120158108759789981886915856431012531465023889436018227532378074534868040414762336994901636274485598243014194455453317494472795485871957100443065261115492336640442087197547072177883569735943420810516460210640819064433985312404041613959424166286317700011684303160046821040916336278756668205319945269019214377038024599323513711485879169159578063060100096905970073143840920101755197989612698204131410073767197427066443012708885504459272840307671189340357086650645557331845972343817561664175875183748981536702887337868573564595746571582130485228964282056384921865941304174221805034754140094644852198891469426625794580304951245707444425181070428928179552529492242264073282608702425764792249935152168289211982928354196282173500810579977570573538433480111481423068829047646775957329070194527207259314083353149398384772131626022872558639416256062810092991114494145033934334374280016705673493018494982543735141032717746031392202286809109224918271257657122437498080333614323034356359234542945971397793737628644112557915829324877123757540781536120376325092738182496549498715438510677639236354153711190485004688230296404581998753979499923562865050288698374838992787470985548478293559293273766674480926580086966595642363277402614855894939443385414946977973493983280787331640823619471099872750366221313204135890385742225617396943131826295342167644621244968040386997154457032049905647262878589203817281746153348554066583326262686250519206461238158477496736659353059456717693747384961931403433186637671695979528565497407370132883597997224658589162876520231936115405815558942526120987065095729096609308791516274596209461656821060174572166248723386584914846600726768938621019543173871440282073573459900243288741942415323071559665720168132064011426631370036526032140064585021428467935330225253995578989771818624739566063874227032666386115577865168907945132038828866267952631641639477309154756334674537994239618221019323331715052802195482703780141134849258629185522139763316651449752438695414881587532615986068473334233120849891116105058136138445241875668766191053994891794243718776256452432794683814189412918834939528534917160896488085559698652074009886842667960886250876011324520935332948568874646610391947361273020820757184233615591179656867108499770421063128157941652544643687990166768263299850732233242124720022948291615797529570925086395469829398624897849219538596384239217215273964265056910590485754531640299414393527725926643520613141139040947998562775868673984236864452099579714075825530125324885837788075465914134041187196639668969575208764179535096074511979217882767076341448480228768600680723711093265621850104449126466239605030906869275201396831547028562340520265252317378885284263275824501782456514003609034820731420518727827222816733897803954655165335451496416788127708806211990420582835495580102882165199672949183989648771650024699946031830241669097665050409126195099590008087110614125081257221847475748393900733190211766216783328217427409664423724413368238498864913674686334802045536529838997177237999650993679597668154071387441423545050984950293836990242285231116539687260395526799049981643084822992899889004820728151341066418338104001172285201913245049145729664661034701576914380420408337195844994418065613219011153272433690648495529411274976832325050538926746602518708708540072490775798360750664826985306744482070842917175983698737444205661388513673862079384257078256903616722155518304616813793244375817027593073427809787006797542074895887021660583243183726921099341613800096970458383432675568538358077348267083000403959458245665799911125858451614206360633994271431857582484701921168292588295464619105561972655656903108021487449668849350087150417233063343248245996530878036513104563121828583270590216427302805229083648635099366436309808187403925126586528722079499209237530921626732426110798562032863685594431752401122947344154523295002427750664975300177889504652992562658066541442798410557607344109015148101795929282230602512691259265102025362978709510459602575592832186828296969305883601222563886983662477768064208713906632459314949119902136667143770784097162323110779550212397877413908182687249978105310330074023978236145177605648967811297764215019725032714911066143496398459373282432007845204933451157671298003668936110184769803287425049874038508599828787966534384828594756761143638388429688515064162364298029459750422399665853008061687151427203618487630658359710892099782550400198879576734939889412602951050515862843381890671406653984295510320812280717170198027583101501881394456471721863401886416275823024889489980210650594260253759299088269874590587673422588776438373694836391836332700842636764524140692978459156581519800133865522983725712468833838928719821369989775063553060857515393068067551536158608365847993166702718309512235850798489000565444406562696912150712632525680508912831398693869897821957228136332430561640529644148323476927173350284420139980726135277968161653884008670640534932469755759383940032509393626071427593001315717023844052656452691030455570761400056534551055009053536316506933944721563304112811087685127375755514801992632223430574614243056931008865657884870055740676866866004567564845663189966533385147079497889313283851741315766138736978672709619469579013519697009409245923010965457596294343463228221011845881694956932492826090033028572349440776238893352359954290115468807434594117656109807573434119847016525330576687217693425005958914028854839935179325082294412865991922995610716972727379904021825347584731776370241316381995281311210143925476989147720547190595338216505153258938556482191651143937387313164086684245109534275113174349392547559082787498416877917667860423897642159159492471448576453528044498265965762030765006790970600450341200165625249077628158243376439052878408575044641954774407564020944644725968990046251574286593645068422543191506721798298029651228543110312651030247655261664873480390154140553156218485877625923556995361458482750841578205994610152995163396889608849009157624797382772669492941163104837245822914350614145669418740566450854048164143211863174646898219081974070942287850598993835168780754987975566139245947624761771040832709885241819050756922933619060447393702052166146466501810025931092844573001642009771078225722033945352324792883297770337520272753493743883774821567110228998733790882221132841256984574298383845122202416426901963446213253406517907825472449904903977233430119697313248245568663028272513338947650219990129944367150167800453233058727493576882822980135614801971207684483568088170411304283894565608729370833166557267078327007754001408223634611561035635492179157963751196287181919889431334425926781677011322538972223120549291889643088638081394244236763802128843364604185016258911081491893685542049746899543459017779951735530388284153538442293861079600394236097666409916033875334724575300925761261764483339425144387162015551502801794324188502497560463051951524786803728770247538610574368024288207666795817252213174475236288538024958368046235350855782977409426233800793516274104002589022427382391060597497527305115220878481306585317773718439520452077960055759028947380837034514080676665508494013221936343694339640056280431789291917189021261411685161191268700440007374188234881478444162624613358813376592629535090000803586645437582528200245506763182325307099985599490427041640889560096040481718756460127695654375086012429578732948351455245653333650446058589955155559871202485786989048890789540721441883168689602578757247140697307812410021758439120261531598616936051335424429459882888705442797047958100637528613573179734233489446509096125419785302934210447701381794360960932693889486158085255717878568531492562590973179600747476997009960063680535747859807021215250960688276415453736423408737611758674881539801269858919366194952760118292677349490272547996328749656196881725665644185108625295475682255539260312736767496799627138044764067483081223337718091225464396607135798914101845122321800486600729006399584105648510206264685010774255045434894638539219342270299709179059138890336203284186823587837333698983665748361512992614351893097648716900892261733329387579648512573049447240426699519426841078243495419398824892595782700881719779816251841021452031670583357414916674421229333237725439517553785472083310136503804215636890583314816398325954358616799677052772100958325238024791515491634511737403480834273083360105623322912358611104762083351963007937382131023307662378176958085754050171762138177426641586167365229392763015521842537458253882995280922291830857515953585592756277656159392248527757190849964538531526169408708394615318476203789254997474735481200067258256833653829947314555852223309182444710742036824359895245324506695034804250699621323280798156692252851443313487886844011743173566727057050687922869303064159754124681598068460891427981856681612073787610206958814840907579610850064515262482112080805645518492896251191378318192045101691834541998449779956627684315668620017885437939699764644486167051994328710901570493936904220457020361794655604289078878740590168658488975088657863227089563653472449972237701991367586565575355359218049461655073380643449700039547793740664772207647862501333573272661162156165840125108469326626169737886224017891607732771592915026479791969884222728178521660637577986441317326955645475920696543438971390710197963163671847494698254649567948370428194399144536618037593260653486803728187621286982147514034481243901577710056233158798691899492895446030361932150931563653388993318583972132319070161883747251132754726037836894830319461977529384075716932238824351715215993125568330224371515534722521913637286941211983087988546933181380082133856673195252572047262506904999707191405860215576402001320042154022475075647701992550859115415277692434453307833802044900138985859758886515232384052785893583934718881995395772375434206143941713344895563026545323905903202729533226510362927711735391521535724701708200793879571135910800428496065781387729680933855397802013940621633977586270586346913129015931780501557046416785757865432746465585722273335604151984661275247084333046386877406444544307048052602390613625169364626208159996550092986519456349596556432453063458766229970752884903275140971420093587322218791047916670977581753059822795920792279035774117389203212090591231726208469993211846218658334347187027857765143012105762775506638149590179477933873176321051555338978653719032871458787480647668991758896454186625790777350359223880280850697539789097325713451855203466142052648780615664206642745307199854887470171080942207750313539413203955361729330251567996007468178316083227705607331025947733782399558667476365393544335985225399372756319935966711643396885735486090711975400861828595155335814015682769004946029578141629618982750124676402946959293433050734651097257238035667821004377801310572880632612448177922241936587065404447871613048065142490693643998739737973530961084894967774599798904058897274345989519437615824529834692750825510522275010058281532224403947220442434469549307956809082298232383263687646823099248088967556498403595523348457924357290981232227386718505496691955653052633638116459178944235724123884867052611545173877908106209275114678014142079204366448769905782268465814667766581645862809005907633432517529409822824545618956760813068092508772204982378450755038251825935920080101408030403282531634783631698610895803481083317895244031904201811922835345506288479149080288755038986570042353575728801706509185012879059499950805390135135841118901342500185117013988142415001924629548678439778650824484337544850294473153578046368704008555019401121691637163052883500265926505759327352742442799316566500555736564556258675950639221288778668425874745423411674465721996483512254964078773366231399766518599345829563597863477524948564223564645782768146430030775798379203367315236560260219182554157215946658223258532486053665336331106062241190460268195271613978401047622264578242869393732847286886284366157321591048567723420818733283849203634794216211069776720124180038887269292744711864548786465420832199850094840031063710538746946121994519769800798360699959193921132596361751156296977629374841067887895024983877324290351637502060447200838230324856848772345890602888495141191121369149018319496652580423910627628746811621297339954541641486695285935639875662874790581049632751718983396740001292973948357703081536942994076328305447500933405731347842121923645482648739771167297298147221762878176491412593275308423313215603684382711108038758647701137110315305010574515027704377633023696138965105175081509463060387993103526230778561918106943754539424494552337228137794180188912419214869371713698206947989670711269259745661575237029003643302507782032011489492882363970424107584748430056149595288744390846946495328466231437776216163860547199543249445797173797572568842073219693554301057972305224572007690558985292820544281027771592017861302485942363321312768262978634566177004612728884646331420785911134733673120910700410686703462666231110483440562588996986186879320255107177894661552966070949668864421583866791443838266709729612482196375217780633055200207267706041219758718136826164851747869773139948751977240004186600331344863882080764267738584518754006550600204517605947216798226870656833885021581021717540066932344764232627843399761915825330316088599761497991472225214821151832972314570446758999632371035475963456540216934125560543814030946383742590482547911847188768926627785395439356117634331724932466752411000942120359231571959967841409861977453975643986239129329796899957034838315105462892515636665710488696991569618041935433393527922112937739919223810274992243841177317582951283380864091986816248910974849649929270136097401985335517974531176603599275427264075687433070085291864329224449127933295560441876928804311479412763606766736906713046338723564043822293768570300445782277084924257893474254098499839417036999188002605710954848847519407382678331253550757998963774666941822649345884028489344792335697878150769530816590499861388635821922756258760564008514207825747759493938695238273319560720411874698196463219626243992267140982511347751053842661649765008458475149704569635814576361198096554052824952003775015225844113007055738736150911001889947861901080199188140272102441772985060096113705469859433408917506883391078962068230356264835749341083459075109500052101421986486892971569855031985354092506680491090981865239368530441300573404195951143962290427349329515967456775262063023778752773847099818011288964655244008656947659190928266284474256705176828967744723387024237981266978359996111043953560509396620071958705180694428710458818488856567298028090272413501134237197708868359013794961082655261767455040688907722544850492133131031488537379934412875407219482352598262311404608011150245028826172294472435887216496091641571515696555318717791485219975103151970497412334547519107247033150984222062258253017593246740469427925982104087702517915389480620834041513037585864587183855563030410904906543595201973165128200547857646693124993733726059258039494297772432081215874510545131699069709066195017876937273750731236198294320421879788408044262590261372547283324735590963484290463388243583226152438541234808043326075951575857608679779733995878468164986161053356456628972441614618109608119624543119685422112695670693273150388712345345701179186507665988785436023239354822194884492087682724419119672002365350717846253151645204147045408546925169100704339161129442893598882166874060117045543884156313133141539382256474646465265501381189874885873649388902025459397515394122717881048036725828562598201216407528157571545568924808238921286215478381122939240434690952824031868704247914518936345730874230048191053161711400993141525245770547896371644307532324994526035602644163284542591712836501144178677880680623750540296081604380250299538718624716372785121379003451029919202684719048006274332198480300894853952316472216237935360964050305382446788309381165918604275044695083983095027806810444758310742858755695178881272032588310168168161787966075721860741570124229638160264809566068992184126924602050454054044716770359287716367850346606167621052877657426783434881321716513590280426662476588900704677672309342377989895126891471267103342349167348208421085493176589865438475169581307902321065430116365677468414518167472445631178135928874894054113572636428255057731863900679427824456295983418962513493780744388391220018133603383820555493609576886511355857882246925341982886994221115373451116817405924737680295399796282806138829666667660717698467736142822001955397970398271861408663301526671300841620138019449647432382107440647253110784256936527650644137395964733256131241223675423212364604040789927995794829802486495245922209228066167971747877234985086167020028980287052892719914475570926698870190146848023198557045211523300220600173823344727255748040871560337508034231201542774051066671210850335764836144991391105513377517684030959645697800638242227393077361436487745859376231783115551296565080752879039751745800012850451655041353105718785285983876868788006360337321481606459871881525921806002381231104544247229941733608438565359518520893372018700584708132003142110495214026668115244665767290412189859872601571144632937311034623486064477509607905559218232687335257436938512576446013186721071673197989139391644175220526374143127851974169113079654271526206022417774556193497420454217497580669780289879138231866340517822413018417017142646685109008267702685279397156671004665723433019895254770268769701142058292147585479343028710321279534106072497409484977313763039053013616661876709049107357448120697031898318706425098671937991318090948008689434092339985801224855179797702350299329107186743995862121605636805993834947949093185592601421363164301518569865638934914433049293260645717612574878410995644909748667441334626757403494502016403314797452892107752221806251616455846728536785758552740919869120325623281392920179527748772761649047752089831399498724669691644767615925431713327162405753462420991061842281594239368950022817079533257591198263969216150751482070264728866645448943091544132814596421263609997956654984214237564434517479502393472874563651522613369971533866325234637863880331979556944858458682724547156236784561819611638255964896501148371010526413142284384870835846805074394123502609645706800299772504697184655582289876686688941558943133232832150548024332454741165217180640600981070354967137452002808563102108797813013895783031349042681160469068495737571426718872470686334699522233874662543196190879787775840692880302040823315677694806924902341450496208054138843116821693681950363125657750496975142903957241728602516419045355640297737469520800783947631969933756371061821153555000724617894521872341518419704440836123734617245793329502627861270422086469635609059214876172407418092240330483662958595596452804941592243060624946511744922918899804704204940768543251004122162091289837198713161289499544002568964783413681074697136842620668301474828680343087562861184881493520462547931007472527797010890637136949433559197488334829896975791008618821756128105088643451638414993239433556877966379251926193588983038507603329995485187176911541469318160040720482191364150936829401665341692892935715470222778786216635834562463192768693314112158043940567977097363697190793589169306513924867855037499594709035350781342346341428266301820084539145628289258376354053945426448077899289160608403409651777274657501745803222237101430723714118187294003095130907650802241056234260874348627386555141945590258302971241299182896914776072845248892398681262162019547302442205784843959637522779993971813973170081911051829454362916249607462149660441691485608369049827067485370683848214769343681265633111655288259387467934645413090906358504384007590909687358794121198934365528335804303141517934884724484162451988061690075997299333447463426170029817816365042990332544472281793061462597579444703984859582361067805168913569986619726434892739843069699183382329337356135506496877610025090114665076141982025467973329602608072237711840333280091744834500074065960955260328671518829777553859427963180684244291800782895527693636256836205262874785906472193823061282033741590406987946305119952471315397374772281576783308344511367972601428028819092630826975857646851878832547871917227938043922324980646247639308455237425928304794528074388580404643890113351688130076527583202007679078317225030584753902112079687250182913198538229977519734965359708680807058957063533725927068003331412520294785438817367513469778440260793382772137838921610113469865816736776085043350788613577384405602454247811717569940661483595987993334764512275030891347104165968283432757139578848321962894139819959116460088042093234534161362482057191399299311099047699202674925347661621025476176491819056319778340326400168357329209755516145661014837839429132937811002725079154583692844998329427086900941474755232236872602912270593762034488450814388667435350322852897503651981839891923227659889992334764164696390231510028616895524783084791587980481181356053362389409125759280427768250237092099504948950519142707194270670833633445199836802501093859342012997142722409829014102970261327857312142065668623626108138452810614656288906293756813947535574555998297068795286320933113006307699806308215867537390627205275053856432445379436077594041387732103505626404555692501955881683929757497669846889540826784799102151350342904651390007673048106198128556597670550771773922120103697836224526341188306900575016140400911242812969894224397058677906562194879730474388977061079793292415677152444933028535888149905903430001636002610682627465492579116627611839128675037271316349408671856011007042659990776062526741980849970984272409642903683454328163152281321212799604392708446609619362649991206663614888451931061483855741203776433995817603764649730137361484231384123061281393660711375816540644989831511452508621161924641597937528894396137181548714600077724810468005218153182924580570637297232226094591215421613835117331172212569661994679267347774354700228020288319763721510367301253323232196361436705680648014507412616743135582960926327564754311172910468870855175634180835525119156786679600315450078824506835286541118704710858745460549690567565010645496778946736037141092006919340829772269133301471953152181294730251297822882930601835994469488688675712457223665749212544881688946778610310734528324486326221105530165932885779126317169895235000523580797233793913873947172397314290111781792160430111338399176021032454522006890143759570818565455905454695034414247955288142071575098954521737268351896208286761084788081055283536463225654606235567180963151642594169632934787671998508629231766738458988540925794748339704207306087215099991805687681420581893578758283071583170848834834572657006459727308244890308868691468471894992624997580411860514978358286050541525241097020879174297398439168648487257158573566896525348633016577089396313453110460755079925213089398157326976324724733002070617366694503049995172213490897504293541221956658083122009869710346230267210263474267764310871520153937585481238347216318882879259502185532118715143789120096370393948371957262190397655093345371412246206660932209951974226958081604297928250545608645403656580576818199498164263244273729782640335270507723529092888952512710825090963877820603926867403948899200715953323070034800158401709598362621507315066191951742043134185648445801479882451911391878533339357289517802349292521101901370261666665896813940936848070224176165521382645114795344028706976057349770309582410549785302510237967644983881859093068473974884212496009318966896692033699294018841764127338834655958062341170421592649298166531956959950185450579306040613513542581509037048312291753618620875630817151890055648593524949796227243899205323882733225223800518118548785697386846479075474745420565670034182195501734059521515269851717917324540161412970593207995377605003543215173306957596193464928173563358487805856805468491870391723091452004755885606471112296255441896214315369920151091451985545906940046013050891644752188063070672867640974102421923235063797403028583076406774112281030974409347175025065501206578297549618763555236406271086163811998544770880055053197429718102230895034633813822396501551350929335999458700798455128486739216454587677029870536799629943311403224883214655478963903588444138337431523052076169732305957526987020759660858513570291118766871625660170910688266930143287473746697191632419448105380500737305238657873929975140268252213911748667726552101261785728718968038509138784315491526308137684804140622481206692538602977827358135950685237958663378899752176300641152835141896780371133559652165006621009924879232538907990632514732196586149119675088221368390576101283410030344030912174392905077556303866307157506138961899089606300109845940909703891666181534890347781051128903103223534577859564825172163144413008839862351757961441132409805203767165620775729987016475897326745740524031486496115282250648950927109786628492132287289819786398899227749731438776120253738129214138888374798410758419693849574149923529376549505176297153377232241025984061486879284508548711886603931711645947158271959434381642409483128575268212329917761034232460456559718631786348850938525527372643095396043818828880991383957696587031657075281378215254771205402812406489957948589290012498283146213672787586201960083372202348170755470914128516303191273413471927550000955366651270181190482939824689138731913932906601882989178294278046005552492173480220806697726273405045731029741138853537657120169765009575855784957620157962383084457050629829057703055422992301791549047894499296779813260075220328612272668124403522039682560182309813857922486519501244038436285989843921640035325138606226289455503241301881912841161359150385411096329276380927875365314180820884028055754417898758579526713096513748051467253939569813899053301295200244533638183420192396564599806095665378048738247756564913264119789596453594703154447593422467725618942196190144815849633841864326385128242467411144801588503073861259093773526103924800954465316516260472025397891278703178321694114512986902559323965895465947584784787665805504124461642499019302882641086205349514048112447571955188822557369662390251271489134596459807085438994976282782400973111210701685490856081853245495787205220627151621797714313792541553434164377928279240017458031384526438403227442008465559614310495364139267332384564072095503292509257028534142205048453538296935507058391477512409579863571006995392993852316089161389783432419832683008926778755563006685019330238725900006599675606848412638319262264867884012898534666987892593865161622989855118709177434619272878815502419401778326254484542177632177358293587915060119196213535102095014772865295843647127589168476961426257568484331653116100046399896405566641178462709626230144353021656664273193957674377141435675721378048003163957588445439137771467985177908483118129669696642547658254501811184429170214378181621433482149723974020071258811093247060060379662257232578869766085617506031124860947594695777743406154716744255863361301100165966282193830318017751774477656472505352012162842685289325921326806557806971537616472478903550927446590317490510722750018922593787733228098026321477418906560978298605670067695136071424067693098525187030084051304945649782302829974851096743297167616467937474802021565850470511602170286221851689907761915328773701563327605001506934010043234323851209009584257368985124061121006152510692012513477212477373549800375142644462647559116287059432689753916264476190521134558191457889234942992255751287617696369058239315570904663236260172743369306504842622652815889595377533746943834983598492996438202175790273733305348615270628427275640407105550460092790170655767546289696944591071010371383038411547535196897282605632608618849814324879965821037552335659148346409526871338016500264287771259693763635547602530957773654943561334389512246496567721365794561150366746455145994725043283076617040545664021096229238543342036669545605166728640539947936761911267597884755447511672687480024448360408193697697393763316703481149538364872612081750213169626488255690925921810348922991042668356932292707295573056380406807848368291246443594650439321714323560292944488484783899778537713652685387502090015913242512553348335946892712607323980947982387163372325480618299308073366107510047233706131249263922100747949913945495742143513001742093042964755936154495476518380850114925799890491841199501657388380804882642269990310054374583160151345568079260763244022745092922617354798821130361416179585463349923236625229557866892517767347947374708924991667534653019959736886895276913075641683067802281088887920962064946228557847441030112336216399041930744518250171262963418799964803257302412495086021603051043278235310070329924272345527627288998766330114143206688231971787471824563919265986403045225435313232179984539559285026286107229618884434938756578502699027940855106166167215626190130998670730024772210836295052742681409870314116532298118367052503489804127688069509663678268611770752448293229784372371496162718400741309469175114731218230864653126927585603942485387446281763672820338135190762605395745275939107002792885929930616894211118651578648156865522005517502019225553235607525698209055937738864982615244674320830754200124985684359972605574945077015432353311438924503201791541767013999378000385262543220015284269050822219037793431891387280220326129664898775249583483131106488832539620827172579040273544686433607455895789633282007477100555275862099299521060124288014020219679324947103960193922831099069616675146059682073739520887805229470786909084005192985644069398518877999219177411552164693336631752018782988957067913660557723655828840975604947363539466560305327290146108067485480233720298129127738503567291792365279779866920683347546255547671892439768888482782817348007238120799547024396863809662477999687731703068806043498042209282861899428075036770836658629941573571450028764913869285203988210180429826529997534105412128434827285352770729790243625066491793205266618929578905491872718721352035129234096988361959680880972778482021141368259804345873042392805516120777187853163755941466597395876736637512964118403138926005496621140895153132574133071348253504208207932018883667014598384090019610428785437326355311159421453767695654118766108603606091876508844308341980270345795994086906820715785678409222915521084892073198097109598954094238015554004358417025610018182103413195422783254888073352995795810493944977276087353754984582864097007766759632961208286480945379727015353879551870087527982788965836728783495659479618944510731103693291098927129585171535182070148362186805358257222782188744339276254381165809913991762945750560169655147355635509233441700372624834963983377231010286167315265850338170057185021883677166870769814025099062330602383528650473692403793832779569330245046694352052902753740816072111281798464908887365015853851883304289705202183656930020915982450401379947744392448761837871317437417719918179640082943495392767956921691355368125852145185588950975535804734956097532607542323551763672219648753403371019959850161277682406558644519981957427436125009201111867948826476145325201978345993329847337730297047988878351291962196757235751500518769407497635966125638597374508040816011695262437465043886025999327029656222680320755353200568900033837268160611215878896915092712915510877360259180442773812425294557872653532613677340260373734640697740263634060169875464100131450863716355593935794591363319121769411208123034897780199893680133653393322929221195245668805853705751000756091426744160401141758234180093457342489135087908557011010227399785828114503317354680618851085719765096757182358825100414846886274598138743836041178021726134561290270499430403219574315593534911559795257933730289940807817872700419682160866783750045550885785929234245326261079716777302944705906190352810384144927029641212608627486148183085040582899980605818224435725172946401107829411539535375028133914640285637162674368753107069790783592788031406564477770878206886124299817524827657376933043883285158005608694965922036546475561688684584545700723392315804631495300616166839895026727500252866650910118547654037655830700311632731123977162152979626120632044531355648175655879852125167269280645507431070432159113047027450297331625795873896543430653284291150785546453640239139723835199103301837182237447268505601091131665236409372455712967429182019549785643606531382432110027586810250686934289737204293932081893270910678839252289531842587762024184892957725479226477034307944256508150087201660131140518827479767704789811010552000843526460815002143346977587086263673399715302580615873313066742954520100307275815695091995640230767014749640170433959137332995710921228248013441426238534859817944445421015230490654081312322117049201139183374017994927724119359605599956294625432674946555413298974777763273502797584564654537159890810401395319832641672195815145626786535300389659648336216306404905688266203259551960308373021573267692392215799324785672423378292804987975896199026787691258581792086422626746296822876424141839354212563009514164753201775976840137307889464684807646681761979073620470917060750104564673692277012485688847278042568727883199585463374882913773635048381526870414450248215390988657645552997945573304830665199927288436874204964027263919006868326744760269751696859050716114119884368737839774580793888241792127943455661024785480551888964498390326099528599436141302394755831266003697746966893768252367720662935809276163732594226779446562342288887223684236552617653774635414251628337282101138532404358262391490394908519868027095307887796599848447985799529520944119462266510161165910620088261116007771071885402321707606079972630560862428072931119508240877891071887912720217669504969201267920770774631176969997886608073682350761164867895505451574134032298106836653822493622906987199108484983152463260680659004237430319893763121156487695898558136746166309507287260300991614763765236383289831895322653199097007771354306467396759827350861700257112037283034037266861943266465456996663862872163832114739497251617199423269879003701422711545164457794992068764608195289648172982077007691814624419577755644666538575733071682427299059353467453617649923424854634715390735138226795468591986380245876856873501996948086962863124840225997506049360943134249900793588637648149919235909781753949854837721911491902554917815502554287847003745704477302893744437269593770310622056313774355215584171630136880187147394110286123468176191574516286440681353474305247469306013320393013508152031632832115636523444778775978029654383660872461086709401795780277256862104719437622736003184844070551162169025540119852227112829475016335912417516372859368258158341825569939138306361496180465318609316858644827030741028640465168267289116591380075670851875690943141269871486773624425316486639791634411753809482531119088898838761173475460452450239915178856886727144441109095765423152415622541716542779344949503172916614289883883078341483529892672068454627482773184534156091018403114062788549263125044783145631952827381468857774164453335810797287641390958565610258036747180535823645841287866562662849972332071187536544359203130481696952694345155750925422262400478744491436067052182658816061636312341868521415824430480688571244894023783426584973822435162148235251270350548470135461774477800640894501828662113458407864801699431017019703265175504472450275629328610198121659025649064325807930089568321294785580124392871586347174390112611627892930084698623915319087244417753610948959359551406403378950236870319841124618323268538016160527197495149241964548785986925241270974926018366766967564327814367801106770002356128612894249452493693965048519309493325623500567505438810343576205642248279732861973473256892108697746289597098626021024408848739610204663401952481452085263599908363004407083572661011519890399646058176597167363900744013748372175016271110152615888803876312680901460817594609448154197540395079459607995602915540890107565655520470028505374762403969104999268930231315184836998199722953166312880966444328769478869009661189279866070530087260495822931754058082622574479705344278154389768203194548147881023909421733315877504463083725221404353828140990810163032726455485052928484226698868106103159939556177084025545628239639681719960610195022892247427885203455463310339781131491725134896520902773990786510676292906811374705560338762412733871948359370112773737872053030630491641029699149531519771203636939138034609866819712823825792179121199781788287242912186856111305981320160158848439149039748372891966160688085939798649013876065677455733443249501893530810840482602254221839381436887549922639708009171039650617264325475337800413219222432255700629280574995295459395700108360723748419345748895800056708751034019893618275999375044354275055072602503236711136028285113052431753446214963147538333426867493343075821652536952864251210837621222022839108991334579369884672100375092739461356406386555146908100362330653441137213462761491562908770049153247329882613540979285144091930517835947007595199007983367166166899352697621483531811576851321650655691969646842448401744652488791402028385026578119606622747939307949216477206043899941365161113625061291481070409535283522604648792898741047256148779450170693149300745223904342708075144766702568044260088244885786863261227250960401867819534641992440361757714707546767053251684822646924340710171618033335842171001127551461726716157552269911149528940047114977540447416823728655075144159321715843181192067231931228885415854290703420022052471815605029787302112717841575646121888877037085811928216299814981734677957752071769374773114526575106903241181298151225692145302876727269372221124476798883897644572781675948428120504238438678161194519806982335170572752678599413225592872148620572568108959154757737363370207564587267388994615554071071020720518319034016956146677675720371496186623225682658873149202936137098539400537026280357173218969738594784808432111907590486404622032164362169596200245382077899146420810331821317694910314097162296153026502351164402884851541784888180935855529966728329452530274357247560263623029838065105600388362652486626819331966874571292880013155065566584306681962469446572331311346552488295345489200105149156244115305103785914244521861172928623239796546484226518791602758829224687146259170091614815252691302795447534819583280624345301162163870628412824710197868537369997882257175178683513199454228177742091197793446377944878565943380872040154859425468712091650862513000243272121998229949170547187670339991167849843671373375827807625057726609832536727456684668569442697928134351242815107359383530179634032681699370853349726731422649962587723766706423243169175748761283278313902799315806987590374059276522419537559947909668981522788673063752983840190300646120096450839642211820464537266863756293227406348235884995449695434144455344365225734266581367219793758629960756385721302725341199297110807497217592884841653082082914321778607784279098585513804094071523403940933117493574418666311449359247978882880839869513954462804784846857079587953051913196154257584903300092253326664126492442188390972199000070424199542301165973667553655717901852765914978201253747176615662490427597191932487672397285102530529206510043858982831441351791667282978317221924962587036622644511633724082487707913916633021243031150991826578746314204044447506305432499910282785469416232919651644739752801370961694620031828310799656423150596897294388736652935061865841026648293745409361835693786562388770199304674216321085050295380823368514988996197509542739716970964016384575951322897633564047853882572448187712916250757389157132375838405523607279156841624245214404081709972527364563324953425185329230082220236095966880586864379543355195597053039472329795587287080470958288117170546994170600083215477538376858973060199201198846795965959003340217793993173378336952405738934177822290465882854183901332222800611624653876035470359562680268341924322318238407521563499954963697225585582294015231906285641184887326784196927513591288364341886957354112665679091299738736809178487238611773728203488880849508599732121409120377895626669176713572589425132687993890115324716800305105962286555670165846258349113985609362641270602276310784015657641977057067366213652847344806491969805664792247019344964509504146347409365329526490320010722083250625426906014989082773708119695690438726489878128259191295139297886332515362945422434581222519339129613357840982956729189876512113357331414086595468832379382299149839631430073065439942297303889181017963525541319250720183502782757936101044555059413494915127917812182399037031868779421135612153937085898844574786344709186414202317812621009440518946509798907130559293879602701757007944184511025381793744417033570539032126668326432717224470899484110457342632342910626446364462748545334936871384453031787618258053510686369326973865987255576938015932491375013403756845147959651379914655270995951181028467848658109942431109422561205546947861625187653306721843124215557030525000948113327133789998868576357041413883089526165640329608491134424361679295841970289867617975670453079857618638029843856883568129404925682967774939494720024223021202434835802709372399070915223357983750028597850652695258018140007262309706560157512051338889824196452922615857895921750546165657442946039309660330766068319444059172415549844375414374392615770439422479792150770924182760971751391670815424068175041823985041805357944023922620415867305364917773143267615814611937393688997015556089059884578364350281392273340365384971139377457924559043536495212284538122958843252136765361401015927272478347827429048569658293308060269475095668947065819008799846879776122779433660478996026062180069957575868611087395897312138323652790933066582200665463048688569090082310343075331035247715661338735821985099281966027276696206101226064416198426059065051342616719621487447208625737941627116819479078022786209066413621156667898491232386614778986790998041718505107280949030542883612573230610791947477777830895438643658503200905775774857346911900305454382624735349176857394538130283020974034675583004479182081369526444508618008096193866815318283318219485125278380981607658637759555427615920725009860238842396513455436349612182367620752465523059771476875627071349780032075951892516051555704410615177008971513483051609779913844963758046836553099646926323324352212209789253331323891477122247934319874612469626311057910497329697185602181571843870045136173635974836502813424108471811922045371204508688770099832082475908315530126082403196219244052017612012531696638120402864290315322239662797302386394032115063645574533247659776575886886309873696024892298430380981748463662783025596987287374290536914598500847923556364420424977028737143931618077737712674956550771137143863241186720053206562686399043418329582207907296580409946455382854132243210202306091375037615339937086753866672562202044004510884386594548963845148113321898913440984929630498398809367514093200430653245570804705497101712587690994649375577299411935151329703284443359067167871605670056155890452806852344107512876210160693915661909861651342261553011078120563555864349603544024779303336739343187542381070645619625274526681161472748296866877346926612331686085252064247136391561658393960347025036974930284847001246874037770331911447070917899288456210817419523349211152981225479486353715661131627256302025660672092763928756649872111401645212845785106169999557105737701936880507855808348009350279698944825823284076912829881881080264790321844701078353344381023882041371222109448357476444752700829597532612469302502440806095075396563106117534521268773864880013574175934927466055029666270859489189832124413773312511704723718641102544125042206359449349113494339036925065716988562224227317625894293497324338642349987793440058864738415103351726602274213372128068638606137429783216206132157588611257119083213754324288685977071372723725745769240286983119156066486176575484037384549941062313398324957951140839557320803114608939398071241670220156206231787063736697691258448737368571519342610199957959253974987385038864739612574866252202834206078642573240913323346612518692519632281475732367670653274069671874776455311236797188153249372213411774021254898126303258639564012116857428866265485291077829354924797474744801704830475176334958200207753725579261114181862481636274206255623952724086547370118549316833283540540436877603005855974007368870887944814218333256857925464390779898962329961972969086446840786064650097469197405219720557335064804044702828517002047939614959413895959385894579790747571759339396018281887501687584246611660007736514657149650802582047260555414370099299868192035159875232985908084963085879040938096644939357488881717851305819107828970310734653891919443664470703694579414463852586107281433248438542828426550064008006225020081289089454544188699209435519500866134485914162090376466889374389618016699518183307155146560535163383376035122646071357886516576427349206042979233739751850369863193934648477873074768823643649083777428772217790318670527493074371123462864365086768903758902695602959231234932695602382618385059140967515204714284789896257038647145051396374421661905043764115148755722158037980863366167109229232005946936634501337532295557536696447405111390730623818640323846140426383250006407031478917563123199055078048166601023505094502664805874831586642454283524394454018257129849356371053790400841266412658504816545208333259400638675502990504647530105446481594850337276348516023496325799238838676398511108787295187259483489091365434092103006352640686962145402501458437492542582824125471870331745681720043226121397266532009021195706330706453840097838099298883853565543225487047253678207147564010138411592908172182574060637562263327720168142829922610697019804771234142571415726919044693887762095569412011824958330755243828497872452604537991800181298899985187753826957430024400006637238847622089170949741472750421018850216237872461768451310137020682807157140602621196761069087262469340722733030849244863810161926714891618468147366151709821002939448522256264443585174873338148351527381451080044675896934767249096938706794290581676316115445183654897220738341899577493151040063744029800766661636946819154077156737992715420237726133231476551867147866976248568558508004196785764148347568340267963160753303037965130782507739060808130578610869826575329445491383397322734834626141162360697034610318440007132202900870411128229325781224838705119195224016923958825858399258866480292159005460289832081960321323228466158135959104025940168399665324933043168000057644940297223632027308590175909151465830300535359708931555619075819314465504578172815379790565489194780626094631045781210183363885637616950977799183730303169861973395732148564076976747937989556087728670755441997454013713372405812033463373131613837211736870502390607366294621348221540437830186892127687358287744645548149269701074351857223338692474606338819471972961076600673051186097661888943967792745785159890779339794594310007151464278407297892171028515766873410283692027469441812777782948791060660701930023833295684345576628192149718775971264869889829356785809810475154736210057231017703134418383608562014978063627699447719673667181825215860424050950786811142473365389970914303824248631991329598792712651704438033463227995391971099908320274176480271585223435149090622293415046097005160183828921570617267062870999303605669761014988605350003957116826804332142252689774475429922443602557810218154895254525983632913805464824828225551183786755305806919822322497611642284388412236397517966501294590577040688300131761352821407449588347604582903517938290624670460564325513066031581924376044426135158097098254648241903344055745177674813654667322230705700076612095721818787542831040349939454691125560737503733782326822562438360295342780811914732229119031138840906997829854422481179447961017943666735654474818084019093617408677148998720089667014010842470913445632115357025069986141254684895068637083801668671500253112396511671328322312879903661784155356831657354052314095963425108400187419538273752339165690687077800432424083798839572486577619004905681459296377970450328493961697913504154203184437829018268082876351223636676927226007593124230830015431870825239514827760178368118439442299167067452662404651887037824842428113912507708607704288658901347890746161317396302165421155245474433683934057010729419262217142179273274642070979532343058351001119012057692432942882484911028338760574720764163366641950695622045553105210903921108333906693053946568727170547727189546953960846847568660405180249394027391824616173303584748291610754115794146567943984172651296011543874431708939501579352192981402157751361585825783538329304354602114041689468271311146783905978293111027044539041665268021997711365198553838283131632345068951834291260611322006669789638365112559020091907756463461171299476953170527473856705404536054940943295524741591104198051625091798375545208781140464168331570706564429846642354236349178477761827457061133578796847148681059500234549092686590896027659175183150922684888285237094554160133596689927323875243070025306887093982348492193805344547329938297863960950503032184267214594006477527515448355563854560817504589784218830516108219380848483408330269161666063404703483831135151523524356814278989662080941094344684903288344065789940517970951825068891789329764140165581907840578450776461660670798376906798172034670650240301827265619918935337864314072809352194869305938632204828832051060075000999670049754828118323108597829138859471683298778219114211228377832895929686108558986160180485618930042894937793156908374666310994290791407723138593739233210671090342167976964811419101094498190016648584481290244252291802034051667802181888649336700453774088330981173133608664439935051790732191496422043770211021282108496221254474828515655568626361655265073592861309267257539264604144005466874328605190557052022727365620889223790813918969842169099735750090097144523660845541314654332968450435705612965910912053027367596210734164710400220636712253246294808216087978672478208846233022932914257119277166463374795577038596259934321527290711704997799868897583090999305079814517925240508366726502722829968287166459989397871372016878598670650309865767062687111354264979267422170780560507896809727854312667828401216047972930081067029099255033569319508868616780152027013771391465621878394792871074769902686861562400396486358004300368403483991577834845067459340684430913791907735738449949277500295092876941516967926459114385822839185454792054026428170272963067839529365709497353822049735000095744103313151063245699468301042309276623875756820505267231701114016518590504030751269821797243383379453525654255249609852128388584625979664504000886651284035088249804348331928286956170242215619417490244082993935692090258927535699682035224663198986938981349269098881465973878689160601695066478108396355597653891472479508105886473663451859286435728798697349878179156348801743652846246901303128335812200420695445433316196236069195844968762867891980913729762728396439559423628659665758290535755934565755324740074242871829552335422755964727535015258339886496388646991332267044028239062366166791049858913937946473324090865483428599810965812480333148644788422437350390279118912825629431832648621639593711342190873613447349708490762019809792690601153393320416912252616783289602084208694436258363365514904288868702593111686900077595831184899826232209837210751368319344274196294426047942034447159042821414461581345116503068100795124199022717850870025404586074135880109370676259074340449559159308067241972807516708871223076444637546291876725130927495664645108997077603350224853655110483296378756876384543463813567099966469430084882599619567923172772213710939477133509412539287037370598023144915194321065192653074289647312947426921992176931914081404515711548834238115722352386364307864109621763031256882832866636590928797892364013754713616030494849148352225453877467262412193262382706851743065541745065469117605799643136408362696974237857145398578144443087490943254571530578347478136833035635752477253445839300302769547736270362452394513822728417393321010365874660113038887470464594096162220847797208052863484980292092444459483322940049288887203441751404164092039218253891766483333783298811950967208484139264808338305222159097630643180064368173965923360888448916930702076737037058570747256818950269941741365750322973019480324051939314943652481270715340466553485411875347324393678131011937306490017617034898718359923299681974627897871561554017326512432162076406419522801760457717785701625700673900752027815351456468867215454253713762917699417672669180355216353386465416485856779722672639499333119685153082345991665970544106282254328657430682231355345748945742683766272237897575599192920554774412868531403495509098694631138007081096274651085844931655294690048039118987927755625227589024200785117370912942372105405640311305125347248799853637813289052942931144808401022029727901842019270825021367084721391184878472172122703959885147513014595125431550507286618913691016340692647519022436935219287957659231246317435607011621966945866750889694510257006811131992666905656025808382290928906613681840665504897490287235079455029792584206278498668873577686173079454122673998782159509487664631759786983839973583381365891623974218921857407454053562151323314272596502075773139125318896399977397693989712042873455729784766043416184141105940139586609330516893015837393262407514825729820923654093081020848514706551750206055481417468387885649266275467721517614799909055511198251156768201927726053033116418978798453383910755536654500296543966058511086700141166265496210627262070646265204126647759907225557806315191495100460450969277636221272996784188421805260899720531085004211561763280500716484100134272984812760191403994373407580868289054153773589495964752509403729865488218944521467992784815724842836497160957887727825349992050328295124799071949349365507351085454329360074106978188714831129942185585181446952369286855971551883370417343402932901909209373066227576946285172639068177411114626315737626003452266427904158268223264768510217568679927082934704288686972962216577295440373951872337785128621243125350567927789252173961224756131563186887414741379856351176222225297200788025982233370920612307315131664678631645955890501416954223826112335123445674059925487229768889595924267639229714290145438303959613588562872358082003761196750085604850359200943138835795225452933500261979184449649354279963519284388647474027067091758822382877673842445834040372864555442534192365935572249626120323097991772588198544520814113572104011743628183300377688204640718398164173872057506580068080320846423065779745336012467868007303176647059172709858997444922764517684498764303599978152652427158466895922369633597361644932951626781907907793517873533275109140829941187065279364301016138715703025977142977982668230972603548219805662811946577785532227001003804361051100078266847075855720507830783782356480226387136837807041047229562120431553818139279532997388944278443504510508922993746857270433251128738958932057475161067346011795652537011123510656924482136981933530379937931857177727958330320966983580196199558393943810497418287394974993636639621739899544833636595830089373683654700966605736314907760605049094395048041186600865757892319400842708244754255903328398716327843233600675624278475713011769424009481219916221680497254576348999723191199372907492357840633413723190107805777574053925172415836548416731611555746546133947270759073091318541023800027419437603061458798891352703079908984808066715053822998083256815174409820720041222151570314425008730573403914132853932511013642725184378304964549754888200586177461939095829145215643338379616872327059761244915219168140553133377906322853055092999484717195157355609303754796933027652878649127634518333642854191634354305606439490847490839324819397322732992299627941146009061810250536829533471404508065612627841008283534038288718732071675814087287636813279762535898807279622916338478125917548891280386490535042603506919244562524333732059742755584299906378231530110248654882664229749199820070746412679480711060123246389791341498111017610771946977837354908755402297785462776310955703468847319393626574039207206349248200771145113695208704287968144304424929779263052088959295189569081661200002179213627713217933497140670493321844692740054578219149771672811967618133377931857341059661970440692243243906279088994499527257478550914795159928893499262061633929290816421211470785271901191272372623524325856902904509625201158359365748187961406937106402701425303829418570395047740107401014524879860120096614775061330127088948085773164443014482749650799418485008581200277612197929642482258252729119049285460233163708139665073411148363797385095456220429171656521160046336552611655543877938467279763918126144245747562949124446333156731580005959278200703215823230806995597008051385710913539220528129046530746413959600918604955527125251196374402767418795822972553095805024098969614430134941268724494668493076359504026797006156848582043171357941614789980242930232594631998848832993311875363313503220117568351218455463888391073593762024330411409123925354135056193526220452654888365781365027639574176257398709038290118371513555115873927785559662037124519155494611033543834971490701354566363720437746521774675572543454707019922368765180856275537636989797418665147741555805705018801989076052479182705534417101962129632184911101547461712742993735928661087029510133945272240645337445110763315963354393406501669215918481552112696304295844642666771661527572478450035837839916844074811189783554248816378039576785080197216781257567852813456249868884296538722071193611474021611817936491463493897918229534306300098753356017613471034597815595833274629014281209628729632890536478716576868457929577277596753968703993806387066727483471787392159536139159436469951346794598109259421219309223494624556501581157536383618962625261659315995237297175755430266741947217953581452097307777185263350710704901427492884103659934515658237402333201158508367574150317895580708910358899171410880101784810166201920845237447797594666686534207501280544518774773512506861205602319291247468133607488727538099281396474729262798104736745604382548353950888122504586402393532746867607079739984176283207024288074944068540199945575451537944358934171625909154915987673012079670100993808308447821207700231574499646054151015716878118094579209776724298002756723957265595573315901049505335398847321205284664449137820620945320803164052703650844661742866894489852899925490230334565454104448499962531689847553052990085698334716785527438057337413175607361730657168349929528438802255757585986253767302421725801488885929040478027063401295811529557836124800114322319572097792039134927967420484947831089067864261812462056244610990171650328453322413422438276176273970935865414622673930654090922807026307269142901962673736669109069986566464619818333859725732164557955440851699590257168433787045260387050052995950238910090537817975514364858184089031735843462766864864320364478941435863441289883452109701868918443635425617448568538975634076045275777672077141770078207216464970952825447566697011767017581251677045594560862665341738022742691169611019203718085060254322760501989312061579941804033373835476860603799527651778944222127878496571980615593529630598573912400001058463283409979581717171886802143589334410410465720395921367471575737362530960095551956813413369457609581784002864991712026074838091936678122954149098434538210498649295991710045844268603870036111318496609222890538488252063905524612759623090012320132996065218213321581210629321373761694637398200759386235944325738657631471008060903168121398111908810565719955758036697161607031297837741045090131689437014377039177087550013783051910147965582966085628816985390836514625501052555454797049473589386384184919430949291153346884176054897257043383695258224324529715495784776252524865721491153427459424640717375516064862056719538427665972790876513135313230448762880974818924016004213295814443543645457908983998667110125601954475308910198390362287018488952872246446290695537001181116406340803354257344975734805724955237702655998009631388137850085552824205641864628890583796375392786908329161982949339163031611647724801161352678382813583000290368823603257874714682637365380990640657950420102050769868538076986090890196228348255409565048122087240556744422705080274474581191503400441444947021106568071084998917111396517417747579368442844978654270538260852883941109793407183818843760339813811195926344006777256773750127295978032774281480946441376834316009415353766735947963619404194080188890355828755923803708355912275447352522153123989947227424286002827193280409955300590099817406240050330460758143522879805093981340111995658024726710269656229773364331522085825962411208748327820971248347359793266238439222984877063380264276621004169194450746895058609622184683625910202138914203720960540136488729764305852621475743242009902219732083835491084154632171309799717423238156113065466341412616476119419686345452119580383579155160047252918807152342440642922379418288394957938583209801346574372657836960218337786771431012021043029662844822975498746587421167736524139700442600270129835233866113492277050362581529530822729557480567304921719487453646539893576135651859325200135448116552828990952678822750829561423594993406899749464479560526598185929466044276987643001399645350424113635888779050674242353604926840179718619583148238910622146557549101002669656131028139580234494735320949821274001490856090504999797737229721114986555840378209574049694882810743104701049271319917400518084438907093464323714841371742681976461251652758292121301750827348612800541313694996485861108742044640911358024207031577836155707024111063080815263203724887386778609197208048303569552068739692666823127051181561548807206887012535682897190077948757516998012889675543760355104932744633702229308044727753447298788703601391201454434434842401050582396770400205071846585882160252748351567984057421697407473912693947208126177227059197694721139065576393481640920434648957526965063638801143416545313008093937663455846503556673980037393403001134326004720581583526214266399891871720545163235126941732228381971938417297711037848806080551400306760180256808761970059898023854175664827327944779803913412418274072618542510267224848352415449557625632588637811727735316309205723899250224211660023525115069816540405932095358849700545988360564533521837791273866665332536081311403135518105822141275559171747232666347311385006228886305593260670402787884054204235384182222578373244701860265483359351183290248123777896979204160536562207584168508296161961501780487238935537176750413798235194733114949318235971211259707270346956639303620421363497638362055879809577186255716046627989979626734855809756005434793043905913461698670035895574237372967053292662212112598544170593243429639221656955644910789780766878844443870790926094436296214210354726389031208992997477409373919312001274952490244979643722514221150364886337205160585283287285004134560497970235737275931512701080125181556706866343130304584630803356989372414025055307521584666920202098939161984066853398089919134677658206428995555695008594559466485745223184308344976295732060780060207232218345133559138838821664042601374056057407921684387150124094854005810157382845708470780117793504502413923097438039673835802307985064027428402235213060494630096982641661508738224003936973381660780666399870597602293625233495743878403963056756430072556046446981884965898360372553711627603111991992498047328842339490449968688145483955228259158586652333891250296131245755588797574161121616042863111236786865781173337942399600268488157956550234255765414873294797986092987997848763299255414032087758040115630268126313283627419278699518448449586494814230112770023607749310550996854663498433259064247093903964876275054118198841803587307357070225532081494605973819835868690448520363332491811584096429846626982817109806732053699546503719670265992197758636910336731493612540107031862009279581938281850036354876082804905128043923374016016118871110764076056907711970166397595307600993558069676080183905970337004503456718161558085316070458581173918852791743029336720188944621182103565817446262971115891218694081574201909982314140650255211695890719966114757199698508337862771829120413257488216298022818543025367700303877155332971222400829383776702106264412983442015556647847858177697615363954382250640851523472019270003071396861414711003719141822440374013102163871373832172570348176435554218623716402338008053818499464427713513515751436507811447391952552602079091908730451193552013513816845148660312607721133014057244436407554523194545023247746494362977194172237495293259242261011331174537036736785628853317443763715086309413930748894642572406415164424379255368828172523778062462643246284511698728216919438155589874959140623495137467067835091948022088727225011226069351912751432369974598241186686962500875938723184703835835442487359576857886664225124707470134112646459421030997362952559260279248861078028651306084078735993275762891431361665753788902610219875461830258717793784302593995625158604640328879454982931966666381928813955275057139872477564414034710299014444903008923376284674236074376368505048515294583597293933712292507059512932403384102725982472033196288139424900223686735268777797094528452494059843997414488820719407186616468685252764023546601873295406330814574704974493300139130615165085285701917803638833771149859037440343340373302825762055586872438696344629568727736812253791516607486660878475026602537217182567684758938291926057725324028373527490809117020082286658879040840451873092501614053524025459354823713875195038102866039544770693221027634938498823125507087271077357796064257003956105333852971964232536281928897666398104354278780460507724144526433605924089704395458839353628116705701493098247160035071666048946142734552605675076336676489437027921920290684206167724539171943509827411225989616849646578544648392462485572849821214540546107750739241170863148032895557958988113370382284267889117830089112291923392043642345805167752504525463090953254865638387078628961912979322676970730344765032878493780244707519838837707586705698288643107204748461461366559787081488822057008879216096034915465442906275333661185373182402502834861362523256826812713445642826846613043308759675886179750098497882026861642410238575761195387597218294627300700927230945563180864800487690212701098309689477446020744675529666886664253546511556682870889313625473158554604613677057946967223649351545370585501438538576662642538815129181119228105155020968873514397696585197402307924106420990312010073377389654751276941735971688945168281356872920735226922065120577063017255887147874209976903666861286694265414861120851003991561266199311520064062794540084768996920012226121856095222142867357137619945140250855905656233895286963898317894652605688417594386016446156819419834165426999491874335142795787489036191215739049121013367220351571571439464058366288596093817648023224734012398104195894260986420583430662306272574136864478073583111055909457455989408729861438176298493410540366789078533606928251726028395461375821284819744148945220421425610340615537093795980387127282423563412271510460423491773390484659287541944451252862666598995955807775915364592764294311522900294181550340263521175800344860043704938267610481215682734582281217493238738377612529076301663639882604001529368393284476886201796410262000942348457045689786539351763743221980949491043546474545208135627112218184224105951368917035829650552689080243138618259526954862849857857408232684874998989097256904511140280903856070077335041437495484229806541794844451279744731942920706023153606223630871769207207367952882979171643404233615487251177422692462174261717007674908092378835825484520588318864690201832351872150276971833766754428903408979783417797960208430631488902402437949976577822129100322110030820281284853205119990082592425001515363051870956449915944739045279292281239662322603343251547543456626507603608692504485323561252061137656778928684104726154540148182644081603703594493721658879409694907024176759418721395803024706908180423735736014190039778982511161166858220180432884468851504436487327034680363873634392280735204438372975525187706613552833802119003327353213851259010805810779813342175744112674028496745695445158873638140235534199509938159194049406467596116690433898439523713955631896951818626176940334438622113855419382508949458624782285624034370182912424143895336713530536844465471004191947570086878509123832844242035952549996183081833161980373381225939774366961659990135403139376906664782860462943145477399687340745113676221446606278897785477329723791101631359712913444319368632321947657522183322046883258602263784874956578213777361651084304545685323599128586064342559888884703634935853553756723831581060397737075028236033528845977155472939615060679576550201481737659172367704680366905744818005448686021983824667295262416812190979408639125743282393434560727423291107349607199077111227402672903422234947742599334199238316582631892747947763362102264029679401978821679923408076451020102135798688267468558510667953448895809382905422766613257674822837365258126618539595557428560913538001959563864095189402855804039842719820918636491162947054016827184436996573037929219746017467795862724078361781877131312635843667894445048288158840291868423073114620183583850313831178316651929282322984688918240209197483693662672396254893345886993867104110504178885870934222745184615051723627868979669332313276306996395452040203416643807850929220164555353064261452083917304244302871284950458826109399533209479017053492491242625816923424578947111751784150529747104913588502124159109769913087683978687596194313891670025036758056672033104429246391014332901268591298191028518280237098256592799642686351888269533641130625438830408720400427948729016169011398918817978944618598708770742991064686744658253735352613329184458685955005572552345467729880555617325457095107683421053446244078572211431008644744119039181504569137925966421254108932305603700784360396246667398375144529605098784578196852219065268437680221236432437326967766948509537754152666325176869449120146051718080272001022335867711532478034638567873650820562979510362621095890931771936116861002410573907220115070069082633913017239894586119264891999567386117121493179651855831156547883738140247276560940042225422867769901857219298461508318754479145403868944308072946805485967811294847713261664171327794901822085535038580289380458978015745412673431238451209484582302653341384622335315200745442386180352910131171055417908653257546621907882080567049034625915488124557561166789656674711248769896525347114438452127689973924352934273080557376212990406505352789260364682637712624182275548382091878649454674044308951349454289575078676750994856316570932913463938874024894541246850417333386924431472971825850577328163720532784317654685664633187059426215377471040718653952717923562148846860490456807251525296567289664184962937621071177837218379785472950387290385489575262182002621125878416233723871096374575621951781671418489101231138094470031041185542534759762791730424422935000067249249418968800179959611458730207504314198029633713838558679350484317537706046502719562714282549183262450128070048187795603756925869804871520663011871905233631187035930510707903023284041602896981160774547132028711071615019916463118429731916163617503958929337798527890806975120405767753595199679298110567402789302890960091677102329130984940238982912921669363440798239451774243951802253261567837274577822321991180790243749183569265483036111758844441979832755545155137552704141869269978294583268926557744230796405719100968016725737250699549398234311641897465788724075389431096501841762080947254469581927780561966095831563345545945907456376961981085762301235402000336782513641160408223816913005043494471419252578253727767247650459930202961156399221269764522666196170237371435326809808053814710038679214388236339725688582827165418337256493209767088823290792192334843595845301550939447335156094690534073872307454179723734795912993921884853546675513988842339594613020727017358415711307278848342940214191450175290571657660459234467347607905948865628216621054940086332660634531877897114956466996135276804941664588015533187324466868410624103025669646752477846762026284007454229271589991188534282160048100726374173370884823935501482565232050174097202338235148621739027382799328626878306558465174485806913011348899738069168259205103124292636342272793538609914007260235395139427939897735755006704988392316187509260010467917456150700640493997264050835311483841724824310487811829455256489791810661336619471845359282144167467560425537090092363694192628848684002798350164501211584092885503100927133468520236925172626630923287313280128251342651157248061348621586931287581159850353745229166610230504522257299533511381430645397190699966152563412850603395611143932260316592078386692155323470634143886424492781478770182348259995544274862029297592883308360233769458074811405109437736263022520820825699162433908031851909063961173674208778007685862019743559577573047703173337809529102119583518825263840183778226815214622595917838615072170482148198583570147814926436644768986500777258865136043918641118334251720134406197490629772873201227422157011995383651040950308099323247590793117553614484652717488123236177882727042124245258846320075582274785617921017761060131319579233985577202955046762404210330858709224463460336699088004331606256729975741470752554474396682662825177565607867159542041214810011711464850691961086308669089780022980073385445437290356729794628888401972816075285136092549772829160491915175115899110887346346417357185860124839120169040499051655568407848631096002642084072793233858335971907556648634337066852943111737954575795640321679054634213621523050069081675273568191047518887125842234239086338430710614902739300641729977071593881756785767272589011953704424702616488785352229247404409608746090135524825628819965269540237190308513593647300474079307367262365409199825986708356050516592039958779178246656117034658910565279503650097673518610408024167699360990849232509982080149359274779774937599415556747199039745209898720845956424586955397978934954593275152811316480486597176030501531506524807350668189838786420703812954275529943987730150715436264841139414008182473611173669623118003719396836112386675061482756396151102356395087566313737471044262640018793391314330952256950182941125414581291449323881072613985664693767651763935484234603067871940790070487320335860559434479082308368651240758342190026205129844397517470971963286364179090084311608595202968568517456044441918293716836660376816877126935467855091026463691512024906381047649598716257006433254132230132647724211667865195158822422117426917905775771400410483669598619471867698617542360466832540486735823809409753613276026121311708899607470099034640721468893826595676461327168462785136865850217799091057267633791032295829166449158995199924174711424627703851229749506044662636378700778985768148619290953212950022393228248152228528357006267518315873137992840769462910553048412741702557022727123068396486086489609404680367844760802784978764198407872285340358108280762404074348463072534553237097819470058093237133653168869648449526771501207485942492926195270175421595300650922115971979313313660661378178581953001174293832073229493952252103753747466695268882436412270128185661174482493297204777398317672133338718949827967840579301561797857716749990024176863728665562988113287053552700577946823461388309459792384104846846392836814911952181341584377406436576140917164488315980071676680759652400539745695377850966246992799940370596922951652399855824093303524723207865054605547316391501631215685874785535341649874648917170730315535413840075536888065918944107502222675587203387538489121233154660747349147630214804002296399998555447493765811811241615391091989908307188970551350346603059724959535479633386320833223736795624685528918353742946941756186252950562292414836335319451432153864635922968226526922340933154685500052950369735285860819065322333482499658914973203917334978422945341334644282267912534897734348181073731709073477080058902163693689574984706874479446286750769589085806844248804845975838006132878708187451019531472614977511650079612150418636197370508531508598099218064586491012430787592273456034202270386613357935802203890087481772349035890348118691961546677981668118674284872677409714835301011451439096482411642793072474286437856951813640936042800610383642666481728670780117175262449422336521558518852473992737232909517116762197898289797367418115367964196028960526677406136638298939722957386738552518691242497761968829777965072678583042602061154555976461920332587788332646668403996813044374105738890294291308177027806170146004755438041524187147137166324111560959879949476270220725917835602553106800864336595392436187325714564049987139567312476312686600260708879946639781419211570128935072707395547150520106976018142975266334781556709872405585506618299744045416422435493400961283653556177163463455916247431814018395656329465738844245557565015632443717115986638799915796193900379768899915181131361879751303354314481697283283311932484028606016505567996769616401875901548760628994632440889176452810805029545279826810959258975049870538310628005876927872667358185727027547337520012800865621078988371848330031572393191916038816828906211397703015025386102258757428843367777038460052781287992614410423986652308485234317143818127740787819508158854648135567875656545766030894957212783311390040432077222363802419278866971600133363071222812317259108770797086298369514946606255970894837250245146254258178309106536652151703203049580598673082401070886948988422070908578312462795957272177783520983191221768182897988237775445814236457250411913335064901664230622886433254216530966379687608440834960605090986139302479715932552302764876292358360878008786500807977309188667045237825313104414448676127159900958805872394392061060234252686819011843559947260595966061115004841047877235740161215664766239352799929747323449482930107592819978372062019162897711483464514758032821235319236766522079883450010416176029643550018218760798661126051887230538946288799131222591482192445224206462995255351068659344002915590309404319878921807998847687810480941605607900168290117441129452044979103865878988756850514816703259413500613246109956034401629231079919285558076261519964133840811861616104800549880358245442099616168300564363650705316627381150909597967355602826202211233418927887257219572615785744711044671321301966956640809544318302470826436579453442784870269280850823421724006823132152138510939704519310251058764741765133811336734066589918248743121284628618791640953217777861265553401436738190701967883602163624304821712566074387451712293584353107447324106445427396620572551589782186077335019526639631631615918702348310645797847387624795970944682866306920703873086568759050650598982823855164407400628035049798437389445280733224002619672974767741762414150322425482571593503069229710114310347204007014702396503154038960501688474640852508756356550365591147116791498034486572058688009203308131471552464399671619834756562734221524061693063481986015199420491942742753560852175721477811329765950430098154880546747090289249124854709914632080033996537776374757904751647438772647631161575471534800548203893238202372844334557326049083697401380614953023805910111987278592545064976922557984444020842187758840830648361053959043599287713548844301079755986537935009327620251642238683770983412610511937738814757813665252654785727621882579823012224637544396368293907774820568730926687123266998325781328105956571632568548623952914508554483234336253247695338220214762533798348800865132481275562663474594944413524845353519224273471938210820902784093358706842846026036807614444871183188963247233293275047499757352083448681988573054334848666091997607207853301104535081662214735943497792655495899843074246052430528049537937448426846151113869137855535685319930784943185862583156507946770289016483156123396436594596191474261818749990760206319238809796711083983892042921252161435897209648833081589730357681789642268360732111265768887714029330985292931313697009823210641747106926012254711134232054133268239252771486221741579435639342448459466280917292374159339521076499064525595618661259948154331331235359099296178027309111972544602201527824300092459006651639899199979174773394941071019219250536801087782241803258694429618473279223288666789592712084678163382547532971284350993659558962950495183015585498905567378969562202385858126242775091438269214245271294265202353869632065825711586899809827672102684086743193671327500013255981658075757058787718540012739249023046959347208766133121958673335174348206787053519355961745416594192450375339349568672743889890025843027631415639043551183676166139429340751279867566830886057542342611886745133491115310543037465274999103244589543226222932333467168075232067079792525041262919637723171965611197878665395197503634500446150787354639103653267815425731953257768282827146124125814217621737918423412601307508644503987800122542310101102366979961539832471727893080625121467756298232334096714260476120090725138313889403821688534795539953535511188426262740872826569856695457083449698629848862882104449026351563557127695034332719106252139419173983741450007230285248723291069781207475276060077645008568024578041791568437871252962717597243454604174237980479016718114665511993593559167410991755499391330705393955362543270978623948970255789922461786312460097056051821357405207128770545002390349527276476144788359991412885373615586621856146789097064607062512388149323134075809261333526480693708225501795321618652219058408424277198044743861026328581278033931410910028246680407237269365518886573160890798378391998741843336406543565338768731570238999653115255338004041292629133215681514733574697553633234731913751865979975365400454872375704074475704792886561151538436520097695269834014043563840578682946936263071632132311814036821606311069176166900649761497387757505939519821392772556376684015231448284687087795649340824790802217645406532461754756464361630848538881926451139410735105937582421195240783052968215263894249650943550704119231615524960926355761330755335272115601482948996077363999777788371358647274629926379554000107025162320451374608082434762552135141779846823433350390327039502048759595673217652553877741287369165047773895595301808641807609381903042968322607541607970043327083931738288275433855454898830526968725368273019558780537120703857514857990380149879242462059762850374557175205023791628422773974166494502256189715633351825396428712334651471177928524628581618666485287262459965930296925785451061353632418950367981784378734271842633930426354273871656904550211700766017953931959579356885699488897630403034167727847472070308699893164395701196548316251448310038028049546482254790831665512768616057707135956083952928361422220428510114214891672424548873530618033703421650723867766325411999126367695085675489374103865076552915131830958322694024228238642455277983687865287992422384044982627635161352428218571274647413802240432803209107973988683975181561455288127801864264692195974886450389712991526277080903693800194312191155434674265977743771572048006708686857248765910502749465643208670959903859646999676119669453371501809094646030841108271222561177090632210492388922272347358696280832325041798757668271919349530765190441849284340190622333027183395756106215094286130743481744598745071746848228274840737120341080315404668083564220112976296214416324468800994484812685655903107673849674985334284860623597414075764878512629539121046485727894648137145517321968590213806344988442156098660229620697800184699744501495467885440097378727892366784383671034395054799282759725133655901276835266819735551775080286454629925769718557883230568730602671218123502274146768198154810717612939459900477926273231362414206318421623041458760683496228498742684823925759147968652714783549353534743736432108424827454362995464450346400691513807186774730943160655762440961467972440894968741090315601548631476090866766482881911996993252436698315892509484597669462241539505052573584020356978387660529310761359729092203539128709032421405245176307431523776176270636547415595507540116132341605266546855161783631558860630346212157893523933043584086423641395197284193355832017619421005063403297337174499535522559667297496302210830752209381281313067977827754022472569286043921308183888965817410340144255896175838184572157847240759382341632890893787164595934117977693194197802081921721252229438206992641680236161711527118836788443170303640807259793069415488050385535725115936801262325291656635168980368238645599821931375077434116731947040066572642178190638912657429396592579999913733087814152841950172300488111308935832926756914655230026741059012413955050098428838167386256937665908291897494262610682663202193605443632278630725438488487035459471833552264584380469811503710449066937192950094973841029451442437639434354284334183641267622006213084948901063497411560816821482662180371842835306984885407895094145539887918771101186834759551945691198005465158749193249413500240358040258227328743521084391004163920078989155058040608030189473681269892725469417333910360003360731883473519117115438957550538259762684398514347438983260988589619099395492410892405634690723914460389318562220103094078288463897913139644563507278788314450374589982620080946157878769689076176553469081108634797513393040722749188373898610564139335356325572069176073454587377460954180846901316738436643305114569563229297688806606441172710384407593927737688165364766716578221328449959756161558407679168663235904767158154380268693123789763695949081104269854900465787176836653934025258824425343639968446197787068249247276171817141213345209438515989694295378596447541393335443791375661669944036426577217516232884351421969119589190111159077555019480598453487423479271773829964667012782554351263098614107586829174405816334373646101132598672720109423794508607816734308162563716015964715281928164616005037438315132393568572789553765517157719916538836123369775872846467075194015066546581499362368496021935116432107146674293075991003224206807286541298601762130332687983916782894570646085424180141161417459707023511287250460748932783132191908293832581125230952355390041114001076483846450876612677497840047947420413224243796809748172266673301655053847742620501679575034456849205682749582231244690612525305790893373842700710920841784703166457068023188677173741438545134255904013855367998956578819430699101441349217712834988400650120899344065394341310756795555428439727876443792131040360146025562158386406512818371109136220405897088966674679699751143935662918152315290232931954670159666863884804085703316099732975258078710629150377157168287785740601039105928559376649393627224773393081307051438073801613332269397964902012350547026822906198062180508404582633330146311010021618885985929840871328292811506754754482975374094298286066543468272526759643093492468264405398274030024961813393113895718955786128187155124490353310828799389503168096769925716987143613754967972376241181128195431589621200710373681371749550342740734021931657780229878651611323437262582569064738906415271716665729438389452740861622066202321489651338205643372871995978392459636125155876106941103767721921484735295246893053509351098001418705439732763109978239391800250393157035050613856269680132365099918774450502940521263327296594900298603195957643581890787913325026392807716401307351157409927352241819620781447549590783219200189512909107921005176516995038218315456357250526234207742479150365294273269402527393998069083898582896380560464493430492478944031971741624385208624718807845785794439286677587708589269384003115321024967958841002180244652612406232640584943623574406516607393491246883916662180229943067656627186019191890172354971624219956307541074850464299137565726921858460339147870313350379952995280532977669866787860649819790018356880298965531812618851577062092166900049407383570566170118765556984724186806454223177800273820882745502941359425233126738163916981181343786069436822456609485666017191808737863814652022343374329362924466679747175053777199027416561278145672553956006570377808871588972585190802285048078503651446295631307691291506221437151537116146133480799572795171394409457225150618043622953096715485970289604186441223125386680534360694851570307558366266470214678421281803258343335030197347703446361795168362618390664301869078796057379733722913848322249252877456847292752396855842042714058769310612651390110721845355547159064981610512541927451964027664914431682576264554314168341735882135086268419432559244400863451998000544125868960482173822564902406207923786680280103505660093831568340998013348664391737579010247536942281991255593217118379192711592647403536875115208043335569144990679097095384614051780761968800180956801851450052804206731764794406868525184384222118366720183576111029301865516989090119839059748925822113227289654689414530659526981340393913650284636172597454089755428230245277041578844446878962453218772909902390818817536687990815108608355366183526797629156358821574400363141035495255008095866049113819547520737846312985262563948741856270264190759619735753341648837875376086187439564914119804883677814988060291229364245264761581687583603639357417876135302622326364026616479394381662023834082285059576383975409529049958593647643727343048795418455842055715327400255116960552236071053628572022869124196792777235744981473427798190599899085598470346588745857910674524519546879357767573137584942623222554324509530520037757222643404281060588086869466336716549394879763982628761492459536942369899532967480658149952170245340282614057689651664038230340785664687935634851651614799504416246899864716040222212141851292865183128365480199389598514083901912222472034155864308879969006743993701103029243420970228637280547109792566961620891152713957421497084771179751350823340314393636390138099173778994176649536068825120810698290462530685573841170947166014012968435308651759171466928526011293556771603385487818791001444653088863428228817468341800033392738035410301983885763750999487023816207779940525733884931582830928052020642247475974212984998157219811805145335317996438582332163260927312830193746643208885698646069894157167101939611737870554167755748131288435110295082955463765890349167575472276777087345887303989265875227683760284987948882140003503595240494433549209079608100409033135965063208357654236072722256082529910327722359787760654788479065167257579221706959628509270840736852527925912517307914727737935801469420621799754601101991562974210680274405769366767857505863877391088514182342219590936555736864732008145005378312016526143665136915394459886228816856300668907483395260038371193783977200463988035250824748978319942508868155211986713020007671467853719467033017342764774752948721016848228354568614653118891561522965666002416667731784049334216394077295359322275643898971896308895252034684907767051401436713134392321596848722080076431391055243940273450887875445824943426359214597086927716267205820433560785043664610227652146669892326535913279694014369556654069410369200282277034564008156300695308935213028015259587515925077811823266991888154639247632315419640177866323372401006741194507639805087151459862741957661853898356937078318786544327470517761453404080451597002076511594614758651880573113584495706290004547957856293458827162178584636048760448389346174459112286795491362892582078287229573714982431900621018788424887740132087129949775400427406116274489608212127620077738703238126414110202555004777352943760377715987954014721891729224581738679568636216761705107006444890826324555770872755578518394104586591724412692795760617457684064848790996238100719860489676773190775209831646403008065488736880989940922735293474620720282023564320145670185068371331396704761321803149812470258938402493472404158534021855384001677488204128098468111757426968336577875625892486016606529484374450174094983588140761478667880202232366305115201211273745484920868044933288931349706451243886543737839407966741240281378516832433839257330973985314267184374428699834654212885121007184006197032191172031875931132690330335694020976820906658056622736708225845796145093531819400107569811783953132693249605177173861298556704859588600088764281317855493914775191346054969753541614633717648163729991994788663582670646840388018956534182209435889749369187598096355300435246952882018878911187932323867487662358829994444036250902846472309046504200821114204561785303241382287816680705989529939055986093646522988358190428423292185493106660796217536657188591420267504370271439884225700202676031472760217027242119161206479852354071569101835544278599870350232423956412519176950859904059828699873607080690159330328812616538949436500330530131395794461641881188664093985651152833445581316877431907225356940831677178400658608125137693075962147484053389076167159986521851579018601819412927792804497597934949547138382391035291177595040899562741253007659850902407072176174406309254318527777685677905877581345606761738324078361761981683681528143508494158466825016092332344308593573234709571922981003341119057880203104980800104890846583921500406707693286539794317290216317331438961052384974806968029247165959020321081022719949773506244325638781773811004617412942856348389411051204773082811642870436226556488483771018006934915101141265934998608929322186154726307117812337946920885498244545220239817836858194499964526136718465151519997990966743270047844101455092130567309074156658194816499109452557116396836015997323526167229736686705315266422229167528213029725829980718028034556842546177064529045196992092645398659666067542072662633038168778840914854479181731689111280477619103546831325640314322527489695301631758737726081396954445990272114264814502576898016856647138673642226174930850268580065621722048493064043902622303926367182342617168058820568434139974446984519605444895704121530735828847313790893768262291550157075374513218000450057629659244710604354638478137490015127177784976150746773945431896374410776971282515890793300121711885545944792086381251981127016781533331085039315933432218588112396473803015916827314413964266686838677548949174204682895440176447954343296933435932672902224316398929574241197571485666026853726413669884086588810934374225972326652752344553724928219940189674049378714691150790241511914837747574275949355316171467655330414261022206535960040174455528965610449750651185596939473639455102588163820513591803028087322473819606993728581090495774159936648510359737805610416715742511961429606269930810345143171816899594846057291370860442756064210103803820191643139308696049200202775170747716283016141194736327843113628343709507701229802040649297106032461802334208463016745794606841092610402502568182033825608066946987661653446315475963026072262122863560257753370021020605336994641449426897755571719121688130746891605293172045925933024685387531553646890187481121170769847074802403860450145510417309709505966475281736074091989350997520963664793825584163330536989661246820047594038065091242035146918581531429021586252705128322751920138853608419050531818892869977661163594626443503887794063869805491413149741475662561144673967424812859348864740632373552300205839170246866630719508867655402338937301167555808347269587088344776200572906602635848914710845535978543719975760578011280960448660696536768206964308933912923435280860848392986665270942023100947903936731771092875726116332696081136422899741946802549892109454890563062589045639797453224375375592312361432699747370306570992948605996556486392822208343753256790745513594577661826136045731424348325171911755673362913268489574636956571652373921648670418665708781118932274267335691486733849188817571191823773103569319620005271763945472821418041522088493939429847714353531917274878971255943465614657551263118305882470553262412858951553563723961083503432191647209977165031554185055432506619945863771415629685143373968371892697294711135936911733630831322078728307330682765222700071442521920851732457303411539186299639355314382109348410094330784492752913041774648715318170161095544489027010312119298951936377332101262001105655623206570020153596913807115598901599987023687172603001664699071502104102261143709230375783150506419691534278361363378216819694073847453152715459968056944853963647849188547970010462053397612478789163971082893323306963395874562518965091305536804205582599229619618065166832655738044634533425845928143992877928283418582144461379486309706950985925992660009323346547016310163177922610673240926181634237213139147930665558725821395075273650630863618938983323924822674846755221800462939023525406263007332643158394628665924170215599304761207782357372129315424115537652185174361219167693429957356287857175123957628490500367245995492556409846499527088615965164408969188914635308928476079443962861049392872616657634582436729834586718136758738542656942698712560637692324815956447186912304023992729989281929213408502537698759316377199899370853777488666273482461745407304338904669417190858061356640058884480147706882851247152634369024091503704819043891830115692987157559600565569991432314608544065275994388316194606541357608967083893533047987070379094410455318281739888403935484608925651921890073605946392129942528413721646675388636247379865460407333441315868281660872184944155159150282031151917176132125674789340169091474202092730914504968023994567792570650256395170665332416840633650473497840678533857287857544003041633139275170276881530516345250043532460892837504804198920450468273826776100441333449352685494694546628599929089277713803563860641866336938852555002927943420062067798509006285016412694797987552039952221695268154076935542258021571301014881462480172986742098480194264227945506984098080321675791117021311005632378752674073387751228257601644935361856001963929427114004290201086536158785638113353224071318304365563163333482048799199696296987231922627518336707803929842657782352167652731220490968734857624822716841391707377246863361749804580744692026668595959234622300179128264306585741796968352574418625362646781173477172506197070852771687629010116967035073038996729632686394602016210618586205118241063284638269553562759386221891294597270833004547146522570881707540580133220098146427031798796113709745454363192903747408319973502998708383354290909319471085044840656258408121593388096278345109791469780903114334958316139159843625409267016292513247181565219002139874882661322598915318225969543952967171265309538799999658204526915449868969990539487766229045948964076994391409640031714332835767624891534250173262907605368880547262928221474479857896062980361613626817928523058157114498345781040748105541125066167850248351424027154857878048342598875225035467036803784778054004791173346929718082703049865053650793815896276517111263407919500326710882549102716223249117549649243872636421153702226776153001704419939767309961244825940943210314591071674301789342557860194355723775932206803539565587111773503079190302361794138503524191649360991419651810088173984517276259761017220958050071423108424311438568070488014352350317261082928429720310372625707188429506753578830207574638546240545957046169849880476547512126533319641933076311001677285656393801048596315192647357340675138946607258512437961564156820575500032047142830199148813240518357933359144037249794548766443292240800469411123844148550117745796840624096799030309853989338405559223273688394537687286852454741416689427368725662397654112224593641166414269542595084359516499630212805676047363965933190763741737630717979892108416526270362922784627885983420453027812315511323171869169469201955101318805728389861352148586324010421021925418760263041044923208492251844990819860895729661356815552922551948541638939536514320763585832120247669901033584710674560103152838193677924625076492390843392727389628202885505292631623542679065461363331814461695015799795936555709562301733077102082572797941546384669940556996284869366930083866784952750525813036662462770259076432325146068175755698867294064831953766499052684901578239098511854491483410913783562508359186038196878298043164327618951375877482664140815358739012133980563660635913623078852507732258211901506525115898018983172788048330778119276574528573801444029454689718184442059069073126925223309082878805806659612995100502143263664363050897449028250875660544630511513933237336322558828025797928612838171382333824138039407842331767702914016176127967733781644596280595028352717481393054640778942623118947090427614539645549145188835990448964453359089247626053659598315262381708931498480852863304414293504031484141854833351943963763793493315918899315210387292528085726660888439962926566301998408220461273383932765981006059001567180498508460849056687741872607437064115649832785947295410566195550203646953299267379368925690296245425902402094708623408654328448385409600880708688788283627637406895553657419248207483876791612577770573498875300396430005485782272653302672020186600537385080727740238182079877464324862637098941089515802958167387875317089732374879567373595830036662058460093430872851046199482484354277451179520154552251986917916524315230824857334524723047419188450083157084324999193497470538734271117292901928867498439272678217566028212103727351230528946857911848866008132877903339520244628469735893289044753425287690400888371223982651989952130964368340542486452455220351602533404962205321211118581691409521263469703219773028741150040478953899198261547630963934623988319365984237512620839059973137501026399246475231099492360716979267235452721864481956081067156849157655904256992700026003944225257657150749946881064580808237969584351144608879113986480524132788494916062434589879393052919162859384071303561091146186893025102032803380202399753817672576717932414752668435965895465313490351626244921067621084622525156413933702434686095853724846084967000021061077374427192494518027953786189255984888901639379526296542777326325715852959950607906216319797109381710761967604941047306887216949300617244250985802870696540030048615672622620776518264081931247261007966127173450511488312301503326673292296577710495351134755832992128793632019507344967242932399316527592311335724279025506730518065876272402030772633065496673064761235351299378049529076277419846012547133073600278470463953142546367488512698080867422427136511212513611324181831900402826861870167869621758138125539077270351792513521007317378715910627396147289545994143595472821032195549912125452567717063246762575827178447487622824544603916097638348117579718186467534617277659804343567987086646667183953504908369240845200802784759355354929504491081900827193428575761923161402594769132274511798360381619419415331504226566799592280343087545731424984962547484162824071715914531065370035678098988963674026924878306972149534516811723416094726561208883557141629443271266302403814993539880956352164811231775947122377148698489547788217687776162869013966748937283583449035848658841935927597292470549631031694533753599213920452332571869553302854291680841702781212845391647223391137044105478101741994395273349715181333656473178907121909642125809385561548647020075728885953679775998846925335806420803653010977330030477857082459305555213684394502647411091520444339163917558687119246807054195619496177074723280510541487038951914757393595789167479726398641419068826799915042038207997790972149826754165182189622731038515529387024363727448284942775491918540967973211621443500822062034010486587325219491141393436555203799188214562180922636828526285071825470422069544604459507043203883351870353871966093251959676031869332431769745989442398676735975966270544574915104199881522070020896589917581551707209126993521847725466687533126836136087703047869638839133120733677201997426136534561083119439742709141929142815405069401732398201625075583526104940803455429277905543215555309882048189481758341711828631822684345580571633405690630421969574308465088783777845678693697005259584255273097584348617225595673159931759514862966753902888684203781231945367220619807047215292103859332255059645919878796234360547941845322808179927566148330630177665633034711775673793979766313355290121435874775307296553230661604158685304015920604649499858820748691709824722249099508135227496299872415171813332084673052641064622209132943996075499317784251591825145604291260589801540017019205725829218594101298929771037395310773963889024583250265005068685548952408876484488064664164074288040223820196053355930398462682023027529656883523818698742946137511986451483540094119661069458800443227264994415204686331319774201644394839362039145361348368442868921866933574706755632453039891096318705096712854634986647859390238090388778968274779782738294465943711589861550973915286968920562580959425665617002975895511849312410756157833896466200878981044045200733662164839215229802377870951091867919882066293628514816391951965861205090313647729436255668745431569069397510365203350427493974837982141961782784884999597326093083359565456135066969240406164548520213192480461280711391323712105918193492865483911624498661646854127639211852494428400463859668581401454061552933737995076209422667965815171048672676716873946242577208459627745687155787872987319345113402295810930968504556443058615296374284368926539929598816002131422856294778520276557467361256148578911668874703904500682061554350709757313798235370618066314220502675382362615218651801899206325644263278675844307297488031737442085529518768592654171766918337307279443825723215841558423123271754400221516134767826835916425115756031416718934334718600263389373601012488015974034762633554536084377909527331955635520299949793313151849461817615410064308747435076145511538803694637861412849996808088081134386807439390511486585063547289232183721116754586306646300860362384174822330924467062235537209140125173676191019782245851897129141435502465410652608865883954775000125492849958864122114250168520931019049049735881336925261733923350369391928302918219166301646419853343919739370036103116013718819925569549990906827579500783496753007900873179151866481409789442899671450674478901539243294198576013881784798170252657858540597949789162273629704802102593537375710296320701866175278116644511634653105941902126473991553633743705900270402283106260673219047957328200797453863606105006897397473291289312811556080396272054625525064952205289215833126717031640165021588177618160747168438664614109536079479779795534478533257266465925314263928812037865841117455375068441763943168018517893141284717962866062744041864411021243129358422960033900604478438593883222679169269582130040601690579058949997952914339820223283203104111628613444509958563334973408105937050665703144024996608911700363601867790244393681626499911927106468491951397897697717339207884065894326377276270932788548658117067253236724286176259970405034561455550520168877747048595545099554767410105286441426352340682808509020914433839353514049054087452535929777376547313923762119075534240078554294432956132703011286916521045146535977575496499611820914907420601577361535267238954226274550881413343111443359407483300266560652937027040398471598405789611804246145535176597604065257063677156134158929936734953185139841967549595578502351218698361085443881182330219269982470369435163564561938270264070491836447059888785552795370748119674742805116082140252918584457952359059795793271121117854596167973007552532422472771530802802222410224245206355231107535577237949760468272331809547133094664646801408630001126643887275808656610639574132631073801867681566176017360749034570850629636093267614273685838417649806123542882469135829772126674173546460114056291328632379434762327829354100281217224130266173912514453750627606096538942938931823834290355152274805713464654634469350237803977672647897029128158437866641570995453692953126845104798362520590960807397345308041428031838374817442846674104822770517215655856046237098335465116106147410921154721172517164283007168824654406889874541392808083517933206780881839750515732970105359709852027369974244731772363695792103105349042973281149056943228294946473279499213081888732139754604079294906019187819099872225847915522404695249721104683093619851817833205103854452289893940439783873694295100064072730165221554330358663878719723374954997984678876580286056644784315697933973110463059046290278976147790378350524633919876587888366566178572062106303735788034202307726627750004032962992022415160668676179020482310426407145000778604005929476378685453780391418539804560877702723822366038736041704063607501780346142541068733768386243650753886364720200085359896535810422432008156269659625944520541131964822361649596537161914498633926900336435233202262940228966536749712309384898736906325259497980636653603850976622699084990456371908293246690973993243509916551075901777869101205621041349647661141703666565345297729137563762575993646172958748128766967974385636329785953907686331609039579233036058248251591354041960939746364225927456215463196231160244717274404146379960164846332591383149725091273418170407108630747334327196753295990807369694819352630085109071167349952824809225150782583576653605430209913147133722124105617501719492756069406501919577638351017538186357836177994165889441568277803796416674645789079123770487712394657853086970949656788380550182919777873524918970567843247728505576876612586367533514237146015778979167283979964786117648136027077962048382267827967061995704670136944448414374177706825063155231687974506188575814794851279477682101390949884431052884699789546069397193441037898944361215270930347037643908950592603765748796711888610680236739285264271994179172340785364672956796687629151544398597249560499738054948536822303175707056614127007791263069828096047614842309168926211806663206777498097456215257191667902523839943942721654781112269685758694039358688570336527050471530501182422392314634100527866401808078248676648542835244369441644271586980010933965941827088138673634788753769337332808334880981697484826985475522670256448212776272264465060523155962358944812657625895406113871582573967513507821438427250132433217376537430063139025011796262285399082934862457536262753502778678019322993803835619551651013306379254851479113956498423244731542436070496677272965117014764584925691029445157132884426393841091270801630571341639070731667097419476436075303931883594552613136611678702871564245877135025031239066221611604159388694214824177323972137079297966274238781418765890536302487332424406801107672247538769399588186588037824502785215363983930125120419304797681077434246513180279413998842269959387009680247214289359221310285137022031823972807221979541786840129970929911856547823450903612786780882111533358417244403713807920737227634861477860619002089396407520113723654793526075128085242808628516960963439124637853090298957400496520059022325666401259063134369484858416438895222018487227614880655416123802538840758484333374385455103397126334458199720614474270095575908722864765697030033345242396068526091167280503798451473109057175800061407982022650372755129780446614723850221654654266314418287152160036464641167075146848333612316807219827736882990933969426398691939260161962723842473445175075793118232372262040637212773345868822313663946680324041700733538627270891785931724768081780220281714218432843085137514004531810854350374771440113945025396249279577714498483091338764353166493830012273117195322944232002367808845440816876974536243221805953224502514971563040060070366869589476852217141431146458399861372434869623446587362090554216841766741601208813938319773489636650910295071816307456476142688954754893572958609965837574451666552000404958654588755079939990640957377607175159770478391194099466891655466214289761703441317061534771280721026251786592114553093400829836230986168154727246619026000458387475887715577189704404064253502274354980301980638261858941070606358599687725680608934564847071399343773417005858935620906191978771914624725509774985680544510620567022873935680623037222656069041163228649072649237368215573199911114378420834789962866358266553182444051337804614388141780405890297904763692177848558337626354436748140235847268237250355188267793845181604378843122899413864224683425725385353777272538451038135036929402714415529012450625151219755136215517984368958920035591545915286530924779943984195831944713856100705671229314151183264925089434461176381480755374063990723059405411897094552231940864831299249778445183451223619582981170145689233207294694571377347435707336110955446737362247358594100354074531902933540133110727866128657274180779156076258261185605770744452652385829461919022378239044095331810355820226203810571580940949137868763139790954898795013137279160969085785425824473826278953266104260487910523986396110008657388209196726206631784018159631734747664442623058524476191104201543882159197774958686403419248474857897682459621265513506095276486233683313266986810784538716245972158995887805891969750709179908856991604902242448558054703847639420157301622831367214875502044885583740849465287929074660591891657342476830891336645547065915948922580881238031790646138534954957195027796918261746455844221904145393357533936326224026952269580888916484108190507899237367090573645782351774081037647394682328617890965376281906863299410138402928063443756987792791946706000954969509722738609467297346043501768527482773652255767501774957848356521444696117666014647607155991709435977664352298264738564429283395699276764315376670346788252861688472700102707781826938309735199736677756719912620368583970549453389623297650882630916552151261119440878106314706087824578889842050007248572562185144753636316753686109548961466107693039007975761166472427531092693759635238784683501252975948513115496076813907933212369619050123610664977964512409807831978106210535993679621419679355530793292972246766641075392690272866979457998566625946127457911935411049720720459067150128602521742643284300462120286424048450358373213734629536904459095268647398418067471585246996520188520795099847000353978303235754173303795165300204567053469397934060291598293135508943971958604323673048352797893605359409877382102549848173388431596428241003164628554360058346404778172981518013169212795540682069513413395745517810220763940387424959812903490520135549994101845919053182856933213849317763167606356214332199061911881459764393316879050161772467261855751164660277342118438829248352363615305509768487119402015610121763163888674974214308875565533619694124334884388584602828886677120176058881634071410423677614283262267512787601649836708095239471776466578064098856836317632383263821328751602629331894273715273472546301990811447943558214167837428980831018214162395027389849669873831042560747853943681326516581763545297516850888439152995324984350427161452810037114003998248937547228051467245559089487324970499219226664813374698768042149631761739377500067278254622316273792740294273097002854476447405244422722582011028215128925241943271823624703415490488988593476133561172212641830746014540549349678245373578764301741791981073161882072170918014640950830609978563260420421686146705903911974919472743295110139549327287447388333708062114733969575587724083328489628182496612596496350590846197961324121063535084446907143723012648545562854998054747598524535684166574985160090930442096384944427110549553656196903419071673311410017526022191064752965283485934589865457632839240374178407240225916026786461772423382802696158685826291098634624361241988420443526055169458900653709657536677111902200234422515635242138307198393786752007940497604360804609617719785507319992297662404620730850190798367627159543502671335957841790859118563019757773867890309906051272427803670194542786506095579401987238960772898996903535305417158373729724292614395317845752978475472211804931437069393033652840329447450729020592456402052216169484107470932345504450624330510514660038586287451263641410628737296718084803100599445503672658383409963187334307012698542357623759564940924363208609450944930196868374650797946957687243548598630215866044846859002881621151339285147236444100186574017798584376977767933725516118176930246840502870803242243107365733709614941318339766303335062434428990649244714366745604232273859960674546887727596273488008804124014981169079221832651890164982404466175910870243751772605088347277658163815172046114305086455242125118221904506588031298759760466613020949035818656693756165487284997264601721796003902006218844639881463323926176618528083518903393673128212014083895652571891111375673071304728249930519445646046274938144469244132737201785458039674020412764831227520260770156773034307743924320755847272028291727912631227736852552027974312925456104840560516146008348208446335302591412431058400192354259755784180395439313456977017926302445868498396580874808066833267833295978223660496762537593121585978633873463329881149817169021683968124076643228756914803790568169779076953730134697580186424870696933693966943555537072173859720035927987049908737977845468253785443032697378676898939156176141352365039012900137739316063973906802945818253063215928737225679200784258173550453812935429229501390130405481820759197081251475940240327223866315521063137674862089893937530441565184302237013220518389188999128560430409930023003186639069098696634400645127735015996328416652784776506340177980571394013929871502856657765085045495254259316364251141798123793549544218466581926926375178030550167986380747049538266722879602500844091395442888285685688901754888271089547895871530672119231284145199655946439585007796301695050558342627370682377175391761130202310735752090728215789904788702376553114267578068666037167189210176358593518862373868954501984386918540368509925435499422963304697572346358314459669252849828047732054133607919995400978603367867132364165511829148184065580307123754458358303903060050730637071293857296044113538448733688027094299493237518419222649484420142569776166172611179046406428054154475415195959399984016115765635501514591943185299014649753746902752477054476578717091238783406152643532426499796456602552875419831918292544808301358382066214860727945598531349137109628109124580183498939485143175577617909937735050355099198757004975711688962267053917374125714061369199356232397848482060417229729053942968897667162871453819322366967474963198347126641814276587869500279540919932932491077309082618382710556790333954474319651067145785374671651300968662143727196481326895900643399449802617864018292469724080773437588117569205396474695424757328079918852279581904798062217223935596859972480621332382192022411315573787506052080559325762419646737786320868900643026023424753549961315070361594626574645814276120889069048607228322998233394776804401545009534318901509321928048839957676758742580415708033605673220367760612674487182196728843032623881570420295885003543775839137251524173302657518349644788603028839860376294847588002615385348195441852482528521877574420718519133273887442783677810570953047345529823777833401858323748395379851523034422056517195025370269468246299243637089592426125478443224395785773492931018282203464643322674074456742908081506098196602585891734359182326194211744645141573661490751229248819560759527167467518967642603226250292989954746989743698408998859184432608803010903276236522096167107232951828802591347190574590823093280039399033924881927123536501389705550312171175904260763424922951106439769890448466839118826469040681995884461214869086979701178391223251301856231307482505919707342044768965835499986325725589440136078729920209728324777638597538989103975752922316241728456798933354293955871115217979094204419701063417460806171279849541631601168293881827721197167242543050845862007317511647094939022339268716039713141305486557504784018319253881844075136839630516485251666610729080255479959273109648755140130741806276833799426307924479390468421515299551584662306177269908135141299370215888454063245918637097572364281253034244632795186209730704495372211128355119994986288046204063493853521572870205927642385670748225395393319473841283371761170774602614888128116263823192847279332981437822609731705523241663895512669543898363427285565482251254750676463809304755569172183309884041735195015020974645190883783685279621511629764138204865976782934713249086816465416359613058019932092137140642518302270462414320317992097462903456690171884701706194970502070101108575024031248804546037698652366272525240453558801100654317433435492373581608744567356148573708771139656572497117000001749216620200887233751673001197132447537455951697027871084203876135789335505321684632387915308479197902759367719337293510496717619409138701601560310962875541591061595002466117640354004451660217312327083216031712457091785796503239649446954465684579626100204673679136521067456099255719001329687916274676792663969630359519338881042442993303125897766378995620093765961181299084634214313451640759668118615476702221650880373671377747219795997699878855542818485075531614315441884849253974415928417098073464737921285067720759430737955505597257496265694491702036071194355905274748579780848342168104987050430406567321451707159430008944779404546702072081894264109330782629066379487896580738470047068256324570514508480540954408963672225689980560716821746168328688622187875135137527199073550881811777411656212311418386468104122251309926244707847812217987534585804445412384450649235285144150662344997609595481657392428073069164519375544684546511065548812196749981053578338249819017202304215037804714883450271795242456247286730509646910843171460533706484067922103897120811594729618572069279290836280536229119158430277576925086284564683395787595045607194393088802940770299219859190010628311813076103710983894952120620309981675546926293923524609079515034661116398774855246040237871628489527871067459414127620004394226645239572568474451386271358135814340458930282809711281649037131352674425169875531586100813232831263053668181245897932490103975220742434258841311521802606042386016317190127098064500957027346544992886191802242970069425139383486104243470660423609965496731537245786537761346110720458061074876381217913682186672753648129226136909921607354556687204747439423944882638282430231911401104961242793607107066442202668489887575048606454038449681615381404109304384972323625909631928653703001964247575586971955754661192889294904481077918143807651059500391121242236237981066157459765546083302974945279761360132773407732488799957294460376843757901894474475496542599173557853748536777683085223653567416536310537380225948345819142227737434805478833256387592559506930844038128176591836932312847467932931900983364541307293819819154565938746969699168033125407821852082512959559581860567358362658731877666030132722178456862513062464638153199336451329541855012267100880630269835020316418959220791368233735013127812055292445125519282969809863862467525907198055613800099366284161541640625875192196185217491513831088365647224732368882235985651016296137817973470917609479909066657942102440216551073733723254979207251725699478513944266752551683844807230265723944378307976360041536384424888049998733605214590400060558038073071901675493340549557180674548714693266903685005738272349334661454744167237005209675723337827953333691021497726868620329899035342782735786980202068828052144188643172990365854946852149705892854985806097817674791533807265181646539738454008206230593167084305525924235214163570445480920689177206630637616706213034078615423558912539371551618786193613744222138707765814007230544668106215846712189336106008758520047630737639598692693927064993910448209818439547440583560012432009508495118460596176530757546408102636294634092743502014182689125223090882704745619671350790796680152902736993519280224581175621387514418354220302161272790557791047775732161131144504221244135666965857659810633561179945306165246309280490210485428914791151006035504952081797833195291648176668571667635398896192004930404592491333946776082871115569173125727454956320949252126628387545407383804199659368073447042153216447407438121530230738809697611052332642952380439299828704708170342383887236095084206848386762475239638405915986182619976339146248995444270325724982432309309112492841222149024339775344293121611098103591313170488942992173189665030830282930397156025152531527658018264047808110596900767014374397140665256245056537107313885655028880266967293348548641348017266728786744973872668442506689418697237008278196890387314689270334736686002604824585646990713800614492229608728428624356711917539400378120727054147857725991699479363988339269500166103545590388053036589798701988309969555053715487234968137104153188829120609376258629019925832518445975697646863920159683977677035159098431547345713072828952108649880221919254059316743310050104192803766234788090889454984718828525034853026277139396600145585499512077275045266664717346304677588497125763604562550803865205328062360119643702646335905305656783110481837887337848101279131274069204594257432474040034277194314510816693877747926239160169951916805799866314494079428557941176088900638399873552656488096713379776332096867649869377711465419739436670682390387763542560918613485959216642492447697838876591260481368839537290498790485341292284566926778808836412384739574710696287710478181430449210191139417417469538095250595688761444559830871924670269114141935045166652127404314047348714130316218134614174598570748612449353084373342592526473300930195806691381698359718578305562910372255369124871554634417688095747087472970451513391073247053765825892882442436633391085430943110964897505886809257337601267836037190531583878840810885759386823393305789166145663584757540901129304296968878933161083972500169790787290375783319107715276549904433979445722547951458798287649031469340832559452034945071770606003455218877058449956449200443402417332906786047656903429550886760950772787885977870247342747850431268216828649175268787457364993327447758689814628654336760180901720446957627168321154888285965766373885757164488594156997482657372931775168264130648719140917497584825680707900941493444254763783898918420781040673761572849228796664657603098161437462242068893179193539520987926003938381230204128212409646324351594583817075107641925716269345221684926309657087786060217966699001837745296932007262259511282104025366679780193797107283215573446499073602756424003224177980436246447313008607605506752746271433983398853043413739182564124063782863919754627189066918572160637519693790688501306279793400735212740014572559909580848295803031950346381315173581834828274072509676451370169904799953666832972251719494723667003130275676998545036782815568234830190698193746055140278088754013442274691712130334953071140361745159783353535228707933174256255786897157068799512930098218505040020278266701080431296407534241929353079374995217817296267109971619255019992534712370901667651061357695621224089504564649265712226420231698190535898808865095235059638447855918946647992923843191312590590302125208099628227971838626702589286733584689600329707012037380024617947448895613962986949544255136661367430586286792953680539609403154469491830489945116590531976617578158568300244819132300943338593647366091733318238320089675176823061705548523081295907849314155162779389204955949180195004346697847300514361685524574717175990337309340180998496733036957312588053462769922735320736955394547861792832893305483001210281552116154748813489690715486127810851576924509063613919143417917830877680507627201076298541139388043286539411076293154553454533647228043606335902429979330528381740362771997756483626624764715820308044626236936689496386324720792851854848091016342305561800434408973033544745816473420114480640369185833158610091825259984495881233502087229780639582742167755574878404075895798429937879099378100985790624769402556618010975133289867660334678254155961494630513313971076084469893507054826790082164555008717267781965464693135280747612467309997439177643041307371216465119576966726263290152364129758853205416045472468394920968817560622406182252427273794220519647998710146437169819079040281183485615470594003165347896219486594900931011220973190675999534815083677586345633625292015169317736724847574976478075933026812111312287000560103175482930665210104820528854822593704571918815489182491499489779958680853272595259395558958450774892090194544272099259792079966145564962349490013014232822175725615403690547622742311131185880949415241919249446962376664451169052949055312564161313261221199734286303676627730387142602267122100033428820626742937439354638148896850041548427572617427042795092093032764209270121444366154713016541884718801918927638085986467727848115803547568475005962772318088778946801040164391322362743739824674300204706309136262205843939440252949165573363498701099752450909689831072936639714580252970461121920740851234485884323945439363815439347381113497541157228200501287481279940933320116089025785270599606171484929683892625407355966911348107494712819761198100526371712774847659894675609178451009887428303182351232291533328796839025572521421292581918879014121084174260722184251269873107097998418926417943212046843742452037080385281058887825956021778797135803756221997915012400647197080219736460096002180952004837198765858503184901835396386260504610250049854090554779482791181097546928733034655732371647923474682049933034812313991538690999265782586855012789856060668440465742158851773090749763798836624247179638910015203243188119853069208199791133986157164183616467837520295742822434735120157942472911793539179524322718366107060114317791923831119016200423331114800789112507835115215343843753191073838976174840587947782909022527636400011390129263720324745861406397651195014267535044567812438538485789223678358568933688839422238385052022574922315075524698105241880456268783074891632906124735749421522208187555877139322841589684061688501088962620737849320478178172231585189626068663594705558489047372703976458360425399430627619073366970175130759753864591191662752757216375489962201233176556735491010804385732046887911598799792867503560852053355531908525300324032077257762318262285978059112759354677461493739026874768335846849099248275652017687293550087383844958916686913924730874886418676511882416476513099454217576232594609411314253106676914642991088885735901809589076866056896512515359439159535946601523986404160730506309561278649798388498667261489905228768890173686674444362757444071359415072654799443732082534868763931902269749429744462239667992679455555301435273532439436565956901322460478898807734823679919915242931443164763074291657620129017070494548445028922570984991538699297274215310882755558358509096342059627893856766679559001878440792610452588310932854289646535225543988121391589558647554986593365215954656628132427257865181741658491873484425686889884407283808269298712758265706284998774811777872430490347939759935597600839284356064706600229596394357258017875033258830433656694225350241220128292790278463966613609826523965720730373125200024675462185288524477453594697528686916748979155725044942860203415986763332986397292146584419497099524076938741865770137333754287550124489685536543168227498014486001301465997488249245337835780079727263603126511862252721444730008273221877630683539005267520043982807154331109311023993516510741932959287587107294219009347284466878113909041547264523316220271066703158593718665591466038908681946822063261990662768055081185419957232385612997487621902408724278065991200118404127046601073072681660386830947214034133831921966450223684290245296099576091605065340301168233171809154562941279023859401666454119861775547566653801875328645636119335697670817299600601907356986013457173176512351249383086899708674121947915718769130005205046559429420234367735044928269046596301549157105339130802282634276674828153074719436452750705339021414749342147644445233781359050124042709035102041539970655823237099968296230885572170735169822440967819182035157504062668339032403232370161507790541176425817733026985497623407114720565357802714340483618910551566645424642772744581704526169865086419795102872869084076009822689862465506761827255488341873381418485330038240774227081139395570864385706005499738202020490614336127784830886874712382373725872454497221988947355506036397656469336781589681004093072237126103815955199813914396958271460778516737685595903587829542520516001304598314316366088192721471006020938696768890262033033509267028806202793404822725169055353053318176177427103804962429394394568455761372181990068279996252372260843781873743748699059891734164146121989104034128128495317259910192878124694601164652117026233821950769366282568448726447588228588003856735575503941654043451399981553796717654253675536318546714403283977036233800542259339225603370083703624194860497472711572649033426943278004792308546141030108355433085276521810132587841499580659629787077817770461966480622308593308518585903494546541359963809307739590618037532532065773103908780489410624931818538056436431781346856038030727730387844144203543444496740846038428746558152939112380838145382503599804726565365144048874502523152460195240854310037451171322063981482123974688636187831589532986219939228295097764133203798344156873920618895427203228751705208340428041894373428545534731888154814030963164350507315019206685990051160499773091116004815409910614834057220805638800873576215437499752826675928749181629026909597621804231184154700676812344728205904705973145633429472022156204357090291875706166621626576185837111729629096952459076796963495026375789583875827752050609216352626975955991071287946894084043590899907486312526754942784614537117173256658673334952919292675644627795025887430682343412071807262993843316174923368927231091549936571367051948882789615631795639164045614170227013067801557949589512083894336837322526309968337165863843436718872180261860127600337401034434762039739388048790690332261000448143774114704305363349440896643583118083465293443612476512338801261105020577645798454443359382798615049164760546165814975051473811964868327164230420482971193594311532022047731790107970886553775763951020342659824601603028663196312148627080180212916463254739283268698644970714152007568940851831105780219024638377592247528627895268572113005657273489302020576357275859566845916738371213370377291457013872445787428240509454432254777251325252141677924129432814792557110726471197756804893020191669357806504065972215714676660907966439305978787711484068160199316213777121080864683837246948397720249622619380575022966201228739434858243325834606574427517531095079414398248626464752777852009108055150481264325953302405413889988434518130259598871160151566737901824266909654848224470059040101815367564332726972529505506685360399873528473630704665406235660475993287654420152994379920599642469444004291211471010755718473297704780819184161779333185640948383547638093630673680572307907854614513114093370755693809846293869342610762232592940042864578461478211508952002905363743093632414376559509172412014241199887722976108879099331162735827085921512397311235629120797289955250459628359821103017433036248751283977325981968269401578888955765290671403856225983337204668690092790114121827075124957321433043996201575150420646493904939580182543462884711660304448175921980636523612014239493311352370307197432759433534470009009581047323195985862293860904025369618024163875857719326836242515483564760774160666166416542972823858337283458865692728599826528044136584933434824120240832220684723092893987932077715104372978733123378327137548819899842088136966697469060648309086739971034844056396430554151223127476309152653577153876321216396994509543381779935500604764024670666993196231087734345981510191859488927768005133718962360673312109916548994369575358580611304296048836083651449656846631950682116644827120134750945128808284573816245035571760202330488998511963391822181253640640700826629678302722946261716670201372546687778118913270784619493658498283522527001973969403616357303792645928139053685671854304196611507387168659163619311172032775026283547746235734898108530674690914850085371978912950862565524246919845497300160799600002589362665173965855354647871610540985033303094100789135325310265363544087116493598711279235503148145870507786208248296958363859150832201921331991549601964497342693584919083941192283962280637336489563272999451075677192320778355738624135373406717795357233375324965907453240354330610214154847571006790618888328948053957272350705048677131499092091991885259160194644505608628751382905812051080776282935497678283685856080715663031717174450342436290694478769702129115547957977948967979151427403874254420116834883734438026543767951368919034777252083961184293682161560234601063165582570216595075567828670663742276457698086308931929948175904131113932294781858130101689478876500364318383391994774386920346638966340584859233059903609456984590703067005486992024124587976231048311525980563157993695800652074723227610461594036636857590901606617627922178179493761543508550271460691328440501640261312746357418477018470910012861240111331273089142761106298796221467734365730252921364420910462754983354666776072859126900513399474510995924331411239859256211811857067986442175474693532716594627833367140040821652836551273616616652368381552159484084156388539020457978129531126659254977662720343078895599576189903675130240185577274148577572082551051762610400067279345819345208406523773103341807684752257958005064835058907941164308946595546025313303212400897186292068668527042368739221131801386532238767597274709541151933390019353550862653529889392080831323894175062943090813166016693944388295238677608578780537625014710313734812848589169408823921935692018988930464209193230315349709266174976916557964292491046725118097763026856457032867521607388769575228725741258417975465184178913978271726516877138595691394784014255796561189092403171622745388694736784136158282750924064449186394173883648719906082901972355659741798627942689805641622920429569578898650347358313668937545072043952862799642247821226155009177428477237501503692808000583644006293918258288339852771126899954864469768099653178553005399252642541542882079299967991831241791409578321434671618260297903928628472316760673003554318317992396515792344539323013841015826845617706553615116600617423940378573296412657545701395410887144536215525936984897880933579581531933113339375583164898371004208134860558758036468235663569667938730293876828425380622429983258555603650333845419679851328448056349885159616154132720312237301083931000367756038429785892713769053029332152526407508176276059198875078314831803625609633441846101437655292921604866190321414317904389552981614447622174769847383505425325724447428383992365514043460387419631018529371390284215085266953275484466112332961868509777589414275395967947546793484374291996684191936751484773341533055592617112517602949707098787868008755634234662344866040203361145546518001136657680053754468102731015345864883970014008089200207367121635758851510285604586913883482985812566372148470328846812595002498525472732343486966191081928511208509725653813127561493806120539047435739240804109945140594934100060143582259140351572478790923163960728789133124137445301389042311797544093769368973849898222985788725477201354626585749579653764715767392072653628848725413996320422971914467516890681889290826985062989310387536367487888036067351436198909592711489139228181874995515365281944878616433784122414584280794821725335152053927800735749275547591552933773221489865796397147653931514085058164605613917287184988159023979505357129133800793068300432924959738515366976076171906210639304908499205204607472716526948809667166325847566018758753843867219780375691041875443429985015817659909970539128982881242750921039098221823165670997569057255826233989747428128747676307326323991050184072402619026412211037416304783561135679424953756439621866625689914608330586630904713710812065160068936847230072735205867653260935034639771030813042157814277939800234826422398602283108210302142995488699250732407836851230310539235004162077008877480880738230330810531707181551142156887911291599914623156993909290740814386269198805319567590936401672313520727119577398886870401908588127627517978065425375656209222407478895335583683524262601303369154736268835036884173896936624770624375258031267598919933314129881373581095397626980786702255170001519454169706994238093873301307911966504325742561563502329780819295901514372378149745447591822698142586241077658338879248992093363206899203411595209178593880788937053068329185203116131849616858898272441489569478606734291614415701457758102673549696264473614016289468443527301209464412358645850111737336001998649429296446849625037921899727167026879912026436398999087857813397228780292538392543388925233553878605709694307512572322630894459009617031694535406427382245203732224078741871368990392425121451759890747527956517635032660538636465776480218261134916621982126346010827199535242389589533536145314748752558472708927258403518961102490486938563178575682491598206060817721579814333387748489202922062618219681891425399830176756654270847787521893833428121932406242520857779686907023590778374683750136336234278247922008308621418952241914713157409745479830898064177806933208263444677260831087577813494472975196951774481125340661516640023518106373681055912089504678955541663394978097821092780756778533494258931629927862028786008206647559359256638691222885801588259705281450643771487590520940628528648377562440755173504805573896474807646217735500483315348650932032049336901307268271134722096886590499961875200249364739511652339401899440030288223794073713117887366306809394826026409680915994080976537284728661207990830608409235174759174751623793144304925940998130574801401290714188376939908652995979789572337949875862759443568087341050693445779788977568668841532440772395110288489255903689652984269817731532903110697979933654943641905100996297656632236285611486823874925772330856864852828397708091913524724807823614468828458238087697576976851594970207911365374710493948062854311909117201695550685095610474371906030373718414630223602434754392710581911279889754718752237433122250122182162885789438948021646558662624400250820394308803421801677426440251044580541714468065567469570031626319190279019444682494824495444559069970654362121015926774292799829740250719070976337952253013696725982013856461961244460717598052555679624889788022712084415221008064252495654309828361398857046943321091854372360381241142018012950156782812179322009626756250612605262631031986254925561889494285966572013518467411249945725500767911924825263934658531740503190996417725129527621494353289876945902501259802668950896169558627709040112911408089809408298761961978098438946109302833073680326802694643130989590423838224063044101374542752883245970910587215130954099133469000139675183124614932442759681250184205429020846286704472143936542454220190701686525929742677426059127899609018116591812716550542717182936445147675714470610006601259921373862885233618969284397303306088325404178469116664427894593014691516049498100704510259912247788610554531084841786457589902721450468043595558854340972928238564681810090866693528889889101875698688513624439373001089292987708805972336517407471861293268586499608051807531665791017467265954233479774585400912404455091306398841474983063701349588648796858238776440617639963775415849946584746763707075129462032164709588205802612785118956933118786436526261749242378864113600137836083108029797905284262544979411429299012139668436161458572064596364715509355986898958470727513338953296059368223502770034049784147192684550922328907087317079455505044819895207584061310589260460998124127588586819051424171543386110332057213211736764065475649002981438241778280659550553236661211280099736684394911671994757673944935625706419291788435522045615050453167692997190437276185590481415259688506810464653851488818161794212476674155270761076551431602471513374197647390859606413253902418233282637887778507207701107082411248645260683534786514768807414056649681053870043533388911251695063373046745470504638363929382244463573972831707172616066593815208626967245186438454832360154495068032188587123657543620905833150891091524564104612081767125776775990528880703330578138150027131563935842074614067687382253685694822548189459497202787634837436550024330766569148906972751828182626006801720430720329981274061735837442253346215747230420581638194981352768923174586398893849267628757731316470768972279408018301801430327641038346516067509986515861070389475613513925094249904724485949574190268579777218417527725853352907292319065993698073138605675878733084668753859816834407521636883499367772830057880606602693303365825487054308886146833373564932849071332542538035482378409283041969517778694395147183972470221853963921066477862691855883330879766474498485994147249988669409049939220291823524840826515349684049859924023141896279114797720740576289163956955825416809575825833984232738651874656971764689036720990456231722513660028675796419523169839880487903542957169242635272198556382804138485039295707089200576472406487495983019807349121158244292984794248591107373766006562643342290445451662014588098230567734914789025337445671568510233986111266786636641031765712754961368132237824510176863123639712315038876104252040543131567669230937130212096296015100106217258196702952233905755860464685486935701249144785731687544141487983032884004443656606318426007899692980633510687749273403764116593628850904850215407491229713968282308050200491499285088698739430690670832958001425494049080244645626200125837221761868793102882688559600486270862718132451634283427758327352363962152783924684627428869870306928865421503520147854424798901766598407890228983806459556245469391827500243895383401099620813130781923011703078785013254878504699916776126281674830862648266248236180853621833779835797153367437113166657225442204046620329504819351012513898925170974759707166045390343195075967741607070610833647478239352011730237080002570659639606286030300767634096440036954826922320907839473434047015750093087693085465020116073504501492340933274665767326303250005513973784743464292330265616835228819432566663411791258455299384622818792785750529044174925584913624202184080452775464745574901552016834416473962535903622936765881539201588465821430359970432760339510986689186680879318291967330524732475463465414009979157744239258950821021011343045922413509451927897119037693979827524549917409806436292726651403212147336371900244646073174210938972118082311270416582190622535398886292815253599858016397242390044240540268429699323441373743835172090671104215639500621959716275223299359840164214546634611047835326958500592138417210649217431864459050708571057224117890798993969267816447306777370351616993069476560760759603090458765198235559883396979631711271872727240878276287580669574417318725891143249043690562684504301875338260766201074179868027324289476135077102801924692131739753301808094701919688666714134021486056282612677889056504904002763097832080073488810242472835573898234379659349056008988055884313967548310940472438499604024586438597807593425320876787225898607409249994951577045336427903007955038686167619975096217338533343976469718505461825155480352329248506893309316215663285596799252919982256156197860421127134487392052874990658786399367492904371554564633585063128488752809840145792908305654632762900274766868319556465457605835263898210126135616159831746373368236331219517516187318695042945458066342192433979917627987561941027359778833106100492501259940155026636763186060366874915154261829869477674440895782218274478572370861846989969916408926477640398774227102579246893583480508437167902810759187581098846471246844440198635925982127744108888238142751661902162205715380874180915790128716260974480414082921878228131607733382691145007093942329195040715843597755650530779872631939781154662504115730923867536963942221372089325016519809671857121112499137525299115118440422482670965981411481374279688398635561581333196219895012056759296125428970872741451974860772511705406498760065910002732930225348292044619127343686573130518379248015836361717384210455141741558149431040276067330039208963137340498648517937407764167379395240331495428498726648281923874558969674361201226206302598050292357066663546192045374202171704411087002761701541128994840429900076198129787773806987783766864099317314921158019307003133512785999523098564389059335299807264186044981099509433731861026677103453196240197378682026719781046086129797715190494750461362245486516630685485293108225649194689752553427339305875765072276572292431109479845858167237017834478290568449832657941938453057977500257363290766963953469331188215295357228501259259246797907689815431454780911219463680004505615850164573156710372648488871807946936883247596402133736644157543091565216943844738381163986965559954118232814898911519402048891853041356469637812339720146006745204040799775310742641380808119523832696337907292789603533818655945592653010674039409801048138399583955891348001935748825517944055947390034405773610928144100782685832885862148961935265540224095885191279886338420373000771940959850441056866643192823217280544754923503387987106284285504910491149406126138620925259870268229661938838916955083841987962008253425343613313627365925497418042103618192792052306677396819324047737801852477553983349804300588334311369683084659908920669131339287387656513502425066713367792730765410769600123596580327408680624154456585479539885911536064029025712837023210667711964526534155844485104241077900356389088969949619112590846640070141865985872821842036617467909419148228048904239173918521941867560698874853193831431019987575011144671532669783061044525402311129253391191145303217382375552354145349643082457972892161938081854261741240142562796841200131907639986521705423941888375626993414492955793077413682042062677114132245484100296688543531710242773636414171747724438536869845522832953387606214428704686317655995086510929395643099880040544810575023829407659665725178417074534981621453573964458547589842905924982209302346780595357116998012995705615905822888435793192724675507744463274404782401281863732170494432499170713876425460722676298906463098519438637117604822969838787286165384633446173664419937144313828997550982607986450438480290414068102439686114725888297844313731171806603789892156386538567184279583115687201947842305487565093257985380787830448907692196575091612085220282805830728560395967395561912315483098314495708187801292455421532552349184960423297635198117034556108210291381007406911768142411143891580671167311730774432422515047189209086780007531932561183984248982128304980258702016542456027714839210682720408696394952804072109129109437257522616115228875901422852265627286094177911234137477142412205904451957394492633654524812480838042366598318401858005861148046809453558488344597873457566307110769945267779988406828929326996193649492534302299912051423830602980509777755951583027248555295041144827372327043662356456933472251966945117819397684853854769535346461361440367897811192627582457396382022152004203366069373547144881696963560325581734467350118834178108193222124716145390202690364414754229823530956961669900303237008703439057282566415173861945309333422858004152816498201230537399875657461808042024425613625615750119374197980911162891981287325154172733549407760457331513923971035505015021289218806714328260239494030388542140304333956248388207527442651943241562084052233351971504495018641444249174813534268566362553468109306603978950967401936251101020647026300434934252359319609703974570053823743576143184763716339528384175986085008031350518694973362909551950506429695037422518189604922294198915823191189814209528286763294335316827852357655294825766106883026550823292751287122109720219308154092895720974906198220090717101906814324656449199581740941289047867541483368542099823884264437181697064697996620833912476400140719991779789782081383879542340959721911889015961605976696808850177118807385813646450417993641783175032389348848992561568460549750607994844634668213715714475568066157002769001618890691000494801932678108355994641224666350177224129447799454791707919822647447092472752580620449367091279967790949232832251030654632404630151164271721641284066796552260239097315265391216057607642428129147985835415741197878057778421531394931257022795366144774035969847407052583070000054727487445826321338380520537328013500814341712756626982279170316975990028849971015818869393411351045194298458755382247252826406474104649421344799639680665729804679470141500938900296501875097569694599653959581636771350137860202886025930383034898028219740356547282167957366334617789948340513618999883767817882629475566627120804507575334504721043964616030199852787755357093349280287176762724663776831704229679350378860043700532667062075010835345227165163529544701998600864015132837351870907061031412275515307780258440100963064652264172433388502290515849749551087014961366442476190504871072463224011281480561573182299293875170962097825016852997486419302606463042386255664392544796099846229958237775525265836752421963845743245536172042795677564348189782419321757398841314175192020579396359217274445647119748771461458046135926500714965266005564516863511500434716455651626359037162953544357616385487780695390157087459481403185975348501897534786140930626394511475527297090943636929829903018406757634765475766763310038035402977568562759742418365784130745680920531729421244948384106966486876624234696758355635067787727433242096412823179254304060940079837739581231891289046216916196964991214569499936143002702129493961767408921022984416584683641430817438764507027764679979873212787242641442462457577348049127095361310572509540997199969388494709800233675483947065112810511208410118374279398012381945497575140729996399232951150169594056443873419928515030470698805964742612796047135206751082248420265996835482023689104224451913513261018933194618445381354674484441485560431063420865857849036980708055045726814802194415617920675312950380528641079699324545739694124401154778504851937508656763952308229468383250956590406594661194072238829957942213021254687333852382310094164532165996294399288520971995716248228973427166505263771477521939819354964548116073773513329598850713793184797766196377974691078564183786984667620560310302806575585278629338695422031847573678035747003982734301915468513538914741623618175912549096426293729301329381723487554579276573472275705851458766772900447452165876518135522423955459577478179088250393242624713998079281697849584519925396728339616985852291744064688098847850551663751023756092343705468962144979127512560210659718160088774356001245356085158052413789350639158545487650295037355045145170570436971633240043726956328592664200663539794083404478133402096587442849466079952441545964427457545010551742855664701121089245944776597537001021354892783049174558234177772242878812767201903071012104218775477447127419404659499083989710347406975421513279528961729847715971317021457688020253961478305068323026480396616932413307837616811705733414170378702255637089741416887124160484713620909977164948599595163712053522664175002479641438330164024199426740912936567346440410082372565710616108690675432829647518022972719484535803254324016006244739074514122039181210265407014761350458180848877382991065382325382533948473980593756329299719345702279531587464262761195723540569510700772474842390374023429185849563233064418489866927060366149673737844124647074505075891491399815381494561150929883552438519451493097073672183831092610974570433746471287313996755387448843534972729477921909048420070975423104493412151618372782253094061001832491068572229838020734372885665687907278856236612791733064233597631853159320075856108999542762444695434088354185372150232954789665022791211703952125480454195945207763120367343513761357842596187854896489909814132771706643711386352452974482882586891890150297034913656336230435248982324256770978915974574246011967896143586577625036942618695369934977010217904851285925611586916201887943807692302241257058908308380256998558623004815712881870919312295389140448348688300048848892000819686730256728961733109048722429131590299310008498565948951476441286895356760586410024227143002446046247668083244334675636680030444220340054724957146665596183808225295832105278238117554789224716877944450156168414596166115965899168570934978481610031545399744239790681677566804872256667417319497297855882032215426160630029845926907288514760068375149226576024293983281688542111772717625304552184421641912663332302159000560904867443106505622886532657553822933214003318834919158636142171591209971683658278289918096385087114067373626191450813102823234324322775253387274912067997130300497853799694509704424635053506107289862248318996015507621257415417296029128175595398038269341025331987734346466437182299860462981041686433625241586116852634129220416463960693930290232812845414364558881279025360957715329925858990029052358836191917257145392234865893448169529223624018438383960255985205143936816569400515486764824060719367594699694585293692009876626178515443094847983728789844253835509244511218269773928150657022714532501322413945338570150788818529027072062936418143481627130524436813343671253310484715493820411078119189834720892834005063674254700689975265540027573983646439088391290185525349211312390551669196981025923626838589476474061642329959581513872759906565937554423486396231648281003870703376946765295859998795807541993040167928945608426844825207272509584003500483463964723938195779899775280789463304480402831315550307300369474455901927204971379256616135918728742032528625925015381975879986944781409942550341916274459712073795032747940724844098581312136188164293912427786545861410363883465023593572797449650020300551837141868935097187422418515211889100594920627195085449345862056639398848687974651968629566762180013492348365524294712348278427067712281851143891358376011838033293500154677599389541774728820288678856239206314514784418383988828718486831148319233176353313267936036317476213904971318431279851674595391344996507405954331303769176646879513916403444319357279950814466879040997170211157567565303195032992470854163616559722550100381794417196794287454205101245092171285046082504863918609535835921030034091174274823885233812028447728316348576266147718395503526137051749746971210635758507583759916718606186959383004479225374379976592802901447467767692736584497409956416827775223689977492012280996329823146438633635051496348501718770871510316463326004763426396730626466101564196824559590973706557117013818615353588169239068374703969873642024962459940348135947970598403259457676237818548687286071966426690239127936577941124543174306271995960376119893590527501073230781176289184295987068964498555659514609662798048384058995612973099627653464962596563397553143374479744692649518666474483987949892657727268850857166534585006942920976916738721374772606066367511883177375426434577498395381730435009426898413373115183302802785234323855658836758444255263286976891207263342629086570653701095392827552102905321902310281321456928262575187207180237908488407172961906360069170468712809269545473459283133895968515532783630248539569365913238972016558039200272907999474448952052535579256985164928876840298836621319289611437434337635807424419725016036508506543270535085682235315316676204992167279151284556465716833772526774713856772745499716117260310224475107846451600041812803542477635062009523172392265304126215483518400898371739133848553561505562664946688153024310933135659093249070819912511329941537347508138802895038504166899759588546571240857589159447332612945415985676390709950336103948774425719058103961026053779881514780186209518033686297280340114536588458450796702266000397054547429965956905173638551728315952928972730090050342930161981059471409120103767581530999980477977128342719852747402480812774710387329650578315462760328440433926334680197069059289254162817352869519485450635021552399663172902250257225932176894214301337679470912500530383820120541348651021036937521068107824010016075295700410343472477555734787999079308445125187588841676859876426020211248969410786445627135874382403392644069235014327019402250382173924931170044929942330049914757729835283045911763521517949178528864506507149576841817107231966108468802015817458106023789601427433124363084175243049648413051545535648970449575572446059934477312360142820460186422683521752251727819290277813620424595038414457172124072634385114511262511646522145402329547676307987365169978703609654748226702115319344176963725709929150405814148796033298637182486483988146519885216727262318371205859965679127053215202210596077292498825825511312884487790526488492016073546247645448711320181092907577721032755409162003668278760097424192979762905288494116914225903599901484258839549828419036729325396472250924897409251701191008727168896234409065170422936384182154826192813910841458294864195172517617035470687473058956729483973089980771241294775276704943879730355721818405042376708611239437111465406803822612230059861516993903979480213948128017428230575894360118451892162791002410094038358373239705091877260359458526950924802159040600900762315484898578247897055238435979460627146215757476768942232369339443936326896153358654706851964847093689213320334741602985986138984911741694613234920237884700218557747888222894067258673313322355720601960276064219412505537167220009852127548634017710422024251156636400626314225940330359802289974872728589406364678201913884216938532869199035533082415619470688340307967384982310484476572688304399580596254941604564374569507946206603658330463105720289393225005333257830464179318691507619268619759831987336781239764720790130764056122774494743906403827453979762638818994878837257060530628341931152560805790376253784760222047258073644014226874853925939891575706703557602628811916811534003026844613162530170543133835052224022616306652387064124235159819583919367154519938446693785644334845901682318224264871106058243615582605076381320775171614009176022648018394480729162225028348110967940272999867785787502994462447717703716266562914752219609426715293587464979198427207212714920980253421723637104676330403704498800843906097522221158808045333223507807391380885641645214994139379794245756707638378319228369818085153472772678019861096711304259253092385323332332484515049497865576855803677108735843234608422802972432520663647564988251167095956930604126092307391284028566976916127206932558112536724951765366456557129112950932479548078791983450034667168107310719224286040164342351077342190878916736508262573080244499870704998324602367094737238988004340729225023244433875682363899227099062090770690541411140825105911050160447486306000025688446223444843560773331663183019749593544069232964845416438035411848149176744626940449282262257182440813481539907550561561858361203848164375771238021235799148406418935948119491099299459510649591654105957753685743336563227968116021008645217159854547570699177060661764815915380556918874698915083092160913368938593373010344705955294914876681016699065057695916268745240557249178104145052606155348109651430017783779350393351220207359096152001852769485325617001084152161168990153155228938853613088298633556447458105881568257696251922438449983466611036697101276253329317274702420458198925715141870627464588384966953726911180767982845392573208570734082457664825807492876277042092708771884970954002360256704033366863048893239687219876785265849386428130896757703097995921643314202485574943842325585431029800460472783490353136731487335705682966710920639060154067102827869607666572105794146024209075286002109445756707316842073246340112198567543764084374705082772667630124849349255265987936707586337023191296525449525779850363396614790166908006951665805127392978848894731555595459979645149122493706738823853498479079426026518440479642122927079285552818652172794455923699980354111854507130792003090190243675254806930640520366652821588065127516850822327374481754189365822502093024435514715050782191956082506801051031357546438573843054679666775914722697873721769104833566959167191496858811222478551259883784573126258226598119829760207400218351939774606897778137318627550322038649807053926343207342988492823041469752378694837439782223788717370751814337796377368502594957585800501588880215915813722027005142764839633923275701071878526964288115209232903984853265021829254670088237933753535105187094387799008851225694966714610014833102983922639182035556875638384714746169894014855281639940794329844017913283633382982625620352699064362741609567817118650230215089329205503352728426606911590257329704970599154211737293716350501160411737192180223426752658477873878969152738218613818424670290914734918231091201242812462289560794152324794147885420810948430007352760809265692684383653066251837854944462733270647086824569604554103500349487766315734058768637519405852507333837288237038152118682709369660197036401044974433140137308563858166049983621066645801733267825003482204665999638603003429685760148454892098294150307281719056952157004957086150410332822933634295065890504851056481673688346065686476831884377411326690843746720560013306817797556804876529045326785695910426594983036279939763192471346183324537096822909231251584150667188680637565450006519130921959529692345308961488442597432143298700960920687288616228273502960185963109816450641721640034594352013052769350213123376615186929718695094585295505288581800374941215649881820233920492129201798186401073239828682036649711721177013289509539655555845507897287721081857837804633617572032797235752058157662929823998635777023691816821497735805470875367160015663994060681509264284126644160655612151085895284907637868126859434424254103064533142897039766301314961880999543504235174730204128521921616110358685582856494537415065302960265827759472130488811936962443983880393379442538842324552742519757153399464186932139583837159146604934143073674721798099612640675065649271182064428599675166877908110439450656292534160165087090242922229103551544829627220554748866512619605354431336925913857130615829574101331018601165595242777876417185419541589466433367173921667229261215435854404463730007373791642513884871433037077439659029875524173260112021225679918666127689873007149042323040162836398267302467643152045217701008871057235033930583953202598117983540951953436373229867265246972995061361809879631172740674029964645665824750169534991625180808014153507525575936612109611877648677144294254166449298054523891691422314902133404679447152499175542711735095524725790162919147172214349185710138494690227418136998672761180178412124220777994383828246851817779449481449556419670371837619786261031766552007084336669810199220850421992802303210506216343427028401400896016006816784087196711730231243652422336202344764333978228474805977766532239665740553768084297099617126686550450204718124184650348996271821442667233526788377202498452291075878731378771064466591202023927348209649868645475160175150203678537863682522418349780879763496487223637149993829053746829522056674675368827664285899166677404268927680696437189903301569357246743989707523041639721568602819294107030047553930702645131610068031971165248620171423405432504007424364244803914344700903351478131653553034387663644027973797845090231826450311740852020840734571501561443586006421138980522960687258060586010106504002290174365666472350893959569640730351206340258221344751853071143115453593005867974520889552200947627398081733227471466464504646091902325360367820930874251239978625329364053051563681072887041620057312230475047036133064668114039390641875879162194467570275462758788482143428331587275516793213316095832271683209934532966292960306941794457407799459434300148664163713467003849509929745555117594139751874338450850435719615891768482271674528491988704327718651743356102764130992450223942384151171957003370684324310413600168759353667876647989108283105409839546589099620755251703192958092472253910488167720374206747592078454159288980573381450508630224378592440348318395489022910941095064885900678061464217127232590421948358806144171465701171177872055531509406369498682806588651025596113451615643211403494943270723435047613263073382730509519560459244197476454195965878774328418180208486083291564122242303958842056805083314863822796055027874001521556235061029486865143868928042565415419406114834483658132621141643407269835530762005122258242965457582010147515180267724858067586172307966907956263285167164677749025533677263976713830807884942939433798076124758904070144926686740689735770573510347521050598904530885697699684424275407940092050123514469474847515448073019249107271921268394073486126850262603833717294358960331507091438031938177265329226287702605427594785743949373799501493624967153425922515819215601327321325023595424537294449374345570987786557661320355398210791146723398862591108043508879546058663491999782962036356903455440476251682335421525726740130819466716016312128609009060008932254509245341878105884008340285275851474097343465895987033523996384013910360766042101859969118475255789264001374454212065487535422931069356991983519168188118315435029755259956152446889786319866992274865865775036068636325992507868944403845004409894803026105779938887575897226307800673899499125862545119798335087339696103254940078858630013064258774815734236509381330164323274380436572535647763309260203633552551146362427907535197042295959961811436620492043473472562185170908593046703495540341394021795243372581400604687563658019974895682428549361151948342013379719914507340950390669522275367578729422618225987652741150797340753986665478437828954361374419956245850080753697530514290790706879489539793784173137870629769623640401091251797208762184814660461322834211627528454093028938436917290085781647034492497938429453002461550987996675940948303620979553764923198066548875115757002810922850024916491367828332845662761661638127770946595124781031740436952018071894029167557250862905429295343787593630187044149504679474382553531455651152355451311859808631112880698359409425002610818608288658273555299987661118662602555004433725280396532001246711929471227440201876601090326917238356428392575363485573197405964840252223035432896637342274416838648273229689424983918758310659084930986258998334583257563053211316509394152846431898119070899316075387510786484421583036586515235954163982212386754558269563126287308757102374942806911298382910534505378314081696483305716959847967005655811841508173263657399927804022363277247662841127786095840241322513840744871416577001646886483730272112064539014783473905638555409061736751159865534768892032974422118554991949752545256811602939706381641818762759437559708015211589969480789017858414740859671842837079258146396705791917236100074951833886390131710993615138479990451528845260556798908543200244408299081830619088975548344338861797408077640297370550069645815763824955728901872043359053399562888231520138271967425008082936838219944345657224775071747848460829404001461407557611108062552236252262794465578842406617361485640145244427459740321094420178268648828633357067390011024305314101231220885797672561401744928420329573551238954243416790843666398394743046634693496321746218531439634392153434382956743509207282649096348203723063210581727703306028996902605663382984140577691586383877173162299361154716441521261804223224574419785214824951941326895069547688856761438993205785455649333299897729478036212911853988308168310835031835242039170440607890904187630040138316169634728194827418375869451761631257099595679703543046181747063210306373701363567551240141812321297374123185233461928202956101825419287897255393714158740621915543871097391255891571827206868247356621417040409832394964070898617067049052662092657163259644530894111141390263929243785641721263134941742557708683754927482824111140114670851244634961820162417340809589551054312344029618320764907160499317842012585406519952974856708616148005335834417336688548348199185763673994854584056638117049430045233327967239431268123269955921186795059016824284744430860802486011382160348200624616930938552387725566008832263652893467815547892087294108157947358271887583689499902525152082446345267825879196766894112291992469025823349001749175668266282231747851754058581397960715033666308355312288272286372723155905341719489574107085788143196896339869803612456330900044279764724471451511856109132731670274312085918821355927787671965988995803526592097576287354436436915901100600544244264118807473753913973139747818760078362217332079254609447354629456812903117468117985389786503745098822925421154636706998837753364184705229674314677153594385165830288705320529578408435419114834560477563945111994002255063464576834351131017014644658491214354875771357371775469110161265688081869849305634638844670593805467549400890672833348652091214852996087645121524608057371553980056785461903145697593675241651347366540329640736720454503799319016649791963513160508411462894563001073334479883211901325555675899736770358887357337790342082422569223011169214437040101724259432720241516995461233597615272616115249487258377856067646455993613922043023287628045103320162786541985298719616872017913919859201931868165061687443837592174119098655460149265245984338687042153070665970975387622912643942939204736684620026225966222727741881212045085480752941663696068910269794591456437925113243602761934104223011417232413191796826048538546541982835715653837215191932700357846231945349737538540826858690851112881596047574732963619574380305099951689577015060647883387669348097827779557116912997809645351703973395488950162824881483752852789396351337615613322134092059857186470359658964078889101515288717405427056298587470826289440213928780205554309263891787957699519982040424433801612453370809232526457024122374452434310721493647769179708789925831660919668826716573185023322036514592272287361030756066777019307515270166720601593835683871796336515244805007076923618348505711674011967347524470701603381010560088896302544400795317347474634728244944594888144414447605283183048837087370363437568914398952812799770087454723166374669187740525636848909797946444271630725013132659504202566121052114952781204367340279044666450664400039159005406750074603005946101108136297611598840627999891858956885560533200800889239654086233526293527187122073195932927835083001565180894019135397492825125037550679180288196180010914149474982950348928847682947006527344659368326784408395079982975435968501601429455070807097656262104260012025122124339589808278006442535875679455051328839421777060290572173342784685600945733098859879538693516205071516064339607066753937416975085793582064418292458648973014194720329879860288842928628908868312657775517031529580335339695208902303072616785461348743788607960441442448004630412778949792655377827817683936798238688273182963373595891363581900045424317105407981945315140479853720388958215445023194028993199522299873418392464719327987673202938269109155866190122186717993924022616636315362196838604866559270397553153071967369562310235962950953980577428443270148902952264942840719879805550596271986073311429331495812198171045016204676301273359378712354661699117904802894670503257033004208497379602622579166591789637267147139099634570546407739661187813455624900093656949798237535555619490002817991585218077178647233289066365130013445356775088821963802314019426848983033752935397897825720986955283529349168035865396557183280119303218350628253151930673285344458208449656950513887103377112190956325936634272418375937383983801547879677737068874027808792721155446074136269174526388083058220137555967781167108872404184953307148022780679375310468784143825039025716674224436604994736128816008638463806149497748249960056281765200325318750427932289351801149289599674300969848271842727400656537085158616042807693403884306455381493412266195276163897682577011814211487860483671463072566035347279871291100151826995601613716115642319031501550911634189222084332212954791996375178774926257974262768840375109209403346458405039690082831787852787966507056244684044514239657022075733844833219275377953363386478179579997256101764898781045597553117684547013749711019412009160226809934377241610230911637040831254020664348436024680842452030724468072914716538047093848158912492038372364887886242050852346729418217751514890625075664744978046635037671689875999750838839436626349516845213828175061835398867604942515344241753628441239316610967195997936254692368417882136003386763267267184908661519825518349169770687596503779384586525227823278754776658180995811827408431893124086544867571523560212030363037727197996291108769313983986295967128732894862290275540729696662748770540610273609347233557944942856622271770025376114698142888429049469181126929031946160958813775584675239701466809839776037791766825071639321629365687896368878102477342555817924428526578123784583192664881007306430399432528663064978914221526405176433949932173098864433228161762284937522386575115023100459765960857576213875282502905011225994402740823505429124328287537112222434659790821982473926696473989751634124640729760413809100087243629107058558639308387497762605188452425426927873829287949371175073189963087036760653083555625714275489624176634443554377759955039672515320752833547656099216801370955124775994076199529044149497729468578314051071761490680848222205892709211948999932088864610855322929958515454860721896896816752131743918071995033523646903766163890718975592220615415907364295304599560421836252084905723734408849838884563564722783275320970166292374321773732818973753687624168230062556548856620572743809745214120443184274254591229983195507241393014070213949293423726888350749286634614642197650935021860193030010864588116267446378323570789742635953024578070521135246968288376515921983726224243341841908732457778703654844399567600458352847121218130350860830528818556605484933113253705524026411676088109491702170446066156573003721276787982391289678666319594941468201385209284408642775912200969949338827944980835781972896480831443062847912083822924428024600447357595677503390214906692929605417588986061549997125328292814663398895116706238948006105146413504935122131846447516356750712151396733049046069348841221582381992353922931912940773476516121767649101986559182067391950127244791435041291916966366505820336831428003276026898215960505121886725032453020296456029277190220266733562392404837915842482427573241501766518192395431734489109879350963406085864957057738515931881180080048618013228775458443633850394965786593629615524235515257341005474141101935829172522816996678567627280800806676380572226468102368452586876552972223100634012177014840725745226630327481886761031056398972503852164052704247993713837439897293046066853743754722036167520709165035366579768673678574922812978797593165087570449876744582896830798300363632654205236670863993111946961181509183263978919254443521943327157170528667585759616311395987924796825899758313955508552870521900565440412750586921370458932131576857028500689643684501782415682956635066215268353270406422999299022372759055739026055501118462828389370271784640523585385436554802176333532470511320695261663195385823142155300497266982047235223741865581133004765151361629910629003238219596747162636762120134569143484651569505250276374683640745141831344898788559592097251626440165706037346638215695021374070597498855375193294752134012067301935341679539271455280102134057485830149893009559734615898241885431877957015588449190164781182512255504625384624260700494528172944565478895183740871889133514376088297983159475053434999222894341702306939023056028177518648025151890623377420600437890319706746063255591800041256773864146929095609158878572486496648058362645232552302161877685984885590263289420653482456922404608450484583106779832218722464202854994865942083650129821644303195563490407117884895925635359297453263646001473486410419421427136383235553900133639556575564502859231544051920170470858672780333368770210830650561245292831244448810682661843424273606605838805818386762219697965738045120423882460050672164597174237185227239831360227808524813632714945971337550996179159218804061857026226203951047111344816144619950437851152076621025425339180279946674781237249673196970960839416998615437621948141696270536909332377931992539863047357765178928808005422651016551000558897077725229313340626852263890892135113675890752007211502298587091973443624986720553232796651944190032173675729792469342578116801058322409979165329690852108110555422431219105426539753098833954889381312725845443528201048006481771709476660687337583382465777094090333732679353959356141478708415624419037677457672154708001045123418248146067773112616254249078872005283999992835724413235319872548999915587718260651918531891567258443992880207698890118043164823753378256105998945433380393480157473387354993013854560445773741632199170352050313792586315074359499129909079024286002479766400416934154545521014242921791156180935555743506871012067584870532380857670137597971144206184419066094076217065240007605662935611655332568465791669970418154056652741255034787893352880651940203668757782538683632054125644463054284587902676144566746462602075488763500605222532159121722270638249042995551946627788885422603978316670294887634900924998560079181860718424344193788502346935054571604034453679770433039530820424482433872905497456287855064276275513760504329733498221506505301004525082517700439810874572774959000997571134457843835399588052212131985182464534851068311059355001065221601313505547258622366143598082226147131694546532376663553217512798532126814995005988960909168798695061119563339417802803896330358765485122906561574917192638543773636664815872992832919030507408996951630888442693297608645189111112563913215931612656700027369878889083029658550229020673164124142209571930803979297565967454478827613733749018450698272285354627704475459505641167493807509333904121043143151523580693859453471965720305551549937774682793869610634406828777153301675539757220582234054526502896564528402107915217672667972126520489076855276982791659141843583602706087539254235243005562132596988534141892611550411247201248021418676590378975660567937558893368253850345186753371063410587288341409884315799281666863048966034986861023339487533690138122245848076472742885877238506127901662421999143549616091670441241343876639215465903921939453196740809383678115363900496003270768859068816152122836511387752662995626537638048293076483443315601595398596845854451724404074096174216216423573915051348585020475530813689415916090958419662575091535232443513650350158907973843344894862064447260068819248902095685488391447887123915270694207824742532426587922988763493035583309064833464683612659847012598981522073399309167717297562701827225124883680682479034239418659111557010738602527201542705397593607290914615427742270533749228128648862359669053813209952507034951869057422579184798484004349256656804372143037125604917835652179051039768771847444321265828745564191790638864387518993278674463823223810451667309174420061002144654703139669831439516510668620140049305453868278727713536422927620829162397261228158823425953326713115732986007825001337739847325978411953404068071080471565006943475038845172787886067533016609550658698290804913037001074904178285737157755102772697739332655376511570476191923574565532723821221622291679015776292193514485553009920254496294223369157391726645100695017823026712324093780928465266725779066242443424865863470024113091555300853847268229390404709696347530896668093616251762640464608911814172534684879096780184773767929232033003007428550637080613029309089025348351765888986119469608732605357152903066940688794960161011775606524576902763732835557033131756295459876227931716017093637451344885601259447217833508175252346890028724279056230672311785967201646644328218703684861954740327363459239190306362043023159648865355626953937559255961340303011966369442098059649082352386961646977735148249793920121470262818591313842147887332183158459613981651898370346033936658032788769937570945469775820467175528707289944611784584149411942285423561248996403474782080877339239161020670049820439956628080734170201263144423964330265973199350571126119027805132222326173435873618033615018083256445483481036473958186065278499270459419488820175927140197100836262588850080741380724316238981198952926396515890803563668721027592309801649516407728443866845581386414497611176621823953236754339133595760042112685336876098332795184445031448372739535520707642071333032883388089672960609737404666756655326407081079543047811368096521342835715399247524219960532264298030151403360602071456020263729652548826456437695395264735339740318618063996892520183471482559884397912756375515070338746853937345148058927531979591729414209153213016712155472168148281602338050775551369074296363621890856395980287211584152307073532189588881432107858552904674365236366741340298298695992257794661745427730985195520677168661671154057524993203487904358521922291307091422300759575446585006963266509756546337954518293886878291045217569100655703991085649789299757057555361665488826171801931125177578817308986513800724685509307548434897107072808085922449002198618089484540790409036034557748268551836934438569361965206306534109642213189910253513906290955172662087750927254454113804800871842928440864676781537265657395033927354688814693157945572130727257537724673857779624857287099986775755900023136307821953427954633635915932892529634852041796447717085465085400478176648200587245923401446775599349873573322515717941366310123793347225734019116947623535003598468726947227567784909795942656496768349441595976641961711765845948137178011055551560112971073723527187053903582447146763391227726632856336229963352224333706120030244033867797721491339990023126164492737460527392840457573325581079766243293738804506843432596174363319698550430807764937202917931340286483540963044843462913698362690144226294611392062132317307617718790949231192317991532810630960279389281804471922809221059782536711312825600928948666292882803353953504707745126275406540011619054765183608291941621209177592022218871338088639772971148162226013327274641644663587246828082009814902583042486330803912503994223637205297570690954131064748504844656779373904420891409680092496606506093482682625082503317668703192727361378699262423132751246484156679549164102809669208081662086034378819964755251237263970674791307786014158494067890081030119175055321413837606394887738831766568394544205288790652024095734543485189864416128207056336745493790848143805334149204015072475172526511849734276525514430984092706222036889706431073262915820911830492585015082241984979577339152603053960377229947746012326134052193025131340011805660211853365344498991010869967964991847023290987181375642002076180309330877683826371701108369503895255582329162188529042813544520151472544500194798336235794031619636172630744356277113572380640841846435471526362259503024204237655448632671116921070941049969693415190869883366451952970407985865914385400337021735013582904599376853130152488223724077643764676289748948885611004111622738646254036448431339554713451439272088175559902943562257054605148489136009122415544955309818865811839443772581314032194224701063715782768892624043803020860460267669161080623047601490802929376933247130020575929670719002895064276954453513105486218579195230068805315373791337150185850064342865587136098105158988401952651832228090480201442804013641851009081524559909691158624096721375621537120250699195274294140485958149853882242577419470412376260855962137108079839334997181411816552285759006651495578274920065058277251786154967664841731412376329823357472464638664453557461517842068354417101744573192012423168508767379421515392596746442102940389904259870651454237300712455804072385882798007732328668400296348862275544898775602687325081239517686878193109385085163865877902378175154709270656361509263385386162946089671988832965092078317464697058435736605797962901609121625593727005336503169013551254827690391063139756353815958266698073530584443727296836118135206861405747748054590533666039908532317121981849524346497636629288219134285976639023016378549086506608273838304023947472620582213053185277415262612243944574107300214007601526470389053785865387937009503415428285667177465028237283622468955375761233487584497410833517169537061541070478587080964806937503612088934886431289846721476665431712657145259440624625539646238728655327948038592265469482581458135642657692800758076418253282643384995049089754615851831402912143595525934774814178571675358123737891293068128906709456616277881290409545151431946730420269840802672784519622051997828533609681532705877808848301950797093558203889354236244253545198965895478103902910363630699876660308723823876337971553286854993746899983623848994498899050250509027774002276752596346284255344352535224195353371206275829500273828760594183516773256850662822083913282863755016869797119458912730133497271820756329816249123673344657048387256346729998227931033811805875194350342621079926435638685156964255436127547380911394356872044043239003348955764392373542184498019997255027378857513521467748344204213320530734402647269390268757879127670585785808482304590133555878945870967553265423189367162553062910740328026629729470805330092068673763885103503711706801585505594325030448888870921008206815552213405285072415765882906364175873268961532953573978271031416224557552430096628043234198796052820049528331028770300789422619706760535349325913018552166091953795111326534613296470245879899804782802586617295878332758915632486344262854980520808871222199484884029454498036731317786411872417241923365629759813207348691918511296360107775219646133286150627481021986012588862479376390156919699136482824554320811117508186400735369390198509590569367606773465847186531189699801176938788503102973693664944440247541073713101927289408497815632720188848517314675239252249924847076493734247226278480358730356570724660610345465120267576981579316421697837576507482679540313870851171679013444401479054835045543983007384360887877702904584123624755890735066802816624556191758747817986612149279253186953790915517461015642841527090035651734310478968830645211890222179677188369222706856305629679001996625064315097767414298389166306056555014235568790108711055633690263733486455210073571072908401776850279523862350067986016039825523591752609596197587658480431171786024212789030047323407685235661966697359197893045761460038882576792102278891657538912480953133641230776064842055585289841024059265584165274154685587498709838819595075599076847454012547837491611393709428533907467513660980568724758965629338989597249895965879406378265569309791386256656568272162419860119437727609825320414144641713453573032797332425118424659859636070812232026137098574719888776094622651034057953044056378814747894163719985435422135351085773437440659853383336433042152107801471138597452461151609924480771761744867351360633394360615055936736770139372273609317316159495341473465828537040105404320270604447625591124394467192834209862556844731804436237339214370657701265050440798279068693059925149321252694596946066238061729858440249149505806451695067736808613582718030064356418877025151632446894165479211394658754516879140471400392238873314016525860341544233276573546281359013090650391511231229828089922101421390580159215081981941773584322659170141441968638672462499228987411548941623753505080325757592708528371259094645083668815692831688405045597399586693471051406977112906743048235363062673283752980170658850854744905496893731237653729598354421528492076327574898783416377108011827379412462505456258840563937347207986904389914876596626708302426231614512155758153663941008570852094424734834995561604616678158283552087608613858531049551151668663667162400319582609750721805889689324739592556355363796962419330015528538923157108692375278163061753419068956438773790733981013320530645880900525590492702426213882591270053849493610792834834382165330818508039023424714482219029997779427460222661375682972653842637391939258934327980835298963215197008298234900471828327577920933789933053086500219044663117748931101632338108569504953587483680851197698732508128848558681264442645969983021677254673919777678370119428474423674095274163397195341561556654951024802167350176499328755347008871643306555512629259502283073825958685028315367904684686093366587699774512562462466621785972604474373763144677856267479224408860980555138077489368452135207763956929039222034678078654725050765791236692846350380360888990453125901416593474188037465311246917987052281610184930646018323208243424041215931338420682422579347951513603738164818845003836400657254684229238340687705884705289485168546815300452881617263035446017503245733053481599098511595315668880431420422374462398236747050672146224571346094780513118123023085928139959787067944858168681325439573729307127152200358897949363519560712182666830734756631003629579047793419393333184704879429691905987153267176447242139554986033714393118823825128713979110492916259625118345661033662578054816871101290435814774416739536137515241538467036243027436742342745203061309642177275155174932257505611792393736736999781096899165554158896272523464853354847216861028879444682521160332348352286734199536773798309744757999378514064749174120371148554473390523653964457395082945661477404180823636832052268541560958827627922014621701826394627368428708629462099841804599104796048156013030166272513206441068319333026105675015067755167439914841658854071731398805762395841348400469006623421059341814959096939994660942897012069241556805042672777632809738747561163488255434646092109436609322770784889386386964812285736041412692715893976619276887437008898647909992014164404595431533200266235085370566783998893956153592083980241501075649717848947376225435259126219716259717195672285912270929559411488567652433987996453636877192623527705167400876672411848036480448088472085976366068450861568447494737647830238978500463693293163509973238251371679505196444345484240355932103119565935807476435918159425788123354359165956692603638397007818524130771911336222327415294084971103539260348160458810067169970859011071357064096233467124828954934913874835128644494493219112744102192167606626690027728061641568454751587526322493786418179091167669341280292507179766216939082531013555415693106789530195222628527032675236493442903792959741630096280903800739637182896824984427700933294733243847279898035894129081441632947104813831439612693020600876810412402559431725889143727910551451477866429537089167578333509974059073300150862514161357393076916998063883973775546819489447274312795504100548962018887079199047984049183618989804657136016549551424271130952762314011927191199353936493410753623243280699446474581369303577173383495537980253496146767613111068167868150866530774676282430713515945154161923675290292073557593507876898111285730068907853452707008931806987692487843415854446570666953437644293338793954337039336771537344870377784608946326137272382603501884989150516779518034843531278916576728665381875161771782474317847515318793174211022710780437359699235572060370374977492313958415045290965236252750173895878768290160600342683721095532017423648903248493202503265487397175944099332300164777677768021601064563102385682659702111752294295091829842830916411884574703343418750639613465829021958355044165170764895034154736409315194121795333536256756465606235349998938917183079024032285449847425925485585233542795062166130130357862970249792288760428067796327967533621734760282661208529094080548958294745358611200481526062995682719869017673105938502550155492491526807954426229351801679293123577135363904249806524780694170312415368779831662618943002479365948842832585530018207111794367546530737454286128057600061074949554323573200868752234965690770018499210016486865318748541341930367733712752649830121149479664532743925543851360920680895963008310181443292697246983281554761761661414567942491548224321043649878536449297722546821513296129342304602082866261969392473539495133162166434496159350081855868543601767911105475208997289211969515988909049788213965548100261920151396884653357953896674529416422993064984006421212442090966894591065457758637239801374578574848788199515808136892160128922486166164677777733100813347364846277964376529924241611085193766231293228626801293806877079014078138643811374878346549184151392852888433580233125390896121982825695756761683235960411456200612546954488460980633133276721856269455713267295660401907773156150663694199871916570144618927968482360175002451345934661812915100106739523176955884383906761338748859506954193904412253822766998394930089207052018320180026982461574519190020048807745338268855331142307012451380598724398307601485642618824766991979130856357753989273525178176236440297983224329275415582076564820968304206538020123978223036233083682927288694685727677275679125146029773921194771410730968647376841704669969097754165392347133345878217411326279509624480922457550957204464251279181206464074132684184423005564836057171085557597079934162934233484752159487541430096564895553067572366561174600496436847392250733194554311000374122932388163095073273985862525801367281084838903645388720002072284625257941744252501876969624705385550434727748207688270574925443305027835761239157501766784373354075485744704844965362208468371386390755012750982414069883599582276441001145863070625046203346169449604879639526546839578960205498430362025288253970561023567055155276202313843800390180339336898802912357036031952118879671613764543345112560763319901251532673572813345592722771031455025535054534838797569047605531408299682682822259072831291518201084872164738245324371078165803265820486043185265760553925639817823588954365712047669747022486161416348188730457940266605115538332812854908246637202696040764892731409020205455681207186317657152420882350702679041274760359612805881703074431143812094736063851424810091202926468268508575747270254629323781201302948149927258482708269219946066885448637229953193733346157577312775252241054000785660922199257594615920125736179798500094194209972423526917349923107103166210207920080743624593629871512908897344999942250695251436351281667177585340317654755864555608532924177232836190169626388329866930693548737893805937402470481499754038068196553641280511875171125668892880709738443784213933359405010460843988293285899337884294319766159158803429223093844639513086950830002993663111724973000297566366102821595561424010160137181851383282506499593415797362215581871111007317293872961375330315612534713470388431702184433556089154473712935920491284445003412400426854840585561265484778938571587087371327521941547588117916111862351317393834763419851423405452818030549454606972832583810595572161439480075413880535472092216819198220291610066048935995894944388009869291724542658735413087995699818786982317284702875221592484197378891022228288334814575425484748940959908378627582233244925533026778815625438402714043031178856882693698603761547529970649701895255482313060666647858249216752959406972441912637599004360558928059121295952640715863270150354026354826673960043747544534524882344623217138432808751466460922311827031777424214779556374735827213529034570659887430417688699014480982641192429227279704526324472040478383259673373169740001861160314040115256940581839445402447968752867797479569976116012044164785034134941311063233559010962620024207429860965340921992937882060256258291838225062192781810597482222947375744279045945899863837670692069300809821133352715917559215258064143655927964660672524575335589705549231166276045471317506273764634129110305387665219192502540827994608152461578989436829081364280708270902840482068772482195139914298789392794887169890113125213828405315560793695908834131983622662620369303470178775912503969196554985773036462874707059657015511652954489980805858024932886349295577694724158624384478089571246712901336570316167225165537410678085037695527845397664535324037651340213341989443332568923286161011686954687280193229481682917702949278905913248127826745814061389476100020612296002837960129798312390368641830789698454205731880484440910491738275346408461707307041760290943767542648560591737004566062105523663656134882199702896804064882448939712542010063648142100116906654275838610164542725255065993118085610640515642101964209073075235821407936548041173948360404194166634387411378486797160739838607428574072193556153948957106694520576704284186255913340857473620927789991015269976559194093566781983303405216492092030189903593096463190157648451053224684086422243181048108804827505356020050454402194225107248632664338406264039573561372341629014913149301848224525123063230782484567420745652767720928817790779994867711829265515618686246802872254635841763096267840093680724609500309653492680066224166119061112866930296195852072768404134837895691392946235744871581384313011633273552829565563507164963402806670497112312523384789774109123073103990769972853724919075074109719320445824534550282595458317959516305946531485217190983234982494916114956310785086357803814201282428324345722835409215687358256686506578287221799878683992415467103719593298235434641715439231424884765507257072276399106003055926230404504604203558577178322513456348681692705946658144872029151391037049950484900031005933848434328018738051303110936204145269084196973884015118911453734910434461018621175591638522301476062829001383492915357969323313610690021024608122480080990488256359858458255969751227002711378346003659107345251559273294683369960233020254895213309456553597255210284603526086183676482327700276269673550693356079106747325342760804473430098624887345368026881812060346375237845093233989306585243425704307493697553231341947700267357765293692044397105586732472062286040839951915008165753505558968208693175870675957678733562166273986194956306268251341940991000656738576009792021826499749150970092412390794047201443354252118506716892263610575481840404278315349865344816970393491571020162646418997674641991342251932301817349508729375855667713676886014235258667593222138349574915037405248041670461510704811518648533210634456959026353893771297992226324516615057386091100739404720143948221210063299475072840722455279379012794053389282471953504150608363359385205936019230578134644885498547668245893622647561301649914382850796137281151033197798624178094802306022915484452090279866386188548975341759410367345445336372459373215609238505777885907015104107768966939033642184052259782557134400516717995984235436636759575624965121722157470870114815236035670140450832620957664757770514280671533824253655664745384749723054305816692123047566349740645547695509313866956250521781167830976343321596058176702559445760927220823092430253172458029042651770271202083639410841391656401238641064776553846519012638497291354028561054504761543716300129779383927787563382189048458214341889441680514412815521633535145852619534216769712421547019751459716773874590570273931155843058470389355500497164241254263868449003705049253241720703561475346440748354083683114517495598987648832768167072302988840446855683533448924728942539704061463979381155090819876837713605520753099948600648200767969405437042075518216624090823168517287368634644230987983766624726285297529907447064199514821278959838290078950691277488625896905517029833406134781477937660354976571677556676385184521593519202997576425493847334793556006039097297299543453064192424762050279790479196061761533064840897492521715698111583302828748323682379293099475330566558682262158300039150398697380021718150002716100964342510973622019539021395024907128713841880544701845698437654302828447489567382312264717663179080450669635732481431040755860101671874344469001673466910034911643944333387918881825011729944577367881751346205540368986992623797460954096992400552308034088970401638443682144443481782530523338879232359022865772322449450210658706000540139576169550477480856733538536531186506452245138836688571912711787871819809898102683860269310254753240444821257274815924653028058522332124839316089488550666985006591872337091606595481173525278840059292650575442298021766873507446050194684384884175172805803302226588151979084122194417719747792934247063468260818896861309048661632519543614259808100523147795066070501104029267422654861493853706886050419041651129883551661149892552952844633230854386814967070773681752032618930930039423281022789241895752098435017064723095563288678307999478518862689539298593240727610120771392854306112787956177540199720008652283225163259938426564813421933693309348538439359397431705125901573831765618650487015566753748076831619158022638348085504851763532034225782896700343180927179527856891460862586692323416367628661333529438323611496511759584317174603282641461693172028257934383533822030285062729739799867891789738482141326809413225367369097518077991068741893592884095187401400376188321618405497528463524415408539983600973164070520911312635536520514501311365164607272701363444677355567749329587827613563117510436608172431334007939970561283369028602855163179296316163710544597576783748076368010175486473498249317395138731824100451390234356739631879027113224263227168822347182634218582654548916333007043748549442177719224926429905428181203319165405215402575883344591086432298351580177269684161024202754682878374268949316795351688238525514075009103372753891713410490765966462051948579851851311051347816441620267184854787655169221162523956231082731026952947010780031836056019943235136673092787587338131463978835053358273184931595575103728654989202546481809367078810277138205516177719140263030498786845301885687750607810208851475891179692038260362843554968938324197658782863499803597024856031452022642758678054520463644624326092067472016654848910800924889018787262626824735438411286200331522317487865046369138433690945451490786476548614611787550838693827604700684892982199636525131035171873637827390613361679809639736087010023214092275940999716203328882271046640401779885752644660207028293961660606964439521595757150819839874990944790241855403775432037846038980726813296486308206141904912672448324683770702543072996544434078622806684802504973987202781427039903964423723220039808932304663276566252901856918256072468846360014783294821044400165465501690929632971191712494951825287226768342730549487734756217964738452681310419124187682020655477495981909107045170630560918859886539319575761686700923657613785576697904151427292838273609953427284739791839674131131982028738646605562845252497091448694153489965967677335390429944074137301725998733742073769449619560037969408787215519080288802762572344981635912810954078822573399048246717261942056514536972220827599545476551788326063889755908494054424353978582847406477829397540390852390426128845377756425054548431924230744185883098342178217215700339035875395265220286151472863315387065567041227019512366560190696715483813767200630329696704461214895596449351097964044679013129094645550263286636954851636319097928679399681207442599083554767758327186640155242465137830215603794247036878780927621866945365239454946754379311460768055412970499672126204971645167702429514564082072914957419749648895292761516091396114008818375345132399595203993314992167127150320552642590749517442457198739091184857273982694255981283386532534217526671556422979763681208983583458068192879487082142378692050253957638864767853576981031914656426547570887376534697360516712374699895941763037672037091934899369782685511207532013347468135242259966147049323131883826009995288589517489679242874740089785920473187619521292540408779152810076656801221920115360157534536940291498648304174759475515423211934445043393651609049667529143913674316468113680547096260603738652647556675240149150012707104091172260507657282701480670182812262094247072266682707454444097456908282318866647889970012287303144396356237919052657712415519905419920240411415440285485340529566643215258158309057822885346857681982548601178930387320996930820053126560594785386140107768611093769608010264785300339238382101180327776694040962541198983955838818509811636055961550147175504133790826065600235424270216990590909028927381844803022742535531928009875084083097832129658687605012444118104720196180129255284583497100655993404927656680688250663508546136839838307068406537868070075961759167614006028591418119655047334601761020953211668288451400952187036409547997554558246870786655106066237827020795464545768373325112765261469750149105299042613083297783770909349053152804869616852094067669603527912993994551527851910537333936982910576883047975482713236043955452597449249147965931096209686613001603927354687354779367640660708621464032392665498826185624364820391637107355092974614178195309931228422045389060407980952784984585383708953906211099310597150893218333046394472240072584928942329148802859404944455207973389124416166397908184520800511721249976927981186084408813444420290929735246985613769960760175796025090776301637765216095363234229697247152432926712025739450617736624205180541011619275737479727322268572634893267528858329907913513359578340374289151573329641109394163866288973809744903114427181589964062547717412045909238867608040857547252633948808484491908686485621764583307333054179289751601596003167276432499568367813801396081766521471773213042961141987507592614107918759307692643665054169439896424498577847062959806785867752012871676517691398266427212874185732301399713838992799234232642197804811425534066999975348002709036159952144172377873915421170054481920165943878247208838127338458662895530482390951165485336864462912511146136451063356667089211385540237481317711369390182493213145834999516925442390948190746859865349903516100927318214575672778730208073970508421771420083190891014929604543358313205438964880603351819304461844195955647252316368448694501576610882003902257519436869142915083794354472065623926887631657105587834323959960396167660855003087962956485451928261233947637305203257927023052268861109311193752930127827842631214688961041749385118609847400216145355178576835562628470300208416299723367128454681086770497409648026929667142759775917362920709789542844057615745802664759130663286686710067017016287945050900295112491282676931728417131144983740832940826272613218861597538977469205942031799162031649145895564281694743953594087330003123661517473200955624553978140051648422140871993656014833285069451164097312049247924523684822615846703629684798790165949233225447804461059632307513662148516688929741166805038585540813300068616473322661055473900465894206370123906381260401394863861644953507640588376019811476477493752190263508894439812452016395224491360600877795787972970147311407986049074602302089054285761183467262970718916698277867844749434116760557185588267043673321163182999799664360076170996685747018793548032666760508395334080470961376487786344436096447918701095310230796715908939520357438759261019150710124932308069073696772397358064750056762033806794824290618284460773423443657077918439602110393884739563591783660561322973386696355101558614506108985178356845004251471445583782750411914379136585653352596314260627225173367666961193443795742412741277085220586099614600748263274638696300753037448867876252276303213196517308426931489218114288617111134903767549848698767654837827426978591131571494983583116946769867023302171649877301483605532896303668912979726428634847381135645580098008522663981367282727011983676371614246646225822061053612894472324368145209658547163261336880980920930327091813182204729054410481672163149985830131270470842260763170015778467786376684489297783054122223538178545369720262768788260902156196689191076436714542398621714427033492846682508818430757273906819044399065751902353816103808088009009770458877196378620240453632383881214006391803901190082359280862410497863447552166694291908987675499615262413842941521159946551776577171793027102845278564302537299308240291299914772263446696877190878470925677417995852603415065375609008359406343075946035839855364805063068531619989891682430746613273407037971598451036773976708014802094240481966122626773489085176637259567407742169680299322616848314988340034628558476377732316268136080162343478667742148628240841980505470894636463094565526241125318938574109678793469130447646848022830723739407599976457794147904055924320647695707624070380334888819890809382690364787099232594532501415262128207108401361424139386886425244241430356052781296318710511878966444697586062328887991745300806329656852448288525317686762174818812961040692720192227526949523357970039960117028811444835828943104896879564759084452707629273248245295273597182033171470432805863255694690988623297939979326829694725486451334370931307143225148343351502074627610225048283299284500033194345276965271951045874700443671974412200400868704624807769062049751718358695505884333885436304373783578104025741993719174429818963286033284003794189754017553214990751842869441963556000385447519828705022997762440970127419545582102058045514183016298082944681368315116074191011644974617204335936169761345382102605307696326832206218597890703081543958080432340332828053321733670613915906624842153287335528808237213728090241496892035803082835021354717712173209019305007962234502404915681080157741234937204005505548809143535722975275377965940374378623354247151058278589128797623753906137314560407693734479272510768844226245010677701105066890219040753825584888373283667436852278747191524598084176425018021765906954279708927817873989543259088910540145919958439347976668012545087616688493849710553115774681758040334875566478851245488683206497961373044149406868192281934228043414895351987025056210837462484434655558130879254532621401365033274885900872389097650538553318953091761944516159475553506827320792734960766491098139601862146984470338992201156776120184125345008208359819898410220894972531195814386289259516064779499487106561610730868941590779249727329875325020342161157092563387568924177370631036842203240204664096955911451071297866316153286296038366115164098236753804238143808098921166087840715298831802987578901446311258452026690263667405342353261552257398454029810129036416326249379856338884018522856455394580626091092302058924125076197215431198940533533297956073517099276836796173240824717976445146566752093099471885661265071819019598313403358853594671634559533517055552412211827279150901030857002782481756416212036652195099918907514139621617254709228622136721187013188207662158681602982462063929165278802955484455115148574033395178066688601280934742545628111055951008801563916029757755873423237803726919854473251442043072021654459456576593124071499897592781186283853189251789133141344127421082456372914369229823257115664218002891403579991774801092654279782189455353115117455082031462620871917762509542878657891355018988260802104257757853867912572113754087370369344437112291628714454514271325805890433431041436023676553358617766959553660161846616080699518324619040114494694078589828491684666916013136615348516312625360012545409202302873241440020009983807426368367818973034382018592887734508312760856935665086583915415594810854748115252747921685555290051249046924300454284926435821560311420532334891330032934655621146087230435920536400932715375213070224522490109678059920540248216118607081581313951859558560605822360634800298651998619459651092632606863049586366952637728744466342915681572396890419108545764796696874944102625185797588699334213622648254110694712641417877666667477666747282125821391349366341237282873529790236312569053785926295429028926822826164315799368610889736818914916044561873810019631741923763121418882640778882320709916222615771452045530781757340477052867864551234643311235184156360115240911129495979016765332214227756380664188156934361924421948333840338287115606594323130296806240780968793663455337707372772396009549854607787828061543231131478134444478384640788720769880714674346854168433097580969601719872789433412701156967927802848714180997715480217214629832294157902244777497439060308263886815934863390971160873866447234169417845467336224956885361821812062856101307318353377966960854281830126294892645166896652943363453182589947774531363266561279596763857854462115213144980173215960170913198988708920107215540466283797499099693810925530838666421850717918455656004753633273586031779712020898199796198330757503549807425214070499044192278873326750475542081962439879692961721282734721149660811615952831660128871944037418808595427965926349978016186546278467682044712714304828731609427077552664257595666770592669776244411956809703805737147005459028444920626142322630310557235344988873063137149610496415608914681091257587061290161567352409181804374354537175729572906260734156553430122311975021348990969918588387481405006255632134400825193109641538424457217567315930876161735094124901850638393736362587703397753439314772030105626037151662283596484913455742397264478707252484522449155569852164889388842037246043613648923234779466078770037610174964389224113228480129001450945553285403008130408575164135351741521375994404049989196983365005226713845375459039376413802938405269835674135075712234024417625032081517682939245487361418932737293934552645624267446321720993210467648273612875969475405568319461930500220007600721797020418515793099827078883492176596903977400099324144544759974588421145234517425106615381681331771286865781361844932958571501022205558264391357008920644578630745244840295519292270124222779811833660048251130766638292691545937366344942725403343897205368067172800147844334591785659088661643979307453205774716541691317699746527458820795991610124210002977720383894084353513848488667738943085281768023760962590659255242398806078205930048620621360214584179477888116088835161432805910649724389328683887015884503896149248549521628005603180340507099401990130876124829484481881429864942130508856900150012312005821645716706968262987016490999953763395068930648694664288937383470698104995147582781496547549881299577628254095492796127702205016528931780188367491705265358257744079225162673481506927771495141529610804216053296870998483263319602635984396623164312247343761092801856187044697281589720315187579038630687300060247447139482173609462297876741425506249123979861243473531092032888381599169398205847867080283069638786325196592198865651324545555430793511104322741304376043257555911471810532242120904150149210469996477905760868529376277171513048165142054297190948659852253274452944660644483634888666438373559990902668000195363798308937011419080913487508660736608480962901592192573217526552034930328934948127032178369976542248345109461114512896171475635937315800547953788066725221568128835079608080232895442985173359506974049775934647572628935119996686439737146948001423062993979168389381818043682125621556181330553418227549311219738377746497154778756609452717160818598335141971486098439498807865296219028837633149206543160784766093777202022038155577802041541184264098198084626185728852141113974370232527329578641460228897934185257439285669757000110135978854532332093173059068915522263082529240271296155322616914311299139467436743863201477025609315366350789496331912180556096815358878580925358805079464752058386205241607047021425933978338147069495471937628505857981351538993158062919783568378207323098653582542454403788229422802516669083734055203916165138083641005940188718680904784823551560733763854503130837046365090629087887523137915119342308711114060040139733794920083147115090476829498044556144518234519275081155996209331901697909233417476365963450236720486846094534578151196507020286453291587205777176436271359427881478038885734771148320014402497521938882511705195938125966529235587524287022691312048160633421990418193503632570464635023122580446735246856662400171275457119860524073910520330562584606148059104873924457147975423305034875557994964059483438198871154371638697138086307115907917921736808807255539557955399223925939094372724233035507412557436421360646141110227996835978799796758535772984134097393225484024854725990923326883808472348865732987950743640253315358778948968102154752697513227205922494879163808648583538748425662279055788595655931236647259144235355675741936881218050925344787851186231124195023090675307554534702231845197508419542531520719056637853767829634723176665058640213154439441305390875259263178646199614637483679948283210122523472981635505012254025195495898499404371567624804418638938494478555644834426171564612163177158430000552569680416937580526053752918943351471801362658791644570514526292710187977507223320087245633825753088453761125938514297463183952023584069314056489243269832820982013908011223969732410274906395516480309378979817228894405519579306577281426992938612165872723454318741131678302220743979007501055664264089964417586021266360030028590522213583023195294474907633589844704775575297924994820633632472514562757319404674340204408553343563729956317540885203361796177841812670561069718628060224713614820836896593021182469788693917465019113866328927097192444805727264047112290817360880711021311073185415605086605638344117751548443270205547580444839838160147616339624369567888733549073584751444586633181395883577939200340424955198604570945902915190492914859725927778777892882436273651364887694827057479953798278016889614584251460193655403197041020498104715727619472369970833189278926459102212018131014084465368210878973925633073399993689841793983706305726200036562609577095418007592672687315514417383471412616364765934414167568994290540708683268392150506248190906922782929696568182380081818453951348319402510535712115420502272755715001216490439567790375051184402304502395297819253720571906109191227468125170741318300943720457497697090302572589223685016918562386330257117540117260004385662125208313731205700228340083243247171238938802958469070707401170706671942135741708053562203284546895204179757889888740199435078887739399582005098845161190172307973812699371306947740434362192723900286724194703134891444207113832280128196254760531142905748232911295893625162515377733882407789100665959198301139587046920819391870521025384414111340749558829242081784927594603690406070114275562313349602241346100296186705938746636540360700887997237904749387949665726666898490282506606898459303735599250406220036036994168427838907306667576545463173608835453837200922775490482848601667293281097498140463523030419079672481676074630164547092155813868111072389343759242961180545859955946106909895029693900616527128869959160269373593504596528826411559416235336308178503153166923228446262048482981139933401154329637293056247941663613827818210165922894408989573032066767177283873891778167005252608265480436955182467772997480060185992435746921585616388161500160601187283901295948442360577446391539956048917713165168457034433468971074869662790842269921262579133448280298993308168304078102864468829385277577573705640893928018028332606335458712425249663244038737691096793837981909392118180149492154309383742173944811545981235600531595721555570465206082724067268293254182747900408785213258424198559978065710719189758583508968204476394696248190822022692393154901151751620573361549752620172419284369762792965204698073170303689966719186276611526433538626982070377617948757359827349909871184529652432208369815739866607487076446053291384924300261596716737680684874213160571759141773828776592559347813623255824267755463608178439177687278319266819998896918136472894284069997570356065250847176210248352835385718449027982860077997766909576082216501495207719153560175182457971972935039202218538770618936322038748977069114757959323200747144640254594943167115708233637420077256771014989427294468913404309277001203589757072211176902816384877734985704222905598819793291515358013707895777441022414095997436423795449456105105459562131386811271286060636106064628886560773626760091346397102643891643844187284927956595022614436004379646371587618779972818697723138141070813403581201246697540787011856372054481397045415751076878387455261457203884767374143731640118643665089938288201805137248899127356022857100989573867500736630285774744050232259044937001143216819078598629158296408437596357944276129771033930481520218617310166882015002661451795473439130541341005788493817605934530001888572863525177881697255000346303753887157050976788283061175180892680964207427419937760608600195018934754819327266487127700702432877104228893259276082054344874405810141335765137056564346015946768911343838690632698368547808729730316829835471573967406780731978970654507407387957862031120390175471787000779662089682099874127007305000671216589242736327851634038527495982091658796761911642064086362311383153678137046871901427934032401528910796551203411875412128813715053284222361787917341803782258978475676231431426667667913518678757338948081311303145951256780452763444268027143784615533003154798705436868004396991529685112890448838233507105455019892051497085554114039575896657817933014106558444914720182650434200424145832178570731493282901172145280019011656523973636632320785333459954502237425108198646831572872255707846830038154836330844371995024434576050157332731144312903135901114303975985545611129145725357316820152762496562095066692251063095234365719298693011198580534878162374171001581407260146061515497218542041207246414862675387498121041815626495966865205358048989448632668069549922055794834124752166548434814854185740225558582905975651261121365474449033401015694527042645432706895433395874216656017651891456309400871842026498852746111965975458584882171773797200845034007206735893575582189773003753517267745196646219074897297310252957231962204354973289767683560675118462278808250740327113791873620929997594439610502933968918978868543120459361328312525286435906188002870479152709902131199004615075068553966505838450900696327698643534750710635188944457279954954788253208265967441687666160130823442478830319744898485255314676443452883192071881750398181033622394501881418681770213790783886167340179279073536207155257618560746165865974919301117003075514268180906363812078605831454944687056305939143305501418285886992186533668553175574597672546020764969770071124032605081074725236448418183635191081715565405936169236750271263495979693333862877989791433689710628783863943527486729267151730268024226009790967395050193777890193910425864724934349212010065708327011303692883858009353401684415746562313472781937908934985057181532469751554424125014117873712163278635790037002648598762063379903722764225117048762804753137462089278453917758579310439482541385815444724878538842316260069312886845534830537547169667109292094707645627377237666214280085462126189684614277820134674343640621934098701871857436686289442525476713439297560330661936259913453620941092755893310199125956976138544603492995751909681971760685574277243489631466985900923298087607685259361141530853303090913582889659474931618025471341036710422701516140393325153674153362319607516263973629490841388950881842244012882463721790664964316865950764080578716112982836626019776055458525051885808632415396638978469774482742521404077536317256073945070022011674269521243864502498940530949785303550775840639529549333205110760297308062231780375571641578768655378678047458632595479022170922651591731601018381387962320314435925501596536158736239297001571816857959794785399107865240188161502864150908879453238699888973531869972449940539558818367613052912719509285875728642176040969062268937609529638148328487902649450357966749789480600427310128541539471545286670058913122465305862239528388113421733519497309123275447091513398034822118680135705732213136142757073198699771236145474781915302839204770032999830536258810953711661886983707538821977833459690890012494135829256415436143908092698329045779084097037043689913755723661033893969113165563080133920578526213079967806782793056490436105624071299331186251438009227854885694233832900321204370677342256427665866810782751915769258816289077283449052034675410479777660314397174961417058552330180535172983952451488022280765501195031088624448075486750389494384309027534248324814197359114440871911712305476942470673761964771622654915129393369835549242073956817311097199860446441179961365549239365312319061844829225286288668533596463166796306514343881546627602858354278639857945404764396032547995816786333035791163806561090974471729619327219140651370485623706837166189474852771596161893252011017199335702458218181291060306790561043576326485743475664816635318466325261185225651797575713546181344262947031257889814634058139019774655128070605943675637760304707816510235854905241295784559591477465860787912653746424700873004625785934995177729600467716647051677846135815239287001439166085094545790058178135110140699688508518278060602473795908152216841451813977058909467168421806274383086981908828564737276798108980667530015902300359421951993817604887837792808100245959385357098013788804383252823124176463541658664623078848070601043847636497905313254191253437079610930692205812124384921449917954945854498823393433492166207401803253206203509179593931287691706676865171592804386987737359213609777813971947235732271919370288275447487237401694123226508747321004159835121722116829782053791698487429940532875414355730940841488741348779977619021679195682630839131455825866834848525673644212986283272706997436743227456244790770434828705858272293986589605263563023997491674227565448153652128418240970990008328262114601674805718291427406235255573289425022698923451350136529375911175458903703225230629268931354498591880400124650069838939525877190716536800306624374049371277980639842268207169595762108515729780562860969347648194597171923092276337397750930338634845932158588352888865946774868039360208129374626209284891513906824788176323766070565526137795178111903745298840904241036122820286469394939922247705947467206125599871627698625955222318192465425430544228065490551123995744833972683319088025643406649607460746032727811602015393492386001165338856155495512187521755897320963401286884343049687025122689673766636354326268800782172662479926024393549744856142674810177372064503044174682316808887005207772867954842248370672728555082614662707711193022154220520340909797698373399115068192727805289554301453439610813723136913513552472889930690397886141387679328934073707158701449232013788518300679965968991437554434384661074940262019282068506150641203566561043530974051935353127397854247441108281068382344436350407036120531044105403379498429455540099698970822710026916743774356608173980451349949013997982425537003037585849678401974694590270206681619961668034227304256293030439463795697724157209846446725743260950823053282269153147815173490408307449269617778038504301638633468837474573910444393834993177495613267716761163044041908156739485955446889802071864897967572429564930437362051193563280013062605281562620732813790914526521085427732503711310183850885400724115663432392333361466780440433916410798455925878564266082228399384737070790726904468746450128745138091511023404139074120046472018679476813533227414828276572859956392623744943562759812463375706570462357920982360847335580899863217143727909240757297433032958233961917384466602555206555658203138911936445691440992523341802649365137309689118411728657767002583706037638467720391882173878273439680392542608165843129789639110106752196378213966829274309056754873551926565119120113740524637248832899637826562415644445327847597826973271271305848308256304948036716277854470925992339417811107334092255928534243860424584490278438999701704008587281821004373315375168681353157479672333197100790250802439523737804388217379028518528671838079262893754769904612667185994169277806510036704216151783315289906157978258806036989336621076814129286563332252792705508224919581306450749371006354936359675815038682402477100465863300840430577004304513723586550153340260050648482235795972560167328576909356440497938785880025566583225088272929207153642722414629023375993986560126590772060294552619398018805169886559508440329956449668502925246448771341920310339849160177656359055010252756282754488840258811077353740383438850219895156493043497501562852981499817089171387588513542801725108235821888152103787866995288749184437827287960199710362388728005000269093495626606683816448165941937914469788290183867398074144936100521493803565562630393675802740720086791130036001259227676878611362280350841110211899220344129352619576733008957265883576792740513278176121100960652199679222175495543351523716429709174672580315331810648579348886688767034328542782139154134993430558710623186004912124384436481758958785175266103919008614539396183971952915769064475876364023414800313605501660255701909407477513737646346787210212556278614873354043259165262317992049809726807231824346984394048697141898782893298293296423656436050247006469577074747096568404875571701895510215079153003236536033381579080106775387989833044634126624920561694581955219569469708859285070312397136946101139516163478616125742847388113098958203760679237961669347032989547873256830046036046618696639629862018187440473137738006311895838103098328121975254727787770033661946158542519448843885366682683625482284916529603239736701932469796221222539647326892850946089856798936058827105581371118129927541431360430507939222640504356646337349475085231673907239137910233827398460301602244272396051963006294883226255648204616818359884846268783196011572869472556555664856740740561164734630798012054432750544534171330022557492716496286438037176795954320518231903318094989959914889270021905472542050600665619713249508460155203536511903286031791770018729116468990874682771461787631809452354377089599724012363495976228825243418781289450764912309902027278954884147058813472664573726862223704616515262514040920569498986797892271307710853324083190844066128742714559143204622480028164811797631173953597012334159602837331066889993712602076226995139402486983848523719914283025135785843105276062427276783078724525187908669705513318701619521597815754868296048558387086676977755507409469012796155025793414939489265271773074148758270342203829860226937800255389782689338509206596057127945073972656966448927244528219972255054522403597286130637974180170855708934877104646495443775273528480842687049622312781905833686142377908646003535240738294836458809750557640979321418337600615431170364826169241443618602831506575073792682340221049236403597152130178271203343392644202466000640650014211774384044344648701351805911847244208370946265523816462152574055840662854216680155201360222893894980696920752756299344532984402780532400074608393034964218471087211964944182225386154385900965667174956533394004880806828578448344561727912127678875849915385554962611103982204018299706745040996889416259768350483706880884440640948727295859901924208518197151366358287521763468828888373319816967543825052618271693566824484058013386342095572843834459430968358266498419042705508760594999212785664121696915779764080364108977218718737954427465068351348123907300514125250252390111904616318722078391581653582531914316620361646295997502044765560602514060915143419700430638642178941793024188856014910060990885465808667473608764043054855814643045201435818565077530492234837406850268598607247364416254183572541936296304799099016659486767843516835939707898651304146912811522164591375760886072105912221371318176898572556654911628738046358753586301202559531425463209331315467723969072729695832136857963285384545500003174636123453407980769949853621060895991765982082761606489123317435724655241770605465975934096389830875830217306878938853830633423184820680206681302733812375580372096005930219095810195547245361377451740606062402312652436710698584496829242964429124861528738972963930542547197511581177966754037975190084529632835749513629584057621690920782258905720356738119254694346023649005166015193140350388679684544728892924658192199490199540177166426654272177362311588299528781082739351775274382545439977498381653495678795403738238917701311770558087366791569304844324350893129990932427034658968855567428141782645062462459178479642737760772196869881540526903963731377315714380729726893640883833576100251742979657053016504345152675461258322847602254908749698880008062183889964654885355183733547372136602326401758107738879670176191863009529332660870026488535959127439630387681022285392922595229923888705919193583749540710848857704398985906881350017821152016276034972864862792430572181632810846126397974234307716674312795616566084050030770972741372276244392358528593990682174332641651040035217288794755605390240153730870613094625523197547787425969292981004459262115121916196921331934701737990400602464704518079577510709122167155542523737627597373657734388006712777431187755340297379734934681700160824753329917249523354038318482549071249817000104217432723831948791118545062376015965441336292726885183027108136682786227314754753244326771317364719174023075458471230796086451523035816889750250037108016780076449131010728624280090806338355271042408548425171780394080041409521598569053254329638408766951815083983035244103492940373026967462736428551957410722310208391771457782358055561293108292204238846849542818991395398864593193437284830630062086473883080103443818115783673327296337954246940361961602679489532279152469711027474890489081382998214471412587643050283119947980127589865718215779935740095131136645410334770552467587079170865164327980556405484168991357267759166081713287432083432206813722169243664654668936852552441111419051814115783574179242692320150397855663047564901328151264819247721917473319631134762853154277973542501724563372147605769495650353181741787284238940069231963817938200085896569573330996742560706523828692933338283398146081138106421897531588236508153503987408408979506773633926477639171202206264827664870295650734871201615737802464023353364511562808842130348776893802248632363945340882536188320146715457412939436055436520649892556294072743290431767985590368387368954612421328100613244328783416384010177852860631591528204521798040271260623049863988127192502695218075934728479894620081262488932453619694810806805502924155644892345957489568763803631024039993235104378355242324968496430236234084027635344178166313328130714998011014605692681648768622308628168149159607852317005979028908762937349942086016379271572512567273071042528045178795414908251317845339838245003534166828429404597353008568959726184059709055748706491850248080860862920612741634306365966818796375672147077932597872968475117733232448025272593138744717135094311919042752407461231003490825449894473652678479969630117946506524672693759743618825595328537665832141094169897304847385034374872071245480286857578580360044427645925576026272257087941183047841027695739760485962906577930044239041115200603288745867268825596331556179801636084784974860769941450610998682016071311330950563362482811236542197560895248945765184904456569990558229950974455556913788009729436414174165073272798819984126584137950192744923386588151029215181030182096539322370692384988250219453349704341364958629708047956142678514149759191100830822735705345948823073708314829526535740280980694550717145725962008734124846776418943163509618400312667590089577075799980490667068360617440202495674635008006971942112622039595420223012972565902075222987142784174544467291176943304316853846481224551081959427100210077065790814299993667865058271579684078400056826917791759484410240144003425031021859676054075656183681383440849225162473411801806799596667191796627483196959519947575963077383504569421718580225320782533377604785582267274657122873415796813517918263056358039091894333366261025035509092374578161065826750344504202682791087586729283655442138905089018939427834984895374520334115708356969514431190958950036670239216224168195226388019557965041630509445988429385729161166787623816367168307724921319483172735306803231375786921990794403465503761617446690447389669061111921453141084536167389630835951181374151494371977473250941192837805835221229680641251140290520063889333297409735290078963693382660567667694462361819732414621410614944188721906021423226522712247099354093173386605628337545605047523122807125506208857358850760259324338204827673852580987727719260279712420174434573132736636189752521237576078955964746723406510100171053986112756256808633398813401027213813329893273186258395324047582437483599564686611060176024796725360036256360594692030091023539056836931810724602509182165937849194537673581942594029117179221258723475016483521465108685291744749363936113680977163993761941861458603509156889131790252004812318437395537373354968677154114787033984707732040415395383597459470975973764339669910509951301286801834407787316765949805566939147830665220995244710881839013422604819319910509739785545050458853788809136557050844613564584616152172220099727915033578061143409074629263806463350151379374440059816540001611286659804248259331395860149701121162155415005051508795585773854553506164530586515526365825066931515826275544637058630250968893523999642435532064921950350651949510665132935130518205565829776779764279755170789577145766396739874968647994382811011202280494090740041140937958314146322758417460153958572255438404234224642725445607416155205417206296815527934935169513183774404980868087114122487874630504751965636236376752005443632045165724495346663785192788929834873717054428767405331806638425604178544746630090750810718342223618913272764545753460690222997748757452522272787938092644201063234167719287466050340243970673137048038833484328078757159888228164707467036122190326444090066626528557431345088706599834567311507074258762823631244090900167421243193518056863693854937917667525977842210834299735185430359636122497919084297755717050039737220294886362537456465436297884224552401621795533116657007140081549778223156766692304773722501972409838582773244426757720040529709735914775916416908329358720220431844055886178074469258143172539914775820120068236580081522507637148919165044695750480926477657271996406013803505439580735518867515908719148531626053852847923064309065756827242391843104388099455287480880016638337477812826014045612953895225900181678793052643475481818608390009935211040878063016632775861629927886414465308359930432967322225595281979764971906397761757068174686498783446332264024271183275039863776381033448838382117529103760562209990439966005009043920903482395689124593276912626486531265972348549304064712188112206560605735039944691397486702531880668872249589367331546138414561068091123435124963062124493619605591446843855292839272649028846729681974201010213970502337636546314561740271349088393704251673321379961757652315989616846794654105290644923470176441694210872743153699804191115783690546992286816799412784232109996959429418267147723309887695541874601849675062443728455631623939079288009440360496643545487589499206875446707583914354107875546399514876263193845113620000773462171660828441529817204949185199506725066589540078381602815380140611737445315060708328203785481411973979926281157150902154767898599592923934230138158818580389471251154831754324321096745192499176899087491825882504013283253398383298571818605571527225056277211766638906069164056270581009089960367036846381725430765127425232509372327999064615827170508980559587319890999414930807024653273688345743168491107297510292199254017048213069337635254141095193164166101353770256690346513436518753609098533041417393564388956205046674711729607844029920249403051670895984455131831909040261629041630028463142357147995990035096298629333472769514251026715670144995460132471281426675215882358363929261292037169397645392270542499083058409842426576180724077338609796513646541546468523314775014167167318991590846018938457082196735204177537515895977919763526368295387746470107880204747879249770725854624149681773875621738408150247526775353851484075836245483200492472053662319959879582194223730253335696634750680132316047384781969308110424762532646040508731385678588129857371714137151550573134445553327251878146234461427688384253413170829346790347030190281141296691617209113233129092786764077485010883436542652594155951225552977173238828904496658073685088347627117577649464467474621536447634926657806817696995744748970721050709817147959054266926569437789130656528634905450517178631792857135884269498795697491284969765858890971234818240484870054636902215650471915535289441159689823889364380911237145106085669974042217670839556515844728782232257557478787623927593922268506998356748750919468604062942660357336602542512873864519811017755457564187752513633801850509111666577937700192914470627133378552046999069587926545698779789536892310058163558352657360919164692071253446635329325181542058840741591149612969580047190224494911016963765573891779660928587441576230953315371326968798969095184238283312100487076930179673566930716142650221124287687828171259458426211325658544409104000351749627349659723833638129614882317095896859946043731473184201906585159236080896234572693684582420392795354738518480552139959271344107720449034857713413237372304295240128973936038725078569242996914920131755065625098322115776315054892450758214114220866764582329906138874280990037379290016672263694481849953393101429829870775059620180181955928142225713105460495602012881566868537010144742371429938959871668634721480910007490519842563868122750553771392218320341185022306359731856575965229190358933195401931811950548659559262024456406869901187916900395396683326726695045069725949747327711347782200866855491020299129042210005836778134306848744502576728407676752024109061113494843574692592902562672041629187186172550648636441047833609279582803107944768106701589581829971344522554995156618412138559086557623622885886993548671077248902281540528305737769013138647176883028404265797009402535862517800166697081398193519398359076161631334612719031790638102724529930066148340644926913606253267787113179063660356237760750436421069536921274403840260364453798421292720473281282484718147635861020767620356218881929618122447232274680429802462562521107259770658840481370064521296439536019887767622078304978196577817883246699176112514456738454898475898321663317790591210884307196583841448832205366986976027282466599058936237344715187036237523664787548355103118668702800399209485475095322992530618406574534942945766319601599825692209132854008020262734857758219970387783784293397620826445873827876696118134543950949294475020516175537422028053438558781608495593800289961516431357988144672785684373710339884823970630527041712879350042975225219829852855720944548802215892292957283322459081953486317143412647966579236374943499901332780615030112113886627267434372064746939696184711119698952067072250866777542624957055000162879453585884155731736937306306024165740323348318689966156739119793178870320426317363129067197242601452134516874614848951054558076747858961868061270263002683218117620992986545415982650271116354462665052978467480256051400474351684807048789064388398559137431408411810669349419632981315178647884945034319120164232062759072394098390739317030457521838743579817315401345880738336576400602289509584416626091319811343022682556347999255423027663746717416132954387211362959044119597626011744504144665345780037166470563822229820824571224090781291056174243064131478465356141322961292460617122037131219542005857518668849697559000695331155189298704356625624649485898460402707207111990577043354164875911490910368726011149640173557147314923223083098085620846270714634928173147608299995009705013461098301847881061656717422995995712632555345432403527200765398886724631436736096627664537637401682192018276912443929920984820979075347765331656243530726147479918011344284343731732935294028426847768163931888103006538811539468091597441502303203845670498624513018061054395463439680521698156483233792126412553743828804342388268371824755078920582759052260161827200953227926871518467007152249838478156901768041777648114679786763924395116021340915697802963958779730409175012356137334404103656425469359758076928417337613102102198828217871144389925306996128841846462603734075316820722203780663138038839769096923588592142598369921123764863272428616283052988485136621345000939325005503938759075218949808627078216181381442933571365489331766273161241724714627342210950698987019869963826953393107480209983491254871366494366306336678380515981923534746084036931571551080931160581881846500821576366965281719575072347473039970607890182561026886585397216031865467073963549434982990132130431260115858081183549178250397165157885657407157004174939319631520461503476846915054485876627711672732787317414782229235586960879683517391317817409399085223186642496155496286153807851907293234745711574441328647465474940270617538707908991195718686949644891403453320363381608939919008065454117720970467726599027332138577180162422663616108086559873734317547780289391626453836245381237985123360590679930064460538522505697462222748568183424792042753496436241243158093548985969653069953222899770872095938313131731219668013888359773315508151113423005014404374909525961871492326919844597971855121286524025783852549383964097199605930097696774304805027307480027685224887663435788121106341653817136000240515267331739034659924401406405359829100257818094847448156554536873397425013589720271159799786560756807988294856016980734893390881585521907554789924358696151191721140063539009458355099764805112271922016758434895916457460995732103873155589407463241693318623028993634981262290274181601403177741452686897342889754166737515959524201675113807203857152722778118610881592526431906471281192052273551960864220626044040082865095227982938356370438716424150255022522373025949081177503720599817613511998240853773372802512091916469471312257488475472933556413864650880926553597988911811354629905908506515774655327780035621218184190202568302348360143441967153286379356630112061592711682169643672745350981078585029960916615591144255671770329376025467836877549648976227952681329433888984049695535902489266410886553417818002910905567900553869416142811307111426851802242292861156552976614548013377538156006500977609057965500439133799673262718621164639727609932930194862324477984542316481367212000246811581077931985784196425421459893872328921741427842176553719833265461991234706376670093253419871690325530541691371713995707353125107560264389150159258007370440942632138516743615434506776091723554800151778247245482939802397748750876788531345168545771975119593451007115402200472463558820550349452968681783772930164158194410607546835522465169779000740783052170743100030637605330415466308092184653916993806761322727139846190756406535174368126209913309319308884108220666281332359185719894947806669902026281334871264374465445277240525709124503726281598047185169649399892169802411306341912321529940551296063190771012113836065756423594578121990166728896248838693896669268013457490227648627956298940254894786822744707969971249467313540900742973067729217090686960239132234993060037923327659999846155236857658695874333676248820897612167001073346764698383265226461852588195027689491504224937347595742749001622483546749576046808144591950538959472278604894596961488686966323560450913566789189798301768527133823572201511804802912777039119428105863999786674369964563480509462158574416123436801310808744914083206855290093579752791435303560604146093055009870766414740225580224007200972319358713130752404367912980358671723793616582620958822876036924840702722404626114972574894937827121343431651936674719026777260143858252192547863840798852109442968947122910542893770752425357506850996387720955070211148119002865712480143933110481784733706903949185743273989614249652558715064930954092410407380179415653035544617395859249617633762580355792233952244352259926321347657534380875047475483030375846547658183111281841901754197698361785920568521153764447577582873543796293002168542472660703051215114517373387034404660635183366397684322594187206126549250229426978536573222054843949315768065328922262338859225900417127586584493438992430766427556783757655058310413079551078045624672758121144675689676296414592641397803708210656962630516633554040310999353962031499039825469734153700379603210936902031199711549572390427338013145065519643584571284690232023508336883623280257917759526367125766169692657672529062775030232848837039781466579866615361836107359405153285814449133665576630766136770707531438337337932243401017539630954460589822453572551732732065942963631560599376411791569675317824259642945674855255514988409562639837904225518699562025495039205559055373582258083907866314062266142480844325372177731631985004703235666058976606251595547842582333415907429766920552081972487365601447373622450924773710747873930958092571334649123335711476642141035034795060966881558696483041408946749132037283288920991529663851070462798638208544574133890849715520554986218725799985305594304153352166262176080371228553387767961975050535992350869788912183590192300166886019255815413666319742487648886370551010935005912354719741286152070722453748084125368173698208010935287031065238004482098280384111637169870087085620967876684511674983371198161147853725141510884123380780554018672131943437857350433231738018019155305610710677320022768825793645505512944356227591159302602528950393474690033144550872318363713656380675951553788197395805687972239655843090187958346218569804010192345324424067452605300920275841969605683749267240270755484284103088320320464911145640494421257707617436347668279055882417664945562391738262894450941366317872833822185429630066930965253189699726186416492917200691742697362364598898806418828584264840499525470990249522295011472803184422762820101496611092704392215253667493769290028497423967968945999103056079057203456322881493094559076171818814707239252845446696854602840706892613537419843206719778714476253847550076997953934478955768288410743034292832661018032684269257606335359012967354679306727035428110837852004339032139781478912480344951040434020718339308241915275500550338068909366457647782537312254617843893267613190920311904350964789029032247070944015050297152758906412430004696682111207153410636302257441925608553243990542010441578750077963852180634197780863982626669871352260089009061002945387211729685723728241080536903506495620381200158652136076717681028933647814020160838599046720428228611485576820575993062403584298118942456259548599861737203685217498406564204304478387535580376631524838982836536793645196353734110789165120375074659986034705116243025573505185997653572717652197833724592592533207555038319990314307754338671402840506540129542531037129809829996641478071092375625945338337675487007705909739192728810663852835330567195611099556886524624444651606984065720382950179637281686544975426166721133803337379501495898097359653108238934016337636282227582185205386870675151981248267718081921110407545112380029802530654998618837733761689626369323519332834751079836527212135573110745378066293702765156224982998813584406882567536980525933954939137742797208825595067238386299049728849054982632698157386979065619246537519926168025592129226003397581776244973747535538003562099527503905276869400585553128602726365335241231073316151931970751202907725762718683831233803188353843224125661553659413264999953456072081903432484308401465369082021836431275705319402895746547923994879658890180866158386791252789140931624138130682660095852507544659171004206488725901973285201893633961468608261987914495671219249533428732867427956534604972397659819830245979085966739202230057741401210169887257418647997625191051148047578506956491870857424808443143361508678866887305256515872001448948407234335430443807229182770383898973501197900838038371347226628930716593375790599694163766209831217794805820318491668375634679112187766923185918334523364335321809907255449397482198011141695475663114925612380102637662680893096052372259086619525285246745687387928351841818160052194913708454586026857246952776714766637032697413798298190676661672467103536661053755995641958878983152176639051237369121742761919497480942453125674851541270464840088796683862012093252694895474182177929066779575527041112765507317124804606017107547018003802889105862943072650503889012847276712678064003963103431563340162708030470397136583644673736560117941089846505578314749646511001892217456997247754577474429940374823208584280621823875514428867560206507113979470390627377235461683118376872545858039758987403990169334332637417114950528835066992430732362957650023267223864046976954932801220271927284083762298398203098021673841741530611820239016425590545804853375557133612937047371569685865265939983827641696777084939712274098434794611185888111272536267755104189495318514907957122450587842686034601254722239791766568537183764193857276244435206007592457531146859325466520403618365263166077283711022817795305136532027212588559943897752916169038724269561482511484939773772790717018191796497769756657931056774552985630561447607855624441753085306383425222573628911998736479262976093111917815591657938254422158506548118471316690678636498408915982241015339400261144833035183115190722239793908447871448139025294823991809226244807168017766583700880601021439712551673626083013713544769108762601739774712098125312630830089076891456722864818780888636860906093356178319585009142234576962405901140509065156628475822375279675980774324451187803588945135912944518493845612649924568328481184222016777003228350532944381736284588091056808036459712408935042896873811824309579365616848066998592257149885188544977586457546577861948481716894164191683288269236627736292777884452189710360614990347446709894187447128424840284623045544997470546078253974057494954889936807866834526272486391042604645408830272732268985997419200448731296215841174928421760983417021847336413462816499698667740115359849750564692833399216952990711113846477327100680247281409434792439388968985337549838301774914701501427660571628075002052685423240244431750055827234678827464389803245143239214674427344678236862932912664427456365495660279086239487783478375449415731937435018022966395915370324055226282611949387826865082402283877533022621786506193178845940890208795888345169699866611071806582705064132057300070771197897929327050132659828359350917063022027596077972581138768674684666961359856162268506525386553712357092123170594959287674678614402235475140308243804145336872522597996416939738455756398704656110183860075529115288571187913428063593767280935480958987120878384901565273444720712913560472881275863706549003582627950289057750475041470517215693468909296607361104079106615025997300828443047862951680364058112697983466123572696609960341269256470686152416137678039582335213927469655042389184134901424744222665278571827729850780980966234880484261928740819105211821617999768256149584615101429051169412216225286647482779210961623127131818740990264693037443178680784128703636229801365078959852540225228154963172978585941275515171435863533049691596490411517096317609536867042450346637488835424517540515222245905725292844254722839875655710844294964481948377592194776054719012994699015652575903252286371355298210153553540871837520959868222950007405522290212425498149618963072616606926836166123572962653729923445436826956843542443528878508521206870463895691543824393856772163685737396406247479905910781810558574499130861564457301985610807071087313578156277719159154172757648657224232204569571118374790672896032329782950046575946441693810115721970954699549765506421065647434244914243153294389799799596463228925029094039654318674036101246277987864906275573225595108694359194511830331709771405846166640864140576223239357752853661035002196759065163490365930244103187522643997802196657124922705713310545497554685121895799054937997212863456150220746507994987350407567534759152315612440553307965977027999832286341674581652543945735558467341188976692601330032221612934966924708890682516630171990187606320383208406749670251022086002663685511081487903159048558264197649379271207403780626944326415418461270625203372393039800256814489213553191299834031929220160025982439879431295262052151130437817359279832196598386490296526830101900495463118044560558485863564079783963424772004765599047060238593083302349821013667186990745981238243516088264709853920435635355948135572141983873888306195204216003830555106825585072369466794092281442165865929492268270968764217045449824821759311284834392991347324256759417830216739376225048046217100864833387301035909266956198044568843107500910311113977109657337417730007462392586022671165016958058268711519441294708728334385572458430934861558246388370047848120706327142596663521183026990367906459220213600562142279676381995075545246501275624565697284789687585917710132560337984593440404731655171593802418083379405726708389048412815556796818314239707046698426219994086701313572094610903272805720452811531816055134391628991285971095188217207652624581368252090825196138314550504041795359685360441295476933478970758128727968958517651021315364885218638509856495409673416147678893712125359991774715066970611452587398006822096134789093002654830317764199637859077009060166224568135797992981734110358100244675796994007552634587378229124157054819074645136195831490455825980139820244787931406385927204171592165718620822060661987237036198740176722328333058784566884992148308557937528370576580046880721483749893724878952710168225732223334845176827621662723404103904643106923556530068635274104840525366734175914413034499189016437013364551915736168578925470756781773630192832452681334383533089031101277569392271054715334234793703441352436841136522771927619507921070392302302756732971702408398598298825919966463110619322644548974507679585036958695732978349566536560652761645715256073345317402257746437930157803113218992243857226012822042864831156627951886253613629528059272155507644012120877989614722487778812313413737629126474442358476524953633347314800999777555420338010109083664663640534725639685047039714382499384746433051611470847238777163813452403104331296587414139534840568296560908496897230007789147494734543825381758329522407331036839653299481942797923367686601333131080887596742129928084531326200697981245137457131327597137962717480296383750741524594832011555391444824159849974205400264739777087685966125036695134456679968725404411802317843746793532063999477053030419463277770133737164860438576692732382154637055883423273009395522187064156507774184385874838941757025871947832518470072176942516285552225101994685348859938342176313304298184358940305238368905115466955647722298613485340451183370262468808333450399330504189313348118320259598988876787160882766052882683174398166451289289031550222763301609683556510417919070248020026542189521814027762353610582340651305194811893245976667154434757180044825275512411479442975356446820885211324355450226678955166779671118525503564528268949427430453421553982035635549587051041870727470343841777340167600736268182117352202516449646417771468870150997275230484339166313311216984724373036822011498529386395802535525308902692300474951760843977007063979209627721943129258261933463427323790741376752470933130709358737137536798292434773657994301792241653931740346905305248640985908548797711071371477302616989618849936740703789114367732737144842831789052568282748867236887500470754888654285372596459267781538848638173154939177179656153787505348988466058206570176359762697826716334954810178367348183928599573551276368354843480520366973904823085437459392295305452293055346847067991584178929823930477996919304651166149924805126612360688999222630224755841395002616869856266907883766774069585777749842503574755064537854207455532009464836743250110705839759704718556179061293966268501590904098235509247837967743999779680381412574893832928920088880187044935691865696035532830674328205645560962542693875722624170500490235168129438366968393154970812212541293589183973765222298849972015659635872767928333025098227557972544988383240509813381510222583623399681215844038154827665362810594886537356598049363939481596725047268790782281238516509514907601979986512538899271649721087964732927049903240161967403103868253715576892535734396909456257044569267074228137543642751235053272168958751105278480410295360357843468151450564142137852556147990427903560624049406880868187857857660325320914003871773696204716933147123221598533560531704373883224551636747754681120303665931459736569197566045404451605010365321810582849507244104880278675362135677226662475989252279181464820433836936506375780361843339727416326423318333076111888732514353693650808881900576974986317293025632174163251647331329060307466292713559311657620018911330603101019011983590972982749690973928398291394304284280800184562504987899139057580445231476995375240984588787759847656706197472536285451887906882551260107592552331390901635059780314119809690837243611942178381249801342485821029545052484651923582507528351068102526902056446525412783455769903802596871350738851457029016316543202954185182169266076416941379880759549300534403951518272985621222947391474698465233710976067972455342461505000742625843507509168204217706264701499050510581345896421467225916779959125437118830100060898687826242243766222536910952992860105078281267565587483542564949639784265251100165415503839791462423125287864826037711230149694237644222143016990625130568400108134996798099867722602341825379764357960911353639082373932792704695548020009391209204111170894790646917103330767284502189397177368549954120338284626137605405904060362264601472291262773586161943191911520749139058078651271431250528336271022440235173707886825851941863187947378495518245843030465904189132610037421996414686627408807384568726182675457921432807669774481853667966175467971615049201797539351023551528403681184038984983190881743661606454782043525070402542466098164756423051015547502802276767104147227667594262753800256198656331670251131781369853133179933780913339653040416778782533196010205987983981580202364634550510299063182379394744911981096922281790461140808372574866743213410888706977850801482708614834450009674580823043596517974237907925029592216961415114325486506362589690600220999133178341057213058144649415279275662226487550819216690624052899384946827610646928658820284664660217392496017537898938688764870187236588069229547654145844235425547774271724705165369781541243808560615960623557743089817362885267055861859766007349459080768684545577681309644732748676494705033472404158832385947640986760936462999404994537372569081393090072131094712029755155989457332236689690524988731229205798431820158230378291593893058938967492949193257802947491284059904059378182285856951094450700200174245491695827987577491352953129311663381824773732626624257615431427545029400412905176134193080827202822628287857707407082266434327559985045034265510690058556420680733976040485518769584441593057778695091955371846513370058828626794957172294275765011084749882499064286043594434283674156817915615666291627788655038259373346057155980289957100494798396071580896638140661382234249904068672128809482687607797008933567394901521316167861709993127605941300689964476420370709928556667414703824918412605366895512864426353751437072943242898356679765328697157691733647888604706488198180328079295654372778925441187753625335329667543747358275213385724240235446224227583011583971277789707753053912244566648437170782137246728693789305838728189023755125703315265376408518829172901978117278496138296065538524299756515431349117997874610275884877195713813635409635317607900081212615230964481790546705187053933003446883672791173876479447326247642042436675107065160232878740408772660429316989362710746139229882077051131237742642441921766572637397167191309618473894037448205269187090938338713506340752657703610483521339441941846010360234458060229513346950669742597813758623436707519220108273674530870021451500920195092396275922359499699209278933996515250840139781696458364197778203485959489664185728726394903930038694667063328871866295349410936188893250789786126620290315094826488185984407178873233865574646984394246107563227293480231827580208538304219207902807227276604705752905012650049036693630776944010780780023980432200610852240465931801175719178066486980796317999061387573305682258688504706967951200837892796915648490221353683519772767408185108494468096110749581828785033616302315959452131869677576897326827504412689263558564346766928300717481574357964339768386330721335936669423571452859556400381775734152258858288695168703681236278627040108082759227484280198965662456950961204250626438669905953079223677316644359003509185214729637496821398245073381626925955037665883491580580223669084788872867752064359073324637568115250236555389398587488729749999840672923591611395787864217330131121011172957223002036988167911335433685147036588638794270431774985752531328436637834312386792382283013368429840318117563912274983115452320918454958372713807225061686409776861619796557009592479152962017319496604034133602662109577641476474825657234625203074484689756086233246214606221431587740122992199673208607189622383760498057797013498573091163640891833375153830395814726947143237363335209362508594544504870179104450161114827831521182497225801437065454697278493811019310850368561674341129261860733301218227724244190800824100658685126652728626346652194191181714461165410987050087152893513489933730820754634770770818347663930474160044781873304897253060548839766589235689903973940057597584702112257652360608560168991068845290842544914970787872435677088467702613357735237919097452768318992764901959986496042740741358001142870143859321522400166624522413291632476494627192353743410852571244199552830319043877768237473898597900329627035036990362467634857656252815148536284740862880831162072323032585457354850525737078498853078500221433207010727696122268174983239551779154464632486675694882254625342068579554077961100320011828697318283720910050657132856308447273845742027688406342531777393226877075136565754882328197980680267480633020568910896741575838572402126254065660841825065275651002127339326790908800326670320855598215700974728440169058232540155447461377493123879701714564641618766402571140207032345390949495399008317725508637784054510942997123617557618975690269751975023482425923650653254182795275248733918512463621708568091427441926696213590425501131918201862396549234037608611030741234858033884132862290690344140100270613208047064134535792859052010848802863275654500574072801610800015911190992326987703330572793976235035784667506181101479181591517644402585577112282902578504645568770562229480355859766016405575739572155123838188558753080642691180836715742634576022705364311043360177183621576604709345704026326084472379054407341252958145077259594333340341397244121400399725143849688706693320054854422608579954988546317997634991247365422774525784157775752989024626286857111353348619583441487114407552835489539282759825749499291392756217779650475007194772737426585998764401718558949910607138800295008024724261510170413427242803420322294576895030053830253756135307423421396024744867844703905134862427000380323722270886636391695266448090769366739608265020405086876755526897170340919618249903700256593473320190450804006871576090508144082375527588825780974247109227370352745744904492894982417059494545762715369145539781023241297845983386262081818070534608744263112222475867564267774180454851606790876215633716776460936367818880712444388024541249234605399354060781502718711249710304572087284508856980887087209242035260896617639475297409253229136732250164410782046668502448830381805931222890318818879248270923914487735035992103874729544640082484826497101720979546126328800835827763245897915140906175383622843159690314238642118295084442231678025335309815861752451111099111412262779017777411542559922404404230342339165261771590933239332548768693838772051265786231865626258267321037901278596304612591930890240764817967857803729490318025586877902485989988577702125133218085704697659326018870866144490908383449758998681206705916972453544055112015935915456831304334420104791402672652641420108381760905171467722984838614046624420305462641969663490778540125258359299223414850091239130111000473489492150784749650027693350996355792701006255043846069548443339027732706845809773084233486907920753181845715558946117435293842734901471143464394476743533546623533651356039815470555102493166419993901607259450514278140615339914340254738837918916353407619957044756600678145493998907845895668037594276107870466094541159581357904518297721401761984058919678242221059737950295588239348092322174493409092067528711696703985194315692781941589374362529162295920640457014670402195820422334284877913200948811328578959839079165175863542629906364938955731759402929112671786029556205444132332905364505938610337726851120715087158030526747204175550277453009438754742220742006367184067280945054368120496908823545168129816874939668112102458659991436174254856315876560956323054095341134972082085399378658163956171149256642435733762336061802286450523014825575520279818910932157304029626756035531035496869250565863597274199238194153640758524123019926748116714513006092072417218617563507163968625458598169174478797666274243216821160080579106830722238334740181323849390100204812955504615446819416551353968838091778946860525351386424799143980399205876735958560103079288371627975141233546355009958003785611792589380208929783222151065487714135699407687319792844388580390011859343433970140136379181555791794298682149759930124328812222892248500722932647482274872855950768265555558076610290944967927341090227672533648124416053187029174851564640644368296426674946040614968496369549253485188364147327673315452788913183723198493566734696513622240050217903657268647533525427428948452565415521809530801648865714255019565182964015549606784743639499688413005409387269442545835300089927674437144715692882294272726016373613722045112178500397333081958782393895258110566738295670918297626263883221661195930328704715372285455225709042078670899628928180872666338161495868076197131261901332449808665480385073570559023079588418199170676194735896694692460643269760320025692157779813712103137044405125747736902476790523738581032512068228356047904081913642069207010875622182075394589103988457248339361060600477079868179050922322083153789522726091867613554808144015311383240989719181323038407934806148527354379759708551204594576973089530727081915789558272508579971787879072082436428707983211790356537932084391775576738223714575228390393158818463426108398898998653455446703491224208702330542332372676695623941010699657192595892246116497666735494117794122898220710284143813783899534254978367610761538760683316426990891187481259649437328396822322010325815163966176881401202702457891869328227972517769061041292331585704939902823324194161847428266860589000102760445167304367578111788491627297116699029747537981221418699669593163065416678406729907712150580442551482380335786823040323412088448013149464948426911519593164688506195335107932392963804194334330117834191652436864190362211947305534522552087429314354101742135760537584662273645519567891809862213035461705690166450993301582532301631082958294217085206304023519823196397461185722658517796760952491738917106230617497489046566108562667772634409603961836478408806300865020667207901191663123213061918797790835234095182585920614422843688853770647210623579334584155903891400124623243672301896679288982195994960368593086072479880582140345816476552206363452771943178650188736864388596007983559982025351792486594631586018237740979924165934213471144780394194104899509463523842359389530629268313369977642288286561029717907447367968239436386103313109920674580958065953808911673140365939860970620966013983010852960415360963788091983371238064356717316142638369528389186505339521513082141274552015994429646271399840291225164124232650983016325853599808025165706826190770462735607491193823514683177492234437032383491962731132371868969483247575430606877398859894796356917795656959425496934173089321030488260897409192070264197905687495524150105216597411160847171753034562453744139969403933738531877252806878192135332767107844463228160255375331699597794482531267812608519599808100051518862633042552160800748410196981717794690493144719694760386675203131526013549236785872246707191063790471769094021780661967468075903810023612623595833375520132486590193420444890891876159041587931651599149932723563002540691521363468813803669454408882285882055658892334772407984736067128689924285738881138204306312154642591327995437164209780186147111814615183049710449867111540441872140236856058738186010920492538100984427315540360419467351557725558809069154251307451630911200166440179749139376479288943533422406067296895708514316867946676354080692796943916113842908391173708285065768108786094978894061319946385303482409638154938593773111792534218686729777914703168846166075576014379101717240804611292113592539379841095877278455478470073734755126096253199951529686519003286590358279303901385454072247240926103255092742744594677311554803954390432114920084798030912813128107187577973973621514242125455517170998668897294057249430555615486296768730586773675887897416738731564319232709245568746853257565695737407689304058260404838401770517495186772155555533476660380529002878379233027916618839615780200433499320155374942409287706367809306461755202546754565501600608041924726843980619915381187791561330211602260843339509032542051002973263269947939022265130308913719775452911284138083614755379576516451159736971625622891965144688444715280544547916301633941582753226457546412274498653484643931069322956018331910321734144937845890839622539889678133302431050602805408851637519257194377311476135200737447348972748675212308151152841022102715053484962856974645296347989584900064592664641417213120961193624697262838441892072662684898356571413323520436392073011498219761448100386062496166858027309123100330111051932123024331316305661684130929771101303380721786966232721778412689090401959058576821722793941878796420992915671245381195259700655915260342608543115000411704844985103251760562702171964198071241664532712114884434373023634045888337316575534303706202705658417308596567042725651503062541541524416976309482464901965417936085470927600382368083107872770436775919623543582119436255977910014904053247114678038721264174287878344158045577154894362015105198959056656103172797970268215840197643177967459716327308936640193103744690648486282194130527729142466101252792979470358571040112414888580464849416199757202836835739937075916257304763095774539419228131197657705919753330108344633513055737829639461182569763364771728853338624320212288433323639966510102385122222857555196440332021174726554003680022268771742809177039386050077820614265414001299587591901808835468627886448675927420159868631392579352127370321186378448783031415247184882126492338220510039631175698500153768359468255374833022546952605057062262751587202607285156004226455020132358417380562464303561888686577240637447777715630850480060736044579236546084304536330184193211776982114057457858642020277970068774119151797064838876744279298756331239126416233329258997004834573899088276623041939678010218315957458496633316743247209733436290311011288599077570749149915734922335895051587105502226031427963089047439739148135532085496603825591342505373202534195189609424864675446961784556170387593827908902987024786457467643187415610102614583178737221853972692914474162550976509603465568941000914894867027896191369140120178015818389673943523922123534080575013065525504062394930421798353966096729083080948432611252518268584381905503758053769030070076804828504737482066257828412024426776734461151821892219631484565034352050174025174281309439256248225002648727215116850859070493911820949931325527946442240472508851908926645133287397650818982269363754417914350383983618644117782821182331262286412681450473584510169318644709740311095818940971647145547995487036079141701340388507279898801360400339583591431993051291302787413410135386920046969839865713348804958988395791221612115802811729373604427405262448085401618168546471962246098921641589265585279766496695768609723616930329359492892843568448779888329732034540378907753268008975419592074268888774748220452067261099072246495223143735169472246542859165057989559259566034800080743307260062174248246568825978766541220629257495250773253787702330478274440908549012268928924412766733697300731238245512625209379063539039211755075595923387171694550390102492609965596147777190748881485342510748780961483434675068450920894695177587594529753447092951655324114012033652801949193929657050349957848744468311812917721091655900796409577054527606923259533630672213174009872355431871135941671416440532604162440959855426406801455506523106351277854293498943045033639924898900644860550742537187780688886774201887775718144659995631883297257858721564327558141995199027126958268017672316450854216325412682166055591918452576940966696587639886513699425702117277016136494285406882079221254232718350522100200066446205298785536996490809962421090826301625563456541019047478282201133413595662210939281051578654128012267460075275856746097136576864170636429054176433323691644415914853399377582829711616359010297521467962637259242356311273387321634313470606476815004538647924690317480667241505701808052327801255126516838556190767542865953639566665373563779557443058408196985289576125405279097300239529506929823123861693327543741778345235861431477408893365419115723945369021394887121792504964595311974807155840993656685070564324064911499383137587876695862887124025786505591684429951382939007664653870274062286397512332730188531440456999985577857689410250079113376651544204219513939406712816029552323000944654807993041842981489745329078186003238116817133692948698629188757771921015596620249989862631114011940525730652730930170599819176199583207829862376877766942535405822261039222999075845442535364711503709295224628116831997968754240098854635665391094524742503845968843804733003178591144415510543225720026335212568639502871914740270230498398208091652226139624067631824724411989747450394800856004135328736008902588817328669391105327904230725420308987635841261384788972750321067310525573534048950577831106298055192456887261618318099120848318870866522015409062970476034506312816430176652146875360117992686371456864241355975316898827155860838516082200282746355042198875470735506460173741257539567298608247852165682657369813570865361962206691711987062016949744347725136312099270827542400746072798493458952684011620304355878009683292136374545582713007703527118338979926497216345193028782345442944665134869610118572948541344537839545080079478690333501069470477801704047877056803481170907206092445494935039671008251249436233280011092372739498043602522797172490251284290539599626816040495089939210098615382017136489322810366028422891223392827690604315305816719511290104923416755118401055491827406186918455666584247538028079636716453778287420550881948929225186536574618179295723247067723988813869597916610471832649908582020013937304332414955908824975982972667772409722524944486431617078334732747832741540383291260172966630716084401516787287910031927672542271059851894449171565190902784979763832907668523072561276086236419897839591156784021152161769191554425870541482648666082828787383825046063401627259080287623282735246490157012537613022469819402158767275700282497663614707372178944741018975972667194540869248060699724815424048532784479816552210332127395173839412215396334906525456552203543855853432763940203308962334498913338443999070068197878666939919769771960853322129979514736633829871538526987434194372470105562415410219504183354447457739285425964953670127436653767876514718276852930018530461540382184417309426236855238902543752522844588509391729543602845661570784255973272779282928202212624689012749891198423305414057897905703720946412073857980057669851499069683283707786303347711885677186264866000951045603817622647706687279877393195259699655401176244012110773442927404445119363392967950636171921289932987109097484902455868967659011792923691085217498277453893266747366209544175386683991942022901983596289930292538790765766785253374942532789073053027169732186158053859382623524416904204949878312946132256242460830889022970481264097158229662571398709253077519100864128885261036604559567597234665502405022474013642561953565326738901306838772228137362228783655872126525976565155257842121675044485482720975536702889057407889089299582523956444400023040572213824506496758974032857384291104252690563864001216311280564258870946848980009156935123136169994632739555332163103908263511055075841797797456300212865754057607249231862249911759344372185955706041996080910685613637509935893116169194287432029116779074825172858285829287671106847325919939520418036251119313236810973594766005799566587647162545516867889207160728604677277703023523640526371424651294291962974485323273644376006522157716014984629532750046748541298572007110854564091885719163534128059957261995105165094355344797849437915890692226509876716257011371674816360954634303146476929489977514994642442911916340561339357489591412476858388818925688730590792229731613313980466116567096963301398804571265004398207573289903055170438179341165831366070819015205301933548667350952349491294746620664867199764346734425780846920526665305439163885376060033652123607623524583304309016528974226005445700585946485723364337882759864937112370295464232550654269832316300069726522894232607582630869835794658018867922950618425462145425368653490483294193321064362500563918990773834846892069735542861491401758332793536083053803479119393494993227356871108111692273699219456554531086411865169046604173222767205340227298720136297603076365708534898615943388477919800941794564058741034691914182748694803808950715563828917503968778905764900475095659416152826191504615814236389511362815592713071552338252850468431554352724308774422151157797150090075599824420187501505151441913847589054564332798201362492108473967182952231494100849542515923562406089081733861388013018436538543825431341123752003544185483323844584917353701217519259828923720873715287326358734880896328108796295158590385632797767353294194961972639633175153833610785469983017162674062795472970302359103674832672543500631728263916162325321440038129314258704913891818852456095263199420957801582926247501063684869695406703957128509136801924175574335218106697487637321195767204783763892884165923780650259023604126386961910893240947734191651227135702485572694534219729177097591615592207119184371423026748448703459358869062069652284249996263903774517706725992594454681747353654391789655172387435442578667846682252494732805548941601741032216991835713245977173768103902503843725710644900982946472019315475592626425370349255427333020046376602248188249363421767717715845434096010703790199956564961498678119700781490595684683022170612442728459776543526840778970653335956512085759790909789721127707753226658875641137457548148255053171617179016613232312943569795841066702138926774636689130749565929421385348322290851366990345616918636167423164286830256044953045128271160867550308790596953717301706967468723270880919216405212216156386292344630862798383337076113145531830877959497635111269207251318067859365400390967964507258877117625446971949180264715024970136814154869645792756625429406593405638804522445634803822895909197593112501176748875848095454725998836251533729072307598917628012770487068860232863994410614966384359903397820320364520086158076713866495288769511651113710038987185954784042647148055887023287231081716963564675325729430114920793951382579161441412001818173013553538174981149760122215387907832188748814464644594285131811242383001094398250328005623469755437680166949161207788315402242372594178136869473386362706891424110759263608320729388614141895014753847676616172329650223549432793254550499361546419078981743622548216390338681012577564325274836340213888677711126807766055201816920083783884811769887822427822648030307484984074882503138214905096699246704814527102091314064247918020677924707662746839130747874285559392120347719753383825287958910211355269270008238065473637231394271233889839304517032320295713547089883537762622139081275266248830134873762337451686332154140190794522504398878265416195192034623088063434323748774935953264866042342991252787189254758658884385442987736550703093345720218034402255491220056100981571395573042216683304666438698108280476430568905302273031511161596558387757752408239003342281596619434878339052635175631924808282335151823497247312083627756941294043715871331632261422448730725459838244445489945795638936234205395106071475750750246820569631107110583003575446464551275947027187809540884989930910761543586351652821433973626867213610144974711250848580170252022042095159825996532265010519519986022012234520438619032432914853503919584411112045406306853070290644604002287255879822898343231676576069506824870667076262283983950647294223320287989855260713898133898532702231771480046647193111519426630014375997315685097208385911702653763472547628440641042994722909196444368371362490282420436286530654280703121354542758128318432244236821706267473602429114025294868657216985076746152350284643192953864360248978319123304406925614469636295356330106033642728339083506119680970086136379507259476270909548456340506413174513905680886285343786669387511204125474038784976514739706519941087027853636549561191963566230944761215858613634239231292285141534862382381862371119637258066816841671871275125825184665355886288245766274671275502731419289436646029098364461194541670995274976533425830423834350911519649089900111203240091320825036899655345408391736282147664878989813949545017759759429757510342348242871521895177308208867394557133687438750370507904141415610134354005271534529388712265653424236310617765498558841521600262328210256731547992107999472004236298201740174614348983071330440378240519179289586241666543199688098522177294092753305554212682483463495374517537067798199717761325673076017176245103695840524589439153262708942269470208977646979349007149604291909587635310841175192708539881571197409501280762138514303390583474644955085800768208961506587392143029989580349587148267375855329465004863054113026815737335319690313524767245157236455634854367086192258266777792512052619990466259018067100956588588043159841852660395287720763807246878016220042110794632414083437522635005631688058206589330298460377697687346475069552816539140925657269561982702166765309693839864430973328018934965657699927068598883325908812386185534758225689124836445139002283349525360282224596636115747096889404743868924361484548517480743041561546281643345683338900018009677882189805818711529190246586253696733515115327240399776054132436263095224997552594950827410689315838142166585151228862216689878293662815607889786204566837631579305126491302770250741912237922189730846867675198473355879763724287296139383167564394726323399142671920375884273533734745095073501528369751104187123282114814535755221842566395392134265370298912055641391390194376499997362607656618388080597991549300311075941452125367504701060057933280551726883015400537988459923844767562833664483443207541521778014448023564631479185261670935474087694233993902235126029725543112429943416073483929217994127387523002769495382955352502359872719646050204558320928912415086192491619273245008802092866031950697107037871584155694525576347536971434843867921175859628163287529775923726184915846517124597262571080666432470138311453363382719614110384794953284007891819922348342962102843017985607317065478607119019920017211034256018729611763517972075839032946428041139838192320549285323132362707777678611867329862135502951238942191822654000766541349232835856489633897787948322207169856927222003935529153618297582214352922688908673721676299765385403178582660033216677103840192727492990373024215262234457163824409660928774424386687574066363851460878263693890409398011088898759085572060167127481043948551137720673855517078263063312579055568106171220424638046526535396725027857773313974728804396320425880243629652257353589240433334496660447732565301042463757518702203553120626857199501111871347730002603198575380706396172170479888408029329112373841264939767326838733717976684607699146105740399083281445815804539699210422170542173519678398354807544826957375738071617552442995250878104378359917285693841783694989766033626882902349155253079313173077396425060123201367055478479674550033520755215651303169214488142991966821744957120873608712507926824125374594234345843347070880982403189128387139331958579569524181021973841252025351062684165011537388817033952653822563108848283282383581988489893402076985643190420052741353883046193824563698778788553370271936860152993478009739070345356791981723945619561038806099275000590868584673679973122417020610831369185291476445921221808733366317258475964097464592646446654875331678575867687076466722720128210661653046427799767806004144615000211971699916440113581812723441642318192012242702919858014793984735825686243421558655061650741923571101919746426756083077922135485754843235853236948379352006536726178383803994003828541264697008829857040298782956268007071498412204782151446772058672532710625817767122575823626302738455244532581623619290928673806764079036152687651408645909357165313784850451459460586586463884929827513521420347364542396617008888325792178663139492470308073019273347694539503238133068983420637056176112685917292393520226941298510056384881166139867825985843308447177773736354627969661705684292803626818289553240210439898808899817396137444622401992708550701772616443753356828492654372119712756223987247232337604093802204603521021151090339744731691176504390562998500724376276611090599736124324226742791510813596368140171439777787967927900708523097350965248763232286262166581049928597358102253163281591737848508789626930082846245307840841566859657423547858366193632445539615835168240677197565039729391147814681729154841814577846558580648953562084852735791515008391205442496612602911098553640356719250299164105204093055095215478329985925516704579380780736965867789983344942520966618261784820041762410654777066564768520023286731576536402015514520813680186717323121957871650710277432787957251760318492977573089036689041240362795570177179926039994564336519773335631602657121271452145997837816497688618115437374215820857357718456382953624716531826724291481934130343529821786068641394873280464230982257999609423428814397714767097202046907123633145855851227337843696799245931031994484562514958959221664209748114040154580473987251001604100100977576728395587315233172123335955653339925635886759074385669419727768543875248844187857125824137044208435068956264122955104742470081961976644761062458375835032340229519306408377815558050429808025410037505423718240141664582503793233936436261323424410922685854834139428019024767843899258479791367805982345668609529073050515508481748089432871577085699129991741639534167026573185001613164124464187695864917094522738848315176657809168533694701414605257105307274571076696884459186135284843166335155206468161228867845257188020599004951547376067414178972953384254347745300312614270698881875225579620056573130747113203431787832780206581023520573942396048019532925572818251381993661520071013504839122800860084968702815271701739678920491448712748348845796486181116402589044087470251784572182289159866458181872539086148009197393674832252590714305598231098662181725648111353884460888863281877332989410587618846113393624721043767616663505509366799027903795598027175651388153973220408574317596081580445815194704655414714857966836752057722420760005082093886969118740272168000040121253270615530189271612625128879921624731375325854506115292894487767625726528282497933719036725270660701827282511642100483085038076076238646462616266517600013810367538550851834493728932915312377447302207517427893546379223937214626034593100170612824489885387587744443861906153996909967677828454210299206182016001800052576298582790808377123357188332207286853821429933244133284967618336461173004804471274204755183502140821393539101918016992812284467248866124612595622367400700073212258098241388215068640356666489575665601330007141879820103158992692160472288460744514037693506336340170692380517500819268487296322021968737323809505447031676791397686760007521484862230004130409807811502199502427308556395465868597969622745898633628947961669659098141016110750646728422177481527080134750144837708014794748671724243541204733179229238590029977673558135486782874641024913067844992501462607940138274011678841677609277339599416679822584065411119452518529368738964443718565705178981975953624979349363055997867623957559374904676345666799123889722719242716460219562248634450581309412358371836755252874888662853623475098603076540869047613700720061664569602210502875777411618405001900892878236050063372020821431653023116570706020997651578201746708466499469233165940163507030381667166886645471249120924812390149565496956121216204559910586665521476663401923222862297082297218351389621528406588751201552472784330957090721451131842206706467456803671820869548232207801800634497814726411590344373492532208896857511712039246829215121335173237203557173886688979755599604914435416375870998813137548631553905076507576340287453532232395588067191173473036099406724475392416213815473252122656919624072858240100238551779761319260582988911874980128947159539475808411754296527224541992398033050959236720947686801432481435749100431160541990309293767828042573011974251544270607769331968681945650204985440665891915057603979271918882535819587823695150162819541457067346796937780573075814528892976670139813479475659244634681312143634903429817962116035776397449932421000274100604405152506936237868877060366904469838704987367156640881796535888751003027084613084724634178983374375656221657663809258709985016220180139847360482837587320274620027463476036652537844736103710353211732926886392426621649878128055135958957394774985995541060354662481231906031267567130417381587508206403180718736299366670215994027559665773993980566000710476521411513998845356734221959587721340720108850492188848156671557838413032001192761227800972378015002897827696730121596950405457244835978636195434171034900408379997026362555407113781212737316014727893929152798812424580404610301885679900898871555742478740327524036115673918826144934083641058281880307360811177166915128282358103731887989206673700784969378961373431280297368716505946414093591421254046737093538211738049601481066627828469141962723869517817802210723849723692627331202496181430314827476796861883991106771926115825785717797198235208603394657840564111451394717816938212207012664094163267816456853113403405014953658738837469499612723074398296561178626022879940324888393320999021583816310075139304190390155534706699747186902648641093269445192482342635264792323928138305113148441154778242939142268155712641751919156884042070167863379602724429387336059336769029826344666510192341183078987525050401049125591197529367602632457866549308678864993451786631651064677979410266018239328859288273563019070645920984170063529512733790665777079341429037620816007969356785881223460184442293702581300926288841390782748300297406812299057294716414796364631789665847256299355153152820833305754758273329312958876513782194953664188204273966866228278593127336150535171702236852267535722659847212895527085640857011107159698020314870417469296776726584232412032187973036205843608561452953562788182734644961455928182129712119191748028337745050363258071645514592183796324468732978292303846084919368254782005889305640261732092895680225730927063079232036837949180091075973123127872198130843518544674552680529592367676129819996638728579835373220624580019182129398009402210232899165661415803282969483570004861114445473161017692933989668498675487574562615773739108173587129580424865002103829834240383287514359450105592461116156815062541765478750600633027852120485136378120417043020862462085485859766776763464493418116528486004462331165747110305799667220551138278788010042701631728840627656332425487268393097354958911568441504561120758780121604684443234687060164100228925455360214410001705499125631728378520715941955910430797413670342999237229037036073274494626643164752329262985294277167768542083705403079057646788117553130545895400425122314840283965873003049046491191662034761788283023271047007274281631978660695915759583003138587256933427569369139074098748117588495451296016383670576549207555403779966221505306676362734236984399349694446107570811167055176669143737496974004549656825772092971417016021549853521905514548467790061361328734691767000904264606452135877289763792284707656559971061705529785608256714621969871430183168500734489944455300344820666421008364798894434219282806838216364012249247466347092751619894180719692233990279355175354919986392473447132376674704242237031017038577877378192656251155730721105512700161282734618930964507075684376073674926127828858357520375901107198363482195222778006996209167911295176297056542351497216339037997776529392409845568792839166059074578134261566511566650264283402942951368835625785366480554419151969799346926835325347136228770202652449606264580887513461232819093291709981264811197311008004105952647269544712829599026281795716097695545983428034454434969566418617288808359179457586269778508426203174600827427514309271293437797731345979141645004365542060859583870971058589800152750764287839240807537685550754765822776610977389049527185415669946508058123688963042459807524893519021312591361817329998890440458202349871999954044422352459458373086550361189814048318943026135104052828736218560874256915072361503619106390624650457959271956431320731025552263843384833902910684495715227986092570703340234145789288292837467833840122573813009720518123876878226613795562142966287591191059635234943014475094930970054325483452749974806593427164450870494981900836557722064953496632025914644531384199028306663949409708781582486021872517305772443301134387935316677153764430034145713923639043226249195562701599434595972172768519554391704982907425628966614508582750171186367924397186155736628208065705184002402367824041917280900644720922657985649603507571570367422999505697521267997496584496000789383566616691210523699141406498669521300222222548124478665875940324743038545858083617272565681858645619943471116874024225005213835231120380228810586982724260259824022593467309530151361886540863144855956424528719148111924619720605787816440101855577837624369949775360874496342667165971155672306644464084959772258979485161198391573402726318710542786342960811005632420122588020875170585234545168812202456386609485094588364964367104763504242663529438753833421853755506586951123617611040874317703467507012319388637410672811017093292204269234429420434809415203297983278113546863949682507949820356026332013407628322496208795555911797390405478116335300133133782369427739611284408937108731220660749480229832040446960720450201529076619727427140611973306582455962681914529750918697374668742345018511537647533202748009985932519585330214778991762680848258080341261512111193981297182205538064884348252665280701995469699322876434604562728165533588173022715899848445451668601496508045284917884180751898920637262637002190659616708033081009992858702409485832956409296722143468692857213563352679500421001012986689097802445849323031765117322254017504393100004954417032858316231843472259938773922372145402069648791235575982094929426848316486850325759383493442420934065644835666447138459300106952902527931213408608671243186688297819998633677021819145815214884754628045328029433940358261232956498448028258633489800011037618840870851440003420107961751501528335973588349577404433702623515594483351388557412562599535633580250869165816595376769974794376209690406008008793004532894603314145951058601491134785692110531475805927577420674508550873819591393817235290572094972474636419756146822767931030885033514819821504168672098498914900730227509859117399143955697481018085480613130058017542432119730953826539056397769478288550461498126772413163899728644298056487705151583122982906373618272314628504213116994051507284597798493644668310818664539518962909964749318479804072329798069582427408829857028398354425048092035624076254287952591592152895595195705654228004156742213405635626502208677204667587986954981921059188715678023086308181048071381669537047005173312788255779073234189499580074579233517028791143560906244809157377411441420744491795707651939085909372664823767099955870575047139508436180865273011897487368999476523956257016262887032815707042351511520824697926663602891623978287188654579823523558563561423545365786980338170218605305226043456461798245333453973741586501649533817840422490658833027499154590672041558060070632240336912978295943250050575435612393605792898839297198146757169991544925984486349819287433094040200441808894291755660288012909752094019950392610345430789717952635764499533420724649198878382786958759184219128223283693269035690057448457585585274933255804090472773950556502772075933056045822493802729865854871094451597003221422333266451993672321521008082456531930505073518703687767395156486189239890713870326569953349727701178867642632310892226923101565027400358834674592123387294523368409213327823429108655588464815178574228600842000647920315200200274450381908872778741508087073383965201372679109827794933227746032158841380447600814873761792157809188038656064687030675968459032354550031689315487195988408369956529113556493183267408656094739753826049399832435354557094236035771572187334339737609572676804431185291807147296934751890456307053547554217949899707446383093311786414092261994362131411166877292736052543255617313379016995681310192942942463765082179836589734367947629149544472376456676970305982960778196814057138796071465283111346402996402556059583291764073800184609066826452397261987065642523628694304513782631301186651923692040477092391060301393552983901116716075689495547127608498572392147090480748668152523241575029469798499106281372763158391034788598321406778896383431313424956740295623558655614815070330153734171195012266727694445779779646241293826235260645024701227461038286551437367352472489328048363740856634366058566100189837140137741189161882118555013557602482275357799018758588899213645497475943480321107256563060760521783241788274822622375112070579348238862159274293524521749740450609148043898253790512123678977537945633140990434083045521945457229411499622636509751216242073063369931379820340219111609855285221083478526993054003312304454098697204776079538922236826341389265019932700449872927940252922297865136742134114319100153590868551029378593044908196998213462073856543893682779569337895947321124115355507709292876114349258131999763589629992205304111980977488775778747936563513781206209703830739239433035939676582925235444183290701232792992464814417907820975206881112220337090146571027656337838882571050221629870066133737919606604909494979979366636567141477244470751688309880857439516067676384500913926934337095932503158038310037978680701588711612165042993175027822787167346554270640475519419781514722330685780203288734056389106687785606157466856546386939367152343561184238383870692085817234418241645002589452183270543749855254639127103395516118051255893806955146078727083005958583424967123171064595727291136683775052986553433985435338573519878537084421645219618856946673765274233770764695173157847398088248049245672513604222037961548220517960350811721153372693563107629437888795456509991090011124353104924216183873896685293216637373178150692078029138858697885023718290789466850595080932072242715428104173908743958759464771761991277912042842306032970966869744575098095877987022064373588168539186094309565059759558993364492572652790268276118870352311068525229606193972454644766516087112402008220704539962555651298481022765681574393950210701999709496482054771142066692053893714280425810969549262617499443946074968671460902633551359322617441521636123155377186709086694195441431148578237328818941796952561367638041708583308059843479277997682293815425362749856356605240140142800300239693907877279126058915751708395599044609504033263350038601569985671808482320111583346280488552784423083363598005421562938464678191316722807596248771249941855994151855607959773428371672220097296200556909061666081757139519467165648835552725763861400774870909092830843404994156264122898899273749402027104498471053118513834531080557667183207830145798071093962869912303081806983123627184247998690327247645278141674139451013313987650839517343424976176120436245743609597669693774857176458816752291391487908245303352646659554625669929501718209686428094999765517620847989538015414656254812709307963522669137991549529876220343179747380486127082957222784754175712858474131505730749988229716439776393479518698480664684426826538366953026080292806717915541161024510349970383115487464238679728426582014820026958488719238375284538796209099317419358791430819009829648845066028390969141575457437298662652556418827731021644433346073724042163995678789696441509304906996158192463928186523827083779932781509530130876289631482029945389302377784466749354523143373803058826112743541116427648815608730244543635448178156554714933663825257545564440306006368860704030725255226363611525071086703828792808734533811618737049517330009416884500178704027075646810903959179280637457678204307205845200680596553240074948654505244431444329167660348794505152481942497960908368142212586779203154132586577484051561847921429008373259530262934604945203919715039012815422975620178877734670321487285737148823237046772611657222103436308589268020304399823892310900265576124631884909113723938908222757359974979302583333182142165315874545881896246933360118871911545172791024327080378981920213184548235234556704808430695661402237772378384137503412001845820249817097682887847013488397243076674095585932091374689894335862739446901583209291041543245264713830584959242475902612809441497198600374366318141172889573230149954109882353399455260048086980467042511408677089253180644595567945573541496785014847746769257817172620260967114581529700824786959506759143412132165931263811730610438086660227756543445028107635453540133026677258869444900062012969885184123471672673649791754167863955761823857829003081004709518934628938330030169955652579878418324246448152560782563077235126917152826216036524080854893459092243488578037221812963273223807682045931778092592268395894008435892016153907036068066429766228199920913432770493819463769139469185347707645593192897335233311504621104997372771599025822320949861017138078062282571811807175327169457785982520384444721182402459422650560933398077400086552347854999177995128188990249138362928013907277219844374573208508706878119633722246336877278280587548415917450077678536802850615715526443602019291351675780355495365204524472967586528522489024039793234034451472463673948454001637978050463998282480662786842655324570624663320115542487985144789891638255546753203971255369505443910669379548637268766071557000549695599295330604608194836143339255505585848168177817961864423379750135002378253010791735637703548132296396749495858437029759848530809476789163800774912391226211535000398594192057921720209156401012874538696994137772808104798119581244213816127635448156135672046601393855772187912035945580243090348241726374804775837660670419814037155550351863910720994208675839575982541905847587629086323045444213249352097003302473900474252667427732298349293393100652163465690556334896133686180376107337654492594227883110216076271617029851627979021772865403086052054032802056287806697245630878647908934174740137872124470988652641238371399554028865641678590833483211660899463883544947284054396822707673830408026636795556621852944329245330326585874299632612506766341817548652406402165883852266799312715690898004834619077667613465738356105868085929863420138912197615831148180928583787053449837113784760565073005995299047377236119318033116246404131114461927474620837883257680337433760279092722197210191016887045060417862819404006920704106670689805709832491994906262995953347689740856109349930589289598201162766446286220067993107761547009337984592720108815319931150219904616209775981963178438214037670286115839247508575861051511529338723509384836034814971068900531497154313813937566083694910607274707183916257720721336236467007451563763311916407565406530534679509856872850300971376416233387237922344805363295819169220915471068844398800334933506397395403788106026496866348869195140724283543150315410502074446372555317858311006951557893312902516794358319910113573782846507884163901470350819930038390456369121950727236313266218688894439704828627531038765735230265759576084961355753367936406507815198630732381119872357978069233089520016488287508291175403343839461734648600750158569043349796641617269698176904769265333180520882469257924657009206897766439547210094187145990825299586659812686919825372272971834178177842037069498394869347938962573448293342319633693298268096939278845433015909315119014663221900612490364588476725011326077592721474954033050607964553060466795895612468630218026095273281573883826473354468577532962721134889302342080349083503884499130197948736883603386036177063535795088215476884233381134755664887250235030376800280819600244453643894927622048447641968571893450745412602286788500588992915336996996741801809412494096766224674316717473640759719584157708888559752457457535420965913432874916346148636078921970865882481238337557888198890085893518805397666505350160632350078641293742618195476142721387321511737279964378676717680152745794727853984104037743445824440102523657250649237255637863652456557719180873185276891216056651368353905824762642048043095072212062604648356195433854682779387016739850926415628377278374289738672541844615315309948990013807137569601155583749455314922734175058110189661229536071438710046600933594495454769256240698106331907085856080096474669172064534585394986677854873647730938392983468612551921403338434251946534059171719923938651114971448299808622281686708743220439988969517990697486169394745444673317703096587750509088552080030813635011082070622893942415750487934989755609782102765529667933064052494515903579416748918321006024148236453981188640108053590476088452159910372477105681699655664802543995000553333277519891543685406860386048423350047739237933883567024498627931130361822860313107401702507707166584663912008513638048409554855990751931747851852916567738851047046149081183592658297448768211424034411675057413207250564967948964280130715784950604423079315455445388521202726786412453103873271111419529015977449015289082282488548390337695791454751475628645425513607242917396403135460408704576062749238212963586650708357160739058159404186484311459077441499189850458792897095394161796373416418980662630946656040469126054094680973912890817570667892449413211526112974450953291955881345575738086815092530958693562128190589394246566752024767725868338235374590709371786156198967007582978495341004077264326892770217901632426463051554952319325858134068461377094539411354500127321910435767842187774101017324108818682747380616122145510422699197313832866474004854087917185452917262329045937307813796810576092174620967214588745065020410847989319630720300979282252414180367684354596526526670129714384749375632245365886518551906877562621667380900397314288322295858033533494413957678371141302695933753788916759310645294798296479007902699543849651889709451004471911540055026797909473788999984061272950791689835000571512763036545615323935686056200060464300513403766947383383475712512976620364302388714618311916186551539194436843233331323162051839304489292714111942104183022079826005993160301816724788447202994358080468220090576822859591279124638476591213602741423386969501023308425854613636209849022566232200930224360231153645070561427360982225905850192365090589962756385851008770766526647344837454714752785236325324208967745552792579493844031835224247707363091410731523347538234468767253723183381929171890143289842688474983140364423606274500367287446657726610005880869017636673609534735859067729424534082803588675633240675138036661041363456208213638760440068230366248840279261623656678101059544798407275085038811552181577166795235587215772189653123095613558574206739740490747771943586068295060674078701636080080929905059134432231855112896234615660092047458864316966323377280237677230367922918430018850165540947337752488134026993033911202699673367860200922176823124625543761275420179188496551998433519685072749967133751893836009436856443539024427840178760604296890302134370378605365633008593001506162153128052107980574892659518366078260898763235915675162047095440007527140270090763196094603471231256302263076181345200306890576482796772266678437543375328834434791161414684467037891298908090616714884597686686531095857621560149698743944861484929418519472292843465368415590058231298078907733407828278462158423860165840187827393127060166188177383548614654391394938448573513074640239065478250254823196376218715178938009134766232787385884663873776032111675864005730761575096906281871301574933637279189733891299899705355150787287466095915398257325738849784856887898761353152527080828647701164915363061271616756878334135658954431318617706338146518948980170024340486010403103444589958413434215726037306432381707532872761434040063621764911004814499807052345236717066509995719174633707157711159708676509804856419527704135848532160306387625824217491325417801107544635577489403787046671375618542956157075464483459983199650568505480669678012629683706148832765208288440874771046962983884413667535280482724867012436026940162733163050027038515943034771443960394927379335296665399089604631943810232622788490629357377678270733149191306075917915187385033874618643316809797843430432569934041075486234243443933109925832903352056814123357053399673502201795322669048458798034725302823925860934299996753835748215778310336152126816030518356557069979479408700738595903293611602345891331898564944676535379505786616922891580415952615105711526846224571546438135600264188704701895585412248516127046905721040065142302043425612812802625319343687960305162325732044357612236282064521198161604325871449520181706042926816773617306439234194290178002768805963295797414310841598257893459928102647015493968385364723195940393245453578314475968041075856475712829058724943468782523026707396993224707638157525131782744559386953852181204159462847084815337869013173233164208142984377020711627644803774827012480896504794695723206128017846124420831230160462584752028841731361133807469474007581026448992674282020586520496388130898521583337251348667967402045138109464337324031223169853447333154850118876416764698938263208440097719336807582614768180334093193274137276335995544785802005323987726264697902406283039314700522385735544120056741993531765318023503349551167805267346679637121847493253258026226961943973205232022247915851526236606821567577284183995170322564822268305418054074747253428559970899604519068790090498078172404074720293348160255242801918384060880778270630348113681207448371195216700101007439398970317062002540663803103895331627950343503736350681290123288250479523763736327110357638031122813417584270453150544107211020224325201756285773755447732993464246296531834848529529998114946281424896805185036323865893996190371585336556914016580560299451619742667468357927418395848056789834888849691691532808594354301428753764867192713799231678718836531090169886774395136473312791568114089247811426380619593235852079262287688242332539174161505271171438357415460313351014012503986757956192906545642576604619156068765271918206634737816029473803156305656201062599719278721274344918009656366183662608399975496532282518163361168551255642753281247026757125266244322908798344143787193689828469214212973119871393571988122199758230587885752638079608998119746273176065688198817126549326960704796127307703876992249387250237491597783615945663534084239206771764454173686038079908904171881520061654557286510698171912141763296855542853621362210256393982555427171812242842521954652207418408425343390686695805451665920716560596307620826314511146607124105108776472716598047477247652544424265709582216298682825585624213842632164575821120969984866279409889389673652352550017251701338898622797006308950617354509274594984677170842169645603980227908039788469086219477538727513054491082159543984545387011281739318417544723531386764191591129968700878113873248223711169431726375129558414933219029023056237011218673469713919381571811879860577292251821378360971508385246698134509997556717544900037376605266483928258058810013980172809056429418044685662440582364457029274979024373000073026556876403496221163432879910778628443689128768965492680722021196982661601713314042678015009513247512549795911695447610771067702020692528651442526672098004810819188517347101375926890772287554324806229760035868660122305216344082332447889896121257976861324141669024033538012711668305623458153585507082602550522876005347372189398550916274115367978880032305236248893345827369393542838146297989134590629263507509369254851078627369964679573086948024837665223369909045408182616631458257618148782664923545379045272108737610711125147380824419987852072973290033566265785545171868975091307287905829850912759085321006140643921629117830404477459107440304574023753684476480296376958647159234171421144894025128463127832966236090954140498251238638052132439842942065810130969974748446920219301583940575209066489792058048971356568619919426741901948355377491726295082085211605089615469634776211593737343786332501904854295905307118779564619622605460595681624092523356460523209801248912586181941062437420446160298889304913180631516495491329040595866056412943387524879077723873917997525050816055813095913020326368048770571272939771788534520499971681093557182279118242157682117330678173494277457895159559760203781107424836060314916956644059233119553077189772780036346047763190280209083353677339559831791052786991675246389885178630014777764049457588188672027668943592782328099335185761097106870854029010356167976877908276600995034835959247040140189609576153443503154738008552534193313357758199343388687570623059386574023357515302993745371825070605452449356948197162937761663010992392656877069339633464313535852372908483918848205740136582075436140779465956146900377759102396126480132977465009276036716314960481029246543903890238144629050966210607467940221218921944443769274159698287198739542450221391505966478769760050534630695210116179049052682896614869222391590834853455357506654809088490149970400757614653970638260696164402736155259711805941081683966728691420351710250565682143699884185116737814458789640237045245493940512717546442951257671611703324401011378321258749907503276811402997706261148175201378881976814513878964338328597218655913853674253373023085062350074164964555605520456357721450354040000043706120522720264840164171219521240854000832898224040289568902372259607299501375634352359533552959781821262584196313174877587080685886405384591886056878366699563330429940158776857747463997621947741260269030600825925759870392945501204456425457519159287131171015881054031466816987718439293807724217681525737358557656054952649353743066062180476682842197992813694056923731701944358889032278587474184151137779581407125426398203996175411145982453245555309494326543345516209239087062038391802506720394035577500959864861414684491555283122884225989531625153986882941432799528397345642191986490135052833494349129365417546388863528593233768302485955668619228771541664699424292129577677208745397695148974253815265827576858587747524981901667552342626427727087792547507550924777805630120565968842196296361431153447091660069709253056523363437575127206928427689602550196333323191008847037469637276791577201886932233294514697630365089113993346907613720626446390036747781565973471255947076171241578564425622677124786443314134608877484648276527275583959245080580957783335214307991866242870909524566631965678627646850276440278859558985999781403197474977913002963449518987090857325418946157346884600818852349612759246405280050286646922696089354124043992892471178626829949497763696119941463446737133855504170563412688456355496125669724262070778764506766498700239402581935419121066306720297707278846008652370654535591235371209638747742815579300792132097969893585109955708263160025563411280779463462213007952030696582679758016723200053878237370795820849293234163843100360330609358267040234158682326536795786357968449042054219232790364570672811390453378308908327418196450651107190117664150830272707643791893991270840243105204832975959229276120774535096534829637218142053699045448528620513972085173083781452679433431713096081099657450435234476743592270767220405894452632730430187761497538119372033955983267419230524219165560928909237843023569249057777587976737745397115750515381466475748673274427450768478786731428303110783802313599675422915179562194750130970924643791186353577576274184520293248504861755373349055676441992725873276799220257757433228667379322811561917814124896908335142899254264314892936305196777800796393890400119160250332029998461106753844823834419795544674560901986192618800849299151897672560997020663832154418210686534664079518057235215503765638519311090045667677412734410691795053036165000510601693627986574409348228010275806392643810948256111775120805120464233672402990199712154346450556029884579312399812694670835717887778815662432551233976896687513108934406987491534615959311705214111265224318734358440714755232197569274557763422446879107814810789440457386952449951104301697073847460189393942031788005149906344471296607335205134749547915364090984032110796453515428951011862523017475974360912357584338147296991537620658982367765388867884867081120630491328290034277609655854135998800777159282783764187407528242731711058260228997384769918357642419481567729311838671022554374598054142478827807195824924464171667619317586002097986814283212852615924213094729328576816120789515175307665430059325390414205049793128718660927853582696690752537663559872284902220882154285867655578230483664295159338039490174664015473782005819433022656677854476491694059659274976239915993640713422231877121075510543338512726047176501923305154735057607489653466498522811214555335231342074965070403914665767454471615427062618689873689622445464185402307656462206439269368187455463989398389025391512363773358547502231431615467746948425069967226314870146951515783729556563206771707370337635502350263531696139698210227837755930587598350048254165478393524822218018915140961037028923371842564787534962307793941712255388052995879307224490333169620943533823919697491955463521190943952126610313249187729567521254205041108979863731095669502378317865489686707544370529751403260216166918675969972513545369805184332059138316401388207790018420272501500080546097204139941536071236596462919543692078244236368726713856390231207024135860105692611622077562588123907834381495448332303825850405881265972378033532921979309580229248887899570653537157866283695462492877157804854495714966471762004577834613010040935763674672756670580142333198501366304675755413925515293050559115519575945664682640315002347087651233423701477830449822925734179420458841995113403166433359057064620919421116521260409304447680848685607103133846082060730230359405571287046394975167244636300485432533887516226860827246347118893758977853245037323798859526179801811157708348643337673648597612128099017327354651376431766278310699841609910434417447551203272403490121963299562816744754239909560822083950196554046088488282574034320380353586402931890210943089979825697182471926193088957079537796895074383156842343290632806981228942802112454685747608667619644404039634757901355649444797446275744800555021448618678082565199453858942564423590486929776016113039052577188440806855772161206124673373410794063382185395571462680248068859359102253323480798752194569789783707945423791943983624711177768074198537945451449606588573173076242220485056624436441426890248649211805067667637915328142704047803597079420411135418090107365240463539977011118489247535411845575906157994659165983045975711599067169098637014580323459633852379132393411571841657197699268436566699676659947205133406968588898999561203882308572530804154484489462010236715846801043789913000548347141423174374395233170820282402532633540224616447440257800306238584792367134535148513287925071221829369003112223481110387785210233143947661161951234238976844686092247508082591481118915732207993683974947174738923551405581207342225470967363569594948330211144015647019456672062754083468230666998583512701061897896169138732964757334438016197392300460621596112720640597112568020624258123316763835375114471662767590020562305302558952680609503929495995488353454872104291400388922293911229517849298066607915120656899515808706720722095906072404173210129819171419997437987445828019903725974907782951420782818162607918804423961468693194796488689587006928832074076235203326143238306665618461558519014994581496729219368747115964318467325929020646810890912197098723099329714475565754191502776805682120149237736752088857026584891365959314469853673810784143927541333811159849431682319549355378307505156659719130030206469270599216467585959036102889392649009454279400261137977012878816647976845493451063328527241772395549070243979209428672500483973739577939032792879952481538755430277839862500266504851625101760965210715774561142541324402752515069708547865985588312338227625642069914042349102383968393743154245465723346401279451078019384487733035484571691325205447390124573535552982587454884192672228630794037444111545597202838053870461055653371429913467713214394773392538246949693144281947194221868430324106385750289300387006699966432409081277034123112616260759933231092340376207433245899870342380024175517719899690142988617253478629918497926793957481411400426419082537903013848346746091167991909205951086044538711866737057928510657777960892425797875803217310537937222140280164382559407653799147852606108012763230798497166149011065249564956102956067498840890522229804126081902797757816299256466144255588059598481251011394419719830777558429608419908218466452340378838921095361506773632455478178462122906400474858107812633311306611059011299500409992245299211453000381921396654396488606082024584871633114590650370794184330963140141178589589457248426793314254936840710286310803615407021705690715687727060405249551402418372970772057540497794518680288608371478578341880809209970203436344792666295802479236093506943482696271369739610814912144862801256657142835379177994806944199720319977344362756098337364439056376015149619883120606965277072892878217337543986849566775282092845352469376794292932694096796488211905552926528329301390565410400239663934594204686985446242954277121967057522615974465449264184354641007057246518072374057418966513844127239325085181854820289530230562326012344435722527382142074830154474614972616013032418818843977595696282528632902939787813637595595968452026308216539232041507995284474911348951101903369578670615685456386407899925434583104799278863238542621398855874719855765970738481945417005057793689214335330178415311090115309308163452222315566333490519420950192763628664956060128163259674627218990747342205651211663744689804101822504503082073145888037082992623567144931206090723225714964154031428908781073265460070288726596601446976309484815909762952375689917439604106743693048753941770905826289800422041784331684952397240150974670289830460188744029861957619035976423903522973997997970069005944835311929227288960778239628986655888235725917475375354605376887249269501811418387962895282305597118320060485190851003397172390454539086209852494030257386294050882173108445982162725404429030310261409054018032110108454850419977669958769851118313071386358339185275706551479283911954696038331452332576517280035392400332980953456947323297560497572411875302605798943192272827561597642363400093038170594256269716465114507261620822752579117591913201491989816820833920896765176727032306656983420224860702597826470698760778347310864259834943895190340582840392078236367532422460089061758221994508443255910595537772750416308803348741408197413835652326293618719889219290297041199067397048186461211000117926593269881775886821809511559024309845935209918031168800934482497695988571373152177970299584758878493826917066798261073119715268861154966806766729594210478634113408268856016271569587891715437184611477042682068053311143600572226610233744683892653986783634446734433749000151348352488751387590908551486166751660177072423284090319101258148953943359199283460439411500966489826121615878615780950810808501516537991560229240517818603376033379536207633282030686861687848547830758973215970158758404059995315464997505413710002797376246546671390028056976594605113721909139888160447922682834068746076990075349882623162767889323294604669061545047899616126806837762593490905309016588246586502117567668288330144595609328864813028988626952317412404102453392850023376110361560353709451350602111699954765014655487568099038978728745974409363815005159756615701593709243656164839306306381744823967932523953559663124956052950057327860122923687931978317584101097162153501865284972249055774991407913218006645184708572033195469607537987279053437668267993034555683796053477416240218839643284428909869718898454247239183525053929795729869734970093226463023889758372479338523896512046931588784301486222195729221600476819503242402548056981973707506275773886234775069522223552425848969277934312798227659356746496398666183883795057269430832484871299996473357543144909480041762900116304266103604822302309498101897637719624643621559668943882642895762539825475400429920018336690838895932082777411263784807433375648846580010362225532213335710307774407659944856074354952074081656643855047487833615141089029124442085037505848237692335507337920227531256110371444678486157117808117288263037031012634509885500990515595551854889959128881038716421784015525949740068384825014183440786621833373866987735702728373868112767586397543503663962467032273989787378984938180439680494204616895714940206300443510697239466917867544938150290083495401863936511727161199492029639378621706011199190491726887824681986325701739996715983495687147489535935769422852150823815773783304948273987761552029866417754611798906287434123816937673356354811101205876931981646294894102433075738247483959085016191911122268245447197026647080256009324358362192048205018072385934838644557429830307582466775333463773305278345323476981161517720122889979222607239583859531475141206739002913292404747785209327430085173227646500906504206737149856304531131694045488889053883339975926844947999472439318784449885340806517960345078942172656194782450755187850651786627033986224559907674538311029939472481834629909863651651605678277849978394941155578734241167898946814858370721870919657049126065900639902818510143355025250761817693793286667232284915319964623898338689941130085085117273482094386606555022882425315418163402743759340326510664114384773964410483763769632921823309997058972082881390882590890895631418358709898308207406826065597009864193923218982214469043036188399478076185322151639908402751695651764794749107269499215468427366533368532470642259342518370551597625034080595710790536086901051831284522858075445172002041787671409671406064877751930783292209921849034845870320420683530929966089728426137365299021684255589636335131255327457980171897688106229777919367036894534417517131352937424426460683609711174208885435785698002685160552719621297449963915787866373119484160858524045932141724876800703436400650375163803552686582952708823571919158649388677846286986041415422645543872684477845041798257407466774052476862562432159846403501720856369988435383541995729943730541570984204691635242740030277820603776618570438652881329332942371109679615661644801574681652321440841045766672640553762262858351281820306057892449513319416427095292344365251146824230319325048874352645024567866863785680347782359161857097277399813884179103710609259179606047090680424013113136169697856424735723308444302796913888240580772617667244635460232677172182917316976067872184225024792085422471340645268652854839460287202094844499174200825083925298838830416450598143361147957863248340642547673134390491644619221561955683138098110160908948949056243912897578892770524977727755338049149638922205591641362032705826511536170265338821558094152839795278678913595682631155093243651077601257475818036140347266032120952645457364830246689033883284695048601066403162753426411186004781129999985405576015558985186113128667050149804342972874475597867083139108438538097689686623596091710246835660240838584831551488402462644638014706284515244825239751426673549710002254775704254583440933592232096381519659667377487042620110136389753594646706177783132229291639901195375387724950526904875394773459161647512322762679723587166337764749983626288569042225824137159492614643257011807990417478937334025014867786278739682315021866760263331194217373984278579490562053149991995716309277409495314712779471541887179594636337425447640802284425556917496197471183173761967211181639844646998275120854733029035312248881650434699645394834641475494540102945908898648008142659028063307726569834637149418866298183181365508769012336775244738000226886054900754180360867769261189284218978877520229721691794320192877507517673031171158044865432360714779099543681294785462422239380510069385176224039594506038909336923892707330908374512274037699871157641835003276106535452908006401779364436514347464530181685146517036763866774026884068229507061217909761644706584930828568082254381537322587909359737545091612652973342791223995785441405148905112762279101772264352233783170520520462910605147460593340494439517670560654048914970325827037605978986272316850928807321154146961225723611438872658928643551045103422131687773938539513005731589683272668355019693173773790013369086780021301935890621971171796743899044293781055344750868827553741334257796020732633791551772866179949201605281083492429130589754166274431769512797519445406459792412008881761989830310240042187672701002571075033197614751683564455552855498839886607959096902141117784087138243716105545348820759032162595672802604005932290377070184221331961679488940722305374848738447806219098113710062352719173513113824101476896340825794014166548768123151160583912339343121860178871359911211464123715885507483575628185554437723068368397028949136546993722660368381627477969927297515758135071244889853330899601448318554311065959592114968409973810362455368076901547395275416933983006735841138616071265726697793805725935725599301202047367292954905623736276602511938777902761570862294504937126381593929739498842976445954872272840435908105263981675374046039479863205701717122465963278532269434669849398393777432582828979721160704196441708529977438158228250629513089600744654873338984042798006822437765195970663566922185374352598313080693158905975429938471084787540348556783998246809886539257394282978635534983407450589907390046865153735920409936534506999153563209499489733901426507057807562261411009498510760632916953062140073532975367321059514142664964322319272654323685239131826498851727200754499916889362217756855923890439023535082432304761991141665874344781680588412236357399216819147968388848024595290029737995808962471739568138631804282133541822643077092038554214090181635713578628377037669332303692771403603572974926157939589493926201996216327236911121623561892131214567329359584395602027560982802683405163176044388956079810524240296430163574456057407684194040857356247314119740977604226332900247651224432678920746537871121378636956535235986249646972470753980587331384589741979208257276239326555446404623395240377396312110959743190598036797845357110374141587839606258996654685521150370278487948763892306369419564722779478866431798616070546780155455049366860636515911580880670450774910939559170269737491305124927818115056050607502232224215616505559318501157733795032018283857406391942256878205534148084384641930499719390033192579388163453552554064846645911335313403878580225893230113463434501661442139349121042208971010097155167739883235560844451033986912886469444064558013605811062674198122569914800177068386341974146257783058575478396513897388485276660225090700414422700410711914011968366791863269159142781829935772759521813197332027936892766507410861720542053971093773511716854553893066639544332984351078442493048335623440601104630050282777060784216674080198903465347745532220732109587659277166482734073755700296835345472876063341922330522309748200436189316219480489889023074842065537418964477641538222835406395710801792101267924172751804156076260536148191232420471531266886417763649617398287599273988777523638001533622191284840941508262639597649816860991306926879544814475193722463205352474223102425436618206299048155623945178590971863756085954191462148013694633837916597378195203265859069347789063725093364827536533477410135390380768434579769967225651606450760148167480545817273749210369496216511014611244766403792239442588645511782347945432935867564079190120632597026630358280252254142784772753691877236922643932779923749959885396599172307500498500634024811520688160277515011268659384840544547499695386357896899592097531450143676409545443486925899908807349238397479692295259171314215978502546789380947072300393621190804954855693017342721650394112741639105183688129308455570870091349652089120251558163438388899216658368486342361134199902250976291736090227469111551018319958768185489355382583999120303357325387394749250811101176446886757483346178048297341504975117609463003857269022907890700477759290858754309068058036886946709604661341576989589179909425165216067228057055132046681251331729447756992743211885661097110582895160454651961202956425102173710841182732689446805325654605155792743987278479512699188638079240995525473792139013142132701702764715934251698490638399836065147555308364378273290994695049583107516387876293075722192761913815045164300862333627416445853163437125850880209085052564635818124704182753243181047009976336038829428683840409971990437936045407294560532453397097455951631473231596500337920779599385986032042189507778103945781343655370565011582578062482212901313538575800354238495436162700270541569493826524071925131117421690530824295687296699770434780405836860068532278297539066492267842180346235468219331502121739053402151874569395966813796877594268333598676463658917454992507918918316934732284093091463800287119997393667510010577760141093798579433474568387876210158552836174402025670839947976909734066180419158464843540795650085590770430236343336527674504655440122193527693252480800010142754122453205502583841431714423106639604986816744926405881717278375602995515574555995573158550949654714695386697362495793707461087541254642165901752798771305396671028910754236301417526664185785352597547597864535937914659715573547740523928068540562049189894648129654009022194247353153608022247188914369977286058330245373178368662213756019681164448783827115083832136380036853643118989957189794207388317470237467323349929721194848082753271148980448812678848394499151855974523401235554261932800903732765304958546500248072296761729802999360827581917922976373789006234729414659933447490232193093153067225032716525199334638663315452917265507433153335170454626170321217216685864080309926781692032086499448288788963290729071666140463054768049231340165787670851429174178197967967790861047175835749668228873221752285035403953174036541662674129543170253681714348936777926097035439526907151541785896069560660461661313486084131929623770216798290014343796689252174392255463718834424191759468106785678788440288351827467886707722959151446869733941306002481558393088812567147111104707630767023366500571175846537806031766800755821098054642579560149676526150034858604705564073378659535376294163294336474792855388198099148169590588633872185429439496161434386313679603368303399262724697097588075714140749578586281892096611935337589329277622023659021392039904130209370276301355387469273869370953600740224784135791990290113417887429726602727341945148513737020348988834581501921449284535159058555755269159924795921673927360577718510478790607476013952368714599203799090328209710218648865088947039951695005293178205574362564164635757745059465828726018067301215106293207953937331350988565734369927281683072251059993687705689146002377441623124754338445860091938042214629337732399329371284021212913579968268247242286937973889447611560330482357626814966431855145263063931601474923568953675877271562472885354396290631971234773725306079789257751114583224631396480393540035166282823280865059090554381866378328914167036589523203136460734017962428374710324902716715835798042321428115397801014577063925851476683258500110716154215408819938425980572876999646913931942602329053598722506054355001421974615474381467721688673824086703544175690805415286007012036141920592138680938127386458155503612502520616055518643649584005452178983786088250040180423457029887084558860380790189777438675973161429498537708025739797667311779545107121990414058985673181739564785437843225433991172938303560624664477365222583034163051890115910115230943248749623803173273287777276286900414364838683176717111634772862713845177075161730585508457458802130804340079201553950605850051067697557550539394589722216328610342551960654833371256424582907711249281925700667782463788741610834463376074048005070922953044696668766407250686585516638331778997351178231676608505114201429006228635172687192038315895053446646151036662150857656890348667561761557381813354946592580477940706095133110605079204192553874263097629052387946625667818253785113310098197292448645922488141671000317968915975566432604268785048297202016220297502950268958163470362723382475606902573750141636699453817986524826284576874665615757172557357622672090880153852274089162416089102524050508283685290182447512613539138032854131176487560794366345530855127466585714139321623360320578149611886563190835695209425231455346308607587120445692852103821385633804311976718930885195161037974110498181106781118467294981910286997250978924916931888386524800181397966817914177084554431593174890782916680300385290732750558807799784644855433538546018869623271573358640505570125337171301783640189901077291969233569907928100682745312544719630070745543790252995538533787077054761517970629817567784357584597206239367863029885667980272433815615366655513316551050898499081672497994160292823400072842886886567500812025437462482923495027730769004838366026406570468838485145371738272296579880466011905831298810922779453209249001878005125040216634866158064502032672143447084426545184986545913363531965419074853345502069677235127023076387601060136388350366616811521636966401385988867849336653749713364788708898041163152195088121278168084834452412092567190104353674134822288773919833283118327832209916678475275700924394472625711239473613260963097982781458171869276552831639710335273766846611096805111020086993573673022619927690995774254221194546344431909254117055691938777684522472354307957042166457817867212483391100863724052018296466895803680584237951434641145004551453102892502675139147075016985600766903130128254700176048926260142576105388281240849116797414543308001137188448937051638421222079722698630928499161401959596613213065726719924974662999389658708119655359955308876202641792467971388523481291407681380589415061891735753055019908804342641029051324699870330157113341683287682923324447090390275320006381542374274266640944610458391009104699290479202666950205378795688741549297157368448651024214097040630191606649020070395879131414325763532478593248898448422581890289163981396567830702166138875196045023305119588138249229317502016398218132958507271212251463386704668274124412229694314089440942817054446750043107674694671922105870191602445478819329059242807362157532351796705210657633673622514527291150240402013078076045063625988292949502974127241012567246057434859543552725770609065113266054754393971324188070979975655798403507107422139050098709075662986258819164674596088398665366893494105706085589262583226169561233278456082629878135098396449848165087791217781587433061813728462272197199218830212816967508800972219022345316586105330200621217741840997573680714649233878838697315023009336902758770126166463001044500524575426873608756706805191480272518560636968116207917743889114135458507356819877313450845631429920498278526866740228302770726669670870300882616481140811819890788389945779638172325249792465277881319043585247146490283959059591761072173570132507369809528196894700727578661041325324815556118891297581058834476900866351518574441953427662258130720624821491525408064008366461971961035018125206915546336989398383744349402917985389801461737159247677501128005932287979324707319533364924004889516384735145646689748891824140871088144872247635926166576826123446174500280348912643483201876344521988143745784687957753537561837647269350394570956711512081203501948275548431339965123675739683898983554251688571533454523833899204291011318526694723844478604527477141642402011676167774555608091056860060790205297918390406085543094020913811461382692714167490777782455713070475833881900664752754464831526484255159623888603087565501306527773953411180691441994729996548376639242387525984067664620157646879457848412776364940174903620408013335713680476497471782603115384286496644958705143824422992274167415515349052430188095404748813159090419410446869129199299756139926327351259996876673600373305042543989886349352579874241540357786948033369743992750897664601444968954013791062363082164102266183617669123838725053967688962240974562564051796487099459926489834776640903052641346580623829422702443935648624275877937988585461754045517631484606284727834774880103717332223039256614608941564948562765083054771538930765862707053267731341060005560627129585164920487442169701800391636738716666636085737901623579234283510564158283371715030961924689624934552675079891542770897663290651356501831296921777022625933894927104210135975019872689579360931078482101285042616922023625272312988590379856256781773724756798650548654250174888811116449304117125520762499503769200945701853142502099076865181712409611835261219711201903124092299593130851263789487524959134738505824023937760553305915379657020792510649475672393668957914934272584139655033641407482543295111647392720866978679880154578878765496701710604539388418201160874664258539843789460071887005032349848955716755820349556241742137983274561200125828746884113536496211656659356040856959906415331767490645602082726192629232621724837215261189164796582875795628738598835720644063922493480195303688940509015792097290013201759195279086598831132855688419887493704727178716358381672407982166413049876260720531279534607433897168240467455302618994908693744812313122954623611899311454937131151693222952093118631543360229183447598682269599103293159550345572025012033983376740681449052502814714590620897901471081871370278291983568787584526806068466683017539607181213211110811089487826742514496223801478310884299505595939900903831098090566826183853971475574363887259303270573527446511937668094617418174876554067477226047870814608145744127498839196055015599246523712919741158089415883205090224494420794405443737928216109804313012681295645029194849247359706739939217126845305421216103570346431126627709935925815123658508587309082137591239771565041531515408751006756041960287380900412391423120463121988613574014600915913972922719914928884664053873611849423586365639523716119510636979478693209633749535825448540239574775821145077417868176944412796126212052682733291884565374580375634894699789572361557934803797484051464953230789308878020109714969636455641269530112004816817342447741768621943823929686197419909128120770756211450944533301199466755444481333509037047734274377176396857661834264609051200296990769446650337827087385486129763817785102135661067146183830084126170122468715857200830091792752258317502532102320281895228354385572793114790526935226002751842077366270808200749757112904645042354031991852631377288422443517449048926219275391660044025703752848649843377409833584742076790070396298434582085311554525772473227800812340671314899935500288298911465409254375361365626218813592704011155115945972244571695800159441417278850421303286141853212554303557049934710252262942178662859816101065989818689718658865829963438539527921234196149538800161360854639168875067429287165794200896993946272765532010894068641039027137068550465458374161522803491272265910012476559482074443587344863002036446958848239885032907092247059394847609458932593627734879981312145306519469104444144303048610994299531933555708585018225194651346706170773093502027909329336802990623635054673579813451131705376624635813703094462987372228393495018672266921552355848578279821324881367841506072552830679452991884460010943419135191766695898543226915576934232348839244528697135455337738400580947904123556785103268078460811984102930847509112579556780693131419946834814454857043980263332956702394365002379283125325376914746341496511630700445628214196397892109141671046112882337426755877027061263703045168367188208584388259587870777438960850309815843952999237035012416170344221597689806881244562404522518105573202920143483951528504319802666887805885463375738650855973737730097384867347755556666982209189221270723625578970531648374521672675143914339167181171284298412440200911273564954934168451995225163270232639853152032739403308563841391965390698613254746149725555401108558734662309794799891751209742723766246955039878048532817290269713867992601141404894631753454971798652875185183534552037815854196176678698980487866778715199098756901954602964177578689060945071897231565878682079781861938225386719275720466644955104520055673128086291614648092411151524669304870525351871590486983250318570801053534723876524398629807261848627917045136832100091893019097026191700288487736749734577314761546481890172697998196486691087487793587616512987092625364916166518254050216587356223161680879703349462816617336194971727514198136553604471095684866114523815856783127569440483272156471077001306924977516055315367570241850101499002235798647644215618297222867002866755180727820970286587174510655078058824303172861376328343680555137923755292305452417721784809947016574039397000783859169822985211483031222415693526860880096037258725184112661396950889461868618362415617813160543938572669283554413175829687669253407836559162838543656921560017234148353228726956504817450166820589977062015661075863023494415216869704165262161726106785022334778404290319619539889544047019902543662703251788081375430230952040871406460475294694269936600704489411851842217414073101796229458875865258488705948270657611946577879224872854294949444736976042500275102673517628367244483548086588620362929124155186423248419049218418121189277967058546483920246215916560921637202375240525386469552450694543735157909844427440416727100076831369983566090242382778116681800502169013708870087356068310007816600460759338348496431830655491366157164787860082357510888152072594405583709036715357076959925301218159192249554977353301562302560337178473858191890276948788663761086891630128265346230377081584542290144218568536161234538719210822300638657196663283172437325728270186587977064550536669615454084051511557149591471090476299818787976733610679341884288812979775676959005407368272442758786633434962015092598072478093880472312359615687418980960483705831977205984878838622616967409749397629338829022755514879109943384680192587561829777851879217015632674699031214377037025746435332937284557667682511560331955842011114851464848035979714628213541341896266720553096671885405771379824708126070835239100909094256368594496181099007885494468284577488015177950653582402123403611254663909433419241670590037803182742192474562365549239226849029218767098513603970609168554494485593816761219070515707040320801676936424676430332495379432769469704831695699468504573451675638002545217625429952597482030596674846772794774354367328666171511425933097240001092533411659691313549693093185268238751998051361746714804898886868819639977729440083123563720025494317790396634530378609857109901282769646088208061446831572621364029650569390827658457706828219671377491664927330048521777400781532165388749367781671610334476139291612783461850267070078365920453405846241611803311142146020836440288924769629541953419696025401775545877860193381579128596436151615888957379497457944544539920571395457606333846081378460006606539078134085829292117232540905602974449970838506174620167149076462609136571611653280337390757280858491665613238994695351330211111014056634640915496710955388308942360143666380263291347050807588649026776083842798413150471503050230401436392027816012604527392297626740354552244843045837804647163657301035390103768354294681015289064355021329422565579563591640792818381579372235341397824677450518599933072464212535454416423768403969473852675992226525247254171705654403761936604317574673851643212391252554972306367887030546398841475170910990977282306572526511255102620585219023874194858123011052965125378239436803411956794542037287279992769069688988520489941641189267879005085805068209379902799312730017198587820283065506838707726549209566602429672912162611796733807613043192296547800833887158266095932397907517295583619283876519102296317899020574304680804370536305515918833632326441576374726736526312120216691986194151274758272762629756072548740019076377116965998365579509647946205790401441046636253566128426444834359612996011748163166927657811080544449362438115193431228061739324593477642575509451238750502313579537255002441731930251819265714149412914793423586374913857200792222669401464875644422875628133843012543641649156463815361357144817609741081150752572931730749850552076121014901667835255567542344115224681895000647859234417325544336504441288589221819074860544838218657293195284410897563485811512468501546182757765310280028460362428997064170729487111372031653184393910887661631166623367664470022791075932105294339709437304477247624897665124214041582766230469890023039800232058636902068218571857535924182281090128241493467139631890062850554151934634548654960268547054468670230674483852987534003079813583176118220404495168856702570146685077134163580109479743483240716819286991708532215958546382891274561699286134965426673107503150182065167481857401913435164510312377060273355032584415246124871859374229408178437724022789632978016455915606006990580875991089088561261498889889420283375764670762183461878411614748964704843031931882505523440796393887406516377006070632409524128381068312281070390263901927651543997753246800015514470117181866317557042019606699464498507257983055119224270283891776511008522242132956098052392329950111203324174341815756217853129670799254765722070586314856149536203586297074502996339135548836002816440432559321992953368900627415870169154847455296914246166904816950253453061359997147071010781992732316469685601400963675026376004532249611180459729579612974303986335346955376562938975343528768100625122401964375565339140917244492889096670514655664333425469000998542133324792352195801231144981062301230017767944343225465827598989434719773868729870915346925662144671057963881930212986843763582037576229546211370162243975281096026578151152624593477275695347282726523916237471445526590091277639007882242747847296207889996434739061604102999031328026387829640111348793769801017221579723009033153396739310293002178979228181856010145836509846013984199144242582557582350574716481283033623041767109780564346996039040145951953400845553752284569475827332008300539359563596441356704759609499610658522620359582509574120940921948910438299103694023112156926144953509710229166470111449503297481080167954882347156414607921888703260529310601604652864420199811757806505662045529707916212584339440411331594275142206235283050901411010789687148435951999676361615062454318833902251680526062627777528960287515161789453910696382753626732497002757670970276709902316949210612076166984372367278133456405388133178954219146656216896048340389158621886329764153677753828149324789412333118347695910088768170238706680695541016857821083792150690975659411114149142492263212295847999397495456911205029787685119811382608136993273162175733488035081557829457793753167486152720482425799483300031183047162465440572831115431253416630583938868863985136270863519288281655783648661260335628902819025956590207384638994681089848364679961984904233690295083721701345213580730922464008989040316917948357708131451928142286084150006263014654351981743919485074115141226219609613040914242178327207934731062864863848576485676515662961424329355369199775712925192796596856198093937303517062493025905477747440310735903520270934818044283473450839072099787382765514004048302505164562269439288898634991192918436716915033675129992369211324448689487903114641015182290681211315754930832311090440200689328070146823754100148740725866387032459799956958141468289735003991065215620968559010777585121866852887253464725238240167488654983718679034849815695355674754918286868833631461634919928118291586752502517330134280912698196628217463601159879388300359255786579310989284569567751741587801019888486578620401102273459275664750682308360277288497542904212344117395077998351200249640698801369724407179642138668831844484003680781221493190340547871277256921793800962164107904432933030254191267801882789519277164180424862899128553211548468072286099004532032623616223067380819635553118649875422749406908366898150882355172875412512347864584943683779742552326288772023479138513667182918247853225623372096083365281772375364115589578966808010817965389472801269256247912417911700363573140802307234704179858519334154813950541754530989799073259954379742398170965184074594153194750708734235945129059128944169957815879177466853069741834368299068536016204370567984987278399488106291126079598145650233844599395572969994305134242191238624473883695012573653502341869425594085990183699364914560586679055335608594386433984189933304775465941888729397950537953998581483977716591835313537116039243832043266475200953475524424483362915822135709867975190335911486032185040814087006373803256599396343893461575068673249520026178395223958216555912075167281292188510523410528381627283867126580941203447791830528162865371802670146175433237093211733995205811951075782421041607089768520506603298768376164682068139261050148364640505653144245731068478533345083997336974401802967628450867378696256276662773817440909343828822084583994712016448373633011797128393711682357436383293056597401186141401119267603347922975805718894234142322853641344426671119531043787579353950005044089086510873626452765189396152415059722645561716259892737348217014921804321030487720178710970438515923306200713932560001394471486077036288433304963521181717128212099587084530537052957329646484114246851300721760766158972470098836094319398668605681940564267672407506473278569195285697609981028613572686988358242945731246329316556692712543622997581222007208522861606143590262825682270266395550905148462066515544411935279291560618279362330753646397481637587508318594018321295847847659925079143396056752208037518431152478902877892106495678111467613623947474672528764170526622262093123731334792114472448541386388952489552741073276903466313843487202711424911923165947846442249296761447975748642715325611076738995224448146333795094799108050187128735862435328906737575631627609258129875000646031824135372926344834854491256969698017431967991749395295344524146304367817324640920115170053222478720438499385227000587969173624668133976669941220027419133095749609913939606131077753978692714255368720895697388771694252422630035130812909102267906942815764017896510643297069694570335574672718275261574233642361117930665874384254449844937658534309235375052173485087830251304720885750136885395538646966654262959759091420090292039089504349370316375596395562523998756153706069511819436023355787947762154020831586617319700500431082936471156358715532085607726348419933671375645716652096369532409025245637791272351266359031363456180469778608059902128113999162094297666725371860663459029507893481825685848843590252662997329510709299796591728464561298802388070773571257446139839699944005467019129807544472696175167634334420725773568875927925580577522933073728527238178128330918599755237181957076387066728808067981747867121656321288480966122266331554642138096203869075393839310656059806126365768229461456046463313426457242690501372653258799342160847100215910665591530900982571206102878463471955729317287914544768999529753511772700659619850493622894345925864094233249950998452306466094155940818810259477191505154377802327815958141747242250316381038964210146952951685538706897793759757345288576852508289443846861082648681235626386647722719564963352512078861844730231632705963623493534449007428416719487838879936149614184969527043201887997077514527875363024306975034473702159511870811278946567937514347862727030848914555941627341797827557526361749735616615743509180946007675175306634778749683233432524188090926948796164767218120138517229244393405346948563485057514943068605559388749144946221085573688969868033997127216439533013629889361996384274821219457772331019858472332666640560577383431562205346975182924789911585413135191969049267694978028754104824840369165345847415271417379545466066662121572561261343579583951582212669447761853746833550170100485752342892228925207280726315274452073356614167450413577125834444410527335953848349004954565230341616379428339241055249553844113447941707068560541748268318850078965550202133572361667077603441964666409933292915482992522646247560293921714124943886221430429547893705024801920236943211723775555994196994584614892831176659899626050024641693674882028227586325608546756037174025879263863944490885664666503772632526538859478183400634984723595205189006713739347949146462887466146132011781320426557775122254912550775286757216037102083574145383802358673361562740354747917307051787436740239964166801063465557683318817943927984172343541033564188663985871742783133131613627544880126389138730993907113516245076492344668480092372671214891333502144658241720636035119691365601069148691123993562301103121557640306405770957908143805878016985979379931656150253805149658378951860134223378672336988547474332238052373559669894116893320955859210447019382098714462161348354319938423632274858995714465952048713214382715052945287316780425287462505864882077138075786802194374043128105234176825031639440088963575313524963857101557214764826910895064667904731590544552007785760802760994094580996242691180908065615474176498201707639963687265773511736980555860859620716282874357880916262905583232924643894832911815908546709747219265273023184280494236794014682655654274639997168989507609043039271742251447839504810926855851186304328221305753178817930205151053736887461164780980771119885990560962032077974915865003772242497860897545116072922243595021632486415491534788134927225611184384412029819161484652001376495041894418693965421461276763836801561592390831199822549238167277519444336396864318177522722299227694109768434392816930552155534260858732854899519834962518498066538513699126150346943275069367582216461592589798148965906642635535300900373952476228830909594754694259675809146966648498265426223011154427910618775380336365446599172503030966645126453067738778322462752305238307531811996708752921373386753253286183780461618663023105192850128590027281111577099047874538599607302015098903630304260988688779204927970897210554739858198239379598210112792046491182039258249608885873718362638210162527258150766054694202326865579333440966467010407307798299276868319207558841947603799052051235981966597472829163895159755467176307916896667896305982471162498747330777896563529091071715176637812758354082270744051655945139936717376749958852409679385633342275750682849827474100861747462078307779079260665612112410576554094841467490986140278980648138684706534221382122795905127098195358767613586877738828395103421938134064774087392422350197390171183090648707762520116917839742925643825859232359505179848343550141057329355124868140241334998520517647743178046377881514155470790489104028785891659047645318687687198044334942767511609318954544592525764607944756797808203190373681603872071399892639483785954815834974806636098846651417877656447308365890880517453013475402843785136868418067372491705241241231600701621498178149507860497876074413558947258285325011590881787805056108480005699468368900216849773150631323457963153993330577496631707027151164569432782042856940214525016001113141554110450307533250486814120085914891462923457451739162434786911066696439221564531228016694623511131989995973176312740989299485409486942361622241703918715601504267319644668145891237701171938113604881364014960550402734484097812126304115808637197654098584034644230329216368743110788236076181775712993010085000934186666665153480627319210823131370544229343193561621022456101458155468559423866506571774383918361351110996687045198239967226483342925497144351640301400012270312764498791041499835634583052688989686220161759349508695296898530030519511169582333077868743238042056930443898117530029567985776994439607560422132454278667072720973941282230118809690474652231107129097773106685836750603072791827966681813988432810784341282434624594132769725119503438908613558425536989316871982204686608705155675757867070115308689166919093319447887938546658542761248085116802547851710596884268318196202878485674098312288219002299651717071498571096014022376939347482773777188314988488533322869617202152173858712071036981282769600391484138023534309760762877453171305860113645367770143018023348737463999330585799536140661727581498754910230787323504109808918181404405574681476950215990994188587515422497734001443188367392244866488360429145373410931443797293860376383018402835136868323549776292665830165925261258452597399700809782483236678987450199988623665559430875186797888618604071985985930938357351392143783838099260021690159855531996104709382632822232630755248679832396979825576837774427136083051872280939493935597727908625704133347969949898513861491485319444720887036687230672548640391083533423291715071711234765611752266350795883476845795507746189890243480870030879717811533620013133470912525802688203679219509991977356426657001371822183121786544939832123891775401665652020857676867656521502993470604691413645178114650604982226630062043864671980402756565765256884948976512723035600762139483300506645029078857704357263389357281144659075154705858868729360621395360907906610589680168121807653093549034834123579138539175465202548900773997863306785241724202209842307017339426139230671901486800843445176090372663398258636552616054160673627637762731592720754474314974229671336252017569994857878964246144782357790969416882544212683760830475131069031213986281500492037092832865664588353829172316366603442012194322748568580503788296346468360520299555601116968409308062491994118599817571501852386426296104956529432097092783178633467313076608511553587741339377816794301128156798885867517626314340445072003464052550499180612348958239972851732310572526173894184748717960919541525160710831430464625450811514457139446310801936409657096983563721950658869307024520336564109200935870126186955559527065370354174874713418256788707312559639987154593886823111194305998495123816811626170834978255388379877255705358588034298634709818955585541231490016384985978187840993872847119561016819589174612609979911288112085771580688690986690728955507849156168147925023467541068292108974662883557307269025726700227077379869959575104538716135527227736939398654937982409811396044511009392120734547446300876159528923951942231804836582405313518556945701285815952329261205630628047564944073587262422390632740435516427182352846376303359124968439525451351009195296636172158914417531424746589827189756235987796413302120234369877009023186076283352003782826069515014904972011134313287919302281282708605860212722544418924908711792345542372039668198479875906866926476194806966934766103853889269634404339250309257337691730649840261658184582227885155392869948497874302526322825141590106515413419352759781609960574062752920475940451938829976181063033883119296658070302419569880317172289953619724429859614466153281688434364285906402717333342284941320416991344527791024724783289805322205817047737342080132718886087171372923751222303745296401785385661368895174342635622066766587011960955508072290139455006308603851088357116943170686658186410266734471939622201097384925041231220977894521747093394368876839318820502541605054086942777693408872476510430454347939146409586030658411496759266964845952183664342824090292228613993195811483588176825187381308302275102606532643995998167672395319787388985933563541532338528212463937032455600211784311056618133639505398941212717337054774045077050227078329634728793044980557655718555434983141000458783033761722191776606406787953643143946731925667615875497096952761279129840434145369473139851668719414697034278172808090706964859959046973731615749204682930614139002448360275227437980778106992006416024391704287194412518194682117622730464738584716218145694155486386553156264555520822863099084606745532414402678495285933882357068128840369579325081823877450284488714947991233248030175129084186616631393870103190013873553493621902944839173346141209629492058648510125050668280806133923116911445850056646697446748302783881746655532264305210469906034283832387535482539514261232595541069775348681410808497317791463973706145208805990818474038269789244899611384842028537647701049284244640388895888137141712709084905607778935170841297204972572329794843371832177160190942452203039181275940692211200894891495208402917232663874506243956258791967622035921969917420243957845110311930340732223079564197496031364412113228914537018211503694139361965463307847366807056013422504004283782254784002550565253302766824300938081780075850648557272059684897013618022487468610429991037128913782698678791834665922112461507019864139210508563624694611175084925319230430425827238736730218074769989040204424404268429500985906880836549334566332231412951288985921316185608066254806568466077903783929929273041614265284672423116105295815054322806468646684158717978283136173441262085264724465654426893359664983320048374846212155779339735598586673304361525713858721685306544596181826843852537162874967520894529302519641093374989196704603521897435449675175620066266195267901324479342021524790550876659088844088064088522978852301898732363420301305038971155388349354461651141733238653402574714899560156049635538648313327002953748685632667028696198797386137907496389897386064646419864901893153526723851469395982568573140775014471035998852874504712105080485034192360313909912054221182091022325598248790699631206081052630830493377043136865311053747183471424970812167069985598734896940537146835556627362329921707658576366590557447440381213881774943189076887477646385469335866457174250197777814808390340587971493829453425943708511532982277975136579641133302002781698133333156395333393954366892950322035207568604205127559225940152293368963089060912047638589634058397919030836440552236417635201956154318047637977239512169014477823984137738482368978205504642085341871972482869508404596099644749672665282665763317415283565685814551303748352742801707162784999973891000184062909126662249181729148561227932244842824789353855409847113678156372538532492027934479663479362942129423653538737875138384042090474243427751549132319509210261212603428216123593100091766762771344823003876226158963063617179242813858027166834944169268698686842057210734372629211508251784888987564419009558717747566024486731349987605763228550076086532581973436713284590759294637979284344246384180432258430677903957492075357502916160361463025255985596867059240186405851257864919558120775766623421126519711148926089215537353023937231467484500085105485244130520495766959137840800268585075894544350380543227259063864865028338245977028454379196333050151718743095707279648721017678541174459799483232388522949146685264164109141134576015226894912167703647282056644441001727388234735405610378345838070441583257918123027663543470005164359940767801112597786726121862590327230633409268804765930640521087084292271962376930793814804808903000008881833579436050670422490176668513053147096344492591838289723177613503419839672691965469202091984166527989734870805030467075248888524534147160507523648238536052167467687259428084112485379061261771759869728121337662655513481040572019247762753803735211151603986437834715674232915286092358649324896931222691435896505262967631522255797426149187831543254327616842645065514684135074512974394605240354580247367465878777193375890573693555456120996508675858337107968717697509819975466195616202316537566321167300149829309587641677488053853696182019212206748444278685835015473139919654238608316279364663691399413686568634472179869808749132038986002649773400329449438841002921879802062999841488956983128758237930807522148014736844325108379403821596645905088272901735154346567275732467654390497965839690111177149335012983266316538791618329604903287719255873630540029813206601012848335620899494025033720387651692751125019739495769385226197260380687672689117686475873488225048245083713861097765520951395745505234702099530176205083672327118269397836538830340085046965991442901334066821981078708561843808687683545178426757105924586458403592195926259855771478697202181025279131548897215916001964367196001794122629433176870901265910381806601874903395499291363644559804843023813697595830688926768337873781851817941873299150679996229425928871627367127549403004158646195966850381945560971083455387852151642972506610702139936779597665740011371119087379626824810509856110770569314505566261318035102789235507673272029619470189625263818688384942664471632100045109874087581172062279300083203945843771350728881174900196893806209409360831606590997821154999030943936469686630916206320832995738664757969504515762754307489449214699106657571467817815998145702059283434181677809782269612635879594386080314506148656167889061377079528017706046236947571484224247405993092333858793845409121707772594297698483135378859759410093579835530362278796733024736188128645454083464864649896409726324752797080569772907216836302308645065518720270211188772451796378321364906562596489719346553383541146523251344167784643874557608037470877481265430437036844242601114449558559218652462454831372365842958754700648831908945593338919952116519461795858096134800705820343903194527301263825666836353003409340196722785453066711764325115786056380988647635242638435318947239423967035171585703454698021018211976937586531475661576816004649649998491546823916033292932175928035418978614082337101812018004570865709428253694434248968829426068122754234061274505520935043459051255857715053179651156207990108255149512632242678143221894144029757344525712529322189671679771217836971675301584123641461227569341693297633979229977474353529466140964397892287520371352936970059333754072304774562882570976061855702360954347480375405936070938219323426807917316971103552607773818749243956196716791716069687459331081030807236781726985616724293717524837879174248305312628488679360843762692475819175208629452400356645986971942803321414463505754682303407562859878360793358679238923010312239088365401972115396743447645589485575156173510865884365491273221640365151436350220552821932751658461853954617345057311673549994395507016514009082313196221592242701879961217178460331040536479466244807660762600803782637788851304721238796994773783331385265760490149449711872757481780422116413762362659958373637513462328776734294860960673863032516156340813722710949471451541926376908136349728310393530292676277117629503043551131427081232401379886337623911643353135537489615370068883282516615144209828653246914667236675855777040415604570127156446608344393454396393220943570188481088990206048030047333936152950574486212232439310533326613411530685705205921047474404150491378539310852845607652296650814825776550716574530987647476236038304296132968786134476123931111006818501285870062509131143303306430701591208117626408917352911385043800540657116229665139881678864335539685517656253676965362604113097638944804852004036538178988441701760632313114589428755923430427194799144389963366522304748952337150827019452505726718213932694236030311325361735806745785153933861426548836420234468684154025702715873513597336853341279691338645419522191661580582705692024061536458693288667304454054674740058819910329039047118902458961237456150236878686706873967537366750722523081998927568427514617889230617642612031235719431240839429999396143654385485100490307937111513264377981015860462815482701200209239842726925390780567654703644552728397553478951270954124873089663644721559436216403749610748872466108735853850598620615273226162080356373748573164105828998783209689727825133053324868126605072369033480723973113924684300243209289725560133242603962003852745162580312947175795333015799991784378595667092810754064537789751812975160453376687735435870292835718779991498246758153622039280781921106014430748232784501346628475584428846656137462614809181663193797513810724273532242442873522600769507378415881641020678979262582198476443238262334903757146920282796494342778847878005997128510149577502337358054640224947958178283354335835009542033480806718530399128956366431101105222279167480531604841928542838354650261696432540177789748599098642648368449815997756466503850034103455541540215917846908245810400735675359892285596594622202400481635688445052994428539001104146151466040542678955396114142949323354780844383903348286857175436796114151049696784766687401693345437366770274451189066137998558287977253732944133694550954813620069411577708473369560091577996213504284155635858184549786315259769443723095384127741802822140928259052187894590555280164432662589612364659929890136438129475198208299610280227275731311660639531787658278050326309300951813620154508758674141982929847493329596051172346056448103949622201530174704222214625796856942841531831275366979091221427866078756083225973588457911428013673322166077341340286476062576300767811437836801553702265876043066896569681097868860219260850761084584159161960187070436750688377474097494226459765421910724264454061464209345800765691927940956851592929202061533407605265822099148712550885566878636190591360417140291794807707589150968814245982287705168094306900086466426207057683053085094461818476981435838047283749250886726257509730633224395321153990960369339071577599718491882144344370720115769330936312157719064629658079798315559737767722407599446676368875537758466137161521308831823929243497147489944659954489322285878517227153767695966846125689283774148169772020384813147107840801790718669825473094428356988747301491906954346597806094583686200233062537648425276900000825135114245930742746184637563054335450403833064839868171265691845589128751667718441129393298904219824758618620241143696454853098337353381241338727732477506462834215837277314307856960238193175791527438990310815019376031477395648442804664085989544677614307882500886199617824681862334705472208328751619053598037385180870827672212103987845012352064163466824994440623831691311018006862317174829041074021791407001128099533524839671321718407595269298360410136512456031202603156440238558817391727211064634767722817268479778433577301645075372446800607498187523275799004684756523316015572974135137248260807401431083179181813291367476936752286924290342287416473677607177465705006331561416006418651310740432635347892976177717534984330146331877613320696420832335604833577362869139568078212969356728571594383818281339034279164844389596175978731154428197344408407060846329556584593258200070656134950324929694018107251289951346388732365811300441789135777796533574074057733009121220665274555751473526862723816625325376231583986502472419755815480822806744066131911752607558839334989126973402275281301368623209331036793667345471031866111899126635911860457601268881985124299147065250110103322627877532010686962325676715284671937913679547219165609558784093195061701347963482251375751354066355028122651521327494638666719325023190164874887649786004059224615884700079593478291413925553117090490488855492138606329611730692372500570619598427098841256924867939453261707211162934693692982235930299522734674450660386554589215472937231096882685057456380936170222056817699175988757594719817702450724393526490560515228276440551140731287194671325979865578237677301370776903934357120847297961648101921151765482206476174549816420318862713795955971400213848293838943174248776194994847451439003073195787906837143966276963531566511863580657066915563012535202292360062969488761713546149108061530278888790488375222740288270157823656223818557722431381802956454839181574470091328649015420662988923732792856341296637819001082638756416987081554157968112822840719281087669766822072951604006036040464350634313212285550444581277932500946089730416688839625520813349216460803634858477007315593609170799872683056871569957952587945146978459798969247645670875663724619175595088508651871534400829313745110525875773901895743757870178944902425379576102282377408222327061738991150627405635489649748025944392460670485911857101912116304259216056644776857173357022952645866085055227499157018671918163444663516059493666704074333867017992124364257245842004018797985567012818990793335203686409620057607410769736959968986976973008222753454110786250062238207106462313921852726403813983162124900297327053858078765994990625501568247173654188770839654022333521397814154478968843425529848231808415643507284443820492740254667861180818943311119180387383637057057928553044337317658243005209895639105731335585575316639668459440271088071163979199496874365566979191524168028695397412767836154988589224349282561830950354858682254377927706441876477885234486658174433846744202250891797932196539008865548086545317669668114156685381192244159965440795693733905320177560570623614532641649219950925413958189797364668427596507356154979596798204007279270436740900527942177943560794749024781874843185071889242161902420996678043035286353798246367862769116392316554882424225152062912003656869797868610861246005690622368124558212288418770200680471670188950020446285495630830740553011532812481374571870544625425200775140857634719448627843410704396711766271541402933152234015256756840988987858469549978426350967380662514114235214119410656768894818425728277411827220252189420233635431825025470290408580174498232937533920308554483123453496506896171622261847023721522203697080345214863114289610509507682064360956642593864741363403150197572728461951990122414989857841701232571195617804672393990288668964211613249543697179963682970255263393893531480184040968690802582572577437518615383984675763261611628899286018234378393069396501564792478621936412743304082515615469573542881875142641427523923039009436632875070221149353350091132675829535332602779477239370577624187616635497680231307066661190197874885862229449009537115504341305491927281420729431176711248184304456005098151252921932060069752415535364954270656669816391938193998373112953938489905519274333100215013084038803540750577923573536209304120751625510451088506836066573198421469027226152877793159067100271426167718604015513816347188522372203000428648288400990112502265924664639104638027645608776772712139855526851060978283648853502710202308371997532407763044549953474949540651876314395111644744945085104560451226263112952489258846623675172159428522873850228468096300941908618317820247983139773892563977458384232690024491806093670325006338735126745835862176328386995696318205226187867328872538882669296613217239518837507565710724721425161334043875261322146602778826873718699059571804395576681971406920926690486937772899426027527268486133470819368196646609550917371867771986680254865055209748178118262645214433961239726923474988092946194443474125546643817234437016309009797167531642642644503236644897713492373644556793670333478635320818584522686558327640111330577794043964822599495977346620744250150871041736627049955390953682296310725441210004474894448643575463213788643334794461237708055551421674295718653882046680725527232831920368000112335886670505947566742401006457918969014433848980116734106528205004763871027393178860841201384485277541840484414221679568616835005426057934510725117841542273709595706900318114446241065029883098762494278631765689938476619614584166290939834105044272940842377622288975689541215874442786632725658050177659677341105945071370292052177984475273543530890739965217399130193948675782801414369977875936167790771862072406619292955614032531316477716645021704020865321488114285467825920851903481668948287754199817595206477708761744539621623424322809693995775124239008925010238198158453155931957791412131816616125471944253150299671799970146053764656552731389853677259909634741783394794028318783561896165182558266046739463427257286716400098946170542694018385037291516719270366304290327231642470067697388077276159526621032854647473202661698878833877394574819295255698650300964279033071898539189158412020589810786330018709727544787808097664448883053278183621520405205919139783241459620955990753411086579024988162357553973233587695236385956387174233897286866758169203099465032867460453934368804372097904060188895972326568605790112300337593261683299320963794918532287201927697418553524591805644891481186710440164848004346418319235772554281300749291430828524313808929260675056706838812497287167804560066801973950862487359438718447444430030368479926304010301287353203888637243023619928729235161348358132372519721634106458009215658339568233391031051109611379884224132651972367853350346608444162452412921822593500150610048901505547754259362871414040621733194149573514158644516018911666280871498665125277543178681660354362430660081114204214061486290691290756070140456203313083821450562708663981235771061811850898884043945091914190292222089771876488678206236490423150844363850265579617256288330198743175645059351112362744876756335539849164132670697375252337815163723825649794725684209398439675810997129326141126947669537583273254511248384522708165353096323492822313340980523934002857839629212693350860921674820275938597198878612464206936983920042332653961456420598421671855903952355048031168359632336598158438537821281722272767457616762985347394134371016367975136170830810968648444230042594596511858320454129670215781317230659767838675173963259467339408316313934595053334993199465955700827960800535833827871247367091760302043286096889303668042805810502204963481712408304315285522884879011931960744235369748530839368651263179313027205902999522263960080777833378184364596754526818080127470148292307458917029549773957156883330713897748874638841415241134484365212868431865378109310581534817932084397393656432232565875912306052333586543551920711265400292013190813281663071811811843456138924474044062572900728519525535096527633879093965864721504495233733437262823872563322023906208607709403531704760794500159460041450950701231823291607513391191011320614332024539577970274896363955181425840076314949407423298138817255222815470723830995983526504429391951970890114944176246264455282438545195090590690910396561992822258803834029586115523221825076700029788874369695172383632049921555690438042166278626614543541613891167877434461523679004370104217204290411591294517616908309240371874482243288588812266197271254429130338348765925391666895926595821115111224905753370130945785955326207685507418725625866817075793564316201333262924713641787612414426071642217830428841924596463261350040011569767658244264334516687031543209121453907262915417675787559650330050791768712273913087647429957177561296254216471200228360149416504037428157758489651450149808869746357063288755676685602551988908350263777377521997561188980003799637958234292078803127686412711683025767181987531471407868679851362444826620669202018053075037844887535393776403092012573375168094021944273849529237047121681498091352161409553799181950752650146181414732035572814101384676713679508332236846800240470533239033463772469204806631018537925586868555977807851385260992297506282826923659691128849459540506166281720496453804823968884758155091858003222636385962604810141938282774066463332954176402189254502567785352988306485419503794643898566528610160749833556251263701242266774012837121611495806380518750888791565911300375389598845320017912611483100164192537236552012573007545094071370167744759950317882792177877133034570249279409616928405989448149822847875945079330340085177635862581407828223608879919620746708366955661157893919979531162969915654489932259740538605698213092308838435789043262646672772691838216062795751745302776285119029283168418914053517844139566200697238001757472977742308854568945455751662385105604865607245560019286342148693862431781242442267564345065526815010276925306354019912279628812090303858068587256823903310487824950360851490059692946254090953907094979453929456878140758065606561139779517271299912641522091063754994534126547635955642174801494798493731992524261198739871746447850529009444725318756661652714218770468472359832397455332595033199583509083845117464983743755615589739026938753313862702883821999345012143235916268580487693370186306079538970381977523763968201681503730836901803061778051742864775585311837976594636176305239919125027826895229613373938909846009113572109429881849004037742221313538429042324791720196483768365031786479996166303966758770414968450548554441471535492614242831349952292533748180881329963599978122898363576078699087096211229047015702031104957990999864177083343412713279372004744631678639285014721486727164059188098507584379282897213185411515896401286269968029735510435951307104062986660776841127568637783475330287497728534527805317461472585700208550584883521133976289056826275253824886693533100528871368457415741235314425265107579987475306598767528549857491300699333499725293145816050450435429144895739018538486888386114347352777007728486663962151906014054818792161290945993231025038124342733807578314572451353546491597020502196746780058478298652169484559316361852095132180945320449715715732432736245398833689791949641060287839261356148805565893649442578564474014298000930016832883057722790506274245663574935004290490423890062891680684658594944550965867445246842426332640937281646948742476960350788243667756352929538646913730141343262274628880276814014439747931450402344706552132690965436994056867981081204092636530403524868769372756624770209582032033107516591247535303445610168458160143282178478520728619964971003421846232135333073455116157764710827971087256366250832348816753984411420390134620865178467495730248558198338125722669064033437255325611403746937871843392176326724586192010631962490678983998124331708090543425218870873520920883359823752643346722380251801985617296520398535747448116875722591966418628325965039876134815240191481253670803661419295543643357056908933639891357739738038990869115699513629534028668896532581024087283155401680396888468800969290409911170346780257974369156368031599343395657186381289044269211244967145193312573258280228811230159910121486178428843166638105533762595342324499344508006517004039893342369774295640150755196979433288336385287484239554660440961833843694604112847992744110640647966587493663965322873003965239528613407435457037415661425968321121721765791637235355579810790696874073973297083486286743139135933385193444243898118632990997199219935355417519811396173600391269861963313071767679484298859825570294258880835822353531615654412586906771060007578341117252465492817562998467079776897598180576655643230193909259440604490984682193544103589120117033460508231391073218036125186372001557758674680590474542791281341206943371689051078854485343736210570894114837190835857056870415438469936163447364050499732888160467541865513390666465628252669800374646428005953938819111458436010887415434358550103445546387885735352280876798654374510376579856922379374814328659957271168093512796397361794594410202113538626225209090306962805716571609960175757797523962395248390436548818558280187482321158937824226637120932747230436151617066915833345448885003583505283222883762040591408323454601572129926072508364898614250094494528071420663254723271613201474850154840208604432928103848451548735896306323773008965294611573880102029813977154429215112580609962129350900017530910776685354731393999377310356849605447304837731048350669479274938703800557770263311771387897557280144934902823843860007815489521575560732707474799428752335824292674478441255615546908899514832770226085934951293318081086710642970548834549993285963097014042394895149157252274495319759077327191499385381704480198453079417754390505730543261661588465395880275547283233961768963000406551097200155447199750528451038944082228837875341104576004100918157965713215943391779395930641451907134532021408686482460129187975258561160200891366449824893615801920985340644012887295621661864354803065599343808867480582098892057000396593828288575096657889107029701021700562683534358997677269799011264623242740852485531482388581467429229653389326384242545010453770280667138150778658665603850938663680828430813081606728939864933651547543943967045456127676366681448400717159918255351336287582719461069264781412602816772563038841869040580437561414410131956310052924751188977526615218819874611234464225846828763471481454833027839963808559634815710683522401626304736034591166660944987120436673707110528740848024063645076849118645639155678835494869349813775910164493417951735337926040669611133982005619154487044029057313635389432196021895012740221305827445497570038670345314142622627362246398119753711062552354804480779381516774860248325333200801913577809987732602582460098187485582563779927163281320084897241794966620436898158316021313519317390628188348012985310182854879709061095350505564234663093093458025130245178356407180969348089172264163128649896814425659885828475600505689048080111328494923281107221602121778875700676104397418241077882600743765574838130960282827767854625536851088513824132083029782896573653006292622926631471103377811738188822013339958476007670949330556211619808473185103573207303972413190252503007744591840519172893541481318310125413729472227323198412920428402777913388160964734378621307156198779152722345222100858211348252179112081344389027108917637376951840666656370105147428746187799202360194563409980022604184420464658900033406607550606747477683177057681301353730187517631532878967105176492242826377859713761065308833571573372830079211897125608908031784293327667133955008884900728388726887465988140541914388082477028144418444063887528079034188574006430066347341621780503879088032600776855375292197583315915797664076116368235182030197687594194442369048916703839264932969921418494063547392064758635003468725321981777242139459648621839755816058962237320337966251385631043839068388860629411016764878904498266842895517489070456247655063607303735942999404045729760183192215219030937893876046963576412910416848519529913917678284829224717626607923455094287819658448978236999034011023181848344275171544101849153029301704129825882399147951715631477500014605187203659969589609558739048238067052576699257803168935202969320028286856394829074174881546983493608004445444843932718768153642164472377287676341602631656100650008753680042731963192730750961195745934377998682668525994342501299281003254919739684002104067407235336631202508545279221279454167529064706444636715496085045660653060348669760196222852062723834633733462613264089059431009780024005913739857144256506314511104738787410567689318074073277656461176339189207626447350119386165376609613144662413206910960869988968123510983715053452105573494167508198257855210057887525880456928870132056287190348026083252331286147360833089642792261545521929800352878378688172166700788958098633767480982447005514659336649976696545168678066151946898262510358717133522385384102369643853974439302199645783669270657145664651648392847292446207437036925804117311861803730227871239268727293434694803238214258986916845638155301431036227641358109753578142979071346733148936659832470200656282257480755876725893781582044165249714994669859515136284617285387094161564205680133876042827057247254387848796780050931046670295132324429537870850840883616033054021784335549227437468433021708067360031529920751653718471335713877355171028628968978510541610944864033896036679890785107952253450082181645789460307566303387826485715932129241373062251269483210121324519645290148231042376121339511370261625035667546744482787736565753588032283978809667622391432444832454762769867436175753334579395301141849509674995342851865971550592798139325382874613419128099621693538439049107065029975463813762913155267622687582293346651624259583489568818758202360362955755352977316018306689926854996795753550958426399728565701526944415451831420396740043404229305633687467736419957843334406101319064277006345616287172167609269060770762327895259223421976776668850654439639326432062904256885313561377412161847295332902049431715930429448143347889667564909122631324457928868643486447833139646780770321096866362336268967528085596453237484388757561235315793078887483760648462913924676677574977183633637943246119212627872350253976942225638943768650606446731769544091136983481768278901748048175331214885155026349833934077999398884197918162202040080760719871106382032444346452579517473424243417724051141687467452056656613042669938711749297348196475084500402023044294942427100225434044346094145323118771443005046563324893026861608727151081275172066119647872296370996514415537848433030589144735468880784747317330275401079509129157028160339228395535196384276779580290905596825456771892289896669282126296516049253053569830736541759870306613673578970468540827401509582240299214605052950553540406612259708769278631973029718097205018816436412359260907236935383095285345124071571894871224746429558379726943249119010404078240069126317237632581266244887852510798097530782015622641049593833253763361496396899480740500182783751196024124216377984534661374176221298720818785358459898650522234355702979475777198596723298588888345111099295470944217428801581624374621266109722998903728555247969212677375655471940148602171437442540467557268110402536131105013981009062538257327979685353923014006474597317063203152017408125633359488984844793345557248921966074863573869219215877237731748146059828062491090951417208196932997445718354383604668022138011773981103686144307720484714269488683201265053328446743226996054287611070523543876660200283854520277171171393050375281976824587698280078079057402607605697192185971714646693172976818361455428090259281114599095038740688382668325739212818213121711718824527987491474903866052862987745214408749197953459714340995480325162863806084741087216905617591055140937975942521824409028620400203782879521514845893276690621401725701118258599178589964365802702365805307049887744381990706458412088147021103076089522115260320997340579576411901836861330032641688084528951312412251960921841432494254095985203005490628162039110538840985845216737509679603569238627845980171797029529044255811637336373377957976085512512751965187448775848961666256390036547752215285725699223622167860639508421719897642255752485494508460003876926295775405113044182340677025144002370082832735860395031607800903029420726426092606200016735388645000690425245031334180534508389433197028759486539874343763426377261070807120006084897197302782198379421234505701448936073942923230779032190948504064773413316305960934442223025971918992225693807789660065844020483738780502526979263076571302672365954960558104461557346063369252927663316143702681089671012915044015651190132555559091678700397467336204141607893147300186328989463702064116646222975724187563642241165092147594085365789311063033981428150554675038721963352511819220714902351948140833159842715347669141379394697427881518805519121734764500561205679711225252349862599168347898222410363502137167614541192852311363591437491623573407128658731927187480616859787182302543729792102198110978259056004062224795167040726604334670316960356751552338772454432378418123392238410256397240891917579017387336341050621631852848171355025724029226474461255871710233211660177006257114086305229752491916559908787060561536401070695049775435014888095377040267170088275306535026003790117662128862044679632939811629923462351425444794146232189000974505252570899555689275870612823835405064261977833758284319289244089035857812610614449307660619385124479393005252349697244035559318369566777647494832581692153058634002843984390143043294676494303593592234013177310561743628719604055453086976780063632570784232991784113112788304051920769515539769473244977093025615967471452462314629074425982057270424466756309224225326339156563958986916188552522400828987260105483933183650272351644394509729573351736104796147964992206508707796929267121482396237114749276480383967735121456647990006202979278723813157026938985828244093590660249745456365767420344287939967850041475310865588539289230799323130810795297200996695611969553093594422422837099424724200187239600828586476538960769886809924773251498777451308270528572127117667835603372811168374368566900121358610848015681768357107371557514647575391883552096704519903984132475873454455536845683544757475529132754686558914383379428393546511377644719748379699637176528844249334324245554797468581738941107816891205256416846932574102977308604343301560428779307088571109337777195600576317131437927341458846261394011071095171970178173653721196810490526405609677378941667472995788332320340247112321545108568087921219925458041441721834377713953357624564469426670881150476447026458702616415383260610821968363470242090682523503844219920725864364966894614421108342888549169886503979680380755107218030742666658782023739963941608807223912655663384568105404245392542359780907332173859737590137078604777493815878196124962936963357752880963301798773517843759052530742042182108709132868531416118375502952554170164484409493990322951476118249174212435097103778423012367259910781825213499494330396777105549533121662834986069564273704609275577690992822666523337885878647074542481543044609683334598322834664123771396736025779006293554849166630553789382173660391006505988216881106709423771455957472725151574712563798800951444840109192340954729199952398332518349379230089554726686121659561134085873377269481832913469281163435151952897936154052873252705673620292934870018698380105612245603844790015554014946388339033690204135627105879071564086358042013438890056117906933953152244507175324178793822156347728313206234672570774678066448749044056756797752901157057122385109366033592558745444876545766565505648176397049379377163903860233198387825566419959408833118834222392646506196552599817328377790211923412522514019535092665883000953101659892667261924526488523636656149934287866912245113636067129508274522397741843288000276004625975066040232487830937880420539877543079956275328100841627723787194712084990049723463815215707929818481972252578036756127625388212854982495789792679825390115291199885968431315986099630269250168491171917281942860068154366491120386595597559787304717744091563827453665501683733945289110399234633784063915717520676799504535644234064407771792310778311301360482557479092213153581180225378926903952500582167552609254797786015586076760928680051267877175788727666772782384738261120965383096708397535608653439815740212298225200221174619960997066462670133256599334117857171178165989357977606547488540673783200627735800489243062908567175517214448033423232144268586341674649070837481012664033853404456097962531691056081378211079587929873455306843874125793512681609124575697592480075986034646794533650291129979272089764723164177939044952212137241289568602493801505197216126880133288797440904421625750386393332152748853700210361218080242101204597566802938922628537776748506958302171702736859766659630801790174715262615260342884851515561123102978229921074060794713496020075176389673552007528297709634868720519578948632751055714095509698364924090334843326958139499306916267431252875121807986418465207008768509310078498521180276258104347473108094438714423035127193744074436259586315338148669296436691364931289908239857806860026163997127631172740998661220959229283195308142014292471858614616523848736849846601078960446913966221241234265726558322481164295994337211626591109056213388341040712310908206935299531436944462077317481842510503150789215147845230574919236304564675931955945575151228003637567531535179143757794746264545421031498082568982822365985754565472609186195876380622272509883999476408655894294901659775820055575460928156615615115135572044773037227626407969165694767376387687084489379292288883548328758665564111849761925969976383167865359863784318064955029555239122985223765954307736801553252447155328255312853704721280319526724280820659032116819463317061524734866824826956579663516017283985337831101406227346018647431436969453937648363144646806719903130140100867229719559669012540831167400056035265121113301995908333399897710611855977011136237899258088860815538444962354146862055259242380575451144972043737700373099681820852610611659586446920333634553735608251593175749342924312304197817944459773282005701717164616882142629281823394630683049920392287253497870428850791301545699133906612884176147615123417799659776380666665783830334659734372518365454312433765683213985231784399074369803040565609364910706498918877295133293133272823233162065105820594630853074212287716830031450387191006934740637948967518422876623035212758022929367135835889165999854775053491961131010714817828343668053152475992134393371758967411087111651417213674368421859537970664695780891902898482553705812010320564396264882666835693559521434295779142171533504438298757366818692147350557351759649166544946862563644027194536568384528641843290080748586548106613155772974667565827665145068904030439599277195021601381903662101823583900307468477668290934614869521731960755850588222384991044461734350017780507119680299101503308038869016952228249006212670791382342484299110608118377872435740968182157948178924926194232458031653575651626217084916081302187094471353728937217633519813476275411931800737128869075506158578833997062283818839673601796910008697317916018376126417301213086510863389907537791722306598673031771444836483194696320136733086157588471011187602186514382713683470271247356231354804581643904176382933381022574785270599355318007069759351408746897141504778791066215042167223567863655945857540828871187678322637242597946746460819589827651198651277013635207860583315801381416145096834533237264153733506483239574111451147512063343013291491990722138015305725616548390059433811669524894167146357981736700915228389558875252237868056421835812559953848151810978119984661815175567440182692058049007126508387386404048081198979176781003814075022599708271896965480113251097440528165678749564995027610269145588441384652338112445020286110853793597391077549512047478061446816438567514865333621355541529666414577444537405106113303945259598473766274361929487103393686466962680285592016267596031911612826422370260592440869393691191123616682509602961162278222379386930802304561377363973947613821531662697552405878384841310530003903336879180302446710813056304828941625472460662992909286952831583048294555258599875336954604484555054073624910018794062280662754109502920539600287970421518975445859603099113673424827932382642493914155570987379744894499561694681819737123958852456154546843743006480028604679119461268435759950144151623444212258211976330635959725647520486206389062825850689711860324716436644830875883614452411570552567764885788631960082844504711339610130912346135495074194214038582257499542689511911326625774774435927642681420239546859768768821299135818527019355957444563538108774204974139655139128879085752717358624109527320324913049208682512198104598732849110315398984687350143138453668430596611220347890380924751837807887243515635836576742007243041983380564535268590936955413780428104019669519362779125574304957269196041760921752996989326664447186603457380462150986696923879213675223790402321593044839216239369955713852258510659487914843168471540417004531416553171918079659414504241094539914504029438094782800432613591953057445576605461473800102049551481973050857719789599463064501461995561305617952257887645014715343428353020757558368627768202428873598292885719425973692810385774135260804987436707412661716567213608247144047721503202698401863799805597435710075733851182717470384729916206167142221157422365590784406753289866790382408534237959502724691370436659911594676067026250246704134958643327395661830232574265379081047083657969204825442722658692160270880159191802512878994561315149240890192614047781191891683032595253587533745165981714949528333540309855169178317642771918030561036636294694068393981812165880761870732952587292965403090824322722776706421123272177013975064680872163015706240273634863618161998381232289550556718024187133317081821660206577041233427310423437773139381457776521851491562373625823277805501328070854351063207399629911121686374551422447569557124378042487685003492873542287690752634025274717666296681202157170625986780357010931757728972959993327348929041895677565869327965142195280825832595153629709074647835054645973819916382922782225341461797961494852695117382459359943695321922717471816994076010619499379594948328790684405373038719448366446739248786731565479695395594026916327520822532553079674794582752372115245358710580964587642932573588470066155478472509174032534098932055673292827841303516824687534182602673049105177492479630044551691455667716312166919526866060012011664436931078419794101966791889561766928965829327958141693128881496700753505288166203084851649907124578379151253036914113888001769209186419123212500422573163315798331617656204950325827416392272198705036073990472590118499775282138450826441019999874744201677543587181329311206786807400276212873372323253501527252555792301506996635683513011992860114444119746659082851938649682325885871914268874675938422019977218950511521277294532332940125442714392870595571717039316129348221327458797890301224954329452433576536805242081797913675127387938752073545941227624967614490365648830750622074609231605990551878553078501734626604883874378188013486035765714161803309182381222997792494507597121110452905475825250205258803245272069813996135484423219878766331971592918213500901218724058579866024419217129401975022136092012665512893111005122285362633557054747305489417813555792898804517746196731512121736994621150824484113745288766197446742523385216863428852604866768858244479108910613377856879099919793126547629396642351373334338872272363891941683611643950091095557152751064308623498376457679811954420762831529463053437076193156004145154390412555332505117413612689130176501327985478871725600007644722718126426033758675983936540125757670924442688718696790787082211018687068230223733706714422368962314363679079043438585415414667766587373212351870702363081902057617786893489766219867122625494546915144260508294551193186199966094572095179331560902904885691217842164486419764055031305098304765415862080498641381106894911466117214081230817477116425307771747159437899867932731735675788872280261007987565493834467755298992871208430350247426355312895130047753845312033239083116593029352761354984127167041272904722157956317705214288566112940442842202541907877933839999619984787862102264369226319029960251042984211164064390385976910025911080483340320106325989634960706230742674065780660190635189198572960619428086318683592842787373614770748815312488058220620276501313147943976081680464082367316754648274036480397112671855123678220360459444311100846563130218606120836634974629391414436987578855458775629521794265382934351427982646395904181394787151095300048251261394729630152307864042150536361661179585234490802533249260784667798841485139361967169390172686791105847746696424254863116905978756457114049064359753542984060359851018112338338316991568716524159231672897294557560195167474209035483380376630602113006828996655948799036345359115014232323225284657236657720002284936507218037504177590528755534218756304522506270395363414726600044339011614879623155947833535988209674525552383770006861756416310241719510984222071229801544318924880551823129515108963058194418801015480666232838664999132285170971709558719461528061601248976857882672648327887854526961326907325202461621863704795104164870553088640768879463699329642039208520888329046518044051079719958995436106805440022538126189257240216247180461103870902430048543854792937084405995249026641895972422149846048483915769735680518090803029095979319789245365064985040376214881458016053013159847371719350128106293422010300465398056833943208885665340587158801743690826285081804620783685532463267868083285974310131583314284028126497904544268370857364430505694192292651157420983515083742152347676538422165885587261721688352311502495763670397571479972678664532337988350532424755731049548837358235087563188493103900569818132349193717099213547251197307993815272328465112145965841586011265876189451796404661757036428658318738784704635040811076812065526759870701951433568409517567442703733525941336136007665729830784564381854184188410753420434606238139174223104987974299146218240089683300902635818431358466063990636033637815315412095581773205390294283773055392863039227682480504587142615580602924470715054480193282896065886460237950060264111605050295617401830395394410130303509349899863311456475763449530834902350667454083101037741975913091902123785936515965494267094538293419639034585645686438838300390510330631752913059446303965122665289897027793644896130495702589119640670419879615468103932607613582130270398168484821433213712305472756339006093972465732306305566838496620308226047209501187430620795774237768328627481300393910622458784915803802862143371416617500826882782670297998284702616078635820658591445648402693086252997397567938896168367520616396473145833775090984666351569629576627007377761750114365863313019081871477741914696755704972885687204258390948405616359070993525434832264736530851494149800178817052597565193733882409493334649963927239445356544812724308207258684014127421300370829655481734257401564455250877235531512178797358314900502634628216642725101015539246116959308231649465086350071287009867358037242457561927664717905135439483510332567252167500147335951978258866161012812864318435192956451756254788881928610850923461419136452541002544956866789674204009753650336350944074133437876719233471611788698965587492809919837813281673350721465695983647172415164515170957115002764781587696985213235649642000446368707675566420534496885520245013981377371815964961371950186329394157886599809668582288133519664229216576186652461414277625916064459696887239775795718141297389134649340275777276751461008594779618222286463824546324040433715422584497065191935821910009757209934130953707374153044535121784123560145199390705175284460526331250727850930092233408664477220979081528639107438013607914940025625941163192091775520117410552284093849844997052229909593044564117431647622005732525168334005079601717849873408174258394624767063217306311992549487630977365662154956152026480417462693314880810852474155584491280859894890245468394332786117769671789220265593239699805889010191055593652291509988497643202772858361749097443282193755614360744575669290773027752089641634305572878204504062154983064196585585218876074478517233157846535508515924414431796602635045518042501704722131898534547446904474561681378195590075101014905354706506536054008294131014482402512382264531362339430594336749468260931961435674086513224711037495991307099768421604563240082353584994200078978608147900375226880940056360556056635690655994238454269596762590511103765678917850640817042274598163580209044895729193632935846272361300493134013363562278541838319793962107146617907503577590367339445063868623023129534121184339753230822937844225112602714632042855264035827900938273582328125459915659134535633411465016794138377658600950272758103146889767761991634794651030935436288498909703646703254240902811456282088480618680454139955795627205441624602668444394685578875018610906630780253077039985559793254363574100809377821557784443932199592863498701984495735425815207619215059923986406498490960505711967538677294091125157531661487041182640848333863773296313248663072046722003454155389170176783752040038911489313493802523991461153892119331766404381063016102327354787272030259088801719723025838064855309832926909455762021960503420805639666028823077226514236172961095235501235982163820150124668242891435830534220063905219786552350478291330289716436616406904124498607906575022060551689034228682072525459299439216741881010222551401015735439216568460843882066124175027015837818000573957282256012212196555557015925545967655909746545995549173413008474655035975046131634083772101052193941197272358228742479300815117071903738346997530737047254742986674448141030310563855049384654696729495931797973201059148705527321214474973875738357262196317058704372091519143152098587612092712156154081974386450261558654806973018731337044874515312719407489318162318721872214569063883946739054131483367672100898098847059813674846545386374829632695412483417633771245815571975739522722493998162209629440707238999986279507614735310813678441533262432270633168390684943049622362227443919450282982593986859291719744400524753375254283254786404240970274887940486388735952855402806561262592731657087925877097757378295015809114324085132514898594293092970390608356372060549213554572312369344385829534533156998241596694064125915952949077372126469161644014533510796711722576809152918199914391741731257590895916294365836877509662901749986644402069171622133528290589076388288866014195163596539827178827755769965407751174209294106769908101246772347857679423818228123470149891395528943127338340676863147645609862026804397338051963864429308680671932091885639123667977592247849709682091842247395230737150588456463984813570470156763013837404501395007761574773671008036850699074010702524850041412009119792966146842885456747821423931611600518323962744441113198460633551221715366539457562087581847084911166594050218073022510909656544439712822465892028713395341463336988018554021256207850980417547621115479480119889525266211887471925191082882884187688558051222726945997135878704866953393969333810954169790292957506007173687198836257420422345270189369311876125657706001990270048722158121487449848385334200168381358636434133106476023015513236844963629547548909402874994921860601715824756667922819051172402290780846280133178710527466307539651438121187356709440135367320777015635568941639639142002681233704711660888124896793364093846097928254471344085673070318784712493319381038250505415788365109914419277242371105385079625169160544676352915652541068473977092923802772225271034047027742256664970644839005033309381384717706222232203670692366833814178966679669922959521311725979572388982618537032380634413528935087164647975039839253673938490071566603259655560161153907466629316603430040183068265824699684079739649984557955238222365412773376754160182775736968072807521058948888225254917713015719617787006608215907437577050173484294817718162217580199995931200972148419613520253155006958575424903419958151535025687666094246624575600548873799374227585452468524014621146260841024914588041137698155641756660981775680395873975861181276119493611989658097595722310835282504876846127670723633128988334645668890775996141759445965694876546661203554049167993286650371297332344476444040534981231599271727726362532041123443713613445605044511444869520878637342243764957537093879416957126044264011156729546390419793529639660655496065568602742337819206794040343071584982289516323528434021071900418166756846358556497331542322191860247658386385310303464317275653156945025327069948179812546972581218804996424877392828119962943827186959531577222893903704147571243327341867755002703286905574169782666957923930418587050506586182745112907957631663983859463642588626689003155050891459138814834798167097312512129003740980933942332004822195381579420781318305128268980042808171918395233292194284087932889024903852889352912774338035359115046763722110474399187646925632164217721256454660126634727882158407390209980006012501071123718172042585484203432381725049397288038770297411535458381535166010380471032157039884793995183001602997686954772777626870734670014436278500439987218043308216061723421789215448369330524565749433226560049139420181363275939032628692240011595973464383163478245713687842195029769977980411160868050234186248313984299265643814806582875842890064581105039891103522263321159647036026015054446730222882203305613203442668354527232310958784647770731332058897601015641808580857944003768658201114504682687220305437270359280784185555867086728096641752363854846381413909503140939377093671298426743515533600865558899592592068358799183976574189686301571538021402579927284326975516256240074411738309641695282169806432849156607692048916439078785947126812737482224210859828978363006593157951835457376609426221460447804610767220834149111082555806511811127833034157699908896872754836804540556673620722409948989816381952372821346478360949076638292999560233720669720254665715101106423418658341959099435623485411014449215638275893967731073402673378974913282374813924985455988500546514132033245806190233324500559949913338004393402396472914366503751429388467887409691154887563215186979751917512730109848007250582207408433587417304843527515777669165908505592420175311175942309354927389929775625456570162678957152951052498297582957057355177672038581064225876872135297778744459971255925740179187553895530656885959372981408871419239470459759304040963764471515554982236432672947831875500686198977937538535814330454501470255179941011534734500678477665693965387744429828388256247831773262190747235889034441622983397176338739369833989371778669823799754280387964222591236883792656224469939107411486532460441469225559032811796538573985848828020773648141964866769571542243882289854436489769211778230977526797743260187122637720862915067901721904810801838223115648629571634284651262333078332560201340666286524130113269247350949262825953955972508996423836499597776782077619650567276669701444171441703043988068410290718916510249211456844304977216606659640402315000683943127852504510195258078261299834495930165857873806329636759931493858588276410343387067226720078194317952894716663520202203830597204951279293201848629705308779554491382724726767303558041178512393072637215536693767538140496747154089487009425871855509334860575085053261056655287799186707030423862432064576908729673090459185225142001488303993080464361567065807853516115950041716414269601158060549959331609696077356934946919862940682625989753735255619593889560470085444513399274193665817331168337517143765227154197920356751971713827744451940481153219718335395505399333380531595127472096107310765897309192599881323279974028109253224727962641816614715278244760538556566123502727930463252486225262926832316431430545692434540931026419499280297720044902240882740732945714442524246277827306315436705784392564807629810511183663464737404850043036740341829425657583465568545100482532783041899804984254906636286626240736887767242827942756618007419369845874988283003010372489767351865853758966681735393939675762190475113628032878022785834529680632238878724997879272837613274056096061526375221129247878963119320069027219479877819649863183824858632251332793113434027162829949943711636998484562171892831956365625907323467275871387020569429611923472556170025172225296513395339468400123622322729585407360297949458943474856135911459332705404838998787448571654045607617766126830335080584340047917273740661109413803341760233903353295446651487376887687180978590775856827600719477246019519684344044716291287487926547873527079337825492415540672579866419532404600003668434689326379939337932207076877289663029488721789532179318106095613639695886226284946450348466836632010398558195986016994519954137796024956580802216978347561180999845628036092386435219488804153783708647436870658749279805442634685338785176660695185914006687619569926323729760590315148445882587395924771841869497125240562582520007999955021044917820122034989754726249088978702192211832485681194735918304672982377331374253247407054365443665760968138042438305796141028299721999877551817723991170199840785953942145013898619456507897505964081062771932788675468891098095502443460977902646051914810871340191000493664586209315321115113414211210812577285462962971376867884403832205005734979864496281681574430962952215934869180155994703245411045786452551131369796778566052657744455018448766493794430079554813624301724804516085333680830097911045953235250289018118796344160349084091977971130005052490808366497540425746509550040531084268641517480702716379741676087948770157266728996427752392364391561241766855619509455955463422203253854427844580581752278502953216893307928784954612343070374392782909528475087911364900815350783802224097886617449281491868294893489499867112664548478312042946009501256137224971272230894562700820882035419034338795297770061326622851792802575078792020366366198655761924730661765497733726981713921150228130206413522798591319794402849616673532795118837139281478027583420077497996396587393480141598664330947905148552419807946310505824545280321147075335895394173184892020863524689596717282798738815613428609629574650798823201159285660833086050173647207473825693624062751815829891163935845511202938509738461577408253863918648345173157211652565478533855701524302223789077260810418258405896899761435720649589916948564934896487362125564721749011861126230563601515865215065971513429447218551053007907627165578266510781539081149466162535265459773395076380393092103054399276236852235912644925843270283827143588674017156324956741556636175500270614925445297875631291601663888465843381682798661006948351964561790333568496186586739571170037002375914706778872364476128688564249894557424104192139079182871113576557795325511532782128191414678992077387745201459296006887599344599142007234166434723429966126074127549650540834834874188488022359592429774379479428428451763269836687027053797723994173110037857754417184827061900006187445622609109124843640623502850025567254825345940018126065403278779631257243162395602282883380022385133531725515068536808965664245014343439316362617612437935904692044961641599667310291995791463886832104840445020943647042009742387402728175730560126170440341669030282254107758059847678516586921393854970812476681520819298976467709760090068182204892605989207259700569958492872492944110935228396687105947115963430916752633217001747508877936372885247348733589372494334658506688314398062533607053367444933225319878635046264689691581849792678468235406595696706761847816225441829575984671450669318119617987179174037470016620345596017003094709605698479403086917735688990313411948458787566034150362228524125403781271342778958221254624283519756517163416979215972884074865646512097391646080664635002346865138850568018012912252388891406078782222394320379907363218948172450378291183250254328837913405397011463016355533265151443784490733927651576868229177568994651337918335159720630363681455000486002842882630198961976976208246012085139439616236731140018443494060527076518237850643918384712835348555484565887290953049183128797446305106920574140455137405175583282103739101890000706972560666180561044290781699588075336550208859977257092489421156485126156701864190528703215882077820533008317932370204392648175035118165403640133463247081982023347236915133497304439406891959707153731002161954853114773801219957545628099310164059618679446880308454352388910182042940354182434278375537946604173896532309391073658045423193802752898142001298882751489820309537301495862849650280819870613751732703948668595796680932597063080863407585093574362943375848504566296091889448785011887122290015207007810096115416296378842662726991967264269731653914167497544137834587629837554337548271915848748062003277825752889182082878878710921390980208533176487385808168343208460741437062902201509452914982895673702937705353412646612322049514246972592074595348061081449799635628869660440957369976567073354233614990592125077102484574853645798588394283571402393187226162390117590761362844896056862757197940211446220803379523951437053612950886226744745458346991571207384005640209868971198324192505955332376085871627897847779269514292853380269331989039693626151322615873819194115334909616473779196196171261170743017773929307505414688479224317907111243805243393416192859349074942834498735129213129975803716933060201576492726320289589721013907221289324467525069914211534298204446257359306867250940662011288410789636683281047883313910858910130597113145725461590824839230645082944916278542274534021417598141492381157278644356894335167540474027365069889559646550592078290553251043581182200513162543579091500046557277863710907970447679564625575790876318425310630087201127164132725966505216085263317453664988396366349413642796395764648232199313182680580366448599054017117279500459787994195181544520354568916327062834089814402197854846443621217942297442344037569627307554075076359776000303550061954142034394915775230588879994114537016897683095974045644833100613006831690486270754018708060668134161441758528439385663940193298847305134158990925694481302463465261940529741022165056836518823833685867631530869320649275718054939600261614955398694390855199183666114700794322472023930295008789176617894147433736084978036446101331532000423771473384948198903105751036137835054394504225219384637322449297716501313607679642240599194964377945278309895108722503227971713721382501439770830354519096212016130491148377657043635248454917974289067722661765419045486533204904821663121315107536648625809682997396691669761402425712508655914068930299560062486257307802374783102080244373157513460054932771867544880380017242272423859397751393607349315619290899204590625003154619695610631957995378635668415229116361809640769004679375588668840581730966200943355348760448993398359597274892954367678271244747816683555675931070075236593016032784915780365569695505620049664096317227887914824480200991557992533193615820247736955977497660822950095327748006429005089557177449768052691023508468827948265899024552684728522364439482776829442102271828929853348242260058923581121294688815232581263605809401888328606750026821265233007077196444646163948951645652091710606979306569798732846364971665309924891810003721160950415853309049024719700936450028067199333408014406886088158147433849071558996465675504156715743758224999776524712639975575267890015410349495092371607194118241276974124181955551121770541820821377770418638522695877372999667423172053946614849135494742866715166978420338270375859543005396567765096764203832697862295740660464067865516959078258102896237749212900194191646205060369656882465109685404627432044793584003738140696590811715077378960958096007355271393780406373004710620720422834931399466494888404131419480647836637801702405124274195322131830057600127342085003467395578608983137873515478971014280272972458175949656176922969722757821129730478823547892868495982552409024997066807415658574311220358915073319341678051378525414986483898359555145583926425836855399832614795142446737941468943255344104734854555936761889223042860239632265500430306306866915825317668708958748817160469041273695126038679571152256218510879067548035249704116297035657403630844437148650456462457894402757559816473959210400644358752317204719608024164732372888628195500813365981031337709985130575740599246878272543846149218419463284388781202311217514132455339646129181573391558798237450545888651861664988480322128958409477962870492753006562659902717203550278302082049568221981991746114459355424002576850756223599646656096074230817100889088053786190395341209982292841148479543020578773680384438148564440589629690600752518875760908644876403764963010749309259580217818791881661772568488042803991443838705399026810603726645212003028509207770940041490491245175742706772111809534411251929276432803169965137505847096655578538297121732632455824941774265863943296573720281246762871060668966786532759217961311932203086938346563257245055730214292387263607260542029084184145299878627488685179920095162217396338388918003027060384350413623898220493741822810998155847522894501825781645908874751643378048353343344201482169002086261019970065919557334322405219869251743714966802654195853392334004384342343749379762034983237042413884424542100586389293800979206303957330621626402823740026876929329159070465185300535981147332661857489665891195417512116308907656567640227352752565274216244216068643751846477840051332685649645643819458578869308795901412418168718430010151492663966962789331187447677249193741894727642164552147052972085751976006634012438151169543197628351366160201279625060652358211626285393315790797028289847237682475441019406457740824479791480110899727350650307715086585722215053674719824730884706632469690016648399501342434873323894205340150276013120005444498119977533329600934938123757567531367254965225948636810987958245255017866063842220395073623642714282378965409224385611103381900389178556385042065807185133679568890493580305475347766761410567198904674480078318104060147036956332097218567232703958575836480977076184109426342104519476967939394448345317987410263911321994892728478623508275440407623449870903294370092289996822795790986245763323551875435457045081994068263411652804943306501813230667687527178305581428770116883925953547522653201333528761730848645021343565609262273398232427533965775368122166781829791476392737981307498822506564535138428735577779714082252675007404235459988348085917715172432269653673151114505574636357640043263312265302144539508289362237081566080334760121984568074873299629191545021032448260453235104262525696630650366440191006704507774133658673416210741596696406352076152426497351386473627095625654278582907770863717795418337908391462731826721421727618332726888710292560691107640234694823255240560440686797471113018125555788355607804576155028430445189381014482435956511969639112871758151067132064462990843798394867273204463270892757422356213698909893493368681697539676389084707262213835408986903745248127098484848503634926224769041723294277569056869944311169299585726157646342788105446441250802072142541259019499685902843031279068844905401148187338142131596814904557610045870385080534157285130489730750971345563043827133292851974061318560858987160527959577724016617969554901129206716021884501794900414598928735369094127418453970144970065494796671965233196885362015307716237453559944400815969375450506554101688263814271581583167748632839636373108236068085121984466219916920736565452288476169203883187182228926973107999756336416790831362597135313857098533601484521596151683880168337193403163294565734691193469751156457119577276105066157409296562818960925478226285049557651159501032242407437023906359893046421628244082614170626097066277394646430644963057365651518803491396086318986644891672815507992192415549278043979617331528042523913278698527053721076029302945630876812720697982006600532563910536475433914912299483541493381803004499475159179272731009538136470220856814021005425343507592002551222387920836753553856181115813243578053447091181523760772111972682643754076896182834040764056976218135659505288613644972849795200896578355426171256385657188901813893552556634942357099197440565411790179821215041423850729069659626344845944998384639216069937749879472151728521193798423080141785083097007044437389204901561773707316121145135455137521750569597775163681227936398411825330350609137357787679354822420121027118870761696056446547628213935919157187815765786756476048723545652568205034004893821928732591912212850220058748197970547914025369082982230749101393364654030600282148059527301736621705160238411936633309579672160090183598114539417106751622729946664090684715756652878117743436506935168968529340440627630008674581512543855538575557171049598969924729495805482471429193987234701713369575812701260295798259331996218913826248900581258596617215805894612998442847979799329923787668492307303362443506008776069479985939242728256117631923606714963133941833702628779670270000979721568694686977696710817355092105194022055154308479334081077573543410910307469739318871988739726076557062303507223267742316960889613585717564167521475056593921868614393781931123638208510277640856125134705039730219431162776743277923018607598110710572095259580497929957797055499470854085057779939056810455816818807413912998498023323642031987646668084211515876315401199081469561109594618811057928333158356619717049731299459941930119793819385423757952536047398528560362667052626597667178161148816438142846826803613745840555827607439843981652180575688555825692767180172417198190214457473659659518992429047937938741185870126205053264962676850620715232394887027386732000997435134622980713854027136261839407447507767189563036032749536537557224058107475862068636905030426751871346233700703888538151843173991042794485947965034441260942696074632282287040368406352129834144757537878343365072249109557544895790546425056484626606140119844468148989082963428669724550909129871673719365788144472958495074785639574040803520433135377632713789200855111808325630758885673193935929722974002603935341812764491329275324710872202060386524816048588780578874428492960295469126469543733726922386142342116008562017616379851411938556638497102632009161407463194362507123483130470023431688954242272707809049843842961950116472654270347040858246657702848141862480997749210371440515182125040249052452992382798527152878674180661046199754526654312518716664063367376411515006072624659859215986735684468612102934738949151275788690043156287543296306285028250431365852169035089272493722950507042650429267337726638897817295719802889175051079114776041936286706195555132231633012453222426901301267648944607487669966084284285133964272765996205939608608679242748751090170671405702374866658948991229998313620189058190111374851991817018522935626607841368979034082176035828679374446762769682694943153384444647814018208732987006393683525160189308912309615687347865707572380103904929835624327670825343256070567707522739837906589022650461798080901675346237421705063442507546565459528851270762940682594814468100518754062472474566951716163637320277353369947220694125138797958068704254468151926363082397908772410686112120362094486279177490470932200339815183630721458896267466422897507760018902265564381487203769711483044563698869378092749935201859215805011474391416879938771037919937314113115501062511651290806463962790392463387234434769289516920606706895414648232351474483372805810901266500257844168142805769907175566886852451776838257610375913945449117349412772116646294874147396971884253532647776836040072298268301154266892911422564093372511326098080692267198755611589424769803077653509190924004087046604024621319331143765922136817632790598204513417131422364725874561133736622704422240938170187403871939225848961651177845363277655696268035766871792963080527971428966104904400509753776812484094179354600793386396800219116920938470246619812498055804431244727705971679072587233724061989461810976228582326711217979855753023928053487675652682871121382090015369128061399001441748498368095718237096070130245320633978118104095278627001151598148378434631480421430072879684511618573721173790032888133598723784810451754277806821728421869015950572524869760369792433516863827565372621116834126033161133594934683395244054659322564078845629634554761907697603805790142432437347935432347445258634092597195035415910658874001993406278857469568543761214669668287059685593722853779628205415602615144099861394403379502421959876221808934429068887363799104234427184293958352109711549661673725639217505266076364005899318137528475556246591778422040612163020623491083820372184380573417056235609610165584574048034848398293788177935541597188645258789178767763299641866012003013685256600944295359044089312563149626448346849014288358222691636207435400479375823774488862498053169001220916940873498987734756613194904268528985790140565496755450773785803112861873881606394591703428024281686951668731287249963915166316172274216860630340733747084209727727809636102894356993600441409942659960526965625838611338235216652934600154691116238332854594200174635848639969494126385055992939335181478313913549952534914803234674572511431722347731095716384522223733207170433849334846114884650039524620414858304129698758961594617000729520080989721874600824375337841946345150872911091662583289214575950593558333566327334075253896000352209085540627049263495551989526278993488864669880275317095164563442594116882577362429424755207498977007690989969165682700599119996996231052319820489012858398351041135972501356644371792139966566842530043072228061138265427893504389894040237103421208618248911037350980342198570319020956349604460124617519945789183325679468379732359180238983451845294399971848028090388054144090425545269405558591718231201043692360851395464661642460503621418757425808449606041419399970407323910662677138263391770974118735096166633925947033366381375508611545758393652451966357188732548410828490707045519605448915102969259443591171016322402723651358605505526356947678479662014380776209542150400911219945983200171781220757254492893927024263535755179693338721340501955783118555302873382839140413285800621737972253326415151135492279804421340310683026544784688782750786048755364822867074786128274979007343113744903542996326000627027837660808860641010784769972117014337545465906677247949314494628598551397857363537954914640359816333212641757355664070864356426640965496981820728804766644396631595725956742396075324445729033218873358481370154601448342131414703779358593300880377856405274638491676964396708742758245442868064921319319401692821167296097104950164955834230114490486628061587442929917628993157384874900929208392237674691301769090717854423296035353409962221047138793079388405659216469566185437861848844503706743550097669034455094304180704936568165684863537898452100701947800333860268514222090640169906525436512657609679644958485051079669060543420386489062481141586973691748716747545424487868090899321973179731131503669500462748724498976843187790513878772514245889091507317708764851374475995051514509720490165157131564702115886537601059642344143746666316761921137208903286539774113505359913472415562469859720045315255496517583343162526322898429765106734754576789336993978423571041308104516379920352289051123168227955594384554518092476223228929707882180941062847605295925439711299847822582822807812504530969423831493524690260616654610570800830374115564314624570349170371516017063726298176364199466225934609129309896248500352900349060561989081646199188863181197235576172862159008307617909128936171449911722494707788470743470542332284351764520249895890251121783014508416738807572387961623569178495907953471159943051198681258336441366404828942832201653920265753438908237476775490935717255299890375548916430762972293025633276837164685452295696142779281424063187471456923193496775313342601921409899204136900643193827462177925725490358633181075549247197875188027463966589837692432771576968087702542224330766201319195361681928588086076848758328088915473196347350107921930079400453968837884736469423195010257089561167420860458139415852455111418503941562264352727202249193998862229533816201290286941036367201015498896321866384300699770759588961186114276117658233125867079724137867102350237089294383744213919987707486842176132919060821641984257806282509426538333838462244948244261951241420059877772480794915785036828012176167486652263557148050098558184227724376158486804432015719888777958485580286114236690735967838837882776815398896270380991087926291079859143820805810201216039760817269732400272079311666471149203164641927548676913130571956540540152586984176705753945690567022786786186727299650403372494134426701497515705595048616516509377528479548750775673653084215731684658326163472505716261469324543961901535092542646293565062140918425127316078450918342965118819134528292373041508071315759070672319250495138626943803426466569622973988200729267952473184954258187341773848236089799409974463729257074339564809645904036349474817208462841198092283848722918259966228044549457690481213343890042105694498457691032852349891606648309093709503496154519597124463888852746348253365710911381900316095059655542055728544178537175763649775631083554458258650989180155540402165063900873437838890806175387305810454046060959101494867337325271740791811807121488760821371434664141685624447235425739269955595960763129876630402913655617710295383821457676075799535102854585676948379409638004161944256730728551162610900102655832386258462944847568633696248160501699942449505177578678171948118853434452268883750644392527319448451660082849699823681479804535022748573085836074328759626272011975734350062387145354306185678435354077561448142875327494131998563560575697166179804169605926344199764244183802111814089004379766745916744732668904296645549361902909563626676065917406682672117467073133803286014651355477142249503348529771292725291763239214768541009011137093152164392192732514737530498029437442339606533543911721110409972594930276438563937324622327638374575551191598546891868685925935643935789403257763993253352789707714317988675104123621009172157565559662991147433998890588381870829307285473440076933739107454296719582163034943076306884749952154153071689225338380877538934105919978897235153570238255404087731655139108121864351277449663454545391080754817264987750080218732869278951684429587025654888940267780687057543547604714596529720937005770361762917986196359204013024786008303691894025106709177343006436011987353996126795488381890147919773031008716095353951577435426697199586399996310469018031836676360073005439204124625698813380149039919284631371837597311940380640459351338388944759817692494122235209941880996437999657066619321946655476358052382687797949773089963359967923827266486157512153699164612487132211842204176383189363467182344001323096146111140539288476764720841387087106641877530193315991656220672688409634060278907430979578918021455064398544651366803174641156308742990973945060940833138596440570135146231361909316319539282055139838847808612420438877186487762424295588892034529936086843608957299826270437397961015546866547723876764139728384507865050980039108796528104538160783065688401013653143729642840599362473418122596746652293135924268533250952677073240253878165149139119097821568947710276361883858099692544054124732029137609862458912356907974116630760925462690139844939459696666186953820031499980828812154629135170752744554845883183418840677621607511508819261003583015780056859774683794553683785927441528324403717563161450453428139177084691782766980734967841826606368324188968716312485833775181020798912496132775345784005318466848974041339661444097222250719966043847384298731095808605377646947948229979573874364834094511108873638930316073341501452951199393235919238955812750876297627861679060862476869871470438245342890591153750941763732297528471905292468150333420933176861880864683723502087454240570463453553139918662003022172783892517911588362785299936442569334911915410627716919729304760234069495305006500869615613598024893637575771234738720420743603903193459995331480789409006556559890406303163637832654283749294121072867212704824355765138095688872258631476285469123891494624910358873176078324245527483802288772928151529236721367094271261997300946758374480603554680017671869247266009946746417362535967833615631259007840452426314794019200294450130136612644913418508311795722318009345909021367357125412249496608934442001045734900364660819657378365117892419514533677224859431720288495302033849613210414466993819855385306197185889377540611828783362988287474748724787645291349831558216725524962436910102938759418779626358652048451552812948029275538914170687781441171642487815024627479284665531831317549338728163393806092775463646872479845776281449323640771587268398464737100782664632868871158545478349066722866835329982426246089129132628337968925348828238426434550685351113470301917638207958625378314211468107602367986884742585812698250963642428225864628590307199669452717992764889496314509863442370246540871372867386478172684186244966968482753214561808244920190345334810353702324954184413809230125003161224602030379486790318486748910806719715397939588862840883281757923206380035498174586098599698660907171036949638591775407878465754264124858670288924621800981875736418390901955743748620979485999111440464368034897721365733226874532140184818246952795873360110240437900885417262878236889000970260512794907638807916142686089656046419223817716979732399755451938836591390291350437460055782242569708201171188440389552583394809170964684071259585554782521296854546923485310620265235626724692661823803450541001292927645286031988363146792410748078991663482377142787458874657165740488261626329802766067900803915062663093485972503807926343381138852731208409721085051963034542060966256905906622232038398163124612857414657773340783495120925080878982918902608953032791540717466510642429453644900463847576970978766450392030695837843166190397888273031869380417823093664474031510485632661147827385918885528750363080813693422988321081384289065615727507784174776628870814885333151410258476176312451469783332334276727675499218964258428790961687316116199612456663499901292319540223186166410923065685507071766836994887818553950276069392535984122575531678849550359579064301513581695651615331986334057310771804191492457358835988511116635015683548643180634438110501082560901228178733080277409603601610715951544958290660053048147633622518788609413040622367061419254488064887959228720606278325941804029160750451026167334064430096382890246015667548800157913740649741148794050698010497301282956102462288644518525608662862688443962106834462633048917154489981828098816439276341739335661819990105559024084599396427454255267701244281188867780123047102778526837027444974217219288277350763678310717577077100266863202143346945155188179067847352984963084513370253226004054623465848091871268969378324931820747255391783242887347843112183862519821058066913164603878081059903703435001600008935879628559191172513831705060838843596705614677664182098755754511126946700296478689958326011780205990931019716329383745493753632022989810672469700253542207018174655784679274057833153255850099892718736612137945065050261624661965245446177681854770237116277239779653416230663037630167554594708784929760343805964026565587757476810695620297643974639179822241818990123218549542464896907233337655159969900145852659636005258176013102767977070133453166737501008227370447078344212643547254861182714004011247450341661965777004926310773582195132336043069360106283781647823728699416227838673824511496520174741539945111129466164698444223231816174745531634803429088104253107813716531684134405037252844076404619218098395406994875299331200953058718966849835966951851034235305003968078587598168822260440514485063432656302361395800219454768625728624479504114183140226056919754292565169426058002382243324890798240819207573838059478213248569231853216875279263921946376502026664690232282985717104387366723596081048865327073730942640921740683843829259026495764091178133659135788850554828505565032270022851343305557763701483358476146444836980367295938255266980427720974361341230402125897811659145268186181966164802859935612920537284550062787934961768081879835290377409949872872792849172618426994882968731296262580827855178239007420294969678829668313333229659160590179021467978660540154382976032189165191518738259880410389796991980610652589510834872686043323322138936847429820650221914218409162691710641626359634457398494609450764604408959581307371567485191838806998702726522259119340089433152116286643602198185536918153240085425826268604950362887295502449438640347302713815018502510134145047252196109172348724654360680436309119014703765110729235637370737992624201224109134275085997510461042493006475689649895656381961538119315387319183314780377820479166901216843352086236195588238676879188934095874644993408601431273462964791447920555487404176606550422785775951024298302627730537548025787502892138586072999851512172735341539456146401036309431707186504473760506479415186293392450418556994510887950930928358070176413437675039980181416978491446407857314757372149889679343058498825725579835385230134157611754897648250106021419429153933513003828720766858199069283048210235935356247470233944511947180593328118043248725380026324454489301302101390176998919229221410669156590218072218035950465209753109694948078138084349666954439339998302545873922540944172922556967135871588631577565219932588849265309769121027141476559318290096188761391419459552294256286852300998755625035552660333261707210716079855319150835732477942005464226999535862648016529156654678011511323877079869666036363786763264124778838960902315097094388175681082393916314813051327520820291963227626940848225634678696736873657703973804639155333093178050797967007264789661797477450368187228640630446330707082306395080971826663603058708066695077512357712369251440162954390881641542059465348713034749001223314358981112392111432530689285295971032270566495151620513888316544054243268066272068928627376737945284695538924549366366243820275233595105618271101771737028251019498898375754872173408299391422196874328466654673286973086019528457089449049840040927593520906740100905608243778499451899590381335164450473927960818297823487542579426862268844641278842567993047978453465071993182089086832588775636193894529717095562870126838137304470171064005644637270353459821951171715524950276652472675931618339909446195524182153564212419602042504095992321276205368718241597087083362076411708773838124802016908487619188882906242539437352020034234883512565763428198601127711603484284690770990920656499796174191282902733094723637714757562797216852659815668453210696146050968367876856209821015384198649476906239641390004500910778032081699029846998452577833873643665933677924383237592786176155717392131688686356530579408074521489995148332951521217064882530840036612409145676561318975534231550838287684579915511412894271394263894903026199835310435021638722896967351625799893603670511640785049394214312396945424535197157586420079733015868733896547139855479160850779426251458020600936100751944955087369055708910510783654473867220537910577720507165154917260801262558194806913945011501993545365316773791205373090110992214251680544043626787507910681886491502966565557535335516891370157217776641739119946974244369701616895225912250939652062937216976100841636147836855596526438547820439577085772866660494544925934380369846676150804695780668299055086632645934916937210987546649818854589941410631976560503828210444946175406947586854179207786052881793896249366675758372851797720940430520521644102617780273674505663544261311131127923440203449486632557712905323115590217605116095927575245909163705004568450305454683730797403600442895928305246133601917796188647829767132658522041669187110750265199495861431042738508250620880810404233905814983956687513793630689589676784335259984137793212282650038488951559447555793785263570040611003250914748750636636436966050958245082245398926312006962760755983556373291335847795171179561795592013370826045405392254635178776845890990888957262232690501860864552747700737438447226130540832666840812724318361246115277869525765759399658570102499080991124652387599903424107157403892215527296347968278185290316215310900396746839006979056522549374064106019488614110819953374501760728697198800212403925249423425713798834034440689641454199224631643148137419887253188065148426295613401527349188441528494230487898521723510557955777191134141504825050489519286673184449680541681728656953966231798891459232184201451396872808373801152085074270392684869725177954414310596022120507931143027994648810586359519013548797903816494957742743927522948428222346083825845490550146891881150511532216232915068400026745836758895103244289019830201412170572195231733992325648767650587506790493235528507945783287127836690385341145576578100702096732355244783051110481823654814242742707938312922186708522870055480683757088343898477922233963271198575832948055177557068355170457142664784559487233420031788438156910725002591511818018707928813080386782440391809614319082756472391339747046139325963334874012177653797214693176791722984432450518112927740510219053024814940073706664464250315500174153503447137462152678909699945360565911022083666775310494658533191901015772159383106260507743945111193973228084286325751319969906216077635339197725552415284278804854689276183246470647500036535502212791806333199433550542309691292336789933369867065234143063578622459096196692034704294490251329261942897598816473330991881611750977078664819785475594807231165368065517236068713946186621897894130699413025009355412467613060555806179724146403124170829419113130573153149674053705525388760695103679220879228775922433625101630662450092915355698398375818741353907067310145651020071441004240876163378713282527146087609418676986853563848211558434826295827823516233476000675276906522690163714195772812087151828948125572135324342909277942255343375437197818287350001623662205263173474575906971207494606037719788210492105696498662163131804600725884576778780747802643365376762890642285006732897723723063389609026088307386264004739879230780292975297124463753678033289797391082122633666345693639264469793281617789391458316023084070420990016045769177878811884015599449266722787803785027734307599820246774465191734473317741912559683561016095362562498917398560396601650669110576580270192031533162808835034746237080518317907011927882958850515799279417212194744339996047404025562217786482482679723939093540026535275548994110126631874002843165837209036655547840240974682235745312704700974810011706269301861070176413219090650213196711908910345337750408554155458038479062529534178097292262461207150367255505986789547210593672442620398741502581161749715986813736613458703890115438096777748018064323588673728802636934333742633573478860433693299096908067817466239001724637637974134962434027933448981697573566610590109044706595866642052485812804372935286729315734737579518136091062191520717212374194415888685963532917761732274333753235823765488615713616822303666322977178865850146595081835987355113319070169403865259634653242327456444711241644901018610726658951913453027177217379717954846970704765724851801082750762052919539852669237530369031131076123690604131251475062423230552141264653460348988749419682277227780010007981758050975604509299618337620622403184969932636778032698778830743092005915207245069432420239486267854241270035226464442166905807362262014685667692027879967062844228372154670457849025005776056399290543177452363061403020034288541972017008263936454374088223016452183363873203845738722619334377977768760977776353193219804099456267760448881769904520368902013223303513366530587516406819026812146751009039061441074475978280231956692491211317368124187804946077796191696744757602126025510365725371328080296298011301799781334176219763854961375761569036082702463229157969647069355574522358409027847281601220239641620925407085975031743350668190732254487516292870643121775620677371074800916006407164714823840450014856936137748162653466860731077719049859418237534157711845938624221285894516025819528187107888907194705041487955791770233047966740463667138549478653721203303976606773365773243662499041983494298084733038210419630829801423171630255523543982735267461202502033556094072610122257481310301992590028766200322423698238428534554554869364833604833600918097539653492389999008194801267454697708952289460114022803033258552915143347725250567526094647199782823114573469144750130252290247075300885632933875815597388032553512445015191062742078985254037549500334737408778010209023501420316839863062348065434004917910912848648048948712612020397314641214506956173805394226022974465413441780390404689109940962882031014655541486869003271159935055064141130647956055483631317483173148447803510446706853525975091320067294763051583992021918556813920897066830384825124996565002273289695795116166791781679296136175885754521863141441733248811546352684857854915791911760174372699570997045779665601719043338114564700222927813717406118366871739652885518924455813391028884657329498106700150318200086455392176692135878865312799542300204788074572326551604752682293816590522288073626036290729438361618407325220186600866393900547921983355049828695929482454954518056255665554412222019271843775920696210804560558608088551047062186004281671407031989630459734041018304793009910095812093298738056870510349337521709755566982081878865600619904214952112953569792964560279595071434374236954626393683589913101143863552716072338120629619007845209085250852253661106302889716183278609509888915315596275557382853126417844441715992324868552168189387308714197286983442874243936002843002485678479382963896932237478519573579699986752832993110289999243305527841252318696401987065499195402697652679406242104225191589676908426595785480620993262223472961653006628539836807580583569065045419472267936067113296368074919500061964641592935825618161191897377842862671807596925239438480344781270292724028785375889587916366187082018999138469793032584418206887763147487250739342921490975340039976370781409534587499989996433597453684976629252219985754008654269707595454792013294498676862203635749632132641236845597419918072072120404912933640681723639900670454911780861713677463046239292802815273305453771106209452746840051725737566229759276161296764128965792319434754380018315545668473127987556496162903600151976830128107829040512597484807450184401844270037182109619967572726070629421019482574646926059104126743600202809853358955157088851288288729995590781376677083392647979612610284759144333413631494048429035620037599043927617511951152595310403289352141911314266241374367340393991275450305166740708475701256481593685791579992750661618842036778628402286722542450607930633883930817101062816930746195472277776475590237927499819808163302743155460821668163758746032270909589754177657502922788880178573654361796914277016917129800693353221623179342529029868072447592273385075957662988537322281686414460905024054612274960102886210015723676181267257487580963671166675508751019667860998828504041805248641815730348476121126551263400148154501870683512458157779373852420649985233120238878383323064926519477842438244822299242333212438521654353409716554458357779630812474935751735810451399414545948404656787452777282864719731235681628743264389946745016030456559256298151469309643604238581578939763115350134458936785131592982026007568448019515421967791548532697046233103510977779219529264170811742934340184067352667933009464717641557021893932796387632616165690191450858490092052339703309179738075762905125496327858392803162533125730847086982825067870341406441328609708090524397699420410393921715432836948690794140609720165159475431295886288505018990934379429708726162525155625198346992014319232124813376941493980875082681082091490714630233375328166826570888117999106839863209674970829411365912490734381167029290924042714853295994648035913608997317309956016804222772387846268514693660960303867747351569756665752565203538009650160103825736540096425047234277251416363133815927378858661201043361618530557720358779155377731049520231653513303990155549766993738584948780207715369891458482001625178269444835214198603425054886995219282398357964975242137406065365369435671268146131019472192289741676097509153921440201648049134881610278160558403129014143394510851012517426595170182602576544724304150654357187278893745417163837400791428922390468546319635294845242549953463111442354935321169283379974700108772433546715588996566307139235287929871386939646167125856717329489028178076767487977179699081503115460788734474703442696435399993272915207334013889763389372644439524877070386356543354637439210461373760215447020057442405409041237827192401745107249579047727157410003916437188951006934466825861580933876463771682418542921598014595619191916997899886575417532834167343361712485967882578928154243126409948144455910967927496550978343381241209445121687558726628453411847541881533277308833067366262833802477838021458450879041972030887035411136912839649354267777849920553996931412471068359130983144782877438540911941009600018093801788090043965961531864080200204719431013261254593496343169525703769435909645264952845502372254609729929199855955053304168118774016294633163758562703478321385311529153211920886344654680268053711767913989430936380940357536370229915788947214213895043740689783895820716757094095488299305538032344690718767749132673584915948346644418122764890694044877952397631307189631521057650003800547036092074777613034339429850559777172913843205484897789489857740634935019461077627956680074532211785431336900834582116100609753309581079147398467995543642692986649674648793845484365087650478183860872762523638256078967015121694166761351380255447309872495374395826245279995398315358290017980959752792550398034580405709550675328419467343810866438676678127492758640235732407217631310156688309801399840162420917009736431957137487747973530999690413596431640768916823702971782393248050187778702500365371269868228258806174592510951657750241676469051112111774489059253671913031458325331340670684920059773667183731829477551186655474312446204665468407821787524721270056442065385104219393571591381530650699642061997901243586015040878228662796594619669688663134533140852777222212928604741278004489508830273183819793813211848343760116925589453713066215665833524307287555502876120645566038398037256094296533256504233455741934863664144559475626149719712987755601099241324889714749511691237593295929593641765313811536627811613476750274788068469592462480042472385294213539691341625175920142976955381419584941517811111937256846142296573045548638315973311104224650712177731095666009525112030499252666548099925281787280742107110831401544269524281903500441528777985447435871682650299699451476690255991539568483072793209835914655077046483911870894145236015751599675652423026312124326563891241115684410634454117892965673670014914697024166670647056111753484545356048966661356898276083493457301573592674267229443236795091924922973582140760947969436420894245656417024740419049082400288364319329098126764984473095778328755740955671116297319302408015001837833282154344902256805314806435200170177214585169429818365899741928970268432984454881418968966046536003832251419765529462705455473788860976416845187997282887044385976646002997170769860739523101087434668658011336116474279531512964342157679974958958097579591145910568379937586378024168288345302520783394603728184402069527063287845607488496611297945204646415202170559297388484316438264408604610646758563436912921265930306111737955638388656361415697315684031582229179788214672147814916816479194478582673382698819639070614587140080906413571765323159227231777025555581288163472103847542702234403307113574106477537733062211926392745156119516443205799842414304732799438342538704216833136604381783941754922448711719595486412456716997999643811028828775272917732100732349995832679786195823667680410669706653715847771006184173850352804883344169860796903635326751363929517584898274078647251276907504886664000049847734757514261596114894826022896486349137902440996998006568697843381457148296034308363741995534610822315754251813980823233457698333065875015489886416120297166991755918048261280122585604347869328724842832554020176848262843460799194851429362105795395392089518243932631145590778381615146292683013279909412811369624167436055108073570303959512169404561967113879533794987264902697913795797747751132524960010016063935061752894834234963234031071195918156063407198685520179578089164290764338132195102004575918579782721016513140639477042471889387190782745703610870174296203647460055467881402658375249388102735536952708366374957622484436539317767200719780050116099038373544151766941879387771287832207121175571560412460067288163072719753200638043946176386378600731044729397202509990896849362873532560629583588921932406846781861390149171245141999402065092014772006308045832544728681736540891679609190182583052951154307745502704792141204367325499701457158110626621818537032444979560399529228593834784457315496652971082802554794715652024291169978336868899259812214150534419685884518419586280205659858663002784506208118813875890792530496837615295963795671743919660066436798757304709812685824183608400229567249448201779623814798687247558872052167546129080204707463301672544571244328911267644837278206358330793710470560561288608684612949218441821509541887202422487203993149916441227300381033226006880064515173537114713265268188368387771215198057281815570182110663880558908827041875857428912772598189070081548123167843889414110099159103742734547550853544722889629796834195500294400037835897249182360481619543693430130139475783135205479020100220119573224276576798156492582510167177456007202282984023854843974168759623561442869601385861124156972299054147779657134045047086790552683188016299230897523704365942108461138357415552941157257270441820617546586275108598223352552240879236015347565877618530816020232873249805694205671228919212505126732365293785081428026013876574592109732392077553623144599317804366060321319115250168996631275175859112063562972808674264305639832746239747404789067757337200960814019791383984568767571437900207667845383490641406918658191962627665370906973191446511084760594775713384757391945929164061090318365754480283965803865102663971968531429399014659108206141208106223187917326157375491880309793648960268807210379873064789500489361026352558164340368576881689617269412818860127345876614096836269089033381589609292891258246781147041405263651624659517887129654546482670401770025536486854653148048951379858084116394911589646689971572524891542826285180256395045966979771609620193742580888554350475007380366047610663283560170320226573680483057653635701826090736486596752030082796575506992896942492061325108721995051246129832166204477615392800565097477372663951191386856503956367896362129285883074676273862785605501845209480270179425554240902197860933777357330842470564146494301962242317044810510357824058239645674929481890960056186473393906162865589251621232230596994354961905330163209067338326695179483701918373744344287488394048184378896330614366029261491052822058216045422214795815154822103081805509536078001492173158430094428774757526668477093529045390029519890420472130210186159562582205469471441559762887318648042546747485619033788445953810271850900423073149100288130285369449268257875172207118078984336436215905819832113616279026420817168987317802980299356814643900046443899618213183789049657239648220729055311066716500829288595020196811218652042085042896109874763004418975714884402617309296764614958429986259201158386042497526965582294261369084338226542051531190740225041761442279531012297173893952832605586929428492941342722169086566061896137052758962805096435897988139498984359021954478404013773797760330335602906932335835636413757300824908984716783808936379880558273203680307948081316711550734252966904585780662368116369375799621395249227275649792240898308085481842910477325250275960302474065508621313877197282597053344780146434027719445298427976285159179536533933700761589698973938068650101710023112925059540061032254193782919747262362695412917372410848811332813347316666120128426487226433202061917935872763848494978191474572990973628768282314363223552610170127871258210585082133238711434743039174553336374895360084520039612513480383527611032231287285798965179679856243999959515447513258095205921137078007337765790217359739677886702146780393375740346894335809965824885585841566084518415271398719737436629887295572331343151679355592144854901034390751060938961453959885936320987521024875512541725903646465793378267430752653250582471948913523514641750925431636070704323787000695603308722021651078559981065637864102709803806720141164933052603393552074532050306881581831392554862075841082662079072513266518036463894350316039260288791524094198652770590347314741780969645185170849645480914517405205426812436715462515020724025315412960873634599318550847472166828935796801550997601238496393609585010187786306694571021498135962586774368750480365523432491192905784275018173213296909499109637770015793709448803505759545320162199173428402200596423892186233441380080712915372976939665189445481187472926961564065329676568461331357278663609503824117950783122671328105759250577152240735171645169141026237383166067280887340750660485154468094668500101893779637897852255155454207485823900561688597102847963615794464897901698867056528973288272764090733505092146297024021815760863946560148515030227668080672683259211994477642857007373421536451485178792545874738381682927490098911114324584495328200983375465322072270577214287130756982954780309503234196330701867989285729616281580027219612424413556643162950241813741874412266703564680427156598268941120795420900484672610477651000794740612639985458012190138024954788250210249860050547431069673465623682763981353453384853362537967932342288541228930101441520179394259407213093143291798371591404148544029288889853823936400269178587396879268247026071109284949534443175823762142579460890827410830967723993648080374403684976318931541808320706417549419191407698970931675703317047064244120364315658967982790565603960486652000358061473752452219128713280596172725933136514627014671833057471166528125062455478856379192954254876047195615337677979856735750327034424550679342982268876045377354463823069350404877183405040789572212020689270943767571759279070610738016331477216614234981369267647638223650359348976530959773081543044882145102774303204534417770275811426904676192498971734900096750484825182557500126012318644810387024260036042667318689641596549035978670867551486395816762583106273813488030863063452413027697214452523240737523527212202968752564650161377004397686112565246856790975505076823478055162442947697875291400885519161521793336819249250584683088268210793462846685227247336254875289190159878812075968638225391646864763185711723732228665215394251201075858713311243748903048602272949010417968719952603940292333047666078826958083563326617651883485190338824828000037131367642024255008731851540383996901613552685270722980222182139195817894620471335322268760348090375876458599102742763371298408967775515663270305802660985431609247989022428560500535392007528747921569803604314102246952942592359834189369122593011075542120954497104331650556312005443587874071786581668377502783148956535249962140366257461014976713409590080534994929539756764160809314824142835775124757051692903551422228818190761951870409895465830191155385863362669925552171825333906601937698078321548064034001035495975631713503305641739677737736034275855807727452530978584226493459822869981015311251873551792747767220486636672943759560576359420330388209316285374177510247630405757977648380083388355173420976375265614728161009138612922899455315140524863818634707918931168732337244591864585509328413515168730391704634535861957425624209651933207099113779511434326105859202716916235757914950439627265576454164559863545512872763794996984184469773465705668823853532492438461517982899024665491448457080376810154736362410643079001618758787316995024519440422212033652261272027333680366399547123365830309900004694248363132255680576099168103883901197586253021259000421272383284597852571967004134387887080477863050870481063186660500874278057271384444108019899112926272783679024644289649996654621389434076741609611310587405138088921181584644622132134034684876857411930292734571310943113186329261741582951148819507134122770653444460601836591683609418755404528308247846466161911215378672430083876391317645501285605836112398930978482380461847683867443032373594754570083775675176693349919380990197988250030275402250291663979649578065709194977020329451202984636852905393033955365353894393378528282814347951509962382024572086953414267044381830636955317422575678477965586888377309850841631745476140653646483377800116610244237455508579029649950715950447354983792318309303747848371333560714792144709447463569242882100340787503613926332727129792804856045457287301130348988630023697517282023975045153047924803259882361014729616140858238396756120457897445333830125841978568095144729608283550483781709679842922546685691648312879647193123887598562170443823372257724830860751253704105568753112202431496847752472783835988971361877578060896070596449463388408054352009927033715475204155666318298891204431360199954200246242799403381206705416733640448590098138943512595838993999766157110913797213171944866009522338378314818646357231675151816262676765361434416651055566749246889191110752758920924339927554204721784547445349012224840642032599369461811627917041438341472560805873514169844995174371696794701678882348083536569242292828941577223840450050720092664297939711235898701695060303592298826702501354226867577445457333164179734086966946611570796613243440207952551781805945496936209968478084024952899061403527898411315575071809650660993221278974211118073203749868189087718005038132587197975228923703104639770521981325654265536778263380011494638619096451402515739677902942995067415102080165123875505583416769484901953412722828495119950623645252021215659945881728990018137555723886043491863946637517375589658928976160058018521111299067437256114547088070453264360565271825783208825321466018404833595046196751222109363376803874151690169834221042554754416603461757387963439467859992185720042343945518849505588119150048056895559046542351449173914375594932804541684886136790012479886144359408733169635281575019057692485551749264706349755093698565161334970037777265534360569186780056567445941828477937681245794513774939659761393552189770938065643074526702970888389969557584857534865184990049620277136122324572906225008879158679597765272514540561576997085558360685730990072208812087780400469379318378995073716614415162238307715699518120228165893003831096432377645355015642693249664068356180828239584346490955587735699886035800947462710251630416407805903940660754650091045260135182751301598505653824037726530258844732161390581738788816582596582536520373190250410511715934820735676650139802809441246592393234346140418810483673681874063075472925584252157167794143913639844971025071209359939715538076217603733702727233816993275670061851762162829757889945209388286022081669310701636357564716278821176824285645067104725571268769356647090773841103188378151636209736197084705405663358708335442075432401737667911074977945837613691962491038931505809899111447598111020829139128884162410370027389338650084103114753438841554381203025626042299104533538068110231087889292343072848628872382280769436198129546422643606728696384510070445344167015609573890173394570797033534138258493712623353619754132172746175962640510628562468988302504223378813097165868770398746314587260411063807621163642537993409781241218566911070940525267956896571846260145758436120756813822920394656219991567522538811609303908958938030182779206128245047673964503043272485296936890414583916786764621866165191995605734944947431498989740519820814822097746052936861148852413407877957576809954322794451635212203462891692290104538511983088286122706085430780476708589872144012350844231146381772055538053420720654960667984034547066151922244028562122698298632299467743007902100684398520177360473893474969579141159459539293282827948157196215267465911962034267212485088535473520364195239666685029658850623906438714688080085116134077468091579796181186332298563187980818543237963601829120664632283229420127527013467806133125903109975846612401258448737655082331070191520814350632826683817245196246194104440923348523672417933423264157213286630286485553417551779726076935364440139924311604677992674265901889581724039246208055075947840183052874104290365381987331284136281548407423635488163340905810679369335430852444344766358540535285674101725249721041942716506572219197736934627966301296633530413120095776789480297687748887925651363041446595845947707878605215435117988445095669979195007527066802166026902968810946301491105495707049212353543324403513822782812703017088851377451409514268908962582069378880037725805808549306726359769179197202844118069679613340989187885167074089410452039199686333786845951055617978263709100896572846446449336317137496971121924012380783179794791612964677605085399498117683056432428952140973699907986687142125627459960411542835417093944601307970881671352424989900845819857030501079865449048804685575311179139917987607311012589790997339757042897552753010230973560433173179220799727286440793608475095268958317948513175583592980770137460028434908744704235869105283279770907445389895038044556721706646019657831037471355786366709778819215829944101113502169165835996243689721435977847549619632792205893394240580565640909932598627610083373786596131039108489433419026443561617872508932748096981714906144814279203962992911157891923730164983412174187928735102170513363832608067680634717070681646690058813938650575145716893008408471052193628155334954290166556497447956560568985882819372486318485727282911030021877498318673426638322370104590224035983192986822013198323930609274249535859377161753437939168188714656545946074893647712950769115582017161012771029869160564495046586762640369644518816926210545575998820275194662260585148472154062513253900948883184311112360899160957432809848713082785113751140303157337365271146101460372605714325336853722156991874095346594838417942225224466397180569835087175702441714149772109761048482222154777568042112842944943037727493630908425861916687951887435502281284942109196414898250826484761455111368748568624081209775008014309412791996015475921747620119186575907655704226913658003318268427514317809385088359448989123458510738324339239228185995824144968236926575820375616056203593318533286069362829812133152219217904998218026526391133666715827255653866054903427753543919122339140673570062838624995647900760514072727235351931764953675239308756603041986340397072371075403630982359052266835884091335783428982349467892647245187884713765995196377579944840284880136823832220307647775288970431086744189183032728469701604040635974008626866073595298905623266391896377955326111069748832433163359123145349969668921685599464862478079282759108584262802097459387840745453187214062051005993686626628248075863832083593696185811316772363820458505192685202913329050293925343244093991348348379659995594897919335534452447723450658266006225649791866112121562579724523842626903156906967996923802347882893135713019371042248006179516659004758564421953080334583437295806709048535124345414065281697686414906982990510952156842072512568119279416224949254778527184482876017138572182863961515724450898677241187619749821561264783705362540495943875393320070126146782080674224460802985007484738908629232881729635570621568694948848139110759564305016996744601120597279026315524287726021545318165649966609216521839542416562634825800148519912408285501463020080358524302120728017938408079852564459633701150442702770583092889460170129220918264030350711668480601616140319061200841405514467155575195522587878572689995493063904207896973427748870390584633826345298407487572325910741861523083279857764408503475202631920542015697438738880507200520686895039602729918523508933348030357040034179480854099669477369752011069820422283555841382670601006480762401481264663720663708775732185606029964792662584423051580627363022956126248074648327281425753957197177273195056973213306998394966752726177223543736242552180261131232430760062696479045675145014426065926323706835155134227105458981927742949709453627854817493698193557606341965347209137740168384476167978119144326706146948325382354368559618935747631551001447722549840536129333664535259887004002083007686166540057056488692001068884451753587834605209633125302768327197645704435427371591212748058471477258037595945021169213820647131364899530987078796780432433482506133186392936760097129173427406415082653754126472505334851309445838843180351681014512164383502840197155985384211602321823771864540669006135220529168136499499198084026467275997864701279909977213582947332677568306586683502274263060078139355251212275736912390641503193591718459327561868008731934780791604311152598948515696221419727515667411581520920925698243386913474434209452457229471565629126980898794416235262544745943807442814578436177530547777898254711792625950985043861513039964839008526602043516407352158124430703959672185865060936787446434794203840451389150190465149647685239691788902254990456367284643466324791256581379639311125757540503233821657275322822582180854279032398962362848608620009644757320037994961501659801945319599636416621710529881209392103178973821422596714026882212220110523221281699115215609168752970465928068943250022650323405998587626258232094935133497148146715789417521943137667840102941745798607951302560710716485489388877604777824587873708251530918603433495404561973583373886013484302928026203885577040517821246633157447921709621182828570028213898692082007807846857683438493564111285878932779742384710848353059410912499440622559031035207189916770430399077498191456560414491481786864946198733338045573495582383388401500057935012107827506545193739109898688430707528796069606003983368339767745352832260220524912826119201879850744980337839001320450664130251454744539983197588360982118864051268854747440228990350707075687776339874623169413701070308840215912637709294542339643737707047789174915825934014090253812034188092506469115295457315725894235419373727370272384183416630702079835357228018810994795025630616875893521123564873753784136864363292770588614973181724572877557617104300924893078390974971718971727019549023158364096944182187839568412185703841698363740680182259554901891713247014503049349005121919418292152403378226516213849735938022433873138617722705000994604848429593936634523911384181766171489794049015067710913130240582645568025052511058107061363525425301454736106026096695499013847441857299324031532558271232822821390674702818454886280082462941291306182625820853546610734795879956246691781867017057734635669143866848022120113427505514601141147007406082197629078609742932374067703972620566366163365818651819684027768808884521360906393800902890939541666579780800931491020368177514895081119974373835037283572018196428130583336090824945579700825736030521026173809326972275271924711398115196970686746623506052127874103643950153368477913694071701752495430060634665429465108584110559365334483606030004464553688843823067403630605322409117345979443686058665510118073351962568599169292281431107519708455111549893702328528874325929138172473960885481980796920482508273903752530593342872259454204823101637055173124252690659521851674437927512224297658096617615349240383606039667182234814214426105235000735128821539160710133387804124638643817206852380375420147955804639107959321444088249674173341600203183800132209560454685365197023751542464069607517371101744410358825170613649939169751037027445970144923452774177056154584322524054249654752821095411953978411629586387440649580561273225241102724677049847623458546960740219410623801787981130774106727398307867970663393521976945022459518726915994423714325755924200430401750415030158145242828177451713164016946753876923984074191517832894502828863018826243477372221273097862393459637070054633531801842138884954931935438918043041815571661270002431279946542582638185892758158839033675598249385778225782499941616261558602184619516404303405793844893205087570995738010005987680374500563048614290346127573672172475972484353464224480931303349360810926804757539239918705642929444746362499870596878094199018447832502966199509429052174980347667146013100261159032276221630546323004673977896116197763095142342195073735312883328254481161374787432041128535447332922492121265834982720602604307476292685074630017251212688835227650867787962200659529729086822772303134144524733465000665483196313315724939740950495501650003087469519640932245025383230069866022900118142545948074502123604232221718078185467667626589139897799297628157780887979093271252375968206002985648709188389698523457219030958410815208992039035470915918961140950579318553873985641796073701137397148784286028070560179104583778972629737161243118706550699835161052852102482684719459701623615043801138369639363892845417066229641171884943746553941108256067733253019127459525948004417616704803567289332106375040880952697435673839852028198157074820093315998793475985669823424455770691331066390666073300705008245834984066894039606527694947276038445582364775532799936998787953160332770955549128874583461578314337912026382394076763513276469173942147151463810391171260392007637909879520074488709776831229585825893392077928842438917250064162385999425306314953366787592041929556925654905890057692225156786073244958745224040855092973242327447256282313709023625344096698836165066413561660699749300954815077413574123314796429872938729443858653242484964385834099812969126905732452189875122812579980052548410589672020701559269828693663977908588901761636881406013569048582115417935361725956038554206713940717934609509121667859083433406149878292222829352216722151809078230022947927142963054791518292297411229628756216197749951193176349570861364344252541254245113368169056728248142560106102892023245550352059112733259495018113737807333616017431331426123662814522749300559493481165913169413320533994040613545031071627621024672599131719046447577210564765215046966109802790462108889868795168483464696910482590607329693643239595861057847813481821171526377575914747195283720416885703055597157377520626437505950800481518448435334104387247029271512321652138013553430882453704829052815074476166253327849460996775733391599397260487371872657754674176391947166175567011923776047976672318462924520992473119939376252319888156367218342875094759777512821878440282456109328062278523036950204786557028517443811071691264246367703998759741333728363774142692697078236053821509673468974713243599624298069529947726729896599063850244684129643662779236911891804818816250264154157149790256197250863797262319452080234288385973177637181302931778881827444401362289249414915213759753802542183290232008881701742480127082139670853062275083966437566598242861421573020728671508338896078595721116801629038637137421986655961063837973784428503557054768467492592319201471919912473980845159999467151722456570263749664072511709476197703303063405665445925927181162473029292916325308511837002289190525110265545095284452190107445011561260390890150960195834406748483707678399458336640062490828420521439450329314424428092510256223123816096953265489562850510678137052037639196879434507440456281272990848157605915567014744481962147742410741818253822825678595051278909100894499409619185510606632285744034963043555002078802137113718488864987158531863567482868996099580715405142944419901552592779555003247518081551482865134419366720824595891784109657290782432770212601900819825631989171427957818586247462151285754292812852285156309234988394781320579746126484466206234067123649441078153177775111430904511028320527378815547470197658846686960842805652808737325564945405198431412338491617184671132221328220924284895375547090670125679098934257044751217891847912109180887586883544756869174334339009324135378497971955537621410704578245154649510004191635576223667793927015776890483253850028944442111146738283882101395952808626049629678142623677350528096517798521013766295167493117371054109648896466595048520684134804754255027886098967468223303022607645307107045000672553934250928876263755030804005945711924744573668172157922025165382447751042927295514390107882017897119780640086825674102634635013076748059956988210785364841428720095644257048814859509348827287425390635000055708645837269674739933386074705046886086921573572321872622651352438044353529568538633458183237411139702109853206990923708332117796563279130054567747762633514175022494320569997154045326675196285347761663679582774366241109082421298705747447841180232005052195351267039412214660550868896640932736821242806984598582022375782677906753708886107398563332468046649243648843300941887951604316504090660596170212917659585478306977493524624501419343809280796326022564656945297628932384198660663777468069742744044883182433209930456128943695465080710206487106119013844142715400010515423823460528433458370380656064125025573892398065930816461834126516156046614943197777949060775052286134334597419671401033702081745266931014480866556100661993528465459193362429982855206686311915104647156553441587440852258633995527930349755752768068634756799362144587389126793682511659042310760553119629858855972253612949775018403210890099549279440476454511666673266071804846868186334710146051542656039083015714862333567635807196787011145077843120313165958330480850714699617942353340434236090310320360231408172758182904519249874340979323498830323201691543096068643440670995314682942540656916947733539161166309072260102610823671988481799540112175517831372909041997974592637899382635362991214497940641911176700894454240303494735895073362566518803377816767036052366077316351025078291213843615755303586206394665268771598480712335815815941569970221930972661370522245022719831068802917209070916783853563272824519118255720218109054608262033428384802969846988056494350664753236653648209355001999266487121698549139611028304389259777573545092212152021842320766545895563763869765610263734868380020730250606186867779776438824584434523909266249062390029234919110030063895363281812008703077792428647039239183996844652159337860373917133239074692119185689361781087825683710879586718020492861981871000805917663486036565511759458734337255132419271629240103999712150436623470662067180483135537534456883851210578132144847620442836650844974191676005710614313182802617342136622495820639577710193386938906876163090420401694453653586847713326610519107713828083465802648517388259289860449362478556832903938837005118778728042480894922685014609787946017495583796982054484408018255133130214969146313072710433850993283664081129918493012040757634991779414823679013385307017575859413803774133077959610287236242252169174984286736614948807329959932707550958849310331590825805511433032465704694483333865503794885380598605597784002231974867165799599862350903999017779822962072904734965127762357483462613761055114236988423843710944013055169120223788376805113078000762621380100298160430938092091326458227237011511872685791833141583743573822143108942859655617192845302906446991182583537597524141539159590844693332083791528510939607961149131991012768751708283870085431564510283420018379832365663017483147068840872704835647428397316986562664285206359485505600542438148047640406844655118033985803943015397483338796958480619387999430664568701723069788266173817519484159663563166803466494699990906099461028272721521647827507506139600327908826969210868478355531233755332769879091176355310082237798371974188718728688494715102782514131176228620221855268129117595438636169321432738420147972252146927704225305943203326970261780218959880322968616235069167243390178614437704312776095091971703310656318418417359620981381909779524327039641949468902640604413289782085610748126799444205375673902035267510365930434013802715673261766235656660178203075916793354979877200492290249148700093695739520332520719015676490089645879176630526482344667840378698901027813521862072140217541919040346215847716758565888761141934546447009428808485158259597301109179344471260630448367349865964037023621081125955251988602260065681789157024991820645741336753639636036666882811677507667973135095005592890875522420693335296799607150562547440505800041766030572064468479173971982193214038230382828967197390027027693407630756840670096638407846537372287015817238034917229840028579395607560442251208266153975192698713483722634846622873773733032238302291480612458307796201148218123896535984034267966729768123599078385028893107205875715738562329024557222204959821766436560084942650749993449746063864716685137192443191705364583157944580003632183536549589705475014320091177788044385507298696050701300219493982087250168358942938445120526157809737565371735278161696359235661869720600342947979503473847511761838381124304962372995264729685896379407622249303399081100116616402223714872183121968729346216709814617091078905502313838271805037333490611994378339255003748060828585998709498973243735904785452948408643143178614629012183785506975556054280074858934769833362672068385491925954008956741198722420261988398236692388574933303014801499253293969853405119615410445647719690280795747803098699057411164455862642101570040242105252207232389304711297092535892400681062979092939178377972971549103423131318379129112749069945271731942139304667617536859872556581062852807507657249564215817798911373568379396397571825758951013272542962110931490554283118115685924718149011403919827145733544733818618009488065541300127581373471031562450526816533779618931736806891796891071344466980397836254955988494229497945613663045336016467332018231597353179646975548427318996266589011618528834575736248099944675843283266241247085367785674513889037581469064385968375241973107388338193651548682615179212407074406058091411627148967631463911403004434065240585685535731963383984211888808855515265336587572222909679467363704689245987654215840414889968499861894223100874408620404742678837823061156909473396748845584153233353604236204280923272179854115852253432175955000423478819178884656775286495819269712242735743689906335577378285533461869614326436788440588923919627452781397472701475152511961376264050225546811226837013394820921135412752704964075356620062766306477005349020282185754059287508604682070588453489919816066650957179081456130371762242957384276474183377675498409401544406975082694636901624637980625625308937403955958302167125438732186038549497386881407985391191158683810043493955424147974151659662354841487869435508033841657226007802725600785579631787474677342837175951589129857858555154059989860138335250580211004770051903844780011639952772339503317471565939400590664833987733368226510998728152976070635880021965847032519115524227096286464966115629550300490583745046511070206151899946644415750226601381947579175540542673156530198273027297530771465986927436755054849051939942879202478479714029731051828284817078757477451952955653963804808097333426325370277890791221861032148118399966314187587011767196831450635223480197851661425995153735073077704213414552379498538947094833239713691349418814135578358855292720365428925035948005951879906267040509632354899311470723047400401347026255084250601402723546321599660720815421651495029264225378194798750837135508001276341420063028921030061436578713945150116037543617760956630284473790521092710676201312891462466348660995802117445922996670313258153943407711094463841892987382016553746232891001608882355178803848723774387839604468251385849627902601608707514388412809405300206490525976687932780540299419279730906850147998025746233436177150506766604944207778833971078641413972825903951073868293114110466499406822473203631854401494282317266056906554593894103139557369601132044244813078309741326391591851551954696598486839785803095585634719412720633425301836649470492514560323459187421674817938820613912210527329444763783691464939405771268487244445803491188463111484135229151485828516387332029027849652544342017088820232281584685306164185012779160242655892674141418927941210077323305839928168797198381369125721170907354701900725435573972271649290191955544272866102759841744370730776114028759559975335257818477465916342332681224204420623296375271694873748077006702158790759279205589894395120789088849164833144122803005461015684462568927565462021359035157263442670475786458312952141609281722480190041252337214572439886567004088980117466504371516418850716413863337973525142919940181485379960544816402965911299782707442632426826251865218884924554048017675754605790614521484434597439410979012693545657238669087489137152411861483295932646468300849965815429795434472449909653342554780852655200598023284825584108907872318011260570011171505487430783701837403003601809057819419272892659078440362115010808280722795222753612278608117965181135082874847041514579316795590054729747237712702275250922583807994358233587789746997785314219269691016408467081973187637029723189535614694992949856712127755925978095144182786301489408161454301889490861918446345875762928039273809467746899289161542628933481929286744860166296654199768943547390125212213274069566812311344737591837308511748471487442141054713100302800605220441677465912368099977871538081576543733966034535874626563488783115529647509410484748915207446109872822161490493607434548889848022410048884686617559447055784624898778185695703679583869484643085504888131540272191596723105324529818192726365058288568035030244403169343060210363869427335771281598655877664034639133111826836413628042592330956012951350840860853482081040511574557661500343751513867521969830263412803673025833642902964412495480769901899430951335309681004131728449476275188690866598522775352634982276998934101909368207301053338619649925437245775027591759488640412641016904831423136011187116844562344142115093772457450427634463450954220606032598645858022396602040761679189365951980833418712155298960517887822549975573460835093413007517859329980003707953876229848827499486331471174814075304275859254926399288265294996983974154330496073161295233721004343073668642354868665213632695851047848284388129587818163634839866368304641138453635509276185249732591025317138239979761556630827713192537377897887982527666706973500819228653822422456828430606189667814488424360540873567823631671374337806089256697014926499639655221397811286301523177037253162532831585874006379781261535691611134578700314487403249069731470791598946998377625402040479330887616807948147008015982226813921791330628302565827765402448637349003556680665246739046506758650000760473473485586681119026842756085698422002860086919642989134530469105113986687800362521645293350838900985693343827994930657131346168846096534240112268594167442171393794772546401637354292313804855290839061396452210234908029860499617443612078371100576891712968412226213879381471614920387593775307210760875837537744783695466616988522420608429651190872287888971002342581518831908320339151666704487923921144834572011092699648277302288877791555120421227305483094430551014780108802138440854590985898606660586276293345599662270729424814026965341329876283431593367423363448299587800350891469548288506347434492282578711272924281995139500473551583604922682549661748607597035116641674207906271363558252732744378069826378179038255708063804084606300524939848726596840595793219420557337906256338074286065775816844394325849992611024758190533209497055545687130253228560962975863437305398220418825131061043064878195008799691086342165656659071794248317877274077012527883682034143050861519031765450069336093895488896299137282893116727327586304868569172488054082383172248772256911738637121855108894353262190297811312154091412557992601529967401876495752571263819407905096848585907183933829478251107237159938818726486484562452818120742138047483339171750428031311433764283969425310878304489631212311969642977487040499711541788763725564329275142714276071733568284421133452317772981964524731559479401616569119421479685961038225516196946349486606119676349681512370722074079722559407079068137167451061014985220833891803204911492479807829847153772600853337975477243783590675447524783426562092375680370824063811223063064552499365040892339350304729734420758513837268587591117096833512973844854468087374329719922114393286852173790337556530329770626950153529039862922783289129071199555307129013360709614469755696058319170472864147546363273941622807209352844629270960707269778533222862807523135618451912384506049008508460954978334590822749695593600236924481718239021144796452549526441684444090288826944396664781019578685629411052313163420173513893624569595790841142501423462276771496430877317810085549480564104947304637849368081112980472853221148244472520277754056807917831970740742634067447717100146563113125950918428810186814403143181625682797515299227374275297163582186893070571941243628704992853581560305164052429232260209973231564344994080677014614318517525039037488798889048481950052706737801042704572521724806062793588632277154871963422334507009895713019767075414355076159507040962049715297409598263629460538157345953455140299359020130620113563960267929278209290380913479095885121079642812074678241431769687043459098927483432886354331104157194153018135736186379002409985594163907278804175477089298636621376496642259542401009281584702834796727203803709418424827911884844539462142066931110812436223689748489344879837207185517296698183924681426449759396536415777911603743235511696613237772736475797837538807581023961813819829849559029354961471515166423657950047881621627115696675854242355570441479144467961123242031809872788273533030592893844767576610170986111545537921414026735999148321006586182445623812139126116292584561306371653647439019075964698718336239377562024051092541300379659758116295343470777969591012865867076879923237850017461923475048968243777887119013594605003460405808205432679985521848781805032260217140723706945791189519951261885218956988733347702875512813392301321430277885163846391183548860381253201199903685706849986708364197422673000928675180404254631602647194835918630334120702673936328096521488395182743916800459411816374001285602933348172698837498482965893623945255349326589248061791584445533215463618961393583137173367589380760996067499801783041621640320377990597400355403771796949765382947425074053287002634204877392488005640600074183969535690620313470744993412728685244517635174585976545054860402091483086400171208536083262627205747943196960911119929543454399572821091977498623553639650104017175993296269546512608596331939598891984284213771828958277188634622879457576796724892168273278646316074143143551861845455718253994873896206237100980309918648970545062190658695995806097596389472213680139182326171400014008886688383879090245547325710385831805981845850949048476138309072270774423780782293181135641204032413479381044097949329360677423216164101851126154535302603307026232339320040902487626211144540533252547309585008525064424497501394804176272822056923269886198072517832444561199200743117718673428659093222783923557343938987698424569195110956106420764056837737506280676734176330046834124952284357493291835587231617504400520631819760273066768778795828655163665876499527556587604549835191330940590860387959584061017016578653430696602604056208397630256901060976586705004729665645833718896135954426562383699043254285818094583634906604467174833975199087528977355266381244150232663640507849692353101380541076529053370022109764336692902563723336262787719627654823867089000890694648508527957140880740113670300006724953833934893924252036463676340846440029056543091497980640341435558062559975762846834365416887015267521658116582902314744894920638013990044936533098024853266177968686032027670894781842791803475348660189675901071725094825917120525724104217936434263747647079891558531658757660427452275914512820644734619450960634383829155299363871117383703612758283143227827068722488689565848173459531091883489573602458264248878635409986428304827726405035558305983807557848139375753604916154616077981857599326020175896294550897588441021454904359976737914224434969235612410425397699052555017933972905606016247798665712334626685896374266425781619022899338949774662294510630990025035577332819416547012306829458459942033484512446010185591522627607642231023971921716796788507209973523491850367544236909812231359971184718248762525565744215880027232156915049214941534706772131549410181634886451513929143662199769801121413356805169819157874515550655335420141377135204084110878910150873819020614149381442773256413810445112103470113965492320240186609742890478203083602050991500415031669031349033478431205939870783668355191502912087870865059508370577818202202495039131958494313519830392627245424678818758320045517485126132074918811826074835459550473857747837421030869679401039331842565361504002346326113603575137521236497023126700716243968378368193288215903556346263663420817910775204051655745344405474532824180047415399015266561195784227381106645208574558501099706929253328672952573125024322188559677676372380348907369133111463409174131933804705501416435599695160029558336868908406842202227417442529682824890920289797487400078316181273626884756698498135540081231238619740376362095881865118891493017415420146719658441756296227829448126516944553314719588658795008988639941503505028699411971144329926149757143892979086219672933102287464912062512012189461406963353466876130974141353929479968032493325478310607306984418894726083561381055747749204582424399038489538990379840569093953353752212476172808051796881309448157001387862337239417784645684748001204413746986809918578901174592136492006577021548680621134445621618138843073413258469685434255796492937378568722269786830889442160309988161654239138062014022840004105130916607008331475129891040901400950394573606423643169777384202586791359265166285479848342434986277793643567805895967312774202850138958453396877180643988002973131198087607479579338742120456636200780297179772429462882163381495579599112926099293846157736000990693548108369303906847597146236252788524626410586082551279925576492535637480523218323016699825111151445531153736774821182958019063793454666536594570990186608514967840025287158322567994223334983812432571749057499392783669482678584699484460405511292861225688266299642285354852506361903961233758939094544515553062585842554609167073350993600302573641036083127933328367936124285490953947009743505538623075100523307214649473871258094806620614663446737956026043331521605953715553454079585938187101673246874739751230602125532159075256497964041298526217016693953904572431766499932332040635817195901253398321639138735224262672265854535793110357066290553525638865030774813043211890890336034225238293859535249700691702088647110418070409645312727044366316606155371264905922526993835658463596773883055237349738417379968271294796017585530947450583576686730963676119369562587412467621542844561779176374585192298839254168452377503139579538394007658129715888953055852903792523183129129225239237325670522549332198402651557079142065435975516409106454856012157244263358024705384623230743519379223803714424520911217632023407108134753181096505139956622990933806793923467294673556980011426668202020675117414117002923345667407868108415358972179844391403936145009041568922229096262960841763056018068789838202723539935268447706503233693544661784252558395704289379576737822569446065460671469825037965576223873751101542375173897336348345425404533432664889914799323897381425864646141943167549897090543409146568718458751652321107257961436667137919725127276724715392037990968498420747539148622916437402997141333334442527829271650337980802310341323354884189510574535751239805162608595346186564126539192979430276901262456345609188832194278253917981628280872409359222239875591248787270953559299466335457810557579092859942402365125139478144082860045680732344577963670215638973456204939915262793316587324460729443981757468969392015274219637284558266156942531132432763482793427837610407698802501737545021641270325677944845177295579576768227654957722004574392911306142529956871217463143638323563388465528990653889360451202785269312068926343856561381071665882730434145258700833919238429896109594733619871991598091210243476776836121931320637930895344150803953083566514580020628866133000228019185558669816696692133835122670285765310302134473927917364193441861296226561167237919074681863564205683569289292088214876649658379797237918125043391308794412343047036869733746888929007686790607038651454479698342103997261191185842687418795211232390478437112898440403193228164605324602434174274906231154995927921416852391840466176317328600447069747716298977118789936057218259354290721389972125124957889810159275759933303294062990901609662274250363965054187953267299917985142951111024916994314715025488658024970366651700988507997898666397780707560862603520582019467249472686077867457126392460030980264355113381448242476168949682835438868473778611858452625423332312658497184367792859695112282328464902306377430544303287214931540973829979231037734879668093395759931964024617620260118123057347893831493811586547039578499030317360576831583527677398279833119269456441598663645358630122854692366854926506562922529246606021540914272741024735111584852671767202526949209650530872802385872979821255216525977294405911686791672725817687286499896475893472438787663488156515335393641963973112088417766799565219913531696564601427058949487406196593521161913845585865461426394220840087343724413734565558152899078764256270894852128830505370269405992641466581058436616654182636847371111897117427273042015508519609247056579857118446445325941231914011957469797288841420768455291051376615265554431683669516515700705321207039385306465073596780302582844962583710105130023010501366041585673854442482425678622708594981525828679349160316832349745581342922459262124331762037277287850659935369363890007278961534684982086199981445495520592665497028875352507496755095468485769021975721626100352970470425229182115256577135567838849925780685522902567880810522245264350835471603011676411082465089723838366254461821008007287553587137342201184027834945315630924532218888069769303019528413083832956132215035139527278714049133729698009956923442360520827659872791225562439735648728344885162339317751760747453244991748339410884076248254922100355630001722865113477608612676919681610904430075793000488038787467465999358159459960958178502102765215258745252802178590829646057627894852908915623103258794396828760071966754353373044753780593318681093838555040304468817085443017859698964700189186711312860101292436471405454613353165930595065641925427965519226463557566580112514819726417147359512731127049965772560709575771887029637080023523875159274278112591119097356478661799363292970935237634805989057389423653799825329879145128276916697816783329700896286234602576927937494461637621301797338592664913873927459459509289150232037019664969395242110548290617412838438150473552816796234619486752315749653647878830624541739114716849297954274464715816558865809282381471115572945518805026505094343047160414784497730447794790759093937768441449710001199643855720774179570421821183403527272474133943066456975088888611783033049550077146794849542054023785431496915141301166711163931869030711177216755650554735367986135337629452997674423491123033016364870406645569929198638134465187896636351898351772910548368398413849097596051337284829589047193890009931167330565799755314289338406755227172535584146342335675096763004842982127444065571843765628415594398971999313837647221365547028805220630650718327469172955474843200934038059155614595689343843857326210166847242067428875879251201686946737998438189146998570058242531369135917453583318421347934205134612677647123009477048157378587271808383543814775299231272087911655561379283505392411802175761832722551894321210179337242654956183299817650163523505050991083221286319731930939848150345103198375396648951508714200203793643443366473558944318245484210092832282961305169072171008304120681965521296398914241356121999767383761794428769715387291418427767299941893480997221187441923308421453658078379424624138675954051364998308130470712742693880942157933021051845196877868895081217320853027405346278081925078787697719163118024089171504137860508084718031614017422907803466705595428645426824179735933909201787326512711492560602316863567560061003667345738013673389074403163083507579818927823786357036309263839102189488053323077853135745108689067429056493204435853481365629240728090068443915354757998717607514698425550268928815396262759318835306949070754959531684457162097369436176955746611190679499981439029534770625380911263546509248892019868718106655017477014810212361314289142538991733723069795875317617433984103763761493650656001947951356818611122270146516060490168142857181842795030250733622795459299832259985027374181722192523424431307988117036418209498673858074324026886689451896755082487304909818716586643663040685086668049585034084043243385509452359492864650924179122567574661609272617068701611030470392879084818913201940204933478263337851298098788617024788279437713088004620939639334414574563327880214970500928801862168601819386132316566514329849356581245199399526238142081123720708156718934721406496351503668330326372302863602765531619009599480762247391612876044186775717702181423296994662678211799036677940610014922996599303629383514993873917111209276963572842255991388354389999835466131128467261135342699314151602039978238730256729281474544027573402168493879914237351292304917493703920680569340584403501559711657987410625119618804522769704214716924074853586942045715478658999652353370143856246877582800654815925953810586143023498262779254678546241737597856431743818778813703740086183812967026097383750186956420409807358420352229897553458718667746035321687472886472433558614059788532681700790682740135674871003040941829208538710747148759713326530068800828493919250934212345766622315542269315804065136685516871940358243409764046645847179025838988931715246543931889827346079372699618136305761247848967142759404377640561728011229686459603866628150936197431858231638265440789151652038210426347753196722704198395820802952139302524946175589670297806585561285013322941328073213585734584401375521588530218798914328815564742757437016610483754145570291486997898275367918226407605249671723816972348244558589700420125239119756189852862347339908759236275840605478813946099991376719477489148363546474511233711358679847042615974745530351520164967717045814848870821532493540529878544068615143576851873359772462675786929307313042741126552003532520436935551497784448948196455649114878863037964120285272463969788547153093619480369113897052929688893552030347727189390395055352383425619967972310209778247036085139307927018841445407619757658907205062639359890351766920611994259788175519714892529950188447991542321276985365966800779086998788859582828244534729342796048566117988519644360253104084582306490437925744121358826842307175470842234164276850734245446738131965155714308736827887165174059782682809915923424019749598109493369207670343535989147091659568339693291648174613354729136907068980293155186177115163121872224275009512855991070549278202869686235116630337939373294862047390447094918663788086956655524823643227393288382201473700100016340678171020163777208889838199237978846477260183576500393763316398136943748186310906814228976257198853235278471879904402266109097399412761671250950722872838352004382801186040075708676739824108993837951660572151611449489989896803681378299314824932154100840647716368921828888573041627993881757305953308374164331902739677823920867213791253623122637343376246534311592224598651576953545797078614242115421687348855672973854415738901778975038044658492191709214008225604747235772248589001674546745316506238563012147285490249494181213127935143876197283406347627291245533790994250681804903620261300564922182910173043737716967572073644661618124305928695352294338859822382070842476016476348369908781950838140340939876717805111010534327520322069027952007862743660561862121294957718650150926528315554644243793430073830606756885528141097103800767634715433490026851300083465212059976543476127314432708113360282460786310024238066282886702953933891322042466760663723601567876822714634207188957382510571955496275849232379677015196316219877384919847484946403468979221153558525026288377930582236639356986631817176937227551226821220079559581849245894398168703043555069626318652702302966073024791647094444544600915168979165914217040597224622010843274153343785442740358630620497929191483115537573422295616815411162056464687211430883887822483228863404619475088229560431069398952471881447964131154222606533033050565815589537287584430538336025033146179074312100411888614701528850320447924999178716183824034676776675394224267656227980400034847790945832328399095959594410028564094517989726450820409276453380678292775773172827422953113880639311173680793469993474796844352652474618393738881224344180365818547145826767087779029336207874684195711044191442008364620108677483072647773094429876952088689787072673086868036107437078447931152491853161917625611439872579238811137992707027790562321074218801255926517553276080537619986295026230473979979344772242933334058460520173572739588842522837324653724471909839108352014835795389668396229577586442746170069534639068194428944494609848851899724036724879705445584928464786348819538694064325303690740112529824738980308396624203003085711953970290206810007431474918286950443268235447729642415809830724331668475888460426417213303648708848592678483371098629909748356253762704309503528310617540323498695859398313129742633188718801397807073915652600108175556045597825812540357616428406397795420059299406230944712277476665202434709322016781809111875958945301353907236032853378155062160666035702930831234794918794586985432272357173565651510397324897190715065809379044392746109739651892699641762415826473258101542874359849698246741909807853898105411298418444774008758398677646136726518330723467779319527844346064858323651222917085740019502604459725412931759570555210212514961716489197900029132520355322080313439500239750251286664737356121495575911510925343123451490401103800609202897600896364146738834491368359301632110005040258890021049497434940123120752464760244437020334345517353963014104520943625029047238011453634537863114130391830884236899035924509328127362065117882694375030582860617530121148869399754124973298976308687970150457960077304658553735331420124276005106982199890772419912999344347399373327427413506626673412099635925795745701903581108802153257744523729061789701199576142121001272029467528193255049150243218850345223638638810581853029149395056233836990717006740705998154796618769098583720231272406370484242079728082931927633309137321368196220332359126298352754795048833316157554673651007606676822804042355721558102533299673460676147237234225207338596857984223836307275699251050691687723040125579451754789216690480464005449659113008055727002947976944593577214507896164551314819050107279815409300023212483123342188159797440746898315502940636559585543570830057241999987398877807282295143422667176196342380916951728114342826575435159177987604558449318420871718973832928835466348449111506868693455037197505453528459401665650571490351650734205829377392169182811176496689740460448274235326419457711793832525140112576296097244007274575483269169395735487949431271000968901183074524594521403971058053751504426503323703890661531404779473703160866145860085663457876714542792107444583481673830090947808294864191811839506902242570076883958231485729613514853221726125516525669722355266778063484926461674860477678762038813866662433601604057586717565164994388506225954460073620770271832049860587974512734234705012690254680291600580142346563089645554946402923833934542506687684715155970971146048564721422527120423960774998274812106792600287556950563443428019004852902534461545613399329076368826312144602073507043717750701627608085390607750866541857805595904472351429212602800949417937968757512865826285066369396850130515752886970474513423131125379584105746495659268653490520552605357119962169972699127011095195400398538755595193799748968746317498571332764071029095041344739455500278471310268672779657248915426821555560402470799915945169175057159659271713725145614889967437679737770040777087332604856034071158628196470764148351586310687467348057823815328554279621836963101012351142051441904153519643269966901897344116196333873163038476262065541031980908366334266246237098971570397493899234789417536329718586000112214021515665577947211318176397195711371569425843687647208870535003467196664618181635602103589322894275474946155949216537718596811471826104726672112176358874870093400043408548860500477046312648691387604341082102170452748285854626137490749844110022405729266758639112983011398063654275978970543296510404181624280241885333342200359810066458567361265368762194912088562834841097987504388736173231662786384599256009620222224673040475009946385256213643529794473700525736060419187984369961390915020170229369432569655374480519053404004739804306602955680846698446216121385694439199569188213324532759862383455210559961321251295418406413662874269108053042363528809048534751595223104037271681073567998923349583148346552438579982724118617646230192961208222704212927545418277693668223464196035830363633575515834766733440739430922635658284745112623739579676833862396716313287287663664075707630801655194316087799836184906069972895676164163021882034400467073426987496811417929641983881948805805852932378373550924426604035554633753905114302111851183588635534427883517726552556673001210685823842279361772455825289712290430137381422228593150356985258837150499924815397478631299119884289257384727518301247407846079697420049278228478418380915624595194597505940618087384316590722329659165272564950047260239737085257531583780232983023831232975413885286797631882965088488710781156494488948680292670785957199933744006408168706681510037654939273058452979675639951202688185377978095337669941697233627820496605077233813103252547703255586646339770824395653362131848084979151460887269697723528261174977792567220763583507692947834352121087646625337868609675080035735406359708243789878564643220421888156609834687523872521122019383821996668779936616023470935069888141558169295597207851519273334227784118941306590571972036432800372411755292062832392274149965745365686449697522013127704776235545940398736811465418847788200315008790518127000198180496136959906247916599638526327394870088305788011813560179985071278976603247695668348958101053536457596434499287097738601386771375815888871114684986131199639725511580473846990895700655621093732298293484607788900984065864788577231228638984194097436386607655080739625528737287850876747598119035937673015275153605064751792247651548826717061600497157582126283695400772996848830338035832698696254650440650575738170997522989467078819846146009473383554984423544803067821146359825138322486290094404397760256207222739324250990387508751278092185516935960728618010090147953395552012181168223120503192800358739892284800146985069147585922341278772902946837003957111303811272224196033156395898567215905047239536682690531438570721592449639894958776578650790006315869866382822403104018577201741015529555687374985564813333040839507619746775586016969771800187546327403991058692286278618520375096693380334570535866445650296622417462690189229877243182221775691071960482134978096314465253761002869139207549760754875410955608548506647730237977586479483646730127958437442015894512145930953590648082580447619157389861443344248317029470469160891002861354460778671970033648376865294889263713632608011880531116847977771255392742571727251415975800785207427840100633606596968007122595468142566378219114635565798615535281468836068543021489463735875677898196434154942889207388424949817189813764218572050357534020802872611280660177556383475782648619173942634937203844666578360894544403698232316660856394510422384743200898543114815960057843708181389544217281244671375004006903554016843343184522023340752912525403709413442767002839099561550745339849213638685559113624451145411936583850517688013168183347323333679396393079809966118113249009383673637583483825783945698615868922477965477177989192511641821474778038263348496518461327880762522450728199291525360785196891937838804474054165319254383135569311897216306624006480161994991475987891851609059062825400535215299370303862732993434950778833628407821907283903309905307370607311335910578522919202419355704396894173963404405316091684292066398900457397386397115925438901031216475897686433536666737931978677083253616901211775064208594979526032687350446718241002444644004512732575781199979448208873045171252400143013771352350390403610552061707537747296390378498292791289832930914923717998037935897620811845838215102678416322403971024030520296587380299748641372326709735211780395925350791906442250018126590628883583741466178873189482434521648391516582551554690281585673050487036510520028621125047915746168802328395006920421753571233018709973901260281494141286629099500877716051571400368295061047955222304663701023213155388972076140459218117059151488331085632844368420075153263584452115685647803688546837951905244168333544996236482711286077504006202289569986719546346232687275498912091657156864202385853742437126390802193360489945916955367404560404199040953800243240725915749432345951213481097338849724550482862996568660560831730632911414121518825991102114440785100048373908261293090218777884856660784896230832768106089813057022136950707551364422880293322560369376659697904296496580798390755114805055050910401457223869247871379607098201991094841786927247805183344690386678517867552842345611550754281881249824345701699339483186738886745957456236072185660816032880965740034141905222493602299523745622685727280448295437001882061828322116329006467459637804064796784490265734048618665405355755480204548135341179330215340129629236339849570373532054348371283038207301613446095906356190901246586991301162608169472211788031705639562768434778581383867643380352426239352760638565079085187005649140958253108357580955809411651227368778162869771739616480702542209316139729950025180759107730521890680798697840284066200741522217714266862751037200894347034953728906145406851535160390082967762934437017579967628010487978853841000681260778251429004106383529580997617255957495872915351687528105787684587157067176841512139547404763407539008818524695361940212123062891674319919996573985589903554898786827905315649860855652412980135774916387907390113257953154652754604125099210763974273617855515289330488590220575697940489605452308120205062189032758873139561052859536103006677832109667469281966546693998576099619821122516513222769696230936731101844878562903316650384011183209040369682549089079265047425483111303129400958438453424122903004739062363201222968074553874855509940134255950789323155763456866510143588544641424624915725380154182394778712255077627549181607003212086571715735023920993802534864287597519508061303141079056676337260690985353847016705959765436099863500271000325133571025037548537438042592097440888723420662544830822289690388451256179067749944015141361157270394438088750834428979755698764757250688569909066087474156949682049463462247592132979691922700982129832003978865950856165696776835131066718030091114173696512197836091704063796185570709622615219246452859060450880815574415852193951178582409341851505685916718558360482879893870381524556506795972925307412879377630728051481335151508643707324675202430459755865629313093979269804269586816316258915986084491110269548192208306927871096373037825951348687343279306868113764630086853109240492961933803899455393755533904808369011158935143781715903764050849846773740342105588207384474988823785055927083567469784901461371939843459758660092985352584324255024176727273971321748355650480258194261806219073474486836990174583914270351979314709949168593973734382095672784368374077842279036165215637693840047467298592587652423563022123385767949954806156251258515448252345091129687000199567227385195590992337384117645285312560963367237537633658950247394721262992768127988361656328607736056164082164862409630546488977936305106506446008653577282468294611944536003012780856267424169910678973078318266598832526228042830483691422163607203797744471539169963645112553436598298043569105791175448498072456276079631769488802957173137747865937050733228586461402608517514915895664349815196689720937827245257620472910200291504396241094546504266707116650054384843888232210286246931069325417131825451280841434357638875045625227560034934611374616961018323732945508101639776260595923571644514317466102535424179396843968755668676720890797085957525283794629027418131864192012355868544091607613432209621823500486454271585062934211281790311253993964932113415485488848519688998620431381780704004522681353900611320138996544584608934170464646561351933956413620748184163619142500283247211142699806801722723742562965483360329471472293907928683524631229103128428740607128507171111238438887237275567366828055199714092385878339310737050955889958426020365428926641252591550720681687675425121234599083952309541408524469756467035167794416155281600136251754434419781809342636274654969587675869842018893474140179389921094480200020284407952109521320956200726931357401367385097309500454386176697718581257479200946123132480766971956606532319199675908404928358164839922265386008123981867719086388457114003850544087813112533810931214941069865768914330032285915909418725637572066223258068235231692690493586805935369739424275568297003398331849669562418943147397479804525723042718971633962189360731604755096931399994727640745557092603624499317268106965234976982009009297860440663021695455449098761500201661238629019642213116217146080976523579482843319726570939606732031860891299834592309181607663764779150698293654283326253121086200418171533464861294051067847255040687648793324573412994801567640483435760801898818519353019842001341735199871297324746181271639390196068686239759951051389818421583179546522552974445383237177373471990648834328048434692881209373690377824116161488616033051093004911951080140327341787446852494319044157206141157452510548920759303177699433538069235130265551283301211313472723655924232513575679682804827607895951864342585824470364448969104105732538794989327270983818263332480287240161776068762776537292858125694889742646748381459781631912108893011655001934220610945391875487554701239979308134535744969135604436644373460486977392482663856205638526395541108168338468118293594560203827994667535357379994358034777007376062189892505280796479260472921409958304480343037610047888378017037784805379787994003456431004716518899780797468229309216160121216088477392364291541126300899118885529590139727301220033443665763177829147589092079617178320777456147119643478933776420708326569508010443704389730669637150562690374668486117593808763323217817942925213889256408499156514885062419250396932396534891860181883244347076912289323157241562703859614989810348611880269286502863137805542016067702121600642389534436398314509551211305198537716444035157410543598138377601430944896955218267440813446084322002100620810040758534945502056248658018190330089953761282326059871542080339967088429011741203681184719586650172603182634366140385542183644009343951497853707916053034262745162590794294023125429462189251728881829858004526382204528412023414957357079681446523607730678881614377735579715589729301130276177767649858541774019003161496292573976057905330212702728798534891153182138060887225946353724772125826856326042601884637473308196484389466126939439724471413893384740109803495824161814898843168684615673504189691713499418236817939371882677551546387155515014399640630512507612499955877193802002936196012212839874998260423273839013925605034527152272737191462615622774855933536801269638579022800269722383721222187052107429347851157956424332015982366445427105725631682057737105051453255908843972836422332359767556713691965804646962777122271194860938905351629244600860530513524956166925037625633838383996328664171542370085733243442655734607441046102898240654809266918494427007568232093551530747670111711041831844560717930918740089105069183047559543860335186647163127920003369226554657676419079527363078221999151294002247621980023817998464263855027363384581602633383066550616601049363395818756548825505774753997098789235423449905616974968878886863173418305543993179247928326510775968222082873696377966647893084296910887931986160752314780107607774730296136104271794375978808693836587389455317473691816369439012845081433006973250945813575792533179893592495426423636785781547287799766021960139676799400216879138382387753796923398690457871502025732241025145829806664787116969805990077105391666979271072144089572936877931905665107445196594962914737881127954010852098443025512159058604695144806681174382021984215886034159230517294083375449544588448446074196163740108444980449307503861288122997053446739588017735610189349422975769251945478128100046541316517190450710089067681013586110347411660649789214686828370918805836617678882276190994088827723812934318578870994645083973044046249312205663460633217056811971850831638290221234998402776848841889906615010719031304890177142702248271632243263798560830802802059770854396719806986966136309744393417085915831680574462514573314211178224683263734236703488493833162169556515580038641267156815881500569946024001354903990367518893623463976812701079699641411156829368668322037752175836578801097600911215036095614903847785564661080483755772395779192812131634875645559806126542095929401481576947905766479483867501807199059475589042372035554633615829016265968929612349577748485094394502132957693738605548676828993255843513992837443946097519691662099783043432536066588009535656267478081405541016869496094097171284719520912166692725800268702953978809604017928939761662909846562168513719173471082298006099485910082827812461818042580985795037834779849871495303593238821155888761032302766348204357573500199782970067915996963361534737649280890559933998716163408523648800308299632307597648423450420404945244045474420229461385310873284384504523012161380581887809847914270236196137187699931666039176194910246847031110269099247918231316176985929273574208028978880319136632034806467907689943461390395193697947858544173194781816405288592432492334628378107274804717977162760605439833142720984883925800614596335812862313968394999379604760099035024986263797662247171066345495923848628890252492327439270967370267183122093486666843293186094377934025868927770145734394367970035530228301651279167349194228645904689300439013573915898693356623016500554364310926032047874869376937917524190776991792263200783148643882563309394006890429443876592653847892653992021144169219515619167558754610130871808962408046355524646200236341426952381520476015392326234200492196021054175823033747563954414743742201931447454598304117147422899963527814973732756553516346917456057208456839501666898710806117596551542244858080106436418197834008141129993344458203552968122880592120271136098022293359646610505697442142896253151074591178386792942979678554904788754594867984471242152401753316039155119058461169737724400710383802772240427724894791482865727668416969988414515219346183908896479810244621699938619401159221831525891730796649910447519594236441353645290687038218342931335977574116817723894860065667572740774735504841055482556294614412279285245130722493958402705055922261679934597483854442040301759476758425222841275233781830214045058565748957368782092479734645630379957936093615314718834260709745386061934607471181194189930066123805239818221052358402694173814889506583555953977723131836104422183517587319484974230696610616574744279041440430187919616722886590854469567724163806715667018712459957736457306150131770605011017884833763600430181286722201756019465879997494544316129900335960222679290115484950093580923155827148671475654574259910708308428082060584836466968818187252704212231195541170265590774005044799781237109693718830384639132943356197206819085530787705142172198036057082108108436005276820207289404812843080966641942353055091351575461610348180774881339865007973428561060484581496989746084973505175969137218240342982884634298624004896009168433977379401291050431027334938285087056578860102372732293176950749811062430935595285806028282872271594826372553705355669816518117255137288913942301749549093000209165787685436897818071308752472027582874550074341830492682759390093262540170601567088107706679027061942581153173894256964975461404271524480503387449671242721202811991074918064635637469398975345576540599135782097720800342715690289478804566550644229233644959193589379508846434723131176816863822473011701192762567886877019900435847135198093899709281550639826358704343494506980378106056084584799500582152729131002507382561319193036724336002676123464971213684041519297054386400045400969090833624994978675589528125359639200871797060768530073716249686821357858584429362729994057838421402752305226298737157358778367404580051337282213698988088747026275849941682457101487314747508948462681296296716672070719117480380711650841867515984986197901687587893261099149648108135664516493995598222668083459767094571160464674825154398314061898710261165553714052375011727551701087206389118613831756405747951028007647450299743883269802622462341094511042388790810336307210358956118543198758040350764521984798759787313763615975920642033404515534665527715505336626246577036806925150920271033679093631086500073420050011806347191245341153360729449313285500100616974872557933340913910750849779257502790101410443411346729540052489431084089942676185178825150222458003135147705410326115520222953529202474469933793813326556399497423624353473834353738404069215561653683708821556449883718994004542804835254267556696211560259447024917025735557604064736935582405521872020859128943688235614639516271433571615151341713754872570024542817781199834635852549026537907610358078179106618828492014436451869880427881776041490796557473302080107120594982921413997871203826116686555549328554506425151735105054212797533841803792931532892899012653945598529029852567560013060726711375995367305871600065230206818285018271567961598408522841018895134380211074216025513800601065626089359896418185642298364918462379565302955440196102339083696589868293907840717310825336149989933431997340970012413234846242066539547914238940106070191772721210043802312061534639600573835295506945143396873093345203537522040482086858513248739411354879050590482105173347134651123597498114635241837634171445076530997072614973932194330229413828157956400283058850901474522961828915102130373865918195608234917301365389112921145004362567728469866968748849381433445069894447484160311484247593098349208590081522599636972832684670352865744355012440911989079509125107341400583212408790127138096564906768449823698620868489272147690879996496217211525067391112983866087852704289598128194659805351926893852375688890704348753409307999844802126456854980672797370359486297870836822085540417169974974099854949949774963223442089482290066585865344894054823957565807809675007803057165864249965587159112494505819413554049927502129838516330258974456259096183442809216749483831152367475175286986170318018724372671148494384859595455302708407194300294148236526496464261168615041251837586658706269504627558896344669025706545134506879419485110723265216538627779421671488991184922707812160241992355469474901479381994217452762488565362614021526576876873184582003284139825769680885357829053444500278275276407553596174380291718864141798276473986162486171462737922865430338420583387875986568672673226157926022753977135219839268229538865712960962307439675267932271051366369601605996210388943141234075351137341673740671026422737291900316759261584558023081387659095234147490279132793779531032132738499183784321164902667213881098940500940525598540730689046237886815565663231808254208522542316318576641270005802486052581148845307095040306462938629518281858798265517927682100330632556958914619436441552195252349670310090976366358193687853479027320894062365988150426616973835181562238600387761812094135404319066702291699444464854177288886947020224130707226317045789548533336019194278862317611793151543354641912315529996618824394901555806543426041605967060593624596848848439895887672625274119957013195818993544074346090125691699745791831638143655405272322155428177226466475650857202765659270948299976597859688701644271883699766572946207318418940925695760157090161107534771344968557134292929137994674991501327276559313757036706354203396331159324843919593620630284202736621943662486451589031984895382322617773109265400859969548545764834146955026896426792763119900011438995330514667372298451320607676529551604217659034729702882308220107999736105273686290035900864213161382961682744443529048922219612517183146023363467166068094216618960636938769205800262394835708184701833010422078036946443534845363411862245471773039650094993056047435454661561038829087907305233766246607080852689549533490800984246236570916150267419069102028507326537382543812425067040030573543907790046444794322584210731878359432442219704092158046565934438693228874986881457337627472059686655478290551863581202328089667910376027250730901668789428697146030728974311811837470770868503227577892162309923031639878052668411783230211617034146327974464574098249549468950457170435610922233915500024858296862946223725673676893032891629427753001850924336812958686638400530042000981440893190501675960839358752840815756916090644349440412696826646636783303572176914245789357411048886254347386918797196609334123323480755191574899216870216360449663940975316940189980150974237624712740329069721290303363407301204936765089273012431577629046455901442768000056491219353251143637248806570394844161470325688689303924856816629188376527595233783118933840329975742700784061417188302057715455235271699994733180885723392050202150910776890223104208163527614419129826565287818232188332385260838207842096313991958876204554801478252078870825641261073124889878336883538247228960797982323857869262952363648537418470032082854834999364846697330924505905992579250100015783613801120961240295208881197731104293119662210964706980295600984785911583901782021479868285183587767636246852511527757566836378303390381099375241953368060183682552311273512632757686045679834401103189070008338092520050059452917821207203026776356567697421081757132666858076193754136727688096296826692235181533840981816407879768506045570959072616403681712158147426874942735017131690723366944459727199735960902441785522840450290515461821211977937972350653259816495246568788267627437251479078298235625839914044178215734210180936020557389922692988605687037221376851062540210929789872890821224005546042539057377106533792421551230821198751115197478135615908207899865300136435972224941735718069375053752991214109035791895274753684492024414722948430871790661670839647728232044615654512220191142104241332425514975613860102350201774204146419611510711789982735832011460656037765493331201451341992564761534967436965075934737137395164682320136916862001384158068351477821926674875734573943435985679735250773259908742681070868853894395042848620424133965189811995446831530554237141847693595823487257940541463482245278352381472093281845018003548249110207812065991693119208308030511157313439077717106561348463623088760361521439740289090155317578641371859144166634126748356475376036103397623436974385619881850058392658603617087462326206631520817934184425503534043972296836265393693334060423637168107944722256860754249249609929158339166378469511625412033373059177231282955674132071021392031949086048864182732061456903905209579451735488415443422886852427522517345046645649051278350077480228055034098812802570765419830023257046089496602415703793851844387022410577198213776511995018085768102343761736892214319194449802463055442960812965258393055965284853600300651546815000932719952693209966783808876065325372633562271735815803934550759840921256643715271993997026967964727474824673179311037718005918866355036080765842542581037078517566207751109681097834652345352105389616217703699395268521517435819969403223989810245540478980441781711348269327346789675699648770830266363874619649740438793008899402412589494245300091916390613275603564517749788100868803238023007919630193347244195880651159656849459163370714022983768946045339475558512730423827792995026569338887345345198527100070058398404687375517883147431352719403496259649118965596024205352716427187345431760793264017424972988259845007477417346710879941505513364609802573740414393145430724440222825195926400891523710679417733494062191702115208252981138144918400685383737211120059641063458588311184339442682957516674527506837689124629583452971342005739775203559614272536200075198479550334222489756868038848201461281610376765344787640277373819495983991056536507823567962100713360142815169594965112951039062173615774121149471728822163871088395222490114103156563086268234101651809183361046585382925399814643455247765447381165894025949472078391399835946224291960272844180201260102070337436134608309191316168386598277462439338521593623349426827407878043900936708883328433696506782386224303505204673806390932089975455064673457059515248589776361599870104753330492410675796390891211104327670602084010037601281670893178268549099881003827912251943188083343103008752343866931527535007793814910022187196048596211896418905476818685377108149129054057270798173849038646440379407166717123976519806579237394159850707576666549299598291394286668462607103376344011044482043540353270362434927826278465473622402359567679659769742549139168098138277291970258101166655673897530265663500207458729137115463159493433949056840714265221617858055858931636756266293351988908940416593810111635460764848407669738001249700984427778681335454859234773912795718605494332241721973506781619925040315831210296167208217710237164314118465743596931715923109461107989030026172042114122487099439939914047115247288223697565946055819685502780165905992956314638071248097653150847343450353404254688385571615773728140787305166200459438314776930883708720600165353231099816547561296649650929294905419696338419231137700119347834997103742161670169030144777549324911735740667967827997190016522630095444904627011973261718333281177860163251207484455568135371103483044026407245899717491112499456183861028048564907268579299504317158631054267532950351847310074534282019822649700912856731191564426409822633806719977143785256188924673554333369990265773666325315305059031720736007949849891444850361893140301468398301010668375704007241681307543044010399821447914968581340173623054626576405035683405647686671599014808298817188158949435394850606984228150885158879562791520298769079169736426430067455086363650026587198819259500241400102354947198306093292283991473080170999004635952352775928682291835263951330988097949501756029897468282899887052740498390957689427054402621906446955298285397325614855891624128684450678706348728917319866825065799655928033984734268436104287537826836915910971694183692339379535639953428464054437189603629098016283884034625376039769723639296782018699065654389509649372748580877354993828689854301548195456130497635623627122324404851569612756516113469180880175950916025773081369397713098594220117102080313760302742867421557358643886118821767838936900778774527319042732225551874929239765189452179299459110358058281849836944956957978713867382533769667429124203980605267851100567465887453654591795416536232559756249869589194688766066244081977535220641648370429563161502539553288430600717604775658679501110915995066074400614239677402901202168977214289389798743890770507320348848649271632044480908671719996840248350860583587456521788564939410762643599293345834832840047615626747362217652934789723100329395563842825933270499333238722694560421130534297825593773367762399429648310896902388426620098954664010803508011415645635986945476515236966247776711291148591372744629030838108160579356088557127293167163339408569073790645205956120529488634092577797198847167919264404496205843656098981374677253335277238801759408494734864393726542720832245785473874329491433345929881441076163953833267290282915372968583090940090364798753030088710044998994724687691578782706896811579240844097452442915784387117235203584133156604205379808235935803112161200292417642252076565714285422389555572734805323457839178639318846652360952268762936103207676381181329595106515781707711193232203009059923707040710615141293299764726006804325590806323021650507288868012614959319520979013333040919839969001342925044646888787548611954265496884903321624151381998289021409911815135276724387238757371975739309774440756287167782009646258114017676260788489957023791094852743698976324262168580798997122654420785541401410332940614959260191632993385737762242426353881472005089839643160170811087490631505277213285960738461731258746169800374870165674872258586465272853890860517073685836259599559292466537093986214842166198853617045979790634562263812084021421826232299580177507038352088239624725280001487843967230682182963154798841117136809119564844678072390821594055057235363096408182123449069737445525662573880359071833730267501270571982094631544992087634551330910333060282627312281787896717653297056770641678162659356086305945599958389007231406178518421869676032202642798232003929590040803601827105366485432594301500230505733209566171570997194637833638294441225834010495634917567800637571678456129467849929404897107898179367954858402125825285603244237001348472786022550885145695821925960415357502948933531985978143101937317971243476562883639854667645551338365072061358472138823486002768895053960824997557544095451324351443177493884974670848084318350963196741598135206252795047264732122569227075972699813236169474822731434673890875015198712054053155206883450163993916349132852641438424212339422095168840806791330254001118291294888961000558842508625214175905303642448818488755306243236883654960831374509606584798495021991172878147626340544810930594351996898460404031863124962293921988623290980614133386336151906516382434395726022022649990144207458422502509847949634713641803201879358483515010060540153210394975469933283261378938425878570508754917996421200632176491826014648779101539642737422507253492994203736112188855102715355320303956957984685243524966500367388282651147792600596637210883288341343608404270900642799810583565874567735072245816151852859311619817192161267179712898876255255823157901611803182943269087198979255665326898936644964935709774122952989721042151381489458742949263265716043919543242074352316272000149387976902398261307647493937362499135749031028160511576767071455223400182959860432918533757756489239049686495104745711905294138315097563127635912954196721046892353219019740574634544911050897521392029026032478457911532238881038575511888157081911282562824862012623721663964886400407037315385982814314818340353906047700902805866930928240420052014714660761123645284844538892903254438717362415209079397415949016628974350918439872515106784396260178186073037874598044431127996880965787301556641757962507685230516049426392408105537006690541401506894245629794734281933406455646122253121314101858390087141226403282214321792758256082215815083547163153526377577134600634723886826289189046391611422735850519627831684058209374925470878220670523079990658509676131985871802596398837618970772539349171479707883076681490029336210039154495124535603102409574836563801085278714176121943465757774341759876337463808285780209592375197257060235780491397127150551752446304576258199787777363460504309591983825359499938009096775025493388291926045155840670813208400714181789454904515400026037872430704829498977723245036342535538567261716151101208394137443995627641214904175599793095975282548173035915271174851581165289235870590382777625747750378166224837902363085735274859601853202539033648246451170677929653756942411710996393507469086074990087581139574407320848621441771618520364623217657364150223563699912689137276805529155822210075313362238189094723521532863569627423966037683787490719107945968951053967694851944327213113199618866903228330606028460270006439511420198014697106507294887220031352335752826036198377594139428720370846826615281789783967316810609040905297999135357475415308419996203485349710156114982055140744274406754410168816787539853992273719296447798325532329650804847516266353204083976827740306232479123383585681649892377525249660854208321578720438995298278840428249638175688885409273491167372956764680173345113499275524064399159072963970678029446395202122721935669459727673478415099075578987963857271454392448161769852607147528073614371742873080338380141780842339763146294651032654372301798204788272323906276727357964984563762665283484543956564469739377426677054648307302769327681771480468708502291371265080480045113384156968009935863441034746452674680144632992141203358457927509868645553472698959217535312938717006478590395551054891191113532534444154714829491319390602021115424156018719338912493112712962596252506404199970470600120759397839057808930087403729449191470423438177806416520895628074640874281547779937508900610119617812830910839666469412568238841964434172275204753298145778144584093568311556408650215141895661476157292966385347261669505074307646362741599760381834238697931854988776338174049984415735340184974407322007224661138891709350217783492966288681816112716822361518437006529960353246058126577563187126547390457516608608621382119796658917428147498474660366947642575951995552801440437607118076046014840112214489062332115304032653801865899997096012707457452373013766314828681692733917916912243866071728655665787741390359901281974292528115493900906075654777311662404260510430414175047041755025005442351640702543219987000429068658737431823694874288758675571062058053751232648739492604386582567405267190215015392271970214495023686305280613816402486889847882743701727313937963639971028041957405981279049581293215719488258982084846716438338438973241426549279989933838743149507752657096763603313072377519945129212908014446589199965119935464958816127479882157567330320265357442847794800010142528731067862090051005740921845156578591925478579805667343654628246709831673705890710643297575477957780423073092226246410363306760817235608726271277644392502213575880837020468768598287367416641153383863754798768642857735307940337102170533796688704346855805768050479453301129912670432075527068283616745909783592163169569687078226385458793047258283967308803500002664298943128395388735560243453657505935723762723110860641859317493513975967205944987032684923671364334825551128631279305739427898554938242688465654339673735966596754949539809688969928055107262868192450689970093515817250994992230443651854212886948930106630981960841399622784865810457292696677958151788614161974829661505424461998055332187180920107274203296330169995329082098483940949684057648853993790937017669725667184416801972391661354383975713128803802136708532229427184052314166071778317627225954998219772231599385499020488694873303484515962271016702256363976901811532548672278977480218778984919956569261836884527225782383934168374459236297490251590640302553850757472083690206666349352827794390880648869689692213437685442138605053333163124131610559211035161081551744481856963367671728167489149828460595500276987096629655223014330080917854479152776093476238586095811314494113642950587723412762818672975115540803408556964445536525688387052144928319316007938637783387449479251781487098107571640955734264671595177785976241005653727163859516430743528043446676090592184048931598113741485195516586294851957565692361862228563355856414916260534774616468983695260237097318072024088186755450864998463766472282260700168287919157414158271445334610489022725325274805904489509852619502445220273385291439564522736829090033289570846855322202513142939281669641934803106501549379578854646117948109430512275415100806740849432988672739906056294690419502229290023199350745552454133495327700842067580045248932820881949060973969747014903280680413807282071780196759851299827640112316093066025960300834660828219000891584404365498456568524906616313363547276515286828106883562144337004989981416442358455399266540378528040177284312000804020419341439688517934322377510516315495486721008394809809191783479195237197740995119306304898418250229114162888027926749922853712328437976827898359456177557155971113272440364693830407426166008023038865655090490877706083512791171708454507708237635173414231432648061748091596638610116682413127615709733615964969224542986981904484355570940992083453792826770873016086214768212936623003317040608241683700607685128387413860960459326110413332967907294970170668139642615061628663576083155115777465379497357156678444513653611297170001090728358691660402585113077572859575911778607552822614335911109972149101827763508991952870432042595257950634466842733472722047842947998102465871820505284814453379590400374777464952605310537626292010527325836244605952971448113059639514018594659338336832157861253062928685056201343311632726691632053633918202319498918237391866456873042142152280810942587518883848072182733287037072794049894663436384668474234657134537741351432625742682894426698709994410561962935221858137809273525864007055147647585896188053873649238860251774588011852671448976409847496914074938794006402278617842763312781640260583001940327643319067379902362475488575984621753190102650185826579976075558768170838730631436847577814417856089944157880445326669942648459036899613608908641149189884709885969077737965512901028219744980099408608761119397101481665702970678242199298934662504561157300673944895972353572322620922262877551962600381311017671097275495621253159755270457607474273643567730103298519437466913580276127133695796168960446870739809464144439659291121152486448460157246101194187769734846194542535514960097018543276142543449880744667610976011011688996922083944230392483574481250801655346938118096796284582148389297662300970890206056516820543938844895780077490987373700830332991973754608673969793720011666782988338597215411914646793725051445749603198285876182208933722627379585857779081578678213939279799786343169157235246861285048585240380372707778415803623857504262913681565385258560114560469546049477478243238518209026354774151822174892493030458983708061350055540610451215224609711133907919292436982875055551005196748194119738267722366715815350228265186116815450592952283225202018097635038033024587679697511701831362107662843031796069150501898160312305702059193528113395041312945151042071064318695950777521018680913756082439167725132969701015777836832406539420526443425950581406680414802190319160468727689876930983076249272114129883556423493802952936658557242056964643233576720929288324663226519635072002605385131232158321991505761838821460897882984078612543754670973696422308125060375708910054879969152366071182865528193444465170252213556630189152334099677858259441170179412615884996077113505706037610011576348215809350749482944023658953708968014734473209389105789920857315028850559367887845886975061154100283444240945076660083702681383657096985958348602995400913241548378773227119768935962961712661944714647218609530914775863229150082181254246234736065893111683923863333013842549062712243077872447911910060165062055798918070466164193551654257150301684496429457585021911886665771306990438593553301767539539744143822568344678624710445767796055086848970936019729720042652987482878705656423328913886125534994192428978656124043316024702106276024204400223540641595695133071505011951689335872019300222148406483340894696763899714639791635565331680603886681289119112234511396594933869811701204847988154900410621399008450731174189756015205266972337975092477758798299934138716575413324139922977796616650441581039033301259079283791776411344738315331212494797906006221687895214500179827871872891083536438076271200953827161920145449040216226117243260671421567756776856767501890832819417450743984370944253841352281952936119854589803903207738491664242665341071891687488076624318784997083324499832405485709970643442972054676625668834411531229388852334023980836989130686741465799876988845267466181644381337927371920505298104077585323916948931703551717545717202243212316935978288911856338965548689496128159870054831036246355524369397987611743280209727463425868610603378877172377196776046883273047884753369655665897438023027994790337316156317665753561602324321570570616140411010865746601957803080359991969694281096501787187997424083373748646701020311855790699840741149161517623326155008437920261005765177686844041489047032804987410945125066073322699275528111329453104860440948580163481593080702325238714407183428568892807935887989127782818116284673577494296395332869212901885297035944629578530530582172767910778897275884409300194772269388424744904064742432216761077397273345248136921758624246350094457029236882839444812473816740671203984482864859326846500604717425324541912328871237805012281553316749561386161695109038699252906238995467218666239674224023441623659666434994772158389724127126825494018901047028657159336826261106869404215195125981717135063532005309986562424397635371691664689408947245587211539771697409051353703493266401399582554306788196216284833705058814619544765014887623568341876962221484836260021424977779662454555670945269913199619956020126006444733044965162340701185264924682568353011924672256562573260129750650057377997966852859581565222176980174831864365768945212337631079259221735517199450894883245651797356968427450881656452479039464665510670745140226349166929626559908029179935325467297381381063188357527277716249245504243966406535571337374844989155452932159198631899338788283237648817242688624255422269819359236922124702920497052213986490866536087841586472940865095973350678899861054716011040505253023175204131561091899312878759179691219615804255861055907661157289489621195303193599158828801815660768643764350842560151260273119591801823166011122922232449359648629601976794167411245272387589596920998173046270008946461324071373177712491020306409235740288190785167501756794744905546985950941117150438377985182757322501066373975015392468124003412585181525477207250938430439039931407810985581032238109003791611055562004098078456340036768966288492828797421599186988606906400807737008510140905865911957333144596974508548125951569474840032332805678783114390211815552384327665779152167381508560111104488088492564736395128386263151376641217676390037596065983761664639686485852624281495010326960435000341620961669068855672945318862935403916545408354169680170243524461898171931829720111620941699815715305037980751552946017044875076909317232604525096664983900043929104811889973325834403873792280520494595556359231411163505520789762093881314250714379824706020024153109722226686693780467139800269847484884390904129592869917479051842440851861274840314117395957156612677565954988427288011817160306535215132163611480010085483828144210855490240671712670583000910727016828206874412304357572789474646351523251148311784523321392152115386627772008508466379681208458730506108193193773015411840865492853227431368348840960909130406326751500771850557836014461374805632879626723296670299725555862755384679772124727750446764055943770803135277795848444163200252644514582339775293256480636330670222353626534406743004728808712496124182785404486378468289301284022040013275100315754804541132058774443599754853877350518335977834270412012638646311406777094049825128309285683279184298732701818796363365306106532608947476430501284483696670776440752142959794883357363893046847386667010417725300900482134249722178576135842458283067711293358258948058307931791265320486098266185773537505242076000634956617523139217890991717679856665878574712951807728645753617691116927780406684599445414208476338653053045953551862428546402869089539752893345082361318907497087658053593522690364699119322865892045903657337396030615305663328641213199485399384275639632485535482076522891415996371828439408003074685129661513263907283356113206029660648488480036006541269319170251120439047566457657159606730003438947865663146090249817372810786549275604885928361892022269700260874983016201844970369478509852828290387403150880224047332790809191095508806643079698760792479268704855981877567395036768180442673130423939832061451462452541467262469508344035362311647125483413046982810776889479503231946860940133356824788203494508527792413892096695378855876812935253526229539142246896460041245225348742140026864568609655778356177351956549246605091885233063798668812117148962061055740477968817035740089765897015615413467319194626708294490274204953786533434708636947347795073583856901276834413956362926677657077515221392138165258210120749354321536423477765042909647625659375872603961290665575415336957076763866278975231437736332985834401632937668915041001065082730002474044613413091628368409184031922741127256777393225935981668634022320148286849467995974078576362380191772688765844569315061774332190743032327227846142759782951509955592751177692676358090435495781218825342394283749759901849485504579341304888443075053944148034442396654248174674929383688378947678197661608069184924405561135777114192885403428491815012290191756834713965239971975530886752072415063891929938561205397970038202606337008771078667224059745075098058764518890849420635110872426852580532345054191312283556750842314801850410263979824220507215716012203072540396964978769142779132112811001371075930878735876076409357811200335762384604087830677828579983972194708120731537647734958969983977889830865140371815497040062025339214274932431719578343031202514993633409557562519671239367908040507734656127435077783626807161006622954259600970686858937235329944071878144431826424602305487504093399754161025022277168686060395861223586244963062596080596318975836898599750527402960346905878511099669778540487978162385693232025955908705253878849940058763405290391993126064900332567416643045724429760978153541033474942677545740189321927841417272481680141595954188459041069103293428570875463510552729890933469966530327927320591540208669435670248278813995846784011684908408199221667558111592261831165404892959954418696658497627508756830764602080488923331477772091390408038303390750090590362322012488774334120861488645960023345651013274324987030210812111947788393060024654741058794093250607787494243660483577160765113152122201013049167011443878409672219298802507191242692706399389381850209174218803363102127111943443674765775831699192044639374944160728204440405509270067648691532368590671556939574428348384091878808568792088409266829089592470644139787457492655823679953789186587635235440894521090781513889227508688193518993705938856512383063512340543249646041226295802045809679360128516091928928828439659233207629544802898411229305636578466613416127699401940359047498043804260191874549348323236615137784304508161411464118873033377671334588394094283114265028219218195971155783025292816013431247130803546082546412812092413640667032959505751907289251057779451300807950652450958812966856584646134929152207477635071470224051078002987800281349953020191918056568820238305504870279494816892100835239945868649240309760960056098576109695136262672782765194555685121349296506413604379272644027316673029300348169263719348644905377834599272278650658307444406727895179891295954870075249112278078594086028730006005433689532231065256699795785184055548571094457687250256847086438462158474692160833132477597794421164485270076084694717023184743642890392104345878515885025126220255777006473094876330410661169445225433637366267808830272502961857861189899713030953845908988107599971468217510648652573892199114913714159737175624466589132599933939329369168439441598176277267209013491047156542025126916180558368957559189152792043681753812817403041021477170512978907857220895342854473292094588033463122883077515894510336304768197918210295579749677998483561458606433122105246401912015750967666381924398185249882130837578202453952894517103263744643560472648861295197194920085836517603881616285645701332016396310742184569334551030750154593074049527734673663490016406112923612454163208998452524340243943849727009224035469871616457545815815123859238141373980263608202418104972935879226960695719372998125465158101745223164083131622071995513337429138929100956472321982232476183431770421418680098226286359542431064227064335178799291531812836593094844136688740389353899956839526971537122345202216709682905276043811684877738494346899413128570250481246627245314552910438184553654200961349636155885472502124121294604897663947538885982666040904211170835995877341845151669445931313866168205369892223969557116621432434630565841480772880915244330184097316015105479731196498678727446484734074968762783222125869096131662213042488363736775671580650808656857213867036280137351526283754677933881995248168380566950122274706006034002497727991733888180294448474888546403785908170564135798192795755103636234226512368177991199771700319300028030425929107295701049154827890303435191282835314538059987328375797003610686485149144577296604427889163216386430983575932177792337386083240140531207442581104299186323042883198301622575839191296374159770612136131868167934832812804684840080027706205102131136145322720824187515719963555076580323124509859640152817538227284224458657358768016613165484197932997141156943130722397276727367597839156404537699177104490226587345509395166904625837239450109971811343191457060535792682127737004991112690528172162932800106563722614058465534967803906433919404765149025159187480052194254238034117830470489475795363209390078309458944312390510280631732282336485351129629802884467165648378118824843648856347816737045166987037723587395236981386289000350629302551116299408689799115902422577706303736649826348681779622618702469478266882806198683074904643394925795449468650439119199916628537402965001052589493423700056564607699805714537062811594680828063416026411659782189540144258715881050254468152192179596402491923242781147909386189329608312733938172461536059807371359042438652464119061800801719495611252808400007716965283103705040249365121126520330490020223767667135000019550760043566927816784095151103803802248234890553254828510688934810338279797278123911151742405231099368857485727563196149915010054424146697537854452918493915524532190766797367441542246669813729244353868782130047365821247378691343927752300099129685323904061552496595895557131738134579272376652818015622178423445797742286436390611564325783157210535124117122690401384691327990070603948117396830825597721043343320981761928774066124620854919642592789773700389986365375135555281785176822226687703346133061254277136003324365387152086329696966519060235790291119166642800682090562860080601449504235681762707793548555398138728757271810071801482859858677038701985423221272956000618438130484835770381523594555364587828515052833411790764906826294801082417390790737329362075792202042503748478420892934546295829264926375311633537936510577558877448565783797866015190197509877305320179966789314317801782438882093278515704834841405019106126724832080363722732652031212045918324470167179254113698087895500952420318838719252064788757143430434700979324196143168076304197325926813959812935835254914304117387255682416188302614251331249522524778292727679362239451077172589265446604220283888742015543929423286565648880471639469158570620935653294877864787886039605536662772249296263268137960816803160682687372093764062101894633442411992722046893074949309168010891150462236841398898970191343363718606470492529538449487242951348988124921974237863158706599356324747376326692673540343906621244851275373527383033928930277948524309800627144577778575492682933247641753661672617067860392218837110570039160027526566272537845736075474561715198621915107116612140445189143623211416829219572724149772067096203135896169083067624600279208908325424463809446521238405033301899625627307530867011390853653298220367119606113021850885865724075011925962093447256932701163501556577555597758974054770301317641190293339194407621675729903991130049475827035723816879350974306153565105836610857342163893247243323518816564847970114305032110982821012065952754102861195358569945701803827656259792311426645389729143613487265871914757301821335533105500823258233305999098426469821428007800072672927177079594707637367135400260526215367311760659418134709736154328885030022686305772534846508814683766634766235417463100429450394042621656817732797147626929795017676388341669503195499526405657899722800682534863573771122774382833331206878856299779906834739961244892623645044113074549351380441335676049520558265725078171811104568432450642327085683550655894462854956491274621155537553600554217893839398317787827314066927411084717937458347967234784451597191780772268623426366548862893047452810705478523472922713072283365020614825428705029392320484889917127806922804223096208616409346294838448685599426571590975789330262915390950721802683142598565168561457761897703639941956937568819701554212959682776948502460901831377559182724289332745864735301277650541504434068657115816732416278592706283229737473064145972945971243587276525539549858191143470409142574126307508536886846637073132992631937351864745212982029971641435992611578741709252420649786801371900606343666359646897271926199827387692766640374822185879362546380839300976514971086604888251326751142466176430649856977895376382481694368436684035586923409396198736661415284633523251003267581350647439434661974873670495526671403319946357476899501824996120982686859203919233005275322129767781849014977367789468996331910756017760214840288918435641809104032957888321270622448731063679691547253235420516542400838905391448217977188344177034364320154349966978638536213232132296221188756496425527962870949284091003129981757644724527390269318260548386614428632536863813810124626197719405506401147525812767738282357373850319834951097764542824679810430552822993204295349082046095941259103323638979620844446224031130076251018555556218747273908320814995810497457233373881023317168104212144148569491702714987989829526143216155157613301769561300820150685459212326862530693281509981541576841042875756079475053649402159384992395351297362209265495499163018177315691073370325967986660769689525009222324451141046025591683123046653436664115168802319759130410817167439623820810711165368401075743222939340522171006561205027209395641612135730311746251255602775647366197523694441447139289434204644362442561220275193997281644305666633046998801322725311028557987912848592434661603204753703204121147489652256165965265316312159976849097777203959813193196247558779173647933204591977317230406601210239401578876307823471574169428352818777469225064873536094734792014420996724166842690667996552798790453904753897778004474811118284902328623567828315211310718706212011832899990819061850874923440316743777163736809596189737790865188376317347123161759937345811521421366043634562798563390359952273615215948796348417329144647697867019121211026965441294082312501403670203732244418640961781333270306588282778509718316175828527048191929523809594958652695163924934239518655847327637165029885770765621629065547839993595170604495686782349198137215192279075852494067884152458933783177740579435453348674686721179380778601164770438046779916819125453314060573025022412355934330012045437492244696120571267529039315356969339984913906122203908873123502291289791013424590504852879829736452311568416348786034836089499643530313504793241268950381036483956054366121035128992979349994409673207771258028535649823490698399283533555449453143159712967211189718566947042287423707634660078490011687499616615120301007130633696761256255332368656191113089145151602070223074907034764046023143229308578704515036653906303517194807413549411115603838671478604572454686069827953168441050934233583102334785255995021773650199837191663134056389063541445796019578043818267251036963213964411855975623846725993854188167188467566745966518822966882943022228826248962482248622954524145573647782876280275227509736108293283657420344041500157694755204654981121112070784378115985516262899823748958253633399352502412469020394121486389522525639529764631056972152937718468300594479858001943615384094327045269976056420842519963392623229536928496013811659681763411795391230714655124746564872867455103900908473840287723473080069188601351388284789697395756108246700146567510294983968780014978443421862969206960347590769468567663470580490919178839701161872852184870383653819292495046669315573237919281082078886469067071494177797217388402058229635125827882711159586934985282742706250506503619188903820195464527597157394395172531353388646705505555261148256894516596303771183863680022055843711022759457918742227952051297489201776842590369911138613314276878436763982519976022327721758185159147527371734791880566460205662055953141816951391156849402692923248505244353215603843813902981513135118403479645605455635903438681634417403248089306935869946398086748554074840548802694360664553993171611373683269081175224902194544910112310342887377226740901760689246891884200134488175744503543395143228459337089304966867365307767620646844756124042789385854826228302183945569137362472793305768509168561560197411608732593068213176008898006981281189252252618102919012436998366893360748364273804781868984885090420157303634345272480869107516519102116690513486924733689610333628366147657894244908468634656042559495165094836333005024372844722622155954670893814188534755993947488389123370613832594603977307109537633377558215472311366544906469831998000082980016589600946989012810295990888850913519606626744822658121274996704665531891939942592836043203205795972033175980581736042882180185499086723338343693173199346847348622066776655100482847892408904981957276598034980395136963670707523537240960712944929244726346811855002630756520389459104740606471342914413895538499488722702982663549976311855850742595363481763865845091048626926734017651998333678504541022571365764490575042609792918572265061204871354612330914262276646479676888566240471305366393716608080991854253555801563139186912742275187543886634779890424056443949751310632659060939148198593479324778219486259828649987266022760719549046107049222591570641947521128373198107721390867280312135038403088467029105269572499771604045258434450894885384064696604891658913287539082722083203536381776733678193317056791000493357670034812632586710599194035730016973653750882864792382884270471481907546498235779417113916545600995046864786554303376114750271403345333162927967977804488659516919425083652224393484374508486124946007077144386398689910051777628766360067754308829786567160344534131047657004403546055145490561649689729504237501935541917620900561385858750665753708193377194748483434942072272572373585716365607604216897703968824835097654202768409126997764274034508640718751465858024633255375573527716912537753724161241426685683211988436312166901195042067641842318914895075578908198380162868574441155444956793615390373191262005264652030313028457026869253006237047528075636364121437420638010114593110713886135411493914767309552452611877668766520504680232583050566984283980556113450697136737277158848999376870685685046771389320878046900922859649323661439900593194876938550912951003117191153006222807149742880415744595005184031580628083524072935950445818481874189046267729093729974277259092501697755759764209553909678205232722564905906780274943817309305787535690756950430167447779117755783209105738213878199175607782789043427613241168313764028696281524752977697735258001298837130766648116093186360677379373354626185317298926418125058672483640459441163485179105808728857741979330143516777953067501864814279766716209506779747973962481039995264496478187694657987681406779648405875120277250686689526730653921212866866658358885079261575335131185601013445726870390046745416124017277921718815656212768605556895029897778344792467235336456547412561055502481535498033376112578066740760600849075680454219244586205968194300579816736182450690002696320942536897504640009832745731324362646125027204159684578849290972238446624281510565016090521575575951622103352902802987417076512630744291004749309006246135957303629475685798475536226274617511303555783300381172612850707951430268120561282124144185318264515105114878727036378311767324361195250056564850431191482553501695064590349887122497083447890549797666679517093274302945241730520983279168506768637506078282848782794343932373524053614977914212206681984716053524022582504082936826533042209377384932880860883699284940674978574626275692003829479697446415122131298823980831528026577891331046469246279590643254464351768210151726846217840833216269097708026139613326941008476753113192448378062617314953634090777481102264177956558664037457450658563254775045306975443181632146695165977358156238621351177003200285901222286347263096693559758617586222325670346366892219341635650246999141340806520936449556240577917048998570217670337350714365818944218081602976710946204507253764550093208680141474762574051592668071697618712542785549077619563713115966746427010486446223817703032050497266176761145785803915613504482808348242582339311980636362245010676057278862859698963060785105250206007046423744193010104030698711282978315726283496566796704886587569136255377838559626301670910954801842848751701114895690338811984326486665182634623338734485327042252191500253023031931513595597934344742512435709035972306685512642669406111170616672078944863382766797484239251865989138583636575317798570401591952975968480787670232320583594568815115463117027851640190423809426496816747426866990759677442270456137671360422799871101646960735765877843644409694545329599104474634871564882484833297316738146482498762568045035945118289107187836113607598613842066188657715648360541000339003305016091948359685674532929819489901187228178429445527981903543014865407486553593125802354929194409713415963941846491104727120186418716505674534500416861586405457241095917373681827192120805461154307670187980862004484647465125304213720731165485662747795901033025873376235547841647587263365692401717327543757879480959971781331581332967526336233377345685138972641759064804768542254749057869354433745501836215786076394887282478965446865258776385289410378942912486077424228474371088958443774454817242067682998704820184313092701178382868512886889644504632090937304166633269470299354488051555203729041071484621737317817005115317188460229569180857888773881396634964988047551476324133591545617436673400579552751887200128024121321153310107223360651950838137428061162197242579193913479602240277684975679646001394584648049880379112556445440667663978117935022469544644417002909385282527429952283092419262387035069408188176911474175317277786763146109546581610125730702799130622235678353163086009629998996033248638152776450163741984795346346983321976412536406573314345973133687307086353975693094785586523481087626583269919806501984207062321801850059501349341860164721211703283008014836856614967964130492675775026771997169367722755191694871064470015999197685218259878553691061366649759614363536378214239613382869210250620397582567607317193457594425531301168802729794010023491360621050244289900459784125561702381570966780587079427648165223916913306064458275892380184014979986147051147724656580138082006227043835636063411642815028630378757137011393032450739110895213908923540853226212036810335092742363845804360480707133454553740240672962883301001639910066639317586100922323080642209005878967718431764595149604924164178290565449828681582924345280236503171499399690930629896135052855278252857389434287832052232798684952700480721796244090742609400687764729866040258218482808673986886938905785346648944925628975894505609235108714696686794241065202730604258647495681948665228220165285197794433999786855228788903841851153605888206698421309656796626499054462043140949783777278372993636496327168713667562745008539932351141798389111844003865714091580745515426574350222138896617877989176050589405396360794905297467457301953990607738326099035422013873650941843375263675391704852404630697535208698843493358107517864605719864412041135766094441604858476032029228039632056257438363154770127824767555562509516607051157833122631688653300806213935787663786831190060164123582725244587054162856814331250671761604257671078337452028922533176873997226041760015546044790260938102756002455652386251545125495162347517657520314602905907635635290763506926585841649674456685115066149513100266772284828830760862693865144560694914669575673195824519924273918816443760472753118565539841832595034959163099622518997112677961479042279347230606154323292865809222899132244167257055935731744238407248725271618784735291773310270542595073942098974281260440412875361201280628984428744933658759920327328178694635750439113630254841539853960801027657564580545283460747420442322146848585355416940634915908881638740166181326715392614372572912787176525095672350855755190568615931394000581563496789918479795425162134178848215535684731672306187470798499786430687490543855406900804251858575999428246985976732230898954825433711204140529392254796306572099861891010209622908444638119708847946684623319831293327557527149077196476530928281896619590428645333223651353222495689829705805126376297147902784479198644992693599128144071603863546944560977952728134074275319445988005270968276375380384791095679204964019300241202566494192751753593878629377656276441272226669280784743749466679983711970916903676381889283955527423847338259742983546063075984277693288516397773783751470122719170975614236323010356833263346421474560352941602768635752105142908471715506852987661336842785805403415283466111330171312533043862634787378376301613451990552891819021974824890021826548417267625423568698651088448724601494207840344251853347334683160345296795834928737957434411977204160169919535122645217078658439581929497725025318702559853656781196357616148763159930915814254345764123512255610695255135830276859412095331153792704570058119703935708377009435909249894994287147715271671783287458550418861614699731431879685448590997743914999027454841287494753523155641798502161808979455124191306377346005149541482166874256692623107818601278707820533892835509815166631645664586906010964259485139571949805660053833096116033813310490923779510764615217594383765255866284093393335294864791715883046718667150758004690422752064848058657279963809242240576647721181973141743105180389027070096216865837869412714232106544254252558952503829502083853465873254699133596717415974898102833665282368758275597960373501330318392508531969457540508005895532752129998572787791493680812804139458252942231386153612688035362662287877273249076474300392634881622609010362974753160558053044717608268288036184335434353722465599258524747060785043923688906238846604578773392649491927350085546002148091817603880000804142661928632755267458772389214801127163279288069485295517232039829924917379384389131993697344025587774183321936221020321032500873099077587555012102612838109557582867731355190340806506975578542377289843908215155887876481422904661192362290392927804486645758293630983251302624128649767430540348769056768820209975593987203530231894212729027847330190338642052583045536879493545911859579263469039911405430332636612059439365207375526220163220109877441628628761371462652139707165329792008841636690326626495528830428294893558698142885745621304594080767837811823589666027347668171679632522460123863127232906273094394927010947008775615245588362222900628002026793538200495839272534302194996596076365761304633059868244515455726390406763936043135363935333098213369570849721449812544313619222875611107917822397354865561804284579376846386801983249793603525466258900252838018190039329449758957642026106475977189072784406143648058305101545749469104420110808838617636810249445088928791058057005646018284413343072992395186615977852757044380583669634170905278415479552340738623253206462733491154637557167382163872574024779372103572771546419692893452160115525387807564902246518218082285297211899599438113446320627834382480145818793906408968348442255785956443753719940079522424893212245086681451782672974104185091864241799964306304653249160336583808068573095089741423241584834008145999271613745499617526501495359773395920006336862003559577517475376076584690125781878851676136427270187453629607243999439835088074751328245014135872022334721941436662514477281818988110858424734104308662366161391292941155821354081025468517104870064080419039302187505050493589573477265712264283990010725836502181039562703114861703538519841495321983406488427117891450342496530475093936844789633508980458607031903350130604736768535579869255761839840287360322312154911659642241745899994350723262705794251330099206048962912267812020453738553479224000495681319747677504910718521405881806516857077012463405809661334784349700341088627197577213235764638797120938924632157848693794816701081834157049420592936826159191728546410577153169731558044014901379887545079017386172308149632619819714841100648283826357351521622843841962751034568108247940195636365520846437840963529394029572952297933529789392942927186967961421127736477560037550383226103078652439075873893224581916886480692061119210809194606462038509296934605556036112390129745448261878363528445728499480266688142846466840526156057353361921190168012131228196808762240476537003637604758075999908052923227430921812828855937626669584906748974870719213640359110236403650768177948475353883561648249413818977291078154086553565323802556829484127225503358294371564861227542860482536046923518737174515542294079040149413781317080276022357992300064510211289322211627798117385068833278581021796946495950700181284341259568969934681575078578006987223792683083000595280775508467330696046954293614716023425291045482485495475170017742657863288046301600307341900689536323430031922517259012561132584327346694022665436130398417016546801136983796008277151146767025974610711364784673859106447293501295886684560877877783232808293140248264711557126919007700320322708341936786297965732787830234137496431329571034562528844892606933083422155982951529050487242457277033851097471324213285640913651989057965806012009317510707319668504441605794380367681472770663938579182136697332609372577509170041184577999746790617966130686814066572691497103507604470165442908291908977635353335503944550188524913281606613678191912854852877297365424060600699820162302661930057400156453594445533625589806953547949336095280828522878018202937984998704884098152298000968359713621806421425887593228021916394359083044103307943512054964628027264527840814652363612710364990695825449706589952526963011526992501195093898171789042282546442289403441902672184397368513703330663417777413893551326732466054129734439538517118671250075278667486725104786497078330794970883330351024499556880051515435537624928276169284458588599431663839441383062266029418332557069291607104274910071978379480591143749562544212872410002726297029731222323268662137544296824357584182002754899721549901599997677062422460323216141911654200183051219164373384545313081304714489397555635330050684279008165050713918241323663133517312859619297860768642000145511266075908066124218114200991964755284074954875019999913757263668814270249122661892246007007400205687869544551801870737684103808106475210768530483240646880687037444583278371739234487764304939538450873178107213144608789884405916629677891221642468829576803830502060874412975600941320829571564696197829778522012508955127571461827057920544175565505162552657812185707571991808026722453457350178444702963153000134985177030333596830337781656992266402057611418766624545058389165107961645260211654083731208957114575757826407893045051096730689144371885299510104646098470982284629833979567732392058589047859236799063022370414920330210123229394621948567161065570114120337194715152424369864978680987270161630504183582990901224569917274148676189401672667334732506791585693211749564155949125072946472322691932207310974753650671741717710309612578677633035724709419297854047626607581555854059325035774560848280266738595125979085893213291894198107363317708530768070826648059982369508709690474182231843505623994782087081114605935879352615686945771446342864913611735170840760150069763056378591618639073605306469556990516104025598048146518439120361337743518398893264681232837009155876967060846355836489847903333178680874079323060706027224694100378691490037955427480671478450136604507181232089667914454463465070528657967657003732635822642782748515697789187641023922939126124004895246764642633333921503710753820815483031701139172067242873465855890235561461000183191257000121457035407123781314335148720486595252132843513333367357544729430760564242406181201574784459304823393646641928920929602061618410997600405858979931068363464533875211700099305673972938295220180594574484577018710112870751160946130324439147123738077769999077173402890753690958583187599810409379011783825687969024945157724105103148762685029725173656251339297699454492173784633869759362679947945468645434746922605342006729301006440815923831194433697638629571605714823865691309549215091198217411830037876855356138789512808405080537081215821981174851729177510960173053372671800437823312972871964346289613453835228461178939481836645864002183329357310419889107515966602277853151761027576818974778088344469149029919056497514534417531180201292328299657231670281024361768982904431340968984231095984775070345070656555577169381909470721236005808193087393793573898832741495818827678859333240169515898028325468620932803260476633556130277597060456238361774433437896837897905899745029100911561044625481387911222459619852026678086196722164091213348404562742232767478384840170244574119492692479324040961469698558387208175822644805476493451580224336837768130536548898084802889873136448281189358937680896124739666737917994378250792096314097867358433614946532721860440641730524009723053641440961642525548509857267085912736246557863379829685756993860273045711543290527945790875141358743572150066245300588850425488949846080266365173238679204713849988295614332427432379432307306677377053800727537001396668867875818476513042504997895127341802933788143277425762148756368537187055090347590808716542561590836629917082579583844916778662501392363567510242647384570078334336109913349184329412594599290748354612577475426450751219346279983383043476712048583383365883233270043341800762068808824120360540111134500199045694020173057239969779034450310601498038108686066076562155006776635572461465098435840756770375263925078250302716022393558403479782847246804139257958081362381319952097359664762209366268178119033256985327956064453077858524130401366900185051651898509160272952555150570411888699125782602002565753887842143234102080392461534097062154705615300892355687152570786979848690589799910771532765944212369695415060066046289503618621690629945723184303303503017760673983830032677549240803064096476734110930051126812214246394845784445720427666673057649146302220282470723358378605388879394347130909605645707567249827073136860759776552384723622292232557037681289234239716550560790467046392602959380011233139330921447491838938738873265621492900958911535704003891610254147486613816279273138727357356549315781660354797878793884325959201178029139180648025828386969841422222426860852008415054778338238872881388236238792187343824053630054776349283925192812669169078972112016742753881244742276341873636427741984722242916391241380131568788654062098277269303300184726846560023216163346341500747867908474256930357119473826335547034243938588476634237308897692793906775485245407962834037347386661006418227776735901051960529583370408281597414518051300324269578236593388305666721091949003144246645838176606202194031923831854861308375718356700912920061805138352799391962918218710628599584859661934680371925012204711082568907532844553190711907160255187812150729204010429468289482247785450556189756808455665324658447222525500199203846206924802809530454900114686635176802348832108380983380306166837068018363299070946853725289144604056668881943341253013862463307247987364470601514523325666223082120042829672440767070966198810657591630356528863208243602476185155271800354056194808274127409647169785925390870498417872492499691556008656228104173054171713170813156890817370894645017962304157940642069034622347476152764506918155334054802230767989217551472360791601868283917813450867160546123838510446631990453929684669388059857688651224996695783752010790541188831019752407466217819666231569831571800218342718378557681940195872062006712474234607874498827730326259497891149909068621332738924649299648128479298094966385176270789727235043333812837910659146802198480401662461856284369594353183957358616761267690055904713744242509027130784189030344580922442373202289884271280830797299984347919658414562203784967676310235231264322064521692858376457916786573969342738986556707186151443428803296802846841575781991009214292341108259871412810322832991992944597572966778211589097684309844620131560310483085428927383660743045743445085875344824855849112213021149966477392080817961292630946838421660405112926297060267644842441709853149903875625871384290449654493548100807128933747473910627666697988504721096945068976476063277957517640195868678555863424306879873349754217706694093189579551827511818731419004433383861822549624785340914598381079954789432940785396100516521352990217051539080844865463604805019899983978739369272047796430686251283740386610142636904348141386243554681558213499233938982319176156360661457943884261434673769598675784697144577827902572944000806766353770158918269561672943108744194446661599995131311129484086132761687950720193216604785559521796698384174300378534066604656164447138850586533334570215032109333621824825340514724706138394765661181065190126455436815832152865803014450051744732441052763844499467304262106931828062163276574632303664408587397046430894703371219477045351451206649639803443441622841892432752500127800916170227827619466425081590210869125065650982761683317231090745748013379778180937460277283334623159257160290491757141636920342213286539621508266670867188148275978519118295509413410146981374535018545701387429509917625378670713135837391249685867113416618888172402272063947192531996729119666616175119209372162519085080331373892386543676593119810959277707007741847192625947359104490798723240490064889761059617116736831152931731943137297931370932289384359076795576379866534565621623189449205079455798882640288947327787723937303393192531783510526997876129852033615712259187143094071906107295688350374811759812072722789375495188225413222899810650691955086571478113935963153157932591376189745287465720864883192534716469361554376194201028976333283687400603756023196605852753962062455686209497338367190182513546511752278920933551612488804006367092112894531936682139309492694724147126648749889331873661106161743320734216997423113201842868042087860499317011591064023471892793898355741942216194323975513525255977900236279970254983361241097151029821795083219431407968914246011713903869918161590093835826397761227371620159121541512196927231918100544410899778426426304679613459099964591881882768770609134286340064922031253863284586422532009067836327184106832938055561078417388467264197740552849481958680948197671191559193636579210271266521429357323276800001396550478507254567421016754761926150847214865789767979676899895963530950854021064167628213093219447512031200439695911648496358446610009861768432178006749610014924842041324437414303465385520792514225186582567248717156074932736047658004352068273800380724883814842541997227411920969328441033039952348882955643905712622811369486062231297615381708828970194864249756778900824586145079329811306637070899519557837274853630660804377704676965580427422312102218959377062370685171337268563748782122423486383107074654234969537882971675436786459894013185772101115314415801917085920147402282040540450732144148435887403249910724632403105668340859781533469997084712462391753618938888000326315497925921915256079754629181149185521658460202571795392757643151745671265380943658880757889943560305607618861100204253408354482127960975651919558270068887799930641387164763287483072466611584665938045575625791496448330550134915572780692027213244369209194365000151767837550069328121686836664720429914378721347712549866507022185833027830809389209059913016370248082364799045831241037353353266437781486003065582345539427832464271367141076466609068167105561535937252154722226384743547956602363880588493042709070726447056344382981409669422803616623535439805188023176115892634378349289104068470964819560778457437688268872096318694380610496477426539454966034050067405852072716586793618063878178839486140795296242125190499274552576034305833784237985686306574676839461893985723133478347351261478385947590215181364206133655399556687738162605673596240442086232477111035856056435946595572401805901977359549972232173160705810223350664977248922928079919920973985237672687423296002591307072598263094835922400589233673889884926301830057418290271023258067540764757343657378987217599032071815680522970814192676458100585314998105320601018637862137755517245228259087819307865235741395306743527343492847572970864657920171768931586935772172063878935035305329245694091423571805480400220358994520385006656459301595068323173708999880711349578505622189650432845604662674878664187794742204967992665329571394462633695642555697012001088930138756021877831172453175969740843519494553612560056976996460068160425442027336826110769123283945889588107232936497318354558529645463111767080524992213098136339133601947328409686732720066376105050031591688582771203579815463381112239430493707561380891857818448535069253226004120551731613580631613050068869574876091101871208400907500190342854940471912613913250308159271560072078665908496651833152129360525960228086559948242555058889352080633019151302828763266991592198627240625815552440531954962830600162840270974793297894845530776239471149953568151596652877106376686553750656999745769775297675201199393226286583732555283193308791975520962322096102843741606460810300002875816663434702667463394515255211042170519517549237341331618586566140338061177137905013790633722440011323577289500329761634027987511362469550208022679272433242875689769462874676257900976578881365772184368585794954912295528998655395905553374117357143930319620117765236697929313009760746007542067700867867603525453670157339266368271774863172224351685500591738663317399544082409175480320685010302932482735772483283014112856437900065640762383730979589749787597772907460552441880594123547984267030543638127600797813110318922093300779018851894195367780896499492797798925463005966906532458814162194049137912040908167470833275189587565347355425179405237479382718857897811646092975963192715671009259920973077818530304813128441827114964755292064098449287645715433218874752453321950654899494852230502742400407220927212300147717086180035069921180940768261386147008471750242888487996442289712892075641091003430225084739164164417088237096314984790988772363506229718213967282156118349204830039684964926223804217194833348153197660576082966700976990035692170658445804854731760686203625302924804294797843673652682945391322605461865999117052852428759682083073518866016443725665406223871199955066101358695807108372939045428581863161771070590845958855448229610965261890303708341577349545615821301983972860642267558012889482927470386467482831740594729749857955195259821309093374753937339057814807535046396268979595864320375153085331162888940674534897471077187371745065485705852272375382767420728422889469811848674073961197189777123682178482845106003756064528280514889526499042241316604048992420056545243724718863556550904131262224572922488716495274529717523631504852525126981117816743057768715496788200281277726431517741702624246352998080594129588044713372725727173603913035386538436559626544111230791717910904918202866266216955268818776540419310125076177033601692742408899179699730933016425646049830706080565859847310967662389790956860305615240490342077181935426326108533902572525181479774857248106975821090706817334720753340365600298104452915728133148607808939009978816534933104068676243265580186163697477394701974540496121051100041041844105531508889225488738900341299281383834328732926615050266257062792013490700472721658006237225930404214973095875575862149442828894853305869518976412871459582383994648505690769773772728678510150484993942421179807619606729433617601125964768105320456845804294037690190800130238503937455744755897250494930432431912565695949217773092201996496236377164641867630964658701485758979047085553202922838345204986540543866923661012690259594219524817028793726032580996334748208528975734069596611551296105392976777384633742604968666274621022173518054230430539776591535951632072608746774685923558122917274145972450803173730491637208648303068059513083922714249265017210662389295578535831843025565318213462481922262481410032994282556342479653832683171421235832040304179976908578241232142898300877263251201722139185601681113670111614597156178755661777453536932723554918412932296893869029975743411770816600029085893340899613610134697110379389954011666560303070014255505025570474487473993263480431317271629811507338217041041125217254467734054359979132989612417940472446517226209483058542557658212680697743863277408303303742699826050340379917061913242604373044202360919748174493376634601111804616964929527796460670608789661876097541998566159250896713527014866108194289397485006499634603439325971309360042874720698741430825995816516114016338948841740269085672083870173005107427439773436885839954144047593385348997221228535744536711980162574675829308513222106905853459035302424924234706796545199238122559340674400591087454080919176183010165318262621626644237252583644740410105620231453881258171245419427736398273777944465387319625153462315843744877088128816361481317039196382001988401316548386234423659865504718475321816328510650166233388870122049286525572591583709578752487734206844071253828973776056738814560266257317071447118965277119829984072344599579108610865984787282898101061654385013604493901797255667325479330885274304201607343506612428738456287457051253922185542962624647874756625793945082731808022974745587956083694841772404446898789239266847098981441382940405503085592859830110092764690434921769943821134762671349526476195707392379416062627453847541008460559331777320701913671750667153984457437808578079428541196750309873876313144076898604322008473146713666598438906630855700669436100254778768623755858577529471170264370523515187380722572777247273133351207804436521338605953321480280677212242510517219827679788525386450395729864910935773260992718161159801064950336282326656435911606658366309172589702849968812350392791188137589327276415356587768336740898998100088437434670304053234263632349835516722202657103869178505847384790669112008360405015030908292293978447299037452030077273520589946775593427274648064789022994964505324187540852013975734191542065635621289235171697412488392477801077131227543249931274923407767778137171992971981662425499505766947680423177602523642765387757052625253892261820249498423112512823725241512459118455140830890924504074263051054222698855443131764622601508651540739588959035393785586678444546669426167050532025161596694271639649081926582563248067428142732975820398515792704000886246948288894271543871172856253831132053416973222273491947659754655334600553492451336923315812310228062489269506917339206945045943591106516290606424783759690479716633051217801118359627994353130349100516008415506816616146557972089251979941668960737853308426643403949270948352288756866153927103113068991895014743462745441984203626663053397630676238775571649857710655984820502934987963529332494724727895603386104462946109107499208542144631837456454680587365011565693693788155244048018632365895992198466649921063082633882510793474837121991091112299993836657990348369636060961902179541178653340611665683642682737591971975009852745842444425759718545759882105688181028132601539316905526146458706078634786949357587149159178477495413356162684876454321492186493295699273806789521637749918739822593661364353694501283315625569722496070163189185811367455873953035713328913439277618410196667059115731199587172698862251577775263025159619676704762283063197393544030991033895011928452128008603837070934994089872489709806437315450946888290222301477770056705414141354142997914159198230920957875810762425841061558346733022987384386457753715404600407383516003365110786422201611749610486546165622112162464639632952817896632802137378147785684362097036644642841031691269854488995357820191567047280126049489444769890799822379866084073956845256821685971732889434966138195907879023515067124743207242563777949722102074793684596962668768182500703994391277989057821899885531530873578999459003552674118924740952493325614929799921414817654732168223405680863823288413809145511794315257830880915907893395553935224934151350386717600889943724025200791549482529784183607060851661635484034530862253711604442246248344318281840519372175577035473096336373076700760460582121583184213584373584424713566929836323715630682923976806702438399203508112782320655831718213860306445344570698094771918115478329166985887284706580422746471013323549941330467699517994635709181304730587482757913664572717836555375055469185551834356358638700320203866451767860804075892106528664361381481073622795016090797319860215060595830197670183040132783101255097383838635158210549485470074005358659966636429572231123604125258369545868338499551028840823052553613879921318391787449214352373850254333459415200762818333520548214245570589664139886883004782728785821551273337384848230405490368535386527708799022870055061962659280361576965852862835504206694219068999032326716374508043278482130185856134573225431359314851932344540632706708713999460567224453975334902793354673331713646576663718335059422810471234764875808988123695423630236434962851823633241796001024302419790380973979473006084543006978632680950259466754658608395261972257884889880826428688665079273274418124460893139059542194020189863921708333429126380615169886366227711216543503450126483043921185656848871850954197343840496714619504228924298988451960437573223968393282386287489290703104651945880455305531969291590020627456117472260817974175544038993376180723743942591227182898215980097693441720480449345699456677908597388722765854086984982406117248999067060165185672950333293656550282655321438622950601833219027459758015613090300952346350146213370326324304127115718556757797964184362759784219513346600158332463967166576736854201258561137775006379201283656651381494581731168762260618410035701069213058524806464587009898910940063018282696340217868563901758067466059348988942616167999297386385831591470771204037512588139295818573871906788073563163193397935548552182269532989255601099558269521594035416147740278592316583503721264826663381353339396046084764785749831106182742117740747767810673073187754784646121658525272402178357336394191833197820916838835364910778156218974421869937830589024263734188763083791310601521124946777532809989565269888949930003169378706960223441435519603162588023987710835860890321851630701206726562957980350954570108106114558246489840438040690573254088895335872640807459289810186812260861820742034324415619258408752374074936625603019905357714448157663671841883078882337602780620417414503137727121581361613431651817302518651413208340892235765229318909728458289546863343223031007176778613520847412273276381177680130696899281454940873983829773771041250192319761592134536069335269682247204256343833145396848182326604505630213749869695642186019625107460610444097985692621522643597335507225973424220395642418386212537474522371975959680704947242223420776846039507393267191932481381925222523464909089981306967968194170090969862168204567854032581899528379328170422888540853535708887484051453166489485589049258289159061534992711962448907050277536540130156691667149282534293040454992576149293924904160474567111870717009714137472154592449361560761981673601765723504131165170425971543608338925434685282514754077403520672290097614209050818742570924721721274811637863532905175179264849584436008781371107822676195253483225983195513834931789720370666704495777139542884291709268084024492677511147615272970902129793762788505797636961220044765352258526385350394130734512734721929960635073887799073812177151556908732176536974641706427618805592082168971296537551425464042332516254994077568077932212001752139641366246066782246589244512643990247984041274626234018327274911634974614962420825369197192869272682549657555499162171770442113901845800079277161458422254164606910829100694278448530951464417608936148636611432699753055611697389123487363717421940247957868219709009466465399498375900397878618269512910363519694174980537702484509392766887263098932217762793067954137758872344540146279940140868419446229542830416470469454262320629667365517184175036762489593711654843559061464264585214188981611376921574023468859294958296097828594783156260003440280791223320928853614886086070090198080312434116422706122096839989155378731010595431177444488770444963440212841435057964526659002171483761651808507280566340644613118343992858119494800941037995295053898144545693419128774115822229322161363136395366419163487697320740514556166463997666282777206252172907371038168947364181862381657084657343710449222241754247258649505881291772485003142710440141842874524281981507645832657783235813765012296832153820902346093787194231445786060796250201978341433204636416588559837530558138751283653971420322449590725380856046700575403469285540520069516561771044306026474319388275659042764613828690534975576014380666902045849656677955503665669282637045322793104674511939903357771503778763085266332027536604104786794277209530950421944979559596826831604266606682987808952887700444695274886368741533066180905007818481019036445208022190869571127175329345090792103766651248953083526671984120875926151739023374997704903329474537655181474327352030451009837091884500483579316552675035746731667461078077440628602917392001212485267017013106658256287225065426780099348508595778419368356150662415651679766267969056626670700273582412672911676649591333519563299132632056788041604165359795489355748354429497581475552627386943817736745759586286561597648180402205960643816732580746345895304264270487788614125894876011643455036078185522496991594818276675059147870486966617159948006475962382375396198350440127649430016139989571274950005328142339199150920237645065232432525153470317487420520566274967327061342460864418807723755450767578492275384442338336572853678482502454350696792933910181287807778852025234352429641945707533328882774948056772360354794368549182553521124569070024565663467213235414505290990117099291454362112547748328039607431385619684365020804275179597311693305945097256322179960056367936027967209277979483516259965492722973962054824955674605252302307833405714115889158136288127541509763462866894834259746090545619431775710780340139541684707492418441565443196805292440781140052209417894254373433375491537095259797152087962934241133719065677456778895834381228750261652226765535663754122199326089695063287398228820034807317000281878700788940478372628737694062795809742748694672610979012195112193201016991242407917984293118239599233244895377928286736999397416717061339586622304357595321748844380227163131310917485787439998345809834395032601940773172825434996525994845327549115872451789365100945105839427425118180853701770737649358811438790417910173465760035271568280912897167840006238419294016249864164830083882492611862902623299083695767657025653386456453955464729459609200595215623497664109585600764612399995618539533295686786929177557127170384177219475839499950218176513812098844485224898156788618616628853966303339640765462479746740347665272315742734929186885356522893287172228974257987767971895528135645869709151003769929070963759315661551405464143416366430666101438419285708281845654573121664926551002156322593063943748007030935914234464532430168846655170024363799666255322654789400424421590311154397208840384232765447864083966136529851051373665206816360713725027591347572499341874366095428161469298942097392395373073075880115602465636574045231780453354513357266323410106916447730290140905636522143145754835410807869244890571501486972065214508199253993860667913264778697209165685555763770697817774002085723084801954023720618584122491141646434445061419092378051170565680352313103572450423224458517150304729770005632653089618851657511248383145429709597788094012047849264446433827528169522158202606495417339066897962004083963347237009800007735132862541347448195588274427052177710369751084994242476578069130533394057809613196336522921858498546210196470916356878036009652984734771049635982471013876273737504637625985536646494535634800852786535892962548409802261387334878005555664010925804509485514122886980503571078635985136337408035042836578930736928643728211239356708314178612431327467893982257121267608510741261976679516192095462170201911857877934890030633170929083518295806979459094998214108174531060722624917414995279552500410547211362329688711688484764002624473574067588056067862036860575926374513938537565804540152925636877735023037414083143017986500923650402568913043835940384511100774600037574951031321316492539048256621454404706707854793744710677852405226052954006568265496691836080669255501594491951297001040153465601633912247723978081865879400652342398716611802619903700079450456095870079556930203568746176733486738507427820611651308657153786286397571498896675627333541267829260667332064283132769292137467399856706364267414297860721523905720316929535981793922063317884111966705465843399615133671875116261900613252185143666855843508295239839573578955351929526465022914645027042474268150711109801691986016524294802581284639307204835645477010755165567532041586701262612431724299148168576110385562926862105313904397694807671429631534379872706986082772319236264869011449723876258728737933202594700772273343988818930112926103310335823927451276611431262008103051474573460680098893873405656117021956826501933517954986478340021035027571528494796634393277138902097150489598838454495722961078341915075082585065866037338510483348968852625701076091916506374908068469962872456085894217650750498641006309220034221144308785126488295736227858824655936782447939738111458252910952469792300547965961593198232558497758830441234659420243557907755311963936441467801143306387487563774341639556678254977102886213160290481108954615865197720739431915605280851179948045780342984793165923659789431357083567272714262425509268501451660474246836622965749898068150570478689649738866621337153935115293397252311486192743720629729125747401221860820265546097379053175489678595177445089309332529039385603412841973333029486467869964367961720349120714582989668294785142475385220906940303302299126490832737240809925387978303283208414969485172221851978333370027098799947092603799764027420098185466782907566966464666183307468068767508840697458868185610137928252093907323277096086740800741264155647423606371478029953748987287639176058024805093767297167383822255085521712802114126936909557784946092331364731242148978634497584659246904586327608047793421667620191836785171401320759979065698653569997548429773209631794453005978088523707861736539827090634630794617062973126014933975516532722471609521517906693593606871957756922054361860868946550695288259031287092832279002810902929247116273985847240591273374134493712330971373065226566705024022595006695058109402742606162089895962730968940333662517934674222597473027726007437160891436685918386902306741218563991382226880236814156342756281460681477498326279913886612913907869528736115535798502777104886041553669440194920810365975807212904712961498018887941862890631978686409960305956733222434708488876873980821460775700710195182524705041593934255770887115168894161045065807055640062299154223325089467358529274684785202404666123871030477247859599788057010412046915355779964091352866278872676393151325042478898189297128716019024376326346324967146697034475304714819521105082678807462334140372755134053422273302509723438448423273216376308164804755450487691940033903823823158845605682759704510172396894769076109342306293111462286478135380760100084438152404793692349497241777735851407926543569697145756759376925677610750220863351681068657595516142273073208312950512607387661507939249256064557647702140911109149871984012898704556190847173306172063269525397750763160887695230075623242875840385832886885132470196200118069897253483427501769725856101538061327919106390546015176550922532447875737346458513006551459310944077537421382327351161960139789508797451429534183694962998653645935338921851870907694495895894363913964077963592675116206438285589226114724196603978464580522022937985404169739441423369732871755205973218172671050035076172722442456624621215160380190148581505479782383062050431480758417921153689008974660495872929872809677317040126882618009319267425858797410867354740011110989867025101989745574902290215594844443210207789486272916536076588507180603482120600574400533895837270566274858790101828057261769737247968243099087645372268157790540554679898779510892473826066719145213555010365224096936162751898373779898402189995626543639274721676905100859329233267552262792007457485961630738032094119175321360831896826853690542638113436758795806809452706144544551258697809194237540704266206408283632598814651545450135280432499651287241238343654970042272241886828411197455499614127939848989369783216476185363843059311683697801306516788341419149370348785081138949856609499951100307208822880764406781330803008750866888485866108128066007131481310502838516214913968824087992698853537281965549887037820785694012489503536918389227919133465348191460616601059771939033138418847707034634075288816874184768445935458919190586821627268941723037650026309446232491741501262002046386154519367610495667653360057609362608790128646590895631942904972523278267302928566468596055766433651608935551085203325177754812445013334062560582787346179027043714003948294168286477581175072860198612266668795864857255834854391283913033672779799762628865443478285021701205232574496677686982556039844586664055385874020209026896297412048770808710412132790980341133071062387338944448291485365969108872521869290674589177422584338870642327467636294415893274951694770938034578431364897916318302950418296587356156077553358560187764259964132460433340669431147947555310137839455554682461295597186346114580372321404312322701941099990341347666668149940937690140671645100776883262145842204669173001867054782425410895144123857268112003793926106791627052158006487678913901241382893854796538719842456956886915733985775187364989147248594762835259635494706348380883010474858741244291416484335024254009155700201227312437185784746860808581111195208077991587137987872993315376117325556099755160356954307776208653753654026455014430026262903850857746611689932286877201576406671155637599242829297892310164408309265648672063356010972318379981592668043935804974150329989015340814984174268435434534594329750903338218103655412396707808521984696311840567879261495222521615188565452809352305388809161994062866909477903300295644178514127529975571353675787825598249730400321609335965965149895005904673352848499717313851437890824725059638580315196688413394187251785542393439187527856089676535227280271071093137827258185007895036698662304425695246309661187020692398169818519270634015938650515202665368588130352567121353944306362757384098923473583409204035449305310862654381377812926757286005998281115663087371810311633952036700493526667155159758594041940220489196377892385062783070875864570540225244222417618462861044933064079336707664511004037017080695707152343612247041107326549518551223861963294114701375913732306574359742392578734121188330364284981753465553535326473083770758823492523357853140863194581028782517646088463719305639946641200265977557073473044669187637910191318411586306936579280301851364304063999935698997740300402368324007867899491033963746860862461453676185701203941392213575931633412773685075255697255444197877451959990612034534966501965743829870229340886969987933142356999714474185809954593415578737341553167022511018978298344649968816607441920313332617385220480826268749746716178963821960953738372652265232210656897284630333326508573876279571290043792203704955071214490067941368384652312104198022946929293167373952570806725229570074141996827045791882467095426256898495594013463643674709915791530867135854176184500066970962888105020324238738598697796579711306094229948824550962754240854682158006783091448198107652253795725135623269282122488478124025632936170995297507954580152142708333974990946516145513826338724479790921784483849219811069974546192249951985200432837167943187266030087450748774576723473247407013358311688124560930072660896964303636755959111565723206320653625222502729652368332308510553473231478688367262395858831933921224176970031286532623035357165711953684967081187749656202053720585116392778644115170530795866554312304873911844027271431082898396378814407168834059104509751165009048210228508589733297537397466557968394870984526790142145878215829166374810826750686004460752126372356230095475440816527595627794179041883049200623164116136542236672212187819796872193611797149306380088323053552555343206496539720622996503436113976174468404027054262796320698571093375117037509209637789427830398028241760767867479558747081560833521926726502544229383220769007959734546725132887466582985560825018567579382181024436957151689132665954825465000239978806908906821444228598495935481004671849465754045582604459713078003369362176302190673621099893448810818443915679664326697282075389606107132166598199999305628262126786634911753653646802405851703697749106350448903068297966449765099679950963900889233543973362293979486790213607007303933952157038248534070321581987376869343015541032216089597540430705498887090239320486851305005526775248219237755845726480285186762836828468505719815868588915930710963922046936515372237636180889021101620822684347805000067108742316665208334508231478054054684730445476537150500716823705158335263227963460855622952231506098342703354733691293555898356964887407437494307619770743364054815299830116847486788389009421394895869497058794783293005221377125102490913386453622637578423233655600784256297931200107146170042023819599957711478462948633779992916164386774912111682881440421972602373086152725429855297463111804727560159435611583883170055857015578888074858122795795470466530384587587450679839876325967885752067445450998257878857953457856328551090500938083411027959738018439907459148683168165052643656184857807265191618915123542288182357706528702373616403786598974404763555585720482183087108973563727799102161679888227434703840302538147611412122333045832107587419054255100019852827087731808209409395817549150404763750563239638257684272023766746274210887233402882478767530648282482877679769150216201281082195596760467569122178483493487101924724418861962344248006324689032098490047897360029434545923409590484883659622267351403416238677383836673209458857479407992534016753326109155619599331846439402216092847942312453532270061932600863683254814215834798759468282197947299314696175089748915471800380801272055573140537388712445542054577604112253627155748578321922209024057530993142356736413774499270494566167590690579323493504559863873146363378803533888684348132985538885288397495871304387591247650861686834288790022311717847568698225456623133436757318060618025727790266041470081259824650135898430828351421384744419235283853639183723913085045743437105775272054407352722627931552831203330190983411743579863374507220330708678158061457663541593298490040973136645894057778785057612481582414042274769494646798953883551858706351525280911221656529708278597721371678622641768306259281114362310828405154477651927869167538337692239149270764134248470610759064149914247132354398663043384301658377175497755311376249422000026667797009284633121157485043778025596509914748109986924337642395917767654700563017466722752108832121275385110673052902398956170233628980972328063180670780643663473941478104322977701997520342194398704366274170575075568906972268995127966473333070216922162031006043997392741788139938626297987505919265640101953586093695625989868855634042774977206618094914059845468693675120134435491442232228356359796641912029001177325930116328070219785543812575209808727637413665202990938578011045979675649411778999501053937732210587595534128168599071777561187788510594925590953473748280856080000559768224942535383694236473784554789246487145422670662295439383965528037955131522208158069215038863179332146798093725584707776302185263604280630481699829809991058354045950817932173190141306374797740776130081959355174771301310420303499429095168616269456188678247779049209034955141979798806454576445940179470572251126115706678753031722475205204541399075313344797603992813319458966088020968340936896795823421100757699814509070516694795043970110282795188203782041358300146922056689392804281512905150167061725822228389285266245082461705159562408846646624657421959679349123543824987116914978804092935424309015550503903399621972408740594591054375490047387489093912514615437635481871293815105725927074749421968008371579144880292436464103104974680512039456337128178836067270925814117132736776416266084196278992220834207014509033069106441806736327019637211486771120954835211141858887428856534667256415567620517979714708073245797183275382842682644115186817526827689952830541892201983476397165953931686503557397044677051851826546350563212070311692437602063687455048459045065290782137665276360724750769944687532607548450103154113863189750957962324287367435315534840829892457089644261260329009429648624779615789151486391756544566206475965114148653347866483347946329441677333039585173571302352888768870752596875466209856646129999962988597380582453462785645495096049039238606134517973150440624706079463511262557072893321150996153997666233728916619688014460392151501324319654844827723627261251187981092757683305501004017026555451556270284418781027463608788317601897071096465502724019562384164293506494328492750014956589465356668865346944146655316422432525202640146645277391091743419311690800761802106947135581564862529372156489600270074824080081124016633181436898011395733340838566816499181456722503999729478711232928840004459150248226500523823048154370515182306246601265218847850122658319000177899413282658996647289127599602939880617480937856281672316692235920323923182728851912120194535715539475280708014779750088586111638704794068785506635600491751759885176717879988235983462320937280718456096931906060256872580158649000108480937469587721345152061508308684058847876122198746752826473158356668251501953446742694300476558025534197715491162234306489723006361943295876498308593485780221408119358033349865486061225533223718331324562077145665260410851653580999952467501521171452523480361731541294549727194593135243485540409775488924297254313251886686089129144066455469133226310835798424419127260304967401785094615612751794313907293541523437019085063841891936544813334331802842474111057512012749767937249449363946188859370896305295223845219756978894381934533609892807863928166279362486746354756491108331425445790066138488481104352702479551113925797377966125339567510016906973415733259395809657012755384591783335475284818494455002280317856884238736729547420004646665755574679324730421689986426093894865702546760723367956595367860647081259514139999877851389194351166229103110470882772644907965167057292694258698551356653493770783196227755480964823750066862656672146743323997850413797219365763133680562289332948400417973214729386345245309402061585182939267089240665272675350190299445308396019899819391132313656847708274794411019259369892092402775598350557674082623205204388180263472222887824271729698394331096624693474954031244794319511336582315356694796193807489209133207487943027728115339688066058848715375458278081077418180393244150034982297707305257208878839861653991978261495995718946750052067683017258718335599119931602599114456138998888052935068696957733330428909218444510678789096740077435773164126778234692856627212071431945288979918665478937487279831472374065101669555691913785017956971915078498019242410301264161001115629464025259627388766816506995148137408720744874622241030349369809424006076867037121725594498112284571420239023319899584716431411294299871305100184888284920935323500756696613284919570593684790666104217656924531159157221015531209167241341586194026649174516346818975535817734520215468901388815313943435307528177058434985131035663099773024475348616163038516088002600729749584506290806092714470915520954274006836909704773173868103640502403149624851400701832847343214612382973464602527512984607762257343407106761607927991239536735931721131790007056533012494488990386318346178972852539356905366409651633115544164844653208897660613304067361419498780752277097107666205367137003827811987700766922275042637241644346480003377401344501048227600502932085525251710605911533152325822534392364785506376374897251603775512136204103749552505883911945013085218739896880898412271159874015880372863151784155891744951824757747881545041852147713611806534915901364557744608657138029678662888177535760427407881474706628314796641663322700171746315804951454417496734162854871684793322651350770427129994007242997362366226252533876167468674677674943246964799116948920736035716741541077333001157007001078709987031895461722292951899148386901478776459989946281791797974720264982795594261759136407708103004210730741170821366970439630819981295620492570833951146859567947104504007094991608370160723136047970337734074516029726481747235830379859299269177741510126652013799983008060481739603250220356744285310089384768039148182186435450904887461916394543823310823516683314985833682754117642173900247390202181029934192881166198516003833529535762630747702353645359292854891949414571238330723332872596449629205539302395960218173661236066635099302485250365874909228368752893241478620196146163421252422390540705822866726947790023620760712140294914494956999735110174470236691430322040875415065162882539375254212813249003731192406971343592094620835344063221670473947580288354690417594807717120985184723370372377603514054767509154954036048786427447028434106948447272069706676375831735283268649397468016397557327908890500568619536005794062791250190152550152395413331187108129896257427528551206477896794174103873219752694862860395367877354467341961050113026059853297847273291719425330470972332764892939218704467322461941879052818730513755652264862987917534860744994846672055850832289532970956656395587490528917174936779970363712467651768181447397882696250840065761592445107948615294268105037403639888196324926954343374291617135142406739728253472077125162780274793033646990276461652084184097632623117064787704510075113620385557707750605968917646059109281370834871135437890494000862872451979617706019351576128103093873033032474447321143053918640592963641616771160436742190071510166827473658185338221014249031681351725900046168406593274744170233849359929514259212596966240412633022038833222554213349448988748919957222282480196873767510561155704035490461859506458365820814863388263398037654683086391349111060342094051844471245258960948769366488938358358691060371595682583482618332630997932538925098410387281755247954873656945083806859031328778151216994792969900919870019899383222065473139117828113258315832979738720482364792995152040828990703762409589480404344437029615392798526856006725772386787032833330898573168111156169258531048597515711542760718990752243061393059545463025712915620833820674579463462636586162478748638232155571148268344705305224744007512206796947340675317318326170788794737510183504327979266927258500770750786092397958902187069412027634155451305586382874092766959644628729665344528574550400340193805417421375901985251623643620536328390826197472105831394132797946674584893267760397237905033380608275656137262119688424822849183597657104824385066048102615362593035857626761634913390835314413054074899003409650820291337606881663515704051824004687462874380447486180496797581888948988612457123767162988378259356611457452424621935387071983630119286759600136019707771295512095649637390362978708640292757386344212109815100770094325236673625135961493380837989142991740138705509933871494613485232749670189613986574203525293422968774025305635349395482620527324311680478081786369138530187416891503664474983283451324481584508855621100876749280430608229491370661653168603013797309355012038370772922096529042139457397356461805860728820026555096356971389214134942724293403098937883858240899209292360917721900335814832919053991738329228638677181978463017708278374155200511906007891409909572769117036112786723693481966200638547427336429800198099791543563027274305778623251759368361791776083796262883043537537891129070650605174419484099995910731663780301487875619007172522753828051558060005336532651065619927056747007324987329160049872595778112775695387085893962714701006081051538194021356063279183998818989147145391551982740876242207858981208458246608729293966593475740271239228362606493163222397280963921374668583142415009579839327586639127889866044900851527167863357120011713700357318038441436113678356924907383559567344712731661985471640322602592811498368109555133927700243092234819223691936955906937299923229210393378362006915918095330353853346101861836883514290738136912076292578108831599340665406038998545537238496652978126549210945307099141201639527072376718192453698288146448908678422356113137993066935923446404978661238608391585740315940195327179408706877453538992641655645844183731569151768364357872589189395551052905420510696912205319784282926498417675512857219101858585737173051860823720385563652159956655099228236688974099601860223812644978716893234482495391321551705629684492796399330083058269677607173103906905535580828681628109688269830122455388202609415266824225541464622969966218628106732045074331106538301244505465899711966447369294663476882300346701964803560527355825834014091332824078885046741002232103258934720302127167826711190710053693871105485618334097434447561880442824952199104603918433230228657756446611187184896618250918175678220405773255936952476706475310411607347269357254182192610181808890204494325021418397272849703029615340357417242417347761905711475134989437815113235977018143574722028245665765038106473462749205597047376661216472494324231990281675360214096167737650800043819789966637948761407132264980632369704403935860483079218382642783705948849580298454120054911491875899397064945162343971225768527358428885084453590905994093816324495954905385549451063211767730917264269771506975789110594052164665676862156038474345482529170559051233785163756153286486883994526897735173475063316225315455252906166596351179427320288487544830549650600678015111027819103808619443534707319280174230817539527317490818610589670705647245492737277298701669000526337881225022296783808310973006803748926530112140893401622380491329424374719396412683523230620168723455348466147377684563715670045107675745563958168695851828284618135797852434135316007865530697273694497298814992864747539785153588649191425095809573677494986646779968797864757429398030314675121403528985700953584008981032595872537243984165549316853685115755239061401127030282356757378419078020775759721286959330875648001327986814999235061379409265957143250079833379841316563390940843131089696232439082265077004604675732851917335609615767415961137213199567659270803345219965066470735782644007925312888788070780859643550249386260443479819730865880402546372672100650185644239944548740696692853076325652399850740916750532676313028716423424190683909138267389213666245028033309179009754092133997045803091189988992666526949526836393891060458623384596754124690472380369612597133103875535759612998243392093326906920178604809127510286967587159527561689213285978768198823557226997498199246962336345475833055130978787792968545469843439852668367200552335633959360263153431591514303671579572293911026401143976347069577412748407816924162922789306995286877517115486271636296598206012645908460820619714033106104460952732963814877658531923759959071162651502564050923764298841806305235576376298513427050858642203626062229336386132757477473741176254171977747393789639481778041948647265586707906429157384119065624037047296314172230662282421373910857025301941421832037206515045478924637731766398125940034625884420349261383295414383672333591500980824425174644660765438042560169917825310574011235360277149841365526673839862593078371408511155518202852259776984167914337986042282326211245774630433081367438463495562646581588066935025729740842536304314201252083435427565362584000558541645897396710775593300670568501158464919935371069636762849298957003757693507000548666987403723291253210003566765543521359915312662141592170604729976552333626397474450240170174298406396936941976473270076412590839585401912873498312311374199039841498050582235654542929463157996838290634735244612804192973533246715445494011923496405570173779512756977119798623249627381154681645594087562551863225685288736249641099533816724593860249171972689389814698321382467737522865334769708578000085158309319981920906847292956870485167793261003161566622138514483664331715270935590246292140011992536271240510128283202701952674000341671125554651171209024842800069726451874469079998412700990273357090217845039314406399244323620282626855711099011333066362343362994910223022365827120786306645404336249949180093897446719170437445911344955353867153135559677618488033795810181341101706576259500086988741273891716061836543836087357663637851639131735467718932919748774249925190533361192420373886664904083951419455286521065401370102105468223401315867218363349531541086840824134224234353143477718601409510945447481383226675884746738780668111362853530122879822579521494830830543175876622348971360824305539936524419298966017853569802887814995950667445401292901706045706212275821005228809090532970754197701305528584992916406655431956752854934347490600323917417628639795635713234250060706987893167887115959850338873435591961254231197393853560508686638510043623182265415476863662793773910196778005736130606028105549909642934590397005620063773822688518256845950071147945754059524145439124297319834913650238054868825300565726152420618562497142754476658134714955674471275041014770293514492757108592264621913977100662045317694307841322260945858348966466641106162879081679081214168704072445847703088604277412149691611869840727327117958792359835053828250015659640398930528360308401305732153720980298532522964544623051779329693631892284977877227733977951600876051374905814188817777390941492761542531636449280926129900587623921213203661611057440217042901269502114813110804920016970900723480528226716550385942229311164415266048892082629661229847659336296510124590669847603551665762860925080294866460231009301588514727187800484527480697789358059156691827829842682335312794888645177913650167733043427238540770552697506971196836216076699056693018275720596431705504036250552581297746120658786202223567247381405392484877507780703788626384005868452752194896068042738722361010462654279677926706171321015997514059118475577742828803478961390851960649956344986003496866799538872491377807962025056585963538850480166993280307502068869446204316288604516010164625591872099541769231365793226622308937761797933662397809611155005038614966389984278765134216218798560283911050509348932573884002146553966716201896344164550283869705425445320228721196496183393112605634750406181417105748924030927942184328732709040590367644033067937359910960454697187296632630353300079021658158526522216640798003597401730101987850715826686406389546325422575350508336287308079031167974894231257159435562725428501378644925352177965268956813894100550751167780894030711974161025085232900420029301765893859925317744389244344777354233002508576074281252304053859853243168462424564362539015663395070298308416947933222170679928742975543959725320439321847595969685166264404640753327152537862578915722423811337157108116280638587038051509547894527767682465837127126235176540125682068450572249072317192544315252880194143954151586611044498406570307425234129474136048368242338850448359224547065575936841311554476224992617174955887686339650641378909840133756331055057238564062245704990647693466708341574210833519370746167379765526706134977028507897946209811147963461197836375432477722601664836339349142575213067388029186048785712487204660663679445819503558926911671678188192201406791760421847845767319859840551846515869850217149723875009887895575873447429005808601364060342989298826731899913020394991521682708638258975265286838918945600943883306022180296805359681136961405756627749483166601020975124171241098877492812640314372826759736649270328639215392334689394323494450063300434271183529791632967949054143527151268117727281337595618692932935627310713803530394806804670226544908434551130048305007115745272604179588754664780841453320695857835187690977839773504152404561413830436760082885783881974875078915253956594365446062052284277210263591874700483845044437877767129476014502684321373208027392000706127786946691999476279176926481261374979564964581241103787213779829380908413166864276130454524159018155681988318071097210689180223076308906501914994153352370135933353240007467233274162951989298593469774755439721999583531994419934412494783317733536490457515761647348609005592832663949753872627166620146825517521458019221191869299224389563013708215388590697910869237941033872019493895324363923876563500898032510545273078023284118519800885599994697881329576922026030807090823746066752396404343201939144496040244708026626132163333766145088196814862214907949262348085103985509777448845522551941796779913822435990652564898296167493177578327996844046964558664530954812855689805014747339242343260457038758864358056687150254046601952776594437364864878081402258094878480099430353831419509126843526490614004685607703865903072748816568411625847475187264207992733952944800483792882164453288989847272657118305887042602240598621402904015878830861075071637453802591818563600487762879924941247494149947371793993758522628732981484550538058123122913184245291615324298798822375896958126978163398299274843160586976076158810603918401001846538111757830481198025753502221453916509877220815042310281165564074038175927174138644990823867354292999630963796255356959385292688583571267699230266087449391073832475051564979751476839287504414657031431424743381666181132159251888151656496733627150055060099751590676351554932039388166885407261018861017104995975061410546224572360531560813719813607509426168156668531542113300439477707250443374685489247804660982025844186349069649522213750052809382018572431432901883747640061635617996792118241189080241045123036480778893065641223924886571960023846589528406139869015825513766289452200241763072469944226902520028971180110152991534031922503888435372281552094758948393428647296897132811040308435613463801000343834474189250412401883885553770957990075528086189059334131939742791096180233958435959622117509174700524708693273178802967860912541006241189538465415515583165712888657521397464756088082576671580826325249099332194311315542280617406719292908345516388299479452137293620420796065798425974584054051287596575866824450851147884315909500351371791913881202872476856363682740939678334912228466725392232480574196157625303864556654307911264996448376025338387110384489386163301621170242509445118023681003715579095733876913446582764127763598508708043410949923561132098112142111443475425103864267990117693833422627972055161542578910296048340704278503871319425398985632972357424587329045483673003402509521239781188636813879582439256583262610625452784892182962558564159790188048450187781225908877744972720974512950683102201387256624658378572682565054497098550760344513314210527897453932695484199363683417532139262641680536511561738417861070825294155692650671566992807446821526627085157465472643329431106121334224363688844633098851665271442386817573910435444417302348055621414319426881260776495047601397154743637735264270481293376321263986128180350077501099507206657650207174931582459777016520691048333274874332608343439133312668711485454493994367925749631449413669420854393225092733867076313142362389873101323676696471332278215565867289121940115971853162746729931155956726993091807009483508587883444908878356537520589237545916089881659301848587857755977296245415564897198538852098559071760737255392405041157868038454752611675911816564400952166740998353076188637735889510093076291466233915445329456666821803344642676084165536071871458355155781231203049491436847764100629870364361090619886120780006158432176642487215948752773625418802966018253738251168962688256776548917421377181364204436235220179624451150489792223030240831396063665035505495288306795896303024981504029507436505129047184898521978143667747025071315674860825524847022200195572419943332452617463273310616433274044234354869431776312578996885728838944466767623853150983099271975966663612545455685200450911934631828590705547804571822485135110336397878432011905295147704560424561648100293149903537576543420459573147981708584226311363072536587042001384165419430057693327157968130897076204553328824271063491960275661852342020879142865630618241062223967450396250523586455013046059048411328936892940007626104013456195455262329376773438034669888809653894022872227915654102084891970987941944282605324862933170426713367869473038321749459673654304533194258183269571784259265058556144246344869016599368295483108140755466974968957942636292443332874663054972003728697053174061261689234324963112770947192670420625262987367580550402951427361271417937573392210745893833875251828844360270911538805947672785358859588393447774608131030516577181354248571584441459645130990143300505628101013191344111142420436761619620175844453080619331945601029204145356879753919035430811665923775663775837743723214204091017470994020526330454926034908693734137811166209199310262688874927750414684710363590512445746302905598511034655542473751855931741927124573500075871930124382020471428724466939218799269111098362306906205026980254393985935151763633840714997713368807287752840306153900993948630957021768342252914401724851298986072881516215166469655287599839938839414738151076091428356725641132967416157656589241617765886577393256514744098852550965409668714500487613895365643953281874007581725669376845667435306014959222772199761202232604454680577765478271414318528138547915395007751321818829478397099456816587919000679350146075234499516546319435727198424015767418572762039501673354492002446919629725314908379016223994602832699330342174821662595402934532200916021384991334960067939975933728734474442042250310706587881842512525963965591388420590669307923233631353100555652268101941351563546332667085232804953336078063251467756684517666581300419731086275924578231610338646969199787015483513565708107897340178306142793758366069515740907163657418429014618698299450272088095112100923921312319846332079573959490909920537430463401298055997919667435767512610367237460256667227582245473227817247457860007763364066306538900979885710398969603737987612044918012867781121846921985689106833396827566611320447613742088057453850304009446475414263394475182251319665789671636304461468466546975271604629220767561069837990036007506023546616023083615042802795707160506000171781027499534497204086372790720854055633735636451008072123991435697131155074352329539899909176936743572125221978345852188339479920870116984141105670895523501200050957858958719424273620263037516807722252088628754628918886094583028458083842362936208478452727842236142939442838606753208925097415213139778520346524054556991984527448717459081954908488551458062526177156394719189898058726465165922698602442265176786890615370943090253381992326198920646437745189943684033362192513406562097855763127371705989770081045970870084656293308958939602400035512950473861801215230243686665879717768941165464678836660160755021724939880515594098729447841640447052844348859709077799366481148242691617022514687713720093555670099843445728997460677508169951694249194456640631256120750154379205951286745393653381384951836818018072631165435104244527877973112665592085545232154755766421635594079159128457874316420172983141235876430236933901263849211417167061285560551746864439210092630376531263901846056732196650512543984928252890674717055591927531406553339814075969176364899091185381056502406346854431304276653800467496287611573125540966593794098671197861685830512304004589669484702891350543750494142265052920625293042170026606102200453234271529566650856325030420620681759915953794282919030454822358300168863702123761237585386099460691257932118665649047058606954817086162201079869894918307293250380231454955097604586685338647694238311779519893473265459524265179463498559040254205058335929891167538725210304259354755704638969641801058959277005497573237776027940937192323259745493637634311996525392690160525691569875205719798104669141132092190533929045454121283482640009554145729376466036033186505241079667039611537263195023032148849266894214352696060330804161890301098698752538224229272451181538865649554944272168272667992661437788086011306544023176545639483881726161058095198993097153223927771086628859341125915511063158728473942558557332302259702858346177720926258302980028518933130057296537792804298289565277497170971435015359401949116788777168528036613289325830556589251841609148441638189819859855081167149999119108384701558768137566672382027667219222982946105732047807995997134764939275555290142821610142780136631349402197465218296205152266338681785132590466141920205488442238920758953909312538088116717405408940635914014802259064787498996474972406115386007530450537396987789416180140769567255909224648874043723262114430554724908361332285998593424887317254211398141974834567240049892749289880928884132811414091353232965728140945670445375571627626794472791390515993188603391644112333532312033802179090252365301828829193736652755538553561504195880689049643649655408123703174208282127290614633001899073114965971245636373357106918348615690980856017598241414624180160689245043766025970044458103291013284114271728065211364632381188903057515295065663189186401273521087785405983503267797818599540694554563798063233232532071752367072593723594708845931316777256437643324807712172014732401269123059195808184247023238883411684717670043917325043853655732245269088257792395613605416741400203086222729679100781064070901162554915714283991558598753092368515587172337904637481167116918458883223729228383650473416258374925609303384748232959442183048893398332504067737001906749943000744046009679284525024123206463304166026246037429838428596102555188536701336756800138937506463665490659200316065444943874700625535718569062493612141594883433187386723367099992851837799324320156217905824986133200596595435418444602180865305043596227247629418102497894251334505933362427226140101851299323677868672799574489266867656786019744050565067728272316964980879821781334334224874982715244465853556998817851918118217305428182986312059232543773195685905237476006824583664322190453820501580284646104361517456474126962045079373724146804042007575496807244000658768802874534796837549887795241359017367516395617910063553828606335764846009136371273582686966638137220853873805911894653754714331617675301282248053351347076683594796674523209091389081394006822794140851241787596377259442665776097460355016525153343326185666546366353879545002983079502108195242434303991812153676137559976501071454502492172053276150557966106602179143550314670172019715720146953670005042574196437073960460546332131225600174651845587282176419129680330163134353586029650150324217421800784894899366998899411010327075074735440772932969673264604686077749325527176607028535374683246827417742049954495818895188615374626446900913002050939081148870793660377717082978335734714942206656662174094083223792388179895078030553209752430181163335261395663932038290406124241620819523537978683766335784873984211921482296414464780404506684507309405370197285555858562091536580186290113034534953086408340573719479806126896664587384863795272388234666595985501416458321098677836475706554707779381624780379054154393216040508680927560229803174728986011936151133022988900479671144546149388334581271110321380192029873541143435138543306668897991071698394201906743618916155061284828009098277863426114775212736213946930074703777420585864568655048033818318535205484437498083939273185976274349528184528029659893010842001221756798324024295215954960773592959204254698497601369246735767702299704537186125309639884563985165727253296259107396002385113243773688469230322554755522939196494747519631544928106959076601001522518908606431729664956745427990012248375240065942680877337147063911283527071966700963245686155230819219400632607698530194984369180728915872717033200268087581094246693773457884291743439094495908365349854689696202681038933035087913998436116556423315935710110142934337332324699752697088789906196571974145757151222965015070696393022955650684617683061956862414266853264654915409778663370301457107986496520461190949151740729570271958105841786619084406449640224999535176962861543138604563207316952009739864668803643179067089469064400255762504135190814601839772565381870173292876784351856496991684412139977991365153719571610164421578760448585928885234611511004998996703514382563232274031369720873244094855899813977317700322916704770238220821214695361898624434206692144323032289521696799335671323122073046231714733453736533019142572061933710024488973133454579307203076129712769259567754242098411009258634888030329681687396364137350834359040580738599878832576776762482797107589698613020601004243476805716128935447333979457369137481357824333124478067503716924749256806994315182414850298139487670383809786377880637146864362392583735061687389962756778332561234209612469668145431165271722440852472233977546281121421287168034289786739054093989106659167612988243399464397091362312779640416617233431450504683125678862776708804320905710698934309079592310798268247159628575669148462308527568727164665451484464497554162826174348543707351931722650648602815641115114937372203904338649622617473101335979605191009190009721112580238778731488881202056146562108557646958337817429479270033189280283262961706869168785626732104361424448068709175114700610488012413548627777230812676700942881812043136115497957954318667445749221939157958891217069363908552494287747090483011128193928964836540251776706011742210061868525186017519769764148833740088566083501746618680792630530277010532287008520075912172754397730942290388740146776361701646187036653820904201719594239415156928409724362659448075121440126080989816685826089069035263788587689478639443622840506709814602209004341810163373482271730990563222471876260483188097644967431023400237384396301236192623713431451771786249236086036281699626422022865070207540193300113096304936064592898036403283167799237793777527704369360409713584901229102536442482830348751367564804782359472228664473663243073216006247179500465380077897506055597043305880079752966129943319641409079837823950698436073310927622666667871927674346968538409866903594431880006235922308121645033114461743322067759603033090780643757700987314264066782430764347561393819042532169670844258847378124070766279764976386923310394882177034568336356204221558092046240829524671992925620434290977769306912716063068388087556505075059477554312841311807936365408879270921398041856023580869220441824434600326402944741091090344676643032430993162334734282412294666868421024379786393618741979646197311589101423792182024561303456785016524623962933407764627059646095527481174911617746399766057300754942105330466018888108972138738079407784208756486512533792354824426669421995330680984506693432470601152569385506899157096602622940281826761376006031428897166527960555207379205442597040794184528035721131341270965029884932102202405548429286908585419867847808231567040953379373443279653448242857220345940145052428521044030127409163771650951664315438651580287914427067215769694703815493040307122259685116304445799331740542489603309065636411427839249689997364996487001275820792075140366423043223379763505512185240557996422077757563950801404111158698545133274402509232227247889855242097465112255197573585617625969949252974381630791642952502923759811431502389784656381217993104283791484203345290826686799723587828245687249761704555471697286074582411677944225311973082033652841518882838057671061257164673998698609382626151495627283087189822419301125397339546470310229847080348572428668488998000916468510377545968452754979086256148162296042441421263682717969075856520095291768833980824595415671277415660343755495893948764978073872274316867515151068600730798919398986243818389518640676646915118206363570804860853513598642175771894793707618995805185459269185712134544119048725343590861584908786465620260396214381487269778362044072285727096388526144692835227652107727496891801898177066525348390499292184505799392825259389859142541580768786001863744586287004875016233205975623970732747325687958998973590827030891196629935914740826402442600979991666336216141523653866132483614843282917408160686750451417765330311917380113625053314066049391966077000214565582154656864417718462205962230856627348522726548703213480255294764724578805666539624496896866913028634348436680212931572910975190038618323747176025555448249492523109360987764909162838214114117169673530432361993814410025790330333037587682046169947342907350845188253455232471031065696935301194469838188544817794276580369871745111107721182356442694545439275759348649785359017442399240111675058518973627501008324038920089337710604624297415784669220864385000359224454580328988598234829600357618868862629768723436759760206390953967033570856065558029702062586333579411369539641678755848288849138319973542533647150395239410730997441543200618445695206568435973740453092611361307718972737701381808993513305864935263537394184173090041522083474962311095749426440686674297654991176741132626771668740610703261176363661079355383080707296089062955258096385850946928606435018779349320886403063966785181280194080528405808743139799262112003688040972381194127894372604282126440278131146180400173115569054078133185218856137464600637630381681565600220574789257785897401721839166046639007306418336982533229955126155699096790404203823289489008965485931259531165231733648458711355008654561923880187783972953818765079817001943989432183347189854832649562762415755202446914377451293171511985496767644679814240195811172478862777446365984465220192288039146210789752610689587476199962148645855279469838336310534842471692451719402546555982294502348780109388597455372673709320424877407940878449911894614986835316414910598655341008114651754840230301705633833726117834718327042086855127826950848415396421808636644410641376628181087044279789917188444032321157409325741801574373918334805874406513184496380210424029542296290660312579250297084970004821119590434721207370644333523047702809584445420105979071537316939898971805539142559205686684880286415676626189192530040045096716766529204290466977112546164374665562074523218500745258285275475206891235585536862457539413340349407182879383342573588262056588871911378715833470211062801386715429211511645234483640288294470005296330684334785040960058287924069165202433911301800715674584455833748237269673141632322328816269318565016831739758170264343188760395689057505772082914984252081452097180547086249291062453014849463645252588497280527901835751416021077673359945768753185671871038664462610778424507593700517802110506689271335389492395457204689061319230638556755125786301333527207909932651681028552543872769541358040389952782025634032009970416492724696172090504253572313790670338435745319252422981785006165866072085071681691923010866250902648305091116857685378951807365070444845095239730017980532829184658672331548704464501173632323192781696333349827029239239306448447780290943361442773817181487605553880042171306319872067643352148500434363917705989898533097951131702591699982747131761921257756776370319444545062988848664553826714653755513949568983764820520820583980545931984865367406333677415211566189220462260755278960707231378043641921235662114068648470151276682267054337714090861809392141156924253767116618321374930373275026861857874107682701154734068549761854400632922786036150239888079888058656676045809369745655531247571816189964987122301767044495910472110745673396075663828278590647411315059612658734062428637734071719336880592667084538086798075682471700488494123469177763360411619699544976085369194070193807733376197244934255776276249803938609172229607621870769318464769040587537206393818277642124386760176028683565221830774404658012032340370020675415621072234918405720640275469647123777584376087338946353968715655827167011112799514645895049776833777322842185586510075952645329314506529531074058770018840338977996837382161198046018184433437612481215810068203215336768749622687495237873925618440653429094003883238158517344761747057420567211013324633364271731542427361906405257107874890783866354505451475192568194975978751534795637643780949006697261513292455659326890072768182996863866016400603523276590793491482313276683028702907677773752648254244289316184168387486899475907445576369523519054087288589113860665389186143411086983768406379783442558132908726806801344580655239166684968996415934565922881524213290008518433256838723968792670505047280837503353922141179705890947088919341623103513905156662624011423582424063255350773335000399864797449435445862742344458962207725063862402826582281347894444247355619447573129935387276576859355279606510976120033494290467215583394019324943279109240525836234884054664840259779185783452461329876654155130657595709624243155230231539061028445958962207808321292608951749975409084980727768644519171869922809607153077708228145141505540677299848282301514254774700350145639292524040666960783307818113769400496646896869767790756127817872366349395657078688165956744728267798913223768061841366926551434883071729211290073540130756969194356412857219543576283868855885295391995854041749605592260396251554444127218180667317963820250693162876354158373224668311394026819677921385663877194986464261074710438659702606265788144847221500240372391071806622362630742184180536729895415435124178662929934036778359156097218276482872928646606314980690874376731492348737220573986811524865306719158604310837401247522508613953798296625558036913367375537038584327735847062243132129054298505073674959690720502235593769981080115853285999577674624017186905191784688725987179341012454547654317541463489430654291073546854976020357643178995713829812015008709327864034057455792341801342445859445433107698260780415839337610333456918069483589694843881162782581146339825257425518237284020203320786443290386537382224360660161056625853998847842323533679392332911724726710967722513915884891766264798975529343944610859646527163090454902612760426368762452699768079994753942999259223214467093132855414590513451573901765506991543586858386846416225846037637862581922929906360287489591297432158459517681874352868824326728766264419694349936407838165313329602635429787815686885921596034859427980535010478988304809519227092012343941594610525678617118463542224934799699912756459994289273312770076594637352153677796930326030019371386254515669372912403969582398312634541635582137934358350488873188128277187138454616855426812069331004882252521093522581930740826961340360680237631455859427312587896365549194920384049974241939014922482067995546855487901329627027263871260256825489376555254049177676162858088642707215714976978063443427952818454329786905806359157936699130557163349995891753171493598730574493788224464949953195576784952868637314738024101722361185983880297626798742079165483570338012654286739265190510019025920313568917976480221267895518234672494137384170860246527640591890232743706587812315690006421165676977895258660084573609595209898023168184010847620371606583686657484224605276995328207883979665491796888133879349581057923260277968091250739272330832262657606631404063846068183773782377406637929011447319869549044250367256716665968519397947666672591692222201743792483942888318714137151655498033178711368469100643404515892298536555402031134585515218387464554159581706581720216321056017129767169458001875220077944557618678389733010918238845659858539738899873986466581635390765067581560795169650562197067058294930146942396806163134476958639805850682409191287010635502929450726589702168524819368589323057004377413631871924257873865746477991782663809592352327956619619938038668442077672576772701773232685355804485630726395411277429197056909379685800099772917739226860758109914157567857570239316705054827204737210446037512332211643885750617181762501102291144576499953112011145073805206481243809938418415049044236566576792844397741151567573969888697401215566636812972125121896710310627217086741657113919210983609177581847559527463629244021917536740216624624488592007264233593828669106140195186936120250092221652570871833053576570384875543232456973884323305936536731084457020417556542084984905100313357831880123746369163412982751658991886880981203104466159554720655746324729036907853973680896970332590797614971894455846687810300940939579742748224992178342407853024985529845027894590019486526784849926863982934902463814376383085995281802999304787445145172789148429727765829336013174730532665225664814548658223203861491697055376292888931645267367258795809428372451522523573508604760782403652352736808289009025749774294450135256451645682248318647158513167710304821555551636284750184430037263592938333031702250000193791437746777168470898175481225821951520725991015264736369565468449739708643436926120404230958995490590698712051616346803298712810196990483811298199748735129186531053934912942986830312193498069211048765327296491069253375038034440418426909042453736160608300294282849580833029138691408661611491907251622767696778465627559901993760416778396603543878375337138697909769245053582526505941339007818350836157996345111794403325430999888012037780576355054129855199240709506922293731948028925093058761321860464272997944173156776348108670749327149060064971611952535332369343360837512440610932839558292178736012075130019152230880748587611780784191460822287063895367647364836096939295179594878020694213238265394266334641462508303280565885706475966785187073116488420173140490648861954743939835582005304047120008842515467666812933262611937287594359600042269460201453706961069205980373730214008073054191082409374593972794805446015161645879366281928660032099067953505196956705850320365369944051952255629032479057944879289589409474287117683616109901251491523967368009190411157538372498577784326697242857357763698235959128804880568328236115327843408283190191350068894345608527177784754278908624569244942664717447147690824708049320907071531191409266248551575737957213995817258333503136966313587526761692681673423388428513930506498965618651914116793398887851320946675938640661013646475161541682105266385510804003643861231126528761635525214193344297071070963572060677594036371736879189654709039145506283348406024543909192288715642344194066906112800937953461231133147559017242340755545548516540104222000864979095894389440468731378999145141970194294764972079734987146806761931577100611176012680391452531468015924384663603473878219708475359457899256903871508151693288822816320442328991575418828093025407230942800706619998182401386308274118045024828614590881303014927141811962164101064891903287822477296851538332846197184912739829013261404083832997796371015434190730463242731186619766688539912414070442256502187512959263244147961953962847435182284299130455989780449572624402268832154329729828383925223487677492220988139304470491708409195604632035962610159788859433111321922028988725418247611914132540911308102932421514409046340843263714327295961323434146391879685205239597905928541345029276846153865581188104411070515504578585078634925379026350456501295496233669912215277802752297628098849066268599385897051525741157253120360236146595161483760202694110361718952403688160280570310960655583849275888779254760383456950745376206476603124796453681740923295727683304384439399450184979618986443677821080952823095894130836234407222924900215273955701673606707420574616759614668081228330137130011772021078122007170025797346843193269164722845898589692744823003246707503062781671010523379151754823822823467540797595965693825884002447685593470226439661904852851012971351583027210333667343109112708120057206641041648098557245478222290805530408723077509571233709530677165252397860657882424601931691995280487067664137054330226342535112902634398778221096577493663806743672589384794379628141369289844462763598760892667585767404273375750205433758943080976290297252753235179918785315579016549764788341589991779000689733859002168540956780659159309091693611349550981032553144158258064769990251936559504989421059291661145514562740918959235269758367817259437430851917697011019458587806075502059947654400870931009183682066639036131458149424123481591391229093348407661925869004882898202252818247458177390358227214057656122456076433905629370329843642239074788454763462167292784707457950640519941034790159005366316268205496801906582181731505676742144603887522962581056307749124537812243664017431233246412302907490865877026564240973371544762761582367740297256227941607480585964112615675281035528279437627263382103702867668502798653389736344646276824742768026313984242202611530757433363516128026460223539030392865672334556431276281463127783715117169719902624309962173758269500955321393851657032556893816489580011112546350216419934167285578506006683310457348858576323526420450635361279282823217466888453364040001196598892365297316807189403961056829553601734418964514911006869434351337476228770716340856384870388178272586098545111951983766035318649302169313268331001731232060778074271813006238027934498377982702522470428273812155256172050731265153862907795992282170807437074122626473836575216558001532169773694458907193328754503028046451433311916382129092695712760659134164932307606675452121081498934354320735223793343536686207658692665955162019209860125721099735075852140022164469299005343898299149893994965257447166451662861636075249853973626725262480665736721189423032265611069133803009570547521449282753321549242387429447278564602289692693795500863284104223243216907564869308392112118333038206652798461169202248236675728513771033751568343036292473917752804255489252759347447530328913727400094458681511950622028101582387870383756495474349361099368436630999586620711591281881723680089107153818419126990287512478257098670679298708545498527213300129153223648666885261164297550326698696899455101961292770645578098716524581041371557492900930216884425724067046607794293620660615946816946810800596007767045753301507025244439228687212243497407695831023722247842706303521741624973371299938542730527556041640861332944350305443172234123272611426572020718670780994120215531122634724571284932775969539355601722972595730000739225442407473975099994640007766104580142017151969093731268861842211112966694365811820017570500119113122655275261416093831508369461832209069362946951891607985563077980223516216710023199728545600359401288321595594944174304286771094539917765665759160401126750762356445104626447200855488700802028854263116509781040803231058208141448564552602186524159768667724825139708522611117603713546920703183086113666375144518253439305075641976654334347232596717872377495825691281925177816977516015413807421067844021459041279787383598507865630231306839546440979356114869152256193897830028925650320212749351884960952511096572937180177708516401187591788523528171328285053292962099496644381419694131796594218127701017374039804474257010379159788811375378530317140819694241580625864265662709107256078348526921632940207647472360821908845778766910180317490949361043101289906974404780632319644756646799317829312223536657329046215401638330311602697104952714799996092153863971745307066898832908401836508660238488395598278062757990212155289906558337889109460662313675343918688476406992712012541755157198479622575706302744384952079794334124459455653116789409485893970120129920236926578855711223276450709824181464553243579965299341568316640320334185418011439807511064886193398984263058119340013780856610741315400898759643201743466158820045120338077979188326291229918903342875499326170050184669100187186147134098656044091766612130931824951876206522950974900677809892929825121073121557663223281284551657723538183430296507107412707022548856623372059004845301080428859213074033219072099743748809053115608966182734923053856990420554010596686873044017352229028316874959794633740101135482795837665210904172574268255759632292737476623860244062409049024239114047585416938924230238860558953917665386595219436087025582128553038586599483106169874140192194595857398563712404121279736970647720737996565024955350555848348125153844220962074131996235277697196399103173809690450705089309742870566519211318562356314160429429363701422032124338140309622445158336833762080614052215133431594327716704552418872683873410888030413055013120875070782243064389765323635929339205391129849628976948329356580711138472268476141702149641206377725874175446069107708876614965711544562480708663676547106884910597735573425437173710498093679064456746106498188004317082956973609652047731820742500602325202346661614993506430860281847724910524326093754944675047337516155246406582196450728756076978723471949853699529117520669121414824414391360155750564306437492909208356813140186728947996662890048230341792037817008985639571044673240216146082421819371299417445390386006501203673875704540474880468616446181202569056487739363193054474284849094058755503186195403028865842385030200589202182469809673836889673995019061655730367634818894245478852263930155113141840438366356275875968487073596637249723328962705589981295813230239356813931160586011401221822763382679162009899965597408015631326862767220895239801873322280724614276265544245637947617984997031837264531824169498727420127722063136621689695647297521065072497534914398457123818732118163696112823584758839281320469603921326183460652449727464977157079665564862854536459981488065969525502113832228630480137952177375936109672797209820984573998756738441531718626391375541724919823399313245188630610321238666522899984362213765790868031639465430051717422029889176018901012590035096024174226628498211404292244679555905990286434649706265189472624333989147469962125888277751510369404074891259643477841018801099482317910606948889555213391637738231681066051691140817358135444244320441576408431883732607809705235330903440276687787804059873691982248383377516299546524093961147813064539302728869331887670308018982787131185237337129798387898024078527919969285168494245979754017288826610673194041435231658187671656630045629541519797245036970172854578211504966949134892950359613506940831652747540436715666338023889118374266023836409232294352037036897722459634952605127594165146430138272346839490737219096361977453006106958774194031639800672055299480277274678477007556269358279158409000256783051864534126117373890807399216595964108699738527315624515433104475592800585521704898379503425155736592147023140835896319397434030501551466643672992477019144948359549133696200969808822509507843793169258153386218362492539390797332265695626481425729710552163328028337578890845478561011956073226296680346982585967316331482401908922711028299853702949646026549036163691972476194017171177159257551220438371816967537400775031124626826599050375311878180453805517989087835187866608785553011058630854128399921646577715314727151715848638277684895491589453581264645296642679380167830988078378831580660637796089536629369386467606675820607691769285546786666411233893586055323681797917872677865518681500337203728242927007084118139418774659700638951976833508944225841861139031905773467102213789141916251661909451255803146055608223938821108417576460030598836793564774329177577741690475166168070586267942766059946539377321182325977885552346737076892390924943915931525321157753570429777984986020588318095930275697611619094409518251353794791235533989213567027519001651399498678307952093077991995677142640901861259203983578304113154702507602883651879516476660895326842704770777646983645357141919670888454987775478721707549917734387396437207030981504173997078352050270179341177282832986067604396160616328493747174552857330417903696436706505424595071954072125255369897370539627709869243318152558084967264846919178065320992326439893895334276296886850777717522156025074452566919559119959354898593816952339592825563249446277178633369769723852626444700725743675905390064472464745777177291803541387754260161419676207048756804186852317986491551673804343100550504908420362636920081618851270537565974313793777423421867977907177950251751522444781138057686766270397281523084066711741411816456466027921576928186886959782060082708619750563225106370761952506707404685047395443906655913337491548378467004572575667562017865669477793234157826177175196175946083215106538063003384573737261316975193617443789455512144956380724774152533138625766613653179077057728008609407885868446559192782036414316060007566242468247060476110243674007759426148553877585536798472147539135634461493549884457421171734991673489703940224777408973716580525097903922487396860162123495059487768096083579484649165814550697595536362203615442110642668222211874147425756748848043592610196855288400773009578424603967314386216477509012745235240282594953427209917207144575646242356559752524618403578090553389872594759905376374986680915275891106519601197303556390683925968098144152350970458552808681685538382114612499631905074093933311417460585923151321203725234310612395337610781843775390710859471994708677601827471396446982400168416130499747269092529951884322870323454414617993785215627935794579136637810103384162681708325042554223985186591334045726063453387265831800155316052599131404189241138423889050678648588227233298280301336712984225642431470848513815989355914862929486258920664682998851013385500501753761945755121308309615994907141716077030139843555515954487347762548003814324424293909377475990412575594201743800490140103698429639735640186158801417280279444364141139314730436336610255855446057688002651628360817639774423823987109499789523291146690036156909056765396726377844224164923429172895006527553878561282329486400674400174355807965066028200979157771952924348779858491085372158966410735660040390537654783756833354192851563043198184017823404977614686034336591761549816467960254342764682324700211685054161007042025292195107699857386514369156484885794635408907110735320688940291917494479179508136043057070892247494382075404537255531820496523208759127982692674836311318193361213649499901395380466516565767341844850430124482749992793718526890571893310966212618476901167538206459568234089303439318361552987184466708305368397041801012235181512228331021715807933784344827018224974877738956218858741226510378177157423541774182832531948238236293331863357763107668635925942898634892648790541458560205052012045455677429699113621541254149459275129853001179634486612837256469980151258482228789057053671838782701837116857232631315281485758685206508732520382351495210530232530964979758275144236458696913608590587071233789734962524703317545904547412957221436031089004841667886112030646847471363897756915509827994677525598822689264560554427839119480317217986465808375183574570398511602639131363048002523114002786375556804668545053576655662461591992585250989615704438010713692700052774538783046192882600413631770668083828796244522165705579409976207577832363209653236340780052589337490494660921603537693391011960153847453742375738845997726134760190925779597396948902380126345864853055961658907807990864555745540877273954553489237002470770934518533866702071263267032765969668198519604108973491421519238876588282794387876882043915367352981915240488685172747756688814759231766938545764616677519715958644854896202939562271269179124890199318493266561352102035953569407727374517446733910948518577365209369145367390759313372520519521499574240681971223729117652407819344370294432090918220996452255435180115774187822196128454594993160888320334611400211727467938265826866111459088561158478890463618774169303943553363243683920545425131071813105052001112103305383232475226269339869803796882800255008570229053414583179339625799253001210436711385301339196121508466443161501957740428068382420285391413780886174727186742157106133386200054490434033246224874999975865178488997574573215745619389721495957278949010531536490369065525906874478491780326753417774743798866836759819771113767130664745888438999556577422258500242236416049826694642084588597864095356660969400393496936547520486003513533499765849107036579585194844608975511780994682193165441862068073000036577577605404837494523363457577283598268991383581137362385413272168144534316296037628684640968899668831582764125069495568462866487645225561340631536119736796729885724478089889617351266830265422105238223604408474367439864842456281760413695486993962958785159636786099256496004804275359731460641065591668253462154610610393552188760424444838431107094384153064708614536262134006474170668762383973924698029421944159976976097391483740465971548731167736752474806835237209852605330656959330859524392749029935913359944119679938595421954151330893865885651060383550455030614107117145470255148369134014890170613237588775106111241210055378522153870649384698024357621679440384694114045611077362105381720375574879136428391016560368314468391925963770434080992063740785624296573315576405809905400670012037531446114500028996449790809959837383247212734626275301329335254471015462093173056048747423523953505288056516478057537958098355112297742145438998173615483333066103913862792618715932331902324088002459445530006406313531496594800481527720196961249926045458466898975213606316190489158899563130798225189827122018811629931882342051997159723650207048778035157363559212589554651499016539354292455075458361328259037744551905017883949280948578847345543377845532695663170745221827607920694068298696373726796740597291263951001359044474233834143295991528381153956079284700855547884915445126049834830793656577005682627471797737297387308816775751060328398586119483940572313481239982913242614656657137759567081442735191374532418432285561432637657582737806004145243541317720124829725681542921047049776562632791894356020069534637888187429156431968343926824043885379909008957962195204609516180979133355087692493541245039036045162198520168441143072512770464566287085139804202422688380014546774059104422460973925320312849035194915176997306494750456571880294338136650260607560210913860591209274547638781979630855655359062319382749618972113318862322252433339966757641758243759165629144583161771824280398907246437205078357127168493050957654244915521639788129439118806956412663378630782649665605724441140394382703728602208780344243727967133479007996535308647420955463747564396220725606802354999808981448049657121728591689160398236286708509776553820404395623944381721351782215160661225661065970315204421381456749716101074266606301831989881877844351993274689803181998862732746531480708389224219612003712976795165475393067665458966735414305779320715781994488620868993861807943124636772348885342882878348639430848618131385325857744333104372314622902908164383832716002096109373237576768371007264877019525197929681164128399149531317437754159310983187620925842065283504803783491086924447105304781136193954835740656314174520152022695161318085158541349359583093396466308947311641035813827956338247324448023715990498922632473824876584983190850744016930720269002445892637442888207684003571429471595139792949817045961370845051896933344307771214829950101829003022886744615235446313097916434752873736888890280194155109624019257868155135996555049729223496210630860804241104635933486850821457471928038991779925843512288465292392395113557984499339438443570631740158607978124013102595069339294846931318749173203655419050832692646600378311500030703501069060287772300155045305396792160926134190112613527956555890977712929642601963484454402185978219690481308992894636937793758439954874683878943721364762324655284646584062564289672242932142762996186162370287515288481306084033982223398501927310381406977461181399296940399531492231277631394625067247191607774533259191239669910924300836450948189391881341265612141167746606716059170533620786909180291153746620087460659940097788274158064532619120194654853975724270744718051830515446040078017242427811311082140025899480256480384806679647990613407873248441640333916622303247491696895975844222236842723983936915115698879914558802652446560318435329742044062572865602648366746526754432828462371535958327059355496789096252228051308142124952524168533734666614373558506181746545226657104467373984435533547553889535043850412706415680897299011365339075348196777753988705986866350372842378637228045388130554421521089247966565273552049336471737206452528369454554881813577399879070233064483940723290163039417761146690511678096248620604402788794237189942353307254862570824984525605716644067001795983629619862520102163447338885259938390700548906072572681351948858384072589398567684860855549848101401480728503199722820715080873234335848174553029796247151714702688888008623873581291283165677055221078959959395790277056256905417113238102085709809441777220514012946312118309737540869912700039598221867894861613626619357181934829402500315540211134447389376864339320613913317497861183162773400781041527216460353095086458409930830266794502531050157839666438266016058261522363493925237514777141859265217132714851269102307868110485247944513029576086704282749016484607500961706835091392510419372833984130406776774912019428095195022542183524512073725866897864109335465867472376901261649861974361268193369886518799193860364273827533075196179638701217956071596239202273826449288959301685257757448536575627007178954082105030690335516358668864760675821590797818866061603770651419279008491678976957523596332649554609158774816482434104855898819928170889224498773006584398736542044017737718637685113538356352208517349071012794647994936230319674270774308975083384675338599143112899489263730534098873156695222510939252148153035420521076540212705542637187917566847055435110704693734067349933697959081943635253617908585487434736121619974330307191678046416062912648544829855620407002175195336620104892737288818921651127541766589286998800169319516794165137403386236746858841824051577628012969709988720273246843294826968587995912532510159461041845855608012287345811402213840888887584275187750123253340012231464584024750384170962592778575987132691253033099032155523292768524654221656244084927655693240375840405182401114615198811360909049299787259057081839395770154014600979113550997649216523573747700756589443498033095028597851640279509854687496254173864771083591475273769027233112450511687550925338061968703369394812582988778845532631358064846722141218328524038687588980011550988729921786301891635385829476617112493271099042703796243183572703035211555617859968260795071381461388353133481857259961326601304630649417219774631566062414383635756089963395978738290687887305433591431612818673871138899927960570891177430822414581770679426225329642709061269126606219983494221949197121424518123666858403894394645670221198994375541937406715242494080487464387163951772954721636204004664841867914580276787943937593559323281344319175274241286404267379637642790370367356913454490387701119424543505229805756459227683751014622986867919973868654152032843422802865449058900864559173313727431242761922804334380367164319216311246034364381227240906680805382133547663981343899643928049928768932068066814710651730978428536426298661225011047822335081370620437536408627786604121334586382336962763758121284108351975608775930990606890536510127246785760582309675967314770878053274939662199656617539754932361766194766300389726861264106316772026150037160639351412522289840622873359952986978091560220763273135088759315498474758151002836089194523721851879916445652076503551104571414261061201733043608529047555116498666136971810347838357115457582841218732341313494029001602528295670135333440317849161002567008039529807790149786298908955275961868217927843413795946488061808670122429066409994280806131069234882408545258755689221972916738853056313044597547815386911831245022668850184969659713023286009979156480405437164068040037359345125577994851815007582175250604757006185123536392878467894961144910974152679312895353990308973599006012296126577024253665014280238829909275455134859683197650173955090229683141830355165974961081003486482570472510564262600536778240733243192759983474451092897126332742933863688582711014107492196710975517669425662897116104257973857236336710836254944272276609583797575807463314402156297138839431097326011414020442719347129715671966168070844928831973765242464272952358034752808908055685935695295759417527561603766241185271909858110837853404326611032643425579768122367258090620706036701488448729984714960230845455197349614189814794172467617451230726278078766711511432750136410693358618011640777463780000882203151765075353886165493504063028267444081275718253024852807415881476053788938984543646118303462531498841793577431238781424363627673589482342395791033200849943098172918721835315859523574829119629887430467731585195122107752932152858259579021857083243847879676737065547951792028331652666566678177516686202730454976495383922027472346238875040005855353730351269166935764089060659565038915293910375835657838736584466813809853578267719260214923460639138432164040063615373972071957080377863166362286055272957185451333600090696350822299876634009219620817364198376783522477744157028092834100266199588386748714337786857136791171956627513261496347220556435133402364140435743926563110455142908302920870052013766825967239942163150141584274094150860649748900767374412496707093423857624987067107731843538696680423894301650892080157526794728214120611319745204668013769199605706539844990264064819647475992247188899591634976706779350526469298894836557619320695279939189427535796099122802574951487534239790142670660842039916463212170973936015564995832997281358325739237441933817646780268263149304217292295592098641133475347928531414636925529110648158953592321988492648968691771008842783792649116575019928902712230793671723354299971737618967357019083896529651042946868754269104454458227956018180677290965661712883541600003442760391669514989516003824719647630704192163820918426600272647570248282885856975721594270468081861388548698021671979924525256720167407729929958269267939452596997158564166742547379322471711956626606027550421974174511035126395308085353769418455901595243331349072526927132758438649735225700711478368320267378408985084038928299173515615959123136608129103731824707120548006284787497208231168171621593153481980167973427934180387860349742827759581189159268558119418298245898924527333212855552286014566614410199285418385517057367817055705812879460580663095952859371056303446271377480138857568988577271746297978364689079488401151279790799699353027131832090964415393570276716859631328559968002241631242671370018649956288808271295697989938691522921647264380463310103120036012264773443988366167312234537562507720340070429876334518937340812218711777873747604565887173911172428288384764698463571613590268498839080072305210999864401295509852356590624584555079881168325389932488393295381613258475131766469813797940572087563119931112805373260158641510299891220152458770376098830021075914820096910090149555584848151472135258880365389118872565244503215165679035510524635103189143619388014925997272542093301974204487844171319570225992666431592738851759410562926423867910474655033227122204640273087506618176982296809184590934297790964510852130071238406235260557323166676119487665196056243510824899891296555485215530741174806863519550526601521873972981615942180371119143381861183080683287224508638987758528433783188112314787485772753738168604855368607749333237848342330600491351483401082929616900588939639171421385601505555561698611204321013250426784769925782674718214463255444034053731039323190973871204813097480393344370629940810509449604826541009775044526509247142872204346740318983132235260816251949300595628418004875737440417521787663496398447350934008094700690203756945585070618218436625820997942898513646481369559960367057320527302165964567891665171887296168053244497717329844280185442440169073754377409639575884707832985679987066152766216810899963409884555533518888225513563683733260322235016568558930506433857645869250872190958928150575533292067671977900582080003192582740760385730779575550126936611949813766563725785155674443009191396326645195736631063053783543595508922170284918469065774513880874918801912492758496996338485832865810792377295115704840550238398485967792570048499642604880823450316764396696126705551236352934432609482087154776893773088566912442332795686509547712745630784383648152021286275413339552523848857136665150000311805395438189994923112534728805463809422159562598292085446182587610678923679982408005144822042113491026299142986117065169025207763621389774388859779475135710986965564657323664048576616282499738771310203298256385713140690184527205509624648148713333257525041454672769012104656098789862344398414497070056780538107691073119787719730209991867010491859542684952016238969940937325553805604353147392738031961149328764191889731206974553481259446362775699180120433388082618987612776399813033910548881081861693103025887220069517265668513042578642448005166875911031875734350243335222565148278579469211007629006984855368037154936744810193696381295310763037455561757716222790548214709043417905949881668383245620199004146333915573737727716499787651005606788288889089289095279906392475503137832821094761501953813482244444434161260172325349522328591959123778147250570754342137045611722040507353025339387396421755902828118396912581599719864874655418368020261337801367626016559991404258430538892172000181790956942392489001806202575418783669688896359543659056683312947985571365543285921565710349209552385122472796417119028347193744352448034525434231433464865858427521185658867638063399311541715538080048329970680322718655387856078273167282914405773424741722275166310674386416139384227344717234294821078423461833819081118832185143559780645912628679461209546590692293561284816313718873166651588939585940832854924800059093690248553610786269095804187314066190577718196725834388416918597880864538366520514587044861819105361503746225517108171415807429764089016997152813381507302418798839356627186509923651943347153080912945341662498709264520146318728215700788160858593256839874973231235640156149173188535456973263358278700131704828077506446041655753355198733625608369314116105264109156569731504490937014887899893996297926643429493307934291929089496445014463028192907602546675280110522722718904802490653093877826046558461498825421598261469930738410477834497888386230486652744404389158119243095827904900944318648563868930849829337297213720588588666806943544990601799710101071496821582255743737246762964604217055823277147968428969746593631871070117261620911533131085711435361426057810126132550088125222451278003087195914874792887151751156553236197453536750406257727970399472117104702853299433963834636272495642461900256885223480446413645613936922697491621522574403149495509489146171837121752387564444792460649257075741547651452316134282061610073908117180356404609061166265437215717160479901530601955268232690930043001734424982921739823099398765563832600220352252432404921689797336128195072017466688022065199061301035334209990900473826148891012472959092140670884471008374949980343550731588844625614647863192438015072122909512053214853078437200396044323244416786239756521234921466428266384547434920729259786749484905132868592854961494413629956344311519440081330151463329325568492610150027840258581910155328063299999603164007826346615591320710292457962532971767447164112138112831505998466381568615232767844191624587675034376901818672564247215774325420723222691406256793765873630847504113302711213364111787017449224395154297409039628560190175405378961190807521649399888687104807744761007908588018672248103384646071487385741425153412691400459584279713751916968077693656099626659478474755673114156109204129013667693076471568967088371594277686783432311969416811209567392578176934713499124135430873148434460597840947016020448119843154152640187806512511969678448052489188831392778644940738020901781093332604931474476046054877738057290190529445175699736944523063884358302108092641047318678507940105304620053828850113573392829318870859729673497882172244226732015864388597269832027480653673938360454414036662488826065774114690919286152713575647427036099319440635551966865066367569344208135641227551674454077261147238995643206897294072883628846971311288193358937292155874606489642573334552935287194948723635179420190682400421864256933123879313882440838885139760011971520282901100271288991106377900830364613541832397315220031265212805460364432327763707067195545330721680890169964355610085276202565653795441407906528048562225050219166077456811986671609594729110499411947483822527422553267537262518024397192133532481029933598715950442277732313419093512569391010643168206647741108876182613427142334257312105307329321265647494700578673252725600654086053109769399862026800765607777350597948646161031792298494690799457773211714440184209566906495390371837093157252056518934651457571376739717371786650056977417262979823218193837925158109759629620356511374081125011793565731454460306723642222037807130604250608203897923833471150684738792150438538030280950720154033401111651666008359883148548356730265864063117693575405831908663302362430422650467666584238218392158678373026016513770962898237011644051381215449759892684282500191759886182569017782860670862818536971921925786483306666471535985717877744617958263177768488945093204114934057630091123129672497785152863966446739416287678894569200371162416896901489757920767051618311658620092317789741193738649289042658663960887090058480198286514642435000843556344049590491993754517495049408219806698595480028441094927387978194730914320669144995684326136881035382993460000100010551008865376550479231966996271882309406630248644411081016788379361164010588337723812737902873381511796738509676366246073411139194576122267242509986792168353148720638214637138374419829230383988848316749475896714849823913596468041407265647615788139315521527342574994594848207903939867878114787238788451880031500805353376266649042922200427411923451001886540017321946401011694572988465300912725716914156802994999167929392691664353212286549654712029277494698609185407073058392107357649577886809315385901022384013030013693710680618670035075795789299751686731248205040215688500901451979685025698566840802551454585450086599199310814088367220893769715344947376375572882375532377331370364859953046050155422120312984207649040716548361485843986707098780492873827775931318193155419976694911200258252263192449609882276235910157812693121627811665159904148625873305176489487266713598281994150913738464498129175630115758987924286305896589591191655874208001958884700659185077408519048704701858044655803706164163661281522548852618629719554667200067219740959304154749207729096583283652816490197018788564564998161868375180011994550828759200192276393784643865523654615466542900977946734314739514533102928986852524124019826834155290731758694320873934115484696193742823669353057873240113100593162320950154254820360083512566240301296577123750912489347260565933147673575294527536219736031756739919867902837456921135698071171510845381128018809531181250891579122798733805202838478431948456807532403558927355488211377333117082863909508583714349982882391440871590496586439324726943923875877041488446271208385568563260270901553446705991093932633901651386664398068836043904520917406454692068829681290024926599644419831798673916076782681904837746966367389252778231318241671882631179762301975593742645374872066166198458029291296564760150770256256043669979352428705145245452562209804342071210006709552130412284648397298209054528719618716792865401681195687056779427689953393511567142950956558358802142137283877090422629622321237332096570174679626289980967684963766776442801239459428432995279738266417209463195134415273000495100501917287121362885582625185574453394873439366888930197322233073399122443792511633038247359368707182278017448683123005631875326435181490446560101595158497419494675380604814676640271836566443633700468146429460458529240636318389100181470961504996017523773474254960000769540736343335013969637056906013468850807071720479331583185721802649832152962594595093328275775666795657164564166777000425247324073952833660415882655014018429211918467766400484017226199975763663329812859095125152959778537117257079833953197419770865388304975250612049028607527752993689916694724190990900263257955136077369988393255880619554399456966324012303569513361933625751731941424320347357898415988398765370847565836061724843156768639224157525796823890920199102889443432054483097059319527339181986815916387358336760484597846958283356234334374395617275538493229743469214414241623672038044456239451114899807654154061613010717150407423206005561277959863983815820431209105995743541479098227490126180795678788278844668845598442156536323945511438695949770929148711820018518652278305047615372907068692747829955517481341361270123820541466847550611254880516600570796564437012258916304148231286966246666670004729823258705775661001088104696386797385982062539752578626299632887387180785523415191158202511812560801735254277707346976241955671830907712593091740223708721005910840194242802197954987064637289332812734046292814756824003379921864790328439907546198959653418979144909221775949605540029845663790387363598827383559557421428688362777936821447417062588925482842312076064523785785990186139384712898444705467976155754061906007921189372836540685310150537769052706020479532956387250293474806796256451241042468223647267063676997013233604559452463863425291478413880055243395341822124026332700459194096638657969708443058938213710431489799529806343370165026631498815327258746665861511151627058684859899920244643257502305280265113306189821849964575730963569659945115400214513183002000372406074602451687470049122517079009881776410987700763889474020317244887279197946629444813862248863373936420693335531418645846016997287533080730743756650614926488069746906725360851932241792644803050755605757874508629574289743221482244844145132992558279294004759965051622865337058216712303339738635810416229782536636680159608824511868920235004539431651048423247261756843059553640831281429518728389394992126718152813544042188017339209057083467315332774492297924097320643842657368605228378452090867154849579404932959420825753097065299119982285855087492866626825721528491803304453183806006509525559578956911369914100483556676671408290051764624603608440948334754145937912451122161572439402594612449306478192310741130045709447939591866815774701720959821929520561631075727757268318444359653079178733311503910751121957404630703479901876112491511537075764883594997598071832539325631114843424682380336007427010736281221313973604247611640147303484903745841926321789195164166897252355869037112763689657983160280605737816268420071677010978704208477126903765538979213818649899544928561215617852336928289603477281706097351721391763122762161413444032861225392460425928004071538525042255830742382518422129564365175680212842273602939618359722362180624260229561519493333033844416261076275604999631262141703331399266294091778052178735910622311469653305841263754463827192672451398470160865192233799635968521517490574018511903608829186511473511794440562303377357837385462118710195174766645561104996230929300851491172807028269825205300349059836614704025167987722309123162622924239960621749338094600202549808432263512778641546056725968425082900752730918745709124639497275231543347145634393799500876178366023459030064371121227162277996612923263114269877715943605676061531621124326303375754886617799348636011790755881088818360900313234354474649273345722687234784556062040529459266176542292325759713613500040830992870678374581889754814644694972231698803903796183439400367103589084542819057646220404802463471571480099238649454578578200390031532555868735337845293909324123580980919531882636517686692136794733297600453012666061518159844537865934247450925737064713882639148813561765070116660817637001528795002100062527057458186996365605863540399047775277487159107358717045465699756784003842653048252535347301804091649069205630177505564081041353095135395622332752740026490374594675910595831170373842107447990557031043414078331786244910310288567506849805215197126657563421642931620644312127898776918791736013744954132165214279594286151021044665783027980393852874544697734260523792106677219939415896446054409126259736060642515299105906317918646568147150843501837919706958354114924187781723910225344756611349781404365226816597952498910258624266423746859269883591925020143415100844065116014562587692271463696363358584846178812310530701315016110880469418970575074514244171758794702266563042724644481071041083355869138125630117836347956725343232647454456225608969872802846519246054332490147205260606625749800011521610544738608323629644466661883978844354868788417547821081112076092672338407797183725269226443271424518911948436824933603647252565589958562278275361210047992751259174035392861678845432105597721088570622602734076260165985547514174079735327115879036324360054958011042480664019803797558299038274884335058632132480051685864552139080987291474578936040443836691409823201487213610012988111735705124169167048077621146659003463739401484168538476301043352575520976321382920657363282778390388875989798187892496743607966723035644944464575622701412762510740533452865032350710669989180392308561614767717810763070222332175893058996382388668630988796503898743118789236076678580040696713818807992631527433546492971800040995267212976257307512620058833848679802145416855770288940479899410692439146888228668109576209363055868244455751926636932995843533732211964327776869033231653669701059057283960943193122997063717349692943081507490032182733338380024811378718218833774269680419874955406425547841172736630417053260686163384882607957533130410305564081166967213702362019073206176444524621453378587049772898892674732386388488669707306195937137221283955588303293365078110740583270715453176794797473987712215530740929841009562570947945773179083981341735760756973984475703059504980605225954018423508350801992919326727267582247283020011719775753456785550130332341532392564984355771798960035751173222412534317826213977310761191911657272325705216009287896529838329433489168602542390339657253727119517825671241646601963515741107340185060862104818103825791835952685761317815334816231541498333544697580621895733454522986587900722308033323153377250125988112366046150780527799762808496096402543897477741732723441544015114143516153454451970491196582406597104441072123242968603752976717178693759870656266628650758375067309861947844396017107202087425982386737646614507669336964122662643223408248175056976791583739309919987743828627100243434440094266548876724436364599592985946844807847066303420874901027154150852537287892544984227195086721181025736973297877951328322472991224930095043184376215745563767749573392628919119394799245223140386136838902906301095074712371382172746275498068827260462183277614945383729871677608873957448371580786673327593391172622145326476469047861048001416236821654433037021226362769999431866219336307831595427907381265902967713909571245779335552955198713436782338183539398000579247931515666845893798989970265336828375269198575187382857418119030146456428009693030007519848984629543101839239944129096513082665865599986980810068969450728448959098078232315300138038530884175566162057263026859960214389392825343910505173770986171445214528440830975568312501477545296897424790915740171596251722550373972116402371258192723655633789190825850773882836918684084441551262301094910563485072169382914350104271197592466604118010927310350082008208228223626499889037378316577676321880650638391125115177081262639605537044363912906401029289248416416517808759816555374688211521702045744035065893848467755960350773203026618558764437536971908297715271804929857638820226402582902090112709713411655786677150081553323076892755289902355804038002310281427950342384374677045272001280242572025839717575080724752186065061428377020397007242299572957446796742719041313922912660467212328905651885808789660177424979056691460580796012574556437510309060854872210731953820204827567479909110742778604032904347637323072823535484409313002576602486291322561381452024363762976448295793560348649397738522033913241861011450065509689969166224657743662693733277976256805690392144799965343692104833343069056103327636012801024337211283197816599387114220467417946363385781981629167794560124311570107123552918922549778866630933939934812965992325042981935225939197681267017307195488766665564177827491368249229463941662335422207266484562627773818968212058654806114718516818952533174923187046709607362630459210610112083517251327550824172890858019833330318754524973205947056845277721154585091933119372906305151737857487527644162339165486115432625801793792184026842547204975011135946684220641995679394793919364201330172973206341489562463870913574113664836897597583107806479082615365598529095882690438782291846847120192572801504268025062402284204215589044425774737663371805832431336227382689168553096060039098655135646165991718904394876404901837867176517571316836354081123344441692361781446898475712832558678214772860464686915327400834601319361210655855450583491169827648909329463922332173650306678147417750502596462534374979502138936084026266553789188107241619303858276236010248431906858276712367351615562371380376979935027491966046161097846446922848601723636707776946335256673749231225028857603831539133746607231926849540977217621877611030842985079319884593993398834759490201116545127767202566822974635748584903448996215800948406780964110787257338495994705046438678859215207205501042896871048236894115884740297902852646715331403915885496797849900754903774942071663744535040264453161318955861988033869789147880950761343573279926735662293524160585673285961083946889854531768595401593974336167462343242145734103009777719860054584888362144426115098572789548101400448948702114419158241272789821592363741298825321265968822713014152686510470762032679391755778371913856848876076160891054768536862194145194715048864606769830241872659579992433417733549465460492845927468170716163170962317046982578590448213043421749943934787218789063476747794989596784796198110348397033165904344828311975125831856170093718278071295194153566876538807705135887757821467116397116882555057399172300761573586723016214816161413740154668977117375028995247353932043015700509356094553734616642945404719764622847053215823642937104389549729055507553805614646364531119840472788854568846732101077483299051306159463608963574032782145424804901679556174983696424598073402350278370096450039670833844612649949949431912685020336972628590538119620612493575708739998032867711757101415810330878262236906794695579644625310526629560658018745665322341879714016816755697043949335267016320523755333841240295454642457216843296438780360049066157294547554560784018811209183360466740636263881258716849035080194777501432778587155626620264313460659631374448937658648247431584334409606363927380178142444231400142225674781033661702622997518607084324812347942773843861536918180899058589882712354307240045577171908906804305006264816272517528820659070878666350111554043856398196854568829326595610455741412765865787453716120436624327527223112598902550936969448976825266160000354294506587437883377034883314297806399070217443183503227603769019318108303987464569196142295577821583639966612740156527445733008347619739563224840883008740255753394355553909532613091538393338272782943095919684286426823787809861806086952154364607860857037471017862311674497718158799721271259433332748287839270738186767921711816630962411998258992126614596743920408769434365691953237260509195524042840799369641211124426272208889645244872978187044007595466343753972093371848353267709457132358019339755848843235790479869060969330205226703870280394941415545408424888209575353602464546876514383014857527639626935420052363291143261491547830788786555833433601728181787405344407770853650831805022273825870635591042492593726390920090618941344141556721346616757723549564296514662371440104017487599023713588805416928545472148369368452172413345407751780783158047954018224203105765754812407909510558678603810392996941762050454000950970227319539164169217664724718239500759452564104239493207410086374985114197157689006277685957155272103740771909313222929562274028885355906680385038412218005721606619727193111188732586581289708534374163463368086640553529938671298687582833598961475371171371152103466683816764023011392615155213691112733946919973706696008127907865125394765984992879327974929489179604863269242292502377229888272489220031092241897352589584629995433883755056887355117773383310675160849134683952723702909700966112177354861100737440763580521186127000046512485916135575597774971719953090188774549023456473967227474002630643418776679056880992127674201899704934393050231910772043229192340966519738315725821145079286022917519760147834059927054323678522452986690433935516742154374639288440150415366242310182244375537071546586763519219129708369305842466938757721133490063756091758997265850792103072007521927536998049449172156064960172281932402812702684057368024233792893819263128535723436134098261487483001953697096147791032011856771444941802049911389562535271801030454125563030567094029366664151069680706699168110676173139511065389943423280010845601149499582209093169827709391029912574514347119411640805092754551381444655924368834493350546098435679002839595906520243541958234668689473193050603950563921109456172168477758995892990638356993165883236029188052279244927179728381652437120733136682804701962189321296271304963359579341907121660298485837373393263891409109282431357951993278539787212044968474046624923455004621179077766639793842333469029634391095483295800794877241218264273784670564482968329132029702230854820337439674325794329802338763527835408674479135494423737178835907389669620419820637614271095795081296444027599395576315541392427739359531101180303652868237531793856078315222713541062303325454113019189593721093405500198602292593392326896774343121527040862740245331254565069541691993207249457471180597180590820881757475089486526311753265579083879443208994160683789916410352678394062289054894645425328556961565642658796303207555232954717718742201541970821978364536977781437334673057260100651526125516086334543673788247080453597399273063936239330370032346916479232174282847543246066533349729866752413216990628128544303075332934708408508636137706291816203157552872681824017244333096160024304580009512299277153287937090809647573272563967595047140868905435658687686172077840002720509187126606210830846481876778614128403322010471914651465813632487370758554769910020042045814192081056822571037497311819914944465403817150891587453003864501353055175938285653585838765817694687984100289845719819520581392742320561584079896159146480046768013408164822923774008604620551000900797229430415990398998981813899150564431716921537623544938301345085782900325899802835173704613267764432581093365110958494559342871453490612964746047305525625132185804259301517407808172078023781745895884442225109256673484196449893050207817445013325083581814362143012853315286856353135919512870467119041588634876327792877233930460590295195199516823295494147496995570910206096887143239297436281412622385181344678916828744900641476811850384322080082535797640462488790522776613946209979641411868470501029927738889048213078542927422851154456557599461983363983853164037887408571983556588080051610746885280439520849164474010099271059445740342731019801619600133457018274635587043946296108184858775699203145489105414650909956388036805068856868023243637523777956026181116912538609153716015550583004441198235270661084366457650267212054418310076253748306707481633389177248881061264415960071136372282229608726985923288365920843760006434056476368824864639996803155084666500603329947195227091920931514918315620810448503326201053982523902138746873543759802425009842827360275823053162744474224934250066905451811339603023791691921730775497648356873133485548381254023647969201175708974180409090661806128670799904717360755767672460590448015034785238979467868364292086929363595286578319920823777967117798084799251525148254508638379305784878870116889810967973996567461929050635452835447492794415702687790228635188780068733517219888024504285487638165441560519213777236891641352813045422605623779271860197419577334311903988908135209861289776492184489904689875781299732586688281028587917880295744146333934922408123890531379809237571257147102483959534799386255375390602953606365300991441435407555653444241426071112372159204983367552563354540529427300507843093450625321623808787448140589605049349627423185783016289870260862367786282831216863388006095927921580654865485020183568152007678578489150534356692067595540082953835044974729557083805608277041521347778966278173476602180868557515482098656357574468601649441214214872247053706998625733573454443978582591826542948129020365353596233709860575275051149213564038367863593560101876231246939219438426419371710549534819078397518590005395635435953435954535170503419320116924709386890370473294420838567247314557085793044519762115923569715461516550091213493793334240195432153029348910919769960263889756005004407178432875689478892207093838290564322252502281960530859065178396969784589713859335559039242424680431450207226519962884722802899183353918110844498893481150009496471866299744373684476558280019251446907086340159315393455209710503621828739430752210743151016464802771612576163423948724641647212168841712363918501597939637642351429733976051384033834434865818898689067180475705478011499665233859615606099030737642619630500834812950441611845184166163064550560515170106473800632385958037693440463432808309319981145390185696167882072887367055195705896955186650197756803685676548915301598939983259676543715508769892385966142243178643572596329108969724859001607712884330599634952912530184882957714106396779316042132002429402101893662727076936280935923447344640835251073457543755304138204707348695503222459973795358720985383207101341450965143309724379448135270714940476885789523953066042225298117132610790587399631921086464517926566401917910586697876103941034836333603475007432070468145328266207699334723089410902240711835211963525166286974743292193518297245478201453696258984863471315156492056590028832738715465911744140165947965012380431680496940305562094349401788509341319410064362337096431846073228121098610108590052781967759031294409666738749838800921033595081605532551439132694232114055630916729208074734539070298178814607034640702068072798315729793711135654174494727850845961041381444774459001461648003220579424105931728114458926435085311247424019144189010769369242610251087737012471254595216281156644827588044226827897523628442053715833818147466265385798681174668463887441451740177357927034438182986720672289087342378637954373863288192125456628740688132332368354325906925971244595884841881251063385653170812159326640290949201649034722116450139161598320707004353878860120950744283112557617762094760904070685827532506153212259726678382804386593117270307853064136676700194588867370564012591499413551518640301544473649409351048946519311483835555553093492867604440220339527028664957941856506760004794094220507189209955575416630995471815944750461858567228058936424347748317667237097754316755463958850298317467368146958324499902790620565011422681679212668137814464035005513632585874565826460205501709033540451735576548857991310317101473421705567325409817877785177250643996688625940359880955002705709078180071145632192869333560010614193154119752081172137174713036474040718708519885396458543735061014579703380732307236253503131868763757817802435541586069382546236827187188824344218500974013966942853672290739169989607683400991795757071728668363416748114475659258007981185278202073718575315383984177486121272552895189106037475240528128605882752659070998530130026711452132235518346620762818322454196263746851847286526232278303633687312077296273702366503219153367844833089618592184135596492535441782356650864801212269845229379475341311501919341619763154758287851347400881572334009606044171848596255666962787164916178812003515768484423488725340841202808466946828332666748448712933350095151603407401772856558674213123269777485570047947055368550137853063842900204267466945184208164357797288746296668447127250726185072922754111461544623055371900314679170961109626873963977170523595088936352420819190612306408317687909222819723543713076329787099285159981556845860966629217688820469900513555958422612435061745182161941066311504601356609582757889711755405269958723552179967225640533391140162272469202239124510003192872566248503368517144587155941006902811025937431658527905124824278422548284941301418048481467944990710633902681074401552713041683151079101276529366266350702871563578417287900845510356476452560116656835145450394439948085662595201260812443186764554906356347003901555922851534955288402573000108429668565849252173006799899679528284776582528515023880230427205577514117717482369163766725430748179374435944923438949971609914925369190509907417968747664648721271781443042288560286116010931391284354973348857343519758611921301462331298308891993241200907413396198667394605004410834391037419290068912478140013824358345911415026146705450170736902613747711268498117626035071189707089283370741700512183450898057709524594687657846501704227347980375725969994438436420388071904403506042434102690957584650886465424342327323647348035674633743435829352977797937072531436654676727809285106908026464866132024610354662048573255452969195572507873168840756542518447405790407552253327554720326568663490532314267008630303288495153168672681422923346584852037480804577721189795834365323604058867414131434666448019064786424450885783747919502160389268027975919134255652449894333570203003283635992784900738982818255068944025847725956499634192887850753204639037912948966928082588041395415830039112560738400840300667562633837854033549518260567807730954738564796488832311545594034777603205616112817729397679966132816133319647567434465309946862725303046556688908428070989412043159053110576244612301901727397323158905236893721836071473592410438563591917663743625576962070758026295280401335847420575268218614137541749893453310962673695753303408464695429727923422394077781109289948976116005072258275947076550707245982752418831978087167292849346068128280806703346453700536627175727656950062744985735901271355131317345552092115913859163852282736172066959400786375829787918871744201918213913303458753576894822419617935658081923643300563761285270259790911134279622166921410271817931842870561794770418148300970497098824475663236857167461396238319272919205374173843194505851325859106712538527382587102811140658149684743652479400268168107667814259219273478387540823389142574992560899591804790627991667995958331285655316184279223609101199092286936843335990663722237547966310958121921545051395205020667463236426314735053094536716301874910621005988009446178350011437980380459355047275481943257223686591282441701874770954694694211984095284681239904631991582535698834470760038765651995079708276375191882079182938565193643614988657081587620985738924812725179825191823369142847144799712350505076840382482799355767263976041455486191631333682261689661283072078607979023003742756265624520947981372156820282383623458285260232033533797263523511375568492817209322317364237046310484531100335664408452559334467763864744262740658813803303476365500620177258685576584476506847520245341614998628898076431691901524998256377253647053175341621369279613716669842296401212626273857593288135038861417197481526644613399309286842991700493339964652070231912456374246503768817665378215072149638608855968048851504805930948910809030407699457999748680051227330843189417399560994096071970955176150446619714649632758457432398869452335677603313993231964232376641792429600375922317488846827189930552607096135192087179169901196349587726984522543391392961485763622493284327472365291504733911872596064127762906344344726198340575031490087246399735140881928774827373575439115743354481710718743051417900776671935837942690727207274523809305082433189654640968115005059905245380161085540779221386839731007020426571266290307754072701603756135789393781628587906093230721435327769675889122444805563845903465236461481366726889537769880592134749740616831049897142303433566479656407156525929471177002973283624862901344299079138832857838450484960536396250306386713685795003518451460757265396092785108005344081256078943024651288425425638485299821269681819779150975367610111169593889299614546325171443551883708993835168432169586739819318263152681356165199511092391744894825008417846048891497176111118510181221363872645801809369377945521776671604807175163679061134589915880975169637022423319457761489431115601901584620095878389493652363262507964544776931111105371058391941978552515597953041422973689177987022991130155966797097944449641500694580279184932077131292293868582026442143578132583152432695681151871854788409903862457392331567094466804660753693033083806160707380558688389774064769602300326123758934579481443579163710424078751874350633886898522586342415965615189820165323369455425367429168881162771472863012276270231105147557131247391675599867268914542594675712387413799517631120802194405643067583614806678278973707680615266344125333041335118366407839301170115980674276012990514353489704477089329445827138289891035369925305215700630116501379568327700640957978120250112831508681312971905571419504589822195350663704525681676761678717855997487799365020235816285214782989999088513972234926972150740338101035150124117053831698604497676825735160818382067121480835526822226702707956755965658515549564515120111727002110412800203354316958186057811742676467529096586770893399015822810062759142788315955064728943286466892428501761918146270558733877306940510238280273454795636081178325723052305987809350056392649947902763729522721713742470884275628329420157672676672420678018532257476420011869456450096760927810272950784871606875615684299107592708548400571268004495498868568835889769723592679474134576314047677353119011503766586905946160585208894265342801334920414551348245204988718685334934346167635945790576643323554387310336882500414409009666346346188125290425744796357113931295980678058871390728778368819204247612945405196576334623984360620126580134106039798300937096669012213019862769885600866154174502621970314203024043359915048448062271469057421029070335251529809703440298248514184423854725370988616126800201278732455906615579818156557898554576645681787822132572246832755954239784837748539805771665444638007716591678108316652902022860928564063926148765026976033609101995941929813731793725658608359251055751950112111718489255043576846595269270311120815310355772335609477528964352581090328666518121130818401079736879589488121802851335086391073975576193298507331854903945246875585056777878452358057382323078041153800355477169171832575200948146538357128934628715646677170836854133595806362554427068527572888507920017193095319501725610512603637113422619301057390766149234056270704678607700731819952541240262590223340880987486850053753967040367406219042933228112849466986897111094186404635877829135511539555934719284964779109302261659699385313018366960570830145615610099748236984628522966413604102246075939029584014451421770042166712996751189602121535282119360566161874857391014493461604537974096834253457472590772527301886410216625944174057037618890998128954776409820015631667924595712655871106530274175272986483163874163781563649340599783414565038989487523818521996328150924016843916463667464025861293217051162065291922593315524842046372030677290399016903027512370523577699787289599639396009774295535370767087897341602513063091331485612389238791067435708826271498156644896976339681234103025713736035274646789448692176952447472270268630881110418363022390225250749540471480840824452634248029721224880665730480363557963346141377893572722881459899455197746320208215005910207894167503193083355008476943055638149973104728466101473270892911257110703335583849776330786944161085856061532732430485926661404985004829398074515064726131484295398823311820527397862206092804275943127310174921475715717028872013495093535416033625645915245343424272365728894804642350372600307276766297747644959009102219431651067153028483905352411423912577473524133028855475491653433471458381925594043141698118922236050679716042842378162586922399758772427761008486455441665976777662578434801749668170256713691113777994009397074006969921489000034451857213607742553015874445650299148906882008498577892391224649539586525095095037544399672113009632350749789936616860755244868628469278630138420423151202725078077695719511628490181289917334064467735121649434697074783942870933456411448107645382460985865763141886889894346011252404428642369835892038977761156237018517980111865818104560232883379549835429234879093433649907746747030510342534778932003235179212757549360859518368495387790067084519475196184148798575772912337019888619565108995367007846510823684939243568228255328064948762448544721016813724847380105790820467386380904685195848996979238123552228907584978071692123586785104487983828405196230687206491020499242926049473410479893578990851146632615883920077724127207582313483536204931491687748321714122796979387943149843998209554626885477670313719038983872055777470624856097111977248345334995849415581910685835855194892802737042168936591036764086769823942012535607923783249215274252673866793557053954530050592481277246715285056852224840781707119726484584526614355864959132431035472396327907451737597802797934599586116120768807802965427846596252238836971669936635912343712061878324165568177330144659220190265217706913281929161738067158797472876773390350730369060656358951188530990376745104505749676369858938744971516373703557295563342330695707294750514615219621771022479111743452208743682146718270994244453814748042105064079337352426332946018888559038718905639824592589600760686774285634803149130856704531377827768471392325541507825144051374816140815236148498869358193240179859151760396087276796102518659915267037705130145215087417103890565393069677808582992548231972712249086290522027282610667192556771006299154545201169733414614531320329308757737154865299970822874700614850951685776162365162993708994350839658554327769034821548081578589744582846890519892710334903418682133263130375042260475658813320631433261313647043817477266229057378261142598926642978368379010196928940490229945472253821887052180923308790613785809340618877035117748790256401240245557345858632965263877884475220181752616740203293757362531066013390710102766426478188919861389792834513113964845655458027043693069016455252226037199512640376364771895517199663433245963295146352517712637821710012007910786640289053535815333425571718613064763184387311840243133230875119758187829414148589903829142838846943201264152883774509796334754694179834723160753295938316773186133297969453295281531676580855057034496606684339183632362654354580509787630328291397643077307238165712251292182153409747644067232543809029327172004000551932813720411077068423985311261666001444042809045237541050253827063214086651341352706075626825233609824329467572271062500423317903394108780618966664971293468377742878655962887451487019154625898444451697316361586067667151147782083215186357893054773916777118308064480195975877213240360906332674143148066369284167416595088858137012571721110719320752017905195735700735662600357914202661841591337700755354877306959600785710207678540327087846739440747265139807631247725263914674938563411119914860015052668385857007824297753649357139767616216366296716866882651242333397103116928460838968352906015817434131387649468040238201062772346646196743920307807404060513780678288298694181730620868097083074685700589441892894417681047678988169516399658737133507392303051433241765189992595296025881430205345101377496800689550246572058415797530101107383982774134555530288838325237324986061213373256220618802645007166125220339981966405921551003905444019587619629894771387716175665072851388050484840338158621550004951004979513979607189804592055653640951648010724079358338683100200620006077305750966016323831081001599051474539877165259372808172478285653468189996326741005559657039287953846099153586490144947394834132801218431475777312485523951203311694809045923918380114212144229324099732691817399131979856026499916607506695266535893903642426775154507432925503713247093446062346286992345241921142797730212213265265023343732043294128747411867598163621884495221200063685300108808297795131092431602870180080320150548060397421589113515681133603484543064366996893225778265106429473073844738607993750681022734532512102963702605649782622026161219161498941337149199185294369810591881813518340010438990891174724132115399671286982918127910346636302849753613335390515187464918543571266315658374156244906743775510733565931238493386125723877086155060228429318980623641681151718428535238325149639515120434301423821151692104711220959537093743875509805786183660326379872650655089194244504667750677967457316143822514789639260484738752480454939247712535515822876785076676574035170890721449760378177958374529717976339661330807788630990085081522832340308648047902461139701078006373033676265663694460935567950105894153848386220644596004825772946373175592672860909991369559107670415242638203908882455502153789376407914213720271290023952392249750438405396221771496832681139804697691572322214901722176005927358506791853213285679246689936160683064491946932338557865284424811515043177890728312313265379934029286617152062349366907573663492863322212496463719753648870550005499713275767322111432725722563699625602223101651442453438498425033859089289470025640937987221288762364501156197795513355487085392414325838596333536339049299521771348303721934780243010931064938784622402146075286327221799654469316299185508236659439205813320217401979103322114872016061684302420254157854147089393443411616998550516688132696451955522524701841569053068277091168246781688520758649453207965178112533070929623490461808100417500786841117464045134798225824485799422896383026029011974710246840571016692307260790704085566993196083694957292741228726104786254599628186281175742564165943631774006164474597891079656478697021422880828562989675033939702239865464542924112195586471615663023755068296240378466880734580795507970497493582221154381752032339272992838390353946712557364632232373036088745606282180958063631681513303797741631094030785884697499833338524625305270010302777168859969621403140317970648057162338295027569226211401160385318894789455832236068649795952398096921119561964868776404326046287444256620472062198829156204185183291448888227594442816872187512604477724716175846671862637403680392830836283458947240068363536085047689484134962745779322362039420368476917540191135458060366439863637364345834491396374977257720698792764403375484584624687415350609946932637377900462079801185938149238708090304576687308490000685741094402828761723512905282240853188398921390296763707074840817960196025978414384487989411477096212111201450778023746682479355788666666644571960152482347079177351904449790734212213845647858285501567152955416987561248533942026499751986272318379477273204298758905209803860142246092114121097153835600200693701646790238602262444111997350965335554854989977843118081915251129074947001150378006169066862948130269213650770868637003367397164958218629035957136074811251043307475549964861606914712242185352000694456158030542760246033107676346496880329482118308582658837659514675987367814171756067801284757354681807375437702717905837798274790942591972688274051216751950743618890919417877302491607968962415047867998155881491202862468807798217490795091878022740915904155816852313006754508936773743556148119725910931038621447264307948589723579326527371303978667958238943713282371323092099533902946473119349952744046511338357490970549234713056633042111458047691621227101721175563393583213334391602749819285193323544199016093903689392809274365608978325269945666681135111981141767893398474180125182621162296535339526478631805388745237782270633469090773076097915042109670262567222680158200951357591721721232040968235299695852997261163087443060381435007146542426547718384766902169130429541532882337411840442802468548914670460083141875770910904929062933395790183254233431851757610065825107678303533903758251425022242271574462520231451442518936405927052362440299339952896096066082323873703601307062629617530212889352737734567720441753964286175861223474480110706550197048098378738785303841507190071025393864788568503856830772640727252463851589732188553335091918018534027091922712865796016020482469103597786173221628251710912355906823845335151352942986622501962415931811483967252096025515756309009726179253560560883297795503602505364384863431097658476621216985777874573724816960379350407693772575955394784194330951106162802843167759555357747384084269626186504723590468938025482138823285088239891722223307316270997337140675195572085182548108421379652149186053052710550969693764067029511789910003681845615151174539747865561934304585277532520625972880091759090955242187785682442311215879089390640717599264761767462659355239446543320301244027713408147812233184272080697831828020012304950189302536566627101634216053174041603471103623144706762057962114501681897771313349539116802278316670641233277303951150230900153352352697486676738480222973849885493429241303761433072346035971659079659386512291742876267966021261279122677395257105933827454061539106733398615445622556622562053725775048274176805472006246380747251410525430733435851272123572911555506518152701309603513910454263377549836567957159773184110702130075953152162590309762252725036049271037181083092458383058621218526943420724942476879592315141749277797328146527049928517960815713661473021554563771943347172522623904723171304076686279504108826155668664890690260814131029566276302788220661298283069783493698423712512076165621987946630133490994405090046023881101448702194389650898104380383213872535864405495116264546361784064568700005863529493291065311182505933870972589198957278494302869484436451174728039253109138641191145579729736795791079605507749148705593703088674580887465070959793505381580026944419105064140484335379795708697817968761498943217618307632280852794794180312200487564255328628263682930991284055123873649267854528836519667422693067690630677023183296625720100989147883463233316931928572443327800162746193416819730020418289750370257116529118011090904761022022817544492694273268260130919612486190903132722528487761541193019134476020068484368527575624858162368371542656253426697354979973771338839556054825649302471678448152521766894092650096307339916218201116855593455711702467746531679161672098359354254701685308698963723036483682474307359631710398328126078771526848971663504459692199763766453954090640962694159203100383280268809090370153539012737194468769165144595350752873462930258134316646903587793745810515757040201903081461290737056145085253316535326889125269409066012551116274368467029616558497004719639539297370313093762006922493445270734440235238120583802785200656323057096534313827551596094577507324595258661549241222651630138385494855463447918373154986332509149852580568684192229861062233659229683132245749764446509906024767966833033379913145839899262190739393905304043508137182192245412936396358969521908327403697896551017605125710418699078385829549624858521232128264328858432083134060398770457312388588722113306150101080190762267049654739456668681414366958862982970485863804627736725359420886629790860001933337760901526148608416135418311585964525428534619390339847223561906617173760156217963690001231106972354304064469088077826524364629172717159476377521067138508946777643007755420498310485813064568946794295233030020253120438509467581953512128366804640764979395324949300908544689120173723600375545437264162266854335598324351026708575002243752332079450316969376284212077155962832349714342026323595136742805023796547511802225294783479163877420893992042780821861022955235366212028006185716267641789355174279044460944545760065222962079164389380342593623720983792841785374503997109337198347987573341057098429427441132887205007478611405184954901326628375807155344064391974608948334914793120458771602131990574477277012250590390170107710867360563938428431187174410377870989770962548411847997627434072572644426779236758318925586179368731869625956723260236934271036412221526764000310858158508111494613855814642895235493400254955173310103881820299600650809077482100396620113701733659873608181802157734069209635723762184625168531911256408528677714322248877460890617980393224865861940933803084511546769759532149683061224362095086953796658554640439336359151289245234714140926677936386995304199765716531334640093767788939169995303107438587914314499881162706262095493236739345829506887923553108049052672691139509427509835470592934274959138501675381132308926195954689621703576566882306875218040621705894216375210238640422423568468016440626439215344606283520322450232527885653829694376360997650335245671815871849215635147683773710378755170739764411054335643560485465478528672680574990536662248986696305255923848131320443771999506717731542796466984580213089772506428002835484596512995332000123450499722586949008941076048532467688882809005516981849798719286554778437563826464784513177453985081952801054980213429268593174859106301551706071447131200602314797750902345828369160219166753263335489534946897457227290044754830026871642014112536292193296530322285371022573522102204586309393668179253789626547312095021653732899098902400285237245015535528953300119733859264759387921381218111836397713152545303226589922440033613801515214430165474763617125752994904500903888161229763239237018680513685177198531714975828385629235650861119600051581622474624098433652016318516153805519718433305918454190044643595302761174361418762481264016985349434711400929375793601944987102087172082593090842537572428897509828592838998251833353239451297907845940021271277867888312539077617223870569649378090404420813308507270872187525515873264848298817974087228925389312195446473561600570557943791749018913899858754395151395624774499817548209625243591628050238640836346006768171245113798210031184609513658660187798389690461608944621554940116533244149431544827850161950756529611783967100173197962789487112739044425882759950519272260761881522638337056445341751617307027133446108840802200337377500465991679237703856923897972398939755153760266948747703654812089592281018073764732793036755090086490348330925699145062346789583275018427107151157602991560281045500632627737505618267371778541394445737553731299680941228207901334963613810569407699370900007942433333462913179294454645784668824114234025227479085699114681133827565361580055208285047150253952486833525117537630763449247679662687760524219293870629568098537259475704877791681382492338789846166849075629575588447834829437773191285376503096818578366473782131705520512837861845475531136101689520267045386593348238612321755449639559012423591274945184090045011053754501074233064408466049166345594464030761482589946299652288568646930663492802809396242633308482674527851453735945380623489759781038332171122970663312163474798041621527804021057660295403192518507754249482751300510862061939254169584445422899895385065260256629343117060866582314759030895525510977599597264503529427336108913714651991467945977731866633874582643594086293667178164099789013026656753506628981770810159824925858656163797151131222089694536932303199832512121092786365082333650500404497985863172565186019551460268648104825726079301411576351132546290627372247217786074540787720053687085857112299158470433648937962642769489948970294860311154861148774800641325035212149398688504908892566502221341262126904131792615413752578323165279049124198615754300674871945295205195006348768835854964892368103461795321948947942659312921489219988455877974375312855154309348206303824151369972908981180372521219277802704738205807629361800003209362939799789105723995040522673956126180230992289005444475197065303672471842185701072232686922647975347985221193602304096558241817347323967168777816536228962570420327807945598364962204678285271433995802704107446248132038299103221532281069151117596544794397771318690420058080426956785544710573182351486810229752074227944742078315055674450203201863280442302636894080235457684620205231176869079463515700719973324083392010968076118168568913252740044771026666911108412166333332746698786387510256027402085594055034392561599631318972855917067411183051680873938966415243058135959274344899761765243311121857304659521410005265795271029966778856795572382784807853893202354477554895135834827296744506363312335281131766493553954896420545854864273344824251088759288196916001176059467201638877700227694948607549318123724078708967387886279862053517812332119117388737066409319127168037626695796326577885425124596928094249778544052525078869353059314801118019550402654433189883757690258328758154952988812343103554359536338734516684708516705879621887299284554668087651044339434343865382361885711484214667950223099048499326629821811809041109458088155433473358286101458394417676879350672946488345323135070780266121029087838781220068022714238406057132800398138342947534695313913705977318079321496645164230342129136659906402641545514527099373595630465717826352310565248382145749481306145818214959868792004754606758222381315803044604755003915581880033944313243774227877186643643305899511862427436617970798858927611210744261598139382123222494691846673173515106142813047025464542190774268054062620341170811765896500976200146168483531666437159272229480580436645154405012356358253544189899922853931843101644036423871820420766764815401943476909937021988013771700502371373068014953258841800979744927298139889866950726299728928137042320817330494649103544786462409274445033802275770923905185048530917117738637744145974198941228480159050620789945180801661727986344164954157077142903689409211686255291044367231984306446219335514328343283166193086819926340796813289617489417674239443961970491167262649596156579899769398844584987253996097684372755473537290113147349868379009790829495744338365203439539903710594808519671158501248958286886931834945887604083843287932336977559238741435912525396976119626219206177369192499429253625450335276612118728104103533038669444082734222916063913364969459684376356980267188847751639523791002785807221153853263539256319764582509517517081070233151770570454007145579434530498667135456315929808550622281932381402612387142765284044317843377992204657355097649775818209130067157787294426235222672802657786924540508480723192757636941177874607280003091837079717351614774861022012651648300836799806274589399982692290941163848266121217513611125730706511693870230554225101936765489389572683120401638600664480259021333502605133271289632787056783987497367994788055228372718286959886357224576821532714317525328072230002908277079123740239590474381417647524708682885374096009301770484009369225450122666402281235945944966989313572327873569770485081599421470385920929687931079344010094921950924888553789925236618442821435842642854319698839636840763297512935105088379518221734146577650513996567946316418076217834710220125140866824474547340615160459619271466680048683611528726006827965104030563693967296231767877055804367433708326463507944494083087250364164080776486099748117889308675553636346486957285557196350277293905774928430989820977748352249083546258699797964709675169565737288981467485554691132280278593485755959771070829659036757516800373774136400018735332581238438007109829701544106303098916018389020604785271267126130665479247970715814106086031944041590678052445554874758140246585148401367918806817864496116768994451578539332062723014624607531108117775196068383397211813975564472507703821910091855031825569095856076481523240613165344736895229761830432480902859259395558527553678250147084985673190094032001861981702136540593638252499135587064700768290220243423203503549293436025915184817298052741583120825259207378097656028212246487713085986875198310857951968708990318528696231076512202369934398444752629129097790540785705617666068982763665743389986909704772771505575691559828090315061728773883515530545604623445424248886959649963853579946736993049241661721914798042282423875901654413130949272526237347714457248649812063627012205915677977864616942930462560771341329315592192877151677031386843914927900886100013412120383051014766779368950792521859026919240368803596701830906307975216906762753592824458957276069545155286601223653812086537116308052490355586615607680413430949316862179355439663457436016831513427650357727251521988578951821207130778965190350489308420255017880965724241990554239468691139320045067670147382127242487935207431205248559833916839872450658568922445624532310025605342270084703525580269291116528554319621527680446709071556310377403843405037612822796625282282519238511266964492148121182737128891425614580689525237679373180760691162276943170509310841437742500459957184839296254143283020069320289450329619568012178437966090897079646560324916923350548131692509977309291425563120186841838911600749490741914023136524368418437389779421122790171943690242653135208357309042604325042945110237258230919811578705133347391427443576256177832940768066997370969030065231032652208894655478551945220734773722745567444611125908130969045299527210957107583566664153436659578178730904625921067875741407519475717187277745962872599723862075025249365477723016619765127374759535541122102744213423573066884533444196163755670049994033925676821450641459379961048630491243575934725303362423061428513169123359301262862751827623289006070023909466169056166847261768808432803604133726987083883734701871192838034839006413726861143921677298360762311554502277094831580500347466743035264602457419189800845600296685996524917509862864446613641351123479443621322673040684561175904339423094808072068843548146486596149901425418585053908122219429093063312271056992959545160300172976343496612369523563460437689909450643515938004026243602489692306118419610347814220841246419258595458521217493155783423411798190858340486467604116595045861862715622587471913345578610448814155142129736108516900002922389891663346886177523664722981544268678567429722524024501737274354797258021802066657656988903352811320090431263221085731037857447510366452347498072833405382582053765474804601297976646272618635378604495711498022467523351138042653548836929755772496966983146178907628572404089145858360158157866710160454843286172812820920251513078780378678725307172297468804949198237199790712973292192548929483633088546818420361698762963042365369524964307268751473295869037015947801200387069372500525763058228543151837138091355056604380331140953264902775476921520635410385680397726748258043331764527282829857962324548301278144518744446875412831743351854751248957525816742801878296374053397301814590309169355362505484272165353924250101935731136396966450487087642912538153806529032435634368060129585822210966865438484445304382266300770260146323159830280842673689726787001592790162517006778041629832841508727252155733680309892596772842829928513959671720186893516472685495897247201634368445569042986695836537490424564714174047318975524781129008257744099731888913957904372388952814668213048896422985304517988609783520505406145048563882904185183169518246474618697158529336299303551961721811471914170754798458038702469545586364499138960813220110626985531021835138941515654406934943209900219441543977401441568363647863119003083685993564136960416261358804855028211135816381042611400534437605770704078064644356819577627551251756444991757345538072501782539328796111904381867529321257929415953097992644254693341950537908254489646092612244790409213246768804845895431132128696295889987782999103240293636531971209236059746795541579429691121483831456794169698483428890116717109161318012740619238981833303461409639542927852491989025011217448142687190452478261639426801119560481905441572596560019218765272733758080719231892539320098357788592000353281276088177788405929256498076050026093760084541079428026091700827640325475448971066398424799791509773292481670243234868454485413245586970308598990087072541294524245214824718113211614814616646297821464819624525028916841364963373627386646554748428383851570379440948659788405053880785706950424807250200554873308911181985192032171909587712406816193414064591036663306850997016270829533206931700895843147200182333604408391564674461182741734855389893105974877856950793812257498115378984934517106941877349152383620405437152666332729555852984203585544394671694512014616283213404514297289398200899827917471079419793105548664706558453474609162936229439597387273745465043565048925622385806824962597049316787435329806152813336007884184306109820947511090388625397919594616906340845493603712554708677758202391403327738512808629425512741056724243679477354687234320972337107110999469254599448466657936470755538973400004834124539839867909299968166635845174471749557622397669668720823552137011828522131180614727088037396929059740895803239948753880510048206859304310742610393563325949670693553483409670677389301270800410045946356761435624121971868087645714006738107588211348656342575458302364488096639072498740604917223580560013787275500367432656240273363319034646282772729553660863777651256243125367991520972797815774992030679573349399733795643090625565693980926184118895638287891339040364778584529561519060855951665842860549030092118893002809754805949718198218796653840586966885397429696550774399842795869317659448090979264700474188069750096579414027021891687783262697728878583415589801007930273063715644565122863373025352267313353586652381208422361887730394348257127212311314000708039860241571011983848487992372481415364708101561245319539333185262968534215321254336390189214813256166831295055111595342186366629705457218622495891499299081949867202236055948485609481297530976804036881862869418103684180595816448684276817124010094338363856420294933462004226375031073569502512054646801214106035218985985073188472798799654419749043024128633107813459899165920335230223934007219099665822082403550519373075869382192931675584922929503650816192881656262712353250546893088809789625544565674464227551492452474968888766212100742083149183396745961296340614004405233853850613026700801926845751304109280784785831526552194737243019502229759880457432637656504766730038728216438177498992911312766095351396945451616845121902354684740920699744473113208004345766181595628095175652284799136914116179600081904901454394434288699505438964572916011106182014730740809515829955219698304875403183716198850008498126093547825269930560609636182991752142688840770409331774717613703103829339044387181079307877424475478938825930303700663545724789264601181272949952658511890076159772934742579971169589380657924226673276196622393394878798695609984718438843528706149413452112711864289666907579735699843913575908282120256196164967639799999081534186776550255695469684579287819052988405046347305376950725741375787854560388080653190413239386961372209836839524273642430925419070345090764863682312534254856058467567695702931045269734564056928738211008124898165388185550243423552153596806859300531926375527481439914501284375835416405716584472639267807968813026567761215375256515633811290007062780144586339887832746983155654469187326589522640258393628112205354310910446914149409317270820847967506997572463191713186487268573330139789615788976619175686653388803617455902560020760970891728415838798645084936825498110548794140991649247723243498487923771997912425298216464546587179156075041963587319668028541252341540353766475132755735930701224128211170974994641479703972511091749813776848319176869861592123961643028064841772295302250677590557361557918118553444408854445906764357792682072454709591796399056528773099501031657372226494934841262800718500726588013875086276750723714910318983839262556654848244677120947521008664759058497697919801302751483332227619424010629047847742085669072024629981281951784927409093051976927668023665734205886367073618362324658573255547664786979699268046934824593979726084691081701526199756063890210544717582811424760886292049278745513027867616245712988807567030688544636650689368386850081361732986138919235457293034328676295954355438556076536082858712622118326102757937790460985111429631399191030564239625092082432963519837681936558090712383063713653398520193982190895704022762151164969347780723774351810393626008565070269962159066194282342073118493835470630002869082771883949578546572776337222420730269572701779756497252354220078898050976310189383776215660239847314032835714177492956860257115514861522043360788505316032105853774763767129515947520750457314430361404687316175359598224905775210223988194258576752050634383717498170300981713590239880536801455760646904564133650539311066954209580854969764192796332236157547310686877399046143270128620177773726560915076859706804436616832529361053664961302825668259316183335407631111092000776363978841964401469090754938417036840123470865251582550545854007926602306494122220031382847744942833751602652075262457730826828895453932646838089579182456742777115472687279623513325887524908935167259074210816728088193084707213365957077482776387669278528379777887773779470266385855419808631018357074124715711092733803855860764857376446262774992113399441990634245324680839540115284872714252277669529974994123298525068014784489816794431168448801580066738055300544234391987964840155396599050862529561759774460227858010437209757809730422443148038776084961781135203417086181941573890488206629629141745068057988619777435961781927782136575131995974967364415390154144870336712370603367976414744333919248320512311902604842649596981698358912678021225143997543429731747973867009313127609330516164299291420342450639986166197124043481174717784560728021057707789680395034057455817997482336611309477316685013758793896181308619439219833148690037144944718178450160939853810749139473844141606169629013331814308031973516230694057174542446904078416302726231972032043131314185224794186450264540080603429989336566835753941914737199462597213999006859733198574444232001655174140977723148243847984924373952017008289101343861805012554332016193720541206141430005765519545537699276253314284510494653682702921375810460657894480008711383691374957128177910756151736480172298609193663582673189977827802541407859497963235782024337765946161463294742005169648132886694879816420884240722147640961418343312212685798335971579261583628246758928860417156945629709761675984008476071690269163006369956313868274034908278084173745078625238517844113458358384432080824187418953200925739897817044913624136255589506151672776541276422830128187287854090990254883478537754579294019650798592856982965522988994805793834824761161075801326485483898107711767883240066505117969055350282827670730865845923213110917925797321129971486565730424528358163187031191518998246403576849638765519297789031368261635279973802908891178366253617067164493084437048950405273553028225177514477906082976354932289178281994286880280984338818810930444638849667086049001832419377766293797352250220807672715200919990257790646704562146931453338176731479625943531650735019635852152629414715141548117387032040802951926926203861823192308804081210366463475343135512811499313514662561900102143958681709620323627835817088191870803894942135804879582907613581343817762530880623746974001704622384178409590407613843898899302919532363016886125756980722349545565281295494769390446393442849739976757482385743908549327300959642763031999306170545115679756080984975852893545555502740683481525795417669838435616815601394771727027063893486898286504588262416504491841552003010255960880776016366395250705897913162105004831596773211808480970602131743552526754224760293676878789053218173773005678748232633435925808314950628346272869941356294262649798114258486839875436328593528146049906633861380818034138124744233002582355709357185205075399901573412646857882758777078123854397771777716285102535722496562527998700984635734289075261673948139195672491212153843065459855411934649546151563819383555184224446626669135138311985442115751970964144878314587789291056805118509846626476713932263235602170479707840107016236109241152157389490477929098356332055986774457980387433083344889947608169884346585798190512391719240227345073920513255168812186258260534179242941690888539189497263378443413145305562897976027153328335426406902296442383842704637187446612778115878180011905816632891972119632849449304967811808945563416110520774715663433925888717284796971199842487045151952242573740622535401902111819168807647435385340845653587531121499048520859293468507704897619099770152452542634508456155113103644141986135784870950521685435635246368130920296996998999987624430637427273227652522149877780298898870855514926569245909969911228958753838764278803401835467775473519569805832007227704305234540535340387964962430339927469016673338881099365614565468221487218760874506657243815540693974343987652893538928056725149281095556910225180544553325281535378701325056882194122692007491670386512763321685829396523863010695133638215825905377178395316521743938136351161227135168443140343435825381246663623823004447493495474740154651261314276194483194418538024349985332408957284254317733367462562213952925288889690155377091633256405856239851691373190586966923008594097466601389387286860851282037228291311126288802675683971904881169213800533973888006516399925819185595029648174313206273781956192861716360751454085769870745641631666569755352496783309361322886018067481355321475814754092164444704508955049673076772898987109684362280305846486182154946952366630061158814765848412614876780487901480366828531653952104089858559992261518261335560931791119723568997798023519355462998646451085121611876421609375534304614497068447967121318086471102001706200693145841903736909555344640716413657548599558886289724754732943571882257303398828272401196263174406723954082384374207563773826263076834280471751651346916720927463713746856770516352260479927639237192159274655428762665908791520756751196962738891266341378958680279362512873490014878604207879151689937863372544039108590364826750635525095723876641279100858608270953569124928154832769355012410942511578766724126343481756667111609560962010017915425355113524537714625368867797695551195501644978490312700414169025497566792937214474794674442436568560804020546701943855240064761558989697469256806312996563539629369353605101995247359588637477948155449285948605578300796101864976895793482120068704846931285459527776968918124154671576422267545874110341575123638016683323968757708797551272009168407630313422441670092717730438151175081971445738449882503603767902607117630828321853674066118232404704846759384334890534068166353764929078347512705699832582912995334861624820319030555463113585853687657270056343746129218702519410595208351413025791225467893001615387379075975974398083526662298707333350991728974413655557254377199024954045789892352104797036467702102921289497905849483929616535519444708215210970161530320740933700608950262383740880750276915662019705926538290383428321112440624947993150346353890432789492118806685482784207136516300684810113001098823547881481287557465745667533909815883420071160493660643752749464566429680381163282586711278906342867721083976195408305588567160692490881147411486119323609235568395653193430428535237452098805967327069872058121236279527802499454691574005488191547299270579944132084532933021244413857335319518307757219252957563029984816572822014657093225121154597045990196497044138529705433430194577427881298919540544088443448285072481543555344513559295826037323437783941470727236253633073037144679444824728536850556810119478958225778788708122755897939586232491322462706564565352741613822241085906911985887190263939265213576709385660176394486674604306872679565102437620031953106068101122658891929971734171738206659412026866433123198343578476093212709419693688945908563504309017579092853889414154965486017799169075093408784963627623652541477860454831644596379040913139781778663223438403558203153558266395764047078980389438177350417874394447823016908343060934587181483334289117229723303969856919545334721641345380092405218312103178790406342489243849950340442245697173811346323244019685516460061258451866479899637527144704764605314263371392544541540422654232718943795533965710682397204756498543243797485987252095468752836649926029987371178937893310782165214872038564910166596607902139687383625452130814049995665541106656936796253385453743855096327248895168101555002089000235995052906484763132751974021748025719302786300908355950724378804881238961080766150070674105404887804052982472561373336061856460658317247737826305866032703797665353521448902115007320526923173111152429202618616001098338512293481108518576341013264741107606857879005927978199271070349619262444862573636877930495867361796639612004132427112431076796934055232180589368953699748461216728731824272974949093210931283784543369666559312142156529285162675476182951245809646754346471693649857847438103932638732372048755854697050084955007335789743361384075250937567304068355120606601161447878414012057372437167040912947372693665201203247472784630344369560795498904047045183512838298554168316764571409524487704479318426381278197728362183787017211096217083665540354988188296350664348150691374206543712321809509352342795369229286386577659604280403184403961386248878527685133576367753415868599687516644428950992220209087984806487111896252471797410728524582104712596298222754456897045805956812081896564306436065986546022394044079526866319334268068038170833640197964253467676047447942550990089073428332263758619006882044289257275882575016978180877824613672707899257389599303460599215622214855996186200156075146932373029068976364479103868454385700493123099020270912811444020998806575189040006569657297758145660735936297259400875727727841121079946763961128612312362217014828655200222426398613855602679076273917485806325615721818232433949844479063818571152581788213578966861772526789775063267438060131424986823733324117789451130341401706640168399308059098018841985009567543239769337384051864384322917852809214824548280828900055457197267646945591441830040946548364347739344851784657719091428499859082342552581884004364526045448489065790854825183994286275921803850178820389410282518389906616959368235226897164766314476507462946908278263867794135853837100681636413583296524138137368279835548155140934460203895518295365742999782907169876696885616251245324241730174378523940841324708215158839295624405878931610923774332580494494079503725698613042445034677052846817041627489152338551817020802816273789963257247799497329157483750064333461450163845741320517632963143525909352182652305994400285712529360588536439946674173809486260756948018082343134574122888466521764549434405412862590945874892738222128380681873403106835263536572410279085453828938244686196019089235406827169201074390876808338874284695217260865006627285900642908098248740042173729438064073929949180814928447457088465547983825826097648842875465950094275653311448600008080398019514092457981758367544114747921968130185893229728173403988967113102768193342732128469085283434817555070821420343120892245910523890339342783976898975953241980196851222339562409572509729814943963554899566000590398588412011443209795199161771395675027615591660888892028940413747130064788754553555973993941172601068162448755413453271997748606107901236892449861090432495892985313024157602519104737407023018300611540226393051022867911839303680642799511288610548879559072724972848447515777885396191535940206290380348204972732226753239650622758603897533251529147798005346868456167962805364875054326334068045012880295685669525843612443040853398021958421899289882650159404666318122995038424000113093346429021313991355032922979200832793122115875954243103972199558518003766030632802431526623592767810072413241719439244219122005945436124996744458424517023334319269425340711638429566347269868735456683307960212590738256589403670339715242733082085354925206539449683178748529093790624050393348696278288980637405369891113780768035136407799175953220741315845745041114217863805036179690024764333078406048823359520662756370544390903815676791682521655790850074810178875207231902993405251642751161799122795910921557340109401566675432669390450597020433133503159752913271599003084511937544884184195861900575799938377609200785475846594449813931747506093330567541827543038357363396653661517629795045372569497887664518249967875833862853933262964657598754929014420620152359799428184071904215319053060350569947056382922801430833636706290916112816369225073983252214119733274312221020132468251577634472748294344903221452559518416956444709650876762937011118106775829688887613485285960357886922002045412658392659556095990828528343799511141393587356744820017219991413226100547258621930126697399873629177183847164435203509312190016475736261928230478850053377500804839373739339448828471091413846241457132197184256014336808122760264815522047973412792568368820571794843916855262667584076438853263607098722692340652632388798154482159113688342276853071370090373970047431556778902735676141473085480711911037557627646862258400773811055733682128168717456079884637318063001849653112905870594013672788734651155794856169425526215096230298991666206240379949142623611765197828387805661481693489733766891364273877590949909815800963985615475086550859409387852610855616159748459677200357971508973210247282237422739579394854623954470974490471043708277690999835489265815805979194864914528785974001718083558536924972181626789318820750024498031549649333440037066193994992962721915063755123058057145281808248637957732307594651129446059218700800641238835302554132302879641587082677385227267481239843643842416463734169488342237818393039105667961286214540133448355640757853922472706370462441807933138741678676024509978474383223977099524011619300201624355688096969000089782405523478723003745555532177911566527116314085268175723799652341752874975278608482047643653129764180728695684911297899198230618870639829330600961968618028132584736368405147160382719260670744393182035686507820806342126237140913592256573981805462580385912449637498578541865736299343346293959547825377153291338999424677450287251381809841823310280123887962803003804864184246639752127244203799342807704848717538675659714119158700695085954458797821126483979864722461132482719295901469898777372654886988878437455224911004776272773289977419508579954800023550356096491981147951094925374937012481138898329214734217661999401988271492947413768093296521891694871680628656180775210760283660385098027275369474491779069102009831285283762550362721178055777540484358887409458215605965528009967165427105108001732160207433623115357876057955215446612739593619081522761240754511278374145827176738830428874268430531288451191386344312742163810645994457753350180813743893822002995752572308735078191925271105882564002848521210392931306585572894294181809247102571547585895450168996265742302272329276443564157120282519086035809510401209510410244073121681373895928623717942135009195801696587870480039575625483650328541496760751094990789259953887137429605576168253344432405016591900258317536125603750651884725819541637467965839455423549019535604797985973775916017920518595472256756249591439429853545100733507765203209501478664038064600607252918866277490143127801406150223501252675545416666499378523367356688678999677148622608342495404208704080665538268138981973823083232997770841021316413127700783966037989021912962883885750231635055079508469168054961709566080358064548743270389689373805460117424793257646371087262585702924041317276979197816038117165247786209705595911736658994636711496662656291786228273240293715201914834626335353879433259794742099941391960336915633761816042033720494963224666568150573839687970393106008059794913316471342712771712880253459379158210819524998172517631578914000791444282707370650220883755380856128620955582275487028410001113893428309354440277778415569795092723552726776217795655255051890918987906618482061107208104709474400045482244443508096682374215620440369944262787296605052928090803088166175617283318173259163654718113795355757315710694795068661690786470106592478199263853948427736667872516568292525116760256634247535850592852828344502116622192233211651149201981055680857688022211120089659051021097015470481197769101521714556931504123164469738391715040649285879082349862468704639196372207458812527466398935163371911398605327295407042162912155328433881338357974331520573796067946416426293303730231302438594083433203535372090642680979420568544255736669290221677055363739732267478386423938102525739650077742255179119532102462963661334710780506684030562602340367939434059529109722647721443030889690776130589301183695413136905313787008125370436208866927917196721487052432046983138175521438475027083177347860400012002755078529761569873897110117361724842876826979782348346207713858248637666670146350339314578287173566670609609802286123246756124682269394391473170274403549624967011075891602704786649535369010894654815412620653752060614179240937673614610365665408711860376585356792758324795884575649377809585279181009511083737694565342108621118541012988477755818032671353121240688315078246730040939892228174596062128063973415887391809005145879745421295434627016076618774862489819031706448833255945601608104190676324532960765102349409168979356273269236932536536512276999105504654297947719758349380986292841975049766927213693098052919223301435926100273908545820060998853227719213415611807143302100536777157905882108865450312615462646146490299041584207624694909923093929397635730421702231395613431417319654178876891925571930089586719374427571084796210948209877914616267534620489507322143836147074322565283810772898042761507451273920875866424013707337078918535916831731920619665800508099745578166393523727978454834546533291993628008586932244298983291382484926961590077983854109721230974637892256554125994587768482425903023901826987168083141236498320086439599954679198337884503017530250710981543839447543013883938235422950157323942142354089195971719974575475545759069563646080149044564138794939136074457150902977610428789334052695407653637370708305638577828284584121410907288096984033723482111939696928788877089410849157584756575712159956905092969772136368233635388018368050501064128485930752368185865973435241210941333341381207513236584979242156318111418461143599417601427089910714785510102971225899500397117426165800116741250437090941839368948470632395422809810976077812646486982281002053494237512329616155463532462516382297623087368064964533562327535434600457916671510359321743995647942099752090357068546891492603663842051455537111133515811232517211001914256946637348806260970754784813088493876838285476658452658766634830525639015344981382506518296605165455233786596555936440431571728239268765185016299798622793456399653170286297985782497510671977416178695788466452063655228329687710757410763944454099498509010735353065746347130090950287690930301636177155825292181816470957632019735425225272066681301866402379648670670226612707017019328228675877538243120014526460432974815316623812588385016191701889387294104472649355307234107162151033564344947372384426595450291630706742381836065937168273671861220829504819343186999360846959369513734291026589550711792326103680337422598079414048124733505808040925437924177959120642921856741975511285564091111458553469819909370873202693922612503496143477038630695521819761564145684766734157925748906343561830323034432901389086418137488277115525331250109742168109028510055328017733958068818797071490217858326181604235397226399416445964190204947781133568582015014247413668743938000635953057859257011211973318803641901144872624109399142900795517889021433492797905501604692793222940952125617204985360910163689706677496900310309089662393152281928291446940200241284116066949887349379521401543761881208066546750389183068509496010019411505086220992231306685605752071870281633944016067158624468777848141708228826015301436106578934088070093649823126123315564107283996349080610996992983907861305741355220920363823850432491160714477698103637535804920342996358751142321656495569576108432672875917443535140908652880911684888030759500033629777845062959081629878186382420391417197224646823915732837231668970749483506734635345195958656029012416142942168095240699686609819394318605019428241704065086252628813552815869157649707402639263610938840685301762934403315424837628594709502043868327022999618325375563467184466665018636923718430236015125614486819035692253090773363722773975090536418253382024192272606150230642851111300382837099255222820091314248584780411452886183524394252171797903988604415403478276170723066586294652377841098899160231251634432637345134366938554860274563869680013615840220355963006033483822996175468772571177380064922371613139216673384113250146159466321246175727064696185237308381281696320198871104615123421153739313504877768746862474775471230324633794590511140982046176588006859046407047210987037571172235235498518124769722761550002054650038192077180132903077527430328331018281091754234560169323896439077058750661305396307362463167933514376987210246309166058381125380040677857528171559211614002065649332149555839208280564396791442366588095484428825589959891295494427005783196409963854866605138367025806021351912876731335568279724420006051553332151524689310134580148706208761965772915827460801445330375428222072898003166105843976722654301413777653879639653255049115303731582533003265652912037153591747199333054968198026462268264088927203421976195674660162436082925417357460474870442362844438083302821521512537844421213299644646205660369834692331139199065006144714133814280850010592307947408079940110914078948820746543577977413787863641959393650284822290163089165996693551796601132800768895370062074432306790451819714161871910462339062337960710388826616642222517642876412720578058389145501469934955201744000186759487495374805862119274643548160877736410357738489198273236068030423137170934850045384762367833487624105758247047469984342751077855913055670505320401443447183418391432928024187938451211081398704591148887858534843192096923835948718346668013308764913678194418622024682854493323816248992260348835618464477354643960867296052788646068796200360991013997204243516017066059780932215853489370541181982622268262562058731565036374243532881273836875271754140526828125775038523079236242454302530783260224471925158090082686780713647225149050040132341494579938271745432267036980275639883049616370747182760253046501388798317552000321084700970592704203377380222610617252602400898209832811190508611615051355154826192178204846549768459871685042671402726559290701302468656695074448684775256771366949869369983298633535160748970449524890572689379083635794022054714388435473556039037163712356920883148933357625112746178486143430433890449561090615107000015142103867725949784278811786548980444631889215683087093278447248653811891960595829476546355989432874978602253228674808866619884447290090985107497398579279984003837029523725637029039466199283091431463693267743607216365959987531261780696059999163458194870359883360085304744394108672216075282880118515629509861198444216399565740573811924835591719429725636482159295941238815260860411358354769593505375655954196354282406169489042833039998233733913297623974962107120705641320719407450699542610275077602033424220894563784328099524543219652653829810573842191226599649940927869963165415294135616651533951922573876998611029870678578169794992021108030439706502030545965709534635814747341521810895849230009484947935632551394399310833995411521310625099301859024486877980003114410095858246418247943930701822421913762728622473531643513710675385177913793290738002832183614347264401635459390397198331504560757502127267679536203732758046825590651693352742933552569745106829040734064322323789463353081718472443846658905667798172471841244276914892306260986834608843584200757189959391653181020695151176277416318506662182990396530451139558726596898726913239511462759829184040971257072223971698183249001218786403843098041110088491018580294913807463037662338385144003901408124175511794965709851994803262550978599451946576729420097150037670316411957690988222127578962515676462826878860866191380676527732055999532097420362619200076990434160253329839131097078494704241846743656481519320025884759489460554356842783923781426838230339249799047943123944262049465655832831821608099662047300353584228916126519638775727667320881126788058786188847716548153677458844570121972529139608903757172647856963106237586835555864010561946452689392330851364038709130006439266952505659317368878894044626915952622568994849480339923835321636193859957796245318898745820836177881334416240288321229581864089826974856387028930372768565961042031387777216171287882842067161847581435742482736916353198812604010723067608440102962774432358125471507664662973494049273142475981485004604817350449688398429891872560564521846442752561094548955620177827013809856648973494330946631163348081382313851541355686844904870065944274183930433922896290508161926460029365157724194512604456860693913895351709946474449521025033449309170897155339118536205416787137991937740562120664678436843313005727165871103593077145114068856494942286512217165429684074539469833286336306500298352856362373594650569242719064566994187234207367249535161429760262935889546494775402407272527221124685355859092172679063124959943647116591261803971960475535818295451438737220439009830000315796036078142784258023845715419621029627594463807687492446416716709069755383680659320475675197354075876189451352788705128473429580615339740045984484742973033286033042829264261659775314821522716872259482903437109595113286689900181528022117249868991342318589800307948075134478794842714299030091522952879912710468404897721860980018958692084107674446211139093160278890801875463674166362733482186301459614197636384389121435502298326572951109362707865135296760188038003842937416582828157600494341360306702907130355144997368572394532458119769953589497987602458983401810040293139277441755874807085692017897568446799339201421310932889321387841343747013264291793570489263429958466331244789126473399680434293049649698054767049436184446756999428934496853871549016537312712366994738715930157433802300457265319549481488306248524231588178575403502555708705261621240306026423069057206977594729593962006634495259229432439672689135383710416886327543586412908134903249865766984440752370105054607287297024182970227768902532360693718520511252187493670063885720575997175834637365717354149825521849646972731934977395904133422038976312535071312839739508975124552442119575601552793224707964604376341695040180360902319698778098322929109324501987472158399199509750602669036268190657533942440013837860433007814741571518656284919081702747768731130131707456301975399590415659549507657317925985750084844503509013508786891718698286897929301916498253034707263298323827501772330089860579170531682061649325004399567701328307231063582739377781455283377752041315165152130645378338789813873194890472306052485020948543330206722433604562289324198460603649852738668574888005180008710755595816816625971926526586504071571680228195755243012567563910363760497420497082909251374578585230928529936490439232738536308966566121753805845610101765298174672184802121064564469942902998000285191806097306216015768857059844300977817686284389331418784356293180502282219939524981723713342155830782861186728017320014455859415718857955180579923138460590971036011868023725789078860294092133996236955907563205601632322402378085626772320526393592574598374588435815912553642548706061151151095732585563554374803678253859641573498691409741605625831056981673107649626889723381653695539538966600842337562091913674286152929130522226931756356403257798275936780353726988856914944849589413244829059446875860268505649838460934604852692321812163925639985237268684105504496550753372518375651996105842174544348141451233982017400990338099728920494522327458469991646735880329028772965074216949052195907032232135738379932326971282743285691228223256960667922689276614043312781205455335785118235605163375038407025241839559211936276735510073155546943532075497646752938870760656705135068912832140429635334710607599116245653640444502620460588812583000391541815961595691424609290623848700544660042046243876090249250670411672009470027786531602717923808743171356210954418831397128099456958686039906755380830870835154279633790853178677762550942750133542207583472251480891887935409297009935619508370347336182421786470269225652910638395513128445576877133699631607158416531317897275684463255781854355168933604347223778006265931520934298230871125215918680392624152233105808074257325144650485914393469993580920397805286137552665887011428474656054403553930152404964439761646272392351944003618773572819082336903313455511104582208427850917606686579758006833459668874696656838661165591005112305496888943669499771367338889243437528246711728863987804509140482187638119896924731246201325348015245394430464871244065350812304454212036435718419796930698894352549507347005089849881073118222066740425581273097434797127665812862296048160159096977171913395598707760013588177231627069402211984845899488462667095394442793718255052143180231073679668852038314930131002472312159718084167428769562411579097324417409736665042992461460562381565224805052012130505840040977104018841727676892341247370552922039455117866848958343155070224189737496057834570520214481972687112274217544460243890039312999924662971157572047930277445370618174273734299135126267584351200716093237669525489427006454808710673516004953216114639628814410697279651738943985221151040374781471642393351852804026795680343728244363620987246482094999240745337435407998344432293098222055006878140435840924030629731515762683901418235062492210405562360978885058903854265941730920434664109476771490936950050902984474021330188857870659806286771520168454527303997011431008195288604815735608388688760775507510386232559343065244084717938973711104699037708346471044877939281514150017164937214254466027939553221488327490385346098662920363058444844915139197877034235602126648586966245332718383688943541793485520352825344671947386038608581538038029402697424255617864640917422557434485605439340042465677853542385511823229834053596411385290141791441787078938419272934747378509762662631461622237495410570740652813797517389992728536590408043894448825943668016157407278126562764007704081219409799137561492980038697262430293055397676724658366199904679373125383576859354209315268919541778177970888182546399154215771046557565294938185264102476244013958651219479993164689234340365148238965146976709785712996586235959246297693463103442084611035246101396518227868257173554811910813845737502716257215958414242034101653585146036685884462296964464168656702000189802048405852008489852762536165222134915659326655143064524781905766795228227265816801965927942662754825906299514795159248257466421993818897700901476555011263959411452305207030617317867240286836488827506108505355280803195339821683504042424735025384011859743686304100166239030832783263272593629903580973239989442855206813835918374712539878898066252411478168698065424499913161109130986188915173860822927619913539406942888940408363629632753179437472143936522432041917109490488881956553576070860057836342729013672927282078672529620373128338986384909375759712302900441092436838963462264433086901658427396577935280825362134148173144691640747524876431104624827650770491776529343543923182353878653506574458511421500147518125243905802339994408602239729045183065218095689520058067197800824859972139557601426083295708911435205246664757265380487481975788394165813803570517753396096521899310087285708308739882530458852743060336131918449474232868930187801692818247341963936177497177351358844353679074246329906074615976278728920248456176197646189490360436301225148202834172844378435663300740348837134143677473075204031834652402950855302797652362313709278999242993607664656019763080234872018991540218466791698763325178197767760662229019959951774889168824446589606168464006076215205179986933349756764520286266952642215183672148666866588742660531750572936333623187408296438166007028706489532175799131163098057451229120177569251665718065977831168960010827093731273936662335395722108934911890971960220428854053378368666311196325154161586561702123932817167704790454129947094041645794848461157992468383163220544870683235736442313965255534918126557827258414574443334402192372338362038504064916323412823318082600536848457115414934136445994577968235216170150785754637108535658674527157186980208179601367683301950000590712235528097624057171857152224961114178967248818053649991340429572926484259721244253110357147206888748659959506276724031090877451069322975573066888271851955143766903349627096095937948721808640105040873594847110233580457456880981311615408858809343964499298588107097167990727502986084839920799021958470039670815746381136096369116791633642470592125651133621505867052140265241705922527516703730127389782068700879069692727332751752268946948180942533771787068073872860543743113975056273356970106936861393166584854761934628233951275283671515177130912553543913249361713845079481388493585274583769148388535620564676491301780487730921359508611935187477400341130507946258017656025897330472074318130687738696200834607735070073214342736814015045385947630184753749014375734703151387005035477517448122177695721311014134810596581842034917790290372826690049428924213013472533554905923221098492272859874069414503998432669875423800034803204392042232877384415530518123676196512207053005532879181056829836700057734081750040186343924437127030895164364220058770538120711206101316885460106131901147636932713153243471630550835111661408791344895220262009468559679073413647363388612178458941124322274436722441260203268531038304979870818811672545029552293344945390424862484417598303128988881227457749442444396198063327223091993810022895494846409112681044656217791352166046114171691003876906422376144408451894266502869171203088697467280297654092612763749250269212147755743429143251859177661974512695577366024873187472407468385785986192677435725169589202394316207227561039841940556565556183736945375302144356906517397412770441748461713650019513836971397854614099527053338409801387517173642212342808818090687704634575146146943746302794928870452444229793133888380806971967796112820227093152528972740268365217265826344511336234956132226179301336637745400276675828900229555181265264244356063440169754525076253123922016251853721263373957050581152032182180332893546136860161972995423890431376951018084356016056821036895856967248571569250053436243949242950730226976493756085109570070359534403266440065624808833211966854823130345754449584165748380748037758055735274518488442096363900621443331359493466986870443598034942671054698112499921324909129679932143043019581863710692749821801459624877314134024276389525328951576282934775878921758425583196911917200562191621194652446480009159599112241569771361204306547896826741416215142270307664674005247003492998122779749901064095363739831670217764613676901974640453966599417375258765801386401978621419097881696723075769142207694428056319631185266173217927258228909034951412864306633702857449803608479694551465431255014679911809096432615070392743198079413547087113032072242207812414493973980635992995726597963374756059195529034007035853862071656816221151007819838657393970525988410378642355329525569593567966161014282865259089539890886233424016951729112278150331176300583745529550530188617307841879418344113324139686271948723869595272511704453572228385286711430379773203657643946215876753867197399012293577726341683962365132544486135469530430348033621224530107382073373510825198986348120623478278173140966061750665293798755449290666927457439133478734641477075008437901267236758870867629839480949972064388309968008377550053587130012355254233276500659064751236223828419993364817288649049622417837818034895182271749867462002708304121418030087333390797524713859368187505857862034500519331438064010246722543126439975054459113476684414048190283228132669074684298749759468273891223981881352187982880230539197096544699870481838784658808252806567732459159591253716378617643931113454630447451984571926958875448722623785110064036647660084332331278098224168347986429701256921477578421743952557834716866845797763912202507947768587579865369436348727730382679967436119213903759852465662758237095303700450882251513616028194193459414467362454842037892338469602759838016322487500489181391525073702918993961427948622861812455394949780880375979564118457282615170564994557123516726710539457676463156987310737945768377220990186779775316736124572232621909182622056651779635658100664070394711822878020620648671486150917479220467214454328359737169486118180713372062247856423235692103332606090784775487325526953957496955284434733531838522805124811625041001529330595673861060227406885648177606618098989422932650846331179327159044260988150320834094882800971369415626865801770229072085257212039191109354745149692296481150295303208219818166022999680600279920404451872177376220677847603438411078943846696505942709922287837426558949702065312392298451598037002861134104261097621313158759458167030577763535516969933096992001961851160774590599173070557585999011624061478756727818624524794555044236508154924128450624558469157328601862704374327630726387183919965931678256425724245615944122708029844002478842494940374505878493127104727976141596717072046449707286515695267716875476204005956522538767317878992011756483113058406534255984543803702076212821990114618245805054316220143348420620293585712771293585504530472614163363079022308438512293483117767000553782064371271205877207986258674246922445921641889421926250328806520621957921058465369491326909598590533611620405751070117594207048907882143126915153278136300125453758727905977479591123075551171692963802103659619518265913106098251291470021263468745562876246481995499885902595447718374467856592143494727641996520957315393690703444861085512045605458781806881076757343441183060534316989200176889414106792256087055542159787250054757843925040620281564839055031002532165677216820862670128631914869238800886655137641162106301386658327258640663988244269854804272439675683173590053384227856137180777850755886798365735195260317483176464403140611282427362681940286504497805833295533307675960067114136686762078074516960188568961000906120301732357973418776652568403674563614864561941883026689137700070648134585675622299751765866475443998743294161215790451763259962202442246529791403646623575102135895935432412085933245334922743647369118805603398571810128367446835498260847035624855841885335451918341579056367895233966065378854421803365758329422306705723570285994449077478593335611644700325350986508749150670990604011692911515626289195712126174819180587441152908511045096839600813630304821580033592235183214148302664156943210270135408691493692064875821231189625280725832455587412366209554224231427459375697881677953241431397738269520654203536015759187409915455291036588476305488222422077148311208064079721396311774130603904724542453069355286751416783843248973241596129910134455637297847526326619318270140234402497517287506549433599462838201897733255808237600233617782008443867157379334823045481338291575515315682694416276870302218856939703646594196304837706848630707241841602985717734715465984570665869067427372618884991631530560276221093973836598436850546624226488908222183528463162616372364577859823463166964521495036359242040650530312732668955580440170881012071499351876188634449530658420816356319037059697700272292992051074703294426986542688109089851956380539228644958347643504161033711050341032523333046437914432796547808251375324601335865719554900256290269235844380111703625071484987900045363998266906059508636694360711796636278984326450315792596957088769460586738568992213207588191936552911718907026559419343933985543218046442124487278286918722302940936889489177433598062214577597510549510428192416232106403286803561314596459282029984425102728493468742367991365807730396998688417157379180707239956912772845494886860634320801691427569469812159275998398487247154662755451818930330379279663445040521665365983845253609160774575270825549555757767758006101223685044084922689770079329375389998075171540342563042151008250506051348089593098214495339419215240411124819830223778165061939898795743182307285600526153965794336577106631802858838747752214592354065601888478547176256802968762769285887072452244762958015480639853569840800611872611690284472286645894599685702688745242064248135492744902182151118258256132250612738930244464799536097670415142075574404467150061520933169632906095457137855611077725542433999773519038770585651280485410032256746294649488780923657969527321433501473903787157797816349500823592474476722325888723002781831917005690404354754736775611568364159963319907835285224457065175020222625441099794622511286237738704360918838447797076624240471244478623739099950323290262938756944609583143902488481064654430560546984027062494076076661921385739764725301785892324157570517280867824032360638693642169431057742281969971696327697836083330584930648307577466803179035592476396438656079191381717484160181052188365690883977367284969955354653073482960991278365189446414960882028583888242764646907710048604982783305377202384166992147282598179264043056534358133390765998762740294496302919701568530538966257547366921815316195583368508433275016916597220450898924440175192690311636655819157232919420973141380400025269502401461194601441865876670889637086278727698760452820543447948575544499815809786985435959471905028526321067138350627112454766197900791645252350612227539991607756145553906844222738076613511643784877431526711091905109134897249404231894022558465140694705530999687460216270126411396923576421314247345933930064357377853686913825845995617920204007965790638989145822172199547647524205172047906325105014926924454433203284718269932681254037838929302510842540485771423982066502211245069676869822435027463421357061897209361653278055153247724303385999862385867598454751991274484936087755208545086280604923232369528488648175377357132646186457422781650482375796431743079178964240161295527253219533012767031579748179678464741963720663658501156805082233723805388470402448541318454424315141595601917394184955659825955653410242089833921374257646822781442923596368102841894050780401401834847634235168031890784750132487228465162962950161620946621439582710392591605727831747445586590157548082843305007551262722902094989802726287708182521339621457751382755124651758009055878347350651206081715055705905560235148029172152743218552974693628503526468031661921000057829387319720904109962128157153797166536983741921340895717743357066985296941293324578058645804535780136557714636403713037367021305779370148637264731341082135481447558345414537591043009672867977091102865388577880946237264182139822994727933549384714696857735348915604996142641419927958151718107208310313349183311678822392011450360598411688567661753318451986362443895377180484250054164084872718078224238776485661184657245667260061507152260085181465759847699272947620826017082724938402070296087832864095331936614432314879237213408362395232042545551046170087927700602197030619603670645237698017013499248307131939880919710135610967736076211938530876448449436776428076854374417120824809038203519724743054689642569749461710372310762757239366022068707692664684753715126378582229740251440530174075600570632205716014194391530372280647072230752702971081653297003194343423187718173543903739095235075105464348905326681932843456500632743272475551032792723724246955246460313864377093971581859969944443315487465632605802234027408056891217726455777113692393162349855802579207391132597106156109999481252155885254825174778079948111684760751045043628159372542142388235785643597701022206607463843435879683008462123103511157878774669098933437356785600535647765249623157920104820472306806165886357594456428071484272675287143629090738189687517498379904770092418529887533449204830598162178696224277393988772637321367863879640804550708358713062699959662237423802001681347840767431272310448385710207766954613272226055204505187437894908126421795952557145228962830537439705791497589026781051192101128353437904839831966271739671773530381037111314801768282561473304885086165074758411147206593696671466022793029359092768291157835635645246292822560075113744550598727090479450508490708070672961969624807090748730380726801831382350083391368428242384146806692141769192585644265703537621560018575980925133986812449052489495779203388796755752447314825731303379750093634959087071219074702283304488222075775200369104815340646781703077309955150450187155282682045703521627939294540105150146413689498819601876775105463883351363975613117285057196229258383647312317017800032814211955398299243423847470567480144467196828842205368984165031265547362532177015292918288156245251049924064825591524072624113627295704704259893041239041436636757233123858881945137782551838297602224928883704933166741376671581190848394881033102394739210801611896833932572345556328757257018982839645042803923193792759585988417544011936964481805110176689187906119698178397090661420319453731862143886523357366709059347476768501426396038817615655116577881067836774223211042448985991454329154226308665730172269561843280974610819277426886403453758189439323702889984626276206351157060510621002049950433748505983902794339581821396667139184090097000517457790530477148470252031835698939527261079771589582529812466952184079678268586516073332816720985599687442882855487610695562385399584602853952865162579811291190492268406017758493983404183469968782275248386217402130527428241184714727584514459210243138512073585991893350023003488361275898545404573160716722043217399337019457484331254723708001080036076471750220378403947869569602510851817475634372860798853386999472087907824481407880881621649562954566940655420106250235548150925824087638565142443029029857519664360137134698498630586028427150604285490331592978921662176956150841733517295626277413573291539211245557779390074961683452455245941684845481425523023906286915897553342017467485616133672478033979339242026340272820757029470769891917720993880488630186356177074465115814422769735398650188421924660253337624725353195364907502764037529303448586204673175235507037682559472155225703518002748653288744409002657059097257325120751150967752821553097768455779210303585101073958634588804440580792523830485795038298798715700494520421305638391210431337572250725126780252743652343962017894015860732403331568100178081808417571099300155423825366843246955191890723294589028692873368530525320862613720147252401666039463632994736028219758136181249526868630783163507867250198012408210651989469515571374915061058346509737732551498424122508403867893159076941622607377139628943559912588521836735703273476444152071995243266415367356992072591249894941580365465955939050699588119061149480613117627936222082665870748733812127175354880163690019789214987784070173210878525177882326281141259611937088980025186717208464614360567056185088056101927180547782399474946464164103590045311769288873871096304386459501037474600205684594422178772247281767273886761564490666111231325430609020332610941952200639829123771734695573663386608346856432976336848629763966324192167165731583311731319927299638727827014177833325199295675969891953515917057763717481859035060389013075848305581622599804030149956713773538606914091104523847004872500309800930974618519602241523899762311321250839727310225797864059949589285868892414913344148791376285808542684200030928936533666379657147839283818672687963003891255519365113176982276818625943137674249187206536621054985184375657354216929463798687704159924542099255882522858599899664007977900996557668639058453787464561152094580532467798833361457364271468176922765235169674205647255685969279538690319553759891175918625043012120601399781740028966984838653172132789418493608356566425062139588701695738015647338020885600537051656113244528084004754637224277972145595393619382829247042358318197794353839402201367496539019897031597537483716976645325115206268478409391570044685457856154196180718291395281608826105269748467493846337544378869208565369974374852973443043697096615140543810903080192602130656171117798288267093170999972571227596148272985093907733688252131675730704408185927134980739968963340542446238656272399498644948923749479283265835292197358688059635822199117545036645945264290093603211555910197549015227593471100506662360862717491772056034766892690480414908594702687849729485430955692060926194112105651744953890586248841388027238633367206445612280621285981164402689970917008828151937223613299457684559329378727499516098220855901596760331046212980522394473328928962680592177322558487065294582276851463646554391404073090917077230961553411817278416772672386011035098811749583964634025849329662521348516329599310576460044021075308081634422799205262277819320079574637445779941600921258110912660392831505668738479914317314993746764126213653816730734551083919330844522927587805317286007990437595272398552062095887837711789771803936379646128161441370579881369252734504597776768234994825901097597152117404085223416241680462075041852309932687987803819055683340834229964300336561932620707314340087938107084412638026846255010712812166218913236458977869210611775307579983368704580222353505061315459362912549628091535657836020021722462161662300294308867705990944127302600414730520311008335623945252454125881037740730715757054573177985659588939967142523911766400956191474735532479008935651552119382836949316024576953291462664251888789398690904807791917084361705866232203311760635917371089509098667492011256077012857874444720400793844306447269669120062328860697935478820917271792867216888388817248036315455768935996441539350089224949558159756789502301187351434301708996904946653108510122797982799348564418883243370178797317213504512358307631512105042775793724200014518106642159469499422964946826917486794602864004231992413259875656777167162261690268925136508349536925405422107385962775043970549406235229670630758637403700167067032221524647757901773319905054285235310749599837557078602889720032023171052076456234210434049970099356398590855517449518701448779979409521662730388324712683700321898898709411095777153393823364712022057727281918555167321502027771707261203941058788836048088520022949372816997006840385386298423043942609684332136351782710381834035498731270391592784446583587129914859453636423760895515282943492176839380389944351619144665720773247719263837571539316690968057457993994174345337074624262174015840074852697390056102256792233043972275309075251594363096358989119716304867268366239613948933248407059983911236770591673984710739978921860805638036323347777367929518884569469767577134130830429549189206055410649066886906793881699234858817744688451183853174798783335567438313946238468835045248526948455841451679034315223549200340206094146613727053377006478993500333093663606265161610537349581173727234246265411155752942028408959872004214704926965523325595314966558373966010364801956269184111778722845758975760149894011242664740969333952438607012740470308689155918790758628974658097336298293040252578580871077122554028498562839858862297293019142440252621729595885344745954408600806782330792968733814330204944670158322776970176701104726911375779326280150948528091111325493816976258486954535563141844062872030884361557456029624947185344986970943881484362656127980874251568879178104167820348807072996391566951211358018842735638961803209132503920422874914868002168050148187052260461221332360958884467761148730942191567014669122202962775064762647921664494818238079642508241140789459580130556193032524282255043635151524613975726475350795890419725319183816194122266648462489136939005222045403276794822344893251390435677461709033787369810622634182376723256164929897617606211809241397105678666821484058967235099030320898404128572224889150472811604179901751234262232657782959450371380726361515942831665755733964615132658818913985638620876470400238136978200676518192549175311081887976836566063223332086104607333758850678179089094746756888435805331869191985057275688397025064806153294358634707807219124743985341710080806345556018219140910077406096810313357029219726672570354537622881536393570732822515957542499418640576588756819865096728148387504484607528530765583510951488426839154272106079150092287090411882604834968070340218849848054564385662169032417750230455816419994020191900514293839761594852083327426852981709191578292739986509346573267415147567122555426286519534435923100662865126950706099529918381215757345538513310233430027772567012405172386232158175803302494052586706160725066442399326826449472009089331333548498017315233491475552549867977077820370052428344207939761412107184627891407184402006673192962853045115206833997833457461884595664186332372629638879795994273147102490805986216495946586704302857161918221311600426394549967138062982323295993991905894866834080858948715764990945255183948718614862418585138950130614347477734364370086711042294695558084304128967637150994453937168378564554720186110240532298781985016283526611698569740944664416238152222771546983037877897442158994526977859388979210804688645761103684876190096165128391041015826965920872015408940883234583242533566842281215441174903094864928214202082621881852134733970392302835016587820120322413427455336732661115517142932930749768689371060710227960270494689261070451894778944163560602735708873756143880608677596342780483989063516021166951514510988552187931617983307108563098147355255453531703436312290541824666482189299932075951620984924408331830039037533173320216968320717966791304995982210135558954082367480775377217516227066211370548631168272187314287616729252093917279622238076113846165420668429971382926915153868982668235682748420825317497311179587069802181511862015163199637925596654399263629868082566524290759824643218118383453353820622259236793687057696754957790030362904796511526561010916368782751420216046527965452521028952767741453623894359530065605360677326711446985901833743228370174764208496543035121703673517081202554673488056118058860052478946899226039175877121986826862610135987866125396343047065946894851855802576352928552669362970603457189856940275849685542158066632441593992289161383468795569066809110110677937209854802104535713033044532729917724613907806789101175332903599279130843914820652774271838482721775377991510049700940743595190589271755575256267981407980046374528457299817553399199725943257650354135516913079939622312868207426264436131066846049958181180874903621983470590404389522614251606298468762582732116257604848043237433662149416614039656274134424740597177481167498796019824707280728932508443276621449630571687906589881882944692030162790504918512887622282270717135709965036825796491990298360850421471514269855077131888640553681968803090033502829576735808092891121656313992277593691421577925731725892583083488555080532202483869166794351412649993881409894347680001255669862426635724586225424172978985646062048728887611451127417164249147830627272254864975353788335786785815468876343306269102178951313307420309537325459569363315581758269791963229516894194941846040404199704333610767327466224258074801771548517675729537949322120894641622121353409642946263420389011087480892999989990362200716262273164783470853645515132473305502145035850692442535474927629570600255955610307622169158688470188413624580149195940562872966441511818820722383076586082822424072971502248784053679355337682818887230704995318918291525245325540028256706068702672656474335495240043788423674559548691594620027805239955364942065552749255847042262100885130172691913180981613408981411900140900927077673623596475354043813837884652532711199289269822150033776297165570786118735718231232765903046512364148890338628476860468450658347376733892893757922997673970057409314632306058366069218936611722783914927371877444022619316883361505553101660396979669636253309018519794184740021868149828917708686770936294609658707407555108993805975295732101819669841039321663986873483546090642146414927778562173426672901863950315421033841977562455764956717459096834875782210264367067027195258528944122992584579169343853973370614582799072623793477892764853541557460577027697863615973550871113444271732086841733279697207317061206261792114631163468709721197422862214030365944721958456110387701907071707419761173495156103426754023336923791029797940975315481076173877191001357223712043778380708700292975568385734419367525996457263743947491247389111121917332920546301794967044872024868425402419025162492335844106882449384531474107809474982015613576983093278807888715766967395184757731189943838353807708427929515537518302667900933644929282378855311278910934308329517615778900899809044712325089640915011092443919616318237615528573660185141792245694841054670372736899962265296822025194434808262449795273863526076911199921017729060284293422932522357491925552352063726965150159568651136377137576401361074735553505809671449340286601064703914384813938823583806863720711246636530883509851388022293600044190566544193352845175959142856504470357679790911985909209875463618656693939630922816367724002099730967005134353785475732833060868520000320510963783521248666796274057977257809267817363053333586904617627622682969357745057195681208184002180786488065442653929503378340174883833191800260048424843191968570034299994976599684921503452596533985779455911079659254286524490688320548838142730247217981757663225747889028610564488110233216443920882396307658312084720284071771191741991571452708147690135866939942589945567984678248562311968270626140555859912413453274591891386659125774653019527081286696747586196453357392083416074471553677898684188401017281540481535598310242632921028067421712413543876371196153949372653541347748387222067065073818623852128478405202598722522759526713127616700219303892096297423698319509583732026955626571167891048801143842419758121716607569056974068959467481694163204476006969779201420175333168138045202924107715116346423801749493442306232938124408737766965572091577708779671654823286115292745881394836111334414894144325680342069393539798119019352445909390818166009151884362091953323158467719638188707466395421602697649215494658551667264339242729245403287155383487147430085482816687504262438922649068918721338004026496166124629845452683342160831704957486644610067220829528933845181373963497877101288880694404491317276802813523093623504217772489309885482025401341457563257686186900333401513028694921558216706051898052845707969232855579355990316618984410257467977377474400860788824816994902624061582981707912212205118157104105508573222268311882351173450429518741008931484474059956378974452546642589893742785335081120459846585501276001566882701237774944338504893558173919615341513895769393864965648179667282564173799830166057986302111862784424510575829872426975285432715609918771987003596721301042100178237317432755992272239152282431233512356587521986759425916211160428931302283590915628285473847528467589532578652094651405744272520498647248375931142513181259126116041800698641578623510509863605054137093562360323027493900762903072430822507360409473162786163972208394972748401782391474144223640151818354859771649003600970364165258114661954651686423622057802063698082832667046838964700914768959646796886413917556185975653988605597330610539230774896592484377236788505425149527659259281266935693952674667169925945612504777630789445275926682674297919397788324454151866451942213460510951911142297424182537616189708381234234839693569154009608371061852493672734070194303242067655197127339497993426101341849592547763326263137620752319829596971949024298970634032644661048547085215879481316164421990497521950530152686500822426937887878758394761775853784242866972754184554673266951522413855725227805325752516178819481471445288581795800869998663902715522375757968870835859414575285736991519388285846684981040637537528996961414026185927072665589654609960311738803236120866441625317276416348316587762250472929103761922314019946291527076537854359263712770536726352505067014077555248520488897525774422290266571933552324533438446971342948983572461328041082010742425479509074038171224977818105438962742539360586783397181453827804878748568778490920580250205087014903725091207988731340925794467035816177022616755178849375449715132789924779572410978588443967499390131863126265389031808124815485261580215908044042991115358070043846712566406163686383562277524739601587819015404939584408177986185000398790019371141109122672467229354433136490817258994775971399346531094042278078677808779247935237839023215812331736194296926151222532667473438728452742936913245257977307191012541302865153594422992243905051067918272426806971363205947797092116605881501809737077098573230476664172852937085272972710016138432185485572097630501559145400057756715398462965483423389950584823113662000840342252043524060916206202424944749761531009469275531139897752536565048345327141416985760287024924447904489711152117029820568980308510337331926569069594899875369566170269173538329318476837294987791752852535005089332136350017508446152769249313458395993129317593319601810533823108966859534472490522726170994539414310209592328236148231180920571592833330830745293098713813289079090072602256524315232204144884492122160195788325819058417938626565350340271531512909224330993038579328760936273132765973940314252559814023543237286710501346830160329884903070230258808042384642141635068216723606772241996612679572677884711476453745886813368509210047981289853660305370604868651069083996222308713693505581022168050363957900406458338363930233007607973671322974153121425611697687277537715554056458884590085136637911802791703659375925081475380775861271048461460210827704895585629102161868292884739915901496445563358404820973211408481192983158438364266603567682660292728887532766329114748524755189691257936630818778726854946364813745011882683584257014902583340834795428052626042918710443488102512005659506654438714201826318147756360439573358144888752776437963919851208763710030613436296558535101866798712163310930950765415107412850730582942104138670713188440377470751426785338626413209793231102566745444984871493187223492284458403200739056244943142177853114340084210326681574289530665746160574506829661540522728114880653907305220731096800020635179838210668506369091753058919453676872041078075395281053600760147020840051622147650482578715334374238441882959805626147165602324561131937641245354457578335053875559507896891388161946841813660464189507049323557147025556198913609500246785026198871520053245165642620482186186863597048183529594155935895135127705908151297407753178119635073472682026250669911865816772282948900721510637830516734351633239019321897367724330191195397058643967532087615549973588750447886467655208281621056301761876866614567674958580941333566155695194880813465674242162984383013006978527540424014234042613763132166174321450159814354328651574452418827037341284485178546915906430703233272240385272461548680256594496486884043693557269151888308081339225351340010817178947108948930446718176623827752227528414255788719617102314747819684525789201052445689400701044684266437178294320905463470443820975112361174793154645129794365104031552493769458354454525660899258413253926020702803179012206300391232429630370359383011300962959891083662163629617806668596145972191704140017046661416908879059178503741143163159776357830007889349309328698949959431143812519994194506775693179223432085943837557705715426728050447707295357598978460256764054726859740655307880243766141094615490584265235374165796826910852302423538715977787905107772343267946587452765540689266506275036740719382378683718146088427276944417212855170889853638607926869240142750424633423625379192148248580432429872639999834690637450299866795661259547312139086076266239283654537304917975125393916150278424308397648984657675149890296927357544014214467875840632920071805141250589657962408628757743086176263588301921069569333170967636954581926163483900865318610171166608904610038069232384795583141508566926302429350275643262630234323720262484467561595482252923114667703752730392601454943902198789420816450408663469285972882998901747228721002857987938508530376984967783237907896674834802452833182595350706404525554276290295882978359359312074700828977941328526320647192143051746312816366043390595082957127355158144818599625028753565906223360827753467780142459313530060646567103686208180835814949502991222130289235457384206324134203506597235190277702489689715052601518066514528722166591774817677728936580583845388503987010637624097843388616019250959681522608084126299622019519098418843785317164961083597254495696616525941471448676215985858481090335897874612492059508582388485318610253953875544098990087560390107033551280027111076643340686848530008237335594295854609324229356591034767897220592830145085809155914967375541532166195231838637329748976783186671650850787750837246439335994483019173049037149295295805542021780589901633128767958620086116311396054659807653364419302219118939718975252001080103793890121740112221396973232948303903816020362332267942019748298717309096446672052575525814458283743992421833546914673570850963836946391266497346881958525852703571601075362659636379995912752331739222603386625689398466871274601520581564378147008412873497586846357856957534733759993341479763609308220441592297961987416011058583175336958094918534803332838655803045603777955890182330694555619396072972782400084616659964493114760729575732362842670706443008562476631029487187006636216581081309508301151410603775150456335911706092723508033671523061254531778306667500507433488325732593636157357827488099131888618318921687789273724776011108092132544061914777028649506985762202479092960264584430783617407428021971234114404987530030099241412355629347437835262084735296945038045022978246099300226963361221975271843773139460229846334401772202622802851945365102138276185625555910372804649351274425488156752695160038848427095690589184318260344237339676295178875259330752613007673068555078622685099361272301496290073611146137589657206878367202421274961904626575880963441689426248213693982105766247835087174850288439799091674823198611989445837662769439980266082146364652377926448597662959054258682501704050279274178977424319027855824350128538456084076797766068193559289364588780507530062473665244257295738605768694010864129270981272140326847893038328474768678557291053729844259411496430414790850150875155107685677610020106750102248518928313326498791991556428157482725622707808102648520570563790232095309490699041224243855021914433945836942466300859820790203987294394257733770484799383695739738573611806467369630045297061845766700972190926946397272835690058770213630960986765614766037139231519146595470537145924750319745401575263367829101814839860160582312192085845452571209361508790498965790544658253389248468299003304580210396399161297990721508326430277846513324543361651461910403789971258358423222274224292834560229982844471685512744069043358606099881872785285213274341169356691048439830664311269443858117282033951957961735644507895137228184943826153422152997762361741269771123409491666460389102954721147395607409083739810179263752807667809788778426366432068763680006912216557110174697938242627164833006067258517949422658390409645884139309278012240897745066448470507662074094171996395873775462156154237340216966580569393806190199806852615105938366086524794200215940549100176387724080285311937281864210294488938809565595655167286722022430908494917490677622115086214793143573776500691306686073998724678363739946394821876959784636328706662477989311833849561519005377661698593592213062155432213126084336879029013740640154404399425748924244978324622295830398436025001606720018113639175959794225034467026062254890460624952064164686733768084021103981237941239277869267807210769554003910645519153926123766978665219902139008692052770060390226748536819516987195569479302784040978631000551795169211162857493534758034763720349324755176243005115474488574314968490745496585523208190224482318031333872499118419283672358421110033850317907318984184597608710827640411230154915648784134919733495472652390446896427955179246642695921231489824887452395548450078234065466480970793737395850066005605333604804608129369228624167485249786107119200363720845057973225986477002150938527894785539865008219352327823704604422598963803110200578868664704840854762620860478307396633969759824814390073039988119270643337576666341228760305886133742151567030327303968519898533400364289350596018408718761441363703937292023032854869231814385806455852581358909501489399770276524060622719910848929817903964834742700298695149047762782940527983733491904261210944833681996753306841511056241769165251750911605254790481413010968923620069639467453602851986210667606550883721182289771483880730286168476861557247966756722925271926178407469780274652133405680603886807143744660432735877860186702663266497800171432562701275949672056770005180690792482527588548641529152035727568068782238105128047501849954148273351911020216906125944809788080919011875556618914831504124673170065914743983324545210265358000831788711705171724115274295543554913748462167981079437419316542275839087832291193841522365144666007784608004856696491705037250244009497932730374759620595217068672486446650021752668316247419374743359158163470017058013465784687215659950683968333805694530979514483259391291001469741271564008919181893085564365600936034942243719997548434067796800700173620338974814760884407477488699679056422525630764647889213322300934911383884034420145023419630558571010730037155522686851260149547425752656614294434059469386233882675682211456726180265079399954475672909037889488501304976061098006598228628689710431156333494902284495132745072762704351216675020418167920792715374628128413197960006716214334286131381126995047718144776962415569953224047870080241467847110686299159168418810560149488298958654426974288620305998824865795310670020699110960317118062087226119583535878224790034748897720869156487885047572828983165871072973527339515787013183816529309023107764031712034179998738213266524730318772094633593545328459716657834833583013643424893667689284188718183618886175546393592225391147042300140587687604387626264105172168029708426676997356091026096186827610601181008189042438608500126324569309733479089232997061060168216502299465357159924226352592648419895893417496762176674317018091131660547387308059849107098439346152402411140886528857369077842686687470246767417149601864103012344816722345101021868850700088670293637789359169632412772818053991501508819264087357434110354252325093250878045594475403462897553616397942585196657275683719132434154038363826931800028920325007023808323176980105037367398694531178529545392135683209271519263114761119388259045422271258679567533073359160652391996524886376829687832797504983152740873399473132473867818840967057730252420637895502326924450521328729763003896713176125606504978451715051753677373617114380284579051686062731084609958124452430512013908726069859693496302236875308160246617324205209344002918325544609317461207664678364238679422405325689499879657650417839188831060524175395791028668604250299812791874048980523532186687353622675185040917996051814513578003420393958299663610402095494850897345705326643048587766770632232496415759269007790078140437118369875248339924549441010146889414820584088042778916499593455290006796238210401049483267005773255288304499325328293757731588716104621310062021015824703238206825362304872345666018143061964175659658267313932819294908192094586935783241451039720618034786457925927372853128259523546451655411431187718212527113521193198207551317077385211244027825910125767453406743362176305533595626957042534396119314061809813638417104362637639315798933332854944693353577839762883305387844253655594780340861992756720447000702717126373689092645779070739483013734332473918582045841114038040511178225372930798503022787355054226063205073175789175659252372237314568622870595222824114062915022192980532111793302188955576313795663105986826298365392732477621400058872606348456856640493108074759265049544325301750650057602580406776539102933844220057363714613575236006773117437892963175888635728354926119985261947057481703078096461557596745278375858411689423085450256982893687306229372021461114526103987999924173451611767246620963129818155387475172106499504972021294840158600345747032120031195423108415598414772484158010296778549731941955480436953334124265437442841058074887118346505465093569874982210174896778569948421675494244059482374090718047281714099837841647493488673652989916484890902862632802265889465867906188246350345641834896637712129822827576700968585105703424169285278739076562389741163500803025531593942568168391094606764337638870087243675382955593140645447612914802656691650241601692483968017575844087621224269719021114975272655246311994720127848708929469983391937259028033729552945023202958881030632913631945002237461904114319928022728936034911964446697725225313642440531610642751269851764468496307067937197278473522843008554391428491040089015676387592857032583818120679544008263612716065504967898035286846268249688243472003481463295428460907104680929751894965117595371765801978687416227272994307285495759133197787409426485787814127613443810908466368970795270137890929781270674115375899853507458059588612800995566925790116457443248468945408362204068328938582885356891537107032886993961568509689288148280549304580387955397907468223035132580423086637680549723039381968163795863861966172141007448487533652589999043811138510253912125818288414793515147823572758144083443617085044242481742167758579396656574173764638507307524931573897931998248316756990429302839915941500164410441853094781043068424809433443757555987833387623740512981830769267063002960525900798066721300603206207200380694422869177244086896043755691922909522338694218125979552086250937678638732112009224285324899657067560179647188109996982213380954966666759355867583100603680248054104936611402331411263000484374136733428346848250763366076979932359476051546883227635720900369991190464669754050680395373978764831117758003289678189952878886693187180583678969096642187356968874523522097968716855665788271896335571614672216868658364733022141816391205720058207308198074151685916464884309259267773475313121630629508812933567071998963238215872575742463236462504594108181463106923682579030815512340116057150028982592276929407747762158973257155506560968083176121954365255984998726685651466114817700880402757342886154614042506424672736578519473989131014727332466496995478679788939906440328766908837004124291889529652106853082723996811614711278759531782970526745133410446835054173820937606361881457171225922187453671808913220544047124807991171534267353030698494533896098141565542993070960047689222351011186227546700049324757466617119356351369455315931456965317103120564640422138538608377495082831804641326438080894061888030575675225028418641551723381741582192222969002474564234895647381997914587985153984928300021838694702574455930094058791702033512409362180583384048717709960524500473600467288984423828704449617361945314344778513100179617419757424369802103240758362266398561513470302522603106267009105625020744728655764396960003955485281329865935177907784238164877889472646766815158887601295148961892409550035496381578743389451306347647082508744096819674839935064070108320156549448503513870426066359346138653526076220352478892693936990360152479043190912110961483218237611981576268793916209440164909518780993967189389037539963961944524618118147359807222857243092483797251031763445997567284255487633914462618781670264729148125751476225951958858345532859774075897252018501539909551646380532672911512316475036098226450461140493293646094636978507461174688094173983499396225963852467738823703578358451499439951669219741783989056913726500040738311838074951543812796120620675234140410690082844030956876492688911280393666701858226438016058410515995499434496532795531784497117056588000133914728298110736582185585425626143193312813379773945228341307899367070355583935556217239895710090847147842746785944796081802329803863839600339159961752097750014011772328129722923942793872557591753569830006151376100936611029136588702095178109351709635883173542117111683337942545009882676437800823299489192896075167102099206708975108166060074956542603296228167996769865921135985498756996652228144402190646679151769320242433193423009174937939567647769930965207903338445380054089444853891678152573316472481266637684279557640062739793418903276022799751236025316102144851376792907174502973388475620481679388690539062589638107326636445581061423824665367664793661761934506220310528069749531730898014522792257871988303649189942344285930862715287087863368410646969564330339226356915323929475430494123189346510418295455442821611137351378355125616739833437614106622371365429138575220654277306242132231983175262720289730697909408193194254005650807655710955246058819038336409670577102942669375651237964593106445201413087168219109895836718909480577222690085997115435462011531353550750591354980470139838709563585280943324066860123094211391207515345732924980590434955410412289752968590944395619992568575942466765602218710716804922784008084534463381866473899034696230949192141535171333685540181238203418858383213651813563582244545380772611786981679672902812131914098334506800686301490587103382225704962152144730941409697102903939500659258816551860606783528599919823450509262373760059802914896722922649215828914234966759301225618098145105668068330290935838293184232575634211482297186326414117317609357109873425078031254198719111073884888933219541645072475151920636326284696022790362384630898012529894945508186569808679753680759193389466656309726178772397323355874213566379317152093134028804059281409656664227489830493113778259742233400882597552287433055958191982165687593322194984033821289458144163845844576035812092644192067862703672146223895170739328537668241563001586636195316843878681104090083357193520058249791169669112176630500450371344992100568902682354233587383827978842148004391367350769586660890751142137778363696582281571728009516174413071058041107205540344439314925389327001713661221959312961265691803156140065352529599448883610032978569867614639291412787188610966400473382407048660113246451100418700365781354139544958405091175215360646915859074275122701456205894257530806527388950537146093170063730444688168013950470220726069337748295445111391871837918741795699770407690394216317599756799412199851628769525213641764264899588658318143381350762574638794314799166894866123932817584531984102808157455548877145374948392016636627074480383016838570436068037724557229705617320418631353386021589123451544411030092786678151020624126575175105464293860668064290322751290180590419745849382729309858393121189330849524208139576368287519502981602479907726628033081535874844678188954278006126779718522224172566760427701440672133867531438377706897711282499997128624948480944707303798619474950339226983508670124604756018191456079184548737673195764509898296823819401513187227339861441255762128196431883891476993620528855485216081384646633605128494640942712801752568418987124419617814906454630144478202250396741142820253596142315380857517216050867786853484418374448511713906038151227731690528622176476038964805653603278110907755363110250758608556921651122926314790846067627798911275883976485525446725890243383771710165053265416440624824931430665728104503297198975624285048127268342022823495198810709639856906759362988458292505607711862673666660179201749185260555535853192623997206934696470618972957140623347892070998195700239069148252832899318025697251019173926277232348563526405928253374389796736501459114482648817096829317957739148690659419333905666497089624345495343230683186792841414967263120130232285669220830953851134461026680795826762865206462533467744718226481416259040531359908018211172327958160400035201377976877322827770516784225178125135554926386660436639217331423707491501176378377141627991100366732540802449167819079227967243036222480519482022865078347641894369510861487689543486259894531969011434520056336232312753876928344194364246945519127448141237387242823416904932716175285181857824774919488913787465456119218203268756438584622956217652191227811057002138063064723777212040732911621489547636319284136334345077812171412268256052849810615255896811625407270526955082988107514907635716078878644538779055064657479721408748815928376707682252134010454329954321155235653971810055635860723432164292422322239818995608516440466747064806606663357705953093930934626068890456845827408736246795885950667607335476880285045531120562581418625035313992644980122367500968392802856953003219067775307089301673452035490981153512978554194225215375221608647059249091528866934521236241628287719672891967773692140409366678079339368962425395981580257805361011163323529168887899065825055163844620238308616195871978924498132542592197699288847604643840245506259567852773381406492324781600796887983398933115064956257078515294118905391760347067802044381905239883582142157251348401024820761818158331743350814011286831962212095730018710783374746531440996760043176399500606947898649095741248181997576889247307535963126268037809460301868672728852638206814731736738997113853089728723011729954001810570313556446005437509275128525107422926646980956658714444407618452785099195683224421446250005833686411168795052567189914414733490652918404083938483694225830811294348994254216337831267110687077747420570625219119681644992977412892080730022462422733429425806509442907271659559073259785649024228541910138594091185063370758468501560191992732213120048924692232603912367788611850376683830573396995946658206886394451732453964161589668606912081968436858133185212651948516822718626903749551097746750156498146185452776359157175382103814146666089881665469602524259167987153543669910354712642094939414855252124722772986076273212750499807460578423056668171685381156793347727057293555716155623310345588528262328450453682165869987848052115676204838449207627154057980400162997363366219476197168846879763264015404530582629826749049074140625587789612999653090711197266174747262582948873975218100891185998766267831128592012332095583722202048634924218826605975828361655478980628482541287222674712858829551655483139852637265130643386102908565836436268278515035409596947620766990403859513448467911164823041154001338721948211627571858429373379389595792439866848697632154839273944718140564893675004372601441945391886156836471168594204682273260008530068708964091453555303636042555651290361101468494863094424559639394568491824680586714796194292287222372845020671241871281039773074204564617143617619650501398571396004071862086189986357032476128058952617471839987088931062749520639782350833405696680661601052813952150249890936347534083101739073580249858476787558487865414810025388936710703191391845049291362088973141309335192419762414502728573581282310792943957719433672062277991718273707923920865559449861890885981208061078675556425007514053873820476792646741859364660612988059063472732809228898732854904133257140018503879518500964626564635880840528504553126325309768649437205358130572249805691756066798475983834487373397838904948840312517743596648085725626953021496707986084563435250946765483699783373905892054983345712533307390072999295806591488796094858378231660142448166983231562167073881963884443999509083219135733895393182731107612692879722089933336892071610538941619744050887551101679045906217872086494072898823851631009520101684799662725595762556294178904997230860798750136207855343308731615232948297501662384416541376263017580472605283819263185325566808427051229001306645233803893957217511564357065803659567988202467823172554313033490839299042085608758036795190815578655088015374528776683331439810839756928736796320892166258509650202259511362949582329295634617426076062066131952754496307184113365688351603877749035432172872117154274913238897408301869384070489027990120912141065875116019306396184740871306137213626207327027649905047766611280808109061134299379627696394336271001178162698485278777483024649595519755907188198536457298950827411726979761723595395397747280639541140130498967730999372655477920575722268250564063791104027350793678378847178038865644223893891757693010875299264650014034351919530544813532542752164288082554027578193290759480317738164025825649082293728273508273498866658438950530301116910078253566597597730173490964715961557799869910223255025328368185589395551505842172935597992715387929894156803067333573460687160263635912445764730761449605829765583839349467404740011257405503956292472850854548105657573115495391608369413940979380440304075577734851188709499621852442524446997981979986711286404659210658644623346455936557905854166368736937369893286099123073076195780956186907776992311972448148651724364509477399423987091137831364018567387790065309080693433485440312597007177260991793548439670327829193009653266701326612275022807991447610016835884961866452909098144829347900866364936943413488324077034021258912587801275662981482187239748921719637760972055862937269304381261758090756322335776553135254967418731754483020698977852234554202774653698260199542858144615212970532064703093022860651018503158703625067273636081496459122335641328347699968108106185969367925231984122196829951078474937484746622178847275867024551772089553830599840194273696976323697565897457250981079296317265826471858173983088252004520420251251623644817661321190607511198321044919004770073696772447781873680912060756221842719191026628167863523879490458190555594810816766218280697875308226732584892661565374790729841530016660324336058179409517788852176261262374165051622669532930141013626965586116939821366988810375656966737101227158330855119036068828998002416490161207280785819019966253604281704120755650240152162278765101850516785905719062642458502140736990999871952195695663364590111548826564133366785045386277437902715116632793468311370954606724262216273074705759158205367189248364998738961931462456684683300861280775106573491601196870329363768087024260195903814881707281116238761563406474826613966366635890422017312320942084283287347262162393834187327036749150116093963514997895329083091156231236185529206296581676772585091583931889942858067945947022913112720626816646874309091559653410435391261383848746321362373775970005597711871745639378984594527691249018960310969369232813300254979119839647019877063429342445034131429381983030762452175093060034808604065845062814338807489846185484729684050363344622279576465164857526808289632452027910892721504465363425631597156609301530134006154315432021907802075731954541076356704498219343386259691652284135644598978200775278549138498934115873870739725072120886556671911144508843515586409050618885674149444318417513613735177045371192508034143959437920435887644581349726066737381707884063313102760908364675236749404892294566837220790954436269982633168303163543097533376826031902453031907047792516217262792017159709786863904123511433779241412605895627232644987934582614037851721402146320497731906268666638134082859791788152308562063187974172599020457754102153205262573586018615300872293331323032652925910747567565370058217710265492025815694784309443605514827828212467700213962813217892334046094024893613171767289128900762493361988047180833969087830985548834676189651717878267232351861895660495734192884468317286107952804825234882561328655447150199025418577508849367070455325315216062023354944182541396281300018257667387109582113136060841688765310288518270209931107854092767807684515542733236417028754190562910204798341964295418987711678246588284983245120814726264221777560496518026289741668069623518841539057376686474727900459750100719919124546388332715608720316443309177289249618289952208199952089116145489251515046650397936784323770135364939474678785262721899937069454819797941622814546625638428933605335670080160433881204949574926128064432451072410032455344896955215293546092462833502924028222553768813231719757026303637208788712745430480096884485187583661852600149164512582972966633416929264227779231310090773684059428524420140895399135928495199658435877108408732692071866184421695542725449841233295777453995020889478582852630472033195320480638363610206133619587882468817483130155484051805765248190031620955077470371515826584819345181715097841679562469739826159361821873045520335955768007073351621304863767592700825016798100286842252571493253882854870416175757522206554845175948737947470187846932965256809057277942698097913819835760050774476064970749253125940467420821349496827572933232439803275815699809910239566953803793736570407397843930186865184639757467223108127736673557906040239539385065290739433658008546241925051189263374466903711384436215683675615979153156960978847447407487864242189339919640481392738178456601618414464430462565853626105067122509186524986454563681328067127679379751270724892651249866821497608771245205747042474351576167493933551669113300829021299625398039535079673407973271863337937049024840899452266913006527276094961336381410025032622313858474499280639775238212733699541560469030338338194333085280623570472165394560526925267659445335240923293563774422838309966906796543762242518497437347958397374107188222852362262243797649025727993528215797188081795202903002720110234215477341502344126659978939622438232203049926406795057050876085103268623718044532569832503524231215526039855749046543118049746435199161824029274040303520556866027132436447901809424737573972322331224621090866497957095584023608785259599557067240023867721142790192611468534579262322097908040909459002628138429495978571610727849744364808631044866561336728776129470375709189697583728758259934529319414806990504460370675048936375602886914784709816938956246399452867694444190791414506186814453994608748176111464546139855361501430510010522639040368276813313307890118304932579958514259245645079549795731718394303058023845789814802380439320905212481198743154283616577413600427606493891455078523063284814894401668912532197387268597380708808862535245708341321464596893902268996522920815482001668602534728522071355828595139356975121244804201535162376810562301539416785596129306378354459421120476293467546183546827439350643047375520151356282624203485730459113724808637186157252138342325212240075816327624105674314200979888309061750073831099736387515174379617515856586796055628256867622318139955185337371721818457369975447867718885850406057140242627308712199721535466110194502828963638959961726095022495270082276256354596490170583201740326246711445791238685580609792474601064065676548913368881128303482688142312318966304442078433708123210140036484185175797197425824833248392918241668316067278794444270322147636074322275384960533064241765324457782016887572024803753360464795971222089023165249928505894138787162642720301522233805145003110764069526477686227910652677757786751485840519363761314666263113594922547170092642255460103851405261658431813512645836965978477511972178054284665147515924346930748517092605401577935421998877611762679426364819777523378204193513561894152612340392404503970761647914266094182943230582641532328610222236246405573137139581012179608726231571149916211232773703404576736781601897698310744125935652595833363522451800419168114987784532066770620819264329466118961803361175545324766892577455932705747742303489609765051598127751347312235201939674324413207381893151754924603104423186249322390096520265238951398000928741392719899040939213324119473808694466340990561085288408580222111103025088158970841232165537775807861273595621533551375098512259753653311471779569413214989788933254119607607424298194359786887529955537573848836675139147755685092466128985142539364515167822428240844889598866448012548601588179831350779896323228920366697349903101048777867411406326216673701542108352695434597792811219712871810001743101842001326843500800269876701866136337020368524398311849236592821274978822060295806826021605281059485342074297484392854935043825399476630842599685688184663849551492047660920323512690624120590015863595117573607643298260505958022005716682347071801895332150494989056262791083500258258122025666143896775419034548240354400876396294209383784560112365536573873114264527502754569824308518083170000192706790368935448733235610659737161480432152785344896344652541874043762949606185316496710134389258287588333783908226466397198301740379189691393760494369890320132049838833757207428633668129506554841342686584550057426019937143570038981654513883820528484401279606602571190310355554017669338806331715438288319014733533191353611774361822009816831685718981944776232915843061402061594328498146025498222312307281669869384578390725690293597881323731007400201292074381605709995710672436742879518020291226717184687563541954795025116740632038549712521380859176961914349480451058896876930392970212032561301913126323948674883000195409107662949745580119728523033482556299030287083884222131651428038888381320634429223879212296440072056777900165554876394921560742447775886081603399009918047927593727313056770600089616346672284703025812481095137867851219228406423121681842881268418050179668881846532098951709868726397910017794866153957471283638706321456876898304444868544149790341711774178278468792982406955388273727763684998596654933395475059877196033702405202115438237273223260116188739617053843853218345326338880319909414453285492037606997394903644587419920388248162891226903719489728206177711530150069615682604543469661148087152567192461179804426227666295856646824893920266292451987757545585035742459277778688293761344859502151125829631570324476365659902790545627979939152063659988640346006375079245903207892988518682383647755995389957837543391488143915989440071286173390859994404260305203895484526207158651487858551166478292400213260220498345106145826123233498574621934711154131580837380959436209142708801847758272378509875815356932018642482183518376582840626374040176052449231512761955512651801646044335154828514071349770765436916370447016975322538983905641708555268108534502428786928414694280171486340630901307662911909693059349647334656857170697143647173180852738656411955992502286756038794259983097380891576716951576851867385680588302391912048128788403240600945416776816118880465759617329141280146515048245320727246796801021103792633872489302734627019727562571429966818190601386286739065449626026814953929287991334108533367649198300607718620874002509866572410325748750298218542880489727554698294111542256232257741044611254499050841803212854298425142320925698082649812430290377991583888747359282867864085542917103883206406272074856107675365504972027720546193602699173022772634527011136206175226981479228599198643262874920508750600606591182843189799368172787707779300381900895250252634478588087355155795523563182800754672492250556169391801295149939109510886945860782662076397036617234950508827786663392365972586078037905667218912452288720764380876750884643840613581716704107436587974065328429733203150595649967213514101851528607236721447180120217537192919826184538645740267297710723685747223048344228614569367580535224699557728806357394844535495128618914663755890762739462612833374523785243421899569341775504453866349514822501126438392759808164939099169617794184535589081450312052439008359104531640683096327750146323962644886189567765804080346185394107010882216420310134762057476290544676835952170574097097431231317841821209733827954271758973240119639190739865335909708811913381591379386546665328628148165817498075176929546969193648390188408153330101637539831662333083780923279609048833347326556302504938793631143237972865169629151346586735836448057610741751429585201642832407147161518119245808617293389070512601344670798096035671175500815571689055178997663826926290051358756417346850034775834373490988013987257438963236081277844101993399984373423951815299546116147019320030477235493769209991857876490542416964568563025386707667949451081067342823139498810430062104121243134060792224482404778323382369358398006897771384720307870166589154074740768493480997570964912562720151484622461233760713395302434424048488012846399261859381879704461728645371940643206185058195407121355953022871330153641921652107908526202216370129013105219134538748757045803754823099248704362600309770361247302720055623435230718305182487811770600249811550792797094106179548628024657145951937209401627665479788027352669006548186678750145466001031521718630118830271154692988245948638538915612534998199233325957610312361734123731272295449321797012732779705359571834360598623365051701426164823322599254854518444190332819709131868128645149959704449179558665884440675410084112187755175159342972838986006509120616243534533981185315745461746281615919726570740927705778226410915642445217926604688481119493532690307292977968334789725245573838118834675695492412155506933115697824413100874587263213776854592545901048451762126144110294320527303146459900107555412984454237407477297534877739201088236488511452938293226474179884747239466651024504033009160524280695205594261423191758342790971265170848241689413467193313496532793742317501681625867757051857819027401051386087860757836228701533600500679373185017323292808280428157819894651788533585128049060861910088681922516074800691231336765017203571732120844144756775707778635796878871581261489808646445239840312044308473257800383341311072813628333538557028887518964554364340120147437748919043141284278139223274796444369673440579045187609207985106319587082791097382004436369845273844364334787654991255969885213218855616930721709216022657760520168198813230199548031006804050813726621595807746291701013683374351654892968568468262142608960031177254885060842822637655700020172598004674617339269368414635058843964282259841219670419920562219408585296760393434695414178986060937569579301751457631616600361697044220964108902509667814070863359641616181053924850939044421444089609028038927882119916475190221236155031588605447496184427528906769584436569328044053521236690466176681266877501475167343543064086554293576284615280279060134926424490703934425204686162956024217854590151953997492140725988520145162438692674615491236796630363751358224115014724179149453779109062093173057989100974882271324561681043240303203178095007101078637092816284760166579530642298356223161610341281979202552492149061776026982147610689139439107551952338273516631871808307627982833807896555096929765453508824421493447157605616195193657939000584012828315830482337027671806090483815304267063194261713713952086835462198091530636280254068305350297410363974039625325805472337199055922050643020332877218608695321562155884895553314052810971487423466947080491536366603188407007909142181142476461141506843442739600620242799377925748156455173574877543752370849647858849760851064814439416164492375277226106242892049508987217507947694976433318131723292927997729590844459865012674390084144665765268982391602354743307136037661306257407834384633394055434883263199374227176114995216809213353378490773326327326045247917797336390441438264105273886148443393928160645554607372734114388532262106256451305488088380718780544107589187995415724891324178785658346679765294532334949452882146662315371653343340213359255144111169801107615191030155137281052388141522353090513517118053473915789509765552221245739198380521288084108416054280104076745236994940614927567030068322884875004549929633667940137696491218237959164187405708278506156397457612182378791548550954470186938554056328576819590951885127204710443064169907351963991843935564126284141570200035867106055559931598320883399215544656276570343955615979588823694740821422544612762525509484698076593314372166921183128745712499187424754575772700620769002171532582578059681470594094591588323042723924517172161094909099085165677488159965406506515453140923122450164712323152945381621816500775114301139140051055137279147526307478036061286540403236733505873485419639656533192751361917487708591517350872086400908612468223167807299614434046544720870649359754595327256116197354187428118582540283261669711902369682537173843803711354262895688577499152947027601178709874562672882754466879090139643772459923945971995551748735882759028460463135603433080466387049225002516562858819425882908456936219759148168914533625264081162459887611459358646851870070911334413154802821061191911446629661227992590608083984323827548299671310478508780069661125357115987130651069853843646177945851471311083062019904158983432649120284312837698069152745697641524483005656756164848299997822032585227203661699892879084104220480102627074059242416902911917132559615565616701448292273678733594638631406278430524041643777932704412888572446445539306021607781087820024151101840295340305042560478367299519579532138354074969163455809215460759203822054518459707726575136194114651395480430626317985788881886922368569428681556715327974763824829058235235127806455188873289081276183599329919259123737455094932628954285148997182417626023819092204875643964533851020810068352845564015095595860413503466888381509142023811352151992256248837218974928447039084623803132664358810302905577781980500286618417341240340010586007822712010346253171294917015194858741261698692175851178463932920879490515955732426828251472104218602731015572253288251850042806224859367751966132052349226843220090331650648517495035266189519264038590554667448633197786469362297784551840039054477641330608747715080538433670935254388044406386928130032720473430921086502364887663218844866532201645970103116149810721754912425192909666599360849547754329230081842212382107611778407959101355050029738978261782654671445233536042467558622634249899595839052341925139029331598699902543519810019721246805251405408743534741987033967974431843681520677557105551985639971923601844665337719553412800281042196165818850302889151691791439212126069998510238483424101984303796841919673716300721471440313021910508898475121859044772328012669539516804160724445982305334012953231053355806856016612869303380559751271828339135693473980008020824214438386662696255816437707491989317762241770927521971548576714929479948784280884750390082489412232940950125738519153015700976916111851380043698397682284791869283824316410354493597732326347525753894694624927268890068229467622219699675909477342937958138123069839512668287486032019873248982884030220163497917558732076006954034384262218482270386135141744263003134296564217570695141446724423358843229552021342181203275222317946575476422094949943666954449639686674460539960235052612701673850666139767863368208159452612100353141289343518899665509090927585834947370800720859195882694195131571718795891429530202609292815800144983021495073273690835993622724317336981085676672009257685033981567418136050572503218425256413932902387896371895789510757004843986452632523960729062996492478304985558663684474887547262120951491985758240338251049188363953614758855245399546993532132218935807190572037571420071057827542687594310268146885596127232305573730785716231216510120890826752876227327476217512801173199179946217532202360490281291160876910070144516056709791837403481073091181239114783742692797943055943801279299610723149114740931194580374590733694563908579170219889777482025229129592706696429938844493123304444369743120354032158923592256366251100676712993696065467881994179527631620650035727941374963670781603364690357609879660253292137985834626751712834001632289047923164811344423640868250794143372848442932205038291568558519149584955918292641184147134494685924088881390089027904545492459795410090142763228213495417697747661945742713635319544365052381460969631799760839310682947307871128406391300707244363027818421086392553945196523197859439119594885374032099030153368804563694204283578525162784995014626058683246654027932800336710957122049101348485822779980311964840810217414829333495309054502872896395484724875976079677749509620417735770170871450766796331454618293859934927410212752896558574115891418870286429005718193505959396336713565813460502384493063363587190695710960271562125852063879779311176868070212405660886399615632600231498515760773103493171283697951698911571592868388428214887417466151990968904729733700853965817361299381681833037734074156749206541294652456722252603077350605222242769552836561714325292841251387664949474781153404574469440501283640353388759230523912120407555870054757440355979632632087931216243777648094477398585608886137663098340978978449969916857104436700389040528704412841892220184074254498321827452884057641733671252053112181358895767962074840818861420605031448565980303804674367053588227569276547728809311831457834664770872217002787749724939747949261839020936325543059787430570637439597273022767959011351442332202917235391774246467245926081949251437022736249150559245150297924314385158922177550164054109755183330743252244571502920104060447626216671065311254101442704009323746325364411120805384998077766328760951604066768753460536563851828903248169184103271375473879607997282759607246701402617308624662269748253264824111185904389338839245451425123302585227356551544846713398948668334277504481342013539779377735221975671442153077723082526913968074009127080013352126893926288561788833181130893777484803406167763793198328519458575496015054160015324174063410709534016963631447426447564504088453901562990049511096642181360078056790986647692708830939279427698623700854701751910624230730197497630900289541464213272969726899523258649921324670772983514063326096005380140319074480881976025241078616870900689299716772055943713383932313082886722854786848125407304724469725831083077489520047743473981364635585557433004953684506030701697267387133618741458417934787675665503732021519197517853202016991067128588725674597290239980355644793806479837278482934172258607764783937566391899781229725080351656905233487579371901145781622965378503833723418415646594472014081185749030674222437701195695474006571540012702805697286544878027475429500948332876196927209840422411903900747187915729198413955770670779789871990659002986003013915604945273172774559578705233371364145957318960763909254034988438997241621971557667501237841727739315515718832821480042056658181091468488209660724414579843902078375834552151658743371509166308282249891505398101127704546763551763207751649484232382669599114969546875204663974525796514938591304342121768617510952933252091928021988032550896350852330901075858357507639854517782955495927087543865146514530149419999068806810941783601290075775351481535129838334732631611740850887686097818611031425988483986652270457481475477171452650065786275503615309680540646224614113544125184876935595832420099099667001491189456204304131816783892519855629927319894401132411711974036329833576004812993835945351256989463841345896823832686684637593002960604582096119391161041215472231444805605916902406555548725013209422037046282947535414445586029225280170154005412145969179523527369365425000941026269226942943166991824279187048679360174500535495678592091058988314337297308979937992072041950815262904287880363282714562650033335012727203960750617906324481926173065858283093009148379641975775884476404317696478243544409864266282616074211272584504698506330735981147671176346412824932703391557212606957745381725400958765996368937579329063660978365455641667885267897273878252578572420854751105691005759967823720799850474825845623213544501058005296018969052369704059109913075345302266404402779817651937366706316631023148491585887099438066976845414437908429302972250472636956370557383939062326962194334484197626843340147776070846046043144469754314074435970344291060909747724615436614537635746932632594518451116096631550551182714646175672585217502060160147499958196196234819294635588141507309953965453112038916667720687298088223297311170118189361000371857581407759710278832986537488758173276784941770350589067555482768156304095500483981438848216000420343937153258273137708787235815115009568522484991620638850940257788458207560724202739071459931296617572610524735908840750547428270218529368410396963239586798808175585901300452599765568585763800170539694733714195214632653777959148865256843631983033978492825810535858253983260453021869280508767727320032839441620908732525732361966525669486395352725889053143454677468013287606312493445122249727966285461180072753469670951493978058454071296245605143982101411657794744548451617980004296924392025264839109445764623055673829991374324595339045468328138684212732339702742129702911373885691399121531920927095815670056694189848138392846127186503387724569681599030797561255347019159500937515254096606790998050008300626128214355377708516612142829377670615392696536174962032534342021246535370966335223309627056712571173197370171767937523612156577106167332025826930043507364992095779192787712631581199455465914529318828516826887348085638045415424428875061096707214461162457590008117583872569227966038820835638416138300208216384923107144710348274240726962100155189104346855900771466885991972543255560991441188897018971906418082316719504649922178430368066878028783822761242312948644011450583253248187762790278595785468657751418571494076757875440178398760316391178374295289986184412053738306845346551636365549334793348048384208558770723593423603001259969440358496642155673013661051505025309436087128778797627175675550459288925636659860842707609515035135360826646903000953932206918217727434600588375024642504519717398743303603057127686612355534645374103680604009806281666361314548445110880496729883956357841292364613562303266011487479351172223487699976378223395842879116041999310307616677287685746974904545884508424159670344958012709049522387037861662537582610181000384145599654207179775732128325446139051709036823020015792594714033284831704731269218694857198607231844829281651111343076966554751308927325536068336199006608051031388236875161154299826414465517150078953172995153236654395804697581183200019019211281845760439631537510091809394766037007672078053535782327640853461345753188589386954883940966690993193908263879843902120063796937903801866605825838658123424477125602224301361075412491572250851452169895831380594841474440248644649872830248280921915530916235658631536750365168875432838053379708034425314552608280970260869296661015530244298083114226348200992057066094807672321907759766792092193760093961827116048473428629355618453512454640952534349444444853440771335747756072613127977660865018705980550594242696375336157772180636218619919376773896683678624103125275384701684893678241046782143300776834000229349947419176193902169863355820877654976056008924223811768496462510695140620650155460592287903908305745267844050188695759079297687441428069588390355929511876112351592855678554052220892776691139460961351506755672034273970748205599380015731377551421904039885376958886184872989301205985139527897848592059351698019228830475047549425136996970804989213239416979384729154081007682209789032897386632587505913154251543808591076015380685127330234305050566010176269320408331962742346667755401072156261354997938299970416412866908679753470277309944975080073202660539306937066141209371703640942554411647794494363153757848242472201053772134645433067278957590908208563314129268457448969717305373403303456340931391994657313840259347509621278531812558272114820055030115298971160400590860056252924336255713933137776848101392159651417236461668995062142681481522317629926077499576728937949628193420749534547590879647058546271296813572131520546641342467668409059701687254461655798894624805089494779224786455446920645226416315669483950025850197917641203611907543830730442431768715803020462347314557268335598958443464121710752740287914756547865107388268317008391520891154802149815394436483103568755823269727969588906661741353553552031069325607880485295586850213942110460613120296979896756472855009186422939335275014955308368520489581009869093553705317086568612964790539292476079599646830925527766469647190950444903978682911215542822627295825719596327092141961374099624200030048324317241434185739460908999508051052625335753250224410673877395229345058373893139105047161166530129957837297141551909868481450041343851016761226834008419294649292299136718589102909518310226595711277548415496866613960291268733870903584795077583658217632291147239196711483237551751220946775870152550289421256510692366314200358601923549777418674116710901092538271807808391494031392821590791326078732848032252944164524476524181609249403095635368525778645626281128422535404110013763300525369096495724927528372369192407076487780428756651881154126259389320590784244587158456500737246440885235728106277226835682789866805390631981945811586867586879880926716941558167977022564865983233410311840541666834370603381772315119035134054512672717052578960542530765323442182554390793663232842171936084466459216820104519152486057671273160891707007936326256338596930223898678505770281590449647980616801241757713329619572810060919835140914030243223030950898281942199037421000251824779348880394974112362988650749463421522150843541346130542134744209365049941575861029237976728894277956160663349258195790772441541665958209588907821104176868229665591098859881935702831653660515015145349702332460314287377879792461569187427182209779467621705921387078775192098739277902079369691746037869404162389012665231628337389330034436990567271239345695965155213901115024015380493515223482148895206814769353017054016942553770657281962065976359121191581452211483728699820371073679430478925083212950292620106392908562852376412508396663820379521691746266657107995117955177513491265350251598135394603726574122703060810668006495059894730212571570838705959656201366449982086451566804088068798207981557042682290074142535781299782267117722363062706262529136808529242440814511280201963331169695289191476745518967726481265448494679907436252241028011170165892293444504132365110158279601442380150837600126350048595296714543975650523779294637486922536308221835178623732567872106612258511471007899199552110102151048425711881784363296263557242029803303322580838328017600157924149122992703721227021878071433028800311348974553329860754501065052113300180754533162580329302342122872012150107356641102583778605461506840523706082241045367150410250863833747745906589169668902067912096110489573787282050557421457173528245383500690221942443759512099079839876754556957900040021733333485094953494483421512622918844524095020745825955087452941397846207720288311176373278013512350263399124663008830484282847440122356114814880216698451849879855558802910448332395883983674418223908715505908640352982449844410839972726055079220548684533714184496266343768094319785606454561873859245072283004191877444219856978127928743228772340565021532207138221823677906533510599392359172010473029950170240252918994704894351846461740362288441998597254436694568260052129611756496194722110936884168187671110140181637154223721572961083310273218916649749567245554737436005391336366468622931564513829328939325898964894413829490282521631726759425712430937294435956495910586803048411916447669203512264857598505087331657307286856532782336930076224496918027562714660581341000319550539135061219464058091919783065854614324477793314414996381060678382222814607572454367574852352527542096710386439138501815024389483446295431674322552463042121842110646824749240808880702881622532200767605031164121830789769697029022513595044203997928634735570849503006740566229101153448086031656911829307635380439731741516138373122804141076697792207260978874534814844245668136431997959476603518137841011945614029209432516784202899601114993024671153030510177212617306422500350654747289873214838655591965228582122978487973102631404780148677361728442078323910896278477952435965704850313010240873271447554443975710021427940119963712843075773249895475753468113252025322334961621705067078447258756847378284764548124058859857753384615686493696276246358723029168764538568408383920060518405099063811265462298873875240812762015363314309684919814132449405939982354603766285038766979871542129471825386900173077798595078774447240195068611535514673979946592250061155562604823919382912232619713637453652247531025041715914551916638515404335199854256506863881683654342980974245345037065874226767012877514544390042945606648471599324551841696713034844837678213426625988801631315162851213624511389330993381113072821943345055928796581967575895035289148914847288749226513330614002937130822589571211890592940117586906285231431320624565823777140357874637747658237491034751818584167162213041871565577095606506227889156944631896709433994504220171726395040882555840660787154621925205242555209605578345179506613591567645336181810046121423542059397026692997771300691805097785560829100746375404213359570106713440697835727907184916665218229148953249230377027698405297480299070781949178888286457257964696955043438056247421345869035611328067117683373723691157372864311440632935295273773958443936642473504935914981710746788707859849743762518078759784767455978215951061504892082960633987346298486603886760046532954011662662706582641308362318731949874173423592740323022503098813125078889855241002709203169816893014116797612031960880325831732782127151822788928934647855174315219816941392541537797504581531937696522604309868299539775460916455998828358448265009232661401686747741559529872980071308816240780548189382831173600576908013183034047326906034512517897827606864958033537498280830682433085638835755013461907632115113844251791122735391431604941697940996454930685212849846044122742772707991531944761718237381872912758265949899172210358236750281198153288387549723574795915251957190394050784533886335038016415679943520556096069765248373181210373956457236361092221446933714236186215868088820246149820592369213478689142751560006098173502814451000428519836310617524301681711928617713323669647836780192599699290838848353063553990132158628756928150728363636861910632496521587401349003702586107001657185634158117432557976310416643312472920863770303924716353202160319455794098655453819039353711864564688621104821532701518093230281699873373050207719584823923654462969139209768996754290632004493038075273345863134883139318907769929483257396426016926314765318026840805808119208732956538515968159559132742083732385040243125071955284848369222969494287644898855543011609308085745042778713812213025002386509756756317729003814956297346089108811817319289171741012571098261593140852866179786234640181666518911024032736520540299312982157219655957049487594615169320070415604604758435488691208553169764591809225278985325914466097898769960703298996716727894866341916861948041175060419318199277756131468652597925025013795952732758419858796194375884550916573436749307877648867828775953698277187030719958292400848842824659064922451224137132280761739060275570456537978993465226753952077845292354403866521657016945985633801566727338719794431812842704338061371747207684248980083643037649744545096386624111540005496665107861685845172364039899805153798284236229700402174871883649248676013318562836163742793226596064912987017775039799935865885964242453327511367178469971915829200235658981039948652419537765200423729431617881062700936260676890991985194927791057106254390482866616393808396117942977816721643616114319725662306114040032962278011855901114368633835383575140963808612176040099723456325528441345061844684613302677012795132392960502253204943226463640875161197155658455006360397077110742466749209419549788849483962962192934749788442998079402546749474465208710800397544435835600772471630087633951439574482258510649039071649881362014600330773685823710878827203920851886148474413875452142712489035766454610019401571855563425451461321180428694238989435308453746334154631275636811572230653804835745279018049395561865870209122438031356172398113161125714599679087097747776536898187438992562626882796024422439878212385270141792954011697264831585985694435425848360624956512392045621846200792278086209910863932245643050990858323126377459437647914615457745487643895332272663999057657216830647266208263204440491104713957340259847283567297688081909252838540025604485792787619996893956391900864306691917417914662082198728966050914832265280454010512469222572107558018577356774012726204573936629116778435059142977301536114734515053173744477914773287479945453472837731963482311517767101922863838526021111964612370378934439449154903349850578485360891694551323280059455174094214061900196915849118777197115498555392451777443159166744301591507279816651260989969028698490897415750521449611445192868299657118392914148116487025325348569549418777855789306300798525793049581194360981308048191625549693325117771670776142411311541192205189660587543623180585603969452223643705214530654139319576348023282900790573513608887476995374443583519200932142732353649589098617749157727943083712802975265963761690591134771506936679755618126157317980079412687037029347858167682768981370416598043876518806415935937253957633992958239058177609587916724224897062112289855799921426322445577528214443139059840783205035120000144534386830062675476109979266449210094044318526041800506524564446252864257620604613583324383757177872725709909291928611792982369499156867742359809462481256168143020839459582733411147005299230339865117470734038314715143075866228800495344742839989882798040815911422577307113466233734361496036794878758734548975594964444898591555791359183544655160640961579155740561252854580189950573792008084368866446409520655274269003206427447009958687725271495250505960528042662103941460536733045333703981413108684565120520471399377051071983972061175886818592799215021745173507327456957191718512809630992120283587506085143360635879162011667650836292492733838024368534092549548388661458887061417920391078832600716130889324025574012828125233849735957129874405884168969204169627071995778247730833436729573965864768605441239949685772844063762037928290442811526295518327551986886738915131612969533910050777798061449950194334826503118396935085397096604995798174715025076085486153720080595134800234932089056294945567233645959709151784395503070108207015386650287373265322947140843666555565052976019877285929270290403176611634522850789130430303909633179367773527861277570345983799027612433774993779510139597997759615282627252451741825405974578240121380555684086078958050008019038698921470738901952708425328832907983828375040778101420787585346986256737349144973124417584829963329490427781680374815611954479342989109980004049799982570890492748146661026342709149360028928500913318288799217761141636538467724301855572232139667124375063166820640098373294658060397045128358951804827709856063271976181648026089674297564525573267043071429189038213841816702872529805975606662321853481667695150938013136314472673753703603564525320699646205376495379038875612610994809288148715587853153011677455189482031979606539687443716047163922431375597893921464546082583295961482447181961987565444063920243947960514602313907251126750936163860784702045221139125235044159824218689878425412029584521174756646449848621865107526999735514722245361324001469010009168252616831386966760702438156470981139522956794374860998393616418379786775846441471230433457661107135769283650035240285116086399233020180463596369913837245717358650231307356893422362922295580531191244800856366613771879095345643382447444500603392023447100972244951475326807615437321305248891924072051456504474967178019605389505090437062107424026063694663077672683090800048071849621822186858531193042406162601421814135105212844015331354063618345074068827521817766216336044064229436282440027558959984480839580036264451782398592006318201006922796055919438979444008470762023390354350425429979822367252295056330816814909322718541127572247752358771873843421295389488879516988244871077957524347902194854476330049739996274742039488623708564461478020600592060472122484209760016839428372661125301961067130633775455060123083263478090247925894591632368423358467228930962843417698841328274009771187005666270201564213924819971685677123156960712842061261665914680153270642525637018191336886582073456826886948339510311395121217832964527117509241676127426627682270972249143989541401626710759551399191870430798469594349639932664258542033940079124276438043619626768288039984625328337752610164330499129385601606785730895485259499640121751370822352946028112914171569766532618639803787203702104460132792482113115224333583438917094220915797116843773711842163921842198693096430246366875156322526389474120749118329918327581333430008925768358031813770702848779012983743373157345946987135390895008438050175568092627674883882465048001114176803575151993080410188807306701033377053605735851860762934454408500085344838047918563879463487214030050003119459550618330378544229529793898611448018756397488765150666398771444730440025269944170021356619030699287477094153758792337193628368200882985776290413796414646335767073533232199517925393529279230661301517948419536594203944872922956113592424048031239008365522226823076195647820913770261507498745568901135091370541972166080019773666536628327643900107161747539986798326016845506056781713919104202870350368256326457506942763974903297406477123140726520966690050536339511872654607585291630122368225629984897564527436307814222902072249347386178063696684413627321357624350548799865489344266173530811310712131010959352467233591325997318473366179745800301541512260521149630704968479034260600208067404370625417232601081747979692764686554474899770277756140662867315800710039004217172092718461555379455590400880171909760858087313415902214865818872986925268968848092131810737921977713777824499996670575232925200203717412328263589166446972433109214871447900732958254346567636283754393432631132836779493665450103181471262848845658458444655913297890179513121490016141750423909194876113421187815899765634839621559293126373534946822199127692943129238559218883753045519440105030534746409406706494992378990676272284245209094497525682182637729498198929863235759454238940768014023202217528029981297143709890660151976394633888903217434113522991981673584866165342250132481654986793422152326756271194807573199118016633685502318526918672500992753119725576424441996617396589839601183784856982465545150841725456979621629556434165448561462023185091292978319507877919499255568113533572932499522006627739868539680393218815197850239905294706520426722600600904304789455072230771157506319328802094393845919720869668567433664241203039854295229206594222487559238272913827302302716866322510330041491879237646057980550213652250078934376147781775355421306735031535186964673569106966077839658681269329508946504838247595594523136492769639838431371008960045816583550781982467781768591948730649638727797063031443979712852412856640963115401544719620583637072447518099556892182206681584795325516092242783898649253018338595101213856505598849585660834532202303221300384788071685819193427346457639443268148970896800758197831184833962909355707859934401132770223053603169758271690235882679914182459758699656385665982368242424615918366975269900356363150154124565497422741541232276614840333480672343764614346306655017433115618208963088627846532352080017286688753953585867217117499544017085376847371051690835976780992234379327948605905538562180909852517204191836746629443846522594112980559078217247742214512675948059540316799904858191708115438483949110087233392236113717198736814069179217895717813274463360065682255829078512734650576336822169343413805952159713104423178596704933996219249980543981010949818248898460565291742099193326353602324933558025156890673075940096682624477520137016930473241159415141488505264663795955218968932672751824100404503157440176901493725398452022141528797854106565086847123241404459601124679916609249802807489223794985998423147237706062931662026727187417670611332340744456501429845661330376993599875215377831606229550289108976727578516379581353234195954516280087103795455081732324454178750534660276796509336120555484248974033206375954020257332953283811062966993950816080927013157097820898625218389298159396033662339872813907942012546843322144449022770839432541955049548618566839238178353549406217501123184588118093938865994904826573350945678674589295797979048416180061417431753442332388736917267509011967188325306686587441476184895134487650010502106692881472407411854985336157540596575562820490893358346404963319445050225585923865138309811587232359017837136192627738417400690362609095112108533136020908741989508527771374326067934431715941414600074546865243271301343845037594573127754429519466611458025552706327149568322437813844246552411202089623026271939791555146897542380003831537235884012189177272752014353617700558818235269758140205656951763557926895341467789688346783421468338055246944833745902611049818497954943436385387224246181037231523004939176735028872249088541125065555275677169512392299646996108761102002917750241289533639230535662338097333549182148746698214365201767934461050203991624581268165547297878809010553805330285206127488536010283887464669675441048551762828521563533362840493294823441298388046134329888131178800177723962556589195651813528922070367402015411825829992720956819503810414573517837672822412612365708769815026670882025431942730003959836073306059287170989304800685024458232087880207433496219095851081638495013724712259810090717728695531723014719382088681374143344792128323512117170881522682062025154162302903020377439827554719079479263579114795847907415322347744526827978779084200780693968676953454023313189271597235104742473432852589411981909297775092984505205808255289470226380009931053552977750795382294051006186324922710956811605408958509675292020884689517070270001541504588256049435180195396189152414096701474335908821049407086908115766330909733127312484765789848882066599341452306289112120749397367509440003773765089526898270367991859360365277977405590556700351103984480917700584517121598071599711424947140586104366817914345927341617892082082227799639486466264855064685596542516091241575561160754342393329797041200743513686649821207532436790846383224532387238211873689956928125437980620985500881885304997870713854503338941931416730672751923403200995012295298738880627674148054014190452902930822927246843273741264159003958894710399818938020504380137719308107793824264884219096054144159529814935916298188008208140498595956703262379418785342839685546100273630313745561914041243416475867582434405290143516584698714524421727762372502999693168922245612849260392813650579086021789778452696176089327150419584353066596630584274852276270435974329987915737912606251363217244765905670983561279230380473899690344063398950453834275151095082400138126153601381096419810556605456215143277465814981003959315889698691642294673817937347949326190314165780343013947792224288667504541949520058670414502170739379981895011803614386478259219203982192310946455184609745193624189292012851268575926424123009582398926368865035912601036680710667282492904650485443385410482551711586955328817596902276118610493958545122818303323937440779041666206505888863001151223926447127084738389911783764119412874530890206668819742633459836626983368993732583858020084806854550114143843904110469904847850099567417304843884207758095680152963171371814208068762925668252376752091677551392522512065799501334496906623051581741978893176831563632425981972564221620118063231022802158549436355414218760317502427840526916579291412331057934410257283973192460969474936832595403263338020657642581263078536250066216673932074906122956381982651072478651445600784202349233967348067848946920944984477499128780783775609520166925566959371294678628348579794106365164549364830366625981940783850132915321473404471007387455826876297154234212850469392385699963856457425185038538302611681295795767362812560668173878376623928913896508369423238276095607700243272301991824915458827226048376727396896145270567954473693594575477649110714734904177432885730147169385565484842503654867190267735914499054179258627402753411650742159076880739139807044928913149127592943057987811919193842031712913571949526681662416713537080672141852578421987092925540180435572689964093197809329925018626839212265056995824343630617420672782692554656017272153120920742960981619447288813613360788736074553936264595889929256243984378855557777420160076054881186720663556759130341459262665074573032233953063190450181572206016007054037222953976140428811138998959495670964495319223379733789250188719104719911118703238004168574661140162096010744393845830060172060966655985745039745730560825360031840061453377131577898521727496383060359160253891113657892826057450155782769570511211868280904109353155925023101673829177066471632787760627047729970902282413790693664872097937037315054230500811633463035854228975929896794903088362889917451051431541126656171544407277634065951402990340835152268296065135414853090303841290198218293240139101807546519834519265636952572043317392363753945059721966295158742976886794297975316183807940759623272575623137987398923366213496014955527980953015915057749005987986158711446904535825105949928723055820886777853969769221686677303666722509079046234949027591445077711993546124227965769993705411237575917203755894395408494055688515184892172425194009380594781086862857189319523834114906141228281673677369774817624656526787151193789554123672188389769609699298589900425964804790324561999871178705643683491781766751179942863112776068899580772844610141988162699711451761515938524186538421840922269787546719814049459549299018598724322799203689771312143323551663683348620610471184880322367556199146200414557531596709873542264657037781452906116568761935710804058702147667617821969707377070025841071068362269260817115150142779876431291068421465857522210458918279773813700719513661823686360078156936582499094577010709657990949078714317444883073231066677408220470912851313081466160568968753964165023980578053828742522203022598283252454799133707248897659994794786470632778015394131351664312339269014252206814740508723152895198254524340927104773786755120570216656919117038877478793280955466659558865990986332626828117363887046353080837131253754135882720432154887933813412374042487340176543832789324734444988042678759845503691034110155728711402625918490595820885794927348810655690497923561298878153696691443338759913403763806200545385805454164942968105902315117160598631013412829604704361778688862702751276711746311628652260699924814374552695704716093238222300386169323155731540365769221160577481949890090597201282555182723852511943122858774456565666401969845835061377910120318052138892234637816605605389076914102760668270617485201670797064910292179464691541946467998771995398777020257308681235202130690382119973067701665939243863610631542656861785217983880037220363013894828448992856192279090050101420589984268044234647079663341003093704278644030190805152506720904587836794824553265726029615692750168943752504218619294107863976385803187236053598412790026724504470296576375022276061043173623217321314671047046901492424248018977892771566326330457073376557969190032517253675880002321168142245688352501329298748259417336236232559702592661707406047897622381084647980572369110114946019584576336989608013663503054847092633545879185378618929593034143464253059569818881864845951073778222044134446759882838698204443898451806221605733791883106130987251464244294938870567671959910494387233604976210091095019419350775268507494237971841239865235937029342826686413246538983913395895416476499376230437061925033621300455377557282228678995462844126494661463306987483573748810384442842126354458031095807677800442601938892390297301597221490757129219255734017610579475734330272372958308912250466236338696820843752720352345879008631058888069783940275873351382022905105356926033775694960883361788609326182918860270795950070046306216629916429813238882741047021538231174984254255238822920483455980332225625157069243081981557665249957056103655449399447187510829435844584174335825059479714918623106713732003171620162511701768978132056811376413557227292502352163281334991234065222062845234389240693931146488800628713535846364304820641361272324683152576777545621652094561902005645263528702515132356558050063578012179271908614619160525697472469214347262921688662719986224537953647061159631581588084724439588539075435993482157499313438795660875063288537619292258892742500214259226294246819518870313272327082233864423312646974967312670736683644413724583500986893847128204706019063643926577255586710081645624527423218628091912774289861997049264388576866136527681099129106571365062946410649535853338756380367160074362761703936627377825984434548685575261883859942764110004956115392763281389089107219422467620786224096144996782830185577449215752474211997916151447344659632345781665237578209383438193298426369277399407888358824147484329802346523010405937635178730815067635860161503391110697114662181290654294452823492074086637507808746281568915522523837751365750560463859416329167034341283882655579891129621994274047435845873748780737847633816385324611576377473800755565569792660772178563078787528098242623889136302798141550101407901902218889498443385331492262085743022817685273860520404635503957024041281268702680050078422821880778229548602146556917198240626806187409962616516416016508192027636327338659249862802625458723897367586384665226982706631634260142344190810427203359392692942197826043124990964540298942423760916680201474339391651364364081280029923694436032744130755497195802942413511114038064423522609264400598433005214717467306723228325538595319784494152028588722049803378457353746600903858361274885776502182148084790056167226654442271171230870802531549103987286967024693535345810052771969133776583295526399018556658840368417280532547216588531849977760502271594866910520472655297468101635519816115532076979144252340717891837918536491175200599917037417587512560113967802363503232725314643480314591469103456551823826722649881914644048936075011764703593874159233040258561481481322791425372572692798978004277527137217116365123159798990796938781919181542866756696063508437292442141787679666842609568566772390791468103596588235541082111457434436353245162699474849024790805646077712743682237561473572064121928192005939483592202386962199999882397903297196985621002332865344195084959716844796637326957856637361008560351756720794506071196784958849406006633831108466649630865646565421591966361046528404648331161951973483385947350577486655795128547380850531249217123457915036028070340722500005219215232734068770437629934625117830352665639766792768598707727484119688564222091825813637184282672342801955205875594913730936445143455619166372169734562720220213382821924213999197264204971704446229218358199702744789930339836727235313447286400805012938747676142568886583448962906002372700073383911207897454005053969727207442774486625978581027892086329475767324394632510140210214710096355318846096560315591466549439145782472270166299944367458076150240827299874122907567094392681317185529060384121353296918766353098261552072774455345052797731031565992895841331320396029403291674904501638709965638500959395445425739719655794690627759915952213015929054450259453839603766142395731108341740845870990584646719696225231546403077349227331969111156497575370294331784031121715990773605954101871465925059599362911953002007127739241664787869639062342389463341122641223754611611712919361909019580919766823285556094434751644263714975524839498587128065500309424466887774696337800282726336913443782285588019465508115707426282326596263623976613229597347846307717361244192933996597910929932221596586276892854285766510617744693154171833265922517950877911780288993443098089965771932311056168008507582813546183298957776398770635954107687973413167602662778799508023034728482185760980487870230351568120217957384325560372800879005795429021284479206042673508960830286551990319081109024976729574142749745236367264208735430460932200296448619658737180730596057590916126941637018948156270515963252883727749256710572487365057580411327646186670127049862379396952527707661664024917095568095181960723016126039638160465020206842077252860479030668836910359073167838262378110106330559581001454855479867005241283603767127390660394407075121576579431139502868751635812324033518135421267834906137618717946239219864048735549461671823635221166875198240241212141550585016059429033053321877100203707501953654270647598396434866363644179411150261170233406155909437940716441881242825154839315983124428372927748605827736012038750813731075114540243421911483591053052775259157292609412988469642716924690076646881828759416574856239331527895499284855099082102214399101357058175397516963351080959355808476620152099868416463891609534834132737487298480799820976263765487706562486483175635669076096702150875091648085226664434560723388013708883246508017779007576687211258910806608998473224256946616824699037704620411532452621602719314950127577101243606037093287027734395971926409921605735722882574260719075946436031560724940353323742547684704045498393652585089205254007039611254465572709939820898385816294753344848641837295038288783327134328464518130339754336204326848359667906452258678716335008851441207423966961741792819577240468218953236164323187699863914571810767191134006756847847835995612119914503001498938706437221324690848068684788521980696567478850316531588313264726422076242275488647692281708744350697857389276994065013763267796610347007110652632957127918681638856028561365380773003781655004437304978518212906235459607513032450560016626765834313749505719396982032096447810992889563153331126701721250067078692483691946549451634063068551289173511133490694142767974918806431173425864678478657086319131542630104862808375352875310983970800021746811692723370559087831796624436784704599424367941121812264075494138969200944348025737147658543876306995530711052609814865861652467718055700182862745302763523433396968416445511321940626307832652627635986357327048105063110971186997798081973502180774018953460693660424073280965569870606267710640839630489848855301324988700172656869758710005535791799752882529856497774485969487603563085461929761637001928269271861894561616403711871264490782556897254606515502726301308866196533109566032983376207586765233769919832598286079035420639910283056623383185763186804688493892929537530353330345227367290321601953692242559148172176535464565808947341595049846746081792897005106496218069958859011006579639552472845728964932089321113895562754827594404017853254328515855045490621213829955917641778485446780991455009887223000433617473900172512675334157158111901708221779505581863302479192785733708632159176699268073945301909598588194792044942582575646217202708033876049086569127536464477774320751458923120637223809949505597324050383711774183494265095561855727220899767731878405386889068423892304973275846110282672864361188101769474314709323283979470702845110467837898417904530645752931287340357528799796562668191954380763480137508302619340506033992536023586720143570338800543799266970107352047333308987429985057993849196489036602370452935341357466452394972984525313654202970051518774776377168355559702755267729806909250418029251899023763375285328103006039862314073732603046487322771928917893052833049824333269646127792167387704741230653544510337497816045835750212055887683639313527687389696592236436343987268964286033721569116449805475282416080850023735408952101853278198459852034622708703664115694761456341362396339971376537802439408263803753812152747302100220801973914054682375458837898181710940193259269849462059486152263827900329871985577725542752264220354296750709328901025780224264627805033117675783774152907575801282805027494729761158975717984020112000146135998337170081571178903358145919181644412759444284002320191924690403696365711792285805721216569904414292360682636961228585703042097249105355259545220155596529672089192753165283403500776797812450847029696512867187059580634743554458482333029833659800879866947182206943004074746315416800428007092498482322088508351913163644340423276497320264410049606626032430585042273306527250370776412133198068018338708038981434221315931347343425082261612742773422838143640283842191228096559518624659184395889426881341902314715866424967588713033245843870795732066853169670592066411183227503281552393607493493709528217852189226284504926411174747909292037268108632731130710448744867726206161665611855905914284300637274711954587831988659861004027420757243545186556194712775798503312390504245288108511922865089736106528404535668434295821157581819519243765953275479066916969012198487729034932077796771456246981380418196196713170799950156036587361702286917465950062144260863354389134051431743803314811320716551554586574367775098224898585869826402381472979867979797180245683365833194762655990024132033519347201383451706863821128564216620281200128521606528954334007943740103116185407426306791530826751083842373133074805708152202004120991994086087374480379475292270927660612871757063411597631480256749533190790945624408486650115110745517175599964728534131648821273198587706654051618314466013278258485462497759665860410624518246173869656164238436858232614066094995319811446601657641097391329820100731992237633239586324350188446877346079783059102933113653352637200006824683082269356665122353188757803335807854403341714192384840362671771614467919042843536523170561492527912113391352525541896693900077599570387126337921045536820057638248883957151989925485746045889064448694961292862281854754524436143461156485232088732230414933078693494137436749229409446542905177855084464469454785051598829872835118624367201517578099534991187904458639141233816365672338067558457957824165945113593901311257273318051815384224070901182611991625080524785656220811666430803238931876396218888818900078328461669153635651287509129419837534557933289479360851864517853718220844400978546227273986839772672260087926324966106152533754063628900122701828684608577771754571594648537356707294064393507384604195148960047104400449263056586591085207418743660063174749826966290139337195882121029718750519743261868553249740947309863705349767804228125533986595189193678032157524905290640926124216487384766042689385103049444796671104785215774208533981073412675927711031808179482149129457216678016172259008071038239419941205044169669819066945218651104666885415066735432246182136364733465037126542116521296627023822649349856604152867585714111291012981671715051886877914647651517687217777358417723700157042290126925711842390389136075266101778748015564411875868984552302738317346373114279915084607262066724306355598755917566407361392066149317939975969276828344348122490336347888811425661378900229465970802826776452313293176915178997568446324734303728150357230090808152378495111657293440434288853841674170917539662032356674687580414243338156673173088727140286503667740909017649426885743558062206666784881676343771086449975323624027970941071541035274884830058167467280900335826199984772864199056800877033572858427236695904737800398239504844164361696680086952085270883023609759410715720042843329541167939483702669520579690028330885123593593599970559639965717930763142360122496402310166467934856423349008461082435017093891391739337639235841438753699817385049699050434921990217330808483054395792378273314376188005810871936547300126022896906106733069444426262376938439639396407225259692411148950644932685468183637792394388467377659441365534980310309598283924620476188439872663784598046355222528510198362146008882650681563700699452159459286881518120284713737452254056058945243912662702291257937604251177312324540411466806288941084617501378552346278009410106043880425392953717530389163573979433153976497227825457730042475715047647946840817654046096050517763505375841188964181323190359575617536221815006481419162639895380999624530108897689144003475266522078845994634074658995388614845354411599687880430633474258910805257981372579630777582716456173136674661544725067787760709704574078450074866541801828758910327815777871830936801449569249659194153218266466226419541576793166943425865705574239410719361849951267157459804104249828501799830179504829189715274657834602806062505328039721610121272470991760259578160226646440148719356184335681683134720681084805745285831193973426518265335219405700832176415657802670758491097426184903291800045426784863064971924630480047362432731583213708466517406125644089217051595022074264565036749211490527383619398692041749633957592229887672876505177726717557558794698497582592531897727174431146618293626108483413932702977316320493738973753057137125042367799689262752020458159410198514731887673383300232378899318147533741196337338114186793841502189650229875777980080043213527816141903036719888468178438086014283419696963637973896036015965451609208845180050288368659513960503380043962497341359513813995962217080821172647706108052923866014349567137971453259254268189508693385136175367940806839591699146075997579788729062037440632873653944281716225191706293100779272949252624383793486147070684122561330260264469048875963389324115438576546818827692828689127449677851833789419143683628390308795568200700216323459788693178212527659655125788163964673953229112499386385537355272769967749114268296451929043975317554514152259720428102212273191449069752745847291225772776712662056880880834958148792986256761549514248644606726250035699855808398413456111853816947210280255114073906817764653980251269916511654055481564805759379488902590926906214311580607824592246455085283756039097637414001254643656494580789671007305014271303932488067473038747174859478404915366444013301677298111808646063533636073217366891447193105709879635186616739310524099812979534277470233899923267107063917023213707410336180112488049707191750385519845981173613876397750731605600358973784454777842704616270123783079840301438804550082515040888054439419553464386704154704637401626812507189565574556529180326611322628068761212676370942807979452198393746219837390966268084576701990102615581101242778516146008079187882141368582482115596180289626820867738874080813949441443369446115017348172816872989273489968022736462390184347284713485555556746041087563561912377855610367647893407323840795214416228287803650173638389824823743853779958410635276033357913734066966711181476569719918769103695566522035564042209072021892114655918163238514936357353753791654715895790934127094354797648637557201082754803938288006963021869286421004730530054318461517367899916877797548722982877997137580069812706400190762811519476692085776814079164826451020513013755262052975742695199447815211274886470881133826430520612507859568378241361919642510070682866433941735837229652316898963169535180762250399526434254678338166370076797712151218607624651460650665396850457947972030052320581847340375568964625439682224073331953851358455596911025046220490323158738442528769743907754083937892656096855369521995354300715573252275481317702295637351847050805090335480903505800128839509275433448965397993951268725045533523107962325211268126943809501110893563042903869800471822633730360321198606379503879624867698492144537343585082422607172994107092700259194106193778540250442598880416529040432441472798739304781945115804244671827483926648237907410045236719468380244244831538415371796478563089129807376779744673674596241777417980967691768180694998692233072984609090052257922074377224569475506788926497859868058471326676068047713577144979261181972176061952047455863926292634702010882042162785046314718065406143379473369929431212579871882878763211785347953018332774777978084525733678406017011888185049305658192789234636368817705250580310242297842027985365268023399951664027383200069315851854522051084643624337102815255104579243453586743738603188136089689711215263542692470667796402100259128813422092261040163631050883337102398058322164273682394052916729340818927296225026940409320095019214520919980091121329329550554836714389242818955397915214483396559265070150280369759669323721066912571553229178418113661446174550586129930530080040124767032143316955971313118962018439695564943624489334677632437606451131230486937310435335006014221513725385402174308212232158645649415666780653912564285884349859270712728437757055661485891613119032502390544034560762189776835979508004752433029582008852921123355244502681302125561343228657070229179769609819231012396614547818193883615612393742358885545473600190147621418217350225615841372824659414855030431350612509972635211870905628619725531608250433064163124562597386833297819179186311241992712427281159078605318791378021366946027336377503715632479537567187022004999909844360915718411918699571338843489052891656936394396188540579461840425038264711329178388321044840269517366443717826721784429501851187323599405354334166116080988274361707166455429738831234556166768490133819162066117377939689552296850141251491171103325537433133806185831263160475451403263234867566131501823917733314516649049574866595962683322196082820921901219115361502580634001142962165870355637136467103653692483381527844139619206226358464632160647115804851156077404199367437812736449402003660027669948473523506829233952319544492414053573918411900720457097243834147080584564331318837241174868435279220804433790708386109895391340347695368196650711456607870052631971122514114687011606313806018625085534097667962450134375811098110345067702978225921471498113379249296729446401722724458031593649982738651623457021449270074666000419436287078577455571997781379521567399604050652402085412179870212939405461238684434714707854814636568248678627138873321267648438709375777444084342448336372103132097857770690294718598869881778940360719546069961851848731892072528718288865183328791930545114776837403637895530419491500731674756859556331124209221114167514143031213993767996990580976749119949306481387306936146954327886882337399458709792036475866720576136251274306541181918067308327528913102278610357062661374455798148746648741435437753466673204296354624396769024153872447021083437565198828417438553462542159324579829988588957494978941444367711989251867480077771582833024133338275363155008604351659118510765282251130646759909217794424594799405703229030455521147338534657459511972526437432580186484389866605317820876276294632372554977155017253957303529413370918065474235411015772429104168438452855520811135333970395751861829987318558173197680636174586047846740826744208553856551567551822450176019484098112280187603688858612688309523090437197897217552539617667343964075692407048946214689917407579701826563065800898031521639702196525178464810712449376206534464276185136070559335705815531631663742208239384869950398289224926156835549700549815659507178377730004787646974227931838086183961450120054189195451829460207501180731049409945589902242969161239152547447249721599031382580311079460263324546810998593735231324709704328762389375379386876646114304841319989576866756680360290007426411185365536656648254278095459927348183533357840229498817174217846748904089887004413393670125222257023337667389448058194908425128464836203189748356971031731084186750345774727516680214327154796723498397438141266982076870211279198942806245990762138347015473441421030762339845458900742967997473583812095861471835396382951211315775651422753217365518083961743236066879530665921563203266417376167556432329337419684501716858070529558047616854278825217078974837474956743584314971497815824588421897640307291865510319481256913476247963241253746604083585893884394622450770809412299603590233658817493929351846971139174292891856160392125518503407365382736361519517426409295541386942080971370617019725945429005428255662911742756624693460280448133691054484114078675013375517073638290587014398778545767371126921975082317899543159347299063361460088193886753941637803974154612193194647287075644626481086998187879498747662014012502917882422568434690892982708819754780616917673351434208107193996510133748685146537765322104019567809462251177815736543074993867973393472121604568289527202477650728768898222918020655883843283527840271057441862597053929221735730867264643711080240805825881800169670162446222340097826881014611716143193581327682403630210688659658990549718445075536198158344958617894578190070823488869280006198947938271334812308290335517245308297304194417766183974408505980082985416704782774874004841713794929703775484202184148397879765502402429723829980634784390541904019699123355384305876122936188160543595903697638854076547987474885249811031338105467333817547538413526006035749350184425392129033243398799575353459331718530853080907842747068546501134032850074598704438264853714771143426334309946379046733856195504781590857957725378420555784253850171269130404508800913525311413221814610125103252954290685791920492873641804652686576087683402177448989059159354953097574753533077233383740724348151277426481499634849292763972683865600492619149260801803516088405576170092790367662931632969286115889302568274747311170352581625984419887339679969022026006412277166780976217026824268896243782442362405402975656987717596594434713587113632779494725143694746382222377394832750332416572081578430652009844402943915815037100209263554870527370102373141932136261480587797947170816645755048550748248350491252353140260657816049606594883307230595289930204468690009641286411741288452499386745893579367745464280769415697067515379139061276816777308329443543962383459314199599856238764704228958462116622931305624604066925220876902639180760457360688975276733737588103772537487389889578835727204301938019716193659120717627748249204815259912353632717570836165343337212648193661624927195818601660309223451812521601920270767561829148525016894380078541455700241564017883677786344148631637672579473111657922012604240784876109440741166698285372088205742928308366279374312237158359988069793771104447487446504811137818052902126359091617545139309055447149180224473435731275445943050162730546879066027871659056186794468999568540153825079809739351976028121801462009875877178369760373431352458719925996917082810072010193111492495698806028090776302215460202274450856144733573669418546134238149078809008315382522152741942418463869843510272690341560398388842121021000081754774664126077263214425793863664710927618249860541264962120105662740199322152725786749390401025123602247234320452801493676044389286124097998893027141959311938955807849271164322925161663404203480036150429869709704518187469486900251759231260007309737579907064592751733181444291126274219903403404737684169591982351277779233356430908128069865012229867028283866654663745463929779784719329305123421985076861814079639322657410450427059410074833219646579251009016317151271261759596770834869597685175576553017779515242009210361048724657933090026312669332325982191209541773568669772421573030323293232055656485481510023060460567409736774419458873746935106000897512043446366385643375681168638210003999924393823324110376140513767294025664609462204499887277846882498718785640844440895564854731809905378168671742860652683648030511325831994827654756759851583165044370416170524263721141978943000076329295178275714648334342400116207649915009925368192605584892793874668507224073562377590772402725507010772069989051591473525234369159012879216857228921374958104761171324109071176193835752682701826619660352253073575415214637217779860757191268880103220903177423257453907578274030411606759681866905884530425374286496066855313769877984483600765312057273885520473972563408166375502222594163052676469589497114109971344252130798244784178087553747587610230338002159582156836025055233706869517024703225407501941769897632436695417445025361558628180175596880747757223318998168563188638609702710331189998987317704094860723127630619719639296951142169264153797100502883136228631834726019091682916198579912873349907399276359210159352515358720818944383854547392077723058963299161772219208006354890955575943450367115135434959772983747841666795172695871751857821296756416047457518487552564212343160014206663822426989976815583022667138308118267059573974681741004705157091259419729440224492464298424661597076420926778860442552532038900805587809687011374839681436879834235828254665189032635567517471450765894081571845432192778400877532268659402047295238539337221612483206283851916319122464396798777685547067371510704928778801700580028902605558867591335006200214677097851453693900108633804010667569970570940942573980951503826875724789675932452206113088953440204945532879232764752149193337434717885170085890977991630344211853965523617580464595059261315277131011537042309450799734334044618508974969137449817824743505167078517826932271518284328827263864047857460189016284162091900839544699830645438410006170864917897937649716342991899866983937123033065006821301047297461797742464870330452853615556020125444757477593115893474793624376048673879485253352960361671187252917831432594582239210119570046286081179705843414899059607755141080928342546514727348519898773247414905266345318011624821260575406302884197145381511002625466290410389365838632787254777554268692448152030642627704104066142892258661576145212054200704768854543593988362567442990376822940630216493433689679794921909148920019488960400795923637016662167291822495739817137192091498941757306869329262745130115300133473271680860432442217425692956852808264312251737033106219674290890958838922068727136017270857662518012975406374687986352350051374547794066297292237773577969727821452009512525110195186991418963741868315534447608079709748286068504201657456868236739817164868159375895531716963522470925499933964283685734827997195674339118550200017652307502546750185301488313356089343383529030724419795712606025524870637225895948480706188889774715771594681779411342690560120174793895787747289153597698397228440287945472043399752935826946612224716922971136043517018251701607488218781346852235580610350655924046763189613107674087333839284671355298080220779889654442897525533409024364467181189229030882472851689978673512616361185649580581253109695684830997356978157754359652149897858326544849434257151916492426493732382596106103794150360474588217229972184447758717788179198297593429932121498706342525284326223675461836496869952942562653246100016441315326603873014032906706006270225733065075675494332845066382106297749561260895249914366756627628949017666348458841578206533506326305611774862073809059025649287238126878876891953114488508007876601138044148579214340304072980723484639527156929761075956706461147819005286607236711011602780739728272024646071552769744207505913653863718936980794536790038589503080159888182881087146977480546859337091178034104523640849834653044029396612886899169803925387343952428420859007416434443834734783228330507447322686423230545751825640843480554459993980229875120279291548330329708880081362591468348926791669270049744858738376873042461845473436884732371669290088972647800794611555239168313158268629019593734166551271471217620716045629740871690557568807178359712636938033519857328911643755699001315505362730070306386050383949161428476355155522098709000100571268522833435378519042463941583386513006896462901122154213704952177801874028534508455041952707865499667878716207202260230615833631384498067178335593101903180212114592133765260555612636549843908373465679657650126119541008069088879328797453939297865936562771023078516664055868705728962948923260909073465972128751965113728623413228146833757641610467906299670788877079718401892382857350966588313660964149586762573344313689917155491224254371795034775512575080728920930320203771579722180440444323508587218475277128048633714333143396435141314902705677235284789942513912340748819223215102961598272432508786153272456878490381994416539048546197604641955748913334709024053313322257246643938043259728563055882835098996559060655110726759282683436453044751022879824129962745633110048963196475985856290419821764647830908628962506844534229124869626977498561477054450551755469315020254758937441111282081922417449592165972794604170365470434521854807051564334954179886839088522394527059956243450442708883597021959859159582650856482111517888236892547168912403773158490686965053533148344988871179069355232920709392627815323080664542957375834252670197494599712150608513148061859129778157577116496836908087537701149759828288736423738994657111088760476366792863770736935296554947847676296593067598814227575566367131608925842874885859332210274003434227665899745704052022542423784797095684417035738339633204276351703311684074356302473129397586194430612696935597459555272352305255425629180870753668679781845005642895440518260446982896969131365446026675173676591784046028246183295185924508229092265433636105623127132312881672908612491681947937873376506918570578073408223915403990697463480661689795406853623834846055423320769336627838294277035086846584824846469323147885238136759986226971736966964461155855121962317444239530453829524031814111077147880888545808891022071045762931092686522418499775701437184788959582094300340549337285702290269115186184629838440889833814657063099130856818854185425030161523782023340432461105765916958003549193833160470876339543190448373329969177082483040598403560663692890173326852178804943444460052749562826439459312118987825386686488466173214589182394601858151375551034436887098712263038539862916727267549319649821650180415058478300089927688444476434580232944695908296344186356082415826337878254546173009167064059853277675949187042108465183449996695355202812306101137564302982337555694794605612982174383719388128507970926984958302867173213312930503914997492225890650687499469706372179346616188855396813483502636315449533560256832463246282257487288069023788471656599781861846107805835903152142199848147233318358854872574382320275231912217920585403822121459331809124539011145246291136308101352572526637511075326174280779886517974797799747237930700317100047911601370447963030553296928086350264376622455216260925002073430379004362536262373674599157632210663804215167234152266010780746519444773254717875414706783117989137711255630896507258971306158959562300135420429972108816862777239420919921181821594127668293832515181854507374787477314774122035054135397023212611661562589419023564210972239199196736363136792760664059837655446474982193650645309283222753234432577136798370886596656102065077362038427637785324221178851238786244713175289436278225207890012264300596316136123769812764991597314657523848072590444438067075796732700658815848721773401168968585635396266710078406780436940045610397589777030587085231184237305008038146245898192673003785979518239377007253751500218508423508492996012815798185275760750870670880853447656077271266465517986669501636229784586856940875997820689877595998190469067257016493492848272480924340292858356908009432520344108873289790851237870800297886079927806841958151558688525278400616636463836172146498602731829869353764306148716340246576354755328515223430381608007043098457594614116589540384481471354379850606939026485077392196852107850933408288652978358981708705027113775204697198795281558755169980341284317310417421046734024804366528208288884860964242886197854211092760561229288555046925750392026931783316255674109328209812744495676619554724033892408653644869833945870758567693765693256857585726061441408407823679706553867918812281800586992362149738638677052098382378487391831439316793791612904189089661754717576826304330839983398332830394569371766402147389565234897510331077959329107051188378960189603378067257217902266853118259654801396151120380795486512418694748553040082584266018425477599103123824256576342446146069756657992785497439789021389947227940714662438495634256889178175424540920867602626967526555295242805680412926427518740311894497225253073373118614428418916571402312038832220432144809552697338055057922188854492150945720880994623890501327820367070733376121199551712870318323721604349022571687859092149004063921002184041890552120901397009957611271862354972978708498599352133965642886974534888706911740047260964090030897866522834184164544544778529388804775203834591753267364338583961734133623595334352099062569958880731989488822052586454348622718612402564515790513535409905905189972859371391059086482720967917567946840158073137021751032117580654860067525986664192027751642257434748679094131069148936292398253505404194957128965510775613769657713856669570933309832163236602982529417897418194310597450359094992307388479117021849617767996343220994330417012813021974002354432030697837861961888805853299793389894429609547093056205499911490168053146559905998449374974191150141032564179863196713699195981296437600856746507444480052200844157929590914768980636226969981374431982012267339186904533687810011391020491132183054191049549675433492404624839660722865835390089760387447847083579718385905903431197348874476416360684354497651805801518803589406315597166678931959315071918929003491337649187453241472413212937008680904045748164385873226690838094573960441940167508213684129604489026788233622453825954372764157955103489462810248573749609653933303571049313607384265514093125572780653236528135387697708597384113072672460950824565232194137984608485971754699937396324624255184996649337711676126222700899398614574619566713933742517781015242108232218747608675689053485007240565999373186562512575371949096114367763616652859856458931683531978534209144841650025125408809345523914088719081466192271440085481651057685711001000355378769504059683195079970097785240627250191400282213766832399599352758283532518731974737238976548870855977372158347635507106575057886114979006108857520517545401545550662346650679629878776595197463866816091467533666563390784851677301823921288634688751271800013312760382289097993703781622985771663418148907617327683237580941612591611065306127973963791748769637331376155264959854089058424627443184565799625590900508064521651575718703625511843328592452542593551992115690169574763279058477132835233425508978505377800419797391814338544606680716613055181962903408446346019408013536951206952183861954025726811986968035481123407306387101742688213527148585970184812858899558189244011001418399927903907193217365937741260123259075729082111431795715916663271505409464428417037673353039449972306308812623965084226383081949180253809782942371642327002414277833956126514178734096669637138311735784565472367098071625766793911744024032771716107224712235211299796583960430507037448129253090898238859563261814939575128875496389353551260514680337946957878753405714809402273349649324776169574231214673828948340204626175563541069071573941143307265103601143228041550493878056362987015640942933373609224870541216369909493799253494866494867529886881660151903048907669017938914872269843785972979395068603969311317202792344778230749019046897595301271236957180719971327685939653290967856520772923426976748558462498604207905820045312399127656193367786091435320324383690014103462238762442783825158032620046323616763504160840167132656119287514689393191714060961200651946916388942335243810073329021726819093524507442551343525925002998339580978652360212744508756723524365841843992263925043839325849521316443099159106729269558206773661038538334302473633893477971990579655110621756896938606210691382943055568454517726060484376437201277675061764556187744938110988825249101401195918770978843031716479172263522156514564755558805585597705998082193239083046665533263345216329225712026107186580930976952990420589084123210967889765193568515710853047162641371295727762291435669465113276304720240858315990679229072996794502199784416436238114243585889141841897703848327518316964869422814856276387470515625394545117138989360757386732965819069116386677790365420607626058248587065969371612248559079412433930097160209426689916097039941719824637269016072524656324549929961280500279100856732515200650857340282663888043632782865780096230857545444052557607879573980108685124579040268796655700161855274013494575300456610198635184702242382809616213870256511337716151639614983420776081734384553270597867682515468809142734509071526628230094115907771001207162336903436452045959277970547909660552926615378661369299656744679881805532691709738671840317723486775386807625461846318483379376507730757079272901398250453052669590072942241380134918473207108507724013371556818372556422609526184829665974554549067541072601799087107591132473100349654389220423135992243904953877646541606056902842457495523261753970985104855567596163372979443420264666392457717474363570257049395273496379368694330899427294455148529904749043310022909829952483425434420284333116086735299547292083212027966499129449428004846253611784974557775913708245951065740476058306410021780919581796432744281580179341531393318565825388188649637872903148917269071939098676779193421003302275586997720905520759278132234264565321404847656515872958346955912773568110027288635466284189338608307538133405094384828560889217058310171930142749977611812615272729811128883712246208349217990637397351965379326666521651364177330978484452245025528425496903311614408721020437300192436425552128175422325721505310036843983674873921854999594512570933782146532444866531126360062252725601723741676497271292142063534121294066432946816316547140976327572784965966110883113311147465176562271494559750043172007903656375334238973883997317684450112179984456256825130372601192507301825274710368447787154277680907885195146828903385898321150606137495456350116568082072419589453079219574907078995475768210012007620513705896792506667991021286759414945118036445779069753141987760500089301511473638339622199750829057553531730371961646039054704526952294195024186899301551916436022532102997404849795944828853002666604827268422793720985286382288040397078768026631929932272610848125887237208338873138480528665046275346295575528984584898874371307208334502282591025304021339008237706522877383298759177699656006190273820832276518921949793124439228400939708515283338706741767393144894669049379786562157511752187763119537663996537585744499662897834114992355681188664908197009194347784161067590200881651424835635435513071863358190873639049173068108750512044178612609080366053875201453838391717404365273259498427935840664779165431012217834440583807090968922199953568573873897348514013287853313616277673530263067463032451633806463521653616812451759952102649472752819816861975958622406827159558857774816237196235837088228873785052137836332075150373790755915224440087784045989586614272548543715942707885357436090114311232305808127018571642530085764031569125924290866388389265587288162581379961939075344198751762883158608312965592658455000323069893609425098718951928595074532751932218917051991137285601929793345149106289007635564708960750701358400304386271238672905181794138335412566682995919453554492153768650836545624712223886320389646277872113773327040869588094862595069276145108965788845382827091565051081769418552395637781321054812274856065662012665612844499538869468690441698074173354949062417978116125308155521413372324573178420227435709495219293842773226859915264171121960310114331242095920181378021963067765712224830539819807900691588996286277792257059571029201175630950772240007756387804578510560854008549372784196388682528946763142384580894168321852973163083176423358260480722434923178532272459333595248235403883151690655374796723796346760754245063845049362541257656302946279007181206072867507349877675644419860455677489551017957340060051890161162506596893846551025885145410780035405565077876187211755000059707703537876342361556907668341550036428884968775062415639268906755189367829442343590042879530227054974731579124184297184450693862814066182567322624732612219543813524835306751863543943867935694690933892182981204363364378716716805526305997610854757589388299257596346012858074069151914767765170732602282989692061880818948319701776420725336810701702719704335555313297581933153450914041057416381000158366772124749589668921062754757837957007248726274187591428778999237614330050714357051689635907760265060771933656115432208592302089967244376427883198056066201469338395630917010698907758170886614469836105985181147893888207678946227463282211423554006765607987867157226209262356994105287992837832144658144869741096260502055412662011385352693517356455674745992288316975541575769765294804557071400223715493790520178323859343505511308605090593013589793100446753398162986687180249479349628711949349465260621238677059764090915599589522291310093518421417728550573968885925278562889711785138940987404842544311994370428677955919968912847681787783631061008937507875858448567916675182833462014827099324745409229822469478913528849660110525347639499442802714121580939793845463801702331529471809228959468312439887586408153714688537332424393531627079411451423947678443118113527719081346373441505600514609894153610839366519269503222774495744442504906420422774761842126791510450117187358395473549292810672235726519525570353415532915057925002905164383303563996694398023360406770689999059130517511087455426975628183063728473815656566659031691333077574442941160723548607514640429200431184555510634170160836787036467403460152253374423936245966664900940212228521915517089503991051951195635556950634146928712754758112012247692190312252386138551603821699551876902933369897767292631723235577078117629140368948756618715580871902829226488053835673481626580497702375195904585135703437217099737917000648652065776415978898111595147942149744405771019478941511319398998546559399474421714760984087438019242068450973041162535373422930007861901965612397773349302787009106919442022953374666590880297457088512725429471164085481196207937129942015109474465319024195789540125156543814062930173161771635697752462102413476413339127275719377917118992273192219588511453091791983460261389913477771397845202422589475902888348239916237371301224698624624271512265786960143236632142622628704400216087933854449085664357549178898009186900991877929857625144767814906317609415759869350053337174051460504939426707798109028436428980804721695173041888157691593989915442590618826135068638718521194815297281470177434913395276241702641557402645060546787310069197808759480502772574542663587748557331518338877115215931905616977101985806534667491167294899470421237201844798362306834261718798139558942094314157273320208669460904367797214869352423125700737433002042692467919891166456488573232485912649718717092617036124208172973331114000714002940260313439893314727543000069058932938462300181710053368455408897677431844549841172076029196826821084902067010401443382140263216915523315274233325778032644820696457372098269962339555203455858392527182998085830103363466182817084515800181768306917714679227375914122920399817268688805250848840574960066517602897588480277906874649670516269777907202583983290850780054632085876992614348065909740453934693170779200510555680942205020112649584231343811807144671433242312605855150992192343221541118646904665777206213196033118439425979310560494022700568353547235732383399275099261059682488076752100622760798715438482967586487982803562007916854942137420206986348877493360939171479052097683014848036408908034053407615690459521666306846933688957488921123063229271904711843109708221288960705358964302101665764516853989409641176342834774409111502834256772312301912897360054913038064325443631323996924250163145124526445061579688324264112390325541796456053020031906043581209638423014603701597826274460086689262871365462838600115949560699757004574486182119127802255860951968802846984486888280315152036616019047135172961858123426512279064338016197228906896581855890069424609326596381021175373578599151352576762088142382963647786670692797716192336688701179313409494572081660108111673169266537273659332882437209378293714525721554002894936136890172773557345886624508620156936412636763762200992459987373516120027012656432077188164735562470590134115919482395354430031529851630546655879587730833301288058591233166309199078926760746013599456533258041072198736409946255492762665110263909208804418629524286040053448494608452713251837891762696364745452530461682007513976812492239604395795917904423394053328114086617587392117775569566873745724177526053117119445667796262165583685541724064039558537478952177747281260461480379929036666137855226163109672236187249868025630306595012054956975751057628821807458716975804422384889550212921098015197797790051590066500173005647585064948604181036438418925340560535526546478599863033451326428435728759446297973940616021722734430680966298779240959457881215390040235802461845869853450507171414918370574657363070680609292108538553010166831023060367152455124900848648339150453422033495715678525149146239321319941106434074671530966036643104642451108256572604218460977028996251779050875107704445597721570456254651955910485502279817747316197138519142923553070485672090095950814671205588244513491201447370682992228365253924071992667823274474335557518263286919133265073318164459450180220155241931859611850660219207487889284165276675387067742207805589380848921231212278136364384610786397767524813412289591883228006888082697768082905439546917869379039286509302365337273819586885374434376587947013752988145747776476454735468243107925648892223185964856064822627289415741096996836670632595821864787403365587072505507242775939645777538481788428480999544091335871862634058392787247886045629507324961526117604516714216025202362568050484437060604645392864366241373071090563193556841832316702730744847564901443460795617250703586601415429513682477714861191089100970175046253324588186433176544411269284764147884262656781606189649115336783468248800314300465897527497493809507143085244763706595236937991409855421984162836042595755223290926771564855694636047412414165930654789910769639051720559984003846028681712278148831325150261728119698991532190860294790636049152711629353744578113038331074755354172971595017755856156497174036906216598682235199202020244780394831100697788095084164045399801985463279071126101931163785691784493031793076007655796480852116618057715940742570527027070624440031641371858721200682898635396458190913641126592236154973683860957647359352383319303156860098408349190038250123585935938183256534417490838000259419656423724846759861812697872627450902286678835459115448303012769059526367006359654659006032708942433880949993756429240589957851154892816795504257498369832325631681611048387534703676348583547198308971679042345061945563647880174560356039715384674475877867716099089098835096624090923406237265049969809951544197427484218464736777458532002928224743190010431638009949493929490748039679706520201604688169804051272626184831383652752901262129932891423255087286193925481104455249186318372839622082174304527196408579293580159197430526364926880687152569907354900365292868921437133683317112325239029883046929215008006943542566555557480629920901025749426227998083791660848001192509345678673402447243364016776604657834862942473720359526923453646906016574143484170523605158738237067740636575461230450329999204090566397399787754181591203307313790886247796042207849984491010572453061934534060667960787839737860936098339791480376976361637168488223780700184126973668646045419297460002004552874779219761582555209525380377646145121576521569080107877726591064905336576166703613744241438624907111107136548999224321363238602643623391359013699323108040742357385879081133580626706469166947434125363736433796024370862674505811259548902278263168200009130250142954192447209898819459363730694927456045849374414417574735272296693670392199303685693633153382690622293533419287246853341961764978575020149046917109286711540156275285336290557051206186967055630605689736405765854784095280705475306382692248797672856310131676391563767767210566317915836755978207344790842976541141854506563513054260014747448377068000022073339652618555408111423723695813179631618606848701744094329616450415207202523753821715311792535274576036063541283523561731884370927335740082878251714849695884550088486619300578294832085536356079240291830550118150664571508482753672215748006911631917037549876761922956543356052777940705180144347561725624203678334964984496763181921988944648263002781119559701292720426450220799307948175092669862616091712210537919365862686765297183523446392913464729500766121640160978536963656948795682893971365806973890970549646956649171831596184069314256263237275106931721920914435484550884706800769151820295489827887370192536582166371744176937518646932689009283593232967985052236871490043330562781386691179573710294918109978852714969272844630807652430845498802716747411640413725866283570576184058944135198625005708530246066239961453231844876531201125098770889471201882615052837477199635435333123726684868564567444929163738574448693380241096337113830618783353382425968215513145690300056853400702775003319307161582485722559955784302709743247622757190288215660870068828131606113702167121159507756743499443657029747712817819076630922017237643287806040746383885734390454799923617844187648606515822106664689159364825096680807361167081521287932206620615613439115056215800078907635893116550123248075966446507338108124299285051778427117454258633658876643844540307267875087542548080580390247474787615400796433628478757090490250708703028290259600245212795286910372124469249598464504397255329461359439357675555712088870412042499151887913185065185483736354040428430194256983031366159853079571829976062208802707324087145752299062198692820457724621779172129150676929135658666250764996203496785037750514091050382576249131241030193755012217428311156880834428994914733576614070976128255346760391654917856076031698770058725783924719647829909734973370315052017534391200794975282812395595508023873694392094676317367727194732914462329636779980997249688894562597780225806940554351698477249376449010065267131717111407958926075197121524148030030449984446018932905345044128675793507916099742392469065881967617294266043682541032648137947045983718120175645827081022848071818514160162226366096111889925512635286739790163862338511496493853155642002405931985655024832985829534167938728531672402064676172040227613884008756648487724589278929702255998826248717740280647526398435150719350337513705836914864750049368266990591929711856170909654871246036915465462924808471779564598039846412944584641173081520268511385262554483336541125797319584438963551473277724932197311568254027583456486254370931390109897035261402926080710683887184772149130099276900330844683089715381268058666339631460812087297727515095374779375321203252170726413781384048620354619535839820241198781719516037547631630415501921922290229338547728995913089008479276516307329687575206501804711297518382248417240875421945391081284211283396743892864249701487395672782532415752505093478048023006496113493862607358674104127881277307751149630148582378624613906020483125904517498546391376356324872159573209878336043829149295004101882970763374610759535894128634961825485490954464228312945950380852227255081635512145044967233784545639136725587440377741326907610429691643153097366551401938750220607995344175993786968195979594566350621493628167867188650654902774465806939008397287842990173988058995515798059088502872912421197470011398028845926961515175494020040540066354679163195444950488624220030440817056208070390755124325973628779985385336943241665169440544482583858021038109479192889537590265125633428678574314688550472880655257950375602917531332331698955361319890799026504153777838084064733632256778119871704940812168751466088462553689050645138303755471874272522045813880004068735141906479728928513467930356357249192900000222824849728213750914737208493263787852789992380260945801111119237139334538729156846309364907086183425633650823679071861190107204532723232769140922738096760900437584416475593331357580980228810312962637586405129092136813538297150164712345917978013584652633217222224293605387339517312343626226847945253513617448832726183353871980412823987726857188307577851834525880766970227774436235004469513978329924066378355803796226997906735631741075010201439299400954619840468364739581783150595491203322276038349534156411630346342396191022032542952799455893577725407044547853974997884207772917316500441791836996446432903314963351400752491548299464982198502251267229319915408360624302343122425108075473612324206653368982941188379365087492475244437381776127130637768981057360971277311913063034762153216605245024975285409345957678421006351281546296569463901496252035529525270364092414283133878461109839185284393867140151580632081006252994461229894245196418921041263753023556981702241753719981552921183119219358180093302720387171389154431571354170498346569572300020485637544702076620165897983670984091417257878224298324835808425188319400014621103114417025187584563769184436237431356133700199215264207296051978758386117552035312863532896255911225042458854036248390570011292218199081832094426762308428501052929383428538004564480227716443995093426301070132440544134586316003974529785879143659688690483335158931710055301058645584733847564287590030084851561118472675188700995352899347656471139184518209282047048382583072520565550028209340868231433067940636775295485633447104018379676996380939789073286376464188097014889367129505589498889575875619169117974937396459170875973174705270447008349575134941621212633696413700816047635118193103118139467967202646366722454337703275807036191742098072458247748844804040957012278764434322264006634956432914443419905170447819316304796193959930163894312564157297212831042869993807454142888978948313703775590526282853172502261655746814631071791189526762757123288471301680456498171089251050745664591528128797034751861383562994522426323623443770519869311935062913147979954016093251960181440887801290060190451291015298509963043932676165087449171798002387084860496153364080813749667946609828147274359051416742650480658887936567073777536587154466809327305280783833693999101569044522339896158162059152977344213858574450684926345873978203867911383813744496428624452121864472527786011990366930940125581552134312921172521642453441943967645692046202526320247265916201650729513157441964154910504772030967610805868883866514100630730428306864005877194531478741781510726187759259068083170515009337525391157164842652039883676333274668844935530357526353290082101508134167846206689944103354547239713027117953013603259839250482592016145914641838651775170784632940851181922345475692809196213919258361301461753056705460194072728831051118958140668266339858349399076186901289448761991684377249749623569908772233406981781554780488419094188920409058388694421405256035393388858507762775041529664064698736706305455817975973648935771265302552634030005516559059179728620315811154792438777153866919414001764871165401476857055746670116558651348787429338662008884759295962305337650053237426846333390951091885344070961259588951060398920863568099992417994012395807357751343943072796861318124992976844214039496016712031710636796282828008997197402793352899629188289358186084656038511987177346009884794773553787160754048887116333301242984639906599677139062388176163722532211817427884658638571975560528890104454399581293728676053441897252119425396860196942752925691227982377429618488473267577149751374024047869148653316400824650158196178855378263163142571441725836472335579549297499365985769769788459769220786970568420353726398054991352140904733009301562066154317201998421400051510202799071322209694722000921804512705173688430630591424367468581378205701184405611021982065006567313822356819812117283756056095930976483511989806515146533126236194668435106339721999997901742811315096984723141345407175547971946375994352296737504197768447732537809040867448400354985573319177644304964847325644051279871966866152741149889915827192411598456209958896116549139962800953317887734948596664183225705811839281331893329209265063572643136423726087379563662676440391290000953578098728593875954208667608599196229250820273091349927626302811900964123682807901816319757468807702147570323111937410546527809156639812427070878620087380928960004070813094582247727932739936561950294612946549564400877400803782298484342671406380199823945047510827875861327168436726744238236496931179867394093298059883376279927752324486083160540496272612182672542665584639283357238454939531270079438489542988548707269577959444476154378822466132562310376555945403664896613122482018569834656945278820198015653023496248967301499718866518545713107415247695938172753396574855158452993571934439463676248122133864402452171001617744270732231103784433624758263918399196094453028067148971204874970768874907197763211048587764644871966968314088743424309347519892136511999806168480032074912611565659023328861008133163413435976176457453019567289666430968276001152199169210874656909726369730750006429624423360877408256829340700348973884107233025026246872563110282513370415981017877718839740412930880099577751796537881458554260417088922129575917926274501502152526192367192643359081705483544126975446516600701586051933369522115645411224252942888447174693116845221262807912437953234096482516236042436154257731874298194113246425368634247867800397725635621751893311954008750567016611294035717321272196237246435472517788812674498259228199210018894842824051790503693890107393343901713523404942188993521847043909492724852466668301583214831511557869383583035178294529746040358460695636768558187187657818318164590600565611098242438188989199075553003897259649795118771195769613094869426564318095107623584791781419941825140856949894535533709346887730211022407770858687064064322260670889218579817706799871728860966083755279700076941447910657414219741148953118599139821011426592110841265606961664052342616031837407317688402741825050073016374640989204761274287956537968599829265495697608643417922832812035141907614517322619252745348844891729847241765388116389313762893473383347886018908080380550059609050812710863760623292581356551842232359763589370275667198538919785066123610657169955946092491613543142034565460780258210430035039380070075654538715046671502047862170578623689560384219168768178459794528277825137771086033874054231335795067375219627026182995046025275243198975044238299924326626996005304334545995521880989987888909339716411091688311285021210972312396510023344997233553814828966516038637690556504428330330073664563768715060983698272221223310578578910914945547456482925086203130690922011076913229778730563928960869694300666179766852332919321623056252704895687429233929284048530617481680798138779349192004571961784702142245466427556721349171281051570432246793132606687943128048654418673803697585915345969866614916112472078622626202452715497951603396444197288337350535204183623750286322512598348316274277163801928025370234026011397290430888175600920497071223893643411937916357793000620735070018152054144123753594433514241155533966913551560153507276716375573612361744450689184618196287680406619204653742534789740749695758290736722159529107668395011542982413410170409534834345137229757511006863397284584424017601094981075993097546379297932648285528661044145617453239645297230614507933011166635945857865627509271574892326036600281127425617435300069542224985714289243140840042827589058836268394253063818417528702492796424524065706003971081605787078323252662283845506393489696338035903199307362443945455264906141565521840094184844325586984889086129398633416201370681347199057529001028098751459425367322855334551740733940053884860602291053874172077096554382646884078124987794859914866959475501194012287368428904404285654504921465463942420571996976203135511334882594545009217769192356491110845091280303094213617591997301127657243303219365956435013761118386391277950846871973144007548896786089918899622887276073784020079642174016112389424333369845744807879258968734275308975277569193146040683996788408371057159176412082768714778672645958853552523798626021325006183231966576511486202961459574190884923633736134120355416750108361551099730721641115353764436016592023165117645960409137759897108271368728338091855633463417056415015783405526720242654589158831460274408942424348691110563032823218856512986397396198705586260299990341987379704367728408665251702471247614747395959216982258999685684830192459435930393203567883972497309882671697716691289048587143856134176820202528547084178399737749918177224266852451339394355032574164146479880716996171895575839563950194875440534972209456042645261942001185947232373739743775444536621104579863312177910576906580044935002606341117954717392812171867874706462640368611740236223153924776538182284971460109646216912058408298326904841017576151883450112449873639664461789926296693827165033223169914155975024750738466050843844804691786159733684695294735917129685231077819939081294115111566476782896126832001962001195522394135414411560865354350259078399652642129018355026082313228603362265827868729110452130667286515027940648932792880054261163152889713216497816639499157671324990512333420110492653164429735936427044975969405333280018842509572620338340124024728851039408081686280691295333496447058504293725151091516532855997063956040352963715046472534876094203418412728911863122306944601753939847235522620613465560997065345878721326792084596294728649993513740512492862541189084587938678364702330439896523283244825527387166525269149665689138675612170316306352885169462238887775098454860731625672156589899969822746974122532872437315293405473442073754678805710244095149917437510467551387684501030932566462120043048219470527213794549174700715905524537843795636464180116780189268108990596925852423437496802592181207221563948335873372332166982965587732632609460698362893059716551939674755740009846818974978472498009524356331920352160648729030581239148749646508232761063069821808177840622706442106650851947383746392641434975367141724393190984808768589455954588796623203048034918316705105520075200193749647369856610080830558391066669720886074390040056065103855178282074381643882790596006984218991011780718130049698290161993606743270237038056953943384420841922237991014965100562539114377730369848797026214510870743723075634858835317860712859520971583410128819828029117549469707125047517913727193341541927801254907291735939332725518642768309124162766353644828499833492628882556317300518628582787282147233144444571052027245778937903333228937003385961181559638228055455404382089765629053485791839449375091707398145233360768583540344838645241859281405443346547617176702900770836545226326357080592368044514914066258879491859361575438519110170620723647969425357251314219667873054432163585870712886297205202860580147740212930748322883167545941947196936435217935809718995332525342156615913506575836452780864612804216401601187833536425605572891870401633672859415018783472312708598443194068913412598921973000395846793146320679552841622524450205351448858031095512711310406221342186520037289800164278286091233804362203319605443118789131479281423075108322256998557927246873647478638889865353644075147498227026664256148502362945178331253017510612723108313942961653628878112127386339776020251414487099247432555839707649125611895208613719431934710536829816573910019584548870006327491712459650592611281899847222536149096870597852096471766641831298196854880151001514113300663812639401956087126201515914462614065342172210504017542421827975783082674844693968672798597870917191998235591762367105596190806255281747131377988490208266628760896071335320680370527271915423967883682521815725107589446998778485749178600606406686469823196026376876960988540270523993191650727178098803702348391470528708342622183035609978207999719248579523895871011943527619397834011413972894956677177271597721566331154432312146500653116629900169292539074689269540836568142472163117288450771619835015087926689336275171811520800647467722268064893893932059751602673884415132209378890024485102639882582827495222617608710001788753250714423266032631893410821236527063068069591620235067036144501844557356978634227867169568053720526209961077129453916970103067338268993608937668429742085090748675909763164308602859738781255111136020594564289990956038060057802320497865939377439159345498498932905879487019147117131021061631458634685991490908296219880881833333087012314877884815399792887189360286746581403728971493155615425589739662627898967598254028704875713888123091309806725640331887569498119957461428410648980690670790171059801379112582040874436750061119089091923503118807505473852130591911996576947561636162723929150561274456907342438983714362322447814050627885074269724159544893152354347189834242203559626767445150057491961054471663757128925484599276156910277996882625042193830721678877025935477643628510387212769158062150356275039771988127108767712690037997650619720130550988437850844878164250767741859150201160341130138712877788550645061011154398170664006500195105013336227180750946656725296296946554440772326705823798605846660687778091153564925924707251143082964144435626924730809952787387770619702577778116444629069620800123009979487698336405475269852172789312295969318491903096365574696071735175759276069474003210623788932284572806243147584942079920424754779166397291565142921062126186322755788795770081229579010882402781690053179178112267506750375371694771382784928081796261164352043442590009371443199415691779846490304399333507081487705272430816870333943373350775243856705363353148107733988320498214509171698483764988935781250015832480684661307954253502161279584801244335566701670254776240127963608106789464130171031655418012222214905358959087035251867788155883014263304706678164277424261808736731325221464048143805285274098854600829478333047753091697319021701185023252776850805603315675563553946756646476564411118669277078445751870315209986524440692112641444215448948761578221214178717228278989577968173057274795488828529809561306693703096774774984375561107853843049677078816791522452291789551127103826224327764973912153525992928622049482229802227512044696956645260249866346824942529628189617922480319760733872304920587825589093261282368143046467006839304087273483401611992156611320856807129026293245202821550757886040289101226061624685118797024950436918642580547081718275115591885735262289762912226929600548884331404009943006902763386191155841195355767354466604874357120207638464919739373093636427668512843383066918192054228671888417921740219663059237541702411544158277222357707739129441394117915558194265710658557703529589184773403261414192624071663424525291339649955291370258213532596948899196423093119966260480826477615516604167981290712816200391225882946488047228130773058155247987693514940410515608219332097658074280033738590357408300355396204029363562321273991431200195967554838992940225218735696158941233337583609697569993923399444612259750264010505173866417865011492585739436742795174732959719081668024520223694303858221173591492999319452570269693460099643735341602881563364642662666407232815417606166250313700855552717708779547950366846596577816346362237669651600150561087941454744930241450646561660692325161582795648670560201698097382163959642774077651827178869899546040088751239936308353017840286443556067594561294820532914783251694975045968911925031929710182209598240182342776196817494116548297993387323608494436616112296781362153362574751974022279014044449156272185411796494843718372538886994890463208453050625302953113177883504197093508740309368234305299637578665811157925955172220041318339395595321956115608382317953492630406571146411908510075477971620188742697837782638720800357167491155083779158646879367962224542592517666962118022267234650070722505306035556194570764207119021994221740119181300861315866384319728449991495490427974715621979601870118337620094875106027732880131302930761199307390351877103419105825263430308569374369071935604246473839331830879339068553627973149680043479227674542971706772207655999608087222088345013372946162668286075045035890657918441424302125913304997625703050182930725543387460085899395997210288366144991080766018758484439002043573680859705817981583045479313896331878263616357425910359783654690517786135637539653889599299053895492278278489434615628778171494729867657118565309539728347308744798392681719858359388374347131545714718805942442201339854000792499303632285245403229748390699603135962405958534199728401053724194941903496993303424443941528747041210445600715622897395101909700947738740276933792347565484642615724116817178139463356775662682616185889966563954117226834707931982256665331888059794214531665530587656520716894119503918778226480167642161836816744464965920562695210458402329256737009929723018350921330226187579007492626399237203953646650542070597707197377256925266585958429440257516689076278850797515491187324439078775880557263391024829873812523651351397955732724080935162464826844962005552828754030330702097195155298517879578163930851864046956103876694680605623688021317554979990748416897014034546033822900365886547784247705884108826198213114305736816526771838331215440527270399065194274207715547747969560300243955368774141574145652944377848725632272124505453068063545729708743852817893167026760907211621937467566379631026692793102539013508514082422520118562024434094691917168135395463869566041732829946017275324466875091466864209342711324628132951880161329651856889171736683117582361600069898757968257471120462535151995676221170263224544665701964454117369220327578612105487288938393679241537465394011474914668966056166455807006274379798878881226858250976776399714169590281333599321877262175270219534964789982315422115937048158244482684685805118687226196414410071205553590939874497046789780287355283780030910823456711765344312502216469766110619889769714269627551167285385417604309494541553209644934905420193874241284303684856327984954941519890826209247559896204158600736417032078087105304101143470833674148822870654303833963025868730544799503568178754707796511956055350590288720774521803695158664072162869993512146470994987757767215408822672790847483806896271731714511105472187089122491896366407782621334943542836341795954718776180389876616334301346948998457566244585074326108971360413896942060828366951208998429051045412098226403678242388308965868497369126382172784909033263794550791612053689348180159543256094476297521743781813407211872762774740230622468377107574713546791070085828163112112219693820429500219262286408352217033257482838295616943398834136016395903347982418913529179444513165646654709856438649275688691917259524671520916615187138814884752536429136191336159244216144953988722933386795112834991307762820819091909814221784492419011367834265588314407876728438850012591265050238636837005683427303766932066036486860115710656021697118519625680403565420032789712604487155205276353375182220304666672265043919538729624264528975673961463693602169646610783589253188966214817410459714312911880364885358006402167823232733497904065247008022824070530568543585095598717671980906653123996160855648304064938932169918905073274037600600283708934130914921520648877456946122499175261526602221578605282438986711833721014604744443630108918608707734391177317311990060522667662825804265681805342014633334907985535173719077729484218197055468868376015321913917788288738169344366160373975763701523594016644346927043172409691469186792014015771867651964489522821478064248380228034731193053775890659572592314624617698992181099516251656806983734955681441090424732096671806292891935607604294228834634643105344082354508951928503465912178140866627700080809535100390811608960428644830963198902098859956953855605976920359456022602766029755337036316196602751699611828490116527323127449547614050459638687964399653262183118593547010882838239851149502861741688327704650383989587570526477783551640620533783639009491465833033722817242370544236670078246531766770236097334156426863215023004665496180505362905591961959832527464286128075097885065922316021126382424825233761518436058478982217310165054043657142562395732404852876090482846192471106890365834060486980155335111508321638511399982231743503911095284244893289093138607911072252761589525063624173151954499567398291313193690549435370184135161216077596469057423833388115232534049950216677945285400637587552448025736223402676136440935905593941890584397573905976347316397355080721745711417616950999845728016166906857207422990323343360152006178784741663780391433136318334991408172134040509068062874957123669505648380612803402125555436470323958583116818241422156046898125119879602415170978403946109172995102211940312500717802653826250628134302371635408704879799049574015622369083182601189150588427856985506949733669398264620709434396878381804472362727251685219522819654089113487136276659558952862262874250153336578781308053164917544177433203711894461243177618694524002198627625801268901294404741286892325759277319845067928352875171678352870851646983085986714501812215412798592748390956722753381711382966949318526184915873579326207067944601329498055969671716279752272881006452127015219241046309050289108789926416562948643515221580984662672912388010596881871020139586028142118340495765901605211753291933397375149293437017475984205746139272042492942572532339754140069951073617924629989201623779042811797612096202183005412922756425567527756437393346764527936956445215528271505288597625748523845258257975860675893237135414268808265318127131272768864127855460509986068594132310979720802622721342267481166811485395566605404045065627795055921851063501206127572100105197010884812709421752330326980224527169948060934288276087227712352090035847161684305494420783388893750320321115528786790360999896797286829278576383797602186821974118340975366059430330497976599128910699499275954677990028870108319016789282084999123626527955230285052479300428162893542002905813142077921436355142202382951679650290930090404724129577537739491899802976667885755259430469473505272628660714571527159889350194011690785978362509218549892682717275645010580137276922480498813009621830018849746439779748380017420927936376166445934080493804055371803619110850029744171600767649789487590309591010680838454631009889802765447451617602732478938907780357452402054692072287296724019123205480979753178913394114946220367024038827671682279682750175652863768989499070453061741219370654265585398407037840148709796211251464908669528817638386892051022639601968297677690261760619983312788946176687895622152078391954186827192630198492335064544226877006412225138648791367784512567041354030441197333268850952617790201098631325409544463261768804860956342876820801374588477129890269762780693527798421279559233333440400352032877895078972728679529911748347355959368079880761374347444512222943602452672783388138946746556680541907419094842874683553341890767449828448426812876132256410634732048768656915685395705409567410881797149625701629880449262737396741695054331187492398764365791935718260803194666233572135113497332655898478229265570666294818638240560759935357178729835112168702671127541602722691354533990730395611329070483966681906209917194815580113635171654967519099202981646514548013625765350504179954910783216613059434176821945849805686214159029044997304004102393473412635463801275004717862357884564592695638776796025952277126680474897924801045610701585829088132203023473194084467048244972489860921663884674743056543730440195233020629737722467488442038782613055695921298667686295582427381154392258759950739294285514712489275452363255005773595900762624375027478905601028070367164185669281861179465971887417471933763289512399218136484245523040817374905886888948357976822946371706003125131834703741210724618940520777146676149388788103733042497253752166509598856172681832693007527608129819178473097063426011847446451924624534105629472061168439342517155283547778924461322948176187118278565261390820579118792607650110956099603080560449260733820063205399968914396705877571500613883542280388304724208420918907835662818457114487349911562564745870359962252512540048251095851739555016170571307318843120970914712464960405989060584756736548496045386932957549630052710489244528930240499512427414011667692160282476202978255036944240014231284072531675972268631632310024222110996647015545707883915557725500802396717875586789624985763936765372633017112904480129154810089632502069707351644676559193954843482337768815664265301824423998706353202418603767619776462212454252365390417804422942935337341377392235963532811021467500591698226366634376516101032213987158367883627832621971623000466121512736354064119136801743631417158498253057676256898367506995400014808072866134765312636494337701424739016020527014267624490301552875277729037233905446738384826977938831746863792769662568824327195117624679272685506286698233344728948573324861520504354287863044336472634527841010193049162559490174670635073323185531979299461951303987804222992988471164202826681226361230232923846542068382266799347571320020520081723594747285909014052441126048928119191761326217866040585199603212405514886082546115327168814391842540199183587645485427003124229094411992373261682049137085858259463434624397823961433260005931426415553020651769391233094534781520902005801205409795927338511882120573676806558485755687836424375793763637858053427236813627219421824194161668381773671097172121509861395298771478112416003388122433950330021205356047606828479348877181436577928775793852167580570971265250092668640865887872603159587342237438368288649810988160519070790430079260379505574077846338270122016505358284885924032166829115486911060695861146483757263838910469292155777827925002224128110996923864311009217241006820955339606990710266447111934222650844957844523214957865276363969450987588668560454273489191308325513969127628292850107303597557029122784628945666839982724458936502241538233594633086022304378839517605578593805586440521225949847968461227273669096521360708979874014747959991683804921826244903032061575690172213540924298210000605617944759466255630196009038853760416511726872084585311950224077822542936568273630911412460475726149046579300591780937624057961703763375497839554435383946321213021441204656535950541335942013155144740578822527276363446244793367068246959063905195339055493017758401721246770808631157792231240899732150128736842073771354217313823965702058046885718050554258738983608428144911768915088312051248220330041242067068791634557879887751136001748227486345971056380063400932607763432708614931556238473814262119245411982472641157058718724610962068920946646186576873263092016243837497122416288973379692706915137761155741809806844661728867246933638981981023276857646953800417265633158996113714651664782239597521750749523732691186051552300294163480610470007409894795294765256407541768721278156509972549540985247900689930546853368607506013885879823622214552686740157712159060346993069133199147380120229962364682299078334313191133370312783430345570320660106491517393855958551705824925930171380928081808859547739798139210995509648279648272492507614004976828988712321051063637513204409097963036241229308436081832537721623302659826979792781944078022896485753634404018096788518492741433935815904649409635496545825573929950323777979620340552373443493005890931435063387150178344764948122194552712981794032368193525207297566327238757332757498857564553328624729714706101888068894558602332785560397149100462837487212724334316838388225189792465891885187497499590975498274264261470519835662487520344246799277229151603896889319037834426646947697660194634395288058137788670840704148161872266834413714913461184389717454961681768520171928268699015522553220669121030071588807164374079945676046760305926057331977488847478092039952651997416866446182744769301001465667412021051903520265924059185315933962267723009219471549112630814941678404135886664074457054896720779493906092753274683240020385524344171794098975361928781884276049097002369048868593813168978069924667590092648466861902250640981727352262202155468173453900495596834500256776409902875673756468236810371541739679148936213472030479107556652438294461587800728137221378607989879977068111117354590317431398804739681303306102759635497050689262556811304308041521803580313322010006986225279107095383356080187070531889111346980838189972325450454061507962248920315602474363678786065169303906485354543987834644334486500867276378584253273616864769846616385834668086813871062924173369887920123742772009754082674047848874339570616310426371626099815883135141981213338694495716286631333861577321910762093313085485213253180628131269294365065725919061625082438185146668862249985485516500961337969488288720862388191954753080122690854824666609760929525158337773704019247470380060188822752406678973027673180609139404135745637481886619321905593590525342412237362770049999235898457471988357933132294180897583218178869728631822629960301291234623104948666819411819069605899740381985577076304229068290974503566950060411338797544502693031033372685254095350962550977663687429371248081968038576609077191037910698710287343387848642581537036392604484424034082232904389276490266597911139857906819572566165060073645896148150009182332109957393384179349119616675904726167538646649156546969904214413299548497397806507678052935107451080721234739312174939915378968390163377475920380064405784792724187889319573925658369817385342986644864912635782859325089944932984611724568658187010794375004526363812685526999467948014442515813716451026928983074171828744532501521283479671441986393546096051881832450604503563986451982769859180127865169312275242278367475637488412827039166329673775136410848608449584210458041508238937512944853207876851356909208654366434964137073552443202725148858399374185348261942062148888354277824734609605465190893979035881653809838108692738196684070766918832074829514691854102652949259776279121950387563145492190536366921140649744416883985736434092829135946427579246036732236175366609174225656520602693760748255178892944904977817539733079069818376047545174463447651307825585386926375300020945973287174260546711308015258166208478280685809994747966525196671352965797744896812374089425820217683035811087469068974935828026593890924808489979208275264108323267599649921738234689930742571551588904896270267296892631906672946847875708002148079969385637025376159090850440109136834343802826678066900074807690711095207633499912118927102991138010596776478206843252041416580692768732040197168599517087648312938735176890564202417851351792843168091265188036087894410913284339759148275100140413169351654651437394650384955044788321115399378871108449029723238482397908153349341400599971892433684429067441178572665429409558488959746506182866909724222411308347862450023066563342983688997907299929179056244404080891298596291050049682803512093798427358733143384472480923299381504230063838793624964970626202310242568751733993277641491037668053363442087292464721663070439319048450871903948112199533356811493087260640237061370514500659530969191422536469998420632295072439756405030679059674717007477669525828739683052453809720815901849779308694742642908900176091862045406868039564640201363613931690969889947623786947003422299196895031199860356466200856307964591784794257148169269666500900129875899143298378383053284943332316964867423824512169218551917427795898071148391805143770167360079672687687559087843118271557989782186203402454009686320016688969326727350880643621703408704219979525379936805597630414872570604810409576343286939557301915613205044660932700084544146871323710015203111998102781702998033191511544936197769867225145621498785360268616043499120110686718871099218319184223689461477398202057479736871716152631633290094391831224594463922698554324584518042603234853208819679210577663114975734830232999369009850329564013756427474356733125296112462978189394637775488610878359776089389468321352687425195075487105472574305584160259871375827712186900549402545622179677688285334326005892356310467864740771378302065169982645949275107798330789317267911652982421946781350201010635672356735469348170642799913388532353779819466052371155077178933624375673629843332904445943322382077017852818003147057797948608414998551719138252786777846910279981355111108121579541200981610999253260697676860815979756314727703312947309914032425178324192534447557454867589120553956739978199366123529349116137821198343534208928466934870226213492126030588471789851150114477366880459394250788988734029417833711228217292875856261219760301746200656212829328278134458105646447958841143919751210794197161484341441753731279738508352832823148227695973363772651018776680673261193615594190197366267662737147147427451030517247024546858868056559525990412210626441726326743455561882576563564840986916693020518975157485304770585014885754812401834547994173937240210307177808001333693143349678136088247790397982004076868906626030103056575457520671575896976705490142117890663711737372077463828454516960224807525926396662654079330524072717065358830540880634517320973344975240037730569176779799581333518109584969300700338758022507689137995289443784509308663058594761806626633100321592001289191271528324522789745049384879451637030615707367377999736858524984651624216079313686482809514329015439124734579621219005928782204644544643273950786477257065485499137012086877264798287410052327117556849468245285455668858478517075099305864396501542973610092846409770657478501541847305731252145769738699158114789808997233083754201059621222155060537410075714192140771000974858530674785346564403347197120382798410308114106022754710342386393168669176387720332679749987337298262486808886254028011412913119007355474711496533653277302550860648081814032334795291560417868475178290487596528029426758685785957475972062159517182567706056397014530482883604398272091111337185684115484017403510801878399501154425914816470882190379243448810338770405446281039628527279951944558643730760482799651358686133032148745068824842265100374319599846628094844325956319152285303003570160858423545703753109839682025474118899300776211996565895911796788670843583029408505712568152843088996208558030855406286474751118199569661511496904675611495074219289591290840314709920775874032411291978109855276637993564103515335821613143780341155923836266903541774241461986388056538848125907855033040014369177056385828830574194579530480256480164740887218129170230599398979511006088105011346426984338861783002405550761235084285122061335266386873328443645305479879191839439152234882031936224925739973008592982662057659434038139027590316946606915757321998566739999190436986354207812168294842917598033805051967488895859762786039156101425433415656859528890081836415298534465001796436912813163534695770581337957817588763489410668562900801545011984855765064351974571189106357408916589785319978292866744247926785697346562879747627136032735339071647201456330359046391727479524034338275811849511765573763395276760429246438140314189535071221926590799829977099262187182271076472179483510297167799170756320831067983955563015615968338015093293627753985829853842294306368230682648667856360326136029584737874457592208324199657305389637027788952738433687653057421832051744471633176671772516905634748149076600118574690632916142167824587454593180931208219424799570109447797920256623965704512872277703032249223817225887201618470465031766822079617212110660869989822575814773710393301903137602865424659979385290129657464797799679107252734588337405577035175962479680017076760675729913055583913588140293836979601869682602361672350410390975512626743996777880301051801670096722806765555965494291168366702036808064166664764818518643222762383622423529877292318424712483916433945259142243608839438946847943542050728945769965671126008070572541852248495442481021720787010677792541754295231001385116878179987285108036975686184842135813797308475685742618919810570783579474756830242159875988214788691482099191308119129879821890353934626317860975433121016566326608872901547708920515836350534468506615238917481420356939874406632462494639870914929089516524779390182127893269087270266208992677288902118160610680390470008190205035776100896048669320770200574863434628477445687389635988629299140398089442839621966680453749862049931104853330112382450426803699868947377346163721455933334628671523930799105890210802582410852183233913212983087771032542346346508306073120701970585530224557499456935809916067554890644218065411415051217225782451052205115638976222327052082903696906801334296957028942327624562399713743804273654930793060914077961641275344376851457861921900657167642945788487971952760215715087098371560332512783312031092920697576509512151566573235998354539829174113444861552485474416161783815295791118073036988723477843245765715358823815740395910769441838732519847176051653787685628559447155760546992367653790409019407442307153587720428609133568077419577347643932373564070029077464756448065537916159165609607130269045207978829406408192428476802054685031911325815465820587611574391789288533631144394001070579667786978659222839469218527594922854851868198998499713841852248831060978420419512702929105049626667720291060491401045884901385644577109181232692114261733896469217037801774769640607335869151623546259175388885819737629130056014436677699968365536662690858173511973939453257231613852100408236413322917470465214947216421368704614191919978070523740123695139438016091676116298845615437992108033210218699057708415915275129097674149475563758718574342257620481483376629565440282846737869512964687317808525277150231416899051330702628389596738653872785727910268497298947088559622350932843220207880183148344595828094372670700996645332759097072636314034703303051513019884710605081258407394771805775758426742804402437274794684656358205163513075239162441676898715441691964535311801613816040875697210290467143713353021690255020091399118905513991272516031630215570600234794397538686106138895522245603038948966750926795640132099135918651132380908922149606432669623308121717387405338504753304737430257942500610543742543564059987218169195802964033100764338230688900014602138033869455184560204390463394389410126957239939822377778938717627256001461270429751923097262767563433225307026331671231286002381483642329113954888125538519993637749628640982996813333203544323244793372465216949873895683749546264489087701358514554728596933156903724914544519265748257200516620234441015166944642921386799878504948448801392358150514035347638378894321357544357707487327295640705320920640009998630771741169211184666449850794685435127075619759591070775481394243928222682166799262458264125295276835869979406410057797228084602256605626747190093324017671212810260497404287848156793758833634660249110420340719201587970844967932132338183169632232461462483280745883550088464337771924509134950284165701057988875494349766121404205075321505472007648749346801107503067887795598732292028690345450080882515430836360020551704699384410585260677406924884200420702891156134515282878831602917593247122021083013455103508139087082473706758555944287971553038719169342246659286550265671637867815490223443260680022507453863550814297874326916144272632866740385932380557667539245618684423053928332830817840120210158920998039338491550674894554425432173882620112439707006553608940979250841838068360536840591113218474509046290167526379454651994526430745824414623604648294143486732403484267672796824476607693826924117708791594388832401386811800220971027054017566849902123512134586467387348911958247286697416835577467681654302304737307257606766145495442418750428197657997459541646014634705889955669748528697053662595760549858575943874249698773469585748819443323474279904475808397557249486640567814892216352758304540372859158944502932367088335101012055982266175913942041895515997229678678062674897835717554936336063591720067118357492524769992790100854812492183261215245044664223825537213968483469635218151664976449488316335390597348156932428650762806918036557510137024657354462342550412141328753524784470039055914975492028069111819245414083549756094540741183938927988517637585192748747484175407978582544070394657380944904853785333420287652452926425866624620378698048418032364107684057090639618259296931309847382490095886650794045484047963595317206303281998079259154644686733416057911585310424243424270498893025182878442395286315527111529796018159533438724174020776830834180362777322517117041205085981771432282330483238073375283577168749067875844586697147131976802578464673716269280429194534914006544822063189579418947050473662435407362353854650427739162420833085037883001183099206032345192465780351574379663444140498357308317986932143658998322944516113391153830849746526578576680225096695715760765169485013255543108784289306851286005455626465310963832622076869886432706966964847027241386505554100084102421051067327501569946826338423711890522388948335890752934675707262861196364816525564065825649568327300357101221711126171438822686035493689700145519773005611773272093470027941952903096312904475859166066751060649909587554763786207496557893887064936869286970018066055444532114726905501064607574781814052950230204872227954945619540632567959246687323056493801610490464179834700945567981150677070128991897760358253729184766829729822839260789088147915583212604671651716718053816258921133384337789969592849996948179674392043143909452832616821323576890470655947829544248247887899219537300384090528904390725865073076551612483215377035924943833645657337914825070401392922377331870656972432127969686691522009211388867457893105139266050795303520615246234219010761859322101721429189075177420152705863366602410201127441339399893370492518888648792348033691139032384240262063408921418222569393100950424136641955265112472139947656496843703171951863573920037916497960190403759144207679911516205588457297531225486732469977897382768813701862060135309613413479623660354996919040483573318606310141852151762146430465765265045806480680991421387905324833094089003977836999745389912608316139442812528975619338334982997180231678283295579704365444923043852620831241451624057222535642520889169318880955701899903733588617565742615942044318453297644836215379040613430343332145370362280317460869840428545630551425222986031564760878732119137903796258055162358252571817895343561993402149473721101444547768096610345319658374118108561623599959524848479797353020851368176056231199262409405500242277586635148834984493632845504391630573957430854191102887626040248186238620988483286754779097805177551648484605612595485582899774678388358096758557326871822843761282048716834298156652030269192831335792967401957770858435876624887850930943014534551607958257433307622012473785337917686196248959896067715054677171428908355993751160257739786017177576818406771588488462440037682414823276558752716746732979267175174167831406466048391176507761434789179600859820370886085352411252139244527223649001502564374647671167991509925042107360751695964322003834925278878261301853025626334767808931130188596963763727350059607298739842121117848041386795694840176067506880265111186299197856684558131383606130558159251575853098190581114164015495033496794595631808235427675856053421259172983942762504276749784124931169457824544874084420793348756864071384812879291238189854856688668469629819111557682428738507152642300077968712032060745267481346335773133254671319381762870356865665522871882045854679232360070540684764949280527376186951836636380615338858096095356371088460078867470250388685985704761885266280253806129059491521780776791465530837750629535398956821606437634936408154513826963600588735790560951351794475449757591682244107775260029992976127572562075778258729961152657995524314985457456916323624070270998873176132899153522335662393540356199307213173506838480571008773366954084769721928934864291049465644353427083908074646732538480838699475699194107037666687776506944881347024368227443682806923627525626112499195257568522284859806768515076330471576869152869850022675793097011959345296231195975538377030501032882046945204043069477001027812326751823552456890670796638903525151006954404843502378521020378073947198579205284798781907700587673427688916647686649205665042768277930389890374290582765760794291570752096299669902743368290285887539882496944281329345271502096858009308466060994874889365780144348681999949564869981748635119367115170139322216835792486747752636604838702866781379118602378940035270165371828326232543357498904465874669731651433417836865735189515316536636642610206471962020499980837071058650857738558765416469004209430642327668891073283916358943730992211747925200303929621093354434435842090826101614987464132419166270789333062350685775786800267054587039206036338477876852054443286065383737822619368847434819897637946104901317319138042752107995695299797755426743526407536732711263442439036328100657917843507633515266875450540254660432792185459195634866622895533437300924006571900582000963190502628361434946903025980344504077189256115341104518085419435583307161481875862205757153014249925232463922465871386494259943772955914779356470208022113115049039805997517698622456048794040337297139985854450496238449033304863349282691589839645952286215085510909128909696385693199429485623007480565387045831376907508058576164895424683259265550035488584901576913533582401648042334132469206227993334521292708927627661243918064043912611125277936540650762484008826915874005169231630604572224752332185411823676144182537248500694232454141661953369592714829765618795512585551456559960586322223101623731393829644301261612380138829932598608203440284804504785167257941642718255951248552012174544805879561884965831539070821478662861569457944679093353797062352249225338282757667771142886201889623731110911343931055389899338138296178630569964526729467592992053557797336840129880252319929208224609295273849827716855256493628011827127246072302403473010290979455014433295722316163339837064960341819822829864805923591498753872486267754941681440999110906844141890786452668914725001642261247816935748168739886898907725335860046679002286733289582763175964759360700230343248730139050958631057388386775025707417526806024336506865885222302529062552691575329310800796808482102365777288718025991958529943183839674334800381989286510294741995746859994703342813707471346149242500521610740356931622056888277329223313242948567699216190546257161791870278751908665312932284457921853817957968995357771217043116882866725662543460686324669143747541452353974356883107639983762420781847911725032430497348951184477049710829793163414655950853771520190476652171563114670755125718954963561626861511490687678465438258580061101867820942419651219994218399446591177713129659122917469537923495111271323518172892153319555058454844294204814874646012786973536637089452828079583899993475988319998780612220757865701502376195690473857834996068118841880282781789589228354935039943531325458008428234125327496011868783566058199511541247354281696409110643759684476669515168019170592129312147268769127206193163102450748427246437608396659050788830151532564420409731749326595583496471314532230043062692439868924077042338820799525142920086696352089726463735548741147107888406505169390234275640707270736118690352552180341744982734673670693293952337058418040285085981370725374559794104450487079536617629807547114826423155606200396489275060724828965837571424760781604819370778818448931118861104140541730709379550408341635061714297578927247281621605138621278541976834839942247501669478709583750921136343115113627916348460668581134803784972896335555970042886752660886137923820240638652929526681843777435622703809365568118070428952451447563672684076427403642047239556521664854645935250267556639427232640208360721893589657853349118667556349119195633009991771895107716067727336527280593042106859879427450392162797492380569444862665998744630845110581596005750235275127185014944522800629641570817075817651835917006077907137865747518480554129594430688446438161301167532445542097302620119329658385745270230316824157879939137279739341694945584462668708037176248887364307340055540265040169864187401397441362691097620565075569352108639942928058113882093571354977454424797597126775790361489016285799755008052913638230989725853812399162605820551484845327131032549580923654301862131075299694794543598073999611816579539745799564193431939001988497407136800400875263107307161879533452052522123485208756520561544403106595442234189972188565822059966392310012330133856925477599868868509155969378769891392387202138696449314121795956627638722061317447346514192137963897039699254433274538847616534055641572455722770283310310173191545908815530675765082394353021697421632793850727335013833112514356548428471094439133124559279190034821761606958501749158967070055269912649136669678252185705728505634250056715889523752981608368107005722490538500661012446364979874667534120992940428730720826179817299772934030262270057076255086597907447210217062294737541840803468390452911966864006393427376871779160528584686912543222342165706015449122593500371319896699710889587664393685908139728564436360503762429101065094840210453093191968867431663112533188171415412403159759509072681747845207241729541985830118983430570824030372197537930873001145907895958940398195433779573502026179402862880639084370598773560846140734537089567849156821745478210900846063852720038456470829864322297607710294384769954717063238022335273815283129238593525427744421566135315933776354312311816173355915132216343801061049696452590602142064234123959405291619450248317201648455290102772645896198712042653661356726758091006832078609131318819357121423352450570819207918584694112074984160008189194649935840880131609555766517422294334327173503977092494981137009581437698895406094790926995765850421004228819571722613176968507305355043352414249513530019908006323064121007174333045329192500935829819851477503167077725315779463756847185607147116910609559851757472510333094775875339051261992651920184491374338842086795286905309071147438938892557181401162173764318898291936104961781146046764660986637254331435601084729901577104530700851827368838789606345816053319868976865425040608349322981734127573347624462556005816352436915430691704202127962308855325466485686598112981689043021204925136838253072002372862812414292359778361494154981238174898432766219338180159777817236953293878515137344273733772647865458433848081089969915778075749398080379994402536674525083433440826912493262033706956335155519473131023101425418493335985603009300630328474059905034544565945930329369566681547867199483742625778760064391875155260012449849375675209106239466732940174151818078141052910203296797178542910117262208957475410683641307521422854928212616298819632650077542244667379830810673534875464026563790994367304820843557667367460099635595074319811899043453187178805446270785171871079931858708053623135483838920180192372178553045641279922203030691944254603175445659160412714156397255359163877083970643059697867558170986113061651345903523539696190673196468702597113840936730679554782658572742840045031239079029265845615474065820543332318835488990678462787337296884865413786859734055143536620127752649898654542564137010267212880691512652530182423213150492025461786539516506356536380779111404865314996798523128591759966922681086379548870772477932079514177253132260004152775094614260923136446956734529648109731533287719085833210502162613441257739659057785147408143620055814079656029595125935159838494284582636544341670713249615228752351162457947992842101491616972616579024351668651517058937337207537666778133246927429152415204792877439645035878365675075441631426088590994529432503573794905277737722723688847218261195294830549812736167774314538995198931754702403237480952725436810445927021600345215194342688796844812827669731577690036897643662763606927725050389885231658431443837079998872036818025276485735261575490021781109228638073907641207741030575485756821923289613817146726536266385271902165735231408884719386799037921642995523540311136851343155296758918704137146290381280738437350474754310091958561677082463787306229061588088623715294810185870883273137244528889691845166621221214701731080059468592742628905065818241321678800670210357525682050732056056383699727604219934170234832719270091221168066881850071661863063581814966504398082469342829371786614071346564793630827013087560844915260521892077836820061130068969361194960917186979207527285710400783905821369016273346288806149447947347157520116488154966703458126434598290142448224246398351950420655849979248049759021092813188792507033198670213254882929957184469195525823994867736984652072498600312379755100794928867289565795491114838493576974377756429712904357725901814357576167694239646684186797574357044163471337088107172007532290634384948172619710918212283721035582000368920185689683752611692571888848850334766362094033449368283604591273987375700578832407748474445701317726394829183838939300192010080833015770464809311138573192897208467755619466251993065734250599770660243068079287559708821666196884883828481934916732645518510998825632461437524500885045825287308723666292586596929523904666346923008453650311637288085310662287428590089027055552001160571307979180857684030511785669494483729105177809030196902513843286693987196053097091780538093658915687070984473647862523891636427189629675371714616960686292526398745762432544448043182182473381202749138697160099013738322181540707109832966582659882261545768165849470230153726442013684883223780951760494449643538100919411851022349385986408297843844157844140423869133920883713456370163715607162937733175676854772253650007789097998891145954392155548604962980094927961466156972199634488851583437985384632042486246992500683007524176510367761538661572170867060826508539685449353655977518624430228218607057514483373389303586594871280849511236709175754525992977244549741925665996199975518872156182314189679789050658694420873797782518563953004508025309340862734003927287430933434558645930008923886286585068740426510643380976688581032525413337646957825388889471991784633090297821224609192756374008479146098082297517671920907905860185112594818657203614565354603593040471360823860231354541928983524919784657815171688264986108610693404748564403547404337609430627098836562267348609346271807256770502123263061867459151570078265919989044459491650043272768182670048334684180882797109167992503161803849136665319734444941515898638360017295721778326436077512485542561385196314605577639620707180204109719897277512420724846746746929935298065485893031658039085809409541265463200745368005506818499103250855550472316557316149098173496856091895728899079823594595617134006729109583838310545005361398630904559112517940501595872973490101193172512952294776450612094769202469788547408341987371378463923685624545450582229627077503906747325053488783558213675906031611790028775128240611028812850020109508073811153626814229507677484943142877417189049950705110506575441786107431361594494794403224764032838716628576413077932301253549332913523208301847332375097102679809974485706457698069279970480831259974262710792168857605696432399841613177983400295782464479660009765483465448441836728753960612771039471006613100872359649185490041757009941160057569196853467609832880192563171385853167904812083343778995437641777329408439950355935490148803741025114143267193704919494983787327667616371005235456965412028282876098787112051164402104611848317538320993033534349575950630930057413084849862141928070086933537105788272481128987411845411854530969174074153837258602889533192269839135829968501144430343328559383202380133885896896833803587894041554651463281184529267148777705666862633054210027101282563486644036606615753412543013505260166161400696675855608748599641059755022556045824417581140619824439660534161338863808067967798900809750669730880846285469926395553579005117176498290259968688063597940161094319382594057732759765837235470274068113533452611058541605677099109425377796068641299138780592275893002342264797561814621985377696660995477875639859071474977405950235680078171300456216559759903614823095158604190420506354405936291873166511936080115961398371135713882143956411177523849758976659898880632043424196289380513734040472995943570945136891540971351549149520243614040787176520189829808407197270636497351494233860310688463494243801778198326715498212127275646866474937020408961208926614621278577487298382982614863052752414153196920749436260629450305214198364843877422564456920775895846633879305345046001763801557808204212292745097130628219304907771931989374217839339366551239171404801635409613185969288259135318983213713295973079938559516533213368054386575260967321296491419504975297107183437189961313411364862457177370846004712766134640837061983940019716199338200873556301557939193177418015577470015924901473967075930369066111911820205300383293143320463123844072062764370697413098876462262429741633842675664077388087100992087821832922682745899020085894400265813381703896482817422850372800431941849759032682420596399295754719548467817499794915921411320489908451186662664096416940586978484837735500340626228984260039135114138212763271126691170397788101863831102432977622848843781307885514628180689927824246891764508987598968529303222978468029869504352131111484576100138310622688302727591879621674098796846427169565629105302701773810531452988699268624053958032597657731271139358403484901284864871698634193726395491784014844239526331199597002910279651867223894550302500794466566379514291086808160471754592388182211455142646066416222311425074173808643581660066905680783264440895852708169889234090187499917212256273292023015095668080425455199686203530724450848376553360370215150346559527877678877524743303822363795894719806561101494771547229816612831440819303074760016780582760981392058837992798040474541956341888848340406698412378879481236405317795224125140096748698923443803467143631955351771432552819088202919924151121252657127874223475915237654229014371997943877661551499586510439340879386936367246915686248520579269015266570526387875848751937243433777932510282539218986645969261333370790552263572126288159268846699969417507045099524166861671187177017088013794944990767152287435026799706830312035281149750325550637843572438882201045916295195109572930472694515441481789308909979655901564002210517547425751633626684060177865375266056531640395219111154334341043052107280758826462080571730707217874798253893330944395194818736441774972225464621022506028744181421621406259159782368299339754077676296729657315519730767405354252724190632394960891033268428283094865077859889023482125302925843469265067973857903734046364039126989009210540283759145629427474568026714386865574300675494099368914548450317266172144497976186423767427585096108784102252616296708989278653173673522387629349183580242967526002938862476985236549747606471126263406064626309296251435316202912348860104950633142533020009553961829048476249178417245045349947111941129517204287359455643790680426818115451195802627008995116694891448836188507245054406168155866880595554928047321049683713286553501759867329135760347437466396970276296489219949097668324221865081061539047825682907727860247636850398894524298981008227015911001702467809952352333777261643915432934784850549370211116139350782575719751884035289382780517746219330937929653915134346454727506433222918832782421606775718477342527731811463791968166864116988415370966259561002676231420556031535427741719786736939559782099636714760737192114478060317046726715034132923846771642016837076297763035117870536994647469280845149962527533230144169693441890750386006142998192253697228965581265022034092026955315508208394694782309774629798247024942595496259411477599900401409136277066020140299887059141180410355139930772851451426357292883573972766018576931841608551462041994985351902230909870770830772838780041924632340427135772148288681248229014326673981916488092012669547817284301993116626530422855000720092661881856551746052268386863397284200915648737387518931386038180218654907390750388379307396875175796643234029625425772371863680634625723078232543188762364340517938615290897895096571548649799818731936139215130428361916163746984682740084917007129503425636031530398984066909073680164914828702518518841856003798745388061048832564234999373682078764434560088066280030282780248258269784425290452562822507099323942334317304692762898404335191071046720371733202097528688117564205448724555720717732028648035579370379002618560087286555171106141523873224836553997472574990801502828087929072156558127398036100750628197692695820058951631343900631264876461950699534321469763572556993910281907867045335732913715894296704289983474765356441219858411484313200645214640968311636970596508442901949257885149373245512709528253343281708503733827368028530448193834035759136448036104162279966417059623821213387591902372741114965146957075153871860145581099297893439370271639680987088063150709711615103355663354186605525868433405270961389817986730475493100915004672720888264780740471987212822897286316131280936308443010341028790376193260971166726086274968810298615260815161866614521669435297878582399352049500269580109201307355376702719405184638452730645403679993842055974119768879927902769435080154439333089805001925163511147052867212778440135170795938158571066683570287040653881432254520335054105973452334405770585759405528397780102339811356803869971147745772444899361974213913437307573015922176138691211973534362029156051326265048760398754637514401492487497186689742383223503474939393701413618001769622522251163482215693867611460261331771568722840203153779236784711244062866690713647127235214725983569265440201609519274125956705339881219868608918372415729089443652600445432190809119497037459298649803230848565088045114615702749569036636779531667839052965108997504878499876799108623767571569187459683067822277600289490139287473674329189627633156892152888186889670052776469967773364473056779870343380402519894672092985176359836724782943524618087473726312118867621438850108729368222973923374185583861868251918832837047227834871364139500268225406056868633422813878091836652054761722713710052216970527657498986767236329860248279839577572830618217601570601793034579394448267045434005117969197256037541685869776142442309273805802275669794694150592321318825054765165247700426592380726921175767286076993253363794823112842312106330291188810863225421993193796146224275973600624756050259448894178159381995763098352533899585175556914247987507816744247344913644941743428120746835948725823917403500083340044296648832086991526041375386076913884114971130569927873994305580093730365869532412459282080901887911559167074864279773476709240851084420628709413486113099480322630884627863612381125201999945365751430242930437893631009786985176757655294426626153503492084831174196422484260594491102128656868754934408323233201701069394399350294902269534181594998594422652181151416571553407287913894497618127900876347313569621020633511591704036601346986689283993581865087652037781845590376211735102338748913519507807696824473996142296533414136229717411162069666924645123847468055517708998055584899981732343326528997429344270104788539607872950196087263184009815674081599366700475316578143718320444650753530138128727924915490202963387630118117047811703184442793807889130890170427593281405531456966717449479219274463811666364585076299233799206679419619451504365386724167462481730279996097773329451965187384975915406329945969857303103414543849570099864976530270037593738940724739401658897499155450949608426383148989637208236151188963137151021115621326647162961373288472675282282655160181946629469396597916136591639296018349994537387327423495064052944367588378505110116789866126969069932077813595918322787502479641992092908611200671339173565456528378898246128942407324282129021608669963783386576339383109641160032373775335844871177784124561806573127078150310899899723425267113026464074692763802372235853806300029448941327805361158652553173607422945292226230168465266449746766580070917954390825246735032960328754607564427302083037549131523715701991236806477510269669842088172370103003987049458500604534684851396974838002414309880002693498365837118731302860324210296297078197161937256065013822805839867314720083121755276329493429407225450360109922259305152581185983230520017554823588371083109582075677215937197295478291345446737542217911770863869593887864867811974594768114837972863864768209839192179131482505017030406628479682295501936984342045743476585968304644200413521443648075336042058152658457211705557374812677571619237856358419836297416748360994381593106323265068823473268395930909291542331830125257586639390658788695488699573890945868654605450533967904462470632115827233729160493455703487776192460473340619051746366334542263201521670578368656359076388495482628396104771562858889042957481154814766163288122042788858195777929974544976751165514352823274297369767282814553386550524228239036053795613700962097570898222157953303394736810969128906351336303616004861620634277066203305498253969147530095788588159670869514076772041747267832186975145099849724781482059353742050504946402284885275491422539801091186425140211590852030311835533867642291754843891910710554506548566542796444726051668767600454183747627308460382831819654052347639268361362211631266474247670098169727550606077037728693022341394649214323853281601442594294328873909197086159989463652389454552776460718888323096774441793630400791378897815848813745590733929198612651002879325668056332337406775267042589061708899420730045788340620889370412195331615741796987819976335306744689143674830078376504196693351584691935212412744293059248137174148457502445533890835794183799396678382664021303213505256295621435538118194308987065249276045283545091382084916364681444374381907663921175078315660479574019426558218403398197157947729912671819366769856493446570699558261882060411125047120116848740984703516834602762825354755716582899116272905994706038874202504705256790090938453046113739014060108089821728868082057491366123768255781806090077608616866978368527974926216784004834635975222459538272626206678628609927477395443967752704016913610574745877517925737509066281762339865482763038491503936033211061094049644643823355999350495430708458481290705624257555760922062535350566662076033144150259745924841331459712474848950205222075189838369657677982663098958614994900769913773870058774548670830596880099591877915040863105318149667889287985129923744372859351471869811229006643325124356053155813180309964143118038986700926363069595875045879597291142991406668768105625030737378293387285109163028050416787145534950174873643920309251945857037946461269901574325766253865468673020555572917239653570769892874274779601142765250602524701047925780279257361850315602699284449002137884511932612024397565696418329212018031183909214047809842367197888357981811819666843487424720858442477985773362660251984858625381323858199037451952525132371493727380416088353605910483967107926711879527253104829014140685431675632584265920529727903738985280795015165856224784532073307936141762328238223046383416703978471677471803694599558407861059160029055149198517576017928713297082573449144853431533396473840439910653218342529101320923012629210797109962447390780218932829918336854622173355261181732757312153988182554919677400111030161107907642041432852661976142274091057745437995604747224861922965857767869325888728536219806118786232226239092517923668646197816875048090386847162084080643705353611315886021591753709895178916045960675344387158464259630089721693919404110854476244677321764935289109479637376080061182655069668138849721167565211290045244100225924007119514141632105848463459166656510644146149056289894307492857762176521699186952499484726475698098618191336701025404689762790380203958118618187747757435080483967280247403575432736648174056058701931922173496377366842768689650296311118857792815158745337147831502246087358827536947670871103048881368041444620663391775648957666042182493432180979040948756473338866848233452299929539416106393199325233139637244925652343711861265341269846030060194352692349956218577663706231999493835729003163878790684722904332902199002334428398631811264138569033677676635694601380638344004497393385223656491640591445716145102328391749191067572652160966478913866401469249117021876486521176161337115569903522896729427114162086805284737379871786730410655409067511457302821390753711488286065558982913674664975015654511011886047033500982371055680624709646686267740808601912498614118590708950441036599401371772354810818010160694664413942698994544306761303827289136459401162718402413796221310631908659774192987726953527830456254039319529177013514369835950123482023883216402635342837152720794239374730211714129022377886176941834803160276345014669150625899290091053349068297165271450681214436457262618774280060033684395927912791376688538960627402694890506096366922583426774334169505689654591760417285747509793059194482010234037868187744829125866341054988307692934621783353192787268932507608656671690741274590812213913025562563801749214273053425832214568397114425821395232645770348965026621592813355293303948822789378940000514462157518901374655685224716407363996770921176283395660708256218108875278343559479495554749728549360178292087717127691923040928129627306779018678910020780384201503759470175568271270919398682197422689938280571483539830003582748226747995385676609534500518108120781597937281480364578831479552106372359829943335139217534507067122502807515294023762828556188586421995240260818866686704119490343624038903860363493513713271259078631610714898327530566348205366323653282947595434953073782215452342024593728493026653244840863302801008660402621188571094569406427335630979372661942313916535558001155014620393709850517975880735839781423175418711762686783380634934385241352905844348979089793477782899762824474739067004539952575785905881711987646955676353720495847748503144576627623229442977733294241038988131643981055663762381086974623417820141596024707259517046199117223964587756760383807063549820318471312896966030072612098287756743534575932770246287635535589721741166583991985604225214510647901189706124986164425040228096604900766882624118989884802060644344929361728805924865562375670281842931494962658396368169995665484381916563025624600651918300682307372075928858763833313864430840470607879070675972021646536969985745326739726705176161739953572967099364636779625407491481893716770356351962361353581723505602437683236754029668654424764604043189865064777951506819770885404334878835931855621961744628617356834743691753754298316005506158012198547925995759357626799350513281799911396795518687117539659608873375846116357407099926424341005322570186676888659631741496427466248164378709556286795620000840737706493116573719337030649139881110462761971599329525828097915536848922694747026916811980958208357255652353033637378288142511672931002174215001213257630084480262854167053269425234116530909345529881267715963792187216322577157497415751616566582178027348269107386755365867607848625085003607157969178327665741252482693987144537616082153698612401926886778232034869623243997340264215884113148577191992368179244420919677198280445641617229252470334576581133104947657193748150957623892453676963478646746777446159464664795654640011098164193002339517015711959246296949030981757228046036559853723939337962584674655544586626963901876687601113740908149446011826577060474258608796559405900164216814205400555923056721452169603616368217902924666394005462843711948132537185947660248737506218760896537074164463009604183462685931517179527122920918596446963022488808722027916940920642327160519738361823207195510911916260881050705948726177753799276522558034059802426200212979942309031937287450490904611191785668762195798046917833291114218793321547207676860108013604309363445000888787517959448629960370524364572106630377345770261839306257110484944824459048772383860447280536666924384287437829618146605493927782734798039630530204756871305597657438314003802902101972456884133319903195455583878239945260647401834954001258267862111337933349679330996432238409545070337972621069164998312949063847340716752953523741330689542113423370048025524282427346464473712442711077098058744210421300592794703196948480626637234969186819305135461505101385187479229134411386200556276113664250462411836518022730806489439329109823127109386765215821630521192934947437029080184581906172620508939333640459894942055032377624609847294305381682378881764172318467980416347209281842958868361030222291016195694881855155549476388488250179214497101113651278887134091371440116651156544445913371654976088050084287203923477046074429840051157121138336372769329389997748193806509493763291445766449218861527506886062948194359709216749986572190405731032698052536407501182384540674378310033479268290376607360197310238844276593595643502164058137394434244957735447558771472593548944972005330868134289800610215699805468873821151252912533918846301057580172789725978058156000572528925928794367272905250117415593813557042190551051661198273694137760288675094818269497171113242293788970926595432370360551735015809009159438486161145701182237029959104751562902665775846340138673446334307544962571024813832258232536266917540190266707645851358832295738102010072021187624771647893285835759820660790796074421012861915989259407447353560884586679755534329066968297410588512017482150672357965653136617898284538259785065818156278044285967689098379322586976954078528323891990535743811419217798675131704168023964333421927442337074893117071968848302950420711497772818269634513324865424385910963848596082407539168000379368428873938463146569933805838317270045402255452555605771331925957255344180103280097832998109349841298543899233981322681640008621903564790322570507855842959360861780816172236102064470783848924952068095157802917531230055362939585254955998795681377178381333314801751685830162292254371713768477169148835008033893387083161879045325607194161143543144837846370072270165149731476757507405353177163621678935798849469694882827971505756447998568698663370011231114308049346919116213791732633955450714842568220499266182252711973522121371022723561554243462163441712083540632549784169988772055400296300089068256025194050129072347675909320150607873099301510116640110035390522275291156594365583001711252897752579104746769417779731787318789409325193313932170712612352580804120001881266923614411980362995284786104090631821211848649479938278950299726890721078252484426809834844825503741190438829107380239843201215642202789727071549455812583235880936140818931418740700687045976469455956459605911319814293501992925347360204625610455092961632777118405118086609904516890212605728545705874192930624291982384462763346179519283387721123042506256321394095581878825311029984670314542920060980345150110219035727664232305418162183660704773559641614319568284089288036029050799713434704806026164846052833596864104775866737088299682556369442404712965008879092080334745304546813438242686258757049933827365428850225440546439979664990973883066489785751893928722535417537478400470751208911141916128842850249569969565828087157843727550715682791627399732968826782629882460121469682486265026618634814084678369248182099001768880030009569015145313083041018723567682129397988008434509132973247800866007540907226747348869438039993985580608487116909591196224329876936847397830055393364192065419446603015843671928016965214112157128664479167725524659896617828116580005890031837491189466072109136329910210543662243189943485868058156727025318361768025970138243915624422687925343538244065294668954373740467155891334459500433399996817826649233333826595409588796780421935000861810406804247477237768657686621424788081465055204751846294614624431134282425617880351661649251047955908175356357153767354528527466864659188219529425535967425541812955847532533655627168583806744406239212254789051750903089634683982751244969743209727477873722400204965849560696318319521238258383081451976985315904314022267118299568946653199319597305453482848789802660579483805153538910190485292916842322862350900160502274966782866477663965835190153844531448801608890584052544026802739367517025667279859688226315516806158900511718766031718875580949699991887538118673269660566021178233486438788587122250920128192568872343359266327562970047623565861900973689933723816245460196512347937057355271886504913701257978116084220294223288183936260324959581660203529702537507715364589385361650526906534645272647582628183525128405952532864487245017762646313402830691134599300137381714477215712624836739633611724317480352353867125325370212527660119892870187681276195456496809175948549625364524563445083452755476903892652598850953356374626953915526170485680839535818434234308194829853297552848931135656101340562911069826451991460162501080541560010684190813680957463025251147012943809136390469398821848232031172276940280892043888195938433148231906404684714740701268415110104152549144418176275467378783322760802410899738742291615868486802544344088198977068719479061674398486193415911957706071443351709842990705094845789969700694495570353276108516031745810414957760017541299929852570456439631322311008251430871876033240579272770770883771882751302119531309493049959595061185873892146904818655142446515754844203689974349855013203319408945906201361455434769784112101239859737591271421149021525403788973300357375258222985369374668877029193648401522373462596450698955590754980976821907950250335564450585063449534002363443362836992404791002584132709011997453606942167465288793871385013758410933709942385299239852569971032884764754453655576102965619899366036776693092895938600555141626638099586411112052825020602968150484086835146650684225164608204745839561252858982604370563836009039119646103830630764211508739184459810758373266500860831527709541343246057174920373034797655353753112293065312625950558452256144908721901257637683330270996421270297492164059219697942683731533698831383634801953360128754604388938306722906214602543235449379533176157677332929198396174185267978571728294924012233918674489092094174224355674913056220741493074774752621753390355434540589715137240331282723237257843923341806577456432739997500810468511903396027624727657893113667780429266170125217437890730837300889846338898216021293824623672281337056277686595321793451462273862831363692252798628154139678414147481180742623205638143469551719890829309516212455737699922400635063816234111340660528282202207615826023210669783386246832588089436360496132204221662962825068682653738033509985771413126191678664323465866471057022054030224584594179507938585082602251482955714580038769013709139641070364725540682070749415751435451382987707102973778102438251615061722428546702233445925992154080228281033669716313568820514969854828335136976480546363738049144798636014332570022837440805166397206894457107711130531055777580285133197554852112904688731765692844124516309600031088144678505642171188688260731636691768805631832849186352325973713991152183881100881006124986527668223092817127028197972611768692971866656537374930062874676291523298974267476995000519079508529554248359458180919012643471310475929411662831875310551719589639012719617938820755366063781078731612305279958016762096127813819434505740325823009904284434901885831201757095798478397392507783807236705825341323939647607725482374830393764642483387070342263074355571048795439449222102310420294207027430545435284847488613130302314914806202486839978237973262028540636045433496998759592527972737166374606211464942339576221764214819451021153557287947347157475247120319288945004902744275226290867588953288267623422445904331373183011305055585502205900656984598067214615974853676388156172989807612417912545722747047949699153264502825887259434123054854285062347968258869483676458819283611374662204499664087744070998053657323874304644353071308793498153460645390869604629706917188913492307370234460723641688137172357477409140132652736269221913735732828369233061631174663523930834760019226090350612598189300726791189293711161477201364150634056816676765889196272651525270809510157489997049545343235613752365869202832923341853107169977766162745725887735370659356360910920967536379171916324888732279012778622524581425723963225234610939203768356995084712006617665878166486808646770043021219576470755562190173748462459422191640493132934254168371033554235527294240870912927542728125396561130581529946091937978204735692755951497737987477434427835438064110764728904683184106603613507890653211546381471000546539066188268257505984340055213482091849793868790347010267230854159162447836179926314516900419165376427826051763527523110352360366458336769622639464200900960266673950210648309953127415551944318679714855562063227003894516267260472179372048314963289561865895636272810179186195957715379840614762563556182272375617521678249110676962770656731455698489038892040773309112539403499714735989209262961101744298136548265728865342053838577916097827152454832818323150715568461714953069434998312364316190153111858111116889904646571170254111815880449330269870292051768675360797635911918647794695231905518692073281266729049599285517926056356578885207035557560088334099745807406600936614060541504579888947230205706298252807571073825804259857080337024029838957188168339053660419494466195386956084410178267744847132005113959451073666267710041702811675720102722130721683494621040439145337686706236884837756287277886654764765370069022841518743085966168120462065992624798215270269062837402559180621785236242342640487442678639441246474802677092179534210130571459903815637662196225548542791794034725283077262255886219133422232219254726971138848340095838595177686247863784598244814971664240245438607907481233626380783215606240975882357844594757415851162323474556920154356623539679920196130643646180980152167023247680855524036908153839200295120097646618637678338285026763028629399267052565803944294435579048019281599227959102477888937547734938790536144122649299948383748887340567804663241295209947340170491808086112195648829346732856405658564352683693727780402330019802103329496967384325034382362268131830792147377101704644280817884422026839967408494738612661909164459458060166403762188438304978664308740858330162053305460962036070036213769983870086453521703810934872146939429671738042472192056579279752198213976064016947509998265554875966479090852907802147023601477569304429437775945666190121851573599310988088126873002719333076269800234539061471329705909510881218799814179043633552374884784922623237180285344412949159371678114862577547708389567470825095577119371704634597807876246305687981667740299538997737407562171324601574769809759468426180537450255984087865406714615616280541100231769055001900821185779729320315856866937076429057822612531314543540101129822579525275585108189072810159955838823416164759706874954665550229761067192162066448583323539984692031614111075415059143101083895118941527943350773382455047537376709747664453078238290763027226436307073096633525464765533249233853864377870930841594808610167241514200796441091700200049161850041689526475769336814286485253217717920428623357035430217582787906094416618106816015996526065502272033812911343649117377009899998321014320773926481402629513352485911663504120320512395053678801649696917871441280920800094356286933025032783954264293767823651923013200269641752591606949527750790994060704085006112575319566666701968178927493619148645852842466482306280651110863349891122723452925209166406655672574806671978809292123678148942536830773995155290886833185516449377106808830007212015730454386951364514676095919407955506671143057469851857056035028863307827858203204030333678041990329838862176208386398449467402621039501878580274998900083474719005056376229045980120581823511319814895337330191238468068836590712172197567681292997748629102672519489809964059948485779302944379122092162672542738826564076224774475773843375880087705341281397683939298914036241825028783391431697006786895493226930144835186515784001222069494519819008748918076887765459422782061332612048209681429997033907914462576372862202914212328416476486287901939206146059031885820025864807174871354218359279631675452113406029126023305888528061149065597869652871909015132495060273383350520982702601883476713749915450391341688998524014711765724202514652508431813382503104888158565755829809476187121400205634844775804608171980520987521650711884760466500346041765631449018419868240999498242588627595715317397517129004608576858025518913069619338215658561886024519649328110967292054157996605059811907265312237645256249223315772313711597617645800151123074601358725851876662387505387984266440378455619982031368437893044020408555040631204463887657067996548682034939073075729175090314257162934398286771833388235845985588275869323577664522482885909306871795539340150782149253623360629042454982793429079409796727737284617679811915261117531817976688076434130645778620845722565262728031639928519024751203693690158545588948808046175678479477868921913119247109017125140723207979876609591036647171264060302172620847939018320549267741080304975682819824575473138151556399775486613215964315456397260804135849142208551856869993847244259676178562192357160695379354056810943151858635018437793437778394741452388116463240636494435167891867034091304359412823926173666898026862464177487551215672627557711623327556684742648143278006963898238564663793624058876692945986062509990674295375321400852814988768478463352243628095326501321776176966318424436690185538249699938847529363818176050125326840217390664065879047352517333362062930116439129002024146871544123980074599598659806678246828339638397564377033337069354131685801688065690360432711874080719233964243815334650900988917251940720360255493668005028971644845147259757624051648179611924826658580276234366535572356249549041390154606574840819848140519921460823437767276361158782591397155170994430688917589013452218936056249982364508986126120831387449414105412838750645528436363665376046558067120486920723644980086779439962365949892131300139169235925696839740594008172538358400371763101605159753084882229862506312049092115340067867305259471227707213764129413479455735597756816934807382981959153539429884350069386046471625209716296591472125399765302447406537510356370018537823085592486282304315912091376396275127684105470839300243621210570942504247188254421292583587220206844807270203093614883977949836132828809541618683452266450505758914734840187786539548282331526953862349879836777638144989440122684658101756397723636636354308091040392617261932755159905937540050668843676609753479982043169834681037011113740358347659140173256001864340139259348734679386014952575082782127044591227025258403201534355052838223269526728106055903233502504819495584765922289858345830409184902833665268072941392298247104203553330607882591051827884376112505270914610135164620228760801279297064567796061200292625042051374220734993021649917120339845583098898518339166927265211128268256855255544293877825654216810011068292767950161273762826782217585753188374347451856586400581513410307507494433145891516093292221265555590365018028639644709413914734277835246274969596533585983226541199060846629425957906548420839094106989176060212634125882506389171082045975591570409292394744215566619393794283484196699588179234664545095868648416826772618653007592961928100283805939737053518761827391956650509593264053286376639760215935474428164102672853444014380478612650417879514541936308506599094808144573593165237399065418644664213554735331057187780913206920087860625609588345681062820905985282454202009688552312394178763413720258339170781768903278040216607471559623851060373197199357436885607190253079064261211414669285333452061973709879054807284619540114121785039975353302695613084848729478798360493212287841303752920317696343509765405476103873905937679775689785329428598017755218171056286146329856844436439360737047889406425754603129867138551887744238120135211303243456757611250275897447944048943937630455229450651581435796657912513272620236889642742554666699400371370941491671746198844596633887144770162666721059526020468674522465552846154873793490599409644720738572897812589450289541126329180625000636417365213872931684618747293023123012847365366138784648201707415592875302126540362979325295923660215363979247296613878592929053543757650550030015272093752308561814987146497223320274892353780637734532011830312951190044147588941731987455736186368452458661365398391142721987142844531093712625130154215064271085835979679155029119351738575056168848411472209522089869703258719229214512817002963755176340402685001123506128296178436302416248864568840274280916036487564241452802966461161422708206562477581191894978486152288531818808218842997314648514637172449513767018438224330846774930787902260662505688538786267363793356830032327027124502242340496992560038502214508642607693205362337254971703920299171626374884384929013564768696452276363593423414328247274484134968725638205861195012898302566706231209377472773138528134017415627919394293027834434559707256838650028962175359395843386160198593364845071535338794551291447047147809947974604309913622638424808243983424778515808526384490757252329733491447507917451188982722329049384736962672100051658715835206775413223474220297509725945729151630769128867161761151612595301350120434292524148109894331372656741680969343650300438324704073083810495340076710399838193231302277338869307720321811708510881781318418572541983337485892404565505687679370535599929598499573738070871901245445545944508412220607221528203713584646687322316764650750690639587789775197921180100440073296140078611283239522579033073604102999845421670482097631078130677355395130462876740635258576310606252688940608516217485993164129330401481797271244573175729049676003462834163246327918178110404664421996484001667931431841412875668705860781112444140496519607577239876294490903706772763365029684698248455258391498778849990802774665636128348136981308335460922878958578466863076255244982347933917651561390321960091445892604797089199075268675220698795781625145653957458888611299858552130567645572452570793328982469192627983221478024285112020481771234567847936953338404115806271923869702322570935489225851663802000953348986913664356683237727238970329796918325939319594535209893090909007736190346635551893350929785554752071732511561039681754409225461155223576329115490941546570260080777059781771653292977142480740747695168613486120037161011329092500810969290304687339987428689527636206958618199842861706589725241739554853186484191396441639245191919246912015022733694750910131869662834911470306209935574890356076742207370361138853502223020844544357064255068915781630941763666048342504747773346934683975550034994844920521880717780110961787826160288897565951871787982681915488007338643368080282109633454409725479251537867451509241572290541649984461709167167884964077328920847274571215138733862915595602363656790972094559980011034401459984498993487097461102188937495599937904254858190961049848552090154740227133856623053217559718200296010745497728995768329950449885534362310428282480206238483200696014409531518170532280085774204500441993440103870424944248844051399888077693970892339528362023746723875608842867468395746477441243257340884117571330954344615708911864488735172408978860762909948919227808165141339534402449881396984352967409794460221092362258467385194922100098787961871183413874682097318831824628280475439680893482069607131442199141938355865733645353141626694116058098004457759643281206303581024482673609876247225285055140862649140321046106935644679291957639399957197903241747071302705628298061881352647095988120910218320264983050420246373609846262205317830028166891467267958828230282930372058606597384345126601316710677531672539272663423911276143011556909521117391815210405235334876115243196773213222505013918566176180548357567426437999269526160900970031359338449725807508160356068302748212127566499216745504489538021077535825973144326573565232827846683783644098803117132699713672636309074302134118528730376633504675472846658522238930951653944960002913696242499163213725717038688433414904098094536495672286389826155700358903418848951779184244728295268933698516737220964419477807744690588223338208715615357876834191525585124971339228173418678649728833466365776404364232793100042233346287390908817422218031710647084810179994758917190652311072116145079649106336844726138730137562432414567705005107708149232917862247988555146673112680289067991677982944780516895659268549844166674920989407155537823218969933938520307137595453715751971897083000256278800428212706554607561727531868423727298696986684838884621717499884254988761818153987716768996676203059861499344169660317610605694429492045674880995158893356174066885852600983610897832475755948834980184764785768402325928105701724692369673380070346044417643180057810128805872970936876657579597161073810700311132876637246903791583509758504787521164603936265439683283126872961465784655162032730539796655566552270176937381554122704657131436287791515621730212715226228939556391122821609943955369441964680383736609063286554242371094333951306923204970418444056768267358477879194657490552295966845613539003885649730794343910206831102312119582333286348455218971814166293708558921889559120259179468316064528090851922592299901511960330741380800346290688555144569230907932507735772887631556727640187217670950151817762280538800717050660511474658734381160523686103443790895902118576105579152755106380179970868338039141572148561414042821198246883580673562130128104021179826930643495181912372209619398210721241003878136277962664625119609918322196390991804881432911463294944801312472183982113624952398318591792459476336289791007094279211065109853491791136974957373484943482540504473896311467189551827346504226595978638341194785480380629396685917703988445123819091774432791254073622281248367090700104648892932919389153773848908834728112918734988378073279657398514338031285667116521807836581903413701598029718979213855512469110970008995586404459352497759982877335827019645556480100670833126014959542592687510591190356985048237501801600176889308041978854764901057752001102126239633673313922264822570182593928549972430166732628152882569815693534514085431280788820713612834948430731141444614089509010013053924816012249123699003822070909654514563876695703313375599534224359052221718418266122432767988951062136036664179638162789498121931461906888501096447825900760261996948325314325647142239866383527800759562655601298840290497993575617566171067080709435181647884716895600788699251519039942413959973218930354622177142032209813614946375988313270911320329466692699610180364843434333012628451960542840577191577805183724309183303621151969811511005557661333958248218688451824745973252669971728771898487931438354744428873507808615019743303112835705713331504658737191176330692590086334181272327796494367427221857820788077348511167992397811946922678816094231045576801705162716596943142022022472653636441447912087048033435885324183564730344439104802941816200807815376192464877711057724292919211345793428260591431004836972094337802975691619580096694814598159147568761875718272614635033194273088910216884673790008901382814727921870436202815642770382267143271942726344213479474463676742931744030268457912972982675342804907673920530604112760344786390140309316964323125469824510266186348880455657281889736784167067314530383606614632450791059858550429851964149807619061307142114031994763646288340451130918482792756155792869025579124445628107131520389743259937036077120937291932769999820954827999339872914504502479003281976354682166275148022684364608382436699260558230924320059038666390985239802017342170738675311251187905066140100773904687263087038387605073536621735472142493227766462647647575846545177088073408722220924520394670512751021026787393640166402432172987756450561073647564049001419848159193633287439383315888366079029179911343333524511071930750719536693128399845896294977018755860075160033124966863025648696501677170639777734762385100951101402981168815551793291508767957148861350674274157769209843115632173134669924770277399666913767210551262342180689141876155634295217961659314237164055177372041475035176307393455197704232731060864129318106721188988897568057543295147145569674358454263882412222468202066981994765212903741268921036553773554427334156646706361554903414804514460768524611042156394580298832672729399201247945104753651732409702702669510774428805620230757771153580113639562656758025683708801464931698584653856770078020972493838995368471966157740308141611394245400141939508872207466681104991130424139770391403427385486057573009358688717539515773023082679216740252137593921524839415287745464088205795742647331109309735294915428217035060510387618804603857836594188373331653239696963995091095022623359896661550940998455669635776846449438325258469017919153882686843074148782173886518500517775577430214179197783673822978196139240729286579719317130542486492321800163532713385440783930246852268575745526362760937986400172230275241639970527723110570629913811353103496260443307536556034174755840433032081775482063181005815571104983193047416933391028395054354607400144474573845326673914782121216318271543596279796743427206806012352663011272646906258910344455837002395308133845097698738749550492436517614651671128567645898684747885607779725064486367819887366852093839791283527150388915985936553488543168743261750595524985959372448200649533239393226315544850037710504563570780288138521619758092936493635715053426383148865381955914708843018066741249889243445046022073335779653276280163842391749176980605437009037436120091416436328622611140458390815726651185810106531377617123857758535406588926135911647956819526615279286068885537511259106368752850053308797464784773703792797209547395818424904024761013671898031473995247484256104110934494731843990304929880721302354485822523501850886316851105284513007712298471033604941943922877549886099297343530035950605105377907956890490463647117214513655101781315549282005201854483294456237820655812074199229224259898001837726701494147868708111898568680216029410934178054299078925167411383420062301628066298258454529234098203871935394585195801834886354690120897624078993429903108694043167552984071471773247669293525831141042176963056154954148306445312493046500741393816180981668803047751692565104339464840923712231287846221472514780448747652649175283649313806443188103220061206526792168520238279797438287189244290541574075867822104896029727345122431215110703446887882305286254196496633121731978246124471148638061252733114029345538777044013363232771260131098190056691443324920959071649265496820915060479646585164385436486792781870244104501611143888338678576010788716295687769824060390292880676591467789733076712163278309180073168230100977005284742773029597638458611082040410746840534588776811944621227818669287902316436443811609260089442933989954988186820141047367880684938687044199781780224390939716101625818832239430777693405903910533755293489819965686139171194771699843718930243603186559550850842188940826146966390323977527081311982929011770228751934093296052174321422787016000776445004534078109972749961328660458358338667612581881576642450043113270286040721233049889854149150389804745737064345272567764344180929994888190336089814758138612386526049610654487848572132335274862892392055744212428791871163889820405475262226358878999657906215925858729828068758763820910612691830457893567562927162871135627353398184592182189054956419302247550896741663835440588625026236059409073458821907545673623750847461716089412242261822065335593312499952394542102261066030178812366410078430902054805241581870366424133029420909104953888534900036187261128645556664333735654274230538598833243235883591439611580793635851437537275980471740736351594405926906748943611684365662269473605232495837133369112056615151051035202935277173973763642605986811381142178625643513533177859965701381588344280068015673786954426433805495616745770846010802851220440457753805496301707051015516550430440689095614516773958066232883132358972958447652257224047794853383232908037276420802479696223433813090338976637084436406465632701115278943926338270816520994635320786115592192708091174039699482036456607856685950773281680304895845326926793148425236282765585871170313291285570278022643886475851165578690427130641590956543360742728727285854842262218038927839729240821821886830913584108351679487716722025763088490009301620467611712270841369700039465644178984197581328806844342448531648876440252252546444934238296168691617994226443843597892386333961659452339046831248094974200787327807161109435978711268093494469137868999940672313263221870764991942969499344337344445928032197643357770076556172473071124578651566120115133573529693581680798187833074690187893906645420005370328897138484939453970587932407113709623681952118192736972626741931150099886331500816421800272012277846778144352927378465603038028025860857709656286820013751121762940436675583685079046138272877172398478557339991053195822236365471653839182133357691308528587958857990402747813431589475416313205784257793520160482691047375617689495932151633675316227017909082364806109412627943557885803395206480491252225198511932895621860645394205550489282642260090509518120008535979277932255203887491448591263062609043058019329962332753330779467530889381016588373817560693598957847382617850823719225426688996271495125929877554731769041668583992071685748374449286074855594230194233414125272494583216781690656713204041537755919603773767919723732117859683069810268645672752527562979065143025724836646675284223774223264902719616306245172456229607495298823340175302983048696488707655690062611939069799152799197294994447578836597478320648447743703217392597237387919593011480973204593603835085039443750986422728467877436961585847013755677101448148854411431632484941949515339421874562702736346469909644775890324657363904714869614754223140795557542657282527820078038222566054702468619869231665407123184786221818811193223401485791073180977147451492787502097835602470175849274094472118340659335456820130474754648100728597464735890676840752088094539701549348003641852194341847909711616865773838847150805938978737903467493229460448111747206311178052266051571948649755767895536032193090388124464112487038209437835769417397655315835454466465548751966779735480107359319773490537646611048878900664413973036381282873760234538803213306793800932984230238740212155640722459816490981960918088376404574278044054269445191549748622844651764696117312858838132932117188022634103760693685873465441687665846997700192374318540108384459334943671867107998000834867198481564578541106395111830225351421802770922047868415154604441328640240800613841485508971136405677856593135630191414248663543901979731629717586112105481689559782715412668532980039205446358734320879232354243930369596418927188755835160262757244268280325291490021108812148170836029051797351929937632753042998535512029225968821403431650746694279300104564751437041983051718014180974934083107793881178772080418818699845067334174948838693266139510082003875990164154659786440117202601862812706288811655289699361870304125462386554875995998051860518239890783917663869860890592077437641222557216772999892787870170346304247883727971846633459640580888052772300090438851809062657361955221930043556734307718276814133427042069512188013135507215715865028690866065417611437147396132831841494861943706214815759280732918512184950238728302432913524899280223325543356525416341374537205955045773096902191841957962278896456898388216630973338557966472098046649703694271108304229893799662518284868160820415514655741617878828815620504109583158729250177671608527196307406991191404350757102738724695830148618273115262434661918746183194741993394333933466812322113632305377555205764950808572254070706058918365121710762001755669834837874947686722288518928499585964112501082803698357962559117390786691171622617616866898461255974364312002315754732149568850229632556424999169055641733743115988997565691360917586550920009608549394489076242314766673967227987490564684926531390288869870182430071784586278812305814735080905851367097992397103850722408112105294148363998653183416346580931770015422298930011453079724086184992268276400015700592199813745057315342757661759904384126271848187798808572926235557659938321503893255556190959748592270429391136046077453472979348282192435090399619494023461795803743014919281008307981995115222301259946008291474571174175863268362975762661026550472967713815901497447331631823967135059764338840211744764122281839838388105493470012496768473084614486113846693612000459933385700047946654715982353020516844941433915620395429888389466314744038774863249308653255812179575291940076173652126809222030831178388236590318004075685104667564284662968347265259580340353169008427649557944303350372251706510953515198389072256518761463130448261562026705656040293181803863117692057869792585482416613122268546767034400829943504790477058711165858091033910714565815596925635844832591617144639626986258851911155771724206348508711118461364698506386077757266312343700231676282342170213310585737118680943664935323360564367074098630947882953398155447935823146217461220525537811914789101179492804677609343059911137452305750455062803828888074396722859829584446361925775422777650176518571955417754499867039758665782951990361868110221701889426828948624794899090795522752523513387742208153484911586282078384246804944819177406258820431702488186900185116133996791504761540682485550813662551153393570025462494782481496432081730821536834095794091423762238882927023066457933108976544729809897108337602234710961315019503004647840912913883249463255534873677554666500963953460058599803012676229009802018802862475177453256762581803451135327910345685820284269109932829239284691933050433349007657893584929221362813259472146171868275574001559841463522301288938779820974705290262155220101375331925897832435657170710614390340593469156278114276137483526887281703121299019834308821186082570564420614498003666939002817003045374903428359028251544915777757063150785461196638174875147972333183780035182178971092467197348084188325510032307962450662657255974912790004557177115198995995110614316325177573950479526708299552392707905696904785425823044383425848368960225652847808616072294583214714780537490711937627875637537460647293281150257995981982714398994088181035225448993552827352701947904184124062233854601643262150616333606365553629892873108917085280347722827975211653669314570571611311684988836828887506825876793418148973317375473278458949689583461880423545077660702483564228460881755302095589075611351972325183271560656159482744088643469050430531569841343296551323091468623675099452991345077846595327724515875245191312940199617170423588136501779522177914750956721095162628593996142137103078063037474214258395361011048238760171349473130592193555346635681307596749087421759636798311459227302194725207322383275638943861665864585350292542858018687582478507747324226142002623810846065709726203398858347710980714792997027265101569184514157544975259042775784829691349311976386119633120738698623535537749005022929312255097710613091669637547249375902881820115284012711763787293391157580425985644790822895648493786081507856084442291730901409937824740153054288027280126429912038380452623888370187852107296635172429100795450033453395749077651486225230546021872187315491886579551020554755475054487592719065686201837727861841581258366724441217443268652646379290063105460962076130341687418582754153283484973054804002454831042951949442631219304637155070694433233135216604720779341275339218871972722630679348325471871062012128208931312647302712507036080632346331083104184615512223643055959568761306644506090389152703752054232057830168730019344712451237314571064670978337015702816401018099990046787534463967587294205273667899262613531039064775441608021729822934310704669302321547655720517096999508444473563792319510069820216201290044642238122142301496989240262035412493384661322215960872117566656345797279309269252331920775050333219276136723380888968061214241049895684914017709428900846352473753071299914683483967181088073049240384047654520740661890076585027039841875494913701408461310859104835702711107085416882990627888813337405956789493899616586442274655360515595389163721591305953294348861119148603367852177249606692733110175378492871944975019986797506780808933489925776692607470761482608976337576278387281870310246247316131781493283862901265420709388247092541997661767299788985096946940062626802521646311397124415783376346092858712122568531900133280199644293431062371036900055635510025837973352558201955100915621031043975819643924895319672111198197544077405105929369504351690343485761988553227746680849324908302404705852160235556479454803624698132429869622596252292881702301026649467616077457113372958451921717699560289080255687093836126734011550994417837171040570834028073243228276567750039997152902062155300963947479308353545273137942006289691050439582311422772536511108584797640724330156913401425922485152388098041907064945266482752966396076801503370972756531707466066737146402681018150438135386480918517412713815274247222003324691133878393671014399554665463347097132023197295152017043097653547923606285567560290091436171432671767805359917208901853649348652719830117522359748401962617129430555203330647903515936229635353893211532102373586474687260762372641500429859816792984413533371016593141839843580298171644015395941903954828031420067890591197668620881895564965733884679008180360944558606358846928708328683735610177742752135768014428029866451599611195443753985505449584643021214860783658930905591379483881892273266579369457137542624498479544185529874257176563887508805484478221087458370205379668332599149936968252392024034547868223229021795838657667916639091098877246795720266222620518418781412855654520772126676143640567931846394543362849650925418408445116084201188805322306024562712637418500476208632362732166226075087592115242289542874295625192000623982199435859437301946654658748310658356610017900689844171718266379819907981073254042793359890886754737064244439884828254406238781455657038997588443400187514918974569230293785028539444582159331581817693395742919553458548552908530171174556543690444003038120950680646312475765175045592329155530338346921079993998722638273926151357207591721243566063498523351904483238031691830561076662402521887417240567017666958448995595319300437471534079026857565879726383801028509021894239031780242329786529867362988713297414457978650253850062499926668026360649679218179096605079793758070481084020143324882344254849177398687964073787864463836053123734535322061106591294910401109309830413052736954995847885276842493810922260756099932691813308414680258463096430131561491530642450364808293696733381852173467820094878810181593841642115412151524815822809658276481150667495176607419888993417740727084098503966572124166995021691956337587540845705408459054510527336241466587062472980176866254496526654283770501948709553424026393886945465646350868612313503415245977950699167676304098414347820914602762042223842613527540460768651470176555545174382208405184842710779402808735575513205945917901357743973582792082714289894414767277513170335736844266963908900689369547155217458575613931043527807965299347409044882930786601599871327368415067090763006572113764214199755721139082692306526680977138092092936528819334191885849497493293222425809690560393279241589777100479306100428834987817150428086566049330108141754419535736726078563224267573712582160203766977405837046074802609497766741233360796852748427140370601581494194075601468282420301352109631907127682591855222791922207494427519760811613437866880213791059912771490642723031508176079779962535338222517439182775301498759574531880772535939423928549798733417668244794219187135920849802570717811093692734768149154672743693260150016024746692496508060637871473910237379648056261037386424994877630159288847141034729875305260265413040732486762478851955669265363246249093605575690118347591901406670724130924032835710740943865810009968957754131867033959394839124767138106793617552699184197731438318376870588366657196816487377788545272898437978689061179538348417670193536344973946546480118101150837892027167257382836134449328176249808642532828754507685014962252795244383949651434998034066638044671160041792875125083504655049935330618130214281981789927238937193679133730306773874871017055727360649735004477347401335177461785098886837873175436826812833874840411264082720497354710295306302208938923535763793152182144084954421567664008610003648819547777856149461369351800055431298455535808194183794785083634540121703369659245256616655913280550802780493140119275125778611632966190355385773829408204266518740057785347054148640329416957220335090034424278339072613794533400467127953733342120415180687843202899728036722479678914780704594706684463538778589299831730001084108974121217924562389230033916437437929229477431589514193147242960770490593035641580339159309558513950178019787521702157373355904070347214499110089119187818320694729949332363229687145605809719133290344302245824618279644613559178788415985432690930747562645501114148677659828416341953377466931463316100629038660924958890999099653513857801943260041128692255568557006104213274829395244184671858172747915683714654129581253930693872426484795889537409664221666312796280905792713375332865724902959195876486519059256572036994307238159937806034071907240129303368404923249282034490736328638330758245841593188764106823005141956558040141304201137064002063803554317696510912761602832276436170326643756988985649372294716807843441345134543076199688999134730646101570503532399726751116775843677606419449607783780450069899614037373881798989133194530094171617233488228848989737577899153432512468960837676095094342779142585346601799565100621533708981038195513475663735955093706411468064720724824276320371626605721924766446070639444998247145840951024399957791738649420336886144620431749142582345596398608612631036593536642305996855022656823281576977401868966113101248557769660032554302582700114471180821928289470531533227980168699299701727420335927229571245228683487817520634403638727762606483278772113930014808314467508033668610207861954725528298576457072287207537082438178020307808569217282341393828958273082795172088176071259583907420357715541673503406384119021405468250665884159252844604695520416549236041864693978984696994627852280436523874104861748553496125031420310140042807908625155473232624460107290612285081037255979789906610746668487830506888423384685932748608373712268132469744745744643222197717566987116898384637312638362662054274597067809078444699059465018222576194058924775295987505714830467348166914400585084621781842108402371372733299099437803334298172251940861470068658621341158054490703036076284695678152986441553841364092349350194689834982403058985769323376795399438821747313614328931416716865861329383236342278274102128820956564476218496301003187340264364266912841616926802455281649337807602455790425046752443429579556431071380422872867385182891304098191338180636564088235097428217031430413586630235020476204901378756741077221487157761488346473452089087018858903023022365410698177069147664715254941640032905128473311037280436716399308429520205338972694512873822600053282983121953365495031599384395579231759061633724661190661177454376582057700077355542862329269650215804289000096295576224986226069308379790516941239233276038607501616815267546201485527760893307467302034993931795052082172823579364563895940783819455932804272387942277173755514296912601424345835445556922502919480836687735304602406720787681421087533233262391139552744598062200959227169943603605519225390298684403642459841298592237520740490990620198550945058704572710324355358559799887485244685735475366061743886764331591369288181392902469060991091154562678636066846869721139712008855147250196578352110068627260408317081200971950889709355694176079195915295471685910773734986723488546669221315195697312936765145458640992739556708944478379151034708555359031487686111690530660118093235858672544500724459325745581385808430998736528685565430507707617581708578371483133904448257016038233694391347497841619732798989540195279933020429990010332445016823421886710226753169181069872403772910609582245892936615837275794335579492034218532542194247618668816246378928183301064170431621135196557460124495841153710044928692130526909178698121517957062387812437608748263689923290184294182642621891666521558505985627712574961351247478673726997521631997185771611768529875677460736511741092374680046985864811778332910499540879275450038758525425070666757648672365567690350284365045723480146511561632732144734093523141738670860774010272210156412603311541712151359027886545440403343230634035381098481325008778862350938967041881574008314957204960126738086238920511013327757286262583768285544910711126153277860667627783030790198133950472335066789457228278531116734893487586306386028332494708529053836247470128530593162906386209833722226356788916442943051475262732563455365770441962286425255607231861935926063080761908603986348220297330296236728791849118556841582923174578919905708045413929462849614394066603557089555197389613357465300546119478868983331387404282125517350925742628997801263093490956016122841233108442856603875117339760681892079212732556939406606210179534997184590735174410530589343156144786999967271088387928383340025823102733450456703319503781266980127746952210846851141172849849523305831755664781999148856636993729609149213105920558921253352693723334930429280678322094146691569600331264687227545492491929153718065535985769600608870676475988548226986574883137707812146752913119672767115675176130212195734058613773316978343506736032251345278308017420632942312933334100649362731981086792237382687683053743062411107688293541125098583429138062815050542660515976868467237047604113320098026887570216326387783176363459527641533854225774717737207546039475528845856338682901383089727719342143718914735231295205727835213996643147476199754764689969977653463061367646555091527303590693628822061656074989417346530356758302254820858086848558239623252724722531634279715471307069254184211339363406822620404100315157997766851439649010479116619054985324197189964604962065503871153560155251416795243537488588328409930156577058634087893169510755738413118977341264377143789077813883679502982747901368484448251295574215132865063804156420891732327585585267780804860883104695729514745720386986663234180590684881721257137463176607409510608325615272026684077751676353605140025401007811441250174658982227912820948999424204044879649055690582617486901310994790821008113298527879125168832355164371363441399884753947193831174281705060531406194343965575681537990951615652099850726350774478244231618598031550262815364499802129744543952854609471741318494146978365537363348884731146820579142692546736667749771527739632829607164799620516138669800932903311222813330085384702899043848036816329868123705920078349103954158886165682755339054869186971856296002818250627494396648124599915447383579433682354840824581195552180230729591961274444296538701226876960268469017624857070083292845564619272377322020199375061327562871175339291072253889123651293403957128441722280407148404005815865150141419222287840949602544884704026616275362133300100777178632902938417487743728516184012234609000240692558935398786192473257198944841111380239658172375958149735234379143411663350898692412216728988629086173019773640492028182108312528500675107004933528854770697740614896963732959031763259066954937828666233757492659915830086374792834500070784462004515296706672729557503196359494916536204909665851176384160494505983350210136992374277991744357846984083270403436644531855526672392316887596243009150526794876064613638747314262916094630601955666271993140596671171230367203931782891889288369756955245178218785921009046711477554092355775278355284031427566971731969732179859548942168728101686344616797182646796895032858571677151989209619218035372742280085663147528594402442832431793135402144477181367444587102029952191551590014051262594912425085514060358774351644684371786846283877017565791298783090326115090517757863825119497312487979084275543972514985154181687650537536120734855331897211171442000797030514559113203779493715285205078629674600594751839883554257056246211831460918656338416950583857048032842507462860753702948288042992869787536842864164362324023540804092585696384996276990232933205324897676373657441475839298296792532067878288765840625223186635419486258268965251037277648660402844534140065930317680098847886923517949162999487527607985705611527776928137755708232592775092107208611247312907013159469192537922076489613252112682264303374799372550220239172537285749312588748959584811526157190740891687435000880816940371965726794128802354645100828295097606687640618855272055281360813383110432660552304544879180865159298796838425543568684920431430463136244523822696279218914712642915580941777438271912153140201987885864776873799975844759003755546703044769469967470758853070447841568563947708258748263108199131276886257514973446112434103454738847934874891551449807724191956682053358140036018400603058932181141010880277379027193198059016658508493864878611085612901445985843313049024418336995342132016486320089559152399758434009322668323628705939559762241326057942979944421718331789797806195870245086650595664202004474734935496160538163667947314817992664927628309832799451066089584482496947314393434732135953765555424420481493383657708472647455876141277988132690191334592437591453635242167019146059003176100515665830251109187694987087649198329904711643758199534458956889692144164848325307922786448564976039863158535037441325929550368394060448114823512875002927118390226717447319507140774495048170805667495228683617763565503437192555767429603936486567792185662325366623487754909373719283900589436055783688985846327396599485806050871317952545873587044060353568248991103615242867924596717915906375125014200177807714227477500659660632906189688031771427382279285127122582649991070539503621003986170361225731990684424257103129190348958849593261482741479719080910725764297579397243361871023264271076239223917892654828637555556294378757581515045838588344726591771041989628562108681694382305998121843697960067314073237832099032552570094181029813903448878161931241182853071153955428619465914812856010221326362634351597794618876303091147370791258954115120746488623304172880846942500927356800826674058542621866203248335828163774321179252079135354311472529125217392198658146995209949129882539615633645833934200726246701799081322097157538446632573069750677061094445738673707716594063497808792649555551504304975803183307811522656201089701542747048561574585683696423096303115000475336860101992189647329232839451032577350120880389211702321476270489192822535545315476087257090196462466510725480981426985073826429925134101614777748733678806527067801416711735727675239884693481205868443951254231709301283456410474086274611684549734615075159024680347248912449592477869715391175625155848168436185287157584060596835083144828566347294542821115331874774372982622494644596746898284654443363356703952402757937950484103106872932921846644598312267722098776862451865487823213531839313285687043111475179401788460156100770988974645981252982781025286253119767278910691045116800651444914276587133257170743539895537824216037253602442578736736499599088852696290870025935098572729243396448624717754698207322246537379343923929601753201042282342534031715246808692410106904889245828383325645264057929228744653958287747440724544664408759468686657130225036340383464249956984188298688134611518761070957945047918680573048398568575427407608200299360771923934879956304010158264930046643532548603940949741445701587030054307977957314204289736579292590123159407005437809516327596361594808901854730990095936986202008092149330194333887248273783008436750211987002578950397871901863666572881615761930247280778103613267855018654199185576864343096427844320278800651263098258127681523682011932981002222281281242641014823705394465641498699803795220846758073614734281603766378143100768985111199108678197851085525915256387310074633625327733187847185526458064780973284354719724056147789139495846529084094590027752638483599162807757581268293527263755607773092558915527757868695474899566147027571911344083843043666367993403991387392750031753372304703298728413475089008282982934830004138411548674952007619162670970310903297657649528347629744736468429859961390594803584019595733168009858800655477293941506447292772037714963180607369735810736333003736667743512048773914434135462309497928476132188759196636328866670019856098394019665993364694105324689636572507754157528236009935418564319854144802159285511200621920781212550838000918448285992712936327508713197271459413310677936173852562646768411830952244001047130765389702489902008708907095189816666625107418553385606340697260182830641965734609719017309726405724507506509871344969885533791332016529864624728609500774176202914219049600233985488411324690977954375406689476775331175382764427112955268479776224791145889732791835754309904661211144248420837818087069822056057471704755888183354545813974595633793087976950037295062152883820106034595132865922234571677095746829874238499230885533615237511351176602930952600448274432679674836241613299921887243143098229499382169657531761318428993931224067866320430861431401563678255325484333993540248566053387762085131534466869468844441635522016553867538708684168156252081497653154528639522287084913223922769098917429226702766356458705186501802626332885664221628111862674040668832845069549261249997757336282937823040727939252644187344348846262933958972872449960950872664278929176082010485138012025920693977870223306603485092143594237377250858580962401065397036124282994583024687078356556314612099074899097453383812926342459535385742030193948504210581651712027884758748235328060841224358029372357093676737977152131965858783575194396596756710685974238035482530511525156161500818758526692725188315584473406725643849951392487887435082296612533956787098703406838950343842291266580304682336644873160580375014052714585619893697737885938306447528088784847208472643086900131845857604174896957568879647943623302403491785235468574673745172379727500100122329178805634468533601023530511064948489477652950740021057807020518163773662898184279450022804604419133871132627442660995775154856765204464995853066575987974549913941470264825489265082139775692745065572873847709863870610891750215084344293270158939400125554667112843870747301306978936760415061739287746212362941191221957214969302643123724118879396295690272026753222564370113134536989412656455233867843317654287356248127040052390181638182286454791663743845352572797822973558273947938756867133781247282744245807892088107709267293598497122309548530024463941784807525426089120078910054527064687428628324301479664205359614191940933071978947222675643437486828832861445970709451254929658114268816769451675875901306149085867980105705410312724072902846519494055123178772604292956167775730504907943916845730041077099054889476435993704901563121277238375298777759566926458651793639973267634307471064608085656452986828756615842507842046088360052744339826903987161683600496799609623403702078322488226815890399161190427321289389330386260522163722960132094925175502415458787215755929908947222324983715222203039706983204965545054894480562784530816353014817469992935521076675980639658144869750048543055187851983343792618121554071577558581391248517164734709373244676002882718243039525563649112787182668667878676689911172322584122421528684487801426373631399792434429491583692579995472809775375931809550828401567697243699680824390822055541375647979894605639352412519433403780845967877675293397086199934823332856590609538731436150470269460885353503740574197410898716216148637116662739351832797673995070315633589625120765757134335232646190833630651012347160393425963657943069521647501044629999650209619435994064172365904531195965528511003299954501146572626492074208161715666298563237157062590192856637029552463175811677686270055998282734257808767112342526705947278978084509172613252472428182971080923947989137302873941105028836380078578680002502950347646019976808881512498946832484090136367275702543778773047510849772272324158793243248469191210489698095374358657251479721413373324529697186055223003465362280471187716018096604992073951067253906000021110092803803956186751315169189037707822510748215995626788774222082989957515657221561881335842248929605646424213545752793328434116794560668017486768470657594261484749134129801304587605637252713643508013860227501470294253511461848044616896098699419391813032671329706630519043972662997077060975252597135865742395161975056078481844053104050270453086335858893681722937046674641018823000865659004454954270354727447911473248409228214793235322075562923643132473637415501257421390111409436097921222856788098352462928742707478991483335467990792648097444775372572102943823667555731945720779335354921327317761468313247805778406964139623363743312345277935147342109395894962551197516425587984824428751177389800318055130995947580432329583774855327633539877906288966345319548202855000620669109754111449631724209875069031523101428408717415156072239161037398994299914866348406321760889310115729169467072206735480753465873589035046222686408317082849448993673025499937334471848505699650092827001333576410839430087465949482274784629518213216937897485964582930923659830404654463975399215699674466961001830021499087981486744121483412852358126531978694285936816805980301810142007703012753334995980391527571214037290031284498566735111073903806600058560945828381771718896591267816607270491571205427192588676257574006762340278593092083482253876810111114469539573119250136247420653598789503902301634407503623819410315705157831906075639475022205907363903498244702946075110292247864930109121126113296844558787213240298845964618167107998095448434172711286529391134829762181932779904791673948913280599105506868337713955995263154054749020772946652130454601350904174024812701267675859188431772658634761922793452585314270025794976346877304534732086104563228646030230735422347830175634007148235503157093725575001030576628816187562896116399184106369720148231171703572250164082025012747617239807250433581121832866365213484131984539095311790495964133958012845056311203733835751025379441245797872435827989439797355119769421436051442153046228223034228478293454620853541980966895700382365755724100813543867256494411438298135798459837451552234002446462830998825099023760008764093208927992838831654167114214789730025253955747981943880205033130513449813602746168698680433232400368377094085629600232512485046336193191494485927091926303028485747185715391937190327012407178975955472012525095937575429319375979545332820575910417571590319125928288500098573033625428939313011574452582364976390664721036444107080269974499588759189925405929480552823886380582325094389315771752264072279061971611940721595837038681807198852039861973068829147756164340131736351787608086556779956636198218400794012613146056914074549324729259643856023199115195156321088333207499016683215529449286746695121671365368815823909400472008920468529021054151731770947071066203439484507146923607074531880490276167003843875790038215022292270776853162412481536739117505552907348142811668022060997154907334021280124515299958518969938677048635377327451244084700291403532558198974112767369706210918664379283434789467327523647669896884087599376461565272476862512788958556870169014960236252005955738951404707092851880150099910205915731393572329408093418923687503418350544771949601317790132782335349235731901654099795147356976556127773979947636485502347495107837040065670925105181713370921659573313510092258234352609378772190339874014861051678138430697548658841815971712375922130538198160867639526456976543654402035723578745934333978309020676278990723421606273887739485208736733164896961656631601237632651549295740793919683859504790747244493564389017972424742321755544039515193425606806464695988348234509016390306627538124271891342228058228936574480828105302789779403162670695449276459743615950262504206747177501167627691285516535862579790845768234857633364107253167195093901081254472167893397994827474212512560624097971378535625086738016766576342422693161670532057258030485204986179750972062222706641212445288856903189332220368197026614310828178959228691216508700329198441324179603607860802241828427078773035095632119457904540864265584252019469111676945980518055580355931727819898763077934263540699652319198581675518800489376555490774007713832397118010748070877440483790980725623015598943924952262016615895807633102009662842812775687448987691962513255654562796466855277787998457586198466003183192171994668938825374505982950639418869795895058454459478813191269129344550368730455471268552947315788481203888538736768889024100325721701932933038973624344233714267751146839290354087862878771745134604121177145560339798803858887403758809744372295563739427306839400296014663176904021812976105992412554485198775031136143955240754907701204560707172857176608350592462760367009725521103558133585427971056753713733521024877691032511216146239562000149903932055294267956267930975855345742146367982216900072077196034614379487681834088174570512626411472998088531106761938480899614299670975388528132334067710705612607231918334791863887854276865861247292811057807357714586277761451347329694263641104142127328316758994361802817264126331504958407806830208489292076986442809165517243760314594649509616412862860448191725317719393566645621488007381336238989807026123047401874172315095096703459331676453174351528544074249478673778828277702684110186904463403046528293029081766264038212838832197166666016990693026319024762188417126245209620587149432714542957958015298600179863534318089107805042079494038792442148882105144656844874303654046333911982587953546116078246470942183966846706453259609463404219658081233431126936009378503828636174449035164091717805127910634432941008841753607511431206239313775110978078458991636816774059443793837027288675708306154327218334877387206237061133985381374340589437880564498288155146104882570949954795149145019284194295926629460225602368960621201681949414529221927569457460833224182865456106887141769470091495747740285950356479358475697913985343241636651997935150624366322246532998602653603972237592015582523663328207180318679536661194150430182482491021106262988692521650348023644923840901287794894311667973585349384753027293458318561236495498550598641259357524499387614061007405449329094969067545390158231077627994758648317469885681088903467753223265802526865744113455050105748602290059611707009787443547621402804282728556035304939183736995344876262514840770212482301128998399158621896828017756495188925310904375264902716096876142436645382276633664155662616701521146730848526338521714742849718473637732703890530928593620196644658479463768047217259740808464158840520149921761341093070402498900735869411157875011029101602029188625183588589648884837927013521591402336891903331355334137649093355196268477742396146448823595196580238488614491049916225448545056839274523826538860167932117021926973886343336822990086385631191156964120538331173404976751792563315962343964121382650666133920971972424955013100531277526488617368712054425158136595432428805425037841094910415833037871601446289931163342098144707552372571398222773054963547379283910403624803235436424542811648180262762651937212002509986688449670189646632014803557872305610843070363948001492453626864222141884312638564713876612696922030213708701278108346495528616781701288902253488538957420331950472014992152434603462765370321592501485565017212103243500940394208226452289906263096985701110214997246192546248396291415746108368183891174564435312669131699726176281514529860574485271107137203945858346214743192655619878504016670416931852800707971119039875219063875174372902138079989733606857524139330414378130271475791951783660042963883099550993166928176684943809694499159483081259892048223145289289163466029066739220877648090148179257156056460011323446686716482867534371977237119375171690234706794111823103879001554534486425166005452333274225156429849248363837743959737450277702514545144674573595505477539223586323745154638598836727623597493200630150294685427190692929796025909744266290396213282033412390999267974915427084772381067713587730760233516809220493005445870254096674334987096085138128857495007760839461814725931913583775125722800115676288897421934707021068015890794488401074098803682067160502842493658662948389560133238570123496749669171138970255374179713398927333896298325347494163221107720967922971315439392157569362248365069578340004504410924088375756133377098326395364108477932161273166647436221658244705726962778316582171610599417042900692400596014908930652493315009901846083837596838074051282588539454278077134459363245479877197197567288460926113687413752645041343269403745242516916181546978045254926212519340786607929436965704999587300731961620949194560599545054465928961706727204864490398226034274893132919345795241337951356744145222948817557851548858042556183082640218648329456499530485055106209464518434302850056765539360033236041050613467887280703213221746409207629672275369445559546546018576700645273380314515739146510284064767968165962819040149196280579138988328387911622880111408599679716997078363352103891883993918250290793048607885823804850466346553235080647041143101994288043261461523789503203021732669210658515160722682613822086333972060819841273709428116001010604024486885146308092659793036628098072881282349305319484093633303487843744988816295582024649260835998216337422787294595572131019569883811220347010464587752807606344049507898360087251665944125618353112682218816416509307195293895012644439034112163811309070448204734378640803136135914878317173193344550156528141944395716485331264255580075275860883454871294968064356619373732654108728260933037330282658440206879969295239014727131047994876369149310446817441596052787786446019900113560170306734925904814964197701373512633739008658780101580680882986889564630005719800047329269283326823203309254361793090013160441780697492350640638099692118038398109556495683782483900312039279597310617352599667409511130743153441206174282737349738413161763609961073266530156509627183567536902209442108016302934483205297941852963892175037905278747964011453705345681010462753604558036935582637379795325644976003393947209011766457542608992189325374771854018683567683249295669982078436366641521502286549947848639727321276309280003193580702760387114672423006326671480641637341073427974573495135768917446894801405131926877938904237877812020638052523048432029142076661543611903353488372108683249795895393369727661131380222662505761578114189529669899598704535256606513530640458794208415995564280769104297699208886494059648984106622911573449873128820262145891944350639109821027039023228372672152983188865111303988198827117230545425253249168397190436174396326856608444168142728609392306557867161689303135414589766849465839245575053799133796761042308361670081094362558450081795322702746723593200731794769505253695312015559045185544220121402559819625969188062917091340771889843903981129819421668494097173591937280875554963492883281682417606060190490893487269831000074633825354372369316198079392093230987535538501376849089641899466107932900867192819624406902220176245169101197413916632786689089584527692979622448672910800304737965637462872177673420496630636051998903762026406675222986913055768399031017072308802324151418878782535814737962286184912333583629091231330543339953528505276718040134237255350927733165724548235358387658176722889668789238115297889389337857080100580259936014714985626031998179811855796147015636379868247459860741308620123965210354739132978029113186938089979293963305960635083245971728071355758470893461238925076071763923022349726665446013753168599690157673276293307160411573691800945064494376337812831200925518539885793437146198761648284742278367743238923318976603611261037867160462236940533970652495272763934779183333301299758720028696754720082669967367700785577206830996849191654349412770510352858792418151797742823486451281069965682092987127775759318415651400076157416188250464722916591017726951451511195786257600175881581147130613821647915584575398987171495075860712017518089313516118192711148208129730571405797792658611137456190997526927719872231945652414340488008469372457939330896683664798065979426527251482220538094288804173036097100995078254853947113577198730824770055409590447106063027547646203525793684888346496073247588828694552440769385749808391714594935918692628988912786105967390692407269173957027689837518868672348199967458226591521069035546558543755161707132455990083563763715947328539798687467306625980126007500266102776357749017422818830147531657598920087102284376148390514942362233100171440191075939328943365870706866207172698640964467301350531346743667829548595547109233603661302986888628554748992131350932541745270249005215492061453415277233740737338238657737182739270691527673872848102407713072871186140143020175457206686499254883129909450176608672945921200759680959196265308720711715726436944269646371426100078758853976861873517479621550862017084210392480792002227347124369417426485896923899651608102618668927877551050300777166813708516943556518191723998190844079819176057459155214913042019247081459853197443787731388674902161766423548021145785639399856196882535736465321617532494824570794445623414835156566032817571102110702975244494119152753181634184109961050788263941872268418687807188453999996603339497844068085769006440954360971983116863326030317329454048794837003573528171073996760757575484822394465256944852232503720990096335945100926467742193717212376581748524168669990233986705043487902268395369721930295416683965529511237047773336060143173565674936093915623125598203244573602079331556188947683441457449628255638078250108834669153965069916433350313534234502645483943821216830076743517154509436978026887333814012625166921091746842247795146185640101010925830777666897007633745626432808184398309246664392584935131740943005827555299470342539250218827329091197951875410364179776141588438718988490875279192408713722444988052979852832942870046137415569997957508725125306497525280058223326715924531630140177510246885958773196476893769614234509988663851920679468104779415270092847338854328628835120451055837990532318000775477521094972532875487948703435413070327779956755650951945673027870828507903145028096422552355764645485797943557000473520326046811885672162624091360471212514622754787160213631585486506467505682168234630946376438444045000355232451777143345757758981585284294580804071759033187656773401019176848190527920346667427409494553091984971914705751871167260367263528386081132157622805745124791525599901053046735738077762091691827077179573618058444483030859749752329380456111508542755875293755945634184315297931168227490843684264630302166684146727193412083222456043667189961638758855496009361576138206676118263480117243138686503120123774418296830754812843425912879372797573510621298563343300664830611284072735735157097225089381440053188591838583470119644621673256601916658880829700158315756439731340502430186270749371172947315165273805242804018322749213176000007361666435647405559686062210987108485231283259077086381100542689977409478064731396852633805990714296516341873852376056065660175483077592092478140445776087191803873740286692947236920393495895670899534225211829931073497329574728595685685600340391432649715599420144806572998620380446952461211103413175580333032424782643599410926236200317878618508301883421244358505470112853022825976773485051694515334008930964600635242578073407518231065928555107258164344289962194254029132448470769406261359905099819231965379462733952241386202454639268961925170776765870240245497245966398237325801409788312061651363807965236498538596740542688258830556859050393731159616155788505309426622436214407596342949756289285555991633090153335434985028239706762752908782080239999748274239963692433541856029386154249616909733413068796989125335262044155142587405109777319056013409649833095822400878725664980439354518457526966481787552306511485490115395886544565628470026631662245958977661722449084299512133246911024521713424037532314366693220697436900653929985666736509962819594293888452487199111505921970802182683232116652305004448497183220411854727806172645622020358049620620807602998441298327246103963279109251056274467211398980975122451102780236853156829805494952123403354575592924905545748870840346877079672007629784340013940920496218402310467495166968689659656274007479392086365862051707902773317220064754292211422494529876879683490659203139676770757261014775689038778973662775715661653630554963645586988972543645872343387657171678665643987814969375780429751572024630806806407743474671663279413227694251027886384402721732221752593660774008388742862969365694263623612040862590144387171300449890824265226592504390792781177539391446092856767310631921037206875234346098999562252852680661458301827499257136874008007355849409467082022139110942418568451045004882082791356777811573266594777472501580743551888305543977928229563107816925281581668362047293836751324720191146491854489376309010612073417055684414979007645044433792281173450819337670721831683687511997152383894704963370608047373340396588095215799449283745676119392569191487051467442510506749704296855356134081243754465710962364179366999205984663273411525762182853299680850853642059369132702567210259775667025511623847485456460270691316077682708062061069267543528133455477515751919430209477487851247076890095943788658295528258844515692532266209431369484793807859776611872825246419082483023236002841756487470966262542250676361554503648825754381193422243620454824757608678194111688643911376749054425685970592180287212053035255057162156068597838871367391236494018248551120958513999062673190827933935255438358232876659524555809319465904108507785023743868488243668359789998285121863043220435753814755999686991515828646686100523219899216663420439671921842708109058986428885624850380080836550042498443555123667213943835783405643214375802111948719111481117594387582233970894290033773071186355736054419693279155584041231427355196620883175697904672599561079535952775768936219549182457111797293491444751897704513461433542693438827324302786614982706006032249053335705946502027746348973227083448008609011381450059697572861641456485690587101332732982780963139376297316853770650276456373488540697486960343265135560276144259349065724978544902206442638022116884107343894057394069025089681107626505955783072578314888579338845983890818791817200381405661047299339842954720086141133659382257942818280439845724327198126581185087632117988277812211406338792744331957720724465028882262937696935378217886247426726662215265921646671748694538295496758728883472180999081192738361883364417536976197740212343647639797357709071209836357013853014925734488951907635043500348623565712450870958652306224670452184179889093778000151470625445069610901585330865380368109602962052030600236101403017502598536684116203604393130986703308545056212655661164012818441225217534217352809120409073369003171308314399241684823852552237051883918945589164015782923472478254768717591947190255718822365884048642159916005718117945747944977814658398229449379434966972407363900070035455100883134827129448660180473801546042492102797049246876061724592933291411215631187979119067175700170775419316458649807972996276571325985849601870347155361611759435134538015724489820524994000456767090820351278575090297048821772684390599818714468759835229387117242098547308033304592509907874336823169942188679758586951815550551775899640263004906239547990642648743285222859873131463215143578071861074219824859743166097277907386943046400050915893010209421512013136062330256163922868350204606757205176778697666862737890784924329833529596031824102793026968048013571107675740752964434386221565127225030872404863566608044051313972002953331510221558145724414777467728746665910378525415021318826470855976971109049860967785787215821060471323329346771427069788387996643066931160849594213781478667681914957334688292105638756466483766223424395701654961414804031321299161679831324117533035199562922977904666286165495895807738638258771638348638947292541303985666918492227848443286991473799820426183116138187508406609800140389208061386502564218389348810967728918662809459482802778299903650191489905115451589936773287663878873111787971331477334030757554493390573796036393339174276936658219424011148237723837489158076126663193291664130663832603576916711810566915466585108785757876567558127730162701804866011498036272907314226615818167058366281339188438114681096515933276420403170149292454385571507570483223940636640317735215942690485982870822803590740916956274244282761658959406017477802110881543133430761296274743973723356830276613824525274360437397003328380130211125296687274383891718598703864997923717899359597601790813150685072878217407149547398056649436622082160486109784515022479299561952146554346765398081951882719813796168028652925371874160399689735295240988151367380636744311591012815555976447344114805277101794924350147856899975798752502726666009485256154277159028483068223292832576561996188886905061248933476562631168147192730893757887103554433966313314248132794970892627878603945814489236220400755622626952958822515819014057266066380301127932836447334250342174898742596239893561811654288248248459336169044868844438794614817730835093127859552548686947092200346963986646166545874494113090406405613682037214850210348865823854108559209773084673560334981046354818923053259153627086508988575279045710704447223877768298797465050134843817730098022314796761822628999449619055290052983516591965860354211843286133559542087664927740655808269438700458497816943075290326183869083311545660125289824031857955253434226062098229279746698973164309321525020713565194363697671933057891513496676251778690822879789439734196569981409450292521997441881934823546470948632078471827567084512821164304458040430843242485375839019507763618401284526956255313487367363690681260280618195344795321360936583729728870164095912884169145714889031580405094778359326422624904480167136054183687689920884265017151736935222700683523012050455858837788409173515098523881366074426512735779533561615961612082670329755007485914519868439136707513073994814638420051747752983130788004144564750562074739722931277591265243860330674816004224123836708256216971340003463373219442933169926960506568852801359558924231786559997192432755896808718016842980184900737383688145687207537623811472038562430777869669204603299539267827454935747354869105405872010925227901809149620400579186773293242676304970972351191774938012598714800403744694034527976984068349971607797100736570798405718413726889566756946025590356439254944088186873405428800708090643813801803833875764634902138735009378256402824326324365257248930339583893207663100235914380125021476591457209469139684282747063396135460898658791873857625566300613096236477660932619622925423636492168033848821022298977673357730754622710879984640950522250679686218182627267450196926141633754310667550479385436135449050043090844670805797500607371914371353882041783446859470991631965899182380746988810564425457519282876228611679196288547411037862860181470357405733587047072663999598243759185318355759133398470081317323421203019113483081647240126688783184519521545720606541424659750339844261429258050168561138562009121213142879351338974994035292982955068487755770677422360987103775341403643401779591372400297460113514521530681934089908897801750865779907124253409648727982261962837508530103727109917092734059203265217531454196239140311062408871358204071741581575837122626707577442662777060190890133379434417753975594573059254782567196873689770350206453354920729091544751614070031789940840314158730862169899155334337025309876153241688291358645436011602122636114751297623841870371223235529452221367893970920781004610407854270512647925991406011447399367566184604281963411986248385542485622823733004958256874966907252443485854592608990097265757594703628959144702009096420471863099644525916079472009084812637028529303652435749041173782476221730071507331909186274910745231533340234333015662720547217425564777558429644890569771142620004757377123502448773989119974906311183586106368845832966118303525754931887608154270406890217206034764501580071053971103144604895127761309583571362563054266135677889330821719650113755907070934189197211094745758637971767142194698588616389576220343907440039874468333516475812178841188328946889799359259253256557280203561709823509064607983469902010505997657335539238948559894892385369379009047294578602156777241528369323398225383414081876224512182468838802053712360828746193545107340066040340360281528780907414142567145471317866184734588986343071679801595360592731576654293447210722117007457795606293140942863244612677140528481560288678716783920962409221796611182323348330427097046985754800976151014214827069025447878210082321079237630472513344738540420981275002775788397602666362033152193677589657459657768050153504684829454854162809716830059621837231920232075036593924571982180750278837890689896769135112903777820643360749946807400565615338581115134624301826081137332635742585306656761920937643413676644058172098360381199678579751744891338683531476666987721095857083556643803788248018624724850768770777145223665486824472225275384248492756456688319446672142284747535912777929973877438757440953242624570045935585702075860992318296983094574111080855786698917959955395944081958146882195755274895638106436288610275218094991225713109132786075406146396571149734860671627654611412955649209862788648237975957668664119600523874890393875575522198733696166253611278883341139461664520207982394180445368394046297602254698147366769659715405268799796124532304362829597800858034922071480396334969141345732581145694318277757430489412769555414634495833225321527975569865954238606094010167556462099612681413154974662311768951146338434515229577097779304249773002709894312437374740665921162525123853031970462705262980976862094514668009313561347516978504608884177475956571542300130299407217730823986861107304313493481743211530727292937478782946557798168587706676996035916526216001025310587313888449486520296430938499763397120077659192360756028053074312745470135075047494654434862220885153335436834242000465925888352761126359240658933100808732139190417907061633102527114027987216629616223501565274422264555525046522567873840414219066741869122568454709584116604864973054643253215178669876649659044337482438924988111203246718903388349775152145504170333607773105347084130224398071008942975541872417666381053288284190423529673714891641247572716295485862287300055228241647964422771944846485833963995509674069261696265881398970699672528549726151664803747847004004429215941544967047740643447563181231201001643995449631915114547556399024777789608825958880167907320235972799268899464062134176353438799524359809623175827144588041461567700246113781196961406660177639994822278606017882443836688363791731061965961862633935936546377526585266612058188485060082784426761335033028754844377532540422968324203106613390341994922029117248093583540023301912490604732281502499857687878749214397912197495152473418570184585829631586653414988087850587184975922217620276887458287877572032987180172999944963228265281673124296607851479633122124867364919234365420287460265491359205712432027022955591561524601104386906700890135619716448631798955603784089151552929725554382824583199744940497511504760829158946047297110602487792042113005948340036400168997726010754988524366486714298427185791532498454793793121415489985311129812150020919590966226078602059563287346973469132427893601164158435396650048191691862830475728913518990084044871813170463183433114364821222402606433600227693260963740174291609939257893187849623586920554075909357516813371801430380967540551537160695272442726618817731695820458957280988353471180026630580580183039982589394762393188955813193314068045675548116457638259997020151144680892622386670990215666210143557567363859642996497805476325864065861143033732853596059749040520094425010960059783812825104112699339740152279748580947567929068635956050875143663935288839201426589150293479476400954070069814926986984309420950492117355101472765679868397625895075019784061626575300639068586766300884140733760287914362969082687692680749275987278632669524439263556687405920047972104837254363950570547833010576819891576172141337513978917403343242878406568001846929949601148190124945379226208183139861849462875565791069246143045119412268704345036906352422350582231301043655635110392430091909054751195276082549560713608057592437551595981740178441719450490746821784061607683099736095854168954892157416474740903440500985397193740017825451424909571727186648241293605555207058331398018859853323255944578884022672523323866925176997642311627921965634463754764237660732792571395337056470548054499628254157355374219014142001539137501673307798948494196982982617844348188683414775365702015395766837571239771260412428491678897999789361855999811570296726503563197540469041605535713516975280723404391498424034554302915181628223632373756684007617116985250005302697540836126405158190856926125614208569497123714103189852538717188503836637048365904608687517712251230642045722622566171620179423706685767515958904953492195886158781084322951187144063772413747187416782553666141642772528094131618409662530445251401839931470266497461858318686578987548626521569791683431945290823675408675704823362237272276259766604368163351779592957466658104766849207691719431078111870591131342403114293245400837037873937713748821112557759181087240877439968227621662776290116271477870347238654149783436824680801340686568238299505086676770989939791129961762700998533568785699758896807561381014213978738845347543812058976378161295849223665484531435901782963288206911587740377624615985229133288456051213078806554398634946321008561044211872186299263544365933244017308795865087251979091937448290967866003318836000802422734514111114728344192867137488456309029848336936479302401456807128063661726951411887027915449401290122377603901785926144533101149477166799866214180194973139166965513797105428395917505912207371719530517237077495515726376230020762855916609822410349538060990954560969458044325043418146989519181109633447944374260174237113287203521709054346241092211006869623236169993894951172494476871845285845840057753897991150300123847632840906958691680794459608163210851915707380388501618460177198974148821077368619432854351041439047552356033769067490914765509273582128557688362881301846465444063044963095084994822292044369279494475627955145837016751354400042272799644656186104181292423327944047679075071490789648942779655531653988395080016160727338127896843881420194467358043411771851080481243597620341764444729021060028531166261776600229000647295308083109740510046128521798453227786629227256063308471321092028444540092496769592482304077941890303018213799531908939704003671233945236870330768818985022132485232359704464036941892238879113005228161919848010410637251613905557889465217962327324041942201751846228710528592197437926884923694415440700355104692390822327321722742719926380842310297212353218737440033083270279743892602263811619634560135701886745288733028224219349104076732439397182645439405774647708901499847790284005615404526658416248587073614331035231592203187119492264134201465188892449469687284701264197600761681299198012900172059494904357926976218257974278978332992216270218819646475684572752283208122520871772849443055017063145269736022352151740791581174088213305474389438303192044002734741075259489214534825285537756530849618032905887138747840549459266668085999883688918831344995077289691542591195897281600529379435546724921563949336848017451291757209460906596722146152535341813822603759647934217676197427100575194608739500665752663069909881956322777972248727311646183650435729186192596715862442799288741561623091204732619202753885567573123780797319624620270931472015089441892113064890060930856541600849727819439952506076951152839331717790001882784551222999942604876125959407578470171250562975356392359983438757673344261989376925650027555987562185329677260067094495685283939462930207992462311308344222882177354974781027353004706034721428493856813791319456571550516914013240240948054768178647009784798074346642296702749647937991733121928140349126432263783588912812228251905729341218133063894150699324996534548231163276036793982247746869033529637343180063576739363308910931796074707246547635840453403018509076544939943487348128232042442278121114288260665776576227979690434258505779931656342372966100773532636682090362285458470698209758546636782915461468128320775458291586702467590375310663721875124343769644856034495053140742342471624119297377884854508243282703896476913113804913430575856383307540508515767555520218552731364012659054837566855451629038605537621698274535286103302276045819298920120748595664345105335041860094055360635407336600842141169465442340328441669014558405971392127699342509566237730628774704661683916624736783081854542406710877471050222690911964946078788966463639338061884423981839959790313164013097347207696855146726384230120411498272825967042001782945020849858339553878625469304642821494525370131171792072828982426379150564003063272952818040198808255117829775055713711378539162284524422805810160237991601157759155198843705970290531364666342717292632971183365103193551154549739360535160543747844606978254127033446417782498561894370266090740818591989403254978825806764138133177688684348199872480477332220646084411016879849542429029505179110277005929819761012945847727625925122797308098497803224292552715950117508856133763746108579413583839822021028090524786044728080626262139217303888212698863177607142138421353315140389787206178645766906255212075224966600782590400253510218202654427729564165075148509827073222165685051297048171384553662293415554159906625406491938692280759799558968398923541881078701329683794192209637356451531673612357490549990443754277646506051790813585486520293499837896249312598024069569249666260467210163237513065102602237014070585514093100383881805018510628998794179597932416919238176868765138310798166221221024519203253408834228744502915337917369260471358661311386155758091402872979979457290427181081113613700823585408589369892683543836707648526859268642805228631989549654452907959293343239020712476089288107121397938089358174244473824862970711589569866884395492529257978635807507718024694090238676846407962314108160417183375339794287745493251629242040637921712741121436736382000003568274045403517210018012696040384705789048088271947343332819757138696674525635919048358460974528244876359535917288337571067271186170945415884525574594654373611490044629150346792275127013181537408979462811088311412999097991854162993566565228354121411548611761475997239424600302333665066519712667740545762265780493595587284628729482322388392156735816842921354999192373475932253909337560790191550595921258929740064353497465188220421112454265813381270454704895414533229408686165930309525906177854228313191394931128269024152829966369902775295938695409771535639638744757994591760008338709529831643104230310602624187433530726270813012920048024538461607473978517797936700350440412031027438054902063580689901177175987847385655231460521112584524450887266072950117252225736376782626322008169339378548465390378482361089700270573878725905618748174009100361562497746175471185716699033413740967879947236190628309249287843027854804670445572091605925969981236980278834343446561701372067666693810550867740149683301055370611658994431739614550724050815733205377022657631194605661833972560706720104300471433044888449783679601027530239592192014182010503873730460103445568998720379753848399276143252887956236438929609185994041725871919349605642437859960149482472809593634303824589918920759821813918643136117186959110945211981800672101019245212208919759665485169433512038230840258990330212881586712909198467920397789774373026462303937688899835016620424562103869485112297080969202130955181614291841509591197364463073280528186977639091552928374556240603618404210291752291906413133690449139024728640825483646426201852564960374558719718457005996086359798459226115953930918641375538868398816747853487118169195110279084376761012206593700291033651037956551141852206818141140140348878793953129068490895803712838066225506678979029495307018698588594629674507771040188859912193589110791196737637648879633536948841531295201695479823239843036983833477961360076525604777501181496039453745415076343214626794474951679735550760050386802397708861036213944554956935370261450877392982963836521513535107739137968168452675728680617334647131134472462093165135662434200302904894395888654976291315654500215676557379966250033587723717294307805363394316231249401761963836673252165145095621063655359767304648477039160282862312251276450516445628583113152097721385190944013987030254142853833194413678865507674590015862526200393393399555606459248811746850606124126383063034543337841019648813448745068699490503718286684639703083836893584453458839645032236578348356111116999191746553667807231546764035581660239184375416958279969621669903858760202179881848507328752780774907942191860837724243892000514141059846444481368611659644133443338143844097447132855669754445776298743457678085247190680191548504646906778501762980729412942632894423683694369710700694003056369709010477044262643232509099483930891529183921429405541549389029058537911629677688789064988634394331788337989094730993366059222661105386578796409087764852740265680379361199165655184427772990066481805188902112265862883027818238298481325699285701482423400280359893964114918028102812843087737305411384654073878910788304364830647764287515306535526776110781590332620250246492283358227501158360114024391172977572968629280944340544170842924821655910881673565180685696734908038335213527501742578864632201932265230967372656881165947415101910286961421846360466848323572519332945790430439112832988535211402010591090097433344097800391374658650399725347206871386190894242757436913229197298331723814457972223259200714299185395949626698705458332384837809189062847742070771151121804765023164434842684206719362077999534257533343005751091445284910349139235921498998019531252954911899430749647991921171529282971904498669836836453279299484978541000730049963533771610847395126826548122708699161825986157195029609894164893126499140991898751842896708508336214676945066456741752448383663936623940735419219475335040983428180698001954166962299296748698275306633030717661904728249840510602415426026382175494288885763015939657684823491315863052649770498309162580800270602914427833438674359647044175166333371322211331514480288187387045818144437527287726676920535114442935552821980568402373253940264989984332124207524003978104447561804157799474285221405252637734609876186191237116387437863049452477279775444386642037588145044720483212595437511768053933937709982029838173890664261324646338778519431107741024865384727487399059109444599815393307704395761647707291816624003057803756692406684025540910026179547352614653550832788210073206522619214430404951548911874537554564956173696350675168723469184338034102352892370039452237335951283241477504764868121967126579124313769840695207455067427779293298418745440368210052725184511260948600226526568204059169603127823631534504294171539882215653602846801269711528831358853654217594699517698082985716948636315060599710803809325475710357025533748711161084124311857082302239373637399635342771984014324683214135433696796181601349048593346283471222980966317602959048597738309319395797474846712836105751940049608327298981262919524165335267746098903539276922218599831820144038475029641375189855107450575989094418217110208347497554478392247388936140220894762313622658432261188492243881416696946201037534053129072391113374823695600434420215315870872092365088089427264451340020102899950710285965977991302232057160905605487270586828593234484483187259094658348379385571306205484077737559779819700593713713330005656108174321880420806656890765706088945977913451032424362990834805765695021981965816013804321186150203734408984264614283835459720187724707771616914429760417142818907242121428216226899147585889939983833643048147178905440186767509770376337113462475241071168938610493078549849160064378827734605043292006773931482897882803217439727728617106246764572076823670272305927591930312339646897996789633178833089965288021947514248527987440598853562739166570158287479338410472230879332455537423434811512779778318457544317021587775350423065794687380926159529491276469328547232746542195368623861443460930445645959199327958710331152476968331981160628633492951581773572348608617839986410508627164798939546046719503885026853897604670251954845774995605871270256925654552919037148586541195797877661890130454551435067427402677399794153398524649734507381911263043854656766381947736038809199253039053634894061151862601550106062812358232325713062656411109859018923459885043581105241063265204008636551085649675320413058381593658190417465507707776803108012245360907315930044176259878180467956727318895585205030460372192283604639171401078098833907327436657571070405067818435160956983037435651850111905016467477670627450363202190284415501100616134972056185026525736878667060870264361854994863463643569203590752598248682652365357217868769604327813021552762789338200871881834402595335440410489011745942737435433404131649886961328629473219857867547722892474014602687527780927630443146345260289746316775482888555246065016096310452811272281049064795784277080833366893893085620412574600675081817064700384773704799909193952267815802876674240775276926273569373279641344980449144425929022681118822997389869676435344321189769931327354248209496179261695952276924825926364115865346613564601058968799848509695367872196524003029842257083360710815966138159386192519978287519569132650230429702098956583500960356995251338141189122506503275087977563685536736356949878235928456219799043473479791158105070680249644403464909683102005894122533895690972285720959932701248386719208226688215097999247256140933844858006990252770008729359650626453508262041056502032637692103208982890288265249194995035590380066841701927917915661850636316227138363635451917033306299188288308976852436364894028574288192553087829227556230155450454008476128138853881350798080851229183870042642588159657246653903455099364783862481739640776345717294780516431164759478258771067704040633871991573927572592630507794379121119591223739898865695113377531239819626206581009908657598542298374739345396382488200814752269998501372013896149999923267341302795266572341085429382005014032371262920402786543446701868349638689399090596066684484122397117369439633958455604767594510479015534150258263299090425941549884013792240735215884616316350331813057735507893592173021027703697005484128378251207359213303365016906116022307473010465175131549741329276015676792198317353482036271188935404671427227250275871179039589164165199822540017116327540950501243774879554503616423590086656555710618420256044515108826560577243913698934872879814115026045532457821887930418649940105392118765988616467954748465257631154867831992182758218321892931717155174439786177595085736973917743876592899187963779280612517617413437912421091388455678711067431439922948535507871703401047583674788391572371090765826236946603924070396052258220478586799038560334087006593604207987866221260688092778436228907214744898820675998083988465645284705239652103263189364645985785537418848886235521724045955962462032842391640541021301536596358678724102976151614946965206653054733381563571210534724271840047073282941453639201857455362915382939232259581811158179311574507872954584218801713513564573632940529546554485849963155013480216020964384942053588138714442932504365320259633710415036290117983262336600220962480715508614875702546708452604290737742878805374870207666226356220532638326604690533892216794387614263331169668158900281123045626565325236179416502883507957762170911126599856350049513198440957709493709982140202433973372760095132611468372664228873660864810686121870101971616407872687676335567232105020133046520036053044224279378310736302450669653823399014118083891588976251855733829521027259621974310025651603026661590905316231951564960617019588049774725669549057326324547932153966888712171919014659966389030349933852185438340745200642293477717071683730018594446051133121729313995434691037032261026460707729315048886244096107430525005364025567054403731383270951870909450366388296771979461386662164866444605474594687932111247348149524803681251374333293875217757440377481332514318647261161976224234240412595110384359498713725563589795326083428359292154762707214315060101021140458783174832147679597447536462374792140176055514994602988593831218235863752901895387389089052922622201847492555061285439305361537322725931052938004721985870652324592065742664152036133613114551211264467032713353223950203600542717743920116997057688937685048131370171404835215250244520838045291069624334012310270196650977963646704506264759613274783462033542796601551290713264142425834341591947240268168024554603976207437791456252534650064993795522619050263038213847523811472500242788332220164452075955074661181942109596857710416092733678625351848960011896929571301267911213175723333342020955806253667261328822050156728752116041507008667360188451684921456174941657632106830061400769637254892267318861326276127757144944059710404824166762122714795996533647501176723487782429572196899115314030651587340954294276166865146657137548686804252369462376098884897985262761929599055612661659913382390975595513728741788007042573189566358828278504939414061186070362843374562583617083598148681386916781206653959830245748257077382253248615740106288324143214121941641181659386394617537396231952825728186736784132536629994191633169768043395224019960399476093090200626037608180642902358617690285659580713353447017176410524695418972050507824078129236851059134030995964212919996244475405795166053665426927687736666432431279096450688419298812639112129583340128030220775710338099344389958189496338769117597089481701934549376778561484003491514677278304842056055662121444210993817482774929458447742686127143990888024828281239219204724170094350487315967125312394793920742190806392167615277724976633070452606990970857316590646508247199703404799232732787999334589102817985619805590331811553235993565722502151000687381360276027771670104026077912045396144330726148132944131713538778350135761818156811016908849757255356864633104259624312610415317594150979488187166340824624985794339851646529699655347233207526694898639593048492333977013132945847593329088193906948468439462094116588079241838334779475736165441317396919362034178419275950774115869633933016851043119491892323840305822034666570836291703094085647197411914889760373955112079629240442734988590918002003896412077445023129151774496798655684373855263260442647521565425362067701127162125997614259066720297026087529210492167475327923843294090038808187334174163657514003293044343305188119007310799047150570093628591454545631026285788438814959201549941073697732212651374229712808449338124233340774789618707353533241059655091718027346660532002084602620911174305525009203301656972014441937196031350708683627485466713271216150610622890361983575949285113841719590373170116849035855867442523519408174710186347951973267405818147990573456961112597248781693170701601083081531660595561586545210682853974442440179332289691934212800682095931113641079180712298031634426134286262331207892420304949519701446560707261246591314450067662785162272891899766672199443974718548069703159174671300998413142096615671217163033004308235715081928549444351561036248539555379850626735541283223428053377106146687507025139627150878914856256666602033139609032532846684838192017848398042358953823551621397894576342940096666528876569165295120415011825179046316870207422755222987303006091176441958992444475461709848386823179324962801228092438858710647427421202150601161574984645118430456901643188088059377866013356105705387869480974533427277978834601332631891153894017948061580170985312038359659315581407827873647130339079932559736330550268955598929292623436165387017861722369028158672970540080137144464054319384796527435299597726206528898842514700090822988889970646477896403575055823002304922434924867096322790104073351001098113406526426999323462156703821284646683265029943577985553009890049754224547376806402880627120246892143125185090433255788825755622329873137938226227748107227154044268138723119601436326684713502510452387352016680762531348115947993146651090263607197348190460660908324546170120700666274652061170346820820453629229782985619308178520373473823926607234227019768369939877764065555489762170736466231992429151530142106642140737312144367638674145447719985898204150929911857476971834246009035847008661605658230411018926393135250878393086931748842698309987978921169413891726050039874715437214283366350797578595033459712033062333194820975585732150318706121029440799148172350846819678523661620981276862091282674003427361891525101634652034876405105392450020761624381559959413683993515535240408963851332598877516113636893014203841808800217941788696361113530075359976178199761732893101305865556062387713479050403057613609193143145805429361000640261214560116497070024587439921076526047721519832369108906750667621873008504790355701209136888798910928669773441702472201318829626254408242647638845541700414163327811113225404120479916854113212827104533822550617703597913350817752157931277817705828395811715926592701096168460289433901818234731447867964253624745454653523194446726498343943902433479711246041447925559612117761020489988345752599606172247719601350861034254633718886208027564024974267881290606174344724907977740511897585148655096781431060635611275861286537457927656761931238627265146734623001870427088739273182189626005607958208356930639566896689661081531684618384879038563142165117885469728935736350179437998416956835296924085298724262606329809848669068025188220294823605066436661225740729412089203600967663590877017215260728156399052828498593901130870680036609851890541959497181894198448904776340700202698856485647104647192431773392831512812537610951325793147602740760742117839164287534078875872447345646501956272173335877834126573067626498486746617078943055830958277199286372509670532748340034137318948383032262773528099487976155380159437066017935322587142261429577009952809773111551423256793536941937162414995284310219167034198928572713964902350176736942992216149506628435848820647354411446034099827699139544949709956929910321319758990534009751381806526672182655020327349085146441596624808321123418728311345709964630050155708647496033183183386444056121869705079255895721525042744428576937345514639221459426524840713101781785145256704086107169356476376067793674282835338007243520511547203584888741298347481080399603243838500000089849460755020790986430230604384464215211737953380962945000260671147121794069953543580005300913209142606109188567618967202047642101687902050031321007649531465210779462115721231649419514142942827213854198574947823670611042409081783104304667245812684453288014702548719224827525560132510802108249290140540489636159071259048330432461444506239658548352203951782026057830731121925945373248078672575268281953062164160817279382535248184498725829487651009744424659242086901778180083891082420047424430356086923665975774394644329131349035334682966522428627643665195565469275394242155485652240907833236473342577327884478031078528961744112784996830360218512912053985827290656400539480957264790709548045960255427245440799881593766396566303339757134349272469509679194812611344439728614792600835266012571372449337453585896195405051143960852325356949006587907725157208697993107112528123773222581085922662677222798883698174713756964610075335519045187599284295332133332547658652898388384267594547247907309605614697103893409226600535256592829825747917868789488402765925308952307596096240182080769060846983104881857919830010377797818253285068843948832345823706639419285950213138644621220006271548179472615047199054052562923830330230094207095824328081028392437611343639390397031625108337898489241472026413811298388225107985947471971625170507069039200210782746498683079614045070485955346442581296039582022252515051819583120064214587683704475512452380626559318543728377018438601318208066862257368587100164886503820216957821788796038085174993852726780038846055019215925976122115209322241945548537031594144761555480129536230010933098922010302730545183247124269996066410065559141891348528945170749517989526680058928432934566845904609369598614660631165408609046147315416817849617466610293723129652603718983012463244183226118283363135675233059907565280021810691877116514897804856057262676809893844984090339638803386107125184250463467153093571042274717651073528145979316253912999379118594654023963607108731218323769225313562709526456260266512553070899950980669169282510861563898281972535898339065621871595416503090998989217608666956971015333456054731278637167336748125008210812884938178723071948196944254757513592472532434401534930447396621866286014543430050821403738337385522897733015623799960173110077180032651660753941169158697769960494402143187771763122137022446516810232049372236442770171350987172499115566364323868425003832203513883348816576264577542286443426183960843915996875124209460660515736465354150822395478919407120799407149566643631540306783650895852491216108604285696817325249070110007016906046097145407986796703033182476242045814789111972943954867611844161815281457113158605427544119761070549642364511257467931084433493305858081761375532537723780253616172246982774858810912518217741116347052153429799906172797441523353481478665917575430539545146251828045213074145751592587553767634553681004090239193067852822030508351101402983977513409891115444250956659141877998543503636572245748560972139557021929967328434267175062472645373418475117601561038284079905412377095682383775564411629139159213353744916753858753518734949741448822850631040709748593453111309598811976295230368862051186022048211180300333452423635474143540778781398162785206408297987623868567624209954484670353173705456478279686764821708994050850073539949271293602833839212602925049572316393641881985063315682702681471741961361413403048125367198805862333345206729975447458160178659628203329017446270381527739763053885332529392383091923296537898680939262464645923762755852293297010753972321372374014140018113286808281485847964421860836307210593540436584848780557503038736028527903657912030956576272893298980130698706819448334691196500526143904987330930521165587591850804897990677932344675187942280014750278031491297163483486017944831856355101810477707851825953294145548707495441763381530112527205132655846558405366510382687269704269811292505983061850711524926535746872308753115880689855350540981203704528313383430875924412573758236212221965974335507152167421867372637544658264353398983471270858988191842642065179114533640497827921390312015114317002491304266057376038017540889934227132488391683159194715549524903197343476802928179257109621220408834500671455698483146305877360805921092504695426730155995922400111848166267965553305811820424317986779345524480007151397001404948227300617915718360802472097318283839611079898801094652429743351741943877068414210580869385511179906935191673292844628562348763864695894028462190935779085801519714985118945828629782561525314431312478431521489396409650132560209466508079330145551126330648459251737409713040691230145628854279064659411340948922163622340863831561041181369788101983246917750622484274473869776966498753309883734371485451235032890136801506133873525140182526347045905983687964764389621751444024500613511037745096969918160738406287669070840943630932589741653944354685166830671081237466769578778874705042800912880011754501782453716274011506614724999830530226913644434715713887463411961517389265202688050965954787046055933210393721850770929899694104826071918841132436643260926310808960777568060133175028176821838129835336683263200046624015830007601112521697675092225045824184562238977006808595524484014935321032986278372785738156656366427526978448831851997133556337929325087300537204406558617424995378186421339648403861254823831185993026543460507273788373528356460428668179142212831313918462201913400909442840364778276686667478825036660672801264097412814934432267871327800138555601854633181721429502232560434900954794807644069855926640356061689878346600452771335108310351631234510734251238825009895113449849264876363608289439868754000576368086324760203862554452816396905563056514233878562176337643247095824608573897954081731302103657749890234305951782550695769597791155101919423773638617284346887427439030127624783190396507989478816824647204872449896584073727538053956851012577014711159056821937957968275741008448953734471633296753031703005095632857295529045274204862474985672483895040250947644073801299336422051198201428837051578411338200540239576245116865023214268800575896403859535656449498328383214118401214604886023292027004658668381915413912712914778953393297316380665012573691187283117559295420976720147778112787395502701772809586309799860474160511469978499151839628499958245019456424821211146645033427681157979421181708880546114716794885741817726126050160910888913541384617322503318652755416424290187262498912701464370871619789059439133223623242339081531087243749073672163367146087113250918673147018248375178085410562406047108400023871801208170865090153560901405269688478186242382113544271659506721765991987559673634966913283152021712908831993857993385547403431786933360263923969582671234029068460680666036975513256225862725095647284149456934790510448883144269618809933490415382351953528464351610150565396921960831217521459305184931532970574481456582944584776464214784755621174658332406954107861978217769705930897600741685884939413453393963156064397657546963260902622750335861725859072342901825237039531698167782288886864506194664519094526738328056487737458635429930866127611625856950121917273738953951056365457586041907377843442198361187041980263592791936963902346248131058017643749457461818654168609072490559651079862050899795961747840376353336678093651426493418327020344278147011504301703153083448408087457019241656191089881230865511375498352056018175180754889356584126061098264417645231490663017147610463874033933985559711164606835899210926783508287474361929199233956417764131139275726479258120213513269306823873566491692914751859027749682242138157528281275282833368917447959907711290070941820175295510385491336793354061677092414679686158166787663203916350213377099336372253232559413731280756366781727798428397829173505035718001226172570424070328771619042362006376372275014253149305818605742140145626332764537906170900461612079654210431990838388971844409271272760530176099291631079302350711788975800514914413233783574124410214042065122861748613737320151008365920614298701655543276100942671980174554359811789941050099440783308119436711138295345432623084180134514684478772904682535576259496061561835138870328902218763591874669018771162506384892181927729271444672806443844035940806803827937450661807194464336450288280497987539935699034584037268691207426488041154545254947729714721010222017109111730021975209444533336531709488512722303830605373240906599735454385003377172194181812735944050585938383615899994534574395075599927163601185945651237110616569912399731300297393208056216050291468357087134773349129358951172921337164123331470332430275328837632202867091137835465963917273711066389839731029726721339516524007958663109457467763347767286133230383127840326189499263978921377368726424497971726589157096982291068691717332655397896168861071107426088882672926085899974056073728544619132821846787243212738441287871862667336935882387081100939832284428400534921334004327380289105818228819695677119676220092550296817530171771014907627381305197741972656208469904385540536921553559988661840306995405665849066100614741302227424542509087719355501547727767784103707330631911097268206287966141252541659885714297308292657086982574757283257381907245995767026373147875947071273690781554059523550553863445390159844937864308651806178459761970674158884534457790665477544454592039146057088483020802319766626726501676546095625090323749399511470777970918142313398341844803046705897672391842990230234028081709135841590219130133275757960351263461678260235614157676030291116319895172412139930878500361163496129438095734363994693556327082726141983578581244156807574502571145876190653786146846809545421059158031252738027941344869412314137099669342535198519398999974224416716072737895231009676081868598983443643627647341558119492440544971440309680083313241843286173401601416131120485005615552615502045733570129301891441060250746520914449872281866775491761498655404359756706546863911879929085544188552146884974629019918053902452247788989787654427132771025653467913354971731810000948549595026344448896072197037388752853001287001375195099481406645678438551970963763113088436283425279627902536857428236739972593063186852257447680384427978085707105391252484798089311556818841152351250603612461291384498192175929681321606832514660418072903637064527592434034541262527152959311633162586281235760933408632232243512792595522331482898320167156229199629377339165645746990602673124695409479634473441254220044984420773004103942186541868766903298895928293383630882716162729541993046404122164659492246906287551732158627281196788977153960950015432723043112845212979619516991946796668298248401432664105997268776924521540350609622570794319589555088153394742527597759460799467760656659985641493915657901548147283848630763977460997073723073965879977674668785392269791565773341809055026059995547079573932896040935949415485613581750842652015109655128409957351909570522808100476429202265979021798163140903684268341508603168102323071355881349557637418142231386694565694545404062925077665615344569720085151745342703684138953179893343672106328402396145554482431145040099786842445269555661672521021346902703144398207832097922566216977490002317103553910424486053469930557232068654176101169965640404065089919260152630177826467274135962613277655283085647057971757660225089620888959452873688689270542531103148726498929683832544954144747097565529791383468778437349267750964202790491871752360806722171995726457743492524887639561082860093248936133586898705796342349734815883404456085418006837615744152377087005429963108267648022960630855294826544519184319243986633444405865316616894180319799046409715131972755784360684489226811498218117306869030134238100214227230597044893667543566297186840162540013376548697060347903901957728406835795651291310497818825347582641979919826621859009316536652017102201272688626358529950579634974740056009182792947239297640778062906239186174721247694044314992458089995725248548453028793702554688833476130964986214254226780429637641811945029594900459780998780230496269379409778134199848112070279695265409372352111426250404270811979187830858407698975017335579845844091205236946516299827626352012235421193516779782260148606962698976186524219740414788750731208977534105600880533244066357899088964650659950935836480600081823013695392754839101266894724358707577052574022355497192042568286614179396789593502266306587488045019893799835346407863841188545017177474120479872203243488378855074341519536787114503169790828262303412666439210943231751504632579570101080285703188455406932217906855838890463192236095862322161683653458476388007795924832147539721609915482721572644742471003065838946165133437946120248019652924114060002436634325701900015092152846382360513539202412718997305800554028248539845908240890109890084297939743196983181535463478606035652730905527525422447371027368193629752780805188578090960478122400137812554329554228197591151323026082678308735587394345095826570781069375023098223652342940319616079893188499286588539813980217672450693569607230101786889092674879433796979089684408259393798546737420253088630045741098454524307654616880278670144356210278266765211016190341051701171994881538255978608652337017168473974073463863104388517110785181551807158061366590889856703858611606692120687272773518463641400022712848101174210361131491784265881578479475090259337914945413265906095242859127469117805023019952912156267179187961808049323792646066168869510272810748032145578285233047236514836002980943548827191663382191956722781451854336245472716217020484465780241928221272249173355510491284669656090744257488156073281714194851985496994921171703696524527406092110182687477287137157517266644215733835572007385909209544306706672510819494288335704648593036174117889179019482093483421252840129960500882748224048714382250006571835806543071960226868406534344883486317937718164079172825287783325851418308436711094083413105390007782748964178865304706549781752860004196164447469526748317663096182079666211052414367027973311038487972987203126139490235766319930840180816432705407944845322033529893724724793310666226563395606636841395900692172776060581543104984263476875629709141101164205312223925348282284921174773559442736561804628437004557574810595702239889526590158167413612353775994154787837990043843854237371334719861769157851325630520686561126120003724649106418290660241451957651341833982516617859232235049593442869588434540526228641428553932394330441662741224759631950023797417977483552867341972097868533976846170441837057634390367615232845430782019693021347868677338075562295493454802914148985376576511280729063796368125018847921870345040100014535819124213581373569314188502726575358764347010075169279725826045150031900067780255886924525644001772161546931025745717732165582366315979872911302532698531507983979312038417888374543561572167764929548862272954911089905481675138285594301305989485385433770931847698156690009785621273220238298287397527657087287341058159451636059784576804011176162517826452148642117238065375618748338183707033765242570933256063484357480702817288369212833073477014948436001624726127399412211974334895538738573541441847003897560299457649397756096405723482637951014422529922049346515600404981782920646501004584367871234896556733780409380584581363404896862326128465929460123587645196589923894644865151424949713038659055948277757039218628810854700159056783116407829734161186320811021084524257232061242239712056357619782052061313823509335473842352230680220687669245062235177443907021697311151205965164854581901651641467653949494475162690836862348700908312352220603060573768080677016664034339817193392436397317984244048097778851352615559406905124493285847620681274244685429243338079265339783789984430267274898383375457721587227427363946735033301182753286679278066236251291626659681449251900951419969148314557185875387832371801779338882015623872938411488989181040235931748750990106545403614173841856351321939366804126920730066140093401743029119773238501441969679650622821937910709324679289288233728334419123239193808872387290125480152488017132653828532911420347033552535290090930955345788598539497393138971026447140416357475532194483189627204832787584190269476190452318080467496285679846070891282224005907311701953792393207215127254326036557489559401531051549673532037536017585117430992520630284265580874720575949588578889361512300444352973841022440791148108078850964950477487704261824168653796399530991278549264871783545372625393227186152730937118970294326757563296288807113832808167437954054195808597427657218438252560693495518059200376216412005084207688706700749270159501148261034555134632819036370174691817142480760671462045708958093750588892304014972430374460000422607767066871865287876507435151768930900649645224335108444623386246628697336438480773640439016123078934673018088301036577513881468364316666611669263106294136395063912790490182346917643794132095094760907932180424026477971498019079338521439429388224689253081701934287981597472525016758278687868163977800290836179019856610582441699972913357146059402786859498022578326690423263288050943221301016053906374118354277852827732946494627954314710333552853888824698383016786095393561596386943195141028959236613617218097169675970829130318232325281767195012613780707670937791586223927176897325861797557908411821155315764816180409698885640367716277571529645068578722844983801033709296798401450275205521357838056262745683523655376413057468999240921191151483589333190804156210612661969268226051971996244355668710437941633966617263671554845743621471071809923286842570071224018900131330122643174360349054745754132076724844888621711883615249377221622713784427665201475016708027754594653019154090002502347952793511172716257666439493542120621124552698176187222141331825659437798084745267115023706817898518181002024660556694873086119727037364972009779922667705910278496455930130224149218190780324107536983431767570501047118219730613768560353820802506847325128491051366103923194663132186920036457308893034981272539733712145719610039258070247867097213750384755193499707828965779852217642858932548193415874931397575069965708789188365444301338930681533457177885747533353777822541045175313585280251242638707154931300867634043865174630329354879468857636190233693420043757352465087984863117739787533858857834739320685254777754642276768774871673279851101241320176988260158571827195324331295183213539645311969813275104168524032770664287619759699652489515834511760073046227504990489023963393218236045284826067247718782121365772201372462360380216832109659808509601339004196452056344085203498153189408919024008130303860701719172671468996954555485648302005304265697145471228207481154426223634523556327181692943089365934666404525671305639887472759263393893124563531200250822017590800426433593863323055851531435229355976789397893035087726768332051105721835812160340261108771834536381685211778616351970293710944023998519178563753011950690828445578177935841839262141079371215582252130682465503316528359443500570084830124429243165449660737444196735608306319403041890347203936179407141164101658110753049989100170603750611426398511397093391468269613211045988942085588540040784521831928514388208757191839027400299398409810466285585346245409241399739977189938202167949736139342520667841393101660213792433226524924262340328798111835000111054503992544184707723251754944143522229742268191189359821259844657000550821339482512558829817662003543877125892693324908406477169491670564972360562948583074030722989814771399729550467552178884157451620402486213127295767955604504686542600783876732103352077667147036523007454640022663251120180054193157229676005057856737402257537400113341539585651474574142574973185286877181140438564942397887136534677125818253128194557187540070300408808130772424584230707006772174575884340308336572414916640915909651869060278899295498589857633104876539590757092063200144178552117773605287975410093696209506264229670720058898127017290035574557019416931632795731405825424319414441346996772671393746342694624951477041135071621488039963731825077296285462513791502388498134230660220361054654085012053690050679017441309601620641568369168552066256807830988114851198576525749971717539990423257323334167220710089231810987111501921244497521427169747725885388413216563511085470341594474648674662616167758516224308520959798181278296392968135523123440595987656596743160247659767920785219789707972147212380547929171474290183801702866485335489863357124359359896502744168882866835697956377337881509494850951794070643777654822662441833013872219466611201979999945242716266577441552126204754111351462708443956625556108042350158171787378126937451987767142422656953116835286194456606418369325355911991641471414548026300939062780254274578891454575852409274019266313759039365581565412434676707776993046139002319530205881971498568216910445341652892800888546521323668312332771579425095970218091568377797353078819821695984235595779812097762530762696828650855074503146949923001535138170008702487437495024606331524898071616622884672965303275516381695714756493937523070773416799351889985815997571671803065032060565330069200075284972726844922145188570694704977157098248650264771324485837985789715268440949663121174787079395859743160336453100909647444275243273466870989582974053620974419959085239015918632509765770049127947627629452091807422254178123580761836665405042200403730736987902000722516057257005018225364798491162126485488627293926315109313207033425317206629382875804663272256105663173305878140746794148185654682991205480999202523073190094170545114117873138170444820376685163867485615053114260811175280586105290934032250101645667054432030409655174329087804026271352899355244412661006514683748811517190861069895531573471922174042869665273132027941391698618153440019884079780036866941138934805365099717753598411490314817598883515100288294904079702673920784861111341122848363246016850845457206475278815041314946774029919902654099536629064507411877940327245696050163391257835363374113465835162861278184354180404265032943731051801142800149223439998806203550047902957492395327743568816655820896039197259808413141228880749811727874704545890081430932520776620248598468324973584425456236357905249333542531072436039458688928064579118581102659866164237112928578176412104226709901419889881335627273546234212421305218114866448425881232637138384566897460834086365395464209737296386949059705850964496617524021663290135334542734132392317822597773922682009129333068182246649171775325316484244909885482297105992023263667266509109029041562338535920815818501846982060910660922962137241671889222916854094291487746274079877267902227230710903930893411033522649226425942474087452270390538485483851080167324568250413242062477709240962174180586146841723010860722428390659167218982497323118528102130227278666460937692839089052997651885753679870850787374195704493526163030171673747321226951867662228879580120365452689245842779528878780672093754471931841270197769715988027561465429594821309089179832515630391555941228198640279240858104108069646202498007874536200985564077437597762526392253551787366467437751040790913099599166141857911382397453917512259410853727871292305037000738459970423018226296731226771932035865675022102480151757165997614777007992101588894632080312188704889926219762174573826106337056859970504756867456892481570668036440409218993808426623563041637243823669853962225257667157501833975880719700408059015261379670063936961895776295270823955593270406042685504493454775573256263017461763321404522751879321572681376867484033035889948033787599655033079709913783361437605208093628799888490348705039833415089201084423770438283625468448937149981672582507162723814208159383022479433071723441805635477197141825141373444548702662751252743093642988765668910567949976359808709294584031631996600271580122228061001064228342576382183163837884012194211615444671027101879470439888103866738690860315552016451520845948421235745696077785219305137138865092622426470953831299953013553128745755653263865316677853717401764767283413666585160816039155780608429768935060188042787810967290221118449411269607643055991912663339440738807977494043391284401131288427884670828530604710610212112917338708067232847990586115846842490548684636254401251621485249624499954095740839999481656398204928760848768742533981714678965960504766874984980864645604331923444015007639103175535577959338743207356528646688840863230101170034449641797495058968570142374736481030357639475303599429197830456642359650460418442006011374862496499471117679886456585814103090127579697763364342472470776204232470067078017438133615500569037375458612487556080141365589794987706459411951282196590558257552384392053322541841595242476818995760625531390311978907110565595434023678492080252897426236705468800564974387976453054499209122794972789699478150814741810322062307377109126146996277281519157553832503039313612981951777707233093892787416428507426639127282968722518112193399458742435959000667354341493772397069402992762902350293496523236811795532435852758248520922819914472226480804882598182174360351265350526870710220792174860573991939216924505494702013517404630518874970693597151346868758156396501198863746804671415853473408685586334583799650716348437900550597003552100233154366402887875249452193691395624908281833032602277576884568981079169364492944851107292568131834675471762068151094217963317521248206845819320263604587223313540122668205565890511846903462120703119542760452284803496055446200774450825695589438578448287625350484875998860818886651110024754106311920697941239276240229442761937643251416750006994923445526715126124465237903488669257908819475557221959151844900394453201731892150126569170490548503716483557645319049329447842942889800455906002703774588617408012300130524404215162252961656544935183483622512901688857676755472830430797703021892124190625441095643912945375058183504857485823727522574917035141776544475729456523890022388422529970258329168602975659684883141058150270685626355435660222637649334647341970483190429996602482303659323867344476715414432092429266091222477608008088722020857826782611498658190196627478900507935491444932815431247564189800313855222000216429795043331819652830923167205504187847937048011067059088828891232610849725155955768381785566654007519150807393021294261738218839565028708860403567801787166003525105420332402634350536429589348256056782665828163270968974138490043023064572256670991734501833047956641731894414236586131417488000838979512551017178592893145003419209077266441014168528355824102822635371647595051976880658762599538124427731805307354715144210348867860925935141172111381006584932415253226754512062495819374737200812181922488481741176776349314971796726290739653858110543469932140676855456116019227817418615614071009616517590435131030039671472434773371486555752905966412543375222088654355589030252612276791916760689044783198507520496973331990900948685559203031682753090477322373464852337908172430806476377117437750301362657810018933013269573818919866287834096885324534923681838548425447444789854650525112248412746332940347514447987371739464955764998174862089279079659735150255089016905249777985195166685145517997881400072270724941061551419015273054982731814426358156459439240445600975222743618162931375814863823855519892866095019273105762395021686569010526376860249235421857732826780597406335293222422735310201645236265214183955810011901899739025981732191854182179722195571456334797919130175313492632882494529108212670268867544155862260179915271674147807735847095211327730296709866263850260684009306687589098813665721184954580522628024369620546530283309744941070897002823215564126826327820757921782078218209024108456919052303420982323824668463397050360355984769641596902042196254074465874093659994426381016554315793054521693443944391272842374807096397765017451847677183855170265668715033265883158038299691214296541349184738008192475437552081295169665753434605639610900829475547192405796762144621864564755356515234548359347862104687222019570616168144309075599876702994587996412617755135765271792281554314763560499964845712316875691985419714427277500569815392327494643248644174945947704568313231851642570821559075628654253742819631236456044950158242448816855096123449361348674854224165735216767105115259112373406163203302874825779591309319266497212588865426326639071500402839013711361353132188847973958574017536972455454528157603261303295539723779568555243004684745457089475108956014963287689880124889009451688219444299938387589593951518066123947529754096853030192160127240086891702873415561247542650089146793433210134927949230138781915639111679918176128210069209538141830180857333485008805422613574515819199315246816325798548481410085546296083776632694962638497546118152784319980491290628988741358872821682596516731617284089842564977415706472965273506382012559116068476107334544454508987883957001240319326449181388830817161247385417969834794846290345566854480580688405780862664198301528821081890276946802994441260114382410871978816404687238307103468081113469441994053108137750553027309368952676847875306957134203485295953615315969990459025398749003747013115232299219262900682344497109492414632841160718560949104937737969886119037233105400704173604830911883344713348320259436700629303673666599025612774608929327903826164377761178007122960740118853375766578384764542663214981041807095033638034097116497890896415652024903864420177219878362096037524341825901270441181912625147574273349998841038964729975986594409412027768235844181388234447380324275212787661189058505868669510524370238407480687601212615286296203301482403846978702849473911868315781023204481306106870501128782476718590901974056146468919816154204852710594064737034649489626185628894885326114244409755213789476445528131040154858384119739293378889692098297460303614633643661327205004971453286489368050154396128335443145409256248418014639747898864307544216845359648229390746492204653087751114333193244333586232588916509518190074500436819910154346007502328878414356964504919163449440393576274987529740779269362843341931507906429809203400088549633349572555352636843820178695334633696727952508427425826523415850846136444023449164243827707974688116744879017223969688329286408562797286725333475367571406793616869759444454326802464352770200792312769830258523101096598293608142860784646472905312847600262621731585622947580230032208597334970139107129640009661746136031015907053284531657750025969949942507678310603337530541695974281395094011736266841409766051338112210300816816547829380274134949870446884336331640024051490750421129966649290959271338440160174333248749547083952612735250999215481074890496811067003668820267912460373096379202790208394669694606573339648691915234260027219152075021530285795648588795193281181643752664729728586621367859269357549294434543467048139371284704156684657900824554463230066151470545856604381586547594234932970793945718672823975214924264769600886401316966699049300369512275328038880683569684174123009439335379041034455239415119215453726988775641733952027014004293340841557633871106454948765481108914115208409955145749238399997149960721439620342445488056703854992943569233134748258543901755123623862664571787271829767247045770549825319953318412626217897264060125433427150776273206029456412090332912448117883965606996640810877189170018357930418859260766791304468471471954292627907842399568919011391283547203453304618776690455554888730733303163499867513803801174607469437996518501390833447796443599623558579535417089043471685065894768579968832563178570772065216565400874589220490779539153565506715827061900973479757909612125490085453310291467398786703475217245058143655855861722132545674877493816493224063761646754231413070521361174253956723819750235562969003970972544935179797159815443548960732096328021899939082636660822905689361850479030410448859461340929303777176764099825999587378481307743312269718508445927796594312268172505800707330417939023676204443909029807872146566818417403387788839927882475857959001078119050678021377947726012290080996450804776888560957327915234527808957651167303113687926624486931857312811386661725971460526437231599359948747913358490131726510495984986834510838981166617615850465200589508870420186752697170666511597252433851680994259381125797789578555437448120167674253539750692699236404612870605316470406633546219971887745418223594954207536117348706881083913156595741153130477492185489868188973772025177408731793233735698718938382060575521049116694788212065138053999920793496817150958675001832971848774231900644635809925131764254380825066929003667795472261125912419184116661038554035927660437971112587936089861683029408057107153728457307864458564618544314910389459456591438239420175220531544357077986221996038389210297761527113153747411132625332938245948964380120876143739443593551695564667433516152070759196591114903503820784335612477266098575471622317350557896083386578242965507164264510492281799342692539646880368707206991115132736682508189692142814203768589622932729324438819766997322842278751520690491859590867390585616439239953358364204669524426161669727444270893087246109994694484644064924628127299238405771211982393511988362474914772721489284215248467301399604651171739823893182730484676937794527108762139101418200627820772487610910183939732488394287579913812823923411711958321804514487562979765182817050746913732223429785465435935569248380805114519091767854156516006049722844983600914062208095353987505296839531317557356593872134999495743905092110741065858079488460618262775255961052899764051529839384551934368181725580108868226551940188812539318260013078143786323951477601006337759463863106015331247238883066303082083285197726236081654994146104855430835514725841054183358585765784771030059891709870558228851307172775401737574025502905289803776445121420589137046107965860736462201237828992826288639303972721650566873709140427190095422525731191942872403354070059993249983886223588509200306073324730891841533434498984044276669756549727706972541039389103082352820288192778216083456694770340898326002423481853622694654205213973505811806374318646857223199714851337969733725135071017314762378314071785715661085970355471739114491696524696748620774415161633179059860895561038932719057954828282142531062181119471584581967411398472923199210208495433463176177853213908735490743750559969605624867938425177215589234004282711838712741071355270567162334193224931112450308125839736208104635817697412699275636561837877309147708808950572178150793506050563653587449167683929306271024810615910255578225841254652324490987972983981106954873578804878107849548243755972663092847622868566463907651345460488870769421842362661985327255043948313717318939235812173424940931871197299926669645578991351982809639169337127907104658699424130014820557282528774751948002737475690990791660888158597511858009705591022537696807387164114942640540451147539496191103386786615661815141341055955087439391614909541849834833051447269361916317509003246149099392899071735418158644254137798450427181288538421402951679895616374924070060772820479834142436900580304412381089607632463945409829729815186223341176120830919501424781427995026257218715586355809693290873899350434663105229442130911978923237377796663569735331232211349674547976502251909710099569217234894635628674591409067129131473554106457448671966083663590419996752550051155276505632856508276916713913130880663699157575192277774061740864495656320820297594112813749474863788056076513967983289143118490742945276416157411410822395056992997810161126891305987403821351109780160160313685441856458028909042445613427379156385448155421106146026981927697152015075329738899054216307734091638661787866976128339070599925194678583318333523764617520133607522635211954674773847216715792190318386331535622560700234677334983178258149696722185140382819018375834851175141935423107871205566986405127508325530461111710782778158804617312077751362690184012738602820422487155442652759677360573406531227372950333459243877603115213083968857557290058903916831173895066805542599106681141547059704387593943390838417452836623095798226182663586270189780578470423372992228176652604778348073328065303313800334328709520473296467520523649863497831270093134923419786108025304188165567314239210682680304636142880970292749454958920723176110840793020908463178628434790618507161377281548929187050724288308363196553535819147718268627258296965295614495454184734146830139159299700821891160408107505584229100213443862490098610670862973265987904853841336509329713009679240490411340898247441998902472682943526954700871088524328287533333767637794978764868774578680427193087913142545636763829312199123988765821841276904463605547487263217109769875660790799461671602962743841983504058913155282426410358722501094799658941893279950612333585014964553565690397716159091076478544200767986492910292236155206602940075361520169998958885780402987514909714526426125351117404531265794760613638927216796240104962360128531666677357565275931061018182609727931668888181884530796071225167633152156066508391549362259023376145254840664203193591782465328188880801874091572271497244429262630221242156737193006164418354311477547259412608923673660925262396493846147069770678965884997542555258444408993758140620706306015287621732391116122405941472109057139362104276124521611011486783647709129409687075904858973568750082816645446472851105137524011423366354786367846675041472293192692783264971603388425884318860230634559681221128951290734240207392022448966377238541304262213422371168387806920776199973530936461684543732145090905899048494203421478394395371088754231584441370416591865275303559921628583112776772929740768331509285743913540227066368210012239683643799069894783981634007477609459022343406003329621442516596488854908624520527251314797562700461507712547318505119288226807194196306363473444271022987687073848488882201004890654810779210860019491024977483843389457078722598727227653625734485014779401116517148330352991581093535468963782981847221770335280517324452193899774798948903034794407349629854177280390345732126948645280858966385023486261125933345933870414325594544910492589733133307659281133556296173096629492533853542299349485865150982262620171868116661242908514618040571312454347949588955022754892493434383680816899371839253841485279914682744728376490406205584136325564640867395778396665021939819901752038307007841333776121397790112068295892269888240898216877358423474454901799002421997477677297557273097991997597590362563945164208253246606584653377705993793808381561699615332147269254997956696404694512436752771678717652445705211559938301082476807176432015837886707447912023872847118418514237207573029945987187399157368630319331673859198252580052800782185853222272428734328392580006618469632944011608460430366909958931457888330844599463146686644327926034196677663195442531553389807713609912383880588149962419610990991952863560976790671723241667363163507129085037302732205546811458964258523944486614174827900512186406786124728404797603274110308378203942375579935686014592934219494966101096051391002336197578753231491885234267715077366809400426723316632453010952281318900567036272169904581074257316386260520776324022087079004123486451271025587994464163406438335878041248532541423105633801746547809184280911662102672537570499762473149646236693628552925291640697691631122370378162921423366175062233968415919640147142875554671818872098431410535784957949743998041264250275413891261384415293086662156434122620670224309378846414639089491083715682788403535237200187027609307922311319445594480666308177013793361103399433645708021806871507271984133611135851043502745735506160987116524998108285503567450244827198652399817746710479948915306783255573775603500410957812312456649103834784199744751797412655160730492882710296028523545218135152114801880682430082152647694695547962626676956788567653460152051174863044691859660864680404308688921078516433819516395282117241655383485020578174247283216569385761805575851739729681922624746865968407922416866613449210623657183379750150460462070681956805503765776564664262184569086505288790749596566386066522688938902023310883398132550987627814786420818972571755474159577564106336144753901482088982739875365804514810650598660736079560010017662359284081779450336325907084019353351516896823406271716749047037478109885774100786165994828124706547789558556656087565651056292488260718526995784925888462820478995104138110370148409324766408612783419498783802661872891588496502372876145385722568977870561157143759432050878471484290712715777953367201004233625386358944667883440309942005440450480814903315585772339337558332417533776768166619922448502220669724526139540590523549462215472327454985410438909563508700880914167902410286726198772195512294287930810308761184117282940648719979725693442187024382754060593036704770728528222533282458413616951343621360250881063608544664143916107064536746401766385062786508377718602439067565311026152920676434332239908320101423803428018406973647706455857143773257462366000581427234063502936885713040341798844007121986358374852145631962527469131645284865391179827566055256481668368878336376390879903609262771665140222820119615336393593438142693906323111127562174344717014297177231668659816267809757240725591121368272814272984139142673870686825662124384950674171283610465824283325055010429936533613881939372148480255621892201643409320154727714875008024746891812137598501375366723831280127955412440150899420741082585044429131389010440315046142025089355705256965640778077796950276466452241220490552846520953124102430501893137117384736422361999915418913485237114019038053927113873185893848111489239900437168875840041751710359478302934435795011267048791919360167519422417790152809682320049705564138045034073646050904977214116525542748910845517692630848753463512074836314996062499772001077463825795280806430640108520411731152786130931071754157104960320364708956131347130482238237953432165080894586787476076745112624549250606692074413577113058297227902584848823307464349610873694700226107661535172352489384784816954592471260012396834629946234584834812142066585627686497189400467173584464841598012357220402655443922369966707900630682785745442232494176610495138510434156421739984122569518677815995078937000600222955069097397804776516885767794912581756881338540079665538049122498650856818993955203565528740752490245397999389177193255507160977337123858680909515285909165064411091447886312330863290889974860183841968633578977886706862337078192285396384452510396564576522648508941531859579497891290763662563050420925634268006024826783544051253684293117969236200487499146729457316389380232259751232805604174168466386450999787526651917231095956332990197004916248615840804701185939480432705921995845470769438583940524333604568075705267576573281287472727055947820889368592508362760515022208889642706604655709521492378323614470448437371735111670259137232801518475860566304470781339289725439139116119286589993169329926168772578697568215415969469548954420088123259166575200056552376738542978718932895112881304856483031218705897649145275909835442893658413249729690656917914350863013281104647594258700363920858110983371265836427827229917342389576594619318650472979218427492872985693784438653049371184224637194271464696679906226766109751448687887916806701980991858571933332611059980794498393191181549223416646006154232255357795575104001583252292370334020512835405709938041939727325414949353680130858902378589315237577065733515272061245500357259924079205212510868355655831049308258113523493049713785394612555150266482079412850148350274624801082686750094176055355826687600062952412593353872765105066619690809806636454372084852648372586863431448572336632338670425527328619080968697106593730877140626190153911144542686561681077434890590630062877190585637950711588459980936880187529007208379195937713792400207323197465185580931945187951155582538473363650984848200321950519023130186908326057986155895303206936191910041042337114016163400116708231213253894894443961773333296846636712578183822414094826372891561169920094443732981140291433753544169836997798596281751469539283691946758057686540529455468990885406699591949812829221941559531984933264811863645691366581859128522458471390932419151846552522744044749730030327523727388323486213742136758982500262052912453053138912650803208381766190595327533189749197860510464237097699274523288597658997502205677612027542777694184613045468158980034729989272401431619096200889665005927632565335627316901083859108692040564063471545540502649091833110945612446086621905164515586328364674792489592508044068735760936923406134133726038401486705860724086940339927953038657723609659399864535930964229141694900467102455258163266676670584718457917714808780063180582328754107992485381383886042293475160299254335406226821507764728481387380422000554577515138165487575832553295188865738579986829906715482194884482061690620587155295515329861192578480706224237401826425938399482089655642040796661921351526257394315021663781875620801240354303952056641607522071082517007683609177403555426500072174058660951362556883867743480239084184107710655461198290081154311746716482135264378424014000509510345660079690525065808523402178748538653674652507180628428426120237224387518393710542383178872255615562980395933242716320558015086701971002973293481003259979725237228798708594606120300788563788751971794073066763337210484180346792955749477953260326955723623781992491648001436524666062642507851404953119482679166642651442041065510102530676412965943431176898016879849708265708850170690528290428627068891495483719877934153439659701657402193557904208919608274461117898246839213328643677264281696312231800097115252841919435226262205663851835490775045963533858535728863947274220572467807799065716882449181944934588487067188616078177061721628006646422922976892341136109140895036088950067151270364028595122388060213133323007008152222085252044927661213550599597797070124806502629778670218503611189343111252963557347839847259070464442454425584730257273790150957892044272051722146339399412991620202492632107131236782716079578762221341951177094562836669629575897429296044262648888072320612872748536710039482677880480324330097385047969351374758418511306599449925808233648199334914377571878563058672391300684290065009565148387381808888472906814695848998589607677012390510385247024934107345374077437426537035616090983884691890784864148129650462535609390605166520319124750929920471705410531214688995862074321296706169811616786480411569948902335091057467864154519537500333489326226525355059438463209874107733923279779467340394718548468431689934990408476381289764255780248418124429602608610315516892412600289094287066357064597197080634997572409512159008778831557659657741397016724725702648766905615083512911591049194906645301864193325626241666238067912234392886466620362306433565619525205237527305189876780192035473068652073620077528174089589371024840949186130483777847466887429713640988409609394773139065804205818530895449717080311088393466526356594066399224116553499074337517724030257043636659807747187846520426105348506500579539778311219619843633005795125297466722836880385361662554507322961161040854386492883070324209620677996697787712692144744673628301304743408073031994170858265378491452564797902409425758072289068422435359661778616177571472066403271976214407437933453146814958781315274288190026113590202913616927493816709282795313642818422892160757593917161118446451215272141622058371915940646948818230894833520469588916049735351949928236501907857279773361078203880389885295024025079718568266717738435623664889413402513226416894859774297154916062849016186962032068108455931029607174936700936240854708457545085361652273634864239369999150741411968718697904952173908034472701952681496172655995459888774258600813509534911479135284536077506640296622356380307877320893708845377908682765391709738723101360734951324097697128472342255113318351004362378267643958286033573206524401235072707915943940411240794934287641767098731524548277279335914308010865206133746927499747116945289249647688523619749253496183037205011425568288121406294760722725920720767732096278930378392870080798439561161871544226292284536932483047657563027123653791258192792809762269359619353741732353321330689957590814104202332128008969031809020558116967975316522818461717236541196143623067021560817473679192926939825964847316910442477806494497562682040547397878020087800077613910893271621619650470093708879168891375514262077902705694535812116401537369289956215682495679804665007244591273290242071607648033004312450383553973473589667276265947287731054581477540623091466979756272726734976372642848765925032544901996068565998880723068011111745729000916974287309155656700399981053676667085533779042346944137432160869727874571390229237821289211644471551707689013864499958238689883016789315586991708190505814278345583231826556826308620937368389502375247481016929256196086568867275833032248917689506310867432848348773456722454428472546628350695532605893815533318628419455113803840195554876988854349691412892366876965608925996357273281503087518511369152194436338878067595001276350545378975162150856572530698734909279378450321290023804945084856175811090682087921036199409140190603964706290343118651113161896338132292956125869430953120814695047655043140974581191873084038112068215145592493237461279091457032499214131603407544899877360507118065057023514920985998581631851154840952147842531510012044444483640373765471229989265169856987958305469839886520989066824885713750106700978607886940226760934268346598773865480774243002034354782129208649190469201314081860436893362269865829724137140372655003606211245107972273484093771573030236633842066138771324265173976271839626915790889131927641470281758253059114955126086845182461824021080018409354671068529824990059493077357146256102231028075487837763511744576224286155171964366689496638984605710172087650215438628015918986184611868380877451805597794432271521608600425996750075238688677287984603635821211323368750918611213410799731480204989173268141460045226599035198518847800283437704306791737807573415057437642110778155974656485665205842546256554965937202364857214215164718623626451964101688990616421427353883248788327347385933780313643850343147550585172997094438448794141753616305870493518951654899742972110386919184321309952854420069247446496911334311780525956302936382599287462409087490099335873795353443448280424072238143273419096269902316603556870572811068787280908122875334827479332832278575475361132109320908617193484256980069599110791079876428811881074460161456276625571906990627729927632943013123536618483997306300534687219803823310782884462880901831437808463192661283112470864939432524666264422094586349768718417897523580716099766956798216518026560799891406196614478072192119194047115705943793403784795997534469618794836241102846051499248632161882073621443830803364229809978191464684130348455936109684561269595530801410417848290742988540789799974923252059931078293319972355560998208626254024839525835046394895494042016330320757046539191109717149542117148347112754276559692313612159611458073322943759480033305220540299130665186530022505446847783086429734366139433712689934457338043295018144068189760439726057434478461234812571944216779745752156949050379269894749289185082927348697514568809426739366002869689642272314430797025154698262172833166417449639222504744840504809364540550248858851876529863078488618830993107082373250559041413331234343742916285840971612225031211564723292004950303213537830909747617796545036078298740726136533684933706153473613414530217364201793601004337370219571069195341068172045133124545354683768909929098799699728203671244716760253526760333224289650122401225097071849454283883523673636791112989126433373040734373881237815215769909659634221899194921206091636244249423947551210442979953968139604181051866237133005297726568208547541582113714520756848233620827725543922732307943349899191282220144166611059612573737008166877741024401976115362821331868827335757640551215006092896895177517104742524868580805699167301190669479715143452749353753669398902943130696760202030224814270090089616651228559112115659017200566525426921740338323134760709764340732230058365190987236365206531320764248344313238373102142940776633604232366000240352303899842216913167123519518952519527486850866887197307632179413275711029118859969553566016774463148992389581058016662659790605619447051211579072011299376925494332514783450869675691893133327811180282324479358284531248251213582353104399243721897893178399499143764174102776224843501922692386980556136719986831598813720322757811182682241627440052221272754633610388816496088095513799630639096511489659833874181641124765953012116555221896140816434652790847164928855284900095688681666011099562008182341841401676892413389668940404312560852878255601868913812837361947597934140184245084114256772010928727999980216317419521246109626283574557744807101433036683008786270611752065818854604420281657735025858209298238654527131453998748970545053695828994790786616803000482868447138910416995065104075381868763385639489440059438190450442758249772896298309648104177065021861093201972601005916644878084224123446683836374802632853351828607134020626439277695441346696818506085475218218954082612974191431446951507664029027316602831390342883587753552319717987279291157541339709808860866511228749685097444544281763435440892777818881990334676019046488944835604728379904805959081727489456384874984884153395636659641981558067554840812911389113281706217286704916662172781023742722994441428730910383901573002150659049393383734946485053756319837080864038269992454856207721587069896054129363822105704969000857332568027943912117006504177602473202893970075132874193696525588438304857248824726764262470119028157889550346522192850980787461417775702731304757189652057897063819684088747686873317912436456625453252699103516675704734173255581196693506860886562597634818281083174806874120686145877892563513812998087466469576279945713959895501959991334605995249747935021797935912537363521985255348383786178144604219579529354637915693202049795311205027572294171522918710117568751411963091883273953932645871159800058665127254234683656710542164475596202071855941458958733356666303858681635240790828833171404111801607456058819059563876071889473027938458370174577663921708012275717097527481236765660419890914260104237569463138137440429112420790173426555849274037113524438204006386831929722931633441716822764695222178456574354394227751240843216412691363844383346908790657233163597017954338962157906728091328993705051386064412958768745517417775199389308150573190120661038598110001858253485632182933756578067924213871021372660865019277553660262342188071291669481207893150808325092273569909723956883495871515341941358218082364146773919491857388653925494535427370628417584620831853831851127800888911950118097040783568246133845302820673163289260454794530731476022741592899679941468252826194172554250068211431483833270523029995130974610374922925604637023588867516219551966985235157250877001006488444246910833953311063047519946786773412338583193373288373480510925822232606895239949952566510368685428364259712684092528972435729563226833720397985383929277177836277674818673789885500996453233874693208037983562257474119772120146059224429344258325060618597019166864446705933865477345891320778251606760616517293903285531150946616539692258727371066869733573075500500021212503728477541560393895767348852314060356611505779978928894704673164060778547327170637729362951848873503452117558677011902684296978059439894783452204823071475267506729773711278828672049584763310845227363406040767115655758091166357256105981183935702561869617453029809753220564680724806372518407458218254310453461650837673442805557846179650279836965284806623923497460656604310121834046380229946006073395236540053809272175833250406249895101105885415557990949614912856805066765369063478628833014359241139753929032244837242080866955806299159211919802815631729336343228710342330514161561406502939483526623520121245770159805935376241655095569829739987285158367742564362400476777024975743108247179936644790330977256886577467063115587358683757469375507513122495093159930708005792050453124320598150417242989651759127542193668097548554248137234672083053230566433131807046374438967328272140283994869731727317062806020933625283090412755689690666079426649857898276200510870483660652206219177515909356027503093980326105134823415336144805530798578065747641199016861800849956828409825702234091927505656239221293269610602034509241462891923345828388603742851561893267822384897058180914791416734803726498557601309470133889934347950663506800466985528153965407322837784571984324552635586288342278186943118185831571089663064984244598725561376189415183733962171687262135437015468611093866325920889124907572959349474214288812704005864231625418333647736569785291552416543588093741005883730354470181021640299434434359110251086982220614862664988343726891612307609774779121408061019924487074727516696621615877600492504257699589927519256738930025430636307215841329264888900445957397680864541757685226982125879078133356632373092326373273169388653327347477973080761957663921952347133723852961190286986294777318883121681425706169318316608990086363190851076562055866107487627050317935086046383509802142348636701447021021506404157769760206794867447456741646917786069007656413744774183127742743032682883984314484886106349722344490186582787665940661040861787599993800716469710924663224020742854398318913149847939735969514220518641564628643260119123112662864502881796271521452584973964629339231603970008082975590939717359895457662599934082628397145083437774555405392482227841604833529060417289059391982172905423919827298103387232342989132714512430092185098645858927349365952180025433650835076495308691832408397672737990975925651890852145245589005465216681722354619284965874730030190733240347028586705629905984572268592784986565037430682516596759977820375461803241591721255559232204906759847884879149374720478875634418781126103193801852684681240638253825115906550412342236273256207530414461329426733322765818267195168092225618315894997321850849487849333936771617100556350987554452053462937065384777180203219623088681926310578548616829374525770708148005819043244720334270592435326908397929350681469573174539762500074924921589955300058803303803796103873180840329276261296760173721501566761465037162850463224895405506788759056173960989993726444788341250034530712329608975281106290369418247673454924402115700919920296344923257650243731951020188749995784754170414378244727019528873753205331461341061594750273869519260802549305753877488342471939391237623482696281912511698430822159478945801201125447655775019079544977498922561069657175972147727493327289337025532721369040772472341528646708982938732008988341853425213687242013854182762601423427967904399061581117328657350811298900588284025010932135544789391141600980475792737972915358619621969624138285080123511387945449678579671412202868968514895768750900460750171181614150257703343146265927159747595039058051987026487780914325615783464316201397591060028010998237138892352274560885977435939685746874506142018299174912325913661138770978690815389354394373918877165381474763185402494690732398931327291685929494610510763108251540589024058457631201022770975171243659096924903207991236152993551097464909107618112355816007314603266234292028820208577969467961644727423494016713584734347756340292884437285241500166912086087540316880816202158697340546304697985503670675488422012819769199894425862808809522101562044677332169997328303010302771403449331263717287201033363832208847111699429738594176466417387108649646003307702892690905705104251859324764082467394798772219645828366284061068070167869187866918581487870585930843358503968309259471465570033860544287613967460243370813333872923472717604906905014988250327422989477556848886227338543977163209936749188102030954770007250317652717650711922213659630235802923436791874024355593191595586624514463561241113490444430184749842167613271693541437328120320515727744706082927805918134386062858331858207806070690694156461396024461082762711633698917514723596832605859190415903934802807454419490192075316121112632493224104815284477159813543784609180668115723781827499975988852309458352925019258234632772890270275394948821780953827567153713066903121481015603347930176566598179718345345184839799366053540614796994184273165889389408870181485034426967303236074509746148123450775122099005864071901666094126200026117093465760797154731089616212332808001288762789814737774072485416477549452358534802716881330898338402322924269780103330214123520659675447434247912002990203348917963660355613278564382691488508779364550078758192712050808924789490649308715521154001276435390635328245604301143239485233936453831724836889826021271847448835839613574790747712112491801131415329152704639948992188064716145980456884388671308377810811876589139639590170967556280197244180451675026943033445278083163223626363665822889150223644635506443190425908579087136154585643562780896705101734960890255372263628893985580169671867373757948557279043953294002174051054723226098956105745879978033676196330356837869424603848237224506435442607863183957265267992178647324181870841124879154130920510986569130875402984154859061421556806741209255945608829423550718695772555557428965107217189749324026961766261399612164064583305927041666025087869393447722425488449675724183458580266507322582452067248761944603759725754501605259160186503204923472353683358563960399827181304729533918059336496005126626035536188759313054144757335663114962075549832618523393274297916885208675211061287543999345430472830019508146436941803811202229241739456388719911561592767226593655739875955439558189506793431253652180946161997061533460234525703423111195268862219463551794986257669001253324657927510794049869711889155723633564075983117010336071312238948236511927254156959485361323057538606478550965383398952334169722591402268628134753332987720140435274521137291814421506257847071829984652134749809048666114314045474421090734239785345528920351253869549453595614658163923685199259595396787829433098132606354419190757818110280423535243262739357425685585051783604951381038993387267334720254237547731253261017746371469081773716041376620971041528708455791780833270299250988767260969176785970886653942970783305240990485874186714535847622749868070043590855958789485643798833305872356583452010992347323961415367591029583406567367128748296121889816140969287880865333506706954134280972858135903160751525331848188904593849073174831314647343067640493204458066070834671051309902161146693914345897352420522524708759041561510476931216183508602945852625831720793389246969247741210123164536332856029365652407868907827878389260070753370095000308008342765538838537446800656652480032236585888466806741032330570428272538183605307434182917385516737862987741667653684163776933324357225477187941926114839692331275067189971020135953578221357485596678255049329342986197107727627733301119439983012684079300494515794643675631538113890992575926888242677613689476797907493183908861094354821210329281431371280711580579811243196670880331675956226250008768535439131889760108677198340491333455955293694723115832719228011360146455335166032871862573954590511010219243254991742925114015964877008476540685126767001324635917316089819947201463683000785309879418136333473665712494291253005919741528307698385504898130719478332940812361553961729979314005921045397052788793877994061044512884451576744427025917284885471231949398863339988599998877773036783623473745300763658014285773826646558856301154590878974871502344344503552551927052252116664386974661327296448767163291753674949196464473792098978168101607621659740365244241656730405082374667328440733329065621816207807385876834083126750823021629739012251132420536385723408818259520018281546913290403131194828896828444520923097421124444924349182684155527044333450523590699531607125544882966739420265245219099076913978261163674374950395968990978745702701931499370133863652092238352988735080338613858844604484832382359364668328543463177132068272495944521892944465593406003885817891978095468659170887349359207412899295905304853958466121467538808641420933247117434184703182359818762657787943780547394151184756829263028431352964961188705584104886434102707016307998490794762881871804067714560084029233751143757194414100727565975433985335496885597745018265562253043127800277661970975094334435446219100172523401573182528728363387788486912292392129931221412034444352199508762984852156646582629181498485622141997307478906631376605081078130006719064344944060322588057652032240316231261737961171696094585737859780758166865453947701462916610637671722833865315026307322183773998426333500399592615194147525864999745261843172307196084822591761377783060059096284217689387937736291507305367729976192784167175667712537757736232389213721314904046042653883638121339141039295544986609377247118953461533071916017230510919520422227583790258684343611579023356086191826611416449257408136384631256070832650340811744505355385065606541272713643598178859299620025437660347943418838786453433100665361305120002254063838158491659230045630173689047201939265321796503618039581365715817974208832463076948827479279405928755997461597219403150389382115904640014580874230736324175585722821812325674053093864464061193081318554618800423578318676098017737181060575580556343449025817949780201455075522332766167968223845150417035475056651403261817350153244517695531283924168802055672080100607147074581117543466181616192357011754280841086742018813669887754082954134496391437002174154883734828424987776775337138955810378692289491585660958643133217483774056915756171146789386731540710015076642945138163184476116279980819413851293486638887769999676675715580261762740744212683056247509182763570882481590009582755125341287887063438933210700452979289378652639915903866957534880302662465615828355372706480995418271176536405739656460753526182598443938398523182481303510757352918282504398472151485901408302951388386728523824062631788996648463298428158811734217133883026589640977041283158142116059258588268995522336136405672512578791732292486197378298539984801524996359635478122250863056705628463445811114601779850108661660838186910509011941722337646935179984112443714338871164626758678557995598603386783476221323728250012706204136808162094785041908852009399838474616145627342283596440782596237133988333344065515165268431568583282841322617193167508959324929760057330611484154190995242297691092932238337780465591475608572169986981123936962545018649361795968008273086964643371750525279112765503872466170848523193060768185482631127398926620432251221706084917463258056908412594412735060113429232519798941809929935034542537971271261008076492423833566309039301013905489274571036105337104419084264967662204589842311417942946981981335641722152343053457849316683175804332388364233688032589578429940695764435050253958200848408675571501067828998626002788986203075022058111843677298065402852825930807060474297381483393126871235979440847347006225455609403257536248273258732084714187722965420670864833051531638834838545157031546481878211673930161227602719681156225529714030684088401193997129667044936715274822162416231440038436630776257937831486472913078670339954708410889762445689665021195950235423677318688143523232628917713501894652904188859438000355605577091357022115466246611156571150270646112457075266858805143383722850546216796893108698005564298872909179831863849070852756792886868669062787296986680147429543501815035504472019859494323698527083124290178751597938879782138456973013392043814482364466817980412603790575559098472326597550370555602928124143466221337088693929158780632591170748249881787566629482528262729232985708853688600989782623073003154630159331402058690635298288188305363002449310690282561460054239630100959002984894511810698257715415002588697928210109475505852482582543096284890546418865245837211844552993537932382750838408268305068541707053739901432780960568840714380990196690771489833453863191266151171591785752582262121249221743260960971653607486395585423155023495151817917729977875557756914480789335811358554231814248768945354405946279882875993171257977939277683944111416135776798643103507177131492379025939121982773558616152236849408480696537327543589262407799548431910033945670699333309738256253145211224092696764853636414927016987132920311138097429786330094967320093567159954165399421446629161557625953633400156278351048260571815391152245934905732966811952878319382065496092722560500776385192936905616740330460483063243894317534260873696739197410197204571706747255265190031558599971734237219588434959372541277833334775006592896268837964706899192237516099814349810633223460810993429754703511339746914052881951032836604077066886614384549288796154857787791278003710465310783411645567805312066350039632040190690611450546479339459853324861037956505650479486804387078738255262080250622547817083141349800823265663172891687656362154012245440351130081682829751569132708709567800421510464808794914647657008498851112727083283298397232980230850974932530625526036111326277139879515289871799682207421733586516668605750193981035316177522249937114032412989897865504495707852786333857346905391451309359893623314619626726686650821755169962854180659290479790486280289541258324213780937494823514338436391942881492180435882369445847137075778797856721787110673545243063435679806016016391786291202886642173742910971437644351226271089103435134170813277004009571107509837692966091623202461003116030879001805582594792926170575551637460696674027430267295635212984725756548585290267955773251704230037261666454787508479740443987509651135168079185752848224499818349674602051748841717208960118011173904826957612048671464613920740328398776818425056146445686358802273598026271895220262220654884573869174993509130934724293206515601723076006724948639984492381302415516688363881917418306024053316308345010841921883233859791944900534239750364561604560074712808334544459690643745133836902673784392359901743384662080984520273842351886478549531277996714171637812687198867872899914255752048177617770584218754700730342607631326748300462991772751103895745464618762314893173939420143754354111045317216685601362380933948662413001940223423721488746065852667929886624296038262067564469099702013473319293541674373623265327388229282221803743591866451008229880861800104885836249767164297581963314097938695815043731339770388882588232681619899464224622863808486276698083712087261592363538726232761626711902267507367049897775205931229338784732419963141690444575316332963780630267348746288971436927167077955803586330793486138297671050385840038558477091681375471049470011715981077950679984752687559912658833383057833137217315049648604646750978454379004708293347318417017021897704020094620637128153785849677482060864607689575268507628184914914588569546437454203307832040880852631441212746606090363784883734274946905504428438889460746192843296250616387080347410479876257936843775216849317882316260443032278787837663411291245873539317546876971570702605807299280172052034450325541906390469543813782786649232554811962190658804293298778893592679216980478937843202464129124163369156433560502241200258431768394142919305031415478448607979234094340039294581200105471273135432173513132728606898436898466440915143072876158545631980800243261572280794889723520646298313614239352853716350547704788724548953130156898900416405344173819993856639952834986598554099486646126625338549075343736539363901396787048844035434267031018010076800984858438241535711535232961233809620476183261193051951150821800622823709321928077711099898926212806131723900475472723436963228887950730068329666052231723179463451282232707393365079536026415789586659307029695325743088538306309277954328202452025436986498676568789518734796336416656755308285128975874027769923246889835123948632841886143565146490178406751356047106757625562779597702525845933216417330731234964303813812813234678122367180757732292364113289861777888159264807580316152896858046823782906180230716378998631994892330548729695350152987991188452138949440098599132446650555440288503039711778632207196512742147420566212000765834335462167451237816045648884733530799325930490462357229638036415968940181500748816555205623166501855616169087443288744903008915720024993665724368342598547874057906367644085929446020927558781038881962613923230247039902767442632324877806906069548009750820692946165783184248952773673960540861395230399953877976440507431310038951503791617018689103397040672314038880645391392532524445510247585141339828978866955752747359872052580753122989098238829004948585794013060498449265006678687576098049291464351699467210432116955622999019804245746703910543400328702919899225543835916115538276574062441480545473450394152905466236851589856875211151693803117236860274758264041743565738692904122734341558456134127780091629224871637369689565655816401250686335945129545376714536051040066850266822329668955245520386179995583213873284478546383095936751056276732171965590274576502116734192295581428551483494506174584666307501892621815634458388227845333981520727628000108136580573118210103521529851920346847555360472558482276450516282077684763704528519959900702368766914654617194865363563574827851950851800509034852843093874105062443903760987050782719421443360648157722272139976566197337318976350325749344438725491250455260378951609584411121044428169492832542155654355284849103398774954495781904804195050459101239417323268963651036065940540594905341683348953744895025717262745100413217560080187235949327771032635629089764659730117432169169856068741463115923225863882181241236241409637149865429274613305211544512008920150852282374893768016852736644039649578498140816233965727984523824052721467122243311440309690880982282253630425107914469299797555525779154320854405500157192554541721549683663845097500898915952214535318460908024750735467572206832132322486244194618852737960670736091139568933087424816701390262012219110266759714203409415816617536275061737944910173013721488221811092297053571584614444046296278295154621155383064732016206979469010640220298968217999476490824736117266044610360641504599110871954411130558635878457227369471069337990535120049890700108990062361985066517942452416769223858062650914876018085041189364853464599656772649756557863197320749723755359062010785899298032698779114048046542944263909515604713264146992446150062564731440756574818042226448624462283378923790019049895818138053821629405877429669818200972054633554569148423767806597850696100299784088862105361744899743392603900072921124651243578972387636633478428358247304239776111493144650196858607802522370992809906933208806956111693570624420848662442704063950527522982418688217872454912323624209928520622798627993901422405875174173629261452103482955896236164606029653742492436501866084850903312834558802218551708284708703117795978895051386231278399204339684753285259792231122672905828092743130933438678925271132461354671048399351713808727118830348958419261705786109249755304173347437118269600507569788264971719324413744829289552286682951385650413194834363104011457997334312590280417962608887153667690987484085534151993861406019537001789281129487355623492762875628586190368414428411904666806403673274135701283664535032723265354756549460807953827721193819556328917436636641885649081127858878916340585649262303420504108631412145240499273673275063158720636861353536844878860130117406441483933312931609313405655730036602028494699898739203056515527632325429663226317186053287292952685843634862363081521409688982807587394625236452489164971416178511703130105308098997863575184402742592296422189110291367331753896182095579133598623145509880441172366091483184887137742896965782087722490543842137426282839646568947886226764444544212211502345809295689175469179396961435004259804373676243873392200823837405486912628650532484318301352638658473949082168096274296185913422198401736991401976478293984844363016295452381761843847117764813211384514339176641706302257719198896481621044331797505102285225453876063283693925027156532029349873740291228642456514561153367269033096721432386842119605450040395558381018570512885839136653587800166083807739250436306306431936451365399738754171362907397333759918460971174690770588829589796920046261046011505057757652745347132067331807650862256643928155398839982930972308500510383161695522901843963540894801352402467681300654252880275927605167717117629247994799596301760611585194663733782010347533421745211700786475894303113513140265648897668293337037971952470096949123716757760827745890098408501536541142127085227819111572699033606185459187390252475949508789835668063484927693692997938463945773153685431351258875614456163404277264294178720611725229039406411214453657918734868294443238933191991256473145626140205761724038272438413315669881340290111379204267378350091613470210828699673981965106016710892410223748835576011221524034117623939192172874818164009871300319944569886177743386829419022204162257325370553474595282599731681576600408695573853749766099708796239607996366073958170901663520163899851233177120413767539988609622145054315887105849757026424305766350488935247629005662753265425898996936929720409260073969085005346530074094676349746737603774851709073509577884144558957282106839615406972211957691846222068511974572648073879692017575886285442681607463026656873976723469825846070098237179309187777499224378081217965396663217589693502077343527101957935526104587309529012514701255670918468006227187290484411125052498775929225824822215669272853231358720532959542521320662438973124698373484539260138585366926991353615548209971331593920147170134682022752494877836177257478671165461433646912484143523530327144596242404908639168362766652900707781366588085333596520480480902843767447857933682198644002608476499551206185460550654381025088018540283059006828731519300543470880848131453733484062854083696290614888698261881947714522522486863657429784981408750400536511137175243120966824194257367606958071084165582309810766637704738554712363666701184050106430048420308573257970289196700902198551720124082244877466481114536561618775295702044710069399162607309840018295146802281669065714963117645000589299243126323686049597635700837991410954168272184893438283827520848469095977238708706550806941800454265135614593025307129261274933680489575080461867562898682041880809128165398679313343492971912614615027005695823601453304960591358922939561885513841564413385942179344924849234823469127358953962758398835231431240302989093655115352345883942680836864897346409192084571153861642485052084032141501405757815291490927512014473810398551883325002517734954429525993626503918527529541238843381957402362667763951131728915871815996725986725552916781947477473199768260820739717473476383331335839595038563523021633198148707008260584623505758265730095103121640229993296069197125610809897045889259315173936494742395145554384843784113314189734847830566651267002313985167346700850392674029765237338655040334898803038416575510897233469942796549257061661949990459276421395198337939483894727877076594320601598648905636044671648429406977534294958971596793953364519388146134195977242369030587157614843603958742866499491356866573709501197531928535818853722279316330731231885413109994729520298174431852588392533338792166890237610316480857763875663006112021541862981968175538483014108356937695311445298765778510405070511672605287331450081185611828209758419594138170126060827471623334689972604234192091686844565731916222928790611744977158774799709473883247490015364640490921122769188637433082232058701051347782568099846531563061203619015735210877250057362444468081056243554179221097670194153686605933227483705634286112477932621409790103683910726244216617944468642194432084320885612379916120047733383280751618028000992573568399719073785971480709598838784502134977704066968824065806574710666798172482662815021133438273828944045930568973268804329978341914686104509441980733668903311902479083035279699697676965738109729006581655609869965672318346754110541070048579715406897436902097147651380663759685670031727598001742147158161340232698390600504272316227816745861445267589537935737997147352422265430311436976199044583023170247477463089005800373603008211181938671527303499082901182839446608751406701179452648167646344021059704691349491010706710591573920636624083036305343310272081056443817949867902801499518176611806518312747870899309828434857186764211476662401138654337078700806670684492847526965132965629738769546262503545903844035482543313322192058265029531639101561620078069037838607243593266629303718327433670249463612632598399439095195985834045250829159014140701005693567948657540499518114542881316342782138144432862148186835654914868702014106814275339346943687207864116327399134131424499871587014902528732024701979152794443400235135743670455914644583755974508641517138208294144557955665240615856481355628628864031778364913230271083495280764459791754472458504935886193458438505229612016463796030299602556038458993804791498994163025812309883843169944439019923703558445399799217401209260043980096880320273757361750559142988319367928392400182392305212531190242877095414634375743432979700587699060426805943575467190100202639752268270462830260185858134478108427627096477495283582373986648549697386314886669353586655080117613713454738088261431247737610412799817536458529215229079067030966401387390189481182707662278033777746082670225078879104139620936673466702372987728753485888844155640434812015740280125722358580766590005750519620302782757428269066599973049490307918839387501262245423098972991262821197499040700753528039894510657709273860321459566176061365123086987334033423869389011617273729411705971162536724385675532919503838278971548227360966189870946465598949932715746700720042094876002088547493612939878564312727542657612063083221886038919085689834868274397152455502180723915770047899858941561997933287729678993998812143854120509708892152494100399808084987523528734021406585044833521998064650855032920148779655201745365204454733958776760326364533644200419969550358039521182697325912663419518588650479699683347803454207592049467779833109243402619360922289782516401857718106465896296334372633577444725442677090506032035438573412140312433862542360612593506842489119527447736473930690188183777904198480655268135527915498629987257826902993078294452654847678525031250961144248454515977621728619854518102653749655417024400235822154202524802634934868610245542714348622185462323856957617070223799973109159822673302613731571774135070420069346930221266890062246088741533540030784330986061514216537931869710533706908137832989748852073437339075845862089578657114870022054138910416223369934558384847928122760978201079791088713736941760290475456871625284087160245706267434326244450539328699617608103115594842543423771714626562471842036470269783360581832642302325105447969220849432214714131817366918121051104746776612140916594411308133502505272685060667840276645491750591607466095457389255295296782305797453283480473510776157856769947551492537007001727417290651287394239176599372204553315182386005284360631843731368048314901086951086372933706927322262298142005513533207951374205668644487685352773051907919152822090477534624433166399796886814451531471621331314933167037082939437644878153935244909480055376890332935273224813661840616657473252747666336586556869950956344202594832703498093289130542175093941208930387832633766948592791281039847828159225016356603231293289897427535452753356779072289888684531234628805417281788719184301216827393373292498563211543086751633934303661627742430970956284873510352624156733350504251993896942897364463768015020426691982922444829623271133293173175640715710738522062589636179338291858088162599595786615734960057156626850836996477555279679205419961791565990067780589478136212220705448431663370827517178191352821692341321923444297389005916278779524821866870648326324407994950324503309315182228689091337492731255734359102398801815770272922864634983067509743200119589086318910188852465624912951977090237359001680004801736120297987544224532337366189825563996797011140480227400710383772003920112362335564157027748692167898406247620709837393933992987340231227916691496076044727250115726181758361126171268244280168147185074552564927518429713282197826767641199048484703979660982386189018964096199410757021393435453262070704246666556514252817270831775833279043425642556343266982695347060974001489014552751201468666190896642941089597568891243581658094145047366542822819687018397441998580085976316240814158348966746377244157007337893490650869780576233910198098752713967367818104146799236165846788259436816277672371686819703100049216337059616857040247081815089829567714459661532686374957599757152300219597366619073532852268451581244451986119110710625090011834368038812012261558704131762635916896236887286277811269679145235360283775101008522966202979241042362961168220026551823963639666144142181499051119490624038329567520353661317507396284331884539946484353473467466834794172361606149938291335588766155868683022360254350300539616175571251848507484713908741954530502220312930926064349222780109562396794922222491928533847929513143600250940791235894717920370933482145722136182396253408936517313530818075665129690997076154000854678220017036055739741733011238496116613911551595464775708711317535388077445911570457802477368640944540353775275898552080524462174200490415197178028404867438053759687855625212168673207222871978174181720766308411705192663904169781188016458326143408694779173128520633698646227673689223142780261637407257152597727482461486918472041558810432662940225468646882532365928392689917765682063972726511850170374156791045888065546968455203738439267454602465056139341207243712771676546171933901421780463928110468818226469476303489855718129073634590337450550373884168500982229923049531800549235844283692988153858996483641145886676245646270701821928046476345708347240146811702367568745287128122235907664485956112142291958475623269270348391050035472365673369192392106672384291646956719339531236856433507013995837736916552459372556537003086048856335066420295535310823784731580018055891761105086665561528272794912897118100482072971751001032069882527612376424647642721746769416283779383496116111197095176014987706938424046351206457527990097501981291169523663381732204816835853719355710841888695095060647723292118953418052739383942242072737246568838977742704751780774675059427780681757058959235992697329734166597158199766545386029333347352077790301177618377929923609277893430159828570272427171149172304695993924973203173573874276954628641247750391951431079367106113760329770260604478951402703831169599681840588178028903931676959321788962898442095561305141169554588349326277085668087129902799569921268227092082718993430743294673421695513674720541197361850201281446396624849718665213781735587401202673140984850607798235720350350536792617944611147527631145220739537883795243831171032673936947035037990682072999644643924954271674612693338446242078620363147230820190355608631804937584605792046777067464007187795826580616715788334274681176829633148113625499906336230606341085221087339723135938119987796919230638540127969001057142012593664757254140331313372387053529592103265759584376516438845166380336178031045920355124879194595741963386356888908636234705726657458890239442789219364658088648206970762748381556912805021088452507576745239866809325487844264834367343758659212723833473657014398829784684767244011720810759893255880982143586801266349109711957497050024871290758933729180598162598962917636108515863392730321360583709885819757236424743605917212172472953825421250956136260727223844196225813319205338890132690684519837485770635852736426186089991829279124394407799793168835810020096108271340417641965783282722128071059698494101008751787353822695112742404164654981723757759297544587514089285290374081346453195586574453134576661598585731310307288685204719718340761407223567122099819236051675998755873035494724734971092418275921143190382094603138707818845637560513395176754420112734578770120567443255943531955559521456351051942943698704475061619529432235340072816182224568989806392093405979736899653949974128904880532945126474815825141431876735942624293137511281894949957889099023300189327639389098929631757274870144840663666028469023786336133729785247025956943960196638761908656276461195127740230578623392748117712811272802463165800747208254580866599841983863840129813826893800708196615666058012167714937470463998852316279278524672448971145532946968348858291170274286146291500335538088898950724046418692694695895451476335054904067620248453452625151929481862151412820771511764138489466477362853925015410921890194293241224638731436322311014999746500359362930377570479021311869859251320933327396558860799567213081852174691864202908518798524381277951275772972505363689338951254382857436941793197632236671459497265292452491219027716531896257733155771601698338999926869370791043546331680069118330649373103041004625976275927544961046154808428520794561215540541775536720727371567588329290317366853304042156517628537994005294808075106490478944307060359601354248544306816526151098556858294343962194394658073247445793231852735989362464056848327007474445181875802968849941604662679318180621509693148205693884125803674165906509769444817589432791464082714871179532267318543104829736219200591919654235072940858121677096688160015990541234233149327638279316326448483757899668147503684949859208061619436238263678467823450533201966593738853399433052724236520413760920952356618474098776356452526834658848487286275602230106444481904173369808734503051529557446041193901803202716760544791949745570813457695782102708977472217867704064522176088767758815114932956710039489625156431430297135149747197966474869973179874343343976533024717498284584303051657515516868568821770962883584440226449474051254350124663856481137666863698075718817150849879916358743484113968699063935785536370260496114401637464547033111793475270675655983935535379495389522075947271609939331824740571730998675171617772459886342946098998310938021183491174307730079623966537120259738257283363627274934439497110291779495443328966871256675365174123840597780928230370927462775337198114680307710374794247985107115698990517392832054446457579580188485473986069465233996346428474429384809180165479799820078939310102114043617488825957841614199235663344561563998450448610973617489111429597522898568156677657424554540366387259054370373210301913059165220283875979688949452796614086395665627626610833630200040265390816504970296858883521899576080786051944375354668668749845924232680910316733316493920614160640619765566806629298336288905010816873420975003233216048194612493105425728866219740660659691887605056619230207226431878410659086980394229127997536884734542740842813133835898649044758077688191412409708775456776037746632806461858608411727600727019727590007282441421200283288404261016397806611927748738646805093836812190986339288966245395226958668964564492332052698105399042682991762680638219084152317828127054120866407570992415607452370509223598591660602393935193878629753390893592415952252554152229753297026124884962076670414866505847610203945327476939892242021706031420197808229366373440918202322080930573677157530426524890954162388035730412574553116601442721746627857681678585613048312788548843697242913274019866913960006366539269992296142664135289693241148117147760056478326563066876764326113953513204420930513811672505473666299543101901610422921415430172524319781437177454678567485011990661463623200527871061595268570657671398814850891453793276501600214723230193942252174636240982618450127874902268295371885534070923844567306381191517998257027842722678511253377178668856001025066430266721105452814790157188016213865138426758773304834971075033793988134526857988324886561626170972262351583925422152199491884021765524389919229440551459349367811170269853821288749060432985273909079877063505504111812886721792289165927301839110363238646574617009374286059763404684919124581712148261690174762876523851647184776035179058469753970546188081787871734884777029840380129811916942238781539001787607059593286003014220010069502892659877249561869618771268532077601990839859323417834635482885009850248688287567462382091159898099678499128910969601607859494413054759477535565480073548438629838964741512821521291305390782774892827967113907986508474729497883394365463588465547896900305047661999680487278449547022298133342626087363805460087168588792136936852780345684156378231083160882589797903087552695661482388545324242219727334640428094055257286690293258038199496192120398148950098944074755075925259701424481740408280753474091146104591024138535215773728295499155352577526508433771913192259273336510200620066904474251819180976744301290770799053745974078392581018060053839047912419280301287895433807764791315876917993539864279676985349470281456576299376301487035954683043165590474352028785557804142041052555970354082692944442307776887025071603531355055336290600929071055627005991228100947519784532323961761994730218456027662394692361514413737060310380268084114130108579758884026974024680330480519987808451691093012219003995591935765065022255316056498465687806305963667320813709548912267659224886538902068395660379997652940581971272250818401465832206221147287799163901729540686182257335111745922097477332054268258083951660843628191024125237058285566760393697137601500034892001236209128908081425356107865773593856693695929678101855587885812339387150258328466121673118379312983688122617387970874927651893211796113249139592548764231783926955004070997724989434578836014841314885715798374397914985237024273819422162193648001516021875862695338009818526936095222248924632624988634806546400557085659566948802333285522113454157004562356186095574275820840417423386811442544584299352223151804798991848063948751166732017319218655225680479062017209892100344009744070904190616546447168846387278606119572977869615062880864431971540378494499993776152777553781208686823165929230579040860735244007384784612769249381619842139447151285248089452472756176899160181284963445457826082002800412692342418182185880165746511733425040895555829060871556920729387802999005109466282413370194624982564176791042459047077674567323847040092750003556625950141848846332405198214990888857988983543216036473921204566669731103584236790539512505000030447173132239878233788734049596427585805586650137461848498248251560486060074993345950216965567610344821017765829702308600280988899895479354952474000588020411964514122336023121379010652595988227420264010597583368960647953576624169311341646231254576648940806342674021741652991784263991480717060330515716842534790576611146389187751726815008355071922606582678597633627226040653602440930237966421861946608050161601750902698804939069512645347611429709748684941468202402377346304152634150274823576107200843114436946574842085080489678838286060846979311666385332732317270138829068974038088405678380701878657123454694784479051451618063710099328140313125484976953233752337946578757750073033962281174037308528987224792517836666424278842979720821559454291444238513628170105673116309315307436803124102330260571560523422999434938975004556100689229193565389521568277892235509109534208003029906718042862659491323116705318165066951217652080476932736076284334801629037735980573528913674349903080584612910319257953418147994499599350952242030849817917929899915318767365334425497588249855151448282411133178611567397224384112391081767071916090333289351393961769339540702273467690226196855921959746265708240507524267238065956448494868293569030962164705637869355966037800120323982474977681675736230147613283290765904943849198597075121007644385220525442061233078110150536068386332401966749749361415064137768753432290891021557899275231380900824202565092773711435680643384705559729779849988565911705015741123659591616274868721874734981837229320599315433693702810154999472921784004651277762387455615742359755941198092651351009806002298105016427996364945865940279620347698750364336476540225195635189018159521237165276063000551028773513794043809134228573897889289055867663168978910623423957893721888641014863859917363589646701186508716765654802309753302541608465376230630909086583246089711355985431687162865178834908722828252140050048503782031031100131285270510796793716659051594073352682571164453948381183035837848547944195118785005295668724887574539861133840297313828582603194120386425391723175873479413789985648677957425423760429409088251781311833359590427549551135348137185168722251631886595948941606011393168641531219047640259309182865422836726624143174891788037622167676239196486907487453399873315947337824110454443019806326529372552199945764615865303237250105913853756838341130264436275277297018039396265891562050174610609716742252908894040707347830346698649429665994224987242684924282717647968699839162118390303970528379171361217663214709151606980772540888742640858494878273548087871805207467722963120552886407300036924336014385962284959024473656838653475229239257769839843861899705432209032332234378315557153370119812641476616854465082759122606540303051253265592920457417309533494986088313172883818782703117386090805679923977451072182146831857062252936997415904079022733902777903492830720196297820614466605284165085061972742521647616976388300576321740045749725385606585217552101829826838700537332879793419858604757355298877790536651354283000607031752771529789693075705890139034075672646480570272580864999403621680741228728474133818260759052832080420145027427968260171525749495751770432055700073970451921882971967419266642609616297519793465138024185735106273286905317133599226055480427878956668073062032718811071873049846019855088029963457039374924800931586114701035720312155942874519450842040906768766421566722589777112960785719620240331451801051898850126151375700689376115730579112620596219169912989108932214059523462736695878413427704633754093850355276996154119208414084125050339368497577143936776428274089646653326537841070836835866642418189956201913149708527797155058776184786012865815760749352934163623374669652663588317591879407640311826010346845893981928302143940326264293329237116056805866154083612691524708317101774218970764440866658735700519771452071751255377897674254512527658997997340387083875300340325553508139326228426534404347834091274465755564618850932791234902597651700677393367100953049089014421626104868716694129980875379068746812726274013295170310573012508629398305452145755272559638361535545789190160960801295027859813602584659083824320693368820498711401378495536241711966869919406976217566340913321586673899762230645732546142935214399230960973901055005980704168248454071370274293199799517598383026100777503645185075391205134007179066840641489358703713582234307550894132680212033518568620883890630779296758406341309109953167315914255380124785970617004652894185377602259924375796274930383587366582684050510582724974345705954450756168963508560265729332301447970236708031802108264117765036626943444554862409690120402763137618918982775321662439741782330674538026957623275339916879109099140567196128856546821372578859670831353472106888700490136841243723131856884462606965295486808628501181763864385373924493238291686980482026639454380682763943975460075539593230197871283403065848734323626264586881708760515305686750983445371386802887182823503164912682352054601295076369212833726635332027785558288359966515319821891631067052111929850948215295847970936048054754490523513450011633101106188543313749595655325587657759137499794617102358758455418659058628907443909084230152224922050589567005156311093121951552586299072146123108208246178106744949444359323549886893321832302059154699441991785716338608546038755604218257135938933403743709950438835850529595886459217965686033041336614609249578471542119927587447121796583861212250679856157566407392006106662037473091519015162399018177593356653045866932543817917444862197615321813563251422099161890745700140804585755531078088596857991074106792159057357766504033075718747357231174888946225936109978913068566067971432440118760232407121425655011598681664723713416362488238096246548242401943861428581571149021553848663607894731163042653796343621564034127494030451543277137145681133064391147317421339739285168816127057565841290319167773176766902378251507154811539518625627776096240352930896618016358583487964488369134611364579811433045614883848173834249477838306811577434174598981834553146027585267668928198589430737706216279585900160525935160704854305713920505752053975673703910836537454711597550701387607887339826580431117849435464529910843218038225368185196765280196942929076673724807472236582975556700684771979307536636925204941030190498177673084294679595103386975195947630535926638262164079205647742702559822940972913782290304566503968277324054293332531433333023036960587218035128140241186256339712816159832549374026953750527223307577499721953816038539202546608492939241175418996487196894737533718703814770832803490101256218792788017448105148033061570209818161880634120434451337817984950681724737365230537365200356181041819274196082965445219585621984720583759872015505777745381935241472697275116718855277005242708399576460464528598721022652471339734320275437852150978865393600840578047927064438321283722574174082548352023448262137371038386290374649898000560384023521041966875617865069420563262245726838267120549507582199391825685520952909203581127131767845564150150970162193586388507755320786971700699928977417463926458164964784292955045723902296085615007539818394855220327176084535302434459645951647409784523182945159366981151812460224120159741842436549797382936253003536071780244433487833316296409525604139287492121009386316281188830466608676255129794673063011064496375625728286686783174399501485169264561585843962000863421521633322055295358504563927139129709546169247905666705454483606834276543707100809741316105233807315560572732215066292140629748969228154221158343321065714196397965205999771138445393586385838889202583953339443483246099164632564012338354166564687250429838493315530230853857176760378870668795031090512673629447155039911280775624334805716792136848494508294353383352189969920481507374509155673168869242688230899317372261178922085973788693408171409944805440905097475232696863738755511781296033334052427720464823617404503200004720096712105405940284394309854163075079270879712507988936217241664427476625073258089739701123323914793008837122962710371241051956743308551466383759786144181464955050157919633372438195774416344835494674236067154865871411522879318448384412609724126039036497234481479320500215610944894429393655905125107730241367613688368947075093309761590280054454575287913776012226368346825419087073271130714280393774600027469770597469782305301580242142592742832775821796793252898775559665791559891232494995079487251736175227415465870903802560831810408192113923922700621233019210732864231750189280540944095197737087439725000192765181432361115420447020455462832436457563533911999399625565870045085692701157313120134423856528787968274327046951262669318482526844548945131172283600926007433258510289396272866831299254572230308213877685738574775274704415975204425262693203227904677722638993528885253694021970769351218066814808872014539710913725416987927917829048308147517131775424991410253251677879176390595409772891501774325519783118315004271468258492722893189381043612522136649172691132293862204983860337760707243265310259867920746879098491518240347486784206189630381119417668103580678678873997041254051833842940594967184691014434107855579608406804399434449543970326215212694199212301157355713568691400460050969944404227035835428604896496067218240451157574131193328754915565275487005908118976283092908222008616518539395237441173404973564648921358267869746391567508690812281370213120140996505098626986264790144969472441649284213015597847896311578593668495143060023944010763646921149590273423674204540704391330916373859390354341509390969360137776550664733973212217515978278255509701476395079172768493700596051880227547027138185581337103073981133914518426959103597826459459207926300480910280816099224231120069426652468316693474088419561184844066952210160479195076069045114362336202593416583167196638513863468171482130162584111644070626788429013350204859496578695641239665446508866760587246703357032234445294341015063380388200930363715351675671330469085670760366659459033836986704012121752883233812597359274604564255461676512141811728700338743040952506968943024401191741049395355644914717868835835474062115713939122598187448488638483491754797122252683568313819675683630226244257839137955841487809456085375777257555638119547098306004662816115606328657159005387603475439918802691672029386504985580184588701017234147847555355530181319885308174462794058950889427856179105148599580787784868598167021530875500093493380678464510377286881331400825169515043665082514706313841196554268815259574808510769071314132136933778254720968721160654371603207276050990560518533030929248164168354947918487932402394027476736889070411341511746032417243075864276532881514082261198911159360597837729916178995581593121396215691284031859604446252308879282191016437993350343818939195996962892789069981501475923357097911669197068635016214149798947800243533977328639547120390801938004873850496198569893541116174590467800188565056018232191946142252997977317252441234415716319025826831680692245910277279300328633606552475205902534627302856559011349842983670988273408480688082413471362658158558068030760368745843550427020681686465835640668211671207873381867104740439532766989873408785311263261158966922677169123794372739819388456985288759811984452494560313197827511968207150685038297755579170388851462426987142936165776374830404160714045908585454910594577940427153142368813636017631591100357767380036578065986308540729163897858127354999142371759911725020617546716834566664681178636922649709736065640510091516068245802439311367385772995212687951779207374209000254617434302602617999004011368709534924696147180659579597000873603941228584597474099236831978533105947994508330894479419755533428233314178720959061613131753141800300702634588920649696142643042682821303521870590672513653501741007906613463509524366919319379023324150828073877830636467204172078384320674275447699947514090604924155061450015056739900375121721986645097638849180401973116147527427052225884657902775169796083767369491063467999967583130548417231538692835410417476927728076005497868071931549912766941618612557607774206259050564955561589963339199166826417104190910416690411927891270451409507801309357520666667843489188489101786134626450541864975685502917262413021980485437885154517392946842527176344265133602587340142192089771170025765728195017700892865911104818426927519343788876008167950135393591531705200126543062304260092199689527769743856427396113274034583638516569809641672115636669215783328312550762492008073140885085779096440178589540222181875073956225970892946362516181165293128448325266194801210179562098233342760022816126386304742017677349689767893633914815941838126965896813713343745527018713996612716802391490993131594807659288562753953490116223287935423190128510895978416880627377571949768038563707296645632880180250638486398050980571556456445800989581722179704082241167133398640301291154188987058996384310585622349405285447654655635428470730713497642533696572847864793337489475484957940100095943424046757384961182740288876867648110177297396208870572987135597681174328060353950866061841752146111443826441456198331391388360145252535829435152250146476650406690243962112928740709286280582512502303252215532307767718867897341879398430115293494337146811577849666466484754399606890314534828431376604175223167092875875904226117348401691500521825070697910711812984813637010477960044359601182427512682127247069288660692948814848829832182535783453677774822928478036078034239796409082137800876002615613893510509351354366539064874369068628790691931086476667178118665850144083182349518950788534250407920354128727818385340928984569496085656482818292262737479067113064299126782773551055556950312928845645682855442916858045373938990802371731793326194115057541847754437032640835367689381024315617539748896640567275959823054650777027888622907811991152948198265680650144991889170433828767731001305318881931116052106487050531513814179859666308949680170937044982358825713696978972215070794570715776986591681574706094382551071978963518935095202861412043600036777890920733401831093793523387247421878615075997217480774322554582968806114838295115807418903124511543076828090778352972061259821068810338401921264782273004789647949607462045812931171727229348667404149585939137579065715531407130648637592509387005269541699749418823200325211039813241641296962101651858170705138222917958629268937234556618734375347579345633951326800990934281994781613670038532191373472974873737972478922772628212754955081491628180478842752135373757984592715161596903015216392895472186943033567205989696102666291157088912992213922212060866603803273389219532209096138206282018408476291932083788977250402275694416543327485501708128370499694518059037712838223692076953438932411562571282823843485653210037657916176182180984627340744585622176486130594018492715850207945719694469827966368396154077538900067686812398558504310721809121203091836950269357393102975851947268509599957422600516360641072892993468407683703229296435592117100685918325034842217249359105960134260185867436458694754004199747711423396652147839153282841184620537445632134235379611242183836573561983936793821419734389745449418817375562980617773216862645100413408412291054246578742334507364513402141915773280896415435643774401353360540479880144405648722490164121591095533506333545459505135646872202746812966195049457095358482726770015624948903333346787842418967985245262576699483631975874130795257238115352271490369650120642515080325129563027661250135424021276363869197484911443945489578339867891965411779486211071778866296120635195725520833286593677171663723259024010346873747498529985873195672042607131932471828990108351882077731674355121620154938213642232962987276280030274058269518205312520675580961867034864476512838548014178943527553580081055507549227659662631731254281809614308611166409618865343658056409944803050560586265282582483526789359715806455531443156647290468238611508425117271845430064042486875496835393541345382292429266611147034030918654671932794969560122427377403188354760795802279331751053076882596095919954010439427478008473580453368124936485279195537802053040583409185626198395034291143875294087234567074201423323125737782061591792924869716183779143134427245562403151194488339572318832272268238692425063170395721899452016425391339024418550688899698572032138632107712014546241392398914973492007722877570467936370907121677349023341645781589750400097839844140383836990794897788272473065022269787053733749479944022874316501153050449267642875767047461584025948869963881997322250402019857835230110635098927335980808420335638909997570716621158569681450867977753825806212929246046442750872303658555855539792200867554930609800980311948542950225299552750617179031971537229193579273655730276689255615881095408024183799646137445135140136405087273541919026359129737341739316909587613647444349006981746087929503415374038248386618734480995857218979173793959606721184457777469565624463641376775656439141524423848258912382311445796812703309299115001749972707563239185690356215422086672500836067875555182341431971075305706841563465653476989532287210972813860403343645571643761942829115560672880269853798326693949142438761821683679952113754845632332384771681479141376389657005154651302794812485297682235229437633928042410846532927308252953885301546690876597186664565119226113517961490085503862313688725198032820646729537175079430770329598289344985991843178928277668425381689166604932511281037524747764395737774448546097602242988070457779328878488327778149129501349652018583396803148404083621452332377205185703927842959495513111014206955590341391580042818004767820637940772135364923445304031029214240556976757073428995938027264520835049586477340468794743006750234323299721852466939550596773351976692122513044982835274658587443124118769742526334128356295212043149854434427574350644727876043555047045528898645202587734917386993600540990495543559208120590439618757548777470015557763313601843384901741019729489080459182865289685252418121251946935901549990034455269000570047608826630604475294170899651651303465477829382911233826135097334631989611208160818655001417875003107322899584469131711302914794365123487517376166487243701322675437633089945263317382515328144740731298252620467832058238902298440945027850544165495008741676459190170612307447300109677842884332818242016377594697090690674751689879545000167284791099122773255964831327019148152999363013080659236896502057339035018129170564672028249822697111660829144792674509290664809125731624229189397539861046907675706416274067172812418778719222332223005685242712755008550762511784201029557209022821909955800210323960053786860292932063680843152039366891522317948056408154494322152847382530341747708091972743157549976035445970989693096109828965181081567122618049069114008319748214859945834050366193079458113247342434918904832030024818917540397477156464025090994333460240977942336369743701794994958042236987263491043602337614816122265347684407484866288150218785139950027559477483431816507646877417891103227892828194522390898625254157997136936008889809119269835306691940909099884603098949590690967760066038902286910255327932556883587440069497594568955526843236480114056816524054210525155134184306471915111644540259180114911584019227290066341666964550245448105804120377624471352724967479265901879924109190932815487121787755929261057431234780300079866886945872974711761922416355053601364168600625492335117791462321580553263820543262378808118748772103726569273126762973198188512823290630544527392996667469371842402545134867205272081410436483160459135421002888258233312292210166970569678382881860433458710574491118624954894098981569352599678184601767588624922551835396520891394482134158130726299670273870662842688497376593087179770464616379748072485411816036358125509377343544619818543693042442528174095745811585642297847734561066976858956758713831546813498433575571390848858497093001247822461130191429361219698854855079647598188490001079429628225384839562673927149331105998511162243632180874191723816185819549461640816298828521169756734525747140480468569317419965133861520788038101291132695589920645557234257873915725883135384913000540537262313876116560183434657587098723907931047792621781946375086228166886920207367126774941511956805209466311191712650551044613566805231502377832472305673049771071308390976603908711526987264805777386429639001226866989443300483459302699370252689344986457589821215952474517208280092167222588496096920605255785269802809238180233780750015525430892029773551614366582989122576559592793009987435608807788077913263082026217406868366338124287961148501977787166640326858178046001470772353977947142929631495357819601490560995517045175544202407727261011959353718832450044164094278853273255693152164266042079050252219258464494556080066219423166730279898675549789687859896648785666965846524550836511706221102316720207164349997064185414005074847850103087671351235476734306533869432964896767875446922663010522651041625034410744210694230634306409959476747853582005484613079823308419042557385405216669375247057690986669363778125374938990337503085842678772320346018027548777816354939128512613183388971239071242863294276286431388655779812205241513813213126242825018189067290551187500500109612444278297664586400936882248430592466278733221600310559404202554886125135130799195645923962598661049379181488216316298828828626101837237976413150701801673029511507495514225402141500317264482077072796473996661306269552541233290238877963384315861988576568773849311701777667129239327566564641883128943621895616982424364625814799451674370831254164420779583147144352477572477988587835865060176957990710420537276385319759716785890466577654203136432638041468546096884978114275104210030813967234558200838475885659586458023071832707575567763316542407852780434825332259706807732404514818100973276159509377759154644945799294023112828365956308292030156327177921483688579099872838567322708600728293307151092567877120750751980158524992249785422981587029524918933008438587210609986068541039654797736455237283405529836532940351852100993398622983017205203319269683434463393470380301229203130196342812438855119084521800394190289552205338113155651880314463428716296097029309583447046289440511156767008417611336835509037948173133567343774257062450505424123396127534458199199581767819562830174870261377130245098988341547588199543129063687071360508918977634896238449877103371683585223846800424808884769211129403518543068813211858390884202722451799530422645095313301303721519958912568237934391992066794855057354904250101301745051547054764025121771031600377276686632324882467864020104735897340686991242841865269226007255383906544354481432865878386862431742104858031479025747277139368503229462552253828789683526000114866043777154532077063882986116450296637093558783980720324815129376315507250823663464138898032288150730327551859462035158718997646338432702013523493084654807226481590332646250274219262675622499159151736240663173130833583605465340910034869886082665085353085247325917647312371161398504497860093350153419662934254239248824380411872122702342810734205900110299989494192400315980968227728848779684661271976339103645555423839086096441894000071181950420277351101046499889295553693034029848596570933050100440830303729415050272092856817748916795909914526753284996699989256072936344642763406992846346927554045496466963964696606686795508516693558959270212187645333905317590962301481659410705960718925478127144903306625348107305582889975250280957867457892761404420620105328747842454588093111016480090594177970319196374682353646858642903614735859884906455721698567819240865867418968322223622528197808127095946966948215624549686178335332510496300907546461042736132828914061400068341907726549195930316044918128956579846569243526763613249095501158283393204006903690080988081538275674253788658301200605714462282718874695456645058728606777755400336020596823849869373910614873268252591672922274646898597512213293545432605535535531316382211180082830386941680473891027599024047376042897870588089020123611950538708530750528817849865995663048226007836910829293077342309605023960859426331377382861945747149854546266861733920260133493436587262857036004772933358282227293682187041475599873556460326540871508998584148392369378582545460593790085339117539042853597737740658500609391400438441190738540834111111228088917061353654118014378030780694434080795336017714964971910058349109571150328597992183706421513492874053721992029426646585885363991001387494286417476993610320995783284270075855438395368443360732210642316520972854217161159375473661048155241333383376456597603853738548784415936382668809371747284357451079766067757885134530104568414459178010806459889780450416169398964198700303487139681010702735271637654789808055014420542397299290143508106286866946059211373001435490053546602740605076223223452299565702402979692602467343853156972602406525014023462462985950740837164050817048234087416655540101712289129930545600096287272454094439015611957714359112642040195563943517761053468412128820574814642111423708219765405986076331884144122363675182735807229632773678861680395790705547871561427039908223053234112789474696481390927390811217763217986829806528647505579523259195920772482024480959062429891778700086076692843974722729725488133289959337260356088130332171370840799467326380771340615805621276952680437467390206949782160949916191528808629317853515790871068227942729521957624762995978807016694350085358252539597466996870844865382298048506450223944221128130586817040337305906939585507690021838733724292031791552729612571850322629740631207823245560008313670945402537024319723368071360758372182897171977791303824775072604658005590939607706506641895995390595659287095362434674819532049980496621484384470993508893080147451074324866809186875723930195391020669278264553003332954559625722132613131405431614387863105088893833831684967418720031094176327148120808393629321003418180907329039416419416929549348004680056801067872021862837564482524621579515205983003211473997804896618424831044256392415694158465730474165842770608384880111835243220333074118774162066102078115737391147209230505833490414339329292788396159905550909515673428585084987808025363967095401665553451880241175837493832654707167683345502000088270232528377212021466717367938051695803040375273927119203167880535585039974706247071347141174194347635386942992383007041025692064448653391142957495860703192552922932649180265859685634790402957977468282906136744796225132469299764431817254643122120165824298472804421490105637121837037312297296147571765326958237034196759318983552623116383970852014301679559759035949710162967317258562267173498070448338230883704396489277330903352433614691124942744549457202350399303542910722516369775117558225787596709152992302925904134562993618144618748231114864034055213793336157455766014621264740166866320774637919987977608264957190178567945497834741768953694890227317046565006251743669406925430496216094505012852164390705600097882986248423739426244701586556823361178108324752334519823736642153362746187446204176429493017231845723475645557290024546035776920011270996859439539428863575509751898915052437208034912666350194320090326393649321926884643642799436112963309112694832839891371185664771500468972265517109579693997854480542305914184690457510807451776585570367872959849524815424982825050876489012100733623309489370950915689899644569266217902382404907854475743677262668951644990887625860373370890649998444427353396905046442630899139402534446089591472186435925085749613665343389630175283458398988657241012148181525300606705619864129341936483762023915050820054666743809766481075829744680574804959698146021497750102553601516616269355043793758633448493489331916043319991444357222427642600878449845681534840021854663160095217754576504773398096216833511418953211456430124547546118525652387123790230448438924039687052203053588571300483069318929058003958951861983781020125442948439747726574859374286561907954030332215075111462004499449310006809324616433403260376921809122978095024744481784130872629169739049505192746805273557711448931768722181371508526364180251806627867137659952880610506686160334732059697192656266674560723810388122936984363691020852254087971842543283392125966213032640174151958884740707138610299095892206169666682643954641343980382530258111665457673255741266499346396287132508640489728741376243683377995038639439984560453670240713702946272946750766193641150111118595787244185864495619072850076297643104110098290310440069889682831399811633372481720576421081115238716298072275015867174484971631529543921743669439766994860506054879959363109801407251157720743046577682188833425644472521207997060163135429913766064127492166170653938736575068349818113380866188987283213161309923340422474391718163819362130387770551652848992465757165516404041386322058237620298463730819232831376295652096296171206488940902124522595508940148095896657295804362768211800652869517382269928071490016249915625530238111921203254510474346786960967502292803162626333528653850077274766963469511787651928450165935249067055040305842518492965929275755804812802445889932399995271396871823853620148927057706840838882821706539273805289351938831210861542475046287024189934303280383809818116117517219574630705567662908950130733392532875215226636228351884346463943554365456285090400498923346100311941233144803204696968923158596276923274626407297316674280785836805629383092892917760388220637111953606905708606810554367555946913326207507463525743108048246703191507144297929943473681666609944993525616996794415234629693035098537667798283371339421072577725442903529716274903153483438491523577630627631231583336633188299032026327360377198564677571467340055044098122171973818036172812246559530620138085577165209209039286545922908587670952548773397050378127338144335139088488904193643503264920473037810427494716677115353343147232550633316021633192729122686036786689061179638876070419624340636602192306931311699296030890766812439864595736024058539019582503448940141416103981986368124664832737162295972402592372581249179130876015330134723978132811943506177191290266686232515791639466372926184562850972059292779689881075869748476744092679907005191535594136226235525073251375833580855660894431594318009476458443394210065548841680512553381083215996413863385442948676587129228473248444686192481058624640105758693010625780392498694470615466966124044189787062721430988110366375077351222439848643694150139452099062649659748273907593793888746867497999551263639005005527997949185358905791629047057637602993747019283731705851924598806868094542085866070625909331831254541204789803053245923822725478130773794253227032976543859130981228642291308695513821122613562902094797273055356525609702513416739473644047220518065853476446356095205698997341408579385056931749353450849520064293897408539822523867600674941834832150630030413305810135985332894881859546201405087247705205723394048408126187811486918624056417772612658732930461283896400145539312273831412140968789205465884747771837682971018937699216507779037489351097253377387773995607217103620371229711051601430303228043198223751453322343874792051982200486361304626989393879811389869598458446708470590649383089121981119232746416336169195780527281566183434160923563356966839272608247349191757297917857885538422966407975765333069222505127234897408680367434144527782386849301684761738424014035883450702284699830641175228624800282443676066954916454305571447479208545384716428212529773810960345623005508315918142306907990390974688274785176590110886007061609480192445274649489035518106390857595224081563100080461977606811417658834955136663829629402180965020827648471937665606641179880663732686687274117997655937602166258956787625385603472590755163602195945537616950603748126694456237820883086227412049136978748147499782762278082505455273330244218778391746590146153909905447423621636663735407430577568328658047653061629476843310601689223760342783505295658041117366318566205317359702639143809751501734444570617290917816583551310365482222956562870093558831615471715157735831891971168212809340842602310607616077657588126544209257903562761828799064088965597924506873241285638460606306664677989882411905460620829692871244828095314980440850789976772171087046742260061156235531688238622246995346715618292556357911314030975597663557951804363825875004511622633825267066364230819511190866003263374015656502783207370565504821782111779102047860131559064135134811467598247944564781254938909590809584894138396356283651364182286113731632396730418365338338123106263567700853657208675479414991746399776036707764960891504742131155796286067708777854882817179910192855254007540969200913757159663354616879549553560816350787818315295016848685066296576409212115095139468333532776898778622952710958503475289540422166623552859787194220476078880047876147265965352504764118886339221613843298799660827643131846250892600098350244036536053132417661794091705964932263464591257066087659053465466020026095696210514079586890055297054255205447324950939164780067137992431491596831663107813549046114439304229146408047085053792071099277134407242497511424527972079581535495094339261939912596537231251867625137311753378351887695477815361632829673743176419132377416242191863424125447172667943767065731932557999052631954817227358101794458647787453264611370012885491567998505616195492249661969205889127404943690911564714467303683344771266457703132232473990132345902559573074050329732887549311125393256771042600596756474755831039761324065337763092750385635813899337434901821368035442490747700470137141893573733481792227943985449160260578965586790992484155084111181820566925266510732181382485506646106136431764649738235834813544742465979949267386065450789629502487699727952694432350890815677845417149778888850006756377437869306436174463272247169453633766609682895945078441239325326079427049484242624153506366249112341949753113387707167126512563010077147219962215454814830682782902579027826339652779146363933760780516877672331235063455397808214237998127353854356486460960450737762031888386013900614751547658752342648738432857497120547784462354450842273437560480985447921850425768999623767114332190075692275488440405509426792829584092760397998309576998379088247469290109369996253834460519899875286403605642302623680624088911596304926620835139077269655931445951411004966682115121925901057147619099084758448010007514021021380349977407919425642312172273837346823926079961152490983975753852147011008202437763917035717079209627076400582697108722570931237030237330314230361834299347961399410367742610535654791337720646334085017942751586462966936458346382657207646304666137628095739623489383690268544278862533318213092581867920347040726716105121635411084035509377767122118180526329557636735638151182961780873928987691357732338272822320447008833888842088686137906846584587202771744543972401770778222272110919786383866519203475219493643291412456611547996627297019666732029808175523315322603927711367269667086414767181237552855173968475426204503428760055602487382741409031188057918479374529453437838721693590732350399750812743109146243003490019783508620651133707544394484463766727345618546805945076954628430965453905433159129319621012169665073815236850189003302922572651353844599297857357373649292701510912084488556164239888538305515979935429603147570277816907097678281395609541529714709003218519912607682697947749236935674163576254009610825201792638041095917694402515628521272229503023645413916870303977837955503381765010113381272013106498166431301356931031836702332408807431837529175415329580506065566397417291116132285139669275241484800393709259232710707386585374687456904399884865092167160320508318965297936759503259519269101444930215885466705476517719675312935419231721782391605882326459853145743362570113213857761720237128862181860186903053136458983421882520251725213354768968381110106353147488415348472352809539713909704515729883181256972634919483983028449101825046133802417495717967081239797649749298865902152450968487360116747083729653032357328623424063827513104756636090408080051112544132694210615941581738464204934621924527798950071214439252078478791323892312663301565166836623916099783032134732168558914030069631610735392662120938997212776332344518436206085241024831062928170667490155040386307366810409805345063566966733914273361281907721184003316049377034259224617613671128199018677070922373374347764210259028835253709997089443766757165066794400629809087937960129896401152552425791513249895005799917995204975205231098747923258114009249804930221142895982145879192238960432448368154920431974248774073600999277343872515042177356939958638256502681419907636250821506251204093082630380300259036733470652362266957679950626769338978219626093128532976336663818654791673667184115309457007394221133578662389545654130561306286972217364276695358433975525595122507916037850454176445885663342237912573226942131277900282950011475609580326634691935119279491291774091713653261271141722876344353758292057668157757505783451468633514239709401233828195389052845706768129407568254623021346388718756678688126121560136741257994993994304657535834955522073803171338862016130683905340144857856335293746101220603954072042989766079207147347578525616188781885316690972675004614465879637555951082277139662367150353919147618963479031251293684261403907880332842694240852538363344881798020832046075134502350014575476666560745302806248769736243493071945262186008047605868060667970906678920186193009729972651119212362614918721996918196248725648792873849132249773160741016543278873206580245224089731396150964101257409435530386672861651674956660815448289823336119732819980193238019231437168000175356905037205910681899188862529873479692771425759688397420902549993005497973755116289136956064710954913259392947847848577763092656225690807508830960454012270296188790983549653670531691706797533618146445242100900428839019060403467365638459709655458359611488458560178306917448730053079666977579350543234671886613643152503477688891848480768828916315896148041530195645527654803065049807104277941728533554337806906957072429443166134892129586621124495686285569468806526865817920245425829234524590039246265995490330620798887372729907509753733209371069834482712672744230964646405180832217958543877649784985566345704317639556157505348074783153459077365055657926188997004210539088901036631712476126585929592113052351410790254781100958485878073464807547685837821752386229181665897928774052602774071493416613456638694071792341803494679924315361005845542716150683914387535319381712326587705048477506120425040447190119745501249991238410298742394756929955653447544052710338796067589480919740931701429309132771278491689690737810154258633768486604060637894329309729341148063263541907801877933540602085327197916174909216798906996476086666748727074608524631886126314226690590276009488196912101799024870546289629861547448159665317332885484655445378432131505939472840736302965367209893264173909362951590866864520426546325066566679800630647466437755205056454769405332598294529801020630954300737745017569606457458257296302267905945303374818292976956449866538257479093098305967852711523202539892595367202553986572223662989603253496609646168861385070137281744753129376984540139662795939895485379072018507916956379006487680689000711698867357161882174613188321081460298869875998395021994465862450510316616913862523241399568081716456351068301023887145784035360557238094948962861431226412247099613899922943888004324620427767019417247625151287381965208686245185825064846154060197151699558582574654530276217674101709085862405086084612337865433253684740158540234998109649768098079564883802412601748178371564570976335441296276847795731813753083985292129487542327787970687671629378494090105413373462408044537376961470406177160269436925484244871028862880516346498411560401526349191217161342840680155888953174032032915002496625955751018247376537007139636717596544079375151676398759610674471286975189384410435475459950935938214733650361744776977416295151963076777240853304332704618419505229757111912616171084102408303279705992154364271643496355510569514376453805800176666346812442335473640361839293146689698866155615117678151324492561066648540814968439482559254499665153176598117552765370258497112797966128158080500972728449707808072494886594726551121209971002467794770457974277606479355622807280180231167801468340846286697363426653079726736518647882800798961669239855523974812373916274038576373770641061981932874538818388096079416155555239429242739725913058722945074903184078406643323175284699424492294358556864344725486474785630239441903402195016128621316087709906739028336041008904142604946329194078766362061832003943746919787757484159456248330761842242366579829270102950857308836853260551176483769722219322698993504929247537113028053174174070184286468005423721730960027302274818168980745214520376557734637509234907713317634386231714022315177499206185258549370306556390594722843198802739866296188167008418397928408559879558260711249955902157741632462181914455774433267657565676558171321341654771249481516647140766533059249250944787760222937205185716988726762514162065118777240122922008074177080459164873984343786914431646877710366975183051582487422038291972209873155502282205494822522510844534262987208613296269996461568411326978942059095932298028249282534127713856182512737140025309999844229089334204901467892692713745628449762842420670238715297845851601205483871195731165940570375764298247327475081812174246847342860662977251297917017258708768841844873616099437126623754760747648167032720498400666076628625753952808421689221240876306017094414558405718837880451289190275206834512882882778537528541439200320453647499399104363159945293857697133360722654198809677697847329785401967402976454805700926164951742465942384168509227359582175864852805726075037051509655657082630553303949026540903548809334649926357875909443627403577708272990977966377012304516430116161380051032447680347674769966155899363341519982803864171990104892559922012479560101260757968907385365003030495442123002132535009908454720134461954076668955150125708787300945025444553707377208845536642062745283471341448426328359746086478431476730071922278668548062288463934933744636146978044585405386039321408169875565271215258484489282690555745683829107347336811500105000254144795151594437344683453481616689601090162469455873564860986314496760520541158585442655540599497963879173720535224315377370461825206845549827090712704800977228010778059407482183357453777248299038562249373545622956337344490737397944199022429065728327784067823536792384083542813119364463412946086974855713440597946390569864595542825112475871091198405762376115751099591181113238453709005740557136594461383499008442508151455110421793258223312347318452103919139940529808285293414962609571127555969851582048055349692973565923639496563209599978210408450568548532621726573688248897857191399508089341357526439282915802437543354605248103722721274049918687088719323149750312957636605498489463995929122454545590830850087121361739200665802345717464862679108728750506982089946732740363739446506450131214582581908572686331353013309788680337531717575277832986697320332300339261333894367517883830123903557110432573477410784305727441086790155633840310015512151197901333308768918986609890989682986474142786362555682260863355589736095259600385698456768588952487214106463719411052663029544596703059538706387482467092235991009504921678876416239493126891409079603747212520914442612212960329795702905518291721701054648035037763646687039182969657791616606401398387595012152866574572330673477127306906569043141728423615162804194626688803366660350873260044414965998523837774711353009982200867807299461765661408314376262610122131079252267387925302894416183189131301538645253788247908891857590438357089096734321099079211923886584626139110392374359103304565740863568120117614544224187587210819093542050402724714573501449369484198003634531782327572098471019944377497921507541026677371125791715980155795824120726180078708466141242689637651565846775466518337785748648996215004043940569020440547374639027990245215475927737412708527327839210323695198467065482869865477443922449532122270820493515816292714918959211852114836605332069926348680887772316169878201725643420498581400275601979510830884333117836626430877001977083137754439453253653579593931758329674317588646436929579028986761118723732688415654232110270199581470759725216695560653163772485020671788553438165091881248136543453305565537826503548864709836350229130716098152207177581974936737134872421820672253318859211498826300349569697483962039138569548293670793538664166980461406736648160916880109849179231522366121711951935777117562252887125054856940835018830432102778818309195409501688776831726218962497072378248441482666358914427738524925850971703174535968355186783138031437411053948649020649615527904504521594595318198300645031580245218952129499942462805000752385334346195433798484150986822283337763732193629520685271592782682289920260554843132885502043766346148759260081421438666233681546050214141616564270809821162980438387984302982550233664757321970840452979562088629696702234446505099941309755496303008675234669848117560054426086837980350551242783303755156280692487183553824127343713410819906292628277539929789454326819711403276139630308008515165028204653856652729873126058304165483552190437716275998109657833459059477871398794671700231020404615396887345016490118244154104548286171772392558535888223188894205851670579792791117941668897494872200842829561298510514904915106202866912042600957656903814275503591933808089921701353760081015901291480327058500684997603612269425457230095007444981759134860125077069833890311503022782805641479031150991189354490769411214234043368517023948193367168678172078577651919281009493659446919563152515882695885889195349731837063660398549743527779049615940159878560736414325566553035484719018179115862841570507754808317874786190752647022913770966835592813336208684830990658335464411050273200205660836865896067856336693519746092129905572471308572661970764394941438757121280445453154370636214172811733979960037875503010661070592808132340585030091263760914900552298035102782585186719139275824235174026774966487189341727334711274724549395481959976705506961772620949782471605034936799327636471465218971877494794821240556959841772492457157909331953316299990518079140117813149272447538109123302057183398851169074423551860535405200056126347627498454148824843365239004140266522004000082719575845838726313678148588532164043921993612313852813535464777443489207939853668065964444289054881956686488048365709169888965930481649048881260413779857720914262789530436863474624499827509064759419086845971449407419508115639207613284052384486641975012848006003714521299009685680527692225088760357850638578315066169764393052415126189113023309476005769364509765294767035274467795416744031172309854886601624023643649185333662866724671721283125483147627274031912597586460673589080904486334362379865027545373032288733572200436489784782399577209171217831537773935068352083335839884127378762670216229920466428497869411661951464424415988438865807076095243991739977655864366818126731665744170405825868509481111916846971115064540224384132754131000713168284776724226032910641453415662430394501515651133874112175350658383597190725362912231919634374146519588209619324919824655292030913884481147844144618569521287394609124684112707431832391379211996266041027156660687862374502843766689671417947151134908616212399674235748731355596971468406853289329880176555642599800817153175928523792435504255807737476368461718675245950914257479472190096624112262234522457298366803554272135677217338784810897089016305047979312337585510136229915086276878579798854223359976693329895924528217222201680911197098127638976417638160729231611476460175456888879174512679979807259592730211464485188451157862298304413677688711476977707418716497072233330766343935320342770670861415833566315766083631647758769558129057536342712177732008644261950036891959640603518803804102013623651920521442272005571996799440966550799452962892797699274052214800690746986209652790089245587326094154119033666116321782335154750867290526255859370377215458082392706762989459586625050341259096518275714483913018065824787490781567043398130025313989402953721077353981056513372260316339819662220833165735873214084913823950898850782240594072457863858767633960185329292759433618582824492932118713476693317110728007209530134890334060150229392344063657481974938161814387973192721772422151840031311482882175354411228390170801322688997728956189020719328819347886339443680488184669479523192243582470781007815148664271276528416524071498682014487483334235634886236308905066396172835755420238377166516057533725872970371990334191876588088782423792786398818649655026406028287413903219177339901271126082420153605521086250272812632747040670859045923504031041920018620886325871797800010992417113947437371663799437287598493856569989078075432744011548113334623884388813006370529477923955076595468391897741604857706083863288202600328198987557369497008193205919011079644252045736615724292085855264753135275477331308437013312830863362374807928154121052527535175184013226429703235135424609922283663236980650582443133964138340691250178893710157023283590632112149086850558543874204728963486964706709855466160032260870241044816635406722525211011348978854285705529707375406758826110932638527485020566995534996947805729989888935914636042949876006801533949261851010582082522703797483699577802393780001968223655333832990907485798528329172660216158989792966562352014317501927928018423702117634901832861707749326287354394533731929105241961409481402302544769706979212662792750815237472967983491689228058217769437886294898603215612443622409641636981079596788514931524139373882154700709011516664699399671338456365220348514674601535313873509483407960293925303821543556189462738105836571233667258095551538745346592026533067425067249746046901903448096271198398158842977989365372021151153168327525309186040320217191148833828354679350813734128434899664949710285301391849703716353764134486417512648090316028304953407968557829125901381861116792663787707992835720034733582209017387722222234338488222483299142431741247710265201276669152585066186227284161327776821133429251446009541185540907323126868366548831366748492805633028327619117780092359366066284444444536853280489313019035625164345574793914435551678903250590751348590285363294137869627986356272340109228487683349735995699796473860052866540421685421854686403868567344372134898946383352302994960828270314542299009798329914511706727754959947507783997677596607256712345279029711639474589318765089857747776139075887723814109276850559375882473534043920050347387177300491983604055490009452267162541295246690919120217947494954042785041672067129731926191735728630225900547953896206069717324026067741247222066971154954595367904141516646045173406963795891874154797548384934391150289168334364142054078567991701428766792441683654094744636822175491940579554731638222997766408095412009459833404389824864591874404052730867006011739453194625079720690198772697480645105027992316427354545739292405517572675186814686392383145390937036281715075743716707316438365449067359574637577901407539604458795558303835179632666350257699787350467901798005663752488430571175836887885380912840020007180231489748831332848435653324262612476614553003376645533081005846743929596446863421478942820733281951353393104474125793546769392050509126719235459518332534767679470474926603535105859295723403122479888872448581285504876895516285762491666952867931453253001586531295762410541371344544834859912799109424125559556043362947495777240364577352341204007353356256834826960953352896925738216327808019669853350268618031557854672024338667983367022007899675910250316236835498316021415286487055898657756105490841217289133519538246163249069862758299382516118848903381078652339212752809989516110970260426351031903330231087263494642503631762795241304695663417808469503449566605395575027649806577277978318408515857805661046680405336983715541710368791508083633667737717627536317789896348455008463286781770793516274639862166323682102735579666326867458485105538006113143885759219989483625860195493837778268940179177148024192405553368707649132239454141047680415045860258838012096591591380737184586913081996505747856390096625810062761321701536314687889061453111323514670744589357619622914231939346873143580454770455698170465140807034272390521986886831717696005342883655178073771686420983618131884602855448084844444042531538746141680900016800053465630931435993318908744874726155545087591659711014390131208748111315543077255749940880913978785171304623461645849981406233823956497895410228076190620206208129121887612761788001180151818186523711439785396887594569833300546336816769011426980435603468218619151479896129125352001547119946116631907178756848185629212059761057946894058944988886625120889298026281228565917449710336671146540951762018755768909722728015870182675196626314191437227674848984840799530996584644336566743856461547968018269097056587692121078646234568266686536433072004987897850129069482268759239467111761578471211425287455171862400482354644429993172596719174008321380406759415750101262496073673313583781384587425358634409750283199041177891787104633987374689480851712388784209081064964352304304036636224427699093736400608944403931931141536882229739388572378107044869001493076260619632003519040116352715298515996160495786517420671814258501344847034660306730258778271936102018929065041796007928809055103196008767911895591231910965076282839677435360460875399325847036622478391057683431429844703814628178753016158776000206955681334983501862690568960301850098517619408599158009373745804757824281179971302252365033733124539605777769253713531162803377779475679257894158841319716107737781444326757219622564900113526831641661133827004980422563043738767517496678285453742397543645638216978457765192282831911005851701884641634576554550838904067099541332991802122895012698747182903504892880834688850894517340314004627790637159505093890177236737378375717257076521970155985566271469762406685210574725962637599645966317134107173229297526207344368553154111056965340808712624715715726062914197913808539832945359827596438549451137989076256017164683969132881135989490656109046759755580286145894303034761428857870261995349275693451127751222884453408736022227105294845236920760955286999810769373656971607717529432095935795365448956504694210068910327386589334789488647965551391429172606995340180215613217808213516104027527808355478206060817114854946107745443603768872299132566250762625730599736159079402381938134490643507254037449015986489508241790904874480911965352878488238093218315315224239437701815012489911058363320366410625703632207248590967226788050398034814073757243310919834994134064359396069637416138266580278762220468940613346474922524408849135699534786629601421198632810174138391992933946368032721156618989486045320519385149816802673435608937412767451935744845837211639367336542576683400778785514276207805557698861215368662725873770115385714987941580025714554002082916533003923166759921602298477091024903065557781411259365706563805749436225056433695494912404788919480695967565377832794711686722468879025542413316894908544560678703992314699177814069004578880140250739034617925929173224706793321575301460320896819321235557785379904967933699107701528971885467185639330954979272682703638189343906937311625300496561466720778744092873057396922853847461306718321198151150012685541022766692423981799603976331558154576094025276642782986666950430392453281700703434712933821141875506626052414128739059561523806906122139511384278212086615657772192061000336537580786560753900202744262512337527928003653483420697336299281886296492361021329327522472703376689177399152814846549447893178384964090259664109583686560365300240890930949683392135245950916287326215995682878368009198218609359474518000356468538064261935739699717156920297651224690325106240417899193917088298643983107048062098961759044296773356639441101292730551410000864144091539795889572008022027323755045330268929403517395486259686136168963298412472895162696454103716926396245397201888637747872599035573749116009714819497005187889686481460082838596903591541914316703112079523935975045165756371120162245271881121526424783458314295882443454446485117732901079350966782656818702378665402451790310067843779020991347670396326244810600708018931162372774819869458741019324099485283303648903016181656793422342316944030636442125780301250044453905640461258773499286601677334822813868556046656907420510331112434792947164082240797959598799031101226434045666832449983273675105632103524019840058864037165262343523613772966939486497866581569079479651084421586487882301169183059279654592395019704628774569938572029538771782324928530729102107858274075349650735863218009484397077756975448685302901157460531746137408258744426695560872152884496893733645583091113812627649081858143001681386939563036069309674304307525459190814916129140599185964041480469081569981355609295426678586110688431522141902019925715665512912249671302435429895720321226700569652823097239575984863364579034273180773202608473069153206362496444076153394234059403946972573170745644940978381907468525857004600133407335019283472122986945315620461069113055234587411776772190749730705545908367566538061236657989868640256152742753409443457900413022715573882652989105652074239985194383183099723467010480765057522554976140734111187235021438072694896290101621768847552139295215581678400715287505348453518433577457822848101315154503824872678863840599727421665400333286402907868923292038709779483908383633933792780183180069113146611363044217725616467190190549482723076482286166227474028863044905858358255007966236375998424487053178966653634972397039635061565004792076004621916373463703934491377666144366163338210880139838756306641726466292375002495152540748171610988794884211968840903636004197492414408401821884870016722498065722860947666817710329405428484293379315440017993347917475464191543736266840076804938618473839631342792779354282946215738672903189293057501149389501348843074741663371323430275562071477062244025529933118873092028894031421015387495431764089175433759363306630366974875448098426843307731449027196826171856619070675819415460836093380582497309044406026524607246467833420187259769278136047595498972372272976134837969675450489983970628574498621482912939523690445180506957850715616972954449080104623300964973199620177058128315546785343797898831164041797619282771490546030688123796465081591511732697916662317425527531851835297940739029905190294152780369458257046264449786107033018670972773537255048984601554476715245339922332237644802143585597586979748842494349237079443103702162560631900242527260349019039443544759468611627396767162791829331699886586305603176502279454994668104316561937117673704848077501069313517506884850114313485778620752617362081698927885226436006900292277414032200073293119833002846413539955155954078872180064770047693128711298022636916029445264696705905090679588309930523800546650923932888913973310180478657728271690265307162391965279231381621232209796616060738023756869049890502123082264815982025140742640275909560100134075395446145890014309532628587523600329331513258659342082098078927550390885241653202678356159783600634402464792962685786067016469571194911021011312100393660893287387310408132890926662520139813160349207325258650972391587756519191706033498087779129148264608404565904171321831282017203547208226560197047767686310279613051798294232804570261392587722632163887420558934872940496302343638726439520160641569665331513615063308960660912923671947367437894461222147132573078812049217848724552794586388961681845341281264543740612725540675628340191874262587739821786883180602705419325372049291992694059761412102729071246285984795659072251610220165925424475925404964124767288719102957461971862393688476545803653671523308302606385727504655118768768111161655561111147638766316051676840713163873936234808945858450879571998363782304052966138916114446633694907614105117353972113807158079158267844671454683072315218010017000487941583639531336793679252932600609432631544417252632400823440777783251361190568865886244939579846910252317274683509694867730007914249591067623522062487425975206554900367581539076664956730467827263034540309109993211339889276425204137034264759712293867686715587297482633492171671901329680754649772158570317809161922316337893610524799333890422775899814557180636848743089013081233407899678534989228280581102548277240876182601020242541479758125083150392109668676383872188187859182907314449399446543901476375515949810416801445172755400867290817554079083837461846770681161637464172842223173559235925444110278162320911430075334809603402041532859398349838051219821008922708065267221936170378464517671352064325865774946636742976847489517839240806082875844624185102495959472143006438421953704217160007595923395029127136589074927669833871577009339800523077582595147255628284497070145077696470384515354763060665364305696284194554022613726702158567009949354601900692086598717453506460500340276025284812764791245980924078630542593659592147689698946195559309839149696120332736591802809640903271257272241402806897796215347450455542517304936940091304983932038536862934586305744839236511840140786358777157044589244659098789154465165953601954293184669750675997801616668125746359694328507799347079298527676329895235157839013113845035101088867267589978653057081092449717118162539344932693040514634769402702420069045492294966730880315609439070977390960847897218512483041705657539161068331920980599367419889232394889770112087985564378118339713994406883468522265885753751188119165933035478915952239845058508332560057459066712278141349107548533585580456098199059541474166964691990941829734876894239354340685784458144304726771561796499678358221767038798807220732944027937472599794165206200671678483365953894015819229820015263419356939207709371790042983977552847841473088709241620370550143286816626049181248700916728030393103867715475951636142343372300938505920987665603115564186888654928447697822076820123556009767870035515856834941251710315363132492794376247795861048808662492773098514298987304382132889226627520064974074552142237901493775721149036301602025259110133357710068794032309565201715753732257607958988661271534256199382337692020962173357948581438176871447317569272786157531498001344201191101339995365346909564256093146088382138426086517198069398900927576161518683259371579141273798815254958634034259320806167228753531044240012919960676534197778499780366919950926102047082170767783428343643097525133081045765276415380328923310907521636193389146225702060978801048059732233827961970472286901880904451820041182196810361917059043369536608186809373533058374514350688453883847250716603679343133506250550353254364914193340845359198463225339013428858206234115114516145816699945403280623606399266697317710500465938116590321529544504550228929792686424343143846186977088205730632209274802816910490011070567496462582330625569695531792719395088025106045187722841532904064303419410888243326645520400631180092575302382950535591980609982507067039050670283260123293389061986645464923414904261804799839985510998582512140314416812524928096400284124252396033872591669884887589998851966858291470132508404247693761475184059436339634331353370757929228518513003367126986320081149080189673844013170441742988914802533235782422466266595483243075966499811022314724646750377161609166724625149771853078745440441700474341776747900393330245954785134986328426780759984936697060563034714324996890606973728203230567589936530789443923621883502969636569585385508187391406203542412997499326530693037025023696080936376146447743485310489347137836239627265456580842823023368597785306166980515609314204981409815862888018197710113639566655603993060069963795002086186515395781319981799224178949503673008044539541898431256877401651321673553084172690453047383882337821139016856321517082296020563093950232873525899442017558939037004273804940486601353836118003497419693454240936934311326011879306310485888300893174704555670311314386193395488240116645495901246711481276614142554557583706620009520148514696050823959674931682263913702511577746264928052183804523788387106299972840549918536064798812086970697776821021855864600914442279068438677323439724616906926620264366758478174028788299723956042034534928458537183641486591170623008280896070865323587605604736393204070697964259908520086561783168210977921817300994631361707829182480745835581929931875640238886350268579290785820800181197349163198899746172770109029859921760095938373316126262810563929027194064608655588978449650087215339871343358672858339484600964449485160692668164934605724828729451088669134519752296420788437919577155902645692439389720370710784756348844977376037230875740138940081490928244698993718886262728982422784863995650378217091359640208954224785210940104712826879974277309334089745863049114457082986604968471916163998291493366425487197920116349170219210149065878082745499357598340346256641189671645647372030121526261619170033268293507401122094351846177227204750009147377124456269271578666937569007397959660438519589625336282200944104819675538511453285401659912118811350170140562658304858003042979482668626699978716272380422534983973845728932719305334986312238673132825352747130141610874876655855198874846501127643961695842368615512415896374444607637780299240471193776505987633902274942123916023878253720785424810529005569984865094271103845047525281785226079842325675809791974321668233081334653569604417822390988169273934001122966820161736759348546830056234997675323905672406972149370673668143328143424955275290354436346225611246453772280765209395442876828111788137728846300664655305797005532592783465636144998742926263156084407757143217756228414969111807858315049062241342112362915883005140709018652737074838358484201878958135741654347224129598665465941229372166292940627358730310606261873215443883554656659007553271013707870636315224335000313452695673951374447289579607759270925384856359697794379165527623792279759314252319739814981995332983407841118926828753450525098439074310816391234579302865406218474411748848318667415942390092865675669893966796646490353871860503986539019139309515074885158409752286374515839117413265704082303919134374304957630007120275319570970523206618297726414476158129248983292679514291954721667809299363377749238873828613008068831630071805049562410137408840547918079772804331839664141190342546534622805117074182469217011642278329708788259012509139462868408514514699152590371938780146235734686931014711803271526395197134876782645691515102812092902694462392215271484314649830017627282029851860903082605835748332318560110749965247809459910304014494313134880113532968369618383611640125318871381490323332919547967452781948916691794597727338518692152151220704596034544076024442316249414774053656814909638255906267558881600989601569378823770624102990607080075916148176812999181782235397252497863715874810278865087131964430003899634000065855516740079758290494022842663927630610776949045763387044198612064612427302879356667604971227935320745530801549467576591181120801594198858877919845429675649649279830662217852968335933461602586482972499163201848886255759726490770398659989348804623663962590982563140509400168118132515074126069360278972945497271427656115536361183608747438700783438102535328216711913653743746795436450327898438183834220341703811636917453165791256332981649880872093653281233009465819170114423670737903581485947096923370138313798341624975261446606070156803512467192335544969211658254034367770150841523067104195241671122710875445650799386794142690559487427643693766476883655267664178632541087930347668295212217470677750080419886715443630726626651435690328355987764685408799191723780032672326717279600724232637146364156921270614771565525930918985152186796277714498282813710773483158390017096557854224679948674099006339355768237620059454680563256746623607870391128907124489775585437632066404699964021372471073836645779832147050047802596062405447651007013302300171921360836491201226747132965763000296458210063315937353322144725914823273543855433166755932039243162797067668585837455152897745151833606993918003464171873831707755786430337353944986346583806398829417193286949884699658884927986505429026390651052977033528133410720483189249291210368394185303871301539277032644299944715174005741028554719439056042797506176987902504641233433039301349273460671738722090750056367062041060572439645888850776654420591007657565940668645724018873374420639678245076688655221476981395031557512018147432148407787260375877803570059949955330116137336947933927927218659803054552242648942052653653404091561962172494716183641549096084187076738860606914505727936603043286697861215538867340896315001936757184422668502619332794878979803380032098087858971811477622235295379160445707376829958835440444775778085800284668672313916887669718479504964098267214611714941591654162049543415734977884431179421222627005180614951704668769616497823330737981484613293965227018250158604870514350955547689144443362457146800027803211051709705320877148330030017713301162243523585012357276219610657528554300760255420519295117740544702289239987873695135623999990766982485215455543745539920593845199248436639717949538805086098354116397968362634535321265665300610468680942929952190850443989525685693944403504740535548335664089764217182196478227373803613403147248435603059093636160126009399552870519814053945650602906380762765045112769169121865151795527084261923166486851096447630518854813812905251763310098746585557259688472363440256365381778764773490221515490185586660911101131240174709304755996511780261582609508089587284615987801200522257090880348514860585570995099685854713421596125352610452749766726075712972561116096880096507958774492919105856029434960369333938438932674730627077473930994787754510724306855924398750743574479967843092043856691910628313323064444463651123013904824570725463644250687405037323281063460602185008953773294408364270937152881518321500549578402518363364971281113906539435633171788965342151753004754808577430807923892112532496181415799280809604620987044443001326994329745113705428870317956430247664485932174092693425658811864233839124379239518228045755020041361883251310992395800061893099178045278881396315257704865200729908667650290564510284199571624886074478499095213242242007232304511861630944106878804728916687248520581156815518315647221295828259711380891033066683322489255290627015506636899404122193754048022296979886031889968930075921381934231688294583494027068002587158209030090581812925041388078484906233796551798925607691672509015483943487759384788118148783369025885957580793482315475770067831860390741225850842404051902019012706650293713013842358841773981859400789060001598216658863530223502059743111310813701132460347297538033239465440321886633769805275698059111457259542635234694801980197995844800723838314254782413418846638632793886320632405849760285126314013755176117971385396608064291092712569769644322698067370635040210791916613010838870224214524446057898470057373473965752123810058644072039893374874319884123491384587093197159312564483299997141518187489413946787389511960615611566397395177458512763557903170970010562264962137969505981998689362929510291220376338800818802465654142662059325978629880214793325302928544588763915846645088577486420423087668079911040016756256860444342109510006791996597854332880691754846497221150572683142481164621782521477955603699151792554956123274546800910340306675520644046919258148978629535593595302883087676766871012035485088656848729253181850856510896220616489378191878505782571774194287902344577622857258766333852797565661611484326269462471397333454531601009889733522590228491716141015729866559001620699587459308554389211821665841186422587236158450001359762421814489806688848956390264834970970026819607702784313185128634054787027052960161071968961836356616883206778031570522501472028262745212736180317864077071231989357664695983098933712681654753915353053136120354310128367282546344400567024526814854135669450619125765215501472594319761933898502554095065873834487088011369452163614616043917458379092527131032266088145058241644403286580823193657129134084349469111531853644091387276194650098402926873526358379815225810968230862730536666514766213129675864299152586381226877076683084704738352031701960854996704522462768399286681656771432139928710378585111831129364284588867921439188684410085027130232400002131993860818148224663771008734737097110138836528559880032996425755595458523963900711004181933841020674238970474909240935409495292294370450687080235287425217696419323600362942280517476500383266084540812665242018828767624345885615622156826872447193887813098044094099144632739780603892804244434318798901622399447265687866636874104111501754733722463339358716009763943717208485261269906870026975733435820014462063573483400638915707381837261188981082291132001794726425503735570304218894746037440503292615338900267471293750044054269072510580572288357185070713155338974526481410640077722443324535387913620194844034768109356027383812335891740236245155094706952296446131467525500323150573694913783718383631006580873126072861681464877516847135426259153962330263448248576548052983415602349495311119659681518083454173226294784901656608558894911137597867498997295074854056418650889142379548079209797451373779536254490196623288686896279654402817011846286861417654856180317086815115124624497984889352332950845490759507743104447399334203538810797008651455271941761769113315781227454215457058373422379119801923358800161420553911695267358162771973550263452455754444257543901113963091886604499781632609087656354075819778953135675849317858572508609646821744711314671093029123419711229254148531649020996422390792356113219802725819638938263697997304753997943849204125452264600848858276065515510780456576240537436671836185441582463587466390026289071188626831730310273623363465020186641046605408815588117048012283515430992731759717835271014422925746179319842358751928613959060068900465232730940230889604585057085847776958484848815576163229697857932956628495050587088458371861143085180671704030871210589900901973116963466408719982870112363975294696362316413187802552080751629896217942310385096698588495695487912194320605303609347879253851993275211094661033589854778049303947792713792528988641494065936052412462305787350916262339787630768294839622390710019600574198032296735967938774794047834756294629327016800145982142830593226561819772592378227943216839783231738721200233756734705019011583805031742321844491252839272070723196144585903350154919652578825302745988509047479097326445255990186471766145035202151321598254515722240785402479332192055856320488415228504612834193927731539051618707290332293298544376182823893932038871821041171066297268487472484395602101112488620195702874072529898472242116870542949031146360584887536928232968270261658533068047976919962059021515114850273233681717745892309631344664247426453096174026522543538826244192881538723991034042859912581567655569520247403211916624756149806606209493105953480432157729903092708406813994329128775078954780812080935063129407458067272611598806815585865687338752360239821600899838799875124208665161163542360396455895990903259060951154390835501681739077366445750284219645878161666882750013223088816932617327137201870721017631014981814649650638100984138635883356127445408664861143838381213506604192993057048736208445845607251885200054255424358365404144638201573369902924107877202531425056162367846410930748180604811548130808057061352825901925754354184901083228654509786396491009031925977576753593786118519468125088717258351725037556428392672555545640537629250829650078445924019692418842771763477503232851943913860530178094937585251470572839751937851646477060626071361125522421725853907697034844040169846994379253294348390436623841343794645809207272666824067915862162731353926899510238126491263465908039699472398691818816655351217752452028115637198199217217389359041871474489651576274177261844424312528552435719214646795945172162019073846127565638430203083784054561869034386662058283624310099619099161386749530125834670259376078291038624075190994801492600830534457574382360732713046853147787502624292339671619940019032129173769494365022736965294520157267795257263089394710549277734658163924928368937497243195276419537490766850758305582777081673774021583719951161822001521212332630573528465662553254961995271973935937980146173264251665532863948540591180976290336451163816235323932580370731791199956993937665953811442216659111848481582285832204675321825567407328927555837862773260665943649320300098136771173493970938195130612620492251781040778442912467426425461486023405497339506017702633052489853828744940762849175608782131498788198360105187339602080217661579952276225152801062833097771576306680218003136000188961919906471548273996322215118754020956970313533319367960047137143643989355812724542409717467044747636828143718098254593889354258951662291892625556656125044436220510914482086824108953436013460629917474663758632112473439851506547349451914665798689826035902233515008832286765619836199105254486381290455117074042143019657602234283586662353336443386658658087340112613755081022940613051973250641357939547824616107070561694393838849301286985930684778810196137833492521646763059905012520187993315622267933028666039519301939577118132702577164699859830110371655355430172893701884980515741926670726346111622060552611916509775415964842809134365302333435923495606886316414560663418110560806253489408642795593155753433321821532212594404239340377634065155163929546004337906526510813291915044296940599198151220840836965076397859624686129494786424575352614956438149600523866966707524394475346113228038448411405877371056163001065095241002076718851041086512256181539840173434056551525071367916464798490198934271755011573513831481245686237329106307170605740157449321046220257853455581172012022085149551406153511477695932936340787909457612599532716429263048122668522176945077061345797825546725656963668930229859416330744304937399477266547819548939929813637632588719610544215256487754857594120291586554459481037032189328201724072526385995630272998127593452334428036316246017672975107302623034554490402210578643036314504186347330426092225676385525819109565398034433143616306461427195242660090419004128370089115792331950611736417629389635711063601151504473121990271957598823231917414024619346356369052559132771652175772555988745892002817102790180880961042938701103215420980499989875217173661737266168653378376519570966283744473455826349011447305205485539539635249572216365710148096108820895424104052210689260213743336935351282139531905451597433792967278553998780487460838360308353862370023844137691313303558963783175133587614732501296477580692059457866753751477651814165325681850492128226439637159213266578277030285577772314569817622172989254115851834167619465663684645541348154772684604173065245856672541193073148456560174902529098461479504320923084491350385045478701536621363232468205547110329615045892080004842542958150049314519610918427627197504337993835015970829544804138835945048110029417629241175264523319428852265058341040912538217232104157800743910796575865743226421973751363446032776650402122966409033779555463307894955441181301172939853914634726670539171555415638026373782274296103840577096464244822688888834447026874526505815963536593952505944991221929208576741532860161680385166992043036592605841973665886189264468984238760095185588781592000520869339078526409115005217563020414451366002932986482724808690811624823819272741493096667260269038495540966665097909981669280199629551855793568720164902777024958127511210650985353178912385678095342416564590191979371079171880878359668428382075313719723529858536099532052903785867060702809707813289697805153772275043950190937178913500732500629515424882087454853544572623899245266411775872486151334859875211041700608001862815068761234464856719755159571726763073112919891135529930885357230924139809760217847777318879447336837726225077110415465517015313486066920556348655128824633677799855655465165251952055311252714068620322250496544616967734379751099394905293410358553776517443114647436043970038399256705631739816522267526407522540943476830070383504112499792606202374227471542451490194588435209865461882572565143812627331011568873038094585511527551467869074804732399602132575156365408626978575022006213429043954163473264617809998457842911193906425190058289610100077622374783187657879635174322471200154689183891789627375727720431334311969434805534337531997701174377302842647985304247938769186242945216389831600523810726757611248068688303338650495563303445185182455936964800114973862639593373817327910065256013585110608473935709609098468174799464823120187627338619287945545788401375234801671099889605939894462818674633957072494032050031910783233657796751809534378380244854025376097949411042616821407952907024532812347576215565504807957012163523259775423520185882258350680704961744136165162105002839456790748104693588742450395286124795995772182714682772268227307553504500077806350551935713722853094556074347618249836578750627437444338437489499713336351383050324898675408801202520545314354213350002647053633167767495219217693901398211625122928251396420178753905891334916673920541963929901412100085350822605425128860792225130450747705549393007519865573555887218594850757060325057364999702834452687734792999213064056389002785397680922451643705713593387750840264415370119329062323463035519355047000929700798303011032800516642048207717711086105069023600264837209561171080928615208629835020267220660132440968750029599392023419290500347163049809323149661252170860288282205793687099124469187654728100656725189096129829848253128435141534349602165622111408217191439189665835976575861495564566716193087495613499194238799747599056812262793910304321587646657883727513037941982612976974482829253115485388390300971396954686561112520999081638999759494997340575911515950051890542470210999355794556731695941642457629543152917248465616520356395450770917343611195176507723371456539052202596928265192940495825093321601866037896786076892779031402111849611042389238411999502904545831774068264679657393060411062636835960751895118653598185612233251493945409220762029063598751036962575449920484616076120570651353422585705881464434489162716560463537294299533784530640120784737460075125488082762789797077640408256473019951756697252127412447033992289720354981915082189612080782148876928338842935322288341713152554808987843378810703270656167067016663741073645212727488026429423875928594911002701517821085326930675097079758655864394117144813391916620205883445038892894860046014488355336883398301988154752193298745127842819573892101554439604524743519415633559461057959104259600650969036754550457739669639895953262941980973501114594346553415643278631101984964682800990691187091972177441520396974713952886583669190023609034797232696152061664514444414792732049154615176770187985198436767544162260044889120692253145260776106408181036846458619343368046372662551992898574374681802318991778548135612421688180846831069286758903548981286866121502295307001508977044265434425730093549049430433668296765830213616108568105504212919871635949366344655535608199339990240413861974453032931139797426713037798635034193506212274758918220369616250512602886358895893435789256850858609266276883181942919592377176784655126564136231641117606614221571661650673078037104156919281952589598477471057568724773720412531646358695412285392151390856600611716035354236359019206332450952925398200123271403931834631057103304113612939079677866541972897244648081005207631882455403045480194085935576571145926594592000088135076705378237919450019350863627062881595876250896218627893864930980945299357582265774162474487835450217398679464118614201242764605116941809234425232363924567464228042805084380961666346619741282491703519251863694067575076808192484492373028733760293877467402202268160683359768811645143184071152205768961826653207606069414508276454716512069139804999889179461398242204168739763288151927668845754360774409431825246123869793114231150646763545113321025396380440866149512603430783190064167766307856831724053274458169108644456301034779993769275779625284433985792783293620891079449113171119626390316407745767322671755877255108576300522250798086257678859451634118197722776463207323779379712040302371195979016606582625772883010504188200970392982218231746896614721104632566739522226499251701321348248303463090827991969399236537245471395815212073958157184004312380407644538629217395922310588950882680040154481867068702886806993692984248009381025245902929190973948243990120921923800061216161308742869980448479802026393408466731958200973187715531496606586393992404194327027276994904716569006067483917042509838864562271182497262425381317879643195276857783495788219862957369721311883611416598268987317544546214084436638956519966009481458063117569211986284021183268710307823366839905330355225534596624849556831969744317305143694342990844060665817211185634625191172776821297500062318325323950958279355249439135223153968991759586259350423951874872192819690783893221698255740646167767472592225745728922844120093090272628503807922697276973301985798804694829035394525217488275392608709604785137959038579558938517528282196577391400875714549369756237787167471733883443600649403455054229319197753315100890068937523329802002658531094618633034321247290593935265936931180272960117062778641338841001059025025540627611152944259691595887861507218948537610766813202699634950869688214992621281792691299849677789339757688965281575240720792847046382217968409397789300052795700138718535161640055363941833290688191269848113651996285617898253848920734685698251683359808263306019992019933025130391483456274317481905811213783228719907959027799248613502021564042387219327174149479725405845526057713922492134534816905274284791771839853187601008620972514148562138159966952302122042941421817749702912677733975839757938143992241541084158985626167227897343208026509887902811346968216806029176457477542338919794651666258979266826317886877295978974502728363491443174963753745480793450197333323394120917153058335039015796397898840865580485645749264925952211533431639598437404991210271587705787794239850952860341214844226016282988052415145744169441143870761368193074715900377546541999384738598113911107989994624249679142106190088954001980126940058240140507052867376536930578053185785166221917584232678038944642817445100923029015248080314991039148802100085328013027614849045591296433640354311914576887519076387857030716350388412985049713999769107749778851014043735626617384027589695407529375800970798184934626602844842278170054499254477653845736641581109290514169673796106201399841994832077499307321660384551258559827644331650046783321028336933167418610770919626087705142836961467596212864166939985036927997703286095376748125731371899590411134788521464898454813910137266498917005264879162653957842304682562022764459713213706989285883517305832118912564711090110092235492994425511810782751098210212722322509379935696714262420155381495483436059381408780610759483077203669566872269438481064813666676589375760546848221869809191726150225370702193257806175043864202184270041819866047448056468320907488448905887830867600981341722059750534409181088810591708410580974916117244055333797465259268007377154786130569204223095434618875319279080016749899473855294049407881861768217357597317065294492645670414222234116186212308040609097398809331445473972272972037922213968494862608852426611716414495545467253899983016059199804282514108724167455073499907477046400487776062701983942680516068984523700959645490818532654210609087410635001634328362989049851107905529692747591944411554515131111281665886212257184773099686653956053665464374980451960482395759982546393053861771239916449842009221371738078014856384231087914976381953640220609484893679545530241959621412846533378263708007563156693737120227435346559118141881558985681806073457905448316817129480919866387469825686851666037636725165746417030075169358414179716116574612520491140840961714998437141017809426056519981519166161907089857552317312333109698401756815017709378255417179885593327300717255168983390261334059186493792614723224685816425428753893157483190160361482585248467196563712878697564587812010402488271505417307849807433765781025903786224678390290848657527352600582585661531340884261909615319761648902272147260708676972428759746042527033390473187566292382104379439094290932340362411796174519072238241038272717619097256488190572167588469202055173041006378332553262175884727129949452356128855514754346615978340640960130484447800325755066704077966824103871202662854345139561443374806473653942673039580311145485604710940653590303460620534004111634890915014567456937740864202950229221751730847546038977116060286945442488038884043580358058332317518521736962791717977875386295079762470072607186667890528877766871229611592472558355786299736554706661989600748549953111014400196858931519706054356623986726925725673485968946052624779111263370903871983283719430696355537337624790558262171887246991486251397757720315100762013064306124327073734736728729998882186700039847966789669724873467616500004093398561172551131313697752326383750157688134576037204853075692759312202184622677260450780647234389937810709207538357304688507579855161400203712608958927781156917571588048522118400924725760568215737983945231686078031110670828919412633925959633553379571456302937590012199050673735868115177538663288998413660472324556533026661763147880110384263168106919641416927209768571455221726823677336249513236449600161884958023161904240483564818251958782520176863810995144668878809927661114726803241659342461959558075628651396436270005116753233927579789296538880355543435828858200016258716867362587955466419594323728483565289629596050975099894140461368723254341693681135030130674793097170584577723714848705800532107241590177185512774038022230861845323214435174165770569145059468266118861976679284723367282373392067258427481057962780720482056656927195051373079482423970021337912751301206640788739527657529121474669171245571278331932711590201497111652237545369829727204986799381911344196232505498226518916998765092766878501691150706463981464384635605648609369724288895257272820513575504748223048579498465382762662629414011279018632030167388342792273912818186744407830858084251861868683789366176937059689250080708049008875347873700016668625859545139966024237767710635912902144719207164757112122999886867759613177489335476649440388603701637283367628142346788412470650606622768663710311467379309012197050997835228743856934472794621298946595132026089023426163508340880816004343285191815706730449995777322530832050373143694680286250669607119379502471859394020670046002577650045858415154241407330136643856456324901306237299640433979536408696400523895386063741681013811486226215169730912928601877015768423277375699100605505732146176179297749486844240554743964247707639407904709285162249073087611395003244098427657743745066565333772340662097362861599448541647181249200108034767600578658015986113202426540877283889721445823530520263355048575615522117899861865740483660874114901631721845226575197567743141982316698982250058583850415052358631937800639671020135106606932093140534563548586636666563283973956468921292428843270265061251965427044556383998993730877565145258622257853418378138298835206283976231499945519725188558753097922533995728668043634708759528302486452619846430706907299718865416233786371704981202933955494533674979757508358341500828310320034986974655020496640431708206884310024873910801062923042050972494919542960896164330008329679095798002582906613491489640872982200017646541474094101998699279417284356248039654912053827562551115139486450539426397722898394658111913867528167739478975372953947675003614078269940065098038868007967599713976295312400695242715843020164188014799444875212127376960824903191203046863426295391825963665358893966903895605764673573450664244796960452680597609556033325608514867969954705702704799072041277911370308756699950925494778389003182731593909730636393736184457904127337164216597936729873154536085550196371495104317690842325176908712020008048074620895431972759001984632140258306576946908970362428163356064358672386925804751127915981717330425221349729052436158126955132889740967212323556905687771491988648676784950914433501631013142286201088243925600289051644715393096290595596448133412597739026408552268099676715396858817737447748288805319327201376336675834172198058331170731661012575897331476477300018797319251233004113155978948930473117139894876057688769883540859362361704969004725688728097617026577725854499198514890843528836525208779643039485844332395595664917401706071354249479403652666344085186916630520703596799235640221838367988186501578904152986809106703375787382299487848988155563022932776593932647772385438410100425763675244979286564104211433594156127056359970646453648434074779053282690852861438981099311860058619063294106258608033226101262647237984346075408961895980199638772793449653616055832261955627690334664412113406883646298057073956620667817642994928116560040046645552910987275973964248069247996906098784193653490005186329671313904600715483232835309414517381737265300557855286981265767851817893646222915736396547234915689837301287356433472384794139465573244219703895978267180967099900033697537454518846209945607439031708008044359168910046050694384350985118886510924205809488039594764172017071900286672645691414030642648124821020626317262577812236321305430791608312454966545979266094781486313558872625359280361727699197493136218597457299096165871763229776110987309347994771613262808031199388647758329807349132138654060639789093300978581345427280072956287639154924270113233907319344847876056933544720831880057790487178716853444853287564433667647459876399297445053671107423997890585092577231311374368916656451064550593138166394360945186006888531832073089182074412875424401846284514676606648674851844224915177131367649612546581035409074675880070783201117402880175528952124728221714158585560015660186445648385054875965287691608472885138360147341667031529386214181342453522401328273831243164061475532329126509610185699957241629342890340324617741709938107727886888811544021836497601919337887412776193353976922878325026436446896165436166111035355643587167281377163199569861167490418708654910123375152367196096539034015149766516544620507985399432596103947033610785731190694334103133904729475734464904257911648325739980924401402152005905890527020544029716107757174997167442695536033687348823281429808626784234418872751736176785314701527091790811340290752278906604229264854381732041597163479540869560975760835274709616889258689079297879245055934257484145774298240744806312447002382926960744279833537118303230317994311101091736472709380885788360398640089188946332336681215446180164615780582651196135095555604737670700047219359984786971218546341671549472487126786177614424554234583155550124706751608231877728924177745906869296482291316607411924054041603512646598587037289013762239030648592699760029642583145410857565636111693754978893329821045029726275898168422914046482878075923420336923023783241472853596315351730926794396680773009168093748311225851557044637051845726845756723363477336237861731757532112369405825147846442029262142579536560598696777472608098281505628756048136821080056182288626281787979263606504455181114752370695104481856345592781113752856403939985112043228789945203122202466734102218603809228810337880683355054832319721405961807402091385102552927200709432034419240815406280402419894446959901796142327209883447852972014933580476597387328101417923074805230761052777685076135758810080631162851235744715642050906345618226485359824365931698877878624426348229098734837359265894157450472450101981401290494800401747325632645830051221467509542603126737073256652165997202708616633460049666648177499964553364996864907412580486275096675397873453551928828729081412827511162974712734063077101949204687088225418031082074853468833764481893036087900666124082830224255802115315879095187519332619109903219172802440199897165053435272619360360490240538081294851814198489486762300274610302755972608450337737850755494617039269260234627462633828288572526780303145878445591382315000639134314961325436617542785564814054742534641780523819081287718615074783414643960625150640324595084361480811062459762334417055303512407280899759509105260375298012396162258616563651033673676460788099264888664271844946309777847448413043357463061744426754938355576067200095176300441398246204541129861100718650849862643918224721872609869207914889140902381784111141171824640729682795334974183480928338270029830683947841936342211623411047789227473171929659170870423878824153191305437494952383145749440031662423971923008460002333137143925401310187352947128033234816596466790521900544352499051432947985140030792990742071217480169605183935278693448711896930135120297203689176440875576105023351268506615757410515975533668291090507871682082451402977926519116767261129778385656999815504423080730134838630229002427582558902324298096201280026004748509464086919787991155801436937154591085104539187592337163837489845595304402474658618923389700358073099247529891049237632542536555433915490760563545016814007770454523190094962443264099846226610743225486800356685528971478010478127421686648493114376902328637568087934868667867760306810976808020585676436518139951329279187066301293838659986516314166101194208556881775246282481134079622892271108882847641138907786214072933140782183507816643021544188471924542738756520557216054317203942462452968471276288342392261616940596276050891844394853645083494539670576337682467334442585490223377465957591799211503870440824335394832204006108755957038891662996449186112273276487895512955573969729386572533104257736371104491358073332497691677503610165497524471228577791759425729189488861913290949194215605526941928901012461540588253373931047542486544620693896157646165199404438428124062753989584409841584587056225792389550967340359841432700246625855042557744496301873401944003236469430911385926878817909579812727072009711160686765708368319121394258902429004559559699380008884994517479155679403019520288188376761946486497711772695683235316221410071595691870969376155465210172986536313894022109828833815581445292789857775656103499188754603004214486331319675881641881081680097154759692633412010003908776695888292783994045587540273532902190474802566264075637297252196847763450866483646710429506651665688721083060715758191069522983048527167068376612141788457072666464790196473169057430680950973130194947895272140089078138583773916156035157448604704658854353334563032276490996365248611736216796415931655958534379686555301763408395008039900237209568708653579009011086777067178375164566059484409293087031521855017773682957665703922505738989874352302642462864843779765343280506759473954729414983808067352319036966057725580340850848876716923380654190271292455890528976565443909684957628995737659037544658098079525251531827240301007892957430794803330419091211725054771639195880207293210119181867477408959593454466739943944005234455253000905896070440911434093609151841791319052550637111445569358975665690523582708889746781273827836621946854626741653054181544463992854321546427007878143024764385389591424141009001511238180003079708200880599895942281314879379899724122759107178227129414301410697633786580655291060533698902606687902417225155218513273020638482921586922122264910359003403124386429327139312529791473979535750883994138097557702903050593637757797193544078827485957573856538340149694477424303560223720036226175200935332180041499746376355189467585892355695348344394830151951738273381556213622798124142411991412893534530663897424598796169306423553069322205849646907983055041490526320284456615636779894065356941208048510565710646707746366653154957748969388129445120974642990823119228319094881607214542354903564299949339928476054693831288540677625540338332783234284765145112121780974927450831413163514582686446748875255410610396657500593340827451279258686934474101792474219175927840404236340230368499754721674000370102899633458204997231385444839267599208581399908630911812347556395385720528600778828467536101187663241136265307290492526725092783659450843672568176127695632632852452070173826033354331602857829890501876364188236063684367548847552030056063659910854825915264336647570972471613464245629444742137557494804784103322262486824270680943746375670463439008734207387936065165912543683314398651308280754269030262381842937029227737545936736608122257433595324475664720373774955023526307604150486160410809727711713314166507221755836017082479586565492822387315498604927771194725452160437442846365664436000242662741509904865936814794326579262092940236704577084475211820350206642106905140118631913999006999931147217311406806091785160513311561446290645883384546102249825405561834258821161547729834684837378116192632772638129668206411628927876198804124454375073787336959947778162638211298088505885484326341620008046271055300928061264212621058441117605355986235242755862658706411884057531964325248254451773484653655523314027745595341357120168197880412017124355447113506736326325232358048451504559681553892669637485663680740766289996629964167552207019694359718029593290897765011579459205249263422235241668353843506745751787250092088883168932209037591982618881619031293006461556300265712202806608301842679595984850493768898806619972595214117325288310319434849945315348859308503897400322763231043456061182707838870896713237624779046088078121531187276946771116234892456405916909390168702285560842062188664667779319819865687133566947970781197565251968169685767079193619657392205214626243162848234911854800853705590428656125547298683016028811224032106295311260842252336598208814800400559422988018746765203264993124215680629778681974872712117544985452762944698472479822700492488246041871361118511840148082436481209527056452988325868605254171167806184763367528422343756909551478351177157636556758241646743946517365739826340034290473746274193599700449608636329877018746399476709376137565849362787724656768517860829766571274241761989669431497514426748926611780467337081671349349688483896683419458710947229164894434992570650998042156857310226883470757983517507182682155385445653296176930060008011066186082504492438825146425167680204686662138756913224457490574289850246129078122369257927176280190378823557512351760325549361651122322653769581100070223960862130153193726173416292813996643995785170220660183190219163934324494525262900068168338993868041440164918397206901399737686371428292297658004498680940008227448700503719919097989811549780430987176572558847936262202735478718033450935247651109699274156015063291604216908848451235512380729316798393032362897326110632565965265778641548296282722039121445200660329892351080866337022323501668601145700620190156308917069177004615211459028042601158794820805796515928383099897343912307336583229056306087153040750132557647445017719456703668664131525686743776463319190126618618239976563199640916605676863184957524091429924192420906895102877235922323361604791557653718302345170917119063208815713741971293700402890780089900046606339531806550226239668157792508755765283467776785047209606462800398552444195684253021198956766428436038889043920694505499716375971167245110256547272466381415467097440890275427527723696872237007922923085599522863557068875809469095271485614035425310185841636964602444993765784275397328131404754605530611758066401806558820225408858558738850172218461902251024610224120234453566748618715850910756211665398780044244410889746396963584743136242080493516808852363222025108532844632948999899247074464823381641386354255015500693921297674598943606296142031847401250655797715659540902754645012683249328070403300735875956725352802976022177572205587958326729113356949520320843617663606975636607574461424559751186670140860924476638997015652154626236837099813597988401028323315930650907561584981906108638173399454890047092622736671906719345140139639507620497866854964693638138158531144557984351012212199181074088262479937758374397512609546363655024347102069775609048329177525219159252807162448834691605967476265558675235754717577777741910749744124172763579152435864462909970278469523084783699632264453822589665331507848236883333301672026038471493942429337657708001166986435470487274254610752226252764280277307404215273723707213961399410052602935538251312928988159345352097622415834653964838785827592596952725362700851548727577077654200224239030551819577850808679621597982826339335075085229901045039235707573091386135257055943088281716976483917674617518124017890815421377813909142401697697773607618975960913480332019363246010783578160127213211222280104891478033480820734819952201070997671828459194507008058813879429313410384830316039175135419409828517788927672522263828543521076726284368219370529130066918698353814381359040872814975581219037774663907045134537709084015065964796039323206813420267174752309254703215738602206592514966901413661744746562179499419816967954194836437669052464716128976584651994514766849417300167651243207096376110035281578561567720788318667996539013220181013123601783675522228706283142652912554283481815636971084517116694113886351203818379856094096881818241100779449970558059140942480946302629816360772820342247647117539090828706243884393566091849195748755119565919121510417602724082649417008382429294914181919648740949716589609381334102815949956851789474317882354132523144502370865070524687027209129822498067349290121051180025745539964275045825526031987583684301257424330154914561960568045040550190006971129554156720340212652514128206230889311328545424518671686947803453910169876080901706094080307789206797839075254622246333220830047939394160871443049029579132153718546612708658377398036645635150698891699242591321670801042093649792487417905104874362989547929714442443396799898079283835762673121164309352714974370522329071940860920078841135307860976934892849287662245441453804790908737212933421414879454842755610662807027805431285470955269360097080607051857672235552974744856813298561539361505830748412167855032255529011942420176347272248592701429385067018533107014235058469941464578931717235770844822151001079712544981150211542999157379615529776050801792541418674624338612312088393775972168251915071576900844251031907527387322191070108086194793516467383755362219701914453261528683617441488108600737296747736526706659558294809130193281352157837839924193845241245971505798314738414769610058412007456303136032602242587619670557192677421892544397530514861133257622605062475669916462211463181920258028522740268107145528834693862997900861340432322231966666728243609742067179423189279166794683344675418357436851293322785902160700259840058680566739659539495810701402973511108375892262978459853885776770210103140142156325667663035087625365378327511738047050384243472054117441330137246677546351621087200908151736416425658691775042712789082273355136588580234931551802126061382929483587400363788573440287330139042727606290487485172442218066407324571442411477526877373500353149846965475173269828841110577720984123213255120749817850289090917410625305005773957867460992250056069916665616880023952996960058129045575643271952695036075279937469161848424625839483672587720136003835724106353358188936402797520186604263795096635089130023581710673368373739137289405793352616681090754776721376540536162760626668712520540128936421545674610462670620638379453268685741639753548185519219980230677663608920572087504921187764897070329843795413146871026663113679628179925231948565734233424394766439161439951051892744313534776302640889775269925209425881132245434700338187478564158987281126357083404112005701519350549026170044239306699362487125370623438113138099168785887965574988492276321605754824398930482795774229159079100451838811957900405970875725036437633177696832495598402871628450150817078752237663363445660426092859449291619106519169650011218056579598373483015016482264185731216705667354827941868829352663824389593746857130371214407807008068485770487776505149374039262206008923552006315053489915898749118570719593860412581455123749504371918614445252314180692923506551015264086266543830924169685268273228040428931729140049915844050047628734683631384453423385751284302529412100879894124265712407618310290478273699908733766700084037294994636331500828676532953388990587221204552133942458753773883110888336206671744780955562771892856323148151952646643332139652636929481170860921164518419912725117840996263547315331354206008470453816298610659334733218289631552224020583615286738196911042605263881236505373879910025753129241183457091599718645055482037347994439101440088979388878961782264092654822736246960849201801068829694222152435081331771538506865442646878136880263145473072678151778572698528085922828377137592389072522359436302162948854274506143820326481876063843496261460598475289341297647882463797552199254737735582444272383032641109386397904127742534828186797330150775778525142464181188143899188865194204530294099045624046915298080252365711234356521563948807930731201667352879760878929753328257130254009402570107382718387660740770533609071225004871266295641737672409941757191791674184021183850289527427896915527661323696054761825593984574875172709127736499323220792074028349790726666070495751223282438653214055960294734450489983498586330864490891898804198898116752023664373915859162154863461395672239571215106749451239838699330471358119364013071054293041701350639726295894404035254280550497908379812951866928610830360731248258108259037416522163149637399568886463019018294984903522315183526351716131773808455769042205080349415644737192268270922510691891797614389046620888432180525507300810522595860334807747690017433461520327985187030086167035536808430978876255846238512248446470512883827515937831864531163969265612424988700758889995119411672862709845514526096314396589596129589000200083887770830706980578321224234602968174386256132876013533345362869058158526825867409830416342027087771080007527707539194446417457168286990560411447662382287082457886874886203316960101430748808639560106572238268100929369821388036711057409903879951180829463541488124232380183206805928894248053081615401617491267125736086846023487832063855376823265866873848605040802532008405324360548916692074458569766448098173922492626028674511525088506904174916345542921521053795683485205869569590250086677606979299722907488165942778782074169660370647851826268658353882202032467623100192940906242593918871225261085021364322237875708182207207486922438494604357164280587741793183084500454726027542854574734892741660881355550682471740799477319008360499902530049264365356718891710973725712194294282043500892780866348028444060028664576379165226547212357172257824871078984752887384597909108749106653866124056282487490943729322995733978658039386822513210656085095556775574146958377051020490788277355660358878976199244881376715619072076727496502511179442150870022722781049157590449978374008620854554463478002706889921821546713069526120041224020099080528197327245511527466257529009098612001067589809701280597503934941200968015618641589436420507915732551798286875377107823963047135548259848652371528551018690200314628979909862272770715919228713435267843073128882338835776988052841955270257117129947412786792377837968508301197678061819885969238942442944105951905418628445525067130357427514093717225549182196483095475259182799939108212105400070132174315874666538325288368966563959129183189034373649496807955633616661233489215683179270843732588835478682711653801182776281894836625963316588515325173647129375054862982522895972997413500911088290789839412053775242546966154831222816081859816670293493502279207875901960080174186328174779012497660267684938846244812621228749655711606261051086712612377428384515353355523753144510647780339997877439273330188924751554931764718342204691528944341108118609308073368278166557480017084447838359951286018820276352972867399467037716280819309174747665637288757422011963730758201800599750393618191550934634680707645336689584721200363600067221513059511099243811200235072322751861142255913296579008612411564101256770228603865238292184186422994536750369699294622570194399735905111134805266141162281288107117968304733436146350219479205286650781220554615172893117406994330054123007371230185253499105945477400117588591227288862795702468569892912083734283384772661826215882971769908353093221835398281302232179252906390244043593047879062696288117235620181728121854686266381496127748509837681013493058780736941303684897171226884365393594238241728441872723712593722231164901610922476723766945887577312143668443837216254791335172065877082492191635528519343349333287215285720077418886821926797206575926915093511143469908954654699091174648754774125373034501009994621939022986805650910578429094804282632306915761353446828952880101617041365604544579374422204875105631405228203921037204035346204924458345273775538711660283710485257353832104383973723897573779435937147306125893464164589625742889811467703257532280222539363686522569539987325835229380275423610755940168415413773140597058306325890199312440170854873793163500775498833365887439298800983494931776971738571651431774883892900985950485347815483882060722755432948994788350487306952149831910749584123428015406143241816674804619597992330639796900564902077583898429973750299523647187250058483887601017336578165215481529207444900454802822527907887800238840194533642986503690124381668833356383933846123386403248096957485471570314842484625585897978169945498973616454032126211151325058816850906254353882124586517447790614320635041349682041534292583547325050203706627257229053117532312096478582979088236060541849965378947342212263933166179363189317224227674692626326594953359347140058342901435782443737307123116024984970222406655130362853914974801709768174946509282794739223604739099979974795758336928369158862682992187325612006954307968158363258324287597735935154965784647539149286614485840145918423568785384043921522965943959597374907426210364722067751232858564477057826978243472654943237967525159624493845395043628249421468462049711650608486517827161221330249264824443587674824468694686170197372955057107519842971561636059254519275812085563676279125963974384602648849910325670207217290107417208768443517268796569211119368431752611321312515812222216188349351052045958408831003537687501671904376516925255033583169990345857417009146382000440735235264206782012516202412489725480763623995107807471572683941922658255195662503252955011415241840634268613746883697271895288511012429322514283800606384986580064837278479701315495840700881842453210815714974222006500363098312503199540810189852165207325447246202678495654095110303053073859105290102695174873964919380706869906096775185175759023629901532286793793429557941072569034663254087676448439099541236369729204125667471000063291534483794870053108751023637835577832399288860461986586217667304724877031305608403961822573049670743276065078591795510573970651117749388354379525618008042202305900522680208153129475656390157766226718893187363930221753635184473755767526421475282833890089401393866212028331324397138788961519973000134747120257957874126730412790201617109872434425199236540802103383308580315843461129679897528253194334483954415321047766211902327717820738603252931034742528186176594017281809312200546714828726478831181343231234889993722228380694050900224298356592322868476076475790556062901732311927473449841067177187544926215141449223915085407227487499798724403420053844524402375000618511936192455583247095625471222482512258583397918549637038763866599292869526975935723862529111622302035410761432980035549834291777965597248316943121332500630704240454950286217387713907122667243776023037057711401505801269538620313852325227199509346855612206240064294187885751138419332541079474882564232144110782965533846330304237006618155274740969003571547812032049831478045493343723821241683142697110889140056519753444254247617375431019089312554885395429655141084672418960611687125437933215807882049802962463237414504230442932753168682390454283772866848544988876022470713108219963319415421116625816873834833286684671267807366928910114657785553700006285879064938848075623290940838638302518230239538179144568940844474272597841821703153028173202983539616011646956545919971808818837587069527960212522085382709336042622899432475425834162279045403706004000503810272005867546532239619808675326753473335304079425060558874333598535766141746412409647640051863643782852441494704595588006756440251017833152945206853071163287951952487555444246283865536299762874668454573458311503154890356965162737209452480473012843864413486659009770095332018459251712831105002332254589152127312482513287592774440941860110767448891634060648015846108213569937939300317509568479026496995518334638843650692239099226105984944062868498889528619571650016781017621011616474718101901620800861553804604836586218565251815319669192247763957143578188855378554927037716039389144976124766355036231079889250271952043061978569622704341587422808366609489181675899271959954928481698938634070286942560886409083862436509214562355063476453417655580964356763218054464188112160571055373733861114996977387151717168780978451165079103556387060514741091067963252415374259277200278559914139161836143768014066236136963631463971641158561662485772207827870663945019163191710573705585400037706887582303494326760152601970588126511190390928988536904795116771420639287258762806245327145636787779742094958861110102127214499018024735999661709185683170079763371343686533320799466482223184521717184522143237927703879666476694407055109567319520738320864081379226788613595187288655412463252154300987905226381567166587251474475447904170629771967710321896386582908168343045991288446019018414116077041631134749097404710046010799600858198232553472320245773160075396497164291472838627495804929816375680660222207543235445013008447003904191780048246653694686287384676877841156435724597930821366249713826376977206305914701983129593791913811912291288698314158484734368197293378201814843771559392440872885239785147386433261061442486088744451654379740995736048192731237349370340814237393154838142948661435906450437203523742177632602707976811413134391420805616909694930486964333568197846557762998653823074323922165279435279777470565469990600811957841473438515392607253599107813552676049987366102754500349661626818760914170417907756108167304609428914971247483182453859536910985374292141567505889858484318743487301639299140096446499177680404523716047745859863463431208466867201545134668954877362095308005902045324546173018454545205407582497463839074242925103049427102922894892573174093236632616132244818465567245054847793797674099069783384794568835983140101774590658378030469670197069688464099122957734222675775663749354731028221383051200279688136840511191782193509269849929258311839211916303194071959461935570551611424948162281336169011487849530307195687758216801979045323434403414073593522885104726740823535579042301986803117165598362653013216473531993368985850621377380390724681113649069279620201148038800538813761644994538132204086020036185605431946578262993840232395341487763825100608033451559158887704452390051228978892871940519454785417676060449793561500971546445059431121281979666435162955958377424561379499166089279623511663344308893165367896522223369761011346984113117497030959486714978731420138005366262790170491239908346936065786213247232525522739614251649319905033270065741023292075651492176877941074794371215030788824130298357610500712006506115948333144025013704744575427517261952196613621457546184357221416164110644131238293688762542916047291627098487476682258184068236132605709407203866040195164977125230654702044556636400061127658410051165268819145115460049964722483574109508616716682268648496180600444856680062109138183762511465505236438099647361298517778843816967519753298529929354233538379016812815623297107864388240822957776575054908542410255667189041367648609788813519476061423141020759379401282073950406763924360177360972888928117435158482151190783286919260489023994368681205569954762749201700448899798661716554716835525526705792287541149188070038772919429492714251740807607350221937552598742748501444633086526694845939439917200793161452807586029384355114194766594708712141233926965176427073814244895763734204255414362341974617111435109913350877142140394953140966575324924986329728115060281244070565739754094356945315404727164074312263012550311347471297631207109581024901289737083576898524673359532412825804052486904647968636588860773985888306052469498205156376950374431298058749328722448691658955329222447561810079038267270870317962087401394726802659903564850732991936582653822515811919505338060872299856274347541478727161955693045054575375083964339525033827360242246151410129626461961234527162576442529996577231250992404173417173813309366805737460435813001868720876819866946461347158438352417307949235210960532956252260097775074394347189445082524599878397571736079454887397440016568538706171044565070050418255953824591740016433856441583593164519884723380316025395160308461389596372176165791498021301771440620239425159274142475102155019593341875485392623076208605861739778574312222824132034885394343591585144191310982440560686477481865677803475345927417132070678974141380053998636192492969292683441454281458657866586673944791767456582570180355408389935797440205976071811677250674676360013644667788086637300250981150996671183666607106259986844981708646585546068407846804735732189711388717471922754483507414170366603524788199305307655255950747766935075919367848918499659912933657691107402491371219826706943284190749039420685224411850889421443443070928541964863998496423795204324351719681264314534140010179919922517319776766626050628783085120094310438519055281266812230802515186560984378714243300689040354942422171323539958006032280429652095845062482971142176246646031771304443288428555659999450206408718623751767391054806726032239074027737061054631080101612660840202975540765242371508491515469069426818060666261929042858708094133530184191075373675617585875358854405649707524577745390740087164161902169908600172814510521641123784509806995589902353520158609615746591915343551031837459524373126384395420032131862440234355449475034371221871148408846853227622791553267894313522302953842655753859903754498353329209932773677501585122002585773675261231763679790607453302609327144419446488106982427778656210167364435503052188237155435607130354985472549935494594501180788757914464543974002615125904258796143956909783151249209285022695475753433233163334071396407611484503133921780873026164591615415566073787647386946022676643005525128085548668018282132487957570077209126902148521867933823409424497407316579548936079532847874264927958450987134446059422446243300338887272494520326887821618352977195965736334683008144315019558558440191129147701433385444472347094849358844289514130128098559702484684693360713287260817498754599553585316830218170687515842421371563899443238745459643991419796318832653951884933050386702415460030439802937251656049686608587391598834003176630842778243762244817970197720814572277271353693535421426029824415539801922867883884511294912283923884416046309001429561330971865058158322796953588541116296829384768262930780051722727513873055434346573437508236945691276117917159499037525525859268605397886613444686070069230253129336498915947346190808938726786080474804637551460104638896195727263002807673818733488421643898640277775725969708773451433265319661532751861634941299922059076057231642050100908026089665713159052080847233109730580262025817601243129854313670125430551366784903039681404166124111455466402098344117412487523347762154422406681679017441974921003965852744833758460692550651611118623217786933072665114797566710102065353309916578968670706128515427649328496346248471741411696398705561302551132590749177841919250706149932692185609411710075633501322273059304900436441240025333549907340113076017575205589268295131565662200025818542703091506593415699659796436883911270828982643868098444628918623167576866126293066032151451359102527673162108579712768015407855310936763435206413100318828711166940611878256868767019216931388796769505735897987893149335617287120880204701785580394934072716869769627404866746602751639650617278746810517590629676988571625238881372674905587184346109785767220767530425204719557977462656335409473527795117797899226100123487862769570395005224951618566300806299826892519037062022191933630351766483602828824110311515289897661101385486275323353508287757046081139007506646663068449586234886928760954293693612331242278855491789513502258200641527413408184153427664637354754342533054234144407630525402496212395154596094127704686471501111624697269683183680489982016196534545681911333261424011653658974111238443378929543831469794971343556708298096630414776248431689423120576217729978714998275127695558507418766152775492064890390036694424798416706145537503569069390515930398779172978232531632946289320196059809812553711530738478043164843967679559719818182524054906036319403750890403061873151539106573967818017285186742162113108956726294242276787585455816392937165914964837517679972565542688735981774550105960215285435249902184005704120075736596414967266388340922330465817637703438364467548407347647091950914312771415411945263405865810678930234156562085339224375282124363567452323331326482253856698658657489256699755092846705477720410483373268594896193926570461280146721195629031688811423825035723270665995294077371718649251916246741933164722977230865557907157386475874419958886911739880057227866399331544557260512291365475746610101244744865605979290807582674924630312270886834080342499537157170837647229322089212310853806244524543184800541991191056790559436132770452503128420581913238969610772429299027640112493735492439733372905403385539975612126544238842980989141213710138032527213234419048834261111528855836901272237544449023282503293337996805180628620568296334417655389616647243227260089411962278633641570559625700572217594235727675305128359923497589541111993656327872687863454970726816404094750927280330931128832285454096733569656868894774046842309518135653894842496768014489270682823872776488866665453686109866201654015510599394681452067946883689980911549654041758434208069221100612823956092206628385515407809417129540635254370162288285670030949668233970231617056982011546821781237628871875905168145687907711771640182766003567062723303742930928996285197354610573893486580184211014482727352492333809332430524324929077090694656653721420012934437280473856405377558324271755219976508888749290078948373844590183759061174951803183584558049406917224729586865888034213988746825223271204831740827604380562187640644375283782571147887349479134926976407239895753063631873713387301237817616861448096468132335220313577579110250478242694804149694443942846199527921883412791408596972182981182902778941965338070165559434996785687168102029441126316669855468960391034011400949707838609119781507958532958055129226742279196348853973277669289809493364639307582464033721105954202370111150748441995197682691561233752280120594753291740142330624311800076845294312961508531509490144088393404769831305958988040921673756928058667084212965880992695672384819344013628190998317526770665506153436037423693176494100749406353691095643487658442163633025820996398269483387086155914451947436802289817521589594683701497912139608276258009059412797074664385326983811159717705672208450032287199858081876758390298483551195862835279082320070980746670194254605382567739307948235772798054017748667740909077461783050095515837165875601990708950931848214176388507181495372712200068785475655949818862768002980422540523997028746146627310650137911232198031341622677956759145482759496477312532894871381391363084839259015442364372595133233201437619702835994594945835491405984427360819816907914146868172041150689886023059366862823535292629067029826116301269550874037527855350978464909773115093038113768780385896959541542565197533951250212253228116715880250460731191882760340810492730754501306213226678423184823424204243463775359538129927301975271199833429307402238716631293930883386678997798654314135082855980593819266336178468055302286536211361579549661725850199118077869670512441205581316504567628291383499225500603972018529141093538980706032198435041492785499138815278233786502643263864839800179380608075511060186219354602240444868989190158203500636874341284658010415636563561748872977029049569848082068373304259223276928113076215953960737903589149049001001551837423846752292057145528937337979959385719337912870361249218609038927107245579324255348717395433479689771020340413666397014839572698167608114293040023145852249238608967016058136395970920870718781394169106509481948396527752582677866671204355743288620517136406857063834331468013397917723814440698713873459285470866955919321531957147454390351911228307229984771397156355254266376360643161332831812670220234808506328388013106465057639386727689920522052347434277586967046472523001317542747422501429616922778857727833340989106974221488922912063493961820870559329935750463123333397756903148420286599359064642427313294460740291664152561563386809843779416736311577638808115130074123330531417933271786971550072856949966368031475304834740857452237705028413166558342731797190701646562444915825348485576921314942304641408003030561786996125653228788942078281377117464489732055391279699073352826912198793584836133385340158417535184731916002010547646145324021033365730682611992140930974536819929899928891225243612947635281223103555350522990150066887683544227723703117867459066339636091420177353897829779251684308543806256603020917079140966115162974130817927631257067920601279088504591069609668992750099955679843814682016696816196743264740461174042720324057886124583322277451477914205175049724862361467314487522912089566963676715081482286769995329546002553825268194409559684718456560482103948770024454614165910176508894867452147037475313394297990885797113886390900194023501946100475734256416340405445703748066020992554436509742065174172220326685520844507277948862781065446120556447781025397577301155561399564910480727569300162411901794589669100468273232290448709022842652780012739189216389473691935660325869612908481824777111913594756250481674917199399605108566145732974896005461913029240410252868604977475587990924975136567544614844823009113554089233913247801835002374407449092664344719254468732301682342615406164974505527482686525515411543440284526553512972257415709998415057075897067424496464026352669760419741009701712665362642066627952459458323805103704503513024556691999610273374577035488946539598673510068159570658016560898919305161442527124855987527861452867901971269785132784136801170889739385085521970525608939999366365048866653899412045878729571740569098776409053916327228002369983047443182368685257889990162044219580368958399091647651950833849223033956165755642399325956782502559425530787932781065457784925506058323942451857731361548400614037075782254111567336285753282273536764360301475789558681928713288363101834878177390498408132528596945183289615718864531861519291715461056819608081295939473084765297957858013575197210024671483090553980983495760182057827116133067948939001134571078866315306778799990542286201171792447927866801998514743122908986585424210738649545347941446919019324062338407600999359690783591867781217007238031043431464815511917434443783156206005764451760257833346902415142472840019065762893214278627302045851465288713586716614580153222362643030812594709803948981088404004576222392605955846533409287729089578341471843617332249999738326382619080928191741282555792444511350955496599423676323337957932824573705634514925502671984350939750859896891269311473202809229429580805424686120618116858636990514618063457795041606201423169890559158767300076709447653267867834496628403914422766538072993884608564584505683170059643167967694973394536280082053316020207351951245938576497794679277903036883155273698818789577846730413090030467787727500160718313947047571733248602629773358696049927993953914390957314937457097954183893378704708680893062563637196967823437495964862843370085505426746226425826008781666972960231793545616931617051613388883628610743665022512881026502757599605052731900402025376461871569278069274812201769351403300866925363595552866031758931090425141923998075801387528568805692466957898245041650887363021382065390774443532862784379914871501835169891632267176170708449167805550902020818395379922607661573268408017702175633654859141676493814639518806130343392223737876716984485837221915814230481933852558131134811092445133937417757811492561815009556530613714871081918588073404905508047197097600118241885720518874277562197663241184859827512675756629159666717333052230462514366216392411025714370308656014812377230274782559733927426133137447746407718726521967219681112096524472944144125728463169288549829735636398789933040076528700487329436529179654034774910233707530623355211721604756925746348442031649910165772200868908028520055482825644737854253652829160723838943004749870865213737007388849286510818663211520414354671884036437916982730925878175312768283171956485791265320988221306393030631033760104214603880985868772248266520385358819301722864726833533195283265517448388765381931867509420982572394244019903806544025383318856707276230982729657612184028129208190375753276232686533077316112521804300296475695127730071351565217849158183801138212815542608120136905093462562464883434931238705215090387495476015515199525705475858615491444820332160981691837714208424294979142000858842609989280695150811988432624576403265851598598619330732416810694511664766562243025608691027245334000253875628223466448346333945052295176819267516795284357045385399624630768274315046098719386258748569429871412905195351003818994322194480941544583742513928735584978836999863939852997552898788787583627106598780541424059135103560208834025735087271515725275259419151759003919143267701552472136372439483133159905189852520635521483720633322133423968027743105802249500224204640858060010770072662789187556194191014961342521775711016835956238128396075161210440124674694521604179181939033647502255146155407139012200006781994366476957371945637366397102418997800484533099880777485821550784780728528024191063039552016535416579579146228510223783008352160161997828095839744056341987310102317485842119965633297184174772415012104430925648195742996585835030263585507814039769706337383613572064862394891587630663545043520351594490943375186137268830928645945731629893952337974562354581892586184763825514593377583123726913499324980665470520642486251092130544898489678194918083069533614823688782522328140588818297310564682192922824546528308682802696350956068643205588232512186325919228109588372250662059765905499945847747363085007709838906319244490673515659985069371612366032960000388044242532984396261938831998584881597420033184377102568532311102744196024238162641807324527915005513292019386028584817384657733895244166620483032588808202491592205516589936273209894553585495732282870299715147310399415591601500071513944720030128501547828843649059168391468598895405688253191004699365701384406155735803377417011132303647527433447978059507875058352181406541272796659524067560225725711788842987302689037153931412842474418609586077346030263793709778662230833959705476710229611676975247065199628090061468777569132848402749753826880702791952758610792731434784508659856945087912799653555322473174925675224614653410511252373422269910164251046028309436482546782085548141980645594009933738566648959861889293152652458249479999594953396549411792073418686421978136031118246566877658696812444178952596762856852563039267444584418338245325156468426426707090205531162580085026259379363015407556109729217891073653154247599750873277674975256004977845450254799368604061229794119584838699219199813830035864962771288407732064453498320021718466278147607940559778248549454743062166232926769690023794244479401132763845235569434729385655641511656230755809301228455471268156293840546938799671153907076225533737364654445583443788209362951787762513656202248230676348013964475210414132321914565521098763242764065341014234340864882906039718862646276863640755116606233631522079930138996898967171657501008433178183368149195972153562062464669518357461929709888156485222866171526041245952528668812355220176269711931091680056004005166000691014747084816503573516756972800991995550228242059221559445856300296924564604178724855225712149335772223539095910376625184267378021409673517843960418198168482630456342771681816441372731438543058079760148885313700464629160454840167619279008472784824617620501031899147991006957619551155819028161948907846946277005273219816383208257002963572308182516499517824036861980168319876995747208821236519345398261256505089391020936991909514434857458206284791347323255636139257099713765480430644049601114837823845033652196416413626568414476494951363530805641698877833599846252337356431428522632899679762254468999185329041135274234960549830692422173252558389588014708108284137107453472551545705812504113566765215909348308281499244545588440362935153680657556511350958800277752629040094359089682088405673347243854253871707631092333503266651985537492725519713490634274616387684764489210898541491590958024782221468748767146060862179648617371301099171781856643653619308770439271072674307366735616523124908542397918449144310760259100020712967355316953395013976532519101170988156474656953554063016925973529584329852110236131942590671099598115053661778070009635157711119350846557095021118052157739894413095058158315091951850902709976732964636887762512486063261590082508901313519949253961933136259894217850440604853066838018316792277805434249653360785781537582870178886916793006294828854129668197689994325196379622191728240149259640166613551997573764585807750539827976868036076194429898714062771583137088559326525134406559217916213604828130985372248274778845835845600568055454321658533648859352369733922997300535283007094731514313635806008451303868987740902432038729920637677709507777075801324235026294516478802488544576534441391581597141092640942983664263339198883091320880687365781360724136333115058340785691195691536189020323416048706791319339223237056963459570996435973019023917434074968680640963162379277247839664747200074426763625381014320982557022186376608341727178469499986100986566775746584003619982947972591180383100264374296482476344800144993697672203248630740334171526856568826057019538660359881646011425558813296955195372568681540879059611388621596158759791862760434156145827359392285253024567433868550955381804429990332607272694411047088193673503274695561927527263846967558644693023099153086605630567367636124031956117408023454511924043502212269209330766424934140593829787927123489056480939966521447620086862388724031252754178848981917897359406669471944222291372303522871191983930101727530109960761040851861487964044758100167403353673150098015173259606314921611159799805109892636975078316620715565120837407542465176531586800594613106433985668635463409010944849195768217077411666915403622425074686183136712139777905169108530741479589688608397398444448622124724964789490489646615971259925763839093759927246481753705053039317366462215080049120392357047516587757719193409725536002730556185574806901568816658887656306858960076696557790564168229429849992058493544133824515491620937004565863424934411432859470530360706053073109649503801367304205067528014580182413793742857602117814286003039414946298412427762256645641512406834693885873136960004910602610439959081215109140117168762519444464779892402177187994748493574033016200929611192007995937421320470255832805399506479291131589891425162566528672995476767185404680782987338124334121484195638849692219618721600068131620720965785314927495133267521665616814060523706194505011939338389449241592564402424084355055586336732531282764445187359228274832891811220897989401577861555571832458713117520276340432939811094331978852198648289284048704048321011841341769573472355887907976914952732102010085395129299803240571893125540804325240539618897265101025524481739339847225392104604198502077949861618441209641155126617866142789457299207477829470388710822450314895032577805814348702096607028381667791576468659645266905885561809546385832300407831504507206294153590846267777194649353538615171762132556278174739404534562603292051472577802871427628439710762457354155730211280391687763236454012066937955475746717809313153830583189352149077211785376940343534124986734361760872219423753457503998558317191859848468101798488394065827258461988265951138263787113007529612416957741626311408904959203991287382922152359828156677521071423608461613104018139777784813535925985296554596496767901078468146399116811078882559555226930751026595422784118443674539473530346382025279968789857595918314145188003270103584137303174572354362076147599904671451713110022052000798333723949621783077540228181933802727173528303653837724279493977625894580692750088392832653748515671486213641710313338742139046314452984628003826395527614085869578578500231451743526562383290029150045853018835239093847249650116059680968111582679117533042994870574485244623295796974880738112948275772659817875895088208868549063790719867157995518087382257045979047316959210075885804377292810517280781071946371363680689429196720611912264574586784043112613835669350242921770292717403313925673937518865039115282858517507224982086578795508587505634248787837088230697393654672481856760713483524725227694483906128064238029171685848185675241173126905178576581424579475202743260005744314177573873962950714764227737169406347017932016216405745727836150364292282947463973264057475754947109336562774595659364262186050212922233145534517751448946788619650933530815808096581896271727454696528065187104851160755453200917199038461590667075906547103632555643333403443964215143622348292475923609597434405749464194914025631498968972028235990762751464396099377910903748589832773802713809916973101429526900892235045766730669548420019389846145832931388250978714142562423751346741613366148876476803533310634178441116154411471359040998013189409176074856556079331879042966415779259023365948884549222116511315477810581840204760732451979813423053646178513836028020053247036996470471872691974518599983800610923386140662699269309837735798876263317986395312428600046511590525534377639125037983130343764138563856981422816682501429826087524427017398151304917548259606928234563391229769114762749647954930812922379159756463750698611343696238994376838736954139455677707073290493290609288881197913886853807162985320556020476497133719580196805582850852206786602606066259135777564326447234711688240412350466385818505519032152148665385633668696237657099423073686867854680427896270792925828140419581084508087141110896439878891869638942652591982263425953249922897603515528518822968058590683066886073259848663555884291448920863834818682529140293725399006963676652662506894671907558998663910412642866551102584176786092007225051738018857055013315136304756034182065044352247554221355779374359583313826942211547036774821832712880576054570886014884513827940837094847267301565233259795016358881029739403385024767775554219814041214115258123342586352867464574411046239977798936544865845933646739992451436406168324638255864929742311282317907643950830031550541055697244193824238731584065454280830398818989973992265104755455914484904332443107347847608118228542505168828937382257135304209103308703222208376657871373703709310571981679946521256606407872141286067478975450006894345839524705237800967392405603457106118215335808042707414815480605036875490829718069560420313182292114742625254755370902286124893005918656609755090677266793131681436678698202446419819653718846186478381144120088489946245322416468338406627658820957299085880696410773048783048645926229928120486105263994270499327763314376066328054386559617979147236804812913164536557533917966428379677300845223418677640655714444211318657671699701959157560773648539807369083630729099580841799432508981019948384146446692149297876014588442196992739015574384087608478691021143057387113450043948118910232659215974326016805944286373889493338745589796809824160282861776567394925597308679657515238493294016219105182689507931871761177433168842558984331700055440481151041949927142906557642308614280675731368443128771930370627582994257075876113475031163264936667935341659283618313771595987372787480226974128434654085896981429676765632278714670711894535948532530146009111598106108982444498068706623179260380707778212518095710847669509971963518141815390141507663985099160746678770736734076595106633983888219083294510900165622053154657008588599028020392308347220673643481344852852795060924961137321695156533526603917442869046241366086516166690656125148620382480348941142871249428331817359951334506767628366249236230586730140098509137482595226329154302515561656138568705158388337130841999972273184742199554725312131593510358109348085053595650805542808884418230525343438021980215089967501570260878912148905638570698056952822647967750000352165970576608815364977771030291493287716853945683380889735107157055387997807702744499637229461431046876001279380117879189832501029153675508630728247566379084629840437414753023780401464574594989594659919033054326019387337704314490572494543766188164067201827276040150981002597619830209569532826052792216386287342869107781735325377066759667244450351592105155146591761393702392727826434878838464773403502729523531407362056974502624057103034432740950145974641476526490067678383857378496209885713651697729983067055284909223197146026975448187372020926084331653158109767273251851387779000884438804448815718662019306227229145030124636346718767905983828622964439539820015579442682300906139793610499166896144019440013504126403754019209105746113108212081422370880216669532409025119031119219547706738720287173298462279786107884185377258192459568141311425377609350029168357949945807375979770141758884623402621620605123508515635959174820406061840663457757900941065972810597878410599047673324244868801292687460374757641867605372255961540145407893817454864014085349938930818570435885704843681021036116086712480675681624187302613588963313391559241686772135336470790393232572963703422579914692590942687827932098681194831794143353468085153286189343755802768636932830523104959500732871430308935163546775601090249756899490989577195984775084396741204985744963867984326312799705470253692400598404891675658078253624442429654728555659027237030489968388052848626125591359541286194608016809513589418382481944312431561468159445481127397219897795739670815910152141662766200073607426300235933109290447319915685234026354564383211987830848890204428989921146107018185735283360466229077959987220317752149850840739821502532678630018621044205699064167782482202145339721158338942914071101635910412520520818496187039995070874314465025675354114637157644916237510341893453922918895888391356832885024769569719862358646431824457938483011289256423828651661749621136428376077454082963212019217631475111737574666620709542782333237053578138634127652345448905706655565646522797813494887731088476436053248571626010571641698396584300312517010762466088703740073428595360189784835068538560516147146357494508550466647036847303021611609280460340485938764685822916734610519154031917547691489485180521625043229643111985179799832412766601691789258238235470679630352302817657551673150930350129931364526885539017684611336724531866288837887558558662791294507966751498056479698411054452242062898400041068606133383143711642383368924786750427097338554009163316947075051098439402212494168284204608405805454039078046962488687745580120758896328691098745605608611443684375090190475148644409788943588760909281659504637396973553458752494192814620595641290103995826333821140853759259067278113361823470673300973266058672557089215407248099305879287732778115295290072109724079172211691085144594974222223648232711688594655451475726069909718074383755070242925102912993267731129455273794380207366147049395252742629612141539096739554617482464410436423491496331308719586952367521770180019168288413746836717872890762593573234968921717673162209869468238731172453574434065978057736637395513696778986920432267788232996233679547958191217158983141427757185795270072305994460181235385926866459861532516749834622220214894529386537468860493683768950515757413471509708083244391744429761609595082092570802958265851701725294464343878378069865050344516300129898513474717259043334712325978708386711871355432775228532801134481995370025685849631497369752223667946447670154587113991474781692891912052785835078724412400584240800294107119570814967359583683755311294881410978895940374768811386290789472827765000509320198763085028403466599498163973025518737667097756123799103117066520291131244828809406324024253006364375466997938045834639026929060880155798438873003941582217846450042467904542662725412996621414875623739535545947331358518020841801446096774252255548172710754759429143930705230804929859771709262008327259788035076135528194610753506777915554097457555102929010466158654206637491676830122681496175966859099126631441874638793451632065023026873200273396656627310175878052500184589163367961900492826643464594871355417618337810223478240757653213213365801893733854835496028216367103265893168119613323036766941864405872651310306030723995649170598590581376773060612605642236384878275127235365265942012870680176759339192503535790162409351116023125589313874235368023745444917574288807170147575469470406585450704186030040171607814483793640930446802323526010967764201574531810799103539162284389053277506843042724631198074914623700754473898339120373680375179402064356000875427484939265973400550111195424090854140225669358986752417477755271105657127303540932267968879518992313154597976963310488529985707827185999336547736428426357883559418547853731288314598881740913970337883026484333991756725603241263692481970445770064018541235510945069218392185492461129500925919297787990620724478219848623370839335369654239145759419161023452169652544359297222319362172877887465669661535108844250163638554069416479481973093544774657982045508486372576961177289614422096445958310634930912956033868570813822826361433460602902709131999455243176407235696989306053754981863445181022929381724677894759426307491469116768498087300325881981448247848837285111811846497847471855348836542031275471937209940427435211073359829773256364772976992334620470890167649048965812577613563077508658372599171159857217397904974489029031454604113555604279024067212585256295406671051976786376954111398890769710122389457519199216719899231875452162970694466687309385976030199724623450622573517818109680992905283538800821466409454142824680109182355472937385503272678130842467388652110451184947076942761499038485632051677297018704219734405275902454969337340672779872888433148602603279679241434235596582291538853935635129641307689652202313734196287363893674948228272668375841272662509360457848981713427239192138203085728419392419833332826685963222257848242721988646557010345793452080618267814944308090347875187591725629411816551501485814303035795358228217947203917698878276595434301907577882000769923232951984073551607123196219141061362579082863299073245012532897457281784713353468521666262289314782546485223297100789151709416557017941002376758592223812123672013529990342825005330514460019077778703290527963894563060950673267915626864796024716989400806543999054760977544507452940919269058699432641318613783163470714027057327545749069124839990778837582988877095539510812182513842716488751363007579960137300840940885327391968680955115258531681230774478169663404374096416428319540857879033346002455765254119380996818423756848155406348911255554285828163696510533314273515710406923387487664261640993947793073049536970923384607345449053805218301906814470599209144752455499095662864307915117491566298231011813000614549115964746762612482305964263011563675929828692858155977153612395472137681309728516432074473175426148870165617175285016709030579529259821722021164491439358719326213865117469202804805408921469925506615889327000361401606883288719919183008614944972067010978106722024089271061876984278829256599563018162243912541855332559254224404938333143457513528007997884025620707444332221026747001256327147637712696676208175267261272150498794408440366482730209816981196229658242455125558859998861645440466479693637557303483069498630209812271623364617892926034882124171511570323511350289711157453214787856848542651886897301481307046328353182992750407358739120355352195515697396396645420316386734676035714164592987842877043052781802998636997256723601157827032470916633753568847211966681356784146099065706157760029318437006842704868899092127326622005558675238383707329707115776597015694232955442862279747297020180363549577781779820473426379337766850263596249433622573936112514193228468921500037889267581941372316162241103390740437187120519788462956155969932244447208061936722263522509098650111468423612298050399243866564204376306491251221052385264441015684982458763370653217906032354208078406070769997055117353095852671132897571226477344374819509297155118500657955204929192460798559735170548429647610301968656089189397363377780523884601623451540225592109811230249574361039933614871133456749499601170143572577373228977709299855411328835022802600736079836143342447210812509638910907777851783782201450626809634919823636848738353074033128128877817470359271696703251992323327206515345649640875425156488051683818980079844407490167507950210703124171998576681639974551321053067801476811740973490501533237810001184648022970436960094426091279050456338715490617906057533815441776394326071052816886941410594185525564237465749585325058273005205146207883917426786249665115102337237460267610866155932508497742419401216847519839155764429602703585991407343616738965069037582446308907092164599700091487932581948023630429061924164718172393031248140903911812650007519867720426847493884529575513615688052703535642809072026554915385014762702538658526867426538447305041318491350069992058090307857912601664915461625782577395463267449942901352657353781967236432053776862847481749228047496710705503891156319235215603593613765747436975248944130957654271357505330346622635946747963891332808810233609055182479105347370969161787134973189660197777720592934791022874988717866288659558123693033526804948376529304734456977903543381639791032450951354641516989380643581179275035036622778991811755435066249734596259857619771780463829751336713512178042879585285394528523101833311895859909809355504694923348912220124902396725678734065762317733994186828484416249837485956105604293604358857900332789759157792526351167845264774301945436917739852483557246913549234998096657769530637163859940705050418975610560702567827092668905143499704374973400771300302922859051669964383950615482179168046656421630305995109883396219277066162103801687240947305739097257062853690929288763986043708926760415480780453604598843888218862270644710395837283386656076228053966695068910646521379139891982974750238774130918456957278003288400877998830809912891741848390879908835752384313398326800584765959597357142759882325366347699863634001483149060189583297871391641518092301755530877820737649005662103892804715452502581072042100720769791834806193690885910682772991156902197098946873712436185714625921551697507153118552706671326232624197615919875767207411534039624076205576842479987904276092556463218738712852794907696373871919191867309059321644014185345905070393703421100176037017877230255677414085536089321013248445596138184071061457065835954237407934806374274935505692035126537735428642126342520465080658140177903732255426040271835116719510583009483192531741787350679443568299367052110408314536110167387521997615294568266602470039440610160325964652819107671576439381598981235333358790944250111789019387628930938188936125387057442622866532507081897529274927233671466441419682803518094452264326407349379335708805903370278721810629859214743078207927677760378773064213189290836065424742887299939668659842157974767996937543228927813517094455485875353368317401499269872237136990807288122201671263158839004039149371475460860891714674705998203882089615568996868590121733078069983126530013697016926519020653335712908186003255386991607585539960074837646561053543519793349065637141346382632116637743858251385149817371695818773591915358322590362461758535572861314774410852582862692833043874940773379731563004975659371562283846242784247590764686783641758733103850990465073155342113450181275638784357643965092243615340638323698348339724574106184334810770551588512231486658063927851993281894592546538708747181793732232268242082237424878155400484856125845098017573049754858601617269170008092207186657053708105427625443068232402991208635045101839128363442104940063550232795812055811362537693965469793387630133495365356705469272516114988128458988455140091525348018271570927814391434037507222114590251098235028264451928353236151417625390039811005390281808359973577461129675470473511585964479502319147832509426146706811026437727183687776776220685797294102878191427904421578393261927124071610333046507094081277000737918970383312040887987362574005508169230541323513541936774382152584892828236031484550190593580956541013483689792639426157406622234795688601722352448407330304323680274297380064893405365832897753433451566702375622432286329057520466221080153606735849089636891964710879623533793967967590957207537336674500927014404008764149499590933740996549145285887063286716794283081163862815538570298561972872722529451753464351715576715869391505650674836009776193862282124684526332643994924763317537246289964651217636365756263263337111872558195285768466169337891669766896572363212916003909378618198614456071465596346461674280579436250343632022335349038757171046052743304867531440855988930641717257823560792755294982681981678121834452449721664814833391594718939618498363470231953758965277544052360303305602841100333604922320959690570303751486249034105619242589800403188367006076523883155422706335437978818376249479025373658099860697703768966536212402919463386983691665885941651644079403035705356191002343584789776445433877328146577642378168066455467878353858613258236050236977876502421003345564489363252211968655841474160218778756553236144649500260109291342929442223538173284583341787881624258215582564533640469667504849682041641122415505714782093850960003026745613824827789444141938607442038975583372240160430870275073389584579529086997553780365327630822404145320504108736327140605892116651643766623723857799783798027241794433533525306811156065609803124621829857450565597736512330583822068002236923083947980206023663514799907737901589336036416596105631958765150195929466190111409065439967149578390025864545657134041278025552122588825801399589243498643758238715129606470788581777398611741292134907544874754741423790532521387836348720170169521186395153050590368259996590260265079952102252841787449888307476301451383563456210760050200143626098487036721608247215319435745393579934381166628630806675882626040669101478647119046948952083140154108121777657010834628482611297581940834701160802174861134610904886310265808428397094313049404066053901678088646462209270285897977158790692265557852238492522563209002725985737466843850698953433509101067052357306272552231996779390518162988888760139585018688672796274650370679299936845770538722655700939817449636567993142213185096741325426216637374041436620660396186538888287397342086871413323002655901767509992324925998538311019777873285487567159871895241098046377827722704138438088171184944616769286725174876875537360112748392501849881779482498864995392472115681573713438632369128540454487957418330246725951017620419911048078782098103295609321702687443156551718516698070203938589870745180565575855770457448838739910576322528593560479794718642403724229459209804341832681912788039838965594415946653004790617842641694746886746500188889433427281640821913967541592596264276074758146785365854549074813362602723914053348563866901750158900136061372583864765556143176023960506268631605668578668128259733168115839698301545316483277820600630680915744840774346134911448377553126100644773031070986440706350556966546427328142626173322238713475355791760899568149588435991717664531103680864905659081590963868936142944974366110848887662206872087576993105543977495157350410030968239742087406185117559263154259615977039503937482366297469042716252017526027933567848494474665263140058967250028058019691718393828560094462010086967811004220730265923161182462396476724800068659046333309887634963909061938146254923379290055929864337986277858935346456662422281641077730626820968069326086404470443101460962581404736423702788091172059413656094989238518733705991838598229937330845318305942310501299790564218911840902675590084859708699303714268542789197580525177080225597786635928728294711327233229505938382814915780078116190995231393320923035209288263810856041751615356293096185904433242754912442421482805610085329615147576686498047971163148824408208604412794525248149992230301358268232650358585104051490305982155625293701025777741143454980404904632272667594331356766639137871988208000455563680388928952379859143117248025865523236690346720475885964199310609023175034513331734562703233144665372976345150484110157923530004956470677119223907096377299189569961552692529542487830593498151317868608860687627175895812995260830999351286018412668091557893130995092024448437455934856942636973879635076752263024100430829944756836400048915120047384984119972788974051025914889033002010979910428862325960044972299606855511131475187524461900596678092139413170623359537914801043070921430689485476023593662403219375276557564057127539387470762455046077407280672437562269641059845923396807222667360289703964166993903115922259612719396561816868894897181374028562357187959922834882197814903395871580853873023589724480366900069371899572676938583925289007568202132481449927661736188824625971519570092181835226856757835093296265341830430380423763508972463750717299600638774953438129327289667792201727974879900422181256361849531268609588083170100491593616749964251645253185263353018098658917227188110262799171080957599629555181313987883185864695349617667561040868756938474668414330106496186708494622298153800743547886433954267740599828689109081180086211202163904936772611994765259029906615924200840984969668208315357373419879946050452554051015455166016801115054306479506191216535196812733190829591672877077514924021306428254113404780951752090291043208867094691779740926956594182679833891996756263217136961399018932402811097539887824752220204619812309360444345989566812937999405153500535649216630218449313191180062943479434570239785540035682812140887657247213454332471501383815775096488766338617646415844436360490907428208118378941262790424775511934019847481286276941573395028101012543150782544101892441573794030024174136193353980153617527612761873773907257931564464029299917978827601472437890949041921086777222323981521746103852395478248157292720247985751310207678891402826692227321690429357531672237565434825561345563489936683083192580676132786918034487143284745642433757093223926807320464948640332875114154011146284173797242981528034351674387573381662033770409718693837605635637193339967549094424863662211408541335264163389227930149574211569296154546341090863931265775594772330401179596484586186208025705091185245201302410488786101485306460549235694825517046812316801340739112371944071118434461850053194553067032468966527801522662877145034270943808964758275049902019230012359217170902661284178424705166016649176177358220589237119839844972922612985899687172516233549920677503984557869810749547976835361526473710459427801220800798049294774430896114752340663014385215773261984911887408700479594322955211988480122330603314729565421771780727525271799159192666896926544116504719496313616283242341008147134641926304183097498619213496143158933416173776711551144466540859673454044508159221031009177047333128745662122723642071759032234180352981438732940323062454034363812987105987488728669259318722656138588166626872074618656983748549030473867905190500336166831258374211916240888038149222518606140571403320647561190254208906812682636304232216887320188678998556526181622429448944184356124584281792885231744258550715297448590792969752707913999255035435567857473518886400353385252816398144485346459610838532117750274991280069818841623871986423230122008099857605991622070025959927442121801449371854550162982816152907222227612356615154978401419326120652536643429196762295186784079188438305601489217987503808999961305049430244110246940777237992433978585582289908839683597356984005858525477585998841614775860832068026371329615658466811286981361479266136869068732852406144842065198641958053465994178420221364720520512320723938321703332829055594511264930588631822744477659926039255203639573325085119301183327543601857461502136941173277573302920457505089111857731796734193904821419151415522576030881610602982495104141483939577362544293907105321713407059557673532813590317069131813670152247304555158116593779426097965775665859142274694943052397589647411608904842380876447868320206123970609370764732466065556311902961942472516098831595804871462597575453304107079609134354377128332840347914087890562024342877338580594789586500617616296937632490327370052943495767019562423655250046326108702861214260190333902230643242488098497975510903207896623643736536370969494219812241870924457510577395010378942710203863510502787508157412865864506818141113727815450954013843772813525390164749947501374550572062873442341029156467071822990114378522016646858910041238066000412977038901900795666422338317218337910777812170867174462105069338553955262495858830970971639242465579393471459404873503362128688643063658216766785553294951918351624364628352013581455206968165979332213641637010727043960648993728750357939968071885441630981952444415477363634429685250862781256085841382479154931190364643460628291996812426678685460926375184999552959767248193913749478894570004226560552111840228005925916090901151715142025506887573623282655934191113153711963282970284082425046082129981957092436428704655265976998749160598839608401165719869600057272819460686334284945136563570657814308725630321715917575535245152896400090127430321766102755961223512067565648128043902567576711736929332314970052633963046568803318009461584505348075196598537188516735464231650141656137639635844033156410125889276698658991827645821441310996139735407970658404902439444952464665719393993303024475263812958386317786649441101735082319544600110564791845826903385676327709578243380469501451290486223054827565862214121814235163175789419904653730563992744892022194077992727836004215825872513598385710050029279833737474303289539805379598098630982518653056936411389769968778021617630617501043158680161332427350518284694148146510202137309704394243206575565564345979264823876641518160762508200726991304743740555012891545198955268591659968869539201755300900556833115264195216425777790417684887034333783530718709613118306175478614749246513551318117379225858636229914589266213371168486110590975676088685955706203989807414409666997738683425321850957713786064006886754141597570684099408814995678012592882993205219620390579127371291736654517394063716205893795733821284974634138489075385929262087866620258860080769647097081384198469814944501061581328273084602914041584109836743712688234381611355474084635415517064960067913114922089750994114380373943751794428279302345321870143256033317346243610297793454248833374651697171469342520807097530936553612252744179234061405654110970626125482067734599448974281877378040985721685738745956721299443592633286408304073560434860115931491252618018392679675861494791782598658610842924680615124619582717020337150287531469941417659559428600587481639994023098161131078833241100783361397885304653176974463868761903004785751028237309623855451713359205619104930883058074395091337569153912063850798893336365306371279189942911837395021672843361166901328872262286156987829424768998730588885233334748842883427220179785343637083385729439794886042011292919183760703138604114847415876166501613544860890459036240033509478515781518825288328065093491374574030790994260999545439075829865277215959188585706898079504389243301355994062572941032571848379278549776690482599934506565188367748555401987997411947266498668010346183918184155482889608892819166774673913860430101113392573906063984424169651352734972742567248890171138631038911696287871591318097580584831029743398269411998261387253385681963244656701685880533301904688544520901476883044607799271812599220860832955548224047542101125469531772694090635895817931542594414902191482322008393417031845758607396649633958224118992606024423069900509222626456681585540514678704181987443130790048477418778903878472745919844699158612151866675727972463660876666540103848431049901210403456438619200153076043939887626008740510856264044898327738056521958689428700563042717210925256908894692885917660263791010430415726475173008528539978992418674338268094581052538001766230816101713944112447194287643943133873764458946765285540738619659224545572763443297474072782755689129888555995972024579928302506700017357449960180073220750845695926602530757844661682398614390964410217096805388011693337997158047745991702626263464655527042130878717286441967247496861774266242544901337152434135695047234515282038099651237517179053355270888651636589634889450206845495451427904898822620307301106899423266763554655011198194607150543497453638758488240082351022117543933240195785524095296421482988763163436060166967763952329983744936988651801621633244605526688394099106141253627885892124354035844531525222600818924730486073254377614687225012152910125729885659869592278423429549610545406345235515465145048929156484085304041462705236965749652694220180705268731370245100585684828733749378504925166869078883222075021767378480912331626221043486133048596909526219645744570310406188263218436837704658060572686467979276183709918723484020692804396598485803451189218467174936578394192666570842812747176545388675294626350526103801290642653671542109106727962197117227725689194233388242493670333076205856849532610637328158472445983160428931621320064417452307948735989915625916781042896965007755728143184658114797335474925034563816151597534060721103926062958248305385529964872024405609125591530982891077684844502552335267885899856423156162209738770997128660333409061298442052227346895685178332152667067265287577682932761240869212810788828126681826259501849121171436969978280061412179993373216447547335305261177410946895465003896260066041576139631315753254189347350747647379478051411766532033760759657311103459067763425322932519581834670474242542395512431228525865417645967042868287475857878197328522370069412539024859679555851556082510666812382868185546187041364142225640555977915023842779883006554305284273762747217874073169068881384739565984658584498287159786215492980743419844290255710157445833077530358591578331775179449686302893473442705389526416651542464266556984888219877637956014993065305079485197476764160601792099886900573117368629228112279013142807471502979427496894321461838280734502857539698659894078508801156737564703689208690328423305881820290646191315210377030190369616821678454298136971733425086495418833736694016716176129213976032157912554220576934289420966129557008060059572923412096397514134884610700162731468042770394859758875781391714845621134826136752517729427982275527422946866655560738270139638160880943263895044156565830701721184496779466672989811605759479546620500619676063322138784659951671908147152350367704831889796928220910303648227803109420129792742656769559862409997424637095303542507888613830004680496413781919605155193029793078863516675927296184002040309553016418500859218892138734893514611181324307699251766451967324832335048915261572880332664051860786848330931899382280331976929548960396758777260419195262250266598447749371492631050290915999149834830269877499677660572668009175808938455461332428613360044142106849171037259226989040056186736587581607459385240484347256999980538180349373196010944971074973809123777383328703107065585206936134988873088700932728185799498691218104598396651153548565605360969614901386302510015896198086621414394586362408727802587848997225251690765670899416635226437541879141479512049278057199480812657783997338474166008862787062365153988092151999980322786316236511049187541117364637554628733940088916504560593248690426395543062547711763790485599873185592692565515429307151601485945848143861500247919490774032976325554100856429650822652696678955881283920846363971177546955384513730232980043957159368515785340293578807008181461140780892659315133814022122760641219446127965754110323924750888773186142453698914429683285998185586764804387119857574009617696464100903310953072434130157581165937567460544395237909670452439437615441329500333847059603055369740731067328920018081932580027614224529620284254636374527545162874552414448644637193852869126635470079608186694884409758877630960137833693763494429853280816984678719576461944874479862148624642598022389814741062603089215439298372705938929652041986812813241577218452399438068862426004848877248280153298317061139398274687455593037210625257473824019835412552851147879520722904964900348421941922043906857826334711499861394964922423069395775073330409006487118740312616892355474579004293089917606384218376008220626049182425890984919098335235206278218823728141288208017045167736701715327751849894202029033732336773506562036783517089121135481266202803089023326317737911512597337831018937798248500881604725674783677097381898813037993943522965089764901789386497088530619844784851784320998281087938708101301444003080415988669547364223212870838096364667422093633272292647249582925310353269455065213184686705702748493364932363247502303831234634168869915476678728985038819325840269884922981276252519745057512880389154083168712249137990286183615835002289908751110471883547454010944830979210546796110870310438259244095690710290163002460057231796789792272488799647243421368402138674841831039316959757022348693774874884668127093059146943742877167150236804945430601726266541194575212973269364347297531270355548586525680495237666650243161651970671844359771657007460588012257742799865791403415537840299016321274254346931474727157884635711270725419525091341029364036414979252400865819357383724783104525983413553760804745360805568472275256602946433122354583678172910367419296864577348264980569862180032931536403909372697745191160091517869618062484630158037848350572306983544296404347225507508689313276950016244692872795710979610847302523389410682507219967162671910964317893711551056363729795747267466759537391776331593516526298779842454444997639554437410461201013660748946713691656957316881082356123761914570994560213449121254014248165861545383780152784949778976824385650735905956540523305370226380300087234405054233370948210000583359275665309907170165620954911273525968662736934130506235819146199171861553591401884765770834345774610663396860496642489387832761593661676031169371178048457208744803810858838718123261822573278525714661974758432120958401462968029336170276558696473756110173826181233569405938539636070034774900593015804562179207809014877880167336694813067869769444910235898312874013431183687831219731582526535312528634322573256672761785256498784360337628460439641567603267109920542505373854949296396030969793609799444712742716453587822247697869685488332309602245546932321310806606972554758332263615819604140604145629387701858028427126536171881823546868569079103842175160626321840780927383520418721183202555096638708339652458195199387947027175039219476456597980469191995715920360586080639682980173671612525714273871654050333726790645705172378664275976042891953719261201588055040682745224597188953294887156045638969222897630990389691270796710656941104184849811668649625890155926206884646309257330311248196745128690838234005872908599168038031366532766575663554084625619617732293162045443685880138860360355876923353009437316544848470702549866935761301721719146703187954186103692190360109149312765076062819040806013595964937408222643350556649660161270375991044384354205914436845215130576614486422273379538834473098675943073418895556941506569856433386546871598473727087424959125412151572665234985131713748077559058701337205005071538725888415833197068521971146122554946016777858830897734403900791468468436065713247324146340179974979086540447613334293871788164665106812920933059749611505683567165531801024990374803667659018546813872621424749048305844906965119595345353709691726725190455044275100987795432872795723162542846187869106249079221894378988708541792725316271156558164432021502982179844166161231276832587651896830919160296824030760539321912631386749290558184335919245006926838050812770115315279666841321016111446427816218997345283158687365196640906521524207175580790797609897067116905931652211093763361480361035741485348608036512314549320469661433302484305962462990496850928295672826153968404237312815656700237143999905178961283383704394735775524089480744093886345554003359069303682073727574346962543190066473775476261137137251938155836754605382926241830594663583241571100752843222890896628900839134442186771549472425541980217246045940037632501867242448564520233090739850860677402632606915153080431930824526041297130292159065907801315358226335136281594943435939744715662803111894892087230242455549613963553198414126370664469129109982211102612353565442453795257021471261246194588799635189143628434057448554439665889889640252125450406175837934236950846902194519592267330211506798191073112533153623631171252850523367704498605024241338730294737716798535402606954943559687830092675659698142092863408543023055164017061150155782259742419147013594834178895878323839082950563229999423600579104839351818986256429828354191921304507345597151138298301105190019708047338994294788250238196861988337325456481362942970038278722401214931036434556880810279481496857106153057681118178109863801878074220810636589776335981449686631789158745841541258420222094526469304343083598925830512991474390724679006665641718186193987662983237401977574838701690600236283839228527668500300312258301531758016565901830173924064822266669357614681987614920388683874860379732873753384073856249231956900334784728464311941747646416762520027100543694823957109209024781071813178680590211696073925631698090369959321102151184616015792216821656591687787770009608016621998268874520224516896408229189033302222334146676951301850211228236546346781412407130400871163461102053726329159314894927779366213722883748532096949066359773981023788893692364708713530188762507960867408305322503425705517239075842638685112710617997101738422953194218377705455102456982415005052334225917366424980577200583906447929621939187487963902981754015535530182608544422370264545795126240469276974142408909994139111995408724828230204711381838502562880834148579231651086796227490090886262272066491958459718436026440143594309917746730081400707398913358971381461057820455184763534658020368587972368447154741340494440662012803843861815058547904102822159147772253577213071179261732674223171249679456560392026780335009346224014338431853300985532477920059427575196914342979893516205951369903264296700923863566203264400749088711694932455205877456735684629252892919950941617267103879387510187852367482563996426543518599031376902466194332995833764792357770096925123796354409566646477754998188116438008558994405289064031536020774160335770101599020639135311891077047018102577333909210876120009363808123595207012762029147005280046103149859415825529388265295359060533344162805103215711273318164472760688867218677648393546212249495480406602755821299679002992898120226449397249733890740860740038721971506244583823216101913771448853273587155659414924108410432935424500868969759153767642843492701689508314224559642387636958168244781392872967953527656979911990386994294352307935986425675207660840742341643373745614190646801462315014932925484104654964459078467535253252267923029572724546436117392438406769744959559573356878867383676161812081945753206931137276018040835234211487503231877222143802338915397948893185917558942808302404822111064882445722226403575934675664399375475102780691282979287148550064308417977511746328876126347272011041928509822417704685377010035184306981517091697243377326691414585791096795997384477680018556435569437411912497973701282046518206259725897245641033625975521884508069219061435010814399970302452488367534986415769297707933096856704944894916070498887019274385265304291736130372397550539063648870086756528384790036662974509116429231109239774538101499992193368502801702893049394892991063413849734674139761368677584356348785576381862222773299283753903518631195914350162939968041111333694136036344161360027720842669192889256988800559726729258832162937707397177614681726064890996905571560758010504159723110413274767466121059370350127983883585510163584524582941377581067988218312663363626902432799203296651372387931352001686718390826073161314289707701081466409063298463487535545975897503601361059189742663336575409209339604587404210390327518004800408884324832057602133375082197632729372567444150421989390051097666181609219360900764807859513208416900656730414348672431765664951770374793232767349507917704080936966957652464460449761399981108572467499231248036357220107739570068853300592436792772131719456680467553795099726881352471842523044086629796706685991360457173471030917677759704173339105237664741230505285163261928874055735847182078778133470496593348015749176077691608454806346043252264869554137563494055598402538351798367022211081988245148535037311694354766204390649505912572415246430174892460581232336275152679526966984882850990080521966715579133390397605871951862598670357479314198292940993988702595916550504343409692950568435673995799115439574543389546172741852824075771874749557698532621843015742338118878410595410009680465257281106398186904751509665413383876599404142669261471918018754590324983206166241662538595311205388325784882754296931642591440178738649246701015407165094516774909595636547257901212911154586096035796082734487157954399154725135802670386172159789186127049887253482502059456864448715527391452016262433475802783843865138413581130715413295142883825276464788806899299563733912651145630453904935710833601582687153522026854385373613123123341245301936641362439901045912201150995050079156067375136903806435379910046670201234792272635214960361668404765630351133989337777030142826574357323414212356483272380767489978152025887886414708664847519208587102035660603036384206208611693706199664468597765232445903752640099793063958954822193544170786041042709236662191662234981739762764422960267630684209980370350386302909320328978230232810669885222505320579764087285852340803110875255319752614560822358823240555012902517364480879406085138105352573234654449696121242471750361325968131691175995454507054532413532372518611708866883859150522142717982829629636239065929238462497165371334006783792054034323768060430787682950204791342588832987412329888036498351394618443088756535469194897185645673371435691907729221976174110332294013311651601820600230947648179247301136845033612264545375939289733172628899052238303143678456331507688116958661994694268749560966271746115857528611297184176913012868009796619177110583362790447987799432942303482936133533935782369866752031491859231027138955831315703866265096054527786017403092820596333058757069285198369827962425981534409791366574336635657801726715549343935214396941830706702321195958631283010393115783992161294599990926425544196599458445908407762745170586042736034097569130892213237216398564787589934339204847611521094912655831646068878753579626764951423288580065785790675802570318882288392399759146938368222115812533029733140680805475492497305829823360849808270664736913972532205065904969052784401904859580540012334280555156750130180934478357257353759604683439172523295177847070247478711888321434166510369789841715180289866118678669582869221923446729761120572763358225039286745656858467372113045329775965321038629007326514611596227017766359428220585690178926273983392593380350899670193329297527845883229274714567138106324724847790566433279713938441226230292167955954818029858291503335741649787462142728526208496561542339002695650747684717777726639204960605694054426033276026043954682988435993434320920158910818118478245699909180995197836249376881462845295759564325885492205581519347050138578979189095195611801911540648012946691870447224744845047547788083410701502375325953447100069303644073346813842770333657697788701161378794169104896508157797935553230500904492530492918038060472745269033815709734794824646854830036067476286542668358236081431786019155143935711341757493136818128929457679967818003973673356899705390477579247045132063044708619699339114973816442782023055094569142903671592849527491087423109964356304459350194056053427439860034913065753339452826523297838560043577536702513945064322283613347535290789312041503089486363937544061396899320631125277587782626907097466816963418873443687348548951015337392569321323377035725284371584876897466459075422101869275401382090875720212382183412086994621353685162747582883348126592622349798367139278467467371160801975786911651123136289715543061947276616808569281579180018605372479648289654079569175939348051173840545683032075675839198351582254895819262616866724000144079619005322921251894131770396284350409828440045962741413984338053226175315421147083509786357890657773775330054744364394576952596433403769352846690908147519672609811762407062951733810667674994597623938089279323278674789236961591434559249757403270229184809943454867303202177037795341328889100469647847959668135907715864919883033475976801626185981933595038977386831161649034804440148456737942960871434387368291787180454164205341388079198356435537129547675498059948978022523796221931042633230194494974810342554667023838458048565610986393277394816182100267539267669181111178239698015849891213632933162471618970443810682538103974728370962038813786982752194093948343776236281515409166991049725177881252350398085371604116532659058443435566742168858750756376411217812453925384901122225158620880083816674494623474173497804285980966266117875884596721541878380549976449842463083025138624892048514734812763762836431645231602410149271378638235815331010828491863961749501853758886444740548880436625388609487516661095739269716187418861310941132010860446312173493730146668891744043128829696402798150285134257424152951813111443647269935399564814339148290793183039118207504609893525801757930364176577208544560047279690417060288232590682748986191888120475319489171599238628806174255426524742540103013279833739534209158203515988685096471820911571153175813336779472881176977305715127423713071481943545568273338320129901425655320899385776722692591823924623193367156133836227294109654246923321835800725942404392735607379009633589116009592508645339506886111611933642833457210997256119497320703252741636246595216440336396445334076436949283095198995959556415014075605236451461725799457844376968762715610373170207311675141563106839147129146027949261203687758307154804975219792685699243005913062523751379621534954495591936610665403758549121817474918805592439803336817886052041039910760639173089825072847799430700033394773848187933667570748356493067893459262628543555891410936049382845718857786520611985468860468093277457845861284887547441046351501198439303787815641731311205499032171082587263133960423341628429982335560802878460242828735652308084046191765060690978715689529490139222247550249414253731199186701467156126938471011266674587071365574766081385029985307517687645109626763831020272932015710845489718255417563641381690531968218775568361254706459828798396615202688700436031992710260266336487329424664111136770696428435484381036922331089757353328428862717606153484570809695525660421425300192473453309013423254465992460690440759309754504513906285278665728519700860924747343335222645488215915800217158390008120977270580151909121773027725175936324648089416232336971803997296181272481101069859066433956724033871665272243215768845501774031545782182502392534688450037724759206411066335517456328546634838836884101064225691256215208305500928100479506303096380599205671443796881683414413678690463953723952727917989433450167098215337292326158487744339707943651159763589000341836216392990627185561491225571070584395947487177634181305479744913011069691860783751338165984797720484710630226031646283151066345458474100266842432240793242113858293893018659474181949810673437000811213965889743469481936370833964187803676695222629443437277876474599671483222669627736908962738027679306769237301696490505569764710700504925133716466539104475310198886118940143104790659726307824927428897542795171106972835950835723045200963956469798847848902221491810722266101821359092862378637152194728703280103938463176606343252816327133176039096590060418156251072727794008447974850988787961096852326991205327825353060230663137476339002890514707493592867109210888747605215851783973208520979621420551332780288260832486137991460641643979176439648919991807239148054033777957760907302478512192449918748553661363838611762051447317029239833619572824559392509881926564879763144899473274843515042779367973147727070855801737310576249017323382773924086745841017626183287798177822931078057060703026123933292779917592304219726839218715541308731075256881175213512514458766243183453195599870043295093845705094669596318806452929473442769232401192820697039230341781038404587361570436582203577952559547278060710173720588803231330324552449886116707586540133566606264992596585787494798058843252000187859421716135393830553456288539405979423690111754849048765439712819780740774540829461169066855496007309724899556935451497350889250271630291839459322045779650529280880235655421247428813450257673188611488422436079458453986630545790063859836396075760785931826042541022277714214833498404740994994743574686260242572812044010393740372766701513148319322946836321061752138961108554513266528085090006488619531268207114698810994125732485044800126811788221223878097174025969959382202221580707731763111333409266788571780624553656248610558899271165115294223989540170895237624332243246491398716344868476344379719134037215082231491061026763921661610988822157253035259284070432448773213432839221776408671206629210173434797106466097812592626574962902477531717311842091653385980445920181212358138667892844913157674187307539877133415653987331389875984334799728027574673837494540590266473857655534798731342992846756179368346493198765615622763641029248510706551139150482675426293470519500144070313689708778640632095619776295801101748402660986891554843772451344113996277940619239578970622071729525715915260388680062662851632305334791018013442818037253253306142899224509945210083921036203355818299378587418060996378344522484252429087426603745502547621181755047492184877949444504297695977815554159546753821844980729628361946765968064184312343383385041031517422721657599089748751526974017698343703745185854828318816886661574505262844027128467894136586555452918780956360044984448626476123984694368520104785597323850821716348230630361378969139058793544694159057824841888667251900801681822661818678512089754081966918402074938537675123984359202813188654125102308453201520752585645299915009434491830623850425771328744699328132477009321829270586705882668117870514596618260112738526937735893450170297068833206372244537762830046351138504824980824734734638819444158765893883192800860108808786120263576108940350728988173304332455862589634006626686031459291038743452930706083097922152760893719223068270837900106100155954143325489928982786963824509568584324834229750406518590906032863864880098167412022726949990386083653431473038980718038703135940596964661698785037888025892182912227604342578846968938942259035033606533786212802996540961859990777176224669882345985774758680212880806292628429521224738801898608692760295399232589010259831482716484332782671085106060111499947790593893488126553390983531493817268616432087438893099353624784484053640229391987501171244755533373981935825355261809888738963892170840775975085172008752275900399245991196609346566476196850725707484121974831147132375801543316035040703238120790783613954902368086865834136363596082485746391447558440045842176134333027139414737259598367571225358941835146850859204688928545986787805039603896627969088838903455349961903144040359922913065904523032106461679857039002943426536204422833970074127442483439648597342955618630659946814156288688515482445206783127738831102826798612326118223784993382871035895065808573344128523158800146495876383919959898730060221310881628545498118425277880401749464991259900741387254847653871851744472206799547176118550344874579612967713026053477954751023544546039513161308070011690963765333708995551616154583404735740544838892898865109584462670394618044555241418592701777505057565117219815300147020572740050584230048452941062936145149335549701630424944088500057467941193875567592784414411530984285972310287728726202412456744195831910154739255237552754172350120200761801591450292789965231119228944686853677395330872863355998065318457465364549289303960460062772501669168061355878672758877098934999490314524943871701629295989586940014148390225522839604175909178118348307494697668260856062349752552799589735725487154726811170863042449887794924840915901048800360100574170991216959763056219409397690922380310462374995061651571621119924782845783661928194466603594381472067108996844465861086557409148165346435392459379305026939162979398530435827866705566088313795893534579769388748084407735181391040119965277068279004298043259095810383501329643303948385322031573794329679200623110405433069698792972730872395607913881014874069748603205638645641507229597781025210296360992126797370692402405246889588669805967385381664421680366091854989129586110099637498671102479907369775880930525520176829981540758865031551074299053295261231975610251608101112576295242992887078729782211377343445823925593160230274660654698018979618568082039860469621681914659978751591521501430468292009381584085510545247532270783678968622817838005576493519737890028124336701149596523929880002872037416977363721523179162312197211087412636433678918666174335612977333949605623786536656331943605698064897895520660104772442520772228986546235004480212413693166532282687940289310351768005391862544910873709639682332193093184253714897905075451356907923150887189471541895345620264677072627532291388683083874815879988168440861135481118845013728813519846976432636356025436004680321656116530284224064259455199267508208163437309842824553999100359626424372830033444668747863736619662041992571089547436555315737723534034179144392801381194261443586612701295167520445115290680728976113995754204014576541471828123778330524987276815006197210817256417584179357035422588469454862539147152693335789720200580854590541528617606420328519113880596194480182754589764094883389965660681199409073634505010833301069901109478050809429670361595641464615767495006537415566133397725360088614787514725459754175380786201702277690750494790125386251627897598113562552734662743179200583828621013520387002756054663961734346821319118896714698579145943814027566932952968266752343025567665574910956973278417470288298773248805990103226432954237424302223959687443721044757866028785617021999381643150394233743457889987491086067051502774142527623114327164869581835567993170449135110818897410703905713149111622867564149076844708343179656912500754423631719317295118013361221667207791318038746531722056322614255835857167919347368025154262451102537847639565584807566513036992971511299008237345630306366177284236030729354580679647927883774966333098246299723002144891466451483481327829308605692733589114059893590233068886326986021761624610481437253992951559059812791883846787290025685701560606202726044430603572803348501424475310741958605154361856675581487707582171222355667248100778682872636306510690742075972448042218160185308117660590065790500669580053747359582443907261689542671987683583936599642599422865705193633110620595987670581839286202551678818426327020018104482981574551436254507185079587332121983567946864655317397920762427390518423080043265203424335110431313581931761170484549593913624761933461375214078344623393272112854232605310552658411231031761270268967766507310988265825204586180231810933831715862853987643220355367388344442608516537405488837859575443388356219191272394096721275861649144755748777159973216129336831434835410580675548550800155799761396779753422130131793687603228458471364253589928811284818155659852647752995198165200035622511104894933435362901495557267918470136466650347597046722010522720879810587576113368575586634461134147401028624507679960591059148251468561677087783075579015799747188105613467015488636226897604232341311656101372632851222921968540263611640512464237666822116971085273383632581277872646499864644237294686269625931303492735592809002735806639542135299375372510762189149607127700255508920122219183466318911610702115547841678444593714456613128067758337768447224887007212058688088171854314142914013673770208549472247986991461033338686712359704346211544356355193682221854660625207533667383511907627321073856624339185278834317116334340112928707539420910775259776451008076111866898249902407393398593230088018476600579673040495850595947577572087051194695721176860531912315139033052145381504533579935240347453695810541359165398176576691512728928468285237828028694255210277735929426661185292979654533394740980448387962897288578866895229124513946633765073730350828602529352465849427032119445023248546374204073434535752155354004106075700068908093028986734018119085424403332447905251289644056496141177808145265947038445017450523937071880293482562306491538851540684591159012314492455393306569758294705196822817542369829676319089862780460876154999148042448410819573691211670238696717955095219472812663419351286237970556848619777242277018664856130424222222845331871730596865113433591232770775542589047448544425371877087721139843431639610330376138999834728609684759491126865647063674050441202093689438729268352303598238169656954575030885857404721807692819197235460051744604750696501162449920593688665687936139594298136841444597193343781837281722397227599394145340110469495963739392260601885818272031310841811569730342470466007765565835291346878267623236138874646950805588633139588353332454021117659672013010672244473667572085586308833105412437952457497651418045072619291959789905293093203204989075975608511828253251872151984751045222408159707402478222971415207720409632635569105297507166485338433697835903576359039323459392330609518289891749931621286052863347449048064466289995233251775730613070752132041993188303261288891907964973828008547254537367766110888495157661024551058673664825831576934376063014778914298020549004165102646764794585095598524364017248872867100543738621035378833498706672644900113413192925222932385275555636142369910669076556363936337393866911388606027635685997266149277246556980900205866239035279155153008608549617958663078223879740384229316694313090316438609356110466864350927667344202547511388381366028927174792956663140198732042784781145149476933853012007270592759977751299046074483379989897487406160547840924731575099776570614651998704243609404170439705303756994627460043773178852137266535404705444108203322124310889994986769298303025807231992957435917898577670822884974464533161509669663667785759149859981703060603897752305177836800916908821784454223396244924641276799183159072647592476024553067491787780045936906507069777850000415652304381930740899531863279716985179638046700589654199198993929844785491029175021112188823376376228661202656758899270799087223840556300069693888985654898738675116048951367879573815997936993651224516158763730169865272819659956722207159777074874048549934846498942504070549265103973992620627862626378926519198344327902527367590811174711766995380049314065818787735440063663530514373702419540755830319035034721237025512163101776677248017075561323458064628022544577483583347888310841310985900288760246696777346009519367419548141242752363773641194765484728682325262131610626641068209563205619226668435867368656765313047823927317481278799789626916868701423713248366631358839597664486060479522169321094318049690277800348971034580892988227448877047567114011019661350151024946638055869737119453103098732169253146257011863992901504273453599583036502638782790322746699636978919694306153270020907675307924707940300534536111980310503187867338820551199520028034672476353177718194981497831417496205194491797416794790614276878983419289545998851365385404550672841590488839536276592751179535512300748632279288830034259525481006065330980530014275565698838499188297290591039396910876847268319712105493699988997049373710623275651952608456105272240227638890373106385267671113400621015849223135272781573186506614243000117673445476399461412637660276376835283693672494857454347508561814014448192570277773664537482549227772309053414750219729830924205003812706360991854199837241194038992969638545541403010317799852835571076216744394570782629038290350242420384399425026816047055228979442125962838011611564208546633133612691917648379572504763888261999978581071660699405896260341181983483080173072717392878519560193258042349355590866551540936224996165027727423094369070395877454162042577897791651148668655878449917540852081800843137109169159378279150942066972485930501397032167354182711774971508005403391504614704405961447225912860372652818885761514280285428444970733858284247116620966559357764407582083828906873587292632314631259838206327368334014357487732590624863666943844937177847722609517104522009025820846841788513957113708174512669212475221085160758783638402349443742486849104077272585910123584806637500251661784186199224533089433414306254019131316509127433626192433610909595966814328923581067278471202526075902746053430702890381189484706850463590258077349161687952390602002295861814638350862138649127683688640924994881022105230708603525143220435820206060613301602879524042031425959249216743936991688296132453494133426902854799599280713051811808992851905750008847804184124211165512420724188226181062422204704232957090033869280604189449691606896133720499386311695252255058456462961048762789699899172616536299014677734988795677626621959557085059512945979979426008512847245689072397255309408936283148701311538322385866286310357357345673796661656061324064820160227174763941812193267530173656933533512405878102453466051688642228352479206954473963892158992031512936066926397182233142422800699024276182011489772608622476884037105080193865302076806448339526584869309443671209702827911133690254830818703204881470683551822422223236768033158449143492880789502931484820525411059530931581108125403563244392008325600873482337470997498833100102669997752668478740433677437973464784892512458356250696001765297192601282309715097216726362091963355549658736196843947923797405470283212546749921167630867646545512449473987499528154691897087977810246516575150077901414735799102186928721140045752821785470358272130315448520033315344922512331009183269839946322339014898014719440104447118376566899885326356741171347765759787642886580775839412137206874802548243609129150724998028388039524324777798595776117190893391231019156829368207525749668111570420787846497470107806788677238244393453283578904471298452762067396005624441357296553211225300597157741457589116006950379827581235313040503753845657178055822576762657748131307985464799444470678015941940986187508228564771113814603797341852465854227956036762298719860931414956153685579111352170302276428237590467038651862166096637538813130028653779706281338531958390524254432451045457256631955853758763012406105809964913789743128455177298006909535767117778448692554236523347195603619392329284981577946990000534465306573726874103654751345402646482475006719398284760684735833444397960708804964019093805094681523407754390043712843679707280985707926434427363389143745575175081888672981294034770415107101476857030842208001243398801954534173816082429071250223801437772665944420616335531053870330000778250133792820026576091055231838080561294118573783037418710706421040752629947803712350784169344207482970211602949870575285310398409951410934045943754140898285656927605259082213432314709506780029698481490891122057676346718467736945084903950184127764097959923068743561710725445150404203628454348475102489321136136453431176564860868766689501248463343524757296846153667751131091787649679060034082940835475070144915892102552642130223756564195899728298185403928235678871958635213747441627064370151916002173362584398062483974454088252390944619048138781556030126199879333447541100959943388590029718008850202484403104022168515134923063999202553040504293490665963018970782627265238597120908722276996580681111341774658404988454392195522400903511247047721722534054384439610017905812874049364520713985435214190625388048625613985081123234282510951736111724337559514776578380946907663425546780348538149333722712034837627398171310914718626720233526515765105683214312283878167440672318257303889664003554940435201974093165566903032656879681666746208112771124718013269311705349603461084166362462973190384498082274556283509492917181949036886045783216228146781018318918138865328412149260858526137444593037655219034384441749685549860136378819849649786289744970715772047272230650101665445401222062945689452054771249871088798307959864187020027455147134178048741004942004867745531713304154243312000582512791999718315172071856260609691342657790738021632977417885648743746620891146144922742482746721159403107585294759922408185680027540717051772486989267772149735550966856675478783043399259972793236225893685416872627601207019700231366334846997312147163373413131251463868569825156229781660172672268836952003144723430565384680595418390082629532738769163118317421092152867510727501733190337361888189037247065029764055240118104465462010331962582180863209878070484756831411320764457536813414401838009989521360362756364358685787018360341994947802780287287769866800131186417062391277212728943162666468806808803850299998629719208793983487463719348860046399834293314164466418676072849634075730633447061831787690761580419864985172448392592568413671130988008477408325309816553488280581148152864337869612832944968943841066071013006945065752231747480210038259849848148877979714693764513665035278940626354845936983941955331325038123725980232637115630004291913533525933549841658136096121806656801064556186621805515814027210282199470435275730949907718489453038541385003612900392213888323007967731957172529212401089151982674527539459609005221867999763297734011809042881593316474474551092591735621463230029867597596915308919111861444129910416733871419616506824031196926612873204117867298038418699584984802798137203000152075543969940293768266488313420443332489386656543492033397621290458377484055010286638504340661431719220227748601565800885549947217140073276220892477045543941806784282583328312662177155802413599675743657962471380211824806748112225809912022375422588481424436153254907596676096089997646989869975268583719369324897663991487192033929883153048872450202184952319773442666644931409114190864405028616405000598172108877093660941166716120684832357677812623295498205239891229467882281749752532033139111761146044995114528914021020754139844962963976736508104517114461335657555590147068228331270781944243496564315058252271808445011041030844480504758430751844877425653816218536598300806047410576887133015425150880041173416165255168336878667994480062895619811199647228888589136454291937908593325527913603520191956005032934659133039561944263586141747899569289560647073049861263223995038628928474112193592267949349601143179780399938812470821223754341214670015967806449791376942164332979959174836827818164143266395058300576270434818358231610977865427689467728623519919607961388920122581176228664776227138051328693371651189612963660977892108919261839396885298939732502108539794611254840833081002817460645470251975149291569196448655762088867006109847450536476699461296126118527022392593710884185377002486913081068774884904285279821719193895706159783005601310408558800744142389772700968258745483763095378945973412790301662844620419578476883744923719330697243261376475392260775279113381470311788394128822861713587141105316807472243388439917754123518237732321933582597958827936261039552339976305897662461730945032620843960880666412562601066655141220142766580494528378689982059829855983361427487815059130264890506944584769350443919095023892242304548450647801143229646751117840657332320927063015298197963259374254239145724988839819812232558187144967663237378342963410573202301262406919081140672396963607116283120791551994574603518866794515001768384932077218006389463478975957005411740098061248862795532846526002262700283396516619819269624242818393937795128046918712014599063843236864732674838024547994411312241297813031433154098038040530979549855105608705593167244599134029425715955827677923299637253411588756052581061911725017795303929290473746930084809604177087460663185048501800818031718871284997079536720698643809190028928713631629659371892127394217754707658597571560016513839183216879905259387924246782222871788121628489549508470639538937483511952477433200292784567416134782666153526930949807062644394471978057677703396757157305295975729665113537620931767404552539134633482419057720910723969251264748796824527305321102550889407121818958177339121978809493700082524400065577031073848626289541459769941576218579329296498030788561583592960039371963051402865110867061011194439019672933433104433452555340034006536642879790878192204333314212766683546451034713511646547247559269438121822740263363209370377980706947695095698587944221777150624398557831879824616888321034887044841456287497336793143958280710308708188561190409352999390913774204903184357585974993255949519455361143937930730104657872679282467454516672979265259495376982917470533210434369785371634473260672711452173330896486129241278398156300486477170021291794199062970546400025190319819283834522755069445985133781604645658322561142272763015384640668237499375228900063083835501719049399984888184353625770239094266799161134751384405478476023810541985970329482425424234696485779700234992630262842955413396761855184062798254188664695151252231539982024332944241453995294216091586074972011965750443318749265489843504150914507018955817731956101041774189271617854141273386893176551050209143427765789124094417533320035567425669956741657582152457290181748738269381480870242770830905285482107038266629221273566603987677586958564698101553861871121904860583749436648686143386871881525300285436066068793335378166785224714638572789617987298062642943390430203168845780695937561348844227674008583604862077797682535416396006106017102521839125829596701951580908005452602125982790052273333525461322462143596996437639957597833785752376713933558149810001570915856660524690259299189455121651771561985428862082575717597845348608343043155845169869755096996557170030868990153997081479789092582085576160546898266258211134358706758713023297867779371127398902007901770364248045690296887473127413554689751793887716779671995988165760145740248813425094024796107022108275941213407676429063287651764603787486406347192599767932679709001300238945997478330167127890977448465544382962158534731847254824920952637349587975722960419298419414039801077499444547878055428433798469985683131271234261758576523059379525059014007557758810428933034524763770313532876779878246720193569540209598132072973898689510549463645275778770244193127792417165655433293132027332465958636949337424975731696201121573649990613592911494214253147956846598544777547004936692729591784650423080837580971479525659944731819157171644914329869433388568255297286259556853665198076656040863421409258086191973684202276256275236546653915758837696226453911913503218698381231201488098947006414452761008878488086608774481676024305920136405678733660612272061869709206846232680105491571167332310421810932312261397632918749939639929649772576036385349532295848608908152373582595106311930696623837670225878466700492161363898915124250987740627056071829314236428544586411998100582956812736565399552099529948217306509729467786533183695906228209796011061752564287238529076934508357323658455330527989446829723200145157845376667577338245789259541648671888300990546802108702753469623763891932546249965290477898414625743413580847232568704191146045764540256407380666912386549815035050801157248725493488478710324708405125876435963719093354784967535093284338787186577920700679496322467550351884681627011024221808553316943846069503544223030295559804643138822801330271714830982498802283728495171525409032153590942235124423662800432065028634293020287677398399396577597051790468930629282371623870582493369600531662936683128184835176862447951661491224297454904871750494739726816309289710614342279084150942783420849124183489063179820791932993469479683411828902351591478676444603213699132138499839958746074319318869987300179806354698151088649834570180958092394376369808956959071791807934036147837807431739637655094367054136050515528697510534440702889740033858099605229584402700895505033507519611362577200799853904105050236607074593594338029911654064081102135001999580026065413952930866092114503711255267973888506707888136525534494696392122095184347930369200745753974058052117663898733447728325195085843790133390308569926192178013177992606300216568814231164401122785312567686388002081245070361838446292090353357032092870934317177426008097748277503036017100762824857842397999143321349001830957315288050859068515308907324410046146227182458199619852763269031888142260082225391120743321425033633037026219241244622111965430788578711656248569626889013251701537459873551366698072456647660710008908323168983675337205073043678419879508196142931941181742048684771618579490946407770469847686758266979088558139491089138356292113373562215719656635706777795517565712057175215361242771251297439712249088876886329199542694734764553270897690962426672914350021590639566694050491044636060264520179821912079861729680164380677796746549400345444911405447840079633726713528608660345590272626601552813370691805354274747444740282806596513181380440185099326834052099534076026438656146875542780054818315606815885973445098154271887217184016101002269260114760361641921165584357905773124498048531989546126209551418507177847836203743654042453240434210711014794193943245142457919069921236545181258868670308219310599798625456006150383028009884940577218427597507350774294321562255585103132937074443877291021950906346952461882172542485362650538770175325912485581004953663641812696127599359792800887623408343297627570515099830415251686942892762626118044269218449246570338794418487708984046530457439503095551068881310529553751603927750469875542166264677602278562919802476197838917723992610697863103245569578862453205356790776433034494221769247883669978314940603633206867206525789433285320985092193422022172921360047476538343396371316555182201098475334792389454551679930040980179039400876732642700347635727147068720203364079082934284414008966122899400941044527434915086703144880140694057682646400723212066177978628184699975232794971757641806073334429152618660419063968097414711520686625798204543170926085132318993395544393310926910446247547330997676439872185898193043578795035740458881017174581514398521038517343861705301501418726247439055545652158202460634757431206407616085771571159573569628317724082260832551786481454497395395033478968155650784708679209991441365861938632654423619928030772460918899022159155982655926262519142832405284327905622120605835491001070651994802246043689345488958199106917970283760176710965647830866484189461694540049781903194454904853184716044646065600289434612245870954216136522508026082174535640782966905843942940933225348343558301758209133866132398549253163201311888048396004364205405874625188193619093004148317120775926267083230173158608973235061126569506452418935781356574737331725978784689359761094428908927855037387811074474640771037180198430546672908989207816375269883041532206007015169011623380906595704441151049820424089022086985555454686410765344681357355701328441170219240086025749394189059304992079873784334310227595650408679363121508791143646821786191790206635445470770733626268319312730017105868038902246821811155160597489344622215726374661313990003786318140630532613187065249102366408882388017485488530223777952394983187444293538986337998548809109538019967731023847288300297822220552767482040383805515150458884579797832006638480127138469033460496309586021461346138886788702983482348809098992929070938511255083056881282937149018383353326178548819058363387869663641015131996037430634045578266714897679430253033247167136193759574251592584166595926809612986971812514773332898137756875255716656491198200059469614127868202644915656622508549701897344171402280450286581703061213786182155323803497032045911501051181475232508717550782226236186945347034199026057122699667814375292568567382372564212820029326929483305871072568237489028853053998890435578450327957902268379864187671736043848667612967739362824904484119303055461518457111649381241889269614649977732413368642018020311881570499016488803936546128631190828126474593265624011433785411082925497555481105700070841462284196507669797719953875022440960106059989616352486676804793816990913376666900718623329967664890508218533678694324964378865205396433113182068708052357284118480039320228659273800662066317322508327785020373590114833759648294842750254197099385749827925714769982663069602409448831093545266478044601189885447604374683076484381442206960286115099535538812574733801967089679964993219335729834970556989322777991559765180347881611558548902158445960741570992456144470159510150037323934529156552703946120813923566674345617897680012231099305774487336927669167590674048523389875162064515094958287879033985082710054929624455374754201301412255940821339491621723871307715252055164527675270055760649304532086766364786694735983730374160975186116110659417999494661341965470151820343518006576241114051026736735959994495047634793072965893745243967853283608780403605098085359876972918501172222940495108672420484323150363860723567512852752597678113320570684108824197950975329245357323202514984703177732252092019223763933732580026791815343805390896514595800542980457704436146046606270610979553224163116933788381831320243534536852386712609687182195029332511141516777518674614132133744073523648084572490499634826908250468962732715599360217589817672117843857384612192186148376332155860624778614995492984308719510947829783255428834998686236054005837169109159740052668345732882810431418843522782077202421160517337407678393274473705505461064269804059212903725688760178755012824603138649103394884786819894260807803173575860399159124580881273344835963196713127429742151772551543735479928553728426159794209462961704143213464550582250769446400134532667246279281250877781742632115302061585707781509315597323016504089660187881948270238185975915086143124334754144327625618864564571977246593602071517758841436584655945586887499409280259832782778289028658189222264523435347784265951848175914980299021206188044208903385912147659004075376832356887188535329653450131433146626792720206861515461712400600209393526597779244922680184826170119559535497457247531117201166382495391567076137795657692574064629441278981324774930491368028348380861865637398899093170578570148159493575569014876584106758617646857264877979221256499115580044211321628170862341296363836576260380635669428242820243361156404403430149904514347108227014344164129914976881332001075793761643928390995003983566095866436307141898303209178988489356048073181117601929529959587909968523328387925572919167367955228021905988448029200512843108611624528305771701788088181804131279508809624290119754697012678892617273447470641871372564416925418223096480835350689595394038306582735422639431855058184677886787529626588660060014884034293594477048427246672735239630105907014709919454380493585117146013535901325696942701957244313671397392829359300195423403149166009323320985205595736857451505743974203427920742090197705940547182043243994113815765524154821697477675696485662168475910451380045179655011826442382518356278502641021233500357616226084276598436157481016114871294925177747551873519348002024613665139501376926076447856741089210338909436615938413669669763118245579616627149577417670599331322378793148227216556228163430771258920851963712101249599022109858089593431787390428946074731206992731210623946169818786081967626159136714696360354557516478573805914288550974860759989950272191820829842913237327384041473955309218884070183295887534314851640948605291922101738300822017005770968028646612755546515962839687240052653646652116304442912508047593065180677950830033250337335026900633165789930468930684251664343616600542578541877672774360940548281606027530502547424174404126630596890163027666964829771232989032701744995188392238717728570356252499085358656954055553057248725734046648858020145351880958781228502351646706041760287194540712313430276120065859386166672549147134540223421133761338683618155190274152673677686671366238135613853212662226159024256760962589302446655103636233716782874801775783576717945685312776058917226184425150566697453726059400113136000626113102180926352992018084035536274963368773516427285243520306119758416251210117879267762724198589356853933050642639851418422062482606251830876986142254288548231882048339025447229010927597197970635303826447595229841551293864110263938695218266762612297421973214258633530481698789888652899611836934174652781222803827962719783353277270257085171367330078864201644607478635020945811646304653687036626476349333064106197001861633433757268894262421989531971916490821645784742290749629886444656912623373475072705293608666679042891135323010946026987279482678464850108658012959081310441430270756854778425106266198147653823649606086049952941668978982306454164194523602170256403293636053594024262314777531117236474687903978194484601627999272360455366909962273058418098978839034473485172357074471728207421481958664462777989658731816110866488837006231159562328075426530060597815439414933406720432025641010901879814318158704528489196051154181776236689929467883634745997138114648781059713223901595716742087187785515918518396681457210661682674239682329621121587600504585100526077831329771730219735251548241626758203297076931882382201097183180632823337745302651619666467694094896724503420537012196978784587312721853814120995501668564168683671489205572455153991640227564682409423188726200952432589099900746596944735538486536019496856818660959442027992001057112503455077052022516022896507934580887296258966588577799186127160525981739327851781059204110593677761000573790045134678864378816301352049783397007314366145778351472615904543637558003549190709172780919972715490781746904665907072837539826121633735486263879245984065372148994139648458277291761002947731395138368097461723608442432795881997946010652758162252732939137565292138295905209483781222146775024111738053559790853136151667595791064481465493297593469951854342399316344760618586175673125978502924429677998319185625679818696154030198302573533481362446540020460779061019388150472956725454814631192746098633332369709500917282148818301482360103638537303148554834052356677357511093647198293862018660107786639197536800491179740519424339567821750476663877941230825478166780916288932079868289974321927449771249817585245902170584331047582013203979059882114225249729211945888317307230904813145465568129013056947748691914661167765341116641027607514783760189232087644098495993599390523520879400605733905079130023484506239914311832908527111212000911608320159975392670134617847669090032732951831516769201645998520977909548884606177830032660792781687871400540113227836957590978476566674923716932271303622550233195252021295869400066615370425139465600733742554701978923288045865092056626469839152411801601258195233252653850483541778201545391167871461438951921009979978746899682931019406742195756746417965953616489353143810787387470197043208621966173185207053097758119358802170246745394510989230215373116058377188076894858637134398866725727180818677711619183472138099702362685464400834828680602563406593441916581627776431977638838465060125872078649396949252828683022790552791041859145014544411655086954189131592214193755300473839030189583716183980341052095796029905481837696748971417200471933793746744002781369473103188511731452587623131714888518181139163666773610884203752221528374992571167619723477658385755302155950372767132931462166320466378964728910841395037361213260295307218800401811312416821297447071478973936151019826540491123071970478682231844552337410109739887155473854404537400344036727721623124757072690457929716343679512964327911370268155767378615960454513450488596341149363836466037362844730708968442445879768652683666214375668207300561698098563971938963093373925469423974170511750670718371311561066901752446213226353867795001539229202902690833338581971181475177818168136888228190235879364167008904934416278589932793430228096058301324612165668906629448069504993721403533772472282620143482686949346840468132415352202137775103308363794595550139627878003332832375804547858243276745397128230502589973895888927772724698082360841073808231080408097169036404019051498348606397622964218050720310448777430231497866871874387039281425508391841713689598582451582950091382152065834189165716997068461929101217843957321985993027609629624961031097775774181673605573871084935615768919611313895102807671295994626152236332429345036149924718027461350306646760294822956619438953650550093719399593804997165659669832296546775869922955433301935647622479451904863049925050420056035359593172002232091873351202435166324564083778315324864353160770038452349960817660536586043555663498407450419209027042603966699863896424352091963166609433326966527639665465250050399730843547845608226459915451118692991050658565569475015662505291670914368028173122348016283718423672323945933765964829561580441562624546357981879848902930660701923876248432991222742449154270105482393295875857666112316548011919260122948822276294836521640464105716011306032801217054818682053703156188830934108731697510040330165093176993315405377124631001694111526715023138528734483107408022902617006246732810538231893658928364028800887781570516114089905498706474977125521516129272725317141180491055284131824587047426467332937952832409719267662543505602873428602001486826050370611431226452507459216437303361094406462932332661703757365338291542836473049760345820393880208969590697656613235947633285324331496859149433741909761082607640199775887535616842517604665772090711662072215119997326534904730208748854706287028262611297937019708517375166078758863129438933050731111315482544662458214875727663246112757927090149133754711289054994357538016202405185040772386606207048282823610917665724736940647689834813480693334823844358281957754688019664057160605352275361403817323273028690107728340508206721884099860381434614113394651449997264935870675466885812355168258582291837175793303261107224501014845764144906252712144119533660315437591127793863363304202343013281299128475089754999525710197225323233912064134719277091040886435422388588907432539198116492661838864503840023743108377820993253635091869516697139979136889495879983665129880972941854250169359420885523792171360960927043519513190527345552900999037712849625966394752944322683505962934427816673665874781620657329126255338977780833742047904012330160748222417605848331408866638139215886720569648134660061486037141053791227683512566955791833795281625562009741167779692136606440453435938742109710491134074132999764730144728954243067689578764039217702636639129819911698573981696877912783144026237497829254375885944271279167175952966844015372962555354977443236582353496015065364449703131935514714843485613562443005881724010477032179095510490304787457869767844926952788374581140770740107429654792288071181501465680004040256122739633786885531132259072716799774098990666061356755730159781203338052328733704093082514428658711639301303276924060974348525657161441540810330274981249489650184334147058332682738122332122338727193075095971480574060885918765602685214554198684442728208057398907371365100148586299716873029377664366905815456900816372691600552776211880370139298375085951694286330786417789360949723005728029901279997859403129352758791190343636105154584528190090300172794726919632261579948981355309661688060039778720608883890190746284734026392047843026757792111576916549531091747047653471572764205978439378959234469352437042412047352510456079647265707935757230001609088348482157496716669732041637243187485143581631803407854225882900355113949891310210807311944396237854830037155477615900059479410199941072865237933660126260079482464272954441587102667631475819187107981786122992883989164529700199805885321054190962962228203478287541254706651864346943254824023549179414698927644156121275485489762167938242006043726810185819770787372553722164532226270567390596227805073801526838375060426307022760644804913634517747916647149704200600450405518150687212061647536321004650342680777173472894351209832944782286977962831848241110913611725997422478689299305290815609054448542472809018987761994524446637109892531079569258905086931624897697386190397420280416827672119841404553398664356437206151477847438018263387661260397971148033575126879790042362811865049594036507645341494324108933290291233691681760451612886937406372866781217940654853830132840446676380205921054312693731601237328217399058055596031142202894632677211672050072221558949301854329847218655554606138646016943082610645075524726017067067069477462320954044521535298119596385389094631863565562939551938273227363374838289922409554334176408428257256342193148452286912587261684288334554924813508498484459810775167598435794659830701658490178043635731795445632643179212255559897627206763243494381275796457762130201620674269786717184121982217051097930029779880985044268981999742042437220832847756069038607188223597335943152156150214179004897346868002545081467167348808068247599034722384568315098925562897075197114080025004847692461003990313935800190313376838998320551363601717536044735360486235865078069944494841793577594303889180913163902876952198912392912145661858730860974647256995620205168418695167816334219016540349341225333910498847798629635585109408655587674581626384188718390311623689130983846026942565005714517434915549814123213971335324754996417878298247330312800014165664056928993379166586048207611859763730108714181838209974032562565188136341661445343502959809676336032685638711429347886911911337661028769281469398607402119686935955462836189942822527258023595269441324914506766129642054453573190491080739727679832203443549689066511529694913973524433019431537422784242323277234730175040583724656821910512425120776337020190861944138137938695019470744451349348919123027409700747959629611502469972484002915268149860718267382394015142753282832026431688638234792388383963055099249140440160321184263637209591429081178502023693343085474331714694990513099635038069640429768332394653714968519232669028529362223159943107865914936832337580462660060237739154399333341832899080651747458334898427019461992097082537181763293956941340113798676855259485797829725287439529275880490422787939782165536019064684694845673075642896636860313005018273456661009662732319999152313781802216377224240801940895014666628141557370101139689745663096430219421180916929409583286695493237628462920159070416183516288159910566422368063651380084546317066266128122356128940511897816770209343043859627442868902639291407318007590999353317323581723034958720217184697049845264787729167197105642474110656955979025705123178022432689173137131531340049208603030353061628570636570586730327926431092303446711643069772682425208847185853732918709123705504948958206475552779748540095769689209865699808159962092510620770006319811809869666906174442418800560724868543305433330884811067064917363053512735903315942023449744201466098925294521552431906798754818819799781844292834026003913105228367058113114507503748185630258200531853529975698778760573674094161807699950569056390350462045917025932687804845596473213837243234706036415586883547920935297539775606625614290161127526114168210019299010563332901997693134540787301982860098046241155834845684785923667665231395824825592041736246350236838244893644292974083389443564462208504833802127856199661652647376150474576352750717232285073334199206826244007772496380656996385600798787212940689360709395280463613132345621737958793541303185740048367946509496540452907709186941888303305498466563098105391706661393895934852033778161930491670523007616084094150047553545825488563181170888866034946897123421000567043332440907774665708868042343001236770910837816386481113876657872547251130950681894251607488862037701036157893180191700517199067578818719520164804388821364685050019902113884526465729168097036703224236032158172024122000166818749279356376293675655922158928321940836653668923443740074648899199346266384419961365762016593393984117434379638879285214975400104760589636895777399019617560856361873994380226876965944539705258824672721171850508434399121642074476911680094544388438841478346726064553838709044402341266892913983599904373968160210464090532875827928543995081096295919460048080675129722949100734141255272252957910270888252014596687001205653502269990791922261672379577057593869417088065070569277432642592902469967706116218639181327850157366466171490782036681991354157259836353776135615379036235960477705850814543269048892313520925698162806634469725994065019735902435567756787211139722092608852778005389047464657071746827914725722543879712604581133795752174641678577892709301517534876636035326192414601539536809302753961786741749996875440339841086306158488127309528887594257866056107831895629544836203482736469318026461972860014305071843583559217030756899300339221843597807110132066872354123932278743309210969646257559139165488005603003767587234760988460006317584287009904396169990913981171621387239222664773155731919118098705289582556643273255580225088742333294160730547248771432596038756176016237870852195722048555720459181397992965077368679910438352878837615193691254390752390815049782390226047006380947468461164376373014171993410974925553922339265277005922989107163077301860998426656951920537849510124385282589138530097761196267882978712922096284016936018878514057843604567553450916530018156431985168649856388406736447697528688728524023963047676627044886806213819530582287478899611962725114631880433085592102731987183090375467089606119510415467245218187101737221630129701752633263355413233933981160312398452771689199779218680256111302957857582597100588787787220441276371114894735868104367298893651224422471202431237519272143445272168521909096172975099086188370437769084411680670844127220239016069102846216415566953639530042653169611298078117446898545653530324483708470065863295763673563865156888222247366224144972973986934315932431387985224322592724653988530534293752997880986357098618493845126084373416869205597763888545938054161937508956564957753138051061287416062133065598559178492055562335019515691126571391335300385348076064393301945399051513871831895235045096072610045624134536531234551908316693428512663887403796215630979886882507506519577454478014183883396320181654921760083340765785557690882032947106109226380115859049784035029975376857206762795675701987882078734591488952313396527902614086624345021441722058576539462422832291840933859135062712770399489607123442441640761172401117992206716611035664788467024597016350023062888263164738785614669090983617401555985640074999591912356806013388000528168244897726726881256373237747147830455548319701786235694661416602020467743904509829657302157890264836724345629891480016788926967795642493737498411384652070156422116031782574543300785766064023595826678169024887637244971266959547632734474338821458867922741150517733611964749200796122013574418813649271697377069192054765495330409774948742577121604355249796801862973154158772584016747544773100609214331829923676397596099590383776438072203579006843754952893745134277466307808835665815838931107899592335578956193052801310131110756050751319963352689485107421230179953858657932965209667514985818805902589181872725987504384549028827642896132894503655497413265928536738762465965653101860185426649520348563280382340782297376454147696113334826423272987628216280477821705269485273232833407756175196190637154502732118534439620581576119087059602967172656627092606634563610094620548698057097090286794055622439119547163953398002817130636939561087685879354627138117449257804068813080634661554329257949799912865092404747345729822208398731516629363932359892768212520033482193595544380609409103936208427451363508705858395145770590025877263860576682193197387826407768950198904388434719303703563723173819363187358882714020131041334496789214724374543134505145945961700646371426324311155237816385562663653684877489409842384992998972393007482647388491317330353248792687488640583845804617117666502966895487114312238040102752317647414129885825564923956469504616896766474901655232000361099754829872924979790481279026858099539355421180675790039292423887204164867817505925760911893440835404574842091135411096683937203243934948645311456008239393207519738086675032444220745367928771544968598884666210419833400415141979541215090992406931801829754122189419489034634348315090129061464291190171387475231361231806484036283879421944245578741707477969464423133086181627636571217712928190522991153344156162559648033339117389002701213053587630582741651686856456501391750413257040099165570467658429675290258902312165274417219901659324788365677955204877238702370445829798441443861556552461218015096581156929558788967493373942239036502058019303231145838058111048739897816332558917508490653118280243519135363962598895852823816138893524461365882052112982697949585198399025768917250349337614337132038643611284834545467225389237916182109855252871348495737276775769984420030767794507627248184649229318461549402527272804347291844360099661031270437034587774498778952807499447806752978405912213122481244455513568940381758384216061556022092813373609004834885590214651847878573485255325698165875656192342258095931551241522647004717134231324412112566395014809567886797835300501066468009686384183800362281719237345904171447003828816066680181845463679085367744748962377644217008180798671091524248017118005674658320498461789494716749018406956298206492266226142431707325507344505638281449377974133785046984498814246971182253255917181732516449113132089263413935350028963016587411484950321193442432074137580003477407130077710036730504477171555099993980344761919715717312692986207480296758818491993313610720777570677902194023619878826411503154904363485891667682142324880057099926487581320131445898538843828743932626982723652032698841971263671777946826165375874149180436794685220728515509164540702511287269611587822811322992425720900824505899035090031804896809719315202045325409288302543033858845044193794807765005695246554730218341878970444916020282839863520960859618894403819954599616265031320736365712600232655859684864668737055101589712749261505498978367571614184576133380347935320319675700195044540837755269136793181884458211511626480101090001786788767663322951277971595115917341425195165939147955128872710756117746482599384120820852051395177991046852228068649028500079168953474047187810502219344704388666600313722291329419744068695137190299346191560507315200211432703040542862265196991030678364493296640288286364349443613416273279719986852635211420713592395463406720145702925137126691456176077289933132571307099637012639938380053755523334640641173501740514557212850047181841180774243613356094149202104051533661480100723621004816957975092756352342778395045681209721013390366024760988263999419953850114902540436890186099370000117794968395303918133997481085549888933334695773992173408512606430484931115391530180505954241232200439714169691636701442596067277175809222563211284605060883875667026956695263481136448822492289526150220953483389307905830694271887311339760629656312472122921995179718867394050106002843557444451684639159706798031512837493938911361912232938955288176458315720805792039623306951520291810720699842719456963240165233259932278595979388335678900585090032957245497994206077735168208032515499198904301254647950576688919425428678845857125175778300961136388120769363089955345904419087575477395147590758960771175381002829990476378615924883036252538869597717352671696650249564794758722936266496793327198324864068928074827631406433217821415259336336303326462149832249522272961183492907157627593596116295880600444852854887695417733918150734064790872453560157555002280806354750012034564107454352052074868892663416956028878962340153954898006189199833240926190452100055280302131134913510029917732841000172643687911946138667491306582128305196920423567759871371823128400632687770867435621032137935733273132017319360591702801727456878000533490584134539075002743429035654370018712374019946881879403978897373127670817027742798338666155325995522026354464978446947723115619656251382032028802479978255867919019989685291095053228142749039998050760973026583404588501254049208059680762231774468151046931789797168657875665507153760919190092875162217923515278674764380752170580764720479987369072605711003252516713527181813305869816451056857699619952933244620300767467641861436218567631578203428305706028477450507750412945408443326040198096646430186398291038508899307599734371905350911742808743504456577390779155511196772703775960305119981615979342753977522636431167649074906677592715952044242110707063439514247690680904919822585814549968009835441280534672473231331784772243175355406328669932231277569631418946205832532796977274749481740766477457585013720883036365387440026788146926561276831708935639308899269939480117127933582391911835629650749118312902608797250652522168227072441596729027845898710642422295729050053937192915575262889206114045952593023899280279118966195376218742665759437355500604082717284278274268617631656318907251536614207282371012828120335091239936141603727781298472880056578051851723619847809051332860523682097785469242663599563138551031368789150236286866466446747024385387504650426176288174151275809682822272114492802979942485680041518661816637783535922682283130864336445740760794842607305442780179858254647712296311901623886208980155009964083830421639030713390561747235496039787416368108072896924079314178925268307596097359914813406229759210650543733194386396605095306638472646404832293641398582956042777429318565682061859418863037052779107987923639676666031319508669600521079485630992074848124334993578988376797285587429860950047013028808380761637837747999419271693755615848675511504400884457514540472767554852674389316348170846215175643346445346482690794207057787313306060536859083937182054900046564764906724706080562463230338718630728555963053955569595362861195711366220679974235138501759577703447437704097466036518178336727853452568172081185795038042160986671544947733825079372969662879514240597737630024437293585770262360117811080556871536437701728462239757006385119777471720674571295475349008227581025957034691130825457049026389015335695670415236300916234251909646338997199139487651312533060707859641265995663821637564354543430710331964314058599216602728701214128260392582134569592685288782577997778787130522659595395060356414237339380054154329838096015683142062445168435052916061624091203949466610455060781040196164507770933436582320746002653564648830549404099106599036447726651325269759200160372527046722678104962394289856613168935444809116162634755941099835407442449930672897510046974070923934696930408811407907355522829239964004836681389135440031575920985512064229863771014930933169227752966763717561903869423816682921783080319253207428625749197220553212352017968715325393601234550629115131611009178929618810184770950300437677777061543270488164182106325692765235027474625902604011104291462407212029443601499324994965902054754218450072625268751060776118719489054674982731614280248974553548208426828749277564932172784932588700219668918887016120181175339119350535065951966022051058746617309923771604907432889338852192116018281141729165464311160193433198233339434973864821863272681524955439326916111614937419305232836364336231769893082439530317224819725951321805298669049508568283253916508280000779987955899809568764109171740548504276356521190396817783851849901741456354222006618017450099488576411982168527327466245134624340975542660699878425712239995528688479130667987226410549865986008365872867447547483536548118109953678414283772847776875574256470282287417402153265935698988760132380667794838592343606140010095709096863738602964331214445041178131753751560055613776177022886995953334706734931647137431670798357772186321514578824802950735167912195679634416593976930766179007454028470336500521856733156071475795108791486913031996260550754883816520484140344934262694540393044297052810295748500663826765136696389464837846948476813777569700264134995326725759682332739419178156203054261859187071029464984000203699599955077820761536835578252598934841686902793923320359525690956456173029999623250654723337549208219486304801284603988900946497066925140200662350085081629773641902835143635061870355192793853831156410169310342461217610481569217604314025069254431172203336479429503275106123041113454923997494945680521470359838525647763968242337099754088305603892271032017044101986111476711299596854238411824539718192837838312544888311372098697550970537894360658971948163673221090947008577821766936217881697949542644159360083572837296017676838329464261776292180576936303380448966819652527221866738746586915614572226819173412355688654355982463112925453554624619637109478315543457917358541542249792335542586737218732094481733584700547405120819470191182643932551357726025535343930720523796638178787163267372260892382709214245758617280762081191292070348514454618456346453630513368478607887922105429037539822523121115074989415028585045962819699069240348306035509220072264392270777132614726687552610165068193502303214753907748043178536551582730776395988362225480676758371994536321708226201365654758479671333239840423813250620352517530965411658808158452966847065577789678276231282696743403930269698965632430137619986966823421662751042292341420074056514175287135973997292832988915945178206143951952165690876428041788351486267719054453206564503162875680856275717343263288862354910234666599034772283865880650049481052197903854434105903557398077723826466689807715663709188153726150976056419392744156736841332805815807426682904990363191575706831542798371718898054228228229049714702161447548024145792902816335392483309396845859509138609295871223071390356937026426016272473527664889534314633963486464452601714052540805905364066756596479211340526258312621180638930160304653861179935144876651635143018172546791338606308437729421468882545650505624879754486886002966265484336954034365616663723361243684774984550951487159648378450792796599726561036723232557187497601442899608657608862602163372486207999123167365958333597318195324408957734493911196544955329373663830205158925028474923249091812331584933824196466754381435883648817283353826792274076680624416803374341107112112791141585515683787032609434060174057478814852596387914816637855859027512247127395290416950973211552294001381347160272818965442862915154743392261857795183693204578528640464349364676220531115535582026882741775382110818842068613437007263374611988170434214558528620575017732536428971067782355358762601517198160511734019122047978561926742640414093466615068624184919738479836465973485162077201091156927981901887331021074032076567790995563416636015890621480108852980206176113852354438829972075434099417020724967045548520864264568814934926450002138736477790972105129458764986849166876229323457386660954469938237671867004961294619483766176467015153999526463405787740717560753824447262014646645528541468462638241911919368967909698550983684366383319997318530951878900465146702343004776205393203965962370786791540981953818329543736840806629938301403610629322134072974837919396591082173376498785687307458999836122636456949911133062228907016345944483227507795321953260524903832935565052855004713228789332830009431498036450840687514298719258751278378059103762154180481283610980850974159073048518870974099367025994099464156491350428223501932231162417533729804015407711953909604516751096622374583729605093070082158441236326527664578384475283098648214758793092621911252226469129062521384596278003439416041470079461547250973548462468620992840388975662860439753146531397531831056392940621938424087501158526835862985809020986944405797016522621238659427385708317866039529504103004367513496258666430695874220916808719653251836811292137029132266243735736517079717560857263744949342920300412836195873562655932374090983277282524837990269924615324151465390950628682910930049625600436669900522214353934540834023647695300881274685634664407996668463061168262786075576429696524480608131651894748971528889442350267447611055249978804291347553172927611197251622874330904561089845895423914216531622470297620667950698082459879219001037033382755091673917803616168766573651002442822767187301472014644902032157318624914472418031723229958475696447935128501760638308247590609503230181367557555010526098256857210919305432234302750345479095811974948167674141453354587766396110147945568228162553142425729221597504251998927723858606214690683028746781633760606455661402343654898674469491247843561216368529273774435975991444310925888909740791335142924685321215476619735680941028959366846394457606391968729089108828056034143843988247901513017592716705096244700552780903477786334826212192439683065908103404479273976492636347069164748545687032811629511636976053326580338727345852072985560550964325000409503592311732041479951889307630359223398826697724153765368443026750105211896189804834331263181104131056036190276263513917029381131060331577675550154325722139296141125631176296105992773658888519731696675760816533702527270464881441379803779933043007420271655558898515966425470657416553064428479839472959621188446795363114086473074500353833678762497379929459840027411297116697964265068168199792260074673625213987665871543819971075037161159928156009570391905938371185900208072141815824455265139617645513825149533910480438243476305935095945134928024226053299084922808740969188446998406284834261167121844904474682835597560017269263736894165609125301846436384605233933567926301080054898182398972659716202620324794101388072408974535156379311744319028684689978767591135260396501139726241429601024779105512416632739910222104809506362300954647700288938356580012821542106934291296099868786185621972140164346631190747979098849553149263079152748597940951138045397738373828211251199216428466650538407444990680496171344417836764198930542262497578208058291842402450685906823660854049154640123210027352154528020714380193526447479355437215797533539861015132959759583394318963047365663625739532035159280185195182849886704054593066668809061914644947876693891821869796989036575751180974607101663035270039142388016449678000377955180903767291472691176821399213127315476486526691982249144489673511518801328121198573914564353271824923087279555304473820237121779386337306859611336993707994835293953063673928148482145403219579361552134876917640874678272772220481029834416714344573116201555483743397573114523390843452952864981840782572104631966461808075214473016595483036279195248920703057166868236852993481717250850023551902394056706008329699129236878580336835494914746443803213779602454295124632120529385066420718289826733367785052401330647439167665238896320518745557773603839325212368732162520405484432038549463162637492950963155863028214680017471083743749916028125300097085096594221520373396994495570946129672429067002070915948342291511393627370658568861125708462526462481766114414539951525026987287312389334302266515603183195003839956486831033078062695094009863598355372971785517125807034187736465714824261369162336131708068454275712422776590193940282095150895982708636652894207841372308426902380721095352311318891103839859810412083272054050015544058704437839409771203903984621873343890908667656727542850263288499476471567342003120398797412895134295483748498928304536141102167285698354668796048645375226807049040671331999813524407737405730926038507663163611380184238112220384185069813707036087446685171005521412940729774467747686740513759087781890439591355822811395670770947089207300422853737442041067220657469510711342390384088640385188362792423137183298439978616281800865954688448907215556979706147793040100191592837142289303895574208143322004909255228235626498692218915595437960100129175292323510305663352548627943907527720444740960125642765900875492690657697550082931551023438296249134661903251276603098253949913218254137098342991348110683564734863516229692899589373361066558379843911100406777458961377169303881514547616883062626842938473065671090861072610409827588040670050841200373966081267728840812027904388948365207088472732344676066769017735318883588788236729052926047940430255379305767246958471332459796228376282449941951998346861476847292434003722429851061304206389935872660481061526873990197542219775361794305597301372733017653275845991244899973596114977540121138487754936864114141250966691729972791312815695031819183373011626546446470521828767619733678182039343589262075358358308315580174394862535610998209243306756706845848519225597857601401882625231363735517465613124577100094252454183749617534176970561509368572641827418138055148008770747833880852718025090059576644810799133304783808821168287263473119743310688158676252270816579881371489366842104004004289227702564870595290966905526442356588591189120705724221607634313238289749910448944244315358405071894960658315495708258951933620829304262343223086798094380164979620187628284884250051399182717202041610130312001211284195631287768641205823797639530305372377936071569822087377507742516463676184620523003450585849894299721991163770759020603103661286749321577548202204756773307257030097612194947002530596849250464341367435190425780948081852306602937597804508534596677623451292660055277072886919479663035461267117414368997256527175003073443122447039337190668666251727949861572641591446050415415638439563540979140172183212354293970932439118303104023905206062484538739053384443897711184426826612332811796095221469157343764365978047528061184070851638652252666215451936968015081331958609795171785875921805444218482146113250095977000234041134989926513022795467550531458185704483976790887137862945320471743272776579858366032022575108490545524864054292385112074719879619132776900149061648565559623511472723175530468041828221075814231978448528760438183298289499910599889041576392106207780288487098514206133569456377590906217408267195548801936558737241688177056388218709563656860863417768859087610313426293591262882267091549902834770941685070139304805288738894604132634417660666228250700633088784813681103178741407983982787225984545360376156125126121755250713271984944625091637034592210346123661678340854548856063668820560708317676431378710909315436139520368615840058917896094090368313580911998908203217102951675224636988622496934435624249416002805192438902844938514661384035976324922680878459999544405672023808972223813679937398845074822063906627558749301807696687013060879822968152460380281137466902020699653877847444832423153474350452771148579888910239761540907680889624489567579194904058496095454475492332278407962876690906389876958805859977474146656910771817413110790838015510835318116708796140302466327486364922977573352405028734822656975441945867092434775872165208394533167058186953378453398276186142508975539712918002835332962904031143502751772724810689031833469665519542986873316772399333735180753612017633269114242648379200866833163053447003506280178534891807607794094867164869668517706329918378384238707447956603035408291990002367509565988864735210222913967267706324939774179032728214820993173098616375786892818287419735443745382166804543673047234376128586346854763781948604807396971765947535739047102514784544018913596072316092968137086594005804501313174884553864863755254413719738654148118390344766278458832848491241717157296454808316275147886088561541939718024429172372240005439989681042983338574313332341854057107768690995400385558425821013182325092191499561315671129972902438713912187356706400574511203990530567324896647097746648469649265049175108501495568464781874714571149283500410278645044824845054660784765667153519585098319211344245402688126542479548460463542045022962687273792261816720578757457037635790546316607905170145821231041958532368803981424705712996242716694477018721061569225950799014145975508926737154450406735537288960989620161536838049264604774409752080455377958998530035095402783242574520818528702628515048186312221054222273467401060197449015663417455216185802200468712969015249328059787888304397606316206868997559435932334034854957793064870954382972613339161179362688637510330761828328632902930492093060750442938801550809977453763165954712883447308982221115862771741834228880151529114322393873487417537315455743053209067157661461267029767506681104538001310637024300854224120096042569771964189219576121110806354667027559123290652822845861441689991677884794636861337888953964387548489650292753700397504572952789805220900728267591016086119490046268053087756221448775500642171122456678265245667414936618509136861932864242805582163999955699135683948071321457299045486178382049105287285986937055166419079220086944799449118514346304234590181946516029283569953009010087269652323146612709266409759960154290489105499175963104641937583291509526820087041923459229134822246878199532927894379176297756142328481002691424999137243070717693840296204911235832077570265855069680212866252642489111685527137358179896261717760670206711463715747999549547812208301557502926109681951368974291153935938450558822217836971493551886126270540968780901775120907367206225283598280307991846244162856544776978089346771215281651749477094712170492375021140640817431424174757121071949383018547551140602364519468941878454608945707306611896146244509930906903402096586605358610513477604981655220773256010805661550909087766978770138998770227171558415554578112329885149765558407250858636743018161164729208495855383129766696521224334974737958566081983565194799350304299791784947257038410391348293519406198893976357206327130598109117538825631987026117599837425521546648800393940977255949813777537096479497703989920690267220750308987955253191264244262333462329020531745499250108152636232308852603861698621868395712797557044334202154647767275150044769016419899743982564101999537957438281495840158994306400908771727646367336704866798377749944417604824897893343123998319128750828847007132473914659660030442199095074236159142915932181392149598063477920857990878632312522315377058925757891501263951563385996037100391587812117570585241440442093121457965540078534074957094949428494511542839402238851329999470915416850785460591855678982555157334393583664552326054952796547315151346831229737560251429065454578518162777603672586137602274594881080368003014480260537494362675287937714947871130583485458423232074488965956017386009493766553271852393588115085412928988585391930156955100547503293944941770471318842520925390628300349731922540362366274794892612055667510345627636146072404734647298436514858718626848352676777482042990219678454672842867737254411354153056919750862880496797014824474838233936907563601931712639320338577717621298164091380494032323091334083761401145488652293603204626344980687768801436553342869691165221427450655973963759084442817036140735388038660862246592136188009831444323595280919231053240796811243550480276712480185523579302052901282417083191909671838267698903543028874290659083842992381480170508456482545147417090785465154220381421477609003006924670064446186042032179405064037151500308759031970278956452557339379809626411273329274291231733072840575481915587162044959051182560157364852618462375022397350085543127088314724377159755507365167551597921353001535743991748229876540552470624846575574330523730346854575373060851512760035758931923270321316663992115830615300653962753867676857046109696020974380934671244997965124737952254858649929056119554881948023714379499840328525800650532727451773413386144792059785352644719072605819487436402162398351801761665989509331972488853686250576205019316507015018508169088152339995891875028929268074396306400130101046339489943257235509451393864732933290381719677619298538967719857199661569202498170759841533610008151429231277158382920818947751238622999343812073416515038410201199049968552167674844203339000574553279853171692480683807081681140269722419663348355398847062290479324770124848525229198527727195365634721414089050379848597529570667202538115296398901075469199872257732366501124373096549702829811124633408306354185451142883822812847813363413067198586838242227434272222298556376119824190510443884392314542810330616486204165186973138543168520721370525935715924728241374132019011734314914723067756527478272546778903293753639432334649387621772965193412155939111537697793140267080896402285336705022568900721798354311218283296088135431178884895691926078529632321462012331829796632822582080814463530762377510110620038460003369990679107993616905013816873309083271581590253043786797488942971724378160445582972905437289738544501697706369976183643896199577323477967444763757713763887747230295265477005840791685592139685049295286673028841729132261617702848676146629024000154182322459143020209874788416270664145369416037955684576057982331187545253023281016335194403100026844405495441839703566814724481547456519519740383410636035344828410657648928259385186781457480724183856679951297481446212653894585115045035651709922655287856322474904336451971109048261992512246960304136573575334431040364399375631488071723701066689831218847504627907777557509524108868448631922770341958853839483886863429121127393022539889886322818189538125004598755277826975879488973623335917978961233710580084391734992710549835735982864559074587109919587311130051130291331860043898429953863032246754280633213325310794378056296842519030181364926503133530687871533589293937392161911471303545886551274804989680716118087208635334171357621085026186846183945066917570520018084033303799463846142833201302986495460253079669049684400260590100397498015110413465741023164625410150349294210471859551517560857395550483602321145440436131391944474737226417541738296704679052434108885310502215277856845071067486177598700695904536601318751440628721784581850032621663723452223126385836938976905940938117839098971928070937823199131675740940504146248777687634844855600726069911186065019321456245950166154950402025328145502472655161242152227045875248771020973538877976797128137369780449206275451700498367221672863916787481548224772136960561523185549227428197912540744476862809995471342194472858920691163803062109948567352163245476378665028202186497073932509379676849739381481745484033808519276939920653828452777110999256091350252916118726800072502147279481335751931500492220162057947398470901549867625720321617842096167626574333671414280317313597792212653099767848056224419846050174467352827618425447020525715471064359269501241607501340808953082763173263075464312763273042157174075229217036376857923867752332677966168855498849945108865225312981022994034061277262903317151929191277333016383758914490034989931571227259254371006263471264109352228977380713321237059990627989533430247960482797345595964207713831227707207715014036963706744667906811217562718822233951020402074245016174838677690702271125436120694960758723962458015316530631624604841447550813402108054272749996754634173041558230368230377136486342711628073140289543934608741260213471852292098674092065201736474076725010348283048432651349984283896212435805945794236909799513217973065610761296962388108393806345444884910531176376070060114971441049318780714236545953550815837820220207823599609461010001120593911214621898807969676521741269959143402170570251239586992982664802374941645491570767277647681994985701979346802405406609536644350423950773662291635510176665062883015977200540260264856509102497119577637470919308904003088809435834607744033801142457068945656590634932533672263474953527700942366424347237509294735979918933959850426519464977755662416151498210727344186321758478292932136811883203118879723032665566181334438431482040639512824356021027325066248911232634405922513558481106382739049321010512148042109648123082110786845623953183076843280981656817216748945916662182917926179366167393795709979832375132997207770215799620179909754167328259902811749996509734276740225991558326236095272409823647032287293048881498209285953155922552241599977963962374809398313737310044229454537371693557586486487534247308909592398178769061229177729303149652478934297311193171711967728299583821956604866443515781717985269224894922137660545498038692231375059646043967971633144793808610502572153634540154061866437301953405462867585797129320410338296037784834394977390319779612461390204661728526407683560414351190436550020243194941406831014303889623771563733225085395670069545345862912112098790711855206985827468822263914407699464523850838202767607107055981262498227851482925072368314897750510795806031221462699401673989818398404961189119057492013938888557391305874711366381094152502099166083563726513051288521079573854890040300394125217312707638312269044948032416354171158562129568698880450332157971699980740755113317164699586069047370405890415609800204055384320125125611371335011692585557128648223185436246313417722165998943413099527428509903709682154599240779842278336618599764160432374298543808009951837112320067150214053341339209749327373286864699628938880112250388434983793118953892043420094009409006337640517222802693317271905138256746183483726523057681497181878526998479586044521189085679689975855564710026506502615185270252913327431645749575988706671827061634207084176908753711137995221199812165519348557312848110154533393964069969123629230376457816540169449091387991257201747246925028806031432987764874893026973524214630803957154023491764012944748429059989545829285787150344350339072112634935864036231813643925024939957082035009241225179917739671219529275798596368811896035102037620602462979428632438521275170881635908268332315693832438038678448975970009049041410637365152243446193725139784921006246431163853964062515370640418975381767118714890469518379761913825950196792371996226353593631447133129586821070767095422036188954739320138936992035233810516276481469462445427214656282203990782325072160608821746834830766415773978992596169357877768529520708123621593327601894653936958706671671835671259774240467528243289356538303000678432096461353344463396119718111216980038507851781601279738576258611192858747312658523432400378161700596758677358507263546261195637075909399763548764328771564715040177716407968412504316333034887004082492984149315498446855520811257457260770281713334476266063655897123086209372212548374067624095342027232792649633336127132642096805834550608163763594091556847739086417066090197029973618881361451077637781632464304530770413911251822752007140904229201067172896516465297381490323540445801534545620796285091016421653445620253155333429734779141477818519262395688544399583257475234146616765528754592140263928488416436339771402694535081988730385406183050362411232972063941666807636839328795438157853444387218305639293469033363602237258472306673588097406586266698412056824869576863724574053913357206953403615098803438099007299667427273911903590560364029991805161171649251562945546250226015865899838335739888710435263419853275605524642910555885712846323508933357204094887549256163962671973612955056651586305570879797543830290764215324397900830326780043482543930245821939993332809873568768417388400800097046650500766409203978931371069009421739457929675007759054245137846593993055046763179970761498713533616684569307850460537414830837561721736288294719672210516106573699335232563625172163433487619339555658068035388732837960203403020836360160208112829965520506855427431704116287128507335284684168218148656872649026353383659767677597312720112827651054598317340116568713597526047084741110203788918747368214060149396443795244684509013193937075715183439766054937404238711009509012691346357172843964658371751889179921821551785158487587532201002407336594481813509158455345755053480940319042684612189934996143569748823842126829823962169402705446388465371118909022932952204308899425750658395759714276356382066857408330514807377274638141355653408778814889833288120599183468096576203712848592890908130419558820738058122897347267233795244909779224263997832345857981934208547717961571607709678718814576274358860123713541982889888753733282221100237442509718410427883538052342071128806422772078338804872574588535580846223948979947417881049581148014287345499148107629701606002669288722139441262603160949645931117666710851270367770153310169617055403373047742001105321230904994402457098820548719088208243618550529344175019993302683456579112190808781866238324204276643485469626065624345494066722244303616109762658024796275720428319374414072620831195672561951057075114683120224119127476141903588126637021879761964229797971779287241836759337806800406747086679209509241306103112538545570498591366568756206149738276136492682554281723669695609726419161772501233511931356611098468202898697141386338675066131646433096434666918098959133977913160032856093527249688498016612131212249836419644128375750468278313881314327165782583633592604769107656234979758223203503293669951235243271338365155155867088523259817304592933768697595975975953778464338752093994095583138719264499938324833471379318480666443255712877415040736936622220956913615232998399979998629327616520900946749457544526879364340614959581165056607549657154318837806770391216349493745214579176305480921449479370515151654575950523552784920320085086680430767987837977056104920704510482170829616565783386112826794850164351949425729336165967329228930703307513396913133187158590722879785846553521930371552079654499363206934694536200266248299144725117314171635584012716936517294462437172269260534482907051683837424061565420291952255341983781988101178729900299831965830198180413525630846310126669454192789015218793099828166974550899584844872823581229402738340687068920124590127936032057150476660344116079118685508604998671286442114018532076937632046268662111240505337422923253428976849145374914311754099383299051657678621522128495007480909981082046902311094589062224869694252241001367952447514019288618192614653988223506183342301584870295544232647099111744196568462873718648474259001845034897161858150142830504422931414336784808836134971314025851727513336259568190365321947858002531311264169317058640845969956914429699420812707856131755826114387633207574003245089251889864005386581988306089413686949164259671986505947876686934596852252115468714304749412014378270912401158979905595677196150170464425056126609947532547414427641020011493756950786507797389752013014722897207499515191998059846247680532871918757119100641999420338152621095895315703896536253379479112490093035080377901765097621682940783259922247784388478730778960525738612950512801392905214549012140791297832480342630088039321603074412589756464261824969357063225183191516003032915810896427785742430398127807152952971319328711510803254582101172420275443715006511940305515927529577146983671100507758649639333816848630161033739423555087581249713077898850372967073884772128206289310474338290347619564258008805313682524049312764221973485827644464408419445669393962070705050914878617690056649818325525066550614404251989715082219507459846973154055093165992859675275048251692780944726322518661978695252625529694597973502748911988862307327844179611257773105710448114682835286709138008323690948490538692754832364679862949718160334779984757313567776957188486113579373597489333476010876684891166692632055032870005103064823419961184398822060875660209229233904050191761780366444451137554956882122062702887361801164151591465398413225597220765904135193967679336796685869867441802832370579008443451526899155316583754691387106265263919452558500326815289087235104287904200162037949513901054120375350248106545104084914932031673055674346561220665385175890684527366770345205723094699076622970170862165660374781157665942205682145991794830158372185316190222304268491830871591404892980997251991629407146931353995955895249069020912804631815137504491057274125147682948844947236114421930733363566370816492909273331560819731738591450080553317635721495831699995340501383903822393780705537209766402895642844306172183725699790716782980183577809798382918929855264370699937679640946818055303184120930359920800654181074589392628127054043933919618983098276599399338239880322841241470730647031275616303687352535399219231459701149777854297052918074764500114615881404997738994031375943335628271648253974428851471708639627738060887157438236863679790077759595823961952789278531093104102009109576302284249498757941925546214381438952776469924069899327868725715895112211642325122999665831504595417626530978870619096548534600826879097457770981060764338424775222397630955448553918425795739350969047816575608777460914755288364349077034382543179278135501119570195611382742561136114775192679080678622578510761362377695803916986626520946131642784657994225927038357809241477099689936241743673065945986203421345318783374105862183900133904985966426179355263675981878192458545978670558287547243114052630018353054917927616351938790165656597154213606518203968703427316723922834753083032113289603256168325902535211997931902687778753593186588156981658543660273436379789817876172270724842283236572423683075712329327349790854765052039560165048709265505102604499171477685712553778232265088073270596116097647961646123522512190941805173701945800730708169013759570987484621076090336322006737075026115248977480316743740214537268949232710650835334772674271640834914512322598219433533975530149933404451959123889284719966645303279921052129395014209005932245772608223096410276380238024163612352236660997743978522007515345622908618283283463773755382119465149476027915750954310544533917839324241230173555332186014152618808249755482161041847119632742463744794603762947630845051184393093920364834609100400243576032492983191873825744654582970394023578203991190849420184870205241131437963141849170401268993705375890971803548909174753622027067671161227233944667913026184382307399072141143241802865188583344556773688928254854743129500042087827640621971454820320366791081475275938564283034676441789602368714135958101578775039071200589948796526052551642902455240527038793572516473219507715358307830925500091004444989100423869844249243029021402252076454940411470211772997679908512142298073264517076794175678320980821316521462911472973871763763857330552284054612228123109042986196261013455116807850822121492201553878265493362077707132631144388099313888427138010452610316742816159269449638766296900839917880693213737595597957356888890329207608677881384664422291770542820705170810909474449963386253051848617754125057191221906948472089745319055885191618682495349111467104429964089873179559425025492702261196237596393230654682588092081846467847622977447598797880060099457424006949987666675453032515836502120128784273311196548889853280363037930969516843180499390918466344674019836343707206247498988742337392252911934490458390025998332414600056781755490081504037109540294371945553627792662651839943018423198879411031763019619698924177565711934255893119590948121687587761262127980871829878027506788727598376089304245335454058345889278699657946660863992572752272502737877124508310930933710849893352660895570612395893716726589241951243098405125715170676379776975303465805157262261543276602321193006635025459720190076453079452065190432053034370164810461452958324954897400314076380564862759126228118183517154121864770893698963145778551182267271980828753410961544665394020805201648862514084635740766599820178422751555463907563779406411387188181797422166063508869465136722662373526333255737674941126121773599190293637016516704632426323607925436352031672450725556180393527231987699515838235258517912960023029844726848078398755992991549564916478139980142751426006831145095444037342226357004280932310422918273588706121750251816972928385877019622758339819867247968848182763703284833444846801922957719141622934769690717557700997040167379147785724637818423317322877636397605395506164772636297476213327072785971055984666767237328395423739514171423494767842207287354129587193340388032644867413103538509779037511423678663684859444062513424201650098470446220513953369492962793754396193795818201450289597550864649941178735393751322927071598916458636492077537313522882373895695700432256467948815051042719136735205302079427103513008788800509100495951691382011210417707774238804746563554369565192138029150858014528647336832182132439094582296456954442300901500970734085634064090509045780681679143330137677959476721209609454930158929351222093350393779904659602610350004035019592162839918895554131534475355277532921112086281463421442915176033138603826527776831767984513703697032466511946817826098904919105582122673925838020562958593635330978159627793654762390501823407795065248655131353867292396318279464629348794300110151310651317227165340839015812419736153928027218098407784904629862066498723274774942270150692477432523615385508242590948352528371943373728698219587805550270510346274005787520399671070541941220622823866947691846513056356730623743918223180628520664426250615201203084573606026382441806526486075251264508049432278026340762377222292712379283410018239666996409802082532403148773187211196405088556465141581055077512808394184884271029845621833085608010320167702945601145992050749444409308273659579843331265366161592353488101932954191678773106025736879103274340266224754028158911695848994605142437784047635943894199167737598028198115367196519401392390093704182359449313367877394164239307081661320400745279212015841865975371549294234958838849761639034354934280392558877723636258468219071235678655002921749041904168371440999175713440604276630354061232477235910748694991425622358315642277669038594088532131927174888909447378339903643707341307057302105132286395333732704977554921202722065094850761857465698096300642252987331500930568910520944873211351161760193759002353229394285426814097105461157349251742914427131378250774324840382792437365207013623763309587650543932928928843283980584009703653639574646030239267687664082225908877118328924354430520557497374368079351871152180640985996158705035652273450941119799448463923094598064516428999208631997119472381977773134887824872524014171924033349521647312190158950196888454306203087875214567545252453380058502020475652058675146784030909991499806270071495789095266735053620278699709499230861641609117243235419076626010076770460374005838232192895357427227759661348413612251961238892271996618121203173487210526145404766327701616588122614355454730747785536285329843605804295698174571379878970452394954570317698841108053003507410866680673824369907774775189448200494351822889123638384955594292054898538653828134587101216098925525074985707748792131040379802151699283153441614792721581033118980548282377804604249561302892650360798729442648239160447269167463100402196653715723796108341885390743741317367606322826039701174383143438120044405461575945842441744621278648017873044431560660859266708586944520555761286116458544249109216147538752001496811972762925562936238547366981820608626340268698257069083308414314570588448709132802218753562629723884868664123497154614014889743923479092672104050852024401006441143863614117719188607210293845830628380628267598608735865864955752534175346116994847761728731819118734810683694022564400990491158899390489049889019348637725846967132648786696561538124741495854852413123985413960970018609693829387207730561247295146403081824938714175956337399338544492317161114359624553232759750731293482917099913635663074552146808023608359826679682583800808073493253584251648733274359084819705829831519464795878022784761739183014152570343418337132061793772538956426279610863169159334521415256368893277546089773623850340933944299969618356749202227375250902217938530801184118874046187342112315097727707544520682121597488352261336176665795053764530766200473085433463205406877794615148341554516610640911580418024569664176569622611936686701121009524171967129041566435853349547254560702589275411508192059770041347009458515790588660964133175317722497307681043452952360410112409036667472811896418397527701171068915370511825249456275957124360362128823050113691618213075229899774768939329279092934142106041721342333277316818876498016116179909364311807820019060556954463572031050315127373171972005564913507165293975369030750413858761303487895120987966333758295752822614194647408038227242681620748080863841957902330549688641863627594255588023007579242560389921397697827810977149576445881308174873219416582565747402191706115617797212095398904885519466084662341028949664678368209066323751842356576657251485259421048885971744878667900023052469589227091821928389427532871345427457349672286233345261275176228851546842381426898282438946837711832226196126933093442055931125362263915787590830540432756314009833012458368138706138025550173707592246228496437226483444714873163852086568902754968658026822839867029917167707284695581835813304126402753799661740614710533450505350207574460571009139203349061994154291652377690065726273524869327092474312406191978677178803107253077657734601160534600295324751422240136658124176297110144002630666400537289620938467244478615174760420583658338135560773796318185247621491765701190210471855294708624682610347025948883231080176243599536326646140338336432641634136511752394171894419790844824591176234345969732524151092856921960672944562482551184032380179180099011050360083850849329633655314792956059988569240269045406157149384160174030382614459134247218385744568752072645729875161935244249958983568679744561796321063544808934421515353124104596439233629458670810673663568887411440143833953655657666676704228782278479216424592568654907692137152629646512729275740632570190887795330480891019327513696314004124632750819698525982170327354664384555842794584724809491819965719838151297858964587963394728079480511365071756896214873034143312876863919364631119694009873897227009072520599764560001091806573713779294452796817402726400897830614316719555892875351486536607386348140054895636636187634638455036853125736835039076846380423277201578365872370205824067506568993443227623943580010915561214790713928564058246025563192267750585487712138223372968667844144070084913833776583658132095271817273834038286815354797883971557693424964384634536148627692879248995947646954908892208424469225885807261181035477134395499974790391055754551898955501353876789542097418348043934031461752945150805601002054159138268833997149200866123912165402675412664652490595778785994040888701851107898610554725847561805595991459314785902043134238358639701735108879227940953648263394901336859978440583848648364337713322525527443371311829841234725458960751207329530272333661730043410073994378958388540840626561782380454207837943515973444043463472167119635793997973975911104831145273442701733562091654233459936643826023398222176181042948525599907757448861586356569818213266523921643661014776677989902237875703277059142130722425383149017925355802245758798993738775440596979849308869570289334549571620993259110126267150930431064850412676905257533809421822881010054396732591448972688894632139224014136890877754299825624679315414433073522917007441957647900740391470856748118570862446454276203088273374190393188321261331088223981290277652654682370540130416831039586457380703323500228576904926208046879892780896652303273226021972880515593851302838581568198600023645010075983995431863260987406786107611390089289789716874216890500463186262514792984353236344084787521774466586193110768441802513184691052668391676803812484686250912887353448512065957282508127087739980729777263797917118291802244229967472025544486697896523069230402697793166409563595142513684330612148499539804892604462398656283232330724659122096553201527000709242591915507189088778833467676146447944070659833455094783621772828961032258214249329730071747927544571356534811314202479589728260175006457022230586753612042392574779267003103750910929474089188678655316739736614499710899082667202102512696189809096575357097591715196217236304045906534860823985415674870912590209521159285433860196333030972128813367117718680807045320196316406216010103101376530996626360458003838739875628326858078864460026978656096692543299686349533953558328697071256681790265624977871698307499796582749073495588927505232113444710985864004326674422176143142537560136991862859753010116397357454026499098644897583977254652444155205847509567789614909463995088277689835426554479437513884476022088767341804935518917873464797762637138125495334713300472808149095783000833058607242421604544020413217542820401737886028321589734237231082162346779075899332281536349631232862535568276242365770439161674710187546844201586558518277918104295266910786471674827241924602175335130100534550244379151995378786832788113670266060314099637471097289605604093946804006639147152042544995554950057856571043695079153027905107350756528030632209148231629964799306361262507273546604771388045201806109594341503189594193791808882306108143386979952731538927302092310676654745273285775975004422626568085071057292355304904577579068273321756655829625891353890851052979000479244789936830883773158917281994745994072537683370882216268486735023542699292996138848730771676070935828639403449085749888609153019281868011651850422477064873435144380957143022247865521999402567451526780141908208479378717987818265361206227925558925561627212065762042496034031265059946082105624504412707521752454449774971155845452089009090129715845935802256133322787954154224876533468419821648964938478815628056593800320657079559201496063365858809002322410685490446973824922501096869037104719825091571198668063606346554424108213764107932799973236437515385009693642668454096600760015261766790154598358893679813848580015071012815040396708446769889203928174703115016124974923832216095446455380788597609484570841153759988965907595649028616976989506877636392780228729622991289364603747931288371719257941140217332262267672677063330875926629597212220892808504420659351572686848058583391986411930292976383901989307126637627730637717275642031535149124258901870492388460242739777444542029300128885564944701567568163169979211235692608321987805109974019796595414094074053673487016370159398119297422306244987004616922902851518597766945163520373000692370225853818902586356215874595843563203466767691119308553853600897478025306201040171218893851350845448455777222274969924372175248665761433528198823241779683350656056876788970287540470221403553149670533544411000693146196513231855042127750435989052918173634126282520301557935351850066487088738168596220088502004105605550189244978709796855583590600734880639116097044086560267159925529382205351335646724174971217956189960250064712898747680370041432622839352429241017048337887142567285594864074206134313441727818589758073789991523716163411205528314175704825811247897626441154264762746035836186285602375445921138326551669646412589833435398195370498434193982203479468147557045984649883646994172070447185232143202323479297201735451586533773210099930091207015736986449668944097930685688074390872539364141181796826534220547738000355281058340129700583130657130634885830299415775399218950880802213348502118230379410042499420316429304268588172105418114539659635835048171685063412571406805009102284639220619934123760158612540265974200896575671400390524026676889403944306017974238738532646773833212577957890877835322381294165825820269242011736016507662881737884745100318305294577844746977189921627215057724912257715570456131433036555478198531990521959114089056942459598887716833365044470221435736029952094170523343261785552112454464909145608945108597692393763130905528595082997650389662850567214670320018143370042700458423791979581723505877538692799918161596149329572823613570328202787615810810763626241443379488965032185201095241776240838891312223618498764295280099771428650347550590426578273260900868143685682337165629837694123741722074454042036092958491297114689902657547166440455128728205194740861112528882275472728317564659530006648116528467789333325456497336102945495814087677799103368423555624159657935983580616915953151411632865218422747707471941739486676822093946288448787603950577375197758485409014903775003988688565755131745021596181692261912723377917977520970657026968550537602081580169111042769231097574650059873324385492547572701452960176688289226885862556437188777601226044930353441514191870779298202168559943555662668915424120064086885252323337201401335495287973849455931782525671331058185253063990777613495897079021275717068045262235375458871416274578166514516342455274533726635002400005295371624617659987617209346931710274432305888512164097764334995163072156147218851212909419368250889531204341407004405318924572233930516365193737609208520925936423314538012915061046934355533748983774685283500760611255119106984939861291809849795324723716038472201365714581216226228018973268226891773791219279179224845514580527429514560333895550371422277949499049192264373059743723232956155509393193534075217802935559282769451518099046050262501271896048436922167779615353419743512033457978000756261174536402269427279804890815088288905567536167276135370535284444992948936105434712879804486653655783111010358283815776083208265674163236072857339862057773166900017667029274772212234764278331339047447506948331505888165616152093920284230941087742825836971689637855540519967158606731288950192878653519638516458653670297337916039761943747714705700180541878242092590314922582026924625929896256616594482139741614069218538800086050155018562239533883066414313194439850966844853350126268669332916652733756053651676073826061327960519776652433969761937161340060437958272319150334767909258298707607946080291125118942719063090116827164555243449094606291892856529551228848392434268104445350811483422690073706329970415191052327255114004766713928996727420001953790857486689817409264987954821132639282527040893096662244264764557409369697357566118886528394827833787516662838812165421481394812470191179851684654249999943756371150141209702748544849378406119666238819873176839540198619264003087460476423803694345952580741938670096348681084801644906570533668111255458765151906477439686701098930990784306019771566855530430380060223199064857991405824421644563002063129413712162035475104519285950911632068253791629716145810177542725646824944605126706767261221295119600413675381256500091026217660128932271770933334000215901210752884379718062041809050513528086203015233581064280397052751963722215399012068059386032238803362602760970122932268267905541672471058977884183451244850806156122000867386990948400503792791801028786934541205081647237442682993854643595380843050403575809505548819044634908691127813469518848530428101643608167399880163523644894607309807308102198330552862007427208370346152156245911348663588777997242623490438781499985995022025261620012982985854382402518610366664669294027198008931061560720433142419752941386208888186314837415040551343845374690919038816161415487071935419587895565721587815198710708279839166022081846306659175349770768251915353136207672992274875723272054147973280421030100434670434278068740295037852726046029029871728454902870882768283958585795869411539030834415304381995195868926126195971607934951289803866494712671490522208478750260517209680732572668571518376864577434009494763982457153421310606473644413774258455164364848483193755189181443168630531264201427938672477618351282266470175541845440988693298274043715191966417271222371764454199434908284767608116497754796184593141859292389735794169206099876964580961620169572385148773033366263649750220687404132031742426399554954788785826932205582384687105287881373281337720860687491255456414778465671964255389962519759123192915817045443985521179923291120120888237027896391849033176454554435197712675827447099270595208002204434648836398887227064291240506488649825846228194016702469973726745765940838239992772337847467944867004725045767081717357847447598184312955948768988750672349105712037656885700016749092948433329551717596971435979914367851646833278128159351737061506359963131301255376472679458932722746146422407099095973369532516118963821636102305086292458771824718650520957604667796647824260565078309573587827092268705091032117659679702827446442953512478858028192311794050368383176742054894223250899156727263191531595391340577117418221242772113646586029450238882969010858944833296735035560152562271582788211707745693465484326010350653440965860918954135520863622523081187092593964397444286735387979030832266695202604033682557861465732551059434488038359112634631260565423983616438086168389953732289286835206191778578590166131650871863863141326993733926295676367588146844964710060905023957319495387673574200688490452688165129193085756161478896748705851502005607604889914764043134787954687359831460407262331845922988732765101687292627156598048855940253220108175174720278404557639893475160576315985462793896967790014036666757962051174828928329850224339316597869221906824570957777951767029387036946079681484381302600670518816701707619957676477406076630661756222781229720490155098219540889884058530069153111665665054852572375442059937375761550700015989800458270163301830837980255934457909952108244682591490735161185411212675331874582493134018761687412666284130530412620437624949991719304771954378456605948818502764299862414705091501422444308709992904210687906495943150135639405929304732633729745864842747619263359642475891501379592849898214282820857926765390331073880550688286653575979906447380649248138095449203581818605049249029033027934052536745163883136287889875224452905377477519298325735302617539088125374712853454391458717030356103673975299018260267659254371296637791914235411385403039477123171684214673892383092076945322071220101948177695027109341412796399466259093217358743200283874553312804785071370738787198000749601224789898779620804270823398076273603226256252495008014751306062704959417157840024263523648957987930266072785680663941753443677002367714278686300601055781931218954915130619706059802511183590171169002024143940456387228151464040755140431155685264198944990849747838583313809142365258555152039908064209215289745281594196082139291207337213325426033251479606990124539465584723153157559302468109415877687236303692165688855195748999388760706908166030196074261966202424920327940305572196587462199318532490385767574258754820087319557095164326501887251925215111245523858914025566340186675833082932648677001771657155241320371086985358494907988883938388380047204943002240617402285227721458414634991461656111469412697604137833141635562222317527753644078817855516086918519293392488955284639187114027276767919992210376380179395945300073067624316340076019271879187777801286230188578670992754581287117697761950494591800953193034502229669264444955236020473057843758480140267599659902416968450666839449946490585031500329657907779112084487497510807664758021139515352167963173590389211986644110854652321891250591323325862358523810172877199037804484188559841972973038943152701431332234027878075096502439493900692909650334849079540909195222033667459944880116363884025707455484692692024740503472265715999310426150534258786359319334931220029095774178920265909438485748658231885815724288807463719489914110049322794722417413865048741808080499652003334446117423374582235685718273228096841034300959458585056172849217404805012096536342451768432267121885230680064001337699007343903207079714986454980275802665549170263953304741603105931918580695550619131788290334686712097651980715097804495865848323798106936066575183995854362581124375639813053526940864578257425774489463107820674430024037945570217183255914149502208443143194247340461342386191792400313754421783016310082938042305890181110746000968316169534784645265990300986330621705989474716574003241184464397109913266872998902015563267340843747750621431320560880199874662242077387369727511810382861822640291996276295589578159400686723439143939490331475346727743699885655588445328452715298575852722359377543855433254952972038130853690225183985787479101924202654434938382047851213261164451408056444570489486954749096800663762211056378368667901629176844319680542038817471814359764822324767486700169041017370364940065984481273116983468172494928747169489916699544626429403929085808705591333535373724946685910302017881325402666118139014577681220820279318378620916997119957772611032075027709036925705159850383265228833026860301520153503987599715312223149709582408315489087555956911031794674551301787930890714783199458748022038475917079775210905722322135151230746163259802371632623433464011641396504675778671765302236151340617512822723744893434222729302507464810038251726992011338155128116018611054504782502380310799567691497035171797035863494289272525834066403382726637510883622148492454162523530150716144442050716754462866291111390527696641595153459389988231174573930598979761265738358133243897598893524889625097236866757626051131419034006641925957736226929807971338397042788307288069977118721173255669863151886705176175242722287181087175887807238575976165708306260631109580416297128554334552585420858541324958854442556420208192274372208988498971219132070501173889102269918988478487434771652477865241106734725264023423065645228507551453520229521904184189584221422284868030360919043562780167366962618624310602562584628263375674554417115443191184591909459575672661775531562921692533094391850022723814102608887343472599474508291884302046319779795023363927184191611368656439752470992195051599855602271150546914031499686349671441436232506121613647838219878353227748345056806131095218629088831195924123534675963185677547124544646142019071144070040636064089401267932219327085615542108958784800363405184197014275320879934902842848988900279812533881489635452421239768113099580194861773112124894632272193000851964317277980741524248826707541190549051482274333338632624891107931615898590516400747958992135722199567175581554531430816112059080982931606803991481246132581888075305472633381616595899579376891667209862688933841543746296700632248011639215070930997558351184556796432026333982172208504091073929633139889114671508551133672734056206514231337008954195832124077534506965370267471212648024677672191187753163077494183083272328757346142684356118663619086318124956589143459260843705077877251873158884117413446928103528666701012570815622438289164185360143217591346143303275756488753088125582001927427276838475619303978231103472740661907381698184543066054959868626229073882091183539226866610321484960432497577492870770055518249092069650857682779879429541847122739161949103008637873678853896558321928115278514817070014295575051076217138700646259783626877875836867701794904429107430001270194499282900655079528321971384997740024781849808852564636779497724417367797582704791659404644668650911166289889280171056738479609954714906541186366165514217343433331550860448487441183819772510882040950546955896261662549347701792122256733664047247320071649484917198873261030841474420499164003861221747379906513172982031060401673646308126066438794019204516858480590582237141335065715018138519337221684293000331768684684439566385962599163452314906962025056031372901919923895590684674173383164400243828386111816411855996270634671320712548868012894955865350393169948454512673705163043982183395012673122579281973146690258528414843980866791581237196405523698658445768245254339940931384992038509304227598350660105310300533439147814921490258214231802738079654653814629395654267740970423741970356723520964404979364097875374385871992659172444528017705382100583975074301594336161702996410712553464603741808689500581446175007327547368633315340083498705786318099182555658252925350242990791550056776827162134952142125048197645391775960836224590950692730895796963497110018886157305824104470615805198724523958263553875484915639790454568845136402869945756127354007262110991246240986061461109331418732174025660635193886946746108497924265844609412793971626549160872127895063022274337957487370522238761444435467684244574954244188053064904264717154209507094895029005356643304817687234161288348345669335152146473073012621401001754069528674761877358495094325917243761111194399183692106778983481158809051786205523487231455949260056278027149017434235573049557040033692700053844884679662442367246101478616809333875189474467909562100769544080185386348311746964931162609819953542227408204582456116241727515848136638588365225113383683549698485584489235264864656070003410354020752881795584101251440635468421558643452649260241513152151925663065143969971550877217229871784286879651878028589996323606394046867829399913054051782927372173875108135744732407441809399858818216174246826725020085688061213216146855528406285525297465851439606747319948990891254571355619508854834443414711589040534577757861196724024889087663325693877299718257726798449154947244887227690541960036940572811977586825044726549073266068846754312525363140491271445384262235135269531330903989816323723863452749124598055295113026534769774223697862663701208554443919478163055088599841789292401392378876901676440820822854254725659871827787772170226990688546798485770914603988215595106489475371499928442575790188670453764619209060607131268107065233222519528761979234803862284886365257402070774097364661914910293822063978417251114955429064292522750839813411823602526183129765214116665461133421424236236610728309824278046445321424953718500151599633383397061280152148250612243957449853623231346041514495721605202211130262920276656655093892124952361085480755884443323479903834488756873579319614810335378039199123303945565120592120933014128477736257895106442040762557072115827595994266616143070851237938440790439767763701260714879350103540390254052103074398231914036908813791222074240604100182510644633318357923981336598890527942350819205090959811523649508954460264284511296383247471823638893165317434665234124409490749179047777560555785123934747266085525233756585085333614438112155768387828821086750822542443194461756054801481150083228556989415353930269465510336720616630472942578003742182755170801114577169935376803489534995871454105885085117413084837627108840063571947042721608229723320072145556967652122439906698930756236599108020400169855016194759496514284716387325559818451429967348186601924277028860405435488548202056550263077699715997461060324186646829282162887923007706327820912086322592108679575559880199119813030679546018997375340650413256597397850559153663423937557507128622593754543069130535048841342374414253482298175492888122194382098454137796367260936419263599811983757364700686246690115382041688428882455753581666401713348873102759253138674131514554477383467716856071076176142357243172219079153851134105724256401024737332056932907855364143880962062091550294361466800112351122595767463344250006111726134562292507103139825340541152499029683039904993313789850466649230139946634600608407678602871104197773269597716454988548474222671384645030674521419239158302330182434312469041565190262683551139066732960146664275005882611660459624319453390258662578105856009507913258028186413636328978328857384899721144546023003784574328391891707130824634418636618366563014512548544484271296455897532810620129694170181572431396978156103705441926680614993065866432795976222155222607766840042519286822357549292039712426285534762190775646378696482533141088024745725102454004274906856128030906587947060084897624269622619693633972305075997580413258688606939111016137793377136247964598600364388250830125593993736685779629514354310376283650515169794997693323193804571337750947899550256306613801511985045782807498159152737814428856784860806708157455881301066300861297617290712022437709424851788521758694541878069705933714349315289999559234238811936214942730503288259684825022877628632266154156401364239065179978405066262878979832076451686271984714078684432813675248499224944006309460267319957860459734973686978769035101365318666919673245303897728765416090628986671834982644172070424786898141466200398281097935394341140265991300691705771128053403796228800075044252465302739527881015364235576583083994748961184174532508907087755564675091901959369634762647357698430695779747217826017774630637290674965645853595795357861833724699480774684491669096445677548522144977432120496607643751323398838354692557474359321674613798665996956338746096923198701858733678197962459928105530078718791654042716810061657175403944519890713876942542571281625418576064140504219032485425136986569420575064605438568564136087500886954573847911907476816258461774270774597973457631319897991702035261686886551704697217406857080408967441389526904807684515708645961576211871816314295127630279686025668824956899085660235308092209912232530699117034667944704582306926186832428786756904197575649184720623277767459402830006599041092944084236041622113027996630110150062549368146037526276469404202898501299434476561391242831231068262485580469559689189813424462648144079987340422018958821333222664653291569097553909331607461104602554140102276406795850733472275321164749143337294893070888171240603692120259634130873806911275699490151906419630101343901617235216099870338636372063244286440516561900660437787898633925737002264174102330775297761994460475221834820818846375955137996588457162640712929364584271339992660439417771775804922661332745114003825399262351198769557155235550678490238318987659051338049982169739702321864373015526594467109863309022827099667328365588796958991838355096945863652831612891055404132179612101591261729617474077340224731503860451456472425703863654243364203447183596232956518892659465972196284850806500790459012189573856161044392796531881830163968032581954484928148817098560282588874471688859574017547702799857797082849035647620326658650506343231977427650674915280826870704083450712776284447734007746932251976233359306987327912436023048933121204059882713869034511203808221872479915176986683956345559633622095238497707822973929431682932935500969241160422320984667661738902750813450677442504970534811947488871649286020401013249728479536034031983143452217158024920829298863611202482363705641203329444090831427782110519836286406754122038663257590409397861584489278974818606715841100852831044885205442459476075183023951401685032680151913427053225127860073920297063645711546016093169883244701754588274913509226251309484778804585636542423915242246269314173526974374231221261513172655097563018907260627346234704631360432283803988393175726992229892509272223139355863774778084607269757345874602296525417354919402191318034581511391886956784255898733447328294389766663142370600623147689870888595951852631535308706778324627423483721762382973792482306094831762366054069745385099709764892632396376184396159461521223307872230869643888598738448523364193172572481604011967993373165988187295276269825434998941570780857507857017198383758385667150329909456332331705012212213499959136430485461159438943276189548490764575075842181371469339738110012911166832842652287933794992756061618697985314300247707649702316490278558643642965432768100185329634809345437927532785467997604162029770086985886531096679798525198614349046075539141230175375140651236440775629839610751711676406273445491115876288844578215286479688388312670233179133416931891152052369050408682921539168331151744184488353441706917998211335879371054844735949942610487062425103533895576477531706973785236832495363804057958639138103550802476056767656797696796021108493826148200080252459385129873639218710189019479100263017964577613170254659103775758893874038508739045893261749465397969824881417781776028545237400268808211668043668448339940389903711095723923184157628027594323225496523723889238718812701727564671793916126048331550556934633192778453533410959984646498536189190599478310498903008989557070323270547754269152672340064347453266647665039606357267632222463801353916945124711300015863446171146963311524156696214365823059879395341536180343756353024436727042726140898226696158565439112131994439704955327142114239938960989059968868534017567162023248107286293864077400631952397513040821691964425752565996581748050835515397681704503078924801466155325216514769594401156720685697781423304414957858102295727926513983275917356559178764326683060880897279219753914142469472867916761560585950179617857338555704660615577473449338845263419641307341652800140492156999238500532396674943863150436015958468555692245032807423270582170216441020333010481131787395108408153365329545737743922512992604481632373701441606508915513627614113893699647536898631296627707311608712430208002733534320729886380188088248899771331262267873240713656456582438294293519073272458233443267956548401468334118855627670954496951739053319216846815269653916110715608621492978940406288023312132486795307588737652023878255908501735605140799399118240994082964996593455013462362609795279416428749664750869295574635835255851027661336090221845839456215849930980525867073180597043658165350895674875813764192290788687639035142990873528725272808945505364226611052866683508996878396986215987110934271790412814036461456822513231731003411054996887881023116414566889197786228829674532152009504477028564757685095180497212182792161316624230788848240726369676674821106677848122216593450097416396194527665624557633516044453937987881767020334456926304146178574025501811073934171429721485744298047302544346561264014099770350947273889639061905749328084688652645866558737074247764263109056101017229338517913229115286225317263616918619782935694654155334499875814717402450251916858895952172195600477995103769639444873037234788831263005969280053842972511198587858667091633705896133651274192828676154668750079092917386424240970432317575310931179208027366916858470690868425738107690001424372024733783974450890373203127560139783036404751656122007283169565772648424534856493329934516305815454997325750474510873852409667353950072425492178440773746288826425255570167460712364696920530417313335173944328668565211319303679555302406388555046540279998684788321484749999943060771910895510531899729803248451706657098287899568440128689243274390495122043968109681239477449111179565103251152668025804451329039888787516644026675623483733241177502636345077398643102605295706739993468789774825638271604936251665527085824146578447424013468633633093802140060724766053877298460515418139118923054132492083283968835322931361884754580063998107909778344822809923564892915938458636959601547801628730601428511483452013035018098790995252012597343019075733194052163900037070576840125377068247933921246315751490210580926665197535843203311433405367146044546622976925533401923828908283104280947176554122651556072651078271717378817399555255412137931182138771118137788278022947573257078183019537284316204166939550314767456428711902698223157142771608664922762000538792398348613599920095316108376034316624595815812746955497023879694639959417864326525053265092125990924212196136278352147444559539651336999667318770189321451547407375569408410111043028344807678981339903405710044953056364490608359389826611237530543655477695078712509912289160944971198762191170438693647843419310457306686050008050842939206409978634084811344854695071685745454879104287495607410266494663553888159776176099964262443137193221348486978334606831436638831707831068530538393944625220908229937019461470082424339156676323371293099828441941108546982228884648334241224524561063630232642070776186307362210493882862563316830770735697403214125536978088020895536277151831874992116032727710384417820124278360792486336091787577695096617219787826557807716998706206089719007238129506699130121005052419741563835243115735471880336846182245528319059684565050807260775676572889268766991033224370769952351711373276404540416066448494459416704828994541155986028394915959160599279013192079778963371757389048558780674771888865427691918969446071740426849686338916390712936201164741354065067826409569000485821025514636076075341795353121390556983608241079284398313135365136236616194032884017793321416811974320230980296732459773214291104496425100847362922118210541274556387535741615562585740193715548644997687431901877853809874600225208558890660674304719127802720169865491322118172166762333812465983973932090890902706878020968479239509357703364099904153546887511601955819030213879960386583804798704010593508155161133281470347606165194171476805715895992375315339061353929386542390684112585137353200758049901322400518146184145098004865610186256201266247287203778680617765731605730108461312309122338501616055278620924133109582981665917214560958888375926256717482732044921646730809734782680621726461310765378483698794390858339849135850885574582261691152766617054105984733944399014015736276001042777579039046001943982456757792142648505821107714395364176293222929453333803614091357864975847473441989321804819491203925299139969630152004515817914490973896011527190193599577905190716584682070679002714194330820998397985039806769524664486684988589834317497289186374157287779388932897501556696328815770669670966402881511699286490784201602312838979928659987475739207482875451405477926905758404680066909363232463452749266146538478076736007237334407339100524235914997930308297376923877865833013405516096927937764961546285533706764446777538296813522457976889755136128771314776409400822979368104356462879880791162855873048208632409670470007926180584121413868752899747270413559946356118183136298190355403960634668383269545325997814786253316559856081459935545589040106606356034041512764415978284043849706726252954822633558456293925689440953244848454086902851922737306141463418964447044850622940226913730518324999899885447390893335323708930112431520649443336329622072763041002358830867034178262330794666766278735557098806338503673891853904015399178571891470628982719991458850629436854335288883932978817326298384158481323293308653323195598457757964507480022225699811399134831430551281181775442656848151494573736855449830781676590790278650575000976051197307740786594936890778768718725920220113719040696853068464776404649226721210142420653813357717394867493640970489315817168332142588870638306778247989018136449871307464777712567822831069621046748615256570688896322949289756251218901040203400321445640646839532645048800167768124529280857361693172490367669974590363500013782968375765890746038308614988306460194246106149742070807533206700748594879201266868667180472013590419949644463111901649371660750932792170644082043110741845708240270150045786185249701116854172248338715423538176397820171420958000537061027734393696070341758638152236857124119535267196096324272004533616281471427859969734749464108646681557165073030601506638907310963775578578970998910168396651687452878232085753366391068320109525052327941472897550615286878969477112977703338961176336601485999624655452203325429188149567515874749192411415494295037959509598217439437794759814478136320988357446960330188790732095409860765483264858576835338476442023642324553150496361055623111237311268918562691907194261249403164190149846403496267608437497062356739339924490201633715430205153318816982255387224109268559917083479537802987160199322392869616780196951123223770690247850189576389907530584412070389288541300264861262647081182064128558978934559935413690348626900133411566448783666338674179113872367107954233969068421081829730868707119968155730089978923774221764917356332955885662466872217651760675433904116983007091644498166362526724998677211193576940126329328719584109243908315762777934410238996886399873640764840486581104410401109652144176875749715345367746411109083934012063835393243402358210340332892927017068709532912698517565152015225473306878372998288912878814645102317724027102519751440416288709618963527036010565262226893388696252579631118073468141859777135127568275778062246834364960433179809180689545021370082448560260208125610897482940517894281827707674482095827100201128225866380004656007006622134881928523786273969394196307096962836786939895426196492789278796583489431809841474342240412009622947600796488511041512025245248798487842999136566625192555756930102379720819772883855693743431693565231802081001417649015083770404563950661874389353628807667307649809831348747256564574992123039232339587214647254491402286791798785752747059793755652591678729357477628649058822161124995878802401882600405003191068253458596548966146038575591294343335412643025483388940384178322381580110801369889467210719012901797309491969702431614591436055727974553844399137181538796406072260562957021593165636367968222155470380950398811507613016623768479518759607147113097472659053205556993041362581657538886764500520185357572340774020612994451716336720958544571062709931226170845337735399679751916985482066997059174885373975294830606138833369090398500789910331462522998708996175960570814503614956405813985522735044201077375925856829075543411104252780391141624751521931894349352313858310819194852440616483470455127538495623813651386289388055566051008781614685331410316053072836382435183904259952270281280331843407695952429407392117933567680001985374976965462519909361731095478612980694104812464981474455777093331763262935365777740842738819936806175063105837539575994323211177595897970735161157260397385836713162335753915908119492992955400075974963263782725201188243459501145034730923751796141749855758790633261213135905455605801733064861583720401983595350660398032982394738512043622268044472807431844654643382481197989548380067013426984243311365483371148210236119898783216231061827178921957204082521026934892797185153583824456223771815595803596339837055362147263906220600846417478323262828749734559618197830142573799103998996512208628947721014878014593859089145979593075547397383095031404167581535611306043846585584980039391806303595820237722439984282559157024903668445805792320220883528806565866571800122798997506766168368964997158228345338751184597412721818711933703473446086074612947880606863185026538508184559794433559993469966114043161465640092053284514555463217883215920765588870833498532574157749487688308720094330165885186317543665772645413135619551906201500753247105100452968277352081150685913211075097929361280204147916783283262014469705557503310484526583293668898645957845481436039752619557408305322976768610339362420471919155132363805206189586618530665155512550510010814994466381720610921844506751571805518564036017047976100522116667591011891534465987113758964904404276179170477093185955691506213855505774486431745344430276123689749343105449872517648085917164195636411556526369441688168992718735718129456966552731933851899742997591214343296927866718219356890279698043387067023390259767952921096698307811119951929054791062468303568865475930008364799641371593223510330357611487089785152132350938503120751532775406123207618908372730345543237568781470002004939762757957738539076999562021611453003469317473325906641196955318458873596709515660672771332148113802653333691761411126471200212935937712265116335745419917740215128739597302804345692652242721428782700189681451442176961818914102584001213556008909253147084330788594536091132967474983474711865082346628396500265409953368595339501509182989198038662796560096383199598762955814723295545510581454257923175657541836980256410408197619099787387079169715667099539733348267076430427437320742222769380181881812568147187794908303415103119914961847851674337161604791046032700447655843117234410608713271868951975469512354593511424592038788097011795997719664553057495332771363521264083031009291539656351803348887397835960082968995910637280901432546186018430975292509826052212539626694543422594833250438898828057377920759686252905745427064388733423447040578785306350248180499477290631267198173269418301102563268390002227196505690285987690765068761306270494115824934102207225709197255030063945454163676826750935240185409710946593402232108317774097230426263372129351828161364763553186928366841632532927686942646173974282460758325457317446427053875451932457297758249377610467424958517199345089604699651200638254342048527341168372148627286613431457069597719299759537262987271206229875184285135343904348510068785438913929082376256020684626606929595331326909817258666695606179123146004796439537674703582456323570793904909978741610861569112973122010875934971805492453297055056320660999394232657599087732214636203101543937912895984882725203952016170931633833293135995296946562684939049792861375153665967136664089222882321843030172588820297443352581079166211461906147900521909026250006906064217980700812048048155534223023349568526977925023597805381872944713877778167615076844112020606526998383433135370556493999936725837263216357907574791193025931057157612277161115036644309334508027996003810712799631191955342353261466535714139743171578664643616207430058644743029528568973083342838260324889197569897149016245577156948969218305340367946407915476640023954837214887461971297145971624398677276001068814967858491030286112733550636792430804536353430025751918119372412809808151353589433738634833277280218349400308098085146905620050652286208212292711677694744058645488103904366122827563969570382141151268041224502968621643025757404577113887816266316226153360200837830944451235036481186757012486068381137252952669351321529067279461563888089383047700065561549475842214136803118263296540140347060496681234727496901354391512243535125138395199069522001012679568948688000260681620613589049791578845419941433078230077336995078835777484264373559233519368960477876598341839402109325609848791615596526819345734496223940182266342156371247916150599820592382609755915786918479987566005992331743872390419844725207556084391824562190229376402566117700815376767900846746187092818207942948222384242689827243173071637790981848638577452450031388510544033798336133600386228663619376941928053305161686434531199559332861838015475758180604338299640130821389011996630766873334647619328021324730464480731504613599299525894213528252031773334847216191937856417391637329499272927379654826363986258024218811190466840099642716252074384125552664398822331478927570411454491030188920234028280828698028546628141261450857725472621710297223492304018323057328357997510051309398078737526833913039677513996312371467209148102688212792349637951499572620392746246307398182417145526718966913828166466809798458058193797976620266830075901394266385049155312954161445382170547541692581110512446517580211624875992690702871547574255927470584227693159673110905211277823187091415979499361502727730259765692639925669234739499714569981732809566958183676706110360793048373823352149639854198097399440121853218153561080330176019411972245060417871475276796526634132583684659582313933084164310840647033291689105755512243950910209663285649288331596265757776267844529482464326169581118182984958797942002032700690309357132139079636270306445990164435762000138979695712653575936021341712853368219230152581095362075843326286073738816843526314266670288313809410297632614076160741797094014124088521410796904176261411441125692230193996562668242625384607769407324517183541186007607567752598717289727490099679918776946196061228582660262134316113779891325443666400258067722334185557499052581569937392989741880442677968004044077115830046788591882954849332826833690031977181392672521011244080413307718298922591989093657522776868879319461371110964223338944071381550757113933470481288536694830564365867154326218795487294474314496057922578275649941419759848917763335805402153699109116982623572410106308596067314920416697577615616761452415605598769240533564943823849307575328249811426340873681438650974009519897146971465660724798968010731614963512399906703192488306281999784777973782075059630768164268012583749013241937905173954022026132736952346379614686069914137746586969068435943641337255965125434757569968734012003826025891898374663986985559770783211008476578419817461749432058963909287560051111864993473969367252587653822952671611991772116763852310053332013667069683818586658121507348095570673469164402337565361410733104608467844577449562155660458116284934987942422817878409718205445349244076840625386977242859398758831863099407825759192340092480757232137379406847082132064387505738819420132873138669771376768260567997748159725669134714679249369461892879156648393143332446103620194195399644839148698168346123242128965380043862413666172527326927048110700652450542211109418253727508699096447481352177296430273567881252418418263635222804909088021309878666547708173077186461000729200781204308819402717762291386337913468496961846155620495211792769019444222523149433301571918650085196606642195129278271650861804339091474646239749385888326398404585338380598948823514603068883530205501486063164246048889520964484669025144607049492155294029944929748004835295343830691333460900830440636578939639393176391113637556600301308522741910903233922268957351132933026919139702519059219629850231146372477002184673567324110585230620018599394859287098109671980727593552963030452985312540609535570796485414480844843868850522535290382244692469996265530483579060063157474514354206627821884653101752212920328097577182290827137850053392622401378458472842770796062546681467430722344475568735616762927497940205082171637771992043456735356072859497712693163798960400876253508125823912072270391136496864778057314686730651232989522138059527133020991525260901849783033642003969598437642523455731956207261832557966633093449376606695400207939456030991076345802393386742873296439738884187171549225633045906017092297639933262621403326120242310253499477544705706770384845468579453112827805762427921713247784827611214191954313689004678440334640405754466436400433636339332934520334693301932571392714828192460946053361119415624666674591523708133628453175705171020667425439643496605850617191792608456458394135612020278314253164673788476721647746519553234622324824579104662359651746476677376043087591711890628412187573101814180542070643495320074983021267273010125683338140426324795970729021823856896052744162469537658967432832267381697436950115194481435937451422501542625740419116918986145884070576466618933775769269900269237207323061907243643903368882012640197446142003813152709864947131650797086464862016019758989777711781725375697536567629673741039565645854432188664416052617155417559189507409205653844190523281211415294032200854815978746138473942885529833596496032909726099061084465180221617753299961884244427764807327260179449050183018323173965251110119914765241094596259425148163214572796103684879653149842430696159052829957222536823373157204972881469380517579944511097824923557885541580421806327909558223625244068309653479960752446684920184416143798517912526642087675670913273695505819318011137246627083967757788360196289903887332780883828121051046103115761234270635872023390873791201592286187562887145940304661814229655596560027939043997309569803773822227040625293744005711831613918275713861982389938030144600755998742131086284541271334888949099698889781767312614087491640267784370115986282537117797429952360743602194620676201805648826817769642745403798282317987394238090571638562214133348036582865680685650148816713789713991397903972040813810087577450416999673935347970049534857295315431535814920900718984524140601139487954885693554739320986929232374601720697305228793250500672620750918727862672048662407823272109095536717265143617611980111372892295818096763365674116357090514585493240184343431479406036887117022690089960276528276701749847639092782197636448678368766219972201476621190294372593318829440797017292717200841613273646270107619653526779220588875524962829121856663412330555988828440279419725073184078598621054923729729276670619954581015873990347780858223499606328369056699056027465326966147321425450070625960698911111358418928480381545077338217997647110172925137095222962000500881171828995177926177245311142446657396438275829048789475266657168888171582466526782291332437010915060836406625911694698146434761846755203755422925241831153734570006845407186687330805451532627859401324358252925950134003682107958778499595806835700255234854327219766902926538312155764726522774006878796237083108944528164520254988029127917386314755457976611967497212954441279276700039649949797290838492801659642138676294417223894170476463638227379043330367647735637820357957245517382816516421836606913787450807775502697884914069579998255709787257358198405497808004481024314005718429963458448534326678095554193120483569452134469662086358196277753487685624413800648033496521692410321412822278739645066052008277061500902568204507184313432294777313621869364781113293790260733801244657991942462269894922431238853002129959956167711011742918262094476082317256361477775186485712981795491842017914675167463413390631174919647451231071200217699911524889668969148714772811956827490852816109512967524896134388352297379812328379552526536326656700823314053252763057208210243445749798134978896596264148369232588945738156943474473870995628316601017476563775628651782163505004728877712908619704055607628235750479233105873970884354935277161691592423572922835494518871603861700515313583139775570785026655850599780022404684834247502360438840559780214196102520089411046746795740304105386978766909019094997312211213036508714362343522295538933845469176461147139624099235338871570345358645516935054240496743332634526573207673236696766840720050167519963418946225590909613062429059275923743125208019362781831620923863923215323961202822745297148462636260889393626566761289748877558226642711484810211279375214073963734685974939412239938696996347872585332614881178474310537690356639680449543527402060104721270078857176043970205266706111661084829275036384243655223913345392884406897457433879408311593620079816045474498061903984183045201299773455052904847127818055760437710015010585892216591629173444938253270674141768374486405937869331548941772321976809733371073803117118527452775628953240392195889335358282033467231191091850506286208370262497230534264172600875068604885618291467620576701830590670370407530608918948119145021668447393496392549043668325688256810714672126901606142067666750419184694660995189134650684884290439079256131299852938809576650360195941136223964682305142342201789602879230354340127885333068006446615955059208721541550948117112690085962240938545448722938229740329667269964547486208297328819011892264535517787882435580586225414812585006921304715819265279659919990128193947864981147709863519213900298329185084334929588777820867221088920891933875106043877271782019889823274320399222174976682174627890125593257924362901287788824010662500664669353090734408663791461406241081466891451660280598287563933266084737397316836175629334349744159392769628860133991376506699288026915223771213217335521705035437280643184526168770840827533422667018401384521146588481916674286674273124265468787044751259652299199077179027881949349721990727250631366851278349689921116988920961997390731252925677546647916946145277346351290132885152169635467716032011279983312025183681588887612442563645618539533557592625972346064976559236253004035335998169901508751253083217103174063860581860077489345817380348591036197413344006991591912233875187177820322666349663397104049568607162424655958008650392100195507823060247046473658705499384616845737151539313143996320454290034404259710360486402610998462382833673635925627959571729768954484129929267808447598270719067507067399697355020382583593239583682894378868475842950500654226679640935574212703859755053564127822348596921644595653109828101178667551931848075535997913459197042115230350612573168423659697594518592147032796392783175089816348090042008333159526883214266409515353783099931374913216640712279629227180596235422956606466950443794720290067753705438617797922858296337009096799458400409127394179454524820746149621312220665614667554384480751838420709621179221422920378191744966144569041435197755875306976500423390823198191807145776268103615524375002872636411736686687124800558370604401603453618447462951501783390918897410068757840942257417113355323484209538063781958463877878697133473182669608366866549184390609730925989833182371972549213671207351654867014112099583538499218555326006080838670220886043967958046474464090595766241267941344406311026360705396988345056423885516140861190343244757713314309606991490684610096528823528175932685860736213355969948184821088535981180752592419683752114466843546677635771912681104607087335490654478485367596110964580370715700217897735302011080474226249104555060199718758884775022815069987429735327568532402823519513500127155103209227749310881150177332575797849425098716838003913045899951247526426309137832988309565459610309983115750573601574499957973516658594682291243082234404810369649923177562149307391166032941807234994643093029417212471077414770710273851770864506757308349815686756562408701502280068839516887798282189271559627947089558721137610700691286517626463688955324491033690762836183436698513469429855972388046930324593144400108188165408261084342493691923408302205223902299281427060217085201590240164935867802154806961704774079985854015288698064297159451039949413995625684593379933495867879412451870505589619594872126267811006317556703643374926778904023472361299418573278193824322487611886970151244200997180590631064604462821998462774372996253462925684728723834552382606386681094362949709801259698451072237604552582696599587246413907806534617834596186645802874404307259052782472617013814565982118901366169108205978204461481891282603758151746018423713156982074222763839467961683792281044184387369850364480635944346703249270568945941645587575089691331214457020501849181582585207140812380383363202170333360962464630420205633779409736457081348430248173296887815100923265354336579639035253741663048817094340819935991105336408205323836082738249607372278261330709770656127459270109684895101590230094618639873691828479766037162086353768586082467147993358266788279699388167610611447883647244204829908337476257473440265111461772570908140572761012442087057153891289729836852512014868240961650412835056860159675518266068463867647870425282667570127849543959903057045166689040760934619338864915716158043750473517182245191452393885888283877652537039282866434059117452971859181490910601882486345693715577367244624779036019062680835931753631991899435922751298047154305768010742512893177503845909685936040937523946313688945636821763254916272601844424582613219565085317988605735428134922428323588934937218201454639127665436032688197928085053211273364723606455793367998176918097994635367192982295556421566954572287377825475898542200771776292260538099743492719372604615452673571176010915999309919380479163272770189444399820295248901455302830166232111352469065932223537513459895055561546188537326581173625819536485380074781371758657246037412478939364800833796784246206659893201542011801164108047679747094349038132315557409307732056223046047409612987460144450341258339780806443870580239161183514437946414815573187882119930217247652748930545821259548226848216002627656028402219399448209990847401325327665432349408527391075717704838409669706987768706991821071139579953414084539738297056593232947376234641409044754615737526933600681293356009688357906970496375807094179762015272836429401327486253133855485402352142891469146230118207184833268986953931928130591370517360426597214432551041805416084521577894782315544135402658895615538152923482946365173744353029438191432641254723642372368296649976188889624952637604813264906949638056509207092795961112660087999940857065918391619910958725652907082991427518095343712335570218140056192200286200287342886123901185758639097738381246972999294856860195246472770895980638603298985332694012826978204817993213207412384859040968373475036356730575907180509439429830377931894153407793166646939599260169121561512779355331610780004062474968456587008579107599810365623499429607765182270100240316213100185332906429730876257893108565179611140574946523103218605458814344181114908021663330377008940148590746960341121257383811289548845331933239441608055507539090789006060626377791426359426722697674684847323870738324542420679055295874962822538965476581156831181209895341804444876457784776253730728526903638172397470239947901133472696121479131772599269290763454525913755827635576519735455882217289464674900545415114182059912737342769259354342522748536373629617803931180411971102404196198668256461729191205985689909339508036374579213519862478411553186228822706974117158575084220987474056754635101129151110783342940468759020818142076334277906580938401982142354459233004008488239604693346703769610874864365345180855065075945033994317837854722522044560779892429328532546493895652547880826994791187150075465155265848705165680363982286174736862908728911003596444271482486140202185462979381073853634396927446762105372175134052030915681342703224091129436100024913360565571800623569056586840378515571258942869915840718425484936121487704394559978037966252567055998622115630429246147441676408598155104088084311177277471003059541684423470686509011433470249223347129557309033244768425383583631344508751896297468908633095606336393698335503035785451442520907529892696971426864565563725253839952062225872843934483417215798566509692240642332609062183195893999409818880071519739766483837779208130930516339609518090441912283437289424163093045890244050215309423082630659540459879919171255074493253064856291748617197892946209179417790520253109164860599596946565906082149963290763231421995554509383991567069456345640864704860912154201172584301123443137679735813429121127342711390275111937701869760386539365362886234361800612895196909413885841756289594470922804575880023051917613917051212685821210458757680562472498499928222556251965368719077339486489797993131527077974525515581616096457689476826313561828451405049293006934534575881320285023315871881959783199414639194134705818526737983699239745457891373535304189119474750101311519939547873313058810174728580757125557740707639721311506593428930617028436790533296565285283303724848291378314815820079833123673374227525987196443399515117518791014978251035551831992703991005001676910039125669868234995649441137601005520931189565434431668560950681406983393327563449911430721895403265568695814566660553170365042116404397349728595694276405234917399564141191853755946242197194887939483558721993363507784685159133399037230410841336691761263323881214787365203198163353408258740065747179037064463243886204647373867495151049813853739195236417930788833903122437110406205620027403351079325176269067482506394798301158281703623875521728151975640520713832281314331106562543067844749976535863292546583758414532152156727284003085746457214063793172617465068361905995854481520799950980182145589442198991785416292993742577397506921136384915621177633805384347790542298276588813642195494425029227764942349053567843076924142318734508505917363519875805817139064975658551625778992716279853944584394995361372494189257676621914041881679273368499694689737304631263149771555883683886287164805554852543553078822082625864639741847008733565580641490580857701577157117783837803644969976389412910447715402995892776548540417955892559297965987938229956804804496094088414707510487901681047575179407304721143243122702241148491521131365148240096764195419920317058519841690281872977822236267399013603855502966541593457996158523427128883783327896368636371911783369135417638272994276136636149830100664280195128631090835423173659292285396545585925478116672032255081148147786379101608018020509907447776462277616051009504228815138427951260160433840637547004981591505610066797436655149235058265370222347704496822444342736155049467306543237234411738689726753093505999959457650381077318868047439517692652118943111881614794400344700291280599153587721682131083440990434323003357408265865167693370808679891186042107980447808078810736547521649697678813401132894940643178750045448641256312392378811021779883861727812251441157100940316431426846710905356054614032449970448526555321490748893782000342226065816667321814626250185296236925513460069757970609574134319185699650162680565250098044503349303253746190029688920698522692984449378020477308102527015229523734521378815419711352556780989581334533469584837162327895592406327800652015652211302334072320715365612575418026719317343338896968931372305850731420207453274628195787015008947967769688993323025003146848922363975609512987704693766743840892333819844068477405980470414539680684144038255673416560294272680125404750212663176125336669020351608633741999390510271855727072507526516060458012650105888514543395734013889514584601990214232950736684312467168055517436917846420277304766709594771174865418900574451591983639645892440710761327943223893420582276957529015939487395199897915055082402914850417214924415493005820967415225949593790408036084940031677323107406101705510277483075870692517876666719036688178027864097502681978001275689356790583834357943759886455442847023235443423561384176504231484067791827610914350500402740316391349553457403325655451875047357771896260631001189985390630427058950329290290777932563356335828122488880445751658538917051267959417618255659908118151682010877451782116053486560742569802086016370608272900368032753239349956359050827703986705680056545779661859876421326234309038397058665355568882019145415017024600676405512153739016029516152751759985598577011342763405376577694214206256034827889576831868732161434498426821306382720162583329214372284379114564914136041205630473946061761503445578700431700138726345466629133340661150687096371111304307495876751740866159922521181391438089247129506853597123817899305823124740127422780386501916315103757365704287211164505521540099251239810245742551174083221901591167181180110477904314515599837895577116700404481393689422358554087478595366248937030942929622122212728088526074944663925137381643820229510920009187690281308701982259167634796747693977891671377720686578329748286635765169929371811755488490730540394535033240269167470616642413056638996420061301762430492194159751088598388172359955070118078532582137746630127680698994867436575254027719134512188419180971742396079998194034200887981962756785780227057218821994817506116625453666263373213052034234587766011875269242126899164721362697022055350796796133593662818203489237920695113051749926203872667360487274700865907719324313710941384918763763350835579069325011700633184235996942934636387594347915136463314351387212377845075933031379044946385380094476022158431135296407251867500168652361715704769540823493890968270825866958473202605253063492531957257936500152324111057169555174072979253039544964581112900339238603851301679233322897887622875501726845343523524713235526906273194138297013875368032311539720672154034791664407015483119638359215128673763641796144639043913047839180775012097538472634874810620875610759744333627341503644771099994156054956451347840829205773577648151075729600389697936662711647733232861577152793520424532206814682330542581678688900577275039961795323303598287322078476604654752908549576311374276071913433545323726058339655237723039539239437513971444913745752764767012474402359429741197841744437145172214837364917509926439313675424831127307730314165285513740027475973928835643779629844034957548328123051741379346883051139747793318543196687426698474853941596552001685003808577807521098569781781492279443599986577999916889270310763652253852018803366561647113962201981366288831151964320823174721948794119523656413675446773308953421949316152339384453425466710815135165521712163819261446266050962841741973124404345129159358109177639503552737302286034054454262360529077563623437721487600176200445285105364357928206398790349077491068651159017381945189062245806385235513063748009409045488781240909195517194655462255033040528252831354183045503211655065082990772901779828886319844002871532733024117833111482299496849743763083349396665038579013899130709556925783246546230276156648582493225158658777195088196749732677725722605803470740138579133910718666108317140193968084046043733573712643424477175396917141006338564807969057945784809114872983444109442359525980239736350064824670302798452594829277886835639595238949011255794770300103469558525544683162298505071000500133146605323992276848427941357564504969879780695486637918928832343180058711266020782938723724029003449164428502163370245323911115391877330767502576039232744593278075638826807637458383421573295907452481184227661062982588699737219936540297407821422020711795863233898681864574427615263299241771682395911364950682068593785721060765369670947432465145552725149054108383014429278342767893791515592795880956990664862511752776046158008475301382835102430528432015470708355537243524781546499420041668434336403046357181230001262354431796334767114479946728662405056269950784684038045570291252161118768731568058277165812351373418310179376075194987805037521278943706944844436875334001140795774631884559039020357180785681714458345881706767619814162159379221350599395176685300300698980487248722997199276907644507710318315612061083932459369924200817842679121362172977719171248147069516444392021761429924103801318170566130758601758276791223757491136038013738772116412191270733488971354389994059962518617632478187799311159140429458686008251481515680213660787253988459132856540133679182545664718720388510852141769516841434713278484799115092908268735197061972640837946745837628628834867816102388966627463555323129670027028153196346326912633009241479404716618285077046159191894025526816341741253735756811798460207702907453978879514366437046146267830875474157449001843714841841863343836427251696001262887473630922016446033123830477078485851659313150081199197825305995190489083568003967114568053900576759329318638575784624434717975111669086379043278863104269112553792425494831051649660796696320984625550043695921706367566139021729514152771519304725586195107961554184658107608965834389620042723327856852251512079001149746345137013643568883593190894127959393793462918177957045804757624360880906711956984311999151777045613612972440369120472073665651851736958663103693681169115067135838215879022472863980293684544442334416489195625044346743237903645561983288365081376285463477570320773654531787396479054515413057242778693624576644399685715394352381327530036669568715937150073288526819895691749444319544843171355027906486503402400450154260427895529764016645875272292411930730816258501191965999938547994829195790215443565526956252470213788749844740548833223365007421755839165975490030216752736988307488534110964257203746123704824244621724032832388840450689228668509081458831926894913318672098406317142166541015177735506482868802863446545592062242680649982378525959630025660663628485169391612166539243751830906617012860040612245876163281827453146854277173280324003462668839796414599106198921185333479650844479551895187509362762834721718540549932865027268832568134166555097760436110438718805315601139436906787514539369696018663219288226316791481935497234453962820243072096362487031428155636457550340075407866486121089614399580718767576796082305970439824374060373394594572470088330936995712836320442901122335939410302870319429701876910053930276597213190094524167569196187400649116443601848690547564149093245800291707559095296004692969308765907341290523046264301378429687799061978253654653364199113271375567872385549920723149232955272138021066948767169444966787200282905945251486830804667306270686643769755024633897054186321546970062365965307244317466649574558590086476458157667311712538269074384045609667267696565580256719808382789994502714403370777083275988612103161435129639053148340131821146460497701252948794743886054347967728725622429801988866136604496330270310650993344264234043280093085532307804842095728439785863564106283568798983020132545337308672293113935569628895843853565108748187017325446055088318237750694801018282853970498143018130640309190377947880025668133195830041679618643585053955084983960015669937768516277501887516245022013700490710881596093484072328805608616331190868193076472401956823789398391227429792275082292429401608789955843630360119226205946663180371729816957240311138624198985491540058106140994649634994953639793004531468519485038004585253852699213477919626094047214316397782898626153521417753597361848769906986125106034713495132183099827490622207611909386660936468199116997944015064753924900304351577349820459553823520637354738540918942212248336841889654590961622668961720703952919517527097002177597830147938575882103500780089457209751599934908457932318193569542000501550038823263429445653324850522173443838169966548679399575597961075208615485081537494031131247318184179471594283280525416895805196863484912831026102618584695387010234485122535643341625867536568478459122978744968135271299250555070242701689446618972125790613855106139296981010967742022073678150454534927068900916044975042774197437002668809923999633496008695845522614527886573087139352080872300580402851990850562422037509371554044315343646897330569471524562352995265815838547426692206173769140923085677603218877719393407210447184660347770546764183601200214990950660731657264105876597943756297079976279074473594585677610480375672138077531960877972691319736616819228540411411373131897097497458091687892046471725937203034544322058401986596879195810225323212374742316779689502699826671408748251052006058795531223415199505736259006550405485650726873071933844909778942688976235418294363942877937092880971556236721968302268578035395150712515351040988057396693840890194963512354766348787153882756438674711443879042866300846600861952416307231425992102936337662723566636514125786971396465943812785709781502647613901682036511237524711136349432086613828948804067038247266850979860081250382581894244004322778482771021572518907209340140103017026129049217974877644564276111285783464827958673983805755696324028170043226583734912561575808554539285052847983548584712044802550806370046524982205136429674850922702307311045538823538286041761745494490389215843743863842020522392496638856043964923092583488291471796240581747701414153822590806400281943862406785095305432529739217018950533768610204544499564893682420979095721245374282801671250534321701732707541561950893994421869116422470231795879730516853468827133063034605732625190230932562076180097414481515429510963218415864239404642080605834132950293380187496106171470872988306581913820277387947092784040289639961644409758085469698005615649323003363206519308822669988168374311133166822840750068181210414234041178042182656621491913139880040138796683496169844024569682579645643249941013741328049938465077212361615480561760613251781295260985188226040303372522190536278975095797454428496438167846051256049732999472920300144883687585463883217111481574953772921626943779821963825064251212822306985563785939975214188524723872544414107210381137767233093639764247304228552982971163565690170433732965734754853368731748126734027006636281620708456435817411599626659613434618297097781708657148184155781409731511477311934547317442165559574386487096120319205748586587635261276759963915776528048844104328652430042637706764344423916466716088562732289307567354319312937252691287021148281162551483365664163047159103636604890755459059876885193985607001821604872196947701847409948372652037634194747247277332465488282584057910076650472757741299377742806103660544111560194331058878286126933730866294081194794242353566673623144702765555539923176774702466025883282434903630871882648482687933950631949519915349061175994581535884774446163020751365912777015295122970258469303526615092011323232735806397947320158309814484332907010913386991699352883390227531025341352026118745400316393493788764427079131854337232178875896366110523321196850299922614189360953053697783006854046599664161264015812495827491652104753064605812047296597461386188760123197232871654112067647261034073897806372231740144737472018267486481278701953277351143536763322522130633003828441343890535626537706849828614041476159774148037789872173704152522077916649662157294785766740998941469989182286405386485979740861063442398903840140220642614183056223774009114415395278064541215916539729485497687677183132980641971845082060232847756500393097840172239303566069192438135343486675504704735586685765373971534649571282509224371781059356858777689169809441668932435506344191445295276396271233908908270381843138344965935233075940601265780443041859191457450203149090982789799807857736841344072847770938792329688555638468995114154798304227618241046459090003015118780097463317109032024008536135750262098182482279680869988672912256018120487737802573811989886642919395317012800370527943774335667811148783825674362689186369572212183126096699124929555336403383494087689161292524728737746912593693102426852942313641131189055165453983499480913248436740553201910567899226646482023403474582753883612795935807970421338965979056930510188530514728360155558225998833750529882192831632783220709341555738904284893385640964472011017309051833434234472756499278917992668373987117012666170886555304454824053070921484408252687273611037043673538548779191630055522840829233554692388919209061976144949760912436917839015920328791250848041139188067166820542307412040242242608877486296075234665729957596515334890919847660346971197417524930933208684635283892651494195932063402947426745842816727502800987266696825405231270531551308065014998196222319196490763033486184028225939976150433484699749104197848078353593035104506509868465770974864470308934173961104175823245436740638069986304452551293348664575286035844575551311890466009902801326902670130016584713428736863686718340660959951240702474308841013986869622459168101107025219404291710713248842901926794573697675628372386755769727952203461739465256633967977062102876031924148267005791016018654267846588479479740463223712146993946843872482358310816304290430197470714385388444470288983931814687289007755880220839629992321172635643534702985346976356443432197217057104533671383673702554724211317445545255115243968996097536273055822495885398009633276929595026834471276596784415249849639066571346896011940157835864694779420738187340721313011792832022529254957713460705358930565634654653530682153368350506645654380469412979613590870802095944957752931358918552635303207935649101252348806225581870551658379200804953226738299091153992309457859885302254078785253641578546788979656569366776493798842971741466548652812046288187271820935599856296104662584838828166661954994651391898974722813383335682953592215279257683966567077859010376488489462916129204359454003649289956027633415197267111512224003810032715302425635421949153370949099664951413573698253388651818711631285344427155512472146597355291876381111005184394947771081674686299922556855661540793459501743540499620853486456312767921458347512230670687162696457610688838939155677859943309573637857059805250606822515842299278819048356419959517913948616541200041386402908493769657447759785617788565225292031505520162753335040252356734308463071916414314434832317445865090700254536042596394525313803435442863881688814462022155084713483704969247817301384884603250037133661746431975617371759966375218977325941976116181915720502623391559552730234693968839902221087024580796211026484354890698946948707545360132057984396226171801959270738197981447626941749588057231956567515621075034564490688349113748820079741258165491536495754180798259331927498297459893184270769609973442673728684782031424591421221638774908465825184113817847249417478631458217485633442225269747267012719329399872628824643029645819690182444287262855174065613416353255730659190732389273649287170189511751079020366558284226803442981975243286820819400263716607589152549373763909672515511876530806803843648723496863967978028208608600810831095098110200099579270789764677385319926198483590485618468405419846417813652703935099833801126332798742447339294095927548878510109752416245891472202932593824281657177746258227301276425392084795748665383917206896883793222542194524767450885785094940417439278504053864668386604501419403952037488836246692757129751855739736183022015835556919905722966627371248014607256649150559728609149062363937456957912052212039826669970951471313875241717583394644268305479080688282998357296856359805331899864357525531912529039605868615356289385077458186070502534524732106464475828437730247365461780691099552509104513117133982330606210306503030439205434589390833329176490489184425388006412061045754137472518817319598718962752773333109434499067466645320521273780659884748697348175700355742693871718193528891132426421139732392041540264466586202210980952290438286075144600562357999602149087070726481211890250981973583869459548115942520946797964511806135494092056463776580096618670804498104991121090880256920715140351560020892225000728297363221037860727318500023364219167296740948594094234396819422283726792216091283621990953150628667791420700441893760080132188147544135019907503074152757598625585416793880781642613970623099742131965443722456104455596772650441345099477783610484452525791830236582831870680877500023633342720388581115277383004743644827490005476641137223103290162245286415498901664377387092763870303562002923691586668157994597771280405098103556697757983816659070082649866317027010589607883311400981486392855772128653623587827195980375109391814006122543847093428631647465794939654119501321890655446642475116565950277661862342077107081321877972511634312540119658005397823406712916220288066079014862600328612565352177801087422811002305695187146869020360276465827439185314977860362459850627132084711262754307198216171414567795487005762491005595576840968710032783341516874826452738698466635087258787204503651617621810715740634215349260432907441201176784911740647206378013881361065595644183340169512861732685215392351052892139321351423566011740291903352561542667151347499771548939919168156433202936604736867719977713761174396358128638953242738382050924545355801650675415941234940239513153872507898611141984402824828812812764664351488019296114816658818030750571407236730493587879231699971438654173498659463282869575443065204983874206609684753170928245078797877238872855823635041119533561515125030029627682033654082420987927779553977627750768953135787150526591979652342595858724608339325405559458582270856335167952286173291358124309760516949068357724118412869610612482019059697482305154903585011013096396535316532394602327266444471272607286229106896500064997281143045174327573651987153547015174639818990464196948419118032495921794136409566672531401553676641594468588459838798737782080955879885628436914109290664919740846457418018000943651218166697433912959175980735854185337367879854008282465604665387881655452449193412427031447467700520108557259030847809708227563285545006970313176222202026050261898808793595761167240931023419497149666718112728027990617970461222984566357003557009753164717557577018189800180782779830845088547325342101312295990998655930004536986477634392728238017154433223812558941152772370830341867188116332508670761570863776000826223329682426156537018989714782697989210192447079961949553715277661577858268741017459429691847485353711169161742503930886656605506846928260480424800067474274455905154220380283719494110537853045625295352207251463439764515093033472754086453954919321154333381785372085117392841469423657655915591196275502760159197256295883104706763457017421146357011219807938624808188993551491145679199969555851069909346532079981623205280631976429454281759600137859683928225799585214205354286925172072133631306866977368651756938081029835840763365355067352630845944246190204375116933698286512303430514168873385439493314445459788929870849247492795996199478587208588234077767904868379063872942425880048738274606650221196397087018834596067765227360357358474413726722947522545052829270951027356296306049369903296443957264929913285031933053800306314758633811907645949215942411625378318887828708004306818301977004726373177158794062350348807031767169212363650996036775192159900174795924361367752534646673433664646657293825091186038143896567266910856354674791631888845227601041231366613434730130045672965440447759437924814200078328646308950665474396073155859522068878052039381312576080837500702787982441864989164653723622055446905036247157398628419654341921267308639318125832903697113677239911091271242751991326029511183994399995275965276225288072859988187902472970336584125680880239170501801852452439871963283475363031922268848117483966659378255772052760015694377829960082002187400000063925910646234364010853482887051023094893055665188313066029405246046227335658283380231849234385704838996964649110751473399570411755225282268312052405378672763234894015387280213366201326026416577003388817978293018443747532093524221552678623188967650551616932887372224436856906858918223074315025200586309728381321455316515037868998317692508503909116860166153686643784297487538277621809293889254031173086219033697403240850411132813534612651133474478466853772786871303055809853307090490589997506459651012408913346411981931587777089450506507446738397501379454968035838828874496345860010679871746425206113604821084121701882515148072227556777127488954654362848851661708160533841939949349602796878101853990979732349668226694257702171005852564462927920741326185975832856161283474959389488040481385352050072722291959042464987223954130830812723331896361440090695299299515249619118988590035998149330603219148786928063221910794455594405126753961579945057628828919414305101107215388489281829859091844469033531645110488320471685104898075348587497291349484793862259538841660944541600547977672122010883037636077540228377746146482673647855858938617309338411164133820611365191037950922597966019237780460503241972437509725908438825298685040282794404815888586252415666978715618990417267586194012268639903681923983450988042970777585406643731114616676269177247258698430550288833919734393987309087897333166098166401298578498196745083337338199042160946399364338446526058475506648491487214356227248610868111444301242310012492406229619643216830614621513112129649239347452577298338874818276528438913397510552172307211443651761578396354792394730021376062091406300204513048636150561287258782620673130754463488982602423558195810207235867813372883660661981807284987728878701634502776053041005456806899223744476217725763352055373711223347813408401081520080026180111150598283796783460428577591604846999489488176985213153961912761772959538778653275647602293570386692108598336237417666573682102257378265709148931116829287890061295599686062786728695410196376781516015067896966888520417733839792687705137813693474042145009447268208179981406821279999371857393490370617192373096066552500404968299321180131561140952573984064366544861246869733167993741082391787305157495944122752291198051932187444316781172204494974685968229201167534435177741798992702343417437198104806158471204172006106597471702327686774410040641511387226650967486627466987663360199483467755910773758014054052496021691887723929518924013985379696160523032274411490202644047430124921689393399794469078018291857081620862882205299731633530456552820642427398635250983744428390424232635674628924416257231341737225919546143330749972981659192233538004570961065922391532187439582479569585704266069841083476584409668510502262319969494930097145256112271764432063313484615415335127131920018786314572814000651133350202345853039032668845712129643217650103131441456588825111209708156171648624917446033347611259135336262234597560356941653209914932437108447541297129055976583397178588182901149297250958590746770811713362506459367168053801183275721464192705414774448120275210218359997855949816637712136578102284205885437133882781408431056327820337609695961095740344782951118311409069648420330475276932871301241213276712845359350887022563887927777207305229705958299585790660908460154856827112312407950691977541373187147801525678342162200345711957135372902790697542258368654736225340077572065299121405932635749109797790421506140406210979992426526168703988335593050983076143802892225699832926564488547362910442452661431489876802314583534342417605256700820491059855878839942307799990512756204060442218666620381236928414387989543172491363224367403358967018136992170018554522461500003598412602735223109686513937252707649687113711688527071969607170133637029052810351397799494430832222984197858562172159999862294104070986083047587437356447477050353068606732255735592996496388801385005533826020251549451272863016047755645897931850002805470964003644210224577064110303005961613104513328241578325161628914323305224320024720713888152697476910052016289906877811464249244704098812097204429110140389274218988146503396405709670641377469592148501174447335046530214698724394149959235490359147978422205064831660702233655927573969943404686542085047964447491506226997588606822737337517126956348957531230715952688337416477198245466761566881664030005747027274610118624514964433367788665828135872906507703825432956639614848458523039895879236240648238768958030228058836450807725457301848900894623693871134545320995858462128519668420004178165037428087310278958556770643089638189347751329123770247695963429106591516353371827821026768426574752433837179096499148872890457647371592374673232597532547071530814188698741580759542754725340511200993523956022559264592813223709641710946060004817797539568133380975066526985078184915389130281473515738322537980831275896783214561322222569921700939742314909002493940048947714569662971575731690344782821656231115222439261325087847611096826481041365524017749500623847732154364127061967901645988167123633651464125927013373213533573770591531201578097612822365361335294280043743409817734511756493471401588994856544419985047529665281352655160188599813594388990442056888086879933886746372650115299454223754766715169427502360728037310982283987761910646686662206020178443017064961911056261393143895729916422738673072246677972228185678036741642728133821498665147911383799795480917851591889134388263877729315763533954690806017163174789597308131933207789690427659817523480895472003119910591458395571570592334227232129721256091702976880464468866028008145097278865576525208982900435244329169663607939506953535493461576885799450167018681130034838240910309763883105741107087840578454955293244373850071196939539898445930829617978992446496310239123713960014486846646869594202011676549476416288360063050888426162575764017918034206921916557723992939267547866967660705485481280571695452536463300300492483185500526046053978487082794657433711990893309389877438462035228608674114782400154897355242930066293638059734195495261856405587152726669177039027788886230064180713476530557589870265332333654026263625869225144540725995503773597405360182559263609077882956196937233024153387715635726639870632966487623201408792638466119179266111247865579711671573647974268145183442222744097188505490308618395569564411531389048938261651291367393394638800598030071215915054522540874756887519082554954816340295450757328899656259541556325641893899244477176930334736409850714418927914319819602588620718466833088844577908285622611331977474652810865513448960190974161822359360672499690132861728837074194494314159410664922112623122691478935008089155723326690749392634965374557101680639225702791091352740090398013356975213921581376963020261983147089469290861722505111829949175099247907194073146536101303246264312425430370765284359141676983602155970695288008678140031973752416219881050045640010471012660477704531771663538571202757681143819540291433626940577653869741371148373687668490210782033110940331035592946505177175453665869784790490206231162030468930685013067222956634405854672999049927691655636892579045910660006132058685955936042059831248726704356650109900261442051750571126877283249839559375079668796916253847471129602570602442901733409805104910642658773574315811361510658566930360520522769186541736818390393282046775700319513076631959478368161503620480697357066484436990909167087152489442684740199021828477290787911750914327757165338771877077136752629346963015783571841963240201868214277440439654243286578437411501385349401725801526718215101653736738245604324152499152502766197317271770003321271344223914638517674549008711089180011511804275920094882916915368429666348650053235963645002700480771276023821677437970409291659800937861706011533417331108511213034045022101975924898555793511489258624418062905020892129290636862431559938158190934728745967998391247227107534427519070056955661504148590295933099536776372596852394204295425409406848093814810852517500579179018878734218349038083515978444946368794660970415967519643592356513275443741751699569686475579405951027046446681050260505465784898509445804185527393825073265018897229779773791308106906664402381352032233416260713948208431562568840541130372843632553198377766930935349022399861501557672223787229500273616665725423511595576964348612650297415779301878878585351922599167937386607258399463309763746423824255247596739411154873713711504183133342629845011832374451965193926420533863422400801888914383200268608478915431637411605953099714540177037880683580822152951185924942837865977138789205866610557698681602159007721826336002176604029895704066037481712735518298488552852844452356018508834425954453037404740592661452152288087535159406029797719898950583538302776909171017509846071853685185959131825211227370919860557087477456751948399488884431375496872852713289445030391890060188264693632681677013820086367912951127210878106681722700216716569839361503746097201843407523793111711021805626997726301562684268649940025508504178581706338794337749901880632964531488018649766296272756264291219496382201894498628985607214849371836008264910964861037379827346989775650596202300825039326654944278508021446308184491976696736119411390999199419506986574854494393996847205261289089349451317223351366650763917806406308477011084009193218498066544364216917414900293766223042186652975407371385205070555104988185696544375516544284302980008501995019408626640389339513094385800350628277162653799223758884501473741007160774219692704722255238528038637189484080878832685049576337333346636589798677534877641989137006918340486872152606799902140709388785410090217382813101205036444951260564890984807702302799555367326349636879775512662273271650467024031104417759142379437606819920186876503335169343447932482604131057039539583852859056678916223921401646304463536621039484017770617740224625038645792533082395944590565643595248702206654335683815082777065789624671317244211740179905793585376761957632574535724159414549836846442014312838282128872606123045235799718997391529837615912617645083198719959766535831403809954482058579762998206687505817529920578000804207089626457827770246096867302405395072282803395452802431876114233845395539432257599598033933491608489255848718038228015185857909963974257416084254493444814606557785753388978730259474016651733898980434135529068274307219140605316856242064703096827893808197644424421223740805656166534590147658513677051037345081592353121701217316834729078058616090308107532508869892869196581646258460347760729086724906588791410406711856639951647983528525403326820876801506711441475513300618005312128853526320123351960197337998304382129921106557604931020299603875405915718808785030069172731862608617275325124961368655853515917261002369579921957930585580194717295618928587577849866240057252395444469977623636419740994169388225290963991647899765677008345079986360776358059332817372121683136076878180072981136880865674854440194872175205532711643009136410596178670784917228446150076248801367381523878191326628776801140672231801899136531372474808770311596078054364567214534996012471321979596573460768773613561963668657121887278774345768248882238546144493688450690085761653081761284215933244094262700990339538181125745605079767989774372406337239179139692280092709120212869787954386797161403577033123389121432965466585680175714056271477472035855426236925552479530552851974722423344914053735778505449357250293962208701539399753681251958460906484323454532305664745033133819079579123278499239271610321755531476474766085742813238123936803043995769897706975013678913419464988520557333639579409326943385451255247774197446057858773273989709110856540773682516114866617742764311556371082603002975779987461844427288230925555091998640701848380904023311269624770030589506279087399392121342314492395154876334526716590585238562752297538420617791572410599579475319436408541971246974931573381926295843246533976125852101658165374014486334106527397174429801080310852097468914874274915348073680249031634403111254823526791780534922130927455267162393599520007646525063031825146665042863801045925273863090620517302866899075501104158730714238310745523328192791028988161893080142597080474551373942396854443102875046914613423652755310718554197823119872817157973470164896653476422453263036449721487171906027817055966710015383308671459204975267712021156491064159754102508110337097150479895994899846744797420156512953914897144804579583938040492305162403494773045401909836551852668547855817234540096612741937431084059087152111030974130626250131393303038065272061450915212919828735151498053437599416748579349150179295733980522534346707833261688699061176281385790713246364050172557685870451387701344371814885640787942484056917701578459199175942253403592672670776535126769825075652424357337047437175729301195965502368596852362016851974801215070248120592064805421104959931637102845132918890443966769205343529319329822985851160163923653449281689649699591549389440982808729021474433578998852005656042022277356792844978627855433799492825148353009275668028571507672912613317790403198091017016300845850974281033059650854120814066670212322287587201741608585570281956511228674867066820991342318706115849102294293556283515905427102087306326193679228135324690537879590284192437606220483695506955209514786828604918090326770481789417452599403464749075416337733485319141404151890503674107987224013483720293532331411514379350648718226636650259095201706241303394616502331328106141744698086605437492096219224086322289924916298076085920687465728002220581652499941827497258975852570055442662944527950045482153231001264542190443426493994502148003874001904523222541861791174074910248218320161216172930383620743636168224143437002410799293047936038755110230928662124229107362111197856661013259784498324685571770296101968530397364167638955713204734942099373414188608137557930395716154270692072317648661147998864882047991821260244140223435168536494668141197879527026118997428176131389590611606118958918035544613918687037855545277476087166966571569505477673269914572876338083650944273631667968577600725483082074115074969394656796320219341652673562839828848052208296992070590334054903433477235836969454082994021159090745921023354689769437212910293920375206285449742574329221891559134767906753583570417770949985034221397213605960327422209328186571690756328451563431158773925319143223226207145450910895963297812961117902741142656253472869229626525219946090323967471984146866110341885842150840489497028472445528918012993977583340990853893525621892592139588275701849305394512039834691752315878599952285918893990441830208308249486802656780195915229751472423598027272550997545162183232229990089726804606958111758862762223282406512788157640737026083671839296140045470388415625185247243377090016053276272728532230691848361037842514534067842662681662845955183105798886548798268347135259488772443433789874921960427723780350007677486842724232601320474464267280004805515704248879285436409737457702056996712963462544425710915662681688428223373482672320346700089887126105838670156752817394535567489784931212347529452579888171386358537308080994546209518833216434010600591644817089036209720553323550012818974313012132847078125719774557105453603863663611318216594077411704193659840404421936766917883935659113357685202676859575935915908851295963663301261580306794813030917534656589519113499286969944224562370482053650068327634361090870388977181470004870891312197752992558636371224558116213668235199099491735668303917214155303130344164048019692268973685496585783394221849308555566388130700742656122084072120616552165677235030749330932725193173513248249862266908341778830424164317507446619412376313598428096376788484147106469798110631587675474498546481621689246676270081992919258012798286722291050859972394938987687435059577964293136776894862702308238873871285440882330886219380443327026047915118131925634512222131446647498908108951613971959450936133614590596188375779600516765071950537026410918352505065598065998703587152897007691391950322642196266951347554753556537133319800197935485749317230645586172669357139815554477857024506490687891695805059158509929165428190069553154795910881774709234868409664635859887248253205433634475898509810535475329122813834250592526826439871372382706971357227659618495896617879603082150040154422017508211173235028481052096546665333026189219923809036319123879637081820188909453667358369788560799471272829929623954726912231463139569685912729145309512271472628883111406854225354166509064061323512611699357401701601963229082731244275816344226268905959310908216869158744014295106626592706098227677170601723895199479498651711064293808571880433900436388917891115490482678690647275538782524901680806843292033667466130550904343070261665492070106411898817368985743702818590562576613230632303179276736438172065966088194788199085296822051658997942974415863651140664257248218119385089074710106057819642035863603462222499786325675880659940168345806063780314584729749514322229906446767863579263649445706385885131132747964792338258359768873807065373076817087778993119031711566624453485062713108536465074944576020335753466334400329049950790868886714239815030445365472209968331242534151085458917726524382503145445150459242236783139087076660662942194645692015219663379525108323832787661657803309746920858161794390491402498713471953141609030147538576254027258868844105754821521468774855184777130409043576629090276424070357480079571264483615244283482821570106759836856975254139865816892292939866500709515484592297386418727545881295112608978235726966811463343577465904746766187923676175830162217615335938007832645205613968649902036096360857299271298371396620349944159269127589078698447400992259181366772262803925427964195673327561281666602316154675737409955478838376194683335773583460396590084345467695255640296054413475287831016869555139687839780503101256153021219511315649126060203365089791252630245987984568860684220777841244580062244921452803055710426813191930228296166368091792883245974224935505539718060463633175204860335930759731064919401793686114930159728991507290059716257007827501192322698577785039616717992979874614273034836287975661227560433536422950480964808134780600855962397907488868889482918808009724486316178472325874200324832543097072445947485575837163634106813207668050372201717050766176474859030999800492467849337645108854172271407452328663182073833593425268589229754171470322062615516438883307754631994213158478881435876671655665175130065159877508881015407330983400712255457801231770102430214588927298487880936203873520246864149073818971869441716755013460038077355483177843384168996929560724125255484311343251907074887699270406526807234655122716063557179635332123894970421076049401793304216497496432800060258558473796037573439160086189591475775033443643047931761111022194266072038625184073143929575955899495986372569657195728700385797198432142383698447954096749860304594655964772250605040659446019756565651540832577297702546097343175994736303936939874056911478875371390908966835828514193055019036659278799695591141730077525904016550209853546624518661066179608651741587560146639129620537764399923044306865236562963870140811394823569608397932584709869967569634661025122061521130773499325454865834493374269240224979612592939769049443782476947032298180504040393032915396059375497360064537729070030667093006341196591983628686632671356383613518737917479856905602764084877356294431357942784070139562224265034673791796252408151936976240022373753466976710751867723496856755992966432924423785516004165492442054597518480015964214347109236977193424217768098148535688178265377858317786898207071338728026014002463911566312744319085926938707125921886711027317438035614007008442587272804639091749329876492851868710931643413918407270801981734619049586453112164742712305439997440040727357494173610297291578739946936009894707822134983208870434287274184797011337417868881763024551092081017782214920298607716921183117149431239883193658716647308984834568415487445327429547785191122560978130786593634360318568973975789656265884928744936025820821534947990406280972917645752150339434328399520773067181462737195501321404948141552945217658321436159137874851096988568724923396124285004295002736013826590630359996040023484875332639033282341061006693676321933763185972466408474105149557697570599439695930856610226781962758351461344113709187634396028570158578331275718636856296456996512230934364192527275009940329066261476852179626113409878245263078063040794443035020074748212127711123398855034437412904803724697632496842902591817677072601062558090593032012303959763596632539409427851591500964800272374099157229101958357402514334515908520098834975544490949459686297017047852255421897545387259896543096185752360168223390666177038044999025729419368171671378345302429366301638564189284224186001772847258321368820860530690204702687051512537726916319102485545557805230076740540276291367661111339276085647392580280734551775212692421693200357233621849368223104982796257588498041760059451361716144154648713169902373968230254605709122757304833930541335568276023744541960823759796936828055353315617867582385327483624030445144274138342001107788423098081901278591487719292685031736814105797506878912731380823706497113026243415578506457913322873393774557107504090512430188449923695077288441242555377681258645459475184145337664667817754702972308469789512387739076463105754058989259527825551539442661752503128903419174577738768458229661742675295304328337933578502263509094798594522225228613640701872059657186925963760586940968719759477922732208526867170501786230502614802244077640698520808008040673405508141215590054803764740384683342281565219451180887045378901795829414466759635969783538305631395204612065098999602617238254302152549298405011096084213030771553262085780443916815085479731574537646488578075713265889981309610974220490974411603151310430048571543868737318812156815257697217113669009166963430812736933276316421148827845369051464325791884859438640967893992247404726863542045524969818673278717049453484718581776364554570423664621824119714373525557979939638754732218142485092170040474490420321799343474394439792750956427874409912500942222474952010889698702949868392168273108741826080620319632959549224425738039459627380819900415428990386302887055047812385265416555350200832887253622004934814664432562429993759980326581543825603998649369822656792105707544561712377145096451892998877091348691799428184268062725155311767765964715018220853497488855361034858604439040853668335571143056572299200668934874497815744219702714544860725735711934853235035486892443188196691839528058066952333467171569273903279458809549314103156228131106969994168489574176889137774147105195529087829558274737996713254058644555556202331953222694612281245422250642897119366346633289784387962450854870105336303783864383311561243696324748181267916811901386540542580975219302209755626471674115727758808357657199292280289023389803873328357610878909346163743484347982126438154616062281600939094173140990267928175258323566727059439117244106474690616085944940003787465185375226213861906276340240268386065693737278729146894527887366588265138261519980383984663907972338705671536823854753750786998159097797827814837508515552898239548261459323882459671756711485315938226316092275580571841554374679784696352559904916998694611608444949747114725806038571922835994562363366256891272872273237972341132276458911816590069093549670655316734200203279698750993286595900866820086407577773912280195578191941532968494604756633270943930207043313330549319968131898785078341840156120417883155449436349856579111641783194042170830446153460302964442647479014395515075212848835804512746350879828917264453475720462625695156613666210780586362410078641998743807241618816874097471439914339715641995818791722177987157264156229741616131641453932415600395176010539655405764109459636300686578746462045809792347770844083630316016048622374653989821320489748123711460297654065680859039164767125692176373269628229357806502487884266639336982883514396072024609641684734256876062141788477646784827646742247202712930512523160933813451155267230531292451711064312251276112551230604241199018073166686341379647059466977667737711601771393205479062453320387562324367145570342191938339381173752583090627806666214708157355960642246220778344609930295668603054382487870467133825368603099157093828108212817026186926976466410579245586403810014255105176816951423473649421731153125654232497623805024838959714985192566758840367777756956464740708708258942776099180639085724673477016642721650787020005676265448153134492924182681333662703178358750860570944790179205031564084241957673200839585911517330840649794204120426884290341989661280334245700923034747840606504791168518546469671416620635878357368912970096050683207099128320253358406750446800601092070413661445633245862368136241098594481672414241992319111281915810785959082997482411412201449051903922395365441073090076822430018306916229197855146149413899403621357258955639825220477868650918823360649550557409751977174868334621996851634289307962392315753282480708653864968837489180515224801267820553678725732750343578254087279696610538374162310779118406908055656891730896979367559749433035960412112932852705916808554634173465119149687107790794682512649213971074224203974632885479995043204150213480686973681132118945516877096861824671344165980031285860942041457268950342939555328242882832238107798803366935387764254557429238454454798761304744786146183920425229356962939382007783821600650685728226762597591650939043967553045926802286484648942052061988957888697710913899435314650436529150120271037858010879585643957365359340540351596560038653229953198862618001745352671444035989158140258693676817898411395067474664645415709021604029596468582629720105034787485199121505468018538176623644064899752574046031793145598102731581447933625553649149396845677871502215486004516358169007878425505466647597013717086132614630298755371977993993987652529247357250688396964671208990061187737830669995174192301795407759250948634343592763342017556203010859547010073692759247285684690148934577676538435285095794112198781982628664597638889024127033786761019075540841199567555936750671335370110332081215344474764743654497512860569616460541644736137259729555257182668722710644602241159573021785325809285293818535137808136452730870484042661777348127590733527386618464754136308326131887736905279830589919193291802107157203007478377470286961990547572360844752886114786122753199594352693030117244402883695176548313096784854137375590237032310077770314819815013882980797398314029909066142059201558208003583190166311622270069605412914618980373425998210835853034300399844747463312379195176983315159892116712207075002826475493001747796451854506981311932310019687849584511059058044901530302509350903375701427420306537299020346895640614258833153055370599630796204294892308816211534715424583402766251157501734952093451631269597002033619252342529164872823459102536532692054205292865517069602361846718934868104259405723084622827284295838476430322862769805441084713788315148408622864449098072532028769855692102413584560118311304224377797902757855042117388336733328111814962145202259740243102568891088788587964255827973057466046203700606666239802946269154873244942419771461634505708054166268591319947334267030753939308709677357342831034495155622199277264186534492570789667105367554516282042413024715583905745855356080469805167671533006176599107201943805251728974875161715080201692166073463577992706214601829253963482012235177148483919538740449598413666488203449102146392347198328013237689912937492862594073066690925957317172602602082575643251735455525517410893101328828439533845689278744624760829680749414725379410924617770370291593654996884913505600785214639869468445263415447544122437312897048367618620171394053550449733794026231474768895266245850678164054097437759062811982796184529278640666537004777333452169285324146932329741113271149530158063262705047426374896008455066518266921559571742553518464147635138633442316984366491922815042669458735325672128456140194998183505152705480967512074043106799866067935980075778591542833517128958926740223149630672356127552433314018996100819545910326147303364134493254312397928862036734851021012610586674950555302234535645359533531389985191826528175940956972515433433243435888780650273059210405605744437311271526669694378390211189256984740730147023691337863666572713869400284437759715819137475294737786744541756325716494213905636588983786349144929428025531782386284743575322851271895630145157652258570700660306928822905763903928652333157879785980633195924504282668989927817845313115265193453324368154312033846043555390154317043848321942189206805636900885276504797925469286733526952891759941595233495053643159075545935530884084291753395473441890530909281863022059029608144449154448802497622336986366918583031425924087147066655788698250232748035174944586483334931439152651602029637713382324621559068864496297847468854868970026381418586516032436266152868611294917486529516584935370906260063721142653471581668251459925096799958644100396790074719913386349687697936995435262706440783425087310470833291246906372705258961208925135142712404880227398100612215710730275192199030186955443996177177943409426715824362576484354914527055440557722212962235206946628408573349612402857128833602465662893114791205443241228804587837231851837958167504483156763770459810444409636219578177130292186518124807364428404711519039783598862067640759386551957746738010763817946395088566971416053590811895708322768802068625837453999344363071810075210107116822746651426498326132921161817821151528994073611512765251181717440711720417533037117467918788544870825625558108918392472817270808353126902373346986623945151910004314361399942387715281327366111654371695900248138081013096795900253283128996752397172852253596586684471973281695684564232594202829509845553806529597697271677771524180431696970098925124057687551126037192556957059336413571915912617092064334776790087197506500891151968233767256176240362851052555199055232110133965031117900167039614289990194544653219996688546979557459460565744093308790017995421221645298811780727388522523671571218362213769912599543656702637276492931410627705097058918963771355128408115268082191780137705356008208557986736023710825216979462813310701943908524422193498463525015073248003951488452470542137626053634750978640904932754416688278237933317313807611741580109648397813058470626390896315462603000638202077019142338860801684683035867339303957617584511744978964770819796779778847696960893720676855540731692534830711333216182706800869138131375347605138884607117702922592177385028696821125006083554462146018238265134320661034955170325726539525026459096269382600011659744820798885273575532829387280370439355764450923640765112027217174016469414017745508682080980448327081390631151660249629379106039482720693623845004683746411309875621651765286953505415826252389043681572726350485923985083363961919610908437240564813852104970916429889235439702476678754653349612030889590668667379552887480481959830540737233534634143280490504236607540396204555221761964616440449787144480852797756235443498504018487983758788763974697602570759388490156403553624837200992503744050855898065342570749200823171838392096049773345262476817339268834068523260474081932691481564961375908464007525963931680557579945655669888361649018945334068706161947032585878767473683750817920163116439830421210198394973192795334023889395082307444969739957282865537779036338731205264944711752038561095117428763242663347386911998852904390830132639249637430578151858744700973065987543863127134061019755761499197293565551158397440205544222917196643387295730034573969658972662798105809648913552647724770722052988195072923574173911969839839686979109277532138433760871988316430190531707405257875616746467643222934366514010913059502230667476322049093060082438363285634454293144368495832257433036078058150245297629867998103147204751932355012450579528633194555682719732231733650349212531016207180605831689140431343753230829049818379447888650524144692577210826673438556571358660181688903926792401010360828479880657928834852263065671450755688984439980602683217779401964888669254078434137726024782014232870144388108478380929623294862468294543677462472373898055517339275727765405923386329590795421758166967431010418173571127366191397133536155676748131562436755318446506246984745510362990582389416595082103312047548473276801425361045513757086218228673216729647243487207725511160827214711787785347448856692266193056881234677583555832539898518189733412997855342616644237653336822832839535486018573973646917101130541211197936048447386701434774108075084816269652707009821603620233384601130325256721457000344898025160166181584535128085736958657490720550128834550970985321822485583563918461590177497294916280299521331944398925553089494030767069378589921132126943423072261948614177174344049107454468655915123556409614386200391838847455358067353765271071405101182035410342486553258378458758746760325595517853484952922808538369359569929183110427352440198056062809115399600064934132848263107702077943150872625540985426627814517766269676931933421537420993494222193678769624231233253397056642143164959193663562812086172639543094573962902377713754482915802769121895897041359914001823428117986752895439411773638077238240737952915976579569650947924725117537327715722937310018397850651611525400160553876742476935306849113253671515343331508310524765972005004302630308634688665825576050704921704699862950453244964386219975761238393061099502737684429091328915499725830884255622046159425835763623857554792199276948117753564412133698908811091131932909179800972147252141994168022406802399026676721870726826343246077730301358599336607060472415159182787147360413834990613046152525989520162484813456129601427513109065429149378256789676293602870969926717375479147113070700734553846320564113718003298330152822394199326933752677149781515935859745552296380013961389632477029369957241150214843508613008695174720998004771863619147392030887918649084455570880876672972048374134513227606232599314095249166225371897414361641489112822899740118355878447820087503195704151781497661934382202810245150469783885317197609575014340884257846391160597785119180439019644962214020764023327040980652381415699673572176160623910769989392394731184972601125371284345017435013906019248399295113223379069922511450135538073959268509344171021196631087665877122293439759022431455989098338342060845391866250970531314252858230164521627908672519717230800247969531833524166300754132020941164844799970319649862456485198331449054262851622684860937577174320022065580088666724815201069447820675269010916409416621927122752863965065703969110644713745915976652461383753237759552442991463370727991503784059032550566675619992802751134571484817363144304158014835467612347939363300636075774557315314336036331847566820785509526204893003271263928534768700175408853914961073836296604607210309574825377374449823163060585203164462055848251360998258310421920045303556018899590770972903723009038716387628672523800284250429926550745196257587376716343028123433341383509598005801662616835736508611993421062208945293238941008000631194722837030835444259628712030849093858291322676937698747752405245131979573052203546976264619958304399204365784967706246064629682037765268487082933748192966013698447753294929297884292035737679092110968265295054116872970224301461023004343770390684712327286003830925787483735125590958635094738707497056682350064652158244050652346187861781590833200526351541538941926384973769475516352979057189384730845035759352500805688580506633936540298701630063726966794996229163216724731846182290956350578262742411606175899522677610167192765763762099068069226763205942139707382533471096344324582165826334865947563170566151259745992348015288203416037693113348198909062364670284261833225416406553650977975107311421232273754912457427825759817916245858595380257956529107389122092715210282352944568138522625748151698489847439626766587260712113917059646685118808842265252162251874245185686595762607466646671918851462216878294402591644967044005265020681771735527868938331057719949556851451534982640477519116525031011584165228400740383523977466504037923288994320986780135185871585696857820331319661297644243651547601440029941436348439323545928601792313509072131439584728870817645865546758481325695762346043879639626516800755441860267223868624034258025920102387695777236896034706466773619229392050972130331092469351169053384861346260169950564857115600016362133090414540584871686053032187882373602833178396722950677294211354787242534455936299645092268308860739792053969445076317116729135838214136348821236714138060484054910262603686797020986620055398408525488048277704304400348997996384492378944043211228130805838922047414991513675123075764747910687425956522006980234025709831687410762462733129401890284121685878321567999122163817565665532370778395323983601042079205638474738002760351963112972627791673357922796112771058058354751480833398019590192291354197463412516666518794909482497392194430274342073359155953611903079286084044389189824071514193874908885045706038200709199468834607900448361253629423983288934064467146194690018671760149122509887556850453399861032506622149277878528520344935409911385216153157421023360616761074911242543513846745023301928494352794733031901250987181986616319465357692053669858746960517117735026465220875144361213685468222608691722966709611847041012300640330295376857579477513482580091874245011594132687523892744362392288264382801034629186313269313010520834858791617850761073999439462363755077987137587326616542972130630539555941851941964909434459479450616162888698765793728540497105330551002646461828762884083829456722393839482251909411369482761134894858704517999222556768923765635400856900696286694247203466936788986383974780991777638512656335154509535420551454623791345273581191458314570597435019111113268627412635752386363740721531171306839683757574677662042183128421420996473997526706129871875772771831998277095169538330504878256533948020414114346269005556082417518112642846104011484398054863853287278715713184514610831353266279247167143802533984660596929534573292086154071139356109975007086415021000794705325106579507072289808576859278824490746022450329697879841343933818963234558350860781337238443157922052824410611277741644783620852575883345316852809340044000267298296788057944433373635002321571483546740149222559171963216725014162324476706055632403363656652530200091019745839138512477681247871540239375079991069181367798365988434265244828741060042701718602912287911280508800531535595787310605181086703288552248408222612604255851278738951148416238532079824473715924571869133376491202846756122073652620466160399316008753028299453468203793023607352261916595218510622409454595086146242191925970531633800331091057043770963186952470658916365475384163481768495047024834935450876721233664313225295823458304691559792250770180222448696029263305085092882671211227069589090597508180229996915593417922373071327763409520187881875211946536711614463194863155104209927616122316391891734562626663701506783959005313499751405341663197307312404242717741014845136545549667060540628818671049471510772305585665870723470955020250352110860111905532884100532311612470731748308234095883459340171511525662835177012071466322636195939847199362107971800935494562564561117423992425646398477208224168699043056685863336501163307747883656613268438823336112614426744100238803536600206101077364571089243888465698822003153419126305343742583420366486395322691656879670908231628229126092611712793038323386571121037829249325339397813381177319875139411723712075307881484988086622113613229467614081229066048704948373809048041172391263533417864592593225299547811827836919541242041529548096521944232289338392606734768791595202337921296855347262157406337539850972561766744920738095185404745846322825460321580532252372169542192434100399459256864302971591265925525906928375552450673918651563184397555991593805389863069402994308344079214485842378226664133294946324455940171404471998386753584651192251932625206508217312405360536049620224435986212009245295940126770870415870525524359517466062493527192353272702322002746323859064010029894503466081198929506613417390284694819922631994509204625622193845770057646259368134003783734026148543962422279943671313654376595783719888567801223415496952434568212172762528342081391078548732080931243224935721599578219023052546589673860970218393181451745626609419462437187975477377287062415948045942720457596863690651891655189198216684804772523424420132976506050655818179330387435042827567518970995917035577782087768503773046109182791430846857705280797171284551717656429692859484328064296107869815559770568845556647302946748135447530039390699412862626309832844110980742183522815062308632479460890459048337311264831232686210633656192294994498072498409750790765827980539881617470919463831371693274021741073307123534061354276449370430718304579251660322695686304210439587465694909860532376249114227812138472957280046014959751102651805123359836230969729038853030986682531527115497083139178434231746263495346282636423986848333330738245832303437493593122001243616736955616084787843866167905386807933071654426652347893638106725544312134189438257253683146467722884370770058533883192405483063362580413018763901159896347262465401224832278500488938442343633545822297537590619905776600525682179172123249825921022846325813193752854534364192904268609850794134042108825306207773645348442710928281563889222080404606457440328979300345712096309923750315939799620257433028076410313643849458762656149850513272604306606496925510881712104904206045040607942136623964961915964502335754221941050222747167475197589683812694818746084147906848331939470558083451507998790410842892657815482393134232622637475600652558563839177774501999375301841747214683306196631546466698736046734298306250666520507380440520867535311834511163499230646311957254390636172890501051016488867961292996074649052639010455182876418772224080704799040421151143129838947496996109890715397964368855132941377918475633850185329293252392348303922171495101577038094708019674831829625438525926660407895787790642459396963799962694745867374917051419969292237672885168618590181462333414910044820787481324902342963404653929593973270397017446193042114264977436124705887584595606407965317098206923113210526621128687077511746337926852060110078077801077045148777066035968988425802544886451095730219414303722692692415376897023188210969624047033956990030322034391013916450989112918897852470314785577399434184819125949532141540027983855424009406792977082139471816461410172307522948359394495912476061613687483944194079011890336337204942791246520388046150022191353385188574276741216217949131649636781492902833019010917496245419447204501523293902681488842443535691612118351356463573924059111159931023789711480970387085894882514616779513517258820693125088239712085530550269676873425789164587513177041187055487889466698520031989481417411807325727876480513227732131031813474565113668793036986359902775097794564810049102719208543941778863826519441666175709064763699972929332340535592247082731335382819520286969366784135243655688640306174017611311655282849431673184994800334345344213585689760115508048584198314470884161378214650847497417176558099300389794680487594894880365974159899297216961510499607792700406015319917184755585845701259499412611112821546588936764745820164534435432060879894647701484055008046112491734762764390222925307071956803013833161617228449255089287524928759495083613284219366088749174172886330450059594067009003053794140469730458204034644975333148645334889147082115745170711924374623633294729324738088312216704869988398878276658630942868383484699885900395621706818274495749951910473689450184250627428525556675431012915320741588486909405090052696780574508411237838766364166597474893158853252839355390934659883906245006085955754196532408696582858038685334984699199387849426289214486261902960953283914136694981279959207783012458951331704269272944381508528698876918133486690681054839862430285825968074808244647210264622804935852708146580116012846509480745096157943730842982910627535240828409205178070398334625630407381690509084152591575515821572130338666623819635058549647604417727837604634523098895277133814585790212471618680260409199702372752581428505320011802729437582720046806323977922272749962441357955095273570428382347074277573177949408128099142872293918021179473420338523822184060861921067552187768200840738344329194606558567758813824299473429877815472136955392259127211326345992294401776322281532605817165772382114498462703363895664364872076023109487379414007652451894624318061607124477018657482095625877309419826301501752234570708953975614748917022521525961726756468684611854891993089960288153483467136948244034447498361683767731079613858440257123642612371949959457836915073284604848204344243031595688810470262342945401174875428101364066014683167676886991553198705144921393443472876550495519963723949769774170849262944369122511266110180403273780085761095425434057461192932601851600885727047251036262070198928838732650433515496331542239872400927263318266438730443882022563404511336251675884058310773808755208852254340859900519775564077743446490943020726975183201860113025207386158897411068173602935905329200103965497435395119436809216232347398682746519634715484611414423572042113313461218943871047313740337921675471687023890060905132795886822628534451545821436288097553887143741237548454269543289160771570814853471860827093260329295022540361833068469222543878556365929726236009987134173085400394581004665366551555442177960386601733471390768753597242257107733597258398717839387072532143711708003254329540351967091584643255979553529655978873529184639190551325844214779469731607211182515074348794667759427953191482021280949182932196996516568132863414252048633782158200602792776344717374145244063972427113500332677207786209547855746441543571744014822492668102016924758900109307119112476680277921580889846775732868092922812324650087814969408056823230158274449735129789419486659325396248387681834024924990399774640282154800213410247274942752347767935109041834104676116739676222144393610837354422617491810417403149447410156134127238452349249118763007891041893547902568713617305174983911719872633195217807676864827895233824880309048314370612173540653008729691048660039712775664437100206342349819419838882584312451757110738530373859173321396481211753990698912805064193915245608468125660263883118740135281697696054780185455263821993514699987144462950079878532272490018022241187176871765170377467289368467240219698622710878238286391021487023236162400025396750428174909184878834150612315038700150111021453267549402429315734160570646746523445722393154548374684622826004639626327897089446346360260526445843894463490342335503274765009683103470325980763284631831175889356275245936629447430484427056931983095113725228820471098986516864031954646615519374431133454540006427088493920720834972688618957620584545418576974837518189020221655378467075347835277569170303246134886959936601967085547851722642870575180961054158260913863631800712319963226009652152060459330606478789118897963618319893143555960951218778335262591658754283687377461435297917992193886966412356314255030635902141905091672481650218793870694477268127534298969001290675905588187534322638135654780133969305161091582471443256484354817990055410200524124593785842577917454876308256176856716311125688125736862827231716475309442464615943361671619224182014830885524516149309708825441310796291801958692164883609799999421239731736498071644516416550367971994407861284445034190982890128405051224425727755289758581237992322064041574646863619544997686067730084456107976525201906307748249155229550018889157193027827162500072237616284420908077145036512022682320988430460285909869472919396789872685776354526404931805678624488925655716661344373381640272688500043772686583296813146987678973313739693015340066479843632369081869612499822726400145903753634583002033198359306105902241224205145377977533301470229443176723929163591088398906587153302175988006628409000176139793538795782608183471002542298249224467035906250600387727395477342338659453630527701198204409439834245457114439404535583386225393272748880960452211774752350275400252253314880401659775712836284067847913287632917335521240590884442910472059504708884864522240120815132555433771613012633334652397218636175666294461437062946599896013747738746678690935775524836030234738235671915624509577403217600106510405866864618533618345402740514369655647629139497944618075598067794584778099083807346578852237159640736545777726971740584480697593811533335570911795538676336173157030475862820137062652421187096346796410599731024801050739799263709103282061666031695707598236649169575240611484907603181782408290513094087530694547107531270032432869614110553190940526847733439059177382861834751233229500762033846623987975269387050985116006050988083301632952261472232607423786134787299438209920543510094690836603634170022537749962395976597448650062345546411591902223480191569145750299269721912500710199184299518689585052757287847910671681154787336609699131979917280093460973173794142429559166708085803741483752287854093903961694802138434958279777657074748126342412549644056444637012099043704056923682878623345617185788945567204312738290622558464490389192468489664888701895308871856731490336692975826620830033453944579659003805840754714105102358782360510255500611423331291955075844245533419863790796453742792481544442810177684868772967591017427595668460928314017668060767432842650170340024775380496065386636084665889973958032178179815287964124622575884436859743134531886672099123284235688515243685925005465882949309678246473244850055136552801830735749710209623862212098093610599341565955226689173209456944815598456872572619569240267488649526355793604571218900956352173214779316261989943803121944075045628602679444272148970424926167142247698318799269919487078604568213109072231479372931231396082440533053652626528785264084535600920687717857294885636221630039079158102068072077512312214536811967366566070964079155624641247976378891643056455508453061542362162108538461944865921684571771725590701384986778899859136979196015330783500799331394231487247905878320420478357705517267181909242862051570431083313657143127926439522381873686677288713743181406378697818487003871506082454425823085855570205267767643026798029246885751987284981829990097932402187779207711633474860108739892412321166522521527207445975722435194226747240505418866927650913824943808909786405282876793479630724487474337042546721517727238327358966452588651467156847376303325866345246161182078315234770949660005855520326544516182433112477539431692229625034131921056565212464343115173990385852792564035070728682707222238233217974686427670904286364915570746598993160462059034000686860351378609293348221687837710898754624009635986375031015438101356150852368522047455487146833156265299589441787879836685798548404780823916420183920311239968341531018912034882656893280223484530945371497391569788267145682598444262680048398776514671770408423643403865098706093243427182828629051689427262951913800287084748661136076741754974557720578010025013300094471538161278971486919433241350350926052102673905039041022845108794572855354048629087510175311743977435717519506484924578859094292099386797247140324950545928651407786666564489509308601428809005932820706771396461205795740282069108633007927631202278271193202974527264520146114205036403536152060759521407805932189351142289233557464785047615319359435806131965656102244407226507094967441460296742456738663615758470245832174363781319129814720316272035504397175271662892454268284148227544105314644370781829020899864211200943883073505253562890796669627108973944534841173214675614171324623425637339346534618444947708027136297874437300421427184763961708380205298813170323290922062991395048822700934393345558973307288237077307650322144528939399918977527091642812987544895311859365625777798572848415550850231938956450223414136153218895300394585284482059618562107763239224138219105968229746733835375908383485987368742843039983966997423646759448472342303460475600861251418050015072079478641781475137409581705773332002131722661056317422646771816179325722461787488110140299062854670792411561558570286228898241381548050980169843990093213973343076400773764074162987754119696783746402198785452562079779067437756691054715192515935380881977041189682469766719737616507704220328599921552706554218625495628735887418930974568623682183131508903948669351387977743081967470450200104526043589563885368559766029655088460710652396608759679495258921246538828915373938624551674966462898660387647222261577198521574286411907513787414194027434704495834461282330203686159879512858237051690302521208507288447942155723498593266581458720593428247312937345398037027393103132446083084166042400020595977077931074567966320790550865498107053860875142590596118807402434731021670498295303027869287460542730741161859408342441551545704567211294991510406290389023330066348553942530991761039185971361215281280422726136730682885725326220853555524195456604015643559384337299590526354723307416477009311033462815403739681331852745440264297163542031948412724819368899903343709875958254454006270094143657774653989704356408825550049082709245517816687429149563742821639521479529306792626971312315298142275682336295667329895588720168617847098145739351843883226429909980848419649619714589019179672564582484888064301346767820646321836822578258194851577887466794789365563815715090444707002259382154484982478336349492435944346921441989164886951498209384807573200454118781480778578527363276910248251843017204682494376644161719922605894506355856959776755467408575272959262293744555972573727549236075113712789189324055770646914228918273769760841378454835746750514155634312004089848199015766922288585729779359299153154134600066841774770771347407723523698226693628457194355074764668239425474478258892848581272276881623231679830934977986588203932286579437987609570230613098374920870347787688223754217357724098380087836692337283289390206422909474695221395337201744907698308153115274160918309873436830923355960786952460665456923862812712821608733515400188872598226443531204668991772321076436477273640421167165560027156542558034878037718743766296870443600633214184110944471068491280751812508120113848348577863866673080033962654119305987495794461803453074339310023309400290702206577749031082851636062574157876726179898972735554532377179821852549013245723177387087918878860701978841149505084608959154225920404528453555924602638893814317573923892448510091802688724891728340722290903230278240734356176378529280323527822601349107153676003535992453610905785396833907781077866870078653501086316322667414776441700896251131765501415009857574555375809355697240062245825532717781673651994010093811290059956001519803132920192587373921939235131279433447472895917477379832009768651593071934330403410872760067922880379919364753338101354544457394079366846194591880898259892513830117726201631898422433799443306383365124816608764815655580855643183829265891907486904894607535606408198635985092826931285445562015180292827900814984675237825541378742935811711301743827383815510349828469767795433666371586240534798779119392673321932641544028236529340392856705680162926708465057851032432531608851612695812698169202165794401981853913075652308159650928582163376955394175196529080262932196997992195068509507031015573513136319008137210932507153646720090977371635616519805137054149347862903962707373024714561899272130544430907416383012018070845433355640782722276206520633528163469391723903028956702270665150006287532225334607766380729465400669789362149868893418182068670453114032299402287132700608514926757940537825317903382476390430460638849840558190140925705006109084503637732370240601474521578203465153179246892484217700812405580717007744401839692066391573873367801799197823036949963972475174242918581194415673651022331154401266213118715886564553080622413528830055731357123286582492729210527662411423082968039439183691787350829288502075542035852509824341592493017006777165297787432340475530629053111753881855682726867566277898195725089167134600245118036755104683405434900738638560477449958825422808228784323289396932024722317576712748386239648065478275395475331798296649862691992181047404110490907118671245101005749825040860805713492189070784312901399699270343232692585565981736476434811124268509621553120561160171575870856393355585913844809045827970047396424328450949874284636358650033728804673263042159736847777649562375742306015736157162681352302207568844409600256188533596135564437098784346982589886458727414261169501050027648409646126426772807548157862554628531145647486391214054138326102002838324862560335621935539801534194254557934658782023719287823196846807619936537927399127686244645436819972744604197688512393947450720019228076704469345103625054733261835299616893502794333469334402363217308326598723967920861238335971443771995486452875183333244759370090056783652268641523292383694552968269559076322742951494165568651449027030900901261727122724358461672156704382411386028889060239464367404384478043372332127752926894126576744188108671982662317463782898319882483026304690964400194182812716230785550199365242610067454995922882212196650104315536172516252391388239239059284116874476579442160004483368197171101663416524347105915280445894193594368710409966693163699768039410264569624493574641478799069047747696361904064131072303650730938400539433364991917429807755529484925483329465647749570715633343238600939016224772484209650500066215010987368884322786494435832889340125958164377736540677086717382301136138282928997567508859611761777695975304360994521764511264777592922803164649647706156713488013226911382221686813583482601623571378251424633820390530882725952819655137165475946982150660794501432958482737700700551170811251621433301473659601195644998934353611734808862282963852672917209355037736294741644590111926628018010867120648904892266495379876416804725228553693726056183134213068026569362095362312325686587087698355004422289161012478192467098371798916939730606919069913790295797135933933984353249320670808475494224875020376469542967495921716824060266309143521679985705210723090129353321064021054522728630378840406933361155709494193351879707697226176152114102832390189823158509693484058386877155319935990217634194960148763027856275834659615334446269925919094995808130938093122479731119228148424145388545989471299571968865645134613545388420968242537308641297700136422496258172556087197890273835212059858340928401901075401791200516867067888220105528736605353154664154927255822960987539884996184049703783093679180760005802106541941816505120944040840959447462140743408571427337379200014839859234746271183639253210378556455267677868810704373577894481423985454637407649712060010924824303696995401708237618643020515202514157220945694055309114045782512312435981893890260952183430795736876776034645396075341743370896479555626584015317569563521329599966243182504183716263359652193810896856987147510042508413305113346348059715034535365326085042176999116728438232273400163278553687336734423696896824124319345788886583366679241477294773096448128966252073764429554945832939996695951295374574557576726435944423806325126344974556808095491235574881802322588608934354148271550477654088398555157064442092485541348563925214470359338039744866023959152738280756994905609898215988932923322424068024284607068133746058617636101688886751135952779176119419051799933784481306743723492040710060008770617929112651959270676680262675255117062557884741341818540790816319862751437125696801873570984993842381310538026169042689406373681375818090350281933016366190313090232113523068073795804072722072105733634264980005438284296408959583025638854231111597158543698418070858349571663675784396758124777000780081311728464749702208886405158477764216916498273117561566978157940927995562879284107982039179703067668334909892084691194689914861992919061198741581602172965692781914783975258347050445379957528200831557469378765578730420114974794112195720182263784479995776355306521258826960086345561006852790805168017650574131351803131469325827673712352117118853001766881008146119222741010051199089495697351449774049870417059465313811299283064188597899048594803328327681306972056211314743351343864288524086760344674789931972015523325894546975422137006866517619242963943254977649055162366891856668807603641192445924556208472082820157945906901201023614594327851118389012635860909929156401107653169712289279988527335422309822661133638641699164030455364493446749884871561652383000621789457446583790765371836500836055476924059862224287166968197436135010255626355399093064041271670259531168851248658223131388094234956454040026107031129985014040039394171450436543631137992025209414078782194111239730742439547600151081540642430492097283393355896915461476227983715850118015048182274071847706819475059074932053432035640997502126685495168447801574298761812311376780145648568848115497668668912628419579360287075930430408998640926005549293369437654075893437957060373788637620629926764425827559143871734733852000226187917976100246074194447703017840019833377084619264137255848351591202711936206505151374122701310883467516845971290980119792033995384189821525267806294868803568977386543531034675218159034338301180614694079389058263205243553383382678515180448231961370399837895592533797261187455774115150233623570540107600455035449767762448605524801947977534877515114061112834846242181116603609011286116228733352525552156535678160503624431576383236393860964767042388752122929016831367336080007890193595917285944753423993553895147849651772901367067058926562022654999524491438149758485644342689042391454005170900528753037415691837966014667281705957754063217702938073067403970673933585143445649867557442941303097211787705211388521809850866019213476886211749720913214218548918162495805109018674818653041220936737639694327859956718733925840159747013730649921129116022250345414301450557195601602758043747975425268253613543338993584742567827872084990215148905715105372985630304662500095750601728096965130680772885887900572819012926904760314079369748091298321040161300297253788374634170797756591490318181654097738784043662234830889159026071373169251266908877853326200511519927914702223714702733194385067742772116715511974250506897719175633050880437897160496422990852058504704351244789070135747361349389741864843129120312103243109468742393327423167765166311755408824216207640331746346014748648667518389804332346432601840848245810761157245497700991148648044084257866040411274397726951785251045824074013604957274289426747843697306725380479202693394473000455071569587990511107642711949644069052162163812290527191090863278820478954599055170359886297256959602489968037160904901136963022964494892108657554299024450516777675387413957522978259760474500258302855053821359774402325446017606934877593381767373420559527108865349674484719944823337634813501539149664386480359905460254293796228519602622913661280536755413590634295769618515092836529931395390014298652120028023006232095922721877435456109469624081089846840728538381475442425436616330253806553027234532248368198041997483880463188437255437608183438870665682789072615415960675772155131612496841144891211542926312740525075562327337083924473368408530864285743842062553933244767580293597158288865777622541791206374325729914206574191464902530426157704327898982974794474363588671725416248991420043847482040898946217679743083532619174701235216366378107411076903661814151016037681395714538335908323460298964547704444350109343224255009754840988940231051695346641900380051685020987985983197812439640345606148336020688071052560042244337909175495090746375162426521929461888989010246624708743506543602363249609367242446986204894748365853333772383741987709741972160767067370643559852880417432033526526646772636306682848461292505594646808929356513010750949695070358953017219713440424838234809184620709097917576590911381021056301058315631461674813580951337653705455707650989064822919997555905677245257738534730287458117111268775045563996545399180417663620540170945666812639900845066945101960223243204812337839455185271271117164658905026862677876726021236907758263702718915958722244324680506527727256430278982231089899111867066281309258249472238630047189647943506488000397966578626837221772499138348320296221033981330591839255565759359636172122247892406441581087763751929976174245382070118481750579405449256478816859477834162319249412405113062642110438187068081862628248133024985820729102719058582658158492368194996684753683353030070276819899895458781575984334263488495211000447322066601805133260685819750136747816238860078024504112637927559605035821328670037859506586694891259460897419125748189894333434740636191926214965298879955432546155819218527489742314126977380065395901839104244585833443748884101843012889834278784497368754270581802700986927505355420040859970939981397224376247239473124350692519700728467729049363007072531212162871067390933942881350451205829034184129154823683523992566993999978154281222606323866962426983980040418298745021984666136153074806432614091122290799810313677650718650054548390833104548857704370501757054511425596223156045230475714220091509632219439299898999763726319606239933823890833956335752883875917283512829706196088000373110585131813578149471663893133952963973263862682150669990194598192044272035686673454722412426433471792412942286456528942199917009795475683299857770939422202552323426172419145255379981597535684037340242193227760954430458089141690744830220334047952155658339750722458154840699307881762026498912387730173679698313651345000473611575638377003488229101189819172756127902392986881792853804665360241442016461039102382653311805123755236009291612835725656072390892356304902969626992965993679826348839651854737070499838899146407701857155753992227846729096220931329092161540491660275953753166123918072557712813274333456664293077259754360399785472402465626524339432973530401417368140864034522774937386588900151734131026657230212884242565722710709532092497453330111205967542291449658539595298351037226283975702881848730154790752336450138678050635719617724094633406257193509179237290237192582855354570796343027171881917789659601807107050042076952552803443020934538519086079810776387867273073766980781101010031661059642104893248820846857258111631305157578776815332098584507122914802016425582917563797821148632584348460335831203109831004967495422805753372538464369196865837269324247762028746394531293973528032704192010759635646827701693526704246414646626249166965539370538025172747312636072730866830720638217236129329628899351126731641501128648251542733660679886464011573665252285202513913157158410201681640359255298637198048141992993977146275874350221509099719789494771683120513420447609547710117989138039437461036780743315489731434397871126658463236624341453884678543976903937353735389826784720936606894249548462636299177885146325392096432038404583169836574352554158469716239903501520409363100774312836924170351772943717312310929507003333818653788149974161879436765499824338636222860150694378485029050874594487035156069501172718422267875068534820108781478841941366666910662955722280270809390578485321762680365455833170840299640229718377734457298458116321480237618267477930425433604012051671887832671963590909037633182009458657412451009685047916513738480876067348080310281243460673559240686701276876316149194365001540307959377793635035936960027685798621977582821846463216345699303745594213516251079451504960536981011931317400295966869663789009385101622384133584727276145502036322854839553371503341885705968875359800219344737954694172376861813097052619568635059613458766894084645449038775065797513085136829292958866586724361674543139269171981122878701217430102691055989512103803060568267881663926143308903061606519172077450609158483936973386029965195716908323916576903533735090893419482999633300115450467097616859793710456709408689742877446640679654188601068688560072326163187602489498009385701123803528437477595142098789024052212792542590706752987432944494342966773050546162770929566348499764606707249587772778063043641114536325223584201624199567917469963820648583305763103807180884208341943183645755779834683982117860863780872722743837625069298473191366673680600272345849941166545966195817441999981200503354388587052984950043947634437532228757510753984039280342786121848057478509823568224847004361682862621161680259729392127781904107688440713967877729118023345552626679239014845158010450547913747335442033363340330643008043044252079766083317812665983372744382639932875768079872248877319818676930810895830518952886253868058388933910608422571367338296121048547894877586311883051817037301151645211167491093722641825561445325660738491520469205956653220627407609990696844561028229243683474003719289961378494802647432791442526869516708780571528285157049231043591149199726039379804593287216877827990554810285468868394875871708214296767864985761652445421048564424656754356798871949351626111449016217022730914520253768675304335828549645315176132071686790850353462835237548399354264575438168378563501799566639929338619194085015831560697510825356502493522813837670190448960373641257805550431406511742579573675836185946179338803610775311763527475234288068066113070853594314189135337436597535693604738988176835193496107482417106292176788299488298840325298139892217499833990587872229842157907789471716993234036146622894313299602810020810264094117272383441558874641337081948930011989959562719272642699846890484677210188820568019959915584644855838520265587650143180593577348312335849546513082824713185789685429943510973448412276562882216706801348090878569975453880930682077879911655413064453006845209849089416203648177849812312882246129792624750266435219821980324421176887882252904116027977083710338430644847002608116348594431587665319760669768578990667624300203067258085723596362156741261083052617060742511327217679352112994181278125212499698587015490892263178239555162955918993949968420010778371301578528750917064167891075305126381447694718848035822635652240573250235662787174757502708727511869901298706797457745016025548400246217899073019221548900593450543442092213460282117186156117196567245862597429552700208861986357213091522904653915944789218868017069379116396550097507459793047995108521600241150035505306994702767825024267852839094849213262734834750304139208937875156317626325180203130550198641768373971634607073741902174740930596532210974097647795385197844008457542341914046884325808484628634919310660083038763344332899446738384263109799009487485247679550971434405559469883544651559542385444932298382817255656898660927388809606593870021517305004586507165462232396799552858984621332654517586426442707182075098564620406172150545258629414265882077222288419784347054574066666500367375547695532245292768333703575648631559934038925726068565090590732735924804515835203124002809271216542090816585258457773298775080176779485695385683610483333963481178786186280843914539130412812081650860520550731777582881315309440312051438099467854209484700304669937520362522252857268946318163253318901393636647567462437247080495450133782908523311247048798460301212347077693681885929187990661720563488617233437860834624311725438607637574199907662432406101793653930978814140986238410849310631577837286535649362677356902735645683792413905218105309219490084951840411485942845391565714571954956260931983678808565223964981955603212021575548228589152415716001654303051085579346735604620639934599795164793290937535705537495964476521356223275299446676138926907775903802644470162001160053178875635760421004609540458155907643125906648783348573101536040256082220494394079606649409068420669001770223749592944434230220554094191553817564272079611800427197012853146853557346396934072380786692165481655954652632737438949464986971354829956073020023799022876975495656167394032953030958070317736192045586336105514635707425003140948441695732586750120593673547212770985775350490200315729074354399576875196091541629469272944971806288719214704444736018829363505822673763488266342418775558000479512304087493351444955108920467271089269111465204680048515302655765242973827337724365514954102360068035456136178802372919959713087079311432241109323670691903985958554194846916245345927983348765172609717837199235076288170675310880330927239437506895191021237833142578597333216811266389607008894970994263643379446200722296198800051980514374319333717413474386578652736512985889294942294827373578177459839853019314913283760359163549741670474586042333025948098265592542981275600355237237910973781875073794782727162624365125225061028205079556524113902362483930830005548423525961942574219331733218826509477622366105662290892945611423830993668531890078382367521840747032879497809087667094209343212674244971148263004237361790680941708792273180173335884290465480063722102208843771060630653758107482592476382182127490596974167832919896637158931203270450088419238047003048650210883879217562850743104746121139359382923702442606879949353155658153298495190951445140104124868234315562947175687242248663341017694522247993151400634622574061073789661104850044042787143435423081698032836882694491462935069868069928972167402515348371708028622831592591657058409284242363474231122964749569371716214204578592176883274186596439671681430162446765447689056136770538606528266519011552406377577315910803330717242043612288223645865454706076219063889988494706525879329531402933392689892936269882912994483307016357164716353868740494703732721706520590564426845173639855361736322795099522135110863283119086019108396734648542593543715695128824797737582966844344219561498100810780320717586630854839686449014653626978653047558736151007646115614671130469785338214507940988914261560303722982491997179780328564640520827157770597827595235345197867430662912125105666436384895682708558037838875387082537230920076584917734257448514303864764178517173929017256650059588522133918389428435849262342854018057224077457274926747438421862561509192491966536637960215975434251363410405573162418823888576125948851150417522526310377556146280101324927240608147134227034143865360533709466069016704604272226137844471545951418865058421645517670396095292489630379939584098632523851973010696079379793015157079360484942620038916340068559661139570363822869888969062174848251036586535076898291122788551392662952540653612334400090955674292053025471870320012230798860488542489314165982547139251375152695596015018476352891065099879038015530628076986274897176271852039330573224160834348107272483011530292285819274617458233711819803037526611921035361094382966157377746977225830661294259730464502854849222554082692708372583023242722127984795391928371877759635501711242049927570711566137487631968958174022463600534945297645074002649296165034350678024813996668401870517780837662132252514001929433442894568116144561519403032963132002210696118466875050878596767998089620433290537637451337765919606090838796162515725516135868948563103501384830582577442398563625068788942868373846658107902409200603770844881659173208048624629644164611868333602775530943808378475927736102999681915029476913168861400165911026259449835931192765464566085847932361190588301716165489554939934619866318130277673126696273698087919516371629560988671277448129239756382789254740697958751455636319612649627276016515109926353052586810490672976355430944653641496405373274605395109514354312262104738102256680918704331218245615943085114296215844183569893857656476163699035573352323589503928247430647811644473245341491533022959674254200481246089202801950496498346293329684307864000626942863957490222211953657055562686936852810828846095922179359499723993431269110321356103348153607900230344303733742019128048265033478037083836088159708501944540128474805130072612106587034598651901632234005055900391313862213932999056151878777804998163723789696026339757521630540528565363302996170593893176640326943408769773914101095373493535619331937796831626609083149468142684352886692117854006153239697467230371347388464538035943330303055381880098436845813738757576153755511885589589910396933940974774421911598518957982229332409655866716894095631776492957039636989876235464711746183236704553849540198466392696328845962508632364068691530885680429734682275361533175204032397560383488696454292446626272468980308141265065953649623290403175850666803704963301113071302853177211154675679902908586624760731390765824264822744609651735964480326877088025123639168516299524911210269559289578095605708752060764707407594127173414604004948709007620090012105455462988227038475119348708139275165025910396832727192898814420636602342877970244002581524888742737272862330819594957231998383481672061992435004033593521646032877876694737700060055010052606155815295459174338610739747972908088736637448766612423513198036185497412008413121186899000918879969062873206458019201523085500273140737557304287058450048644381731036609945254673729025778262707697532351625793682322211426730571265738765854427666871915831290092499558881819844477084612044438784363533512452975608341963996324258257780534496728772986056955369955257614001807554949506402417516317103969451460820105769853301946453267276316589410474315597603715572781561969427906314369426799974547685997439655462078079761026263577448363208603046252776116021119649249095127856858851332019450848920312471498806309012020631685063279047722951568703968094854109554583971391982621730940505108057906529800168780764827372622382576665266865679167009893033503253084581736265523373266639925488002874423199430311535684395284852126760141815633512112722817648693113951058553447288339420240382173388629754350682648467050301182732731983709706939752354657699718983163198615836744124097389492936360439754300756780566008821922579684547856226821083925165793862082481941336699990872264197420249510660009078437065784522109477502991682363748288122618939725454158764283319071811254346446145208085580769355164071732440915178592379216161855824747282445157057486594754778947043151504498710204027877168422902163654161587519332207622253783180547402585992532948452162856458291761602415720963037722917665182138267218204393595398094025172281819532201037720350180853667477289026359476295332873911525727952962261548326219904440670762379725193868745284757470158678079945618692530175190796694779373543304286240581635131439750520992314204015138561109335369531671692731697854290289839415035285574949238318820798299724919994876352667014097131672610742764360495187238928916173893139922915213171523505146012345891974267119339577412912736994287537139576059460372224978673596328679827951649186736995914765668572730227154304136191462497179238662649634014296219402172433190069302539936009037570850351383562330436776241968578919669839669047122074432832344657241548350296256563548938069983626656238706568890112149358653088635857795771130236446167728345590335514250401808964539504748032504035345395764945588738823558478546718306719783287112521520462670968325478417120690203240304037334982051099714820450643740845140210195898848863810641854965489707803416162682101918556468937862942720190810561652683896894127352066596235635835846100353066417889568474812847240918316122174165716667440938676213585406843353661044899328066386787318622579495779980966488380093524208199506788744316653768982206829951549597304390116335117054041890630860952259770819193071445960904183734327144413759053892026688132724667964567339399146652234033805132241743822425040530756594192136996646550083425761754493259410823388919028670250774801952848571494512650286480687755295767643884462875661394617859251655144207431843366489130943668826234454285902970123253439305084182878674259800269798708426971048437452595910689872529851316429683577229709119894932179687311119117642998603838226000820527188888968746360175259532712995138439723849190611280974949847105632784397228644130024370294636891813566331256842464869651871294008199023714978188544068647571391714843663751051948717541886951225206704752478231207162384006649274218344773013486544569120970894121647566385157316898583646550815348574215800910679682712219695834284330287652260965321562686512957171115409634655292946263203998707478257930080824060394038792183845278676879543198080515415429115844566152650002008470281239358713871050099597290152838603795739741403538642047048964542426415154213717264940629469852870153678612809196389127585683360163788481065267439654262704854058948997282107540232916332519490077275123934767433902192512698731010858024235112891602781581539283093345401039565856669380711331370381537995448124027005271358562366581998029425779033730146821042251345304843778265127566084177055359834041503057256483817525792926734211564946203693201832360053963764094538596413503586968789953386503061436627468081803322135233995781830689036455002813776933462200477237441000493214333163618476906224293022065185164502393866714726815834153358719186221221818800201677544831766067186425582670199374258493309632458607550677691333797030631593564948573168113536972519518948302341982989468135069911093631924370503795709754975746001899322151467797258164219251706551334036136532044385449854697262934190155461618200442243415422790934784089896002243976321594428610663714245586964787382566799976922172479389026701160780118092530540417114687674468856036087586616032189112571049721125316317274842370386633576260323739096653669080805654837107096966070785847397036773636168061438914686892636956465404548628623601856583555372736090016450750872688784140914462714234688368115236264214958348285037850369106728237224268439153210022580833068164802363258771510977561448210082958170368953826000022314117764789376993711830150268898623493522533536609321275535622921385421390634574963263153124369074367145284111148102195254228450319769829642404166071964723905740859103833548248347336697301232785394496778041488840116195329448576566148984870031584675257602126232051400706847209220529172358031691752299916539934979359188448581163699723796837177355366296126008243766875293490849635754421860722115640504695685387723537524186857240906933341100001315412315260948192761112924223061429101902780559444887029672970194464529079040239202633386197884265340109665771454402575691383517567556728055581833490722202808087253719208522947804810607005880199795844909945662838134852310104268250592560296380277907156678042245676608165641384418238676264870272211991802917797494321486696547976104058622386252413444925354746262795247042464034308277771264528999363365444835844781806069114158979101779872728663867862329623766771412930291177286357298278087190680880905997953210942929822460287413835865808858085205863835744536824962745287626432564788606340893218830110329403830129210897064414206597934218952735341186546733376943394120549731218125307889157141618513189025537211939195821321611690643084059276457241232951218367896832591923604242136586721270836215723090795613759133638590223459172147260389479718047788785691434391007281131285515830102468936177320497381013060278809590874665915583756592703948764766072225313043549874878586681497695133721836884114003181317010776560448613190068927773211000127111606905304424255085291320693100098615540995827152558104362540542603738464082418746163940937956654953016990316488392439960260716794347876928391840878312901145386623333175358113751755984695240562251014080368557321130015608608764373740312886475165645688616739070274594903127748757329209449468718193897305286253137359217324791860983751504759205230779874044388121974805882081860804806229133417430150765587608654983691792166996756012214279618995744212801635711675006261120695414832841328504924968267841495519196622727209614406769966073455306858738557451363541180788775508658953099799769010821637712911233059761444402701303016575384329907617196966841741517154445722086325233397711679535316700390222680961983289595800691392409268394377104564927303879563126294621312507734343353036100278825287969224694709577835040997845604215535806482849778955476134528599399493776830109966553979663314594769647044448014665593101953339062535296813310210663101301554934439823023226618560328620682188505050195669183367778172107225940100795431578962168865695398439628883572381660541775575305094280271606653289869967281909020211671708172821036896114113332049292701031123364263255567486589339993099896036291164824524484508659547564230854312977363624323902587779983971076621827033205898181885700503124047582102184905453996378031150630976503132405999411888386323215776626442951338020380492288642458266807903093722463714571335875970989953133773056209240857327015870601502893688342490519772048728388831239878702198528927146585317689079854081894788438173591858804510635542791201096576315745826339522718636693726444037065318309829318268527296252622617028814375829735437636579802159858496554302839797492834213684579927696354489055145912162148572096165907476926594210435273475323002834049771087041227832418213972719254219058349312800677617932231067468378749466163781227287782706096043012852001802775827423814375341328626762686730398067935325682515224987741788227901581739123251750266095916710084585011211825264944191648618144874362682137900103637864646921434490053497018254770742160649807047640059313011262043391641893083245210767839717646000216618126762245425227649808489574735627461630808510677165777774637859479847009645408718612001234541852538117376780794498804638076936276787199225556614478376700340900523152887987363754388111080803367164678732496556530862812503226603143038476708733268331990409035220367636588070628116587198806225133151468352670263363298392656934449077299468108779035646587538400904446786447706851545087265532261722666912119532755862686104496893508101494969790205298712380562801294577182933298379078312845136579175962814551512768579987705313508593341275098770007762054686823628997795632457040003913360473118363470127291011941569640071937879710188052206862433956817598485409559198218450027657747659577351934326435018822224722914886334619595599939024329649738708011243395894933753456313592875632249228972042142533248913369205126360557197110357187124124914773991668992650868398590664043306214770775655486394704070263823088031663126351061360679486770411347597400776161973243345417756090715149570220847779007262001980322331680787449015266953297142991374890170977297616854404415653208316691537029683336562425330010687581741157258114551453122571860064404443359846554979209805980813752033868699237758408195490052807832318464362645862182613965302124703567660606491187226991586986038425065051279973649975472714409413346585037104086480677592989020685451840584366644992153661793824456274769089555517644127352469518116929890528954951146340555504124788868998482958103806627134277769567657083186174820117709273953878427241341973543553752529542396596823869897809033533141623153797374822552545822083177258872183342364507000313223569306258470011852713022635722257993170134188097971003373005264487732668294721975181562278748028744383366008022705720377350000206949297658455442130212476031648544370358358250689609255314385755557572738132077085064368552828440732076375861728105582961225957659338972331551154054376523809843924003196979891743451571123924476663254255165471682423742825033221646976842427918167445181844363751997179158522561577394906272911728706480536678319519060224023869118967674843836423815966395475515465914304385196177604731958408182592815420626968273943619498676251189457842158900156277845622184854248973811271923109575797538082725755094628508794517610190306178899858284625664743083261467807998479097600719756316716333484697237509770887965238048640947737186892292689253173875301081354052332125963964857123331423672454046801566272166990547839318763453842308811403089495608121088678788856379614171460135376913020921393543174123289751043546340852365229065206323604261106483609854423529887160546038123835230847584730715526973817728011548744949364063659675923246074607420571043361204520518433497492742741869177176100337182158382984535963372790684942523952712658045256394358435076300166431260248917273485598632188921504115099261344767227847101100907798562380922156976520222348615497987014521792628295122437284955207425731427162330675523212523265240051329779249638786844803498933479803678906553596567959138845568531167701811428536314033340198336111570564349913789171690653829392660688036209101091783006744554145926002682148622013351956627595778312063992470058857929855004659364315060182357004665176917456772056095167195674080809568942495246804941589207007547354759862131021141066100175082024281841040143721697412577333570809900609023563553172466315371831608476902098207126633501282479179697476161854521499820637770556082830895189947498643015276270785051196963010419795116889804067950162500467486268552888646524415142945973408241010577539566246385212649781961239028448453544742662521411593484262849252538622699502625068669864050818656445206773304651041426829198952167703277065346230051641442760125745898805751573343133375850436380479759642886165887123867849329162797722764003920294628745296049530526831755263315169330531837008241492051859508724334709797223858106461850167975123061633096306065081469738767304823938754439959812371881569618320388121062186640213703473721373998709243030892259483752904585616214245606689475463818529326229542560792551970583973924691089131076288157521570624923057629667080082938363838269605246317581360443368066968525272324421847558258684422793472172992146492494734469409199158384660078349948064542769429782768940123614924886952576137359915045527088829434703395552546653548376403773213367458421330865928232257294676296808590166482996128696556905994287394846297076566902991577634069414269952607275862010203849589418194072667599169613824058247084648821145383985570945778705262759785544063474309706515082655120230971605257602114972418654760958799468524172286115926949112507202905317679436774074666660021939660427360359761850754812976831349089986054650573220833439563311398515532430133061012969530089423217558380058687206894812647079189413433909823577301432096964070742833677736625847735831185600558175178550321232248461854835929216080751819546733231966279944184521200504400371112547257178134430343381311517183507890728146666032998675184085316725682977394376811591036859990899113369187740976081471337633640533734025916247670158238247750440988462143720450558922410151793703034383761654846290486549134587120403643342052252881267048840610786159110390813213679327347335517990101187829064946878007794475475930765086299521619432489196885111456521184532294886882680193087433318091372169559088907443960811116037487709313820586526918736588798438462829864242574618052199352565275753838209411838491991104331223018629678105516958834755356152681325385743809251358459771390704159996578141247685615028763317257138268668206125329259750314829799492233058325419480792722516801442240304080327966818710805826918166917241168361851342701461069779567704745543546788360219684799330409614660436299357264009250928739166143458396605891658445336311010995115971021907610155874811766731496742147251421501532460510300568503317042425379206480316312029919093625192817942029427772687725906260132177631675906907927157265226880864298684728576786962489005916905863000911501142553056294744763601810769402214053166476294518897791939174582746873080252339697595882434009136760615551569240028330229350098281029945927750270699294837694247755134136876435762423945294911706276609494426595054073632373950102743941017598747710925605578674802850845112279578828210299456229862527987868421127849276708118260767054650266314383226037485769931822074536991391871081412428794723163111425930662112214537138931985226922320116874186673169320941968118802769149577508396390305348908965119512290898740098706757097845243211116598566759962069523710427179827823720445073027057002149993690329939528416759234760653086199445988835638236390246090931851889609773711091557028337363623442835673986780718255335620507589512877254601056562260827233921020710653963548930489760204149434846898834337254813332659820695566277764129720025640129260245120405403805573573032611702309160587944125068969434213965985405338375135843210058143342288781805810396622953274758177101162537615583393664866110967048076471652134583119499267770743959196893425168589451794695411392926716030088550695612954083246008076479392105743424199297915717482348987824526177626336767262550606487516634040782660359410199451347122407019977774389451440539637725643460358235203310308714356754220506102029043958700024329347922854191721573627341409345639168210110012014659421868245330434833299952085056362992647587297937874083697261253347358859140818530071608439827055985451129181743927298123193024121021859023493952882469826168702544811462614176070548002020808107559375779783335201760026335569751805470081587127782631343361647268628265087538465044680043570957833964481820477694031899696050314382075527868432680636921794997678131021326745007044808423695495202350795057930708803348909656848303123602977477168210958194287899101221473293322296303826338161857219016990013899566304100767172177748685620817547310981789692798861402480664190527307352483252212026175190972874313766586944402692123241704194918190468212998174998690155793110363906002161433462616247656376437784224894627867591081984623101246869712163944271470753904439646917601247772497730275353835700952051759993209734058075045560397243524158790284170663523272571934893335336529380802586463274677678616201147754883420064344958894225986261463476030575508153678587094074727455186624911131164054064362798362825532253545858604022985312341106189190486123932860628788972305416415761129528419808949464544424324870428001738350886725438405955092797372405969429025321466944010994247394753326160732930350473500122386507887982328954701852378950085347330460727615291717259392229758322401186689298356127995110643003192628263215536469031291404817889446319376838575949975181626367124270815983240847311652453145523951078625083061546454715017306051697010577546871098302424065359002604881685059922279076051553294809795980343895279883965582243076259292244863091058521758956711439465111397405781586691512256610150467099288410399451884104301433271003260158946298647117458013946480222316011294056697597785166894925336643073337576778715816807432778049138518702217379920837966391415624365206565745192510735246519191648705596822058156647736620512036004810517685225353165975608513431375178362940509906481260842210565385685456467998831397535215684772162192405987811898355275377728972314632340164827022341460009324236951569267680939372749435927522968001890498411144820402447240054733630267247771220116963844432502005416207563890985600719581109757861356018406447164238080115807445110873667556941812543863954804102194179284352702593847167662755628637350120787188305676166009769415452601169685563631430936720897950546774041533338146227901649156698110396643967166135096158741981325237768973910840269330094291303302415007201635070008361259417979335066438100389665851509394674690296644368997884981157368795710236873822296558805202169128960940399657514554743176863220210413638644758411709472050033008847798890815900852602904639372009324056269079542492715370807022155205756351709553445133428113505432051931696237678595648520134073094859170080999756089746381510409079154153668201455328841978425011651673515364992918338106678562508188723507826956158367351154881222968183816301595228936278334979157931664750232772097055694151357130507725701642394225056936968412868958951643093235509228418333074751688925585999100680790240037172084149569834448115297479963582950406264374094192017172495929008196493998744342767666101090233594429628785867054584661125081380597647989522850193229046888529304980329859556319291053818967800625212390947633341542301503251400383197797219793204452371105956448534175773214986194732093681585202764987589932485077239769288077602433698389989352925735675204655898871792981618239183467445030278223082496945363691691475961568553181816420959543499921617999779819692915775646335484737216149869609469188661093065462895158857969609326750375410006212127312341941560554488336530821718395403213437836568779560849084564726080452556867615729346502055885249881177425524999591624430129068070955573581463046485671611825364977535263295179240195621568763703788211117554004569528815999121594843463745277292833454509218607674776322146084607861226845067040622013897315229909663385754817213445064343124211813831413329474160309400626358206377662437470734892764771484332132704432244695530421882698333234124326658437968353763330669551633224980537500066832409607996536634670924994551467194078953722003396212530907494860530851475863057384700857696593237113662987821202026395314805854827209039886852677149302299003940343049810811992640243540638460302638424387793456316583999160527169297454023511644584771966139736587483435708110774680205624436669055076896058646748816749998217402525350021016609262119433878097317596558184748681175885157750659750349367243148866115329671357064371298332237958595998548010065689177234012078574391701042583522318111558497217782664655299467393734071544280663196435648370803667978424994244597757928952675767808417740419589247675415238376031954470359645508692826336867054484329411447602887634054572491544577506236315298445106508384757602745788121974099601775965087589135011445155269676135201726789186129147748181968919544131043075957060548337130288190231781150389536198044039912291223893649021237697519032230848669882219106744800203577320412674571317116742616236835011958089658189497686358868224415315351065229347212834320291760435223947178396495310241726271969365133010701188217851234565174911522134115794279509900201965170065612566962173306371467794813175113168455781414012361401583778161904394843506209189436123379365290378679041537448590222744069002073852382347053352297321838760995500944231332438951406233322213141873354578177958655396342605037793339469833670442966762617886165960118521814232193443152001993237065631624034709207296049153195030806516510546158526842025839685520298286677157412682627123233050736345684873706403743742956884848591417975706403789058114466114544695000306014296568200086920587162032347689460607462479408004047633404643534819685337547192593504073856452452373933115622565279052824686696821524520363543047188041908731581485795414499769849369120396263876406657677643818317562050023346190776062327101869260515998597338703576370638753963661964551157878931189514519863702291523376470197345580762862659935169407736890328643478359658688029782130695460833317328472913517776893168777034603935740761233074936036617585045553991252463766451691923490917044416145141180615266999046733396589934268005721733634414904152039278415213888486763783388146343812960328671356901803163677155330971457713837240248936066298136813658673688910479260153597121948964874775203344116666120307071611127061102668252895161866761328448579648876980510243395562283418997536685259354199485179871371643758231474148650093529442622308709133323862818223013289004877600512591222131700323135663582708591478251869907269879920251843086745946714898239425026367550620316227474284345402976599331776846747663575229244778411827967214037646870734336407533702450480664035604690686493121796997900486866313938631850852126942928640987162038437312507387713392691199172385300442213617960327525514017248375155898361301320794546345895711448319909732808407900751493817038964636683946406133650195363748109721834674015637478754159781298518480481352244092277369269507320128811922308447377579019573078221939966774474709389756269422144218116031787785961891224484052220907380403950216761670349314635223017969248143165943095200601190173012254519022636802445289475175436511382733339559597043194276953867135374796365695979219523016929411773907257502843012501716653847139338603604300294515315363024096748227404874529038613302174402542249127422323378260430616091073651156544917684837226501463215022155831984761714209698489204980824790971235279995799830593937511997405191897638375942569232568191229319058077635582351468994433875053898274121936752433613681927919330173622798323847183885614276123675440772258282103823130662631021938034666854983292762681441533717120461966231325916877849164258845005314200021134036719067943599250238408095938761668445295766597422933941620231843982990869681488610903156601845571729586988726652161009003431280548308805578142284394445847418080269020627804320805345992562717518434723779441226994416908301193204789908527728799605032968585725921511366774789940066468599527115779580573734103451375721301525842219782524210038837079257159171721578274537948606141188169583109933588658859734523344653923005067348146354870415096772929419908235967467028806016534622245997761594312456099483889218972318687336056672580729963675738881905346871765529457657047477188059209171007857995417082405825136006072245397104704259481535248295270864454948888020093198732519128060329635667066929541989475423025786613849489293400714697999393177826290811992928271140657640095638744056340091775525220726457716462949466696983405865725563759498647261954605395893733814379033928239193112692147978064785458974170713429285281671580659253770430668603024918295848537029328544824265744829508592498740640250701555441438432332392492492991029611522735494917765748095057440262253840704788027516377838879273185478569122021950676655035244648905057714732630614816046232407774437297871860421482966162524562833685187660132647049110085411646265591865159506485890982501840103137735734975460826915938090617653809557435037396274391077105514680770917205664353654147504918405100795328325069229449060987545033986801798632845646717003005043727838509822287239497656383666311059520173875043671950140598232936099381834603114208065321767729335782455647351245883955644311750292931890162520896295600163594571379685167684513500339202180777390994082844259841622908593332880236269308502224738661883884377457467834650239716860380008358010924210478853883733058669635278249708647983186864225969402044218536731696854026016972680228917720940445885229100569906196797268312278626064892963989946827205663424292870999492533813607948006508132077634130523819245226113346198281470093537502138015329630948166783984711413945810035917190655341248707469619468761349988641971880499339123393175597113497833629658451950138365848513460819201477570035048365930906365767339978329800003526224316691646962686073681665549329176459482887782076196320090821411472346582128938438145409682694237227030138926465508217525870761316662263255106767317447710855941060779482516917579177898495521670838991301654780413398728907810650717609951054201122249322130386443227432532137823903623940892516706976175504721219271948346000253429331913766378269486007307370906386974847402194585588653747917591269500793872946167476673878114965281377275200013791771200174539150007752333698934683204626428685153220761005844855454809903865222075484455795342783724994360503215678127493543721516235985905666379354349404038744189684988859025224069358320666137388609985725691849169676043828788297764633877113215300460453435275380828592606191104008021793627829218814768281053655983404541002591205866491502413994779015388377035028809986542364220696071411536744728645252471897208176129728802603390578795232173313733870468548868507195664284269619166560202341946945163092355143975761901046772861370237260092192381189987728838027682344069492224184869117055398746608200542190981729443632701067379670138964665085697105301033939869333624085989836635243582809983716355609725936487121037310539435192213781480730057464859729167223264092259538077928549732983565725887919563769232294121023973422279392118590361658198148352946362789966737366997752429987281810277736542221848665481282770611721939076088273684328003749283153359430548453093700095674608117458154036655325584963594095962643973760153962559809272489628875285212611303732325490927386587450489477053631156637853400466209878662095458238959114769121809618272310301433534415295823826447563082206858973256775334310090033078799733639953151173422986867375648079912515293526501436879101945117165022588506738873702164359172250085025475386607728349602662087029057027726685950211328851906331181432082444218451016176308800107423590539711626696576130125469168447497018056256280877483768461908880510065009095658310711669725223278547859746293899729017015665392406852954923026907744723173326887370499777138261373694130168085752461224496621815703671166332600002157526863451670302955883237099734169107007344466693636252599542686809240796422308627365321168155729057007493806857790175366886536385587695589366798189043575142133752059560215921944266303385821170191591352768229481394558393080633842214511678955271214981635827789538573228382279394455365730209098817815945277188196631953102968156119921576564274514660411285065347574889447321729585895536214744722160126019226848728030847265810087232572619365338078262189241596399690152335840540327745942099685900384806864101655705246043097071059527504112371464730363923367103531577158163375172590089430812179743308745749719055494722680971174996632473666832337814197657567831978380198417986994026492440803925877495270169539295160801447849992491627295803608358235751885812587396118608299135010736187829393133880103663989823506380070942201432701965899641137122005000683105835962960952033730593022055079877520198736777514323032013594635295074355073632064034753227221089634710103020067211073986794937816738849858246747905297033208869984215658369439466339132720700230638069494362077666375311314698141558312110150501947417442197451046647254906508574430920855462092301520183323977127332599339561656713601654696691177773902504799979966945630709322783129109492750413681521391266839094519008309688655274447918903937812197041476531532919212476071059705645626648783309274816144628326436945145044050314503102868420588045362960349737542620422278700207913625615901661787926059674018830806388253067352673250127936415905915567280343146644659069137653251645386984825830616183014291701542619862658992681312506079208003847085092051739779176187471744214432258400632453480706196516599937719119201117060138974985985418125826443464036250995816466077096875863006380837354321714958512027297907728148886195557556660313629771071228303663442528906276043728155691757471809934946446391420704574418680266803333086194568421490942287015912415474747648682381432222996822161614126895968439228296533526187754523042844187290023047707383355027275739901577326680544197990879011646878336924999888361870792697970220084717615672120076602678834666302104026658044510734520393183226001713890362645464529563521435861852686273979402318140380375462067477495987437609073352519245174268962352187956734907262178490330458359142998510812286892796725441093189488217782353155409615848643200781296999630658978323313956076251777616931078416789399739153158454854219678539911266015123529464537156159563307724541318530212979359108606681846421683504737007559578275463726445931058933749319986168043119397239698891361768106683445487525967296962032550894252944232137662107400448811629838846769965013133013833294422592544074374657165535041797822006611647042005741350083258687092540254960793724003530709102516823369621185270784533006703968711608546178986850277635522904745936784350116489233726116510718597852608026929299083891022566227674490981989885725142706455749127016085298590767066441029276124407606706017989142166211830093679168034456616820652295675498816248876042095386832815935540941614008865152446038365174201254302123582530744020701168924313840584017406318280664707703300791778014978715141773368393711741269510964265662831196277429451069165672136055649651024914295349618410730876813485429585676253252755587405088281510130546701244995091076507105346255484670509037020402679608792012963107931958286559360850772304054953622014048040742848995285496591562617025405724545022529340861066768600767497606871665003298607151705131762428143958968908522716230003565246756629929235724059498190254169174443390889714857380349282166669124911418705403728601325917247291862666620458615318257400125917655727229175629616892417544386640181672290429325195319733735377953305044480426775706838887856598987357657505991254317465236002536230148501115051756685298155490348802417569177807391465859475555857232906172176007079609517398243367952017912471680211675043877628231295634066035272642982416503389929842469257417383564227661382753951779147343145616353006135053479025906017300452163221758661237430068553755431928736390581559482615133307523936594735777302374003141706728141167901230641540857092024763738642364069769318036401881589279989410131463418553357923480394009707423985696041739427237971092909230395967986015625426064917720759232729548401331298923573582878657245416766169318436704133064179572566543978262524509195667964249612327318769682412975545585365780959429696448678733728034420584069317408709737066366129362066677305925881021440522147799594562600293543528222093864193636212186607007294624032933901458542378198222607779131751106259506919150457253055320344798380995502020128263095182707700518440748354659813329351564206416831820174509859874938966852229292731626931116038381116949334431553167086159930440884736285243165202126960806218945002277653012956677577687990905690914684356214489049061812636823782645137469086124780327009487990477339289647150525769728691531366136616894272857422051506823195639770863229085242683571459353926180213474184340463317609079974773149448500163492393145483414176890973141486334407383287042630837039899334253239494855035379234042712082014737385696366460140973777867063456413127676816408303234527658957329782432906916406701825305326640545124869612537421083390873002860303408317651901982864826825706500253137415946101470526074661046649538450577871018426149518468320488666196695978383992455436050078758310281079181708987779303679742060383984309847696218337660503267665820928537769811201906897452515395635066724059732525085082975172510166412828264058146431303890359243946410265971948399605195342393752559794273985225285739659245364564446944062094102534497007602289044341103027028690522299483151977260914179584329510855166550368941655852405365351875510718373408569925860418271303900923556183661413242330810669405311550155162486391653971660399784027366805706779532196057743344831946518028077619100463988231534508403771967766976269051037919149127271554265915501971984913324827129775758800079180236641199216588905765635413999389746833346551929423846273968995905556495298696022929300281097185272084215618558622284743558625439210713676821271559525307587403894136220757524104741524334009093165760263457838522388184653984382831564129298593430173221173775384873278156273044029486485047567431625337479779833571422400498812220778312378547662710371462977961543818875864366430110417157971158722655724304938603520425253606127257493581515662031701051959917028464536522883289469523731735326740691522672142271711838262883850076316318866839158706190594134809245619701571593971945970814826289231578528455996736081066421621721925385650197424478173681980421730536303093333241022794006998325190475276288699739894722398080124518001502171171447839718126475291997149005127720516825692338691205527160499500955828877305173823399289343109178169779273640329742867382427829994986312916976521683502758065680335458145886092846214879633801072571736408326940296480078024525333700046848287238463589663135962357147949464608237268441590427782724400626265104549508433868470236860113098955396733507364365943727345093568899017017957235984871716113436803702876899948895764634695185717801274589373762293556788366891388556519852059890035718374986971142319237333330269068543712542686511716123570701602334939591760179554410370710994265327736169114223563531959593623280352275059110470950365847624550739092477418481895242759203505677248090182501223144312872833148133782774020485054504922757532337884378323911116759531931539638025839824327164816391364770261550258188177213352154657584932483929855553312712011018432711862336421790603112611506859255118856573197292785243277059773273312482311660694724071481634382344258988518786785210797644364812196274229426432946030674325959805592693082015654363452934737501700224509498675730137365397026428722913212127507297683110080820748653019405146989139422416374048005357342542575566350240119061772963928898096030860072777269752741601818218907717933348390145293438817650519118980866668715847961726193647401949670183631186313960420176942394726584850306985454273389729659026291676643580441880985168901820590816396400773543179903866317231542081554136381746076886059575849244043522247825582861596451324204507966229676176232207300362153614902071439613848796603995196455180393844704732623651831045933700852165069695657074576738390044507119329967049071598041565950033077234503516738666085119423239017582133063708401934057083384353107718640210085129165668656237969188691508526758968246301709071355628699543560096714582710739394978156591316735334736287851007993824308615038330963896481592953703919437494739846562988793912938201998361223727496280214228597172573985195643340795160436902927899702796165805964801503423254981062670303725808657153112883878883999621522561913789283621220112006289750790833925999287527106124944743719108883368556828708837501458121288650196717783848180634177890793283452659942894578867313853722943808384174236468103253792998882550661641702406073070376404475123164309469820210481950719712551859681107239317459648415010454061324031420659714603427772347197409880748094319586372330433343830250675452178770668076676883255900209673741020168999980514054135921520038802925585372547366287214752030155935436243745169990216858786752333232299217677228310775099530743982534010653180778486532530479955394257295906563603612433897011569587657764655541634242275677834418344422907651888706397766857345025077911441253192195861549760800105612426169034947789327960473202886524522968908358358794045874372166936308842855176362966396351075368706672131036448107872492269550264067413488487727465267243355342440886153891544815646610970851436863431041667634478544632292851311024610475371876992107025297785120423535882140149070522533690952289839599812256625830218160459911432832974817734552488589615447236247402036063892106258158459771432973555461689167830147956646090465776001186829686410441014654419359395970361248875669018924332342833579753707611168986513825151842305852585092872706547683667557754108054456349208318733862324383544020986638409591050596473953855472364419384151005267490000448958665773360566301263854712636831981141641792673501729578840778534027065130436154231801380547139288094554883946214716764413202988853646525049916756650833965205196507086238825225968656163818492475700420402861372194048442134759844004725262110642429389143301550507785837184572955589118320689578653491260945573466879292929858256893730587594594557965630479325921428271276287941901148524567754948773192226400651466730074326115071415996500777216889699258031924391746204566736178846801502350866506542707094829455052657805725162289324324219800890625323792598168444185036709093970383993854109743898727919801108866464789907240510224608927400577729604169164060063095752073539286598545204129747213935501688837326662159950855136303228024050519487610637080392641087681100389504549910515033534304281337620962482107638110323158936699918039937478803485994237508583845720769854916441090133855022275203237752334912231136793396801531456665079422349354476389861122113779051655467970159065664430704717773488636271356977973216854764140336065158400711975225293843093685623478148537089134541890010008346712384956858056763870738636563309201452817710607382556700054119168220981618114724823313511760400973046933370718991275231854543842066492840293951152263222100373711087415673938904074094183040873919510954863707662090426887855109652148797578533428424988179654120029512788467385216933848769159200073204588252972347305758630590874876110240224299486342376643427524639153870904371779308769212651307155702084159290101395941220972072502736926713967841752480542020741996362437650194517432662868065146167758182650685571012272109959856560842612437611061494758551808820388556108682427069612933233825253373036727755444083923201047687177771231935152073774607806379265826703087022861944045158468489236160218949192319035843890715063361014146454062824991192188361415517263286950923463091554125696452465996740546220082363368029342511205775561396550083673928923753046909403871309507908075418743810192833850000032210957131202715198172098640632798864814172222118806230834399722676224450957278044697551402503996456221043971827448419953898298651853100492106794997954920474050555971952183065198349240280542060373075727560707857482051225446270834703208315952205749319073270428840601055593210408234880216116238214704615394059903501109643209634913930047175914441375477683018812611169625173589740516566418924763625287378500842419975254555093191092693740211261030081533815025117884925942327941611049542451444889259548511456233340539400779491856809579514500741717191502477754146472078603279550337505419290531904338262250320390820872845788929322526866195076859413597540136927186752806794990157309881946901171741527085023281801583566184781472912488262141388322817985785697677382222950976743621199296712430582211615915730714985765216277426488767078896528186790073963925301791265604220117622314299335539659375288859826005834136139403287477206235297317561613941123099963721741387662778599621288267383597273450613815459372315231905103923322937331643013142584404704780395452033601508375593389822449642911000122358506189537040883306424394780909841630494181411821742810099759127053541036069651973508157199129904593139832985734399197723527141794184866482257499812039793761781793300415930578360321246600448944523285073607336510685598442583613778401853914265319477961079448594442860385462874523895681115378535550174755213422004856748287322690506673412623529250690821156588257646806592072806440939068872451143702908051978902446705002604623979417769839780145410361565193783668960358247460497145198438473234902381675905868917938516066100665579533352436937212809567865549450148692919368085814258413455675106672560986144713336400272033768234590744787802937670147799943429015242392690743538079544837613661167401199540485373147561624181461162950509735078652974189607912732726474373273912281847993306955020303427582518442914442078664536484110527944419654230649224496319768488404515114809093159404328094961754537520725950864489072259458331548052699016753041497530527689507812830702205406136497724043112439810940764074090447161498817159726322685999388383398349839927072435222869648321953871733288745627032758166782179543325094940426138460750092074000481402168528301933145335199286877037157062711084248601158382749240767092126675101358274513758537865020439110104371675856062395453028299083012448263195796232567120623421787875751233760793543189252855781593929967334349535543796987224572049564680065487530433409787310218557398901192420652236592043233987306044221213778485732470280738341707340523974005526417705050300195702983143262204685136255465755066864016979898726815670266554630716996269177221726809952076977221472261043688070774659911968644977898535939152999747703083006044704582398326963910947373516250430439938959108469933351359076459609567924743760746533717713241616218535854508825817959464759311882189152597199673826788540175908901438464790237075527745294396562103719862731372045078288687580768159690882331571089860018468536628662185596001647691289373560474021068802294387835196996904138123425560806330011121945954533652590135566971998133459805972466306206181406544342214266751299644399739299971457601144793429146479177922628451554447270766112527278400970662583687935049059476679154851000869257960781169280930129225895054648464357519467419666844080126518661486576090865764640819914380223229110565158198816223686636540219221107308764317587622001201954658396822865038983555548970630297726591762468670775676453969020477750813601605391192963667558646842543558330972274316326786297485373520945326276268860995008677319781098927664885353842267476174233511105738621115138573906453984707136647790782537543562944896701430468882136725081491796525540232488637889298476359108478442576793369541090015778527616485636262686917436483380051120790058251690231820863193246736340052521582873599739755847705768360029663250340190168890309798649009803268048750596614604162066554622920633541294339012949877474498804034402992604286293541605708150458181832612846864681191589569608952441678966882986797979817738767614591106656218624972971468784945189352578925186193259032366945547201522511779624844985128123558690316241247609939796642557924653780898864156274185716634762287096089124298164695039157718319196373278655028909633085161801114123441560024527186675679344636592115956583982442463610740041012722671719065138103047915858487832247680832719661964927048481167707831059551745633364670601110481490619636626797381524352872989920682750729056529959032481861289764176857089112992028134330116187915924842143433341417320577045298669379184571089219923863768817047763170398606689159000962722739434778735480109004701320037392376638998729867618321351908084995261718469208730020853502119277253724490645763792712354117550720815691039227771768195057318501705713967804554522147016612957803138262054410231988552135548620376671769627403731883218088044355780242841673417604216850334641947103947507187864616714333301959422513456768756069425664699966783861821454887735044808759345752538026953854326144379822450209496971428224268049648182399470070681763732392926603869754645441762832530543316635215287040319606526233878687050390675266300187617408677301213701518658451827004271896854129292412765454619312751675462139178968805859462927881366338664215954402247636356023345446328214359677430322087696363136681791511186812636818045971747812340226089628230788075796842972940643326513678854019726938625986524545871140088076188645698505865692934317288409405273819614384229508259045852217393750695552736641056405391812980042613069367327224746017394476816150502431430851483705290839307054162788308214355565241140835492227795591728363267197305718093644424731671942062357781493577113158681905349993985399913553360598646049740994426459749570518426514479698452578326984034264919413955836725545914145297944661556414363971280189697107559980971777857048265211971206836085809878461677447161295179735706443729784248919469201886295912902368690848411406722243490270968484648956762139057498939672017722375787117848935340289929666438050092994424228897189553570739429107806624443880095704323485506477554936170580719613928365709183416298741303175714760223171244167304557031530399756782257481497179002387433377340552859326454287531341292328120748069378739736217807581846203336330145636251272827995996743880626940342620587953922886377542566695156872685149730872631368930376179149404496117290242081612761872809547516183794285978227438975594301220035635545277326595152225431627339360397807460467614888451980572131391048115281281003306053369050750906711958541376560545072859917728933524315829749315742544274313287394361083641842376846129150198663321050294364570483317692939857079411374292615343555360968287604698390513863182918222695672967509239494423045447744766969039871504762636324472955834888019947227853428320338220845253927525338176429176448192501644321588699114794478502175177020147124700429506629342703849583396169064971458393595030748178836846826182807081748843858274998988949939613322394551569328482684985761993772707891973858835148639783585170285041308552896237156117925023327071742642054144113001990629924528906866029622236578263977565347391440646335673033095825702221533222406052536819106539066365152839509183828242771364678101746918071971793095706043855718499747050241168790466147745189302805520444680195870432381731449615262414528356902047260960545236774860302803473422821241355256038860030953535709362599359162923466014660901807227204567919643351469360318102793363986972026019442697742557800273095946154319617637665041527000590126064535965537403092281568352269650056896232713391785273481665189395997692249503117068815770609215565956028017193494762503078406368089309689150959816294474623122743496261542454589856663553631117792145003908286150199104316825281149884325086477829193322934614451818022719141815966602153753345101471788841458160306289762360095540146525263824797344226416049503575932558451288252977726264536631433482058978972211848170092918513344281397591846303864318251858641069411200034475523989831073446657751715092553116429318910153241003096243174274279525609295901710940385010494496093629451377910326981009795639846326193135548245219908311062014198422359738966691468132511454694757111462883277365936684872533346297007116881730960130139140258875078155085533219966029474509750169874036755112565378542060115665192855084441812434552319417519937026776247028412755239062691065904860760538296762006023962819444587259064685186855310894751419622238481629400981190252855213152537470782345094192608203168039520250797192873392022611558591937519752278155347770431010920265092245700831945760826246415842935564829939476572097104324613537150280994333297191402868338267287991737729995445520772444293408554520402898737880745217887743231077850211654306905779747887700648974311871912330237299033840951010363585646245595142412236877088406930837793012254245741597963276450820969270082627030339811657964808561016278405844814599001386088013108969466821472473432087080051670458038013856785164029000075453769789086435760708463450104915857570366639850795513511897994760586795617632021892374516396183502235459226007143353894772225275731693790499272158147403988922816560430849647674708262230201062981794202863697165644437500151815599612441443893614580500720626255560064200491138651614526362458342005841028929058124927879963447753954494609946321328528999341686835642673323371573394407163972167355593311971184643743500707792407192047703604253081261839499485030198686114101769707325198543250031132338983937320717215447886622498346963913628395625030460952005110908041426094526273702686400932357990236058088049197977961783801890369788848810797032547893870556838117679782271023483925486213423823591429412262525253276763473726287438215599500020119232828019557382206405834681099459799122988954417442509685562776245330786169131734041659911364513986524633635687211748209374298434914155375453526609871500885191139151581775152008179920431646454135283652031195667224276749030421295462959366525600332548536622806086926078758067925146502872760826999340665475432671451904556100786723756807601274440581693223063050369243156228231373913468901370212851276271902946383050673466006710445048293682150367216280998793479875416170643461650293678499174789467880940130315532493459815824424072226923342419132650809888316555990460940168371608128877080611187369316146319882770264529685641306967454526930701409456827767615363981839203470731336154738284429868385973949632960564029884402721848152062176027820319514761955156596191598246814737721066552761717877958630242641596729550901050291415067075544406536967510094012011649191267366369404200633688266757220820564987339585919956875209329993994798113838992287304294353190597805003173457881589530541416127230900422598984334527366255385492360407883800858464757695086241349414849876618848916161968317116876126641530387953377405274109045526716810443954446250462205205051397671428150909130505818078239108023161824019618385562813062265676581485934556624272437808849794084041942203309293083944119915116240359551875646993609380853763253027468279901553965660396023803499860260443712707896113428456445294130228555005119090384357385125792032804706456393117997937581463865009507667728219861508736438915218013592199620097768570756904420437145499843241807845215623422534203123796813792225761160306254019960659945536711598302273696383520053893661443877267747207032377338856346024700194301978836124289780597687046706424700279001306051200259018344217603453617521816790962767407780875541947023575045127117389731297632795777883815938200070584058205277585349467537408803151180011680942868314500284141260475916995371536070110178153400245784657509747417375931485423403782701706080389755547317675657761411959789263891589704060741066513059027501248443266426392629939394422872703530112855374822093194266539867454841686063680071805367218698016420952916031561361773874588231967762193811707574049344892838379826555258857269725930712316310706291681883694950389573038745295468443384001977669699414038485695895168307756773343987778415524320406003096214210552805403465345468788917936849398473621965743949356087009381173929441180257845001367619149392398879493827439420717790961488874730624281211111876004162877250606847236427994861757880311709973404758089159259939145176929896796065189417200302349363293420222664095317392116690527842673587406890025531018838714653255270693445246954341669982704752328039265507152941630895154423917221456894886774350183537486087791246348831249849677477851677524853174149389220830934911195987070127606948495734555270487108137167386588459282880544277088667866331346031203516894194765545382865790165820685482135484970675106154447719643152969116697399788693693830145871226206663254200339911707156907377732361670682215287445883949252305772701404978718650165788641330713169221615272363468349101215690587305015608992583899836442779701146802288181034294661995692024593265115934320122168147903923542658787389266194042506879925279914550877685258316396521101687354966613945756352353212171879826282589316851930701365304902529453238309578061647757624266730151878724713537466029855555264906245818329960047281958273572259501807076557780847752086117298084446196970335933880986413071316927084931114956149401856420171294952535400420547751371348612041713133581739856397223342553643054547256791713177248694656508923852910433974166270560273389729760950792871292943586422094020556517794751761111765917400633146918903933135893113524533490928770730044405249333876424313644524714133657159095126681953833196439429367161408822198702329120390425516989560798825939662651091945869509394911483534070101685701347021161772546170445553926565213881772426461002053039122317031820484776187257112981942015121455389312095850092551477261349948225865215767360082950956818013727570722295474400063030948520665086526462672855534030529280599290407730783258572714483303277337792937441185760013863169871944383702497413422496259791210873655485565351238995078178075172199411069060895822517836786260141731337402520557725725358800493285216318831252213985985978002069565912663272753648404680920691952732031077610952300880276524583730089680356519305188266351144445783325642776612990533627957375012837049314587081390932847243333681567461219252379999590583176893160392292592414348654310228852744419556484331643196395633276730890982022680984404650067518088138833832179990650649422952413281450456925868315935939848709604288908963744939982616891459741146239871818938889695674240824871303325962774950576359757712096043900748987414625714112120523471972354856439211735172058184924744378422051513921943614777972828359719471046227456258282942246494435167652180174823900561834196376042079159191712861763419387697924611502023303224591493919882665942938336389148102986587546294819968014282071167089513568284170341321134136825342547886864765929049617775479038612765594915959771496423216739906283156625658719046195900117455436698284609818204520768510909368971372460996306655068865372653462624717526708281884708122945034678614977909848882906363712767912124876882126646406623106747506501290212429375240310351189674015014727085187056143931577240808366008496532587321578373019072516101819562990010074532595845494289964700748755694867189834646942367612940974327049659759222895084874841587847128465902738067735289673271266360141420023797911888457704817141674877941580956299272999399958131035360813148502838825944102226443721297045167179261318099146849253280684892021018977039230205383628950412215983232004260562752720494195156007042696513602868607764243056352752891374955497914504559856932359815731691144843931382046600049312845937544287505517770930107115592875275706217397529878870751879724089125559617445329951147039688057666594361170338222952833276124029758661380253795999119995397069299233974602269576709861680372474466557460566786945853859999099627027514571587318797983380810876040693185427586414860620412063181817042459840544677166987340189306426009179705743498333355147717766212472939530953402427002028603038068503344130338915194185228437849146089351422144077161026597556194579245137703972151760704648502132059298957772350949101139210477200031635027792242733042439217137354938165913759772916479394290629624606261656705440462722134568216119103541907546312448177685839450482089568476434848117782253989775003919850537895744692750756378629634923989250043585169663345933748022173734928170263329758407961463311974598239873943200985614315294794582813818908115011738485056605842169738436200250456169430681762256915317074390118206310000084848728238658176809650844315162059098727021134980309664156142000409305950762576829778090076971905195207901423372196461546861716845973753685400114188677187233239399407721959936402456627552149602806906321437532811585728714763097090656468261024222206456848547337500292946266735579602908608643113906500910342345919140839872979145995507964466243212720224422609235645519881016752540153227335449142026004473065778951901768870636561281164446361362776218801951304695832626324048480354928155498619121788888647889302399473055936893392540095968568810459226638030651797529509263971614195751682804577311478742846878562851280995038356068603812556155899476028843554670308069566492259078407688963481758135210519709806915750249725642363370528791206666631603396520817501271495367087087984368875841108672344254202422345925128912355766950773264877303016168408860602141151031129942731854225447358640806988806744750820446607148614519354225690080475420989496890575833793600988046379100563423687962629231492231660156731139425470703287745274594951172303655837108699053701554786996122275634641671325934319277285995336740514034029646585853817532933296996227673961010634278127934365145333087339844691126543494984329334222926584755368636235285511885067863009717108517731686310706690147895452121055185725328740882949309049051206069873573104467494178026656196135550418247563839035853130310711101962528048284061992828474143567379411456356216568256262460725900329063724831388098902650883332759919486844665575933141497275273611555305452007032204917432557619901266090575878275913545146246501077374683163429650917773465067451572057719593997705139680064161626440053971714283533424248073053455191191095211521702397837261706503629271305309558749438582013239676799465013915598698510022126197457835454204152892924684242106960203032940103685305430656703587696042474523452714869395297609130849699062719264148116673127905960708285249778679475688812209475261487936053615566757223107944638918280328659894962249759067344859071386605471388976814119305193761226914136093178381942280088955856142723272787243934286566089362359834888948196230464851500878287881694558824643974431388767753242525397146971966114099513939207158303083030592178631656315722225620253999504817681877229799618443600918342359463534870902883366450103408415904743948689476433110012472551508619500863782914769370411829674412486895279087215586382072432183112004702315790972849555612011288134235620118583046785333496443448525836734495656127260821077241024129492141038948530087216637062515721282560846010729485508085594867151283363317375536377864539890011233762049501180455170225032652367688189877718053829360153515593639817368571572268326888656154226340924191082339859231435025928352667033858849150999405847541562681578728789047381326581844577449987175434108209187611705567414786648599458984150765182952149642809008014914782439738163162312211283410735785770493475240865746783365459443424535854691684397764658834999260327368746967054770082533041784306493182880889558117617964839350610076044084063627860884024197206893591705722239444826134663549324879167110190447670748448877686884518064090080004561844090805255731090278698144808044021479031543214198942752937835265733894378931583242738472558359436507502825311059375609574870102288688356622488984463855130168619390950013524529184084638975258656892431359070505745636388511799786797759658684762047117842379845488920296411503467835854325273327671431412865640252609478817099712461703205455119873674639798416317645139145530340731926962029635322826801530910799726015076173085074145032320647507130782190334711342651706098071752665843014131962836376880467846345593064871647444542301666183319754828861872426893860387796134383949093650033539357730261742966329885040688834071275952607608570833741189114315257827916676651092235281140236376684556558358303063416836198473845605068449527025393059977973888026985908170561034694664925887481487480547201936914235782737240074206477322497178833533121929621150935970127545312020370874349977673034880151179576586684872360979063534885452367982187609502466688163054005478293845662114125970318141307063666958981256609640915344320600511106681779328532294192379674558528811412567738291883640302140485503595135172947001906638249868846797666216711365789193031681875243341221157896528948449772508545491509304922700645277637764925777892126608957983176685247494697659960502539095410987412597630707524906279961291946789136458391886986620969777515078426998276163531566790002246545823349453240807805620768121893560445133059501627940244419707525354189831349837056834302621171674490021370608238277928840775745944242037244260004342218622915368457395657829898918028161518974300705879129413479852916085918546087935316495859707178268044042269705944742860009214783245006428772560878448052943898330440438578359339909030150927987449536819872797810040999079571451923788650774172764157299360627840039588277855295319336556911543470047403787211434199079633822559447611343102424228646664040104766721919983429255899153589474758114198180628757116808473805583747876852249694065484228603321779589182628770942554227642232821863317566185739802006823068318308950062101540106266794110986329317713386284454035547727997235256174859726247395568311992499224089086364031350905114188640601746263354288932374706809868903479080422015510929962601290930793300952146479718947473198811032440248267863228026196564551352252397647375558511131256465575735993809149339947107117036978105318057072966391603641120441715228497177021174096642552272003421603351786841690503499794062036912608196288624207433142811928572764466258505411483630930080746129791156311767699269353383634116093596283832433902535398312329601945902930130758062697362800225052660936247472841983298122171026851236148089189982791436315637932127835878808389431061533590882709420737870940981414847217990287924988218855128008248902923100743703178970167815841742421065256717895054383023169475021177077954334244013698541239528594163442263066711875529488467873420141703355919174234981099501448423616601098733110744244477351341153300518621277138945622343654447080431199469034810071909160542248242506757975943905582960355775272418791086194829047780822760584539710829372804737036943167921140823797580813820721383642968237913880753524243730116046261017157232495697268934174591666186169428594283036995484203827207878228786487865037649060585310183887885245140396206266424315747843395355807657871337827948050034861162504920331619830252137403951203862925862440809904179800068817130827550747605937301345598150398298319305730918581541900204186386246710840804442157480192335307796039849038255476383353748506054002300609809796976190340521788128297761109124515858864501613306159699559958676488045497324848007626839364574255069406651490706530123405738725306787681200593579820925331724172880689634606495681033133788128821333875759610789405283774289994305348251501009539701369860345383173991361643344471151214532607636537084593480228623239985766202793009645489155089774239765757471682585853806031603858798817177586637262693600326984968456304245057422959569266930484558579928283103326772211017585276221229628680839887493070997096687002445802351517972153181059402052988444374878088462942566880743274692418686790359843291064422001083007389734536826026229022668152293802164510449409897266055980757912585037694707149693793951505989447795620420512991538549247421020624377034240634936492590494441863201494577395786260841873511161379212198315560402243633999280144223135505077098219498477229615743347266346386697071420728185512865508540326694451500462578928955943670490168073351601280378968554827545007066636815230500155893545269259602294490972701758962224474718821807799965167350184305021475896644460507289513366011203609973816328818288997997528431828389950166913658698697568911997537228627435912547356817343475446254111616820436932498340175582149957595712039787083762453029489112202281501612460552109317437636855260496770240168927119971674356066045314120881578992731502713489394362988832955610223611467084407711072141529754632957513472648057257876491822200736578775766048515626309673426340718474836919589498798504905817840570811735617449130249133800094598763863206634301170085214489802117629441797811650274609568120155796080321562683488257936965482719225180794588879560164415140286340946891562786268837078654828926090635082101215850050405461413829259291941051290339010994340154181602852615434275197926625525004064025936424845981412880452078268147330746142831919382021119390101679170843239498261016436066115124685433672180458749792670215848602549566689252211544038415829105557335120939528617527174543766848845568384717227595831593661460188947499217169610644946420293124407127338151274324513199660263656551000103940669897376712418174032925534953270999308568722522722736683643483316726438541796835881877235172806267649634349004896563429760583212436815051552628111564349885921814473635662911441424924795527136668284282307146739062693389279468771201017141907669487361567419577761906526484425071908968310593202016060853099688520472354107477096001153874149238379353249968990760777300655259028149702891921624509225445909303101522972991037275172314568933073535281953743395845114834950881996770050285378009685688095190978052227076614696197805580804754248396928139892306552284904144486384471124305272525150821615142415152491198488320905773619630084546964629583606726338647949931021294955889914252822949372875589365739953715788875580747754925072552776460296162357279401727112958450382192770173438947048236261265819166227081038351076635358781451781589710418072970694424464386148399310381690739335350459764999389198417648458097584646243005494908039646037136978294715662207691094588257049189794799850175266579560178373181494977842534700635991204136709679915393863186447143253363306933360349192356005142585618113766542243019481708558860514988621153651852453908310047516099487141843917130972236747137819692414318673628934668940633749717209676986101524248740309445608432210878218738656477629349029787474592847094687830244842622736345638567009872199523390125797428290211072033233287339476574404878196261858743680134745336079894156907635063806034021471367977956624326781302591355549535193774011429045245161947444186460519403124552252586342843346648667336541906902157605517546145020180423176060243030196883200171863086919142536769132690951387578760561382130574383031329887273585670165738908340716665002789951045270804967610328622450755698325398669995517689226787024829977143460820314926417075176909936979025867548291011654968971481538841594954075892948019575913214734380496817617381131332649459939718059318085451167913523206378471757045148790076201330173286319346168872026965827029378019798153858339023836137490819563694859291364872091383850837852593910447787840241972820555994873392749784942998647047042644184816451045500139149011024366695877073279410644092059653123077547057100098493760175404884078711611756548893389662480783075409289420346796662691631387075370947163075871141095057888000665909598480899289775651784458941843854219689975033446249368022323937986449036945674653278730492093370913231031506172008222394076424926752072767361591390148405823916901003939692441064945606007305474669619461665363402396961481653118190735167624575896163512324178039316215973818509014969936421047892496773613823277263122573236721322268226348575830527790973502857978978242448769384499653460599436612262930188060445885400225486138792541993837614496350995419772231647815260884592897467961198236770966442624480302892427725069906352118540422624205608412747146629090466488266736344723990628414505849749427328784119620228212262554458142392210314085998842987934749909356120562036995861539284216491896925561205902379471179823610300545070561311928824194548051833522451404281200584673216019023541489696829871487836590055420852017387767228646861188293676455151021467512217400318356258758870627033204985399942981450209752314198726321572325250116423802623190114858620936460112134846197549152012451811397199287342952742513025892718737096324132613907720912469795746379802199530499914843003487431480199635687895712871946211350497740011668398050562186064876197179738969391621676366675906753161851632590981741849030424188683936559511026309782698745720500793059044620406006906182125225820470378469833579020709670177761006574167292587116859779686920135820183932760400737203627311798474978516923619502451138279636830302944675151965450568695504942764581942408961069858878947572068304660993005747295148777808469472994910666975522772200493703737998352234580494868636270363323348340203897155045503748012081144785882911683268260506246821799665587943744052318545309663437528659974537630800059547678282344311055228209641772663603747763644106919365585311094290824831112515116438075308235610437807715169859114562388261201867022102696250156023579726031198943048401092032689158582774324534018846102631687627419616235670724391016375473242956150659753596433696318528550490609249190726604513874702566222021962273799330414073888133293910695394803552452998575933652604532102842899459847512151955314906412678360698592454321222683913696218704719817056901582244392623857393160845899775641424384986599696499559344515674277117340236181334894612751415272675994673562004431716917202577740213266686843524604629225680453185063483785398595918555639704241980352794144868681127727237297367431351757811234975120044831139822575907143172254796504954330783396874180476010144822009242013431174549660465202978623007984031429975575799038016418504486665093566812969847592155180073119349137171421089314661905290276107434286063666416949107233350819702834907392229633566161239061601564888126415503453522886842472054190306939065537642413992396748758597198043066648253391844032176318773138796057584046892567250732537469181460853926577932467014470302307727877276334054448771315393248871085014331166787136841832125653802166946112484376813192138960387034149567614710177485544367350684168070450233303797972930234625938191317987953319930040141166577374467206553632449542533001777825063986074558321835278200442714497301900573395908228898715869028081660839671506936734783612493197314853014290408537310207323438334821511316401262533229605564790306019071608707195628551886363717723319418340870238146480448079616858201717958845298816680153016574421703209487540723859686773034771244750542101178593341565428309646069294704432843436242879750800167400102222452167064847918741598557919200532687988225743748116359826371282643281245270307103921290825676271079098343969713987018748262827443778112379332014898535431121468669471693994994861247557160523999120508685813754428404741966124343837564484199353393343247447726163520446082973318780389509817129377722666038489442583586258849215940923789014851108041846772031856868855936169656067145426907585063838658911221220698546435386157226716265160321561620402073568039374611133633081381904360261157455263735302777062211345392126003167902345126925368676749499883686079221204980126710074651762509533084347392372711397888403385291905438270347388663738278856024618840997637022597388345136782226066847279334906016316406811951090419927134611954059732513719953650757694320679626390259638000739125334432365282158776890832443396851383985542974145436822686522608016049501779353135593641191752469349511339183138180361948440301114916021188657439374031635171056165371234986999862922657608027490618751819232520780428110934696011072902126074685960046657587904860265641496817517670522712291496037710456691578638310056370920094543478116703468857998717574705771264755272096003468889263468232137263472226750044052380855511255902341036772801627949559078296522381254590190561432272886701697357003506220580279054816999214615264746856566931326200966865177336647395633504560067750769240178371953975318506958078214994683698160059554389781149051473616351714966096452144240040487716743154976997988413302331341906520761476842852282538748780266835200729001697105450645229730730260592135842624125805783710373275255068874784505060248428219765212962690046749489108809085993632954334969404716139424509835613086676250924830587389810961320908694590982457354315041724155874075752639241110241629031718868935587464079910248794951589645381249331455674149593595859714525466892453864702396228181473596903962624407465028540901093742438070998066886613534440401931373735820498068006754123463551373246899187196121858674013285708961416981595380680571978128876888837458906214782886804250662314282454197666159148049906563597915455320238727372526030137447895515395839001982783648968481749396654544340299263448812252251005538858197850322372997777275852113727130735342272700257486423121418353875741912815564752370480948079658246473643144626609162857256850277103928136947198562742298831537398490567411838093488531172460042478303216253928433854201480201600258604732874341816247132359799848612212597720371250930292679394125344436214995726977396173123842505788175013525623903765760960458483618136888536311129025434917947799390566957096278250175159114682468202455691180901901532474530570617711304433752745487653615053302441141329761158003909230127146813186689749222557867416309058974582767367677948425336466598641448651624009281398753589674853525608140425224025107202754882339155720828172242202578797255742764496874395756292066618174510120756345152808075343419625139302164476992299825793312880905493892558010050178206683311229479796225177167893568231240557916104254497316857898369416482206878111444824261236771844272023483732316869243107416352305399128530957181874067880990932949292820241994287115938281015328441155020186292766553510699171249075179781693982951076754606406128406883307575271541028543302313747124458093045577245312566523434007547498272121133293159965825369777405013643161592719951680023713038510230521424489864135230394391329017331421944405045647002784279483671666254925614592580537195304741254012752577870187169920243521715755391988932228565123036852366910731957064488827529956646230028160568289582845950266645961507030987223084356102781505044267909460117176000512793318340925814237193219189849851549347784092464058819052364042453176122532193862312396880006776060248187494946891740359770670157435853351395316057444824771544046414460141828209702343341938341332657674051272551940480431453701305678993590288567279777672370813327425511427318390879366502479704207158529020682831630101686025537780751655098579022227429738715840876910876266328859366526339907195979817928266987373682935828973318627429352922829772194046508549298088440283042361054583563667102106259188169324185935174353355521030209607926454571029585114810477593210177699174184465455662071041946700811473713560107680205678209284060836248483115456852092467869182596159871831384003479492360002718171007442072408311889180568523106156028980226326061702345798929539140078958639445536667181012356923591874307656708559538406164044675229168114152413126274501201116252709676786426330657871004875276866670148421314662866242895133301640535597982792461066265996761280356017191029591205854043827706698138325192346463789175719144397709213452334612752167882292945263137533946410534289795128816968200657995412463125199479433053248736501752869207606607139064713882396282267261734926409596534668428482444663409867205735167923859027615626160230586269320880250981180735294415303656415067015165309693584245758995550892214816266519834187635966625949690016063169821931752208258070771699817381443089221190224891100868743827004392843868678243049069308798022492502796173565727905151998553484051042592613260269975968626726882696328397137002757567377751266643881426878238527284784854717372126925926461870365978487678288713001947492569740881229014832969295974630377108418277778193494287089702769482902365761494277208749471099970577099114899655252272708707868623966002690749222573881430274421053072799924755651294784474694278685161310585453252226260201296273319862267327032322262459235459811310991100897465235548694722429124029246215646597617969317491012350311131117485437087025205828219211389679253193558048927685781905165256624661965237957798780084906956541929944252339436535494046767376400719027727652129065609797204576855932425334431586863073088399327765735395058215278526090566078900378939997631738177657994685289139148910723874727189831590486548679820909516604189957946490875919788589221690561684337042350733087966176914518291786157592730486759360650947917788573929651535417688624555180056520459246455402741861342306994284961998416904608040535789766683122945178234499003961607186015628465276425897746373552201656095038103018143552731167247885855431788862916133195209622524420850773519031618375960665374303333511057793388944006822926569541428540826763476506398764132052681290431294773563521004972374743588444281257558938655594301206419010521827208043912104757910738331510015035327977310514270285673188664479957109916245087429361770585282562618569757271196235673998498153229485663587628604802321030626384295426471170725978374065710358577273138560806204040699351391878171026773062228285459147036876057591540969919695667581618469047789180781499803362956560884500785521249354555469239334993953317867758904437946484956435347319234995839224256100866207067746516799330140300171346279998904995991951800777167587379903334524175828446809272607882476730131034001227269847150679735617548189786347340199680578034102659062762846231025081747134404733058122136101630695116013538920040487802595940997505797196754922311483904145383492616905369387798956258200689661012532423957603013647408926668564402342189107782352332228976843903492984734576962365074727188368354928705541909613347455847714369937063425378917206126249689386604912375355062868101784537073338664476903811330157365697202990927034462412407579825803882352484452407349058499504686801879343204565955643523964288707769430023815326571503728296634550254986023630205621469598709807119470577880991700436974634562302503026753574550933385159085427331624184118916096634427681725219292405749399628997908817962105954632941791072789151610360056834932478625448233953567758986900234869974391162091251718977426183858406703767812690454314466349686591543917948042770774430862212767302667180197965891313358166374908566426150967010551505369389570769106133278537079791699440963837709371010489653992532148335543608499364677735189164504856300025253876654902190305412536834020159581562072636670883794683039639991505565491452971035740348489647140946605376393646119674400280579497478635798051226518428153402923189259661893421188201713079722428650803841651547414906007938797310435031488450404246016825854726234555137311201372811829259544659881072480596362909894409891776657064007470710270412476677441648110407439993810701925049997594659711928394018651435423122686608721124906697555219997469984951382528319845008356752317861049989890323469525859702722015129106314175568601191614237121475398263260912548034377290603833630038207580604330520521476136129680912352938256240524046242748065759480794702414238148400206748043366428097145665715755933245788381956521104573194772630131601790564351756108539365959981421095727838824754102349314471256677283090167890346841147915101441028447813909380479368312464052136307170219109614729444733052524149131553515537316192666905645699617512162890586428305039826564749712108433720999831470962740371006708880819582877551163296949630928820002873780798597587072555395679637065728951148143222910915322765094751323133491300664319897871407258413495056670975231372568222280894547872266772089982001844139813553881218438987726690862967556304633827527620104888300234596979750016009938775530086766667948627409629352892764865294285245628072914795941766187196550279143986736724332780931480691734200949745604088345370510449546168374026933827315875528482187001413274092824626664676554033675448844404380148039318550280635599411310159397826929001587798849755984341143147925463870451327610461134615985563064233998094294459903296347751018406647004390415239294962775326914449540554212411862447854413573942749773367393215865223392477586890923975847646954658658658046924876493131182820044541611072551783714740249068249805752404425312786718170252820507327054723568821853161475914620601261509843476244571706923109440772702569527304412262680409459950133649267464051364180535227085137633180918859543950982816214743662880450768140627691078341002916771341608668393989679128133900561932549007593279225454829382214096576245670164207418853743495399539381850521534362485536687450854910899100115636460859681352752015496560603261585429202177389957839744493855412340610423875362296578522422016688170091997488268426222288883198704421011372189797695592537455433078850478322245235807696228810100360873906774059927762161366204817790697031427137504635276881137535625042081170048496198711921802921906885681754378891570550914155206202439103172631357831003702318870210060210304527335388829206668390426690185837675512054313837135421298429613334556617451253482364886896878760457631512416318362914852728077655743299424834420323609623389341386928048636659635921203365955306708059901866817004897113375328634075365970326456207008399839035202194833224524646456762439934421490845791079546493279496157224466630786752983382604363780088708749661851966348994541973189178384648885711180536265578075850558403171920781483713198010194290414812070380161405160636617434373633916001688873339180568829172168205513289815528781722118545559474577074642735936479971856496783212280567320439974261639183040575390953288090382581983124758584843035946553727227374848118444658199460623016365719361559581973463097721152526329565383586589356150926533279044816595892311017568216818589517575885130187482722163336584578584531734127614843975693595034655487832336598475679590735166878803760494415727723351563268591895790452012299579058521087629946147173959514488149518248953196033099056159473971210451682377532392219463986666387918335163812914596568233774397508210618442163644080230436056130563521910968551505600097220626755912033866216344695805246280557584183575256430150265214891023042484731896039416828074999165477037130656319391113647172566976783879383498418596466538769552832063801569277960944612249254061307538887864402231844785260566309225482797278998622670814548601081244858019050772531801557670803642791335431644797414758555717581703210421361760517578118032615301383527818203346385913955941798821717705799058120598939086809202550112853401683914330725489573231179701877929151576087563758503022928160585613417362244830735657641184410115982091692185745947542718160749209628842516420933176536884083173579260300734513962493415847556605562687096153999997186447387143819186042712616728565897580397303800697205631408428824246676774216568600822168650822447501197192935177569328831690738046299460176871687637003972638961738990136601701809437210449056698516504869177038441452343706309873687616001552198389558424376052905376376378196479860734440501937279811391668811522434729358879580691495269140315136208998126628553459244798943553805863609480789719554182378332003685380514592767892372593487406474034239368818736513792364354046978021898893072793367381152555547221999479868403140881272451192400374547923305158414176268488510771411959864476949622677896531470668992081761316397674242728394319069335958609112857310231104506522020940845041717900260213720244751572976746350778632469907502219681837979293315787787227627782781021326138760074227953650819970745685429576850388286641065737419858762634318906068294467004554955814975795808042435291399082921116584712380131315819457396482771313198943838704732619638803809291235997885742542621601934966797391458365481224336310257452676804078800971027622280295510106214014253945069426232982842549331432160503680473167589089467814892236791622288353326466390107352780658837396407615417149830079188303353750580423409299797515596496318266016937702312281819653402578689047991645046959962113578074675530530168413532676847360158415985317197681103497757762339039313527706669870334761379216127664770406767852833492109641013383953468668075909893436421768834923795732609371623440747334995126694700848816618425840588816486773951223686853393390689282549783978040946328160090770870488177123802852067320726293975985762811179988610271243013011978941667659472119205466809191983644431003477316247890961694669474394952406578071236983052314737279718223285029741479052342364563115216115209572677153072139879410637094095253875456632335548764534323155943017443310499676336630577551709164654303640643945291157084011349549066189171183205742241974330808935422406308535384781699281383274876765205506104152315533148646242651190118676041575725904266550446598863562830455574465337752609306830955607148665894072950149124327998308972091526974693307439390314176871564803375644928400590153635763359214078443231178754337220110146557272104934439760501765314410931290399997989512282515554048011679528704608612347735770842333959658576895902143743145952816756907376793286682886761484025799946488671341469302490412879253659069302112601502182441143048296942822264059831793392365364591773801459735127898994715930886880504527822555383229478050369262498174110070877927911367916233603281504820502998703459752406862461889325204905971677945903870636220899290250212737795914600276126632907096693140952010231910174538482991318418194529357337540134050880616053499942762671928854531025766903948882526899966046663280217742261272995205095486765692408988662819959233769295183622944208447810046772960218976880456602178306112311638212936525254261579455047845793543111789597278362334765797634786616710632525338343766329060436277299152260643263426194397533190687722200670395382467656899461737807599042717953744614878276100524048356112773213201978851387792954691636091856006563587771627500871834832287931305391931734068425342892859881883814455625585418914926695059267744751276165732018789690227136505720865851597382922117583583692243089049738861286423022578659975916340006518142400286383667170040224307727395080634304242819115105606229543304543859710129459034610596114263545721265287800961788071524535745220403796865612257130506858544320835225669636879308946755304945263306455278670277563033568124339294059838557627884727674564325081731008269076885589847729318388240876617199070337628798035265312626932478633667417407044219595312455551492689991250921216631961837690543410119710262849203278171216949932297528120372692766075910132753097714816772933095945455637425861058753330603308627112242970567364033868833456237513817033379566651096631995604099581410826763691451165609398540625835322240669222513580613942290708427073226655327891823563648858972750899885843292600524251956279941277453725657914165196272578686133343378887249392328933099871046260819178417705612655155962482279985138577968551417195093000528562808570152275386335363383893569409456978266155853442159245934648153549249324206963953877554281918907009416297793530495038411394089574078647934650095895838713616088643357608203670169687530948504107041199598727434225334233421964441742482747429916660897718116061639298239045738864324194891715015143528155609652641196362045952580513580622817746139035858606646050968113659998967695456583708106407037459828713083772706658634908681390397052483547510624998025871954963806858754129430814860404129282177120293465041551936565471899744290634143656900709383810636192046474229292868058936171889933722795553427895555765252844591894748340386450967766207377508663094326981799650015196360178222297301367220374948552530698270289625616245316129245485743930464747522079535261722109614401690014778758123657608661973259122287052073100700494112549773156586518053215300843582999406438653851294272202057976365733669880458142016415531938160865899747166972807509717886068531785953880800961681487557972357143281772296059164490570426498195535465105615125382393938328105971238849717411485804929406022559626030302771740648036646889756110067687697903707610229171155612117261316826582164400326604055574187910316342895626528855837693810904004462099498065305593237003331103418372673149939308880574786099277878044765474858001773251296030448065709983371811758663854065881770325867010983055131328874336546782591869745876627597454008903473023871227935020625388936315286079384268087831985116663599684154648422752580930697845448492464872126144783872941793204750130857256567663099152749976534689010507839082166099095688794129794419881349327242815341700098959885281974851297961143022203814421025242304943885626048731840794394876010604603226172470708771652828662097296065768391572517613918299021890121162936760130514528305688912253939215775790307685227639416574758965358653256051597381749028649623449553579087917841230407153602142703102685705822213303954228679344466258071704034063890843461358225430932732702955098292019434084022473199711100846396395551473240802583498700374265064121401864383771424859874799152728019889953269492436640970939246184402384411118593616579149977297987446564605773058365671634078396680537521383430232442115989626442393306919365837176696382210762803114037687735563711959298590177040860192271530877857292020605448245811746061985179278513316356740261837804406303134479623204732489317613663071763191043581929527077074812077828713620717848653714744800833652851947966398869016124483625983942575648891558195236296676793348142490328879762429584706218175166694681567649983507410580065143905891661061279389977387879290874389899569116107198710069024700521138680745662862702920664372666151843415329250928952746061743834364350075378893335008140256468655261314050571769690140397626592803666858402715195196110424312420649532620269566758606318330636571147158709828002019131377967089574236500015358637677573943673300144187153971998144287932610373300130012121205629439172199109284774625344429560456300213758492574604057368859510179433740435101386017543593234881322922463152234374929778164317883786392079646750639937575018919038070339840549105643355215442206716109097702001853869602121962174404251076331968192578550928840354007634527865868402272825744227996935234885664837731420568542344720586113414147641708702153182095791748192536985848571997817780900233795433388171722809641718023835809795140147374585460435724991721266062906208049894844604408171060251381338967631738682839058731516379142327811571853606976967454815600480541910216413768159423076811709417960972232658624654432264904619141522374778985876807837123248686309023983472623362493414548787776342871075496298763497390977168544689463750308477821879352553252642810321360085325038005382536049352390393400929491458742859159541373235828069709769967043199523969067641116282095689411739550987632279803594700438678373668886799945127177386839078192686634086186746954045854427842910859885954810532715726069139023073592746131512228011667644507150610279394216613343011449084176880463178046065293129536064350424185800603838564177646710899496316807521278836341350881136667905793767597292136663822135296346756581311213754650205762766094296860143435084225116503909302492190016170871261713086781829881908404963674296093865726477598927111452518378140016671923975762703434327591137529016361823263153424937725915642010743826037245760540661426406610677344471454308607983489293887331595449644681510872677811964753398833876383328761384679874405162070128836262292950110773560464700534821958006927144438624877906209868343198996076983475835691159013201155035359623673816504458675082304217938659798040533218265148241869147510515144026924033650368601319961442036871294846347610091843482118723788516682818648773487342216715696467747713564580565676501008512150713217469607849559355245656921359130830163170161563809758546623786161134281847052510206749334526228680116547731866718369185001968734343973783009922874305058639756848601535994461409701813725861574672858004844313989945880332485719811338583035781734770453098489340748653612449486442163860278747259103214760719059474009212581920174025229918239723820188389131821359298473659398287994032019714630844148417590062581161770471147959898303226536209559569920895915186597980993444782566001939552502246564240194385372645865714537248836144974713038549069034029700149495143865682586125365088946904225189131496628058821845832856046598231601602034896702366943209697717396081876191856810062468758289654190066045941471541643028321557638882805054713130569933804109487487940330493202303195866649931255392487662960779225655158471479177364925305582503710587767411735915849058854865294181164823931324296099539685221423194571698834642519350904419951425481217684784370547715983960570032834976118997558915101411536933507660063292460447115186182439900122859563398178525092537782068732814598105745894364949967904326437302442071962921884345476044913729690057923027586369363299673235475879034123904941781787226152978100948328434527406991367151538074311448762061814879746866765941288157579600502069267050812737677535763847382935704939453412109786174056019455530449093067870357207839204758613958094717073176329641113700164647278630889339046491253259278045530232387028766651836779185822903055383441842760007239589477869998328172434506072408576646257729550291449103160409307959449297194558838418738314221640569069805720820137917388939378722579029523742618801995480516819509619094313387604256666939174463995752547331014493448554690601419744950870358118629685088660708647803658330864388505417262319903742103638431283948529311569314074446424473763620747719813634074901616885020755071339444069326907500922825383037518341264293200730347242951551609821701925960779231952130679391536346644884284247575320417820532026729678963580448867976496680598781921919848983485291843554070002646078358697063634139330562658941011308855791313027751057652813515616391043733525311072918600597933323884783877452982914465171062789607935897579848319697682905304875658374069727406950950907711528961442718916117546122666877772161042858075243972260106912325056747100406927078775884195973450218875843824307220667234328559400244441406364144258891093917134831375753743505120656426829879700261830237450125313666042583562065474522129703598367496221691018017895720935629387482608436731663334293248631235691991381185921236568254750985450038580140054333011078484754597780590276309861440873722181005250470624214997216327820895194618342982316047900632124200249729802387992606639817829585713560191522539494781200499295765636722064728880470509647963491296048678252276718667606421072999311503028631989683511632666068746859775584592098771952167538895218579698228034826658389606753467838257745057967223977939394472054249431819025198801516202357811633138471887884216281735420272411927326139046995128298939667514278350751894507708907661983046801911547886901467698746725036981670362083424145166661140968567346401691051974287192776171169514589764519917721421528552733494316116934714183109128430050341707048058097373204605752174875515781239447161011416185249631421530971378387663411451217759198301000072854280155473368486665927219858899171156007744812375111437762581340264216248076234169048673351918689324716698360482036088085298585453250857529658663110349086943477402418332129012074594992545322767352835351990787565920519590734766784029803074852437386050410191529865225336881991834660221533149339656948918890402067210455157097281561836567591146851987091031810729708069054595351092691886091262664596529173857320340336812193990269776565439555953555702525386548175604935324898908667138558541621250157371315464254756448673723965838823715242639343214752491709863826944851995471978980202210528205949746644004800620482867830036167079093806516796026363934650550379239369238860261868553170355713309613158589899763875285133621200857314220788608265395247230704596808396643963756075253570465429973705243583661204076073861884195963912299573190085297004013455575114984074921927847030957733648907652772786632650053496784763008813336647311714826167883598353736861690612562357475014100460274046418880363382619389111550705946851742346382402373864094396215893502709242703581947235470703880694541493572732377797519070336029008151827532850573325855884205317113330478987710713336756437444121612073633048604160181181714532018245759785454807068683250952148084310928049565430777829641341931672825673247939210140802387253628627416754686345230439640729400856363550827262656420120076168039198851477435998107155604797575807093030087057590164153193354205450436893848733034692068042875650019616734722529793004609381772629244269684535207696331003345672455130375584451802834596439859435147635784507141589793301247543281247071771329237959538795909898482430268391951083675701602987566735416822230068473767026982449932125612923925348662767785990028923725085985204114473350758953935347825847676261177786780325268802839977639984959399308941559340866953467005909794531321564012637973486292458510551460194484199241847035562320775768901319638370332550072605546397580364243979284388236407748958161630227637718423366575566584773399330598094563223334649597270199802173255378141698104707071553223569714449745833042107910924032644653497304373963631368271243087463120183854351724973621562847781168065867420387879209835447686446594157173755234641716136806156275030091402113551000376287601653720595632453471037617420378425278355442860799930952018283309837404577669663536722044129208589602695790184029907045591302513755010019198369113381526852713824255970690680250709708475669103725140486223677148577476506554266872780776705010694725515918851143160792168182207736595598129167431469706156113956975365058574169621234083274098507089120399412399987179999561788262407342736765373945443435529674945596837107734493635597614673540592521193995292051384174104149874110609521662355279278633303072302732858344430883035956410536331685366803336455206907051869193007135497710958530521705367879920888546796774308660234703844062655034249711731677489206305238274546086077985648847099580943421314630198602290613483477804518444918105806106779197084001315596642379254024679604774148590956555576224063287631905320395072498819777428422588888350912978549189732888621271935720635011977690001977360433909764003217402182450420215207051149284103926086198658374008381525722958860506833823476443171869299105133081012719277083570839354189797231516278384563625729186781467510399570334527290214857845231976543917793755056632152868985930054199425586882978885669798084085923092040412575275202101890315865470353460360702120068802590483283374456591237403739274943580408746544184234301159050987935467987783707112781841836406909227355501934051452231591687895609730472576808182767576480367404740995850104341255094874200670435143629502993297245137996434957319537084153501622426686294375482756225401161566840960732451087208234454095279780766944518424347546128879696451886417729008496152664499881731695014894650347644015869745508747977011145745426259059606407527375107992091830059503640556056941655457968894573313410726486077474356582917099677818851989375886199316814149584385875262294601742979031551371345666373448183850009265741783031320059221976847016807811160970828539891189058249115579093435589715769495028524123018511226075678350186845996239628510445769542291443975996465032631213745086041286005884499260455207495522190461383081662453863092158573887223622488475780781620505385776786149347393381382643210879554508775469216922229873027105462991873913715027651584174104143479715435300107280073711522355264816711878224028413374437934543029771709543446872037691227239845817926263738212007363431595029503386841672359957288960098526183679710827362897697341848951335587747654168822036621881256389820794898227272520563206742744149353657382653934074950493189301567170980994530783275616789611679007948291616004810318696892034261366441162870429034489820739063862869471872330203470305640449772937700701176215254774856263617285153136574432993563631147540360276528997600782293264224706335205753487528365774655508626495037040230890468259462390296263174699994112785339398797680299945495615622864525106874938278382275120724535364739047663758321712527973890346246779122336858991355134732402345247865907200289124887423438388868731157836458590118233990271260313210307683777709705181183113914909205817217230996845111509233264870416354937160780701649939373346175022257071854806387547035763086705858480040347844488326108861385357236472512509339842518258985294630251712039531564553991910876532209608035841007506543270514716844805828894986406043195895895938290309658193264480583300325648536297369604376428200485883875040069849138957716349496671783071800748060754369934297911050807015766254234353640570002043549091223940626379389325486705322669248930886478619466212120598651401299103137167118304056229275484780556952932604718878543185585577378448363016569818352444600988877413725298887746785669974290457391203285989144438726116467456517548240015491277384936973809927351414002522500293754992177537849946678948894189357664723202382971716972528812589128886975947298631927038236082090218715510561679703449024422879939578618435321272475245699662051772430435846381721571681426094187499087518350637526341780864614175251350448535812442201277153974836050188492710400728483043514448813418343652879441833602883698090516610221618551916449014135827814835282640356208504298922763659464989685911298975561455057492788525716548681511449388385112452911862565765697199475115813749848462679744293069894888812797131043698215960812327641044522905554931169412352979199720647096031788209562552865515369496529199756567883616650894790598415079901655015939022450112720199977976419820370269319982483508329551611268845418900777072718238670002680007311823440044542936045172897216201230188199916557514779120195383880160024654420333187177869366268902335015613904859449552769778032548611954399027794871475372150899839097519931194812081320742422820352131432242779886320246617240668467648700620091991548344176103225698265462160936702192514133258639697046330338222392136070938745883225822884271245460287750636321523883007065899902755799970423330206786977857841687488338128171244133777383287086124374833534915133847670330820273987355775362263416012270960003765529590004341030222018841325934857258494908693335019583536147593808470384581732654416263377986119230758107021733902131096796194408994675208209090994517252766799966805825235125736856300535119075383982208908624948783865378877166282150246328933393622659072976678049358152047989536541515760585119216579566932018137772858025139697857190940369661691003630839492930424682356573471591276842255645467111144766218391019399527276223728882452654632111043945960862489475486183420011606404826764141174460813835283253578515044259211313043045567857609261828466704476875510832084276984640705196770395224899386306018313794414475785253842402105128817289395568365499956923990891288760880968007764633599467513474876286762223149666443139501982851229137108135828849312903563699990588660002336043501050931660670973536270856640156209806530114956158329147954157674034433808724895243253616351982911677721948015522638712805849686164798043064479372385536335327358083195990969849919419391137346744070739347774114354359011526232143412426272516158213367740017386347437172000327083280710094313025837670739219414134061486165619675746452729200316141076865592137384780149851833876321363303140123170062867782706894795709797543276565847237055447136520567235067224069449134665807271963934582811654690393450390084371507817048298616805238642826274114861915678419840221291202757052711168849568167687551176278343812172031479553636258292722285041513981394361366164143687635386422057577720045970699323542221489007922289312865826339965165471269754369605551222636771263079341341306903634219171236185191056655326765614703945341437249399510926330513434080251838230955242464340779855206205116977356145655331619301129617570454393301907974400419578992052562695456367534462624743613352534122647781299244168615103311676233464732459420780753304290161912607309576105919326766558101688635101017306573415320648950374969274319510505513180301740569329910761325492402844907946807845283823834616186500147494989451423794821704993006723828556119506268113677976074851378292863755391240109887109946963686144167077149676583116289698311140527331399856520735492779206780667540855665184127741473051198968194123544173059392207466847290937443608379083768329502091094138153882853607408252816084273411075920205340440461888644513817568710725839539833428324458759187561944909031533347984758415488527855677808318660349777632744821417705916099287595796499381057820512115709990513146350697398705734730024219186944223803586259323957741542272169924638895855262647833653143210857266589705873269592239947651912341260361446683945119549369204633595045965682181634544983291463205032916530595758671027686616202366505818845551858833982761150350195187731633517499057519064125444757297471884649723771476843567010819423185449658069583127331043168325699272362286964520705562772789146622269461140546042254454633583789827809907300016150824036697236162527492575528932313691113772463940319320908333842495981761350135108341156458529235035030726477322348411885237770141921043862901891622296960795486107299968643044327744192174940698278463338060745966284182657509764135354910478916866570070873951567135384759619764281167489882954300648436323621199286782034713984073064286865439321886770372816676354686769534734236545587288641084779018986254800064265944088964825324968478249570985537479709964724737452439434694020217759353414352510060739226555016039439654926311555403459680456878456752670963504741715406058996029761963393981312818447936976308956438838570370877226245096740855505003138558463894155368378832120433317219886564592914310055771318049018705545234288515907401593462811698904847096984230870387786356372080846690689621492257593435351705759724840855255690063953777443409406669036813393619638030387264924571400611569605874242379351329355496155788379606000260321866270454349659246352735441433540494775636651330958409152923170568996157196997844749975065884245851904811721332196765618665626449995128989249740646368562141409881659255281273199460803838376017634205327250491243052229569088088597380221336271669792842196443162318180017480470000304720210004141053641779928076144908502396227597561286630310159456779160878533137776981643043595461925175941299418014409604801412483233628881224935849898538191792289372520627822111861806724194978889902662514187971201031878294321803337644698879778094683781967182299417003655472359325596291273867714079490896590760747043285363923423681380423587707128793347693965111628385207721943766021781542515974474181264289130539875257256962328299280200623908877529520408786697504651908649552933235743669412335458324025782404502940489560043448276401833422733310564950912775537736210299338305141981307164735422210670141301163260369679386965432765398934714360623535062928393945098590291335889588708682997231043346908005440568742076249349510466598323864405189419802664372859245019194312782276081592787307667112304251707336829905200398354240027862270906385823396562092410158892102961681126844884960953139534926424742910980114659531024894142307389423970113929261100127511928433660383851514827610000017943415680967873492053416967868302826366029697700021556851194500568638149950448184412959001054208700173234766321531083941938459515020242154617723138466323845687667919038007499383264175733210715332429310873275756093344337545801717209840911003284390690733724761818270342769798444084076370739059570215624876943595479381004492404108212429348344237235928525148059307662877290333655545295608266794063597777815546070430520341628571676426321364841523158226879335470804093873208790396375930059925021750902712856683721957939264106238623749688473658383350906397242530158323356569467324417277511029231188905948443574446636398425181070046290847345020430889449691139839656053553707443826079463623330968227608479521872770852753568813056384648146257879386391740871309089640870515626689275032845497446749345335142511833210850473096199883526021916915213771299127659835867210252459328880574848233430693897485938386130956370369116185084733536949812696182623912147097868470924820990405548682148289939093538894133352348819534093679908947701992540017696319200732455300251844766797904031498325497502107729891536205313340746074815471496663226532679551072379735001908066879501569590238310905496236089468469013414183655803524972176317798416929036296541743058087371639965706044469850723440871866233438622814949280245225739513784031100385551052388689215283048136693945923743508276500326539420244461153516985417630775560229483429412743132867422829827986368358130996884275947964507554723748546438196677598147086974126882355044282883579014961848371968931228534929088915274126314469149848062833853943059720131886340046682265625992552341292353038637182026482629544069277013509020094218796266207610673344321315962999535217307057023208618986215301010762387837757708639877884680747170818113949888345082877255932448120480253486661251002786558411998709505766256114212093142433334639192354811803900644074370851768236735641847700340822884292945227752992162886997394564310763004938048548993686129504506192480400224090642838278836319970299242743246156119300467833026206393510285028723968083509836745213532806979530433392173981102322424664641014800205656968688033254771706185905819771440697034683670847417936452485006960964159237127778751693811172828434241546596960187861070308775587803970454583326640683289708104088943877075874333105186603276347604609697159597612743083371820081535463738528994778183807403557770427623263225460620595248179127556791780284046799982859217165337270394138505169760936637379795208890619362580010189169780190440068664983127206150355781008428209712655229106749897938014425771962807828701660683218504354767135442288673517001383813845265981686633089183842782890366303652885533786472159308926824166216069349890075032312837370105024892851086021730386041736195517837571238335531304612202584849219092885985921392372786823126068576155557980977989341691750494323836633224096964278146366202984211717203421715057034632509547787817986727598470932583472926527821217692204286461614726571503399358721977223498099689520517593047282591885075579386870390928248785671364325726239656426285677137479400464802560019874161721739989116627083212273181548867638958775652668041277608102098402177686300218638833600690374936086718973773119477407700561494487172763166548568643942477785809402205795201293567216344672284422738674665737953664992975481002905123287345101892425256868340716657374420033502911803490692758252879643956007520792312668105396029163813268363593916694949219398135237320366607300715035453902570602511147822127114628314414088695956642877562636167058386271986755617802749389757377011528134521682181923041804954492396168677260419708237723483703176483749271613487322415877718357199271384795767307618340251696075024591905245944527830592552929317541991894110075172770348002222758243658722006472558722675485350035075378667929509647663571403684338317555219813782843144255035034664906095744534472021864415341236404804924058304200613233021638046774214351380660985193490660088550313527681610305104436375087742325741739222269234134946708024247262247880167214287446359317521485095158915399148202220337958069435406879208329620604843321143652307184163507476891265556585360551793745196365844988403001421490565339042025153212675596082821642226606316218418141236075695113696266035681292904495572015874812310575710463369274949630056800036952379367921569392254635606816522266648116364774816487727813226447765147267470321901769296404331621586513970981512697581357883362600644719133531479243780018154667311827994046257858643182396673651990459537832344505287850347703770802172384291297360736393441740351912022737343265073651568361477697821194135979671713334968463535380182161352169021201762975354804624240698058188838244011971778991298765620962415098129317410438760989194554969146492459148890128103767988378085231019809927851464399743144240335922830272379668597414277257023212839292492028493740175111173319915932459702172664631909346437784139571450369407781489881774145635953149176284759143647416278675882343654134788396810075301460830471281653104902038575774144176904245812281694645582039195344358105068101197512278271948670105705394209550428607069366988835832801025450113936664057223928298313494890463864004101995178849731611830788600266862525386125200923569146122043782587817686550227554691247428957391804719794835223045466139629265078613921624276948429968065761571567468029881276622034679765281631384813025788831524723633495935259866713756348543862500971523710792607648724221395424563873112476379129165088872050971123889783124676460725704044783759878879656798561777382363297435333405869693572512372834196023308709640450705705294815358124852319322532415146395843342588340949027627023225061124681192596798770393087838168708112655731483210920266857711315263479346983509842124868030048869588633248351170578884305155022093698401250973587965505827058871922830854782037677890383607189153257863312201473436862295148959167365352387486739360801770314845277590061785359530358036825233056816259928265366883350765675798557608118002776516172178689057668660261804496318040417335896921730964196861748594055155876742390543052391838125446055567745272978012256406454349161737669123030014840478371029537853585173046455411200571142313966445092505496227140886074253367533009124398923439664031040622554475819013233569065950508720829737288300911555581490641111764023942655067511637719339775789108562825348236496237550129801963236602902261478400960731534374939675789398626967383088613975910052230365400736815102764914928378837852046997398029375276075772941402278653706799035412501193978506956141738502819416643207706311057979703593331620548972135952881975843531361633679789240642727612536107636399065023090417335918935524681461169109572669701053973812475452496030679718901783823547283904433947369527468634179597206510142873756041786329837457911397444044572753276462516432958127380754768753208860028112691512100014229063272941417949375593670549204641480069380045881817157575991802136220833157886122188180482832558318918875964555932799134239276296728246254071390740527705578650283356224413184342451779342143766599414623835419001135947151707399536322371772425173988045294899749333631358217483846353000871352689713852137858233504201988417575245363243524099637642007179648462999783791935176852570769986118460424802586312723854714405753902313742357455506509706852539085211748573649479148726142928917187180854027765029358652726831578224064974045935385169230130719956306433522539695846996329012954953812325791202335559860966894320398870666471878984170045386686022860562877884311354329213373603541948507756124731225817452917016214920118666054845855059151952862531345828561969742455194313580506333400737498844329067093626827832463918116616406022218896510777914849133018476198013438320771294561789780930035784878339723410150386961658920064784106670925585928897024588147895282972155634782617413878464393501471163398708417116815058764162043095716906150506010719622757204140621391395842700302544990112436949334030396479250177363120746319554208965773411387790458319482111165471166946101941030899100454435833083265882861471447599736838878695743470439955771187451527933267220140234387853411797815363333942731705021504211118075698589252242915178365584909858895676184790408365155811163481094069258540101513407876402841182795248972081774738476601109142687560509589424911284818448893013000466201478375366861253611263278770368436684786561321198008903079523936577508482669458647578535580506506955583924950841345755065619350623617799190991935128326439785355654450730399564426938662605154909297132916246073193078332985772722471739911854089691075260098027099870940135416396416396960379791385631637771083988151409800069241747405681748025329866290667084685778288522984788460513626148287440408693463933454981372907527956712541807377173502785041381245220478137490973464064973682685613687018722020705796455616050477220611707552358473416997462817803546283279973964577559991182569084766023244005340596029889496143419113035888346737060909216791863795083189222206172226817545181272243467486745890090560018565448043551444484298820454862323385489563517029224759027248186546322299926575945155140788175218319240033941469941851053808259069879844028539003923296698190775838767369686717104317250837859312111324049345200758448867623332797563517419734707753572610159534221680948224529884957499933428550819323557561078063427585867065638231890767479687596773043657567959166349367597388424046721416892021624484886347496716405261028547100746302552607476228862539306362255592684346453947029344519100359534384573103723815122276271509536379257454797589909748721694671995772953454119361009169190622978060890933940050260893481272577957216813125278745113746791172554051153405369753485071069115740143293551854085729822537564724959061475687746111791801187039545447078563247585133412678866556485180046541743322273579868943456639403845305000981866671742251957995977881177154210818656393045664545092215060592742737680155263572127866111859658158585503642553122969318115891974482670301208397754704809241293849762785283338186876537186280610639238945344903163699449790026741616135398729337666514107648918382882593511925981247123725490828589420185302237331891756922518907813711378727591998068117846852315368969621638603418301035775185504918179118351760233647775614167512347674232074966357817774427820725447325398878806388360637896119379960742654994219140679221719703576312127140576822311090460022224844804126982191576419084771757411374606051774667945363607493563143523165609280975145506372173982953045814650610458836871519245467062237267459864429184359122662720341957228437180014690058380019234987063494667571119563655966873110980149240912645490415675344561278809486862667072977473353030970736135179147381218469773938618814471008368158309383416423564221693151160536525416083225682741200982342268995254391895322645089345102512706558469903380063457430594000983928217925259883520566817005282415050469530923459421230528794966472196570740546685649242641796502969914627465214323211204688332905104772950733064459313933340740273571318846670615860589346613099991286382552025765589657949570932156821403751876674535150561074393092987677338737154263722069652264035615857119378279708796329702291790418354901017574804061553800148413792394763310148896538496090802421679237343548689224600592881568899388772533993798622823545662079890046277092845825667422880177141732367867849553069644093730189035609488696271320367884356603461388070079149662760445780049964806614072821151689520535905656794162547639135754110080036093128765776061264731411564848716842058301889500810712193540253367593583295432862185793265253647232533765174177928386175737803099286974654230859737350286642196509104554217296296680586519241593000658620204940403802458149649300941878988072989304284130063468796054405011275111689862427608629537235114396665534194141206741274640779010517483503437119153773424242280358814139596740410293031980211801857470243129600192526269938053266896869268935559859728486426369513180450753958276538200940519842666518617266035912679910508193687690812316327766698237203753873838647858829275812497752179930983391397259049918725174374973585970276488289036336348827882528670911050788013471753771097957035334733731676338727333386907421955630559496155209029771048097418496781167584750154947559257892393208056269259247525097420155555792902778697596046661683083035688596595146793442730905316396005841466664838809933052612122447838599209128706045663291880359115652311844620320352163239913111158810340853871317498609635417067322582212824420681582026760438655978860858005294983292552574250796271532731746160443046568741984883091981769919011541787986508823831208062634110771238408132234345402543828518464803587080010199604406632377554077876162905058829536955822269611197089464823451621080409469145228410804030825317148732182006960577917332580251064763876233467683268135246157901439856484868096246665549279756469171289774681934350896602388394145055962936655776360049932311024713221137437021714342439949557781543203333475034355037051670515662266078142560041628220793982900130906969099707245800960846195205929053046692429336695686303517343186262924593547108167630471335914645770935986058971073640395426412864323628999309978596100504897869267764091426922948225323858111771324677544160444849413129382465036867314654045915764376070669372303265263879835127197722275124816699648605727681796978038004962561907471587057719879512629010546435078610407441100680030485212996797227673496904839835879877289624084676871319737864909738845758782298188032383188118033547071837157681994831643071949804405322648063884634391504292767712175954179195110611263692944325495813477132493595014768929322642538147467667414817699581502559345913186208746914285203461236422564464025540853602478644607006277845370768338483009541888712908184645284921628946304578660572650183704178230406844668140040213303207275650362539912225770864110308554703332850513172049005798740828030480951774732815390093155869960580678214046194465139414129964130979873341883456099892735347926254236832493556951575749246977035651285780918422839356143678107154982382403960011016467879480635340843939227072208470564040711902470445333521593222892292147650414279682262112925740777372227120394183263995071321434004000204463283891507694120121525575495143949888428084651916816855753407059986044824493324307147129300603320198763846604499088793403846348790642223023522626399035636189392367499516674675780311025613120901487788198582642623850355528025097649371757835063145332507168862925277008208940630032424814700185632408731255063120392094503593065381748748586717514200339051156460406311162276536104420509937875817410104002056509641608112575387791022272229544962334526107350419972463978859709970447426778555024007365082785619871597889195720978321167470051696869542137581800723938640374219374569681997980872835103808527388855442350659974647148371448179256616453770800884134444185509359572918920324140733307469622656180369664832641350145666065952129598529343355303102431768429376442293639418485020340953148320848812521192648137895567747093888130330174279388817793673785347576986940376384347818529076404154885141670511608320110302548968330108269981220143510242439877487688396390022322377069703187201724469948394102081341965128371775262759909958502541281271314858979437995773947223157932900821955245145679774597561755294977658921069993690327135676940042631749233895319885169726044583671900023984183407704517699798042108662021644210225353479581663421272837905128161412215082074855109275317886982244900531612087094370592334270489886567707093102127959666509453135943291976238228264638846296000537093308269439056891342567821987091729066789919491757237812663986172971608294242797927205422729140095935673752243996886922920466403785232490364784675709230229982396486182623956661416167677494442352188539523460029036318408933929384977725008903436523064629402116565151822235941805592985235234958536255452834597833141044406322263280929283073280102183675356038177484960036184837776454801655193829836149357214092361074160260044975553945965774397210886183225450631440120902990701877868267380150314352200021589192560997721965598399694670869145121667560864272400366695519629204444574162673916071308574252999214201321203919726327274510932924481108165074055174953516038537539452288872083055588550032128757030730834981244695078733252198430951414124046264087558471282517477941667551905413370942475037102605063161111588723136510678252332758677509676550723512734526507331402033914634879899738660084354538825559360986200208139055619103774316843400410673193498313749391173861152965735720577069018896084689173545554491188164467095730768711606973709152598807692021553363494618419481302433780364179710810445237599294999384319724234870136379309937104661756877206574465287275544295705385330689695183563028448614568061093244493950609705897983349921977071987073705717618373520640219311987128955446964188511612502760289313084724392847864417753772064735133474176348764917647332041126262101932275307680023950862552321253813750325294534232971264770022764283934109823354149285029613465111850276712688859577974231146024793961100538795960546706946267694616864991559264269291002737628587434021908230228681988315588314782312255083478022728349699876902665307981481942712860921095080806103278670323030192798127044938565821137471611897868816562699328270392756727372209692527278449920405745809227321251065659326279648827345457009010431083327984498619411623484109746825077358185790159391835252383170004090062290382423648537479760398891521163484432732947772919141198169217564523873562672268328791233003178847909233987479039556198338400579948893649759577178578078062426095107590896189397810324939308513798226795295258922800917759738372319394298976467050537258483983736591591431361804338920048296679693519719348985454407512337359021872337097529875940603854634552451353583765423926112055099569266602099533976572300444618427725066515305328284715710021181998809636485394540438625451633535204974805838402292723345604148800043127142583228192316009256955027772119418431435045553106683551316717627482750219923263149660846350521605426160882580098620378576711937291283470915599387555131361056145998217555966982573494668943735505057233358988738386739098058921594755133554688910986838034308768473376669020039541009631477928116577693714516237837950236578076132064355208722760293044847764045305425949704509494128930663060224412439473191805304228072227019103921378559446380580017807020261452878198350141861244888628322087433788034530645756572247242664554395220919176358024984470460248900808446929732267358071507139908249707305626429670059936066566510987748396528831465503286047696510117999297542711196248200954531710975308378182633965350571967648557808119745450803317346381753284556020028548328134586312855619193324081280942009695946127810444611871184680742579672101618820508295963074178488704559568561648863467504371864516318107366766058638458153068415705145581719402708781158591196754171388713016177175220294283390984147992472215588227676135272131585304386559472528800586612617950334562675065943853145224174482253908925608704177333682794588946747740269544897008670854781828967846721826222729007693748536850485655463929667561131199655919797489482701375239824071361341515714157015152032491926238600710420616831684101679152709376852230898048393556842440002496800869501124254568009742463730734814441955912273965908534667187518029394532128702428634816036640107872027169548163490058000219191995571603677055302051467919983270530320748895377969148568632411001961234677805801349784382490758751938154428291112393770530881281480500410024713101856661187803579273497037920001725966752174716900024259192739855300273058488835234017456115997946683566785771718621252601038880858855904463344595797615561181240733185936627210277654895095787196388435951786948963114759244205951214667393587304855662814738972732967350992133983255676932074719748381656425666993192654535071787792698245165574431802160894504224830130403847889316602246166157218897100588398147918609048385240808103793814657756755599896830870636119892915139205490590222197835774945418606537495342615719205044023458349383301409885148261376789775617313645172291369006555721569657998617005149911915098707311027666446963357023723142181719882614565960482634618017817659571826908110444988220205976404157080904190525961754338722193740767657680889035947925119663765271738506595505221193968190303728452561474811511549903427568869201689760305007317276129434274360716121787415393931048535454993126917095631651560547332599611191154506565995131269302360610066819496604659615506520508840020946438891947118527692239210090405526505425085609697724937576797659542431049892312288537969016937512100282265457928880659070740145926544317331567399419203258774755646565426275912400292658458480840324465268818274427199444747651836128177637046112342773393218153065797765921518292059173975024150031983720480381587575332844194292694095113637928208327828293013931648928864407401243289085114408172860645540861568777708006349794735336262122712132069027951825333783545670100413489379812105680059330659593711627876515481711808276541899022123965305687489307669258426041086344357654484003786915541657071137042996734775612179397648152591851309266839375184320157353854250099284636194902815847737132768744188981633039168307164411456423179843535194091237751027378573190133340677194579409869172287664243065600361085676708387579462711921982740289058119772973776574965688077194685050361039774006930484536777626308079214219504946367018687558059932987535217734867657000065339796957255934757845200569155991065085861270730612492737044958589821479139586419720431358812094403967365598203376294679144657396413170289664168125821664068795013978986427461735109939432688265793226182049814388258060801120355956261917639651064807784660383506325563683581209384932799046300128263528986355520195927287889423274291871439313493568918448467000420485393956141719576070383009847179367415239803302583820270773748970060149183755402887198618941556452164582882656745482901328726594510777564582236790290759849043283404100977324102621554177180629005174230900868163326495720871840507950752004973196121009203919249578793268532141449049577395982113511264529957921269835960216392021776417883276855972377948124146443937283286792998870183132542110458352439884568251775354373969460692490520961901897540268870943694705794456429007707582949461452891617726304611776297999705958713291788397027762980439372342416717339147382284274733270530904426750325959793481410662140145614949778762258563753314613114999399615629921299771434697371693209350383512140510267471499168099526420902385096197478068729336155473974169828748307853488336994781967535668579910524488021094517429833940455211336116664266054130446806967991310668479602295938172704516792600216635402483336691547669088579515868208458301757785276745063332915606019635029970255640054282577910862563024751798442048715216405879333554450129981220206903917583444070474186286857368151646926447999135009654061079450021248120186954860725072834679109697082311367751844333907809812819940201319654561415843864940475102754591946982393822408629440086270088474940551320755577781292049821440525941033257071683385575443178348113204347404091051503524346797705450046712954192212532735325254457192460631203424496204916668700817152158679910932877822825315888193844744122925552655397262225930211861180690701615609312544754004919800442753983897800206952540058136108542089081553323372856337006539300980965859197443266597074021062056160468369931744702733868496364425934623821876839585397048547967314984666326210315642596363192013824237587641697517648643209459495551356355578402921419295518281326651198107421419383676787539767423346546063291914845966470629723559309166840172260533551312548819959826597649438738405519247590796290780721511132582934558390908740192096907600399540329370423246778736025480734424787486243582708326875120839996519079306107621529741045826893026173742643172305889511289133123122309739199718437142373846385228393589881561186729223564101256531037327736835698737863888101661665805048323129973542003443023610041693894642866733228310221085672696174595492638497648913285351060105786759859674694201172699506676117157792583866312094310916412633533033010038334726483966020416987098418915956888387645446818285520896712134388929619449657750304835328881377139281504029739004840971744719374996575942944781874771808517104029025618758916340652742714055520008194166399711437506530458225011145398780405673424620422980843779522300913038427425298151018851606000405145105908302908689340383832666871588705485159926235124261129341125427442401520758658567179511090969636500312002174564004573396470345943853539037446253979838180417358646148100061546781365218781405583946811354586338427144280550901891651894587738660636294416603214452790822822823382154716186281076273484083928554745681385783063676808137056879763306461417998612605245534882928857455378852681597325827198938016983818128796965518982843942775402879125241685918252581695156083637277039823371210328704950835859077725709693144042826021849865361916264052997854543659688188047490014682001405534222026639864614106472270083977546704895376739101377785987948239645474507788457776145101528122706062018713551179173961121374856184430217187435382100712778293379349906151026510004974413131470256529059975028659072777024618913320182069897811557943111008318968863159884284586714524555165170363840896307902141193658192094311142807286542086368642890001434538353581328294757149172169239714053702303578620791958051911168215107397368842845649745962301855283517663861104977832670254401544434248890815092578234149748745214680891441966912820956645547884964655023590488649708586387284208402017485073998575149704472807546033703268391216006266022603609565064513526784493934919938612624727646954988865695534817228839968569207896335019950784605828071039080061529883405372447686518763441674563333131764629693390021935856886784010639360530970004293211644912761910085735636652085945040947540488351065652827100664233304796086965930433346574285895113565556238219696942301111215658684374783617300096896725242698930890262019388516131072597233795494321120392002908491002233017408789397375087937763215376724464059030895394978760598903770254472081461287476478762869786880964587939295071781581483815379579921553530425210598130121656230806920949455202681529843338342220185787342572992720941941889812106520881463932270129401880234922690207131362610314207930596685155711098987464277342643900626652596520922853866086449723797554503197534593204564889010960807903686230582031415395869676186503777492138469953517938464433249893628154619150818275791364808468338326783195357801253577170230009410545602174011097196414573242109749405014306000626834062855762723280703490983021123654270466041640160854661255379372387551825738597598974845291379572935156650760237253863189127429198731450209188903357179098217973999700171168917846151331982819501986774586067570044532193688714808944128700381450213446175795549675289404853597610644428821552192226233791858021270100125649979683680926276073431475239145641011600469733550458770385735342293468930737852703454848244567828529418275814173797907221815343556182625604168579584544882666302256134145954223931779257655816084707981257558615816192839127972339005020491913917899010740682249259237162185358516961881713752411376607563590320435396897945452974218152973449478056268935612222950115248461711545349899422876477571018454038054709891619341521149270971184181897973267660378276884037612324504509447444770415800078114868522895591413051963058911382170890212025488449614935379389002535034348599411058033743250352303966266707967796027585766943929859600702738378566508347135256132647473141124898752893396558604038476719813272628558669425316045838905432089621759935101115499764143019493389582195894075744429451947984718744805034476362319235616176199958761068490959405768256940795804577620072117810032774151516964663265168867943748513300283877948007171024033082888801026268374090836135592202765357284627507352177778153047093394113863402879208414319541796807599492797904189427770057788407176025093024003198244416904011914743583987857551033605291685848038828981578138224856741967687292062083025270437458424522691322290200490265224859780797323430241367413100205748953249174556908191868964789625643077401569876737156016116049133976669041104037136858156243083879137026247613008108019045506465347795852984560222796946265517855298420100549411619150277378196950166190591041205026400876397611815809302643520941970971669739093770879001513946103839104730120639131009388142864698146508464504182475939875344208122134285122555749315784794854499062540390688776530240604860676672969434810531722684545603601614234798174513494539193412465247649231128137388334698900232618676816618970690707267871407449142400213578875613208886250579500065823554075985288640586838834089004649772457814583289598751133589739160763638125963534889774559645742695333925992560616007554012509080895442652795167348711820114326541487844182081828105453806936916148450524304905634199138819940275207511927584938092677288407702591510117499685950095264320560143746266759450739396534150043711899153327436499822555746823212988869078832776106519893097826380335412960484176567309770219045218557243888557741390231454249364606351301891445796439234893019559679912598130558948923276519145220687194065019003202607311164300357727055512532044837943819332007961015695339658820934147417962233752316077940446279732331629187445732390017196410376548023952530392494138945417221452791010234448665952659477895222920092003922200470592800580055174264634722300010356828097652662353923469260414760179318765011538354859587712092588193361330567281456840394101779224300429819297671632102749468834931713977304878596250920177695037186778736136540118457617737285573043193725603414907490400753261102926204440974896070973317216479003293405560062425600774207572324662475660644126192656783530286026646847429406457064760624948315766328120760954746569355383053487883192093925758890782050181647003412564699562531085930609389135475195677935539322770439358309671776328245369463099302500059519237564099229855723128458367244461217276235039002832291984102477465184655151380877749328781574751840777237437994815161624081244151270249412179850761413194074132608640513789689080584821807811366661957674206399510948526156074400429554185932922800331662964015562394792813877468959499754314276979642423795905589300031501706576783128293437170032006210628702951951626608515693783948755845222688086765374562174225007505727423519824460751505011897868173727131335298547568884673375508889603816887369180229777189720324505918762031350719313157461057340284845121716568544602440615521526325328744622115741380326604270302419351410300727011893150997874176884319681532917023154727439006569930590126239334143561079742230363324478252608449105304128593994176358651407708678057398288176597684739091967210124762916043361550658831113393136718841294977717170067432392244370586602077967339923670197109130646122240545657140289699998858131783709330722568149109174391607061371260981530392121362086844496569272623089249467079878312160235048014176393648980666343621662399245718854656411028003095616630644745163706293539716764480807793316497202375925113474673148512873332429385691562032105717997944836578460372749338492620152597440098036014863792045204533443303230417152889970484965887051919884673666350077537834754535949735712161676240935718810752424062489452989532822935546362155152615936025201069782246790368579830995378917534740208320021933048358916864337179284143462601301600537724389928457095762442876060226897278856538748251405791124554895726266963889386932130339937429095193729362190681246053972778102396944004127507001498221417409149841962372186735189751732191859484897819585991344070502775700337510702323426617640302490125351501713987642862323012837553611061422052135638975718412306032565964262832949574036947395134655100224097404894394856294484842753599776141530459829308985852583051046809692496440425718171100883185308650299177613800019691753054873145399031793669185193607213213021971513587591384947428992657435437749930934202305604804571405315531661502435187479887072850731458078832804518272475286503820050291828722477374806823986158751400416484988919002948545216252646964791969941242086770929024726348702987373511542047887782446396706757923019442305898882552340550057447640640631894718535411697268990960711280446026258819194110700737434526647421555988811720356119776975202862404003765356438826155494177367768022744432424893184035974331551394531799235106742280631881894847509563080815030591007983160843361775714774660327918417110141382978952977678036053411938753982457795231831930054410264400219728196234935403991825533528832595990799126576525491253751808449639050015883094934711321328214384071027521048225436497325282309980148023870911824384713313257253465724380791793719760777388110541411784955643432263135780143439118050377435256127423289331098790251900006585746180811576785111049713516320136125047517410704145848927191150146955620168934345097324251908826836994778754130835137624971494686163629742869545770868428765191599886133803808648096263967649228388023935177448734427292341142219598339894462461237116268553593119449506624967413712930403510880538116819497469573157216784616480079298939038642101412507489685668710057712346276470143926965602920448259642424798873638201648320576456082353844974953685980560621925611848617060004115799158758912834179003734495779739490193071179212026352306860637254370251169429770449807483831321373714603092300608385612517510309289532190813300752373465314091035449461536039123480681256140523829072671399060249281505906286534722669760171151389854510769020261112041873455370922490598265996060387298483085555011186026023355947293415742767987446423995547940538462222684395419058922856798479321004798015917508533519187158941644125992871592276176281076315768577148734302202245885695038285265086815404034584002731292545508302263737344235931589227253713793598629442743351236239286762625329974927374295953945144695710450085952778391965205248926529057679439027492429715458642959535463242939466445287666762541456191436216816703538486301156995330994298386585014893786862182724344568188458557587300934753786933394501343255172914817948171428778129454605604187338590724727840366902338328182384550239893936827655363653488880448278190051378004601988914438296029753374782333262836280101445712605486778336373329754363458205461652807005200330050594595375481470144085564530382515130178256301415345613103885442713385237194541134310862647001101032154587148482972565657382131057449026053974079801576364955460078264219780554846939404315481242351097226325234665565665117318826642253070521442146373455460515088353924426068445895106211881357063857538552202692848554706490714202754000669748246196287821967809450710936693182501837947127763294468360579473937643699494398355963326318171131360590664155980397726968510624373473479146166062873629161430392892439474689513657641031962806801543245157885324836050753081704292920441540594059427852583575158682778992962714663663110558104055275378058864236791206137608948861754950498316373371026474618044400859903705361894615874537227950048958817066864375275069041711376772031447621417765568373897544058872671107926975643464297015522056733889211868763250215048474763313322137172374628077072022686360333402732221956626748661896292464281755724030250440985007184976873381700974695553811403333798461312896469261727323096372465428436329942260157739216173570019786562175083206794562582702900263775713032713237286648047079252273241660268032840214828947688122878040543943737843797903448955534157518181431419126565310746889841954318169159633563087420617463637817604482397073126437253227563975666297384145112729910229659159206589882428579909261098988448187451162717249862056738894560334658945098918534758000116407028754484196612568234960875685714117384591219317503173538616940558160711444593523498580997629515619234810860570184412602117750199430343597710078540126873361179539192118311793301091829680796995070833266322333449764283602654546788591074820814261422311469595808133986177355262115888648086299942340709064117133776711632725022568326217130931836542267622313374417342775471147137819654779893797842290300446575158262702162828600814244698467776078031517295098524953284578311729131988019540135185881235863252173792048601755860342928263385522925615725724622607272404994095451916033776502779461814987800742792733123880303009566395261528872888680782382786287246316218773936641878398885222390906232096189773513861606742510734259119906489817553757101616370581432434392450793527629129214833640204589836523422019306946104744567984378182746543351317823825573129625888437650535205281666031711747192064093320409077774842453448306279872474771626283601007374673482286476060474072496344489776055151085145826753292681481441892314189458380922554609654074122129063735737636701216663137387652418798056577639952157854960036964239523051944925993456776792030673350467246264696002465607320549021439296435854334409051578481336957226117663016063400893323406917592152518073979130930256961514177778297528753545006979778819929616753806737946720171838927255729212693263060541565270840704498720006662670346823511735064788200094925712114410131449066015581965575561746036671122727080878971840877225973479810584763441593440614831860239060288003437515361970843865124984524716984657573528366830289663061463265258127050178146754988687497805245172350403552469918601890080074436454812908093297499098607226556374938671894097583512702696649966424523347788737991618267371744508968716314073592302638063235777054288073090837348305311608192850157609751456682503367485351923812978851080752324784592808284215083756239155936530245459199967716978036205264926162715229372547256821168375444019495497096447876386716103305562790872965623332798470309172620672431481576586577068854053776500084750460019134701280691506131677538126829014874609768294075222374779458363183612045435247378487536478477582608369697763971341797132495002028247835166566451903801675608268299142265344119683701038131881077982960142436873737337625036552776800298822542255786470185948136203565066547838728817770546957009096090490169850188729450310282172534764752867206235274047462847184046354519007558821732331092373952772929240213532207002345524135700765525537711175426018985948158670967795201525184431702783248129300104013616654683191357727389588572719403405778775688966843253599209578606271445574589451398037473249890879602279638640541718442456436200872450115995524401493327786627687715047647905852163323423849739984354251565425561369151451967284904146172575716017379297577969127318101518564974349585718927987260979862717504957089205376027378247377518517523007349468665872397645210562864323769166626190694629603378091721907459641018106786326305499961391414381966274447646012892137814527080982393486452156447260680390496686096149853265406337407756491958793029449263049060077630959484406570574109605502958790262305455652355248561094669612554998183288289050528038999506755557382639457655137889795290771648244067825692246507094564258507397226097845904377203570925992476413081806692173398141624085059600874727335912307166476142410132913633073594329777711140233503276378610990581571548746663907824071749548503891702416678519415128916777224717349792006062960583110407679603209122012720246926455793567998220832887910653166045706910837963373342319120322252124072279760141725366947884177989794935366963460575188327301052207816795264738078751930509611134070926975199884654251117440642848756213912750316998116763083052336060694527754928210418903972517610469106521902240642887591346568990931727497861927873180705425969026677046803094468549164673298102635958358875099427416176038398344310476479265142487522461532547211918467917652840491442789833104430997338686395583503849084628513794516873302219021843279598625141554313107133156308853462069238399313989465720556103752304083198470854058710476724291826281941690507111811710248648326167515195022096348493362598126748126058970153977199106999164714999190416914101368996127262820522892972669529112119527986395453710471905257790555204911216466411121407750878916903602360419638688864260634602916270048143999332788354597178993539099345154873584195237416253089727825442096190707125597305507811888477255650522422896374698037673968559360963019098168140843564845562365955140615734094586751381955193006738316011604809578162415473157004399110291205024076624401215398825381619903032316774526532726139794428075800317664707914582515987568632965310948368781161536844011491945205198047422498746958666358901841636632368806843079650669809605667190950069795427985517986539233745437991107112063807144004102747451915375998844613700956029669505916656990655154542060130619285152503635759620153047353504977112175065728356046431972243504414079363629445972669536261858718406286603013331956436720915606312035247561106441905629204371753784920082118760362515630757140626064160509381404110929424379628103664101615713592558851723721693415689842160445066200403624363260959709656847692978995120878597348996710299099156120669914755951723442597343757839444132330161200262274759110935140256882564209688587297571077388679134501321836246263582172255557330924834313534245341892301334237247019549959423510168786864766824246273355837301729579966615753949025692394843618466471967186841310680891846560666842112081337257219878839544371459834570877639015470867689202819089417486895789077832123309224393686789663876124019731726877637866184462578012306840650789216633972077873800710371540753330129330133099917936751295611598945806839642162569377472348401404902354671940010251017149730644385849531834141194581963612696842026643708442074611382976740451549943786030337654825412805428506211277692353422668399595131558571940455567392758545872138550049071421431929297624329215400888819520468200998516426967864011844551983933771328635120255887441039414071389471972270145492020408609625301292663259005220077895985137192321221323010884060514110821712977361924065485045621063412010508950717608598994328521070695437261928702521204926526036937975706366735821772718950157120091822951481708726678324375034252601877802894797061903974837388569378882311588094816105373741880346688970603081581066947448632562685723084700843836396224864725708823560840734263057125834299525941726690952714517726818912873521913359397990404782169865062046627878457714443638217155906988046766242675307880580039670839704289873050039175297713269508578169220838709321404928179544438556298769803182359960807677542367121368493845237088105074966155627293859229660017365676127203906460805314072982345421900828556506920847970824183436160681885737430209893160498460320845895613675289830242009896829998799658178236644889733350407693784610236352573498339022802289006157855599962333988483448994194651996305149132613743536463853700550159473776621636702711771600761862362419320224939412802397285122186037901771269527700167760417438014474789841008352976892159543412418035219036828963440520962692681294657566517323596945634027631544102282782533692959127571835182283486136073108970553894895172437907368267121579872959148737684495288481513816487496359276363155670755852143342921595093901901579686359843764917117318101184466048496279980604484854958911094573435330515701545876329089496614866776798842799669461695286029709256202316230749751100274062672127679381184876953131979426164194506272977684768635526898236706718178658661215376318327655290352575510159524368313669121574743626864243849681821763434188170741401178080071675092953844852938608086008275142896447967454021256639256847151439530183461941796904400788617128624953014193700031967381131393077817467093074046770924810469718778438699511329280163040711744220606360954341550081879459469526818448328323273988362624947839425917228631449862495026911234443029326855755917947651583574302037564437970285323881547035207752862865843631575014103191390536656058671543187580057622960562838146467079142186649932037527504897146426684155034772230618955576725948418806074375078302968396242400551716341730598572125204781069228357348286675253549901233313163202335549593867960017111753769043214630473351304416933977464097008093142506631184735409069257147127938005605895034331935834838660766473762989155344656208784525509586597747314804508001520553861886311015054796076967456363226173921808790709393587573747018465351270578742198438230362602712278829940405868977954402520327544464320941208509464626432621441727408463693629404124433942195475868606824570294899552202730723209658484209530999422398253088844265276713346502875332292198319130316814804772535919095010150104467757732169024627720101855611806450660591432099259000726640313262412406735591951644308157145481075621780904823167902412855154765859652042699542130380350751785087849048481862644596317690669416708314250820729822422922571502623616698880053964947585162945637627660918876091239017398312830548175769277927665499082999988485615331616227771685069956100653067762142233588127987943436339149809827600423803488725100226024004625881361682337164774760212399772861190051014777568927335063962520620432980323315687642783577018354212855267796468366000355179611299332510794411508971632011847114171222077607447295529313215155523030161004637665574635299272136645877925631890936373030930357037079291117907243993097348415530545725070511269915354332951447127456808165490105455185435360944083565313094186810191272135365991542419630150605688202468683005192891004968319703767678690593790482509566767004586955596617551104430517321525090359280794449712839337495822242465759178134747094689311414193581595457320552929455814493447652178983312989683632067208885598680039423970126175105065182691493538685162530438986422455708299951368287689056212288228472052175445563564647857839275553742663422322446702733955417392352610223805663830294067548223292121245157106839654538079775724737500090502361002828434257056624146557049338871879943620259729249381232222038148330220637574857699573972156607242769534232041305071157813058385170123172938065161411241074580729674684798485037291681612988895827979237055382371651595876352516899354668490883644344683321597110215676924804199100934513052793256925333041851966104075207952214068402604518939163315963097486004351105513053319993757502894754152493632106000007071069916401013690629597469592599518210155158658941906136694448792902878069612841202452407224941574333603792903906821215182569017352251917352616413540258467432543013817349079652963687386231601966252419286506206830717597839199321118757518305372440588760538109292856261853864520802306278761089408525445829057831060705307560935614287356272046492153489745485554652203855257573105462305960901049722928105775165573358686540452163807263773993152667206515351389544562217157165195963872413316223058933316568514356256943237306543225829137030945231511224470478151978251387731172432949841398579981734462178835526099432024219393855183911476591077523969205937847774040436066184007306581963667001725303894809678944280588243565133385461658231596294359560921238728689617436479350256720397922158226168546618376719675962070482277919389907875753265077845091681447208288083942532169349259040500394916677791658867610063511186237929335920892501694622621734148665281985160544733208165653063437150730348618203168037649505572684019975144697677309456492972472536506497670356552675353459900192426115280878510336681464737188662968252795509092067304671317227891498178036442959855353968644713973984557118905874113927796595440684483790555634178962795228826544846018496604392347673474307515311737468187756995334003174261477602597098516818318805554758947882375092232581782996295964897328069886031072849242864349434246178627217952638126499425022283709577460387156176141459138970494251608464529739830214285076115856023741451280980158387186209850754097264484634278007865957552861717325746040961328888878766824349807867955897014254518627387338559281336188980665712628869450816101019566404906800656165087277872351794933856011042681865245359674414742235918354313006187908531625905411235431216569741736715328703536934069396270440766319719242602822716709825165279359972329834099606993473564753841434883234310229997751359396924841437597972426621976990400196082564532610821943888340857137010847586252441999973934629417448804805555782041063283597996702769825264036636191643545499701741369565051488175546498917525608083824309559720784564058945741591899121537266120473114009404286697089856265670651879629733476686760069211845680262134830948269592151544339773596436858532697140096514737536104787233499713264104211937203850413058901067305823729492631403278639981810538077671397740744508516481822530874746246990777075797308597936803032499352308477874435053307178091916265254344218945940040128854389466409008659270735941712792918192457020514646811525087270109341037196183627487440016214493874438934277770793274357892081355454275042123827583649338760242133658706365469483364282946629801429744679194330143113893278059731216969666611526540186240442659685562282921223101823843790904755579841277225550515262490885090231115670767122954571123860690858800346557019953235477916899855905305199417758548082730682854656631193859076763405239296826159213543690317203037658456717112522681117039566464060261192186056155206873291803796959237077919660097812717315635015558106427926115346157138504417719540721416175830541803626586473510533144604889026599291734853191635283670741446352144120594645098545625480974180872500324466413112258411738412267605271941355671427679667041556201440336288904749596646153662198121248103457941269673543440000847870072664044218494608342289995556304495012754860560169178990727110650175397598730582784675554866954200722907033579903956102805351373025572513908044225378247961229625894010981586615560638391961712109196267186708934048396283622169401232006748603992877570340272161935160979979835726033460425026650327651098468804249391961202674351689619171432693529702849681124303644243051937743369799166650840507960794841380746230888344012712394379841706711863492304368854232230554945302207007903358680173592004189260794692170975549833136688290283672435733095308214884416266080242545769723620927060999265196331555735650639019197455693734569317210943193381121434506368252777998332826728344637489585442386667799494889515796432438821043713441115188696547219020300658522558200514703893711459061427271284039364365730201763248288100395308880290940426744333299786847845700221873087010775274154364913710895043913322416180514458290615851349681601873496724843071992005019555026929925903659664481607239309514779248707956954410703758970372625305636923371554436001980083634537264951907822609025247537158117684108165696914934638702143710200268269612110871157642368762484034281122749974065675616639112817950363101691718732671032981446138058322381116941248506457738849138122917574715547078023015434717529793173717982294283489580809978742706173441542026800756710598043556756127091775706280344136070295544595985786718512283821509052089094873419696490364275450659971586214264800318713440746401957386144518053436954291038067307056334674437621118792516912364554237375511491344121931431785107060984839986106009226673997857525189815639990731856554063606231681702308398762285995676501189812509760077651997834312815937991251011739363240377777933621747629568623971620218029266977905273985293796922142456885029294248841756369354591347152394153858560262129141630644350790228107613578435087586879898320545863590778672992740060799133691200887025270640125038894024088129678067322589059373631279447267227061024770015718602180276094896305739594095768133379667789731342786115509289030780948249473949431353327662861184494118486305040222830321093580555721076086844067521014345579002265920429365809930464437187664809733751102445268429610563124093572915935923374633370444059948370472754222571095550016842502730566242379523121666422757950362169526746651801118717028988423482485626383663594129165911754559627506324925741200785910101073753870411950716854706965076320791055234362188473976553010403390045414022468006782208030456698970451967862158455121748736878559410831569740639654275234236329335221955813888546346724251575766473410424049007107133856167523693531423456001335564117571554331462220232424592943413287575596242801434898094832066944625610335320545236254522663167512075451576633320625323378907656429987799593714392264857916922968118156347699349454071612658516603131474737810345225727233057018395351231100001806469162599398917017377948645974689911305093385479964371019319957981808211246751318847426717747733243779781322719772650421218875285475089079218197494350912679952713687870657575034289086792205904834278440023765001316027439626685664112065978642668966929656233571203691929160134506316988230934857057200042218924679662512618631819036544916792657532989533059098139088551174121653460640382390581361397985415814442755797926038853195999912892164897238470893752208932194235600766267001618710889165188640831800234279376582154853273390598012549675042239303469575644935352458602535459078930926353656809361661733538293698601412916357165371026742287730481255892766620883289526323877749137228203516939748866253182164493597103737219419375135888544146437142840044591573076968731621138197730387538062769671797992951871023648489286621326013187051100198677045992679477895486307834436610773370565872920572187796498192911613542921010246850683103263932721318941058036904745331360616238937694234783580796268330292142905339995381208192034741966533097874017197645095490604251931426782766078803829437712822452816505935520158645945929826225077334538511677427802738774696117982479494401402366224730322340004103136368172011446701171868000948269034251973790746576425064646524019879991406479755771738844397415098726730846586178154520847920751822106837777433834753196391248977745690482804825537064077957547777015655841880178750311040549906335768148139334811811303232225379335953909200739603728111074799795232155457688482210395697253707142391008640152226810904771502301173135971210696192693018467856246134678058557566075292827005399250613561423010944111910976189296951761088581243245496421421710705918915678123171923628756787333961368497586917917490906685984908146923664252284885239617149673528113007215701691105494062330491843909286077708472160625552642770814322188157100203674485942894228900671649570543540769873355638230075304105304368589526611930423709982540993755575656627078791465919763841609844422775008117098350770930708021197216161120288190447769681005132960292219654548630530134567390529052322624028539070445471846115430584838145580431003671852553601782948932497279960522156805801871225874801749715676679807666406790087393318870662736792998707668979813512396123491915456344689842033553911587662171562278538356350162130075991623687107991646824193541112108328291473231494919876231732742781169414036098877708470642483456145249252245381698424194080833827709987150072404085627218368558320110592902065557250161872872989903446496748305821617563781516106590535211830682488898316628641724260549209647752149265329011728430236356850949218409959688388689662449701822494640981623265891676935722660361955238983118103959177108325195072456086081954693136716367214689107256420800900381812948179108299482492057200956112959773540607676001713399569255706470981348987779194902083721715494342774403119205695756043296984530960581106172087916351061925524388158380687653014572324379006625485320203415921752250149923844735556831635423065169825202683265141472296323600570046303971147136787162189745503828343655552625078270728318686362324675801806647132274645348090850861390875374367269470041539782292051931773684227240737025085034356169242064082543615940728058459313324531945954111282818079801761556187042810546298378265674558133952363238764673671744249418333932021860929889318707417099085013521661922783155193871501100834563850880849380615798207870203284355322994886566306224306454721424036365651582938617596132622098350209745421226571313145196410984934542761336728167285518037576789972076054901293483679863537801926615942202269669317313689750778218171912472371130183058398286080250912598812053976637477038532370281796446752298471549674593180585489865676878817213156541874659799345867155719472436685146451266011258184944582823747821690228455188737578294986379673831756938054689041546675493625474126746356397890807351132748575130370898696372198052289908242376824604062089394671254351816019041178092021884234674937371359262995095022443629336417076136725226141010680334040510382806128595077074621319947782457233763666265841551681515227767920571596539325475951329421065134117428156497166936378592656849120700293616063497626381443643747573982648667144844432065569816287612448236020119143587299382846683024801583900301577485154073021342392784749766098969723899422566279783417320431198792177465635758049937334057957544590175331728025334581703824498477900250569393629186282549103660756505014754605157694659785142545405435054709594546235344177934940070417527200958864867251466077745279182208210788757609176165907042110061281591168628203165972389277979092043805592148203946696787561024301620443620125091875560416091388529598627255647288693943186069249825048543414539639248228298837705699345293466749209549839796779772167490028363934655456702506002887262566218859133863750359499790533378404545284441461557055342353213049296554596943846675434671906690074136704948227754853028695495790555251079090848241084028064246719100968354902423568951333043169752867274849494939463898475185695078038993677512529512426114657689648275182448608723085212852570702181777289861716649626374249326696897558452925147543342455991145501684112737777916662020156733425934315629371884816439047383408575243377757589434425866009353086587442976287198108494961786339899594931192507870983675445880123650093793744718392951381811197018738078319647754515615913678130337741241618828874133831868592243388400002529905231722908076250050441566600169513336724617725817349242943692669673035266887873022568747900399890817315172081471138731036412319244824958202822655564728012199142281078947161639922410669452290021613826519561651299617850581150456936541534017240877791628896770039862124821640097906837794267400402149737652089060919108498243533477301987796451423467627636579397187199972355260709926440704662715914958683806508650149452437875135279565051868970018274120599312154350391003883038219251773978520454376126301493421572297413866154747108594309721422616658513881288296231427995969726826000707418506450096367801572086697109853499565859368569138155002472635372827494396401561878216222735944395228492019874650424652087690928330221953302520277507257662404616118058805032318718170424521623204271700195726057692534602636793265067291397421235399569645418186608358262906766154626415755713654308116824475765285292832504747544037257946078535584194178015727387655684361235395700080692961784221813095728897970076818849152398139720639156093922329766905861686095679119751016482770347049873549902594125281465044711846726652365188062287685025077282938889110854651021244090035625358414221039192428540190877407355003303241569477411048591877432070021505298222126831078763088540872537737926883164629889096362876388998200674056944322550750918022200832760920458033214734698253573988733255620995465528324157960729290412749807028711290913414129343406808602165118600451502310235007962689075145816583680807550878556577527265254509020702350418992052905931753042383347851029337750482674557380911012237668959629316678039174723015693215478698312337894423977309657167032774775841695064767847888372060830263367981558503196573255137932458049920731369978577327004928660892763075363439701267846355425126457897031828659600782327355654833758308685615984676730584479339834037410655381294149879783729579690010188442950318383277282645398452905065228174534547201911613921912190028247353534496213821446258276606794062535663424404645172796740257272412534513490413465998682575932069125666339655718416105603941145359437048854147265268029186172866016423973800631913622344237758683800592023378541991703790648123047983421307230884436933490316495244318291695893278718901941723907464588550687266132635095696631892428096324879188202316453423897018553346872151276886621814647773888816226702734958426938342330350865464216262209866047945952331630747449151218793667707262986557289488465890517766014311136382093289716687979792903659888226496393322478325775260909952384960410396185423829031540099321593126115557438227006360006853556829451869558975309090640045305116960566981655258426990727349461286294302574722177935795839090464218009794669167284943973124388869009001835737144450002796598370565167203867396357330933770805421522573778403290334959419073325698535460693498626409480802304135517703933167395431921965771281543504592797269365936158006938761029885401295201750769007884862649883522990468322292363359457136177503378379426515685360478257170286478598529492459553988007261984984317600352965960628338980673509170552327409063981786363840459866034311474400149300812278638863552046061750860794929898613133662557993442186989588246783984046873907555158529552282065274871644612990847829716156945299797561456397978581927248851635945673297387256082789571084479379081011340725533592780319828553916083721815471167850389561412688790955019880548878634387240424290742665374312195742984227470900177658694279438396382835664978364703973584060203352386133219510626434707283511844407851647829058122246001051882428085003341117673478787131625751458894402993532329100075875364557705558699810785466687912815574799180758032949211853009767594028633062854885142575761788407398316068385290492532833175649913407314817697638299231636989052916797419992609292245551518072970685621260078940002312723827154831438221279884139195719743395762489394019203854379080259628990063964462169726383652925626118989680695666375562272865127684578824365115125205334196555121779904756166823639822437548557952469092434526466630452174336985480102342776696547701443829131850292155952033705851843763010739114686669316798981765313474428779360554950122811801467673385748241702745158638948328168128075782401455124856112779706981245714129301243636039750243465192572435431406249667599032460073809412751004299639119559296994426882513810702740550135666088302712471759786720221963061617090518054866513491142606158459249159579374233110531005649259043325908385111298447265004614311177848464345790792331046613282380204678473350917274004115538877793654236219773503000616357384754729001375980306852595094151293089614368046710563883517243572659944723480995402620382822205012132954955170678423275792674202590754877595019533676984855022653194536678897679494131026493119960749676873359898240052858978898296124141983139765815979552032219550829913229295094696895310606468859589153936274223432048393279307447189320276109709897650405364094225980615696076606800018311680292393142442431759010412456975109374672889434190958013673223193311950450038065305386937218681904202409647155695739000488642851696499167948273753125427329194585802022841866590119488427012672517259870629728241682295559648515947439963762902659698548365383168817254588387135217108578451128936480271121033570657834673408129895586899559806479968570855172864867803371333653963858864646808602029863875480375410282745521000155620244422931563012778929662178326583651679511006728288491250329495724778057283138182860312053349446379018131819689205209158823965976804164909109702071021676040821413676083745197930582212983961369812171941807085315160307431547791808564966790671852323362227103210633368456300985436006140631170360303707311352345897714414365776513471173112243317589704631749488137644394064636761530505449125226669221478897762370899532048121496045342742235189986515158457511015784353492922769430775218666586544084406859879951671655040116676164240248031480170857734134643550558745042001648756125055403293615884871817507678006550579542799546111839693703498970399257254694538511899102587715634056008900993597439676006447444300326579503706944030043416481410575258170214698636698969433411459877884593573414524194841382146805814402310724607926232886646678207106869464799986957444596947639240215056553807040153934585304394843135369211483102997107215282028272050744425249010408603495100691196869945023662866119736334183210248484884792707157886311593853939189962613028415341557868086650347231000840901723951896904161955511708706334092652604480246243729233499596868738068461092231121842081356783709532677047356186556892811768607592621707236971306029352993090809285229009128225285065542967327293049800408280384041173485612209786859499078090262929560841332660795289690403845196621910218063222695974695165772241155648604183320127952729075734388715964086151364916441586657572983951575131231148540385632961575122601535045277376855525164802327265887255442170580345981043601629889197053290963076931551857379366070003698323360188817049164584377350438598417987703950400105668615630654341202879596176830197686997337973525600291030669871413533399636232063699274706707182096031322125622042694476661333970934937519332706493286401386031728912207233199388741772882342362976540364864086785443556561741425301580839428442149477867473071098624001343818871286498120301446943417499508876644414517691147342497401143293505843110606212480041131519423744327017497444293328240203954430227360765926647646287670847239019346476808660443935978631603785052420840681231714001856199750128257403607413803163643313285624123201660753575566335384142153028850701655849873899049998045782055854672793483862717039843754599907455744966927208356995126910134867867499852548379758287196332155054809250280819009403805056874499027806172328058056560708105746264929471402253734457716766248356763414888842584308275652485093554451114812959968685324678201425773864215707675531966024858065966009758025426218341113209352451509189913518066698089065825507996133613379922870020666748278172977034943232403396608011196695487769065488362818008401965085512435895359136812993715368128591391716641211969440326133471896091676191439311441207788564727359643960715157965382695943100822153311562905716793207848744975088933693561547527786702654900722691738419483037288950342442129224311730784095942823497934635789368160717119224179475389906754883306530139417483347381363046265939834883015745308595067032126823255447886004484030889822443820644161058929455057583039789527472175446932931443413505824341367215094157623384405016169451163249833696077403192306448660649038519080893033120656055471260753582644651446397511188593077732049184200154509170575458620279865237362430066945082167086790741184396916009060284857797563104196437000482026106978419332476822476121778590329797989882382396656916757965749970776854690705971233135750652280635435451164928533407077651729455003485351882213929875293460704981374205346699551723519851807461735961784660098995150834849061896302089603680406266619603561474434046842588774262221911968889045007043303925780760341687605251739513611267904399573076693873892502146804459387654788376207952977468163235623908794446752628636475395788537673823720109059185153558450110923272669181152044628633350634930497805891945237155772517941505091138322650324545979525716466662279093684508066349485144871712276662422699129974441330990817018244870359829446591314048651635878925408077003232017316236307077460975907657965439205122495540915519748079288667152136740061402698788910268444524692334766778684313317417423757616792508039026228504982821328132886755013229992655872522759976278627116075965050989480608561554218707206539332450125436267867375624678898941533312066547408835063012189147880131499102374194025780034302655543315521740498327985610162285489084762943534801206213569670873196425607471371075369883955671392157746000011521548703094243265520577593592945558198107864044865084843604988299725003419678058259191883745966734904382967162268433553410593514940096692077868861024823025410578949216163748145728938033262622618400398511765625960636158158674253504901246963985218946814921452079488347331941864612790104244603741391089585147437662824487460787436355870335888686722803748607230382543979663808481507205683479772578624895612789333665895954410352059896014055853542655314151210135778230729916184870909576536910858819509121254110231837479460780595300295491732311405436124511383821969805962217402275149134202547224050689495101656087060718310006884401856767982911417182603898200281831141752934243439180931868837321982262233125878329637563793958017647582299172252443768035672518734417663383193177418459459175108278330068699771917009304387947665345003301448367577963736273378613976249550780431088454047041486076721757408827759394113933749929726541295320556984037796862139535886418945735683033028404353855215149008344453733271099186611311269136944319814666050595602184879987393909915789464640619048534994284363810825800611968016681437437541544076251995542362235142279533975126703310561728394823031248207767125650264743824832877016264568067514977803374828508725714886283859890204276588095555993734390693611850925313380069066003082649478862873363299991345909932765609287643339915574245133382557951573540856026807919692091206451122261294983443103713993759234109601432172915497836147062952688720419352170905605547775368470420202032399929060817672780471017920893515621734100439785911904723537033269891214709341268340656123410953518300122747690737044747919751637486829740299895437539758945627944822405561616293146460324657072958607595005984539926835396075620231972958760038563391009208292253522234238791235138531365145952440439791372224129059496636518395674276358198141038115446348634312256379534702756528589377844082323658097088798142890926096362599202942623967205644749723440239225748456696082164326218972836750989884080363422143126108234002708717674813960500101705923316106727357579579454102076797017286514061735971397798333987529728183546877672549090860373661909209206435104205861453529341298303345132194269294755915815633007416104639070584325348676824220698033450498469769771828888722451446721659594150530560101710325673128292949805550975502575952893873778140456674874668950270781766626040943887075059614149158512916041644647188578613372678847498294859938376175822221516043462656119156160762839645455453031805139540451203591383520707741941310763916581926041448629790167641411998588602379312169201120973365345257450417405008848100917999669075650885798265663625891551680708417788553156587725396669897076023551202589378355142634637323568456535439173349074270734520743576016672200663242758773991694158673937941314172754155806725465859291987640962337784191995737779105995520062686748901809096485464656560485463671654020459778501622036495911265387031356157350795278650859035885935109614593435954302529395148152460436640763706503969768991228664004566721367522731499347573103574636203300441208024458596543625135643934526027663797272779853233254072950377295232025401360635281993305971570550553799825100866136495628548801340042284817854133368107891227199851982248113064800818706551053506062243314183983833102753314033876596810426702575573430805831610167794095674380261595698311849600269074165046192747185653894146738405843343104225384166571882842190898320932639184290472294265360927585276562319203300766564110798547730871277349123031543964824683362485974498918190199632159824820296018008910946394229337279899604078564329175816510989906637450433965529884452641703713002100469482462014547948992219726985306117594079348423208274974565515713138281548179635383500616443082121122970928606517028206210192361414475665017000124297598442050524603309362153256679373199900322910378273991202513991562061172354836276532196995008582753882130075228702728144091329116057100827849575361842338131192151800815569144591623586073430601032249168182137087901372387230602081755433073849723708378314483745755357253305023680931181301480887967435870517571838370878231482173844796905789569145207897995050670282088474683676240227124392512415704164061362471391269141768981477961637428707690937084930967630284136105753099757836279857623076563540387397576736135955780605383992657651396940959869426267895034253001850517498328051240273295044819835139717583074140599130936298979793283885578133915833340007921379800343098945465387385633135140584773334071607948315970798539525350974466594770655940754775505020900931167114170973046431964449868152717531455873701981037199039607782214184807311383069484896846607394942677439059894743750466720642043255326408654443609110979289341781275878147413123677788535621309369659189893796493432100968607978447545164619121881830861868406662450307585680022415305437251720332197456244543800084057881058078621876628088195003523729972544427668427057199149517998253773027009750831792355930413863327416642334814530433458364370512572497607191952737147452806059240330296080815249174438497296567572724854802439099875357546537209039523142005140775589295561359711300083553280099323052185771084354849589040552441253828086626681309895775666880526992747998737806093128272930751716785230919652449233050368935132670209827771075824785707974026024386980699773470840144758452648219102907645332267743395559781565104537384867499191154299768807588648628842730487892718172778305186137445176500414704025594009023186826571443556998093381492375804181373181795233082561135877586184784876398907016703368654885872421391152689791971594213151503520723972315228171191850605895116062029292354312330514507098431339418670494879082301975472794324605234891227814463721640339212440852568217619253589507262631481939498984606199544927011750844172067668837853643208042990154629343096630709490952165390484917627909358799296554359753907583164870709199902613484069182593409539840063424213280630850535860150578047631606137083308855835640995510342694945075704510246610534123560886380255275712937206892120158577215219117434914476255350699188953579454300712972143878410496267280376134713038274571928917094890438062795019948884280774529132642528550488079112554430728057807345769651672127783063809966716616711966739770325116343746266823853402232876772767741548662499240377769396767575885073364373739031189129772617745633998693808464952546549537074512279535286464710982744379081228742597135292350629629935952070701562086864091291986818783025096874439941119609106150985617797656912573840821338684310360741887200809279882164418797051461700758170254201936523408179087727081307537235532410680586646061843711701917775520830559807192300996542270604159588457983819985029579611490903702466172937332553944001923494344636599881027764163054656956009501123358286529572917165955566025352411396475176452448820577649423721713114348887012469885561976058325181781280044662297136156594782654769335477145216804918455419012729929827068806725483129388282160941745598741172835791539126596479290611821191062667996730677772075698363042400171163113738116688313189068688634346599025806434997773728272530622063007333178604080710444537103748626150630331904769858036088411206698227977024724267277900958020326881047048867672457938871324272751516934583297868097711187109577876653137861478533083281709584338384655918211603501324707050501137219681506228042145309039309165278942348795400155017228927671437740264391039260080893544344289476709950681382849001656558963478300508840573639179059903646686864305299827742373157055776048227713612267254155335068106162028960821424746243956580848189749098524428895458540108458606340838963878757913046966447921999383693117765355828705909714750843653944598499965505018006915932943778935684387531973944534350069067530931131125710614208490373655504500231889108413664021660571117725922586297693704956884184095928741326738137957567585112949586111066546412444531249805702331785365945501723269590368145368019064511987449455714399583497559205035572958585906406531195377174846535609429995736830040632194712045856297479832704752296482220285844704460545505302245179308571093813824312281620761948535656174657332950042182291566509461738755763687991552807358156861661881917600558689287924428816153554891900054635564247079989090614159683952477181959048926282890512791061339549111174180033405740701777963646294931116609850382200761743657472952640964885693443901213248556896701053929713269492482443932839722682967633287355315621624074853922442436695209534027205364547560630699990437733122512214403825136380947230157624469266683184766741663583999465549351319351510196831498771732535482261493421951529555811010074155439180198345053035165008558264535897511004820791970160844162422198750274813413620425636934738714345071739122752283152506350620825488702319252649189865042253326248538051700086757052575394795709677343113917455474211194105170490174233434614197544078375434075861462024776399356023195399082759044604691690693525878757276121338309981923562693964851707643239910258798806812247578902471875805090457305907537109218979257701954137893643811718542368357406326256448360038373597594709597525761440538414113728404153039643334568617562022955517786825749629618875426922601064270216115875978087094762322239038972869874051476795672305234858223930014236119001291651851207062299597007299005875283468177691979334387017890704032926472288586287876158117125780171880346539902521607959989108686117136200337923686471970652265143830015741720562714603168518811748584520355629561199474329087850387235596600667268383271035548097427657044167868935872830038430828104669621623463245116519662750551081179253569401108876668159447129227185585302717044431396570581502737990480668159937618861226256892661337232074387501400153237388562785812991269452721307255668809767278935399761516766627963180184714532953358535088568406305338126550553883431563632268108229449216868616041581056627572483897723987898485404420494907118710466668449432648190716174683264520385920797170093289932419284827375980401324033727158969822170847125082035026128022770528337330340200280440905893698595836371269319251661904264029520303611250647784418557744457669611024738095721877627324380319493769182185729712192714420765939205302388334427400137631099002513045193852610697323909670299306933132211223854503105748802025770072164603851246573852242011086219722970727030682013446592472515329015014773125261961642851232970893288039239067771730704264930570610550115207439687798229516096907925967999574027129506276567445911768396972999461290991402274117239700571243095382678196551629204831655637969478004154080892327850568928713281996885431710736149012726665624447330791086786605832516387577254573491584432433384698772307655504112784787066653186758011861300660149664916608790341923505174428399571929299928027626344965833849471951557402620221378775974794298398668893090618694140586947705538406950069197230288354505934703510900403738261038004332069392214516262834032612714849415223709506429481495513617410603819541997087787312259459911305899141345765930891629547167169417308999919964636514953951562815462785012729677205312741240736107922445446307542971465309086664093641203318589895998049721369569401943287409415513434628917614139257176914992596163280386200709369764837609379971148303377812023985874530937117264830355686583107895191473720068933733804567541219698712151460996180274520645182184635035324592850539269661158255640244058682693034511872070133497530756274764244816091141193553245574148382501203160688847388342761404896054721825010352471715050939317664591892464578000761987723479489231063338042472902990508101777573746930034735841151136255252888268578757321065762245628347143417412060299914703453727904797271094510152627261759672505547680851096580400627844790379286804082797533870364566642953356090784180341846199781728735528318831297200805562418571219473072959447027457784194607330530060133628542600143474719488488377532325753460428008727180845195077204793293257483314924116345298985774656018212684197686806372538911929449206172570796253161352400537229804826898267279812696663277031802633409115555187702872535690349842755262155847353565299309304756294470809299426678914803747534869315501120050661065938161018199588246762040148669948879221736167023553744242211573911966192750232500638528859469825866888562764667187573740140261655298931832928708419160370203929662374415828827186547069812979643993647380877564971850168291817653819753484702286600595034450826329233567273582716533876988550750184545019970924119909674034796045731723836265771490879616158096078792187727251015581852953260059642481947875034367713006036508620736656248926354002681041725668417255019759430411626109734099051446751628141297533375187084868620897739990721328189628113501308845202839409238595534951901594737789361108342681526884520182166577697598437871298031246458877601012731590252276931676718662441534334145397554211664892051037828914230283963254746633420955852493544771566460244234109513596524183985592674862482867955844911779332930149222650210267104451430104258871386586595075364769980453288620209882008420009153424311648277509557353181416324063362351251622955079866267930346316538950827633579455893004556142047166949803990292594354297227009871782990907301102302410398335437882964244816773083208097007400867479985568123028459029257113526959154500603849066561951237692637900902543778573041533448663220595877110043323152882697557296958041823339712857276222928909849862916490366325978580802626138332985230672154713056667208468716176421116201399335563957762185843383768497171168882647610397009142823219934816656314025713512217892935441931559447228203484996901739236544797515467396016663636151761778923693357424357711419326782989792159825174321762863056650325965646689795278127478028330655364150413569163076541284588053186445919273684758608647186654086329567944695382678888095382772353265013613387090747117428280067580006205413482992993365474678118467375755672817531363263308635860138414527473934482021093678266661123164586601824450300991590843399771936863702819677983070643136728569519608607635284521988326989480332057330820483440178882149323260999649362696348844911278405284668212730741613189071339086697069068690310282740348909053521865384563986588261544142805795526390020530645421515094373852940659250876149033822272924917409983761991123857371817210120086842095197692623611333021196728598764793338500954614044695302427416108054552191152284003118473046062468964558231029540862924649960842220501685396205520685053397314309177277244437476302216523395762437895760008733951341804973294292053549226474198380926442026246851035343067763777405189285924808717393458015748907159469850444940337892600843269227242354015446199138513924262765059417806156599186953024208595897382486386580103916821669305623308756028925585209110309438985056393967061329346583529652458196916438992785144385176167532164301631568299053877370904963921408278177816059934123775092985298295902036469742626654113480194595001731050114614079970452580442501034820072399258471488550455848996743091373514828561438939544961632211163669724835443414381759430340784427739695450445717290138097735678372707011583858844708261619569775653456258023207084474741198970767572487103267659925558915779688058579828607165656392255824256454613595904348338335137681786722258480555560623758420199075626330684492128973887297775502348883549647952339152361888638457813065017273711524088623691711255611066933401939503472630870851993219548614109245170690596200445051588164635371906686848985843442224278805795233312730937181986374328801296795957057357358090626863749729292145097191500247630793292310380494596504956303476572301070203074018525138592184491349078720639537974729714411769549993542212999118942565177752051799167019561218383816302861775018802187575450526791173808399499200372211106392387350259835613663910707812466003702217294574151498130302917700690298938773405258009015475448053355213550083780115060001101460687912887221936969449595440860803158148666381527994938062028558255443065116039517807163161200103175542755571881546201330180714734651012400398319002773230425622359877305314381636478893727860455564740377224859987415368017157163205797309382496134766958154346660034555048663300046368605679747911594200543707766741615851154651836959222903139874013312796807767637069109088836927418427487182607766967083934971899425695757189715995662033192403945068328626257889906666863274010378644449305803236894368637618610048768307375310630191498353947147309784032790646616376142027643725820469661174156203868640244271633355924591398868725211033360590752915835647129821650480160452472278436209085551512077687961370139551322148205678699159831906310428346331804564743021249968539463225760362575847947857113462750323285636196918580094036174145147809418597359003231444118273514830173387694908902779488977953809677414936852887895623402626750811174556195114025103675958152993694171114441855088081460498844674474393604575598361171774642555689964482954091653884203013957811766745802413695511423194105578443797106581711232122013596499956947313302698128962483025333728082338044109914064759097227204241318633552541065483752670516537275329247925185299453965921212529497448435247701262103748788257624136017219862414428336395316116097767712059526405419829318050736639109443876584695979999040273132996630133286316868236614908349682977317837812212984540978042544437943249305767355976967268279261532557243649236092873626160935379960171231204157796056475577424098725973013799211050452527387096513654550795087671090974932540809086505851242740725124137248645152153186443209589954172215871732088838739247504319317802874175894898230678619286254022913291128163148849874198440390331866821150455083478732776734831539867177859037794591444142993225870611667867086345798072903222838007662651466170585944434364555290500988334259320914307745754395156792616027764977541940753007232060932902468220185903221728373379562848001918986138620363253834582731017997196065947543494366328834704250554462707694337521377036085305767726015394693533782749145843537642122232468206875754342244252420778179558569518108535782232524382178869309302275755548948938222127154291559195929212102146314059674738154357229859287829320555892110568915916213530190319001892074761075931909138690912952456426005560034496681307075422011585417094219467728606071584835821862161572831099901346911189688483322247301928483155039308860651730073821032067547377704700786012416171578827029325049023612133121460483003687736002027934273104517551639862940790086636556601745970954317813078845108403229037411973404134077582109763250491333998511615208366434566366069573623653672780114855556517854215558375624273155324925994641867370995974734032264674294159219876537086394546403863496149284450194111247189943405739646513667321194532698507693617999993780092108569273376708122945764760653734506841706710227190018472241833081003172335170926538166422639760813627375099515478443259328081846548740182958722864908763116687838746430441597433531909764454352177904055277290908108032822921498030013801617214060795623571695748604741392346439339763157413326255587831315717549642002072321413281909413153212962334946642406299425590886865593808367785405199204040112581069571744842121936238270393886345318371735430963760215260338900731318409427539782246364566273743065009259563760932805467226118953226498061083283768615840633032405426446727027472736912571456063974903928252929969913338104266421459880410492583603052483117352589452853117303750157581383145107648923497093095449212358465650858355689873804309843874072781256586523021159993344502289404377804507414766120140020683148238781102570289892773434296456342716760425149038974394890539512766486128767605332104041677218739913346706639938877417423244890499892889301331306695842801229871444586238036288903547679395711743002222709447133154379754697390834883885626120613166646490243029700004696510668804998029897637538986729459676450465999450750383793172611639296331874030429500187400886914405744847037073745390205048963657409707184267963714291209569742935354383544942642393413517304293813324879429107743393025077208792769710135747346352198819624823519106445030352980700499571508950833937521832230543247547046045964431197340150778985617313895369181269292915592868715296906809540286899041527988450368029821143395631216653431330638248509481580514856216706841558634734831477741715379204218206090824805747001503703506112529628183158878048305625387928696547423658495874555791308695898320443940030476012717040901829388616964681594452229916775624105086654227464038545098593570733888029722505180042567677352213223194598828494531983032916323634580292231801996555264058001209599042087922644350349045698755605421927644906302738972096709453005229247362295640639321076895234401300880616616981150691313797071935878964511014190227131403452418231396053617992032172114148507943145258125600503700863238661042331126060246739295489023392266721044304010419245727290832094685493769277957299109985630595236016260655861977401727432951662061821862075668620494968900311974718558617110504273210337175134850328042580817187262704546502739145679874178057993104240551865881272882501286254050465939650203277477109662911911177037410627377568363168327870158887777150332400572873685024174541231475893842283468578083641923165862854613513962731074482309409802456642454705899390421954281559400439685860523149149599346469535220951800769123721874954988405188447518951549680708494163426734636236766190777587622268840752453450736466024119054958594400337970581507049379652405541705675517032628084397271544418959482075061081185494085584336054087040883273589701345512262550759180801606769832140418675517787359578223906110842323348181119089229582754240960939913652440565769427371500695741332436741014086571996233563774122187434377927019693709924263205302195837055350320179681539306006913100233186332549416753593506829443103934198998554507876067908781729808758547955766336984910708514693813002053713101496932977585232611957587148261503681359461942749223110871570360433856724490618964610157183689719838905270510515719433362825180812969126396306072455443375198589145971299445998785893053986196649975067298654576384512845618382473909324461360485630013454820924507383454354699787146089014287261954724908234586453945543472730937039446335839327608828192214690541219996408665858854256670325734825899125506371794403763706966553007069004305845833094090113474683757731608618281595706891840602863543489870364479314771040162860565484834195854455383882163962574532719066818533421072157558268424688297750870209282575898625270131358579739222135616998895137730037587705870640204820879945467749181709550545961909823333424740008146761602019206797038729294185296855488973614094927792742329758083474419368245079983491003620548058221342858973870578394881226548000664701777538591760149887758194224115959556526301636598060660943150627710007928623131816952105861550843222810453680840583790003246483327109327049368584419133980418798291294707978278321203511763068918767277559703288307172615699882118826761746054258400972471769158664423332839532563736428280784656352627885811937578035189184149747990246284559797370435024763248381882250661481811188196916503650560970521944600469108490650816157809582192676142452595545908463845174508207112500215772140298024524991080909989073963141713973766127443326944010353623724352179434243506323210060814736870911507634396625847865845124812517104123244860180913982036979325669255184374867500595625980158314662471577228967976615403241614117671866484171230388068731695273540640221260099776438552477965060747828330170384768214440733199520956242836110134760199762398920649735885083964532496837911617928826042385195275178862014172713337441326165026828525309167728074356927562094380991071402800206209247026037544459756558073175393963666840303315318458751082503828528190775631889788079312906843287840709556063139888702437958527937633239009043111722593638790669076679308919503301136681126590055066762394823852149459950817742278433417102390755176592745526176412358788192539171358323904187944608958647729592769373012019355421627240596291442751992279865353555313648545205135563446263901905973077101448396513103234468894229302809394909466907413227760343918660464895255718962997338444586396588591598907236698386558641417545653155444560718057669354032650008405405025725811570819680508900088223766476199957729657935982379713852901924687889388106320766679303875336487755583254532960296933700046954267889770446368597493237821003351871275354016955026191532061814091928470387477272161715424423037906848349315314068892346981777941667432300204520754150553082269503898950748206573061888716659201757454553119476545158991484411063838068322353487694996264297521475798369932595218146125929741563739195356860250982146310256735873605789692624117997144938749180361710792218867371578979433375057514815699729166946384178001963098198580299731285439438899775103284094361932720579996607592749265603500495022137830578831334365565148551265181593319424145974619806402689986559683304803865459652920695373778966206346201940574972864290193776683606001314110027844956654893278560444446180006815494479900786552464119489681363228937766966474421553406164476642728566279970746761119843295911021920153963445640241016522503418481627685533291318409385308849800914623961344791570831453621821091478397616688472747811226893924459496317717068777460329417987282201932445961569650724334431746908735027263170784479561679999402903556030146448884953660379932078578103132762836587500377336396013835392305061351560417744797759357751002426902773477250994117940907323191971545875428265291444122257321065333915100726119526429328485973848198840168756764517508214250319039394673067693575565090601749766026577794799811246929512305477414824178815102756894013778264454888905142373352811841929083653341684634321027275358440066764310535543834488591331412101808675689514734049295343095482351357008825878715135915839767515528179655520249689495932264692198828188824732962423848989529176012800052848555549215225357873127893922243889581240886619570257548456683346979913142381556434452491376385244834890537648704491779143750408232465450475616860797407737067374324204955581984862975794929080583408374551068249608864820149666809140508057697140152552865965291202537237064142166276060132787866531499255911652660641242420783764222024067070735045868560964555976966059273512823074481963868674707358247136809509507810336902597806908104695396038799059631789126213620215220236757863124024126025101114507428972226012221350809436984326986376257540361132253731452185021613797368363783903525734263734782250860865189246734048172998363049516779694564849692086907614371559154073711259422415104667927241696949617564347788185552430497844553786611428349819397117957014072392344707880035192179165425722924992079523072354521041640869998128465042074066262845583438335270682760129082396306046857912761781931510688879281969132960843541741210722217418921185576346301731396483847109726396335800830569289912509553786869299458882921079924843021353925346021143539532534705967857136599486744409825696967003087356219140697114300487389057864491914488817223214699706357334985868864779271008063678152410199218386085442707337461234482232628945493982169604264721705778893054307374544782628451002293279151722216513717168609150249454469512632359926575872175127493935397734527076320983983211193912006142309239168260125716389265739026293053324732726153048987953056695509095583024340162537308340561325569690300585245311278640265589246475489021562580366325394795226390193515260514035707596231493979286038021570628416427134363975532579185329124935961527309269357734534214578003706432125259401861328343601763350049790946643635307631743401187566798026713277513327954488831723192523673983353377403134417524390242578254297989835975833806028159964258177920117004187853442643085782107278129705343948186250156989659252910868454461345162190691583872702776856645826475029682876853145694823510907413458923608751601476691699045279887881327103461447264756522019472134475402716016680210965044522088233767233153976119345665404968895519158811203058189383977750894931194465974896650562196384666663680230508939015439195663334615084595479063275473927156621335747546266192972913876377320097808789582259778224804805768113654074218591794953083430675513323606129866437776053865966436166345430814188037490006241399597436840380286090819732264826929495203724613564659228608106080174053049869796162337942834964143499499854063715336169111727812672929643950124200721958417681311555536951504537250407119512395370497020477262110910537549772569188891335156264417963469531151580214208457206575076623262389249928349173259617288865893539399183091529598327253239836623034993812257122297434250970270017286430776222971252125256043501155030628696580731768182674395096390367435254083626227379985420941864793021241227303536294223860630838687476307736618330512929492820738105342530776653002350219638463425895585629114981740537129428391778056985409988210199460222032539460308468691069729110733907325046909016541062383294946489996834145828253352042274500772662367389334200113524668035684147584145610828255096257143942271142178297938862596007628333559240704788426739006202785391065042315033254985845855413615088726317635546745013301864585546676921540916193027249346913496437221283761832365737561918390852435341336784597754984460717767186977549993258364101563148226555983888997428072123408595274577130102723774228557761624984523083881975100936082044291883959395584930317981689128789129283632501884540895986977869334959620407240741184288272607468879720645772023113091889829198268837937435680297019970355996140131851831743210418635121768261399063568733661859986001488929230657701313376002773633878091949428103120057527425056461273135261469733702860135509613350908923989216444380897619292809909149661943185545478580376569068893547395388331239753486574073631338483214031899262395804221380576227491073907826019414613680670445701508815938617415204306811957822387963688141267790093494639409697027033577014952966854988449437502285152033730174450669000409577247632969345037715009363856134755526366693217793447584817108839252468681112742899681178684424285038384730640166936949240686839318436646085946190221493665343690139545532489747328597401758335465510165698290991188452779808700084611406312142326693154761089139904796491182241538666332903323304440299463838986591650408911402668577865136283160270940477567647955163901164242332611916101759305801681474969319715058844064877868466876886016682146525046416652579238632681603446727005965012678552868432844914925726835406556554222667407416842043769182502658571692965498091689747172078519180585645280231257206849092361759537666903183981024655364378500626836393556293715359151292916366479022271098449504328351046626953607452128572490561522157283833854699046777023744083820041885664941162106982061670906395180045450755619635368722229521799457957720810580703710421986311285935489600346748989277882047656946996940743290136535989124926971683283319929958703475242469294911190849183114918026535073154320369550343956125947549225959989734823346947341370041649900422515365710201094286918615059719606150157629581978388094045085629698103541512907613821072162080678925231315799540082618179400331205732927095991295876187360864691105408245726505655588175651262215491842464814892734665805250066145586638843056812999536018597963459316282561116269452609761554555334449537473843059995079853982358996119916127874752665635824656039499680892539346443741317302014946908348060049930711938958290605156939056707535175592018243884529268632786035017453480810116369543687546416728149812282855921686867409351047232796787402600547036245220050606265671546143928255781733894600590935091922651813998906386868277439257443373375518101445655515581924538795051759699461132919866523731548738205509342993898581747924381709713260929299979990243616067452632904165442337802886109209644706294165120727559978176465411296343880931625241375907795937017730962172993945850306833401484520576874385821856242085508180550370662238595712116174376738068011937602641176602510976181235151869997920004050360790180124155175186030339743777032805927512846355207015420017283447432838362506314083763284160362082703499146623782210735462502951809686413102616267022749553551378070052431323376996853864893885514480826760419304931168935443052258838070976305378333355104593548653131886543274964988102092936165001533204825287902694810804529761820903167567713195404219351842807299637229807022070049497098317561782225328918173481079416115018151463454839955723163255622465586035212056297787106868084359750493678368367006437585965543207771318473872828036732651460941691769813411572715672671964615825280576988674095111536927905623286043384399463601842680965524644334485774149920904050880795236810675734416536206906912431026882281070824396732844448500514254355718804743616051629627392293648763104245784245249902485012742535537781108015816471025277750633305664944450296295519114784409965934136594335823135978893089829175543914480963250419801667443054165987657563887341611754343728932642109762514047644313611239651245518635463021511816190716592091271970170594129851576574428694743037231793559523095840574011387060099073640722165272971419637497521360550534737365622339006894350146328765436618167392595771777373199545841508693309782552441389329812486462620432291171381564392269641580978122779714703479929379656463564795303073254350129750379783593188895254295550367495550462831544470165478775457137723583881590826764225833708638323733379416774781236533787958158090809805899503669630355407878094056057366461622524519083780367118315714793172706518500425071465043622090760008511382727673543068964562352602741164929971960987517619592868980163841040356162861177850923820303559858393675598080038870516861854672287712716138443854817996196767591936995075646889518064670306366058537974764527494775183402304969531586111380230599181138801678517720216146129656797557004808364102928799479152287614563369405633157165870523837014432333186594685138350712711419378776108686534917421731506734337208648141070963971983968079294850939195507549974998247884603846311359183871116777727185526096978430062223075212199399623801980685677182946855260933485101748013833431501289688917762434307533684150267205950911165995743279715129513500448094178149004431482571962855584849364351601507846442381036837535422470255367545189473005493725183731627687836624429216818196051254310998572150765732934835751982847593398791467951045304700467120641115240999474077421156126958947609972089400317330656248465932313428561120431833158254364590512236488841128759377166922444012225674701618814521743758340988319271041588697779874405067601035062062980970872908783447263594573518872932088506290505920545185931611452860225467136394166240089760355490864940951219321035267132704735168627065784862997437160432690965575830234804868647166316118957294180497238244548317813803532431015950647773194871782015057332783772065958587682667527956230426420909568889651708670191203196830604149674992911678017077058794042826998419702171872305319282847151304044078081256443856670696336082117304766659058747216906332627218553642758388000997481295985202597657248346030240286860856753909600100183158782389240634219189070527989411666171484326595232597772261265289520476252801394935594724742849075364739030254515233272775888618886361792461336499581102453833531295110220338724778023918198960704555300952759300217596610034739773963612558663884276464184757002433631664834180022694117898043714860314504913535099075793575554952836133306440509139196089166273907770665579695396134734374741749765790826043456773257151607987274689951934957554950137834173685580757090408193595597092554492043428180226596335449075062379840628265893222597371021346753091484098937250242205077954287890021050336558840599881443264445402199358899225207850685108282746086841304864332059065906288949497357377035157144020096603687697810687918970292043950033145013904630185547896011969737371029911776550624966792924860780824481658544802903984142896808981627322066027771223440855068788584395320894017972914414393320298197621519919053082037983717349240787009449145100914566461485469351628676265641500703170954658490078791055621557570149184300730344064745723591909822127103963909487151249997545450613340627098124286121515110010962320012901464424774558314002589519703540319155291528967005106467183878630139408830348504778931237971390710902907057306705798433073947031294869871782348775826617435900988991880930936166172989119442204063233965561134248235652698715190347897212907251376557099142681868452798174601297761140712149532745458620783459282497780439943230880720252621442508118916759950696344664587313394271684067799233173073324704733817398835459665084722115112412866555241469663920728089430788231034103919868773660521602421139836676503099184118851871233134785354338545143776724249609612737639381584122754092957340639776290999763224896420513951722589235428466906905172791213349357962941685672121592634709016931452990909491244076031229113896967234161989960061562748309565384495741970419900464997366147497646846373419424958925443977674681087160674702135564641390520891815405069471104268114034531342119251893630071285949644830134055501046980395379422481990234280027485929947938732218035595285755712948648530310766575690063927745089184903364913230422108177960158588450463123090828537887073267683263749597091368734125326244383182765115895972555553427476857166254020394595578462254046278487375579345198102814587296171863007535637918506756507009109101261175746865499690706803858784529553792768292115980153767494103677433049800487894187377864892877978485994566358721469584732533638774091859847393545638075442576554992392209890536423833339518830123641337478339666941357909224284125191926516285553590298790001269705524102925498116165483835277412519757452948376037791303199676296017126930319915648766122595471152939175958363237584814607963856279981489370899255754304490999713018493806996372343094554435338928824903197553360054262720802511057216716391501854164025400002426289662457627569151264272405028588666348592900610964310125960967406060131549057359591905837849304827348131408318614621494393840874020587303518881144690485629683036545269451005396659951963229447109322980538964806235726251010747076419817356948516691848125806102436454262164318908308469896064975341193146688217092497136662065613626369549780020901760430743256054287907799079243963174186782347546157522010641761658397348177030639545919570558195652510051786233750959853612499794690445238759905939224623707781162943268284177846866434770319161897806504598124975503492198119259891310044376350088135725502659779209836912771826939007713926971545902866810628032183905625928229757666515388045297124047099032079130511305775736424059895810898648895514560033364610211959806256689847003803729110017902439908364419134042432121097444296593643151204573075970005598418494427300204787903416242629331407584030438281361522236469593850923503315722489742791339962026434504535034020122023958835067613519093525228616625536343366555919266028311434656696437549945930040332308578810469198298241288983841537198822929175487082912939277608176707244503093950671644411534480084966584456258775953134542469504140303778726767225630975177551462367246961526012393625449007513857223684968213306777366440902630375350719066775372723437475268843857889279247028866515607405047285218553643497084758695918101654830077559483509307306024552595713759943351551130879462505795258080750554158280438290067510856787150414537505892247568761242527845426192816123207225823198234544673421607040338489285921165231685892770921296147740699636506685867987412228109911668865847869877692128342266332841773196925572257125190393345111259107363721925722281018862113564332363557509573163177795656073645525356458941796054951289986889464083496413797413813539180887504945888887908875742347474834169649886982793009754625863639155594423257284069456170732975896590105092283784526634369275473890763449506455790459792810630098027308416383999485060320104768085041758582494925300035990979790819170329291257755350614331175407901171918662818335924425760735891065638582440391046671116750541435427799059513322450733244944959266328736566339107309993076700988591980414793824294730920246072519866388536995976349013973494483742950335582064026260967988197156789603509440262037348121394551235642492834349760523018777681654859666802201344932360194778247426580373737147253482513383270524351613673968123415001874729364811164535905714049117936769762753407984569551283248401059330075094953323767037445845317762918289444693162463288705487998098021056966950852060017012716786884440857236784547108596677662597561098563924772675172858591575040863705547658832391071878780001526006914999732957149875798886572927639591693376252418782924558662248526834956309402512179167916766484578315106544209548540402961318786291519345579428375479708862343989075139647345670187709952186132898126519165241735529917426534282159603113791637045130456192391993689240318169636818654197778764905178785215911676535874790132472125105364764735901588613211335949002375026358663760845036370519539689511024152135638729125068971594766085883287074339138220493870716395769815759459551214799883810240010897140438821148017324135539491618952370567990747268299696229983986043405209269259760143203934350525358866437163638936049704977367816637993136838921585135499821490181305143046131374552800672269471257743948102736828797431242754484709304950062785944402389018475632170028704714278580741177017158956526764026561616988426460481547778576112149721334044967445908450848175778412676953471933474323144009990375256255052941244321152824907356745389845166566028870081857696929755561152110940425621077965227008535506885541031418607797963266493302725450273516611026429717897346516091541262679800529903420815563705750385427821727072235986370688355231043469729633643527459384485398307561190312706011673139435082480628731164152705576544566769523940078184720112423056322248814186529130660556236773646503962325847428441033597432399827214950378432953623474893829592057137368171027930891919578129550079471971787968359417641884564369210190185054981713745754106899267632181137106476148073669918753022577049085868487505211466829292944985663348119188128794628559895364505518838558270425440969968419291566047279901321149628481961782798030234527082079973363653287232835834720549679533983920478105928862440198003871546374306086860100390363300808282795302418765023970147988438821624755900783702080567947173321599848481963997535209014777066063787240648911605455992389199600714270482969456060831493537823708314270224336973736122658143908641719903392174988053897682439987500187499126731614753735152256575998932421251343961665255523630634766937984649135318164327951902802122537342078796101286624223228158775272916863244173359015356589255706805459199159628221365279183721091111766101321562250559095760053052635277906212662772496268707999075111868045506086048199120938916185109558291809227819418043982984347840193011579621365302646352060378313030379372101161025507478087468003702540579483977124153502021130619852238161443671470918252947800077775112210158199482016625445732934201452123142031716539258418382099417764749105159879707342741798366611570937113050193856392893701797064430137321149385338374688360913807472658203316119479405040966991481768054671738908930520777923390731139427941198743331682927043612252756433831896208501848501358339535037459915691802715896860567813726447973709909432803133073659583512148720002964012923567611761084717171095150091259413806005039203421392263641457616406502204336220820019080871582445742391254889314725663556341863818470715971473789102563722110120062186882261623044083328867645145259964352377534718145626050128424730021270527620628480676056597099743631245985417199821832085474983976552127204964352641556967115814399837144012512991229897263647572570356251090676870226371549683502079016133948897394674099187103393822966478774600265846343896340597051139986672861698241416564740336246475372148189401102702700703659270386615687364578167204746491664813518231195825646998498597771082635846999795937658282377330937736811700971936191106995005684089555978119908424442910078370489789942972599902972235733839372788267102737402130822629607967919547011723205218521048744225968953459553484451118026345645643232845278633605020957111423858709950985984006934054972364202751302517669798827436298476699194751174302338886914385773587728844536775910097198885855205697381471814058985886550013641329589449909019531648556317460912998609268271001297225213966161866129480359394410360779901712067358189381509758262398914079039937566381323017233540474267501649520219460963668953611273694436880816002084554012749303044804766369654978343066237532996920439098825152823337740031774614400778659888346010116532098586110922436483187335245182356741001819728057431732129428170691009818355847938814215999958948274916082561378030974913502895232857418982971014551825770717860525050923833253028870974024649070325560440529589274500974124932048336048473128892347792571353769237286250337149224923635796692564557327398688190223848608936116822963079288383289024853696817592948445727320442932683682869730336851198025020895420417569161751739234353983325874116011938024317481853026086418121663663043155462875582310202067779850289105409034296852824895199923052576084582742278053934328401357512862602778731253195924608713513960633255085658486360490606412657707459974041310137893255563280573910949358730750321182768359180536441294747873947712788109526087405055895501827407232597806739827808587107603911887767181254529802911144664773497980810465093210524146114022596837038903954822283706609611098865306449719333389946381031733907880688805367949482869036991056782603758318751696732743212984517086784787270207350266141914606674379099763191675002508998855955037294463083526100425026913088596711550559797053702428699947483267062755399551547379743687798327123657313789796923818463240384473783363504293530977649134701378748371117830328722362239106479571330586354594266778610303492527875093453725259286606043948218966287477587049994320872575463661042033399965142376314936823554241519386135246701958205786132879608652478658302902820988076093346151915586006386928009723438568700898153485201417566660672782953912275624006353396023504148911906100540321886288086902645120010703623253356134878768704768790470053345670994921993701206989647174352072906419616744090114548447761637856292012573029183935006455451679388910493079295984421758516061074579862022503095735284041751437729830529828766637794765599741726867052365978161762749191601452465847635627631602355090184057583263349812743593643953253227176011499785579905051529753939744766421907938006778798236887620242237768366150265587028281273108949696394192175871676149880298173226988468587276368025119743046617565964440687414895592018215600662978700290069789191556448525423498545958988652740466495378920106574636442566298733055240072787737754205569448545379061737145499957703661377335513926368043445061554756944112194434514988913260687450104826294186259719333331382559376103606907909590965469223208198216469421758893327077049042595824973812426734144285986118038477229528742780915841533098530546120275308160774672191620092292482801612835208262136798518032049903664431506671241474669557143798127767389692199606167229737370176414587649721197930722833251945776975509939602471264374684724255772511888482987036824550191673200993501309220878921338034107446188716980770363679492196724649293252041877737095440717427527735156886130133418146655373980950271987776717413182170913214418446973096504364047927921549768952841520372408464795166061165128939764058036069536914196226063758342632275520164996743787380270584045241933435301348706946759080323654546323090130665798801336604727005757985270620635743864881224580648933483375164735516350262305041200987627396545293222985676157634021851421418619230952956610296784524741876474981642629282095938491215648778591603446911229965248514165129107796585506448086523396188795209040336555709190800072565245385494977205129781535287578816489315124029298415715173288753684277851799449868070250620745318776381062116714001333953045057326368896520265928095793037104902414627448301633037580301606218813851656808652564513331667238143203304822102671653488756406427107688488487472441158181318922882607655437285973628654269511132345805676959965582247831539718290536138501276158856152024201382427095991580530163449306477336349894848408544477437364151985792644151389414589522766377815649614752789709286023563641177388636850249122355674216973482526022283048080223886435266904748588256631464531681823644874338133074790249873434334861603232793357157666925819157341250011936367716857178832492251012550895426536233921828042865648687902361228687243104352214194834654582563740973142718480560284709116812188629230922579247815515842448665636151239685016060749209150306674873672296946279997490754253689268167392106980845476484771181705968315838025468905480673761800773637627387477392065597360314003939667707764696234940326938086097919980224365478261678496804002493713873472510769821373795654821276168100372565684670582174942871793110761388476276312047504729853345597486039843504852688009324304593002205913281861186278998805963852291687312637907897163357837286204952733246138121894518166918305971820589106033381600527370823887878443684883329853197531464587369220825931774270948432819970237873670855539559684519910865246933442600162735303325667609173156982130891537330293607548414886573222370945280313930202123916972716990000755926844849222671432428871047588078205200784787935714776485256857674094577650345582354113308507905683391007115073819340762232660112111285023035570583495617279320898242705827044454804051173985860826461682933805462890733537624427943871717067978852507240108804837391207125111374801988124634129174435971112872939993379616178119062812633876327169740628434558866457853048491894902509752138732779479203886686226594302009591751827657800954744696099716306454554726024861977530512625286744437499926486705569853864888208331029001008001987771421918456990605508742635072780938778945283689598156982889853543353522137912874389560368070072166543852730655061618354565558896840236206457517835470688929709371034835316141130199472018412607906094309067412454762311091615130929499680373713539268763610947785602983985986814731438047928515032324863950686206475897985776480054836165779844842568650005695554514594672140319803600393023208579957025722425179261671738858940255939022266398471723006499052080927257439186676075301670137001200394114330155380380170252851354007140799551594963320111592973784230756909820371360672645897717099548337025765332764516274665424724429743946001863903990362425157103108361654512371916179277453119204184410592154404946501718106893109623811970960611135027716875086361744647771123916965527941267729112126489755393259180304010525294711228536255419873161088149733111039465515776731973279132459898894996788755840691854890871526332794872746756138181137474841330210850167441754926596158012410219847388286149012740809392154631693189341573456454507056259123780222343518732566561069521980328021330112766689055436019678496801956273984190302510213134561980919608128329101345341991106832595787525865136894288504225209457306184586484409272751001804813465906302327318843280766020601113478503922270293389395439450032469420121755968352648193373689679405392482068275563120546342892254383524463261150967350213121710299436845706627930377199807333989128438058065759467118291173801276729285869612734265911918728284459626858896287573795084556745031192660805285909421816498212973220829688457705222787127634355311365898013591681825627143675468625291248291564650793290974875215257579585329813044446081877348611364624241729845462181785592417244465331336223662777936115582039680275307451930025521912243797251760892493443784446153583142671445534224042783812095207530000526233381474709365120282680352505077905209031838957952691671704706763980441321077041853030424800475074618841342629097879918123326359886016888539015913646145465743597297967791373549869208524329766139487363096538748606088243544764167210744716176378670167077145777273822594939891432754295796149218255377640739662732751870379267982125704554467885378876100565278908027414652527081109363154639115143447962556343187081397588776474821888506428741365769363414846896638247239459389165879141137660830954638800919418882052703781142100407965982985331022302650060688665792213421096914060542451486743426868866843639300506536854095224436271326536071590104586792241848313935081063975648889052067148292461748169715529503093694306774078503617120265406289344284034473714611178213912716339049777259383603657976762279178247204461538221723999652550156085037708159906663392059589693937550941841020121199306669909434396996476187457322123157481873768175552966487579457418220265694749329126035241456234816895665644372393186351193924646107762689771860933357012253878410166081848543660321632245746693928218347253543456362260923721813291992131107570710129266603458975186746636068447313706886983781111059645639334909893481442534791871988383777279184199038350248943505353951395080008306708860790670141302791925146555878793823153646782170922648027264592223580581258172955311302276036262340271287187850700570316189977722503797788190259414845835368517680403242337978315142581525732086624908766190056221410874197788199666161376114754618740165139848116265972695860974879643001927532560599496539708974024966978754475460397511107407259836999171292777573486101804066592299654184961183165143158139286684729777651409163463909222517711301653094431589862241441959709391763238562691102655335667407124920788592220497004494750805126623050730240409828739813278931818430331992642736233777331140446636749752205030271977724223745435479992138229933439437359345811885238654962127393212447061607936810911067415795908152088035252317101192729766451901134480185490514844768400481543507525689440774690389245075221340129449788478466974029999237011719203665557708466289072360542390179102498000828485516541020073357385783058100619712509612283856791893038566416371446572955675114982850128156251863536852825322986427449984450436237105293110364183835216251637998146542782680552487615981220121771956121217948111350844827550230897355686077705170656186163304716206926890774080517236295089399460004164105177153371733429641494559534242718868208227583306575370995210659686532804137832756388182127208638442771359875729362063335351457909279385019674693835295649324972405603855643197099638134590118164621737354063403370622772768159686970294119324098297677138287327874110776305263491003146104223303050568175225195284748272608294616795044012642302953090970269364939182918446599634432042062010609572911705660354501493377259341878097254466312554300844696050659164733945158504677086124647916832338527233443752810349227659593390269268289117141731813220674084425098895102975314370454521025635651258355584259252699419877511225079140022515471746775917875917690813069080651715654028600423830014409994592350453351009041874398650640745403860520435534417385450840669858455100384447260876686597937329988054626325234616418901021408437061636287249059820200975398215993574509151573378436464810742960236181763305396217387171556317625975296031944782170810898033869778421680070229902871206103796600414623620655352154108717967876695852555994009752438999134456167026333050803542171176231431259589243967669849772696334958313688055222837332704172026516453566907929916663180253626209475283578371150952970667127673887064530645613923064377580593069861378819271701916629528154449671108023856065177167832094417569388781037052396996078016637516558432917686324418765632979839025816649553564236180445812271839922195909638943425808519489348138241946799697604811972412282107469991095805256709478957207806011503166093044722461360036511614578875326638959429430157901169897166859372754177436685171800645179906038795918846561070427766994917669913534388377929736692371224414175488182814337807522885978953084949068077709684506974871169030056120794675174553790495078898529915485499020517711820805812735522022642061822973840888043970792492422136557969921569335769752507443100564174906536389247067456023877320269884107529230420530561480521436747942364020121312622827431774266670882866969178765994348866159527407113766062420652604072477113076748760642974361656972620757351342833164680195066003034611409567500340152321476344814797340190050511129651732469486468341077109184932305255179747472061954600372320635417164299546073924341546564774958488823667785948898534923181097793367228247976832216637008806769088537549269152869257464060931582358118290851013155116763102051228605776960626595207858680166513270338362452378060532882061367344365741903700951070423362835274601436173618976740885334515864716792834111869829263325188818965391720525691773007527861206736086223622588274845556232762757964414980077558854574693453082644644651497824321492494199108300656185219999683894941274956791354524293039202419717644475346972406444137332809181552768853055417020555445216642256521483433753104110020422160750434049802851220844683729100536906325884955250604831359582077944418271890112896451101496885686297629729448453030214975464124531316313762090374070611371048351551511876501314259523020953889416412457494222750499683022133752441028544929506093281726841026708769702202723346321430373447675787998886267159844659967527929870620383930319742468090113085046350062303049803127893439160883379071830980126829169445275840245646015695191219357538491217225201665879811734895108863096611124483209227984491821055194207957436609090908569214157484362283381543101765428644388532318055141664536093698399674768104673109399248775425885853640571502090669397894140742087740611466648713418571007077623256433755362121194695440227529486439066224330852432418037133624506697703679285672740826773421448029115206522496290738182400506023338900541543726205520390078310604503224972216829804751172078627347857263840070543969007246654205977040663271925184174330809120436975360338450751635464519920864014923548577128682183482001914418869411449259845690508609515774463936930164000392331487626741056712755894187260829638053766028953362767757199468049150567544426840731279184230262749586443247967008632358785666366079176497968842500527341563122331753899202688669801798865859144421935891147829200253072357127304008400756169596539105860108704776333364631526019710852417598574247761893109667540436233568905434654315766649995853235629834869425101557757414245955842092866079218095657674512143006761672199822973371337060923490696474220030348296990465811309427618646892907128789292409789731326910302112673663572784896936800477255927775385392610587760651020221137242258902533447282007579502237976356984706702997423826648439890532872648811109711307537668542999892535823309677035376153647633341144142076220016518233398783984186032852669378730921995614480675983292636462376396868178127456458184451164512501323753495055552829162821080294301767739308127631536395116523083706626454509342007757797881388529617088064566608373426954755120662985124663104519541616477898380443965587233107975786870056762902046019512679406543753494579675484992584990778819324415560397552210390562605150018562370759687574866391840549817332391371417879438910788297644903305160778753000046824099958929267352381303170569140156356369418866086961635489587045871896438258129117857156825471682491424541058185061279171978190093946594270584956329378807413210535596520854619468794302387479618380540181341845628900239277318075284086394070288812966541304977657904878121221646040081681952902549108467742509713972176414698072625289258764812077485826686793945167053534717970314253632418429996234133990074313127612300432886261799389154617962648023405380407836352330420681653412528542604169408213694916021648940008271017626955987709411921058578362784725930554835642848928055159707433849704257099157943987699152331794748905875811552506103968948338576503862168470420761285574896903594266533966434958152736820818000011668941208494165938532851860979639132656377336907850287257444692898549677790694396568449951393621710203878793427720492182939641450312459926760252260895165837704463236233840604285711773301389580418724240770517272400883188349297913561421374603361697499825406172089448750999489267588384698712424207847885983390996676534795079973313998735428242265595037260539896977095145864275974181608228877898547186432632614165468058701909410168575659964364381265734199251214031986640917390782463712504219635288485749497725280519421276941534892660352225696537715650307267632079773052642930384781192258741589513009516512228224126824099506500974717797315328591004644645303914850221319610990953073828722373228435415228144654369448203193882277578532055369434584082355313774228678724447047326621514640339725338865054501174635032462487558660755325771319486068915294151951530712521613464601606332469184795592723563808461479873024722395872011965459011685984790600866522250771678459360642923398156423632411579063162344747040255003687533681635024623162804412378696323463451060060249901491963224881349398086911300557613208044128375188406106870992451433516909767891139826471233593093871024664576647209234505916277821291534950199568237080835439893994652218048452435381956607191535396812478004649636897474688574645000490475648546727762913125793005578679664725872353257513201569809732874069456897751825853139601335404606242423023136393571074747837982064391060881891274265746668907685317843171494664084950987810081892535789111045119116958931246309917237185618192189017996995556292858043767674403304558986555849064635256311127231184023284445106977607826373766341973586865629316781776820074307083512949835222609316915532974683947054409981599674334064966087357929031967043643751749666113430906711663353345337500724626540459364726352542804779966457684371995371548326738667204827229961608075448992009868695886827106159559655724284703849415600486653905884233603759679875644824771157034737677006650946143192440597662438948351406075622209595272424307226709179522767430149454085061971910242648758372763210984469397287061116159581141234831372231248287251390495677218392500885177515295226699269086442765593005672542984056788842141528904288456506827587140278805625337227282897863573174598116310265290875262259255251095063339718424000198592480221515347095835904129060165813503995890937878581583309729316983745568237318674341978798182514785488397882747096080258647603391199252042456885906846837521544604332095155041572225195792072329054136049117275327877101827732198783474818843910481746688475256347115794358836738283850274500808888870838711885105509016540403926410640493938442039518991491078064697209141945419775773976829252118279820613533030437209662018916425879853349397115687241800274411004902459674641328710478013862968527136519523804647364844324983544492162161471288682711148832660558003559130138937091567857826362924288037118826162234244370471807098149253657607359575875606922740370340682986162773454415368507362286057659773180901047182889849545878417548139962208365667531473332918138711165687929559137148215695431693372772253191726466773687584788115761848968642670603727614957073682201899403803056615978872906863445314099493795855291998710898613657029032214718149366619686418203388786578300462331446549566118842395950204442131425114297562433228942085754146226469666448681306385861242955122598539390457689386567633044401291245458931918344027269381845430203356917148974719571293159425871678920698092112826125886654971950685948629598559684275325378323326193857539443198219804905593432534145128979580470972390476749002986495492201266555890168531751177082453397902937747096106580442651033886915063002091632384430474227505521521647755221560667660327081975775103230283737553086896161136022598659481334918251498137508058622649235273915918128564906378672982549595533390393029386823487815224265773876768987852925209205525429631480198653295929035984106497165499540148079503247285019733848513049421339989537213374612230436270091261732709493792486225404410515746129598855115784381484112195037088199787801665975033098812549470976556425080525722888333689677020247317031988113956104478909504936769199040294601552695224986196541230527350178056438191856161293463537814502773449830403649641575372564045312891488767356847735669288744334281250986913970732200689460640490170495710429527472324317961063044291741432838360421255356808561130338340867901854033511217237963780622999168810814514319807746500799758893220833000408649317940145691812522953468119523017074487548829647895461620078079308736339178554524640169452630883931780708855415213334298971231103400987116192850296558864254920453340850627190199145528187031168998152344857023602648061725307464915195631569898136185904671934109809152469129600750122571724212982724060112568339368654050873678966529214255110429629624229246556052921084997387217812214318015184957910126182659927696252752249458722793439566161760704832608376796447911371205578083912795755696388149450444135604615889085291615070751659267892690248727449744763921021626561998928889138076742585335574634850236797848337002502413375256659135966953663391319404825914595310433229791418672171069100440628400542057222208018299953064771175114028559128155000484860434913687712856579634108320148923535537360285595225719438620043536225711237598570373674950156913146521026498502993260052866650417051659104818692632199869763435280812187440198694380041016729444193069917662967242017719256281317787838002734219392221142813407277920858136291949970018902826695549779066707843660731834721507129808955637778222298301305444446490332931665380664699900696990250627346973503131422882593995380078076957863415629525776699676830855507002007410793482640786938095904830166819513296642790748921722993712514991357566817485588763278210642202734403423907882158631678197161901919725648040178410162280918343717093150789847721876928179859677745026465522156084479374532583348071663841838707187789407599665037749330893326158970736157249052140097652594177249134925150202094199734378904255315448746148416135528866014932709818382413429122600159827465320244555495672222771729509774877025178331669429189210799148640749000988045574162383189010243684907958773400572715998364866789983633400027274061696876851007664779517375137390185961802801462208860256501210092461773980092917263318851307617553338032233229535594903783902492622874008710189385088259517890236370999650207365211676374484839728838910759276822513000897554584894700883196008846444979752596126197703778130191405571933848356252602717834836558628601281630663043260527815811988937247052584168498793931965183138300585963686374406035357860260260884268404969785274104938547727980157875815805298985257563553558203121710367467619744393405774049832652889973957180949595193552642279988213086871482313524857911188909990465271794272211481020015550067250043389208901877402140448605749346455615499980963712046217481307270026198167185825237637341793574793821321835686942156113162474028534953397967869578169406028358703511677907677557356490012464130282604036945808043545189767658324752952763140253962093846120731687387693370674133631643664937725775207252670361593587919806835431908710527555098477237418065479087285903403382978723134430782941343164168142039937841234719743491689103422983885598521614747075073048045712984930485168211576045133581589065715161080461091920816529272155896590828903178347574300653902084115443047259226563417770124642818692524763351558850417357802611991895428520996859584661443894088905616114379148886975695650235954875579664258159465080569509211150000964098714494861838177994675002494761084938677874257599179096853975208905675710971532017005795576458505228267144765274963265364203452732580070829396911549961720137295454865599631528541107955283722245110893253433582580581224360454895798067508810122728724744696288852710089118551937711278200878285280688052422446563998785181921154994652137522050125045274568525197374724977002671526308495926890836531534333625672238061584179780165767371748692737993407673454984635055273090615314123883616073960274640987812558295090929752587676563863219594024738810642838065264590910360662894953840042176757301429892468176282781158839345731211621290290134499761601690039632175965759820662816458090852524506515660881789765392682341159430013390146005761116865127923295090737314069174673975205672212344090418206940001817663801832129830761140113781124038157191884986953443651426775374077061698192830865196318179481999999828825717630566191287799578692157155382894930967209059467492288544033901486997703972024650822874117622859114873031524413889832882759475422803414752462228220574703579232555179760633528330259623354279548804249202439052892175226110044713384906361574927953585314305742134259929029213096427116861126329764334155843175372306557371592892680033835742131297493156662563506467238685082017285649348930854857850949549983484561533892399947207224967659154873631859166863881742386369873621946640411292725032166856868892187864672252786910340544605322447253389265717498053165696220043534279168870438660347019402450225115332603995710466833778211745925841378991993238959392224495288427463601123622626487435766993880043790791740357281485376687136830250602065147320776578051820817412501060206492263839197599549436107140995662151623678682310642302017143254845927393088889430627377180817647930081388695607861402853728404982301711352137153711341829571797662663626820278399541503971969679783054976534050565788366124930926971189123914457688503958260969535708648049771221348196892494613800777044210457331600668423040762265643746682731799255874888525485944380445214441504047804746233979393828190230342118647687085218920694663052551047898203337579244578678855777890133038694530162415234663624107173111502204979693825155415717026650590423273476189097220041392999837381120275197223318908151230704665923140457466605794583028277084372708975214941323745682312946606405410615748429382402349102224216834663421650862809198682165552797757379528513375101724747284752696982319703467062991669757563342785365570256313871548736827900469011729583506423985085158040733819918283669568461273893732208087071650392366939993847704917829391603231627344443916420175775196734566400762172962393631597939699001200573340049180421852149524653991560538714458869539494946772642275755701345181043579041354157717376654051178770456974367590606440816408561267328152564695655963138276879781027140208480732691073211883406108676761775133140809228523048140740686428452772366922353340034444104078272042753890270605070917590086325460382025521998535250409589467430279195717826285072608238318370821636162925532024191616679342725498819704507909189097218775418980797959804252838920915752187706216269339313584752457497287910179321541327060909459549087902501993279094012400847895768852810643928674388334571138722236589610693578403386854008138250850066212478230637993707661979410355054108971303830586222335107531694156347950230960549323684150971650702575489745456673719028594932821973789344880464211290436867471017685075424768894507218114490573459064199516268663027109106989456567522229639525443009948891479561720371178084955234776625253657148707713673128874795479633684491556173443951357166612680629084243689902624269837841133800421944849126434151536251363079280037840457816921286031148078194565947871628864684496200206578550159415106591529213218622427995251054530468389682641967083337296845280851848512047927556241446012075141491556653512246855463374703133849382002173709361114024352113232536234048565586647531264529329876384309034254553714233827690443815944292298508231499381337474553639425799772365190281023035544198713566536482172303841228264320966512395824422741556813272722408214832355556824575702862894643367767519959883892566101558450638240837796875839143724593146594439030172621071005700145793389668781937123085802997517998022034584843137473012358191041611156260426479451046297293032917194369582903316619473881656769711579705862533425048098956336629055566727615455906098614477086432954726752076602756700572618850863604871847374070610516002494413782859496621565600070205428531280178822333873145959356352205889337682570959601521379502438336470332409304975502111682077091143108248065594361255549271983938047081468394428971925740250812728628589522438406166830751766425155593759611157800357072935733715027970905938293645021707278142976547614808993228307912484304561710021094952361934029487521773063877564671018310024657436803165122360856104573431688124775298000754620873694497786106686081750201250630891797689950188301442610875631621357224241290297499226791390129820144740771270132261792359634016633812233617885563100764148754305041485107506775076380755816288902951035204300669943536095488073997517388955597965444386384633241707116211200608410011369700893211833510333307200285361869779887356323170189765281774169130331653265923693949970665800026093792174599766470092508189715677998519114775970230425739598025358811917911631739226536535721433879832265422276654627919304469839198393142454312387788182465923356109599585933809266378140210354405239363005596261357279373174986675991200175641322165015804375503013744679300728078299491554424514210157203025987315351363899500933752725001405830785428711943413509173626983727448963633286212855143612063681431097710665653636208761024826509518458163629663990679610663870093414660707729208616327571115592780157008936720954783285487864649279099947094297806422762233559872535395280525282812423694973956385476052708193267102482515201054346172405751126924224721412359358868434035837132177039430068445573018103358207513573209252646270372590489375177111748516098032817134861201721981535900722866479664066353954267416864953483514911887669826875337094405956974265408047923107474847933540809904628507633423981824041840105347673140571223174435989236357119110595176097472161471650978269382791746442502952868268147982232437076450474510880619770309475374777232098237152274135929524441507281367712778674525481674581972950242438091910935392439593617781511848888831973696353617707857713008535149103980023837667452256183097935488956629933097756446858337903263767646451506658535355278336075472838252345890606637107143726741948522882789924775515440966149595966829240115968112462447091825724474671960166100635210183235583823671407293745260924108195515921844276007467630084736733801054973700422782627169122853529961810119551571596111843151812211931866370504200717339382228374251210893979803656341446436070874864636323186989487888016452118610837746653327241260208284899659384275362261224141549839833639838144662146328552299060407518758754329404636631951137347288476880857584985839805581840810323304139228690009383736404025075629653025571883027372929894254636568056428981752097301408144798757549982975301731581689061351621701729765981339462615150589531666266035811578329635830124137165761585613871355877501562808729246504363473053625018940629619983473289223736892220117130512475699704137237083578194500626213162052367217312538035517325779136473956001914946313556142005096790142851825864901898868738961187031537508284987531299248737584983058335341631345136872266537513990977477245971448285627757257253862569902701837276530233913071157072848390492368981558090241818764376970687241773755190361074606216049457115549536634334302248941619281429751846530459294339346615093023278980596034901733937172948316663675557275394023330559106903393133971013181429743678454142301085678706575751765995085746621841004883747000963863321841643887855399060829854882423327957782158602724400337031518335784359616966660741999368552459654760981729287782727937669716817375189322613573570434244193410355617421179311235461804234837415077390819794909455227946878537293026401941658072463550170547270035843294424891169240569935548226275043635877367331681995019322056177919786788308746565250526198340227655536858268344678339191744903230841453393779855425805962458844743815334039310691594110874078073421113850236925732701425831795751335790804047634267828338298811972908785846622435432506446033081179988695575099893345370170040340543706095446190027606118225956668512474366945063760496938425242809397683414243998248567569576260569927993768142315735855381102223156470600295270051710206747006913951311115295330701250021149940146107684849723074968710279702166555821125048859810851777028493639275310158624406767422766138188999854402984661539281929810839018796071569364363561842186545091731383408825833845502394722765511610028540104816095098113619559001950691970521428192936526701811207488954450194488551512352545076708549380298442256971383959407687027087219379890103970653491911541819524365711034288183313664177036000151467003937990687577558140106979289096441233419030714193716520316894878692716179423858909002801322863814093389288497390916463264026649695136542984438876043402473551776958582110094568249768568563984194082561129398052863816063016702959219509034609982082888305511900253586775304126754920553209048220998646933753641414072654046548484951134030442212050122961106559753807568316080075049723383083299338605764330960405853267763129971774594590199142890333625451554820284209467962900991675339427566616077264864712747877700723721348394383900784830117028443112510301366307347309268363251979421863431825441248903092554895580793434827117207931655821771395052326898243428073780452772000108928232983773297869819859088639754624914872252921956930309454486831485547197426400952390290958929514386380290836318880380054536971668118824229323972921538368019775021220203596324608947548183470089570334973014158036450692445754572277019884906428569467084863224661341296595734012529422018558035185799624185374825950331416780724408973085346755619749930794152657612297810558205119876043056173595916108871678136962386293073738883615465878924470945917364273440705324594702528350686149038074026448516354177016245138052674903488708696293425039595497471746814068848138651337542208850386302251338455460190971361961035060743713992042227311677345541460687532918699904637757054694085178384982711925794834192298239356052016026234302575387357653291946764989159503410279473319392280072975485472233984577513017574696788419720958002083757485238842947517135924632260549311970099075161017251587801301451561839606145131970435754312201455756478390549935794716763891881564780119856870643351841700450151018960934564844500680952580172562188765022396179657420523569761435809174624333746097898987115449644114329073812999297461160277939839624727777814400693447650725785158622327848351820163545202455428619985403741343544907933933117562195390032329413496827001539631946618785835633487045278291786868502340093191453744616018376876224103610369509381662078668030512855373643565686193984570985569409100066779935660202471113256923592965423594881367230074098644694516302203136570454001581457141831693879201065779231902631439493447510669772771274399554862970824809566631406256807964239256386389205436522452686810307799482837619168045234702569997167415008006130849457175381556098833987214407604272649260685183919830279433555354078723944275114485068460932911529016695247629982547447247245624841543767058979610677181144903749066581994912003969376108805657062589674500139891990125036716189976215715547658748243766460257313070516126046421259742567423729591043203302422336454072910423610249691232771594788523875500365813544435460957733848990531795531312823600718994989565896546812410637999720207639362859580315301657248976269374368269368757659383764543804532201971553339334367540277300332467632179035868033506983080897944076519355998445716139747476049620107022282054212763307936839190777345945661425077242223626908666342140204690890248424236776135566224068455412415674384549171645333013947203686878560742604963020224564797579238790217368152454446370552297821557227984254348006630568881441356633256880810180123104223598868592074165821345112673638820424867015721979515932172147348420885655806874341056564567385557589914488076349883885777946684228696681760988358582046184480096214436646935087064791990388029340354417924375671660982531674448221486424892980825201228678584363706369161184582840659593918957396459200337567857050805352065405573946484478387425752752585365506409665236459165989176181926817527502896989628170510275323983540027615414608864291085852380220011052416851428819602696111673267971496490597260539849523948051783189889067938964530142047764616037681202513485542303524610646150350955167348615283375616321469892423233083989502104678216012744461823011626392424738552974714159973805599619687430790674070794434146930701756401433967284671168039277772808272071734026070128694196214407842976738990209074971745648772180854760615552286076570652917492574481628358326248415844520106221143449616228605223257527422492426902067165628032897223274130305357357005371400991859732121890728381822839161741958289145029620760049302631804064475891408400072003466036549183969360678063245058994808248034188660778191854493194652441885715136247677150816737270390883559446669462552831324711376218932905303788901679022963322860329313694064008537967832776419313877606145955111413743498381409728418890927369055458575325744691344971143122529901598978278754696021142005791744138517807848982641180349580119744239993580411773291863514010045353889862503737957780432035912244049719267245973884963709139862560160141886681014451818757725775321801662358282562150864797043266551924504758739254494007466081826735967608785183932831774896281590697384109443941776823390076996651086391600704858693901337254593439522170646782202989666425575226566296281580972010274326151381191717591961052696250177727808676729347821928025758425499589344851204483866785735293605371726576476108805570527955298691870860269653908987085313764836212696191015209688690770746312329172028666382548641495329170097420975612856808942142304392659152696148039354041514626597709975533566026448034868478202264905215458621401090446500008285068686143360046245630517481381777910070881446826581345196431483042551861319590882302759360827292766770566971776424989550652804377813687994571512197308051927257812611468354913281891787329132172845691560755980662358096886124484016194952892769342342888693258724123372596439703062603805553155479460113978583769916683461882952329714614239872703894500875158010301045184819359338197660007789386417055274631807828316410956436476495508958986244287649028571945017259377529800296078377347442209264367296556353552872118937473773568132876426007410871774630711953067011776699854597035316307936969266628363467965595457575874910681503700080241525312619771649267468223712105197754540978920212718668885152082065817421740971836844254995530823177010174813956753869801153931275691564169956719225589490130307862133339400947490794622793701847651210577174933617293103280128706623375040843290969905260868187827143231188243031626251012913035660667983055034822160922796069455859275491919073807633444084466417534950985375587286727034977498856333539132667728734632721693371376000832415613978897297729588906547473441817352323002350259834549995488948093786223516331448156841339920312351802412594818493357768092871323672033712316989006100689597375234267463875881413818367238204668907647037745603588089768488677370210710713669529160297057352998857778595448491312746575576109159064662805250171978087451241484322659321094853266623634034015427224870131697722801538662752875742974334362022882724800389858342709349569679163537573696303000363986720358502521128194770008741377572311026023431354226232641662073218626499023211623565918928572937928208716790163879503607460851648093707512900296778675325818512402370937096333419706432466965926864048086695767172860310821685921010575698406123495726045683128103924885666513076165112498402945040890312963405655964871044929610014874414132127431072645679467220396193239350965488240160253890750529463942334544201524489598657504251937590371905317855814558830653424683025079589016431147579171696661086222417189830987813801561287983020496513778926113622967413505457487409123477209135935624448420712199906979393209023940895593468880915202892617270600660095725863398607262625250132386354664385931046165845711032412358942315243294014782511005980119513038372841524257803247743721616525896676339979274141447656123165911837313048144091912706873452623007075779860638078661494515001173910302404831561224768302030216920812700212996246319031442628436893478141196613612482877437882340435701243409015373905526113491013683038478380111659174416368474107641462079356747035301404085405925698740034939535110080782327507384574786581972835321896274050041064137468411836565840859616084780105251238417478333094661234229481906578140630791496589547544981861940454750030604522941946339242661669524413053870739657507570709707769320694726175001608170612511148773782668823272229541724667260114129679629711895943938215976794231760239536012976152539566591560850030189555390276560063383311252867809208477275066167569091378080558954993588494166618852737423308841517921485113356924498143765180063937179072232405446066239061511418047018790391007450994211633653495930485777132029437689525145469207059507209187855506264917299494640476126642225943885205176921810681537565540034588493793064502357949244381042695509697925582837522217845861471484461307912059639438865292666891889113790870749791684506653922101381653022318874838061263158066941632322359579015503902467214464367838054846361606851684529407218574814653581672098760164582235315111079528468673758039385473819872246530484370482495557759846144259194497489694711121420751024632329176850429738142689797502011006587975302074292677638553631548778889687104419116804468058871761501030626386960674971540905339777170243061060666380658234243417227089386769046910624050177153309966951759239128539343357488558033772346813886390383757737127222024960356982673802017815888110912358405953113702133861027850028801134461405950722430754780879724752319601977024937551442842786198966933293825558797018422645431171687213474426157733139266620466776648431234605037977738764946345123111566504519809233468280787479634512794058823656925388912970172521981541853508788748166135660427073851540568293381322060707711024581833871988866280797069825978737985689779102162657905591157621662146517566392498785234667750760061371781575757121175275210844120551536493555420730555484287345215031485420439337178518983478584516137949945857609831529896465080042093864879417780758505159547580310745930900319256333861389316856786459933804100735624589304264369386729900954282909892120332242336331654458350973816013015657238926793685767621696279361939593609761321208965970656898054114029646823571425853373038730581628493694443819308688200109844341840940139039592308834312808130051262837524170346752350220720289450770352633085574622503408692594232583950322915051627104680336714819906972639295055257527358546890315463426539810192121125686851860190480038161814802921018286702732831790082231988190881858194175906004971418998259362002261729436352232059137065484250733171035276264678547266561442700362249807127508330644612299679947699370851451640910549112444953015250478683260999820290378513685754246718588493622719741486413153601079034785766707494250949288542730244738706166377177880028998624777858556113874553210074553101848532351369361317667550978699946702871026576258791124203044601186639319083170233168355430260838058676825615942587426374924474777710742895370132793811172251678241736235949902018506703631077211895009571729576062423507665992727827872516444288275210788453213809465710378755917403737301531423571268015632300382392165417786100511957689920208026707916165093887016569920522709374328331987050882672128672638576956433440727534534109860734103457300870346024163909658180174649315597083150865897419053683903119482741226970352473637856800502750165492465780915077338390562855056695058054730790773841307101656253265095739937885157947715732940360306153977788166697060376437369435274892155436700985658907039195622289190717842950943400727193832786392036849085585970990738742382529148163333593838628848817166850057466474838264873852320081080354330264482832231406766768854329415019128805889335885102717802167714561310712435058265394520667657528064176583157066290009637771525359235974515738385224795083247396303181438914093877468566212779296350959310530107451371104031408473228939632583971125175692745595110083640295749760837109306707397748710765476264397973299142978153337800402699038564077482759176823977001033543785746305396905741719530459887128403620621925101720228816522526383081925778570190564753227703409202014513218660719684631722519482387728394783958708560298355182678382958804868703374434263940627399080122501579578298480937389068628018911704122027728410040488429591883259299302045740350581948257113160892491598785079564953703375463099735544987066416798684449537597926586132614166997104723083911363110491895113555050872276597321225285577859456473876586317096769469056631426219087406608997034818454203044891472437605981632699167620769014244526642966190231378675936732515876231422190964332239980988429174253002732314029376771384876573871875912720991490684024308006874107281709219395040817404920971651549086083940277385932378305346945038625405702785577310352767316261020850489263197746471527644286298857614271584619750759533524906526585371297869165477186337988267114284073966677706770723047784516389174442616572159397727260052948148947281123309032931604823488324855833808755617213624229949454948301364928860949754058204403131969227586655012954956537973304723083829731003594576862336862056164818500479372863387877964066511605614378092187439385405024709264951020090609734866439431706018348054353022850247118571700272567751558008347517430159223341758815325669014187141298851050436348691260652643778672027248516070965439441452577694493047167769430738027352956267131703438646444267672690722622338548020321884935328197159062529057617726607978396925953537407787776948917397854902542474948979571771119014507092305628092387651960119282312636147261877419340518559986106026460544279239897489071483161762044241426775555814394067625214202860559730279204587983736083152638917942289589896226698944277750590897723501370902129837436367661748482388541869696218041020199926312408876065522275248378973306511465323354364226739982664988720765248864568203706092961582286685871699239070991931092527641870938690294273784121498238899297017851973440350928289168428745013898210771649639155832619794169930149396606656851891298957592345834460811252421028121673921189871861028277504524841816029211969845564568568725788426585871052619141477909322097723500376745990101229760541336888921256299827105079738425670318265145931988017958225352153327460323516307859685313956667271174913714064662262961114004639062755783020550277304707858769371288425960948711537963718290931318358526717106770216649200344184100016055465783577195535354476224403577121372809000651576550810562508447723331307159848924355153262408088367712995389662667005952019089416837885286716407034080901583008445999627094252314590828349672153638327793296081653217098331942046020828499423499310027632031629829832071197214687988641454214734024657853307774063594979550887675422167824027814932752460391932449061969349512341678320549910318875828641551753068542755446247873521142193289151463447566335879272459290725871683395250953749794756055891582170268822767231426543740716048062686398035241242546179424793571790673791146743713913904927561943587657490248437879963833810485879859221150012087938016844840191202561361233440568168224361354931411695236144242666268854240227806564492427937855798577812813715744078743768061939835462634473327500521778594271589493193922167588945604395752450958045273783006622519312517258899325647660211025387634241462299851934829937017610512554217711994817607981436339795538431722841140971559548505651008571431598905087359269748572252811351436343487361759165052803032991025816604230457736463125943617801946092570158361109572323532033068248446226264230223536397113040406529038979674966633782748495695441687843979159167513817254702919237311792757739310651283175634946836935520581397035514230975949649878732203442610478693545856872125479207998246694403932144336328245311281623910935803757833147677564114959056709243741330055192721204107057841170229576843239668967716011027918150484452809695154491824251505100296189979448235348256850363247062597840230666230809854542766765645875658574948085943253932790121777988372534093011890012907018736848485894782464223180469560577731098497782721197888397084285677584403247557350271029100889618766713321452959973156982387335130527965724416174405031289608875141706026707662859790343638559696321466862458159978886942955839106222720914643457763165371019117914936464250983743704025398605757152226039304879501518824195869675642947365151582449974236623327559934013418483793519938678916813517515461523822374299484233233556898424380041558697792176466381347323685939636793961788745824290398965518048629886537332829020011714882207469136054925760794580718239912484864500947072203002005141526310008845831949971629202235817099124751113274262750840156525323595181135662936795477389521054845984292782111398910376880773347874062787374194920646681393936000158926805542547576567561958330513564002192041339715678309629015931941170178551509826138264428884463266103474376434793614702374234932998273844261695378741556930368379899876969958185512888151004935094979159179718529925704481008300132622051068252660069759321871283884733526292845813446058503878969499191399439664349921089911664947061521485664900197297138746481356319778254525237748351459140302692270945001452690359360430202225820873414596980376734163856508563330262807532199783867704224665275543465571652643822586005202650639758978687386243763866770222489077304546408689573931955873971988033888228856831067020145806537578648219238061122629799586494146521875425234305555435329695284169604378749187215540609802566202729311801053949794933952181122888822628732766798377001457365477007995781099334482769210554030000350061838359093824069483356727315381818683255254524623641680286628231304845264764317100011298390955435219525357135988457620879726260884060943512820740835817278982326673118547331144782409096334673806197063028971596421048058321778619069610843758961429670908534915326039347904665389453581741870155523802705304338290533866108433074377939163351362377315917686588960714180270754259448363337820048550564020641972633328733326871908380116369138299927318681617614695594265878348115636975302646251652641915477830865345541082878447703096982046068437914412048144382143667228643686434219143761221882737704230947605382905767882296852194549687256905044543877518243359628110610519635322101579879915510028429440987828739191279535648282604007814131227414118655036831128581632962553340607318516479982695942416932719222388876774963179513274415517941114103821834437753358140543413547823219807775190523309060196456821331411557610121761808723908290823111661844143129233038484091653140237104359926259748989116841284466494775924772319201063139986490724664601769541263314456788082802415549206933119112830228644503921110431846118241645907642016372526171471371012140742538937021414386521149264921482256680837335709720770400251283648103903100355121528805404792706880446979390466030152106966101232636963691826576081169190439646908925311341104378871253566668952833354874099060988710461627227185694533808449840399541968847726647967570352304023764932523223039930679025117004186713349156913043882195030955402945191314105713533884901208914681220794583747786398208242339160679155556609824281625562230072632227127923084263436135578682525429437015227291432492017374983248873211642813126640730590567536316518645657478970231740730259643766902311262715200285334201849205819502986243000785514292687625872215833320988615030797561419234312061984155890689245272185274179684829862154826148167459132102043452655398138846934406138478082194053806489397670002324933045572160252423196378050188387073549312238160749387667660887644064305133509529117318851037242157444802577555067252775029915648091235876958868731323439107902766452744899109624371326228276926262165425263830073827163304429641398721690713600646706742346838550754245124442622332575359762438751546625148065385870798963290391789876848443322464686643535489946798476043952897637337593703282793796664220300955439419663687408955202811917997300084143642534538792135262276045350392434947399771906755518081036695929023505672765101739098870457531688118553940810764761955148136064284197904742218992348858429592494662525584652483829512998764716728634457261056170603068653370193756801484949058511497368510966210640675736142134296258433821193276547916070288414587614678033798963713892282904864604452243227238340471846479238877385631494055173188228525727724368875456835940260001509139073757184477936409344915452087529806831860022988412494505006085126807251127280510002313083852606272212110923695064563356118521310088071958771464757931399744326438649282235068879299710237694949702494528393171078596181303597059610670973973488848904018516842252399213490231484213009600872907269621371009783567325317747574659649099120597541852171092960186240057141883187279560929425614910752015787657411209770198286242111504169590193808801033634241677924965647173090546912087864233163781998254715733517509600574494899400508667846809657335665325158680155738605358554563895899750517421049005116639272708602265786411744893668470829189759030653708454413164549476550659353256567499960086517443789859952549274270027518627600578596941347309686437586151487942257870412645802800209886808087568383252137954762966505994004956817589786218074014979071669204736607466236468693311604502001210051364429083785099568068584373496583190715648469131564110383711442942342570147878410119073944364336157208570615613038135154195925248615016886760096986783331382618079964563140457929957997819327970849016482152669903745865223055698077871469515075576667545387265558251521728859472459619556410827969870120867318557431345702915448300659801439342909234542742020724460666667748517965658416244411065175044424248973232250877122561893154958337548337912989289059486871447659730207956029653350849260716153951758644460769598995857184829732818478430547839407405353607805421039551981038915621107794447419885725815296841687543885771604624726440636790547857304045957536119276401892380060336488846693948212850722567648988388564327348007987628743153915644470255843279611587579667301566973096627026834799718412777293773788315271221655357434457055726136165202711017425072382222102793800339169788371200321722027076721331373231702301048057682664797796827346493023676017261344808717127695091439462606257464765926837436569691203957896656490980471474934977303457601566722753723731733186236792493811487935174667620899425986358453434456319816632986778269052235516990867280433415791877094050905148216222547851435898874587342812228702196690215134768386236890725077599552284845813456771430061070881776137771850716283834910859551758265142485356731373084730702948848552697553004203965734855087025566242573681208774412144679729001469171570000082899526421168933458985504826861765608843217059584199719495419712433329785006901842354326923413571665756368831915757812145192371637765870757372483691841001213658503224740965003079603565405902592767442217672480647687256343733407030845523011861282828180201362759989680997903167879568874340615715461546740826628053754264448594672463329343094177626762679245033105612827697497037081034125122974376902384078090682047746847384501984280793746794031660237005421417498714441676085691571278845471826259527614266213181939328082063363144376136608403692444826555632848711977342341259364723667439025264616448583374951098357657559969290963758500594596708065269328425406876189139235319529558444917063385185924906818838836549636542193118808865443357020023359042579950538605728556114838642763458779175940642708823324230867421353318820896827024452668213483866813388307765341432325639083923016442919417771697942779580787861376869995225012279947771308230498459542682775751429555164016663383307323970413756641073583861780883998500711102833935743135280555360649542452300967342975062399589266283091149492621840928178672474570031260656518410551444330905350107729604936734553507961740898038608321920869386328580757321949738237954277324977265443827216777180653900513100387731625437159313831493891382409191158365764262500542628417082378365628832106785615510347912164713773602895280477047099386000996534473185578996235122290111881181634895179748039299414330105558428516528375959212736245384506049659429215763170565778970790397199923166598389295002510607873749027378269002345512508589125346661673215225469586035891864066092678481751381627019611790603069493763003115423886427644221921298214505064939567765205977919806052098246358514160542347297937608393007714813875864794771853774554246121972244193385540195021861056321873262764295290796626265578867609601577597765690937908134846889237509314287268945134310159342505349541149749015442720411830032970929416831506686532025506036418649791204296298974972456509120248760205923532924085158514420326024634033605099220926629586086728455210806760312782831375888693668714251470216241852565290676250963939711057539249724217370062981916746596594847923226476605110470480967958404054050557648364111338870489799499059756061916167865471292155015947204149279313805690452888064443674523171899868909663921069840934819696308364301437932483064970677159958742129223347480489161303322021169243268142082646416470796284787857093992011869609268444839341711379967900067240109062685165118257152313069018920326832889657991341373303097374417948299857546082060780293304606528221006342797497688770609951722500908694357046900072682464067520739824410467012668738452122370998573963107879026772253015737728381483491354037502756344028567264959917483714815442779114854396901799913736436096799281551688555818914337981902313293961226737347875826881850817713584945767132476529150241773068439200009275695213422865738715818157339198957139166897045888801211127497510101389158078870153692535614154648026384256749864600471948320337735648499513089319150191823386598823442830021611423723369768670980034008559943855057645265308257091431537654891634524337753381193125989072767881236189920312453248643917557015468735970662101594445846642295807214642717555210355848946819368833651668064532600997389005799755331579988258684241622731716533271125011638596071440887837461133910219987507924238332460662997674159017099444029151422336856379244279950847865822584237973501419047201723368324146626616648072006603943246337048838233022381851837680313958119476117542648688711411454942042105196992598471627808058087383792246703013314602903216915329125400091855689445664378015689481302613611242260969589130762386449075232712093454582347782025948932944507857824869502647399626593203098213836134962171545626391077311087920459867951056145308764037959683069474484296316855119529776508416965243831134934469429402884449061790917021005339560483157581525395478300655247719706059298154784277423456801125024105966064149635856088686673099441010387239722942438743166398959653107688824784678490645256590374995701266170710364231640510764330097336881722718084964534364561163998025269955149413057655043522514806580851549529080073286860765440438739150049092148265869310590618794716417070003049612933997162898427517455143667378711822708112321220174812580679865611625219590421391050879819964412483059220816723819316621169910777420238101795648057168306919134923431151156243446724603782231971049519827817941146497539792630673445093236438193857410804976531228778954530646993716624106808022268863869244065433726713363658831534598847255655230249415947426869024420833468327474723710505029177319871518502250747589482841318390044795715441349288277221125312683110653891143160483092145476657836496290250470103752673979999704599899049093571805171461342447791866379685795562960493860921310490890297412535498791961245029380646080372385484025858330910609608698616357428689747816086331864254387308632891147064045478863019599650773944527693285315852890599935464024357500785683114879253173010890218542784629312256981721401265912384005156903088484609245020291024284195075306765643883756524933179371656998242878533764492957296994328998217704652882907496755407376451581885389949764697637885869434751244397718667887395900359987809711093585643005007836642661726287233091213074915445330175485478683400623337554738453565860133047098280399879410124663554539481660073156007624734424123123818092936037658099643809790096814315800426353310617225227894101223270534219383353813992408956487051926135722617544289069164614686133275411410238277026886743269004710402837005225583061693853958972109456368280864993063437559982869594134608096209367815136154677433959704192808287035147289625088526834635664678951777169971673114927089247365468624634314171459116763346277212095422843380709089329323957387039407662180756426205184564959232297175420408223384401513954071975185320381022838500275550964564809163344617722141687175167581342560062532354192670135520249076638717436608001303657490820994601763502565693964743387460104393613207327609011439100856560020831781570951526137749417346296979364280536460198171164823390229257588335329278063313403654486922846525801070473906951403330206412365017896366304938244509356881226642242708241155147448456569822192922625435309439470299580401983783216890677360624741661102992136110145592904682966110322326411197258049739080061007675523449842624559040411741534878951688663205144069759349251046746565132657103345604923531127661768396914689243409720157758946905534147086642567250568827857446307415729441225997680598525395907628451679010322412217892412797247583005966945483318768658678538867288519193167779633654395981945235944493135079011042662497118198038691489998075397376729142951797392038022588974298813212650931176840445129150648932275717203561988953132707244106776751518047737997219668927510475703879632387643055564158450068150541189333086777586796044987837292621171379170789165307792982745973516064980406971586227830303576387746181847395990487240414093428802219710910500314321133695649955266501455879592394881643153119003883241241220712706129008355159912120643560200341190791820337658434105634960346602383294377313955892353229408602249151588804715844101467452282270328972758815027621418070768685177304050219649263976148602564511707042293898402787702985923020334592981197055956351906960760596560802187659331030581013889744757682355733314574905915175393868242225536965509156005140671360263972271412471821212850295046550361859505021560117598980123834675607559573651216081473530279166299807721717111352388239084207299419016695232217663617017772720275250337438041366376551546637635240883644476128202068287878952947826626320734039762608344137893710707182595462725355443356517028923040084497114293167989199992664708133097509836660817009039785708885414630306663587500191936464562952041446875978904149941585653598208803327857506644243842807615677458498223451221067946470301713663427453476763742986416267474110510938609306455446297489651156788536937508158167781813565141580928578643972003646667461979131504515456965998121168036747035367906886070160489814330616972304466142994901356869675819630889997972609487118943288742571377460794810871950130378936229236203759012830906034045371750502456943820812838578548614749407789228095927235091854842728050165046994986551407599724211259477075444050195460588278384711309526796721977182791867720271243963113324834593485693744794902107688382339927862450601873778825520575582276133032842959495627682123639238596487954477347995137552260935208405346354247714410752186265165448316237616281238141737962146718601829201586475968919448002491622696883756809429907837842877306575452876513604065328738178197259036877610711606627453403088828804992105547096832379038377870234502317419222969870064767559871672603875852559635862104924394072935900393025192293055820244095183351693317471030417770214896550183414386426998067318061989394755421059404804065779560721087974103593984209054788430017152389648247307429504856157251192513619169850522863549283031737166914173645961859327722425920753259587515141737169789979313099904027693044101813612786921310048044983019834894758870284447231276320658390477349744184837460565637279337090809911645325900292068439546010121934432008392488614056609754685161278943283982846486134989480090155657087545139975821059022361355303555177634355244163640280324955283128049160636182974217710240598889572821744310199168765619926427416902507361703880023878276948294824377065226023919374176773263519914237997525760822251688834870505456214573035089557042644265251929690213620139275108660077571842124022015569608391631307814738540954107472147202235335824572799778541142378981938778872804201764867618695766128741224424717558138285300248584503876328365234298910629522962388227964980708063602661794014314427734914599439952431808217060963142337817187749853254103898375554728197734033040323801666137431705740510815622596401335072000852396826863122594809708617161449083799320400621015067414783396879006366733923793164669944388405261882233193118304472412732869661542577181539875578668910854168564264691546754086866193999298960182869359087486562734494132274953838414104797155981791934887203453013275757816206602095839120823987653907808347758269492358298687337942342458310674483670103799324552816752079733396445053295215491419744414365883484571452284527755515348644063354266542287118906773341192808868524529319437537933619925134806375115554166131712627278983179930327479234205865587138226901834174066301994286750038575735375211017923537523110036331359276949156087483037104774217618295857935990217704020446446474099619643120886333273305602606628421798941467165476868236092403810421723004293763345072623347918841282428754420831574710313726994224278747007354735082058802259290882340645515733461922117426674392201211538107814347304625984872421233608962100035200720082843385876442430183890818741324774052653911689590662248102686080631994536419588842034178552217981692989707012526772486861536682176838172646905345261659609859740891581112751030559191789779222379530266378625982257378793054060436568032675457948652652454614409044137463683149733278826917718517289640738740511983247512136525385921721912492447144410442507015878475918060717407373285521984274268545191358176359645704764575337677753140915355834446506035262670375463921588665536855516050167604266206255209619045188304173324722765725138175300646971285719321914731713588006660541588008726443262998752036992370128816266792104608620351183518076341205983554564686699512201496833404587787725713075110644781472786357490539865618718206022611604244207502635064175729609126494692271102779808809328239657239709511362398891671756755625965224469966369148275847159827608786300450620178450367236316715596126156401978825517873369459998427862331843843165240612568275629574719977793944499982748965527560035227576938774217953315866721874086923956714273271232639995364855953097329612919137240049566886780301700262669017930430020940159549221840746588515503662828677208108567783765719097018791151517927924547558995009792897795088402133444759038285713287166572546640494814014914043159780208502797391679241088708154024547370393606381587952422434560619187375953633376618354111242028806995733745629459340143940494715048681715956308876943078374385760430748381323521228747056990566556827310792967814951359121871733728937148620013312894419066987105466198527476068649755188059429887635077165518774971035873956309874710314515217010214860672706342562999193838269459074281624757575011173954307125013352641379657965578048197737580164912108718093548088580176775161291318580286075164999847410494070311822280193880149859145107256738927934585776812751828867232697989228043044808005483640262221530633358766611779916077009405246442012278786480786123626327587248185731103463370101373604066770885712000295365380131955567941342997049652472744269598003943925873785687106793953461366857518122007880149750379906009016338419122504423195264595156590188648479900949412667864231607724499577402063242345871989325968244173288689718887846620768278250712227807355038183659675062238966957495991864265241743581405765812012800901079220583402920302798230419183051479277797836375534736270110898516412055226088120320341346402820913213622675156201488139590407447209376861969104074885115830363210071837164714956356498462774148219690003780124653422758607725687557410408067983351695276632645163899241031942208551744911957767582319853197669904094179354487023810731837982246184013046792362204554980355523469878665340118519804403617751948294137463319624622718209594687236935585077768430400441051481539232817373610970065412828962376549037618156841782548927293706793017637557992490422534889208019146343777166886842571023167828652259484668038224574270964923659903464129275500411749181063725889350701278229182079285890937514557238029911692025122236461908895292563810005368719502025961149202923216111420627621125498898066940171269890914635597336411719239163553879290713969646325406426464199900524505994514836376997916477569667749890197477231894423029133290320203468444832821494815512616008522238984601586839157562098098931945566236270152610872703405258236022844284994266296789132714435298549617377196264211873230303862416178286496550174081609632871007897718326589130128565095311018515896162112734251349450965085695498039839518647738609362959291891803338489675002343288825841786003791614913370561021546550191035591104780708843816685328016905297537629753519113381503690546507759154146791000669671344550461834447204589928840536017770924624088819623689853175268021420905003762724139611682014950013775988464890385502505817320669018994479021173689940259747640036471335413472654262241779066898368321567720009066416375100743933686119281940446235771988896249090571647926745832402783798687491514611046805173817672588020121618548085711182035031315988215558145629489892623040948798028408949520384894934419781347479477816976927284394452382050354871820008138829363209951670593120505719846142186793185612695861241513284742467179577926902486399505510207881012082216138819064179048343050400294038250554235703219104101274078548216780435313857827947714557166370256081792953914280489080349724902845329144459932554305928770943269999465562913131727149911909026021731343585381455740350000622060809576865618886788529831336531257360409623516998543893749127376922550576244622124868048700949662890308416790084965138249572933633477215069269700547610881798937228383136771183971261388903013000675988957595870302771569142201404559430991576670646044106972662547586997316613461544757455468771442355512032629636139809355031053677100944328351846547445485621701700987312054957632690608383408458123959585565809074565697427764424087751038279123353441267297837517784788990853344744243530875524216743310102542418664900695923500086733024859721190278200842803317082228486388409780734044718778197906627989577216630291717819025657770140060224983412982876523270918148333429027925441116969693010017550799915720792085408020370867262944589962057486012729775136602209483144841341490165764937105792179893466088243359297864733761393711639019203611540346706436636634093031891083453776778983362287075611853692748549733581287792714686579614807058642437548840471943758112117240392000038153361063638213818908997550247158032059908570800291616000935455362920225756227242378619169986364963068220217631668715327255961592013645924888423644974980085502969069674371596711642426670654930494468767942772604910107277651083269733430925524201173975509510017893074674956063415187659701392730986376194231325273269241585032812207891543613299022586729557449537106261892153448453316588302307628248337865013435015363712684503923531744965090697567965438573952919774209132007519371796652475143447354413168959995349653999341838980689792386671981445949327236922552998158058836985876292232985868871000867919157299424563562981707658979251486075448999470345485790105173243007752077126053400846625040757925976729336146239699564650099313099530298319486130346835866645953317959414079073006160447304538114017647619683597840675007311079965566910006029127286938851107801395118118674901182953256916293777491284248665801140184801994888348956196515712699253531038611053505347091240689260207351492332426427766992527368417733671314526296121327456051990876758966637029569510308683432013459293908828047406132402532874510111470429171069628647865265576344320049978804141034723922057412708473707954413970102246196319186312831007832214117638391481292917984109210752712528346345642044009667478171005652948207708451262628323221109295999377839654111703884882216055178061308309046396743664602313493920229579681667183902338328310173217842890945328137113526489093045922351017635988667226800333181456349823737503324488884354531235825116452170809258005134148993519885296268750079041369899380959641584541667892988491514221824278442625596321708257128013527337300734289491563533134978897927405797858529707978615232483931953623254743451920446527408945542740306414468515236139522736067534375656816632057009873559407907035729211317600113400261647629788397692332295886062225906431194137671476604050382042416822771100049067333397474151415100525709041115456773857647449278552584607796123476387780161928952295592938259539654051195063466925405450472039612954929645410589911310932546094656120598640235266896344417416434705755100936285464187828849287436598468691339179856985277576700916824205094019569381013838904831027959524326031784199478311841289250234461310462884505863946475081345140604152765335483575922074395830366820349775122973873846419796876074331544681759352325735187607473441928360858235821512580552211274644603788238954141399602566911911930012368222211826402149439065838550267216071155089540510444532091738939926137454980189693801335721563943932991054947097797770991710602400328008054379054854919569281801172032579500884803768931711232795784199585495584810039092006520422961317154834987131111121501790290050444623883120270551636291137688833952408516582226097559090548107380258149606651365960831133699952620161719053802591490479066391966766015614287361478777081805578124198033599526307367438526268782956818110702162838396723631390520120902286853358748772903561777381893472545782389836223621096851488152347599587457359016957837947706693632618089974232393446870452007333904660520839442253776673179112484345287200379082653982653106218212189906048473917506670073452159829441111719703127787850128849321154028181808264187720896822487678684183911027905281187012899626349941764470570259236182265722572186232028985885024302294551911872482161315540054513983860104800130726122114076962121047480429542553319781858422469734178357630802298318285520487172984188436471384749644958053639887084705854878619680714596296792151736921675723572863209497569050276804606715332626705182034034450612407670033376674040340336158607050458540189151261135714314894616039470813463347002788194133934020880415679237195222445427647943112880369064195413177746456117955325029459968733355234878847295629035641938747461607308396541537899385977444092406718701358109945114341028631141502362353349565317628477768668034343359353415016753434726351272850278233736197923592768348394717563738472694770571025497820631751099294281609959730118117381391845721283076506226983252608523989216468718495695093254011272817469182164602724907565620301907300197107951411834042037914163453295243259835475583147641027968026759930424618474097621820596115094377458970684380115802154825200456492764211466717541701783153072721051793579819165495712678605951644322019965302069739536672125690492385736082988725802035789290047337069836168277989332645846053250669346029909903948225881980475865484333415778675830114947844230847271567356133650649210967180842803796632200500500585940471134789470281446562047573605849732920536357113295481937821119277449236515684901931081751747263300844081401271117501713281882349655101850421894993474374403665540645040682012803869272917041132397038109476548341819277338336470090894482330140330918961554784555712444858307899116183107036187243094409650481804747862914130694975975658896369511277696779941851111623239184587487636836268047306807110490047020268548614252839773972190975582742948930780142070093197499957924901481310534818809508767731716012463248052803559355687555315117734924809792800272954204615202148349298379263037043390392415395542677428037382409667736624973985317944882250937442404444997476660807843057272734423037482358117223196044757806486575261052512466040287455648806624713390239022613216528730716977266604482538570612950760666796649344208952393881126368902235020469286118466976844260251736379235269132545566950475092478138580181693423348024038077823098139391888903181635530851559623739654116902804769458453814158870425636741553303284299723168973871150584672001919445373854349297857181630326868780380393287087213308838400697390538305382943261905929627671598378642138407820482402596123163989750335617376869051863701221428483527271577468039296695833712413666680622322167828361920426558601142730657335802106753426259992800979423155610985173141002266044006648905235648360733633817243291143563106885129795772362153189601423085205200433103905491988582237257429893897108421422284412128648578827784104892431972933234208630363934276080251838856014818874754467724340956192010064469550547926234637461558378201792880405763743958205004046581130532162552099318390629747925925834645010441756895328794653744728362856597086757963381949432581666643881635429349736537032249622113119110996802454065665477705553193001485556751052776437683747613288983531712110232405993202654056497115130182958293322543375048515695573267054713150198155888929161631997220849045305706445949296353153738962786286785735134277848018355051274944095870029728042619180835334614205464705186027366989123426135478226679390813275119665128598076471638207382669335738331878898192077521606354961587003370176968592579204040249259963178678039679648750269975882108676728607301527746132734727391138117047870187294741191313361690216500049464487665109180253936255194420518741707378662962320888748038649411691067531960392763958488538219992681438663297179084014925453061073049071743096843373221504050146730249219699104298138858089607874188816330166358006990018990688670208415163855774202458367841903336401345498996619134857590503606577789181065631179558919493600096465172187948804080680895327868715513167865797153484735326301942926004873538345329475992892683684971928356957429824304413276039520826223082693660674382430547910417603484375895667217194988685803591508973313196360971822941005539060727399260136917480582481809588234784127536792384112048831953111836671964789325987422177916896956313087292076586186894409117323017384711412106795211836945643510606397547684074192920283173839150199290582344470639295721371342430868901882292791135812349921478637154674727316772700461266327631949764824981989346072621608470417664369397309720311266499527850797770011332213266022632302485815914496911488136638450390592960735261928983706793142225910745932100308885020431190368557672745852861892644745972265492655329444018164093365679545075967162531337891171026150233483561570337969924316899421744610576981720772260078830061283129934034813649024731856764211099522861790987930860890401634500684833733843960467426068192083075848298133183112097435653483205344403089103443611571987619473672900034758560884136159525675147098220737346764174821911489468000985004051905808926929290468506391363771071370879003944089455719569394522670455981460381737263554848944326760542861447158426518792548725975841010446513844308223144624062700815074719940877891108969587217369759021914555096882460750898347300854972172374318676882382538275970936449324158848864463577848058792456682353081440692984984444974282744155412880884024045809902179859483038054607108643394234303811153424434246673864499205152038796448008198088106710165022843164972056435568687608435572472696897946944255516714920228530563848015230881405969524546897774125223905764531916672361429969173180249684408512118159721524674087159259351254634784799177504822820782346809685641742863364215287131797813562551724257954746997208221718837075707057197297286287437116863722056974995149759845379918130601554108051530242481695941012606797936845495967734492022084053401530319209283744539588339649056240483292794319865013085629457300028747762632396333318478050101148974669792535240827860800741393805594511241654543283459409030042567507396352166865758216273083016184530917868030326069465819866483550245068482974461667344459018728782018356555263923939667363764550195500779622091270943511777268767600096495225767966158872984144355083364226751427620393841244006575817071957423163962617040258522109241552444456525887314286741172188471857039230986189276587072732226511131214739651836444877691721894481602778541533904721122484312394425559271403498665058659033478110781708054603867854175695020620592122220883592157530534263242311210934685224961677624023906651911293835213481248392798626268790950574228411191778704855204325826186865796688944901691707378515224215936891513453964727502834375547741327163298351535602060932548382174512827802235988276719984470625512890037299703363171714006372518104241639470176139001047514783794077496685832632317397413614553984774058733243052672197179235629553641239766938713726020145756741798250938858459587452395864188922206672058169125299625597524037642738330472758001625237131006757138359043631083728087907722712116448965916180608774369812487378911964184694114057979580061199315395519123613645187169336054956541012713109759840448668759628559159394773906427212744942620951109604966659071275402941239776286370338976278403799099846630269782872678145444875070705806559116222980152595532328146266454743767508864840501449825678310991022682786400808921076942957648623441590290939318972705602535705135709657824594338755421869532459186342727850398457586983771153717887245327972454936946070097741935763482935240384560691534969494955099203107875012104280484135178653506120761010092360355066646010900004277852782339392908678104059302940198124342028677025170658325999899422890169138433733623103080146617191871169097552070983118779328568729001310403774785164975079297909737639713711144470613992595185911140223359192112528951826699670495339291081710491117659373382286476369967387324128637801640955319746490824657937642746252629241586798069207308942219080060088708328726275970405515929459511447713735534564578386785110622950958273061234342043871923417779003229099939795109305787803263830880829612568917280907882981201692578315041658119440243848482652979849261940353741075110599927099707875927898615606066635042665477779155171892765940100489605651352686064340286741979428844758851777187812039698388725157309382386677718457367986960729146645936796245658678337953097495491902347526085925986303686879842149325741917098961754336216106376509582276599577667950488180150210254001152111227083281576771323994721468771459893717641076058175977914394202238920292131720460811647390159169656039210034996425394905278220531839072817456043127865105037578205551109963492183478041865608383451764396055551936637674791367886996633665436625118525029044340038144201745537686417138435692886468487404778978768134664232131351728380317698746264025760217010775245020539852326874194301340570732109996536513844131998770449616578361056706670697857658005448908697573683330180837346903947910230281353393379072232006485359126555657783590537657704838180876995870194213786226928897884935412530921456177298879864997191564652203463607985896741625813621264762653132732647851755807126732057095844112475420038459623794153472088183778298406035048031672748561539109932056499578069091250191320825833474735057137507434478947642076903806057213115864808318796459307144426346190816434873085480898711523444505308220355250934547563062281953760519199165972046717815174890996007471909925001977211924850039271309174694924233342223534699092959828883741267397712865047745995148906133319533601251551754749673452819622455321326426516845828397103405840955022671596084679871042381996732225885570903312099517144892954994546743531978782475400453282825906778426453574608786462959618615929275412863143957038298906948819213868829559144625757305735631529141893114490761410813697890903661192250286752895011673835206233419899897120308638014683156115058876509316285167340499240138336274360406261867302700598828551845265024412589344081098696327639112487378435915205095435834401337139529703617924567150851618223413408249738480950191168036297339022773535146972016113451192053809766952319145317410959040354393602168611954003681616169592887512045136150084651301919805949342674885795090322103177289394272820453708363379493200159240543964883713261128036673525092769805654014840807315624061262780641205590977151473406781679615447571466539496533516372536215055913901701658114108089896522163639213622062332768263612938314478302924858685445088315495877826727448702970155262532461012753201153148343942754281245248290099697151585884201295234013145228882457529977616862648660877599526731911735327214726879621579157187764328259220026452677535695492772615613644119403059233988485101660215995764674175802009968150413129169580371916929673856519090256555992928511138468838549328273969166331936174258237047488263926942211288382516636932065776373023372453570608023723300377166987369827305235343591608515058132427664288475718735032606975014020308954220583951112397544864820726841293839749054422392679149334876615590814211178332919322049201520196265722002710686489776697233613439264060267431469555110995307903678518669316182274853517517706130983538607347896214841866918997891429527050522609610992014378478088412534175278172322663154130344163520151879206664857089998751834150763041163127509528286766403184857529058075862685743899146994790051010469696316702709353452801585099857371541014688324216916618226953427764958033085038809138564211438447070159847507730965260564539597397315661884484045396780467505565086704660465542168206816728869610670104565579896988038809702037140152846488373503411026720118356486165745149396617298739494443468891381664986026792743454341628627663054650687715212823743290125530100019710202811129274327934730643998549496447874880006398018563240698925704083120212880843422362266876113467097031608733518456139967706940472578418071557237970818882435067559608028991286582451911611697631939273285953327985153543661935952506447606800126318152321857934890367349045736747986345600551823008998810755811104218734349545901776056783732853520728364775812731061034190713008785348357463538030101658839010667555966045930768758716300328705784382605460065072488161680284619788793572229872322082920025287034146823540999579351915029985033671759593112348160992913915544873837100003930992052667874677489937583111736309831561730119630092444072328110320110984860136777656187953624085881989355279502933602690243004489987719613654982768981201161231421013227902363085890213563161944319109625189482479974867610133637704138821418293207293465794181167491192392899177586475330642042260050412674023508490511173722161775592403012516401146118252311770096786514496435775909322508225056810772970956016812928680099569214334764061752434806373735872654784398773865024005786256557711213346188651684369840270997837986494618746944366455487688850300823384274246228822566584769649682696436946348055003625775228945437647311445673828567657879781353358399719594208914636503481233542825253603459484887897131546440588400893963872699204695636062352830063060311156566886918426414344977022206598115517822949714558381136909273715406254625245741413480115235507631098923664162364172975374784408118998297478151000852658941977551740079083167600366617332924091504789780036255888439831280843993397995670849890436767850286733481870279685414193796441216647783219979868686168902408963647527639689102312505065584024967695410540189923948789440340356875249968520184140711350969173300102343345463522987812095506518656106955880183654615935640211746523775228034368593110884945785080433961946350544125448601831035763632772806869680239943679389079814760705962218387613867814566486942569250619934094048748612058042024401784995045173556746028443883569362883915395186892798474619243166376723717638157475966864767379438258437822431985803458744079611916033139232092694526890018004574266366399004178035515743784057489060385788357612149282934340996725283750273105347196971583084842980670099407000973207268601290288741632736378473672153032006396064550130750684358824646555212246194616412405459567016444976125541754109660836323512552095404249254251466347065282486176820562338019547813712424522684591530534918921169933788008998874635541873584743858887627863402801608274308651535256583137558279708140995192987527082229818511433593084367788406241497586749708267623123045977099594492698340584446498715619681159178759472724703306910118859452042901133046566119459914864604307939343937381494967930261209135414423212529642307467352379830721399297990593817835285229447606575849490462796813456105627952418777578643058397702324376477024009020050738303759493998053794711514629375692490336406767223547660123423533823512582976109819437821136082508802156507199536305979255515060112863104697770859929333004343550264735240386326393039950659878108238323428036730528495783685394296412714766097526898049628720166086754628540242360184328600975253950087909529834296919639804415045045507884611376197803560714988802612826547360996391134438021090865739954937466699384692995101311887794827362808183125726659118510117149447087407716938451604570925940900013394424427276768968833650617268014953781956539114720856631891295734055599320421351250122034386404742414501318354735822594551124467540604865117858569864078820508442208955479559951918860719384671245687629498869500190773314815832468770597273649365688854874414704488807768810911508797584888384833824673153010651035660330087231846701913671455572714168586311992961145826964903963441332474258839113664340646929611477698398979307920173485193910015177965342389752682641528376157597419505477330180929206486505704688321289968273700554806082854928257592755459854153184601471221744834430205843519422628567441969739731885616924579673714295426256262808553064896353270831699909093271373917432712865143677435890728914999844375923187165322770779942964769340774000042137868819847055063006284980331541947879111081181914682360956443462054756735754217717032557543469196368622748809853003029797570564286858137559829539836911706926409021056949324881624608124142151935986366882732117255191243970529024859280733976973439158436407736494445918848034903881178563832290454526285283760938788717695479881947558075513042482194757596997287529057249648347133950968080266137065408047119549877236784066494289651773232075765086196581984212941702649099956290501226626807740509124682956749373796038951444297299513586243015159362101792151512267298657152206698304299753677959101802151404300924385921539296067507207020356381114900228399245501754011964415152336979703368798624773693092306618364065952158855128179502766499213908906474228565660561962851298516112969171889155873155526281151993984566657417217671143006610133531068291341732088071025165565247363396909419767655143039636315153698183539989680864521964247041810649787644337193979424355485827199580500857559147281142413483953168500065146917834104740014763996824019237136876644753446227326571524895606104301937306425081710010322220857744854759897403293739384203844721795881950361985288901500867263954443970656319128116687683174718332175825640076446645158564353292479444870528195483647109975402466231538530945002646915392766532411501807962087608607836992490627085511392639674220196458203846472593153830400629509888171083337129161559669729747874265176936841656024000425951523543481292265386063001343284054500018144596581247726587648349642713067447903351785432605141158470376936061135934736133270393447771909294876780739502136629660900771226291754602932665129402896264541007940882950572372396872887713380929625868335210661562365498623289492098889937601116763266632997478127089893533787847583551852611586268128246912531696567541265304759292977151438951544807620555652386362593431305466097105987735185978240880603429372224251138635076591069909314846449330778146927764959328826546310835301710673662680175427134698319820437314802360062485580172537016460644010755813452016669313627674590651784867942672330803266548033729434514577330978638588588899753943854852388534791685444141010235231320846397637322813241598596563735565138621885878161717773897362804479161786705011279556317633511367144913460289230278543837232166899361044094683181762417210622226461673115878252627012344102619469291007524563932861961963791060881988652218472794482267041301468728199828469589153621414266932902542282669381158747917308141780308483577330952076573829468102078647169371692651985189817535544475365392799496576939042143602699903685374930117898180979533022832810389415378845719049461731151389182737923215503091349488277054003886300913059708924117121584067717283973562909683208227190706057852405371529515300869170465171610049410125952299825649388535967364675029968714981842475631228409724098958918096795850417616684871700451704283283085901887879136061589223645139003713434336951088456857227575324729459961808786884406737560225053555423098775412571684399597127346857256672521060329921766182369467862595032370273569118794251955051374235204174154850537214085072245636420102419236098125088361134086007133668080735550170701013365399688384873091458434936413783518509612493873355854935331790792368295380828615353731807017856178883549284105748914705591278046167559459516499087251260639298307154336885597181529623311263154534235682644773229609584756248840135426052366611036232824152765226475901798317034842872291294983287328631733262556122597635799772853452606696765416146105625792638596745384246854007933477032265267108972747739839413718767996919337005056415306037943441946402732387411657783908844186565362389609529693622158463938273406206609998780270927605200642472029551446258535159988435722638339484822402852928752278858877004102177814586210187162858439943533071263901656008513630479057893523817399866043719450722334587696549850787785641247106900727211906899083528872207302306124280869959674569565790356926204459230969082172467385979276955308949110639552379214436483184235831701723995161119368031989121336505054429184543388130301607404356462741378883578395074509208131557501617774313919191103320583186364748080799626186178764839134085197235221976686821476650675940366301470897049282116998050024297141462761679558299819607115707146182023877142494424985160782200934281876045693589119742197815370935322768550602031781681003725942957710917350955628108244088195638967582202873648337964124735530557595881646736134428202658480904380429810400516799680696541404903360726313806541358816767632095405998213258781430414536016864220867773215996214404848953218243558434184580939151929287579465840047664647050423385148881077474460095476742149252215473271089588548296833923586687343706912650602681945892947920239298767698785977378083300900094019234078293955788282616412096131178516716836249366168085656811178869739853061750173120241754691628616662763847750868628932941232147693684401597749779138169590978304041196502296946365855848524245911083750031239228695757862449431944086446645665946893228489468720946731628680756197204764064014492596147981112891752348372963943445678658008010730778859918010094403045308114027174748431890527071567817475655558913973338659873125847019729711491273163374150764337130433231828554825295896209498969354979731645939153434741260983877534172468809589329624738421715223988577294510419614749129932083202558505077122863433821179103935571802166908719183021007876768505302218231522970981996959948247254270081911628000218165279539093551705040385597446255426803358459962745347482811969454200216951721759509863195736583660904342438664475476492966701740378280043132515670229305919795636448032775324134696644606501428172694933721135348871485920957601462269312690661169024540747058030154930554690240840606430757796811386274624097870948363948073299567896512644679710545953458594213787208725156637623418183812529643634755524322742994519981687562423446854707496131836853368018776071237362319087883401432929407813183091739891590685678061756382133296733075892499552059261367449351614491771084839930688852896750830368413854669929975963678449836922634566179303249383130584718868707604519303883856498673379935443695237377609214556591435549736209675726472741324252182889915723475118562944152788092914125114456766236302758731579707625103621242183814369059919852139705391114226142246173007681499676266746057248617220088479668052635337491863106435625927371734038726149358230949648515006448110009756996223158498442731637123211505839188075226199303678994312674311355513935816600852468367273059625603803113691619731112656745383033445895045545961092909971010760642413989953042656458800375597990005090198465602915539911636169055632587626822692911754052328763338331656850870671988033848302112996364220896608338614499358796255283740802338340365326571469574006317747618821273278861992209440250370261431805687349917688119331735327649714648848558756431055086881909672722958019458288389579059720347320627090456335705014991282766565132562926914890235762010209192260233729898038673886137443592362313892970700711412283189694448193836197018770382927037733119951322060472633460245739900256654092087841563549176882170638764247395007531382924841604241399544796569705436870666682614345234297370054913628324044988353561813409911531495636364631002996536990091962698714890719545948110600484469483726710889849025142324625906290251059272277589244110108393736655067522822852587485821679753971732010048382450288339369906006203852830940136723556753295934710751701122928752060320601044241972352905149996663060040012857682436540393300991940557663361484648427518903104749985828614609549482802763120638925690629920968220155044425150948957169501825678170902794497106082636423940632576751931384040963611563059198008530758480619640253622485827668934727234331723612910821701427637153125128744284880033643557452537810743218322749698188004923502559316861996018374337200628036034271529946773688215810696655276739032350283333637196215726537778763751142111598444308976583056654897178767669284212552620542208067833460534503992274583904504150823761582524794666322344574229134530714620165206446988394095384931067497505116686675902899882799078149258388023073404462978187016841892521557445011218228069833641770402076531836134943078895841019140224627725721396455856950160767039029146340596626765124189779030378055695236025805074721566843332864557195194069606914133345938542518133773537474374718141019235727205205951449424466753702186248952699217737426928409968791134803988801733645440811446043313252037609714930236776163836628699412790045393861352586144720692940778393970428482929800905692613555658713526622648608434863377985842407517801105089181745471761539801867777317145231287093176758423541043395436959855711094725922388055225010598186459720579182282863405231281183290182300206316067109101313326039404156009466435241467311504228803194354850261856609905616312548119821724007716399712256160760571715193261849972019931456725521082749672351915962124964267394133198259016987313758913158742535365228713517665540322567365197908231890502729067736444052049261554889758151126886860431531714548454313815490552501833220643563043069003565538910251158911826118665386534674023531412382124088407839094847162495346916299548301802309802861341443302264711113787155349702893592330348791072028611516198133282838777141161026202621468302535427955907118785612392932971041634375210786571616355166698121255914452799679763277112401243689010304907319133607043701533734008480925292134467442750264226007853828496768120882722512194261659913807192191001143705160551789409611022700558025209250852529046438252652517196770856659685422267874173751084913887252427646244388915661058467870671669608644770411981795260190635837270126509868398466607260915330215444818554854674394333518942456490884143507171195320667223157354735401235979245084599002394671755414645842536962274098780686340848278345447131738511942323979901711892374552806716639456847585139955825150048302799072819980619746769335356130433762868219164454802834487116304754379271319911610228983225145689398993513004509797667827636891880482723907558021538427275711701143887688294933444218226860456462800864545014297894051522079171965699142453170638556956526885329031912337185631724522885137792880134481589160297796446171522190976564271045632917628395428989815315359359674264448750014746925869460448857464593272517829629947936569563960403073127173679736669786097846659465780951436580610329142593521799116356041251844198701483440834779681363837304109886001092928619713172537469631232736938459284565900170732808815827856357061653414621033290793702110534121193703798044420506923501792280619294240901112751123439835930571184739628036482903837303024834242742435475781810425783567618505325188149125785639486142665474348502548438942446995023768810729485404329108799414749814862591220688137833593576915911490116540913292310350101353151807754386183689019400401462061618042866115635188566837923189810275887427709390610653287357628849432870526337300903212417394189722555203275537441998504634532361185145042845280853545065704984324431062827664960968044073556718025107040517243513938467564266550308782191661726665151050597860434379955824303941533948589778467503158668441156286543434820099038854688226563661911678476088321229587177843042175290582226002792359945264524710356828658381176358291915757867533006996478294896703703430390779236259581065649287283789447470765349535612616368126600257142205080193497753543892402698566513637735130843010730105352651585557328852969947707168199568927394330604924150190430780221069650017202232340593924737494969326401964641066356695332125400568363043188653073315129901037093060389069389736587549369198113725589052891253527382590679639717096057492403001805868957525013456930281485080541110558396686214083814099419170209418093814936688447732922532810749611321028830470465637260246572467155460138475691406513443370013317081082022782715834722693478698118553150779711353716912488317216239434622209834460481111269008870914787478625497895248574525072839070612863027127630805691423016056639867511618581123261917347735947125863187894736212017772434207185002324104861682530252800658982912794629679554512553797241995135716766345548406456629243279912270987144648555274475872409916352131255419443014075116808383065057394454741853390828096677392003311749402636691303599823488832579807037139056200048183243999103408924383352237560306625639749599688297738328662716735056515275218455399812796432835836233255446208187730641613778507724330036543728015396120113665792821788782765431707508510288528412235858747814279922982769161846850638606469287266297344630588575921751703051491698002869998501971107265888187385223066614020592759230420291549902212711054583703891003304046106435368492673807574954859805966166146946030290385995913698950704014828603559251189964060011381749623322452179570289845191859489037750933683636463828327597787808922881471566715329212237793294853557057016432112302636120361540087297454400925770753385000960101106089709771254570357182845324399285024686685625395775734627231390389341369038430901330913672037070216221668059534927229890591621099994009926670816935122998338879718873669106655689277546074597544229697062301481096468168468601975537837793363114764683715996544297459270673891352451682515163217678086358377934651413273450826916415621900924567235537776543418765931011647093539689071136382142944936803406344976036031092551532360520169627511715500917891793577672949842789906037554500619308799166661186362557780728658078132754942280326575342327438062489784235409147408194781589427847793600945796713151038233370749452323809882376868814441166141076435804448801637270579311964346681666675769693059340642376254901760964943056602476592606660961536664608315477979632438058828491063335472379261455971977904396114391049774094589563096621274188893032911590766607852745303595263301583308181101652019700053956822666456699748494582604281247534848181805637790173162787936852269319681731383670468711611676819057908288055316069288539267856246467834185013823669672788145856139009178274839618596103352699065703964056614027818227447694647638060196304703938563528644887374871538478192892833876589796679237954503108504602491488037981478622574214917144062015299223971379024924078473723804126125355487685874959969355711954888310096034198891997635230940470385372610822250650137885480624512206761952718056197644694406605785888869123823369847858820049292766676517533245291956326049363933858281661616665731042977593719236666075165021399982185767063548381207324027137121014264193312927674769296465475596258817133535401383929881446317576348755189356817358548711246213829221541010066987462946216728394491251851079249617448403932902186802363092383491958166769198491530689569732309898703350322423838393461412565647302480193394330246739289206531824201373476847070012190975980207291128405088223918892449671684291503072074985269419004719826514331366785175640485506080110021705378028702864932704353500995708927233686490805319440389117403144125189011540593880339616741386243584728839192350486071635421025633833972013363879222395240050121877675953957932492595276933553677283194420332263983422685812494942646978068547148002417708586021585115786105930649271952664580728709488815890933096700828119344026544398918235504142071274961233566529612042042616146014315708593274180944145070352671569116877885386148472629923411621912823199462795080324620905807608582212126548308542057600070253611423375655522674898262480782275172993531139570408003823977432365815164737557595320601349439023093286257692053049457999142853731751466688220059519533016867113993842718149108697104504531085038540786210480388475875346616861324261162304733439015697334914345386199251233591157464267844479933308588862125767895026455193274360758873853859482907438293897137834210710048671570960959746336829966215148595311338572429400785618508612869343813980760790373455288249786907371990310225885071121565914914691343531229811183091676575005916842186441166851296860806304639232630679017648623456700999981004299854251758593290233834303327762768573152434653926189121403231814869587609441771878371742776155549260362568959604945621294185947300165553239195110567731241386583187463648375006084328233590663406578970963195209167831293430627046868029970664729228101735813895645736889052710144994119702392837914925427859650712207915681038694336615554907792142282017148957716313922490202809467503692437824030183219558125202294630112223314799462116554992664953941345416381289985485761265484306539873406631279759414557841426424639630127389046079751436049853596231578991619826445709095984933276792592641144850932224511798285111494902133098419730465403847207741447904347628259653332462097912691977343296553252235638339996356605995471620908751725340173647554768601215397217040466520336138814536630128888607652278609881041550615768719432884194190313233035306794365822097045535440997220267488831380999234963458560850821119957103048865092417538847645015646169181965502622809302086993761148660456282415053479753622240280656617574813671052222864762820819848510549023705897837412715677020334721035695172209117002016268392999594096156508292279746601490448856425468842664057838459168958754541570299641928260843943227050589235757128757231275411306655296109450206718257980910824336140885399493833659321255301404395129590781769334819058473781551441997103947889938603850875568441635973429649778118392818682155810135380484712823277618076608455913885908541553709798391069039187163842816732638823270928765145217309843625512218946297933482055718745568799740082455433931217543454204102297416195992370903770932215014292813286045258893205721728065385888939219749998105414107953618365173906664928672230584665182445448100646709146413733384248134625272882435423176482155831057697577185146733123748281396771544473098771998269663356788954568423214373864272339697521869394739576540680413616982367568655902520006241258947001294932906848303961957536638886135139172253613120417200889674020335758530203655530681847200389217831132582260518548789768057779846629931236283536914298346457906513534258299028940761360581267662872862079004591105367483755706203686289199625819454770209253756046669512385256398344150549651459824030258328102992692555519690090891246957739254240258190737373944585331257786147183333769147440505727577490417700380875339943763635869280605065886057750484145283964764591504875950933025246603146507105522543999836450431153932814220524460300732111496474971004947422935135136536142632940013512716641903057810141550135282904592469090978499742108752961983297293419691543275815492861065965636366895007788567561938679023093107895115251176973483221196042430667267194608108521725307841035357877057932993343393263605809084858332956909008766821768135340717561567857218117795310047294148996484044782040792247828843636095043473254279433068555745913588388018773334336498605505407045123749780673965472911180553202892264971097962673963381948095434326347343584253655106085288057150094873041062217143402419958623964926090855510742941136831803217471085686093953505382544803959381094169344673742923677189862898067132997901009757569679109928468367194547372868302583143750541556740171850974316335827595438930549629470325654069033509340961360062737403864844917365432063235848179475103245838737349392013128469231130669074038402165755500346354401740616764345113675641295600180526271417147131513032788083459556847262074328042956624560109823000369131923595474962103989025373283376805727287861160379037559043232514206312091021609248782603025680412692658723108010332515471257927688277316106001400493721776546727430019216884831693928851342030438610940791070448609916863817770342601901502290755453762129323537510164829490409793938885609814513480919107066122585331436964787561915502709152246341040780334359068408326579874600001430716710727044299162990971865027805787638003326171416203109764489114810701643932516074712290577891764746885656411877702656455879174466476920484499827511106670819868123407758493100907244122562871646457673161654053929265371214531038363050137167297167409046712187609444695812390401011389724301626035980192872263092387788317199688494519027661270976022626444842923620906637291235558066764314396257991600451879188798354672637189540503217864793016935512406834645641184005872395851338190821435087403055501973468532444072104890045758005977767308728529614521881795837487272535222594598811051696391614449608283852910976996404524767562648107148306786256408672200845974716235519205986339564908062480631810214829318855223838204986763890458553603782350338672106838110961221062956693449232208804088263614432235166084801046351003235592979790787550595677254338803390456868493794090029772903330222954457364241815914030451930262737653001111733706829062461896211118775425999572688552726158245836429424703021885578705466192060499514988747719349180997270206389572694725192954327540039493342485764587366242705042523967709412775328260178082165504671482045496583427773192418312611733513437717448638352266733198604456069127654818032551833551094024069857621425552369356536258999621780548258097079017216206221910951986075678813423225735631503892253761708854209603723919649359199147046288786358893048937930665145655499068268644698526156832752683938040330289876520441783127828631762938177018734939701984500859873068756208740746790942936045960083192881385541664760594609707879923590773135495229590287038818480918955616674359540276258812437515000679517917465405272627144225045247840283531228417339185142294469171016749182934524012435678590886684884650745741195829829076493881626116388976004392948994446375009418850175208316465530973293065236331911069564142154770309768712108064646823096296754926313381100225793861797577222448902490117632383064351717654548744558248121686113695347707264899821190536469462531198889882988257502285107248987088288207443176123794962482627466688371071465848633792854755186059247530361539790881251165642857169482784136498456005416019811462654474147347202972055387526854647489732662230633600734063591853922124459912040069479814642491033141117187871874164254071935177318025839305726567349547514279872876131066413385656427051433828298898703813712384147724401157572031410946710372616929450953942452155323962667462374253232375406618519298850574546980667550485820388724804992472586812507208721191362536187828965791130820796124528210453174924987922159627508698181751231488042149065687235890929673662997836292681010412379826290551948719242313976037698333810148094917995723812001568427650515397841942856749586326918408154051277288079327810972370828390882430674469093715885555113927069593251265062389690962633435984257293798775891227505240164459316776089453692961266747099988745865448993765126977367511155329801717805346761150447536581142300814786805959682118310254314764388047540981719855229460664291809226030571348698139828857189799324470960006805965230865731929968211896006703331285654785093915437157036176644180181421364118310052688995953435637926193598688814411054597065365544788655512422052577879690268831726506291159565657157595022761151604845805638003687017022550163479621928297460579340257398676377265048432447734661854262828882267177334057284341570301794106258557855843395569629237506401229244909154189617759799770672921495736058312755961004676077172335635604652142111700150484273556427939313427854928745166956165835345973714026153751768113079416471003345197711473111455518208969080778757481507019983366158628760629176608205454451883875817151947397950180995442727960446693461675124672691815901506339670657710180705340034597744607219805959550454410983771666745467849482898958345627433827574449313729830060983949592488112542828836690360952944548139495558807158596311908864379421920559314865626734206484444592020906047714311377782377034480045282144270964796588231157937130518124446715742111742093033138361080948689848637596336833147932892204139638901344052801063103802931763094774841466264315429273645496150551911974358767392049663169751240421968582276270804451492434080103850234356177203605067310387762090083175422058534522371043645696421538482641963417034892164210538945105773001177197517733420006990296708271592352810335951920394876571497837485577028804028964639041085146330184968961095302363277596289211154498492789870133355130638042592814062300387914434789432506763201208179416519145492136883023708161979096912018541353592606743688552758483356612058323953234946982458232223043300133300969549344361676875306817999794419692151791837371866620977274628573836842917362599381192893407123841196661736738109846826472980819312398774129522045041799917913787752606075258358904696180324662610920966548730301904043166867636372995927685880718965473141130823367068393038285711260773715587728926766509211877933588145665328965409764105649234431153100860035106267651571132252927048739723364963082080973237734138798620502405366822508405267149592391230875500754736894749254647736893586147062116850969207226442845126495602069152604526331589352908401154404585219798178107470214422750626468778796060313021390553884978714976056107987939762617803684696685427259728796810866819660567768556540457487567707010398836414164175307039960347319519915805023810172937895778391824573472878755121975678378594508761689199764545611348791048520419347313060695793004078527029514705635614468304231493844487266675699207095029137870310897743405144203750162348508628797682838442856649016640735074096898392099806648918779275680761179475551228256269033868074254418598379673190268137063413039431376223908277179893006726861404692294635406743115664496349819367232600575695709388636686765094948289079368562787863516367307481272397716811915082638710681228238567597479436439674852505824918695427479039895781299647317138783221945238573229645920786345648907498203584181331590518769016670166072794087188487151596514280029291344058309602580480978064005156600766374833545046432212250230594654622477727870908763485015700009912952873728694721971573698464416158905426096003780970159754463241411004214008672798944856238280964598678453945384496581366610876933322102529381896445770604993338857947048865509883553037227956632069588537552396932985181034814867514124795548269440727214055139674019234007164160643270130402313293178430416977305347593497198440821706356766229913868158880298841266688630564223294157996858121328669600789929525764128107312735050780283718008753612819033097589788610648937354382772369096004268279189038607153467591033523671542206885069998726729792762255913013646967824771455673163417444303520092411700802825365030994854453514289004634104739661539603190434505009118814596175759867757696420285058695214708665037968519719906751024259827537220591918026028139939187175993126445855378850464999981188525908434398799128478643217315804718206570024053239272729955732487810842985833216597140682252707525152154119200046253531177282597899915872537444696974607871485430986418110591177678809910107034774062963947009835255278063592347270817092543092121013255357665598207888590367408586732783769765680655664641030351629526692914785308128725824234850531544042943357051348175792206520948720450513543848620160817281188865774381819963607718617551662027343753827230012010387383174874268644804143531008154719714923061383573167064718541204127358677706991668900856730536377802030300569569395531528837088762323497277610755046834772586636230893956807515479472437136952295998014667657616761442158541916189066466411363570756531150766072432251047971571437186050815748339576243610755649803727674090180983499618769261381696513838653810986345501576717612294253723673688001866373132140853356517608447188208294584200667256048298778311138247850542977305176920823222040718785081599574525118069683851148589105558674782232738250076451574214181313921434909872097608036662407699300508050548495715979506237856781191397698904697549441634970845218275942225836826156303892861438741985158236150840680922783012205038364245434043568292729381048166838107896296821553368001146252437836018044676451377108544975147637166352156422484668296856101953058575624258735417063241678363921094793410766534641905811271947742782298089482600989760074856644053226936603223968412328922540944615918218065252178435184837298748563674250235189416589540985406109536534741199058851737812335520366109749534558066623421864185774507124279537409362575994540033120767911078120025991477957679297543088982014742871429694329311526887253991576337091538727468585439337178045135899880584356662622528531034340332248261232322065303293739776901508758051515513777746477291465273838770536330807183667679805864646268997299414660842182033163684261259097997091361000538372507879712786069809634871802373332351642756771480634819039343064204471187499937715084820252305846532343231367802725734296186919306811900310594109229752202471604385842180570032573308742210455109197034268419394266552983179156145775204805760213465081697637449595557648760011239371215228613308461024763911978107974281595070953056303972133064138489501145556107377377511070913042168106651740077112580074901454597869035352611198361747804817726473855819448872815272691299656012000985040385199845481269925339934296077238878618034426499272306882641384712692356006127437556864621030155741162777906310188693904122196810842699524829497725774756892197345737219689586985453485013057960032724192282905465663511473608319412820796358074302345416212490743130981517918120893453962634379507296516099852238182141313266003388538031330260544020158697172788768333913026459348031640099344351815679919376650581397937111641475341036999102423840594197125760456894986731953303945398029578028321825256184230850848184452901729383955068732368738927235843398159400689319559252150135649326828966002260106564792642021915985668500738227365539150035719732772783391516405852086304441674783339199909952093673006272071498785515024826307436355768897487468840662070323224922060905795372726260002258448100466197181948403546518698462538363490686415391379370142563889190304214025273645913613725232020932727478495605692381251366056110161301675352018909647829786163012636914690222201846438522605077612681143355858849782894565203723227585180793659834560186673251950475391759606037724818104241232075515334705388555240589131563609634696751626905734428942077329600397628979664136473335056825399963882956348641121553155358951916332509417141046885572165070473683593851591940369325711405986080630900533993795780953043594248976721633168291794022076229532904433433890492619884961777349019779634557442814917547209669326312542210495803187749209280220514862244537981209706996139081489943082892020493712526134893297153200045502274069910429535816641848774474797109573307507486992895873482958580463204173787664762723076177857608680558334874199535200964420935123487054205609338626035837131116380179953103070059287593737274290559262759851109341501341114963874091146032188716497028826560866961132897579324520985204907669364464216001322459921908459018512729656962967555188791833207820061870897228331897885798536366656078692722213864302836915766252147041505843494580790891620729760220253136922916829221897238275150668739382425122688677588902018907527831218852261826917760801885967698435455207013305266702470475126889053926443471099960056622999552635567778161680149262365936121346236916536521914486856521616660631232439149737294071318079433193315202486484417440943189917138807398832181466035625493721588598163607826405022036928335824539325302799066293007621502418140421678169943212046868920739679498429100051245999753919570025735487003269418889470751524057388875343609556792286347494770523404005954529600101592409246816134218263551237419320940237357226317602196295473866849696358035505134645825402076812576108520249664874717138947867699977340717124840864380867870722432436211391706938532637212324871862330267269461062882896077064483167019164289684320982831899843505789533509879030919095968218267313304889607485660485255335354733791721992844359467990591908294434166829726291245891817685737988726462373972388534882587981859046702630259237624612074705665162040579386438759067301147160092830887817362399836120706043736368729457754450282203148611526252870941593022223009542663935695037307315754755224164030111690402078628958869369060629564528287576190267570061271776946925817210669413542725505595189755254199054316967614512700728205437449766272462674346093776131937571522968615317661554998000279196536048676219055614490331644354689607358363125795685758420957945850360196985562932758980456772521016768442294826342871278508688785310105805847675742864119605549194027249957635501832905987468164642020233360123624665396223753470964538473083775276080372724651748018590659018614364759566518934093266742640840885250803978222542770822149053390035125749489263172183929761844878823254301313397393062027059440480161673648349006370912789123504926882282964573625612704202606800880329790521523659573122926442977231433546744682551169014605170215880987118479733051611717505756646925582023443910264205719236528885854006390967260291933878200669555467631775806585054337490551491123619964710514029297931194441080063138865049395794004348733561471639861816448844818139667962583838523163238283205561796893837946639257753887574213292338663346126578697969393459187259845325615571201574111647606526473232431998486662068860545917890452765707243827413266222560626040772656760224514911046870550443842091294961607670988800641655843736939431534511477394656883541143413264901975602597026644543193174451078672215383851304362722138007733724428930682415006347232186716173041082964562119300631598839414141529800936068729145128952698146010966733229696896205412277169256817760611927578984551582683096419752136831045877914511902992421503715627554184379362395857705679269834610951174512247794316974435022273048695803135388177177117020179688014541191251241905881306715852084339518044266518221323739822655275553930355353689312096345268384661494939652239066923855756999892172421881872265589906511627162928984713125118916948728137717041099534000940782795432573284407232057162523155022402643694502271059841478426554920611064729585707934316190655544185725947321100661309695521347959158904157242582752458030044827790662876018281555059732834497382528427238797276314261235636523838585588281864152768039846943395973121251983376639714140821880206754731843054163736447780646613152863557261678733911065603770564879125759951725650911201997566157935660157436222605520654822412163464395150006830223280565183295231742695116574384575756826305190002337049224466571074187997220526785209743717228800595567573193193577258766842602533538332615178250435923678412747532714010951901610844812021363847863620322902040544228136030468580180652796528103427689484086527983567292362200243223539011181934479772750511525894604496692288771433603467302269153073991703079467148038020706787944790421862521144960740471714322627206577209409253264046530257002012664874459940213487351021962749790215738796491760998689488251015835477224070263422697084761934555660589524302692568607081759653987178321756016201492236355338981637152240481814544435038661493147782380915267213257526505619870965519326747014273077066864732364607078849882985178942091918825135525002818198227107499682277143557430449769633068476150434866172810008446803076933714513099642147416449257895178358427512419863983945629680651419023743492210548021910967961745020349356784643987980349669442660685461761764502559511047637615754986610895632926013330467078501270575041603126561049552019209727418604891229831197940565359518197490708258592838275597934662540246991814933811737309947647941673380784675338119588635377606657379970678996876571232405367935975973373021033371917890395976301216092189394108906374687970027221908058174235187756550193140486009609083000149912348946383592267918125103048683078158782193340072095294674564801720834337473676626129241298355044796185876419915510105645434662731718769761170561567180943205569564692180935814993020911295177933119044320224684825301891363792436551364152177636717654059779843499568930685041185311126585480010343606886894108418549046275735592933291089659630307936106822782393989596514665110207108249901505509381231128621962708345617338570869680334283542227445692206734001162054478318130024671098243716032503128856560065805584088658475381765423457633611513051401035392652154053597389671840610050154157981655862719761930235690752844378587702821018187221042030229924200413771197953981533047328229942243512622723469591790720628605005595216916742202434100951196120817046745446399234096405014745099462316129368476700974055594037536260626228638202498821670954602645234832424865886778455214203961493588654823726384783495677431665734820910870876031036933405896044514444435221317503093403041865202752519581569292127550294143240361908130744827523698628008292703626079101331710607873222296494466271238635147800599738312264930305740901614186785605671799343808761540179475554751685823163362007220706730359388899891783711927100716414386581767091015214841140279096753797916751569854681111179081869351307551398503117353511881062874575462364299764161582970068611073317815348558419017674640180656462989076967140373957083624146989300728805089036978280705083137005616289513130763253519422636054995519751129288972916790837278402195951244033116477558395676416505380163244379839259116790152962631232322992599623897263121608111586789738301604159501141828255607556187213536635052216037918094386790131109010719954237665470644842969360954476272878482762055402170079386474445009205502856791676546547132184749540026003632775953145029711022489360753393242581240854571669081815035161346105317577959089490839427330079744828508806797413960062956064598232500292700393517668124399814159633373661388849286308486588392287284448788656472694336919337990348006538484389573356080479278635577633021133674254566464628825082152309380148328659368424598590937459831784656330708019622383530257629109179791518569758004515005185547457511844914375861452369498295433451386738273640284013086028706049020595031556402445013782651982438664343382784546787243344030615766657102418456870886285137963058112969686304101019680665686592793505874772220773018547168646649880818009867830854860151646227583126731502956877551628409234770697322303016773066919256043937464228101078626262489763330552037946233969299610238382983503565197235611438276411436404072600327596577793833071083267614473831265732053055956114819372182461733609850037072746664959356545785866325228449482538953887151228764796051767813942130101662319758067955001749308119731909607710296668669148777160303541715279078691769932287494313754236853040288613933052693030904193474453332969792564620450700020416379372229076327345036656567559164981526183278320382258047177946900958428649932958000999544883950302682498033354385134297844235691218781947156175241574721608534788309179126684871645372963148803825697084517716633922000310229284299779419558891363323942187624785969878047525592751022209009281141539401306957649641806073679334241830423808906898031751004558028309930789277685731251460726077123075117784842925269593566623406662494208089285485322789476406496089498428391808343005472311746251001175427516578329012323671104240607066628652750295819025632447989867535350166090718098733294965395018566688678831495012443056569245038889677339466496770157997016518479250596529880988231608182478914680439145721464375318307356410711101099993480204027776087831758833755088453006556267357389582436641744379653014909876348074912575888339140485363558782426659022344376361935955220117420217806594338293211802308869306138268448567821761130966745799897041565878197438256598279987660012182018921051833272879447086103630175582887757308553452772921944803539068738576156465839682834664732407707000671860425363487230183772075371794184785472965574520774590181600278660950094459199204699234479168343185920895127732982229815339511955981209871436253648914902602901141914977129355893027309548210395444737875073528203651466661146955265185834826217676501100865887060480101163674199674505636225796876999363303595275857053194480034201118697557649448076862023976578953306467324956876477913632886703051731892669777889240842501114688872924065035051770088556282020345411478143664137925258215751566555738311686438389073631184813553033103492612086294957796364939272659988092550964293874462335237377726415509322105791223145143627623963879936900208488566367448309678712024568614587756758373101318439085824924004809491783934452672464517346224973251267792195244200160033288992579786911261634021919200106827520478715493301147689035715177460800133912068279012301501776218135559628971761181559099571424450414596354187968398650338327225132392729957715793825587092445121147615598259887128371711116492637265340634257073059156451805331411943291882674004101764609488631753378472487109973539592136240571352769079592481163779133030840745178821034631561658735504794496623577672178092828193157197409551507509681875679374719385301765121962639575955679092752862025395535195199756128563167016509780425528363315832325679723117627545591470398223225875870612345096619759595079875188661246596763909102896956338125152161069405236663216664889412099556845668683137655789217866585053132138800004546363540729076067315620872093713587813207241694264301027805062222864858656172618119006774839709270173624777714316107524615061741257079339249182167231999473744815773021309663890215732631004010407613132560288237536965093684964764168245650279367287938987486529778957795593057750523262166366448491898182842276567214367830752893929615678772612190427053757371619222009918185324156392078978969802602451471548907830400172483901604769034684213148291533330653924600587200925558768410116180565507087427708963719754305825156695384046176843910522772022831579973760459504183224346164142946518812180185556432699437858798453087042341910679109028056543804608754459821242678372532341052493416329692564603055528516666384585205744913007651324552951701823209609578425223844816945078686139623619988021172870933959601869010081399799711895828995037911634672734214273901668604079413647787931885433683072951517588801636877054791029610511781657075184616980862856457626488411821978134527478264723485894434265925668309745933991001384062014523534517422723678360868756487064741994708451739351738811732350578013443548695352712869286918146301875884289411860990943834516953898404304144285709424590970773871412437275165806806704451701631839358229106951853454861639619518680483670817536932803041453933580948229961404764154102982401046414219758760263524868882259133863155471457764985044220923640759452405857230462486706190473202221149609911498225260745568852530664209779995997330762271324425872759284311887704945959353932197715427050902877846161359724719093814065611459239305078879580098173015038942116587060504308133104403015235728004635175302775710213242302605121046421731432698996732386655463182634150223952479663837703000548619237979349840829602697798196511966499230698067433560960560347011221083334753794574422948152806322611669872183394443870233127503349827665441203583131629051548952965862641992296017003634521212778278785675609032774038955113697309391329643417188675384453177009321929697194249083512660978972302291006843454447179052804303594779258237156729057638585613659285539405065892656308509890386855689422050501931901535748026128799379917797499316526130171677216555022270527358634340187462220397487804241614242072215966006393579794914464920897229813806821946221821248717276574249673177661377537097824313125320367084169175230939215774901214934227390927595794216394846294375251372614867013064894809304021562966928511517700301699881364736486786745453638796834230879029911767884283619548573474156817556723339088993092609273333834430022775040553314754315025706914037106011762850509453696899851496142582397410248700355966349473405136765747857664318318590387276927372219420045105793893024433866346402159731181931499174412001190944388931411706749739038672626569503282364202507307358772592239280912545284252266723677521709026921653150764603432804790476650359164417083288261872483962581680691252722512666251496395115177198966795205527967474304669140092926198838165862607087587481492404780843179761446441637801613844998084758353993235400643187296981282269698044757593362788551169090713304616414085980761715405057917093842603813409957865968045423982034636576736393548114431261117746296841286589699399955758740613506928846451854580686850844560534898633911984847722069719117429632260870226864486868098360544265381960405601824825418209770926696504486910119001112854697059844814284907246152160234698184586344803183811874186259078091729527837968935019543007942144495547473862235007332552954191477343506529416436306145521019797667408669043835189673398249445345433858113977904123978546632063181714656879760323557210402547735237596465304656609825281424245128634906333766565488099387326013748806343357525317917870452380501715035931084802324138773426393538117484283753779295125092120280259791709032450377672809298322300864890618979006948458203890764238191554393193825482085428555647685316923332179877052277690411474964327129087668849667074474670755953048198315102027980274907325607337654354386829955941676734853145066862546408000950992747143245353587613293611715859223163678448944267088897961110414303596154378084758151970757747042679918520706893172056511451870989787787735417556403236958827228912095568489890378452061455935179827183116490266800604531494411075166261608514049985085360697973294061681396870683894493293685177865104666922896053662019911564740548360057404843456054700940589673258024441286719773683510266319801118498230283398862809124401356807028598386657856514936236059610187285883485270406626325926878384724000767421320825099289327384553782795727545246314764473770588679619516025514297400569276299122828071493422270143150666394589884669599794690370703385377002365940726862437164249189565564389418921071368131636563883796749688781082735849270074979976600271413594778788061621488091082459418688894258719729304533261617924008397425040075282133863136018022481540643985562594429218679918494589033153100724747475383340462199634248052139733362598979977165046275230584386250670706860117571235403342691668057637881979503600791062451236405239493636679074665906870615313007201438784327029441380656703357373562834510243930662673260586886961638822033491920445786684025664688930250873079764869412373567632290158282150784637525549298568553456917747081963112362382888244856853154383562323141070036540270826918644199696794368234437598555966115811449800220874356935920308456682720999436121479340895883979081962050608388414606165313682189844331820048321373516783521579797671247995562632859942033578020523105062397175859323291163007989690257281666426102485510034943719201692925349602481012503547211672388361612641835977447449694107055157291360192365434270605780346298649988512826545772417720175392817143305129339013577910680640984426653383132909926138673807793415767696579332380357436426953291517388201536922546432746895278203120883692546145728655078161147633420915275911202131278869922840113741840891659175675863151210298719177808410817684310277769722479233445629480765125952344548107016888715354594752889919078538762698872198912938894714094479743232531176484303754876324797121630266858795554937695075151656298584293525326393881168803145970980799405916432194024386445284750029246425323831367938028525563157913574734196641922775661415782416419842474277290000283595303246576281961700850078386602728949282138647377701317430308065553936324113575010999753063071371342498485335456603672725966627629514911771362078218328774868456048074240189183291889146137115125023262872530122764212877641240986147886719468068755585031724627755001865229435258815558208602167903405306556527848896411038066482305157943485014473241022733682346887385992295725000710473699858521003876801492094769613147151850795157535087409563961646932585771643936358862948025924643519682697075500367631155417201720947996270801188653018344579937772482616748294955489362637353994996343374814887967704774429702137880683501707583353175727939959284627800160177446103481327516807804548225966682849895414208071488918360715428952288198242521547278299824257901819447741049932230134480926742689948270035294033003756728489179781816109788785714886088040328911513874182220749951631828802233443608571450613866997045663683780960021474596870836020141898630765464287118964161686801210690273747865880099195234520095249686319395041556696347374058412840185981418640272689375733502816390164639282475316123884035037736373189756233457031789850499395596003225763790860269408825550885748885450125947727254217842827284661525063569501035958750448792646374337331963266546360830674459735735931542175333489842546860180054035392391723228209539499905615622634418174819737302320574071577656742875259265955566780341212815911218517938964271148782307272306256643153018823186990528101410610439924748834879710801209965185274243340563420110113985129135290161783448253977254118132080227819733154108692767508659979158949442067797376182300334023201585143112613947197378873921099084257707891356105670031063411311781902829817457057857482730388077555153822816756562635517380539196516371647753465922920405613433610322758159335565492938459741294559828181666855172423023697031619915699435982081557061806860334848513015966078491901048720338418037639843111326869195824135961497994774124428651829024972661669502459278149886049688829995449608288116014717045957384112510073511761803568058771541251364349953012603941552235255971936611469395529473291646705575430428284383729097503554679660430618751883948592331645909690213989242352766329159546813747689917753107757625242616479762564912319085478783125893710222030812065988975963837788590695261682078837919642146646200954594797790751111335097550850777112191079150244165986141911926845764616969789374165463896362825803658042310130173039703409639612330007701307217154635515794837434328270323768084710081281925680337114075742234816257372046520513424521072359871660136378937005776413391546573858395593688476289223482638140988199384987680717966379149488812800244376754390992420172834813343138571158917041482762015617243242747480915919503424316126164912163564836558230184940816484105786485112204570208037635395338651128323743805117906261083753177252415203754336041659338828504024425761538781289558114943407643007711790942514869766406231414151424493486042569352490978015181245940497685839004106343225061164757656709186718356626606287709244433842032078941207733974521894154493235119232635575118618776063540638649308104553867186773961814342777593623085691314931946786237209331851568666056663916012457556803480497134988024953511787755478811858290620273821247589930491362212204348448570659918437630676475568812241427562839092595249319235636819671829295727685488603787994542974119889011013706654924142818856228840129897075825171505207736593578438628823770744786764099973264342330097165442445067106848991454425649005405795276737219110162866451892738161511527460238026878278306324197620211941526318172409464184473597811252475104337823420003431369572999139573531300555947020743886892034172062245406109807217367645458202090342498360794954059282069032414639595821476722474121814283124256952680756165784374634618836553661982681090130456351453412090620102973287107713191774264545253082136940489746594660723472683109950301564561262484600186785661740352763715665741985771855330066358323216404570182677679419718240471645616602142251213517369118789519994438520315390585003046328990516342659649002909673683343697578420039107977887921187814686263903086250296307552560029604227434534142059882965454185485813215152408276673758706750891995861453381503958040447966893477464548814137578152752218182497094996332747425192466778866630910592823832857141306938213693736617289731344366017900676581966259822582270457690255256616394589051039566270096657014782131980232315197400128189365852952656569598513179418746426745475418965543801991992174245102497740649056828292849534797339928527781664196528448535141520084446250787241040770332590636160522241865192951024201586983388449246520114684605715828668063268884623111926789354934897009260929567198280469474053931406532550582606253077477275491945938963934569540574326399018140817220476483503747113758109893748873004739772486453467849830540287450632023134251601870195331375302941390613600693876958328619529754731255148746122938894965718459466066962978506519340871768158318946091060207598850998886924547404688956396063024703186374406786334239230448051635686408536116553186885264887663666261494667826322756219552620559355064683886387704235062836246291205063335366920685839326706169628216882375067481445740313306342822273553780768434037052619046983518162962652953987781851055853982716321734406828943109286165275568768348537787614863540251398397503303644259843633455888237619184249960650029225252923234877692373015460316888399319779259528179588477696209372158432937230874606722164487160061591370303489196905729899427276718417640323341875242664370756722015570773685623009269785179381431208840120077832678831144610358073359246448153539116536949944861999148533665443239745459105740852764240605076513175634436650633655625058710288299845608120108862542266273140982267173767655367655198206477634119640193385463061282281919417286498517100870845034823198834324673554600794322542493158483630473440118490305325297497514929808005343575683846547321413161297542641360559162432840167402802958223129368619990524183530540516133039538101306514441906332928158586794831408013812172927647345511876098579501724587467155981552589698970602969928689109084113457546612958981975203896317907898106899377744164583578352657846038780569420885220886744968772272203058190754658668767648862251625831784640751760758804309137026201344104149368456351472488680169968406806510366260519579310731722473359526286260603540316163985829353522276456465952627185388276458500022224130403823373860334428711023860410735139579034017486977442991775722259962415416026610646503045825359552974877385268526655080240614354507817373161530344306981568867517017149930926260596652449949731406540116313844611793044910723239003180924253314294736582026119196265598035108513749057143102144646741642244244171311849801846009539698764222263642987423470548984550019420326560504805197637417870488336863615050394044382423392506985534922186075426615955522974087616579056637413272705996360970235713926614630416860162344649745280250082215879935857839286117238405379779511523833779075337185204147038328928209161768005479983116357529022064392123652574392108952788752260244372919300614851397541853265232225762753691283906248327128515262704068537565404441758315721785395720206758446543351115563478088596634423529704421867949391360637565772731754271662580775960318748924666032617334915941968334181116961408358327082766486197215141398961035262163832907135481675572148452590755211574586001300745532620783790606669154166772456246598416067215991752574533818556243456693223309361879546266133444430815798526574296425897152510059023734455071886458622779249575207097439307922660390885453156746845898610546682633614625512446196759220074645308551010774511076208290065217557024375273900675914170314095812231675793233748331499913793457530084462290502530938669574964316941995568767446704200145397160082594003493883765038968986756948951613889892135713263311983186990815365838482255390936221046184055400028105904476556909320145566949674826703639363852045953885369969311604275300634171224068362761902818108946152284695713769331236229529125018491279724017733064773769287983855324262535169725609344099283598570992680482327833226372524018155020212543500712439439398471008966174249530453960669586920903509777055832823754004378112415245218352707808357600749544393412733240966225469271066134835585174601660412489650759199617578038905560419869998981185779011703121166432664730740306262540635513023619573220695217744782763460710243117572805294898386038410737160442518379055384743982096418721315697995774136762893610551919575971225459583099955081303261432799799300972111600929869396403544247294777487648817864477072539201928242452341172846526838163929370944161872079500171530751147898540609363889204822301299373185663788237300228122510555971229455488306593939678649956987442459568964853708064007978051181813111183110039438879114385407325838377080112796784901453805453805023451720834605377540415177721086447077757068524039325777106328752949123126558065035631457878055552083080524676837859492017742861460503693182090495994400857685896632927044947621161105204019829358797129627795530147864671742740626488438815679369380972390315318739283308485980262791285407356462646235962572682361697604952677018165311112615004111363273378796874149409117733927457536034472017041770510568109293364800649712153098074777365398734594198618163548326107530105735462241969041254799310808234646913098673920150857529505723358223452213047161377833920694327301066592421756001247016526192379859157052745787742060661009331620651358703712427750181135546474556511411686082563975575091458486424686178827250279814816681597833683596887552034640533387811640971725473761573248855997004430678100932025484767465953936456990090027990811713683751879728405336998680274564163397126023295621464566846882617301498632869410594599375480957686972207867813707227969716600554317504974781364220994022200047276394893496717360394330639550787686539898625473572947660627441929876580145551740473065514632431761995172641609041157718465957537339418374956333211779077924925593355596471520970974874549317382604373089201828436890635664021773254900194638390839574769466120299787886533033757558014259838810700559234215214403930465246385770562874047269231327744909100751763983680781932743631724293300313325941815675076368792944849230228495076735219186051297958812481420484712199965905584769675976273469570863718482641177626102997947544957681105264243184020715475153355042879592001223308814804094058182218698148067758984908834891163983061105758514634974039840315325313844173944145309301143392705408854880003100178052648067441020648033807264655819866453051236668431475259895581901516200861067518524864552526343283393577310033910515427356298503362025713707709431203979031942172285388693865247024986689638560739670154286543826485415826428392708064073802804834794163718169092280131800671957583007756649565880020981522299367531120899968215112818087339504912793920992294308924091729146502888424545702464927346475149462899974033774919539513444986533994025063751925126080165502893468268421412418924872785022144577871345855719854035690309042971411809613669163207623321029676452177535599035052087992695508890168563082746438608507283647889402383635022677715433676563478600545216239413960379860567717294831597152187988214200769548537341615099664847708434917196081513837952755070884119435223613493308588190533313610518079208020780053670596634065382699794229563226434822110635729836073272717299594823961477086582729625953107734708285602322725891919090895059282974984899564096903591373373858420961728562889955643264943808272998614723296200986817071208641942319331501654970176848258300787092679208157892176224085484292875007231996420003864533922209995874088449707284514800679158906316574214408592587485991351088062744350837323493566102447616082215027586652797917319782677221944214202435151196716957868271169096984661188385167728354802723368402157881787698574979059602763967594512122493768093079035122222346737205249747694686324831148519852282420598918431105711739053145425599046777136504365473076758155372358604915042142727811550534682692773056760282219844373481851535649156207762785038590085555998765675542573913929673345566678193399940926139816931866075075687954504833095995404943405855776947892971502604179936927147802202271556575581594073198535793393959970471530845290369003870311520828548637551924194287146995904904865519877656005009160883867519422519033468017784933603058719038355656393554847478940941560076152673948314746036569137010380509542264338250789993627499938948588698218105172936495434288261470419681195292469226895517508577937199164716231728717542864741614482168305495986302116712683303509092707934081603728202817961559727910173824603964942400147585919712386671186470302027882158880680277575475636104890420388687136631202022395854043777206504326986962709581013814674259211830902700416955211819759577607522734836924257127215801493418472743977132027078765255571282965884997663177599705904802587008673023206039449101656356898712761177783122890596447665118012930431247197567875725767831095129581731367560817866670295606797864101813413843895760414651073068349017138472607366133060835137047524982281475668778517567192348800809854028144943142423052250768253514793197379536229388192380654316506798042944278396855766408331511653006227365804358281648915009207137829189040467209739670668907989259429794692612675604387559551028087258900644855213485469898750461099885259614271464230677364625149949116218083066893236705029078411490977946841245138825652106860431637574395729309358293686934479836268963214171399452183441579751729834423292697737700705788342509430668946664170481980198089334110136283828785317856835418653744671530295945031069392230114239108006505372908724059736593870299263659267063135946317709025427990631128476605735951842351619650819629188236357065860291410933076618838241628683358902801747321295592121759276914695728067169672439695589536645991003122701724785109365275465559819448479959415608838155933182077583804837729705653280567750884103735714450177476541852194114719898812575691922122234476405962087909322591550917753334512761264067565137199328745761197781106121261977542191096590746167995671473220790101523176082415078178677346181078216791840666122692916191379716378953992617027407711531003924052903513378542719399199503030498744566684443011269232251885794241958343069861788568595934685330177696270461968427126543428318150243698367127301641501715847177322205625343607153219537823230060924842432033891165141202895277968894335453896790962316250431305557640298924104185893519607421299643376801573528406786204414313151951609056438039417165243201131369397012589757701193142591050725160667806632773692682763054478526495933265205467216233147584766146209846678207707764079860065402926912612298618588055256411137880058818603988878941281384779832531269656638302679120219865366717906647167096562634018207962724070829771611843056166081773859536417285181579851790705831153766624525834108389261774089160891155325499562175064953714861981220220526992823063548294721515710835454018151881035613812051026842431862227303764206085863309171263429057732922305227835323799614184131452378597669437954651729845404750187571433279431505350352975358344152099539978075243642262036574840628798876332222374340536276099115426360298267875297922572597624022550173977306836431773991803096597085433046904196697210232360141751437639677315707613109882355146639357060332486513901568135454641795642939738490012317249380967516904860668882548621787376649332737611658445200245617018070517203985569898732769383448459122564229200489201391737648101762656125716366823868312756241743774997736566553113796362726324348798969829835501456826986250481920620201131392254672300329692925326181102321617345548682622061227540230889833507570366575651152583413224558225257088488432968497547574725754317696277466424114262209569426054414796021818656570387522355774685537681146566246582566917061585460943189972547020781765492178605533812502708347503033641956701901101041735164551214683528101526488866884290450309891020047725302731017284814718185416284779456450771302386865768451646034282607533230407172545436532069322010765642783790819689334873069753193891663814788655609340369518414635009152374400129285830028923396238795718615824080102841013212310742234100067906829836734067415154896781766724172936892967076489120809674228728391712229827778768113990361267677142173156986315924660257085688560191570664363492561053471390472658519335454579788931810240906041565398063254097078176571798010140249372719026340433112234368344878341875874957252696241346987818862862054735742407065878770627819094875252481687324530888469819108982694271108147325439139125686434551539527445993914319487218380526935019737232653574875754045017311505617150141452537251443310662072025439630581794543742333557169044537826432420850035622607488965070155107708980853318101766838002477283665443436713913972565918856882142001995123030694114059516432704800067087605087089348622158937334598800465105124803554599576641437640191798147881148363965945815239621476316569042489308440591248411647961585829711550586573958252452300210211999839675406831958445358171804679462776370286667336691289996445460881398630875027085002331815430596857696249480377122075660362425790020206976438126450129097630424815549618518965614246829325813342381542614055683977440393416787419066744187833991876944416675671225113494174242304478704876929703838013358024400264210877811192384608700022900212922969812429259853388797326957865969210021120709574367846644388815051339617286828401681488138123647955868914035722281963766080675093498412103546941249218829603991123055843705841412687876637660428227310499430181606421469374649919587884069400941002838307005411673685052735971447151084854113087187158498836587105584496774836675816526975121498042554408802984475653889619394886610209086560908994967200243577135581132009765856766125728563824950682244186028839096246457152277000974148064418922222772479612307251374385005758113004548148964567792848950578181298113196030784939888281946756995673574943914308966828306404299091152322066548772486726161903713965077810524769002591188240118068559458356220677444124803059945422295639859375813810211539623865813466925376167438778322228589748187749991800433821119152679069881980721757137546730651394715257334915952483338202608225031501557612004491712764587152355810285129427725457653799383012238318783082546714895410442045891707662494440303310049205903751264286089890330025835351612948263905744597943243771285875156684635076660600685805323190476516585241474142967120237152040617531012847180550800059266209708053457211423784855801642161847103021157985730095812484309616215591450839829373368890489712899661809544554567968793128063241913581604053656888488148362043014356432488230352255167340389830586212559858291628140556249656888794329171171707266480183606672791253829231803999781875456183512119485613821299617829051685814914613190338906232786335325976129341057766636336292088134385463963677250117156933117675258656662396334229368938144946227132664093134243584356580947696443031161751680102899560152596507173820436338022101577635937395317745351036676559171931952334163629386756728990663584998015134613460703289152795022156258788275190294111003844655392444382380905789504681179084818224172237041023171666592228805275162564306542840867235773133956504223608416007338438427745280058293351972486389051963029326492685439912505264026906002818931262533571627995295345319608627729784964058241222707909417914513710310929924392286068437738211769783231203364381334834165790535695199641591242575485557717738938757859139022743454779180229551428594962700351696348187058623590229886219426450920282420139732516143314324713678523151690838745666431020359864041065318288179766853081916899439928445762834502399272207014086626371002283821829187330935392218081129987760457067497521349122004128067437613273845875500210348140223990534731645600524717576142157843851185210804787210870864262464118950472045226827366439246024951279168253793338648179300121168399992428839917007940797529790986681446323758114751648578885927105783528462967230292381573762207420728325615144353792756056775241619194123602580305388474554250360692626643293735158632987340891871404361900916469042009382535856972385918211631714295944412026063894263456995528638471248803364255852286598319962912312693505144298409324343964815014901722957787081375612559629197627539271002173416415631433792927799405966336168600831579893510457933274543513419543676873562190522858247009783815545059440258704768884606455518104535320379133548010348447769418514035247739825479038566518467835111510263400916248023161311448820129536100353453555219173546655311329753165599171830564927809582814076893328523812557913806339447398197083771916949591251627121644366288005113836312515237027462544664641040640788251962623652763828512511216435836347112744912120615099308798404448486670601070514795821699927809343635288520344556071209069612654672467332748118128581466329301562531262073287426856694593140802947459665854880841441495210700986699018933625609701571842524918976064259251261397398689205086390834830220101791534565964055448331280530573234803823746315131156032230193513270086234974560852216590407574973652402977898041294928773931068031146828431255989049127463638293776632506863164975643453436121280480926476129935987021739276499050296354050802541228627789631566651791808062581322623132794695969743611935144295937190288645629300638648386036976021839622341315259007897190433257590850142507548351565243712311726147766493649810919499896838821702004180399560584568372676898127881603831904878743294856576027458091281829102281247982237429585673864498508486387960138165460405186940924822526426608460576697214737990362485397227348866799065682210603343966583476967003988478138144111627293573321003059753939303566150445393200835395305353501692944487184807858385656838507401860239141779293459263041731418565001967322748992960995014944018983328269513520888549840457515470961352668589066538655503483233973319439387342162584488634589854596955036480972555933224773492761286212593582440032541503457808220237305552268936974092251896413293400907534281631888989119233187497377534581879844259439954728761646094646985302710330873788017035096683651128592194597716574867211691410327094050190154620007564893520252805783880534677190557585519630014771467984475940432138261707930616554108068150193684237532341257700929438599482380615603248792277545848660649246810258747891179191262988623316184428201474073553044045937116495265029359406922958228175856443677731303752512842356408903083325338379232581307141865978366652935485658923575436662579407115987916738607118131926951096620034722750764605735429541713858068614237270279081712285483732823862046401774976036965946235886087153302122816650493686441803810542698366500356274318239264514171158633947135687062391524660423339558847862026992511628824262880397224642842448035880411922743845425120097697706346475552815066508510068118367071834906418752462740569559632587943500055809474485897533213263631671221172234892134167434448317545049648418145873642873138668003904579364433610253226707044431167542828184735446278175979893658336758410066724273349043098883047292037099371500804020776847243147500515968818285276930878827545014753132624290822519976383414441350665825651918287400573724471919556014068430588127411135871336225986774093718415147058312705398725700768216271340559000907132854100971420228062590445859450288193279768167367396016198007499924571358965958683969440673196213536598492645482494781746933237391139421616994918431575898962056349073582524295037986487879951138145384388175648302355619772435665967910672001933903675007474298101125335970051608383630913753845761863865360655796403702309895953374941575026598409430413168454715961863523822109500054098157634261420451617010358895157089563079570493031425422903575732407574257097775477464571163480592285495330826198959947974408589492258654276779158143184269904555670246227837641351476483371797928590748533748101086583841182899768444117365952062652985823910713986829382052248208512963026205384843507228955165371984669889680541207332193224383305477566601673565338466446537664491359841274160214399785122488000985575846277701571886223646071955973777835781319762733249991100302928940083602218559875282424115077890199022184544308274225831361023764630452615668648260895485671981025628589784862702105732568147477137109708070195168102733544690757244097340205223533415430258215036407580202747168627829667251137395727483305431475889921414808608578122864193429763413573170059027841879422096223218896769389803753336790219183875372993578687627400757567274359281219067512678402500349564235049457450204816868970356694355263114022405670145185537829502417121856484953811763490712627473539199383423876726311096854850243887364336756859505399527333363985206378576209329999064643265383844897095869254270850539819561053633390010410837918335732760750503725179082204967526026673472529109710490566294588490502320590263434704350481063303241824611041444920804683025368158895275401201002711308725532333509096071878387625003359474568455111563758880510540066695613567563049709103400433856754234025297657296654864322321368716083572655598136520093472067001649169643471963515114986061896481243696507305825255137413832340606841232316405089671255608997819659876829489413591451311763247260413410889976983598355870519686815407509710300969455074478244322854936207666860614061969941863209525889250859237655174551481584215482852995623356573669600570057021063039057388656856776359169031876478423676458827944475720229620801423987046798041277186066485015540623382574317237131333725972576131938402294018988218720955856590393244388880629951664118650683791987274764361047436036532183305149886143030195240726392319465913270515067846293303148732308467988677364700590086775123603295722059307647280217359877021286047360891488050844803671050646915127595210041915152888176465619366883537189891654660715187001140283787021757491076640107088736818766783699951006983176600979277817458549522997588319280270905292877104036697934181169662929342734715241810785182897862268505355594877876640499472648076546182225856591858668507076345821445736977226280854581437027761699426942841756915255937440256474561099672994524071255780997349548512737331120140067904383417808383242292820756989358583258925884536605686393977559591133910911417858786585643286594468923357955819716449257040405270091875947255791906312558426565593380296680829461738189880517475115736754053700982985913153663954521764466319746956100802378028113278075224272264149106603842777921567714599259867323233209293205704680973327962706170557955224883718264056603348021949923932733800151814951751235144593694759325384266580791147260240883274659928394744446908370884724469062030931300434572498530725174250554554521240442346388841900826758040818968424936407071007877005267352321420060674888975382143640528292340871730800471184751487509424535225043665084722125257988434926567679354332289400705108824328130377280499684548049003357515244928068420710745006055437809322813237885132249798902202900386393072240446357163870413586977028042793802968701685671077354548713353163363449765016054658453730426400356714227434773331188015435838939691673048513571497019812912928824050532527748277260352979437435644724428626472273173764156575756988153934346898281374978739340685050764756861595519339008975039190098410036453239977192497691741813662746181529584828458557411073949615928995386846382052105143273461097138950503610271028931412601595965379065560850432608483818304317152675069952750716464033685751827498253554819317862177323694872486571387390679299497114665839998443542120064642462789599311196299411647718634090141606386441429432747354905919093344515631297680223195021967551338010598373586092025356422008037521888569538257778642830601342564337973122661203862391467125008665505008058390895318390780729898262206456534508928946808572361301578269150829731067047882269589288379241408746525702900099282309535932854146137282966235704601222076564414137677569718174106534686898203879622286050958511865077678430569489694359150020394566012619097499781210328971401941310869386856067549283398586608011940986187045099907089719639750210412263437514838934717410339469311038367971522798112301020860862318252592775547951397645743992853465365683231799159905467959495572429470999545500652099456003235412021572591594169298503163717381530342061375156146682923263932568146698926854947829209164577808721116868176351328245950241149690669512639737381448540185162785084531068504754223603412026591627328521874789408948642617080101756010297961934239262515806462501306371444227237300233232330991478043058971071215646531735554087347865879118515218971670416484976229455071630018207278937962309527917851880054960955223778296907781642934619441459814819414705854356275872841216682220466922231916431665415727934193195193500142592373844347870655478274367317317281442049707393605619008248399374022896647241736580427312059964677318517482982460449150478548690249408245336814058252386955067972333607837805842762022895345397886220798791637034748252838205361790388892711523304667367591707347076835008386883987217136989639314792024906310772213007487583313783804462926227931494347766169663972274849343199276813050821548693398418736009328592831203371331715159187977582282559136886717301515844914252116031015122381756995748357526245081412184521717882879152586339523327194361117002664197699183530480405677810941580922685052003268431267270264131036854535097374830288554344056215934235029723800037792579675065353360012782198147407554678132731615487763026627039606207386857347152774677274713258612835938995778940029468971859239119606083392301122475653001554802251337674362710131136650672247693986197081312273322585262180168973848386086802190847718106673802759619961443248295925951867346986994184659902260265741500514169901850829996091336592928127733695363840837554003959621149564931228155910334169263766228713078652673889151180429133798414913450734785122030316352889591056175024354270499665579011274081891010056139592242999076284314974997450561481065600345636893324813290720497748181194049337795230311685187531917284766529884236293330170488718406237117247322162034920770518101120495402421963488055779058086154457595975603776371336978565316276779687053209471171860900713792648636179348692236261679126393261501971154633604053078830141724358496226433862450868391477561348443352234192276220740815879938808950730396260424960443862073043156595870999115403673170108393418691880039509589032142040636285204342026001336914817544955527656729493735327897410897507301154669655125415288220813630756679229406693827600673942907618544905271241956156665461586473821595388323549917640620432069410832805465059637401466994018207523579115280781910499100089457801200255758321986735669556920138497347443752824772732310638392867052414624252835968839373508246998397427534725626713428562496938550183630754759920984026092129791327721164909767888749651980599336514265439427392143157475779932620920654165478590602114608219806063657856543320842782949831913599128010077625005492433976882737932172093861580234864011178827563186836183744870311130603866295210109697616304991392805591830862150893352089037036311106861234886547581266488228244785647803138833789442116491380239994314673818501899857900029023752976659864981410063582011936022267142712966517983531174357125369578904119950588442487214504994733135297812128148621979810752171507432784215547898839736806610024641108317585478589716616157159301530836011948442956186164914201484871321371266412479935296836934736630710146711727814984007272427834943298640249522811892247174866409813320808104268255776538273575839565137696463266345021006966141589587325999539624628096015120447129160923067829004871706913422990503109695252110829334183175770787228379504253352197754392402311661609611730278046082963654649826998242764205822908319527992044131625711608717601696738431881236974750677534698760449777570776740259328297912254433320918784599882526314677867804631422649640566748020352582003222295970475032748419009342484218118361654346014060948665122561991446726952239083593308489598840968688133248780601605704750959154559358216171740714116432852457600335190076059621668449462835015459909933320996615095827767157093261264704689241838581575398973333171856289558710083980984351635567361297505145558315932402501537795674020025638494883219553981040273224198943676402837265336045621285506082241479840125263735036195949177673667137922948931640055317020815412418879974334394522237518981769915214429062579544627977207145054153569930207071462391667685155828332709107900264884261899359144917536565400143346897143292332051532718146172921239526567754801114455374853041261266555298591967801767739864584432144710829252311325449278344373415550698588820382650569187603586494958311362005799063037809223380313607320807648459894479931628857208648416411753030692713231875273961437582073764809601766161550332722800758433652760105255599933406825141606711742470278732432443550637033960636702435810082861521494680615529389895784561857150888124901426413461757859071309032382211845865011274207872415629240375778028646250677743273521034707141039105596357881917252550632832013250227218760551866929864002005976848779015439147752580901568618969372083557302134380717067433103804578902238080975171885389222735484808920599695578791053253338698481915178533728713282446229213208140629748950782576236013316438554787965178744918748506103030585311846185525056687286971614573949463918890427975850831103954287392148867591936058408862313383550073398947517530122064127480222311030417013143796358276006876406289008379040424931834385184960953455742401311087600020602740175921092423143519907438177681275298727645022503396795712906634797082018029139144642540207585721378140955510874111475851724030643286300417340851949944976027827642386939890639350304794347481864097368097654014440318771379358330698781025354339943826409863234303940999988867655094283120331015162843409552442313215914772644758129609486626582209904961909734443931302525202977847577404083501819207117240309531491687398673594940975705841635341386784146360207483433499539558977640420936148650165125533904302678432203010798285174371702748724018604215064448492087246876203472272851415913453998432597963360727726991685841253655553778282924983951651120577552783837163956961182376865031328209675867318415681587420320109945363413084700276564105761701980558195530147256451072212675578063441755216072158075410667845836177996621865666751251359245684731477120663470165469768103735241870266256938295571709830031512294888351410454714151763349245225965837749032314460550042431304709819155604381744996618755492028397584721124404911104751311693887697376269256519358370163024653628335522204506567060866536546386358326734023987974466008800491545986874949376135408269899375194818102618594655368918408663552968933352264121715457123581520321699982362589752924008399448538036006842178891583877676457627175948111260316263323685243252300594170557411589442301486816395705257646392689192241552181998366583938724111412935242132073916965490922961835554402932935801220004140164183186960878095245261623790833536187501282888838512791849672463125080354415154983616715267936005271304524452489413730961824149806219381298748297641233321054640200586731928984732891857602328812592936556468520541302246752053416365803748269056298994447391643704624630363565501286742896786421705093240831848929471482903981852754956541974602395427019062035578279978679215279166988471648313794063367505276256537755569478162597615445108869641947238638861537925195813960177900720821780148453028100553330301337080363959597737268419388230641800080086881845148527590251354651068360834725388067551568969720944272475868807048689453274096664816734666920334570234595658789545961678912774010353783134523195390429727389373244691008692632245939195766004754701121825869031072269041456213814350123286918242635726082372243261939686578917258668705461228363601732008255581649039788422757921870995783127009690350144450492986116069362679841531207596256814651411308697766955649750969539771051610676729128651464249590307890839490870189106599696406876272199377375833401608851309443322781136971359969212669576400735170311596840991291722767750305236547983345769583593895836823876591471331528499063846766197203516453235350740096413483836268210990379958937259031217778000727647012640642674831378469150533495313857109765983281636678392934809615402969756174936161788089790752611901918713486009784694544926611299572958001957232211035487288854818801645594587483491647225245771190088938137552890778993700282922382619165237448046769953209162644371275901983252999791201947868323148815795794603825938169029822243487567226592170163888284963596994069411549120561949978389321342993703465511943894124465097192144458510470006583518531477617902027684227472548679747180420243822436588140189515242831392956754777289538953757474147150562046413399573071133387729062156753976256732257592052948533260066359351569032054530195325468681700893898919489788402732729222561111995162160523142862367827456944638257473808228452255855177427255404633526823675008125276037974353873679775026470127482672696909253057811956080396912785465541923538407327274129748495266501838368850610226761409658546912936021479480906227279011918575322029152762512031592952637039225510029490244178736682076763857194257421001683065870506909707186535371915655895716186289312891525603434102707974213671154428816340540330047771525009083446102580769604817988107995456936116039836923603869647931816128325549710220459506289873388778435965320131810154112177742031837920138888251784255372874268718537395800492643968089068367469242399120813686040110316358771656608036405771514126215919818807961876128804953469652207351725552889479331211644742872258007910220487723051722042400063510408327862197450436711611023325472945937794176427099975984834940961755751640166926879551193358589609073463606646632214510273687913329252258073216892816491494715004866972459792365744119667772159308910735244247129116115506793699589970986146663499634340722212927437647452910424098293427277177863491648349286963756809480248477111992431479401082535800517708017426762982497063540890741109281744091085013445235162696037749787604886315443324650705087649385860480915748024970113816071042501797892427113281460095128388092265957264861901429021997131667883793395939988538585617476462683714564940801070036052209883483562359377000972809107667927332091720785534141518305120641822210548164959037491246905820560606146695663090674187830233786958407700774654811994420631338989567794398385855040685133764681210247465498223178033384660265419184700281304392057686652032808598457583833017198022394777551871163530436519574061171561196901740805457729969629661041307193828909677923704421895462742301053730698765071199622902737281615866292002108692297008499105973990965032742195178161901825067810851446391247593792711068592470764759846444600947094968985432653274305517370478751158455804021966586956293589292801573638232712753036192822220966624521935245344141306046837961540141854040216627440344390872505286929353962361416039617074221963861677153550395845494794087681432384647784003743452613258584152329384807218993298688883987215415887553856136478259065124518208839248352532737374400575180663646960233885298173514005299387656057991905201578917715413991078061364399626048620703908281799926686386237634659725184493302400014073567133056050459149515646070818023025979493016507762465729362271631152495340758648022975525080407893677397397170227825017857285300699551339305125194442574972159813595984612971180894013464379565108065844763026013678041329058778676432462006546306993975551499121540218627228237173954900629896753330255936147939214223111680252741445972771067271070745522217110814047855013144686118860161661589236372114417994695519498671636146414474401140044280184711974450512207506824861127599921478342658420020963214727998146881420388518064798689745120009971816013727317409362688784295938180478445377411112238711616984281872877590971648410781037701168525904796026274901699288679908122822201370734857482139705689705888113411221446435008176774559481397461228616771359649334368910166379054883543301796367066901132485873105831983900431008267801203667604150084644948274787095501069269764486164460454683716733480009907952451593352263514894074745431943304956059011575982040187893424672567719526178536189179460904103426026429153451439843531120761625477091987307469669714540332187685063696634201947390928347947553772819258397353689045084922493277126442883542799095374139865861423469105412922607685757309625924347792579246355367467876652785023264351645453761643514397232634392649899770726361242846492553018255400589108180431349803669904545915320097364291153076357103782969188959337107038437679509393033706205725981296286540851858192653579435943201290723995706715114124153762332697061670093025057140151076789940117850345276969457494257934325615537300917548142783844173205958798703323900944962096126671826162200662477678650224862131905680318286865904957859781486795269377208140648152979812036953942570784306360821674571649499630445442771065335928353597271715263063718293613491628528798619665686948317745803188512702231677290122134858010391192748582875598451661881074057689727751951106150949127173542482768114828174174712416549592011986256454961741127247046121024721517856485634731123636086137491710482504742403851639034286275177976448619151900689191863315331765093539695733555749770961637470317747885486196609857046350307822417769664736993472031895453768549695065601987703345614097536560802504339247188363004905129974917294215121579159752156502763456772813839996410018044500747364860324509327567313934388493783262378757873099357924640313520603319147757313269971766680705253711658019480809845706317272539861957149573988735586506233767201724661545501832067025722272718546892547239638948836752274501012814986108531031318259014211797538257690406351929957968853606479094992917880067068233722897592839775261741881370571695046902681729560529033618394721758105411852758423997875190472322620192193256634360368109824729778753349135815494968696883758144562023279118250358105554144962936481837715310606339705346917516938712810624026058048826957171452179336410359173979149097464379125880487773331253728614922400721585849854163379182752184059122648530076438626813141019386313320353452319941100642682208570647464654037590489417258674939295895736727351376134165415657834665437669391540700968985061821535940180798999999459821012821313965992567281743772685037036822257201990965101916533432611057051327392083491786183892357292296235659782809251142437655816814198692445765620333163776184408711486263639628016781680380860771977076396174155275429879910688157661781403276893553227367294654756211468193373478661804754571964321584158488490350598349814329872226567764692998448701573313848325316885214372559217254627049193871675578662617604914702628296917879360770022571088241309179421873469414486482085853726572118222341096701648107561973768342295194083809915357578999872999093578744752658572455117720945949236128937378846271411081181225821678923174018225578312705166120219410028912539941719252030799845686941680507395343856944111756041118747550348918358030395141908345578897287817248784091361122473907574735174064908217991411827173273691599857834204417525105450194388076836562930132326675772692814969318068397319658831938677636254086191792413688443907031932246432659160493265265904742584598561619815378753078002224464896595098880726534649561300912783899018343964185244836681411686354098744937775775354871826187219723589914223965971527023461363934259541144504577299599763877265755426858517667514096127247756652075853856359721306980331800097897517474176966639821538228813103696902646752663951609924208323644844221658175100116832396456935557934042776650943188588253211904925405629696725056830105930823406191893091626655609974604578865158806689795730802928686441680340881921795278150865214796636562578609957567480588140743513319906675495979750265776847823655651108850975122701922451230932107106767079742035916508668807249804766838259387510585590186646226549169432251725880705238156301872546418021878945425347724939734838537780850062100859122578692132066834805233208542992174950667166768759684698869699719579144957991297278221194267324507522667312367110388136455156806278961933770200554652819368555639686023267716161959473478861281124704232594615373057409632823258934486239808264572058787037585454469445901811337166162221465198274374647378729255508964761629531700114325376707060617767869581705520027419365764152191585720386697919998971402429700744432618403250739344155569041843640196919189188928687131480354190653908283326130737965406077916010688625829864582474438759063409914676180766342337472108751799053502029647030135264214780984689662655701468355151262457497139706823311745790500651718359658254926695140292263068566143198654616994987583751435760504907285125579770532995761786769643492966957544819773643091140588397885816068080498685680348153005793559544702326529882846718184407625381091439113167593488315419053590570400286827291227126973120971710991186354221465269389555110060437573555011359526467142887420442231719350975887622046859797544447402350365979414010608658059478631509121589566072707511876248671355598406871195166847600312198310046184596385437634140081747775303187042155307462438073827743732595678632499696487518384746260190306350232788433734008842237471845046070639092451162965803757608577525447065030576617358241762713495710840646425703588813650629623887042991559801122537482674953469194714577494005377937069039028703944081232440596235297001060622502662161621630500536932421092160510916073198210363708170631763158595771041312796702334392125216439906805437770676557789572203756807275445533492980378898313454626068522598843423139632534580793332704798359722125269249922164396545949900221937251400070859648169327309946669098494565220132937986145761303121813139692073443753593651939550585401742804788514274970276387875213344022145098515091802046917344385755488208731355574968195952237210267920324446101961342066542170006614316566787962372622982891876221787928453712615851302370242815160584010469520301516917521839491743749618849106261104538927487712156000975274484345992135258879228494182568721645628304831731347817342592449008036819068981500386049748868376181318398065256652938879947267245994281287983168856617455367290893779402214072887792984013949118516055342282539137452320988592168367858970091879034651648860201263805757118817031991338893833663721290043422199158513070775408220380095458967050121136442006373997444810393580335986149821388451030502856343441018203598867616864747636215541677777270418154300394701074124491485766409299590390960672523797209792486934366628763062355374835814171574914229555057058198028683518135485005540137395740654957687354263881364237874590305369044528745028685847538275884773954061162168767141512651689282666033573946068643833557089371436285632694669050411346560470909775371504219045067919646739254798941414530603852833800238134347880152075506358485933193371374732109619520053549402115342497235063002063967456300940927324917513725162862256608992568464879567795981080767695318706776055228779487743839632318554934926967084174714430709524792860435215798340960508497532486188111887518729613818249896758568955310172071943163273756453212758790578616635917791569478069185474344228037181036058901494683158467709477428113045770360739273937143290159220945148994344102473872249372926987169168777535398286655432552788827570208873512261334851005388802115531134821243146619554773778042354307336096916194135557810281578385432923710553831511388501684103156390918667117536370664163076563867719027001444096329532985948209340508816766968299041274506728837503223002021676314831812947967855184247399848060826220238331090477355663947393857082917426506726565450697783551944950787202026684873684396666570014835207001728795723642163386828137866254083739638804655969671760439486779874541681685297378257638392807751356443052457102955335995594210294936867153929747723961369267173148397921200354367827700719136495721556074138067002830376690107855286546225381795480236961531120072803077229599808839241197919095581805086069243213316559396564752891131194245000623599195965527046120074604992507839603409600624807179009878298289400629667995020132678861063238854250545299038791354382679442998210138813438292707874211526397324495437430252908493146004208571745692322715991478565566646651121727162111446253020515546675923219162001195946719680981172766549472243342754529812151904914778570696348475570189474830970970814137500514983673425036233773493379400510383732736473460222264313084178000952631428109793669183136520414517665636861233156453431466325574200787085282520285380425933548868330899775336060871989870270218121292917405591055681810967763290535181022688631487712075979427817636868569406486333759956965150055284702614789755053009476875950529806967211125212817622450467955310549360105963293645043059186308891469649872364331315630746843971433399517190476369755899674222188582750462331956189166393429754599040421334955549298260787479275434377042009222743705113568802177969735073927994099990997245882439309219414716008538833194485803507204219851413808166299387151315584715532872348048498314239370885475785836666601036482060945828312239406736496003962340870181573965323173823089142495997039547484722792567523490412990196820517943021219840481570905881935171926829287491718252824122339774939727423357785687164020315820817740232657926058117532507286930960094854473530100662805513542735137103390345020890498218231603310942384544325571465753579823026890763034024124389799623005651480473905382069517959322603568573535070237490095246517613042286957902684686020118534861510239104812311110638693915837433064118979808969571604504119160137647240748753764202723937906621314309812782272416475854580150303087177358079715520392727845529138367424304574191890621381803227218504857761002830815877858912448677884206096649251315573586517752518971076847314451230128091898424933918636411520033206390896331207851056987037017884111365161214321384594000045583966064767487063998098921172010352268040189495963524083901706396924478794337636159519071890039053240098273555186228385409845485949201324951307355740907525020509046499263233672488771991350620068774127265430356886804196294770752099965022026875922475678393239055392074995502800419358804615195494929075789755239712335921403996990111763070365950133432439116150822674076035881360701245770884705761157791311545954677433466297025473177535373933997244244798916597421980860475193466964728778315467948823281537463774067605895231339905658949720755107452145653708248086057416746207098583896257929480562693005858835884286346905017991423292821103925243147293869190938384702704189615147892304473629910177213618653409023773198820304295416532374500518994098509310951704984441517492121964429266451766311165977749984915234830838856694474863819144233268909435510342805538122884917586816692505024914672790446481691279960172688324200510501086079378048470971717691056874626005024252373021414807233414404530494899892527812531789878130298909915538725464750554398876571090216945329727108828528138807427436579897212017154553845375371448212365655032949983099414922147802847533160779782768161187495248608130938523075248227694871622632867667231035708045283995969376659753604016969455563261428174007701826494032264781427232251227337541790594376320928027015099478502923996121107574134267456230522402050139106759621195212974887074802147574836430980113577612159509987879536930297912827920462728635590348509008111784334762778892653061061083703942457883138480041404787891756726040888340585265026499961660142819475560914050878717681266253542478612683220363143889265144183399450887205413739854389360929064545714260993274093634434481588186633287508943422292109684965926291649384869451523219161488293198047520831545098476968008362654676266349718312353601249041833298217645820910032533670563246331706195722448824739612499695902685174040386689679271278632238608636551854902040910287985459149904087214534473858868314445977815189934341521474481707715416581469603749544950710310165130355942387970671845805408670402212446249709923062174485340311253107992030948207093112047256440268568734591499637526394203345527602551386731222725786362430092852816115383942450189319031170996283016909827961389862316444779777944725298369212280280822824027332024725010883436983386624984112664822262665636345796200748301566457118899251860029444979012095567654602032155156176120291299152464443069233804643263948613238965266333984683989667855607680994272444200581280665129862932975065413448421030622562019855155505581312150203654307458079712123401170366499709559598131346055586429614575945840682392027687812958009557026829266474177965691510958834275349905170394736240733960780191581352014554028577319024319421330850623319452928781768846860855052759358000951154903076604715352294044794371158485747423070187682008540282118288767310654422141737639031038133092529276790360502238554569254286093653534786930216665258140985239552008721156905714389262946422511557792683757933139710005039794514344146383231456428326770632890399278526160655339562437836999592676333875200902861958042548609989429699410737961669790224461410760030012059224987935457057673261849226265396966990320550434743547821792126575407920883810392846189851547496386755658308272210445519720102069296965669374549333115462789863912806131864051495106332683105242113608349613478975959656821440498366310114332162153231333033550999369291869461427123171859224608190412820773795501850105018126236698825019407624036875311805414875835619044646302193858015942067308519417845345599187159801124393921754876136125145985907813491590201854812098646977404095356826039136206037737348778171779947006194368857339312581314426532699567918994123521399183305015377560413155211455432766715535624574968452606754841545252977302594734859799780881207925734523331958502253512459471130680275637723305245909259008503693600365178267219481763746478956257569119087402083914183214899632915250541652382475861105909112376701449163318468890773154928673959322889591144833555624109321942851131345511272507597657297218514541326978732973098445010860170407024800572892845903446674500167086007338734403272991915101098432297682697115371461919609056445915801182047451137354451046636880349570667385425483047983871986924635257035334559206313566730286216627074797896312725741258361143130384626560975487235968913973952996084712781168928001889825047406256549126927969563464563248978762276652078966723937119086594130384094202016315298418163205807337175554676678464482979064517526230955996538645874847493095331860793360163520501106761026204430543258637901930238760842916079861347969942491427149284666574638364594555822535181314924493507791034536095860078177545280081384202719122737567712997753834688626749374734907418977804686034833346274583127098746203558433586391345498918008407059575590163850096630377617572349027297924086205577155971571231794937088771726127996946102490725877387032642218633193663311440018910777455192948664902513444493731709653321395271748018284786447388901009523754372986188557319337061975392657769485032317829265445965572228918275182771492609193690870399946468058087742945370335130201238005900140164894094214909025652009732049298933863296440174638763521329631218913181627050381376455592746544517075254415667268536559704952548648801660475480918093164042831702925850962673525225869161799663806133667081826455551800372814475207449416586547136320904233109615078792271425561939592304971643632773093332953403393248790440482132406026560553397756702869442104784839145271932981499690332052769631296342349334072599736625640622216997878514935171211567292135779856409682310536026365537440562252612775931368808481364854281619657344507290389405100114061617304038918500025447870677340939633011430976961037055221996338140963900313030703042352768329030076949569594925382690396328824240300461775802826879238191171118905787205803344132764345796675755949611197944321828659402193786402701054679320670501287667019864027007023866338911239373598334614867920035834633726544218476155112260556492551309383227383457408444526792637232058360494917798333062334683730630701618411749857476878784746618619795225236716485258150651901283562719475132455205160276295174776721593452891291508691093004510405841881101495759597142567214978957540809020502123616798844096588940414136333101359300930664033650499835706381047795045300097861803052215585969735803236147672183674729096930660095576875614395832541217353618721310155257014435562565218420823553409938965938084634233179315558727463632005466841639038523282713217869598727848118946886857067559127673811104925665509345624189694072069604635654036268065905944509922385261317136058324284741764294868637963488872290880825376074132428573025151634477772053415595447763948023256135926765421925525107397693789145424731672084493579154854205496428880823962594257201300770072761307276575714588535401680387050482132742427388044505302103951895865510862270619909768451601054953129287814973443190999445974077404070187801243531473489896139233273155815223638616137222192298642431359270484350571048822240842067580589276759264745090028235508276390700009705658335873847501903494371635550105079278542993049467727771730047056265625924220614122192753518584719843715571251577304821921307970196551334374306935148554143108785474251607665176073177103407466823594844856708322012963575602944546260412073597784656691980904691882073363376722900162644368756491416830343191201881029488988862436308545925218653507793048248031180195760191210583359924859153614820225633184188234290815296293983675184490616918922114014129163073660802508495556359882173546878835786527319968996835133401679516696791450284541588485461317877546719679846295296341007341827725137171666286847716713111322567054943902245839625570438671429858364795836103303820567360471695505139199874955140174472776801177343396863322126865551986697333873965861138198632333064017450039929567969646947353787004406525216240443020641288218116759224466111428735866816364686447929771610908821546674212433801100857689818936463723207061369232971153353189260835442477790288403612985349649532995431278183981388732090580103529045543689758543290320300593289436652888443117588582033099809555038506803938581963045572326315091837100732414456249342371877461154935247870388647405331237339650643735141440847268667594558771390549822150475491199210077797767658319768542312620617613008246917411842625120606895321025046997589887151721235836943940597313634033004779911299631380496126826341888563078693173321843695597271351709740017495629341123037098595751000713904242861929564126157775050806425694827290159419758533100181475624240541862740442581286149000254893260432290147505440147428475637460165428482408833496088668624492136838431406451320456252337365262222193326770752580323872442209315519934458720038990135189256495396371930518639022364134778442982575039703703224621386384010011950914444979195683496577639410818080400035497441749850732209236506634382410918763583652821115035054289854421134882882695079214998543361535638994334997129317676880630696918032606711475348498197723232554378900002185267352917570178539834298246131974238144314974749313875367198899723667021219056529801989581483167463471346656218986279115688886717273465633126536974551683241061364292842726506599314716811968968015526913443844425257414085128233533598846348062135174073491379904421130628512227076828769872703241017690802570939925668226141964547944855134699801689742923857407195010082625776592282655546216565945197739138277201989720488154796596668170999701136052510483963463621267086711615280799964384862926452612951550692457942573303638088152148800517364732945457162201019684314576284173957608554975179748447134601212882869042300283129468015104617056368253781003559037328494745135792070083595784750044591470034277205446414103252549831617666025410494557760492163009832718103537243985436783464981844421978112587315067025398595814918863809937787326316248987050921748994432844337684462877259921487178392189744843996151903565376842305110259213593298192217645399466296893491142572533950655957202881967061822877539854678747462161222771386575186286561061120765619011462978599601858350374672121223216563712668626067941946049187974980921107434666083241656509423784495836333253393031264608836224667440325293481441227918797439679488626289624501438372154559441794797006930661897706547579586674803679255096484570754518021639202306215823414663803027074537941783542091100087177963406983535722211638084855462416223387033693012837796271079419664016007441983876462278850088630659793876569075711266608512119178829225169551476056126462418979530490232426720390293260645237232197760841782328456865738481406876419392028105605354645211875611310778705388036664769536386777129462999124809781218350779740425562428451643091469192508254956593012981533961570624466676908897546803223379957438432525828374825817932769887557938913370976443625399517816281395014157006546520073080304101859824512900648021649283288893503400568101097610496386038072755028340827436525666250233634207678807695378609211288512750240775465800523324945668601041621928046819291166683274407249259580546224579459530164926561027909872566615244782684905088963269282506300547620420113494087027938383625703427245999986821991575892002418554583383193395399596482486364861840541639125173803395181464213568081149100541134776720974665297533933694427944086128025278659074378018802394545858158623957277977645349730981194649890923095870398739771792267596559704547064786333773647623363371383037762821791223774336452488201585565760688574941774766337283768306762713743309316889366778094455749242679623418028756160765427095426298835065156916781496556963512076109018715565940432381295347002214287567917364998990333306108698961905228837192565618369077932288483636725338155000011702734968007086972268404412094525068986648445066646724168620511461724482510098379359416742798816662366755210559633630275976687555102371627047345256816212407619859535783900471592504522206626180044487602562035118972218065618224238753333918522220571587220110369354688790748505139818936289444174072055377494565999826435732650194735184641105226731517515071407980860168980056221673648379801881787564988556601622929235213505131606955130047439521509702818744823354260127104951599700044949918329638152647081596539562997776946215877672438323155162992175315519852584654949339713859788583993174843528516326064442259141097329813581694774034466641675686890711907422969943725197322012294959550129796854520980203041985361605159140880468722346119837364873580914295624787726459291383078277483997446822634214305108035921893600670273351772401606151289839154825953756460419308027800813231202438271706083279801136103006106056634875050551424419349445084903653223293279848186673510394553332410325474523157729505453848885993047315394165251078642668757445644018201904500360094910835677551240890115425683045952879417697738435586921460784557354485168269515277602138176659096148462888044574709432508715440993068283534465098085346746038261211394527856171264237930450956142392104148215458956413144180153474563975197987673763719466346276513931790720931761166839513459245824802801652463449465132233128878127001798873082589155331848745005425327584287264539370650712621339251891594817432092891512059026535290790778394795384803688675199692910596704351149328570773815058805297691146119615129414798781612562819731090464447407459765116302695410986007566052402820107022981850207333250342736432968825807040906384063448427955187213604749759285785120585841160291962171419655792092909116746832928590912169096053537688090013966025314330388216580643039186572907140499600290893853738477376433383764877991098289600799779521295371400718864960656929446840743460252185265916898573291118463894355668969276037773307377530359876842686650256485651920651696394359073484946911172110637850707984756917439674442117783027719719430079882443479119588985123479021157509567371415248901807746334006542379380057168955307616561362186514035397943899366835041225388478791166030378723719309809355263727984878299098528904304498467129105231259571635774981973443141793335617711767814504810517877299729179899779518116445074449406766004512940399147281114096769190930245271041314335375376428271553557798421444977679125331844534573015314735852822345881214288638179582397459479801644538709459082697702983241458691677187868267741748783263783061488356622223569920034569755562103066471817984716270592846086226886036215068446177823355221465120598027625368840244536467148168526425620684015031630598590317465233802224684089452129349030002836929761445367505112272454547517053090667452954135502795630551301489731696251186012381351832703714827216923388466780023363895240732475079216176616678830298197236079726229578287572830051414225054129962487742024352937904513336816928561675050724689433245750596411212889535862385712063641371089144287859995811104593328819697431997443380809155761718621439617824374279178427288971310019123255000353300989631218806198182923199248849165260812368795160833907633067767024274283238789396509609275221328605710544201155403839096267086641092115304801649753509105344820965004746502095200181796162290595364546001194847930896600834657779777769830431689923730604949080027243612795599458580508354238259521887848269945997839968159207646892151389777364986833625137788010136912825846545976826047007468314294852773957384676184694559787696457356274754189358102423478506278875595916275341454405390057107877461843364342763760315379467318606127295997349813395093368417232866043383341697240118020777472497071520359978467826901072721727551161679995137435839941863280495097523916630485053016267507548535113067421292490737833165844586593743725993382452087479501905071611940199952264591263137454425872389929728836215772462236234250900737796786795709652807705836213435812536641294411636307754734282945605465535538910303099791021708258821349227186679268809050638803862176051347588162511531530646126666273765276665630858652560232761780572505673686666390772508337385672756830487047588369947726721689458539544387941530535100944456619668097246497976757052571282434783769178268598349180526900465302822254024562989289913160071545157209671095989109758149026065869212778864906623262631803107835914276184456002314768327923957515066871036529403361953883800140225286583785590822398844941286081838509977548357632843031582266077410277642503795707383748503848396778327074532858203219753010027917491303132264377917655102072843228266831082482052873142671541111418085020379692721067324854696449995471259130889718220660673359840085369276287322161993018143503208333214727761966220427620190730709453132401813565497217171635219305175510481188584778247041436517301767708827975089955960344474975511630355223226921662567402195176338103896621693769829493931367997012128640171857239173854374269186116478066961423485248089602887762550954610593837923401480793258499504815222845177040777914863379779217087207154969454736786165014406294406092863542228584443524969012222470285756072663619477168018430089806616807497487217466697047017292139404484891418184386614144993566462904520414225072971057687339846621941481987736936381550190798632293075339340969862379464626547789089966852152975002698692178697155271770538246285411619494995480970507320517233150694669571392026679103740120760935956210376204385883158233397109853374582037940473002602446468498030178893084892289883981969209357570213235206258367938005650777746890708662049171826391408353929273581668101576790300167967381143606598393150649314015894674642309438815985036597818355632171656645111874974366958494215801370193858465037816778313207472951381967975913086931717085761893098167248038248990259618173320096357907477213522957419432228963633882035503816174049569230899654242087714894089841030612009328458277083921091918624512293420563994399612568703160680650149289764350738687391436525154454543917687306729970855179800261240630844972274711063866281007385867429291175706246080901345630832003684482838686164514719793000743915059312143279514884581534507831953278299707479245106024095084149709546955816223270396005486772418198909728600239411797406080297097279058967615076972545383197463993071309990401286564433826627304532129463288674108789113148428872761749056061341313374083787143406680973103814410913024406756985135601575370867505065812317740136687983204503389894166432058499990550222500503734177648411780225112863135751223999023555185181932762784726709098562022807811607193132489135182636760453272400104765235415826446934718786300396032782183585932097423098722996455583258640904453495916186458308352038447746541642825637629254813817542475169813932577026172792428419638986995395564361141174128687106749113769240905683574899028765341582587034136009384361535200921216279813624603221292425776893190086455736250934605551697007774410379384286190913867911908189545166499859594348853247863026441355863782638210391336396719276095887421943286400485438096159689573695401541064048448497065420759611591976341036891107831469569951234331418642618563970527770234240788158559911705074716225748335475030622071630821811573395573866353092240848636510878440829384893811654750014243944797309768738852326106530039635994933066500295716819066882904386249517925588342980675739461436532120718690145289564335170800991697660939690493830846683638518935620375409536353989429849419234158670630410680684517356093449124179448651344541117615415078197240882335367843679502206339259724456146922335950704635254382833780386953976145873491515400432103711776448892007908854202437404995744465674339565947168968762451641890313406341322839990186159767392320574783969719616660570418365914420217209787014463816878626258575141297420988464928100176156454291774895297258473306108452406804494103283101770512999890736795506669517954332359449165480236094256398797379549617505691234212860314012306911644428426144544347933739050174616543932992749605823460774807344555605613160126800718952039852957765268487735599552358905336371168573715773156059478604613444558297687241852915466182156501627451622681314851026689911846213469539033774094747236840335180613591901307625382302133519946410955577898449872503175761019693473065682346458104624676735219438176322295743967630947928785381745578347944376983352653428421294791599131566470459182451402025143284110117738100447284751847084287723486571758236265338569107266633254591946834906968829946390164733304861922099107921152686006647851688624939732419933277371014392758355878083038501887233556164963666499552287732266632313439145299253374069722567146784568204135464310796648344349673873767575900107285860479836606924417212841580204983443872315593673104996562740622892120975023023392611894290176035980035680637534511229099177609246895748158287426469173680569890311093824099457118450875447441678601255885560509787146699342483635936720464293015155595194296745945132004124692070570613180895921009986318389030466884894844267571926225681912790733318549380213635717997510007480339578260623074729865272245431370347242107742069732254049695898929204880025623334890522301297074015020933178918167926339724025264249940978661347110225047073929351957404944423894533285684357662022972457162227460461705880204836977543856738308108297165265984365169579173999822957658261930035994631155607397289742610560383489675623131014823203331935299375231528357363602407061826474413255344465856350130987298305293022793778918922952725255686033779751126682408823980044874795689089214963055050125270492460510402428862093923295859056473544220352749539803001195011860855261599124821190822789591425063231843954626186800725365197496585218102795632943485679328016472619475287043000947158325851214901578294688455058478920130872433130275285700039901571244773363212078362278669666827683636425627014149159226452103703910129360839316674033423898428889776731150990741353868522363231878837745228836001641203554865255064452371361426281993091406836634450442429192086563556880903937983178667961741170489709861899771085377327330427524771431967741337399592713680664713542388374625991542050562294514434816712902832085313988610155881474810388419502809257680455773890103659597935772248229365481778446145848368433799853182194353515581804322655211763204226023359717165365739034791278321475215988273217944438652621172109537694831862046866703323359589214417816977260145668202653543193372273400639847426446841695197184874215576777829852304406654501330456087395724018767025702207920444103806327671286260663760760079469580052006648523547794520147735607380149253068690134190250472134379128851464388778349953532561445982228128216567981855315443034297672326051310889617489896773683154495939842357848267266072061151141490179936731789708984533514237639689078330866889441137925211811687416103692578751955554684453234355412611704195409110048317419739197036076091633520617050490636638665499693062950032391726168178283331759596269904462542630707879356443390401425844774538289205139117355097226476919872368023489929440681043431586873791357454619680472933293043581359796483818909741489589775763803335542844179952126265324890277120199831714528893530276128048785568543848270128137774604661052007804539964939274024738596953655728732295271638596047914467202118764007598221175547457487759915629862371103423094087844525185966780669649037139746443984534747081626071320955815184825000730008149513138839105926971784687438506567525290613831533544551925079686872143403708968216170404039892292230539881313171656919233606234586920826138664828853317760303706224443672473031071961874246592663943875043887538557597599799855792136029969897587775902083704040835839957180416711383198841469449210101681005926400419435646768071200943253028982371883072034242728236067196738583727056741142565732961793271467897311751720108633750428272967661257769536296062386577591144835585188853542207863445283480959081922323148870416124073621954210091526322143960645796331358815735692675767222856286843778126342709102711893226432420259502749983181648740370080208641270263895255974661785972485451349980244146449300009675507366384426038666146587387058752513364762829956198492378102252945121194434857213142475919809304726082327637758810412677367891623465753253699161147694043512391186662089379847716494787231629162890830146278412516430487256818490283823848057782741060829719502839677268788971943460690330334271193139800675295834735017626796778195821079335911386693596208946391910814434605500325927200508057514719381306025302818114226340129150743544019037136490228646223890577007612216350548406151605267674148580288486323541820806220951734133816038412228648655557601960940596910475515193985735560080071603944273942796894409622490927697235585047718721864033515271220211478200229986777276237775995849477772005876467833256423406767952634968335305936014442324666795948400520351093128161978538685442417399551975110648051113244015752470987357190704473833298040469318389462042616551590161486691026772282059269236796398033880812822213764259887876462833621863919468353560782587394937721699462163545673856310753700968519199391247993659743963879147867430451150885611453337919071848280655637234613357027573466238614413487073482851045552900533418226057197665086089139980450633843205764874833390840373103729529298788142066886101322972124194827766667253670256792939752185990200468670222626070744610716879382995679158237386177402815108158049852839587156194663403541531254549365573102167894014667562528076339258023354551507641717344932801454248426125017245279422980430393011363150615809038207522135471647420311212353101004414634865675371551461554238207563962568153722020631712635698368044510804460118406252309706065502769011216419866091747524636831217840927089947734986336380413427369233176982524669004541155146171505366572775367514815736830347853641995543762369906629265550205524596337325664125305979411351252631311697339702490302026072258045494151297373700259408918758494012795556890504798553304497391529713913956706266055199569513597397425792472262598386835115297976717076606515047692254223526531058988940960042179265471155208716684867459520500567178489390952022280809299564442806592070948469770081028933870631964008404124464042543390403331247134433233426984907794287632025759652998354814049505962334054165967944476854759908116963255494234713285631436077705743010533233956694105551591502567202366906254893167996338176047353086037101904039579654739901531960505757180578425268575654529018532723761101502354468223344885483416646819996089741914984262849452136623945802023389841592601836531391434478529162675408782569972986912808557483837742825270108653963130381359525889619494693888385066219202066125746555714067764620241021338088062032472996148428871009252754509548684095524562740871843457839130981341852300705999574464576903015755095934969459991976729127691268886229231634977488084833242867003687801664455104429403475325188976300375246363410436730906940550874033388489924467582825010621099389782822882515550505604613309834620214251777368228422179746387591436283783594002146646111749432353770469165172026103429304169032115948160977930860087355442964353438704745350871203990848248395002030621707799120078377957777728779795177082087324966404747330262943118679697078787155338395371807840255348543062000166378146688646661981674776053967587403330907278209251239245911291564490662216320347451843850247167706132942100539721891895848029991619090812086567645215793527629356733963428726023900215419070307808053830242455573949429736868812739024698912064072363132193229031262689611242804997917903877444755825284419749727039812304222815794028295953244818831912898888482376688514971600535431601653191534895586735761157518938136335416770407325761065681530281511670658635812411705138710787513702386488725387384850381848816021019592838440355643683908025576227268773412949665873191902339290822240135913636078206837198039853717451123271062515420917707034063174580958924280599876734385156578063192328973092504242417311321164872374810272677002904642838662783731097749927954871062732353105236459136681516808838104892161500817185440233157801301467223641246230496454990958010763430519458491188677430428679991938272315299023914774827072952504289552929122576747700705539276681442268955116928233171440474556351890780587505951103459483466077873300333749124935239795157815416415409143507051532393883423488146033344066650609956196336395052501772057965946540869813975844524287973324879894125295413773416936289284481779500898862271349464729127227414153193593314967075938008526186220862857337332300828408480394979899338560134565757215648339928011213364253849572850987871192450222963147662019863335760370046043544960330967080537024336176843144619494773718662169218128355648745500772285807670624213543215718309047913621411176825633906772269384674617895677585349365420661936742997635284467915120849796913132417604331615741750317271951940480013016606867110831438625162163275140303458589941643788036852269393513112518435085919657946617910871497913237235979906596347089882138078450030218884481945356896495196971273358614869832245032027664159002425221285358286199532086841223988657951759864641627308731011787838138377132476086721187085059066744065927850039427835039428034746253685644356273385123486848998295590267285381088799577646938963275774558040436003760261296441209657848410527813319148895207285542471211930242574142301406853250355985897479697837117897570426841898284172664012278102901731584129014491080123727762733584489265413990279336269219835056247612638662835105321028543073230138127571390869749389911137388762933009799878886449161164632018524040825237081315280965293743408347547353096662376877926673455646816899095099365110997061997524572158124529253390054063467574687303724553362945654384880371734603429928260731521121932138132747727896759539575726756281142504061017326377525964242482609588345040268350693795454971768035664058013795884341854951541860034420643945212423061998868765823843275266897756667630071126363547225565989403620321627435677638341958163893405905661086408688286833926271097248596455431495933211896043932046895966702687088199466649598655517718156435295839433704474988081992403277618631869666254327096315123589584011798035349500958748496224113725760521409847674194367156628573771224656032479624107717482916314660649947326338039973455780568955146910319714577528052028971342052505121978657816912493288508936586489765033699460887525325375961780449780735251494961038317438770114653700774634164574308966886872664785809116599598083013247630885715357030658986359184358416941588948242069579524087065925735470996813740692974994542232124611818295048730947937844359961155532091328394341809162960325393657383642131454568656626814114252419227359133235458780525523522408499445342860016217306836218921025663567581724202458175079394753999141930345660865808986338558165843570140818346258222446612855377512952896473244549329874121426421284383945201833643473310002341022302305833264638409806037769479547234203854967969568972236985191804705999979431207018970256856606546655332702043210656341427141456022429105734099419439143905723983473695754178576966471892897217738020365158130935497806769403277955732267286674569555673477890941631729879546035860917010788981162299322630308109583408702536456692031239436453245649851172705161675244242322272556572734616518970078101230160564202108065035785394012150247992377265677163768532941163765280927111242732074312381179607300243343128550728023870337899702442587657884351960930725997385215371364833001056493972125061057380403666784805466195579557185028220531542860867169407864334599059453635420390145918944800450308912381919608231110901295018652614854831691604345858040367441753274414046713068364221427584704436325971950651589221586948621437624820837183358447730965228299090667039328773793348850194293339775360295811137460636074298950382123537104388677624740706531379972749105446176081023493422194206916222496443986654924598862190264392105119030849553501190405328633393371412858233318297712530723179254161077257561864951502183613435734447134972995428451348010728605376190696388352851920870167626366224002137000331846626125479491544641814877613655234025687897197204726195386385903575460852292401545166184896874502197266723387784595716211626499351250551539731217084374635859264808309929893505171301205775062788015041165968115170418556919088551692363109341965911850762733712522963482171887714052931700314061901114411199307093940601432910935647624126331215562459864942765268159026700022182961983776211519280829167720726043424756524176735199252133053760251733148351602359802789145984421144098045851961803051147671751867722995237802079904455716088862704017410243817357039727303147902132348570975920225615325731441837268995118607867034605835992076744786900025692791560453899196705001179396538826284799370481090933506885107672734113453546733847639550646751770523589427622978238094363694936654906901498578619837900175904953140017078165794333831002863089485543597564267688898070745493844230844646122720507434139736266552499958283570032929541793819162494509528701884789322120571085366002562227025939385357180928980870997482443780547034376895548085131661114040583031569866945309439471744203716007565701452705648028530595844960461475724270374224588587068533817965834697123854431326890470356971767648536961611464815620803924351893207778326890875292342434498890343308863642281700395820046275811266507286862703254064519647905618516011787842389351590009135932963992765094527049650634525386846298869729040512627957828310102224281203053482958897395205931844444837812785389863150278392232875796729164289060203630274795426619271260255549200842649831984024092388914948424065455703578152258782700350498287785730076392208129985771856231443623582545082671626574088706156778380332567193072101693717234512369008816289925130393862294743005608638426565760899930570882808862413673219558102764018785336027808573714874853657646138203594376249592531524035518305143682156572396415381848342241945750099080587143217237460862481795297043026198758019547756913370484813817987704828713748342067515457056311747935894867425333525596497168176133272539330228994141454604300755951164925668272711558926143519042437497408465980201886288470009534910373876944655406140299358813925017764627283392627407051375260269073835002950734957724756576775724420715519700096510664230543187545686081125320231153402994506013437662350611892877198382596543197247605300746833095438800637665573322255662791084451924029588131377905917316559151335074787079630351750039540237081566728146051227580797274303337706680163987854491060163743541538047133168974133915932561442040198980127760662872257137284645961104433188287066541136580352408982100371895460647940020099716427533238682341837905764470170281673994720918544382887573878477627186338510609114793109909563361329218038216256251648684005317938155519465913263869231826810273532831842688412209226678067844503536413646906507001294125652828075672240619175588678907592374596211415884770785557403534211890264234874382383925908603907738165559255948687254424457878979726626753538664506355445571458946379172178547712029556128439153430998860909044764917734248911902279251676163681363238621609963856592581457143204885699527059654827348095600392140398982634860287851660489114144750716266463340282836418132540892388550266216687620279210416234056687301063024040224359885896425869985147288023931784667390930221691520234584743524694774065844173066778653422355847216259010526003055486688677217183442374610885795099132229325540793273693240346480463110727714456959867183932136054753977212072059843753065655881982327242740176996818168359039843114160494930497497669504091369222338872725844401721429069860756438524364645300555553168876395736384635500576355698713756490941420513123210224478935085033259313651839854942393335135321164303689180329771380149836977237108885484697045055701950507056717551973923010010654474976581077047359107293615531578376412322471517706700667087143629882848925379741586585643379586822432398271598487138858379887456051148187485030638629520984704333337808864222468362826790330479335259006649040357545780147562443250028788042895200470757722399585671281737059429502768109382601050287840532545325917275670440017372374771298889284965037568192577486369106608432902741484955674204561788986067472215694633209087470677131526573021001817862823579460527011295061385205062706546365738487875114245014900388798667370301253576260229715640055302067371972660487392922019097777851348323854922952708748081328780369531108012052180605085331628770431344839747290904974413326788659893440992215586861397113487470929917588083370984907818647798605972011629488186379181925911479210199143206826335904916691475746561625641659060596205956505755067578630287284884497385119634199698446440301908740790673306066003195702553596920461098222589059440788813566059583160394758119827503303369238315827066827855982209928864437702911046579062792500045000608145049694505530478818221853174018820938011423824819217798451963815988495954516284883178474464724861410401450264850361673946839147849480543099184865386056545936729692806589642974042889213662730688707372911688089033527260882935254054382365790582371830854796532371840633663406879030508427830682093546859126379942650979175226633893503085934549117014102186965156365475653274896718747123100701572825298021923447554834558528135105253675468377366071740264622528441869018339530871056963595234203481249805522734833412860425067254279208565075708160878664565744920738668396107314564090958095089175995916035142764514154187272194542407468920812985948615713983373988174754648104666661586025161044420480298670457742363282298065455805511961785606326608476947597380466069946834675749628209113622594988766608110382430650685815917424222517483389168124869070362502802714370582057510527013684420953730152543306328020233056507737191439531616434353130915232246860139421954167914467513220019817716425815612798498617554934382669747371615997237242450887189054466311484622348995591918768236605952281678089376824692389358888976743753789510442288282118883013022959721589010294979567276202520577985531604295140298695717907972069358014438766685505744937048337419713426177338715075379392090572528096057083255744763868514345062976633337006459926925602612655108411011218356081074618139505395911284475242656549302886768205089899666559287396193244090407079800192326341146927085273750421549356818293531267390101854306064515549603442721609580314710841480441247577417350005439957838668257154453331974879928968192792717710719148882487967612589815633371443197536324138169831937010726706671227908343172384745080400351864543216078249469571279925003845719103462498288846200262628957726977041638972845890420468923021306731226170538372653065687094097147392679748556858894075384867270640771094598903857695229423312671133795793368316252406069098679352208505834874770894247355740958298354186570465334108563019986310988410937004482379787036255294342217664179719643361167200477601153049771968763375467042805435322962461811860899434595475092606623715455874434602004979266335558346025778554569729885697519344925126813111144602938008331186720336477524148159707824312692708461208410731099127886100070470932852945328564493903543129357550191337174369683507395211082214263094010197241334839272252840002336141873380188617302122887504540215489407566669838168852152986507584105080618622500126010612879952216964414097496696562699664467959812912835563163787833681633755501683919450950869260857494258805025261656329970187497831895229903849575206082625467361212292181749689897715034454371331651162065197986008727899801669894989901774806017014357910608443190090155491679771579629026066953967225494009259218671147937356302878178193011510936962068921124030372912602864706010155929255365357978163056111100246823687805320678698358800022457705151116237319919740979854245486157041534219873567666806276129209555601783735776784816347317523702781753952884606609722014947932991528389692626475692234039609384283560641350802514200654730506535767319099016600631645272139907840031663791385029188118573249155290069538336324920604107640376433604623256676693138418720947244640258733726684968093168165549033235547716037216591893130697602765870948336608658124772659125716521794642951002647469268970324683968972046927610200143215000095448428829354490252565442509023691222552549062078789686400165033688646935054846028291698053824824157339640614711691393158019280183495938296438406065861259593895099374450604567815017563907522345681931634680543074917121950774271577813422157712219984611885538519161789675319153750633538487540127618952604154155890791633740472283033735320591229565286946216634683872367623332557640274800861951214822206332095375678951540184294077416766768130220026891041592416534763683930264870230314528527714811302308079886121659786424988589248520706417430917423828342654487043989012553462413797300431815049922163687579161168915988295941327796978352064516100786600883318299511628216354519330661416904861265510016779048793668908678518221328403170492175207583040476079819047682446142222120762558273745161219904688715404153458298724165585047731756059092126393944495711888504611155439135344815727631228999575115782775746183998628187796109398168199322952233400596663599552704843419345813912764366175112312657750260567329014143220186879095659497990067601229148509578682423064159099559450935630306185058319614390418539587981215080869153361315226608531022118385686517442212821120818777436019616402440936221814243744131041111972551179009400052870693518015677830487926460104124118247582670658585966769681716387595100240183868033914873785884025645160589833718642951479933688477705307599057382240006600353749924097405781103232019446242645886540064388766551532672246498812566530542489358989804853009498284447992650833781627914706701508876304776319488922897927334226678075996745750217367883822902907533785607592851830232055567341899297747732651987542906165633391588566415416205719480997800721143940511255790472550560190619181598299506143628791454084425430938110119585734753216152704273203233171647013246151662505381913601666983989610985264387961164810604697767019028492207304961838607770778978559643813152710891942365438296846768093654238867137491565584286112632854511736006820578271060976464190630822890757782646562422508941343745326115586277702622522962016381409434229356864472577513613397979345643275644491041918193131167445085554852632420771624908436058967057356605295643583360826737125227674074036678215740588923270665574137641795689658992085068192892483226960540732033176105020620402217270581696472524836932758110231241605761071203059206629337711006293324553164669473187964857178569481310397910974677301773700666667536683445054272035314113511295522859559689663781667955854110344596833499998013940873939184517983871879305861882812744697107096488413804282069837240233603482205550617502109277980552634321178348596269841774758898986250916813009868128110812796678310257244113615380634278636566728951198795264662784915288852743928679889370637551517188676432884105799676725169605704019397375122001388978060248453911111496394803179672782217687967836868632224814970590934993119469184684306641680712546352824193097716061141992362481843962699744701384016438115426927319662179935338528820681118697133958864684286947800851117366413048691129708087278557999988179753166664617654464925360315450662601738250920268548128428786536509028683633046962491439783872546657825935248566338032517388698229995351591557908424557141234108452112727485113317225781928195041732329541455863778360505258893760603986224890782846051915381469200178729493895213681942111720648276504016095145619565116391329660839523191015437884135267879668658823913605931617664104546617421467624268362348506266262904132351888287341433489537900102984385865878463744126650297645862531604276589648214440474850180267545039241290021944755420953738499047141351738989089298372194683245415394264135614919045179988831020096751026990339559241389486801000039274935876761443845171099952154583094820132704386873251896236030647216676265995942785866186323211050098430499448129148393734088059986942808755167596225861602480658392616595786128101597760158005419415304234800748650232242064365712973944064917136179474518724350568602207039400388793599218092123986431742819323449952547858664454993218748654761780750549585624853323747697305869508985328658703115374891576166434955985101910794811402324593428831234984288525778062231887745483956649009799633480789011086282217652116497963760044862569843334567489238151971061661049511478738798965163194700909401116176659243370824212837076917014002834775826641593021145879975021049638998404350054524529285476419226160446027741435454876228884538492801998789147888606597528642028584656176909012865775320198490612274880054868031489969547649272792052344160957328076601502340056640945867049913458776574397094464483294728257890358117131725479668502272062199729649571839713537187206926823115023579808709373663758530688902471080360301674553560746978657589922777568438001376583909046987734887949547832310511331652585567149411901908523995331117429968155107481221932495173719815743772908490442329035668909229212554839441362405814997732929633662016357641805408456376612828349119089435092584489157039228806014638037006796656720636628148604350696012981841394866632367570539280645114426589818745490764652525357452218080618699473883042390649194783834580448406512301250649839167473081984899814441065567209389977642215857590408927023347611860905630720077844351757714680959244488894535723708800805031986311153061305278566154560762688007604709536022473730651727220358406231126677797784566155012116892047218764580969214303677666684131792739697402322915485439027532355401222779099347856800191557491844376714004401995745936816734801164189113001596612815462801858080001979945291522221979947098792514713594960003989496404459685007416448277457494522227801774398863934417628209518460258811489003249559121784470278578349196369981837329853114411672443278074398825607867206490357508317873819319183141996219229552033865652155820704871271903214320157970454106392358320814240500807224250215725196639263291301759328597607386118406658758696236885921006111775737315430927708165140603889905901733788274665816859577301436418016661102680133389940541375198294484375168127169290705285334830710348983839787413628034588137982146313440311105436445493028102989737332041963122058832059712313046663566769789253965189162736306404385848155826814784818006244322097775827655407465744463417725248102520773023575779876212796990465585212149814630776547244052902885948274760867037998370436415703516817501514044010355240140453373545947106962121081937783854519508050580913003167905322905201443962511953521248719642974173682139137765389253097285890675139701165727408174721065607655538683660392776733632464983160694347433963297296445437559185048993376936644856870659178588747925240206855772320366493102561830840422350057500745826278264483562010289039130206859417663998275359855456721213683853697902163702730920903085439456481641945830202989937304460704446468872170307769371239505138116150733964294709210811761565884281282678963023358734097183523475354697107512223272333585025000850127598991083283033781147647858621681883683297366986051112529284754495104599586428248832362297762006437554740980700028952928299959783293174868541177995172513124606660577711644085997373260880999679416010158807017454473448393006877816179420351108127112015357300302012627505458852134110401099025469151981626068084224790231829119392658371045941885810993564460271663852084483988726640633136747422944935415983582740159679471601205841253739381297029793238460801429622937476939514807114109150312192518449660581529451541624460847540312155745999136178716758197307312395069233028875165031310173522522678489526178143121024779349664828940591525763382863576838372788934988231214186138874510029243599752648453238320349975945882061933085653628674159454921554669701308166492179963721403230456883580035838118778506457237210723963455728936780170704906851280910559890218050369736624119374694248902555003113835360396005361328919351279459706141685413111792832439358217277774967834895325408195345214106713887330416837583348454179550682444340607503262593787579661073065420611214342143155491056638644822447512851640121927531593615090666437181677209191987989068124899613151158054788016290722064171754298820738090621050613662248040828209700923503107250232237039708085595179075135897961017854917986612439748256544650869812973409489993936244103942511227618877460268437313040484649739265787890318204326066800231427872164412162187118952068426466700170785232401231510807235058629272802164138681247743858164477798614240160499987976441400304303265325981289220846427309001409144152266377572974889128862587333542186825005279473264394684898159320092344190840300079665911234322812598108633918097648591859003619053090052061288288639693509968563402552580920746329083840903239285575679783710594769020028541746582262661670957545169727715776852192571618940380585875885689695555209121603360446165458822362836383495962572587320212869042547896781909461912882605230220057669656061239163145004671180676373264998104704684992338279409467125476915648362312359559415001223514312654422704374284060647132532099774795252754081442146696082904256818276184738358060069226007863913341392446299527609914283125414171271483833183230907664689782963001852298179347167188354474986952086726577752673731902845754311607184042168061499899086052245098555160042470410779989551739027071079682512840458301928917302561428232853504726722010004439266854885454008458083540243802309270044453579695479760962203271961267334728026484345390741787355272763096960849398889029850820674242408985723552846337916454902784479280107502857844150545577173655971428262141186968415910576306144469978401341028975157049146587491580489243702314660285342954498188653239664044582977892673523415437395700099586750194736235307545528646819086081477853632388471080506969073155556008820478139258461009819917826135155487949182499156056488705846407693736543266583852772601428530820002119808944385998855228699998263358590766017258527547240757240075765299751497923324264286283588701346136282803800660200214369096516614629995855539426696243296618328061017139036999847651934190327747116321378842087125645754231533624750873364360248186134980338030214266829179238545892775376241992177481036785382249027500283213548273202097273288814853986893654913245186889921978354413066225993240985931193630902041332424621747724893223520223565909535547499146359778474541409868200919477951386459372666066176715755751779053354055790349188404606064106701171292586027816475360931281316382472573821706748061771142893605474694685710834734860288087365255343566456184175907569871450065129960294927132307100478521530800572913747768433786144856550988083152376318273622393104061464096516450167503695509035372850886318734050776680283371578146194286376134849111824183478396541077786836872207045168086002847280638470933265901850820194214930807226077040179753728228868426157658367513977189822239217516073015101564945436536652694403518997620148152187224801469846353923924023643253279242116812562126144156234885148145957486633436490542911726843968285734624799821967624681931280470537144445271050118177776547749467789644010727012940917210196946686441206875654107515908292845490755083229584463709755155202263801038291780249844501763965372798420563769814780325251774900515018494346008855644055610599853350866016532741906741166939865806321944384210150687598356246315330732650750364820855605382906372269040812162163107590690327287433972943905540340030499092517400026122750423203456760966636253421430443568192539777708979934838408622756612902510157796981469992116997791400949426969499439893406787010043792707368121431165456636259877523452596034032296184498249578847479198708013030300532331544973585799595983012143909016203748461099640522966767798976817961394857693430663648958551629911343878325425169467795020396583276862971000767791157237338569324749704032130122419173650747856608749262819329950084293095387133320469902811353959995431126535002641702192694737108822625749118006449730259879632808674488182918525295263348187879418750995538612298421951716820507695711873361978051525504249961047258928498931010985030853194895986578396585792331545970151297761884280820448760707789969292491074947680379952696622440528328713968242302006060558249931096027886819791576959990721478332211320721731624022398434682290676135033556668680302760201523910998469411093653988239691483234270670182251112954142742283421667764252047305215488168369577043911363673323149655814061800420281577608175252439570441242715993289002582116254225734973352312776554947454849632451050456619432444510218141949288384555932282226508432874379020769219857496429564031487624386452940459578643439988668356503680632409256049994189162414599881457747877614922758098136581287911068710210368690017769048310937055158712713327299297411311483056506733363476794322196711248561469087191153952346808336526003432284152272530699040480107780507642933508907703590874826176786234419154340368319575893710690292953727915898349726668840065502703513403976733590572079595595673300177041186258086338838656528831260785189006415460818214340441200904294250257830406723354701278132374368720689634775999539799680298325262054748917175575985164640393873742641960025716076015940107352163094252921884418651963237166835500896634098562237359179600468906887987042373686022627117314629519882361714593171398297703210124202677621555174266329227389634170994363601399560394438297045241514823373796316459427267061584004740369485954919737883282601614891779078180977629295922730217369857886077377696373148347831110661902307737124941488099010036931734037809413806628669297641021079893233820681051166270094386713263777200374909670564302696397055675144499351437434559646755929313616992053652199334159235992242981954460731161543106512632599956862350602924206108621608280107040812406721563343075617331085933660105147554637695945142431849551269872292239100836957216270734265686177370263250384790748407244552590431872051346756968349708571801966604371379658796181129926882022271917353534144683936365247446494409058499104134595147301957444010037291326366659009253799963290247664115706859951967529339092062775107649387881000586798762727720244140218786284633923885617468412556268873954405692834150747580615610501074037051163801326634214279547377317638866993575884444459624733895795078567895382201067988991614839694575556367761118492505075503781976818051914867485698487202076572317064045530151806194038435545197885423996063931575597810253124376618297408522567178152370146320491099015452634408897509919405461690932974214235739364292804526027858828592397006139770920998554479676984070601242170092331841400882487129458864872898956744986254823141377288602978690854731224401845497127185095003790540312226607953187033092055920657764334583313292100943348522163247031176588590648885667704889669031185082542984706547157483533152196936626120610699426608026385278926734335115361245861973379380487412419792391503778707183960221826679547191398683716388927979831172491808523993527844282717849851936704692243113158728702459821249673579622837111443061230253692109708928679889003924497927477051160349323013882733282472049278852274206996155323102092927661305528197316244958187489570682120717855415958617171928456257384046663526635177952992616380808605318195772897951893675814023777132255760363548048836703719983811287074456185195762904152915048810458562183373259063863718164680033667173068332455795408594796144950171059839978082657758259067021326350814756684830522029727611757829014868383232948438497781953707838979063463592535237271823016369668337997056375538696262205669891212611194327390441225342906418853140453060660748925040438027672340436747851930183218692876785056086158140169665749514141100362698888342838505816831522459183322132178615700859996150725689165627807228689045567349286085612593290590090464754516100875113998451237770146393019101707957358290111911030590806741430309288976179705876238785287196456893677262624003747069143367905737751870768864472428782516726432268349145753594936759239007967028059845962300853623990748993061111376388480064044559808699648624445240044666571982059605630027448576389035898698477500895063177219488511647808347571196825947588757712449730436115750333097738656409403320641280814944612588832005518247084932428892676672448141486277283701168919064150761495401989779047233864683253421027950732563410650657415331828584794611526490814584310694994813887261984233614818784447843901690375827897043033989128689398318919898748824019854379789025744898314473976712641440356208741550291552146860566348374649793800011873689327951851203168788350645087588564656873416821092975131307875885144034209113216865843125097322670908074053714401996899674496341503502247159499920104299168982666127298702488049930861182939087912583817939209471979317887890191711410195655073496758140043283613194594846153276068867184083101366300296359317224879688594660410638428854006806747613105440003599079496872357103070922579259774400736759286729114860106471237184112929477571873021841842515132596479329325283951366102781537636658923584835367036136797859670341498661369514226877785135441256993544247880654797155175011230768803589459140750589128910043557463746702644112009502204713637515348010881529936219984155340088926890937241288381067899873096668495780489003705490234931296387732746953385153974705298947354205905625274025928670834440089432662212306189970908305585233848028669841900248928852808903353821687693158897891444839316052166875435058064048875898139079002053803388206116844805859000811781488654699855985239843246569122397849676549846135477606619528639156922633045725499808149496287082872407545409410651678330475166106171240073607699730743137201623088417460555511655700338798348879641238407621338554180440312203754344232940601143469588313160968779051398207841525984196367010065875921286087913659029748526534629730381510725258096793374583998234533020213121564345712481814904679229307502879947293480528193309762514592312312998054142031631615639654360998189781813898846155748545169833202034951677047680856962553823819188072687100285287751899888219649386426036506478324101947107306244251614973763612410391256864247909168235195397252828282953106940259872430690429361801928437742765151516841619863766735209743271757148550933116155020790412236219368302276534142825970188839837776810341053430582463610856433120662817416388372980729374580369891932364378774506429357269209145981940423798743104412490206368335756048732192903227337234718568343216185956166990760418897094591047317664481743623509788813364757745231245422727683374014791578244238836683430195061111552880077373869909654120429972072677070147548215102153439098470782750308886523774283836886980798789210278789150350277886118703801144469966771833080364300846193982619370731618809073759786077765566165145707735104360184040201893511818720216594118919461703218272907439830475611393390390792859368611128038974616804289280583484078209221641631450181925435008650974022691728241682189294779172772758600812937633736054563014133259705829347058805952666053226780750233501923188929706671296726310382830307807959867245312585092834498242531509630067335128808175047204324724500171661481247495939734606356122411234150921306115026070211652885982185881324802278879052272509601032643424795300076067794056025413380453952997296312110397218873748433323546258814672115116291541533493567837624884783762499184455446414222589621922808424327575616880283921493049470450461570070453363030061724668603086544548723601517965719966582239860144577109961358097492122159298922475624854311426185181426545888876200510329669737030456807993365596350477246870981436239652537400690872801572921706946417610380966149805165392481610514321585080739747329838631594732728999465938392033105153276038664108301309971060753199047168165939016111492007131973150775793539699320385213497094131287424398008438288919357030878589557042852307546645215364620350145920994629149251864306713792088266436971791227201132911526017633902104313137260161668218553644440476390863658938087533531208384812411959336320350750250424452846182107014460456796098741165836501155210836086345245009775069891617921213253560241232331541105177145571042088420353530966878482365491881930646239706130574195938040971766409845371478675459086394183061377392681993308190217856443612385618660618331176992493473355369526879394275357055112525490948814230810459264453962456423835160776640449874655313632227766328847419728568854206015270437882618659117033396912132782048042099164155512443302952205198564487877343392097644798710748679078501032534773567279816718908520009094757959450825316195518916833914548092362240644388072029126691112610637389957921476354852572568125684983492838786069042921758924194346574421034400953667000068938921894754459264773131596156100904128506287481337908458383296128353126571022013202652267203520723963072115497781687274829455467907323786226261846623301708521483996897642909149796686888541630666630949088239306161904149294861989210873731246056789733403875518833273473926765484189401440661865022551395332226725464323897394822183162571247368265124418886458605592404872434685895719950516821720483369744323100287571882712896964104135807278410837826904582472416744709621857504023718475175638930914006868667457939456768920623691108216313454142015691784719715501732831084882156790896318399313972403010716892906763497938321806925091706067833483695008079174107810831759097340270051275698269466374132921212977512673710774509248565780931421865388771928097306299084540718091463636396497160482283562993688645754550713466348835271595547836701279671001245499026837677190937050711318754110230762285712350610231033652263474473655914255876301084090516330337358650344011435035496854580841507886572080036052549247615717046625311842737970022778001001689931012156415720935236198755228053553616142704404112758820007242880120067049761226384079151110882847514393757551888607259679598090288185270672357490323608781603769916672054534280145499890527657349034518153256084950602897860054728532856196655668224738944433939257428392037943883813914558328987180963085395497352777307823570418586536307476069318941231396416224574434202871422524520299651350094791902526407462542839700590525756214035889474525400319894714124537778985600247763112992240035150291745377085818125798287587107750167870182174835194928186306167665891883788646811716486461249773036736705054323015411796918140791990985559336670025062632896820299662242594206179989962439944937835268871735737146071295555258429433362367054503405235909680085333532600530282156411795133842297826120061525959517314193234578204594999561197008215127729596430843999669832142715893194407156001991790283086477798345792144746757829507136462644303566686583452268953427285139389848671577960378990433961898122000029369332889758647839968964956964983646145515175888596813067525083035607756924460586622148077826857006576880867824750992036084107115812875438842782838299562684847104428944482638829159962343882481847392111024443251774702646800108049602178998070107150477588375532105387212366628833452001561241384245481402570384931467224797306799359146865833907657282224650181301281126060017039600296395624722150363562108600035468908044324756499316681937497342580160110357160186154265204032722135829935235616864921674191948091702617197994845416522033537364476465518078990132942489814090173041923511905296780448551126437919474930340655023205117692806104797550032973824525890419556443280445676435685228079772400732228210683366533424171192293587600325224363777977776688272169074956340555287495343881208949460426802636796237665936222584448208671884230398899441456156053155562888508235330200625567046857608970763199460594778043505330959422354150263348040484656231863782971660024301470448176210382651071698919272253264855763846946305640995932893265476308527059351694765221448575040489135602568500772905854512790083665043607015499281763814427603988330270884249077023948513678286098322545029540371100955144016226589430358911766351728011827127468743067163975893617870093600072408009593090369795937145483838454317231989307149363538031222812163357408109477489285661909627696853703885449056979608607398165081744813754335884839125129282405006807947128897771639684726176992950989645504953263469085133778875982667695548978722688472207025358396614480467979066456616301392065718627157009001032420178592823584771120322135253898145161009890260529646134095089381268046427760421399414164905994723251824453806537575215434658726083452232706181728573834331606854039580758743225491642242268852414367337782260124258129425501532856555592607751477181693397876817846276389261083781159019199506029341444065040088079405662091551033127420701246205895685225716603027714612255650869023413914002711370853575005118472776056353574530357417530861558088516377282597686270443740219841636988279684717660944895170044454754718019719541156207189102071836959001812093008796209624195111722266825020670977873623854313276631490740882626086209333779303358121273243009767940569129578620730608819290209589422668306542758727375423729640808161799238481323909836560240815556500095229542370226569732044619176945803904903526642669270654725472396440486730256061537188926296490407889227459581088512655990575901585631657185636966502875606401073328636619947007636192505567361799640204859521749527784075938478892509864483460264630577930618253987895565576667281993793768920425943285282638610656560469148319407069919039607016274739971255548403639461284776526307241881156879423630637096795695458205401533887662514415146063058452782258719207020406394441122172923172826585230172906801962567047071263163860089705788020320348343990174097780468031490083447346664599985491249777293237513310731370961919773316157388334524877559547226426594254360395657394468452512713569517388644675976863411152802963061309630309996764491456696557455484205388977976553149359034082742264676319416649100307972514668204973830026454231893415390380748938920133133314748850468077058384525343632944053607312987754304740644498201111342632049904058600227131838325846016909438427474791357370524081241046248277931433369975490396949669786511075311023165591389230792655689154584150008959280399466296541122207782460687449966703994402177596483205926281360709048647671010274989826732883345627524005971962516115086343485520368304728435399279890108616902773136505694225135903386191591461447930640133815210811278867063980687085490116117307969046533719932995442243354418962546978991116350098672522640191326458754901785920935105152515384103659032973681415691589150850211202106793075248225938345421124803473112549893144041460788480429515249089197122596832320255322396201336683387075273901083114533548372124845291556744334042133505602922870913116670665362572795314173844130809115719701879348348099488046554741527032327369396387545615255543068234983480056013184445605928675888435748095635274460936941995279169246141202826746510455875783337025406935234862121353514193713450603709358037355629670602185936891942933426036762510148994006179114717784916840997816974078503766432433528370387482265647782138651115593540033573403984185735267511958117023552908569860385540891346409891438877200515583484412009982101773827710336179158967393670586694013402124638720956322309914857003388431628938617129649982867267172611591041106917735273598218463036094720359041212199302927242852728992439365682287375420207203950725178322657560384182038115984686127740895580159507689927321250139352108621298340304911486669363200364039225902977987498467959836470910116000997774736223610833437528847431169886024883592408050074823970759972970251843977107136773858679608740051156487778775384200337951668987854152611268623542705577272327813941890370884869883947215990117004772565693696389517229295601250585895076099007385892099557218662929134355884547991461429146942016792614069301363341441726038709239724510115596153296573202945252451330862704925019676832035384192874063387999237951073802976346027234339284398760836103409065209401241052729563690415402332309396208370177087101856903501621039684655177033531159391682949420890419063960988320773185479954930959503426003383263493692366765906460884784805353342760652659387343075251082994144258145923961130862038303446838221453185551092593009550485886258160898571901427513881923815719548382993205955192951338416788072388720262827606181118078108964534877490865920328404631706989210985907712674423216697014343905141018303563861429474889757280945030775693401471263516854678406570544296921130169569281745306544317486173702227908499240324132680457210562215733766109195066402811204698332574682654783362301757646879173240655136865979098838020792703740001418526237049668904649537501197608868003664162960603595572058373973774640424316814766281661070925140989513228215245078295890940252886634457878632272914026085022349215627735946500760596126614259612152688765990000612071109939862419857554737302731659518585823837878869586161335829368144403625185119783603371847571146575262322557358478060084254159146786987769609030134663509638229091579131062205683821520566815642171311138762875604242685277732796232567949031197517247625356753869095668520087915852493830991742642981019869449689494382388615167073213885114689827286412624296508203799450066607675497621540090367711801443074492326394219142984032903498681937419903673754127583418927314943764735588116225550319225725393180106292617850309926495798893964083796054657523061248324120216062010034994119679785873362420868071934769446107339280921130468899273262021744222219495368751326879522630052611715491388257192313888125204614880415359714875961073698430447557275778891809463398986061325033345346690116468813016928578788918627662390536300002706492151746254546123489393268791583837385659896762240309204673512370951215457450195373676343984393025040182844372029882084241505563687429361748205709189603203005109458459844748632934296967505445366669756386308615246012505527970237926112336223093942521877684659792056124375731880001277866263915760440773386729330934776043440762129303484154684833482691307057061396566050574220543832203608597065300309180800230762783814426869183767753031337099779143035858296512761597065667801991000411108525996317916184051680617144782627035560882933862575736124724178887666643165067703057736851034110066985794523321404449063148037294144369163362391184060603319514338780987466633904092409047608069880336269712394558644292289002129325430612068620752381372440459685613970306628708288155859793451181711034900612631706844756326020416374499906081580911430035597312360477639081381388569294626841395255244811256622167882854579642188088510543822358226444599610867717281216696081517981284527713983011742520844417561502762914956441084086627744288660301229310420821417505239995173408856374551209669863308421514428234074862136615894602340366953506904481369494916732688555416085815549747363650122001130103108488386657459757011661290899320849444647927661857130027899228376847439437583555669491326053170306143255276673836157141130175966821739990481513850491572407311578248805790080985591451013476122562028605642271446355294022505361763159840067370696884669090186500265406668646719007379854346995823188291319155246428087165293762643256232149120074850002369337925555749065708329587231289899352438585550014183362157160858391191720776077425562187411023562628834499101200083352079101330305816603194221000474340714167040682783557330585520418693793601289976224185701396067457696634533873879969604061806578418272865337724836922690383976623725131684249123781614803743559710501830139209041098683368203406624305611993076461377747631313498584019014624275399270496963928278541123110376740402614380169998642242383166012033505871034836469574724821476390376610431540163277364569211710175065254615303794769704881052631804033143729464549543645915380353963574315694726168508483410921684584517778457651402996866210043603480977355518626352021257075276952435194996385355297256483894004790124155189320552341339071931046895910115298416934576503430609844374633189452114393744170290476631046916896483434503125664479745256164978238064853483868731804221777194371521039569998863378406971552892570803235564294783275535271288178986984550692533174927297666850070741467189193553516331979466028203897550111991243308299098039547801482097643287892977446873141325079049634237070429412937828573565026872752235813829413787292396043657957690480350349086852800865109883048944291352364539682172444649636252924359233933350334506408361407825821426539898272177449045276148924244605957282282503285887674160157189066870743734290396220269800636311436015721327649404427441191411802622824364108758397132764552631569781428223259164737341630623329818944618836777076913705827165726721703310762557744251166345641483562790748245167774009224710709156980986647325066541557790420376562070822927998179683706220525981430945150881773345309880071865210681933890258547581526613771527777720667020540703709155410651302950529273764929265747767067890816986452977322156360354266624761438474474165518263329390951347355795712937342448736424452729559548906872473015693457193705387349484357414769821464819776415631653735047512741320743910805509510159323628426864715514395617871035096510745541206318816095551462302939421977597454166236303937775062740475930044893584115697065372450084786686304219138836136124517521806574573830750514367381624411362740127692812022324902465559196136474752394556742973438318098535564543211740018222673257579775126538789534942460338290952535842349709206430980935192176347352704088249317136453297499649881662165141997439308336253222935377244269236813251916935283958079589081285762453183683948648628409852394084604436539487660910602392754039499834653048913455998321534387425959522313509913642635392451093180799448540767148827406945846705353597873372934801160572736144972530847297320981665841367320583732797768389353710054272507261687965170066193388583626449704747912559865660828924499629575219485266300323330462917885724765520753179834688470580142169958743393084714950181726902970883353951769232174858132553500321948822739318377673467297076185037965766634480921036668095300715219073793282077280620785807447469875524643599537875074443964959961829362161122525949628218824144476502038928708721535549202725380247615894783440542008420418095282886895243649476318487598438397652329905724570088327048326459624797090629900168708572059807790792617982438084074580716071922139266394500779358691690950164020525836893006223765881316495072199836217556480803008851405711858276913286575089995139425812092789966562332864282630217428879474079590273162131370883264053068979258845988239365776808437764218260783898067641992801101423451727764732265814896990190192272717511405402651536502560844833956699351436711492364117254317888215095527250049729026634600038510644148668142242834979316446212358647892443249190720308281064148272399963348357149319580547786428914246937564421696720171690133350668331947102674884564495107964857649439290872028965364186174075292308280174786956649999014284533958731817404048135842188621220321726023215642808972471241166261806097664769553347730410444082774264599341771909270588126218761757080813100310770205774186988225528327336337278458918437783214949955787003036718099402938887083517604157879851513916619441896252823577767699400686340482574667137421431771564169449516987945997294719767947735825244858834679167923888715717532828142250673267374662218837596739558624250676866416882316799523062858518455769858658128978758230419818028954992206217139013397291573125252518016395217360332143884485897022354782681654874609513793951186434973659859914755054133472038704578045565386373641085447823504855238872376363008788226245195997353969991793272486306954250564605068364971926769616355456347859005478758498432476741126838335261922340966359744164722092698304804245530155320194912076603056205071218641001084271748115960991251073224716976790730049312502496712282350077719400544651540533455400329990523523168448881258918373496167930851231881649314595591887329499521933716565477212932387425908099968002326311632557874142718943632287915608903830979865202881442418186435344794174534124790866512536729513031475186807249220178346612247800576921679668446549289874700040228304820723260868009122514068224292214737196079937274624935574733898180321951446313975694476539339661100591284726037011359815262542782077620534060684872489164892325910580797962604498759649341698434452296193734189014284493542881733727148726505560341027163276008916644039431759594587720728533311684484189397609720633747310321055026370755397857254886817846773608517267753329022568527210325028952961144635269596916117948723794814974387737779248849503537936964163240191254931265227374674586344236424839989893281094493282948446695858285720939963045962104201976556033007698383632751129204122333159059152259833101919633978636252530342017807769082379944528639656832948217243431846301078157335171080795605480852086864127091634148724494241614640811005393719634876262348004857379519660982600111956651779254134634252658955802984190663947261504573124191905823871968159381975858453560932515753829846040731603955584321308114878187166723623385094636215335123774213092368295185172303896517899097916748310627337376922811376746533173448772127172816358130920041868466023247457655066419557140480553213612023082573500626453243088299435612747654147871251842301466430235983766251700681067225100231191493578639071813032821152453231472432773925527798886751004802909761107344649547488899494519112215976155076677827385012917985983825750945933571375115085568183166368879180683872421585939853591868737709265517717850000881885005504048045568490300633236007219782104795936629395370479790077756384845761387974169006634694131849656025490358106588799418070986901690155799446879589479798698550743957601043227155487528121799110885000773401249545787311458578196326832563086855926059590545042189657307905979033387464954666909646068308908825970374616589996162723167183860918506155577319583769058317647528123796643229900140960685803967378034228310995878879877218437350313061754389091880792397613460909751820432759309527547892732745666798805546242585583988791600070497051808465651458332024321664822721355808122641881362745565230643344622636786989186593944157498372825462913569464670515528507409731890134367571536731603023659644031129417610296778320045020357607035783371500539061489143741160190062637835289721990273728359879567761721399244482059757929518894636461097586517167424335965109848276612333989276070262060289406226508093582777850082617355815179938139517313518569464162120107205620362980400320857576289856316782511575092584532806850870267153479821128948611777031298437181759400060961779195988401392221111185626213057911343137593812361808179109671125008414072902346932691807932007057545427030921628514327756657508181123477083501964671764124789529943853188159663734445384571899305755024290643752274490194556420065668164096379116894450329363327354288827913494432655028717718945019111448535590126455885718763939137707728852064741578845789236013749112125650587813447293721137575417130898966965567703669819727444941671870458779746878817952879172580522368216636655712702018313424238380853321910010766779997151827820957220050281077539045187704394257913130062017774416318647066835293444292365870911236300998623564606952813496900519757883480777763775012367888855104905930888730038974027377745878414972292418777042934417580601274197129562039280181290223407255029246168802815378378383594715049799166436030991937367670536764978750722902795825968773220789135455688590505293432480329195104800457030219012522399836258602294832637017166630383386764537086470204448334168595415504598542398364243826882869402903708763807056481349225191202561801622651298311980249330065825722645169252308899179184827265195058318154909203332011868686196151878799762308342378720539124239370235682585697365206847952984660957410135416827410455487296384249884093141274470262213721452014737476404619320247081327459652466773082830968142206291672095596273659253893879551544950534970197890309414501583906324246456734103110136405404129401112737076526266376578482289813987384378202559395771770843857691128762401619434650585405344987294929758067709752345809228431000324288898414173441409847134442447071236339429054666924281805305209214416370880945555108503020631436103906912855785697756018218467889367970715985100480055776648561295609012795073760685334695122864107292564178430273297073023267511197589457639154328819474323192801248551622558232357868222246499501123420774218932332296358006170853887370308783351404296452070469844257182558548662891339025801919378629835773926185380586698020896922864971296304124035959498656196737128487875758722104690442302427978614642915064950747185526547134632811973581878102317234119225746298229236053408317434456109955838989681025506674624439419488329108526718901196560984657428728396364685373514772535830452788930560417696564409855625133262012045606597337965670499637680556825305077374702727091974298237789130598735871835228290936525609637846008018281960874512862427028125855472757538174005115955622945899591343920222349805689101290939277611200822300168145563295755680994400519993707355391552383925433382907867523237611868108810410757944724121146152854655095524410542116220531819122336155358582443464873131544099406778344492718289870236208330888385343790185222601607315091872641070264492173079874935597406582040159688885996222955424707258858440044231432467047128476431592689547886104815419374808917709146036317916134574979400636243427111106182879172993475503557457884249722914445086569317687912388368164521879593152829718439970797970036003244326283704386951050577144446008574253746593318895598654471414101869865973528181596213307288963826403012084578742586781038616430549143303459527534760199045423868388807838799014256337374217059859162699691009646280809752282464175377005325222402108783157469006845682617601513219735225528470085159640055558929072243714407076100954660184993309015829157770150871535516568334432331581477693355528189021853806000985337029677212169821518216082142399102812155916869465241970659701737592467192716918645416258844567278072490354386697679289350586325747674465479282178327535738746051761143286663609144994236288931190622904224690155137130401157909212653527912249653863570959506692975456168430429835023838704331114697787063279293556122376159093967188499383148883974299828114365721905824149565363585501227232198165850009727960119102418664116221553879253843626056779962730749507005181518924415297917703359789775635634938077825002667088171419134985583140803751225165055296213439280415875857499945834598502233584341051378561615212887309842762711811723168164232908375548464530481352771192805733611588559105682066785310399660893231680707548292183942100052007723628959677891566564349703966803793981342177491998140991548610695805504950493308003957837317789693728657959935521275344557528338902057026005669741211418322414521661521925793719203552326876367221010384173234999255863975962888587032206295820737541946830356415792662695845942681032332852092151848242002689570655663102529443051289401447449389491942570228089532471903311974981291541156646361676015069755579333362254317725426995197478416742182279315646493443300290296136483521672249301384975901757633174550658664174161258243329172989505160723523890257286302552297356162205159488132516517090462825455839159774025020665237122698979198444668776924623582401156092667661858220246885864452570551346796041436658983093841818343774222360569077324943159799482652796345051225849918451104014934451368828489429194701071808034151683899409434508665690629618634778855816592790468675678685456633467623498477085862324099975984061315912898464386298731204290780909326054926115439896090589494993334831198821150527626384339287306064785352856198282212131147329286481840291235199183879212271015004593376148711982004399865864190013213720371940529631087878617127047064457147634298379679887571698660133082889829467231971762672754786253974486121901909534105819769283186268034027791803814956075363264671877337475743442093896420526733921444163601949969805833563139068041469925130221849024678018389404162239051788734548256055400880012735005491665224197580295784932596575258614589123975650584556184048971308224723965314135237402447412861107436459360504884761088035365034520446297928525202169441978801868846668254690626980725970044963750962604162145049659376700078958150695968489907731865752657088536620381496763926776448953596276374518356094481936849194971003020035068378479029518241505655133725314735383244805781361116180461270874811806181175090121909222857462834379326702368671258838736181122210648167278748260767498511116671181415800567719035107430838862474137864478853268153620230656810572807528660000372298549895631216334186840274409449663735243692113813632016349033480475031398154922859194839884786256246746359964553385078887262890402474938392645600386411755626414915617212766971634304017159741885433872160279002664543712423834424427671418244969483058506207633571359928534138050258101300974130236120017569064734971948029573768982972927302636949427545449104605866213737744109463791499215084174911725601286250972393017026142910800184085088872914668279179875921407227723666558137754056440704663208052085905449896486928447096474590074491848706228012445090780340877993975158945499499031865216235098073119382596259822741510635536962484442614868497264685226617693783410701549017036419913691325102753836628307154779482691202848719014855554743904517213570310053184212670187442181903486871146839910750164178860655508995129360571810199868203908257773055409411725345258073034369298323706344171199433751038931330674067082255544357373803927202039074411165869797188376029951407626072650438444056056556779866487140195795734664067623802640324985904384406711264845316697429866198652164333894311268919499969504461654513934922829467909055132496694045268147079400977882018808283559438661594235109907893469474290130541525361984252450827502832230598448950275744558623808254014395171292422572882582397952215319027409575989974834213085222119730171879191003574454794115283370771241692777129493762885402595220245782114434258487769664087654167638072956244011005215936825714036234676389466878722035037733781558006666416317678927708358224395720153259668528491669513938858656054575384877666598178824423500984718917980318900691271790734595177307491825562194918729129561049496965628577428959028546637905675740931621352758136063677000694235722293840701278101095639768776445386775746143131130897110154942066939964012874141286220025491800501921123611807787830283684322571493078631752341332831109062456864021855052958144510356537687996329273766096046023008700642215048577358806016906141141388977582443704873202793838138051239100658655748897603144005845154152869818712422790116004213386141160467429076722109792955528540813820695560495967910305646613674093354962354111968838331386771196323463166438962645327495319671273618675233877590797657543072340349472720404202704961193470933616788404050273786763336108188512712969742848033663220037998586618140563270896073575450645685938441226506704224914140137584842118974049358617995565175898105564310554898627994592280982324452531379239550033836454305286285268434562788678428493554922400586534421166888928013345438152515560796279447034359287009639508702519824558121296927629871870664232864970158262308918169546070544167646315816250094959861431603964131613094780768422888267675723295554855135782769385768539303640133895377519257171612611627852400464848340647303078519368446083744798788944500646031044605163760170225762252000409251555974904305479255634645230838934410409260321813607549377228984720991917339052710766274903590478502160006637346258695701071742699643987482933494887871294655192924743351204343222892974004795054062135157693477239159701346139929654971033741094400084126018417715012190016875341415935475408993008533305864930217657585176497355732503396889387699678246442792341172360975389587286411542548932569742138560238240244680629384689113532430099089528043741885720802571396908155561789148282761053456282965510282012052640153317842973122538508712179468264018508276226423823839012044650843511119454802803613070036498970717749615114349464359198323611082589263237771859150744339174915231302401084765232728439813885559682218625606528654193631800323092948558345987712792140984706642573057145983118460579857453104575026155782910158138041717148896232581158876248948331338146588789730245949478805060387859620802658853800513818506645075614665056127148922218637271221979874003843064182964960128411449303805696636070678817816246480344551863348158650630413549193815438484241505472773290568956454080097401985972253139126440360379242445327966353115413613242331918854067534724029028325919627877131590921582964449071710501085506393727810552083873196319484583646955146841104929026582346329304051372463482460700045644970297533061203765945346346148054282690016621075196508979400642892202001783975437875533814157933208212903153386383108888407282615495604932421775093337357060832451759308395147338565515009352619179103062434788900890133898503307307314522623373715622133732962641923110424449719518957432986781051238946122890371372316437906206962190536470035888306181628985360975705090687458472599867715494795393598987142933199540353071482197658386535855134466358136892832030966038522163484394004575907231307987404137336884652865361098311211709164593603087859168014494675927975483846280012932740229864612553281163009153503878366820698539827913927888888852916098649055121025948171922820578030061095184886665389746422904669882663958537697730014235448116074541475300025646353746559723258755025827396650301741230603285283341469903610916699737186018268090453546733235723379108566263764867583855206163826526036649193266551871281074968099311673606539386475387786140248099444992307330336316367124863590359436441986540371557162479152325756818211929624418845651833438985898511745877832892297477546323835538921027634303458969754025590444475671798332327625999286188259746879514066094208387954441608560793135338551920597083187042813255648470850225745991221383078479574969517020633923193177995661961628435011253166708127000226474612970027629247101849590614646170874491818566588555268320551746919826620422360488178298401543119898311371659560488794297942777838117100257409646193724296518027309516996072250367540087315830519098178695253966835055253451930576793535344658154243736690082188514383402567370571647705820585474023877354925242113841987806577322367306010460034754262082692158351223078715474079457899481686710377248962475634779847767263695533421576852888075337046124499939979181237681178911229435864829924124563292570457885287372943256353098106145868627082822059882334916360592781941607967383274199919113316191694627862159227357657772032764305149177352006502154774915074534708495056758604645102465208689513060380661307253501371919232119761345774646021162854606760866376541761187092788108745712515498249131698901760510661177009986373347438663148398370961971419600138045206955607938577781528716133094331122981103928800338526392196987252575888710375025129329302971570076451340743993972262258796613981774858552566612763350856476076775103713206781544909461365092606951737978544972967884699911150536236506106052534303358968908138804250027422964991104560757030849272596824056006888104195491267920930948248534586824095062797411656702970654842056734650931782821217301306188593815679020385646750633969193436602037476606103881948024223144877779046530014560791465828573004196265906496191049947203130158196387440531074860582252040098527778873703568687572805595913869573075315140276100050160319704987339570557015881683391567095165994481650212904754796490034173516078122215560544378848411321274257080219260360782809401578117757315678049651379704063279636096774530284235222887262441309749309950536395224648266699898377708083069375189875791492061810588086397024671303097053423186549530247762479401344197127329493478618468387429859362135720992761350903343390856863258653753165601502308738104822007443289098740894191030977945038675904264434959023540130721309952888761017263943794642968175434122757255879737819275006976618414981564938844810173613209301802717828005754661571508553099245987611289077318390419828089949944287594846410034447781331952408075244888079230223132711421091134726164196763173352358980743440863048881502533432696463369980075004285914292147015465419779062836280256067444488567410009358103194915866297743528720962592578520472984915075911196897243815990212316580153726544275284577418638249132986296089929733494201442510352558474887829713291277457944601427808587258049380314203875763205183274564384347334056864966713598124659441829038102922054045341249386316534961202455117595239092150511761603091686230705949377322694643527869042097437773452931285262655298371573425362350614093696427256133720063569419645878689256465137702568611794275017652472787507214803574954043784378612356595124514481483920094252153849682795095042107700004156874513516175537163655597010493960900375793190733660987979641586700995952126882567456172899850357539434925569775389997645858764151350858270666724294469902534358172969629099097728926315079511622312120327509455786522422536325629145631563796490481358970686594227677286573203795974215094076767662946323179518934377805521814302065108476728034450891040291549577124753571060702931631248488572114979657783892741908982280970357814317392993758530847324819130704982147458913446245561093199837483498062739750590673131753752887141362203259103423347321883310405465686249701386888331798540128775625270092382854839497091067757200385658165309782162932113321470509632928147400763161287668840035617095465166618148919539486263362373119210336877952037559335168787411675601911329853359928688451400214032625558143623210408565775480235567266909339291732134180395191828880665069419162746500253958883906248735188660149648230113547635480497825144333022032692001632039762685075076458142568097569761549465592984156224952230185404644751165983149869959000359409125397506195808854053261958211015528503512952668864047668815658266886490488561793060415877199996522553002029043156733982497699367070302208187193358574007796209982568147372525238764963308091709877166697772015753110488980519054001986728740540254413404999162565211739898979444037994278588501211184154169762190429992766287214850389487951916813856090432031545625380042244346193677587224065330593600334071529964700082807944148229308145646687326563925189864611686140769939039927544792367942472337673445335549532747137217489198836757557461973751942457310167600311303756282173959489170651202061625693596634135560157652041047427138496464447005099327256195029192576865922495357642746938395928583268747715389577255352620005991252729475526518142772734583062336139428253876754552202607665705483718400957766106180208852614800598767157537859904649132522515358522553407523857443288530041797207951440315547077806735444713937713687935465953166469262016880600508219677378718119698984979621877708173600490155886213646075541092788954825468489700046840726875187380565114735554330139655000047759374462159474918342431653823554084724755275292679202413451943355364307527350278245669173714508867163602793593223235768432905812007532158394290333590655603731934362057676934094054680714761151463810139430663927451597728162859917264353212021277816730639104840389648049056649885248060004686304090673384113444032696795320497198815526033597432144644611649519252768490217962037589056915675946790686424583334657476754988504915614010921684338337591905668112810345772603362093450214725080762067977088079609018760915358198270301326196716544972939334814869933929542561771015729147175529321131966818047453364156234745791868849526568524709517872697563845893422152874716130035590842550369200373625739319589184378496236989352176451939459344855018570203801369274661358656804357723711715470678329162271966182492526810591701919711891382017887317514441952031409297534679339650443627875229973564679106867695979774980121285554282886963714365243240112525261669898775875048401901462225441449264141195490084996115142186960028624942577554991914195711131996752237511975779185294244794342708954698593733839477053207861784313415310130278044781913755680558397594928473815417525060688849358920961413319858840437303608676420060745678691614299242497000726920668000560473370030048498037117014123981323544616449377521108980769964144764353100003379316991263180824678506403841360009603326907321224204325696761690289243932002933018147213757471777329081941602669662833393347698366219445052881330152737955661354589687282984718887871060009454723131187281931209797284742482375779621664727588649017751103445550327710853013591081769818984915511873321411796615228500741786013183451195669978813814962454531085757277470765993210589239582221998811440925922996705280022499047665621506228464037750744227574806456604156034175276892080901418317409202500101308908532026620526299001160463933748659454123728485727131288117800752745632336146521412660400985074144287935421031885633397972068315592649617351676903966268822316662825015989618082058402274621657738533912176472126234634182952699309434361637163888956547265462706868749634642976388026436540741499142795881558439841529961669299436439138854924155695239105910198188265081769515268558968314671130459156988082031939453717747447021041986396751753928629334670789810215054182437907509580084399064052463119247512461196104528560826527536252677967134747718140033262151407992637604650852015849359609670235220713462688289128172695682620611610633807924707546573640678960903166731912185671550665537536836012800628887642755282310328620915379248491864183009769082907530109407644702801302238136226906937289027673372818972285062941646357084338900225927295040967427660865657494238580163629772219803494455036592192889750273527244995942432036385414963582476734794607963425722209631617765721450926771657807816187840715571252518113567914932343003090150479461462235114728702447308892973942802227751391897027439290889201771250087870579594069139293758145332925559364015400324440739031718602481063471857282284123943027490669238323362863035553873274580257349853188319429131939244178901715433672924715834189862222664013604265125413688359843101899878640971210869432164194098210396067454751170653656624888579765978435212309764925431150224774746967419470735606576476359559306889267976426979392593377271905930620234524740143290649563999977665492350894142518790659068588139739936762618920909920545683099513593172377158221840961611892515002950291058296925806521219699282343915023513243507094342312802005994149614320274547909424514212674768053866866327277365078146323826916754093825967584019558539690169158254274687647659855936772531207573648271474280423524661806546009033694032295140291491324756512447304332744251361813368003427830709018628496773352173575439924584491472577484687955901762388218138436618359823950901567849116505447420879772225209091566466706970778240388533522323696171908283417943082770005311042482721746949406217628125461997491519727192455814854672174532972208327709199544271576341246303233382118090646063497818046082417467939363420192715759135075646025525109184914887596140893802028334902710583916364918407415422318828848160307426493129517494015118179937202727448401606625700625823721695542562736727172219704092901734279071797804218103192715611097490427899718017940196211729130902409386693114828871358363497797924896745101567289626108920153434258748261964668759031719313204365604745189288114880506668695211284840064384745361040737592799484536061740907291489682065236622888774144946363407388619402852056986086010174562983802095457964821693100391940394812900525151291091664210366192185206097731556893947738964436311315256889102480372709707790318997194974187055270644593956511734377843698138658418689576482239391447003716118341693520815855870681226428667171209507149914328446515060923027345225378123943232350893952965270132537988534089969520125903310135015485617618468617246648844140104143592241241042142349947144956515878054685370555862980882842931367024108024916824298218952581523999155157855821364949564047301030293972711094430681833569393702361722967710124972494122041616770106683241059027980932286478508329811277796813746188102974426819777152133553616700026385444856027175323053656623589052754838041067666086258684582654002613374647054346907226942680957772782841825358654019830830020506164104896782314873663129011923559300483890156198090906231831883067918870023402582225302605815473868302144139208846341543031446668421144678335575101777280150879024038529168348923364397199077653514252423263952807556510671504944220087384620695386817910182334919702305567395292716459751388551151618182543284959608838369982386466250720146741059202449820899273167526902701897461017703879884831767092925310726558853150833871462887837507851313885010387318846623640771822739905528627589843213336533556775297344175196853468998970884663439814375702564785797674810177053100250950927902493029436455859964645229665588138414489084031229647268733699055078097702483326123920116453381282202246469614613694634859466339708448126886463436531137985918829578121819305043054401773675385268401590861266775553455775023110978512439107008872821687877077349984316195483964262461505637213852564334833823909217913253081261220268172740614444303073332543656804573325812678970988900698519854272135192541150119139486659937965072783152859388693101240294011172462882689386400676798809516218758276778512993321695301205601889838766008038067184272429724640074462299220243370948131734370116800322058636443384719682839370599150022973367915085137983859710179486516433249231715256247080082017806313565277426557146123053965286935195678726364112519199855647792838187202085588750606295302452687424426912533637526327006381529551184529288982225892294671986466355422548201134193559545409839575367359825240785663964755293930781960753711886138136421090970025406837222933873090501631977333816916864246548314175007492320305966831876050157364603437970347257137743304698517296258091236381126789040467709838896585205806133066585032072020281937646737895827916691075892458687688101451439620713599113819810359144583404585967350366017831811968488463213434218479514192444405764253033317112194224840578230287742884732917820832372701198503634597673580331663786458511233697001927767444791023247130535082803880376828290627973046800497124080119735206865210042721332252746439715744796918007460080023203049947316323368166507070623230517391142185347106995232055551094585514999457052048245691797063875790276011339151944093321254179043022216520908616654447855257648978688815014917419136784384084279990355755219344245351903100097034104053642253474647071112903913992849458568249196586525388872972361712953504698850635032818849047697203288584536029149731311791723102222623636372111507345497840407119508412367153452084533182518457589903730466847868827205415106629037658848164843344020959614911081752768137712207021750057990953153433158249212046512792226846387624688893268756910917001048685104878025718301212927278644060800354640173329528890521198965259124799291128634113574567711401903771282108711136424778103405639820004414442859375240291056148921666331539372343737883863973280361537368475427103616573219104654883335789795798191432151143459799545725333960715909701828231351955464591438624328642457438154582050608412877233622635296549607797077317352190368714092319294899957875061572076613392154025294066114445333639240109207231417618426559204482072586139699007631149156041945603859962460985308655192464207298058951699926751498116018050134619627815789771528799849617739540945800767535045298329896330738941349330778736682278523790923327079560042769375344871492932406320688464541920113976565780267667571810571231407284355543656658587435451565275638879813673211596246345764934370675792371268803853629537423998812116709077156401842651278388066641599026873426382446467822576185513966541446194458534117769329788565041669796756489016274385419780554993681345643587286752465184116435722722856852127316545900277830154900902801327173893094576222680416815164099723825512037357478823608681712608399173042424149756533436517829298736918578142022288792840410664422045830225542435670809546361600486667404022145627485310161629368060837605731761493961231562947018252281685724404431555222664540363788150627397593645094128665312866415826937134351663121832660403859849992329032106693495473135685371627248240095988511279110052974533196667709546039851221520708043814278912173028948773968066673648463398029125434366750979461638309947986652419154409902429599577916201252770318440276562255443838608590350600656682667695813927235090439290288796761623449059036079879137000521627415566524056273818448247731055774021492323584444349329044535211732987604814200503102358009180811959412076228666867629379065802941749136123127776310277080690966125503218850889071437055956333868900742152154541538492842619996785470244466016400875320786326906788803262570416173460947597968741268347033722455575478052946399191962734753610000532244486413669846897384774084704598016492085325340811711493068405502237543845188689898336070967315902256874760764281697438582338012575023144321909842204836188899066172333530552417864938304642850694884036954447752503503071932021573546163817778236348376261348009961452243146612611323609384252629985770482921645857807944041783859977036231139724552640140239420886268657188484439010554530354062557105493333467523977652085119075842601096560427225530077879944493027735993708740204769270420319667536073310544165102984015494705523662787231859872211209109190846377455158321480473113544223328491750660539193937914385510890648950669926504849309133841192925475330860161000997162282833409180188277058666987270074261761780014953655878779466578157108914827185204888783989439552161962867572067452406967238940392906693639937730074271473078375268576115169442770486900699399159872834776271807194229676792356675753430835966972749525037510880072762652639216718194311803130521810209479640689979214141976032380621044926510608507286356608059341265023155499477178539268572085898656770115608869233032001539274755852400111910950339894826515923743224416786520919015043100884768551362420435287884973310917787405829164267516043030159270665925115035050545002195615885540294798724178882540094382585164263016102601351884157777679350981380041308622757510991776088590291071372857082601545224994704613977376952344002562190488410246213157623956009101584948548937259991690041981790603839756067055783565840092377725306524384153883605362939238576032296452506441024217338494194374787565522297436187898849652603715772130677459631906270603899211314182894138824142008571925748191564163289624300080640231229777034409034625415575427199060596541561254890445416426693386079544747279934694625763339335621755451498807996744815178635653186233869292668944372733902332829589394998537681437759719492420770784442101813264243167086558891496827315141260376669820628703222701226159834207861155769546284317893753005948390008860409421961062921358776170705866675926491905169598396944276362805035525217432186814664418549332450496489558671564850583722489991354719854778615767701552801091651917328886806720207821062948356345004232748369440518768695305480025694533699778230462792272808400796563772917242377223181853865159589629085442642362058579939088432199147144147406244834931465530334852011691491446388674210898786319888403254307150823470302179241789567843152424438526123925697334158261533885533601994507680136472214949549093124983044783099507679949022061609964063875070418303539919454707628417642091690298344910849847744507972361554796889151652072794708653744822512183753193178829648702901525980360112306647088355088471399163208824314580120789198654499087131427816712456265774723412509539881395068121505614903746083398328226888782245895703359368208639714722084693470555272349452366775520711438035894873056972939230406583947372154491815645661535290519085125923771244546415505735234489097122588914681241399670779044155020848127993615255451815242802472927643712679189631925187784162882532043461307281411104321009990170765727861055206671239569474022514153659657504717495760608730976080928495218314516292885919504309203040767878904349471951292364222392188999777886083620629885938398110147672543979108818188126816204365727851503853700235426416887685545541981791699012698261058989699232320448121030520646852950872856938198583064362263542572490609115155888927596690263544005219176904449699881448098881203489253603716100302636003888791880408729359603926467405145546125688683805207401610965130206506580501527945176604434020474305787157212058997673463005608809366564378939598752449087108768962779923656891714094509527074687248213073559121836794183235900738090287963801057824893209383187972762185035056752170003453031003757226123552077012565110552028454467804935814421518087561073603871807086669022893496841987054092990347448823586824695467622645228220006017526773451182965778327233760472375624800476301523130892935251158261214769102851098909713896893407734907983655258779379387813268475889731112233401446996196676690123326380579252578212677732661558223671529054058298377220543833718557253963498248116815484289361928379027248342371742512167469475418655518660559031172891178994763015374763256171362794628677027865365148507979406374191718300887330609294459267915833767383185916039343785204195841274238348489006631501044455291709646010267502173173481448673384368642626904107889125986178199458741691625222853560209283174379050535106226161634406219023480929421208505912869615870714790501605354602030374094676383222387884769103106882610059210071726779391268476333272024619555538882060980991657603359970872371030743912693700504863983807970016515187220946192459376535177116189403696667836596955991120685512997578170492689198531310367048450059090069790279095127584952715616413710417081998336127875992875798434652132927071695990757828033682061907426167618098441127491666894470957782631107656137937117302443934466554114139896192747291762967151473485107255354931936455026023800662114837112027161096657274655342720566724644157108733023352957480092232236992501477559308969994417321425739213530465333319245274911265339346676529016719609247857317522474170474288112556912557818079840165384792315569446754935370442075380119033231101282833281707930999200228179478046252755312859484685946115967389781457563378463667993621071728853877776801064257511852843935891218631387345256911165542339210216571124895487220283724393104555129360901787285346396081505859488871706969775693338855906427560693915619058929549280035438744699624179479510510228897157011623442661603170830701879765175936813979298886848974337972378043683441596306340474973412780714195055554393614138997296147498228204502043953404389833558515401595700516299184431737045609903171044130018223863483313304057289854945453704256964603654865109895850433656964185330949408482992238073355318130842876394843714056673204769255153235467939891855875137420121134958146697995143031306860707222604212634768661946286597645916811965748442537154346131198083130834025816595414385634149526611488825403856659692001974013988183597219128393181064321422817628446307941359262628606638681282266850966990332971853035269324800992190239130178473253936673234416117604429571291035835659493112756160883617670546533000849254919109083259154014913807845896964903323938394350370078874376698353703428001585381310091669922964819966572550351976238412127554414007951645183540295911792873078956360346462772411206075008025847395332581205295906841423822565285196163528126376776833834675479895768309041870067897302929135479066967639241238139192615555717151795359877717544503620382604846279831382174971757549694773416110449792862405958293792361535736951248285610110988178924687546888085260992523718403662768933397570694846635389817752959829504560889069470210886767704128904050364441417206133385787574997509993823284625154884895434627004351898322398324342071841079494866746803201056469352926309680912519264900506401790583523250109682956939898944898386373189127080809111651938168270778615186032437535478957456135430710277032200742326445040683140097749892663589043345567627077025794650049813543844958701773971540337140193657316701854132852256376527001784814217407628878081159040014740343672615167612554951035331917111849197890783412800229948594856970548171628836957971405577251710830254314420549151100154631909784635424203229191079509506041117721930094748673913466262342021342658351773687828602134863706290413462920702042624291918495583815125978294710570273372108705725034283919989092352815660970144734845381661030485407116917016697719531842844593719300999793814333118307701990754185281661451098243673256872349358681333447357215614463243420887133086718249178104996066504668635464687746194395587882256664342370809964376774151814684383424223855947185625963035967866858916472351526742731382639329899833041368744861993747956498265963235604394361781617978856544018719156833229109191855564060624641524547656056895031078233772937034760738228115769317904375989815436080018743130712708539071556141538557563808588380798889709801118412502501129528444175263517439136803479640039421851238348112726792316315478577083448882702356020514991397117035128346275463507320858202000675648912824786363652577515311055414954109297868143824927375344608010835024821668714837418642438417309599182638457272211280534451175933632727343916049899972648777677951587505637328670810918177270985030118962921230672036553605286411166310030053190229073238384675357112755606420132906367102044032624449632096752767369375214520244583088945564457241041628490268144445528294148448262834140914927762607940118280367677260612076315690214022333049031273405673687611241846751351485035858391124712573575000223082565762064764626425688337513146852662383722063778350220117527557799267149987071670694802727268843726875906098726729108889050106449347461688431679690960267957044386944636897139837212170407339355987862179636217591388873886983760059082493413294279701191142132313755823655493719245049247591097415382393532601427438833711678976005657754426312562158427565278897822244181474075287144145618056356332064323696630028020516558406812199370503152091073100745074757950166526285882159572462464034092834542473460851162040377194083518753695413571167114077649236237211047407543603519104104480632975822879792184580476820592287646568694619641978915705713957931644619246577234904903359657324097933275966620623844209140316873051202051191768636244080354045916411042719072916338542797488570650232683265023250464872135852627320167759412095567812642116613561621314482064722221919462521452606976527955020895632921992951491420521105615238911944529312011801692434808767408351136846348061838905274144617825306784915178371965182863308658263643621403876540981912553506517258520734533431321478370840909166586098992332576155605112141285015802422444868981291090375755739131104455210687365796656780242233629150291318979077377172236831234949314235583540085546821021080745658768870985091910168884401140849777740491164292504520992370970024305361904393032369601848119055073463221217076775988962103752360819241639504239939690017185129417217233619832465598523511504814981337759144251033218723567339564248962736250495571786562296184321181980183010677050171911939719648434114045510257942425019370091838457242091094084143944859285854547034498952943944997004025702968606045014218433356637936073112281019891232138953391414838964068171470201695719279706384874881115796572664776296157728080823446841497946609273711722668747379166789154772800731879194002935250353789623709408290597846761204096642586164746869114586507324758260112304936077530345846334757950116256090504403511263278638742108292265953279318973225587943731063709607726239459379845302550803704043972732471611895964141664181969296185911205499435136049639906981796888623982694264126551464235133678335793344780070435138008434424039000663076750643429989805513763506859517446705821409784738618810125996181920221167062470411687956226199831609453935061114728736638849570684021253316120937438105302390333366303119397638761765263726518329136146749040939541032080684471049694159867392109140827260923164367957179544910480098634213412823587146907640213132641184846127480892267408508111061764655428074386946824308558833562856937861760980936920930492579916689238643332798119748318257061999133313025006045265432880232256707917192416288783966712274604514012296655023932177744285951282393304120384102789277717783282272564107706723687125724723039870658317915127145827754875070551229665686513797910936689011997430397512247912792097509072994478652147979358246725552037675847176558514298781659838454326491618304242823201875116379221681202088031588207300366553711574447732622605310923354075830107617908593082438032326916151404313212618555613518384898158984198954554925468313964567935679164042405208355141659714494375372435867129228741975981567719077233522817455876082648318960910826435802315572949440052507926978309391023088464107582655495162927510289537175282094272331149583669171288036314571512646973858800908379862539074015089966204926585327882008062439010415670025405104047696477744855055762895737376229686249741406418743709919914179484625743902098741827844376485720306160184459936518605239500440121383206021240356484512413791639742054812258974268278981790307975334350869732500478250124572903044384585363689589744770193043945354253528927017501427704451731302178052094560956764787618454189607059433271486032949763945432751215354832862674920165404193145991210609527450620727281905447055574479546276062763608133470797669276063725872097749235711532304144469081040803868312081348753674927228887766436365081636734872070922504533792281877320930672084353809652807559898782144001151001921207212913285561353490097024720003291647606161191501529920752599132110854824289683929213840109339015177093137851409887859132912517560868368184594660800043948660708589413748148726466192111161433106131183842638278375185503735897663078565302991418472753493205489414189527272480037566646926976070867106245796440505622962916075701685462515792016509678088259500252388795589121561473881425969712101380334159311331663804961043040803335565597426699662404588092575845596000519221946238530325003779224509192912296911467995392820527733070735602229767110897070404559208349876076998010885486556846053297329238154908277628859592642924610673547107639271677923400722392122904476127636700764012260239458254404254414986812325692889302392440853173484389439953345543221156700231173028911390541726624870638358007338396094001075502266402023308823268817998277979268467464421012539613292954293543441013126461169984353533100945470963722543882571639287501393814530265943615031504487430456831181984247544190412992014640965378235301989235621398288980371757342170176180699790513844185310245758777705322396593547092100386341979439521596284434043670974437041035752856718732273734443519950514554082236164370060685029965352423258377784419247130692209618730328085033763951853918341553349180982231951754286706917677085007301966904525879202741624578985232644677468228995037174747725143947660336899900430395446928025525150099917758886542569155018966578108246027569684648323578666531841493499711977172124432685004802536727423425851288958717119938504858914322993530434702500988890768444478542330529658603424957704287928764922625834001461094457980502070105578544214069609550792093874640931283107704758609629213093841051874925821622223892642934475976937026173341262343748148743321304470177205076145880384528416176274481393805773444179361689483223234875151042886964365622104656260557501497159983905003195093796124921431745348442532859220212911654939045103094091656682018805231709007309233439559563690022298740245862864331854380812487954388748241576169600423794686073979672993197532537835543199320966086804117076197462958530009081632137069052904884224071403750971049615138382894383756027317161428750932076827035208952570877316620612376148689095580634089839602536082229073959679208981702042351776950469086667850090746970033027196234047161144107877899325994196786677481054059837257712298061857338414726365638820331046518725229293932219466081444696219352256978222853676397183189016559912516898789777940039826678597503971601538689239800629122298804811632462175889297582967770824609219087834304716390907133046636772742573734718412700677451639026623272863563750939671036823382833194009886483865202804272934799954699244649521695726596662176054091976733187481745679501859869767753413263190612296415084582903079734299933223396233525526471950925836221145366238382906032385544335460009552437348107202000107792030665041055538581142246960339160498908733571968940351080779636995888675005628390954611452390152598942792518459274040325104174283913093699016352571057030814174019219702874828748681833915280214355669567364109708893702545919504096802404121249100976359358576777856726381739824654601230889169531567255779759488379274801216443863565959796740764830771572914606895636502617475378767455911686339426850496140990752272636806383893320016900722911031239260423651300925898426195912111634592961269819021115687724772398203332552666716793078787361180295691473611020719729954521491392807349678290326429109653348672128621068101470536983445088418354716656993969701150907591074748333718019628898840067097910263775529283386589000503115705512891916446478501525340807070492446929703397398537775042812575893072543513149814974842810187811950615514817970348951531869517863467414256157196477975925768432598537208559268434398419959412121625649292091454064735502639910132880020864245706110881437723703895253891332886267975466752767008218918938333004294566976981051695936067742759795235479388113123178412562943457394574347406447070069066027289122734871562508153598497055263313935470698898847092377369627823904446071691776373802338478798478389517319811794368541740916253075375518770872175557986419917187782312168437005747573275305770934581073236251907337023754554617957044287722458522857282600880416170060322035796873976700408310541726581292029805882590876325448289314231249423100644525604847362636341451176841224352265915244767336620894272198528202622074733976084849163443700152818717997015815275046096644054189686216678417931684303701174800813652856706146345813469006328411829277060225580145984565449678686555528204990733991771911703611530287805270945963480852855228963337282845863637644505827260659963634556495457944359642923985114476007580628639112863528986860181273081703735442006986154438935107637695955661194439422461724203164115279536944596728893783503263469852173450436527877127381989422251005389759037583221034730236267224797432387126244884868029491970613131161832788891801850310346700563453359352201297424162672486784307881423855838078725329186603062853554384767360944594772950261533594371955440155245576059620492510002268468548171338465954104539385768098308714296788823982923002126534973833332185316539302118717671685046384963583447113794659137965007906206776138017955155707460254582118621196732832970749238725221360488545259562754409490914910529867050875851585041658898410607885233204013487100859472003305338345314024223788894405329107726503255168153148084574114928418455235675861534394177954983006931389606348963057567835752257166591811934670641471293678918565387369420570674962996493571159109441427205396215861670396171512578396795034973585370795332725211625752630324014860567057454867685570539260391530527533880737301704033004146214579168523283153346293770198719195795095645161468346563600424326892260363978990137859556034459770926301392583654125781368046663012399511660940080747044125246253555618093437343901408271282556881053849087335139851122795508625193469647438651861085608774939061962172122296987995658686698187938367007845412785069465626372160359646283197778426341330345357637198013974317011496662120219486208179351002902224500432270207386464763396335546308909979970357277618729297412860017830417337574456422589676346764637401729658680173352674863402100850190385957308573294950583026267740543229916403981844785510300413419373175394450586206264397704372340747781600287989210469079705534523743116990394025921195656035758344786558051120467876331162523602377305150372626273090619532819180222704251912604612512439206284148208261406497176865348077319709519582844612292721514781227581092481659451692759207644582455568370438033315886473589396740265600569854967012667718116375919862042799806927467980710654835870268051436082433649460930683240265292933226608623371940937716143991162505091032933950917145535637791261045261125203005881787514457511351625308636849760815478487911594303100647317992459997386798232977207810791973393664269571976712319598840233027276124441642635105261803628797258181596493846279959729460052310653343633084172985062656547134706657108664733915338909726712826743313570518359920608454787272287178786796362087545106253773307605576760382951821413893260578480954333317576981946415801502024065673216859848331818397103100883087885124570544801986559012045908380675971411503252173487333661654401368557626196875942160834791436404253081309700419974745718637049589953803903038074537061666013127850463008673923765619448460391833898501534914606474176315979622545211114109992732931335530545326985716505167426959468075554859950302673815813586429424326464612526332722221057674185706354181155715667712731653493358962804439544243240238815012894537287981133476368771843437594748764345122179614650842798197233443080344859216582784778993453544033341653616265587796336188174664622930775725267406435047997272762956263975883716915582132729995812864694147618962496210886798711246774305354242958670953805371514088897902876444381367006925883040767957656556146692807966494633989754721474497990529887233692669396229303261228185244586117153621922044637065762286125333301771177268168101816055520996946237441241800442079756349956874766887048655686181779248668149736613083671254864627866942786840261862381538144600827675765077734129206102964049405127285915883555602244886738510789522044034620412582594960340094854398961072458216571504659844253347729687333421202678835465405785255953518412142745851275143604848442998721159306703689354651804913706749858906707871860136153978593871644266689574625868642769201134158438584525886998267523988901262503455547953892238943466854716293394542210650198544368781396070699773652012668568743852730122708578072552357880597180291794127979243009261045119082231618965481047264348892995002059166765559259540299989465625536179836536933158830043480700392100184767017937225978970497775979218401696461886733484602030051208140257545847945053011374848924768899059863632257859422380282043229599419250804326218140227810808259074603309242878783446311802198885506789794704355939189075440428044402443469340611588783656944256323987517093066758895120925956590320737951437660064461501696632156370945754263040955508025929970381084050950749931552177936359216227102855732924434559433451642001825305316476952417000667168319837355536585705488141797048363267852070925768973043480388922248017831252848997656525350702101693036141861193746920669492015481629676091117481354559965397799177211561589293291727765112269308969537910471690220706949990751655728320177749677927901489465450088440889562774272181143003485610559843864324520920253490255748628915879838762893821999790257140431949470360524347323222594414520024185746254000023271051206663836902088626797886851422256924756351953379996419076733469843667129538388110769746613738381136818848065369589140676844162411840162820875318121093031014383590494605909424040138242457961833731836508683448578514265164648434532192106715625149652532257269470618047525142092890857240064461489571828537780264245465421417732851991120678832690076603082588286420780878627898249966022443930527636941546331880228210962473607995798278945149397194779512034083140428719070714819723178921308672140840875263935797129388004249343338328799966391897710123247726735839113498821458381850230085244321619608471753194734111178281347495379380915850551622104772688615324912299105543142033959072442569737584176504712258049497275098037490361974069439888513909340076907318197625718265600921342012763213484882692509354380730632587313151794641128983333957411895694752367135552501123401289204655063350574493980508008411540562864628573398559373149179497750890718477326514120295150472796921276210774086344926619473312128507050805087697525324966874793896967107720632723992638522675783567484302720783818715614846806744615425736371919744314206407787403273195702132090342117168770979097175391373572112776489982023073086820892770562752633912330156220712240043547780627910516245113929257512115856981036798131210446273706395347742694541143067742329080918393464937603038704250014540494772951200914152056053448746954754191643204483214064258938281559155320415614227517398389227699789950527195399092006264464806010816574323327115178495135163148689273137655445021863446679638669918776509440143937979678699500514328845374707576498130115693641556204023682696057468636537162113102951929999039130770937132165979027204518900896819323422679608973539515960192868212184894730219152183009287889639857220342424524632674460292376406131031597535664051239211550664300274880840120084926734259385214973706189017183007478543667636598878217329493915348588573734463490751769993999127293041723750353278533357810165160104551555288359493284474475809445180360946349813291256461638849321568714601355100653673364253446685239034113662681298242781949223742582856590168615107634623414188162991449969045990380219751904658709243514903605202563315196976037742708273385788185576367722764238981867063746927177156086551902309349711659984860902691756699429759803774055625229108611362846230918429655505794136292210687007706406071604620692284229398022073970368212791902141303205957368182725615356444235308784951719137652609133041693945286363702559331935118897734780637907116086378608338698532545578090341782726350982009999104458964449102503871509621723239666763159109024126905470333159483272085424681739355023485803844093349425970663984272195789141747956251063155491078283134486633470287926968374506425507145195404043070440487623100991480507962586460972425921559558721385603211509083266736578236013721050870513565049079939713764052371325083434635313664656550231248989711915391249461607342256681946096811878365873953517335216127738169194889344239694476637142070727111578382587007911669751489307195786817174273781229240429392182664333355666757838495083243896474960645737735093757134992121924966902981809133545748926314360558767649914653807599577749677166404642680016391359905825072143784522478816230121200255512747148233178378441774750473532346323169052392170765422469078261721216182650438964707337762782159597493327694972219725237270012235344325254880778927623484913459361095829520350985434201905240134046504483512146818592810460769302632046379791797050343676950015205294783302017609021783614100438316829653649350562718447282041963683923610592834062947842098281774410136318935663012425394841402916143295369062456948412434876131374868079919561549924059521964592184767424680819313936947155895953245154154006606709122655407309273830153303349183751314499552895111834045978195564697783013153586662523164361571444498814742685539851326480759264447931378610452054672695803365902449533886404604746707233280512514337620874815823680980964873664358697372130609570714794316868422701061324702567670431172191913848326573875930571561016607636088226536036655806538584363860509867410562808208794916233677026793469970785776050365734314490899720942391865252364090720626173510481370398674733275498269173749999486766020401960536430924116790771806324844562277178972623324776731803278013767002142930397748593234218388658268985899736693624378385846695152895760159717054721113548857128820309134226080961680979999030164203240171578945902004479722244575454999185973372731890979934588713307438781487630732235405295568144733008746125606224993180818475654164331178288812257192711370668851782445541612060333059118167762578685345594664495392690881258506590563422374273833813818022790067288255350469723157569246585485835136303822929279168051436456369722165918739324601252028357189415817826893927223905762639867841218936895408741090540512350259492725712137094222272838122615732692042368678429204031865376631398568761410955943136005317430800486377625203892894020679106651091146123601649585896468089636319904878585994808957051759608046946480006593321951673456970897420180791492521713623264122381153890608359224614897031881588014300462700566451623534324050834049050216763095375574731654521485961709511496732660202147098170601484246736863612251166581911188701955121288348124163549995859140003424188672215241715581580570789715968525515105387892351492544869533933028006252937613791388655769411865538459031383650932036612297096119776019318616053089536873731938361172167064372239734240455788744791913464535591326383384274116335632037006731036891791006504369389986539610582414621967805376008145393304742851326125021159927777959506418137920165859882283347235892483443805743040672664744687152046648019801710646723256682947289275969515647844611887894939748050364311131827809719661364679011337434731614860952619512539509022995601397163780438155910190151766115365481752325642049511939492473681668994353662400977289972343636795525280013931865248328822583000192570299988099668198522417747953532440858249368112718938087178432744621688138023793772641598212786329229484566794792612861849860362080940653528506402850280702283171365799025084795140183292663399540975651668113104022781486432354857792286512190240597577399005082941566160472545852248972376262696004667990217922610255490133804427298721856756730984129779554774373599964982121347678142605953975262791805763299825483689755076693094549453897148207323042793078352975806124136300751111163447392258797336164689272601289772997321857530266026272147524480525420017271200354957964356718146568257276458499354956118236570668023422052405980520066092359316142718866849660765584410277979785922109866123843890074806537491141143885297152066667304481667326309464541195575213768107959930601775224396396966393795502278694792617447459825463269373994360805943864660836485287660192517842476632429965893580987771703450346400067363635572527387500757995830293996266158173037630833044272642599933297759559313401004871582622060153933290502817892016930291435442093277811696495004846143469382653244862959861140379602791568566244808340917648647505628052258335738584886009935560008348200565014460454641364765613943173154322724764623345611271512601121551029809747218658590763467470215290632789167450928045553097157540898424333105840083283866379532362273589673884212769663445231431337807962636004810496439041018835527745504030664407402993208253014250807260014511820497054760667829730857695743657129369496657530165735989115372120802480042816384211746183028557379141510528002418573278941358786760701295040101929850525484546702554114863973731127889618538363823119508890611625421631022078263206068605550653081259532759648847494913080613023188718922814127346780404237403167154172519528914245696901485321201010335645117282307513400013988412246252417783619274582756010209595678250501369996908875872026497880856439489086964250853264979937541583296033621798007086741047814071586801304578664942275563784025946556674287291806735730751181362456826762005259112139644635052156498118979559006820395951232748289687378384491361082791093110251791916791152066877450363194181830017949490017312355079902611587240992075765873191289522051137832016094268693691267827199130922197956725491538345257418279959269522343900981179312713795459430032100423402358230013865665216123888583858819460029055916778232884336094900454702177698661379867924023284698053628262615490889862233241092744398302006140583226815323352383333852017932417196873384515859957142648981230314376968903547338489453990946240402388434736222794733333294256903384446997138002003147479996180874595405187850427844045636657816810964512211369976115850482875585368392513287121300617578735659808939165775781232474840610464253145073008044540379938907206750681668649109879089764700741998893754509087030638148490921646472035879058519930304669463855282105876967045730171101056088864897860799290195674308688116932844043973954203759634218730270847311003982785541841750537368852925329536567247736240367604863790206555274794517553753773759076094650542972136135961154443369277627341817034115842900383377150867058697399417365577899528676336565914744059003893791070479251342129358420633402442504849003562800774093633190759879024732417389273745954468778985118675730601912317920729083392976038373561298783073175654952990812803818317276927145839610072189270100268335644054390421555016722788518576806207773895002876325702418413791654085349431000080918492261932925579709879078113713991905041089384909460916857322910609108902815359673941331861102504474248994626564190016634761080820847498638744993858096411013126198221999490007724399019107950155217033803330650783878612437209256541007239108618110184717419306362519745683299749086214540771984114841238497026984564690302615518312611583795017094391215897703210982072661885879010904915850303750356689752960071715488245055215489696992842108787835767458904572950993788279444846650789274778593953402900068015926983690348886841602386796034708442572422681063449910985192316240751666322880478792932262017351082325238953840032750834702266206154339372559048158691619145794337522728799879961040957208245153184783327168208948435810221781415200862554406595205524211366934657618520077987777479442713989340414797848925308626047140574473662005406619746276048834261293330044717368330759384813425125902437815320646555797440448593963787894088377461477164072785692937029627495825066828101810391890484711242274735518224234410297187553237903408487768265394971450150560405176629841055105559376002846266161229242572858856345705839203772890300305820699127519262284907739483357750125157902101827261739329601843608376191710052346005165470521267909044678898565526386240368080601014768100301161230865136393477732504837552297523653731820756092241087780697406600584074923515084279999819325677046179832272329267757637647249350022702685193860381160895050406090733770663219258411752784855057864801649021088902791125050521847140903279099637048821380604432694766054514382920915539089307183832351451637549958904402676829667582907391621378715816649769948638193421257973182545128905995590373080120511412463452486582932263987008313691191025011613752694512444441028026252583295751009028480240829534202979334670292183997935152282734605937308650861232149160331189431950794151718072096296016636514696859772510525895650058729997171753495789045392247406669499857669827574212518062311051875078162894201536337593504234722408522499067247599570390263068845047536066453644920492895167712035058377758643352940467798723546425710164803857267774660094716280071525295722404898767424182142172562549522644855153313988677883166937882572758289842921391109440377562448546725420326666986925584443291301858514525955039552380033628431906511185131361171827319808069700775468371977952261575302599342782043454884491405958969248706283854173024310324078759738683410949318434546182522673538061736136644914555434191088227621503649300678614382559328752419309994302868977302740848763771197222828148096562901977440143594219093053982176649124082604198558943330929939013991341787885308460037677929757286808403555342481932409321173841013904757852268264554236539777868446422520589031107305188324804282500648681598270532474372653188647102741751070340215021986704894446872708510145674412061237337675744495308949184384899376503695188906719158184195330257204256318061340037560239550719788090134960831915492558621710594572212575389526551404470639483354421798884229429491565420463049585316972191629203570436775911665251145563949324173488862216847440042796629170468718110302907902800713258785956728417942518199079715177321715814031196384921642381761817823978939267096795250247261809962368114542702455023509050083262698016156368387987483062840357419192483558468888008485830699184660116544943403020583299732233499818274922291189368597779243838813811116397021227316945989905444423369726945850142430163415850464446428324109079147695557390434763017220824388154056209942811634825242976384288115594014818212737846060724875082738234287650342295815135792497324143563674636225359578847729518612450439374741577623598983931948073962550750208267020765091274822882262414594002444047710994918821849606996412107526569913389457076160478958665725454110334442806778768248370018324033426107774980802661454379811055939822726604711028079708006710379637910571232871164896921609134573687072200820104902998470542966557396889222756054763995035577203175629912772772103317817436257344865087139048136994766424499274584076918948005968033227565689387822244729026875005752350944985466453966987652167236868414241169805846243930402088888902751359461577088064504706015502714901389279185052699654455081495554072003016550397773151640283587136516076665621315656518340212691783163152996621069049427860649189602325428396965617079309589826019014359824853168154751256608230586092348772810582184336756767130793289382006178594328598365013542481024373299954875700038336861954697687312148953700444798762299085588439348582440593113598318503304692655287740242000514921034906095955179715571537130984014773568597719422393282875973151572377614766390943016617176634615816589694694275746234052305839100881725121294359573858750146560875006581480611074507109158844440774798761972514029777975134984418402266171885303403590749446316072992869589791161972960147033472493242978589700855128980605023404759816212125109229632659371204029410454323175185895666009784224784018317242618358974482062012287372175311125770510999333716882500247982086278873835436508571192444439599248126456280697085954970757732980949179174696282403984969959850969980942514664262155541911195367212690840459382051623358504631341676741322358149403881948638901052551898509795194813773338823674033674003311298216333548136879394200308711559324130632069843171181359905733465973221577442130402810745827146889574159891086402145572323217479931677661803360610253471591055827220605472915967694564389911946858672059908237119166338047033696713119799950657919365613351600259899650803778855211528589770437111408834235901542608829333699073405594771192589286829352742917272674883043066408541250804427836032488428951364782475864409483023729194418824807667814899601491124582482022212788622244587653065267457749863457975879807087529435493695654887680559071679132636030351637779087092483564889263810707800065622433432834781647788166690617588981571864595523390390949115448165696313503317734823662186495770623019823471696802536717515635714353537368784781005628131295636181381636849931739076251094692435221934200779093939569418784050292602074413749376004035507862349749133499961110765225885659017436337208244569193359708208131852671056623122032007255946824661308212630748956924897764639800759541380788724531538279612265504456501356236107040903932535747897046160380685446398340769438319635906492583028423510695421711756774663162718452815677673969323774161000156154966631624883843529060781026253095950377023861935696262245766825478089704396398801031394629957290167530502073733824884921853350945064165547760804194440147176720703782748241102714797892240453464648058303548698137795166841633590706615522883284266824509912111246061639223718434452654314324778181128484796212389948879480289084695451054115982122707851265062645579154242248611628904574067289015373336305727949830894359239399483756180659609040832609947336382466973632817678797572142756934506221808736589467295037646060743885432746488155375341620269015511571189946671707531872769902647494968255655299291864153299853907445266718288811997253472103851947590319801666209188663828491512864569570136261972224729326634787813223931745068770414902987063370471514833266467241316224801628389736834448582230840696436987889922618725374499085486275223222650375411779922236886218224935206852394536844932251612980047027896148553216665487854161634662084783952219410730750646653615893359633347966874101943331259980372908357298715115048653964472491685050832191512458729081286523764802757451152942075499424514738877159029459185923211807354603322396388096680520456483528853171143009255239931030520515894744729616854624459414174847951906317548816891628327884877552595376897409099271976038654537596634178215315802257055055262266208375698901249746822681168530164195554790853359466687323646347905095837369189890195317709318843877914952647380018762121668752809583219420703977166067537681014721035147414733928960908499261562639062204813250180731281330336072168887446215528681112881651210273664185757929068636192787488110094357118059761344867246440057735664205913716930247399606958271355248451766881450736210191541055166522251910231611020948088537758053682247434978133236163361430565691743303041895262166792689768843911837668934278446673702457075124645387056360754606356874331882013131461470169856995494192949304400470586780768120413523654432207960940738515310630496529519141922229979298397798319549518765832092223652334417867295160733548409193996306384761787441446711800183985863231693137284486217389513716931871016860672419124598081209577823963825829384339108804110665469293138658186567995090974230009938929050663320892358620039149581300344897733498423496434808278964386346399031718882263554333493185306852937274258869260867519964159526122471463680687897553857479897396888250939790002699546530061261945208056712579005157858744612893418624036955818914306490962961485436218186855742998989401164255399897879024389235461993474987386713763519021943456296621200548971598456133827874240236348721672264030293802223959839147925702311001198407998824683294345157091193013258819416232608304423361383698323458775993995639600662895901875415002250335320791169794716299505066786340760579509095953765717813251855152220792077220053176652474944144285496798797515350014360705462698851305309624935324647089343852147211885447763268273251670930325552689824198350328207076581974559792218472656134489088160945173604893410662327913645100265319137017142083048861905890511160535492500209364570057607835878659074264582865381221818446837225548429629747792663581437437017027312597871741602962730499148872853264764454138342852579693082035235838335336464260295233056350327339818696173366635629699125522808069956801200399888114603784964781130876277120582824629096322547016120965317128582031062496235321303700622963103372454421191506017958642663740485220241091557889899717351757023514951620650849878615533237839208453583883885124377468417365978927734907523362047579301425382702899352141427458501604939262557959707694072567872705635142044885238211875080620281397727131618080598328799668970374911981236605835506276239697195885310111305251314309492511949454513644471587942404622506847916471731084112104733740619431851753418297736696795552689431527020513342907411713305099149673456329132220451229735243002635583568935546326384365812460486513123199804786420887291092363330587591162967630826902130641186205402407315528069953994435967450524625203033194366849973343641245505392111598953701108681833339120438818274269706854618472623362950292085664657859687756384804224140642262370685209562956857922358102117385508320179107886155031903072484179564838553220068805890656571890695758120507652468798430410636905599439146588356046095848551963362195430322827074802623104312752657743575971689677493681948031531433382769084857972769185463414532539848948913668806179324440987538416444492465111902875312982355987803445427340953317120287820539701384743119635999575532079783176702861882833759695668364362031787955121455744640703101686086520649899410129956977350891815068291448623556783504979138900722035070418266750948187634790954748964528238614135053218549169430228434311147198269464444002922847196830265872591518335169482485267805594366707802343936082098445096573617313620559343152786625711400140405116510068732674471844253030301466189004087780692914370756741663996547294772418158420057411000252911284789343530906576404544240793898163014623161483113140424309269931200997956587101585768790899393830286639724965681893222082095709574486331718731364577001951500218886016262165157250134515642676476936126353685160524237006167745039140120256156647936829165521162653090388125442789948606985563952211529858529328983117430083643259724799269733086308045775755830141663112008949845563756279114216120228811534476868358800340455310010528907231171505072611021519829798719439089334108697949259284760738323731855047676690096502837366195953057342943866422582284064515215770749680450265385771344758777077584972893306925504727396540240513505100408619444171905891606371535149863496878091597934376695675683581479923603906263203286063675831824969352550700632443366188241754094789382723670590362232588071136097893089245554387964310075978353557282700309667995354060571736045972860504281194081860194405635533693601200991488566342882145619816604839837506962621384207141580439778338068992785171196152437031920974182057951197568234439241946195507427850738187614663840120242898412593413126250860770523927091871690095869987450417023619269206524484910826083352536797132024535137904711337579606738123562535777368470400304935811788564563742012804321928659319630649112813460315462278559063837673361986627267084160768710785011043451625405263138015178784320933367784411712809621139569445957311765622516986750259101467457942165915229734969357640240267006937013519681401010416497516338999199481819133799666927200084793257417286056211297798064908135959545329577316041294256108765709826733115120010828370237555130131346188493562783234887201012040655676347116331849326444999593924578572014692660949115146638802570709326843494628741222256167180372863460511385003069602620489126835908434810523013134205463511364170466978105500453704549754858887840470306245996468622659849956118241225299156111953260707583012689254509896098343837102670912233473882399939257721378715208002531718479432253848556579934957339492038755824520568411892728316762493357023232801425516565763803148581433966317000184490354312081895640533316025788642892774689414024649301325756169459016223970159827888163257414339934651208780944490725034420416087664261187223042553266742922091605224406660784827057459251008500572000111241933268901879645544255989655612049599468563095156562046179758916290097731015655116386169141141342922029745721978706739378071087616525111527885153467365204814027211586745767296438455380262095467551956053322348348676522068948671544994525754939412798582996194818337426562548803696662552842456511496314259151183139208082765488378091060505015352084703025317278161452402196495530450209107160645557827758844103550034834615037759252642647542905705962945852671257150532303971598847423969605360463050793427496595517343137915350278152235775805145849089542858457111085987914467037532064660577520650859698810875436011100977578653036954395036271151326194522018071627185671203293873948086910775803267370759194784528090311560439286372403672298147918355408099854883815969748463082367698928108380377207884941282129114538274015919851406905929393555915257987625916135220369345358469887437332473325969494054079936435522061892197251372130423023824772757191936695180908101420965139862258883332801523880316006101861184522821948905537638801468299527278734708326962333728782511875065264966595213331363163092164802449501648222211908252147876773546284381053814710175954497949545896202260053255406877005736877607915713166637834942703257556657930359507637220467441280949083324301286067091295287349231957534313720987229504102640305308634053896384684771322750444746326685396150592271466472390979408970513802233246270535860499669483643092587447884355464289212341080140201896205924835275412997059318896473712308028206564877110621332802361958772866646446218642338277633739256934939497784408122969730982770972227514012671198094019481463410068883467831781814686240395467501549001990845968507103478316401421922908451210112707875403005368484811280573729658929184262942211888607490431569423719905123658116588401577784250994105972848296120746435279951023903239881831742752055178789547273040941514336391748366028304343403125484791784640649743278830049200632802619314126383360241992246639391188948510762525126923779363044211106456967695446862479386842021167802756478207209310111435192967713749825706270655357365378405057100166184247858087733841872982500314507527560072178041697462601176639416106510045715220978617842770527090203148258169050449592133898283333477808551070877498031072988179966960495816830735948486343105761317684593478166192154069269526546239977997874635388778019839148702211308854900822170062385243127335141931112108905970478187745371898715603986081949045476931373875306197390576486534751367279596600923717326202496608564276592985575494968205997788957696417950905670156167456306983343322554943553092406254652017966035916348829541483709350686323926989384802338097324354284448444703684775653381847301684589919359639614950045981683432225473359924223785093542316491371619247231038750698664340610839406260599456130918264006165265055587245004756261642894021011099482923045722785802540025695166325020587084854405226383017150879668659352394708870149144397390378332463888471862024881176088581675330556587917908304730122774465923469542917380000247945488375528354955012277698499954932256335139015952082752028164115304767879729812119339559975264731199377567858453477771927367052265616379688460094653939096266690645111219484074070911832389827809798269893172806789938793731585178058624577688584129881011453624402778927063101455728739364998761927736754794740579214423987607524969430928036361302415897908079643606060761003060306482401378636862702726727609011623916493602369273888641174110280995437690428344367245510654453613320004448791114453166655233277060571026688026894716300311009725465403911576283866112037862211378942998012201259003249511989368327621311629268869231516234346936573187949163971303702603629971486828506893467061236458012449400717465939115154032040082675396554611055214911682456776102105608148024864933844308235081449021465258739264963068415970521111059728519313079065342969615203520087210491999907980268687265383575712060116120682897548129099550933841598972563668594012244419813588340461725232333557114534411345356665383889635824234865690669352863427695406211718180466958538597147513623672662500914865018569280738856003046295699224842535342493207468730550843065475304106593332277078132827617984908428209058151063402799066398759528775720634436846279245249504716058235594736850567401271789459818812835321105642663846962387122704898491720822528391961917831534121898610331663215148106175571088332779809576815721917532789333176849447688808167537846236913904460558347178134495514968851102565251343524889433102683172289791753572578968149490685668490577318036904056683129757430371166695880506576113868812437954601815973913539764827890059529161625914846004882831974470569887166428065423651427761039681501684782990289985083606212660916738130473472070775718894822808071477337436280336891250186270358444305344219126645026039213640250553779420241581902335208604436355811101754134153127604022272017938712641265823348163691196783857935705077943445599828534464841525469880113274791912378064199728054689648649185764711807302039630910404894274660146489975707949545686237038890479781515977104405887525211631474744046031771491066545728940674798714030499850219138693224960006786118920031360083197547090052033208725993256578879054185122269490941202948284869613931929897192675183949793030795910053444087554535334356823815052551559139090766028459474918627322326815523337200833597927606097203882859809758958286618220669894588161385497100225943611961672882955097631582996636670674759469390072259173104824850609790166978945896138268091434116827435194438464309669593770692265212976027368890916064187369835369063197696124963876041889508728184240485116115088078477434761734081637206918457071462319827069949415979453212534865247621616894754370913581593102430710174218110700611756812019614677867519729493551055555073430554917511795065395711905176196106354277726147376283094649880877900128777563693045989731440255596009440938140480447037954625716592452660819957927477806044175039792804850655771717485470415786376013898922646393443140903064960422777275793512275259975795798078710002721126910741343859358368630938237703766057493953040459486507792672750155715032329341212008671427743704677669555047087600736189830393117352398814247139687154586873776889957974499851438033868385528240571098836818075582702174699946646713823478589271513171919135738418412778388798208970946289029854705229591946479767868558289464872059639253509043091862008897504865504636373071787216641399379751496554968068735003517831830518809085190840747264836596273123020216401459372592191909285428491723004836535626100394140924910742694503984069227163935172361329163270779416717121092123326659806782834982270231454829786837236076360326294036066800461730978998466922049196395416913032964238344065298457606855411128634037056393372903309735060840627803240146820908719915216921560107349172705685113029337189397663439291720581494746556844711035702425827755860484640781068500244230942006193850749734715142530459332713480506091534490380642299684177963371335894967642124568081480527541817411214418896874309847558524633388069156864662773734285477880785921482363993283012997042612500233297454352974503839590125550308652262576410273301921147191572350616870627292480765075881988469898229356181371322297206258656821540038825357213449187014773831814485384550574899372450937910207274298431251248294354515677544368137944097340567495786855433370817469155880710652730044924952928471955022917081189856887693560802730300749392633002428294698632910495656216755698568408628230081755861266763404423454688789454047717884220553451171894800603710765514535008624224049428887660059764591384414161144043218990536772104215655175087607926913317480217947430052608649927468756762762443510703276762336778519354588296820514252221120609753788120868502695654409531562312430878789380451218295996474062394221068257659030628814385772984033448447145369595433627447844747835698638527992156276941053108871755609211239634718625287819701481050906066408828421938099192269403204691717086180229253176681776122149839414407509960760008116174690190903599904129361767007900673095006105635684556319577454372623663288885984729302504159930288433698314187189578084955352801321650530517899202385060087762306553881642736674620381212854103929859639305586698421307765856941262537922652572381303888977121024090976833632451316831717606747971345115090445572812523515303021111207883511543078683335154632726589110225296335921405428135399237815453759220727857131871171149708764157042015359934010160403883683479542454610621860527543001266733832325260661687012961029422068735160914959083067977757844075054993560917140255618904779574968188844613015178785454465038544430940648425806856157778507508225278133223770233376265733515972572154768919432206505866963355427767430904217577880789059043024287848760241872947393830444878835538557585941848233154805582627180008611400965825460986360136017296741097801612233675835252937533016039750389732609812223705754132681838749129485919860609322774502922996981575101888446816919490867416627043667956302627702573480549480022643657466892196225608795466630112082361726758565878327758571151075032497870347759126518656203396170942445684825818672471831715768314912375485740258344349356436181153755321797248479904033679590449740382239033533356878678009167596550289543437822626776259001132035598945527417496602012726138841435109079274105054898810011651910259786146037450798960647775256164212645275750781253848406921196386187395523106037400915712406618598764512387617469198472471393615215103507680215532785750205142421927867767340706794625583409159956272997854012818662312190549522523787039745950762221405636382471418266164325648442975686454362086953096959808977635132505560359907361835789661311443174275108585715727040141556355252196531277154146138377035653880931211232330158703066479526472762524620805082293080275752425830253904739675300401065498887891060458325247337558879047191953092840858266838158491420405953527322308710455452086527735011088492555215209677039367242249025514605755517422264154605026001570044393860735364371104391793320510057633214813013039927850166827338298936333213690796278174298528972994769251236129292667154424738864411066836833413670017063883986626960821766540167528398450626682380122165536249081074300102867519236617773734148580794425289538242370488857111704658454388797929245036914323059562967781836731269435039040221483117903588581570847598799174120585974027879789061719824611880740674844825140225249177596356970972703031806832527248950788235811632736849041539213543502742100879449180336754861056390478469570994605352026361317052687542741491373835455115831153313602035057783808879576620052728745167384082812315991758601554922809547211900280177292502674557388951573472331885249965334020107482346367040655222705571005734013086883157160714620415953974544406724049671316704429101825299499831806752248046591988219801875969641152917854823136459412491769545580192124107220657995724836703844212530438327751070122106710743069689441550826296413210319914788566289017956436567420576554609843338637807580163200365998876120450056524830005988810396491962664535728594156089585486160800078483063780025368049835414006346923644779413311731316528367005753303656290318671236696010716651863256286033462820705321199255716279072941652734755972044798801254796661560711570217672864815689345541906413934107478941258511345900816725313022388089979571495253718430922079162908934988400292643944625051776185507666805550398758261660244531341247493305089989574427835815581395631968324573060978873629960292648305653989426402622882085075562202134836970189269021337246701243608117235787681969478409809270397350874136865648907454231869777078228010963488504724898865473202061323650880510519272313684401730086715046679258070552708805971733385399442270849197694327808780171448719040593890914705586640972412767765094852152173397423638704461662529275644942820025855714523108228552830672833467108909070236442652994982188740524112595593824008749984077060033257236694749843286806590066612643510576103307971404375862722420474344306482416370189606793889449277359935681576390197263055533894490569646895819549100856115174462572726771489469084646952633216223922660315091731699718198296176707694601107875765890154099274187627529916153744918517220801892205542298071361723129035245507856473597558984655913251512351321058839605262563801538635750555365202297153241492449634600431452879637263315680133703032641864930156376209712766882277890149515083698403993534306356158664798608435361810171561562624041668754040165910332900412892238304706302901718470372866952949684249322086195466721517721672891555230894653308800528933926246131683656561243047226100651679301286977678522655421050703722640258619829479388354896587663005569847114430177749788607833760744068312270042108935329358963015079970191602418537192529805334747067967816200217428803929796703752387192900517059476382266467666498449113684177937524675503074853609060900605632424906918891848574861310113246358758069407707084965595899841524936916674783526152816407924827127203374904415591954188598280588558388480876351053187807680090590745450159593581309085411204542018507981430270115431288194866465282680860820149496853266627698398950972131514081677997560612014649680749877134237035988083212992930954729955881418064311743674636843493569416964505959673566562181548964764953136712368232066598926608915833191893922298593163473428814763826973391940338424863436988222035048514128588695603871448359856275604802265493166743854078917248085714541760211449399351248116252939330970736106412456619600952410005293360223372932553361346503922343262940659938510084319646161952429596750374689180943914999509080114139500070332795547672140158856831859076930071244894235760654074627416970113503913963790483210843652108221249354456494292093955486148120345801138401243305355035105867024342708085085928437079435184819802674956368352909736580224781474466037237023177615265480084401114280271849180931425851177076451475454577888899315783410402958293275015778608875482323951937705990366539587935010704100848503380276102493648935918289367908092849634474068471051360352018700284308883496440196937602242965636440393833203731591314119200853661347708392432177167224300179974334335012361556952830216057639900655881082863655573323993516929853924327426904684927069164050137030988587305616944494800412007789546649191642421682791199103358776770831972246843941536564862950911287738200422263505471802386134979833744035459060251558050085466872773627194934197570246610239688780836568600655322375990094078753157317672460746665194634903373574992880979965273975676003999895778021390570803185612707322355993917781508489185883621146484152868152168274925727697125088281771826219637908222721872562568708652054551004255885366546901858733174992183112929909979590595184046899726804119132832557813917908775363547951079811700881913834613293483755607977205103226162227975950141969136990681233813926282745859858111146931222443389263540538102501072910010427555869085939434124105125286699910825149099480541010171736282021187729738462938215352866059117847367368069712513385679453601061321055877896177517618021139655167953963833730730219230362794843067976866116323664612893035331145421208066676485881656083607671230608009140517113659005624366386544771688480290328074869119494688740952072007886441145748508448370892686198281013970594026303835891444958333776353763452003592056447390702924040202711887375562213043987418297412850108729798639508378532979889498347808853902983148588101297975410992499463154008434865601992804623410831357723691422978500680344228988482016856415075194710427884137928581872741172224682160276165227958252447072980451946314201583106523483579958248840421657227138784314754966807613398185228122526222618244154501861295923246818580974603415027110021423563511129529833464364338394427706852652182896014672981962310118139097988273831765781084324776170912396324967546231599370441934609406992018727215557865857990964417858541661065925635446303370425347944422526210933648501465204195183855844150215246612042244487643494152625226828903494210088205407752232045580732622280656064880860499539712247518153048121235056088761371672869991082923638165270408779286821975243242814727518651511323085652023663237911906057354501310591261978445029658701546895024342682434385108990626670622500147099847820213132212353763078427026457517425560825909663415664752576213485790910906433044237869718378072583669576699923212998232235924546498903360231338286992833212178693023290583570857023665422208830819093540696555302227795473407424868404196702184385504693218288750550270369063152757336403312740980104642116920100851726176186704000469995131667209245499339479320216703489743769366668409944123454143601847608318103109895572622851843392752510084614023640255220488732613183138869479467419808055363611174160872237144253094141171335474831412877090506507387480994348432378848193758531327435887830914580636454530937802380164941142126370686090374256442166393778836595920735158923489482193827956308034783813628591696107916257510715941658470752960590810908247910856107269010366687721316036784460390677445456987138184500288375724674918683716303939245665014675286030842236493551351232143630226305135083541681683875032817756968463766611337774262448969930628316953563451364821180599200693077491936875856621612319970252394553474357933730866776161101149591003312135711958512778940232361996394501826257188705418434583008967975637413914430105300686324916410303267286275486856644493860268251506936221588592500704382944129292783802747575393926049430015148407166087428034647329335783971935448478221618564152146821640111420226433059600893883963093231141816972339863089993887982015759603504320941035105283844647259427591210786421360425275776384052770939633641237938580422659395719755921738239767343405955372135736411665068371343445320929211759951592849188917133201552912169705352203015314541191014559186464320928224487502791071459041314769628896545480199263448884895098570428403021847564183504411715846443855780057281317170120372464726655143078415644725120690286136219272809009360705771076836271600138117324911757712990361227172235874739662972838702772650886519860095089227510816500572997531554095313095607573658767899780478908527097307712042112901328168367238972858712825422384404268133629005252337460829713119647078989479024577348218247930892406053384480287138651893203510832647232125273558434996585812313013365981866991084008781462630402700257320274684122071529742965118719940260160477756396010381934324174486960700034334861801686104670376435391360526345588904372346564054986967054241164803722879507293764928584476003434396508866552156961800208645918673073173645611352270610812131173592203231031321697835124894078883634984270545773493614854288957851988000229377580778585084419190792020511389571799669613653968098923808985835547573464224726497013892179334914860457650836244879894694966448668465911966207759591687938965171827480989264655035420161949668657192061943704256071021717731316048041762061203714759842864495450246260131679596491110465850765783132093195825404676606185210475701153107728215955235136331331526533486255562556278826720056800122458860108890032024288124250356003270267544603268924251316834431895292145077238962344043138680443693471705531275435093568720641603984153428182133835328319961652234220278502813171802448462397460503759208528727651397421421996110243535326610284506960751376616793883668320018085086435630657460386660051887419853137108639769687892178707119583490765216785189871352517347038070048266059849440037785140823301982188519023596001694699043429701171563787019099116170794103433412875299685234496602841578153450605219596303581006075304788563982881549865144979514086410514412431885755378352745141403181051436312850079029718703149519009981296276934228008649390330164345082123849367538622587245457619331325380000242463633556811018386354178021598465111875800323948780582733119913011754093245738955725943791494276573058773472507436968216325081612539260561715804680649807232093117923757199034800873377513415199064763358444624747561045949073092702318265920629127925537301635627323713558350740646868178602149617912805303675198675767847789371928555229581731514872887914983045896777441758102827648688156994925603827758743901096607788657725883554445237046488702238508070159316084396464390416032946615747830612409929071238746735922340954723004273011440796779970168573202111672049173396720717571384072516781903249066676105963350195214251555283902148118064596071317474261989836935098233219457117217636197724945476910139908748842726921969178538845544360938571224862021204458813795316109380359354127738163396071313208968165294799873504532485499311707404093306018432981616921553447179732088034885296085452820980225957434063614538828528561249888394520459362768579879655054198373225820781170581685785080946628768586366349392587213771556427881663823016417833372507471908236665760489830536650430691164965523054730382968101330148004642333002780237210276543549694122973497243584966370592423571235533528168170574320686040896490966029021739907709533129692394527610064180416626548452338941422676051066484870848126200468402891839950356319207780269807837970757887949946694268479515147330647292232199722247764313970204753554121130640048678052703392191073611281564549464842138952440402152505514990474348787735348566718713450012268913292180816602248486722729676655304365980733687348646418262430852157689191163080767026724749794513695988449441419979365651562592591878222593412515943520272330699668729542525326974244510482747911082614326510768123821224157896208241266316513934806592187221211832283946271703631590239256743405177580570248943275742091694764081420970365415655128113767223202092834744621034597852499324239527191858395049589155505520989779265443766299624048648748851584275902592227954439848228117005114610788069900307850567882410573379930289921044907837130064836893780609544177420825348703656704564702583058962365204973806148890461617127461616692800464449317853485277501598892767903218284819710163665171097004896530129753056207991128760386823740927368009979475321904381385323806748024651230092247068032682037948760445820276328897851605286127502658174373396200680599054893472954083709863006885490206995581074853095099592031336851602557110330068012290827996777795319189881675812374775298755205844124619725073675467928674758611668458518852389230185069254615600437492021970500733138199206173739532499616295851449740607941039848661658356957905387884934072250291344474085261915202442404037786506273356250448736689228476097828517940692110852733102428425663761094352360611208283033164186016749988930548242223882915870797320419726930846042315459457781223304143152880538778962869340056088537677433466173733660578175584417684833708933892492058783448788202011635935239409621183035725136395005468480036202839496591936188455417539446927180748782779890663017471253641517415617913496579809262151908169609760837674062798650946391840475868993049584593839730987748715089314986146647804264875594537368063416807597558596169622851144836374105815464589415129652560307514085383277170926973123770660308279033652045325197262050972568942219033732664680002255892999198617256679192826823024866146676963976903152051823087432432413791560789616735643889339013617688596992924410195481719434861950369959707191505280189241660278574184613690951343070375649541766853907856133985644375309113366005593938546212797853292415714083227825210828832623311308430773515919783734977597886370144006224707216469000660626751976428259452686394194911319825205187992400860016307987703316964573475925239229898762002783341731500247459116079802971671571489127339076535586505481240784147351131636355768532473025018136044886967916372353244134581492209286513789454296494806244818741402015441808000905784867815854978642957924783836616536311325282533771933804657750523627519822687282955497642700293643723825997751081683044186649960833760904183186957463162903734315072575334735247342599543245685590969943641730296186462562547623816196695801148475570420929256502068475893767650214490453677098948164056897480028126509233533555625474052449162713977723077263259756423427653484850627330993996845993077740399585616126788456139318939645066922595420316763563180810076797310626119125119072598278719444668535584206737999156089776750356612959334931407266503245829612120763825214658765924516765120579898122866126697726685422326715504510416036347478033861479925221940591113043262265690166436712841780291360975186051768734399792332227989842861222499564861112088589102942627549355782127482666053430152986984958580079456981070517994882636078766858013347510135169258837558453678857706555661737214679026632655576983480339795675173622808068211007507652083803153641013583839525416426309005426818149905343597585564907561222891844829229323260206089173459545510370013482750884645157460218583907966974535031989560670982565441697195367883778937565104707408246651280413043732314243223511295155347560029440336982898773606095940832982357835264064947588018916745204487940091519225468272784303769688671693641134640598302918688939978969701431930781808590657978381531986566649372438062898728382683298581580377070298654465855637610177825929072589147720666221610237065342034457410444456582507369593388422763672370549624137189269022460177748113866965595715931196123732998273226966159362521430459557551081729701563216372287696072976869550064708343534300068275082015139822411710768563641029245599452853716838119260516140354154975108382133676212551875853274113232304767374731109637594894758579103718826288739502812685748405085363915022761532978629005498940806307378143475101462029444767366186134053121674100810051199003164771071393214825053581816978485367522384324092242384561992342636963260831518922284746498872949754451777930432921354038429856272736442243613541973900539146916570754101206742703016927834040066553267220967020197655057502679618150738633530056299190543136397916285435058339499435550225418598525962243004861313642419631568382096071126836256010878034812511715729844991089029250672801467762680048494534899290186418414432178923345348972162795316625922193298633758335900631716986451395990194005312985371355001797032750657049101555449803706268577883855798249267699034832380261628122146519216032623109852186747274141266152698383457071556225960079904763356819696300771758639185240479685181572814046336491129379001688549481660281344234943109276223639629329637343200174918047740318670604536812804187861205855728639780013666720444540443240884400028918691991059489349466805869696926960570062728778735937959417952802460715254526244862952472979455403283457106978583911215351713806606257970684123656636315410024075140078020384074097394953208439547336826534614239756777990487618138465783318961898495119642621613006490360568528160954433985301193818492329395895104280408540973646500168166551338455614450461756765888406523170406016570823021512196415130419319032959673268364905332575954366433292515244071478930632673518361554970682677462930318587258563514923207681326258070847702261598801602609134299697101569162719067597281915789688203363370475292104633993625499225006713213826827252118562471268392517331975468641849993798063936726048728748499898835802152649831201270371456081577394378396593160307602179422399789326903074944877410700400318270422680481585677593768537113713431109112982317807050782632641304079893544958912165864048746408054643667822221105406437702752543797507052007665284985752575330960778347944602568603649328393185767265334873822909964641289423996791408999042651116251472386346372445320160189803193568742660380357365186968488433998291531158102195268738270522049311755201360229961912982093642006049614672936171690987617496673513845583643666827011198237514390329663070442469534412291321941172156751773185819061269663689417811024753996523012778378385050774103583837095385419887172785629584175254064717057760588972592200030974393470276835745125444250590809144533020991581368176203345805430987264897883210796447680805537546917910247674886186512020257120075376004209914449943903917923335980988599092964570191958089971192050846671337835919918855717681203259876922000153932253220897144709436463913581758732888354709724035747978418027983000562630059247354127894568022707999703520209526197728188954116173656572064447202601194611523602266699803544014748348055181742296323970917245845906820314429096319559973588711708065792907914764862465709871428856471820073392086969506633358844615267712259756418518966331995207664066954469942603328251305790904719993594712494316097330349815692113295929661796129210454698272299596130074736117732200818302124881359502393089907968335526925838087623264880235760068239099162914963033759399147000777805588167805660835091003348441616955376326275122905260171562875449122906031415888170924389302451052432336488978520773987497800070919578515033354806438446608112412149551543153271675058613126781672066668396346467465259951129615739018363039706918179205474358919803177098656681512115630604477865837406953112529510421733723283810915611078868465830975011423221890720504922555577676149300966876156219041739760989277479075484607245448964423470167170699894085012948700459854767312494732173771160396976635984989524074960001501111338376332485668768260382638880065984274270850472030798908816256006931154753000467187627754424727548960680402951953431622243728910506445138673610968588610269568477014516361122369546652479041694246733615984493017170286425129258035074730569302415783167065432039895702230634379196511498256512084068728510821533706292346112939102438732144821683150644497327944923117720759991263862162266770830543553634437236653342622346588454452620378378620699905156742104930319100859662322400588352261280014667619781572798305161425400592468837212057195800571411793418873266194785250255813659442673357310784458630913571204910394831617426287898676831356967556388700523859365896292031261716950584870451016542208048152519525626563204365661244378942729000678569879711193143099651463062539763085873625959017453944026103297559125741849126764990857676289777239005167641074880730510043980591006860859306610964531616070409887556448190895958022822349988110225957440810303994460333460541763159253805152080999695942031547705652027886302575139502670920359418538360116109539383818239646856552733870720244963027686150851347295218133853558028183762637362686949736363817284760306147553293174926279539574381825036442112396728266539778063405009340635202406764682212879099383601402607212104884165237058808529045568105894798607818070423238344548417418352959045155079840621359483278720899252530196761315364114852486655331530946224718586572904893044849609408731211842692013833046973979790862874440563999178124043015754642195364502525241061262276850345182273334947387173783305071440171518773987772971317168826246394619878785048817416167642926937221130749447322812641289050119688513991979019605842102693005148793807035813991656392236485069123436618221250132661412222787172629378216597824545857324425592906459337046082448843387725881381110491511598641375846179378370034727949038170648417236768500596665643642199340987027020242238366283804214610606367495314353617876680019399309297027727170131206586659129291771329236175254626907767539720224406542947344650148259806334178804368770349540512128245752999574877026641386604653266187624108895822356467506869920925413329808449816693382089532772120355160697922142033378654555148574945288297271062332699575994468474371980975717945994598632314174610509909729210457660084354141948474987948375630935725063471579231608194547244411829477984442515917414781250112507814398382294114839218337474934749293673632253397756203012665844473554801428675930081738325875009734232160512285059332782240029370271030456203468719697772202633025081702167219158727129882902453168041229927979534469497919738037396873446609125949791312116415026902874647936778926115999261781928528229278139925913694633206193491832003851531789365293968712636383574386147733968452795434468836652762878578433027856737080874968398199639518794770135357690909314934132535854388518975810289117537709301941855108025648480946171622101159668845784577226024574398428674951116074359398380299857994736902021301214703590056258243415115852239713333144693000476266432698967540305317897509347809351814307984957104437457209144211261362274204426194065405895300882767709659933774592236531777891306677249429916448494608377726260920635166705876158291359543632830902937507115589509029021767733607265114547268833102375921861038236566535605485691426402391183209652781193432881055218761193257473051470545672671737528491644966153900816622497758123498983464690388055037985797121969962712804703370350986153127123978689960594238644886915349361340926326401562831629758262387382818593265251725019998175158140156186902051294028248667298166577212078881996030556123109223909184986435302784107253859423880849161116200631635813566924919846137941562526369703496439270259924099196749703263267456668778297131742296792508937527977816432907882189500035235438039306222092927796835366105546723520941652871830344689207301144486181099139554999728278294366591537077934142828189993219234228762944074021237726421620410424740240139305320089571530452409681749671301365242104642602176483035408565714306822607616506354887457547718466362242389930162050960860716375744560720323919422580516313896472793590019586969238359762217829056620820399636398413170129417801843539834287057113311308079934981348160738432558257674507454106610030171201513467122816021187121169165023335845296764523068253062189982488105837079169811386858565854759883795349592397270158585930336787375054668046085858355785083319075055441844415169480033463987734238779788267748256993112865164143443625238913615397934912362710568683598191126616672840110853069553428079501418988372921523440768481253728425020342542501530213647074841303684273099287231808186652106616241787619819969043928656022204657099914720673828126306542480072760211491350906461202913670849989007329812339256296809469261666422811964743787579692526907255174969835056064265954253441994155741359633875759215387440142792681143011590408571460551574963164062152898079315960480124853512625153107497878080617498065124079485327734798175752485976898292389887502981744374189416091075627782789024303704455804605424087626174964113821465219025602906666864245003274488640470972680124931159254341635308178894693808460920574933694187748062238518829209159639858602031311042721596249868683094644047627404989270628514600958430846738209377357398427297297415515992151970585265035216867522397586969840312679645969516001001003266666251012915547817916375780215690632595822556145623769422076809794431001834783214043633113315505516970897679542228968879176958257533303986905412910094001632890674601235039098991941835352931236475050793277380453048962464526477003806424945038157794807544809819387082163900198494793191305141503072437672637544483595848445996305654649817969244043753755256342091932573803843797083377091723131624611875716680036657537640782163232492058654346607774015285877741446521271080980996953551175789458397444056390806202071226789410126341063924453170362116503568222697114503886984692891074936817670260238983219743264712418576836534835529479099059977728966067481630530151108842903133963664339180744470620583036373638278699309200114154446908572756247775871841591508282682935985282711278629866686222704536383521767058843939730779056510187569530467756283612038801381642729888444889103570447376690085357932061202419777507384905013014617024487556818453488670419041241161827283075815213321966880466857268925904562349149975421741119574652813401164298932007693166188198758226461961748434794173577186420067130175051223556411886314397139741103799080295429242311640531971486663027377665918008918324401088068602223299901794299946092775240665226681236793871724704745254413082007902102966648110852662615869984046101850711850692806273050480513900513933029028094254877949945563342523729900928557995484486221536064577356153582825901018714057407082191603013991348864433469028195707753584394851487307005578781018096959649292045102969024447900639945089235213147477527338534391640929082707734856640003302435023827851842273619457681428330661108815096077280289465594177019961374171491957884380181080114602654135927722888040316540760989013177758655458973050423660541537728581653701402538122901395928533961969391639728765478770360316414976375476010703826426163351132946427249840187163648889455769129607970499677730756644243175032758996434309009418419765502291042691205649877412437924490879826391504584754283740449510062826373778911504487399480874669989892063058881238517889301983215196876892101562022790471703917866144056341364314829132272220103376687212857095210376226665937363942536634756389812481535563922588539372219244155376145973504375263174830659860735281579158634042397845415083343584380391518920242174549022411279921741227783165190538896343440666010203224516673149403587642156562507466777764419356393816166342451282102819680397220290590826582711506760317386084130576352034048063421020533655791103877802304170628737129659950161415549561633002505853442835233350996687456805883795196830071675994159088821285855053596890478063254315754563827495489989257117205030944584933818042412066071995377525934670648841839361772175876744142395415403435601880128577075701652509980771763418037147647603140557614609082377503593976005428868453976271790416792502896968366175420058280511707930897136819391130237934141547144230792397529707837819733412900608767311691544834143245443319093856785125904769067469632790059352939156447424769795809869093425885808150059809561293988788141541756529995563185540354873637385630780392998541551406490126530567044905077253504083701642885661215765299978481940379127791938626688141234861458458149804724162096879891404696170740682611049801330431976215839813109798853451000925145778954016785506696185261172392506466006711700752069752047405068015980663253034794253425394701158180146997032809811551058007266295203539160152862485887346504568622663848509527684411824067378470671741818111771214794114836309621539737587483412479607626637576389381542655817647051070125730805281732172203806576622272372490742360130241403562134244331410868967436622399396134611098048094614366396656947169754529787867465893002866740525043624247456907881083959758027990035125178512636911068343914672970180101501158509697402639046704491980301412457590914212998206876330223402426118221858067074232222381200744494536195717570850021494323235700212445561734676978048611318776582983950534103428778315244690316180828047809610995615375333415071677473077024830439531187905330389925244411927352092349043407988908126759474035961691278959206645453825616382047010632823143697021849296642003316472890452084266124247559965125367174482047084663844973696846619548938587816260615179545868834444455561962241152746628015838391546712918267083760983275572474507512059885155540123200161008691560299398673778988556054270980847981293549357142929734516664500530607179234062323484485484305242059906454974831265918797891093381352770911190020832714214731958078565165340593437591062532664261539087943406595558192841273861054285344357108608088234113743900966538896215250500417493241778137789933613582679663288036427320485120704477763807497487768152218745847541578784872657574246296236048336318862175809576334775023732782375730755264620496180849687001673438701758351126172293386967291977536844037918709762208672530008917950536981343414592478918404373980566672497674217067365574777996229933374466107387311176717031142299295222902912788638981571748222337492874179914711289437764745064248238596789282418740851885451490390236990967256433495708759987328950146577395715565557547524675758656910063431309495157789891834268335688513288162859056496626197328539379417302074653460614426049966395694623832290151028889411371483903338590489743002762676713451394692400495351822289096637105841743777379930167981381310469657887292119539559225121501686881680812554008477885539841038083077336091847022574794787855951147708885770681198028134599319676639363474768538923481074433629687884675187736343993568709052381241523941998829463350842291432923183485350838540486654023042932385208669464956314574303315211646305774047914034939488289792967294157320519446129789616729960466515831504630711634199569036699659080155251434596656203003264964738288764102736520604090223709107108977471221725946699802228725144280636392441741189810136127451895223315495347310701017678571138641921267200808363733007258462796128780434496044832731355050067416951025648206548220600767922651298161160151068975008596641598898624322570426345531078197125914331435547168399537429150288146813246033969465062919469667140307141029299062919788462628535973860243915492657631720716920386675087745418650283190142511476129999447243206923235790657081321629784986909033871001569767976496933937949244322618047869009395212939884225074661896227430539005088616054127624146621050903073072301269897773983842476164529611409938798826815964064276065948014858133402205558602339749861210635542640045269198310869754475605262924019778631370728306233067251614804499010381277468582599077175500804202668196430217680798400582489906837988740679232962829701223930582877089199917830968570357122078529310479471337373288628582857632526800201005056823546341033941604659836734282325905064905923849341209153156788675880289636715715832375545194305971542885998526802499159758960786410204544267680534960507424800964476501706488131982504138890636443997287954761703321663137073216186116222995226678610257031784412300945971763501098876812866211997191998863813343930448293598335401167731885207673257399708470222211943932326713380318401086372394462159428079760837499791506969020271438594725473593936141942310648874044094259099354952885195901634473272432486224466773759470986618521469674035277168509778944931647997352830804854064079963704911731923121616627987182501214096282514922802695261753511469422349702181044069342167019461253881129134694967059684298001179184915017796029608815276656290883445325994378951175420455211121963956104361393785455685086222813367647751112525779273040874291335866411891409963295222762029334229256802967330224517587463279597226127867125370403266459085718871454460652843191131700057631703314617444101812504807107362182503644256628227517401009746483131769584323556586837954279590267709941274482699328776713750733621094900553700840067906928305138407382160374220970180199251409893665535234437531646492792220941021722330110994775672361860877346231836510634507329986555585669953304896723950969943499738418027114763126269397440204585452784641319577357399096603788736396882775077618855096024257650625057618822107397296272752185581928627541732393662227838092858336558576270312329511726408306163539205729383283249604572201976895245995371128140256719538321035531096562610731455801398485254166728501644688078553472863132793654533511488879533814143006805026215663691690572717562199111158046923812566385258224045843804821697145848942608261634712287278164067321233950365717965386368109492410707964987154616280708701461566321886816532183686212263191931799981165972641030562939282120010362815201916042105323483078094830330001845949066946624865889982719007009830265562508298118467757053963239724918181358595508997205250807975983882654516218947089689764304005608429163280881735226459888211972467845445831083377251339278429534105450884526343785150264598585703124292001473297430347506777153632036380323782421047089825408324309717004069055456793481753650135821949239605515251076827957532357145953526514624220529881719884810001851406043023160456161534926721379754229769267325913179998292292086112519902887149191312832310984155928063216813776775543732995255523822208174903403071672391653084319749226122257290893693622936457619856860235149945869290812592352043714801649397407454576595075031679645448456997937736005710234762202495129089753006707998858525759523150156725655824819726625316848510465103019692800946288240517944115505818741051464044650151869230025928963036144864435558166598364708850603860534911045609435862617302874662492348213701794636313182318852860007965686504572757378092403299697245120859846413755712418584477637558601381158288237054179381611198455447535828211348841860574592349802239681748068652363474377036019217843850487221940429306988000413572005312168068970554503133588649039092322889479392085367178939327785708273521874112599595933059880212727644839818430877305093955899272327666118617456822389734905654040206658516833757187589498744749255860366502160084952441326431056133865588758809581468916186165514093033525509224952589813093870692670344027142257096794984039396940988493987622991194741969736959794628870274004133463651957742691968604583020829438845925037744090665057375379612396518655094738729812543600675328965636963849373177956123833196187963773848049263886048932963854834235130767836585051707384729862573618149446820244986653334934036547424274446316958653316058877112329155620026592502305208948749531967431984871012927202512601681208246451265484833268334147442438160589760370554250592345574814952097801266513658137716406487458932353461269838308615439140411582110565707106822738943555513239772470338918861031669682460496346411752449379869147765429165961618628634058782332936517813504772812105757941072050212503725133791580565183166829333739596024316742731077336905982560937883157812727339667157958646676802245284341128013877805128420737356131208375976458976662678718269307045939446451394374529033778056346787611695792043661245312225414977750800073413283702542291442214425575746534039533399579249344540418693833985384358999230698868997550250539295205630378243291019308049368465701406630821655850854570541194289556615678736058356894117449231329151380181060468690205228039895441576508561973639317670249417001388958121878823216776727044214212740966162307673880121282654198853105828601253467316390471476769295606496645144906022186801673826647475024463578641357653527214462376289060582517649791642283581006757614408296465356810228396075474515713538335977529194601182814972720885579607794722803802220778704100694839717925515207560554881019611948142499917215077633227632672723101663837296717967025606474769861965150434731774704029877790069345900678528481582783839513928711887383195677063084147093514228377947256964973126388008470396884693552593313568134165768655538573577803193435582980935149565035059028355956206426355623844457656588327525137886785815626974462461180126396022345117696387956957809714660539706586497105199843683829997083583137225072986694183878996612722502676303613981137368333256278564306177774659483463666582386282863129671788330011934663997116265603936040425479559700879135118913106895223980214804424057095233228421431540041274930376480468657069639053745005373137519222835094213331902398934643897476539025367338747748786483875222446778011375645755038205465090908600118389617107262955400319394775761254046504599365988092931590580325014686957072982538038337275240215908162554057177647676116450324785318652073946416439812767434655730783686567315809579250752453660072922871403383476125489282077017759254620395345819194945991839561054080102222808497677679272222704864666120127721092590350682553247851832795120480971503305318750271461455482554606211870266017217258124944305013310490421968701278280545077153887298794226773828404836640334150088131436277024892618798384679729474552659839649480156831327766913887752913148292356759149493133550845725474741608894406205548706611117837853462275841979200923903564256458561024806078793136469965033722443051192956296149813008363597951345675944894617896296413674332199247201680129101875797727816653644592843706651907570889121875216700636650681885730687369449994953574512076589813969118491174975725331676202127681498564669810653872979413831223933914154680390560014938452503284623791148758334410860336637374490569389127046110926279361995079094443635047573218636511929364971001588322053241550858330192256188484443137247876616583852835064896194496196458883064836341972479939599405455105350436624004661658060629369024103511249149485140421849391599909720564287604617750416339513642244406017922453389177338690568341775920356808532781630790915555846458071971098881561868580540772720903402948673879853953288655727760029386217691541062419480584081457549238719219026938227835932805840885075420674640446750601862865681592823878737472821968589978143381201019268431704155462877051438944788026786212762610500827832759335391794287581425315448143076316844425933564878866960940790556811098653365925382380746651586320911052545421784614299260266279373020003767511917603020750156584590252269059270643308593899549755393458026894189287804074442982556408474141379156566787471768028507465258341181490209877803321167875942299245232517471607453368895976909083643712579144753042242872465147364336887920932202609316011739049641752973065948990333722914737768465601869095135672366391349491222439584072367595102820399999112099160632685713249564392970572822969600719436137933290804127070079856058240491821921887347344582674904250062786412550803388942326977993661561830414868066052101983390932318330016899098093624247267348839857457568805102125040271761868455556832084679958425245947733441374602709945079900781925183179116494945746999517048900628034475785432687494132296254848185185194712188483576687124876980860913832973588094566706371863012376192552332064899679655465171156938108647659692137771438663509262796482697607345141391673133392516008127584087499509458719949046489311106520596725439375150953092384769571023102902618236670250119921331939851267458307849356539146891371331264957149556565398103926652515959594095602887426387968200197678538949178617911739462492276576763791794526258091997262052637289631679610561426467259275225424527354987908057109334113965598167226823113801257195864515884426705315072639398025204726521813205693610522436477433222449914172492857846960032199093423345468959182345701106879237921876423100606088250826742633816096486943001153267476171032024271557337641690830668079144009653078038029853387446388174352103187643546631434828778629634378615750951100478398437617385681906090176339865259080680705299453539167961348539241758270091198502281508281811403498748977929287619350883158830686081051182659493852375637074258381074158044938104542314673384070319195000362287318508213734604165950047820913850355637390828225594393152268410187669032828204517490280294775617203302256414045901483386711192099386976454827258135948104067729849345126509667158694206520415346929266905748025715420750831193976085128677275224497399903036567264845593298770505349378215911180656247638033050640815666442136833687281308010079564030470179260065847737745444205096181180206260938039049727514807530753083432505261464497556928191790907594186375832881441327465692143084725075620513340152684323659294783288980979174501264410923469999670713036185030213479242387970974787721890353245477416577294021182418488085587646268218536053110780667730063118427203035743733743485998174563908150196803298374926720861630611946102361645584196275108760876723560998922463648675108902137250966015297448844170596235207399563503218489882204758789302299349348949072782572922821591075699844022700563900816387000425108308791425150582077130908666170606804781796493650030526307739016171783342032045433482691771224253521238945386825523555698333529513043709415786388880910855371286785682155021480308754177141202549707972895608254525620062024042660711618297139581391490823068044120230236514521245175495258978734292036075720056944574597315287699471214174487634193721075051227869893048624878793923132757801166770459774966201767637723199771336647277580771371081846509030736860252700794494881865733613233577988312553871786820767586329475285238907935837172568347375983462584831577951935608394436139333507776374526222540809522101826225762115486293649216560649464296703637459822347938181492437319221986833537923660164130559041195807298969473850261058650858246806823549127797016069085706609133537107988935256317982992381543558892074352507900859836058142138637698808284993238730138812554600987272069152904473464960398927160035864266563653759071502908079018360909119449149523815553154146030434834975794718202891517361298314423887797521509283528495572934796714957246767624421247599947927609025560955723182843630310544873190928395426187166591284398220264664204903060339831363900494305742256984745401735740574593866668417528661942727204266368685802151669919346632703312344907882105405491444398565989853262509082951783559473209301021559034457755277568987579559306260209425436692062384056125886339133821764363207311209856826406362548033723883841354190503716123274369836627476270067327636120571887199473679101177271004549087373965281071802836192992834091018459811160495229700965223183815268418295787291050586354602124776757299711994014606018113848591159587012945363052184394261983563828024935475981171107738834215797316622898850811133893339840285726452072067855441138766349099091304629148820334809922573653107569617799534527511562149361482870642041796932081787197608650886629167114958523444703693823825245326403309508655015350625883022335533989334228589098946927460802155397495708810847755115110158274565349314218324013862016080351696005071162410803153135943226052436911245567166896406979514889916080976966678318020211569763867962536413685547429851452470185648221624266443216691034774442931983065458361439917753733504590103894794534171576321160945089627321685985465694584760671484920712503462502620167146111278824076180077148064245546149507792418759157033465196802707915394683311944693103396558441661004915306084864084677483575249821322695733587779533737745447719077335636763314904682945575906707836096193836957695710702908745482040153517027080089312845066265968452391240731864736369353972164229365500132397516621680072659734647583221309169793390023417890385023751241708607369944072367220311355763891801793726740661833221824773748920901976396792181840929356502076805865012557375435487321531501628973033161007647741438631054603070941914886739375351451246353379634058303669042179245069869471903242465051820323463258958446631622070983531896940555811811002167678029223694179801722655372714475861169079195681699821220918705628056042127808470473610526098438777240180708175623625175143215851780561372034068515458901659400656445043930540879739320265638340098159842225861744441966169949801847088775327371125991863046915119616527846507783589686919557672985104381379769135916790706769367774230293187479247011828167252509740464578149567343486990691661441852176945725553299171861618061384811487308407369082325875288087591019824693246674104475031532723883590693967575482998186277921957036231175575278447605326621598856865795965359845041718198686965662376659505521549103797218912974439687017896426357147342486394013592333622589761288026439251385219961114230544749164396718675032493818846471503277130313365344425618460649038295059088872381177563159991881739568433625462424145231930930906701701365663590322367405391976701775317817547712358770481386346307004164363478137842208727437454619615096828205725081657343396516017199082321026810648671899286487926596126873368004266668928593063876381677680027850286106139126148787290670261348456338330623184755503056784653025261193222970961729594017952848701939691835403738343248433388627816653727974732865304195463061228493500734904113002775468074041587406839540626079351625618832746706278162371025134560823436236176066989871571734585469591205738821083984266802241215234275696215765548113092790361937419914317667405441175653019153897943118451085746442041151770192407028663905825955339947121327172637348731268590502137157323859678444979299799277105613650684632945501641130808148382157874866244295099283598609418864230146041804873296285709879428759880372754052886816884705289270276467265137403303032643343468481293962717275768184856175813080760024372614529803453071280969833694839459926972204227950637825474438559374878144546000239867613575321533264715715187213233827116618816593023080874355789158088898566984497214044420935382600446538396104802369952844202126366018509193079839810914168964678152238842504622328874994910430527861267725048869427060142890354952855144269224092331148736234959448280249012364143836137168767724223167320135759560008249745993164805294503578547356169204050198691537310232077737256848939430810959157060342431024303110881279896556507775674396348589644859592858296646337396068767270753277353941260256287537557151373119543740439093209525740179594503295867451608088319230341328925381473915261399426513906609955148362834739825588093087989341034934072907110892940684176882403965933912766814796600483310371903180956886017313810017484630756688634388582525377936662805579940366181871285282216778453562850248032567421474556434122805842102666076156286348104679236929166957292758908025622126271151632831724876492980870321722333879978342637227637340405555098721482436212525695417948625503709881262013341401330446820939381630357775127110987814869467741522899714086549519082169344436228738664372180660058720893719184614195501714171015536684148723212979414085053416720200001398704259493518242297943364292602590297779506002695655047477308293635930946273843286365140779230696791940760780525853035992705888036865707692914862639611644352543374554971915673220920137284583642668661746949612795724238049317589121688186042609039059879110244799033936288360893545935784444252259939898230883813478104434162761933198342778417060885317147688827524141580014942619830389231035635888338662782359602048469661702940547297893760921969477840396450576043365696154475573545346886035118570600428663965149066462403251097271525983372149203202021023705330126014999742126346132164701922249459916501933425498017285580032615946635639283329745531881639796227426704151632172657658057000549069797765022870223051899319340266701793775590439356340067661077914563931402205354388443593812969847147365187673496116108838997114151457017347137309040249207293971281194962162618011101409860660087504570292044201240065081337906623066445607146394329690245096485448646977238335945300887380710628818582272141800666320653620821436604291750740543655795754224342567941583724858172951479303992969620621666904896412444887853683304088242325459168748408960325497570665107752939921338607750949829546701208519687937179860223617944911338315613025527041615340592397692581479094517461071327150850595768230248646984305087558857991490275953861103729568052110780104481644581496953007119507655244812692142093126425945066897027488106277319362232364495490222160615721073286502476017246026775052523981076238589801681366956465688288636431917885161103731470488797111489067801310910280002596614782038718058044285983197921399307654234382223967428496108582885469876674811278700534668522793067607893092569126718232546867017586543122017233306706714063213644327361805033718307278691973938375922451043105338145846965618585848226429018316876466970328647916104885336536468225310701514264312260190489582511804327286631239449560519983249412411824617284647303545973127654035588150789951400563427845687286014391389608326342763775309160324769748827865914044778690688194401917514080638995253116653649020710093479334495723768162779591218447468413597865111073877276267047558635034508454710480899253241712883499480262869252210534925955266496309202666046180142340443223090934892105952651129236679668876436005333532360892267853675265124385833545558117221982429579174852456263661030307477779131175293802352744895628922004275959235584526295701212098408044033214550452785732122737660954270009380474866996154271303060759642407729582070721607833700254727803304644092915347817293084222543087124996402998225501275386101907643454806704784543816478714191318593540317572787411808542673652705036922539161788236473953484887065679373564995475253297739579086812692263599661590002692639851295935326531477364325877083173704647476146493534029621925695470329379810920728819194549945368099301241967572973268764505532058525997391253842850144153331811124617009200521869595549607700146043090428816708685136076132488740706049983427423131245809902143776313792257047246978041003236191954935867119587892794692836030013608693982224419729951711157895424246268422707312044766977424011534866157704506129255581438703433179006393697458278207919779036470595638815361307859227732806995725911046597638187908121038632707376601952160586661354157015716575408500420505697535477584868896797778353237808024574376362055254077465040435374942802013156184795198093216843374982880731826517672080850130842178744198464762607671407950252971338864740681090239016717526631683675936595802359090811797474841315671647621380946287281529724207545931178642470371660151410537896961414757812085686136681689268433293571365682352259735081228915416847949111878613337695254339231628533355588901777667497992623690747898077455804588802835931291735469388165945834824718487363359623139651821432792834068853539674426882463027820736518356086350686347623628233900881278304977776044288478409675220370668565147070621013583572713430378234477487399862430064449546174265403739617063961085427146633094057188702697877843978443387627860621450807505027802274116026334247106777456224777254938032632834128053154154078552092058078303472200696683134541312494697552463492196864163044670534061844761291830243883626932185358585598082850235716856105434654410273856389510232405720377471583076638480031115319371585910912263726111031305392241047949191774546614706038445984775988524329606913159618243490984631757363001044056207567459612313673433235381493159359161844237880536786755107776552136061435529683237951607792721812851420054602666444210714253372111365713147903465464079413985225038649057461834228708098595619263079034697021077707516056625310416522258555099708615440033564124871300195147793524303832601104172773996537202060532598393370530528728242773463046619821503773585441033938729455752876435219920342744034323786874086647321132105117549712895591193265249353666482745476759308515042407474454754675270001364659268515949573451202825496415212232163168867581326759890542603325113329469742927412584678823250726237463426991249764264001971364002506925554799188608124379830238488132723369809669795410868557769581695070018906990996550799830351517580542607406147064869894419042992803702515443531083340879665286438566557814961337692768935041038962436395612124867938897374924418068042160665895212609982874578960302516407742881985174268293859399909118745565952599275208485765223261781247580791919637858797719362343025977338274707136736369505432219357104037675510661934104629728882536476408059491163539286132354322914193722080028506541701290612120701587996290177380060676724538793529068108019300218913198496571623891504867124525276114222774128183502340487050186361145914558896493664680708986252606411686634547135507262389113617750598108184841322486989968656126449251739621747943242484977304860485131134100411777863778109563617603526450543964793427180228347804841155175302709159894487410212937358282138496128204897839397825156211880667897341397056668747426569884338267622279202634082087182089514130424011100594606247480293827010904631901649506340462518859893854082656326096353644139334343858414495885747220109664891456592188767387799995387916012669359105208654944031135920133949971243013385429864594081102528037889099397230051274974847436949464958881827576088878836192150593117242987817995651060611919117276234554220934421472796151303477547802491238794229467447481546648253426029921870265389981810983240080392293500159617243730236597758042482305490898913765226756149027340470440986141305908867046083571085752414021183350139544012308050050555983303840030115061439965723183682851925257914776444454372329087026833907046659949417326047627115209554543001859910571743591996291884102194394000996110922042154280164398370565266828630664057002229217827949815791831786213140550151419031346469489971884534724293834462686640183360474179280977184286156763860589420389775109941273698894265134163304642055763403685726988627534731431023375108419826283125769515439709278039504426537201296419280095456335027133464662912407403090145298453547952881675989180353316554376756196153961412311457038783338470675975110296659043876770000799519953755549231786317758537227009905407747381643770142542223015543935606963265034949577595199785000131814313105714956854599931058787326954761918332796363901668258584279453226909033936162199250861731800137308106715310569118283949803872088487991396767117324907763831323653352583353887915536886384406555117304543402896466509465348798284358531742035494751366485568940455035779481666950899551824501953310844394698078528814220278382465001027706277490188183498072051702372251270434497384337565941328756966808047075568146296560697932728442121485763271260413832184917935464639410944353014565850361000729731182780392776571090185735881432511833642909527884214308490300280274136512709956085211507795930530234802247646781249378524933156728803562678678275974789346832945912495756843835256995608271575052736142175861827743566481033776329567244338946274996447905594697594697836027701904431041674280759727041102497925008123996723821289615480271264295847667596373294794137272644921925060885641667214587100909996260953070679522033314535237222619526568004547401949546753610207196520517155949000999488006502052455288560654893386905295431838864103399061461155002420875789862881838457945988533064276301543060073887088091752837722770606232450500816745203941962359693244271762948947602483766652534551279671113323079925649515713661141361591832620416520498043239428991933608239668677448185241008952604737934296776381615629041122759317745531005939468211606556720968458718101268549386852126243560955599117534667321958382153716337169541923439397001145376596796565037253944186303977124882680208002539254679532304463481964142142987437641463128925366490071319476749715425775198084800086801010254976116009876813170721085944656294178393527227765898309876598933489973371783288099660268408734193698681364226864474091191635796100338638988722598116557710135811451883749925074586361907675334614539478512116398703352576463442681740100904035565576162163483910852050369349234903914407288401257494960100805602817238067479759036901860721096863886796986722462434881810064248536030561495221428125570925869941321468419867990254920309948050197996111322117883535231975764436925072870911173561524790973664427880559921584318179542375176526097671457322358880472862650185998294112957634186943475568054947051278868970514912099581816726339627758830686908801210569676600203863635561981604751940135085944528302519866137082319989458985361472134496208016174661941778630424235448426133900417418362639949027796053544822268074980036105692536002077723423740867669446831554408510543041074180752293186634157221602557419045620150700986865655200845287057762118781565060856315048243084768553736781935107255396307923379084241707173469370681881221999937409489454344791879203716645889177435014641373265866326028636894768694980029399924127048585017705022806024283932937206050803963206375247744471228686578053252888921320388207810738033318035485303570318546226339082186792904059923657702159518851757924089313433990171560286143417569789153629205485840167016765226446260198753810598364488243365837012748074532256501146798310899148600536568754266976865182962936065028542335323389550056961213330992109256713914166074686411167936600037910810110281583480069820721932444329114511028449762283378568606754276481251996875717286376476143225199338656417751670137568895358582700381683152708504372216095473525533260524483170818607335961746115028336196139526882689355300048370123104380955665525766872109598911271164262964971718611411481071602016530475158865357364355663590396159768430739502759174162629685647063791313170073785728444405824258609007824916812143753727636288591501836043442057034263139228921279730105647036243981094444837574407855184535353076560143384191796036105449198049423555041695007045731439505234592236345653893943016382062719399488211602631662399653974198251925972944178747922893565495171754557925815511990758420202220928119567615009826870771726205901980729908518461585450401463406463565435433490018626201911140863185731215319770244776291588056450783464406510498649677973483603743140067393090429811728130832381022359609045265180892931652798482603572192848399019401402013624745503064353185432930491433415988930897771372461146277366329668307006658818556028268747401395504354097903018754686608056377770473509016655168793206042619234875551434086766088991165097319855498829148605193136609768368130595750682198636343474914153005095116913343499846402716991101905389958544058689885788293394966225781651243313405873590897732105303833958325293181170072368214515648896983551406028779018677155608204673714469516351946670891304507517602980411564674134009993038805269322309119451414653318886604200225309404795093339849197864467007249080809474563488569280919846725698487376422315628317524241057309339819104005917871773404810409670193308194625999895502746540776599033395781635253185140555462377355438992229887531064078631691031420515416666336724957628478343113368494702575398868707586453961459228488932174616585428302928680761122744552961278732849883580438047899439947031942747848885774764118374208331809035203711336980854302344838014602104303855799194203284042410660216408069635872099215290889070744430302894704198613401814992083247786524070394294946264390210302518529908018830148835037717204783141816995206486597055481210891674852487978285697387697917164849020482182633053307950729821812245314994459181128596821705867539748937138287601816883104056238127163370046644916690260792606652625558836922415866846914824244219260231492499493702044084627152764147770531071356423618095428032394208120495426191288131869105566623272913875078128974764587150514495538062067048102093493217224633142366930770234398365410360216671039222607883343592331488889630943898172268602310544301768358977026774106947140753867561181531155572531380604805318025831778010823749408514725059942454910610228435173211082076645058656172858897711442935136081319679858551536499742303510340462875108123400751109635131475070529438308860789325062734444357319591635332686406170207253724403295314909088375469127388080260234429615538578189773389822840529101751060780114835034038532658190410762090431253766979471877134475737888572954258959404041106140423202871061535605083822919551426670710723651844242634497708351006235367121159042585846622592572972613539297436108754913715325116613816396566047645173192362858234220148067421228143473598598103903431883243081571667671394574517211754941012270592297538890401746502248529516062320372114146590352830218999469035030603065039351902693385738703986769956123147462356962182632876407084276421676400417471003080811295767027856003527152295217726538134034075605497505921710694435228532840537057273929282079050948148169795302150669792292445578247617979597315804887276900913492238047499354272632023979413282876698320038159014897522265498001456266568352727235666898590737327802906817341323556465869151102848161984465654670019732353489471470380550009701691933357673329465557445092791339647544013444902306527472138194172566519384015756415956919169080802415612803974743599743031916755820580722117943065257523739016788301119970290985447504954919539366257276289660074913920669559073403809676706232741241395329587413024577832629827369144301754872967173438674174747059726325499047959379301074947322425128359778750431656181664589165537724959140851454880402053986766434083556487280067899264486080252676544542680324959045016889388908324884726578168470200664336763912802068811635008414860290496273716654099460264824889658077763606343331844055759530087141397479351416211008081378625976551285695563672954026463331819152324941435971640917604292766046484703299323091531965199820728332353874068499938495043430205346670961515755402339319756294491460473263834151842502979488386633796009009370175470314174713579002667095572834037242011790967082045711450504250847066436078664955037729610509963512095626073914149940801238624554565074999251340071656113785526871225374859035169644354608345421752172637126846919129487699551158671809262250815977879534303542612162400288635935333202907648369604059868681754630774404700410540484533121420103957582583074104561249434194726563233614816905980227397002737180304492653503264172884937941219975541900484733967667250109228382730048169268666676370052874652533540077240774431528724158130879625986527302082720906662114017409937341923536995652372401055677581385018510683901055486304225138591509968721930313722301358662442434530030043794875480489063630550003079126955279454413300212724016360415862035534045321681035443250925152219564890067403203564548541200349739657010994686883008635162170337790199964261051215242328725055664952337489030191829175412057002997981077791979989284843748959392589820094477932239450016923188556856480334602266204341023152986427103340695614711427991012078420650733013291999168564789497999234558785713708194492987446952093462291185436585626434276852574286954273561285912997166279909062406149809014238327598852814894996222116255596297899602370220041139042226445488025806303774253596770847910717724571119953531794584611778187557070473425445238211282086108923312931386565047837675533960700166589192580857134035121703292970088873331973017362412786192491024060830924753924024019394286407978014038773196228301686704406385649636127813815910567024313346325936622328846638556951679202982923033410035848565885406303069551790166306154259963856060098786290563594169235158093059975399020764882199958170673833578485208035233468213211284681247067935590270150964129593712953431195349025890520539413714508169314540883190440740061594436122044010311147284966208732441215307067527714095958130136252496999520198938357155824482570533590504678434441372341178778499021858842235323491743488315750575088066000856459504996922632005297403462669595946440753291500826937509842392633278042274845754899502075191992843914136721888273045067837290650658307815687217846832662918050483509612142292255125888026891733488782762242418706298837254183436866161248080233502485468388052680622970084903385106935367898926129992893717306671846299653982501994143094371042628398001995964235791031627771329598099142807615457382795467562280135047262236669531366366200252003255080267776054563306992110958269792934305443034785628668323668881854445465389352543930460580119790805462219334837491354831164630227776040777312544122831335234926822604386187194552850907423022991346966555229391294576270243389694661441357055538109714094800599758759866085141350918033627588954629155848955409782993488172102739524030907530120056677096690386445733681425916848016784027207267914196538145873470856290662968239513985153217637132954490943336100274822743630852697654756782515758302902921400427333585440295275895168125411465923144841565170810956492292795318395342948725637580516772224213973608406383207426287326208723675973785639221833693180884140302735282161230025085790310958456754756078567002021193998265503007318600571758344119786329514719355315098313470899604076933339135855735866205182951549807299878803118670287961060758059263383431383810911505662572605409496700802124269667674817910314419805882857124026940246381850668391732534208246924458358567927215105759721435835767318336273481117892027973916153276859547934246942634363591127544165104046519771239761944947419526552674440173326834776233467273239642509882861422569904577940963009497195954711319545714818810725314122001397791599059794548029684444695777864539512762144033093246275995423717813161173292744733179171305648891912057705317510855918786972268766844133655909669761736952721954462391418023911626052021218891709818487330547941232896335917404773042071515213966516835601948431835270097389933485325682385903161557133347974753959742488608115632020950945263034941121476592536079896867121965422865445819386199901921229120062513446002370316668526255859027497246275025145011484195645909045137149536288806003668997846866822650045205804437670914467065024808713690702388858866970600704597486420087170979688333729529899845088613223985500489734122809466243000659512202839295447211743395457006642085604582095290598934965813879244875327726013079687252489631696957666720864589311737044643783847625565454106493979618450549291492346437644423097640309445431316540010021207083525125362167529813838203661559357251610620095364826850665111050032038029667388287335691189725151210223505368354613740473424811625651228997846293116088069402788327507909759184151748066469177222289534966788596944205670383522298418461823081862742943022355777938024231048196368254900385906837874997083133678277318529644936531918061775021383098198928403670118818038688939132090514983978783995071550491018360713383073649049034147515426381798696645683541176500885302526742926550155402503797691664790855787533766567649897769152529143319703032563312205639082349771715278212919553836970453472015349907524138434319082707769639607896627053314102089845836851350736957702989347999660326826643048390140718381198761330347167870246647871873116917608433523244792589792587604006654696697206254690414074756695722005801085998901666990434230453519711652672168501028181046825294171144361676947147173294166921927725436690792310458158826933672629329498711083915712342749656583645962240940569571012454198970580760572435387708853233349834987069921796234330721273537136900762573775100695654259341186427193610727779306312911338138730193870306964239333469682178457216043697141735140791220161044506680953376813921446893527898767908371407805494029861630502904328490959357929819986320245768082913384060668052034433253134393895503999906352439639137177218765652199588592114607588560378659574090865231282232952978987709946889305314141863630792938967500543785735734387891426175691802828334970311552140212405340866953136869661848338089696776694157539734472640649889263178417226327798745845824496780169046779490658844679053884431113315249653557738890634201114465227120614298422058186087001156905151079037355631157190146188605067697698705449103368721080210753391830819081157682158053934039480563445795985913249719985187300749304374480501462081075952314943413503772411790641123016398480760303636077139842192466877207864898061485039821340610170656800767647487304412014442393595753474211676469266627763191577830003054659143348543104662658909563726159513367594339334516775895846947386522297493775849371076246246486411059604249326558568504543238260419457190778717803901954872301828427001956275626854089440139549135185291580587581248270294144411933154514001369595598145765269626817901556720979846875769085911339932830759769608286735752937167248935624055548756063938488481680005956462643639746236795729044731270911226031319036067917186740806866912792070903943929784777566296177498863426267040647511129508484001970003950687075602916670539010103565153356539105130661963665148935029788348030827088750495107776871473019701646945308121482131257163908080830079803623803269754246935843779154216414202073390875124835900604330188323682799828308891557276788216093108278685460254990736370763738760229575169994589273608995138663325136024816599584179904176054773554984263730125245500417860343251855563381215702193231305173211109656834864098817891487175316224056721977149688870242554668137044093222249392439435247221101213861189719176023905425741170665622136462612666764112965307723105273825584222068793771190500354968467259715631417956703702612342915576810250255540101884064585641919523244250153412504098437088221014545981078621720429616263139187514963692091060612031554603520397699206929711719324241576249604474390979341221910649873182983211360850265939687793189756636837850524813724266973599968616787835488530149329776854324842858176768386747601308153651956447630574154520773725223263494606682474741148946759129950409682435285193462798576930770334357309721994503915333546448830621672003338896964753974320262820246011812857112625237949564390428973166690109387992255043483951155173576933657284060580542900013992704298969513619892108536073529689774777518250142121414525638948344656021759674080320410742434005451242154670213727326099290902476049989242099087874548105102454166654481298278150035773928673858064298762283502995259136512589138067005150101207734079377593997073734858583902946524320998892488567671336266529599884785172476287670057631893896731661038129253928066997199001435153622912390615834565558231582246565537580952304240477321389950140798142538387300216475835960659874533040681989259751525587115047201059181996567073436899357568675175140207217604475260508902422295691216181171866107411516556997433801325459030564750085131425291422817485229721966827041230668128907876776241497654822860349446521028938835114792316686619315853250983304334714748836563924407496762556540559882136575996325819703961324329727293605146057002156977814865800159458813912842687686488451254531883146009110931027386187361375910032289566621022521829805431372205350086673498603319705404790891616479034262119129246248464622717964277508170215709636120411463724491816534265899313419317400655915720537163552161227050230746988801944821312860411057721082014844194338824025854840792492050992296791773105429729101211531425347504090518647301803033755256342563389535202566853648223578814019823796396653480509814408485423683722785858938618704849967738875386483030683290865655398264970970511929316877933448950959589347051377453763415980759795485005621031377010504431871582047388015776747988863474654833579995161730273342268741489433163477409898555575580636900510329948321508143600046595259387913029658136016140281570197728450085002131597805555118558481316466692242069233634298309216917357169081807539941676732421059287410880545691230478821480762331402548749205437166105979884016498521309460398251154324284419747708421035848402193855368616961807724072276863812550349854306323088888021842957453927511123297075091239591505991169122230259075869873967940726797616702001619498345455244275380277728371221410514227148385903204544922575731653241861433081742267489607421143813777008432790184362126038916841883317900467908960014413022021754744167707686162536638128331908480190627364868974589906228019600437561171653376063232627751185196269502424515628343132911803325749477284045842416669021045921594934032682708396733185654445351702858326558797073178761142466978338510200048623497672136436793620425130099149900076005142406257814912246916830712216091310252775248012415314881838858723389130377544969912597286931532657863540053921142618256054076600447099644547739636619460028448029517030944610918108103947273927341098491042520016720739410865407696889389385178554787597615977618486663185088512550150421413937030283485144785109977236424719563272108163761301614977846418000643963514313314720087823644369958785632215637873022607371771962911641150479235209063623660712114434118869343381003724323406872487384742963401958892131944199967338342491180102263718985952495969371421997310931578962037669367840318451779232058580627720512517187637140195983356975888961783718707768535925065130007892142145500035739678429968686309850587249216070394590704012941384451456500610946903484114195891956087974259339772689960834483849185137739613766621880459128972423434613599178042228067212703615122948327002346209503835681763886338853503928561790728764601123025823953054601025998772765087146670058469114476878225990296542242779414109536930089270933820212407537609832434087000829312346607049089418606728644483719896965182398037765356778797510903483562057314733412452399291289383789316047940917940890986922052496695701628961578077704506103815754924173595467099743775406204372114162360280173269638000929591463063499658990987471855415297795720780366138820525395507154670354508278724881446286815386746472809759709090428567832871923943846372575895348457041540744193970433108434431167918297552054953294563863030791172768387146386097220468050977492398172277230927778178079543250177267843188970317279380450145498112141971849100797313104425138035031819045290617771116338180899331336717270373773179850630865632721617508942327353204355331001006471767949858182899197732650907714955679168198061641490306965916693318592944779228154104429395425227686526618418456164226788327783615460645987600522061285003193447394599546409651952903194081820694256045529704212313212461902808790533098394142464943597969065184145869651392241014014970014521303028119160063337400436490730728235584150131668268961892236474116879326628119867690719077188173166489263907258876141610102592710093130709966894280423279066755582376881729190260820098267160640897516984819437430848358546912528826164500350869661647730474677577573110389115414918368562823500566926692710428022938246365088955633199393556301080122948414309078975607792118043675183262793120823053612276667754582820160548677702830417043408768912117620372827901609780507804342575982574602710669449176504661626876523345532525798472202347655445280654652972623407672940601152822855683813505061620784198582203896807184671958180543607809630523431876467230687247345227384452201284698778173823189669614961240741893770698156235389847726408324041782251415869527652057188411835327067288569456035481771966089049935891544054607588839241443482154795207090392754204261404227488435989249073106464461264930179138877408358115392491270708702458327740559159685589503319878713196025795770178058674552182438884898480965372833878080468662043644479754258396679675469477112383053171810871010142322591876900266111621948299687686103283473378238796146597875113274725392197194397844737854429831800838566492538506018201839128065618080959740741205838302575081862138472245767046714756253930649423531351757177052131914044888129557192659325042352940014878255037669292918429849380805269128155137013271651044173112747053501014240381177224373734208439572708821710326907308723855130163207507919364223125973709664454927215071695589150024504172209935588344659881824031767092025820295797665815292684677463363927326113010972222876613391743939381117898686660765035416257052749001512928838384424193286362368257139015867561843020157032636589478271463319971057638404479877403032391779507082515310208451006407761684673241366852686389597624012698632894685719837590601246218661039350657475341436961020957648847867053277193913034416761580334942097447008293050455463253004252592559717683689650132471874985932543058576667640449974419425714856529870778337620830991676470629376936879866329728052413665328177678799260789019965472854185213815974972316408969007898531932882310136970857203512980250184899674918302040126550184476157857992832052571324059283346390675169809368121801182217342508497282087002767450235773742305395612437583651249451439912529449857963353540948780801700134374029072577933696310743511377527439168822428889217923699080668044983271926124704527619814755243071368526994272573251745426451858730728191866882311225081381345372675083898121869337201961510126810349089404544648888244153137802929866291970827906478832792407845481328588281820111178252628988458675523575598382779231097397337230201297061789336897148700886392276449528458921832137931455789769808881775479313849449636445897394555336841550239423870688761562498446126398997173305794875673702177417214924620250929743055397202766992787674986042246255805444645061455440969301539730807458275061739909863156036427510362939524191201421124161925352848236466240977867432535454443872000021651577658426703804631817431677412341492999170961682398283261958483052468501740573747096995927651961491938285814576542658678595706761564067130839031490478963371179937798202012044826855161497754335835218466266774053116744241521181378975715833180461762693839108934858194365502425282383411525162752275222612307898643773299832765430045103915541199542015192651946315558846489278725881915778433730506800219521531597213396652979992798117811305909027088194095714751976910522522266628462065596230444639034195760595181110532253120471530818881524693911673928820252911596657938268782816320283288415673958796581772609720090231594022974919085117346726709934071811169276622811400149654818724480558469240582705490584299050858816687826566934425088934240226513649337726575491635196618107138554562500712387754052503195929549901893047452950715465940821090442893418517670261164310612695709927178792953303864716068337644607633215243194482167903700026942272898074290642760639357409619938372551666028501424008414112312887659824750555365955766247015104846258770969031034151059250667439852472765581879244067480660061782248987758647371576477665637975390784543181122763169145283293391390201258785907036055386527230289061471160572496553479665263894255799030321717586692414022269393739578917167396460584179422946164734282418763453275267564378995487327961227451709209415745885826254835807060360150091297159273910952413661900190717761552621526369897221101343023499096963633352085273226119191131351433956568688180186066304690174679095557491268487314239542535341025464678489766514295005291397396305618253741472416097272070507650053995153887295766770010447097578994100227115105773682388854581328344054261974002214521390861660131754816079619314232446696236022397574706042980766025773074539848835151137347356372888865827996778324624654349415464818881959700001327566821038853970138890358012481654436754615061349621015241937424346169804085337929955352950195898401398674600301687126779987302542660992219525197830439143741287988414288030222558780623229019498362084838972582494464757272937311298680485685517094619490949301291895698942267323515504543817242447097505394527211348517737797036860914976851074909170249905847142259299251125100476731532889930697790883534292284475870806000954819789266674730981153680498490153773784278409981448076997999641600051974962248934029247612192350126794972484759875529258918879880742940663047174796578247076634484468860962598351960060448246976959572097876464030746824852703603710067487216321811128907158571955431639879016542630767440139511056611361536437773610264788952178018853136782864270322561485071290136438128361290811836502997175523644570453798501878368098970389332364559814116535919076012894197454219503209458963814987113106557979313270654796781757758486776733179587834254974143163856825140132497485210672571496572071887586368396712597855067147866487240001438884887691495046401877721413490027023898384996591510792727507479549578209584431569678594108562535787481047364590071682560883166294067114048585271886799493224640355238568225384486167095439672128575627335485517022983663964345623267636671948837049432511708340761683563248261835239735318289215043901309083353797242695797816992316659769372349584639710176051798205053661698491502294514456943971951576093409720191581226351250259677953172168384005747723156754083197820485541808908950803448510334477535610563786821226377522107647724823463785805732931071666464193953841999131441830248101802193606245954337709842584732572534587678098647348852265402701717568897131455191681308414875076516632409877909809604855882722241616419224104318456458808679714986381026241010332759940214725336049648194744357258851085285638151258261292385551618625334777666688636711386509038627795041694836424396152778595660581922226137815906422688251320126217827061660053311603966315626154445807313626787213420096088442784766634415846285230291684921924985239737482871763542323898631168996037301694908619603051554838564924290012356672414248648477860916736137241215065796095181848827735348479360876297046778795052747401824914338574245248925036684719378366051837669384715981999779393296625167331141428090045802307519339801746914141489511277324519446101075769922636190771589338913308156050595627991303084497714239391127883288037855565899137689340706180372673094529548537294039416313825666292967533479105376500551916065658251819598624162938243180672639592354062870367263620070738435827787004884329885412838700788005053965671169901070046569569785137280344101241641593567689891425901216163982005463707800761717759332477956580920452667241319122255972828940652088212655798244625077284179887127002144836331067779271502396221918779098884273790600130618738252486518736791617395305363093866187070035313450010340443998771552210233540944317484600823220495373767123358238746508552251643571858306071542261745062545010588607176370653547894551268485399051610822556614978575452152866649793238239238726579465536781471785902523883948876359397215115195461000734012291926545182578796868030885094722895455537080841632684632535560349612369616603690774623399526433112388895369588073314423709983699283386663336299608869586623632892284651698519842583270644970196289975364919327157966543814038683519796709072720216636104356655762186686515684919251808227611383672420335339158606236978202140603696573309286477326026021688556254769303212838419409066478937126506197032437932780033471452110131234979454004559777127883743015648800321304684587525955378618439157450106881603800136160119386722825179574820032171265536730199680887620517009745242241546465796444513878550824030355366224798748379742790135867960269128131104992401653565958292241944502412199352116226479327705944197832632976236027209099750508793218751965203262001209153061386919973882705752381591375114302926509529296375575287953821567989220108549587315252787972776216843720537058576968115364926085055773730603262432941456634230928533019489470729477212949375387136459686690922958501137105506947858358027620780477606090892000281889555802004894235398423668122596322581006857887669214128812863868438275824210783333394294937752622879185016475658937933520392969931663547276913172889265093296773558319385036630895678290653271494612441355051363167829887870961888182614509546218244346066033058815145537898840291873468374652395950247255007849258738431223478723785014471948206436918164916538688850771368511064062980082047726995247121479726194596531161393699574943640396048900555920082203429784360122077410944831051690330890163536984200386908640451627878536807980589327014399492167694171737917542530233491915813903824053436422749681498480144717947409588222162815350921100360577423854188309783390627612336366466219425183742422529090166221608210365444091025186914957952383930123220316817942509437464052230246557993206779484394104737719596823103812658612548180270731478776705154875710799679409415242405843675557400924761788828921489597406116994510644916771851560812939532275157205766101308742909255741654485259382365578517281062236148134841434427245104240569934145767096125113895825033510558369646603617346344229706245332282531727663404322150254443507736821470818853335568933016134438442674166138977415762844946055681628581891850698111131011677345382240293603858187527768453700384775859157236268083184693278837746288315112684115753511593717427813893086829507154286834323342349285584598654953424160041011135794758331392693738221018313692533490263770044648339491222251578091769299752357592545306394344554925353828280349514558193577155721554348537114528791402023413006906508422712869743029838327340372831237479412837069193726407697402104446431638534208626553456816133225324555614259886403085079551508794502627988539939829820682731370926517119586586420859630888403779053243045941436795345677042305303767712206898716008431134504760964503519778758657104884940982047148355105729022293051719926111618867478562355374780716341190976901989323634364295267132751599160620133110408411059196486273724937830073982579322561043491466091296699857481144975004280982810903126249973199162361103655183462048955774946700603680626961976947519776436937473601817536227546356101350944265183161758660719828374488076559487852826103585098002144324449617269286492683318609383164503928013817503767324914974818555385100496802635193974504948115271257459168795066209301007412519242886820898085106715003921104188788070382200114380854069474276507754489442921091715261831148766286166804239945532871273215090729064226510550556628540273105623777640404199108846146327181359272778636928434911170275923820294835305885013164775113428601080007609666549434795819005495583262542936184180680527895361774044188065502592854626635427211737914487062484333377452204027217328542692671925024958150931603180039633524784767867358086119380635493928046544263677420670032357892785883371763522841742260866449060755861961560184986628883661697724909232966049132650711528565827158598231815819599658497890696145041529516038932883420223526894896452803157483479259943051439953620321498792205148983165144226802220398688096439113678202246147622082736364870796684248622189947974207322530275799984946678401051795892457242512222739966421882850402926356215207908567749607518488985564613429617168722721328024147678533359576223080175769831751997808294606434945709205742298512841798565292023843774564473224423739783020691260875310792384141103232212285350583624857380460634927634302627245631896122298086976144118636901712019880822288328611379881658992569140503630913859056479861475304916641187179216705223550491116552797754836660876130173278249245578153441524737332668998315419751327569054659164996624993542409981804126407827194348150201428390304336730284807937496244708062045938183662779855787591870794568700346430987367402496289754509905612123936544959795869529249472791775631403552855727247958948949981307429939055186797847812785625860916562996614742611318987282313140374411159332246517574679269090960947833078074965255700824680144383179835890466929865467506214135090991375557888427624983045180608807522134152086454990871500271064599326429418152447681056152421338146138056110448439778786217636100657348340457245587812783794156125676297445566248339890379161748439835114642454992661013264498573611312905011036603311699967524180837333936493596329432890212952580170085377526756815903947151751041273376036818655658400022587512009989959267509293882228578796660526786902997530342611147320971362632183622181017242847236051166987883833907413730223990592579244394376487473254604053979238783121836991349035978745161516467954828473114203666478646929255813228565120144744681498600947637895187570035524579825207670453448385976650076968960372890768631024672214246543696569468867603118967771477192168757758557852874064272415538706910580487295972764936645566891597375877697415239863430766246812794664573599217018723821946234560024401390158568700762007418032683311240797127502628224444288031795471100518568006577103626671382976418177746480690132269363249391401430448333507349612837412249891366048200837034658242254091066729373451872506769171993239745023446667267658912289771197960767248916382589905174107146260972136483967586899450256317211251013612170148645201364435664986305988640093174839006333916381172754092296249747527265157173330717871497079876787529422627359070808007667107954301438517260023780146936545595564824119869783558326789341830980730111061845371699285052780197722623280747286233938550225680096971866400757329037368052383615953501954454134688819608971896848507058592982928643159585113032233977429835417908963634465432988144633513525607887532649169530745395541426329914464596141967377558397412221348118330072118480740877858104106407765334572144311322317576364886273422382408806888740115964265766734455648438481502637724617022153313454741413258261371458208001614891229630928801955867931760241512093961354404269981554430450055769423333634618878800978294172001457837670419406612635889102051648199637549191269924843555549067681639283112342276700803983281255995203166664590789954298624352789728519861221169780900987276686995129357822905978619787797386710748258634609738626942229124441195924451670593878462974731559591729090605321493634085188470541565824481607624389618450706286874760927937026504825370721391493467987413817331585889567430681457581936942426854121856333680150558542115085842183922262591013136559673684155961165933499453102085700415965223456574001868730752232561766386600873680572527192077989774997008674209571511289067230330831074873425620715160610025915541427485083857167171342265009281621289456012979176564035592220803947331021374584836506227733617871532462110715268307333713956671329396749335808054717428941846282268941654477766995661454787163146991959315241121150701231351353656919491174817325944399757394365521649890610948873315563194892609720556319451407224810281739909857419369045656715480324785419851883703003446191682616428670184738865536509444268691743431913510886920853926911847711784110929047378286083854815000988073276859794026775875032521324108431004353317983344018371018028351029935404078978833948969421661744863962208932048164752244755321601587365463754911179723092043934926591059119395568970929580817173758240807581398806540378566923617462191244832501836184755645629917494195422838600823490250400232173245850782612975383165097643276390003684332878365265041926103142904741674262967975846881998953114856729647376423973529409273006679923870911198586283362743174991802689794359110408750129758612963013225849077522932790124309736102453649420442955605014418334260455183333925127635582785644189018068112540748583268135563270726168061981980309245549039720314823730577726701536958162492700997161664217596611948185781871280715750320211236646204789747814658358505320316593470372072077687058808813993770772659545366865164481796437461726257219313816548248698180657705176537198500088280961293602859251340990989830614832384795310435965143041435011600376650257403844946975914615568188759195537431744009487366641069945105234650162630105463738870114840216579887355483540182970045695767732460873956176909379492698376154245300427669839630619639768801725352209983345677314715156737529088243895155351815039453580267723509906194727544026516724107535181778035581253202141640656485289580111810418401654919780339869998374579658948648816459922275736754086959488246183065773327749471307198119433069171143677144977862194326578878021674273729576553173766025218048005438821784357571202790901763981403549457042568816144062222772544661908878164199071232398648803690438372858053717389778833889127245568259396873066347450096537471271624467273347364901061585050979269269196059054149966682645329654566116721921417032514979333085405175657625470192097752701823866582109694110799308885096269379594136063633682139905559241995243044113962487742533304864482964123663004811020484693781182368318088348344167291470275377755079506925259457965702380261955003763832385560309007787920124278216817516549973094210583012366803071311178350235135327330362249380221437072245308053379573244915384857812459898301995550738347686204839222364210868360601975152377733024185232338013170573097799624437418217264495694639054172484563757097516889862089726866164942269153784998471445487656509651719206092056729892499476021002739149145780334346551726733248599525116121411737086859861959074210928102823946309639606511921652065364279809364310961889007960656797728904052202560462648233959753318243270844712301980500747996610605646292879107483582336456414733822057946597665004451559249310196499594238406539563655253356541966425466463970816433792195743647467560879720849486670718883079484847542130823956863114324882958564793621754636002788882588050098571150164978145891260415540470762642066921742833379126491321800416183923647983795124143219497908796314448698305558782991365492993841444854282559937987209365939765206627124344134427059461814267518882946704216373400819876749395442105432163421938450071029152452436199199188421434186803567464739824794173731495399424163312191116710923451595625205490347650402690199386634244015203300061763666855952953778982748377274620314758178600965544438488681549816163959984715486976892911068069337677007904602812685769509145313779089683755745521456598089499847468676525912238579634340320973315809126279185730685283250077627254121270748284174276391163615045672807329334775196625141583368949508915033075524134430405013294265895244264566963082010425354225160189628669620356885156449048570098432492553988295142730159533428124813097299807669744401585300913829944830473889651505655303545850452593270377296645881329708258598051222800372219632629968458344137322851759722920670523451078260077197557442409590684013957562164830419573705564017179040105881799566779906511033912159605148624314447645457773215833080224067956588930710803428539953283098717896278973137942434873003784980067714289950383947628913472559899872860056996441917958363267339667434836569192362643194949706831268746193861750380784207059187256742240945476977701301453019657839754507157927676850172997824303925910781291476003212463147409354227025062139558237067011757811513211986399309206977018501773905304200874129365049526464271165232434628236649013795785277240252691360496207399534218449213577593317086190459599019798461277992441742677350329760729882352960117511324434439759172933437311534951029033156796134139222363484792797261030578882465646673917506512251181845534951663006769404579913778147588418910921780270350149260512617540501091636784774369001948324685179337278298659423957091522650903141649016902661878521223509493864579491162821714890060881561288738784402310325117503984817301152976230225211191737401430646430505043754446954278624959558643741615198779272674184457184394045181799166943392197657439194123774496988054314081028058047735328240488607712010822794875739681148593914818396936241227056253707697123538727898953654699729865934814046426947383038832576002729330219143868777384258530115101616385267424591287833018318106296399733111744649702414201392459667091418301813049376971520673860827784844571186408723286338692479156641043408945675161007383864984634976829244169201472665535897226510207714884081533349761767534582782770613791690992162373350135956582071556232225926411182685246431502112308167820724223339453306730775611894169611520571879258486119431897174737027483188503033687048055156995821380510969059682395377059132105942539106531545453270021506878438465345619458844822937288719735001758295128859157764837205745605179019749260374703164928626213007958708700898675399076023535581105864376856914971199410080813572201203631532004428025763893762344349231913669598481626402340882393299032707812671468364561238912579243831870808586728173126580380773885165278039979513928662337336543202522889838337627282774606719023355702791763137418041289821523501416240083156600787451368460478082175243313784761560629862584087992080156103660739214842150464370146110810115482256670932963438656786122812549212049072698165701983461052304680386602054859220352606262716420612842110919034089042158705522793932657454373144395109627255637219063176401048904073064243362407925234382874999270811901747948729749506953642541015731151106767701615401803500735220350161775720415984630929586999650608892834219400120878614170455803335974590778061102966082009725983717413799704116706274810175684432844962120144239118619324385889761230227164270719346611621487010342897026535955021039771802901394083283498870524239005199569092230955479354668468728460870775374882101253583279503650890014956747113195138681306373898515476089374717476482441885013692696198115395910971417235208536881705120653138164413890581439648747571363784711543737317450384649519965432824947735041401303889434294168940693191890773131142175668829633653450661493202419019982494583753282655475939023699988538228535512054653850162973195438537091063131830115995621829616982966335362793243414608992831540502948141701502254847237051550905033475756717962814652366290488966885390689155956600470897921917393052298961366748008887137369019894746247576806006667079269036746758500873582843579452652242846381635693942269536323856277563570321935323656862027666318614041147697908871908276262282077205198197132732419890150897926876075883316417846275073222603621160670231484036089674047441719235067547534191787437306465904516687654344622216566886409203174177242193359654923012091221073818144195161262277353008867421749017692893525356628544173235647494956634898876377900165929989170131649358784212695022296933186959789530781905579255026486687511642036213707458578019044927680263810867929005934798943814688166219402064240286931835653504018357665957233420673553038341413162490779604506288146457905453444014320019251523668318827248636438570096851064185273137259941079826566410423907831575270675926804130950871121898438125741312127357172541617580410081360760264722512304577779646088319925406664342589889836531843402570121495377811049958664692352827881483709692948023329045425002310667064223730576891714067838807499644742367268523711918949456724796953581829694953833916021244451516226612558795829846496594551230550701677963112838256772652772164271612741301203155242182329876878317027022515866971225280830561879384839903918424495463639402670998883583858242116348195442926068559061958831165015253168573414878345864895775652762796545045708859994632271435395216653334199397031421175496559877409510453934388022090171490543041744184959849323690498164120462258002317313703098911731116476234216411645825992961651788190591529957995594110457244277359121050805043509208632323216777949941043711925668336084198095745731908064225449560737410089037781921670285770328841267497525028967829415732546654996907233319368400654909934018507191896016321005047984423431486461444801729371286069752034159377636094330117782491530491608967920646372756105936137250545527305460440035198020931973143511216335881452524886457475407477687081936196428825291596085668910858973851960400262283651508366793597156774222369825768551101165036310496401585954326906631820040548887049214367996495339575792612939403510981296312568130362024708545444557199592460385890154406690581193602622336722824429689042793523511648013894563750847610178614194878595389628737061710992284226711440767129150512991462632537519063094318377934886436301937314677715087441240247181250939240824977299912576472913696629093216875055872440153391255430944250265880997192462181973020385515688462247128797653523915893219849953555661678686814966766827477819945023904372619732661629267357039906279978868051138915498350339081962176469746626668354507541307817789854378612844772714892608167473965523566151298825744990692923778042095651927074442119239282697007651587453835838534182470245076844339906810043760130616774798825211973861237904332690601816878710453275219250858563064403158681542703397845543043686003768169634154025742297973000319989467354926339884920981171086230324945366571899313658199830052995474633712804663485425803786850569619104512468581077646205560973439060899499927487561465448052338523987769089491564065574875911162223122176857338513893296666569293946807043474289729871603029378591784031243061213897033101970456084233786696277941225129235488114052214471331189789257294302487691830031995559991523981549839140770140350415369442046963689607936622358727968769437268428679322853481861952378012941739311303476123416051362617714984421964749350873774906252951844934885972172471275948600236777111627375416282420494812710296777508187409506451536723735569878383924112450798476243421174213216089546774206644431821499130650988476551153223703299263721055768421137905790415420068247945344354117406507820997138750446313095019295028710350078973039812100432528088360001395546372194228839121454896341544473398616346917869675788176883675329117894029743717122140393549682227810257325934929613143915098427798888093248746718284008333645111043611013551594372633738603386740502399029064543234463084947018694928499901353225773656046945330052418590648078591680629150244713425543922871456869880281964997173724177195352256365400882093086778378444126722974455169301074239982765772607621601626275752585068265307917177222702838651717552239173171723937290143724786169943059314373477615295305800698666139234548164502591239363701184271097269105020472691374595395081295647406560239728843674827547245978778177301321891442225266318536052724319619102657919840163404067527966141229496243854394515666185421452061210792430421868850489142494670921064521415419069043598331174810459613912343812385694549878076921206958357583343662130936020502070462428633152972828584774389264236670652162624686297033902075132304851033419544747752699199348631201621181476323064183137983617778689209590453330442961771070874008395914428121702906467775012848668612512094227640235791406537283890614928588933263055510451785549778440644701129245421007717178912907964634133535169063647408889481982928621197945781271525195175478827823306634748158820024200652449675197597746155067219221441320505085467873436971450954812878323394553081398461322049924689350037821324487248080395135235236640745028470868657088705306836554257878883369006177598699757791966868208523088965703321755152916634625938212053537672833701653560854537811471990316992795483713896784195270014610442626985523775049450921016359915510931779045045803886865597746224556204989311721451332296510209915509954186407699202332196546562410737419609664714131551337785173201744298804784072957999921155022392534666728996824789755418584280679053984857635351790343906266332162811716822613097742949015411214230041621213572886138621214767339054491179881386892864694184653530094797488379730482971766793398989312822608888540389225409435688452754762677125447497946077299415548949857252736269065260357981962314247786878513702434484991661658749098415506004043359479544863001222544572289057563582810803812066945391886213147297283332378044020927987455734944011421837137076715313503290701340254627257957431817487025324692468638537863753323162159416300202625090345227910815044747915007947139700479145084768177771679741346805144869125111472292683346833126267492750331350525283659051950779267778965041298861222623130936378000588366430859631927048264632987750292750886250173542386191660727209333348812612935616189134290155333153751977228969530188578111989082333704212495224892669630185044885581640862984293403859853844151562791032351066731089703640253096135098912058738134099438375536215980629873974569752265461575549968507902559501660964568725505343807862699230374771213010717227677719054030617053026799359222746618190788810024409265750502139081446698906868962133108961565388034886587402908532536829131214601477561197832723073929768754429492417122703338167879374491818740728549551043349185477191576302142959700257349987943017941043691222370578203264482161839961974604231157153112140789616648677565434472608002929644982751760682151153317829943105363403032382018054365262222217873451944473489241957405012580315551430014300319962156910421841127847881639686713863116939008672459118965505989463973659543465550330240790960705621101789299777132950848683009137174247541530040516378446952301393239492069219325400691561927583794031627375170702973647822861111674967872886719732134079116252724174403984458505643544011442336208131775802135326673690207858828594957231802984102231903237601973994311706136845995917301575943622362860989969497738925402194345565338438234547991412991133233338817912278406176830684201672989717215423316388381789455597889536242173918256802519078622383690846991539115353072894452362016196731052858648595307991969317301643760974458492009589707919294440242535182395575588882948917949439066739044617031882584999151386822962795757075351058514904195426934896381370626674501867037511477778051376549508978902725126543921452186227463196846536496269753474440070112875817744211348426235182160451348164834904233142732424885376257990531260201640888201726846612201442967196451473549173378224083353332840855575715415474353124424066401662732916942056889920637407488104340240345522298742331221436728542215532753478360994179122533869803717975712913019328309128797495359491209913786168206259044748415955513197849880301023111790680282557351258947977813359914119551339823989542820050760961134608999200394077567846660698343877901586072138331421241223462292309762590822690438786183637270769208014157520266547214976100310782305760797990538067353459090118139154189615954368428729192862168598279068735527828000954738135987034462261188598558376632008828730972168471059383955682138618928642133972052945249064216506392428229172823726892034248470810519918301048838673743621483916119402465280420664510119749402960153587183710080496946186930422094276546414611043279662110007898487082170139009139496872462757378338065251345254344329937787392519459283315777413877707503918274950296527464984281876298969505170108629291243636930462451136063318638474877775542032078116642894648365583502791848839551452039253875632539298882630769161530110785977680450649676745942266624564610994924023679840906955965784179717333161878883336909134056072616018511458641867717873717126700729454640897874778626166219118051115574042797204401622927251883848328437353160792568243478618485115305113928102762838073782852055567834182298590833559161571056965160687289457780365187230383639908125242807903444600771893240137915660227694797650188963501341398013614066836970984980656540523468194751807612859267678619497940645585139210146184532832556906599061775031791065316944937535976583694332948455544460155682785633325159806405206404886377658651645766791680559523170807165759210554072970123865195039798409896925136460658322273872318415821309982519703628457225123236143684087229921213030059251196403224156275953311175696326164915077796374126760520569260178011862344836162013290363141234616119672858483615192247840178544490812592424189122637230874077205399709560930795472025238187436624816121294642907256724100977677984299724889469401747246213850171562049092207606683049265354169216002734468415308118029150970485803545454390218959834585945145641991332233436551178994038009308479208274203185884347692382682595021872404903802388116336867613021422805673218671175227635392247628369993165881825698772456257741351051520816569729073653723803942053733729988086278748508136041660250118046020836318724125697373735451044820766188234004079547609980021090131290852285489416831098328542314286046707138406008047818694329939939684185623985771185729821418265796750000303641007995684190946974269724004553707465277107893091400357616977720951615427492581941930383849745166692529232708577670340442624725665414456630484718879322185363423728766893945040361832084956230910852564685674091419807217143617603809493078158104907779532829431056124605204800947669879792040588386150079748410038224463716606860664923240396131022232139057745326022898688996074000958260687381682799026392225698273048024142757425026856343962636525645614353489396671353218186442991563185231676029766229560522529790990388102566814624716112874646297026523410337806909530190642839396707755975929269172988305857207394955165529197587998339819947473984512842843552225388716824816029514842429348310018955739137641660336095233230764576855610310558102695869214154459254719416316195312309976926871570191679723390050093000832438114955012641082443518949346928528910305278271653199893258581129831517364980712567181834467090768948756043203609586742069568967880384192558012707909147580600101911473718995717354850269952617656730643800532440047218101597646311120694247540849857453229829229879346749728953428404638569989012220015874639381047159995900961204267133679972484340255441539215166557369468343720794864473186684418013237910079555022988148355217038157157247544412703611750006997215817814753161150465756091014156270696661969566944906203958995251210152911913945123976240152481943459280464012038338185091741115529737115883524569178468396405578777339807770418244116058587692490567342039184662383481572472597084344863598499689847105031864225400547047592344896757493428495165845043315747583465661858814233839660733181281309644471557605411485995949523193823480864081148007281189603798562444946321336847868869264512678993394611432729365241926638045494439046131705842373142987662314917559379106961398900711855766928940948552274388816780105514662965758153983889026449199015438075203218665964750529292688335640784839441640244052605195480172622711309683664592464137952627179453892361152805214063116255504903307528783700318009984247086020333934729122628032055179629308872887612627089756116539625598330322706891134837133469107240992036379982071097911019524447006602351083867162065488262890866473114882873427577877089033734426900633765616897655208710942699977418415765113062460922279800697824602987160731643709553394568914507595477693974304931214154113551592833272386959388254232853229750546238310990859350548653034568025158402966249307421343178908207523481017390693417182248075714346178884490953696832686003041421121947427542807866194492581022335602849007122697671505000737476194479904826924989319788542798224644150056046738771283909820176367364022607485830284698046233786988129262430641473119856815164879000203141768455723105939532815480304793747558233983038434636113787419084694243931446194671278503042905113601363642317638189722087858779160611084490233350323679198250315835880500723448785738822519301660744058457987823534803662828113725462101049908353052633260825157486155090232602246710875571201034832555191305385370676456194495837275189293142981208391293051715871034547532723736099783606659032893504075772850761894232290418297320888480967591548771239383989172079917241155306483127759484315584511722160171945138964661738034056252970521820272736972883887485122327788762128988658892554448705095221019587790004959717718670985988204894760071847638420303070529793325025606254444812724344967952885865640380377020420784746177192220008262757961434365073210836371155422513931138188121476726531962405699254817155898387167446243190789867083181255557084447241627564079781883615086716245832483538797870224302964223109749984010972207410433278247740033170920339819759438970054285007982344981993601450076743635695941816010586279397585795231021656731762293716109044211527716361214518192886525450936252874677575622638994414411258349755835554768208325445667166147855801743319596457780088231571961407350798889788361802655124085620588548583360792967809525470334340989194290234946917753874295501210285974917480907317277261754091604989772973761981487001844469187255511428791605637595193371194867183603693769300373160699928405745041180740899760293968515119834537856120880910641105597622514257769827008163738747840872850095442271448992632989351356847134738111848914274671933121643395066389435279699181405575312111110411627025661137183150703965040362778717898508638858071576412430114178900758608947960334691867954136062738677518345601757926205178692926099265921107229407156811064356528233315230268791391232437655911532093197338290588432226764013338036894348203070351660152048383705035789768107188179520894244249476009353014981003631542331562856737456315186367996290131349855729109529665372476559230088946050830177277726365259416547917769460422049725938529527473961128333665498991481719437286009475388799421630477653681150844235859871616623433574509806751086621749728579642567682196674502426215524253541108983829516615206388415023674358382474143575148028704736390015075977863186582703327866145940746518117405105365160926400096868387258817611829562859048327229991730311094448701769376574887732922045208254524970633948556461414288009943002991911287869245805811263941325680483442048755911373490678071618144442743952255382525442698013265125267205265571151351115952001258850207584817766625288559784204928359593598314034125747058451437049671369865100898914641081557108854809469635256759899719337050315731775157283511332646487110345593916988574938609823442792372849635259016618116097207455905340881450789100637984831375614685199861557058849709139075455479799528717346401980479604475991841076440145114239489267610485344873321739105262461376177488460195154652020997029378520666574255598830924333195971995847430166380518318839494030031861075111387810232320653954214848237833339782516675548045940098947437967964457288097105660232957108900178710045971409819809560313924858034594008386456077609908818056237806413001037537238642880895597354270153683453215351548223005218678356327140879175226952958887130296912574813176047532957784903042923158509232606602239875692566974114279283666336756805552425975364461156976427738642721298383213157230211613292857452601506839838776099890356261084034841104435624654226289355655559491227158486328336241227322886376244462826908006679156895062722920486189584836876032252484874451717377406609625325675822751486886083873998560729868112820504651286262580108571177189371349587968010715963140738728478598103492035391170047430112624833554983426268805696763385625498850064662912415381370587183889952999143854713767689190622069365340141195986911180061143114139406442521216386822947918561221105050825957762246818599028886545158378816147635977291898023095621720374835181521022944201423609520624218976349530070297118550896847628967716666160531689329033640404950786937625431117647321548451776533401767106457529438769793341047418779151430299163280171088194988830285545338893711801918446458000599846672246595624274467695012919291431126504609781405210804627506283931514553888630869868724429874283582497229659246108829200049679532996854765118111974625125283406061705276999657699350274687905296203051055765528207959920056176248315176422622230540240346334084651612020309943726240605131020182457771865045155082341719527944651275737503597362069663216626774745065500047773077773719968850150123642898218176380978353898640190352652128237946709866822352479162578608203265150244677145163155310881879385767620297320405874463174622896853468767753263314393419744712225571763133181436619363781855353431983246093328650488220239234588565500541156204250525083347054710690803387024798350561069528872648868165782742674594693846237150983868690191254568568114476126871594270873240091121824149530531136205205969130716628124454083087426753299242026436305622554056754611001803347366821080373703014639642230385826682195463634059240956056522474001217525895781294506169627764569650746375824992459077465325909832760895944574223184337064264594710497923276990128773038140208031040776466793721810484171473375308050775948661816811272381196212298994318162574762824086579119734187136035516278890754702401261297370804388868543685196755453054938255820239756992757007674647194748794585908298152845997986829352201682510001510215570891904818256810218119092163666499371466376203995529694479605481438975451759027717652662156030481528779668181069360014539160902689236678152224739811182499259270889127937434709862593720562988539221875527997965198673966050483743541269968493422399642213721886796677419366113699703783443822448145671442083650350194547508928797731795629772069442295075715966363163523987008764718807281352986035844593487457358931930602135284160516082158185961465415943396228571732320062113183753325797507574255442301959354213971819693235475186249787232040570441507896077659369893650377028424926374953754089704444580643944185704728415710295153002354718223211752929093053752972432832743511449542292017601415007250950621671482832878150758864385527204376216246148761255505857815503646458817384616997237437237321989846363197042328080484367027025570839068979029994321449026376409135955481947664463594816313764131818182657384273705028419336815801863142712031723732163017738646576858072032361515000217687184326220834665700156285520382773705844493502105856780879346647726682571545550432754321286627216993171976946602105844392800779464403675448276773118384975910605962219367605467742032864582897079802991656375187028310463532688268984251428698483063181320710809987698738841011710980418376620296768740223913773147628866773405815236494178125147377169862287029429901211505666839541721418392563656562638592472142801096908796717473063069674330346312852431585171529897653723508050469379311504824767309186901049511117117852654175536294279584299184978463911781700955063502593442406752186938772624216086966661009058729695253392430837092092974630226769506066525338935508745491645645705135596080507197049323333119643451390062005053179268624926319591275882087201015408029047724628068307598050231782613833489509605499951016447643254141804715305073266163768267914387192684865037412977789630667219363784422115866052583579719614721914575210240408497155523514935686942519002225278550000013015272896479826570221695773548354153700559604075866071618809171918774627945117889835744321743341887294528234668509124070710725316292212227781867250057216921343434494653404859235546171183306864547678653149804417751518665435052903227239297226305522792018039782539468299939643237597948916101696897312056165946451699469165725556608008074350612002324732651839950528957446328148335138975011406234421388135177646703542867384766159796675508309676340616342231468518467164677954891990557801884332541144118865002879615307371069188972852764084032074615383364225569696240979165422687285493090506615554387352280291566163957007175449846281157461325143524174406286989118152232079579142854378874071260505315281116543004275509677514071140236314401471395568328481174504747411077616249942036773543148924086071454296844535863676126744224368658382859388557573563820622241610351056135266495752806764215268339466743935864857759462503897921398247173646250453758578169020682994584648962323521579415799645416307516168748861300206730592708176010253074123153476811226088866526696020465420181682945831881047793777627600326137764681766739516899935201833979512372451166572395301283771832650108212771031088506368511733551200499657429513916334485326717501546449139565919687858379958052376262214404148750930072911293408870010425961021266660744683800940873765454786025086425471752142341122326028765039196399811478476030223866202125882605959644635487727325882136128498883508833499107282118877969963802431744040130281352990690714984570322006213711915029878893809894396257784562916504907520530984821985987205786188850612075270414427609504440747005223512808382314364456535601776010788898421644374453590878740790154891517761648117285107315558702816905790127902360447267227690946253569440287514538804242530707155273174660420356614479861784208170080979209654630805235738763279563905521393201435863384650558910528662678807617843654724642012894087740171132643307181850247922399193275558940854696976991574141175941912403411441340713086525276300216931775775928714985665063710919795420601517148636790314263271775036277201492687188099447746284058541798045578525650770161657406890769222864977161273576136676730239549842297152192989677470018678638834288382638004946267692543945277534901193890690577667799422533007351263090417797154066839124279492978311076326323645314766531420300107130342574208460578013872479534890279217812766639380672516919790756408330192103194481797141223554402389951775483286876019879888456188310127523424193382264645968036985522768411610721353278949968276933177533044165222298416159358221893032453626973736065111198220404932411096660111020341675683785250583523068213092777786559476612141487489403595665251368469440998510223119247232627122682870050908436831001009761557647535924439850524444969658528824857398417315310147499597122242353654965695203494303880733783865208120400897064494279300090282079179537589488060785580128435735501878077803118578914216167159219790322016916247883216993111957161739341844769210050697153397793736201416685576074955062637428060349564839212425763534185144873114583962235028117747132032193177962385018440461648141684777713235579212180926883298370821327198355864608184287233773356180715556019981989071669339979488325236119913775470587530760870386466178499049805374404735351496268159347692673550733532450305265744743000932028032750679314796011172960720632058170666596875081793388621801588852281386661528373072692946393873203132737586908413982798970375835348876004838946047019080705379193635781401919999654661146322617619947893116648416583154910031558202805800938402037189063382222530449319229652940374301532921436117053239166336764550482369321042781669078665634012084429338191089735322750309032854353414521196775448263651198048146147405917353653482232416396349976760353326533332672089701815601995559504269030384821508341933929117274437903208962179608074623758402298898424894093679777371045376652650163800660949721966000510941490099894003614191411310820647439066128362111329689506180675355204929449253742575292314349491644597344720063799817321997698085048069843366298927189125718064480487957384710889842170531482270738770264457168855935700436970123608249707846803420317226081570240731229423704425565682923581428525721209097919496199235742893468307734298115676550696146245799725428782950006738965610225231955189046057941575528028965116298951312611953737785364127596645046282009988534866792816561012555623079483279455502475574964985029139149102307693103585937365393089457531178061297901431598699291526851799728036995137747021739666156587203781985730006627208977310766372735534761206966553416346288767815247591390198200855185712328245223679270942884919522582545879883561440566527161851220165210079872085031075525865040791108742287897666123615736911640952249154823367112996545868673012607892835093538071548015000414028685652344011343301938045008515731107775319754054520472448861066909056432349563148214876162874907054431301753938628787726460887142813599991166045493318579653386253835989257873410076121034162839844531740199595830329234714260866604755113422818631478298568498011808193284665623377612692740549794255521263162329886996779408127309608077888544695733461398867396094217272848692596629678023945726896922780496192577445988636159841150968174020767380778865539965610389687505935727684635304889267651117045854229509470026967825423872398862874251871012003271209156657143462570340253436368552497578072829413246393061154069554787548150715369899213457029509895851072502861049933911018329950839664012841901526221466572762046790643563173589378379052662063809212124255874680917205243010066330346681417520166867506125264176499169640810650041863327314061405926313366350928159370444864554484688317053312447401946120216076886108456293654080333788866086170300417132961589635545630872079302111758154900550887215439891580607813166322489839522829599098803458461152745020146080918224605388149534606588123013281958825542749768713943681256184415156562798732823569195002549004437778671427470737451295381088860230243084417092070350977820659067685681959371219432669376200276377364828165677267764913775089684090872549329677288951638649442682012885564817050412351289541906680352863984353185168955756459549227182089311901168696280958144729377952183783096718079357618195517042830412111704967953052484909493637308592007600715466028160380714629733107727632850065592856472331974400215988984872797537478107031814384983820101308554549323341237267205460129800551536801468620772489016420911427569635930824413197644734357447199197825484137337541103639936166963817864364632545696206339396037489665432043571903229014359682271096022345329333993473734024058357854014625730586170404010319457689956640273809496618820551820292108919561238752002459687653720085597975131360571480129505205001843322633059249911519237169289101537033846288965976621837480185479310713642836706132784621256071619913882204717041940799123784942855790817067425304384153343792140819017437303772886160545012123851765955601935101934827558602158059230107240473805266692067614627872928735262113214624601463720352763965176085315440535316839289573289298929029710389598219758605941344905492132297187186305278169916211769627791408454590059937891277489598241116482668651996586912057110065961988516546518020290944797938143584959696953187098354688227105254793676908168574089760931072705579336644656119888185020106462673550253148971497351753824195957293594928015989767652631970888325418272207076069784920101616317013552679291833422082555214215444699099903800272889537490571575172821997551341522685366881069247594556276239614750092837830375926257104521181418974082415510009570717126407324346972484176546011319711808353334706048686278187198996041422933222597314373458643133488162168679287829254687859826141899278595061385218647402689024598585664659977225002168613987889297973037869657188266923178989969409373187183852010557982144982488784347792720868630806168985469856595341279002274256889697269545581089704282926990664296297621873410867452961106544162733264117548317171737346518148940004833991047040512188923350749702083752518548849865483196595802721378151838084224461544066359384767775422982175784198348635634038296704533120044069427224743983133379299056183409163855800384533426441841474933664156180817640585725187657625678804596439499568925484616651686402336755021286362724391356252813192194328585579949269935106933350869363242913579508543094320485129225971902087719410520698007546175881946303302836165124967831778130703090288854616804789091958289992132302840449572243984673916254400620656767331323970099951785229030194426894286931437698841895916369902713147045043991292931120326462173304725133750835937116645463604373981184906420657630792885267384460714542455403897942294140475859785959074866121211154862387381185317739942901528952557375822039601638631542033770915577251311804395093523862597584968341438227067002103211407086600615371799719712464284300788556419749269540935767428227187223418879889386591809544875225438296453583064248256771730333569418575257990905988630366487232213572566422278059319519857235884248333415814925043336679988422550435668657990598510565346164714263746794688532938601271815400653487179114549442573258702220534459401755465111852680607798155279757551379128946214637162471986805730129569262621185296090197519927510249150431474502933958127899813894764825821347002817666057619400956252711128142992335882612028961512708375610553100017328276648264547557927430433016617438447184994492378417077639407321193410085646773179132709172232979933313737158966261606996495380263901326757585757335922230642953195673746448216146738476765568147033365712408058369987376920363705593482728723110779427898815453578542216930451986574328342419060567096964197796162237295478328868303273220174479819478392666894791192267609008108704973884550627927612665981294388159114265829703304644979665511969314329147694480548695290860715061742879612089305141419347876416178509862336971400569751148759483471012915986288590744526861053438744337473221842845588754801930285742537082685747192552181717072681574872074542615654892974535794167473112265845292710117504887323103282728219872163861600270947302427324378203410608938525922300694979482219174945161531256944975689094281253838459897843508234320531472872315569223068106694263668064301656862860108348093415644014108254410986941643641133291698219023837224992574447074228092573087829415808911544786282353611903421639603470543314067576888042794315041274604028800993740592951374787377096190021653959083096881353854232447508890038092652906685843410669185166967225813341491698581336925093420012855308704990468994812981977194940304567654344692244806636128704029872432499783318096040079555437733737661547603857069106151944388927048441245191961354412297778593048281740305255076735742550699246841115418392238411712448925367992529758338609729931917173592630928523453498038317994492934124049995747681001996583050553915531379002620097381133130418702063404785316014855293323405008091836611627908556751915481335185215708456721837416319439258371454062035533892116443486083909961452312278070536175769132624913671798530143983508682837658746188054551125974955831048793730520991857595635699227147655583444368929069716897538394101623617355504070277196055730421229610118539948418127784036721320863719893204818008327793833132840537655479753912344402252290773416396347217946433902575567160573988147157388849536644033648854231020086407802375878866014993599993924365528591188883864327877072796870579420818314910847328811090177273293556878093702832644979922506779633042383253300796800690945057579495048805227767672222070246590619555391102534673184930711511077015293484568201762275403219962764139636886570710330948651457205563197371555928985421813583901098061132504901954630977366834857421635791398873663821381580825536122301632720476983497999921817054923515914934052274239296113747061977550091610551170195836118861263137683331968235481377885244827981163096079663133177972054006447863495635032682397206850329116384005345399682804505715825455242098478989761564326026723057268978503723788935768531873899433103278775836353077501756550686193552763093239998579094140400576786872224471222457466995330100673918783462668449818133863689200754343587576462584843540634941083862195829133931008812323453846607614330991844999858062766758869224662611930869640650160831030163279582573931700134783381038152373639333292178115253612388407764223537250755407909235189599864307945988747469838215792823313881883294209679575474202683569936722476735675993584133137009275139761837246933396325743878917633568270173043929225095092780670990437932364016923289499206945683076869483083200667746945993226119542399948346238244753174370121100981870908395380607764196199812705663484463746279730756063106163909134830360360956448906516114259430782336847396621480703697009291201688006301143987802849521065528139894465685923709091586299846581364678935077947099654337803972410509518398442269141475638644652791432073852679938917790937948104412202425884662882698798548081585493304479398616746015991899798569130702280547150677117982176876097329656283944355649027423671984615936084804702450246777620014781049541864713824210749097826975255153378320706327672941523484409229876806121130016121171286874745667252247623003535617853128634555286740849141308744316838652441936799595489365936458603405029479741179026549331746163238543439223992013156470727182315269267525402217046562121140993726904165034947103222976369899179634257797423264630673017100906969458093693383148363454324718747548731292791224632241909532901247789804191954647958017242583135864644592889593538190924644203941163335578638541316274168725189762690048684805932590013047501863467802523964057675465065184494269213273439522238463994242902626211284301444058247788857689033506351527041083332136442671090884256197412857790113799713383378532286859332861977431980424653451090501837311364646351960963667007626862555780548406547472873432352986066570855056863691030922244526254845783959505735241421964329879900041503126232098375663193655234549800041126096855725111592316594889882424413782264923311252891827240733751722818560057282256308379211796102156447257703261366228457790840629385444856134398120779589011749822420960115093030108834389715989345016071500613232922148416825285449721470279537820149131998944244453482438925228238585453489836147950593622768940341858785592397128363981032782095068824061079745440851972013672062190455864624026667636247364049606796794651000777146539219129032074092797648212730084051251299038864040479931868818573510389152387876507261350318291214538252593545924531855646665559938513127342052599423579494794739382126337662484716920648050478492702598762825914817170004096053401756859632883311973049811043540421590724335348774184632481214209029917960939413106338558026976798752498949168567329604544109809253542366326716304412192879486522349594266457675415068667559327228457271102442277043440205176192492666738638794029848718635684147878635433974999206040048391460751955829772195214486511782677051591113590989944422872100401771913283630392380946797829168565132264288654088357941172812839239184100588748556226268087717687353851524959039367285327877226507833444549783982727101133027685782498773465801187251530548154609279614904371440093298098925832906513997513244376933842610082608504890353933504520821199142797908397468625867386044108280143652303995037674489700483720175025994339470986699966294603047652676450716245487513128661493850821304349538515407608240627311602776348281379416706510675969921020242286854459201877229546985541338668287961542279275676749616634273994127220870270295401606044222152434013713899152298507252248576632807025475316962841148370263775622281588246785390908174207412370586279704786668205585219029647734016912919604367668101162705937284279427037476950195468688369031383951510276869453638969627474509452335942805822957284353877579588177237066699300415704494905468903984446657000356518429423719071593708609958535747374647038317354718509512732180521489929405997635676684054029592728359646906831921113490341345971945971932124436347563569318937852323631146762182125693806395399933175072166515055541143549470462666100430894745128703177143752313303259044093151769307039937849754005796941888129575522856442174926302840060254297046567881939164027745944713980460393004396746300519236836174172255630061094000051349635518361702589345208547268946112582797997474057730974489017207752422884125004897587722792397098917992601463052436926753376517527193410998069665561250868057268866393292124402299429660098972789154729819703948602367297467656593464231068516182094518358864508750557312182162365338546244962533020700865639182710428340829495253958241631152805178847321679861518037994633210666965748025282201197104558623906709308565509651638848064821912691491994170740104412942915878609627581752843366908127108120044337472478698845205412633279358715368253068422041748393570373300787583601212381831671237137742075963416416743527654258105573504323199368942964780389661378382285873890737693813268920269406929851080889917940596911723189924109625699882601790129846468420232276198675931252307113244233412281495133638995561411639904758455701697297248551403524895679424247554136198143839384642453300329660689269435053265683126365617570177801185120244753920913203647788768243695120425716230384049704905816487070029594591989290904720290667452637107586175732158024817678932902487885381604522971608942915612204651975251022458949829757185898180417330436917884826616913371652343638964773004913174251504038149463671501689319106881945477100744507378425591452781366910752832167258786244545038485904701669001329450740633713744950663281044216133305224180979324330259184007644036145154655167984383749479310335748833971999360811725678326420115079919992071410672868983453354268534365483405187719260873493613325235582025877015887095777030784322927881257676163265763536853107753339565422154525423258509424820128383714515432520788335659121569838634550554319138379211404591595753531206503515363116382071163177461752234889109147948833448269300723160736530825318591293586492342956529880205806459201537311654070786467074484151093373914454559049506037561295844315114275637537145273212578509328251521849678530232096354285979222776208112764200322426200919596245545604568897989914482685457940186181777162213716891293093284803663859684743128199256116869120593062271581679161884992302269319720265512033627549227055805011699154797484433571936927739982559004131254821655048040086923173835122429632953873066802319070955099846437177420657737001996803504660121454879189730536451416481434896323783808058545968008155280924867671210261156109834913506373276547273118366950735979199895465275787563402903268651382097351672694156572570577366896733912946401999002387328425388418652376291734492900451696655226596459569609715723566805957393668792585408909917230693056519724662218631637232706991281477899999996949843350830033017218031220615878257877025881721086696268893061927927558226926594059420682041615506120750239470333603873997242307546066990933170105506204264784594649599423495762627550318452723423515008355393252483549495323355965697508586219362169628352535872206660656736116120235374147725370664391320741610878430458298653749880356950179063114153956844989870928397479718632731149568055231545999965459834958246463046517038820994790488074175161886645985570383257889381197765766030798520840323867179685737426791966901562506993383644915308053479476957383591443981229004142177811513333870195045315423176636661998889729978338765875293415428456444630398494173847004842645225846495886116259789280005289891877956601915246356836881088518193970886582002163759364074820048548625321577884859510396775552198193076274430738781692382934994064083231256878620486255663362294074175471550025891042118965248596317703656378441376978512161946242507589966353819902532666950969696054492804658697536760224812011971010203404318535747472090012105792964868843495899502711403161107444694350260138198910636562491326879343356359068679499328924708450615252942750842610390565476710523165905344805268484675492938403572704320502911448820810587118203301358613291617415294460085218984179995652722472574763368978187950702510340389880601809881277871399524630554224889439741218005154227467653629971155404100210508396236416432432352007673349196478894465037798464923424156344236194369587058768379942859470425116908087528491901545122346312258859475965363166235646604914825735903978629594976972035779433825602499450396054732220493037913672450986124167610540999607841564168973943984583865189586205709852488566077046065607164863205877453113059561281847892308194492189408880938385114821402115193843841711176464921676977828631677227274888138742173594493823891403506180377235395001028507348580719047848955755268955499796536278798081632363533341017737310380764303975678414914554642124410548054518172057413515549860873795448291607708263665077375775888064008936536889114341499917540610806513607327889038439210896682433291748778182551219371540584242681546727334847896115268062708631902830023351697772198037551303321848858155141659890417124031466761850900369876529548255807349155649773453357622116678999547986218977204321460302438847603075142994290242961025807407789712331609704550060843129317157202167314351218223846252821361516997791587108391746895297577341000304612626592309784525214451169720789410186940996620803350298347005771510888696097577247070181229935861768720010293087416915405721171663053735076735695551202030807868286486724036071273883775298924318106822155187912960668523690834526225463390330053411944565980089485155838833598039223040437128908784522046122042465343537203904989667032321850665450371130434294483687515716077350931785346376749717792529506368597907717238318991959947691932040231006333738352003953233218307773017553564844564446984542427072820856036889574233526539864718864500856407838712182436687847678014372115616613699730593674887484687393406664583755079351530881460258591323417798802877970687621537937261295057434896000467847328692644096646572363487654484222066433099948014957746627904959301132639659819396966658495352937104291277101421976794337519373088026950601377689531219667207510077066294724190545859601081627872240731126631596003426271631951345309581100940522169797414990942975449852570643315534893332382554362498239228856565380048973880370353139230544014813217174571406264508920642743262930073515588291007210393582201870683412469612912076695772671807449670353367698498328840357944315528140506642519807364544805389059798899127934185290738636868103641136572923827884407604286292587010901498601316066024605686830585024454850522016942153866412204606975909658013190844748681472234187805464035106317981901337048506150894163045623343538756285015375153378381991247382131913992460211952721578330524242076103689562237495352400848079581454350198305018145468442533515650621592630110394741418424310151818780570652120957063491071940021534553556739487353956244174882045557281755708025756029176938507511313825325954378147439288611689648807414602029680940863725761637395506054467272532089654348966365291687096299182327728146966013013525358089875932872564715002981994872081847513875456820418276615367707642291361495124229291758119252818535725239401169709059409582466304521010125635598315888112222406221274152891099007308989976688788492073651141638531398251935000991580078887109626438212159201867842403849467805642491465868546582246006362847054601016589570191853709737023968395429367976391328362592013585349986670648927354068969799941713146655204825297360728044714944268248212464386209889988993259303686515142288448151016982789046443043229621867332498970481978335129275020378551664150869600545940159133258971476506857490821154710328610556657569963017380953025602374299857629867415475085002904978046711931605699808188046275248244839600343575759007216813597012099902644542193184819140234929679951126957171621028621370817893754461222088241491530388980516091390751579363513232404557878746134309628349539243799141584514383652023294343478406917655962805892902139077698508985759528700417855600419809633371910480859995816434472994496191905410486033317390493283748364468705964829209023355096194640024009119486745503441202153527537137921032169814082070479779154694327214733450250356470105541367804583422069619297248857315208918575339755978794012372055094368742831542553438204435463193469597817315271857141206385103715109517539643716669867837258731857386082016290574938802861265433685270270683923732585597837436627972620858032248610567113141564867672355889068297513956965893960466930923950806452911063100074914612619766207810284165846529494741247933688376305596959038889853823363222454902290209330391896595710451517670373128256484434408285609416559710976088661766927814546091187219545269286055231543550093269946921804796160860967411388963899737566273921919646973047573147965954257955003201016807362756933584813088807448624681193323152740733149334970496206615521335736085903364894070048410508268642363706251204945906095602310673651958570955416030423077281437411541979789756882191983967799055703091345136879688236814126752130256832524236136794863651696992147550743544272028837731931148495809805907681502155017427157784167199846299384593015951099532953540954607656278834712375893405819406993810260230298550314929091770341713142362570530163282774728301726863458541911561875418790537218825691966370303676420322127015468281398587053390156182356484812259466415015002122742960955750733624231376910388163298461328562982180404929802896885778554826509312194353725516024496086825991542238827520767795768093885353879986279700631854180601496037789497898494303635453295454868414233270002849149250429960073007543108716992576708539278484675307727398875930342749147222296522238076506907567074343030335569317849830340319304405429088333620698104957044383655162481238350269819881760766419125098048343692414127612447037308196709082596579743677630416988870530815184720495195655827974902135894336287058643288471434597413054097577091877470011924951725995837519369393519185378073763061747455176919576311997440902582762138395452483664830108930358537821482256719999787084116378855769695808015312359088804640447128447714381295922432860910716982185651376691807010699200818839055638729000719520371603448070949971126876991557315448472035446871204197903908644096811442636071715767502473912202819083619406477001597721475669200958372460587313475748934873623442692963403792130770942610518193447614887507504156407580763776852140270906741223026439797620674017201775560939992826202879553466976639853695383811550134710283160825951785680042921111944447244552195976317329005925617491860577139535171917849998182061307342241381374007471791929208873448427396177704687661784851416384800256338903639342718041356142719050117227595292556901932052322916308497610347300869431563398913800301708494131457468206408856956811025040242396238099713347527236923256484984041869916422455733953331928893136789692945032565724597099690219243987800310637017202901431991140541204321389442847279369114844136594390746976791773486064314702918571689231095137172528565029024178366173510415625498625928485511097987876314133361131832732614249478368116120953951685675666428875631481826208316218705232959730526538169857300770339107095477770927919935144839918949308790010339670344891114361104923773334818822738884622567263718162054162238581482835116987354289865716181150479916652789219295576065005115738434475122922632815226621399021447088384545668736750648175722862300679990780205593391910630364442940593807572267885344148304850390506546826532534929232188229486559575093633270516500410007518196042118493599760229692906655422774658854818095862606920528051824371278769409272194491410123437835383378637077286254641202984530300146128052294888628981863725188450460065258619859821718692679821241403556796881586394233056921749061119058873323249465551191335637782712021565949878079710682419817196358322063358510737029851958282724858645336172363353899746480872681847012913198338537599424688425477385532043362304442146467480820309257226458621298634231351841869899346144261097215280747628447695042511081921949920129303898741299912383994501222947680292598265868269911782975700046746179036711777581018491536844910477669286656940293554965305642325140347719863631508539534007181307170354284908385432904284066294065483847749604402150000296543657383668838889310731594622854790549049039405827820949916165785928549626771943463062066027906072744227163960468874008196336007106053740689565132333867799477727983348759356326884638524143024862457668443358257003588978580609924155534470005890010371124031500508595010655827178873301478802069220513794711343234154700372195929576616797790219398737888773429897230357252891277470366738633435406143130048480497952011369458921356910706582663097170455054370028724785130076449084655141419105911247820654120812234629156471546810875317366523151044231486925799453710298373153929152712692707722135898509559836853527288304091069614435680660970043834937147833044206398807721813835087818995462814970705419214635986760658896195746185991992021387512721331912123975547432124262371176305798969093846764578100519233106125511767601146545901385999916552451001752616276307539266911874031096949926762491777027068332152685864767769225111341443169745386058536428605161166465747632095310553449499275241935088245730408476981532241749014614678829952850071261246755078028072682874964143726362911959009525257039475031306522624454387263582959361979520162885658241643800992215643342697828224028766259272348479498380223023827605124257154216940138238139246398091064539594435329595505905548429621695860722134649070038896465151389893932417448895005414975900191619460694460982748028274973134136203285204561563340809967582290235278746490274012199446480474700159309608936529169848117517865246163718176361493085558302647946079705395472534661017175830913655933230661209109071624795735399857906397069825657045209048862516795786317650954000134425502356091262827001991544295486557496875711184737750918073929911375178363919296906058062544973909924930100757653758239181780815158628433224850937826173468122508391390648955218010627316054149214193046847856095231722118566640943029520352066334637231080957667069152748479904076852708307550310331062993524944361484141799604849521029088557507723462022399045828656099448271639843829970475019343087244873549264793835690913931623568959966308978760511934556144766996008180298178814875448651874354794890853666869291429854773649716902644149772888597568457734244064285623601006698080668938111470375105137989019681362802969958692625127020215196165817372764082255699844597649168028107221823425248444971680879893171642208016465505470124952071756163686249672580645439624366762245976058710048890123556848203814147126297002911350616008303896716614453598908414385232138369278646658778965849062148011946205640828693570984327548763257515131519052764200803421493034743480164456492168870164489293236039687501462051117622758344494946459106880224423077510911265475991652680111920557344878209540782354865726962530616042620851082965415766726213712699396090740217928483560590543873762166161107291233754206480337977469445674793077912725741825459530819854623435246587573725078699228050101569942260900154357706930695789208349809112454326599409608682545031335848748712092763043714957647408258429657996314733178052014138756578279832075951870668531960453659322539838559474290483255900282758147929696898403413066643526580478240549903798475576531943225283264750696215291243495693473872422560859999072970616764524646929653282492666477251726159922901165420931672473588474157696149530854530045881362758147954512982315004389244860316338368673554321702826578285146406800902049263638211377955360380370918770625394324756934442628984405634558432790086927658878780807725249110415770351109676545457841513823146151670564151438825593099760777410678309619980158469922564868013413124567911677276568089603507943437209266918144212397002642635620025627275799715248677389343574897278494050423050411096947057140585619877931654194413448383437285440521038478313267837088870003345102946403974071829070205769232682634134953139925215156259671654435665274227067722283657476276150191145598402459098476562258334875968133209079782143292025428803697867536020635909671370529402655354489124985439020505393656428066924505839334599664963729815003750556480633035899581801499528881939932873616292147954942259171436485306985624678775789605988898312402356236851742578919576020243040910904454901405207123178282763734878163643436906056913062339175884499868393879921989140253425406287818724066896267283796740963548218972424281711501892091650136873440133898236551788378955325502343256029556586463909315312733754363865643733560229524157902615741950871571242174513043819596730743884152625248312089766047563882252911377632443652775618013763105168179180592833212563192423963639307159861707517281371168606239828302785737763335833643727307638232297258065564300466879183041101118813314991918988944256985703639142085457191187617934569517941062245582600984697484041891152835480194961198564067120323015428411548684185894315580150526054616732656762041216950240007222856418290029274095928044298327130390861181160495780948847410766783102403368482432477967009689518955286996998848892098568484199871768680537972933822635357838108065711848282494826774787623204686635188255653499705142553051236300294593893175286391008274411305607885920842853695140865149300795671570342274397405812343596282088935270598346104867096306770625189308694740579876268086454146240339215586338283664670288318985050431227510094363584666692817897643042430005001109953126865707382059301589421426169725909770165089048116478550424512121203258331674335856369528420045755091416773108567641733169333190190416342369410861207476968164368900226525586823214585166220554210967588570669362638158423447748044911966083920640210544873411689328991949975292601713413338159413307683372650440658586919608156249333992874806994549863955905751476938213417684268281604989169420059970663678315156205272836632605370224923279833113348067948821930441043670397046036914568306790160341519858929869120442675231838770777962724350514607971741758169765100568059379541809864155167475139367911605258392676311032050211363468856645032658398848678558129693796535777944641845261358537240655618681084763971893976846889902418142693900918124414003918014853029391550906440903129937690399985747105940129316455921574716598962937790704408774947220758611853854569598346529845584784364702722025667674481368317531229147557286123311955706594378117606157335877720646254116055760786664322305118288802600761215239050337858790895734127553174145196381187531485158625741345534537376530414510828912850491907900596401479615503335139968949501668747995733634386789313949225374659061437125521915919846156877208596701356085268986835181208529984714217255910165886965770435177107909059257175493097536868257302868279820659387987821221254240254615204914931509573788293990215697200213708205643116213483927635404098698213771226017718135633425705490129759810436278531395399313007457692502344787042577910289018927109078331621521124735993650626245733514268300759040789862321047260118519968317581560856505944811329243297186929015520876036556744063872220559127122830878832645102605667495187550730877094894962176301437845373823704359118813882380252059296027514104315935198222358414551827072412995260826740107967581076635406199073478353959613505155104676935243496641750384454965140434082574623161033557156351263175232814393460106929669717626387384309879005517340928518561908593011858310876758808212608340744770413589519672202720659232163855794590465877172559002524361605308815309298142418451946687414057639294545317154893327862882082573872467457411554616650721930992514531636947365826020580453499223408526146348668677848414953229488471352405015567423096591131710659275917094242935653035508976542820256696491510993197919910329470041819847877101099793880941300049514755474034639513693073456740068867225952499558859694907199628530953099253505321958660328741435863324337088110769142739437715259341232727748834928033367622904996216040305446192517197711809442574332117722657164596647632917901228775570632178264407464475809444878723702546904306013832847174352184914194718210804320389687383177098009234247994517455220465825763421151025876105965679720765905957551939478366572564632538954667214582840705264578733114280980795380578374338575882174458437617122635515264638812058648919238330235326426132471738295969271253659057186489491228128638844335412634667547043734912901750973397108205896460545640566533056854275875133156128304840838002551827677226413417174275273728155645509618472075841956956834610838680325252859589400367600070799277476747068558765955070351507593744921293392848430617510416427968227118070538601947576721314505946091119135276096170123906162928271709114739398486901634834888610332805313039939280040574781953599400911034250444667542914737151321386714262760408450591506100155835770405374166726957317562390296144927473925038697415132528126053063506736074580070296026250312625131422653407729732986497185040630928605208389300337095040013105531276440741133399206297531612080693760769162673140834450705870823965322645429660019779489011140051577235462425136362583601023140279146712169812809736532659884551154219014266782946700845226886714911286735780335149247918996719205938021918595867963233652017117326969114781866741007890073765788564644025587179902145888787640110847458547181833547460504679547102333096905095407959080333073311967647030762447156294740693506573072247418304594621788388116506685942255114416872637348603344770956855008806321397519095813145985904019091954433374655815830079346683990823136682969042265510707115251537132960570874883988800782647929914752181676184744023629906029033045473223139273209658393426270370746399097264304134091766534755803547018125821381236626215407094338959575257977842763602474924792097384863041587695258628037687387030318647836746418507092300812836559914101675566159839595835963437833773064594963312708194421810689282799413909282557045242879797154964602893352014520838420900234010794150306073688116513248696154430183587843209904856027237313090653533818360676182566551663275083171310155735296671667213324020760640879207490534487222078664293637500011104043970138022924389669106922691669327703136874437124422345920186967784709221269033991123184078909605344748281950300362050610701440994174707752765298611240282995804939396115942646051892843848180426561203562145702903148447642910806028946278967040001454744293895884772449243953061119129399901793924187764771397193786160532803163325316889380016477595878435753380061652364372012060372392744955148135830482727492761537330175994262420661584348267436338557060722742442052916969076320870211118431992454031651381402150543378504380594183125868469077418246738499442250848256916217572075760864282736739128274871748425201103647160590726884036005786254287661807483829838744832245486846319025214952181201617619721784952420818077360831152244268338487214566761527208163096372680012282296325763408729470767070864747554357694529512176828156065839773273674993173643184961539648041501825117472568487367145662942245130871692954542942856807919319908754954470234238341419641404925532218392528685317263669378827722441774498170507134957206373637118694092249338756305852190876193498272408073984460659181047285357410857651673671726529960965846666496909170504230217209702485547742007360051483636570519184770553923072851869751055730618399306444654136089776617627644308341765033952324574102209943258839341565979464236951645016988878203950076628513556772162939957341866370419086498201402059136574564601343692841720667118683418144028175525115290029428090523096334054033626517649007085068354931353080689019992528295310295451032408137084057468163447383378462746509400921082347479069609542392044521533374692145264862940414708457710819173558672968717342104843783644964309498875501247662467999690295542704020214962775386960937878231984351542406801208158345565101349186665051628908557195500502775626248658505699813479180837244483945978213883255587522050292530983189657585210251678223166543899629134655603421181020469458675507643573632100525597930638160225480392799015590821512267915038113525553208618504610082747331648743100939911635250632624744996485171932524480080321148827993422962980715691858600838290911509501090781894324986910647598419010089647902987627044136889202973039832452126660966510892111055406575826586784016987899241030735304500934378996013107045138852202895375155818036100803978047181829737362118809572855587139711030250799184430882869902878170047601606954808098455046476854414323720191829385717786402232062661541247801441028207036578776832016197518584795748422747158748586776796521648687086063787987619206014342637106413736691995030817832561909023209225115732566033954902708864586915602134165782113122351887026782113516416010216175729767927131766020812408080772902615409198937920447113705645920842513264497925928186681175923353038077657267668833807822124363074693104245082611212969320327526223862193511506014146821445960007614571918284571304014704279862216557661233589838139197887315558391101240694251025103905110193470610354092012175541384599822386506771934042858063782878011761934194429925000669039701276560871730561162306507245273509136025262574851354711405661015737760546062799669402110514594553533622189182079135270268669192100367164258543062644224773541138972377793814517287314761957305125402616307123863796233479503417198165015225203235930933719241098016242480965606726398223243508632088632109214615199459307229253984752224217568699376824133437235350356838777059617912330038252755033390444442419354384356912325198271481381419073997394551693361440651635771423435759989461864990320991583771627840159880050090185265777367068700190468353893424541514159183605169680011412075296190915840961965790020707840854865622422823482812738964969205717098034043049042542087027312051289267487774922445446329491524314173577501176352522850913405654100010076209548765858684364131823341624794838741496929310658662566565967624083481112333954796421464484474380305702093256368255965346261501021600754455043484074300303789581850970766546968190081099073320030423430120654639824656873368049376796769296119230372601180064011026166453973943410611908090425167570137643623802428149173430270133527882271678951132134026888152195896858124027110706468229694599790816926624870179205571954570827677371343045539428606882580190880813513228318168657466609239226844082708543177691398512911454010698225611508411824533682888072367263188399349155576827860504714227092283676209702383626713623172154683671438984408569327779459544976724860053701990704791575136669611720162524504179009561465327158059604273864337818348802813411460059305444981276418553935054992199129094299967844223934809664352840715887289107694221300385637158243980206680774667743308572195078351790169348702425496124971501535481260869659204951211512786588715965498888323953793110742179350582088882686343713518049455330345371055501587719378712828645908189477847330354074371546357377738095395572405564104440599803353601379418135323127016237593712083672586031852940442995538067130216398756052868128025249406641066572532842481989517926245767158579818114882546004502786982875286853520200852155035379366113808521929934423862589777369360900319552426564960380342767500159927137414760509928565183716999641888946763948175188457373045919162982256782448670893465690498275289205006464174723014147131277625184634682243307979614422983504109919211859055729323753767863297129099753642991399018415914684946928178277904480645471013712572047231737502893131553639623681480828964482068650613125823788628373679959731313520184126657474590881821946580428553511774514303283040193756139019178939795846403533947225905018397614961525634526562343326794426713580892047208001858852724780191293393799931854192320189764557924282560121618776193219356738446895594152823697561821487460398817594827165573575407508527742438471782512548388993690823335483042194866965340694761818342706419827407865038171014199208937035300134876757256660353878925768159889138796153848619184572962667289025027043087275694229735934368004193671089354166438545069821353080366772716825343983324127050004063139025191207329442953698116997385721605242953425032979785412039986867292714424422248740131876254945959837043362108409840405057134512337140153832437941629164448584850841212446756942207571932406014873335860445846691950840448180009913201118695148454948809016836416203072599424782209017405980636885336497707404818680650131394819120347249869805395459608121580201470826436486680804443686628758418903246277967860755155198858188455351374369415564180273258289348839703224472458198825940922056609207998653139631985781476031299990142457832986864365468800374902687994379248737660340961453185249390595260340031071114845787244570417882187797612136533867713273084650059867161516030672093134267085438032012672604272600101300699151546256678850326014182424602678257373405669688123698248158789084447217493627812428706581914353910916245267310464609585194793896514523739109192803328000029489897295202664569528884717548190271361831317776125535048842386152910472193680326272318955853965934030002516079690930043082142041024335756327112456658601637996384078132436720509703110970746833208616794597676575717084878164516821561363515075747239371173122170224627204462640625364349957873710079922222756370741442367379786645957999173957568471662023266512931676692174641150377061513804366659607932080383669805549611122926073767697354731344322286377409779902481547851650905124456150658542482060366492692002212560205491012443977757664310629180677328007603393868443442552097408508481300369148946606478080987447494501848593209042906124043042675459242476099331638838170530581222531786445810661919662081328772427425449597009667419690275199193720054583229744263474127311984304939181383364594183937711515023970522765281726352556346513090078078729702497602101299117823561699566529303178367772602571225426778529487443020456128537350346573100080179306240281071611563534662109051719093771891304895276207324904824269192007990330095467651806241887451448474308898839652243257695537851402399593202430708556286354805328565202202904319261439510203495778253809174808256137675204486860510074354454903899065880063253306153980636760163703796581540921413593031986320992457515640954292630807495320301028914020076811131879249037039372321022139464413503697360808675452207964531992838402925172305817496352132054851546219516388402521264401037106979962321634492089071923594960372101830037820030133694219914295321745495303340857273910451369256561456472839204533962392302246230071094490671532687119643508375636018369344974903859315309023235141927922457510817198234869185823155882522291249447286095053605423690026560657466559814343972312963496349790888086648637239739874095558662799016914581852929156144682934429340818744165334224716415648845715126766970571195633620300666742647622300280214225442327608780093486489201907518872265006456618398502141221848963789669914256464188871908035110351337348032098830595795543219910298244015243577528046034281173143938314371020241619681855120417944309101582656541404682653007720424881537516637881685606921872566666006888172782751388068553194164955315633740350346090231965516549037513038499162498752556247897467344264528778826373825300830126409013714350780410791239925121632683642399498435067551088935781448469693537043681164849512748463241052713687783235605732553021723519183989228432289761670300833950433496330703243569542025491346452469281338731255271513080870521947647385653613909165073902164517575333580996815550222952994203369393249389637046687168793461235192957389863878584824429282679304262047817118214539607736295630054382374056978279191523550694481622705675431935305385281694472924710563486283803269847788744685105971782944452918137756760786582281243173183851266374262343301032343053820356204838486696138334169116656209028174913427809208701662132340659093495293524901314290871243456200459599374184026467967040701149536531237805945135375330664295318839621698386452753218938849128965273360986071863145748225248246256840352653011297948508866640887734687856266009441424678345499473514749204138815895883729433089528323983866341011494070783607351257967352152632777055557139272527154106715093289119011271926359417942423300575275539245048692811049010219316191156282913982414022709142081146522639714005227188657050754328823420386892010247514833424828373363005444963172213205126954233761478727412731718690313754851526902752032871128111796423373111583617023928101748235038675649764957706724154478545897676421791818553422196491392231235461746573451976099277418419632147858666767031423735301233508059538715210257327085401281620425726286522938971419701794015574951865666097877218595866604233955009511129827451292974024814152674100630965311401957133037700922363996931799224461201022638451103929769942914097675954942285721221400226705457399449421200093022979008684021688004880797878338216761742852976017713959343724234601792921942819652702143693042782354708632219001501332544678827887043704943651068162623315813428837299000093172408291343736612480848868841407272146837424181230433494928147902138591040613552850799694703480786662952497066768455015920167588630073189253805953942646148569928086864626921560965829604798412719134777606031434456175672110144470370953095800113320018646166904408699625022276290458802468061312105026118079664221288589321130193499812060396762477750807735849884530967428109143447237830667165212479987435328749243026779225074179691655453361050822098573867359788779278498196503656985948837393721188239532494134777140716491989258971242919659972439302674824322036943023858881468208916917419529527532793085353369618510271340611370055732890964328405709771389305059287534858483906048816035127348615000337456213688124225736048577215072273922497394214990154503958137836340166320430442232075379306129464857172203363116408316019698356468249879558321562048099847037760428973334531425645898146558808951653929322088488825460277341624383036879898642950814203039820249442704576086839306588010988655050314281141959995614163913467955491463999194533776648749820674199257452194517558651004984388310855355608047830595609348232643071596337776069666168185962406892392355888834016050462954615198112202712696734908184711946511775534092101139278584591604171094766436755639526623438186758173179694705830303614136269828383727211763103305671610880106407645175532625355284939120773861995714193391886545118390818252531995975062930895384388202788557736116527442196987908339396264403452692546570993818567485542078877565007308763537342527784360566360156333404356070868359939135382717400915990448095802269528704741023471382541640227050562686186562268227539322154221388851463891973483405336700207662764010388223277959874235945920109629719723210804898899108935034287985902202516810138307389921778963004130917882968232416573670803729960543512236617895508219211899311447145150429808035551562501499815918956001923454968338352049115907058062577551918943286098813603393268262471773064755225127972941857337652557820716336433316556464526067554598499997349053436031350435164608800123413760158093302998275724294657430195900935689238794699840729636739117758774590630972157046604605698328848604373717060531069647023863054044882285495074074722779212569183648481166401426762491554667119081351900580952982730803809780434263863290841963060245319057061222644016435794832337076653742221092352583797584200819803459325824690575688395823054892026903459209275943307428627675004073108849594962932648081458511180405052955323768902429706692678062852720026913679236208556319749118913008720104663216953749470202248009591472077933302141122400571979560346227556158981971986213531739818959459318069867469720751931882742296093362748314919375655524298181184083173181933674143850022707320779131500809046548890385298198508251127365698876103805203917517125756542766410662936771290577752383264992284861623712420470090389251260155841477104267141342537865284038476104334245168091887795121795452649029015997207053036762806526357399209850170004550704464640424022769202080163264492526062672951745226746760541946409153162811098390536551694206142317371198079164227115457284841104525644381979165941651819291442967856979162273311099480811298836235892103239611901397098487186659481739237277870664245915009726871504691086356596034315292361274656293540120410789519717115232882654180421254731081781444008758613130037042103767861229303733443719434466704788645045318660844301541180507479219472097429462501487616396294503013054097169207803949971309267807256044781857220988818138460680659511092517753152454511882751769783075973089524176764694479714754314996226482707358956060529743575371824662738823823785841001169329115307261796187074461291207201629209720783432259003796924140266870489708170857156491839178072771896602727716292499187817118223385326597563166821905865177695167495865496566402749967103476262475200215606481789037740164856275635346129562366326829977996706609892586540870377742829701739658615525570021420739233711399101119123185955743168088659670680675516893169512301411982156257499315959878596539458728772670268872326337905649477142804348889650353455990200355820347915945082185883753422119122046007101642946716659208271836712068351932694313202145425171125569964473528035396454686468496713273084659723140029255408306574240933138903987745149862505269485626769738019886905794840991102717770472057407930533616054403203414216440377950073766201239406349487231746303517840806049232948766779142571907441596936780928366042518904590407934477481289928145612636733505911903055942146225734892795054498238673134508343721238083975605937210217950981929693924354846186144931716929327481867170057657963473774461602545097834642489275223604397803178583815995884897288961570273953352941222843740954296166240222225398090436885787023060503263264293954115245423228525901913153669245864674314647434469571225492521667277371761088090203679162994671477362284297637690337462338763977037919135352251764982341800288069378215075528740604317500926074534159233952239903584038231084528897955003939948728311395880345808095319771332774695485497333690945882061656705583397257200822082601593520955416428756410105597687126316622126724988547108903597284327418114944127631309422252282640486064826255993803006275636973543816558702331172345158055386374853243030207337495572066771653095649717212933201813330855469794233189191932625953006359649121188122471055001562989888471191857419858956896384337775083858251450632469824154141934474813902172499354174854905838797724088060642334513242196036773068447308533780489810320304858666768352646154558076622998895912869016596113923874434692249185167367655628538748013327575477910074849901531222515625986558425606228932399335560384429274696591096029000701561319440343294300530443101964002306757585233568757614685200978997949813574369857031501434679770897617337373193142880757313008209347401635277640493271908350480325855918533387455039953625800585290930326962712843499212874323438496333874522305679829593302469982093482388249109858837357151878787724282120066963248390882077454344045518684510044147308419154036491348924450816455314763399785974652263173846694496498261343678682768630064913025272637936438940462876713733758267550719090473082246678670946514881443086440628562578423168664451522926129153409176256497845629439575658546647058252145161783386065223651713166781764253902849366855288733260402062164849085698659982352041081435385214422459518760199934968119852441941315019334980215208602042329769423297915601798380021135266566442788632448646793073848596038666309861999496384716501089310629837140411089489919874534131640733629643644687526654378263657483521431998810185981859720711508829540497606281011406383396016587955370966820045485342612732787444159661691707252720539227320433217599121416636634272043157672168219156866442185508876284144561496858715085978594654154722957182624031909641486434299665110254332020931788166519927951738845578017916565416080685968434962859029511717100096867970825957837676003451563456745218774873552502868222679519902527788328847623431158425621543003184511823722533732001879795732728775568511908291557141245295959054103217468096882913106743751711778097698787052588324484402287894104114651181413690912990026651185446972048241737976988083177317723279055336938791020918491820759029770808359759665175448206485544644473193516396825758856041771004623290103962609979292908032101636849167078357058904616085085098950883734412718572011519014983096171811744869288801095475160693424323137517291373508512547667544482829063903447372085022721209195976082118818275786397200841300725578353248194510116518623217250535351357258543783490875106202846950351887205587289831257501406576084269758096367707732974318466186776762018261080237434912992149550290721830210320311620950350290161960821294233005130096333243381044356201214571793730584341300697816539917914222300620311441736854533673501588487513492488856189230027235144638040697881943058102285196204778599931006979771545402497339921707630266088319952407741161682813644475400698816943287236795924661067429937145769384343362242811717328481675953435148406779088479654716655796253349062107601580333603216439366639848963296279531109246312535834253059753554871201931675488755091830463259144657575298369184431969474045867970641616889965748076750580550733989949162128358591328839711540155643490144736489484657600011792271167679036023202318964567405061631001817171187172482955335731703817465408063513440218288355939142202384387609445851953643158150945392595690086143654310596003575478767429422821271310195110631366421021948140910324292945129615021467421495255545372022186034089922945504582388741775228511877445565413596932186356650709129991898858876422155588436728319095823503804438039291123890724313344160411767186467216018231241765026104729529695419285795090495584412986608126568865820359077231470483138956413088239774890531610078367342519063603222266707647074019878364407802994290438800597698775314754132149165707222875256310067717888612442480491040899798089415387027395499235611675517937110583680498852787019230961163366164377401133726393436088275069498182087351463118424909739076357962576170997085910674455853653577872360825228796093396766832609160858943848849825255463582000547125683005043426341937763374980173850334171452969365430098128697076661551894240663137841731785336085571868625308559763801647995132699229345147670990374383050574809335645723375062597892609749352865667269834799984224717127793605675639361931661927311378085304248187504159143693643210069733109142171668738010333679901318264030188723764643467086359642063751621249674087923433377732807309137158747651894228679377795949969230756564064612323316307287093113983846381811499142915734404703017292408817705036221457665731087917413420060149276837252450695658302517005482539386829825542951947244169009665345023062340684700965188862544672234690006432914727939567539585236808308313513312454188364645038131773978647171889605170777861633250217056220206400862064329706161287508824473114716689756030913904136751793302733846308052360361946322465500586103668881996640542356342230361377627911906162180321989781831086448141445906228910629317439387778816722911953718293241035605884300391727067792301188341704795127291361127719411205716567944682152195945372843193179625890024256809185386167913954269103985601777652304761378947510500902339277553925641040055021910399711692085727440308021293345235217251651446224521744076374415543468708241096456456641174006310433155742140870643280770248307936157762685033663197932982500949717559315256025724356674947520164252186172764211679117107173522368519118625207331958446051210757451025107969931859041146703226567720962154723379729838679091903093590778588509228112720931874520301007422658665681428403073001186871366668859533683450735521843583738235947814338287807926812722478909427502155242804939232860694971344587319884078871325441574486150109765004164162753915967361551313964368375674377851677289548811508886389126819680394935864424814275161471946901978984978567267294433670992248505793600159755429324692688426079266234850276153879021717193399850783876599240680821656623488404738356007204743937930939816145448490868322050158544829838286999659089128541355429593953187040335405362057458820549025506340516064185702352838043803184472285843258344609732216837528527879554368193290889308216539303500345347951023055864733713966604652911443906276450573054978897255089347432070283409497561077221359115744650092781269023203385534630570495781564894639306210864265470679397757558574054345324148399809158535895960870751217810181938475205149874152157671302902032729907542399408288808601995507051376465682653786408426607174040868886586917680359412968399514119895926962536506605802330894762304596794563682594032778172656596879145843498302786296268007219023700331356853385240677366066296925699818276943904912998500722016790914074260029871157009013298754435392016657999550129405080598221987469824171822179865054630763308772599199926200014838165505692664680921548411410855882135943576231239652587546466519370549192988624155709548142789618276404426642752807294458446370764611276820547207960679664508263733312353968764685519542268171932796631607641477769805537279559537929247645326998321256254890501008490985973993015049792570801684875796581813050354877638686547931602561440391402757278297311060851846522353609199799201459872853517672534170413226881901418568350134507633959157883224707769466114890009526067794375555395291534102073508761857905367507130591622681798666752610034318792347723454189379940779776160728992168237741886991330662357590870105211120416661735456760841478823768757855895845184445919184105557503427155314673805149824604205635708978142824694814493626669355647918691632791527303205372069933445604038444154929522205657457250390376397659644864233219551166812640788264107197361137366711693471276004869642719672999396570567820106141898448273532796250120926067608922457410294949158588728595330416104250931056008697309145452901411947544672257001305589413820002007235394908847153968327556396395221645513412409397604497046823566177018777923797494806162321438969002656078990361179713719241303385756318416902398807094680837545077938703374291456162061099113860280121190765563732973081432342046447534464194355126779622675555329726707222432748812069763088913373665430637553016838952304187295746025104318081216124209219803823890876800699274460636632730213101700357456137798641483590517416874126684280748695955037445517614006765653587299384146155446386387719732641499752135760934152480845347776048781919143325178321655927107061437581436273891497607237244989102652071256942999399359964769810931682121745934106672772795850992119035324228401365500346245854788060983163627415187174845041879367501869991525829458463791005758290391644185640613125993648711451696367451292136026636484537028065840569724487741514797318172648438337475240163115326883032489934918361815548211069365312465236300683850908566615092457101799099738715515479588146379600005558538174997293485536648381106145894241927441793551796586192922213357883447179165529011432671886067584178626277633887643740081154499445319153906205900339698346849740384962748345892874662468910670007303482308851768460410130294126954684285808535834077018736619188144850108910466456864187313821870375886921131451512891996253486351470886853901584224639132053351933050144032813985067712428651904497149977038972337091617702884355416227692475374222489742847989964598588941512742531345485271415267693765943683255639306036150765184905923502248156999455177425203291060869032295571805935569021825202361780947624239210113982585264126923020940113035559845317253887300871586842817944100677536786339407758172512898657981650091183389450122409609318881371966824429630252555247918348871065815489519372866385914376888379883622596466847382546023062652712776571634812169431007631304433614802570157273009132584462959506010077705836816961563208321077239775705624158697831101396109868566882700265889286687680779933336808700546645779549972080185112690934992275279079457208013896747033476414637544214851176218181718119071882522404365403360459651659045167887148303759776047099501164205402816991039627736233055318400543709711747879227275105903112360045962904281472800645700765566285772285667095708944985042793526967843490135065626098578354828490493038672903980919296063146633778374045605987864401670718367843934578464947693595037994253931033691381023165434424403194038357854697834858719400587834277647509301661568317149952099266881608837777870563738709560590556190223487516395055272788072012586207886903750358207935050486181648531617912338554784602599634519516216959023980714692811470836380848156944083143429133770087658869740355003837944603300482874300946242046006405749393675941600244077524500058636808416777715786696487289688434918473680799928514098926448285080662351811751913334099035592642354748147125554298421824189445298341896544718584758567775242883360315376468660038754772158824324274718635661395560155852018012125420098782949972232960961542287828822093387115218357948160813828182294209994293856781792411551231566035817190610429894960049091572522428894135852038523447381538657172106231514897919105692315298661850344154408931685885869882801973117177592288182653306782979727945168011493015652238993739886628169084132911235680106399877248402886954156834648940289213138577632481136552841213977910742876594535962298657208029051374048505107554288591636175571553035645355950355235257826979317760090457097759687974146613833555433054729332178222404359455530916190212203817714539197735186017126516123329182327709631725346167971850094905134506942182699479435168913062449834438291428257237936218391046883630821082212777867073783808891216501023681934145843192905760903870497448529059024336119721995626396757551123690314369264302980453303508962788466426119699557946736182551509403082369884176579589923273011631148268667677536090527476800118278057786639597134603547372271908407163961266890066121234777018059721205894074501602725724294554918956623846353099219139640780524511359606645107792005932884652072564504693066020446732347444895348883598818841132946702817295386128963274384825560562039180116141776048288521319183132039530447220057664326793647081521952063382891545258310402275229260826846466821757533399254266742410506791491440584540343317676631459872392294795246661148708865006055332443092061137942415157568547506643164236992616637838137272619267041287322859828810044084813807464001156540603203505123786866013408644160204198872678654820789306222484642710749070028350772822602623816782748382376440936775337520294589099749529023140255733008786898214439028812188760164711426769748976314819708587391278390295397662405886428032109631435474143475199419686779800693075278298415660868187484169055949841254090302031686704061209487319862858212289507405842379400825482455791635476279440646347707460147301851392631182904886207705246183224596307229998674687371029663942136972720294370835285352730031628824146863957070856333969863405119476073344381429604422764636649296347777936927042149805721850947920973399342526165927312849309059962017139714417952003480742679498826689711847216911641451154444547992892016188575744053746275266548045874701531297172451861093660559331367014460983646749774811603180178471349846422198274092124795620021847583790135277969633077597384277296726008791590256831773020414170579617252498694062753286368102203559246946922156515361803409701350473742226730066374638970018586609878569200460799766711846484567497234442380007996997218766114621599481220627689587334362586450706596774508702639517393186633813844159765492419701404903221009294608777706208770962997045702213554796679286819559785012416032533959337137013238006190317523917879848237016336602082835724560559709404713036870178837109858339797804672620981746196124948977734879237931502149783175398164137950925238511215299538073117890019810347591040466818736830608210583708384077794514635668462924767389652935351333205795704948127577006711572548962511209555461498395599895912703214962679158992623323139738255307707543160684579361149180389830946814170348545997663176870733317332662066310094317116728987865437429588620103242172099910554634037373938782762486637353422959051739243275355911798373426085785389476875205421272784215304786452887309933889767014806199110676004041583886779534329745581256075247451261312540703049314948884655779851521881468527341236028582384656606212704656562430567752352015243677317631799890541350090805321100093320626816862063704701658640970774919941622040220658271229227840108092080948353326520022933286910531558060951873533303270801031229492332561664146846171187815818340675780071995906106955762900837666314814036809738894450526139888243815458965791977209145750628634890495693207598722399559347463153774617833195793601143544669935955778122440345679724487812250136884487427944212980002371311462609919977334667317096518847025623181171105262076327083598745143810803618993151055349232862025336048327691692930199120529390853438769998011615098608994766526014871753425012569958451108209196126090069570128641065187926909441930652592785346733050828762379602938779136194391848453892279479123501896073227389978127054000357837261169523477854761582343461394122150067393950082470891431869786353244435716316978422812959306596188153139768708115441702392599953066257915511277820982963156598496422045950908760543364469087810827183091123733626384753457169644218277411324761323596583811214489547539797839804416652999099054983871580519303751376349026682249505585441652978258009327523608424055950232447818633579263840418020094971682875277587613984828456404135196381574722219091245505503028841963273299113498801239218639214622492417131398152573938527363635809634538386473766252982194366719640041847798828873558493763112284206877307193992764990792969788966699753842297895654830730178628075525894192997745151236110605999006916173350236687182944000676878498148448175802987970638560514197652431935698100907391467877671086518097856689170229661278850171193176302503366912036380112823231136186656092105565153388837385178593404785286295913468718643199445961188257608480068562504562167349641805472503676929728626859497252506930196798618734173724059742402532689917576176540036800287207362220844229481192169268364284894113319094917227398416516494711560836100346857811149252067625763443215121764707132065157928513036090789740728139054056995085407699164552300002295808939369045664730698659615956028919584760942463434729637705429123593650378422841857326027514091285567005819489503967819393429970807565946201203197446382081993331986258734005683175656581138356464676714244469776429975192233070012102236235773841636736461730431302876301620474920995925409990207605237610000774817610153207374776250047025346772856051502145402149745279418542068810980805846349507933424588472511867403168457585055642161810377976271764517362926077672321616402597577114606452008602738179226218128053543723042722927475659805937121941388168276483658570762432240975328960336789893358383641692130666502470180733321571320573087522365821098106944537734833817719411823197759743035744795856224963335268360669680479154013718219837756692408123130185394292957827198269522083882133003729020714583749237823425298964753601969733312549298602628855100744686578373368788656691229321267844720190800996203061613557945365909051151927998131296099683073717017094477431711419073228645551381623420203517487712256418062756477360859186406881502741341079013954461546285230494015760913733646031407329171463776346349009966417636558603547699807446761193119319951522500035599101955296243488494574320115080904551355567665818411953116481608665042441586066138968270969170126027815113728669100908089308877735956028854632686800755813657101054787078622399463732349289403716970145009403407707561975486640532998839909392778932788440945980917648768350916225082322278081117225609717965419374301070708205330272169364948883426332375631103628293722325880647679844292091474774362574698697758891836304100085812367218512769620201709332610342305057499676465763543459206373379942009177304832494317557281011628436431890353270148830508740939091809388518787963454969704182115811943084909518702242284340272449085944046135991322754762626419323741383911145509602096310401843834604622651440838630895634967515674744033971806220755093224936351965961752456367187942615429830378850590096107122526144020578938726783616306381211768119440107337340651369634165799865985654728332460424236831207128348582200948908054571639707792704300230990831387352649594119255287139031351072248287161951936843109878887942267301280092128863057853006882116320994510132833233745761934860089977314164455415572592729828720063408892545589000903413583728518737736854685943041279499167990851531201029985776742204428382465951015148695327526728214932689779250107983811030636580574329831853640753179793095182015954729915879661554708765275526802976339659540484596816122781387739730665138836138965095142791687420173358138044163476584323740941677118877896922078048361580249727260621922330219091952151670136358476305217315380491533538712420763700124612821770331139978127202277970017197068806100459327616052996008039348502071045321514647731641365948864948707064138805006784361353192186212811542820204976801713503674891215412373555386471581058759018033767548058816983284986238156056923575329424711223753843156153943636635353949565512531652830263108476411207143668663168745303373744889249296487955266918671816928399379422394435199573802561807860739000239758816316109010144122150086447026995656627174240821117381939559958977984638190966522646922046952056130809819376725324981094714846079011577472329923039050972359032166848975746668878534707359281472670200414241785757173433045698765475955800904202854461991093852474967475697909111274326371043401111910382172578726414897063796577733796692181005986112506479495267202876825697629154366856564582630521837031434786333953149662866603002996482395973424521360457353402282479841434458544865752091437419692707896768535356047236724495258724880293307016098189440462894167093776406861137711757572359371366308488281712830773400220102931887915222807549643150065287964061057904516273981205892715576335053250193349256433750204142564398435767524671639015053993711751009947787923760948306803527858587358004818786554408445754900866208180975814087853545174072092925757988018087903212180210410458102095500567783915235091973217307929117822038637977373711363419973965023364612625080618524112381881763906089945285142335247388711772281451934241969647926503822600443914888227740164629374820048501376249899674612103131501677902911326985636034432047958448578518273580226668104397049184805142544900289915376831177656079830615407038963003141767904806999371729254070708870515163299949518020517946909274472560016412412501164221839148898743940661734376612677004446483840467689812008549039404313588346854647775814440710181101557303129162915609683494587578116492478165534112310003517918229782943024253437833455681128864539644074994089818132035363167914941885346358795918345403598286128585927971910190524539390627553316702576471023358049279097791009032231875500459606649069967985231686540107325769896002609724076249580031086439927805745160853436842742531278724656670146453948996317046377251547873564842285634742393715722204524094502263387849967673464704573724521224503390692201571765422250549195969606428868003410626716961287969544339009596133934079965508440112099388520870289328729815237053089692533180214782130135656360058921329580817621714121853547350300816306285645365268701300331383895555944561137222929222693967275834123989486157756379873819876267579890532172265062470970926508797440954907067236375421292484766392788326748101322053912990661122341163221108833848747687238840394195313411341562375734935898222115483198408734227682678842244088485474484547878083639442373598912004913532041633100356085281028879815572936553195116257690882841736963716410797925372168545928708689204382822602725448559375556226541368781474538552268114421054825995960596382875606257535025648026729387982092033689919227824486397677710909097238808429302030209208833914744300453832652323858351922764146261169873174359929627989468619284857220539783522454241314715677069998923275240215889293365882631250043574353758173206656178709577958505766225338939835675672280762516866903046144184592381647895694954665844138183283815653617524245146862710392499134162867569816835702979214112542089769950235819652027794047386372957208586448950022996926480929874095324273400541228916256894601672351818665712991446425524947406178936988291741939568262217681764144566236091134340064395634325534659479228005747374593828275559284520245923234367498817490994610380079888830574131826385598625786760627381916056087452683321077802036565149292883828997760419793595113381695540006759207537889935202340926218094204675390448790599623488010947641489585894618377399295513119509921738900066446779328574538043605029929889937580523411412678522067123367622961989243297576810730573375723992196554018752432746702058648069323904274834497529760246150098942959565824229486757133298611265345614204411563216810503491601698344787396886174299757260976422979452899016853325047758008287170510512809629813426824192084527775986979140475200506399011291329633915861115519937556008250554874849370922452870499186690263069594180598789061166633569394057593056771081282435126513800989613256983687906270906794507193179663968834483451283651446669215956104193322601361538609259181450332519278141484677882376056689620057114160405604972105523318569031740442018193472522756531086197923081334296325371608005373719130518991807947467767739605302009510772832057966210989701962182258743109840490266481751012867148518467772574811250646463048119885948051365993000722114674312228941625539965088563636448830002473507848010222014503071922822360908475715250477569927655892322845509993493845627468386146980817796273524726451231015966889792413718309627160014584002641509682463146915402106573988057302670440266584516436795223162757937646886580333920900977652662923161101888062179580941523529070668435648225632631711432610621593917127495766975059883831460041649004971970618646751188702305349897743383239144609400611839878890739858669211232251179958268176060131315731553822581218328160541526703455310313097682944992974809108735994605293684166802777205183939757351003849077487201672726554946833997496759455498601143843835383538002296412101881210918642682633667777982338580216949102068768176118878593229845220197524143496542006212946249940729899958243269009682258755694757673751478853223768775753467860067374880880254360796828921536154529232467906352483669292193274306990657232845608142227431531904771539270340433364318606692366805904774903744237493725977637058379338586858840843774502622715481856313472948458584309246408049625744003703423249611497245377635870063499018294601745616752973065144892913421116780914801737686333646204360468140052183348494035874805227987117387261275000688127346567184440431710578498789781248024707147909573355481053032402063360761162865527195148837838804093982904607511215925393771692159197938313768256936674729192296511148323066346290254074027927167680944016434378578181222110811979634200602257624960555518641424590410130765096434454104699574504424086561002783892208606344256216100985496115736156168013093176657489938820583673993798005296715399436467071442549268639641807134243643339816895831698499967936274443291404380471915150340226860265241777041362255179583531835876358992846744550843891284670106318871639436443668333756845646585749924855857222958985798742828957676001107655464962241404241904508825005213814773886873705801603792901032764273094153164415557558222977745984037459599604926094449633449192950668308924699740688100272151178892660900563145860426371242450879815123172342694659961012726676787313443642125504310301264113381617313064765546307318184400977153493740675710212517376819294527400730051929983382023143355935860954770626391553376169428245806985297840426064936288217322402785822770689123689067829103242060580908961331446859974392028039392714031324779800510644759623334725815689752489589278522201056279110982031770652903366783812733716716424557008667685941344510373313516650261157632625091380592448281129247286601482680851226614713006225195714581821962333399604612389370372164839005032683081768792692842058629458491234285234643234191778066253978861188561857058575836315418335847020479032243102062708899094514011997100286805875731823362737972875375888450882210164967497687699953842251464746981186593815085612396828129908168426935702960268869971824069174166479984643644363705823723517327607221121736638023492019638014416213448696771180244569155974105948605060221935213824243503530705672940290766710140480167781250259304792941590715830338109733977743162555954655105618102092166181556413711262587559263302220933970522992393874093190160037530255479925334758009594155763650012351570223362201777850516024904486476102640797483894884485237362711067164910926678944525313815840697374839641409689919937302391708958926103480661527628605467119664437899152466352426324820527767406833438397138017322504021963882339939920725834428668812771003860338542662574656456018844308957127231799394064355365088521992568751757068223062678811608131428200387236894214097047192891023909600009822290174214935328922826433965227364175199378488604352869284564957743528900146815822758123359708237793490384370447342016719018183371464816521813791308436381425505981153531258310778605147600817325970857499360203480783305279773480606607946860963085831189102648278728501891730400409520713894600982208478397790955200823862286732868663206495486458902168510387091708196753763261130303225284281462927882920047435537956094534523256540401284008676296191168219590279044851489092697067526739808118616142672626124443112845678674735762074948205826914037420369652023252424467910697202509025310122775671840415759269325584075259390829796970812189711730361588838040419908725584745358342405702217305651097824347774909456463013573488383300901669285178074799530339562172580294167202387207274385248283007528103723009078218498923491998411513482602463909299235216273220504610827802614352060902530025321441036525794416002939410323864785076549412000027918175729196121431259584181193622811471312074915277097533505895675446486855523926002092671314599641975347793406095205226960798852833963492507683678279105771269384369699237533895514407432738927517063324962722151168754738745934877528972069192582778556407766371501190853452190051519428380243183249321252121722630743029791763844665669922986438801303392610975315777374753887046748261880382380674780111189768524793799096412038694050729056001409714364714100950024698226195110217050758932881877394822389589346841142450161709325412082629613284037085157741692820471204670840552693605789194174218141293508252465251691241743617640221072669493924160155243433967236591343982193758316288794486266788588242636334371411271192332335412586448825733453152043292409225475150547097526082274153349165345719782986089823109463118444336049668706954909081438184217333022553617681003119750876255245083874706968426251279234329051320469078931972921245824703253864958112764173278328718810566645821877789078496964838694439259948894878696722382094902997268288381812511827439801339773818829417103548682463077340903864651089193865358920570149008816781842155400310909216450090838001323311473482481315601805049974204861077136661376874235784485727667827300746908582145656453016225887365494925591782507001120723369624997311543384117352930033328534408287696118717855683294035641528453478279857877184752778543471441993352073345987697143232606354372228324919598443824283564159498018447369075873873112188323303588568345796113568109999077975439414845106272398030087168008927148710221168132928364291256506035270756089969317945257955372858163011464498400501532397237715134063060330972220173704550285972326013486762817892544390660427825826262363437565249257540929425569515361713221065201532398244225886765744427869765475722014450301600263332223829434873359257360811188899423159748369791912852629701703182212096165398836998946622678562703695250937092868877977685687313352912690478197740611577289952054399174475545674715936711980494456784331730080322946064353667903139882264478968418088574471526359546925637586190956286544632253305566477330371645155443984736896258304351755371761359577418768139833802364621300115528595619453231838922266362359691867722857899142804102206474102446721093874929921024924711483434623994343676160199274847346970841959308789704207573612843252166971902206631632612011934755943030431444088455496827096306932716519719509563057908053925278857660807569391010047040187229284674321957776193755310905913149353485527783151576675196738566008714622761688481301593896153891589064585996256531196409544843197031461307174792876296712117540449053705090698852620170496303299177255883134114588498778180908356152196230853457647755887711798377494510072983441305225886637783709257182524807853897784951661500210120400173799251952151044616342291068003611570500572140737482204584636433996005430070889278656524066366046352821908276728065302004113877952915814312147912467544980052061468558300493254880104817844589730540586221392066436597813096183380435020173973266690105743657580892801262576582658019104341659866152461891939977722567233718099793654220946797610775753025157839813117398807489930199895872369654224465477468672215768941292858939045122705458980471577486938730772398005270114389820465557688445312932517275633022390717704763129416805283911339226478755730848177771156930382882732822495946672508511193293477072275365950086116149062772163578149892409331567039401023825310376267801504672070611803456793505317984521491683575257605511727998204580348641289428596098222231445990595712893358709123501538674699442825036684263666261411718846820503170393387783244951277727886961839812582645377737677810643549030880699710751860162190081629361685536510822912091461186359922186365239526478830519838675782249047300637751871551262874116508604526447175299612661580873575132896098341805382013748288444252868664581639363366572136754921603148527106463573415363237050530733205149431282112625111810975275065697145947186146468497408452704570682191156886631435113444339717861871374165495635347878251378510479084640288603409318095135979110077450254080767411461753605937693370498695072539325413023205299834192559470957181137961680876558084065176088195547488886547907713614045203643145150116756723347879137085768802477794402990660824077701489662282982016700595655705765015246483053413589942024095400940164300773364819934743717619019447343611529257759410187966588027912854065126596294986170158981949908341712659458989750373834130204322161178089738819546612613084524153483624478608238045001332398216946146911754867734374304350119519636239354424918433005726952688309761336793368321598805740930086920476603782060538051509348400150233826286109875530200001101214419046852805227952999908219480131945361569590724500058018262749684377535156144581286287997382581817888723498568773624530530621431637131463696611050753738856857353732642062700172433365644391014985146916115994703177956639222113663257467748707087196854073203122456818463621716941101934173516792284280363960036642657579123956751248438317810649742853720046747190254081195025835082143669325027696344543734202115622865362347041207510010512114883368763777074357901016296094752961355322440240509478608175408768387309906361623831735109257387008334107002619173163569103619550130353142191481247616686142912387791597612843882045436951339284348487545508337845132444287922699091332697062673879786155385696377992804861738981263517703191433181700348544262370384795533111960522476296111295072502229992075761179978003064981574489746587381058248135797499174921100562159186390718397315062767279334071957511688494402449996546141895893934879869359560212847086610893565145639024205469454505913091435369513216748890569400880372022245867429906928649072660161051075927787516464796731722859869507835229612980002767802162371734029983241311273634535790854917686015564368461318016968661549806567545640042913172430196174888058106153043677555217200827703205009663372505462762590874775604345534417090630831566257918704527230920352236912721940401740762234411519502428570500850110463684113227208802318796859054102143731222797852051249284428576063878195989346648664455795904401946623500486140528334582695243303109123732065501050072428700029451608020726227631980139205854835976402152736908946013119882873214631412895810162694965922430741537698250200522230283290343561452148289321778186214300585861979806213281736838816375680332637824100154223169927536851294380271057108919655962065319606527719164299317152180950006374697190675178858605157172277598560358785268911016604755569759270662105153780792275172963309286299772617891504256107381650612011545196869305562158408955666883454107375015465458530474571283355928935321049013252696366987511038269662201547734428216416515627062549596772270774998750268401930848730620615255581966587518300648962546119678325327469275408328279932220846980634584073035865335845604895756917073158603921831202876501381253238503885302950909476857868899947016084589817200236866021616519322214520906609993185345223174677261860205255594538804455671539333225809612966167490668117999476688983494146823306748047803378118735469696278303631947102000275351237384868605258327525502428674016603385634574390701749552749340226761671406701471689629638779921808285029533250132696826820638764388430016574725272316326745759412911929749256975541713017908751940430183001688640060897861733460894769077359439389475597539741666137788735722274877737004265387953743518738078329804574545214585274170357567376425505668596829910799589116055210763307207593603172803689880567896493496763571093175096089953367358456608650576405428113773245341521359291585635183438302349793195708595497206034702401794272406528348851301597197776180072803494345890721800826939472781816510161600216504442598866830399172541769847940231271694787964146143255542906057143225142270331735375379815074007927516379866310056061415311295145963314010237320060801533798224557911097995535261048909552830831797067969042038854363870886333830508737220822542130842068852276732935736500800586854163867198644636311831294667439418687388962920564760752124859500224375710022521252021578096579445441713405239941524784425681172561359259167195755761164863709242130329059042496931283022905183380000121559508023880075252159858017592523982751194111322973819778778577207019366108970811669490808882883620913207425366143115424099830877844211371636077588709242835982895049015233118338301226581695705510860115211828684247325697851080537231054727809374682930425401270722605650998836140760931667049217625816651054625933704917609217076324345795487364289591564746192381311375882831311249069268216146044807969636829611949425193475682624978314085375292241131333946162432695004771711692579273869475268726244607409627024194560446652892369118439749342684422939676203136278972316112090656027356910652779432076279520163712575228300571968837787726109076848697026195244217667619552312477252376275653569330913546543998357102061138429076640659812632473724050442162209002349189329940013017866516778283256319834009792894917361781119709180520065759038619103248175542713735608773610268869277482081984817717482948491143180426009693656121697420521003774007898389480850384513343858335529678114998002144932096098543383244901834249820539158052077948836572240831217513070693997677558349627089739782749088723150662261139646188824569978933847098024926268552697603573524748171447856312883648241263856842455649817657928517314665494871710836896645745305265844297550971962595545783943642116857229539356998114205619267663863419540747884367941411499585767331563132240093867748121858792104982668835832344573311149625891840518014537404570443339306321066530873124833687648142867417209020526438420300363947374900848107310065158979900775723354058699082179370343774008753238426627551173063466675497188463409321433616050778249265926293908428317241060336458867580611792791612041149447058900465038860912499356026891801665094292348082358068517931536238929002957473627299580281351110061274606345753716455008848015766298218102773183448322189973880483700192833959903998293021449802359690783506550522697154390371496534593199174706641087126583193521773486828802225704572972090651214516466456471521064836396634113412698874461728911251058496306208772939760022655447414788553570083686419430251280746202134566723637926277459952078609154178800359710726450509947550205327525248048990639104842018663609050048214352288858298942134073055541108608611749497719426583314974926842358304614566956272220020993008561961883950992994608104721694332389440332749187485709378730976044402934559317608663273803887147318177751648586793521149820463046083550185055202108618488219460947327720031565753047491921444276644600054856937940189830481359211974583537859110453855361412361564338826918108926270624001780520469507982729730868949324973397838134640888599076235927466758491528951841795283774569004703537498018972645175219894808902128807909740894251507739080628053732107750047967162880502222300722900727315336586161473080392445619019293777351427989007367180323663649941415402991591431036763890585857184271674369362536576867059119897206163737054861202096822972781938425458255688368539750495844904674161869758863286982591877341011473121299960131748358734639160602452893796812686014411434890296114723658855489575186568479985216829986667513371900440099059755465626388290908650006416446025578738800404163927717588012736355136700854163124443628019512362079111873162283593893770074643838556289991852629543045578776267673166443869361427517166270354649607156077881489888372763540968523678208171127221682458822540137387219038268887749358877273880269718780757225370691231178625400920129156191826949472848763316220536764494854010346682757772512716481785010784412909607287726502041247106512770897853965549796422026681940074284045204014111143763455954538876146015482918800549244146729127737803732773930060596787598014397546647211315643897407847645546045976512311026177806833700465963810323939612260205165331268594608620066966496036209251193426443405551803475843890888189072554062754700674740984484923465274529015383577175056954713688287319382923854288889959291736789368870102564874968539123209186859209429313049281624766005815552230009865676686920095702572168621711352758775871625772214588755258134070792261029851608902143182291045326127835100275423336540936470717913663383446048545511657663436219522400374651956774244740485125918037352100351764684864526848697410209768716580840138188015808805998636677284199759681875373708626003412605770206987533892957899613491032918131192283342173338144636426376963214562587473122845974198351238296830104031865037737911678536564343890696266629381134732114834588773806332727490456062254253174272179306349414120986650583744479367320472744431234283146290413122819783904305172499057991767037291398706056851881230128339413898343258538302657266192477675010378671927878258945143265937424137912043313256932654969633628285760637827958409634905907169165537073577458265351444966150784237440084791839314429392970204133840316733931926113570153789235496346319534482804882183246449179687642977192398206177049429945200456562336860713029632144741557103758593094477128414823164611815691611998599928268393875985735785132397743881247735690564641840223728987235290649264360814772553443795939143390808748112967164832670076041564301552439120671793285519924530953599640590187893997775775783148899859212832481807971668568562823357740632363116850747469807302251772739280366804151400448793318336795487845773736645050893936965142242989307316102319972102666145691510612592734867568182526238111318170781892930172791563456749067254357755912730742180920954611040325822019059636046523992659498451163694224661686108708275239890189590481768242220149797660767119319939986394633426120296251541041874575040880935018465082035701009330174284213838281807848313008891124435935422111978428204561781554540697182810506045365308912123513915418843326096303647055411071455255816654022063735026548306214065044370697839808115773727124649113996469514013494746013550690826092146474086026411804961277849689676029231698556481198780591480982340191135919334377844156906999321171057238635494617446034753988016324800028625542841364486980876213933753579885878978801509708802501922521186402128240148371649707231190542011963936887775002565314602526774429890188305497244696174196095109588759600701245907765191048443176685038515237369295340073087115571741860779576429180223185192954873233083891466657799558692034303936794297676386133775819266917063709037555330267940762626331221318887192353412154029399279241271267314375226933136214504151060924148369619681015249558842651846197945891787978894503126288680622755268333972071113133703310717136455865979296891864668666893961578587134474863875528385747302564668569147769304857662650006169714587052184713863096367478148298777493566689501940563817723158060861263195784467570949463755541515545922164807619588210757784428387345076407264428755401295363337668957278045545926679046890830335251171093749533644156830196812929094847995506203487341280649448995889468371257502582476752877705801659073451910947122038076567481466465226840423342996202386172894788537140893002631636787661760598310569534190611579998293291330414897374276842085938835300619689903719981079918471500993910619632064393163749507418291083279990464770884972438518302896860454773570835752549504267141491193243942111945049289314589272715980112963157216666083741210736402288191086655101360572267625711130634522287792425096046147105721403068437500110739359461637294588170870718700959540536844523094349614491765640890626069923807554776487731275776406526980568935605211816398327622020538997690757067598485883577471499749833562195395910019429939259116614749440152494294878200621108388818464646049956895069144685265807423150448158476216050484348940706099508442707756541546142718094392682909608250743201564152795024515766331589036383420187356363822487951187469066588596491924210454909553999895208328869127942593602865318821432928672380463557198144703112096919164901208281316253607362916824779471189208571816179377629521786745893210738084816007584945029052829550001428413208877686925791257785941033292829707985931691913432451522311841196826219377122712669552548348981831261576104960042887564212328078093545995630400788484289658901217758566507145003678991092488430085668121858832311722524752073134999486628952230010698911451817416731840236244297293324842331071662633336554317508962003930247583593605611998995332262665352212850710178694677623303613280152426432343555863958507188952494877083100495809436100999266235478788689211074052056339373603916580995583956246453695113092299072949207691347568063159439123095418567195664024000411265572191117904496961184131509427436114597331380532127386817716372927587520726633638925203541211887746364491039235100840920264024883726172793062224768070225012735523926074916566531823362171325095488047327187019569942832171359930676081564390443955627804347718777640776869467975951444294939341725292363721742783193935024391999793954936904695916681944789700237183218022369114467026485975541613477119966901018418286199506613538894181915138534629130312001933515490701112005143603883501880651736386269120105431752691925410237321486564741425419201425603424475795435226112215586850313315678948550557779204552137999329962110637232157297955090773605009591732125648625344709521234410225313632970797890122105302555357592339214176331162304799902284368755158908795523869992669554069106506968271368417302488297651569044258049492978889018392743968759705381514310563851525188994989843078278207442261500574427095568090184904557175727242989228059442150237347486711856600293108897674967332500610593536003139871218577997095938397369079352704144404399077756805337154779295014304604690685373490141470245851904333497971530353977629793598270658366555027228399865853224006767984077556691941467860984980718328639723039616143372014362254822562698431023383421457330643833612019843699977761995204863187457202306568559506476388096116477058617165832098573749548682210469840599855599297843464912622439237774246039877289941270129444431530665808077776867515442019011971996130742250609773667178391371109020922961380224492319232232862922599976141363000691939199135163177237712687219496047478730816696803476245532204212398996119385719620932090149305326289282751980066769826858310889834828851114657497915700418313149328491684008766178314717643363856580537750452409788348208054931788122546377369730046809002175889261680374757147659762378365526015573115100389925932757991292194040112489136155534706977725075588803067000023692660242887464410172642145406202021336356487952724107079798872329525101181987235894761818106255722215975780886998239981937270320883262729482248675581410601303912838205319598127263027226269859167722966571744849526211636263136161510081807052249626916212752467215974216246675950818550613757148785497892976733341289847963508484666022206457583602053078695155746142636006308366009229732420567331953440535551304867326112764292902174190694370530185282687611548165304088533815288626404289215380882090617415592997500959719152754550319733251091602280708442697515367795810155416363695289894585990246118437341958035031101670859271484788877669596030537514814289273241340046301291295750840403087065618058013435007507186389245752826640789390989085953550995133234671426687935933747023963487324277789173315556248593831718248380047899715917397918790608528678268751682661401977213323177956119388991064495627818906073939297958648370374499245606511776664373993426080126586962150564847522550027585529538853481209612738951470417778548888033761278796672524987173429592543132081750998207535144314916271438084443378116725102620035527152983476191861232617169881619179357459095813875454484629303132648575667354113582092396966333524414533727608863494791102554031282155422026872176804019764963768781399739611515443347005245970784034793287100528002388067866369741094450467474707731089475558256237213840947494808234712734165528445301643388809039521083392333366792748933357409577489449524924287189892745809597664299551048906662049200987583854538684424722961506557923135192458592347897198269942950650228542924215730395596960843172156160916642562786717884763566280955018263133792196280781833556946242166267765515298710078596947798863305539659317125696675871322665895591563360810005786199364617457202952727975855244922384202580944486247892305520119987781080416552846336135322663634885362029213792589801050509088904305979363061921642079926497497411641468408624123285013007232501817386698940879249392082650059910346533274690023463748357310639396257944018606964977737675272231446107103808830413883832666225841636827633718691859234115288041716632753281405782796111510191505783685135938071442061110690207457490441791212534275825895942470089868553444546039243245786589932031835969406428276552166092800033469422743808698642017427392405199028984094748059289007271931635581352510744313753519682324407923686937938782217592251738878054973384905299786778327710243326110148012576887661787368513327437117139706601502529118895489653338975243203307500275801426210826560199907910564113559099690951730723173307198315854174023638536113441935455234860664078994509903873649198217929992332370508585268481132404689371651495514426100936518451239204623988104024219901824046906100916547239767480739269473919046391311607448995325760477200559903531550966220747105431963562803677102719914002007674553033512871933525444016762521552479181860279397694434563749978793029498149243354750719186651271971278806686215178694302663878614749051321270538365891832267415813586053620956534682164302554384249198366632998475592834947243607193751987388857798278367331360665258478666580418666040948356878135479778153745157637420551068212203654311371283815780070811005518288076623943392338269456223576343019519938480599066578077273301907940832063912308051043469845356768040295862962918434273996884105846986224189276658837178640146487001098772711552585566604995151469213974095888213395274214745406534662941294015048339907320325994900778630478133271305790413035181948058911537306024261683451935524784567542293705750464408939538343605473133441587898646303517985332269682844381239254492942666186542900297116270608939143740841263034665381181165758493764422203602990828138965735241956447479303162036601186079654700161503797892013712120759830969827557315254572865726244995372357293642329288732115934637842822598307848327598488780563074644162452799921779440571954178408876091847075609142964454458554350635832928586736646215356068891472709769397385788591592152078636237987942434639592975954810951403857190114786103211317405680238224383627594088176588064837600031803686021889014305402736962462043174103878288279919421876013463713369700047548565552592640144188388101801034920661760821380101045356511156993611262302453524223767305927632530749868301738395512827332533213442077912710088431578376308621231090608654046265725802349098059376721997258564515862030400138661857882016391929441879104807597533927515031750685334350824669661658646698734036929325864112980012426968201567025971345117349889440530875784500323373938521611996806115998855258986903898292778603443761495313425597503586564294929363060563079050807360443837612202221325277648378517445945686076435759640026819977727588299280695700170601376761034456385829529782518153143808694961177060974792509626447037087593741616349647053259091746255294850338358119319910972239180370283367533188966052808420353919600316078921378561919507117313224728983762364580319153101854383075321250470982038547773636424030992072155127294987786090551146171141737340486525183939700569439717562514029550592064762889989987918916379830520989172893247226468968138903485724611293557330439502920187916580277161338755460858530639804237666836021118024379659766202570478836663352302913201092438579877341881257027514413836440385463936809429012968597800269778558296880293216767023481447873678861019669353806037239353680507082484708885735046038923128598569439357819733896300976089681863507201209849540164859452832599918867800233686590210508837460866477948448960186043170783900263674136394218356190208911045056089645686096871510535484529133554631676810347081573313637687190915165489440668783591297544644800700094349547600710606625546742089605243644486568666899337159494882225781023093977280922204295232988312453566454169802184145670803687209113498409173230427528083459061807259112082468115300595652032825561128698362255506957828609980894344113468519533624575857487631325540329405759310900282315465424067607462834569737904976939191511159399973234212319731662310954443195327035499829712201649058857953311305859509819509841412852631327133003977477723743118725990058243082955512702136459498654310599026084055342925418381381875651053597660295810989256833563980417129365252294824797244902054665668045188296283653235596519350055059349419467379490745715576924440141920904702606164436215330164796085865466180620163767617021420231054561135794531922598726949757220527130549063565203995106163296697194538416251072530718770873789243230109189668394314627144262189616616393074988956420470070437124770291440310759666119641794940512585692917722070859014413069368976066127595138050164665478619587196250793405253163803530151684723767545642541640780499169008736708701572841173025446188916474222952384438600846161408398421783464005968984041680155290634990314677732598029390816200328167779441614058036588412464253645778763039722932002743184853682018236870788982111169598754739922507496816073785904861041388759695587487270104872506808937413673245659314163776222165109313794267487961044254959104026432686777835103024095943195550916875462549705450821265659955373529954319423677343009480762420005432849490998097707247408290501862154837051530976889777917194664797319155376747231185762298307919894653984031206323154231273525611630032627398485059624435166734631076203787642679427965969557503504608325987265899799635315511157927388191186693836832740606775521079173985991916868388322923085648887155217694120997250747489909837698960963448254351940601643919775611271146903489909283774640071900154645494309029822934445472498522439110609006201974839200204047095332582549691747463154780225700854656637671906848660638610171298885446795376634492469789023299932101108104315237919852850995102901258257697000857845352203205328334317873652620184244742878921743745800327585943068362884820034589840970939513989222983192318003892653377953327213871395415710911408968395654010991507942248080320836197845925614876390932148714140613649282822675418828257843759253821588986818241966129689249953597151935451103915783692318448512102232444664258823917642981506598324009243406537245056883723274765599406825784610130376585521879108779910937063857541478691650607627454956305950041194180957026311027807298427648615098941321096518738725009550280534319441338261340558811826538002670490272870889993894184931374935000932667377896395884210679106977698828327530912935126238871960871485687788164838440459155295956551354002294685416300832675080777584220894903733079530156577226197093256104420463385633782240823199992750121761517322517300894680245609183158014079496125463958234080683091452164127956746426712296104045301205731789776228117888095759308098091676936643070212237267508639405856608181104226355324814256312426648623138655000772635334066393033313757430497907344144596481125118920548465734593043297063009836654982618983183547743060575458425855304492884952473927275840762781699282642437978784208373329110784577964897272345473103974069830551105823048839854983988042974132350459013030296677794586175131177602095624644536187982028794283984769610887408382113296313562521880689505999511802868647565981941676480046791603227750158182647922989494477829582275417538028180494883299058517690358597835992934457161730950015812018245043999595726371245567850251598591387623720693919743832441220821405202328992000509629186389117743206604796843245801940150126248581850444257799062960423278048330969506062617348380968578084611940085108142830718531774022550488917831026496986421969340074525083838944809123869022079591108215551779709523674903113658704939075171303296122482576072936856057838174640045176153268783851648165137101779815948950419790599197109433757936276490062440872606161399529811219593664932663321616337522506521597683373797059901198714172791663528590055120191826807665987573243483218458048485043675831340469933097945088322677588500593720657545480693540307501504244990920677991889800198901872803046504056862383427550690382934690138609327776281320838603283135084425424760136847120836696590368837793833625744288272295431171724125191205427259695562350409136421577288293431284864638318920738765512310624876006325411320065935953316822678133378691519589837860916227275465369105072671820690656137091263734851302622199759331543453386067650481777065961507735693170747394267505014832383659681520289311091001672172238542379354383644101958805904327595622367158757473620620699395393432779000645979465624389012486725343143459513903311000955671995137097598860774371704748468598567572366985402773003408654901947123257456233876276376834667051887514062948693300441107604191063041404869004258964392451729337054544534238391541966041472991924163055540914328260318650742646475859809067659134408304770793480059300895291430445071832913115739886622656951498508652384421841073188997710626317966296503603647247230684845154336036231677040110368475816472678887394984887649407669512814464699192475006433700849504431925951662665371911270195028681518255852494745187469783292088080062889770295160127109281946659701621578371521503303568703163775016842462098346348137239888816154001572224935150591683937637671495876846445798341637130255203999196326314737118241822563003141189866692647522183288709850117063661169507909133044313332344198939610120892045558881464390227235892861998762746461655868090208133523913244016547646155529888780662021531818299939379793555277953104728678296078774248794690174326979119613286765781354763243912677664747373376648235788039243765158047228665034565038848827328952263458969132871784124072773360950063624152565218128106377401833794966830364571424975091344293641687545138023048567480678693299502535051585763083243683596975640364957673631374541912970095126068053352281502774582791337563678550971114400571669133929637761201380946056690317160306762456342020052343971466141890561587324552176019413703010002794400083142054607896787214456550124842092301233274023758929433299257685243242095261664420589922845910177515948073978608916568703214327774135917977541945617213226011421765571139884517349203647370052951793196281488641561136573014018322150137594622826002571981939151341208184603808847438646525335634728735099914818794237471565672792500240119532235735037879206440570524777662164147345346712143693921838802629617552715711688263017688533651521783419428417969593671682793725428776681415451553656196698584545161837784641469053459242115112295978477635271986136631122029630631212981011489552649924090356085900986804503928650060661988703124009630703001915081532226367076046752751259176513506866510168586608950453626458645552214358227615294038740096748440830013329360130855804151264547450353001951642655676338488918094695976181344255193026822217036006007526359429683383109384858160748531425151855745769121584591412540303261477527585701818742649459702380979845566605254011184420004792066917899839356393108431954426416950450107644242998287929001895682256301327316280085143514012752445076660917132273219679190547321469385056045299448862310678233874789328428152252955995950854475605465546089566923307872939664999356730984992131181309024385911027207691563946072745760891149617437590799270844052346354537271012102031373202015120373216945032258363636175573221296675112314361419381509878477987058504491886345443657309374072899678121408871614739534885175258999126072530356940738615183787192061503035566132428438032487549794136953794237367515767375981424063638274076914460990943472855372391161000072417581499199700784202882831423806515676685183851139773924340259568248006020045662371681046984679437978948168577716329910817233457473377371557214339338014964450783447700490767347564249550817790050970345625785531857259168896072158206009960266308403436358444030463007155233359114039915134232663822676144079589793157783069854060692225681591137163577606097636248094801164477646800306983080012011522972594255587649281021219119525999526399240388359874326059576910220723985179733904488060143673783595841674155479492906065310100257813200029723698612520185191070630264139677534228460050074691170670953277136551102054507829471246441624394908398534593665493438325938153820898286363146330675879448333527842513530661766376856135996936779345347381842135895226925133396901301941910340406810149088699575439118886041428287889439980684870080630811438904619623984679971499094560021784026411271240807258573456652315009046622625869614246154470427179952137039478842787433645309703322925322235760145194091572048827905843488361793445218367367376766902620165999224022976162382300404891172156023451974388426068508918901790274146894201097226322567993583058035540825205769017330216567730884021837828619797238413422181625562512780235647155867340368834205864339108715001846421101836668039222890936152252152405784333198022874300353620086119443340406558374116186748332622668233121898344426195218030968886329165161723024240622094678164580773687958996351443443175863025978341565967495117428271775620752558508973227147796958310258567176298733153754656169406092611988791461342950612348703757151673189194825654206299796993897892050502921908059277648811352865664192640955850236432168295455136865855072556652828331588654602496739064129850514155387379901216361656319982799983435175515276410214104339706680728157359635672369067226102768143072399070549105349984203643375993694909568005028965413165858108223073690450617855221683112330385032824363431950479742007088601695743385987004216543084474793161646641157006618258677725261442031936411902679088061942561194924850841676666041368198815136913744238077997534850178246185202610523267594900775299267833850821526857316413829349443710709377543206451825924980290003694992289822544796123601988358452015124815728555565199358929220134120381965295210172999995627042186016365260530642330298199817331421490918490688668079454926216033102954479372420095714032288679199937817688666136619288770015458483637752050215654896871048691985170484397031391784106445944189588325407249058940069409465669540142603789122070166676037636811370201311704944985783511825405017605962244971005755396814020562750778688590546123167374351841538850801302571191163763398842662612606481980175335097047146026617212976949648667377423983639981153424411923852199799048923461934463715947512681324241359916143439851287182684422381339342656910146442941163033825715125916210746364281339916432591749410458388237972919257330782612067586730226508588855279242399417884540857745165054073995201429555907176164549833516569969807406622952303939545094494448222140984973565117546951606717573773157707610556338226935534423702690262027132086587302456914053273594891027942287727996450462242806282419225059527611427028496515269105128538988072740338298722494123542482697019370763689567800062674726689283870102846051535805339495287101295086436388562979154500951675012810129308685473648429055724061958393015165207520176767089244679975165995744507544069167046276359084906938088768835626216927456771624791415642542129705847412403544916714239131332068001568852173538095786602052470393798057764970947821646243970972058229819734638962835183740090493771462640103286309957170561433008677099245941585658575569265438837823308989109848320531494080564808809732490846194107398208698875382110514195848807734103976452070344332838325364567792659295967719866447099190839178928368262872087022525334582165830419500418852444891770484214566035678989870324139682765181290123721640644593836339303346409094984673764658518934764114021532643765037662240167904966087662833317282617551433787553032076983957480641648920957729483256743979154129079834990263766041797096128120283008651542197449159952290094612112277212387875387889715604862875804018243939546977894025543889818093412773333557642488203460137005416630084758247052064917528037682700907571476504104261015592871698411201674809151682896686147929646033691544562775715734057161511310028475828661841420128774559241747225535579876565453103252449557211832015710264335813656663785665429127163934829184671365135386188790715228593785483061792212842786670499330865648971008823871719242658596420052031491644438476841962589075896773326322891516086394425647395247445568087176709500627958185235868628501885744034317196033789131960210829164986011268249271822390170681741697257867753232680811676400229006016374909930030511655246023510658941270809309607628950691187130172460233163331067223974073943786997045064863745526318660646186936350595707457006551957061928433018042419475521174476779029106315183556628410237919869805585031071306018240169599083170820354239425234471395007239658550700849752509950722912421471144048798691741078150507783789248576197084689170899298117381390327047820979412283177800513535937105277722780966138377735740415704738969710992606915701248380325058004436420844452500113904140125908869883313931560501581959548433861462168937323894245725364514153352326913840790482496058543168367801813833809039807251061431489443931246922724093733819192945990011305288992706527380217730765102175746285416935659802099314712925593837136923796352686113341515681896628342566074476887319873389175351877545244325850503063229779752822549492749106859192311314364541828701596599078675637003479052547758646027713286299975129029715362118238848414539379873278355601471175456606726979801232535136827493605572613610788829604338558307371895964047958446365399097356638572493669361063467910242652621926065782080221765335220263565082133804456260598674127287009819959920876989117225170465137791437122137724034246487077212301271332915519712741247002942073827149475243075468019100702822455242874350551958002611733826065765907826474241613713730923271553148199104436575121546258998961262927740481329600441814393551476654287358508452270069101259835307500863068940593735461078387184591759630149647670700552024335441170313772460521689872713762769196868066244514416806935274824715221746330603944505926793747530843407274210587360615697857649324517065270070804737148580100356184470512071520721547316358633497244916018569907454075689748310729036059454260267578432222615158976763170612523382675692611503780810797546110013437872529897055761525912825574116119607114935061569516259168216622839067575532964818121776033256485044724662705094949550377735218143631676212831097292515978467501043587874704572721726313131665822239931232919216716499810580137862318105120249806031123489684880493107706023751675827067219728525440594958989271846242052321994860841755600839989116383146368599339822789683486761946677000901377873009296105776697314218292226215632103227050067360545747061493552369755087993671187267038969385458188631281577203953430439066274949087177648548307329840144724651396191886306066895696312983360839557009956881988613763328829860426366341805256484699965602504156305770248160482599087407861745530258422111065695046990379396681283033991643262041460390721507372244707676419382696169802402363914207324772602644195165328019736171842324884128941729644148878745935800459137601658531301979082850190285424775475894798713947306134852757101260810681284371919350184170585698491440386435844117828883824437037317865381980989990316017299126644441228535303283715801420372490948609907133715218257740194400590253323398652248685564049825772867964480337418100784677584187304807677297127648009592591363773545187331739481154279601038896360549915353874677267931560276585246576805476409264818014099684947981637907740349924306065432586106964995715372564134010418875413453348411205656914701735388824316830564022844227902572729474068424496890274121726394545606741105917554237541113586989988136039493916046642462266846629794159332218182706467314996887843927143543882277988532415191211879026741913482748570884897862969483924543478355933415861773203347127408130437113028515802038172511188300113101546221637826035606223044042125400955185102658747802020013558216576071253910690177954836309741149496948526642273721881114872155378483392643360752746545434650353468027395077747934588185033987903027537609005554408481770791852505744712085929443897973878215443536395700152538298693639659173053293869947454512309268854287059504779998813324894368753518591809634519763466110651682304276289486404291560988157366519076428442441222326059454982827699739009176671484593968528346992263426504082694015333293146300939107659112367990509324909820025272402272587759565393021634472631869604342245559691566245668432545120719803729246572640485190058958562986398176494104041183750273508830379420349701529780665305839031528908604048185586164189361599041915240620677698992926487988039906390489130403505315788704647733022660956020269120844336390061305035757704020579978390949799260778024234816869147477292703645543482302877782391632156226738135163396762909539376103712507949827389632084826931274811567377021431537202914617545941565423679144839111042282834204786013971959040965628485129630074248762514284873881406731550700860726081894677854187089852559662823076903550423129546991393811645818439338902311165868306537382414002833915517064997366138613371430588863033005945699156678720369164995609595454590141828505026331676704738168723294146691069967923731310067991340963066554258777677190547636305760288001459332810611840193161084321155313026270037396129449174905153884377035792593784179695948835350407170273917136296889423511139697128942204829732117521600578039583180455590106590762227480756890290402309618930516880161001894446889587512960624745268109735702257952594582627394704777535462929238919171291548068720456584112307616378734221486821012562390539166381636804329494051429708059124026691037144597610995320015954561137642475857506843187711748169414214979796385322907446105330577485976349731374765826756760139902694400385498107888148362356017589452722393551755247456644128110659690130415212308343611105152189785573830320360276335359282168785970884924309930297300601410496820772422270168643110588876426707047377005622546574985060905976286201570158077985976208486772807663346006952084473568468639627122718272108485833193828378434549540027444591053853612004068587796058707199585378909268746190459524534532718105809029694795146999842772269895870700798396836217273367797378270541556054701424626504929501625617674438936086031180941295434028017246412636406619312551335233628931210333439403041170408837934586105507341347342611455718647675340749678384959128552550217162616295278153639223167916207555498079566702336161534090656433238326584289651588695868401163280189994842413073801141215501025429196720305898418033862338121255887283480657508620663718071536081133735264947686002845946091980164697818044326157377670247551504601999801337647057699288221039282305097891627731423234127007788571591307526278728814735506126543396731756169417920808409930605728892733536454336670062720813803708158227399526165780986225025625649529755205701758424869655010657557150664188465784421498132480282377396260902497682577589268794283483099779039043027966442950628757719454465629358936555038868658701701715881177490515912486498415180437391697472115264611958980020209759974184767606307838355181185015981798672611941594727960713497798496159693811614943435862465936362634075440652017872446545690319026248342398576875939115450689683367040457508917798780722186592978125092404953289297759372447028444504452881645454008543106126538559576258950081829513352807868297215621757006963099648485400780159920844595643129990004746865114010007431893226703388282388542496091756392016527365885913633497530030270389424315682643173761416980842126929732171098153647258398312832911625631662463904947763886135736094285328724349111418427493679819614393155947031309716662864566489291675910100993527068230689459458350487806031498526646078033527672164816304259045930807465894900572208097062175099796389490431802638843592859013544497624585101481172323575445050601895129052518913550142046842952765699378958404710687497354765447814418692381118127942151643163014147656897159238346754981393026117373528080220925836991849777533064927764081758445718794109966219297332151468551403074403734021456342657895121472779740508456730880471961540436150725671954695727293432037898854939474119092704630377356742787336779537604292794854357383573504888733486690291595170409600293413363311623623387870173233400100360843112217535660805163003429512729083615510776930760096360981920895909696521817658522122881364050742296357390173193535508829489082028916368458120108518940504360871630378278269342218098286639968742699414944788783623577129720632143308310126966545340940734099886644407460946214834687030753511723720988391745586800361414280166056426885800289667507116361504117721903106566176809422890311375703839830424629235939894462583790351992106444538210447631567627544266208392872142997327248529086906037336150338564622756361792646387400854223009684452800095063052840950277095143342719544411775547695993887523779584592169388512899988902851151815213460609312928464224242095694080855144119164374939480655939301100382484037318056869116907984003280645429864591641657685786049445598536209709028800651370276951109104713062990498322267958671938646367523733587467677914253777063594279830910019495955012772326927124655212393336540376863641995255937033812360654274664652880054751332625305428050417845982646331845189853169207333862541065588377540736025755861634912955493710903695918573333050922306323686928976924831977647996753354523103906272048868267546838014120694542866733303492070044410141775420489486269950206948447091570896500094165772869836022921473877214258626321036015408382095954398252914900988548454260472471952698938544590884116322426225483366174927220814619185751145891877345458740893631023089552715556121578087488214123425557498300679233262865591456330119941446280080696581417418163073502973334627112254526782414515680829244513930371917079495567017561150223974617391919134985236807083527489241081813815227970996962046692460533826893255738550536206036204284783881841064236548465097252207285107803744581910105504183408292823070893763166213403168251327421637700246114468947724804118399353417466185611442469898229583590280128369204149641424960273624633380993185852346113672081007993544643025262823789829949844650305126525864158212081937833139968128257666120663111173831513775378501016376384808513739790606445857879654065508377910554083854838315546813877839898799744191148841872208179095476795328742538695075309434200135523356126351486053546537629760275950194194542831227742323831059722864329306554221618996895951794643567547778941511012044004096892212536380048025886539923766723928432977671320426598677534486954994458512651012775044316553627145709627899390009514840679491412730808863325783734871476210020506484051800297458082918880761371223496308853800946395722276616115668242071063978553277998189132612958075604822883932492841513379274600439934211502516112776061629298899844817071520620675506184441314826857100086796619811115671327240603853588550049354213161506148711700556142716864317113297546686024014035712682592622643958641274368315197100839550768517913716717209980672719477303970117912669516696174906266830077694979842177910885195379169724719864901952710246876675173361053082648490046766103784047914461733411759760897895090334086427554891437426949663136973285704801544596965137666977600648889359827365133809871310897688765944554028482445877649181164124046775872761326020900015165976601681739787217937658514402981206532523026028534260988994124059265251650871330783144180905000207895980105159320501787300192394768761910043967730388134801957587017176355916911521448641912586827606249202815130364459630602777934823590391649768597631984863640634506500220861548381403377732092675224459116960906509128302954685874525718439179193830418035011966999714604635600382824942643610311104851681183448953043339679842852444854697488840429888534823380237806510530760304962740157663010011944815193803639348553085949239444654324029887704014992667750833217286904492870937319813919083365218093394590816362236516628275620919630913182824215933457058381585015389285711376092336678560117020460331833049023528321343867652340163225430401156239301369198109538990114762220526117975762889697746579083677573830329702065384913861557027138426446731805576094688657938534308923360685892295363984147215206099829011079429871926728990405140878621459504325871141177467228900808662794568539729166605764393164416979683360054196781044865257832448215403699010255539968988042633458799631915884587655467442557903707694843873875956761919629144711460007369365678108185692233148593817918663211330282562474755989069424354202619965836102244971946647942658505995183307701904036526422327356494473860213971228722589823823744933724630922193135047297984969836713097129897261870874619189400168698051751860176705102550860272239754078344287037623755691236356246251094544049181769540687913042687907054858398742242662847420885292974195676853640076348915175657197873633449307047843025081466079877665662250715856557250798296773578096983916988222126172640218910096105561220563188234345771716309715605106242323030138897171091650834523090817772554511556219955555303225228923781324752064874473513975294894571943567422926211517510060086480501125768946055046568367850262402704868476045564492462156238095014330385866567938662225281727528961981418540949836883285237055835672067203768178040204341676880146090053425423151989829211732665916325609210143481636512333869840818226770136582917654482883641094586788587142140194686052896843250208414670788467033131007370928320495484854398000956994323561458715356276172144271608845496499065398229942939313012467283452379980205637729799090201312799555423326855890233334296890654714633772240189310027615988931956520959564149882288215226049657161649236487826603226703791926823095248909996499269961079807932032296272787673335983112336667021053551964334422652320695327464939598502818506549313127210840071009890869056392968422534522191294891328567495548985504791865804094725060489526687673662870543046052256801648676104508855827056524773303576907871955059985991581308691004256888632541084274666745369654610823325697675248530042187896863503343146810727482715852515832360720747570742470166050126043192449652262485126301203284650195142532017365780010877514251468723933888310703955910844201822762249853823682436356851531972045527931719912284136069322162499720755082665102523209410905422920318015187243343183710514281754381255667238970203360401004937248734630120873726365417083606462479275379608081050981210683355381593795471093430836475167258641472438399275935639181457457507127426792469024637886434535895420834119512377625792047914174258737810202032548826185910846459392760047599147545702003331118826881619099153761495201807141623241554760681906471382105455041784670368536058377195717409867961145295277246073881685213557560523365025372256953555503116116997016128556781249425245225589181134589619521587125819505585017394119919862376568615343773707184209594282992979116756767260616673795607085012743471637309024166568759671845009132691525674165487138890060890135567557601532558236922402949275771906450920289086676551798500339057736338170879990453403574569611783282900757180630982137343362103678253801619853528315787316896477453303630070613941975753568555900735304244555392884764671596098862265881460506068676103844964799454644527140483017840755229143796442521505528466490717228044208159464535446863837189813458985713143774556905001329183086415290008178413503700128139818309230191794839297893432094870671259224701751302555636185653591278611671640591710363706925552289809068896190121262000984846582017996204199228074005009606141796121081429836073415537824428842437834758220648508234395650131463242742714837256350641556010372376278495050389055661232224735152899699565338545191787055682794777481519651048925137174484356158292546470200224726402733016247081753175955897111967023693778205454285168620161964410363588918182172272012332400293784802922216192587083599091422280290438121240081649356452006394478304021177633373007669885921829227149394658923503891186399066439461487920888520384727621811761493184133440006251721708148752787140983299483257580699717791524342326393693362160456890703791977066897616787365228207284730926423235223228629369612298028735572880514316954672043746690966142517340898335893678048348299365186532493964788891805995313050975203658801973280047859066150399096995314075345990763931127654013605783888456548116574440988047284471798386048128450866417281663338668531189628943125932982488438327229781146029978526834386213964663296423076268864943822686674945119098892064014556511536247375075747916494849961174092463349633926932751977627415147622688978902401733294996479647149762342856293743820800508652700471452071782492447628037400015946250258392311259991155221028101555339101343939952432150464560385103360287081634241119262469677431585083211356411006287636884834807178481552236671831266300074855968649575869753196118152892532111499029473678779026647613659182768996876371948258227553067212083563188439632120188370444057640489269328437713103644299678387181064820482978227755263477746381093963649153386159689958039389273506489050083151087729987954691736605250587809139324511330399161954367326070336843251503266852892444060070897152868576081708876026740101416079053624260723906106566448788702204158723705473366901064876304633650610549699161099167818271989976398222763437109249962283467271420731444051181869556502605467963945043149731436874246190464747286829622959087744144907615670872435164672647466146704276983862428310456913854588821585630930370666840205336084070474499937381145522155815850019995562396881306244304393681607252157369820811828331561747193930537813531756973696287132389021591070414627598684899473356362041358542540513869538374891184631136493771810893399088582354881977096082496605169202264314883025422459771643889449160751608871834231808764826646301416045845626569956004147249809333618217461426490100598895271195001924691967594097720230970612215441909930575490801311098277134412803949664420688937051139367175252361126247149982431651146854674383503447983963873786765752536690622580006548787293068852545676415989499368991437680029825907992472082907238344024029377579208971041075480281183612508651552766739278601787089285956161092881796085864125910214408507362346701022965252778504451971222591302520488900042262042742859605152853066642204310087808123232617065698165536906508505439875054955164978335029906134417736989013397292024493096724487455214290783641841621976827546006238369491926452831454144448002775188767780095001691395176234242890324534524181132592632119434128874873483882697191262382293876637438348871571251542476817020574189503217616372814933526413612045658773057531175831575854801538940707632589316167074596179340148216323878890426111111457066188881780525884299997734142494702841311021920312259927905147764371972250029228157521766922433322710637762678293391186452908392147586769359604325754372267760698521885130949527970451303512274340584358722533122602621140808694115982950749761515230075678922907172761258333916666046357553277050994048128759742083060164997592725283050012408135890478890192989807135624559499344536617733118245999566017484247916949328769073864909330423338689296586519476129989328239859973098014019393261265896712023412123189373638077332936387842704825060801053711705317420905734352144929617376968511306146583062100962129676903197431518490511598753318681560449278962713930756517413057559782531117530150909273005608875800936295944437948315899324071380652380270762423229113611538943832487889518125838818439285395369380406966884656763528962264131228378284529409742673949944995314547602720181420007236706526326880145463951140767398428090542066953749568867553050995534163991775634071824114404517854722705269229324205606315445996225793568849774037373439098723481172062330057533218497579205668826031498657975681212748875092860909914957522033097777770916642112474454785013436339976691695551629243309661283830009275010940456080216304664266967568761044925101091706351566107049905702470161091497848235222987582372870562241426683320015265102280638594876217379864310646708055457615277522332348712393065981739483369306576241535232897195797471134932859398179986022657838714753190081274940781100563898973061226932667885343769837007041342137037153960806892157834699638111535292557373086199725615935104440857433327266347198453567488069794956125288226123674221914352965755255030668280389351602504710241650664993433408139082462488060758971290699679467927766897975251385147276351781040538823791411287624975609059591855464152508845139464260928607843848532362811425468661423723648094709738327400455933619990338361991925118651144037158801136014238164121770379879373313704775786761251912431172298105308836315457407097273563653762490854092463654013205458190348344233643872932765995168951636159460619783734802982757441623126014900419955262503397437073512111450789645478863443012927854916980152323699896001552208364689709090818539555032194614049724117047445282537993592565310486151072732461939516019060486208668590759775961897743838909615769796235526917834833263459892813740723205865159340655540346740182468046372235236361528425261295028572956154373149953901867181244695118455495907317246064111859459604207842349588107705030231187155768182285380922610490087691824941350040218468841024075207201125584806714520404363884161201809246781232443805435405965390093796628495029651027568638058152550377951411248186780858653409614340330769996632803014828238422051484569676591585016869606816638087008267559496271956414276918024331165168689651047064081743786628681852478832102915974141941743443840224164307692266148887209330354781864923436484921506836140740449014023327512750436026297167865606043657099758362864910537387233578569420005473230401258467404446140294257120620472387389305807197913191457834564521655707981042110564044020531110435089002651308812436917109332454491292661196085298564394816201725171420378932512107801994653780516083209009222803286297346245366757415269742920600662283161916244816464651477713029562289053332455216785873412103800795427483209188853889729031267899892537644609015951825652447454583006071556572631219507154348720758490119578053539706193228843012128799606665630846885585420892440617466029293900044091058698839998581465782531236881915642162805296208674363723557314448123937728124051544843679533216868955767641544793646691345715117464734994845663448446106420046242644174095434710004325659794839368051739268300889661582550852565524204460979299670928982752996150038782702799013971833070378336538402480575518886454291855108475208019018362229894806324015472824607018118970361439293860702885294362069754160313706277947104930608344389510675887353002081261701674829351818344639909007715785524892921172852017447100820447283463289242663477518749442845732137061151183738491047851510816132195998550424107066143655266061256319660569266154978833632948224596306653699987987200833307245729402211384425833002472502997441624468090471544047394543028693960386543771375124475753304167343629505603808213575337528931879777882722799307385019191732016753044556275653312617569399372576446696397210228910797312020518324693649455432572986200750723757496684008747831283102075920493552392562503200953182751024523165488207871177353113392410442635996903508314440486923803798536865269976863126003824994898526656609898898424980268132684868511050095319083493084091821071264439160919834145919746692980907003390460398142051782507863394139483199233417053786551853045187659710057364129334366261563798472786292343188998970385725415716982184534553298972854801094443345682153913210026628625439448751069454300882789756198347937477861306835840797045823590195887636444312885283063177678845232187317507286461668088303906796345228919221434173995957718647925979928445766713125549316653234416772762156171572478432211651460702277754471648016453704850792008805389508341950069690815198652439033747326572998805839523141023765240452954281769461623382082058696436556014506543170115877932017570963337825994465222409488707709042601486833536064911947785523818673721659744354226085980233704899398863892838729830092986998692991703834332136436686234519689183062496113415924487895702005191351024792583286668379046164007080148312287619102610510931630910744173735839996803332771571594204130707686216680188843922695821969370758125538960319688781471844099209137722475876454461926923295216290158225056588085441201956269509173121920298286051427895229697613172722436718313070024275385925077550265710691994542485317910355329931893821097441121960957944231517297589383287224143753187157977955049466999771517190193159236130739547595459449529057513369576201212349923044484232731575693920175822482462556148549395526705284608030097138277004025956972906997509315703683710881845475980050819509192078508423417459712952926363462282188037594590587098262719182734080870399306112841581229415401988227701183361217007727085918453139135062691145962169711746053228187842111354789574592346756918796249918449816248210087917597036402598509181911545942961274121020650806360310694993551263734249470369227462641872157354126433649451221014447529957579408214634778513057934159320602513223860990735348060536549890660516682794347111051896248208226144749996037726917733365864261796048471221570728468575696603752410684494952866917628642281606910625010570005689875871783869420632263034272353179628056392119702401511578865701151885513194700216701333293586518114727674201830712275928838801041384242535097274262717858687777594182979500420785366551763399315682300859657759359122676237073959761787668478384294618849822405832206191893397053050805940708397525164193117001174687871637715162824765003451789961484808537614464255314222986411298323628207059573148215096343600797870221709928796033405448343351819517956876204762956703794992848697859368226292784010182951089000317471208230467642745614221415424730489369250898179933894613947308384809069991266159862943997455558966212424687213804868868778555673373427935816150630096373115071565806342087111763582595141435181722426621850366433657596288695197599934087066001326868022594075043050141668544268187328696437724956286012796270858960572784326506527448052187966934728722066408102852459193866828985888643054609514817441445454132475750664136071156148775560684927749390108659939417600952291367522985326667697785544552917202503564576728516251819439815735629864038766021939752275079476069776134729325433751199458200014719221093344431878120047224353990703399890201012647516418879785671026678262332532213515461301855578235103275810111548608553696819291988293402918588111096120215452266489565845557114783412998764482213918018637494252909945637259777531327953326345597788902638914635099223271987314642548746839630369018380033901237263172561085731669965845366947170369620056589851484509172447092351081239240762992855146459942101346754093979018467857374362074898272852021272329297390487744801909955840916262238049932040224126516562803814769244277508032544325876199504222507371448349538907640416987445162882530330709642546218344800765978554044034650674459150774782438779693486603966814844104755047216977344706784450704202144615955671238415239505783062625877876861828730771449900925235890838690846565776151186146416911612422975990344134814495199931856269028815874097313430477326243687961527069912285331147419018871339951404513301534159564011373312896132283732419202309596544863475619786484855317528088535695415904857885286594411644497323356385988435313513832948175569120855955969953319537019189007659576467442075589587713001860572945652053596508089928531748459173551882753205107334804965529831574727537588716635562740981697643059491676975293092341582766067623929616362162780705628036487829948726491693685617109929676982081991992713012690194156011009153758449333371332633190340348927686839805701165744409424771061714112639048085420285915098443027835235781517717853330940022400519451952866746668800618147515832362800956748475031242807762818633855219722494451907901091170300517886683788579654644690457787808688876050047764470337666955527752495053027467693854065006582745443993449015531651442712472820448276462117283486481751423842636563287561694094486810081514093313217061317705897603431717534155286247947405105079345381414230746203663719865648716920283153449543698690048567742362618101629346267905513356547254905747025638888638515052237035302983799507149789138869235831470035400434147064357677167549627361849166651940491107769038400666038881311708232694201948570676285165567451288474442690177571531071348831095993351350943252352202062440013316609945200465518705123977847760536022537227046656981602901625630274533904230392516224782097615844056344778309221971427201510479045437502272662232819043398878656169242815579832660327034752435995350657515820241272511481997236596554405455311980141459776801536872646011547795448469352825951394347658987083175831231252361480547478871512806821966903094550349520931427014326790244709424562060703598918253567070803175712445417241579245376457700441231958491369416032762580416421401711865830670490537252271259812023195508013280182187932375802600711379852444106019468945111976625995008217474440054999081641385882183480839070610935954040902212644670929943748422787840267118416462531759656253961242410325935139122382912145157745469996388147679652701019115456739206452511884195806581707430997612837965016657595286736034913027019169136842481802082988569739679075781520352027165532088189979820170549101506005443360996000569063066680068057785065344266515728485192109143924403553269284562625041000901795593692580165834735996922910883177677432830914678100026634131820159507656659668460330399365545816230218631290432844630837694330428066839743644001078637316983472480286252977551301111136042303300188135147693341340010324588459260863433535349366129351945062034719338784334308825111500035931159314632518701857935906839906183804031999510061242562372489560611410872332958689718739563104792664593010872683889994115059264066083735660481610573610038307777916538130955449572715514450294498503760448412584725093624246254817497036423687682300399720387290506626022075925645147713469068624389264869057100380481216221837764425272390240791083995764382023127606223239477823893881345824632550129244602352076058856198763852896641250751224438941973972427653149365071318724989814295895135704098602915438811794376247732916612032045758511443835364035015876902673401867871763134651776724062458769959202145999843013793534024428600274799493159750359739335568051138960898013569119850522350536211136353657601198216434090376476456500173505668717682156451568803132054666513721566715518081907694791575211578734783326335123258283953958287756489672979661450160133199775208868058978506560948305431172791755340804519319388658675512390309463379517546426816211926889903992764569325622636785911131781740870606050336202702029608539377160073363743410867752216150255258290178779282030004012031394088830645906433153140450637166204359190735831087184143808360043113259126520454185378774277120635647605913329451302794651551349662679134577352371238175345647900922389513370755115754323240331520387768233996124655386907875300395403486923365673438825814737881558909439828917494746059404766742496336350289996491612750360080250122197665655435899396482448621288467929714373455552050075184894569025803373261754925973866584261949802674680998325149004815506326277203862695712490809186222195083987083726065571112099753535382193913939036315759739735407928656112764588981604537571459647804964226002753492683562915842233247613112376488141219723983141368387665069409754042808469816374172201151048098109938410985447018152170607621135484897581850132739212413934407249052519390261579152591128185590021178929110553518491843603998283856531922749027472433853328267736664001650841483897125681710700752793349184167936814004365718910935392027592734648324916520792208376713409064353624955578998469452298453000200472807640037197244470075653925460529630408672093777023979394544160244324683202319933835032197915071190097338756046755691778082889435361484561686022386761616336477143026431091115978020886189429135451224157315427822262664617636504031284594206086616340524648131390163958815439140712023039819832038752401504162034749223668499398117781253761327268859843662143366538775969865470123216877174107063423850368308300853287921399875887950357082614156601359588368670587744805531947135846459348996374680499851007634485139208052720261222283029118028672105087499842179913886618532037414116616901563144121141947565821879167296296168792795510026312039141749816685616354232027234526059805633347884284090645659502114985371259751898686505881355237797312877063686643703322389113563937764902000749815759734347102129553160058659956177374380048885064739970822802720858901400419600715430750248512453532815275823593942205482552492238725762750393111478660809106236110528951261533835893590435781702671361011620702141917018635967288511629962496847984502776331708150692006674349885585196526211231375740042329282908597038848180275148650625124415674024528525106404951598088742892147052563055272149435461313394648572890274861031263701266624660690328356111838360770195861702396784913909346315084806794534268644497078596661426102285230167722675369047162132602550129934095967623389139601500333066976858830943788458814524089348862232135601912412036631649543419218909924442836338509770742176310362915639241923575207519686453621898666630290744228609046238360601766809544614349958927276580738915455170479724242872396599330084778813955775195942757758822079738881113559178279108923394640065601410721458813610922203793020463384455656210953856065016175549510587790495099974532977130143709502781158002412104963114761435616494302397026782170081932179099779652295944872953218019595689797701319371288756660707403793528910791044924856920739859145206584953686623676430978501630157878055938613404960305855665056603158406012596695443140873783178684497028686370589014222332329448656180430600112319921762845408887975831503592827286643612276327636336774781660804936939407636816065716861058920311923224780004854653777317065686140352937555738059142578603819558935689906379125303240236235264548813980864185398904214815174329027922883695091307157653692743968925339195785483997752367965601588109945880306198340797824672662720230909835071552716424837080511897838110306670604296211798217557390195289329920323163935945272994975127916871220237273442552773301980496425898923294088966850072583924426677061524692375053879651449526295848853668868430330258967131406972776758544707550647167862996158970691577992904704867147765068829936971344043328659634654974448353013165069815731391128317336523196798799826450465547057959500469000484363610106368889365535419324910656845788729672662997559251658830362269939163495164999067212167254586271200044948418183878983159287426369971026569717647398176673060094523877586353732704904694775006249983333973478235690939647084783139924601706164237766022732168113558132595390377340250210032124071815041671309802012036530588977228599793369125172126568582994400627950045791384641311625415403812101396708036761058986573927549885423333468297737654724903501673941823152577119027568023773153241042898235898396699112895409936462201737900063851799754858400323100434216750968141665295340436118367719088383937976426566898732239850424516883136081923117746216188924335363895014307589732112946195124249158197279920623007140717565112682586314191875821065419007802710822147945212906402574044420210425128433704451388810130398950682744145597846012093689150046375498547668081352587521569876270815057708190995569699119774341603943829701494175824752706018141403920389961039978860531977923644681400933650498082094019562537435281720391465579690303631166972600186383039867749342697421707736358097027185401525316904051697497026509468853388559017115999515275992559493690701926462653879175263041145502168704866019169682144245963987796280103494883082449305480108584598571569456044490377177543661967998006041668053053473796660774868599325060910487450717687564831389478406577315545430117169492834765839931315784098322224174713322045176778669850704976200376154120510141442718348493097882534243237676762114374158797812885169887163803403775032698034143932902398489170698156053662171843746947696007703944658673524898358389747861620601171340019382742497561151162525513134105748944975274733288746701232813998420478702250396526253935352702903080998111040642166356911796269168911265394251182491647898892210640362253612922809536932627103252736260571103556345122284978867860419920435553799716340031411940200515530607486736764315536383685404497540190226068913089214107693625953559523972235355390785241358757820824104428675230127376120032104975709751987126066825877893800335626118682689527948386040806330992390924941907775539058178762058411388613326015770909603786606207196653158051366061821785662314528197823601146591643451200582213929786216507105744607993886227883500627202580916612635673938903224821883485591331665811829595008909896556435175933968382707539779972645120035370631155352988477471109912434160256800289276622041414331520863185411327586576549863053852951616552455908999866309452931267615750653026479131812759908443375950666689085915538259146352796775801826828527880834004514061472923541110997252767459562335835648839632145180253952553404278563627303478184159924671683619165587863660132109608885700742215464037786082885095598451992441621288819637639909726294168606692890543737595939754895993947730022535020330859763343784445852688101518000744910674775930455458775399391853808726836089065709911409934868148560667970567282887064034314243879636628279025043452169983331275234634925473174369469598241787399516240142403266263465902730667486790525064457334289314655495189752851257228933708272216920434247488470844713419958388645480144372587043477821838255617734745399188381736609926945109870831704379957063884516888766018907800501627032339022671626489438114967471786559111563588525600055036138432274236591282251099366925826729273479121855876326441616170079788770679506769998298472695196725394520653021558553270935387383264098398320512892527872193222436182442990152372702283476912558886234855406023887200580539951377132937503758502653792009020098875143826579535064607159419271952113610087560850624288210095901424945623837271559114390814485749663062703896958013035188425134907577273079414835710899672552782289693697533325623249283935124094330240905365612626262711214022758406164486422596518164031706968789738760155926000870591503592036013544259345981204944968511089438714087014467541692422612649393610127465806335755480179702038355678681809872594469988076712985480513344170531889366450921260515908185830780908912094437828486917891041435475456043753667757961824217866064612087828434815127288389663164548948948287960720580389113019313074261089008121573775020465120974674988111965863895668037179854912994604956047243201254414154558121318450221921174453605203158593869415328872322166103002073905735705657095131679826875666168635543566807440527102112864274861804872767556567100475243903847500078947941670842291101235342374929553668531263858158111521190303290761956547854682748661683532739535195394244155189476836319666305845262792091871850924448426590485766974314488625449995819458703860431289535626184306126791796222901950611540839395525130445969773150040979362423122598409141255123887821712752702401978117238564503090088951642515535584927982794412477092829770917654050194571815800963658817905985991435632939257410878334199588583939162915859165677135179523141982667411730112541085643968186686522605938901458375560997099168746004312791340913837031707743902150332439039762299112840422130120288308087117290081950221655560267429466728623019496801019351906471032944138420130484238591350682853544283051618473253929973708117511472311134770145253894446952130789902584503931887087627576023813898517421525606577636179659853297912319434995486731053077751717820164174407039147086226998310776571041523202156046303369868745743351249073673134578828532087852099549751458409113150076077583176502723655915111071315968972916583100235215402240588351599347693121525006208128124842540579603215567257032057935493626256673132183939468852044027403477151608150919708399816951635616800379833292143464256971268027997110392733447097936026258442333338331003842084880605102750590588559453649918306201764543666490436408163538388000460078033105254990834994320077576604214972968725894386843035726374505493061913399535140109308066469223605775688983231060650592534659654418141247087265773190091040079619751361128762062347655427056866412362423037144390376427341587529159645663043264944550114782498504329883156255228728586998808970649120325640329686105800143446699706811154195100425647539578796230416194381995867644674673502128375329690286150571809169475247062569167533194415107942647980216739919697657927057431193688395782645870856504396409925523178402303584256727953528247057007316275565434676736420503313645977140515648469582120657303567078756698997475046167145247113174122625301795575441079249944428435686728990098925777890869569536972651752120732106601315311287545295501544061983953346231620150638279338813058974241956679767269607662157070340000734227308720210091796847886830597428848979981688336929012054488810414640430090985644441703722255934791231764931686838662451175359965143424249127185176332559061751416056605985258099075706661270468490606423768202731457291555350287459572560540576975972113389216480848813961067775856402566652581049341977416373124812104384315709686182456729605421730065305160488904130580676350855022365184153236285873909746891983776665065207679007289923704266394595050815436140248883326525197833369920102437212213424671963589379718894918706056577139658263805419196026251110155143384396578407582115613655854397546508608122902706875242569500529270232292844090447459876713702347466542811925702745262817037300541200693022705699594801039344978079963695379473529644565823663750110968940968693113522586150216679394128642928773783880554599389753228043038384588028608126593558902462805234231284192179707754415263115941145189593451613130195682703964590123229952901774501223813705006205596205423780122256966264918259247276010405198733424896402231692847649313958605120473500304258445093071796029565824953980536494682621725915222447262972246882917994371602028231623477342826268741149333355907576506979204679510856862716394248556835969469654242501352275604081951932978595368579862070283204642604333854271386614084316210405030268942257265766732897169547054820957480493513221366626283294181965242992175221123556663841014676672804450492177294545098522995815177985491542284562579205206180036901758428157765317127737094661786625029202055149394866571505457136753275174848064280728557546473118570943677210454420612390379039536730745119683995178563993092180568571808620453531851517845534638292080913207120803469193500323433332208882060858914574121106751762437633645121013090583503843027845270002120458645697369527308549838190600136994356713249229783784767415537956941169709683771438768925816861512687625028670522999512115695084526902303309866050310842157321982098620152854812797699484856326952971488510156133640223388407859181305582359138889204649785107885130801722231560087789268919939665884568558772580799578935602606188997352513987884365967835666952101048710025318223429063070616640361275235808624669987771679748501460848140705046118450954130611804789511615920156105838386393828225437509717084050892049949682990406660787387627643558004283660563218690475319018964556542311050899609740031816476563962567956551130754242788802558803228333794273197528101790084923019384954252072348920480455383110899619584020364615682755988161339382236216087784892973588224879221935458253001519295890093493459542000296081559063908665425886753192935478092448814593671016226739629196234232694911031560964204413713242243924551174260410092391701624952207006775965292084431710431225261339014574569576476110738235503283483085405146677240970688976001231649674760133305597776865505848056203507204095206350825700510131373494828883931622897707484652792030285140562236721782479957206158372379018406965302740689742051356214287547949913439708094778223158093967030043372459921225329166004185794221454006675343634704128260485755608078013598852596427561917272601355812858948687497250300498200570300659010841647544991761516394667873005705736163602248430275087063354107650142967177452040814033193407905908976666095721501823860316639061204769842080866163586807223373379987494730570161193248700778959691417023293827482557801097279331320821676114199918050096823058189712941389506681873918317379280598207111788809539564333089025546904541893547946041457260547164641341278798683341743604224682632185228425901369352228155090471143370340711962090599009873193437458413008098830420894369620538342573206443818685771635704985886597034990201226162341449027805013067116503030260754260099341721926897422079618249088321721520336005673233282003050479265518942160392640554329029896696173157827891793024481395451285545125170089061910899878293306415913949064231166598591393127728049822235673195100050732563898161152154539656398376489386528671790887314678507319386412792170151969276120982564430460870095723669598731689980384125687744790543592666142746622862874907376410742593060315732807603075033103029730961204436950891278803415665088998571073063884179597212017182347770714639145506051967967851768146907148092463516878939987413473460922607556250492147674136776491244014415615967647317823283811822706072833744429094951876772491391732216893087561351383934079930837965171792350043480862742385109514201470347045124774566495845352801848743700654409280468094397448798916592852045109429358410688184720250933273860218852660141199597068873256541629431585591006560958931324686694644504910831283979479330735501870993774067562742293554472172819344311234558676740510885327623726141122597899363488499494402435556549795057988876319531462127256369469191925948712843446092935567014705292035025317967677102053227931919991775108152404254779150262154649702500089007178904610373611620020643257541887791312419209785283393043894824115520927355699271479539058653219983620544752423802969573545708350397638277788208648357588360241130717762068049913342029093153696702600910870374152091854090436302495847739187119276192386799109700247618423379987290946487559802840626327760556309675787427231453126967075703022035720798417555027814993974836045598920367393769168187424977749235139115162412273305277120056306410783411969093209783742858616257789678113449855791930296724857208420390562667976592134662723256210040566702554425854938121539105153657824856035920218599442690715339866613620727097744766107891425538503268842516735005516530347819510334335067957136386105909765177105986273018689907871963147951048522769959336035152639880524680172003222805709123031278844423614795931115967047075115326560714864115907423131106463761591635317977732715376788940951988110598399156185377134039015110507991689225538496643715041442319190812180479788917265487280455226000965840020626487286198315398557476523877695770116173157842781801367892949393008127759611012358493230975703864080036934422766528496105778343853744663117203273844717310848749858803759054775837129811072146934471641941923579480358887333675498114554993180657330992367372947831438110342222081394828181904515800530094488121437124489993956153377866613390342478948743949087258211942634056679040420655143653154441767505851510102125476557879588501684430617925398137931715272921348913848888098157093734704216697708807258208680482889301278777601081299260079103914687645742595272447527011386127063452477939225148435676467231317469946718925378749864799437475109516127499932064186384216730470508422723482462598413375169041864195451897531364361559246115843599207841161629841534188610567766330201210178778840267536316514246846063462939293423033872880260649161502207782063010707724300910227603187311545785117891592227568618699285083978711067805298756858945498578684898907147633487781087754978448054090759162205194287121065519384902263680094984400363839081764502844060331279875931095793201531634800590835835895476878692093014322085600169769726209164125307375443491563428998018132582904208394662653580664143981992433536608516445403131857255523486923544918612558086293322626394060794406533239252119645369469751672580339147850936685326076002061846382099132586006137358941869393325373236406294999057417374298118137288267374864962205158986409054339208254131814002271701898084491264021752060110982723145136874509562591636331194438934759619535643439849422098834099734875691665902821093334175702146601041039863127661551023792155421520690452531171071591473928093322865308868685804411736713172435989437140916228012636041197911624221084009519999547620552317914874278499159842930055606035974433767217053248461678166723413250828814648735434454584010992186927266947567849350192368608054388008469491459128951096625072041142657051254861014908403569016120457440254669242478738610073993198024656993012269852222447791511382871679883984227964794649180488053063897364470003673312369895870373615703707172647071886356385484352340526365755893639257477596469156731449460729945284797313171448405561575051416550402334895822052967880922747488385918506126504480743654171824438653862245162734149186096240855292643395317696239057995773927987321261011734261079833150000401216880060279042240833605230302938103792466397565838336288465687524748411412884910093653954705105622431994587971468577519044188812524928633388953842014117157181147573640114898899701819828053784265681325840252584432519712824125454095527186164040072091680854158275892750015107974842271689725540204956759686422121098377524846915327386579849911732267193734556409146532865046813578914097588136632009570089276109153329404762953189186896493268977056333198817030915502842916456997201886652520806650918498229493653518648338191703342517148394513500676726538359647947934806942865742909098200693580553440105477741863867871317231444304604579746277722680186470982637363787769540591406418829258542276704042023906255267132527006309171262801615198799491827405675580512842586835505276757305531990496418585726702990079444848200351891361895362970226130014746284028613028694506450250291314370685830801502958042513613741911879246650121775674280636063546610028292369478332960895211026874218604083338136149644539727041947649506583454707407140632229120814670541490521289174913374383034445793381604491651846907641384264882589270217426319555358361205495125932494070368632026494752165784162735435848293272951875722201025201532621131883537116353133073734431459858502187715693917727576501119841771511034761451089696579277247044910625289225110370589539953989995404024164198573501835369438958640190021696041460445649782322248890455108401775337124035011870024432542175911815495845388900229290400991183576457836492639393821889867603266053227963468740668127032876564877604679181767491467272525633541309425444218485190823238536517706131264814497231468459570819262515432323876386662379753801250124790652871612104490307307008637250171433061864728383506083308511846599636348411428157505247153670384954180560296262150619072620919174135962105654387887063612168581129807429728417833292899375727575685886697654245735707931880759940817474451469284909967958066900994002429471078094654895699011600341605016049067694617989118464205004342564418664645451682681152413504128989000920461441939996068066337345894262291389504626063994003803311143821062874801863670851270858947139801267282841752719787317923714841207501253821155378054282506879138733468965973796506361535774353003639944258652582050674802282589701129269849547691729033912542141800850972422195508943704034493614490520295358342456830110120122747391241912416936676310592195959405604136349084537513573476689386884822400222792687930224188059753524335902247722815643657670867485079908331258642729891072274138786610832977190702750418275133420897982492803564595035374215185209735091813251812020903099859959000596090169313663712928637610222351389452625056624929614017705404381213562968304250106373434546926588229840756188751990770063825914868377550535698816564765725138821972807292998117402280323788310300638039772614718048167660007488395307803963514994366972224812539327987736157415438967211851383186924736269349788940053886162408617656565484920895479405820158560965690716727094292896415044157125572177887367258598750678706983312682583600963753982345017764627445620641453685132980757974185486301401422411981552081366604746994824285544387690961203933759169178792456025939662025695682558199381425214328688100172758538077209505546725363910834499707685510408357126090359312878952223351815987826666582250564700357786461688667676864667553629744786473215325003366918194724913709671721578720760298691786948329896859144964951566028968039838419621280751881208585770209590896238331648579547158214609092820760318967134885548375701724919491520274795729550980397966851875365748628584706542844263028323283873888870926447806930126561382699508514919859907583237204181807323024003278591019899770878161084828152701874462070179470093852322564096193561438472257531142577827105017961210936700926537242080310259573272491940846472696887077115497096423320441066891913154101516632699481430645204822507377102738215834434647394681597539526135554280084953616513478067508867113052716134783035028649475913022071951120046842991556839486834467178976720954846279341219323133376633523588532463165792223720937182426137070827774503999345654003999894350475618365967015567777169212551326938897746756911381673601723839055461064317911802562330633921035938191600996579239109229525002493686325208300082769610765905478322870963293834879403500267250731542579547986242943965898490584138736594388258541646971980614217504014738806743270916285176898515946633274760461118750765341867780990066432376263844737657026995133219737808160335400486496470081523077076501365933674928823771638568885652374379043620871178414614059008487806788477177973083568960816226823737453350730232757442944213980451627591504856344052200769510805227677110447813481119503982149226700027841197171140504646620568310270303815994312588111391163999012444360156292273855364873726276194117767604750851006091665224774897412533969577638522084940378835045710043760190922160461614564481320164745734229543756656878866502223055655338868878111674007888263547439942722414741632119216914985399886283805534197537831496282198790636499704888720284060274351909822255290838648088038499494070407847263209618019666646306513084272523365586073069510772358897789476135655114183790037935567441111101150873514166036810990194603090243043976018533866257402863762324575106944805678569336523081349963586562744225227799769651112518356879987805744479512349877298993202273791695579088439404259313700133925534802744063403607121517741397258917298622118326290159205420521115000703780488610350894831971021513092468288236023619659078763202179471622318733850490634868236503152830029385428290657346736228664852697977859703091431291921254100946568330601816369108336621847418518262261271811483399641633724628195441148611134049921315864214049328097545750137100171013473393355161352442790350751428629113521353839187060916916897493916387421469863468435471731518866447854730304684699560465932058120757839570944188910427937137523830368139926789167536802298547773543116231512006516532138050823588686571048280068505381782593555630842372687396289590617116188556160135114781092357989729653739135153219777621497193198727068857790912214338127715329061591585507208521138682308344477898523314064241595731019424973604432824227498923316872486347129413162155771690458314848621691117572240424058797029982809515093045666922553635243419390915713249887168142196578779701787649224184195197907117633515915511878047585271781825631544760628454079613189520094469611784176091128871213512430653752073964638390992686440978482983074232019729875356207083050180041580503853745220024779740307410134396207866081399896977316091240711587919286937637610273169092457190022420426188687054400555157905223863605648448201717836454632142211779751917299530945925962901708489867613007825530006063411508692504893592480087650855502642131356033099536214400744812921902819814893625560138623869365606357758032190661250473887877999719437096602743067903116014914392332926227382279644114941844233994765966304429168391889183364416505570280427489212760448138799656335686892807360176526645776876327819013148198835087449731567453831585934816616139861791061281847411434256043687068400202367666266263446898531237177792854738608390941875497310938358539342345411146397179047679367798196462236020556689839633866335251260198100188112601978964536644683049105872415736235737047255170555443364134353950921207336056317611834514536731288974620530671137061391267849818235211145253172366091875621592659028656409004798403562765600365913647218577550550985051156457023969164175809284805136553637287364349102695797995249155327943936719656992902145685816861740862056217059135062948517862763184678759263192821084183097181585419271587462959862857083693603542805242743337770941700936485609124250186934647734689105324480463513068067758982245487919410727322295119870328848715717929899984933995999205853856054410805396054158488271521890871566847352085492692574062563750186878467026754483253333355773024495159215174451228872912807810291470538540477484483481594339456433275801330977660100107326192231281452621798213444009168946146994186911233900374262383381742354182055494937085858185369581893423510220063993435125333459521538952457717669712220903379889516428680147540972783173651012475451983039138132567195086001552494874754294367896598535548726758708097746445325814047240525597877104838947416916454995662110778906509431203808771695874719160663884823088133553215912345874291081028903801288171890544072179861899462800755067180345507087959191985372912564792508537908417558180228396025110442911210040773119832896115530885961559878203944162357375643095252700276411891606784159857305527573823761671889101535923323616813730729120111410699950978862393559859930997069013475446757838421207093885776611098680069412797880451310943002563486484904848115136776784661187062762927610440905865583710167979193397523330534215279734444213879092285079861907317353851011000913112337331119202461481927822681168061916627747200385671389539144136120069131254809901218106703284510837499937452638201649300721750649174115470630373268824158330709856331847387632273749609041060249262767379143982709212730456509036764111836239141353272117452057759403331826518342569697739836187588390454346730043980192667124647486280543920149919117769131998614270233238156025020740305209410203061417068850676282671245417114824350301692805045728854395512583298852242414809296237934304131088136700341605619682727331222313933546685974847561061802676564875287800150383452741120334477210348970412885690208104857512304816410700059784765300025424185964631990609721923132448752379503693049966419333230350531179119439244962076710620695874109658111567185750069374214943444422567797165590286791438620326905757643416969920381057228611126946469956579174281953974767777128249943645853850025594917605100926160971510830353429568747607617333988058417251066815412664128099341111564809622236666528288431820259962795407439047741670501817254427117939343230190759049122376337210213703879300647437359041950697515299429124537086491932733660966714807130045828669849982291404629209992628352984559034866359021681938857922104484806034215432689544275128542959805055286517864004280569710455992804568674478443330428214764326695326006141581274573183163949887145393359951582844168502358382459384712624788788670939211809984623872876682574832053759427966045159402161073963152331215975102969441918962905265656168883038420782203817153552451448758801957272617868633454816627540568610141378687073314932236178633757047613126603689709097136395057380630020977175486588988144297358002018718577902372284869899010058394222787617489221807801547246390642842379373280566979002958910800767321685837461832150219152307443676908276853233069067334581060093876250466588717488206371390176661819640073630043937245266410077677040053186348255532089120168131155987184602369468882581723212050299294255000239067461076865890997931078543664208482523837604054253703546818964117052398082842974102515925022410381522664698398756342223039310166388973255383126164910141261674022991095085101789429003005233283959528092503704821431812914164182598206158965344149370117064742843341436173687240582604328011218554127897351050527590088227609557130120981198044306054931023080614240724781100337602509712011070205251604120525859868452245340711629194110028174228541781241453990128401162800627858932895405391560922052093227977986219932809170801753912270923491955081304811309500761344375894862199832782491772556746691644534270038473929531285772259324777972354687347251691645471929233218879550571949400476677977570347253492961891999398559120492081378040768685869931685077237080894349593401186718509436487466658131744387407709347005994675022768038061787437821821375865483133571517774341797226581111025608976183172254498282601487161284616236791974696743542396030129927404212462967184120005396984235027613043225564597644685139715374921873264235200065281994175780645429045180044085892091290710358833181711829865496900894798385783093924268420355413860554174687269490192350127148314843282447017272916124574691651920728111263612000058577903160951894861902317111132694248567704117313835829259402108251291812945582701194510812541771465097540315244591775774267264944532559259185179665660883746045120296860550962181297644858166991889036173758648515713311737034560975120895873662405351520826598898114601285969350861403792970080409124612482137125662942858507879481354236829165962666111455845408738629290577283779964772843477177429707000457863689844507567824163359329168153242271781961680109438703410324160732575454537090842793929242850294332637363987512279624323224966545786456860606348851127373841075571044622192964351205269937604005935329775773181772006354840422679637313181815211103082474867726176612173791579273735649030494860112272637957185699276021518620269396825910642580754472399847858446689026260551391421303909863499042087762643277362401166889627226134706990086338336797136727158477073876455668867139289785203716389830304355104368101001591308703913380982652178992932725670187759519122438005724707534454628830672724255357715729596900509738084538196187260290244135627871094430493297077205822026113049840706442128221315563872679112465937494693032600122478416003587415729689641310344872065660019559950962096075702270348962621071192254478387629073943480793534292256277031490916358515451328765040476000583312141219769280667276914239634501550265287567523429475460161212973491288846059058313658100681616487795325645283837241896058817549125056414126050560487457871061014443236983368022987014026678610332123201150460887399035102585765748422763694969174029607434101061159496460617074485834903766191295895589907320174930275726762476650292202750674394424543433642041511651799493681387894008714752964262645648319856438862413162384970892952511941345073801768892414358759258569841262876327070997633135582233330784743513604385980339331215380618238555488847800052259941660016269244550933024557970683689570143019086798666998644792798977401203814742990233105804769473629856992767028565104049885767072135619782761211787493967746141534733302545305541666611953006984188000704260904644291198020562728833487454848855478618451359381651469943012843865638400892150439480307454271889367401475997887819795677213310891711159645428668807019668198940815924867953350091100748625281686407263802736045645830712655430715763106687492185429202004508192505856353976215955988069375305634003651092311588301993370692233202449193957109048283002246124235861649922039212835707791368145587798021542298020625932605169740887130407374299984277968550418333968683670519983952165924872053651814318004342440648638645987373784714086908570847153060115334274627740360572041130147499566789594046780650126552892439322680960551452281891267534510514514741282517525086650741551817301742727168465772007237917858303969192803427343838130442392379914892614653447488798638658435959233040812688783331084228200889724632303416891361868442392068031554148105648973331725039911204691053597234144140986192104300648552535245985217149603745994701784181608942242007071018788430943065132828137226273360679353438660165582952299586816355286311183159622618662544642859072115235244337775006658297908929283075817610245631793312543128530990502605428739835106424971736014881063063976570762315975345414136915753354194122895657458063401331120905786476419354383840510222371502630946309162946307476580321710086209135029571878131567555951262753340605142411320278794589050873100739035315270871133452199469606568312693356633114805402083522504737863299841969930371683334293697224770606715962954076097336829592984170129530422767239242471431554236492140627712031612219183664527066218280888188953637951665658237004722403732851042372067807112631821317138021747418765740507115532851726123442827598861516235684832663246068308725678172611772182710464361894582331951522959155323743026550197701259938383801971903959444709712661562454432465735139092197814113420584894498143658274898169171254255646938848916788774903363621192372588814657853296068499532099411074616468000881110690802744479564551646311123565323933623388726811927316402738471295516997144845936037813714642290643564799271839458778830605974518953953404680029967600165560016117058350021506669853008362193851138712826419648158753362162404728839048194125378729277344041061291493148864044864922450628611360324882366967268251003214558007124046492045549787215285062396626646089697617057139915691792387378990719676999391311791747813492204292008284404329051963288532818308479126893013921044463342687317935902020200381372361592392097874491891170041569567704213583756728126150996675515498727001407053388969150261709788556025944611577584326999519880344154049769444673685151190808608250712142295121631920238085201021013215067419717986769181241107955658792443282394908769410352179285669465539211739456246509685040194012279467202148287796057976268937078075911036397096814285628072106605898060826438313228592518313949032509900772263148518821351535655624502260798280357805724578979109463080138158914145149935360187654421078528907150422681063258048446417512165843769901687218094070493543955309509114228576836248242258001270485563544151683438434989683678632854916742089200995338558167723026715366245456639339303047180874269219242065059127447850597758341147228952226103318164879759074953106198879970886553300608815177201304926253922774130041396127021344636581823359439863842666098534405796268712961909224383058262480981315279693623100297189002776258462808687508543488910087172491803437546217975713299806069108241695414392196205257504135356402029065822969436710630521884436469019075356217207120893120075876820087566998228243180934293778816209616892080726780776508411698773996368569359518729006881038609452166780886703656438374038310271759277380881951699879802920627715729504937926637242721699838378368789404667865094360910917888797761114380680531993460743620387020454956020233059843954949571638766993190040471696814714807545731427107727315597245036883004358403065918431188436580031099780780810512520459684553716175200384483125469516628480786875180640546356514262581706678939611754961181940273047250378445157742437321717854522487988693767501115005306017092425860440001808476041483373165779697017808327588914757139802461182995348265417449175285302370632244925151341243586255312852438826615997428197987114348303404392268882039720836687931293820899613077361526048122049378154920785304979796516135647619552748079825523686491197166684560082946778246034283457083767264924839519892597080136350411617637085566546907648542265175163261685817249342717901096454122508969352385736633058654911461098010900382221812886033111164701689762727793743160002248952162591345699540116934392458954936788720845921037108956675566232716733378089988211392586539395257031721557514366027716553872501587505280810115639936037430969711632864242961101495086956010653710409995558175843426520779933999569589007720510107479108835975327436364419212458608934204999833966597004648983721253172860395218582199885024128035419689047080972904788361988013587487505415977926201631403058051158034565140114756007954199361527085776607129987818876028667343025855280438944522037496967926272862538141018995693474188308237867182232705852965906304203256601511853861273559578757359306857550260880478684224513619674580427846590469668433491312605739814070451637222913516143490371793232501129021528802353480243930345174461865564210996237269502437573057728339965127631750430572997801120677320400284361509975589002784887801016786778150429832067032986720397249398684746216375683416585872269494708090125330087433857048378029238279631112407135607986746739738423786867184447255450318897135396428466846669014592010699970626709427327816033972464462102416905847431650677342454838620846352773449184023965742822701310932200124485109771557896150599299796355585970729210326564043961542565981957870476725629244398539512797863308457263373278511850005580615255233908775020703332007518783629419374439017043515582557669968413808497908828383629935337311712851785711820902256030280441563993368747151343172416505075217819323953533875783242488653680611798522415361540351055790091264429277232805577293101280640626082209455321264265018001359486034923511253968306818148640745549682595374711789705679779561437146492615497987329127144575301579216944829701102536554446585761876081730528763148995392041268050665384843223367407659956922165641498458378514241771972203437592658291555938118748236492956258333465338856399361604072047027381279320448253099793612361786033730216945314166953593159252921179747942781177899773849516652729715700647911616083821568195643975888032948550165751064489341999685107177081502236373028916046130336450279123251442744132445033711553973248275984467655378663100884763499513852541962883824809470378129812327385987622749145365012234637481530446119672041917742823636477585670772760342244385663878815648876319554854353918681041905172995926848321094421328983822899360268001290797204980829066378264035341907220295385163920325733895104414074562618725133665329642283174450417177602319472528776605938778486288401520708122294160728233063062039060759184439163872298198325678483584074970671613897638150880735969141847452289866202144446824261662274302647202802931426635044847703886983984202957637507843054585085189224308241408118105480054964732433019303919841043395364177020221879218859888178683487787813922956006697757507444615860412195884091414068266410796919261132464427921964481485225910954873975106522437368463923437495903151506537255730034922532326958297364391300727845379510375418544555855061879193839064005286010774194063389645588646184829832554540310637643362506309178136038619935419359689934959840425559544748646139757523585750461609002425361895353616481056161687443569272860975889549633232838739127744188860407827311253946612222690672878053219338432340227736341452073356961956442337641136825920215944152015278568802120754119286982030498046454807089625751533784709529891354103181878480328410600172226975411996842381962636650769557331210664299742593536313065417797320757981106778234856705324166709569330607606268712235128072052499055818806407461046399425369019201450869494470478260197366026585310434480427489261470421578793734533409703149296491791306479935839166969365116824750934146557994253017702732758990119438316185164757452025190499808673863387607054251540309941844207720934262625904311998464328256101960765261978065618191303453034678739424670052530743422657699270085615230273646689807051258114701448575339828125086341935152261088822060554414061632107240519259883532409262361826109172555847409721492321336846199147548804628319827525782367104474440176425246420636603130157272881993521070725490926347137377783339167012159576928347556877586367412509672613825090805452302623676087718642609367435374631930887407751548800759723502885000923166103433149375152950208899682971030369997485264794155412615761908645979250762968338213663608921664198191081064025837292753354429721249485216372539460879042216747514541760617816639568172379009427850293728144220613055592333034391988454723972331045070848182238038184527626327579127375749043472867781204843791166348980054715606695679977616532213323760296960965061177574727144151421395696100847174959997164082597352003617599937806503706530056660197908134084210813088791602519889122978829736631329440187041337195677840014806524873402560300061539660598804573481756364480254057553760918523231328084160763204841674812992448008777657239394788034415084707511130730384226274916800908454304817508595795778360968454954935488029013602192893277671199364509467500582063028649197457011733813928401927509805568702433383388800085398233373782889590584202406722133758556496438570396961375467892273858170062331117912734539135844288973067934110178723742879857241974219578423323810078233619292058944707927900584887493029752534907155518523916080151110709599199901104078300188307263239404757691363357202510755884640357135572584484497980040605358512697313732824365736411539358529977156272244172216417930188016134248709198799557698794630908490368323398125040605815925117438315088252953321677286819890457992748534817332705144309673088583395449974596762459118568159615509341339525001433448008730896419094490747580401169947665366828114400454885098752809403673911953043281671433818692453673481579304947527621065297338760189991407180136169772055065303613497266906349465282952128962189349865708691438077389290638222542668396681774718906580276443442253673592869885812743965456920547459357310526701431956003600401518465560218933245025207983331286826843381541095693813296367872590403426341006678965008505045112782688465704138195732402405567838208330524637279791748309354749843692434332693792740013321138028700557779100015112535672540031275401303716018261148907728853045032147880509046387912691383940418566494631789083494583886257712882153556326176094069061916567126758278911183564932155856463149861224943211730233151188850124041372543529748746950780828117544685270085498828297589854103402389919964939916832832111744977883401450278021077237137922244250621823081149961380617172255045608648759482654771939566956013752257611887471475975621746465765496752575284594902599159060175568158337152220889509241472252684092396381517894873185594048233200424914037728989804310926105795105854500915552771333479200618215836655483473842461668903449936747674014076450361150427834183967992820963108136844631686243412348742481775624575600122722218492608830531425455426065441026067250124900944191199074441162692287406130545450399217176650375614098931759060179956845637647576602304340454312341312784937123435636446618628256759136899110623501436532686499920915536180865325500072320407426084560287017242772214101991915042904700006366657582644397062170437116241620977689040136907796586242616785571029669294841077614245554569780046756205902337083345532109970749051693003920680228342859063086659576852577550199195646215536142474358895308363121790819770141825790038454102319687342166391464614094679694765916877371296064171503116685033728372990740643433782242544348104950994276245256301893727738979114047988896568739650598181687250467957845033340354873993933441547415756619737723459045963526677151300500768770460847114500157648086649108252627502917907300266137889067488989410004329705897958319696643499608996253323143032727134138591252563892703215755592709755174017740574682683111619355667312286092194024991216747105747745486229405704815143765531443567046606861123329521036406192335057505623772351414304535326970186413037797582095029616604716018211804338044049499609085015067987982493158778138255532366308140361460023720243054824380296928454772992425474233807399092877021873373700438927794710400842093278241497683013770018206873730225270801823332322742493599462635376661829225807776752348332031142825534373051391707963593599845184292804596737160661272102009069609162040066263243707320763194991229993724540427614687564571683576810345601100586354179305841793734547732899074394012182038022659836872376880156669959421631358651246265795486882912249303953266157328330589081738946247592593152481830694363669265703502815268693157910370334741725497940234745883037603697972646932867062449821470340532195653656430288474862141601874396476281583003627492084985004835216241034311000674511900698332029498835346198765158195002713615240954728103758296593901323176587815930590733890566479611543931795827084646933292189605750264209472698477861718215770356440504789843122608224459361664324965469653915822918614458824287952299808416490439906252496070928930004960056990658898746436124501501347153034625602392874127372119854708288886329527142988099517860701836625820898001700115181351629056395066856107920109024445752954478446970779225324502034676019321292222331557174827578836075784817637342831402349158069164365701824273579586174147566861442916527475373533529572411871343513923880317231558402863957678730207909473515412104376703068297998294479577716510991024486066455281437413479047087362867676688844631270604129445740513977775057107766141675001569858691232066772672708671034502156048690547004146799777954606402727606372921197465270255456695051726681337944466517946643322141439803183496214045896474966134068463319297718292054409772317178633400353433052909581924201641649940643287970446089149954309128831499945367546018519154618029613886804370661678379295391132529753383321220505040956795197990293746789359621832544507262742055668355753809950735419182062992611800960268198766743751877654302210685260124455094135028903351304541210198727625251763360841667615446335941755506063605937669497140309016317174442290964060064559976491212221107943467184100810195609026731412160135188868172421657058000415649922500830270322595582040802323912772889587155688185591226563826183098043372240059861649645341765379638559553444461651192603956662862189966475932161465760681066066715871779203009482698235792183360978476770379624854462213882180090631578042420716847378164898091981382393578847234694353611688519728903578925178492757431469076226608534586159771505825365777470010231376958193212554571942132391905243201881534160974265699466168261029404803451757775123127656781496569681936035749318436233012532325863243281898990477226701592528508794785670664483372894802662041367156422418847060135638086415102959750879536399035234192418234018947439148481484885607929909667820446251988709408408120225587565471963954319895854393505873642228885482390441062544193767304035396770377844510295894719345832506638348236202748339027660065077683215754137131467657326825066378359824247250589474197867324612972504346410885535222289528382419046065170300670351858416880649603812463227144763794853184266732516411732911889488243728294203397538970852153067082384106936742688705191351861487749032085342727105077885932183224055716593875046439391965901778240543540862926541672166677292219982507508685224928031622313657636646318645229573777486031726714517801200028639350927805183866848258716681735714561166957634658501532227504071945236651901509908781066149126138867257615114367836320459514209059408378116655676154614327114976986609932893741823107677963468620850294427314577920821543457851595043910256871206729924635209709777600659787802646014170440061520693095218873306546042660919804259747058306908601931157793827707419428323013961000583349261340285948553768626101648858769957839158980780814777814403648846647090899749702995397888803942465413910495743145613247326502444737341750974470611457013093347345457794574793920029411391189361799580423475849711694673425008344540674094354849590275864535938242741178827572293870352430264445525118724743683171895998508814298726402059531565282475619460107569040639890344411321206662216590906814102439560768635204931402555629663414439576529846450028179880687917497135108682336393296635666678608414117055661833944885511021683285707111287173120089446898241455953208175183707857892341156823526406531558410783320733727780300228753553657318345831066603919091699251282125510064356784694790012733992300728913401384899611780969712282748050458521348706593888776190266507114258342646343369568730173279366033553668261858199555867457757237309054564537665104334800900313830492199600726891212106866670847263793325330500480015872749425796605187898370461275528982769555623116751377867028853370919952784371197515052455236396431328162409012823699477264971321616187125601264014232893386873245228280249404914994349423228461188711054007211804614902695938830269959274169705607322189324738671376682472503317571410373252169073843581722370167755776761445141061559406536690057588501384585608997289040011272747242316193611605336678899000209908134547358690440979816779479394619394371723932492363660085644160532100595978426823359556738283935149219114338375905753211048553492277367196503046019500259727375334618181833189285882235041594777515367561615531441710098685874412104986763271592183225340597236727457638790956097830231278586339522341398476898816723402430201663317554642160724422003378374653373994483654596433625609055593378596091888418312822362287249077970876702637693919125102835406144760707224920587375397730918754366141592693643092882095749135532116450007617072251016894195598797002852853866921770084875694246176427710295267729789867844366078146549398522342669975017558362669778578088878027418256657388122074422508536621027538422839108300801137088573653138689588866345086229499520906264095537340087673774869689212673406432666610683414567398483100442608280812607383745390609865903743268919863190857977176266597446297797731968050620483022662446524822795042733571852873817175116153302383001778892407347543219992102082168290312161683803746321867950612866129315652573198200631703037997000904566783516585830740824912191158276200011205052839472656403827340748230881161709862094138781334834293852627354983076297383680151523034635471343483104992460008360948872157272777934036305911303517420429895581324241631479005235923817032388011288398715451234892667796514476508769346754327295397448538786198439738233755114272463388128374269641152391464011237406931695388251676254680748903482161106707642587055697671941195238385576056231450579902486952446843650810589683989434186365711158549970642942152055916873694440375370461953283598592222792455490716642009186955368358418794362282691563711739739392897043243597085229992904599271254712226046420457557437735177061675892232348587057678062841443293635775258690370857415446036190588501276454548309264583366715799853710647151558604514425118166825784459403619177567692885154658313398070438818511523618467225308466598561736541172185593343535454970448302060311264138794127662233321269688904586924156405658560080046022648865843109175975743901627685502521053972215345047443727552980892721735334984333127934210639475859923340306515266636339851665996439483107864550036515845346216591212795772945476229990984773325272357347261057466557695834278822376238751071138418675665771996322373007202082921605509345581097878454793131473779049454754843248245918893453645009506238015359188385570385930879758684689565133736727306403506447722376761491001071235197333075458646213245232954192910694826170333476383892214775043113051876872312056830333021518200869020277510509835899828734568056778558855428155072528695856095909939264318157991276844879926347840777620445213943745146584084006492614617734364168183260062980626972912499080513300961844684705332927426437471003826251178809292853148545067269204132569550312473106123863408490036390102338887776762769382125012389532704334712071635965901014263693061774986846082547147063028681708590969669070464017672781578896418792572941739379625033746640796148308062172114428827026200842938342432922367328627620563286728739416628024756906828384510019085477176510867581937764437359765308948263800486555383431930098782716843432668030293022549664964011366241801123540129246984053339077670561002907533261868811295709632447452442223681070253460709850146050331907712101807341007942447831748705105935313101152631587170983489734634275823573675784981765039322253390186954617577894135849527124484761219691845175923435207744945198142075467001865869924173319086040456425821973452781351849376040010752901347789433098226758546589104692006639650173953329615521259355843212954907222103033160742719242678812734886233113283362637973784429898542642762628957454338651410316121208085862805039573613446475254291994132733104385319030182565803777888852080371795610889891794555863759797920532557587024453914047625474109826378374904070403334466559585028657332856332078839848896975035688938027742803811638331274525096066905983568079956273529198720506639257113214766976343548887006095101098792017269687243437981791807956106698806476017412674645114348160578436419082591088928076766754909382988887556236717328782105453844322669874065387775215099656404944375205438576835543193586133093909509844947729218531279343190250255531401067642278751195093299849001040330647218332940638537721888557413888824756827130830908645962507610619403313143899291912164669195294291752158413762264160992346572730710405191246825669460405402215641351619193717320256784047344536885912574938669675813688366119420924361539550895293900122718477153104001045429656356847222247744632386979547551143288709676432993800047780965814827889805616673504839005348407912004174463710308638351584739814261964490969499196391056799147888034869866608895713352555250488231106723269886179171690287874366842810208410334109411554327336385448546830067542504671788368427591627764450307855139314574380008023646020202573665676160640286069484825012449405179856023532811371671559338162521716098371670710587735751125484394806205213980219991667238960761364136664979876148909927898744973975084930361023168991495416612781070791121358366705844444746982871808145213327056972681220376463995983041135182715349747052910716983100635628596499025309505277862764206499843346750667617231918614592839630113826139616521022878500064456904383046724304144064196804574737299967526702592577831201467356273078813308846503056864184789655101110100636020578921531857463932575817747880630198879530520535131651401996090154448189199423490224200960387544124669502544199908217212148792867323032217974928706344932346063387336409215822022450202275564427243218170501683771009001218500848531944683474790324965733849284077384528235021888871966503740257497482000206204517882929329177556816539043390967476633736471978274305381983465334691676646700928370605809063045150241736886539879311207593977993219414202911823192887182432293670740193622863357255851215817260117713484160934026092580608025904078623855136732250751604767167728800368098643854990402038821666240946934896463998310090048909179754890186295310226606112866995895283733128225291969379666374488663459350531408803993988492805040874954006970188570561564330549425439377675758930028047176368682246484682997000944943254862140477503815809088634209712334655582663465422029570591474892763938367901744287916359641462930930680022674026578150201217241047402374796780035052287835894046969426777286693529802600947927136912217623237241507056495828083493073430995093152512420047391199601614023913925227803831402993207337332975009028020438033474375638283025426518133529954793261621132857091793135300376787178322163658555284467266335500293099073842740974614510741054672574753999226533629352629466549999900230659491360164637759554554202862598524349899558325153040401183791992484400919887151828501596283178607485454680257072705960832226668830336325933618941875797556547672398338342570512229452679934594877177515076889247279828761765219617339700521324519468450676242239970287593156165352197638144861013699062802565033036852051817574960956438064939553525224258234489510933236956996142391421724525756455399727529786036927949185762301841304119849080533230536037808105558555748721029950522230447039400075869014008550559488565536306260829333940028926889323010429951041148995278229997786805076940057989791971245081653354446160310023645943578613659275389575967964460780452972843108292492027968152793438925416396475573179519522693470570648946125206937434645510984783176966038850887902265268695673376477028197999181672438149846180111192522886657715081508837587027913530911322274595486484290919448481228225707692360143174825849966207909588654011745715633148847240702880934485004774288637242384096228979739269599305736682877048461699272870908162257927055986009559375512410291439309178155970462205155002347269775872416999684575734517375197742673532166373616700715714957125071463498763523704326921071420765507326120488215463209897249200427867639798085453193171596215136899446579668509139325922149346938463190646179510754793486015593794247128126959429818963002048942332764356713864946576408241509900312905140286320322658862410485332308694345633548947250447197493417067931625253293336748019852827144088179372570358700185563468931025787728522763778352952368389878202982198754609010872108047976335724689062857470643568710904855719074222901705982089315337556558686006771132907714868716882683198191496667935733278426842293962489854660315146194223133042843336101609069092725469622693065294835940983226812377287468069174022222479730337109977958121496921521490896328733444046979665017064214251653239043755622754404695384466564836981542421384955443277301229924477815431993190906944811358676705357423984727873102325927457424577799773343236910089834259018343065461545657810670107623764419344100770633655666218503567439456633475258459710996221385088044255420145324818706812178708675572802964171923233565409133863966880007198877390256970141890870517184273623630678802374711162785775850667108012145810531624775076554039414661901659578073369958221117983858489068717049070688599962546054613753182251068332204859678137499633057507618310706823510549729099181625240808712268736085753266003147585416013329190074308445996307493813438826757058044090211407309221318337446299958741254423288213413320023096257556974675113480143401498848322765356318110762728925543900923983994784550072631304465807767534814165238130138970606376518493637047953121765478119627502480111277256604910256437586451209448875524916626115816248964102937701785569686983563581531407155217643939118619600433800063431284877500174451990374625521449081074241327534847090330837093371553560350363353716365608089193069310622109485347292850286230476730750177087007656809225863533528367778256343954580069795349424729973014734019503323556505859354694887452406189248442282761703388952243263413740033609018214059694773577035961166889161718817221397042367107707865187265170882593986985290006163065816539847608299777840369382599207364224126840268829274666081481587043813593107682638625679358519807280921637893332726163947554230597561850334400638863535045586789179061846978696822937973541255531165216482858470823543670383124220012712977949377744610877810879221199198386070689567675519133654019739124999912380626808532877005556363502250198882400618100020025743248621123943998951127177136678875057562494561303558266636343753293382424404084664542175679125105210430673112058611185778027970956791594495293768974553678753598802792839776567518108620431076064424293497562714742509490029172472528696430927308223210746074237880286046707631008801898370732234549084318347152375838100859157394667139472639093616710266971180775353781729369718286757903350371222341746690196674723858722103871090664729121788704310797867575937102930707187057791312570601731267381457577945047416303996269705964972953754345281042844239525989968890725885599575906872520659936769540140904502231893379878743189808878511208388002723192586709644383185780351918754673525563340655079869940858921460241710890305949901399366698915391545698804065414683213674986789128326055249157053282401811309662622169435691243938771549072532502377650009051651425300754633970353541381458889417861866661504807761401585725410137995982896087521333096897302689945101321853183539812609310864846155761650562703192568201944992470294370526555111248521005062976043204778125450740350518911102590768562717634428281681465672863195507404258340896408093047590166018938183688919653109043477944195337061076466893138931762763368913078678055061217816694854903791643130245227310628902965160023780858991423019741814821109323019234581377238184596533359847967539723906650697974708195050840622209576672536765045251764022888363544943518118748770640891371001828762784413582889501722484282287062600227819516678468278499884919004170295270919844894991742779602908311348522305190090655500242389170998367364525503196403076816746700038595521140566412652411227227974008967206905229671189050419224834487805560160845889470086210817617091490058342045819960320327309594943349998952091288375710765403880833856050834827561937124322180766483976533622239140058488269789834094498217555751615339321788718746002390598481398312823028530511629460495952253144916842296577458726581605354552224075608064011518045461690366236706444858247900512917249348356099914789113254222214128225481503111820034830560782160012327587800674929882767395492937051949756885981087203636895111942309740259159896735967171294787202804664609104384929506902576696702797798196209642025879863644468537409115063735690085000692921126928083916882534331793372097307387821759157219659815687597373799255367210761204652899411565025789175115295491151628207538490500553461855136091578932221381862173941467124067893340657512417563090859692112962461177218704321421389801536803557600691475862409850319734481714073550030527962401022465603373183362046440063514260300372522140644363441581426439092682289740893786417743701314253539404994915269042681573156722261101459278675519794588574844862418586776484153567998634431575786828946415146144356550217917525983470619211147104953719858143381787461181998186630261361564798448782935720186186848566635116158111668261763302754119792452245924481181461249826129029545100041230740969248916132399722727624472549553787000254750980085686480399272721554418911645044502831636440705101683385635592727607535828985099174264055902401742516222566174677834392131653517666610783037190467594663090453766657242777107377133463855098152622346612749499269912835061847311839248398268345692118191003914337685248820007431723388917235004212826261308616130612926449887388391333224416452722045640641035852979199447987302071178077630163632857097552071661848743224899128764110915574498210359710402092551764374813939640533093584572542315240813120258679558015226115456364566162252423063855405494997638207875912207875405403189813970792360884361905959587907508865646636531419066039773046977171147670098104035383383409560765379970020487071176641108664792339232993785882214812038696112366789638245298409718849189521616011485132187432897657184596296111141063949628382739557176754075683666206474586465365539622050002208379238227375871505973224053623308140428998643217763179138562711279594198385441737555615075871236195210943374654791551897037641683205731365199170373292260592173181002739489037427685055711791094726311122631042225979406587605022500007994164926453308880050911156622714163830898865953162865037034522751424014344690716304616442060866788206783384846578199052664375561777189034214720496005322627817843014717051889574173547256856578349814282097364246123006409738010798140687662336517663273633739810879827129492429509515136312849079396804401859425883788093913855516760031922792693480415390158302087494424660457923354820523962842613252007627984842910832801752778844160712039802749583583912335531797477436127664412397624971931577706474975588538187120657554050083201881737905843621409402240604678177858404266087500877494621704610421315387637422472322311416702530284342504776152032859360481113878050888815412870179912747109088439724868713633199292962929232031731038261355289927584413545793179102366597050135460078825220130028929253164972858555058131747340773587000209161446727366659302599342285637629795863137314864931808643809111251351740394243370885075767992277027063318904042297142245722677556119840444901150968106266271496109752539095410420105807951287668005309516850647047739767735781781434221589769752890335189201414705894182992089720556522851950308303776623038271799711638144148735640763417841325151092783397151534209840929659558074995154797079869493298496634522498540914267506981739497136020413731766793180867938765781594194729479020427426541431319542143719144422546876455529879753230541325359787900367469332313925831256237187755460515802147387324208484970628061596177523446939691383745300951291915307854464477904313282385441531836691170679833432494920037654427455307733324442384346295025216408600099162309766754652798568992424802933361802075443330126969786089399582133011922742587518402017571775794144251100698325113681587071732579254548410734993160366010916119288938509394516311109149220219687004039957688022223284686174335685331008589515877149370530415757469197473526519817990475205366891948966582830090385160428810966752074962859637197890353105234438960354159563679180928246308765019433813084543470777703080696052278244806604571673450840125465266743166123184209568261580861778189127338377725618737479646782851753234664290515104360272726993139152259252722897206447788254853681009357264190872685051694912204809378457116282813934349322785136028498264322641916426901616304315415278591984756798758267544881149074221142323674192377203339614626540087936361101826866514550579473305775802048495009079372659679618728883727253641447747131280816392386783122862076914000026398818927718077629745641115452775810760741810904564265678990402060555055894696097932414552734093039845735798555595976399082401088085423054225655146951631856252784003531189319599688399334205853230093813642417102608316700899124632065705257078543277922448198740201035044828376088950871449827244963102411068565449313235532743926193399064063916361767921133090316114280810267601104954430512758367027462981404470377864955222953441269843750590526797603602954252181776735780265148298423880107865458774209882064477923060493923377517779749813555758020854180361675186153152744061046764052498444313158982404577535526084798840222350408126966217052939043429058289639412473078719668188773465870274769705305617959562459224001967795544069353500338765994192127882003815284993659719129308273302886538507293540872351096893720931769835700279673807765572100094455186847988860382241963729656942955363433745563866069297857886250064880856537879094505959195523676826326122940183855739475566625470846903863413171793606770618611094082384407425666548988922254900028474355748624237746261315301343171378850748298487105953003919592792745192518910760655476631727552602224467260949925681928691381471286994239565755045839272427808191646425676931670037973847606406743091120018451420733442697310280304242173739202143964720131952745643278772227574586204911636506471807178018052007728021100174056089867026658218443396439363304543066248648916547300930537545018687621713462911695498561557625852980663170193207032252754142989389599159521707712208556397178016558160627981318877551223153624866669399170573785978836244497081549225465895540762140176758123848310563992609833947349320511545466145666161301085291673077716174035587575851310905908946532484344680804876585173873797513577709457089467322091103841984980879579766293034601059407078950541513760673247835708110356807513370096105096388759922108415757052642131645255948446623576050005056762557559067776491275429072647146140675751423923591534785791762163620849704153791869260095020472631060001176921136855010185186154287771613556123229756574374266965293482141649203837241098109986789150397446222452062523422376241290380645352020574463946703413365330491082028150126398728399345048752439225326174725373448349699973136496777975130897727605903652389276234403099717305385232786325171096677435465783402908910389668489295576303233611886025046861774484185988524318047870816606367048270234566840286444683247614243271496875787393143434111293319855935614657578544283272509253170579922797518305486640050454373567807789821044402387040614642386663124033177413736398096339882869009525420285030242152539980085934596437405882408971365180434933632377244437890331574339620009668974638227211238064616538699182754067315799636165324588043584637114849177338202345846208306329751225744419619443698473758318980236701523057789161220086443933066515148963776343927933299088442704167746214716125029424800390447751461953380613136067062051369701036007952465063735051142572249167799950366986760676731897245138164944545514316121130907456272094977970786395647366778388058566963555600313480683145578765533900144176095159531233678192950569915338956517956281094428923270300759608760471802100859016359379139722836042845250446453207129152241167608989221966406355624686320253274600746315176744706961311926244761444368722046630708866376233171022713893409271658620150299412802969046875450917852076535041643611396899618942650638660531041575044651675182941994451297908820550545336742098759591676460427373374435294228899916111640320914665437131205818628941537932144685218255309044188179762059598263993014022880125719562473340523196188095641892389195727380221742820219417876390635619974505303760426582482142567923611759720665338029596328363107398508297182834879202221588785438055628338426272787681422692452998479161510901751677673118619467315947828014175651800350176678201349154742580319423382121462090575554365241372028885271296401327975410780901097942663304213957320696374405243642889828250648964962902051938221820113271930579677358383014019560462667610371452873084213127228868560484751266538658248007350516342338665574141904149015664017883032052908130515763581561419392129128021084752090608692751850290509797269533900455555881966579589316879020106877787534786470676186372801387624608218405778175106051076905465925060863896362741973257299280782754197966812187351465446539832078858070490538616628197077305090649936290016640604650968644430318232759442574350550633301376643812083986550932257491180688154072115052548103385533563583776581810282082857127516535048542713503326061714455154957082906066389780627274501931671108616923616050974173475124194599133672389456301602539524468603299018930389099663172806625836870618823470127141611868891186364870276870858223513614803430501495968203248888771930411721711103400838789496419246246244767107772082377482370925904260271039927622239753355607400980901416817394744544339824144948670370337337866197977394099913944941757103545718572382104090266001959510234989300877438309627715420408397318870964184334106002341559162813638913790965044784316001275086054215360887094328875764275382970703605195150873588184448344140240326640552499373545687326866361237817671284396056894592663193053957650153444707534810856843764759583840214807001317152741911634524712145969814816845885178507756656624621723260138825971555971128044844595480880894017604491624774834413907780742990648906609112973172906130655286328251679289858340179615298340780435752020531154934904181573925702318838897827087235099448067130137471610138416129033150914860852740597714455364146796223233562282903587891836128315535181887624014205928695738541721426891702209829574437055209710358111315944227699124570624267908424531111176548205509472025490150489567111081392810685141020605199610180075733846517952176433578206875062667225062998820102320863928466646936296765801120182506075980562363617449283303837292488082630787766677908762994700155651084582015648601030082927569004480597769870344658753028235778625337730130259144756311518703979802166956135143632643324095516160407866558206321631908675576225890679310214381225531028888817854547581929422974021120468381700863140470188505370192790476569374665333065359178071704493817077796362944981850217888041241429209483954281432979970524018144436847965328353471738881761628505327615232220559586394647582389591078763760481472015618891532705542944805176414241378397801689688970682082085572260418270324648354045483770838570218501707357413033680486024939093174430395315995262144547079830877827850738371553680959720577836595574171877870362069845938219092560874368491693325714974404568831609090547357523675114150241646041800520151997049141954671313384318391676147789301950701068424007121369006296495723502690265414372580709976458152353314091606024450542671906526320222399102556791352772550550130300016116227958004042664939532670661029281122068977228674774321338335791757706943751065212309096770921514146508559748757951193012974837047977295502445146530641902495862359366156395661480671383968045660412963068206857250444194328419729807146819563465010147241598357305974308857432609849767345494312680340926611585710726507370295394125554656295719089733137377595117431852503677183641430678816131468842770319952355233948407165814879885338555294636917499427245958941201590317203513655353915458758718232381631610872984011064338877953192813898162328818079035927057846993650079141877402154003253592444204390010220792048905587742644997112867244441324967044145261833688176219349915484853642795469051310322878040706672915806844755440110297882888609324305241629166488515832363549021481310022856015763654298292707126345391571434423532734385908407163438873552202138403307144898800935879217724301761062601879540036820256850356484099627470071267278097416846146284036779917429182583934800955846528525969486513455520268223804998487865977914107169789141416043108949909856319859520727880292914958316725192062003290585495264447759159567574161412860789435329496699294869046408940019117607353146637947772824755109545607618405602241056918953724968225440904181768538785180494710057059327213602786425819793711209907043830178000028083689870628081880236548983311722475311851664224728730977562556310042459348637484261433570990500105579239733336208044862886201758369144748038983268951664422127017237927757795350134743810140836678135015172626337504382911807832659362812783826806736095498165882768055707785991221259499354382248305997495257065589098556220174541858080293561137050548767472083122207307212776048615367018678593457477142306674008756301850364350718309013994298478594290200404345516078990707887093811946590789839141614218952210833085006901545995104143593183439406891226144846475701730361726142826386645646126636432414968367054177196573642879838348308033630163669199437863158354873169804134910924392889202421208629186268112761417543648974448829221325783753695499453829534229619512658071449501847855492312130984941548144742555962561488323506412546413683726334681578754471125103936675980832884320371136066822928623762861833292446986389028628173937908933905208857162932624261092900195514318737898125903572717604258912491612597526343786707868422935550815321560581334111214648707673821886728243644064332159643187664864828338378692268560609404024476774287158929387788231994419337954803170330440498262862197723624113102149678637038506844573616770851488902001791112135574242210774156604208147557341210958652865349048389349770848483875874373996291180210206050995079582827537882365850898050659643707749214365726444290434748888848748834670434393309528092119047538802889321542026430891806510641248462918049648154886176781096150759269449896484882840006182994094029382533288995209777006976611834544386210509465448494045396878565319173427822948448338556973230872267806412428659166286894377025649715327711271418977287688542327414139911256306078546253495203638411842391584707676326645097138892292542608251423860661261196763468491688202642458962854601884359904078281949999244483665551828534314431914173600956961787264591762292819713564610940255743086808299098996219752264869873826856994185793622296701471014217431772317440507015240314193699980224618615645156550580395342643991638427461851789356889512212044634312904749607705525028742531181597777366337299572541328576178982697195465022649219335331810870522933422100279564183810666370809597630025115314427774903690467778811657488102229975924312706701861972925557520475230629814136412603713615773473611852528646235520677193269568841942029855980153726626477714492230822510653856377546954457678287197286672979724601608209167766481033012420202239936365648496866389937534996496360603742031863268394668505929554187905671934193578481705758152151872663803321310672990869443468045223350984668167709220708144771828655844081078413208107317275688689030545431017403022478298590963056780652928947150091235143790239127231843120516632239065470914171846068908339472797034008537888468607829493405512861786794627177815404458100288823453046868831877371641195447334938447096639208466958720116035756535942583989699026466165616735245314033612500440437324408041684353306979366232856267456187655057665766711246824246047439289334048093474806859027402467047108638316595904422942313983389525345875463820623027896206688976032394247548905658564578197890245449412795296550028978550148282856323584463785889527750184556244446544055579574276577195017340426588940762445574146330220391740741185435764941816983861296635237181916621056620059545128114455441585732607312143935065805669564106209503861607748357676890346462765795300263694962886709269892277784197150410086075118887975820951179995183422011413284680733548483961650315660449542789797588709552304188083265471562637508576844342725100801963028699530862964492754963455021634731500459816733963265155277032319098781173639087008354228883059906678489744982517327750821469625556936946238717100744182160530190180625545880549186275586301627324102291626446207286010789013701441985193164426082552167723019897087284596729692169307995021000912018540459869314097013280784008969747579747772113157623445251906039661975048974385397145800822719675232040735418978906208093579334879168506479528561238555294531784081573405377145420738319009017275222964621762213050475357471881970009536826680956493931444517010736647069019314184786366731197375692665711847594849486259401320890806853346626128670243266900614423789042231344510589037957533946361011441653158258703582351580786666241746125285919396085721163572032650067353189896310109188870589466792766515077314199763349995317000389694279928901259960472730439336285132057498750629916015233975881115891279802079599790261966506674774562767200799475825260122867899615710417400055010460867429919357470108777364956888775515254596933206957933404273525591851407419363843690021190792824768798073326218930116501274255989462705198851409993293979989306178107066405246263502308055859445670193364985944909352771090195073416548026580043436462117189731855520525952000083581108057624868079402322064205616059379775159934711740379652674007745707169533832918782178599993731258301079132402227739273664769486426916609717923801360444781805990357605083813981565777874127906141071836319076851433314035213218383280537151080328258689914780857610919388748309808687052643661306806363513333462317446330471771411469251994952673765295005633285644514731036125422160588239405494541594047551767664470022057917361398679747761970244345751214209490009979277411440665259902675827161977458995396684001604828625392824717601213572282089391064168478935533869673850678657171018551345964724812838866600462898780018787566991641982696070972600694705384768564313604569758911039725613067486513775666292605724252940843306260899509636816984401686996334096970385549224775882060617238387400017278778795997947863362205929001486744946987860565248199675946415865008305269179780360250498148998057325943826295525775790678466578505645093543567259383758187841666390585959900522432918596345310591588822182140718742826618929465351822235119915219389824376220787920723048111776165036573776692824331227705065456924638782377119966992671975609932621340315610944484053150938230431058669086087532245434262765445995496041983442222253662370453726010631973016422534524378394766314407510916799098585649651330215406971662396474820639935689988040705357788242764290307570626397129916238899696259529072183422146002083305400664943652395370159183482955915963984297710306697420525823366936913317260660537850611214572971290901763632295640662845961297980810713070269308308906117150305722944574843920929812598255373831904932212901876128414015769969293164067945496692601726210243879270407941509549057174081567787483597045951717832865498238237085801310788898189316342400426763314670507974184785761630155093376316700381966137110204782089947600421910081582682453524427192216028444727471059361207069670657934348083821752976705832699250330483181738274469288151760325955686973463032682031306398197099184118123046658446927526749226902869080329234324030014913325402980456339959426335050207520771941109591576326462852982916854878712131470447222187857757955054717902285621612754468742889480898589372325170579483842674268660049861857304178859484987387799812207784672742518265475893485436936530090495323740524931405946059761439587419058479953688472520058312124944545655486752930025227328365513936327391246642373378185264114172216021131131664517869071522379453967575921560005260767654762540540337854958422364236018383357399632667653182161459055190445466003961556433016368473057640394218498413483119718481555151459766193057621434395610647271086018785405559332678044893407057198873380021351321797814336720948681843004209719100296181154590415677789412623234940412212035846640269856383768854441917889918753784601246973619622600199956198896177946455043215219967688307282745446571702185414144343378850578500787229024847042540765646241786905867956650274485224313074079847981722562026457905317153964921203082352565748095724706634686888622642624915931598477900659008556711533345910301825974132726959387152871383297041740027703149462071728319174790460756150950965821788338043824059025459277973659152919599952360105193585558321116387226512985051721648813888266089161535016778634721896676639190229152544096095148988797530389333054208946032890814872274302667517758089649820099239546677199366009301416024155738686810342918347920238098488642808960156876980597216040669518512656946500773143181002031008238095228421444954762001032038784356810386202214084974860168363853886954083338969184091808590580464861088186158398578693425926025857407343637151021223949862722767262360200190393763493312005975445934263340502811562851015260563445688733495979014989672746197460102100023082344258496711967069097999784040014408154185721844777458016386263193044176594428965081955517084742252753190212618516521930483503634745400687770307546603962187761304446680917780496457309834143820708706617193621179436237963058384217810088071730229395330232948879384952390062714702390474701561302289358779734084720097282574997122552842949661932649047120597013626783262984067214726844308980032361796980599267787181201516271716916912471524828522335776038449365870371729520837370098438694610323681808934023709133293869578013982589731317390620955861497635235944129897559083156079174478188369642084523289252038221412297970468367155951481661471933590224678386149543304432972947595533319299410183085861774356389243874230359655368450819713876447782416303008315665999193596618948158032420810125959387349519773319626820353892526964110322958883490870031170556208452846117897881199070801811365468057151863075681443536770934790773671489346058968973634331702854464292520766620108608166327794840668224721813363233439044845458186958221947200947874751797387451356261689889577752285078412882181993104442077797169544615567602707933515897323984535377026637111675304632621357198735262832665018828239919029806699211406869377830410940695357355222114429629010856861618401416466236624472024060933675982050095702399901519151473975118849124033340129670542251867417675611047781622552031634333192669230608203375783920207674233386085981500453323914824970094903950902778955416617197987659628150439840193838012324029605251516843917771887002194130418714591246605787338907324396987852018814386327220248033105460867625116360953230145009944363579454586557839187838777640143825779170761799230556538239062565192992672895085168112343981523651989493863271884721824353831827862301111727399073497963973884691486483316896774790849039632036400231930501031455514884713731429692785544370705575702333465942403102122086196589118936013401373398343002012810681142055631537498789538851533905698242216338269367342080709863621576159599743815243217482038840033148867537592594690432858006508852609248434982243308141518930873030275203208574880337664632405230492725839689280967131231586523582735834869619296646174425698990122952138055405642144160603164737822249722346972142241225583669319406456091098944863629528330943378122989083751077966476014156120849246876825378761168268894624179713830367451218823576122650341933163442043026723458479955354650075005780921379537361778902603035450158870904716171272868226149970190064182416354799560530336064797830587554038611844786603317509299560547200582490728843154801196003328573651879729600768708647116201564591239905938279591956986088791495370935568125120200740035651652370166211354758846389082475064226725766080290901166730944340532128246953496472420679446133271236854983318874631400969303233460140408782021176407888944486143693521923511231308149990124413029462903800025738905541446975145853697060840159422307066840247977407669559039058478439770238669714055952084003535291315605167014912449505783016883978073134162109877428405702421275706344909523908416113892913618546647118823783081938823966150027674378080721971928093129511313930260757086001111570606140573302496044840708117423317362769221147194507390232429015882429489395900022608772340322736302135519726399098818673607679513152120381997402962810543443559005188579419441173140775672213602548037837499450714103938101306017787907121942817714194787306727404412535390211712881760279711267345616511895971706985866165114451029617618050023172828418159947904916227518776722571640600299831998796706447836602118566743318346289140108359042343512264353881029869119293864713089905462848864632608331976363888510356469383972478256010984533243407391049037210675773751521271552795573198396283909616203372038218758416293518939094913804095825730908758669095972394069191738377083675360634726392105437409035127786264607165176206025333172185960522280902867161924090227681994065505363044398912207636107519808461947922635480358716742213369460027842186972295869539489127892560845324871546895197624826606228685055130519979530496583081426582104657732802142989443912882911328688810040362969906276234733337699750112255575078818362255920067864595676938748316147227695121543740834586543120210739082742703048591602299434537236795405737598254512230497715468196318709447399027644924152113058168108922142770677516135700023729959251422746844372029537714188745756351708190111655958929990603230424424950195864337961137843992526908544371216972550614960287217285851190218522402075157549579142843587500173527368203742711262829086864354647148113826953378090989161337218360728042463097503698157888646243539118432314430706552782823267345734520539992726689148127836168792152537672739980110611125031245677059950745019643597432695120705378856828059785978228964149698838595159161096593271027226141772912366149951462243960122579241365331484567189185600520353927536042478017026500611525955488851342042354415954224526776245441593305367760765557766414024825465388538786548816237734461020694620191480825516001212554064078639967431229534589727551908482257474064353373284514569603175921261937404545404001505042848541853053966609171057940568446349171502194641149227510962772702566547459146310625523757014371854940197700237191783260740815715158384573089684256504977259432951384007182830743258741995563509407016275672117796748449859726170079058297636841643064153894159033110390241687255371065597481326082186312118255355702738854635731712295904919935186801079482572605308280084619257469384304155944653155838825756586215378960357621721531591702961153604966921929237068410430947645077551974817437327673920921062282617427988320537837675036123446100866562584635316201359613460931784825781521814447125011770966094235883570774346802764264508134782920380500607389374364407107440531593740831422969112477507657138193290002313772947061524231734700859518851990582471882881494297230308251394277913648781145194267362867372315425107878727393220240051149895976245659193589232165913320921061086816592254507718413759297836361753334709603810496246252495018125424394112538117783882277140709914131707205183100541973550197358952885253891818503498547270580759908065380023752977416495178339115326764469336096876122597173393422273977593755053506099829674080151666209606276791002300591131435189198430768061472866137182773147128973197922169401265094661337942539249475153193792855577728878524429755498395000902887300285872720705026025119688794252034001343231848160352376602740179646492149086565534498423718734666825124059627516885912639955788534119244843904156874972908750310388269423118939289130395349414880530456940785333923101564375914254348007763078994869107424638374294546222270498951180635659177559258644641104684151181342585931309554067042991060437649767821900114433795455519491132579106415829575513006472195752276745428327696385626204793959262296022109011496441922526370772267265728693013346482058099487721576069472200576684622593161935730067699831163682749852255646374611668630383089360788011572870965571654511446533593219458343028315836740438190026998127084302126982180338939978037868399425976388866784992214058986455990872302246985817985685271760062927966535179454208300605659650352854491171395071233513048478370569003922971817565021461835378537691029388629912712021823373631846819441180493518562696508757172813549578248626655176043262303606991155256348087648221833588879928097779955756034548003857294690936079705264988315651150721748737379387291215881854270151062141670692763916156684815876812151830248560865573751916721334155119887800436316847106563209790208075205092529899619746880389191654994708245956813087673732116914780397579351408015151650861067433390395722096617134754385881608450158639598357050488742258439681109721944296008410083790868146924587770757096820227377431361967003666945555480227602487812113275203453069488107875476047801925853130328213400196112674371119344674580566506151307729072422303403242667961532815961775440928106979094761366980327678352607904125054913086731201259688513467148701360607688141808297205179007930255411820707676309344310287669708441188435136963940946732937397366741759987644227423572633490297783437880705722766268724734270880301532521199461517742234256374868057032660825883056490914641868845803227034143318133951361418015495053162642883457515592512841538092016747571541518846677958351214551324025285717425557976549916489717341069516077602514937213786376423182803707378698660930429469094362623016460035173039715546679608493252335530675400477346601038118252019458581922818692720774641511436794146679843851700242558527952578421554260243366652359157868932026769311099038381961962992032713336924724260117188814676944193929970008540613233616362566923891374222961787360219082303792828469455419035312441311433188537972212900560082967109235819087448710475686478795785016464672254312356175337980186557835902722613282089896610525887953833826989284949997965179994098846655253687330213056033476476411357383927869400365742999602655203081893919180862971726935746229549851027687231320906161490840664846923634531261388288218830216916089915669229130812296689906188585735769586493670566480404060565503842838727422110631084117075356770547530232702059795848037030711221071999165155151877120744891191097152899293312681965596309776668099868753921975564754589989882737022974698130846071984793990296374247275642978704669908869855728224812042218737843278543409525200384046803992473773244769230326022895393415772400218920288095424201568149033578504078933921059927903153140354608751255561737746202568543294861434629369998509975413155956012384679021152495014513788367663040168353633885219786354602002072550656034146557023984132334549102336102202163077631905263406774583786402957994430551220017283286080634787935893232614448069349037002240913370166644167435466257634531049086523701179683961016391911167356417248058063204437039395476252706011306262069155182615508445527454202016977101623201781672136632019206009909513818365554050294807950398817094029895503245899942022150986707733180614333634935385485373593594088114310106257743258519578463201589971814761572935504971407485273239017659969328365741617558670201315349564992255120970586003327931607211898747428867418597187356331286317390989779148232408848526101561217066891740422663330135701131619923258461452930206642122217666280896291594390908066150545791251704936622626102947880881227169045750932058486032391889451156936121772881656078016567624988358646127704836308952997044342870732923751914361456720674228030480254442055443548097365815975868325294142550352550403856905173255129943374865423127927040187384724483717550162927607694094775334092291105427262354826029626135468693911175413990800499583453546302206760807010236278761321456300459369156034343282943497563635974595525951179297581021704622849397012725474677607201361769834912692498479199825544289817609897572376021320428500229367671520542655699951089296571699767808789025637308319541885993441960856619304711542555625072686607560232453897733701886845561562352754604140288173243422744059717047197179854437275383533589015963912357597557715929118612462404348807135980810744950259254803129695527082357512460913189806189613901260196641463505488134227397200515181147674425330662077861438289853389901991824909375197873268232650883894765699321387118867723686481032546520250736373013598038378845767431402759356837017516197229377184681261969112922205231281487171941142802924938147441615479952498535230182175000109190521640101563479664614101169838216445692792145860946211746479033870046031219190994453439248468583194559898597199433552093130962556003918937237736487069636648040519532452739946822968848180602760847575750355964261358427245878784966159189634486280668109011586072415944824584885126435995987179184055769350994446670729083695298250965042858327454044250822478989908339001167079388722431552870675207237664812486587091397431748505862611410686997465874118443144386403843850243181346712395071956429226142075129534122990520367624298236389975243565333866135830184648645239480150982268560817699787710350505141539586495825135506733545356354352312385874916790714404672438775648323091691839439565991855722039676820317709492446250014591693117967920751123024792820313237027210344583218215566367197752628473871258590672491380969223757578912400027434656823878257152477099920892246997374328742603391515941551411506865180070644313292734777498634631502870141385556681247917189514499178121265338699362828310084392589272472588183931228622771347023267079408208063331996775406969014211547282840161328652800395007470990722182163072248015571016376608619497648295488522117919044087052372866909727131762442330304796552917363998121715033793313788088564070185710362179546099121711948646358397461279053299949888262473096914715172024385163972742472126637089829357416369189250213049930810175967498002813810981294430326406350203353570586233008066801703696074814084839871914109860261723165105340151692647431126346472735134712672908482450652816539305915252853362082991297829602585365892881371352464576141133796376702859692202573738748553468178952799553416451888565630856868373996236159466845318839850971616625326335479280286005408835954928920057586656401739870660164259917589145995833866993262086385135673088964711038146359653916203158218560510287187390356424534717391053304201604799379894415320420482448320199554563623939764225827363357715202959623450869214352982979647051631622968934136890725643712291007663750924087656186741783820220999062833079639085247798462032634491123383133085942872184178550254303379602386164151443266290693071716022717702885012352667199333499453183763285681227224478812158992253687748445072275974287621878455983774213428526623777131862915009267358872395785688869722972804047800714385456203664504637038324522688996336246584904508089562220190736504239722686804644205007962837018750622992365581182267462926873644804025661994580228169638967236481878388395677341552187600878315171585234038632390207961571518480097665371910096554563646931505751701481553943412883832918703982308405232004075606471311591577727352837091266701271138213275337620775464684784532748334278405744095958064233452527274920862479695802482702117887314520334774040318209896610765118762498729448503679873048911389627183642315542186897678088999764891154427088165558228290122246882276408200129628302403080528006882147175988084446467677156592400345967256420389312414113183516094826184560178573285944637905360200350195269440401610168092194737236645866038002275896483146011944310945751828710663367899728700333679873612932360792199258420343138049987611392952005084339394158814492764488996846902569705506179801368890651252131507747125649657723937355881831966919615695217242781503394978440138676652548901187720810828575394950297534106689936456314804348950616505237928112208471668569696972133516747152677683611497875691686305574463220412834403331010903827019259803699042734480864479570569649814456945119991536337532941936960509471031278000125968587667844197352059423959861313356419308019936037921461519895856994671969710152944771711646033648703348488626611899783746272035134158085154696762394083334467125914077590005903439960219657830633284479743120238383612095018585193346280860845087712126473499291891862350360941907932427398562938393544418051503828395999706616573576220302203888047182767085555690629084850738440055134162712137460735982489009625570366629848034862720946391487769137772484290775064157223703009295742909225389297493281111088843569212627052897388667011847078383161463686469447235853784869425472249484444855562762797975662018238753087222030082171251272205814469296860389627647572991778813211913121260580956533322751547157119696907373019836665439295445141941857219548404402588141373030483986912885965396066439711076076367661358357258740919319452850285564335129307344032366981852156364850887517280550132097935398491900739172999978050624171566088915851341939342780489147870449311627050826920313960253996659624817161486354213451723151153858401829372250435324239801037423510236111999184044569094403583931450747371605634224947081540175087745315699089513356670740794391476013683618631907580745759459914050583752864272328159117983180328391480355959889646389214519840687700636245696941456434439932740035323123434516569528722745663682999857613987336307874007623870489474089200962189520384008002522023817259297157936430133868176716733727687700672036779871968311181985684317660135163721461224786434696986482169765014206829664384065929608274009871294778844804992018184136710554548481784250189977637570688632307356684274845099212896572211665787241950449793351951086074515493212629406848010398596319627023377724862483650386320361012802102379100723105717408637183761181673025444213921359578248369749786523687756516914623038406312286623078650156842815127532738023727454313755947993883621435194278289364755753352464212993995395155031668741400822923717606473459220927896004441000354785155639501024364266387777629437131693565293937662000364459050885469699223250730569635609209007702023117498240039366867089003832152257767261199270440978160561788500034719374306639569616335123124011255081774748797240909040880237175066746954964122350488180271500355227680353200440875349671510840847388809465188093128452699436238950134948973442750959614327380628818423129420976261887232402451763986223851545985757149592718222580827196991563847658954498213356424179638413169288926269604383354274286400342515182399564713554172978322783658574470447983435815029242413146482317857676236248461533650043240000830111543266775875731421291813289712959189291772188809150713178140258769260824217419947582053686670681692164525780838375503639153559708689297294093249416058076457383784943166028317840439340297912113608715138197009335505873650728508162648731302854769394033456864701434090462239547474595921072400830411771578213696854836371947793737614087742522531139251397263160026435196690373456293183848408090399603317148485593818982591569651189755682674996808235620531010522525905807115141912319508983530452079940274281582596669130794821260550955011044284151729782108014469606720065304897440060458107293144879013915601974822221694114569555588069757049405391852882743252906402898408589748458550763629553780371611510198280495426703293879652252957613073882107567428607800584197814565049202655053684447898070229877777616841272153642462114105368036727444893192083490469655362963894684599374858173855215395664524058145695556407345734291476017124124340248346822535812283718320080520106707478614821250368420705416780732918678440855813892465679907061372635968270258282866804900239224683005565732526366531158901823718947136317362725000354071580759382753663587943546432737165879900843203525951977417513195587664059803982006587708918749599805849210840867509444823088512912094759076122456183121209410328797095645133573609224383779395306085214638258009044459230748710139325477146162333896303176142714497815759082262560481223615377920547045733421731327166841121111438087296369470462263867870264828967462525513451329649319213632312350512622106400639362243259910283552077576346129298378374753311740320827918638084918529386339399288234852995881831200235402418555881143243385383261309754064989024859080137243563550731766778854494339292224810731370581157579406320614277890658898970433517397207445833472344675479458071024990789716696629576934807966141415312583720318743810663164510193302006218378894860987535154505593740023837121384468241595082713221415417202341796801345940661769899234851443944157952842303048564950516642750193120006899498737191121383624409640634702383073099926577038339053999544133966701975723258618498377649036160786939276778792670571465115241592497048544648389855063547948883176729842560651348112300606890822095782527778824278198950499822557283722674471471588942273012981822358567493043621520415755020930681715432573468219832767973123790384510789013660891087006454470685795565064824618621779377685119036715939106817372184927351853146693996313921534392248558263828164397378832455195692411494784073884343478435085431902343785623212808103276717590835965096325610706956704770831221504604331085011787498365138849146046708021653809682876483414805573924619747978178500326081247303059827477856596442925978102959745323430446920530660860351225369372494645133155876196328553100802279408555553016015479065047272849785673368015403776399641065436600473168775910131829057567134735301444850853441598096567310257279232879334453649645599956741943414369790124713476965265667962315283895156213565678758736282409126490181420318595736065942717821126853737369622405788816095310003705334542113217947735547194572045934999022341946569662446559643247599307381608174649606001485426981571025723305726069248013168628241776557422568963543682674747048886800708637831466640570568060405398586250848164876239453126222268810165803026228070338055031463435123760794913095517088788457009313724988329157450911525177197220055444813450356466067040693386726021670766635399687843682523858694828656001429495336371029534558974767337082245096438590517876233933609226944569527893460490260659346297349401139153931318181983153729014090487517155875167568023046518718773519328154703724967069533988127976365747099648342823314004692362530273415186841388592064658239713771884324355727133778439080239600274727502441011421968506749709507368759993471076326498852564899142106997602926668683824339094084053739667147845380529621916921754226289734957776130797094001847312764692275236572792994125772076665130242066479470259269392018465183148271876915905936243663352058214541204945251416809308606386596781114876459854426064846285880879893913850062178675576200720378735994529593780097015992918450000142188943543018662837745684310143218424108306778256814150992854792306251721748306985253249632905638524187991876648504014997585255303063789160387468288955390994814158161993208102099365274081291997581564488384395037050468063860872032416064239762302198895998077742533168054003389218116963844386653555724433146895889354939133773170464681284271493018594248232305184239848379624740225060746324641298838674130679599608010451975593040061687547702732857407460039814086610109721130439181708021321073157427767165367459250713901547494842719761980171243167213237438737496730354235067723200980211942293969281776501483853126046570591012529622383427363884073223187149039317538828666955803908114741066966931719599814127478035193824247665819414248505989908214424850116185621360761967022626068166529382938472684369663750765486410608817183761226962998341825365063469395170869578469671528451920863515443791713664155714375488272738670691157221926653872777321886360293061721716118500330575350146456686853700958939498424848179731448498540548963792339310742278701907751290219876325238022700083251246869468888604586390200080595610392644139295607913034924158895726470888966951826551538209323193926899653925834749014935865523479216271895691790688594388911422557775769931330533629774876919001712320395173671453791496045853117160934340917295169713469092877502207266394865384805882240339481546365010680227975010041330900722676948172395436996823125934763970979792545905095883780703789699429394864363436777424348689273207321844922924222174875906645765434065570226165483889292029180743111034690520991029507988115377462157210776285056393229536420861517899024217138405751874377296125041189194948537863438198965166847801474383920849503602938271970971997558893226604840926628473633937256957650257246248469800427018352372479856165011513019375714481996329567347612873532419890776771049855331228246780278807585776699236819030932725019845377676670020877009290048643956895379950673438129243577845806216928366239259339735270065194776669059436980868843080972473769334674338456802278237631392711861996257619771320389583299637355782401188478418402796640213856410051240195871714737447778438475666318602686270826269743767903101781532096024702793965147669471630017684960180181179049079973529950605389978387205366008594733924911917842719400250142709965393839005409036798598119305663735184208174950338844429947266129446852191816607409975014259232842009087804516672871804450658911813749956045666247407901036554979426917979111014470816087016501253869122249469470712376101557115217909750041288580261585562899007483271082368765104688269154249284370019929319379463442229723357303231113221314937711737576334547455894354166498342671884804943376323049265831170367797292721820044094411860564858416094940832668689789148712721036377673008084105976277008742272274863423360367616253142885781166845036091481927324253702725277766364467987367395446600382302736847257932585331576475865375637292466482553152616581821954685408640516403168991000623191417987628742875959338519630284156332451783043199457991244032974042627981159225429865217098849632387748233850570383064213501315133229189924996827423089129533874542611312925705605010856397021455314786558833668121965123650409532390754603141882139812711197194492020054271988811553206889258817177725676905779784720333605935183737964754352178884834971293597355090862584886419661348625130231169628863971253756726436625523616741759143038568047272826229801847294890822987936394108770774363438394785191705525948139757317910517575162154245169462142896195775928315308524469534054060808031844286035062571924759585502238126593728932777993418085949935726147286826300354662673577100739896736884348824768366056317103727957045348482979148247107522840360261263226815867424409167429090362832332781802048519444867431555150768760555636630097946228080577479996420732682768106916049446536318860946542834660259644804487601162341980636662999198758842253751296054539267389403940522636578009603671161069401837406174293755732229134332973948583991222518088358561835951801266949891141210013622230290325452127940265151317385412582629283479264660287381480417051305828522469858736008414683961190648740141522705062665834873339359920163431857581541884515855939855947854685565565100074453553310433545324799886220119178161386990672640692346528344022033878376421148208114870138184555472898669099906206684160648489726629491186911819503790253187141641825894488584888762431305453800350133351135803242053985230087464022089414455243224149687305163106725449215071506541390057272423536908338011549468674746698254241281553652670930094734154144155553796471061767978386870797375119526187985505597835677536360532739481834900784116317570577600188012349276516599545940039911535014239806647210080299340716152470841124699816030680106331809585963117540515661355272914782119073074850129217448558898535788046244051463132151657134983047433566893986691151304771424773317085537007843440861448392260539593321626588453577930932045754259282044286294820284160875215878137840568555960705425507295765741772934394823229966644202787485229201293681209958509712276122182877009736537593459321966572264294207418169469099619187470084797634488946187309801890121447519362176585975786429631268860795643902917824919979236523729337277678766404257258305502614671416408081471901918933325531575156540077686767581970483807938988211827072485332321630400012365897801596048563003866574332384043466868745449571173758915497719662487155761056729312473221881192085012317010986329833374555800205826308167255140149308922536920421559043907926813297092197332144690288820968242244946698346831010165143234120862309769552279249331303510997192671372540293636567300118355503229407166774919451956486638740734331816328406882018476365336397492210419441181327597378811607331237208658510934884605403926615657886134203081679142410237468418026869927695752517679668916116934594051009971018761044344756845548951614824922745087614505738804231691022206588060618091749957715741979436219321906429512140608040562492476682313661414624794738764521159528632479579995981006516527621503535143451114743695212167615832071067044812101918470717881076797051046795075686022035417613788892041302849400099765551976428297760941292323615630602740809823989870733564013310121879774257832938412494618367114001927450682924864685542881229351422119622276069851729012234974034327220984516115999379173279564283611434713292031817533038809582364237392627845937232723242398732038866255288175444720083049048855054919629236411713839737566440579775534966037977502388724206239667133131469476686315249435234998614427185575634457251765227769453092646033481790074258652013172733538093210147595483663876572563778335771075149703354943018218430656723631507562661292721859978568583916162802125854547105957943248870483407665526902359378760403916725810871515420430900124292458907915074392128325905467218187153054342235777932560359970835441933935181566754371500635752354247495499194759756094658188234882566053868672573782785929855008786589940054821178505895492816313876848051582291070366433685621576481132564385841027553102807158204031554897745016548143228068278446107858523145908070530549848275510146323633777733392718916073213222998148970395053626463165932025736662290996742755012982779197152692922708823486276059201698326758012514080598449150230028191522887535558449642983838002188242743422055848379428534882035132107824225215187239751402745442835393279947530901092441406562732036297556566276160531125530985917737481818375156970083750657592337159629572071949948120173060476033815736366173919494160919189656886376902914573497644098769653331623288253011128319970690800351039083990234360732711475508873706982196615395282687365165787249556723647168918585016125717672470208568279492464478662436387486343297918960541929910205626435630831139882268983997846434473699122493793028922297781684080427654341378256390723966801378915101759815085304927354585499314780093556904957362016732126783893547408535139125184567833578011426979021442679241128417644000461775785347863037436079308625151122448838239900211029420289271736591042141527922862891870775420104503128209849018657241838978198591742846810520500777994290505658263752754837846789166882653199368289668876173098150330286841739473726650492028328193902664917348209422496919197505820598445363903219813818876156335031093509290170821110573919879124313836653764447844406383014373445314726188321705577671504696077514448265543515932661169606117142574125400474820793733615944611221531179267983672333523802230263564250737956458121590893165761580712716774002386204472598764694422517829673146383197741571468909306582223450483949287703417671053575166991961174989410324233564140033968210519700082640049841655812427200384020384246353948135989039492046194641578536870268611632395025511965042862863534870260692331537300423376625527843235325872399471608553861733592964361638476490212761828751763695653312472050517646840453155146652857902997661674954024446473490840363925153438444149377402473768243005838756344529134096285524678170422481699138640861671088673400711555144678787720299449852237152237205310137025594775460921487956955956203872508738660532984942085033607792767868956807444087288703653997264074481546272280774783597024992915469318068123472636195206148960987297216492638728580971864832827798028362777868670688017335403532101978277614154983813455731032360415999201891557195986275896082181794910249226117603593691885635445195970429098773373552518579814216927163962138597260007707025027566338273174257115665893069539399750157724664574795682202769724152512677488543506720655659069525505071119840566496033173498718281275555546172812826348096679188094690499197347226060039450403334441390834413600164853738169082243296831837229978742144161447927691947465670004031609301464990889777717969995640501446584084024378734987599043471073992495104151480300061885117750899815577796023794330681408287097522643127130697172631824215645039505363230283132696802931004400468084153373970055729683810417897737543702113492106328487323821668256962698902954273438800290290014400196585705150212561811578304802014043626661811053487091437442530041333941696433280584363338527161682994870246069845617533952964043437092174429951013727385055176736930969779764404314598554475108982932330874636503401241701581770930570650164226195277424258164607489343945797373701081487185798545886730823082759161746428713705289206973144413132724724187550186746153916304247480818843610154641748202171876175136163003780992561413402196192710880203573374066671118789844806970118043279602912688906907894582795015209492440330858282619766486518793131677501787211763107932554122998928729251767969883301429253780457890904333573932928813721910940747758363785149624226315753451185364135625160976512656815998597309882728114415654909510606318479286151507822356566224125397823490498031784810676012601179189260105472675223895615261316757940474452160338020962593160019753921003085985976468570747911958185261899347172451333757232442786384585583481594563431034968128731758836957078291398543011353122235488219832095456421832411155954644918485325932741581851517310479038806919909584612004590420182207958127440154737031055251796211984261112069958845521287994108641558513126182173035777126867514012533634287119240841890467349378831641289204373202501325311426604549763648786328658411795907653635007591417358997817210749969283357090219819657691422087443792004100292159879747461297785241119003728839005442084591049286817247246045953363178374680922988788904361587701211564905527486407106155486703008718016912515627023387238309386616623639383119981553165588668791765099547675659705871457261348993036464979968381016551904705671148565244677312276173468871744579547438861215841473077766529315841460156236695014811913811786157191858082820885875803066132927273119763716196073747142676490256852104413613398318431416011719345185592198937879995797735439322747448532038800222137398739023783114057808219311360792467053418939434060861423609119535091240169022825000370131477083635140914605014630949040074496725318098599107198298263104625284790254599041186773139512401637504987055282068957775105550717688349336759324580528389936983369691420907559151141618365574183330211495085167567990560699954777407244530517124711270674803806520613774110924922576677094396575182506256332229323790062894012796281850187754780834316361376820472707726051366316325816273265802140800921583719795361445519914892561646522022275254399306453877540688850949830065631981744717482499567593079009898442741016408281405485609136122673960630117582466297442670313278660090525200745143668351352644938750708446972774171591615140296326823652193960950856229225107764022450869996068800116523412509232218699728865706795944165200306522326129906450971409474866882412935198229832251960468588108925811623110483673305307759640964485534277209494150313400058999232951400743290779285964976197967068546729440124848956628948433773738511475995750657274483283491375110724858281733248650708343630219331442135852564896494967967090086570217124121517887685580463386481966696840568190700319901354613297445326885482818796454780461764748135269994697374438329869634844019390634638946431306713977523340370985972251461637755976652484349786819594446699871405119885699984627884780883744374466994476952147244395221371106893446013237246280530210994908353859509886824486900692098389841817458467053397582894867514516304045171239109966116628433938017967863968305154563184151412444382536152406827416286862927101125552713442075785681114079059493750187495271425923606796549238202616468179696595270724119865563463664938932446741032671454845594466745946712942855348794431327681743425534020499738990442333460279154581517463060133291164383699638070709819465639587782551152574459754678049836971474673837159901634132892115812450475588631762364734272469430345963656072296403118531099662793711221634247074392662779122024429041793330417295124932960340678402723098689023759169194978559612637161674501309202602445085032322932038323549644296779766310175438259984695454180079791133929733303887173338398632981801742618279600844324367378461427579913259768859460908306289627858975339462411130154094924193467966750091379597397354452929098187007575625207770729563180733085958492757269335039968585881980571899183851007108366752376841432543970507886387655421444994015504562688882278662770836481081970392907230384138933731509969853805344972801861836482118104674368161660158701071275940617339762520771173569467927169892052878304374346820532320700579299912878856323681344098804762796579148748090738658254581630407434845778594551348789603143880157286790021393142013367631907776437912911434260417468603705082164809146559339535619386751625018593945238228789187043437105776146727388667940836493583621525578910295088759275588563096472696119210890932389784184097327360429506188742036950936261994099489977991376747957559481778711835631006277123481529076823154522344843217051421820211139039698520682707316520370425452701744786036241787380024535395119244412986181780648745536555394572397623795410302587406327242239810649019150073775455597936672578145486998732283668460748509844345615606269799823744360374877273740995022597776516626657935511472490972563794070350945750564133232801249353133694642497874177229804436063860459409733506625108237678325886204353577607382304730752810780470696253529482067035477948256616177046472946261347017100418517540228322017127144378828981036880033262172433812322793350461368467258250751289812629092965726827806670526115519551791886123574772957222481045214383756419548745079618287757530001991752470786564130268908793774131116427108786752996424317185026311132132534182141667257246824026503898934907111413379460884692861416640219920632844843726868793837501627067695913584636530376120503384734366909665728086320471881107508173386983123584406037965469382293236261943315659949587943664958854236398118880795784448067567806340702385838806262006402067098727019155724753097862361580891334511534870475385265120609418773535362966610362681770779811950747414497577260630602187620965000246828236252765781186795819771640492151177637599386106475453515661814415742795322034381657107714713243195936938790594955782688539037555782760442467456346248278741839603177056666365646358087531173450782009472089525068220020122573796474902727877343458974917309829343993026992160253913328415093995379930790838288904032711961281497486013997282475154765624117110580916037507636414220439186933196466107768273582839603176499463413700963112013113168770774632069283557706581604642782686119266181971309701614336770397367793934398743795437648743562550105566049308819516425860384339311165494433690052175475579951443890600804544473855869122612087971639633044294658049286794050971526562041938033479385092127411003115840995360212034718231068176870090713408579450485476416750179585261673488855943414331051350156302572775436883881899000272867162698536267146638067145704640071676741582476196169440788310221034546834684874020368794215203741931027685714836123240198775233767055810435841897162501952981160243185673309928392488218518242333455099789484395557800166222159946909067097472896208831307610316227484542349861603292263761581840016990952843449622793741682535848039343316249706158351758451908115387913269352833414645173414905584822347633368219272152001274258802368100127529493038832266200968543428871632373022963036262899701009560579069514713149910942871592543833599661085115810669541748462607135453498300659388980719633731458851125509581441733942833763753742582834838758436111779494694384526496926802507913891556498561446313402452579305707018184520550315205816294596052060161728971118460332862440343863387824638638639036221841428980365506896415497464991342295271397383143269779447436313109423142504684050343421000897925286420055059218576389666100609060621362137325494419356531498258166700377239507081602778855004351149345997122830741612469048423147532558856599632238380121595465526088108453099416614135895702500073713659448120345622550372803299727168311016791311507885432032143584804386245180815300449310545296686346156702214483325936591512198744843667950045299387847726480872270183866179135080675209225634774557949228858679224020141993825671431388495884764242556913581245259332042033055431971593050724444207087606488801616350795689734829632085060849500955775154765274583553990458416502101897636358041241099510838317910715313056776278727795914861387162551676594015169804304742895898398969093091663679800540718563540847239502119914915279454041516941173989085246884151565563812002692623926110363181633548711321392044780247212058940006650852653858628601443014830302673887696336324384701262394023058325395425524854586983194147602349872213643749763646617455276593433041894054619280455779467527172078767768796020224475603231648738714694389166372696860518607659063960848294562527316549464337900821262372436303118953352269154512928589928713904868498446037161229287928881814935603357647091698391256301287915162727559600768800216370660040027744933768584806868843698440721885207793348217901812702373770618596517851326394941741222199467191224054088532992869910781296754569870695797069749610319486697567640927366133876738590454461444888916800514399407886137256724694615516503607787069384909983719586527657758292939867769729576346145040151344376412948864402295908848980318770423205003774800809945180701988335378327657576931554586824956606998470660969377062798167739925570229460951371027285745806512409993474122173023038365583474621676196446803103632966175449647859064674637654552850169312360494365475759393964829610756304301856386375986373266368322620992041233577103919107377972994966653740821259469521020691684191877832952149784740542228301411651788859658131646608703319465252327797715849910191893649268817865473944666096783450140187882561616699344999184062784071429156369166093962068718100961450595438280574487508505386242926982938399807865063955553856235783862731117289742083819926086471983190504471617441413421104406234711218730376283279252674010379609354181777210671373887162780912811719667476058980607464268862992155818230037116487679174775267632339053993310660741014973613110968825346514058058414064263359330608316705195230445042582113386510176165128358456460727639197354868098791614186406490673292973097292237891590866711152086357958256142725314346200374386576992063713922085739339954266051544835213420972245849170103825919582432509995594204188202096872744350514010171720101442276764320561297031657708326154548567003965021124297036795436137888371620547881759716672848997822995655749172287566571006745975701964926123938240563009014118888352033422325630428517153133859684475587083866026032804999048468913035544051714278177045945537600429176909076547607096057191190784466667060451967041308089365724742260393184007187181819672047850423923882819972808694736958956411155379154109448354572863902809131230594691153058236408261593650392444184363510072617860069874131012575298304216715574958498113708894722265882335263968168468976665284226269965731711233334705371937631002633939551435698600362235788544349164576161522629956322620775400710620488681939344528345186499443534449618944580284435443420030728634827493967479475056377996726207547647994819433811009686328625195070341592968697069362221619930852131442454338778522946019770690336925917392320424361234763601522754104205089862933935285211322974484194513371738146767097079484228015248734354103072867134280167380779357864699452236174874758172115828413876532734234358990148644431757538879313075360430246389513970632963652965105995565996384921576193399781500869239321919220652647332840035783696386600889662416347513049472952786262817410118259341755010114216826080581761153476241832591684499066177766726521885962181574465270895017569485904920508877131352692189615189537344069831102436240057565963764987204115282182543690031466423434344155018109013963769998443088118980119948704483134221368184089054384309616496992133003373483826157477727313583436127849890102056050443574063098225976131010319625315941341522250401427414418818969654021590762566212672223067610266822760900593500774723831399157831921346556117567071631139660612683750482151132697726557938673086992766941394618683709382864784585502738079856153931859053329199642341896155911649982265461714024746807397059510455220103625316199976883473398449752623315045095271490945646834826928436591793093390403991143282059178760024773557218197270651838241392586720887139866931402303824804267928808479192737664408626785785815630722079548119889032338651503570109840165722876531902562152401832676450484281325153326955198722928655647047852093762249113901117773894381180696249789525919301275990172245082893041206720527179829338017495862001371386720152030354553732018213468192248462979771576922249943056173776198306870277554940859043718521968903504264213190333126589874109307085734582581883749152186100072437535044898588150450992415901873154201880466205976610514080101310707788771237969095983160013395203873992173716686125762541096066907165034461091989154739409221621167344097823150723635722278141653401544477742132655552584851874991608236927051270698714474107121651537113273414840508814842880252277528489865978906463191277404598146805202176394971402142331202946431376150190254598639800213138334460245880830473715935885038102053959492348488299525213222320192112793452641873719259493633943022931564397501778393163960950302047311803582560044508902129459271480334816600153139765011352003842275551118901907761628713978508841741681650686761161751658472429469411322481740181370126297439863924844981457771456380936475548401855709459305599960287234525925315202062616496660818676663373321965072857658031527782736001576507122381941843422209684301398372012922189991142918284757057910945048035738302375370024990384061607051656120608854965515774693677962283421541421965052342257079005512696467056244953033632567335695418060443811161449037633168887155967917542175638083604814274990350894557938608629480509516011555965172028349911388723988162754416312596298583488923385957048547691992440863926042105201779781152554902626577840663882761039256192609091753399316489153791628653584136359156391314613323805652933191326252387394263087833210823236439755822134437385423910636458412154400256162305000291445481788858181888860429422997488734905490891352732761755627998966006309044746502476001560920824553203139116086066609719249076262698567977889958955301685450266924206740663100600768147370108626472737351830294258468080916452777591544406687437575196979260171977478813601476438104151865250886597508548538627129893644784262300890221037580726094677851221313295382965173697796123721119601514084601120858103395739775659408286943966456731744743298207049623928815060224979406280377901396196149547774830318002371014661986685092267554749501264836862013905300620120227543931501323502839592372846562457539941846287168792659616382628408572847808220274649171508760812593701659485427341777333419832719575840023807519289512603775665423204584823222707825812327004622235296216900355115960685173368134751810235216161881710080161740665596863079665221193890226247677842707734209722566133951281342177757666166700739968928488977678210472966049573916472783570380952207467555484826674803724991608598975133688418320728867779769108275072681327287584728720683218706609791376318633920360888331960256170147129201069530489147502941936986592539495027906721195966219235245537912089025367928216377249531275511843270349265579544037952857843534998758759869231730995986516110874036183051391991891130181001042194047588592554198640671606189779106739479468930213108077242742597433121320536066257243167839296304680264607762923868087267502315064335567598320028713733593032838713693599611336662432869073951188694076688608761110208516762109777191455542462789450647884908078232633950058263124297124951951150196913615069370916340759244843540702442820959878847626728894040596806812525248343641403168633328930619984483028470473856424905069542279477425837010901325925313555408874082528068064755205542835637875572400745045668004797902960827614955688420980885559195272413872278347284079090403641755338849659947107912096253760058076661369932433461571312587225825814717026369624136852498767120312163877970798390129191839014896225422251765608909484706101843865732079466448519759462402897235616597343975829004876813752526015286826742373295558459603436266501872485934868837032795318366357844734177621030402061859250397920281435722570824981403758340505808833171986886802677981618530246843524542668019656204295838793402829891734437636473558146908555108639141682443922663585311157131162109037548514618272563868390718479664833425724395075528468805984120121394887504664466039828111510852953789162924253139375477090729389658481610940723203401176006491249149787850146485154601909375515025939545932745753061242664243618607972506360837451655082038911897281232166669016766742614500299159285597523534594073455064285700754098573570156686319033816902013585622905906613426098855740960758116140747037070813583328809002511467584013880957461851255410981851289959015471610016320694451849490928883929034074962918880219644255416917710599788117130807877309316875698011768683366639523128043936849893609430080511904569338997690350730731073809785191380851071212714827888341120671858164752944016938876949625859357731506271522123795802686406556852497939712654190717854845234461511570782529641032932562185876164401288501208092717102852202873304526590813002737701555884550751471908786726165442709027945951394803550960557410585987383979088031835222502696412940407010192667226153058207921105230573082361757001648786260777232225069571467886131499882939245156980316548355527188140841082354689231453832353950983969494877569965304533063348484035129294079741993856213321371461726506115835640266280066831136769759357894113178242110519539320628464374186738545770838556383087838350249478673894849941012663413677550542901374487768122943853373980836637671022243344127415361390927069338342273972311614908879854079044152720584125770603388091415965339556957576788366612560737900632459038792981983711165356412586741188756268471968589256782160389613231961573610920997360886633968893681355285265723659708594703943844506926546367284432326517553650336466292469521271741697549396389168657709535214858565995689895661087435729668434077825273639537974264770144548082517475127935136208584352353566515749350158287754786836436926065844366597020824442689421889388392242834661668460996038447822887683381882348015833249256476574318085123919990783143775740173621090323087403725240516776211777965815206320265634888270272246418329709477778898121202908256544097689328478775816290694493637143234104771747957699709783147374445001455744114157449243694235578635949808712841184282547048110809833546989310169564279389070837091736125340546574099173386218082744954766447603068256752604667416652460174653540508360585571629406350483574682575714785993687622733150370196597609015345276275813127760217405883662259351357752249314696378384472248220992940186031089764989487310364078622943079080298696106433025229727641414722877211786212569745042571020368915925008506179289450985867175140544059568497425602587973130268126088010379969349848921263937620047004499762095684433708003281182535060770758446016772934498970321909703264316149554679717869189747829892227246572488597186817078428539660273698235173385398857024044101701549841517199535728829593106602163541817279428687380589818049038234224330998557337660497654513114955469230840002277854602169819171092090285004051973507281477391640979962290153363714560262440043833855183395562007627079726188521085795950677133207793921558278234068731879061032791098939095762586351685870793772046316921742893287405752048700973662084720152763816972017820009867140073034801636278932107828977314636603663464186164932493717423578235572539102791601824088853545922461415066442531909371277598797082043297663572540594328461008293295547104670291163536745765331988200009694317760602850617819851135919639600955802885215785873729561894359601782759030919747098885280263091256606645220611426393383199748680222495521318303225940070720224791185524334176130825514404345852536379937600693233185981882998645134831469668713280680537722362007372753126696077045411166884284230989214885110795580018739471320143415831287163384418815041437662944096307772683237656175313923890861740837824180791984012591962307155503358659984452149832700839688037264305126346802854011576073124833415352592494034551485104958252370159482024331054641411965364265590951131450582537103999791784490128940070845475978534898062211201428435929245051525615420831433280843641168198403293894367920714360868263347388913521725578706897890878314128467330462626675877203822131380685294618665960247829955331986906225861658920610528189481743376345427335698975621598152481690819016141505003635962602321526429135052169227657034719515167557075629134804383722937713390381487363497570419397072894390905755889867290477019758605934602437339534582560235820408703263550806367237709645639199599869571638844390238949460701568283033512042195587788443022405798935632737977729342298122349765114973757793281645497749485374551120429446580871592542387121809090255906020021654465934675046757866833784188564032074012429850631864700582373644796988438020303660302164480527019721396471905936583087510934340257809824377307200233994115724981536991913714915021624948361987582595830194846223445155631883967926083250665568932826231267710933640606038453981929480213208365618949947328340812976504577020456304789642048475154586312322828413864388326128458022493946883106421258019816818634032542922627063043770856094389870745360668059972103683934256723468156289851920384920038327649757255234403458181880657942727269704215222554544747129048885237101912678553291708416208808745585067724541482303454942622442800078905326821632922021212894780455383588879731633111288000383577831125097968663396335288032184303653068266433007109114657396067846270713299347748507103379761283740560617118474743179638360875000999327821598111153322961713468654894506079286676057923591879661907563224613564775300595747946965107461400267136304912797328013866005317819823165244191112134244282601220302549475244963123689657619338896060557072394700513075975214693061802389146566925520790086059115394093089411623560319738005192410588323617435665848627107306422664231242289615025094733640913415344666172168019818319948247507063716201394529059055572500200775837026041860696305540819836823506460681411432504928468801618545040471417404173875882301570064909767403757631678196735724626081938275244047653042495185577167427362380982606874821191252983654716913581541106753520551977504628485494636274955196964139531425458465972317401829317100810148575748314433905843093117096041449015876993410648981301385193214785122280995053795152423514844810099757206692695656400418622140521010459564927494695711980963296356297095420605682092933279238389776493879376249809745988150564421492260012281773709182474697395133032179482959876076913595958747119078627127007479902147403065968158277330573281485111914668179956278472663362773135716570287985505932130559042916082114633612899402892373124694826446834418345934987266355058437377813903241610211930496605211875370219320032380389723721583467625378824242337052394382792510359677951303183977154801176279819982606530885578168240529731021167667951813862335164147009687847560949961863722412007288517889141584489251544992015683344576759478474146155881368075179828820502198981862029124396159365105241124638546467749953352592493919282041890265858628450315367431400524192326559556404054823245173781391220164192648735658747232896585271882027237735985678068849843097439584741091348898379620742665417301258011281209342482406471778508798155483537294100222072782091955159888485459394391796854613027584087530401790124747576365944379998036912651611371499567363570138055613461698815328301275188936257858330609181887530916213237906477215730595204429717007408806300346245989926472875023385774902878487874678728713110546138520989894984632771272127419153102229867758617773001163878643319648191849823400677123881255396299047518273912133922664495581872694347219876755209978398712126762398150495808875888624076132430479455804595700706474052919723784375319537025201707473818653406600159034504555218735856444007078937759651324686450846185192454387200505243776956602953825420561290288052232108717116406216612288293123274776587486543165075011553518733956693014188090933688947806422059260247463338547070154613272639472165871181521536025155684172485160694743201272453469948304410214863191346688823389966686057871710713835110553537885848319246310278979191253048520008640928262354648422805686140702810552604891024648173017343445809882136138761088606111390081915935004537474946139500302708101475225704353293178914065784444491384812445491173357273583760090467552594048230700100563085172954105792199924572467984208876262899993135414393421746433263906653016515222153239904600867890165174469839913264398185183802056882074936768487111901617048138769499313847430407754758907296441343892889689794061727553343695048752915327005423781204154699805992941593849066141404572742144962751513804501761481828273585748367351480366855571414747034989339177927856209735893061982289933271031076568738382888454062893772486054570508004643934016901969820389949868791013764542913220556278378304624424235850668482865406361241806030766818902239658224620944061348888023207877761331574347686166262881752506681337525681016682763520620322157476886099633296665432577510624239015397307224390190752026119602399745300700114535686371661235177561639192143939070943957953053044829002248096911699853237225160463563501238371898715579868166473877643506695880255587438687524059396545524971668963589086229407270435801158909611491126014823284778293620851280131272574816197884088431106605716520931858234674472815322634059528867906027391986586169228446571986534454288145597740743744314471990426415889388208545579033439446393803496898371732671787399379464252412918525263767954448965632800164535859777673438974930059804690007587134742823022033372493050242574587744617611440271628088791877971964118351037700676437996296106528608847301661093451576982156118585463309688353626818900689476429777736327810397629077271766242347708228733589406758799624405404732234637584800987379228267689044304280299260966315185041004061861970125030979722384208888462379692891108625460276358781026751663706132437119947188234133149966031476639363732870473281404956409068904650507296397553500838776381474215046892560779825067991709311970908093861506300044684070689214063771946529369326847102548140334598673044447056969126723664602182082240948731305614371739641684835184798676346924257183021968639383677701384613248088658690281099587735904991958412347151402599235305356755884331018445014772458510062242976428203071184245833732818768200433088301032090061852459781605869916600973190469509518977643853000112290650221109647315334470537835020364259760237119099347404523260022978722506311764700488068439115096041769630383231017826814089207436099293468804578154870559968448372209880312247706691616944821068904003273222304160005150134274999587572461066625865948738223521437566896994339188816736633949515861561821374627910054925616663176732614159935085791031659446964613072007347355608648690357582922329137614134373218947651174086897269215534080590453608917768909350805206905178033390496700978558557013556214616852628316146419228349441692433277154386609881778726024558217994553674663182329623364428142108843574394297238078950054366225257194771766318987830691650763271684796587118619737394649049993667001191570888111679186214203373132845829185008581268028316904364922136319540030013843844075214304860330303637348024228628272896948826544869019646684921941404216424132622448143418982669013921979627320678487303208517025649809421041327401061708927835288194518411555017213797630608452349836889930066464816959717166303696678720168254682915785381962086860249662135125726121956189594146606018606573666471894280253479449347439069054035144094134661759190586202053773897417096827638259590083831059867619042346336242484087981738293377609432555029295202563732311666498889842434208866608221595701435830972526243110530815991995901814128993511309554474571295362410569614754467837955983405611144275191883910929677332673581155289401253711257785945088202754939055851561901896674315457512766819003279776837164002050679481466535454050339029680545989091893853631800921123128889879629212701860341465501541407838514857586871368602251763740045641070679062507843448718807106987351222947916056991759448370732225939197840764252791647389234982474243650312562198254784399568139971932863086666027674780186396772026584374042598082350665920426580629133091060678892603655666110057452054092325577242136210981246080537571762453096251249746618443126014704711901837121177921366050593876243156578375976830416048918653798826994923506104415032138688462394030373297904255356297113321854424187448769781805281113877313134106304778732612440768806404002742608381666311947703303756984805667554206692043924077450850158045754474589552347916020139659699872253525275869504439553785522345176896352846369828361889384816936353950508695871565922740789459500581418632936206959696286437482812699124349046821023019873420283244316047309831613493232943976018420324874857073458609100033347873454778785744329798710857081010561914149677838294789523303716704464849919689081176630023299362668146574774086279885336568290740969266620776097091875966808166985647620568455524274284565364001564328126518625343042459822459636690498101626297774568717419067429412196355608078264381841452847693155163019474941116648502897752869562918956694838669455722385688012981118425584559914779325480330204656711561034887810115464345279035045908590913999865695049371039830898466014278136760338199409216146291230413004157351525856256221076472112408420113322636631514926717082742036372699754978645997846290279244909257732183535627095925003076958756084308396746077504067911155659608267534959805105817511102003700495505968001515552143834760438086973836898164373714075635345502297163589880800946696249432496559662401468706475145526492298877646257647325699264211315564852658298344613233234835487288141541852718581202047995926759508809984273316365797062135424159973424791539372894851381767843658287326891500462682987668524156038028332117250525935222084351019145732050547469071585615613963874256734141809727424881755576546831367336368023339475561545572802893920357403822203897784110161510295201201195100165579925388961072210354287388182523781698212937763924232200646056785059935495834957359110991439470193477295542582425129319207691099076276644170020746402020940897990347277954618923429028450021870134616615911302563609886027200102509795500240910445963466536446308097895357184266796954543602207041863182687303677545276008061063029948942152313539510586530980472208856437968732976431332354510168553581301486433628391389688795865852764315086385747057287462940764553376952662203941894809324181921765300836837916719749187531115885396539802076581999539936923107986506393987371486848372138202771095990242846510959092918449208539501155467928026131724468970963635259035391609927292009440729332890201497160405913643962113073703296078004355103181633404037630758176557601493472112456086568746629071975977467998009192818252891723661694734895068782234932143167871213398032370334079571843626953755566687872957256631296329677426408732262912229687707439916217803799852789604093830264802957778794235768146932618359950331993616059738419789059937866128969760584367820284193203549964363337237217520162657178490638063899258184377151101477043640476310977520597720784908027162166203409033335010030379564591446091508015664221111076523679966842725480001002870930955172639104982755965260201404057591929378756294472163351407369952597151118674218464853977561182499975434267605177738600541125067769365736409739160674416866124219514802061449063206449661406136016228152286260290124062112015164806487538510763259900422494708723428394259349437315898871763645541867015727981168968235098023663798121873181154261097837380511600298230169404285128823594252951079483933286792934215850360355470802613627612482114688152211078605951618238115585238336758544362981657098566648819961238400896815544648907276257576316792832123394884055374953733886981545561060191128078941518417954115274774673380395869888497820066581162450572853497892757944669615487529622616713120682033251378614978001515757132505035394142517277629124563775144549688832860279802595958764671711271009269196828502158141707931975129192681020857514914895236848208465541537718143198913180516002999179316909564392546963565532954654188950649289822340980690717792682438259953109875012532755191951682205631585722112240577129839606093279079738927139735532391324208406730758958982321589241558906327874071616328765999086016342714176516321906040805955186580611472534810958144827001035636005103285388430706818679746162921532080226920663299109435941240785350243594357388434529365806372347846664937123984286559050264186230915923266128117649488218389674032709763549133247146339204126290879424133324712046480195231770253677148400498054014890440534760157118906643202867593820895279666264946542223985507250985353760620709144355774669589563986350734296456032018812417095352082063590905403498619209092238240608540047792347091712946769880747837692562084846707380118939898964928862940263736653254451627381436253406674494318118454425040599169682661705040948201577299140692029529198471344595816331719182498049990914523251006419455592449667601133895375739846693523656153922808238302304355403956710721889811855921981276763445019448432618013889024965186601544344704292042544211987227295326214182578271935403303746866778508201450303483134669940984670107702518280642721905577701105375789774831884698305800839353778144802265651734531583529590968850796266604819856926112717704460100309106920931912760308145472648791360934570601236382738112825227561821456055609950394563497578620873367283108111615265978159411628064856670703648972876806252473894317968169962884530787551333889239067801096583536763793703174866001176830142723991230519246341004969339561304685049320500628703436628494760004665600379328966426263637108895015079659327939255088384293546713015270420268108104443311778813618833340343326212703908810895882801845758839595399627665795346920890359911094451118287656717190503215860512015293153308082586848500397039255628992170666608981140309678801545397640095652266282317565094516659919974738329948197368758691762776570680354239457826529886451310817362984600403546852326795711567409456828342010905549195795784914364873377285453732918218652693440361377676773962559977394260210451804009759855183956673705247146606034159570168027659529074347466112902458043413172785941408307584643540644241764487214865883620407918173699229558212122711201053747376705424233161222658791851929855829913921633200379762606591169423042583801087452466492794588613031789653958758090880436028840485313033192538012608660712502073733530319528035973908412034658290979938186377967137539577834842726066561260205591502238723449556408818393849464110128146027433327249778681647469018992355197241994444945407539233216329488705186485767561383966693984761028502761040411569486516526712019990153837005516526815885444766165892440666138786022618256262287167217315482345185564855666989304937028269096272404580564756425817394703567324247907345160401702738738524806844348425945960319230162827030366300424947435662938820499665261286930990739798429435135595585994300899759660675472740810093577626585200839284555168822195932698802203615854122719848858416129343116757568869148015038730959626038537432076279696577055571158505931707014087296830691466755087172020541314496196732884552206478797536288479155663496916476884617820727398937666289385870513012258103469806525219243924547606564088962408943037631858327445187821671768328709127216092644338938721397990479851711044450889826105966566324204917833255818456875536892707738044621345841531263684180592862139893478136251304413062574926459277692466307545097460507405803938394265465725870432813222713529963959837103961206566698300979944978487963496775015918588904199983213277540991196041079988113173951374582869704234287368288201360014818043899786181289508282470469595119198908989702055437504669911533357346718079227179912079272043478496820858447189132860981308508522540260183764183898517435225542710761085238033015535726407885764951425169526713955582763576542387501820966597498136589633950922389561619125051536421648856288957525372544796872146813530967777687460715674096262354378428397840227257623626968358631723473258111199143351098925509197781211110273594734323764095678680977443094624024138079779903763495039706488204266811551172213984300274724102202662812050512740104378344637693556726634580942792421664578706134708260671141716457707115435403799467887932831398633708593383331041805442158245679448484883491520014056505109860350147229253772331045667085217345081837336592546630552063405697391651844902652387511865401532392801368372551249841537813665949657172619269154172148747538684331927149846946594749534922366642365136124710322971339641589141081996421205522835178131237302507902496815893559756707510321591810461108758916255848401013487744020918265464809378577582746352236394035537112096384570468803906969860178225044958436747452250703747007814203744722195907618605249592910443695743056801354253900542740889539167122943750424082917028064056397262641581431741729489049472811701517498927714664322081851616594282698110772901044972182960938945803423501711971420107485063758398438924688978314706723444676297866113811676497878568611269264036117664348035347886937451902803468461564733543058095844335344882083103451040360458158016521821323106709816549814289225149931015187722376309674130797211399124241398228591359075733195162336620140162159404121536930111418606745671024299958712108090450340215910671498209624432728329614046815018079569119166774851599640323719760183933272974804567064140625096476490863647417627785076115655600950503296007824296722180202655362529159908288480746275711490464203951789453686413714706441852216400631545429609555408689954707486056712519069115653081879658657982055338625979159286414098890933856583860733142193746462422108780062095944944242810444820320200561928158757212905658413885085134122841369081283769419753854418281331520403413506970866186858326063825816815803645257786044159760871063362174484549522379743929147226068509000558546271158724954949548785343739812434283009235064879499832731945963983362699227589330193035015329055272159831941278361574173555415594044130536937259164419448570343278305069188945457227217410278053224438546574415670890421764369569525278479914978671964694550130468786308574469856773832562717432188216375875482139617294279125143942352844598709224149746551963913206847837787487587576503564440810725092361817732940465639151661573515716191500870561825103610881504951079064214150008294257095297204775169515695179926385735425506156806654279020290827509859861213351555306285286043840190011118919949574940731853172699946448948009942143943687141683227260488245065630972914111748976347304022383340037353440162521322734916738293127718844836810001410291654410887913274320115410662748216914285453479357569784996255568777308009229461933040985005721799565238960342407128962920557268732988755043300558320776544868102549244890012041971548121368769560900056078719856767313686829451186015196081263329250777134874686161564748782050350975503692629304359404077542080971915179680061875051931061117247476456049056809148828084861205297805983494563888016670440948785428621162648862867693579942711546756541798472708037344439135076739361553657739569044527544643023409425109385007830766556089996807190117451838452129159754047765161089158323451896026062795599255013024647531536856674612514180671578892192068670103537309763207356934515511472684941257634472946380219948425756737690894187091675085141231573929403685253545012209331362208965184754930441361011321147454078913686919737373522373311783639109693476892565984491155903062251328673455765997964373360135896037766969259812818653942681637913626930461124977523209909607723566978572452102931194229571358206174964673190660443707303594683890968883986751933232715676621951477988332073999923367596710754266906237635545120637190295709019932494268874042025281355853287144874834150378841935880259990853572328748489784825912228364493521125917061527299904749670763855267011568789808949410949690859477443402984744745536363283826568168903138709513424991041447495902001419394167226782256350544443614442821081857182225372406652267339321440571112258387941691373465152769661400632986477604849880069671419869585340954554627253553834655883041428038500788477152673725877730909846984565885501917575693095682154649917552290516706448995512969672491801153364511446095502619499069297517871397416886726630225480075308728942461529697443373911233324678696863331587839229616410690908192292929231828979741208999233646231691909015984798954469888018072199329738093359978899829586363696616940381226958211042943280672685814834036356827108164847484881355880199493002969643064596704893126553510341246198050734633647667180415350432075415986781228696379685925912690777442559183367615573217704984947330953297022150411181416328147431637557566877625633359610892347280391835788216762500601340574467228498518836732288041313240244152209682884628090413894182325488460152763593474594956663047850526300817728937627569043768711038381731296248718035830738352041068951353563849109815525419969663196676498777954348904367801782094822919542947597561363356118849042208492506804427042345631807173750638099820773966055755137866902098259427211107688246840237893203187299992651222014214978974508017489691769556842510126542755353156786921942296008378525479560970236787432603763926814208170381156618324354827953108633088443029948649246297414688444078391966984084146054649739007331368610168558162050350271413119160034881280825472374801931350167428857652756662295889733779265573881551081014680155246852114310765467954045829429414354027465544635152945186793072886613745721993050750445765726923343817476728486830667207530761053563743540750766174219937690323589340239419493421617725934969036988064720087415498392709473785653958411703589577010883764098577741989383302405546591059283661438989858969880090027072281816193157954441829556965244301806130339022409748458289396113908968836015680883623896070859533833500908449835748507866877198863709640318979601641938728799722028005499875591759274630519263604181060120456585830670106134756604102736898702672633813971796842464933737297846901107429581447277701886678238543640057024321450928773673228350837886587196477703432017316176614786869015786442958812360163577398154937713374445013542516727116464356912154846886005197340696826356043148554184105756754916492458871694021322936403135873576389991390317912269042748753225103607765661031850975123610492719059227396792793417805195137551339535436487852139408908733471789307729582445483240638569176477042408884176447814162804222356807628690407749428098469044681700616789533370850288933854160792821795572406932162684769882236147720279373037220860740905763995776899909065654926362588124223635921047896434378979081298536623254278312051086175662566912197910333453131066137916627496907379667135887441276725822617118390976431289388509331993867188134413713993408628479850438439943847735361307541129952066808428257312190048950389394883519481607091440884098444643801290973729645507165359504914355129612924837712656040457442735357990962554177441126236382242926972547457493085722835694840505102811418966729008007884824970693844009363141907253863416169579389314196793747544363170707991532859428000956338419752700867230485755818411775709898727566133937622762174935693413540029163799053870575892542097663646121277664269489307154639238677852054686957746374863560290797370491332888740460901148301029654332940097531072752446715995204834489641680987907120442165944741310749316209231569157878896218913382206786140418486769114463447810447952287784363810719434858895504641544693404562567832813414008995046247380602855799429946929181239825354472277394445403571680112730885252266264761608368024788771400705806652645973445296703892553459693205309581929651507747911734713240799852324280781782021287828230841949875333514699257029332401275450799068354199166677006088229183633683040595090122280369434441327670953369929815584535738548207850037548264825217452954849870846847021803152404565862337607070526495105434087646886257209351831846426655929671589038851483233989242953113431020926177059109256760249425043276984784991583336427760332889488681909580977041604025532287623796850062767014133097489561529424555682394402896272772701853053367996989550692850045438889225289638001797733731923803379240233102894138220766768792908600444324180398817027184511571579037572345210036508671964403509717081218318358453678612534757786548997003631958151864841446845788727273753158269433208489436039665524499582940437973486621844696501041186556800503854370766477058710449405757413191377009358615717195754360603503960967113388662466072895741266054297729282200448734097038924005713607810207589056727918306784377126411422972941789875747697989578186109024610756195555623889619360562716067028134173635082708032374569623401606377358505138932071475309766887187330944256432187858687928964231450916548134927081036575761421833905377953322207751090494999902144121414910043538989299780564723904506174738579560123547381846216740785915914511201811152403979380014244848637575927595709930745436867040692463622257061368413454207069325251672344707941839834342453593132599292261905069817938246139013654690017704361510194424431576059196501617161412444035557983487786849148929943478427135034162684616390322447197291706001022969538543551734500002293201301855359548538213015905539698032427985010085571768525931229996719308445480393196034462069198498467437435843214958568093722373191627223229155073390476172784909468506356496694909570402704160901638775472104602033447407127463577377817311156094543778564209101994320827745072581392625147719537261588477331469884948947112689897056845866952557489481047558845826051537590717343732161364885625266021070159246553982348533107375942247197669672818762972098835651568722351365962360184143377450678222666484765754457727390949555119533983736701415421398716962096913284082797936444231620882867777080194576428325866300914875147696366509556213426973367554622465782550661138684583866359952199442341212805704368710590006814658112649818835187849782044196063584043450697418285435850311897005110690694411991055791466589077096687397919782322981657497701126211823220046233462397121390367061339617662185152769122182060654546787980525728946760738716287925003438798656207315824930594515940844774107402568125995707731849050718065710769104467399492112664360383875988081523754953797395472546074428260557400551006539944997522290874377844120889502211122743311973656783818576457007932615340925718720549074371012829495562532604339200827303205249462229600078846512468931866143698461241139844257240447178659202043787978076048286903498331826440636649936318362052952071384397615081491582753139683714538773762174064440039403861566331212522999701781199343861544151718279652628072626578765885183057999986319277717473760151154271114776985427535727713595530734023376494706172602961216030665664508695158888621316130691595112186438956784229686856782851313353744377522204496986407704592253706911998147860228865808225338877095247555432445220682694448072607357473829816817408251194321222807859525003540460469407558086409276013293874850653810537342111782243869803530738799310070002011706914562104004095899901427708596734158189444312968932174961290619935638156342076912083697412914732110850259954789604755823771168713736386974504703064894409350287678246818920044465164127345977162049086758086641294833773648932851493802545560895435508376502175911747569621410494883112281186205086676854194909303603185986896961421456947126463162633984992971816206468286624554394467175198326054972771492402371522475671651421900825754431109461879893864822395797718843983688931473414193904621786714502523840626781936989540964273954027906179258062476838946970988748948510093978847462274492108635512634600853982384032842653543489272778170495355085490718807650672996509279053614355050264522345644680165089188656261872588867671998141834714234108377131700132287845663320710063128466463230465800436887523458644266868007786809957243034515409604147233506432297192089615270612469934584055755746780699889631823498906296396623903714000945317251003429078916392403677233630354296451805437375639873633563233650867004856040048580149884064197470858343256546146450185186440025272914842602458469731251121935572307362542956596723613470255909583901598648933421656873727220374899711731596348965580495462891564705022268188195014464372113506453138384221008579960676650194123001956016521046958228742273232068804593071300256067831962194198303315076370802889492551254632064476700577662145772815952014370272923199424214377071258557647860970009189672694388889543109277067475367687047560091884683686196138681825586605780700396606856915561743051661437666435494730544847444184445073788333924243190372503839074019123305160508954684235325433122474164219989767381456119727001911318125920992440284735945493459497726283790985033549313855226268299288461156092638752269061718694487066619809426468563449013062777944504576537773840267507425787081210632468694290964559071674858968809044971979670176570879377701806005437915701402378525944997650852507460021905400841660752894189057665269618556467696013959913891949390928157515472591338811482722372207045879305954303803244528928686448858510149551100616713245398851264527440553691271292414885513677726355858093801785070862166113332008749098876087251892535256989731450446108662879712572933694917062281684571000064595236906335899800456653205704307053533083451091498860975925488197382331856265828595597912422527912659433138684811289972283977729659834536794238647812649835099617214526434487098279390131527037545411290580126036903546123391837705088522214643015002899528088433103204156500222814510160116587383813950714008653150307758434429041052068819007569771227367593932407419752786978708826910817316040181077710443703786930102365854840335452948993886506947793472684259705379679598367843151692037898146759488943834205493431044516621070583689043136698499662580754952306025741502418846635191490636826507560982586413085539950573025056332311149347561230930836590819240624629075485280996892394127516594615510994736717663432363066236180730295951506263740566463831155710277480827378663460085743918730272635855977644489685209205485723336108334012945483180262116927735822418504594521970089695864030751445092500987605791986716803697421476681091588558239657454749876601091121044338024310489266411530756215676832605501316835431874930180659572956308230690634208425635730496832744997902433807808987183085707151810249025906132538058283680736845844434407435256926353495500301258443590431649719622441847108201448982467637482351995268967553175595620829732312612769400205304404213466926699340275267082782499898105117502203386456801849142948758636135791468820956566339698410999805744369239074744623089261627512769571476611288164895602324025761675645702491218021208388045714443997322336534920768896677102449403300675287970720542861362469304204350867801958240915629010466676382492258889715433167122293385542768273467648116559647934172435433574836311892499763830124424400954136421300182438049820851811381950486932611088949182030685475653706847295160453089618875223986128874038595055363495808330966148358646714757647758250199572059328052272843858843767279614292038755144614876196161133714322377312376186999363810379796985076005823665248077708000871768153580815297197109368627543100685088906467797349107999031025540406677044837301003986271993990161977295980774250554078524121080785318017667806566581521517115876428899690954674977574139192228675818478118833687385794346819775765818790198814055108728008428904128530957964082344197427068028218964547047272599660410832299821197937712355355067878205168592802591624720945634371652072496286830911210396429422942080972752466566527844897885048547469754987624336088001936631626289858471923764205837147941546952858255292280388715852624907290767120447483055158221402571503298595212175581615145608786271848840742601614353079982008821533823544459899754296330689832613234232052223390400079223856160668612408624057747531086034271509330196227419374892733342944121956940861190531027157167142401269093390913833974222032686095851629656705841266678711639636424834825901055432355219550698396147042153149719869599206264114109066992474244217114919858757906675921841191199232579172178690060064372129152062414102651867604460822668290871491798865396075135865017512126809581083933119969085212976272409666071788807788718252154670320100466802517108872534512739953555462832174597442324889898718755183828071283964668644214587730830460635914567829496902443314873212301257381035525086394488373507939649952117350933752081841514734666253399981816620247959521602803023373971348181251318051189200930734616840163990933736649514296258312245313544644092721648265096933843855183496714754167564130520868619582318360614424422558620448356234892690949118802950300942711516396372035275455887988538266202912283284463291579716534207250606779276197691606998493977874829297046180834187362965826853045432855498932313008216113178372288796742083638567590436245308117827512474375065384869490096364490775729664019462153189046966337391478981683368248579681746475513201128137663643827870121841258952170194331760329121178001816980516773573169004623129523134219477338694684428971980064623482089803430417005545466815507471582410149845066214368205659875910653203681552462721412224858287022875292717865723396143163538427608872458080515062413168618862471909117032140641516495970734335968506706097862541923909499234631737646170073244216516663178933237665755790481217705666260805474169179040705742829671556234991941685633063965533045140706455683205555316933553913376900233757530682808755838359878062028975695808565443343145017424237627064830207864343627704207223877403823151152464238394451601271873463704922354708411089238573879033335509591649283969634868873840719806079536443949289889194064642307589878817456611862664482550367570646998566490587048232397612992234634051503711062580534039145256674246354418741586613223064355602233806710434664737146001349999859783881401498234741926045330998995918496353679960553809216180676017931363659053343295317412137185667157774269711376406429878401401331298437848558577723053383258233597562222267250331868248100388466816591924088257208911567518621797887577624548667395444151193635398578416978067397577468895577574140866823643715899423856864372446248149327406984204208169002177939848670766147591896382264245680742369507084794457085445240964132727560941117054659221862496226215954738996696085787506586809445247588536677294380308911808297544254306908184570781144905515721649039302377472096113856062262437884251277495867959908038939184876209923822762436651698715572678036618395081065920192458926311572147370907814879184298422106505029236966725889243688136121880099461779560472709917597705232336736146648990263855447584750484763718858167341230176361856332587547646504451159673866490286044290165645895042104001487062200725775038069964112548984511343449335463974128660221044679185877297171729476603909038232054960670048165957917310477025211929636822411510174719547995600986505921745564063628977843457910361116079124233288996781579218935392481835668363501757263062484297701701478123153699877912425353159078004013354572952824388695309839895797333585135080715656588434644638143561103569037488815998938051043019521794369789233523794328744164062493418418038341844885657689822094185693282622957255879497134958739004398486812437014025239829519921108187040169929381535634118811641978609667263974590453126765305544705812784198034297169566168088271270484324126953802092561297466856846537374050342250156745134507813781634600110146117331211125933320485253553890560374134006709132518662991979735023428066216365141874936323742122001792067982967781516886710195088507761012885134206138313137600861021706696528486226489585202894425276085093622809943729607192597380405252968074555461630287351941975788940467093208300568002954285040434153381786721489051691090576927668617226278110318850413734418169754378496419218619181857165300039036071557821073901467826997303881804574897920339697899249985888750350587359892534822048255165206740897893176545159719081721887104826851817943380806861455877716158054504398039513289343715078844048552191292590782381130076462437289508280664560068241272523079190242602312865531494724434933896370936980776536921381418394339301131058321261501113484132524506549964045107417516922265874345821096291573570366408029872337274911068238927041954815695061494138517968397998929870701801108349879764166069469419436427622881496050043780688709048871043103434214910670924118527849690933724205872347774480729327759299800676108776785441942905444519295305197210517679487565744572654153511255620981996278364349414203123758877353707057392371116395002795864243495134703590552445452393125433794318173969327430916021729360837907600470211149301609342221367772267689462497671083629315418072715387981217236901931866220320749633316563384630331872051539508292923496185106236712015748708354150437133783302303634743006565906503016393945316719366842833470582585664394770750953747817401118054785694139447744609983190793778697419667756077385531704667636520941115675245385067502672739357561360534788080597032967191517846255341804319981000010246656569141097041622522201567053759111864270930182355499998743392224388536279213497236072758805973689593143972921205594242129242154866585431566366263729789405719334885590405621271366469446518692834628199108652021508745789232589313974470954511694604945265729505017671589153150739051804321572498337270942821310802097217704455797863117173124504581319430364349858875612865810159291880557144823325197210419888274316086172788478843839989041158935335757849811289535253728506825456009188641947758975735181590127681302900908752967097997209126305747992282026902559148478856030463033068376839930263443837575463330595708053934526573586110946526320963789161061923528922900713736031455948212212975874415685298821636073647550698218543812163646994188944776116024753491724865729771107755285779905354366326646108421446650481968938935055839049065659491982234878102502073400407946708656939627922427563108943115991837358182888727680735031355237958800763675366684284244802464252903484983272657774341396281095008075814321675665756841769582547233516596607359863490221709092182821053264877177147825265344903248516074862765542296603222848153493361431361098143661260151717862097300789798804542468551546656105505271173814846341145692742522004053138319831413172916143303133550601011086618919327516009405436223114968914018011615812725990508143380079719888573977786988166073430066694037371957164435945419431723899902574559014941854341620992591296424631325506410758040472350064634896487985330923602347939137209119310481813156968561720257470485045345578690336049838934208402143909390454059063839422062916757876684404800027355844845863119048663559974639947225126491378064081459214699347912220818786189579347858851096530740507097331388608792269968744079954654393819413844531400608432782230622134243320333396767680587733053508949432631589802983826277882776790818858221326831357612597823300268760315060369937159555831436613453617337495765687047585597764444447615979205978066335911635734741833033308913765804740063902897651257628165659700970560930586468951812393214364134037203152116098901885364010819042885767266131186814196616954865886970801654855626388082618263512222069793089872205593428291803698194153440616792684676252218868138985911537502439164484215907135992130501041448986868437768466577290464185330567741551330323401507834678066774687323593191600774760387268950143514235368673595779085029097851076561593293967806021258827508153837298412719373110881348318762427811427627252763084406802147573919525294562307949879580009333737036882001610572134611657867925121710721913181502281466588963461007982038926258848330494422243743818930812513741348302523232090659670290384173730657903244134328800148915433252886797379298939471450580346753139967668193557798930509352257440320152111935084229610368740715123350836106295066902670077480122446420640812802839137278803980459039084433673978260051439403345078100289892234564226640541756349579263815595436991095917735849123892726141220725591491748788264314862024450420870233174675835356913709278263802653630912802850009664753671503775105862006224641171080343360325127428397266783557259493043129220828971902893542199754037825743975245788203973072082893765560535299258219192633766155811849129936059681049761917319398719599331767638834534477553684421879039828776130205248730048373362049956037663349875582257075846667752626888575071496404306845264385911807502721741181483642786431071276763675105387986460352911912588149247249600895542435511549332174833972414147956745888243480844749763185118200380285884098767928635766879781083941173584245453103733331027688617929451543184402337904743557433221965017445537714267266028684485187604290685449272398876269503656714338026847054783031273657762802371701797779469198513631276464465798425251947038239953019684137545497450710120024765950766909213384345129803162865622061502856489080024883436003271170660414503688674355522876717314456250941536597088025483127512499962267058529742650739866116315758841538514800934812789294817504091504331745202916418221504797150437246201619325900450713993159282600000846060006239798082038358820025256888552845412503499741861673951013433661197384928781065426191322344015511800301368998724704731966939101438586682106105875338249025895245916064826033394135810621868150270186078612986251295392171000565591521821484085886838344354931048767390860926019128021527149080250140908607128187221981062017825046237362367634260250408037359220365477639430451876631261525352494989968954935112330853542229146465691644444560438881155015311005912806834951191601516910242352237881120392512101823810103258536454372500693562633207278673336664297859665353575932498849253632246554867924250541860172783280993475053747007889278420751804930711154585423078875311154639182335673343666286353428716755858111768425061988131247312836611720652455163675552493940863567937406804689393251864556064726343893098305097296166777352063356757660451761800051219762818895972331252402255175850147941546305342757238818152539453202629910086059826412531989385774310705146179957635909851492863399095099711311857229846414607978321027134824068958206831443948066303135858874438367073540326088961043503325751860503679463584039932164052638203525486120501340936708408199733169120549796144937971347683387708979274863876117241781534290156094740108494266119126437517521181602743854448579307980099336223224664441786252570979330689121854125594899053854992214682796151476356903763183771762930301877955248379071234707749517032205858674460770928675478873778365670246002524246157727270087084156188806756754313090658754110829338645611355922834793253933268369964267175443965937846569746805140558592221284614714861584110749900907069268136539335776023939941594499143180910664316586722156282481756581996613052337150906907495092384564776457663861454912850208174096721576766206336245813265697843258516960716494351800173058836130900067966480755220006510410906863740570821114696560102695233503209742593613113050507993251040828054277667615993280782884091318185304216683183332057916280220917810675410017636226811592938868961803382112786398523337011743259875974366564091731082637924450231109180824241182959869823311641363339794554143794007411853512739490095307041019638085509179995936677706234932078514828401632956677177447942459553643900932331300849227037554129939984401732727277575845542400813469518864889581753569617946237856202408880993118974367349888045706571734457439051493374699333976820749723721459530371134135021167358694533289308036970827543642392776994326086938721700214948929397398907570521096973404097438217719089956391204637192994666184344432050978581221591293529086514665446854763412110972607053991922544485374330985855533719179161587842855032616987936828062366429423488287363407772897250552766424448155396070393230210697432580818706231648181295580996824900253640197628446567404404754402027994749506932785214394196957716589058258650455884998901578262910224715557922658502044805091057285848814582244593179094097476288515896398721281506078245031352688472798811693122182627034241501301406687653588089112899083478151431746383663527458015031676503321004167717363661311478736771584475590739650746906038088447524082428981769760977366417265075780471543478379311289087940825535002784093724915771906200030419263854787165980697750880324315749982573224625162638573502277244824087208205687339406568286332430171404051489553095473778943841985147076350746833603272248909728115619939671932321001571263572619709912055750919013409071797352214629441253975489265309015901200058484658649457085784688939928289610694840288903326425294923847645079505827441386460405608685395521204672351449059113917786904786354971814435797715792906126345766742406440743506954813664113270752661605933486302027078640714631127130298624526798524941161456703234157130756257946844593398865463518642544201278985026062946143746986044534609461240776456210956033642430999969126852366602155323299348343698107738031696121239944179244430726727748639231340005414841485413479976288222301155231177261482211220221930951166595800644205262013816294058720366633500159862488406228389573130683372602383864125658161773987338560544024052802014130851966180690414450419258870052219806704561524834114484334737137737557203954559114377606704093874189938914468638089915885692007725364429135913408190950049274476623548031699247738437186391566918571523162657458243028258483176582198243402125513395612579813843975111089729415470971956333918435494029127545139804686280615792245119353806207353136511032220506524444590781561954978898400155471445767482661003826292433842804735371932631105892730209770959787481577512066238242019246761005878845527188201568818124192507743568889090710299684799478334000542217666926354962368841314041093669136668201411248086448983695932531154837552827642737111232057575935812440590657330826184598192787691717668908113404550449517015851893648161705904431192970939864946483278848901847108501067364621080083784236154525210061660230217805430164555858580697898581542370279036718050232472091910592255240810642164505937351823012275130254008861574954336825506104751916487233835169324329637777433355454478944018444097240844310921797992352583559402045012239637722158717716640222449943465049593098037225665820660285172504264080084706742097268455600464799075125106853823454852047135923007668128399229467925416677207240734026441135801934175680349184284689538443577649185200395639814356609681015592173645845794460374988608900300720510641711225137110635330034804486180329941091751724465199507410090711268398514472017105341761737847470105436852303257219773264914008313442704468027983441757080465934420004349400862219672584202339198941646825011811347693933336172976368346976498754848353227279530564811067413235586066807869615569412745213225149432201620767726662414091702458816995772517551917823743808711334614299498197606483143949780127545028446339671177528281197242723303721115221935460567172099417502502832014553355071799151251599823228739382877281401056154615900370393216640915945018840630226090983651785629228811832616100268148589443576306120867129997895086955591896164567557685057558606857965432329587548991953570137045505413365372215478870144185215466155377759923631993379635053088469738324073083826922546599747759983137048920367914606580357585875309785003543980980567531422204691805573642722088237312432322648595848885475534528200051199073013623491895917202556250928967822497984594161247414157780899801725550757035263625767571227261573754690766821789455178793563077388014308115455196668224045278010405550718432777539239781944751061903601246859732939632703106248041760331632036972329409760490157675812775497403355343471732716714406033622606528281330247541306991675157706769321320748171739701401297845720402825729028045031954379851015271784527485574876031658854484981506846345994573255416593212058897091919771368001048974638316313584728109499494910474445085696249792695277957486568592295372588149602937369569965634433450852872362496722182459058075418227627175957376765988845655544861113841812212601499138773570782213050949481348328755457128517166200008251084475074519650782692182945986498534527081301163581650717344526951090418732287720780015707102333878225519822958297757140605450268845806424468206694840468884313581361746671558421333198509977270926411205657274713347285749993274445059428638274009314427548089840344979841969589143875837984378861144279635944792250435630937009951553338406140120919539237082567360007873606268430251331365572072241368862494885271738238615569358412310448780840933439526472927908047375380408317016245474949768252778462714266871034244157553687163383725263538845525938260725203883656704369516076322029892705125328943576680094459752524796042037996995507478892069278507240994942745779198901191262501214512307404088170186590086119685318838097508803649837475381478010970161822320178164195508648563997395181974785231681592309681225772827449059167302926699701567517701781607489716428775490982743709013987626850157137300578614853349263005914263221401326021048369967656497110384007356500793404902343764742666210890078307022025247643574729790975499115599571235971003565721339945364050622641979943765302268906094796955857509822113398055942550853025000303947467338280383582393888417348225894104921374693255422563844131388070580585135875277589297262949365377894135493081318516334735561495051290490477258981237721911334997146935990353451033974473592501320501067754382042116073636103450165260218909889813781965685767764094796362756745094908467015261113407048830133083687407045510020018961164177088296849489752859803089912651532240274530437094535037525728716966879192372727290443072303933260859608617230744344299639004102579866112352630359657080123243443056413768308527198924563620294173273516515195121685255866745456151119146526465763021268979979091434678029625718781252673797931028593591179107103760594377693996881305499616769987888991832338566946029621595470148938977345056345080624710878044540384017837427577822606281139030516863350162948711658665792351623924143293076376057193494881006347204635517139117293609678898401322089175906239068420845449678022385969845768231298699597773058508470819001141783405254893179409932561573920161101327000006853666156717914408394717259023651232439406655537412116343825850055328234301085212729659977188471085614359769239633610175670497730885513489900842355437199789105541166633958981013907218487970836535339350241100337780943861534226412483634850443225572477167600087696983096347449194862048794247964215735166529507102266831009037810297050607598219385705307068331125682149666985807216477171548755482232503176412837340773518496157608637422821033070706118688918748096631234698263844539124633555856361426996184407237898776989211037283358129035893116162352194808712516655732616868913014160128785997200545470956584010742505925212513916405063618253399502018785031564703605511143268699917172364736611608158035700335721029011591842141895518258070981150724408277796054484743536409460004455755614727408222871941209369930815672329417258901259635755982033374036505948247845535559892627269473088132777417688473903804601251785919867059900467061178419898596871957777892903086278508029141037030453720309797364813048141385940399376639447655754712636313555706200162819445596378722848365477563139615320457813403073174397084129211581192427637559862924906344546524350099674026550318621883763070979142148759310167659414251533764652918496436202302594671746501443062752962171272686366481325498156257187421428495844500712701406010546557639068643561069591875734910840222057560257289319049715119906126336916822532495862043757291221972248989221396381152927648516532819962077925547484442357548427259468688853575157021616074711550566707378142890521930741143920090833621733952664252846890850231430554973247644362843542535066803726969353119242948022343849572896677798653738945909679163640511233259134946611347657156420651027533139349819993147529466349475584601988995706545766954006923871310290828149847645172278336953473276099561754689017469394527687299919861214243298629000133026066866812912284411399778128471795090757741916564685657942057311391514450860106067798426258555539847569405644104934756455692458832555799191679461349422691476724292321689931112913771410162794146790413019949426985837945846424743667469754490413741170907452499162900491016292927738952007276003681352052732315480382578439246074207100387801695137444927852485964474817293411569875681837611869516472934848944519663026622075791896356712473968719712399325457060887526746704485802181922268330376712037192645236274014270749983015349624119214258005251094381558737223690325979337314408049457332984313976263242007345071097969919829390998429872473096905331152373309708217298665639210154965217804273602769727678963201553274317752311258846711655017239955296384174916899804802709801878810858137087649250449446038461389000217324643617591191449215344262181978463519999249261365061704402838693780640716154445935310469033974941850786486554429732128493623959166485708823440321180696315936067233964129914871174945979223951064019266033557476100420491583808887364915859069914483728623784225426618800913478626801619915711916268277999853411379774007456831635013023373047410548304907259269451049907999668851268663450794866317739774041459946062853117055498963866963705625282618735051971312999487609924857940331328103829065839006089882163202938631476760944577476459162705580943004454760139738085469795154255591380763098066410260341610337707846358391663284872402400538294367449812019855829820157255675262564157756187448039447219910418833278095851113542699600748564475103375874513682338711226645680691313326729488641479367490795856962937650903988198115740781002316455803438703273187450513860285458149651376989780449225229496289811471101093549588079654161487023119753968338175901166609821549371947010598178330630600137174164222464013304727875864041069108886193757036781679107771026686458584033484789902257379529733030149368263058057248888912370397736296355577718039850221687288025193674195700466745615390214180586832920807253574381498846671831749587954248079608413176061611471691448217313492762723265738755314327054562794412827024681863453361508232038992051801690172198575833813910426295869021125874407436216395061709812474294082935316324274727092504118612030791304296655655202692501213078494684767099245535238008649141260782158459048764287326573042898074842385668913221910995296622423120388349095915563530592282510430531543735731023283184556928892174955605902262820051481874238337656111070891607337174757695571627436144998660761221358569639545372724920999904958924821948704060754475397991621775068034811766273663850115618932282944660433128482519609358833062473665462806998244200189740614437335609276628496274914346753629945276742899529885568527298624326217787498488572950826845476140629439228249315275883343622556869435528770959210254793881442802082363466638112944018230099340181693652890344022082672950090988842751770359265839981825647321887431398949381897162935928183319097517919565105850998387595311201267163665730546697318619095084440159773551965461430598001483501368808424232705980976689512639007040419928999220309529399052829936042291350454791654372718595118834846860648998204374303990716901706538026967678466439078593572384600634737259455552736154992764837586279358478391781122571891446746205279897769239879032283105259274358872979079694857254839097356744389487381321165236313369531390570324535241651760051360129577055587284338141340332280598092212271863647246888174702481960884703149517851039637078346368904691341038331520848669217695014535101406517196637296614054345421144982624984735835232211699628828166851584070355596049417349143874876500655276684849804523436612429469055203619888555499769834901287150139322415802503843375475907729906661862011846475680121833802806004982669000201046905479140771046084821332315216389965615948400340257001982936686216029520516527536602785780711194460680264147948494233586266135682952020527480193620351540437364207679826914780450203544115388675304694880068414364964681911982161269965416041049290487697295446291915102686777574002832008777334222213327078935645816993776245142598275907219016340894305132506071671277753492710550631519513950091709595176555810105217059645796442682258600805824943538336051833848860066492813182827176592281693604227836375106465606570560136265214308487891403811539881034818373131502157776660615260027607566604620489465328000571012819378779555043116378277963441642023976775277647468021338784011242801582592890170245882260421290970559848664040315480933594171210284189169028167071467349465900402055694743204504910543035325402216460194049543225708877174783700183500726018615772684047942412371633988420620681333124570726085821397742497014955489453689071678019891712399159623151189860064441692541334261577807519734777244435251598278512622186713531489752279123720920861953186738073937639894731435372847351994815412439667106749385852315936001980897383345961705565468873725207330566522240761912907007628921813025065993276224165638116777349965243140212122056055987644744083110424591029044636040570577079493784294077901230751725512248883117548692328684395380166896405921950616429518647168432797319963875681801406723763209815139157908035371789509290878312018612944146984893428941219057814169705678158039049733011713530826701849152800421298312660428584041896323955512205664673107437150356429790665013300022876383583185118884898736329972134539791478213623765885505517604221300498375306715387242687919988067008388584081029315589103749365958781021096456290542022118064637586650460486111608256049365220036683750645562362816774263035822679311513974215929479181763804963856488668337701497303915706413085322148680778512037034303330951242823404765160318130522767499989774876933070459307098029519159166828827593213815146174297210774609314268582725359469006363168498137552622282311138462943276072955805998067323359921681829234347609907521873630343533085878028370119978026800818944942436203695898525470486544376855154241212994474838845001537197813898609780922633622451396664763433909141907582033344152877435810863116320055911223216292812518947581498410068301801997140301374003912046561032725154760774386936155198975051670710710718397693944493746429454117128732375670407397315241364968348354623119667810283307807545049916905893112680918888332868118339427977677403826339821506315353218113861114650991617012696774048507484771641952018305082892228596152373892081152295040762157579783688770184402063817660113550799385605809150892503105600524895747868256129715712184488205545311980679056428589534623367503703715073143915472984077774965808675685868752452191482569677772354931693995265989505420463715118059938039450246135014168662657958022394910379518531405243584180132817636942436562182687725505196764526728022148148028998534912632121884136487410319451182150440497842606468127809994289962608498008410726909435994677237110092719494466138751666814818421931463199753899176743496925767807522427573707120001378104350276283171669354909436723678912968190211720848417114867460349188737688960311595302953382528193669249231766745059940463982833221127789538666420924184146206946032471770927146929886245694843115638291124962441916772450281325187737119965933477600202475490366987949043685246389183911506797464861247808076506179176790536500709245688908672513735187831127827964394806641798654855826675760127948569333005924025919946846595893162800261190166406517663303671633476845306252660799350716252329581628799222889408847895218151919082920021083286705611997903193680551426799591365955752652344074021517519831527902154975908033867954235864504768975678648381010591678668958447459655741997124804625615874665343906767350923485473607108349355847512006349743861496858707183564434295154529359441825951058835231352643388301383227074702443586121961169058708347001584120127091302479477602486749781270537485957399242194789077240155901737807589988195012717522392302626055779754926282359117834522598488550894330629181451607536281422803504441696096325304430754244026777121484104137115287264156837210072590816172713416010085442772906140508252085954923490132519437967438334174101582057119735228810503099216444829517791243043840097339275760563754330244974468864580196915309465463884504653760551283799795152225470821764612062429242565070527879524232486608553317222218126912549115376457591078505365593406220121674731466145049949308346753046201088403618719668603187818958246717537553539226526737469480692074269740639588829597095935712116298468833098378108283816023181429495218518652703055572352751653402871663852115297894258457678880326019083151853170544717539507378155469119251868936683267324261682127441467445971640396414261738269961392677971425682632180621052387982161609257172693613649059322268432595913460387598759666272403825452398974824070907776189143705646954355750490214371690424547668242096244361118256424016604122290147665376315397499628146061998707573737344034668876187229250767621306413279829700557514366235727501637845820839209428833397589634725153280576019627293599053205431364066944342806514795990847486122716615107877253505430065296361412768919428981954294871245772585210300081928617775520472086407013536774347351380547743613198097400451592374790261816740948816310198798364448321120957036317502552338973717523522089223628533022996658883752570432801974270499476167564288536617092923153618482121676138551518845441193743753494205207222632586982413569038148209598135702181279456759420903724667453600019559952919180954358588662405654774193180793598521114991960891235521739461300266084272689074447764939818288767537509336584867492827113298910608075757934718271577615263354722437981883541828951603258431034142447854167722968291112691970954716534570687793670896056040468834688244351794006949520769473541444143661026929709540082426364755576245045199576750384117887809895563755979975601318036755778421770655432274537094970513625844307674280120430316650455959453630238476039783385223915009701582091406492539211450849606591900299742414917558965711065647129882759930793406325961102230857248953453223785371034932826072593257505155568714549879822718262241262762899483084228203360346513251835368753974345599518234205363847278346009348281947359593510435995626308661063505428621750388955797677174620915779014642993764330804918559697218350298503307327549796655508203123943659304222345624494335358541616635137112020292263588833939457926958075685420568424811643298829320690847426644818065269333675655235601751568389033718341723857235671951390448509001346408750944724964994558636813044679354769148115332583352934033958686231262343339862687605378610226299576924364765753258852295335298948415279490642183155526566274598160310557236590622783750244431151053575847083843288971942885577250963401767659312319347617423254550072172099799198839209111469431605554180435830311739910565422964203610314640205531785047063153541868972550621725447937435503485250391457675913707452521496935678164900607402612994136112286091376632556124875425481298527393447141779284931680572262996837202339866904792261752603456288739787706777888487797959012305422878263327357282331104768784097581858022818560946624744704750834681948290118649577439797086248647011953011563388209584639232581290431994725035723188601548783795269682974548761391877682294569377014233471722033276568921432525374219947945737650153220728913875380806709933401313869796491487907065046644216545199649988402890782758456481482382552344978485842759148102452507117440683113481175450669301253610429792975983168075721182983037732356714264585486944902840011600819929353511244625865047373288689200183821377894940519165955822275847452588954851558181505288758668168916513251736989803858009845832805743725855622848970928741160319815600467738951578673501227988255219959422353896357806164759047538108759209323970281042718950567326978320291980187724090297833492815601028047962070657542087893695144379357516841066365560984093492478345466988894601994575648676244120752198756809692178061822024328408558596053840237641623152097509668207736766973546492798290579014007403629713400825699162206420981885192607022748607360597828362255238874404272115577890388794850512960172541931457460383108925638021479472624614634731595297704821849928838881512150030999116736133764565396016527644343504683923057918361884263187973432534846402316007410934844726434699266307295661017745924604804259033213813877604416507529961525101734103907083285730568728315420048842589275760731198609887558458419103649786325361379079502321930807973236258683303377721865440553229990060066243236815310588149989249239564800816577548834621233722441546314626414075911255070136479318706576151179913550780499659949390810916531317357288898633945409334564362120829673854082618255707967138314106224426135530998926820185159129186260325620340743702209266209080551998227405603551147154732751463352318334485379271639091219873006863283850897980783932877226705125600156520274914795581150084057306147369393056491833542241744207438198969761115425552193557622247645031520583984759030306859231590000660682170993192155752148303924810336897964274113654636726878422098890519900617841585640343968472816171422612636842331033834940187210198494116779378844354388089682696189512075018206962276138048346359769279745190429419392280359333546596926729002513498811436354892097572121319008162213855731752268412832396045488780380057911057734762749529348455291876286687549772533956794575412996288070478681346113641120384091709638421704317780752007937617765768444957783520484425368748846616317796140362558241724673596431831467017242687569982890072461594313805352704114588703486985615188896466894741143108900877274046373897201278278303072054817865566834084234722223010119384267898769860390702516279627195920451006980471319005422215487003417166821405547980005451496202160876478363009294692400375149839155548433258772015431493340942108180729129180644340340395491460637039982452565352272897395170535298962660802638752680210891196842945683355699633895851620419659587999157137759944371561001358829818852969710723772116922095870649013953968687858838940826959021975454379228045022791018337092215459818009789181277585818393001226273467724219057466897447489994118962650087691739966904994332509115219502955944864013306122450547120551818391129176555979526098975416555222105153515398932539688673688875405161862021672360347052969999942429554722811795939255277803270275957960242490872232672011768907225787727554095545852295278545987763804970464090845838413079802898896500684866755145221103556163282243841272319631769274354068149585340166272574477562191203367002093793413762993823612911990621660633183768138587306624065375451602162708853511621658821123701023906079836467855638901293039854595196712508666411706109626658519071021747046355695205172568304125828097784235560298032680589653939558144746128384319351207170818728772359031048424346635713747958601530177692057109404609711351901905839804306611840304014952816671568539387027811662134877215092051868150239711474289670118200924443659062734274398383804051946512104534600789055130475848459221170812710532430098377374489991102665415935745559354806835452457068871393965717871870855286310760993903025160359833484804816547669495658843586750032928369425931837615993467834653390108310494304526887041444691346727673863520809280985251949307486313742783291359192840395557083192552066654305503302929235995476199444030474204030917128847457720163128638561779372335463498741499763277747562060510690132634314917715277648124168466472283159233687078435295192849188256457743983812073923390135237806759038823778818342446747141520554133722896870761063667945241827702805414520973288607706782334072570292808355636081322379305708514280637270449452071056706500215344877300794725529709768160581503425800593842342245236182409051815356049764266143257104472887629315023942082156285281811415028628629447627576475107219666044895761406834564843810049563502219123597045783226072828861044062864300833098028818238671999521507106428109205368567974281887370704447428562110045544597181419083679516705163799779899078333386253692351080991951920328662908316614337879098509977151170156221510005533930962136221277798423581312993403953494291680744493373558060289243456687180342257071896156719914015283356821245415364674991921889091195040601604705043538601195965732287579055453909787887945257258285873446288267645226380287558677082350967737068983502420495360115646465961696804784549859781241120169413714628064261064862991010302959538629671714077172978053679995495410819728378372292247646317013438296870684875990170116763143300901586627649197963761315154943948202635400325502990699882526206921495118836153448635451091997475335984565772833051936204775118317573049152637624318286547204450749716477693986422232263132170474042041230838155454448827514144487827965423669714667455788275220078360222229240006011983729704116887753493026454559123150277200253958027245167442246098136540036408482058702657295949193588073991549594262294457481840705923817399589278877515623303412268231762839499809741149171898469298128812197502316259831470243736822380485879607269837859237189069473611793785544521799505400891443673539956291249704771689613481663285551089427033203515656939521190380831172109519984764731229914340014372316153409958697319229050654283686514632731080933705013721244044603585930207190510419544168808332444387231898959852257814361941899464676425378822457656630360494577608975910559648723478238896979751324123903642233668469781546660199990861152901769205721870288847605876213816186145607622961699685060842267516896314733778533698231100246155848941089369310628168838700159704448008748741485467294987827694109578780904773163811067676054286737378275005858759458138267125637515888976757132066764230481887672768353137552470321201829267490369321882234819178723207140126323457373121381462975706374000719132980814842765199809602349187998522775212938907262183281583294488983536266765471779932649821026736638038226414571495936586361536749448583485649865291491990247971530753363463827352654159218423811269011784681315213780137686584518418357902006263235129616801235591133312655659300503507735932589915627019975987268635661215320804546364587154229812741441185029102325036394749518805732173860647013456900332187946253952827211785257494333573115365866884045519794426822989749948670278372463451157407576631109842112204929320798614468187866528841447057458190105827490508966729939200413117563993581526095623865811565290955882245745835723914721568360892524980565126299474105320079515284453132963080763754915100419946892150247282728357517079757759199803766898934812100408741571817677418690048801726849563424360735881346558252171800085976939681255142679073308194593341155212942058345169131058666061196953356055146327803663328231265858270980827432732378155348611800222994628782271597006319434485820782356524748585468156082333067958542961309106606426666314678826333638431167675247311969902655922686707464658134063243199290101962095183397563474542602925529936251577965856335733810208065923927806165125575548426001686339765206044506855003962379671303430996139402113229140033039480261562192057375733254947429889893854345691419612542570850171546659452315263200251180907666710092920386407383994851436128112790665980888746775563613462057531227989843527779347733468350129673938047140319436211215542199158246916211728378822405417885541962844158422156711726893011434383829631063366924128741322548531686946910659372841380071180113779398477084688899964877998542505238158586346511897143761128264137244023322341632724662868573362313233513136134184203368887259574837261806647076331148944782503568348843706039746352173797060025230438116084273959048053510470997881487659558762844322804107195238550394466354953831176365239490901981611524171903125305684079968029387061154931890164958610984757193491946783572165104358050139849040609749999094206051611428300221940589465753470524906116380758352148487133445204537347972635970626248002845501400567718528978021204509765866625214913314506480986094412244238338851582621079778885134446194038500615095085908544726793108187016520455614422828313749019250854104339086553358945505009106037027038905237177958763381592486129943649984279523266464163811195047670886686198859906556364167034329854638134887211055667991178468196778975108899452302216581680255991860699989387086206705588893819209385447916932187536472423593345104757407150578090875040899846881825189584218380706699052536697597738295383080809210653394537037245254687115684089078729231032635332064626734921351661849374818610081857856359622540650586744064407278648053149175187634239130885491573826260941757634515055809593969222969398762890763030423806101043582757455784054211647756803520815254851621651322295233198602631717586137699973430150143858658030091038312717407458881736480616931661203552667029710640711835911295205233650359055438567844566277670522228959553437595237057971115025455098352279941536545646560339358075232114509226511461405657464239612502558647048433322807638077634757480283599364503225489881739675575310602943201268113109082540901312189122324946373875197033677417318344117123345215582662869726761209851560336867807617139142907284972494477707349927786063423522788074696779622431637272060928185713863292025757572300861063755656018952509485646606292496204780341366463073846584587486034075591434584396917342272822518844344604646052523162172826478995598523694905557888974852659984138290472370577704653430666621364634070298613900736236615413748498534881944392068399999145735663618595542392037500138926512953367407940082574120854985344969900786582845325069496689694316002473461925848770011940813555527279083885063789526097152779644548894212269755777466248087788509582330553027937001580247306169213023228743023365430932073521869496281616083605039230443499241783772430907775857350097734078572411700719594177760866504183149371386603534687681061622499929626584649997829571593309081715183658312742465424389071150555991447594287237399537799587176570250295432580057988164875955772620355951205361191004243054011958637494706156687819268265238573850555324818306456468552527599976886037105990330628920735562709837761708978764761855934147540333827265471835064539339351707317864762874002536182237801554613807827762597188593903841009446772162056902180734181937424763051897901273515445926533753121190189197213424949750964345590888681045200153007251024150705487103995923484960247571041085582220593402517869378223024787895693606394742319938789804102942860105485236556272598461693358800345215326514063117951875407260557914104684557197756391245267252080936776453870915629412503162454514798053764149140044998842206961241635603918458428928254721000586913528520094107165712308185338737457658370921552634484669267833313941074500043524882009811397992313777762003465225948112208416919781722801206849060964692946821102774079078225051112435106455737283973341877789537921046590075752018680992896042902341687177115646112933117431726858563446333928870635841954584441829496043176711934723393513605048823138990077792647976384796064065901987068145005365502840079504431341391901033740232814406611292683298798748213405168975125667070110732949131271185722813077467192390057688340516139518117729103956213007268864065586540962483087530530542001405812198929208753162457113837920526742490533660647525129655838398478531510329130263714204088412257777486444096910577252494136675575628525858116614124334099279800450789945085398382348009727813964363564991379192839389952096554678083575140122508116368886175395730609618397551566482717302060927907590538764407940380749086093277840305355754950389029652666540502297674473454360965795024237804354125969107970008925711116664294480332735455447888418844607365253728621969746038357326233986622851989954929583169863148004242280940725046982696351103117920971575930208637401863904541353344803555890529631607725203994633091212711592891989073760013848817936585392202159401639059462781932845996495450902133655237225529008478086154945305562853325942536733191108470289651458071125951656017011675909177425802980859753648916100173310589266280391376471879383044551534645564271565841538551363122015298026737814542736581866364415264705960275038936940141313502733686730206745919047742528654944801473856881388046568091191117016126220202453006136087583355516020681196181463114529982925926396133823657779615581333965539248026165493984797177287683366696621429599349554034484334407679003982397743351541906099882747231451388166002895733667882858411836420848554944620411914463495508802787492190683797712127149954037915957944205408856008096528744170744341703233145038618506347751856623931489791585549547312826456542311946248937813741796546333872335722233098328467273095215556129322409397258409622044344813905618195065008113226470891643984243226982783785612690687899054963490557392932940864239065485840095065717151956299977426891185570310159530393843740661359121610592712049344660396735247124897806330192472753109873163186981029022194943682870811059854800524620665989735127654771607143017951442157241725066756638782774850571660284425120224193873477064606667992693756227439164402336932077783723725910768544013801948062444593074727031172804692537367760953409211618734781512216307541729962563741479199022513273936485048766890445860080165699302593819236682451627413593921100672998962297143833526163784587772374649648255864920740890202782605477330644054867909565946016942196905954492213893817011401802709741416304417584668593178469164614689700929797349042100351842986937804742185318688982433291715677045018409403673375894074511291637842940429701602216177977713685962790278015130731886810897154195496762880687271871608861053291191231483803699438891493601454783162079651288951848514938312022100750540942489721475759777740624495652174693819118086685318627407563551928311409325948991014639362927537402095172594829634069705093378609850956700933903217777034012502048713959649035616927304955617846470845991912457704938887529191634863565800041083369410769334078567556070008150038479402296884763612549243508366745474106022767384521624409512328670767994023578118142391070431042494083910184970939465719113057545678225123947445471404853651306001131778356414052671726924097731093772873336294654892198884614269845003736305231649963196230627564174275075929719558832495802820438466566893695312283625636696543214263550494793152129829067929579032778337671521486036792217594306035961048002263220384949717916030383278373598196948153171775288273338006075069059354442146557257318152055411177368979712675974092084413448057072452594297143637622235996989093896012229362217454863538333820138773731101987854405814076630940560977137269052185267458998412584573056325862727261034099720725412126330848741999727635678744486147557985364443773348196635733497286634392404878759151519358789457071035724872833717743924522150261865482319394343153131105486611050920480440721849031653315350646026935180127415897082908242274034355067692723877094697273327980087936040040047885962929533335078870794740278652350721379176803431002762894468582963819175862054387441488579161367602816149933841556442657743097563840231516391269449578074358559415743148102440350453458797589744536924327590614273932758647398370208618837787744131485111000007092048309158803865237882437368849442260625747735116934041748876121346660681203214614089566499075571465414187229068767906082536494136225995155938112794375573538070342453522820067384571858592639127451457838959917801964249403700511439084570361573669988738050735077062186399953223732621926624690622511469567673397731643521521279100659823732829900850131644019071163367662645635211809191056188788968030183672594655832763954000554266384088884970059281011352172446887374580582066046851419413463954399920816378478423338182263383461097290535481985738861330285749150985723746542679962478426262150299678577530368934090070597194377551681497249834831018657766858071580018592013497678487946122256722694438698133132466897275165583181686317164173678917770402540439921286856003199264550941794509068023450405308450063448270848944145091024083747852311681112420090100569595672274010026037610629677813904732059444535734768961037061061047666768920600709730202446042009062989795014219541174027441653240516061736298032791369654471577285117673991795687777714266096894730046633038200952239181037567946929582189212474423823660902093612814531508890902119030599719355081326380356438930430642304817070309247948520411107782167652441303809052901722991143316979626989996791872867550839351685659372395472014508177018408536920981220850687646487848513987297699466781634747387315638630050670625374179243763879820566381889574338728661852739442298933586697820261436468218852736016214890266132691058628319070758962273927730648466152499942901074886126902341153561184222065493157238676406526152667743342836472221929361860008632992388994967458406430943510984487634404476815680207613706715953882262458352858245829987444273103321394697967408864312997534654912910322192416891762397790793591077469138439115006679975817662471154897714641757596517131998478163273391938945114665321375470239103586704209267757451722736563802085717099027204130674529817968301577980741668267824197157319724779351645730135867107170271554782459478768787041744160419353027100149537388614573146318503306476366884045261954345826454953519627301034812223627207834449256648173602096119281022718389822384093499388172940191060084522979159355967099706432543591195341025203725249940920924214493671535492055148613060066634553568770840951425518403318512925600323207301823165991985164195045882530808651432019619873348500002526528003477808893224953663731549197989099606195229080219798560652383732194034535482495062441288292985111332449978429789411840128185455338416421624770846780970305460124675127300384462387652912070135430465301154369253482901964288629932896065476876656747912894554185997263553097340512282403519012756589784647147885956018328753719569588703119647493339103569040827086291546075126584051342384776064766726554202947451729012428642735820235742168225053454479651875099382583513966146128070724193707680211085321350201062509643533690871988967868410347464840211665508685834486764370321534157168588631219818283830651489445966579940585951285925522983891354777697631189673721919376753068913417024486284014074716280576938503187380198762403490527955536259836590137661159406274685516415510289725126905326449563549085469090676484314796014095391842761745285158725939934156594954034504979366585114488212164972946012947722841229206258086206437832952500147316474570613131588270212689610761801281601913667350291583179143239358053343168005462265374811940368276894428290181358913705492245147563475983059510820550942676070341260633333889597101616658995069150681993565836785639390358177855499538003643530325510509243149620877480321919964830175164773110394591463280460353609266770612960629344730856184760915034525919735335929602939438297474731503637212909899624401827370158440414974393856152466172357310384609638579836403919694987763580982284641190241705224929885720075343440972323214172806613141602602738507029299833858817585711048109019950251447476495235275372338472316101583278081076366067845063898742037129411727115848697853935422538744636097585071935126220155099753105263882422217898402472241702095627904774032602362373080157899447604976008448977776913398205816539234169834262903039118965079925970687500037135845655802683758453179864846517533621640975700395137738701656643007102529313845610581724462490267182250890670752236453465040724734061985453311971255038214845396013151977776512912938056737459477046065931905073090061543657205025605545678623119515264394647638024829658828301496398018292812947099124314267183839712691550731775794446759877814060118339512821661385922119485370561333959076131470976775251789588762768533589696185754737953071977799617266237890904769686917062575732088335588234607492387436859196643471487205263612179038645099854958196246970831651741437960499471594105688336041696366054196722648874311845702204996395094987947388620702203097469586895310530781657413704405074277487187937401636573341505412450552960894476752078480201284413796321551305823943704705514643978787157357144702858087022667202369188519671241019883323806486805128019445378817192396764037792848357306416182006473462356865449806890096338530692934082080629461880116454446934884478754672141552389885441630609452818052482412631124185013844129470537898777936021558938311290210007737168273168340985685332203137899722838852942390717423103149327959343123405731676525754451927073271067149455660661248548771926086227538043838175907561444581905301728486746278141842349208305321333318052709136651340849562437681808650238632130939628958553907549428574583368047079125548188427741075280009833926019510614794630785619372138178694013939332670652507461353396076017928992841298575894963809789430661116094473438002508710546490813812783713750265592011173537610556673467467929358179912641058273457841572364845836000587087925171340636856756223331959450482130863988050646158093999354336360383326372618494957680346661538073336574407196608440204102097125053986287180889852893866675106325151761407413821322401347366694734529326176605725807225539746960745961419286799264502243517923779795203529676212526469220194153553033755115904060300256029835994024540628483308401054027434219858798323734394457362309688201629318848818975387853335327393528862271601673235468011716134320344371064204326172906207755087022653479903621529235550493811671308318097676648159392485490937247119333348518523069960088285009740827550327882806105037988063196114390359590728176913492622928867500870202375911084423069807753519968872223876696498584103814853971321858201609028685635876140499971890169152492442780019468997217028393644120770466216867579357515356652834005955662840160556896482501849216340580483624801855094212592698359338177187884544558180715528002757758953076670886031960885546310590889067235521789587341291734232656768657688642113745621041927192614037064789382928645222697493144261213139789538685301852778474590328101282694141448236570170933040996586630790119417617391489846884802435957055558641312077920384862967986158479616260665532517056202169721169933613219082780381895483055587718603465727871021076971498870752576947925407850800374219416503514874216279192511486499655885638139156431798130272879310510636896476374394131072096232816582325269917679572618667490954360676747456769777268505454576969430915940859763191788468288735873603805843441403850272248476930833576284200632134702449171002407190670794439104485809729501570787650884883918257580794776466428021256535272992179762872268254200609454932381057947571331282018009463477994601925760390720513316938813689565344529995467934839875621070942936944629344677633640705390323322348159576313784021047155595040854733325474400038631975544475251658837230323842817790700242012765962324927651044454656106348215037416321147631519110571309944860095551672919312939352066640909555740133416550434865879806727538511582468116075615956385982932963090812040452766393492535563625756096902307927993944913568492979606460801227622544941291195192175197025223150478604979307020959074945465367418505753757061133597967387132530188484453898514675565227918232649480871843121548912538571903984838738638853344009917865009682238598824481605350903499545238795859654154945423050351298863584283917902343613658041887832368007960589211898586457334774981867142943259562186744836902280385864937404704794031654449579827724018952484550555775363363710438729515292784793341806236621431741387232813367544347724383405730076858743027034385349479675072952153946048263929185913157257245214522714126753856586804278330690664882314352571896913667935385100733923929111278642016448835419896739437383491501446335594335554161422243533426442282778583854158291243612174992852291974836507515238264899962926817807481282573213652348170553579461956741039974670785253377510905592192693809010164989056522662442402229662801379505621908203407471695020142626405784614082507034031094469509527364276404056318535237840417566174567211600206113897990308957736940757897802282137179600950992049085463726765120254582295988352927064289848613138222230812247746974585061499169745858093750866802911039279469133690743707568937958125217814142646172570987847715953456266293579651342316754072447950778644914538844385197177560496676422676096427084911721202662930690626246468689690370813613090392072675157831621309605079786186012016164429790449649359746225892600578806395323607282992740544471445826650040042038201660287784711864702994268261605021515894986388926102650388366114695530689602059944115513064806683567649757928883723871396299901841144892916691013248756827441228933418855403101003444364879110124903013112200199355739994208437471815160581521873661017308381002228712444588581104711037309995988154324055798779599328631519006383772688669312811053989466768158490256564262984401001504464874613738704305307254290462249535565147932301247756232133253633826532112299798323905908640291273136893568435977217859731914919542421931191633341024320842008869176571717236517126681603944586303433719656868799778871081522271836731928993219925397086637419327097784845752490149980208045593841391996676353925525393601504244460137618563392385924568615614314410599053574652463220215176196204572846558041306731243872201790313721105596935438367304018902363120515291571476579019327627991537063205609050501368034265079663614597954666216532850982641209609352675878457825047599780124014536775287771930256571640186132232133623499142042039085220383909562067720195043775298839233441656737536673072434718780028717868873184366366548214132945405113222375642902209068270441067101708171820306619738669834558372295344572366632168417206922265965297846339419010334990656622122567040255976671179769994793744191160552167019689615907266839483247677467555142700376403680840390052817402890684761183071835525326823686460525185919160258196665690291788280202019638660755710966413892360871961133785874045936287228298512428787769384634611022637515281813954592882101940538842559950405082437785019251106148229587104698814836789771110987829831864918588113056818727992861477968250819302552141849019284041950940414430536615473070519802142509923609219000198329692490386129176527545565944436326707514107382409212067204461707408046762387400784617918348791206083015826579240956959478615341424743312413660669727674770483221349580427278547890658649904846167768459487470398673739201809763078437244049883080557294373331103107097936045248728743539179286552217399695875566194136527403538929270957944423232249191131351796013843369839270336699528458481046812624919911435963121147563701855358120126318504224577756316918099949151935469769685760621133664277219141338534886363687436684037551196208144171511615045123752050195606418855673512212706625098415483836619130585132324701722286626627434461420999620345160796335745646353352666766813574878015733691021130002656944204879349034120305624599660932870510072690612197318666014698845321767352743850752301995334586564703088784194171305865555239471117845432620644795770445002866150479513615041380955274887824064632393352903586389595842827837160715128565875953340291975385656275629003402668269116840386631126391907968145925177061924039184658913975404665735768376064433825184186604679146242992756802749363626624943415072618679150100322802432140887671318050552313741530906459592055939840126209132967915369623137568605709009346164322801254495590492357080186604308104516469734719006200673592232464203911611530992829359704115960534331045483314813248153416501701588898492909161962692530892460199532424143057416632647536777206698251138079047713894057500122496778842001129935702383836852069774998192956457325618576329322541914726721592139909311877492789325995614834309419722992525767019074947292154502150217694159458187266773827589997222475520697320819777073446974728904151857362084736032554301159939158465426237719234603487122899899148265426587473931296227602839189585512759204794915903964824770381583340732160783397709858518662434826039030062083875023032073242010677701058045485320749200387732297547345278397022303160516544929902795241497442913017762823062786882428642170378009205886487988041699981040143493507432861846389722176363533436863843759885471205345008201077830947569854044908719595570688322485249458507526613516656921045401154343463917012439827668051219796599897033342553832870574951707383326340391401287320123879754813054267289598547388690095829869390882509322981194938303203388348362649772517650944929170165215579978445287786740540287713448991667878838740426995289123163168865872535809292067980050433065892327613321655682455545828453444833502674455376311617808019556981874654894797997535383926001008388288090721529877087909161879796748753996519334165191927347136738620031023288739754148768754508309645495943410164485386882476946344096169127530066591644835961097003869442960486556780878666398019670467666192806965282548559187658921629133863495564531684126857883962358924776289851917042623985872160769023940029905897849610039857122809514186550796244012597746861778766478105976877940782667493391458645113382566089007448362978729955977475995788413792635823295829856555657412513216966646108428532028993841962748034935571825776191789202437525491476473164730710292041930650217853397432203467990587388630616657103160302033951770294003468176128649810946137017827806231627349113361062423628063104977400140522589670424819864775600003491319938690126347924765838436710462614452291140577097769926186323540918976082436241787762920968088415488224708598929782326006018665356404917602149565472123087914332536642692532606521093845774991616573221585235301243030394562793325340522862076583663985787443249758015789725959482460328805200619378200101447914099765373404981324296787984203491307719986659356654348689428529332800215922908114722835620074122764970968135107722934927215948560151662491404305478582464012882639822476295949296447541162170668687350308504134274773859030454081938658358517017199683197360828807087841640515071945360322968369143637127753938047749553569120170600375679896291027432590441675018294500338386177769077918457258610199465686160712533397534455977806774122683310914512726245958173517055541797207872207721883286570941200835244181285516560888951757777946922230270593670512385948139750983056295813550880902711939325426959802614266475088791153645622922161846584392529662743201032814671121596143596358420253592470323979850080803979503726214658001585119778659561334272644083779875645695226714161929163609836335474319722279819312733314418063950428806165051758563890925202529122619799754732709435786343108335513022834316649580951658103558543369700690674351576158920556666059410765913715142984284942819313971959993149166269542450521864420950886347339268045315633746992670493136065014103506409443490703117193275042824713047856290492973741564237111695441325198456940297927884121724185759661774775443870157969985121360888623010878076535880101225329120423749062551215478679184173201987357438120065120020517977096499038227598563536316512982234659706963951062861345287478994384629650397210992555186054468700652298049821466718950763890839786777383943338039621139852636927711720543136977428259937140252931998658834912626528006622150785307754874243104380194557974648326113931710293122303160146336769340719184834155834892668149963391228068397442547716840539029434253047094630003264920976244870118348902304840654096906454071299650928072317099599551157272185117611254639561441934085391616167753903104152561615419078560924031805292153835891828615190566699320095361272624136007060692483610735065505115169671921087188630141846777183043534686197531132658416364259281853188586703061152965985736944238445636596524852836714997787321709412518749857681041428117953739175931880330745421123122829564072636925301698385297494494987500093757140614474003476728564421010755172252352191035311794703578477661769321341008347368384565920532621535488810578656218494996022118331292647178062821516862850514063702924079754974091179536710008132606087346326763965981788035047606949952593316023294584580369206560145027010141487695739532453492908002753631143644628934278130092764120129783539519886296312024640723413771958737165700826427609450109969130258158690723847807155151516429282911707486570492004648168802436900488350592327112770174414238987861562240286404834683850978231077976710064308461582818635064521821801903153321899035565774973493613551454286743787053866472455125231218715583662242906634575984611317593926091662825531705735037352238095523235571664250036643526172720503750491110779810430993119196619818042497048087843019637154344068040174015134678243018171647878909944553291067902140402817484973903110868719494339634608346794604748069666066138178802726118474639860716775869163661293789311017947611136351001407298295645770213110943668070543245476513546715904879486179926111261134242979260732190781031487504178011152949280485034587556466620831241419972246858482760785195318583967862558167819656663373907579314149387933242383818941433295981298871907561938491460486691990792728622362110637995729866372806565327451561620901484765950816265568876574872107864589921162897456154573006517991845064552274256293344131575565664502087874385988668451219023547467088542275809527704268193798186132149685352600889364890768825498090533053349416659969798377342396207029624816646904416610961361079413222712722767775898485719374121289915010202286295881670986844735343305440387178653304266616994482440075082189344371202012299351397701594803499298900398617102604411906459678816346401653738212722798476049684501103253535637536169612905834525984230432865526430718650197780708406408693297515877140438615092313598963665113645687279756598520524338986759206648085321427874801603935077226308092187049335878999509494118764680333408219719399375635884169956842941066897972493361229474498449939308904914170999481534198983185052315242167300243668194562906542375501268093295427403761109574808277314202828316151128208229216661139344911472901435785652817661569494036661531697429677271679414533638548905082344150802834775206096191380350452222597297050333442088707914633992030899381578785295200403286217746425353660690421020558894097378228934243760297397699864907693510343268421704083046467117869991692846842140724072083770579491680782061575626203566749694758057458971970636065192841098988904846123901125904010921615584183575803971220182329185318570636073451502351495186194388306062962645200155387532031251025635379941848547726821266395068150227868836861681951171987504997503588952554791487078259709921078997359548010578211825961850382036350092677992272926466018209565787927317203238153642610636790384652003713917151685807777550461543564467759118319105464969099677516981324949022558614526298618795914385308514331063892953851882136481186127616301168007496484975931715171942940433304579063460588212393565570699632163331600223819229682503898825148229827416975844166974314411756504993826773754379365889010826957299911570899117258522636195615853376356736633791312521996956177089896079225655609470867933491363136962471914233548302979768934427856079013619401836164548191265417284103768285890306432115573033283282362331572089602621614586024570272476346283720334648661000340323053226187643545740509945233579090500050575192796557585975088127411694108923288025278157990878062452161463118352191287063262027117648597820766971636605753266038146838543546513125759681368284369638977456490966511661731549792153435051962293217864794554596529681866431742427343952576696560173600116952497079905822817194324384647920472454256953056799645412547385563541474413245038283874063396795430862107384612332706622192487048117736201774178985775079247240235739708188855647721042198183657584762585168426736050254570745786069433269459208384690803852995075573434250208559214911898116898226898549203233993504119365351412834050201257934873050312469571296764764585512284996541906740124751042660074861775546117885667318833808896814512199198810754382008728163780073780704339052806890985625710547104270287882071379013822455222831274959666376443237130398547596312398570371401456292744784983345396268740455082020295470816841973754401368759239481860454447975734392886610893804605964701872603967890090087163408027959369551973651713836726144731025856933481223300983809415461151854972620165908728751309727036321085977415019115834014003102673368753873169519096168861071863021533116804937866990375817967172525193903415430752624499049375748799042994766030375892525012014889050155866413725767911418749997622863055062623674174900232684949797619657193937159718232879917971793209337251767415049602437277074180531349230108683582868661106699469207739092515136862425193905174999682297784685204352377411218235063984946227109920708116439049781736167759153426724446305791668214630955876008859026789922636328153696503124298402326486096522136033129238794778571685546685111890037527293998450771746716443330805950015259634703622295469227958896187352991693497156396782763944199908443075424285098728793335311043886991031326755276980438032776936324089275724078222496797228841218063096247352255889783354368222478638479108127858139383007472409782949357350075551442109736166364846792619134712167576199191366500615116775664245287071537609259255322424811753016586883146512510203633108249854267521751482771664018295693138519781191186943683015722762112382089266881558384214561894117421860256236210414720605221053218093962893190706366768109596224814416798418074244368539294666747270687470978375971245318519136055351377949095202786169387222006374025469581454467285021613309127658938719010579087885117151056508839711743950769324252167726369426479711074415417406169785891123619721060195958943283454466568172610909981265272261394703480279583957958086194327998899827465995979462263466568868604416530518549560278624509568166298718185961441692728322334448965114512184726310547475196695566726100385726912941616364831932158313363945133248981348468726579998275891054694333499969463020760505440269323373841482537576905250566526356507044849498883854229968440786410846437650616308617854861321535433110237488332412888537033996317286656770304583576020200757729024959734998305608304606659509210173025491749792080386427683666128887159726471317881493446729946953408481762833566129359766829940866228192103434782862832131640951003984653133188714457047441918465896852547110996849961725233525038664439558354537869849918784761935308357436483104831952996178111386617124071133355573976971188514433450568026688420394319357761394860864474611533931300804385322115892838912609938534955053334098036751569664405611592079846102710415021591936452905037933528627602939751568529282481362480490702530438857552564786564967044305827978460792595203053892720103773535382439116197047072026497982073691533798350406386532691147608152884188272129864544638044729934934311930598740360505173679840067409065579577324696397547902378208431774544716964066361360748945708050648682476977817623848825386347508841069765573158187439862967360125670825053626042579832394914291209307063508740295112261921171677479855202774703362840157340946482210305947791067598889624841473212292344060904499168369722143113581186319911120050095542737829847941285199383755521352888227787711375343690880779835134485195552635048168456392182280519113423805682879108115469403059315545238528216492861939093493835691377388115261993648202918095982959389080975285387936767569762368318609705336038998666258552708110704526080227235552782497542114196552433295502411705126942883058847175669388368355756441354028422956046021764794967218369980069829382739548823471398409880294366607406705454120322554284017997001573063122455919354636798947827031005106276327407344336440622010291017068543264773068213272425435060507198846677733452620989846577860942739627728600446416857789051416453596851349575684137955203043122266414126746794595500398486367132916205207555722868503364269764291714214252026838575747388034686955472429109472119311242564469131483706700996061475115851287182442441901579014536069312586157066192133813373284066059603347289715360805338449454728358304387717995921064579516781825791287094313026219522398228872257474404297342363511993487888196855083286663698072359640259905236318534994914083214803784691575867380855963800656971625789936117294738782399419749211995262472029429521060527974637805111859566544972629063988036205595084867707040357891718481323055362443271248738389591167658800028995416413864480731506749178845624191943738217742989083034975241834947466382089339499364115498171014509102413258323027693160418467449276610708443965434355921487828112055720497620004148846915068309939667074806480374285734368761141914646099130580319631131639445469139065571014505270620967844631287736448559693091254761934357979909844479808793631341859614413977293731205743841924319346466912340079364757663465878681803917148778781363906459636175085237499690971792269714370209350877776576931805918372019417441241120331158115575855881037253311824091586573329901354306606493625359343959622142103756596336299741218033872494370331733157642159153447621083055845775002055651428614849808229079584174557668963078315951798441530929059523634899332846847249619937815240010506095355285771753094686750490389171162558373943085561270125804681337798634474719193954489296107173146614792102180811737620578295955355703146329971458604151603381807103266721388807322282490622119790488520202455095022538409833433617970371242244855550792149678195270309308507339921254246550869037559420513577251640863242110163726715001453713238432347149775197433040008432898888428621912413237349990208078861213202514965484112291675875760223704789638916129617083840441949131293607021857230653914095534812072036302723546973194468288021894135289004908918238089595953304513995045580736314373641942419988751860392627244296717792478417027795711464322094538731687632634195221381390850726742036853712344868324347769486245086269053758073901704744760390896935166380080823789733963688518862157315035801012177093119932398661417398482521858916579703180366900033967900804289781208923745368237344296896908311721605463019824324488895849761560188958628576319001652908511482428472417911988570975581859322969313811432896583460181363312648269330895465840776953540691310181904861988463900925253632984140315266833331023916110417338309507094630501385989735888518518733028488696051025096986234023039590036421324760455929703176199348663308270061642654323018059314455000674238319808325867480806002041430668555588307017399491140716334762090376324409000881642375727697086248539759638828823104703455722497537562559951260921713016706591793982634472657192156700241885798760225312400599374377783681169479547244254598171375925411279254023533511015026356002182555768388214823668389407340062278995459555604515728180807245579613171107086061971486287211346572010543833305478598508882315351419039461427987783765634802988975194835649183666280231605984360781159741272988379527058332653511460853347115066807166898030929847823439670937175834146604089759368051284566289741199786317525072548719951941299303653169539869831458636253277047663962024265980744336176261993829614307499487228627175659067435415546749225823055381313293267897035480019613993008413017747333339501977419342323501090450767599971537574880523051627800702712762627723689766080064116412924836647131787140658162090797711647904898814355264089218387919695220092925423639567806773547892766181816596593370279574629135804963838189732094812217015733807621724297016474191673113547022256227915418298207896328151399988752959313131453835406588740403598310004770912970179961533555426141083785972907341066800250381559572585526008298072510549174018023552731683879079988124764798102706016928880817447695140238643072933789512935354508927148749052370843879931372052168747226755710497142306648588928707827364389725068796053153668756919803978463320785177826491663007068029791228230973057145408396941927665478914630320119325930754936317224246312008624430736743177025023526368485013001809627765113609721653059037402530753940963059592539616502756451146738027062502074391937223304361437712195701892796612062788132484016400829398119510357055215421122880921112408041477462555229705154028338752174563607960400041022036465316434979696327767527751284101304223259101155728599424487340702580829252200505854811552137389738629726774069600352636404370738022281387432812263880218597306934702166352797874018692866024064414119585047043360971288237542187287889791607845547970350755792901425149108960697438930285618483589129915500161501908342709088559208685034734125502825969602887180029753765614185085576571019363645688977048816461281347883190417735925877491227581072072474886547045718168141279648757484266319254922507448071336482999262769815392366161227137850168310042897149540776889005170373318650353957606797740787648711614802045074092147033925003490268587400148485405421952383955959689967756236767071076614741705961025953803288512672919822689997021546690691542357707778690622996972580921245048235307122764447946632229066431918087901695162299420121449906751324961689113440998500614287984642396680187734492079549406612592549161071449368695536359020618470030026779335249046141549248623616427902516519404191752291925032519162798734987354585667472079979780636769862937494987263475507737039450572361605788055462175508951931766387829409526437117219107518804078214520529391306063611735555239149263120348868524433043342912233295096072655999794926482429916294762988064013364676785897816800807644025386904613898397650376585706896063934043255771408425269303254686393560535990308279798674028105100622365634755497463763193687261604548458947431228211890752189142015552204522289323066702806150536556451474580374308352500965329563718736366469727832506798968213958974833056364266475205856927834725331924092427046041055037701156165433792139470562730943683937049443573970028247209435698189914706367296944828348456477971289588131201328800937310177409793427847755678353390645461445966278361499787280487854176574451818973654579979056863138568590243644713625108972988881859313736582001193241752145867643309430670113150430927426736397032278688392313480204160430672995640004009867017591059782979445730211228741694885947962151685661537549452011294084028865636537560019356467438784076720079039662262689394062485965161468323592444279869509125858315764763978127765219194223036541633499400416315366147581852619023976425716098544105932681139540176058155218909448706184666965290508900680978141084729478596359037119187409718580529574610809022407909176530272940505110283403751448404161479981398305840489385869703277341960026287169879398572968686156894673730334931748860790774258650540186251831513522172764041292863614565498803645389761001255233101985820886486358712247107233705623488429011144467366815847006198243683551164062705317551151194175463985120515881921354538918733553517481817622187388679701903340158465914167829905750283241053099001148089591923705098665350783411548135529735707128383825163526729527942495458068091104837974243563479383545986039853329638861198051395283227057969777878665411939088625612352539440711684371846085053841442705600568902824615873193183738316139229872418067385467882769748433686763168929079790980054898669337190694297905962794529134894052853893441164294954271451559489478811580458742215040432206107609393435453930485409504735121374472821561131322070593560129896201474624322895517774873885892911575240540982280858976990072142749690303417386834797404009626846612272454578995322680782992023202527200481958864608927906715913908655507283718748291250514984673445603030487458222050174293346578706799854551263899740086576645469244480510527244876978267520611724804181791420637265458992468786565484320551415506860518832718920693370742664336775047015119388461576195019111346848914633843825763714235842496942441955755859237237775574179044218113746944809843854082071045699403596778891536458575733651396646555052409241510752050034591097297977890097223490064644385999153603202645143082296733651020651878235049081665623855627914999323824518719019753669743449893946086099287594396718210175220514995754836097000215273373075079675112437591424083570260213385451163729613225245834863741185094077522643582962187974658955185127121812442498825503600733286753169624560447405727244481782483977464878439261554972166800165017188108978216502274073184758998219172041880264571322342874075827068997472543599443504044772603775035694324273184535633829247182019015037416542308081167044856016741874587302721267445724702493918182975536012886583681576365035713978737103594956021680707049306812527072442928545384531228490168899771832683542068940586763831618897205533085776556997632544602539363779187228184755159106583183431655841665945097290313336301245656680970103693474277495953600784053572375655290641605824492716206821646841928129297883756176001385141289538203530041331048222622287316597084381360611861737759422734039661805359635730090947017929312541237084445721070127216103426095418954842674857516941691926067706609684239084228765473150918575682885068268676953448921399957640547501233450945778721157487182202510025336974567689611556661101677237700958680256338533159746056000490075186219536721175459634388869969871890860982363711864712561637199550769637246016171415080855130304875243755900578521271707588557558062716823705706571214801302489791031803984401839848742047864682959915499400139361477666876499139306528819986398457769871163034966959962037109184612742495407950780462709026875058658034231335036551509090051978648565625816997885446491732063414066155796027841240633455239788106377099601505955532697032364420987403606761031798311461789404484697895884283569051626352417713656823603887005301682767508503736359387359046556628929138632879513586319137055162574354689224361072511539589812392397354424225010198511986610876326860709984344455626891775944697760951198768690640889081818057672346566445741873690572653988718576961538308153992539510300630498303927885025342645211730213836744715463681536105292225680119232264302932763609585783690852526282601826392349634454439443084185684237347516984502188818219970326245490674516731565662312645997793570692545899942578611355778523681864486432276371214803409973898790474042217140973012577759183045829141356294130458912457085126314273314778349293381184221855295723809807689035968688657882734821555713583041800513873471969143977313666288189580646050336271393283567235109464151406338673845944694093478254875092495658256099783364743949062928302975546318486288548860034868479857842044199477996642163517179462103162090448103447027734476877546728399696965013080103563680002829431289144262889163778056818665671936857130003095515702037222452357497431283291468276657570929896353721262819711530898485978247666211406596449856969251739062522427552745810202284976018076128145062714763147920367232166014589953393115399847266276659118363900469591480605732640597313406886700769587698362028630651284582465185808793776920995087448045458397455006586191855078720533046387169452234879857022160203523659241145809586485413101345598764583482238994349668392207150912383201135698813000115416925383225899522800883624655348803985157911328549605385913408819375228320186570811647949097211198600243520984526035119826796668281375368276629145563264152703163155017956479163876833418756943447552863286530029197578922808510946759250211666590059493542248702133826813412564730148503061829841148474190615420711449100232625511511405928248677290753729346260446366946249298874727588751057512115209769837553380729718169552589957856031939273414619523645698500160010100161860976321557177020018649873331190436025565162674442698986819935485057835841712496376015542190242296786955438191523609469758081427389164437499419346596986651456605946872750763286932470680646094499614944137026613723095329898126741799723146198171469453598606692262994644262928547124241703247887834685142110025835264828413353956524296194649383376678954293017346522173992082891219240685277825799239944213793267393837976017761523259133537049815251847967938812410350016047507409507974809365576462080238212256924470347651650198191328281467738079309550232813758714589866133651778177685427515040964610785945551658904800853208909821305874061965813652001129749079761960226277450935525788945481112860997967149264658221844943571420931021324896174430392432384268155343716019976244504833367426818928552094918400201939231908237148611782590731204792871884340595305759851342407169362949793861639595778983258494960583615981072732545197650221501590086049019636893978498773955072235602710842580114116596579123196255283682980428891707042103915044976226757065758801174941397168864297192649824377193739648652429300263482417363137436866418470519124767615873655548471883816553832011273757609446414859690475292899501185664712723756704997864953209729058899503310428902206248753819182545038246792810422834186679607453063514701932915496763502786875150613011196646794636125991526229907362822084097635979077947376155145595535893205782623881490100413062564771203720342945306246520770012835851582820444806184181795468198801417906311862188222700589579982287605556532098054053306313956585851199648518765510179332857458479214607540440112694446782856509675823065267976917075085409992956278942220981294123603457665947689450341369174489956764981426781556938857248245846103029115532472103550783281225451298143249945621297845757894753213153277016399579962936627612379524246328789645602688049680951903006980789559366564907393267465574911558125617747167260168049718462444131028443507840472318194240930387187415458398918503166703014159243881733261051846554222113191559629000280366298301222586627658723467175517920959649552497414260516994663284871042198024384604206625443690064660965580369577807856194429525529075531827096352197618469560409726214411528875407048370965952160826190067412530956139276658633599532244632645379409636070830934445555214269551796110933036535811716623404727366102186335818506210180781002235539095153185221848203369240727240722134552579976902367519627440806259620928330792479255985362038519632687878671016292686979657513341691010542503885539036238344978894900720948010767925451415212349658456568810326064732300698359620503296351053232992526256515243533764166699984629795295179290125323992139717430199357795236827216570298963068495586650851290584580009032898821585438293958012147365193582055760479281998474215936314893119554572927564914929749808443715192190623283759651621576471980368986723899176595175668556476595563345975457167644308745057662561658336418067074619903255539289145275408149398774135704621608915477443220059075526799326269795015412775090212717403367597098654798813652422880345592197692550039716631460545139312620147445342245576241773962650256746350392485020744396307237633506911079349923655248099439014616788709849472747370280220648229154267416721176855857221992477670490880177747857806916248811201963784639403894023579640282899908933885260260213912216225261708731651888376609011811869170781789674933734794770324547555603423726815366722307583661007090819528445150857409635662903402282280780952884514124744078620372928669907283366599301268269822426750796970466347893534761036706875606411108735431031287468720166407609726696222586572601306263847397852378597834513502682830671626397437418604225137127395320776701566742382955958260755728682334017448170106315871984901338523133078603847907844020569581214145556342923363620112098867269646796203433779675872447652679446969340910676654346969328428081447212948728420146870084107224113674080926830959969772778022473210406485196989625550393699017721591078114725269416302825275364639575486413907647040896803640263224820915251133974698983031069301749787170422393763068953297713025502147927528822421156267929031195467163016999339728893213088764178848116798513397587707288019528511697352298244479536440220461398080365256882833587375863727740559002154687166694963522992608979117633761981013644960533272566618859353139043923493238971262026322152790710600113753877968611678938336954811557638079801957879199394215054237953144731764822851259654116973754297511081442068194435127437939641627815427551774331777151466421081500752121616860019696598546906296619667926660644105393647668323619775850537751393924955633694869547952673999442735729280344456888856734742059875702236724050603238203841530114720674803332664537881518028858353532011933979285339675341173876002375613854995156511252896849235100594268736141984626690757795945253808672261643348980259901570762847564268492772310073147473534241791229211728506955048710184307648025534929891478103062282688178682160099866614987472904341753373684584612602996931621273097181145742785372218526011909951433659038672777339104527071511823015612111346031712723315531767703813375772716208382550755082450450149930503932519616305340983474674795612684891833912798158257274371612670803903141531107820900349726643337785096436491666486402483374265388831214137134150850992601414906491979477293308180829027645980176788996348879088909463977786697259763896048513151048224318077277024422909264701787403007081029303731277833066569327824813331751898002630534258204179149998683961146422887472749015593584529149086748411453215182231277192955366741124971778743560241393250578057159617835595679727350445944983015079410601336201418541906024364927774111952934548121054259952008439121409853340201452160837186064340348176101403961849538081389493366508393234334995458813020761413027505252851627420922918491967284336967828809122843667186053154563705308019949826526555471898512197946362877663623174786958098359217543196956959003589911138044494766950466408096105930391634814883661929554009544781000875844914070784427610107026027653733600418820824736101475792970844423115317680435665588463451604367782921098567930923336548163080243396981122005386620916881240364936288215502938984249454165144478346525036069536276530512567851489147314566695999535908810415999943213111436700632936486481702867437115362750976202600739361099606806058605357751999011577445876387648289025369451381611758569624659927973182883494404316247541579549475647176535142968063708063674900596320714748712042441080057974968238254708878094626700386292560819849318155940975524815527327904643827711517156124603543058925158462828943487362684206455351646284156309681989958733137546184789521875474108084685115222001447665670922512698332776311335242253115342098422381841858029878131624684350083682515870345527455053016665362112569494424201739900693911845639057355504994671817376687005490321790919912370443803827469590105675225348648770456711841631545726543087085578357518623212930863659893995850241896579353694181795343336586428753798951860220155832460252880768566215568409794018619335884248236102966779033652160744242382539093771223941946542197142564522216172693983228881790276675146937374947500100827815184766544209075828940417879667346400453625006003081432203913889238720106876092718977691331126426467559204484213837576199471708509012075861618226032449635247670812471170632994122620300898752279912156218922691779609289091697387701153725666952238007693563932063718020882261903270656631279898277816978252476758617052894695504342212145996104618526400207609801682199144693673021550581629046076960401482808038985267710894864738167937319692546018565977936220160585841874924006315285136482719583559940374902612361180705322599461762474748913706907108816420691895937182905643364120696824171412853263259422013574644754149254546341488584763887836109961017881348320507803234309336256722160505855847745873942068787994077305231859826706892723777277864423421664588737449355081423421144859970651360648779940901615237576795708324044237585401195006337348927447617150500210563529771580265204527948954770528944552094545058266327906181060859611609290331278426571773854202741396041390248837712754874119528128113214161190298047117690996987615610394300047011594978124977420817536552510138179169083848838669243111884226071010924778378939764426450899170430028022108885809233037750325175635209799389885439519077265857308182502973271993586499090227193342884839634874425674830540320339949060751476930705028814698912557314484508083519301849395501268659506389454602827671827071829964301042637250555548258429401209086770249436742348974635746053162004413729944379255248485573308172111520134492560115712210237861924808871245885748884873282846374332961316534368273962296697121637795488663239959394129642849000567701824013722516677516906331049914906723480353935028866770105560061405304711298724852370916585305089478960727627257681617688288528093120269226051778477916650661732680135966129644856037242200632933592266996020954199901427443002819430366420289408012348736314087589105899194563836429314935376485828587861034639851898429673822820243515422429983004220948605625057866900711031839495337154035892234188769675642229424994465475115464677577394290017812269531948076292402190223732154316802888190529443507492347305150350075131132547899781767596289646578188080639694195383658051108268498277122351708384304406800236714665835459975942377068286861113889950263018680906516199549344572049006995732764739035019306007407975571218184742502893979464230203090261723730835933753665812644378806874572987070195569345514475044555716473385146527259270372599357965937300066063243548868058060799020558736953292908805873327644264411427054657167328543375692362868452238501400067963279195180955707461652640841127794730848990161985503889602369100578299963171037602185268896742675901548494655328093779105183044325150339781406742871652339152425280348957433357235373455781682115804414150782630953817909895133649103633325941519707002490554786035101288976814032760211542661013000571530206769025142782624620553424019224341798310740338092034141096404911425051888942674213379822566571403879477581419177576095681520481929987197559202428729445818363817997033755563094976890954616309415763429884632031499027653466266277885031650390288059181389601718187588816875993873137782617081360380935689296043504758664609129240456580455688294566483932203474794044765546724968335777782171248523104560747582518282427412905449329905270432301662213987099851989944420270519195804997366072493088493188744545581996001733028541529912822163913584375008956436683288958213918527571205424580685528242424557619841541964839370299783603359368591374430939731524642488842354823662587141089232878920976563019114984323326575816284560580184509654420942376602226641951109010896843580383917282814640455124446470691403427860343900775232021953602305249171161007749062145395532547165629623159202423717254068592995056294623494182710456049604901901484533692649185053550234841854543102991269366056882243712614630171829789991866695373136642959778695413901236543420141961451614509731688637969763616331964280648997908549929125354673697380092665246471344113915862853121256423614367499307122123337316320828652222870133918347922825543771435418841463612214684894141189335458994553605967193758533999235516203780639468694271040158908636839746195357348184341929221055138683958770366411249037573331135354066941779383448807003048406188247096568077656060839236076556190319529501335521976503026422501316485915624548719955840252413133152810178402848652077543142246781761952313504076151552928357051025371184158944943501240982858426213766416324580319914964513627706283267790093439751306653120975581292362776755000549815221336977968863191542803262317886527576190675394962178257099833591272411978861968649350188547600547304190094720936822443343633989486714880569678659259151978888473281789634641277840692953407051890390798662476117582077372044964005684270525835479314290870581880244444760116048485586780057652146038745302851013267614463322867130758247761895870395078452173203787385938412357542461358784825919565400301640481791142308235426882993926637832107261142067554386436256713247959853661287712201174540827522611982201188332644790790810971066145935599839983335222307552245226578558324918808542155466294203896328454998083289572348900588706773080840541545424602396671761975121196954503101103004875591554378557365656690741902893888236832966905391735047291724813891199712656521270026146261402481347551384250917701589569077915850023194619230032754953318899150585994085848049868587595731149188269954291978421414958688202052889235032131887752187340282930500800553558322987611451003747290549760045881598890535458168729083777647877740681284657917967369387131604214442256557701801179708681676777471250373593777100419122669013579514224958054213549012310441419941884887856677963471751908301251529480987939784195677090692115513499988492665356816671923518128575881807655358572409380380072996559764437133363084286529111074444344102610577948908454665048096231367748681099776083574809680069312107635002701820733002656466146036611042062280811026565033939232115288917765761756760809212925482839820205325603602745918491730824874925379765351331288149360420442750098619379117682608454273275457229045183503109144739333811805294461711406770670438149523656739586205179753344874879283867588490307221884745893181351801213828300972215498378004995613173727587223654234627830311932070170477059346571745563415388130686835403068475234062233641878608032274011348503518113783084451763500500491058356845723183440227196989698917323856170215621115885848344402882204466049533514251587353094385239839363888501078253772559546628974025950934806934570370766090389260311529275350358922666542688736230460994763808107598944384958820620888325193981350251026176655042582651882452495902533783705075656795206276021464433372789177238161727965383935159789060513035155192885441790551506035835335500570903571111743468576395786345358462989557935515416946791684169543457652343856623913049930173496683861328179787743239826938660794992868770270333206714642341676717804678295433062669288649138435746056550215894730815654628875056612110219776147365792127142723857180394519179206164988708961529849615479132809006229246183510716633548197087518317882628357391334555561018706328973552090083070156209358371706701294287243664461380212504634423294020298806586128086132389543164690227828011570006000543261977220596188477712975787334144995839239171568032139924866197888096035152148731197837796596211332568154601213192035909349257541256407388645106271761400874423870410202629175195378131814295562077224504460543194122649603634433592989269055974591269755335899743414945645131283879382984741489779368207591550016761035009788064559897145760948276387145920997766342325341025576199215677635784017626574072174069385709089463025194436625593404054768568268524214700181797211407253626890963427095787027634968465339354212572933503712911193425498695073665864581180593628099641597402978444231940818156284869405387368978676796464273669881565336321155857475748250702774787935978036340264839426618847757889295048716905135445866671335801031685071222098392362310618148726922428981651199559625381766617967857831035245960766111986452967204292672303170123101630516993303080063312249569277122698303574240285601670059358569220074379146133448067787923352274904808416998462773082897179622879772427015277026621245379270608255575525580724244418133636240452092245640124669828936263487573726911569054000028438102082119667654836696660002746271793606711529879272616039204548140341635563761359686419198258736137834252598920909640120147315425573814961141139281064816015629241605343129985269962314793446169950242541058429793308828582201235477818547174376621256269609177431947700080385547375812578539612845424040934812981209648928894613199578759313875957192492481775015862141486958617587850029108618169944641719014522360760103468467862883664888623776031617164094715741305582144323597675970815949123113714781780880919570428625521348737027421829245970681624079897967623797691807558845771444326245454617701409074055639459674297943617049782994615676816220308006349243762530008064322583317871989798563528073599253369660527642456966648743677571015193617480389688741341077364897199484076834186339800758254474602474742900821096113929379768833651246287598644294857078442035745750506714672775996413598246947980980410669890354952761771160594504852024877152510495394200611783501494405463739713241921661533334992506849489154528423414244197923184707832074202294944841345871153221718938183134634102426545689929536705042500144477435560029265340643585665891976323601453757162262012855402612505469437233290506950979077254828191770332497784511010051350874439963937230671198599454947559396231572260361616816602934230475366688846242793216025933363550149769050993206741333449589337177044871628366524412328087546011988590920656643640059602698290519256352746627902354390344043315507153838100505095054022044559072337626277184105058221177990743151693532891679811022217455791670174429679516291746122881751527894657911013064692048370092879187592507051334906912387088563516018938463787308104560795231658098398986808585554719266463982967157826137379792637479622322609480498161757713493637244212162698286955564796237873145129952625507866885220884144085877177160501610924458580145447947921828031021780988871249899658749875339141849295612341306540411640268544132099442398202424299113495967871233712185407573082641275331034601541894847702761083621875403458981558442397279542187990473444747000878853668015679511494191034460695275978413212075642295340208340008164647634568879000805383207408817365615636617276548556970089289867630476498976826915528593421632883250538962049224110279923059549350082053598032438147960712891264403781536108211083129013244210715368313292946917677575068491502676149293123738564269897226526800529553052916530114068162374746652227856275136374175015500948103257138455532963525802325393985117351072114671246531450542073165029178089212225317757223369689382394147697544836410598407440296523756748469363789390173431969603862721902390270621979613292855877342332773482447298791422208735844403435356937721427429959452217362796528860273216441689819273566068793740604460043347867165400212404016943984581787426741367440071595645117076194105405832444298452373342582316163863141668821429207750402880849669204942662703832578296316562141083743790108003784511422582045420192928127932463008098157450101199216725320049562930013232122059592801515240137890796085202663525548470491674390236896853724415886256483208286984308786660749894508956799710788672788343519312303869318371779948748440548070755830630427470445642754833544249579935340607370241165741454211491934077441657039491338258963903515581543306613976504037304199238744511520202653215091347519433834211455008476934721324881966497126288312271048144197940456367427264307644831940771504086088333302455285805679503016845270584044131726855474087602888481978242086034229231578729079427630954031721067439544445994643112006626795258273299977438035244226268513387254549841621908010715722719409207907713862402409964559202955150846213143337628968198919106154712115883026353365000483615082674227638573528083947212211236439384667140747673096046729134586000521090172003981798496337958053193645807637460627904713993035146799311401093566354752905967365714591538819673201291931989582687620093658548637631672059616584433872987012355395169962239457781231533206070640712323740818365544964192532910395747449510389258093038861695145893976314040720553263364146181400347635763838160614858297961179136347534306374294666090579520812725697847109010116911133078852925163920883544392277023419156552336034618945613159206895176248874013897391138451295529258204077209626997916658244671675373625717846532450387363052901967090611014558177871909759943077307892477326482209789669465466491126757864582592660242528572178210532360412972178279484039888169315160674608735818989134223024661206657982752634412704067392992756984177900148115163591674885272957655315026776430870313659201145585638705463166303705267419988710782656129501805250932199437337243142388412361536642641776666412404053485493826349308022210716361588707345447894146448056141132955303311833126812312106379709670309776686090612967710427308104856304582286592921563188249144597734112219162147253393517427903153542720693558064495883738474623060807774224221081508452382831778407611457944592336890867767377641758298699265522597585158185362742208409916957596983348242855348243557897443126215884382036918930164493755772487838078532817620874984221217952695810901863978374354515017715745600329453551543448568727830153694553262468206995793577112796288137414468862708238838970358899276810696493786282086309745232224114123491790212128301784112430866287697597535598278010131211622899415620760396283433625160266448251222456565327047522292349543569796171777437866793771901446911135767434707788694937814647322523253668205796171362507743239930413485077253018331753458212644675154395160523320516980080085322022782091169041537581686522277265706709467101411839356932069179569941602894039007479612758549419249368648780808903991994487322025235144873912629937155893806365255444905731587776608160432635817633920627565788816324338257336446100893796679371866397283170643951624284767318024674174773640931105150047400297933233324414910018764629791771647590415448974190351744588061592085451667368930957012309163293718116314707297484068855303287564553232462980231368577420311482747747373870563029058790853384341305329950680382217480882855672742155340725216859975906414395613056717507361823258388141438131446966238650623040455561906315633478668470123954713757140154725742518211130722131945702591538506009039220144621115579410849873908268631590734639735551720491962626063195241393703412740900468836595129001713467890535773204554968208462245801050639566684556866525720497892902549376362291080619706712072812539584233333276820074894706171298917176714377351337313835146698603298921264299130111637081912867988649915452863317395665249224112725618417222123815552742919557401135307769898917061445253577074771877267719276252769039032011737222040022951045550308526563264369863698082290978338594200447251300873801152705042047228381318370806815069727091874668889831194608109647429127203600646527115118949592788107976680987615594779357079459218472239186110440184866266203527395573233790237576317427749993753269326806957099072436812434546800712036051887418269463708898159021542862789199086727628735306202090451711848416964294746719427346776438830286402422221061015767911834001314711529757618284565612020986809561450267555225342700621030705214194298452251636983611928281979522460595705252021391656078070547766521515777845812681585747181117460150991920355405545584030885522596097433449668011069496765284907336638925204786169478839872509847555874284722301416099735147363582917517865694548848185552379622353081387730238922597893171787503707693503441384384083859481127532175844310397059927854300501525401672757553797426132748610790573490608545909008862315388943458570158071974706459475518339856176571717028384797464577423577875399698453152722944850967186590556414669580823008831999020959656471793669737399642658191883605066600191781225767553369598610365156318658506345216984984817761117723783508539564557576179951378604959601099730423921631160642960248376030889132876821767346918110749658570235989879679686849442903581090733348064626905002667890799687422917103189429317540723232635693869851637834506285521177932781061912120522199644639368754564806668162678489444153259130482097506729315159855355230627507925481834448262664034611367503367996810857407465753470829956551925575045562567031592259556956074808863930726540083308790569550095415448552414208713766339649425389883954777876325105744588049333436126715451792469826732358821162765071235250124784015518269780953092120625045010574218387471466269721248285853298362972364813553653087003144600761009514416039548032851360272664618659630009547042594689001829033639380436312971549343654228759287808141619849764616860566745705821658673830837320674115631607078529715060854891356317824471954474355288732979814586890714564363372450257055359150148784421726704342217642055606649626091044271007107787539133165502951926354482063188306982204360180783937576611793787192299482794036054038286428606695765585398730924755514554713895382883541628790386191605277752764224875241660407228846927899535294788116781630922021295497099042055215002148715191180618606315523033982976124611198637961552811526711088189148765442013844017091535082479705213894179905570721325240997314322354119636911025051107573019067954393127359354097177890380689249928036989523564245566962236059804154120299319494111432051740989815395886044476692529977077795928520885292565766993286149005442415874940244880095621870022156973683785824224828900523467637711216842716511454591942331797104278647530362290318621290891193867237739574298380797788538426257990848453492877309601054136365171367073838020481083264684106902093005701041144578712917707267586443127256265767025954540084869850492007982567338110985597856610629761543746039293878193939279714979253295120901719241260991208668392045542590560847100996900147012058579546918466924253708017595538610439599585367241985005870448415609823240636232997332222203588294782743865609811811003035837823671332883189575383014125550534497125500101189463789561113855353972656203617338199019187790574642444447645222301166800404910747295626560001009394561192246085236866826945611267717693173368752055108733944171973957057481855347455187455511099207610165167019073834343240601986144853716929710680716692338214336490359905764486920567496516051276874106095951856780413076928575491430173781328514314095019252939314537449357628780637974621170843579966620067495098738741158455215559769180014427411024116567585114642721023965009581104691331875246051634893130744047772533978750591673983181432577055607712433189689067428169401128260772237871827702035100239260274523874605221544263278310122935708243424754179681281696945956885102810891814521534960328941424216546071195715549076943755925974316753863725139703975723645981844285200736505878220072356312324137328625274791002937317823802757455902019873281919380339413100270919861190715326271765506396143415637117811661650126177478545698611605866186331369319239285091227636076286091811242775330862933425657836472998895418811402515391375748715493216384384962247777601497883879061676069648019154832271444742507178622156462164227054460506107127575385539750177205630139993116597680795652219495284478680418911536367236867872188521939722853764675860333290429772902121958743000319354207862995550920728637092494057325044662831312655942901923667645642526420974773729321027861676074803917077568783741573471966460469676392271659785877596156096238472257979413070392204289614396686290237143753119128671524634021130333438553038724460998296312735767655705462134795956880622217782249652441970913848215124987760493846377605550848891368439151231647721789594625123549205143481608277141041853412438677667940813829283219426383778241618596338946626773113851747530460173290156843708098812244966037381632141777516402786519939241325227739672026855428353609708711587232698124397035324944435642231897482765078431903136387521536252999432450861276667936168251527897501251183584744332487960928530225277519053008954712682247335474890091493693008252454730017795536557665802897767901545955675801859207059791000102294527980537035756121636190418234297269092861763082167795116832663585808969605921736441431798313933363742131300577112468371741687889878296219463809734489717116850967338018554686680337965786922688844214416098439183132926871499545894204563648809965293767830157307066738151020391560606570832796419522330345792868236887018270907980823449663743223216099614811302702743471566386582979084365456256999702730856853959304016154502463650985585251443374677627318632738815103079279625999607907134689320219342115685339873869491850621288231612738734555147626447590878271643339684714334314988233089243289096028171052708891769172781150979954532853550378627195375842413959438332096734782319294598159432164806161106375991916135383478909297174192819655158661528691757378063313354841237009500571481710007544215332166983486638190189679063306733741447869028037999679365583603414723916016709242069107242176992084419693098881121147888652229290352289864980698357948759420517923931399346159730938107423317854141612066885956649224792060468986048468873302927568975097393354291097071926207406041407813309891110197623635368849406947193008177352257676053172793494360127368364584789945127706073876388895138439770914507141055670700524820180155438047647206796019498722498007384532943254073025428614942135119006825102053999002224567332327737490253726807717294855534316326349711723542463165965163096360449779021879967129225593890234157059574867557746177257552494411363815322169450379682652842892034227793864502104536157622179711698293505957738781863173564806973036333239696937465488425285476513084684005583597535156602029129009693718956079650539415690777709899540137359406324708791083688857357897946431457734896432986399261846827394363918249683561630816359491882857923379789571312539507980559966204697592762622862824963475687565688454855216472690135703011384757161111780791853274356404238615096540004203555638500188189084212415597392972664386789475763829134659971572474472529492444935918019697618753691771319354055803031307527603521849549660513651991922251578654727296986858774682635199355857125917015086299831984489521749069050749730216877209167037541987598904953884111132825701188571963507975816617853689222710479621304254735385928662094013704942761757376561659846608769595834647231660359089033094967132196805339557344345514458250973560844231010129233235562870126032439389834377589889702127083874674250104982732189102214340522722020539420908027983393470306205786883593926386487567982582812813539439073365467878996584886849002736088334670747557072974121385485826344181861924926129510251760830212534549593050278418068431170724739112375962799521307697050706937415370403517382116634086866896431653058802162482072318932898044480713110584714487925762515573119055684742741065488368238399556284605402586610775102078982776355662448062134289154283376202895050159949959632999563204556211151174299012633639709246230066960204867168580020045996030442388786509487543666087579134367760554174177982909559847026921977103280690732531831100258443695920019320939087918007410549919640224137920120868197418327547971151291059753669002788212312217448913531180145875624215185497164922241578494106476390365507000396511546543327647611883674916659667210833889745989546836805278344475180727668346413577262947612799469261053770654230561304781908930027992688863586543858902507299286325148830656820234329166780235113091729601723771658954967044274298069744575448493658632779661509558299876879472635764308655125051759398274916747775058837759333110489242415103785166861555840101929241730912212143835867454194778413530869064270169407668680776637661664800744418159085934746465583919879717329910648938457358064172785237672420558220453289687469453870185550945958482346191970467239322072998144683437021591649061477774688942916211892677873630393182365354946711225342526024382164233202344722323442666373785841796074754915878467533329300434202632540085921581102059262937368263283270192663201577322924089086531436217679344251470557967582028242374625401629974783311375820095792386806527372466140370396186822304336350818213939713152685130847195562723252977518303553483921175177604742854802960278327208333200288284650075179989953042275439516119130112091667433431364642544181660475784520120352278588978861501595780900659849305088754532182418041860929712598450889566812521509960474177014692332133683757600334316728151428261130546488551397899703848278849321421291292894632290454890486966547624293829073097652363455275732703427565247021234577156704242336871970398848469829760963545942692130351040723888375414021864569517669260218087935354484310444113385438195243823355083210758099932265690557290762408711331890754898531783101875555205007028732099817466386570588486684971240430480452354313484133844394543939861784037399622431231586901350449234240055502726219070784655704195800642853357351260567093721495352726516443347717789945927445372108978665963459257931842145726066817356623898780354618653922677840089355888894122648128810590531998085954161726336014373622570746507459857521706127751857673477963027144885322207913949591298730951850779355108368183773183444438043800305443281620083950858042301757043506793604209883503174776380888106215815997610692103485304182112457180756857960438592124410150689571715995823920552410453128674089041053247986525224905894486505693112327504753813253745923140492354576526506296244166125831617156428010178005770412612268336526492254489036591328240264866627823382349407443425467451053848388876342792150270531243400448786300653769080214740484535792233851348010424331321608774213682314234410474638326299004306118014775558338701645958216782421502371199469143669912021756385052906188840169511478639137443569728676084994663875843418658401686793141551836072648553074115857522448719751147117115869528947135537543362688560701138703186869283426366097437319075559811102425138493515003825823784518280756140286725636773680769056414419793636917124939223441330427452152138110186553527229007375842090332372221494924284279529939667688740745557502205255983233681623628773133381392539923546931873134390780208769538399564285067701646111528665527746266189779214367504591709458760692696408276170724926103472719330415561303446878410174111210262724585245885635385499701122038505544447133281540924956416588848027900413027882729377722565170147061689715145358201876690580263917937526825263295678846292155202301521690623816347073432909902613694056866922930063110706998086624439182629740003649772383124699816138341406996809664036232440359208535403947802024436137810066717641053925270326332116350144928455117548269149100774167420688271187025472584236408993299375542429820466233189976903435384347356195827397312918752450089219528535367059619282814169366316872095737244598337486551879918801664127766904220248013715183353536941749535401074662779087252472237622625013945384444323828478867213658404168162741816674385384001126912158255001878547905808580666145030881051474414803795841338178012086407681400911953073919795122592360521436426329186633184538018708847482490848886892562245851633720516778437185919752653760503460485459384599530855627245213154241847249130681550315748649855198162630210850905799493669379384868563444105723892682986212032877308340500435414578528348159514594528584086010992642585225126110239623205484680362951042781749483944331824958576194223679037666818501663423542541182755832839338910762234846564366827664811034807881074539978591067994296381316170174070166831438144038232637542042979394074217726955397784784067486115215720929419856725476552012963523423050803271035385241293591606313380177026056634530217172698861968041079454457358157825243740715199578492885048900579414097795770038150981085303122707027637536813986318336018076465813042939257281754532803779049995134627595560298658746421654963058211891660347034890167365145121662378452432189306987156933468004002691528529863781629837451484961591811960840102394758501585247336886031730321118815177395585656752497361659704966721300431808048914705346265659471297910723311231893094740143992074359476544226202119252397847099229812144024023525284882047960297556263238759728443769886510741964363157861758456333075017627249261231847977934958839072606660635519005086683472616682730271918784725108527105343008148146960355369153789433775306658689889402839892032116384762617894592521410526214877168138314101249471801141158071997320689489934438863573314622403608797690798498749336959901106950343552737364913603293543769255378974270239588937210423214828939171452190942771949610391565336602544244082021854810582588330085948835087534465322233869500747700888434782496625664000576399232955179105509818265178547999576247631492992002533474321372112786669658183159096572460172129825840073845712919726780663863009624850803484492357668749540954769523385615895358200432491744167121506145275145004862412606859994577098949234535446568959844932665070153595304762337641424881374166520402935029279828433933215656148158852018223281166683052693090051293762677109132063879294688110440095128676826488406376610490351519366818020260717969816616852781463150601218728168457385148865337280061611232623552313377318889979700456375684955189381264146740087557417674645564490453853055360534207150541404618538360084484647196979401511771772794564997920864136515171917272593982014138549860018860915660125192068811176360764501625496132146168661088614160527303845469805019185586850880208737227693043432795654212696559892554912992981998433657327225238307477730876729554705467991771492301612184545071586622600850423606064063132535522623031978883583591918402833584801432068813620796444894381751475165078004268812503794755694587603562823215316720881401620275565290611217744666511127437496868727372532631352906547954455695603772860091678682494369023596001857200578423235458600272220092090893527388247320030236429881647487871884763763180906702456752732634747722232241502322124403932940302588118590654115712042878625696344592993976856149911187513948115975156217309256825209400079030143473496857200031188812035097391302215693607889013628793503037639115928028604468764448553748957405735071133695166607658427869457646750959744451389046654642064546487570188451306455436667151463739644585899846161855424577241532172287697958749346485165952266473305073207331008476733681111780363628061476404972353500853731934742426897303380724518853674855987549503500991792043461511080021842136313315924578055348125085946418958646009264800192205818767010739221037158196699100691364349276483394568598609340081792325978833569670975224844435857430116458352355015583002969777169908639147603609901267333729959366906479768165238973453712519571618922869773126413198489273276409206705592139852276535774179514147729391597807487519920822604058190475065235239568761978907655225658470643645461912635334579505671188868215537593926100285981551118917558773164275997260092264789914901423840393621075598763453721419066855272900073961931931830056727000374342442173390039380913908921393769200036142294231164500024560346936350415421925575372183355103740103300989123955718046395119428856558979508758432951784107708045642406373405420577700378416919010178436113323402981538693785339918845772153080480196383120096136675866819551350634040143910553889679980715260150359295683422084712291851757730048396249330004673570407777024281149411180412653919391522940470838234609419915113769561082776467479227057586403018735719650769633481150170245841834748479292656527549488810982277745876920274357148727513569789645910680009362877541228081523689782436131891140192265360809897041755464068531403868898188296362960128527523831128712625425718716313128574739793634495028131263763924752075707042890418678944931865795929338230270261264834573192861146140375683886184721898469880219917182143770236885330923260313554107233183583986898378602064175499157351124299328255633883796645344886517623893253960273339069542454028623177977588119291783537328273956819008988185983941526062074265671502790182920796727539391642721520207308814143539519861715598900599798218140030101956815160930719927447483638101466857148165494497335867548063177673566964847416870621219096138552263657482063597803017167531334498911808020569783372306306156689342329521304982500374312432551151982415004306153232449388739319331290924535486688156754164864455845855974773402029092047460931816970047920523185337515616024466941854526726375545933001184041269937537174861769868835892777139363167471579553854051508236997327641555365793368886897886537809887374742225186013959892787989930789291418592498716663115989392199673588182663767300179390198078253806635937939547947174657255219034479658892563314251704154396907559986796217277208034947247066305413905854373236105802414516069062401512264984461152681055986766927270550138180767320427698775262263069885937221800984307840059396618459033791016904547677126606745949980736486888015259077465488439008762034800530953693024444327249284566979225605916614594977792051065356959975375618532336936776085940698029240111079728994016396779248121043431884928312165880654333702515161674468654435963159164814268994661933926969728510154433780737717309625823093146269194522177707295261664051744991390350504925803271868303546104853174883490614332440493805215395601062573372497665550196827587974707727996312336719271604327124768733097924743478714139697940344822241455612037112944030513435031228884173880260809327392500927490048074854142888594358564233152169158692952876103460823099322145610193590152031623548525698911851892681867425120377201406190612722688736257822794877312496011699592473256360715731387970666361125378029503662158414072454403709078453231904055368098273799074336855495866038095742243146139926673187499525738696190036432323439389990702459154003273230521585021077803500512161710074924012628714261353943183993571870520170975732131298911186730367370620201248605196489079468943964308407776587002916629622412322541193669153488509381612150296850464861806875837690206364050324441927858991979668400830549084855858858918641158829792924355246598620044523365917493014771869389129690731436052992165053566642299853141110345859853105451121694528859734242434796961988579334082637198156817651845909474705819557540186953926671858246954938371273166861593016444396680352137313531078331699090788465400949088328115046802933554646003595671061981057761345536735578388705642965461260582992710408417009498551519191268129958639461528970070362637444000867820112772297160405238460760141142008381127682698567936701170921700286963101797784517665775890446397248069553646281399983155702503518953002123714380745823231405857955819338059968418418909802026218963469981093777930395572768658097074462617168909764558054472507282121809342161982784003055549130520376796794862763464226529716165066256324644840789208782605884489499123048966375548243241063248406237564474333935177606234882326381539206183822885273309720305518559464567687995003697538197923562101885062781002043373183247412223510803033110262184680386892077685897235085072772924825267491925627687019862551480107288097699038045463964339965068014678866588725377170368040999645040535342858993284755483693578112380701410509240434233940262682789273064634885797994425435795443901594382456030974798695860442860740667124859845611472170072743746824225945983460801960720194968540117220074768761384024133524476971009424476612321083203132132894155878212999450650469032409298999688903198141614229097466840542137661454174902994415268508545634873442370253377758919460590135645563259569643832283376190564542085818384758863314947989073408801882559889862734521196327423688938367375203352152043897267085597227783774906053052121131873991991799832514807075063280437873331802324487345476597264703263154426552324908038327902415808121524944022817672427782544393674398055538357394222089663019984045654145995938176172414861858200228967881620632483882312352386274124196123680551177642000513908178822000339163332356852189126766606208532163989794219280950821805507678863469839626178961377140645530153129280631838702265633434509749789599234545297586484513898840998088558611685393056757148879980004180458430445204109394795885628933136462212367069043136116759932542533786388490168152719669165814278192825571599057124842313434891188086982586927584468240383500773948355900705818099634308911699104994987881737737100544855518082640452804787677412197116720551202079617478594298733774730240312765715396935452477716717026103684052930254309623404006768837758592166395683800717837993909174705923276890300467248138514970678611403697771016595343282313468863444274705039885882597528109359568526421824069139028085065311757530831446725854300656166382766698681579290608637537067719261642607594982615838734796966863110414166367098269590482302581873607034127634924677032150261129258628608765846716619631015272578256415671143752152797598612466616122105357751030288516866723065183406335969826741190258618629731556923160263733650434662348584878095098934861671281618281733219808629003545478342323675870968486547114758080520254299873233976439229311156989382341153358784607840517900835689730645562101184211463485184797969386204573154699560223655727706576784400390420572889850943157875477043285247517161993048389716305692122304359629560589016567342501468738842829280800737290669045857663518659764467695354891693506026019513775548177628194729042812284496072781990401283056707477343639901317178709845184124329814675618287863722594172935442623841804461478314085119393539016512327547990360952269789819597908756500087709277788847792692113230564734692274558442410655701278102303335420600000517811599138304685470234432331842909670018058534474836817929974101780193606755312317736663267751399639077464579211867781569480571778960109360188532466950182783704868539220248840763221416793732230081891555058529633391224722747813751584648333325324987413833626272615745671060171870513838239694877770863285182551386597084208912027653762836458344563020088495411647988826110447867973388052348714518774873251120005760018057872711225411103284179957797241957181193743809399743380914204156175597660056468169127292588577698890113885537554242110066665415824231873928394750842687667228474171749566644033688500769851114816721539704047460130547970941135010765020977277792672669274026920009016991010998641733116708571756020244268018412962199556757433153321005240709136803870987625707809094687952748605641437883315571674678862787221175366339989739702683680141501085621631687597762445571689668252075924476582569231075768720332502142897434149416727959225015446444281224558648444032363137796746300403666728393917258942115184243822900990118644015478222520156038345225033826093318347802931473325492640383606523236142415827103903776734743268035662944332836037131400928579043001931844775650929127473269589422959680447440160019661423095434342647548945595005657034363176882673044222465319488696638598149528624454040720273992656506682672232117148959207349613586010962978962591713656490326651520400115384463355892790589283809011321727121126877698089188941229693973282750387200185770029649169926784201658410530918452791482245573338127570544972885091376724628765107747056328967190991257986258815706140838956358828616200233752981662730067847877462707816966813070968949461879375595117682631681244509924390824188202371066995160929372020336035526049863483363530574781231357956998854240200289514890527348240349131034720829924824732923150369544421720441126857921393369947775964485874209095510042192196745392818664076366128072949803694621773394483679924656772738897568473004260461179995797217110073343858995569834399120112229727301662941827201850026009954318789855582840106834955884742309098237305100721895573949730339347952938646769565891463980509471546098223708336891995681796355926806727576422938710127799424074055751587479027934387467211530545775543296202831495050622535392918609758763901760812576945842117723402465013430722923476262645183711232887825273486433970882369685975698795735095129493634107775260228420392630309345702479072539284220999110920375502854370562089491845914252575098881250529415268017691366517675416382799559339729440065068404992350936250267338071732959771975518724444792197559279394351363937857865741206452512507095152158204840107424419334344148762477788234034435990085363166946503294745700440801416459457577454248959074795141080519199021592118299313506442142551865181613041149584245653751461338640398896703542612714654373920592057224899677653772042163415874049198178542416990727226506148484480787374054473238681470856368263986860431299560872040038363441227216249254642947427772310944627143040445055876587046006682702996770695259401953783265044233456828306319660044220857489424973363081652868542188887588809304600424190035941448217259096026790319375526635116570087610518063607711391052712741014799559330543592086308808577591199897035788393665671663813050239332925581343776750185281656408759310633991003763449106553596785321790044238780190127988732466090471729250671246440155333810598190594712798592901212983717702677312123762809484385402557516542019810603251337155876160551121515080283415342272200500451879636328982573148333024511207161453416092482479741721925895909347369295500549883021199834001092396019359985402018099725750628983336775150407445752919284545295595762626105009125536880906611221864419703086691262152052079153922037103410623691188240714838859994747403590051639876493404618382626572849028709819219289424335792914341569970892130104753974556436132942557782395457790416642429097635610332316949259132389642505362358360728490685807624557549990303826733193774231023165982290124603686981603733900447004221463083936539062245598589197742471022202535752059601400532549432199005813799766849488705358140886771831577029058949056840479577123013158101131946467317212922542920636955955586903028784632660982791432285145233351585702182212969437438327196907783866951612615071060159096463149978828381567250612312750192821628211746578490776170728178124314128545255826881026993166041209380984492319293955406083922332574370922677319964545529134364258241095473778956201098093415520311318968174501134668457131903902945023203964110107126445676727283490524696286654099834093060386556912373484604069011141379181487907947164460878180326124130209006122963825765355372602392434828297507964479448748860399625835230930821137536989872261790120650518733179050712001198468589068259904091645911600267373492709450942756338071792229325428198419234592283965458937540548276682724864441704026424877416250799529280171362287172683489808418759275737370603782275692685839691013953572266769231215879667952038240593054603053546684821179404686772890251536507110318966273065667442218825810644970635750085387304591386444676649660477847630180326511018473010874457306813382799574280125666572457974080756382214278403028572865319379595630806746310472604362414592434982261409972202447663012316044017860575857325960648342349543815115020755691055321838644181437333696473979356815345580908197765202310577620511807122777983695864443926691656315439390926620721668071905463135821918883876198150352765904651421579604103313196344712407293481572519694897585188061464772655371170802230318933043209845837001231430524476755278413989504028174149682535749691338753256552379720780529017865225018147590597381039657088751685412231259328377389719672274065161328689826994337638278341965857145213844953741599713356050498774930165418429137655418229337101271887565923262825464609242619115467256760760391365220162889379101097118585770214344477924462791488019438553173933491152407389346532621254717053195865631946958859290659872241686568482253889309107144513502803037818905453151614560661425794893397415297457373714007964909493211760928121295164718838026728771115523418538163666449704756534036861458858663352602175863904740482746088283759618561199192369734959599908907671705510522521790447740054192058782477954290907511108465651257438033713240569759153207397700893174743811722358596506044083722797233036779990033836790968908081161456622107530168609985603169456082965840060639720633526003245434283392428613575912102539579063554895963918662806905063189082377916096042910771894494722090611404711876248107590745947124770208659280834041850205078635116357789491453464513729697291696639102845468870430460542850452114623861789347805444840406489810000380814842940578539625135937905940504244520259050082316161270404884498349021476315478262152722759800520529941212726759203367223758277747648026732767751393596539889577170656650283556638625349543973268542260575740370468596981209441653402404040140479600750258354557770101973150414986206014148633566442640005785121476910496997955217158958180282183852898584280683316436877688476123455751694574812076132565850579996797233084654794784086178457880905641146120859071696356286402844522101194130013769003620989898643559256540708855439010281852816812635557698934632010122498743920716632539187710702354892606929843790671878664163639931144713679908257409615487416312545472499519411141715410583445491982036110790216851000935379340244153020039760143228109337213648120161901584454477012397740784580806311126230625982188414315399653647143007285649842745476278652625792785113826683727709048941277400015510431531992307233452471331093233067345329024333433398839631400052811545772983019341168193903547473263780179865511413390685373036981512903340030762377685470037159571737819831022762575469714619776206034411433852931580656184778752182475160071783371545758839519756058009954355222508586848526927390492598989631097166829149013411540463642238427603581267455307833846988970382467192342798335677587977888046914876678577259524220792786174929087874973134358116852866177849184034639243305512021654023860663432730321250457486730065461552425009921983746133518944060875283004325262944379929847015902367668863996944992724309049576650993441968066335708716566190359517527404179422504890915624257693737795522722760148122247761589775089916123124247363971527447224919368843178726377601232031324893571349390525536816479311276442980473595808013215010911290480866573177612818819258280086908938356519157041242567065656675294615022854353197894921720833051146107599589632878165504043238391701155919580533795356144882590404718088945901276268463208666806026852631109672231732597643051912305519577971518421441935620523548691695841458873761500165715930452509208362628080667671821058171829873444863219893820175033553528808198825165529062860166748358753254742854732475796217759993756251383735475362433637327951618015392674696079557603746345061238597523360019796201901033644613945181260569164245959809391995114503023030013720351121651737211528254509160902499178734031441408405242133505835747701605890633746068462212161778361412428423628923218508799564502528976748486108002052728958578652038742470526838534769049373720410573692779042061589429748085329459628253964776824881538385017502759756558979339455819717877004489017596826221829968784911756865359743987834180611340790626587725676080746603485874910498547645974286785147233979134251995741233587197010813104274268869935088095668922696336324100248916359633431938626191374080654465821644630043779743686507727205091686941934826289395234093547538852152431204617612339091987999415199353013066567117114985763584607405054336781509394699867974140284401583637018564930607873494018021886265139159216973012719151662589880003760172012303402820540742046014437505097749377476612702857548858566233952253491919709334935835926506985083528820573543932396081782201323314808067147406482136126903043440877148597388795974854733247420510922976086356695625222553061009183729108879004322512976811338236774939596513333311930951630400859738466569568802320130764800338860811556400970977910297143714051269509866317525171525270138906565551907993674178812855852060527852748784610573040515402865576688663437505847123351250853705018995779425675875237304420064785547424315048408432055554993960962952309377312862597933937880198565161045654660220800332217221442324439223610061763561834973200332695285263402023433640689881740737388529986034601372382502425788759408035177607758651155483610032561444884976867534048115733005749775574130618775862935886894398472941987374752636570599205357148966624481666865418789318329913540376483665352631897396345330358510816285285656034939666571146494296819909660767922828332336620735730638518996474376066605766669578585265053692388516664451583612579527329034563278488676242247977650141448648478533794052720963765611104413045391674532484341157869205020088806915098336389609296461401438588975606115271026855973472184093186323205713971039059362313070470685486936504808965284598170074437592286346716267105394070788358434640554165937295979455973674225231040187398373479903780236377488375199897510137066635221583745196256736396494188775575746154138368559996148897537066699593204364533779021528530493629852401333387524310364179622991744683876612051989173805377743953746646121167272586898488795971135071813879422160685930212509527462769382915429814658414932702667531132433121133401141746961342154208695162189104438276893306971617696689981736257040964044438079846444074537059275977150550988570674019177359537597119964454164221520048241442338720671351955607693495353422277778120760349177807613589744560549995911203641126381451415087733693824396756294688540986657755809693511339713375979378883355265649617110373457868481028292869403676184228643663649552897013197457461901622623955955364842763808004981605313672964892465117563928546381330656885218940347980778316376900734934530893301299808196056869682734849678823743053273879390717587877247579741510440385202001697662418029604247244919838226509345240500722102971779772831771259987691525912915955992821501342826817730986101892786233553100867140261092664006783655821044332821853008020010898435583235366700680186663725163132358972505827622413853288976960092869355103085495379726593740920511653052546363961576706385582637764641717163400425774900256440585810132439900023551038153172799052450659709413937668847142813321726370568683950641813657737564368862456835959036172389377709013004541949038661699715244905345488910088371014496833774773023584010009847824368980627695753168880535861632331751404791223447435881596117407690281742574056249797810198631297124945349812452325010269060760437056532237614108945464410727829511116888557217015327420706946777579952771038312851524809715840110884056315850810600517426409078648875841210661948807122390941416240202009764397886007061995844088841589070799470027019737507658200324619754619340865492438012251968571403670102960016794659368122101420797171273999921964229936565063063662153551441437007679823344458292755965769413267786517166824953508889270872769684794737726334845426937095869058696077701632996991121176943781452792456985794596884520087110501392055781889144942876169332709678968218460479284723771429007696485029628938779934044410997153386047047105057002666419675041840685773310862231904067735354693719037333554858985897437058675615315192304442352095586584405755462585864659231422391311203648646055923204375468713845368566278016058534984751662845250389285216764085287625005509667898358305354468876950949633730642603391806665051381994181111223843195251099791680008148273272514226852816832236352238315578161045361811931893852088543909424119761264577655601365053917212592531358438961340246918013412799735409491619618688061826825813029901735593528727734869504279624127128207675717424773901037086681650093787558346698323401863404317867319061067317611667895662512387435373593904803940745146996427863095249987695359579581154405211557190089837233183001404500859926393299391801566219885897230063842022594669358429994405700229621636827943436345727724618332003367143186686128078620882484409407499210601523714002360073676250940447099186717566568909220519878427986823638725483988471814115585621455990694057109902478943646206752627679140323986834507576261142814759804935539342631049926455669533083682981199629927761574351020823468834556902679811774854964786918989361906967698640435688389822254038265044115393844741101874679796522793201375378682263998536425090418318890727498634415253074576716503232141781601747918100684335589705211869812046101563942066233822871132714890048692762025490488902164795589726518453579191226628181692694050768361547827941468936386489042714191774954821834472086115958279067490376466461852080390996787373253073435683617874655932101800994397353631082938495437931204370589161832308391970432463510709398926940764535663119050935008305043344425206528064599171306674947224116400197253214666029615275368598969400239831249343597216481486995611710276981932714827905153582020145790759964216173800571477130982786778278579062406748125940680271821132519318333385902716676521153459094725057812244133703158138519765564026707942342324220912150513726241405307238946001230138726693565395748175485901815189140500405016887162984252959526222562418033924488899074709958766963672309556902291585089645531004574517057412890034390770274624177644922713567022096465688378327964464775025131460894288055659978627826408244686322929749433563772066572172315884795446456164871595997141232195073522866148968092322671764077412635183825391565414823448415789973773721782608384898195150074092823226793236657367255105775030582326768257033238232363440928349270606633286151716009089724345536440458929622563878194681369084353328708348565303872239971250774950421456858095853347336901651958163174841282551687804451597714585925288732517177002238322458161068095927852326726020086274478064380269756455225920756456901020842423156980616513367946069206814820396252394248496181080044975153989185425331893764833831913090399557337413874090383900033976773006740946249657127942385755063095412518330612365234768243183880996583273603726775635573648911796735305749804172870175107059962285806624332909185998141830212009428659760098230440696681067802856173548341777950690557575136612741476285255858245694200427800515269904015451664824290938773067477883828651982906918598508337416604074041456381909175210845227897798715131702451736149016359975670255751395768811061844050110215687056570059738344820776525607313381452681219742383618230348758979077097266755738794432652903314309877405152433516185209113844871472819249974317249800327609464858663437782163781605472422039078703347780447453340825838757804021501074478005274604447244094067534181437864411416886776223662273321994927144043365292312398728216649547631776316621174410359268943951838595148186334233961600943789553784573696366205388144834448606869330218028026129847675072875838267320612839402728700359982739898821799262379985809629776067118854772435978317044090562638176207909433557462411023686323400009040369545797209421097425669544266337782001027507993339530067300832376858704917531910597440151382006104975472009034856656445218949770669848682930536625123509615041866772299633266989659647588477258575205864321372249227839419044770448857657218285787947670087825611708257581208277515813398507796600744706699451465568229642115289480710541954060092896604976396259059279785594240472702678794705746410091368542018420506266930963731453091911350858101804663984292577033202503303005850745923428768899768517128038440213343068224294834036790589714519517407241005739270263482985162736764892771967535858389156287434495316210479674546898861239655182973433859321925025470656461383943068090935802456364537992829244519819505111402483693033691695885145806438577758950043203527020245187236828113340080019156128121879928106335905509115598499439404009632926327956600570811333748525442370994607621346880737588139519673086604525962336343801675214799819135912116784928694241845374998167523540099914578366347098865121865969633314189193816958269991517965933436140195471138589526281518508608578462023253276669425853732469288950467038444401784229514495489821683127342996485985341048348673167748170787462750733421768766122615513332810257039832769058885855343487437355916922862217206873657013487318335683182352720164434730792010145966991086820261107990183357144840608450468124139400026977497085208366881007582182985707389576083548452580866413183585173237938430125137534263914329338385467347008179052922197286086584638277193628140366438063538966754941076212252390519642813616776940536795229672545806108004604840590451051694463981226900007031462743231313922454633854879134694298763080541802413670957856208476109213322583314056940142898193388746604793860850542167820648146085702258097441525873240776676183579789102585598568220701531261517174364204560300804615265793611017461054694184118602211830693223938246246515591508029907899917684814327202123895403686255306896890138501560226328913954311979897475746193964545280520469215825975832552272798946868637662071866801931492661032323487899869905885435818830739505313499961333251685456824369091498593231366088595956174611034928411595276542465076321025594359038305449639694752221059414000984609184148250006156831402072883026324281985304124488096463971510585827886816082898862928391955141398264980989790224163538495768486059147920045474527091126141643713362173087940448569297826247500943977649209623876502919336459225553849999188496575931223244315914546596941793929553828132118547160798136291882287400330245464610892846207786224186607950570733292976702153169645589174332251923443175068161961801573743860496773493033492361978701961471477081181482084146495148764018802325236663761335220813423494295925238330896975532484943432567504722028407005863612847181115566199771851307285565912918945983279273740467611310847018574668064345822457110443441875875217244939825747396099787880269072961827110909553042488576742337971197480567606462380643683381404684243838446286020404721402294361670381418999372241706891983881347462320560203546971114526776250279558386043657584955520861462470561575340978076614959747868836317899063478757021829907024351105597123496723930664317373607301896261310751346160790065751526272793562962003190443082576467813532237675539651807135284063535147738746882465036165941506467260814470956578057564119255923264098071554277021104338152294678943903233334458102923552300953880021745395541389691617478398592462935931948436863144031608418660247911660890923762897691812767449989336410261869377437413708476740239623985686579809386102775210120616512804124782820151796586078081283881159531332059592333959139415516352969944817906607144578625841217971505991315931830897484854332950082855614565438593140405368865628918234577449818982201178076035403375963465585309164753216590737494862367095647985662688018759960281105189885572276719870650299278201417280222185066497273317234645484123947051415224474669362774953652265922355047002175143716146660728776839020694441162301715383356584587296515669815165350045868979064327272463450797744222064558914458400954892032839656369016142527999391526254800002929087227319531374052873751184284627063373101016882142098548293257347842960718760006058914928871771452125958277431048345541733670462336054951166952245810243604429295689971280909801183178715245784270871671187695926650913026803607775929201182072640278678706678004582455526536243565503898311756242224787847418072065505870895259940361375182074127830243816829293163949335385918884516877648644842318386364408379407818377898838392209716095149530360322226484287009096014948117503617416176995140958975286421568839046666949724203171730522937223006117240515264629752223866591670780442426714542176019398255038682979963117009373710519947279224194577057234045677349363014059849296753294174700242209153067357013133767536009067800369470088519367973957070722748555930677274790941906131938414373883498152346401103220019480929788953188874793171734414721360670827621539552985813520642885051527960226112377134241448859697335034382787590664986455575744677678367819902934444553086088763872681194431889381287807056385052286485842047025434625706261292076501667682521756959616395259887861526940591331913446645364940841984908507890905096556853203409429324162919662618839822551553509392250547078971539899177868107683458605373150760608647631369076541544130071154171128332876817787352100679440798069430871809476209432838200313129495991650310622450056945553999405699240679311314557741412922981546983419288148052910735910907710502306390928349032161560085223119761124681829955412729711088305563290116630962481821238015494647662331005503331384695949959689698112136962961172213876188813016025250149598748434432548802735961908212871523505458121379202398776595293817995155508098066183543851442517254617315101804477036372243353000887640452256652193408224342722455283819214352318712873130059417105488835699979376632380575692845362268890979659567061348950125677025020389655943786722898910485075123152750641494918554829841996180477489541285003675333758555974815064839884769576149060933506644942180924299632682678084463931247797616196032011471403565331817289950525626509880781667501514410476213081368805046682841053847081703063586621095091735568364611895460122453025598108924096707588852174061639982296626016790605512620154021008016466752794419647726854625205003648284563586726516364377651135939700592417578595729161024177447467203490769009930462813709823658635334026894598626303014026238388091262839521479820397162894574480960840912284534207322716598105967516032731097345543024333425125624502425880460497623103901650154503665004699633331606948383125949477203656691075808025600713695819629785171573034211038167153639629211466415281966587991238143408104385474730211061500933370300054020116231851395138239450529687155002120648597813419849369348386135503293938464648193869463907074708339865254499206414008383618373410707625488725602549003737855493505603720437347381764931064310284300743063221690441032866390074233560212344244301329349530845024049454051122303670518535058237283832221281664168564390563620999579781232355771086295511487939811094317521905492834296978630790201779244549484363962220452626470415518560799601651347235273907337254222543705331099617996260449222268768624673999194263173403237108490921841934712287379936992514342204152885194878588837669243611412180760779973450069622625026954097792423337404501340882845749073369606046860215884527253249602443928842235263577700046466664436840472185580778422097772593402690993483852968374042167910119065310635716037611713471198414606763070127158405479349429404473826456543169067696987505047738579223873164846912802355773381389791026344583654717319494060665496180676697150354406039345827054554263649644019650867701155322439291921536161310239839099083969214687173420220809460141418704977002136519508413856933683403911645498536659212657230821990508317282891969593527851625693277150852118379932048555280502371253891554016829090214794193961138312192679720917299393070990509305857830188431382340977757339182855602774675943330752025764428204491153864257030339930962576262771963741553694627306332716332921986885042857666381295085292233134892989736745714048811849223557282124622508142174609765614410842378940779289694620546494061437344527132594371285628640410240334355425121318561524929762281034242930185448420754854721680610922757712675129117270289531636957600111622019952011695609927769123689432393112457207071752664120418911502496595862786847569333770903231319831463485981414192619619167200898647978408230824601258733174364476670763734456621824665683973850523850196209578511198691291443500691101518762411604826087715613587974081440745966171913152113919281595939797634392504683519494771380452165130508087119671736638226245437265487463050490466468317568711869148608857941284809948788449998707037665771175253722558222529081481495235781507044814615396249772995552793607418988531137785086903945927993440764715392662849392575348874486149455684780840406389739522468712518966466980992848565090755074004922138657795272589979696140259680211407735678361261648723317917757519654174566795985466047454581247453846830922938085635417905739501562309429198573298938162800436257460254701948059638563142287083364858863849725413998432777085863992445270369879291923336632205800533592051440717486685947422922895514178628489762057598121538342703997214772621262926880843775921389911609544011586938808817628314937379761689678440037712483646884880794927382312377446582856750532203892255277324027959485822404446404263445868901205031330976936871825974773506156881978646066308235444462406372721437038035201954906252391533610052463080756932693973156249528035436713283392504964255216669135826980970449655904955779530973020994887973988592736796828647037247739554897972431880471072227514844809570607995330937045979492502025701979488250777817524493812279268800510850316878411099137181521573901525349047568688049623789530471892206647268569426223489342669941649825302034292208061842585984940414807339801962367926597472644138936845260413131639950925560727766584131612569388681740491623499837222470553340730780533683363424478382380484848015250152874837568695911661886527890664569122085168592619092431184664655149093773833207202897050564227069934415480820600445381681388545607394344372958736493908037161451069259862998197456920476273084340976570591851117820783150349165315643345203691429306984532106560522683594821418418127450628026708462684202834523564754583046630891929326021593145124155096057676667742189523315006979318388163859848272355785233605817657351050903996461766776584046736504089806440583955603448856329069259765040576222570847428810487680481544616162319808147752726817863466190932345327326607512702654809200570972833387633489473305111518354775260159940962945814169637619919161402189714539621297744778097860468218282648063438212019469810347646972239344702990092614245710036043442182503918211300373579405634535361599187429368065781388263680533618622917958349768023764204235966326060106406509776416519173572049627341009870926497860772209964434910647501682929441554580538011157273112520192132965315269970442478210580050238010836654373784861527813962918213100186975706064107773852592927966231557333224601957488696486915306636634015330252135497880958984950143192960785441587950872315744846503827296391450012044227347822173196696791964541560775022776760987633616212577019374175017312196614913225826002819578310446948248228950820619814450366986404046236575048947030892985456447727434204292853841878841994093626419653380393389853224421992952479037912764037222431736004150645003754482997535681035630480223029736513802632985566547942010564931522743154240545874236857906231146814141827507664773366501197221180411738752473250832400515097975602643121635404935449568015063127155755340420526162794357596252787598430432834256099111843664919207044535952716698137977953471265160682179997946129590336026808437982228911018660715481771539649743100119276273702409539733285126406767403650800960160435502522057781957036411813415577150856301926710712865223898370253152737579181352544406601516314700635661597626103092699308226094129562166907817664721234363480870174255988768736410987134957976506414192066790691856982329716036601477199261291677176097524154293442324248542674651374824503721965385863856116524510735954939671439865653187549740030441270760678457434125394665343804550126693859580343460480534097066142606652381219432480624638277296998163345172690463471088490416195282913237427201948447975454094820687010209933759821923856260307328646024626057828999165414084598471124498596109771001496119112138713439648736814096950560013532640098030506228016488853783446912785894561447838674743297067814632676370329841898028033348061706644952996096764057556587299561264080885795648313199747072767531064112521403155199373621884960928337473431087382418345188760299104497316315505678680113283537455626908492352150189325642768455902779142331584908632452343092948990776857273818770819353949159466774140593800901838232068892272726284249760349549354532169295328973266048803442040215156235175350322769362707341323862524243605231770650767929616093996957439997175692485877331467533903205885871047236209195206963947917760039090224622688679977215983545958635842186945773039947737245048653122630390027622061571940987544581817714577957834819178273713148646535434147727823413346731751795872379685994762758377549170712658962474432563087801898588885916142947749693568127886636459303251974233202537408924752925159126614402566025160206906785793965719244796206035297317120153136477631822446487536987062121369675391753797124820077980835264679910568533152047779444883291889716914979839484511866393162271370319000916706970308033977020060362276276513642586752848370456795036864603466711397604331116581635387835798313213449454047535437134678853577642606514311334682992152684524323546090317180764659819354384936890340275206734874173257277538833595702327267755884662552838562997003573546595369200680513139566915954132211321264452620702714077209757172748423158003038910467184764826019076814717352779035508614401720504123864240504828201132552491237200230940111883938800389344308535731470132766956921897997726601568909301314067666925921784498765578434350113046571558809470978784877472203087539674687031564032028975083412723154594304984798198736968288602363803081515174424316284579907124298155145378297794276921889624152103648501473134418385886021690088703292418318119160023718297844018948348562002708243753608326578495469316495838110397551926065785616913657558275734021198457102199948718216428669850170412072109305088066903191287143279230483729305790522857828608232386882850803806207446448650941672332265085213096091541421079296891698686252698926263027751896104031094731470652716170916305675096165489212112196998765485694295918542745745030498763524148579652407567231122834509988653455259579394439389277045868550893046185095564100200404408742911056779735012754742552463416406592111709373175222678749812467455492524994101936457668466796726478707014227304806244211888380186431149547359535960603859362846353987691722759554881031275415637090159041309598943419406650778900127847081793574775676005717673636356288760716507707076025544240337717459522989088002761577828849571072968677378606026694739952981095599839750854063756702539439445198812388749510839513861232813677274394767394672271599972545842026016930439611484756981608027846073099074947027001961216536920641812845697711078077821143822849397955609942779253299314742765858591106257097027770293266376742203004165655222359269576154107393512492971645413680585539865480674743561820871118086092404555986500797315395466483393980051625233616070440021845313858192736025053079997633223784516208569333618612350532920917265786219820559402693365999922376092428197905726802900605617911548050749454220512827801079529696394055590547051725672269382071197569931645537379159191450173061053679382637907808256738351257382700703672856664571001065991292553786340729776003004949110364405940451512362733988279321508061292297695818918256083379963800553705944091215767173322977219834195225954889370431797694306112502050399732095181803501578176575188495106296758780297844753756998193000768976891367106575059250754604001944782552470466825851614064697955687514725628015039219387460336201152697006136165263385755389997619275183386465413817489749921934698370211486107123489025337322684230438783984775127980997073795848556565626828757691707776804498185555917906119408846521727865908277985525587445725758813368585680759330522894665202156059851867959043376350664455188953022618094354353558580226661943350128105128991500789236197531362952447573383362257335544031474471906697297011176249255133480338912164405972182733378411952477866397249056909157696216655260778228905508282313140772145496929115605064222311189607710403966268904152187408130182986116213191392711708803411025576339234380550126773432548146359235979608680200573834344709708662323415679091153333174745524258574830384669152648213894806783487392078170175874226040645510684643289654797219262783915039461971566855943545129246334350693559935153109090400780439914996915320881141216693190954662605268680117675937684515982281856633028527645164617095761342181991674734081518617601556060306340009573210146349019840863887528645391439952468035687949489761848136132170024026950151228907162679309602580250735717626538514244298850775704060959066085142725598541376818588552054531347295672985129340184801994479237707292595155132988631507403192235004207607867830415744770419608652330313181024374543157673879777364691009169770720098226212829598061847784958426076443912189520588989177733199605167837349721625359906413914116721350364705404619474901026359926349955937935294267971321163126046852721157545840445782465937078042563005065887018685681572895367328203833295235349561038432241696459396072252280717648390131570778875601832751605084303440992009146444054928809310563851883766476301180022136981573026758166485673871303982674811844955831654543689293738014613375769289999481869107925103276403936455607331370543836712224666203915998554148908861101266076079880841309909182420147776336404064238874487273253559692485956116818500184992375204581515484530994812650939220880858182598945754717112799725431784243466345726135998937410201860974424742214737189985786818487363670327900219020355748376978487488230278008488546137720676455393459988245186734073791753902300918526467030941960646809763998099641938243311428806689200993846813444749726082476972034909314822431115417641903238456686949369598348566210946838686893999561485580788190665863797245679891836200165970643921311677587986663921495876326695973683362939930693658355288059348417179072974395898092011519779557525681417081162787404594070750627498922631188724641922749687561699642394066169473703808930032731566265253095719977048883723630201941185407191816659593276931047304433341430234964227772676534493257989881041142184934402540251866354585604061691289386036603178252956270337687710989674705990419794944730764644501128574963546461439306187993208669246490143028209515942592281984817587082774016176843996994662374148926880607189549965132545010788131583980703622763494136419569262016781762778981751090942459301931986968368191385427841464872141651484272021499160857571072020305655982630691873367722034069199929461719247307886777430099104304294432018756976682321826911707835226545051361022161630603212395897354018350285780806405052461478493824657037275043063090263670331521442999409748868966051562118019564749843968840218898935556451978225656141978194147643708212629539195090012970762752937381489409018628855838191208398460546479197572028804087153068045772503218144498811959020823032072723391079933789436612470717286702370350981230807064431667035299410214581724440385300285167626834794807623342535772292885479593791368894352986286845515940248370554400022140740077960367763831837387177307156963622327841776580653964791815886540832342033435504874215454866681500053297138818238386474374518792824262893513136382877462050657699849011598897799768553316280296759462016395879202332586983727765589572414514693074684527268164087120675599825684489633151338122431244446313954000277883709418887395140655506683075948398743770392072870922401082624321234440408644291619548953109844921810962950707884328982752413138965684715695576099508923741755262665172852033874694636172453862995844383847011953852336749623488492685915508737452554850930752916480514034873089216083371635044023777325588034981041070352475550660421668627001123358398915341909049109760812676147426936193080097053575221813951984528762404886000677542416129431678448811686407975484040033223290729264894891039971756579519466396437755345001458956064653763059571910631938409918857527823752675347964516474159554354211058136016401181814539216519284030573889796412478635687149568155668323417375489319808066710645542342505750764288056407514265887028619326071891650907371905544354825916950836516879370414340079501138217495608597365295221224252021608109465516363546293626641873399258176188085481047928428457272812629716646707489129409653900377410572905220698959019138434898473614055986189444605840662838914190771164689497868502229460673530655045992735122048386353359805672682456200094422707563092776483087537471929013533598024320848337849891278701865067150892411896872780053699863454195939788395409820123717154870570369386842383947318568441919921092381312987376938591024511332524101178802795817576520960493545176639281377534660516693980215920822774885482594199795354526909121555761534468738956854483682183807031868380648973844991439269715669543626512386895058740996811294074710287838288478080409530933311514059765572475836285525650559346113176898670360162742120916795763291676416322875428143354553614450952187004622021828776805136622928364915146803789346728402229857403312629896555706125708804586963326164009128047428815586791660491858956448649429126412636415629647802955278823976721714194813550028435739741638517701540524294642554090779497108026032503722288619038622811064327702486594304116509870248976456511808248670931487125698564127287121087679685703239238006483966263083892999940216460436265535308617291019155826247495072702978781488448926641410281723774544960485716353669113513829229230352115373119860919739791931210444664251285381019869034328237428979199928820564892880841292559965358065673560952921137170231593373965200727373141530496387660079624474673013459494915745311741151445345302477575103165942689086547300821727539521173942887200566961413807801846592200608755974632356539855183715517283763222141694188561037871501439905340414877462927341138435910279525886164402966846820799254315392700242681697476226328966747386275337484131205621394787348867864545521771834916166678496631008573177252633370068267572641568447240556716225968277632237068450071102680883290817534716461596509338160141043453990916340816933575018865993018077539779729285226736523394222727827260448580511952946524586622540187654506473473372076023904072783172475020285073667297280973120735215955549230849506972804523232715634121389287706133000281833681276159261445225107899309002811000451093202443549067304074924191938013280463343522507747450634352488004112607835273571297944230329987405816711972491278786994091825839099155448895561758830794867022499746925535927914299364366356265666036099759003294863276636334427673295482017562812484068820677288086991594509456876215098906951221590472724883992658013814994654887727054959855110460591618759159353980230473114074529230341043614267209031300631940326282893297788834691700633571671896187230951324961535706664428833148185954291700891212328817294356734414849882402790738442670637002649143792693365846107965285295305653350705041158409937787644658422062072528895788484766434587155267032495248582216493738534544492240924954147340880608375647900960021638273179041647877416008921151513313775661568389212533155228978985062602042699926334717183934922098118467628236654135809191728423199721177644692737191930295322402584261905935260238842285963232750954210337392842729413184021350893427146094119100822125402675296107453502525586313794750777921921242113085935131462594818072245001054478117046683754244365771399476889691665951041377885975686601652679151088083426076000632324156488508984157570162331476828568905679074430407096503763730927018873603358327223496602982915853061216580592961791776186267886778248518989812158745237435998703922406064382396150857479750771350143069871446420781344947365521352433588916117932234722479825004513814274967802998439473028850976455601815833758622845903119509934208655049754974653451652330208406945966336740520154484144559600849310161374904786310735392148403749573781508333292116843477938545799868182965789227489595271386631494247325410200172248722625600766332702326386794807605512205773872186193177751005877092208447166082710822825279959695047460839328845054354999625972606038393693824355447768090494643936389771388986244109997183756751789028970441654887505975899014484695388804653018449314521007126322675645488724638828752699733616392606647631162671213956423109143175137742315276533986131226037209570290954973905999223054397958374047959430694219124005484482539547820670411807405956584148624225834175868643574996251585081466623240964956216044670387775728137643307793978932124642159541444996413792704914097955358236594480711091994294865580220014259195171259232877511390177959312398499479226449649588665020084111050161162433486143266944338837055668878463294639200977462686897211325083868763219215216649021430041846239286208142110625207232754613241323530210077615220137473953932366684606570333296650115669375294364077771860614814155836158798558425763220434939457738104105341726833079459691295762970776317958972984128265074096927919300734235247645030342681086199711228283790883716261989381877286619263412432842708277347677620194657298535148693425149666132558407990825142379976905804417553013531108983560516530363786318428103679870029246910745398878703000978997842268028789592568140985609844523627085857743531176464068473685482312994827070199336818850154816382290908164376987919489008008062778363691829629424909598813424894160174613365138468716206985686458859475082243898233828124469447830818477135715291292667946055938777791000932363482083106974612298500724773468137994219483843456908796328056437419788957268102275198371910582353771285453702333061885920514846710441883135254628211784447489923689940338515248669642400234136878099622774502404909346883141839757945148028801415588339837286661782593062797839796070722983967255686230567676851207097691556058232199514323718901519979395394417806373391372303339638050269007550400148962418683475013799519637168992042278970383728097166810887234531434450541124507839524824635100020289790032294624025699998594698426654890197125708028504522252898322900122538940868920099241742118347723856633499582405828103436909151041675246219344044579179246481988973919995624750031943796092411156718456549824587484663757090643295262220614451070118783765241213680237380195860304837628590057108551090575339222505166088379947996600842636173586493829462631060036829757059947966654574581308499608198777979756278122881619929836273807480840067287110705390547553074470737925264565626088115624695096040040377904749868627001329297625258790637525033100139221656076596747689893408955468113363933144183568711134441359528758452470896950372396400030631722024145936224463129450438903323742603717665103972614279148603514416112727147199818433779188502178045412844862637028305433320815786903890743733134258885899906287650538227979671757305286172791342661639527489771111014270561695597361551666475901403624954438065321486972752912034686448540830370100409399290169590922019053917348293161766560310563430004545123411913120280222412560559981561676198779510947355099463995233840414067087727483930372378576204653903219559893606134125765840083047332989033317663305844892794472284575225522854424665716560685415639949619110417922217781350020401350299072699326475379004991154013979555752086096134698836179350091592473747875000453979413755454958654464493843572598301273550424608838689925672450713178716114805337032214727990141533270276315909796444246936509304267916639217954846034738067678985514648231540621131096831729288121311893988866178901732819212766698986377070400823411733265366768991046681273096701119757187104873378451569553321121224656241295913776288341389701392267241363226025546024224430645637449991960090162043305700209745848060812478876813456151009228066497938220752243399903736760382677019669476519957471559495522711827789794203529851220661333209397838168542008330308442615999537910560957591004116945398289906414238705519163432507760430355836608849369705611827656640177678607959677815365990630833621581026292196914802412305924939022040989953194282013558408973786939879958845457020718159375825917112627131069241085728718048684468273597955865730056813299569027996896427977995440406044121628323529070196246279786987998517769314347601808189683077561806742041315101596027726900237032146724836539016801465949616646457183401355545025889493209321535813048692194453904999689845182468241850834438445625989447300239795396261046884721983759162495356393548845231856184768152084620689881540304752118207961111892263027841280947508002612552977398997994424261951179187300644580953337450589296606372820692758769034859373522957139949132370679788045665432812422295146090746106031735126657877816509961721755768009910236871502122080563970509662010332358667128309001605057376265928889953358489866051430723382572637137024167245773341815136114908282908025173108497285856560015956075291219658735872149400820868337213217349910887214880038311510869227898460892609463946812299966944805130485394710802369521159870988785698480548932874857727969385906731490343666414026326561869164854133199577163084780995265436657960900962965639818388165593321658309080471831845383626623988604076891925780817849701752936045407268975871626838141799043175641998298439131763487175390139583116144451941262805956951871274208994475249828383057914863840589155994956693791987147217876915224531670346154676021256263029435141443406761272757124111145929652705070407823154473363380395953214904008073348486924397994983660712146191108319089534594292848437017719971209491936673609491063037246149447122009021297063204212320230023539775772445703353517508871710672710705786020855494876994857298595293202083558150895992480435598697480983811457314642223745612416745306128885384002456663901386453087147632462548361242720392068278393813647685939554749980894310357062483107113703823059722634682876138054244101592529205074339999281692659112071247308820573352672795092197510810484003282284674410322304785614729625711302924944743101750645228968769357878114669030653040926575891943934815396751126801552803880267994415476299993364550998756810667981284228219989320393792508417379345974740850305324041354701925998030296551645008473473839240533357512603372728389678854548363771954597553375160249384006359900815875793087565485236270855797091875286047236337506214023571830013825871170491873387263005832242318495244645266288717899363805168564599089831541573045155459837574229075850732698305424838871752662144484053246534536730351068321297311441899230619731904207283089532390683569746290031716461346357461092938883241768331356271270571546716803806500889274517786993722656674434867135910294504747716752655376899384777333149410468315371189026155800809729888111658822021900005786159949019469825963158278222481315494271705602968253143714957159153146143441369592949308035057553819139945872610987672489240106986371768486116279929171819530816051802483290844833440661367113631837983346241165877917128170677845676152728759321689467293117047204800595583263577143640389086462095941242551984999549564923508747114614772388336280140834225581806331663831688201082938008752688105384577524611126639863428656990540089502540566670195417140727476556419749357509138888827593598546992407826143787630311357411155328361467055443143581702141713435736963667848803104894980993224659011461729924040997592627066529299895826343446768343193829331961223510965596822792774356497716929562148071565567338497162415495021078255438148467918311143119500228423878981730500515846825558025034556392351611820137498234007591374602389580171082539736856893393774828319782513634311334706128316552840616679794144990480878528839308649845828393031067705771134822704943003891471121325697384331204971677553420975783240486586763477190553905409867925928517007740307540473339254892836714618333918731326730942017123067535948598187793131272220365872421136756642855211376457620006747341657024610597892915213103623032330793006449866414566367565777792304121838590898872169349052817544901039972154881212001405096956313515618805535099207103227713944230117733634764271282375201370686522757472246070535177192268766798839413131306227447147521193826169209749239141400770641611393211494822916498933239504512216133582065203233410622514709235696440493640074252216533198718479696009571595673781166896177030065156171813448835974684834136546778275412956378276627193441278898780220967145026565864503607576571549399783304042505478550103882190256430745319352516233895955897124990859826499368107203707811740320513577623846148709081173575748006848690546484617539897194141643259787623611955847858495935067113991543861497289360232877301011443331431266232153058802896521531517614271484115034108276179118467595237920306154543968183442785086055098283142441216237997373940902848935858115714170083117659055044654936927717909007126399944078648464243455122380957860280690840495324774788502980972272309093270164518559874976749144917606103591878037701659798907617973209773961552851376018933061089816330943830130802415135193871695036915926495188175942629499947982745586424182642776713534820631192903317707102167746978242640385113761924389582956089281865995892072901529469025371209173187086080076419942028813546285717435243737277068372903342369508706483334107601187564223720931716186588420183305516407366831394430768550843039029925833101855475286376551373100026111972392230633423596507053016421971102589249033925680183352919371627152385644795372820422411727229375028483050747644708901058190739738534634844744651958579640208631854083814558862438563831092378809760954483613920490094430652425718239655980281355764967989148594134234228624843794895053576246279869082992702147479266047882632747849916760703302949587715868698376480906074957791353490064366425935202614538207837760268733548602389557641139346186141470814501918966037215479134147202386889029454075543662975447740183878067765004570969422041141323480650182977085283531479456215826270338083778608690735929352656843272087075743391361100732722306571499471036577138890126727098404087124694463378658352550408433660271140214935583080977984494804804822253369761962903541571515875664596191650467632264431354366235881478441809850416949106363333618090488730468550896952046840089300415301819880670518262313910459306387680258885521226050106767169813208116198392138904438541896836132814938923842338589489525544158631156407804037924080754382417505630288658703967450497412877467206688301920467673153683662683462301795338710077087153445965154812156314768961465789953229954434411527077003723386696536936137624112932802832178510592064190971535476980094275706981514865753460066874740342218190910050500441531556035849027174417254233000814890975394649286530371287903465961759611553545496344548795774087358683338179364394137703913176879198805669150158023028360763795856966249183294178622369972043056687728952060882682905965732114758622588243768500832107603495826864451566127048899529151323900725045109467481746290676551327434007559694664003009795117373342417087005834977210875117074345599922106047696504014320782725523282214857441869537819316662678756169163874315820112160482321314232826108801558508089451471177099963068364167000966733161583748697210217680871050702608125502440977919079102502947672125690773368106003303336443158466917319268905740917437687679746620841890801852384370038527595855295227962155677666861239067997974307148563407835179648661542456892423120806589956617626355401685857979122219128841139147637947388617666645851948304074376778299800724626827028216398090453243220380056219140861832149614797646354296594574007232642144369478480818029072431321123800729922818511855283847881418445703340204537663019816415652990931282083000892270166585184113609010589501432991132131915377982324369318750730292398825125011964476559198848344152017493292647361353369629001546202312771343526166931883250846080671441037584572620225709388736799221397736738485156645792595084214355715951800960856141965284138020502455016989531828188445984634476988982880989239165311802589806849168823335509637092458999357774892943436110426526702117957212544230061352036537044693884327829963847687774983838542203590690316455083709438117246554759831459385090857231566307452095163454502258874329524356911991595365124904828046318441109785270575637321515296272582161248545849630791459340028382219469045267723542259914711673073212043786080289199166935551662367946868695060792326232712343377234598694830046335522695148561975290550030128661849971572332482326182348017863225281146289164930285800433986068656725036854837211855986176474558303913056437965319928796157594931558440756000539652107826138707813968385572825577653864785476533817257326678061999094442177377549520513286920114524247580585177057651484751487680210014804555855971693340666688667507835524923273424173860474953928297925971564100643501357162376390813049083825335171846084449245591721427499357956983732304393720922655378428290965508744557849445457180029093993295600361705602128930156204314548920992518709325207958887456175032740643951482707766706080147272315720823636447371296908704019798724001094388952593430082806859673358455401890300157504224763592099047542530909192921629785879274118268047218797927004602619058043520022204202247419849778669977217717174963984312277792721652474383119813606568810235561377144764270346157878698626362120035793981447050507524699320466437172966379322819725906462975856202068463342524967043855140502297585996518760575011563064695664582401370486118880063720951366959744572875214507188194005423665986775207729269670291867097777834163957708100091680904341853641577909840290338561662405781488571014820383863538294344168584011722418800095976597239355626742712365895888559855306718506158967624715088931091324025049856948099361756508362702843682683725918119327606386781829998389434633270233903602039383113848232063968673176256860129137473344824255055209079912802663674888404238041102296740772294548577489454807210232292966398684905898337333035778844586885349012577007340398831055087660456276658000370068450213268556562858335567904372835323578365551179671769591740194898439168905567571317804180382452860739740884404168443004200667645679192609582108901498818769020668117894702577942189726885533786653585146175636546664045469019965010869081324940525131350024595395043615106354509039580708177971807033516961865730000443536115461156906899900037204972988998361711217937838406979889754977197272949073983754249319186839746188397276202914848417271595882881711818790262332698608905894983156133505753355315720507185692731416515286161694961715252101274877331262535337706754401259255774248694044217734182594673486623623008453228355874406649702145903097083647285358815749306372838983219034107014794911240664689116684969101191577633344931826547210612319995918897865023529117740014430873439473442413208417624526102182103261866558861583521310772727711986947208202733391546721211931512519963669505407931748862627784550661535799095804756130519481841606143796057007946897085517313139638228602556952689981437147354728224765729678796449989355186796390457209868598491268393710575195657772965100240012154803737799685431838572414318486731976958923976332928252734550197091895249695104047435515603978833803080301499181334169106666748402786488834234853473183190748209833249070454905529470213594603134982757658322179768491291475011186998355625724328819261599318340846952349411250950053505017260559233318853960654073961508083743514225684678727263229341495648159308906708484408620161954390725464516466823269870321600439008113630852316271867190978160416553829697108136119341463157595618478699877430695763481183008224915664034103072504607497893341412799016682057801293070431942967843277345709714841050955294111134912203438924799840525312771716423413841090366853220865603612210981512698692600025947596289858678402839434077798356972099504712757298754358533976128139923673775969678280270132880776863177576114623391133564815308391040745585391140607274162037595687217018438742503365775480104566966541954506810432538337211086667224193314810149746165394307064453248425461909782084367469439232921628924697309030443480181135621523526818616352926915188748759022510639969122114688678081315149394141820416613620861852101489536496618074966758366349510472412485288945409251496321095080266739755682343313869258693246238531605549649585571593667694938388962112855817655514651147177094015745966938956854622214674451172923541337965589145666725195757771542773801742995408859512717681016045047285243861759473780151564702578180359403508925999020492512992167159871829369709751246061005658283658767763656169623318838854020584920725335646634187655622954385176818316902545671898340323198509771405111923665017827380253002633759817664326169219572470572285651881024787100110451180265739503656514023243354826229739997746530684320365437092928669753110215317315128916140776840071216212740267120661507239532220532252533259459536506961543749785467930573522123305088687068812115119811305289595980014251981319073466724816291524742863845053574368952211061552664402911800003279779522986618299845214385952564226542506479914981117189138673959820863937524329996180182473774259960064187882497894886703673566535411503967170324207432980781042770748269443895114218504790367706070640272114861814468210426717722216632115663057887191379856262370100672724199825785733581418284940668651318361264823144846865845838407292176647650227167866603988108718912070346699821873103656862515633962051944017262326306774160579695790974334887328341730133401953507058134141337760056074559884739089842025525597513015809890894473090999322624921289730912894530356526245534509915637011347644811581556469925556457446676490713859247634429270048435744076188536477588523815933742483097288218839307751613090431921861358080010315926749145003868318886750170271425197533506613499428008378889328854681178777645304170116108816811462086537671604004451233048789994691137731131271790915377558611937330530494239371260414019608010416254898447552975932510436485678665344917127468323403813189558665084938307792491905001677602708986796766934140190162183662887876865014406346803033063066707862261679843550062459036839929502110943332170624124741141066073016027649146936866245845272495740139441732131189673815086642622404792634887482744086906284942115701179131584646353617196573677323187278075505028751484190617679553426002920812976427627459296851350088422698824424263722512916850793949676710447250839642701805101504365817276294272628510352110429905306557333404721038999059572571495662244571864416058110754670578222554021469369565755241027660270313217359545755198920672406066654784807650436727736592956870151015204232550933456348539564735947630562492591854144342208791660576398132940920662303313520409436471288987076897436583380837711603259598828986684690563836582679500289224409612050896366624574673223713066505046039189076471843429162497265982735033258175247794627738013196589255138746204290342691085717739774937123096781604821055016832819750520237913676568821927418502795184864188681884641982063491224211539603013613039656230681048467837584593392570768091103716381126297298954894564769700935879102755264595000961194322935695620559845571211013915413783734096511613185434176123312247513782437804796380126636068711942218614506557529619586801778730973426497405415493796203044386056496531452796057038026448691640599979638752755345715306698740130334876864181434101138082871015074098081200530226763359431369245461966079646991912828519611473498137431561075591942095416096473914083189847321452943967375933377287888186238111449478669566398852142927299978585093008461907110600822537764489600603387904968228099389888476182054458659378811363631955757371145401301244552517772637103500680445305606767235891444288363939501110354289504125357131502667971986427332649802546010596221355567306554815114913685986753812854282871958017364872180288148694567743382357728047790150043207483769549432341664326491220040092554549238463029134863577495800288688410708828135467548214702687694366341363913652124670545810198939542179225242287072295493290549244259138941087583690625226461245402976444459744059580156515226493170301133793876833831364794190343541480744095726854700832736337099078540460802223119242355584991016236826221665500965743304689573663251761623148696321983415327912138826465983170269179405856846821421491424332116118214138180879454364873926115073770573420258177079248677681290073170785067499095791254251930213456133461078576857751143223017185511940180685312194367869035372377499740887907055958611883960778678190313438358101997165052215272162107353680519803383741315587576549897501661473360440806885689872248470160634309632792340951805866016910431681159171142956693982048362355278400743543259938542883874632014106819646664955931632732562931581383092016165903314948156241081238383335537684467934203725099396245508102697333782301634830945609955494011217772973074230249878024043268413142712507378776963224515450675383093830411401250621591810465745591533094551829676807590772143825659681955712917060242929833140987340835628342359280929202667334062051700421011252923287670697807226766795064487332661777176179481103017877131803676982855192949570221295466270269774753024677103053705126367714339260895862124180140859202639084830908111143943955848305432218508292217863599884491625029318996028443866838285854674646044773132831643742858576202875146436976897417825809677465450223116615937494170801261815196007300430921619968633111152321770562187353666145161308803415670062515875172544877342104293098816719904362041865442119340095868032656879547888850089927311471491361069544262231548411408414539168584515851991744776046880815017815770224473873152133365891922343286001008594960644324563609839969001724446528898070969442731576777688342650013223089912166783418899499149473293348651003840430720239204853183875202360602897146405044158658584464525338166220430019279364598631346767133165082367319120509049368894509948354741586846270400859412525961220780808219122461801064794114150381502351680478722076671572547637730906008671935060273259887153911940763874769461452642018565650371417974562181204499447327246684263337809618802974914867626736770484926140627537094685659558668660271133129893497976176954094853834021387675412635096186958276423065238354912029453089852013000322900494601127018687620659502298340990074195128361360040170151354316935389354879417510420360703474291717057237123328560670063877824465080633221552120935052255003943162974043304035231736020877350003518230106636663686497070788474253203640007604095940470461900163592654941964947244307855846164024183583459673097408299179584004252053851136369896861531892056570961024221283008064231795565631899793863792320376117616168166581503021491052060325215693330008468103334271110528786179198471519942131834829752599719715753791285225859211413370472996895716915085987041186673551749683648515149960098943529888889335470449922045186636913376708951833950706155760636748484579296607046097974072050041760718558340821279179686116953162261761122477694969752430491466464990728211475600092716295596097083924920309937685095425600400094814407730896498790203332607774462973263644284606122627534534793812712275654228208298103450429678871938006507439334335973246940452110422722728481164978548632948448130132312034257845944543973529130054528901857124835778083002400798582423772074893799859756826964924499461460153395860608996148345719744082591231693504819786749008890397687498305807355220500229596403043147727281027990374814517370373722092016230289009635526475725024147163651746586854301484672407315767003244219887192661836164448506659213761637147951337102531351063692455994845572063848512959728892854072914934470761446941981384773224086263880630775662441984758674765270713521282704671619779257081244317394800213352313555707072945887964143683335926997064263163015914778318489610609175752291922678228252998106755857055920316455543389152261675666787537908648928703561716645883820536254409908053538926122735271208026441403360241682834046279534818126785149244008731190050437004477355742442685794434665928087579382176583059263228932069739632842675748643882874596143810004891300608851313732144176351628579220044164588198871976364534735154035157335092129033759474752228311035567766146956876875976741192489970665553564730723568000089459129294119352627926868862418923938258264724027177376519191640811023970432023620563257406270245319249292868532118400953985739110464834031716084602897896013298786814768333397664835580880705456629456982976635080077872361871688817994799860335545895142058608757250994717394920755317373181423062547575799645585323783947587752401611407338448183245625850101413597467514503279473447087859181249417918866575328799631873344779415160264390017664838891294732838043153463001684768364871046576566243363323643915375786746332722853907272594661550235742434003490762414236448503351096416436732118534150793486702179049382787928131366791888728090380696203419440832057364384060391790360128783014721543305970355781293154471335600697305943660431256536860679093951062109250581626172989697183659918867143628384496113989602064098126650296764741581865314497893795119424088839519613132183865393814723653517274519712522651385925542729984004922234059305060967482327597225156324291437857878089456320315679510179168950733994336130879052140430773333594771402512418970704191526068403216411405398450918600740692617954344276105376884091206225239584514932632971044451669253095072699337391853353071883965428065709340075565223264995174433802487970623406729651433848309886669092548924374103050025297996489329594152506944542765714083225787704577238344910076359147073492813534140392549192676862711347533957998341864211730165705533320214237161768750532942690293649629775236346453229207867003619124726837715647771438921374556572196944659943974778729833155231576123253646266757491035516964938852646036051506804646305625852131303900535869650984111769849103341872350975116138868902975098357220326481048574080840391325810441946735576252445317927022166366838672978878040906975541524975850325453404488678774429805266001322151047509624092811620810800612836271418479996180888025054786381795888307849768606840762725555843265413342300051269418790372867172208492598376403143051154908454141740160900083029091203428661205637524973089401989628890788290827789718931941107582585652954720162649655193568805978154478884035722840056527333304423042326455760827649915050375303780462342716866123603209918278482019085363268799269084800796929483776604061184791354827227208232728603894533772875553362159884725439149546325466712365545482041568382804093653200267567103911460285076095249813808377716867640862319324648678922703782991303544191740528566464345748632158631445942086865007039916448810330364357662587876701253667379868817242975712749418787692685660594692772318160892638128872623624280975427793512332246861461388364965695637991048435602601226752895710798565604335258946064619945359154208863039731145975634691940421772532325748319847881869007693606488129439404025731639112651911660923717654039098269568804751928556386448462509709982012710590778340705509026018742468344369378037958746255636297211335012493160989769388713930828289737217043534969081358354678960722795099986283636778845272229477114777626547098238838657643845954658018074427293041939831667601622392075817705013347030737015933067309328508651224841737565789165626702610267699168450759169009194085197287730393965453723157328491186436071511201963543588593190279984372630034993468610367974279213320126966080632781480412578788633426420803561681144405809520440321844764808295268081013173606811813502972557695605683772124284925499931064823887523461699223533176890858513602647761066079024207666978659637084047868175617914536942235752983109364988815396347679642151372108883329062999026307248051321363964410148309265003649466245557881568128134964815412958770827815217792008345046524091784074116881338316905040241115663345007686719782816797197778310065492558266168474260615512077747067011784952170420556621298207430266939598847933748140176476767268999593068450803430645144980425013145393695789196004579362937627105497486294518389584960562296747022844531196741837320120014604784393983632138144570127981765170542203034178644546876178217585665220067911491227320908647202872065128433385115828119572791172646213381769597417683522555794970825412150921061485708185867526804129123270292481693636489318962973148741985248869278751828091394724271399823307389378412412502997265032807280448047411969507294555558442920602801699696885143142332586308222466400492839285830238893278420717949356882906232708534351677815666320350646755724710654125044675053270654956881192547505839371268203240342195472929614154736998314947841691608683510812488847741808081455919195834822153049858946475194690228584421619159407027993596274512528291738360489560470787047113595175315190526971866944857617968504589951932735959365923190651344519952104778481020021903359562203113284313049952701154607755555225438777423013412375976523469584123657477814991079637596962282046716088644411802837608320404769189804033633480282423518797415409913635454437430995422660596031721654014933472031167318542677123698415914447370848407558616857285435496680042530992998121222422456749517576257626797448987543182598364013061713971351777478218639256603760034035047416460141056577862421107752898020412289130812580483921677655520818047301702430793182300859407373047920834627158075687220760658669069949547561631395282012028433605649244478929054181067468891053676134514962395978083710335777779004115433035763750678197375672431853183630762522858101644727324314749073484323503887206624425746022020206791061824947415953826837397969797260708306162379957233691414321660330311108035715611796559661289992466087366089572014376515263409293324117245412296251186740957251590713729910312661872292616764770147675609800905091223559990805530127207456265578863133134623034338231349567140405138163424187777113674668563974712325322681757506926325447811615798259972493504200029592727241978095208381686855892645800396210464734195248869101615999084206898610745344575134049862725803758165619653899793431062496107562220222660297518965606942901393032540658131658377917587655245890761948261809822591955985647489563854450879830383654547487714811629617089172505870409644175477087081315821858715676945502586208752812760885080239110482419757535124778254044246236851535510991945411252389671506147685545133050613170247354071775611152809822432781629901860641107678344195272407270105986651752028201832015266402977676357432654114758113526596128275559398782091310852479853160624005182881645628726423173765197997441562804067208842148005158364234914632111420470461557112738659183834028713391657807483454018402584508817515533713124220921182030371286510131778655290309243475386531125844105814143845331669308359152124385113652116771419633150738488093371204094611768468647465850386189521457157813550916058630192219697003334718928059487153822110739316499781414088408909958209310142422244382529112959581815348004512443272932638027310952712954916266662974453268962023360106300268533033327625373973713412781687529856690612950139408210296148008076776707149275127936342807720153309335968776807739583572480185389107291433406495987262324708463149505219807210763487152149922330218033793899499051481136982481570483292623542688355497857874278519304624595714698816007629410089109953663479907855152422276661677235248221452998072934601199813810798696942851505444974795903929634837419917230264983459400866646601965401210553114665379519896735824352110101076701474066400637680930110953701850669894277081406295518259091029435274351771138656015109835576206657008272637973697449399133979673384096462019737864117119724992424004399480559558144528542393803492682192626900069323840377540406469671639943942144371493362319638396039504490590278198042128209715090256800656543625989223276638202746617296043316983090793309922713067849645019250143494675567275498618972184804005364352296571324543456103780373470113553844142384690977425127466691971908882816644217910613591831758668351928240286505539935647305725365936055757043087676917771101154146100926896254349685481090547946918882023439563601864552230022093853766414262675039086742517674016267319084038893745337148377655301311264875651207839269454566429341271087302953064167045870158612435749163523849731839853277507339979503226657105057165756876487076071142965616839447154990215425341891663873684423333435379641265489998462755770776714245924604033181824372053514868528576410431076424493232415460587835208238803631335670842425832223452650104989315902026544909677311362735802873342941476913317075528167511412990483118883979714664388910469516091546603346969181121338258886272379544682997789372488825739064112975509304327333443757941036561853158284464101816571621928132016182087625523021135225636761579480505355311825060450186653001538732644102968647464946480516017860853367315596768390924208407548049516362902757872195931800158489989440222550381005975919737218583424497387192634484106147729470455690491989703544338231743353643211286072717121864418596437574379018344515040726958903706607655429710486036002366954731555350644752461607469527624289196524995290284085948333231218611732723575736678217388206800420378027583179074188276791734835893042214468505600796971847400243304986243786773215126087170557079446235819350385614609645341109378287908257085896203128950575304185095515345138546744193585435285802373850863657068126233878077737502442591563779636420403065604652044618662681709904743722250388010384305526181480325790047819667516099926226096827373786365919128280494588385545622282900648473539073850264798938415277348967754330692858444270226935145195378065501676268482467360653008001033801499409258813090047902682892044525510122401793419202074542922427502428126784234759985403667134372208318651053113275206700553144671567007512135096838424344913045669337202662527713157162152142826045143432560306756472645780391328036891630706410712395867513199616636042855946749048146073242959353095002473305772337977040698139370590631866637650240976002525649860602632272532045335447440934674566819014618070417605333983919366881192108990703030698276467949720554951934621521236340111038111811785424364036772828003026341446571271407779158428887098266235033767294975257043377209916172661958997163396182023852489639647291066042365590452656478987417133552632220300274698931610725575913852038818503751479565618644421993334360693674161902802641717157045648029219725028885463110538410400325296828922228323188503663683983351824929164816060110695436312872740922939888590346341431301918132961173571756623768070927311394267661050219466755620553361704326911150818486114173404677935383250118848539528155134289113774084216184413220851875800719691668050116577282270154114555397798673971238588292079991130495917897497724608797269775126834382948859490265387849984780618668597913933258906908441277933589861344531593777398861508863593705893696130698308946602834686859439751422341566800656555366286041448846734402847690039583364166034788695112881025469971826631245617011157441710781145989198573041742625869917325053018097442073989039342054448447587835877816038796959087120917750580078895489289205742684616836129632256632744066560360996928990607069157138294147304591970125442097417322262592928071933313694286963314963576983845938977837026600882039564302779729433263612636517230148346031370050447552427946718295727427962752621833719969140119230781970329012991043305006028855966198842703188673248362241326329826699460778108058433413358682540160775451725243226998792035379376704690864751511773966359812077436139350282936948446969735762983972377905282263260877985539766448573589306330527527213430125681138622683158930144019791749456618762787755812057061940597409476085588934421661603977536672210466516380603554476170330825437229196137155602567275521019525537108424559743736478058604711837191692650666807208031129968124916416703670369278948077279227195569968932297743540837754940593212022762689561390870446170323407371674413259115543898355929700749924356710240562421850047963782688031021564660299629398287035705536161658060121649640474651942402500908476366521707626272041187066520587088769227942083514608412925297962504934358622700239960256619511882937188165085053046386375454168790909825943385335547760999123276282834699926396017880024963775325611604620578504457389343391800499421469280564674967153781514483800180023093338290818191563807821409026138014389400705949063810767148243932269663568507322417916256044887671693586764926697350577127967645441551034143315961765677244293277268457122023188801155638855147333182394400059502885616192922066226719748112776006249709354981407153277981698761220574221854777876335039947821787987253413963886134390192334238659652173951652407796393455495429464672877202423266662627857036315620256455574903925623005994639989665009542958541987688290517852664055904419070544303973407404532758811421003228379502939835710712365324811186322560561683013731142221687955043141114316167904376522469820938993074490691743629745869999590746334197042562206307116020241981679359702553069698167588019328733290005476146484861829549854631884126965947412713437899396733618065459961970785157816293534874691447095733050733781874293245424683748851187948008282429883250185553844411120377217470879515368001861462934782777118659080139353848391072338302988112154883338171215519368895306939020344920087512641608676530332612906920215691433317931854528611720477946638170971181913824004474498140647913835074864013626514398811620996314628432334476777764535396431969061234015344576163185389779109590358485639534842570320683845621935631305013893743325480474623467461128020376559364006079111942258566482880113745764299822435350222270714696363811093801430735481397297643712792914488089799070581484639385183298267061881262160295086077616187719377034076173675231403148682125824813214658877755963896744138575974653010923473853226609622390926605442424664610189761664617808337579573517938041023070667028279145955609312731619903486111524796094866858009581889907908907521146221344470075131833432397285277409904896474231722614934660835286326446775797961281888038219079206153570497458248986411706090957993044583701290228599276339981882423786146427044790082995295153563711640746546490349623299533876961702545243870290731897861546515876239208475676160567782307455247653793259434938968872713030740490339923190455696778965228171339253385024938086923840076570524769325187046114195948516518879187019488116029454013656266383356416489265786625574041557766432533706104958100012343353674589425606232347368920650379326172693588358306978605173441931379023407161478198055879443154549873699555149512845714151822752323841468188289312175288616720730423298074032822662887932418936053029793209238208298381122383952361439096627545045082918811774857741487408434209451517581318138955850949429546073056069994674028207916389880881913070067024505366518885884617275609270890767290046135034126415199045562392111867347384660522131674745141033689182104723280562388631009704308369980335847381388963346395713473791732289964687185569794197364067953983534809587313995962286685204000701630884182722151379409970824711601301488996426529165110566489547658594464517347288947736623258578483719086442932619681320353476029831786765462140119011116243193895046006070190464417677750624644256791113786357188604751547044291382579329035691724616196835208204238261200749769511686505936256618020967551942218993858571432397832219102687354479340194659875839273287614343362583207731587877814834662892263839872703783896088650519505873914252874053763893307928377206273288338158600701977185308028331152029907908805814947580370213055879527885788561588881182609836159090102745412649908052398315244285256775163677884100933428943562784749888830810296486317870475646579168213177079501706294130761556745142853371746831490589527346270897501150585264262691775489303970717971732572431284518674401471334303894487450862746902400147114687592630776832955173641120058390907986247842802758470939471627599826065812832276504940504563275970725627989574562848547638429891065078614552450596524011990877361043824818473187206124937477172878742484052574583997596024280143125464879169814485883865398969420058624834785244991289723899318618882535785299771108748823170948189414275740838518705442645046979453665213535601690588363428564282663007639379226521953777014285618775763876529720674999229910122609449759591288215471540798966802934797137899908688986701125188369539319953522132338852926466352936125968689554445457747357057524293894159348454267377055702315399380217279770535522846533833613946861567513870136335245859306980668813058642972733586075668488189364999935189559172360385400008693392977601529038961888784896045152151575603095450555809642736223573207613011233365562612011496208809482763676089499280263415058610918210956571872067396061077017203964188735728300483369822479706989189907891262888454793487182329543336041409326806462129933869306810959638293731648504547880617919674575787338265411064716737800640063861827833867577299110199007269802149943262257906125563033415060117469237842460595871490261624546790490043722120159176172738946454244036093931039652521439359501844490128109147478891120659166839882550650093836423504366329172555663950201526204593138489394359168994079726309751847936822292417207359940734781532292841189711097054052414749784523109609827588591420341392713478103561341088819714592094813258773423396263214572524715079325187897895134172933457040708068075064683829451013116962972506153990641941221764725053591626203829613407440686176090379227223009503778215625202485353520941176860867969053235619388330771957838580404393873818679230809157158093545954352116597042855923744818406370592717404656638940006502676215480048537257579976562318426761735109465600946665618489893588367518888086807364521072177889787263700797586461474092127586189874666278732091368799798155478877243544414157117315938117319658424887406245843676010022212087239050628144900014237176753863827565096953394760806969524755084467980072268154711014363211478127469979420158355286357500933730127958336724902523664089776509153082454839131166310773041286163551268403444361282288876860135014384391991048431014292528199206146814144490267729751918592198427585388931665373712385764049304312719052346092795579794567613765718529252595449690145794131768444494860834881390973226421255832851213716823897301716254786028704813286745555526432641417965290268241919227725795980900441289859564997112785998488609557251804810574216979578728734137050758891250305150831507018226872087503587416985439115400455397767570840920838931774803225330520272550698835082237033743026030067258166353805860156850095679563297265914273474922724313163382105579128278017556477481876944841047191186246779905714321827034263967650725506188104031992064190993546850135139927506104918554824573511830140255708297265133658956815385874068488429035488933167336444583982937523798156354276430364295008248167012325410897410661166833995761385457308237886259610463797448855458654375081644119392502189390342805493625810251075471977179151842274438133288847962388760576792099874375775656316066376903356444278202795081297342727112837384061320830139952789240496337018439093588755863316494005945902335208807643038297571233312815768663905205689192747351838228584991054343231994445196096244947509515558910747908678026126081062736812696633549590592049413462555168623061612188139658194266187993816629268044566370608582365722623411853117249560402206614703435250484979276001022143323999854895671473263627754692513258928830886211962344706581660533772942713259995212129975389270492310452182873442903975454933097963828153449051255012742048170574058560721952950876218841008631893721265242292774423516361743442399092321256792090771456931847714977256610200727179886710683410213335025759088482102980061995652980087783082748722632518907576629229520023053227804041281296648807358012900442199463904533337472494487283331398900724490748067212063758396127662643100909289347535926519019832384644038327461237546119872190565652225988724554270455997624735470747073594308679468037890853117220473422608520074259258322681971209871921954780629074529723376349313320015946238133557899616873850290295065603257426613079565262255286001319780629071623906518422605107259682512911614339228545200618149909713178762850130140191922112021868373616330511989007411709797650914787903554847751452676640373398576601372952399614698088633094990008932315962102164712689232915841806917452453898612365529415392983786674272706157894073998286807010750499889770505900340956504563043683568773774444839905477233772148060973692738659211879705324694016902661075775737583053571775540902993452638313853838925362180952903402549494073226036580689231368124650465540052178385331608072987700988591553653036008344586909968812275994378664505452014223931202456809992298694922270934417568110623270625564880700322397958808361199141540808320333731715444985398581568517611383190273908984903723395165420036627272218951521991823918155803915640588885883851039972081674680245010812138023551966025384484993135113559333247756823457552980227564341196188024256914898894398403036112794799842716888510690712884568189519210356984650383453055248846332495702627153256329328504693975463970505985146603823716118280318106636645606206446595017290901007485676700038528581796806492669732300431289846182693024657918590590089519772655165007884634726378245170711373969847984863970145973467132154526531296924851539849369478893862447181948552778347813581871234589696375185397532990399559787831168241186922341773872619632704285318064461020871762264076093472598593407801803484229692168876176048760878676382540568947165939910739462769376406750451275475392577801890782622067884843116260614132332760088889719483680451010754495896106961652270506414268751372566711413087661436771536496692691315634909535583834526796791024259864147854971938207184954925283162005124411602470262667586216131809805348503117471893628436488427641529826400843963229521770669073777753213466539182724641192919818445904192184731891159428774511666514556031512731147486935458490863924855647527522289256203687282569082710308173523877571073919961162853270219325576415694610255197805484391912921186214953345658682804809583012524594463734453437093504806032304911997146585445539080439638742619377522384822267883893393342910096100756824225963860138399115491186754748193483559289038985535161579183742918812187295478047709072128506241521476345859269230265596678243335157161420739284085097006334235014160379051523021951027555564696004225419918309568161646211863787280695694301785788285426309550243399608227927229623489592557788479922311225415405599184669721714546315034987850244038836027442332150497453697571786247943318321217091758204432630457855608349902257222309430842364235083665516964391131951479305942696183851052244729316207422493086905722773276153880774652403144095800535231863503648538843600433066209177251704880795613805162085018353989571751125213412623827556626810053375448455946127335907096530815880634462395693857076220292309763728670059524017167495614928422501301342617201337951197414915176593635032935453043980721547545954089256715356517542282234779840487070611241506683889028527202833421901976239115991263397508301399037026246099977245325513703796239429895408225614125293211130524397261807993093144087380135057866601667506971382479195677654929681945058521811592141868194640970206740779235825304955362799649566886291874679839784178157297892196452914489681490862851803674284002780964048409739353668513510255596345160943553511478408913175348990409291327363202959385486290088840052374136023201449132373471185173271845151581204991829855162151893776104446380898337973307986188774468119524033036504726724784089018031330641447592750295628087592883230136423221635580518422118362180813085192439491337888904219053806759231599166960928219139173019079060863182362770044436178748328798845354871684585625017750636463403295961011515703110140029439388128395013845199869258697448717344851730269493333250309071335886412947821374852359266079996165794464047686318623749763197227490187951222983592422739954085212133297270794299617320364789003391529299436601446570157832448496700418763252392141126992545185205102853748888062752760416868098645762590608402620661388895709486252814468677154301063771330619954039197166560526581897790937485139995110385084663101706031660413853742133668900056818051817164224129964595651573957252875548616563744745252955163444067720446720454009165757664055877148535564481962675850539711246517637485498084500432500795986285953798420186686001869354444777270310692020253958359256015077004084945344289881917895208122782660653635027627263678212388091827970652766369841622365078675923364207349179084804162045786469477901405237317781748107022054827186975912882046002049642145791857455128032228458472063230316628455725808489817275089439052391689033404317857383558538339251185705388870079034128562708936840740928166075724883023156165819337802054710422782085604117347723193215774555578284469485472745921530147543549056348391304781154718873445244894976263103875268148285203533503210853699089336331460098452120799063006349948858840935769471620693363964156902843903546258402945721369455314346647559633905314424937078884600234845855848704370707100798858466259430225799542699493317558309563238958039413199519854351700448223085212837652839361603493775242860075283397759096529898002743370290547994336902367149990931880026139098132017054064998887098449902473231416017624464656033953921996303916021802176315392376345436411725665880786808372942134388221961968882021337290859260457923483586900926580718395093944625617277300176272310985543380772465744853941968087435973034109553475260645252238644942397364007824171821220691485939904014066138582922406550455626101586072771227295867811661914008357680938691795727343264303657681917737714532209904226538577837906999413251785464042592684087173129555720035862504801894840308143291093786081633019619278857003580409805110329446404043789813290091481407988134585393954400744269594242358112396833993594507756278933318792054136033087943809526606592363763559512918838140152863610284450107313080803334471760396623571181094043454118590732801529264790308602653473962039984788882897682341498013469042508737219419649423766886264112993655797447554409463543102582809402899333972251319230799258053741839053327483245405827430935722092800886317377541340224237654070676407060175825258074521665565582002319430910880600298137755516719407145733391231262157454725650277107985884649356027798155627333824002685597864585153107499969222993580126772783942961515263326750171946468816282078680887905301418556738488436964411095040804568580717322805297603123089208000000228722409729407537561368995517295462218399859809435742490580336250979639810003629525642172936486441575255722359878293489405210772838286048529180233078498839361426302571066879699359638279278643661132286397930001168060178214401922749290546847263024164834828602823175697935806313930690721301285516792940206841064200979074878722087361718960641411905463948273999747942502286820774864600604017933997388695754592096227788891003887781280747911533283954581813569502123669985462018744144231716673659146247815723734665229997488329854851196305707910024690048397420307868151896709217020765398227415984877775978195242062626015657152774226221551061137190950530267702834302571768936476046601976712519669690575324379931063324092256828594939755664608374218272643509529472991420590152480544493859470582623798903253130304847674056003113626067611767769237681927304035252279672663889308989483132283845917777585244176401401236521913378875974668123458805543833714865241014143036798781245737541798343558424031404928063553358918206800386365762430170887844389313763559537647854280896849594013107733927535881911157467529904656216751253760332919082081442608723275601395717548590167511212124852891981125687064881129796489198363844239069174624066235986766133903169936198028303771084214235717046457724699407644202960609132800760855342671169437232379987599538028590721970027713572514667155690785164217072489507346657730934960214079219226871010646302671602674073803386380607906653404645356026474177595861307183009062348172390004233385835424105268617958303653876976014973450510177827799521079022571099863906821951155296955262808319382212314178779820943433884075696906659742841399324737787887756802159454057653569513652016087307231816744272399453838073265291823680896017855178925897644585447745785784994680864016003344148034039593358101495907580921643182303182671345932605361780682097261342687295263088089748686888848459509243891487747459553691171972682991924831595572449527640001569953040018263154649167365966510261572316237699547741970371888524052151732821824981210183217371077362808216955201942716687340618289670000009939247131994535431560830600940919687510382783643224128107449519311431968416650209493578195227458202263701448202749207509694456673954968664627749837156249443635900957378386989429716731354813589800905495254362747875550866917628000486210594563517863306435456724923844135840897743682891311624895132699198968852667276445501719584002638722705799009303358114869460056182905627653344829641346369650933520676471963018559609177638940359219250720613485368446541977836261886355415767396531796645357070772509911155118194206623772474561843683928530801018081563503120693770509398510626412954535075981909357518569177775445360307268215424042325047169220107682926826963701457791362684533435370875619375966667691102515599612322192080625339393740234941833741787513697094534944582519938088420851933554843616084860158593160813811334627124062840808440241805073592231401235205734901519422476066332538906054544112363291884876424171321949323532790975459756517166670893313082793172760332061040984690417481069292443736214422072569046702851286233813205401376062597654745650204379601722077349622484499017206967964984402281461765303646602918387126879264613547707556046945016050801528631252055439396470973565362892963388137311576660191638554626574065259643848485153034301268350732291393691325282624872377931905399048885909343490750253786531055867791044896296949248852752165655800246683009226826198361533075223714172922017734857367630477062142694868354006645704182476878388153639328741984721517119417968317066981997620553283595428672144396122881689492857075170535076741929851198695573565793205998558866797072551793556314374963322397527939909443882293914593712478248999971771622361471625025944304966969461004522469981106373139302142431913003528613641645994617818622194117421166184346060185203939478564149070683333743358082786589599989542254086115643649967353648844521693735985401298985353663167894268987608237617760349061917318510022196199630113823201313176960252291917506216270401802066133312076564541969101443036054482387604843759436839053021945596094843556622560078659508810782880730380099611344552019625659221438815481620783099882987563282777767772812876688569130378041522514085620642534225052348946255505741741791798331423688639455273453905421920781418623586668849135827215042235252188045818992913397560328853314038618914795756542577008468406955334262769594385939282702924733692622668285433902997618862517390082178390215940207809615795508166979627014511982588375022003679801158752852884080436332786631833919008746596210971969331874377254460463646818358594326061133200595914627253463985688289894416057241198933392841704649076794574931280931528211880738041029902293299808902951053345288959439190335196157710519015502445611723319797194309749250848073970835040339218164919670277722345852059628529966971244377374154442020480795149612617619637294951391378394577375463970025807067832099050808116741599522337442646749414792931217202510973037983529481224619220488508615040737286547604315201604643631353277182908535676667607236753924436752789155793502487304783381284327651071508512521944508832786542051112589789905006458588361324576558288244313540638519838275809587111872642784594322298950185350169738788213812334604986168869446428914442968902148629441541112274577338252751633186101790966019653735406139201666954375090256886345463906749803410510152035621260084010746602008598790356112574796108046881570300708579503161821153422061263679189112724865276306943479857001519936957176430592277135311314826106966691636829161577341984012293436051676732660486385450149008161849588354290796636151549617542375634674479727758828582436016871737182578044173776487423331592307592992294186272242634660405304370746437122282523163549316441810831103907133709349380969600818849388666617870844889853628102171345096847713196985523720896532998787551994499780241783709082725248065920071889141091435377507889839336837655497019493278335103748820766921224542650092286936744369941048454163546045507048969863562938384483479746557256305936609067275855355533416128302880542142185970022556512884733733265061206829075977052578741764956927446297206016291439178011749472315183622245960776449030765096155815468478415678382320294370298164881572645198245165030071928185804518572007214797771844786911364159889702515164581242704334817216366169776564997438992079931833689167916919974594954913894977505677177565086929527984861458626229623739351580079038934322554379635965070780601505474142205358305286189392860540120509467188625018487309092866472380917815463458562890033975882090691863758350413699877445646609647958046693198050416129835308725645389483472585242700316765182404740396162595047672708124485340260369879247655261752354353209304349637745875577403045011219430928898281286367106042570940552591336131937955459214637944931941392402769097411596758505580472543645536783713479940439049750513922420710968476256887415638568065420947388185897663136105677311845701969504467311056787662343503761407581073666189273855371282495233197954894075008457503152860934583363090871243165326535261394258404580082831364097475142949294237989716560897907016955151734982737827518877632160704978072875045507620002078221022969329813716786451473001555227257154393257866849935976836833796045424433805545614277534233479153116857001550527290252257554289402709253217321816759417369293506883853684995240927508193412441466820931974229184490493899513068985768779536600884441372027264148040077052612741108472528725366271957771413915977062489261054264371526265947176560964336536390575884705933992726497895295375996166178915492751572967025674404647953789556836244756752397956004999853834901170030216378716633544333666625018341165790835786452374373930308301812403725483546497964812836656009744228732422497898824281517124472287795331847661086748197349411519901605266128691710217617268417731162396193104291450491407696469589698110462017482676605482845618674256630762502387521296627206383776351941242311634204895746425080520428840568559698403326313440227468259816726093652125336650996301410291853015666043081695603194095357315715659111489435390758728498234948669664732166153711585917605468315737715917332139651893074758620438877101839459649290450730773060381156952744081228584154141940030185434255011309952563622505894168494345507328930284451551711266666872150166148871185410731908273901310688704803320930520299083885615861166388878506448551849342830360264673645366972255893328122715401001710743676825025647838585004148422091500731455090739699130540759788945293292445265152858827636917582003639108504580072880970028426725208088120494335717236389086456998659570199666763186858092771070941710130102597187596436972693738513007910292173049895334127964131137599744878091758717378568352221377118489561510151423338940371964131237825047856744684161317612977946217390210295629686271764588294108149117562083245896167563433347525428049784974445466929800427512266193007393681721382810089522771574691413183922134813801697881818084667266725563992259485048081683763527317981354759677248331858635977737154704462506031400439624664339886262571270434847701175837269959698393476214827799236079148988342897051380930077899507582890566995044365884245677210483608751317099239193022104893296636128829992609247059873597934955295189582896372375052038749726186754441504047576470575545171560883694058506881188197627788792788229954519157781158437844105782419108102443830828891320303821402181469069641467718240273850458421515227720572627707774397322673575928013630635176409571860878130920241154589813351804381416795874273353171407160618672582345595417142672049961203675568371252979918852092652574951847313727978785599613485433314983239271308166177683916388484447769172831828393856006701793307223326556502809758250743901184196074330007736836851945279911983468796802281608392198507743392981212098393488170625955249569864449227281846461901240992578729670707484107785779833935284529224710075504668982685479898627931391813020972825229492458759760733580219677272451459939133063010390840041379809614750542638477600927012751349635532016357712673689685314961972464481782741603931581903906604503940996294561067834942014396327533623780650113718018646613659026438075473207616567786712402133500134203326635667772673826077111905321512454062787843292296254604603177217697702896769596639362321476083410092493224394588131576620768676895363752653914275184604538951032851634587919369275155005461314681674376321340085192831944172810873177902900791350269805658828089448905073346311040238873525869638342371357721890202500041921749428045361454320576108462407098089660903519774386624134335371884981999206003726691887697029688333069052596846429435371714056740757366782968295741085451225375042170216883318184868986757646203785467998560023115588704014499671369216783602570261463449536101890632108621321679755955622364068562786748268635524729398676993219284568189108387959366106419745115137323578682559865015413658041059929216310721305341194200679550638239493704233527013432726002196054465672657875848967621179524770964292895747497109743963886452818308247496974432432944637989254151241410035968113193604529726491242604894606210633330028948322124508185549589236789349317654557583587437540972841422628849122498382645872189949376905512213361790934890029506164391794661541249972308678323898833071382519952839875969814380702200997680769792391730726985369397914976417917121386199126864321912042935238218813499615901462755532132422870875167562923075043593227342731344339222584639589303132575734714157743015021499158768666913288434453467685620846921308168393491557778195988693483647091461366544558355937461219752560124469670053043435949402693649424966729438360688431590033417731413108747453141585561913645667709245983643389208936395660432699361924405283267196333479847552998298117229247475765664573368942345954782204855523349372235196151454035846049381522716301490554508965775084150349608230295824046691976309087904748343531384236155140782002218446543095117082327505538905797262580830854715231419670355704612511536422992722507772299959618905852882868643422554992989549239015644743088956042029242465853883118631235069830629489196052844376252518143203919258219275160614839874356642220611587265946400995534041182013980661755237304145500042429854391532890923080175167698459187555214593500145631858826682992261262130682544473133281364459867626073580958416646098523813048017020862162263435739491765311797944998038631898457735742533483584547373873225269697344138962266602056489079484619201090765707572791319419390194633256203949887810752793220306231754875558200876717550337354142898724792836431995361149008303311571491076458396238524505167530203952035242994339371128077253429720664131882939677830097446584505964027611455642805198779569155528770585216241540265556833989881919596906509774529450569502685535711963974955891520931772388324297506857817818122163007014548632531446250731559001123170955210986732728965436286181595107893780803400491193250194056430083246564501577860079415171515937663253185445700296254085304198082731884937324937996813565366229333994588476633033327140406307145848571738651110777954112719824976949034138833333812569449090842098509480653213919073185598745151814432372266211857488642400258495094687454952241741866496258065184553190358315660275059947354372166264797938646413696390621872775993507399906122474528067027695953873059440559302453452257905729845575499685048076041424301350914049173885628110873898089656424105036292062658007559313984771305211643196526493606307903999175712272106225806200531123269585669682799240703545029929918861534712826053883522064719072154084312218954904480438104893952664242568030243385416469646140459712164459351775454690796549019502601624981715289272560798209895126841127202239749801312655689770524131465035561316282054856847992910150433403679942534828124105770961118508951611338955792695728377983259750801656007628568598520347768670092413401147753720612207169198086793151529613341858147046397237778555671566547839512257273298357931753976790200549567435042549535819114881201297827073472017243911414665443305035710650193001488041009940456791843155834272534522866125379381651802691511344171636221593990942271332947894430577175959755746215777285710596679135109555301289661301854802383132637511888021705967577695467434006045819457967768987980417842867822118628599488645564578486180280186029673515412310926112104743045728149878618951985001925831010529928500959140862750486187826592046763006972720438401756291729768952256655956014861626536807451446785697028956562874520108965412910717929383314554298737022961280944234894773891945539038319423356688100224230932638291398053459422151240394068379245306342378192770507859050306164734790103870552983625416354202677545370315008126871443362643935011004804397913553083489245559719333195942861561066865610561107131027253154241526492928506538552374644360333099648301576637307908995843241020780573297625088936763288307858175404614458548282437252020809852658688533376439033527305817207830409227338077322731652775230721592768027238067925806458809083028396378822555002076200902427632736201095083560564692804120447314348073422602098736094030064106087049192794294637253785486161051277942804624688854708011237761780988729720286467446325712078019776046773103611027613793937618008764386671577440954954449187058538542664883949857935561773637468621386502524207502608633436953576144708389660081838487609634178951981085070124194247310618821008771631076689666799571005774588332569622213969618854476564936584889900478555051906659481945299335221616271572986416162242254987400088846628797769510597927692389773808086397105924912363579726754538222758046674504577170169150824999354390378528628144714859060288314872284629062150584122792492382647654359552332813762691033207729746079777168861004921730828884470593238265510159399611836521675421950202804908608495993553495765434103691596801541265052820833598729374260959726078957862874825597990037397500519783907948388746930142106885727714232931043840824962767180302104167653113799768710351804691757029129256075451721513109693784557363201220482032322529616353709995763579451573872316711316571648390410362627984162077314074691498864189946767766245360780587554774158420087570714817076808708989129259540853189699650511067573992824731757668357750838638155274323796596270682072960924993975631313473942469765757023706471893707828687412763103644131601986251044865012165998969714012697048598214420666296122521824895659254108549907392770890998247124819536111538557633710658052722506729379558597636118041552159178243402482293633968597643364158971935816746437511691071778944687302629644322333717433635356709258364461081861744532880466238596806179012536809258910146499187149939673927829845418107432571536609754105041127141662840604582242843651374182351471097294079036483303789185651866689596351027135363325853673785144516694867095238040583631048964391426582500420170723115508482054773333344307466326971551171936545431240348382446243862081064440701560694338978238182996543277772130689712017223316639581837912198683904274633299864454182847275267878391245526689975380891692825360042877805812612823771044629278282076641901525314944754416129813129004467181508617152129180069842388452601060233299551909259506664952772750295120920352620400678189747911443077354563051627249485213736077323385628669477453872002219291523470671670943424342934850740689491476979398784843343484876100807486441410128211271301895171046375972831296435241811229468076397372774163104597620933262192440430342424777725072719172700464054900270197609967367203621949074979606901268662497251682089949811689907255191037332996486395513092703208691302349445582243666286800695141012120918322010013792394396477933803823970312645691225161193609380777643395632586945399216768939452458507317837746099464252537643900462006817351523264050469212105246116177785091025508754334271942931769940870752211221861556844046941176335386699482529666203973109052653518344997626632680894834459667302329192296822159813561209419453668114647765128538170228809080760389828154939390320471532276107717537356880178771099597586631286441526841700538810877301481264978404291631841317230620349883104044544518679410254733426526813425214494299951703658239384424820505980469578572126409110776895251240256515663716869610769916715753558425635506697283449292705466429408786127843716981755032756224704385136903251544427745102800380506235048560573692301279099880442049124861307406509662513902046519569987110768135109142466293020643529065626243168295922971604526573047926668128476799547779231053763566208983456143771210088684131820146144459861325712194698848067640561088564918012266819099145531388867058451594062744129704630955345822110872284383758523320357372892691416891306916373610502173264591251175913894254592708094934354872331219850701017299492546359809407998275519730891873468172915813950119080554152513147606710697658233085172555711704015189932044826704477927232665334987301992078640454120046998419059614256156970389228822803198470426841504078830178796498867246393189877403058023532849816720310895950568094842149108412197290838060802118398157292583510678300429173541468063707160058931152847448310275651128776257246366828864682459997439051414923667249017949879422436058413585092029375781491268723110481294005092104811071827364142764897868428352083982472439287990621043017384019038312142968521828161745824969578379748950574667072890225124462272106070427761213579418903220733422798440501528656190525641691967519260989726715861939023775763807457971634954901034324921425622979140061363529057459487967549018554591700251259198004871915121209641079254718366701880004925956825039929154624736609118879366213592750052073205953410744266336517230127070041239515556980695471690829214992675982682212550851969794952833542460564856853452905203417835484703371027666190736044358874962820327833057047072824941047925591891109048107796274958496327976652310212728079317005307531669455002465673887775549163148557990965754493565628964327462010063850973015017613817715913274107449184297549777446301246004908537892051691963644099600966155345205307911785907877199572831184691012477382107603857893810411756764518682649720536710105188627965254668563703665196027821400896103538900061028825675097590062239342265225564883629064268520550912363897691226319158846578977912768949995576923927337256198566700134524093655161712366798680706513773141046834032443955337148700547483121861005796868644570124952649330931475924344988247913159200266492951067909423564443815223251916150394723257641299931001730615022861677944595527942435810776802175755697546677650761379663429023687593438322569513179794308931421660850114643458823255359556199411799410150049781272135971091671718146836909871125419287148766034287032734117011643619402118996831512754168671249429848046627060837374320871981597707950059375152975629734147818562260794023513402035851802422285854860309466702351273803523308374353019954116749421551909366593888900871931448384984987276246694936686716619650091571564276898183435914996337759697724952608580400826123095758136647900906860853998606770970807487894434487321312586738361338411053997330191372091293807577135422286353139569253958675620270895585388689862570771838388235655043019610795738237024003406927607801165574729653051157278162276987319638239669812840825062912640849463913233667876864630191631478939778885736604938553624213791928990310551904698656300979225421647993424631926834621237499665295862558734104052707449073352409563613016773901721090731204910352931312701357884996569829447280492482337567123010550450050702598949762993766923714795888370273085109722788280383211445448110323788649978115942593379078635852943926488152529286859277047679204650062212039034670081652756568823228478067182299499671485988498970394445162914843459683112726599747492180120723028653625270661143798816589799276518033408588763595678592416160328415058359459526843955702530352715792214302043144372885436225580148829291593481893890068810711682217907604694836222966287540512126165143358718804326645363960707286833483078285099676235136843820460046233786359647724405834552232136022722321369717409080310556833283779503992688238121664102076428618577318437968868789982145154383251860500482688692860416209078739356333749938364937575751903701599677663409860310613274415567887466866985117018862392868692165425585107760364522195935832432330950938488852013554393988310955369936087735232489186022113197424854075922404531450435441348982627969510132157210158817092858165977301505479945764756449192793989954968490623094415173369686695829784680223174848875875232940879052390908009850406974635476917751293680164796981105319982941945364919034072371950732716671102307694871616720203069892906098527324158601308910796251119163356946070734588015641585629169989106038822705617016746497770040904431384923363094152065924649913022465891042793632073310043169363729937212131348876579550815897562958002208114928468912365266402997433601487701338928700241562835885322236061099871251345651266631803145063571241564671496917901331494855862474538536691220328400010848304846604759759315339708063880931796858055429998661769913974644399493220275124280847298435344158115425306570542469151295005551596095128781409510685946696374115284578915088293212635583019844160731279389103747152001818975941839673613119170090283569430826833516932895367185247584369242175392828401085560886949127853364786528494070838815457301306981320788019616467207513811430269728141827877789972182775563045256784709901980805051905575690294634926793835397475304201085988130580656328692232795217323620515759145025524143430742766008880094945883893043745618556524075195454416495417916805801796833392332960294656777191122267491885970406605796589453094414283522378712098839063782764095446667596477966253523242915770269194513409643592513574933913820997651333347627944000377520403506853938465892932219392469286083765127650072560018206333858505429874685325181274778801444656305075050020063360426318730179009917334020031574019655341509319837020893371294706757238820711375931665197712940352557346102263053322157382167480141036838411084579588916172362328298524472668602098961904486625549164143440450111086119251432877552613793233826602249260789492478792494097054113629386060642525432600437467555828031023365855637310005754921066785159920173348232657378082143697195048188120714376113725876777930380022948386927684815648619417776811075235945626933424154772472873234237077234916601705464567288285104657881165858558930296123761430041243449560261025608697394994135651113658023388747125665203272690193955191774611796074762976435259023637464161220199533394737844536052502143140503629638974311902991108106371049434426455702172502923929319722289952933290279140867519013486225330107124300544567595356469302433863794623816751926342940304039409126246724066637376939062810007043140855653720501205144837760878198421628912732984662412018400310393248282527211836007162650286074307009851937015677295853319050820954742191732099912506314661911486937864241215126675145841036747511351885272470863862830420702314316493268160984846599474322331917351731092337788732435729293714832350207386724961494742761463253552531359676458300396455220392948659334902802417964709680652195985461737376774304974676644967781714177419784970566574627772443036839884633132297863498945540291519085687153789714435962944155450885119917335615779849280922048650021083178375381732761087338691395141306067387954163708040903124995552852771195655142126558782253173369376919547524434801618517223293956457430656758094010497914015139331402792840310987409733696932596743646600665110980227065677145286703218975697703066903999706236237259350486174548624568338829098735514527991854054277720633383471864397622400960194180418943671503819165141919962081988121026696230289523344215783964541332440446197674824654129704388266887423676585263813657975533382128284806448753655722810249804629085428869656252818936202777454175421173358141566287539786721844603626646969036018144388046879470979532950605287143339339213731059121256900273834916503971509114840065481812952846686475168308942523840768617886285004305278762269549308348505270622212035976226268331460105618671270424679551621819287841871092541233056015455825876160557276634854901455945229365958133952936190311265300759030389521944134159541795132256671770023203524966396224556133781009508033556715163047454096541028070128941402536494928985306220476277997602072237253562212723183808583416793801960973313874893880008318579969728141718733239922147348156790737188602236033020928669438020554005951248244392071596034211980626382634688658717470493538760893330141763406272574764238323981378720997129793221826676838441554359407631410022236982152788942621001120177430626103090018916846898323546923133044258694866688398039560255391252429170545847407542821732179092216802264088950096119408188622551401504595550254826337800972061276174554007138589610582701889455122524262994633636143515400254563731115555925967349481970835174479955815831106477944999026080745494679740964402199077085133053956951785271593900520689649779277682221861399524343738088680948583269894561398793656984535207272854618274628724967265918088107084354435486015523535916176391142592243512830262678043312262813700588788648019881054512651981893226160551217596808681876416297916695105730926440190772178557496609818195827075813866175189250880520982212965661231656589275395600316320949074907329228470714813511003717631214847493197851030114884799029848146130645576428852199311558630101599572979124930984146845919732153105495101446580371817238794673181375183929930435050616691356937514397896492046641857553186984646066228385821845567979480019693450663127868430895715834000880996972216738941041978358919790324776246513414046713419048006204103632625334673395602195579942930158847393978145076869612046690822069714499199138398667075906659484354818779447403124155348948655445684338966633752602758725750455025830109218039335294307067327301686562512534867479959046470643039697377504575690353708701086709892436793375555896068447827253362246449907063550922953856131264658840233724593550213478681938780604880891460494465857333821077038721952384071664002889372298616762681145351606665004061136805870648254656518895373985195253166624122906092241776656484813751887260296503186219215999255678131509891044580071069801394773426991688798576677850674441696504300002137445096474997651301529635368696108205344593915132909614166612351631167502348764721461568816099984323399325827722045196170017292217149540078414625365709578480682634435582370211074039983949465257135523137677544621946308146068259049327559269785963922432630161008904672586168776002223426864871860691701861676649820402612755815000841961537742430514204710336305869726622411953777138056732639265328490192105905964803613868351170199808783332523008135230959681576198297489713414591950109487316997960707040039238231468864586273615541428151326369624197896207148224721994314726555790565595733457765122237490631295108461179686583044717909756883185937824076389657270970094966055192125000381129570972515697894293087075420063206373715997393002480140777266278068873578346404869489764655118277134556172560239842355810918469251417192320020883874543702941588837989205420672853758885433907070227094461421049067600687372595645910507835385506388827239862049649543083854959946859911134265757315486771009693593162255977574113502274630750700415190257656186221561672059981367316039605454579194816619580899209224765309270575281200667545754643636226844608624481798303284669759953369151855495701968740756181487253109937204105880520784758572094365596082127121661933200618992601387419667032636940405805031727025679792543528204710738664348619014798698480441684901032599014729704481876863871016969147456240811332112037795475848849320384031501400147331196497290871234049104909191378873342492837363540368841643177780396094557298484254348209816100929642738735643136115948782395954774726139517022087530044023908038177354587097820984621859683919605500704150593624299958982681652022675420516202645435454933203669116448756306250521571386816987514860841580585456075461126928201677833835362499776656930358720208570259370792783797268827011204126875118740828120804355470044069492330945030476823259928901326003495514960412316605231965969958165296895417791642143384588392735073978196415049373289799859344255910534383425906889895380526312406388654786396500104196724880082091617715823337277912313015419499965589242448782628069073363624853572175186980767664466360340014732806213196754215002437634253300333361003405869523856781841972925557022325720882542530171633209209034020657388180620582706777705405393328721304902884989598158402306725556976252584598167568447789466142182582742755937349078316649791452351311745166545689397534866788764989365623680819797499775573159217015736829826701373019789150294027134673660101067798488629345324670719709071514433327647578018596042080722070357218898502359037405306791474330644889892622922936890730126277984322075884085129283738159058462111050077542114129141359115482832250337666094718151406438293778543909049217843999813685627478398745984500533967554227044103778022563483528421358543342034932549047504570428189124530467785296282239612305489688358491285074037127837155669636551920079649696904443372779418009395931460754638453521910072111681575672638869561675827873813169679484422211711813694192360932134397990036412169232151412986490241778033927328961695127754097995258686506293777477715509578866386506999820662118131463157443614771372973041137977283368445210313472256333813166929653937957968425964035799262150395371834690056905370462127340820401767570186486470089078956152370464369719439774550428481814682519379299807051073089630063376897650197120839421613699832261958306935491963363106477721246086560309610984096209438165913501328991455688028050086278761449123059817906460810960823278181317878894825081177589032600512132767456340192749955018984328948742048192465557039407493546500246302764450306915887908939918572841954830697372910369363683302498697413823781262060937161608111114737577717807630604252580055210358178448830164537157514575371304665621334886769709813849190946086241824293355642439533847571839135914056428799906639257532841324043743749135513692375218004594097391770280920860405354260946016827050326990571892787172909871913382370803963330710640243767819574925366723875173224843035601541753348246720710864368867584791476538393524664153402717970518160315213313077387710757362535917442836727579165080086007001624096700212764781176248094380003523025054078170114356656578870100857262742053028199630991329930231349850137563864977270289104081634784648332031132142660192003308607865640634623564574444071787322745357949207678240738122959158632065299369316678643213657030458323008873401513926504321889951063327917495721028343019464447708523108052395515745028309948580245155413754998805783843760655325924784848206759755095436590574954846951824624479628185796165237932597937848440411633904732422381082883252406317018723576248128941922485398613672997156772560499052323829373094743218419833259386557402581873341855172619223313520168734653327193554794889507828101472354006230617994848533057469826674421055674851156989750643736904322628360961613194703532069829168883864770988430527014658075916672338358557076227034676496634824251518245491697138527156351402251003321851272303621092661726917537629825166296931818557356398270845703704964486213182990358555597300436535834946856562494556726943410770408634257801774802478969604990393997818619674751489714385153872572286527030434333979583872535604385208311102773117131032412601764237592449534777045373770559754710957948863263308177880306797972974669738837980380290165441127125045786384467863279810158250645491787641007413599247870750128990693979394218632267978994555981823986192875345478352681970941080424024056462706061909265686541886263508355251754198017459032328589218481937160015413350861338502165556779069772410462996287224595368738657095669936516302336160121064072550579426590578138304365028422968405248803974911203971978688208737615944954786745703349664905704841773347066844156907330975473424237311950971264970788229576875023402006425801144875552134522426202549961504008325748904768567706433100114173762879705883333531131427395063321543704569430496501129046424681971201553424763835340505588001451013733079541810132964256162964180749087046681784298460644119277028654039542674211698839501478450975780840794650945136258695908165821313587230028560255456387872380253069920313750340190460780023313913667016805617550998700103488962722107835753898863159515335186936226559891000348048193869420362298391650313314947137138801455695950776983948835472284081770034952087230762153618845350166353710250078778106126913196862594514910300684127744417759530152528445695431388227920376484322094316606403831585594913191416648297479885659987732027886252910820647645621335933554231055223443848808048261635165174622264479285878840472023437499162921158840898767259695252709869784456027165588518024762763998450072806948662386501193039534261155982613402514470480237815627932985455719512952531726855284394928906647267864807284559003086502449702605717646426450952343274535822460888236950693167398597275916876300861165687135889223666653058004757137561461202158760304874336709163791631574293284803713962602920868439270630754634937594199762143518718699027977175197034290321164141278954861125184133391188267972429081813823485775049136315421861141882849727156431615832681711305193547519273994496682744135675341992498825530726791789205215242285715189824751975157348812281412331158582057488341310843893661341819941581840386641027506250047554125389236260327127334417018933339479902578779146677131953495804171298997409012632282829706024878156313156014517242031155510531490872071989630863594357416701624285874319983514675801368011797658399188935607635693272824183225623170815694174175548831731793685542066991797147462454611408996558470216168260839539308071993732031548798967757588097614471340583176870178896626398398886159953468957038345111836880154975999929538118452347151085808028850841783538676716469076432848051689540529088493788066320804013701102799766134468626756951425358819432610906821089150737401884064283814597963004195981098088269105155907141838232467087848684265334720450546841716954655214632532266227809662981714580386967756398548063422949551798879184620980409855819673335411038530055520581627030573280227850063017257847145048209284549127919162026882621633697659120518382128481402904472645366983161277654484047009673845891717079687731104402719167006926077360178659489006828230430620968086969041191834246203236192276713136637488827541227544063451317125899429684445193237494693457148589000676164581381351439322416398301602270923023977619961541778873617948088757311876727647389646401639748770999298558118064300195284207085282031717736348007297477051604641879136314137624253987575839815753855956187468263113233547759523767042905185820630603922148435330872920573728164324117846258815076647498621330547266218139414572155184757780305614628792549123796904476376053805532094605909418386179080488695762673770556013369928307106408518019288459331521027961735398723226290516317466485620867347687456908663803847606133700121057775838535392483925138264615170432637680476030020089937612194036932852078188927454042955172165559078848194115130911776669678597560608641849189312939444455550893066323957554544269905757898691281919536694335187662568136960546114204014783879873772093463141117180866217285661638798478521011676203017569876659857821533076690544108886545052568089613033748362621534014184892058227400068353973523189346615307404706018234766567393255866748335744654009924101195820714089647457294305811501334069137745819344602748975679836430753051827527850815993019549248078866459713174121932233918387962492328627056108753875896710581910354203227106160688172814731041802563228907560675031957399733133675702062343214728662826084076108298521424694954506812319054753476903843794348424025603540386012835333995753517833271673143049197063485501532647824107017749621129681469943500235603952713490437348202363848877287350738780310945600172512582032063681462177520151979994488879899975411442538206350989789651579799449342531818915333850571432834951997029626403816497892336565023223422774027324851953938583416199540159004097517273107168018486837959521851945586881387754939404866234459896780246814687707357674633469646271010763704992035243696971109186492783843997803237645020940996239501936303429461894295678949640201130210824931218419730766911255856051399273995307534729994119250663995621904905700221316867159105416852234687002143550713854875463228887337024086398410249823358787933556804940645661478222153470491604098234604969513279500631203146786308915191724493970397428291870459453484599167624342741438349787408425634124152430280801475706092407616006747805635684861643665088797133848262627380543679157474280599528738963613072262794464259276928342517111937263735430782258623251053440768059225797203067319009578611114259484031232748629787115737823978337555038128916679256642512796519266939807430317802714701153552502142863944556147469357179665036562885052903587712720931338813748253506764154044073000680689376439125608572403517788794373247265825311005221842904076738105006614868131745691768691316539726773449417531143740286995714354098354125768578078000274919192067170818848740163637144689423485890888980351915046037280674816254286204397621496139743827837313454555500482321814929714527283289305234746183392560045419743761348331264646946682931144727522408472860227990021015039864269944950759169451420031551093616909952336005129460504400975971137179714711751529506643144399896428792632263339999088977603050762530437953607498437397426326885426451379777801186212425101666705698286796938158035349382761676847547682571892804715695677271288514339445580810722516691489033732668088846991130566648968359223022588293971859824609801744273630463435358792171340625451576059049161344288152716517978266700641927355987280360158327251785350722894025699568167924597327123902380937069291481633136440455161899250937047240186629524846529051722797778876785200315714551566129426346807817702807951213363100023815057593258805480876575794996450444730490766001499665790084655019547811810963808383971494178883686888461130465878321953190928838198684893053648223201144546066767802000434802547549616970592941475857924634074775950383216353892830848161947925949340734529879150402238713934994131410451838384654083770784492523212385652380901951541481739810685477618135212033278759607812246952579671868395348942066240883152479769710987683486446492141756611102097638433474199017776805913661122728698178492527915662040022934353793124243342582903265840626175815711105086099587870000551548996809850805939594663784569727139297697882916763637308065216752903608695548161100121891648693235773455509920082070001280445874780616308113288110309601047654198659346829312611188773277635203456011871014433814245609637023021904443726220827111198551000088998566968313962047884817981013128125862771077942686666185314319902492944387834897662746519885601095732649469911270383379476371094633000201510682867561253344696999912561565738981933745564559012680711079001944099865864343118412487757302127681654153134665159110684622325358785101588706464511309668854270655534377674614879297074596716262962576868808488649529923129279394704254537856644297525775885280774080335912891534824341712903478126885315789450135442726850504887062098329647949288337709495955056985811215687908663079471760131225848566243205450031867725704645373515611347797753031390419434067626385991010171542367388711919544627821862654324975758632693459531166425945527425994656876251836610568480237310515944142003079708803907467823369831783739894802365464853570606671950621404350822642279122489745012647470717294105832614599071500393210344503433872392471390168528957401735146040637745262713480411530039325270380552162958258512896627473421091714640029058276693399535944706629617362399178331254803312764378359931948127386595254289388360675318977408392087741054206771748850468686682439461447455788345028992403048832917496000010424233504479951944469762425483921194377995934386969735706361836322767820433648804567119273604234868761866569985540951008584915201063063767288515442605903928482828282853285709957877492674250577830780503910189445439214573256418431436696979052804805044216676418173646059253689579983073907343435392382219056239259968094968133994315221358490801893237228505291108888365772452425761655485480645342763512655405156785396855001452247656889389027552388509866996878099047555193788616484696059422369999885684378601481062220589707038493945507327223702914716228656196241747610915871809097585257316975978988339584866592480823361547375547415197027094129557349868773121829271649888495061343606193352859339513106111856282448002435955453680633123841390446751227198612605082971611356735001498661579640593544984645697540316932677397765565931341811259503358867706611667667739420943587523573637738987806324191117935301025887131867488101577546353378663225403533094390738126326252992691761946679257962891545770729029807751511831142521562642141106632673319904924074320072445722220145125330970812911846632286858813341632694371129078618275393362353817028965513923643822414461896017188888321329592042742130994203207408954529066335540842572246057390852966077171932519424527919069077374254207205744080972244612839086683067045521051993268862717208261843798571546274353143779829642712770511181193148528081058500116078455608635341107885178000320488293415818568830208532002001376811942940719051130210755024037555265560999283223201906268209695808998544650050082531958268232291660449802129550002038369636834153754541196238494689578470178481103344469512092359057346708536882825887950743988892116655344974711882763305541179344321575843970381154209216819790447623877984072487410670398115726050039466915914948095511800284658031419730055149596508523366326617974461707044057137059154058204304625589290016367700415427127945124976303259782246356575106938668451851072380487838417021399999097384143101215466719333662699936868790796968972020395298721133085764582541393439791189425914156478330933341285422949277030961538903539055343191085325731479672252345882587838403044474102485238350041077164453781426914389452461146918374815510304541625365060290031048802143111228834244023429977345610820360336029814206599670873350158737487349174384675608037014621593198398247174170057938103756270380463166808088057197477758042369967532341110966805567570034245947941119279357937283704104119831395337063678277621693102548380263160709450940528523410168400847557035083434516541684855161763077153351181918191996616312762848787998354609201001086431792186160641008675566351939438194332501024373712886925553960237342644592379194145056344466644652219833432956499630619862103487888318424559810983742235768534369163490505717404309497858502973180889776337753783484960915953727099538821607448294210766455291154944690453998198814083598334065508840879959421817872590594285065965612933050794413765948883079663767379906704238524711917158598009037579056107708191608473317414188494714003217732252139112697955676495950067538473785190231235591797458769183782444951479917767567499609250112036882844721129120646400086146830830506533823286909000647178114094481897982044293425692330545372035336953178918629348912013957507002966557435918802178378646426291612483002903508802537683387626424558816671536306044731732801093002355829455257347290345317890335442582870868046971933429352872321370359355298658559179579200308461015658789333323179465426947720399091928331464655584712572480600240214393635390061038368444842771163893860342161496777831011090070027179041612259611492966388045270078942566557703553087771467641140555473780712156343211681572279910393584592160211433765475392623792260883042431001785477218998099240105225594280665775760712157756645050271690250368790575925576820613310089826851552224304862502073435250471259146834111251760546796379039231863061915096285124148853484125823308523682818973406570378400522143915940104814339776136755666011875538438541817747485320622369280555005455841766842641690871782527149297285958149350629866475662144876558967552887684562986624412334608306525484287031261476688318187600076131650989218959079928260867791100604623659160354924630815064339261169897357169182497944936009015100787378964198404578496387841110104841461250068447606076709917143912342069230897621748911720500567544946210945478027457601727313688474008294275100780944360428234599753597488163486571852768465275451083930891634441292571804375819538601472002555179944147252560450151906341727674581777568940644775184451734427546547211877781383987351229746315052098717897996771296409463229756118335223498161658058098559472725235154602793913333024637083858080835634848561394418797353210572202314137582432187938444299627123928640859903548978609342620778917739900583549044570145804401100832535429796158623254208420415734997129132995562193907923846805090474790293720061684889385175028285559967267263916825439404495034813514122674827882697246398565994645498793087322073351453459061917707675293711379213120371262762431870938175626634009160187415557757166580830871175947101551621128586056719697910575128793490419761591836844228340748133930931391479346589828767430142963479148805447786549079439165294091215970745421431061643206445805730287742483634404204199816444042397175232987201046365907012084716370156741200895025067926240817496415311780495768832239090761850343536393669352944082070231138236714787753447202790073220249277962003062881211988950171872645062981844129210808396417177342597202037368966086289726283038868873137983709142611294209172540609701617630307158379923435929255710509296448365568869753704670045200233752073154433698151489611052830146713188909508804143880545891065276425051584786053410144255768047991706334235335909691105932184604698556261060717710895665678602111829343619947508791634910427896858119377842408579834439695887365087300188484548691408133385308187854311528558109735688981903984392349380558898715562534515369007587011275421464323729614192984162922327375923126456450250210107694426550253948203607469444415658586165335974721578712665426690031646756993848829036650819747462028476441862481074339214694577628229444321460383296005106469573197032521360944636683578462476581857662351038880884445309498157381359352129777794298032921299290392747756171800518188858975803550082787600553986484976434998783737008451171157752172053997238307441118268926448781717665824225917043683092870916178545082196119038829372230444274932737049313577626039201691457594578752755825069542947968718749216898355881448571499447931956452558691887861767747643807336243474906661344799458624143611957784342355080293603619871238941856325524803534200662944194779783202951657713406104537286088356544375625498033703731047153744530130283759560870302510494696424771951322833440561302408299337675594207186795140650770095721609440283335815080634357435410887170398588426139074809905799295673470303706519220609030545825001217411482031078643238607508868684184402642798868378913185371038104143317504787261432853021268837167212848573234901462159089458216091141480546651480611548562152807688394773490839866258195025177250938096671701684252372935177905036560984510525329092611223864342063320888586078426942477246658880358915875610789043319299208893783245306489128286915613871775282345279039554206981174596937491718621394961333909818787319231843905884100923925675720102291198974741222491442386269821501590319014951284180678145986241716921243487941748174874468001192313912194639763347726273044904219801468928911305487754731098162287280929086882898719499599704588400699161723734841827738198614248005162108840835660618801319662655175935095323170938908856560254036906719215766978771853267828540806671716115402784385154388309985179133735815028453302755438163219916272762832319242306065382506989363243076212776186150911524571335531426201091688752288113663387307462332190142203987492493175000765902344404767787001490077903649559425378786527702665034219352297147577006166288964087293061868600102375560832227930027262671483863759611791198796096279010542227612295274401370071978745641178377208301525866686467427223177902136036131454883412345257274909840290786137326666936852191582489008474627481247791997961693013000570704645474828193602967873995944447695178186829861498917451395137967830568343439882327425807376498455606145164955201266818157522195780716620721554865371011806642682411914887891139555187840604338788468918557526799908831697096752537848454108755865820704824709085724658003348907751967983919786198639421466656653250329861032294332062442314498093978777456023473901502700971831265228871683821264747412505870933587494974960611444042259145880223076628752816345052741334517989909589572801342591284251405243328652164734989415934373721691175774353678217809877744418067494954659537902813044457539770609900353378041116110191161021327848403150930323672189525965860187002191838653362224719080850537594035158498586287521258418110937956960306994486343430236926782657095237374378669673484947401516860684824890918741501581037423281146750281791236881958875631587193046040517572983447680084714295826742105615015793910395784799987147714362053549083073746433391370151905999445232307233469136914092817277825348300122041532484710559612909255558164084410865841599904550445827804782309632348024371202480763007241420183020267618164890783955581588978167415792636928495154690767577940253105017515945593745943633952371946135829781563445383047319963436115495127401228946612467588341452243683971172098407362787884931202235878604722636340408933158113617674520993837649098144583537263206024533042354234195229542274081992928893830273108959365936485278652325634506235562405369849163639590045008430441095172312845047858662143266326278366515080798992282164702070874153881643307077991575266309753644816244294455211810575171470711164534281333274604186778072075605370163076837704641279465871133142067962221842178346245111889673979496455137959957929113094640763784146003654823186930999995142187948373710062043109640836616002540941278158071658395778899444061062502866762444119455093900869735629870115153087954695806994245264691821759158600085465152136606418592993094229419622602016410733375547607659714224018948662983141937265402359718525836484018559930313491507278598216117337910134786319702320691422930137234054536001579266714893674661654710545046269944208066872351482871737385627193016721510244565050052091387141669453069578709255775756675544151445055192221145764373059479026344476387648614320535134074237325890643228645773807783193848952243256136417719224493899837801056396997942459258184992394990469939752218231309663184206236632324439067089035728388021139601459691230334254126183015171075788114495458588351304048653891189964778972462316110972593034597464366227662487067733184458353749442424733225503178088274046534177671779619881507513133839469862816039425624684259988608881073714080489669883972672187687962892791106640982387533738243981926887347339162635373957132758571932381724545673100978089187792686376490672047058335533141908695824203990784991186170168630571416870728220680702117317760489092653277860790303551536509718642523076684979198279198187310272629543896803490622618713683680694580008456386616951040798526394758431257389519854896456135324635562644233514612831763788188841810224407901982575938558596207175321619798135370620923687041978157598889462775011569894960909467090228392445503418149783020209817890920396422380887079104075984520663829073049057838312750012454698015360124712880639107189149305257790969816041016684157038667456088747034691507051350086634932820688850974531801069498310763518986957992362391735696164814574504114737460974243991120118145310723796318050257973164928406125144936955891041619891640602013179375599913216184630917039156153683652282720547660425023641645486256173537564043582038415998770442274850426758521699228651771939837382506838694958423650420866674426592837989851763990055499661889964479457266921240276960795430823210601689479749572495728345022680469862474658128461134054735477335600204470661253310412299806255965082292793913488467669203836978890963026872218324129690809455019182470814479132510886358649775419619176029167877361524553192457535597233555600569798510496846239357595414860139751926817723824614402556657613383662809441648046961934898433400130963812471254163601579712791060879160913660655741611750680120003470991315985900680227187791018729034089202370296363567785938190021703114634954299260105709413550870979923150743145453024792957042115609046693307097985911308087633002534327990804640117671000558802717639846027217863501757543742321170858723388947963164904403388585760111320073149836435360367422168504881973517454645968183406921680803813248956588988328411748519057218068361714494352607043903484297364794232506743813086835670330979962998570016262253579768995393099906546514772176578694701383647022708043829505681245576433029878433815736288562996493277858988753661418562091976926823713709585359466366984526079149506298693004925641012121927499537328619916983789234107570803996210912285658303654562740236036511564648356039335031282472732789228461888321416715140403598595929537692220088763331085620778217916930318617804515065601133282359423817021083518551698093078102120280416023070520623980526574600345627895323505995807315219039839633525394903272221901826086102243125551045997316239742924980479749022552290491997056183160142788662607133195355821924096836175616153808121892858690809423274598830586671699037817889863123220618257725596866564543365936298885517788547863509068271673259887597695028459980247866477941143692622047605196085417274003938831910975832975238462947890125517018055124921989537816760540993364634569738347970524933807255746302733353149789399237023602378899216412949963251351945547202621264451806329357224177212770730566069807899754753891838629261385659486277382106069007714865578544612358908733057572106612254674494444577575712592023381225753558397862624926507029379692049467087657112941957960229555380164544284475024451862820308918437273372107740138016471732719684620575389330435312516261364599556259415116451945474135403926998507928222049210166794675504648082334033869432643176517709990538026005649038573401758994162386997011139092553801514182587469361315153213631784462533482122340156138035005068513667372647953197057004703543722851996694917988777554675960129662867249129830755443332943755266430507475176194031511119581548631746323959894210962562453041485118744594464118258840598127551471601416559752938894204384787166818033184733003859344283534924284699029096056680423864155998282992064540326995712479188058099521331314348548116481426668041042010291925440954522441785447644029158996018127754635290402986313077342039630214523061945193861860937311325913677120260101019309592952628313446281014729271675254722408224257148318007625109662291016382941934070912809055247220962055691839204345545329597711627554639151731375976993594507499208836093087895110745785520626440964226363028797204799181023099632755248994900676930820837354778466341636026175848038146932993795478029481235899549526900850673168385409166482992665951200898589611696518718387403401702561146492430597223098609784378369658821075024161975879898885070187942108248132832383147235479461512769923554489176305538794856294867260272670644397321073500833687843494878672705200165352730145768364558742140588492642077362822149112871483552227279657817974391855908280107649986578273898846675493267700695795006463630907387074324185240963695952693508065353152472726041049583036427228820859475206728900526455246592881428048019580787434412660914522550472151972538845237689666713560037363672177854724333602628319613058133202609133771473365688320266276181424159542023064786154091748354271559256459675033236365276401228529184700658206275390727927437235376879227729373144103608996628417292815728353909549050298812947314192858740388136279989318812340937345188487295741957345686228627561472845444493924178639755221089988710335333471856954534322508627275389215486411164148558823710038109481731725489175617193775680555605227708169976900952176399963411977425400858510060199735127450343746519679001192739449839443014311048510246438996120495811880952573081391491815892366584567052275356940019351443996023139550735654841683291527642306955932680132740090389859513388552359706936380771027255306353114971470381013515802013597230698510204598737138502327470637197356849311592381094628023676538109087798910457149164019724819618189586854982728250657995012658088546119730315753689577546982078892125979108886855867333636264768877482431765649261369358157732695508125772760541964132678924852256106041787081859194605826886203000173091663494331811653058899153012278888394865875988315769721096118597432766232007458944057015698182467136934150068988955742028632256539128013683782221156827145258895989883977686961072450192398506164738771247960923476638345928049877794521453151245392708640796398827712586773503927581972786941101886381753920253275412547927203096082089527533206145566213962350079402708273600663525184431417263806739360570551905569490262602022839358592924518882565159632672010355372831577922581553850155390692655279129861347885180656427542479586650432435455532632151654674882818110906963690978962219644777308731476807291807622411978058852874611120169211511055554924842021934450561398310141189807490148256543288488457932073881581894085407404312389468126015816358353860129575966382588779139875116364087608761795102840008138307599455330619469207482047199037955976196993142130477085986101009013561886104098245534049802116184296571119168294440606604319647323086754450255612968536104891672499181069189481746993738869385620054177001054825620133595727335925042809062835264264509306661312130713979843296983599749788534468459976606654687023891362488465168434463539887260203821715065721916908108443539130689511172313720280572178323306042917856383000099973763351480092024197063571273747345329620885940537729017051086489302087188186760679694734700916898319536171426196362929389866235419433012244394529096502788374426111693805152760241194608081170871647213561452811123594205013695678443924018740854614513888880446385625902503418165582859598298834077174650341962640702206240913897371772004795101543986809366405596090314743748438755151417049095567669304086010076970283141671455630471023093753880304116220438560881779725758850044641241156784631588411208106693638862665433141951411500531349978382104179148786564751698934521544264431160588697135865157722883922438718801918588871600773058814533424195848898257455243552724963864484734436303457022123718543763087101234380525080272712667084690401101410817588279554915657194098928032294810371059838267971124423714561912429476616395376016065732709423334636682990005252691599784504602564944282264095611251046823441830793579939785513338529823454926996082338856221671884604568997508466397985128665864245058189751489133421433168475574793586117610588663661151497812028911348229980966715373903438831453131159885960443837768159045249444012182104824362401234850589394954050177271544950611075562703139081660265903361616173559642244684851067170910992680343648795618401338758011499263959999971951682684407222793989754244423908257055332089831773460009983168030779580487516046175539766862091272231566585250078235217044385212005761641927029678463008707959642952521879482215220406891091045150161614096880849612116379485236060705227229017615641578266819184349267230434010347075128488640792368097637130982036494139038183099117218868530530323056605059738160125624548579977800993598763875725512810788656752237249816962544074296636249916772962110646143515134540742249523970130285476821404468840365651659278640762776527915200533998213026846051355628978711427778207069625396115892017333485922576011606436431480749177262015486237294489218089543464343922664752083592859418849738274660030027902743925443181196902705215695823910439508153846801376726566577839158997909180378110398128052277768585035668963767831185797867935038400199304281149013216094478837956562030638932622950580993372425572806839471000729947035821851586320241662850828969706599899505191538942004466991074175378656028763797270384128643271783574569932750314572687780673136845022194661709303662027225802717335113696528247886436711255225451432909110345096625735572248426566894787874037216410593728593041472839684378498519421075211213843071260690773703137319703626189639111657760207980837858415789967193723511786413494351745372004365729986435064456641517354869298744616965747954997307011704246331038722854480762683761365591397368700111761398053747530099472437582644777656221348529110483080559140275228501125245409191042211291703938270258430772215133761794227688823893877225674981613152720399258427688806585163424852038556703600691440609485124590925660612181055449085517548678982007817837936190143191030462576913998541791256154144943039335225480147988250813042272743226705560167751340136122811723841801160752383958624488877716816099121866978819036338902898991129300557079833856069550531467687878874653446418735231754756100012383416549668954858805553818455156479349139815478544917123879407332431730160337103957701285708842529213356931270043501681247596979407062984564790882466865119380361646875833986514572855464331219343957752239016033423583604302175324399546771811389630577478316358380035447049614924281731484021898461527988134562247272454542772646027990802497144824156411013193831896552527841915861946032864361835272386674203963330345495430232004853879227926552183072411336680245720534582181037870576681282880548396986626615048474467376585283152927570240874275120883850548489884224402220498841049562629119405773625632894466967465598596041129733894476499987815347748170073722008944711378525122716565238371211132064759140276757584449826962615096590463645647372801870225646585638349242838438673120212556402571965782646476337810488788075927291041389555849802274100638985796530815481098427013785721692720069688035077837276400849062296303403512023960597883708691657476239700152417175203961813570768600710615506030119097228928389117469004195264628781434863647048784202602646970124677916813513078613809822387452004236881052341086296136501470200263140628308896599255175399778843447061412930577132691133958072577926810176992272140229284107868203881448785501179030138093251206151526973334483451016066399393201668484542848962880868726702723507299958847145974983998992718750533383881198713530157533716263416950787309114963588073136380643554754762209481209298584056757260260848762558359727830445824636922956828768128341042243028132448135104593017851204904774211689267028351767984326119224457142154958802538204027124312549366962679738799799252529765838747577551781393387840608026420435314194403200058955335042777627597929852568234183371323622028179314668046242988997938929137402319925620796358000306764941850212288524879548228371807407555623473430050050778530203678427282078420693167843792721014693634203338383318541012287523223254034796401546374643221176304798040858617675772823341724837581504775671940782413942507554308280991879145058292527430648365101887863479643586121037435859982655981655653707690684146445245167096448105452801837833075158208401143068563269709431115482868395365453771321407751080181600172165812329281897954055967696105522396641646944214851807852900438278316882804296888275370289074054938681338818983920888359128390199618238487454520836165695826736161461081863067514763009015542696143595172173509949261064621273729320586102860405992742545993481267759080738546060397497005367026530195291822234776263830729899745288071025732091820540098123866080054373786467984619095636416724128532772350184274426769264890253094339606018180383052877422148843487250787530402073524983827299269221895088685135218473656559820086897981582331053287603133015395613759327040367690292495428085331514799496645151978529830504145576317804384809791645017253235711884099604165765278523908614691118485197964960481080141365946667754974374017364690348342460128135254659072109274111570449772080999166502391506782281334212897165486724060259064138744253077477159695687004031999528626601354789030708176704681739230141516768208078807488031498647532349939472729229157957661548975748699651842719061104278258067016733897633243576829709382020931067372835795129087062182194234098192156580049433227411812181159038992896230093341571215702540460085047682631684939133462778627776375633727741930845139735082885109436362985325395363627904761026246694098276750987969089463814751350069377909748723368831640330516502031630560042970838241984000809193887612266985260293226122243798863115153398628398419522251396089340093083611484624400063473235199209726906670452358704007898889811804446452459989228598817182988972823088208235819190879316888482396505549429689596812405644636071149261671332495622896217769179182781044755460088708602936126073954832332562557017926395052014443691975509626519516283563387006360890393267228191748531570393080227118440895743755744840899074071562701378869324022517964128961136976176733401325738937466245185822715060581736451145000427750815667768334975288205806585705013570643750534045408903668288461616412426105039414227576679819724226694345128317792924973862552268610546227860877139694558928566262138590933842300489863297578639381000099536661552731107312425298136557943560862807577923742593005568070214868934133905640826182065947815124160353900991727499160510091579759048846361722825812598357519847745676512049607811012524482197864084969392619565126397774849446312371399086601870408244347664035271598008710999984941304692996572860336042098295044518725686858544420169346456904924718046920913297113288798817203363608578856643339887589416848183417561993006371498397299580340700481746680319231199723890667723234821775128295965395768092557338929155972433076227310977323561549129136335758838923855095805792504075797098621338274536470131492745450569263260197604991618881930696558764395005450893647848187074431819558778346301783185616077249085063430599891381112048653792961428192494769003625207065428990311905936577829612961972484793916570035929631021491534247901513632781805553039046194401373435700991158488526394155997335212699331355005913916283308493950487579162837693861242586293414311745695750216742467317423612959023610464690211127906159174210169020276187524212229035489533370367392695169169297660470199124626318671585812510524654721177494400282582811890904889464990340496633736949568393105554581852095775056150115194824976448294850721797234965154535064413955815495576467440495056402810902775014782189508163750615224362120877410740207539183365708624866899544673836033555293666649759777240868072564714490065761645960730372717412963721030865829164881251412644015315428283255892552602971029930279722786252333637580020508319202332273294950228096979728543155220435988347797010685002146804987736150222651901568585035798489870664762412668638031578980171608793506389076450727270061632030611184613464649482583078595992458369269482562592798224075456211408450221492387191469384993093655077700933254597899930148227518818012325150507205694942050501711204226527676251773902246103109074862259621142782707680645416442394863133608419425503796242578527462484492871788122740563175040744851114036500779133413444231846563405415881655200186552261607707348350806697254525074462921406164073481409036464560412583223459315122210891063893196695731341864720336152588224351469381632484563877718093331778924577914051599437525016443120966175942371703609205411129795551235587754342149446998572559180298612630410662421601811984111436900020335958653326261386620916032223380742482821664017458398877072441183901463401621401517846847726025961456119171640548119834372408856559038338896238343209214858851289657259048255333188924702369291372541788125233635872546198411063439632053877248571923966892370260981550737981343846378886763698534745687074418789043875909967689438175128915660304288762553115477721252388204495210115380406981474444222446991967508840921533256643983452996923703214088836135722561695725318890939161941377020428648978720388553813635422557868432877630302660616184574690851489317754347420501637695452659750711029524917834100136174129090538182588392781748813657466086483875825607540940944398488475689123192888518442298166839114449770669398055209063089229502003991941066702758570277096118722415107666685494083064095742866603464869856524701503571419139567034599831336569563843274963741035910322039957742855523894388551421943218065671540115465886041578750517561624103710666213280112337636849483067035751139393436547161696003693882789681683723804613308298798026235294671475293935780673737622815917169782418768837830955725675025859496868811937643412751380928933050660289477495868896752825619432267830906559749360182258455614904793161376481976842671656616945258449025486003518430441397293354047507001298439383658098963801202803698262434052143337491365691388502113351986067104699093315694361698011899880245924156209996572179350805128415626070693165979577560677915724965803696250987402645164709246965786957877169524062594097190495638661531255302397340611280143796051992728307117759411291509244564846685083368046750739152158288838788564604767925389061060695303747170361894697298043592739124323935145970974977411997413729386300795775444134515533410781986209566716134949878892316731805896914081960294698209740769304978437757385942986380081532770444975481813770909721199697676030890861744405181330313322918824076620653484834901677270100692382200629775544241817095476175776102179278437460890590146706984880707519172090503200518232805148212351294287333298194380418709092966043812697415056993162458462169977654328013932461017818988843631290571734458501758110112766454524950250176232151612962147101926614519749919978095356185163095908923379627341605858237677041914851873914200893622037208320499897549333621777679848977793212502788403600890718626808697258061358963590048186150690117044296135897984278958219948358979855510201614467424393247375848893636722908789189330371614428803282291479979666145241829406062755126659071629461710078054675361728585339844544727984459729410428675901847234481433744759591838247651730510200294356867869551735329690073399607663419337649046683377165746100875441757257527749812845279021242342772241567094471900959784579937285740176806304777343488320991469306295498271388301531204170363300329277948458458364578818519709457690154903392857703688199277964901953286848952672555030768336455245655247942238144433703401009155104031769305102213957282827375754138464644391469122969361894204468824433609258508926958221930886828881195563431083166272090961264131076695375752940389801812598571848775891241012673864474537404537086747677727075238520977989078499429729580455496681290127728534809146931659077484053358677229805089342327510837170899798478510263320673891345353159069016984690020391661880257626040016955721207988303427626823531252302073980458610450008421452158110497395283330081721390820128496302556333355713768364267011840649138747426766001775549735718984614554028060848969806816630908926179056386480823207945612608798143524090868016290807474017816318605861581970234315407851073648258822881643395009261465530287606160601177111037089313162653320586450766193858662843787713304918472078618392385868853299875752187186512939541802527268109827091972872773065231546628831966853466686025923464752302722474005496108433383401052657912935934027700444960969445911996244034085140098738784841979116174248374052387778550284557080719750998655729276673240566543182581566685874165696259180722243267111948381555656516322036482417341314587552041275434677262429836355760835222859012573612430318274888029190944632134811429065231747086943609064962364739252700978287574088980247612542228376473690604258457647740682276209801485952498081391605117558332610092559865981061457454081309374798945283490250771071318285333654117976848843916976763006560168640659520461255146989784408491513395751268483912725126548124188176819968815296499179848833831002244305289698075940783616042776619478773028726092066477682523532819168018820684800394468105822842749898027384014435661601091013906289036179652302635078802001488148281485646478892445021330394650489859675828219998804701663178203849103543315240058893913411282586457187341806518945528316433370209171491533261825123403357102628808981683387781912353578339960059834900335024890799957468676211881727501656896471559577867242239894813688124841316399834816703957536676526126794187679302532452510580932661762292292049926009073348329853299662335007596120043476194475900345208500931134341133421377680664844014668717056147623774041414215254526356821453000659688946976534808382726966901442487185651261838210758637016627612650360776019467196649823376138210816231520466194337022885761792419426123560166975158643279818628769921562450374601970242818027284321154986179208013287350857170904716373254158260947790211288230595726438676551557033602648729470984495711821128460320920849117831121203355180845483545953377677628266234961351863527651579738439483518576841400175710712521508213518879634456458489789007196820918737390780731984618756063535162257080037885521528978808775213014186454872691916232127788765065891092507078445223285873422602228674282410563998818584972163998001176856886705516367572157530583221327792465368775432659551432630406729367510920137498341764036072292862709266387869440360744493009195653807702859518799996860452241149697652080565901434898888995162323539206276922944270090964618322489241622692826324354440124116418002725511293698478734603050079622010326505763062505964384222331215837482537063236413096304091981504428735811925647646558143858756264138700281123040760339004945830085273536970935627035846086341767168777638304394161362940779410496104104015210057572331123501279332809297506529211429383089178724832122413029156779143407062310210402629383070759732639399640141486415562805172640170960520938547139919565883525921624780869128438665285509075768924954881486835709657460003797845083269998305223629636530544142357018327392062766982819361969970238293975341510407032740940406299677083499197793515629493665252290526693090837157860140162207360021770609919423395343833107946958841760503547915394652883729062564299567059262262210831094248630886390059736184585040166079936164634984629108935847325429669970505607211366206673610935010464195044031117096945890230867793678652968726259664260595882144155584249004721181582662470811236980032116792316226386597505337311126874319163210698069685446438414992303478146732154064196174245229199321317402335874333904011516438675207004387452106265412987424950317624806238919656760504559567098390796907196365541694685943414828172505512901637699382714173210380027833637813246382433108534887727188110172412706566432357731180611229089215139617222601738515028293004241914562887808290762405140455375900485297462799756170690457373054397457150958223218058487750918433451689021918680618349445401655020505207463277172174800661860725165124913289136053225586956062228723483617234560263092014020876735534389709606060646260722637378994795109454967307568810531746834259976874990256301526254670551881439534021660677529753187402534066456414881543999028972881327201273089455700156494961535852849633036757628274331071594594746562641343058280016658135386768272827035625832510914638594578224237431062967444385297085211984927175473836391454612579037590310914864822633808992682075603099107022045356957063371820424296132232033487284443853044042169628937449334931075674986430047358976130562530422738725137561990755914254034483713491787352862022290720576049414449445962381681629657632765463049740717086850611931755280562721653229157830897531054903975514832888092920094134655892702442974378659096368520531424122260928972790180677577416137089827708907083654597240327978241598863704582031698612622316768978562979979891493433530657877474901155103748514193182808403551075704093720907037136153258224072626547391644375437406071782972832900982199828126916700346008678052966695881804662511455505054460317743513509182297968917297510012755063450177630761631336781211173308631132012921387032779926598825094339282423422494773821748423923457717286874639600154651511102633678569812822294676064447780730599854892753925645401120698526009165637788146527798624323675036950749217986061550099516156716088781836306021953852865271489482775112784145501387452920196228137729507221482426115732036935945362198655607861289264578000693276366765234856447452752274870359535039730034293358265574293298708496885463353419454623817480460357595258677441804876454916758179483861882074021331737728330024618303381103161250225875009337219619575651535326112895351422875450178822338787346518988006461214514173428678117884547252591161944362370353981653424527373361406337567953607234431512959644353019927584724849979188632521492213940321988218402969812098131041986156322872473249589060983458004486282703141697680810606242596097261951065203407725975142162233064085359377001251521735879109215740674823863622276656770257544527856119823686843795074140886089807213958637370021393267246554142135647062283702792111316059084921141280041657945289592152913974299676771503107955941037941192703560322701545240340134069725367844844417701229857015297452805646942044830780910011868088121185286346619822589409005463796530062555123406385557479456063281700021213146455891761316148787747312877936993775559488236532752657274465695253787366253346117918025262741655299107325644882870023749982570538463629168151971603570790552095865013326858126139403158913805231370085534304283333152507431287171954149585344575247753311504514894109760741566990588118655574643235595574981069074036425743410388147085670029833291190125255482221688806882639356761825715892660014794991647233356592649951149981104741595804550238937953708289854973646513833050667500906116105169735787557119962670692460268168901144623763243495816276201592287759127144543801074828791945893674938675253457710520171060973059398818759921703389601847516115727105772294453555386982229522821720692921573330023790067196989407247392222771075260792860793612410662488543524600976040786838989919340864510298339926073612456319544069018577460467572300718169023353695186353122561672911627476604238018774781297856326914952694133675444629828153186805108263615742481304702483873092430465012558696528766821544199525884830971391083757427948515162681464654735639628058686024342171573513198484387937448825251215553790430404189487812308189872664940388759793259027172972064737444097066123715639164049730277275590669076327446662461884960832877980732582656314786039584974424143772774986974821405691663529715827318696479286998960851714167138078589252772594180777076975436448367837603976235853528303046329329716005620344619976302856462293881388967906982101403675568976611890323870733622686293223621422139332116021704921895075046051738492540534339510790659261804538864424303365890668277214900846414710856960216326932657602855036028252130171707376993525338104697715363498166734586027649161703164714477969573914147345336385888145682873270932419233885879322809621656491885865312231716288001377335398874658575702670187068043547272291789542407320021570916205871502068591548623844361909107438532616983527915522027456364440616502447591754756193090345084327182926038273627741787740544003894956435795735385302721907877552374934938342748417278677814871079346344732393005365358580697928397345586863786256697156908292278554227654603098130466018427233578150237159983165025216160887779956363998736909906718563653866072270856578525359623618697506793382617618433123181817388002727745472488536699997039161404280987851304228516698162516336047249329247867192294490767027247137315078757546108069396053551339479810118159548616729065163158210266648081398039457366770871494279731631546866086121304839544073793765867952376831702469087225672553609043931009669505632813533041696129009327931358667192938451163376415618593893406756212010721448727852758983198628278104111803304563143523076063820075293238053339373333877041084939913120519649216877813621829717730952438708680252666409381269987681579215896251407026796479802437251612987445581296635405389000424549535222683062919048525106512498311211944687837676371993452255684417224979022123457627813170536139089465807365847521390665427447859907223699786978436072329896613005340916496414775715406656597172934005051515288985196166513066292064493663686438910626662194663071934745944025290110760388354812345517982797134415233513996174893828811656371381272884114084007053169502725108437107334927470304472993888959187779048783214996181579796838525324494929019918490085412019327029133341076463592457951113682161408323829773111345884273379250840139712800434364993014585516078947386468841339477095137017385022295536164453314026167482709476736783263249746126336116514340493786480079406626406303245258172754980372219301397950595719766880863730891818610418166020671718670592158292152111471845715343772694602107439571278356834689900399587138555701057340749495935598101967670979619497031009592548094806652700555147126970124744848196193970426948032236052707900627053203736718600167105819427765580694724047345548163874267115945609935689256725923455571537425792223162069316867023637709137729627196352931860923413109112545769274705813946873378120506994625251120705378569169797997999679088482692401413252984856641406492648430416224457220144716463067416874484311715848467449842657470467807629138090504013119012863994155544778353523968770525832631582939519554027984312537327266013590454347538884815917039318076434233505549634866197600114462841076470771565436546433522711143554573684890522757868852886971022158813481332691887633695958457776861172929473021599703468115371688473921978046257585346208092732392619601660878541421649844276581939177123053919391060673538987940960457715054549004334392699363699263791541479584934439906941535111373317511247588378949135601612049763449848950278862269649003118318989261196561803296476065821484150978574477952959907057109774607249268965546667886824319556767280549192420746422656027128949009488176210513274024165440192471181976988225206361884285815057046764109204947301376108235314603445440182161177356644893734074132731905634032951677997952216953105670948769643561309970412274160367181825312607668753637412175511055014604271180695596695384938861234410332509241505122731580699328297261518762349614972604391467792011305371813499456342747784541605572918930657253196400486496277300781747254211627011876723921268554690389035185398308827458158270464404428442262009145256214966192978676754411045014473770114051567890507660378804425735929423751367965380945292364905199789496266316435448077027379542355990191618931195923776159500558550677165428126152438900849451626787211669201532716136171345709657753428031331711085093578495314884595233103152609079400259496222487838638748824750517346258534346159854040415242317680083832807392616337926789251206162843440015304049229251961204293725673548753767413030818268621543272735737944742018299697117926914916977647145495768483210170314280220208062259598387855126738349511773486475283105174318761574353957605519382260957361622268216243290889652442961710389214334611752619660785897764819807629353477610560835840903120320839722678901945098785524177175918398471730614842928989924248183798142660676800545180012898775242288759068042954520967519885739497747108531119071406343029893547519096575063218910090428877700307931653664292961655578986684380932483936418947785379064794356341119123479704474286419899270822349846866649288484317565686494969695517735240581815864173452938258350258659567310967347594223696973673321410947674310984021543868315819405421292472516560715989899988472055090051304691084413247436386889828198709179702897517243976799694180869405349633778400025048168327417250843967333468323671639062435567188851606674661487139570578539418181014992224931456410113270823895286937818905813564919772471943262101870230705917270004825079227036156262681364597350459352351295344859124155621499609275481949264651469315615939459768996383762672391573740911908152890337695797723746409335972080164592467335994001605665363767334009503035894559674798514139114249322355292652236305334528287719847155255509293971604579406482878346517958801273045920516923312313874796500842478081439539554183241095216405504039041130900982510486997757886140412650297464329857186363762498084052511340969542100426808796692732215456419310595763644585667505437240536527388629907264711914211848781009647151476636744658379442498856767409653554196512727307553580851497115008915129567259279480379013102823965136211606843363485241086024950560070246820566029277058300849805133728249561259157206083809655933959293425775943763808221295141799406524145120884003496182662087791653606363559002026191437343885457015156983345010217420772517436739015622543498117964346668172553459842233696457067082248364694607483916398635099502639067141590770158978965682114835861346902096009018216117502097898950550172326267407605834649939366992406757232356181400331738081060626315348290136454944711837118671818697556574680462492527193441221820513200676959933322852559273884963358202933829604777528211109254214494559964952786436747450430667940406762219671127749769919117102191483418801147397201751060386322989600985208132123049787069056322282008894296289430592949037830939794418105780611292774786821424614136905015455118491332579675247365712001967223537543454766793009127007447124748170261242664336123569273716497263357509583177645348031033293970219103538880443881198332696410621178832313967471821262641670008240603022769890186378390441110092287658864579233795033662759381677991750183658570249958566654231401712404531346442028644380657478227804170676519317140063097106350657454895711796053002025099890084299655615850426751486018761954867327230490646159672490294003922160644677557951062654334282179153656091367878516597624512498822771209474549012259478992291508443731238997330694527898452038970382787680758093259472574358386664342921966499783648186347438486791867293449324850016611103651290885323970231474635645587445917572502581929858716807827385541242079595748854175942873901461305859961258769753632526520990118876571727987040733043336714160349479695466056885181463971961780105018869833724134177024171103160144029180010503069567599426814855841311738653197537259268277481016607938607706716803402066000616711401704189378178787420671801003026180895846764391903236533479187507386777737815866380536011552687450060043643472851092418370217730968214186357729844454063429858061032177154676834737005306526792689467584386868833620657350615299552155797367927505772914276286545459192048877752464858213179538140355844587625084811787563454979768408729431634674785316030349482204956468194889294675665027263239889365334016529594421264142798835943921353400663900920723629272976825518980592741580666361246521542480365329729405158398705151869723993656433025754849731644009080651435501080521442589380149725882523619548382928426883850886624157854940645853321078687070327125190241514345710936620447307896947326377043227787196548023392418869389464045468461753799801939631594363169816192807266735498770742914576614020195907578133196476862657121369443376255573801173574774330012896973588703853562837847442935364989590275741881138157771074570526535181152318604697720983782921274856012902518056044529969967449142227100803520891987261726630079706598038190466529181635976442258418062231541397515376515368857747196714476243716666107151191736946130041304191862935095155645372451318503983207633407785053879577084282590951378612398465215184764236475007853153032018802110668278308537315787405469514575904768945292001734612340217157455223382317321296637572616133942657912176425875244614131587902577948053519368046679659461742150488592071575910815873738133397319216432322408087252306190264918075794963867341019566439974157957857940231905215878081696677106653614455160559993389751230905071129350564835750674423878199181259422668103806112067473582104528449522388458009719788787424419342855070484738020008113725553032368928628827642903100324656495576255012132802736853645909532582529954140480755469231474307179018680710865612587464042953260405453509380204462833217448466218062906715847167165046873264564013078026333671727286385820205615122591729679985792286895624013147866247998268745879699975251363333339479998061312831570815834936714527247661755082644516134523127463667712220786905249334979791189220303537382456491285265220838025061443558174974959860787296058003425071577095856596427600529079633306621273147797182951439179851577045154398907149563477833908972812688107653437205113339148122653142089387827841091466657556651986766562324603312883708039496965025213334286057986079788890696169809126085694294922983911321797119033922228475906541004984118590293522402022294458880531432884753740789381142907073366862066506845407037588116838379473144884519908241416705508616494855471588959497444547356006046819083711196367326492839686411710167278211529102422820631557851601227704305177159695146576686801464191666062901328662119010445427401130256445397336118290122244898293244551920469311063175095652340569548670022334973902049278732706849057057801691912095480287781919965279680285568866464581479786035824441196401855518394690340467900564125365081858633641101128020789087591401105088234436731535198466950870506015044128971108921437567903089770498000573323795699570800455448072531088481749759316975685720986238909805727705023246640048358614917149019698673158167295433535557865821857013578823537374292882070259913113552444190596958997089366320581131969192398264389498047167144652584593264954422114917674549418627086350616010005851103607592509800791290272544222289253350824922070922674937248490484489013099930798683958452091648251876136796892718131261255264954669540327869043673065411826666281851787100683442253875760538868708289264477465027377081332748100655662721419556326526055665361693084922671512307416290763335922644593177842100371602230718165355238842036441015965164581559891640856515559728319853715892628431931586850714707506636626316394546817787037980821653224613481716806344596141941489411931943311843208291295711097554167440996427755599901510960507323113600113287907742690762640202417451011687294123781139148245760111189570107674883758633303030414156600053289912260843382106727478247571980076902488601479236530279907396120505077833284313745494835795685632653754752569183066340288246038323360958817623117649755697390959047283886255938556173880657275486178132569597406049382108888489096680013787268796006350113250424121785621988967392951688791062926442923520522436792277776425230562901008849849223951908480240383498927498747934607152749377340681813133224674154525624578287314724582478071306995086812661454514217344724282607299194584923126981980774105160517631929449814602604279089669431551662150022891431120375759936108157256448644486276569514465449688244526419177228187448080673006484180253105579160379169755577008687480476784141021150542618555722930400759576557803649464829425548978373580536943686984897041408146170057800142111880053261408496755528523900136051696005465631543709721874265776901514957779938634735241042549824521937362760557616383659647521954197591815282605129073669116707135830615407798121175721741805408046117050484409247779412439374727628299724586842551018081915807584613975238593814536925345079484977688797629760072957124060247764483311558362142185067746607091792378028027022358347199857447549582400040488445793560404566697657943283086205541054488165372806391556650973771549004665816436182623794173154062693770448757336827187468657961887649186714388974392352725617022826400446451956916436364136853543485254600967191196280011704813262962031592864806889730426839302599129691727234407934373901697849714180005420981180542333686210533578830333456458243910173813736873756545596320367183224822540504849678344538305003166235798248625611860621965720127224315964344701121102172928662599799543798465303977954677297645215817137245307565156281467028116958214768545711385424869933776741821552748457776973398126520680792989179342321060159480078395386372628024144576292962303042109097849338014412993538655078068690914540994503693216382454676261719305932316814790359646485113930943181706057225690817793999706561317934708419415311172295220912058352121542808012645753437832700610300341150340849578508390347044441409347365314955571402805137299184730323281344264550821495320843346044343175195693229005708304905746741901880932465956513949176372692282765807778989803891489941665545906643900212249498288507283098821641638747703318455737377914261979961219212714763246204604710191729841409290163071218771418451031631312769226311909359862083472943834961970113468092192305878195848053111233952588505332662204764188549024809070514918986863518541235343327823000122555954887338713895202972302490954946318615316689851066896034765967297871311789266940464347043644417501199848130211066791968807813781877674746172928983103762940652063123665585847383923767158444683688752436998063316250688129418861790130948115734981724324970205991493829680190107090619057687894464974544643595799303062834471341028721875801954198481351137051742582015524986518905186087928599146147313384345206762966847235118576021404715489578421791147290458828738812179234154100004027879317119246266495094411338621427272164272850638724535514335724546495537569092182888776887182095685251000121593972054516410961008341631293161958353571765683268673036409300227014462165250959024268797309384459510919433977430660002662744437137328080135324234647541195916444517366083393900036801440650462625850984171915614612301663476085215614397074007403865346255568923686136911495071536868426220865215600976648077053864567039932929441584651985678991151610040893275333728652432271113522711663559104794252594434083949899840161976415945320441969747062298547772228478885550907874321954574566984458244398186847166692857676056370301348613579613497822268652770745568891135785266210733263955187841631782858735934547632686623787066241702728413396510178402388414527075239349732887948154644251409720446949865812558431807841074373300196589657446317411729776746978426046916773925914111648707796932723863427493095893377608169524208702527695278653816228169016623221374490144398141787920106581227494333131162292252348018318913924644620158068222798924925932602563566392584220251619483813100344815414678873523381024894678291166235105153371851360802586843658530382660294388524760895504312195718050812057024309924577884770965494559004848520608592251584593322929664010177656342012709698380342458522312287768542601454313807690376771390153355813682307429499717859897656465570815005713613300429928173453972142194801114236144440422202824349576426901466285267264244000493455220588593415283221658676440665660167480758508923915191103191039199325625505168762139110327330915236471686783360835790013073510346656632455682123757111555066303107504265111216965223468961314473640273630029734126040129596741559710791908284042137537363978732833032911114098517033560549524024800092846817381975750159297699514239375302951730982115052930563014311498116125986564643248302077701258111035369465092671580258890993500449744273954035098039766483015784016178029496979572727339896027985477933196739324845986568934818458849230127121957340550756733107145915270959391368031461493347317477635414658512881500024509225815335907329472021067326061085188102927878957122817854368082155713720897866795074014073027588652171966757186810682987964018111104222345976866689724979948578859258620503346029285199495622253906996740186918081807225230534086775977255701669670415845084148508006029712136201083290240012670100650380489105274038462766042193039348272347957913953723331824083547874173645792769678765560379207667358146389966517360651266055137491635256615688531702979573104380484474481269849741842077782568901445611464361891911009593402438040517836788349162405201579057806719807764340516846265336798081799996392322867208764641405682521132971388182464932746419697859127444980057258851532258357482278955321771276717492289312518368386356872967416089575505224350940165718992072559431056737734881620925282790261610444757894449272538397122056692926641236206334019039488586908218398654156827537574118897335747203301161376556099059496745349839250552311565294267861925301411848998683615508131603625610854254730711646548613539373610597367287389667977564930071520605029345861121200204931883926860862413495725333842543815971624623425433010515064223388066793605087679854592261665646516045983256752714431906162582654433161500310408030108339444378233104315631355408222449298690102134805672343697771954750651884510203979665543159102787841949255963931332363519362657165917646123096105160227399194840303628164306481297855195146614918411735542082939510648008120996975375837792966352043398123604285326060194502432574864689636861932061559110257842808377077833636097458602978671732579984596171344091070710507012421580163671961758475690345848902193282109299265736359761653764695664633131170196065767440896957414897134497121414818650305341153304968041746543936326452153568338850587203951591297183662176434908378182400822738564149929385000807593027941455609223208128929517152542347194615680501744254354252465832126967700434546939226102798038572606306270185368101523447191849632610596183567782635721281153503123406564358460656304123293538355869140928817684751525006457876743315408198426287070356684114797407355209676516092997211690185552488283098358770759506762136395829471453303814620042417643263252117493771638103511296033314171501970089495289714987902574465516478990791906678312241036734506919470126024703026217203820682113917379345754962816746696389938685487894631688894934708090829469220427464727050584708751196704059902661735022517867473632841559713006637829093580784408926670683457937205683836793584950612348457763911773828826364189808592112645673020120689215991507635674252312174062294206118540675095084802288174084692670790182434788972048199032023487989067182199685456183008044733586090497504373486728495559929247175040763722994920399437467446432453449205356010403761204010154668044777255973082035167801062705893027316435744893207189690912007180650823580334956462216671591972596417398962172904692156494501548983137804635704313837457526220359548315739303172641604591819593013299337800995662598868322258280694542570676756502773516304419399788737707668905879835177547618323563725397973247461260335568402370726200156787841184004544397499245864411399777816835539414580785836959173714110040311898943590754808238396542372127302675325737434152860323422047324995539825845607417809631790268335444560633232397645374007800696790626562169941638360304174899849476353573767169378067597669844006076905863368070448300859037459439789691185981078113739847363335521757195756322952958107106412345169822480302653978621834021630130055508439694118512750837975706951008893940471393877034486052189019930673832649736167973865378410038159183005625328010518778738900646763174450607963938666478047726150544676923234730489941556440275848211858837598514988469802481540567330303834089053265207392538446487583125803274415394366287814762154634981608586278618668884141166132263644023363445829370312990698357323070137002668021126829257074507260282529300393708092626389334278292078804220210291108422374494046697889774314892092671532716389455623335488434527674694070763878407852873463811714225456793650994867389124798281223354744902435661832160889626226421542041979074578206917466959256719031334459310993815483911223065781596584719958982873708634374269288378720508484876707180296312412085877321453785117007955555423712068808620402277280421716162703277576682654999386093468775100143510249225645689237513168124957700942193954118793651509335976273046474094967965970405166128617452158009723660683130812715396276045590872735949485702538487437921298869533291821089911590351294113219504935316536938236464479461999916766221586518382075465413352232341877205891346279966090395472629523893397362671738737924654814665642559862250637306041000726787174026140724040852951130637763881677918388591231998698522079416100338606839446436781342914782392567527934005290328734686699466718614782729507401296841516786497229765046789654508843804945367466866012811431033948541409708994548993630787785304731656152874194960407021684469327812381947080568217011053922141653467936266841984790452995811707960479070407361253937921110251181156535132757871097201821896688460290388592854558395813664870648164903374268359055524785459391997110550111578809962666061903350687877567210803652078778640092510517251945915986140109063768053987790375780579054734700254886678897424321049459296205164634327392708419374306340389243672692179833723863856844596992731287920500407913807181790530203066681651501525712226850907882308758381306094335781419471714732989366414447209903233047109498845314124165341890518143196427452362148541841903131976407784498801915537265419655341268555573128308176596073871136172125238854793944151070972773528324935490868441041472219800207987172019599932141709436153698521274371477610721130184433285910694892528755739517114697929605143759723312711088492543321934567852669378023164898779197116630836516951763466558720617678358562916203752985720321793296980264483050147701636114498707931882143398209265550530130454965411717760309509958039186762327377197000421600404261910025829788570493876537049333414598909877659396732192815838828833446245650881090361564963713776519550138565932128330888899968711880042191804503781100480560935925182221264918024835520949917314705814253211441147007253660599787195246218052801841242308492384221823219251111545985780448665750986059474961505997120511682140031613113499178986832121178616505459527966322020905188956600657163540286970141307342493551596248809197708370397670927429536568956008950638204084960300097778781231164260902553937675153474816189467491965636538476466000163564029854390488711704315637311382043024491438128860518467769251071911771301292502341415590064447363159864719451873032306191085115096512792367140874802057707131822389361759003848918380763826396035393383605389273774938424340842657072189249521963649476761066577550615621801575706802315432758470924505119602730444625906781540579257065923562361689350137702088162347531006210234612396843109509365023285218196354798871087984210766417134324723451934760094721941690268940313753913178723179216512490060951787331495125116948242323239914582732870445410209092677921902997913621615137702696549146874048203505518892065876534230977897030903326366825726600958656754684475196508926174567208356407748555609847359748916959358722816300384950436580163160779415903407043824494526072972802388501147290457844004645639924209271545209296981014049052146502189043976840152687794555757191244937226153448421709392396089658733820923563188503288756248216107240671967408195115892849452880230387106398956354230566570906063782079648408571598250855409461931937507124668807994879703504092548390897911365438405038853398780478776576767118071628439539796212936407845425211091135950313160495047132183710961653123889686449554898358405997449583215386729525348323672166016081393441818336563865157155222446434813068140810976024615126798227458346612213261728599253832918384696358931233647405814463267592600133244714175334262333269421134855607210422470897965216060174605764434370139859373944117113757095028305225079978099928821163834193110591299441010829097575400119049672425494329215597670974125456728930895573443015234965561542876784642175666690232778606195639402640356360841452659148952256370795073262990703128673629335166386927656473631132787732183162930798654573574291166643638927457492418463587318725213673506196192677438169786495757821901686803411357535684403582423594476234066720637603797965909288038677337049586414383187871446776883793190219760810279538845524143506300145698703109213655960761398552545355685952350305379699687383489722139461640841639759336792288691385878835712995321210142315272907819269402726713761457261801509137086407862060410439417348467616515014439493515766940450551046262694296421203111389059503283708137896099617271644620377751226624646747221671553910453435734832772305070839844444739972943421311620493081469832501014538156650103106741672752248329029300517335217661993162129887842946353427780695821146836427823059554536967346584720537296531270078526997944506933929497914114544648351312713152956469166638881111989051815222418103926907658256028774732242184802463611654011011839694953764742193651943071737828165090203024786896633522969519054708678599428542134218280894865896151172888509339334755054268066380356519875468367413928357396685395540907507978159056375001341732143356220392258785001664849377066070246333282490311136643377342515032264603649997213695312650157602377541327899167880931971451845400982005723500256263065573007042012025584655479873695519444238956192098897476440579075002077233820182792969508559300266406449977853206902226986722738033361491077196120086579366080805185357579984892336578241498969684763558841663835236215592668670273666476664403918295107848061875826785407196090301373091187309016457114936829145614111422752151237960039332727383910568026895239538869797256771226397498420823020709522737455889297810052836420983216634937018720048489426426034898168720581384645460466384587504811516590531755073698206511459175816257834158901507376969568826610286889235581417051926020489839344566070659814540734498460689178002749206407515675514178378851230535572217973239555926511406734989910686484091801346112828134202538483252244943742126559807630494548703095354235130716405703981940952028116027463330417514214324339591396243148425882178816262134536356662414139279993693781174511053569535358840147282942767135884736396897983638621088134946538550796025489721042426071092774860395704442017919007887421810070891227290690672379833208964917491945832452399461562777970570047027124291527253572091766776251184018179248427167698053609790244804676328425954032133606341244772388949732931479218447538207647536520782477100191064268800656370219680491663754370527714975166839457187307711170832395608906600648011982671396290550958544695800321869940734059028684783821515632511890203029618477476540703529261146946551475682565463484996302826844760588613052208085650232708702439355389808787808497321663327451661499607301105288750915892749181447707810019940609239219515973190749068944638888104513755856414120212448797891308448779153734211364535273726348920609466414030635538662522283802418748641459558653956166534246736833428742950693015267532629722463209263071914339011797262149314851850097655115566538655543249709041070242612209348293143892773218908034857628765057825857326292520222558953318678067951268308885272392838260055174610422874134428869695352189774019736186695311421309215728647299872402255762615201585869671951239761125218064901031210462582210270560951273015267472378479751793144206456936247122357331461058707145636756666525885754219389808406054730348018174598845430434192704099479238338500227975605378362957384123024680717314231287631188457719517748453319714167144828191284907442717885382516631761972229310208880489104991453524221993537741908622128519848519439656431240158994934159926261619711312146642202460186980748548915793783946861371785575330660826366934135726988273040442700396566651609814010287192618790916884217947574105809489201034432268380769042090683903494695359882924326079596812641689647337464420123253095331997608930675752236118967341235539561787338512918805337686831617665345716541035373718048890630044581470837996876912265760631896763763183031474695776167129058177686853314542951017980421469390471932780280895139598654645036731947010941549879102287198111038462922442406120880360431706381298342261261201631235387506151643972253501351437740855205264136560348691329887762930781657075669428398093455380053761991755324617329479489582849311412171078025149822262802103855671465542883919057653563153398482035014143007203205465040016588298064291395889967854306690811615637359093282063241836078615622301165705345287244861201966192207016891975500444036712992251743335483939651901409077649856472665212270045708830689244204240520016528551032426132533829270166109809878269759142581976124025716555925488317835418830061680113424457318835816636525875009328213349882128141303870262181365579859361412646461862209632458657762023069149592408344999578857484507648220608491845282251044301243385648988734692238493867448629027779155343803785024373651133536956730218595099875615512199577703560928414908512160224945038633839434826625080790167195010100626711364599895575084236588713933928652722712679801828290744793688987412171801822976160846009131147801052756168654166630210232110049324407260355460687572073640315815005678293326572371213238238803360539837036742322431590979171676194360219403001593549298125423122374349030190177057884852697748288172679647131904720750807874198642183492101104263074751764043169804782855598675094578792016867679836263670338633354027052707366200554422825289318792960350969770877010620516824135217300433075419445530872489162928513816779145970504732545549709403104673412759185979333241928110500693621763914609778694366146326610647159465316795831325669856877671859720741590046023140495195401005713182502004843067934724572177706902701592957809653197280388137915388251482309728762911616556724668023172484242507617740775956774464173481300046622008583322129032903492390760850965596685568569821887890298280691568803909572708432414366095467247719359010130742594486907558608846142682711615538620788483150834696033414698721143411148022670184829878180795819088274149458865627731305464661155242803076623081090894192085838928554843114651294348669871640240501122871462324671032485471350877172433074552953270624810372468719408526285667580800392485854935428701501528963108565522072073413031445958895721646712442841392709536834295363930326513156648911417856500415212146449111356280160042795329331551256832419764110873757305903519596786887788092497149751867947849691046316980839113626406647805135762797391699741790703578223046299941260155965124433164185786984339183225590887484304902534480570368434617461786200427332924189504209808240510879068191777670223128702494102261202541965621539939850162520611816728569675102055962467425182316111306296424740197743836494019843498928088427073304870089327366226956716546416697244523795719193127648209774736442015770330501587209697199385789978799861455660522728167517087279731348645525922826036368166724365793150363294048252204168094000701485545246485084744545286485950669529646639768615628854364099259905636124595160242307953759004442526662735629044686082821181890078160389718863223028644405242999647026752882570797433189285709386210770557116801936974263095713977757579142747885530614312142485808361120300930244239740515061094449181272135040164577059586526660708882877213015391010904227632558176038523869462929413166468989667660290784186710001665077240498930490608710622138670974853696986343345984576663418355830505861299658258939640073227496961566022340153384431166574067716345556343935589634531079534745427214001635378236275415563496338487424374528418578487304923470671905815338952469684703170282513845384197995743822004064486064716959755666353227164236014554845311014951467369402068906592471892815736635264152124658355781409242439999108444296195809722311043482040980828850406938231151828801290186609660752563885965986136006282053210858468631954424522057701550232617113267803624768078576442101774087850566194065833971815532411946454120407170247938397823610907905029978448785494438380512281128831149734888657605573058226075334498490237032509989159581739937053628881514494275150709989741012697834042599920628999040394492607656114905626985628794067913405903436764767500349962398010690608678413942386207582117185222014820723580613678256011658508204329211365484843870575988514556260722057534593821920188920034532174666986635587630567688313672316112790935306046681199349606172157792035855389230836655642033100319063607618251145947732744576412260603354071224211361630566101398436243347786059626134407351252810015327879611812345069350600590639884012141227607238317053767019203253116896696446825761809075362249072038412885032834996249491090103423691256706714266737717367966829312051339496515120666121953084186100135987942612703548706548769978472756858475958377412356146861769180961640774031390151042497135290914359218700721403708008611036963780570112112784562273886031520709365558125316595421352593300400900899045769941516183977648849139901979707498706942606024537570203944814222427374272000725956230049698199532712679548765307155168163382456286617911493638551090573030967994652868222954703689400465896551119601882251852156010171877399245331237475302076627558166882905868166688343805414219821028171585476514204139767990158577815881733634090001254918129588530634925877969523834099197859522427995517528951300674921237166950601681064420517592305701742316383133555618494351996630715535764941793127321752896619883933914294355449086724027903913926880769023012182088994908825235167030193270914393725131167088298282648486905923652403822568504771249039045360443009253911745513215009304878029219161075560664871107352475625565268606218446046776799471312017933846000529445281647347570878614330445811334221097916987240631033655024814289142604178242159338901809709620809398358421809463033347008545030262034973545840939141899307492708479761779454908725443125507747736260993858668206443219005864702157144360064953918332721060124841399957906804599760203973850584433261122662713707865618979515571332163216817613889149022983414046178960754212293988935741039584096470073726891293935673530910934965585673042234681124213213732454542634284711047528711060203260609623560247521806078892119300395542567457141780351220708509632542400302003691059795930919519938156589007609011098613178170299107417001402678881612986748123251512599468226965484217933293313292254671833466163972522139379049924422255015466711755860604584628309144017333189838141617915896686761535152729572343545691361279010928172155150471885583544845715303698487917624107564268190946201493810350056261756141109875846209797534026837865864385764952361122300573072644663695231233325271886533908552889531266487338345216271257267899852107168749356230041252541333636505011634552966676646733644984695567659356719519440334313954477236356057874643762010731836520771914375127110721662984839995722788787404527209641000954089492617162792704343601291954077294360111365917562411719251776515759635931067604372495216352466783579002039646164446087209110000279519350164725478496196313775611678589460348992966003223662457430826921903193406562833970869718283483720870715095583361440023985140408680768951941543045953151405918029682402922587413127533792715087176863662684193957004902840597716306542085100507218168712647162128100384459963688417825809915105321993469877721451915539636488829179827843296472740107873946561167390211693906446844196710675633217193522030989208277509284441378311887037411340966897137413160739658721743362576588616286512686208501003147435578217922840083009544241181801356991842881014856564391875260161826004586964611008492098021976927731125878227236190101388020845939110578617846330620165096489821212019010907158007161159353945019323040572900963796402726626010547193200023868356564133772614958679621560056180754045337884591521764787399092308615947885345980309006025284811783255431804289307849546722873655011024654477927132368709568511425071438732008524352923971670981165751204469383995692730038515517081337714511504858581308398423068012225753388073589818794265374488073359095186029238863803777112895872699970265389891637733329136285689172254975820795949492634390265628562083104429476457176213547114495726470455867675114827079922254387052180876379036198507299993984768962741307948194522856259811501982402817938641710640165368773392561237890793182572390849845030044338451838116665213870572467567397515070314492635737377491179824826773893146122166247806949661510178158503857726202672790515309795915123668683719279991362803028020597688751473580081549561770955408531398552489957318904111966939329427815873298204097909448539939520437515044598949977409452744876658357875891491176045935624052201731468486841015004039694155900323148792130681134966035826103383979846921661152405578354069793200383346205006103040276255818877900161645461602979432327127842294484010206992458355996472229589917694219402627261293854810042244017049128685565968377256248436439494870837749967698186209139748191466948053500327544008097990254351673314987557103238776200980198596727186165269375429674187721093275804382922682105387865881315148642295313302327538013197259248221564292094996040023962010505056181690227951219888685233621885684229815275959058839833083103278234131122892233489812009138747734565909128424970339745329494812938133428012039025457352216245142075501203826744807706534725816559459456387672811624529706121325494758556159337558485056230065533587755660951049855903303467546701982684195761520793801823029527187762304511971391019524606103184242979863556492922132027494191228746791275709081035004518632846093417590965142948767171042159257429580663132040276241827398744810238147247543577768691726162657997556970382808050751738170877286184210619345061139509248763664455350610115494858470437616230795787548645257433227338424474359095881514210391919165934307932098488700288870575378783848933150059280500490295017393412259952574706671641403384523673729830307859734820113629064832054546183389819392331261001601220100761251090628803024381431347066115386723841244256196115139869924514382223458296669955269972258403269323614345659886142362595235237649641633372193749784447362020637306740828202194663428537075143533190713764384289337304420462980397173117776666475869340574001756781991602593908529705198973788081864906824829284357271734900749167065639766533423143757072360810540392977639355281183209833281251579709807179169101423761104548948646722289064303929927952806923344375938396446126811937808591123115816856878230984407327414039873123429498705426853926116325004749117721475409438119701558653722107300645856963903884719622545168917852279460629257087594750342786502294681846224275125419375915412462215336662700487478712133227889598451969997851089482769338431074293063956521002088672205485325060254841013706580242581298245327314210540664596981297321928020637602014511829498234919055341452032383075388716195443233720311638294910903072416350136863380507308750671484535206902322108415815354747136977683805757548174366813139424220084853618877518412749882118668430267837213710444337969429913481234486566390284559446924360053788901790356124765093064331569896930937762835573752741082238544886077097606722427061961132556463292508266915578032915025302041409703564401529144673569416895264494610195702113035944315341987998833046687861372745794498819105427938133223565937155995643632160600673183361722809371148496131007678412619188955467805368347929438094846767518964961367534551930531625513741518741327960178274572973338820709085153929160966168539050109221824190462347589917716085234634665601896391129617374988827169867495732967442979341049481492362537647017573707122475969624608715918174650394802411570073704951466602799094854632846490694060925547082567117016986933634622671802074217674885627365791189437388853749458658687296399383622763660025405166010661093983072725700325517923820731571173548791751965223446185196678123224173705895168276344475000278775820035153334982122666490501117985607321421064857460474763522680513032267548998830364420248877019093384032218866121325109999879630945836601862501507610460851455361866518190653474306885171362343466938035074860667539282500121612280103594394468888962755271461606818638760859281735882989457422401354988110034092700471580714943312002930037855295582659164956109051297586136500725549591538866419803189939252245387168569372423140048884099438070177819922250943608773651007349037809220956408773908120005555124608704692744652195342044865157814393816742541635572318937295080920255329892394919093667716588647013080134076769834280405808666940081423393657031421705834468644651585868716266750347431973399262601554956600678632170349046629996036184905617099901903002870005906790153971655605553810164294933669049402644229213942431961943380999062830924471302388582120309834813927427100432392399946778179542906523394596577829413291656841041650577867671085938708804756973054798636586324308520160327829263536495984723555753985819884569486241100981243315844923179754982442516204147698188828324519157024258692999712121840666054858838747635470829909236041972158150962178534607316085141949491862695434632562720830577257839136582691879472863835893526528061808368944966451073204609182523142976566597410651561819503558926362041194227342073735568198383335522461330458789778502258391665340788260487650025906242705283858634088119182120752141398158847626944168695436308933625814344472054519069854137318990510829784719049155124708607644969140204408029669704689894513201497739894062570210272476218157110880493475247083448330986218858677183913669174148591441588216270171260050614329647881887449060560297138153154397724533669548873133678449023629296859336099717543638092971724582764036239880670753859258571273257718127202392992409287655676320393413460457772370902308507588869492758967916949765185204956823847332224106379332136732778956897228865927440825468055902337638824761020637031582352799843431622256865450959624009650276551490867195819305706322272092423552853269872531697991654696828775622450863879706246888881442494083731096367372043569302295429318330472891901110171363477079619046122537288223144979084237363989148831386032173946957563134484785347996364770746019681080945829270012819156342546056209582810175219866290949899997092554505265430747107595325945932259660735189039953158445839698798105831379018907280059944000931185926435698970603657509280535836331524365098370398526335836764114179544220910538350123448274628966807257309018454796973788999648810537639200666243725862656273233480607811855322667285573732774653779446932390712237157621899784720784615729872079956853088558549055651059678313569501507978901586597633527515605359546258961452740326025508357586934813692207052983462567171875081026325651858746155695715085528084565491990486489225404880081188393941434920157720156615050298111657123348286303895621091335173341983534448077449228274683908084292016727844028499368645137553801590095843064543301614238763862207257663461111064753557759981517796984329095155235229687789667461256888310945623819994404680774240140092696562705290307746335893730546207566297533111387688612492891751491185295685734662742327894750971789107765923837724158227825549670205402237164414232913733436324590044943002423717578030544251237574896636782382252572346131411197936252436852912084131736229288740899062517751895865072916009495476255818333333783952637675412944677780621102327901481559829427658833390888295709554415216141919255735685936534079647161075635606899519391294122530438905682622393060960745458822640323726125417734528510140934898291770935039900741288424657498873934283364566175290705419846117150600880762026152127504566071990134742108274031050162258230105130577213307414360269607787213802911156160160255491901677475932581625557593794357991336205771487119201627499117127019231168751319045399569623717859578574479698467315760776640049904800773308394592778159746031327053097392327639718052899523203828769530695807389677715173662599345104975572381166118829331442232878685424174003876556232766404748323272806898125658027366019371963467003424450318469851998493018855694866847247472043339893183138274126799101336264177808407717902453586379092128068071615239080265028204855601242495093863736924592343425075411267234985882741254169439698631559835087073336944111486221138678803231392401654672900196223437255894056979336511864640148553558279187367526733280958042660164599807071061316084870994012583744043354048305316343438947035666277071566945002569809252626737522883973051238269838848027913554257465497016215305480217687888378726993596852337917779315392806689405649412468748092261471251519967987329521612723940237499884367288347895402964956192688871920796049321355362166770290273402168590299405693802214932770027286960047870363095280985326065363211852226053669700180075588561835132730108210798954906758803713279906156199936536893205117917543147123117618280862353736741228249118336115077240046983100476201740696569977033306816484166636929047403491284144487492459681475367044856908484858492038211343781582902465017396324801475888400712907414647633612848271039027352329662946271641734282208121147049590164086149668467419550585768071230968150734376958565209512752777008849892965647237463815725114865549842142751392361787022767361214477674213384902178205350449401774081819284099347366973709595821963622686047895019018574056483208943359881086732238398715719534018625920817259894161397574514159459296456797567506615274471642667787415092994465298784142749260976599970202741416045964643507964016888546405600256326494759356723888054576598065847891412370246393490825179718726396581487850671551366015551486815956225240015269420516504018739216448454307552124590867044296728825188057024336975606569291549728955260198806423780916126723563828981221787367438561810868848606411732587531051943253927020791541158579511842164330414209692196723977759879063744732989057269500108729125625142992199329938179711744444728404513464468421448489712530829130462822959022928306363113290346197720147445710631545537575630685606710126301497366640125506437494228816527161897862216061954078570145621995515311520588238952050990387226187839508846611940614025418332819179057730826267565557220727440433113928617682774765474080781625759447974289643763473869245762993045235389502602632238778810591056637861279656926861685754200625997514758669734021403199992219657731068075901556671467244918438169777897736132626042045890775273010650603131528229538696069379482133686000241775882426686244755193081963271403513979223423969584890218505779993646222336535383099125392482819899203831456597185367053702361690745716062857424042617335196945770719840164866277423668763568484750436866392863431572331494101196701158491996683825505273155187744078605840354478301268718780990636839919286987811474432594176473797907700709124519661654308777141365255690053026814814156273230464610966062817791272442085773592521799783014651700129110133105374655591230125578165138263431402667938231556241634548269961717291163702205627112764240918261933060986535226330310582464319102610027958421897589960436615184106102581711166981307791525761366114085126899110499785541005569887292488833370905094091564009357317280991369593295674211391177388598361829347344088842354989231515732520174806525188127481006685291471972060007577193651772600554516198269434417555716204502322827577976602808730377254740036300495394866505980462041277043139861466881052959531387419598716805921074862891119884955194726723466888354582226805711478398118199334623418339090773692245969029067152057425182838591969640905053312130358625340182972709384591896309770135894634377448329178105847873738641024846082875699016367305389755416877197530094963045320136006822288283346237851114389526329221615344732822952150577450657043157550231951555339754483656544801051099857742969302077253437752709893216196902001156216047719798256008842041299962840894339051357464666739632272275435767806747349662824340677548944954508172695214620462740885967114367992397879046393032062045468402220766389983484990091089364579035096370316055747953082532350111182689345976170337418388790725306249280151971977759985790286059119190262178218929388863328582837752592211399932677902260139056485168179061725590365700093823881388129958189932027835954328477626294173788084786809983356777337762440253467341367327366238686844537211847866267429956849711876971856995966872047193279748087458263112299684837121312859255324241881974901454338188774459782852192068308022876006324603852040819900430443844670684957775272845826639325727126338056836430409727031574824225221375518171209527254646898714633157375055477361429061708234969766095197395309588528549672551995189461564251580754224722037485680448004775233291812384578080447828812091409639255460366394413683360300704092235355875978653093653161799594584555180274348232129976496907102227709660094295031921437245599880284102284691504789251649870564340445789386999894696378104090408933560795244308120756436055100653942136172850717879652069028705472185479842471465043869458391862570704626276232537793280292860851406761978723359426185817838888479338711246740948867160757347923152161209045337346269565375354831769077447486653677287899325114387260847962852904180965689511062832035420357040060386203920436820436161899031091878930760429169335545345319920280609243063094255796409315895728377274153257080818959683667713915280526972361608804958890049489666042658417587457628840324035064264815474724301883426016620827985082700629705932936276581269044842150333978799039596297669843869754878421162028275204607141485540334132931244818720690352056380436828661413090134633427202970953026567833582916735061108953573897115177520083840118433083628351950026580707432703409795073472228089972165592461240070606892116805077937189733816722905296883857400441088289219929720938663512463139334653009811669343532139453259112493250163549150825745861618899436840223161721032382230752174780539921102026227025122758137943627233876241972815143251925463027201619898599491664357675601286846387112775434807307195549647254588583291596347291614548079691627171320903096472543019534901931469309419441792486882900898439647184756829090954256029702675867707316697319018140285695455736563299843938710075476430420098174345297114012172258309943150273257629052490074034689320218484496196235912358887899360997864208294368832571336879673941612716121371921736655766346221476410900478159091816252590833632345506249444617171367279085980426475554700799336398359550845938147109758872258929369266968017563385283219872842598676004411578498264487700884265427663333937531819476345343149026925166977439746980788780107185354496659218243318264367915984072160837196388977157408588705109711109938701008568617619422551023752255830345320143189460129625779754529839689944912405605327948512173574568849228401107320894082099593264779762683983800612012722662731139943458553249819677466850732605612329527836873136603332746704351260991468724987600347209159902868264644132231092698804809456343248375028298085299707155270689397597492335195075689839964419949379344493904947722429044318387044408947458462892664843741794634275476398999107891401173017044802616311185147181223866234299186462741123970579862487637429181337163982692996142785555775875378177517664035674413123976245474534400323976734336173408202986634526979108197225946760657620955126097738035985718741851407213480739141090066202149330672388180392008553877006054396614305690339269429783420213031950664934963608829247057173278270799201404618048809644092802256706667159922979008371140809926585673789630610121387825643822422859642122668377682147041394855702690252021703620252237811774290345532565387832277128127590018197852123737677635889164076801826871303770300541451232068055832032500947164259408880558633720152858234737279235544771160201565379968628491775758221640328007740246754350647480094920392056217711834239720617074864848031217458907820917573152869620758396604455570041045810478185554866378282653677396952972520736196370642046598366766902551816077330968175459841915134625696430158017091122244110380583386268662799359242895429386701104232822190526087139317457811861795088560698734078798204143167260099256978693034179645843977755129088229999824166497950465283705686241756900487763443684621033262225834339727392115758931973847268385030541997678281216152059606406462237814704492224782134579373152361216050213888417873217444936539871968406357330815457178045266397877205032559497893655033146526700539833226098079097374407007001611299873607292511790266820062778566806122809758882910198046807066933992067916270306157392230998626712423656189777975761736239773301218706503802470451212255657441058133468082274247166684891791267693458165357841701505525875061394604826571029407623069223946619536755525287842896160195982749539744198145707781887562721132142856385287677321232169670057142630578757631720572935866875657968009042798585760953743160248211405986307875946721840800524561557097822990430891991128260668621558906931265262345878726427222708794760994831610540310875579427124401686507662788995873677928554441377310105893425767928169976982490096731101733656500779319312105438449908118731445345698575421722666152459462677495488194155676764386159104535429259725336821941656915494163089988902104472654941893040213858995744602877933638718364382574974560850183174110408486530480626690235949815781484231567528226873755337940958919084594211699288972868322362391225486482874592542218970556016419399768796302560722637613605261904612950607477023917752712835794604296009023108567470825391558092301331372202059089178584592898880921143779054684030776284439733426567295183387051553915794218969647552238037810106094160807624243828790619774005518648788393502602129709304259841252715556796827520592873835103846818126665902520389685763383875511238571251831821454680733828089047198255538158044198709273606215680606084213665173035774731901982514058937973391365611933040098097430347819734007382710737380734752838214764187062790994340255875992866951404315101418863706209304023410617826858111268809048657774906453005853751872423265398077140126379764430399908066523471319463759692873127693980984200724436826522719988540910134837606340553439079482751087970958975629634243320540328505543000900442808838441909954462480086655841796027581359685216100565145643711763525464320143486671784443168361289844241233772111252581401945624315176416802817324312020796118730762328276326110426639694562684292046560690536015204505330774695675501397582391340907524555777431336347392995756030188103971372692690934681271306729533190946541821382068892293416050937093683170199874086252083995537931528619175260105558131578938115087601786021358267576158108763080072461635407913705938123826700379262769667720400374960564832842422973739255455769336975211604872319901598768777389433614351720077254413470824165402401038997254931660026085609629631518994173495519957799654424110469831620127907937099007371143907430907981899362767327255449499739312293844339947583686112355481644355778662915900595012286623560302360636983983371873993043732612674066710944295660616442265976762636553438909959676676058615175098102132798350406104772354337811638406784019383758079788550524647350898817789082990572218893332444203784712947144945329103013616455870573012863115811677035340209982165375603645178818087993713212209318468515172675309327422298749562478826249938604534233015112399471420025381745233276664657266258138090131748318327740834421934007472589805442486921353632425712049799006535482148331269105282987537964508574258736254360281132411843063883132923446992638395662768629738162359920884149636497045555265501074445583250414203894149451772418552559658320642776589070619916458305321086864959920358065018332837684608073897310229858104303226924401445913926380826311976185923827114046870219897537950532376875301470336236514164508220523216068755743525577054980726513581295774014712510161988856311991233266343950639946546762510134085332057229054669072572087381108995424603952784672811279499264920501308284315718030525275616138455335574472059081887116418067360249008823269202264280025599712550817621157158591482171460562750873324928799652886650951077235446530145514788617660603710241494232222677688973387931586714095611898939840006317496809714078249406538513946788094870069171208030981082937522239316126454734797628815175111048671593821900549157100348055124411217720627395824247971477938905399273723224542650321471308064082667342064860757308649468930348839540157728127378226074317395127955955644120526570440943514379228530663192854326247875653014136893996050133170188498605826885440205895676132333584717719803181192497255299483066862407121268896643085546396170886782050607878796184431639544715385297682567662527303350362933700289481913706282032590488882427934164060727970065141690351988950134168935702017902943918571076143931831054755271957461354733094754358768653128202904549774914013303668048228481397663428616926929286796624886390359156657254053752287940483730153416957685155526444653301447437089827863122808503516758790248575173939622627318518400573479494131077818130224682257936998257146990272559182765673727492087612852359893317632950543162649208132177145673174377958420482892559267103439181188372598125035793919655048837871294814993673260471602818473883857646019557079360252064819329193363001253080944376701208093366542653301233235711076341429654291650999965712075029652330783657141462948867131315181374580885168223599213126007041111243154189233343244095594719990852876593225522627423831390102712944459008160456783583731870879233087245624575459974583864965529858554222201364245392717891638920693102704508653817366448746375636027798560487375089362533149295216524556433434303262223156042539265480160469744739045604227016641204562002807258755257483835691001064479930904074451457323125538924538695705128892677701851472257404454629228256969824267523880165412757611780398416394890204998314548144518629144697942089504662655457466564299130686546259686692917139605194589433512288884675122354950945389853187792288372170546592177581495984735331643089960992374151843437473277366805574438534973774227301971912476462500197928478608965480318651336309903177377910256833648688490573632138650668787682512065121023261884602432909708039981290149924897773085935055402033455638800280659094807633351748590200059686738963790652171645963584308900435259558731631077335762714600462843257803579947113012486918443635993373034333926307095444800440957377175561317601656947262211427382216348350952694319931776953492867291852505732092157207047645474104597785675388547118755751693607162076239779302485956360884553649170780486811827702384945392589212436069876513134934476128516359073807540836461684270764871314166105189236499498544651043152043611807212714774553813722083799467842797156803317957736938278775768422559795291401704592064937980145414601830487399496831089371359876528887529830197424447918811490713389954512549481078915991998649116620452841908937767408048841870481452334403003131374913918456484340094780230628024417553898867310317676175404686063886301203646407607950615385742961728363347023914673637192731155530340241472606539046814181117462339027409911540285666206028372684998190684006356667234296446668433230159537871778453745936386066744918802359909431866789711419525770352999127979225643175964295872634035722187051585029549869366326353278309930087222105951577370083803235632527804909293964490879075602471669830037105494317510636179951203011910776237524390012745716479810527490289478372117513852139206993019451119100545175119928983597948227966273602525349316895062912107111907383510701985223886797762578491867173283341217363860119963020285978497979077809325129432637796429357889470966432504056090960704714751302084902059036624842524176810590162924498335638056892451876261671341788738740000841429562808950828079949556763601606785884912368618358648298047951786589452187644747860980237031370303182659815764534687751120389698416872866883016397532267492564220197143549905452275916343046670281417781911449421406259830355100438752992851233038042824504367407715003763110981670952648729129836099456401707696201844438756610441964427095407739333363989182632955675680890862757726374675451211907783493315379079845079934023204656835812301413168535014182151096060120804215484687519205745142374189997680768690224005727141100386205774117114448880882691087579075997790176392449581288945518419342897506475376187563422614014172140513899716732991247522077664265026026852842362097403709523322171316264388258979767636193151719098217509548378706662034822728345677910617751548151189280910768341280625719310008895526974150618240435990210364169319902062542063106503914334228950804678446698003310202087854232421053740023203331986916306252231880168001726129819507735419114703771055867252444499921312000567769432589022858763539904434556130103272101150274984081118975482919802969521626013175862168813632166158458477435794430267509181150231581416520515394605283420289104910763813388196422455090882761699295544487493709488462763619866166649445674541586568349081738238559082572907809875618991487418444867180120603302610842340965989944456671034144477149757324145939847865948749269891545992997230533985828447806276975219187078472425286647269775275265320380409177913654220200674289373856067427638717527085580294612535867137625666698941310831299086012760745794134023043001481300024546300095842679528537303122319589571418350312575158595225219897076027845476970708553329511538109362218752141961331068252436393352686602272555984190599482023741306484947398995586648229795603940770806960879863340412016896899068186127819869635709114295844610868523952816813901218644014370953517289156940431092982486710630821793940857544155281424585246556683654116767776302384577594141773450824068932370306434253561086832243394389636796799839491568467102239546291229002178025779671370299734520496742995197342642745345447178508640177558757515163002422227066707325616756269345237091866240543816469671851205712482147494053494776158352661648831835765648924050562497387815857955969063544536226152607432289303080693530158012032440603678586900354286460591012910114047568260852371875767368108341765956196052535271750376844077113504135752822318613851486398371044891810334532650661697464684693651059654996493708473765021533540474464856029315953481943480017554991859351403488151520921635788123188133684736071788322747536032111468704355028824991197088060031662853330021709733997998803402209999134142760739126445011486631545115508886441016768322868565094771265877164884790908270184309565713594634678875023729986714373526246513894656160340283143371536553701321451139618690411337924627004485230697617584966744922116409065098711914627956511737713782225558210169082742777687095598598589080552527474576584189262486740847205043633683095059713006444607104360356475759257916331447798384746679670559249055723811583694394463742914101014530180002437934481064680175112685804819880081777345848900194140657017843357563529336519158698176127486139890823553147930139240310870941221871135730725151584680853560033922373476528699637470621270759371947659356489945209060072062016418505560363579717937722077853788877337031906886858352623507099741725584013548282325228967272210610105263624705394897240401214109156654048602684277729197445017699344483582387563980972108050648320984078167067349058055706269555777124203163418378950497329058414459026355499804436598519392546629215078233452912058693491656006781716042960860062929159769808295661440445749349587187933647644240887094991213374288531021656832854605293281955295581413192363392769533666026600495528144393796788992586675560439411085306300512614132167220906391462314346808629413817812320007725209727242901054036237322891932771147483119925068840723401988378496424722599101356582082165479351374149045928558633050982992541840436234570284933287319830406039132636452150971607739909320899921785632535067934775328798042254510897514706506199885753036197693038660557016350767427897510189696344210205519034671385993456884265318694252528861551716389551289627734737942008165929166948356932324357136757537147917212618329598024312130927822383092434898350144385194277665065014337600686253169050827156110438863362607822019122507653429483691581894400307195677387761584228758926288881429467734101792854694504854829253825542630452128326696345481466050011078880437260075280975068957572854338977986704823776549428336531683153367509122630521924963155972261975437111791786276504721182795804773745942647024126000609158370341196162229396217592651304823404197765044157517989159851024480466391524785258574706947468643529084151258177822653104069611774863897947983322697493782288025348210999836275527077814951733348316969107527707193003487513701493640517878387123110505696609070748446661916034235221832212105552340277569258516988891595266395623521082319861171951371937826839203606901124924894609237048282213207982064823327485636871143581400759121691758994849393052203428936958688475482412359589205197307427738417121386228813218692341466001022397420422117047678161995814091121972797759648787188283250575000072389495882247902469669239516144827069970467499087181489076504266468317913250869218539736219843135337376547778222374952841891864356885657785699241949776087163196054051686958637805150566652344604027203964855486801679891167010577038482283900955079492846222111501170205903180981478297902075587933678895428848323611295645775091837986387998171685687865334930257582874917301898520617541865529830246949159688318763699227166576476088459754313761969050135602226172510691961642971663638251233628873130753754266528467069447039329803345836620721446417050865539484352495961756107931854351761964385730194169632009472991522809559781720239110542094215512256722436470732059548749663025198774375489666817621241106404233677958863485479040125729264497103472948790281920003585073200154817014041596381965490646536431819425697814111584699039424789139416503629303612963533530975906156378928050692706824516131202167514902977433705540164587928616452464957281951971700847682037116386697779855882286379676537723814876464461699550392291602030011862213141683424676781117530534261631703254211476700027027963426460204550249078988250204663023615367617833987817996344933183566927829149838324389037067820294876214154487210198315606926372998025557290927719521693110873078926005496236665642791079109992196176776100172902961275658490751704799502829308281544000208718874977666812454577436021789202688446990728727726626818817110127269273755690972061907633552782962964039203128466820168060463947132666478267112012112552551771434785824621583521938240348454606198161911078882897370360338170762652362021284379174543025703102909990734658267497574120228819754617785119011632434069699159085444095723486944013210883821591156828471309959157009589851192976302408477747723615659907453400725204197554983476506078196386947102616382658420258441221215014925517151817708403644053997326476853576672255123571495111495065570457551666121039417829671430446671215456790567853197972001018880432650747548605786373226269098565867045782494148274175487280485818778853071626604243487569887177134097548861246586550456408581841420829430121688174020638382738602800418759444965135338817764826690263149367148542579449329551111576590866718521998931101787224211623588489392535771555399692263716676869085686528771491462242086503557682262863061683099409523591837684616443607903381394394980092540728738304021409390903331681312622908611664537933180821822356540560819727188184610934016666943536704501000106368619848170291370352187604572126087569460335622583852362975276123476581311950280614853320985257243895938253936270780273645569330508962909314585159885833533932041338571704055176936657542470468745396848989177580253325188068622988855558654820190323456114480622178583941046788535303458348263662426995755524237802818270181198187656077491375767356144966534815720875418879744922601452554566461678931800036173414355412313071224979860333274192483539524943603555962871858627677080209385009541587637306631097612358509840609516583227557601921822077295127288003195603118446099893979590398730261276258470593054899630456856353348839485727363800213284181841389076572444896799750183888834816767376464659101153494418549982396708114611637364911965051471813253139064374585480784148619258449857602869423628099673756155404657738736869887462316375970885293299734964331327716822752232920304798086101143021077247022919327562934395422072917711758546876299484013989261528250459731989677793119892948165785748861001712650025603886540669326698007617346181504986354882063634880179287047587074650207314427299680187162116223703258580591580307125946781457943147488891633924791736030116786003600180223559324693312625695274015607571573616910123674502733932782350243249046869418599378466135876801473869147006366157574113365572487230693369586131736456177528516235311294743121326689184953473436037796655602688306468570678643583697440518336301248666097122956464521537929374202806108693151958418046886301893947600753669242918940362818642353997502718919097064831091104723805391005010633963623198160957074679263401787979821132697705421287422670081552495416381396809497853680154231035104719220975524524121574076047111699299501823687591976307124089955464380195280478694077820398087534369586928696616773537058913615224429942504349310526150257785824992971953741649076815476365565526016299437258846624710438507771910515389338335704940805577320553051927902104870565150360685202654692049850953375861824787233593326212417978074601390658867883996501752359753691967963034008433727292020398768563475656680135382641310324182989597100735510221318767366393296552976491625596750479014347073204333675323125994365121630870788798698669372119778781071803174266534564054484357340648057940773158539374211815110395521824117201125560128220079003488373181644682191040989074500843044982204032477963560080310846620133083057379761604994116182154906858075214563901701645606578407961460554219472880302700494201262397632981811661968333627647795643221046975897874500433314164731081866475959959933423001795782239384143653373695434096202121309112891246877456325699899212731497733811581281714750426130793850148830743568333581577170709854169429031156509782769440178059185933751451217093456994010477698378884349385186949419304770836847019971333787308542373564428589802928539656596710223404212275150834639944145894304171574574946419226864564707725386176360367824103305753728112251816394511419974334384140285326526433770171931427953372351560844239024846607066057318507389466320177594493924698608824243454856692177199550078539566759294958588335263234118276286427614540652684805311564924859231538845514287877547258496750751937831200213400884934216188551765201124974601982431839438179102049936646752087893955053419546800210224842824534202862224748478427813062866733245727476703360486161805565388089043045451108953473538111321092193742238224491641001910563147112755404641724494101277833113324326083328012777892965370707353201163265639808626373676680371583407164698521820173976071906011420687365521878791063101032290940448927315709336892070079244373912416094674082461115556946854326692412501154358992376884779618867065373301097368991831630386925960980296343218135687019086571194336192820804369400386664749306317077485074100454916979443297267277941814266343855907733896451225666076443047389272771305141486913559658649518554561926798860357425078561362522424743298927005103700954562780418701486278045653910051142896393298192642392602752481249203679398529696671052365671485617117922102131437577100790218580127399420017124106118618959353845248620723560660908697948971114723697125786407317990077721554375511057737312213667884367828676233017279858533107587962443425474294759311577164722456355771467302702418419013662087078470102920821485825182761815179000001985208123337313230132368880093018081682426309068020986983036528316997651491542091728377120882962935657253749274635390151275642219487662780756429923866636829946393089739822047127681145088742912374397015296852461698080917647373035503504020356841620226240776469951318660952183196284496153164941424621854971731446404639700768492063282758923232347816941087196223618523172752217189627290086664039428833128522326711453332261743229386642655414590959512114843603320889928742285902810823229854211528435152315187907669389114208147843493750141665333724309842450441340953890543252404547739459895301560093436046851135906868585313926009708889656337226654145725720774147405974921008898219637238048219462899679955331329082247459334039595246940575197502032118354270181446248870329117608615039419340161025717398705693173328148915490934075279552638362086569811717749621581625913870226403427214875438072357246739688535019987887428171018108741813737500621402893347879830863087583184167761068263132064997805120818469189044536793117622546101247461319845949762732801654571562474869048636982289654549454921306492259727643760288522348758056634591337303920179899211091605979749198980480459188725395321549692001122974869525034729215718150712450453706782840903140852196622166547628301551583305724592130060852919582050737607003247719129829908798058311785762543428661530551762914811232084053442283710679868720985546846800205271814444727151060383339890789402808195100009985115023855825713931900647398699381660693975435099815025090019734502133383321242706612036499736434283010477206313063535821527091114195229881962503595576214691699295543681236497914517853211543153401994199670794697287614935447908667739789431968868965484058092968315578812200070335977458744375868463017931534460983489243644221801243454440652915769496314875739863262267419146412813460399356667508853894735051170813943956495766775385385297350244220902384980580503063089220068051336878078069165127709870925901265854000424207638114740686401620495802981495527473553385188995041151162337963065229651517648418699142618329011132305041758368167446450028703723292117286421550431625694913907813204912934807780632950194736387664832145181614888043514101187309100057228219331272708897681749209126594232528999475575502129484368489837472663407760446634062104647287072439208082137134248031198017883967834644741034533005998905646157600003278547760287935725628784847384747550359297142704599089665102573169731681326433153406578004095627551144145279988226115265605993341328752847911314243963875338691495675792391949071753375362936653538393582277089278597072697972061492515494026073278273131685595320437822812785795783301151023118730072175402523324765771979802103229800588923487399735857523806301249846403484989259700946040176708711124303487345405457386342342408716555468586991142096541024812233896717223591676023368266863625284597042988149156582373752873528610918346199040746719079243214020824615579963998101458487672227527161104455197741629038603300527184691222556297996378769852376299412703280735821728797752373236333025330391708771541612295802423722123160637914988719859871164015583033101821311980212885660350639005706512729701633049773649441785958727043555221429386361677408789066520486999827425300481168459812244714669331394835125015538016203317600739751239674913103819139312946072043958288545363630490301762206664786230089528647461719974329691906477866759815579339621079468907644078382905027585418552332656640281033395912397271842066938863165881599865798604015115143315372375435228995378995498446382498760106907204797252535157272058326337542285932067149655797362848082974190502696282451075888342564184605448942077296409130489051334772302166357920957738505072566361647652009468204115023565758478008822336946352824909560136008686407577110624313978309789428058462643872915669966346183241029677433320411324426474333048726304096993152963879175165726466513144661750029603000387987155197792704421667906124279991479878233575386566669917758063405356019290100143310861801728448593412487564896381345470071514752859633662901252638396185647233011636577799524680343464532171792599218267130316556632589591535342663702956313363304742325409114091823821927550768092049164196323458269756297535867521873660612487874600360062611110775193403071637523806755498650212744996071202025947575008098729548393859834828206191550713845228117960310276120256838007656158634898624582117347747152668380443170358948290401535077803638064765393714480845488915463474283112160635416047427015476910764828882530588204209194928963433641691263898388788913413372952034419672468078224523512088054181569510078612610416295536414209587851196399035912614525722457962477763118269872893073332737664443428181119163309926779023056719760269859254109903027215880288965942517474418410648940048576474327264509197869998628671369447593028892278968372226356620859902279488835533699662425877003670410317392352611672092111042891283273889719573052240654369549558621193778602599329971156433629161524322594291556351107776007186567409898682614877816720007585385083754434343162106047739820912318458368606093326966335021365653385747052828743917134256348530190153541083446621143940478555407960055255695723425715603326573438327354425467017533370132918376724748205114121006336367247662058436803412915635839877887567557308859244544185838183713248410526818688145018808608408433397175402642611620137220397992035159265751916242398141494381517259599734514785356319542284342285536291167634780821952338948007699493725933818700454374318373220305029687920419771343538877027962977792955072830786366987305742376327712549525381320906312464371656063368103586001015290766072592132468187875579310262462142823809144187277569249807410978972993525480895877173496574426254797730911130638280770159478402151171303539602422414385520929676523129682401629022269529257623062632262381149371455346863363620867105449906397895738079979963408388212870727633456896273274836805398410039562788932397586969031181118316624680285310369846999737634037594992189506022318159810050396103402065235534335153078503407601752005032791051701131108368324530586106639720270788423516119576118284682239726488325081843522541950330188326453504802120116419084375291779392922646145729555385951695559403244548917659892773057035799468101325852114083284467935630883227353083714851964637803562454048126860540054355893621497042800970211535991783960831245572260776831442319680262038504297005915399454496907869656171652801198412438910555865732635390705668501340470605786639948132166767283099991717715724114297240278029138134482685499001062420664658029374588045058116506514448102008303757465296271083570084495322397498249616904448495457298823401617162842524741044824934275776736036374458124287667406708141882397435061404373160640431661836043706284798042713699248966622896821972944147419438010999254281433443580375869088153816074340786248513280309098681803740538741844769392930136127464047755649430272791852256372811163427815761587178837988312116085725061105968459350482532268263575702890127342673015517018910323421402824238724240790062071479896309578625645095883636888842379795225620402127432626232026230994594405989400214708135188202940470081426514998607225350536775702108302547969339352152046601511572971032704010742425087907052287290285589947575194074704007494353251895625359570942286879882028623664951665176329788119879494550738011388082571466522749659927961878072518433358563650164661147452850715006579383306391620171696272193660254031111898973644149786127253740478163071455081783263164697936719500855164031021882795992334749464651393210344452655834449823583765611778776017843324074052000701262195078312066096986104926821164642979869562551562455214242368450983465224437302674627917117590710993069744071337212806516690514995366362212973192078502963771902180180580979901988941193693021615339825936716344521875074466579061521354214143141670858341242602699852393869915958473344143083239325211066688849758884551005371848421338079314864378103730100213830610982903456481489770171117325237998072840748551454222987553222136385878302698588383097917614764650128040509140282618404843356724372485767868818908511474358275644671195946676124399123322773562544516042167391313909498233158680837678816244386579474640661269896937873903551544663939711590981044270948155270923614609886804859558464919364081062465253161151782670922441632503203959183884691230107659081656984572207103579149634560202601618481707033054602020348559146263163564387252655823038998007086633847724813320782636496307492992519902333751437526819055974009854622204586852570556626589040627499298904922565203434364370305764373811357349901199974364312408696262374665488818680366193623662814264916664414176328078994651612883685495195503009733953550212037105538718023297050204446189770761645939240755159023383941716363396786830800490013934120681971230326748975961921606952538854359469182208179014923088711057732839715701173328115113865962212262438347220523643942262416097364701083298328616083277460982007365885394792095583963563566131190956444105736404130112714465646132764066737583321091421786490014049960029088726239936658397304675531730210194320867926731416446951337331691774915506553941273007366821549167929208548369626906907111463596626076894292255038185591838084604754236285139800390443299145818241107596392530550366692410308725003135311896987923222142714120054731888860643633551479384306539593221721737021242650996903615311714966873208779855614120879760321221818192506454630131529288216933172922308359891275275147218865621715950143786927540049471271801380681956981817582391921050027270104206041602487772878418811948987121507142598071650087173744622493648197686520927710494995072877845991230308177561943297569312480304762888635742006073683174131938141406164437986972716584904707287966177415812436970407732150449428471200162161235731407482727227093358268835595761336952406362808893295921160736880722461644847066273226861469643401611148967358574804419875638971796541101925681345971698792733541181452269745845105594107551790041503642037952785103590714157370025706075442265980861944272293225498812537514750993594185423244157195018789728805618998370660520202381882785638788828704473629199877873300005946025747298442808714700166996030559601085163961719687953349073112601416023991700338741042662500167951590382226088424328441354967675089139538661251113351232961892457785544160853841470471082584901854301171356845341774450266330960789080351748562422692887575171601975282762005105474428321921572509853934674591179562457880909077851001454762072548540687636719659027046093392682988837413472892628067024489137233671624884972447900320797198700238902715669267492411210965089412662383064392078583837361361877846135964305285312172557353590801334347042977624396870405125751626022367359022538589690479549301018430892721796973918364385354445162580992757730700487638697789774830635742047488666031965565455065966460466201311838709257973098922403447750379818869214560358284023717162093926012955417996170081926190719784281957997131497303230119884997251517237850606076354998533960095804953194256465932035889478287638003910425072953585018992178831305319512621534219735838861515494807054872545934512529540107251442237921409203526343932356282919654366727587050479396246757090815474759278443096009808444101019396757198592835843867765085113831333810771586464598375195711044225970158619694080864087643527080458051119367718618438364068793806434584077417311446695476713953882626994186011245492878041718662323887510308786692176987348288930423724289525676830343555553168751630075509231463468665708393261303914509117566181906751595878610944405084552818812436177310163085727523735508655264938117315408084408089099481037208477661364301333130355072326255895246061779638890050672979252336965222879127811199078542189605886809995802799853084467072034389869000746839061122829183167912839024970458360692020094263435230564628172078022660250375111698717253838584397695863946320275695468192422954744417796259338210658111729181102502914529849726376607945663221476296908594509477644632230874699889552189733748850929380043719380510310880971509694373445287396057793262881840398980753376045966888335765445463837592763895060409383411500045747828178310881452538729257415746307904200911364989916900882778961238461172377529066055726423607249732777181248802123727349132844301282446436337509978278632209174265663929080241513055440906746940169487432942482780939670230573209230336821535859776472070359641423620450142538299652047047177854241452059686808101897826090947578587124894867724295594635652726133661089975986856755876867581809058203134131831011227360602001659188282557636159745438119734374467886623177043923000023523627394206892589749235514472181483467973879417800450921656216657389556537807510485241266734284705282349516562909102566391272329423108147707656509293969121053198426104213987733545633813095902621180410682818767533781981717275757571451363450527574977293369796673711800740403008647438074682696586254438819083836383299457759039329893339759810871728948294850872829303664241030490611683073734451615146168774555064851214723781930276507511122237232626275910279445338550203490383235045088511458111101163183597591794073236471076155001815215421241636661743541464713405965193946903855857912825246773181395367523118619049733743255534119084909677147532076363296717284196347425222150388921492959791010987664451888677074854406435361522784193144205538920712483305761126782599409907353711863449797066837684620871134350680849507275127593737544885343115415174139700576400020671352278982133806994561738733492459453194059105762471130770035114536765600449300587157237798074219036260813561409145986414675373611413424694355076221992174979610972662620714160029073404216418205522138624238365427045531130502687430919893361145462880028687569119165185749791857225192275397116701524893325522852286323081891670281809396750783585434316935753284176668894743931763272163652671291560101439462351588248637777346830332308131902452159132224694056419908572382836651955425936014651384493592921688654387566920747683489267107181125237843648729056997100898683681391045804925206534876810305142888872625313765929029730930188581915721035822350364262116877490583672401643917055307375217534139464215867444889052680019925856745610455034502978798067716291317013090701493514451848319658336493189481057694097008956260960430759656765906393627803497928696547337868246577163393273658894800142563284628151189961659917011110671344291040779209857095441146499592205975371116573328441640624200949290795400460795056737364317473747168080645742164994074972785138300773649616068710435963886893279523756609611960499663850822035661527239065507299400326430875635763382725811466391741673299488384860195662700132002373578188344007654880115544703628448091618064639522882008341672559668365810170186034947194663381846705723987674768231136539511869849168668041491582144969568183508432437266965585221727274675457387768625144556199951084517898895658650054226353390727267077274340491159046522620554702468207370136641705013563912769858246625252309715709727643436878322409992199482875199903803089055182500115658504265360030095493124306640212768297212767369346432455539953594169696880458565976197788260967277715815844148458366889632909466193923842758072830256118820489552047262967544235221002619102758254917305036627196721519294229111188374779444199132590450045981934417738846080523804967886740312680353241311414423169231502712811034399735405545113716964278833597885983103903904286220158238046524737960136257463757485352647654700689258277122010506460189092300624190156262174114475020442597277997600480362448405039672817292976870093404122656387643903592022262448871055176594859361956481024409477293057518766325690179821681091593587568879853913087627700162673645611754097274651206872603909651520435151913265791647955936642120773530326560898889116015337411192476706821681674277215021297423811369140229412975505211500724972537469432340574444335947785579503189723302404471286081815180070653534323917493001980638995434297402779887072802626943276137069685963680553496531564386803211116126207806381177823801746327672810129734516696960533817432047913757502075462825673921692492202743656798904134161716444589258482751259380406178077164012052742247103561170053548309497017309225874330214629959754215379320231656789370220201302073645081921095453336186110230351438704179372393583763908772470938373981454655427934353319403389020557035173642908232938531249111507932303154822909998089168881316981838745771070980115215802861866421448412059506513985504282060470712416709831007715914521440341029632538433015656699639544204797930060751236731202147158176743277212820782622899069473845687317604108165508227788743948098791154058437702980095342239267740168765101030868580147763809298876477288227363604631234844839398091794815186590785985487952185929682388207935188348129688840521095727461260618565620073603439620331855556259838969407341639198378799909855965907775215446763365312068642717619368496931532814687132031374355046164663486662377089783975901102315646599742355890486426377375875120622786749453009130741921980492863411033929640069132605364573042410575014154973937358930982803898782356861216856070895169864154263262888786783701108498311672222912615331474456450240532571230635029653310079911043259943482227805378760522680025271836678423955709652488813881972466952625910780103553450923787699344008842826649539416215522475069795791150480551075099354300720642179104170915426031229690686881276416639583566680297230847854066919089132966270307136508376089184352583157947927050831981693686689620838456821313914878826899317936500338553143540766542396141984341036250003489685678783562887770847374552039086062420731959748702043286680681147799891552207334283149133921262364648045890265955576187554774965476633875974561158054760536235084353102013662763776479050819541145360365855303837320419857350184836033374246572089329196675158657614685578512611681354254258574048580086661828371915938912792855607740436149038045205384589732587296331570447568656909083293980152546443633124704322638857520541278621899770104532965919621417889330391813202705438375771080688236977389052346312295977860718558849077577995639334878101281884853882513828593832990738152021194971371724922557665702107781480408764901140070836174421245023275224430438040620404686861520962305804431196887165390796161969322159252150814718561865740908460945049378496110568585745196010734456929592778693380955753479812183464601265125184085369115556059817325640306239717222071155306787344295004863201455237127267514596597680502280711960391649928612177425518785050721772756482473106684926422353384289162477692277187005693488798092139093520701195962367456312066749666000331610856999067623096879523693013834421914273353345625868302388247628681080035691055908393795339309606668450541786257723616343482815389386027335064552461724931330581531681684813810827706822858487584015565034947911339381686198194206482294347671271042718988553827052706975366080503311754655761408060703093249086518939614735627173892372863271211572141552348060099702069809028488400776529723301440129128691530687768720543264493606090961870658082414194701791938078306092015927350164399122117330481961207515419188506292110491580550212019372898363687978342149593099630106968237568143385054570878452004921950481796908416466000416864599853541988527003887573684996970169087720993128069922713923517729662429376689329627270938025756175939407437618402153329463381456993678789413260454870839273433795384457199671869095657726630347618420695711508050661048998463401938305267190248030876424946113198680221069850179029774124612536205645841111677297486317072702730884886879488335294052501245158321968523249576922782078793883003342156627805475580131767470456779776303350898151439087332641720833861381646571408614252996685611130688749645055400860865328712494347514526028216360469070003624909025480843245966051005388446616611534575153027937746121422734388875170338069386486939645704977977525366139523893822874865731072793309455607200512667478172608221487992467217979793270539432839477892638417390017980021263114590826988203903265949424062674931074871341823500869232992014114045669922764382551885970002396308444252426951062441629330635449324554559595663448026119297331167276926575924572507653226585291432106443212171335613281542995192769400483626594192039466504891596258324183795282400695458130316344624999329057543069437201373434129538466041101765547354731577180201084597663042168263556669746121284162153278101426063705870105539904840101262855005460892791713967651158432420408562238130735665704178440812699926332204257816924969604517172214391889954289832946154815367743777218722076304153505263659740173395778099050467776681951504543007577535369153177501215916476212970834380543571790644230773474888617749180490396294223810812928698815377365091652390702461326546170121629742771913220893019239779160012851383346208726259981315090795294456959016349320507955585682792655555149255431562907155105618372257134978323520267136596299686734865137832945670813516274316271168095866666405175005827880701531837079702637261556216121582026011224357691189809646434411618817106001863983899055667611398866280151493456885971492178259608675074385224167734656232388987908086858402277688036049409725895093303715585418848657552170477254448456775138620967449670887886742308651626544977794296475500932366696432037125303043272711415090167837510248538769340802995125308331926673261482075351044305258543288381912740650877400944521097873297107974368696678625310100176053207150476878019329498629722946138889197739412079307165719638963213714353502320244209782135916727880603538414228409343409022740026651336051467754717472379076075139250012709372448114834108245894322007157932852307859765165035555174039826693405710755764885767266800037746544378294969044644740605906093397355246426873961005305925754843500092622857187484658908077832598951033184191950802887067426081031279325298266502537848380236861368521177907485548805971347882105778094532523004669549297709408408534679386208453893033671809567377464704548032421263576027430945151961079656534890921974559418040093414823130510040473702729852810431470742004765356201492745975881102721299750518388918823500509291030679824135774126056231818582966098018748645883637200239638112390488885410647688971326252658550083718934496945845364117474935591341638526138515690248450280241507112037759777771627796605411907642265761579468689918909591339345520881163383561618900394973149282593487909858589689894563421897041291964687677552733300938248147808575420264857420189186266333515136852133804483084964745589094621593928922540759539458888061662010859986312188074971670840257444501644388128255005480280278254734929115730876638569640775336739829695013121201163212879825960198153325813947508129523466666706356067929168519127553021390406290834172197939303191851528253122764169363194583317326360474195093700262196357263384326650372718632844861790476161506861849186129444034468469799623828968128025213241939102288857468644004591725773724505889982832976756928668906866514916003460245428025535554251169397589081917052329882222750423443866134333537221565247460129062928618130084456460170733504131208088003685389909306926976649313471119294974751247868441220730359843658156785525021595367161686367364008196875720102448039722455727793279170378470491909495503733161388373362825795278730334840156289158725542352718323646646863023754704242627296965124662727092384975509989439406411726700923485085776956233242879070392409917864554024851726847729108263661896432936059396121855381200953868569464744251690608039362007387335520342850847402527198421594552920834987267420855788351572460909659547367293848103829012073569311283429677650037755243475114347683931661746720233745815740871400476249033172106853596603679570399448908475390568596431610186697720689255141176238802925765897904838151249183613206438848870203710590620117532630057325094886975936327820835849841730037021595192507656964379694792007099710189462025154092957120977621816160948558100277610323890996571077025307029363551769178592255902942568695532161158037101450427359409847694866283762657523801077292235215589684459177397346163488484299852092744542543219010653279044743700541650783801246466667428848151871377547658212814538895361520395202256289173272976033903138417969554956795208129461572568553945346416215959578315311854812009734684331593751621826578397931127513914273044420627790273281853584294149367874098247237322008706600864086554353767871767592120405853725287271184432926450884652871099218901007335125467021639592150037560358497083742865991933968860647932376745541116107486277977941292235790030009967672619978331503026227469903430304500864133432608654034638419098949513338796384000118795570346873684236681474616917020633858033404963112285059345102830436414001770480326332545956879298530747650378985212184234921142150018131020952855136002701320336001585361639520534026582142842765480734034940257399506706254129301415998811547905221828180491025625195990017370236681475288067873791972624475453302960156466322619567557214609172572295360066509598592476226527768286291037313557785989364481354632951611747727001012209982110265137729691052992177426373137726407401702804578388558080906354466376217808378405024820039860709213964732682108496056728068670721842274751962649156861767836639923987735326810273664380082876748824334788857219887385885061797661081507018743265361405181042520809789879437404006956424607405909610037788281116540850553068017214205478355911048610832396858027280756249297462291887676380333285496557378936181373502684900473475880695793075576023581946745704182864736733022068365955634335522231669454667670923920402812711095498005231816741903847511487726328110095154796492123520953073133844529848649487912525264812378738334659301287205201187654291231695066476783084758144114254941590312681904734544672164538316781327753456024710809839463688893305412100108536907533766118496044594177970925326339767281801483453843842356720907944249206471982937206817782724123477940020693757008072358336994437094528758745845396189185005061066360660469860463002150844522531069205020990486317178256590011771320517487959534732284072143539898521180165459484432576976396905702268330155856093550550803841924440810007272938012421081996001110711432820271672046160024611895624740050187248184655667273489621733030698823536179950391683147636217687536081345191703001371941973513651363647178856267093322905903905381646165807717803269859663014197088183664936203613328305667734986107706560400533710284639235235449245527806273228489191664773400581150123323391281601406086385073551336851824582598594629957195306952662724958126394976014610875674589312341369197516876544723371433217069517294484430455174561716497647569348869114346163415533712202851327172438200221303458227156229898618867041173642565887240338716987669897362741985547971727978771934664077942090161946073523493040503223028605754065311159837903081019102488301370261689491438319196983432639135374282401107182104884899449363710054902336871539140489773645096508856347607995469220943285880267878513087097619417990186301608785333568019771256789344847762085791404271876231663543851877782028006851819522619998153542371688126310494837689508972347833940167403972498502246045247297161356379328793200871830521655806425291671023989164983368169189616991151606332083320225393787334351736962852924076652553369683156532633988916493555965480264659717507781886828457725264124932415386700624063037388551393702637966390270687198276254329592666482770866100959898650118463424260065660743216807895158297974326853665705019486592702542026499442550459674762993539909665461847666705897093666436804508289974441900497933501479502488215228668814249172606540579755344019233937958742174756993177076535486830053926648951284498805299616921133607679479642932685857290093501232915015773232913070975777340931579951452916376611015173995814428761754181655346017182437685701871091849956426629254569569225136517287100563399833775940303238991124162041990423671696013435776478047180844092876389202317188338985070272919650367069795246257931061622867996493214916529396983288735341846557636932894997024717657201836404649474348261567235231127477236736233433463624839472035348090498729713501332586739297222401023183016052566845975854959155280592776578885218586891189570005847001917031155725872738586900751974086753309766097788775442921870536536557087285766982943380302305070667077908006004209713047806979328054324479013900199364157950146933719577379633700637874247397256338886717186698183884658300649162456489252413882409667252507047130550916027323549283027786822012561155088003570539180450760027010462163106468283049134813925112839879327111367378113719002358166846564256575134681477980168639499827155725286458249653874576893254558661979782336687633777166366994927743853730297328502715685447738920454650255167821374921585911437691124028456125837397343665573232732411780334580710785503928897351051054237439485952945789001150088054937840375124032298168024864582172085271942145851051409168288310974611941903154703868254988880842713199648975658714388843966917248805107577313178380915771542099216979179670596185707676378591879265907964043275980254705494659999360967944786084006302169877327328380252899665490910943310414959134981594615549589206051594273573000877563720579128085909010006757324479372394308450640888240461781285981134326631389759433923050375193466163290386408352271359395015411978408085626948111942851716920855019959391641422956120553916672339514707765994808620599096529290611830494841142069034160359984930423957727007350124346482067748620462127659604034009460358247448904662249723018240684240090080833596934052227933556701911377135823113644671021458495859655731696817632215757871622547060363632765916006956744579641915311339717154006104755543395438936267266059834626216427261944701222576857695715014153183197613328091427696544269462158426683750699642133670391686561268779879460502484586371761329758870081036427346343561452611228763560181645474822834255407472514164244969140288531692228449164713675364478936076666660792760016212642067984551416520387156149289100737569664102582063900933675089189745662782015643437178426891982573337818643163254722743107695062319285894416423360401307894428553665608658222904704958271830941022452526098619241857831792117315636626650798001112600367499350082919293811276293862047753408711029887879738740232308354374429041013415555882432233536274046203192763303638691996762657425543082945023666683369846202930496258026008792349906961718305338025658820903357042193726458122945410042404424775885054651994624705614104092225070092502215139277748619820171563646603773655720606123050591555251700977391494457438466736186877783444773409687131884603720296497330695121835901205648924910479882196900903351552702734254468896925985061870634263969721338400310393404668550343713929329687558497644004422992434074306316169086814930105553757119731622254699940288111319298058666360891719339259880815223496422121761594615604372526865825774048499428842452273320810938237948996302130081852292717308980375643870807286399631153622362984291860770457931790169998650586184346162504871385815956959186830305309555976391913184223487495330390266766357314119912712873630984151491017027311198312987031193947159247165224840566964508904593640302052485272031337850379092983785075758469635120572054430720625039657434756541375096912173390000266297228259330847100751626990024551950010440153969205926817468012204412430582670645220135115585675449992402252321814563254724114084145490621168997046132093172229587578794488589136531592395476159016522798789257422162839044491467202091064707904244981912906968590914727697183628890152891316072820469211449052733026594070650253044052242557733218630284143913049318683228782981613114284618718954558544504634592089579355730823279243303378184638124674755407434524410161100661345935130146775551102636522566724664204436761420001017390995000598476008910076721406190106500438959208725615989462000365712419944133737504660003202105248352596625181965256250540243880985639341395123065896222175565982611630156740308923605607565372233649370598598050468993708082481793333331598587900691303479969751617320040783620887204783741716501670261128488493373650729605702626766155936881485319585540793983523624825556655634902226545026508987365052439132419158947128229718593288823371189427838363838616763302511061129158404588951873552474043634649060582384985263321648612449228906648230823095639692085396731357986355633275924192541951363088832748730990275102352615407895490235111069140577524050108472682610016383556455330000358961616609627142357847961031011698401787215736888608257036040043171317569875662762731851214308851783704357418528677949709994705838048877224786795203587062167665797761578688913062847170712023218901721426682921573467337899204007713923987373329768905675335696621045347362452737218448582360914770139870019792596165060955648847994923476679856888251297976039211536703283991812505599926716810133805723404019381638448752275549199646817172950376205231448300370999587116902684748674153345746442998290427696392367660081636550219519872195192424285327581181380550677712777410310501983200265908598308902179241177103624333713169856172973526960564978054157405411596280299609228909901769811892833562007624580070148396022578564690969034689480019350477299680114462140131670245514034873454164442962248848821368426800968986148683876959701362540206182967456765025040477758576603623296860397081774939239440309048194725476930036197334603055874363232326272426740758697640012635236873665660304820575348474012654257508771061180955581912662085065254209643401167402007106911920317158022588965703789109163733106128005774488411500043095219467180401315003274788098486549679141584058002252270334036358479687781739717688830603698193633321258468358023531253856405430980549992899297015492082193125598887734709834089616678346006118131994466731670371407525405007903976402340109680421940492795625723157326705492459674319516050100170448994043750195660856882616383188127231589200011530839484399887767141939815428644116284482656584976406681868001045307958820823507654950767485694852261131896159220165152090452717561177634685448091874778490888934070039012795469350828551237950045003144277967162088372148707621067207314606541538487859345037414677572302182233471073679708839908233913841837893981675962553031331105254966871379366311756821088351728520448150117758276755425371935624710019987225440528266813614066328533930642069371659966451425006174384165742619997021497159346498359401509326007350857778324593653013264487512267763036784849762350242000553077253281639618660583776000219485696031074641594591607987228268353446157464400021326124215411506102671734405977187991275753921112752455152211092328135028647592706954635900666760306085951026853465301898189202064291372744017642817270255235137927318822669937096236370037397947988012764695523785495807324412514849833188366359268682155652785595181901434053058073701757659419296453411434204718349535413638674593291974706800030012949415777780111482457533614429410540190280508497576389937935427510043650608435880144153944330891255772424725091340740308095050841367243689669386788682638643436906815334386422844358351486497672646682113578187532710654233772538005218030013188176941173019905871699294428877972427896450352335735850056017665229562371556228480203839033500125108201482000511651074273706250982051636100798549471918452457623702519800267337830729628632507505057713925845520445289953105370861405349519317017691942584617101937909934451115161715971626557239986729236360461436765774339518347519264381026045551508432578218517108715610159091410231680505834161160895351809142770937980822427024185930776978596242828446224447746959725476134573792559836686027084047390382586506280120475275282087841307343392104039037250318351604100074964711145789010801955442805774045478272746033857622619886512282466912230386649292441217007866096776847597872297202488070460491137903372884400304002622763643624913048108488963599410217797856977131669898578782973395124132258751118978232685974417227861880838195052877752389172129252073035851072302678795678220218746477156675241144576036693250313557211179900406037913492754855312910031114436108911867183037023686225658873669223023448925029587178096077623235477477731899715788476104798255879294283570016465641757166810152535611198278751233517569915926408942823146059635527102688370756740417481002618931611812930084337630130247307186159389593460340057191453484608317312843953540792237168460137074807886718971268296705141029647724221837603227136673531907838611298847373559988562875958060728097484764552120775921056543464872111351897352020188918365188437564765523755889486018864332086340320952742622947111151166464539659032050375130918101401682205359505773761888575287897052720363408777408479563596445152286013948941565019156730382338346430283321524455493911613932772076559797544342233853413154015870853462521264225503712316375389079056267532488906331575409005083220412151204367920044216445651284865407668258586896421760597985690826812163903129612486209629272818558261706850349508363052328548654324035757304644007185411170731307858578010924873680515096338749207341242217372867275160688422045287759823681152385781138955157489671530777731219778015689190274302569622727776794236233191889259089220186443629795382682085215190316728334463558204272172728768187942780840269276834833546585612145895921850051719683902542780877963827291689508022514660778764571087516777298078795671026886280385302786295293009810962736170116837165042907432471592446983245118719326542576379732274757053200004915040893993545793954451908750430082838028444556079114052725374378528067409520444046591592288797694604032372124166783916987721177534352452029846151683759629741427732148105338339394108252362421661682476339308077605226533340257719113430072222273155934188140398011453628981090079387127881189466371050409557912886661933173990409957826073227649480173532408819606074098909975351318026277254068272967301613670749862297037617319527417260445279587845869897125018634259517211206452375868086654895012540758357553261923630948089291306146890399328946854643741689684553082572244886541726055821097151729233611215528290278841259001360091272552747639420993500968226174718258558304172537039707467959262686844800637364695525691099478910930553787708617482801807323050278389722350067709996604070626288702348046043226541737330779557748490634741461936031906387596628033852255032790968992388982014479301487872533508471934137324798030900597323786778874117505422416167442772941783962385688032026683588471977976524691000108304309196306709332170033573741782806627466032068752900116707888922019402268628510403707647195478277729641105622573344642047810019241930125980530241720093959182163563701354731447545431884992584122120969305438345581981818074239141367339724427653080653043235550462142071668865047036088233734055104852391697596788120433998390743775625350800392092506584401690497783299150475308257098707520738851130496462379047840189606023407259313208575409746648328651652539851447877724220864463203439206937877446855506838380672501393878973428116743901695664283882949211882609820537228749816639303681300478082166526327214799228332649066794429093456935094844956552102380599708642277908326218417546347912061114234003531166721644384096339429394079623322944155394444930171579953761590071265960453241248975444800580107167144092315345091521536211211432164895055302890330965463661898041501491476141009560260047269002561114552774137347950080228975056968109772666724543854190948538428062982155335062929215687606122866261696598538165511878928008689329481712100816131762225190245161357242974638155432211030594952230945128883110780340509487937360120452611563916076589287362289182552788281389299296122023200610905945045417035689512688351175756521543107835491973160761045804227071757629763523009701777447155913958531773361335445078057691299442929639470775834306411640565745242986316779737016241080345443186556182827911669226284798391621463206320068441508014935934942809450376467919620574310602270769539766236266926537106842275387281557340726720396815699155676721690431492558175221559687681622427090204847590384267219349063987007244834678603583198380593312531621624500152618000014586258746036360560434380194427531638685791647359102794417528750876744094840842461988681106181279133953504308382983277895533812904391011242790628941359839680941706725046579766885785686626407735761869835426323736087025127173219158037630794674153231526460927161913550350162711632549053211330770282184897762561038163840987560465089598449817512093776197346267172358744261508768141994380744351801065497710243522845521637562850454668907962002666298764008494173330193162188532480586883807401147636120085592486236258299425320617838848012071777830790402985040275341875130815354030691557618264228724925685864742784645782423532752845869569765758991165829739010922113584880101346422568644920739205853155153164132372217500522408306579528375035651785259751964395703015315991114782536846794701067117330250505525856615224677179982296500393704129532498112969888213166257353706905383613100395815733238873051968073136812135372044635067569721648682631014250668010399762145260565770332232323801558814658622372409194947674237444662043113228416455511769844220965467899382352328283093659960926429258864965054121489908381459515962711001192389645764764362943484297349046912172198104241797749660657820259017482224583280486068057128926159911580632968713048477981479363435499846450546519144857543092176702273546539294034175000164154662278034852523063098926580245814491012051125207928800234953819233871118119960138228738441466074436154629365451887525533842937089805466021386903059638764852030160334060482848754466288613332480283870568300106011837947442082423167932538860429072530827744768489528736003759668694705308305017229643729981699218823255368723532961360916220151245217687281950796824600309303217887661806585764050813359628413323982918639170755673145850363158562974723882108659558455374751674299372967575217782689675295653176763401064185164031730905487137138256754956104867890501571237114707453329023265785766176023653786606855552683823735478343288941481129186620251228487173380639673857195426223048346817931378374607186449959251177623506118987411528978670072152120385762664869152358067131146866284327667173137505483252773438689255458188156588491637519040990083565237987882347421825082770394190581723698635604884789190860814119342857867270127815233199251330371500639511975507710013464543167984365890656793289776086398285248690278174076681397333284855643861713096224864621300217332963207151614524335450056140710883321423423360621497122161222684501770942113933280544063553804657081686618934480003395535532557261206296683024888584158594767919368284028140701003863871662245429213422478232223091638608106478095447005809448287315737543006573595904540337072905330349429159479377579348554777344173153449328703769822132065232417029804529375519075089073026018665957865512168583928598307311298455002947967338359585492617810685968172254565336002281870840192750791621838084364194933764355997229875405181793024483506948593996032125181263310664362359661792805500365822006880680890976834483655788910542649428585967161124421338013536946015603089723627957483690408352508475070792657449032203638140508572205236600899671273648353053088220605881121650999560072718285680882175974960358040404140042991304664351309724261195984916235259220105843894580389178515925350431693855101943820757461707491685275483448685917191376967606290706109362117457646975102445256374768580842637632033761994494356194069893633861035079675626953777160476116549804117875679849871182843996284112339629146509814770939273172300762302284738344319219065631054114071902551325630727177679619668635656132121055864768991137674978714934153960850878767463159324774679661203905082471011386996995060184744394020735075010700922475057190346423291969519070449301265334316589496548295391288758099198232773008698469033677152831682047876091746943937263943515032952831873516821314493509896841008763137589590456240053997515207349333448266363171968495192647394057878145119324733704795606074966040656141606723148784216741946952981533932253199247347289348279281436200962090088252534097141296011224671925159199604380371913910483517478974182967901974216699289616060047299648990065664662702646000775186761577638132037481221571844694288953793067429944015457081257784522532554599209305469601945065918539701648930015415092316984108209994246330610810703055288792735698691152576751295690290578168930430330337498032912649391801979192412734313821976427528848356239580585519278927104964422167156747566617759610195312723698376793844527599744348745750879119409990029637641436521042422153804609605909217888958370974047539210932612096781857726311483614962878007070294582933512377171179513852094041809168641411978653413322356401381434517253558629749709705324257786473734690193618609164372782567989769182433743049705886532972721414019415810481943604543342468033542820481295489594879403535611832187557841670245028154311314411804067116074168292745849869490111713375954230450911693762477383554405122975299699112100598772281021594325341963000440239644162152805718958549843223253008258797367047634081501704374279721566817439830321934066716389958117684265757560443064590327128743506378855773810317831491026984630681674250349091702014212543887531767249871045776724152951149011077041256707472355483811342577060011996176006023067194501117836334202842459163311758124011425589832246784159112172210423463442009171254421461108345873468387102116475966568827916888613202953769503942567870980800373944089273648969809952317228917082109124137564335912007920208351452827578747215243374028261548038480313507799765567862487597354571730808402481324762099012578213315331437579603902399349523671110328427337334566646879945629933074730306951666470041590583203561648118925460617210954401257019220100447220591555440633006763164252964990927167150552270390251144084429065882973588039121185300090539113637648560265219315727480200793983787154786743897163468113315100282896347668349852242871434978263961039569640559584356703707554461317814982502851392001146216659605049629123199703324926365768204825225856135906807897672468662958237812814504905040786299625016718566468491439464308519264691231755519970084309407695879794553391472593856570055620765527240560224147289638981811593186750305032367170411123183390531183866598502829929841195767530821600134110971785849326472035892476971757166369271753087222499680958642145363260385116207200215761742588374125074191682409800525056130041323383001944977649971530935662516976312548896723131127474080259139658664349698207085248436443798730285865821984690888442137590704747238587799204940666498318346996692321497576072269598768311673607411337327211713508105512457901353823711468152270388254504062967550479958668396941552381722729932122537162887372451746584671331549519197471911530480653273868952251114281491620784367573455682760715802212547647556020099705959448148399668229408237442989557279679459138750736500485129276676500770571994671703762435799739485049491390430620328270734304527802961104592449665720433692941114428269424795603133507726425377274770558230111900010845504781071165614057934751881620831832828521722037946820457489184636760241317231543338016341200667989688883194046120020226761633895579761999911405697686219350410300709841794882390152503658187057254267468952794018836209898327719457179897015606013524578003135196904360968261137033114049771778901595244038187061678371608074105001198311166617569555037675190725998527918680247639042281234466475532367392161174527353592777938917399180550541422281817270016524898358843474589091428806629150689284807648216770604352688228240877450395339408614918460263470127944825160269845959078301758110050768397962909558466202443879496940137745556107818379159291960531760649835226177339921092059949738278978897970540573046455945194238726600868395271348753885898068020202224334040358199017555992295631660268948713999814177962704650020727311321988035529653704069120216401407996569874027982212541480619435751749802686587927684105634433577931718882453112861118623501897542218740703155962767111222722098018639745227721961496577762224827847398508129814661338506008389706456394669630032424195625970863218433040793832843505045530119007014689433735356145597219321040775364631984681279426050773329969680457268676392731496597796535754307794734081524927077763389277845088084486769533687356319774656093380276675095322107515135082085920180229967179031255314119961364027701736710714739273153514823594627125939421399920158758942643118617538330225854518899801224430306392489332278496297091204693661453475426406969152691079230107154501044448291977417709132261723832282856844791431844300142642100002799770545324729929150864175713640342950455783200574244446685030620950997715331165488559320151147767425998336277337974301974016664073080758563477919409045490284640603933261896639082678731479863824986282730078857258749907788304468852405643476645822583924004944175323913417594273981411088713670409736969431540772574168985816704423581134537747016436203069688988173802458098589985336469693821007849530092750179532944937382744733804662743977028817591569573321861720123707248840046196693817620710752223272940785833772105834164007103793999483668377667921921622035747514018388722284821642346816243263353214040663891876952094972157937866520541967415021285921903311847578164284477655012298513614072990982239617796309514833423839834967493641240355016540223477717976888565419571434097399130879985837688724904899554308752416328894806600735868908161863389175606294604628649043316084867657322040328610486733081356987639857619436907793604209726463793276363483808185538279526661295705032890951429998010147116244942641534517269002928800713560952476112442734013265880890588045125219676170518958772614104922571728841936038620157790467335726159682605254525729914445193650094871748619354822122085085948511666098366072619348693038130924472629965081724540206408856234903904693825673560211334924103471373433076398141882966544727341486430373033603751373456583411073014709120367573649465332513352530198657836839334828829608044094100535327508662537100821481396850179064726969100326874244288595521739748964589728065664879044936196808049799458378475236538598870440581848616955037757308385326542423847658554736640029681914909023942733394322164174164382324666094406946914773326382704226085773486520013312830320851132193661614930499910794896343280050289444673262405566862669691027768778979825628242873043337554816014586444401652636493570745763837367533532183612316350628477707890590203635295378322298431862581242443074044818539833725433540110587247908555083765475581774558413060581290304021272086873144777964627779141152576740004215740014884939547170175716345600781406652006904570379788544767429526408407283619680314055471698567875714439071118524262103648723250759971648824460259981635647245407413686493083845627928171291397705991803617311200661149375613909303805419700739505954285852251219589686642243916949160419073366966224018715189054949407278000794809645661487251482625095307118710766710467731616049824827075826673644574335247404472472504365515015396414453896588777220736557761959063992740520764920833382376238882694010394089406285977756259391374894331636222700534612258733136327926559673077467898831912629897286696421283891408273577593276674538953485842757268421156140734287459126369764811102780882170355432899907252556751973168032747044971168891854261174797017061673367520924477403607872766574205404134427375764725707454027492567389202440635682005405451890853366492458589986786538705416246078530932879547393453778734658511736254681440101792096312384721070617197876966965066495677178717573633209302353780064486817685344074062355302702927823611137021827999756333929588312374427992984189356397983350618495668480881640412416261343786128847487232165807818992750030184386120226765927311006932409056194062671048022506466761858995100745096690440665225658316695859051519729888475339513648009059027158548911919237890599224431697540226482110610375642863794980073832213921540803292846150461587061552694166267760466892387049327571573406506900357980116405230067553539163581388121662133342172055107374062239340287351705232553571121482604745912574634335660695948506117233227137678862179266413762833182247808731107612128636637342927869078315073212446440927901722009805240727833736371974966497577125214656051498271779570785259878773968398347554576683127934717345159538728841134080452770508030118127259548638813296835613099259036860046067550602473709439508048203744118958008549059019218186715132455260827774655597656959828525722722460101503831741890991742490637367663448988348949210292802060990726760630657890821556025474585209693225924343549171540084682902018231260082692249952903515732021950339355054392262437556765716077553157688899823111209388546453419084682122139094015734539095048775794209497329149663710642556267411686682525422661971775501491223042162720743990287299759375713813057692210298041236809015881574073122565564034897381866327699290928756742250460340051423534632460935964323499192556289425151815543971857770972555901306989677725628929389758064965607669647115969265736844951400749850977678652365440813414348758636412806098515263130877553839607603680003699720234081230077951192297098406654321624832702172135814212943210009214989362769368730564418499092729687606635533938534593526617285329494830362063528833190452426922212450423612053788079173649350581742133208488009166167765132293572066652578579907045494706542664682641673005206766113502141006041219520635665859398108584313729736170498562076690906262734893960605041807600848443729417828494624238681208145022045805180125704624550827679871150395697187773383178354748109519367806524031642849513440032240520765912051716988532473508842385045390861491884749168353484160756870452960660788274793824787875122777628195447796751722723693179358272015392217458865975881578255866730440742960293849400839966351781931513624460601321795612929659108320142465636431303061804239064380487979141738544985754537985985287213622907977834640882900764806911726947281470917927055821380625873554001548810723328636520613697914352335113359349046594480111823376806509175307344237421212502797334695436110274777312553879149611714827509305501963435414827686593054808004117352199496584741691026293228554736731139029688753055735097955589657594866083705718963599926917668560424014014245966438122730210079434738332237403588685527447831872866930750180845899992785361248194735721958660212445657831663996930066595731537423657012272738909534790404029920596962888678960832815004230629998805817611558702495065099758466297813858134062907693737678782810342531426193621384308625300771748972231297897734410958547308400548956420933237436539711224712190543597323410510960306887385983746045340068295926533037272261828400816942552909284589665211051654191304289961996419264703279915685746733021481654399982131781754758474534621871833474993216082104362870884946436799709623632428026028368103333916973980276072274607793790045727644145827860172839179624577125939133982814977092399347313025818727107254074317792041646846143142252244002718605865418749903146967154008329464586000090185068228245362235140303380542982348379160031538027005467773717139518084876943130621196529482804587923145117690169593163452648144338995555554804927116769612381146316937727250334243819526793613278014876391409989085878722643345430732367274435298650571543940896670852432251484266248140105082393405088018554289066627597742205480881159607799308393598842251644730654692880876832204394258510022982736811659895330104297099531992766693723736527507584713996907790744832549162966462913285112035148908083617931168762112293863585642667169087719146859164778626160717245890362692514046370137355255820389004380313437721702644460913702313096630132265818848662211409589902733961097221673156293979323901210288394857674772343411396288231070540571761786732009544111942074370835470272459126954822154456475731774766689789130861945571385813395432391199773774018718012711663954971607464032570584177529500399867512050781355624206892562116565494272742388772711249733821632213262289832232400015994303230296511877204372657009023609579536119030098562349163624285648144500696720116708224363696667459827238883298365819004944279484288258005745210143489407443862973018752450064979789202880306954440881974356354104676053550821304002410433435282001852955465589474713529898839803796723772731583701608398717189376642924557710956550746978947769969254551828049103278180534852047869574645368897422249223406469138477504769752428261735623807976461982547655546789296776616521302430394838043208894828658939578320627877682229224710287556911596765304974626487678035947910111160873529457114614302411529589586320313147436468201129105684168219620952493210239232187514396667217171787753322221781923477488684672322005296038648676601369482137800986762780993138418770716343561923615021453746217980041042364507848031789611214093310084142326119194574039195496017002872703809767829654132192736014386865961194418131878500439027452892927970403342287498656956809334548324818018802745698371476937315301529264594767878927264684501117606148232544656067725976281001016411911623442571469837094198364381270882977107972524508283667110054091287101915271376407313920441035408005733430277551393122216881854342766853888851259652218357170446755983247872365048619437113376785857685685353333192420294191787000744345052406341410517885103736770999432027258524727161202626970543763879895778814574326915525561166073022170437405013552274306254201680618216330543256923212962799840296833156593865837061258955947361981697455369345757674726772225979898065285214314379745164298196462034208064909946229505359157906474172578600551240778507573286431655408877492055747272968449275123389980182289934662977980125437629548352044930110315314316076185891187408434966669827404585228802928555169683849766711164753180420204388145319011578245674077878603484207832047980215896577267508955388994998281261544139040434018648674308397177857222360104214949329029886958605252434596449983136640594002288753062506862015634079392875686511138296184600804632306446532045060562336654286488088364468156895428200299305810358869828128323910461675807421611094201628568066413635782249875225332481751165565752228120456516572689795967799229633166917144448601682484396088389876140765303630617146568023210754443046163293932436199716344829432150182818158610478340502073302663875792720934676442838794019444739139234554526101002953236818725181026731869963972155374793826184729585100064460985473361329079420280241910393696901749938178986396442810939878945587987817651175068942645006238500463379269207040300867453078320654719950318403865127845401792986831635267052126827111078801125777660635581814574151739936260110462684061437713306997347197182448742391473355489505182516628718488823989899784481749633766632537588173134955687464121808846190133851689697595365935735728404898173725025462938265489332220703436242812069604697952789037460078715610893912182961107108289186510995052596762028700187522820191167227788691898675912504488586686965777984463032035584950561876633925674281680965618765463536738543323524061145164637033591063142543113388101373777626187348330779986514727986763263048814231328541749814659858050606656783448820773230240420901862008501135930337314534916956638184016645004380475179697565233217717131177109268771698978102434732120233811482499729769320868230056287962863169250321648517595704572663255187078228675562501466844346078383318488010624101765234968190172389259250131859213957577602780256552425784587688084889440263953773761529620258660758683193846254479263761938683170457610374027869549901241435643219627243662977075939801032362973157089075637559946989177367745531253497102706185460522899208780250152194534387998070255366420811213649756461477422368269159118657282813343133640845268654711536106635857294494518612528538700269762631420706033103098177998813305177486198641404126949350725459081576396465891962175961338893726481237924230835774086274122170261049740695670577878763288693277186271990881171107814710066543621032009000184761175054832390908899593806771766787703242671252579083175461684211649089294700953964992741042856902858110611534560355723196965676509657903605264584215500895538767704602162806978971258362393735029261152379177298409118678548860913669873542303681281808990885427021455556076097462199167396614791239716159009253844994091425135753523918187059574966876988578902046808693784091979595504096542477936439196568461589247748285419328246074901600687976071153954921771751247444787414753698301914512446580710076309628783035591152596149573438519171295282334531133746295425442916006669546535679587706424340556778884600453145540191048894877710274571051731033595350680785609116605844022443374759131071498083949580544974452844922411460211834002238076830004531634011137944115840367477690061043912676787828728447224479092291252711454521066979923964191360385869322050936672609482635725241065232493179953608920118090178226388101253713529765061230280214793367556056301955372359617354898142535460194241770686052773570601857902928757712669221537254820423232318548554858516250210910507582249953419621074561269509480354489622876510163380595603036503772538209027288866738931397505740699292728702092215351264166432509544414319418755881265651648136535005484060639194648975186636808300092798241618674493044631062389494146365168524571600082664086263530375125454622366507597301637670767634668093254719849974454207006502319088770778351233056784782950150209785997972798452436890330278366171029668028297754711631609788491102244934296521931403469961016472754077313157383544243460176509069346148879896004088414273165007694053320950999915693739895394699672612392500175939699495030839540254493818957373856902684173490502835028903668123949804164221749183449051943928872479338914837715375689606046165403273550482338759291012516343982723927402017536024467017140141445446264953031852350738802799293241816410815544100430224601627236406403479262283989239159303112764531154304591597006335916323624935271238014082439275949692367840824829007002182981815767388386358395277478203135675561708984154299948580780681437903135458959970646073095845655548977407272408493993801930687666334284987006188362692577539145738280038618962234538472531732470578289366545383506602467689742567414781505857225388107956429752948269234248964840142095163360841993047213652388247829901556544059380072433543725582354981735947075660384196052025614119215881640676660467524037438515700606990977272208222322080291081450267235302508582102901049665474908476068282617509919150188198657596654054703699373159278470283900387608714924163087279442809487284230838260114641284233044832518007120567381649456552889903874200355807092092831073565904570144330328844505191933843310555155036429021287540266088529778080199706101682360203816525510610008706484473547735052922332976412835370261283066650003194462059318356063051339004882672060389816098213111402356985480593271517865660417611375683249475103978963643611803635762347956321087940577517633553831223160742338525538514370158191207627111985718656070328314036611116263040661001900416042520429953312484582610360624164373455063563992217419686076380698876221612130528987050005195275015784259341969909398646536738889439880484601498924718618589059141819653143815694952822708296332239721725453064570728094913329018474035753463900987982847279304770528200132086294473492512685250880138929937852168782782294586645859346631004645296771599082852828924787768917816094492250237327905511052319807644786036461904646490823773690138636878599753594346450657986212427463728601578422475008236429491175632014330679989971759668832566181966394102717884562343783398075076794669328379957516893287354256367379515250892050674951879946993341885133356106894333888316644248778041901637717908685659540374284238919152408298105497892518786466201277968985349994627640738145390908510917956816358931544281603120849053031232810942358879261598477063549068961749935270608554968784913905007160806857004024330661090845750824489567366795685248408241412401183771023991444098170973526949044776242660800351041124794422253756190535362615432713390247590772476887575389151986129042262706014760439431837572069922859810180592642448682893678184077198126908612976536744898006032383760851660667828466915863969828771311001106011104280174001789611476474931196283436322714332947625406880953883028649754947813400091315278700801676875713290108116416106424768878605713787753416936307328216334315826902962525695136558772073289117815697731277744887569891475926500201541161655681969741862540254298167256703866303141965224525048259898930815185059534481817973127017663101019527197639044642229901065962726826023758084047379233717092348054185332394364125049250337048134623741236231272784480638975456477480916930133969429633006531876235227830342900096610544105314169555541888712896691114085763092585903709525758783359217852671942302463438863790474448133000908267509659507951914681263880067332038636713420527681058349397625168971959383015250931781151507291060113117333805086725061694658104839151780771613621680858558498478235458221961721857391568303072624846033420776614924558501293371550144517253744699728510175887922242658276079440110247679232042190437746286530439881850318429951549604702580941181877028736080411014169413616121631516415498090750060353850354231977915484468734381757785631380259726525824643039443565657043001000020805460657494269155404772243629552092950372018422683111007421314889007238250768599885166821298581308105607499643609648382413748421986751524319174384856733521569569471984911301520569511257089117224621492211715644821681264844299482275752733314110809565487591457323936223049941567711099653412435224348937643012261793329132083723505793630950508227087133192239304883810971988762974256732581680139134060320281059807447876955649857234683060974003345227481743187219837108731472448859671118245884124971169168491348562465269006046665844550373947310485947095811613869085358585138776413516668369146425557716422111530179140030561474641344004695803520848512691361461546079673780365286747079183775339353811847485871533256851833980462673255632405904083712230190762124507278245231796664675797269724401761017653822214246802256725636907246449983207051202765136533549675868309669290854779878248638380278983868278082865100889229161280950382543277627366765522196116930368018967475299512101606278453940165366558762589382774275734036253382874329306285290404520669934875788921352256738819847966116169560240242622082548159391872945998956515399890583686188527239557682413526268188655992695188366677976363329242905390735343668342501553802355637048990758415483490166773876821948927790583167469627042575964097332898619310122023800635785662306096446275227805399204218824422840376823701026439784100782574310851348430920125164518985206530320794911298601114825126933417491114000970178223320606516038674963747404678476198718629233091023762895081422545872027723454982944478032355709648634767963290349230548937507121553453429993665776055096794209824077678964000663426951315855366691905511695005229495224704198419559547500620508585280312270463960006086892658718788304886078171934060587366209815688359264273309575450023390112757171024934111218109451701574325185604535729017617108960872608111681298252161043033673502379509437642037244850415823644771680741184388305936404971457368835019680001270762896703799906662304706874195637057451600898842355213399651078374196373321762479526883447282959207304879941882827752531787668340467786149119992337009421718211746536182748954809505187277796122807421173209802011672300022633772605745658809689672448271925107389968800918277859867013963010266184995864673230804791255315237398959294542466915760375022550732706460879942668885639835215056695080092589900709118508104559196384483071311391451886934940073619547111216467236385269777396059151213111986229919418120790695898620626114840118130699242702657276038647125182137883447145191416287300399358370691547754462074096946078044624732937165239485724788309738517647634854515341040396065653374086670420115745008012120704729913651674549644139106789780053878918367629431969188597954746437938096973404809893966809317971456406396061722409258366925245233057964465419218964285805330385248212410600786307937462070720714558533993290007109003604468534038027182123425526581040091444407911736554678044118015278222354970443676896760915427787321432740727070209546278534476773215036905903251188914268290389991815156375027186659967710054987343184410082342192896457228888640525956794580077196336515707968540038698234841720528381444397462188813173894895216054877716240185489283535879302997793000169149896691990644890707758211035687280876720911480510348885227573667104973191528804778674496335077330339387040320129579697015822647312437752067436502627832904124147403811809376120367213186081129798307987222245360760862003455274669534689293645727382538020742757045866942737692155393170898568830044429152939429888996132237784581068092905958340829861092742279067036671583601023023467693548438206513474458741313666320296515514297387281376040028110358190098343261979364974726800463369174558454897274224131989225636667180904061380873066628565288398380090858819995378030664538822952298393462094910416879490033029191575161371126875842440201149216474036301995690873726721571281847620682781362296343395220160324483989893475596632643900768886690405504276602975770883378116890497347161257456763409285093234911812190365960375394490313179684936150507900428254446635786974973653402250737344399715439166032048992378938441970923931928911006833967931567345536070410366502129385770598780017675628362920407617455518519606884891011356423062808708310742979457307791771755211500783926945226503909755264154167905930842184178976115193237130666577340778446302403805534126889729780709782780750539218242086026745405515731446601941770530992884797332694548361006532315772173374790525251205807138114474196001868336819816438549893551331311512576907502595149546409413302319610121361667488767656851144635393709088965892431610666404298777767301861629506230576417146775004452696831394093633813066342489799064472404348096203842340576225609861638888294903899307450991102600493193869331131878864683438246802581631821824765993460019704920282542847462605920279987066798317751668209064304473688302497234623077353016669881446205684639706255694191179899240388251400934942174989735819727748165864773762314457203140382066680833454695440007344315429580838741772034240521603380746008085854528823940629913524238765045963494052301044093974224571286562239960389008010634111013508075961249383551307218625749846744523605996051476294475935433556264556105998549324214328038474967590168393143901628708260677004619690607848076975838076967657252349542203993875112661111362637059911940656761753005842676779066944982659963254602731049120248092341841704396806591920844824825939798033069826798866387515421244648300700067053165165890476287873959761001344039659170052825144756450243122407468678877125378522081374005094956971281275882721333672037443256107021411532524271385215617259955772183385419408749462423426309030935208894140098165634090229222124016938074273608856688159868863081523473417276070248822483523340882118391227837071651093453060878078225887876415833190668084573293185538966764509899820205165028245527228388323090772840941092100451897318382456251348906577816913419809523128756367712757911863865667347631997896142107482161790719880439315985468358425171285741725462506919357536930862015424700046812410366450362718620610234240338344296446112828026833139789228611818213301558997752306626192840138944236806046438907427875890678355708232684626864780652607362206523597245217779918642541607473284675288324532341055909902210126386114620117510763635523139053591623371961825680033553733029336274755532131520030801415673453018343151436190208431126191127685761606134677070153203355771443473568100522458058757073494187531993295232425435228795313376815540611609466253441553200325252133862597982862233964759044022521612093585037736158666333148590391248835482756390331032121207222137269892268180737810976173642958711946225687418807183068033228918501948381972387762761940965534440317602451144484055006298231872215461936030603845728012862027757059898529078989627902549361585231756759717615125227977532531754041245569564547874520011844637276600852086162526818720244323705065019468238737444334915506853907886412489491726752365362458116448763963254560267207818211776533523125324638276528427711535430771116670461202607401783178715672913180314342272440024319099629083523027834814933556537571269832269625114563113292736216840260516968599768151400453769056210514868931280477510699160619873419714890937814974121408237498314749950486052664938052873643723563018798102433052040565866915946803313255189833470704257883246082356004230746505687267763542701471372963065062551723951312436130405252527437777885267139056629793054805002248591642737920669619467738387831975082721393712856258453850521708342593523535528508781935061098788640306281376987656280552105646952986002006029964299444428907850937870373162363675178669868504532644765078317636049037113788927538238089952743753575220310276932897220187806710205055688722509115617708008964177059451595083190819613871930741908389666589850186683203479366546906026965511204537625277401241627317759071516247491684953454041342003049138727249025768969189699189537285062444413890708957329472902942169832545597219509567827940414028720823905514191745067209846792913373053405463968742517429132820688157925624892224265464443178924353099061958651347919675469598416276096454880368894937453858502083343493535510065530035872719083358366314909488755609437223125562501637431912127663982069354889107180235362770477250792556623838924304014371014599351683789573607197530707191417602636600885755234185403222204842474511171335284080660481572466030125289302608895183881906682779989837834032340133419587703423224599251599069246002798386953562960326436828460739014999478028670555470795467838826932212664132190443693995365584839660194649385151527160535143061386305753849676626325057218863685402979431096340278619693322309325724836518388484138587507443947821070852618609756763656044982758944823054135947152619739822686396895099888242736226762636953949224092079162190832420547909214747360231324683563372289378168769301414499909928978893598901516437014905694448859196820896463567742096315485821272735882042717780064413302709663021063675806876908927294499014367342744999764992874332906586679342668533797440853409657503782838778228516392442478711596044610468704722507312848714559549979364349636482928199315174685561527230015758296179439243998999424816884529826961913208863948677067247489283085499731578426255775377617910293372004183628293046910814904540177376975806823161464429873966880329656587939979589867652146103734427393201305753057082414477755635354560497474845727136067267330821696624462679494720185407935653992831342521978150102058991144009379929273660612895528977732985237404148826117048796447043647076531096426058553338758410087507113447555960570727975280427992237467571061948311450189231888498793984701963574135527544263013553235626324524706638936497353122384467580454265971532175278763378882956250309891119067747837102098677943259561605360158022470895304761585285043716126538597758241704333938943626480914489966416057854739788907200633617007714418241403195162287987917986056403140408035537865977401269137968623093881435742609220311374949631539268550695028837821394035719290986038102288476622864598568726264864814349949508929624623152813699219085396690234896479888869312875863059832227170490695920972435646014390507141553713816969463107279424566960752843501532219241270203076934018001188901236588507762416578114322832375807486364030208143400363844828737315189170698347734827397556263842104784999708456951353188044779127643947045694231924849988231895430749801177485719499531703781616415602695103202617761448725639554499217765464038352106103507743484988309629413738095253144421686499683710280137639037576548176750543926302034452156936615940469762123035875511762841453458186576904795579655222962097363724790789261214295628477902450977441176630289903242116458068830882153696160280110944313826814701556006555428169157249132118523065539408059070443418927810864232452970310719042310543443147858894644747818720588919466181598160801647502748184762012179232903816990736002274014820511979207525745313058082702844854205902969453994046910471940327715021955112930830834882990176098553354895130132695155705352360655807856006224532783370349093505982306256365991615647905623414092292115529204945038103643904083243252078798387443675702970926307574833153624783371639890214051862377374523849039715884506846990295151607714649200126814204536573760601408526451136618637432866838545870085646314806610342222329701691178234726479129516389296640881140127188293626996788498115813697633604135764007558390631148737441681615922907956160076991083132874358924344128044357504822716094906372734035780865432723701552899422483263778622870811663610314756185202237774198201088273834125034132837645592650395446503856031358497711081898226046706525594479215927028521620701312541389417744306685250038477027262653374565213235570809183619320566119436774304718592962450338958386619907467463673515015930885234142001331842688228284943168495358349921971795469844612040389573332527703506507801584529887741974052697659167211403784293988226459647283555238809467607340916810127444017412037705089616148241225115066066760905475337514686444055192765523932626566197146982424472570444636190201465676650458650480401832457538248368270259341200517167778262540623431523275530844507612814923373079982374869453541466519197688650095167569440934336471612053654303097867922414729505884882428184829924244070072257162847977702355028817321546274921724456853562904189398059741104519124468317221480131350121251925278034561845257718924760133382556156941510534866913713786121191789359979208867649065591571418072115105314162768611314880931549025837111674999795496074459804183042081152554967751275949724221006671334040615390756778258649064039801914031006339439702394163048557053455948673937397171103786977428629481453928892908225633409804769012419879363648995825521451061585642520944435778476427264399441184016581815239658634675110639472500330591396015822434115069726749383957200221719304901989593950648834352372457112199965824460463977091324365004224294718803511607280033453865333268387588913934624516993843236864476009203959718470252166800927693818037557887020607083543822895233263703465085741921793924625384476068132583034214723889932272946039693933635615584309700693188115726749752143668818818185284851238135000926710422105410446571004331124530591915741322238592607466260469721638379141681631516676896354482008032479242246610234036535558085833814436398426499382738457970318153535696194312741550907872290960149844497829013572666905813148746299285726585879905120402007594963837844892984434179778572560889596738150736818858239760194764547187163968404949826756035216583658713090543604171849322287476575888417543153791444755420191824365769664001147944596732690260035488095521522190865366334739331620518248544395998434581840468470203162020376867805924483313333325876073192203622972325662613993307130881908063604250756688973395270553886654375801702047902046345333203125813476138280406658192911095420048159171801387310529746019822303629338327199867763244040475494840787422868153040870860127776386813506568056655013810768095028915542757746279132464309420935275924689991044399651283702466940154171096383766388270920410551113588898448359091431835106780478328262719858314968497587032857084274072540737259926067425035700729658242551947511741811972477744263099334561469565487789053928870980139070369360560750158198851806625030112809598956885064863341637560954757280201797302578332143645149157357775645976154025803884908539051479897518048142902895647849709648613785183377347796473010188238278651425365216010727418570177964569196787436504283950519363713463105576240544381948707592208812409695903936078476715062911194095141805315204036868777150664778195464951826728679865070003313512668859372959531000827324916168876596862539136906421744153068092910414507732295343305003891333039101642794247101244895186371668518377116214168460276432738854980940608574275637268977741946383060740132030650254556408877955774188375807802050313162020837418354838101367920836311736736713509186622793643911675843498339840592695412816033297861173409704918890820687284860255280705459075329900081113739747699712104699973494692836170003676194522873250324110746764838723707342658153731636603488139006577331803062920894741373748336289442840192672455182379065781110784675361546432896295080641346686160279140439870084385523767884507062466768899442977142045351871924629408732306351500166614105840310644910433768616776274115182626521934346184627275467805712830423180207142160361001287975112997747088226474744657786322206740747101098707130554257769936260232676989227871469839699903082747273079807660607317632909903332300929333550651744856018573904163483392109539464258207015649326225929208787302685109728004272136262495951470265172543290377014829108373189083210784345559510919902207297206238173891630068759216923536361646164498991934131950125442471875519965591293081770791054357199906305990195846539400526392448188875011406753414872948276914891257125483874070051628092199136993494666372837494665766194317331262114067211304950299761425867873873379746477080371885972125065567934405421800593189435812213858746676483887440880107317424805619359268928793548117561270050968025035499922815806184952108011862835537675158286356457236694550411314634284653737488689920780243692381193694449947448531318528276746471917157434688957631203337041431793432456705243149524763317243482092687185764364736335865814906708933468866916748424285593143365113686516132783070263051142780789706449929597837254782580302989059913927803832117195584791402123702281034329583619646324410808974312817344834919596477964794961906639328410660789574985571724304565013400916241109441085939921728309614424459997361384927537794742363439074006550685568306661052722479887450561204742685984950153327369993731032115495283048293487391611851039434260022802431948639351376139160578544366232484010836263155553267890621856788868478667835896514657601414306709711497100756699160283195689516569295101802612675466299426457985785231849507484749041020144680549746832907657946725394437731628967562742848038803296818303835995644955380612758821008971920901677999077064553527219760141142561708831405920258162367654081395404057844475848372931295514304647888671749993077044483233201379164676844690977339996408489672110873752767521963354947864136288858899808039752521392846242308590383325923419392328255380439341197853918342861922940473110115383227757632746085068193244733886409238922138454652450746914054471986751985312347708891562001856995659159047138629648219075721894648764335781710531049350331368745970522929652605652276358475973179413727653384128833168400854480610819582813623210565828144601353808495231584670036811577035814979375469067469495125417306921635772161694993646048967175164016692851564380108327587474879223642110302110529972428345129526654332764602429284797175428349832299399697031691758735265326076900561098538213700792359953964478018127794426098574294503467601063996881328207021585520988358349755100432037169597169424100568230109137279051903795753797520460639712941299402923784833876435872831594280148897630311203612334169756930720003847938438095390991507387381441469741125421487832637691559733502453244017856443119470580425428372579914188396956138888866051528186603940835760546122089811170150720928895231791404314386039872261520039916609346909552500088775009028909181336685136932456270099375092297583639809850358733812801938799910121853111721934934576151519935955656939947582154973007894080386139158934292717940557949347516069373730935741681018622323248806249467158049440903618121120371345686015691060631789901277138603931157322066638346030486916890946941108832826603995957085272754468023716235317774517036809757797011150689505485833366434229797380508627929106577693765300728197089375480213247215750388471324362833027613662593920757591728215922922508604212958812072475954712475293270212564010998953547095606409732433283414931602605284154327437861082281794666974215942054360098170405745639728337489003208345748143283708924104466610312516391853991670599273881160332192703044996258220144233816823748086042954630266948777927838869307155957289021891451557589954760421543950504222405994773397110181457265024181373701671440092768729526969767799145584006728170613439776657204470984840000041598688134139683003397435431830935186964571129433538752769722346254156853780444639230690944051222500626505153114774395051175127785536233191207412265946403524817111166217278845317710883489354864328141988452511187943273806428947314801661951585170298206831350473602482698209474447891071843952417424137577369234978105156118884752216693896646456058392955926202538250577569581902215457512818446273477119358277925626109348626814336807991257937764830772484694681880703344712014655156091688529544976582585262757946182468444449979403796889386549331385749217659586681132392284740309101951917210102179712351735232897631267162142226809183208946897631683730490611484745695057074236165582005122546015461211587892819495826278902493603782217751121632273374105061388861655701857208194249560979224395929463610576467500401141572843556526647039252698543619452032578174070384641872709525874804585596708136201647187026274762826419171947764207388233628073805277634547890004188101898379557225746741498063270546092973766858846677658140409310269792812409721676573340679231747032710785702015106921043537018726116576007976920290942030582456391192679480176885330661472885490439017214243455324792740512828461232419196670117264636578368933222256414930404037392776067260080058810228815250470732060974109218596973672368721028047418623000827835401242968682269027600916623632624956660086851208775760457099609335451929746338217378969512018880227956623772156326343339427218975132194734919941374495923430652278613804280247250442374247852476572373297490989875811909686180987277342622221364772020711229346059260216990316665120765968793978106378081900143811408356215581482057695726917727829867739179051550163346841590895921369335147336141075427061618866822150693206417042515959538044889511241151767421025468496762997072692468488154951193618131302594255826288373468213002765177878642167840999402200144364211034675055075894997194840060967644982811778836251561118199609499210765890070557963169082830393310461252984879402260378890190367250791188893619498559943125154400909063380496990623184288287542160982368033846037409499978478213051064352685464597520137449670602300784227643180373843653850399500674395697945621925740374016068691450012881793745315778684004515762202874777143498595291752126982174701984704396029897219801071802136819092508842738270662384490206045813463222692451331779729835831733398785301320549689224487380686982061126660633300947561097474852744208379762755411012869819923805835469599940905290302858241365354934493970624204131219194424717047289646953511896359251233481626598557268634443904750486215082180293939369121706754217091922340175116545758943935087471531036341282654035058425718608994077738461076008764433215652651410701229785146916812974290647133155512336601311068365462245926681306572550881263119269522403029295164690054224051886978604529210401852068085641737597903337512287372676887313920877067088080629252175533733084402601428805131255552862971918224952215635787331776866012478141351284519686636089834900108160861108574600106622761468146102915960025836388913806504797655272258295741031281391376476911964682140350969270971649176448294841347058938045131559090874478752469964818864082993148709921983811161110788984371025709695173688954198869904353051683113949295158345300022991805681412097847915919488881902607451941105926966145404850838224517749795251222812177889894918227572547672851965202404706187120664263028223643024457281137816825712554703975924562780947983312470667916508540701055877711660065531599859101230185939057416882107217096654721100783851157001864795515803986653109097182175063544209901178892992084942435267927545285003185210384391867626966919390185805692905536413521557915195312192826036594291925742361441587013823717542874015043608770354401254848484435055559136280479545253667946542374419030775925015648137540674093818709431557852416856635658244085796601006221499781452129444556095814217174288808436965131028295967160854108889051706068031659370594635986170201302405830025405315900121024453033831229191708713987370516534372966156616451949260915926678933154606244814333182922273411998238093260870132407852215347863479244901525296915666308673579256944004201409247310366959075836453936020684875556902787352942004573181906994690295431834209184535107122579651878275141837927382494456445751090828496960951439485329667720449392731156181199359700629756297230685872742343117656209263709486449891113885610128389995148834581816698777376212678945849424921651716987889308613630846168983907569295955045273969754768440578883820836863158148546131261677171861800334616751651587913829494862821719169410701053785124833750484439158302243786001820531583871402237301607132038521704934110494463713243561638001958531145164263395909728736824706465888800680318251854048677082666288520708431418229010261421333019180987363592597114794986234675734522703357855762142184344494353132522817986231253375716146224920576766711036746011474670751667069969912133088731992021715819925049771794974150741069911670840514400601679753625529647322497950269872245838398171360902104187005505812193320013115070083538068333834456205141322843133028138935873354398063286617482828099721817936641669975260895815546226649813700798531051356182359014013144689382133121078167653094064128770524579963132690821542357269868564079769084426724080592113602607282010106207207636595931230908114341801827983339756235170082269145827760439141318722049863838411264999249158643966694535618941110515280718486607954692447123372202748716780223191247208922001274129529209860469617490931091212775604290086662926725701050158697166866149189368434750516266788471310312607650495136104302130655579919315199101274123994446863003921099438377780704695522941878203030032182740442366825621419369778770370660079625075710211318557149474168781026600395276758699113190851350551322309220713059220485047490725625779050758772552021610156446123980878303323343804130838418296668881485834348796543306714990820109910533392472458666529677959542866796126740893195300079828879436396152473154965819062655700680195629240967914319541094817730817980384088769977090914752169432963442599017697292988760990659951437917217544548631698937024220950432193932417921976182917606508452380239528594452861441027427821158276366648388279694026328664713546931278667102725855001973895530518289756786693035371072743790181296874097267542439060423111950514300895994221795921922425762915985253233517692600584096942483651126605901830651559811219872405031356286910277198320380161725454965057945797114335769057552508205012827481174610859574964180671268718269225418357613077887067041750285247766238787806296450036478588430926395808002377261147785390844123739777090987166563593838242538773424300532064264769490985660989055822030441414300059732218080582912124451305205422116661544259702302775529410746022129185188190362937836095302064165625644786015592442811239466838243953773690306005358218885409451103068409717998751701147588298002539490760676597610349451227257388179326106001263901521753107336892868217938376811116476394927062692195822054972757694443977388889723551956236438253945930508243512099112680394624684951320483399264743445576029088776197074849658149471403166040034155542953822401910190286478245019161261366579325056313462997476837656177522458600240512083193425576844219747140558634681627611157779197672984660575649949135541757787756732812842052547799615532900267618086458771575712933174391501767559983618683511913248172426453874842963539183223104445085258698711977987101571697397670813658409535665405373271145254166619333176038287339079836679062916741063964734387883010413216804579984925061592682828196482078652870225406292300012492348228232905463618264621193057524639910321193088728638312916964931729511832122563740601850224075337135653489313615510525201003149313975523420566338109804202144308717357506581348779781594176791297116525629248840294683675072030619453895408940276046374429430676866165301443928363630282209646114222514463232143148719118080567334211702525051850205084210797076202518557247747328327940924294169418275695967478907591233113652248765118129705820145734367699456161525381945618230968751718950477151603845488608600395854684619306132185256783165232986327526899781923155594087109052202051658003690931657936250743830860263331903794762642426948650896367249872773138881894366572414142398019874421309393488453850878875091363014147983061943824541858068108218108367909452721973728529460376713564937233593812571798777995550285264729586606983278465513674477799978475353837067102502923657418713198013534420661395718181456714905792124814601450959777638131283833760121359302482510421595142579948330967925216588629669232202919297753356133338059342074948694840085188019540319175641856125763563715616725392906700895871557537222839854009101568936673082046504114190973576824539428552381047395933361352461623108477332291117027791463617426289691858859020864336798896018072737430761325436295922332569816152564730957775872040030821878777515562296423329057470471672423937527598188018014779452515113671629031871361210277637868225123921673376048435527397524138478958549346079966254860998935723972431286109929229265573001752657134048882234023046150321386354161589087990362618244090067887626998250633034616370897471645436225784515987150117620897767016890221818269093559535707296701437340575635131975063228541028403434491240738006290610442199656415018859015577565432501355249156772491698247586695121911057939119401298531071935164019030554879169588667930254173378700850433096494254310157809984200246000680582124480009003076354376422147191667985403584383259277345143812827623663383226037316155467907178538547227304097780133873571622131508400883917893974161073287032539288238343566660944976278089060669034878721605363003667738901857893606006457876024290740025267417389559236018451007683390178258392764841847938463505641542247424063970751561785798535362019531104954385280408705384035927273443109218897443852179589604394297457147297421799325556415257852663220046548706693557946734131935161356729997328652266696422824971032653793422730286332925522593319407094341168797878051906487729980694607735584325566490015840211783561564184004285417801485399794810372320815389820497759565366861989043009873621820845734310439427294262010992097227863135736159421109497509041335228382091453147969177532668972677508165454830435366362847157560460820026547604106805191003040855274193607368544748244837484079968279581975643465150223463874689978575958638245882962917380194218776695880275430921870607105315253543951759072272017310220140289724076721369198502623254400647648451316472150088759746760596504062189362026653691997073963822563000140674484927780665803673761660074036185714756650006946465401266444966299353335051360044266157445437439861422556937640676813472744023174337894277813950904014853675213222935489988238480245356507891798717306786155330762963572402036077185259051612869564078149275124445333241707074223399717146382458247189717175890370115840885204991200890755372619146452845794114908875956278532817368689626355581118420261940017067782952984833560416631576981855924642567855742401584931666410198475961869776702160711072768784172689774646650611439998361895267539143760447957385286538118288591841573151208853304492616364729789271120077912278650473012706728591906426287043001263951537040620411232112231690003961007379262411450140147542363788501435258548845602161215527790852741634541102025598772332148548268004290084277881639352198068798843870549119149160168583278941232495362835059998217650610520634633331198397463229543026615792504880009732062865697612961124495729654394797102025627154813268793617629603927612379623821931595471531067504984741581223842902613230978543309261291433972861956637416530367497429991984538209103916942175836710010360697395089284612063276412204517559352946139944747765435581927726174236324524123247176702917774300081674394652450857640259576441504476829438360830542939784222270591409014950539969187762513511653682687173413039071327870894887747894914755413235314202927521199084576685807686675962361237865250896873332055433585685507577788965264662828775135332497603121012046384148569994366765585092808650006321729276652012766735376242403370954615230403776818608855773851600788286985094915956177683047066402191491723792031011389524452167920295768401045846617673329697219653826055048875108150776101103691763717966511245449109568501430044133671169928637976879553600306828560191232646331080710313689531506759354275145322227197082573425988499450363688213083955860538689708506262996415791872367036721636087237465726918219387050674702862775283774592304353727947464455990283374627340013958045114977644549623285712620199525189585012281431596374741403358638491697834751111028200351080000136421777871853213982054225785701110031159401301826893393714204483920157783530251150425872932158458641416586002855067932133185009622218703690801395141191985965323463349042400095838077032014615876423540839114782059561225010935201918984398136971063079167359895529338536741370747648606736257103667969388506434225272186591553800503930084766976992355633706026026320103691942842665120416727125660714003194019461729552990135446239328205243636747506611495473422176827193017435718631117691237536418179636231664971185383021733199302335193686009620845427603109930191085968869953099278264570297643868454205585451071407605594730101781565477814698685212249394180288210970306490641511188811380062939726421067014749390285209587626216123918499877857220134285066587899353778883014387484744703849765254172352791768887721848273174106932380313163082802385599379081287376696569940607146419670912588222150625241420417164649289037788985160308408168544920704813230957344599162315873106294919065651350848691340431693486053957389315491144946716995649390845931519963377120399970695664982614433528707453904979912332247471417667461934176289523105110144412006850460663071052693013391755335789145068271966880295125327160139742332495571956466734250499575658595625866761034250049568775384898941241611861774098820389164854963776859324836704157027933758129346801761586164233214504693463696808634341985394990484377903179033027296965656028550548681998356435675662158038887807599635018505703123640127163812140381783703597657892752105352995909824701381213630047410715427444404789367406650438587046054323170661553973880693472242452089624818677197081992116197946419061203399185492962047988229287418156428150221294042289249319595143965603486807151158508015006400372319663384553613937984826029707653587241594904954501400156842314514499879059468651409129585568195825629750513514253915641279820407645410998818019600334824172601765058294672576420496953957850064712288866275321731970686526827009989130057248761285071408795540803459576732495628880411526025767956797473512185344411434613814930029484952937293476160835399166780797338398109833699431238172042471577500063046319039453807715026064149969538357484952585541995207793354683695596956986540404884636899633654468267508426363903826566001031440704924343574940132497088240152739227104791939574108714618087693172251052475975710397104145579175081711071890578296413422535159911998564624759203229846292501760367551336212801785493933546425560665097390351914647957098670991233287273733048048579376797271525410208501348205073419926629509956959696246546194159918817349053777540036425089225818605073440294988143157155811324688149561453491495249540568890826190351663605394896929146198014775994821436772512640821665069911021595603523829479926034222799493184514280813603804981330340145830268404068466643604921261135251703774098833803645443016516392530973878736308573402692780847450985187814888858350661505805007409356636921168689820297083455935858861419445041740593399904060716095717585242867464736376742969622997729641652350151217085080476970086866777676768946565692997866640479610862537959380428787504194461531373231698638529252180037618005140793606071489153419527241706595472432882831906335020456533607393751119651211015696522425895120802357900258309723228239133539140904368058410940480381137523860701950608254442958815650803072367623316191387532256747445887277454008629392178162123124783328606991943467667830351868749843991581760943519948850003961761339215051445223655745756191927976839874705418777337930119700211302458054303453358368131396089783878684947801986272273622480758795559111748413394444401082789534754295384366868665956744896823399785389747130846590852861556132435874824154020995641489422502152256780980259072276519060126159447537528553419500281075907072104336586929052320501208128309144232323372892094718959858931399735981491399514853335277388390310835437922377283382318465510763124254977768586254346672876411575181657335321025057182173080591995238736212397144324964936482760120650734937692128472669175459103593155650267493524558930325651915646381335621366089545738855463433254459760610383524779195092826793919785611923433817019331468621499486037565267498793212898964779258945315792762515901848450695442306339466014533971977877775451121136175210768000222183527871053429805002749080512744093617268794086531460845128340571003061640701940405540357990804247903098096483088917994213378451138751288864292627363227828250584014049674783677687995002174977906967862349647887214436352539279629608743525871913304257109688004171589026822865972289533448504593118974231734884946317565354079155753409061548326175372142386644433494535355903977361569504300898997899345496152469172520895406867225097095028516583510937206645739857038746212030370864634673756866694839582583046451991701656686765665500356788110689152977289375775583042944459080864707193817566721299335714387942006245249790166195709114561132795764611339012544742086429735887462549084161769526260987041298283700801631513957960778354977647873386346304342426680062153307237720998783150789661849907840500855217452163962205590211373717162753023943588504039826446302394996480416714290146586153420641370799462960421483274067477296879265759595430625107363527430257706508618148342779274241075578304650877154191779848999901419215737152524985230853245523112570889984439667980292822845537729441243860060073583356352248376076652080149793077089770560788021197429350932186060857961129254180567425246180038549216185812168392184079763945310843628866206291506009921364120828376145964678529566009049124212243778662629785019183142846267241752520857206366030189685789783909843967651506036911709867306165483766054885301574209077046720989499811991641281491699612005270026396710461066456834057646020541454997755752235379004308626047347736260095097391593447765776401902511893725676036405613547505778033508372677295228095620852538671530664057655584691774066880737164843552314625483092559463088280923040851816070790216773684086514389851905014236257037070090148309273082343134049516533999649183927977488956361107827527818759319525887218926703524712009564946900731611038770476252762794118346829086438817500646330668674418325072036877070744508034972919946654929405493400240711480234056688793705912066240632704949631841436599425314467176778723179468159855050015306349014171203983708848027867695415936542871535152968524770600102712003856837427993513523131304581513117572164587375337226963921870416806326776961553611743277342149824967104110277045280874026949708306509821977089288805209990649562812302383859631979026546749084035281710065269705605441453276057439224777426171975475357021103396361458541658378758118510027344170113295267403602908375136688784884549304893815224543677044332065955355072077187825130277948740369825078710355062902821214032750172386310415398863563649975169475448735201143073466512465408087176068742681058528061476333019221665201036508017799552937283474455509849304427238462343033293515778229731911539111715587814528602163004915146622380738491685246559809894328671466180842403210702247901417560051101044402938547086938369309696518452378137768320191094685133565902195725617435294810386057320641406609223115592510096775826468209535471676074831324348358614291438520824319285204741962143202922625529049949759133969434089767928263167722550709733030865998660790606777814131846058842516666751037843529455605224410340603647430715989777499233065871735694608562615561969413632941210270812838672773149002428746550937006887979380500403921383502764276832517391198251593677078592040337253442070818912965528852948985426895330627565677982945889250486501395716869194551129471988791018401938685508348052779981945070109760714386629625989234613853434741931508162813575494347109812886655325578166132132463077201638671823817517063371380434580001883526804028153020461525080795706272868180991344261484025176371170810672362278367021947096710216532985411363128632004470296313824669732125958230637013793483059941677318959207055666034936917157107958843267313483000288092823073799525213527705354764877140162660467560720854999964136499097616576937135045007047709483565999017594603636355806098649800657162250137521556519623986612045572271615701753580000951864632969468124297484568565591024233910191519644078123445504276466501541578339550175330893756305359420641172772271136521428883482535065385457320846154704157046128184831101007648465913331329997299632949679831664759693461540345655653123789741491298548514432369629726528671512107399198135756966003154030840609992214162150597290611227795226165400098672528805207131662935756720648949599943329951799647725206400646096877741379321746635790782418057750884406157965584587943990749870100561400023018466787134748893173294556524845125702639556831077633052300271771301396597766048369275596088243639266943127198671468488012791697156751915278139215270605788035174780726625492186392476280980304948191079502639912270669778767055561381468313771991679708516124587974878704525826360396189882761657749555959190025606501810925597295497640728260677743134938262703390317220393641949204944593007090145576402301691239516213121099194575411451820315001763759153998943875973297801286104247317349374251731783606240766509429459579577598095467100730308231593372308683998595479845177392180280269809827002337147130389319247437094635952860054369688574947894842068399732437553304197621842613763709917085452256394436764815846463060185194103338296053438032989654771174988731744104297822220967258217227130520573279903254957478440409094223551266129969351344297371500055161549226971161586931432936947669549081470054686275912088112506652852742047072222898520674479273246228066895873319914982622009522197385994147604220451161327762052694124966336585827782297908138643459680251092483204038287793720965925007764810080587305615584783610222252992924412778035725162587919547494125818223499495990631848107390879870963183329180943868432431263178761215783259227277269571847517952749911159164037393217629992322452931570790121240428861646981865642116203586679610576553703667883508477874306238030381726345720787693950106638321655888672866832454588784848955203087801855468995009602468294205101190255221715308037723028454535460159805574564011211685825735379250720300903176122674527772272009852058730722223222187454059388881200739132773690914302125271341261174576272380624079285277409518764497455791537786908210285180164510437538967187153525709364124127556760298535020279055289365020244558402492080320545716541132447254451951470998718254496266822416478481161024544726615269954643003516514596184280151141759169846399380138181393181166583364139881682962204139553437375642239685209513577997408218416316272001359746362936741377828517732057979137537620636502378351329267335152792128481785615247458558583621698494417936468349019106433036814980115850939758608132537699415573445528311006992657039945919307877148244226865075806914470507976264908312290175084847895149400823572018765182361318080683665262846560301439742624053730697630779459792624692641619925964487935419799554885344637114277439461660514941267809276098124841924711522695508534989558177628667651607591710647596888634749544691223220120587953690346424218746496778004144984975604287586488175438250369656232432114580158749241073968350496208733042675429324742016757340771343211480832758700540326617841087369962863198179851290091198814775965495348746100400267801917816659342126216508300556195667923966155554036708959513803826122336979214947989388034085450256083964290485682219730475504193828391357228967435801031583948985900075480017085559829225797183544187236915479056530689608865137486872804269549612457525136590573540880972846779618064885354122390926063304884060917784178655016111720303235098797522514577195375395340606425904209566509927116303215533901395079505368867385887373154371704778355190934502210653318728684865976587175548933824900584230976889371646442404846385943121822879163576949703472078843569510410832524796395123044686281637735939626128164379479601511388595304068740692169277676160134949454942491291105524833260327269410194213222643171569959074339782824242513383268625466600232429574480719663992542946100662486082750067830012386448864694272539108388449167756235065594173222789175312383285346153095191002117864210735813610533320227281597507872741039270714149066389631715375406630987223854430506990300360486955151763423064245133490619588194622087566147772510686518164888161653479577350929028673795534874118616045511598012445702581909818015232855910521237677031706353288567291118866679410446570390766491840226387515780429593118526812058091726805827649231119835291685241329121144731643814581327165183840215056512523006679766946325523007609762141070544758299872539243157692130071789064320594791963322224676213835451235205010727862219601211453770509813861694131849142401529829363501666334640642795763127823005526840363093492097555210763609580900606713304622935581126110050642661206287484593189565013672552112684888517081109397429360256407248046239769170191656012528592238540799002112408583832951728113243377710933222416282002850582723995887980885746877974054381185383969248814115671786926444405732394209067436998750854611065078409909040090701025107321292683268311702283070368751770345126361187250238331469260163525119563783847633869353101182565082309712914621831818780332050132001027562387320424902410250909260298868991859107025403505045829848798457622030908222448465458917526010172914141303544629032090017898060162447311293103245536940038224310853217420995040275541597786887453582470210142934202049387138960354318292403243463430528054682166249796368564779375132173356812373871247591070985872627373244925040371033008205643721484342064316737354835948218994291560057478061127056423198931298452141833499033245943064668514538793373626120087309714713593619647509751534261660341517207407647804147418127440471204159566824732601009065152518637291117387586752872591612742242417551908470665628264276194340327797761594796004828082231590969812214572944898429889731513680156086961086253830053284350773939774723737625161301149880378512917044877166857266747072790861069785368887604259296604723938138517016553346626262880961760552519980615255680059945441195101119536473979061561574017535020572021121902332419236429031952629662439395666403980474869389628086422734332667185738174797067428862733179988403095076790338599544419392733467332858191751958307573736560245827029462190912465623725835730952303061921966922533279075337716703206836366281886346984633321965984502326887881608104039194612568376297893768300309005101408065969494035876442296689068023185684020373668456268530790326187162869690371863804171703861351796350116353060880063486411586853518969781044095630981425587509215903205564323209723650982457069662321200685683523786570975570072297424517509901707290595957709111034535752214389890848317712640017276571867363894818727384331396442570798039596282580298944353691877750798878552095776661828668203261995066326973041839977778421379557431009717010192354485018364518760165076403445219263532583415367763032149317810586983368344653100656665198159761408846446578976811021436193403656595810235509235912141498187104435136497791319932139358761878846224148060829378111361344771865840548939081661378633932454813833338518951080039779404074818349670704132388929033271647156691952728624645797716954600278315604449083838655363153116296648824803087376452923907884258314447177999699557171131705712109444074566034364021885196004085002081779344984775397461324589081349882408530993890054790416549481719829059408950621732909316700577168794088578447216635097901119941456946970769892478425536975910299685849206497356124475467333400138506030006092576827592728893084001626282909049815964266990896359521861724428382487009475151064802813925326690611161266553412896560809677107115060581662898552491149821140657828869845683631592301303096902604600760640008350664710991602771046667072747702034901385519828192900381746210295354350977995988034151772485473763346973515982657534939846994951338204639659884306479225547452632241085931125358570822587524745642148325131294652834602239645827921855438329525952866070765213365240116645811591496414834604768175089249017976420987356513207780976713356431089055215078551263131466341107604972689409246560499718132978234035234808045811125831974093508450566715797401167354024782383165567885516083118525876396804675711343688866312551634334654569678083489721188486974060048467103491292141165382254659705277909401325036262948878553828532157239487555731716647590058185563538064901834075826080220492904476794160421506031786509302959695331779209659770588995052289750430900089811450714246479683486764939745687690361104621325426517401656304416488754387188041420539635481811337583929186745342686060074688345733327046465582249024995480825775862736771604517514750873299113518996140203205412037242709944248616940097503109398284946816023566864520946419380616036299863565167389661840799145263430624821486779709362285941541790768227301941180381011790615658253434101827782053363039340391131007662808234550151890496343858652229754598828858685435214355129317435506158377371873662733259026006901718759358017108375022677131207032919438725070518644136764409141611945356467196238557255955892094654490377705706173372495955083024372799490414337760471341195475027266100754200375604548422771899855539303507949510840631059691025682456794168354377912842909431408312839544816701203756995114485975379177939143609895603979465331644870068084333980479547522789165014890763431072108960011815386656496745310244238639735964020160873205959451304410812222958433437102393263574452167891551048295901747166012138007490305416497872796885327221002717499382027698328404253553681916515628786809811978885137204800085397785274988526428819257800017046554666245308948418935624291257156201503289599058687389698883198659306638714739594939125005705741174986824928509576215150656850140066806297310470880344928663530105655484609983028729387557792629538054439823263035831514260822232492067503841730023921022579223094263105743711486588301554459657679082660256268589997772993825084415358678730050571995095376548071690108731343772848858315919570364266512777149517463910667077631895182724537220862981600282833848388081768030651406525150554220048031684019798808678656233803938302070857664741869748174070154639077961829279792595206198783778082896281619065651638727646911568212386159269907588451656881610294190831053250246985497606477189583194790248750741971029001082803112223683580168085408974659324709242760988752759780592974583914034206057417240951297072017375780050096647124720860064442024905429453003288807208927003617248219251265917220592309925674866224675440119218477944050398556728696175450741045577764485930148616984235819023453733555336772348720012283175725583840165004354035867351936846246229361346159253462527446916713196437968085462982411545367984397895716517019493574718215172752537042780171356651118715086946888843825558642457900378987198441930331191751837367799914889013463109612126026708245456010705446849404766234707874647788035086845989907272258664478310965448083335542252105283817230808839140464809790693270927212130812812548130492035320161355652291429572991548581928671602057824285847983623781625210604131970379429480979167592328552318956094559421814171023618791461733064520826737519875777461399575436194454389600102053874764320823286945410493363499554752262904477771355822781321687791488626352210451309927969762098540671052115708174692395684589472670013660806058981693439243758165000963274006172506247689394312638545040058775521516696211646420910503321953855984814579250699706015969063804705970958959157841264279344005658324724242227828737118428443116714450851717768050687375608846286261419095368226002491905647685096946313414582931018606005506900932926143835883219160673674059996339506858213345377176087383496940507052940700190459978763001720621511455155483046287582612215005487622916352363850014290431372424079094195986380986010922724457034411766653453257239469186608048961608470144241328485406103704006239350789561571875741201243162108005545099667293161715733876866532290846826964458283317898738466238450492063061623263497188092497849048613507684608804078057078356586174054219185614686810907991677522008046736459185795214196245291874059873610439978013731691463122179550175460052969740671035966336982729384663197346339391540887093037482344983689177429106269067173402801573762705136508726943791925708756070928959141686603260884467144968828940388857978624008775085797214375562421861011847397823434318636931400906720914677925729277610862394350742507015146418868889128549540854368398169229203637762842069335795026481769562826623557319354897922907202915480563778855238053089765216740542274868153907827422218775460861718960895096061364461057332795060672251716943124899020353202409892156360704683302041796756893394187178885615880873124358002515929275373130606420665060294977835075350092211686111395409096208411649199520809475284646061987745748210334785430835507476631003672564120862895263831610724680083032149427443523179100235822839439590665823084565558288546415748987919162549122102784661107883838644628733726990556305805031056326936754550907746404199127649046237540473919590207343098687378834014465879758741086672528569518697135952022816516000179253693108857134909844247392231099567136602875437265346134164041120434914919482260065946135856654919461520619506483783266837925133006090739564036386614121848320656834063732978637897869854356725054521434700851486044938543752964772812632427411957663321601175950933550348413217139784839141457576180925994174391640888359656476494218684617259299582317148169385107336722262746620818116834815288263739179225750207261623418554968575305536215232450341922238920781716344275199468452821579794263546913198151146831523953733657790066175539807734680248873996148593419720096039358576932361112383849636557636417188914447876829408632080471049429873986933340076724536961702888697349216277831462018952653573279194658318050002322696090301350293290864161600012831895077297338242042851193014782077646915766212926208706897990779888363824800654023089907101537376049194836592231772786103873080820331306200051844850946653754252362419626717627753902329315151961703625341669418573053719597809843323669781406610916515105022749279816911781231000723205774129645187578555659182128403787692264344896674491365811828912426204336242495041784681345422120790433678587915836763260870857160399690071990472080220078779115284657713820085332634925382477307779713206066770918584719672594567494584548131674686185387733331141835868845877912452286024533654524889426157947297569843997692765587168139863285237580257921688433464423057782900973595849001567600439711404380801990765776805678481516025583577817023948377605898034982855610469827983128971505406303346956885382694539117655954548996689590987850940917606699185742505853533223312317043803677733467907249186112573170774442131771737966085059015358162454243333792906023949989615146715083004523138117042897556559509332878245356972668816436622779491316959764742331019133491039146192675070872111932858307715160710500976072424979612037681379301309502891359245356689056866887341388999238024939379726908076079460298944138086080563269016576264575161569209601158925124744152622000454995014644029446503281055949827320181843264641721847901568451329422316439915653562681584470671221608357308869535730327804581483150812537476591366517240910558574282411106996022422493020990653002388502939118727269116451423424438582012062137792039765963943932989120095623391998824919008814523808651177188318905214692857275207115512550079338364036512883689736075371495781181454096357753225199732505435370256160430539545366859816534039962549756399733402459209388953181521328263998887230500622148826839159187582203134996797329021512374033686985394553866324193256047497193315889169659829081439205724444717556172640747399271778268721393805967345557507683078888357757489832488753687155987291249887140567001747606782064041203863851610144340643738411467906455594157937649954824800102387761422084711219314604917784572920238262474492282291147108482947294096700286585498311838931184888485042763363177130328501722360255382668656767108757788890564608363653217361809589889904404292246560958793706699310062479646079046309455597046292779126524537456754437340893729599538457959433826677757324206655469257544133337405489382407006126163268014185607890415000900987911036208888877351204304059794046193394805445237940431807325700699702247015903713931282717657366837404490187069458353913671197137220071830455421612842038620355164765907177889977594361976408884191694126145574564023327122632784460382051349207396519891720783959537667655738269590158892534167755132912851128038973525498132697474590229402819671478827302755402938782821416197209599502597390206959311058241993020057229518491919787002584514846912308597370068110258701245973422230997662130279830897760543529218531672483317862950652743221442794121046612962185656687943724327471476828611942757425151976048792392164373461423521795854464258183024932452802185402927394391697302512438594095607314594209718108834365382854669874527202842677526607857685269263173532285268890770281394537272506163993554059489600848758925052784269161781439908266690928476697898548378575345334664682245327647238591561902963259352253461713126270719732295440299964646512288565940237312932485621399499929616050842899507274797234268302126625630059014654367364932911086435972498335058199407112035383667454456107969793024601086986565742166903677114238029685499794818288345052094505548181447606774427847399233586737428976989742197660853592207553733430571573233258435293452839371617757660720732511757396586715844097781834749410496717682090217391987836080348502935552174005946597454453428105220331519593241199510600291999507032972845653527415156592748404982446911972824605382645140682489957132651362575235294331197942322883262231297680577411289678662202521463259516665684956254166580444112905530651222071384225478977255734469836173424068733871895015774656862363973452537969421072150721663840232002423510481400034504798346584184231924073312506898571057940493460399071862315068573621144467814625104652027574415688678654357137699244039348333661349167665533301176809663150164300123422115603480896715182520600408219712293442789549542505890145760121797726796197123839023619793739915112912149065109881822866319529981354002873243413873304170293642737940916454495156293914141242981341943972466701473879797706769527739330953903428051227147276296706876097188870999640222537311864388710434375151514814841212238283659074497285796350564563844930596608723392460776282960130169720553071484013060272657724837329290684614573151184138253475159386587554380894661211832737105252894757695772708443075923104016323518832581277082486305900314074376942657852911615207811372092163444982141063086376645308912273884401492347376360681064649991916997488009914130319271278157513948724604751431516843707444894226214479381979178028757141535617613484917748962707577778723408521449107687643123868399138340995064016294312567283784917865593351091930451876251098627160495858788549466053793382333309864876951627598671050427448300556509814342129815931640212974426383802605287095088856550697219646223646272641685758511826390472706174013990405160593825256527775311912356436137442594233833599907385542423466359163685970485490272780521352165937952223005771684869577861933096551078681146914108298663284472728278807698677454861977867983229959660709684824086076599238192547071460080022682994304156699114232540874504660071633484969394516009361935494481680065172419958701041694299343287099854656354751465387182862503372950144760144641063715914740699674434759594862814984120359575864033586092948015955708069601070730068312594911134665862413703492083379931710083065042810937094501481204619859006807710908431296002652702777232450380831243897121712893231410541481886900512379534063550166765317165112582777552618717103696228798672481898036595534745651701006998956299595592270456211221033740289546149680383553177661940988816683525479161319008993643469899764832674758781507161604778726485234895080422510860914562875274128400890203587116142242150615055234133288122548457502047662506905495019327876906929403359240190488787006259093401100562063892520777580803410746915067006380503319480324278773497735390042328601715362175535232509957490574819949301427201605678159618968039940585369663818559396981115420156209640957767647351871250423996576671551302624255213087820699420539892626532043515536664602717509624869971748922534353378907017614630501759634568976922379975223302739673853845984732154890510501043859681819888284524792864119580706464614597252595036398114908274192980772259705099804704106916861544969513667156337892053325336330464594092448286103154841211212487982531981446227914940577972722574939345448967324929637303104684842898240482594529346141242383904560857437898412496519368319199942002430131605137093610694605439116159385886438672384326098318072787232308619972834265568128237706855462648382827803463508842544135696523012691484707426660342690858281983507894189183436186957166897784602783950395552231689886987063271494296204846831292673283405018971282709786831224473349993352157800118076608609281410098284009374102380341609743865174025911083910656773579363350589925630694323839196304681927407167691916390884942885396522695710186370645599456170283183554002895668647097573493115361943403772433900683057320657683855346118110151666441009166237799536121822843548484752802648001876022064371013134983974675244912931412122218011816219494961671559979986510109516358946625888733310861827494570392607312620833884039894843317912471230936834813842889159058891437617524040556526623500756340725111369012926938793789868960649451497465226335586628253799557482684722914534436802917366425256413475535869736857092318538298854057703563609923103510203366943282633373979020604010680501403491653884491259925382495009293922797961589634234163500278823703562960722560810364405961406653157905694043791741835609327586367856964093190290112278123786484112391730777927750317609877005095858864788324098658441137488046254271714919245139478587220097774459181443413764157247035628245421471274844843612286756533250543042712315548338455475317697794473069355820381273378390608504711262122729841058521946590237672910197090696830185332785288606346515720564079632772295509572233978952874542639790648714578476678525876022219560191442813116903828089720947974796690113887384057475574922928126130648108179480683389826694862473517785175063714318555919379497554790357688255797614855756821247319438672017849916507698461491643875171471700457650660680988049825770232138461265258195923185153371936589831859832201340261092140631471999650243753807150679135749948057729573429951691258567107644722647451429743038123895779168113480227997916519304065880051404666439506538382847589135452944175497768084849750666056697146529799984195851459068314054143260302100110067250457351354913674962531569951163683719119331149104852512483655457134377038321070707202050289315717644414406275180608673295095671698815135817856592876504633319761168948232037400217411327618922475270234099865530181436413348535095182850595942241882951684320996216973866680555958057957136617072913585009497242672925699722484691604248836245323759135291610364748813108635562092740270901452399394944988672255942609949966819217261314402162045776811364411288512894090625372037368438171046158626976841840900753240714795596731347599034203566909047751117320958558603487384964991496632871549075466157860580471571221372799257402672003837328860440695941652492893505015569729306851542841885895767226048646877289638964757824764437831011134276890996372123975453423731808922130125951577067997694051032524061573162980379321640942475191096639527904320496391644607656037616304578215005149564825399778809424095904026840323383601871419757261111129924826686480850678539911448695404119904501385231835724945329099744445590865733485387693457492062227083788896990195140022447101959775665329263296606476037620679214508118943641648655452125850113593881268508883482733336417221586602237049048749594924079479318925157743334133973554387133382482110590392038654086323694851372952660264492586120397446718728928720967822440249367892343708810097826956500177589933711688141192848111938395670663326795991153327546200691960004489582331253225888775171160538263508905452878432311163147875350152137563409024039231924562363880342684168614664295252564550998971948224807255350383255276974935287708994117712634001821553954711511770963372336112191857629109037507890145606646733487821722912214877139873430348736607889134205433727525913542764118876404859490068101646661227684153447804465546738588448828483407151770572235402802933936178077736494332535607049926401673717195230212458676516809989747600398277436317323594674130942040560427093564048848925149904563003038251477433733817290680711467841635580398524032850976171733432372919750052896189752583627797965424913594337279757617880526297602562649113655580148381487158545653902706692328721286551123261762262623737163210611221213033488232706727855936580068672006300670418873033892454022915979819294679912763272749552025996533339101852329646760797645005922449345603763615766861207970266523171388851381524548320760821008663974593690063703288021806506703374132900712573919478776350988434537447875514388949407754522834971287586959861734916181592836286734976852126693626447539425351438506440031601369801937953186346465826924123041248716695694459514072560853151885025614115231965166789724985580070964082509441629636583491536727151995236173834882106066680646321780752194656745165966208275351820423300102949658489629572556053990348727690226690046719456377682479597419661128201941219187846175778408547673908780308255252432147410572933762476149675259509402911472905498133787098517843285107924830734830108651121647884717352698845355355496758483516940712102142906786669399504709199957909964016073867218677979788531446432859929337989482695077152699965036029560176675258949145351037230126923992171264604725663852269408401513015490160178932404523302768220106752963702767297789871074847913180176476535218953484045506005223582346028914195435634556152308846926165199706168768203875378623815509046460514354990484726479746425337798042789471953647953630346578980454682442630206016567770411396743256226423779273371297979945200415838037948581753307964695226363174259221585675901303489923214341894671260745187410371751335442853216679839349107576849239705639641494325411552897151155357778891216810883279032221625167369096858915643907884601901395266969195079413267499471510921033729266793426423794625729284153103936341312266109918551507650946565929104894163520890235819938260709062426700627002919077527770902702877689459176390577816153209900327682585413029234401098689216811121149843074065339020515058216698041834974714051464272876185304086209821279545125490173950284556428535990908521404890832179862467134538889797553743903153078521786866553051486769363706966982588226310131698335223745689774414758399222397345358084909899653539478384185973155157495032995666749781169420254795936547750882398781619232763800698923811379775034142340498870295054320068828047024363627725113602594074380094985868270263739989788455834696876591108502805800226288778240673559188824111413499561341962093411222743105256839467485296302034626198211700088668238451013512455221782535652436457732235235842103709162006491132789312470275553562871956644133850250146879850595738858590343239876298822925944231173741756535951320106268166373341033689016056939716468580505619047543732878801169962175107325948866558193728727886686182601021577007888846485645438826571921168933365072395464493108161317846187131182196063775566731890719159726330584367522170737993174127485955813808040822835261136279113469910410675178508380043175023734322226361675245696811461777208811209636449972881916352454759144582795279633237683990090524198025848925807642405381354199824857003227729227396160846541740159586472292576458186181038623017853814062259313768054056655408677264691536586155610005804856567307898628375225896246087681566357980147367015804326355806329149982184377695729092011065955442496194742022397078944133084428513457284266127425558205885643426153909463103908660733429395242934664599730239693158615511905954473165915084838025432368575292014289069478467034531276932829454001457537553880084523251383266073650747739169323255564155261655936529279398262548878564753242208852420949326371596565344960515989223568541677964495234859022165520623134384327374483507121555209877695055516511035495279972446053254721729569735042318752289591221557411283229243504065026103161024649549459418414439544173149692513194552677008634007852525362521876569904036208833351596356736246752826715193563158779141678275977381394327450311324222750792783409318489045401575779595871484317066492816496324129061252998544129512822992092082075300998070728290322713020187710795730783434226794176031525653577964625897799944579177621319432859778320970318305842539101712835406698350658370147674423119236981049352408177452755789423344531246722028967749212307165871153906531785398572854146034626262685882682513421065750631459987115684456178342994597096606905531839140402795205663956707673086715546738877725892857432636943271475637518275913819110291823485304229935557769093448265751804692613907649885516240484206046764275659492123123219967620131353529958435315571294826110665035250643686447139646918020042311695498798801973592866381871431277133990688080668232137864585873773908093722030521589269552904974792266915058580200876835915007605126841248127729294454426652589010744255521798067475739766646104062016505088089765105957722250263031316222532803349159897130731361923711383324699401163427389372075131601233634606572111555307086346336097268220049166950557500075159084142147050720102881298069537266935078070603582123819737208820582817867931832830409858851242916489029749186056068369131635171640432653799136033469139244174746242567045929394402092778925782272234339814536216204253089018775120010218268387443904813620404416590880748237893108123972813480030236452382112693072591738827633494476396022843401254937621766802845911330613586807662510374378249482944389744938790451657864165239650900816494305866006068036536344235645046722148697585929013033106491037204015462549190172178990760553354373814924596090684130886373183291149537612361953521477169233411354245779158835511108867415264214313020898755508493989495437913980611745025598565654015677341276136547725138581233518332713810482341123040063182028822119131010418459978956654207707477047174510190276647366068574008097414298589779329709950368073363932810052397815502900045335761263472084790215500007566269066689123362546134757245084447502828026062320824243601970726318412932452574166788516782988631785809101995879027387137302831219012346614188377042331844077330662686982548701050251328273464041318249840375502610215179675746143128268039336613324241492848229657008099120066517774232913105178835644235766594647732788952799570721753746335360754686695666523339115032004895208972674112291038611892991476161380742614819011312077040997293331288936822490237321149527971769650003593876099783006142500253441496855713954043900608957985078163589065741236901581422200299550297048911917876300676193018785489035416826226695835896153687741678238842860998453460675433417343297184435725532630010968147163328989901666317077928977470758173332221284452404391465737318059777038367103261526889423283789314671454730623807986834555328025718963743395505707193207003864268145634801600429613659179125346154732347702978267496295720766817697706381871681552669507831309057630922333063903903264997626162890227090111885929596889330617138633058819679017575435898213191073213470716978071504951393337961037480424656281095921675780804826089912046639627818397254226177739421934088983887982656401848381435913961648200499631274449181728387549061672431728650142305953285507397904331038507287795248420115511010466192259032515546920672758242351068014678814326610758031621660156824493562790552994714184752313167759370133911676527537159313351027793409937811224769411711763176240016550116292226406350806941342165654854404028926322860657701767612081264149112444741534490477719272874053676351710462430367186548918895480408532517638219597850396282182457355684727110264666877841954791559748292584033026899432325084733758117619651704813570058264119162877165421101304511530861895260227510679821672735364715745480718207054807428411530107333420770152679540661321686606120627262559311566775090666554202898090452379281222653554145206229319738614978057256374787822462004515679922769689622359736388891726012439622192804905871183391570406274406545728404624804458139468701122518485962841002128332674715289517023521012449863206150597100583725022892764398902427303707860863054610361789962317781325000406854588717477448760010851994460437437192269534242745292448196018409024252080714891738931248007237550633407711301112140190047692417890511831223835779514538718018844320506089974246898724388876304319221178551318039577965933227056206388407151964288962295508777888161128023994906722738762523324873163470486157020952541932009043903330890468349606935801141847420992335449034988657491172600013298612504928219036559519099707387629533382474705363093556189049241786466374128302014053861743835023803611268657682944216722882541915109365980134473552450283283966696878400880914413484708063427864527421775330456534726389440058551479815600867104473277826114379547410604761743503939843913803787413068378692920726049882437058074394165028848768921709831864044689412244884828751377697832502138098734911230164956820168490660085115056733504114841380049178743170274469946805690326088484629173046017784634319792112808378208132306263384291942035962719836371215211544819135945295362892605496364590336756665279889741711454230342368427695979980093191528004323724951064978686256044654705136571544746250690136986475476302630540502243940630002256622539210655387940988347396738318852032616634247369434340047772491014895557570116152634612034770903084617630952683207121161605753475225426011933998087670581622334945492605633595684283235270883406610840434086218714468812305529930407989632159751053339529409918912810412532189127439964424939238613118877367935659842189049351400169791701584200076569930249279418667815224331442489816858322350312467143123832488192190149358947263355025451079899052617262745689232191519310697208305991692164932481220496015444824626078013995375841547132906792369188252038677354789732541359204241202486305037128500851000201149738017544695572963189742305901308537893725567503550339004254524090856176494116795007077638577041048889783366134733386425722626848768977315578059501655831612865964757590196927588726520311762625521442194590676261536212540184133751663239067864215532393236295446840247338474891536917821160942691544747628282244059025635226219776602308634257985479829785287300304507080813273207483526975878222202210513520046386946208358602948126556166250963359484752729396898204344388291216943728931921339302638368460125675294322431051298123891727334224694714412589957953880333064303477267251810496118862195723660318849231751484430093288493740409611629944624990858708360821366126365174968413046743400809067798224743932534550086128161545530443184017382013621569354945708655643244000560959345743103641926381428629143267674307645508632219941254500004072135917030323560952461540022076751494841434789418572917338168919501801365296011919889054511191428687274023979818020121446518805028909984188212407744247525529671381691566681825740225434077799550708526980615644108012032369435562618122206161478975376701631162854290331193820624876281273599660223606987260777948195057746516441485876328638205263554647304917498059728429148280499640444177729049488767678995935631396091862730729424406514096903245620700953980909100785358686393135197916313066379928212992611589856797835246582021174899433190382948307020623749410835010467275800247356260843179387089327052096590129134409540342532209411532523119670516127215128877136970363315552769907040060806001242430684496345492015720770559023719881423623179494368497249786746863843185890053848955427732104882573422937043670286822874031565080795577285848507484486293008238672239433694397303619242930590310994579464631035854215345230895741513268305390041248692099923961075813745174807378504391931297107081620019383803278985619602300052105106236016092203817547112810830085889834693703029358087751371947422512303500545547071910404396880183989578507106325227301663627087560323494138737385975520018676090061249252486359280953145837216834386699162127876194955384988850351651673666200171009582265588995271186162274166663768260719959675675641636144912466688065996235748831092459066581128289936326374019144780547566296443442286530790501125618462027131806361285164957418705926988560642588886307789138611750665676636970705599809294963972366892345820973768963843145071015545046506073374684306888269949571315063845429290193347802354635278080252018022133653012029138354519461667198517485570637821598270666217258084324321004981090283243266690752312410487458650231681287166293843953040052653997929313660885775824459059948597993522229192308698000633163557576909835399246219610526850231189677082769015949668636495172339492736784016701485687375441267140715139965752061238455857523581245215600288915239556940229532996297242398066520699610163965034399303552479609030111702257785199072388335252402724003447131098655863850780509291361698676657933238352181773752614125176521669110074120247753139802535185317184578178042364920473029342068789053408985362035755793246779105840963373887288859171394033379361064191891487211037526553018486103459615349595597765110134961183681714882564753372394176195480910004614258823518410001328691799258136056312992656010513421767858242468544144200056990372428900319230390069711728802865731899702065759668095890104979815670143633418881248819264661144500287081394410551418360095646096679912723775117623714022887704215378436794452332715547685507257636448683421757735284403545498025376145535112598804467429754130551023957896678747382446092966071505851821231137045485879802438439519347602567820481715754807352486668570233004934140442840911412041248646498633618203024129649858238207781477584118636375706544631498651090512524264947466527150207689537432266598391023720569392148776341492548753166122405660562806430120990269654766030391973483329789774367945187710077278766456729219744161492465247127763898786781868992212072576435359655233524330646155127965645184657218213380778849283550333881556484218192498351097029855730133292362790779256935240195523076599324332280766030213481861241098148583635082403069852020292687105947654066483554396426899599666199264626757456524495234414547108541515474262007839766664314891692363498944737463920981079316897710016858501175388826298722785075149493149990955259539452089719215364526015504171046905728205944874455196658147928028389895030644818570103780659141413863214232055215434681021220532143588117353209513025887380726649706469072948580632760219862993240323016147649416709663275573305779949344820025715689695683171275703991922305917380925910651670056121851725102395919120207231468967940542974351725216921588290427883603446792079480444437675971408342871958596912294617109751498732031828275482056535592168985064572294310093539381770191619470054681118104653425914689341758312849168996018381006560797860719342305094655539854439977509652101401620702737934086775469162827736755378070187146226645860629138238738764762841316726041353045602943038182507764321097566899334789441143830637795944468637795934598373660754445481290253101588798718031531457303671883156741061431104592270835964477552927794045990134545248713047986282728190533652052764477379997888542848538922152942370032371137784708313571350772124708175357641967790044133374388069695581990350189285021566093965002931593260796660135390251752898064397777710712205356306614410234898632866679391044160799420360491954656844142071211124002842289509086178187973285289897472384831392541588735822460240702532391646284812342295864640236206881410973049387065129067489099338924402842788204552542680886303292833149807189967085480477926861578159462643387002608583805776533816366359727773252752750828915507315410399609340676316499698766755271139410788736202553681924060071726029752976570260425273682970718910134655308266502111355655936378431088660170850496658866769696942783809139712477574771407142778785248057965110194766911943944857221920812343376865077256732776276534017738018463888057502138911451670968245982261198937075005536841801338778422815013309653543301985240784547006351360999587010206040409827486415958884933153357999293107760292677673912459688580322003800358763907445393343884231206124458766966470828076871274140795293155994876323517621938648571030367382842964258833662374153958415191113497127830504347538271350001623334059511743198898272350143150643739896177282821509563371653222818136641581700702117178391199237522629863225916963110285906186990353973940649324822717749119978618020341048238493577533741069303753993663937696024277970606137059078770985033662110073899439590560461707728023910423721373772795445714764797561910829000183896651220537398427732217544830327844730849554956689520861650517777174817747191038233878389958707973717347954211493104966697785743769635293748830451473218911090581828153113554902904605446869228253895568557932854558937936214293886843378486217242037129927661892867165830585070782213389674574997877378572557972420856883560234309251114295955222037846524322012260307555189643504501750726676910577940146996466889848518109524092348227457220800012342766288962365200954959032545850032930678517924007330217741786341590447849923650646825968311062654254957916708979497421057757246122829820516818195582959211960193406715914346872311168921522868789823474386215129744657655730916537870712427207660526445815071362352318210097670797198664986213501735105649592982939897717704098431576206999400765204579492701858483440959303249701720542332595758184051358500851048574290784675698824981047869259778203563741063138448013812616652742764888779565074754718263798066963226277876251567376981758639422701626861009462204124829903123847312138637022782763134360245832391811438597412555555902380529165651022847183776132464940754666637224952998695280875491594013250116967326575355360404824638679690778316971410697093327098267216838651834995820125791848211685910376056605588793701157986882718419177261509045244761289311179971323702329430811874090518153913050533092698961082081721378040330548395060970731406144026933233621082670849878781378211551364056366947949264545480800294262356987118163514403815238117305878673975184081514083222901339569205641284610992254400153528157821923991473777687915247083351345013429117124743319812149105553060949236037549724535434579467540644990946839288086504822167811624583157576418355112345319119686369368229067186570386418452054971075544702644741252192730913570434282914517648248332656801043005970873363484976892171353537705520322889423939862542614358824473648672158516210951808922588853631738817052087914974173506921001403943785365057575236902962501607098773948972496571438394566024545888991209836721773253974001184665040374082075746756954458855931100518329633938927403826411815589861130445380864268612018985228216403148121698902581777036154182979640672557353930414521257321549940106790336822193473007088234613846800311294240948862032553369625112809804710178189044120744379926061599705533357906867321048435059128316319157108868250060094770509263526197279531168903311414597351631924115326161541422108038634031809927502098851652383088421967179128594183298328289838122079180639100507367606877398279409397580615236842308596355401111255393681936060469365832530535522095298436157376547417842762518438740186493896397612195233838512739976388039217966366380366059560569331453376628926849937553321985144810955171226694513376660201079583693751824876177120002753713919220661737704176102911538638662913933522019118720696801476277374465711278851254381583543087544179679954532338925325133305989292085912530310862977874706862000675618519376557542092859307482498103392557713557498467464700481030183295671768167009312990612869513441460657887859254113990568254916177805855203525759125073984892748686933655781924147453093766173579629422224020726618771949603721743945771635532091298381652030902436030209266828353841767911437578983093740377571067604200713386996256257824353237780863167368270082941511510205204909960176015026032289423205468706896814527557160141432838534161526871417955038298798634078213510295380642502345524784915539433394916245003391198840370282701579421397101298644439028313445907302199769351830604820257181560189328093409248372533970013888451853655436605418640970770686832994252828551759007549156094792981929066434398508010085224464256662260158887879105854452912706054728707059165687317117779416456621906307442441747105212280085759849718720839532728368916540608061906366516876943481383237716866068547530402971205765441319586614688993632294822957069184364621236418546555556189242845409254537592976072087819877425692261020928187141160917269030284864689405067773207375392082392908898759831296318337891851657190610370339712595314732823208756000996014276156685030842419830730824875295456543402529362576393514163410459053102306724005535224789005022733002981086069102224763437440217727786100852615899316794624925091158514261734903303895897042443822312846197959621184629407771804074420528632968714715804407124001450219959173940765443503288254576016369265429845188535968549374978331540493508910267268839617692736949422089889918240721146438671055813820163978742889184597420709634460654582062767490368291066149338243629163365514472844752339982161113285902237633509448186271737168420109542934396557780404800754010651293165002352205854180636476129220782695222296904385940537978066659070298923858062439690171236815207011939620536181347778287149585179756578884205763170459143670658679806763052505915459128400290639575464737647354725244552176749935322801834983024454660194747858799878247314429170348483868281308282348887735195948202892264861890432295356697702217612953913934825230522689618537225243545241298737117688175232361369225819902643979334944327573477068274489150914932342216999596612743966926170241290235690529632289696634335619992581081693511150405288092095417917666661768250389453516364393128933948822042297706007752118704892475024299280631526638109673886844139863637020331516315112190877719593542005812827816463436359312776963834027932702245387854353774262766166307591405134088810528335135748653364916713541654722974372773092442373878235886279094707257365553162941433686240624999723348514387455228946226393411895010250613079428311487737739018789490551305879200515223759733958743950621686265865549718806262704208556105583837181561499210965011014987045698276653048381917677214663449183920945792160430432396926006802571084902429048904987879081841889561011049775160391369598344006559243605840232365453420150938704180935827328745143230431522962438418360400212514241457940520622863517337252285961500812613384787935857608792361068530851906815143813765927114720337570271087543258881885445473842726724062486965715704637405245044034362178882443428333112940517304773356544694006438237876075171182100039967456251548666024782776209044502764461040365249004521280532157440208115291558701629528258583016315097135656182987751012685167257662480547666404357234443730606285371658880474052961441092341370887234563688118529158868539850697163429179368395872965195592084957693704640195217640922526212714446675210806819759688235003541574851643395665971197225024901737874992145468475993224899043647592486450907189901970947077163154904484576365683247659493223911861021837350666159833511925910503207673706725884101989707275871865159558671205232354731222853953157570217018779972623900395323492507274029962954286352348164407044566516782578451616921903745650426968590021401261727329447703089372881861461941071572963577541436324235798766440451508906573437005435086021001130926411211507997505406727614030033360208691833168794465813112265227221322905826959081540463187756210159887203428929965108609721750350173282605994188353630335329886726893245523617823821481334547719862020803538554693167611465452506472311881119349627293663452406900862955616979690427850059306192365445927594064646057443954599068947024129448119917756547590581700211241619604175699737332328155674456305425752655280709848850638717146178488638613747791848957584219612141858075144625611578856833257848920315620959366169506522636276792266928335469213959844447820289347689161569732040488145099275183631729409652688860028217180624124720579515831286484041158097739750392780761906248673666340738307564646046017704764144928796893025641459511703252747870596611459001412465090933603138143704591352455806852472068048114252187952488571060607062177301013780119233760655541500139498990205073819023314077441161814744880186244864992484687899948487157215907703542193769638404391997192494210990889148929597761095859251792627784603284351324317529560860088349840102963130526914415687126976465745614944142804159521711272541077014103607346494893442894497814103244748035865949955774717367936913958536549613032706040152712424321142866528076299224283388104554941485610876695265360545450212019334549783688607429796358387335765359155018326400960306733301460359943737058912878975300303621610653160677383287742563302824531712694053387652975282293016141161490314325389495208425296431799289621797621841087676044729433393808337332172514812205508562766990332167401554893501350798765783462256098552723866553239784714155002951402512647061529993072397967173404857460300123460542743014801567877165133338905947923873076127402388585476642613050577180936664628720012240238657034105412351322126080453555820078455010679336953349972727488120189240492913581785231485826793454382942150548471649797082785718459251706916131280163519372278781249743686432891416051536230616451042011224211277336563071522759106718942275945408469699292610494835102690036946953638331431510557877300243816524329693561956875383297548464052627635928228823434009727004047626812036394388914976817600058767087054969168408328217917852386897682171445201569925965366664763453942956407849247092376628959734950365980583854833146358118087637885850231976387399465982476378206383957862813272224171873580166676465375671020349161817604516277412616784816320999052145457307681020536461074932142006135241868338565293172333977600569251336371444535275720995574406391666855633040711898867990334297936555651127965031290299990685642979095775009219578099310005241141142026294388241284053406433992521257460789173515133540449489035721136884230354001744685711695579344969215234419808608329144859576943730670842074134429188668602058549468070571252013188351177333930081652394921861267809848013975978379331768711351804382492555495987552556396750109523071012933621552362083305970783070558408596287164266772633853280908507767249915565780191588331554586208814420129015330964395036705444238780052228654219908124122387482570247729114692526262966350832528623210557231799565988214520962401319916604176608464998434505921022255005409121107694304779025327450774309680670770059858989242234761114236591478971566231461335150697597270261235980683861349539952949776954204733118124282855964761568707406329757505301301572497556878808185241185270447792353362609743250173000803100392429036494659287294236636665389448812764798953635453238641683860496920644770626737338486818096531297450112616316782597185581525148804675066635228253815760858177966704748183460560110240370820312366657871513884114682647889262604037294789445751550811954546251638931125453359519976763123114574401433954056390997772803492482496858977088521294220499572712803726948946127071465742033279910336345297321526686131856302043430614928233685249597660293206749216847304150101149066532792478131034369189078792655380567726653307083209219861361791057411901034713270852254375301914658377131440555819499102594424909700631773603246605769053359093877329936944635419539879336556022688741272470559669173822543336034480039263340859737926466598587368827949534603280175991968130923127679825405459640645628280033068351837894690245979271984505572798459121055368131841225145716465189296398367076655296062511767549898496175805185177519565283698444090354968208113475246278167676359152170853380429749752328372384067252971081807700371369223163043459084672083390118301448289718063967916215412854762425451617042706259083733067602344654209743487694549347924311716459473828351786835366217524554835745312780213877376594920115694969530177286162554906389882709004578870078505796643780592838817902003533422385711219807798611152268138103069631957386266811785936830881600669445863250986938973613894085888771887476712407963609343567556327326138659693529399686369991899463844473496668279427786674804696538275184154640229867284067748838068234194734039615787266324735647395689016018448865577723779820987632900053093794786439143453905576521378840463459215740718736186737131963195440316985659452362298653038709799440370567201298740165140034729801510124702493409444820064969230466125867993903929444518462732176447008482951938102305757624543185781699449221016267066100170939862263644951880914022427361805070689325727424405637861797531880607386592319534570145219157680884232119705607529460698887006734372365092069567011995394039144055444936121940834931534929211156608539124752159325610659614543443084936168212275033629857593426409872842146988615575536818515625340005605742199335249438064975397950216052353937078090848575356912482850006362902495526095382622163194090106144101111318247913875793406583106722843657081701615234764300453265444785514689631284746078381475162812889296664194096236501621229676315248310751245380018196703382491168098662603020520572622091993798750554208656102535392574839403792812771058741109730741406874046489869809563016171758266825506092952995142336174944838675182402851487246074876136760733054272893359486942792922747679995538196289603666739144476698436502635503425511866036561336318631122389627762408361791158171323196649262200530448611102086225439854478303824943106225048113364085355897202167235302479094188379121594408995476329760284858666035872590686850312773390532915458243595212610905072518062575570344815351518940770084424157214729606113728630116781784089467529005575468749406749420619043390767580519502703461077981009383569202923080082652019121631641815999684929216804688136035965987247813948922914002450047087249472195700670014179474779578893435044206588207517448457687953750015659671660378421843194996027633404164230026040508755337972993851454549202420442934037795065884533171351678111841071448653443715519245377210687957192782677218920199214962325698400695449920565540151171807144022397999384543630206922959715275038361471181013240254715139823604255295940821450985110195496676179495241865708354683903221121453945444360559099392791992143550494686139553618620208728758943665043918929760417847588168724120560011693532316772764687183139255488135781788871746283668772601978098105272344832717876530461815632710310053728311554727539283730547725890544200503339283662585352397101896504395705668498986698129459551146263875784400561929749365399686875494148700835782047781910734625333357544107033440436328880944369704341249664045787655341833169854382291126769745782806138544077655196321684841937031352284844208880403620443702506257077874746680062882190565993458361533356255529452633876681477855069001288760439396058307158138425378916280041153952646483335990219736945085706872347252265862401881108968858757639859509032822032584806581063796245497550833573406155903708277389806672840170023755018821050080708874661643103446320161407667787759561682352817632049079448385125553980198619269640578780088806688312988424846492481819032142418517029443426307004057777372368583267432984119073622637742592739645417333229971782356707957946497967909760425172681110598787795427894902054375488445172084831756271410886552678644294682135500462748152866858743924445128759332609075256266875707839659143588713002724676011035653338102635579377992892052544816190311523003742288392877659814570694995544068685892126439736447225810935686808338822334701833704558477236307964975669606406717071547693132498589334017313786651330943900972104751489740828187204433954107573691282653697918233044991495961872290716542210072857290309599971393151288788245517258495503311389387740166003570230253925589125108397134322338499847984752333702463502944727312508024900521648347820077715192509918738598532798633706677890553513114108557076563175089387294513476803748708684965006712324139306936775562320686569865620263207107542654637226651500172085016540277603643913350675744114513715252595026057347883124051972367861581971381382521230188915899154762018562165367426937663073830927996991246934900928168650021445720699407210821038936929095431011866221676978100746933837634505092231852293253350425563416926579808080640290227936577722076031269029326016295331926686826474147253135302632013397891001364806446707823941022510403996913028512029525851047663441615016380903802728579268191591221982748502196204949616667208649277544119172548222528621252614084781518208627204922837011406803821626095744301263418322803413040808945778208831777369217575160275036029759440106566118371435312532801692614456398356091990305646427376036135102195286306951931448605013615865801186007617658521402056471742717931182727992998261568873072347273718104545215067006075785644261578012368921400750660460631078638604326873430788328985470351088392171272233958571888247049604212774009153819805611636978006182836900228669654359372342694186385182216091381045408785896239351648054984106268957964381388496911176132338619497873624776717666365848099087264159371584432483319736560866236937947371158267045750675442639370734886118922737607168287021725761299960765779654525451463889142378318563906719830701882130599578900039345877528529724722525843754096963228031619088855905077614627362434236413113779002815105067798184018316780177478431467617471126005804253742504241768925721237884906091736638201411815601538179820957697395706058776821631000394098775583702665551298172771863535091899735875255606542611904938549752527599628825051368277370090449520995767188470267769405495361930690111856969815492556935582280106002947965878195673191763089565900218562212629627500600847577562397660214553921770794757261411726924620982078800084070056835163018521226473848294999202442648301456769595602754354287408832095714254776087561324768139311888553330179821763092182343148010518742125653685601936560656390609177466578089431583644402026343479817164220173234861345137734223371839324366008957020806624481885911482848797225666698928910790694464519734491814712030616611687637611286342636893607314832469187350975239015879114424092036118021573799595842621393817842173714696214216965485536206998886267453205700360981660383022857856983491551171326734511744407809448362853570504552575913378431979122315373834518801824182619881618682483192071133244741364167031613190266805796409965057597777059131679794323233569846303415454032842075931204421775583370985601196874960309870628575981155738826717516359597088442742780451827578062301036990022842538165792930833049873506456790176818384232542552487709089428403979050369534800177593803440552020023291344610284431210635815042760878386688255710266732255556393962809943150132075163186303134977089910049785795535315333210329486354469663171218222268651328186344870550760415746239910042274406342703978703754575331629580425724057054936711694296080639575380008675073415803082041531650206000632532006340895613569122260403522737774707914640516440139041247001945567093521986602103731939330795756633161797158945002071476622461097718626214525476991774460333211503267597261165998672951092299159378426680374796807176926129993237084313683989421107162077410805345211362548999415559435474032307085376074906605721590522418608343279977980372343533714296074774002463551376800584666520538647618094459211852288957605501981106788612064189611491273960429509755177895835697694594060749849457766868412430584357382378928307813112777019997599321766923471731220730657832520808097444568368330131097862312308275468159075067310442943368212380099857289491485792918656417306944666882417917871435548322193851992301981225983745043154414432462163739022479995940500869337389284691866700207125413657642457585366077033803014096931347321043530937537810140216748665806507637056439342375137194670089072102267168755955692465346924751873535940570781532842515089708003417653527347377531790031971392013882105169119778238613624345647114500459931486859782257853684767762029500514074156141879652217818866933656393287616961345260830903437735148730237941808873252293480635946058479936681422472899396872373754005608828264267946353630390928536205018116385732016706942519896436743287622127025323742933898936716936988200166559003763996607152520289743595282832402437188771149607784478932215102386655133582190083193846700660606128848688380347053066814942390564060418283520858673469174216661434140615159757455644927965516209782038170832575245144757457673652205189400342863861739543365357021297300627374422678597632775060594187039597748322210404444368534754491855516454447243157461688370159304180681114845088920134312763803439958931800739736655311377364050106839431299076680350054389333830445097491520765677991942058073031053286502067097924240228089528314097683352316338191488812356344361678768132349036311625261915840018152031233178603962948577691577208952297068781563482511851386041027309541654977235127713518254687708591012704329408100409464199128541213052783743929164676518772364412261060280048192250596926493719369206196612750262827631356459815999648189318457848514543981329008659281975242705766747837691860257159395858189786402188362336328102435040301053137067433182203450646005060459020904612802900189950950940730540692815348194475283619329783989185901540846799640284302474482284040254315001946571883418946204102246302325456188903282782228496632827132712004615722551985801246239811253980235055445692691624261131951036607664325997566210808181287317803229620658573158189400005318012554641717410348140031085030832956437629504323162348257830000740059235003298997049842582989208941031350618023942441016642627231712117920555004909990017984693318849675929849833762763334502403796292694191702787666301190006352189151093323851406708756570664951315220754687836977841615557566852125523390538001552301915788218504002910079293429952208577474239474410009674980644928835216275435936299478468690131040264615593281966518623833527241051512318697338517816836805780652963614782451086626959110471857888485872673533074321788503107754240598786699472668541818786921597920226819213712693963461517500657215836473379537429711742113158898608271716105091621345339585513192210705645827419542546461274910147735884482340503752830683962816224676940588168169735564932166067461030174231163350921114192092299175644348928444249655683548068515056188912186115153448263495832291997243161775536882847375546109948219003678969326455840246560180226054745178276730566716059916217218640528160928399791388727414320743709270800360362413414855044232826276941162649610176636588730387166694906087336201326992511873015755467871805989781953509208105697079313993701918150607641895921719118930812125779748917677189692302806025540988370258378498519226292468287011429530457450509837959136018493523450998753700114889670446461511011409650626442537179249733760738455935689887494030528996794362321661895500800359067875730276853271262888998943274848183992630311992338336802242055791767571007176157051608341594248303556399486752156957934588513085642966009295633984070426885301107007992583695845445848515488749404272428278993784076413644063147603100040104549640638783408958204251208329266117376989088763122822055090343521531550423786361272791579828983446092339493962428648335293857017468402702190685868979604684628319181673656868378196248453386434158564413129789223185099382548234392894465546873395686308669449862895047783645399856934739171258209325788652324173322163413561464556259885257001882015624626594138006585821133463605150741522163933388123816144109051009244988432053739630953968059111896175474691804093666301327220340240837660684146213255739896948041140304447375663658905174599485783478833612736198860739526290146629236958419879987596826014232282539137330475580272533626825518355554344625991165195294705945017363388941941413271489839362586531625862238018742622066725939076238869741596693478420461709815189226899655268080152480795792581200586548789483045373786314070361477027473607266898044015099948824540867325634909561863383393030528910868089108579316318277952571530221708886444395876333734814983052500319202844587043954046403171984790568874766942793217473409069068662667891762309301003544058130527001978356053210598866108149445830355576442473580666640913726646099399592861074387147280968003349093278464752636910008520328622186908052549436082532555968872817552284635374407008447581104189043810982793910275433836289317043124717510137715258284313401539490086019664660060617582700066615213640451689009150472399912370665708393152216068396914727056395341209269552117741418742103581145916293347941781079443221994720543378210670149990820281062415518151888712402447667236938110762659750934068103479111021931725053542010971346283273266243997842620602167082647217241064743776624145737930675623851184598158657322233299576480534655777464055946067520635130853414615204128032506696550627538441001103263676399180905914625380018904434235138132561258037805837043234435187684304889531537192566347466864332330647020399059379779978409474606990469526810137465573502343114587060508783769346987646141768004057538647676488531015556172952307664198397248681006850347457056146334889015015804594049542926281508534254533927222691014911869250364356069273798367044046379495368076537098618484760496114323508830403902200551708901894243029417382669765145544795721375442540346514209464543057763908353883287449414020070452258746524226808233856069003871001504988753193631145723906422230368124059649377266053497951615183576050128759029308612042995324544835446162356802128853055905807929044067248010015336282110768348146926086268792118384413557626640538835074372828680435476828130054907566893356562912414239342702419227080618278590844083991091557972021947852113709370212819285905302741494153627468737090546848888754459804840655656937842966019761069254837189996846628051812179616124126846556480260254519997980330460806424411074936930587782203045759655009103527122409925914934105335273925401896874282926706661399073199579530345677185622391419975572029492729901473353121549871935583252300214561129798488389643372919807478356374935238282002521504213729721687041589905344112447369556956163332116689406698991021893614268733463707514778632607606642020933517847737984476601645328788588923558585041688365465748958057753259662952543836163033051077261496290493116344198157908206895467676521138289539208502573261113227686530637214799377242043699752598950463366397384742823660123604119216764085809023205893925103174386978757897130091507300461620612493512598461394434056831046733738798194407231489072264846209913408389760976292366743147883255148223931962405664568624104481205417652810095076049413799944348794240490460095112519602622850149421225278661828378051396079680782259373169988143645701092826456789275599132020587207305140539252226156020936364045275165635035758356311271835055014757440301052109605443661923472060417427889227006277506725099834067209491208729909646816743324217486821715402084575267737670739781568781288124463770559530789803151536173355310943074475411377948897407870988506898408489743440491708175285895836177557741948118279282911350915742666576189348498660245033591805784199898896821301323469225705795789986046525034037912059117356728494376764882977918840337018187550757795259598297526500034632614456799961772537400830337708666357388762206278617224973180442956342574909211432012357270862687680065042052519618275212550769994747895230116347330632350731624411983869211372062989586279528315980309329216378062944499749064882346594272679541524070647641486998214363512322814444616544962965432081397337194190016309047626913221686170827351797871808269949573237153017654945926440251222850652523689113391735728569688617270935993764232468569690208042621322561796097331753838754090869984422045409862340006647938939398042208642949668197293123382171774400734144001810275877662433112754277853881589131987612010050110589215057203568334438083431558859298811083292313733009943332292084788864380352471155651042275314873368180519097676483626802972954628937353016844006224882597602346530054687134869424896300959293739952880623676796833370348287764251849379122531031360626904630017338003165928517151170436685745329524713237964327925180091271868387122808282719872810049235248762396634954000709401612443554155205619007893444164761048661363986694352172490049346480743915139984437294329030820768269377768529027131636376740342807269505748670923397146825892261283426632105366060649538587607647880779719633331712109130382770936296996462749890904131004646813057419570036955347934028793781513655534465073565887588370135255361670032670388835224121349660560900546817177120811615513300340936474757277209429147389492619009433147205470694162673062674837366243237525458889910177919500619951858849022827812407661546570066974536242010610473970324730061569040149555499560551294429060099488211402936142773541574677336164611631671177449511154387494460622540156123558530198278551903067670768424997509519051470652808678318747587268727999934943288332848334399055421460546479959406248463440361393671974056795345748433441826424456152304468648019287419277830739478612083252089028257932026352495012802947608918354531175099205600644214743329814471859893568408887317726666617161679383282837189519039420860548956162317589933942975370376480405515587186556011201475303431584414754906140917508665687953636002254859852874932177163895649539750521435174366059642318570985394419165143760569828880947474057618486973264578089699028561751382951264927542075057205978748998445705828760380274713431167023922166152738424100299848680528341848221365030546141587295124975734542420294873073142255795662194633506552986520684785599934742472896936402491486474526131491204715320548278360592746245874961119962094647396623405355710655758655487468377703200400665442625606279499553986372747093786186972746476693673699165278437512035812042428824290397134507321152139603187773452664232245455724421529619304163185544198240327526401760051953822383038323006530030765593044076520150636667617886939639855139449002009410053624730249899562767189689783957225914613953092171542171552398917834787288271193755283430484498905582840071968299965881600935344481569166033272724240163005556788037774134621514769153846977290832204024533171110064733012278365022082533095600405169172024927535180259021431911444821183540413717651880623029290162465637366019488494609936491119770173931881717439373639831306002222194605016459853283348233656019954521828723439565251843982645899589331081425884287558396756189666470321045878012077418344867226223575078239112081938826002384368163060935310177092995287802953489596383669485943383349449710720776820301568715897947810994462890225652964784105552025159440492124645142637518950189857104252515651677610188777656791764212585351614794436138280074615434168240404480645191367690507071022709779536311469757453427905629475643943634161814517225400597579570821171352800533494939503938147708721644351306161836658730155759030069732482784138522545732448668445265359558712509504433113776134269389782308314947008891765902290965490507907208464245380329485891331631598056914587673437648957464925168784653252180114514144068607751085082447445811832517805441535414057414936186435084075416747876818549223562044809890808560133641105545228886284074394757347915478528180471136933577682554070503270691055892320371650385302155648460631166051699510544958912135058807046446008943583244604985936862494654553741148641549712881534986915752707099546354174757053339694498297007566669457909526030910697682141017158747762830114451147019242107326889477052160014059361388963908056921214421065018882896341355282236929044233880699464282814876886571021229157405340964308675981471813573397971425368841089298153855413527076010728467417597135998240157769726012519609335928919252131100876168930856710809260370112275192281815794223125902138007760717029559599823694247831939515588957278915497019170136844263509096802895866184211696425364554556937963906332983954577263097886694169329541672542763789200757191700430274470781696437186688114965798039975183728293798221772501881440688156531057927945567415630247011296052582190006414675173507046719916794258431213945709103690751140391561068787553182332204799548301031211083420538817274037562074160737357573875945666503434347292015790741759032039596652144442790240163473353454447777893886764461519287208031158432011747674370037095215285415869441768649575397321922996486030533624886812009683425042596566604498646072324286486585051837343667077873523474563684908062316939986533059616571622775468638166632346771859982876809645348760394582396436609316440350076095239836491025923427986072741911512755083859236374693735860262663446889372323262429860967870032439012803491601647010346747280959519600768810127694761253714483785175606720326698049561033781695728251019921647263098375525694983701660821778939950997346438944308848894668699442336115219882359006794127772150275384250270870824877486006933150875725770674296162528280316797393418544307837321811255295766212843040736007714367444932892851373952756502941472654370840886395481980167376718855978191474412087555657654745213168440689690204306874907834074915710289498368644326581809603459176534829687191828550150969277636780001143049335966211127584562854094515901552996713618455259548906545033569884349983448303855802484902100712547574967701607089599610218884133674412365094479016779120675796413718393088658830850508045668851302072672682424963624541875544360934006279547913865274375393317684533740631666798826238823263426154131182592134747068474120576128227263171257806569989867425205463597997864076990667378727218515057779726027865237808660993884714738086859614847965651530847611867654676817599407710742203322259857073561503920358611164628915804805820785399742619892483508865337961433980014237292154499956018026085857407570592304971967420276235332195798505871002679183447565055656349988004900441783882443271238347935358573866804217698950648981005060091161267540026449927559748088368529988046865250908313914877608594670205517123752484262495435021294514708455874853945784856986667724413221975400151582716869702912261590614150578968881646258930209505190684365564150531150733681850233183147058389395629115998390936697023172481933485644063166302466227545272125212643126823298219602660763211289141991516026939424746790712290915274982580960064319002345811460396385020596636775074142152745490544104167315424712480177426188840055107582052240090092018496142710939519527685755454386279279732515954218165482375568049080549109823712825902676643065211789507816415580702459582522198988461781784730372654692341650641822478076497955451695658532672591915269627662168373006348109940085274896242600912446830850951244023047476607593806299703245268084687276139044421442546377051603197746544345410130761423764098843690419354528471516014055957587829077128991343227396683377713376590078781809400877655774129234570262151256075379529721710982670141260815050133962989780626828198401466529004840241781068548912165776429713482543223473785180127668032098504940555167899569161577594048213767389199096846130602735092076592131082582624431042129627041918319615120300140021328194790849238808699161170697279923807419037350768968917633026436843176521501702633765356827460299642826681584866589972421206248068888989743174630533016779054167638198294741798405278754721365346761770985811110924703131239171983759944288353245689153696859912421646328686103235597230746043242505453860237923776471859573309544676042534249542629045166610199261232740654909272255472892554844286548957221153989145930222678285541688326761087816961235408866452861563466961941866190046228575943683566619409682855127126665248459703620159207724192463450177891687326958268867612425847849528086267197468585801334070606552904258657564078262612615350621364704116955976015796467747276235881950637231090048310421767051699501971387899420021288883316441835179946487838695370072850655224324966530963344877148834941812680171287405513080832486479292225974672998314617139924548971336965160315854478155344502346903772341351018425129355597453854889295131403584205303942299267691800510846506622081977519974604233398547823072521932806375516892352043964178234188858286764245539661222860683032387697938396837007026861203343643373419856724734249289506494490354675908111033161689394484313356017826916893246750618657347786908282553996004798522731372722513080769667402731884131875841797696872561860818024982902323529560316449851749569154245314720988830610639337931157941753130733934078874652129044199870590034757227306591725547493232830068139254664830321917212120280345413079487989529434160551744482927432263392360807543305444192320938451323478843523775255777816953807552095900478944370832573520244705791532749068656844541934164048666911439078441868477554075840504770982937792342964806112575631759705809376234655367462993889711084828457060906894419459836236226084527888035963598314249884383892983261067313004829882445197048372699678683658411894898354388568981741665762322461800675287311577061831546222591722180794431080776681883884066535269913827456735482668749519561805835680669408361843305397068707377440561865092612942810941168622906394843063521990149785611300284275360723209351533284168960399316664159272535272839894202954856085156303077929590143274005975132000391562922480916490210972000966138031481054956338768875186389953301892108829079609752158967729872028470520511371078649242686997298839918692542594493194613387894850052776787842576627177287735330115310027284379515627019667927100684258968104677547954053086021370815660182960033638779694085480219432448967359042426922194861824325686343082983725767490573355626091088002265946346861895168092771772643696669609969726282559225975759700059057443862098699692700188145166384187801569319184126512920350291022872138397873813343355664133430069098141682899975955868334403569348545922316598888103821244587465223827724613553849774510576424158833760080738612905195919519171202915044368695467916731098427588382777918057832051338910586936790743884948568041361418139860036843045207237861007426942904631933164339022474506941380080275450317411851054539065310446217049019955706669089614383090116164798886837891513163158129810944808801944308502759657345033271321749935307774703340441427498157442108430603912619460365700071631888051500495116298868370924505937784700566710209026898841447833840567469618652567398410115852976000819421436784150872706979606573801645009485096618628703367719984614493792232492272628901990801853016476128844179960009537984308937282369503560733360493491084481157586046692775815184874835380487228107102071784145552115965346892858633369886529872635463774594917733638628140456363142301703467678016419077494088169772329767923872298256485641710184469055563711920435995269898979180965179430203220663691221394238990250025580958795412017990480404091395317979519856838557896226634352164679826947235639500181906434613247029584055561868331647957728804199889319782381802985654953032837695440212026914642356531541893615945089501030690624762008255769371762370336791505150299929956154761718920033459128265443100280971120171422047171642893037728180669536502885598439889714718780915538914295831553918239658578768161258745862984028622252415022567351379111543371044212801790574305873636977505787696776561212397640409893001207885698887710612411428188510910217721296926613303898048411365060768338387008356219978318951415967258613819241209021014709033395583069544211510429797288462648955289778995504665318363451432284609179894504100346103676325018018606461388670383309464745827968763976511059923140061195219392824922078934713455368520675741728886450435412393730511461587495372756074048160888165237800398816703450556377834094446497944617804165018466886573491090939282121872030682596446575089911110981445335453151611550174802372651533791079342327035699479591311803327218898191658650133116077725238713786092689769206369284208814343685566300881112317231070347509132743926068311309855512772182857694917091569102172912860176320844213588462896989969151643034617817280631518710136355267767893231213671404777000088383368019287360722852940959785387529972437718557069167942398673992274026591265436484963739659687584833276518540648849400958226384749405640494492188796635447427672021008680487693594452172264820738644004810469043886096656959692204839567881616245644016639500096951950762698284940781111010437637833967407626693468388080205666403232122886037230650054785437376349332633720680186281278490165864925455590634721053758872465479654057774984026286914068371438203977357113889444302993076059774302925697402395892882867653975098588682810013226755630679528992804358687949935705549016046115503804584677573134167144909047521949975614801793137673259627248318130886638415098535105382546345071544636391435535364858995418728415582678316415057766888139726835170819758878468870871911409251687057729709018562949357678236066196153804686536497141211899526093103062564433410620463787701650719905213989803212324817807669284632204175153148547220616526004892170197911772031895325575778297036073298324844470909304368783906302099912236887732481187922071449180767893315831689125525898454210033972354548748275738154085483862982734174528781691632412410991841990197024375122190983196694799224888461583426116606811554311952550148189116264303715455278651268215596633410524766806269872694625603692425931796285142892274449728485473735269155986925270470053955476695898283182968294105633765970189576010435309442829272985965215343126534634756279377220966482446223753356038034028446751070859311783109399245100291480797881423784163617039825963207810742417830649200690298829139584312486987533016605966921049426485488053361704286447859213852677653239605560751919800659684781020277832432149824853831330374031701972957819268860284066996130765606499821172555792512149134367497928881607324199891318657046591689662228700950961846040223139874803835236085806681177002826702508941474975582194060237521542283229241424448997570891952307268943339129021029338797282247287777525333689615278396198729312997845974722481529783261976722486998358055861707855121778805788731572491528153431956536776315118342047647014149821846503637484149598847226257230840793930321554024418968467054751414316700202284221077380684702055081388444485677411093983850140780635568673095395581466045793380588989801126417640849734958398787376588533357955828174353173502602760298931601964302601800329747001407300615012497172159758939355629469124669188463584184876436532678452317079848512387027018442217821332778716520831228791037181761299892916961246336395556810333452613519465264336053039202926459649597383940759076304252502503973858477861570927121268755566178161254471816660650978751900384938502582455532739624786671026149715894018775050916869350240133773025563864106186148034928243406621248607565305188469365866274526008311028832833302769993735691486142271376691925784938080498454638634758337094894135630204375491053775886088344656399249632511322652423947711240832984562589203090604147907462556510909492734799939960900437407909760850960345920408449437552205814242168024212265224047463069633545441305490028007253988920695676143764238045385089712404422003076093001477603326538375107054035540134380847393902647735138341681560480641725295962921138295069666030766494573284082673670758402546329451578238666099706156542040034795639285481039860028726239460805308380868195237414349099636198538514867423863593573505813409866735722747548353494182672706142731301532518579583173541914586456077962958732791757044310147680130217008820350292348057569079358231870918744938353023015270696655296853909736395795225581548408843350767911661253867048066437447897149136011621940947077866683681716607844709637771217258050992374523966083427603658625087991435965875239913974676161079414995539460676989799517450333926720901966305336902240748143145348374480838365839503288870393710938319622365275254799162279347870002163638194967189619491158223047245484725815975033542692513378877753058362589063138482201427622656234746765356171251404921891861896231638130481212095770475752767013044808212078023594409240334816131324420849065587176026701088434211774363978959896855142321142873516743267253135655535804570306437498045319733698470223122475541791332836310404654230449993746579086871412107378660679310928418241403895652106490318458239183772873547634008311782568427233974158318164110873552231375607578918898818917324641831284466560134662064807055803164312576525861435440783712849723133121701818267701846970251359187798382388761538735483003586911573585321498483972355271592169145959745746010146379664653503427842105564077182831464518169599175337887596532130997651250589597992843692752799356360133366261671232354776063647852110507557049877332616473296876988533252019086408743640512334552359184131717578796485125714193441591635583118626344670484423365732112504267556986152023998937274072727552451866136082920463042976533065990940272107575741608955836600706237019325625826931348294255944484087171473931763069016566824703379199986254379871598535705818289956786287744264272845101981497348611654866086534397913201002930305509126625507713635000726149100474636178024385008929718985705860558918959416251041893879613411564819191502790090310959758629637616526143581001429493424679624199348134507762385034438223291152732829435453371361453414804886726613510653915777821815891839938447013594877104205186752460386026554502377773645921801234003588019677700968934215747227198268496664399439152140228163151989754708314957153368996387573507206944544656082096954028627096918920838074191678054215898294558613779636191164751141721730127785710968686342469107421765019323039756033070834874903616357551500767601341237261769865198210515527522382546599311721179158542838624631945400757912874710558712705051627202958295099085088069742217334842385446813438133380901021831731714558437837035659195562216331367941864266270176458802047881716966189175673366471946162921941721118439119745291592721447053432782442046273074811909356987786656684789551762697666435513100221418721243151790423298302204712152511730215342662441834347449597836313103627949412203397486175992929828991943714175933126919802920462030657763465612365641656241242560719957212582788228499056808054830123141736638789335806027528204714642786424095181034630765703425259841757726829981572064508762464279148589677314568091264710129169897774066025588304638672212244625101177059717585545334483297440045000621325200908121439850055538921344698973413749015607556887463437533674748063415452496293823550381981725884754881362141754830768784494530419944329735970053098936115486614105517917492799654789898226553066325901736808249635672828026732078233336669325833179219312316951691573421845035977535095663458515707225861425449156868629165486561551906786336330639526839041876593538364364132316331442302577830232390786430017712221806230758170901806049741831311944692400150259053759449171298581237431874165678162766884771844323868859929606439511723226475397585142282780036147535669484400377715515826715349234040503881764790333524959507655691548498067631215570700872860542865059453672519627210927846559786743584647205891728652327354985553191104643687424240879901500888471082150945134457459112013819581027619915274857386449700921642012657505279704227228030032742866002739694081407728745513463417934917387503723047788996772133599599893395181060248775948746906073755563236781742819670864118838578813105490510422159380706794674720199647406310277356639607267538962006462970630875283868615389019021938326302547774308355221819634607956511925838424678601900680773397607543536605094350302040198240543487784886380423833065356100397337414627577692533172660980116513176781213726468702259391784059390764265088277540406285050094752605874768323610196796187626120016405054594403580097942301561641501485378364057071379412521236421806470480276867159084899659650660671386188303001273894738069062961624436170959365602034387411464055301605036482345609610063337296761516335758343816197774012591281337582123507417830558791389057978700142229153555324532466988937907439588129418189544606037388013863167161157680213244993422989648269304354600786037580949713467178052290255263562979551652172252210586739589805608376630665100531402384176721743058427477088888023918365169224249874931990022132480766372781664571811345537457923377256124761046033318822670723979053057504277421207276747550639709849538807602574788523121533462116510937786226903275918307008777501060703212900588258271825807655817078960731991825380366899445299505556865958366719616498302432910514137076496051648974471843282283447069746900621077638462838013227012013274773576674132305976461598501721672405961333017691159349865887992102528923543644639476985141394031493126438917204059781963839229008540756898325145187526187719927897050214261071225157211354885874847693779106129794796384340084993195899449807319198721430781471614725314519348829429563174838403933691332709716314776915821449382647541199036717593649792083221640735635066305392404838134183778635788431417751111957072367305555193887172445674048873808975636211854711158335349364163307981250422687162023610561905132589533970310581131762814536238831156458070244148960088033940186527940394897230769664085798852916622175847760276460860626073047751455496017079430950363975690690012331007927333142434412190597071727489506042755599488142891143523357574035558576672183068663030914417459430721532050501026126462267234713031139404624109346179279097214776706722123154459185603844936643772717230548259627616476955560375983985171239889682293753076236044271799037367398272174891841940253969385594965356944834654251185655745761177146060582478789623787932316114454837712435967559834506061657249327816135973816591928826943979296617069306685267788242353024119739206040049843353904057515293931504651534045513823764894382455207296002404055745142336177672251668165980135720190755833384356915447260981072260800515715221339550619297800193807835504986342681058285341416678011851778879152868181695525238901969011281259418856877560240624157680034065067144379131640275201454522742555350154831077622138557762887562910397313310858915240091533417339416137441445935897950248508222847539673298964743999251214572624551940420167099616823582143086678392027921017936363504722803109003745047617054695746803278322523506226228860207415172109905890177561167199427987074725683898395437286816207604946834188242281659605772153431099870470833677605445168873828813428075188338360572989729903131473703051386952965034215705250414889618697686483199239533640664934430215783806175784344927974060941687860969515037333819157828499762201243192315602489448251554821514443306290960739201328368489884776462946801463626601223783270227852547575816058904059711582138543043718111034131776859890674254915222361783657990636227480093656821649501574380461548465473134312479783801787942501828576088397657420334924917149926499581461807930811259952957461539193519831526301593127775682727900055334984862859663577045880398329927287822561366081324143294294748783662351749020259245925683674661095066411711335475869727733446379867721275674274695329980419967129784872043054082454478654295284534717249023703091972096549749835213692228180182738586110009391300957966213008223621459119731441683215808945857423494370678230627861674153042351420355594946743073061434128173334063460207184776455333654836046996185271226036805728743531233533791555482899363013919356971600856450565470766728262269169031640760578055429664493296473966185556975457737159462137661936537942152575269528017251680360329460347367639519471439291492843562441015350235482358957776542860131835005081756239153524790659891328976918922328902661097171426685315745545490918302702308754787833254323733881771629721670757079657235287140352658565200982824619996688043715316625644744321089337538297095166546504277430223131428655530029824956082933893329933680057453427101903201929626492979245627285819885159388996118922807277959910106096631519788665949169505547139909694529942998111019699102217138454751175605058259491653920436342496163536582332151288527307442312339869063869436056202511544355040629068532416171038998306962555501169651672562826850038733983315052666467626702314353380054586529570290669809697619521549883412003609357715578615942482750291277259072475701701929462650436008769277588829787947884152047813708336523437942652155445668504791336992426102520584191942008130223198816232743230356626798670532393500636729994248421248002924368811919886755666715244725541640679745381701228585852459169807956306477641411272119967558845511953756365758455703761167458767867229699341234637363236597495600261076497163229617420356760400200371171119351061513167947846521728554943719041614973213037131395340100394077278687298695605990535366383211206935731364254945679383724040548384794949021718866848571865674298598870998816551757293865155038598635947955089226406215536086651644409289204786532289460525478303369189759362068269500959220516965564550299242695508574671530255515470465677129431255470053860986643652401186859590714523679041792774292717662697058813179314499089594297853652666478388261419878375333928145461035400302469183194118958461462259876864267802060406995646361120486624287696483441179394433335476535972481996602050075839758731653311913162242946977051607908106259617182724516594206597328033492550682498850930645814631714675183003226558622093071576641883701447457488909801267124638318052127086380260934312234711566629546092407482221668738866781955952210736545374100491059734667921961565959847711824254597934876457384619567241619605927481843546130324893319534450138362760502556284325515641309658737338670410178052954192899470064465830980987717488779321555502232047922268442337894021769884379491328790066042628738155802051671695685450227446682651399315517984237594068230286458217493046458030755179408783756931778719052556307439050671213803707665569532129898596866917946166867641532288999613277346461212429924654080117502078055665538458508015576751233851273663457584834224741526462447083144689307832783802026104442433563297088957808327597293974642574782192804963259349442998316291900525104179883420994287206580647992034889940705126168656575539213969412445026355953047436881864871344944100019624341288697389307237195855437466596300618604793342986069714567191793334388972587258995675087957726675262760077741474467162143410681576914565353261335218777285745417012365412769094463776824013804386685893506912380815056330038135442572816614987076844657390013371307200466068993832134935534278718278385334328495833550016572660197387453441417047790812431540735963856717336880827939615883118910560522914971337181288617829892349603004898644842877264701380002545334620305661670098246685850421597251081891663670392808768441946824881033252750223851160681703541294167396430201387074911295503003148926002563774740686549056587592641894512707706584233924481676373456118896717517421689031885679214756522850349843584584813238619737071962245938660909678635292139929074681178871956166791107267319101371373679444043952335651110874437085602923923280111386376322439471393194305969569920986218634788545988533284544434854557237440214946601856996474672530875200627533259050075314047419032739964355467648345829187206071304037507863102109803416900691806288351552190558166553943186641328355554674424247544348316880164456788650506215209728570153433568160338482555736046052953575783852451537989426256317551180372918122921700036104760913931379506330717868566710701282149239220432499963899966575439779478567621594660754497918231252673272210494052503336992331647414831073162957635897345956398484639983893956265771715216920928757394789646895541336087891132492428599456107942306958124032540468219629796361849705339260986176683877825565783196262847409188004860049124268064415120001662854531288880047657456426073502435294484618065874360189917846221988966788784364327163426698498011042436750335813738964441812235736949066967833314424563430018294372194979510080510183098580541897325299339272280903474821864658241418266862184386713022119117280963460692971010953035228494419121528574200518123681543209037177257370250209176112862093536108080698914366049905175550009448750569404030124357450172525093955351535835648242465267357891101084199984139661669600244243822941275130597924462067923569149892184033410615865543910088057133725931864635951682596661490457071775393855327302605714643608618430755363002055442066512855358261928003278775516098774488940926415383669639603568210034482540013463656259224414389918875152653649893401075663725425685565391054315158607917144005124111553218405523985655722528547269879522148839751955109242494449576583830680417235673207860088174388025925830568843612327316040731387832310688825066495164825482439898176072415544454029601420447765967048419032219389536178821802329668467574874460473060832109651571528739682646797533843000385505056762389764295691852177107791987109268012516870456966434512390023893591250841092913185805832485163707380283505518248815157802244095786397694821608742914189000349536155613937868876131310315065370039573873508304138961954813140678015634059241401680251661397834192224061576094368256982333856909780231841123631621630584938107783513298742051356837927045747806770478093983828645314617337736512622838970118806635607143450714751356664458832300826085910621444348041350294799827954960315336332968700282674661436033890045905401760806918034170707933725372537361404821388325056857661971071109280466238710460319147072974606865895395966424069797476117030267193107785060105290261399036604383537856907795515510337384468072675982054085044064578995915337667495215939637698769727744891644906704911416597089951375878656938797934248576740344801476550948857063820057403909322047907543194650594973514392171492977893430618315097594667436833291815167677602323826859515471242639154048977504026017529863537249964352822248917957465648002771811697171833828684444516304129013329571064161844267230115101264065369561734752729973951336401290007509273596361427684627282764320124123538108805976330050357657020078644513310960779255844755527237378305095432256300906183942335640474715166932072703471972386817322183860241939738672065374265834490022654730711964143035015119954202413039924806465416880183006044625189126373770482171901729325143302054987801997110231381815216059198346078691242802666875521396420973697985649508515164193344359513069941162893414879637446414985943413131015975980191923158695233342664531208672442789298117244452161491385851662494167640189340913553635506341785361605756792311004696794386238932934796455194598182860933012601415073846131279972253454672636975738382065011383936643624482210395112829129336693836197824443630002572784035338385837199173253197433834705859236027875358266053372896585806338412073793961338858163409130061216142778169766815566616278231403712792204964947157123607629758338993721936489184256044810454627166509904070164834231350178334016092708847810972338763412567094834475691838744944882549150281690363859898099747283351985145716361186142302640064740059964486432509126358687716767329590175615193008128155163432895238984416797403341176107368825014089416253897391697118104774479608545039942894875495257558626176539505391672942999350965946806695171272665707677086365895942540996307986369897212246103325632730721794270738905880443100410775251099037836575247001606346030746075881939649368160119165407444523980389487958948727934325646343113672015132020270802998646227590104440135598116301705262094846918126272644406652866509973707270290739926620408615871100353095884544851036099941331776974393949660404653051385633979351169092512940842108418729718084077434624898051912808812923589492369665398105188023311470558359150781633410581862463421196156648509403052264427149028551210704500664920342017088312540413616774441978421124668083683595609547757595865220679032617524644093238470981537625541677079563066084264103864422727425292467475347045139792869323502319114049321342684504617313721473300415156495165455810371484571992024804352916587935700653143282136806579128204717680996444459081411678469721631503397550915690137908407739110313205863913769494330878560332889510872000185843206505354450591522804428614399164102144243350674091779616801111420962484152095739016436982260555335058587962870556712792309928024712439825552347864941659664654416900433881890937535778252740963605235533365741691948356859146422691117291765505574788011035234997045869767440305333369132974936946915338208727525750969233167293423710706406138386372690871243293060976205722467121537450481206536679009410148581180637398959705178547070990868995422970282442541079273915857829229424325340331500360439741900218719033915753257690173972492444052888741904298910888565607609407852983255567973671361650649510764606775848855259808836318366273413023463406799533628301728406728694306220185125652142153446783031460956577994266488767333501522809506587674528255044759224791869235595752529316288541044247496773709630617504621097510322603362247306632416766544307556017507643618034985083920515803235802424595322210603184085084935060792781338965009659927247669654257839187508301546819348902597558489689191514351667432309118118076542642825270463647465581375386468455832576934027468372457902721671546427819054838865842224205577557739657042873284020129013618169251800715701113556600370440939667281192272886085903774834360150386397439601458262053004529308918366553568017280373241716592927440610728774839466561893167200544279357944750673669008872948921331714170379934821009770575661131230436004248305721654473862556367212217673809508717623650182992974286408538713327440350366451512003584744395274876518106202457263877680923465077320794346466646546004787372889379702612476030586979110356133198772569249345279851176257452298831536960817463673564241675664794584686739692031224419466211016038437402886352429828364705717281748002020127775721380133593091093516256775660203057486849979775016797403110277156863229092859567381095706247985293758285334910064853981017579179958402831489189555015308938098013196732437383682905045607291592147136232276002333218232491376025957264883819705086447391608202060888007914818404166036343402468529198833589608258180339957452508375253994266498645733921044404202595894963187556666828125556849690393506560317872680876958713491039751164990903142569797532491119740862366875643802743834536457068895843602036779475219263949100802752995035229515469936510000583006098411654953420441155772588555291819094933566980201078286459998720950079418361519989978180027974502962131279452170625252282734063897659667094870057199783004082639314541911158345195188069959732097909538157035183126646786072569631930217308526269198774158976048827614229730278206358242883702680548807961239156784250292191627268381968154712082563308475981605913525389575149911613556647108598257395965267337736523769449468759038351087943021697168291446617945585622864515008027891926512930558107737587923839483251947705682613803928056181235286052413985980555152652405043257383549333165942084959673225295363446494095322401838333848124034159023932133035348919979441097462255616442704328951276541445629716734977680083198278577950023355593081879131623947352991352245748534943478678051531239610341145284647887128194185169202569956600240690733339424181762817204076341654414993861158732466928129455133753822112613173618274552287874279157470781981543086435948241521177753269606446809824632094763867964971967834349824490726163203800364575202154501337857518580702498707608401407356201183707958419299844254605365460666171217490248740472878691155154276844425116571259272875500048065150179287201930711960114631286092401494364321776346575709904557752743281767183352603948454739773851127037844432286217849072024854620843423748448852588534952867741973364278559638796465455927749321449730576321981004330248494111673108632625783579455488371435570562124230645728405386058377828461490873955032627990076046693820777535706669780399716706438531954706126441900355252757671969846313906082210886583990918952821039019554208850370349217013999190422337444550897300918771239736177015016074312845274155991822074146754804540037384215894444783967467534892191816621483604015805636524465908373976029909720171124434228600104736971436441862394208106765660299874340030328917511824148285879736099749108719800286752176828978158416599440027326870987490134394372013370867679783668547047116004224478370130407190991738747025112116615959010650354393869346647655596546534921830831994898688940655035846024547620820633147141863558021137992738530392316238279894843211207770105761975928450494675552198239830025965528086883241576494588714642129689204740536151890272495895371863219492731623828969349833013133516525720211163806862284351827961060197488417839548784144734675816897752372497286222430326020404146238813884172090228505677783150707038870285602584910470950606772059752905338717213112421915980057941969424305689496257881790905641540633849716085059398918165725027066487004139366589078088769400447827787948125860178860048587596712263849118298151096983635025067963344809111725652770765139280285542525691877405329611234972778530638780695016425268261431753590079647433096691006864247637304340094857921108922849863257504483585596566084583331572349778813133688042394562056773760093880787219193033301446328302906780380758805707469653258618842325376296801920869454678093679000622492647446060411808722508637070228795519945753721115342001919484555126893783479304400057724311928219368505115845871833069065925466771402335618266404795665606605942610197305194838784947493931086886264289157462329560272324145719211847792010096934210434638937790795022331882637832000372670196456813772171440885916464836945513267520354519843600058916046898960977348452210159691984971678949922312503157045953468854504793301128188777618614302485353946744683847079997696223398006842757384519931030350199410629235316954355087412706432953510111938775055281716274142001148384018561287789020028242165977107137594186824342524119857427637139721201286972001801045908535952767042315839310915825241758119553939098835962114838732689077322496227347477241367472737747898389914171203133116075308124832252520616232804167474697993593365105367108630220375287767308743530627664844312901514906676538310834714721407595298552718499452279442215746951869829480855552765307047486467848857500237172727381302463422717317760798547898904676117297765919301192527397256300196611968140584567904615760232889929771797548116564508078404838047363794669894863266407491370344094858460755935896933774167856909567488569173880471594184385315045704311705506537523914489541723720605111316597636324372066341057543059625997482718411719900593650845924483422523623035512632342424240034094385067431868853901394523565464911637663572081539928811824300037826671283632049713124603990560895855151303934261329004996118362081744506409454835812491814655533534267150785652278946938794346298084661074261448456466882623010082832915187540876750460114546760194439336956694903676451082194764824920142571014785072133993104384809346850426622849080370659536794759066622794284631814352778375793441588008985699173773897863679584693253572962843654396230328015268633812529639490271703825426949425841266169352414886078666646522369664329561894343860365307386740209075517598310860857788496762773613432801797014073111209552160928585990308835391084445042840229954613496508122810059955902799539838417499194761982488430428894588810867426896756863523160848332212607526022538404045195708366130453120741840983114015470732138916229570264562278349322680521732058779352051421536128398747175779791527805566418424765833110171283214582456102855772190777812534037022131473038685756190589304667099261121892193011766746534499402582840040864771047991173157725173797881636490107627181315121948640722556784126365851302536982912890808593440382860689803174974056224797688388528567305095983119002879323189601913920596132080040629727384233362489044596870076248443251310776597152588298028633102662997978597705067292166659932766106285547150089213337984205590616210761849853041980468524238061456611489874375144378998049101562766600637270769472552570587458091954495104587849911956108351399173370158967011896308402162366420502359867754681602277753297883424863655851953468828382253105502753847688280661534107841709179544630465939519269103862816216031900717599559907890106894557315421674737988949284703109198537354265955312320801868284460082687535530782224825519191310365117784222906982230773789086971329568869217638300323187385662817084999192268916640929027878551343395909866622292921066312185215348871850935141420625645862833969737812160041273614875905871709574035558605080953088113830304915180687893532022920469434882917402707458085245710933675189057003046082379231040538198625462967673540054181874736708713427428136296597780399476988953398602015605280213338770036436525091858374623739515208378196266244050009281929058501317839245137629412149600985915977757942099476007981514385061572200785581369406246819558936061691641152183919212237335813793802285947858729225584651004932488167615351516343978219080734728140862180681728640853628696550833998557079920332178956729557935276501556810298303183164062682058781833002564495801626437873174638183373932618350526844248600388652290291683083689839118720989311020029261114334667023091669207754894044844757796579461806981323702773783803933030605156805884679498065325921071242701148807334874739064337127905747371776425682355823073395214320702127304863948322309092679266008693565756397025811721611345939990830605608933037563650712171798142735807427896548743913060130986998359334248869893190848710921839633625797253910390333636045041392733411220634369933704913020453900835218098261130566296253847094491050972694001446428762266115782638421688737347237932832855896424645124964587754995841996845272604092081415865264265336510803028330874209367492223154475417107195300705529349470696923929380278444140110923104093595286626548273925791234471865515123183432045456242541915683723026899806523731044887404722090688397214461610657095366217767567031880234861291487515938159408147831787884611240482667607945082781871757300161222497517309163132419757120054683723848465464493542109007835697234758741115801899128538071229576941419699356338498243169708887842087051356962626687617900591430344894569628710096936865874551141426564978314313976648109012893339016373943752227761636563186628037457246049773722055835488548601317733460158598494050221641710324595334013943293598124966533469538983460294734754968727235076397727548303190406630911420257402066649610399233119137862955619622433607733794524268737938657955485855683677736431228185967071629577715076366789490175786778837999131995663102525479367305418001464157732450865684618790405462016361315878037451861936180093963853957130034298901537209592092260875973193545491406870639944702681802934223340761414646710319261180288960406480737311558635541808795568545713408374611298156196831265940457284190765275127662944934838007703102849678039954075235582050692380440788009246672773205660577592944784413138350813283470986734119701055013149933842501292740996845424728432852378720453985619500627200122801214730024373560210895759285014858543885759136071698890527278273707234959543748809756881044879000624259672310199245115528775125346225486628454422874518084977434147378260210498823052037397053529490330302740166300579950675410631870447622892362223843914898690718125213910743260352231249726865104966643934319968205050180887431187901973424106274131712125285095817871830829601794491931114035514787215281056730062725452227060954451420761523063469276832114397037778027127328338433305096526212363270895238690482077387917379348304276075371039228832748251038314584174246723455102117188824065741567096711054651121092137281638566260261610313062375693084295874580086662735898443956067434397650066612585093766897696726625011000795862671557781482155186483447677382121632710425131709323195731053365731867235738114324425243654262233436110272687687517036431267698911637166517475859499462351102169495150042578240785794334016283519003352745054162119475269877061418286079932088418533219744634624909355271112712113186186620064187544062080191932237658257175917262342318961013640940392111866004194341271489202287357485199390967807406925863617511950712333598641311180935402846068275843957624099432423791223380954853776688462050275560600776023225586019965436217472794032510648280348264419056440335951017858568189872358196811607395752227834939028659518592084566390038448139982933105307233575346604035678587603338802572471380056601299276746616966875964349121880168949857268352051039883068592167819863757241713772368870122057932793551394180679336411685825361862276263688639625235197101192154861406348400518958413688830985733011931295034501504385406248467551000316845269192137049530322797345421042257359449700999852718339928622780865349350279295523759289820768896367002024816707685464646428914778758412296590711824028686128295645302257912303772637682220289968618280528055798159887891572581931541350029655456561978576341690146322144537518598302026439991680310103236694808514514650492821701338739983519936760143991444196893290099593605336388533569792743633530755630439728219569019541683767793442838730752392614566789180520635022892223775595087825388053883478412658228852570038211672315353443686096585708912982273780086849143288743074592370125748255331672834635622424667785238848454837524153294650388627365031146466024762259093765557372915758869822974467576595442853354905093847106867509241443098734132593697824407579527514897554513641032256460333852225476845598194737048849482492786132768275406763643608957551252526377141743120184073061422887018603405867200886139775968649185920132689836390159054844657771034349521819971331375404478078472269200819777590894182893364525293448906183487798866179481253330733803549270323609372525741832135731026881358687746937123423532588767515002968477393256900378655124022491693990941653006668691495318262599168522680563114005698838001520031282337862417811484184323273449661227740063768825509663827208937416690400234644275996535396758659511381665786894513150701762691496929846465647247443561850817654211771394497513934693350569908161553062611596023212692747049378944037914234584880159984523836445818732091207540394506410908679290357908524318805612296370563152694780255835359927925547161695641152822454148675101112898841430436265001555272492343059113728667486832582092733313776302643040396929580653332872092041175833541487692765019086826342903158549812677643012357246936341933667689314835937551047138856026339749095101287094378874394849576883383186708834100008982442306355965132623855551371745305489943060133843585821587910184113177175648119613217702849397044985662794327972466065831879863539426253947752952247132284491529645633600826713823332209271018123309896730419029756497582321216390530065213810077052648593284298088464833448898012008796816448774436204985798347755535324496189556275908571828877591120874980125344746147627264634137386952969582620619635828505457406777553588718915119810720757392611480794717785292165915033985894163527411187257704245403954685032783369081213242148255068769562314968699183277792170817722343746605304888146932167857508404027923265569215237095842223678516912593788605000384671145899144270046363381852009342527901827988346634417062694674252771993064165600399743244269745463463113815088705533481828828347326079155829728583433916388038897283323568391098819231101210896214828993743386236352422525044710356498300747307377213725524960428379923459413522308177917892378303276043958781145461093884242223900186325991811829164847337028458990304353309875162664191135526747698274771585305472574708077631902710808377617587869214565388452162941847389684067701266703391105893846884005028731908862060205416134563445692203068190067841494005706950775495370409485443641484932429275150327560473477168033143309216906263885667153436956084570843903013399787479178358107529822743069898079210915706353830168540792032127156929160136190096350445676134229622259715052452382200821485735450661758161050456003943224580534023102244785433985488090863254206446314919098712495168717226401819939934140472248618846378617452111500914307690043016333236045759410886806654995323774024573073827049363820873325736506956279706214931694314069029082073075825274570919116386996096739189186611688552407162537758287072502805293613115615685988384303349632275209832518533757579563722565374154550357779348619784903592908247360075553452475735428111218166359468077857195082485787504591759948100971003042072967121559757527665750736096510830378663176132126240186715904812843101212350053968268066576526213540783998459947143735284681104969928381907379280349096231254855747277207694916240333957289997842253327425223893606571661659649577492521902416813407432355532543675681892054434013410315500243840662414786908304063674081607144377529311480895603863802437312424625358490648585847677095555942703549707133517340724066034552222359683893183316310156456635745309647038846035487529983750895755295895845272563204491737170659405462203573038123736369947686404763243917789918532431732773394867416186279047498912807065511254325599773309781844223415124291467190553228892642481787526865743337844702266573095327420284755009569724013255518508650066685207814642818495287999598566517333860450215616524070460938348493165952347333604298354112649696149905050353745295688604019664375586959047341220658708407629003292849820221704895883059945855969961721689160004404323338072462484129663076466759272956754063177344665236270880029240075552829295528581542474881628501009200577665061439000988440260711226126067044394374174847585900990094064256766125925665774453673006816658109703232013452075958810241735609041038463361856167242741018713652995940400253792514932296579657562835644993872744992790673210924128941432420325241087576996386303774381194533904920752318585349744770836277403533220928943562157828990178076655172371020329052683204920383615195617616691176832077596077275560538646455559567996828799046159950251722830496780378068502228193576873709562740168857193802363654197638572352645391421158060783543432597047776059628209618307227378549978372246067260437413053808879033124375331208094196993922025842169601196243676402054768237622258826289297629462837651190410530920482412122443511902276265610600266065915928251373880272359026912734716602027833474161636578437067872441807536873280204612014347930415946659517238954981679711817589715273228053136607618057420134303530103280959670211030039755050546825355042699246310244213155795064352766219170885266145117345390503815719405071108126070376539148903825308662759518110766555147579819641620325066989209025951609313863429248726383595035413220503269362462443654239321131239360683302011182436144868939982751985480814277442221985992490704547156164264025212006087940226178614502409254309501030674480848635969009461422001994414382210386579875357995366565960276388778916034611656910371387474070119749399436945608548513663255244618171952577035665170828757452593398524784591402535242128193431526633963245702999405259492573401680258609702327148937251607539737846955434301444971111324375603501379628867983109146077726330792203888774393483133212363309817050823936474687071814282110374120026447508318417934472925630623953599462345126377362358271999840403091617540883456766793696195182322488106634867392783784031889695569983098303151234681317846545132078253234998331595079341665218092328208097574222541536080079578521905290504353319709792026135906009714871262028330583049894424075918177293066149049996686852487330293623019566344702328491094808951207212606368419633479197553803755898091317348073617999495249100319482613734534225841513997021017723123889825722801779413312868568866265324538416569251294796574311787479914128833237820472257427306201151955647867847052667868033911891308239733565321380492331625881088091826968888046392007428565937349308746727384701279712763874580078492789974650899083549139325800337927379247988520026899767162913479462755201203322030833653922102818417933538086616572573626457205010361069595063652668260590247526629303235853313942908037931141707987308573475872452954516122347862097834944614314662424492539580416868564787544589207552700359155828836862351377599422905946193429714526256905442590660489632941929452194775753345260691343714104072313536833783793660422027105757375968980029158811013415163479195899770209122190054700615870516720634067255008343889060835058769699084649027008888663101436128536880479301181275476839869211813769720757078107259521215146437802719409065485970392567370660341465368072036969856598637273991461789065723545912085508922862276323363546913016206119410321760918884376700335562851648537851879445255729979090631595201982310268431236203158283664247870607584558968769444862527290598807152076193307855970250872786188046924002021004630530221485371069986829905441817181527293012884613045128590147888168525326954800411219006681801832378740067231907091900250884226271203423276088257669541205621675056263955102817647857046896424115188255641461781578144874496698780311575621455016171129340533197378598960105305045330695674644064089941525315006919401917163139284962601443643923997629753744184325134181038846700236827082100650340976448462958636216144810268849937786905021047329630852086512014004072164129987447746833062784493870405865586046299073460252154584004102506455669341858645366001700836815894289960208160160725545976828299199254321071557242987157944245578218364097529818765711039227493355124437878843754315173237572558908703268542008398556555621996734764840232389755945141945912751084160765816553647263834643949456853065512983975362285672327762616155911734754119687176029126274599734085481288305404634156836027339303069443735559239903328384993935765362817069069011969989003873083917177795417940794017607335469228852990118294146134335588064121821024045955157931209573388382712142475281639039797927185233955426147460021567563196297165498067462052102109587093516441576973993240291127979787458113293003112234060767768202570429088623179003437482965483278351110766718609360176277620878647764956298572798838655298155424418198425741387448830783767776916381421676410673881721490730335641636668008470242008193682303092540067915360990289796715799564308138949913475871267966784752254341523333002075052814232837965921501785182568284270783818973406544256069581639159234070715788205982174994582151712035138334665802849100841231681677496802118159471295951900685884312429064973413463254410556449776044417989153080174670176635230362581972850038295593215894290324495726162960943644227605438765349091066774106673161488951373770763179680545940329420195186524257462414427146926358999535354385699502048282391750605231453362525578889474466732508474677225687233573560109600663961859254467938024189385588480708572044653075002043475480698114647769390031664100423326816234142933850057085156382571747830346385850182120017609070773545003694119971715657702895399150747317044465903848025951184569797445271400468936619808727973026409179478651000064032686418766897652512495498653644726125195484465391285330612832293779992018382304980181673532876698539779125334145283514049676936503869473548563051935043820657439953352561944393590385019047672992409293079073715097496041852622265439970084353787991627577598782291318935403198991342984124399831523453191315379391775831199693006587216495505150383681496564812448139816829745473638541950689274679169040749744089266516288696968406716885589046480270460193497742680493047810881333999221158742080576351291151306991790044717758473071008538880467331224438072618245148220517602632296521668029069576927148896682916074597821751711857161699638761853212356874021796628360334150791915088664088805981056137325293055299014517645339319104107083202958322204072862092164690685545448399342323774446503438554252788107912126756387862712969317432223197984194540119467557348621569960047763482928257512276466802203774737406029153553785357485995700546718005182433179757828059530499882480591883832305114341796730162272994153802716300486798126853037527035180548234388993525497006626708147796879209177140029544934705542214889842926083458977840725636694756071473803826889845586161887518464426117053411722328808737916915981162281997200223162957350049732003760254404895745538759346836872776901780185156807547007891729466865214367273666688147495060860338743917148115664034782222925061414491837728513027834911971662491782118009987536993616521344792982516445000005632489537651305623480332995628657919396086619509156408257536869928422309142855521548457445663784318061734431721469043951579728073381009236665232052227915204431791082859853934013499551976072479524103215497396521126454117341464597465368794857515861569657555597207503169875225084549466936247340363273395397542428088109791090692513715281813488658345936281436722933482086564937631598702247872020804739957551647540557712487825252640699405132212675913921663281250884152405383837283753711965125655574122144707818437233711969498105244763629088360389726262377308073551524189437719532236066460608463203805371092093936795559955301294019121298200388336916714215513061247953557756090384943893705450407410706359244307578508103898967972070961569778247847086484845105678508840176974447378409055930023030640163352590746624015712881400060400474820760907325326261512283800091975969460018124251577434242601197074513811519226083469766216752059861505736576300625045127514917190163426746026217433457859580637142558873976480806325421580397622812233446407830629939934433061305359313803206637901355288300199432858780659908039930913814925799514559433881925673476313503396654890279953518674754052289943316432144108121923334898968208770249494685714332378034212879415798527620147249180714653540643690929983832667126487308302743480565459499886737321691440328326248494728678522419761077504021123185368455922558806948907106400373041810244704431056315159482634905868743742034182265640062149173270707632565711310417824044741296310692171293015736945364076345268282853510497830209910175419444228536525676887886950206633253423166661863767643548394792719281768501549136121412858840562581732668669343383781760512659547541865161429679332902485335505343951204522166507581578188249280575697716317517685678861907239231527755874975910005470139145587973327566479519873571597991767425008152555162725499721004760876141376905863570312586740541313451177272955069835643950241076138243003477509809593442056974664270675879851775060471084301000077530548937355703370824855826535740062470253484569596824509807988763838786341127086478813204264586540817672263755816111279539169526986005615733670928859270373256515778038502818640083141530721219669205371654123168342821725549188351456078911176696683119507601260729745310839679285449344948255165105145013547368736426125162095293298085387199191118378071885863392813994523855272849015933471994643026976170119396526775543110620525083922501294694894186729083823254876063247720016615025406280418795972195156918726211406520566011408007269579258652979934905840612996953850070830071121834473642926384293823346172310718512601931519397948940204008502980797149592951527241524860011075440909616933299236244236115508553590211421762209597610152492881679474388369448382156103646424528761682161340130473668019194071381343401282057008725918610786120377330734782011915884097457483430287067077482413075636018373718933717223564281307722975879752593832481730611602329330731198447561884188795490903905268434073388729909094043660436252168332375596677245956706014766408149343020004751309124121971810860706848327355406142695194541349176209130712223980275715230595275747519322808470962932481823221866975568430963362152116734614980349339853790455714681924173624297042959114190729808490828199829134500567884326265689705125671935495548540401272439579635587049822786601414936658978801395391527780355394603264171639419299700718792553596591333234601692723546457927493020658826914085458601360808816090141750728139480228491186234115478851588875846607984965026544830510282787717712689375178253933773065013311928456002599871984170454346091533692854942957569969887865364527553365512018171866773414984651698092690631966976287117443512877940057478550006503095398360850176086739775652346527405816708901691668194832561731563891922471905234552153121796961022769523948158198486151070217432200994014650105887021505072955696786481801480878831035961745483333746200808408103211279831661815668421404461786152169065774217661655737437366052685317282829935645791496992255316152609685117722248229883583712833715090700701769113682669289384941219753507450992449904475428794923450512035005406964499986401532220981762251209001119268770108067153087681536978579434978563099831624397007581657752183754319448322872160785670004387474535317983925227492907910731973335161367289519100926760773140258629448884514060451976550842397690840123627634040408438261074679858810554785466370200568075566602493835850083370423459106719695726762171881809372397780793310028876377264646023275772452733792256381563952551816523689629252071663781401867094846166028199343191671793229735066420944713910559560477818638480793741613324240354335499368656366080646148709015998704349804770756539919256725341376247552292589264066438424229827935164397562621470887377155778621468560543770128288652292373631852960614214470866962729876393944138133128240697052610998322420677153527974382573252828837206222038046049974969536127405594884608886404582846842084084017152092255712470807227536866967202495305151011396135044695283943198503083066859901951427646951589517093472798369550938590883125323284427848143533681711802260829664264156695659441372103846824699924914096153748578820897096075890338389280004895878628430455208001514710213727829159394467594929553344502479992118419504751350453738186224508100951372836646123992259937469197527676810660201025097542364245957614915305497329100530876951112344877726993436826750411551777970920158916447194335308839814833190371021984870204646604052066710337155157236268909474640826353878738024621586289127234262771165886848790041776778384467530168794639671858002756710759602401106473301985885424417395198519160947575195317662656529303707401320373974084068554857710470744185688059343533028444859643220751669995810953134649305471481295107950849239338478536699812653286426785319700771518278841820340063117565359687470671742934209467826959070045892466113353471479705742184886128720223722857420936725371608962977300379327170707972383438747842519056206435889150896151513287098033627959474433494465690556013657137249873398068853120275243276648910205125930296451924189139136419118847912855842010014764682773009569964573198901079034789450501161714430623638101598093358604544287881724500649612792308020812100621599635960671032671707892063342914796252684038852752626757723723880541827956382423468419642957650806908927894231732265491921544732411429683201945031991713314333179681289862857014408209989762158056267833751857441802780857780412499968812985726909724244104753898207681821249561299710730537459396196004730243626881624830207650320268098393571031930404253123531279835595006304726730947036352608844796496004806801498988885228815779417473154627419543069881920318659050950970977505659073208919484921370947042072993683271953437120399665677366851777139045714073306083749877815091280803977350428227095198041190494679258950380272052591744848711936588486956421615490506461886364328063225911887757566143912738850866093607414392717778886720952464774779971572516298497744953289232389952619703558320109560123978022415049967298277353588721499590297954420158966357212946057925652371852690038108199856656358315047124530120249997062610982809764778662209247497534593678159225646934269338261077178921943717313992818480890376728235201324104852158811328005873236512521184929535937573310254128594943112094357401916943973042715307226135572360601902627851454658071663741671218938052342150268417943454706477539488924905170928834932590179895120904148833909524954689357763924117592692550830747116847934027007495440373057658913734851426694858036542980668241419231810670603175632235340909998234752346314003216639238864181224118354218490783372558738010838234858374649393896118790792228526966107438017690212152410116469204771647605928532723949613347678334475683739807849006318706642745567685009399853869380630848368389632676534687472447843617704455215255273839860601712117132277611805854542085573797673349020163960758701780229671560545084383026125275304172753635688078933093040658863945868040173960893511623671949370868339814643541514509167509332117051843215423436667811349560542492419092367355674130731978144899084841615796791482562059363457295224320428367212706302183161102327683652636704731235442602924681742341137037481373573610661705060679255770377358066877877476815747770903307997608802308875908534313185645130673972561480571663269221332920471371800112617458475406675401461244486143586378227302635951638351386946987278338172587272112999633088774766377637855393694754560753777787659929259514440032585328425740595204910107118007177278263803305242219520289538498330138457994135590965584526338425283448468654199940993230132893892458829802929979625600623613948100276421719659627008316437500336303657378478859327331368243548416693778407428995850054154454054472208459121121077952931293816501475444504454861275329844322317514045015346285938829316875249495825942007110124170867775992393379419061436509969289053031205092543156765071989438330276161435180211926901456519557196688793603583569126343073335850798764777807788450466880233075807534026172241336047423734064527362923960674665433476185493668067276706397257046820344348334921263219517550707789186483066775698307554630625769877155076538909055048601800295038418927087133694760627048613277691205265675367336097766898390674516804599675510530612099544802139798840234175160718390236706444951949524441922948235201461381609668879816875014485202216027959311197766136615705826374108309199349110448428141475466598727265481438693461246455323985797571866667496513810448443077960794893673538690929840933993547390469793589763615150385090994819677273338558141117271622656043167910802364207547724451104147220700939143372050217344427717079905016401071769413819130538423211751645601278745536648145329592592582958015045394184194950703790645958481810611177163073529215192631454292251763500645813102304459065486528815470241518777326230698649102210578357640540752235857234843516016565882635860663119022497458875202493760371544636744517949098200550896287827043503240421573530508694977781202244564871706630835637983963899645685832221252131399531984469098473823142083390934782211552346418166730654439997687890290248441596130137988831180193121188504347259863948425410104452261264219405247740375100996169165106974614504043480747336845377272715543300104469828763966579131475608871807966576373583584855557414637949318573317821778684414603521233591409976591108938225231741573849279891242211653056873143361918102858563078296284593882619149246983740095988407454268477853303512094827989282925093434339872930313340256996975577452365796487810279094702803823935112175497530758317097890084552435302348873812462324596683579053535080238454951032181970543581329825282917356615010469576124331058128780672885902126791870821571154172864803317520362420803984045875134878077745298017439582770153628289215973954160142223568324624338241098122050996295236396336617716702871089537851704080876351440684376592835823275343111921510478733203628884670037829887501132752962289665563812520249912217619077202596010824381555813689908548712594150708616946100091296352020733723404265635365698626706454050224857914085187971217476493023194819900495517623613688714130871352811835177947061484013950243673204793756498168210481062387984063305479790014287489535630615463033506485322026370866603491665207651498516218075742918399652580118969002357024020182140857108050942589012525078936726002608791211572580125561711512166107277693651894391463776790166015395501813518608833042271179119099316515116299074163489242800333586658508856965528843339585064730713958695036552907941905211942797875234609835371953079062873146282710107064935677509878173608890697760121210124265501995326560607505213008551612057860784520298508029116277561294383389570687875480597179082147265747134165308575634127506348915109318947068146722497560370322006886345505816437468725552243702608556962596360526393340873868949150830654087537825446853694516888134130657922818694770546501503686352667269049791135272739691356262878882990253317285891933338446018310477916496510842177557810614597335376001730331630035249299751244572388862609905172144264537475272477901861459763976191950936208029809471726760805917244412583479829266066054814958964092401082290945738522253771410222581898548578901272674620719478426650915324276889564261425403267974262508592055084259518181676548606648267361986416830258639439665517201753883163813235146989828690222783171180510916905998595853157648587573160855757050246907760083056826150049943964651885899583938871345550046507032956409206042018453238169958180035342684683727746646759508223681936925444213613559862177854349655156301389143903276561041806491312051809333076252001957051748853890283460077675598722036779421769972245494805185963884681790658165793597099124394936458290842143468423930858078058919096068354138650782884478558614479483027886026680659688048934382409849941960718258483477570918682629605240548594077343054304361003108121205449048706712638806237104753568821149198833704076769918017324870369408600043017759681340333277378057789155072431934387773816959780583976676428252443864770476273026385439157956641346900804305551772212819725289937726216151163249672884982787138182963035693535499418675314287708649418915514814414978152103334275101767600663128540272196486651136550405717831306323352905873047008907032247383550565623069412118485129003989832259798634831620878934019060747939442898339493195072426981847869798899693561452332638907514357382847246117313067481451483942106815507927991871907398008580646429891232977074517942579695810703208303629853132776440102824665995082059704177027232527636046448182599656500714073464367771172063831610199149769367869657958630441942131747004165911777447965746751285118229924869479773134059335092187496438726257360837010206080850636647255661766459748760886214218753930483578502579419312416509062191034723349835757707580392788360362273189585270408289707631543330919382939524103479389570408459756459331457393896020307589898435149614688778318435098051697569925348004322291423784407362615166545549457523844772424534470901526617358629136622403866995457366524973900567077011576889849179992482999041334412721640656440394716984135845423872655521101229299687797019267562787603169782474586421230107957609051395729495762367415918120045100578195930724134369297112766845486008270819187328337836198361472388176972669564143506120530305567905516572550911536142271191797027985709300074803882792459262616095543312314080083619402454401151684723344011380705570349688180482226448518734402956876690379815683945098892232013379592689790589934695252526076137932099520338227113094868368546719135469117596291374987138551239442711490241718720122288786878473524014640443176901063898983766816761726519411046305048441249653903527083951159854709793626377313342716977506301772908433629727112396580595589895997801134923711534334951821984096667839839912264692308296934629085173967581024410989558010058182928725226229954101318559008364489956849800333599027037276269417475890260760777348539882602287464635543102800833290930471269998429819661671436694900615677803947919409817474457637679652486632834896920670356863548017158122755858007034171937948984683687158093320244291931773448742799376126833399101678865225180015764774957044716511155023699938804280566413184567592078591971615341821467373605309894060257960453588589805767937611256333967509712493337362794028972041927193570435246836271192361154242899714724810984319845217435818222106050207381050524831494852008192824601103331731336501755723905610376811129809229272024855527552623838884341609646286134178724284414530075944597979443618058753192425906584326454182477359263110611351067773739653179048942256378817923712639953559625603641026640156959999771868819593693990918824927015477179296652725707220502871563462910451373636486604485802630472816052094893622634684002848549350357931032382208768362730433433205930948439996771716104918188456624988097668846095422949850180510454479705744066108071184966762206692821375586111909428221175289713732780518336764076226190877745512207861561989719320168378999343875530075588340634857433276744155736796692515410672132994228013251636990324085167721533526197230546180260766639244090345437510986597729883721654608886206981487145759895396316326657067293937754622800770673303651631080522479135346526087916547090214059733863526013406752659440824917013833230507854296162227896035776590720513487683346538051035910724453970675486661147686182886180726109934706262945162940810872134476182127824398414768319629637100244972315192727181407473139648325876876594217103342106867212945380405156477046077379333720843022904761420454836035400995944532393108071391829360285692942657802653660424109556848330376576002581464195466274664237971885292748854178169044108622109697775269908850908718005765499694075192855513361231752762430120257150058747111091026314630638347118383982530377850818845423143703615144133860169280650461134612011235035041366223310188684485599122521537030517251384622263388325244459336563246869408724094474190048073870642727329981332796076000763192480532287771489833683416776462676306008330104449618353378212848401804523938562331724773319832425269527236591671923328123279481367626411628589410028836256320125839895498355551034350711059030324504835329621162226450344831627727803460648622105105979228640902725903244019091570561649574862801235528277985435743041211022540060880721593540504157013807794944394393040965948204651181322946899704314359849277198190061863396662247374486902982204921973828608272022663514838861583667562014151584044739163570967214732224170918119513720420400089290114552709685291905155430077418402739231876820047773993034466984041718745501901454665561708884628365216948803039554977753868379846562933672728996258830817648501373109306331082374283256550100522894269471680978583046746537280914658189747001132440657193586817759901499806917401347218899039876735770644005228419022085784617760428474244128249762238268580577244672623792229412678190746044114096407013649475312668843261429474474762104018519162911075100667657657593229196647952356433348297740183925699743612487799838085332986581272762523190823521411329935525863841950211685411077993928468131934889598886404802531632809292343110656955840862871398321817374069679201635884396391452678843714814542965422883875807296537108308850688756965500341245043954552716092845243656901754961093137187109298039077487158513692591049633296739585688247111213833140112865582914137833928132711493265756103386181963137979207396549495291841926708599276082317191365702242895942475805291265050804506755202364998690723790169359822850207656176897227844671834013293027883196223825813214703657152119451503944302556098896320227333083107371017509181133239876135342814347470599208754802218195130698679128162458101681225957071125950063577936445220824299454876614683227027404812911952076218105747398114893350818760158596964120020401282503487894680320536629341024114431962413763856658978244979992233980923343511785326394146970745559805118922580190465896192297998349783228666765719934369734570499368509393082016048132652401545547644141886535452196656291278791607014057022996480345306194035084836115937694452077561246412894433227434728180833281233059439409946459310186218348894774891330954534352748899881617734638846250995489745120647562808429187372433266173077433197369386416993849812010942557430732009281085113645100470638168679852674128079301813295921290492475381241888816398799516159295706988807931094050939173341318244592172449498533980574254400502789739021940926467140374165940411471968316427713539467793796342071695005668681550649990649841781445017693912685695903029541428353703002349746173076931195250549104592342472735681730179401221895694030459593998518637309763586870664056707098450251286192717080790308485218923212882690714215091392361565670251904423913265365274335413576800958904213633862902127557433605449565832092320480762168362341067373815754848831236657182756441355682055974606275974596572417540304402527412427003534895626526339628340246491060825293421913043296171745334876964114739382102137259191455646324087992005592939322229812040089751611938000115477572619921236648571576998590935532704181123742483714192701465179016105978136936446932059978023851013642599264495672431552370069208685363104652840545439729381948135774127956219284039727567175692925579622132878818510263618167478207882309237978393502037952487713364688375159005227957400113193413207250005036056096081666118726894234601800501360857723283359820369244153064251901656992746563224589071432645212178957888704263416655088987066609914430749639438108581833411225055390071739651693308916250114315926662526979346463178029407954965706512705716866392162925690675006419249752761107541692065649287587288012229679602443021629174008734100438273900980122465620317914440940411212210368238789059716758916951758262673185019181012380352940397849582349116851433957874270983343929871888741218087029242441202068980528215205984498205916572413011622964468718087045718218078479799178440569473771052983777248216033325314918266796851141818959374382573766350733021116510938337885006336172577655670327998124791376649909064007298019987646235509261220517968275200580412515698287515041078908793462431274766449686603619841289049204716218746828024298745874272346417542070294565084542916221741431308726778528061082277073674107036219822681982178209306321941352497732331622036789955051131090827000172700484976541590858321512568403586221112543265358434023114358796749006469851828409144528473034107394898663344728504551781530506404752136027843872953692638638016521036767328739509914661282578051014087393866135637039310980230552545339255655156721309490778096833437198260487260305597145875442583947222227270804459078691648119253199552859198556880483583628719431067074699136475757892432489742492654755517543974497057372592005091549021675347214736470277133445062777605121474589323711513700449748417077973782906590030656743620302380937362045876066223597420738269903654187112017683688941100987158689436763659523199887328662214894476746709151957960798886655949265229123088037949567625960290143279411841651395123963663913681487651025992108555635277640289892862303046481503415467420060041130011415294180696054370820896542063001220060245814856113479460743055251378150531626157343118504597824972328603158179446928486079961236371373178189405697924146698791899260217981943800898640979550500939586317242379587870140870178161589391715490926035961189006418166145310543076481754168991032002386491448007308821462329423674993127685538746248983453635019750616712085479660957123097843484028253015189494120479901013009857744550250218129842855364351241197660153259946928407254284839726366151603424919659265168511928443564064512124877989423003071913792847042049558433844895116709065820490345710686149790321363377337987335694296210909421099653930946431358778944017680320087844305302778174076680916824893560332294580422951329585110659124629720172143619973391719792900527727352261741028470036128389876535997655269228516733167814481392680207857495034782084640438620757024533500395978053264839829317400289338664657096252898963077343872445776579653396482835651359853568856078729169661458686658651923887742596706683609265838405847831149248037352815419742194870704708793146485390010435301589437625403517048447563871455747538396923072804105261591441447738124253331911013874105883338302528604348772154978909430056215768011229050266716480190442316384960241259451561986144181490899010507476157710380815355004681970956471819741252627462463355322601119991262317666246466411090214734656998591104955985130940519912785869769195359777068045905197742529098267109752389920084687027576810424625751665478137261169467456634475517098038372978099072352734751555960184207823266323971763315052847339474036138380629156588671332066503521703193144517577326021223081678191435916773003137203733748753827192030092722828742196133480880741988323315209422786840303889798273277825576263917434431609701483816991817960519166686069264129402033096589118807123430449137068525938959478001375554131067631837082685650191603563789396325737535983546498817502912566731895392906886860550976345449218106845468527383016579107155266555051534067537146428633359648765816912660006862750294620179066054591437972920025700436624605853581383220780182632422358902850587270236651387625833996689490858486886399127106403209288086459723497983932197268170483086097806502882981654398826430168048191749154426421121637204185812259332142962188825804564056384188874971517780234740383992146382018833000886926196413997565586900332663393837319336140618059337910681360263568999038585968142922985076506595709476261411512426222991793085743183478541902295586359260479874430538244509611139635423805139178786393939523454840204922110114402867504383187183649631159333919025825721192911595947913214628039193464191061227788047492449006376193775827207024398984407122006202457597562841745283272183428839616191366602683621141300863495910023044805230768496929526883210785560943017010958094887496080281665084378279747145604592764759985078693293945452200184153710457050614496617113348825983106879377316807263690644002947227311399063771675427660748010381144717034487420461229514701795216566247645693881629508433282853903983355029592833578505999545775253278719895393878927758401280528014641172361323227936916833447334582341103878203406644489764682533615776960441238956922673769859377741794961182678830185450304325098323832149419820641789719671742708235494594060858152902213241324118788441447571654142566315758823670039936932173771378372433383785516021590321352971445526308071230018833092185688425245478907267553532726754646890155532008575064351241029506757062390898359713153351632786300895248075738545847973891264515989085314669080335231745545581919197175450481884141409461369850519576613282784423445650163755247711590337409616609196318333906851847162625226142598202362438827342285622633703193996671187423812607516668070858988104952810377699055557260767822172785307139096921004851280369274755059721144156930124051999336963010573110836429074409466092220376270306541026015922285514525348958832954378666513027048963692320920797984112737430557193171505696274486889635834380662490479166263414533441557429755431550902482788126492130720196390960308645888707649809039325638865074043106626718165419551967699147029631403381516128736838115864488069328051787646760878549041510559138564304701360534413896162163116223534093630685478846082891289842146567755526889207002241952698632819429081900460450311263283388318896087778155625226483611914007237010096816927844509065693705046490548630933193169105921593064962813788418857320039534556894435085177216770494651103949854487090816544663836597185786101780310990348520777835591690606160745453427731141854016132061165692389359222687295008686905796386151286205746585672678183551113034811502578049291366419101543178064116797080779035026851727108066938364251013611900488819586073217050557495657980751798689339571127401365360565017263860460953691183044585461777763495749801825210680232991847671475995080238137790406851498430042222167774904116458410054676366795231456713094073716559396686442866184376150037590849886536342059829625960463817624472459603269804873201654142046908328450894048017908347217494419398625717726332834311186120327842898399841617665712155682766409445863808220406847401831390814178194586910164568575404074589690041199201248110647808077331215883096147092617571935568819036952468839815496501668721120330732202184672844680331562726174477852430628956205244328880239612619962084943120744891681320777734036471389851828321528924452514631608249170422453883359413269569315289615567044235979680955593608784980313025089071341301775635379726005123263508523075219055135776216244891960911353964285604327709691748734361131846662150284105732617852093151211966931397246150105370095621821982154657190677242785081396996126886338109921855776749256763319921654395793044832295884045798015427851868251416101639254279769917659950893507388996852765949613647327532327180533926775818171540742525770222839058128343597067013919259872551805320363457563091419253782628066834181036410894258054970035782383662471632757634719231228534948030098659587236629373205050112728158410946562083561725882057136438149687258635717300067867597993470038183709357298557184914273083163593423020804859280740787259970158173078763662787212286796366612915409063017604776320050890094023003803341657704786590752016838042509643077030203707614626860524757065443917217699175862444920531814251781172120479465222623209274903973815946989395606165931717730034398751995880092764706985127653698093152612676249884827345901884539511089277562028222087140338351267195171886913472768356488296244751123716504020464786572394039113134444586764148127216735759759794505418414472516876942061689511124855311299368737708379375509961211461861760997881299054512125445781585086506291931668001782652863859344784210595175813787906071610141184021948943049519653194520324930216401084674534389985375237978947792549521247922556385733066540303549297700439738604869000461216994495791069471704555390097121580506812699320382714574835879866945684595644442730830941814914349476243493993477564510058194401985369947206375354987325047848537010679381093148845842242412410456835761474801757739503266159462011418448712248840758134252840298610703815077427607329409691525695005003174416069119138433957685394646969471200954494549054730740453901376951941704738345314604312249526773292759453346967220176812056561181868687568614078930909696415897010736600468913526841101399124125344558828486935497181520744981164674984739615543904981957719529310131422773343128103720158387077678193361420570873355386317896938464566421000328928372199660195909275417988004165229535531139574960203533706402091480319336141354662237342693703452829541540348729278325613650846619384165979950800833363721786946855108041055822019617867760261773914794687988278588108156936806596930958072178929102217160392351202169187063415373510012163190944988407179324039478852369343462309151112470433914441105689392624106031665197025533932257794947159965889474245037707272240986154687400205607497593671793731332716877692413966011020828778367249242011104355896298538641202740267537837204589569765855233134844728796035720660082721162347383606143429108928841058776657977589171586352436466047335452776717893868017407502336540708945714507729373397974443270352742121708933763885686541848717247750060369510401306499838938020874246150005326541858483997616170010595679410634134276744180032745135201153376063635602810505174099083169217110246899510532626611395478650393655445864365395274222008682357023566687561185952026916346499586686430038486659108486215042869472036129673595413521600559035744262933579474952442009047881266040260898457194258812212760827303637710061344068789101017185308644663440753931166680058235219129337737427124152114184304078217699367521880256789039565618063857032387690353629478433341373338204272296880345748779106616741756108437492490422665763341452397160410665896512758738676074060386609597444264412458940850137471052739728078458025665125339397932265334709946644462898047150921765537428804598314542058576182208697996788431966719999567165008457458135521967864023293865707383472786493753180326158579799880984207368173286928213968130627710966189626583928190505282491445965318748887824510253292766070808174524559634335342382807254039850136393017676855850443378083579641135986038080231450828563624042708398518249299441321392832771500462078508620642226201125024240593830735202310984599025173372356475792538186471498272155029562975463236952387078688671605203554899371377976062239431603454927660187188407073494056419343114436509369568469528280393560999188249786825704310375344766617716008561950901643018608526025946893659487755444095791071792992016437068399172077716427940917622138797933703286106689704180067606281144326157337953808099131637655530980569980533173000497748919085915335433596448691104480859487125346111272393144379419569216003761957425626402471131586199663617098347652533302902761563679788681718016788447282084646454557738695692851847901259807823466235229255844705247539286646955806134546484649837603755919456942766423928342340769899417846058768388811009554932982659042807167853312968947523728127911454967452601152251476402620008130558119116843124584152408401015096130984339720179797613283986517452087870734405469978805997428328852397015583035042017022976928332046732686032370144621663861957294633144618217761016161368883006208422042917625826602774153368096291695891482523413922079927323545040138750709394951466133941613965363007359962895580220861925217966551376017565299652014472893632108482992573353987733809180897025575484630197520797466024484581580582477032293564586177779402849406620524256699365408488922617751730498309038935613192251063540090654456237696538147798107088577104916052278377379239682674141237089595158264987836015870849005138738697962985183910665141348711082756877726250522832589275083410067627778403280015469007576736864223775527118730387304814836183153533231114938533554152957935768721935730833027300365786933245301172598750521798935167559574567705127447890718424202814547697976049860989478988256656929830381232060561909911311984410015126810456216987882505150470897086947504332823028942583514110541627360816221527633231181032483158277552651869516506427920574375308273004908904597801974956224383749155053963961743527504208980607903562313450234816296483495408245548969200182184010280810075225654173892488514492011046341589364569832491228270655191592013168887950897394699726755093033899924952476350559492498789300593718761611732423129550818024243483199187738704561619889653312296800765472546158085708391488278120156895786292659667092915871098473203449332101981851849457951851090522117999380898420753328022780287902344555531007367783378123643273607380798183439126346557204191439700589725361281438658258583741241159514508949485892907267730145873638526636493553308235505451200853562026169373699294901692142065496155821780082739264488518434482611479193047083084406016098442427476373491983247114698603476586690659618956672323956971240785037750578644125926417580937771162575268511187319256119567388412087176524914478591527188225717463811329886087690703496500263381573023064830560846137900003242743175517769034829240721566341814875192736989550887413666997315641700254165801302095171729196155489771389152193751640788621528428729897112554514640853498709888853496120723143645297150946236703127792549235927530690092898799493539021358146972266933700339326567547840401865962383874350808448779738637251570134843392374827806744307428291099556086842967870147949498659365746071733031612249149511482852102929719614819798715550558263500626782342990155586206030450139611063438175611494746094215063912494758677888587455201702627043783860004173474980785770560425879821866819171841521887792943631301040024043636774900699421219025894846320336397069633220747969929844914688754585272055810901263016998164518308420191346513912854495671788689382631253035123613601579548343494738453443183947750019288024745389488660916344713890872806829927347385430857625156257379318092702146955582665917540628627508608228487655753213555449975496796763820643239875451715498030163309100336518119758101250963560933260569822668444062389553580374056477248892312435753928629753832751015287860598984229588982121905514379256241540164431455549976675757530671710108559124566550863541003577537615663521349190027406648843742455852447848124116708604809468909922607989018846768857523335038041328717665001223316268017236737135426982502901508215986397351329672617530619928351654363647875280875863246226527540773908097131546785436919678254894950365938890436788829243502854236796894574604822064971620309748946662287639427222498723918472042753417581495393554265179084344428630721606514736346173878844075856889238393150658482010368976043645864674550119843890357276802990437356389704837365102735326456911851818952838262847492181562615563404896022778201570944933796936058412683391917398416502314686074918491208840082279690179457995222051783966976579954784811279382424644392422494998008622266339248791923900729402865928711934591846885162972645753045547191965920615919126163550790939674089778217317241938359836002189059133103242730972348465850573885060280423231941325750034736978181583485223229164428649109944703268226488778939565656285564594186417737446575551210940033524671277087376128857124783755800484379102594091694978416965903179966905956910732655313248191592193550117049353126923068362906108755422266297932774488347767886120385901251464720933246956029667262356832902481459178711832715545545560732236722406725375316337697838769110487696661135096428281041190952394059368993115461260600399011821038587506172859753180586053887006717723052295138902699793296521458660789917876326590059217657328895756919926452354096615691037371020371642841607899191708263453883048786822929787701426515878789388089646448938191485979323298040053898429891790330077377291337282267290840917021266114699760733320204649315116419232733460582606107113937388198895743272980291335016390533085901573148178467061800092248267886744358147645835240614978799423732035920550759504934329331381791019497052139017825952736591716459102665655133665316043537834702320515084756867711663545011777591832006761883094764610889491137893432482283835555115810624421211588910578861914681976881139113208471437291576583367588665759065450244216318339677165463583051057796122789434663666892244368539292720055416510956943375148007489689160970113485300025046111595001539304155350329920164009447307012959165832202783914065485229342657018092981867380723732764477039115885525212510890291186969166521390584764712137542132947785068358230928716051051121858712703328592129741214061278543330046859462023327570411083959420507294752320381286956225197444397032252296199470233309635624750879196764706729261711559406694293733595956741761580699906429005380031405144988266937610400784870300173264415449891716767222151402544838421320607714882605614092323129630186057260760488109062748967939314330600945358275594629235451964303640961164173992231593385571150694998996974610787719321607885406878595396186380704897424462783169387710383262536767968135265491286955158946598669582388853633616261188256824825365005425208964971043288903276142187248939523934535256247846276989196412104095621159932940534555708385585052970690706725937558665589636551311514268722350244721911370669788128346481788093378132532624520539236646758259480745939734467697708889614214670368653992411900822220383367415796606822660168942488238503127732314299222534736332666107591089907610271542578916277614213743830940291518639266289639236819176941609149162538260248033726578368176614260410808531133802125632856424626996894339627430759710520983541796353025464636612752547431124487843190983254950142147032814415868462386901826129655274520384221706111434931411676174603061666384022495848627609728054116046147335552297207306320222636179163215648068536533157482857700018123014617431252789904294489254003609621284042883895649820369657329098575097638497965287993449043794236886535453516535010465842167514730693475870618043496806398391896016185190221404815012898876810447364499742005167208283830114476521171702615846723390051229043483024740593183029702738823568837036428416774008915796201462438599738237922654822345420462967878079409083595424167223788984559558613314267073932936487021657633013430064238373198244438004462324716692941929160998431316008479459180117452475038419872189515484409021509595392348415878811180726015471303033899463576985821749628541244263389500882175218301744786922000893364045574060311719199105083282676444069257593629940962523506414662067562402889226345408185550412523122034069806583009139951207322182612475928289037523528762643090937410058838533538098521639175544285036085299982008755564442333534020058370919895570974645120988855901452704755423999566426151117195203634953856438794376235650764142837290967764312446890130993209261771003181186125488827431411960798754488629785915695771514164821052567729587871706428255671428167574510959976412466945659780051251645527825003019487898683992504825568843941473072537021625552464025371430167230038889567537606863040720060514155532006904176267292610900046376334589466537140517424296215930909294252729109409154707153598346944563172151051141920148734585551840048131417283678713070984351267940736894305771744294939081107605383418860427107149796680141659018197730242586758944549228551773792266472365652045152967951132600550754328828372159244925863998165908789762055116354455347826868305732777467404817650143943824887227452108958096252974668294169322228313847560987873645792466993961000941384157459472448093103090590799184886622319023437517993634343538970626343761765219780471850012329919388099920152095994709032800575890938113510145109056401056344969974570945183479201079040477817543604354207691271750595130190916562772909224597926515601858604228895660832744325974014540893385735517341494398532657465919592268903017546844871787381508753514409838070596717696903439525412247304551222044827235506991040771737434411123063332812177174955158397243152084136044558893449148177221363284209755212258006893007406396560828002262031412094450663657654192948644816055050216965738952244249426557130087715454070920058031746525289147880945724811778306430880121337612367670833461089739474293572706554537581929996852940230665713413815047363640889984909489515333582722646187844850992439098178728927731764370457862913836822924279724811028839612066411495977433005875288968799327177452505919302580734954989611273826647853276003231860412847682190795602514096681057179789453562107288154514836326552844576560684778770646359485611190055591749818043929789195434845090448919782684020246451195560384141903680920043859073628207564153856921936491551050764164205617466056647361743722195498855748355691704148483042623289138583420490874832949574648636147920264839499700924777445917936914655638205285380352813619900466647560583538657456227472363933483898491562607588438213906824897827089742744955205222762901444811708291108775784377832662251886273623270450562911544097550133182226951679977936829085711742315966079139196950022452341638829151216931427338601901084141874855814036198254612765579466752112462646445996108870513855531482226157623353068063253651054087117752749283481924119754947594101576361841051572282499237241466411753034910065394187547536534036042120286403883309729927106904071770846175240849124272990989957335641706262014857404484033957250760940214692574918136812462967160579389086787796676009131318773318282446009830386279673076258116550167917070512329438036415085053022223260808498434053887071002507832736007285469406906382518269616922839306617802275507363183368045285529519804594742901943701453051483059131893615973966243263425897168709733088501150951270116987522847920385308055827937741540852986711508846254378802135982094853640006996650439371836068082446189096572114236110028760734764242440256474534829818588117363943543939790880660525303140798885961926902766265744429242907112698747160123175764918849409745030221099241938733568170157359291431259476024811144731004722393583263031181755769353698965725464153650980500404584021685490254817971605939225761820545082126605357761392317231651565993548209486195017165399583021987559346922784039549199009019215079450484124618865312107699887534495302851412609501496508676773413325012855542157091170867445684329372980160150053328753346522322647432513569183279543408264503835156405219186972049424680129947384751926691995558515100006031964522027800364976998541556299605201902128986805723618591682552868022435241647890401304188841417353343340014483190173973409451073985204819759832769277852525553661892552596225017678362564450070843052235190640448875922146886994713466819711042183433840444660035237090478484316422562076782245740780453400202884774110291909065541973197015428532115907331619981314474624335545845980985063448410798909169054367325754007265724141175584562715911576767446710305114721383733457698928848335726474274771900227816053517437494194341978456159973349176164310095960931173294134538817796423430577638033319634557127585438151801349118662577921749170965078466732835270630267804555229259785654792431846526174332879936086537748341278006910376984481688078144992483579460948499517484188931458379853738997277746994368440179969078137841957899826459725585815119272530140954303266059792701098047814774925987282717459376173278312818401887011755641351288487028096171067637237843999961775484665423265180694643661906144909298042138724041487795096343569963435300384108235520155073423330220814391595291222326826320130854778980173594060403549557735745657355219104064843517369787636169367097928191071157325457627926165939158451923833727847314086245069474456265670017943915308644289721348909571805612298469172420733670304377520521902134789873138057370875619977960197083745536321120143197545608561344100493766596750088001340138285061548393270662623800834810229501695606460479428318864828139678510938871287167475684591234220910479866730164786950393537201969850411829039023192994168846348503643812494937673733134280220136540343767517513889018479567595581072988988144059686750777085857563707858170435508374406400655419292342903505997502438539861553572363300372560401165763949482766613934555196815959521000095401765984364164966017148153124430167748566290100401268325625728279184334049922168851837806830084148816652596282732392871841291325244642134118020347102761961004723292449873576590360983884375451652639660749360721265688271159816780669121528960713641237909282711622176036539847352542025698923337970343189293265918004404280927043123883280662466394850263314770599784939812473075967951908586423880733578382588910030759165883782251151305266571517259482342859150559575576603287219916373388542639521936584881232048118652169538088776548807901959837541717878275105171866440129992988489991116286831936184388114527588492293784866005074916164008826823452380348060821777059306881298679289507114931751832387927864622256073967709984637106078565708427131730078300682765424087152367430422100648793416677403460880952486919108954719561321142390082021655859311849007958733754623727675302015469429111224867548505506353064621634928389286818363684907040523546676596345095840916100440393954507945294310062884258510054610752296313109057960210161732235623500399313684852562424906954398865863534127380689036365463201564837066059705925350677235381316966491075798080179141461030289908331929886132321971900480758483137794908447663616929192202269032828778932452723430712132704987998678019220956668281162727085183622286429526018693584904141658497782921675472237832125535713480357173342696662731293395854973525239587066993530898320170248923475456647001940344130762092822337481248503013642922948664225014212857478781963090971632903582957432426322386877324449654239890336381985605112851539770967910807628843139200437463113868297762269911550039366309598624143870850816151427964229830859395608319308401286758507639417440992495053213048539507886605989368794670511796669392422495540146027405359799770925399751722483282488513484361458512450482791476259832521411194890767153332149905231615299795774050668108797918125244869921742660304923298961268272078979230747889311617993920098840085041243288355066988411755231684673398621475531192232914807299577919649363825999502068749116884051846335174679971676802519857534512450430077651351124832901500583882140049801896874433623856741226039086614728359736166199681186547966816843014829524513992167125474638122400185396957924579778127915014781905356322142481601249294235971348927416065289964706586193563091697758597482849868077821283718636316416208569167284593490723685850472103243770605347246850944582066726179001927209260049370305706552421106626924922205758582725527999135908221037337848136614889064530718052754516457555341494265290760471743393772847105167302509500648727020214701325068129022550388893845901125744967393854125134672189611947138013182218558638516563112436778035526912599817498604124286742983252015815430940175132111473590345853121445509719851946678905977626251785650000506408137103978794247982912481038260837637032375134470490932078983360000383624070200866326647919636459433080218715417193534253323872420464722525284075822307780973284335611041071854792368133036596919482358006594170953517184860639880560080311735162999842737141425946077048183774189591755093073812224869016487935789154683152536255124492364698018869356956308676117459313676731784293621093636910099581022958164041281105305898466039926867492256787086878207160969500631703783849725810249659815638816039145107162769589451097618764103513170598769946707929347778358688924090917055578005630246145471194950037326263138003151436374627319999168915938943139995087301032136149450451776912367175327446957027724646371528263323085848146603377109985462090324265191436935752915154190062225473638188402232302167850893337974361070596112338085172436879032658977008684205396465348398915510462758587772930365278382006252913292617257731257783949599534268108324080890746007402958191834743802738480500593122227759459797053798280633437366503701263246197362829309915237477941772902515704347210639147554360115270816405202021564092292720171412406046858640104105950448783636355104099466531641802617570730178309716640555611271852003638425019634454832167437873253536041614331209238680049878808352010870594199012365782426080242271914267797398950715068406127525857191265200490645759090115201382588651051316210333706770838429502058430431758079062930915120220438644033586405294351139137170788731300336049683882070647354401727915212631489335774197810547459667806400989159663251201039817341692621914385837192949484129982602162012946863014690808126919687992544816177975490637958162153929803767142432423466300391479111095680021172541979667006913922066893323544313002941512313080588567534155645441565246620731459236347463264006970420574021650931982778628301973325645041274674681176447874159350980771009413457078341331560563018490907081244046030215819476779330599510304083439348009515552208555393357031265765467519678524974935395587247036877148694509694554220762572453284707257205825541050627964321184200132669763596501711598691116218195672411212025171377074245712457243582587241019340729604217928097629474235236861178453207321908953484532958705773215536151416991539861875039548463175975354246999209200653578646776143386081644547701824907094072906194257770132751243291857698714492186971830587320356929926996976785409939359535899472019566285615001412338579139176275645369424417541573754898956553384654697669482133159124202239592565139245427700429940694641168019129605868384090045215095442248916821510468858625386073627381331075656379140464397148808826559503432950554617530393881753875152079609360385982530824013170864537222291700474113724847861563938118551153777589640985459325114269027297299924221571617032298428981071803656044136020382810802660386757037698182613508454449603898179676967745283998615613395304365993423634822946293328305920935701944520458068530392569535821269889589990560674478332192814952898248460201594317333623112518177913470716010340104449203321757836009455277226608360180850843664090774368477840649441304250480932912837710737736854421889372787846947778078249171737697869973755165163834649626948449771905597498872540337049469677315368257182345180042642763741428298501899386622131431459071318278945893232699144603491995274467743067641876474895031812358967120382236159778473035708847605274044410621377398348605812607562748663238964050474594561087082373507151754082679092588173135267691651329457978286226122293564127414806497599635860401463294813240725303977113680118018806783037409739853619054064264187111808652363321474235987627508500783116851076786028669894168103483496501049428814168463324728977831991814322534064237313331126123102764936160015542609757341426868048104099081160980320266319137897706104807481080756676857987502996484962411861938262411698152148165159328987941237363667911635909968810899704656791356919150990560596426504625262995663185181735191964031285980383744640870032725404937144361305921562168598692032308445085599156688340213129486122728937798006424505664107801205307274186595632555830865012921269662279464987259211454605422014232422525062061413943936634926534688180108092544704753040774886442038083554648024637817019277821001784116648716434430696435781929443490042796454494210766404303904779054195586327223223198602514939914617554629690583314967949572185845889054293128930940215521591366982950641956269435850302148946253626034453016666035428634570847218433481660687845675657723645972891165998606411553364239606148189632440384942252381656276003975604061451819694868134174252599896151013170497178760417398512850901937158028234254898369758151883944855138110994635694591455635709912317214538221331838443237406032326160473085623952262397767702689599270781486782288750941080136224564762287917591660955276078585615767283265780251313057743428706921250387800498799853906414196733095452847854679479152547035232304560784645318136562974901249553521033931516210181801116136575087124146983057762580883525691778967390288120297771329942405399679197584146345908107442094160292881742369590192511533306545007693577805784910224072344987489558074235061659795454965662435513835303659374269976322510312114413328079749441066648957757813691407911581567640829780266909671119695186099736573390308674995505176623863612117421812228924098959345499852755848314340831488563002650878103804320843334773426275764847081077693626006188644954502232544866309972019554255519889520059713658019772007371018631004607792212634616356121527101239494169178845815221360984395887936104998463176958409723729635002119537763217401724014775072827738531091622208246280929633968774817096557141492739399309063004251807019482369422744705676895646351337637798914024356805477852945690745051884610904999625230028815128816750185842630108265142884759229187232545306897916282174612435702848485647056971555942282021303172962073299520404494870746775380901373921001276823907581401375790111296095589308454934651830598391962351754839973923438217572324226136509904422116865282639704059450877356466393232240698510162028889237713341533192241728846082631729375412912432121588740969339561414061024245395437480916946530143601232737676226354132551545137777430319568330666167293417786835312168496086785463523380450274744956327341373413399578133384337780754465229172535646010814087093855198507025289066180525190318010044640483424640639069151563601850410231406319995407263334224247464888415313586547029952869798526170221830271276463294925484991851789863728217914455573224520732586571627300579743153511774452548710124758911195008969944577372585905787879366777294198746883834619200855313824275831107933515499508223166664002934189636745007566298318597552154249665442671365796332014689186142609167153168725428283594834097897110261995337340290839996863863470049644500777969727961995063852154695791309094245591511487210364940160795661070981794253516103631119521623862226251644646758685772025389868520629133027840295268272896634547866581918873743010648713186959565359176973483096797840298326812257106891216431941506344268035601817090433273066640999632800096416647361348282119635076670832406684634916866156640851089547618237113636081604427478812005748336474047142216767610782733753221900388231546174621134666994884970462499852099300717087811787069914806073377036398234002382841206785282157972723865047471517115743769294329799083186852444692814429297472281983834925657225941073893420538132513082928840989598605896437380078674807593399673474414311591309866871455305391647274258050243522211186747056172268351612895340526396890963093847619022091744393642113054788921605423711298987439381271003132847210669518051257453986612254261829401154124064532413506689959421356585286862185869608972598060032823231039367550683946241423304461896114681912882333829312678836520532006656563364226262204684143415954466589367327568538192451255286250530339867247487274871842809033649464695147713698517965417551875094340745571733797733597374412489607198439754555827872545237230234804229790650329495090414784652274312161098645660271445449666002869507252503128249532367113185842904771655688960174379481310269226736203371453415669084139052089200928748313344340557073601210455701464347778730362937568059807058446514581787816178326737450406045919349348815450815061919979634518620358564125613014431729390934807131704255507943185415001413266385212903703678221936974200787302845550567575294407334620169665745935389784775709681553309997253218236268939739315557482987709523419198499968060262419240807045514724295328463195155377367031279030125994764616524751284109357238220236659740469088013725144803346103732264634217144232874799429285679977363382435229765447944670200255933411604759841339419483028161937718202122376787781681455854492761045734048196474072919268016936209293078611202159807802983450624776511786559423071746486643727438651618290181516460932397958655900190818293000265200409523909438637217805696992869399440334508998612361117238936705981100724284567144676707280968235243186991225931604934989884017407354726710718668522414639033760768687896114197216975554492961277585828902602065888038105590226934878129810083986195732839160077422862705984979469599367025816722797167271382372703010923691518898763892594326335436110932923670519720875183579748083335335349017753616523474362628091689419366046610310392330371054008214475387276351898966963569796811061048940015312752510178386590215513539633025370516669564910421945584179163187563196040355757248192374002570602001232965293016267572022635026737032197349679432147332201929875637836064615642877396236322115576861730499587716005228784742219483933393593291095640872768122878441965392930222994551848613991538850760070066486524516953350383128937888520196232895333574123921433985544816075920083534246563736536517488755894621311435144326334633739943315268703502421522480898579623398295819327600629161770026711685176778841600062998968678906375117227266197763541223290577870394027989165305483934510049853875777526956345390108998780190414488118392707330239952818250880207705051616059722736655784418829816610535003732764318803966784900531186627101822466873030329724372626539666885111792281776929652732975452925704701517801516594127737228842548650776033126981640038444543379894044275246241223370357013892727160641975944948196487619835194797619432845181830599660021585794987724836853851286549235517948345829147582185931781984468536445868910824868669668164063470739311857035759868534370690898586550870659801738618403344114754199225799204806782002426356009720686676593571965549477146326190272516192859149012906678989595755914775474738212745511811472945658997903711825142876451673321142610249155450660175125826760696939157992148994266724716850318882631542923751360839112191564486919234041314220694605478324310042209554507415415441200155078379892195791665973327827509904375386741780207100420410624958881385317400750710938536950190450324322568285111006728761845176367655313408283947930892883767430763758746728726634211449557778261053990399892388872617850300730559431454412943904086536459828873593070670865081764921122191324722532543744314915063444814961370536438940558206674230745689256043691071335371544830633057450192695865303453102946856958029672279373701543811346415557052310738670068699104665154226004872305214055495938073876564578053754496498581286691269924743449713151172877767550460091815403155047947703434967234233969554724747586328411053695242793647777957193268341055986222840769701335097007362719728541239595007365555750048656146811507565777239484867542825649685644191003209021283979192132176653978302688206681523990418675423461132040892136807765376292035402002843027598671833068065178022875086219302384038483341944552299624362694158582033731105288120139438863419244347728467089010741596606825579031796357826981154387753204445064751338967694597644152957685136627292413004052497957883116657580675490854587950132930961740135649655329407750194961356811585336787647898770935514050605479460288612722784849242649035126040927025757435207523514631441220255438327540063842151053186135447541697210861739583180617422751820149081901143583159308450945249584767109016499781636968280867561962075026275280336397887457482564672137309596731942615587421440484780839791656156214343923431963554776055237183065448506148845703551107044012800939983693292069930053897668250828430602204615198045057156270908473896063166751067422774000377765370496121390225167641960092543662875760775538987176137662424888540270753704852030701032083672210302713981089072052822769885197603373846293137468774205750078793887147078789967056797768215018676459379911724749010437319634009359617918791937543832467537794998837590973147294051867935903071301871349715286454375266669359596565018393258490221633621276081307056772513030422361910600210981682669833724184515430258357910915763109269007859096712258908175380633070556470569066744642800292331280863223077806374400985435799108534727794960137435628787389850645787073986068598189767345300928320607191751269055357840209475587185691085036123716125046917050650091825585105963978629464687217881772672897153852126586498836737760598058698164812029635448106243551826536027003177214462205311190886584321335318112356129769134929305394119834186631762853958753563052066346426269308154081587933583699862409276965356425737800554602804257722554768681792615910142559038603578777875368406228123715512333775037972246580542838394726984689402505841105474215985751541748416049026082341756521745817380060254702446779127023829955255476478558834630680904170840658567022463429099384801008033329725929243235221796792883950065003986822268491290877429130970685754429216045526309477745378564588498244717087750590752392237418882087333467300335197757635764063158143276834071023315900491472858978216638715299328081759484690583261153126745676617774361298989000158036789538993875773438673918271013696757825653399618799449619857129243778097801239857561616156281751938348547693497210669016575117711316482790285717769130331515376933386111008113474929640209999019526713221876411398231285909415751443323067996317890490392960166582970689076983428362566501483874593742532118075753168256658267499037027479503134920800327742845810465690976135707482831801792121636400347873212016714402644618741329449101507513056007784516288583946468584849888163709868132287405128734750621638125495731057078925137752973747324064597514991377719327607062604203910755552992006508650777535925919606513301498229412537823490959306131073338540776943220910165468623371052052988775754394160018534956700386935770124896039993795580070399447299742224687223292855989131042372334184990009505691365321958151788535600653635672363171273365386818841224747374661729421039910584078537709046426948328783907492352519291816343083087509886636031531821558811414898187085483158878696823310727563603088199549298563485429310606568704142845632907237473522746893797600176774475504688279538662940246787175176216620527799448324552985116290126572522288791323798934902822469687918397950347307829158601809161058833925101546696315819648210655548850647275613718478084041812091369693634655157937000449505036958735444588187777515429379047730330038697690444202023638503669774907807918612804139097276078070352659408928499751756634744923878228833306635822706932829629437607594707182124653418542910991437788494004989169209763930729694454609181735830314522555047338542955899704628035896009750609656041777205267961984486018250510730571559353207861692609620772729334676269107047245277267062499308772141401284548233381625692381959323327369759761373609958563014180096856762993327282456109223261062661838586316211065079287402819175725292025675678218417707359870834757507848847917591526892882702370077404373488322378130301265283139423101504679865206966362776030365371350693816423642621861436194979578533174566643813598882204739039610296127320736832110300495764145294248294018979951470270023326176268235805913574481890820812269226568671638874360854248275803311437428163151050617877636840111314174023254847333314844460970650819271292417136644274188205747906987402620157865426336776766930305181189710643330232445774406281470136270413189225746681093100800373465997847421122328939131199581455823452086006000708576642033273399322393672897153319988206816305518212932569611742539846978944671033589563107761718844571753163726096739960472907137358557745943737088356993421545474402692768003496809408319991502171458417213322342520222046002563763335435326352796421283849571407696052234366711260011348516179311125966216175332739808662684619873655312034118467725709564190519473140636976752959232117644785858920651100578848077031741546739095235107500274882987347279278595400389404734376144135848524229078912505588585789032717315267991405735369063272923692495258951156535179856496833109847793515665896339072450382725988581711724047016836934413930213233425869117099901961865046423747220056412492672036588877036619587043326567278332711294319096917386589038854769652129739737647899323337505179003497829009290950602960012367912880008319149815261886568619059809691870861344959168167504240276892050609223575511642278400701425883801415016039453831271526238721661480340918892334187837119611603408994177573555798455882850335168865901214611466040916260022036649940083621852721671589169165003282781933453311278222758816316340378687121414943112672881691352151903214745781068870312427875872047772168822641768766110191640941602134077835312636809586349740562107420303894207082014843558334809041431111938062407853172653235508966050219311935933760823476372400486591899764014949984338542213765251495063961564621467682955704956229622567927293241495501084540760199209582937960384451655965714196973046031461783179152860152483142954749537369542208783412896507565747205052135533253715439747044307157524499540860604965113651479102644453297099189046951768157612909586663003265416783875862347245972003722281067580450120851608375335982367916689876305555957673238941349271363348968455235777923687437082715435979996994575238057256063103350501646198617936998579162155369124851703771648676790196899967574236627977175442177709062809521673607089725218092653639226652139096779451180310901136614851288377480054346132769022704902488639263710964325452145689889035273047829920565795249712878352390439677946439038580053222230273235912148085797731165104317637945137888046449165437700849894555101289552895291275343428451164401236837928727605970698773895769144863114132185771906206642960708939700287825144897060839480553505952853286442014383403915205441231180161859783720206389494833624339278561507674150141805835661754864977966742255257132231907477405012432920592238850122017121783434424110508687844336213186948314830037531605088428942018338822127258146911875475756228119227157400016248075679096219118883758336588025089525970006012658967916260060378067136032765582140820575564964335279055826480583638614956197620310864641930933304119124405171363001668926769366247723221008560944019766128288397429565627243184775206811818558212071900495841516162198141098194405383565781809317448253287911344811675061679841691024021677869496608841416715524582567998207849980425311696533120690731378172125043109627123030316579954610050538597301111579622702444133324249551642083212780235500075564613871350549126925645779033422053976574920673610312758244635962876268893917053755987550862069474661927601658209188364525426852503426335578068308925178533386377392178446823253906690011246961535544639192160110028830838442657728571255509941946926683810656762731582328464671058973196484696276907135020704940217078498031887207927916655384407102801425201305097348048503849715592871181507895018779178142670818943227402117963605983480437478314306255556455479242509127330701660662509178972747192143608458958578692618598607445120791228660553696245678965790109445931484981392134576460482918947620848923335653331355380706536023856186253330179430145221323012639745561211796076634846895139743699980872828475673213667252649437780023929871129312047087994384094444760891145353986894469788319339045372300618585305225095067820004086222048394268558729371854513594248952818039807509191896238113835915285791973447385193118387230903403314371764279854444166100931376910626467511679862517122624023803709671481405938028079408873813130496150398937670041527559064134308109146143868679642195234748343567197271959974490833689723307831717651811595220783471655981349704067611051302030072168687113076694543579588451709531500034448525441790010198165605073328743808764322197050020224189106519090637697924041375302910591349069132215580814345990273479270070860503964214864721647320404423992313526301188673544696303874703819878661133067840535014728868723970422088350505456091944966176556969654651508951336465726224280392899828994586659251831595875100113763689756017033236616159327100608282524771120080926170042503313778634611852579336747738166796342640860939682592674675646694545983156804898030152810222556234640824747990311795616214198183797400406371782383695098321431441394265009917468004175230762595532656066033118510985385210459835206171319914784303097793970677537477034350577556306079898243694971075880522108919803727301752911196225344267905583830943189494304221239942150171486192874014711507339313568374263048615023487310288884007753859313643169970389414556326176069332227064769481733216215648959680754391807403328056942253071938249132962381657053201963145324042934720975894997049729916091826207052603740692622984542134766410190189808310799883314776321072265225553875958766009394831564991376871995068272049409078965416267283322393047475987962373675186165368283336410215013598336621475098128962816631469408562982632615075312431336534865916214174259344287891536414550621414973847824629428867934084032323735938513379543581887719875996567957873060947063288676847489077572393075469642154516183343503601417467333913873792535409096369932187178943512833097533885659365648248253344493356494313448465218352320712795979199591456365391037298342627704715748315242704940942784556440554785007737146266072848558876842745530660577610416819237958499271242049896880813421580353392660671991286696815211084311030054077307511162948629853848579715212020791771386788945855726371379128660069559330697980968215272755303291534072379376659075092350303635054617293268869320588178024749204124614288379997708187787121925412740180386848544406247096698111069399571158875455315470884888290219966853734488639409796878054256658467254004140900454147290065906078828366260598354451053518284916973967422253905185532610051440694059238044848369326823906167462545605447845952111072095306522782024309047195477249095708764226753035314529038623910361919940879519265310516799589559171849260070411016580848321817493724013959048747224664994139868351674163841447817223641279743121797316741091062007426792291150072066638692575635013293371172051327448218225065550169104605287979575018174290203088593016621332881429755559940632075591822287842261069045448676618454699490728038974164058752627474263667065428033505286254344811014174911800300421448476884429723407174890099143251664030150699435625231653792423785654520292343143520655090927988947453336469372762054658362921950221375913663966313282720447027864297266174714896737680984568852901704099284670198513407657499461868838752956017822570391453101107093616217074602821112198162284957179286983686282644169949108377147338781794092527911910628160832299563391437519909728231392771518665349671554364294966748810064677714283419827535693176467783546499089734667660008640832048904501059079322891944132315474224775926264530727578495862468190293495715707743051084448796896799609203699877674631591875038669425418774894759076554274125855607814575694442546989395361617736819215188858126006393520768668374169043010030909620696541107137405395247021813340958143747905238502906539918092798670738265358463545914587778445538902621311297068277483373801374876826692102776017014445385501963872627040638337454789987318434201937365672214791274673512861632192271430467788386923256165917661520015830730959028724828096651627031822965905260433012971108307565694056704949709398958495727470920891886609465771827792452956681178895550831009757770657658382072936695166606183362546459480393554010524106023541086715866378001206155876880028790135328730791541712169050660315753740972059782148144481966397149388632704722354824864460133881180893413639357868679770516831995987011976344437169944739711546623096062470313901630894557191480513199943658386964481818963152212875392919317868848736248028969990330759500086299523144691966165089496438003957551625201384953436354984455708516865801366028567194148244085004023494156981402763510086032027546401705532891808117935902431500926093257589629732521278465417394491027873073591501372398821487588605656747900405006171369227764429252154756767071769946106512701553314502729200750333554242871966650848593278383612147862087218318811404317011767822238020849575020671930129543168375391733351714867230222108551963396306264639375562654384002951077698043226293565132349315627574518750198980048072570650128420608887687327689623162529107411728697702363403448350424622765218828247402069630208350306846043045762283019602603741306733020818411012711114327560207831214119120632442599410533357480484744596121374886861045068261987889604708558723899701879772280512162506784864331572642500180173544295714250343015495898602673729787892773649064546055824068030352362395642596196003494585215767524671967971422516935627978624800654060933752618738990908445130145216978924758458717083201571334443192160480561133198116690277230785991923047737243830661284324476524230503078744086926994009378012998030960072634500331614995508288871678169384094537529053394144093725803986724110125275029044002756788156495226528375330580899276078420459073995108784995395648556733415179745724396499938000798930400692850171546813567253633263448333687924938794384134011254706670639308017796826892132346146685659157526475490381879201349219433476751289019384347560687027826562703524297601065263802888396642920763540712147686479803284761201785640345468679499274966652183037166610413480976894974848475421592995651685066075517888715716683808061706021382581348966703216893975550493739658148135808463296178029156500901054993926595217527583379628982433989643463207549341629813419052000564093932656211611918501754358583693166422266696584498733141522996535974926338427735298142840282329189416492228323404695852076698747164092555803240856269982252233902156406587340394351200120187296816945042692872668802461539890399928030015055636430196906362259115707549765493957015732224103932028292907253464256256416571243118951201751830535286671888899255263942019877213622687365382541562164267213507348409482149063092319010272594570339937216802216610765007497160565773094618859141293945394988955894053191154382391188167009474697783427451557425483845288860034159958271488511808762755550981744147638273123162058632636261551150788021960770288627306071175144667838411027503434539482942655350779670536322249157885769998275467153963006756926640658879057335673238743337179465464355470334250613080566331157783123417717581889862050133144226430088120097963839855268038664037087999599984148355011085284611322410635608602190308981880324250494825430341981528243793493873195444400925591183433469255710331500105493075964769364672508489815859544172771786149933583440919205666605351157055983327967495626796167211802009279646664959303516285136968201071955893794744082902566481893505864641601482011291291922881092297736174813518772693720600398282217928565601714094592746028387285990158807274394722708953505236570779093939342979085000502980946973173720397098958272807003876651664590992162796352654612960347271854155142969011470489323200608507023835980467645472861600061693288281639939780973951395692366776476425135284103044343176876082547496787262574105779294170481331408943737086915969978800750392181196350923147446970710520293323976537365379021448277030712254004702753357154552860943508174348882437845030168627738777104814791973311098940652218148993175789818846037022664908035212203039594064239446515968300458163176398901389708280323114372411144612817567992017162245146060128796199772390298897924722043821126685901427171135436464321186650289817990683485209213898507474088226362377711156106200852917556801265904454349387147240825350838126316008982699997554369644614675806334248871716748733598214887347571281481193441637884919710409579858949389914362621947049682286705099322206161999713911232816881079046018183530825589975304248256720685257333676717473394638414721978246816696106280046219851109514534694916567377674278620147436839233681019005759927791438188529563373678612494495729848923509404083651069440559066532657554126364123071567455659738638996170548145928665732203229222746179404213278529845731385396866676143264992086364695359201824782178311413272626210040789013188880505386904033647911155196708018645518673136405683990340053305467747608712986080929125156672168155467990323970656687901768088373791181683279856141966619388547953475891626853565268201148601074567312542758316631084251068081725756187605084347332752901521220377005530307379904838267308821490634198007236293637183959139237655243565225432654731183217514652332753116402080471467448687972959502845747970711762615483783320035981769778628288929617846523455178372742416344863882495673543902149603040156493458066700713881008921087271418033190791740744032595613515422271680979868411147585237546078732797836998486819328380004330838279147477974852791159527134237095781832902069270698439333209735336121087316062087743762446089770073664003469647520789151413191706342495664560597851868228772147157284075962446937179440324332115238049794418259841777176259300972602291986205344690890788747927723645313009706893576089551035378038007339816878553287286724981677680856759504529693609241684263959208379436410791091548279315641756947205462389992405690116161302456196147801722706578979496423496409958319848442808000673364158652589244452836353434075267079514133189797417625176640704220799599695076100889829230103320378147471616410721359328415698255775371192164618936897197691325169040139941562055475454901598162381213227207640852834218734552028581194814599896801555148449231065433462796769190923530531013925179405600593982967653740970373279025995590882131954527960997828586262207952555558429246448177942077104389043195058501321991312078339729314782387380274352176643993753704016568937158536623634159519738235135490054113658335348966683434630375693835261349651274457211608680178309641670933800010898640043533078813046950357109292649497555937917183976753826546484217980862842029856438166826650963263460896678999407119461744128452005360056810551229557602352036144668488751042428185523221759653291419777654416849260547516866026458230269666201098471088520901057230544886532204554966519710803438911250323244008126428281260950913548193639926791275687652607559571723163272878707971047311909379605890708327587106517431643705186980380970264806806483329077966584215405722002733755557944885141919831556042977577271809927851801504528254022690855359883103012759168096775468483023436682882331345355072157578417542359595499094430623926413626340223820077562181424014905903559495274159020336278615419705844418640571190640333580694484163569914561927977359857473749626805887685994097480818501914496136071138651566777371774369208239159033552865158378490266981516178270671466615253506137723008345994855236863955986146460707043516115966786296827541669387152143285892948567207302561412414472433788478443743738032717863526755252668165714809504972856627851960742708218435347505056679952209584677286561977871029339800930786124145578361696826889806456511301143629878197759556764413340569624630591053541341661803731277969363394139691519333238936531730599592162705100697158775257114702860685396309333732946427727292773273935366253922390997556062707343460168353496294482667932128017723606290821742487832318524679982519082369674785141464558583579628935270032604213870577306306624173621473066447229160144865973654293461486814750548488870311979204661629162284836347243403406881389092129443138402464938927841473620177308914026257705870552251547294612322987494222114076265558325881842055499176732246207428053794657293508402635644279025730447004234578257001598643824111642711209457869491876696429693410704492482730319007913025434830711030177854224432776764118427985339133428740820865821493306646518275354197043125445175442385271445668382397973829023345440219700810352202041782680311561338485981099279113861526417149072842538237794663365604463394549839067754782814096590447985667341297420054177937521542791681539308408641540112577042066767210369180013350157305131692245816963427192457780718959673327120541464720330745887724048002840685247461542191204595681778554919314235889332107930980244731997808743367566195028981740508242480502157056312774889472597570426000403559711047113850428666420543181929996846782697910127569979408587475109369423378835631130286381035171149860029013848701589349809250176723714402117823481554007889014405685546080243552376953900258212912764462815246253716167460844936829506897966285033965114166886102640067450784477552039411857977921625492718267668246973023337382133162351720396084429729711681519590553800819021053624692113356440775630404711539463195899057951737527552257443236980545942836779591926582671073104988814284117101632752242173608665145129884234209268972736050591606246951802269882631747551682040431441181317747760715375751318602516816281979547500124735976487965769747306976106645958689094598622086595503949981909295560368223018951108258150437346433367401120353851996536278936194113317088201999252636129885935743694039406070370599565006325055650939466098175179071892421537143589170112866977939722413409020206069686542230341312158159110681294879746099033849568133792709562407950231412522833330887590786341488170214456000169661069841113369937059433221787796692936151102842667033385576640067436113571155097907039051163123252358299631916073091387211790226614387364899578567944890159831983711966075207184093750665867095843609016107981099115774565638616244761210839001283761155255937887307078500725218091143812450800479756298552866833707608259391499379009978247047657498802114626477473045957884725484249180086936666008382277959459555311182750508160715850198508689624529792077328042000136432887981377278581923214683530914213171280342062441348470424708479982443777490417564993238135426902493361153345100247030304549718369192314315511424598430300339594750145876291500020191791629654732269484231380175852517567465753427732670549439483099516025220662898110086444863284869536705797580297734641723116284200102221064773096752389083935823068293997955978312233080166372555588020230550981660973340659304606650140751812764541884766055798993462905678727226455948874585545278112435040341338371582051326007425350406355170606593782840728202858945438302439958668809255450275645361744675448215356295763145397450940655023869983794361619462832253361455694129604969719858589728033447085427795857068249516502770137238733869690532010923005353585902873840221114869356940528273276265688844419883088330912596863164226994497499850426985963673553822753378869821662436691286645473271576616546474177051206580032559365146533831962600429878154058236373578802972397554452918318791732307831175506534498497849796219027701726084342057353897334664805190548079487839089802608104467853412153353507670680014074041752438815918378991100044676010996656226713726641631841549397779783072971889976413269310763005719988251363509602183133476815911210628092150488199451126647911327816975650803848124899907024631512483446178088641254581231046013538157509868348336923575899944036919361140452001903138630530448051289671095980497471094199361359937924776725955813040261311223909684610789003752722166606478433219300340404045710605485906980966863818891565388855396852600385195431243232280206433802711280222980559627123174055259256637935125140249962188466608144736017499827402366287597801825528078067411944197674583060237419830556304602448644141447495389839919324365767467749891255742354515861342950210833997474632722211962575845524996932544021768515463448519004766783332131498177954148926090385419059091777533275736094832287411510962430455143926285823369200755953218904769009550946736953102288691777091811384380745342589027536608589987492928230130453655699842533012643905093697889776139541305961501917984370219499900473567451055400031626188897818451317216688655951784622736043138960504139233231341176189826912410276579472828135859281696065698931657621801851226857866993689182951621944769247408471411574636251727061743917277059748253851789087403196392690712929561705693829491518942826930661156112949129892002903404827425101720265567600105108703209589146359662408334317217301138306748373980648486593332205402983393887580863877570123275267003619228966322275210526020192865267810018971479524423387789775112972153609117104632312803550652273134133048431932225691493867777851838012346339922769182235840435599151242152081763664498839565284710119057018904179188194182434648537573357689775978725147693020481988546385600956477481008853900443035677686472821178237537790486518684670958388050473243733404090495287626383786575187571191279358972951875838683262846928870243023095421949314801643477639843456936735245359356818265193788098176338810340551181126000705123615696361974999851916239939720362945364738371753365389341784794521618642419624101374064077431685743921348956458598253985057740052665675794951420879611604398365703941262885100202902487389147470586787557748373397159106080904911094453725656881492962841196489668579814004784590569584156877174698955856081212199074764823822273652708599518458698559691666360016008078524306662452259108384036887929819597683143771476930124868443744598983726743016926104353487591637064175303051435243187279138391445291122483873160678432499010360818306147964712057814260159026816503119032302768432050877188171086536773276520284113873311060343082855480089865308112360440921479116118193451412970997095314054005823981599450446773403558998387902076242577553293203361964176256020868804857016819664105677683757198649725846334158899306581401623318652551819361003077386406228100627096228814714368471631248050587268279474661894279277376999261781342682314595387111879136251656773106395891885267541462953697658836069201440737315351352967010719116801645179351214989585436034377095366780874824462789653342697238370662377667693830908600798391466700621025282996153323173942062598968463277334487281862296573908851733950497772345621479452566548302395119894670340599615773210016516706625814876808706116227052385797219436520463087183166501983880704051037244620060537511931382871503691303193399683910018821906914719026061103537260903302345737802857002796232563027554466630009159061985969064309720998073702012111080586958836822992411147163549321001216722484625706139043449549201841015438049518210099273831438156998573397126837021404184109249380356115128731839903898016053760358006897333588165367241503609486368966970804237110662928404808282291975038694213100039303935148272190315841102648235559590290380024648031230148401502159436615755207714095619613279271014102936001314644325841621940199281105214209635828613154307063349755935540985463737218118440258626163948273851149658814974295284217679613439277122477444700337816450656552711087631461227724725088916634451799707835606311124073938332114928065880020949777638158522700818554628457107795600097731524558223603464870342438060851797584450829822834759972965130083466676721953870410013119012760848714784757884539638329908244591490409382667534817948262430009480769616254949930538104308554549132583450505295330350779815374468599574724324946080364443354180181547003749780664033817113031025248935568648075053474244739744493703383591164131357000362033607230277798004178260975865131229780029207820901439555773985472398920713131452706857254390457558462458713955446411284014322000517910883226393453077192129037004755113649378190297790751350245479409201307553320977543135460622640827213267315270800535458221504492095569048569817149220312096783909046786153127306575070255225089745600506458431500636689206872282551835417852641286189544306594400399674350597574694475575440826454607012729683661608727004378240105096662168377006294385286566893252468204357332322891822742322090466293827124629999355684496797504595150462451549892637013039582192348060131095437704235225406723372385650323076065931414107241561439859898648359161833155353416859772015894296265507935931591603877766802754516677865482039480803746511951664829268220533032858258914038130888732549590443481234651075637102832184944873850349547268996245570460698900944187286021817181431186915466515048988762317442028653956968681172009249655439159453031911413177929695155436768730835992436593861265576280060676463914041171146199702226912794386886923769143772895484005396211144330795406224143725359165193388240927058430102787476473465546754615386029568420784552116331621116291965571561313007456848187633573687509671769176712058294158435162089155907816905439399371306448812898119490721407062556093800893411100583933488558683778620758484714886221849927206857993538129711330227403217241244936338103370372468912903079641395167757879559591636109560819642708578676861440784080406761524954301941364559066748043449975452723237456432603873908107645078550406799312519639286229403336328340545914575165785460012031650058462895387524484760799612374791455383779802259285565510755927407444413072923772205948387254385199193140080376828764420053968881681788584991465166231851133456449684774834491932891759164966498531793602610615688311123710827678000739196971180941922085434976200777880091959845924031577999369449448753638201595077516356696239617214201509772075705163755594482111390932554681808937549644181102367727627071881880324802326414587959097868012155650141472556713137424508396439749447872178208580680688624707642604049268362615037015052527172624910858821335811186220784234728480565466879149923084086734365599838037862973541997824424254406564498381399152051624222017109785756146678217169567662079673895175986557670601195713601611999883480118254783354251358268286836858599253165896175155327176632027763233810538074640538305336044682565841872529893444241682269467773577439485843753609200464913943167161831105711285685132399481748542337664437192179573850485977751555533208540477050641678300561566947384422996519476159113761568726327234984514586783328405765291065425163539078989528975770605431187656546384389930001326598666958946712385062510207837459425986351952799379027023869672946166583987863096095250671187644387123787948199047021726870369601909226288180374786625513294656035556890472868791971026004084060746038307048291782139444567882286284403722960660683066339382439667642030723820423693175516551261590132808984865308521476910198092405369711078459424567866713300039247845937893391528350592128930556794025475340300770271594533114216224682195556104091643102822122055803362191680397195157716468895978036510290699243165430572546857311499844253873951581477946289021737654763971523540658518015522609383139452744925758324371982060354859338268303317504790401914854078273644421982075654527491129166185173490369072115717431698865081855997430370115540489316282629101981756447789804480467124833908817465963828534374799666891622356210674527720192152537326616830929333310446011711423700215058634845645580718837871767455904411523806803746223030988720585650566498925163268743738519953378386514779018898982156066869554772281974518374910233795091970034570819370482996756637204835945812524446757290791250073691513549889788730737494401063989315748419282018753565768518253517028924913896030345253405841562126063200060964341520170337370731972087956924191969820839078545697267624531657437971735276272258678388964111958724397868756400573153327036067759703035343973006470380036282578291521153813023213200032740036641744194246712482632294000185963817077520274855123205007852302113622808639272656594570621981917148955038016400552419177960649730361404897540534835521919986174825034967163168151218731999157742064687338130385954473172410214693529211279392601669736149720157387898923055423683782874573946032663892145127427268936912034436944294444153912199679430552161414689010196358117882119719884012017177173597417944951876258022218641555736590633706879053365383326798192467437805793588948224560563632482482210283965566815827412193413629134202499392210730370422488559841706455728446220656400400172528509627653502266934591269936030323830858167011618340761795928329395513828992719134891575765638703442523403139603514085108061200554586628352006098025983142817211701466920801784681588582781022249949261836959378264336845968154699377711164514248447055787841611609346723452039337492148845028007194406090417290879261990497254305418156123562893317692964413185680935268895931481077931162461956891895358629184657537100884443392475385572864743953961410974448884056636696055447146001609416550870490272681978536882321518461955920739043428779195352062324412211861341297319721452841866228732815183306773258688927366110875246194648160528000351006680604173426268316783384214469888554941939615973201516048987170605532510556126276362482324702253461613186215483472519299962801540226435478145372864591828132726828537266508087584986852272885519506375921328983831991206595391146877268235377016648324336532988004999955965557664279951542794506726936400625434722581410213099454789832380380994298209242874408062864174501639489597551547406306506424697249307920652911788421404437530541030345104678401996517347011539611831409324806788147000888808650668918561923446734961735133839024597581262816627097604123425851960448875500226369879219520076279697767929388980287723256445674416523241183949839608519103688465286063396314826020487886826238144607028889467479058262221782317578338413252914527452930350851347101920463800240783936296555548761026550242935211317857922024378206230884796805656331630449583682091490503168610472032047448888132849473511372154474043226383701238743618396150784323878252344292814322267533178859587509619672352455936318350215337595694692031824194759399632894578582057899145292605482672550091332953235552469114393953547329918092641923131866153187414200616216807691607782668099836247202694904473923252386649538474429975297409518623515827657306961790181983988608478482036217505246310240188280558419896456676870664095831596692773530327812410273223817645484659245149325122290953874960269777852644463340327184302124022538579977652320591217104005681227472943043295358870489667188023610623394913076298327042057522506716897616767231002211449389960416936698888287638176430818160005394021872910237121091059225774957733918990439001846884385967924404139328915318903022578248962253910397958004677815241692118685546267222558808402630436168655832724685577323391506561222246954326672975639703738775608931859294269238102010708075153517521103527277042862348396597633556040287478448115944113482814061633857192003541558413850331993694887717652406358665787102338393831449048465709115144058673196043545044618775515185260641581443350672469111344679826187653580751116582298504187771531243507074523342838360020251347747886690069380871703932105681267726848241250222727168936481493766343303910025708045790696894333725682866398133649535777145265420212882930514798482143451234093672144081307454849633152235392473728837998074846150090075389469859350147170619282505742194053098050622751495154660051727867704954871617125093459961358042990375871913337124445327840109587520220074536304311904031048717216126021109457341315837953804420826004818627856603366509604983901381868493924774353371502002089644532417402457596457286448550232490884904053400963798123999636586250600498033782621182712941739913710231283836075586896042590748110445450267211844672166175239137278069273608653911645663072987729472093493044121477144060255166883851456294227580396581719062652546473976087327069279733028513782068973428481907815153559728001505288236320898620320545614993106203697370133236622320547778857326360140437054217372525565545095476532836183848981157007299087348285914181973952638908906839072774563536017416476894268858573892082568860120812845921718279206343163435971920241842664886222548922557517144360376995933319438605527865511680432890970278675141701399576920270197994268623649751330884102661786193258392884727091289137164288823348973259818039654457408331542582578134010809936436933117289078993816708052135578431797095208745012995354153274932568748518559373264771721977695435021762197723271448748394086303699510284795965244775705221478691066137782056684111117439465264771544572422925719983075234657940070859215755976158923472242486598081255694503269916353111555184536474090895913642193784201757344496853863373010614271989925398941278081196063432408856825450177597833817125097538226871231402341137998275371238058333060375536016424581651882317742695045963296129531774245517164575485452465915565325551740870680794362007703886394239164998223512062145758876084883833875420610179865995906105097823667883772121560479780648999533620326935889921802053253444309056678720749142909182851261404651868580287731559980338896766801239468797373827469552681390568426552246960532327972824829008364028829634547138915464165773064821683851529365522365356153359264388301495848706872480210631450207315570947883007939068854339072903630006782853497901116973122556050230504404427124982961318763280844969140315164014463034474082453875560087230119930894975878619658313311565151360264373690527076324804446483056078223251048037896013939481647168926326936009071855242776941030216813013851409057268118515507669828729365555427124111288236011063666100673408911425391038105616951185528924153441430559559769591137898241232210189465720598333064226856105688223558109910952563790827685015830157782247658058233146567827879025933460192800875411818394571578247398438992743644983555520125481008972864481264404619413434499769446920877110893234124424399331966743019060613068086296387214946397721761616663766606304048259350794742263482101365306842429063994156345768822574766687112058314985919151340024815385846622847287888437838013332977025046303218156510417105023630540832769477527652645808966968847908858366934404612131042892699758664604817841291010503834354965514221222515514735223175886193834100399525095766231783279799534523986390057304091741991396231639687674100419389253826760621882909374794367481468219280481293177117647387545419359387518070808768342795731712018156443233016866412080133179862694761689528119091132791739902497769105423601320024474403411722440494674800331234549113097114000327434130496513899569925396041137174811496244886168333280554563877960064952339428614237509708959568529296962326177865626686124391732722755368337696307643348066011831236221558407853438965262044857206169629350966572492153054548179374797401414778170464216019734623816119473006479017702478351616288348987629792846068195131273971051668316202565745400239690075237105034478000957739303353880845278441461861119997418756621425193034244253347544831450598995314372500364731254177448593866247953102960538068649568377680031168620503409486312755864727690175406996930208201411762665348009488661566200936068970431225985620230707827973598040576487435245485135455644540674821730299273056602209029297733737914633533065324366092937491466823120639916041518567034939940433971156394578209796573743823362806644579319241834380672338989993671322568161622856446743705479858885246414282961686859365459936314559511980449029555536990139355220444983568829456215127999073078723860296537072696650118194510769220445225288862559675090652867823101657927871294654523059774798886355748115797014576198935396255145124841059760981114639568447326915957658208092311506622613569911555773090500024207112398761895373354840073803453739843184847731804885623744525528532829271422953843759386566132042830893900392649337912534898177837245602302179101805345837536510783958228505363445959770576769955212267530874416310250550418912320478093363258586237953642273513391202136830467260960620718678822808216804433196706512900523908914041188563647725589013414493915533034924078151692951975453966126784136157135312564279614611536680241062296343785382360072656189948471714851497724878793804917468442136655563957441260732004982981898886772050217783842461436784714154807955324775259328044798634659072338613239621084674552364843701614086183670527309780664570228784447570224825989739531172407036730325750145782708030373858684157019356556375440444187128940741904387073861572485644268837839317095441995681049804575383736928141058514295565713441252383477396049901023369378311214713697070947529939210314489632054121424517929443208322843784031125421435738965023948927924740519773749077235508412934734977147331138304321637872675617857577244789846953356866923579675430805752354261963958301043517356105571772990301877642364626842551720816607666995394955041578048221891680076248394626130015322671836654597869404556107819708885985715941009819092951228891134468090089351465781934119355229229210856220956306803828463725499490693535593632172093528807404536348838361671250473961931999820481627039924398599962990193917537666233106872928597463642398692815870192789827478978593207895174822579651324353694899720495841697859161487743690123210857892972552141909513789699906423497922198729921605622144831099217376113536322216698815099651058823493414711166027560940208382755160342916119157286720790727963857540344322083543666006495887667273659314576487845405570368405067803717883164206017189233029113337960647445484841703361514829138331095328655698184288185181783472468161656021759026645104624898800847452111019737900608421967473998874503912546573741719257294873995271427136802522922913901099739270048054074326202453555279136321307128976771269221258297509823204463255777930164402507654109073484755119403339455545657078924727042353548110892747100233007636861277018793989706956950570161904200507097735647199223768849601901008312761305736254715874547477541354065158596446040792655182227600407525739674000687870167307878882677746337274399458145036732203472138484396101294813682848370329824557697658826579951994384954584867000862449670022382529689868155808574571862482531185478570822610323701035374579153425133392818414074381675853420630296844824756661267554793729201755410065813222317181427208334261075291151211939769032260415047980560562167272733608864619583199324876440617929634009053573497603266514994007713944136990107988390557800170045090844108257816633769211823439545196349264904486579134384085705381920710045899212674775095311490502814437258084859989515131634131168268140887526170143710336758887456938046641290877746612023603429813828044798627636466986390597478884390227356616187616861884152160265238998047014098677261166288009833850528551904721579027859280332319591959329769943187913433644167971263338218543053072918334885646955449931707972364577388463782232305867371291500928049302657988965500367400445274196446502808847621009027279213463159338322229772768339500624529554197989211113842174043450606032774285850561971028361389123300951055144335309156920939836477420786169949678023913528384169482055068572160913760205208796994573731234654534952393487117114193061386260853296240532825642703651977747559070098044773179594539368572134999067590025817579441522834562771878891159951813434753436934367679819273394671438890264715896446316388671756456131184399372059016260863574148317572071319802622525873771693522277922042323083051719724046128367775551316850148024148887434422445028017531069141196669283259918757275902342105012035281467267550009388464299811550337707728184601429879852335960313835288775837415122279638140335672664186367748167072434967402467599627439992252156520690449341694339322582722021149766214732264552592322514545834685110934213821310535910042782605706444525098885432709059933366029417362873743360426821492690555427972287887382693017679015771317372836646133668673053308861403484760625842901083590555185430166172549878477803712974264951466221612844215188823928172728260342030894957243378343749209379189180816933476241358052381070288094721005908643186309249151303499384685566482663994041047184262378298218848589786160836468725433951822325039665126215932435888792727612548044621843714033066751707688098494092827820179529439803268315331951338024575278726439730260255286611242678406039482660943561215189035125381617520788941544206201865077978079816089067986179528926031956655283194386387295619394895268397627249122798802728910641003881937806592158366701096807447959668997930799943346845146461051016957092559612431874545588719922590372780023714907778777378504474821139522558013572629110498768522168992799632225704058222398481361140841701561764556580110353656775057390577177857942434653550732159712030772214948847606170450117349950904463484911513850379607286199603406444993969505702318059653415148986196018936983164969352375855532558021164828249624894735996737185288478500284179097619749558249865686365466661834507944924113886238277301571432287221107897237933817436007993417269452122072682621557452443463288832174252999265178814598427001891378748673801354967262129957204604845127080301393744044962218635070116617220392019429229723561814991762084186118831216697862727997705001128781979008984309961611040875686632298428464301211385196042028283948675366729152073573554989477894900366450871332915244251096880427148883787407347525412560024282768163201946397197895193510921764322680084677056624034963108470178037412783749551434701465025528407826132290416707825132112932521033670842431106664518983909386426678691780188891611525759571249307421421776533577354826752999039504647870648641113609899234444632400508135626749835063715401016129285376204788621591898715709645268928938315509180735330839544974014475509863239288170269148869174916274141053313016035144316865238576124903456065724236940346838019211150105460948276170316973419244954039373352650788056704881286303832586920688653890141821767987468992510725403139569865912690456853007471713773434062772100146948334801136726767809451175254558333099684862263494682755243945527876710336994604708617236351036071000504327024343690738081300696614424623450978381936655877403280218701998391452873783035452766216293348955966789807886020336956603536089151671549829204584674924903297921802674281388776088752637155324458894823042757344487289452486799945249379071949569354182491379022528457270694822060942324573071582586053681831056820275221909217275493537865957739904696844148466475902821118134048951121162603649827218966128628837503201000815168943735523244103018126768399106595871600952484338187597521367412398806954747687723814910573813356600912811680657879930572208664854250693395547714700296847824352881237867160636796716101749830982677823775913559885010935607884745304413860212129534332030375247413836980127762928119854941412979586862834093902760499136287682002027317709063130871403902382361016247162070226427379055902534939280881270780724898029474114090460898214687664810181295796104672830466348681539046171646718712800942598970314801286889458320631177078387432795689060122942396981096390107784542059693593640601526194244569461632229426130792358128983391496605910132319788521603675139456838420391478136206719128303414767156492461663882203383011937113480915288010856757153890983908487495859545904404645698801067379901946531806462049330917719458011022228619519949417724369228831597587514161767696761470914932089102691246414565065155448724653740820380647726953869020804837009597191054490414360353746415679497365376814421162107244351471634546086753778601027964967625235233433624172746436837133942504033634541909868038943524984005223972015535472421383597833789446758058193254064643301802940043104188566765789386032005383168027592899236357630697510342650665159417205827421131322090527926747852571379218875863871112492585081489999921136534173366215421781840145232614858118464965884710806947082954460402998838302210829991008574167499072256249755197112851364902256749248475618550990298355876300742885851017704616698510731717930387428975060503002095297361823634080378434742201773008947754155808608254511999372269049054861101446112864668153279944803716656008430663568921184394873895256891543669762115443313614029139252528731047720571881421326500313560482443678684891968939267849519983649159680206199525642278130337065110175773466681965404690021457564754076214250422462089925615647995854428520455145667492449021563930654948483397936607276729101139319545856657186364161393379888154728582682894137621859371479880266394725523296062948086101161391531186237805001706540323785515142784643010497757074327978075220980621756343679024117993152395207429912395730662259589856271887291888130039197306538669782597831140973616466360946686243432087077555203802949319823439653259222372837443833753549404111224358902763576284036916791091556611589725071396139707964063510870319051942989358759935038775366672757863924436169463301607933771138889842056791190260174019768904259796167390462539302585427717175536141836531857337642051734289259147728992781208970869618851961351845256700735519034675710375640538085068980134422076261590448157933952644254207259207348934173622334805655149472570728913176337096782377315496229312749151852841931568300649300205129996235668116673439622063308958026980679237615283907760002299710151359026607620601875023882683850340349768955129730521022766686359061595408334138718302589249367093234900170916981757057143761302175027829736320796444275054518490121745842062778503269943980663846088355731609794049610735730812405941118024304257524098667807157259543605262431905748719277973184265747129440821884170552741578788723129710082900072208037125387049998015134941782653790046639904297012340656153497637680059503427650338023705091302186203056101439346556639748983475900360025048596016716711499489240702820751285418661789609221212111044260476880362153991814324224604014347205261765815944462373199332866612327919018328472394745862359249190039113452058778512919015000127626868625998112765260266124743105214339372017190186841477424075233097344717278426030348196520023605257662922488150227900452279114474101836009003772073524549968105576346049067379028745990161125328159061871422138059211602213635122822420108305071010614207902299054423691718595234742304417356833046666350576595475063709041872836001963254403049838315281924468378801860596352718862403239884116089232700160996370639076507370911854144106506782968486186291890498596322924336980797130939101867118154369482908702900466397599305754365334953106132567710638362711595694344773862058706941914877002542923070530464815083169388154929439662868148337516587641058700686615419808188514985552858939487595893120259356171927059040172920532114362073770413799020515061641788045390618422343230420633021498242592192046768781703586192878812496094731409588993879103216975035892386056763943168591890254409250651934849353267809664153159000742547421428531057355548008779331771585153421891577664949067540105176592724952584531154052286724286201948290894421932483581408647664522064472845941424502986706709307533469537090630745446044382917272695265253764476534468282378725012316341984449656933032937272261612670769840305098949883878943374328383370615505325483623997398318932373638289067198760713766117938067372446319952983741924928694933756011542754691157957073636334689820580169406392959174503392643011492899102004627957694851665341230406242993256934696363351764086261656087906296018917307993307256391908646021174936818672633617110718297904234136842858052474846315992530539165640396417578047282398755022110156137984625966836157213205538388102503490800147535720045436709308459740066766812731768532866256714355897686992572426488354112159708145729842107896382039851045429055450403162011025384980895441106635846264611102402187771210611074783211672489174058087737290829893828457984135211159127251206022292818186155614107990608905715352485731323208301997780508506437944533891554441786125457778105379503070410980742723189540807584085979278808059997418148783663978244047278906034812689581042979817876640230962764673878251734930038708340367391620608646785785848869747041485713206219208538748907142309056592176816227804619795160659525649446201748251796735272962643097784943598555556671660325399343481022263485224725863747028995097876429076126654215509016155718585079430201720137308755662734447212808557474269113339770796706913179805743966533306784623519781633199859319128000095213901088043813484438010384906518654313550150716983168394701274395889014203283049406820480949496942427781021933733571166955393695362498038991293717001056437808077692821937126588974103770826115641583835249687834763904162076179484302499532910830822245718402008429037634343683531993883312131634533900910078925747618631081231031722487558033654153614402876619348212063077372292939284885385100082069918996624696648320830977002577132624956005211019873896915926389674980078433690625854789998847939934860118431708085148514735892209006066446419236996945035070481213405953679605996662138279982122294650562378574384074052836140725876872812059838140871012432225551630040963255153265464100787483894828957373524667784059108569788970210166150215841231468213062292844351440732728482464288687444825739582882724123189551159563094504827433307338602054676796984918816637591734677507979600951219254861425635464911939889398220735836621830487114329241333211462800248329550109840744291255826725836851383195645521270005096521637657292346561443103281151346892604426089698434388148730258057105750312089207710060887736544262808938290467161825519469920292076545647486974778259382740866323965949682245562415251346848906854041218881019789010254951368417048756688703604645488256316459593235423739075556282188606486283464435714791222097637635657976585991993789581905589131307303057203851965422045832953323815840567277184536754985753051326953424564664853360560872365075178908766950141633956570854091714880730554724903721113977155716898906152473116541024954166404644890496107084549328112732194282673875241694787166010413835974692905339966724446235300797338677440910143784728897483552000861082045617574983866039042291528359155588736365247708595617750153400869779771427074506369748031094850299892731444439861893212863980073105064203140296055795046265591037955810817636685204240840021350868238079918840110149374408489504244219036385507735202420486186322880900614456175520947215076054516056706418264478206369097872932376069587099906624970381996697076792051728125702048504551938567848697822635939728527337019775983131840273729665009576114253886386166550992480278134162836212528160982365346607768950608969932697850705042905299274823338226259514639659045635277059347120575754091125597247614437849944967857114907946430284648836648932775993880907122948204724066274358392805859416764660183488662014914813337386824040059095419805177057248379864390616511415582893350521874596060551928982226543791279876976906339875467190387831080878681110291265204568309351504040719321496506691934573995021646038212712342912163557614688041266544279865812132761276689172593109678360884599865410312279156149653703279910837557052184148508941331951121202328141581586679635077832645706604441262745588468344292250428083720699681841621874218360891530105867254174665087267882748652472714691232171197140861951083683441685084958969998427306294160876821625145267443561422065604458401284122302682837102636638511717408510011752745737138515846643661178745222941851798933030575526631575305329869397641682563983528139099414685524604303093248706749365923581632406956115200616388587535057822572352837181973672131569784731797992910322992531246517536639193646486384599565124425572379081454869302039224915321231496323534207207319741981462659108490959905729723507988176673333976111763687401744402997678128828265221696945100577402907956473293522430943288035323446709570069418551061162709756682325523685177031712939043818047319567738289069474536036092507599505720592565781480422041642028530827941551531261187582518341843352416871193343414078233509089202489251109934873297372410679741360614105441858904280389860643242669743741212033971623417229062181881124162554229722597670292449047903131874109283704928595866612523774550491016719370792207856206934322291860439669682940575874331997789096168095712591472032299419456247231511695259903014097428958013545527549498378733295083480872393042510539276121328955544503170468635295985404311509596314565836410790530265210655515916813394215747966501482154187123212335552927723300299447275639160639740074953364692135211317741094099777341998843186547986313581201360782770686041295269634307019650065760156413073869556368036735996515260665552836255189144305467347649542621161042361321494749920122075949846632905813646074594148615627041231305555010482204854533709159891000907233449025683945528109243638939384764265613299489174931611095685314636263242449711957099586776081578780738618008147861691808820114334900049167427740841114345912783341939644071753878268549349539324410560790294434470062994824847812941564345903027154053795167957033405581229752447522014713130743067328850916903491554148588238663018185870933286665984448457742453443558892203517465498571630237873138471812005822118215033733512237935130913745920613609261697961364476575827265395522678378667567614216655207815771457155261577697901966124278048094351605665221334740764268582826641599467676322188765162694611138545337388874714144883866114531862361946725902603032797861820172085770904472001611484807583298026033404882137353745410907318350709900382009056646070615110558085383689044632980489615711704606594784992776665594300265423395852398526028220930825971879236813350339158517214624190617312820249199022581329082034549828549501902995157852734483827416492943781223589447386764187074828730314004053158647202675792346234013612555185905141646807492798483136008087541143178632383345625879316283633191484566007122735721388093443020736905522116983313446326605123537452386522249148857546451893664215810846239495952316806990890296277273947674420621577650010457852486216373960885985680985109894971437789584614408370270470668644107706051356894198345791285584077659401932337534726435903434717395264516934074036545289057652829941461459487250959339874029431793748154079418005388394675710797359134468771067959287546358213463467349142925628349366177123509642619947451936118420714200372947515606204597476591304330039784015167801112805034565251262872871163811959886994687658289669845718338863845916514837891089605025125597406792669439755840536553212410862705251230752931500506690922441744432368010908803511272713803097897065697343225320349246904808727215906551222949982958997679737897686786541969543694786916033273533112522421599072697191679995654233686897366464458493980464932194350321850686010993822139221136922832291717576145221603371015592244642293422798395894578737852360992457887107926552161186746588108002725732093669266864027329073856927035880248092867794540384513121255857048370979024608787305751205780337183108318158012762721844357008696486124199893065207303466937041747543070475016981374399819840234235776896473172321717972102348684627848454160206922935249193805138486225708362341176856121654898731128142877673616382819993671359582287645911011577189575815137710428370216835705629575829101013382416621093371224536371679795921303461724389084945588237309628993206686924515207493849966552756010965364321865367941316444963851474889908396044044109182947486793795503305661658116629417743779552596354055692268525803004137395229345630456787300247788927146834532901251268225151494742469821401634724702801677201446880500289546424381236072314907143734018022560314294197584161534815402308776813241734443536143339315001549466570987728281281966309582533497979223309930797827149001726785079655404281354553132923846561042347037414897136791178407560109862540073243539214567741133854359321666866873070009037468678313778170356464256716977269517579787629006735232157638038305643180849806832222320903084568381673597069426655743524791258094620010111214328644695947952169762524756643844050395331938716287156269389695494955689537517430951244594299914396068062042933722199018757875132215709666106796779348625975957052004846340157026004203567575443666044256603007685671183301150693015167669565600456493698225645502524274023142753651881773627879874357164234231803471318776419049605707239666982446794690089587401083868366912558998873430359286804012595615178250585463364226819484517439278451172428805235038255454808534341468962686873208521141666786462524490269213992819678211757414130235887287563422987067562302863624726892866244655605324337645012046550410729906094271877638378125251576225621970744193756717134749174060376254819925839801055182188448978793604292014864178352155447238750403154536192801677108352976761004800766510069869460682176622931512594504625954249065243591300702049397022519238295412434154195447022042203875077904622103014470194062023266642095040809809839936042075961816045607706183286304551041765483767547752107642060964798885433736063426558411924308656931326674491872294191961344789993528786653395790847052484301129456679794834423622233977992073506458509989258643727965780877750352056911082596410901771121362866755396775653045816642807570826569609235796257119457138996223304165623945256719769161849653283607471404099425650133809079561960744622261838932752793141960328764944940455846414580183886681840735122778342658562508437809189705063459600748900234568519205959215137224068234667910973408459255338036385547084471115603154392402945632491070583450140381055986257408610165243400300754184916441122954561678934556919952451409023230920606461617414709193522076695481409807237938753011661015411976029715036318771342594455245454756542780493567280393566572342049691231153473735854598094330873467072659460942370674762406298257213971623924733174514754807029654163286493538602766461140359316176314044082411640686404432786166549511749771646878839316493031991563805717453104458225297662740024399918826314872901213649808310707755109006005216700639190548216253206171777003290889669653762570274356393931604418465860412065656400383822372920876336360747194991982993785645622902785025909157608084433840155081054969692922051137024305141560937838317084941468341849748382647066306517812160347925966078546447213037508024944563803640998396938246234573328497882202802596095575181057780630550106900677441364050396778562447468053744722816729112758798788610704596703725844424434852543748665565216837279067270198020595718400044311269006685864364818590056406341703896203195372030354463426568006176843149464203371967760294083852599236121622288518610787362783178472660402467958684126151955337080045715355634175540864524818638326152451572278262690471302968795206498281800041314486111856669078464554401595758967279962682929544047225215362974176631329094082505156302355784972901316364309752973881492596193984681903067626459469426844689016430065091843493388026568858421974289320688781413715009492246725520691440358464886623146030832032191150498278021904209474614578643595676418732332571339133615275185077041738724769401773926376485607579989808340455853902280354692759688157405121279765261660155245486973090105859184970421746328198217882649364611138415483256699576675746422128096530137256555190395031404479425950466179356703430303308845210563673134388364716464521146469662224989988585793703245297243785330220724681869472711110271373184270464559856601614420572759137675139995577932737990752140072810896216271765347014198996716708823907936732223871639374424702779469342548903473712713958452359544043260067485286629468597037816795822211753061620571069538805004325915410348206574417787637370426803476822523214688298219855401833315215029204933572371599954919649020230953096538503632004591401861111254355851182710512708448760172600212672469568464068948496057440334046765514335764928630953275859272732761068882370511818257516958379542506297787797091261780649310775569964980864197093223664544726076181083889161438631686506419006416559447246361547134813058744425667077522165758012854264909412054210708457494683235850082793308069659547592280847993661851034176669528118130456084853186628658695226380134257517968602116152254025981740100050891793934695898292336968578305439325067955692570364608214022180772946095492265833863319583043950720039870105852407763560809563354419385156506404119695749442891806988381879778060465053654728779219960001095717874339474742783457068442981802052397200141188672512355974903851115905832999322762453699546637123830587215073642105420382059538825060550903254870043414713102450495487046904519223181923357519523502145077796656325389505790203969618197147453942298036448938597220158799286532980228203971002843169179117368539652593085097932109508073996242643209228928989492514340206079418818014805035254286512684897065799090282880590572298140097610654908004174385098072719321227244163794399046363519893411489707180201867586414018173209134220682334858593215057998528713043690150379978237671651208806705383389896015381656365977868415948300040182016651072153617338373599883952315140871393942753151782876109645353594140798771663270517868794212974993144624657201651510267591917404263267639322280248325232323757833211567003731646559315486650975850610615120827913611719242478445370046905903707845283874811976163030298679577727102871380853288990639978062957427040541591990424798734548670139512164986637038969239901207894237746098848141090778635679740623208958578046990208401497816126730939425490371037178112882416979988131546407364677724009064662478864815984520128827452043434454576422172642733903203594599360431457352975634514844533778624186145911266678551257369135912986007200278231311935900764755098894718508749526375942903103748355188864380617978093650760273485959877919893417507023102389340239894465601082892525123661077156196653406267235603711165217620074966305989960580873715228294047530639583677464319171055880069139662765028023082585256562181121024178572901110003267588887213915872204865696862973696459341261748459258073383597526218196971188551978342645181950199047283481777444913569067097222902856196661599493173783345952681274532594469769107435028275516788110418027541645589742156674706452293758326541557052626426295281646099849413432060260856418317195948572803554328302230489133643297610709751522008302950213372080763241700922713017398908559982499608131356889805526351409364838530550743693754314329288064280958166736863482778989767708610893345086497890986900524899387035767725750749144379659296590731005165957099698438693114424416889729738394859878180266719831166983101324273635879487675998464564774569131694421400653369788257852761264241219436264015998443893511831698139198683333698399025429719143847202882694628581915093160708084938846697853444477380647854877594382039951478981878446960175631740350055099842978604978183371453513331656024610925923703112957647291877468772683620480471104303020462036239931884106416005601846182316557172865953280751550224859227035011847367505753866192924475205129506048878351935783424541413125056574051522614676000744321290332091710850305787114304663920842232561820745755796709424617988530284163586056497328203649683349675429408390702023644751371328280127752764104269131621369642344205071452347513836293155223565620061718843138879808477845617423028619143191414835742265805552047333910061641854393688886238819421556314908709758314089229545575553947499339255323328837228057430145107119558870646637831553130276996806935759538810333671592402775424948830863114200203513480087446510194590463083717427151726241082405921999958093753938428333990977634545948192728378794967380687065987833466576916713578902930705165554558273222759566151874281681789082896892618461929727459790491111447949573485961085390709536891979567076960975100877849895124162702769938254761793554883890158045937610193509243520317740655327343320388342045579465925211696918937037497746563590926343177913512020158784911920100421300331622947328541370283635141436863540959411057072764045181241102731797970672376741827324857882984452808164987535968754628776307534759762939337413907141989994343411619266624383156125107769830428716660138524700127598230413888573509043575065162594680867314901305445258282198014531951446742746031720415320437495777078082401402922252911566928109758100813837923796320710968992329913908603388603126087982657917332716500571257296028628144524861629467559470634762060644855811771468816740873743346244935298510175811495716412589591507002429991074964015037911507989567307834004464058024666641223495399705671447276392834556601934815167902866634627044152857933089354053590800424921776018786109966993869510133818849388797190859522661617401825358675781647232698953934578998482698489459415997035360322828161070436571287624547637813715778636019420199694060383207805606356973458008958593551875185396894975132518225541156780969411468335805040183989477315911274650828997765620727036177606504196548536661094668752659433210394743340673600553592895901010279957440626598462580161630268783160838016750337505016607415880821314651732968973974787245355161474434625142584453920457818605118790684111311977852337666593643154304428656549469537462535282004600996905339657751002785106676136112650682058839217358015332523944596668709082449106657081429840164771253620593590170176561974971960432755188271550854280556017318530322144195653518234884910579657369641707365668750213748229277791578929434477707265624585912323436578245971362069449676533737945092614990604746282847857206846569023622150198089025322762566089874245663826111962903855783530523270774152398242919360194915618391782712407798464833766561935230137945956138537805227888378783776834279843359832040238531849676855605702138479233855554548761125870219630440457537944704317866155881655645869091013955287625199312687751645286812465444020945802615375038653945954936742547137420041245002804418640674786660193543051037580077317970393605209574437893152160289506084869972185791526615376556625411754225602585101552871109599773842296533966610609604370188216798256631629419092229565283177091508213954862080235674379691507854757518809847831613443721856304085894902742105284225200568430039409089670013141465294856957825788953710798522608221428775114932374402264546420793355886870733198486112052365170582544604411993141100186582538559053487786959576893640372968098233657442098801917470301171331607458943288724428505646548799086456175824756207943148639127035342280211388463170620870773611379337471679840779706059292488688241356825737228159176328576636198092540162998333087901776932160885464305385756253647100260296083579115467252150191060697116354766064847195260224777550732901665926512503784324783712304959189489044895208240376649528957450583639184815165829772870063048594532995821817816545543054265219582445956520149939275528077608350785922740116493167092921584016765283618899381638895340599464138481471691643336023286074816978533836142493104173218272609724535466339937365887439344453660921156714048841623037718945506429679631634237511998731661779129481431082309334761022294848430094767445441691759824095694162176805040432350026632792405068833407372132547787514641300137555380740001272994855569824939601164387520080743957648975017966770089322249579618860677413300464011290130582358677768351132415110505278565862990283450252745350171777015442103613145719608516592411427029833355835489483741034804690481148168141085566896288772365680370427823163092747072735479162514259957901886147913627830731198711603745130590669445499441782260934578913750714447930517005382951482371648165826715651429411133381676465288735125929246532303871873143624491745087306771146949200879660167543318819035790430305770725091002088681834686257255387142473813644684997131816230964301349469383202187711573725294534091578501004640767253406331292187904500221802287703619155295681795596174772343815000962672161064041112749393946537530470828568554132270390627522873607219202280409178792044543183839944533124741665599172122345711985232806682659161631616317965389702914533390375674014692346033392914335701748648257773842911991498891675230939433215635425757919635169030525276428674716683958743721120232601388931825265595734409403416026676730456653069287383391475940771861973716450071611346188976143877253837685445931802535364404946390719207049540038031854387613484922275449156693096110575388397858901980633197734896678379597812426766601297096301734841420216388959012664530929224824437880770586914781777311129684572893443056250731958690580743632936907301446912862637905850042698657749865347344352278992680232062367666300657493782387319936964951511945377090175426555313791792489030980345580692852374457304846083338087501260513984255263416424309062765697415131068175519535975283105920671964510214875884388466166352206614768099264169408513018466223142603614745281917903857072528936403286921860278533003748891639312030235496814969075057401180434133465411209988592164968479778491367049989348156107946853245144920307965455659317900963427226588479063944044702312618917746362898574692801101199750581255373525570108172499779407893616698094444030020920681493365399294256715629984846949691348480848965907227947240534449726049391709706591719208311984567572895629021819113211611509561097066152226676228165500179308759059662416874561298117079275967577517219913626363386449034573670639462329627584231546966717939073639436265339333510152851831339204303447257577709137230627221141880084252438607285548380531028044751084557575942772313715912356818722438698088738957263095626888009585099209647245072820567156611373368236390310230941584759468632321898754574630980448400404398707110769549879128566657188234891721584771721501304329047606856882366972955017490900662680772948157055603509640959333532707561064960181222741820132666167619532688389459609471781754381183346299749170059704983382942288959475846333027810718870906115318915114762228209347884187770584521533082581647328907630565188530549943983073016886537140130217259767983893859703425530854019151178615634939200672081208037296078203247601491913891230438854282296012956171225833941259583825282966553835488118524624964392995248577482924865894550738012814223147342726422268482583919719704875387391555567712433352097855944081845926669057641292677577165197100951516760935931247728905992587861029872214565951303070415574177278903108089380192681235907805753572866357031081505468999572193091187717581308457578328197790900985094559582639792121237271211705798308349396515828514803840128806658522553355925122382416540340775936415372590935732849652573478343329495926922009507442448049723010451899426389858517440951912061485079360410227119691147674737744392246093945859896377250147078424968169347147340687249624957883756392611907982699517240542197188348473267941334134616163288321291961369315451312441489643754877961582613088536158317846195753386003050711971805776657990515480980498150980252513331255404633111696385874061617584410350578616647642419539105944322242339463185380869839255680844520111286500122858245588301131877799324769891330614517981146432922002290271009668238332115470526370250920972671896217387239927916383830704827965332893597963902091196108646560606050504086759205734927618387203365159394813247932897631457999215129328446480857822351321173084887042298229194480664309137374746400452017277319716154676810687626591451119922875546747356876692407071343861249466050837004821588291016642861011689776358645294828302541846995880824501981030178368140834827409352704154033012203971155801694731409948720023585682522386748963588839527044911770959642660582777590670214503819940631277958882284913242645744098473295529817061952607558645924928703377246138586514503948814381898442735787153943486891121873851917053369357258300426800492791619685528566197014387985930631551647275995283697640181755113754662304872076673875735098585373266588853210201340352096082529107473465177112034408338252205945924468446673650752870198789786365617597404098931956542228366125280061544558802769405293709713944435187903870999532387434199529122807181092809652717640674631779117558254467720166148718154924243352419010543327841257851593107314714419967553553714442422759093169338313081926142909853850141147007398210679630119488705975889141899532290813389423867241754094964012071389325858660047271770473798941923015483606408471142152767352374750503186057643530648001387289829401710809577499185257471888177199954505669050371610434754284419677428532022973772531657173630371667849731556945550313944204765543641898757096923787589636262663716182227541873395079973782592867333355784413276521290814939432971196095671710197286916924271617091691423270157629558162964385485909546563048016846681226219668389712704088280271549831501646376885625498611450945045759384871106538937697933192839712670124551959162365307522694486147386805971392164971901166272040483499618246530531018754207578989633901694044010464165525222290552164146275839837207984480532984381283214632168700039211428009704020635243190994412851210743854843566772183994970292182292348744403297347453581682436669697618162411111425267158044497595067132068705159367797372865624643985621704222213905146982664985005724295524370424190763095205023924482318445420201713029018245380748751557626998114281537977517657842210482119845377190619219704977994343758916347015007595379807608671969634651627375515542167613885433889857448073710652021769403191403088830174428801771170923641039765500621637516732913088087820812083198256697699821923361316261818262497685656217824210162869553228445317428879340871039844478838724244116766623066198909700244617225585182275607120960707085561328183349736439835968876345665795531619580826780794293494981718284667556444780373107525910776197667098875503355288075040425038713537644169990196393478429892238623765579242581001009696503569452419797764026397256648674323441946604084506828219125676273153875668097196000322262306226329675211713985347852405073506727975064028091265298111533670546056213623585948570007962761639448675628951817481582150876787885471240622071425893438715414461629786254509375446729778849725048319353626564445877708904843023669694179742357374802227407067026177589341500983902801713379505462278161666039325168195101951273204930941258241058833856456767079488582422057597115972970812537154466255787082641033468961118593575678878875195319865658710026159346959517219715383112628373805420755553379814179775975320779359355101508263585647499514190690938550139447083784985698483417472440568092502040100965216876201757119310860555477764921961541830854195238297351120339045448808079097349792331716326060897582693667781510315928515301865108166309334667493579929336996870454274481102460970847301764547802395020029594190276960926600792702847989745041886511903195169764360430136456138284024748807871283960697128279856265422880112862871373586851935217483575075830599722763267020888261355250178940309513741672857152292795913263953069714510728150989687247003670206677949117895193109857405621245963531920578797870399149253632340164444837403336382637148971720424259360146375950317018042937425320137489835943525657273251934700532229232449274062938858386096841802984059331131120734046993139893743519259420621524348127874776196208554529432628231890550527336505537454305978024569489306604382431772386112647544529883191573668282293622407926422220731033858770712976941799944414129144851163359288643612954877883977394986061312041969547665217800242183828504271561512517085458420648997483047523953769430951408581927183041192575685905970844105098211126227717133679594004862742837776875507957104364107754294727511972048320311309618755033426048474088804510237989600358754446489258861388762359892150767867360036408341578245477003519895312293585437655785546219564422547246718794633356683543957250763112715204823194542610117560034844193795123783679734703288329906546830292286264916051818036082148490704079362058538009117398759820347602562926560998756076231738143375885540268200603103123125315322666162399675127481894359016917106394668672161892581953103478142471742018258447275510877383434552073892423536551026162272250405145895717425127004947017549351972172342604993702556960610842652681952866047413473245785929469338781236049595050022712129279094691721410763846772423346052257049800194427788468940300380879352172456324171761478431685672400301837116360637807531122000893448748830643337166852292882550109212032168060374842404751397895645006380559918396121658348644890732061970976433700624467900278697056892309416867447981021561109841839621571954465996155207053851796615534507223207024158292691245945220580349417711036757678613114358606059924632341227692734349279798819024146229853113773629952973912964376013633186424517560349694222805510248892381309060593300999023761469836202014649071023224683083154852131346729042138351461716622657234364975463004971534942368299886901699809134709572275762867568654491996979569888220138678144033514596887230044507756650371972771980808928147539589619775826623584341478191020588759357196160382950573533941266273752688738516431661115071323181445091811234032502561018831742441131238795436081858530998970739040641761913539171770154522925178048882455495467875040506376428168077001426213732139324542222570838803357981513839408338891382455537454908572947519879080558187399765370710757979826135653249748089047981117617908105029592567191127139468769984814298445074773128392185917975857167770372333575803495851005930162003435054184362445081925068069158712409913248199221797740021185060977298963337007157670217603126804049693332024447551022607515538870142305378221628051475564889692236438439071098554079268093318718516890850663739223639797697416825610648024647855039225896732173199180294956229981989349321011730512738220603832394818690370255861758870225667528298842771045740271810003668535519250529675801080903842712903022009192453439624068151939540093434734174298342352879655078553002531793791653134725700968450066687239942306894994717494654160804777450118898475193079078747517454051946497500606676298863476908216699965480301621484307969691114958047173110189814739048660285680501723741255948708338782302929643637036361184490399788489249587202173632976604547290795765825720238409243702166301703147512330852522546830769952286492549449655679292735705473876070655972462133100012492690048968814068453709484593621376268188023271712493690942013409124637249766467868543904869633887422331119209506416808353948984550108787955603237501322292141834774214071420464477599844219417792170168323061883098571075396299512239974678008063096388748279552774267814231170600442340881870481939317688572824995622857204747267323132691613753512696126390991495012455439939041084094262556526318337011117942866077084649880633140569771524314900459331980574100272238837293257260388944985660200336497563947343152912339233785677653280260496443173843569362064074400664823281645617387640573239306282079409801065009115891300634883623226538792957369248565063755588988421774484955470508151141243141058329935227447468718520679946422003240494151448291758511435965635802549587873153338800821640592693275723194434178746966371704531101924007617143126364737768699486618592642806141393447461682646862550145062469058085993645992263703538681089611422441021436119077747902264598270724441029717209672986984599747060259448395350758007743861955622823505883390842404053565160962427435878701045148441973578029551879862598204604201654163167694179049420876380770827985622292224943142840780746822634064561361056207877165775382591343744140766365544654521475501552004854240768956824421880363718764901900288624373268772395579269623786607120194246085299930462040853935366236905516298332968698361613085048844477933553221428163218738439295088617022635742212941208428971775883936885662608222485396021412909746962756481425247478014534980716333401825667065206610371317802571345972226597546085670386979940707028993795351461007715934466237160507708657548938147038568015761390078744036673740464821585821091339648488834297827472545961234873344413216341400979046869998952873610694454845743814440337157573422749702898684358974213737910752532793566036423774119060575851740262793081949628251261914887354400749022042306134101880112794480140551543131122136186338196158757910853032285852614431859257695229435284965307625382360131481449362023513085786180193487798003943928807760647434875680199247771737577923184180398270195076809077180073520965020092261538560022321585915691929693396319953059479182624582131303276535463695873253693497518554325549971838369225032719404434009321426263701764784370451522800858261462239065907104388234210131978828405003140186272350135190092392325402537766681160913117572029015935263606154132274740969251833015312026116896229125365566641436710873561220918136494241855446677414495705304031984542939073870232265165898482879778704870783468888303067971006122763777167809333252596348834367688517464037063349128746044138599825971477573159596067874561540490458172411342645169320524667164201789318134569125180397211595398772705024495068334491508785125993694928055216952896576543261247152300973959673156178152179003702438259330594668567765029074242117127467820647927697953593538358962825068706618968937152125875491229546698381297009833322834027478157454983966789927143307454142196192095250364407013544466207293837608486685895272820815735987451748380274393395345885778758208233457298526180471246338001004253653142277836214422197017629673145729309015936499009259344242833117237172434666588721361282558665306138462987400648860079359161179158428950270812388137659595635325571480945798031757194201473976037955671702151734054454488658011910442922562403597937394066960504153817546353537217714787052682794729270182010009449900779558174447861885578776922074516963629236666397334333031300230722844994913740293411987615593742414390563537985222989531863612252277207826337756480921621019356577276162073345627566191834835380182666131461650318331296742624859234255390018853259527625049799193233465341773187593766587827185810640806580083618572528340955472266368746885402860309305227934071744400856496853164984208546924271141951296971348631302635822654746685647911055800255057992527732076022872181656332390341041035542300656889998660399940756868922139384854664799027026187164628323930561633517358165403593220866048310144781011974297601013898357153914674760543051664425882242408810406511902785972777072145052471427083050764472843680720513711940801578286160320003693390155997751572886455045076518852018817413411666201676803617895229247052407542911688619131197589516874959384408776470742030808186386825815266651501378251341430314638133385866292748361169230532784874481632359369237535083820248320254528298334901618412654245146945750188121153332578271614955408086113410793356069096624919283333859722184577189837117044783060181879832008891293962259837828760971237943591104592060847096491842751745687809024507439372592222181839892887681730490753539427069440507717577703062904626512389382867402625930793990708305303908323578939802660489412030388460927757047005907876914463911270231432430380864272604688566506345149673114532987732313987159774361708224773935211174940127479763225975008682956371720476692590342284173941439358988751550607795634973296372753065376191224240540358041461587216435489226466194982011917350127850800305229235576292787337767608556174941814568734098693020261522240415695076811384307821873264328912299828754991835901051491509165258525451643121814684358173005071181011667471891902980632703036239729582766196618805941348941569254826845305570148121852859803804227014624803841217530181923817471677203297531334112749425545845764340765255210512873697829989561405286955033555120658328402878260020841466067423230446217307973986168031972448874501096106732066768657175354866603725510914326154502867641640182309294135189586353654643536785894042249521611773173502715994375208272307459588177977583464053965023523014927157311139124932639819128936924704497279317511656180864078485489911222571783423102918155189749980584873760262218993447542728928741633968593403610846351553779061112806176183581172595717523759021324557612818392526883701881811874948364888183473560245834400792922525305447499221031769359018860751089752412505767796240645753954526966652015698371047980401053375306508388930755205954797472215228988424142749068425199650876456020641702404250315157126093815123903104473656927981664783363483732511212830057674851657534461809784353236619819244690574213672789395298712724169898445152229431453022251149280650114733532207258726914720642577791535529567676692457466913792206939865474831947303652480806200923385379949017590361910949516910929150595688169667041212893652442679155676230910390026448768984722008706195455108503354587151785666552969859159990009361936552968460145199259508346929848011107990911664419631963300703482655487506850611582629876900900053380046241000319269818201595746209967004211557046454261655047940849069185845847675345906667947426788437432938176372311475098876944645232705617460092841829088525396244558329080000028274623294177112880959128207866873993075179671780356232657048592288685487689943940025717300777787540644360163547183355143374326656975318234049542871297007484236180029794416121547135901444600314281460523362084153180053675308355780189639734742378110128735484358106860302760859198240975523101762320284745792479898442687485410651471962193926298179085505691972440019944305194476303760274215510085551647691963550029399891328020001146342927566193765510664027295216159760743271023216203955124301099283700932175134761971692293250810009732378091334839758724119382336090484166416967882702001728505798190518847628021768757241497256114171930611943478408121556208942988160854587119042921420678733881541527808064121820492750175580348997952514751607076091461882969996349212511837310885981590296380132172443298380850360314960962323014375925335957004033070915035761145669285416441945003927754105665351913072529854185396118844282674071086129573525949165895818188583916928288333719845859321019868305806979515425419788615461622492626192515896763737413857723032255515558616880650534436828678056759668261726595070145029027865502818728927852420738205945937757533453877365796988685965998771117606676528052283605157816771360672079299429327444373525600522543352384271846469021885532219137784515801038212685572233978926917592613013029877476792361719504485472120924324565791334112933672387433703751157651129125243686309579910661741281924650478625566209441805495238216373845265296392594982166435508953545800240223711745863639832605299625710903145987813180021411692570329411208255586675325723999518429547848332152019339480097111177286138617635405223194338550810731296363252013684633848427370534360864556535728563397525172815779160285706475688641810454395956291877614339549637145425949100613518476525407931691882306002908591515279652078821037830729338939055491596789356621277430046833929670393143220490363660885947279401189943539527695236760504181682222409708074583024177347703872622083242178220281763644049884173832320300553913092048414234302635962572267179994483230816154891298581966485814620664000707554617570944373857361519346460724064064666489045902027362230315247592198688599107089446148711493449193501634064072958067612178066977196623637564290307535971176884131398263173038259946956204472743316857293688007008022983647259677625960118592706458299050181245005635106243785197529374291059173541237784604844055899065095239996962352015252866917463798383388540534075593894023415364022809258230882124695231860760142825035516414910651518272928777001094055789039444263493639317844686359973811119025467277403242919149698375734932650238176937962227689393813867825314431533384283798543585954436809172788049613427936433602187516655780372728594834617940560091800840173999032301135937020773215515581872840328006757812472965918975034013661717613011825118159327161575661447038638506545300678988726953258942090953971188016320581298909925630590291610311182054121869349728393818977281530189385328329240826189121397337606216381223610942221424862042158180996427169712165928880864985127502247397121988022646917133650053493989880413418428526735329989828815907644174057549328876756566574719494566643226152891763002165886378528556759963495993903883939903254939360510004065487662997331620644138274621143382310038296750011015749246108501776381195078521815208167701699717004133570616526347946782616015323573331968478254570214745308504393807789603506087612886121729301629108071915099405272977378679387015329006730099293575678319656686478476132022386477612825089868630171096435108515452720708207583045859424878197224787317283039026707948897423555324185485439719504494380101499012102916679896330986216433572431849714135010433347746225071355197137890283459806315142739762162988988291232407569936915884706925216256513771160727651254608345081181921479710621972573762068467168241395782117294666337707850096186140840082485438795110389111555972039358846967384848138197823525518112572082519686377743709714881225335919778429012986027155002743781898494206904902579234415747129246983358947576286672234805059106180627078835707973644844305690987286643587125546149859375504114628889539590846869894317039739765967525776512121824711749461581667853363224158175442655249816090540785654286650330765847495024325515039857251793897055039121157816968790759605886019082774316339376627231524308360519727893388797839087181248234209936687093170708721882378805919147761335116430546544842917491572766977394685732817128663698756564557686477679259261298953902632788091279883848107332341559469021562289396866945426440191217704588932185840787195968856725279044398642364187699576884335528477121235216536950067005372685416028561801034849258550161088470944951864421051966144354067390757845520934308047442679918810525061002742937244743279232603477278755983450879280906841156688188349257914222451240429454365564618105014273889313233406192063332453342450082272445575368492814008415706462297166624733807493039256422695531747549740056014875354791774558970229810204778132300880917706110605424621989777724773884692801029003090136683983068990479519771734423449293421371621622220637929189265558858462234675456195801904695647095690188125440076746994191168510850430438063512175310230468110793330024963848516397087091791782418648906628573462123886694807481015184638665635913608475479657169663196529421389696500518836207900990136788292725543216643077214702685630014080415851856001441098794437051440350640318888526223563359670001061581123612892295039864435588305436145388999549735237449139345657465743120124521061425578129509068251945857414490741046684766643659856978692880314144814551338917814884609872349962408544957792821027877130331882274526598334269208880832965809995518950703813909849765340841374421289145189255447118112495143805774972672163282825734170111433319938576101823823294186848216331011711915760307523719480413109206310811473712121949715294269590082958077757196595129031446832041642034767731349085482798357269301223261853354765799038470026681062029913694524428539993440281027408440177258535105910812543643832412213961723516724564130214373899230749421567251567505069248648775218188504004077943933954235472747949276625569460022115115857884332119065364047524026261653599343157735636527279676492457452011260863595350800589054654829689292335134057271385680863198174431973658084518830575517460797438256386512646775594087615291267164588821467814968868937275681692328996498919967238951638592737293075237866354129226709173033858460086137014681172346258702290742132057009820988752385603055569149962394720145764091839229072986640745393880625612570785170056570065493828919797989427467393907664654458402162334271975380344781342919326330670709849143328744466729133762795512962210170960330432061900760712144557487603396536607908413504935545512285800638791965756904594565001638592355593449459707941292184280745911311351355063894053098518143461955862800675405626230687600294078761382735979709692697616611040530468718818481086868581162252412158041768543868313950465408311463758261196633313753081028521524442546800069653071170497636795152946963401660813954783593328225130899070777010317070307434627634974540234546336845622232118904977092601515550745032142532313221196534657083419375945372208108028349487660451497923623776980750909695676967221183137807934155203759593739589582090714274564277757694001835924336013106687143936906315696121484242102221290468235860042268733808795530269198200478161241522352450576474207467917338564338822127767587245089910768754353683925658097898750183857712191158929310015430805395459513561341274673969733396164238560877300768293124296833828373710212895165697651571061897842734523291414693117836332176725030294378247910688895659926882679988855181014499091994824648487857025327166941292861976061715699882332894832700797097184838016564659230547290865722838403915328400757364710856035348437602327154231351395461566400304246912370151208357143990910305619171823247326977423951327554873025772458908180447269184167498746179508925277791783932127997186045954616511604844060910431289659048095985294411648846769765098376757752218204370534052989539115552782774363982561385579789196767800570760051529899338675210430488176777191769731171180660668107951824394091502617438804814000331306871023607343386266781381425313311997060459652496436873426913634217864280139753023476122904773948065041194923694237937679962411465466753139176684992883402482943822397484881423169503970647254469316426675322361542271954464180290716169644735214147016370937708183618878117592463052785084419243154325404831470214903174309545660946144616888350383682045946533544351420482742043559217317081801838133209793326207727496248888345135586611513795715682458261131874111238610969049064244422186671805553057083531942789883095262739351641996026898871221600440359758073465338724611801401644112162264796317644116495140013685699310813182064663798755456450019287044167276246879502288134474043246251234385487997164040379472049021194463000060623683967522407929015685747045106485051365643583712465635971674418628687676259832577924767310338048123531133720625703489279268155596537180953214382513536637298111878618292451441929386648514106954349079976067208435533584689498093827025575017135359873477845924568788381598792014338663205393701287794996494405475082801178033771344004418569831676118950485235214702775362845401737353852324143950563709375347759570263237216468289205901414005603275748219244464843874184612405977684475527703436803357679231621096034154711598707145236956202818825155157925998127987543941311267523324348516793812269963592924652066343971535584379567019097794617351711337491874635466497771318273365176240512738994762285303188638915379780041026515002776924383427492149623561303223140014746732276668670330992979690305644206130321566235821811542608906091989955470873350928163759104081916909956644726719843014672206320121836080010322522302334983799893658538710708109463505646104415425384623275133233755352851221552839562765729223816647234330652458822555955161380973734230105041255595662913338089110975566355924355772133312751691585585350078887117988865073235035794447636317746494477303289476560329827182564405731667368595060879998475595914990035050497821769736459523764468512593505771362675888531181422968877523417910923513508218661894994071566155008193111859765755635088818563953722681912265022083736233234973173536720266550491437950602663811142164368870931243180696700438580380090914633575704579734468198452176492352343586714733103238236012155359907319577650058542076316964577442222399990825887231129417475234294361789321406388326055220376104941673239909321561381038639798298355076597599575383222559014522107000956716594972212630745221519031502531097539681916068783240324208911206714656771601983740028289275598361285320911140030107637215838091405452414566462001623284746053976820411074430074650436180331728648083717293441738947426227020149282140620908109194235352786606617114790342549091948814434208673521530919902370535445803047569510720373297731227970473230438927099433855282416503516175446780849608657521989648153095886630558358026828724564585774408383244220142873199105182086627603198410721836902509703447261164199092090020364762348950914587228770728826937890076108483044239105226070719818789206914351769521457564206340542855653401617969764109314027532385346928074868620196213786800243462517366681176477823973576791530725903398225642070506292865575543660640552319927233381158447732068177903473594501008861517612712697979970219370339683360195085450680300515467407289099444302543937945836973195772464720271358910142432642974083976984037305821819314948517037803425542054963959378042833960964033363773527094687144294876918896853904423348803520384582258137102991682950886835876968418852331067352582287897543877868154627253626606044896210301165916987630591925162884980861199595578698468788839215342789120007251624865704634340944499327658252968578299363190961992432803613167602241384386191979623878671377491139001885648881287574950436562023228377714206506366232436582548011078477667608896816377139109502063156016505778861818502514386546372841278083467022713759658521757128865057820191629063971908958044244867466408174117558076705085847003697178557581689730145050313928639483982660598476078947924853339036665666694414049239831275422060776296143448474664607472483965920792388523776880812852155207511593538699108466508868233066990435635086048773710688371115462359989930589097213498119748132690340951962795758197800169014437139078714840476753210638078412282493775126292297236813656798261305527566835956241754036876993551866594438498129822978667224988842544043845248453480667900094448346356724868313042808726029587921722150426980889131370617373398002512292321667870532363824888195242899941180515009137104749729487062183916680757336336011076966228033108416863406301776861955508679472658118649307219152206540823426896682292817050689400242529613733873098652536348864148743098644284417437930408653539405857974447787619754831728608031178264108184102238182623163658931076141177684552458444102200669150456612218096699584961021973085460971282432215325999345612807593431434821636639367340615530664471923033960901488322075206191809685345349196457649676841197607453960656222054289018430207558852377532954808983114610685894369107789317992541960900302597525907994105774904972080760038291604236162194546848370218647329735246682815146287177789264936885573415625726447496887158166390192202887968018461073808230631686909455359204418472782277402985347095158996225998950445924420620611703459493460529753219419566403626908358056844915924702722049800990287038763961368422777691353932716283524050602897321437493131558996454028962585913195854538965755251205915360364517432221516293504685950290855262573372291191429391361190754875939431809662663582555429778169951342241208458085785427306005941750894070722365173417912412085391736913467259949245037526549443846564110981691398032271021227562137600193156735647847385253884894228494931242134019228629553922752214201894622738038317526003720859035787246108805626955272719249724574327644872287422907541442828957728989857975334564484343262198400833467079117537503042305986325769986107018862596840685400339555609296992010411952332697298910264671093779549664184219211003561476897353127863311996485244442748262609936096426729045666639766159508670526048456579215249016037337110141178530309443295005268975206195886257755887878970138088390082055206302414022001220813755206608921574040812745257930759494755221508893721644962667454502268249299559002990123095465375764993589828372210417479675634431102037895470736458386504830994217235576857447558984500628741057345950084124790986955393046569137450039278557533463153922550552589170615136929353623316505151746102789864250857080903671514848976456058822163449960595412827544807559869051620479659384845707201772849283365743137673360727731667330974741338998243750116864647370608953491313798360087542666500479496724603180726227353310506143457955149520891301472462918667710087259067741335074354162261734988992417395259826328970109742701825483234515494299458251114243312271866037901602243531299825387646951163513439282591508564863973714006312300402778862346654717787833163551483822207237877793020934719145136881776412387961292989828710469732398412546390067844886073065048861803028223740272126945826345884056827201848085945225351549166338196466421023809769807831510180270295114983904570486908811329609761864996293896368257764227876263802852681226327062534230873212979983767609203062494211499266346196721797649076563157376595440287236795209293277569956239094604721547185174423497338936531090707017269731003178419002948674239957684814265912904638987960501754459530806182255164647596351151884496385477360364487962829878656041399764688588543175644408645318551080614012564054848991460970856187492826617946774379988834912734089178451748636186312752634448395135398750091347816522316832788206374282443071999467640768524920185803597041010337741179926049058266128770119311223463840050910206226245507323479099783696132517027234259371342056171550578730068201414589021967709949347962797434898119624928912785883191752832910172195389951507960822665435821810923787140228405443999612668099306523755243432081516359662748918924921949717605997507555404281417096619503395922087500859470867028309267892628390160919953219261772930515712891354852341892291760020244828448965240195809594181308259702362895140234631508815445271881076230867291668735864175475812540483994371564673679612601563539796750453120110421010392122310802014913593803129269354870363869953111622588488711320041370847865726505910873900169484286230615757788249164433785786919278571646113889954426078255142462762591817486176852432795417706685490292252250025270652639893136457098356339994750465227888564972765851858484638185892015628216169887320542569861470551289710232767679439790694906231313522488479799509100339678582526794735049917732126639905664617183445041904471604100963567975051683599208943113901419166469965529755043842480290603719319931458968385641331431743932173921063028746339670931909837682683889204652988999258092951933727386321839222515447557740594711264817121401677894496432625596599587519413660802525615103450089505963210264066543664015899212270898402312435870437052891420324644805230843712709547055309106081968633499866350936985313734628514626792982990700300355641863813523512674473641889483722577720212025149514911563021132055098357378070860090015237742351977358908647663778006527834934793717838479704652949366676226708041282336360374230389164162819070893942674023986513899667519682319696734504607012294872185657583170480163724994146189049226462037538061168051854412204252802861358628503038331456567389232582467580746367047079713606639616080883896940526760804916746853978230290923008585027927577248473430302268993377319263146736364655651986278348994208349461266290201211161077109453769317795046473328004782795635280324907505537872160440579232828071904687940464646760729980402439464036843660254674967307183543017552677303431787138637869157003245847553470310252566547894633798683744688632565593801333421508724242443171614838295642604024116103146074367449086762184550321469953317155427465228329344594572709457542158546237653467983839777074103293223795508263669890777018927415890087018813477467431749567831633155605836205201021617556850226281653101038648871665554990168473221460575133548208156976017406491916610573577364218406636886275196709309785535771237668594011023037505952541658037896036153741258516755241622856183015626185897306626268282426400473282705498546325556886777694187275632396789003453246121885308763326181380497287545609872269012321325503544143024417212129363225946943823020497782532489538795268408212700214881279902585340549315246031010527911136332404317302100340898463473261643897556177770617299148912615027338680619744935631541428941553652834195350919885040510098368821438728141255453605915780800238663172925604307594934528124044951942659284377484493003538477881886770004200293021081258846383001913674887350788503099787596172175280824488529873425442168603492967036363763069382661073660267970120541638852204328073495278560265180300722078170549270260890431201784220160040590653306737123133362001504292209349926862158455524615809669707870470476978633809002178665685888012620145321986368696857904916331500022661409033982209372929376032984609277521471648920173640257569348463451889293089007861828428787800865079580896100670573365838867272540418430716573899770357627972970807741640228458362538815555293545480453180139719048487431928733903077077469550918770537131439455150192751879815589612384839366820547521394541703272943211950961149271497393396804984458644118510248125277448371082670026390597733927117633009157976499551819631695510385107522350565786840873213107372965121898418961341330904827862595856083906559050062623102032199982250130933495255795511004921721121448668848824687831110145407675982637592677729119440327050584264992127528154608308351167331042800568988816239213275085506257867300951380077254181289695211928979828498222568158100553004007603511939656375851762380249897500531383648817165356703661603568420076023526545360285258120710477849849034231927201753156609785702521545869661553786449313686334345139451252170441065631721027811628224371631471058260126462286575327035666143192134151646781844411550577746823819874247316296632494023236849255810671597321085697244377320338576940094295343519254421445929057866323078860523646497504568653148281434424204327661938294248951030192257539805268883818838319291722636291791829493745442465856941837491875542282849960318738865023894123198956142375993635651502073016892121735347308867082012427162737181458158993500906346002683099404918171638261869642991560010001971849786540598283880486140485364237217243511600272917184429618352401633071662707526926215971125708183826294620132901959009444687395700110146587109071100666786259068545936370399655672827281279073735224874311950441380200713099913526322391158172973589389070765981644473299433170719591771283101078917860733636758501850697304350331948841467263653657599914598710466555688994020145648103279419218571004953465477813710222471186397277086170385247433367172133388198907733871236411019543149169190460796261090600570368201583046027132020098368624380259673834578399791462888904936849604341225458993406739157871873817169836724130963918331786490492354804024813396606355820581413554306453630537672017513875963083133800847020547125315815551197891607278809459950566990963440896889133173264384789330854897271265404891960616668105387454708555338411899451123745556571702477225339908297594087562838492306063572074631458317334400551788695805490059481784985528844187467481426085182354165000684844443534573456298633751259547063068973408986049094186757332833868602018427104453944490148918310475274276316534271014596810098856169547303625119325045138512627127149748083460643886884313434702865284921396714952516673105406891686518899144157145775713977261902528996567480466730538535289182179503417639963315723493197861851765652833733327980360966022097707193789246582344792248982301369508895524518402756343043996118796390117208005771258047465785136213125965845411822935725220751146037935937223802188669828790371331514847084528418967197351372010861142512767580325572035170769928608774071459172660400700690298549748501012923689087375715181295204288393318553930905728956754083157521405887591951352981993840014232336916598150471127321455085731561667903853393518619560550870857538994854325417810675867094331847096548345516529506007046539916480653724289960150184208276160455660108119974439684362747142250900226071459282539376078419954529949399254593008475599873755936936978613429401230315722659760086263592734376990810956042024567357873927262275649264708792389378026471481485376887169562932761822305546948236910710305114387958855297951661446923820033562102089878530517248720894612060983083051262088224372987349758128695475318635466532158055825496838876757283701409127129452973496289709082481396601562296073328056458465947494564918300602052903771481937136631804674059928354016502121357655153453031824949828573286687800322501253211721838170269328625676825020465453743488927562516313832606041948165617011587545860608119429877283778410419385266089497656988515855967653575196061608648865881661517940287436045729682208791957355453989253734404382547586360145355479710779040714047191832723958454223820701005110961578440219548361432021338057259965196078496959772635269016614254345513074236353470489569765395599353601386890250908223268656341862488669446096254827911993180565718895377755663599469003752657788003187140618393759634367203543711757107416245273146394792246469572858422083605911901656498519732983516725122745950085368722746314259270500632216670740058085794096030926288934058229710189116924047401019366081462802153179745442859568493669494179205321315154304312141353117720515033169335067743885168195619319621199088827506085509615769378658830113744248102402490776785132193032514738757897403398520225887181366630147171621364095976240006073328197340090192560285298465913849305736765001760133760148814392365526319314340072859097002235286053231357496812974186328004108418671260867425145729175630875774195779220839413073246015375916494129483640519404044791793670520751069834484299647592607566991688193777880596507643337065150339105234082614413670733310861468980280749193487436795343091202186670406880755042757202132411346656178984146712011878405356058358503095331763262612079012870561328361267555607830898393361559754787879309738809363100731716792090105535887607126779002680163157349615106167258912252484963773192691633755286403937216453817257953917884329999751021121457559039423365120784165499352659481348458828762628880030120314638413471084061360871969642766419186719211615271760251691820298674198081032556129757200738119268695384912088298161290203669615409967788944463040674280256942211879459152341869052305475714582885078612889220420610202608576301082853848356891568159765644038131102565778972723381043922590282078759064066050514386155215214066221768895192956145288136720842091010617644355515112640911103211200741920332472548284994245740432751116889797022118357288464528491372405009247687085800840006816357835050681525479871727996784965478628651912781034090336891916683554818588293006813046191309417721990662463821627407706319910088996521494123521649035199796847080415060094311059542308628433087914552528185717280531812671102521667700146968591339567036173802914962511303875578164191376732112867319494967168735833409158526094347252775262565266479549635540607559029594200044667350418377433927666241409113549156772998972075230486444558569344958982120841931350328695030396910220970689164091719690679951268872509642517345583773705226119188080675958476461025984567659864012509098813316521794015678341634262393613453047756333391654255880554299677363982059597736917211887531916211558681772473886054136111990376945910697404087321495904325966181959877478654060847439897075020006929124565657631030797407469763709229297989068492643750696778027873411656511110745926025652371337034871628702778258687293454028406450130065741662857606462848388124315361999738100347472127489422551112526231516675592356388442455696899058690425946575264485840203451116374644034482470129369970406696752637900063902981714652114625895687700113282979626638376867470960268834494994801571671377934708291098160373218450027769680481459374549239987718624177560614028430808423521717191368988415062698342026261533272053046093798918003906213178463527579386067989530931283004692090606948657143769177916295126482772456614328028509290428450506884317144611158773272254446258446210184206799388648839835424126220054003972264565025084476841204319602181968613663821357466437311840878019017511703938116521925747136843726602401579067354010664561312537174900497114779807588269204892018757121949672834147653766594521137395117154095077049430601552216363855530313633284258861145830975229464499645243190609041070974312159440751499683694596952543632246497290316850718494036935911567770215600357983949963547032743305689098529363135016228999460023443767796218556309383054182529883734499364689137872671468644481490898194163686966967385993756993646228537093696662033052947850062598898280810728750220049845723722047629011414688944571424127922237427630759840399252269263085107163184597266540887786113279531623182498048119271968704746971885118692719073159595924640088678537577438293564187023600191996468383965522571511345638615793221157076052546663444662402235875434298017777526046700036000852484459332417500005692673325886110850329094146294268747408641377221858715223727423432255886745513073015553374612712061397862423384174748372751588132484924073920650013133938659510026723986025315467744179275424581234500907557269110630974688851096684948388285922521247136970131361903614509536124612120111009011281735744766141977012291480922897178304204823412041482911257794902356708906212587207255478867582117612292216791293375030800394414623056785381134103042804169576312808465086012269265801297549094776786603268184822276402360647734495967619472888333215304984607383976371616878840835597418401649783068916773305787218696436270886210627081315791800265031994486439093481070385490703984922446440378514441041470381045153796672026519697684749094942964774219028395312864796807877313488067846130432205469363073570579810904327515988223658009198675724589246661953746640755144694963390721876841613254057438150795176753480424121236542790222374615278176529812182168632461976583759797743622151528783130041538381586065258670708556216992150158628358029435335592897009355199759708617208089480156376985287505784110068045738165651140928245627462424542934009176570035210989673313865134133116465092752303284831147535017368471891066547279793285047487880742565318489242147974977564851709304973385635461302975701132992009897079136216761823534759859908063287908772832362141432777711800287265211695056108483592978306257952479079059823501011008853414211334803797133136034786953184951594025892791319402154575125590425267264178438140612746099917761577535790728481908401393925825829920618385450501918229380221675618726428544155744586529560774064905282666624561434866989902670306049298856597353334147140947280329275455486755476120649704978799750765138710355659321606666430982217850455227442194333685483533213343848601017560058564393099108815840904455398499048591470380348765409638093882997592106205938846523156935224315335085571653903948743173592320355774231530439702422871687623834826374894453625865151088138530970194712444414260325002462894699916461052405735262864555273350048289368217839520576621536910069511683293070388041655562789720462655710340902505279527057860013767041737491630338259984462436318012363750978901905705966683567268952148176014698623170497991878700658805433193593680998788744212858023574248913422961134167114811773428948986634140145055951689897768535789164840283513042684968360116074268191440429694408900469342076673442766854183764350627167985206301670072704741152961779249335044751120320131720238204975702824124886247869739942904825494145210985658368304333290851986930711627063555657598178283599094287427446119894081600460964249583903860568838379719283966566690137282473096684402287624139888186416397997638205456032149281630936064309104837816779061025288868979805897488187179114374070442864143790000127677202111519522838348342638922827183945025691264815929053192604161890138505723182085224120091892352255307482222385913709051486035635195005239718568856069271716529874584035245117322899609914989487355533649574742707488698684562718264934024161588372403423058688154979024183199011918180505415976835390729014767494265176268915236593088459836644417850463751472435090649531483263113646062551897144400229708235852067523985671966427475230208569091165447958281560114610428081480425518171513839359485770683374835799451047372814470053783908574550417014700523740047736830113606388633343504894151290524723383237965127959170208178167920111877227224903888497904426892685340720678799707970174971876720261283359132706981948855837420363343300372152397547256224128127454527503169388276202039406861058141498522508504764819360258178581033993555686539889250231164474541767853517725885019832946142849994990094804798687873423370611019321215759623178460705002355747088825985973304954396970447278927142775172336795144385375541973399437115246577752941444612707206363676960257989261132261733166000271232925023211862729157921966914742751535505294645528737955925014553787990432960621849658903865441298417506018118524098815762560078332853520585942757532165686200589189150174750831882809051242503766283533863995706328147012602047487067001017920557478684594609108341754803912307078653863137394734601966739096624157295415902811547192554494728649347667006081473474807026774586734109369815804982449437853783810356730283752258142078504404754583085528437925259048776898315263217994389419350099555731023753264997450393897490141045599978633015517917546735182151905422267638356800461308083180457347060700737966649933644659728258346979658800467097043428520321114659312151464447946982623197504262973499675867464717616654568462680630661606583531624581531522955874449965805297307339770631082692475830032156159132050818615676816450679738345330998343768256954463374600678536476281104621366255214379596066126224738132021202177771130313240404578623482106986673912726340738614909476671715021905197112828042334804510799296777246553878582331551811199970974294465934611926678757598228888521594662074734599657672600770060528201447630231670891807417468357401595310156675876193488704024855268669401607052478279946631636797685649021350276378801383236891774318316474228443739943382642739098117937135502361265638231646740808169152995244616705508780332949974380140537637088362525835358292828878468118201094596411207749279304516141540160229901431866933290956014369318735992759135292744960182035905487913146591154607165762537215584327402582977855577258623877812408690985255698728501234379308776741652095363580278924847881476488679669899696513863407930860866387382324415526664405725611088668566983200640943492294712174560699851354541139103956663364722908174102995634625532805354686093319878301000036152719173699604134460698650752716754811307061790517973190892278131346875901631910195471942234081368493103304973612815018780896217943766733776410977064218509016515382924187154578089217199975070140477276381873384223294080222698585301303406466026936314780713576103432869299091106585902651680177527182793462158027770623709214571843614479963433818694427290945759268712397949625019225969959301800373830381618051266153038741632608308219647407818326616458135453052040025575870967898146359017991987593709542756151249589171708084530035774970757632672226251623019943665993939525491117971455612364060688894688346158683691225474326018570184835587203804072818572853946890642432690425745801169556177902682165509788286622385748798845113392398290448099499064246802000399272463159258673264605413128376917084655316652974848437217378674675454357691935660802755859886505283931567872245463969132997987451017169018348780465157111206841903503303367473176670050324646611548918591234607360019146477516535855330096882348214309465723269663897238285186077178437053587509602877303138143257577853997814573877408622174334827979641727788193284719581018976747491306309090873703812772294615152355134933316440039925116356892571917986887775328061392405020957059107793797464463109104061541046290901336106021839510909136795658912538434596397722501387173352656945312608914075631305780510430522279115849405290969860871950847690850490546966556440699887277728754099031449877336205157000450083435759550821601247848973921471897001455805016624438542704797911333107539975001302875359375629937236952835053613387830946631126972041164130161353221713824798567374542411099676589731100495570136408660009324945894756066724227775395107052524395260923772028312066385963932066719299768824593677082227240926628251276399544588576946205321086598296358557967639894118939230133614477664844620217489413597626301714575997988614697201311082347895053914065421341798433470814674181914896628410650759800690637173805044678602360904195662928945478424579525590922587951120002377801153427631848962533294736703979974445208894489304571579637320604266782960195405575211770682954832027436862137947868283366948344901812452664906973637211903072326138705647874859903164169409919725040795658808457030888766505191302730771445722245901260666124767241127490348436630565514201985318175932715955005613206345713062492363523939816806687347885028301837841805330990261358940704962371846660412843168054893885235014098712691717088207788297549876021660889571558038842724371259038740043172015564459919647976637075733638793121236981418741755487409125280994592420225301298315990553456135243718968412669331833591438626508331093190646404667321874213386705579624586561708987534373640633471455647212595950789022125000404713416284244640710902467669541254155517485670142478046806541645159668181848365435161623978384833085017085775292862238247997772459148254262482134596800372093778858334595002814648888559878009710622898360019615870112733866859249765370060525086270394080789214233843860593750993565680174644448337080897936839141110602510826332865210871597436834957824611150160239813038534730519409229055981556466971347434574134178102491063252430748762083958076314128156194298130641365379836611855479168020992777116023622509650307042566727569461157242353947324791559275154997839159360219433508415268322591982229806671452886855206190390431581446839058029905449848065735774897862993966348708464007734975654442435341010282291563424114995985414691151026954646961070330063057350563191368693024706903362943025968738996716381368767958113846586819595925659578116896490556376835158866195763911374010411738718057268702962680656581889632428958599780149543674786197497573567946079918424025721550923450749851902465940078214483709207228317375977960732886137320599276521344586063836495457525956526355844502459769408861425443274069405462677765991995309752749470962976747505555196247408168566499017252631065563169986889525912453916386934073836407856850105201393585060091082991954861765840494378508025781857366429106753822519744390813167357972290276736947441906886889376086386821176704138590154535384489737668737203648873761254608224406095482117119264357929487744864591008045102131403587561281390853234689573202163372076098198043363551506841305216034995862289963357617712981617019646878445589534818760428134707876439778509660818153519791256328000263775631096224607121002125483252209315479259190303793199909387371909480687149051913935256234287945768478656432107882321469641179288766792717973388311535251319986627272696364283219052944429552694392543513083375551952795346011613619213442919669830007200700110776846451296183295694421959209757667400899911641944919368913001017447525954318929990872827056977723519010894121794767964906797277351513877543934831610103541765322425005843366388358446985972980059095510421866419535864690940161351052519352858528744980268330691901904206085058201912926824083584832183056921247500717191970417190247164462644394423807382433375419972479944570609788505955933475042214359458259208387226421932136170964038806809026110628845746319938666320038032620233839712750905378004843324590550598037508907878086809503428843904303558613836810823906999392363688904354746236412198073054200640721755912984064298529268771324140907507541224971134562901728288248451476698838911408584685942211121353856352643843775697708073491215346042248826698525332163973637567287626548453780386456379171878514176438739306197161154573652280439571657333748088622605142835343983073676492541242352703369763996587786110873233045094289443900922337870015441872796825450465361042434452866681011410505625933751328055117756388321684828577517203534273341288100604517144333852621640976011339839350878142651068266175581336468036922688319278321382000848245832507987502540768801051499740786982879417078518324401953773235200196202145273042910253795827221297101339545270634807616596082048389515526184444212699772945164785428261081166776974324279300611904099906616981694592120077660595762281199754263726999355901976749424460709253599823640156857226872521752341651142913853502553941266532781409577911764148212550401433857854376825994415211967658823974634589052890145488136525750947432772353737415137900104009669700736661336862069672192050256563114292878855361755420915727700702751057856739933535475940724043703474619455801875279769716661245959771176102532488883258769023449082013390512799190193907030745933140114713332395365010751218130425895571462272782101996020320733579935414966674753412524397384338052888216969856882166697109487655893610889456037287429018672695530276415836642432084661417642166466108216473721076069132506679130885531569382205372412676497272886413763015952264622246747945558017948114559147036000132032726804020425665638748772794309799665675660040450551361243612360767207855711020796405991028911041482481148815119856873658319804776516852453396226716965857420560152706109326042998898928994451886718519589125470825761994116082632513945461263848335138733573509586150285468565215298735628873570984029284499015138287589472339894365619242785008516400039124860057145429855136262403920621594382644091427368631927328289037800437862923178762942619916203082016639001447410192396752309818087825605919565988459360116757305897071756420850431788063035636785038097358853265945202152504925404046631350455757621823452396706219590740127645918915953353223713792441509964908169926596806112594206622101246096792813887120058262877331985698202953262014789491444733493437167570947878278470313713287334951559931404376884670827642650526548976553783899351835466436687650451811146403315993802658370814758646766496362183428947412948096049817160638301308095875069755662418278272018008170307407454058761556708715096246885060761489672880223437510619254466143935500722626672090763001396364432502011952719461028666906824600681667010868999053471175652934473954178194221647067071794625256752262612113505298111104115320793588279778879840317020122806267637209167199523035700426006239144468263516512542621246646934165558157238775490465494441913500778591393858993370168817347609482498856425185575561589087770423238509679527439272374984172715507934874975091092232913658863854671254928450923968693204953233966110659180111617674765928686788425530188469150334429485746554638850448682734037861884470940620743409930878339737136587079969046890004049849948514916410318010267831860261321192923786531650342989213189016315205365657364957141867081108438478900055973611542004779921893772966387217166291193091182628823908903371839857452665583169168162655684683069204115687163729584204145754264443817367780383287537557340468602088491719208316606979773182469849738847151894004523416437721193709263251164967262490077957306943366880329798146546010810867433131916656809436380431544674795532902694601888294935072991446477542073876913798550907753623037715871573417574837899907085779614588116940197703997186648472239055593872207947166560988246195034142364779245385442408359236195540142466412376430842167072332373020721265163610338636991642998193228318302652374397875459444056796774448589766214905226334762333190039057102754206064850315754429445958439684695447502073872525387054753773037734393871531196582053559479617883317567490551823313252983799129377529517138807207576726430906643992365379867606911029485265588177086278362626815160672198805242965731391030098502450927011412113616809356697889288713530042321392359208688778848451368043873033523237707263038694170322451265820653864139912862115860958201505670529070425832531830200864843273234005187484825907473997830301615701485760701011926749231941470272927094436200957069117232884214257868774337332021451389445324296250983286532919649390131427873544136194398106852466986273750267501786128483804178162431307677779707690688535422029501611901036855330883360344131642111109874657414056092597021231270051393345385254672627941475449423420569902168582179988339185275459621162108337820481883857949935730511677805380441863340715742020956741900847506664149366719006042013321862078497478385622991547880748609628858147610785408706738128984243743621510921186159847032183931459659329721582535895955515538513449966165186937222491543364736516399706273162513478091142121208943865314087951477880421649105576647968457625239979801882380607636138973807162854503631690341376188469355886123426814203613807804919084981569583478434524603882759667590442589397020925255005302049047363440492378296697816876229522421886480631689164617915657500057508576473700615030458865294677938730660254925612027087443981792314050033958417561111621643887872098913405294535661200257896673912480748189497305416398768238284162499078452526285309730619367962536322518343359784453213710590452168196823280176354806923276814233699671081260222402291925729267514714353194273910172737317948852830748283431068556401240888683929146530036590907557091451481908367844836204312365557005286181820145112191441732375991940519156214740687051753297964362615877543819144712226008733222216630280806046710487291219040944521518333254476861686709826809045847540626157110148771272489121910557766300323236548234747953453960247866245232574571796674970579457516273735976553895688277495564498135773057828662651610920928856271402593110901616097229736775755139514804292105068396503616234740704876963103174433245947520297155860022694979684671083083770007230136093494888850574647336770587293476448548760801257258716896684350777369744663470302233309597906234441406687280074982085186285310814343607860644124013050534950234159392480139486598788278390558075470601087074144965365485751533070978338290272460231952157789666266795864900009300428304943217158566392239968590696542480580511140749858244380955881513951652059572992628505791994770321314783581503118013897622846676887905690281467349117683815854355294042688702002233633645959312251618011866029461456028972729361724390442467236198767447252957451519064832233481402848956723817388837022121339131365304740699010688881330500657752511547315195239343101817305663727895737503568972983799473600592869376548131956664350022981836574068124502511530487893870157055314874414629485782079455315607239090668874202561954049409887815423298997110197557222622167163380473126683486661769823872952928441292422611950914638579824094375869038590956060917326474703695912633862411865646528273143264778783577295448651705677643748502528295328730856704504558614332818454288895068787475150080633735952675125645953800882775641274227290112686983781094641228664099613772880691282345472544583071585374358071254692448060256745593522001367665388271752401389479554272009821049530772913974752863285047167057380059028160928435952502107545316345601795308621133346791724343705552444384426561074188463786551726094008596788527049022380922030943867650349022393625730007113221534674296086742821161639545847253295978545462765726989430092869909649484592034769907699854988899716393172135600235701209459014659280123920881812562930548919682073815806432846899703708755166865981643988430496898611383928688563741618931478818530882306951822505951731993681418794686520717678713810142109503470398446504536269097711991300510651061541234599916217694949417130460184925991640748252891527572531609566116639712258374628759894240595310707260003841000987305966229233058138950558540178890300447240207440053368030929375623176762772731617893016550661103083867969151980972153359307927882692084004723007118521555510899536401000125541687757207071716164429041042182204849126296193528343029330235823539244841608022033675878465175270418551368044367613044433776133583812843801704948605964665188649964943808104137726776095338980619926925537942784340963279204427191955611588577337557545318306023586352221758067729523309095037605064613016167087436150032638596147278505045312700319405146734986676542844713045154928143210037426637967630853454302812477523210500827261040320790674442460716964507145829240596045240586467524244782526103786114991233394296127935097580794310532647855043450090877450029075916986665470595646484487829752454065700960313119821426365665158935788826387522061183140598990098969067727033058534285191557587463527649027055345774965336966077555764616154589835735990754845780732858268266098382302513484349096261219775625156801659309927396155146269463970288749706596645277565852539543298023296227772963737578194790511459470217524044659960251907088717801068894287521961571251067125677913779105486701912599031197537495961841125899688579108451209710142459402799338893035323297738034435780509807738967773633314035096942750108469691680241504574621276698659885185050849255682761097096110488536470633073865651732196393880481953971409409461617608900614099956639512932462586796050326121122918345672418404171796806063633965047310541849926357520515257191588956531735210492691493839395870246824360247078757296043030229560235056395767054061618444041126802428607106107545386460667898170070758131647926559959249671952722581202713390931221318953762303019052455948190394295729255928887074883054561892447923243013411735365301888113112926436726288681060193409538418763841994767232056125039451095030905491855062677175982662131639476888199800256373232485423280969251742851869447310988474685100189249497496870934598642655662768595933826942364584892468438010094999966457225176012225910235523956378604092812609156843966679996343130254277133155531894079519294780734631457545897350680389285840059473935815748714278849882520857678293319782240192351081911907105907568546589831074566469046807748731045693188713470569037402962421509587932372719546139987935638286470546438567856695562113907605344894452751536189560904779430215151101635605387309260211668300641160163408298414869763090019123750917086220062832886441489122060848612948058149755997735568584876954477230925526151171526540017792384899991547109535141002307858064154554135442973697743339412463750602453914587391739671372847198338631343059070112091515404067742022614652972543956133933579526347438787072405585164105046035878430393266513738677861866495911327229970944184073514018333185163432662644890750456507168437857861645302709497023445105446637063931153518224894346690164263935693891022700156903944670425960556825699201971537573853745721168177414640553159389455674459466023992763106420048603543452969197645138461600959202134487926729270655314408993079619629858170387439915364736322359078031700991810606195330347896458047805391126911841526660022284135782545210915042103579143408998399046222019991584029666531577172486157332271002251198542762623400545760759482918903519715336160156681930265762811605109528030573132947754606221406800576589889099132056443615929341950176615910468137692267158553283193535576590001212590858482097909895456745638244883477486855960356624395552569809300529399737169308798706062195192552591058528671954527486493120580608170512977358670500090104253747989058487529804901044224994975131263584844528085886398163489254599360584726148107236256635151238562788549681456456843975110843684069948902526677505556778052510749359704512011090351498882873647319742695624214199933544782204672997413564207071121609840637435067077022983519830467291871052929589254237091405735112692828142865550671026748911991373550608246404545846076995386597833548493405971235873001268681185335549072910753262890653161146945398888651894455134638952536991587328719828029285167579545953830767158562887934137429125902165062224928761010459550433785745000561344856038131595017904942088460225314336935759439038837311851849567205647063985715788823614315159207338277564778739653122737565336458181369956910633895014890775576343002119434612507827385488011359040352818943876750188333206610884497409340800901739843770272852681496901564261505132572218045348077213458693158532604801662286365404106876608734518308189125944224055546425773556579534576737658217161637924374570630003847640848148336902521671656191560981518292377597888207567207934252778930343269703448589730074241303587864528129324161594742736209644558872849305646409172773045805144456669634017388474872474635203286542941537471218462790366671943807916386066056412247462630037360817214801152975507198532338882758442397243722860064187175975631485608602306105342942325137602937206163381725432170886267333173309643570741112052607901885726548360679001509949561709785796014941490574752252048760740812837234726705642846758571615747093055500463455300964120745223044815507501217373865457036118156226107739045744575736026130965226499561491673895654090023064397209526040483231467564190645786680517976293170075469360866584641656154485901194094988132217229462238389116779246155862889593689989616133889978679265595026910692891818502780856870489330714628864843792941544996904874284618249646793533653823346344830236316105233907898032456158608064476468325278114650651136946500220507562727663134123897067906496328300812714712692168896030883758231194007782802143431896832257162869447457177333191367623407030487355591974602848183202646823757048768591419976072698260222908816476346507382489723019650294487059795610271775269414735007077157107210441653535100043859745740492856538190759648138686400795478090587080725767354673976599053720330379968302464719322244945069210528011571197288537285135086965083261803105839207083885110276858644270932696713105621739978936804441459465888199609430544084786688152304945528732880508495494605798853908129087571047315775779156935370184951531849300637205665136175468804048279305901315660407834397145142175209434659359903184462619985589898748714368058445537068780604043813870691676855367981081319164865011191168850741099033907481637590890975435500191185365029218493314564446651543791455727943560728602152385287965679693265089601992207363333659463730322604588665785156500019484817282117905601672614509138863325745118424118958871755043090925797596603992734240124338629583083033643359870184678878869152443133616886070999208908178396750871216369213005061436837282720610912875923265782735126653597812001663268458567127057286087260085485497636613087995128214022266240087610797263151502646771377173243255356954815769330920063986252617630775733488812836065124271871662680776111645572116709737152960315263505860179330534606047664755940532808385293747442786953744862672983894095889671491267125784203982850031031226570149746413556350035641306526070967456153566568191336874555741405476839553711929431648977043354820122171596898933444476538672481509575656704375597838987587391173879680415629909768869860558214421557009636713525285889798138884549481705795684355993612820138314675186126073180254322152256555471689317410427045472877800582312929562315514769761636159528911770571426860768626508937168946156296753219973094140616029682652620386329138469834983008487097346230916696309412227626180103334423141147159479306692939621544371720273597951657806561806814347619741163283903830235149856412951351622717376404639670583116744619971658637371951824979760903098275999684858215288515871363773523979926584732762496728878924033291431590100852440776269546116680961684313729881280033763490600562153379944819713474432269855659233115147556048058425809251463046816595531973326964421195881875269805636936864124345360290947905420060949432589283795526455137568863246445801965802510450410348056167604784670694728601667105533231026123624090424608408999119917432546087032077701071042293123066890831411255711801418444983572837950284834120122522002414057038080311971164291644381599788052217637855435355417499065649572471411321526829572629211332458130185528168962894159322583290727511116552539481619104330313326287511787350822595846742794839437291350444942383507060452827918096881928961991800539541675212297195610548019102510810334641269930396349248707811219884846384897519800007380983451186487574842047881437999440713801600315845752706496742402123026936491736496291015681573759879439406154852208084062013547400335387658606938095197551579755984840543033298109831426296825618592157102621551745476910382623076254999062278978038498981592295833062271269781972540473200425689448966582481248674712045491329508721707266022876422283859600301261088362246671270128628250771237102692334389056576102773862887317230162987519881332127729981906528145886292929283872786770114068474023080197052201075033295068083817286923732562324917622939867146747365052803798470872062014347542706455611296884957087433356224488508115239661629563575562631878281159429768703893992326795474601294513664754800065702256781658105722922712765905286137135369900802403843099145533734154008765892819999578498312082342213245590177564599290204461995537591189596691476153444179437761637495137178257687586786110212615324474052878259477391883805049946047136784252832224362546776671047083117833031457215518096194952631825883169751572218747357414347313034149314530168557530267524362583672994068517868308729923227870349140605214838698932466475900827241813545909724804422586929691901766063916324656758923684198062170548758466899643029036252852183173707502507311742391397304303154289187408783110280927630551701669439554795900613596321806542548173996913750025502985731744663030809964127663619850840889894543544137508007958842270203602815149466156986995904362805942983994599078140067826761437245196272926020684208366183877771410397671915846215109899677142631827106623943961967044592674241152580277801353733045503286117367754654575450869562110906907954874502811874444725185091382723199135682422559831579588203811891288000450090951845862154577005070266530437696217615523727383740887958395190837337411861024310688896979917038165844247332311549381478244310697565057226051218683880719831631709101347354652925785549695661938151053031055135487737152409760544778408914484177948924385969219481775549669433666638047734974187009379060471092657293569820884413804036963796973200730651592998603996009536360580845296595151241307844128161653683540256785417326649112044487665966493186160701883395426107106233276554451858667091609614264314052576284927097033768168760097603656915706190602120159021879514429724354616878219798647703119419616562321343109297769146771037599394754850215468292771858901012015990192675939128471684360265225848979742173616237762830966287276415721074740565465534100262420803803415237719211399305147752404059979931907332850891267415041398717132753551938486238055843645441968011436753513669996075255481558103189272960802556306206493412254239850178279449149335777222270345253282584055013185803496205949842892025041171836424309397808436444584488575245989020903040657663468001931958138155004228808791164670629204152513910533777303449790983051696675589300208477866230640156310353560066400109073621566972208334057379805146189306663579759311583558754329737125586359432451047767374492506168652525357677955978435771680225108352799573925227731130363276378675899266732510479751035417551411164532047959475694359319087897771292776208666660606103988559646274165189358030948540922025871882618937990967373328557599384588976767444292369484279715278222853779613886574530365122804489906803962331980334512732283645621494875873418524976150894945360855297172759026209465425145546811726395279206111538234495488940920737126044750888812840955082183171361010000733624835565416195834099201074375664095744045781694512436718837855239451470769137120921490682203265027958001032614625387043692024974550433571967283308915732369358891221117847251261243105787310895597755040642839955642064295935308301480552768573029789494952556192349219713239182945758148128988705067856262587272309297435918897971330996000040962048893053042539863021534351012891201484570180453874299085758015102766482551125451438287470774530352286848073971150036839943468233064465637672704237844069636758719687630517020174287144171890601375049272844331568926843546470410844849500708163180615356825702445076080343796919167545719820207719965640610484719958064220850954286315760840691981267953055982052860016414629736337319848769567743339024106982749523818043808904282884782356159500016529610912170906166399845830740168706996087057945801328958051094607439297086382793809427893574064390767982110832967891908140070908655324399064798819149639531267988533829885080086693508028521093161960340087275989206662509827056279005743042061386997118610491580441646988642440882767867067519346355294745390896107883951721810548323771875155588520222619287541958074775487418945053338351532581944075165212882794642434884027258798955213049508717510972479910529352801796640528519094314719328301257029580659196005010667760653312111010010355311855071861974554547248515650519154294277603733309830651488198610043863843359478599683725600560610038612843604210861696740904223554720084131187900070522690591804534155138775030474215833054227048388136507574293370730821497267079719833619405388928346759786798570784641551709573706659002263304184483020142331760901085164837292650392094201946285800538299486670108495541406765987691207943885056301529856220677101924591602511809746447919805508224719221778333532354530654893304966878344078720935434989635222460554801789460812907751140130398101356752944485675929280875530341562140699908213801241565125978724285401126333269902867052842099884442819427973175717269185040871311432881046467712076934405730889292368532801295139069976505092423039176720890656813440809101355305931913959868456645101875736198711390181399348991888580590920901738807997156624071792089896264936205354364648187166636383665264023723816550178410569830056802371748580969804452859610746109722330837095365198121782821565313074258647762643093876744210605934002851275016047621672126071958246207685123488690002859278574936543898845779225035290233687546054442003781577381387576813638585676234228261848083655836777834176102795861898809215385892087302905938279606606119109054203244502094673334361543288773783618434938161895621581575510754886053415563068504100372272961364751520337816643026860740826688702745114232334738187951110989786170923561989268505035247127270165832826988074412312804720858555334817099601001019759083902443945892448524124745827045154685616479241226098180401895398234867052369903417826706425004499241406464500482839168698625864343395541949805920105850040910672071406828173652016488541922103053088181063839946586587802957770078227647813341078159779268443091669911062457221344860184095095231379125200003461676616156217207482340656203410397129988266452896378785119604064764498829204448010333278055416572956259464502616210701383126619474467104641150500348461775115820465382809075634152096706012829345878566069934666391786946010914607171563714794907710768169224944338186297262424781808385321868688302264250136883534776095405490464008499738294019779081220121663092677960882486304579003754540764294083581396940628647518506951356964659085452189965584466049327807862028150992068676117102859186129149835379019971991972447410401974362143988463241818362079554929178702810271848017524355129172910242489153928529482492237419207321611996502629577426439593110318257028007873138083484721161599253150227397043853166221700459390091568351949322816233034397300131518806700725799821334384784579027104453282664345165384856819097069059090106171662509324536850623700731300495972861639225858087020669658493407556890043121327871846466030302399206875527378354958836994400376372377864493753882996854117328234416797379043892843559643927820663548783734229483350151194449270178360003575202276376399510175141730068039341835295818272996158897290260190342809388211388906787445147078707656117181842090853305759276460912123562350253750718354922916730992671553025897782497022247470799554444282619788204244586354561835906571613422502354022230045943624586835580880277907337786350693214908648946472637940380070379621358714369641301391724588876313190044560157054462388829839628756205837041452644162175872945982144263939568093612763354794141976171753726959695447449629735048491747156603877338223997053935263033478463744283553545536597936428778284065484766195921736180066598130814780999572204208536482735783792598352683054215927071894244188286109481507684278703533154636132860952806230475234088316711228385542270482066306219870618561871480928886234773008516418701207678899278829042671289453158076926902065332576134534038882931848775819712660004368718229457628683033400973491125422859075601331671657517465317547333270846832676978027831263362113930138375953242325806550789363313011834973357670180098934857544764636489030911875018530598335302432021956996072067387674593840848363195207270690411554839125408573409344476922967313405363525346964930834654806036987041868674725214731747347044220556139038022603952951809969207027635711829213287667100201593814805079980037769329233893868094083145150415911002669407073221377122151267785605928487393207989541822442687533633151589791860342028639145664936343456629871383638776131187478258097037588232724231568665237567690226624954481592451141011408243530671304280502438670354492532072105136120832857578303586061560577017381298944459406328829889759857757625341807459626932143961959971439549814330159218313063058708847611721163670552712735413447794331100403815926018086511308907657148373198892182691225825579448484252579402077911584825875421728951674209413472695303541400874332988629697341862227650404045376847716288726540392427841043310523560201525332163776196154273023079773376943504323798336199558339738202077545129847014128779208270826563703039580218626072165340503947374103302771500279935927205500457302513873522366251666238187284860068035435480310973896020446108146089226437862258789916002227129564838477182456019875717414878955526607726089544079694024237335326955126592713557634120848843034705250869684723006542286674745594951616258998994157477217091197689047046437950793106932560894869609755942632444483292015347636631236234550971143600784204469355911624467307215915451477271416972811938998476073674620900761299520750323559444053684842942874194227062392598844667567983769662955361886161454376610442303898321674186496015111885649607407671609479996560146489367960555511152695737322718899802625527344061923534278409638938555067676851656204528460416264899412456739270932720560031341624456779995507259857654793381953938753622341347804168408954927968368728214773998189585906815343989250458037479252677404015498227800131504750325411758223641297723479644711990057064187076347992050113887161858724714800963935421191770046395665828351302920967074406642845276299313746318582301877813371084997929511160413811365560222099969424390869693952472339876921274188533353447752159414210560506817360428914797452909218026579697475660668744435027481623559683911294418895335051953629018948194718255103590214815222147525290971605599092233882099942951077655139485765082650986972483095196126230758893246275183617134320337504164674899140493894170684212009880511262855438456704255982841878128211706176418052424752825150189501474412506207653907875887115921515233336544952685004748136715823140731859818342910949587582031937321769079627271460491681916398351740987731974569311047508767989770225205815669011495860478744450192076487882806965372484435455051079327245898895934971311806441014831241233358208131904852367760657617760274537116270944173086041254049620346722232886851265504896891101982536482118140739372139830833441517119114897689118251363289356780362921369861207420346063893470223887358373623433225959436300448561984851572932801504610065509278708391711575669022890524651535704266162359969683915562984874619447905774996242073374046661078745501887585821572822529780530316651577577408464210642296898193944037227601072522932811330398073894387995240966094976675576806215751571273893074522737067444785955604072450080405052949188962009589282875627669129069586342325457132963014903820256829491424491147991351758708734034433961302389190735934242396998409546760545753309766216395981166389798799984265843273287934525556022512047771106683849337632393089851514592585801695366471703100168077841821199582942820660643294956196865095708034698749295358149257972843540343864572606275646736408937878383539963761145491511984398035830456753159728021805905642075840476321282133221363820557021454685869201183024455370696122365327859291079819252829675674200522126578549140556020457277671655434288414783021856948620436700999454735414944056008853065583600145448470753955209317476801937812877868593165723461104287535481952868330098943552544577587195966056083514086069860154306466458560779111864273874088230250588512179706084241208185848002310078005406894135495901220756996072830524176316737222410123433486689496301633914724901310951545989985473480446982674350999393989490165679285857937870945416984721618245226569396756003177170023838120500876978291273934453598968442139964363068956200055637308428110582126648839800424293811501636147116541657386870687285124118702932206145175109191094564748625496242200105382571838325265532324759776522787002931761377403577041661905758181947763786711629948849179516645183994724819108562199311084731547097965192438691096299891250001584463435019435410902757347953018632473515707972306584491192503348369726502379923315259637498907245600186846284989336432366041853355247895176819383357774670682335892270785216383839718051189561388873463022069223966916155045599947495680316930901284290503457715707498809448677859616726664524395432018728634711240755999581477912533528763471632242951518409686630696836768777000809439541303274958933166091364716888711190082055111130711306174500506619432373029431539764007838240546107556075680667521188840357748268211037297950133580111750977270846316454952816063620875145239710197251564048659696160742814309239303742075404503037814735820741934163048784406952161654063787737918093513671912674906536524549358268676144374906051914856357314737096637051432856517984206179419805141464557455303444096225521049467905326690342796209768057481636666421741101869536743526863518104721019822570537899909937361397275254165761263205823932957432786010139915856173422771492811067219376215049084623947176735877137933408513333963942002957403741799662618224348080779812349792276298612345350987058682281494963376295720559887966001826724919698526571909577720631479017305109008162867548345636795554919789797206913374120220480050526772849738184466152896794075250930291890846905277446086022558819551026112508271094647953486603397493420924968255647111461351093255286035288579085799628625166360213199370484713345724708074586419944069096040310727488473058595652966538292531758448121447752622813824547483704510819643826306298905676720768669629447888270807471122769391246164594483567179118828326909853950187069858810256157322157766120974302579446671056795111108204346675128333399038200612655229500386164116047954990449245238735409492582729791708651488849572674461573839706484110379528124030029069240181370569537929329887357343959426129508902750791823480304615641400414254254742376992136731972637218195179757638892596164388750723886103021315036007502311995295369624828791753382610892581751504646023836520558044093314340809926976864082157541859873721651179110350716909469857984899105142355763932860380248920297437845755574783355480328304993063628505464235978434596573550828741927728267596076599551602220855072127937387736421272095358598036821382460579803931483265510125374103032422777029979913795144684496699052524099894519508133001361758123039250890542876935370984210071003997980749313570687881404349783010412451405905134582678208767466496206461571875683216431884026251007172665845688252509419314072931404163658933251854093628122381379530310063769664271231881917500016116433152126385630434059548821609807931407990448024176236173421310046947376957184542571537350804336518565700347846418767853026838754101863796915351457030599240149679959032672190713892376970518548265194861193153142924315176405524525252532443718755791847220337470157310628289109470893535162703832809544006861667250196748888444329405980456562537408102650171668967106552103709782077621000471552072720063916318146828659214380031566863855970822231655344154254116429087324031378360942957623132063625669743063223922351545416608169676621454764494964395107819549807755838017713483882386448814204732167127023651328580335969235577836036817581543133202703611446372566891564843584882952015486372960815511463827227438091234958295727552855586418792936103516863930927363907290352086371850022640680979677550864860015515192792391332592822515830467752200984373599576827252662429475402228398834850966481198511576062612127033722876867086832119440416211058150915755848394331547940506470283889353520575537118097271273041434295149011589474538684504609702545754510266330292147540965300755276463291196530189821128388406793818561054900382278236336858314074886668179088617892613960498787828071770091147685464990329582906712263315514818589230677389682900695230255501481770205010487514376439209938052488201139959232980222411289716522993093490848220422323184808634006934641201525917307864832120397393153824805573338126699464592355307702390664372031264607833829066492349755991914221957188431753055150039030460255059176552635422403938242864508129647149084270151840078821653668702829254461423621783947854857930897999203282388380669232104621832754634764724394004672478043554688000860666193589368908043210885283471666496264753991596153165757718416976504257970027959461683690195435335509903156850266321488397461389064516912725022744430652019833052337294893893703937234418780231102456023197349335663072927831359239201797792793333266472274147981972723151476903391821581238850475209373011625791388516935328035701659315841710080626774007113500419169762359585831267853129314179268418450777047677977489511772991184205399807656914600379419038956988619648892150922332827679550379232982485830992041927493613516122164418626531989252249450377915168751975379980465613284210400092803619981989338425487628193643978665557414892620118042194942606736412847485370693377908838036652073324659387145699947345227804879879379480641381179061598929946454414896987224868621047049279987689760351558038473703817885936178246126362601985362777372353011942346503879130556763323332643032491609427236697948094417524874156937006498353326221599490742098652115423753000594319128799039329532835299690515794744011932768017645516821980186017084582199135590345700568793363592676793653831790524156866629630551445389311894757205900712107479916760005231424088738172237075045676841725006071145853196584243295171149649583270530460668142697846495983647476307349781368546008960419417541933006162765191270057265614460994154202544149632300660963593150553132422887685487853804685207988995790794372642997651974859542740410543237229237588947337800340201626745539103430702827678105735447341764498400905694928233777548214281206264171210879659455006602712035932643119231057827580903912456763578348051464214863391630381705841384973456616666818442672888750110140624222979616747968825261690042495796199803449622995567828653221603305337315204987419097236993676683266066972703824870258192265787959310112163869616866649949530038278336638511540895451402042850385169808931350798830039048637579547726513957298387542850337026725820111259472735705545447928302963253263052309925963127029915214683071705412970454764425523940939649580593087710975824409676645453303646251538201266054576683059825934080801545858432070225468130355784296323117351057407242360345201281952149709256966252226724881299062752849223096658505475418869985442223668905444988095460030797209361970291718286463281766622496384622691440542451826621623989514019593612467173467953007059276913573029682291907497976211678442273802863660433997328176435257281335454753456156207306052599940941831687982190753007831419276484668456836085485688613798964916831579312972833244886037484061565588663217356925776885187798842088819545823552735729947889722488918581105387755596761524825874383740306686233483765708834908285186924261736860605922994989056145249489689650458180092672071908847522411537771815524166467353705793091994163272514932527354376046455899923570040318688232818604495423328277918993953807585884371625299298049565245006798989460530375283202827888695124644256859591845648881212616503496780063817574302987467917718362915678223333485233747177583761949744130359503510841745126510310857374866653247779448084246710755770551357952730290420144347613592888805189452313622029452112705460898948310859240153452301398741865900663858585660220325526934043934464658152198089064477798028864177289762422996558177631094523131409753513563879469862855746595989206513195509439968711223914653315287321417878713177206681249313076744240422544779629770423736389863835483813025758654660368322525982255597845978462979395581940525321247606237787237418286394958952969233666060446594048802680031361504097687195258939183066131878072599616800011893499731317888152640779516813978024303406116973858655438958344529280934168238900043904385615772552127056894110273696185967030125995740933339011309730793176096190592168028591786868529377035462620918574465357872838954287235102855004649182917230317403052454601331008691311600046189533431093336392920526379379456217585458746007442433355857373846783287142688135551203350073562097840292965606732351294353851458818730078606457796093377860436278375436584464783845065756736821853443027001272335581163312117931644039091773072731320503032800694049416125332260783128662219731553596564694915848675575307672654986368855107464006766236674175074828933656982244946941387720923852030081171185402019422573641625999639514089999677000700815898716591911665752173067063042206183238264138276100174142228856731899261112809187478535533157831891746836331005739050246165408115589353116461531139081038092374266861863248754724419162865620676589598835397994065178862825151076114128668582222923251135727232297600991885945903062870935746467135121880253708269981455756730268173980821526480432498986479585511933149807329581588375635429045138489031573678746127983484989368619354429976575888074875496629811222196240233537491448435121906463728383890809130932503287337451350158566998464723531331088578239111454516054338753379592898604034058980234287937930104127127930307321683328690029539869116998558790155878562852202157350405550761630582191727531728276907751328372623215960410501460455834006274975939888285099822616685944787359894948939862277805052524000869720551044897339702071151472273720655838217467598653070293556851080836848548020664967230552349508593105246681667046756267323491960515877076766938157224426509121726310548777893491366874067277064034431327727280844241296309941303328535373939879619240432887781457153577668898281888193815523945105390798304909039072463149635947800855624933025792474417116299857563634561684624527367207020014967108465510028402465645684703845696476656081161802199602890344872970344939099596695482870703882025081215212241011584896073880549022665186058786161406309514578431817857281549875702285427303549906461010197246790105452648816166675676611236086745354112958235617438068419062996686037100678000734395191899217603681028960855420118458593234750188269030457913993489167396243550785010588463291838514960228565757372216605484165326677498159945468346065213254729673072558534992665949080588757272917934589390444589276765036040444618100249052265037516265139205632771735266524221924911329758634620406536028820232365449459009436049544209557429477229500015149254976197820187686440107867886482624019254812426505196748559426357250585932192919456279884569645562306168237160500933027830403455061716873470875679678937527905424832563864444249281810717944050064616335070307758382167903548072233378790722102163994101576621758417938205483253381945055080390962047207425035370096063139743983516903243954547045226074593022495899865271806133695984429809872878179314896058760571422566055683185726469478146938103923832771519795380401829025297755172025045932769328708302316100212644545349532859624048860876430138140622005621865309803636859189842215030674282214180245250712730494634378663579355771942828512401040775328489445225543088095651437113643228310279426387736942749120932468880886160223029725349044699169246507585649156137527037557443528331918964926688756919122502056841603826593183946042164368086422787197867053722418637514560131620434426566490543401460685345816758977738447276787278507278243584612227909018816627705482004865596206029217653088442467477203555584297180999615651472398006958855577031392197948390583478606508111839525696011000602949053194040461118629156015247094999529533183635385268891685409786195593377635708344013445776047698445316075132053778711599507421953272713518545588934983962985511012924608820499363577261673795080053828510114808202338028446509525488768934715418652434378089044545506347913406409346425401016785911656319185669132317362956342455207196209704679981208543290684549210553529739618381110937142058398066713143519895980157569051265572774909879315070654570087949554242381960026441070166209373033114571011190823737403706754753080580986113944971131264300700818820292616403296412790827991016479667823961960880171667224424782024709928885837629815441173114338114756197107695648408572055022991218488613351709001811124041397217508394233924574764946197395122180305474395296129772625673309781447204993675368641420282992699382709008607033106875746898318602460809939510689230446508892735721975743315510028226406683351799003446827992683691096123192940368571800339134697406685872455703447579175215657760117152273228544846402786439019425281360875969055667748705047269219964064458945091431097512041094123223687823227756557088042348891816386126312135782614193939679744211958923892159326181693919812290711487837160794860852249757187189882442006720088661159825814518223761122547166537829277411986314917535591529816927699781128615407799720270296286718581355946692069027631892822678615092510093012069293875512535125165561218939019344712195433588158642837616203035228121515763508785425034211587278360276564619983516271897543572419974458731121282788375800277552340254552222094694278040416488137441732437223067309699888945334406425945967779841313105538393365137984247485261684282491656884299213342447468028972187949056483234302082784912456885905048004220765649438084346407610408501220684161448883420927324332544498102980746700942877276625960002982315283890217311788595356441569154903278099428734930666274522021531827661203254598758662108633581706347771129547500066570171118215049537672074216214475529719134849674406608845534575458924675864977165311177499476540001496304529964583312245928639386358657389363047944286261352406119277918650909041259394726819438439338025914869725900749986247578389208790530799191706369210955917003197356155658815981538093260803944462929472089414000128921812502711268041241770426022933585661887947644807661786569785780449822071514693636292710600834182777250059216703040678853896474807991816871545770331135926592987051469618670040001835603341846558566479609000056243845257661689785207129529904353902957164258742354023844179838748635465743056012377615363396709362515269238095656397300250052561170733162437596712216660453857555826224325933832787373055915858268337142174711942007192121614069560564942895436933074289864611471206993477926390447594458305487334921674714688449960023972506371471396936822889877405977854838925321369179219758783085501607944508019395598145867897175128999765364642637054715720506846123285559511887673300643905252475872259382821023937697267044201992870079590955125421442738995180635539006753789074067860739053030919126037969238915989301152950964928609604033529148618781687158021356608329945326401313833486597676729827981610156608963096957790982351201289106629314546546187200831987820933428898491236913682404575637553953707714944977711580682011884892688210844938265571525343285979142938622608333276904530028167859734694408950966963038843709401409492533741125832406128698091246414316368023891488494928333875107125608188605127066551935049486154362381923803200566895921766788872190558775818829078595192100846650128460904494470331597464230470056514285811431452653219654047103905483711497822471580695908571014576928092268339695135082444535318711743570058554455095887215022286401734963079502170917540456268136477335873533802726207246627716187371382387846928519123345334312870705403948406433742338445942194617607794827352033082243684633357676125266870604139539942886144431844236377413561141709003612196013415764723927799127839370769258306606564889482115445030643269389266453642676958017883267451135790664651529892585561913424256019271331822384479144386456854390973389328230224995032980980154246534487150770010530049579601898024327234184787247583777707756199521947757324206819733142027855036271559455017968027271718866398914216670177014571488532461867884900311124672484221403183790260820206879246775240182004320175599694975936968949575295192215043152199373494066511733037507749132733899685349858649202343736708065514748619022907215409010219276611448748092448244115916320950072085621382088921751004975738413149014477868159079787872548620313942040747117107259664724620319187641375925678756784397992413729170063851139003833538054173845813143145386348165800411855984328856398025253909763980529978020872536793096286412462741031993342454985482517119918627241937215528938624965548200826438894303391547677600388149945643928548438647407612554357092679506184612269246198895225474301464658530930689391122849538125798565545958893347797998048326919453883575046154506058666319796889964637762063065279061584229789354604993486526350368887823947500385656334108957594000690118718225553107828779397196261769377185621857726431158070515201817783959360959137456161722328734063159130055776103786500128631130112559106454670946976112185131359546359613053332691031102325487973642655523990501656648738853915312316083516677822946979138149376993579074288632031795308426628627812164627130226825336004984100718582348343124973944374967029325238881552765789648648532647384097449029172569512700348024729743568917095990331111366372656149431250912587602269620897624815464087828828643773969639721320265169105243781663050491056609125411262037268831515804862315227098821024375472036942901610825709694058103822519481992175235034385907365378259979929081928815793284422303427518081500981231382871686615979762093987752607133895613589115905287445154301111495063145016121777139860406349448325175165740968017027191908133727727762364687704279564731816902115845689521507281028804887724985701370913448361731261008286903859813936162005754650975676019729878276454869666224345013620968804908215131591151192376701738392445766016510377528232977318107460688925242000433915323207398432762150811734012562596833910002556351845511623995371031775111928537365495731986228095425289133033995469996052334110749370794470832583159177720747941176203652221667607872753648687017049365867399337295476920008043282355800296269417121701694698012994165359543238487764357411336700211578695280501243783370457717998133226508857076842965858402689480971253238581065564685691270849627886523012218287759021735895478482839605627777437053966986553317913291965129845071405664809759357642361542669552012026488431437197855346494813942922060208076363996437719608133658315694479119643959615720590522532591867156593943875279888576674209068247446672418050422960345701815256996504669386626034437199025683395821358829867661905650246576803528271642751985499976843780308377774158511630403242746084106020822612684849708556714372298196482498258240157506300708832002558806106769654501044006518324582726224265259960273239384955364410985428562601146351509514289560343060482566963327803002487293282972276655649000336498027706135511521007282289814626930514212212449511127192154586240246914637154135818486080181170108235938237543178228776036463149620080572993988257823162837271070932867926431288334788712733669702494922518092967773078336956013437490470352239131165999651178509154591421081053826937252961660037382544851478268127251978688258279727613187651800983596092490330456617576863990487183569949110018227260871512007664383809900497389098356417751843841227022126304395893762335276151032495987520626417318115182006716448994518704637399617221821026493653881684335852853679240683007962420810565750553899427260319962535062458619445320871632279954537678480947414053736970910404260711107915660392271388937512576775289092346014755965865440413473406321718001654233017134913670407001047448092420670006732790847327735561989619690079243007607718057830883920838247003934916611712479421729001821109269441740717762429841996622109250960979438444060817840934757861005419235735385578688018849866746451512740187241540453113217884447190453900384568578773131078421412333460748869154989793157377641769773822954438011851980180044737166529371144787819327452305241500860003671557262989989608310260525257272485260353952908590274456800546632241779193183834956357950543156037437396305461612355494090216908530591171599922611942926342248572645891317707277421612837505177779797886604631406580501753659974411538559971368053053144611072759101417765767291752763904674729203878561730469547966123962645893113932917381715552186731849436689849745246792147333957858828700442013515191715379587352026277299185601307933644902557927983856412329134618778685383004082076192174888312162768563715653490633395077979251428625630533018583503806254546470516365961306102045824414380167868323205784804952182800760523845684503944144529373104012358937812357990299458638682866997340023616253289625664609080821421043012034677031857597974255472597712401868624644600615672454239245904162859609745586027661865722625994495707771205648938715879562465730295392725273226261516281410848010983212558642405970335868752752568903761880842953374044339642623102573666611905072258111282061787074843260921049693371808858260567079395344333503768722002592252347697481872925696773720196026009834628302102623974537645242539694347889017021471739377783756610943264892045769329962530940285331298747638789304654434467816005485537335253377991468935796494446165802580258615977203748883468507350426964096379084962001735647283401090779128927569192895558562035645374970882381148176754469431126946013507915777425157030353569822938810937684409987141210800850033137217798149324096332170207270357940949123405742834783604539623316797432572612419930036198688939291205754329036407684461828366258420814093558681787728068261764761348965365845566511998158272756188635005902014952755120137573676866837660231292026454122509880742493644229289175762186078381785777378141150572893048780397461179519039941463210580792618210885970051575933843846352837549807545077157122713605155215019162534658376438972645142912148707766272374841995222583921191571526357079232461598520524103841152764947429885279061048306832824476547028493179430891318217922564342077948639753713026278436376239992880044111300468996294685940564959677307867116278323183807179189831889921653554060057429287288511650948028996182620752132656334496176706504564893443307501975416051758424914586553206516461788811391174775841865892291476506973287154562644562949933115309827852715252331119026915000666455987581257437133424633912478843901696992267541361337312284615305285871339384015896895672751709032226650677905682718136187224170458817744540601597091654764133183021998946759586915428532308744735332027131741433371492237136235030543351258301103465531715457092176496449068434903862077128810021320336930724494937449289853629082359450859428931813887413500494465525074948061369555687603856426404932044048551924462305835307262974180818712210779254596642072839052431702530910939216301978698270199916640356988749577120030323334311041377716814461114450760127664011955755937910634452970705607329236775328160902866219022840466499861231952944532551064608380255102948045207519452236235354387165433255223844885358226434836965089304071730721042266790598977010836693833235734108141153205771732450455311530192923754307771908475670921792252597105393186709914454808397000779863661087180694661172399832164725065202452155347468560936772554836499224605036061178778835549393015572845548296588727335218050773364584932278636136270668575789706943119451975228346943656458819495822900893419901426896610257425452817127049731557413593370787343986251636919347969720341711607336217455586264603840381370664281886305044201615349846407476902277434481814263076420563848515986688175978767961669700932192743313748380619084908664315163784234023296740027071422956136317490202375039005093184207862067461355067376666164519148003942225737131392936263457623708068919418031200738939705302703041548034010913000292565367152966675442350192975310841368011494977359989954016810336473220784351515757845779430678890719734884865219885724123810454371277585268225791222281069319986819585476050039286462029385852165142606412964601770457975748574362396963395830007057278615762310663040645468045266834380093335585103950826352250105924954048435147328768435025031333894260046787625705328465498183193769794213841318913284558163011436216761759495058488935328080190689727858097730886811051980147424749274999329263753083208973865060766031370481501917136793276247453711271990055447212786428066415762178930741782260109000299580892111948060344483545334452966126362125370942063691592915513362723581632139089970407890099894653597443083248089596364991670316329394396091285387094856955288529288387764968395471758379497899646290720940011683905249711022375673124441168867474882225472908630760549787994102765197351904332029341804051386931195153090887952693880474517936715593316585878033772767897840532728879287980358981286798643992991718624893424141207366390009108262702511732166639224552276055928240600479140161521662670381787100428258270291872370961226854691115612263070047231050787314521041276538875438952452004589275703746984494247097340373656045477491077794932198362378958569889635875139299375478983306510187908029458042092496871708975284023737595676422225380650990370369609816258624492951614523526723910189412719713702056838070326427007428335718581277272589919023700793874891932438743955952822465907116902227650887405960815719249687272089630168974932158710891922187485051868267474599974188929497801477043064683590017163240202178071586315142304518987624467725181261385207359183117143585189258500535982292707604500404807148527101009669748152591158620985054715734921220002319609019460547340820437116443218536695160781843817975356467830477818167774487436046411660163315436920650039041645428854359016372762864488094203011671244605323762762841712278068361666715115548406565591925012470823503313966258132668373304050339362123003037503684372499577242658319658976797263372363900855153746652152207407073250607255039749831906769488331193744174363200756360599159765710031531618864300876542231584160452514701300640614132092155034218510793516621522838629342954926344877555279372753655775177424831987272200712544279425084361741295273050022919747120959415428844131156305074990791628926946940028396626159241208860768090483954267987546685555851422588961983308186575780792616924171760306079797888842906337580534655936896486555783121114311433128526153500832501727486820405042911985564015199005124709565262760334565139585228720489863710170265183974431259411116515479775799689344070958468458179946141649000592581297888121702139823821923274293725262401397194495128220791327634175675660987659729090783341235622238254222763645659315431853422378607058890304101712232891453164875929385229560231975782196961035750558260707725166074903175573523026572337294853811778035535695998585769275938087571942320335394942460573740783301687993751716540716515789832579745188320079995114959211432832178822175977210619716727547409253175389125962783924890535014063491006787787745885562442156152683625041498416970976111938924061420184219754879644162662145169927823647477971253750211106206409209089514760744297566959508251319280184680902168762649008411479244734104738561203388499158566150973226640502708004983425676493050814178848536022281285088613185654900731348025166703278513377525709515779756813374093711880651434333556795541037330327963519127787863472055896758926830682311857826816792839233699867315584619753588062715375409777817048124097882035843647770116927825315660873007808916430079225741431721824593237697923276771693005152523224137672424235420855790531016546343810612213277195520365715004042170048705654389069834175394275030546376447813370998562952297179238476436986727987143002031018063542544249905555091331695557083507045804885739730985793335614484457546618393526324428494646008896467469001738159072076635164096590485014503708294393786933283032337210309432740295701206572105193438384119862278266421093599339992042793275519078877534082300862494310120417454183707341777396185042832998881591461191346319276238783678366747343139771976189752642141652324079257158806446545624205298170953215097952475483808333359861388204934111901599880058665241177120450462602756220758798260835415253536276608313502205505333811912051927120344449121974078704712055388309542592836477890584632322020253802527274260266435808235203627791725711728033424211829936377438110865974939802457071809649896017069900277403277158541849888314010468535711402501606509604071973342685103048035457570154307363695343552011858446366785177096679015558196725873217201454739581647779441368168574526232140766736939102986026572945240529252382567543661702520080176033823712521912470835787579837471610994862972791068774492687522722505214726933118718611364631336942312953835827441754706672129611402538468577397277697089413305282883420825119845720442862475229534290822900166493805307987827337578653421544156810676600674044427441952060967898981620519759813130189262617950851133701222444324662400280827172340449582532433203807686701636241783395784410729193779939210784799868559339844767408227145484127549561967550576695940811992093451511466355532267501940137435734601377152192369080480307751455259230061231800304143059768944672591150318593329863406828268414254472117629949935399280600481126601086597730753169518989775738927128009344251753607151976949315968047431250100941740279964238361121924106120619302913785545697426009570904429552199094439046761524610160188420731790231754075537207957225960223296751945837853365206866848225246446049897538724567544340916234002958035536374082177861041461154086001413016117292760720224152879983381231268633748351960121283265478533233744557510790875401635799305112245250290143185932875236636086971783549089685055503499496952801143523677908666984007120365254536207376733805998921672998667173580752000151193564963853494999781502231039827611886745666076808747663484536967864536214435870116687273953784378697315680253929439027317027731827218291911781526637106459296972539894718468088062685237801216398508889389059210737732834961004909020707936494446573132508187392103303004637863004399043639602391407956657098247152506969479531680268631834159426717597068607201737164424820818337738581856092931582577591461312494303168748284571193703201001250987907504576750458159095241989607855790978801390887890494852778101089592656997934909792450521129822907847025660016909623990578356705513960951756705241264231952351348470121505688164498583963739503217832894155443623980204177351105250367839582022925855956300177150121370567289315756870498420807453608727609889294929257820609135730032367599521686383026746461020244887214079094753443480236927847232765828822495805057405035379518169058326894573728013131266707538641305933163564806827524708485806731224666207313502848927361007290323756118366936002978013541316105440238106454209462571406681967720732128644179298418839128207254892252044760916218899085001782513554347186514461565967578309866688631630822844194594724498605334172641818132490838946381430014539405485916163241113623695818944822754939218933566450018171478967150890426648752116098838618690884576424553108343655007511699966643377589680553964230039854211611238296488638853774511710612314435912733835681416872473181519566875232704123566040010840459125370239146207216835614582942848506701096369396816502468108074311592061511839278705536494831929491937713783145859691457435751963096443196101384172435667367449800166435754520019740679940157960647975970214753565943939407416494802382311581353922923161574069001969797081428145282600205846024451885629837948483520826785177143816808769114059770010407191167813975954245750487344005759736764047228429490829320598118288734253732332186033733805920580283000224749915573952548199573444338825819673469465750359615959240317560375898174205814712699336410241336178071685515410391054354158753270606884208535912336456918366597011952192560570936566894098620859937838329806282383414297299505152998459971174858272179820273706040349038643698929046779518455119197493829654403030959145513807144404808654786284061531326068657566586295779311656536902784968361233307414627343590464575040202309779131906709757887590222105433222156438735714153411648836406043686682865254673113172170295531400167049546030894420719739589358562793328300430808961693498197626477651368628135182753677958652113355040390408031823912552742628704015722233994101502760656483475923729497669777541997117898678391157606783320479537565065220105887753181656349446455171241309966816499762463266833797865843626067728117431698517267822075312637169187204511496146298428120440258679642160098322575991704070639382928103027951921709929571772675387926639265905770675771892255273587287264119572653090114753165594677151405514894719023366420245792625645942879900882133450588197957793590407281833366326517846273575748218754890765345613093540345818567364952665359319837655411323744705818705795612033470595669614682358049476135358811473379986143213272856654209275775961992859300725429590428659138909177566834954824367845064922861728859417263308348797419252972200358497829634338343030550093601153555541984447570708553238983897068798148012525971551746413023397256556920999608794818598844645755686097674646281774175594045624702832125045963049799721794830767283650715029638075267217682266650944015120189001201188804666394137580267831339554560723240944440180878776235861981321986275287398259770123737184659383419094802688096190132314589692901427864324689012339695645633399732028706930106037756396073193482078368722639427374196843981473194689360647205164749454011455689340235182977093027634526598455205000966569553375178560403742511944259544753189018992846376885498756407028054822491343044802034885700060412164886138282174224436132124273690295154600760332688604059880811511931478783717471000118880665409802033116511015513778652396725625606166724426401011137053879294749116437026774304037935246867229882830865995223887247720276052720966754977481838632557562199898417292130867732570595189990658829241460482113146116461817843633813480403120762032332349761528268479093547967381928740009976961005232358890103123675527317480810378405873629593834660669395872287643737940498735130658436916461540569752025035274737927453250978756742508313949322571649224259772032503045476269204819608980703655581990489533054391786566137910632869150292542381372174996796172598738443254770736735177731044527867650609959769735054302834821771906566209583523644685373900558746875322758590130311973967965447906463183852264880831493199224506300134220780267319012540618719366498126354949996520687314088142459238934570959564748643726712187523528328296986842258381439279399430067404115821766597869502341453191925256419941957970768513700504022751182570201831960731910693244595584599592103941520985321093710535018685862490696396577546145942424802082113597496849482938286895829856660294983952885980756532944496069054413636602260671655951642422594443679400485204526355556262766582178963896963920434539574932573097076160867579977654821899910827503068677003930583130583452733578776553644435579097306377258947587397669487759249102319364765308952847157260299697989331396823422713217932425504448089124045718374352161531661375027862559516209957044364733690317922138884692242652310273109316211660140269264717933743125892527055787590258496426192476671187870969133936492531254614685383836016070997234029503990500788405615458873893688879752824042728997318518264674815107227018071334476157240599316635999888549370487704520119598976668320221124620237343620419200063000900195480417276378841969620324591592340475014768091823129746111353184812374962481525699515451232718250315172379432571123521177167708092528778965800437482019028166953548212503337726662770932583836409978434586354401390509462838280899715840454615837933256956769108248911257749687441924857681783894961803258807669651633504587139433454319873488021734355056926613863207711794113220989958486053913393753743436399450580965459199154711022334875409303800869304219325134760125287163539264594627923924448636344765401302545400883078743837344582132975921586633134595642158273165689442943046999950292348797218793303899447473372584618877562098692243408734828267509844727749149380600229578341964172782137606072654280961203821195272552179126542740589851308545886231550284060733437056530825803252329549191390045427235692019376995367017319135805300312743332586187069302111029165417264883245350754745723578259397514869004287628713665391829253997486508402375929347560472363155048614353078364047186465742465585328414990181746195667527544126953010350668127614354830445207320189489519862136810273594056665907235965968513534502826643182197020819095454830612211977418140873608724540610726681110115756866835383532775221857421518915124890031019860878358134013458599107711677607234833962676392681633254174848356273453558419372296376538796232454855149575549229242598403727247300023065790636169814836224846576449954632466229260915596944104843225495180052926903310114202837808019947617062165840088912916447383586053573465356093189290624049098715974610102612365169944620707273993671493550615599360499368278812129693408867494137624187212267104595036425501461234568348611283514205975847746578787076000488530809165101052606487554606285763046840466079015534043280844758608699810579560114001589827186213907316291387961363963017992131770135001911903647695198423845527401974113562246890593927257968017382916838174731827285516032336332432497488142399570387858038994794725491099560215397348113304032273124008859313630113597742543089641168184649936916066181084721528034731165099947379774384547665652292151594652316947112846152264695855247733959995839274891702834186054735938850356713636459737859296469591240779048390466757930403100023169913538146504604980797833065853344208596982432509326167479432536861577299731932261838444584284582049352099447586704403950983267850238942245411970232401904224577351765727046469972739876848670573517071493710762728196408619709165173037325782042191733970521888520046086147494941890747341256268348412843270548858206839561317116560348685875805052415193995167493626470940123796528628086904080758972871686251511705566600892755660054701288212270386093797891808874593984449179386929711435500932022174109671131146765548138902090329302969275269531477384388435387413562932817650417008108582423480787291345838320391773126599145002345302373674766754365118018521329087239007485491153051164577953437089162333686659776855868841156327549257341038818416221872159467222114492140578634706173060107717041545632646164524839664116448525106402071741990029009295094832190568362977372387132149310485798172293204896876865153654863738362769552184198489572734841985689996641133744181172834346867621652926424829955755441730192804294547870960598596659027160587876540843924346150222619518828716600528669392489107110910522805318346160511570134111095016640629176443070380909633417544704300957334864612077072764171995950441802339106158632506613272274886915847575263346378985248210872135930164173850827037904297448712868111660172228822789886281233294710211821474037759216431062371883375290012496529421765661522796217633434459647182114257115599230760959089287414658887438522794164805946779257744315067750877694828946483927706793154547592929835066206170317952030067979997188559660221060013599868053688314832169463986584128478383475762857486644180420219628084353205606697552288789969136365449628965863823013269766722902096385120536827294250743114855101089409276965667571277645480317387561562176577191533584248841316237635376167411334815039319056216498814711335759172382104895620379956061287794680862300367219920491396344225664104274155861926741765684681462896057388598453271732717716271866399296242059528769229050859535661541916633044628798429360545304919222864291174295007180286452416106049631166857414958595407138704637374461882391271418626375222476977718774358452386640309915216285661556610574258927726366651605440783140302158596545213042433382857893881634547693973086971281859252052845050363105370241119475488576087158157108043175573972634511097948046320791998020675061550173423078281611442382740291438341561841111382137092380013853586597842942458439533504017837873250111691466847188455788651515109179723334278392605957673400558541146433586277731837620828181143124627859195465443041759218292179118568945447088007057461887014269774829488645405529559987056018807239862678169532123740926875341822863767061765327194699061020313077480539751165046198866035029913843545155715491537217940020550700153240921600583179370240645853577689562624971903700996840856729588535010908433103992105149907508279153989561658243768074000548026635124267986663328528741241855334797403508506087372650733946504038394065110278356487930492866490086242494384144568404032375236970160904951189445287214111256711481422214819421067993807158940973382355777242320066413319698259059146271864949684015086652458233253521524883266458854683423676279969889295946087125355589418359899898668620130363261504595271778709759123610955664111087686571308581218295093036746613127441104792394773177265750758834232445333759645068380044284706290592394501864009755142816990612008164774204688820392630842037056027879317707029968600212228992202773845532382008198006193062986949815385761631816226411573936260343834432606684397239138247437297014550312703255346409408043372973409369429495735297273518596714821806486320087386200335923333603340843907786228023081497114369054235649850777517801515283993874786184529039496294418375914184489770344298432653531978139139939521498854276052724686222606846662190558954040144188236509767485277694909155805032653914877452656534580367910885195157140186956229737033180545304442219236587857861603517850637432925331785767103607481777152345779427657105523654291892573232762911988615753288003802955359554723936993178037619296807858792828338792970843581926723593383511288485238459011781744834522186345560299431289875283273142831319105191358049183705356592974139677912800772203803840293433076851406384356185576070451391502783363965964943881125192182302313694237578028646600186401265071698644946747489465153231809648137832221324884802244395010830259067015273373835927809996484675053239458340670432106858675965323702372810037754000470990658617192434312870809765383556698939910796730754569286244604365423070819126454882058449049097075215250610595510829620749303395950070717638308181973338667354767851018707449635808063827482676840955223226990432269007346778333596746272005619451112173399733584855725093410762486811698247521631568380338974857964469586182703080561641744094201030093293688363342643142724334908478233420465577374683904503076313948225061495272275886142961619743130877803119101972080610160935770795037833980316981893795920322079807003446196825480190281716015357095855102082712202941837337457671549675505053820603031854871924735899583899315592276960971133409259682749362200203563870435593154243508035806291633828683156172272705177769680405416814539828362077371524383588096337156812839381408282477545286599130660344618158684917341295143386531958817517289932217524851583622145380514283047732100296316652736746677195056043075455226773791238865508472095506692768696387849359487098810721752997145703480793279172001966784929351115883689666677398672242729709336952156723146247492747508051725833025286983748712016800847431773557491032075638318140113937401100199510006372294134815352837313228930457874761812133864902723758348292775952013957146740284555554024713673999278499314351179222154464148971012409017765670188344500728497541753599062318240618455989361953726654038662987268891079134380706763821826334760351467385862858388362112238238103564408664222670863465289676760323009020712443781839553428352291439844529764360271828727078391755787588230339092329043451816073927600196383660651035716904172819903395792206028162522074616795611676531570327514245309555632681878075611010714358144289987651765636097322250658481950082024096568108540749836047951436349979685421695655184882652128061796305884600548482604130919247793775289554139741106808103949435557151130685015412884790988057988046548249067521344146783282741016692416032388580882444247648062873150738986225601110519579009215027327390246852745147991607824612690099089955412266698299361788888884254930581648972860988345811834883731099122524398244694373979479576957511489067976758515230378978708067253881058635897567747786919812221343023600122816787523476673469355276018722809790526277648877008013532960225045587161634719283607978325705607955188897866224183462043679490837926956012902555933794954239767293198747628148448721282383984301901626101913019659822661104090445628659459999502110601241727339211951433810918625504415421803275109417187427122001995981992412597827972723084794959990203482317052259081098636325608926973321327265570476905113329908304144548594432572320201803889650412452736716419732691650857717953054279792452924314975380659431643581900832027710525936020434228358899265537403415733498606012993161698336044581908028109431223441846722172058108812747181860107250574265145788053032317296107282176703513967978484036515041975109630740668101741302654639210101672458879533321158111236949610951170190508467338341267592199762142297992277255110452671153400587719060244898823710859204395835239987935514204534612505961190554861888492054853676503985522559598472153262154344995644086920179206642166430192030876241445408461525128626431584536387789631648845307749813566490587246559361473974916425440355440326789954991856188057733615661177666284139090995592005746340660254100634298394656830185804857930360944160419396892388425762641070609243483569305736962853390260353640345984172640057915391578658377589382663067824502352835725686540099715223714233441573320886736595033154158405673149181267263104613001555164508324432135630372814173640347467172819544138845581236976061797986068785271858919538488816256844192560298848986632265212092810404795387110820181549583251623280363235138354830167296863462433579029148195132693359620729710387710233897771779114319919506451197517488503103576078942155116028306238834506265062450522260204815990146133081504948790535049351038209925570502993680730154577389575058539627503912200653714727788409035234993337253285576810692125928114647344992118785464014754799301252884524075625797939328520633601934064931017524577933328652475447514511382602315227121994192537535910225099428861215186404774467190686541877851072754524509902663180804928465477975647250400420959090401705200793319575557517799532972737919024413644764721305830050671959889302463496674916476736323506512153332716862481310509966541808751961121618030996891125739663951721442701100714665301019122534621500603183030329072123433248110210817696635154941274880798988895402862589497999937929494352156554093813335162703444207425236237220535931675022736432188458009738849191916484568966189892543993627117412519280261974265289559998955517816367554933454208851385077717173732095105272416018144499452711696142805589331549695766767364580407363391326020072681381957419249213395759193214383230927667949295894760633199865075222622743212021436006249950867831698994119229274669244513420418674746499915267066815905308529825005009505688645290461014893695111544198173813791969347288432930155439957300351799661560087692578608173519280230046629059741342003735600152854667163287057433287496478100722793244529684301754414354077427099944928748281111283344625459754663022815203569105323016207420286513795378566549830436030608192894540297137418796720365624170516761646060753072710472877716236452389089270413420978545558117788199727635358974681390993983716843316200289760084589625418069791055053752125147924059283264147052432302243605695281628655819112379361796246691185552761003929258228570161555190062643327331781562281086659832387542794488545865466855858104344211765955359303466934875067520932972420914387942397274384196777134608928274134190725490098152324399121831753650241160934889206042344124233856263837503790794824037423140817751871905177052354344726356464220458742031419766922391599387610377748137132063252823627864150532296494310587036034827380074512118124474132767670992898231583878839838008871149456965476264949959816361062540875112689261808734307845034267727249923661490061070356993457008102909349851231466256274868274791930063730680720039071158933094858246709216919746340015925268179061765755859205442401899296701526886927404040637066856371841229750288197052144622745408781512695893458646541396370981802389415526951891063984188954222730172796683082569495246151437043921479659565896267060566663736667266668227800945921195909416927431513850520970040303219041609487073186469218042898611551824638199687620725769311327096510867390562551652761877595230794571395418146639069843539238042008682782778177230031545703538440871403065531198468065439075380612786699077838233180745057080989920502638358401077011467253646254858342949667528452163824553913630405797132529307484449858671913325813997223858634272039953321028925733668168610566338664196433265511305139758403856877982559167131738916504230837233934860034341427713414730842498349338295002334441933290379473123939914364733195080786708637300971298634009300453106524366014885914122250708576718445639128144911963234399966939223179314730672748969880369234163944009617568287966739910270512217587589677056479997098265905956341007253644665221663552725200183033247657604114382368606110376411438751468269807808528305034259616309391429233427528764986045750875441710864999050564293379305813788468566758731064685907455724043327969773168085905265287712154715953544962242396956802923984425231040593854392479914818026132651019808490460436088556994186850948095130998020320122350406107769794410652945500569886882291264538256742210455502582038541509490310241531659808696149154282329316971491802793702816795805762257293176633557774543780275461137581964740652510380218086252252370756292897163082987148751661161527023362715916564094758804398010986300318004008576854138798888532287425254083998346019781402735808873246563852289001345992145795338100184724484093397662403579728733268570002846988581864973298105856238236765703543351824894986027199498698613831547857554423212572308783249489228268066476368447589391087229358071572322494768243592282753839914256175073844745647733705228913738012465824878848759664514508686597639978926358241696239972917261885057710513477745113196259144168964936900804214233967454958116166511517149187036047316434479935590610293228732589072624124530128072274114204715250933317884018966526933989831325483047963477955274489763937903385673617078149285415339497782298482788457517495173205651178129806497981176782780880170369283958467362889074802915444522604042028747458312449014403186738345529683431566552565724260083404091385460745739370594277784158638790134555778417263643792536624041171232333212273535934004788648247760863433021362810730337784410273888321687308614694258115727272993699144617793958370509163131932992356385458094859901605402001380064387389971599873068530558000395924943773685497715480443736579582445240607808427769585395554849025619356502943576467433648956447100192296729541985338508144249388105785188131780378713690972579484726362691492080641403375923359334037047147112041047797194498121245245010428404493271491443802274756384582762916407120217280510933742621685885539170501885243243025444931087969578750679542476488428403707892341790773917663760205565375689445418914758392694496665042183184688479576225537885412818664424721709554462032585462615572399927046904521497501859675600757216692338082689633476680546876499554005825903979852892460172037143315282761650903842076473945860482915177901031920128836763391581680396777946851703858873672536138767354287158277968996356925498741918692296358788354165317424709342931755313891591020191707611506775795262907450417734564239450433304625451230019686071064363594176821055950993376752930836569371506462022866146612785704473600669295150144492193388461780068169307887810897488900250810852800643735459288540161102846952852666911261701714108560339308037940331848253305685951740994191989235519160744009653852531944975813193658395841080196487904522775861758222609535961498177144053406822854843294773035668611167942728855498779007333027955291205055236753685862821846711236146177422703535706095325219253555820442363017866750039594916665262108895151420770292097194771142311935352442201989800647876808342301174396766179329242908087381775462736024730406901299512175131508130324505629382095262801125102610807607218704817922298872932702624087032371679823866790997755925624091917164778679699376842399941631936946813423275874038469638174295233886480530305486842785438572701896541690100806197191918229937641748205249911631694466620337177084983012592917799026011741234914318297491610328352071116917729892716414858734403048513759340431850820610891485475658255400940483411909988437485473636367372401017901403598498910339895945927399818461199656761360738243427986602063571087585491052401404429760659077670493395485567798872182564276993472528372643021303788871359739547270939759582438534271084205198259314446281179145853647730787892924143435794955478963817558902108139860858428803440587567754558913496794064858563298980870954188748875589725009954551708734051482381942754430034050388618130436623245886978810927555032412124415871619586608968850736014227611473383692540177792481506816747743201838671602551845387469258447097878006530803369831739911514154993754343162370487297300332209067694999103750753769546316012600689944667531947290899942349014567756435245530306140432653836397089704017849009801968508658387971974928026256646649190021217346846120961785792277315985623751782592652546011845801758476217983492584295358128158436821462925475445839426776527759826926587415654594726517444435126677678236643141901484881873817410604522655429415516121705649026377422117860223798459973041307139459137566039631239351834592388629725292422617786172002357575327278161070481394692407419160880681131768697329037589454462741018622263649965970185140017314905094455868063818856420865607617105194329759378546181449030526904447222509162197325237937908767325725538395400509923363976952923689601616481038208772193119171758913283146147999539949024913924140056590730107599242580830757616346190882196420568201248292173566741579383736568352434582430235142274128902872831467563046465028948213841464391480292823957233953427780854492464102444074692323381087583177630030102412886894631534085450527612783617756506382880298802356477651365485677408795457380382152263349603466268089394275331689458424816758735738225633806702363003059612002879259974333213769101470570674018547060953201033053721236450227277450178388132340386062168228878056009404407847633436677343768421411522878060533846471763788995318036257618838330419569072744718002781836907697734292256283953327235539499053011953641900727447530470025893985560821863207923408957399144852834496547371120512542145555405568513111061268333982842538168289422079216956041355701328212813134023563336408310448117252386569909537727099645489901154549780937804812509899896568415476015673405020880627745182706907659282642789835241453596564181933714709234823488974567518710100753647229371518680135576020318818093226851426771984497399877738574588124467280503031463096263069146824950348218096072174420351607964522732674918219765155380282199598081765821788749977334962740779409279098949399996869549861260227143832222431955002811083122608933876543392871276867013623738150397190357429625321851081428255072463743777087720824178062783156763553501972835729200738586857608560738100453078130498077592947681954942948804055297440624337366092522918211709427338195033112447326345310471098000689926373096622617000406180402510465745262464229348759850281207838742216389594524217706463447469656425814945105171180655123305136221560582238399847567248391617369855336248448782591369744591335046837039453050422391932886008707584933676094354830721154355183583981046999196245463247179239366524121100439456704605529976010426453049527285059936229149083652589857000941604276588307880084756452733769799691938158783666489957768253246724058706054424631439894431106373421183286378744958574419902962380653676443554930431356995499766001367839939827398529705297570803657538980579950084444156171299167347026115225238535118942019403609157329260652471647149830027631935174355263995892902569274801427621618436140974726291071916361874677623976552163961948144431908991008281018625775174312501891210253676397951091651048384939058019591674305334768731426018567696834696828621463554064720177277691378758703236690688471222178300174376408287929549285782183878910464717887059919267097653308445247418003826764798451196062528119504642667965265017477198968648157849785640998310694652560331105387681823754073210288060635255116146577829403450444870926156078376088967753745254464620211730827538643804759669416057233480016774173782300773334960166457040680004317342410730888185765439503140943408871308833009629421989417190784214998306454948862352332873174372768110585474460570965168411844719897348641868840932919701900914379178964756570817159735583066117244452850544645417318678428711626495371337620755522766476240277249628681189920181518838017578521001617903063116255806129185120569628737280863099539409484001010473295970695049131612177858039286135139665145139594909590894335457823627707232010761145317253049635305934519936706588474131780921040608943881702922116453653756783266022715785263414285254062083169630293685860015257856459723566435446290825649484617984458070364482472891336869647036529871341384767498979658252093081895861593525113424302075660520976082829265085594988356839235471462363093674730706213549086073488500557190679209647828570845776818408109243997887117064006427392760512950927831282366215779404749770296194680711198166485089887640208710003062902389089605681037092152394337968789784530969555297591587823758847756578729077520869655589280784649846650495535415849601170138665554444121829116618095523632010835986159821164922698054835151020189514468757833070520160586718904118850657574700077410832925381487871914477159857431903614382640019781768281963224127919393604481475446620313371390362258950348353567293705205594867274878556032469698460458024605082002166913433332696002755718387455499232906009164392185587210483286135973144195785888068910441533153355782708989501211823592154294942632870572447132531421873737090086625247801801813608008122726626523405494457974737913752228061054619696034147096000903403397545980016727142876160395610164467282102269277128914486402795728506878128509796705421562084067330737044534179040353413885430773826214829517189582755866852410857476960419396653779850788270713039614573081096032022166730272788128930284130173361650407301994078363611547968334215322283893202160250837886873472729351944975208922177059750298048546767261503221743721903892891895488494128210371258967351846980335087262490281704342704637196625399455707447132139713003635356270725454220451880105740656797058614692698429975069769488337742528731721578284213150446135022662862259735518605593785897536265173046785537083070234769514435769455501521365519281765834370539220124359744860305782771570018293417300791623839460344760527421521818342173272853279977255410889347805902391689485340348900180455236069087238436482432215664749650923221502679513689224681102759412039262760449758058742725595215032332315889820917611128124441342809618840680191860449027047286026810746578001947723119084562856446208143304175964105412999250250543153615106058728841678781237949236811594636960513437651990725894273162097150131416998337511737227403296794539738462305255195175320730392111169195363616803503038712209511966095473750704668863596770363704221332629878086361290185600587663665651928747233833226951915384456983186876374260713733121595203118567076201435674493711204948952387236915213366302609800439496719823107890373603691666960025822957492087589678675528043736079107659340783196954394122632365843645369994811165678157862241246512946051919588563990768727951522493853098813822417329383643103094308918750096298188694659533259135427324540544748283995932215353199101938366624654436204003861611327455873575093852122833551934492487911956021078320243735057770550320986550930353135015300277068668471766716451784334093886172217486576327018576563409154213623484252764583776807120985109788822589304133192589547832893172613262967479268292209623973835868189236619964099586189386179944258562203359097162998370845873734924182571365114805287846859147501087009439227559420683988820327063494966038600902767378449839482611942885679947249291644419223961948771262638687983461053109467639757351708649670695316472422102142323844661887313092836918327032818086201970888964020539299597208361822937865496720675282613729023619427775571823357184499735242063388269015415278221262103502850834203390382060267908445089623139438551714127765303124849164368823838816788103443038414477718780575867719257786386870674459519002219100492695452617814702528904922802251486466906634022804767676430593715908409375169446297138599452801821925293749933815012209340221792954271119746422544935274606634388052628900133417911430094697553487587331410670020145867149422950858511556877298540115402807928679761491513079848602837457440161609636927597347965875622994027425943995557818886631894093655723488762150777075927610564691223433629096271105721360159094014458817423575970864675787762031534009551514910976969092428043845030678845993854898087550323134161175151091557947148468428012658687334674337311405640004839900380141844950032161747549759166476518709862470742745640612140579892370443337360504287512017103278630333001545112737656071751497033322911589751528247578848052523801537740105975261427010788776046409536601860713510292637564946492609842511337162465902467469431791664554349343204319622033424273775450729475847803497714103696777707877941239053784498559688307928903368101237759949186180310905975527149734062457049166679292624948413668654319271219715735888520637506720565768123817741581783511015022414807382017143207975014427054125587148590896621538733237462378513161564241462127911550445636898326099623544209489027491110818707007002005487066725045648946661548996579330950143148940778222807185722144438083153732653351534486394519859139860336347893274902291302346252373945476694993507372205438297035081692577850377301335523630791125487336241177481404207578997450557423090704791975152972507584986582246717671921884106391672347824413924713177768191294363727172996077514137387831344557250099150178510857853683091776819439992336156936257397654628003791688630783484350342410884774414770441809018617597603616951276804706402632694393763925699897063467228271932910006137921743376574254638721851491571142822734294777447601671801847256309942290820077649348463994291134234165266917606727923370730963480256055376918213010807440683414265733634527671637467036553387490837161777145186381516609211418267016844091794796496173186181475750615702726280185363398306758809969035490483626423483614477166469969142740633904933558302260277358806327840562200014071218267800614624796242700122699276127129063474253424009726520181969211309795843974487566150907468339605012652415679938101581027059528680439800726208862066683403070433519975489640863611656268438695279226503065015955143526895632102457696528691055028811562216886531136207003537628171900741653303269366145155851048614572522447942904228250617729039398193002038956724587454147368269805160107846267933785190179152974693459462484649550547420641485501838678720736071004880489115327045297056241489198576831150059579902836371040765867652653577581969845261115668266396898127426494258777289630301591169111037903671443415632824908993041568898097697740250880778510375929020051009111496519076961506943013891949550878578431761063565545764715683895116451407684774522831660565561409439611922261770770982020791374651268932690886819947379092562888272814762460982568767454531758644330498359130270742554324612899716447803337018822287724451725781915430263428204477701261169389416760214713298594075634770615633195493901173936498844553606226827652172076230178340949607049008610100555207526009982139600342069358989222894354384546566209279985205983175269725792480436346216616502103770986678551923977192891873070888828327906390909037384863627538433409146603918135546367446538474363157243529410978168704457830672273458199555823447125208911306050382696659432218768460368635770330362617133384275492146653647147526454225411243074356596605997426062358865949479895136924667580998913688457935542854746253863522773257704660529155633465697283898094333214867267439939988502542359500584392565902741799412260804119784307906395770938759361810768887271133223383527871657978490001242745065517778848812287284848635300126128232066238990973527190736826668886521677240344748480783814803463614405045292498102170034744869149905116483318833287824151968739933524940635541776818571378472770326033846184284556396328922134441980382643651440524378827487760241045896615787509758091401711246984185617531931241830870937079299883151033596193161373064940958823630866518532682539524537204578926202714428442595158531262716259224938480753376798385012665696795280166035998042443377489706769273372788437544822284976161406248557457887859789759532825606474603258439131443739994958220968260142383494711037838821293557698886449286572583477767813260868603896553253396424739321102768684989517503456996996241676165008729121173436765880871728362750518456678669130295687732220371616983010199204792610169561402633757196297193101847707078379099947372440436956254604807515651329420746217678479661322991280440903230915438718556299923757387134409755803137726253715783643930618979788661943683770136788179902065273462042453748667675052733797470884722015239875535331498169998197770465101541592394741578155936119511513638766653860312370884978344050838032544126942895976099172092752862822141257767118650455384705688150874340151317812458604975669129912970526767940727608280275948665297532968720701895820490297463775210957875688739085310032007771688276954147290685179307777483621372444287630786389054584721741300969779612905786137949922665064134747136952152374991717398307343985533650125011150615204600023684024703874561260799248787684307619253592501784084466646121833154108696224331076614906805577169550957464998851852211460406848953057038352461442536697167629106426162505942513444253681715884201380602743098932414715970648261203853060561316159794142064343195808268568114555707257322719668338447650806585846362902186594297676402421360407178829579908200548322560383167449282990396873298980582773540709797124639448861875897484445726654123893717863358306796740935451036545495505554619083560671418121801575806318822195966714034940667436765717909225849695987196428935963042969997051475834417835818742362324627515006174210641996842054910832887748408675687975391626182862588627801052217146306946352558351726371962985174593467398526896098090088245659690006509992741164757305527657680846078898869542941902710863079512631483469576101075364383323853132893132424827895663001730983551726826259544123454896182767933603109443807496966951568363495450785229403367648611856374105440097794638182749965964963734701633161768021065936240208054379252844302154786565612160500483942772259319664970845138029163597059158753531154261676018091406910448760101265734507203277882259480284485382644409553739317348399792163669356056530579564329393487850645404218697065340859502038005561131976185132145742621659630528182557961264174903594992730147106467040073595604318918294142983572893005436376778106931829050095671362592295858280930883170832090663500420197494089436473974963053055475000308321829016800833693846762414091802496693458918568292544635735366991352310747185590039606732700657344639734964791765453736990495248550229857708095269904151240703938678594380559896836865201807819720614859919115645366426846665443241857219160236217766475730704795295176354814672343377790209635388371028651745712212227520952311158587188104084730504692278744500252891233212616555667579884487586029589026241668690637840216392997968480484688643120610400523256073086803684979515503608489146091110744861515674141836666750924591337062220038389244396152232306837507318503398631470702726605777595340136241151625290387250392171612483438319631669790556506317818835526654653922407442783490144581744464203651726551979545401765002218933932164881038033658436897637470325707964853436342690397505008815784726764554576815356595859589110424661480510703892225381970186326456510824203319194781790319285679845706972915571468485832508950972904042032300037067977738928244243151830253159916945237938208648276795743897734207576060301992483685093322006106251887573098301001265888824602372154292931702789525173043393248465393651535185758504513001412338615523371913164578678103647049741806444466183827446613355396245621216663894742056604860177789233116019659323718611572864756264404133879592913430005896241254178602042125514678724854160904580792479842056322855790187242196582123326146438377133837858352409155909111065926962758008935483293416892694243775059758879465138012591742350666443789693768248522868749509642671084906103433797082223225555937390855119881416408634337232810769050835893466291481110198720611025933579488228925766914634371994589298041689599976133938359186230177730218443764934073722261192803557845681774025548532805929279410100473422538896830546546169090969792570073659790189159077052129485353354479352207954464263462098489358167674445090649985801557972485489051221878560342299562232526000209060780567966275272832741452899072563806855358657830822356890061562621292175792824049013192461431273566282649618243194723593146228493402541491520555677966301414862104033821562964609798660201324792844144796238021398009290920803517971398357711927042253528814906531510452162873792443035296345061133024509579959605675622820926362857765769564275279718425845784758933849458760757481606986452142170283763003206086139468321583845072568095591591700756371041377130236421275267585500755327760959769387768196902135134582485015382837120202094553701605196210078215868600123623563933665825014419538493988852090926087069680099197395452859099246859034520220574042113442246161987922284800268641292564571103843777339727405808332131994459890471345406875145148683573878533443076040144407375686559802725299852794378005632066026509005599427396947727250521452823867912691275025107687072933793517052035938073639145852718038478001809335889025107346993976636162268856828120735249217448717300534066614464286202760295952018983813452620796720244469670595560839624110539264637020613445277295541630692845492282732235822659120498392891086467185384244172185788400569508801159240999860520328586603932219841667296126623582762729373577361863876491607161331358673250870108309164249972546511339280963697078260471112609032665316087469276096943068655969627761258839472649917364097773968963045776123153531999961411971358781618343468437000075819425819446595077224583581718674315937557901456205500778686708866339517255718621631310984495606138470270972546372381474733135180975404398564281981815028558868210480166067295788244100421638256112689783996146146621151861163273595967651939616881320273626646140745968502146249478571552555600073547959297906845367491044739712662905111822278278805866233061569861730096872955471237487615296766572016069949219532258063438232499798960060818745331849470389892827365320464088181360355767083992918314383843621609859704834772094713947765543788131467423867856159383711584020355982360970220825297779622432937925597304665861325560461856714964261774646600000934233029193840807018340709470144220337273147483907330950046298717101748137647596701682613800361884110617345912890895171830641693061314611236734025723172198183788616280541829907060344796145538741261752261551208669886281574275726341797088443799636614920145958140301864465375292497086902561950131779584989818576431116238156827872395703201006025892257096638656571351670171908251778547015690756209038796949683975670424081858521665296777080709607542849221767007333254796907619287232374806284235019326088890862384946980643448342268982518625811496275458478643177530430236927147061400510734247801082439893292761259458906192277725202601194954810913488633091674771463768464282224537514716488474856468880007942044084815505409354978204400074332007877751102371227125885555266649245637697306673720309872033737775391338276408673023802509142750097399225829697220352103746094876117425928715595513323059899856372547171377052078625072555224538338831313419248984779446788021303552208321817817413572057792618082153850313193189001024721575231376235197650420070585528469814441095556668218557406901024519784397800916586571194669023043150100902510956271672709573108936489814417209107631292531466405341848453173447615857640492092300513596935948561413797648840390085079369172566190264823228323916023349197181522770435718751915204680405496920868586851260082690587203611439456826847462098780935947055389077224065507166104482553664870868717576192252575092752623826649249862303608975539190512140184553800395525371616814599169262047456983010328299836744554737428294242946085616082577212122260976954903928640916412444548522282038378949576818800942334105343894594568375965413952043779914455360247139078228495689035935184831927915968314364743385063158692924751209504772848285768639492139947742631197015035154435434555765175411399653918312069306977168598382418874329300750368793925562530636144070316960122931812318998409293262220445564165728514981810467237663307387625680164871719529602653298921170545562841701571971296837596312563501391289304334923155803640897969100864648097321760573785206221019360432725857425076823163392454370584161212418085120017610909046421242731839163454076349982922308719731925894839057691153044765247379097787354722803483773100506036945090951362459112939844183541937631457254806773621728125833851331113107230372533588003624214130629556272377924341500151720520972687774305295940675668766561788556908170624000224920768832210622210245792643714972036737617939928746093143169078547608235941914945416568105243257980174641089061212856015260766386005670034670419794844584602050345541725508147420352074299472587919875142598426398167509835076499819720692363476786460165286856662983751466458163979864399887332017872373860728442288841199324702289581229021947420665922354559951054320212282051391199099335793307243524639566819673227978286387565614106281308974090200273904660771529470923458023213670867928761587893934790460917967045005542140405374057227308717275326565083850279566571464247670649160342722271058646872061916344167769807166894407980111014823588746567084233795590727795920222837135876201759698617163531970662772114867436571894768180096978236080928195753411573856469633100352581394752524718983180526770748464167862722447480669277947420282221316710714050930527811204289476086615140207215602277216069699559343327990610590959454170579681370985199226464749721186425820061768927424488787296351322204742621986667531668799863910749566937315368259425903691472033429176006114838513404705839518171742897971406683096290988566029613008973998478846667774161871733552334199346182648702502710662266339994317057437097383846805376023806438041798865178808268102639823988560451575167374940716439840749287909618420115782340091024659950994425960669855170329941675532978380455392161076898089093128461858065676740802907697236655325112389451832287921350288400485987777473736051694096212485723953966675686950212952282651894900485824745878451341916284403549122853960811765587986025324361620760379436215726784516230143725392193839362276906383441683077157568282132918566373585946290535325902680628521299518112382373996227163176599001602272816786061644039462723664704502706552026650286601754346015906892169839470358746401553764004421834344499309481933386402700763752199005887134411841001318054078994711582852392400694713971434497724598869859824669521076227403748860682884703027011402041749338288836831674621935448955724698538185581936754119570320172295154143529857992316443898053466088415725445830650993841023879074508915461220734310282512018773951983410892014507024501429314781116092286532517600684748515333813696800951438753267100999329351115653837646661547319125542179705182294209738423176842307040020082873082453473999271667313699447578711900457667214903193487604711425078761133381230528972135487104635192144480301670309797150411895202815107184674795579364194977374970064998660106702052899245437929022160901243501086226010171033379499645364738370184654299957337017935829977933148244637344277720952359475756729944665295238861147970580665529865398510934794225490689469694590531307273803834729508935558153711321749298965079445948249371075793313912856118759009430205714404284994815447387366051123521871909347235952772267467063705408710892670225145563212606917454352261359349113214867817488824921234902558082453413979499014966492025266528165602215456678727953369112455348484610817177019959297887350186487361388134879540574616026951902101666983184413870349585820424438483393737337103948563409649471814724105765564360176550615206336617328795899188777744464424267235974743598089787849157367648126901924631926420222979359452269146370992546228703456187349274681265729980133200194820709534787167464047651627778222896676786928130015984125632906178554280559683196487289993837095620360019569393961928969809665674615805934031777157646086665945884444933240494836156271404867584008726346700631772173582975859141554169681102771428508833729612602354246689038627837987770973753196305718665504017291005963881501509549423662600340036517007499140147395815658545497855509516152127020890660144607463751500821425200675587024736912643092561748293122651273354349372959473805396226662689279882811548482087726958224799333570754070850865126488910943957901010353940702707441705876457335553788382044681028951189683602543092177302399627898717175101902103655905206679813233680346586088067300136506845079689574265070310505575081528991107661286642780519650113702467781746661018892406898976871248355467616130278932634954009703254158312626507140159068558731060219379404197457231639828292599858625367735054844254131610580737172565407610967676180597716100270197610294353846434473357996195466817423274570272462316138249759522669552936426422368566628345687706984278359097153408546150354132830148277591015832292304333152300219538585901321241228236056916193007236145660778190717519598070719368027031794037862706441750988850972301700880765293389424192057308921379036903407482134492932246541663002722111717704623454487083130975441296205877221133467439570000708509333584363560849544991130898349849718211937118576893152400112740019055270810625136905236917719222989901524841651273799385906664605679417936726426559261921805600969944907443078653728637128934189376316526624668564347824581602776178102214573538025517876390771337211013808379719482149078080732291534539706951776182644511169264768968819516611531063301263864825764919760032641877553210953269400793609770131443141402959271525642092493677518677196795491867167699337601177404739630091213324123668629678769093047173792263299937023688216470595363327243519519204704474842003559780668289247910473010685803348471208954887364907989361751029477922687195398272692257098550006340331600703263303271028310738087851332039866646376241809128453071973375111465916535171170276430939487876043845448485515907976962664148764918255257357710311425716134259947371059252912858100383931947554857008669575775717296022896983187091705101816466387314218978340953233818453640782077788884309092456740242543238442381842483143114410196675996819394527173831728724350190321376321653263324597285155605427412843518872374448288389643654392827757536126091187742981246300772438371707906369592930633182487568366398990213442513989964857529270592969027625014280656914910220238077303585136567924073812391254491446087219919131716894279189006185986365644739782776218008941827038496481168781707672958230271189925659487200303813766685383712212133975348218209793573111856789848309669804315656157426258407679810889659749567248778759053097536210077615390769060319548419920242138538751870784606114546231690429695640761826274113055737760429405260329615030493409155462357855440716788967379778172590628995137349017534402423730756889249939347881612719848245304333062564000082355669858834085625713616376437678625933781573247831138261609859617447741410533265166786115508489617228755108618396118765227882287229352207734323189948136208857747950161897926496691244568235517492529167786314092390242066615336482776249486141192772343940577169320750312330929151343641517631229053486425084032209782385178969372047454161230597857360029120660569166658206804543178889866954734919390379975419100724139676736027384200753521495245896408124800227830238507413147238277282911160595461322566405962776503839443528003872600368432566034859497744685993476637248216192394618517774071719127910233524774863039028401982385149852179404129259311287225895999968345179003480742391894783822119100365610584558938096478196686709154483789978741911866792623743816225062573471425957312416746248826317784887962376220051918134533717550810096452564441890994996626804825550202128987663949698186290994917163040292869753810391369152162585272108453387651169336089413603446485642278857895177410975275462551929144373966433211793470252819120541664527338684236767860397873100803915900088764519810573007150472020786918597021014613816165206255924555691515952113174226478219762420716278676435361845289935639223115247756343297220615804232602302172133885383321754746206566889176983252360288152600026568502647302692363332831925676802646360020382611638492898640071177550883003750696148600623383319851786345542772129440486804033363370882810993597623579077335136650988080147607004514762703693101233149193092609998398282859664373637441042965162991549600688328269389448059190801653781647227170341215459428712580767787768786479607742400076867055386202373083066122624136209363443852342339835887217561236686239513142698153306864558003132791680377367263579556177822056863484586730446886270248401874801142114857920647480972181007634944730776590568387989447553819268987896093325593893402421508226236592634294209425719218358477350109300394930060063043517667280292416665507892856801202289101118097760651111962202185582369549410549460530718565288700529760822597047447564488350990657861238208561933802708201609101628704214872223727056535247562255732296039218497065196635980000614965724969203847289211167049774568102695230171302142122300109385164101848598805552772175375202930791202420198598411751577777844898351458200483700365760015424540166826257276069480301997680087318335780085074850394044719071167224500078275423362803606900616653204930221550766639764738888440635470252661265845887984545543950925637788200813662550926421999249594904659816994421967933526043759180669222902086953977887822815808574112130931692290892233683307568638415028986918380878160322049651777227280790223039065904567646482632706467695947135258189746424313009191647703452638202397542927719401005853908410283645180335166115585923131750461583270375077323121513227456827426348343638896179681881454674365084319302801186287668261787967865093323514516553429626916065021561010431191377791492062285744736878758431547111295553247962217564022134997842024878717332087451096790236043438098210854861782615059889516555608492890788831880274806017909407190317174189279106571016469699291520850133065202941221123560729016123148320154928072510516474806698243030051828956761512680757025868037141415083705939387833828697436641100619585269444519840403487822684693159075507896228980238215804196688099408675655915782401229670093931750441511199242475933835607547439211050914724175440921814654439584463409105833045976846723534244707335097298581468879156538389537907071446633652940762622031032145315325330051944767218148089138966128819008905177384184443618740894269330086763924463660199902588759868912255286872292077221656849402487773830715004616074768725232123574749354468218488114361108454373328600186763687200093471989423064731353542365091173330631971431712339883017337544341235518211111853411046035703643236491251858372663896242986767860617240513259955706986876258723966188813902171845314620032865487132683255326421695695943654247894242700787014632482157128179276606625497772521515953982089762820784753904308753878581662574657826475919586005616326357133995426452403230941084676166132198012435504949370325505424022867327515543046482163393912452463146407626937088763276081371390176122763592645430023526851318386717290232701808464901877966044778119385669941435834680186921761728144513562943972721363676197738452058760058267253588337184641035604827713868505138287564252799863285464585017364261678263862260572627798403789851645604674521894260036514328759714937196146551851332565511638016723935911345180996152966988206268637161987473645482137174429334002458480513770094746915200115038572187473150412149872023284459039935378410079710043642172873040981387436572529039356235929712922888917421073144037163753988773877984810829030166545608281159118811631360249674442721964177500251582430146617551639645225073760975451340913672878758761024190660710917784884186968403529590744858413923485891598618465875327105385747193365248057561016469929415432628438104327688226110292002109948331399811432806257191714976055020126369637253224111379370236953897449948660587502017557401620502380857474775443601080763666125907448259894804256605830287741750702946147620081360073658214492220742887380973811866650168667298367931320338791714941500277788070436008825834924016172518415414521343676536097078430242181071388760809624301780102859763190150415953178058337169309423168380691910615209192752305554933165730409051245746220253263279338385836588336061474540221918931887490103036146415016238092083313438633728203145203516347946694137146496533648668654479126973368291695602629829301904843984692515215112830469610131947780207271548829264960569124900742751077992308397530740982011814845710044279593361501699625978260320485101657293082145752468451722172011721715428509764821530844921153660151734243863254744892002954693620755501820760922980906070268161426629063336520839963658589282759188021489430439115303034584107023012043846558043953941970707454166427983725745418712671776404938446884145164208363506276161731997630987982679066144834761584701355158761160148395028481888373808133526334192038363201036623110514637399510332237627560810435636318040329463571094984767253780890398721319944716371667107593870524555074322228855423047972367877346341816937455878730445965595222701974875088822266993340845190191394922578393435318219075666385812572329188167585515082989662828976449449540990134073516896957647270205494086603866430850926163295877867737906451006736642837104270690749755190891466531305473417222760788614404810563036002069322948802971540418680298565447443874825791660508839762456792800995442175589629517251789559374850827500677736745447441218305902677349049310645454073342498318651246470696829933826582398942010400963252621355673312511403416500210303213907712132221881094955350542866937402089313416703904825233134821780166344602799149467963986817340682020985956440147711000248298813941252672687744955802687117249509087270784906572990164129823178313976387057029332481589773612791719712700730643862618112463579471673985838358816676022740649057164158147754028366511254950195082000898412449962732355914444162155109672101268226457802039588182754082179614278177440146277408186099059417307143232623975867507729479326844710530879583787667668938047228829030304019970744731891274343200358920169104690901067558601951323517495732374872740678018147454011244627239998685112723371942052084853392217582947178015146252736763057550640042216526929335529016337363171436006719123473938209612430120937381099307946793489513254247339427167203959669988849528189390751626562649074923689697458965590783329850421517393064272316402625319736182043986487664361720951716055891796503971295458350581106165028033448772612569281328286885285049846139770054249918910962086792954671350085867690051753874353695578532262293122212231913406228940723060314214936510174783251332653018326407068400487759287133985215378812347327114647404539163727550334974302091528029662876030713904254696300561840932160944471982901292792306234532510324626648040204239455748518682919798214359623497657498753650034448159512150055701839851244201714256112086631837034398139842744591957002285233394619061730393738146228108069409123541547632596241600253337688194104684521770144773456348149965215208833787663218925159055535860383194379767078490377936567231185642020450958114068156782866575122442786984833455098013167736911400479091864613686384356099850920373214131348229853800783514809431465727661460170060272194572043678391082182113469191234188649058613777250550448850928230979102237353969730202975147780483261371713989172907420402627762448739774487178382773360250456134724858076498197387864659746623711890398553134477789356294100170608108874747251647517390798495810907360052035732961842106138154430081008958733078118863396554418304090806820461158700685334608974149027829441133658311522240022099654545075774019089775735601094010533686515529824868883119298301102974251884183733405609484678892935972340673816049457830772033387453312668679606844562194889119518368136226608718402851272601780811750358806749426314951648189678738723158892169075063104917595918780943324050210591863545919396546346470361470944745755898810190380178886668613314632941508450305642597893642974814838047658725444930110241431445159270264625044809672187976166246504552312263909319725977795989673886503242558617782342700967466300602140155976986459544158355310203735799989631414722682778381393406486535051960104527256199260922237824068282578020176969833459837084964823373729712432338583707759874292900936599339114222151803911281987423474569933008637635507328118290913815804489154250063940775450247175779465080539570401204347734769976555216979326507088262695991511731504444239242321208500861038316095865802102406578886361175719022405304790164449757050774538996598264925409464027969122983143309898694636377571422262541670430955973263851639962458115923231326612646444457408525161293385736370814785774565384634772221140968294492857247565939681341773414426621722428407568278378768817620156678225998760552123524699750238271117771435924196345003973023977094962909633650488209757911021543896628673495230580804207300352402066325863136857055331288823101526275089960454311095777430582746440873348061234384394691185780412185954540685539829578263310374175036872016596149735412079823475272048587031604635174075067060504795809064206757323581984949377553106238140693026382435252403627713651089934885504480746520032093978827898506834073097561829181403992990887559838589038046320572034360418164639883053297510266246687704488950625077175576058976984543881827877654994214245877074581958202483650146600221814247261769684231667130199340395994052927664773847507889108939523482931067042246376755534674016245041763852502209982847453563819403273301076099896034076871886256521309579434302254643576847412411096133668534037953170832142902763854597174346659979279922550598510952830390014642900716264978571884814431452135817773272611794261000051476795142063108396142499480059245306515205345759528305785695045704984861058121149472750238690887624559710198178394583069006569003727159519565934077250866480986189954937882899978020114580312400287712093057958989750850411515823975554791511358276652369094742156666035839515439773703773368815115519592358574964727634209340293241631670751743488900916026862484694863419350214871392691696276701448000737454214020905131471398427594256984240556078688910336494062158580727197154843917215563578307288776589609591906753389734123195780563081250552133279244877962718691156360251183458838982019035028021172382556601155215393429411556429512236173335348716846946786921587359099434001047382475899073665050543989886939273110847497107426150408076242644050433436065825305600855688332761298927660390045874382106094934587601141420362005249910691956293148429617102466293765658270055449585828705445385542926805251760030186095996449619073633242699365137296923317601137735544613288526983134114277304360037958439971431693243472475108395711337546360341811801651774515260289206269492824489750973994832961827909686079777784593655699020031438156399570477364735011245747871812508151417193537910177216356246375074488465009093405101841049734695633325087335699508168592981609190404518282870473381427298612998571585426780347622497942272063728211633375115617354393179979452813274984469759399854090019598538614834920600707578061216455955819866818487256681038665090694215091516847877328202862827051076715168743516168293111716012111628013738317268377969944546179955682800255108900835474265062118618596716482459976336827118607764011950517024771215582988694396026236153043257099549105023064039975609463320028059170348019495465090174580286793790226190027124358129140928192026541294259039510757772961333208052386328571354946626343075192926210347284840653764832466433186682701108114525156114562849611685719829103892199572518078009273392581437686318327630068916091926217129804575978508854214567988364565355024588368400574049107694735042286829329560757905533237706650118805674524585438763522401392061281234939029138069085386469764730949874317356195558822552562144274339569625082785176857213491874299688127987442248574944931006876547044793653408477188208942805112109483950778770870882586062810774063409642617389636817621188582331698636153246655327147487595284403082060586183850150583235868260039326567897338301904860539474636678474492408443850696888764683214096095879808464960836021305484177578643568566972487245413788802203797716529139654159461591545950677166102518811107418166828383501538705895045108002185459492214694008057593792615414068534213428025964119432811621365975509720730197505506133651670605726077773884438651483329082169320981723096455765660851331014828898994266322478639679794367163906802688328366058716040527125328780418102322303585466879656219285101245972019163525629553501751681817628584589197459520877069314974853522680271502445839146819320084081652649714095061830765552163277178116911245161113861959078298533017086515797518107515711075563097080746194090746885276323317048944068595994116954083762100144525891652096511572467295842328631281428492310317899906324010651106951545247418560284137192338646317950723383636853758828095199632014537573700545965089316913801935316633547854371368118842555201710831358989392407392964548883562957152048428057101559080907444321798174440745637383520520132402249442030457858313704164902565509672863327596506417981904487148454945876373721885601659376708650585745175131783874998472963103844854429067362513642364156559679735261320429460447445961389080085381217351448310735819108993832252585539008176037864278552254897087534171846119827274602921063821392860587886810493992190101218735710495430630559486841872496042103847770515059032747613664369086696281295051544628446938903234507320172573968741641163897373169141755826949102354497274839246373732784085800145858832808296421698632573346816211975623146124721716362609514915466796085746951067562678597717795518204529525137242764407321550339034128261500279479614627252763788028601293594798053713399873151296728429273528125905652962879900408453510407801147165235789613113154471233594194269341501333834883722774379928574579431360452242659718888115107533865700843031984526447521112025884944948487728553431484653306294379701416516831243726776224207757239943270046828740722710602287928431284300656020145300332283265542863649010183334750064601351740833437989893314945147059179758801273123061411109354507704544268027370301271368040880345180325663095690864388896052059437803199767320161323976657721888480537767936705713309735902735681249594128877781686368681068762075940631321315569624587203306720763186920282895654682144770181373127988451344473598021005818595214765798644494034320880321135554786594333874417796298950013449072221014972622484242146600329283825150870635560764494663055736047756134976185515436573852360093516536910064570656214931815264787052827676570908106685333709687900616286444296263389482849805272243129802524458433969044153746529554452061877435407190551419464171928673411830282101045467435070796279087278979677036185410646738743391198562761300451103033656928318516742285972990001007527022251980820992154365870810801778501473351707082518174758785192801339091267430781803974466560403597656997799792691214488500600948661689495809754828460109856203753095189002221367735830066651334226135128174793535966625827589886038949409040568505015389457441554688180188242381687990483160439948375595331555551741133798676053719632879625012365218544542381156495467201376498293204629083496567163891219072219436758425225804406259141434785411011327811057731993459291538396219778634764502402817796734864951749444993255302082600440457841453909896876791277134127487978056469145125086420124366193228523233123667398074718009395948123902095368873234344525885144558737902713149655885165579407894268625396101838450642702114976061801410889303177779132645326893171804730123323164646628019345515379472239071169202532810998212808765711189988766693860894173355192913017956685869177156497784665935695284197154738779318447610160874459850270438012814367855198225343702572359897019150638813314964729762276225077219597937012894893037622379237991659118433778888378781237235480070340418850481198382039575129487151349432841656206700286239406972808465593459582621737329121053921497757630113979464916549696186673793501157497588099851896738622970627516570044756291529381300559618983318446536437810843586499520194040048835695821127323144326562042325180237902188910226773046758643600147148065786420016667168223351601502494155020866312127300374539261268476021800625324459207290493840984116194409602704247193764847316161953653565429099990253969804698535308435216855754883847889761272862307034699224004754903402591681081592323534467341236855804685580156517613939368906687659056061268691571604700354140078914778286476608819469680010391977697988155911521795014870685900968430168176282757548254829107757315712935265258696007468112412779000342199746407974839830716919315189356019691433185225213527941760231478656966954406782174140610541049619342190113003816658912480007849012988468559441535956421616192073910865457494676048720197751161327025620889720884457851461250476907542149716564087093337954452929399349975342223623091207710558302692560952641258554219273619191353832325358822972269801834922824737904979254857140997249352274120120752288344291016242394204434253662542106145567759973378941162499134168847514456812524078207729544797473120078700696547415903657106411865240146035044134715753761703708861177585739697791890769005877635102254675578093677477494363830065019462024797703944394182728836061278195017800315874858962273254001273497951713746254590891368781634102380669295762160293956207747325033800813683491484943906845072097292765434733042228637914373916344458136418587935762006542003685347098481242164938056077274154406439726345528211579745083339880076095404401355881260235124919206512169844049955671423928945231710093001443464189109005975705021387643971292666159230012222517938648227536863447933828751843772237391520175022341138159492333914000427633606910189879800617574785649810097127537235685864449026780493877085876089691751243189186795155554099829130635439444463905684239380255676647879672527685448871371983721700341877556287042684644596106773392656930472531067194789347192031126407554896211800279923789502293807385816604028062799142768015901592710775992716305905064878151441277592129978190589370654344926968584363366008522658358196026770499738808848066881062523473379907625390755900115119732058863040317421150770477972874391287150495428113660445880732612508361570892911241842607447003412137949318740913697613067228128280244881660524488189204990305942941551180356077442618985471800114789160076095741574531369861799856771407595791444562594637281129592512398940365437259012677650430426672496359539903339716201965599122842976626520841559558682534170523159793666154787158554031421483929300214211088788973824329645888290661131224485231515743425847128614213865305921166730513958827388695997124172888972076185646436122882413751429573852411999983514861696618272162226020813823928856475571799223518275628054361388887928387143554178425017033166556449536274384395520593392816493175062707858695844430885565177775222775365663666974451229433863551460483688773542381478137310546756913136965256752790255777803123711461961179891373252839655598073397839405291576132486007757384837175074065322268335714313608511139338100747795223460342032421966343336350398526779948950874973406534180511088902705602358382172822423193460280370907606501163708615702991984445139845292987965048245731076125864525791573512626012932360420291580252802691356276685383443638439207016006872714964975799038168259067141221840839409526795270430546692555346445429030966619138921660459278084637030719382684482899903825530689310850618548867355528862707921382005839008967496562910964392959034862604954267169214710958535299265859389972925132085670388069787478265199371730726587179666232292317800283679132939917694000329094681406062274962561603860770219486266272111621272110272184586739713146232542090382483059039613658037341170876357467302000420444677420857327922512072811924594694463756597094467828000424454916300500428134385081896704058105834052954887368315062979271399038442800525027293608329508999617556222704555342553211232381185752396045294913047457874848216565527739083139384675220936043647704166317522021073574236679674351517030267197962079217234318534639673608873271968804641667179824842319816206806887618194921889341161563020410953931515558890836043026902407268270268038347540145160397423636620768236291973704735013315771328419238944227335004374171102978118122323874513284819296171848628343562995191004561736492221266590688818906380267073019491576148490140619273862199986413593591777319338035336241984662053700296688319534371798121611730376013835292711330889217492450864295996689487787206711862344411525520648543139138036626437594394212993902124970177134844616240419402206995992316651438328037377754176220366784431077855018621305369509675442065188765893884334694466560460195894429158311620567979886539203911234531755455663295450296428351579014550964301488430559962779807600710192121977525719750698703270054266860496314644048978042104727132215169750110103288290089348372304683767663338991640904272850096024345497281276938861961855387583626899989302699378671149777564663633665802167890222167821363553128941357527426653363867565009570355593765946648690938701443261296833908633100492721410930290036022006512590663420109246130221515782656060080672066345348124816840330500057271840197036738990383231980238743677634455876532273027288869878817098297886490900035684375762477169856977551914086587122497848143753595376046569001683165959895960851828287935432818343631151029776583369073763197354860751079248369055984600944466103195732271871878864875476725591980056614795228847882654068772920978815426839904812403764559844642247220004555691350295592872013600786783682210410345739184508230354892027710717356621409496619866519300642170075621535251536379539610030666402918242521129393057023013378611675793126189133829476818150570960153898729184494556507361220910971930906676656876764810325810517922581438452371989604567519344082199588725465330559212428416720285593447513623869419788335523243815300716733841533145053420663516657794289087620502160269633705898902130152036827981504467731107693205733164173220181702645072994219060946307998798589216880697646914210593705838598416273184570008868541255743358080101762101704301134351448837384282118416113146604527560287660743654194815505769834068416091382450839802010855704597230795474002623781586207720512177756518739700260151433720875353255163347048187248509348926639995692216104164323624301785524433579688568185244771842334690501969790987484163708586390913275117884754544815587112698049464612470107290592870456146062439226643742935691426550881867903499749729739562088642435561931844361125880327329914721321754687130319292983776500914574469838784042924885154846163704212148835783309244576388319713251154497298138763417893556913326105583790477722440775633376068376102919139528139772871482644992399637444789909394425637954710140276454349110698286446107450501049110637502378210519806521566861981882813929394648741611730239511202554713437367045520553179794317584167623890808827201222541799199029081505735643111385285939161132835359041899452824253350398442490630117482417537163772501017511018505858885825424677047908899015312936243715225369789724550005873634367956733091340382232888565030431491988400100143508010382534536246039422480792819297843960384007443444184491350888168108187932974377812487110885667203861515352514885475761843583401522302944486489039895379919603745616842783723943503722703448781328886990411531543687872977451354039891683457046880407664845825307611787669485328534560262616297272521255661450333480905282910418050907032238479881157211009885822868234915968495377325614680765249412053995121400802508723822455697088366630519613065639397550736872948125121007601407787353363362513926002558619611387155015646344655639495441513058419099802689509892115438425794561647074304416050974500972406266084491338480111656779134370574450648969132554407707631426446883002652534733716086597791406964647986242295150179171797655058344711154774760457888493588561449721021249524858228492964341800884000434115844954905533516567328097533109210847367169048156857816707366606328453014068984942776151592152997795777557743532957182296166687982481469359343828938565740306007026838073438518490507663824426473747613845905789635142034792712038825294462547297498649713126923682046749459491473410060095476629437699540135253808774279419084293123829991778818271872022767583178220753818699622108765228402231752016586797658858331230239775226372781982861314927080667676862967316352317079909526174637276191601692344831314481770690049170174766397711399594159359867117015966819066967390889946940732128848104690944441486116125244415878927809306112570882347005444167533283376946504106793498941640554123479910770281205271470642377012490546829095613905449911091053143539308310087114265402920180470104249662736643588146295483912367989852789422293462422494489998182548315130711188993234055975038806236052904028217041790780033601728593321111234321833774418278554591547012389850689668305282863744810575501800764550461720422215409760167117351135237280925144423654020994570687200301697002810863588649888466589217568884369477915413215049844045532322004510360770329261165727319996882449080797578036378671916382604818368442582452589269014818854619749836039092157652561080801127627242752411091568324619046408594008204403696106687975200808411904090324055039764203837302736604984957933212215346032028255643563190084895075301716798116895756054247315187832478739602610472610372966193658953368142952484969839886769401389704302699124554305169595005397435063516996341191860406552096362557590332432430918093162005800706730043269818509552830583706377026659007951127718188003116907799503881045170310881971907899083570580876449354060921133351424876065018616238855096066333229319413641405484925779978348423271401239486339892826608063284672520220191552318000185038498777408028153418113373081085725979177546862059582947790481092478482921167452404347739074009143770807399479293554367291820638040041623853144402343697724474285582525740251550203570366404955779006983681689898893611280153456545629330954561020960501219119952834070999388521710774291816370051519179141289151029214447972027370137907972685348250702832165657517119650938793716235025158126607351078840628810465070742614098808174143049323990783721854544856450576445782106493701428113468079470968492444132376315438360518341366692010857260958101665384377984311974050742486990430663661712976654158721122750072226102069413943522727649373461250412966569239394675003081732709204558517087328447378420864020489813508196044928615660105799137115770312277355271140798268220033470450651412487717195013230444154980008545170497750301678191666216217929442115908676831636478397019403228623669332987313171610569482136268782736520375521732756481525401606991979457638202772995125860391429708559086547294773908073583683415238505115810491245671290657246688826845033843497528294106714928832997601068527883753113323774307730012361702289159776392894182841123503794791477068208944967566842246423748456783256106802938939225421908086522458671678935325836293136173971257945660282721333807773513833592011180657213576370186231809824630546776497689775531698795806339190871934638463941249590075180282945694258736920972625501790984657407746066493846659801522066996639383752487008401415549962697666111400796735202169453980977486589025499033961353332700497802595601357825287258151169924204993339471439800036549338158326451035880349683518972320091444686073724079110182822085196042825985656163921359037014038644266046465500799600438438952797921372570181767180763616255511432369118038703054873170380516254919922259862886992319206417479229612594693302166285822495945093257272562138950651625132529931500839586032452047135898769509157977521974583789854100220818423206193944636191731268324975135196263290802002016515141427467061016615292119397491502162089995282844026204617463025063992737643565279423596571939234314851374912342707786578929519786940871627162666602377922511507749342429323329096430301012573970629488959990991620968685763947572336466548955540525871319314995996485107887064822137405348502839081171887544010841787420137767004377076030433785581333010272581797616672780092666613567529669195567574980045581155248947162894473669020982985464003335068390354823632989700525530930328844661098708523812488924608366022428558722378217691572290017367994392789273484384491036360392821175371531483549012242566725711411072169556755800785235393179911004892829193277746226170856656669076278968338775566332391786076111977794932117252515379706788018648406664742225627345092429006058469283975593313912101356822333884089402915366388356295583195210829351478850512946047243868210432507155265101628963763641691162682368091300531785962887462324008833671499521286383140144084267444001538584110197399481546158351456032517555269414970618934466260056784601281605530733031411067711451780094371640911125888978455966732256016918161926885274360471583216321134309376140151078032850673024008159453462106454804692537078030038811818129485573160581128985404789542851986238919147677147180675432391878165399676037804640105707632154099847574578614770868545134709015497753408598384614533898302495592522593045930138088000160766007211260037306715865032845882081820929815933539126457503272584928066069775501945739272540975073631256845707834526500426930351053500335009742941860354178189937213673016115987851253504926938305106531990571574416192438425844899066123120001847958612858907479866600481582108831321248201561186136699682080175130324618113518287493441092393597310907185371242241954697837221625182386237828601127577335433134475205946857069961287588189303637242156651963590448390336905250057238608920635686256920708188611716804830778371003591982403925524217940329880889080723447732519174433777576063504613927465482460652178109589801433668931496030684347901346893349432744026712504529026395292706077281544098443113390936523670462041429179177395135161404670657367636478787413231222879599330249184334165802522675512770916854204689560657083399774014897916385120575764901621584783638213256397986706159509907066647552998558523256544490253553255860322619005992205891801440523436872006878689339363278451105473664390449825343379633278934050161705567862755928197391094886660210472224291068365663743154196466000509045041063239262442978992252591090213596708555864548029967959255483084510553121241325963451469382211952271230758696236744411074483261132501889982177800410089088240944217868446957596716911738456395415564182667936395416464924354647306331112564683453762511103908406279258561751622683419129496499357152584407694132631208901107855940116514227744243767874222203255493338563836173154285973571270127851167963756926820001236901282334343275849976667789635936260923653962940462105940907348672756231526356775314464685015643480008315265601743857937484450561948377872657878753773608272784675924153065200919656862023743108499387212229221136034680672546546835498102764270117635179076425604927290474214873773730832756705804745622031705791404045612845568387327795551208332405479530027502040865850476658744183083776447069327437071215463549499636301264564708192969207257603764841496964753476609769050422035765735581031986478183714697483385822621836839418800921888911204076835036703813286821775317839941589512316236451813063513451928204873669622784238744025622638196353532804480663571092721279509732973896995231436737012722692040382849781744027781972511561628358064124355303087524908704371459470177836149391724060919204441933508897030012525073215841389948458599959825720313701108753565221922517742560921637117938037149310227127917902183388724157007049617741612332522023445812587837703079016703321430591529281852597479558703383722802573140820400500878764635988116377732710191334515656995392300679135799112805582720714967292943739687588997784716431493382104589729006765025319967275562366718491821370822975680879520700637043137381384639751037841103996935604702319819697712386539051148514258684718297914289890304639425943430910097136055729706605659510570762400369440014502397390261693260229912491992142908179969519927975784950408562350519212855976103693043574487852706454752668652762305033949276088630347705629405241668369422245592406737814490450738600948943054330848984661960759369744868225913384218044141888290359876329380332328735812580519831724094721180882877102991913647565039569641259580296642948872164921881235571714588811326917391827953697845522067934089729112485163937215854087213058856863146138694020710178715652784068704544507373843999355756550523604042416321594459192782096480384222591408362809069789179034946366338865253124194530587378675536061049974368119464419705873135923798776381623604358204516398690049814222353068439870677989171897194949028630434785027994237411441354403015975886653911894834039087819165410698777120337414190348251520087935705346280872512755555491025553632180366032356855977921230507869240708500435160828288490989711179760807461453953192049127207764930471751995678643091882745025052332137724081316793464355537166342208034935058782283546768007367945095950871899846245248201698540820450730743744633089732890904408997384794561508009673941167520459337673009039898049798102651140716589257588504342532208823549366378016461177855279579050940241566053830499430308632671533723864219910042358873830285010886884273678584421899743121174914381121518173712672703929411453679798832519449102003386926570404192286967855839124635570220183928231341463006778106683935785470394882438342906886213346951863209501324262329736137462984556605364880867441565607853216586993948941249313369134112240701559192492070375063416949600731340908639572047066893706875988798816476831860011689647697652049124290037109008289485207127783230624271925940078762086730086490941344442876964569135936151062765475730855197385629973585873494547307132260865627173015652461058438430050869620342215820108460581873817479836867494031706920440163650351889584989683984461733301743830306104896357788950622121761704908434239531004081326792033583350114952559417957644424774764269010025493725426251139733918875716649872483862312480024667817465410943123116551172448159232365335373164000222084580251628615870699485489786794353395548902440606634839556002991293795929156513586924807970438742833535318135056758222883328014570671236110402326635811295744187778647046669583181115277535965803237200274583665156528895919719744647041767857996453168956052233623313397743800109702675876205868856980248187109387109574807719050912206214446998923729774019105990600130547788467937235020283017899444921393665936638511043632246016580205442715595818237089634794602850583565759113422989222355230610244546482440216957948458209438800762885881706275422525550517209123417511657073228788273216529155038653867471122393568079930916734223094303547258288195661782021109118252159972308331635262232522020507101955048406597046115075208723944882150238101169592361551169348363291570726068547730498218853469688058172547989732534973727188669345072751271329247715509319519648459173661913828414953727551860456441745280678918249658620856375868925750660304228331781211040644414430381810686519011766282141239695042748062275270348750343608815239149497735835926438414845683670988109315906927792636989658774974592509207063115523360564932812121850905370143282062938204862115921762012032365313297676791833115732319097635193276607581969517197201298052043283223323981609573179260500162073053026109388963958377973350484266117144951493702041009247939017726343280688877363917506973610644845167480680379596418720210056304221707577546822163945809802269802156747467755795047743927272824514418054242419642196278734815818185258539569458698163180892783819191302562188467031378489957329831148308990940640596898099135360263272866592455032742620533382785078550758817597255778131773985596149593789299217560967215330258905920857638412531341866815090614590510481368095058589726093145869511535310944745310000355482286287680884179703046912363796187532918022407702515306086184009987480619834299373784543533906063445477698154905525512687110966978521779517923142406811499362097726544864278186041578672602328198228485960990532442561906403708168979576159920330274780611617632601417249587131654724076739857745077529851571985470868180733870227336104970305413349962489399952473410086311936484617581461172766945485791259828028729654829421528275081262610619515640162981229981702500507876879312615275511934118951994446136160654832843272265430900626150219604849752378244999431527793966779547784952474533570770046231262995109660397085943805459806063599729859225060903680264804030322902685757524882505226267578682468932729934124157471127372258964137806774773077809503734528789401432246443766106639754358250986699849257136841160684763760784200492339161871322885206747813756243086806089530996332005540716043500945186744076521284242567015171334679028637820213450514795165989849286488033897022473721195215299850362201193236182741234367666540964044350729086207065704927411074352495077605784934962940500665449653220641191232828130340380730424825050486546548079140288510810340105086254307404745169371426459000873620496486183016908304484598823342415631910012718626303636784603711454643728172445050920138391872764677846285642855689836300369383512395086587138354907572723890643731453647400086577058534758918195622140225618125208562445925393476660622460648663242167337514449357517037852088964079729478375863518301411185156368093531121050126215014562627714148700887555790190382181307092007761198060040716078127044977566475440144533645362883408528443890624736578861770187544821073651469722917057762892523659787993698320073974527605132156451619033872510977781538702711872223474853588160639779268746061793246609756649161749633922746139095205653114187386428190692526962358177016040540387890463545460064730816279389964166127763022441712711429153132883298835588894778409546091570349984389303835619934102465949442073758228268099354818586127076399306306144436884156533550079075097745523866778369357046746335349231833005138384370092366984294302865786365136998516939802417769469186098704010423841275214885428270152216042926112585785845301550550136114515308914778394033429928924284385781405132575082365297142706411582024773182216545363354067122538016484571749309603137231594863971485215690826760676429888909360901095164128032699322073126212360043017718750719479763867664157171456623953434940951549579264442466230336183240745931626716368759820293806966909049679999796691971735825491233162806459345955287242810388345134236272017322435014318491543930515549542723192131210884724366819440804150786015299157737158553417505560584295132905330686020288863893576336012194455175999660350492028668385892718633310667752616739273835050945523134359191404399613368848726787579612034850718788061624515213546155367968938455494336664932006537322321152039664062222234652861892567212155915083132024556639392386076051399973466145721363166821259086727131962557076285871690593087914271118584249036722494854650635797783089239688543231006845444748249438119667859973949886627645442056042532583393661207964316004276355111026664272501488547069057013359255921770135540714028547324858968203945644834043748382913793140946148306045956600155850242322976918686611764235489090807290240892360276423910568646790763296787171462876747713135536556814410077257600489682992284529767915493208358333091582691745807311265973399306573240951323195658663462315435718511606512423901342096213817718323961002507687168006052589229191655508878607317046249294952584690008677627046329992485270401393943710731610940304268085521006332841211088074376141016665304051661519705283755205511128281220133242474824201137025596348845969370908451174440247008544865162404842222928035331138377900963815374652858490441420117181924936421948850680443137582977755324676926420823320196051222262275403272198698622436243058580266915425561477413048046831676920490123289393856615560488175274497754112537569952532175209223328494318554077427167357119409886317534693595212784339641427190575829536260367639836803562914689820563257405564511249928638944677790703157947322474802789247807446027511931786098077418274887927919550526014201587087093324420987910732959640992016646676510713520888038526653394643900501020185259428795161776046309122195818831426612945324111678434030585129482719139443201623082556996922006496473701651948806570344310211410232048771741317285932988365336072045321827749540172317367427265469496218227062592069612743624483778112816072009530183049925022986389851888516344102777599828225143454635133995139344124260657575452419310683278436896076618838309384544653140795129780428424197269815638443816932661362734671019037567801548166060737658816014022437287667325598408446702564975362222331546553105356933659156775122615072973736311937194629590710105831752303323414783738319917472869585867533855338666134380434079460554727900663621684695569573007968176894653761328995442425618920293233887269816711012342078277924890712789068643363053412436294422186914505824253872241239575946312135793050348292778856069551562088383840442412669376225806901033688179375910994598513610022276645735722774865989110585923349412452058596313921583832465513640713125511209727072383260823498849607409247864802701752913691474638026673094759500912412349102874928718751941175619676532127868701881092203271334554428969404034180704769160243053024335631114588492516307664495464462785887187376569799418838948737605759410479561254575306408941770101090437881511985248916828235208174552609405793263234752410897108923993452348204933821341981236255977726668992444183906056261590376665565242725297835780219160739613750746557196600856316822676318528342277461982555210275846787307494945949310854110565140826698221340458087729635476393803474478548262556849865997629775058831342603308226255163550482242037789090208919535045256099050093570710827965215262987197737393086769647692368049737789692954815689950151765234385505513159777509691387679129304578009907306970482990835004625583865221091994501086749044125398849902280683414760635859041428114162767475440824908817626117913744292040997706054080043680318239848850260807083468012392145037927281308270328009785314619971884808643441573149753171300623866500070882368932358766947776515929303143942884441264871506857578972373835033108855202401566910402785961369433578519158057192859780196240683562238924201778547523692106807955561011273241814502656126207762203603546372621901769653623555118490578567703061713078198002441486505910125391073932780595840686916994289953782270593703390825887523355775137971359819204593677582961797812793429836973607548536435172583126955152281565228868051929627691965990425778855302644838811002396967684270415080616115782850507231711530892809071625500463372512989139694993074686896471703683857268527008005624108871282522935395554262164183575102336461683907087350562336470111698283138808472378860529505714492665976573103833878691573139376089472856561776917715584049164447106142515163866511018119311029077158090762715911619735300734104226757920630678789124417171971756467433095302112671132422662278175127064538970576999159541664860469950413650348213305750521107419598808504953246065538647249536657692302484702021397404204492107082741571160049976930232770828717949439312887743061796811546224362067535772897694660298938935969014773577109107257342004829822301914110674923414130008501632716110124676915249757644217171203460790698307028173212334257003815273299513371952220184895730448831764047488514834424276819749979023656274664481806188637782530105687692020661369222683530587324460525268811425569391127959879439949332403845259286531399712544638542525768882879601040687157765661477449431246862939028128547989018475150289858191602748623361400062787624446152521027349219472864186838413821899384204618971887118258427319413127241525919947451952561823816024986444306375647417405925237316321010813581225324296408429412648693137324989715046504086209665998915487967711414846589604561649599164769441607872229253634785058639089768838050419278056198655918122958901838879187532881039587258416798011910882362906747480595600997304997697747546335756229364207157623208889976763091882913573247424215639716433631656953464966026629355059817885640650567834213226605000149628850000875282959630073519715340823668928599873309468977251835416215693989389779493344403503530814024973283722772103770934424380046822906222160918691513854264754003290343681593728710286862169282061384722864099796273488287414346234095747027714115194457350419259372644353711890764304671378660615567952405489437329110222311325153099818349975108193343396439976388849434917340210090359894686236387814622905839660489494369364536405101255320805369036810118195980039310310970324048450840412569331089246980311241770933759977256514449478257462544135501188614432551312779468532240870334518264707825244423193436357481075873723330974217553719686789052282010075200143057723292472342801416510965978291728670003703142570497883629639233210401056524213772474506041588630113349102418653375865986592450912641367915750359698068585751941213901889445545278762234789277971972080524204617840923208927643264968521446700895974735058293468810084490215743266885762956215704162226592710970270269526732771302851123478535632633697528012406418559338020082661069819703140158353934993123984480845329014635889703073602110247911635984812877882366719369336682265248869546157895772179157910738803424952835578272036607354366434127365467915124886784400325725386753779022666842147734383539700990757902863513948500852207638705191400847625478489634261267772340611259176399482753957562841714332366126118435307396831516049451984103642113907638557450744721192810190088333454456860932633820335944614132960296970698860563782375491075683861525891306540356003938612558852215050947321267392498381827943098466131527423972976000590532923757021258672845342976097665028972197037153116107978725027586078631987573678927457480581047225998053638588814023637610408032461484009599772465377202490494976654278156442859436574432766997280510745886386616211269517920427625608750998771222475162757620124803203516390572632409141865318119609764929524450360951577235842491360791648045139167062246822212865039453547593598157906700391308127869825468369837255008089022321059322733120808692238229396098893821274744602557236384851936719552902189770536426622602184285125557984768559642460276089383128868835297801084299165974145785447810959428138464519900977101479000652976323750487111368941514195684900699318324424435258277936477771233254644155060483008311971787629979861417687435602890820063339524029878695645690959357900459483136095464632967244082006986479141691956014312927000452473844871239822850264402707843611079186682214904428477398036266450714434417751795421995667484960540657799673920517810423945067150315896138965788743190896666129937648468145196925506253881581699258195018501154314189994248932730921132168210574473074601932218203414353274944045493299650017192371284652712700751079766470055488119181007298548862368489737786066881387472456498529728760414946301528475917421574936357038897964173930603989842713158086652616318943913895428640692278806568317703110222539524581948689826916148723989863989024523307880261521529868292285987888983793468021949247648834044661797268990917089969452126401787100470123153240501311240293829450322003889173487084041180770813363980207028217890797977682874402893697157057168976907655242628025590467177957868997025271480783248028361535671527513203647229878943366961421219615266289019026525333864506864558913301897332569174938934284724386504834978297686258457441783960290803811901235156886329098265149149529944074690985591268295836433455359914145982309493741605854078810758992727366159206406049749993288903170716038076705223807879311608653225378491701142830691254237315028374804843682299413570761576416155319780021860135736091899308752228687606219226993087791019029327263534683862081949934921779310565413568114428418871999266068561317876101127707024110279496718947422288091816301276282407869005784018059945412899109909137723703739203502875403276744253630127595177428990209300166113571993065036835586219980027695880430517472563562582642186503548119330563718218335893026287963151254344765650486215106612423066321461736553572165402085204725794844978873678119941141798692074315585457268194255109267783077605315105794941270681542707748215299487394167880158268425293903767971032674570270361544615884216106007451224903714895814955803766502772766910590985827095556120764304481239583726273061015780312472985452675882939138738905117720724941092661555722674195975411971701746176554376105330172463584510221889527211021354367214599718244768008604906465870822523171058658965364503795337849714016040649696116774379321278555439226754181875873787179556088256306643046420293436314138234673673712084989665016104209269974430005117240779711704684641805112999631890055552478904338843458552284423103418215918598551017031971223183851374665337991643990340524068450081589637437820837265749963029476878439122431551439038089016949586767955919147702273549255783823286990704202664794808841821601730747573787931975848099439825841068759119587886225133452305717208691702783320128105415292617377869692748253571713689896986415068235818222523493327804557244482132844460256615350954983946235978721091570136012902810435571220786849228559103121418527238591529795053937043639877464186141927832846356039907851390257292320049455872974230487830962162895041317235367997585280195371089459041536798329369462012959659654879862824911135489327078927114538146710388807170536913119926948099236629274648584196849382513094681524968955855994193771760497980264911077544575497835160268913669517761939417963875572941768631997149829476609643041363881279851383786560925209401212444953356698467460780404556036832770713588753327737112023328761374788659317635488094466811797296185843629194851520366269223552174145742061534089904837627971287776538098762807603211556315771847559420417854772635159016143840326158250098691464556443843697337739884615441309502783697039606242573272337570663528655614257126682316017644004437325424315122147644326983283522707908823086311059653450537389917356938430954526359548531420090157687661861827250240386043954640263405694462098498787512438571213385362718186042675432577501403876339367951847100885769296960742262669358749036930692742100821906536138056529470288140149421174218747188019352398294661083391768050435592445237987655262619157726749639815849951579754115608289291450749082148536771929200926058315599285625865515213230724171884780436473987090272210698825575618254968236714473500804313001105231833836365239425022033636965738040778008236299666901775515904395487208206044671337683071367465207439855098678220729551860210252778404187317096911993084416606517706434727800710614321441045568160082022712125790120225553685565717646686990513840889576614010370511479745217405364592545398590535026842208944387924453849544547340510583303491170782445492865074981751253959289128921923979689972587556374520128729407641532178812980351991504297430739836898688489620191853972359800424370718996903800635184237617873487148579998407334514097695181728871253771077474919094095389164520369766601506414507855936946976374585708147608154364149823614238660482439417009612327989279663771111865711562523155396687626911832288541280061205770687256795168078034582657465752340257295203018695087345175451295774403831613281857185571948786047355052148097420583929980749905519661060367232458086766375647145696531870954254860461163725470412047903485646898519981830735554909333516372341653236276245323782769349066822125921036257096096701904468705133494990190300247873118938170333513901683633668228501043204611371126027364758252653196861802567591657148456033880702584936226270640504916496178757212312074747342182112905683723331914044525978338795454831385958377952964209227871222320363545026114924039822471414489451226017128727230990355131680599791963746025716045769455460544593196091992306617075178414722122005094653056927826641156619030085200635557530449203410862030766366420480856768676417764285472424034883840436811476931076726630405248840058026915319524733400040761186176873127994924233698891029793055217147867496251322955346436165762652867451552833009303945788861584565503684832776249582911623809291228199001882685528035029317926835200482875629344644866732953778510768310422705366580774540960134411682398988323877099300978926519343228551571912749161242800175743814140492343039845552579747659994717129145680459596516322025909342345609260426042824666359431029055252614696960988774211419899103812971213067103249194283514648385336860762258108898093351367962924658211023809775765427432975013035038861205101197672781006390386778776324383421035972339927621100409603593001715997652613829317386765057349769558508144655670888476053373437958537845932679321007178503374007775434346535255402562614743535503610119417089803872944574961538036266346059487355228065192550041263071411724285218353623398218253146941191497607468502995350540872766263060487514532802149474404896394506716042301292342861804752902216536557758822986027130098534918214851954575783063502514972720806041800638955848880134623384018046100180102912891414036712614581935577577022991876756833131592013073490427604017728107919946237978895668100207087735933606988502426940026480310443705015295408994068241302051029710219133013638508813525852739094070393156720982128200209921918107671960445299923288325291085817385909072318553600779425334970144030074015952449422738440171457507766909945194424864025154895225366333732973546625323636862139925540455956838798051223676271322442798471935956129180131465358995146048444787428242629986052215473853657363916082133197953562309012781762875292346894636124638456278952716687429956924149125834040346088486816794093312187424089962048932652899698059550367155194767000428459413413730244837045557749859397884024310974776766258493328613337330711988057591442702547491457323140213073790025671120939166138905522730626540664672665431975822743037984149401558594498856623728690263941438412758879932174284200456592667358123860763067983903898025385351495209704303744131963722049726805505934535038057000731720677990458063256353612993287260967670445645305375621918755941413240296784624270536948525975436760652459395552656446858097441238382234214685970247374091490273172917806124389879876095253849320228773410325963685511229878730080026419974858069110836067833111414272203246191851602204884309894136627739616501383099738604390697046700144577188145962721328882287812992485663885559170788980026461529377134764172262501229702560360089208153037346897541083857481531198187774870893580657050934763227307332156407718729175479404276386355126603759872519687581476279152419863733871866633205214032572053355311503523390387481207420328301395656043776010728898917775084572236026978627966955950979285255473932791104028082684720292256461840177973823622969500961009486909453556321513737700777638992837558314010858010932354122885497666563520703241543329563478897023280414553839205382875448792401729659147782301033295826941192275316815178730639254330762913880399748746167920698982933082797296298005402305952714464130003945089461882423031368718642492964620587003712258586935391088272538609589460680703604352583638702765501575920688470536933629783526886585509315548768604198028792236502058508200507768408544487644647023462847206955724446434019571523065416550756106092065790229486967122799678410719039490559351938572561307184900222349384630384935254407073843034447336096463230714700336061253572257678108306594659909414612001724154386925833684470762189786031642473375765344362986290504094367079106748424582979452830635025347791331723870995286108982103640696244886713103997742613757117508913410213947694872587349209064689321930458583501367002515470582761310614889700052676735783095264413492177334433015123924408100896262979471923491268180135854138637448610976002329639803685760552563182664708191983655028885547379006822618184240102963947001687703253248127560527033758522352999627554251407052470405765547935768732346520201737876693168942442529344214371353043863463477190126237150669994513190616280034064162002058819735825229825497941826470179015735450447780373472303769426420582185700983818329223285718403215410941064353042129910850076519760728667078312316105398184569899608354346611109332209089444664832601172173575879258997670973097905135488268413309064171845954283960660843854012718709231627935281009564390325846550944155334077223689151925259044078804837606493425673604642431544462967181141469367887625752281978475219273118720202724360534028961157307168948273564454729880182228620471291493746440711389010799266465832472127139749347328988560468156630238639682983057802407944019477524031033276583803740945338270902160892678090605919771390135721487468897394184306473587936904078684797241393668266869610414163150901485055247919059607107852885702425007850972131983365753831356851870635866104619220169538929496191840079574210196211071225860480656942916853290442828373355496564557725686094160785219929977739363909439054327856854641983352298306365877323361028902357676846799857812653069174882126306162230142027264522928060582228555162597888109142086903804427204247693651709159774495285019067200927210705490129804649249453805088490667360093884808715846237758887692743526677157502074328741572030120534382713364706756449222720510369466828376282312203492566557713521392094461110781696178460414999620488476234873937362885264230015650932338228896885976165754281890663213788046109062148292613155080111191026509415640530058421137443643953472817255441149599690912620008598660213936194046025665385038718188477120167362962584443656020321832319107559539588411990165023151799212517807676377812738953424176373531176810975688686165076514506627169124327735103133780373979214582193466297521759745668553929254076075150538147368354323663526542803880478778022029159397232880178465375604602193375463711182035666954900784211915259387866716335840837752448001880611041107937750963975304910121313254783894368241133096841946643950563263625397549217770135791256319797057525246292670504431381464881782943484928864406398355596405372912144340089574318256654993590007272020125840985815393576790435482932971394681152372920916024656961781251142091255574664478863422071193111311294571237734576770778456288695199198275025285122190386720242384358309068013684883217922616636759430078944081084155624110500205286004133839482376729812301725184115610646557403281267608579322292070090137859051140406115835477899679745956327050590478182216008186862539531822997223976778569073431885236514882905159009576921738079370367733174841310395949348096298861252487722419569097143637749544623622735880458865864496246131926070574790917220536100602374809194855631852150886977947565343763627110051935837352914159646203429411037627623066340529917810207995416853122492274216849075736105346230747425880873056023554434514789285319599640903911893869666776448358084339967464226929062201576884422010946440412735735255925320192618004459081920119048591427063359806938066086163500556461015187335964527556728678865181367884821686645140594559261097604553838192418868926756459272549292279143320274065294639011501973152764443834542733345812667610905238273434630942883636925500868107428929211204377205229457008312951265567390191957999006187548764841143009575931896256707159811510009767439343526753155394521760226537386633105561272577033520335516659239837642327093847976521551722259130616705646631492684784687870955029359914935561947137859642309278862942470980349237443267781540700391288102977383375128638892283647143659745075544963280843822240617900443810177008529391772330215731744339473220188610708762706472829530317008269795269482754734695530211041958858714964034182496161285467791405218503586623333241480745407222495666822989013663198362356029955747721342016919364581094020560635760861874038318091531291232579333610727526601864029790836583185180933356464119710796030030043111492586728570101545250866287678077658390880030077344835270751785612202427186370407144144182637796880698270523156195872860037048912746150406034585320580985086563763654837388454928653763077430626210079472330903484857251362270702900023914689056154292477780733604290001550435890659894509222360476015040591379252356708541125717903332503364440235403385315879446587121210090632306981557763911752306833586313656577848694948449337486089226514889965287713065297357720953205718427341589606873737489847897728673332089521130607757287353565483476007004734948145106898912516144417755175563189449764620895817604950427124921066224795848865070387130468854274012055901973382206333816165710553373794761631459750130918048759195775993056322338796290305255969751172079653241695281011557193829988472645328227348827458333956183159948298893800441776309531986783205790493370498906367732067934454035940171006284588957779935581085046930588879181548285212289674640029224789114433297120500968210127541624669095511675480011417197625478751986997658785353946237659378803968293563459632797668959174753089843008914840788323396970970537231431426656652247498860094820909498396921336600814100009437816048837293498132651968571456813635020848686114197774803937818550112804026131366575937225234336021817678149489941457643307745326253093000491646408126416655314084515849869873202959462567954652325419524404175696350270234909911592754638851088581487539764507098185530446854837031712893252299868129045440181523053970103502243931319581374248710825989468728158537793865117967472805762240707929331321687307348142796735069239716517907791660587138784278635843364867648745508267945802352091424222610642137886534406672139254157570353223422538934322604935742766541503502843877587693150546026999103332454640753125620000644095205993936204958519471159054586063842015960817986947508619481057663705273819176176418235409058332758486916414608300338960665956889667056210468980850299807732991683153872673662346561858365589891789335279279923829733726096526475819645070609691023152637400988773108605538373785428827078172577366048241577293193152592191739434304007923711376638774858742307754963449063447134801551733648598831692306827663835736546933905825909601113075870061870955900294297512914626841713211667788389813777880920160349920428584437415335830999816469406848205400531857851571414459194343707601115702513954140423777228907020616121702991154677507278508999996836396390029544892075800483092325873567514523595049597738439907219748914953062701757155605936486801813788740937953175288769575901989580934298674963901925293902623167941543902357367835325263728207859527253996948745928296003901643972816751664637248134133747552662980741000327161257043182494956210885464715700166557677712303787434596705274407109015312362123545659174715359186268858006480749628425147437167868313435177665454649612919425001928640309861768996602654237420320469332010497077740607745271467297978751200936484828752575968180360067361141712801350670416328726489630046745053603904847779333487294515072752925661722060886071038364438262124435067645547041580994967146456524213580068782972156897917958913425113989743520799771325717156770040849378696679468424712788168132906837945849326784934817304262405738160703298925653846267551622727042642357631158626192783659505495653027386595571757381977072781114523180180700789513425201927642124971871672577668437868589525783545906605235208717458144739300066263309039716579152190302190242117003024729483528077048553300224073474549077944094306138317057494876689399236352183641339948993825051168008219795945155573686833410871211731108340965419368839619885391454542473496638307869118208630939001357462061595241312630724520553874651592586946326901256628180988405342005246976843722381894821366776564832570499898836723677181270813585876767395596802008470034550446525276706647053424349745761978157745943968023373548453918381304971673556041419209487409243568709396810892740511409565492105880691660870505257946530512276824316113491392191181924115927068740447431114898072947330500357526074336239798115098216535723563183547745639904970442132609191821495577213693669508351856479439908144344548230481130228006732534644865623076454050021022411879548661087404238080513374233083405432429550404984456545291642266780050091556593340017262765323271190555446145833121928922803008280270805436365406949692619804537762120711015927903603517610026607786884291907246378507427181016841307054014465636349827216237829665097811935482455038905365790696869192255334883439085831677544892745989355828179094931239980820541611904234010719165570328709309638018750932776520348654350803476184724433543544358248516373354399044404638136107187497213218628646121327002769732740197899588281586602658046505196815065764954615848436475330437607462747936875992213256160410593857582776206639577745512800343586070687676526616046722716546188666204563866826907177232267713249919044236204395684331418462424018826636723250897527618168278725847525681206564129979118509602125735597563145342078995563828201607146401133278572467660633104494046099666464787069242365142877476910067407008989343708168534943552827093873247494966157152009399335386538277757225255438445000915497957481821422201893636701082607769229933525106617835545658886920069704523015464218961894160783734975844621832129108664012533442087380825935847645450395002055078599353868125499641241967755875325097149720581828827112979759498825964388747005902525608901373675110993386365409402223201282025810447369955685946918378182261781083684256497512484481711028286108097125545710314915969013871692841150571634614410458196011857972202640454496821295424941249192335822682021220571740924294502108608749788158878813478257640811216511662973817330759281351479578630725873452846245669077774726750823685787463123422570281640099022693107581322220955386556157897556233399713804226298335003863696506505081458523195131275040221290493959031354568711423373533109027754272293260193030849624164214820273880107634448388227272499980341698600711999559479398417433666498060767033571260836883200877637073314907332864166376546670121803243864752275225511073054119756817236956213679437014103210607112469356848562687912421131655193232114453686661371951587731583197865530218818234826670740192488221316483495194233648767627797127984184285800095755624505110892364512809019618255994536459181691498094524855021443532718632841129066786030513976074277083850136547475601920772031819589517684958713949876826715265875069607487687764896866175465198814878754977801610682370869783193818048145196963766569425710302874099501567523190673411991772444092443781219797387526280599594907909650012873158625439619592248150141099898988570182261721984193256993652627155198909741645708916256585926877281377474475681824088458818303976420956619020167601738211446009019854138489499720616252858629411821810886649543082624714448620376171373461411652489107175465802909102940683889192061856663300865167166522293440567107485382914690779596557904111140493760496590797665924558841217901962381518953470658189796468519095197521443079467107831760231796847966455574874272388002025727569277715333073892767578423090866124686854813656455107612586036252522207479385592653872603363079799332197874257843357221202809625817833738552981186480951609892592523593783886559667912327278880164863055423497388103598926879618296574268947282878109401986965217165533608219754199432672069987490946877677427408544785440041784300587813010557070129578549683541773299145528727750439253617620108942665725638480383453078557851440794350683559089387005721534114738389800202989630512304151674233835836055918540410650410442826831609589636902332245134784764994000227285379753954820505619648060960838877691515926644901024678918350632474962041432476025186861936571679949431156904149018100755750500551476483805082853148047078082194158621338693195990755020525691780030919699761393277960588378320350878940663009638903779662449073503428583248249033434020902893227931218813632435338362159888691059181406043731159947312871223150883479798992288943926449995143348932139622095868707121447703215815249155702277844567401015734188474392972828704669503814211266899541954052477327959291290730260913013147064537783526082152108336637395497452541380633801118726608351186385512291432408659346082439675550714169161844729810030080191128409460031819789480201485873256489999330364957930095530214803813416436299680106631471772035894769018414203001606222755529434067476548084840242632865464434002016241280836534902073070898912651265595849816718131341679242776343081516467890559572052061126246906334152836743148458027730458479258183890102035107446318379049165916741192508719804828318550343627479777248405366200535323773067682831707546082260226865781991986991607674734680348896095039369846865931602413092323355097248230881290414401945227555481591633388356859315915288690118191501974081012894758006705359469725489563640422960598509080574573174150548239951612842318646414205513956479939320233678504177736607084451863279855261323986976429947064405326909401167700815642067670944823953607034407537692161669976327292249623224924138486949218434695923300431312802532368800218559973297169043819530187129029758797015228441691884163667530202823393053015084976682059908369572108440533618633542207087027577950549169641725610054434855415512730222984886515027436775051508557474244097419448314565733588933036543933930760225416315347922082883654151432019976787585904984631732222614152131801022152902612906815839087744286340691074106570239270595150607205138847974416025088904740567748159335893715751373760792249057879323648537466634911712772585248180702235674132853893663681406215213690775218301345886271541795758800718096435539498328420077053816511930702318401920094568101803658213375436423319607409946526702290984809293428687738744354537588354688271901675302861327894387658984204611992466188342802549844699666374751285407682207513997808203301339817180413013872948099480824948020057445426621077762543299056384617147642130059793967589037997697052153385806498385879108447352798357156082280858882627695130661420190212076592430190008609663738762736463478597291970702111122442918789597924864571700149646187940696925055624397699640361905602206424496753097212482199039516796977086067504136652848565270370133228859999822064228110152142023859925422138600366835871902004706570273725461695969701279743407722115673104941050616834911106277950719285876138133481905877707733726926389232251666490207120412735627716996032918362024185507141737731111447441651698702680568183955115471991169885653807019114972836014178174222371016474396811041301938425463213142334091524822822524477193869814358343596063772997142720536577479617581006978059838584454378667744080169709456060828958028469114021444525354272596590020722803917510475066651991287659288224369566337665188008617049463815211872720535598063181882745181290869892371334195175493977883545053860881430557521111663800291818142457825664359097889519142804017133789557803957417091932109150515001064076760250714783183785720877651282736832741714295919348991998679420584776772835283698593023598395760594635540706693112336512055291782382795565756793057505011268004744891338688793505077262927846183678055769759418974693707401303064792776951008007449781018994451619621885767943246230457223609855681896241665452887271387590550940846306367879421537805880013758483344678471302778076033392431468128487650938222766015526269262075109836059267115759284190346822173760350716914707525989156658316718451512815966412021421065957455348934724299049465860118234944654853987907833114334185091599263700851564511424478392708968875307331965249017736101046802212608912368164015859457656908066497821451594611653635516315491864544046206208677681131467654161161459555086701405110565441442619945985777052953933980088816995108705430824033766433442894351572252522155090883592406074808652259867473307939322582016952427891770976568803256387157738879166973618879707183264181834734005241171886539595844196898975823983588240792499397022325928458878384737166000688915042924728453532111970149120493272968034806869542646115267027577601340826110040521051329789107789374621505457943889759318957252372137424084427130561920565682180803247831918686681497246287290478122544166651973830633118835659509431579368376257477802267726031460531970853819423252479198189569894708733399207765292045807774477443379106829152750042268955298181157859753415734055466910337250859001232204350032680367476921426081557136290061052817829862528325741431883647482545917572058278358294348970679167099916701413353889396314033902954317970133598455599280369788934812598862027192021160112848378286989067775743290782863122034315190102307111851865567118941212244380007590001987829405920051141461004957508857969346559983209234175048443086808703667138418328383567571692004581107087162289009077307199470432552150651046698241447944220475659550604243849036963368813410407731635647175424205288646991051865499527883431427518599136058685378816399280762772275355061466900817692020633132882010331254244865024825413295239037954476286248034852597135402302741387810670103558180863811701507154453300570229343048950586171830278879268713964958883450376863969827438758456424646706097246104348297098584136164955168674540181742268400503056642886064925085878697235318066450300117369273986846656767501085929885677358465047182317218440412685195938630899194985330763389358657674089803866579878444457830362131064444606774870878049524572010812941161252856673213146149998136155206812007613127805066627436464542325044754332055641222559032281715271919597619242872756735823696576092192534927676420140959206023681553052080226141800530338724377495664182560648072697506353555016834439595525327746480112013601840165202697068589541944719204504296963022215022571855831196137167736169260204101558556686044222894093366211303166683681723695627457458746516664903012152940922205891911351755784622361699097389188267600195765658928686269912007854377551100316451310617920611710359705394625222202292006685905158014568520989908725673939567644465184392912435818043110687090160403112370522850827170866849320842166027762068576694125651298689737519412745190142892929733402080439151482499995130654610107582299228244551281677061210774077802923938336455061533855159411080222798400875148189459061703059899784950255775178511302042659152216751630631545175435145977680296635079871674238501855407039281877454341035555465515526582185355308738043959596731380178382877146971917868444115745635107154366295809782584826593712548206621676709362236051094056840887398601274320411406839515111830412270902954639631834265058236866282031546536392370202803612198731339474314663068209715861031517482127995275697375612153897445789118998734979374195133994922550236859628150033566896362286964696226526706901880318165687365136120584694925685805250978375665906471609277800286574260800164010210335305362916335451148669962862754297228213211702938530604276063680655289310403181075639005065224513843817900930112041211840428067843000652533039415447314244990535034581370018744061104143533373058263195418483361672858603998256683945807950013492010566484843862062865194888299458400902220183371481809100028624220536885204754809754604970965942093153548060269774354730830031199323632148550666528883652542565079595994466697872708763126239109381872286432777879383853155181873413994268961667254976412475432175867359035188583007864682417052389372425318012082039412836964038304948915839288050109297100363608137716233791614236431541502502008264763750866736130700462904432025263694049545108729100006016630569529014847236669488317469781924955514834755123637778199214453796647437691207423873995245100282767580257079656285999329690915706178070080592626878289301694097818075190817927415558532759636685619915851198700232653671110385668920981886508869275731168955096982991442350665565070567736183921340791338461481522369703916583339939839266732989585193155177385869449032208462092831832507485158920469329836336881782768929741345781567790305913640082642685574688184190019016733724458932143912951426949939292167895426470849395049893433186486288354613455612963210064368163367911710864693837757848866644708190326103536559389526069223932759952557265130433548892047316041057030426508960402447823555938288227117012869641231746724810574032685307253555267872731528659858711134685494591672521949342860655070134964783581279958053357610149514669230448653175843600345173670740393990256920249937354636255869609004197422022669446949170598474971641523656118134752767872645419856089539679629214728814740357280616604604727003388814454254043042679780321995422941215353952562028147202981379561332864590600188663709749385837747439243322899609987835473963879839936738586026701661287269185706391913021189201961266883546544837875638420296357696125239294036488345435598483244144582763041338774798302042381417646539958054423172273729711980431145908989541810148534726407149718701442694802856278779666617193526144975575222304396528349834165717818813914415412124595591888050687364039863544145296726031459535128754978516929346298730950522877599327851849221032409878212929780670608223499616933178998526509482085854409583729308391762447420146746272127498990600550845016953214070914348032995502309414795544120897390470523132761684487573637151639811797186244212422611097019561365337108243615367301089007728633112606800597435712438251296019717243892267079197156111455229945885082684227163063335857203924903562043736235384759704680440465452713491165681437384312396363280460371149605307067951682934755207443769038251035460746017985617419966957887366116326702335648221985693150403024502658435970724098385398210641123324146827656919287104024847379570072786484016266067761581504067833631615088021656417400538763333128522230489080372037304035023752915413574974872140116008696617977028138010477571083875872422772565553017696144002519844508439274752172220847142314478831790603638915534933131385548715704876523865611897303990760052619679339893905367574242027512653036775541935281283933692175163440805457215493628259029509841275237638172790742881524505531149502036914517798601709733598664955143872846779275986064759239187779755916954044684895436018500169941377383616812813256886265457985546616472437313959253079192773262587262267433122654841510765476906238220118855402137595241942345605096417731287372547228731105855718915019691389404879466598615457927068820519897837296153854606760251126415362534153551516910299621919652931399606539165846182735861132981036142567363210625954051175521601052026838280433757094456673482549711830182771574024819922091119941159846064024174037385866428082006578699036892115552293308389878281938903566205918589326261342268041186729304266650930370564359297904496566041701337996001545312888517667786087406822020820560236994951440451858049063629299879857740175703200498867186410067537081975864737564873869292239121799710075423592011421809472292725029944415409612959858700355357836211735768737855904469884031740668036099215834687523771504059960421729731739441025683234053750942031949671644644986521485071294218094355037978655470828821470422881668738981090634810022844688011310635906197897491820131201058750104359891704200186274976600322935766798923587432371949550057520583341293371037252193603022600857047873780790137943380440521794532137467127760950216523984765157018745793050287121307697732498141015470341733619858384805990836561186454134261648348117015841880606615835023377552843182127673998511704422278851635787514756583123787232675894005564375519005058389162708463539878657853626022846120204476578236483627861073342103729988526116148020675469117238563433773015344271689654334454283837294468647857273885015665612112173331954564469488067858176653980997107798630964037649339525641040173676747692799441038484332361041731732958047700676285222217346473366684194869663360485026157459375939034046582096665777942764690808719034190122655889057966346007205155700119801452583492974197856539774441591957619353807278894295623722028902837840167559132930648603118278182568288687841788386241123903416272832748012392223684973569711624610254943228791805228503249014026147715342216578345392655886843513185262232505332084213630131176281450440500605038976324151984853309932772546076583355921379407406533237399515578337923208775682853687841286222333280588096170414858627379544654479818170093434033364146242438843118954682339846254517740238824660257116604690949050385240403173941113235509325509529613161501162878793622265094928710822945391482811193951575522570618970582980916527769402536679081307035527498017883925517021374705837058289800247171957664276132253260563435477095873326501802777176992159110269072286407910115146998123189203670515050635330511939113509187622732964851812548057204263647105998777710851132528935934947314552630052894072678350131971895317645045772233221028632885813895369505515930697651346699623397142855859728966503539710418227376408414056901182267760175007610989733813184678068046159421677570345725090650344236103169441856076250605229855825149750395952713171362603652871281138147288333000743462955391266229562797016367628789836579958437063415004932546085556829745063088178357759200475833045739462447364090380801217349410821004984557539417793930236443993426972584288104205017287762038215026055572725493129725753998348351820021243810092105123387915742257505149642947293909570051945712839488700038609521461095171471016269968382638889815146779929935679664803809848847369766587827290165096847082778799828018844425381296798108842738901412041842481074182014847680375087873317608829930572374092707871036807626765457385618707405200601551918439226461890869711992326774103913638673081530180868585802380463272119872245390519479110127908277309149354958861228376094121990201702245502151539013728184323095648366800335268796371238452427872626555873555018197599079555844502645979741012072517119937033124399036633888663101904267874088546370358739266910169067018451474975248730797854383709265700074808546704265346084222629979985045695147574138103012852471486687496458105979753827905857310836305106179726262843475926533777040874489547741488029846259263135230055804885618184422389546479221801912214253891518498567506836114849551940479568835757159415187380651313959594159433926513682566617790633475349885014692472263062264842182964908376535385884421687345470705094937582519074037836866702325849583438788835890818331655649461711039337854073268636669683679963850551939969948290243523630285053137712380399059805134305484897898758336070952876137322005510626407979929240416137037592077571631172244078672913416756858519565994576221790998176679663867186173770254739895594351720797074973977210830902265796544212055759448818642914124174421978104952756510879212094467402825187707098531139552951254970482848913831181980463348985880811299434601126782024317150872432021699857458239005293566226905563095529026051878401270186296693436427626022290861860951438648408397706792584160725964281891491968379824633037118786197928677440066606897427877238467401132767511185454813669633210621815407241229179582147807750401887965043253116956712548279154221720179952825836073421963316431872341096127052697381290345108373267233896512707411084879569220087325533243088872970922860797150856079728174245334538220152144100238260770412531948133333374306372443503815060864001585267344073179861826278183009201939399457143369365646916805696693593589998303270301928668801700590944935276029739133095100707859155372247150766592622511926112969537886316590210675377155244137640385686813404682410283551853916367586287263356861217120340414188683996119400589712754215930970373465234667647102532655775397423224456623342922897068730305869502274850348439723618079735773404972713378352758813794775802865535225495678006919267269087353860650450878561222211128001736026392120234191919336940416972332398469943881589620244907224440496348486172556146213937386805041367329084106512726628062494368144394108658217100322669858650379548683462333331586054668508932921359923008289829273465157957781269575165777197570792647969321295063728656991173570101053429783216093993309960706024390532537879643184141462235584274816072066378274636821972833298012609812790609994863838806999243361125648504648519825795732652358934348930811658712330699310805452367082441949946477695483162882045711468912722797329170537758260087491792267312919798428132258946813846431374685911563120914758264829241993091613682408339024992608450403211688068928289709680946239736811857646561297092720974084950981249873267818659600618733115628638068327676220176765557395836188144871307840135131429285802683977066574403590575311659563497245783538771918929834074866411130918391535369206528698310212773504547603030897990962218714003379410489171810186260927884182681926823106619404023597382074915593293617422088661710083267773562814231855053775986466224442959545983707846736234816090525494515201182657093178792145869778674667241925106672601397955591936899960151434705976779140258072127317170167822894825592223666509145901950262039236905990229800307121163446306858584177410076865071189762326026818549322841199516572739811335631493792938623488473829775066370627776658926642336085870526114901418100787332624314075496929274699481573304486837451104033113946217724300031156697638542632897166312986166539255715559530193891292651953893828923697974133607057996146328960695136532677377720437022962497422713373715295690044365534364056438933138903802313148423051040980241320469565171480112391359166444189625222330034399133553223367047078657424345958074813118279455013674093152811230483902252102361114347639762136715332207147764654861035366926806782357112267504227817201377803968802249816464667254687973749396956918221711304449119151447092089261883205165745108740539345919068186388461050305927537917648330687261087426852298784529788133118709555129991200334696775583389655758242241019081294423049602809707747227011806233888123778646162487305882815149862066379893597071238473106095341649694108333082926213606915005752255996738089491709911688741768637585235861509404064193262773839561238392757390909013744544536576035056393972970269771941887338167776432735103647753225582101455237244417889754404523439495697424148626001717138991018360372588144875059993845265597391669598767050298236742256761466806566846744585657988384890323040015981290492498262930867706767912450894950087894422979312573844406772343351237349785573603393454426268964013354586697843498985422121698522693506037322979233496926747508226878052097628809734345407695694066310187761167593537686872695014633052504404737938515425695912219587902286610395685712338837251713512776026489803102574055162589369487830307015716039831236571419131427314751207341993359609485177107392618461202274037575948041860821177033076462576966310778063140329761679391523769785712746270318959950056160640861028104951881607153234957691480088961745029900555182764544409814577911781115594554892671173724945435435084019238430659496851466170253834394563675698731895569231960559218385540631619246282780196088044312656397467438195538385559962895113149668517824834074405774487532720940755466973876685654494517940514592837457753954829001890517402029111091065130357626935409070399480883694161577866198754430506948432064606127449390699513177881555359106693990475654261212480029221938970510539836147287594418437609875483780716528576449942998654428994671698865825987592471543297215330587756789569428244205261022141751567187753603667680085544768170831400972110374639862700869677209832019839772800804659471805655580599254956840804747088028980022585655898452306244111045329824582098194627708708265973781428865164025185432364388512798754896093441931902923478419270568703252141209734529077771012563884305622326726197725539422700706782423227765986874677753957938524517083878631097374079356583042073191202750980815211597461538669924579591519974558883953526979773830675987039386530801304103371818175283421644765712800897858317653576464569980508249738899037698402309489095680333783794808402782698172443105876748120585688293246002359533443656212511563454398862192354686545951300738904400028890379520461114873438681330916934292015629650027660922729460054778905336276401762088387060096777039571741079602831957662985084370567645767171986043426114262478701420708022387803163021489270371889214753965403467818314683473983931443744463594913930553744682095353489225200598184862952187959008017698040586139468258983168377776501570477313739921137799627402203739702265231831238750204068564128530423099072698158328845019301262553470266678809143797288376365427732874739757246467785326410290945422135090833362607769243981908755734235946252101067223360105978727194038558882686164849632587688717200616767327735725810833782150268270039373415451990715217551988515741315041946399727086052495189825046171112291312888250806000551772745898007237663406423245744396642345828336956645011265547063744419447692050194231045389427700580217752260781885425227289670555989904451016947442394631836078781755558813070565497301447015743422644087758874459056554447974499809513314089083711058700095621572108745833572303982373222920157703212622464006303987955390486547069283591538679570056828128353028502593139276740577660713522734803160885968000902635819660526472886731010530832754206656712663107431554007335957570267463443674758998440073544491510301041839309763961705405042346485898353284864060337172494412150738839983867396159668446670846446447613775993522160266307303857104910436618560630368634995710917535565823265306748383020009808626366083927005605062583168289362213605454019778969741145850363760045359888485296598786355401402139241144390769603079415497656973137030557861337101168704942843476227068310529017330849111985729335694896137860156928249171743798956603888548513066670228665339609263437412078315509249316146287989812252024604901534529691317738950172101442034275423016689052595956889852935281262653356196001392939259305370029964143314726405124407875291481976681228582266091424918550824353412761509820491098308685006803174606997882329560604639829039051169243625261905222422391899441360408827671604833240540588932112284055769462049232248923667034793712075841068267771612512720172867573833206941879708731836841612732616512418939096659006721665971943573814723076803344384828440740930378476332572535023560502263817049155929158255372688371883664463697343873795963925932860323703990233020265533013061205669791059801888970929195237781903624844014757053581038157262787996272518008856612928343096039314074749476958401835932300536174446287018797886966079801524347587800650602419291940709115965260629374941580504444950230897889485809215991536473388467521056438701338021429986030791151419013002302970764401766550216195210334830185853621055199272187552564842069672846827256140878178843005754176646303454023274738971298116216821788687931322036249531730158785673333913886172057590766157539453844721112016713576537325517255638232046655861910916026273649854899259549210280727217520243435564672658583479550173968787653759352987164016773990062180501446100958053929834901162728349428604745605150950993468753934564146299031695518597938828313538286650371922163792588137251760673465523943524816444237792321673924839984356656899182303331750921431315174863344751621268037455915161124935392048710678826703807620319458975110091087847560770208114370957827125473114974588889234042797471683337471349589749877500517986307831366474282461068065609279189571280198512781128401247581650573330875791932230297387444075584701349429229117379782397077340762664139522925038266656250331776786734075218229068090611562701713528293283497468115676400271301671402025942871618396787918074563602997537579044599428144991373817259810388894888176157751558842838373513065227267946743589771528161766929205699055504748603115527642348532067301032081928815658971763146586657385357394089266223146538307636816118498054280975016930810502316752854969480894902620257622435385609472831526924918456873324167365216228449790073103202011812282571764154294371433631650706805202204607132957646655943935419618732921542049213052481603335350800217340849911269407767095087730201818854981520664703195820315570303658066386560760095762184327597168184569953178848097346527988746910199217662116107777163790706650428053869111046569167164638041741824415811887052670831813143135894695462662868583138913053699469723898883498421216937756704756870782791331674443235890484965461861325778835205280028344009503032674205877186473292761533819278759185102988928481247562449345456954822372527294546483848595429426443544803968096533617040773389095228898392222225872519942128170689649268884711231204259712449455706724909701611332801711387480000842912819984535352994522522113685631893853141030847676006914844105496687089977207443251339257172196357295819973003624113057212489536852003105175089767354111945500031419713236059107866873917312162294518401862571171330494481391141205051584114508215737802951564221396518159897203733833707285507666897556905229015992770426187938042149527084362645663560090632075542209664363999282107290596169440960002008748165866306071685923265903943702614963976063260517171538959078854751007265146742105934365265822190042458835622991292657486668752485328045480244136677325350063331698404373866559529274077671251399658258845128955074046486237858348492945470558861191710619133382785605443358293616524637394902136159595990930173848888309752236700032488687133674783941987022801686303341339789991937479355740804184504731732950132183520032973676105419468006631180482173238709779631104865520339318590697759332333816733326484582548575566666842631164409628678796904425171878396876505651526149692135643956250868157565354178347891525968461593238699588571223398745674090947555747499896806928761787375254074004730684366810035951162654348911513533044882793865546929203282233360462533563000833377270322706406328612126880781516528440725639110710549333730879181289347480080775253539035358258020776842876909991098769532791277511149097016817824310308047806034173877621404734410081626900046755798117621243517245953108874502517508596196159426139669323087503132806090606798661054630210349480749102148751429849220810685702554791207378779186091791037362335488291188044146754260807077082284049529050608022001535373955427524651414778169094183646899079617203606648718028619711358934920457614988130731611588483478386813759484506285910264326679064922983082160075866304124221522680123769106452654240038513156499325681316990865535894344556908352851362573785473062440634434844762730659029783783648603419118031610914941871861082079718117258372481564218243801483120259372714677897068202993681579156281168040805359273984485222217794198794691500841939117864603461455456515704754831895904946758271260377550817405177990323657673300196427641108657159031426955415552128291801771457249672947351953615171075802855033631372018347482235225763729285086888031080417152052195569088509611456537826883684092746232423397190443515596886803812521796135797243229272557283416134269893545731466532887099381505476308456072299261075642863329645598540648698697912237103157039654710517350808639185113374959552825677707929628567261488784123507232092328464938625083038647010338265590797319569274866555763048960597329222769888142873265188061503236815557783276699314501421960465169342366741244955651362292730572100538920517242591838329308168952255889075599103408738662186838296658513210466363567509500099626954475744157279182828806988546840497595527185089534579898480543118537256194155339683058356392988968823999883600271887549853423436135034833379545958018210371545945305429991204942138001055408074044747918743346967959455524732333183528239491205780687070724955574905453168258558344576564602592837390606357971486991859094757175237024863237593603662740315015222822985201679633625341888670986061851343253580804923300170687585606854677710000414012990723710326161151355576012396882591895450353925673659736444220366738579742054417965512480329954916556785766942894834543815657104071230856014090529145603987953142038588749341122386934335526686032253504845353458744935075591708387857618438036140269728584379653185124354183588128542537181547313301539700529383319608727471802882606827643878829995078377089538353490755032792329583339714336235724296330061643628251836726296084845202736924398749458850605223876688136680426097276701054286270648784577949741129710558416966890093117997303435595832586797658714222559924007197301182960820818440194072143464858892934944897502092070611251366155062608542663847632750830765847487909577304554172782067648017278425327829144483156919987688559670048951608300039637644122627259279305751129084171894406715963766600218256520252619050154688118291618745443910872163212385234529609661710448739861911819006588307212850283590779278239837470567312584601956702791316377650434383332294924421991116116846120083597859618031584385931138027571497906162718133414351337259766362635759691540326853768588586880556071940692417654550114266766516193285140229075684009420927773806962614195381497682449611352100823827220327049739313434192010714269220803073496616790461200833415846836292408688112609698950735831790200320937316529420034713935559527713879807236955741770480743615823021928626007259256767325304303124395205621310830329517466738819191281673811720536512710746208861330337213017347392889622435075699574018970934908024436733248165048563989340860264376677511395563160470015202521293098334572718675517166291512055210516955338423694952665759022672110351239919089987410582033204399795370596727685350947250049151604185094124372909723477446189180604116986020178821702181681808952812730565231454319585255063592873495715508223638615395335004924761813123574438940209383205738913111208838610286186056312718182094791979375143997589808418092779463054107145848004703789928899954175534268081553117729640343906051714683523387471028591244801443361476201723466378776119645014235385623330573206615245416526209489343589819885313346312260194843180758155996607676551192526166732547761173420748737229812678142765444597545481730407767358908415903051353493277102362370874927748716985885656805483998999729599980262820576164650280548857501068976343550881660113156930748202758573578979660622153812499252563955914407612565463010835308775340120921374815468739369217361388493764122172357867015607827197463360036462083413518855702941879589700763054428282150071616009304352775058691668253067663403598025832115206007055861576473614275604644749300310319418367866090649373827600014440877058838543910930290958921252183135468563190605580611956256442826375906036874135825452044838634009254166620716198410104730581041145716991912581033169176148166600988848921130868410061670451669404194123981642291180634773403999628588117115950414227829692967786073477792750013614859609617578693686392306931699751412765616623898845575429328915261091551640287196871149375267249028935726297066059354276031762702101569790296706140553461074418814230062249827202251585016014125614575493721100621721762712125107505948559821965606774153719565357386785142893171476665377838446241377439733540984635726081885485038600734494476339945305513665620808690835194504933385406534044442857382792107063382829092889361626297449486109727444218364217928791158825156895400280766130895490030504511770860192901051364706109743045455776774521358639618575286937172419693576867506711819721750696200418730020704523044772044281012263834654950672082790772362414096063499922279596279165787605799957748515158258098643486501120396449203286542782045700611050890059851693510570038453066516406916580114446321506350984500786986424872283609224892956246811057056955320420197919564405748096327292191355404372162922017355566174544661506034335426365359148538060792231665500826224969820799255071700310802994244900950505559711669266801313228859828015012141659290805707261006723025748262500234110866313062734777887009696272750170059621242924344235542047331225568055395710712074657709139995714980895193692730835410375977589787201032956124103192271064284019315768882186092400221731957123287316326499660156935208664238044046070882052244720857579407177141173813456521358875499178199488165144442206341837089002276080738478984208649638027947267760331700224280365528954834558144859134138989599389906862004223400123198138869337954730180337896876352088373706110518707409156063357198040599821295040492136241041776725257820719365926435915294386359681503398598734589774807273100167213785418529710893000196147379213038969267257780448887169483093162368953748921508129043933333321456178293967682406278487980325645106595505054700477572489861196398411981221707776155610338586369676433229131386531307316811896715663802594892455347179773294763917502526946685762272379319791676917068362213340074377884685311670053241602120260203062165445659285471641793481000372286367246182883435888401088692433926386485876761036152852690877212487733427363625010426478562626779460378685708310781609386814808222557908158430562725470143924054543757489235766127327506245117019360152273157883978021655928081611673057360095073813381783325931436740302073162926834801141632663256477458976426946367008828432500317256626446037527206596823745346496740791895053441249703549840366052812993083159399578916783505829738686407336039935742733772358331744779506369765917819782695465333561971762789940983041277703293651373145720427370995458111111171400394719500776880500464931143677029108136617211661932266176751116151406242701823421222732986121235787273519812393650441664711373367617841503220866287593938371766828289079604273117121721855234419134712860478431641890324109158822850671786940764102033141569706736427188506453251712999017356578383615920547496899380354697581011773817579875105034731423666047279062701241333194070897768926750939789399224567372381478595950525634264882680455294050201141107141052026014603315544083993288883941033772850087412373042741893019814217728682813269366378593266125561691448634772589625294846179790627309232181013499991348246088874436373454759783102393340568773029779310171690825835674105224419215657244446118169078127762320771365071723577603331836804811589301712243503878630009229862689624560405081980461864915435440306705343260782290665114375317378109766168429692866311549657777512237381036156982000629587832142547607806708843197870166916057010094044541041284507190418810852342448605241484278054700563975901915100204342285556783202197042940182617614641525827505772421095387990636263105849011981879483213318192431052263314311764868912543756457527959109069157520595290865568881311717913931133231730003539740502964054480796224278286061190126980699851785575274365482919694939675229296980475021479985831764454940792649449726601287451220269657050952997983879445197758014784884388877512744524678726786095708752593303184675990295806694808976027916151659976466400357502064987877627664819324685752443063293803112417808201954527453623352474655158476319761182026032522835036725898704333313370385083775475235252114137571835469587182881852425750710713196832132577582014809104840505830982986451814355009150229025488311408375439454301088102178148887066277883916741088506561546147637977888827475409548623024876335116927478648642902616869633109525295674331173882791412387066036778734947767040802239163941237658763469694203733795993446262064053531454952509185263131840646252967730440907925873679944891611744735868118383616193657937968490493136202168564838052779526507216777056004304052203536164333747191165797898139021158556597093016236690652768720773964028070089701425717123163823423478062579658918342118256987672161056247349851126191020961908334656404032790998819450826990842610852211620662127864385298972704619806148449481034488826439387356098049265077648355242312697055267914495461727491061195194248850215984091765293680972811367092178465549638004654043804560110856014224357944295693827204912015602351505722574446245055172032171784775633355768412165257363137617815387122186868755584412165678792804292902106742947326294295875889218948746090710506704761428079029729132343191947884876572509188408012089110664429562331558064824164415075557722300682379384419003107146829512481610614982861506700239629303199335778994798090748301962104141765258095869472402130019652541470833947021717189633736957591055528436441856799246067192718479373075844996189800533189943020069473657551116862564637633876261911039190927532639287288169163969371341461795765162699690670942148065634259949248097308437246770096258245488796636879106361417105225665616121360979948191826069988345007488171897902741858648957169408522051227984612707983941296871472747682761848705317420639771140869898143310288807967099632353279391282119159396102733716268753967564029124232152721173208740370723114108342279310457665512166883822147438636092861084323769314388889831872619699855226538905518801564459334475108701614939952098930835685382530689996634758432730904964932755710804918782874009005668861313791158291885223237982919888895128952155769229922924222206947988648724567626961506923011045658296572977521701953427403051886050957381164510247335371882326910526451489399218695365922083342013760643325760387280451112422401604376626870642955816422156528656910241679341121726366391945761278990162660805116961887417501373992292028293903814468229265380029102215529422698786720777482725565445154532530981680952308097814418910697670886436632629851208147782918973706135397169802816156821481352915570739403375034360993870610189266973964201658233617634159733037729931846087276387858473856489327394964331105926716375793917301685714294831744255450152965276073967785360957482899264320310775919872587639287086780504682623280664110988835433102955516247287148668433518406290874923700076461994857123421591707404539342272143775472152959907553276768651805598729584970847388382980630951676017329630882900885194893540924103534225633934010276086710416383349513845327631055850045844487344762376933473749677682903954347649081456337057270351770375781979404367548342161143974946993019746919844341348815221564149105173746907262835445061511968742527060550893181303893348524493097239224712577403245749304709789548686404918332133405818152743521656746710896180090169072157662849539543964636377416843476570188354883617967988221079016141890569078636470360374125055754334167805623052195114169861336854395603822432690158998505439973431272275398212711271978922993291054455008246369067568651183017613037139054018939047795675315853788949822909972300064838308020213544736582085675377609960421219327712377742179610717752753300319084835249784716962075927288623133497667917163492815968832492377538391406181335788579176931407282596096142105529890183457471550329794762594283104887785452160403763211192142021394412904613800833370268336867748501284206880149223288834894224849140500435866275357791048661215802073738407434014363492285005662610789468571904346669327354624858916697771310900890913900707797551315214047847497306828588192839065447587871888414830050412154379612866639703468503742947904048233360345475058007546235277112522905778888419616129070937551531220167089348425560021167901704508429152011181179332777744332188707057078771464689644454939532237454129766243517018630796901298503904324965893679294474213924080499311660754666088311887240645167866162740530069909410681509624681434175344859955634223541526253813323779711368630033890035795595705282846858920717548061240518642711328261379921812546941562363497792022881631346617998811386088478606454221355697003558756669692033021312880549159229739340238499826819620425372510825703489210950862459930047702408842986780526515986191529181319320387205023203518436608712013697638251995300818025375607453508589029241225469836644015693718362538801046576483857647148430144989319852674362941638866078616024192783953959136664014234784682198016227648315460406748367592169244268113403065567125886915289178968944026818755866666385168684164522085147479097385967825997660869721496416568410397434307307872550007065498456072713940901703420231088280333256189833848267144397931647809652595799177144396885350051791732380857623839732407450984803515505885961166871703013041675949453222818131439542869053914921787257439291400742235196650141568081909872430873007677600171820238776657893224648930765005196601543370168563394426614285407214430459083227459459129216523824550745691019691360249849500560862248578653630324001087873138488916260554760313962366528512609776210026044139158989886729000758500630175531841943561527731483341367807274884267616328764507674238386871523588391641325055322362040544112377703694710499247268214025630802468461839271275202435413382557341274902881160403782128440912063221500873026200074590579324614827202282184348476881442755349821022899610146689220852718085475735581796686957856685133553956396673127380401759314116209422759165173304827105928965645729623567836528345789435163364529676813039915011417764263578334682065507179295349099970762734647677392085655501880736880842144923434308378878342504252558417941236742904479864330736239465298553088629256035184255688493388332086658694420945754274427335137544214939438010746425174129367898024400161837897868545617853423102367457162799183895773847097515983608707154600212808754080908206921891224549616889562813409809763385363011102851837005135421404256476814441150672334474979631998589037980610209781731511266710568288140123962634076944269048302341439352155466316791146225780678806339991394777204622997032395295711714131580211921967046443994631160274041060475807427335390416173756235316486624663383576959039532821068884344492625069375584487261556812812912324689417543143141326402393244409251515386039392095861316661623474852836847461956739480342302855503073137399401473033167940381335782164499347981234321946250095121061546999668914322602848018304541807408644628123557833495685924403166898954711232031524664252129490215360951517274660296478016780935122692051479844085811883281495484692116506082778070900559604335490189166551017409620015943584707659756647008024093878222003725702406617685147417818145804744029179148395888510154386530705799045793941429841544386264077842146724939304494328835038782550626701121004346801152796330348803390666691400095689632444977748904897771082855535813952970972695761199422636635386006885976586061547334957183583622976950884554423092509595849543271046072404308272301273808536437428316333062232510585239826585826819175386103611360331984736071425886658953193214727070316795550970897642354705852318442971055104895409735292786939163663237189273244433559992761155903860610745599045548079018769358441137513960424296947992441296688337993573614490358780974535963311466258173740413602238046698777033099531825456059101560215768809460624896652548109013285879569023516149350211231517201730036481753497130444055518234695313070548012958309119239787858600017680065625559113799120926976775208856641185505423051189584010399942383269040902959110190365763102547965419554105768661505452750980320466893547419492662709011634183548097666533624645500324509878651585375641560053091236857450860713903604490633602052121340754381574418661446323320124742325561580674162523136579330943173636928431625217156685491642336113996636769818650530118073013021796279178475067918315604112952803159281425991077772515648458521481364838972409837030605862916530353630971334253878897937181173854995477570424575955085071891688532236332741835288567807037104236885810568130365376370873311798609089885176137370538649264273760450829170844692429096204409204665749340047956312498102370855373281404006808979294997510386738253545130458818663568411481551948982528486125746707312449081044439191159585530505094671888710391234035653152334820087071193449382985451364765817761693946902451506932885951132848493966521052961044350082888308655912609843697300093175894701516675657604333100024124659340236958361038776652119546195898456015187605353089256455154764952815277946288368832234352297129848655279198671417570431320523071617423011317649740260253219773336660790806640082276304488929668648250619440688412192929768384001214938589035422710993742852479737975301086608726125482748787871082451357404327792836167802606541376098823096676778563700712366034308493985443547511597062582183214974168270935201297025833740026811841006996351394321347609520104271392017515147095231633874372363195267310663944719869504068409712832759579505483057141317706195123111678931425655969745171678604884465684998852602733974839660681383036472946444250963720334465438843678336385279736258375530131104705089882369491571365667464322934477691792753430928876036514758409916513399393368742062111226799836671493211379348176623242058353626502663231142753731433837427046315155719875580005813776893996428407823920611931010053036731658541981668419526957760543563024456040553572242557063714828823240755883369775016982745719887837370807124030892526985219317075069458373544796925446179929140342510385866789180981043759914232788591392342851827666370529485184284170324567679854414941007545896608013648137019264619138313179689113890545585563831881516674133653321263585242038453517860227263893687325721889851587976701363803358442383246013845193534924147548563256164495202093220095828545787212088287493710896352971998144438308942639007038282636644350885156286647326626428355111214895546557569594976028100098146961080234956161428245367626055959781128165397338987181896733443967388940019819040199186009559685387724338428954697339452209736085277658312659742280221632804452767117891352564315945726490345210382906997304829607826711085029510261465285257490659290372776325980245436247646252753864418873600565398327311128064673764389186725977586448616964651967328580341291515311272679934688281005326156708081145329811160571980585866591131745903707653849290899727529346246889978546008060483302488747055971982988292723936733689919393347667461766393796805735456986805196968803885254316112035660279684393853223290442971339029104333717835296627062841206072641798292493525028604694096303933598418896300119529498810552549688374115452664844152473669203591718125999522643582801092427012483337935704740328897577076625673226664914575045447225867557603771680217262902328539869628254931690339389897678972640417658624321024846965301180804751891287439228332798514915436814564301090637061160557324269066241440411363774809283333502826837685609602414992246447210784677350878848353117000718443245101540491137968064010019737881524095470957525942794465656038016923836673156213512124351686624825492328053520445073857116766150815267592693750998148495365226190649482845174631457756049778331441251843265346189733279937646788048519661341543951958811111851217785443421782880271678019933242885430452529086933059953891448088557828769030259129236429524091860884790369869688776570001743023973944160522649318827163692478149979182044523076354377079548549215737224497976120080044990103830892470573449291630139224678044137978774875901708408856121531158672792819567821319182234297122280768972428763210516678180719716469503705097119843040018543337465069353353301857202718702214077280743509999191286758259440434678145082343695707359457955532477544246592095868956977907084388477501009663824838057845001891679200480159964912157035873583691512957426607986856127571011989423194273255498175903146866105988060962079716758847667975137975160838120813730408569779646498854617477322704862591718798992504176137187965192196245083457547620495788781884027961737032555945230949325705186628751869295790256216711379034138185467914885021878195806033387839598608008393114201425350190619690946417208588081176242473523594170259652743791676946716090262708092750775830068499268303255751219755396789874550869020980780839152417371179130407938092774945230346388422643870988606010977484716581220427806732727952126700499605617734877854319678795259743526913261315081366144071754585914493308791741849093745525668523065528497100978396536406933790225015744781677025347461949515988541657033187844967135547558572419788833449906282560417393960981603466315021808489168080491538701975701190048977735982338744931273157294446067486821165415348292591723823357135110922869936695005981851247029756607711759069146600391644786615855938257943195526256218153488857309003959338365388269647856093490894974070188600873571425709682502973136911268507956678268259376355321157997335107478752610700512782939560472461108199267643196337666459560461499090015530596322551902616260783946101270036814026793956553220130676888605260275330793532399890595106689516210635455571943710297900078306839289753898763748410509526067128806930589809100887180611154485336028210735401331832561086548393106363562870624696059989573448766470222502622376981816872028097039296948381845202985323905571653897933114122903907512653761181387969223473096122480675124564894628823550749941332361365455135936454672300635288767824230407707585022199123552416593197575107571138525263005568013679784101464156419573818570899171238934790353440298989533392206870668731823821071537222805540971587101049029395971654554492479605483575838341467050168260514041672189974579071045115082309734012442027827377849144983294093314266852860870574974668848881465836497838573343896685896696136482043837230839848976456396969011095984890668787504558271416817689018577660693875470098485724532788698853201727797553417774509060980115559067577940757205448013860154348681851038170754065041495569692831484972402246037603721309567431831740620622692833091120439337125713102371986273183844471056585040783673312756505884223061286452961667778873565615364680203111236747455734645612817865033628620865998333001864237801859070738491164347560758655299498054844700846459121712490431821513799648661089994449112567608883897632784297964169309216313381383853360598639144994233919317719677415568745967040680077467214184931198793440666617413759618776412277296522240279055841371213059384135803376570949707160269187583716220854759565885946313128674449427025869311064449545500565518216140966794921243624316009516102061352222349382390589865499072966284222984539249037177680496687610539992802999795161382955739134658324649641475224557417864068474981917031174299971349400947344553803044204489188256536263516816213534728292809694126934596756186300258744582552730872874928163889167425475934907757044798971977992430481283336525748905008828154824583194015439683611267123243943299189985704965159205838027642673294452918587243348621366558845533605859006256697172309621172448015776259257955418786267177336714693647110493372914498806757356763871674443586316343334406022262046276781282808231859165624727119991563443708950285741656108866425702500427064229407478018074160634237466511189842568390676507216057249820615635697870190849585597557066443980071422419074991803475746255801494247651838872566431666980655215342952432562458012053861810393012977249531117257805984886937233546364844572326249712154714383525791940842554626194757068398231208143465181682633559270577759858658890551661048340103963752911378881533169888645762580714297397945397590223956586270694004866147805350965304741362558528893810871978738114620541230983731717066716152317589084214025692741525172163497874075672584827567898385233467124972784788851073176758658957582051360336649259760740686170514602609784149625153139913193446279815167369503132136348382588146303255349534809202088079815958245717148203593037307239557242075150197873430925501619476217609097572566877132316385289158975449750636692320786698501940300433579066282354211659813952077034448935902556033636003422908439262696530071238731451163526068154981510933689459053006819032304436346983151175679615843895075701886883908444277009634827193043789233084072663253748111507671012717376439795005377252133656374548272563114088659336444316232709356282951093577721399905422878917573223433571131178313464289062947853038107165189664407750454920177077438874766324772279143373956907833458577499318435717361999744623925022060559530992627407508273923860242788990269164851466249960017553852758403774514942155550809529300910875273679028391981261637051511030255167839535987350856964971911582764883202008104311830447977021902632288105800650033730994158843439844901893821008222764373467987454012178045483770476466393564974023291497295348079395754992888080720523656750594813037283313473824203184652479818266801971820847978816728979676406530965675124583966534746868959684383696637356997773052455922815115715258426760212343447230551256019303235259918038594296115795240901078012311792762058812313323374017987750932868076764413635232452208085037818216508024490485478591260111455451048868088508029788800759173569093615507571047310698949411449391403761660901839737016454623344338668321951901483142179477516822185769610860079406500940560462915812174249255833073443290829288160812560011179314836441470435521263582262665098077905729045675222497828356345919643338812181115958782247816325118532039559937721690700541336427066306429277293533878899316713173466622721650478373865897473125725707695140898520083363821408643370556562603519745631133162997299438318348460415468508173872241796462174363950482010818523031023410289664391812622352945355719715172823336107111085060516889013785356794109678001165158428791816520738613381492167825178197659337996519852323349428268542794286827519379862299954351497633310355177580263878855933623066838188600131344495424226682366876894421336680319154400994405741426647424499343329285123728088602260960082544628979691403345174206114933493936368583612531565106551346410545371535995624671267519002690185726877047017148278022135359929532154066795913999985547383949901419455958281030032590115458670608798664640613680922662818497930503183316091634224052578867603715100322435686454365607777863456868289572467534848209115414366947676251221086539719776155047972866498070075540431582520800257269460000703985279146395695847777304131985706589193888779104687627077561665268643487338851807679678780424751375734595195072445609777554407487712889163406078278423924618786186749252954027318346221613739386562775730198219047842131924186302505581540318359177837148313448234160881418460230859174527649638122619122401003778658907389097137059215616042205471720015709834851887536658471333984285019946293049714391140532586739436980848150600398714829705663882914765814305824812926536136378687419589839019504788044199719599565064856598838416655418263256051309522562447212268318143660152939831730781192452375136505541353920597303237180294941354671722713335020870200062635807196352334699343707453524599712005170259257708904552784308421896942839310685063800135088351755291632930502788210480659730485755920696961810248933842932198935010803680234406656832641610878600058720135067029501149363698814297928413963475814727492344830130994934857467422164847123737111938960125809453246567421480539387281666048761487039598433049770830661549438533271484342072781577194141040555187710005105001890021312523689428364917391796866748776813932393385904892983148935967504825902042827572855712827297856106354828298279210984097446734383250653503584933623013270355795620183593933247277847647832412098243929466013774180725755565504449841565703729687192446885139081340706654355732776011696584442771427275348974914282240827699035784587730121451228087037009051870130400052877578554236643453290708883530490632252785925553445975018379287617713889279160108794859394289933997468769815989207954278176750360025661664201677451140219042783316922221053399625438207327924044849524099091041498345918043944424562891790564085755892755382280663507217472094001327103153192430288139625713729004442896858729808015551083626572164407237444585538944042236186067186912751858186829083109604279430088871965293391824840809704071859188645113201259221968113223672527892007462533707562001902656438973542772397574541056072862180116213815000673197755858723181976044399058770552723664149488079627816907560825508864630792856504109425728109663793798553817214872848316148284603727534640865952831989785647253335117916863834386938301096780871672711237255082191707514798485792063537073860886873692722576089111150010973551224053223082140471845048920477497021985581594883007084082395462029697720066401125242068372295098621684528197438083617214839590316066879683713419760578527580604446066735655869750823688310186053155932417083762709166719672930522427146265995584956818691936259226727706647719463472762347065357216940039091716239248133076242279122641738252955709282455675919672701074457375671191956392884466311153918647668274781292909996451069022999947995185456183319382945380164507168174856401798162080465485733181410449013241695695184101477522464093054757293137333893393129528364691210138188372463520995192761767735410872724764339341661411186835824260814039335570519245105033928000292730695156192191795345303250671272254089249457424793644836052880053046507970129385745676067943419829208554625819197897280648074070861621160358838109855431084020584532429962569445653928742153059222922724030453926861444858126651191091881347617806489302401761272717040071963177372875522130875814346611501533211798116384230475204365422816002262564633257510976623397622963842308773556722269269235978043974857849327335130920560598521314054550821267863235342784901553513154293453934311200602699287068729672905125128226837216443149960580409068060189362472230964999093496481830236236351227623222510973232449488594012314321512569374651565159308598933036763378675396270570572708269111581703931346477252140004691009552693538396792038004841945874500121934287482403870584260961411378434120547986350986973131608850910955661252570473662809057103293913936511278162347068871921609426974798251821539032690538930547391935608622348499892378084266663288270307845909807812837711339674928905222169001012027338511657852907014893483991985505537699349001724097276747967113723898813043197290928446142820061693793696143108808230735511482414230342200466520855384146272512746857834637138698399011432607606811031314153294238610006519541915503784943094729176829510512454013460168871803858687180977767681161385868431125434042686926020312511118455655938351457651065294719299866287187113791794711096030923277963809707561718521819825930766526083398385363370636439612162544155195891628005924845638883199914963977959840083158556028983584554430518327864109212035959496202214439386913028456007478106519556043236115591588501238807317372672771894124901274456211989736003606506453249897082809259961043841069681145444665132884874384914214698316530931985049429370622890553754148912203586622872103804879794759718068447165600333831397629624449448021847213124548266983548076496095043491786831132831081482636951027459416278533525609633924026594942195598696967098914124205608831766173756487098528542231818037837998446728528428905658888117023474859830118151789330811259322123200514703844838672034137646147359409510685693379913404110519621329120428567530856277683969542242805925360222352643830786363621503263437108689318643194682702948591722275280501832054402974569224225707640179695209787811471143441031702473472107508251641362723032562197596317626964476884419437700888465693518998919323259652087543081652580494217083715420529103109408881239978341194778463741331073959629551824100268326742273474522330321015960062882483233171742998894133743984641032973935865225027177861035084992723193419231624810332795283699262351263768804253239816602511488077577908807314361837085335222410039646674021922848554129123388254876278279021959815320473924770721051732885359606449907536293202510472863949826231965016472666739780245591959642252853693060915609979733375707697738946418802554245421624063930533728643158121299874006933699634503948731821511015186979128463301607247922112606994650522445626636508884189375898240876257726961248466269475511306767343060311456472389743626747514090291265219512492462605439941565329063722656886880725375833305822279968688337656850829209196095940322265006673791731595762882234647546233659627362592157225294651742486083241953236166710513030590890709194610878692829022038468223029897957192939108398221369764602026542556126078226315278586782632827134588917490885518951415181193725846993882893106635324350261560808351737937578289607682180141220636227629911174317714034684376121375919863652922655127022588716817664536812545022868250925889882861821991946040561209053020261686027908396379601711333448829916285977237685899204469168920294924023811402655197523413975702412810840556312293678334785135082383455214190375864283989719462467615110244176203974665212087019913261497010572004113815400176567507769829316631323246128550574111880351412030306894303302776071170198525447590495538354752676591480123970752121580351473070362154063898116260856483000875539419218347892184470963027639763233754270289748149002396305061772132991412536766462999818647624754890730497124428064622785608715361345489046042251763779466844733543427974290817196004935050997273646913589914141016758074806991695202542119326751145790339865264434753061526696231094312312563742042367297639371661772872446440290058123110152926531848336286458388686013636912308531894817177355103560144405772828121365821856267957741995893978520297226393962874189091080934524301679710791147435166277158404338696731738739413400706485699529832272285421088632848069134983831081582327329652777564094732242938858491702403291788988572951363516007565775301668220024341441333155175476815290631107896264328544351400724957099606311615478649928439303808022257289201088416247513114968912645106841434853706144314269341203119779553569580410008706585876044241820527009890346362642127828093390645689482274503016153897755632089457114950489344577825578808387484844271367524791400558848035087209072636903753103406455197983582871233629328296170110730442152651761774561193395329712292699634312825606117538486158312153427701697480132797906936635545151791852391091203388263415208105253651989326877822818565567691052733835694910355269877190299553898437206653518847926535891429722838793375983591323570773553625762871960582224059638548238683077719740822143574984878948690763232580379530462271957482593255472977813942063917018392914007286207070443209104856787549542100018237248805499425047487931596237801520544166197069163041461577182234817633331659467980237052411732670869033536821672876897250135698710540976088687944707540905208528190260249437405619593085393543910960254774252667941718257308524139145237815436538005291027649945246152782033473711654814759804151834978219527141659077373284592435164437441668558386419543242475901856692473670981703022637066623274265686412837645265886353514325513687672385323801793289618792098697102959754165030997286797457736019540206540582783575968343728767240148255789856423570609000765958189633989662093142636825020929842272172542267041995237090722070433039797096549166918087640091985033740080499456417585068410104276335542878710628350502272462034934009645220770852508124521628734091371429386302818554927648721703530413928524139866461341555700575385894202850084397304503528361868203139204863128318697357704123811157458186251522500519765455007230990412891618619056798151282427330519502268555947127397028611333148935669785649972352194274360353858181854874570857393622592719568627038904280211714123224785593452672472732779472727476298732784743414132133790752897639038585401090439875075697818986633952712657464585322021050075510640000995403880488721263018029553247462037734098865515346272971624031853592796576333383438696932955778055204142516665849180336670812291638876367717112983928148361534833551231972949808089890103482403859042240599374119487079463719290645005236191729889184500364471539376818395109018109386053521281684420190062396022514450452859431499207766693863666296779978706766810021671552829754278773631584696090909111035811211036314308290945585684834733976454595094026566573189709580318264211583704587143151630997184871186565227006601776818792483141695226961252939735226563908436004292583581538966792717158140171512182247138073257317421811524714804308048190784719424712470182868972687846595238001825740399696558415388613187794597329925526588893847663768808099468321946548613946652959970685074510993343716102630052127912762985372642010419553202150773111814939943336697094347731293903152010096843046040666326430088992319791572960878797346817391037737958818973557404310262726721390851308363664677111512649236327058292872989825136307834503898046436410112334314262605879829517107802741768937689970985945145031392024475013067252542384992312998036132548340236452948951184787300212495248933410140282767249148856130607804819710562890911364766586344157914521873560227790057120303931692772757990131458076689730521290138131101482267010937534620504860786568460574370781366063330847567880194295339774700548747938217129876929636604639399617302539534653641937093103944375059700587649757283170607283391346653967618191950796423748785575036221545705042191352997535991145643053195547847453575951333640285125228532122536755730233907041356855212416196896706893108136777655250005634745661517399365495774822805001577752662656894151836663329351332067030721649774519596549519811926062977827189670090811377456217052280265069736900373212392217650887439980133012603547958539699495437357813961182061507628566248218337936064946295603046759730053005286561363951811502468119717652363506558750712314372357630280537677822389657202623910414797396890071916809968973176438158394035835904609868734474779639136141054640619223909073376784338367476103616266048658781389960208633154006254788122576658030773065334680522919801067994664098381599865619118553990743056058767417197032504757650650389144647782744715748245127311204075394041101965161882272735076430188368383385196488855423283959530221644628810749494075913061787644519808987363098168248860008626983537801162630791626666752884690949863676854643988639186749456988159255703316147773091187678250950996015449564378641656891276309593962406719122574215216595428646474186565601516003627655717628098228877907340452268860056076713731135728891548873082586798494933572135977265544065447799709591775438921845143138255236405057413163262315956577023948405716949863985783237292850502956982470664156341229290036473787698203221706694704846385434978217774241525882246791495849236738404906581740917844267371785539593757830785149564145412838383252198197029138552541304092608520089384159392390310482865182445304195248135167988796395498871661165875020134547442688601498843212660841493468003849734935348909258910347640064460413025514090672985490506516119231702598087743350320193585526527859229765323105354571313915645455693933199386720615133739345030372369116940326867217069049384851994064539238131796968762846924813953087415948494169486282432611587703145454278100480084213684474532244700741434576057529664878677731082393949407401785012182183633241989627958380447899736965588689024963548043214610350725181514923873941978371546079522192142751380565571847243401030679006794027638470061648707107210894259949128393708223332234496986093716297626068424440494205680041240277054669588398942703132388745966579361120397674873264091218959479592263599376535850660983022422279057676203436747373490999552913969429837273987062906913183271834125058906742546845875938162947620215841202034541745577690549178439386269124895099785685720426566405684112066700763022761939842688555800278910359213232858310001622754458861822853629422790899935356546053194856417808315594290971256926595412105650218865555517029958264071085651278631299078985022583552932891688445070712054676051244812853349009397351220831073704048364454038544912542136926754265904513719112922769312620821457055895852720341595994023325040313253746194571034577922508425720573940758970283561175823949200497527454782215492162249289583067868086564265332608433169595222517063773556863214403369369502032668023423572759074357356052968770747179155349439566147135966427412810549436548240125517105493834678405159097367045065469327191113427795412004214039377231035535623323539390135008436131028481649636964084522849411385359381712250615509849417345704177405765673290378597842814552599704036503385410045735558372045944486139260566755803827368140817618158246862054289247375547712680259472112298638881659124139490156726665785538490133360052858107097838203162828399324551580423547634028184505384244966332549416707383006774857683793677042741761241102323692058992589261249289756719739671276725095688512729508305432555467267014585396141797623374803859643923480530776796568058995312056209829590043849929086341681362826421561136295684175403910188502438318933950993803426680268293937187097042891383767663081918621516888135635773723723056207719921955955513186958982739826119869596907222006215885971905672188016569809017952714406392426111248223774855348661090387957963708295331618471058047938487162735590423659043627736120317133328022629954688463322974550124188544537312195186527594389637205497379653771646807455751209186867334709645890386679206006935063814135460949649173565645206268935442220241695140812592562335905881562422494046890894616307827394202863840506497854281242312202152462626122208947718621447961556547920285132249429454601044535684235438733888260803096009943478912029099731908316054673225268117394142179389154034159263439729619661702275519747312252275500749184992114030195959134527864272282780305989024445582689031640219761276571133071262306918369987415414429453354674182205688065034479890442381896366110886832990600992257479950206757815789015909148600709368629491261033522437745552631451749023007560647730885960327930811065770902191189994401809973956129696364494409646521897079792980881960003479031140108043748522757905942548987137028775232362014896103098037704952740347304727676177148930811192967384559106783849749251816605786888445757098602358676512099864947137419451392097363607006885403138698084552921261613134445076265618143024701756445245473271365004737271371927445862985468695299105117544944582730373440276456583942008140919969733186578309652837703435777428164841413993126224870184449509520730066173110665223831595565160867742392571187576332840506940623581767308498892425216044605220021940454335001466484369721725741648608815298191368054904657074394873090086824759179486857585003370004373267326960177243589584367434278293589787459837012562125056976155906752227453875476552891105347690819968629959388193697224387880638378254140872496146710670521742778903751442510389748255191086588964478030977614918329019325691048070457904300826974698300277722294950781423654547583891473414847269953143842882388043669926179979150917606154019647299403136769262318205350225934623807954706828719431050117975874116521186129384672800754049425608724263212131722683981829334274955457567664693677748422547715724715155339650076426223316690184756572459385550527664559832224153701518465167807325794978069444245468429920242448909667062286204776753952903449944401527147429737735923742297773667009200163844317468321837551137286623984565198753305132029709659951865092635849302798454388187992401666783994623179825685031991372941140540941850672106235463125145624248861906103201561203630009241133406524598413273480330917505142918814166830305224823567800244895714967798382164309970497125754466629582335915127777578507328323011305008189970196725580730929893090088263522123440961689875128961258455030656842230802551446161046476380656505399524486098700472119288795261865263231743223807614583244574160288082420917244158160347755219443885988768857829651947482425458445829029373204980658194191574809313536488341249009840816080798476099180549750229811397686932652008097026296869452764491733672360542099866003821331145814608722585858454426332797165003265882391478656207619099846195219491403402642471068258343220775412837965345670785125202373160475221541671959440046171105971782681938662499104589180622555676182911926774040752245303031278239819428721560251727847611665565570402380543315131219640616229502612617429674887116564069952295227444929856835231688448674490395874458301987084311510621025891892274530704498407992479199535524814366924090160194437876781014281681615147087821224948768208649364676283388491590747945543332234245608984427563068542236013060814937636838051652552530380736589881697813168698333887849735255274226192198820719974540916549751952740714236205915738571936889577861663957727274127381556750060998950519948387225039326926968951207064379286689286687836777785226969729506948894365243122666022849168897598997079162616810903367821530953302698149588502302853927197746947350276040685434169790376733034978783418249604514012103993969825492261115341747737701157568330795717323030743727190391894618870642957006312830793058818191845284771768165455293924560461789741898336835127410397877469819935153654540828902698945386379686336984615400514798279677586421896425525125864548456729297555351103832642943111832107219953417850696616771857359033742895761604939909893767224550696958000441149681391365081108521015782389332906402660807682434839414406682753556850798700047404752332494870395859686761414172598291235858605748524568783956812786814831993193899486775462539152627857229382237601521558124595168678796540299962704907109850584324539671327651319250168169192424480026593870692623134735186135406256669341643756255035768036508158508828078625452728536892317959405870026596635399463182215166669973698001834454252302770946104127418237604022736996075196055090626960318585891162608618318840130239750045300368737701765471381905146995509381889530811097924516178955718422297676832318120605513553849933846226520679588830590609560456368674945641866006835061180286331992862793949147025309524602263426325341414328628360925043941471008194240326173519791989685933405203554909584369159454092812450807555027327006475413953261846001230728294590203200311521788788971527513773834481761344658462555210342366647116630480548515448067375750733421453433276413545241993285574504675076579517954512422891342194754989094522898484098466665273624439608623771367178232662990563515588587478953155361396163238610082304095553267834557628951792710959028323788629421711570496282219421473485682333270310468500168404834320332636631665804472446032192063351399804495256775015362339331637970782048347870456271799040240174580645164904731753196358065444093801618657731487745524653097012057254399069509766720316112648294422313524785833402922795782851682428992013763523383196699804439351073383776197871392516325388076867418653120263699018540417555524979056639798547201632503632316003582004322371347541688941674013839629782983509074503630293961673824866593591849477455123079634421280871955534526507460711555097415577457353217471959923065000632515951749751927676087011299925713375112139607712206098196617433262979616483872132737005424220415237318314412428424602371371599563972287445195610463867272591630101682528705602986019170953431577554287895206245370499679804830128994372599649083255052575238410751971271740728225867332920571813014330059899243354352701922037952362596063709859865152945402035214066843553692928596714050015636456647351807683248726876225693471442457074988742189241228407064974361029223835672705034781184495181877253689779374321895950061044120771016317590111754153709850657719592511091361661680230125651700468759822385682210696084963469700694309079893019884544254709737080774032475687513840485539286654448979824360558516110807729385633302687558799496624345944338694429521991393059821408260287127571976082220332078384045274428817569429137353013675514738079759717567812357472818620663160403622800070141274586048889751826420454397480031062259742384111170572472628542961342197042494198384605888654682069840946915394447068082619436065100564605019576006522109262936508494577291442231054526566926396121415330908671330333693006550889086573164274047149018379736915510972877605397339001327604390639879505246887120364601411767296914833005051912418705661074956734109527945635495369896837252584196453210858020334474680511524960234595148658794395532886990243243120129892897328080890802111274405966472315563084537861290165846776486756337158554231111681075792740117248606168175182143415864856053558034568396953242693754113666728895926487233973032102405261673368168283896015008373356031647314373170396521192906210540244298913375715722699798613139555698105760011007764440403181778945707599212564747080384058793731435816141180755380822808827497780553108759634966915452068669207755712880356453769893761861327434868204041398444857805431748984393235831981496059830400346067485929897497767217991394793861359508767279592074950222093034400515284197171555267946108504257624822399326143886749692664542586328510824321825323561054180773002868744848669951665981984700042409300500495283069908894841940361678720157066362580634936111475495454293024860941319487398920617794728447795603976853838929195471002296312408541629741684241939478105728332889064849049220933006218512909530784758677283758063390549080477663801078995941957690233895407751065020122908478730249559112638739059619718905519347893209053142369592429573093630043483984400646783678348223568436997643351389281141327506690087071910713202738655610291040802713413886817221158679306334450186485226915093468770773579311341037555987869069328657077976025409072305369442991783163646810604193859202442100550594826850050549910521813026225807234427442022041826068323293805306239503675500199657857823094552846038272984765897186005434921317921929017658638894183213411889220963707248218893724894810224345260485753552723099896032229391917442348680676283024587526888106512116315178947329470815948739509892598129527466633394166422849347851839895740257654055927585478720885271788596897338133376792167776756488466412535511365136213024756700414028467515388857091413231596119690457468675265692507537974743512009461535359587662552831583116529837672705122609379332394137881592049354014693479272860755574954759601648749509865520132241570767437443567827306858065462206907527894504121433524497274441375765812683505444560008979813485702956136682714837590262393542173654702908216629781388459718852937215501762281739245001178062794061457471154073984836821135813802447785170550906028342425710357621830289231660644609452153204851195380698956361477336994078130679806442691366453148914736267227296949963136353305629131402743918612799921144052735356103272631507156261812852340438828475240679165266329209761492253691433501869623225064836934807189686729467553678828800780417672471194571643323876152493032547924700133448373774513906990691605782451397509601528139875174656299060204250810800876759702775704627906763014602149700289040631507485494355655314111141213981346837305213066752717898570459501938780313024138218799900054560301829524654731288875032359496500959460055460791487743057990808771951552911655981636521075699190208830827556297199381905354839687363377275446252472830626950433123992523963461969915801143497199022885517912494898966372532949477250062206818675074006907782531255643962945422332615235564661983318937262528367399898701873062392261028397638738865034752185391445291888236062307869546056885722216044182787806690968043361083697525098691322500651921307021765794170188859865227821477745761650013480380118767825640672525499313037039098695603154574917812381166025665198761296429289498814051113453077367799483539884607584783719091167587424695653430736960820120910798383727409248372532082589610343079171717158911774430452152611000699288079058544958688219307911785162435903985616228420413385838998472162945142779885206324776186759929101724798343434811692184662274339085499685473412874258209323603334733021835773507466392201924725952457463559661528253918530796603194864251559877179500606124382722933278430570211769314982640663109034890562079543442309259641743732582655568887518776689969964852066481483928973259459685602241126590316017302470514229278255098677414327274963295037668670370800343138917644707614686654128513475989572325695660907896375335622439009676622858696919335828552710328290166984043653290271196565957130645260397978598478703392861720378710738184066958148026098242466570049787930158523251788714442182778652836161739883061109475640825588372233966023524330483691945445142483030840142341702380949107084519092695923202933277383555117010361424211577811955448017500091727114715949156925540310294079997626677715055400198678356044191338829807039180822954566542267165791424678705948046717695432671573246440369632089476989593139698943063790289091104812774720910111463103868059970049403336301926458607220596550140061237688703453446700693536256327375736871172313081003612795984255130564497518014206027297754282170429341532816677119176595318131092569194500659079353862341930137610374428145993740675911871057893820007348926872834058028537250024143158444702396627394892881497166505695565548643271746279041959665315708158962371083915325704073429039088555037086512676020257394952872278779375073772322716085126325385115975187172957625550174651475499861332669381860222809123979505036599627785103894150789935004850893583211471673321643629088116220882604942929237672946777501805712435014503774921837205905788177096137604842644069735249583064788021143792740008015183496948229194976732951502570338708089399158166343681642177308196292138954023639362407060473066778157684714840119995093329523781196228138999893420146091411239265919521590113733112428148555184575805377344726090833059661438728619748554758534203998554955754895640009992881316859915434164049944088266439968085717605119509249839732227516315072997086017919033257487730947499323819865030400512987593989642844541024410792897343650489769397925525509303887635721857692807783177314034077457832447338930883970135254892872298694036338683074059806366028677673814966029095610794475675588711291270172556263472290247163146568041720586983184982089616290629517375871316735411183074281872005338010799653308679941856974798558373908765720887825317465083363423075037799387636255859229735158256449655414071856293738493704511159932076779012319656669548315238390123460596579846678846619089935184855579543864409872175895607336192645394986962096937037289646227046503880140164059380341219798635477634900784387429880195560404184390907463309560024290756981468837145519822301815503075940001483675712983551400967041438873284929646108564486868846717946900791892762478407250615470234924701174366075610244826332518959659145937854969174040040779989955335873375627903688682902525313691576267483866924511057912387774634788081551942291556277445629528010691506027022330670468267692518513225648724098177554543923635010981129377638892829231546067571799862002761949046119563916211866336420396499541227831562016674624807674482691554533647253637139814106920885794441641397754969524013714721424467651455970358497612228795523234682128866877286813480391512162530938489709804440164845205386056414530989730869290453576927566773938795146490122525201807262733259900023420670887642469396972103474287910716244552003767302149619567643958339074845554823337389996300097727124363611364299276211295422011166457024923507266403515564383211060729303072195296194888925691169822074478048634440688914868342830364722751480970860359503868419665025563326057752295751991297054829115027086646409739254896171381474877702850498164084990765448609026413827639339870258705904381291969717048942123112780354313914961519052927752915648478312255625553204219182226213751204255123993929525927252580500219999513431721912462791309021225966880055128794934640454795115991772089644859009890123994175949828005638789219314613500169763389460461808962200168428368447957438371821064988768274568595833759379178711494764680869951493108367564009635594425908685426751007316767389639503826545491460337742086047069352094037747808007452956559704179742672656624626928620317952175583181146399591055506187904008694719859867812612733016307612578411697140116252907787148314767630666490989531861700940425741849537853195164542629123439207934260960797684233253049958252505914432954880154008479623309420424060714016601120939285170274121887729665877271747390672169746893386161968586930511620909667438629122367470533065382360889876376585217718114102050241842281458045458082401368691570076013236616709106846891027833385334412215285383830501574881579496495158337142545957219231031142537218492894089291794647383819678122388952936356250071761716793753634456475345008497014542746100417173824633722510290759834202916253015923145340200468706751393128909180858176416024982524511827400347707087458445819381595747516157886465721976576800584177201680391759411582064814941423783996437808475719876172231198795435655887115440319389325692264699861196553058200761182742750554504449874716456093143697050874143262186578055831979918192487851678465653775889063935507542619788019852053203280073057940786182935778840158997823887670231451909583317577842847701820393227431915795847550420433682345235277488249836050176754850372989559111783903976645020339337966827822494039494744281305656859554155948337126878861623556887533715531611903081673699932695519772651354494497311036507548655570290843653825980465636125073994033528171672934525872261346055372393630538897758228215659497353847564941899287767445184380199829597071110368809675636750575715565313803107062888504222935850353627671843519335572941019766693296741470823590927719886884946723550189085614472292349109146658686410474181071678944032054707772388983271121574440649638957801190009386583080700521268848300830814174364038898530699853844521780905374654416114539316843754421635623213273270465710312897021808295793795364060191230544427536068280713334538914210113913606848802227836523269692190702665816882120285973473480191064073161814082719609918554743267683520454193768992934056701997711118385717217435020510468917867794796751367959727007120021085364403252115823345756786908665886759505335775894842276368374407346727288618540529796340284259360993725824101709826525425041904668046126859266677107945183263239747244030484762021748706621779908401761783960104831989175878398311421368682015397400564227145901617813426448563912362628123967906901674735181134756826857800557251196970463003508970529009743660677705986532998783437743342545458489060169889506078547179706766158841477769045113116521549156391071550682965447337302374118471643503237459062506083932201526223208722082045236460256006566385658058142509530348253393792714368826397338515566006026387054031319214408310735457847869650594457581354952943797412533105157797782437924646171494612530263300155527421100470486079307558468038606707246997009193169157668346160576459271176534373230810154638561279404129407232496386417320944229498236675160347910096563851159466614579361540599061506948773865585159171872950839772660153776607517349318823408185892332260896276841268904452927710022041119820510120146673527491385855067925917101821103929050222423643815844337276447555310085227902050832888733547604196004079987227761976124113711236919540555521802728564818981021357213935837576115545856192247648587427779121128296758583220543234096015180582804802211533661520677878215005301123601086029313272959915838855988309159591049998516289831494065664880391518305899914058977191794816238194789764690262604250430445377464354624186626589238884771007742530556225074428782312304837833104600349814911662643943983531476382166896522295706252046948023451383484056701943377692245514303614753112882876848362926730312303999022292294280023829674205998816166336999667882709675593979742778034197102750652094372069308457291286726672591132963336381991327823599131136416487409618207469031755040139071774681950461725979660846634466579995191531951564542590714236499183547109765359588993391612270851430104309388180512301193708601238753067840087314299138322617969792511136571502933528876943492516819789493112741754149165481276776067345333649011282274332521633612112309400114480087677994863211126443925370281248377583184309698669742411374705988760700901386270642721523373134552486510147805585869720278581838019332398588368840689084513544659586919796210689443976102630012206335658563815746747818376053055538935437453303467485042729995628227928578632499137470087307465636420840684420074572215444638326202008719531933600092147167321835741330315219971275869196324376250111821365138534437318338452276905733727961043674022347837479530092377817583560320825352674686949417516851575076346063646109569977179621215546865487312073532435517710832988764523427701992262092292173776081237602034194056556158407974041967361247837278173156771856248540055346050452332125124388084076648804370685282987526772909161635023523430871597141038918504994817642104638578700697373420715545588235823170366832814821874051885714880571734615593464317832802854361713794532375148626870362497046362395824085605049553390200343139792602710271412809491113965467226756173021260723470143109408849903691453944295480151348876419201921048475215829428392225278572777033243778348652786090219270243511673607725912688956087715980606238976901439694420210924124312199268304990228122655360275077775615207947191621722941937579312657606168430908031481071868945595726582339510944951549271022562385446790869689407809686475832035379980869022903685341115133108598992701198615955467944707170124497672409342407735489465264467433379133481693781951475675221207125833473959985339379546160184260353147191313654858621077189418464561942185705049079091403851929821029516674935349253205078510922450007622022973642539073350477788938135195205970248563882658756310505064975025616730505272910542746832241446948319515550940502889443346487381916646486507022239135087899906904623992044622729579861807940756230293863777930080808008346627151335282470615589432368144267821801406292199635863642850050528003576809204056750295004540247530512850081766990250481377727021230199461620492287416479363303318232165076216146731407832356930971114593535080928203939064294048571413856268541559288720270117614245663480784312434722798058050734414610804920965218380686979362281814282706390246309896004224720883601044562681395522171202476584202736730163464467160510376060280627492935964978934523919687990885630868980142314353246502542957635864623478516240422861439911587275182640515009949424860636535810791512787267941267174461399723167912737181039368373877474821001723327140631104067026594891495942021902308274204625398842081019410052754781087952268460074382520185930656584145217801732303988677066241595142665418540732141662328734820941146861243426561378642228630443145713489640604201249927524212147797929314730400735057205309023614712820860756370453741042372625156203346376792470419892091823362008681827011434299645318131137902468040931697575858265741746954250090698612461229731300322518047157310565121992949082635225287942047995040793225066106807363934171857346387092979327019133779587396046419493818432732009513348739362288962205005862314746049121032691123395516441569920588356224305863985339264687198902581868409321626979397586412051026581980691302363568317089759632413284898704057060979378728722751121916823223736432345815687913839410003708440397043085567055694858862014722196930842077059175085107823170414817503916931793430257848988404698535995970343577102862809450644229576626179708265537184910588564559859218479750280026825546933343039289506445922161306588251954979971505343344854305784619056447575778280496991257180516294769913930797538892491978727495229089002123211385215786980707413663718935782553130969694738959125127286130337964070799774527914996985136627103310889583744147092720344316788013281467083231230069901846379781756626404490088086926084530188841967072781611476048024567061445244695500069884920770872226035238570837680193584631896825156669740474689496503232859217793982974657787538521090856510260686150290480768710275563578322286575975216545811318435129480270925490159660197744940853783445952847775927577722793792619591344550118205368991083122908164509744390709964707813176833258760370640912983633097096651252010818644964728896149608448639060475337845369639061526789222650310193002440383303342722766102823361968994812689061248508501034787529568289088629796243758589674654074070108860531110859873167928139605009357335516123045767540262978791604089736082138036904786982824813041112950775067140624346833088780604999787698687662721724176632035623239921667386554389550685524734391490427984819367248498270202388831482672465094406834014499388401753503362411923355132312173204110123894003477740308221707045856816735825499116310306145135425794354266415693637542512562707326206591736524737330073430864774380384939046729697197955690459522757546333035630850515994603174861762258444156856262475010246570532830760524386393438434783394221824634928392464501074686354211124612620823696561203842040624085253471239557746137398228601349574795528101056618600269131051758316221029202737102617152474647772439801568698223096741252792171883766283565681703463248932709787802220867168366981982356569840917586113172892388177453475075515356690601987109194539669282214520679132791539104508746485150146174881650250394843771270223206481484707288650833869705332408236559573348303592275380958536336471806960841885872026849016141945753742239433644363369507343147800346970208943679815635742727383403234264200689236454223795652686194124801935509895059577454681827779865567226950038722560536656680231003393554123454601967707438070159755588749620529338575298880916307147623261716984344996559802970652097508681549970822366287754283235603772288945540299356174470794735130130622586085704006891318200378213320161188990908704618856682791094139912076181052091575989728287469711518421065116088484431965770080621903844973017928559676712356890349491532037447484209996986968144778636846490222713770052862477667222870331947831838693910590918313341330674393970651666179120924129452283628649996373255886727576191717753178772036943283014201249020560178252268093797370638485221207550772742047116134087045695378037556743736989512102707130087717729756235141254369913453422682645441774605520105465767867867000226811110966757142402754428304464031725517479737953440680814761410527514695938005422833884809017994043632037212364798659821677970176898384688227007740038472193800789492984852896193787393336422284635670539533879827051178503200674820693299197710808525662549763147599602681306765908389519896832925622822205175392775514771642997578480056504949680314117673633951547578361802924356347848974149530801570892152564820114823803310317354894472055142616960747487865663581262280942171298896584675140024317278073622564206643024865575738021775284999316602702445871436794585893324988569513817091842536035962284440435810164519862789621378190403346685835317819645573225667657391375314348967474352605083482269609406084832353430671520752090365619548765571264072995580072195651490814184054504193761059490318504656120350050368530306853315064172154126558739793651502306731571176935766514967852763396400279707547814983166789306831714505565886599805978090438417223600328167429399892816407684726748793320945308969395438453273679496473238144901909499804681526664258431391807167606066366050625950013270665375287316533108312198937760268379960509236863459067419238555404208450539564152968944695800795157357938910291143230856037592017300448330311750451617557230576818892709387070969109548012914865342054183604472858893843612990424004449124354460529857605963490759158889428001246733508966734497800122755524357766636606560968170790835707528451319486226000412264372588571799624219189591177740226693753599219228079794935088301711390728255205112540346345340710748914329995415690960976368693465325416073728744216466735184633017084961834386038548975475751467921909990342520205154644220198194978680158699647250422745284063913238797050048362970926531603171205905810396538716012599685500446081854510994811639091555381270368791473058482817926880621993182492462081753274469810478891004551359239570234701802483918372285626672211850760481130637421198107565525764311553973830242858939696632350644191983573200155935809919902725493852738768577490599844200100197497018185794999890153415332033960999910632904469148023654919213766428603006622966102832236898957489656143551225575169110061716844446186603379006608448271229056805218496219126240297650895454814510363715169761185078248361472861290425546793602190543826602485118854271984161086750686311795248370198397506504897079697365518775569278644690728756940016983654328222904848703751630868018099021767770951935649412656270034772852452652724824685081369277694966100064110864543531650196555203445861162197681813618543412768307012470533422163409722078669770477884482511244620416736721000352023910332356302042497071100733604015024527270522749048165484500200856276411481630036281476543688833396812978085491066972713681869450107731062180886556699484862814077836510993616792066694666523601036688867767219188194340846068304539979502954831483932261204119782711706830112339972217688410366551445166101641833852134080975556047162205916249298033518182759817331578678333178528284149672060744072175319741681119755192750912775465859690872807337029646542304940581940865598530636059409439786007429129327692537428531432467287429068627636771134113772586019338585646483926049506887535690894747690287990054722113595088082078108190572206180127998369840482748796172915086642608339025838363937608271778129916880834371880292313256900983349090737536711558077870007964232783672207811755432874881443488491835915760595217471235428021686494749490296271387574534650523291748304792417236978920778900679311733929650312880259559295869309144586397022936831172383108559387648424039040032257935043925338575435351145818067277621696151234897571701430724629849601832616461136845440663614624357089004101537766977961593963958726346876278642581197796599229236177169826381935164412298679611642194134794835503189648861591805434226748884432501005241820235001029251492102770483410752845616487769856574284224567878710614200189597769335288993081179195337829730106237101645817158429255785630852229520956098928391012776789600852689579970035334916310790119693385282248404476499858122723136340752890387763584766823476396360553349072106584621642439744111064974792750008233649619392662773482425802615057385028424011510306810564115356822025510446165001802888415294212157735387473211022924141223645220672962682360051674013965868376819773647076271097471077923374633430509906711931187111854321124093683166869181307496441134719037342806870986647675336242888798897187105892243934820276148898828853105964418872768738465152695340276222339014010699258057018927868413214749161232000335293927633228368198245751654193626285757656303302758500541339996955233609068442698580138232554724916213539072189752896081112032484567498903099354439643025467566383369879205331725518591593580948180995814015181769569025408559955074219829721331541917862903051216437030951345766399364355836523589114672094883501700353040203257501573596968083971969076917124879553806698726164273630245419178184694011828034188147052478543777256200703538840668549609524971234339003640521618544769567490601701626967950377337920925786196188345575030768315981170519558330657618068710941004563732593190324872178632565983559156387669433374779786151588760918707941254181023474623106241260984691149566706122066343621551033927056575267103295095484013690683460666109661376029635949701066232961069437097427785515539377117886366067355114569228300983366527081570375618519288121236654834682503985920767111026400919394224157841058867120230310075694977889735060104231325528738805835748086448693824527929687086786693324483834458961239097104280004530927236812179773337573374953096910676309302320966491303683013798286280012750803550507736921371293597470754422073231923361666047417816970930506550136964465092512476865758562220761998065747082005722938275773635555621584039025831635213386704372052400796047337156763229320064375602876665404146316333633053322382914231014971072198349939723276705221493231351683628075370270444397762612845801804549745070683046046519425617300243913972501563133855323945665914126695223572091992046661622023823519332065757708210457071091124022148026120022286679084850181966978475143153688429140193108191596007142696795440364500302692589131622999664432496882914698046909158342040286486829488728015953394522598862129651199439854134944081798897783404881721812236545642767570884968597137343540527578641232505792328358027214952177624536930033387049814583882105847980863014292333418906085687094711634669169336273827629230671424950267292791762348384751528643937645695246919518249130188389440670947621998634849749601083239788384855827446475441337676251592867042251762660806964868405416255467037642943104123375747485028136193429086459686310203561167130329018801744784652974984443310433684570221629412881022755667087861349075110497024078752986756838889972709112448471634387504304954248899473953307390530385039264657468592757019508331730001277721263935096506544653364359421909473735244842094405288651395194824035482644649017724458449828420209424169579702581522027729864017326039040731263560284143356794754943762548013032608507544253294456744546677944746481295478945404315547993380456656592176127810910852551532651169029390674127210867221642631132968433909828713374884412942676986682216456843541821502014903249903209539394935877885209618942404272935775887837917234561670406474460682164679666431164630601091011738137693064734747511942812719291226778335420260641724180463442037177498862202964570422070695468701245829120302651043388327050943274927959675742762214810979073564780881767285520659022366344383088328627176999497961257852472678271996954431608607763333745798563607774948589060398536660023261288710637295417581901403519475160008255449391084318804827958776688675705855671432618184847619841540093457556743735712761640334272406257321760225784558367190719203371718453465953837364150190832176142440734981934198230543597632437856570899488254836941799277716417148506137718475392234749635176678749692447970913216153725645413260873781024652911131033101379842284623391988991853420295412542526085690055761798958240886484977831063235316783500240078170900042554640898380786440329135513116817407370705436001264413040822503692347698899613115183561598577224953881646998374391369755251752519040885352125428634970239478524711236651463925739323407003408283997499011976328542109700941593639579376746661445322350679986748545526979570294781689772625733558081739749256738399716156104343160719236089692783399537310860495737523403405154412669567483935920086501554470890817557856198811223529735945470827132558694716908111504488595369549304158456161311233544704953843562343645385804880858515779460077710816312291279470244230448276133893983634851404330929117660371297238123935981495451496386552531316616194116534330755558122474175601484059260041939302551297003721212485624118677866488246733295650706421834278274418877084591789069189491012721466303202078823251189908440794839069777937121178180634029596086464508110033032946490658930240067215957517099069871975622121970757065902595453549912063672269102955079042677381437872787903760609214646578140799000490709322452771712904536445608198935524304314659062740116213014474290930794737987139858591410298703594617241271610282738411033970077244119502230419215386732722821257041565562343746770087898830248126749351043410970877518101442136951998632898062114797390118569223252809288199524861396142867673531373352294321553532783096276741281554407044035660447170957531116887068565468166525387493789196570972286548635909089388485847033516675211792254525872276073662986753172849401676912750211936964448127945142666382509732919024398776021630159932061569823912103475386180531035825609266347348340549000085740254452714240773649960125069020448338467688573808121971531091733430757615196128929103109475489118594435349324667364582185784426467258986681788417839330398745202138470059753270764702704957316493013184108198571677740609636129237411263384056487733111755024632564542609557002518503972017356117767994052166870198070664253162351884046965115894041469370677484372482864707518186779327555424629227169537858071493827041231267873658650221187838686321837545081841660695820493925980871759864291485185997197996015023102083806940353730186874940886584498664488076405750204961408401139173869655926012226602437041034766263948474585586837954335294692624054091388615647014064032851728011705185469765322771089267283597627042207131613791658990959742527392785133732937406236066455838262946898782639202375260391655370945860676166335102023070042432116502120337981568281440216697981283161918103187922337296250069333890408217376287684809954211688759296670522163178843122210280077103631493549568306251907902919707642677790611043787264310926368283228464808918020586791068926968505479257584814209506060817310891845902203489350343163733317105755701438893123503067924509654180899803560092138237666941051408179514707020188599420493143724018397917154736319013895908623102294426808338880649048351084314500791172428685115240749395528182457102634867417030317871808198183786233582412969846235795944815574821103343763926608397425395031360777678749900909349611437603663943357597960799596576782540339043227078189671757965723104737904896225972407526128384884185795426604388958254449607485212304726560142954299421643487284989943925566523439896263460860868741263776132958463140404279244289464569006801172028971274247463099348461764300446798896027660468382773372541147252096351633458211584787633189471168219863400390402513931938756692217352791446182321124677495649943609733729826910922535692290735274430689199679354304620292645280418548104389920168210757731865466323777941614156097524550543138051279732406946413826569117764837057102065268206496956410156416917620880659062690177151725295095026798413615729625660946213660435666687011972504885572441037288663457704937676914865688770576517510446493772740826171948660419860473480695992487656717530642165195996035873312836607212696968273519333673842184354555001517858083150212806551926148500705281111619472576870925960778541231753162642071589320765979284954907482092218037910470838923811917164230281750079190432600893693968938925285343167795531748492283319027132762804506323875730739797987249562814468780131238081079838286606463220769337956961353288413079656240879522962711413999594330824364325298188573883683202026093977901902376736177743970920906251504022086723404017842793637873958075281254344916120370996727796048193905879508921912148993062349599875279720962843981756798953516392609014005249269151639236144062978309422502103312734312097419423645877280108372965694141322417428905102478660146210301716845259698165542441946373000610680336558546753997358541152775643406703537380510746850990719796588532195185748280066309757234812695936805893272001684187879777063202378973992511245575019180679413668289926181503627305347358474439787334621175775452735119996200916000413716609448528901486221701317109779417561317142563477378073774817721610097986012786393530792314734693071315220580747872277515653656492395168423174209435781945251617332134881391854741767687789463735373007140534298893522351084306961826126328840170385938580510484805963749946447416330940238662333185368351400249719742973519958113804427558871986133364477934098775582812236080691348895885801654718012588225118275661397625534699229167499070576950143071958502745881799377208604714337489008633501157539805403436886943572904923515120530797341750856375340822482516458752758929065632272291235707572073757358603904603580153650795770485219253428418605998339999474825612381338557319079305039562765122651301856821350705249934495842816266114505557271399513864232613370361356031428218626502857899403191908685407364422546850323635536022685158817463716285674837690923555817982452967348070132737196751528271512567905749828680578782581175368915743707760092696996744345765383776140981379305774697400639138317525350108736033971162916378173414500321100316500108465626408792439446968077899407293927029439156763490664735757985829103562883457838774874208157374814883352638156232204919134133415841945295317312856545771970273020764256468861994441135305352206524733433284822407214663596455265081062794093166207862548749730442230596421811757885370150068181230777047789337915704090503892089775892632161439539953378223156575592335106081066041947412802189161643772137904617582181303057065867002298701452004099400805731073570466338905504913810013792205376600751449354387749380906962603942767230308164440029863806929590883848396853527561022086523157262615888167197501094600314351593115024728171388381258595059223580336144134134614510972423848824483569281756163452838301552454381017190991401358833793443963402573733291677599131812214870047331498729083963590018370782441815571227637475999166531371712690622218560741820665210860071761204084358470177435293452706704424360714370731282890093256254055742927148329749906527286765207617428147319472765124008671877548042298833968004267741762043073230487811388986656625788087274749526004849976532725683562680273360709084742836907823859575085962104785320369316584975676178974090791709731559266677660367423875179516165755820405286077176111222704423734060215201687436901405673400836675033352931265825176383286949697533550705886405593320072553563604890430288073464168139503052932502596853729108662804214103266116696964740352498265091535009224115271713539955429005820488794466209442012388512721991882261768285164683313455767039399827348657520643585803554370942932952202302312055880269036954789421315176642634999871451575851529466907534322433425618839532477771163556446469936798627069583117466609944409416711833814007349316572898652777596923325373871876753878515330413178868026793001696782632577521500857156405585396597737344987202736991590291513203125821031584310419345814605362198934716054524619334075098436325945447008891495812072532560251648215341870782195725141968565267936993503532104870475921765024006754683015778931464557794580148032916387110792010840733249230196317124145515196570361978290213188421409666569922193396863286344408892277233406914561346923892548087607297850044447454560755532056247560745532415546259802898991773731391191796343056278290005794142673746709787153552695207878849356059257983790137215750332919791691784093029993291792503615089617937821529545426594984990225374940750827541842357320291302753674980765110324925026378656518097644308774295041563404103407999976565874070800511239284458110286050917896853080187977847500864699279100418353239193871588131388130938147911403116073737298988459341035031473314723884968950194627607459514510438871241790943532323230535870264413505046291882044424719895458413106841677474110770773561793347842533232433186381448425582265558086497022175196942181709400708328569983936881365932410446072240576607687200368634741367945418454289448902957003815002159442275021402578504452650546816832251213334847760605598549548842377540954987454755207486447993584374832576144762364698015767476793161730154283665583910005512339872720015465722896077513538594557830303302773159681349726381409242943641878195660441970067059134528119536676018297829742827075530042132511261285490678650446718208766022403722467735372060126735697899414672937217765923003135298595428249661786927384338926838010980106362924521772609531062293936222674470590599354602311744928536984190527471542605158500457391950520363510274789620832907419727225670886506847140775808322720522386697555771389690610588966627659550773431032663475322928055590127450232325766500722422274325016083987387505732088996724383982529713850261344817516674118137218965746891070605794978286317180455794160527651362674294096963187188776752482622692107138699637845270042537422630653093689331582319122574766471386024205477355157594072489321657970835429348292761479246547480620189165123360160818305292647755729974567030550967915288505935762415984100715274782599273890622375929114819423722774980352725800214650685058616741061000158757341877691038142101936489846154581322737474308635274169222389704232430349854215345066283599617589231592097439263181451154717563889546223080224465804641754589419710028782051387862128345160184389386319281570674685653508690366212707096711918801856591553019584614468963268399540824866893970606535608013411727542103346059640715886675110318788679840991845990999302683551427143598813907244681934984506161734281939988268175608065167844356403394397680200548302884619850113018591820046664981370774036884675872065478586263598041125752269968644584556697452597620382976477160403046333352268359545972479297702567681826704523788640095675978456909045479932520282048841913231127718528631113276632835959620087054824656898459567898482339611372324559662249413793743445400377391371313281980044840977583271505354141596597713671696087082467567858699468819071915336194525523092341762212826228488323250621831334239071741354595438211099213943851263001005965351265911763499501076722643246198331914679376868281033965756665965498847719188225273690491397770577778903884510677334890659048302506457813127312512490371719066801650937701013545886484147481183829192324450166203976333460043247090901904450348942928610339453060039175039675855260267229147357595583081788174463048710106223332463693091363755869949653949793560221793860224304255177337903199270454816861184055800311270273904683138917269874727978274427198444467333240469528878029468986921595740281552296291058979850273979362290186452592800893799119200376803561333661955547591967723190954876849390555683848554604448688672557001964356476507383227122059642235572528802230487711640073930864701959872753564514496930892040878439650378362989385124274390102496082241414560389702606427166886138749347618073449862394731886954390493402116026566821506411115887884417158254163985811778902750261986824335635181396849046295409752742507631278304431926823421777996010845464737477928860116059207217270659430530995549014141602577192660908807060150423970935665776209200041834551474949471009682050383401769434894589549390588945087476197283135717798456387968973523253313257929502710841001747465913714219818352194816153472229336685872394467341700300876108893948903135067168096341245915557740352809225707334720698604258302184719800737429264934078985548958210923049247662924190242972036424468312936034071449040681000035107602068974167660326704568197509271395462398922505577512526442812988952237299369275056717188507828825502283343135776133764570321341543062157401854914105169089533158612429785443763873325706061199136319239917988351624404173464119376616412383858437363835413114421575372418116757645319023961503887568448818332853061230255319591208505775073849390003775812729016098123962092587454906348240268672033303217134898157874998760576789333677001565142507778007210886704104352612029065536734516800621215583524447113993993309966667688821737540742601648418020408760548585009283699837240706937582521325325253839248219671886921276670370775766215570929079413135587355134702460998336932321330766727560716919988296207139822220752933145597845535653988389931186689522500081011345061794995859828032994419183126914390396461947153096623636562446268021122244692267808602981261934678040307074691754497819424502779476186074690536109937993501527460977768192330985629011134969806940155236572524029878856849322068838730778155139736699779059642986131933741455613737513889078414676030792218527114762374850944421225268044990143561225264419165790325275801634213245901408837010583703965138666031448065894531327064743110451448124897219543407855208618499659439348262586261078498167123215755191809245852102546933095370977543440463401540816543254412512590809372711022984141073660858291884132939274749825116503353007309353874071450688274457915727997153955066114055629512780229429668896607680594932318711834200434085582711244678265119223126449269540586709348286550001888127821554910656314308085398110794548303284573562078538825774138407207487457105930736921981572990591120500543298425434655654917174298794830996295530750703562953115278988631426152524978572862111258680488288437147205202404042224717703466231675421373621673487237189889359842456285200005579172843325175616040863838578190109446538685645748640771099819661295911186408759926889926418440504226910429339983707081364074797110971058276775499798012915121304098727760524105379097754774092922678477276722698089740674162099812300542229872424376707196551890338901068618779056521080025549570592384436512019944473517868699076936429192320184228015957027166259452616604826352211881478438331447635898218895301621265400988075609331962748721548616612793103092215719543697070878413338765082186997902341602893658170043501724819675149817737991675690922651070606936764963588593674461956462968666205983379332136385446505532268904028012149351785037498205502193553775383821458768453752545183149210539374443453359833050097275883112986480820823800502696845372161441814050428961681603814020447573766653871183839532001503737144383983685095009519046871444370500700017359409772461553962241312475491020283709904638416105946272983126940370979543114268489458824591686479443324516806532540218227677626349840981280913650396567786606928703044231314666817892367289378637020496695935540726507294919448574937699670893642646170080321632619404205708775359351817456011867869238215534112284363310439015269875259306676063079683252080763411390022340391901084777511681845814354529108299179001535104737308818595729419857625686599107799382783709276578419617445260185491101736228681165178091695109268553244798842047636792099107172768241151928939935827818754727715082039391514565667593332841434164847883971471997721745592558316945067626974707017011776704974349525604242993473416607788287220358868458683388618655107243929698588586360574780420608201612061840239207051146817047518826091403545393611350487145453750739683593023109840448525772222608829535102051966513979224506293667396447935241027614131424451065132468352121565160633898615719612392112999963531654720077200750673704181280373228335674017363580074168965234751317799281996292033204671762767086753544891560564395891747688152211322187338011026934336339578079266226220539670665944277879449177648221877201532697810392510074847732941550839402702577060643104163861217793968427533545986576243507384051434983872937161026980669940921509036674754228347828950897991763653977064004959009626847084636230177658676139824377470156993198781669584355428364266275409206143542324852424732481655509564919598724463828341252780556618263587704281262119210687811082134668494342936320520083142465274472398842427072374715700993113738849815753108496025257668886317718034573219313570060545229577955098005625619134199079295434828245651928987933053540340405901960584510021740685824049311333257929774942459839040113048860524991142197863437290267486830373626696065738490828410701152743784693776562512865221182328967399718928652167869242581016263474629749228352622720061669141533836783833098312669733446373643149147607983981993773340359342232574235503196202954072194499105607655845237240243187909121234018294410835499466191570234545575004958608261204287621576960312361489771978990712432018072571141018778048262418607190918032848353590245515699158492326099887415139338160321869920368505817324502204330793616524232443511157907220990356120134881334539135128257490271055012880143967424236428681435496517423170117568848562918926000903924518869935124300742202628056048441846246252071595409374405052392749861041689012642394916664271902907373244192155455108278968003642031511581869715691022028490197654683597089435266199529593280629560290593307715103046306055006762155645848304851228599048300790427618074599912806045917686564213587553701468543466114908335105178530075549686064256785248567588689554301555673999927182897977613661205709404129964383916906984863448780461717333230278703106752295965179344005846953964088667732150530810100324922467822902584781286037982882868284292226080117480264171860828685484675603509664170791027107441980625570562328758723072605996633464263793442258693129881115196284675693585313834675974069171484151713421040514584580449741293469295514869783093740795414796093529879816494560067906797074987024073305100829115209530684582727389127501588542636685193619245011206173345336753169978444520931073781741880372692089496795340596644488003837306208187166960014042525575054118242330718310862745210594269882625554642584249324673353453723833368473182843312748257190824651734269425234516195139261032084468861413367968721954426103338125569225844502550685092929266482118875850205863142186425157310364437529855730435807716941604871019050219154967935016592856684243251696563231319543145035339485494734084217032206906312631772890579601525371854550392071528951821498958827797824179556141293739619658231755489853918868677766958660916891431239765950364031586211306650319350025531440120659310511949502095665982016128927634090702672217717298116973374360933049013009269941418654373602673839041512596238234507205831008376497970132024096914622687504285635028406736093404791877941834294567902174183785603874698402841088868948859564496287547000954945459554689985328641797507387619000244263237068459226708743177357978799938557731083611965982437824813076672281906333999210424772886854370573260632219140431382510959151028774070090327005627293611909227186363874507546507231176487590285130771847523350677422756137478923961841539549129671992896006741754006155087482052561226453140790379683359804374922179273753946429389305425530155536997634814245192464246122609916044830666067142090269985411267348756832418278892122883857389332022712578942080045194021794272936178038964431571815105130822767612794014571140181539863753879023490134221981690040134053912496667240116659740160520509163603416736560425613393170698506163148056718941349387242493234742580081559347767280831473849887884901840603551042259187497456347781640651537362321555254716276830434495076865034264189860514756663272788624857057594098117005176809679532367689383724424511205374559614775713370812745687529026870195971234452036109451343269959145166780806360464854462484942332371683302056189149709261168680814885607078113370700843874072838067245305585151965543720561312855713163328015729982135146086020324143505650811994369005932478365127203898398757325320144939166696245716176053044753796920166823323546027844347800187728869912458599538241026160786112380604161736560353126645122083007626658321291114614015386457457919833640213517803504637812642623242905930398056556008699174302102410240183606166269493440652425181067453069577474487756728797677956350747359274989380798455275382204140479845067482059258191874549281130707426145425769290163499561343072297279884305489471930212329467573581082093940630818755055940650146838402657201709614330196241843044572304623773263728345090193754008403380294261210347546822210498267858994846435529742598418885695119775127788594764764007011726233229346968838180558689072358042583936080274568365195709960858502384024282411027698079308928811922410255667996403259311992755244311079061558250306573929624244138537594325993537351206734569982855746785443226960075891880497284712662909884944046835898568732613021182908770967358120533135704591754222145912354608021740556128952503902683964634212255228432354373497795052534005699338501666551717027176375863473069915322656792024930857557834421072136161250441183453684312165802667517533060152615241210894409923575239701354340280240391453198272490412566405556686553606156772914826598042737742034909603842012759880024831180907321679370947009377749757107769591578783200430119105345517112582678527381279694421815761773820902765649905264267043693140327396648851693197005559647687648944217509655177126563264894558953015021237314617694853881578632813620254917460597134362075204246802244165634159743940518189598182363188210271858876439351059787646574477419789797442389018401276714589493508251063903326886481889281271958363505605423045576862434189542998062701216674371884802945734078036687464609090305434445003679666762216540197959648148752027485978973578898197974223342995708893534721121165926700148302143995815842600608408302746928746647138806240984773213682066066836775718054727101550922391808733934290674571780675388497052151355628887876003901317528888545466715735183348838371028344811841385739359447840862364393393137849464943793537091637465502642512672401618766518693632200284311710553718407366559264304108576063353587607646131483752280507730787145358699589509236738804148471720677568938471411261095379212582646156037772046298832928581909589851623829423139852959312551508093423815008298473012007787509909655401170612852851697864621896209832177824283815510284071602688317635285468428939331427533081267008863816595983840086744714550032682670196365402424988613049731841726342758487884623981161522542277078961893917129104393678998146324678195326503467248407973691702567022741829813276375100738808357373436178882593447757337599847890037388662293186358071885940867376863092761475934164654718206593184867023322731602976367013615737565134617694198119626417963292989963915075455532492410303385935313448411316030121135006558603205955327543006262206701106560677215114479964327971207397086828218156417256740844398048451933171506590365485511803211547845078527057601707964004036067590863260918461367098041411104194197918532362250414568901688502050334090288797140546788738899796227010416717203845057469140809269165862477346118993533650609802102517575198762821436712374707602966855598850186410006875043426927437661657331199038330088147173019607910063106779013102088703005270572842367049378537634593432226375868187361800634850087161710273712577380678198235657913754639542885484740488659732299714640449370624137964712148878776958054974143696387926470493138019806973291388264976114896514308251460428021431889728464043771036530875707580856569137121448541050700592675292806969890393599934329120668970179956907660964893179489851454170493253321215256904070420274437593399000106248589472811313354409014179247003054443038673894263095182675147177689777953724796557092033540279685995561732571881200349296544191858851830637655182018033962682170073811464415033052867399248986339731928872409550142270903929895522618779057114841465548626034874957694785097677501123887190787851936751532375706739369209361447231643308944949843047533927721972603370191243417877347146245482019600406178306293894876951159116316857211722549794653048964181437453522126249892016148489300974850080466774221158408727038944791229224017693306585168029166283302107403219615065795153445910563622612888860910608564395191369619282748205492794415862846102232573161736408998824042540478547383045864777119133862142263701236455405916743147623047608360332765669115752312828047323410545417837810768411722904939775524904177200959200924442712732321966596050501224673329271305135914524191393156451484531807809698749737587247755017282594811405484678902380373250085756719759941960857369952725809300453103699235938149701166985228744728200541660380033610478808117350549326404275862614772855539945911587513422424352347705182955051829414624323941086967130182117436206198774267536695679646291647940773937271169386439017070030864419014764282435181302394845898905661213929233384274896687480607838043789206758188007438592899174447017913125771709915785574646383105574971232621786443162721351618035447798523680022644235756349243570081028867515299467792342634796352427338873154386448596703583888222719799516346549457552618484597745076268640037793740564725678376956615280839710498764852581454532791099369781921606960084391706089898294662100272482936198798200735442101124285584156052852618865554298993043496687678844574653711309292155025566576566801463205249662427536038909053851598816148531033258661298799149956732391939342964259527341247818551473984696351234052423362288761611171086319990854842371007593902483189469687391874007583121501603489919314811043368720201582770330877214817635184984856713576382865054789485879396985970083428889362225893031334509175911561529396350687280232467976681107835161665896986484534880689447681097236347945490258852674099419984222198538422364087531506229506900132731134399035398225782771146022000937369377292413669553015422567078226711408951805126796015214353392726624993654942620972072979929458935825601113548306344055324773312909088319377359484488755669388673407034678878463426312749240603317296545042761586688442166984056953430322392347402756384515042009355396266602457191384977709517501336846388844717774112089199352925318278372910944718254353548968367342902493385291231781581571146485641472467926819025994353572381879811157284319981096356417917512275600518428352497807122096503884772038191567976068270748912246606983071097632969695074607009327131125269597909879819248970476808566818962902616355342195912095538240151362110983904004063862531201589993099489829850366894073949617281507552058116528651656508111606938243103440518016250863109035952829373202624630957492608171759549861768944391685557326578295789900558210654394608831492338978624212441229233582802219777468329809703088965617809260297751650314904628377788592171312000966757658209179403432704992304167891729857079972498926638477381236510549230245882715449240433257965874562576344979940633470593259965646766469204191504816247876009037830390308797659443931839609742874391915838501039766884098463055304701271561589550755571223496668141201753965444650147411493210791034661578138058257087588742467986955512371564831315282431888651050942553161859353709600678711073314849301611513708657972314834439012652630422149739777900290895266484354749734821164887335337810973096124947298282939177213440682304926499112226466960900716880810616903494978445486168805096770033360291073225735702074151840621880352531307267933875745036751454770870618533067527697657623466796630040359409291009334841921224333782040572298637606508470684322868596231969428006331881859795402124226534155186190875486956064141597105138254055127948684677695036453594239877017829565162547196284281641171905728366578463144962324049926137771404430247875121495941975955759376948486843637218108194040804460812640363569107031377940668107848692546183137292403195506544625268018070869227722462049865575557552290101402853030299419064731384331190887233966111037516182371592025336327268114580560887937337513112087849343987204535189619218989084330071015443689092316174261955079308752373294479169675265284949948295178534194711794929122848362139205718289950047810533347402050930259089474272397675140886750867293298152541970952307928263800050899341091286819233564850621305205595075160677149759163291801873618316280828509936132312925451890975298461271545963787855370100170863694014842563936599144743759376352701493872328480474552238890915007908295679268132390977271503492606941005085733332890224282701653104756547594353705423400655025666711849005246796356626018264959986215331331658635919250123326740938400374436964764309036609883532773602490864730276967128580535871706510858058122545097290088041639474918674137875596765134122826105013501533481682550644639663682054099649684701610547912370059104741423714834877611274453030507013394922022387862524689894771288839010747185415280192957361276064419665396861401883363898856151669251143481951783347656128523782799876342474391641610359675849190910856776808170699537789562242835358895935600345185334906644579592503774427941837367131747684930278833233500005267327423840291478884313173668860470964029451069844674225741109097961152069284906120408925962873465408322991097373954318585547963766489981992308269593243818820350737374349624997027339188683860144000954156221623160456708750584952806070365422430152493154960863170150222540530120812862200966823467644996833476087562771641367136099448662187974749428773172859784209726945925557111112998395002206603445461152051956081734519852784104381858996598702217059539481929727913481098730504086600082727297781870843207450992164342163611531825728585094958411706160182589174377570041672356806890772241676239598225878363841046174148668302563287504115704501758874737822041308808193484110757392939333426342156355662144549053891706529050895866109751337318181908252475202427778052002381631611631421230938522011892690822447408793732158020011761575986788146939809453965679805993000337800748910012262848071382490688781101450964999122917966466884747801078664775076466615914524441591675833949013701557322929772222590669217036070780806042606823272789528175768209815009481431051873098825916431875807215404916441723078490421384897520175730029607939190254042860313049957911007097793028923555488250441324926116068215978647234706547383572571356679469416969624449053539243275514291032124829500070829696527292326308324033231879570040196709118782951487755630298322612655655613136967157985349466429348356750485024372333114540486781170054781031604045296360266917887526793758709679720918958140821441015124145142334205601431432705154873626334705061429547836333414818799190502596966968126974353852322395562215402547988336424657039902703499534734774926887881699288534871332989744673917659676511935830308840056894720204106858422136167385310459097929673418167381670553867407571099199928019319177816009004328277592372754936634586130929537209503232195169884209320922853048016165469411718021490733124888721721422788556621410795546157331509790567807986985513302994532384320222526896240747621979626957196199785850935492277543815899595865096826666421399780616165040965349540786351232594559731002034212184410009700198264335856184335858491919014605376275373757525457248686244477346514473521275087180972799863434016230715383234567819990060090029310694920394065657232630550126877031780861869456719440184214790159440822997672851525289196582671512801511863664574081462832821787986713669995373165705402550983478434747460772114041316842334472068106647996304145274247101910015252862744606186338811748104827500211487566669648988702765586556499930274397402896775995739919382105037216881300146402781452094208981189080734649954359742203393191611282497123249542668387560872150185447276586790641888021438435345065378892935276685809759434337049963489969527263057338882855930208987027617342995182813358307147804203271735210427868883217450944369246121204558718280901733058673272619285598108269893186097939386658212507390365442364850010149907833536196909378398712349855465982167385011866908454816839267136667586840087964056814799264487201740108182783453621964744449569421643987008616699174489204749344061279448611726410395846878318682602668264950079473303397189171628786307576227922340594929599968718130559869374887600551584597005370638361444066564383026871817559628210815359467928431411405853780155145803252038156867818951220456351634194228877795720535153272599949908483579834245950195565207688419281021510724843273637466965058314384296913181429214856790632420723538945229817835410835052893605327007075857455200895794759329369730518380878362048972214234038475996500308030494321361884787374939561972676028349477165539895584965287446262679835246431544984963848203124641024559335331517558734672036498849936215957117901719797370311416355581212188860617765442538662008253722326949744692530119209595699810739776126305974457285954616180033686564270189881900236428107806668421927417985932647714336455868438272774024384905013399984418999381395413556665042660639374204825124651856533832844175040247812337541936281663830541949916824677293935874958141171272208123334158249355076664913429926431595193314325867978756273913403036898713213306883067908385718553537774851152692769299678334460588374627995580027306222998489892697330742031268768547464783534030104369920571513828039037890434845183859372989110060215894446427881062647871940549140033793926560965991194369734860386711635371124657926500626575340703580111512982832418714878103229473305121984628377273533672482345004781164168916737762250087738016590707202369212696175807265143379850176655111030068073478853350477708734767424548672678468657694109782250714815384263750427313326959915781684850474760604884143558449942459142331530762070472005939245892310476512781145214598435419807584012116604586670889297412663873956092938793260917873002926008366667336140220838585977442394994821805708144520936194625644269016278802908377731038280548755958002178588806685201288001278857968041787623284018415227078077501145239901331776780231701162089821150541410600893349984373800808818895193625260558931675103326939818239143708633609415226417656269606953584935110644685660768165186506613579100688402439592806918504601783535284662004092249961603517424016719858765114881140237074863951233293267738470323166220831550596478337967914900598926158226941236803216569077751243446068220309340969813362526841472053956461484319821019169829113170807685410734969627672982351091742111397173176001478536938447202186729385374643058385146636067956742003119024257085588727519045386624390167783168670126924172358486005286084409981693726143913688115892836567531818015695845384927315552653277976737271699663557885127724598781641035447823942200221391660741844470509967527526665926984496830652722040414094301828440831817255993441441263421808263172250547961008582771681752275284274899974540740085026800927143074276075988719068121605722054746657265131086161249699187743332609151614280090741740345771631642062348611785610294422073631371290539300925153159866784076068970603007654888153243121982513196614769293642978944353084504324829052076165577771732090641550006256423890139912800367143896727872352603208589047971982008896221073043247798556037475824465138039068166126534155059599843743178900436174312975313620592465488542462856121322131572514383264971483268233326240070798252419749355813753037847467049275643691640387511235828713123636983909255033841156540757106349081663769586446040192418016487262359477008092412589800172981759243815317535453109320129612323238132460539812134830387536672842369535693591896797797344117851287192147269187406597873087733516566362609989411986491471723240263988083474484352832610104600239940919015892043181369853710413756879671096992918100086575713346639240969767526647949033243825713558136012433783815908892734852762391650144821929902855140217830686067191782405731517387333206377779474105124512252709145211190374867831435001910442749052762473212417240582646894417652595095770431668447285177518914712651813463344192709893699740279255598068304609956044688589864917016904515271783235381188957691787311762365395646733392370690271991642649259144247019283356251095220787818739244799414116332272760174305290759209120134866949524745178398769689478322913037782327740445628108103082390922429171476167465401378961059250045919258783689553914359827288846866269460724643440929040383024524826684624848507331165017616472013051601646771756499007266929270910564669381645540749145559460116834717424584728727954374908955604601392403845000924294488626785149010659887928402716919042382993796110255789558322129628456792388271438830424125399842755580778866055179216532875097038064410580071003844054740011599667716992289822578113740291753410100127143815777796703766049661402865083972912789267140700028803298751947356309157492948829507157397750117700321094294541509647887214165130419277078981841733186358245359081603922070963440662686385410430608268110537509350442046594752847943357937383424384894647573328515298315302061994159925432602838929301489033091791582301402584316999767219675545309280086944655267940870117136804630245064775489255900267765310884734198489671935194590319265086092388989615791640415415381917419588331876663642337064839740956021748174053836453813735626774825637060360000198054241835018802893295320473547693931543380967773148963524282327533091863854486624801949814202129166740768748149697577915901306074768434959453897762127833298440537039744623784877007331841685087426569577298330956190990406351421137161348690517108066023702165583629926788252193982446266634921606229984389527879432747358610409161248802436529160625336538276614155825321415455622054985133404639441036708027672804585515293663659462815850521722508132444780317995585071824307225381047976141643519052174896927205521339439354155527434187708485606203402690612166257720526381281389128164942343862091914379475340757201677540721140919931401721897027814623789213376318493287423841137729349864982003396489577485360773194316689639214440146196801455581723467562822160542665284655285440165763801489366329267664344781276267545985047256773689457733816648995553835881737547901559947658249473455032409129992378046923877862172221223754565632095127022554623072651667434521210166504480173428887066075442403362901725248021605021545469617493269696741306061483449562778872785477886452651037285503153851783526514819954153575104195393711178300005771646996778449809366250757313754189041127946932149436799179102343082701740003728719882802525549553935427542459327233826499048359983411340417058483248008786128189232972433340661754913874379957049231398796772144809380855458459222495709694596534958252203264120466586769830329922836553685106814430278108588187307488030190481447087360935633423724483787320791222623606014076712818952104570133824757600370675463760133994568508168257863094806816407194533620372498444102005090416199732895494527510967977699804843163301798977200239876819154805122962712017452231357561767702199536379535139497364981219355633719490318492857293373154027032184204918242803213866069487372290028612613194963255596563572172507158762126952686711127194796139709103291664570787796186703417960027328373540551933457676518560319854984934107453736378799736853068658950189570521531257491269972874313086023956113981971896182264980248699866594425780324445422909099336587633815864147312999902968672885169264062178782156768050396589819198807832856055821711606814414415697517226121386232265186443156000774646229668573552003599918586032726367813792743608906795524196755144086349572663221015715709229191140849698258199010053733864372554174920535577847259884291748593411831071320088701837196389614767502136886286993654882838390382269870341357364247617862979733596390778310356637392648653681287152205014121769400676962928949539118049887678179766643687494318936909796363269289469684609172028218041443697805858618886164753894564488160394935688001018603264940454012836699019449211574411378897574101769755748485806597739055422702750955357981762228034121046125233453957446922378752832233546119504101142335742832418120539500616343824748080678339704073082168387929379067276612298326084355031132261381760198157151051748910592224048744318179890065338530875060809223282100418456576518403329930546343889098606589132981955253621876722023086995933793486588712904523380992970813111319191422012519459208759698124982616667319715264742309125374996806512063251295497336796553783565945731332479982169966696527579500569195195847175713278158292208091741237209122420611395417714768142207274662574318972450605765369084615984168803869959226118073408476106795067613310065723592759592025733168886936855994990168025512368640892021594021514030841946000809358892665995212954926813010671266658801733208567641689337536294709131973983897159539507277483671709520473434416698118814435764063243575917852804879829992944669521778979281521906174534891558867704403486992648162736969198442341966456575232934770946372494090589513502675017364628032528868256245895691102626468142213382248482550503207726355677755190386454534418374016483595364490482720029003937781339946501899469757380879338400466704619119196426632151565222186171564560505710159348850083487246718177957705191722354560589558319125786559464932726638024285713289211787404470354886086950307660056672138558569612460575719882706259994178572579787658027987963528187650800079141188617393774862800366691840753181758123557218142309292386792440877745717541541681299423754248242226860464657067297508990790500213553521379754501333855071741660005349643568309675921076385848384618853309054606840261464244535663708939231758074737368944780346795294263061855238143929839970728852758729997628677606092071617457723473185969100892295880161299515548238916705298157321501219587370229219394488714358832240028171237986137330844920765526229787162347100580088436841053299237186957803695875910333930109310549452034431102200165915645583911062989549148369380961336861755124095292812553659119057307256408729479600847548737407204434752479767504190339531541251320304598258956257523603835821682525918856819948766894978882570893529250240542025790383221575681349728274611041327804489338666402151707814624368196828138703457604307342010363349171237105223793484767023200005965398388540652036006126949299530813136953684753106283573745177959418125481486663094548737291392695294454491727413227118732027612630902486139698127802112589897247881606049505437498717163788247762539076556546430559029027091800371991718879614137004517836795672774902822367605048408483523692822329232097843744075761904863633574266259817567454981897804553234946065892584101116521492483783420534331418292297743724479040003322519262315725719062653333759358484588372054595668838978220867345450923783619190317560320274027827594752012574682840996583776728456104401203455932452031317325241281687307506647424630688382264143403653205771070450674951953970747385898170526840195390952309960300448435295793721236986432662932386829796087608054382670920433832459891773731100118104239850771902063769049485765580054067710140802821780600205914826282620380006971706370402224285565986059258756455184363877848113697247225470950436422067952909861405061352317261628521840095185906419369894293829245588812643782176401770211423279633015161581111272497071925444638638081905121781299384419849129276965997682634144051680122789865120154959650258229234182461556047686170412442051745450170416643840898416815825078549315563035316462410451995585577494061990551314221918192386986206284015952462803026606566531400512137915097543396674510457236670954798728645265665977370279703216257580471923691168719854869839440843484248599399936681355066270426561203727437191303762091334758828844781730319469247120567350813463599275869914938014942283818073990311735597023988863703310619943592408334719042992128579492665801669336115679809935773079769582083092161459983732694412981105359795011343264757908794031634337262828306653285257666157677238024154519289746933460854783548380620229184642215288555803004117559260559562908910926275443927631748873749881742604265315410491540050570451810394063208957023501528350846234362472783096208471003904369634181160199987698458643590477719981556462408681006176458777644135629149069652681035204872648589200535914199884452060566737570168526970570546591705410803044530843734360398989947733448582493107713219198966937204618960363337827802488277990380289031302988514338363109478958556573909000190917512978814999090404369099856398570611665070947424325218233562616784915979975596307323049650348760350621634561488147357996172460175691070875645511287255518002505619361213987932220392598127776757488605348185301372194243833828229847874303609612608927351323580606752181191436371773703399037422985064209794948821232333362516603222479273533321059625353976715628095987169807648565105610360672611959955666556441284235804574814399655490125429443747833618487062172080318801182596329201971481749255890187803294125572764823410348975060370720534485187684792039981678065884822212872345102949524174999288441435626656916473310824584735605770383511539612812487493484164040706486690573148363333071767888056365282549965770547596133348008929312009114705409931938972148535594804793446261614329423135117414235423817301754568536747159324216335044727048582180794318083799496711738095422518111505808692610624656635868142701579464619383548007429432171450096060860316594532511963265142863405278757784880456823397087629033309583123442927131432931924027868869283412218932680441699473227681872054063646219384873812643693967484170893961444447875441140416992507044989371222892634785128898972217158813342554198806523457404320557461316882827938209641606489745794993822839938410635442138470166934059428128127867790236701614271073092108427405557268685501850696921032318516264768328224684854726748685848792971333615959065666566250215058853633030303891022275602103389776502657502963695891594339905172570450615681811712125712003880983851748326566914489617099291182335024832436108232086854236117654281080707175751715458489998810473752680846592907602046978695397454440737999446897302070928056791385514693854615996399710261780478332058364068167951442693394040669065321409858029232722655176206235494789800944494358470602371539095206879269250681574846829882938940833850749283863975233610896758971136386706430710659472856538246727915418233157232804275954590738959772871106845389108583514737355976632315467804452003563698584062585067018230810990498990570876065872383852916721596737275789780657093635393864217961564068189137057666808754158225607437786234745187713962363749896083651759924782185524864713106695151334601383805481263688864702584049836949512067468245857317893056849855292738409013109901359108552558784814903724141971136305633517477710114882361318722955547872609474601229678978061107412826268249430272671368600937246513097162724310666322326983423374783258243756558182702288407188601915599311070827551668748737671458756782160320697222923979604476228204326087676429732919788021760582225863748535805331456370433232663048301679377813375252654497366971419085787880449780904013087514381707865040408440665717305464192742523223911251024707185960519321997935459123992229254220554160427081469077447460463263788586439123470307094174700907036259888580869218725547446221805323684068401079329091882602611096873251681938054398110216158899223708923070492474406310785282925793100964338460508213592099504805103383023544163885574528638404119772084891273728606194093026916243226084418943358539852198705288646588623680379820450982024214845196387889348038526022972430510881743360784994995318197835903869149905491104189475499447880914095777731349329591660810190247960347890120782689061432884039299150556422812996510005726961431588328488224926099352590587724422693086753948219729276622415054942665819315882248376348093753316796310168510375230035490359693128411695753196058892917216896703848056756550866637106837370657217800336523329268759542466229276003781541524939842010221319753664864534042234762749482837305610818055564518321071568192490856635564545437877008684466149130109413860692745470568370008306900197324291336220026376652979578043962980754674083317211007808894739433513576249081842844401086895554901329637479697727004337011940155257168434021087801502280512965072927454247180046074061964138449977954815777827991273305264084073344564203635128686474852634206437596209144038678221940990965712077305341996908122893509043122833913457438821816446678654819664080439501802188253268891150232977473940707126510017384384210383855993818980515613842261260188403375609130294505031649643058416757063204024583816920607658384735442699311235518645829975796704259693793479751432267220215431938203452936526706590182965135712693047253714804166775180288532821163163633547232565887880524545297327113801749920673170242484692027993552509881793941613387081389175683602873237460373268735789310059560475589090721974477544793878389113124831530026609294655750077605166462669239046282364629966104391026339393155266058365161364422896088172115971194648950150126513167047345692727231491482492202933991630942430800123809359111783837058102482666106041935616930030660144528481203968055763487648032392591003571936068112373864527801590388892746577975187534880794334046721475825703061233695251027858991497302821075157964095964938625516535217673406331020231513823774145442125452053309157692593869735744462807071608595503830565401780325972605671171916314645191048275809850340587153064501027990888092141374478495569481323402962675150190366976281631816353175213220787603506098759782835079487598911699363162961019244265453230603671087753570904281725961761826415286392574783663361167601017893868381552325089932522782737546174941065100424026430468310078496879690880054982340099919662782744750361230070169743659173311185754168799754352888561418658407730431124900886933242273053915459357800141508542067181424616512368380762050848192497240689266272709492156452264439954515648604084526593211737646686434435333564301586544595467841340058728007165466506479518588123284043177184494251113995896320537717185105485135424843010939354275621545438878967360040110342419782367022066553869319238689742895430677938746429296966549207253353883334643261778638204103291649050240271745711647535497896074081720404968353305341816661814305403681927038083986364594356276242540082797475195464937263380018851745542911353960760043950239894174775638874610470099441213732596954986024671648612167555634461347309133951599559770595308900353624055856590726575102045412486540316177514412746276690135678042093012989119231818946822591531328712950168196884849112872795153792541942086627983421102523622304079845842782874387563167886515174514412640874376473064455572344197959080996168249503946224052571089487401898771300282617857147458411236064715332929211996845181754884582588143034756878117553845408178195499854821266149437484995271755825790523469099610403566308691806330233470874606003166145841296451425334775942223084221771202350610719296555480268177055975894313476045666270490760254655240065096849777017546161070289685034051367876320938953574450680173804589939119093543751781839786427325608401635884091482915995869924900439865472533414136820869745258727839300973549120423763280004945464369368381264176450516974871717781242905495829977072231334005242543183805771669425473153873223446474250261810079894712063311250088956551814743861915464320547071694501743761778283910800694041051960285534196112830810046007593957072910295191320628758025118899862142412142431675950194887735790170885466139366662574546658143982262802875137754460202778129600933007954347570552367430638635191764271409458601580648710661031431755493880154646415683706319213796748747982150870565729333070475574191736788701880265641387768193005368583115169895361583079205311972668823685865846832740799052820532865040090320724236797805047294258030544358208504883243881635030354229807104750479926130614533332081209291140338809325009517146411463056933151907058797570153422146644865625581697944116485703266124134539915194796984525935085876458954195314496561901763209291390877582798217645642839261121998165902516951835782161205490936082117386228253504556723207301781258139995858467941344234412583621062373052596422619179890467689169047710355734815221339974733157579145835991624277267045818593000481829699561449504403316696286711696287443232508714601139203506419347325101496060031817253666800502254659408813904834955962560527132006877366544382699856922820122286633789103800251259910359542039052447532271708689262691108057411991721533708907049204570175095427035287066202448831497157220031039397368698803615854255058466371481044987109611820468315344445207921935010650022709655570790808858370435642630385605114608956050201823244783048344134751926461350822527334712976920614695562493478973812919641272698670474963867232418723215598260070407521260027363588191637562591048641942220221727640349211544420719651045866377866077917917514567558665547352964897634164636385768388644038660900466413359794654965735751334455434607633269126787742071530899932123940259206443938458875051014882536590619380095149064422113080605545322267088847103855270008775757752216470408562510326776083408993623516247914435479837157418052725785682273242001376019852810842655553656025947825510542149334546004485074795943173214711424610650606898680147275147630396071770334447558452195610870797365420129820623803283043030764955120093715209815289272420664222504132193605538587970291421884713900624162542650229620625185568481696651775598920743043716291282978734470941391118436463747063338815348759769304475214076929341657304912258363864133202727498330479951588481115338552827464578412670656891732201057847465138021570304052664028209253941243605383398188760072015299223317204873511595212803314878433319606916323537407159106408465973757044698716044907077217207704943774122840706242599348288618821956786985894080501012671729837094015437554422734590378292985916930383012769080627880346620900700597414185817491451143922763563550320494396728133966118748033008981040888082328883036190613201389935039269749500608424760167510376767857651987484992945123586215401769828811525124786097599359456636877785217392154816480421632753880214871205337886949516549925697784332202892835690232519602885024207040532868328502806691567303578673831775314328057451818394803350571837263425406295957666186884475322924069086424282819595807377958171021115875084433792464506049583505354186318899683977696341103905578138443213383940650659132624424887993286308297163127140787312190314685618944333268550339245367038548394038785451863412772778124419770622940156201164112699032195134385874473823848274763275347518028873451822592142148705941908873922025567044730287279493568490662270344630029791409960466568074290290610841606209798590307067971155618290760896395683855210526642006389774720181360081565156443890588225068477937905369023556854479615357646698573338060502939371732892220871703984120670221984062965537363506030563113915222234736939133701657755263534875323418119768871496488334051107856767073633363369132976964887504659728023524177243551239298661280837672519638532150703951547944212480004443235998861288205487570126855201669001181607550009915863622616265755278764415298062899252544004169574652694865362621182174434950245534867694292490020841261541015461300974916888355561735684418151081589536293179644278051213127655181496553809311154825532853966418189505314075574197162325962065691345699060707611349247395178858064201944606333648368055002126921878853341315793546278683815485783413184282118478988095644124784633788699401574214561265303844890163745896627611413410504878842346734271844801885219007869116917806603548432949281449587828044076438617992781877785151414572713961003656022368710846897807734939476061994761564827075141457938263767646448450905206946728738415948390896373364625014587424637921030720826057148730703974957910715186706751368023633218495960998688398749193422959843119649734123929874864575466198213702807808030664477560664619004172174255479488252608818538493996547574280886995468059544980392782456126138058913637515407338815179652695723797076420714085165222367675590529870698510061198603029004936811268825553371409672903175967019539581741828900566832429390154597566139978566043221573070744179462094520780622214201089729959874260504561982706439061830481160091834299219663075750797733548793079995333020605832121901208855689570427476017385793748301391483657736745222950489458547406998377140677431578888784276450187585815269714389153345596044723683917916887455645597053880551160570766154850480448871031709494018170583114102723803677509579416217396071385859266752954984963326212835935570481331638516192764821909107798619597497395043091554572685250372765907916723976559398949338296741554176133688032664652902639937046066495056730108574865778690563095055657583440854798100892678484037141628251892926649206835293088312683118118784827720854727660360493192798243574248619262785337105771476381145619114541071795262373699517933690886588549520235763404037295963032865802359489793238866841758346180876612002151386371718885295398574317712564773078537135047438694734607389344145401898344708548180321879770976701731382537799284603741096491650856754499671537263845908138660902390928421102416082707028438894726663216282456892923221961334480866188263317806061301163038189728406076980129770034067003922681396466355701195928452173289981317120256096225826679956303814668777669377808024371128886426788641476274122351323979380732218443952116385233252777636502114694389795334811648587129255419810224472122514988799716195080690777236205290967027974322034747206958083174311949932193427770933354899490979447176664980706808996728853672860816258108778018993737788334937104357101600953657831060287209940747041953181008166643856614613144789004054484923626859967136498384949985012652140789259833296432756730651010920662044698801551338547040128381235210099180292667337478102434256247500252766466845030919016921973851470538522703098540221162051080192763727677931008266653456104100097008032488315866280375825985518454321882898927651842349463393772886531377191258023189854363254915792335372843471194561267788434918298921102029133670276116329978147045410624398633546138066732234479809600034265595954138012583092766021864912430044421434419198345629843771705871497722349271121188886811692662195381736982589716071249620288622639680103050816467990544860573387893598699613899978897390712932154198860671519530856589691469524130114952581992128482127883113252206681509793166872051199897525369539643478605409988432828319151462777998313729326469125417597512533466744501435472520500669647867617819260633202639356330601215430140549295825694501838012288387661110309549083822955242087752897293982983981243594078221661745254422857876429585543546316766729732939056672267632784061584807151437776518694243226958106427344880292981610431949855339352762926113646970292229120132584095243950855558582604227646742392665539316710646930943185854093323750370301027970971654740764274004774725708507398072223815414057635500203067438344422507460969677546238288918603035406722399089596967287689190454029884950102297254177933355963167080037631625158011973518012863077051058806813247097572452487658683307673344058114279409793028925300060072762355305559869766232795057308115585149680658614138618576779054588449614679721922473342604200223564178972451835385839165046871191519669317115514025709167195807406278518513014977858771085739896003224286460420574785421076093381929305980828490940641556027015016691215231005915496212624173328286326519445979338815834789366882349213194150924116725577737636974747977985639533982862038124439984548459854305945108652717725771212675746250834276478267907498660959842039214591065540276856217499432623014828060909670447946356389951934714392765949687191227105895015854912217665209996945186752018550003122874944788928332997479781884452958719709271841141723563470725387728884407736275233388726186530333346280842300346746516591045402589355632789667625831896705850037680120707559189604509308928498271128540013305108037106342115569950093514287864594433900983696062114633137650472175332042475886438632013083007846947648281721536305088469860142780674579599888704465859073971103541600077218981321681706042499359700534880127748515418695392624236991716582511416329100409503342645005452135073434988209404135851937141021351627232980378955359802147568520803625960100648591490724372633969176942746143751137873995642663605102675490870559397609943965625821142826650591915875589106099864290974303450700592468110432364706885122773075562399928637342202528050735374935619319183008580109086065909846627482915076579491775853217634822285854509954565007046228640947324525310385453113223340263484710266746592252148904089328248973904122601768456171907637136657557416771941119455087200086096473620176378964560382253407074783518990934353095352760298795494696042642058168609653357491674960792286060151300076189816464192005711294392171483648302476578668985252701492064974040966763126049148009993860461164075032027598675441502295767390201526876331673066754973403135891411464813073238143196570356491125584194742431453016042602969850152687720319772863805622625672820378129854147866779193754029750032076135106507883191292733047351842908475897868311573746842958807293021325256016646491136643618762093271833723091667350689149748007468710304099915989906716366045710529801047634224969393736142030177455365297967415368420862824774946236937744885113930060853167531567240359680999425501089373897237204822976742592186872095118692066323393617099492553120071082751218169036858198802184098954330530739702956382793366913733042450350937279349506707675070400776916531346732551281430005262295640584890723741597699811450570152501412877013236844983432864817048272193472644893806108335206639969567052359347405531115693393652443062702919986373041019399867394636271423274987296066273172046297507696737460799463376209205264203187921364594856077764468816056817424356901966682435560887796423901683032921138334266118520001313720328207551838160933799358412268516297247385350714433479412653878828071288924703648791214771624466609191701095408193093692432549368931383662061785572411484867637885734156406336008942905381898636286742748827260738837506755250776790559622551434798372654647288637956562836731140973048252022985125536612954135583083400433460911702659782661671323732925807079421371566067880314454938994461831396626982742839661054951649618281749906029490988890535292478521339408480473051057243712223298297450698405943979474080500377859809795241686640453761301223461352486392188781604119791708841738312682820412467772948625883599742874595145626039170027267548249848361605269589479757218922528270047493773201769769181547071123821105910428390269129457420757133826938414060932814932681986435468765176882148251707822646137224977870946558125060497502063627903514861744764203088683661672308013065926850582033263610502694394088479298041564607733994022021906162663178813402214845185062883164414807355741066570431613076707542993507516749178716290768819001426580894347948138196304529505425708417170711156207571146279370147351453107652607125371711978413001390274596705449878231819915178953534648033720795072831375811765856316928831330711429234028626593605211885400879870281063692268890066070846886822478056751246559813799835211529535597215467770057506887131842564711073203408036958478932842958269499218807007907992927814460551247250395450934847051307702440619085798997614134479304756179011688662614479443207543978694785267584202423464903231198031142529363882676384323153942910881328060748871439206963588451573076295308386732082997443618932253532167061857387921228146111020601496015384244146800021805806950827374627408180215287102092759045820917392721578872908295558153405503773620966245783090055138241430916595916364791964105847157253660293123411851848993212235419866367401175624809684877276751868344089013750678441810997938353599124804772656541644661503816223932623698047198556232061107286251625151447154454895695451947118405661282995911136055737250135110680785490876214690305402822322493661620833634331099097729455933002819977620847873717837152071757422221218804046598177627612588374856619117923091587733107442657922901888614676817104583850293400279454409645318229933724573275000832857433993048510411906754279494365100877197972068307838626221195941595042780796796129874365915494821787916958726249650072718392500606882682384511244335149834986238077141915656319854635242027409239898929957300793529000178563019810885658888742124741538278484050931882785718640895790422143279280671716904472828335861093227652193837003498794490107226764778260032802609940252853646935650348420205985044323249178641439943781854300118729352045768413391829337692853004943384956789929005016915795008076856179836955445210959820519383289887349534870684553072180028577940902117965848152858707149734263030068398843011862019264601773893058227227096341272008331416152037218255338575786768554697520656468123934576987566242305227105019548054865760370623738176354751868652739807240488573419901400759973964075612398748370197642598668197189259401549070688657263668060140704351221780413220646891979108477394323447283920504959232002003449733584457958245404032640665742463202791119636334085946195845720638884577884066651921548201065211624916462571419211256320929721849486067176149861260581445501770374897628536499417182750980048915171699769486322212814276874305665113834318030036751541281208754971952486196938259958823815390948887667878633996871720566785163278803197756803693914077491899954526587057931324251065746045150641186976352858121718219831964884629169024005761559518076209393047584618529581123395426487855674562343033274708506903042714608887051180326138566581332244103453193021382785587740775976644615580619921802573421307400695850900418508976032686981370746655695291168157563770369769738169494462948107157956496125953902993031312180449296994401068743298459734378191279397788192106659606153782358294229830975912441325007674218045365575604014671920176862096506078813271278841183920100156542458160724567708328158781616744921213715071226204351100730013963092352092169461833189051703092165555125644659281115338119231836493264902862702755005057379937409337529397024214862420987115707515930547935646372809644868191250256731592385176510808688169620080931084601887546619988216144181446880625963400930991034623998040587438257017946318130985528570265367946054503196467314895004731991763087969265286772816848624160740624198351294157907579534784962158972530629969542746293378986545170439657195168795189829429271268618807158485179295452645131608370761937245530020467747630941429021672135489406688543626358952903436334616174419583716126200212773714565444199800436425363462195634191506339763867100245118730528170166015339275385358724638275345259385357091903273194865425981224157744549647561760485631007329665673236971832840881058909696834144093713872998465586163790326369659120834359602160310276135107080824168181633489549388268377010611176014514124816102690496981805607955068889398362409533099706390029398555410821377077006436621372915738879650325152908947280878688981475103408341306222766644746271199503736104274725242703242526975012381671893042714484657998527249824445004851518132425313633587037783212972775742088784963143816143061364481236956550112468453192066018122186630861747409213640258891723613828868319126182998754552548320406426807252527231178749013521845476079523978410689146694114466763549498709769059690616281915424271436703421496835314704437939832065820454477839273079018932258176649093326861232031790264112059916902122374593364341881867376356987589800676478605890746894590845417948376621155428751627543597079371642013222210048724377891638243463989984609091259129659457073348071512091909075454236568124606089454209971004367105854060389121666881522637321933201275796768349185260387989167170453054701157092927685490868513891078594261197191112086919763025234685533549194094819924476441228600232992630973503467625238082454849640009952645265289715076028705236722537324732795925364178880433729247824429283006330422937592483751694637718768964439270816457288943316293484720879971177452047353661360094071975820583901298580668209675441933879782707870546539471309120864234905298283244112946603490033842641233287990734077834876298753385717383822022984408272290644248507785307076463592470619187554159520419163456219046763882912126277951310111200794832423957275571900597814891949199047210584089666996199400190245507444428927364370271167646653434570863606629819437402166891301286309405589010290262900340778826914758769341850423345568241447775561922838665240727755512187085472020282334146259816317285864972246201091926308562993689796076899772549490640754713851158154558273902107743833141484461887537331597846752278361097663656029662084034217561748093475581306268358484733951310216881560077720844050485909775877701577619194345849891354902750483655807895124368150240166331075747925306192977038367661914521142724364060588381389788568180921520125733987488570652967966095426773914744171987367325238948372687680057037687874880331747557313945637820752170403639436742360875054437326873099952226783032791993114749028175058736538842189364864128772207801740052159582916066966440389486889840639923585025385290149784214576404808655133378405748931122426085382513980210841938022468693844688341315161541426970594012276046282234680753995833762498055812365976538198937395903108639768269756380453328955152523976039096774130721038258568491267428850092770919482497423474924989186377000202470180954524752285145567113902945929104238921072249129217100550320185783627742287058274970034672188168051596686646297334061410606771606310313671134313419511854855755184776628152356607664266372993957998171198270047976236367986978746974519040462542241562050473608903385485068287946458497788462965935492718600196019554648935159318489085655428170620152845504316097179154289441014879833589770894663520145381649547908226700017485608148508517579726882464434390999582554953095177292187011987179217344049437218045496709286636059638311729083131622530268303032551213281042898826402700410542610705869586455703268590357083703944732284926565954738337819245519451913904311784109239513477459441620244730553678468586020918201253297498179244222231720386849377969123443682449057416705317301922194181825484020902145889525899381510409852437457698877984642973725622315549337486689585716990480822928230785991445146335391278169791307959971529690429388696075971739441590104601405731648617624699073948684380656100581063273595608596395320149251964630994549779414908407508685768210994104732906063171731756538425976828853499500986962619783342251984077847074158141951807419171003528634481003817690922364090851139112464189304358473701522044873925372993815177392921395710006726027947512638288734106157984418881297570780191374618290711330682654856183879820273000772638616024558175513213115502592737877278851291048233246290444908522943235338184955584673548625576057819992470750368028269768450242265264710928630998990798484104838193299980476620615307546678181755725279711203146252658959700703154969680174961989909779853593432004348765056972518769060508864093092074122993673045096765980733605004377901081010267121501088911531709985392869237990343650114405810776713563085419171468368880179443552724593178094482170602508546009170716614000040696565280484737688627057991623452299858608692187263440184925807971984461357535292886895766802480063288707991977590516574471125372020380978223913953500743011993201872011217904962977511943282701042998833317626002757063415641039410663512806336449793576842969958265867351084626835740759043781396245977458954834090740317471522085351998787947278806429909408600580738920836243379324573872069758835874618750334924373368654246731654821553987711185894223966479583542207968576424128486889452970175966437880539381581757122972781807598997083226214087874557635120561200025913559669721857924172825748104789325406816059568867865705865993601904540396828125146483510115406856694233017139853596934294094540244190556810303178112992576066429268264673793519547349446811519258152785620403368419967689345665811678027019484033948495976452667396963781747071510934011387263894423391220936394033242711567683555391121466307176023608705790888179531163146804054163332690271834121954692324880720375697632287963979650872256916436046820632030726823620165400944442749212922538999789530222967035866639065952036545423234616609055565750036827739089755643510720679596918524587377456093804453530456919241127080281381833072600904416058648629347205566999040750148834222399723640109577542831981891006356567665145454091387628484111515329282284084023711650340495298549094693933977328507279886159299529968773581328118122552647592939292688463141520809761692091935829540975368773656639825636700697659716726723044865456483274248797217851398336882648898676749135404903861177445526704624440753323178266608364844573120802585367113625206370129820014021656250861020397413742489344900676856988385611881286378089156359332253988452235280769713598045257333544695614704905765607902499404198247008556944694772325709953155377361423582913735099375243560426741269358306793035560010116819710048972041657450807024076903297118657016758149737456820762732194539315705728552149196050075952684814161144785416549791988535710422710354186560975258445942037144711418024558396972466614233434541106526143996325641106988410398909179502993673215490755846148553217970119033679017077365428250943664870926234345724074582635092325603051100212751026102405270218926401400340047284467034647054656450454538223418147859206971211086127496321181833847902730313326913048441964378233005992418732413121127284695543978622861404943253229269763203490688133745467648796003304442358088311557832640853056630463921137271937255668678014465482247685701068151594599705747314422339292938747417800064368085225419887638268541251974496334417621633526775122698324472160531819237124762676390389365129127172084129337160361989888748702687920483354391057693129488824989144761095597537968259374097092426722338781440573135035582332556480279249454661909477849804623644380693662631895922577113037954826735851303136531847510468211809858442209560314197230656857394593230321481155668045339330208961990650538511126800990440883221243433893888185994929115203965568073842494384090051929614035470087321563153896305027241475323214056860057574304519948998369959771037049868338829201658156550587291914772020121715331834884617431505461757626126180044951804822980769741641627382704079745256582086882129477553373057806742751398007344319773445908337102136606386691386284887265525859891139731278122454527358428143407669636147454579931077562657810054261416227284020728117915791214580114505459063544359444617760143362216168375169565013781941733659081151990766954847616175757001410665748369776657919985309304837889501935615670442495144674166209745716076142607077254111678341485070785681154514635793706883397437837846348087242897159673062482054631462626069811658739154277365709179138329361524229077177370736221925714547631876304158300134002238826631042824787574905356055530526023138280866975698484240584522773826544412213694154238999991709130712560364126999686232677517066723193031399995135742568962727747390638025296411015700186294487052708629580263174223528259929690419219478766319703984393417372919970612988261247893486103661255331636302682101692782073384912198125191486797872122321490161239120421674409877741189405802423406146449412412737648636375176845176779288026950501139724270393782348464173626190223768230983694333012016873708435089509157362860482819518608000510481550507292657426035181477726116334005945575626012525630531126247239717585579445730348940595847340135267962352472637959165878933298650827857809359928691534452356424450121363059895567662849199083899673927462356970438987108660976535748017166847367098547744621141921606918027174717352991955712314180355716623047460331608426473622880704767163088017079368878873422544209258718996675184119094922059350676043888375863554546797308144545653814626281161176044460401474001614111488231713246295265590436315714170768167779454724345298399917092556137630638092442939174069715783175294589393024283831158826465281665750554231068169187681967251595098403564660250676406885328581544696874268986742712856088779215568677471035672852266234058127275716510892394448922882897260225872805479627283442457930441664111025030325202546477271680756002960972590250777224403223234875234159233808746058970079159866397484430591838588300884081191661477446036069093383807024453157655209590833026173704496753570225693229877233938872595647318519883974578808289734696335049834426920160859700796609944278534762135308234335686514043232189022679301554989059204485787439746365217273816437898634463045904136122792764258137058899997811204285566976034937409777189585325872058544793970317904036195642371545002090562324705190379621015774785913514890705741575147839599536170971653974416485921468145783635951906482768807629466468200994071840334372030948441374524464040714106805942342409929905748460452806765311569524331756143535128105115995936463977028858457645125415055083024079253606038077633332652338081114354429501025742128449954773040311498014302386147209879941972681615513655666250267514428774905734316718037023427135753974640449088468435248958527155074047036064251957441417316642002647776303058413489113030536969739485720090483716602541697675875396179860361131044857010378516919234424084524453012027495590586907034851966941167351311710023997196784039578135761443161200115362386785017512514965141949576600016721063131820725052399681956833686411090463367498478538644134735832337658379354263466748022769893120208686545359418433002806562522400732543580326499933599643413346964702678236168523420411042914491085921407326221766870150140657040776166560733348306302395590426331223089047568848099600052207933092007830376120393531633470866797634613287718521998062372932863571407840328763756587521784169535931202788411770998853434200397742433824305421023074838950261044068309275261761847683666924023896370662458811126990060337478103266015642656644025212224735720640552009320553678079976882851983871333966914302975670232556850382049681982857267971978784723316745031178605908194280517658214973781940488415345086411089184180740258061240967632568598810141062692637522982486889035316696954710412941816056025421178706566889845368056065448518212396686321520124002838679301035465873692958861931213320758739395130831893695160628547672734616423488129601274370348832521677147568930497760179490894212373258319689394939816600656227012803024913804894880308747240091305877803793335650288918194136005073022466148123334531916999338523451715986755844022822810194061674389844133915545271167877467294605633255753114308012127576868678712246459124496619372540745940568722045569808902997055734951489791605421267664363675089271460061141779784483864058571087840654480444102478883933415631025485690946109272271255743697022027163218484784893432617830238249324770350042369472975254396858380445600626822410486110744823116292866519749237339510710648763691868962921051575471947909427475375864503184853269358609940044461040741833832633939460273501525153405611879228210510041069657526119323972619133931789459424918365361592996198862338949183112489779831630141731212820003667774880460514888329656082442182837541131288203300213807250009029025605806198879221146242328581313494883416204769170884890915097949807918536000457479999282552052488629309050470612973356054526819616955407463046301488267259627830676604993925085357785770467414134182923412283047482853593464041204402032005523933000879295562009290229020343355840372220979135221518787293367898289054761174377556249211527589919852653279829984921087694085170077954464651367742993175842781063502209639869320830473361162639373736183677426669010482178263981648993639893759757010912020269059327458486280419750212017835196407380908336084461009741091745135048421504972312375451799433251857974317784787165226981040288587059849062969473728287814492291812547209872516719673958316908793880254549336090184175327632814735236315245620773250860080322127596277334178691619547130023599501899732322384238772127008685743640633092834894418068031044314809129104023260537537786747290312265050895695095646486857215845392487048216162821696765830573382957728631333113869095870984761370542526331320064327761263557491667908027965451685907937593086686095181011702249602844242380650034195397935410413838767321657706130021126674427756547620490403857035597382590387651626897577386540301769537089777012466516077979094156297431069349375129677249414148532099489783393020491699937372854910576953401395758012139120453132179140007936325999796216130339470823162454912542592159256409805860790085663853693562912569571003394564578924240823183607537261789979411910382093546552438675187108873481242070103663855085038340896170619787279565010767711443210866542156410028410657317521357310258964145519817423354173218701951406213678019762608193974537417180614334540325556332085090138520902799452041276149813023232012389433752430113423875118530755161950809237093445563717728836330343660964483488756155630670388718699346228662391715840977806339414888784908976361839650830751645491544817656948885617542504562628069403236261731917791985758865832465120331260701053923141800158273892936270018451089028070414280088534699157389337744139821807091408229595550901819981098799935572097138946974316010326869205393575130682308140126510225584006751241006546548088805165804543428147329397102367759701231779677802786464096857431749932932946491033447901924805027356052758366662966582077789684328799014689738939982001801101042404547872664914056063811606628140478841429477292943563696476765183502683483143737395354974118146923120977883987173261099480723396867746816681075074565851651723185389877303506249009799878632105860592973045955875358058638929118896067862155970017334979192411266363542596795013296002671246074111605864278958619702576012184805380976642844897319691297865004505439770119824953859613324676959516782824126019357356897306011095951678989149963606207071165282814832166095083109059255148988077962083947825446492870245961360491063800617914375775320544154042936072593319704776001925929269477378863016217995187516675091690093909583196795679556226336942818193079802476667061415104264259976318850690863459070352067940070647114995685016644504647347644757387060740185663226110683099013849988424512246665071870165506394628656814152547364439709018969482395465582810005779241798658670564750390327984419700018437625743223999481958437990163190432810107203366792242974691302481712144443586964360936479722025229684938861381530110527888391303702956979132372912911174104612633591957463316536395646400682078041969203926441782866123919584384381517849935473145439538331938110400739881335157169207314026913711029351059516350556402481390633316379453075051043084630910835625413128339940740390480245297288523388022972698536341327823051965374921750110828436728887046059107465394357932001260260302388838232384788645466651841003643239506606498876235754908111286770883167411386784431403588136465143958437249124894098645754083759950970651165511936965482194842139098373324309077157221575891026062108988968041154015033978221424066433078743343563552489974705426223087434580415069906737879449276200650392888619515868645800816935042510827399894883318381065136288543945200948590931245244444007621854120483981428427665972036130753640622448781615045203527329750179138119277659732354309103611642232805901295124608764490177008083755508644189725508813268262398108073909240524856995251991572244129833508786328588313323598802821617643782138278993708261829147433639231621536244462381183683725829196351210934354576247034629607410751237639017816094255723203737794459785732684468704798683975784267442945491709870861217208212483811343528766450806900896903278902349724258359454120456134355577311182160694160173291341165260717986220992346721128827060133040705918355520252489917770338989906875215881220339951343770869242032369265747088664448646420410400973203490264243806335417897019844546095652990017883256893550717452117190805199002505779349318018540395644162930462213646786748215434845115185787823822256783625312825875124396624688945547811421265904577819911506646773312787477039163481910023308304238721394139766698254138641121802938253520352327089014878865854441323355069846873784330926044036981805289771472470817152739304579064167673835399785677490019552911308854911202985532255639629463730722958945360022432658243365389632537942775575120765432352163655328982174038695131469155277019843423320338253993028941597140412100784792253134774785364755722669568453819731508570652030048755517199524378913004113705108506762980963773479066925169048933756605048419224801710168797061052871655872839892386347451832733198922858547731625122282756144572163750836030089374227203157085059130307085324952275881688744092535468265657632815181229093311032672676636895580198021960898042663947058733995051212686201714229263452304375167290810055702259958998419087753865757753599996366433803684331846383529742503662440944495247634375813856537831593498062358830730596498842690774959386099943128565875429679168514925155164132693776990983977922293007071434789888254063032109391089085727752394498628023014652373782994135819025271049580060986189411059820979573592631197269177210084733852761182285561662055161181078018842573687966920093931263156173030133602420791747069706108146232667763065874964391979535592095863234499041621092574837223175191478097544845328860728726193318147107010725088639796642087653199525627701318453025030965882501216256952919115201254421406922209097612306627869743877655001587030605266822758764109733687236432767505058014637153420310233768582395043369956874642718116544397648776414021188423382279770564949250249026892709668976047346302115479062419529667595015916228787103630376089211740412436730017896071864114404120674893538434023478792939805668595608221929962050917699015928882032276326782375588819422047049708630663718434345534262187020485402940758441642343911148299020827220740276755876952831603656487617959146656913921632986417812889074481050284547969107232640868797356307220304418328326249322182456976645080811866430778700910277877375541425262501284933603998839603290510629685457802470068283435869432934460749254528824639319689045242535491202959030582336010858168326135660618122912758618413864432624313648315187188244140382996645304364064046215073367180283222118793087107076441500435409085817756295828303033358565502938323480335370021630911402591070589779408746887417850937800532525819005217821920440300693458923966697588191622846603422821927037216941190627366385407579963610577260950449401249292056676560582911556243494051912818122946281591406810616447607501326911819079894408968569379743375494445176187388508947172792416312069440343786370352303464812326044595035988638258095490181752461995030195781194178311595503818343649590300446006562771202235770257364618835342186694714615780165624414138493395832336202953185136495705794258671845408355040698148627315026466339959544917308302213604063121094559000407040428435461986196222096063239810848457406455467604765570894438155872326816063055048703895559630072148513478443093699603432002482406997460965133462699437649025710398832723645053478720030870657612285102349519880551979118694314050559465969566606521517839532209679706129664061182758093186003287175860114521480142064375176701889969750091308766620918114255091006200921039559388049902663653928734642350745341997067415523841854721867232831575023971605422296224215849357635617191524067299772469067730623276962368340056996566856586118514399078138164130226014619632557436058774299894748924223411183300205871305660948851992680949403921157235640979884488036792321343666577415749736450679997027900933499932426530653288421988696169492796646369623556779829459150640575182767104116276499047605728417958653942638809132970192572140620706920309298427099132648902799335619994942627840510021868695868602817011269970237527890753830599248449891930025834594097842485650866860108400769235631321876819510749011016757601279042189265501352346355662262456360358608204751654214676329028598355839465918419314690136613784578008744269959835167258061454351178367365641835759962006603314517453480606501915314670868410965873845412645730839869627273807266422489517607466621226066806896199081421529470901384805721092574858822083425176313545057898932969340454510831840887529055553072118503722143746445716841098890684249887881009922287717517182436751389502237078807220030551788051953224229780009081136870764869960180690709396330049380314424967423771400616860735288222902281049025919397525759143489745174929309115413021882698635624320922695441262917923057786384144283644157775390248040798250718613984208897850021526865283474356279917328349122140335758561141654458096181215287932834964935145619845499568563866737432130275369502114143598828464365620989015965627330636229694384043520010744041543854754499401460109000572597714167411145084948713921356898382039849833999135722505327243136278143886235888583911136390609966321209123012026301366671685206409842119449100910156636118873510153414428854495901346509789714250616714694167650413925591994160697412500150354616352538008528788281121754399470145375461679125324342689773514151977772275322224460411880478951342167463873827323963179014466453585324439038106350423452074123797953112266125188201691480075799755791937257448102771892322976132094914382364779871968161438810474054532129200569014665471081449131104628813670388856914045673597092557501472332262258278396386011967248961763183378295796445374286120367784425809418245500453590086412532781821178081080698501822598943564023187404196812857717312122345252597960845395563634008664556204867250990739705355371134494677233749898846673975399642461382954508464411075168118723569799531918875988156520192823645653722167317705358745663160736772462385806061837922324891511090572871795370257607285743222218341725119686695380866008757796496774697226465298691893344863887343324310071227811856732347709077555303550371692853523519795183533507675826080404805851464047228499587642657119344783068600118015036357464549466894707800250751331028259855879792978835895165817679499387619867339674516630140711380716637023555272899171332890409103334370450662535107583245504618350174252044227012883339448033649392967137052071963698151414843094269119344894472998682977922521906076863010002020256842243390518772434601794795347372106405146393630375826629232757578770736808053547699496901734039546225619471233152800212100138605269271946603401970718468840450563255521491821878228434630086524308711794285217230169845173503054357535729554737589459530056668319129088014824804855776115534509508178121323957703231236710727658558972478419625299478220347665408419206606972524210880507554330131937198224393883353221653259355639041362768835111000720155556752901653922808056075006483365484366187811998750216792669087978947072418904675904980981816062260216303668651009512194044113772138769148222266460056221403882158233884852119634298854031705216700439440929631543337568311186499576096229123888081746481973907220644885067190656114109127819457574805870917560165936569745889885261422139616332911052739991146122323607909282744248664753829151682781103163190648471472780648742348617597371018522264894486142619977600574078661145366519026029247008612566398063082357159253779058603216480822774399231692327358063788663943173880101016217455184068714891531391871537800506501776740790681877706381612989996495722375031211884846436029076675976825807173461563817377549036628768869575511317406552675225148402117241805360455351472615058149083959448073693739737353711029929979774276460649583759068404355384988342906572353204070811773044965785333545479273914248695872910896202757061052677700098093892750734768251461276320906562960785370483692470533476636026322163229029399277445257059675828398378379670644308250501363659152809050143469655357150376632345471078025784500806771507731013138955707648495475962915767305524480724693924463276883130741774574133536830127701458785107077886658099331352912719450570869692536438695957778215950297493028629374681777477262045217407786919420866125005890248203067561365218671654074403009775508381382345068185935504631007854349807733893240835635403518965000679452038723094026981329212713592781133361300994945867772733249357609406053685290546219051955863087138822400102487910925685857492917970459577282073016279912512056757685138605869566727247073913398746285596896299131900040905189089375511348574046816310760550935845094462982291317938036925722412756143585924471272046301358726914719359339948181126806287411200489234386512327459328282025953301673905267525884823559165485081721502133371020240069875543802124737408888123812778595852384608627271395364453791388514153163389869009394619298939173444666669651562731875489533138705491152684557053773168138247803869449675524227554764469045150857460985793921604538311550824650382440395427997948477369890342994477960282188354658380665315339802473922675985821355727477392849564598661984810024923552681998814217145761647701207747579129937637677169017867724842794616409589613078796699505719781850064447865017840482297016819176357187154175940039385122775761672812891967234440767013730278620440544720189360928428423789819762085828788099081768869020143852039147660796264491982330061980735488504284085136489842626726050330465366499691395704663935769348248506040340656372771185144228572997062629472065258591242393948186088811965304735021158534674106552628424008175174402058416123528781091226531135923494902585968030901252900393287028870396007995610694270137265378264273657387638241768892084582391509704900745236375577234084537998419028659405171647644669045587206538069399302711464407858177736475029039175657345115443333114643228877345080709834357581842449860971344810468754086938722869089915424790910538462183830114453067537593461389662891431785059589293141810165163190281925541655104005717643570794789474939279564138269991349081913213198104923369570060533532688548179759476720282033618490348123283844971559550367595453724067552271542671675836162996182656055127185572875753269857042977738289345019538896926702196487559378491338319344918205398196494993556770635909638898432623477717424750468271947973614608650305426149198731705980163772627443484726554311488637855841495156432591206201921543024944721287232838365395268949422698903610144335656452801022651522079599096681699865414495533261110400748820197714086386583065845770344347759711006579675384173104818903621860479616070547453997244355223943727816482567542861267937244875026468635364039185754899681682543623934618521321712868429572084596462346005580559833989322553955888571450121006397763196682414101880462116056258385083257770978312760089633414113507791155865864128129764703906587965861493841678088650420459414683493837193741910108516372343969599256057504363576104926111631308291392947006545707672984274516709242571674227277396683181859573372541476193070441809968268754148431368734744749945281205699397991146689259167759209431965328269984853572306385470295515216445354805302009537561549327354338920669467640239669810658870982206216815965170894291553518839708349327822352084946146262525526540975652494906169770388742097885091612932015590078552520305286531488132839472582136080930031805132905034938985627324707713933008332673498167686930318018511255264425394661499838842531667958577410181796930028591279269410484315129359106954928308916407700682810354659300271142167355946091170973537787384687115796841633374853916434568074310906856295371243402686585803140270359982199328010653644678999812785862672855754769771509708351015488702991255406663848553246362015634756845350235502651602998151412583583104042626186910386773246820260874290645499737959900237253911671917265267458483938623937304633559927838304553464129890703762345232420760498318078545087645914820454144709679013569033094251182535735005065335526536895795917494589594273182315649222010745129893536990119044111407985367083322485018934890254769769547844654192324287248143501025416983484881246779410090924154060117903740545337860616419444155060773174476968405260096223834004891889606775390515489460389953963305999360970966539888844689621145096730072080391285014850946305955433158412216499164369904136299563609211002769326351662981876840311281778900502451812142007694926829934244790964836865931553970956175861806816796293071979946694688082165846989717661990440359489960148940728145590504305774975866330777370112616956395895855189093557363171503363740360719224577561272892284268019879617931992774038641113115025294642550421108263098036485481238589249670868748366614156808663981232973548579626861210455968931206333454325067278965749431121476187788697669500974561844228178295970318401271235882912093923429469765519759260320602340690278873061997582991538392712369319264781112431615583856607478011562750014902216812304881015439196134952895389415239640897245285518927209031999786112754469451946721043431754284569385696908322402559709813262839722997988189184556760751288217522686923298123068910625824424619223856779369688136017129420820277870235111223972444316712184049640337914946853672214062492309363464019501299323646053490225809148687737590186801992481691414677116680662138600664684929229773748226304319271481406402571428345156081369671061852361788987393231880347180388142792526113513044633238875191228155014108414412184401642049739563166757018198476447577130068809244643526848685433926426804196876247447044406582308040201927659390516251175261707344803531213405407474747645933506327077658470146994578857982717027822850473919606743863899895751301795573044855941436401708151869681551456301061988374558912571676129712414675263175102347502696144751295239381758164239288392941674714476411168476772807940138409233278783141458835115827780420504457843034159873134155574247749326244029859342566306010253271607765169760025258926617820624865882938042919218601464465488473484544386227973276153174547266161437780553860334234715496030194063575323378442588050190610175641174791451419137355776834622781864344273978416966285514393518295095586423580484436526180289439792886556982717571359173039594218159079324709619197760139956325984180518327728385673687158738352766189735656746145406856608550962395450196147137315475517618115287860728527418356589845023236918500674249111929506011594839893039996896990093089726742086892688226256966880654638965189424832308424054484556690955733063516958667327132858176812518227004390767112800576133745863308485179143143412079130013316173420458027688206601083920817470485312227900040561309988495796510754856033707190558832306201018279501079274841090343363040975395820012321000645993247196102865667676746009097280631468824837945631400698300520276713445234532877432855761815657706862296586217718582307265088091347767505270579780199016076144666720047703389228487352088532387727650864524647273251168668422597499970929026019415307328085325715310905393342364518403252273929900849481206914489731173048688729284477996280757938191099101304238255152830657077006561543330887424079174967232404777343448252582920549089977550601969556854035526005296127662325115716894020672583818652814061973823299654137886716511415581747751856047338221348626232967786327457389003296318955978113318832601195965850251301001267369708095347701330083933128847852217099320036035566802249007129412639242714264029796995434202818496927157569440011639517346974983355156259095659218409558290251748812478357880465153585580859991572368131210694578501131037993188169562755837940721217832760645877363830209647445201810081719723380955757766047692955380147700264035853209032017247775551887242928398651057081444206800393057669524717607213909552970819396300956122489771568592432973311627917088147669659358871507276217142172323072010095795584816627604598489419085261729239872638772742938950903113691240494886903215960125203377261588341332861194792914561880533498950820080113535050907221186555681303770495227087222659632313521737721315155134531203665260450205312245075135695401977346906450924866112484700372550415126121460524637309647230537443337189783346082450727750285952532652165811297272149105034022471959083092466592774455626274944520383642164427781999089777269007185102982009645830042825823737510018870744979495257155445310566560363264498109243061002440295230975073491154572856713428828612107574077071068242151098836929368747490670450562833258835048204606994854709324193098241764187390772834110015515956667446887155373728663360207137574820402966767728150169066137294644421489915914489385792476557929045384974321539030863705584906491369541331272613202204243608497626639900641203560677511374036522112367599257538233768931636795945434379769228205320204748791625336680529183275734218131665465161429535616245683880071094297282964133944965178897618071694506860079014349803778533031437448591850536208564303837445543571546860304623630791583422421303651703903666263919239548109982491583669218922292143637823861188053761148353665777613682999408656007541326019226150172104208844768942670182916065794638410238551754015211233251998856056875033922538867453512753109935103900179094092781979501721771028213752008362777540777885743191378375950222114531530824244415726682743394660597926022290653215399792875082642781786091856603979273191005243179453791528549360763468221282898883124977034342027192502060047142672183470360390987608056305282922326750449829240468749687957510141195492535324138311812624099118719729381844921664765484777199825766217444262149239529625132056143462258986583798145219577040362040947241534048583724844703614324943855210529422214867630452358028048958668355258019577316222944187374700169940423164070299408190627299950046165110903778676300588323394500007848546729200554661763232565923852261948277670096789647725470201914400507722554928916634597989554875092417809131213091398600495868476272365244794545874006018659404477479486622670322148231637852286421198828416047395919994326738921438499775933497507426261584239386805210083072513387682228284485002680059760356629583210785882925514528413619059676351049140784381051068016659178279466726544058834628766159194823250503536578777893765290652073639559286027950937211643194504349770564676189833561581315924185559273035722778905072972652911531789734177854921937960946691347892802288282801365627725927090678705746994659522233839274825924932688026592949119021997843418876007099905322654688949441328970582353099917612179911563614535375214497839326439529740273266467468710678449074247147789499918833281719135741111192146308631225955204122517274904129367707583498537617440146512297569174854695756326955242983523010888762759877526845680880788601344592243351630891490694847821384951228507191998904789847892556682793985624883990764593379647803071178923781174008391503385828951004163292487536072869596080845841525241025595529001354205093327943238045729572081783249030040791782676250897954657759126138424305080210635719578145487778453817491709867869194805817023047093907561755736595861169404116620525482650894120813820973555801155594810836257232773467908666339211977486092660606382618974015750711940000991377831684430639010683950612645072276980942259400166174497834565781467364878922332583263557713186551260001899855921085793914706862505159505242737791023191915553410013865331702074220552102423614458861502107697691113088294590886006974788941946516303238420892025742861884663075624361116390572866790778164166332242733523946822775221142894445504914493910719844923294434511564059217224327387539093076439061492271431309428969212926694204284257179908476953242713306152155497537933425406240709278136671237702465226317136077007251793056308798882374126646678539894683889437834739574142124013656867156975805620642805591890775518729932826838742350891481990094447140322944405170503715843691342809941612969190843440072052099438362232650400707121782736526273503093431480155177703036155289990039364296024509951275146901585875418557429702481408682524626602578899612003481987802272119586398183404663466106888652719622047927986651704370032349915131075034410747082810051887864615977428587503540982348981258625497257080953153982487230088483701037097559380839272772652889187201619678546441481632658752611469135679217269314837000132803419936300476676015840909089646564879468053372193775250269401644116382765928781122226779190633699028281911700817498495963610080193540805061433589091258024623557961730024739344076629673325985692785252569178778458489408113998583969929484512976539816115199627884049303249759452553128440077226697773569748199957118307354107694711146205650083760735282427909040644800173376776130985332854060499924284190877685594878016041249289943990942524518805673615839948700560105095257665793131934619628377396955749717140910345763623903561483786057684715477931474596990179696143501841013572393018861302993884252337573140190054184496191039281986896417296656926372612675976567012229107731452987410673627219386499444833916475581064450390359509390942702538402494359236086411616016612313546305086385009944818034560652396031664334724654008529827731868570948910981985477222655680702093365814846490147986534756007804416782319869442089796885286548534024148240957358436967354745098130813566730272389373848939650206288338579922395219825170938069696283735842575888803800273834971220261513682294905393325856206535297406245054551609152116508238483268066104441393059449187439542617391834725095404237402544123677227046863878314173673963567602154536593867484207114943294803340803651365010970114248279367879370385779501452096059050109676089517085980998079317304843750494772608015205905898924180555203793628463382043322181424088930796041582410792135682058390560610424946193713144185193736612659445100289335200209653127566691258063656937154319036839438353527992658322478257315755889143397889777768945781452782786497551755730420611188935777462066192031118189573933987246285448168532693680625373017097820490364252400364132923221276155682773859528106287692439599151898098304051440356523687702846675194320865885768171767442043738948707517383605153997019394878965365122231020212112949048358752645655071202797451677129168870440546024746023040079444346762806744637101613677989726226910570674375577816139580846513316407605302500608894386561493053795158132502994364282831334356335228084924486281909165288673314852669210119885314903262036204048658775543151038725228920480097172420639581019671040709817950823883430612256322128687860070708334785916783196040610550680585358687658568381539550987450071654961416225902864570543435342716505980840139018348356669755457350502118942918879126839369567640803962662703047794107878502772342604684574991944164267678783807217572313668448007493159462564152179005584807054001159469082922464589800341961621517340832503511198694679842325167286810642154674245216504462038065071622037250451415013745622562060483587213518710322583496056509733497785466817857268088426877781133107594161643800423373049480042224834527691048364062449840659475658047603061055505953722372938886054252638186965425501406309545142132746355416700997473324277521925098194935166894284059765790676257041101266458306582859546959042056432168815883553824385996203752890028706581517496461507546839728396524925931839454565555619587505299545237563021834394666430477039615350407921410857589240687749260615392702938892231637494205063694717766633327169397032416713206305148999627836222892729878146963271800521115480549960958585453227780609122038211506330587998681257262498246722640295938582378533553876229046599025564879815387524421821602642568592256781756934035169967377194421867219847377269361261459710664041355531784643560931912329747724142565627863759515174562917506643288917952192026147551503648647084236190721723211774721507215820898419870355822246646953636815794691576318253415668811577612619496346796056130204926737409789057172340223931665737979406671665566017028145240034311829344450426699042427136056785436284274783420951613117013716950465278070025240658292929669393637435739675429763520935144432378705710125468218376281371993072406610024885033394063255748734410984226199957784780677731480707149338571269300914100304077276497007211085397059485245859848326134717660709456828960362744480021085791444206189360204544594569079851941203075310950663517114698621470077699227531635301186601144248465371253895376926791849773305315814497522501580073909234124059269932659150876131382260863954192825991224126726585690157772585761291252739691401187833653462549617562547872669529724498281636369155038276943960908279928206065154863124819741594661531302946582501329002568100045703377588221759726251237209448171610161787735877920493834072772005963007494759705422109097866514762940478422562663213899496396717161705314745412887283468814942031270302705765452164947368091709923828314862916431148322827431297798854808783786280344159742048947707397229830570957092166292533708254936912245579005511035427912339073179791875147351878056277527875907511443226266433569142662786597765934226453121528896756134278927658000178090490546484144315047129232889519290820539847458331973339036233221342064705479720716143751047150151686736491840133861697442105016940820008074383328517859105817707426893239209802734492596095450354081231724534768517667130881887759365876740451760098415634080068398752098744352516199325864855511865332774932541945124970484389644492961156705692858629458253019729752291334519224561317399708693534880573058595994620169934429829548807030298034262799518836123236636790618963548274810699715138431750872745130289996173414803555118116139772804810346259011241026018953609879991083688023870280361751526943496167611351004952627620212562702503557376831497064147004724412046367339529440856756574939648962721596714565363168741500317100366025956123336366548504174984289172915429354411599108149407175548332298007645943988233867012876493101864763242431569741270004057387506071311984253128562459535006190291881676055003625290034696728165982332687354126986101077937208470519236415948541349430752673577814384786694937212392036464229141868848586418542046342047526874297769450520644092888012514258550036678028711196943284383699978526183620169922457339168843545408952592285141125548241179497524870108648200092158964602938800822509559874684549266940243481451955822302053350537488054420130039500956266433460671841489620464499250617711123096982379367106115680634558089411516212953242173171989956187793138446661034151976959853337175727489675577605773963077204962715776568758477112351133063617101841627359182594636617844258481019362035888258983851658547712580427032143178732869476553888344856618940523473152388547777169572311274599048923280225464131748528957102576707956609998916301342100347134448085111171797382382149456738766386478048496097109674896499249121693169640617609182052821372741085005746431765798453715075124635500964450640153308968384415434756971285139149365739333595118827608344505588916588774024968684592914551165917256777478031356939427756683714175002677746872699983766982196938105118379811938365514327450621146762587259147119864806826639012756613708522296304343388396647333053719793894299770826431851221100934698657569229178459480105345290098950843133973298097890123504052931361191200519639032183367579287097108030220944275103392793362206200252312540856988693208138872403986888540843622801032521033287413758415259403400680936105272335978386438227866169825685874404309396872892680715845804661904448288347521026322585189712621612431064153300916720322630860479325988879049894465638435064534571020588980060655850177752404739626258522619652785499270432064352373759454982121163555335555363427981473807003544011418016888392256818490028197912302508306527176660218328379861306370874675100531796119323814319001563249109458046528726902408115980612296169086495976549932413549008282773714396978403127080212386325837717442877186385232421014777909392873649748007541182693521229587618658603820239594206301642427599362719059403477256016872129730250890892159672347124438367057857565402868948657628748592815445658920948051822992328115559427280280409418479700588272052561791716091256242360484065242260419653009633479726374879991058648725944173681497729209647985355706804861596948066972545433963406350310039417189795902976587835755632091039009588569239583616892128807531524159667587304944995968570995529346293049692487376575432340935272671223076279506370695145081649772509129723830931004819935143269419757847019924539570225682262287098461316272987147005364048299239604926707873417546558815187895053670194397478854100067833872824305519017447109379727618141406167333274356230100554604745776419718030687566584024270062813781411538604670380029961824180061682000627414968504643033867410085031612131281985680970508184789566844515870183179377643021370624876574166996567981365056044577911092487703154980111120696506929416021520715603820531842374889511360645603531825934550509708415845232964215417163886938440791304106536544962766002496926381861357007938097966442557618584990415243933021055563105275593805809936450767979852164259648412964845691727746860036099324596547465201236700956887155012729247807997677307314442918571581834344732317535879399668920865791414359337997981830189409463465317072662989427428047610473957672854851889585542867029879235669422896458763324922396065068745468939455301942505501140779698853061096345637480337163631336222631494267680473062815163492320051477043719618306658139838350434659603040287045984920707900167312182830773139517755932853321675862990773363566194554039247575657382859922010051348709870500395514238898105459201823894523392285785493713762225067657822531903694043660319027315545387394110203843598619668694421873834102614983539697936352129987288441428851277442316290439789475415094779852602669067382735806063592648751459165431393866142534015096357312918389230743940782658651584930295110653109490168221297966981667335427085730615552704029806170241504328770040093196254529654592416889733218558132717937886134812636087646649852830278460382487976240174248649471792609289585888194925656132972331180163650249033773064551912259522247921790189058679401962638020731559562406709711627565513110327849697236013935564121899015650926556393587053017935013941017620189879157244994798855983850122379068106501288899955399930289008781911049565574064686055671640003869404830377768735998677637093972240051219369393567136456509320665573974246986816910722131011283864771673990385507216774492191872661167076962757743505987123199362348318229031941332054070207920823746781621498843406450643532079061358335426313697261959872185541194669777775289740417537695894219157480019347452211155971262399302561397737436195285802333179997498400120463798009825627171391605539368507200124802493058453231858222148141198136978599312882874266966300422190515023345461528701927219121080240334397763378214739147188189930240173126217277952930505067957347667837675769003201058251801241299075943468203696014527289918676828265444579504457933694259594955889558161404282189491488093503551968954947385781627029314371478652642269236244758992442762717163048323347882446447365433162033857595471991078830299082453361206832902243904609402237818196474368208547646585267251615553713848536465689253225901128025153443183880110704480154972780834911918918128973983206344621712834018396596661331645260705658452391723110580243874410551302588689164708012266476963953540249028609127209462752377307755284596514169790434553860388976178500824694808336973628816523077334187089413423679396567731058628935127674559301471061023594409181869943588589848322789519496960783899529772505157672119974783580243575507147359752032873238553636826397718827265574955844850379580774044730822439141723008137459156988590591884727546576253792547978750138373607877996797939217151722885116278865107213155171621978546731287660827026150078679638738413219409220447885079342852551785419676353911541936077466826231102231864069387974264813162445013386495258952515174355906170428707899622480023240632699093434717911859624601498275443299827780779568281053228097788545421740090149412056103452869725597090184538926481271469892616582744202621776269751259700756147327675346838613128470617753349747588691883826696105415127257439644417540244956508858186711921743209187287555410438979181768986157032064042124176961715370122209613922882889222463428497673875436634019859504011496143142254941887207723429306494117546959449174059174988472053969594683374004828651626707077080521540978843215628649374631884756977869836842395387625652268060584773111307398810514568227275209332654679957892905649618685542653882745028107787704933726670310350361943871302026521007378451853044752525571497750782031418340202990165563897611586796818339653161921822384967343605616170086358605214942872066868871960924439153085514103222479048373608881261385034496504352158594047015466152702373902453109648293246660904225192511485309770161253850612560068663186661525495269250487587230873162018131622939011489242632400832974989662763067621037673807979728399960604082456820553071923214952279854784308975174442317915798154671855625620087129440486208021500403297625658987741064301568194131946088924180601475283255424752972929131900555938398509734903564433347511184359990484003995489539906903156547677232989658952375071227332507827924361087933049326256397328553129536489352539004033947427320939298838249405101818943750534844857271046772031942743034380527017973141526413042852365536381032597397855484038615824885917084237254221570610461694833181993575061084180608012532347501722225464716891513048916892380365683451002107316361041044627500195545227362856205961453161797806220857127671719941247054036735352171883587198821634997620682423914708806560292398142629006371972106408334266573973849687740860994294205367975252373251285089012230489776177164174503341389950272837594501795101894728190833050070992251446392100118303745903276794359837788638566606138313215571591743638162524124154437727950923619104161578630664673612081727845801378718345607324570066008299360553576828612032609468996700969452785271643044299208312387026905807637697695036340602265307669108605149304038407363125523316019616849025622395211524122910613692179010850292854739999813209588569770918501034073151890095338630720395222401347360520773117769354810012308425958168226929166565728955201583733365841443339426727170368112968307948038596816481973172895237972474803403402708989681018534555507828972521771108039141960166039212642682990318908006026354748667697657642153075698205625771342464042625562080588037063180140833344010303060496376977345597021253644830091531738891966534010491499700353537831073634587828866562485023475179954058653941466881051176274673634374820335544766866343627329937978815981273246033959227646279987143885236019649026524632779426029316073201067297583924446948680142809692315407624393815018893397361727986689629368121546163128682314865789806150306142967974577419727087579679997731810295383031575787754855492495317325535117945769717736130524481738289792101255779207892754132670486702873198283307375551953025518615929991194423815706647842240283337135948554812483561974882857995526558416148043929422922031918558409512142455763243940289205128408828121568206985222216360060530629046958331846083797523864090763984823779846955773431849809528111788428774944206848773961821245490026930208699858429899101672204686462266661955889959542148596087890426906466961698957056429352333099472627105019267003874926313710212189567587157625097976218174870323523044102215523156223710945250349694320142031009784092986986134455246270289981630374723372022721540028136677668997363975958899461250358866016977367484297360254716980001061634735889148353412488660146782302322483565806409144332191845135255887862638516935194374326323396900580031042541405904645274117589305593502757495074536644434762023998038180341303538842362098039450274834803058680619825254207294500560996140975734304169697274846704757078830147669196563236914515149337855268566463642585702117666201226139768492541443598898869505175515094789287526385765048862616773747786073752929248500492381639390134286265508463691830200371495882222612216415624406031445122225709067095495693466268595016126225900486494107092709672776825781386105466152461265307514310090136392406267064694915735407777865520067313279281768558820810640007646943317452533622374848903930593788543469094254942197914744245898061149011218670252472456237497767817034798485107818956463675788567453094250294674128611069242449451156067471359131633581268403836454190394701022517697768745693046717003880281838873751018394614942304299703092548154174339519727710340186198229942057701502084827283633770189844368602042004981006186444550148716269192643368296302449321449876389050004174399590511455903469105615307695765923732706346350644386676036613808335847581729110908282307548661768383442570585693654085200694444894589697340684081229259255596166281911708451417688631055194036061898664872712441760873320632119019308859049062039313359503443729766843408562098609190198398543321616288430881303088964546176683975228915879216280188806620863259497538093260871874748141593151790404584569571865989993781655495222197166267985317263007062940358336991224897349342864474969446223549833775249023214724442155669611344302896307545718357045417468506177695627170523241189759752017282234508808779726389664994836899122191625557930195922980275709194560990965563660987633854300060649818532728189320221022976640109373022132438937413609978606752329829774316363923695082850443859338594428431984045528483757584878272845760177467693989560970580297150806525844115391003163052422861553880426086108197850642931422809387051405568593939078688590045916147282289301512139622258842722737800252452124266373632909544231323278801551944863313401146531671173108847655376451609704348000628706719385522966697344976108061105312791629914034427576897516080681892160899300977601344333976708037870025041647353967026861045991032917051726954312731720868099533601031386035365115131367420635394682844178305847609486013646613272826194262385629424703686243516285466741662788571063142308868088477132817966685725590065779554404721135063694390323684243101655457018327324091335241848861686439364822083035786161521323038089456599958396839775099158898340225927595375547024245186799647820284536743895661718523055811503313845468179701577605352932892071465091774922060889480670546664122670673080019954598703031843214112337684857136916031637003111397746678336813235949768746132850023839495755800785518579724781735199888867557740893746766752053509899396325106839765976327156909147955014759450235577045576556300140556476739941338814254224921999714213025401627836913788279461154987382351546235057390002086627281109115635202800744773941880035121053145364191517883972980190640631090769180013253673317708180525862431946039822532560140426230572515165225760713889603222282960748875006819651094571206070320883633632077717692295471228384942123059811048517035084641183111746490920629510758510450349610098954825725067958176609260842957317181918214660450794766691539624371545930827552230836636651149481084402690527254250860837152607632057040670612643467166228287818391996472956776422091346732150670628315564836125155874502490171648718186340092102718365126889750069141455503811144498440044846759544243239176816030824214999900991856439397767778821396026262407018270531911889933380441133055220952345485822851968131467172903279071546971760270035749200429583256846861875151009321004390221880507859841945612702912042630456928932870005959772983116500700258212650422839213738221092471629396899520194285454098306242241167043609065321936485655206579313393097830293361939589105683761010983311592335596478427483608907958072224647820739838108318578408057759039774411000669724265737522132046189846518489072507908058470050779713214262255857579828249611441652889048279509797090138223542720983567852567692947807497686453532306476318174743165952467880559771743165280436756136076180800164240042740826210950942249094001815843648121298965256521253521988229673049542298258217623772006669700636253455500744767145883778564332730817549940872725667104253034335792670860215839631119469900643030564748231104561683013004103965184651125198441050587489348964747461585928681962777097181066367774953702603570273332308252577023504787876186815412802913078120856441534467412118391240621806177865354830630086041006200158361278323559171960494807773918802646322459285956205167424403841740212844701625679034198243074413722821307222357422548810735812697457325201738132655011906742452505287363327396754305732348480068265137487585612521868535748379091864743382943473668563882660247955460742227005615612737980817936048480196862214591408206841334339350002208567419618420546126407603724144416629516574014958855413288267681679645907531353915114311658677852760409069601860184937544744175896761798053840448921658434620961426995109334456044828024534289517148922785521788558042819568107150298549763308085464742050738804669531352308853475244912580434892018835070335686934782348644167991420985301140740207857497162331857095643157531481911826280880618324549090949704924047355731504979778535747699327124026995222326865436165065992948407869492725426072907113796471750233099638196815037181292132599046586655556567058398618617105588954648477055671206626342078664920216961134015843146322070821646944854551274427165067680546913405806025388281031994470185843943509827249034220311799214472583787023246266283496444927710378679073315711626508364486295791653209619164729993486624469008969153766321486677393527077644274556419187204691932899756141245006409098202307010192567106371044237417755006225886372738337716419966732861247887445344384320306330518107920293647544116588679656665928323373032392498654293333805932149668608023773406148468097573883954899675181613324882193697841775734143967804449166331724576687263764380949632290882261275336378864702627412317328477625097224473025169818227205246919727973087395171501134626516883008314310788372534588909851243328848959461955709479689841936821091884118298574098106548042081295677326904153535554985254260827693250052543825638947647569308823842085778659991729858048676300720231796358343751557618155262497873410790962494632122051514795895167681760113278532577780934624566015146836889013964299695529165128699291695232870968526340940418350758224097932432877861670614837196117485240988751078988473058422037507794494589857377865381514088374518020816913133875100971483754547791897741185022021014875671588550823477086013864105903275997320298261563759850550025008306589508618972547867930337711121895269419161288178589209434055997683442638596327438561340784272703789306051325383017726423860926452059573205004925457042943984791697824518842956627524326534866047322118683308369077435406977874074182382734484336730822659256184935657574952132359837059921080129057196323876883260375284653075530822083398340849867318710571149644005844942156028170744655190243664010360247391165058970484475319800824799641183971867943681934921312418747665077506823262953621581353325872452460532633628011130929185210903402108637508294267513924810460217488701749959102965273567653219256317911122003668704322421359169882148808468535669440256930890320585619649162425124409952058966294331702884286532806381634795366761988359722962288289419627196748448047475349284825383744163037050771201134767960632497273532037707241720502634795107081982718625335740728606481418239845541770061563655484911580166243921652551554630938921710619779726960179015384003859890477349285064012103857645081444545521440413422973428434666113843765768090895522922987756872996868826948978778164281258658806643138444006914501502827350578086913499126942399356091485798318153344735829333882404756689952616200070429850388457990803197141446399645585322388678882330081846546633643936188219016955465288238972049164095499890295368001124757899530703605246068493528720379734185329578966532177057006813745567032624189477727765365113083836657403387024156579790371593068919905907587938028972129970015405229284828731294765782246140090450077081569430684180111682506591946938352883398882200461596591715645286067908789859645739744361703513755147179117737843460363397339642155972278791679396992595508321884659683933360297677340098817264472807467040547734937539440372820950741391776431380274293904947499700899008499666176632637867390922794210983392952763767987179088963381131032617175597611049939260776571378026472661535814624400639205714611792869256259943118850112308443745185265875457953999896906120306401804286960260920504686416181805906095349041594575460923829699892348480200730445419833007645351112325628157825657587217399661578116221805908139019691583275762135151682038993148837927053474240559950729883907000482580929589989012210987193883546533504244592229850474189557261740673934123578920381124463092666470372029286787107640776202521780325834976933055696999087514355211917536796273459644030331865768112547170747184235126656816381127433158989566120764781709930890634464438821904091901435610879486030598703763623048188636308162699543570876367853665984269307931894858770131514083666747384063817337598480078561475033525714876792815888698869362928502781628637786759141862750413036255262065946804532693152537508258889564827057733214114781414746625335411566145451222848005537373957214830659170770632503430710550526898681516979928527653955046960754883300934658763557927595140618931295476762289143035014227942246475228829935965235228890891972001846763841505886337102813211253204719297134701760974191684042133609532658773394010578575228393396283326968127112881684063439764932393041033058599644860662225880508874252891199401089174746234873076886651477380256661363974675344440230556337695475918230965787069004789104210099431911946218032414609417521752815453201979075541660122179971947427304091925868986813944110967076391811896898329799476940592713883194237659342090759359727560620154211634631721252522355795799139044923206767716847217188187966348445978810726678826979211541182446352483753552422944105900427021687207564613915234250658416921191636908304939358857922894654125953641723029258962653177619968417361009333303594360034108174978059920908739039469654927469590795869336521213254780731451306500528752548204986792930083485483637942991001032070989860600367300245163124234798856723920193629618499695373973848993411134549990396768062873579853299685335571348698947447004928237520858741754537261525054453465553247953921046393565498570900856949668192414191232481742598009119889381244140868114908450199714978286979002059165246520121462648125265257678630550528833870248881418114885206804053392822745592463072632350615554191105931300956039167389640204603781451278369698330545875202346373392002804610641366744250149447515428982579548934448054126293622223668810380162456345896257227166051343949365792781467921841201901319384391455859917007182293909540896440394141905404820716543555307301269650478153719981748933720782734599964753113761196570294241311757578048321476224277013429394077275262270691447581685645003154969950755628648410855876924565599577622073478037145110612667769896011477571200435219954405748170156354516216340661035229911439549734080479321756716323265297754410301296723405801589976133085528834060012490008337007630184657791739050266464917900079430354559788726822881150539806653892509547936139974174997185213122162814030360480823187023149915997199606570228436217581172476547875000324583748758322057085725691610721335075922815719291564896742336342676599655156598190782733630360811579782599517322200950620142517840958740656576229343300254345224121728781925517151605988972153008373362113773338967377138994278636155057302043969185413073517529436449138660632420837044254484374771221026561719703763961945343792553829828233668537175462440621193989511528666310924347402201267086662771768724148678840295373341632707512816823416025662400727693262590538056530081146700061718682516718610133239300285113772133025433804207894060758348165891388685444210093358938476389845344530045114156193247016047751534196659235658100960988218433661257251044283627300997917519455670266448773393073734963113142304007811964728955910805192716606763921061319447526457009037237567788756540600632411812749289665284844497658102219147298768850644506499236991750638966214828577801638767600163281026199788033480950988000236993513665695630033217759177623835502297975548056435484719271752316466683639736781232383331093443684005576405882527233534355698923231733787522571786989691172636447761896770037262356985469349813438288389828539700575087618112313111123141221746327541688313757157255881418324718290487768099190338945037707401220831432922402092769374120785033215661231195004196547064604339947515853908251593709525368397871540475945853381786682103734502130688960458296226587091461830766785198828864582613663126966113080751649037232690800907347638694544878981950278911052200565165831860377875906552015337406390393660869871747771004775249696539388733382686189600855820118614442336066282571981986515706393827920447275711938074915988969171812934768909637326999246750628866176255697083192322192692850868816948464275041801004092242877454157503659811265258815252307294726517901169402098317670072481654361808530221278075726426068073671839916296660174724964334617851518894026166079596860760478279041256311530740474966134675999921423125891587756459178539600043106067792366817249032711047268915659448082835341610636394510290118026495097150248134269201776636401303051012220333771266755996401446740779305038202125913990412029647140165076877463573242826501400356988288788185617510577268274856044624474622699832811135196854797572414813135938495599864198278353856339100411105827035559112262405458518967824990080311317199352316943470052594982019563568335984253876130030156012179801453176855704545782126795344597835922665591863753528104545579478036887144744333549190273642611854000728199090314114988446108776157777965853065639260003007234590206431557150222229098730854252821734932256774705904592201875166966550586115171742659814889262727066636397662564756295437238744426694721722686761618775178884111093644658264721434501788972738495995141695687566756793663893201449555552259404103136962409546366274880573577365701253656014764970347524803171429859867164966374270601138526588914178167709498522264413374086801559915491306819164740547321660361621928012258762279658081710299096560754465497550293406044628153822367549633767186838449446980295780315280258828339434757452731042484611513749524410771360348134347802688359024061874073346899660606653650739173615713088846814081977014821329150632860039633045194630492840933024502582699000341547083166240245168688313148600096406268948284983193104707488691893812001556258992995688563052065328285984991241913122215802111754306725742361999932429801260712906842311083784272663938236551568187327379338183640631391999875400482526091863085061235077883771813964608688272533086830055960921555677260923637138914765448837052520330845582470182317800367452384191024351128112323749905611495087157314175995934487754973780659848752540818445306315398998637679570700280088405166983944490665239892135146298600575105182200797027672515428112975197760959470543536810944980074224943966002943582030117291750220311863364105440052685175500180919705547448418615226357485693194639795240574685196927737098329318230849925006752018303600614153858046373537328886879271227780504091783512694494385963326685918285324633743050586806201175539261546137504918025025426309815317167939213548474142892948581900557706431242325230264591461422022130389342931729713859884537787608486757304515134918143972944436811828186277249563807324049734480406053200242761298589037902897140048672372267396013712152625917709854320346080651501839438831839751941176705776553517602861984461593839876455880114352234446645980848939900648089993341385418879792597120066212297894554016313130090649957145280744716052007478570758026111982744370598539015811307686994228178302725621707743978471721911152429523768585872995734459009393117731704506765146720689303216377805922969918968902059680852440633324141015188406532942355734900013997034886152351013452730510297204925135246625344371357465183871063010548428233278565900225332243721271392478107402256155873098197048165935857629552996442840234932373356816416523339237453538426975628568151498691843678385634618530105694768509310661695333768364737648929343684356490390247015570516313329307614142157378246444730815099668327765415695494253941567434114162414395208856019515849451003390514674152476079287586973718370223141301068702916521370318417701076022628369575405137645664590796723533841958917141365910882492320807502079363363660743450530365041095642334723726871882150348698886445040538358215940262991610413046940515594636382777492005954454537457604204544081499062827391316752215540278686140061028378696169623535663372458016595404862074353618023574312295399835597549451013783196753280068404438038442254855525696908504013910102523516953511055586148718857165842594087747149351923792957119868530369307048200882297865119518790908280288701894045501381839850079078949858021244403558180462077932495771781154280564949427120371714439653509665218809506130773502862312117063595344829772003745512859027996491958740681722148570940609096922884212504859046587525365006989668407549449813205885881877157280473685353740602916257801516430340758969424584165307018506740763262566155397827926276203867809674886881833937370195940620940101823945834732354468566489104604650892907908551680195848274328023983463984090414595531567740037290528764619306605004641348395426290951349752437450418380543359794127439186901644797569812451325071022337640487204736003271935974128102284064136468855618924772795309147466578041220295248208075001614166084206099141658953831622858733862262063672733081252206010887114314701155454309795145587440306415117502744943273754610178319998335284067468419039140595230677048814948648880352776574743855834914442000020093142712390185556974660138483454236522201421702596463049809245460896546669515156971631816530795782139632239183358121129749818618459420815256698221326933366009471202704248332018801215309151099170359904433034618837290694131074045719489652587810155456335625172400915864791693748524815521946150173226822851156193392380174526425296027285815534147254756736066417686462132675840847127166734110266807311931758069725517911951836382502714942991730138601197991237071020629045024077453283791839956946071602468864983779068546746427915299468383605250263501408594083749721222772883702241343500946153807985612292576215693822934705183381822273255558022416830154110871810897880981349186727169967971038082579380973569238071660953101731436207133964072225491707588497545676753757292981531119618452936286663031690596174040414285901914465421875353686975933835096703973651080577607335395495784168759754675221431696210144108705364015926640505084200408266371755075286223178688394727664239123912273917680542727981637727911314202804406905811036461355270372512005790416368480408600056868235799826820375817950570718954536189766688801314927930788618905015721150468116384167532224414554596251217518495290277948438343575604606190522875595726628251205348625502119490966063575388213775503306895028465217107484557284279045013743249940149115796034675517575345402608649962786008464001886962839531877803987361809160847240580277400554497822972421154788004963224185006431484739195212413967379927935438146010199629172993201652510292162784533237517873572260872011493035524262656078433763823456827506770435507797703503619483463881465817314640284120024015988728448397824516028782380551196979599030060225633361789223165501099594331216920584340477963238752822629079433220379748570154672405987373522419656899204392453773993737113294715674293973650229548929031737887283120503177363069517976115067156355379561238331297759188998408446556439334193261584987077953035513373007326586095428976240121321481185559250801500727806208678867490527287047550719574211369321544465627218823897105964571883700075919472608125210209261335226294261109239413803281954209809753435358732681846482039682065667049416871701437678069419912083667628247608278771680853703716102762430428770526366750818736408353175261906774891812069875336936641920634641660886824075397495144986984575267308452529449572662542006314988522221994566977448435456722490664277298694808526916108788090874752759862634899295473381038652118402552665682092659381692254408168905555377475910386996180608607599806270279814672957520179559314486344009706369218494697482223049494445089797440724464329289444756788799514719110271110152387462504074715081428285532226003734444593031219783834599840490064742247667684994451804652304688809635188026966876107860334328885408145556360728640862344439364943873348510847100186182610940984562031666495172831874434191551679590447799271474288799360691165257933935593601828410724971839427943038954672656105768105801651121407545512265144691376007511866561309457116448072887596270287056035279121138108143737310707616674421761672706308073593421330287033358874185983545123007152315697402745463029460272987034796418571685295278350557786564695626900206440907395006032413826613399104579304298094843031077432459343646709107344890108998020461667394535436489121320387210594645923151722628202807999601901289548277072054266980658630776723234244124578163035283227684164547626654273366694437416751320697425515443114965930796387151140593376666203894934008764406151261441798369140272205907563391486687358533333097906380477770111681368340262633700719564432595288195182497773515525311975482682122763452030296089660908944903659609209776689381963452394086116986898864167446067223258702494308613485017516860617805427346803641302669879847113679791865204508182857845889831893314595194997904350674185245647974201569423482039871631280767859646529877150792345655585326984056793047018611838982040701653063307516006532018691173914125068614557119245720112700352559368023226409643812302346590283146818973098810317173125068291294636305255680038974922124846886835268437809367982008605367588335104945118152622220512717746856685131914380970277920478722433437687693020459878951904481588111087484270952989911776893792981211063424205505928798789884630437040760155483251730359135015704119333293806146954333004495469268353686132829814472117698878045820191699397497997952657398015725873069822309411298556189820201082504640320223645717462565749112459655870211616551996280391306794461120206216212289086791007938445404108065897639261735979385132932822927061718120620271571741799343982436313173534081088741310643040997946184402542994708451954612527713752205885040431028077933877328958542606534318450617150130565385174242752650044487603403108009999652501924343689484858434086456190620890827650740194895962694460408375761007944991902089671527445575751202708337787099808455944332010126629233680373025276241893014642677229378691381896996540617459580214816942844769148442610452171326675160634017425840270724106195873217693661050371331843284007390955052595081083740474221720370073274100839416448406186883333969347148936097827054139653228423565384375528422625353429873972260396017742435949508177863188030334455201850270137594446831450229736794947671042819866612755243589975165865538430549876545950514492740840360985000785115261426229144023896750427050089699904981680047600663082266567881182577020013019449551783934625352707864557755114763130369426460976794559282207132175495096892698002918342592336753906235880954026368185645403967417326491062445340177744624056242476245536530297362062245951182726108140159340568143228928174440637655689708559344594108688408069509613461597347659106566581014135036374752414136863424878648871287583278575102013436375358552436048890972974575475074047211762074001216134241743493408486697321796779456918069838339193400984809417898117268632969410235352885842128994560083320627184515472117829138911240176857607505032524768728874123808431243960533634480635505198383177545157803830352129812109318948289034273661937906701693164645541326866660936360035743231304087757839952650777385931550496852074433813420691138458242067078934497884381341644350903111896712682719649817583708014705184828697346057338690637910911343258742354821134166949836782558021724747246924317627816183939258768195239387686363207128784143604667333051787871585555944212829619857905102028137092590017306878718321347191213048838804288466949043155311328157988408252089434020871465195073645274228196285099855630375030371129420387918765843764175781420009355629998829766106202169472474388536596662269684496852181473331225529108233422678953342190723424604336705877693712353643731603813163048279884919692379664770687947918273520828362662150568527572233673722320984920886280367011064025075798314020711669086582244932718429471995918585982668752303657336131766849985359442554138511298297907663488447694218823269377743819376291895272269640100075452152241351852434428851477804039639006077645290856518771049630401373496863281467535513664531088898552535851892416297685957835024615411788388543923174366593043182380219772051502308117411798208631251171390811776749997974683583946919724761706258654047490612373218336309302899647859449083775120673821758103942292315726476765282969617719455731851968032935336872034322712912773745586083364541238457478085798340234138134393649304674106855602000083128799266086752483761726858997981268776957559405384905554801952015326492312974529550573224117804337708202074664031206228623731379325054752463711092671421474369099693133743570764978332850287655802988625559432523789943751234145819546689463348003280649400313941417771916926445237941754891317125597141147559140341683196915811546216920865389918932993471568656019673224309885661406369752369825273699255072013903920917570859151257632592392221430304131252198376381567037581715005019318681619433371681172525473015707362607823199997942980334550773239456687909720769895692621124674450575455606928850324132584055268789741819084674790954183845532312967310270052761386948098948489976265406834651956693396923097933854047130879303719286934914346200721513333027595531735133537195821125025943225606108930467435715981187432093987882505561755161168418606519273146262662264278187006670889523691224292684164571676010352711159383874501242870384015239825895614433093484818181366998050283616053865139546357120887199565961637633853964247300143336930068888107878569146643746390607301781287935048097734018018640345764028661371063609393667566780790553802839653830409052256630398257818083673185039808549584826125813886481089753626937497520105529739989932404125276100224343854190800351810059388720419842647142203716679449368350186307453292120203594626078902231775455514678312092103759055045147122073971210190519726299813017298535526499655796845077583751591463420984798797682325472980848366112943742201703310964959308199293608641471434407715044865510564298644052861715963005318463969937417044816709424234547127590509743735380654303600771594611495149260305019293865407865754294520851588284407617313220516432272747382631985090255530850074733069226352225101480966299772555618595473641345385621121370967583368099582867890245429870908966404243182412726270375143932924033114883655566471402906554034555748080246545992219896819762524568522690815119412993141900124148217374280576449700371346560261903146428581454065054905922157822876783278258896060604100957743839338708589938268796692138550720455766048144132655291156079498320930939747635758942615981598336255851286085546007637292979892938077928190809579127309270528324985627012412659997851222254333538316515979863593093995137751368740627435654116531772845687583252807851570007650790447209036829390753079005660137745427869447396365621037015620252951557812166657430118068560778296102843909527661138636928883730096675841096946052279759507995587296714814682917665716180225097620062732329892819023148237251903159188407317431739428407045298179844226200790597583796710642186545329212454228923571103474133506087065842625033407386747577737864619964674847416985980588207191683917028110209022090485285333685641746858269684447416751507352685720836327107972604344846273942408105254841118821523893313544072822441711442273614014041901755683243543183634129485491414274439342578075851761568321794992777038645931860516212942782786677873094368105237470084850067918835277819134748578771764553636717827002347792829928113100878067212827763564639351620555755094831777764290996427590245394322446574948241473374246892326985492004057444204683531201464241466532617531816650162995650047262078963481260856889883553632798473255194887589242144608902889163518166682443247487981726285342340946159703707297949847900458183676001669213946647504484385828162939569080134107505648802514258542057210186982325762495684928797112365820057583401226844449731532433452015878525583073405912570009867925847804119968066291390481052775341812220263711220950513974373131099878956879747570175023665013347344957236668017653706004087552764756282672203475281124437747617387294008033168264650473510932949156625109431370370360703894137044137233584916598904396799505194107401614061117665146946880885129390111782210188424383506560146505457337850641928863992844421491747125265027677320201269372251723956934425817976319361953085604244000949499052294055365254788169529107414856617612915334557032070668755326281600869984669709754186207350785869432470291379668464951258494853394337678021756239552542270365033269928771050327297042054196606538096623508041759137270042788605793051513727351914089968004453499755802929248472924837349013674637798484410371464765298094005611991065290040250908617901025048539827796425703089210658876350849474311382898869035420002232486999897288829284785831599621644965283068414241200514731248307400228742623868976731684036180681507802887944282812403855991783277135814100174310657821408468098102354875949253541645528139357336486603859206004490726374812771372281469229845835997018342124586225554014694234560669067353450310881552724962184208062535591522502391314078346777358747174850653562233750883639732366192532815978160956115305809819283057147726674830790826412944374332953410316059308504447702493131276412001283224461306453806843912908589794167472261895760916736736672665426408068167361106775632316369608476987239165617060067292371546948534801949119664222526004719048993605658299822041809317422962528013281521686619984762724401847066631907075485368345168262168785555165803518484508089505479641974978052386900462600004587395082841019382960448689787077230828249651317962336571018739878344741068942199855824250908247101514841813652337935681203576707853992175993157898544377003807205460112614136821964581605888614602040857098634439310711382662459887524570658044295641108518858279421548545836558895645828449176167130983866002832825250091974494554118176569360416041721342810258171524082226696330961786655555665879473969178798641813961004653672513646783366170469508021839755101330682744982915472316780880423234259694043897424101970859533360923279396356327216422030815696082667977036603536475979397292701977137554149381592818919325887689326543813648196901032931840836343641405548247160002512382062137977237609042068351928333236761148779956565987953916854497711538831620823918974103962122768744472832649993120134998993398832519520221223010471916855461121597876737805597254663939440921018972869659184702113740426108865973842116767247232133978375325575357253886471241415874041247703907688586985735832958154383410705184458300386580082512953937465815367003984240743833195968152847162480920734947788836885083172153586956528095891953976330418850124721934346749268359376011588310975283994205791417595396861245411558840809851070924744406024257968122350046181158026647371064891412380302356099735681963544295958296572491524060183935805844227802585506198656234765252090364058550561702925621723148957948264467324592014441755044927034008228937124463919578333558993587488344933818775683028731063702629961064663697792740123220328427042464019173963065917147260354344334513074439473074525612832481454574525949556917070899044604324233319901992874833556827753129767736552819297444117831333197085925171128196005290618655969407041180947787220887104032040939949314793692315301288703385825089886044458141761753032384207464680099281409734087984505571147775719227057617225955150133150412173631683966325688170535241101638694229463424304781130130367181944115418822723849922629908311183562093240604060959950369011009440128718054325396626753663780221840508027111339438488852544009811420715751443058345003614918124414646163066933996133900845254809634742918965119262138793640230867755223860687404194205469060322486251106506488639275183752962437732494524899164546319671574457510773136071356649287594227094148870594770528826548794728255725093405010689898247316413115416292487353330263076837082639551153260448367447796438753739423934473913318189551798702906906870026957107779465752725278238269093224308558660058831905594397596833656655954558079438610965294098650793638155160276978259030204034820029363549852077349467596994293742192361099948306614784614663815595239449793803420740854293657089890324010010488561919791570575994329745867605580055312371234513057580696674789577633386617181138476051684654392251634134226941943972960308863505897362823054891353262668733270806593640172860137463492362093664037925644157812327956035388362646978401174227036044892353989366448692417006721786245817202813828714856278039471150307146290961970636217223772612968826839158706906095428072700565764163366831067141024553588877357058896887987115566064345332371991395017669773850393786148193834251245368672949221163016303045669645283905152779195327329398920045223757724833303189229759483435786571692461943734490956053400002739443431355870671817314478364137469450470031112121005810069011550603674172516445360787665009168949793533437414800932937663831485635098135912255244316090342139432824108169881772650616529868296408783077795735663592875064584492122770042473523902119520323069621677918221167037492248943759114689541254316061217153268771095711948957573579006962696305942418873535472901788139611234273540194994387879702011639072999690270629381302668956304199848923399446215544642375278447132539248616017778896515498677661844188656803231784232508714470702559286357987699115366828780108942752548464826579569770260796459217446998507440127098964005339051935625713962845312080895787971001941678957922653829626705825247494158179520523643056023065473548816485027769837452561295294665699966742304641767857360468255831746900595146712438425875890561857508836461683903336753137462977768381315601494345740215782532921203078282740286153984871141192206195775460174231490249600043079547484589587539227098771573140313882263415850706386969500108579389503981649421264780141671951491186430071849245369367346273836288382293390059745968220296917106705601015747197325078067712222825561269030324009378522394270933902314362109222195640481215332160249708215931607275588545940555129857152557999262500823420003200588787697476439342274567602053585427195286464667226905810474431570101958743027529415002049277334208738173994720986873405555445131947570845408282510742753562192552990607550216943575936248081089565438597175714649020296933279867526564317873851515255525496344587664789643751254650866305094331284976192774001385995710706908192175820628123845291420758533253669984986537751712535511190625888126020893253832817129272070989560873669305044257092205091824530844451830090000222550079531653292512809618694869396654318146629799512525042895973237729698366226734774659169948377803575714758662983655390503731687477642358432190764659681652246077574761517327720956906874800257573850880126817383369234720753330397504613622200424142388121340555882507179361763102451577955944725493086457596745134763689102392106474193813032110373024871623260381599087352568937234806930486604491543345389844406334579713235835799247563587284001339981898629688815647045325350813189995556665662794818660235962011081078013935040866732491723465481752092194324596807307426784138483255109748930634501342443176855899466424454838510376438541170146177705200926249748704977217350992032026543331052930527124364204656870979888489002531487482692381034002571352647376403301281200372898766208976923540839728475546360784179662977102573181727964495673086010235386993365055867730917774355992625859029304345486998701751690052070383757940318116579710402730602619967348574970686708789031854646722010188826149984060009095384851577095906127109174933445555313689164034005597377074861319616438823280975356787358778966977582525102563820050872877831747663938281781525242588343106710346501360564258041206026939142070945904071893340836499837182868619008822147994693303771526618274598912284748209363558305460913494777052945953188265585416496760461303284533707695578415183749105319174106638030947216843716833249127684005443437347158262839157795958555985228950800749725649382012476304490208518440741726645448210647999471127389450650203925795819768851129255397563113386463798504462917784791241186931128176707279768397200733224854875091196680175419400131675135265153680151727976557476433141360238042605689438054937281936273701213098497214397906555952641987207184726741316121899895696626472912638204797737536907113031632692281941667746621184722903965878427308808100978327769185700001451506918295753100281677436759049300430627757887042190969387519797183992112595605505471193073944327961693341557386303112126238797523112301200714926753417058175488361457651905099664112169291265292948550633386678077648642830441302760995436086933800415244179901749429960127382050015536103393603209042434395706757696968235646860151305342939916442093423134553128834146647356077665285516246394583241493259115472735273135432894671185763890163701608610900294749193812949993099212075664652403578937680728683884515059865839323920717588712298218737349636481138758129916889044892311121201803860833128771051186213951042803450254611768973579708054453316714447588293416605046642340116710051444124725957135870133957619015680618608825786552703744369309986708821579867377635401820761560215896445400839235266878642158849041129260636179664902573976387234594862742834797830879656475493177213270234775135759390764631826405573610989572682751099343699025021997371814241592367555086103106745909834701930286249039479988863454555749486048291467478858441988015678924938124338324002671725302030818271875037956399333510022550714155167487639561264529293883905366722118416709798849204220218131442210733901957547651733560135517067629643706987075664364600582382138451632840638402110909032860004993192691374736044312429809270345890079479479048652882603698715801743495150554304972297819149638447507442093217687605240317140031131460666207815169788175371943247064247097875005341015299985725731007701525023663300171406332388044599042761931276092194594989336662692132812912980112839031982367943524446318663380131636950094934371546421371631520110977783801552905573987634223144235259785434863038677528688948769665589811290675680323417523235739423755279698691641892324058117526943363279164669489532887403469757738428880394459160991822229813927470858643933521529822517025016343841633643810457291585185689928955148074591595939584503417236161057012693862732963268870876842608281772496504937769717947020618310810550311629026050080312041184280069180537148586309861166698809496220835081397416196254554364784666484810694692288222399582149462751460140733099290250799572621948435096826811232871593918772711497153648414088331719297159497831633093842784275567981290242283133069659462476126698933798904896703209729936369040447250952863772730999705560804021424815776085400877185428188933140735102223180747875896724404856106510287399312791040434509983208649719947872149841821136870554478196067553737760492542859443951828878850209071044097996898239838795559387916984188557813976328888125837999173199236943768091604497917297186689940529683996505215750439853069564144501082642257685475080150778731125843585811721155947864483439860220920216212823881173023311754809499279323553707788916277460151114630382031678260967641987532649180053514828586814286801180188492980051570163925002317064115492218367268907135541879684877306630993165733301074003852083960883591345918064211320906578252360580500075341258640947959853928760464062323296535424239475758589957113108959356723261461197122635758579484426485552572940145458483093699438996539705965580922631187420147670595784460670054228949895299885689012134820434839436913662937691040806077436928459251498522953182936043278371465891740019875481825832176161260556676351395908759347686573817142305615870224601892736714055644131778737324681825443526968466761491818115679146927521354372081354478006751431988520734047892177548541843851604411316263707771145438634214332420638195497285256964854094626027668428185447723562189107952419808881261097153579270861494958111959845936448155560253405324027075087349173665415966666936772124124449389065237993327108401670601335290889938887155555526060232978815209480498557971106852777731463013528047243209150860559053009666235461091509377137476528835647879863612013847568464852451891384104189666559949420501067355094416902274875390005391305404725232267568503351214143668440089425725625892901759472146824450797577356514687046261743685829234194390862099349395348313380759848368343328689870223456045916658062491252473835508070431918524841324669335553896968568479031032959628628097720832461700798940002539735278662875796322579493509037474649765496968677886065527748359116834923804890206848028484979619728764382289924102323285414813010256999285776184225390162205400596048613999355812516043224428272153278701621945727769393402530204667209450791622788978697818912308992840398566667443876677337096319549148305599198376700086880468269150853114420358983733239900575277249570093727672542312872956921152417993860327517213970060622097093599093973986878170671521367309776063813754699140504358694767342198226396307630233259939597082735770655889579500543798157437443802329738415888197671383798876758194805032390658440528419009931368312689891481766695050880912139773208719255082443215073945478950897397774545275265210679171693077858431574828253570668750168191533783038583545480700396863573335730597695001515569434329054989700191912605457785355249588956535993782046010310656315095174772420956493687986499981156139866992567039849042201753626620857502349151989994551785723653265300938502017608129353305180591847108478299587643623207389539455660952886322883128363053482159884943514963707603748962096131744438496875759557291206436143497542286303659412455663509957604673076171445775463233881681855507662845609764375288748790002215119602028894523939437881916720440770721675595342832893467207905023029828041986236989538386789868660706709829423037948583448864434458954247799877787827184917629689398478656603610016785396163618183044460481291298516681712944781083380370714678364536041755349810983157189499373410566868753511637370391494448205457600196478946764232223601370836661904377523531250445733466876355324310709081122643673313205571326245013596466161505931954815270834644907285566681941341339817848508563850217044234289563650876249545046700992387614736632436525129347987024728546655545363985352345084664887510026710058272946105124577735823013955590870114127573836199170242086242990519642714386014899673378138781231927785346404816690109765647786014073784816562761954159231482218746610864987816088710527334577047952404895258645548118761060433749917105693018661217203099732454672577273306815547546683365340863824100131677331596735301197327697185099751641930938306944034600477546628055756620456321883016159277628961518329614923617129058960707688990994720761555491292112304887035889477895791406659544151319915750105494454958310249460404288999510524258593046605791057780921074026619358431738558875108991188668891624913836888732021086145422740369059293243435674656036396260189958784113122964911662770269886047575218566200021687643377905704223689245600701261367917994109421803271007232309161441269635544757255062412766129872397129363792948885396944918446725958117781268783217121214107712568801622475092220664893139236020242086241901475402913968608465018456750401728813242866752819928439823360616621246589471596076273573097986242527177112464732388745215993825798935652837534183437747473057926548525311214420004816682936406328899193689389103887763335833851286080639527061223302443400271450137755590663772539387660137343850136318860189689957133180664820920952939481114461437355650571000834352588916074087524401950717608952320473654445139774939856335184988384430326884274714458081665535734360966517677889926830784360576591510616372336459943794778056536145686484050662629325882303846857028409670495631950143699198732726901824309385499912314156888021354616331238428130501204175032183690297481788766695772031342722778853884421651895797448655180807304513450772874542058442253464590616788698663189990604593758374832338406609328029555817512742942597873430046544540485298513895437203946885986958604747162151698028552675720153374142659827520810507775232659819274083509092555724382588617386155856350274312402705521882315517535716427503529722429237519698096418918846601375555033786441172769682388191392845766850557378863747251423862415069333790125065404523844470297542948448822402344209789023450342938558133590340937724898284829676383181364609818651469493292864812278510809113000119044651607693815645706828054040381541372779692318592727017164761982707252752177434911144353793897315773713694072516868741792444409190783798816290328077084644075083588418419208875684349450463217930485097502222269604665957101184602790239243933301416430633022427634091142135932673955099439641340047162625861926265373830599811792812441205502218678343234840537294564581206959149598757198878941871825030597713808128118142969994616091542758053728066784381206640272073891103286048763849966796622203831816411239338332743961211932038525720313943622109747442996758150838149588309906004819774953301999913568810950256476619948351278098512918935366874370354462101594227449135050150510518237285419373285777152726176919207284012106303869863240610359467244167356358528998647585039513180107953303832541578567384487302043404965904330325740895754624902426705716548071825411290536783473726473225534402777067255704031416191046475576123875508142100414698269896468941801731555120198552642244892396812586767043575327757475581496461297040351104345273095009965842695645365548611194944060663662785501272988729607626249413997682197779254089247661423977688058959142796719669311361977325631481398986111025064404181538196020579988430472172118439164934144851257164552889042180859122738250859242336568910740709182928218405111893085156701891640143317152386424931528718782295730830867201521071021397449368982849972431232232853020242988094676592320502205603034384885923395683727709939979282320914326074787517645224071134315133780903582131281629340698940127451870120169995923210259271726858179031698532758548391744414060663467429070695290727357275800318971354249323217138277846225175530935014158546048256141647103709990959028387329416077837895953129131451276290359111618536508539664343192753395225131656231720408540714885030927244878752756552592593784042795899590214815205852273403051670166292539494651507579417799583748718109411017643872382143654079015154827797130836345350216769262239097130447126975763961322680042921422973665599939058697232479979795301979484888262068198613894565161399849777403941547379473831741352566290368383824522254927251315560119490765774220349300545218824629283644503581683500987006587586478083258958776767357419221605084169638229497853575415892370625345656847417763334552117724845203771902774215545366860032417366767941074370627434915637992368186242070113049991046598807877564385109397139791438371443602128973479468279356107873367466738937206295425379764091790703047008942145824851854731671347816052525529583707893598141812636455126040486180893045190825668148271565164168804237029439602982311054445182246038071748838072174866800681136002508541055535042476610633845717851491147602537364350436469221091102920700349695375655810626921210347050239914483684510786632227453979267271437900122053548057040785158502082143892916035532083748729012238348450846926056792107790805592567826970978509046462351953759869668701700611786822852992369964378706440345849134012222693974711542611395718645306755099709590093238137789183700903406137680556134614611122655964940866306888681600403244318029455676658110609298578119543865036771546206611005113090200335684452506595671554917860170008269791122472440375006577528945889420237425969791615837300834120261291646252593946468429004406625146467458636685408212923383995170901714466949310114336237065421352492256471099361392834699637421628571851122566889581815882247272444686616003190776736208338057322565975496231471130363672871162516822969139995434881760301196102165509763644148348167839832642064675870886814319523574045856804872947705239420156681794953590528154822667753164964529288365252244158105002146939588816859577185352252846303584449833092015583661205675867055907151563144435850868647750296790486994396610543925729328286812636935422984591698903806098778484479071874967335920223212038145601126857540919095010575655757087740765218749585326770134362761309119679964497383847562680197947743472402526956902286592216983533238383397772837658708143434349264283127004161083791583805130283348509872062499286521807005340721167212313853956238490253623282396334367553597907604482122212557043786765696884300156901837598410293109040317327258468367084655485552160456092062411387931649827229065170402767448310638647075361166600317946506642768965486259123707664799010031153254370614320995167843242066164973788805378978825969651668308481931777892501302754336903562902512342814090647356449254893410288393706369459121643721071790262086730767207116560275615572074861320801823202126022074654739600806733802633752596486438224354848414528937489811203888952430232119441176879863590249037772973729424738639949934029882507832230649139042621646258497830711042656271394231189541640283448908186448414310009969316267719541482688049738580365954435325009617504842973832009928693623575735173184964402506200965108339335110190658726164692290548294509568068547974180143120858159624493207449206939986678682594948388920219318089425554440483325744331513455541399599782608981613786914982303743419604200417294022523179054858724283118135807618971200423255887664688155987922178023137200321127924892364580109592402935367125995287820233203809839306069406503647302518774454881855797503599873946040877408041470255519846590196862821671510220315052077103860415288623513950085721255840835770415186075028076071198316618420102686417959574642346105361842321437908962735171066877971391027594670635932188259516414582264364749918046323183835134420234164257349087591611827773326592762555794991367277912280687662673554961670710846953062827057226702031761660849507056517825607911938261756106002959711268890143396092425406725718960842619552702655718549399694965179928057727760494170245953926557532876077963572697699030151858146614925277619338843366035828297270087175471560229450425902056514606647722655531027102427974534504108602249089952534254732463343874028857136754218960214758560174777709560820613776220286043088925231125244929338799230207055606512331484153127369389140560245313608215280901106467911463150412737558329836910193266249144565456385434685532543242275795605405212628624978462796043916520070753403657203782258697315801401691409431528581408665510526677167880317675387462021118818253169057116042289898003081850365889941423333345827745087535738253690356982844308969832920251872312722609298146878120272593837850260747065456846009573247116595501099145677044179643771616543132008881163685100421235786020696320239158470683593114564718670798159241133719920247972994018987319966421678828375413444476995610198005341281351419271147084260914259387428170937597139082319918575202725256566097032247060477173236357465733788679609904708538498222007358736112530628386708965963730558424289644990510832051803090742268998749367983979021390512826616341479795188328253389881446072855263575289037114610652914927999375633861882083900219129969262743075401230195261817928436171057739311296671801256535947736055501217193561417435571508781493586496154798182048687228905758779203067061499240651826720247738031269297689560390624099287248967222143349579175222131227370577275313654058523104823898248257132751428737194123650098127467764102271733092368992863703206761123922424845651650476315813904355718865573165586026485548616873247210641255631866234866549843872990400105715453460481499836398202131606056106108455231889471183090181281981982750460563162871717183021533774386287225840366106069073185224268812491086049624332598273676875780954532864785744434610202183182587563639329541606071243357425015983854575971023377246440029837370790247211601998423786452489960047509042279145822331708693533625484203552499332708963003394526312530720297722083859847399823079569002789787142374800997161782676288524445267197072387759896642870025656417148191640602064359244981897003013844447218271737685019716929313460780932256571179727423988317903492586605608553641711181299690304939514776320414845576139313926831235598636682299232619128362553772692774905910535425910882021772451702115558137572892507791343353218790652665738989863331955166497054408751662067448715652652175973630421159485694232033996142052425831524557439341860296203482517580148721529387990174252726385624152477679950118059443278462475953189432341122703131350267392722720664425383459338972554359549864400393089827515847167481292231137068388836223824149934970745461583611465490751590085428546171547561757742581788922396612648303683972385491863728728745367960929698428819026156483038909827712064965442808199066691466687077693000765198138922844326223053098353557673880429069948772982269151204545692885580290871178603537046401695153753337817436680849537936705255141686566512619179989490695510554612207766668799322841103504387434625673851606282399196228576327835750385970018339109597990368910278381681187728964240555423079235076269065497654293912912289302263797494041914827000308611029684836923223583008826787834755945972440189146303108152726533518926698839106845334813399920314908393618965291860126554202217740904832605341655190081960021061497346020444160676645674474530182806649862452863667894867461727989732373024708627425080374571568735452491539549970506946369094412122074880050774745753898097470473393437451520091558631956030437287102844172993399807894075541998790118744990480856160937488469071069610431724793399998751875522442964260343298211236916540306123232149635619962522589965511730621369591140497703735592702240624566787076105882085761383372154183710810565206929129684379102795963395314061437629641076940724227919792441790048836025608266390119851089302188206085126717973651323088196863570880364528648620835461603675199799230783480804587668661765547941479778025154394053400454962783373950733814666002723990023688874595264983021238228532946980598882194260310903775805062102633374754253663794895211147782285850472219142920117686635923129550552204368711760345650248305426106898135264830323824683977276228071604361260143990158822520639801235018296934471833034651044332976589055111284271556710281568077704232890105978035043478619650533452536955836512313747607566642210858546074069182267359751933568219067994844766371592843150161100845359776881602222547193547761315393634542835047944782731752907208228628693231852759311306668912213332502561156058683886534981559007613870298018888848434370294294712768161902249046559614807374419813494163734806141244506907730352080865904200015132818085557411830944459144059728603371643629345770674877619001848063666668786879963778179485372180845093031518257599912703893392244294160141546682477964924671602777939740042396696203520790351558435806058041026811099981154966814735176521493323417726904373328121157106598444675824502165266791886147383939314329183347016971240568338939231563458729338985750562858707580849177938256260485636917050754323422788916257591415837901165004219590247122025488132049601250109786577777169764164504271679872528923484306948131285485278507856871686659774112220500936113909821355403827742751826825354351275275662058089920943920504633569080691115479626580254001103041439591924064578795980130658008673278328156011301894965208380154695484981732397265460879176277861666422575259321187062782524091827724614842570811280897338107876462212192033488662601796337010962226721001349921953809461355132537705902940382295100664471436053579294400505016713761776436045137569939432411053387451196420589598194750484236665034436240760063583604514021389057712719053281759985783294591162950137841211596161349653571855194490078569902749381252571543793023742750057701041541218820869179485187126417774780116837896200326393565107600389022471943312908422499594203239428746252083279707697188858319117979071335751830797180000336231320142260693189388136102789695438721278160679649800528476584707454102750588998650076647489957019856841089668555312922654136291055254382354970701412769094821201320257194344300655639591810814397800258088483423823913763285177137762070731304962925136227071553211109502379224334462621466697648514549130366190390761831460116575225420058199374390423974188165157116943993135864501742050030771919898056945288927961165580386217430750763694748857848600737248663176611973058089053641094882011157621728137408302684970415955968502260321326891752132091409991112447931922295172949829291496610427768038602237358675908496022812591395752029932170539923257871301044571478412371538204847444252223211228518953349412056654993318517537944942368921648087184363480207783491763849168658491884847778255969704767814474188424855255072093445054722900347525300803398543621356140198596142710144379431735223996328434109365031331054333042643578971709124914404807678714033603691618400391695107847039245334127381591593682378997894868456731409852800619952320894339854200918910005236811572136092856186933811633113969720719520353601160610456484018858977215420937430007005376385994680665717890809233368220760365004947947951796349565447021998924506526210684248122064487177928668438899610583236167850751278955388122721577427395177476802259821488469455544273071468512498222971609465717303880451824371356279557740609565660428198473817714638409592727436801586787163543902225060416191280165363946089183172985469804376018818059327793799760361449072711124354098756616182321196251795908937212306338758577892847126093844928568539172218803108579004033537542238127408200063872872810656675892273604232035541822970156494647856548242586702086100167225976917104615042569181732491326407700875984770627222385307047648095408766304101034337789814762668254211269485640132843554894192775428625839818315193369199424871841120209048337916556830321655627407021499822458324483124008803023139633584772477245448742277268580004623873638648968043041414954119430451786010652443291491273161576744348332731913447711093896210283940166153701894173381659524438281157219618109031407077301035960406943170263773225126588812098361658838068447494766064216525920382676080394378237725158321961771633169517778835604530379848615966778950858098698593102452667611011728847446651581785238279396623957772025849919406616705530988828333520737405843557730763541862801913654888150054352605040001231159704031374861198179594171936277570382458312042496587614132022244532676451243016347122560818754251941137613217425407851416222010771309826293621571287556195187268813366707360398951522386239698950144174654386596109748704215324975742885082707608375412269159605228523964894171609988192632700336534486043513431578063291879221121608207321579237089340519187274737894353022864940658482354728931662572417057235660317801018534805074172750852928855261016176573605074313081205607338587666031051664757677137066424204570298868822765732673220452162385444652138619340433195270058710174141691270290328076289936896721848708656527937295640254686149154478857341203753137946299754643574988649448583284777634856229815409262693923591768640534692803654070716237310101438467354379793699435563107305059976219033776399224107941451429891504852258355043279309826000191471974583062233647164694511960181433248308862900393258086473799226333151281554644399070403843630272493867093761567582156885168767175274210309818872621990594455338620125481728595375003608841764081075863269552244252853104734608434483827944115452103690290658265598667451582162735060620474707432418860055655288065142988325646194999712561752044286515597940533567039354617704516551826270523194814442745842477621427035321298659156303936195882441173012619426170655760312703380334606091815270203801865977999017937148389380753802353379122537107612748391609336411018146519884253015998608730837919205587153508640007218071322353881927533271420075283843389813933086716561017356148246774038856466191665122389398415551923661515391362495500320776308285516442640852076566839915365793658374421289924174147050306680897182763306939908556515643026140128105481807842840156141706211105354484881680137493000092805143276244547836334316059206699783163319801650196787686573648481175343663400324749260784688393384207509343352610176498260000839997788566053615382996927396354847217994063925949861562194529504761864283264420711897336091192427041277129315646982439556231023633001578738908094013922195500823228297613912131296608714722883259553242794422355652610961432806770062450273921963969516998694515078485633568861572588061663419726555676043980160629443749352071263659529857128272212642799311754596081203068036729186175936664008500823849385455116001903209880468275633837016655059320432017938429344072303491572751962760256525239984724324285577712718846821006509353271178097587177678585142903043473743459622230751039148182887933570267373096068014211831738240341554495897889799987463544955601543458760066063063318125947301217487811900043305139028189574873285396947365508307320304485908656339295712451885607781091935182015613115429306542585418888440584510332584104792651854758724587864951170190408010247437406327821063245804297853681508488676425682114603153480015706647994524320029632340452164024585784694891429228445572500597785270931357393500618359823533483171345132537611411460189121584629131011783693313846306163928407998580439597699400788345259406777768116264647372671780943861036467845614721052392818673090215165625139568418434947538407060504078654973765962490565728761834500782051318585676815931155765441256672431698146300510262416936075717187869666535174394946807294881045103621681030465685035621650276617188395584854765234980196538665738895771767540165821525359183968049275093884821352311367347492100198532765250330892694161402883188259739351515936055231998514729063636487985819157763644737504190354856509396265467585274307572675118165694938033748323215500171928426840840530275456175990260556210424411897373262098539034668300574629193397066947772840089058906702090349044995328837583100680429707535152567186122210057948454971397314441616182925469962199096377342477081739514529965042740344083329449593290812970871697541278861943517545090075116089526970791079509194662729310783477750920120319756669989982412487681872952582561410740701965927860240782289430696660094929707011458835402795260985710094520522008925407395197447074510745303814116359438124341443210547762299432115794411518104426782411339399102451507005026284155399051544391558255905316592854311750063079438210854329029634007092286457528711264093050550882136325203475277931655951033917666490811233750908535445577865454547538655342726594852063662514562602453134368798229122056651981650666621624365433975267623219099412747177496915798408472925932118867930764553318623444543194969321680404372090392431663691613768012515264245723635535780451443489772932241412100228403470282011029845882208328913266024452572501986014172202954273644305415310885123401441003923923920427455190101773292038618896669820939137853217827177465746886931510527071970390211607661099465749351418705860874678629993847348982353359752425679685440554154450146306463601518770761531045646835539574676201971557105515340177890535896266905649675877665833578430788682619338445839679078326172895907652655248246879169311529665764243354174890389049407118161676226128042883622679367943104717665108790579320405827168424359937102509714023851277501187514931952879931968684557355363099045094155932428251656401109732591437114080268751295899988092104390438410274908760897861240471176199477904861907610514692783831326156153610869782301728439378473532037604383165473854901939374297850043603675077118331906470990171969881289341939061450301616509470152837898998666804036347344776231699577769266273800453331914059144229853899353887509837523652392611757420215886047074696357758496885012689527065238072895029852444965596676265482627737588237508753172166560395309486772172918175196942039603437821918413103994918601092906724569882422791073964056380638184164384711704619604934036080121759179599650478696091723425189644274732593316298712684890380958480637503446951920768189766240196497167927938097824064047458613113488675971998914355762072289597256893806137833646739220196562022263959876208602148722562469340785247216224427473492445499397697121811898767587444350400400754117756633816736852054664901662269781306886467001522865746692239179965990465762425899729671507386533975225875533277936780677901045210127475652810609640735036222914657124125121233976346549785535710139351431891443544479384009039619242729225028427641681462239115307577217197274510030112588790805176091912978223926161330951437481210090980520467195009175619514902408485174329214269150107837787646460086166409870491823087253105656077327955529660073232472731856911482945533542924424850272122629587738060912265516843245009539375078523750169542611134039664743557563439230000345201267654392626925526774977470499044991709503651578763270986166084645362618151748040372792071082005347394692854672911594104231216961053681555289169465613243474955682027641288609475960599963006157966501098612466046288040415861072451720421685468583711798428816865994820130005659172001193212910126088681402751764581968025158709858432350736473862778430995881039564541538656102323291583807556702082979137750025149053657143958298588761557103213891841737692322418349467785241769746365794486354601854444699242226031450129737104429913461356918865860644448106500185394915255470063298711671537810712129358912538046115667641731738421576953194782040000783648651470829586621697164334306576337288194636694891073974341243775002188610905122296683555268136319817525476706242720136839130016112376560987547291802832055992762990798174857642314768280157606334029406595236324306765424165790055177149210113638030580860030259969209757757733158063647853888604119244643718939108854361375741961464081826279218267239809986980746122060197164598407541581515105245243104865017696430204611567720081603616474102614145232615031009210262097329022195874535684551919162267524543443954748698779646998068944615492943488889962524898620318591647613068260655885992165548633380811634685981959115521082993766100442003492207024711198015945204980994343362970488604199175806079099319984042466078581369129001674022319119838242458568075548703109916540410235209663995042758227745943695538951767021837104235277502812761121105399615199778466593427853898390702021420536788235319352692371976165672282364288165257697536395663369761075907517677343633136699906091845350708841957540177320713774106169447486637910204852547905675951866918496511058239938945893350189357733166166422616447590186353458487157398372757984266788195894522491574877248876719266978183409975116716214422821459143559197675899668477557355930504206290338229280942664490388087591111023295041755732323207957840700033250325103489116762216176244119300724248441686906820418968380749888279712835853141388124773029149908373462092062224635478292604433776022442932530232985629862473711353855373694026328826540855798001724786542675141559709378184282918162143182169004342832691689592764948064827831049140119407818583177264040958817774477845330130186092137058531696195165873709103014167712039202084197656801197066206440986742768656046622589398059247676792025956752579617757729135398168821311043099923990253559140347345479790973726066755992524745383404840189516325985319312574710199018654880060571865996396309595371395115893801304984709047730729326800491194452459335871576159033785111437415032878431550685319055243884787428096912787847426659819901984909978145635697396497139108368521415324209859377364915903268296668597704891900102041921610412764346653401904567522822155221392307385914938192514618370497580247374391976874402729948599000485343801382251818711981701433337423923976253362659408949712364386989918381948928550938853554577894307351043299713150226924039321092124266831638039996051461213399714826338447601620425715443042549434536284769401947048594040626623186970084085284591876976719388829912957623904938862286795545938246786151863202305449135878459926123794688854178988419590893930477593746943794020360763997253313354975079599313006710510348375598976609278524945307374527914503311130014395533901123637952322894606197658510243536109623689468315377160742442871840439220942831768407276024650417175184530585023102433777766869523338957745027590113151153150347287923357813016136349881000098833578723403270306251439990208576650576973216282788119578870162641791610782423319901759350667429592376038705702324727095107221548161538405309493177139228334281502318143403921813244484918448922487958568259724971496218225667709070559152323689243776003916395546819715817905327821783656093079085462028845420659646354020999727873278521369818200062434478027090775024513098295357845148854211746807882789668684703156628245119641003504450888606894016440277122134949522452530823238942958886846826555152795614294216904015546057118390114379593929925800505370582745295276738728355392470258071383389281587339793608843350812763021284774386086955943952155161298145246252136965795091516145452254230297519317266685613661780411742367382765160096467407031344534551173250217642001274398290196089560704845566575875604817507045446593106268564404405993527480342986907193199006039988202862062226954909358984479167921435842277772043663420774882815747842450173395008322375913113602853423529490626042474131701903972417655371016734080108144874617180074953581739641572558730027888996490879711906203620860531838061361636982465622811023378889682856422776993283000910765110105213708863850425118875638824589766980349128095822888827150083641474028506430524102471256256857506718926922857423021896972795793775130854795665922746312620825494653931595639451621112244188653513273523517948878079687213627693551086678067797692412465500765143198381950486906561474611360315487774049248192200695632631900895331541915665281808776918156671390244282979871185885826738077699818012198541432307321005476872909307682730289414099559374064125658369456305287799253824768844506928371282364428682602601838164026506454853385171186969406048196387396571197155538206733919878657494301857301881225518471341729578172802768612707443652115558839066033258290460470222884178692499970547145148179383472047064251017117491086991973585389809373161335367981481291175248079861315305306751542743986095845340434799004166614420967249481666703445803289921327655905307551981402948393825067671233183223944831951184706231046287114861143718337722852516920316976732695852083218830267513258020265599101490125606654955558845508546936924649093941098255411608247052734956082664338127196012963957340275970396177368162039344192595091231509953409921193365939833656977633212741648138533394760860617361849384419748807956832293983265250870963559592923719410876420147813372542478109166241401604980244688720011865076829195296478408607789377063277496815545622495095786275841033261797669703361790859033305838064347966275987642774772850264018678254018893130264906370134222342795089245359035510986452685497079521233839426964889357743217842603833547593032746616074359085967669422308276009743237041590921612298615409999790853679258893487920213439055671626234268322406687603489365443416931342240200171883346093590609790371413835847940952860845824099796002441136517515719579332718987913532698430572620222418010136152107074251444480481785276819325692911810349812600396557436806177630163585530550134736401961679774163541181456804697621077364745095585692196497016076831059679209990233503288830950140409989529271910948103767960629018093491960564665718969121543658575193054085370588964373244101247997563579137931189482168611247969930361612007532445055474301876604473395692380883995524042835312100115804926182064084781333768457173557542344304475751789366332903860576472422595460408901515186884775672649327415211757863332881378766350173660564025923704558318189630953232467041286519403392826793734830509580052872920586372612499937850280169718395135675067673785868985864690074103183305392673821328557881191047538202126645799982018655961280471529391807476168744661943617001630861214331288032979761349212030484554294407878369334930165960626831167616596220695816170623100512747950430831188101411882731723235443055966492080597970844168328996394645797145952171745570892507123990708262086818088347646160798184432794020760968023699557113874334640991744419527206025681417206313468612202629102512286214829785452304081206016133996157534218884685291517820554313689981225659583594679068970288775631269565153009420493625013595183239207320625143441060356024646738686025389142541666138396664068628797169869699137493984153930638192422326708171835975368965720459617981560035798475669682087629661611700723588706584528849457121002832663916100430645938572698103435357768085880036678686279138111690765142533947362506139049620398492812982598640160562726744499720485918647520484400925572168475362426454345184077843406876954994976227883636213135552004267137887007221055502388166349136952932333940959488427762911187987198570713077610303669523438518787223016627232164264347884707795723569683883084200039371840212377717952184811361247638097752834555516735750747968425578805083019207622545990470025438221970150709364610062206934213069165480671337842700041372636211333335926780850387418619086139143316890950085670243169781030774649973567487063852960190775395572860612280275694690263577688140959630409684756470445284477343528129465433475051999254401438200008146967957070357953692589511751703562992649384968465342727717053479960930353978976536218137331412773801451889332676410216407317737778656730786723830944641221773696653382849850076523566840203281416471396906462881386041934366609940195383728488276546153579546877799332275894213278451748391654018581004624197557967785872681412257938444095889041864755928290647341207454420670638921266963668015797878069192204278074678364084428509111304671347235357894845072602066152148964403462937575081137292029176161210674449420413579719448176645950646898358337746737323965039803199580650132126816875513740936485487312346268406617869070396861240337524671329992230676566768689125073417458280262653910454459238354282537924582402845377652582450134749356657564803340737879899789407469853800680090595533173453006572568036678997892450482690839615467977224077112383238712381563724103988711061800670033386383818930932668931530622040541106168003781666898827997162399500559454606831647583042762503124036911158127227090047935782416546921337414510475902854045473804522222756728422819798118744449129501715647291762370833480688504082683506558533605045430706929108237147999154266794439383787928126067856632814037521902861895189139010552746316323242110909127544969897235895648986145863030667741647330902054691122354030286739153603238049775678021209592857572646237769317436073486649821985157384672358888563300415630119386286707790496292700676258509742613159538763725167261233792452891241829648549165066822937848436466420431030916216210987358699329374745287696928424671664742355469108046004494101370491665976671416634877999710212365438785459846493796641084145227035440697379382075022597686991793970005131939852936333747659367056735214819750619164953711680238446640959405051328791074035393491982647861649233396190735678381053167413939452953681018619346977378734741583495933183101130654737425931468282818609835317196404801952788918031518857564430826906563738771402289217891624007869208805145966391514721590163224808406891397487907989773337533492905835777901835501877911632864880184554486577072570291902382238476180758081780390816891737427748098123752581242642005032441245354744622527743829168098763813916460383182491466945458248312108478269992296016805024656866558148157510689285566553861557224397086339645745376665303034112796508231709882788342630113861388656024264240313679169371728621579448765227925828595179871357530786605186451355910839252648769546354689830432799340975065533544111254882364903164776761161866351653235648301412079675822996506497089882562354727163625274065459855995917466568061593486299853317414643353456366117931636174562425539377091797936528300443920818690974772688724398217025538593022055947032983685336876423833978930880842464915195508413766174683429218161312065500364792903296673539827493716068587792673871089055022469505408931218367431365258536734848342938767295162441495668669799080746867839618735032368453632966356707477364813874791310949710207288971969876607394138459087230905005386115211925506177255675124066862382949389536535306512011431354507972525570040582472975770734281181438327595695037611159015821716838678446077250155538674369795578499170496725479935682083414046366630830195293955506788588520704408194618394225746422334137120663186994777866847954148115754472333267399549785860144899158118823408558309087787396944325636157165764788837561374622063685958286462480150559040291575331828788456624134326217047032269620251589833956434329317098307306789375427142447483972102796881985265767542250678211687628283432290758809098749428545512607488410611381194188649096615335051121590862184986703129373573106534250120222092487983762061029496112167435754347640475005855027149062253450123526497591847997985503704717156740684573635278740718920270558036733733810049883168662347062916280426985866896884375011839593831369991277542099338166905277331070024328562219939220042691901452299728119221585485802184854346579937797200792723392215550473907337840858960674428582903618031208801679700485396997076581303832565456907861684318181072923116479228476954825545783299410830196874087686128524697741835004932024992865289642590326057924218131461241722311304954887286881172999518572742630867280621098268397349746901154234458722172810336949241123167306190760480700675535639927660100063498032924171352360166495364017088039647120188400239054733375129294558093492056782833614159106592068554639319679736065421802786414438308114762899379706651305552112408877345461205080141316616475242877438877493313769882693173901863363349687677475720645391615293300271701900857657560638035560076342626127680458169650778490695104967703637274836312852005786332401881825836017383195833061278037684312363692956444968275866840231375221637582791011715401593721209784404240930463318324803649047418009074252784256227386737149861375478067730845242151934607051085615369470490236066154367281505653392310849534053901721460728841839212357936062941093139230418626819760816312220894981235375408820506401489125076400997531596834157264475400028012894665992807066252204317310386940655563064553340473598474820267804806703530444015071706759415273613829393576514688565720287960855491456091003266298792467899312084943896228093364746201579439128782230678985399778610403462127539777570745887526273534554522961275566780344298371616431304220612275623293108023029806321231008619535276352065810543705502050473059882078106865389754188557718260631057765226381837188817521318072425523590990476682593395938674978948742905408995402428902926196052928991712833859997170724332994279320572534482429910086211033191831818353766365401562780313679745585093951558411408907202182240863063695369813799849501330257570611148550927494940115635964836978515301379469121446662214721484501246517342708198940363133936017430837131246252767565417630836520982227458776173565250102925870391594232329492099357959281282850985743481381204692803078413217820481243934795658740569544040371673390654344184899030705856285476053270250518662512277597955321844066893980576457189448958946123493011042955065927885032392054605330704051250290365700917581249269278163022855899433046034489857298863113887124690371420247779343352575785664059657446535071807307470304606233868693998920587774833972825439174960482410537642941856467216317186367823641895711217953893633119936692193718123103905254838706097167843994250935373494958560856950599849563587864109444119184768987843725657184987495119204116579328899958181900278188067014693885190719035308070876928228320002592987575465381009052364458287816217020376949984768386462923319038683509623709799482850895347505954771307271515884203963582190471600370244014950603056154747571699213925177491824842236842935450906848308283399301087234125890358935563964739362036505377447098866336380744940804520432101520646385619295175962742578311425252838173988867987616405048613678316542260361203975947489861047051389812164774661699021843597911578792896339493568305706152138073199274682184486168375271424089810209889067658540655584302787200354909136469392767523342417859255041362494928829754312609737154792379120858099053525094439902342414456503560562339519274791725486663830093643922060311066765373750695692525379015073778807763601445191169233586909669678594093305553845113381517497032842867821217796667312618701772530821518726022261816112185699028296005763354534171488254243434925078497226906974725553066756935539400885868477261585916556540648845894648844017747744206136362056765296739707328789296574760522718795086069876535541205129071941515494675299171071134206823077299300096912823438137215419123886116370515041731801968304779126134560235505011002725188891973866237289759197653292306676003033165931343932275774681992618606233228362547948860011243781380015807929499565836341677067112780234129365119335833750511315749609434859009119283325041853142073856668345044792209465183421451628480464247247922520439950747154892011119325276192977907841660642164176835879371598100758549700440524899484625793076048278522068304538886904589081071639352584578297301577684022475918115259558947734045540291404356946635487448213602118890108266273756087148359202017434708064685865456974981757681409722000193124738053655322222562829424623641510062714221244474487668343339722288547391731190692032218321590469869791471390557600622562352959009961189112460212947843440318788106190533037353394552471506369383556896997162957966780895795079892540023213285065296799687336719235066905157257166341932429993318030368981830208215456213040228327613384106048436159011433748015755266049038716610918945227282274155208089917749538189403586900589571712547362632949973099026130430233628199024663301162435388012228521041932067670461959402872644369385417480116223188737590325685833951300659815521033931620521586660166703203559548531207610471469284088109641570364221704944486750782829198375434692542516435550931707861203399019244791674667167845741193964051978777718612219434041941025565701031268664202284356285903535539944492121737815570136026555030289611291499542339626465522941834012980720388789146745641444259244124458881565631126554770728619858033063801802705620826728679880717600788148814381672539695708769599401184333403631616414328824450001277827264789621882194009683287332060345117628374529136799896594679905807422640843719769661531672233868849568019963900986900797500031117795903644030873822958009129240987746105482339009063211967905582028467818704758603927427624828434468846617968092049044191129382400847369961944264233577194180964694295997687021065192223586884207003194158488185817269340379140384022668677071984395336084363827090688737994370063550820127439428236994302854164448034853723061859094786428791768742667673080380631283742423368507455990839609452693290399072260819268953770808062830204227597319248436462695978105663321832772998897440277424812825895044828851882691980875615403464369850208345720966587753687849591131744297543951513425260473694869608271936281769530612942987893665012144472105241072927140097770915257157011676952514614703787085107837722335780445100280305310316096732582560770087528436779739154743993296079038021143678428451515152799293132791879770496260403452605854144344511782903207461991783056876664823302853336058464034609533511954359863585726044505583595077142171157383649423209760217073867668536384458024027123853126989688825973804514397501897536224778640342750158065616713266654119585903900457438746086260446105260908724379105163909545507110469536413614393440663173260382299170007673366224005693362688501262940866430567688568824537159356497125999529272646274465906426323911671861066692243367353341800212323317937402566791250968108331939070745431152412384302169410657821944745693426965926313671026862757729088805319337602616120894440091868284178066429275036875213612215690943225006657200338524683396259357348622861972403254702538128444949694426516948463850675716696555431562149668440306731154017097324940036628325196926355285168663323257985348944480620197311293783545255567866131462603069898946948803323835348178862182113113929644526241579373815961860883445386120002143718852819403658629150439751089316287632556348205835750351159931501923222519294625811670118286131503890791639473328179310823580489399203091715944285880148849778705341364279620835039224196720353940974713795580513852311504893509571212973203737310837003345656897115299865578052798563781448351511640144139643132299516840318967841574331929735300586419416584505446584745665943485672445552187765726680811635671868631702454415187943335172353142419913666985232321790401329304846313523660116328183141943787760362779957755750564696104324222166507025819830921597455413019068966284865232598748533183833877964325756444212454415415049940407115265703954485325242869702092526923595365197664515138199436604378620425402732840200643900525744518632322221475481041584434071368643939501679974263160040552235509758573638365638702166300690434166242064902727585579237043897330186503524539340920414092458149327383204594108610043199344384413537168586917239250966903857596608496533699699375865946721992172706719078861584262658661717016899183814361270796776978787056181877294392179110416955106524601604630586143143815441890474704895402457770554626127369350018721178486494125636848457002023280243441206882360569884234580150539106631109869942741539367174323344269369422904711940147983335658272050245478397617044853691943014482511802716792180347334459081525958500916816206917696435598333244511705015149307281906676361659816380601686089522967650241787531215937887409706225761341233902319076598232317875556314046356929949800286765489699529476292865012017924412082657890184197999920278349704665685999587383663267372983665646899264840767604613510364537952209981004999277180540142690420705765340462365777875628047341318146886622321341505634352978956919776617953645938707146377296329118681687282245589347964979432941672985205215425112491864254789086303519049143256680564691316862191484131338778824854684817176316130332961023464171094716260800903634580987631865665891410336052961306505489729215340455784563850280697130798963597445983939315654853178714243698185595061423654513307122289148752958807869023770931904838445843404425287733001696243042504858130956120794499272780185141159684651358978072311108460139683906143420584785231832992777490804653051320854916112867953313298717289292838877657942107101819759326890408553601849068860191773293897405300682744342158709563366076162031685461036669364155302735467199023787866564593911809849705422356305115557457617436350624178104082321464830506663274305261084528490532610921276722232309778023737568298808395234045586782649972554118596164505618009025029925675018330165873696570538779476694289824614777360635629640433844378519150639365579445539634015500052051772018992737806658402339638417160755925650119118910006076533962441797687497749779830201342054615822755488911877091472908003860874318789303033844668904253653582261382726454238222666675079369613067376958877701709330361773349968973233330785307577944681270652050353195577818987994270923305218275414120994764174674025940348284033393936594754810459513480970870161843015107250494672060643835277493009008861905126812908934490430002951601065302361346768926755822217276414206317007302530368899736383612144302092879117165717462205796503245217316732972292277361522717950562179411015036644686006876667205050006049820895898437401043559597702544590780109854216776568753452026339627455701843041097986131836395948456986407283349160363427194164634877592917241155084265182474735585771014679133360809086603028986536077342226223784199593635015047277357870266702927738915144740151183107509560108020083432800018579861536412104947460528743875160401220305983421125429935487377095012204736124512441528188447449020400340314007739136941287260968983674488645086606922287104239738989498628649789728643836080332178647549998285787451893674035291494137130764613142666743712714654061753011953056981840684862668883347549106720743159804044065750064822486799338558484394568938274688425515061811342376835108633365766564020530096390159828215208679983049899221210356654553861473385351871449306038660550629133944099700025990476150696015345588457960430937895463590182283510138201160072061197199037247817062879216643536869851154960584998368786570839015496262021949628656436240376725165844187153330556147378551130847026157013579724492453388111372920871642838000751932120362080889737085343922010529403086763061626166432338351743576236312337810178816348509524560049566667293584505337965248045108194459876700493304312580142316605926592862254440204361410832311818691218605668018411247353080151267981562983071529902175944678514392792488136694136199995649980876209190269546023956949863716260491820407610063358651614784472680744198686256043445864819990752310868748879942296338155752071407240722511796686112635295300136585708378688634781382076034603291350091204180045242238310005282799680796747059780340185573449765491841861102207227825712050212021139043225384441776820039428603922197247372444905742059252863005517953255036063696027471898229398003966221331978005860925059449557957562732162543328556935709252299337157064233908950104571856065344278482649944784116928659752954612026546210496161829597392848583714871365729190763071983296337906732651318558795108754269441501980383408635953061710355429357045039027520378944873444124653097572065466990286659488849309519591295049463177037983108190741909153289620351563631251589662170150679656714155257645371847606643275913839666582288159164477031832870941499429834892161676479459715104714894178326336875291108564268693224338226654801658240478701631645703650529074341886044033516928684087039287452780865472733822962419477603891489569197226054457068484612510465702811825874484537163121473902804087136794683588135386510994302172418009961917609631729346081456611720405827379209191507895848133814225662079717401330683960819745138158422291193398308371003240031916145287322256821428031453931658871170300535447208235161010407326831658447938019516159440248218067165305634743578373900064120533106227566735550643087239093010585758738016889580428464899337038971779904560548838836425636220129496913530519357918857355981980420612783931991341402884127402544371419368691700679524162972089541073259164206521446824460346470417716900728059481651591394984216971647902245760183298288838828116824386608944373316515852490402486383584037525277838631118472949482628971082407973891355900165084100338298860395240332048515773248056332224809370028942740632877105704334222503010111907773680405445331890207187391344162153509623372982761893022033427827139828992073073995270173382182044838771180432682647287106686490475303519106753809393208824855705329514624076188643364643143944360228677041106282904309526410049514584372794504838776394224474814289653460033273488657117814649444445284102214181101348620840294380163435251007352714217679318252699393072969584119954410401905130928632242959067863776112960846063923112856028185399519601184546233648700546007059883174881564542538791844448053260165501358742264780744266276524202903453884099408645738713474648443042760618519401287348294889394487311351137441649583140708520048513719699056752290050200665048992489273157424445140724376661052665631901616987146327351373993794489116408461063041647974120841296632225062548373992440933049696723763773226522321110794183981237264555061811853080143236253738683789241327461043383084384287342802755511110620693115073438169521576645328530740461869178841207644622796509695536043159442454167560494514017914051955178399799937518218768832257774922325471766141703460622226378166380179480205612092104103302192468419463891793303974199201668048260897816473843866156894654734246643374220598190629303304048868672603654594984311711435830392152316580709406104158778899326165082720680092801309135652577933235372939621170779622463500153281808442499217785213761672219113855170261574875709797537523328442594454030490242211931153939071454640686618976429405902707035260419583698253880360476276916394416610748279630396571934671121760722582810445511424273069010056330744444903597526609535138292401790314386900956808352916518122942400991268463468683474823616433506898421342002615454066040771439752230915526612876916186415551883179591606094323318350580031976873107964808950247802250978623190231343330377039615370913889176197083611775659510108980530972580660459506616319334680949690317419927789148235111535375346145246509502365818802892688395359826333053662120832594853915049142671807828917241889579138729787423523744647933150688053595621310228843634109234438889548997878371571339528796755451172566914472872751066702934910384469095099674540535513254672317882618317788184697762488770478906859826826811488385342105152085890157194822309224428526028316955218144712877322473723583512266224868995378684001059508140190639160193993713149766399490030275167966796432065372866396506733842206043792811764819461353410504741036814308967532975205307758387558862892397944201353994397558969627903952136703783186256832168815921054065118476292690615272272579862760410208894200497159792959488494752669974542704822783587864639082091134587466184158597438248191054248982709824763437764174857127033831473012122804166899687809156001888142606827781698609885812578619085882997058172690347948741695113642118886557677796903014360647058212175530633316823974557848268075030265244032932561616571585733483699143038768092681312765726462067252208401682806069920068137237702367273824076497678801563517014151624109058421456667354830941970863674477069681173232856378942987744874195852664213641114150966153169938438157734487458182961401430210193652979037270278090026294438587301027210352427322800941077140084402284842576170171216128640188232159413236394659915777136686163803135685347577054030970858769036175524797138821581690472929362172998039776638909706009382456941538908176969828619487344821312123671789903125163211919117522429615709805574427572645107672326083745255840125040617998839287519384234618410276293545357854931970869272404100465966277863261824639949425672935098500055470721303993487181197856965816570581673697193309290554695328485219233276871234879312579137317557607442698388826923142928221444951458715619830630591803191555307747248945751144850516894569586254280983507776070152108321863645986446320274009506358463848212544397149358834170231903243335507356349758711971455651989766101795279478475804627023031763629415885475183393778029540631575441648860664470553624538828825646880396464330932078132109148519305344795580876827225916751919009235240958919928173863525640024648114086007093089609798094108953391552136327477449255930897026838226408406890077864128596937300541469958038452069579314633723160250300733777800266986161290844409782304932254024146300431984597109005601711398717065072170903210787050893609834835707635787623046048039306839285804962433084128904245564770944112462346873871467228837121464202420702276326913347350709858372051412697792790109123549244532439164874631166281454879984471237668489337952986515967549349456931001822775122947303067934286355679667292670935003360670880968841155145701112979141014283243232960304201370523943107612599833302762987855456071910252726819636415106830660176909272304187874430684917339930809401169489729145776404428132552558183169783995172046498885116438454053860662086379810148414281937975282255640068272936316807476315184618082042405602277839805658142958733587152849226283781616429032879294526168748112669976121866910727920309815927781558832592143644430761414866738803055666197427080070641300978884065669568213414950484407619714656174789977813817602229167305219805031211102779772671567791017991212539506851001444822550587556966365111611494484428696021255369685907353662147665890222102073952897784876655314353184264259237219727389195376883235264773541377274790809869811173430463399543266598615153780523094138854321624748774456665922999574594797907205642036889993630170099596823320159853469466151507378193415039891328006041114361067871419001270265029981742670717506105280830582470814169494236371472684995124253622803166290547292608972701026164749169406213093416745365134192198855522501459956200469716918760289096940806152200952458580849258909544307196380528896667468388236584089884644002285614999060528047064133571199720694074392404885185902719565810304671445704515446333464430115054840262870213113451875496865048352670672823781527415866232162050214429137548527988409769161984644831765120269449048412632701549978211761581567158969607201294426423058963725841676279013636985874764211616122867675328375345442368031614614292100066637102875232253030557087727964768716461737139941545450878055020228488727306524217432088928126813554946420948581864307908150012636192286418778569301812722027449478918287471487581041966798808857616587829730733178920492612106437215507567283505992885056276572575986208233918245564430598821478467959292201922370552879717776467208890496867815533328312879561168098297303914700737491783973457680730735802152632812777010189464143643986994239833892770766517217265906103748634159922073735660539441855435003405549348715447160169490781002482410808237736763016876930583323194016861709767658658283337906883853230541351682442981352334752367957910291821258687673944291411265660206617979874079756843755561124514665114092419603894404405043577402140407857128626087506878984665976834435940053421628513109748815050002769579592831139732572719315990352570925821966441355132349192771750781218052112235925938262559013417756804050958526666391160378914379891010042507727742677316205278117930475669055675950287389011486851468916383794509754445312992780496016713742749174869478626030402859499312381460095417681822172095665937646616282573164028472644755422870264533101613672654998041968315081051541682449514369840109590508162261256886987998444291031784543859203967268465900888472895487402659299492891274274021157366884677592598590548674454566089048908186207542307246339441956043625502984629917469833674138390983189398567056068607468829286534330447289315419828864030798859542164303012015309777468717774845636452194558366723849754024300493983385311542227574323500667680058379319599338011979442337935426621766593481616347231326237775478698623609750619554549979536433968736956889269532768332911252998153996249259168757107570506879353070059578816317238954920463626811642514832312867955145163594453510684735310521239166774207501501635270424841606739052998881373833546249519493381664403932862841160888384161996135368577811577692376492703836920656435962553849391615891820546552320146725960274577790908848430530422702714936169968175761225450685925375791379236997574764445676696534137874508699347909169191622086504898972202263800709727127521484037097080026421221182404345532066415895655522273151120529837127631004613164532694845024457786846443508554605586720550269887044566938047143418949580619582317234770438189899913840968638771979357434998729409645082377413379165389504305848788007529619977782269024461378764192057026605498083670958505766584663171245323642581687571690426512232650701417670278636990005860688666223063486411741642020957427318540099238510593345826994244889684800086628300104502637152694819790093646831404824076271584451420597200809957112427066177146312847348774552190034630029561484620249049931070570166985637478185542658249534569010356847143998227209224798292831972024903147431581648249567312975346369026760729931530393018466692123968002655739649014088444833686760186524781714592900669915578510614376769151268219060269654168020334115219103334209214809984329702012580651216657495722509576915821007651322707454655455708346961673743103477039245111011796065074103213260029582477413661594011546373279529572053969150788444230036674647001333684963376880030308661275848497314164290850436134408043130495452161146108891837330868468459394199993989410955958779294281713298763074229373366080844230903747657628995195744959757050942704188372803111892603977595041457101641965562326579685411144678587080691194579403896491663301463304126410147536158622250785610067004482764579688588859645714463015046313765417225926834204723018544256617346503292039027761173310125019650557456382842577281824719803341622148837942104847055823640194971868705560419264405880977118276876735043717039756461967895803985808124920865715973540199580168543301354684821931771692600084409518280164619708055529977538267477423661637437058109987186387814876338346229418510207588605042291655975691251090873587112911472612422432941527160390117579169884287818951719574233627064350172509040367709165523882282909274624404876100190772485765497448449815007406807118108377199713569240925532869256356659935991551361610211901067984884533477076062302267180130848770612259733514471416442622399536915515789221785228085436731629159305477742312902497696146881159306474282957282236002050788913267472277924429747579085827557480335538485865923974952341325608912646190077847397832047841223423554005991689646236641920506243889937692763690685568260903362451463699459267681584710084006191239368657881756945400223140168551204813429612640875078640867996725246046951354708827480673625963885559598714220440274972097209890303473144083000110959852200692662678538808110160183648673179344592410642674955027221465243806946111263871519395389351816464725218250737148379464900512135766592960537187231318755019971884181139327661383508474382206840079831277949162385060334301751835877991143248400522975414936733892687827318443395444163164981251549070688152372581970667837973494660053662492683025958587437239005467006907866250670841939045329675854257323024805110130690189217558574429596433706178663808619268055205344877477832388161122518340673549943956200236545531263161292545735863002002521893418621101451144392792732829205710456734914795887094633552300568845003306816209028017959577604431291479476030248212762239762657197926161146705755304768125919939404354184908603301524414901168272652374997892151167589045008250828006122561517944085098785077681390261747906435440183582904403630644707583747307960780618425061597230064738525158883264175354856299359736175520028645292716064479294715664610716689138459354568062620204549075598376300963918840679635435746675750194721869095636435095686059536824465945947812709545481276327394051548791850590930518256445723404766396488284897327255285317810504770907352876149284651445499581841763825928915470398690533925614618086502843307959287580250833514970697667387496315453625246807621475549588711765281874919398496418528034569990890367535639962750224693246226602510745213487851870111757007868676166945878764423366372479525641957957337397845267173637650980898932111444470997889243860468949186476736321557042989936130249912503782500795511254204788003347753493186999723380297007608651716012076799699106786103404245678726192438807688984064954712250257060255151397526612438733688316870445542813776394823408907377179016587690481776014621715687831225748609990292900744288173250989765855024214246473451759798362274677224245591508130041571881056232315791366091853481308953495393992437465088140039044985984587758692371682483696628751932206384197895318791875082468547408952324581681986338822033621212980212961038673922334588184698773242681591412254171552737990227782755080938064251666039518557790902447621843073724014867367325596166077387709228791100707979585407952852215372268377006115797452384183696541309678332186279558851013087899495942599992614882117212968156970634682839473062522493953139375729237181226941568068128196140530856363072168659054811100515177905527678984350496505241758826128624429769513280911067677053091046240004375908800259766470609809554306424780448808286081420048982699406859034526810747834261567005743277235110120646788793552581692023002923338569268898047612420166727949111972341708736193465613922971166019227534201314840378588028964448502463406139293033360189655299589895508454832948319332126681763294643061118179104062990030270625873023417084541917676435475499410346306405297032911501781255926393767006198505465073101543423779586934514458396535851053280073178929480875455233912173903378324174892087407715147652553088212646221166126684476302765562208675978352191270381057470010885464192172955948506882477000389488013898616351422297791085588070582430825857600204873865415387763710028041866399754156344153065359043542915113831848617324704908881989130852152787428256492437056318196126363869658452970158278574064676896966588953824432285349614694323464881809823945556956271252353319312076567411502186608531327903733250800340363228819458172492050005300255916228364018023078171236491584954279283127213641574901982593503874154329532686452256732237742329276840182897022412224029441258033344474090651018446548703902615607968337427725870326773931639725539578150997702577746603297565316120816330427780288148742820880723197593400010077478457734250775970002467121431704123730014301641489445379421266624119564755648407922732644124993058096575967445818541086335725583133033426626311741104057810616184054572749148337713123168120906296357623978533405830066342599451319593379715791504469088513047950972433815272892575369083363586842967534822887615424295624572362930589685178732065912341032302482238011112482619441596430836090925917732458371724691363479979357221282483971774201171937377437842454905281799163313885390776604518979714742707714880240336302637586582821551612410656803694810103799578480901699915805168718920192330766581357733000728665601233362682205640742356377662265805453342322001387939669483317766415086413280334142633175958717530851938414954465047158303452500205505074378653487168186672873474321432829117099725664317549828955743106127474914194026008220912148594911825114952027950955623483957293674410147316316557554550744180069333961756488061017607318995676916465740913469546792857284658684615371479055079017265300559234195922918579508245707622249283642667106774974082340465806433257736857333949849877042969423856736773104387408870485019110651352168254420773803624232751169349668511026109493920426480999378599701872011420499597455432159855430667347801462120563572730525542615590773449141378852142735089024371069520369418211282015894314517460722884007919087070046638489616794033372751714847948236151906116444775714340466108620756955460961716977209728567188034511287548581658930149785396139709079677021140390497006123154111857200225118780929022461291502628797213201088794027523387837758009988214852050302018684380845277144879143163517456452058282164795756609264025658549269249152666943721118320092068231488005177545463104933788519686316641064083918623663905469538635381080613887365441012823773915608461637243892471673682710960970564614942403625810606627533209406049610338114356495546344871481443435638365544142549955731269206446324562396073849752223940265454478345048700889211949543565013612886923564400130231720149983612726748797342569855231810902735904566570747178744760919824836507211181620862863583652450580991778341381300295388986983449713909864063654862156850212230702144611084361369780216477849987272262810754557226412426593836296138184235896421042886879043478645154409669169759752362553837075154414139487823631795958698672419729144566546816921983649616955624508612902699008735897510283154082892283124105765253685334289509827600770553575272032964833969721764130714487128995545060688300027264407729843483277497193502883028881688612388282213441851284117531283845887102223246329607296639443159715744291178663274333806397717460807380210788799674581344269240284919385091567746498363336726716304292557877247274621653835211805422481640422891683946178874274770280650626882952599569797383197369215762958153477639839504214165168240159366917764678078238595688568437478289198662327316997642270637766944812159449265695560889125151957168430498046126925765307537904121189187025915774581980928682619452347132005960975458707666296627919486965013174870936708897701787995735564229682945426323288881859674155974062868436531016654535357960564935599890172328211983825500571546011475930247017624194759985665691477918786726465220435671300583855223542939637922759528369275279167957724233418818920544098544732139592958312314769165649148655558303246503502539356727938592294494210911933829104948195244397211544004794752406235861427576382051406521690053617074784610004121583860803978318446922016132667871232049998391035355769864704209947537920108438691177839389122577239678586908489667867500370564063768959247826353486002118050847506142832994680659379502798588900609216114483664121878190652564919505516897246857584234666374934468501741792216124450155294272132410303479735754682098387970462097442803873950861859882598633482860598439640852800333786893176069640601034133083399449889749119853089928708337646692236227200307414672192961053542346486415577166326873107494899250291098375859849742042740065936038351379300868890274235737183859416084768988320403808026425559848781509753651735595675500881680014593883434774342754408362587140356717315322800663143573829705967255753571521098698803174517112533993690691224984151044241390729274577467182448973173319497476137709415860251752015888424045725241514100777099897100901830975463771120405995992147456704027178790045579095854507119555507532285962160822283416071960101928149678399757176326219358882826818277247664132917048615578673265255254376745735816876351347829091088765650706215145844245985755302552847305302838747661926666241388489667396547801506455852083297728356762892352183653149196270214789501103996742183353361081193771335622311422253818186118899570711984968493603322794201579444464024350537932994626293954851114566933235403590531652216931789580143892754166440206093475905780016445156013478161753333911089107413464520121393056690449660415933089735137835028862238899997417109512139488562403635376856150505333367431275523220041530306713228626405108224882016046872691669023758779893348241143807594339190989683011461562755551731534002958411756193237242815054269583681328311099514480189076006901005069434653248120844687627161236734131604844967361903257448020825842939868111185590392208654995034636043265393448211515739155939372027419551412794410259089151408388126650355092654993212345736059042379934216095161892944381198585377162684012168238441286980048761309023580599179415102813868217487068478488056681842245611660357815232378333939657811379112245424816744250613802069058364772758923213237527376296417438351450455499267344931183112184830001222067028040221800221811027026600307984633746440872450848622070154044781207263747604876400077928363262518040455689044186495105001469062363872218916170859971630912403164245236294382853701680410735788742360459629572845934850971198068138911480749905845748064215016710218900430344954074189041273152190760287044870851185115197337062631341331475817474198499274433166427984808907911540337430663246000737052638469174741561505692605313332292878391504533093248244889523536443749828357884726208624246816038700619740437104113419620054103813028960879313519918005511171595195047790445144128453481246959340435288774271296077203225202727173380559265652203014734403582360501525253372557901440361156783809306413022123601279650717411886304676182167924457665023907949191590756034203213903179588943379664735041125403108309090522855339442206783588633206269536452210601317011822004561514841336268313937904981225295711115820560111937996090555313418455742604445689473319091426042326961350642704566333399750744192235986486220369532900479480734648368661406122396002894341194528301056030815224256758504872412661971172585723693813613908885008799884195432433292788916379038808871725146309538435490497369898999279087996025178162701892921953643150411249568003670162590564083902368017272756033649666325138099058383923835165651145880072063561454732394602769544294413900857562212838326901302966128175882063410897675028363882809581683755021345066959998660273255084349816853188237133055863301303580807807672557765018374744761192442385599379820936035951645938869946770615350400724809940114000618335234657690023825939897878166888667655918919812339790235404277620348833823457759492691037768903923872430556092376656596952243957922453924511303918263225570855810612245052815768277133795287559956351194938576951737260207903033728757814787707911093315019579144790447186075403545684648894087517149579384173174042076802208814288760387617973950005968516480051879583444440383776488874183555924975945369363393946812317228289027059840858131106140116051442471140115188336393419011961659062747941980876492237824058496296271212166615971634753550693673906566329014735732924647978789336649461840187323726727565149511507454354550012958305450017773106393548505938230601388415312696729779733281145493368738841966955690326838840106513625515064751812895379591676939117753506974226421868030477237020108657362580556012967505832093257238428696308322050361140263111037082286946076175465103992969998460984385833094495939721645649357462251784984557633885777832930071565987214967246088464835739462000784614120278759821856107033668260100508274561176888973797840451890368472739844352437665582940903716413626517798940593223581705974624528347380518670305375876031653253019861962832693065084066706828341351302382512817479962290750377021260105547315194064553952960245069772854738855962056819741350260492591415466722657821249855812000511830923639310083332949685340657637482642450781016681502397488132225898539493944641668121032914003481029836155588729899267156944052860878288633838126138071155037441966963722595860021189834481726828933418882097946163737753468602276946317064481064919086674535160774038955112800325330334102535411999006342245154205943265497199784435536459040601070535955147337456898134907559706242488392420110294618135480895763054418544094797234228330427307591596168684358395529246104741261190437000516500395062862681007500549688104673633403029125211318678766507171918677403856639128652628916200254780275155559399857243689590839554920353068918827822213957910335550503323134474773826836594525825833875222922412740439939679224814884335106764589945611555011144772808857661362381605790816879597550309739129953853013495654884951372748039314557361768597072814259518509899722792118783571906071899761416558870591044521840200399287434683659112614522531609465050579152114770910010525007750290612537329112190586909326380133570824724738302993376332827005177300664423350869336298515410516030984262021464798551516074662818688356915662248214247123904517597820987329616343647704435511722317256826665844600825516689250381296296284788524567347309015624715267427204402352117909941322194394762352637053671717735749633493238116232022658856356988144348403708610004925067065734325192267153345438056194031381902237619824950227397036010160407898415052607026722581389726521732059158010966060211499040965286368654819453215138390245399447453234685754635880980348339337057223271179530626560287081355414900292663716198701220705204182287938384388763841358970295859563345744697682247616925873803899877465468933021284585891744853045851158281874965286517742117056604722336554220606023902054563490657424621087376519729707566417006016530687627346059650830336303565822787317007223706315471989085589507881088453150412283355694573971822354966437905158862902013714313255634125858507839238494463915826890193110640538656834583307460953995791539739846324612705432719865950136490697601957735374332459753641284869503767073851135742995684146476213112224444482389535686338996742330830580645170346882860199822100072314388440861915209393862832344994279210333490543745316538161321400064303207067407735034602972894823352651899788471966203109005482343336328901228838903949891209168131141974253329818976768007113417184079186155194812460610364852075233533750252150997366448969434847454969055348644520975579415968285107375398640005024506435570955941311485507865551564809865844660089637650343981434244763091894322618141860459156381601911127080356647120451858067228009688651077221338354356719179726726933488049574417047810549822425039476247719145337727351763816155080123391701726897601334587483215608964446629899190419396035079163655693865023725205991469706374698405652751247472984798507454779116141113028026670117155175152048541075404720836789500842812618196942621793696818926460896436488378930135724418997915664360672511645425285823164033979990793304187338707607867462146211268887888988201895307215363238807138069137373932749389764733294696745393555121856988310659214513668267861990186491519092219613932932020394922677579221648713062456293286207408648860481139447905330092032059904108457336245206087233378757254270599120781175615503014381744984712602284039241711683964111645457558255294465356037811593201514320799400528375456121807678069334255037467041726153624070940601848511239376148270293900414461243746726568266689883670104393641366635308028515131528353719661191199232597469580178037305425893369279489989243172726777264806564919338387444547085380808076296834000163690620984285536987152577666896483289768376147669348403563855342719985281991024533444687747963942864583969957127222886950064353071423207891223989758578605655048637501623757081382316392142231142803256018319217547586489759412736478287754077800258371799278291442358915356937096941368456204118442659693315442403065803333734850829670769956178942482331982110704964103831143586933265806196755127735460132776119268032522742318303970192411415047648984949485377543636760853489143959313010491525004731242918955618170968626637494562051026496208711846049216737872875637938935647939429070431743860988306775962985516835983585700909042251218974624383723239028670809170314117724028452234419328794529318670584677701090305475867797573785227398594984623040401231306135051272125390185075912162520893646398755404994824798140368370675157988990195137800030922902398891405261153925209692858851254250539636004587072039169561092510245513393538998099669823607812182408012277343811541553731678998509730456305356357261117026371641520904667321999060077238732303893704839973245969410699008271306455513923488699291980207445232196117298149389519106376528975342368273602266071042870049724179547296232336061211394580295154381938104116552939001237807331174460464586354438522022803912190960136231020424510888894808392690786746030472947730141653848575340027478465977539455202669419459524928417381695455587494207621288301232800008256982928418723150903039839978849673902520667628639527645426815698404957204257575413023593889518825515455025636844868848443439341857136198095585536475081786805240891506723236122897420881283399505025569747814041191647671315505144019475842360523483315486176293086651531989269500629473763801261474922730319269392891423246284186723062772591682757129140001379939028819737467569843193316772139376925295841247985805795119922793850814907412786141640073027073154050421159635385232200649697645518794647090391562236760101238764435588207409901915551245002464462775268609032442958120615736182022575304505920255502346101024569289293387768001136326604347742616242721400459341865672587603613602872962832934403372709151442009545939015291046090093980278739632762100876172417949271180205071228277710091161883974786544701524407504199410444257286766387600333752293682905690240194126135877034717731359590122508513785948621103459052391850284361717192261506525192180611637557804295936720095216036342863610421682264791848522919862736066824999626302785849835954125577592583077224695629050258849065629541058594009256473085002962461387175443203895377080771900784373200746698595095630931297496379013218939663619092232881641849015870095160915016354115706725054200620308313363140560315187728607135330074256524307238078173069512913943549415818757178617367485044671779837641276023621340807020603435068815059821009842677292425528725870253878249721743836275042530473312724175052956230623000998051143290933292299514098935976745844232130237667521806248010593625661598694476170642733531699650046555207937964288708929519832663774572703126975995265484901561575728246049487096650319950908023656687944689661071190230499988718811444800373149425239576090026326439525253427984955754628383847358956764398290211905983890573463405910120714727869444762670393259091965510523687420037432325080614221213232749208828595746025296881207965939077793089723940211563049686572881586605162925943054155331082046850096208560273909573651121845276879245371676099058342620743529991338794036113904119044182353008216607031280165205217779277115768092485522214824181315013381406599506991481795889563748480449491108810596775822549445148210799109095533768782098379383895709035959065888096262965519190004608147917774446072066962389123809177901652319564515034890021904442458452426777020977722822048296988497563396702261650390539818231837509122549667517964885578827101624420071426230607953561744243420595627939142323719138577128175412350432539781392967636582003289118472382821812127172017309617643472121410613528747117947233769589987666221603190264974125344588130364900967702612703378121654336071374285436210870337468921627256193368766146672457292903440384351821020252778556597653219916666656322895559826241476988398712199530032593969476713791249781593726662105211552905859743167211748404799246722660507658824763867914856954631929200610575114660000094769854170251430057021342331674002103301065881251864602395606468409040972857220398919696830045775978908083621247162064770283023714086188477369055513622354413130445324511566636813835049261973073493522146094613838986351534075556946161576657844510630561298697261656325710135318574460365614758400192008015058986040238227151472096052486496016267538577946021962712140737463763712354087383732204050384044785337562548291121752540214868486750631523114530703761332541148401676183527308997122271198205292782153813410697468800278412605233473981339952687020542618662118088487996729417477124527564562056205963915251129976979308298820205194157998659662227452715962583047993162775993618652540420789948853678709868859052743328273861521471795377836072669519540165862425660138724012620403785692505618331847435483265202091659985834293806192445730768581774648002937687683096739013257613148713150339201102556923503348695873248000685428087670236794210011441712151272348136148611047077894051832423260480766047055976075950484214792136649452851359135675574295261274684639830906737610372266490840159601795404427052672402030873701893277779203409061537357943773886230632427887848123038201801034853335922247606151658581940912906053563525459289085398473696242468874496604157772282248956782740734580571472074257966302421351805003339497192007257281374665179556371656763260410914927521388324244370351150196901502852224567089297074508885878940645202425829031943171186403583476951842881564521088765021178682930639777715232685132979355796416786385133693620683018563809981508417295841060506351625845892829677573622447705334810980878896178236936040743471137459680026507027766448735418278032606422688591782160547106440259392648216729930968681053737575559590330155097932901373383489663063060607238047021568496292140426018860609612140222465067496299243449457563310648940769039888778478833186489421727320991418328087107355548338376028209744405229474827905852999439007244969622295400839537919010039811238491494252797601070666923639521139069665909473475578029390551161051062774699367890674551564845685313309318756411197114932433147887945342327204446827127546529318755136637812595108632516517713075770778371404521650731631766433376777858795187019000441069075466953885819640363582636789878911813310658186101552007825143269731714083830579872171752935023133555885170976728173271277561155815679780221380031408327971925462996946872704130879372848481797399601983928290703773505612948580911742233880566145591012313423478083720844403775678235241395545138399085694201089172595163083142102248645807274865163381071200501725445503883461924013015416331290724212240122817076753984860511761995098396247989988658382521676869968817815587950696007463132934423105403365174197815524358876899080335085734553887795462642078756002221510170090320364600786851171837247078249498055504050979202690237941049189275799024610844578543126737565565882336374912382644381995258943502035760325527065413296793620176298024289496704870913803709580725944012540231045566948756452749745206172363654842618086820744823932799368837590772991304385680627900048315623780424858764349941077044778591050668299566490746755642911198733382676190084530443063629694345659605250459789260812638289979351234454702485819390019335428597184864983972488737128060616323926386389929037758936373366112567455830497149290359220061932383397757438438275837175993576993183644510136524511618627442204964070683863478329562785370807599650525349159584845570577611886623878430355569624030611608866019327614144710184635917689182069041463072379001302115016224009098721967137583552948393861134957191290752410586417704370452942352722999397442278952979763516141785624313872993684396869012702656307992646809343651574248061020166940194348079925337335087445252785976134318635621043135751378598596297191833418750790144096282861299903367197346756337129579727918654436154617155494728175142946563443527463311685937814383902823189612941043108468325375152297922307102389608415459558270049840293702580665346975276983367761173911917852035905188502535431984378601696540973158925639015237240875098501681808226961302273480360449570653176555496463231684889438662683221585803626149106007633271430981004476007137895199680524573367091427631649379878009253937287531109096148009198002168741153552987982903795094353856814897356411414338947074767248136447274823425210028695114240072855378245442863002499484655352076796859696504055745431575523069396390118519393481422866775451336508015365144744959814142718071613101302622358281730896698900256570984938562119690303457737123796208010854856595935234283591707889617517770573026981658025194562087563690250723047885735634769237562912990793869964996912841215219965353182129288844345603125279060590532316135021905336858907801293437322520161885156000374795266453073223827464888423551966792985254707223771211063502329615611842780675893125956263815649124061698178540431558863291442611160361126546114126534839154668186380112907039229333720782968439955267348192089472807167377120755017390695376065376003017416088224779096141011891217508478541256788645161079486337275585251516922815158133930896520576503129956273669600696674259300599649921737963979830687979145324488234730200368105313403279615119515182133593067225509917002685080705741584545830899154666031384990780281988777279218299981730803129632092646399116833385410054677182685163215774255449976054015673054369431124995312439968146501117310856127708785850328913068469563912313082054036384135179761452784130423736796615441869386007499290747935284187178314298899554484513717780869129577838002662394496046263496082655785294474599297135921083935151788155316786151277305005548835814302342456621487777712043940864125914473732998350907434853784508233052622624235193391709856758084321419765504967924455441662931951283244467763875192446788474695940190054420454117022489928784881242003816764500384050977466966771788062800255183194237894719994467953253363599233991646175535566079610476180490928510337373125024303466508890552144309670234426470264617026008772639270751801249826486921384554487187360077629506449227354840414942736138378763713609841285776365110287931693035779192154079408380653559724542228991441203582797673139600043543579588609373507979336596701248004780085766118679163131414355941407122480880228568181354602480228968680796048087618635448816102723080495512434407389299808320740629418502516721667187769419950610739525687344597600164914848359711988946937148907252892390584155503844258168964100956596357077368102335162043098259498119617008436193821711466442273757031468916973314655904016255088823244083834508373986218326183909097002001061285493797592357845463645196534075423002263255513957767739071962414109841923530896580403604979235812765708185713510752277065317166199976251121841498210029905099231561544572171584482885564700999064422921739556815577937687754086798862750813282293664842093624483789491343755489409117541418335353758814063323914017973737944303963493930951276284691281453442251769215576378870134475143599290668694564566831621670514615949690509081519267260871501508436485859030795052038797505679464861755982953183309768698222489919721321144502407576927825865556366928570042937904749590857221524761653021817639807199554588822470944256458694019257254002264956045190541897715055985969459778405985185612538626422821166512785657382010503838323525138989381993663740541950685687810083527134214246214510044634907637167756819608035286310572856955851518604169677048847946480563852213025759266912293516860893577431786194116719214846712140894410066829020851336422064960471768015367235841791223018945563405958176523358459679009506866370268562962006746162760161404539952446991671725616070168121405231242272947339532375284699721023147534921097920069369245982001726178439759398534919713110246562907133365953681370029327370281882676216290760844613289929940946034516442587254878323129779081776070799944536910688291901722879057793692040133120435380139275774087326786293318887629345541386134004998732520974136536914757019506479642923120778595678029926151739777458561490879513007120349607836796316789159965726027252928028329167115221499730800277381990790542553451635489155067106552052888870787108115164428735832937140288968136130774261409425363573899078394293892367454803218016527573339860945182059654951638787828452474368907382748050319549315403246975606832180334776344274310319568477423734674085685670299898848150117140314114864991032981780194585084429863875128843932482958154438768401454341073876737449101676376309613572676625264821680260877690177634596457551327818782589685803673850418811410826298373803735953696702723915123874908072047714265917099135848784061623854038814324238150862925024232822077345068398860068430085433649943760786168047541314360668303408566163194354903571375376681970864435734300489157571592426172682245787948698098589507816734212843552291574401590946759931598541143981424230834585985903344551815051138006083422972850677345014362155291979188357662866768369999888895159460409089247933546347515541152631403239739408375983480128406565594983203176040695882141132420599584457968502985129919697826301727247377226662937981727614888904151917687707325049876883662878697875488785187616841868951003758645484439708746174354171111073299018131966211090194769297452059335258786139550628443584428922224983813970713627935292683865729053673604587696064722009712716217640269689512183847270663776987043232954662245779503550812020292007162558738763021436907337058213837153004821322961876189548051219459107014070744843273720189360856143480726467010888099753015755082307614124969057941792883483591669728935752676560007897687079523313940227101626805367770426405467566258275829927366300643377619099641824394606733024022728942311795020453576174356760705371056949400633680902553894370342756687262081048174903484137419642702754538630635394119787139084229659702353175399492338458291875795342176812511262220521673850044753861103164949944378317800364675383915142081107053385139894875503136677551207962395822526239274360792190817250678645354100172226900024732386070682794369135897253202900127974665307319077377358320512757290719384977498926235880454256035351141644215182755708551248070290397734741900956886959242054303040100553602689895181209661762094117567973400143012956871655666733316517497665012146929892060905087567774064750458677323116336745329701934226920958468280601601843187593479037044035972102764045313965234855775048039849761040170754669837555898817221901248454173834972291014879733957059970959933488875460615200063389828325178760735310032751972557639696878993768544363941471898284609615533868992114197184918691807767520348369933745351602790152221581213937687325362515841664254011115119560588687569848529613059649529027262977540074295201711963403890000447698501394138955410514326203473835309224233040132873533848420313737066011624668790494580863618628949117396912125970854712343023552421896828931879208902025084994329733745727009510606366173579323799047289224637018602287711517405766726351408147484999911674039466221908478651436032203406519030588956054740249968913281372371126612658112356332645553338166541896106621326548382322594830892915299363418433853054426552208702206781995557350763429864282932225374007844077616667695345739225813902946317139771812469316079582965650480450804578658661632787076084813438641460008804433392557283634081436640565883043994814026495827408122289391815989173819010015734835283642762987379924311592994797538402704043789333078441836714794637887988138555668531223210174649539274774468876917914969067166545666631761155506184012685157877158122826350830656075079360903671900283193591929887452201633999993149822479982113506279569223665950405234408144767039096708958258692191115967932727291287215775717284326208574184313800529226108755595466823274307540782069913008541874530585356248537333915763200460077955247986267252882619763674712552751208068085710393154370908004421727915947267836981177642211592617613776627851618362179116674802363014283749952504231930963332414754599012179749833691717232678770211092973656231170054682084480251790419190517911709599091191006326256418510383225509296144447365622357503914174456559692596325029108739736519363497086008446548656015260478493955440658680288210934311362300626396668208481758700385270431040807835435841107331735019752815184583575518842936467696786605067033644507012086637247503573060864988008433347571272033326170516734478428396603988939572508688137304802255928594701403718437177918140017145338978673264500084278026038971749357850328193980318670904343417891506256821777402282453604721735449709868655713586465993926885010635133894758558329695472260484045579213735682186037110775327171139890692598321998249323197177605658485862934781313128168208424858882747289652895383752204816477165807002292964097367866662537767130239018182369848113094399324255781383980949226887689541999959793514772773738241042216150011679037603627577984316920802407560994279837723633858874815935655535412447767580708201070049019207304560555518442060217764453015439137007238709401290336553525472385671678887365882684734471891858701495976606680386222909883848760001882972194140244537825369082681902856572635476214446316129623434896113957886347389154843803805606278396252254211083447604133569255440731345201855633968213585258830973564186507519070318251232372902113401235883398420571841394195790543052690192825168757619927465882035766060257382861831131126102795659270399408064237683551813061639691349862284695918147064189586852592864074673450493023507541862563274181660776848826408041310369345672801288317672980673392923934041148991923399895335932184737109871082843125311681563825558204816365929216346035577554524732883635844090130493442551550345709659745017246305056252444509379458629459633570860617324148455723488127104512301316826023339362816065405808024112199197421493071741045178788234369050888056052224132422681348669620624495909214529188140828427724061886950354045682522080248961322036850078238884668796690152634268487543868799082893958411461967557280428608003475544619057630409901392295092437871442317197079905230357551090126751470059119900456136443612280130811827845607702637423764056368850264524718623517745807330293850569379721361279271199405331797560748892286864282976162051265173727295763312755625089349122642860628912601636639662107272682554822022545824474425409091223996204503238944926057458234250859138261992146083046312316134323789130969476513013552406810661109631536121901299623476438232531679074255792015951745512475141326937087414476046350983817786054577241683493942141102747151528503714591864653191036258919513897375251780843881413372814956100634967826248137516279695225667998498060952875482610423642850410723973888802300033643930537278735552996927279731219232313729788893897507479860228563872774200312158549465293644017762880565540316516912893084237988200898179903778529653071448949580635551124245298956905011942221267314891971681270521845990974720391751725163688528048683076364260377518770945781143386256105371522775329050654998338080230052175208630850041347202764407049717397346059990309384336868264673879591999739312070096478235851708818403766440185957115289884297295576339567511331152507842735666919117766851880642123952408040114159415762614835681184414562371255437899331266639839159517750677768532731602429479846375282501939688354159259752919321767934812783547047491919435970339129118494952996813868570116328896668471856787478711577708642958062309720682532815480745896538588277574031467826962892331571412709730953227537358070864100394698269826209277580044871410721568662875031686713531775122430789874691354384163792138615879254710118520513593640100377166454012116639887091250341125757310885784628456888980044634703201274691468847126163203417063530714483020341127839866833154975989869395531000184363122058158930771778943736367623499117839326233660274166518141089739328426996923195473507350055907490989220443840227676267970654955898036412854410318073649927247464261981220104816540073098493598273636357822693526744001212060447594703911483373748035267705411790034794940075226014366643841916569864503368395246197436822171791851036851473527390443749317894901160474858939890432098298901292537041851371188784793123025641959976035308896908194812384413869423474753234965103021177743056777828704046522767873338726622982707386412828600572540837363273020819213698183138365534448676329471405105795845903701135150447076453355436042811678367799142480627253033443874459602503224300271586776065576888541733128645807051220862351369407976776265584834107223286885650299071097140386641710151135999196612776907067326545218653669013819145219166071662824678709099495200730520864006469786905395145870342305669164020160177365716502250615322539547570631159768571063283411692751589379325253951568035467029407783234973715797582704309231565769228548359748807831181068079073756234993278093636186317515404334581625580754116268782238602898981275076677370885827279822780969111516900204691895933434718363583805201075376662180405491955534082281004099482931320582059216983860618790126426387342725801335725321630204046515557636796448965165386639899797351365806416075942796591889814707775217693810899332573072566336121401194303493906001990025505040199224173680792148235061091159897073489350983897574642459796615215354497820573603151300881659871324154166998448186997062754478058817497652816990138380485160926542822256722908632705900772655135961501624770015701459282407375672827721106055488814128640415138386276028844410942079171119837119997555125154516634199405505512697720444893831105066633334058904132679244995536787859639525434249036354436379715777265227296701738757328491592554918188365630450172877450528406536256159452684110337790177108327239817215827826058312634441518069213702617531747718877320155509019897249647076484448481038397324410071080062069873052917134635607122002919587308379612522968571061316784964292481766590292925502149201824529524355306696101238016880953640158511879369867349313390393915822858602491749848272989919553051711877424582845262055576599503453338854138606851067821179207392870150482703022433084324014508347049215206101870640911059137009655915195213138750082982787574530570733064489896025254781281517094650294265493315739331300028409837386190564344505869790295280535387527645883993569502244267145201100893851805834406448974083465447156706716951197627714009414991167491385467289911048180716234589224864733321522567288313147126012765893060863215774361498211941854967576502819641021757442669953567598394957122920013000068354111338867863736926888105695246897210130423012068804107243751104812146230567176480460341816405711027747076991614094156514090528284906399864526750763806339770882813762168858492520371002058658536872604038669425746691331283470476296376124926732678437728772870281889990568352189309620417653228653982035416255141244441051149470152062078279048192083714731109859726322331916576726333100998075756399665051347694022734252636189518823597421233577997990735395350925995320050058719682690320060057882700862561718441136371443686261407453829867647655634917982526637332412947204289151186781214112707238086252063638704091695623779190565145071131550016622613470235450010543280682405301595073934845371420677262901851982054016670850439671471459616567914165779739470056924694574299762533121151151558745302947815023810613267692077595954484491817125720753637672645657491666834864669869968091352971798439183706042557930829851311992653498702596406073268770634514901106424550378083669270845262781672846354505453826438981270078118464279616665758109550603135823500631761887420104785941754332777790789450317301489509242178922879221032072775004478552166265043757590214898857853218199609265279534313021336930706913515629197367510595138059870343815208792108816435667177819004317082729903477537407304072082355312028000433130791570513304374257941921520856147604893860802044678376048744955978721575330085401474764469204142068824163650625334202166737811698451823879725823331763725445704775261168357877560214462919883630541130055837597447069955828325705521260291185450967801040303207843820745956315056306853153820283341610702345087826958120687741320388235781152781239104334719092870907360071590388322435848346635329398215139556991347906195201851410970973743325819413492665220779799661212730994442814224334233392582492588119989113629925805595901160450347394231002404096218095714502876157953304268239693816879578743181899124488861101519598166709481801587013674377009857450759858744869375153198816395063970713732821404791312445795613349021253906027917586001799567671265620149995793012727842596949934029182563131176432673166265788186081867092698728390706771622894810585841735718514428012226133644916234500842446324419012952011235501982351244507504503550989705399689937992308906042380128850135761128559679685750125928516794511887105034360821534886929024854402384437475119766059727430636337292403715857772389983850323621651487083542262948021622762695030398397569919615223423366418446199270323070944138407133409150569427599594750397540295105808232708358794825432221010557636391677511939738276436659359493276058943684195908514871157407108104562144548611583549807612844234511445419768857751952722385937508618192620305318601188248654561275069913246739281871960332667638528602628386193384556871708734119105739657331492381031752333703494759310385190037466836765015767386940077981898556474058314122691141873895981717472476021636023904563691869322530018954131149607402204213245791787815684767035822425883240736992468479391698491876016502180563740385790938583943810229184556211679422219117316568571332981332539224917668627928366130073647558856583252691451104367189510471884997292145337389556383334968796452611598894121912387902151285912100993742143328432217687741711440560155274528541677082291927160751428904949269467725738182414771393218245114047089503847198913488922462448438879933459242531181514480278963908343154707440700022565531624348610499427516680594727891535058430389195383084315168072887539728418643857558833368125770066089204520058154461282349574184416922482635946802153582696274828471109771991338702297133539067172151187136792741282709861214097505221650956124340183250670853646358114156773608648443018928839790276280612631407814864620726511573031139564321297790707865181958363414784365742812635417320708495694002835120858321950035050493890241115631877425043854475347694692544605647880337430737590512446040737771836593945645803445436789112609400966954380327083519689951045841534357934957866111031340391000975372211534767098046252677790735984283726807320785047608875756144126373398957334003084503004831355444622538370756943392923401291866706705960375074428223858132294518355497757329649174097666143204923368800821034941915649810139450833711454186181648872905368934945841981204538595405181022572780618066121871374541757526967043149292770461639488470202071955255952845858554538729957535067372624876244377892936865191457828970823850511659672174194024861626714628163900208235571449661203352675561152205041557006144885202817939800136916532059323007609877416288649711924020331617920041180241387182281976416919183411497032267665373615260944401334257338374197469700091637050579782332520167011659295314266164552954836031014667549154899109046399701548682637447681162202964299631981997057555839828269717447788394436798085468802531215087022971083099330196062551080294099621010607804260567344696381284835642683312715515497299378683944744630291864827436477698152537494010861873886846996469133540518921818719905777232051317532234947589686316411120245050672420754101336531170528090392130580354071415821918488310591782571432488687571758726458030048088169290652196072430563893117063255801066706443796414460857129234106362301963544898453910953644771317373651908101091581637940914374942621044855224314018358716128750673066661368967260230372981130396064177296946063301351204952426903591398645511791766224127307814405514218828476079649286118123222612717680675213741385571625696614831701531765528508512463117707412947738833366227621919206847375363920645708840272244051242526080943842803901654900761688565673794977781498253434854150367109626725168494659967107102245865749644485204421958732005235307358853842451236404052193796857617042515455370696883849273622235400083758201135076236229448198719953413765763341875561327576147454360685824274538098954698769481269623329516934322775372747401534497805138140769321148239644613572281400475500007578871837988993015407820613810644544076588188148380863998456503291466569056908883219384663032409914676375775061562295700007733285023036110242053399107862968769385885567464159470449763100832486922185532508438534695491263320960572438034855213918875539710178243317053030667080637969538720143285392951637705835172718512802311891668334818578740092799305597914453399114418993684123367536470220096133601055133681450910143994628650288851062230570893720015134971010005828555995178523476267901007671005918473174412181482602197453695764714049968942284651735696634303500380040216927959016748193298019652376217722360946395457439889926327059719453989720720661023740354123511582854817652065220825691951632635729789049506268819847051158469641229489044770468508300830753929583936773480244001251918538718389897645117890906303695610176363655420933586136660046156358062603592710296541237414657302745810235002749423613820098053696131344597609158582417558076540518142896882109549916142872181115920582438571419772005878159160375600572296544558160671127968769952006546271680663434575069647269584523650395315592730665629540857776151466268822829583484174002799045989381168801422593053765045024918320343472660662100188339511235967350508659544590287689772989168764758207035164805246942502441291177810758898876735181426753252396833378222656625109505071699219426265761080006399557951763746331293959387300107021019707196466241869323231777358783248190701673980783180717139341418999246533364947058734055969944914513443171810473847614312512040455767428688774822829239067012073497446691239866413164588511005821973302504304513500471397297030419148061584935952646929149469622717644429638214173066674530813068024273154005102439561242411117402090222122386041956517383270306212711872035210913040927466225666162575731234424828317487388577586661978207266333213353465945875870872059133466456119830926516164401474465152899861777132023318085671096848390047015819302096975362147184836891441427503035593618327778702083339768577340434338693897419552067451968576130336493545864002689744278035348427429199363312560327151594979896804040808062851174650523090966973394398211968476471543364035280149410356522070949608100508199452258035247532971250715140387668709557168114129727010605385191476964412967611797097043512097579524108462507121891839051814593427983362382235046570943731799793669149540127853979593659482369927043850822708815942545278390844311133173831827915754379061365239292740404348714499299899925098650462465517417362755750164583633761584515694774913199157716004190062051257440697800147209702090577372177119513379859538297157933678758835233407332209165596553650477554014884929089683416528077738080874928679548393003791403040922731210712823628055294167194683012446494382173396958119469791706187562675651121783729903258145370533211830756639586443891097507587310565529090805832201928080045806025888412195644689774244798651955953232168505204979782475201162959051569640326463333181089802277158750225809004507977492921104895172849265316083564088914601653525141274115649966168267400856849828524292561156749404630942314008933546821021287449368783263179053142028668542731420096647906298916845243166881076930729645761410116113432133389727782540731489666240961984234581755785516726265349431598908025531290358707397455948162856250944438369342467470885544051635571640474462305936892755862682076629185297450732770909054572235620162834518957935784139209277848167138771377775784278713095891362081758477647970025620044953845676977828997485653363057703312065721661741777709922728842750280302899906430443310351496404726507718877394815849048347334112656987352414090501712769538757561480632951092861909650862793542773800383994405455770292016161295328366472914543441591316303191589563258449660990225772164916043539972032793912094485770830430673017076104687281580253054127471959022169979662707129205631896289625000318692746844421886580799207766445974538452887610377777914674196459001380888928561927077759024878024935170489623435666244080166049192822003941509017463858646744803558292343316900630593345526708678249744490277919457188256480963008168363557943739366968012202046195027024101568741854203628679194077974675125555328497852249662544943429024700948820081696332440092384538580158736711536798413979045901659655346627635231111882737190345885299974644319301799144485735167072865536532165873958766376387406102685257409378023508371048043039653663455307253123844349594219786928210108425224874313381982099646888238449559775857515221920257387440710825761078843303595684039234798560664894560575812619860645478557628573247671975456329842958826460520999696482378329758250362884385530914913076979852816159787750053786960838035604812943105636759833738500227341936825696325287983291500882567491998494923805367621169038505598225891469095011345071994812339991739014305152855744967546234281813334438175019310884870742902319526994431869829768254786060766339261590398237418849666785909862133594056836230230278704334329924145401686659699712813802899281521498086609896609254853647090436831146378024173884881323465596410563683559795263047757273501381190487337247909614110191738048986594117106056462160811897326052826932138346849719512562800500403888512623772750209973311553680345555117680979127813297406190610232973053604895134903504907959410043621926423844957365421073318023026473625590321227323511710135230517203524836778496590255737264606969868196367977508646858167570246827601701508618288789559479629956573121764084115226913080741641691149525361914562612438507551428453485188474178751354357201746004189715141292781735637316801050049539593210502115294828587729432159216161161456728651510791367158616448736402581075082227881062996169808056118055181330501830437819444735101219967372506215748575692288964156534934440787564597225628009388512245824354345687210631487553019686439159514553360497470886879970213964615189395587874720525632728116940098195721760454425066512179993653418330519737639597687691081718887242644867001247403658425933929632361976743631965974732126809138110254786144310397364382107657311128785034473076610129685768496431367034100269158894762051753923995582162003334300260712866995888885980445627937421806500472114861951334124929018125988172809030561238909535195060435122665108557324527906927386362503405293216682474647759151181263605750189876680004481717396069772893322179451564341550901126862207107752634385819708087171355523417638964641944827582501242340623348860223935073405387832982817838008381668862864407780227632288503116450794397494786936193325500193954721263465238270695162906604676346630233980082154214160106756934608797800268529163733936593344994282367113311904064021519068092795441885693131665618624212084812155923731150496639214340725741535220269996314433403082907820018364678027129846548403878940832869897996002798861119430498991939835992893271740513470465813082519761489289008431955248994069869892932163363207866278421998237277321035230620058688133489749296867096209606886021345368697786623951374981159954903417162846388584470192428967165759010700678116977578549027750658033408338181116105163170949511216119810794723681482398538340616653677968401463341237334724593103185948112736853244355204495501884927449362243657824588673593332145964443604940803136921564997246585644785023965165807492406801816877742440615897146667615368555117996875985782516350605307467393104392515532492357846785648958922596851018591754729191313903015408720418446398454493780276146331839826037787337995923546565498841160734475669251418987944227915511760164343703197244569773426821376774065947166406177806156939524379335146078062130159646821531498953343387337260856409552264956085988075607538691275857711067153040089569803750418491298284919657648075176847537334719946386165944862392682292374624255205256758119715805306824009258966441137919248172527269211194180278369946647298095098059866130630302830949965017944290149916890312180679337677858367287830455619549401722438702866584007803275695544876639926670808170417854942660312328988647008519050251504170822796674591684702982782359291594520366226985774706712954696461958260333133960708082728940020786500242663056485971558457338855524033743737180642507780404728136064385244494274076396802924338100427465679602839490511058303396465951348856463042398530156634148694149243266616575006631449001553344162432225805944981661741883044648306178866060695898637711467239651937437731786769240801859235903419249042770237960067578939760547643047323308286755864225165872133115157355453506078469362332565433692074898305218858741996457198593275804832812548518414079594661945809056238127546343491681256327732662042976172869651881335086581724008018268486346828590985857341862964597393522369033829600148145720798558151470127884282531477888143816530553864023981714257242538772213490990163420942094029806341683178515159019065219066230990828931601125426001914482745104101594768931888666591115308105872832549136817459238198787193971696430248489647625398981095510709341233185223715407329684417128511197051663120734202259096034586667017382474187649735466184111915141778415475690080792090001964534730890349763561238383513603257222279280392500893599063044140807787567466987971396296782552703100594657308624782609206539212967822622078122784848130099977561561441132633383556764062718743110428728093410898808587153155630286836750291944785491359765303177471948242003478322147529984443598563275039423698883273413719385393368270739827673480209508787930370610087504835414518620812938228199821287693819849786637465614271324473529602888152798132886901978155587186566583568583219648713097984087039804442684208571764406790435334784535952342968699316151846818853817160334513299884688437779360683305667116240512131840178734367689303159185925253447067894868163085435165373243252035658628921090971377066418870872112412020575144906720198070539524239682945089537851685701443211889396838472553275374354030164623523620496958925035463332769055459482441056363780576124593032363738482229587586459572719303022939184115225402613879299092662195796801011963997587265346916357741221754689763966252974924103015850886209104710681833687124588850819705507104158062345426728978941832163160899453654062374520719930020091195798380463516846260600492865240629469534275963075329334789741426926284263073515309571824517244629376370001208415488666039665780042608860541947219612105669954040172635699580851369864362036112300887145544319904662061647453179461894788605724631882306000980155093294339866746372108901382243784984941982309906374361678631503952091720311656952090159126966619017697810198326146301804834192810873661777322698399404422142290978020754757192278530533044179431148153424853566684818338933271540583291833167689115382376486528041454979344235678280241167096437942201646906374681896324255795733934593573316192235525474880624560194173219446033617644802411682153027991959699405610466444236704463630139677127110029096281287312945902919549910772962219677742311148871241576576247067169079658316343102200942020610426521511022641173248839221159196419852257492282936295776223851314201904792141362973621405083940672286208820932896163236730500928452659708519159763757531693823501040364159023451687192427962834367339102092681883749913678281695294565367821366495526615804039071146768961525435670435664629736245063511622037266370190560326896968960013198474977600147461058853538890886950339968351647138038029475524389274998800949743982363717006262712297074894201989142052120029052253284020595362336542630945877949658722263265031679669786126507098476384992435509669357277680801172330375842671996402421876608849239030379015318054414086280707752586832232888120111613653460579604461477850402620295919137415658894107042110139545030588619326445533438783393306121346882440648877627338594936730280792526175331382140612542181157659001902819658018592099568374705525356564158068437395150250460004549614232999544818198197539163292651530314700695520385237495050686903777232939865494474641913509498039828537692116259000451683885727578857257946663474801230634808421974539498654827529990769961527693116300739407772453615990466393503387046331510734101116785682754760236745638917938169073655338186676701615690893608058023272547788612924322452498154831545252339464958605229660866703612004299612966853345504838386802857975102244943872529202965277128338262384178311255920996202244032745163999423170458878162181690577683843594097670270063548074106580629297444924698357583489429136203060611640781981261302429531716469711148844753764870340657315992915223266926654419983360634777662550566345172005405501629175274672999938001006918623660609534487179130969784782112746542028299914143478787569939858682118181935731640245269372579942868060157051325603508785423583681695723342287843831182276458409377503047254786969337734904338307440160004072410163556413807834918570333258877550812062635277171294583653303524566042640214921260742122797900089948829114241595121286845542844846178953063054203982715805796827459042071464882590944263408238873038499185204398715839838034274565499646521819723454210582158374691900675880961815478120620299461697419878952438756716130645845632620730430834164424082265323520512384706626466116422922498240271609480389160645365210005814756920292213850706254320269689823076893729111811970252050223223252367952098927215947915363434380727637695698641510835864026542288327527782018284563967961717742003087452638497369498471933454428437402000007657471881195905114205215257644390810241271560712944688688678231715831420365452814591109948736929878754375954990790798988242283140593937133980632283999924969962590964900313688648991721570035046413987087554830366145156279084604262239574919241070750036337131444975918865171913657838982323464890183170396765257587164982844028981995142104816971586548798224826228384502070379921278738623722340095933650607944047045178907859786544059489975434798430877713129948646026120641944869072982577599209861209189763022193439097670352442959191182073585900068901593761507992198486762051443351771373496082760748369157790563015638792612935696131168303823780088731418060880695096559285402450564450584571402688202234406614745339544033274930111520059942971128302724235992220749864986026117195288020877130111999314426088484657156866613004648016023682170953088526179229154623894596555138231277584744300268019190851085740308149555408596727274695102289251053824994294971380777090647567077911145666297971124525320061707790775202461815141611912648583942546623010419916941047110778239130842701752070831752088186140090863211580452335697814705762233179737883787665980150957540941942364183816619618998066873184284367792994889233672214863781559530470312597956523110352849973119107862213700659307073042837968108492860962810234570685044418945334720827125123760763510673406942900853633482995543599643489448404323658041746222400428409442073961158956869516201334222418405354987230057563566651194227343064662064886704179169033858443508058902661274607480159538989716337537747092370774440139751116584769113639899647578459695963286375743436097318203481864069842269078485669907312965408366526019700461000147800092863487220194325768951235867620557739815755969419678224426405095136664469621840075442075223705112264634716825923660783990270285820646132477767406985471219561120535271400413337883443696528538059966381849063522776452764215469780470799618413681675764849901749922924083254738270768340882066266852963932577644863756794803179640069589315874046383425138734363098283288880478544227996724413283985812031410400323433557700604246844884816890823141804043925540998597614992096530673231484147654059238589390041782126827738237833907372752370781679066869606215542269976657451442088303339131762272604447642556025494912762542343487892432752144592687298690670467400199949712319556208971927881286625734066593007881134171776113738126431255977117884167247324801535262714365480720931343825383870200288198575788076058831730745360301636420103997286556684842501876459013552992738391381946706104633639673273229640600548425691167640997875834503505868695078492679675983314112362239411414248668956436549663402968892483162531565899977834761123239719770599291924854232762445611347987711900861448417937996528139500616716024667697772272398359944954668367492944692048260608397338452197002526847251409806433568475110716233922378410960376075390471054829570068587154061421981084276717443929731394912192452925948117946809853422074866422975816078308543995908708906586943837243975517055298797414895783720114531367872591101136245631291324985163747716040573180951704147463494762225805861681093560647071744200309179655912812774970247987547462697798572802216135300125476848754027173577760456691690026452679180966410355680417670287307473381681957464934272504800436934897832569120755952968785895502755987272096231117391515836435039100681976365160421802323483113970198906070951696425689772231739992681873958274006891166649800154454570872274400926869461629307578743918244440684416651368777242435789816919378507103695803873791683463277509844245575354394884853915093111717765049350601429643406574979779187591503266702848096423609634857465946228810253314151874893116452195404163437859120754500824134002988527940207950798255128758524326185716757984925441565282138393620092188860346784895268622910535865540140804528860900107141014842989785678224731449493515842774281740268308406620256242491345384095918665786579983408828428117375354788672399139238691141333474567339711049758465694563220589004078516106401955684738051524103556787781372777175507308286749815493766366345822070365197055683824985851516925968995058658049028677732155676148476449626401615808921740115726651827170389073771778810784634262725346764336123623616330216168614898537878855152647902358791468636433174486409894357585600272542037921438250222486121673463732305546198754056201875027798697113123222162883725910862313293570038701067375044968323220726156205397302731455791497119982403991723490373071470374391814603924852614033756586374797838239787545178557644464824324740108222483887194604534282810591102684851395305397614967195267483972576138859845165930021046995929610874926918934775528546799399317921737006305294990411123582702781095615123803694812012161068499860338343667718077654826353570443743424388221643515485859788123882703818395675583155720991188338640256342113315327520978959850355973101145207789430203352719191114503052118138389396272661422643685943438395567267545116760502195594902288171555034014335402773533407440645973534883545099167486104833266157799566764798301713236829626805491995355177118285873188164622487936076568439180054613230512394829194304049667199133675076317671464134680194579245375154508694255051414807930010345312682190546718884210944178110286057323795075457714096335795962116200613440833614129141236191920938138961114644052577301640606444558665071184891279317868609429157845666891343936767930943827189192190379300748626410633301109461737165870408682092056338735982826118561894303017072132400242372162246285717550773582547634453623041012350399606295367390731919922915754268626045032089062170439841914942616046322639495149999613062147504592830831182117283644704185796839931370206057245031682781020143640511451805330012813197767198264999601660600279564827768482271074798227710681697037271987446497377175872204846262334633868684898337021259580817767483854203292830101993930969485774224633456654724700792410883041141138140730831923709852277905598721332902478836543606742125107974671324086968494312028794188646824005937486338299487071178423638067385864218313145048950715096720750565868120917222587327795715398961766214643834646932226055807954894983822025451953975321875689139701225165176731667249198587387969926750729077173571798531985538517772592096165630108810379592084295665216257121914841096595192274681513552899871653699769847352383682133400311924898671976809448975486122757818917078724329496136280597902206843347498865391510466916668548450480222932188320645195131616371368747669446894973838697864545636722006514769202058434286340116245028756147404870436399537330008174361314655211092305368249510044960078147047355585086780260421825807859596512375335758128178820596094936281254579799337683303503638932567259766573368711304284864843898391392687612946739295426584150277312271363422859459848099462431471828838234130201052883872533617194265078442196978872117378974344782646270297111561949378186914348566801016429158424248584053278917106535566459304416795076947103351153072769125581142749242520653536038818078947921194081335143740661232858898945494569285328626574968339919679056833097100685682216630927186476868004888543907436113081348853307626365467655267811737050300941834268785744769592482598584193861904104203331455498614860816042956890693636768332468441327319149418047973477309781968462335177602624963064573339007600569340617007584177432736705859650790427063139062724638366451713030521754332910721790397868236547553094393264946637814745896249318603509412349709279352139073641168597788254353609170041243528021788411972288431300387753703302897013304806178167009807092201253014209287064431316903432502758592181329633416656072542588579441399657111407049913600574365090785098961450552667931073291484970759904802207811803747895160529734628384492616720319376144786171478354986263313052965882523800404924588090924277056555691775095164772259519926101930268305191075096803876391817821248672470808487674280751431552808068327010493592802635308110625591813962302407084481828513593389080941107849147268577171046577738208268433842208529754144069240350773800789177321624232442619595553171387928880108529453299669692811061624495093829371779673630613953316837621073396515927862406570817680407874669473643484451932157333186143427788319377946294144897203033976856901526966737466122681554343157287565001420768437601929673118219586765962668407464172351595660319515963560173389144675899335440731538404985030461083721614577364690018875670801010757348870144879014221700833118160388362615999189346288732771170151582465871770979351719806698783322202404490645738515351150800161601571501082475097333555415445270576554412156336304269252666572009515075682424752558023068445591473038491550987279033838171380641738534808098542600861575741687406203443749780274856998673322981083715749055435518431395144785883026486780574496358293293380019560001007809759661221065293569863903032869931165087572465490120405881447602006247535116459893283194729267753050193507800953598475881984532554604332816222566108569149284498697146091391852315215565639498186575095692542490171198031888704708847590048041521769954539854861208651664518937972866170963088668629519668891903419269271010108098567581714438559461339197914229265537453089789046585695896792352524933210410832080620582254794461586530371972835651192141468626593916784969642162959869283137808219518793181308760587713856624074661438065179267959326221340117982247018787233809598122822475485179622848622124217649030018697096684641580642503488203988822807466609233449078890661541089475065383550066234882143996656077632774467834193245368988426810046842217560419050559355139421306827522886286424753644377643350064884539936033177069909197085341714476426527753242125293325063860580548958010959176191701176772266514078326882156827602100235875206076637759182410089459405161121110125150376202498512069977407869303905573952317837526684250534129482754149886333773031436733537521240290951183817181615108739488486919449358381593602745695966945362811887855554143678716699238498303754862509898608285373255823346212468730663598894933432992808561443885378541526220732159566608994595995872739869811711921854622803020572352143973434497065455840544049357155370082871124187200866329158118923391607109596222087088555968591914140123435584875093603028055263046194073651764428153150948055808932783516973835912502073306389021288099808721413435990275580277837064511656495397035895302947252728521030255591122417402011268835605853446506394754949143796224336866790704748337888318236392668837271371997928281810310684039104517205260642616892523111601276479809899286083813667428856156493883885090621115765755299063164071457645309451813917928926295868220275976702161612723724550288925841188500680214888530365306387313983368666844755366752428063939787889445729444639597272067168905602815849960771685724695590648657767682739112016995935414337732336910991841705116901174104325509805386544716963721816034236271319032424289192560707662781370344349733311724988551992374752935710793035467634303789464446759064130860432386906491850059731983267387469077601626939877128846668755857147586152899044834764261265588258270537399883478593540893426143860228014905236551579044394470986507592266246706229347240380428490510516917336308354524469179407471363976629355363483467948401452920419230266166911174373438001015187538647509817810771485647187853965989004347462908109794207468650316986981805190676102491256154746529100053735250945082147478232587069120557119797160363436545694478797435794989198957940290177291758030741266036801294937696113613418754510244467374890303480341496183251598406402436157768887217595223472225611532301831754447453974345710695867494450053194230235850717384141824758969912178777923147391263797116206260058972738389198753403038487390099031464484997380140539219545327080852041328424434538662109755678901547749256797917411225841305963793787071211733119009115417061402603268168907447280264415041545325361023356450842304170268808354489138715429982952826400264026740194257886130934179143500856386794323984309296344038075575890964067181111584653847418986149820143351058385351526050362444654810557366021124303710851457325869062832247244483063584518257259276418023155738689611880902275472010969499294074119581117877757312384423534566884872721137544607800203666504748357559496680057674248236892692747281620953232811207154523592187968463082915443976235377145039491468384080610826128707700148840037451241043790040632534366072843262240901768542013844648860602834955532994069768776373135084626055655338735917191894530203856374452705557507534327959733597342458719517905809082344236335638553692550897782458670065482069582923474507654744284578292789382392539689787278169642809707277273172320560102420649020813372061295631797637384272013110564738439095379522052516996114375569669038940959337532006677085839569163869796055390730681909737808830199012451688802843845639438450281449264525682952953542753765116322931091304037986687238569826056804069001813970737570638204834272886725103721918389104162750237090999747638585600696931205898827308896777992953596948892347757929511458524641237913238502269938855129211284001682105165216504004532813630805906945070496869578064365635752096949654333632988102719122996430022734170979006481284608832955106620297656813370659745248553833536946317521984041189590483837209111872013234706310145268105135893900355699787609046275530797532931087127669030926212521907886883119203888963667379113583136425235049034317484116853477536450303469237611209971341931331474389398208420183223335668976953208730290869548064796340379732241501092291523991921481621947299584784190558694871288713054826140060857686048279069629305300956115387260527731870900396531847294930605257467998372522099385848616614445419624725794790821817674225443600695449837325978803618924491734695681975181930898332909427263634220887007713559715974099582066183785055805257376858556226479123204220160404698810008922779914093483671585258233202542306808269314079485922976872957506251201025631399011608176993879527577478377658596701012852926495423301469126112882814528731223796238831971471264883216909615780525455863777747385607159109641656632627579505847361373218603118973977439001532883352271948400127098429710878486566705222082992859204288337498321024799444897285073769235168804507035936018948670827333149295133239360509061927305827769434058000467127012545923352844257627011677383929742827955926838859350730669926407600951372672551815218462174460116559801158171123076052126357481831979326948329420960467211629794204535559374879314884066562785127549556547684936212471773441679941815390117107255423617409985993327066707351304693070375131408498153519643013517232854937222944353549114595422210263317092458885165146576798037157833455166913704838105097669207167634418006830080248430832966834950112107575177209715709016110632834304656908982060629648353043942930560119696941376522833166020800773591610629884772297901862527071495039943786841360641999600630055786452182138587265889829359274770225128149433715442696251715407688630700747893913752971284822108163739432173422399194596185350876457718648405289155355346485200748107276997738674304834257275599971124103501463502153550915674694848566375318815322985855430668783684797124790443748638316942447838772549691467815527337499345897311182618730853611049223499957487726822164413859043305550233674257252702080906948901404056175144661325258430876712804494314378316926943986709517729399670798624638915988996885782783659348143199619841309997195085502262785984520169690158093184904396712674750250169057302090468015912001317013964287875554284562681097616972273895185334625785735615916143184426878474618868963939590835681399573574501114204963368844773652506409059065587808397925822028281370278582979882610533295551670801653620102265686847588230965697896336135252991569480716966234165388759050150967705228971853397607623343690758660912260631673356436162596402955928572726495317087883490006571836734137540307307370015175614573864019370530711729488563725538990973314221892084411692246477268458966465913990283255852359509243758834224921880827669609027803111709500299147235135360560967873056896488097427315315112414226452649001837050212411013142515622484382475124033520392587321997645945474974775719052431776095215780452616500188361434829409004467279143239506253433110954658112035116876595555639272089612242578423022556365938505672733952108875639074170300286808484884932830303309885201055703046070313486508152624030174057402675593068023549528173730673983602324942881150860447397303896598646739109357958963459661278516500514692615092944173321746794523651172477890412095983670708864680511318880919155740083357058086480480739796486222366412957834016327771831156114383843873988277260575054251980871784786299312394790626198125332049274876465665253939527412651999117460407084673100822419556193895298940330451170851559343883891358206720065970880760593538645608309435144199761595392749569444726402127872918070613399130249474247773388938989206542461988100671609778359819761923677275224942984851371497358843219660191937695088197285530896430085057605809170732232112927518599749157905925671103658978809838427102264217869237412687329700908706011253834649339977082991256306291577426444280196669060658375336708912634779603212709326404769537020418806661062523333127059385680548451773409147991840367896534870191603532632187718935753517949811144050568954179701215514338040509997652501621563642094398802233585111170443486129119601842839171032026095790490208223852906935179686463331284409524423802179217481461639941441122896578296950916751372725631619417589021543384286806074728820373024010811024492427054896256428340264289487803985263686164559911547356233442858520284691512647743226785615967507992059670063617478945660067886835267628468935440734059772301211941908930653652145051473219683844228406579256429378921233555367742735964974022981904826140421705006235433743841097361186356301202497463890475258095289029936510820238384251644751091584813012188511802138139624092753300680540375220534243182195481305784515369199725745108844665769636669111049189139073821410831302804642427782209010999368875055082843917201633912514753322008616522624738044013003470652960300777547662823804452359667503349696343938784924668651410943784579073686541963750875315899253906263245988274701089972642589527384510473271924602871939481249618642327559467844745425142588062746211167398731500783053804364942732801785275034601798715485148899195457609899420928421579548428271796427253559558320445415240388663843489377536800069906359727758935446929793132696417079443859101994395768435619907195992125139461961392437195201013692317199391692883945246746857513590041973592626922785224548304333318794952355857671230944878458391199303171011121503946882165703706182428093636898706482619614888975116911193987832450222772406067258188613140084710596842554631935189258742918488596099053723076800173278588162530314545731413777019518451450002524877246732508654333634207638028429269478789473807665749903164741162534196077926492562547710252710617207302154673209068202463351178965208297061195635676127907488462557974054568831583088552104277010017756319296746516346802011445272759392119502159659222666689895604075071957471766075139279249046081967990687412849844497779789330602002340297880464332529392567835231989337813064997225264167783577445610683113956868291583433290969328110966912237670181815951987136336123817016820877522229602257741026057313689705939650476029956152436063125893459353645310696755971162808560988893718834832955122416324685614412414721053535140936541883107241328368206704263467184327308484393637881967211776212607925298342528502371946236286058328961245913846946241303747539852544942421397212819968988180654578314205985771038775649245540671506328449126648093008983950848840936090806894984711276803994746155801067881506523688229382720085529826501855831433683656347889258125326959208408616014882553607586268917209201421967113243726394858865697265902681919577311985113985997475809830794961330865558287134839831021384351403638143977282561912892478319940891898962654968766359229666046268551610235531779384094591455945123191107376088012965695737065028195010766540599660958834451648659155448260693009362071178619573469036928102978828021486073502118751128559568814846362218495135708639917698606015066194287648439807921568576580242961577810746069104619122121804341788466708574138272804599345736893311323129023623517707786140118331740642273793780206831972173588140362406280812927316285849412755707022939540863779159109663547833889122918560540059420225283339124843300493711725522607503272355725363947332824503896728214034056157797935201441574690450809523512982230027729109869181346443930327948946292888012554203574024980152533553304733884885694789470866365337771881803498155319596446682307763879512443401890076489536409955982649621728200903205275523063838609866102961323896879673224518837365715561714531270841412650844332910389069222698998209838139224408454609153659541635252376372916339340721291498828430020888597213179759380083142000179395634370746983296665337535991407480982525138133240831398117350043796370728336567306638562284874808342280257588261544075215055927120602032119130250592188201916881484323802868254862300453054221619376337600795872015951936452171340664446519515907342551690569793837387532789621499449763707642429922585753948086712446282508643734539631014765690249496992328349185670109083992110236887632737609491775379968425344718772044238372229823774640118374225808902485798528901010167232340025771590486655018119923586725526479738082184711028025841896367227786740869657491931022861847325365956927513796835595504488328085792347845578233882435939438332928513691710316412340867263635465677484820661197538222406852150465269922112397026165621669613240973849723353223228822300937987144021477092114844834587896255796064852530067889026381875313373086516425189880292948736957613305791204853804623174302159473554372708377947734747597808828280991232968309500447465358254342344959695392067751710854188993900907552467818996430669933753272505148850259439079125973687222736114130979675379808875400262912577106866865105192335808654671185514655440188923114116937828225209645917416308894885012735292180626043366179458091868661218060516991112203350882823572599242099852375347839421167893174119482235255361117882358457743101000398944882308873440160471832880094780851771743481769810007975394600099988183861268290064502806132833692590071154551181710387073654616962158403235201867608732804306220646516307345275437495102088663456375645263618933395489464809153719507206702131370130816246576005196387090302828316686472747442393625155746332295158529606542699127762152068949042132749086491899259250337567710729395598346061983436978472692311667638062200259939335265868214837953733320475973090329759449418794837746325574676445255997302614829633825494686309394449535112529926689579787440939453998612962659704420763325638395196505802625461528505990082020842025859265251832460736135244057755474382784496232226496405669888350470727501823319130348506456524807841868604711481169032671418803855898722711153022991262674977359204328685221613487187819427523138224862410910667021453591515038987408052260801146688528780197983311288853921988118884092282366322361573949555049178445533511920707645392325027164417374478813537918440321721589561876663083629393794729433431008812152248116293062654229576486840766071405109529775705920382684694663172108765632183367576876227592859414492355210200779827750909303872525796726713339292155509781866092743738737254209109389100000540234209432590819974579556954195544195667502688864714890277282018650255701360505150685691912954717755905792519454472809625934049707254902237088326654685555996052234594270190371424574278635044055228179245112781346418927703327551092542613043703899006471553858647948577757147025870448311771333824876687128351348580300214632521264259525635038287030718825156277612944657388643451456724936215717927035686665036271270011368274298807635314768929125505448592776113529518074856604292028099715252662463271609904986884886556682188288592748189476620896668589409848365494657933816643928288946880529376579738517165436762135684187131101745889389983110547293024132108462894325159747955560422217436328058880623432456554506390396349288338157602341150491457668931020175360130558630233274094888522815310342400184130301754114714370254238804989656280194149669468152555840699471931592370097784403290830385509427226827946602501846913266056049456544796746931082645844570924772559903730139684181042459215541839466392807711061450485138345201315303715780783027941378566474231189225902985366596539270837051374650161219092507241388264407697685590471578075875055721043288944882023923968384448455998536129062491423986359163928541296381958730456214256435016320213299357591732448766910637063692188596601433331835344533039572748273278767425017588727623806695127367467762918349159319737559436347984226101468093706596246670744982203748639945249028396330756636792623835501690091457700671154892894189701631819687823596096234811811828751379231148550076754027381751469783401839105533372712107381534375454279043522637398539813306573320569860450011954777529833503934226592827847978543313859179329618836990406945037401603039957389500403406570517234543694180380599536614894718079978740661011251074547184541331641295190656631564779066049494107126213330342507298596691124840715508276303995951092794730665358264245440442494242910727599278539680333438188329289130787981760755983069587918258092429441602705155292604119275679437463001953332375995573768082329205842514775587347353981370028333208626542558586366364736684038359941465813426508438225806165084370117325530269064805275807768814351233863429253086146848707932606072769899117692571434027156799418464117585728459743716359638823749637125074981967413898522379072078912992657884788096287245730215410661245438157366128106036234689200889336114747763159445058938242386104315434892247004634083152504265725317247656067811805949471726720245372785208823428744497554498296831061884930179052537828891003813967922248264308608757099235991974252992285278432035423670298127783631415591683568128838381432461947825886048006957596421462281892543916706925085319132920717944449214735487164374634620813808489396962471017578088825739821320657292760031966909190417270581964991275438831713778401250066333932246293225049923948322878164669193999771936504831708879267023449599012739809409676200567884989114369674916547733871671966867926342968642071630676690999405300192967173068102825753000819480483279634805659086405837616056818654700749962885778084874813523829145018565569958813387458096103387633404730088380902624583714839443215625106558916911079466868145937500552596404848554338567591108008636315218276053133045465189424019937096991585935085495448993076926830565397225763722984965025454374860314908170851685352611617020257031551116267064987523708552119332193837920103044441707073028114401116060153152765343281534898939529430909428631811299448122368329475206769307215147699827128646261219532423247022907886727505637115507273473794884586938250502664152544380578488081972474456953051107904555190883169773504147941554118936679438203782536914979227249304453497760861885646518495695143911216635298691359606070772337932884364785727243782932898207780828267151651503488295819925180588065550155095528566659042342648747334756330151690544237171500055471529462437476175968903102881646718635463173512929376085250573345581152013127115193829895718970812226697443595026366709261205321837080443911254965537697069463854060746036109270254079733218602864446818048498515162836640556434411808712022099116637093334227935735319052344225280894365439151561027293201813625806893467714946619520653360745929485073250592599620123955625593698028947900392159641416470484154719886358965002531995749113623026670688544653495605658999525820201580205907072508039571792815448697181415894672258556593621349639793146636194831068862624237866357815685698480528553207906668407083188957229081864375157952756848656073718014968059550139837305062024389824821294990053737908060951648332083911784037358136869518679521167771058474428172803622404498357780472136274191291986207067495030048649720487015633829550157783886752581663537777057712204622693303758724958146523229664521062701327298178771963380396646026865856561902836152520952744214790027590761905157103979137152267760043071927906762349116210583475191530025329371428820950074709875646749550891628972795164743518469141936086483719252908667328490029725604925555844643136687140802714940329166248270522820436604462665561255402931796643748336992863695335375614028311677948976605170909083779942919715216968545909006504113684220861019294863124127505851085311723638772033918103035344189328999942629558348115565810596350428339060211075392763220998981184230422143549336116088581339366983670397143576369828215261767277566968305282554710741086160961260012337497369592375478625925382102590406690459653403817487234241896074301486282117597636836681519444791855016520254094096450114377909541132333708775785701900123704960037291870027721118800269892832964085554160551984004977200395145871125804047869362832343495262301328797635146844171619753731716365291787545932640926516772547321281646372155748308755758826611781725190592562253308469347198986044257893717791941163912428541460622331124333415854592223483245182362744344611419820360509348594494629366983789558882314102329384937079838927610053526769144609066535525310827729705321077994358994059855097209084467992904994540228991377090853577084680770910715713017142397228339164363916815668120662922988869187418904750409975641376641370381806636152783911800867171984253287796987926901175602127020562671808872107628510839964340371392892308619901669177437985727015409901834690978962242689089082173802438061468675239636348513413095912795279493179856603215978821818611654402701392347832341659627075399247730968451314774055824126438557874705667970737156795752651626352373963866254735555411286498413540231774304249722101588074452110316635994784798166643995610734718368038042302594631091835728236804454711431806436982257111011926795475136379325591097634946614177823426814733504272638396825475679371973642459916205250564425662500641391577973996574557409699666812063627677467571240376903751925740263124569887117512284653412847413287153140662539086074664045563574004696187568883831674911545203618232862692118874608914739096217757089856347642983684502348308790130601426440545310733179390762275892255035699781078334705450041069667422762477930486401879848131094626895377974076722200552780883811026816574280835697128650724651541604700805781083229614653097169978251282356462801286533131518587485035023059876816610779985918834042999914146389395382122969469303167805774632145907483941030663731498809053047039311792171157838035968385107211441323371922145635233535844990988258940987713691879816073554171513681138759048019398975362449974723937354867214486337673638329564448801235678212329137366958180595309929705479628883433994524291528784164949342863773206784249365049511160257632749424285480903425829811914939344674697469136683102315887509898448028107973222123445329591163920091091241072406168720318776265628994994478997139154714469319788037119790446643572175537572078954117332803480190716355373754634956893821660963513487173793461870438654924519588444273377984465292990890526880326941623994456647839104980801548248076037929687017193957041671557894990977610262163886692864970722851865154065005470739189801082863962929616611417928601171856189654299796874970490800936741124198110434669828524108171480673009017565291041074721891295794982728235082737810737217553753232528254952316310700473565689985071134804327292118408243817923901657702111421735293177880863099471362005650637481835241538793158555632550421849145402479476500403036843450238413179968521814726134319245829924740610861635316718225459525959829094777623019373440251372733148214880935353738026635329997250625169138697554188610438738207156841490797185792473761760779920636430675307062324477761014994857044535947010520343735669495581587924038529076506002304499375528613875632396220622675161746755553575059700789490861303666787135944225808708515559856573659653236890264933965963000657557325074885454472778683471271916337550907005859750856168049231451744302145644346706952496634503566698525164441973261846157729114589602432748023543662943909972294870572549786557761793396432076178817676851170795470518537730999222397788619646738157828606041393233207873004877846857187956237468886714237617280742832297029116614935655420452516901041175577880372646350822113515899145007677453550552697877782766285855748175953844473264902252178655618224036871854724370077515135616253864926121773331921000106023839898462999609978022547281806373872521870171139145263931194383654206212809246232321589649249049918686161627928087301608855050756449892081179527161009183139647902859219635897404954028782663395814580856840722232808072577064496642861564995493268522337078999690134867264990172869210036888994036299035882467025232598083266086389791452837852702038370618547688110384284669040076972476091725676725061291941261195732869971547469634360101963067386786936224295700926606005210898660002430322327821375559317973123242672454388393463892433911643202333340724246475418750715148728420551288971262192450924537543199292753438898607065668830484179783459635409332079757737040763978864290133609224923393889891257659599475483052121565084965731541325755713353610980942155763940410332437641923106907438066226601269695946429319205562391116794173193793047264069340964364560412253497167538169174820967172187980715465021404690576497545284145356421988570315600809972073644790954827257588592111798871536987910975006972263534590987004092731574664513070584032414237564961640466597054452754012156856343278606563317282433785864440869582160058063366648425800608048589629064068571344342767918811057884511791732486876515947830887080079340165159492950755725273595250772414139701372747035183187927654965121452028371836503296955513731629325363065536392105846362722350206152319013027486917562981565832205696275145483154815021618819832646145795754374366031870893008779533630527129054884369240471874994946760278122009083792222691080353934184034329093561936608376591309764888364034887016697547521286608821746731382594269136499029047918218831800321648951550304883631818944266805200649825379773981269391361702174064985228285256701271505071704539152974105309369139772533021344353670006331729388380792706785442314174948507653150199051750464580447808441715604314421043959542165752173120639474304680721246257026334201179346224484402945358308537548248025466081430095872318740835539631556440180678289188219858295748088756395604348876735164405364641145657399037781062145220765180383338945169594179665236608221167855304927949256887092325236500694497004923164846347687171458247319377454830902660682869386584803882881662241101197851958257491655857587563305001074899797507914133127084766186589378581359744088282086601035894972887605021285615897633522185595601716643032149284418834386884622660331493726724946381021861947775312772521589666343124172207145484667709823067825791646473309845935796682997307783133375281114068164138375165876745193667144503321696842927485686514602823363620323299291459634405494520557590169958965138639957422071509228389523413055099227502561752818296153541589026564040730273844115055202008044129712745953501060742169331568924126124531992803890355375590762027995655541420935287114789062768725956443831056695669070575878494515803314560106631343156278882004739262399469105938895434343314018478250568486780060896527817439125322140259253055450698810735791010646550366527454469460144797689394294266016805980712703612671083321053732537791567671506792597333835993239036449405810490434996816214356068770402656244440653702319764533313287722641855991327460139252688188996268130018866771911649983108198316047930791192695995162492493037922832820928126542925088016537230466543950261980491594441952492653550002822153254066032414379866301601541373530735125766850123291712256720674383161822433585774516682012903881683199065770000163897968186150026129142413312428947038713630927883756432362376524774776528833745168706118071081822408224289003177504685952701855713782498222925639476863440774717691056922747111514946694103724026575639928747541712343211319481207905222324566403775860492389704831892366278018824581727331595899113473920779603472093327455757731023456892950720977893430860859900541458858832196451479686159522491226035553024885135680022572629995964335664723153584719171296765898063050839480610848744608766567938953992054843282875634872719552461679706282542628545669204261400555067111948637367570367870710824670312170485350537318283400878659654510990727444910334647944911568301727385184587307623653918397588879188390179992060968957930271944968568363185929189575919879200117723785662951348635798598749840651827654958350175715571112317312915252656323243632854262564089665810980174136181236809021794093713138031959786106249265595547620904782021302910156365958002536859175982179915999076856868399023935398360682358340228522035920376910074562767248577267441490408790524995196744620306561505827905759709727977861049823449553460730523953906440060431770193639080991626802945027602522485002959669564654884620789165391315235039965068937226936158948109936013103561837356277289423273269810178794762804413044436439528737520996634064029123610159594604708452616685129320430162142164865335928750787133928358329891073571436114463167832639368758648237461055756486196746001753205486294283957750621554885552627511096241971973476889181694605280789152300405647028731341758854168206660747595908503021744666273896765504728862521994838152278079228542385699874807272564405293497790156982409705553804683514718640596343897282020755971039023465815867871621545629000451962020808256331389095998578247674273825314929508598385852297738873368078703559967538880838556884623754404585116551073147936507366737044426740762574064189790063445468357011794013743969119851288412480198523671720767274953223488517921164761941701849745263146762772299152438204799770687033767471899863668334106637657306898107972752544568960070884161895613761590501535568630212593735979607433538548482209326494379043539937414420705200648969648627202480005667893763449360789780094699600180126039374677875798654365087446958469825331495465940248356809217848339695001950440276480500773841764224033781471398065082667363107167773100394462005161789317413708280043678019136292517190040491195282345664208068235685986105913517299602481069790416590396192611105883023042085021893748372876880556380007688614915711264924367602726006355004180536554372910614542212893036204913041182247170550480160151937556497778630593444067514411395589401148693996591911680081556075253181826755077817307385048347905052322391396310254674425098622983003708386219095116187003153636607303063855495943951815521059728761446269916648203153093901724913548276236215271509679302282790470082789269482633315874800688278116522231388507774813187498512577500777087353703392692921702304879399983829997790915604865248666494352307673004827133720681451769766054119570579534466273971786151525084645188008594775322250711944718693597237760207649808721252307822663171407303462514869006590260667585599010815157051025127653196850936255770728136319285031100552976701921808955408998846782466766798210781946121218147741545614845285406511440277099351897811742428336942696792283029217416033309657845944544940188570986747959482157846622343339553472183828296379100790953110925893643406449579668475177819595677131097541698701432190323253431999552716161536515765826175129896045976759025605408876286205946745669389639717038503104861713088833341588231636227223029100566365488977818152519790685983361687361504528804282226620395267521771806481624054932524999369079782834859089989405006163936945156766182904028864752595250709745150553005283546852554689622790685745202140410272365985825781287802389614444452975265616730464892792623312187363208987853582671679304717384797470544494232831183245798772146981137358668832461684894448090019146951439437875062069242912912437205701427180582758413358423504833852935191914547602513167080240857759053691843344866647583173960094303552450391680734651088729211125729757470600513335010646600730838943664817197154788704598839836324887456754642608865833258659936225548053614477674290566531360161908093636407785765341341997741228597720505962124669241576552443892796061142637584879054547915179130715129241263717414200307731674469280465220072900941110262866959788851803539241709219040722812018583623337154086323686158037773906492236623532053458266294277836408463622293536284024447667942407166323282359072859326131893920775661773457120979197693391904540424648829475914147960458412722444370803865794220280537680501187692985325519698665904260248547077934820931426752106812160832149676537861674589010916337793248404938718203627143465879074010083115867761467407896386876073367763302546370312411331752207350425106899447867835138408377623460966361913820455995581515790513862838040017354796194732713551737803749181934207791475671018804856749492216188198242051161943866074749476876161100568134989176925769067986196293214199016463882353242182700404547873464283984954122244619761008531461041908151869827067653819601737786891072643775914117854404310790667333820921689468584608923571781355875087269842084128355693543868246693330452309187994398629135734968197145220085088214634986402828379551525902584070633501263279227690251971289185479545005845804897343607139969985712856360157201339337700061017935842189435861043100406386523613771604442127266938551831494468327204280101423417415383182172720962801431912126665127904037082424334895204917236943599207760797084521922140790515530268972468828933411563569494458536255103099962950787619025748433129778698037015202322114311478502474476204594343194864433924983042321069946675826506576012628899879267092325748682433545852204581844242153368882357280657338009072635148823413822760790502588445893628771040140052911903244670726806159472391049376263666454491574611984628195173426273204596838359337914612180800872361863474990442464353198227093842350186666643017283073189331241913247097955397754063047788535374183628438535537579115918702503586526956007495793185878417363910412312424699335460445402543454294107642512464625388435874374863689905790640680756127697320746803290664931780042254796690761212771503763932287102388619844644029247519749203438548934977670352358547532829689881926037780322420135855333873404761965573538834590057698515691991627957118145900436772592200852282932188464981150699377568282004552150586252858027114722634630133220900268974383768008888362518175116473301487927917721068298134224686551338164816861169808296213166165529645418740434597580085313861836051193075760060260585536249511747066873337296767127684407147846092420390414115957820937126145665643973028350104265618706284439954278298555127694065267073548023095629072910570482285582941268276273698627425525818180420816729052967293367027169919389297367249440502084806295461131124799037338459885529134121428938806961505575319309472752198134486862954995061012463018838508358002137796091824780321149644429092734813432037504121352021396957141593293515745954323530004781290910461459052088499946174054559500226717264744209423822941036236845724589060860179817976558413220970411079909003083494567054851061350350915141938225372484614177704668390474313518458539881147035826107408929164311299411622677143233267554756870440081323724998150660539487973224822306096829587608103470066093154403899270135523749648098425722930609871426516909541565722807650750304504023701061924709195673798293072353701237730722523845712431022946727870816020433237492526541707548203977762361161893188185508743879947253792660082078488250882138525158328169078131416719618239673699717251644490205029926546154017065683913608363550339236956108089245819615613869873490518117913210047853563290205811215152613394093378918516054257252074756320882174325579166415318097094477743486755106683407994833766899649652885303886773844548652240538964579515611279739565741357878947184062029355963873052332796577710896709622023038148656575852733381076332937128941962293728482243278950583925343513333466577091067584512225951190617329773053581554541539607349667727902830770270566777820686396753108186834038945406108953507215214316586010864080264978106313278959723606279639700973076420808169378220261230300487289168149249737611969815452162093937943967261303630899038350264370367732541898593751144572546080374921026327442854306684352735289279396614750885090336364584461466646167390095625604734936365146780835181157918831315056738531246451359980556419954201790560588714591399218739108942234110412907144768033168815872210460888802229954208337474861842266442359363271529041135447011998183374448909510795932396069925880649696992524743033970383333351421526331851882892077138712909608124901377673540003895023325462972508283948374164806062005808599568614634136707836210741466950730550496188147829317179244491696466784085847723231222534814524058221408328778495559025089483825369953920004562772855208287095944468882846715861563196323674324558745174618853009255703754769161057422861203228918018141913959935147915566115676874366762678954988567809744431018057261687930579822133770482638102934961613723701136423779361306481318673454142888971096304608077997186389264203017139622671369202424426216888689799009902305451229338596511962819458944949547991435841858183193176868625608073655054211033445955696158949636591218852697824014554504029737810281596937993690920137376228690701640958043287041381355900571936392859075115139423941072095766304115480670783657798410093634055235611902983695772122558828053667754267719105820237925932120346561691344884460403733434013231050176671197592354942586473778012125197823176628618311116222270295118964571038639947629529959981949595896122869807056496365702387719221447756193839978789474940250341965352561299516974623750958426101865299379494897569562386492498485689833570140556028774210241389626580556638731982408850268262291908072678586881827054609359405375981370976596841524237699682341742168066776703850030736399699252157633556840334740361660287277940387030157751657775353244293411451377427906882061525322663848677383711254937328697864343241634876720627970017192725297630019566131347644309035682027757100581977379015589064371269196645410203152465938030681367671076192490905145420077482656729259346354037838482381821078169801382479332977495393493342112796711984650778279337751714590009163325442680933110163827749220255801992185256707818868295458934937769153381466286356546163921544053860487046942085463532775702488609613043448885904064935365385411927153381684461731951115447347012914553837913274705094803607059952029057522485573006236613167885188102366907872054734891882272131892320750050075741487405293118946136681322334078585468802796159412741037960899461863985124294471738757134492974038583843520402954611803513326057272377019686650970226461751030119709355046377648346559195573631146940950833056011516518415482603094932269018235551396458456893075638559310005722565156108020208802976624580433949344421985269676952004070617167901987100497661807460991610787012082297340017927730750448170268720878604417903649084262823931456025517819665130596326258145229102523824285581495506879105824439028838725591985168548010362364631941423225721483592399939147928633586444115612625401103662652102393542292364790559028809992449692127410801973925731977224345653962700921379163970262832727713419271452149960481114413063890308101081795015014600156815836691237154965522597148825133921844190369388866684716085209915297449563393991825464655709405020793618681334355148480572816383222529728870742833808558105697409074844639355740672046260556130660663768076602373723873918283123199411298322619889324013185246826992368264963406603206437297788011953148627038493174645237804483596435153617753626983417431373995412953362515314810144292557474532494628852321458417769275595004091491778887984981176233287139411175671839178883338407663982129214038452430404846138795323021828767537208743402729961863868098558042288452651149023437962710381586075656843797893422115443557927732786709621208076258365649572019731678389162927431433493187047964746016515250718291191687569893701808470323840197140598478347849913265898435074390447435178139856093540253519794917495962235607582014374478323158369422322205145023277898649633792762328617518665477285770313748145934411566723924256597004768877445558346045536196646505493651838269853029651039088700294608591286971172291335168963670176481062346832919172381857987559601115712127474527148595881103290030331283245147263679056365740698348175871441208670932154111304850369326148007424778750493236196268553924025191184797469048729468952105648662845598817207076073193713997570992536016071013723473538317540127582907638113324992066040723043451957089216552832166929004685602097161279839046265001400751442860922300509102928950888063186088468939088536310500366840363819109149568831075698095515503562659161017142164944728408709906861580734639300517721986109970510703248702763148068311811862223248095262495196948461422374965017704217721543279848979453560438196216965171452343825895342492554107441803253414910383294242741189031590916039514039320957382092715102241901332441720508884735816888489166200745949396350495865179554502153719150464873203302826019678242509051991690353492629012519837300357305930741914597000792604596319849317264735169166111147362774712950134980502913089715617189184934491314022453081706664495392682523012870690110400955346742964936238586165994276883962074862011540618048601712766238224965309366569445513141269125128991193097433912564784986742535592920797198985239165556336157512027539387986092962665539394458598971527180821355257922066724182793989589447711617158358086241494606575287042807085804232516823485006952470938684295268294162093988665523817600762917885571282164251397775136455440267973687455054013744545091231683944581901673167149466755085910637834328120562993834703668541073146372448867985841756166669077762096205097550882853699176681675113520053761520836770466721031037431508734549977559063212455700135576267233832857386132452156104021065539288266277000928361328537901335648939642746942909222073955505887315746210668992698001762260877593664249176185609587976461870713800348435755765195803517349757077462463959573010339893316723784320388632291622691014308139456089235628217085134886378023539395908072791183281169007875924941989551825096558900416696591144643333899221161126667986189610878725662758685731599618714218082313083475139886838225851089492857161856680272274584089427496173266109622849885882268093926979838185815542985053780056041649769375750789324076848034189425641591751064008594332924221408655470118738868347709721111549625588239023952092530691047837391721735326841864794183757303101510728513524858966786463762390231109333704281982305232879053556882725881130943545225170293248450191880654314146517296645167920399212615609861975469894387920760985101992703848987581673117749415490893136576752316875511229549044891009477255567001196846949465958592985546635790114366673721140980741978858967230626055261272622244801385859257802171262359116123390483078245909040629331048341651197192815216868667418847257736937234079199610290967847087282926388640723002480119824642808954431952706607200544492857711714887498128347660121064551799157395613476551779736091450843146639465526318661254233231544015306945651867539999822202506291908735014827761401857277883182069865512688803389478765104331947964219760286377157540740444985545269269015010419394106334140015327774950290421655284494350220840588612989524841372456741435741788963433205417270247868994938421196387296511230050656311511391505151980068543341959107282027452047229877940398148287492142303232385231606533619612875738623123717406901672053173711145311859667909117444980833988449977096784388192437175784478672746299246262782832213621448072616029089271740287531794569669143280056911010409634179660643756569157811561421749649995604140431753832509874685719717007319707542844593836467855330485210761757906429365752357456100480839262953091168341600896502846645686374571422528580497543308681356566282376208413308778726165500228086729982452498021503214798971226670065716831463178527552864593207312168940607900979082173948963703686531511286376607563620583069635489297312532318715872475552182729272448517325028729814172950097259740822887237751174494342150487025174359588620959353026547755313241681876481399644895961564452826616615816905769556245305549347270168122050729040355867366232823259521168532988469009712397821807314905412461711789177791384090299908444434907985552218129082829824721210472249846700868750636192119088750151471904581707715282088016260084911081110876032725996059961866344432617947670580595550430744080910890459263041268724294074302581106519905403941574447479155168745918531852212697014890900575151530234595957151389199469854483443526487948473909662304100112175272915139442446508872377777078438031134918374266342122226191680670248486950926637789118935829758190501821550266792440238123822963910410649085851635583516924335521399528789156988797385963406929557031500234071183671374932671160535512081607601060289611261107170866823257288783202899530509536232813626266936884519167482373200462333134994780755999123160875819381053506378657774781868483939533470147666960492095182300837891214315960521968650119047432076386054278190749889378288565604338116799794658679408034684544144291501651138290542662949974827310369098680414717566444280463941029049123226720240291032415522657181181294046020731488303562675033995150570717600472970733039163125665319659876037448317953153890435661475817114259653894742733530352557658054319465428770177962481963773445579618173709353514504711706222711304250759963794598967376532811854627849808395156049870367314443082253907302688818643110823424232967280471403893966629667661200863656894487601861203144548932285119134560793085091601274119312273594912742012808724074237161066320855075929772845987512774328978349400932964156886927676982354071325679889679810647884506320331037828578696503700063751868014339052698108579354967094901199409133277485849471867408165447154971653986667338696851352759219910073505524359494013564157355438352187485382758013920065747135768814266277516097543097598923103643488076642049065525890622952547044422981655390821163120948029214733559695556189537903464011434013271477156844122365955052645086412429091692734368955880574854842963886810771584188284903565950607603494317274131390763910987075016221070801725581823852659229927320349414659352768191509542910022916953634310253703881599569825234497368673959682928845318319264271013825551900572667146077840930990017322682153164778624653651597874344588904613860907692215804369807867267038065107365466794839135486050599192175909505088366808796701741385412635756767484852357550902476070515095216842395196591416317937975496690089549465691141362794817480623478044724254886280239923034687613642285080482483641033242801919973352888493656470764857509884434163134747797560829666021493764015294162854664418559740883889203117833416687755671229180009888359440547866207824991208248985573295292711650835187826496221163870943291765552667718670394234722967784230939978607558308090982313175768965349152025565822014542496154613823315396601283084024315863511778243375322847901930075155186778306403382864792720983233962639369216590001952147370349442863261622816984603667822395991497381811383832260740827265340139282781909810137907412130888640809339815143994930981951599423953373921090900434006459203872588335051480162891748227398511082135163957924900554515791679300547730120093246917688199774713210912663432954459498847477560710200722278949733845767949028294559686386342068030535754476506825961100059049872316721270394835986119094923662944785899353014949773591115183599427944224691211735466835489868026768287538172041070026816803692526599787492627675213595922903053498355381285716271229030927606903147142131896595343772143654045094063987063650838114491218182891700042599661704314992585505634566767256179794525452119963148430583686790500275181956629942960074528593116661074867201646854109890669421657984877458533987160554276931050185867082632031411456331649766218942928023330788942895029351085067592467141719706720489624619407106187331653895315178506427282993139568669468997180259876219507429025502701858230458345542926278687261346920928662510402279116530255033988425261928106356300458574559291116480665922364113394132758555264015431891808792214587599141098381155805870080422608091639142474965794860352254574147845800984810992992247026227601412195668197186166482234404555964926815990203547268965402475165073206055850933705414796644354008236872475021392771279052150833906969772018518093383484667786633281092948270104830246112608939345758552903419815838048860604895621727894898220522976564282970591220283009565121814428387878757494040754742275661319831163927419679106419787987666521531189878850513642528884531644898270904951949473563979814449330771856135339148688058074452764913579624204806396474835145642404254055393764913977033233925719736781079801129197238027317139241020796678499085602842546106304312720948328657486120567021314937863893767243056402077609243390466598299655678439755796069652714874045636070171913863468749702630866782756239599905000490871337921838275317877923871559599503243511603699751161386387976770828849474796546491187478239399234131140084466874692600948187186536347917403400527052821699434344863006852787190397178902940131468543545170898435410438839802198776391266768404446141424979567409472085563770435750759339565570762565065381463405341448859400088901653172987810434077221289845859372907574781247401278464349309354282439292335505314740010912388791203084038600544431290712199880590159504113979050485365311610675589926117049575981668201993249387985942079240680581454799507695223808500226253446381525641047918098743611094932799082690733576084163437610338558945885515491799005028656808059422560780395771643955772978505937132515587916470497597089146905536547413829334247776733416665643637409097880105981787840112363849975453704765534774483197305821965219782550276990872746405606822653302387247659917356415759101672607047322557527744775810954355351535135025273862402801755908220033807092545447409571834801576034831512701437637436018609601613088848286868103041523519888462689421427659570817972735752848486431587249250012372785617213903895709362234804288011700716584422186341798190924582940074735817782831832333457008014471497481480597422642523072680837413879653211031275783874063983321264285352548881190505096659410057812068524760761586430864217816977280383852126644585491472839179494185361850588602510105920446627536671445321593896164247688833007920680296035185859308665265055621406231402317202243679535621299942030449335472108163188121071866311342749956769849484651718578800289746767126092882612452372643030702923256757416254836727351667396494871033120551573200096919200584348083028884164060983335768749895737746932607655680413452642248053617994727635544895281019162544472457128577294255905886768347706292143175714235093261268203826452015615067472350200276280750948032605792141778313288546659873463299387115115947394665098073558049003379524652352214974555728404010658996331021411668421197558189181993228997231519540039467234483398538192052285383865623236597026271941478943307217624272749587200160319859482565124565072111188987026358489811800909648846451174167830537103218610973378438037085856172037509833674441263451357355481553815802982757605732116806453566345532197439207324581695614429618875195841319568739868087801405674856108794652794685140195357224281199414685307049853143814204568318251379755406000457148793487256829469994338502225480599192572315333097804217837154023135741083490083710257169853396929203106453528941510574834524857974113595049284398931832968423990521724726584658069961955740841109101382521162579712567714122823323206080446465554877486115996740355763168659173252318012823668466854202040489827553125435965850397751073910547046823935032787500983082330750722054457038937303803959923945051743443148391863350662569998774942589379324136522549392240362876921749472512483680200905184640422617056413155858833852865471680991593044498199856184252558832807151562334202231396432390904396636209651857430040547598909317794868540971459206502068883582821561059785452795181654968098510498308161891417503473824510166446626462856638117278807183902008999681768902692911834290538356316446465507849803877277450470971603036716868913986972836686408392477889857732089398559650415180247347494166465170748630367651520463256398773290297134443168102060810379837880283247849640847204903010811400099505042591741393973513850896136920674704616945540114109042032897124672132813332495210230971963356481038201046937886920667976613050724104432937230635284630882215738670545781221716864305761014011919392320356591376614966736006727637247973321342016416635575022244493204406657733023169472338553383605082618691254934682183246126439002121728484527141651995091017442449599460330552566708525555552846888028341900500839076080670693270718779626950781565037576574956985996716100353089557292187684858763010455471584598933947308197608232704773023644187699549038732196049195221015411524598404074233209502865678053968451305809011658762499191432972699164401595530420728419884211587737168706941243026276062593978831230413832999002656803653785024113525030002327629856483921646914415879184526919475999978516697863317246064706450266038876974272269056693117844196111583606650260091442244918294332144139877501499180812643452183383099076469093758197279248067441978662000362746552068200296000347661017323658329054666343377574445093170065983735021809509706493166871464519307143540612168521689994581226379048128778645722467765355728177904150004210283552999092244953289111188453189092334417190321072818530753711105031622889338956543350155087109350184979808692227697446882463798773677170591741903455413522619622948903084981391081574296822280102758422217907404492867116239761520043956513204346067799338088243441519209255371714399189561962428545196840624731811406350672690287359629818223266167779527473938825848680460774407433021520555841042286217371982645519971998018829101596368207721186070546957454639829437526668933938253680908356848144980479314586816501501841262064626125854024495359137241547998099765594592571795085557266415324763616906954573722887819922868714270602863564748045268362034053310670553298658342047117580961150414434045522645732425720491672595168181730741811209392818863227552910795341913078605817834614147255464047436236959989772030184294204922549008585365293748845047535749738769983462892516188686107713200810865082966095873302134489729213786621627286806688634117390892714281337206352376353020523528655970637219418029452315537822565775542186478142564871338135677447250162368951671646925884453757301580566284605579673802381474934731235990333569754361834730026289946019481512682875209047741176781997053096154982822708683235251200918042882623283727262452841548720699639851839919720572777861721332614185598125188302342562310443733775857412297948705531189082686030155044675169267762246683073532999358517826724253089773738592994077992835411465634247363854170145607276252062359353972227502900504732416325032589678024599483769308460327939552696702109200934479732841376685551596335134821555163313279490586891230591456840514430986031224316652329396629902996433340679429745264147973432322682709896652534682981301912893279496337202819346115651361676238564918374753637772395362649735329522165106954716696523903347581649016409778854755566402876739752677447943804595683301429499977014427863521731012619894878093636133865378335972815785680918530135501543744381378193367647014091430880002761456391592105831191222697244717615468430565151727398052181962404553982268273267233925285896127935606136448318239849278482936403351008273112917905231028415109347480029825429150558656986135195258901958746547170591842954068777813029360889751257100916014325614740279661709225401398897460122936991368418374967739019891993786640812277521721553086459056031268586118984808295493248128847138333002438478709979241401864029072743347095389422538461205317840630264943286786475681408070297647800019866527732995731705429751213390649447799782089967945061008469043726459966967496080764017054730240696880652562901995085665704533260591960949257982861584751282720799759152740390651517508430553432989314523440907131478517254817574804471728110271042338586872094954379141737940902351020892088777328005184070641065248369120457313609542508422750002622543245904194228391593757407454003402434326061668946648057705489130477497638064795321396531085167027072462866076412777390374656531610494123146916334723482351268343562816224817450756082559653781673261653623433570988427275062548475435326788071357286104225304170407268663713312862472015897848961823078232483554982355148264991196436573406274675026493531991812363291795416980493992773576234506729339764990498289900598552532275784275000390373365830768377929825014464214912985618373358377365113165137785927056696584704077996610912478185958848332681130609703390356915541004140533060699758405200173366446592652066034919306210395579443619575820487463294173570547251506446402785600251311065744035018757418214706577089666637863199381162891428959049790840649581055507082549750171992191644646821876350854434699034165444781980338542014222719940219006562895430420360266842772569525139707161592141062086691326947930362193227743691233525228187679032601009067504518127841636533685467369915262428490640921627164854899010576048344917638758515638844588846249859014069410033851096608481768489204831161075525510416502182486031390142019563315359251370447103727477121009339727891113646532428850678967625488603966159757758301402479130226090088008985160928372898189178142001443252981653299087945456494237531270218375344934205348500919451110343895060488376154220776357188232036238059929249394274336552123544156778195687891457776430725284564116071227259725354077043767193329633749954456448306653353585676939697789412639860140570013114039739060335135035863360399412762458479330710297676281143864072244948670298330679582271504406190455239184060292823219044718259349142327764274940185607793472450948661355235695375807947892307243018659791556650772986836355148644991936169798092108203364121636387777501389315305021153392468035185287130172708834609733550206586305605471515356583070443079627142410656310664474794608549133434054005971531629190243481371329259610585941483187211234029568308869384696736224583195187479968646260121406720569636995557663674348181372926716774895782600468030988226125647897391405962805388398094576146968604948293087034798892896285903404630371554729375815395501508853474697563463095884835784473355740941732983141938726084226186681753329834504774151372212409288488949116284097275711255786546110419650041182049740001177288301345978470838265102253731088767105731797588683488681157038734871654083913649606088242517192203453337571925907421604362120125465401327829833422278805669782944342737838754433115016292811683297144913117663654335948172115784539215495275830187431720195571227472249394254410225090010774930682308170952631089561754629860122437619530351495142791271703785465615589759117281895361501586689756979592794227756981433020315097790107441498145349248181006886886277246587990320574285809109257103959258318393346056779914177544382228152802488428381536377698139600996531288886997040608539234685711179900937555424197499411024940008415516371388473875133821893742954506211302983005339644305665687837853174582488181877857069497838333963155102674250303229519788943996110717301936446121150233367552749838460408406107727645194633843249826459713331003504415035200486196281703180836740064994846419408155948686061898817132927141888962859382760730800970506272096486420357200681890622971722340813987074361718113365815981277742393632596039380111138865957028413917705858520915684255437192078715048817893689170519775211826112538446357837578023590926038226677052155660047257656052676700835847068753932667327755966310353666162732944460693805149123365748682621846473686889891369729923866737812270829861948975179142866812215298741853885284691728059711435418075057250901969830273571919793466972990607456106646678806449615548086921083944116505454263188699899583766070270397189044591847979668085034550256838533364676395070151220128788417173485967402593614636790495429775401462394410660692383048458021438073301885158505573649614582254168366526221030295265512160086791065641868868783155375415165742621497380081200253231002100716660987563236823589150099348804715708784466419177445898767778559489903507708885155017714104013440331595631216395340537269529598095769859060899235907188360025594019110899205883209931948618991891960242608771541837611872440916431723173036710149606633361134681489738126389496893309565016871369099158286742438549233097785337061208627782627891633041802792238486203308362351990961360468795748529941225636270852908323792688772634162426560160968429161224498150144782871235757368198313564598258490247650682037914339653037398151655332655327827892085641565883640858701734072977282851554586723643928769183248089251799460927410100824215840725457967349123303381812340844708535946075161747388282983385163461974905019801214551652110027361800863802131205770899031792012777808379013423947547094315711744787976360279428480935320108242816512190883786891428297312703103468060748917611012726108472766865418934067502262947111757025407926467342844712377349282961547203323448019897189757710951641401174442103037430900972697806180780112602660095438676054386769935983125216252096540331050034430806845392681494308820861805103025318145522366358478918194820532399219933636145812122291055877249522508632342617294382668804247995375311459619433665356942197555108609638381669480566697545774335313207871714665602550819593226475207011895746121702837092612780785395805172082401077066535317390772490807139197232986442358294576370762266333281658445443800182906522346437740973639470508462409209693278961096254710256664409071678640476447945161837239082199924857962966332441657155893910872553924693227472131346002756824681929596223178347673240161804511293811540222271147725257405634582423262221236854887210927760199175329724466215916089242460932124847350932113868110753276913881889614302586540123057536025911980439794970646068545768042034190959589524425853156015936075832196171923243970217293956398816617482040826321495349849090931304421957511394954574215010258343707723572430020902338376742042582563925227225037288892307335958114242399390309735143190004030938763800597249335035071367439936616564278499385717439758921705996452303328784094582032317940111666256332122589723030764475825388854374525619836452952715163197435728646263571705780234151121093013698621019377431708394706220309356011060322778081568488109667033448517771745163491121963823874936850787462682030953749323225330974598181534111127152704879455981082353119427539443357217696736597243207218823809011610830641142741728754470484863431363134534706690921491353656048958417445852709085856976748412568920821141343087329533854437817231367682869703242376610638222986409219646899844382411891435117864752834385562193108561063887880475506127125684608436921575445389130597083749878703883751516906661330880667936347378685549786624830463323428188375512388807129479294435471286536108269656942293993507416342309125737965253869527751760106033991648914586894966819764668237546878468834971898251501155671027377047502670786601643159253193164996919779986074663313078559567707340273003169004010221324736504506052924056535881221970365691300100407358008870282036572924748416253607266510570905044429693775471491852237613988156160265399391468528163663717908321341392295603814974431227146497674548300446816507819286469651706498647232160696245950986011236488460121166084750583610178824567785821153268748841368036378697906226333282620095997568000054989999030765374247778337501838165060582485490014160865399563963433248107966434764814743883975118897259819069559378554034386711597143249745613899648596389807050815458077343613032198927433360445019620103760877779998341636591227671928308395708312260485624151878622389154583584784575968360542714443990083957425739017124216412083542549928436110994900878517817138464486804361832319372440948748154922141018089675343611124866419912571091363655928250325244569667232785538449317962662712396941502710804714974791507527309989922573433089056939561509771311670321775068565223504648516108270610078779743635723219649619359830608068040728986707468134937535463272329589267128594473655869802479232021764463250433466722052506227923910891964874711591468039015988502976962279662618108266780927727255730459870128223954518398850171762155158408035557425963339805365764986949843947846147587419131318778198612386691973928991305832916617908289321385916536331723398274872842551568853713271721888888674904422901461073843066449348300619599796218631285991413378645731901552333839709115007686996816482705626387123038235570918086120034732831225580047845276091399683338615672947210843010478014467287481936820351654079747773274847802892966955202126334919655944951371783873086029969559717636328111343298230270525403892249425144992590496603415388648383018846398842665378224611266152685629935673214165151109591608750596339092503050127412394944241310922519832887722359738692225115639140181499935202125485847880901476143105534510642272075683308413310414332459024926340154278508320769644110604457158721010210179853137972142892054662262501005395327764782591687903893513480202827277707780840010578853352455405698706748140908154784484928283021641270701571950281246047738833058953760298160221635410957834572879667096042099296076562686438678551429584381992416260806630233719786507644890592410868789925438926262563088038187706884629779813955253765440192165486498221987939143685761138607968586344547454208863228402764255102474745028914049639831292426547741709937600872497614911726130333091253082813853725783422456501394045186064424036492660774260612343751014909736957739513236026660124469762776752911295061267340831943751892033773185824531620469192178578311808501264061323555587731370309609201241675938538867432412870176088711226853350019650353487841544544771418455807217060789242736864430123341267481725268481029379187705280789074831752817989714341252575057268542569145511321329321956744936338987865324103853456914318523315322437139327656452969045472765252592554908076899440108481125607758036015980082026510848971376002434746568184313149422308977238721923520365257263506395006777813473895952816966636908364180769014385354186567185181742556283916152773171094497932153113559656975328391695972971002745158063090733112947749158991318393034797223563456684159002015860370219089166978912130954022753536479561602746048118558438541779489271065589983673615601260453879546043162069419603198502762032795070702914986542041216576955191758908630476144669562195369560765719882688084931514546172791477715874677210222637032246559429851110696374085098304367220941788376377994129187130584183222958518297029082976514190209207072651629550429778895559274884807374190247817400834317723942808473114063493148890395409262803854385889614309521779107779689756614559039426831763035730391584295919057961325111159186873197318791316392927618648246344069985777190631681365300688604118603295961126385804401744764234270868554408868727559455449945443214521015054344810199390290125827735507033597665967262026797753089752064612631704498786974445862534829353033856012378883567154570394731967136181688641224751955447854801605091736046895515281574433026893955404101025199172314368601769976473746977414026339581720060504589190764187352890591842606042437545370925771671575831127174760421038938093393362864402528369202018118121520771678197238402934240164487174046420576000284613391161355700433528695343129612398369995008935539762695820757494743422712642001381010851836453067774527726350160003789965527510016782065027576954638073637361084433779548853553054879726936436260557333386054332293660698159281714935677072185805967785523224657251626438252232154057663429326092213822353886396759201294461368069882023359067831345876684705049664326970456520145656528881078714742788329829310774120226188786373403103885093543749384441828932077183857900884842571166827271664808897749846332797009875162344330368791229140039650614419574127228714464223914699882388941391147504545364793293172060765855426971346893326593591597745408421357929521627709597560756662236306843284284246540109458473182703246429049767654284969473477829515345515252251748405186639107504422267215335326569274791441784885132903964506398978587795244838834681731456850760301761791922887201044999981823637982437160054700738943394192305149483595338624721636293422867267785156411433558293557816869756267253231008719080002885470579458844683285167497351485598945517177230650988779035875374793907181990555796126529387081363558861816506300618932218322070839508105023651450203180011840286122142618467574954301783544405669430320184429117132855251213787987762247159525307861043786189095067286000685728117832836194916438309248804551120998665993543117181231781217237680733104823306795426980659704444432149916409831031040853406921106695827092746179465413995845067399096104118426076607103809061795125628594124587615776642142316380132811176448789758536687799170038934797303599528343632454747562773976980621202052758241698366383990737202866856865534389411203419207582743295316672857043384200539220997672653872665533023051545437954384847952065856457237033452832560756006209149789838857920466061271050734724799848540123272093096714579509539784327714714162470463561760744265606588975658201128020448983947201629410429025502842332899308282912990522777862321953850097390920222292984289547707286309903002611421360736224840983481976961602199628250583803487777569546658811872272180086625342431326037226730112911550664963985199995501291770198319691731451464697272971268075388608631235162176264543253906006012576644811880302291201219090911570689589977428637474015486125757440239462287833585383540657077918313730506520412337223402256783232685641047173123863643920200142278099203464989061369142921159034081386219302624358445877397112031426618131013218066413695821484425434394558284377339440988429305622421721642981339282108272722829636668749729263403897797224764499227863708471061077640172745417038408297027732273148764748349068272013797339974107603240756683372747969875005565134517687151728391887276104429484558054135159942183745022312698180468171336327741171233010840071204179339724615294397654772716153403508636610605775412061170880137919539054578633537127676186338319895143287934651278924260948488511434429362177902144276355520460557884573416208356228464427272485816854697162135331232752996112901078849847885474415052648706728402327138369500370302929336819335626487519542381010734281513527759590968154035777902657142522090705816425379733002397867029479638936360059031071007685770502035160017419535940817229223939994684725426923673609005119072742857086307311102985219833300262318159785148873733745196449621898998710565009402298657892497580547525091174338060375387855387524566527380226391983233523105972269980702950962441869907414636882894239634459506371351445836723646551226623785191726732866863350939254840480702113493036900239590093109837762491879539236592515226606025690641973686656331631807336314611306757647910586397663547412046285709873654216843605831873507681581726100405362053188159415274232866754977573922405434263415027156532864766809410024332261977397626188109421347045546755203377746602045076265891284219807807099870944227614997144561835282537385739302005187642091729832684890157251713039597937733076847052336904482277158418125983834676836661189274976129368653692633210973916373102889577298773305246831940681039992348937535557608091175141535401031721055680368110665045607915958707910808015983538252564929310621156804168715094498402468155865965529759202979601906662739164690844571925562273888138136846806188012807055588413936811756250976514625097174093097117211045602300365674212807575943775964543869305729962812846665747709156260208492172587028736799206612483673938886327834750877439249017760755371289596989545117445146284355979060287541366641592253076873732376572010206478306870435247769094854661599047662413098443033366707066650647939345568533982411892686843075788126012211100492443779012100576450983564252407977364951570783199210970907720198381287019188124970402307448134228639886273732620793688010670671715751986852985805771084598276980810188667071660228694297860910585299638884122647792416404047657221717405933204473525230993636149714155685442294340705821198048270559186210078907339192441282183923163668345538498100238381752051708176263435436580848971915933015016923096577428816311101690068749687306456122563784910829930761485810381813970913650097483502803671674305790131670800896463924431259334997860436338372088051726687938313046396119225764203488388685037723704358972685681287202668058360423378520309737162407446938828249448789909387106749901356788456508067612797776857206970294355961934441431501697105322837547548906123937273516535493247759031607625643437911709233493659759748731088361212077542645530450506486586300688397443306452853476654312920928074108636728776563288153703092153162155296517164852772629728599946153337231918689037952291124269637548937259268267741526545885625023141946455912324208208846899262155793889676882102185852763704494171117303129913248749033378715498511788084096774683466699772102422449932093485957843104603370505108115330141635231825509355568887732922746233122953983135591402216321586588760545791302221594460026667782679590156976198468169386165153824598757766964713073197020023702629050687465481047272249716237139867588221543758518115372906054120295940880298677084797902309558253545561065143087510318178600956797707856392044490544586084116951809664050181859633299168078093590199105493249839760123958504840187596597972888429811929382702097269465816435100574539969448713176472804439945573013638388248077452722567681863563945287170098921359989017851872044032480145606658139033227411400807088506914804483257377039549780105951915044800986548628860470602830512128218176206244952606121782865552905176201180850877680145755431733181283335658815536535832458289153561337558234437846428964164145523496644995064013447099173438819120546858165647960384282064972373418440515195286328289921720232102078438859717235149110680922132618472837210161497599057390792731339910222004565445278466832825962301978647071099865671134042656264396423373941744774863031076364710035093033130810282969833955895071787948556302147898758310908700483597488379445908436364493122608300798575072424922404701565913857327726277837978317828421923623930973163790824847628325799539332974140114065872233066330371438546011899540284212618180880622998879208294133528167253515530392745594447179902435696856524674796728756684508067723369160303955257598881755188627647654250024818477323480569891734915169066162830834236952809490002034498767906361509487452081235370896323614794012872892026670741318829889732271556365609005403644417221325575748402698195592166629127360181241662029221160282037077147798369009792283014958484490824631857005307413790694127479960093366973757936594217043111196070378923138834805116799518599681242405574941510003063770233661838171168366110176755177584915285886990423209117394504078594488891272305823761689948086636393952312726324017715733275164794535499006069949054017605418413874888748152474103500832910332188093218997879961130173227771599670608521603162816597078370517271341241111207751477923012614467197102876536642815082353691501043431993870797918406147346632802261568394135104895805652890692349997199655256027047286540613556510847898737120664795095959894527391300047515331015195232810543885865933188272093974751713610795746419886343979186579567614546736383413989368384913341596058623170901356464841321082961500271717443173404805954555652121709535378614603141174763586651425908720802573558599491386483123245823208582371873275660494942116495490763125871139217125316143128881166852467221173423073855218777601017992925448690200138812746321226725371892899801123495724007913143239377241971586575111238620883017814337544828157828389067059594469808750608328359672762109025780452814763428845277414816156205004109689188044657733174263544058189866072500034164663742824156885094306220411980369505825159917689366052847990358263702425193420803682452229483321567119442941898866829744785937261683044599885953396718962167633528423959292648045407433218103360040176038484264291821030854612476406433111790393576796237248376918982357627089870992386034104058084772456174737921667382653710056766408776204489317226210300165544877822041659184448714422799650840082591749640986446646139801125651673403424871718141633455217273006838823737956635085122544594820445552552307610533684908485392649860231445899426084475750799700707008987733824472994288625246088443610791045183165377235141634601734176506848325649273200351661013475598245024238473367839709622060080492399996395961367816051809565756887512824381598881690488618187293272552372549408506677690259453827438768201461966912679070296843753485478046946795666103106097758901356084850641291747033227307983599052170257294385863434813144070194160561498955638618332926173882033277998097311098717161562177044519269492145121366597710592264019238956839497062645583763740469464748664240117743097245661120940919540310809910400822752245411518872537807198675999415987180378429328132436599925058446798298785407383204081070867910908119760880667045997610848374839253535274330673149381843251120012047820282844383762807223397655389749123763695652532973332285055570751109601081186196797273535572204311373571515378386328545219187843198531673286239680356018174300259828191365876279986189362435147376579707942130510034717476580282185526099315973686362989686634909958510336296080499564420775879175275288775327179890011546619911010876159840944533838672003446345462527718976952295042660983671405250728447498713146193623081431343797602391880583254311327114162917495776168807710610292084554960814348202896819726284934659126405589284327079452353993939182862002645404049313491704902781733493854157860765592998960725779254953563399849186140953460575895131542766929598920243012695201152879129719569697936664736534640491125364220272811031816005333383821007532767165267375255839387204458403548418693753490855287590833419334009385058711026706378010369137442653642024890850096394265350261170477529197760020510012388543138521561438944206588816605210345309419472335673055908620044297985004985935032681484525715232489192244953481015742410855534571230270711865851468411016355889167739366899449030537797593978794488758734549705997107653258981401303819753259927142112597167696517493490489148409553777423630212071185720631023150585614738923517777373983177116274216104801056410785467997054919645160815312494612299435174890885953485654783466115141187237340412000490518053158444592499816986947128859723974646337025632233310183477353074321071161943812154466696915856812672182285575001698550722032997830136268339449085649471548545414942881085130930031033597020209811728998676874327603114268813202325617388452074458545278433654637210137657243784472619746341283150532262100570705508309974385298581433734059758063515620057206430466948562169876580035206774084057425893610462871622191617803699599951210801708451508128310914114269710860698620420080473452552781787921573770138971691584104659812880937585131331498031543816540849794231360378165691761330174275861458530777493625990434414488398077314201809756949343399249490029247537697352658697745939627364582271168647033845645979904965965018128993559122582713978340490564944662078431596947568535885992980872315407369734071581902094342272124710056365516910970404619577011010079627367701657305273436836069524031697673290502937982595221397950190184392304810765145167681212085060344071932571480533773899107880140966069183641870198629671829641838248836815011248005302051944523664218049911439260164105663146651634470494737635401701544601271278815759029833549630683671664808294689212839423125981449271993202701592175467194916491162828751098903858572666923989752276314836004251066369951065122695440998208151756367133697519102537564180865688137156131675488862221311196864528960691259296049183684534773153621777743290028571825882576079841257066959884459341815553035162814355527346057063670892567274045116411214164157562964759226597497858556254764251166845471724877287032017200336706669829153275136020093562757112578338925594381608021230221871661526703124281011352971746702785400887683846405974812432016618900832379101052075474660927772060041601789180117440683537512227318868942429184800415544581115225606592413934340048194148861491430737781684021072363749010605110569845592076179257619421767104651923986094902954273964337822802345844367622438622941637000747835049137634916465071685597254789577313671000464074380211753567660503039658057725885195939336871514362743446352165782640420209065144337515447063031264310151319050376574045475291185098203664011669281992245789829195609276276631288508269758784709323383653122590419941336743925985909540392716814774255519081461769510979405439062801729873356290351374356269672180217694209713496553639720388718367996262964199283506535015713893520680140532882577373740667806198735788895567214971085957203320280693646455751383759809182243381994744346130662837943096254202188793670581600641348994161773063016735758727448244554924562373869930555416590584140014447009319239185197582373594263010730544215470975856579780578796371070851527281869206257149514355939370236793114195088737672204595984550887300133656064364161530465423085373728472243377117961040547100605318341634967133829551243975947224950182157249762703869073853534483429026273480373417920922779572818581503028904240707673810189070273394053932239783854479737546255844111890231772688526617605737389345091685147127540354831986153860801955176748958133474011940555637195621743426888126814928220125392151279531915986209394666212494957675488542022775694454049813532132118118715486440630336212337509105267653793204029341435867634282824567990634849384580644960496201051726041601122927054784477055563363545847713116749297785353278750394761202603521459953711209420826013373063514590663398426544586610584642720819547895151645938014609541645329563078903647500116649963856184664469324845010330272578637019079736433086514465429340627318808006442360887392204130144520885571455420838169750670531753399403703946460267673324430006553435022241670236031666973277269217360290101642037311148229226501755941492264265656990422763682840193045568964107353123746798027569447936425173726406144233389613743469958559914652053342521561638426595724359484698074453998787461404413652027639019593832312820021732149604711491360654180130822516355639074687716001256027995394472322945034927716793700361026115507252188638882238755797593248592764635484326443312510295004044069182504905486467043195105925724591279083145000287414331268875259230401504184602858851332057834036844223300325612727105664579542452615291853214205291165569180316207533741916186757265391699864984759271123323174233145751368572770973880252084608931797508211462490598570611064140135435617598715782576456607058624481303824618188225523278999117438898367870906882292297702298500788562246274492398543563235835699066152053061529726074269867356489859327339611218055150141898626656310749362704265201662652929440172591371861851420930485934688414737329311353573767568238407052664270906484953143513448718200864795460708578913670768916287032488263995641670935784344160260462880532909051663466324676270350038044513027226511638613539997551900764234072117551599557494471299745285293927689688682114296156688504940753626618492069872916763803896852765974165225498892102939022632102298713054137473828971333343194390915188380464863945359118308637440845058588158701763692232488582934046198091603638255813269914439991144493389356914704774365373384195327045836367164686668066560935604539035032082024980464062368228885934035755634775771842664074838754229882923120935881915891229686898803185994320608536205720925699668709382005872893193337359627134867759903411378535145872341801734084607595800152112690456132026499368037373903168002295125470039907650086204355780961386616974141969827103524926104800480580778871637735072973092407656881820718424728632870769664306779486613518352364853841933548979035867277983428500108102625125075635902346620011201801301166211757712250113667563457628693461908777952963588324864887537597221268004148827712461838289399497786051203077743858678583136116144483919511718451070934008103760540787384430223986033858484222642131888716376581132345826119371716966230262615812026682098287223197997693593109342801483048417607155512250057619126446096958189331437493041539853680014687995859169473362827510858665369696397872646295421335427982527836782329895065739356835104970931387728065145400049687070346379371284518440711804698141876126816640144070322522862688188159271113630151991349593360874294714847849785901913491134813402500547417481780752600242710269293602596331904889400846668529526150546442476572097275549831843404533119393588314270218340116147994042025679947323101146364059295931178990899031183581175780039363492169354801888194659337357212594615269719859596870530958409150522735877433520098048866517275964001252817163724524014259211280818715615883832183391398625449956638774113569931776254721578401735277608891068509975663493903846775698793240602703707680584281026820014553386326773977215945887141460281337877515126546545537879518198440316588487726066250379789030995821887725142168253688097556105484979666891408233001499970995204346574650949111796167896471425151503042773336163597194496896052567878428007983409209546908507729032714940528205485805543274022830153821218373793903254521184373306510044768536373183798748349933130742001856716108585732026710183322238431276624137549655877502886399208538840992604490240861238270811177895354008448498268100838949057617728352065484208416270440891696833237626235318831181837902240672823473803940906415560872137360423639448419701242655214121722398257138299986228031648519987306835265407600167216482351252062183793888617745554951921431055969454814296772644398360236609570097583329993267882049983855456257531682857668670481014712494183119291766874042491023734655256414859011196182342255218341161059915329351724664136440904385942590697484758677946836610729283215310297936317674561872786461309202248490462955251251656425580292089570877474032101896873204963929037935307279648058118961970958964144253846993051504949004424518769500614524394328326147899325416423932899153619006841845874038394880475210825963258235502219003910843239900850706163548283804860770319863348677433317751342588900041237973408816513880936157007848569116649718987332888122665057192695465639205879592528999388279508455859836587284161980005687892463078026830523078444146471630602720232168809614778833224613338171967988399056795847949487209792294444387029945243481023999197871929356842712413156735114712236948895482602326148806373363986158320151458127905373017646708508307715037659948072562740831768846460772053105460150438741579755397777101075230249687257856531380450020485784529332403468774381142173763956469030908843408291378016113501727507908620594450990352062953649629939806827638098443035695885046381133307839233244113882216866218750837102027947694262466003253988430424390794401958493941040165966508871079682608080321373313263964342973444322676063952032330514011457730874952215243008737239773437629126797576613136935319951558302654960000557982942177615924828111011037014988215837758333849210772718519709364630687723853124644848916256824358856430621204010265725656775787726603786800227647887474518327890029393720147550365867591238546754051519798645161391168444002757009523971418328669636162921400235912035005505548159693684311142910454106658753385484773960211375418466496749178262749936984294682719858827509916544650889720408202506526384534274491180094437359726302301395915315237024212201291288722720048141295585025315659093328471819389107475827531955931262234189273513553859340810823188540010006123792919517116565073285048216456490580347915751732530299406976811559953305039589958047137987934811596186536318079184789441934345275776335909482082485419418499326324363726356024143100271410261225226278905941883037228508002474189868425681962162426997505797837061948935996401312026575111033800417287250246931283615385532603474804919634464478866794476930897005085894017172371304229731804216301740902875336722838605884977892054180732143697611351739080811872013521317136687208831849561495792447461557680129907249345926240014054290969780533255549146805226952944789193196478660153224930290015490681768906295833681988571059925922207863803762594697757649982698550360160360190522441596756074782619040647954543708649131213641521755328111658228027408783981496748857919439586657985209216854343765557236781270985661476602945890926111008611098270092385138789938543685174146423453765626592347541630845313695530757548836321938566721465267129762411013381551409957916766240525158868889702298969147161429461541422094383776635938648383160439325891234829457334351922963349907223541285990126510010441345870482992166170734490594737616025218326077187820523171559116612263469197904106657002801323801556619806511948751527736664309152324464189861977082931987066339654444544649643566760304803701965006183126318490857932885161999537657903912433467457754553329067942613555146228612975071122221571206445559222952771353742390535268414019513180480618039255412676627449804392024540300212950448834189489146550830316372653527394804303630530170378471114603753833095914911708191168959880119064931018810333902560923040219771513797678243928215065520920274107086134338907933046546563598274364283680670600757103826161412229927436136762536856047766664631162145210304824537262233294733330254921105297499169770069628400467733956429457338582228369235075200737100145499358407951285992889399326670855827703755630662565714177146812714809637924287899394987600634441900830165286693569044260957537577927419397632113559496116095669202068283417024718584821891268731029964382566119148883864049178998520000730608873795246185973986674867566241506714510654350548153221854516758321471243959037907218582224782327407281993654980229481376616752078506542831925375110275572837434124832655989726812013369299413625978586858479786470181011769896204680672445399577287755992737690833341872381782346517355751966056642183106943463676720568937665596411511947663584803609876125191670293497992382131071673986185258262787772529582036175012133042506503838191503554226052024992481210937965329591404936562972069345154840539706444597785728420885196398727172062589371204155893515735273678928026002059058254877198985833642053356215886557578807048414374729035516868530205154314848121485449946205075833075479628117497064382102289136827189119518684338593881463978054119078006720099716314752803751374102597939534745401686267023793856277711710506973047944368839640548245024371911871152128285182364765870537951991310952341346473244927893285612869488818898392458819898156606813789412848994049307324855223842795695183494048703873916170179204316459777162693917930499453161520079669578677479084890095666289741545453590823331145421715436496982582089508722112664980024260540144222289812928593734094748404032564045827500665281021982307243440889673642101128001638311744859265624301576818779397669073998939842653425494320271251384892179936459783798385645475088612151578587414729571935129018487757805916289427376379461600352897392152899977852450324935813370699272201430256248971351945570268013034105985349247260538751466039934038520482561169455615416616561005036073681286006892947270710777649892922893184990134058993249541279704390733431988258324613783865950370209757850670605209333129921155272808942982320839348198923633457584740943676413661327847763980501010050938391034120689582009259305351042701576175537929803290687533867518004001286858365546078315260405188639475494874370547183367345374758857398527485472400174156213869686639350950470132693676681587938987584494670486907600331780136921652568569596921985687701141103936001017183487439430143414400975100675282803009975511228998782036219147823685158102401525669695264115013970338385308363527438827399407944152588856780892974581143751581625566207725964424246357347922693136203092557431473117161024915128850112859059447110379827145388509974092025254613094250452924995044794300746790009590823051627481656669802254992978815931251377662363136345334065786971319210663399865843425723194632675960157153207818028885973438987371555072998711485496758699288819840340471915450304504987066917282405891820746705147223194204379932548468410863237953791515493271339137223924556701089429836812283394073887966512262970893463788700656636892633912614611158086126179845888070876117581529047999582908396060474241966449617364358895880036429001738039414096558224467587091527078584712107586564165451425890918440358126741907342816556422775769379850690293444136228001240369390511996733546400653962607285224129602481071695467268477062724074240337217092768462529572713544355136154640243624043070555161889105425095242746690922413092917722133309148613117959537923943825816306924460317686667218105044756988128768288460397702551533811749363173094218140151588651449881180533587610410408262187770474249767439779977643100319414828851623095318929848378496861723636152350413222025362920846745640274184082023499740065317189458551044172405277078116785071153653452496343120346471815915561236794594383197562830093932153466741240507454462916605607048467778102424701435041024473208883370292125533164011018872785474197812677313621611519524871417021583046297080528921613239429086148857524245097941895958110588713492080230116481159014174274913923998986906217648136627760187275954680812145137242439772993616342508427150937742309319684544527085029065655634905325091850607974437213284762576123749212537775520003889879513667079207814747837678327866650032249296486901735777767596330805743122851334424945848195704749858784096727985998800149539771781124698474006816483006641532173812087210224345683383972059253980569945868047071442725777841740168284391799674230677332484251070507797090143335875283581453802028957767286681349582786244101982647881386384535222048536212546678739144606283382248707502205356482566983075102819230082409610199094000964028722407336551967241107619649769872900504451847794159893892617343639945523562507010601325271267209244566983945458526223546664810770252822078976872245466693282900851066605553386876005355756843595859060809831348593544946076518856999935774194162084284258117984815222856088497477057469767847120403114148599970775452198903890267749270451138248564533148346705910154978936711483990139474460623347973653797997664801981249830272767416714761430095492665120495593808338319115251322684452669365596005560783402570689934830405268180246626533387481463928666448319520676211400118663487306767473245890565873902929770386695620477719669344367504309050336316936170667371211285295574968820629736149757190916353217129485516852181915443130381012889035984520011534163287482950510205173079050997421025917938314093347663728292677008421263188683166192904776621442802760188822801436188253855763097891541805010562067205932657253767746779965708957734892395200379768162292593830824559402315262126291260568068100794822837519619503412884414037213517431436219381149602215561120194570248648960024381910745940654705070415924358236792346595328467076351252639732406448470695678051649559069199194840627411264719790069486676194570685881240326179391943047082789584462276466752889217771828988856760629584845105265511709292606868905488855352902409628840944809054819705839808781507967759343591984234344700149210373855402576858070359908079672588407249542344160157136363798206629683499030331010882918567570825863095435309620970873353984128225606499978615505670739840728918984190325231948961576275322932080868630483100676952054022008509142579822798536690382473209027469216257229641098161495487804571532277948826172832578806714346868033961345811847889572545396045040644925444489476806712055358372616285918200714513121003396332257674595455803756684675322699209070706731303821962167943676482774451820918079261294154676770912955962686629897420335084152029591022931402960236499759306742443540097869885268269564014951600572777296130175340174575649501963328400184670485631006640284818524101826480511014048854341302236524733900411827497532083466125390490100603243204820234600437271348285488274643059430456434214727886127740135748651736550490713376843871151103412071376906277255769235401833953788895811814988108754750492550296101906832251168538911601711224737219323887435507185548383966331078584700863167133855383154127170361088859035347536280719691225418340192390219947603023472414675209382979461731000685301265087070819005690914828005680923110672167312227521268465042998781722902695677922895606725044580937153911481234407088223610120691731765922154602204741512540678389313415746586185771815995211082343680501634104238484931707692307219794638460062670620431000482007051522126669120545452004128004154426782437309079950892249587924691928946014594864458245844697846415507470704293940975289998239551640999008531227241277370803023905634278893441792831889710894474879378175893057130083347730221115652143523946443976051347965412885830458465088209014878191596069361258949339438924942214157100714881587306819196825601963445677437596084142845550095828596398507452064330626351630893736113146813301070844373829421525785466434566639486846821558783069308278019910897029016532670116666511443014826804996144582666251252708976374085611653366457937551791568040856798352830970031832557139538889499658245210546019907901597400981306562018631209753895072154167935948544667887513880014170416810910220631803955778223825463706091032723435380764127939086218966382356022622219541593625911028125302121540393952097444594799428479598946898638914414474024222949321824859108495153744446087208399581393153293621416371149142856608153609356526298635793021661978549038471596682608794047482719932528772061286509467143558754280987605262552360605655203137309040271926093410799455404691302780114701110487876818670599426019722387689642242334666353116678525666833523772933046135198994709828475133764204684882689187952296945520533409122165507084531329720768846125201341768358125354826995645470835905805034593047963145699127140531692017702240793086322462704704244250027113677809942540798025876440517185410951471507696984572595839187534651499669931550247340922152555827100389085916246987514060046697573093359181552253461759782839845030556902578566634010573753876554113404069668999872203704120657740904571112438377601979514972554208428941589140839527861344146386556574168659596851727042076096974220663591855782156730006927368851387707827679240934391220028346426921437789621631372363606360506726708650857669062598577927134709944607557729515342007090041266719410942604652273630067452665954483581510305147544128075939913302695624205113634069812300890143752025150303132454320377045252245843547627267627879805688958847204978622200121486148504233294870920949739952168768283330834005332514628961769337392344637951812574010638553051418962475932125577068236143802587914712148026044808532100070405497853961706441216797764359226593323131300923001109899668359549039688795071662016169650750384281922011662349191580592695242025941639640532988409973293199587539607715704272963383205331366000517868178830040808584130022823650305739187499286253558102661315873974294074612817833322966431489776880055889879885925455339588366714938795554300090563478662377901121465988576065289383862015615180837949048019644566801112512432807990841940305976965207139842239440431124439937431516710570643454943033926214043972476026359145910422760794844589279520636999267190036506859835922468077006086917815911025867332967102425239472517245111726614712338945103269814352794385578553752899872392281012489383042255480679610586323390132328402296428272984394512098932983093436500675594055643487871653106369888494087179716638311195297379222013179733073619502752148800834351689514270151486695803152966946575736519293111400702770819638101738969766976948207196224694815492393376480205503869662082667403293537816026262329367098807749090534907005730428634591892697435981040689883219461623847447624296028437083591536013128448248967377796598699514829007468624211893109982439018974064313588447703893763632066874031096567911121754535340784148520528951637206035821272524994285130074477219988559054624112813524162323067427336170756114092551549744702599009660754055629349982624885854422096512558958292490003910072079639499868753495010380413691692029740419843186252016716590746384201775139556898704373660692271625478236333835144622418334000985552432151447927621555114678420727166313757814104950772355420653732690658275979610065647571474809970261008932156140170220623160831074419194148630229179787978803502659011541690198747629350979113298426588482095245452155272705561345520325389447215482107720315148579285922106034302143358799059898013311311557748125714764533849162274774752974696185479813267964812509597712218227292778986329580151053919159172242773656566291972756111607157795725625196968038355306788293276930152473252008490320467482117038027108875527416587077651424781547520793692962387477325864821285746791209399354368145268393180313406218290436631554872658249971937824265582205823137596397009497780556588723530606092757863866618625155924804432706502372380468787464381968671523186202387026216961278433769721032487886405192532524606406743514238535155651056967602227289378246555159148781301771592390963234188790765887675678295441472199046404430666714688366020973169864092181317048141549167946303269539835807914349872171068506079481476278870195370929074314882182792697608713935774830013180506166963284642280271692498831124479431196797730110886603734741003513141651488334910149176313056676613656290959222403777112755657020991124076659221720167339573739292476877856086815717270334533934659135370881814113357326967986272305936353115995003494066195455933595535272685551938062120080018692019621233093480046307143468875356359842032927827281627794614773197396815078121161682384680702425837155974784271786325968733105507580126107512152097795132878709033479553441309985005817365573255367298071738060922899110960933911792907903255953088090087000064415034518462688377604844875339641972632050655754588461464273794996318302536616643795041117257108618549744235685344249108251585270355347644217879148270118446037483856383224368043543298753902654304644125557440302118826614705620702169553728810256229363352366231306308509638992889501850964951169390621103714408827120837815924880006259214484140326845238071883303388547952201174515693279335943599565431131222375209510096389759645696484793808384262512355811538053869889407148919573499174033404869357340849259537646770678611787809791561860114634221997454951842519933359452847332771123112385311412471916879293194276474046285906748773736254746997633682744113002501462250841008211214627060859220384489902761691901673499082460927631448545702216635884915926458798596009688230042918320621551874310296131557296649960411917958786605719389914696086938319033265777058518254804788712122326841273679696497430388402324572514295103602976381190089586382758013404547533538827326805710293803304038246066257175927405927900046936858171563880142601710442176508504011509943117114028637407909452082724028506928760291904751219599707118687666818206712454441537739553951790541457502432672171534809884635113234826717470330889628720832324863816576305967083673935569749915034017812991323063247759786814097204962567991840516272609909825729140990665787866639565195967726788196643158398745049877629346040571079595799667023804196336939196469511216348385433660053814271396773215114409974313078205276170064120628766197405108476965572433147853456841712603085122534472837645010834169841989462581106076039605755788814982723963447120545615167217993493655834482218898033439403163589562625632614111044864067651476773558766626946089009311144276141229462791304547863161033424901366775475970603836210629305111620154544245677626386473191959134328535731816983142924283592125607258522405102789945727947966480997201429184001308591071538166811228269553253274444032230783891429332094745802184677538542852355101189830885173323876524046439866704422584261173965401839762195235416064375768203940200104885767590861228751392747613042426175733460830771365789340733424753918257599894496825456414199798302415338441030866921645895722709803662296632604085768801098644227165513850304500866052658122890899313216958427238070075314015218747609839997477908618573303331707185704699445484181571193772076077598195343380551632178192031135725207357176897665458456288219173217336438354282295230838924749886549875229345913380659614290323406152060651275667650615102910220033908554059962808193645486507440911951195606569549860009618864410637746413836003876098648552739120217011853449577001616221424031956863048857193182726282207337250172033252266027395549549115737645613940168488776079518531302107273397256626419810919279532832738034513986983659153277720848812066397660258200737149316104775608218733133327873592538597751770112402751782562066258440905704774025012976243918736170470957284580198042713114502925208638247088841084305631395866382619154260742976485185306851909625022245633969218052028323012458502338770829604945065912944214414038528869994818029352417675191370475535437321363391008424096857665638901035352359695507741683254940385847845187360835928266029539730973881332415261943263101576995335555968371890223543112781903426226480148549960114242724665548742551408375688246363348522120114826600140114473944758976911894406578488356982224083780242672167268171207381491672647719388929578404343642919610575942248002980612847434656292567141036148899728414808963450420637964439966499303696886072465783820709891139051840175253426892800556355245510067000665160552696835901376438192769554973096370840817522893591219852237284798194509871512799703515157290020712232652046670642656104464277896792496120700544871352918332189811146689649590923740285860048547888954819282168502442730435278541567324673551551206469084269718747099845090336888936816697625628161024295341772802833918814721642245675417838105555087161835584538654064531979691703574492714018833271568026587453767284179596841535338445870386866945992759475628063033189582159366707211714036363726551478265558821210206015386903218795517155787171452856708089280796388156289553856526648548807652771566051883077164372457732292564486435685446309487938394545964110178689138011224586498701207104153278658071523880887040502193568004395416414792121801946252364662318267243907752540180596085517594224867303010160911144835692166752403758691021102318188355087941131891967954858975595440665227662886780660249612504465473399887663411014449598180924564537458668620537250997339175589783012483262452137236654653088846471963603514063741257433542222777499256861644973634364991821509908536595650154225833787800749835031031302381215553028547648334326726469550417347308161908632935152068049723996225428295122518110750358894169040521841582998006426818749839659011908145613489860185885353973756521938909175855075472320106919836541662472017954174742425377280962673015312233234931898024394257849030464769930403819533386114840525172422926252863999186063573802305794278915285699743168976241244852049731127024413234631945767848213459743572096502834014277713519430191809286268549092176217644730699259555658338391110558202128168510632415456966890495279020698364596575570602386229464167438437998861465201609608269805111048070713423223688547926205982472345906902283158950099384293975678070116214929281756288273147900221509471508573124882216966013509852699566850164095062966185696708943915010921752882730595920742374009117987616793059740588554370984537423870407842307574631725643487504561294151884638605726725510600649637334041412986403096539772436806489525804901430958542932753398729166609524366292370882796692753618231085866482630050291549868964170668516413306316002552550532697411193413808346343724849010826645810686409541975257679638615453179328473997330541486392847081348082812401562437007811573483337479610444313943191689186517272559372500618406530014530823088648012334727249962743628059045059403163163081902721887225456564716163341668927998969921572696224510546407527958783732195303945197404336935530180958776145398311649713507653898532540411818335586185013509210477532738274808564015823522039399801958539080705190231774444322392868634371669847147830941140729815389248196035678060538952880489941052197835993652070854252533041035577721415762029051736125888210321971713863304846690323353939253752101718074469947907680012772599934274483115440471373948184355171540314939983533196644405543281696632087990927851451593696151812571228579210707178892007420535616105402585273408552008858361794220741195117902953159024275733935114574297268642437172926364235196948870475679479633979091561017654883155088209100464072073728376847309947354722558042182074675916360666863852261509931453419672935951844126746308740851775448114305338962876603681720461816036773529115879486583865059647088611597859784773460064493720439359149961601801852655103195951344723294621418643836797496062497700357578462085473031519338626112991566642365239187426862182926334480866031462123961466661477224113916501163496477562851968910247251653572022242814201763590496000623851634399790920919329322253118364866513784250901803028375021613642240217619942744104629055812129914555204429553969680575650489924848486681579673765091694847008206918838920254725576368163872038575461530365368870149881461628383037949641960867917081200774311394640094126335786139452464015908051235556293213791882217952880963390980087222261589124580256921505265999251880537731632659981812205708441198978647089235306684283513743720456647813761715853437275781537034337466359919946810392481726722652663680690525074552561564330263092067016213183325884899803794657082215580351245189248048567894332129498019907590528452213779232011458993729014540053337492840440474741165334568326762453247735522913320780864881360413092996379603128424016361284249070241979578155912248049610715536747962354465852146368116874359825467292762378470904865850311132048750971316939890438134868364966860222069768126295431646246299571013854642406462195890104242638825451144862444281328507997538403816213124746918490289124945646932919550229536705418215795103704887365489396408996496256462737581769623883731093551728755983517976878312547755418987570429231403975253050889405631025134961321902147710127315317739075730151195090476035052981968479309168728815912039287056158594902447202492129908917375301974996170517131547817862485544237411484906237413894102823599621508981150948386749044522944473766525113025518875982792548197236831222488097947323074138231428757403482094778904555421931605990691793495909543663187472663073100938915170648552177395090321873371772255468997611992820489678130097127409624781605135105909306861000571733592682762572206489033688108794206485176142691138435978430813734541674036275169915630473312834962652417220156515862788659705424294127181794147721715262037021119499457078609832558499475454928830132477206662745880600302145673177961375302802536767792222990995642766374999333145913056111918854643570062290622862312754180120362714388045566048466600484324046843373495832882884192814917071092402476823739960736547377099507701432461940297800764434971740579079671007046516206620136586384766662533022521977778350195209083055721643611868154195737804933892545315924956415818695260419796696788330456895320333949168624554952557683412423845907731070647208052514236472738474435991934583000211422588458448146362391766627744956524705523212124700895812455586985251929104242164162925454447877254779706725122256371627980501644060020827334615517110277967540102367944171180126850734046323069898597193201645979417609634048875928771678046014530238519912635407931923530094954300610543237372036057504343140196699949901874566287957770242445077494833542362577247934524193398525492299633909782499162368886931739424141050881602461470240317584528084794304301661321533863458270748651724596414591710779080621190309339164250203943907670168542230158239012627978592889539598967172605956475419439338659408285144070677726300083382890126278455707908744886080705876737353688836677466785348136400733068132604432623906379987629191889308497502269282363740478579628671647344384968821120883150684382991335727316004947886308808335404010602479777754275015626041715996222840961289145250820907155685856754093611374608276555542348711782999233702318958291134736124138031995114323373062214848428260004517267480858349532071933060289844075537043596051341702995198655424872740279146950142205382935418817957369880063258560844958941659585087466001149881848903147231506275711414219862780493905787654485678944736150352114424015800032398169060442406955097875780503606044805438199083665507816465945608754483265120690164533956094891569074083884704546911804197273533550811794721776368007911174746431427685641294996693246906436025891919849311077954201382010304914757218886176614357353073215668781297401497673072642935987479561071211062485988856042016375757963986730616939581181020410606858278166460330319213218951789304209200587554795688775439656392823313324885853625436431538445101509400782516007255252392618069234899590736376817217014275108003821314848560385142365749036714938671222771460469544040216498738268526076705555728149241091226767593550984682295574490320989300824507107476596018357728714766808716518480645400976199593141698173407585267459616282325417563866662871547489714199703538119526270359805137136586332957359204293108995094212042753299226978392978271916294635838559492841726273486269084240848157267481213708099724349818145362734525190453114517271031910062979791500244496135177128244492471077764352023536108293564557399646455335876676551184875495813505794534371643984796282827750589255039254606333136715976630739525575027605881711192203342575116782224049900240825882607048181974750233551688765584213725679729684143818984344690981568383948687743317814026045175752952263653598436248807701842004801818141243537711796722180823864303219078930210502951856678260087175811953607373978557390009007533181399966749591448680870060668222046556566556508602686319920706160764087649063117636631118364736130736191632672560828369659092396104953409684669327546859100465802529595327565246985463275391044202416423446073852038131162116627466411867036393539765112247214955999325880642373780609510646682818666029531564572599612713322417557076466754159638701079033458745973369878359484624946005813085936896506644392001733250572133034640402481008755690358234702003204268253908262208809208256953648421569904278042694334585045658994514981443045239129806552771654857896543938146157317269418952562063839477715715356626200504254445836603633958646737975226021493748675910299054536370848525416436459772540980684360525296522158378425662018538955281681346512007742241087873312282434344639038707473731086314257111690172879227411816477436041614772791646910239414297851050954538988154409878046059459361371025254071581930581920505399178619839249092291426256121114346093507177869866813875768784928177017799182156864747787013732814480953407218404224942485595172501648601812585762876273441509005957657079329010475353882406628942497472134675653987057613837954681978844479285670568180300858605938486312705951568630332892403627831942775443953521686788474279168538769001678041612712151148953785750906484114211848307842044884695937421164576513886822030765424521421520956266693390086830134456483715725622496167033520087167449243397186021688291122854981880067899452093530675598755363678796505626992803839906453709486052578114922165899720114906312562933134972544798251626388921253545406438214195785905246692748395114179844051434028935609720282310695239492388159039629606054221366068340323737697608233342574772219073460617754799319381171661741596548011313858060279296928106754825452319707970888608274742549009965572693084540415410680541192302168368024309077863644103505081797064041643906528215608499882611393628105422617739789761863867925197052748685975233186590169309027628743907435041933513899779707244428157919630499512237199684969234890469451031567315577579354671989519060017236057159601902548629648750005022593125683691990361779770692295841719467014071538011767114957732821500223583278113549674843615157842288682700444523134005026292075722580567120464962647511329259320251322935106191025301823421096356467491864413696953781021533663582629827710104306945239999671091469146684358132881550018359628826294754968818796418573882818493420694641203270838171544153726403791852355838991422881958564756603301574760518969421419522476430986627637920163843877608721795452996102487660179114602848713585745661455270908905625847118718121974369306731859338436663517391820635784985612838148490965809512048422690944765114667677525300297506607223814971748831139431034233475776349601360743462596710800709019568136491710007162314691596259790551311573159875306417398736422210518189300321436410128236773330559519698729350893083603221740241691530622562875801313227035744514526770068865642490942955217913966765868535239019073107602497285935622414567874315490252500512970349107657609954129451248523663914716930216325377004726551603116749625669648898933033307496659925693509340130201298014707146710959569203320194665350589903905309216302483577784606990331110482634258206099265184347655653657310327856607488006103715106790692149518270684056451593231571508811704164710366702249628514016540643978132628152761241031018449655375737838548731413263203116365882771306682788094623046374417773623672951955718506107474974937694428190415613790606826512790358423907610244268841950788142583105410198756252365562453214178974623229314417186885909418415087752394547106762491629134293295201508786698246884724451240735166812026212208792216560649781397140060885344592874935757363712449129668345103452345332602084272250373269699086668189996734989989472497683342636010481375525177253549304554056313082084605272585461058038161095944879005886974264629218250324989619365594714614679228317729110707566182927475228505292990623112208562480718474170277992025868924851545208199087123748524581069251096047319806465557792113445251294596393279634079595810186015752085202803543659177896486356245877025403562520374364670041031651645463828411029830613689107378804346722223825304669411455896918809911383355903570586074956093739176856629404975153526483059473688520869309037858789323024597946309411833622330399832512580431094776121482833493995302790179433791515692314655963268195539375659570688372224831292762017271443987351235110385319186267754399148125521829886802358162528744427749887225736634607028033695743426068453300629365911122846860244138058276375330724755199583661959094228760542665008740362111494034183270702038012980707062122575604069009078478701816769349804143831361701123447871881182668502753315601228715979065581958987757643100328307338501393840265364587482832689145917639219504488686463443446384110790174806195223620997036874726397471518025100209120577568804945256355691341285455747054948939038052120996923407534269362071295954641214825620261592773396199705113882414269875476929340551490670278873284499893127285155830989686770717092455038807264250369278199845419572045293769199045247479524226932360049205732445914553376699392746477927994928257518648342852264358765965819698994443267250463594430905074744905491889707089970866884297670912545716431480134599654808911983877803112903079550658485794857939385351780495429063202666970128864956871705901264501368249647969765415771080501994992292228728577584867552290298815868767320391370740079877999042973160819690278741400327814675567666034782580359764547272053391679829381786246232862746670624495229629489381159925185964713915383692369320051857858939503288574585834354233526693435453107328342806603732048194752666522736979816539806531283495379344104688440622240463456003711759322652291987452498475395239985418345024700186873385725099660310340779092476437514435960482292127533785965544168146988018941843186431359541443045205523650769600457581037387291266125866518943164411694547923038550497459852942449194590777414568877627397705416934547721785644922409049555785111311928243996131470225924056329427317185704499393793514651811839953466737779794711650863171060831747579214393781887832095708635951952519803932659248962688331669322029097264016363790616456752134074504751452760137914364425158396606029424317415903379681019457182475536134585959379684673620253896017271002776337491666616580305328072242000711516756245454230072651742713507026321464965779344053942564186009566660922571582261159598956331239038857884784324749225049193230210939260543574108524932385792097440760751545242921545881176986073634983741959453802115124257542257180983186705362966331140593561288146334240074870029799030184630100357441460995457174829750307849971315267985658743953791595558228570733065650963820813620870200306411340447805144695952533177290664405746438171027507562212478960395751631192329553221885446309668867663016359748378737690450464863592345067851987579579911728852222910791257106396020953538053577311560534487916915958020427088618397024612103787415811768857283934042951237852636156289900124330472641655117448342565055919829738282770562960825994284314477793016344142683422483856025077293458516479871574128145425612917733339234448805861744216119130576727257839742357848764834243386559217199743044309729683674278652791808371243756942248542023473342024400110875440849464113345726578375292937304196191757375158832651257920204417068476639466225685206099904123097164616484935448686995088636979614025183184450612586993835695085782287587849345600842706536677640782404050330158438996217143747708273255547435771600558531892740756205198994374195401383617664302479397567365839648919367796821091868283712869494593346967682980784205673437836365323653051987607790574017161010559933665809525903035565543110089156721514297588499564448765858961944506602001449444169202987567014091510391275898660456832849698821450616804636959856943645487212279104327222985168990046379024067865361368047271853532552689378358397845678366490451770941474199883950266323237916649530506586431908308698386286935175559069617658134326934393395063837946831464607049218765108696670655328195157638366459748467801650277828018669234319029089360624028728266522551704849279520106165309591606614225878096935690886706577547701397701864518610975044029634831414937222791352932592931376835360744824396479991613200551590680453448443522646751577428798192443423516365634956837728147875943600736267409103243764721657985911460013722800120216617664270667234387983188192862870791453897677468027399602235140547595716580828905300127717816899688473531685297118076521680248128125500035975893797642904172282728326983678173239676601278428719157400818983098602745295501588157036274213107165208324242942718533704147288376982658139155963792583970298193095175808384520978519213124736774840081727648364732922778552325716549934045486752387858910856321259422526577911951893929848656886981363271552032999538753184679492054187557409475811063009914703397484862597742236531832850797598679512772931458501497892138097810922754211387614046282670957849125647702818520783342374355922690466188514011550508029174998559357675842372769669549765578156965527345307392567323736142828576612552247176416957432895786016869210376119831621217647659434238632499930182277018044118667061670402992458481795602231842329902585669553211194057974909116250554560454970038713611085620422756675130788955079230959695762270808083068210207526551297473722550214325018875440008022286454263119867377738608270559478827349370122358878072713484815516335797908110805736594939223270473230341363387677410352507936183966097000767391430947743768678566739920057050394774132007383438060053675251262171122607609127231529547088547549193219939292971795173426360202466443504229901424744989256849664571443649940429603926850967792525776618705469098749962547402058244774905802692496897656689894232150109162216555064026585929952521453134977691355510947618276309610728778529947561510123736740188257579004260638786567078282601684037578710367531006602961973824891664605723335576923981912435707821577364026815078568371621673314107901597917193812686878693494802735419228418333642571692017118231796164365762221938482274501945512055616935290723488356255985384257180664516397845803240046748497970906569591458868514008687382045748497521577833741208673734491763953993976073394697557634819848564097514399325028798512769886146425198631917592098470710567879609231480496684486148734305059738379334402492886966221256835298683099692902759351523142920255476912120215576322998505862919198475757367026609070570973855918215778123248369985486609419463383176509990649750469611677861325757084891861415736894745792450118172839166328388389988440418287010344199276376691577079238199735947468656710099678611415435614508876657132796718633857714331648546080186841863267360154209773759778444820889959493869285268378615826574864756550712183275841110352212933312751138892417026340618549419380383309384495483117881667284879061376577552664293282766696777362120648095245688991989863381210875026050239886097861800919540999199808634681386740115917301235964680940548503459022769285244262629199385695900656413885249055224773424031513161552131832459332179601794803650673310299091204762915074087361083530083502993598341225551875312600069039343123768860922555784492777447403827940904841522657351538996749630035470163629104996789249019265903488702576116090985852900455351013327848360385268958590917087152012035593695218890285709540168289935251190330308485088128329667801633122371235170773136567610488975551195025794257338634797449942247660066494712459011124292051446672234651882500349472346781189854408499652316237515992332871946654093274674951961464323780962062596939106893116232586058382511437920141907259197969030158932697396076680648904119045937403303156357630321750085244539801830786214537309276663134843323534376455829576568187355913223070271811948567649419723955678789005302072217792148568472502815117144747187947416503061356644347849468843037542179935498575425747890523570696149722961034479437499997622742930493772818581483440608040025039703733953151649960836824107318299194311854068502635065569015567991707111519851360222025969987174069300562490521636067479046764892691101284575831620451766486114988041831775709641018607319767220501970760094122063627637599082309772560979387207465247100314183379674161510279260242349427829526516887499053884583741386149937257000028152816335406253429543914684951210703718001657358821706291669162488114984835163601589283757049133902717369494624015641346928009161872183534532211300424093524526712858838024826130638279285651930322518695615366662023520278711327233563894714311289123217961361117066130791121205143750670425474125993059983666881000370740108223045198206621189455946673418921586022483704908730056896478310522352351110404019210310121916169916599754845221963873414996100643255525418614393119060052298513077259780171851168816467095393219650296461778537533635376391070098888515624735258457342992753956333076347978121738405295039176743366556562464063869226538232010488173321531980784708747608500222094225923168424842717008905801343390272498048053867010841104989963877938514516766143752479874072130206111470045095626624910593734706946675349829015656779754053576997466335410253104517303704346705809127951904460753236853923228967851037309188431385218719737454686971915277552653604047438943899265123044583326679799866094869768471109060057038077404200052939835481037388918949088036758334823150794558869299884774079245341460225981708208965735587724498735557692280367568644576292702978023926067891085793475403901383501441980946013326753144348675640850686624387585929565346251005962399663756438218721153370296506348264087600596449149949436633023388189900592982566537882478628151959857057534608824156501497179069141863953754850072426013301784914070020101777696050297674272784335583119486972370602791625387967192964824780864385032917814862698969120489125205445858662189911556742796171922353547066758334931775759822126073092473671737622476575197775547435659627330625339489008591217126973356208865053635091672390997795398045280088463208127405522026181314869552277956607123937634671069672950499622388707754507916797702329098281542227902288506136047805637159621499163854368001640853442994467359769847102488179946088805862031690230232220174062062381695906370922090183534029449761539403118161259965119814082878268790523100896317970933315443352616879377983792008442243214169496954088827595306278664008635305865366156266836622496623035306717510447908282779302681304627491986490319824888246513174608600078262383223261220586383175290904667713627495267063966629599906943212404386408582572614095371281803087476381101952573525513327473093407192668662144217532356317037643779489397650064937251712806761688383159584217073126712301936068442871770671945595407249713559755779206618786047301768054239592791491727727604951585161141097119845408923328278366276280040311726728333895151952458651956547078628798534353485877056516873560716880066401799254876030577142230926399069476484959949097880609649978222007498309440134633742575667405650432192807264160247832632793590329025609141991485773884659565614743545298206849413660769686742707052593889038109832052314345233270871573576930892403726755274338134446887378791743133476150474361939333809805824458543629078233115854511861384283002353652005207199187914284964981737705063140529846295836847368869010645624476349555104204847287624382194962822587746457726113030035246648182202090775564925023345682001748813800037511344852288108061670143538633055066904479708926734344511139842935322185861824028613769936574536110439614015901862555639695631132574177886466570274730602881005422496699707389366906680935007860374106280961499886083017063419339230344535492686203618708008569723669378717437317365792125116897749931719793445670783047389317510874286569797059011819661083579193717369971613260266440782942911826249828473636731881211528801498652911894728079554822157494471837471827254693817888523616127196427251906291182795853979739873161478137949724076571268248578418166147997898592858863757728773830352195498611281254179003236047039300865152366922628090106412100702315705112909103904577977871874081342837727913380762270478567900774097147579574032280106839622868243587243221072053552791567849766036844319231243008963271817470920340679488532327732504104917509427600392758607790941597659143023164562610685492092377058083187441715451805218159483601042896781187744200699293081716978307364165598168399886954945862722071251859107803120891501577127507274782857477074472069482505352034084925934527290414343701744679374244898913218706759895448158457308527896299747981267290285659671093781898085054496658958132270458731272234222746136554474666953840864884780926757342550894004234275380662657784501893104600724936593163449655650656144259789528152038601085632761639935144231393564918597920181842030184734505176921510115752714080718691236252725752339300150276554683054950130884954755623037218843855339514685192178926733866856801999655619787100982886205679894459896370996318568427818039084288428583791383962525161618843152444301044518007958269710182075483042376740995862983000348708036359836795523824164004230013281444747026489167891732618103680283969197169602887705065132074680937287300773829317019231272108217476227596890685457066019222105665876097625197736647952434114933817661795088681976574320118685597285181350383527301518891291573060470267444806081618489645698816588032098161013533785078314549401459512118750613205662160312598181129585343565434144199496494656047818003152298545231601244228232149752649361978094029852144007481196436526138330269099158517036762052462024913957849099931744189835610367069785865564720933025422975793635656343767389149658415376396585258236276801224872927841085524958045606723899439120226089039400640196217179093138639795626400476028877310785561565566120982119396961376676159662931839080277467557178543858630764036946195153127493304514367667046278074353678507703964030796632838707058929889336544417346566962211484483385207193783027528527994757640373416778276972590312282453985774202794144807729613680177860077093476022489013339763841906978398345653703940451171832118513344222384840900284596716755991822935204820194263201661475830322763536196669169259516866858088368801307751403018416171380090164408793230120911418282382615893821540991489205842649556736610699963339487675326637308220171164033929466338967969715153224460001280975626085684715261014648001493464962218338422285209052190412579748887052924422583943546612418514974818168707109466799349574716976901148109797788377602746407640260052328001833777317156404650537156445396656543237133017437903163717690669135695862771156490077597565670959049863384819333476332341945524507513389308764076016506688923274227760849286594385957852695014479223102018372213612358175982404777061244633970483649169239153590220039265389232474683767829968788276529181823873374471656723417344289294197892692797167681767006340122678651100824943559394502501516602770294740727257796399346252880898323524283366814024300650200202908244836487836682396052079490522650761598266954450236583715903626202475408736877913635103896036790356498569685304392666655561530227909174712679005843225020025726724126284428380989874382698833295559609522465460396694223590994048373843426005816966940621918613642012314865072061256786683197557372996143048061235924942727286870805009315135348003086505069313106252386633164615355074713529322589980295608269652873795583220605383631852902773619041642509699100046588526185209825914495257780397763855766848880805490142068942294370824752873833384393871072344612377790612436741652841158971753528728104442074807798838765926423562674091307611102238743556395489061323186584880790952795024779889959905244504168045010406955645611085778375201949061102145586507817717862412181679822063054949114075109380729590421545794731896976453795851143166130618683253875970070910679684856959618789919294221044879330729743446808412995369429516539870437256424251337337462916391854778096319640740188236874440236162411019309760729945547530959201379470675581447843380888560731137080738913280192758783724508355822773090592128209528781434361167950223604232313902652521081203920798687222288318045343322204808410216650920055312685418680827058793583410256064343120596550155935234321653071019759635000542842221695579089443400692468548050468857213146969746160690106183758923976793738729892464543039267970728164101401958109450755314239677869865763329176264144673860417363967051570309057666433506918198574266074115751975666901656617850632682919562613777505969652066121431652534003327095611904415696990897950751646754452278062476343543154172277900072011998386928789699253478628157683175914580082971379830421087312051087864979559369111945236612888956186055496425307233537798625010268918306377850544129566342093872071325448167341069057414839183152433472240278504475658782768531771314880470901582921475566504974478997541079082928958177664769624066139382631629216520154244978111020580368144103398559690729565820612596201088868640201884283287749511604363855804529151089815515295470171189851826026314537546341252635052282593554845445156550019063434937132993034434973594517303214646145284317891694045181840328404365986713289503492832801292681024740458029635655595515539066109008889469525436857848660658339666686353556555086036566931520963528339584781688331674048308825383517704643627858678475920917110590862411640363346052335200432270329302162998443312146223421425309013072050549861376058385690291407516886908651640940076121339745507179051173601100786071030695353098765815597203955759101223292816190889864447546066363611515860254008408741135925555041195069767581327928720044752134931307679475871301764363938421554203700602719850933948928974135431444747833397479202036039017465807332439961598128575278378895135022252805250798371032047344322456731827403852839152263554988625772999384183068508541195221918164737820605031466133448874817273629357852516631056733120269437040299100203876980370411511808973781540022299026854331497768007504833356257060486263233025980498366901305607995546939356361945954357764108174852090984942511973581200419908160438570420918171889617664837400557042282244256499882233617096321806142787725447117377361171951222533158156658892340118662749553139850421922339737205015775294576030487630313562875207122735131193968777143018237061389398036455082902134665070110026680449313964671767932023762583386167440810583793080747660095352417244462110876005250372561546233823786970399800469587154544906194115131055287055550374608455132238384403773433079839104895019191737581881223847327336420636725623956465831509351722013110381931052129881659637389762917568453724913665298512763281183879592979847727157499119693391228549827046204551853020677574915519680657602780179520005568969549073754527884056438987052355370273962771955655545935483748714800570225960915816873211185194844079839149814792111759264525117029874694176851271341120655824097778724662506931009408327635053092106435466054977265030472265414512333300920539195132340863194988152771753802022712578817269715144533884060755065965451394430818376446025633155449235966715717601115541877969962083575460782470334576846138355900233172360767687398200975479567357688087579809871595328625525222527008175044006633801867559420087427618526163329220510353726441150973362348216782393112849569939231103383216816601717422396279525679314909550751267600911858285676367006720073627862311619716360077535291738783156021045891055340092300205163824104330754996051474493672441166595487513447152923251487909960812326237231768277814903404961140308383318598705129567923559923898710952274853171833177903958381256701242778419285672225882817101569408943688873828545923547318872303722985067631115052852135170905637601105327005437469844396632784575843448003790053452382962682841245630084476589023359267213707525264932263657085354450600266538280023362648404114157554626582472971823577163679571398957672074269320677267471128962908085205492917039583711382071835774158484990079712000517782165523729453688984278294685745352699665783362244825227640051799842101816384775326957818181460676032115693613604787380817700727766594471355405310129279358724754421999231623248302453012072272348977223500022726214911673459019145034934742558632606637524834037806777845202154543841894565188593036415150642730825387195537688951340106927583255755844767998452159424188952555192227948006126970090319209978462265470088034715628637573736935547543645598734598856744086715971485449721218181648432889283569855740398136834064535571832078766863741434761706567618635513679012460649274979738132732920344874674751912411081931893213209448430159017911037431948195574282758465475129321612060049337666177443899226928428430714787409731653243590796662811658636006670928058064510806688444639293841530004457498647268950360224836497335312588357530627364682354696674349693356492305214506826160739262461639642841354744940368790087584246393569348855275887018965203915463265768527450796580755093955882990665115307700604717994347729369547669437242370777166086009702516042120747376511112454644229804467706393092243282292404926019288977892160816149822159702681286572735844467112646909701922350518490061057797034132606540908737401597430729253254738637274398841924679342178090494558838009636240308384272252454412384961443728509218315434420405010633015264005761761202124758354061608996081082311042570144250030237802448755252785904063050685818175734367521895128429887698836813779224080216426536932526432201247030426926758355145793616351342539114688566059599181024882961628223648862949111239614472082665532752371699851854726590601200161563257759569461698421811271817991734410445489246780621733183178918993104404767381621047664556422195784072424099102236462198764751301162220854038988742024237325411258854845558497051059668787652787151622729189807006973659717816188548245037060470306091849685089923248866397362890848776937610431044538743869281703594023471516442614859371766669478778175201024267938277963617507159957477709363100396275999112929430161960712517491945279664859363071978342502527755672713603025978419597807532403191938276114735804260432514869602818943724681466845307036533107930847447505329076455430834439412197457902139176845242643401611434335753587584846725063936647394905751217772870747979526122927523009566462932699361075871306960815989908812767636122198413944299158405938355092466073248111251436936459893413385501527225170174405637879514386655122197223397185265022245330958135713407093939538807089644000343648553273993282139312331937423443414754119440009882002564610035878481106204224899834021968301748217834582020929515718336842227189294912032930548192168860830002657736808496375270730819397499797634289303241333960087779214060897339584065007820937409369237563828262122821801300762257350137635499868235539474445030905733073147393503571705737647688208689425583897861033767199012453410736793025324931958653559998338644527288263001330359487301639730268551076044723650287142127876601959383313765381304181188091534783313910994224736487817357099433834260572850196074653778684245586131452295090938114615827597745861248322791669850550930219005992640586264256842327718158714020058706472717751888500535388709121499107191862332502683990783264879611119549198475886280032228258202251352343174776063155969833649144704852017743159729352340818439353126667681223219041874180000303981238257729209818893558900287366008667005777246889905017343414423746662238589421332099596970296423467662821042526118904523021920822138495955737784614295525215260343952311040709870497861154644612179926896674048564475498262654187510207471414888112033312195355190016622002482731114638824400722233253301372871561943923557756475149113462511093773959720099015953219275025170782329623790549144397788763501384343050104678656877327239967429081340604309107891640694857283464901574099586454239629634224901882617544052059168703457469891679407979766940752079597722131908963898868910423948966397044789775665523753614792634470947318344757688225081532528226170632800329115432907141087660450882503560599091714062029343297740749323733423847048241422648965817611392409274619934363704598357529125517506716868264135349472085119942796454873832354029670357853667101386336156220646523821373475814633211830714618642352750104427321997848611067229197313146549472951800962160100538899995456954509984379950703287218691419451155277977155933699018149505220048754091872538822070185981442894179538648468540202186103720392198108649001680476554734543872762049321155692004152379145492913878351826523449420059429290389133113634258221562912774065373784569890515658840838398024416742543388605645258482293057850448046753677169637189383433544975571168353311650572082772570289240403564907969758169156857212806112677736021724626712035926946985294217527667451680171314757095831849228338226435788002697603710114250303145548400968425917321405665495909540059939396863965800991236659488742990399029883825026981219731741545631494264121612709607729361843419217874992626081090983128025632625069503638113781751542974569403887766990697701629492862903427203447442493901343962129084087379713788322180691867071404339385934546224974032035894281832204406952119217809102116584384140131330564851369583601919787553242245678069853005225902789840806779633199184629825287339540727643016157906223792449714329837986480081692341867141248364445114975977735809964277339530146734060395188355066374419541838009835064391535234779826415998386617648002407211687433958220557006859733236200135124951240205825441230521887297917621091122004329751746842144893857358636957004546892161337139812596825318413904883574143806513477551402522863978275551179012099674245782145408377410612221393378223834692749173563427910797334650185066212213646954667535774394245105413974039028675898212952248257270421313867476947469350978698582479452502430392196252078259436213766211060153875566789941530245022057162642052015709931375226456341679053883501991107588907133871993666873122603466945832514318401389071292527517054159280399060666261878194521524833400705222420736669123931016082348247217488976387957970275503746962823609251745857633001057354703670122630690554387697873213982754800446095600075310009466024283411927323966592352372222441439732026973438977059076305894869953171888338734098170795778563693442124394179437223168928443727381084658306054063356766049827834662862504388493607729420493159568790789912384229556644416808824293670123351512738784661146833922067889809786540153989705774233542708712206554608310574166058814604824864724420552599344549495389980834903268609387445485045965220162409924108787321339456179675674491526230239509417048602668363927779380854664920782440324160811889331233576330179399367174400706720105067061964248006778936389208007155881722237062612979516211751471671435386259849832235211305399207910721057717335700616085125887354010922202198868425307542245673634580094336841578567865005092320643272737245781093556883297400359874118724368953075067492872247606819808425628627271025812211805826802106181410288404029262215079958003584282766905477881885850228512058684004359205963934838264743991454770207229533712758774757968289932553454688757736329206073507853568967042328391545095061810192957492791998000909130975346971955998039302100368458846609977358858522243441475787518064554962854795451711575116890639460079964864246978618829098879016031653653624899306181360063621332524606828285085102207438761882665510761235026435126316760714599335217994117871668132587148922570085087747844704474168098736069868878553275759573200608271557889126641489839673092537615973058985040985460930120069954571961772017814967052660606613433042030355163394441511838106157617201067114846857802026926110310992507991412465253733713567602314654710225684678961302199944091509408556414094002375177060765599476535978402367793420603338392418838342982519730422825570952579278099717284841034872649715292012166643052220645707635693393446843993624199293267447361758935289067424684166062049233335881925147551824762489182540798849887960242663897883798224052662062888267339721504432604480648548551018065883029212446023391669215055866951372261051441748798356530654985956884539723029119574314080352665304966227901442506595953973155101714061095658984506219441765307575433009883923626774349700149716674771253738421104128845981900095619791798451545158114381332391834297640390862710290305319742305339976210612159209051389269173692933825946409947595936075089877374401765338565908565813514133557257656966965707568021859447867544616841186610541194184391423890414581868346985105906776482099575922804356960463675345913952136804760236463429381745632069810118566624281222122169421154462788170536983466611409104027243056697458639625181420549248766821230733639905332163993546219355865365186885975859167289151313487783014794502367203826313043366250721780703970185819241426066875547362678141294652917102731472454109472899480884595579792018074981855290303984280683383646064115156411294263592111309008893478271314908764577967748184874387592895692099774108932764839098231056959042095738566976904777568457661722291257309724711112901732672286050675626528283287256306528408371081807906058577015032613085474145688403398359737184335275454054341167803310389063118023444496959102028714112601098738839042994608929612290856906577604172129298953700930638168250284657046304387334910731484012015866277124083153975799261708961945889114711165394429729211920453469226781866290634966686703070201792341646814311632453095164004645459775910878652295528348976874716739636647320883567252168878391000190586373812709745194729278519117138011199610469261358472262100520627044796010975373894733192114473767322958116862250937771596878095785296081428204985623277014725835998504995659213231939272043303963534570610867613866630366468937857166759539597218726023119856614570775322661417217609083469613006424542212061449526229548213110326226228896199507485806459689350719248991234092975977623978877278336973949996897930780612046150417922041163795301396740145102466296859857343763514552218110549118642774442256128715527965943117362567078588777021365855379378723249687437265301314081725481611538500245654025829747189712931872161306589020409111800590281979004724265816302593676746329563072133765051728183852410958515394564119145315304994736350413372398261622357650047180891849737427052578609597396302487866171728590672285690803287318628047945445134971690660882174774184356204718542069950198975493947990781259098071033820481586713830567872133173114941631621828762894580933342131572447414674740834198170668076396349668163590696533472917159726645448400232836801057171291992325091292071928038488167011306935139851816310557522861873817980908550766370426524216819418233703381242815982399038078297224891162809004273139080065214255610307716648327528976349287638189535593680087343126308914812300542699505598142171714140937204032417977129448887021155172349980509317101899452530251225240050962044585707653240764457042458131176435030599725082106507182913218326948643413748688234378276034379534979430468345431010915488298362068283227584609165015122165823150431955210251764243136775023394311319419984266204015715849304032618523825486334097508204356758489820610428097239223985902181783127777273398585030451826032792459722486239401600493892987810622193238592473198432681266093444235658492014730631813675408076611572052697922495667096436939569398876637796333687106734965537265857064763869133823608704721741766849780479051853572670637598895483551790216351239948341796960830058715277860459774466585792117797904535340116186651062474792045592382286592634673477950674746960053276314418631355692333018816045747807121192986652179659502606613256147846709555172161675010376270065145299148624619156395540092018371392945164829870473625868616570838800007377395237123908590812925225994083550991743490566584250541787377552733010227666723704888195372411639179989837821760019485925051011996468441273133245877117546248857119808095404568355942036766949929616142834743005170195319916451803033342916176264971348117570520158284824161584540585849014850866840667633981265244928963862081572499810724718822516352144635146552016924339050485128877406755858599155881177378023827273302709242418483716985345285399513097619998060430047119297080548959753287224495055130634697862307793438727064940206495974670090727526505822216270547316722216343290041092707124411740094986084619286337048082924355400220698063243586751249414564905649209341833341439924083978816588151076761534473397190310104822144174321164705675430029811582222485790015628309751658591650145232765573311725639289458012687478940241354407553521114167326888473528815182141777766741034398037156360109594823284191463144520245612657862441207659529196754723509203826277631476786842593551043761529279284888846139949482600505019926946990502080005808810300743966687150977296875256939025343535437903540694184798424219421518115295914102157363981758626495024858923119035362814034471023752942136404907740428116508499797954966486330289507858002108636056257869209890046194092013637708333971373136070016620662259972608100014841838871459454638293314645209465781670944318776754347645348157430552793772538680486373361917270914385617613697799463271912901295388587440288031165077402850548666937088188212944411170888576574451082517386823781002727279006591586153293574574139952357350496539020514128965230064988037016658439774310467053056465199149367611697028401026270680936493636434807906528976930012729741005955613928339494650469911118880704865302748532889158749596559824871299298604545376434520973682420231638888881596562683156899124636955931719415733922442955827502130789082332105403734815888279134680050316592043318373138683019229045002858890321734979611934722713381428265880621126128643329915201495240842301302447253383593899697566337083413915173023962978932465918388151497575853437666057279973986117704656662626007921718760343003697653450838418233275230210038629254350952438972853350661962830702553281917598144930645947936764103076422118814027096956460302287363810129667604290882178075251793430538623909823116416221008176475404373088069925274639098831078278750134060548002725118604531366491418335929251530534474254838565011758422881694044796153326131747099119342642932528930500236042719295193360162043570444681949370403035160676384016049312734822451205494676035599149219765104794808658923572342895855552054111740765125058586967025264382724877832844743295657252670611857427885012489159841591372499516937932902103366999924005390919167195352487894799562217512318470365054997660111462068511305844877760475812638032690534438940047795044524652457672035989154670779066737165029673686155200369896857834707831257401389262211548978192401917347821714112091379740626065855826207441966603836764743035309598632562801970176867293962957362048004624453485347877261517696161335733702781780787565317349599637404681590463531581658478318943222268653067478825156491649745881565267486262268407460843304824183308179392121242543529901268960996361705865375868973616874032797375492831310092489047492510972027270825779288648726785080987338933342663745653785007885567485218799645781139186204467024288726022258866863413485231004640558549149292828368843904203151514604170883900337913002997417905242192740674716279237481596485175531603572256775560858627824038328168530646158737496067294497436021161767482620434960304445768740112000137936833399023462216218101327899645989498482897943701182711475812635449550792287212140370152128155096375702491014589150721037458735892217379101203922494714652242529504934440244436319875616924076545232851173568289357558555790794025691569200640294206308852638144471480127178698249435512658991480811382255678084237492374473489720133775802503841124881071617735674499980756965656606799565450337905053537375985378229090640873633619947795754840308264850989521443628689429984949560728165442890420323988393919134529654509193426784554968024880579210211053490590241421017692726587431577983364049838282509445839201404956308431955063461411836599679653759980996325855513025523833989344349514558556074419981034845798037343884029220205197929074560243651895982137155032914868797430638393444022869200224344706781540109030882634767679126834125644477687918119832681848663773971926738289390497474513026205336817570266757520957427601042226469122825647296615057609670107367204184536885521539428400742121255063163552234769798594577883883876827109176935562897207242444537912577384787223195360523070634807927417455116956119615085681847525083161278676555104274967078111498607320385949404145728754847417662378602402144559846351177443910597962691250803365302723519623638888404374414563426103902317597602049518095875590522698478220510685806315200807864763828288472380788511404447410287725919608026717820411291950716476793988793836817764951956581437875607145353875687981963618237332612980136567854574308107304438319247685632114485491032666618659712899299211383516456273683789702800624562694151489878063899748755075558468530749817917661285111212499840484554064632863681872490750919799196486460203954329809836565089907592830926774559170630932601539226724388126158619301212316367727606013016483998509325271325463869681480855082028054683578637401870792327006343009356499944642742918840283919279317965885078772515744675038744908216222471723602002338191608610299605099254312493869014547570011392994803106225670465073553418638536888639255165722809742923796763522241601888010817877530173838929082014889207356230422448605068096640679066042559088880124147279870408199028182660965353325713611426715305194611235173269176819871470117644269662715846173847210466319998525632177671263168245544706767962958941254143058872520606760701712528716428239925494413039109723602742432850696298438284681372239721598266180009045400792956024502961527467093330162323125755377825575920021297656556349446905836451289434811033236103963483685375685208831126548356331742215470357840264400754005895456336164984707628168040794679163606658437191168715009923683206849917279404854810012036066770040980997986579485633446554173406091144898572744952133367251436287057851894018909850626742783092336194245502339227385096018798789016483942512365565522106886786400877499150251225445938096175370911100979118090216085059363180011337151271626057199470349344209152977059880916125284183210265748908374700976881079648868622481456820251904454061796359074245522228584282032302560740959377498887948977715854923691994544409576412594338389550116145508180740821042679054164247858425636874373188468318112142597070433419291254022371045552801822011128059053934455060950083804160557727798040334417997176879595186301226694416678858584602209142054421255723933421616179496969318090704938012741032375512054496221163417127023132367164888692751882167841248000538185874766857756859440937691554511460725051243251941261201415526257690112303681874460762235545768858856402021104807435582002134365291896614973316214970717751617825340137557949245542355681313626215759632908173745661754814834000148677291355342564307273587969909484071903622325348851056949450346445921758824996636396179710831661480634610894420522314142280391679137196074563582236885275390236604388278207583278103396408097356401017353413708567248179079729176750599689926332280750880168117353243515441627607505981585893786327613259028937702193721081287028633378273965500413794491728835056969394159959879775569358239004728678318034832717586168299883309689052584736248540693389150350364343963889636028992342082233545804509468224837302509381319543457344584813512578052515363397928561549361468602276296377439342688622972669008090809654827131393844180937022772746678108128430222029289823158211197676430114967778768147572261571325448075524006394760068710046562861379588034947382872572675379362463827179767394609714201715080305545086506870265220260840176351779305642553276127404740116640746344466955392253666229106023533067973072305957497135253222616028508219346930980650286949180186048427411196221252733497394507773410479100751552920458807215945172274104027158315028325711747566318839249138251882161591348667817725329905304932939057066910355207770059070672144727152497399426516247162562308333378152021877690575052292051850626365034359343778846459588758128098665060688395985791396730595594241749571818058380173101217527901759179653366100636309376791593524015546346296046215301037561485223074030204253455016818892152752724292520178099794650999155873828405223207232263023040448621249820288170850286548550246075189301424049655113300567208340850141989137286961893036797162057887073465485781656501787246150725397012762042979402808165109316192833493072143694567711422316021993543208291772993996966049024911227626713705473516833106674607784908113146595192556008253773663397916505675323984882179075280069894839065177222373832282159534291194099866037309333570384115711156076326251603660897607169837069211582615145791405709229692493612502808086663687826674602810786257858201543985059874141318492480174700770283056981327286898015924274867137407911049717121098326572692003358961339572121863545934275113929420167307970360051062986806955911840486014304503090703770925700733512179450586819288066017119632725077931124492031277898566680902503696164825699162145215987379124144430799598690867433911525689565816474374538467767614612972158888742112803382599055570761962573508757676120973726365228380670511090643159589637657423362276141298598325106777172723782535467913758806839937607064320540807947785633356950874807507738309876791227114858885211111717574604801247098086866231161403674636522701706441241721518690633645254220095777839872480582982230356897680530879346633363921153510590734047694148489666503362012635606625906734557794558503749004544583676888983332071984807836045365402026682234506414418117945288770496042612317987998808723701745219645981920031735939258865108736195871297542642365636072902826000461187928056673053311114043718962349840186276472636423207927145206176090090015011865116539948076577287484021232572006761494372506416542347810329462937020541304923853482120256669730767083080007126036658293744972553046978134027727150611256617774658163355913412682856913211280017829067497355428318754587316691385337733707447478786172862947364787825218579444654278127035174341386036721227787896180521511525016019519979405147554231361658043996473565210387600001851206744413946547682361352039992497605685136623400339282551328537493742569482060771095360866512405533406438074569781045928871228464272263079881321641298164021635070897221356756586126715359210998374007329011407782477511565606612548490738324401946913749874135876534125022824454328306208867124740364825332863579485806863473168705511464243313706048779169195907655583188436562924504099172944519593739239746195872094801773028279669805861134255103012970415873472020584042748306596991399036590571994496623640417908595202253900399259315777127210199135015030437714292148182242339041579156846311515777375862467879204190142484780432315809155437516307221430134123067428021612934281778394061557835025345912673609604046369186511756434439987663837574293033130065629051239306056942709937043564528125377059770192457811114466330598681579010909185654487552730172792508936310729235885746855569790412421346402981743129707657078237372017322961247373199384325849209561217373731079639231260471499877073106425334776633223798460493662966659472847618115712007640688516399617848823095780968613919863549271461905309584585565409300952558276477416925054516428105035220022386022378254288294842156803927793666984916060433746626573393171523803680331302494749644162290631819715807652996214925522309194137600118045116181847798803093430718953097166877808032801766594642255147191064893552224075836434212228179294369152911820731484483255387051829248035305715021984535828113819895554718609625888026421087503997771506545440790581352674957625000587961628863887176223105583254951204329210754185871476369468995718509849970445819864259997484675532175224787645889045007989599724473090927447079547804193757037797300823784220703951646624299728874430185632995839198001231015117580546307533543628458410569004924474898298791477169563415013880046691919510491267168707827385185596856349520605531028458473488592242770497650835946823581855595792497461198776024080032176861479225952446704552236066565527717297964570615756540113252877406754948268131763356644388669898827884046606192417320449360298794254051287646958447669484705890164447615172295949333156703291975052790505695150217014897684445775159853397036194568842478030700190762931807749110184386144542839485660511715017031545040277852773132532993968373170536477657493927538912534142685981303203178285736940937699836991986265517537285501928388660479050219707161543809343624013403296691393857876771252237818539137892106428183367130455527911757382939612425586373672505750461464485049727905397647193163292236575008164530614738443729286151049830975772510411988941953283823933632744950891496866880591643938994976254904723904642970772046882748328437707436369791382621839831219422086356734699138387974063834244283539948649015650360127311012494840352748668673512345652628143068834682750200847910897120951643470021358061117904371885698784875467390328238922332907169362761178780054478135600562969029001887268137188696956359690040716799381977725705566148763064359678413056986263297179958759312986649606021397142548618209101229449354006078697239930219449976216709490892281263162744542162768208912434368301986636544437315371696863385793717354243339479613454866573802620383288809674206843479261426098262977026144531312927921405940753364899037736545891597617103782347472528054965477403760884889728999957669186479694972237548519494908395801913123970103612273297313350492329637381916275745334721718073094460014498928324085832633278575839058605418184169580981055756401953599839968870220737266785236566439073682403655269765046353252040990221679915231513214321425649739001616211004283557425142186113782471708448623365944988615135076036972054889415726493420477304231129457125413517000677892436106245974890447198347256735489226181257467189252107576071415414342889883881043053439942412856220749068496063400577933488027949788856971232378945055992275724056569376309633638150291808308961941983415469295414875497058281236579287396373619748856585638603676174804865229364978724451684302581921166027023263191602120401545699862480041656771807378518205207172833346268284280540556901839182366947508333133958559996237760844854147556291950970447198867148241224533470923288326484774111324578282449025552128728159597256597325034191275957162411300607983556267238275819102523498662801974564064755354832090706549691298562937970922818121538367410764191495369007022839224215642643007419047346577552274843254570338782443804053196906117385930867379078705797895667691803724440914265960035918409363925491674756491341185743599933064472248408146706641399543498613967096132393967992953019892928713049769412280192540377942543889190581212237902908726951026857526233918698907796349037866292773814015095156274653954447089744132026489030040119537860014664859463596213039023363892852328536735144840802432838142789166704915088194973594506891773437942336821002599222826803399730922329747788753114551173619381834273177294671393612284286848811253757465944061940749588632394885736145182069070354078987941927527574526264888613468879430819665222171109584050395242747906404062414477831607661041665674146957831586292724584546752012286257629625297929210280951101326145899723085353360824404800774732993565498060661992977280994341202869877323478710329199596203283984224319605497974586264543169428900460402301659581133738526587797548916074588103013096055094874922540560864544645517338856741894575521602329012647607608666998559409471923742293344510261066060655216311138028554910299637775973088050336839131483454257594209041227340393102571854100971441132159876926409808423583004365772700397930451121783889668566216839662425558914499780822220267574104794948863615633226290482840205950677666790900965456843944768430462482005472975671468521524482255964978345318574482782665296908156308387002624533290646656836958827078884127189417482908450069513497380796101310657424753005130673591120580715861714505455836271058062978928466954497098720934662978677101595479326227659224749247524363475069312055248044238192710374438313238043125196655819817876944114147578381399881207326874042285619200030915903115176535258742231672676263959210506915626397951186277607172774274231845212301815678236144527532720277415783515715009748865867798574478653771711983343148837966840629623844541765610041905007773650590231236700916199999303848087251104788788269997236300283179579127888396905342650694762737088021548113322813639356558359949251725341948584650332851352582365380501610780385061646163907931176940960189985692919228852520018299894948878885511375112267450747507962176819946914092186067371197027247951450453948532872296464104191912719504413918180670651806942459183971802995710114656312567818503761739127434546484169308129725178836471397179638789846152611897182030766221119877214653567784346133683368027459318184920987102291948097238447617181110905490224004823521527736691861837885521899909365960393292332938386083342712510176045249852553777877853800115854381279755663387684340304897404015470755071804226052411311513323553499389931322307829079865118250097911914650190330734350680220239414991470473585909860876345736074578014802115451993157484923539151930983563956987696720190525242304559327215738763890327636077555384501195674150000557902001548729848334474782816512629928894076742229804900564778045002314100542402264671481592309992661115051237094957173581627116245254978505284768916810857645692907265828985055412826364302600665495913147693760312018325456840803143289359568659324508545107923854295283020285816030574488899962075371854456076518285355949975372138663167531572515237775995348218753817825660508411696801086522436814275736385022492896370424034358681509509421938647702853801331167374264836558765320910917250233223809025378937749982580763280659639186834671280915757647459484332463122465719990725215840993462511616906137069840312072118021306828147796421313072885735645081873181807869943478974657336899255187876826995445814686142644272701089702718079707187753170033882383828416394301568722843161847767889976227457963239243667767985115501738894069931737379022302177203339026606470671520384820680750257715349865770423790183632885577598182873495052969083204259077592259320610548769774270205429804495246815982988380739040387095814318396877582568023187668438924393260053982519780320175180655954954329170492466707815067594184853800541065099395209601541994317654849905503019521030021278506682591080774130634809187783912354340608672534290333135353812804595204160263783545752860316296141975002789630017904542444969939433514177064429410675513192890613527124372764951407993147969044277464547506029782002426481025674512143783077685862211516265272270185204439906947692290835471258588555241906795006555187432418583612259068118564385055049738262993779570669048418022311899032053539856813905614187616842882185126561903066516965552575107047837589383851973781695670963318997280476605906651736943604469532544387312054895608459239671861614443514724806829258244117575564360851987738217504941847731111899646831620232229777711476096335021803039167196792593765437512650313481613000015991331584760340795400791587481109597417988492983876782817659712326672776058701667284551006460817346404747110214828921011760088708097229873080472352458717368019871361673627603617946083847884277223528544146947456777423279294955263214237927354108923836043972550836139541013546009114647597426006998782847095136772888410693906637372525942873163215368366581175537773525103655993258340512439064039666054261736208092976505018134842162034080696065929750623412652256766456791748228720563423048971807743358475105914167772612112946691883797385835145460678655481173098612685715423327285191676848379089863113027370764500771885445263278047412740841942155375745162330825303252763247425478655029600450147940087895230226104801878621619581061231891891396296690631028058116263053306799460275467651048885982443002647589945776087045420716961542375064094848641694262300500971039331073875776248381878088003696568427258863514023759830533890667475949423718099487568492021440515121245643650206855089891675397661171347029053932075098384120450777644911233149254411293892209898211121992744763115855522858122601623374497987559306839506153543885871062770153475202056086905356212374007938738198885938648572500992970533009668348747317628538315562994889855570946202111050812736006714078605971540552779445640332779598544292608046850171150679088546557560228754911226502342922223727189236620700872284078898876788282923710237496679521235506937503152817306076159663962787557049759320610345637789265252961248852602897349127755159860064180217750583264308952246447183599183999118839225287776268408177613459869215086767988197996824003722400148467804518891056334504939093826080679679164259471507562619450267099930227961859423142892109641147969078074561203218789545562082585585615606292781444379940369142725025686790913273662908947954553749698859082870940266705374540862065673522203130742141582878805296265442517376805482488232698560669579900756204143509008424719894391852772803261825012162378277810197415398134341672598052073796264112003138372705830327601488742063534026807136747064366155054174511285771568906453525528653810035889769043902658066875186714324984086686957440344894748844023370870052171244770088244802147926652708601961581080130837288313524221356045996967328247644153949864553615567320720954813277162529427308410781606625230318905198010307313938050572014906826276729072709291011369695479237421868109019687351290584781924296586020064886924591857852135877609456879915597765725694029801170775971917861107991528698055357166724601852984167547455266959200415586163401855765148449656786213599474927324413656192910591368467450689222785734049949328205027166837197209052662522659341490524430622814005620138344323053960013540249268496885033734996920144507205902381105443374353902661957049718070450937345768742739894155075690946184397614878058200192659000635385850635504005003748165743159296099745281104259335033553334968484655806135488530277163175799305458514163762746406528287351221498964484742784680916646632617235012246486247550166036814307464393428431264702110690083725698959663939167136044115618029116379296572210116503655539966745294018849939717061940017140998152152725073353685547325162917768795511482938540378333980061748022996284332042180542992426658839605528936021267268826079390131821596855735082856792429123176893599075306808924812197368376492336922241025859207471685718260114625634270138785004592502008391083502581927845552871593179784611784960035434867060031061214870560174153455685144118502902739480488569605074107480706324653104969232182355235648768509662390622282407325658221953958565616128696333747991338986835497890851351182256109294523721571724222527664817520428315798708863719042012806976061866171131984897053747879489764357084597711993573820470809831203274177129842784773492406549244289943582219796115948461652979724942532290750057420365225174197341846014178728436858964529334718800656044365547976971804742511324165785719182913637621012447636258303517774645521784312711701581678398706359201613995030496544448044454973844672407284100899102885955003106826302226295527313366956537748810156530763556367171977853837473769582148515936555713175716698749901676594752168208953617732215221375386916553335802902247833386938922385076222105475468279673494597295171651756753973530605218777141346303681953841683713034153104659103548151704913490389811539857572178674322727061506802689444471970747820655167056863884041498039346418699338145471781300195182741633758243609172575303718853429893185170626539594242299691375658539575232591482272742896848967017196645827640759977797757780393577063775337309297979091980244230872886419588436037099586349670995477622885985712483216436354175517435863281976544260839830506784829622518415742609835376030604850779410717274724255013908969820689436077975392905854960062204368248629876606220758187890389583582938675861927513667463944661360590852448964878154330098371759779894062941743830792487930354940445620446817221982994232655154884604881987711809761092430434463868705620468097119010292710950856998054409202694942093264133287032906655222602690551396829279133046621806052130215634280171517024995997652292125226100840152239509339688230217363657397789135636138858126726269601663500431436506825726503713253051256760291538548807990565948445599374269596783335689060715936737024980356509642210248467135653399606299535218434603705036216157896655991497217014409087905969943522163499390476788912356729460479570216905059002339429144094457912051030327911692161852529222084852377002683645831255722148316148386212358349042241349752587941657153400919015885321941019041236866084269683296252589493675118327548621187069118043778199817572138001236936106838309100383795950695211890240931497424222687693739555640481518135168478538742771146375612936107662815478746267590392507499494970206786743752676464124132846950550230129539854601956964770532580867880829779336181734320646328115602276246443296525614160843341557301081876780417393688537202474783099375882386383037984261548404454483908054161612906713778890175818776672552211792702293950617156910326176348547999786371870476033339436484887233255243395739505447897214238861448201950936372153277215463289379482810516561341976224247273951147575988044146289531190388826321586253342836330819423628865158723232845454219597681816826628386656408048116440834107935443511980682459849729407095867475837690079727791999515364455875366544111397177499789402595281694432095951943095204903779396362307857427779995233227183220558769712610891224874972367535465091295010800545362414700018863989571264143669136086717925484596873991717040919855193641852884912563135449072796103513792306055845877192102131351998544478004438919999153919055550380672286335157621347667875149878004646040166684915619154410415250725344425386186005729002056961748326110492649096286021197578197503248181019256725303218359034318813628342340345225292809041730453804832224563982988152762450266307058973339243518850594335482179351446228862696567313223094299295275073140431973275500907299374636743999927283496905240493829657564712955695083933033326956665581348883527225241806805510102100859630461263295531408415088865533203746276803183268939891301299959615766423209206574445692720599604923314470890866688737610871459897802416126225103073674955083654865238100891463667745041613814674004269338136683636830264034349337490172942316616035712680758118768956259352331738371591614950327206910312873359225770658636854149483761234809758242340246471115765752554808760585354650004078830156073067115912168264680403835480150760485434794079332927184879488582781246849141372997017426525260349181350888913278088300171169687930977560572116002769904726376060395448270063097908552635373577008682072979977476917752495323714001472456452374834012235429833973410450011248211157131952193973294461757481835939462713423267401571823275285830588147235449109026623337026879356521485896466034888663618421053857425905549239909738154213614044238970404244099821476296043161960519635943357892945904670554722486918651937466909493336498495741269002464492826039381785354377768700031046039246138637851025333944825080990276775155960159104402552358435023378613531392933997219042216383089321134110666826689928304826817981536909791609758018320753471387701878521862329907461344714569751998115132728238635116008315939772804804509167097703071076850532153798102089067173151188580300906104738763048450659949141233867118834098670931886798084476988044733216171902265806327302070346533701049799829835921427048693772286028922932374542839605392284027916298486488810203491388728635951000156876728546536334912893948693726984690520989562935244175242234843761049276950853463542974740024175395435233681375024915263135369537351631611452821728018092742889677909550760256937496710831924070728579067608704529968095999508661892586485887919107837022615313279034852251856393429057654718533731256889206844068884066732396751962579368765274732503467799654954322757741522490358937610620821319704714364795151099412514375178438552843761480511737661640280543748938097234880638232588915251061332708673974309518737442503212021180275902813555763960382135591949484144839472856647439721479119510953699873867539023518119719178190136452135580817834943369487485537014317091713253656845369121599892472719695916708504189080213292686087528831316093622604425153946620070393840344162845097450078819775495054718865426554983297780241264320361445963359064999601664656018524142507259955026193375196085130093926258369079119912945846231658189945357751237500415025119916571988157954996864666510713767409295812881500872745895472571581367477688781082238430044830605298580483830042568732094998090567878431754545650783181502407196595822994185101583487734672338640208555767892295693757270079886678866585521365278310954644884426989191476067218164500219431064769757984223434824282852079632421181348147745110163041508591949482063267033937669303948076763151199413467144867259499242366682648575087678900559998591220300326539891803764983991744407773688455876197889167418707139076757150204750861192772558054481642801888216460508520218524717178942800100384846035364061458704635885394688099046522509662372838339524887705802297415925025463591898309187913565639422999086024010174639695936735591749521560914959987378709004962656157223182003527927828683040424618336512034203833984590643943054338172315939578245703217732248248984688540055414187283088147596612917833475418515439443919760397525260712507232914818250363187689709421771915053517565336118954539177307924918516384920580051042244900974438525078457071358179507617823208318310417052797289798578565016302455798825371499682466865065791175295705229153417310028683001298270976065436085383033147980877639879212569529529032632876221704639114349689522142464786601570618948182395427665914977383555654660392121856793551533791489245408617354445894255174760513243710292664041891766224845506841362744181802456469791615053626669350466359439156716735840905296771710083651453311572009039796171202068158767965719347710103966889180759926596442497576721556953446245309658053948143938865574310790676322996892859688368508121996924437998172323642506291046733396128746143872754690337988991978679189496541471381421221861831120323480862732961968232718652462099346418417670106359098909784885765075997378241806070750742302526141596650065698630178937176039537993116933851641111907892994797385130141064717785413654062542566070308072182837163708843523424392753947968980606411533788452085356944700321561220619073871878592129067634081616684406862832157909466460797510029094305992728948101722174144158067841284258891051868517853488520397966965705757747989368956561334692856414553407791869533389956566269351189542606081063473108583609830169341334999910806180041411388426772360736155544120973963393342973910389478481632735838988426395131518654044903959589826746842494673723773945543674004776242585625343342533454075664199475696275553542805617384871995195618301745579735998189277171202835795663956993841565598082193955029616176146679167966740327233631500065452859702790232568367636661324462388555824066991778365441847289842683160542602051682759253055142339527794735224593549102297620924618344923049716953486122693688982237713523175116534917520601546095093342037985476843184320739568356161375470079616296495852775755730454316476238759065265233867152422023446686285542091895524273694032465641820848784113971746731944612171971378317117803955296750777167337177434595796134697703715969813331863841748875925452536882914391395864107560583847779771362242534543063269955494912830451856448518107340746711849229221174768921785677529217870034965612071059689509562743804986778142604232239582275734231756166070947974333967820714020128940370338369693863394320569580303484715340209544783349184340652423179656631657724611972280703532569077616213188346744589330811618865687119574319187856627051270659864160533303951643341152376784944289657783157061884862107257969115940014455542182673878014088139562898160256356473497180790452949319732690520162088835479773608478686853256992807918436549671575909649843244489222053906705148434649756496269765230880914851009899708155995413005088889838917736188870232264365621455419570648171221068577229822804700571878605859834214061934022360474196760100204938795257527204566343248848289115494784304796919809925704458410097824572981788797700799961479870140370718849788296989492233610732135065876868332493410461516425052504384303979781984700670722515733549197287557609907233630793644530652928471078604600700204562949155615526262359663904512155827708333725256186299468389752097670079368299302147961529811494903932011559060606548281827813323015183031338887835666170126536051430667752990605293548895733336736658039554823867110996070059286356358513169254000583713122706338221761626684487171429008731679427367769626071303577406444628543928477414800490592999394645635679406297223763494399894176596790113471663161808419785235974739898833890427761933403879953058547247994160299933740331828729437578719854871287001160550933185011270345412017679812553098688403045300524495607389966487937131082679737459485043193245584716223213368679302525079226873705565766589429164662671407722838302442155660806034454156070119503680681724936875835281074985792955755565495714624144034026525010594186602545592766159214441707186215506814059134858941506909445597151457487289720965309474503418801771864338715475226596643115800126267554179551143073952428368217748315767610404666116887575186532146868260315125254660096009803045386866455628814324269366969836960845564869304437774392636278048403249421747298296272479777120811709966935708171895074048201161829923840441073165592461652911868143324175782795688831704171880168209102989969948627674906432955385689549471450477406358837306653989800248167929432968920025211894450288299137822442435344990713841608870705587338953398549674283170903199297223979026726980442980424321462878656221074568753001964290746370663158273032725191750795613128752057728264941068114956291885514913974753048155967363472776431852279995333930941397233372639383608763136948379592287886060141045846491445351319972732026571902762086502236154489861296313671220825398057722401127236247976113325828554272899579437948965010541169530455460703936929374127485204772146103310428344369683153411137161573235063721267726206004002484726917802643590237705809189557592377898331789225896992032763616259335972937119126792032703649725009537577892160586998515466383000700542990616198746271108854477432974049586882619113852748651634427794147046398403440562997239368376955283060109101872012547875357863203791464806712486580229358933599960670846452436524190695150305697755684581163943739130923766007788171358513964179955556689873917717697051909347655740698790770122897878094674036192201898051794900492851480624266918709021048563540260967273549219430315516954165383264788528049958666291750899261774000572791608449367725788454111016444709353426941178738824323798391696319688437034843882808787952220877883211001340486126752981942299962276456705111945838220649759741580880148930421725625324733642866592908374742986524198815343564051189104806257395469352248169134240701753953069719492334020965204507448328942645302905489874364844837376274129435272056861568011687978519112856260260576270801527648456346581441272918471453805883281451377343809749714584452581124336286832909444780503127406023549942010340625922137066449400571987783921389681751346179330946597538959129103915320877639851506336634174995489172536660528381789500377148404125886835126266124901695833966037781982037910356233934307840291314049619637765399994209224483609604369053166414947484500996176693947505335522577735857568284187231629417150866700573183875372995700881586279387581992872482349875839123530525559316607073661327538846717933717926322714467144813195803848200098115403109715791967063402593493149664130519360168201748083275407403109691200326482712142026535098626174224912426688038859844665213468490049718298216152832762735441736845333380779638462831894708091581483204479404309710088004967932165827954446749158636809337090301336327215542925420615224618916058081967913914456660214294016654663373295825517495627832270116017955499574861627645316525825424507593467396457374531533486973878819681938603795612757377655119348498026831263728170835314909690846291865607545184654422360260654532928986615622794454293313741893935540419417212435978579800228512911123192688158375467277477787600538229988410221160838203751657383450959813189083816185072598799717708408256616274861414803592992880840426143533799470796855469282059769841625036393746943178517819082210608662445929291310720883323650606524733751832217529275576122580181614506184360925886432944161540160384590525733469128261334600610262843291065906569966640488852959065543493528109119933940866015931572217821164768416570559365042607890272555067012615995907921411619416134736995415696544071467342160561318803307703854652418977212194701512204626012388806809218855870805982104515835342141108775662863324420436701222310922789575185369285764938517837738743568565613275265672464365195247542244114162396903730867782657489233361658088686271712469575449113048383329119132177825371066923623073059954733678173438993467820381916921072437668851040900607264457617739437698246848321408869247620717272941955034940477051151312960149114065537484152268324194423990050192223332044523220474721262894602811776111652567776797172693724341245602889480462848018390764283763446127436490720743163009504639444191520835854628388157391102117391587470460295201736171285128143647924042126998234380561370776349963245827033210296161210123101194721774288377583043897212414267765750404080641168789342591464702310752493579945189674718328878511007589458744767079149953979511827838055540542060204069098792586030348751956473198178083634554961535039303803286654078384866564944062915512916040254811387306370211337164257223942225381890123894540504646724384234174394604460972341468114114277715616149667951984795774830865247360489338676946040260187431857975675526869689558655630751943686036760945665831019278861232039215631090900660076549535565817525110722506335170341356575655833684742620636517287762159319111801932942006883282708467922356781586023827458235720358759464433658076687362538507799891218926201656257226900862605378389376747554607457727896708939475422069183053644904955363033004657897155065202099062239227720558048086637561096468772760985355993500773044374515438357665386832701137006019238242180274612612918951929639141646866117212207216657164288365660715597535913418051256960557585751002353031949398772992940018909861151953970306652673246076554517007621820868802323485267081846831695544538911276292436806487171831639651538016083880669847128426777064563326859463152002594083679348684804235864308065659230337710869581240665800849768064875007084036030324520555606431173375256309252484623690407322265879263091359082453551287202328256208445299044485292800547442411714337029498016042387107450225883084818606649939235494755610480747763775224746102110523682473307218312902144316154089026280089043291310613153295201274972935491293357500039364840245719776470913729945356392396307378782229478730487544023346873524905532105289010086631131023526335029905150013961203384106285598707879912005551827750645016005680418307613343956271985689910537355610144791685243921975050540956166653007880789075035607462537578747875308717232682896184752713026200849324147905124262706345148418557374034789900905966377244473207352337387623916043892313527904571343935604735470728209169735132267958925467747626404602288451947017756167861002365601491003201676696986345992290506064284186056911867251024316676556935303501826288305921571469714039288686179118485110001241068839704251819483925124623005469093817716274198968153510158552640815740526897895171245718694525477595445617567242563117065556203072233257945459643174338786767566362126258887758691776349607403247502165885323988763860882256851216115822773718701092309857260651877301802211378441562278019550994061678195378692183962672606544629953509961672188365552071890312661947499301068946078182610705406500098939634585163004062247833924821812081599808691250824104555276318673465060696225107863336555806134915943121126636904466152326718955938963501978571876640992272126743011184421169571827920341417724767118431008425220252106692773662186519286025466241818379103718177565797961341931622439758511236443205617747036562433251088569562816579137538767568337618078032528718347890903423464448632607042941470506981812152069129006510641279922268827405776710564106580952564328013312317051912497280849718215815210124824319264421831336806858271297882284815549596505980402198087596502896905465310920860325966345144023371019270015496803339106982674908906401253468014659118515323715395737832518839557222699742197525758162788860830213603222005164384180923834962471878585999143681999797549931240305288607285160548756450054797072459675137082231680805369913268671667674534500981310504693876478836675368339842814334058121213080849677646827296297295651548343994911264953972581957672856546988087108023352539492906501531353531628465436344980265545916257802296439976977896296713584269144132719650538843068138609434475886339899952889706717537666913929870510062137445924964595636509354406173809356427525161316229950330228466284148765997306019191121125962841846917316738015484549489728413070972631742167344325017443656861992320010805485845870530581406235482739726488417280388824822355945321381018741160112145808086174398247449903205688495069947900285516793957069480126602308541556114030216541445619380350936216119818414197612327273312924333944584622569039955708586782765207890652563135632224243436367855979554152312448611641558694004292257785701302954846960686172478766713609241349523284131925488297128875325565964630984170298282107385102973599043166644726489358095390055719451394602064115171940171108297999936928424009082315115966521171540733831254034375449074246515598751073952555877405453639699313979387784221774802871950041401815574229513430361362350835055564432512922920237245377579230857325175913595063869451861312676670450013879736767141646652208335404318866223455370946799945455800859000945247693838604842699851660841345439927921074354610243242396425031016757590125706795569298853237911812349193428583790797419896412814666903043416014250276975013527624032980810394513141829798425038608230354603249763488902110181681252132230006400515006056995808520815856808657877613843732038375997166055176331631273261678556817263746616967455307565164199716711643429940405539608640503578691488044561802767656474186314654224134194525228127183899992079065127872791194668848812706010710970194781544231492995576467753324141516098671795642436102868852503088550217257453405594840264618490527034266122586209671389689558527178923736455881747388800865191731678243175688141040657381907203605222800680974826728491021469591582444950611661982368500140680440124134075385828214410432998867220045788960040446475197056431581476821847955720010506543321107753924444329573360248639134008441221720618657422332357976964101827577459006626975878947018525658212820633073872560864710978383009042860541798045836369534579742765316245401695927009476167387682444202672014474950136377155653282383669284615580032699988887368563425566020836969898336826299499835541242361034867926053521809930160330720323779202965676302612426095678988735502607678585296036520361499135398781055671495145780842031418003682694573617818304826318824393148939758600194689784333086887674886225822461510255835218400485649603255628337679040372340851560133341888797214519487217997643492433713008782372666524436603492451081448671215856589518343774372327575173724918398219840136557339461249666286296819109104597431674579954715988132843892178127207848175815712106744368774914389978370439405303138233353489686284304415064375839103987293796770154088964181974284907929930459305436802549460957435633548974239975418378008634459450069273133762862353972768915351346527198013648720286992578918956016056927796907334797506106997845143472877765310089798745229283845770684963676013668794786080279119665632285290924149379208182432151795427446904954438585990403282217746142765582829661990461473839880333768756035389534382470220054983680608928553124098139457126393638252358231480172026254303640922250856720298612824171016675151092362850027735766840081756692923025873892386949500934284242906281598405257167503796418234784225134195863092201983322649634733123793376101820184572866966335510685640286962574344754908448888438343934761480792685032981629877065185330927282555633203973933897097829316930064770170744646804770536683453107546366326956758620159262466649730264491992828310533118735330710408324986261162932589206031192022551017521023569882989476660820468093643375133832556205940707346752087258587208578487133684993776428131772413007007941167196373153922509882588154867131697007382652505656848958790760600302849958173031201036057130479820110937085096774881381879865342348852855334569791513075724349635592015294577376910907929524115960182629025405464337486592527169284319073571211042969752798607462438655741975853551066261810509657680019877277884852501721204097788875431200338145615696140578649478054513434471374226333823745417384584725925659605578505725925641313571455604002881065042419570804773931871393029137635089588338544652957799881164660915459732598437395778528275213167892188473925608326108692362883253321379062329276448009846430749883654726773316565144083908065741983634231028139038221383450108826985072905103090536169986356178287490074307718499043300156547142511352049253659074069406489097229522002941116441422641444255102925771597959093219399582144291151073921924988654049878894009567890430400579265393365057709752432868906704405029274834436608388682384345952306913124700126457329989275496644259776732514686160158709272494485304986795287037444981859679350273318567652360432323111808967498977540849094388242489432380664666916579551852555086367436216296629419862247280963220890931229946974459708757261001042430995499890089227241095219915830703765199683630827663700021120296763161262392005248889989147743625688156876646559075795947075391640104627581048358950748100838537491145863122380142578702846934980626086824186027976063689000288800295037068458157562891230827933308239218098242057670815652932002055308629973896854728312606985456395185109270124064199416994445218542985041815671148921390083011674783263725379036902347493245510041870013098744469492124294578257756510294337095967778830472022195761318103858564602522256245905785330710028835959384518611465169676294605838500589702709291969548839064902894723543128494184243255308638916948420294580298989322094294652663793655734876809958579560669252474672203923097001309432111343184808862055236794071812948436047282228334800670083612944265025462128412859452939948873200539420855928131886838117024356036058516377408410085211960620550704757012092044070970709233316301151475686741925623189796199866949013910603462136948696377669342235431646415134041622407425934774650050859051023078621075086290508576466152286774054446358025036380030477592806713788556299134276397795277276549295420622670341734232599065591915878657402335798708122136321465672055074447334878237226823682695816447749244312019037028276036154003395460679342063544241143464314860447773776637041646709413665981814687250462102257609130091564454254864476052171096083717565160484467670810833859126856789724152266414010149934959827440627047415798008244323712024164702182137890510763135554111493759207722122368721656609798662848493850923796118968015763348199079281018921987510283007071023742707985953645760555906214513560334735340805469301128490741625240186425237333986314758866167926635737054676477136939483093457444619368131120150262776516050157734609453948802240916838771229519614245185398527814915152672706855642457341374792247459691078933513588717976398539984842135754931577122362644461470295082512483256613523329974057712303612093559411842244632204380875585400283242167055332886835011531426165605439127421895719154301205880824805475818283751170206632275361497804051361609898122154084389728183690845767991591413913416644320580727864927998302830577958364190271613423386600894531817343679573494720402795642100803845720851036048114698717690243420951203975501168584983099818797299342659660866001378295348047739436590109683636999229342163101434913134375212114264278642047697437992942873489461023032201882572444808520370030790130401543486128941685418715638268948664471820496546467202896385266540556847531188707150574116888814772549778236149247969688253537731701796585209131990111570635063198456995131005535475643153565288399003168602697876566441692937579107145982492471374245085866614724644397255116205193651872497265369174648397734767573026982143257097858021624698912757323844702217674795047318866337458915878259151978443221874393537996557961358023043263435150092196435003107276922038077927172690206766970638088981371975358290961124272589041942979018348895836299535196035872201162638733544381836498832838221237986885296638985835914358975617657776793206209496062219433217659220995183203443297928526694626823617747484269550699831877522742944773412887567374864381041447308375931891691521055561697210990899206098296796188450579334641525137635547465000651940043676794554751801316788191593204575839560883265446497545377965600751426582024407461640363224583635513263825161862335755503639764397158552479264989512200766657082670088024940066769484253728251764470867429861707715920348851395895669545767752003619699771723196900694508048381354563709037612871166734459303001003271923593267950009646369856838800504610798385099441410109896420831642510405546732930943644856569316970779709757130507105173775841650646319287943090321263573931047450158692910528997472013226010067944105231174765126166720843912321602355702782121107056110207404960242044805608404732530020552150781498867416105980383342601175341469352767672209467640076214208390762274544574693036872991655110224987299122579205291112143448723916898971838009711594788380943673637282435745897495605774224812130870656244194977668448282745768961383917922171379296190723684892044775407716564084647630179701108843572737996623821103330926000187763677587366445201274649944588283584352457486200323764703417963859978823958197864188562509461670721877291486807470265913512678685917120644977576845032934588567713412065792030199189099625265491111419146972118030645508604630067160598800338374374212833727310509372193668473771127104291923576965847073593760822294396824943983234514024251615279852041041855483949997103579368624263593089470388795830593597391311316746201121240220573734785087562702560230279517274614025520143863109836038698294870184623978805512833615584414468628344944095934423172993084132153836861863968971455161105447009247846636897629415477869761036739377128200323217046074546136268337856881466871088815502844867036490967557132137279907662760260190796882816795906598848091736361352165264583603126265116319923207698029980695546257132173135222395314733700548220623278380841742002579220973109055154780085072260937509534221127057511058236604060897175741864444498328721222490707705071372717119852626405646499396975611035873440703367366411351939525081953574744397247830412444745999605865986633035304876339497860232364926466167254673171500484941316322561539967022832840138102563219842347155297936461243481141709144056783006712610275242391008377221994607102447737653680927677321825872874849959927207777744590115759218876195698377104714874064562151996848264260692627741724919460702383731805544216364787955595845243241805440271097148855857196513757093855207793238823728547913143063689166066644810562730647113688497036732066553215468821971361978556485415846320282546956968104980644117837534921563503599058472711061871384753936221771145735827432259686542586570560167881029387510513337622936396397560788257757436612467078713496279929762819007084005821775318842820470401219532989616271773916147810486585741882446110285448988526748242047152660537393637837267732243649766444644476486245955713644401553232257303086617857076588424063159086439662759254066804013135165708596188919202107368748904272026465745165918147618209900416194966467863109317464303239652507217613276464837746367617506780315456342217548195012962461647290767611909160069489541607082504079880389142259839082541370027708182760661232185062021561206575344998307341620666303894243267319713781304696084550526116627147530033146593579382432774998848885799977376085766759846506802823757936097378272523735935422653083128665908159788626763285872556102251999435400314818038466878330839966476773804141465874217372664029965018196513974808931823740370842069387887778923503402454460732466862680929598829489263333352749114520192459830675403559527288700031887975548412916226991305395572775485488682097242482458625956978444077822092445310615460915630371206054595834752696327814858648368369293338474105052510937680994905501574073523357987056977234497588643172707701674390736126659355073141501238621811194182144088676539961923154790579498756931132116973891067033285862261727448147472306744086256517295180331848782354685883035703891059870951723911317419272358420073752258466290163984855013735568748823292400348305109456786292906256125589720490922189809735962914110555593364241246900406328917986979465737883748461054109717949425870182882313072079327934236775695963584075728430987158407435919962685393866653510732457564170976394005734360032658938706483330122397774929436227896534209119274568396571716819952662224913724638205390336286813576767743167499755761913554896576206280484470947974854582918966657214860695551699579047915680738673009866288155739068710496640669968736749900109973299550668937976746573297993895505031983522089056425463288361386842912533252616346301614637526379190480265479615107178276819943439134718583361213194374052570704633362102981822611453266564024336237345274326654894549098636390326016160680147082083947582706537318153312652387324451825822236205146104434778864637705168642450618282079979612475771981946274647075857301600033253823535913110297119310730689427490255254494293216777488926059874618260220661428282979148186617392052057304996058810359634795884879535764256888608353348338688529293183409508281818713596849859211529914795698074487423608229352201074831856184621738713390343500038015108719968953878618210717322645426796007204448168910675455302007669432198129400403816086003898524529970783213573993696868270829057360383061038353261895905666108935670149664830236858770507820981140392302907758048152658282283449541723343421262977383488308517562696412745834278533546993916225904497865229195827605385005555074602300403494665462617567325466644143572439461935547141096379089879773230976217422450190032636938986787978165821471132626056235131352783819132487224956606362973452057630279544965451850891398676883707299192797957950854612417032793843593157676506360204133527112726684027581858349209892165470852891844115889691358478708784453164736581239329846349510779167488078830204731578302003986932573811162521350304566021227341163546536106540894331566872919259059289185187190873345130770871836193296198226198439772415421281151313997282094657608091556020277224794487830276407404234165891791542566100690606997245712268123132108822803053610748879940400245736146684909277779417792901956490119743316340851620854549262137766903930543911157916308452007278997223241153686852189754622005707592668200502594779712374604153861208649482780945625628664001501151535014055263643849604608124162695634510865806715879776316213596495736999025058882811019754027056011499842384211671911769152805022133977981283493413918760067524951547724601346299495230663406979782099657655337983913890049693583166066282842454938320385856070785855267746782065577259845743690106515436078491990918738806766729922698541453541590666471042359574923220764183695606083555530406119315797369394992537436024501305538213853262461742729730239640924122968033253437228264215784432903904147077586098586981299313854702660946587551953905005924169701365069660265406017640784967275427332129204305646343129587785430749433619266660191110522599801688224598627532885661369088529753699998581841546472721775343913010546885323311656378476421996751829316141445509443337868816336081852870068476423924494180974963826606601677027241472666484623620818701690867723232603213817211311706675129800201031943906365423141067149777895576142422000983022518989364167309075917485696004945805705565100353562537512710469732272317325639385877318734327315776460407187092083021637605406935191101216429897146394608178603109056020291974866127663591091494321042529487668369786035897558809214434384564683966621221978525031958300255191433942592961509595174613204792451546690802160395669686334830888283499215672605920645554705459207611481800089950252821145993105375600389559371490408323799157731930268447975898768623969415489274292860298139807917331539662693300407692062811604315324872560500554549603139325482214080601768971323006341707069600417117698443062977578033804040368821104283571610788593851677014946948095145709843655477300180941378057800675654894593954710957045866199873695007016889187417122648538124132320991113619723998410124909966844764440635553587821952689112126778195186735876094279479700526730398266216768344400271396895856019835969049143715416109953699840461896173658885788600500719850504389555853498318475612950221639251498916644435119564785037065123574878824383592839756298004793476395502349210838485381061631289926830194481820295383219412863105833587181596081939718393438572396616641692797019435044822896372587626502338387917377270928115417323668633553127522823743635102760595876137121189691299367867106277139452482566234502140410905270805067157712722075995826371438105036423326878827916269398758835251905365300199708094489672299288292707106886116016359936660550478228846519044948887827401816232034278283884076227975196870828717406911512399645237055935187897348760520006917442930101124794765318428639842099443900247859388664714981094595780566606180495803012518630163023848412872740034672940918088348672216014232417621678793028994015060251414584494835455175671458073637179921082384114393578148212527511927362223460854917933711263727028068838425411709878894485539969017937060268896889533441432155610513942074486091605871640577490075656611062612358542175690154825941803418743747303166804481982263110292427119975861943355609345340670544255008166027667588543075171091604398597147543243497722442437884224289861905735799613027566863497074461395088502493511682792506030111128870080799765328133858680126927253930704433796080713531520325128349814280039517583282353800246314084802422712321850949378021576752552281243779351335592440195943967794065627135254006647907122813304928737243806078166868021199627260649858581880140778376451246484016611781552933825711715572322031198679496638362268587392746428319076525774163037442941425704899635621365438059988483612079692866562069774393012145406318133687289921974035348629349236019312934174821011460402703933584100954452290831657246848952316887895382902982464839857439965796134194932763714974799432320565114315005072704571300992116028316602046520820311191836988840038260652063436548129943468472692595675038046259852383597382321777720878530666101015402981298476444481569799121159756401389524820442038495903771409870776540159199097138418425230362803721046217130272642351421867657710335757870590530037829662848983262807436066549377742700932752605971097404954336626353998201256297063378499540914028441338037125996675087982971932702662777884904828651138947106529648063857897583768000899797128594643435464582723108114351120607089566497692054442711852617792719565506328067488578499496962773514112491846956299830488682567271938615017558769237761607778253379250254111069749120826254265504589541497991147560441158972642767730999799314837579259981894238405389166149760251967753192730695562600326980611931867175517537138248856676871564262834084293232132427473973465301802888988725860803986808004310766551999471774351897511494972205103012362907523652261401934841716487312053654145803325447469806327408689740189042086532291799908877649612133917183002983379332853089741118805697762212377498921605584442592473906294588925895215284715612748194321343266853947783855834295746298781472469221439323628698425476589918613994657035154907053987984494495910892469966596661742265717470046394435379709125250421002330331380177278606574293993311649679531021947891832867591186949233277711314382861026317269718303677251461817430835718855290991964501641828244522813866961638262082036074648377918879389249531262535689059826847149736343795139077929399778193629949132058427705726305079738248074993135661466677061190115185021126179449434538850768369760670599536537618522079910671562306288776819486621418189344637010113135010670667992511154546343459191214175378348602423771852567921196358001363849701355481452809994800915529082554123952963316228560824971174154622135042972836678217836604407808690642748687843964068330277480464536738327197501375209016526934763092070915084726919383769287248879060937092904308909502852393146549868063305156090869846488135541133124657534310399774989447473458203834897351953065277985053000743282464157417252528426834067234549671105420187598437982184407511481933067386099973445807139955885989467471201959919182527022767134543883230351601289057279442642575865518355205850309870984971276397003706402132149607699801710146113948100222015237339342256400199091713535832174251457793068634298760988760950312889548109150708913324353605360311835022549659864952087105456556340025734943926948154032108124235943219786685149175268128197439567380842975638641115584205143454898530615272518295768496163569623954829065560103968640171176211432065467447120627532728138057756939978139180884909868127425572065869779835743590825500279783239893444698253505889842885611527087386600014003783399359208670722158039529498454247360328996212346763438504110357017744163559131801009731027565953110428566557001635224210197544974630431221908496473315649744165380776584862893011239539049368038324667302335594541526340748998006081750942027431985334077982972263187489618942852179234233957803392469713358625549344053793270449166203172748013772504984006922747063582063618832591052327429147591342167058791501126972087253496805639804645554228695608453722274033199332101403513234872739145095997672756721078040973039338053469821152764418384773899512873231131302737101138217222470187603426313865402476871036054807285435610147269338772999918805929555579548969898408646359595664830172576370694421707746308923929725809263324817134342546304616835402005060225863590499403517932891838962834735241684593075321658491397058694073306468825270124532773893320145969226774077050772055058038383999044549491068557851985189487850471834077159961304387555024041057510252856474645810116237658039335992915944981005349535585350836746613935358152280083471328306850053440589864965339542980152094026276940623138002356020355982412352428576979955615773533431763784122663185374424783044141724154385818867784194473055121761112895402595530464717984951368636882310271689251644812046236691871787110516974983582461674533364703707335314634209863937977438580196526328699959710194227678199836090000485704912013613488835993378177291940507181161799011298005674666494754969539780215816788491740589342569715969831219860514082229151430423656994209681073611623564042186237794709205990807080049546963415309043819953938811071570699500515112225391980019167418907388343456708283773442017029047486962459475123543038532577414402899205892876909369469967265962973842146322399917115670492350844772230937683947464980623179113613061628877805527831755213725469735289315055689082459296162787580275971201648683676049037033186083940824941406722076351806286778565462939459514004044562309889504360515440870997312125778327472122349911407182589814389784043718672243259035479195606171742411172322549895041266780651018824951688450314412828371461618845513274775583667617363186783284185259031227810469247946231947861705486248015919251559724150810744585065690957715339814916976080379969548259614272639251230977435523208524672428188552903546239424978672862947945966165853277798603496664680230808542913103794520812597762324042365639980011286906571859466791289576738277080284960237462826497510406578280000136383542837203557833339443971268897331089593804958225491124244073348970917073126120545006456877292949302900792293396249269267043516958396655169025313011350758966898972474902918181086480446156664803997959331605461279955411884184493868520125549604668946381227781944576448626045336773045582188747687063044782788184220857688111384077328152170109233345296972262766546244040268459210027060977341634256507118518504115204847930929596271239371100140342908312695783133116809852166077695792057548773597481847401575144749253038359321268347233912452938745503930257404938930041720321985063471010798406464510554440093472942392004406698339755863896122629198013645358100990696685414397908857687904208644073101687253129509173772147642748285604219628672870092783164146614371239824234069932395585760623336755025649858055834431561830473465326505949576034593968311620785653810369338409936163506761124571635541080340837634743179764253340275260799654269096884082349606443190200373705604863737181189214699471450894800351146851433820788386587411819065182936045717487987166710787382144418321144527212287095976731548470350216876757008883142528429143030000955954104926332073777378088111400442119996849764323843980649959780514892315911588212729292689932976579733525641939444108202871081891552353272272824877907896583681032278518345161156828179652442270163496930449382611622967386954313127856838720125851201109193058034659580986636746965737665552254239837154857743119273999880296058691265075984460245630947370374786341350222533572004651791726561127212092665478675393868708432252655408828168320355966328593199533201882934358715987844944947816431532994749251033116456086514841141075384067927233995429191655137504450510166677916942801164616631202294021348003425504291314361599096800651437264012593997028339649816653976931769937161904027576394635094994120915084552015390969386826468906374535542551629410886030806393612757987377517484927120992949020102532168290430733845996240757678288950458033828857442109927946029433524308998436779942092009605713987772942245278114762684737424674399313788880938422294590558339893872074019176988113442802799115238966791759515705198159015372891446965153008309951244952317640364224910489700284975370149097776329979446856166553794458045625692558530377990528590151834577444961899973896595839285572624899404460743537887207795761377756716616870241395253403075956262249995798538808283127397798870144260716722046983796774685786457372670601836517802077110806633762419527491950757184550367589331821491397115063697977363778441587843985115239326846791951193422736107000851314824384060384787816828931560477453360639575731001023036662764522530600326714166514495368686895506154135555395184933446821553090726043745587379852858471559620765596867952265039746301319869455818759770854984919666538277813327982818648911215036492917115895588900903676930385730626411733509520371784046673091467868876591291521215009216156298450431525302815488588043621569437195313427113812211328975199934956944764344290681107492896400592536902783315320248765442650601463426809772043381313681678905788557414111001546549127899622990366119292492471793304134742292991966469136758922745483085802381887318259511062174140594984602274259513534205802127667839537901514574205648073158036456524532479774450154119989978188749621736977907000787730485790623278807635739806516464139286146021022421567929384298783406910455123769007322989006226748637139731933479303689358755555931543221540869142776361492972633191342672431607194500360457957661153870181494800025604814752578999542561822994777148948503564895403035312055594007131659361274635952683979338077652285394920642546166310194885505967568373770541239108796621239487309958005192861516756835602527368045581601316078815060421115126855568403524007537725655955757195570223062077292047953747096567705342300586616724072604126004429791280262975806852668700762750945435103041986458125095187618681971360673203732306470130413469953322109259807767832454712207604317728175968407049547296775459493490778101426488852803217525006312131748966004146921244797197501199276174122173037869668970122616832651302150929238178624072184561355933960589887154233909909927843115997028484169299766950430422283401430512376842384549499932025400535248310104819292020357135542463878710850620997613868413970658641296703481926916770204899922098255514234140631148431131541840435839686943834803172027975342838358699531805296493046863355866097100253889067297781332258964212770564419478193646540745061302418849922328154458525268664119733923842365187000530024230564123657550425209251574856911568305478080793536370421461950879755963909971978565352538567387066070523785954076213712759383960162461763323481500156779703726040794927951613585946080789405995465353702560901065973513903606325203105963197637360624838297463806736929884138217634288902663823603358626135927332012845497065767251417627583955523392251772064148744959266076930220042306621366279493567861830429348774275512189711939649368272512463889933530687911655600203041457233823603967952440047358941908349155842249819604854985985776935244031177585297793898288707080171723288163472157468247458410236433625210628404986521920809441003835982704700098135444588246891496188127874555216997389242633364221311669653672999872701412647246341264300778905905576914786055483669628510534680852837057222671869883305751757593348666993527257693739687009315663577059712705102577885237391340255280804307371853960987888945486210253716900512712231308939113485297310748162165859792080028223639314658690344692659196019950932562122702592370795191573040074964142682088512917250604689946820287583480358293155344154717030083136874503118641199116171841167399081846839812837872285972623341041690491607714337489369758937152977744081724182715729463665577251364799136409192735923220537220689008559202642343539391817746168471326289234283257733677243035629543608911919337751008889001356390195923756977696191437222447608936830478803479623000134109825544572938569804046875086036288127147990152726910219610602891670141581315715974715258543543952637235792015442426909664285747761620053610965240136543536618753499683631701329546523946005743835278787917289641866570400309495401485472171598394085627419308680918318630555516267207660762881311033696612906379384099280343814404237833911522839829440585788656260631857608334052261767217944583038254790287711972433101891052113371392529503441851953104506200460909472386410715585583214073994948606389833478049148146752713086506775965720140605803800293468958876198627674837800687127159374699682934325774820501897795623027336406443459554467890131022900209438731323225430355745633614197149050856880206968667234545410350536199130244525163928679418535947762110407799818838773757468171570010024523668257282028708580821397026563555450371696399335435979037966069435268187662694645822697118268751506272113985807292717157445040333022270184579395496449119670136860006437813922810010695871451764726677151845021752419977144026218968316613881417432621019495510905775045859873052603658355415089717802404802101021786485457335601877483230342384156993510790504585515476241495676496562508563222008930988191661185995589357960678351909908223137981301505577517763467996638600482218341895548920102431417800756569676859436149974925588045781759772688158354477108898095488683521568489271865176304235110415873064804963808390170860869129241796317219928495008822757633318024077074025711518690377014918372440378033868054914378517678735458876214321637572053413169627338063381282625078462208842860130383599085958281871249200732050437191245256563921979178721319838757807467897080041546615404984414609753827123381705464436890637310424954420849403562489329500986072879652620586248194744180179162295130965075182116551683910542826525709827615554169306286521167873325376730158740511055887607613892584169521394936231319728987085758186242688709819786738582706239813195176212557336131900370433283955131297841350634368219190036739045571364185461242789519383132326676757369118169409669456404885806568686533589034089355635272901173573391708100588620589571631753279627933079536136820467739540413049226236203539772473237693354456035034176486509456548231180953290179635836727693353006981580320431734494935500728722550733150869563112129144533001477784167081802966801811670797079435632018092486987847078483668743912786790337081084086128493876641677959064458409505499491502254444357272680996251248443725317064288952918831377627671870371987880638341729746466772073559808680020973995204509736257135079593744943954698278667424601070471836782351788114950930544881775061056574817362960950870079335766051878214366415178380385520198024348934307500501164170204906634618194379981215755536411837400919927482486494153362148728574052578917262376009005743147188684191941023389955759767445017377882433239247073940713799921381786239311356753867634206205902902817286351346630143062469836771117969567838065846060839330067455097198312606281379388943375317898120320838868825010967571996301286692990945987597050641754570620344603161066586331650482583637091440602536616230491205679700939417735759895696371326027461718320530702500278835548387324204551876732337428799365795708702913957362596917206542500503658431855743658841762357896645977361334588087352566915105477840961821342352409785142863162716126284181995235164172793321009856168133834848809985264948900563745994043198296228718232043645900977576455176934238800675844268368414414584250565280828046009909688585619639408621502212829743155751417168080462087940287418696418172094212722410271892162617169341898005974979309542510280141624490531175228626259260489843082435057021227710276603710014222331706862038163363365343493567998496794571477257715841474730064487287752602173491558589225338897643809070688479582558127590618353329790296237081853939414097725563127493165875104007709890712990908728874799230645113068783364616634655845518091352850444294882210538951662215023904587252817571071626452372040737169459460214612250322623802484548360122912610412240277262733293710496374855452268108372073882287608331097194146953567051602959406364339958304955586653391926225870026489988280381961934504088714712779121284875958812174956594020152435795086129295097545486695981082432033657009651603261901521570576991438531286340332698256431579616566930205636765937376962970226112265884534942146173284921258395244173471918378492437768847371650914149247983544523498466448014393268085311084923202061690743651192471052423069738272217765267157627335115990576037947323395751573953611731613723233161124916375535682236370360903681687545308966245091044528271410934331034678694720424863679984594402368878317250869678368501303782326997109376826909254155305915543016503502104826057432276257585640527049874492928168271019434355760508321424787069791680998458372453373610588940686749867562712018103526252255510690459457066614588360221898097684224175612304994939859949990521423986839737124217593017764015317347040215241094574975216114067932053482595934433537302747866859375826961572207977920112941166909418959263182237097084037919707947925146109976198636556551181438124648762924189892605065890681037426487022144973379792856261799618768572213788457117567414006373469561896293723487140256069065195099691889407753196767817127022938380728112436845615247624676212373161311472870772032743476144908534427197051826668927612170497457910953159987969034980551864079166573799478388474862486604690453706279903858335735986370529242346494365581710457034918851688888070303269012039165564379999562413431211291464821046768828149585892038489864332900752501240760554339701881062717741484726289924883735146634386169991080661033675152583565986736691882775460541508709925106992901505702817381599624786878916559760986232428778783840333344164945016452354496408796438065345587556494714775819354048813046317099949114610936800020412427625623431566160781203469061593756833373082585970641577879180683361733869064309373237298372285811751286608128583487899803305344910109296017230362051851411296251819276572600040849276730611966164887977360705158030465761902216460225408529294227872523106042875698286668741283591490156507899511578780395203914472392194411515889262934507260292280669917273054361518381215692340509757927950100417253016613680960578430767218071081672415564781236232575071123507067864133371874055648670528383990049984508563681828967074606905785116382311309853841635960644788110458895832125779206178325610052295014720729570611387126447128526352480238448654621007223445088059378115944991087833763527272158567519636109091249349156028533965204280230410382143678611013511272272173547525257197141368071774677392343698638258739679097062756064635895750094408215466550912165677985353648698018378853772087722532647588574783069085015919058749611668282341588866715292655122939611425565029577154825995952846370451262870465382376560548765553070443990831423124591241328625821421167755938739363920919968917658518252985417540600422610700189285917214627469475441455187800367900546031781239740692277660724549215686962575111494906513304043393838559503771083665611629965795815651027938921424687448347426614879446292678535896903844511167372443204400779772523782545790581421327672237169048895374250348568703688667319558471725611819323335733741864847379214446095333511425268966984876361123325030781261060691941246360442714599620466569920081894586461787250084223876770283983474058190804051484987867504916517468368608474112549260035008813378017172859127957047189989243398022033967760238048458565269667522183275532820311265506267452301141566702084626188877150544648500706158565862867424177991341464435881534029281907920344644922248074262307205777094406967381100763836593014483069814519395850666827755916028744381254236572767006763912892321980863105876140617460588297634001707827618750934087379054780904505703309773734735032180921816049330532498999106784974890628806614838598177968645248970868935540500447292996086154581849185845066673698104533237290270927000295268320774883450925648647862907120097101964936667837636725263826854761369357088599178052527482414049047368457321644112265806236801931986323809225083708672736896639113746271735296693411723686152448706445964972464573718786895589095911446695125999634405104703802508901602644390401763142360377458424748359648183210178645535658893014490503037472502312477303659088832521802952277556346925361087968987511311949464419498239180977233616860758650902257669221000432028263958711509780432987035654205256920373327598870559464757192168107065909721434826679673433465762841803489307095708791470404032229044440088297632341733018653808582745324730901910836217267788062480828873414184718546740911552516798246339284862911898412618038636150930774914044345890521652077519889042597388980786161522835931931658283435585103380995421578999369021128836941700398954907725922064391011145588887281742464921667223487839042806714457798836290630102482451897712842399181947978124212535117127275618501146854921968429336032325693796929244980616832104640859303972561559558981735926397469240781228572177300190085685594861359853921350331706669517395634250276712737477461065888338906939574697854999801393544529454758192236061311815011548711530613704464876069968048145985100140662077787939680846620129836383620070408152270493610260017682828684425976886392044318019063052741848712055549228661966852256300554199909769854600743254235470205217973384056449886113704728084761207244000874302754545947113572817584163533932105762104673438446837092833698956230176332353161449865781301799348507943968199691022773209604869383744127049706297458134578928025866795830084194588381760025207376153429591101983751763264025962636609660334439099632861025325133732622740061602943316416214218632989161209103948499593217033183716872922393540981423843533439681196851081165036959031123481938443198202151819718236823098941339560550393923755474914985209399390846430272664844203548398399103419243480749869187502516312234711504625038269557253859169722640226497176273715454164022640507196967190179096641880731133776927285125325506839878861900861056307544758297613060049551136102466020793643126019468180728868584603948626312513863985052176557461107863801738492746446140363294833108722042213578575847231203694919308484064149220656665984117092950999011076806227384720286714935428554793016884070904896275178935488473768235618997280108351327988212012351233950070422238647943353907148236730756785113006825543717045523765467654512532903681367169858963564782285097553856483783249887454356865838435436031509151744641763471544931487792268746789959552984166121748054238571891912976627001594622370399216403213875903602664127333415657264380742866753872160470652095132091041550313779742602935964329365996457726513847925207270753664785591554221551145723749188719762047124892669707568269160585731750944668964999171818409238685415391761382410526760052738738555604228124879704685378756850388237224798908055787644589073410853100142922470527983835937169204017574350296201542990191729782366599160126864296439745063887121231400136836112214237230406446497197051682693066540483762193197485087127426842478343898775870076813336361497880219855678271500794343829275196945357665741637677176573224455566990581821136215740455999368949604108499684649239218825748903768231216633433737225173693041184721758989634179091185723753738581165428083062472410217583038380158162304478361733660844081208535544537525095036478524182778104481675675627162219681954206608386366528604966322862835516748794076399741690074791836146576114393144798652158414761938171536933622133402113005012212261544438292214275348975783490023880595322627286441676867070882469428182150758363790614605340293122825835358640344617647528749380495780579809057142424749825605872662156620509806717641678236026809146306547967082115069339432211115606372620579975686572057748902773564574504161805504619860788538341381357448520077281565792879683509731591246065570459851488922407149556438014904659524216491845467680358804701666111538829163193130607850138663596442278127650582414190723046494683874766410477612635238599350582543730876520892031573851012657134772309495059698548127011975406007203329499390927787717940559850560054795658136128896540270698309001183765675052036740811742546595892403361268924140645299259054975983731402067867345548918398678288942385182652493520992699411094072768850260045033242487135664740222369084508265124920054200657638568251898805163200691669266244740296709719088461418534465165638638632807358657317413648058295450448752864331867617877224984143494006629789192890247666266325823070402976025617675547670279617731091234048539195882076482837837420363552425196295277708269656536708776324834321520533722661880356624187548591157615004428568478559135526526998274842865600780149899575353797802033214856237389346013769680638928806956218247986125278841534307076297582407789653513019319227435218094864229313699213116493720212003331911313997016539970598197030425014926471542230607995786028794230801704551862289135738876849833885288687073345026962838338857716791331882324949220343889991450537152739764869155273869087870122119169861972795880211729484727183962580579085288132872979973355940038640960095996406597162201949971739889662450327522629530822344765061189542166922393810446498198937684261489943031329290363249337873383741963845972001047305169616028939016884644369039077422932539583196369587351846459142246601547016568288963949325968991482575373975223964363098140598243788455387023968670583715191928285995185550009832857515621180607445935314300286861568865462594722692561592996353388573467480022614994232780162692162582331893895359209394137127175726760865372587079894447430623318466521576706188563620924639355257805764960624628977831263284207671833050928595047255744999770631425013893983035771850249363501224134327578393886631059574617228923109512854923403133086638296664473756706540843390993543716240167087401304694399545323549890229541624602937705140636172896585086938439379401198716387665573674670154403348611288580697905698171859076553007872643129231364146486801517781283612418102251349926012800423366319238100568870248123467453836809313111860085893742162034837453785302533540079953160489520966496603124795206302765008697161747130358368208954706247386707340325816936634362613875312645454146298436153472114266724613799937802482833368913308126050545068923145906704698811816943662506262773919961875644875134739192559360313913616354323552810888211186640929235187555077035919871383456637866145743450773639870912511719492967114616369563898288956092694641835054654263124521811135189891664672763096934210480494206158389454190474284742896973576493721116360131160136543391515701596920580527432318923050408957553150194813568021640624985512406011516224438448026480396738706694338653761139194596936741715481586467242301902314744074018297355252232511494585268891131856644391849682404452551386625233598393630177703780406706569238317318152377533141717267628464020400429755880527339172582963659471137883439516660028020578300389682789930206170589938699897425507147037675495009319120700396614693150779663345328811882389369627250551030312852342824433234554134465065601033459971756017630311560176982432632439950010366768643165526828852658538668517580574622998923070296731879140596639070855897716633661293415176861779058665809732035897511223164607377058461011884704007146109904189283453884171000675446039026501798231210086986027791252039771048130018895158221508116048935152030779824210778065195731402423857030716110934036692121517480967545568255133562133067910842346173781861523481005523061566670275416770342601317412907356645474968216767582851998339548289920826699175851864895875527654460915785244190654560187336855227035089220685936502315375500478640230290464659005776064416669062056568324929735564304759020363581192851222078651290731886238717546636364772520327958751904676395304655241849395875361725394750791456252543620073383662753155966764120391757896589813623246964468331157427858365249479006726750645277183800477120580220024218100675457062747755906652164392414286905718870257733617232363100354295355091671174840829648086138130135921439006942517135121425599929392469010343019394036654968932042652540925866548899022290498452929905794425827861189157917186823957007892425968796086289739167333264049044124411099052891989894974208220953102574308735153313598693031334216920324519272927808276070254771720711084679083620249683546022318506286495926287738707992317567400310090792446837053746080388909422277880754043890710667944303212739576762932033792627640236754833248471700755982731226248347317732096453013970933002985866780873430586033841091820903483199228526446223108894601217437128252426603783929376354119176501720284973623833406021037482745512414910169621287047056824795671623093014649462304625518137423290044073507777290124674728597069020717996605928727253608491450728200508303263870987795434693546390204542232935739104924305517452439506513232773277604711790498444548320891119851756847942719840891968279883428903385341894554021899325081179078698964199890341569261877414651032699499569816646573480316083165329757355810012239031050943598611155220632580358459650535084495735291983594674832035981193480034754582947410893371238611102741928836077742203574708090127865212619766719380820425338725962181825315869744455124319354797811977158731118796701613852183710847437535790118651465981434535072006381126072904914381738502941050321366609298511746249413764355811217974606492835121780564962029448538550632594947148097267727492124661653652528309278143736230949266728382667529205403470115935160356295572118220025384716392601812040080756761768742529981066148875165355160189688091509680404833658262925227389519450323606454339504725812879603912103044544546683377467061595235569263815021844399279173888233004521720741487163334041836405989796059534625830186718225926664555450885634272549557020105777176450508787824831052532232519053528376956619884843721569818212739974208400933309111436165882146191899941417868221197988856919480188724206399651885127845247383840743712323422853772331351126763457725847759697824892864132879117168684675863243019594427907096476560591329009792870565471498194476003113397209672670239880535968130295429906616762907418292686900785731469126212275893205941369876268509571644744921717605059293935322745349587385173836487563620052980240408043161283027932741775777144348967883530333522502045274058578404615340422370421033070227908988204853746674769517943464662350350220204973454311716237065013209541150669212390742991213849332725610948049152773997295597535712911769852937188766764246490918412938060096992675880257983692195079474158097058540145106089259201873443063754890419958747909671833661068700727017224682025868788490076892372846142926666857300946986480414417858570015786137529559623988141293295081219069837621058233434580121139941944977028550861507663689887740249486904770277543692691130538805482806755043456058944649882468223912546156334514216718612463770550306774484092420805014410343867623313433336136625908887308393690121333937223486888089497418239870942718950536046583468766806227725914273401851317483481416563731967621468349141435298754627553668574403785513622453187884111627432391618523035848571409734297801364843025196854940224716166690864773539480204925622590338139543332723922145798301007801066477865991854863501331766015000983880918829175748878101645257770235339269295596240832615225008435299834258391935015847735754337280779564415843005930881049125887310295917897365726065252149459320943211507990848989982382507093658132905075579909530662136773806022823819391256968824549318667108045534030702918919471246363001342492249463971950055430314953273520633110042561677732136089083710681261389449664904933679555272227945456237392586186678436677087617380646802870503724901532349405498742496328702045115623279759167012526209441312450069349769116135753260555466507069381182382243577220467149232110009005369897978798602913297057324693610912557551860455322953566334566685370993408512444083030572613488245633871675130295079899144175720248586960064516509656465154772420517080478575093821321170736079349865598475909775960898570407214216680513533061860229391104129969114529158465598782300995764072247884800488975628887748816561646837355832568145375203172741242206491402973368975805739659445927135775059261369718113797267010020416837941097231422021620262155831631028313408685574346181872513714300913728217377100120774075318630453983799478711845191906869922960365477551661597211828898455625611554932450873743186943645708746047406094169955411866388951649820711141168656020351756430946988577393206720151442109654519374938361461951422191258517667088699037976937463890911232767419056215230330142050317088211443459980869817237652238113191038024568985393511727452338382427671796108189291558480409520000174319622194436745591326841845969092281792332830279171003946155109070509935991620121637389005582272698048598307965455913349351275322972258686845115971733197597640526905686139186120184812896889838875612615360360127637483906920802966892066376018111060501011959002306361624752241308243410170451706158343078751721817624432690083954368535565696024235775355273097752534338287082255197841357629484557938069921103719213643021817522737682609226566163558207312797696291133555007068254652837089131329916123112862419589017548557364329147799429611034776435846720147886478400910405147504074768557245627346438266773284169563206054420604116603831843232397626619121808770973135929277705148257724348323020913098085588794164930072611939589529670362841431250600186954963063744410188521019745010097519166607042748299313587815917169811137756712324970524823543311520902236745606620799703887758600347309672880653378214747998490147201929195363099922029011690305745884711946874147129595855269064881035630332631036534124961109451114062695486776349375593715188503729875471136429290180701017729442055518773014272723975807443132560517445940759486732360165261867500301881269725333347098198173326819672215800044345518082355191286987878117060245664210086964997072937857263241475584952712688823318317800788711057131340359731858202506804144816126434462149414640758882386177979650541057202374990693167001609673418087024926739043613739951723396221785326570385962812575563706531237996130484647902462228424337089518221211083154813798096131078225535032166110562410855107339971467119385945353952218752352008749355053121795667287486991888336775430848249675313280181251283849915691918206844060419835701051289166612597148896696665727813225501058438053162138731161068075837936401176688574145344700577315244857082139995347417802611812713192988242576138406339154995119782811343293244453836736245483511102653421805979906239833553935312254362891208621607091425245287805457331890004221042972051066401392593026011125446818420488687928915671411451753872133207858833767643501162251636354952728577529189370867390531454263460747777407364585963690744273697476226764413883277185839612879198706062794513824283961946564920811237310627617189221277133220140415277089454187289035349298655164994756010508211452519452222590542850208646952558991393286799137329252357655190747098660523557613421097954092651087954148078626499837578237461864765139854430711559301099309804451549042164272441449767128688972771384015621928737447319651204978435305591756293000483805644413513782115344713799742526561458033168001577326178177288435718057421686061364928082501234015185404682540373841674292767989692145838350695015265984795438490577240738685565726781978842268811968548236582717518537503239213411197298145947144137546192836672122047849599140421242873892871044985578470123493812923542649209537692115586467157616404997046533283364670540806134686486829099150806304957394024766136427264715482298838884073228988964145677545314991053077248474867794449655060873832629836925253939988090094453412786308904366211013350938133355822413928860783872761694104697806914717879251319662161271141370669279364329642976720995419384257164754220621359814113590209521855903637846581232494551615647087415469751350003505291317921540891008772565682875083640615082305437586234517938246793554348642870236469019645235954607692924866906870037085836707215071735137843046181635337348572712248276061083358498791433690436092243315115427404670428067979857004463917190028798902242738713550251624288642259766682284340742256336273526367378174703640756616494245948987650830930923752771223151953125524472514554531331242436035306451917913551723526188805057756243818339137780358716627402034391543021319323983061167938951446505593569805518100528900544372883516990471099563175465688765285629321429350975071155384396153613125690744767824394665032369301896505452928052273834386289503843395000584529767053380765146293621660266906324961593816129469190366456476862132160795267271043986056905970965318366077850040938279769586711745558033830030924734765979173883003883642646960388541581481546566357418279747847759469164964014831361131736868270178150627129557658844170555539251423553079075389790167626424947338027885176656141560096798095669509338658619057775007783504828487987388303520873411169408068701431931125822058612053296478936089708413320098121964269188141550701699175321257063913906779983967701080182014425806832829051594206225592399454881479113706128755342756313966924391148273736794536909796282288268286525721700960989433161604513376756579354461154604880033293163549025408427414109118025311305144900237483440851861162967826319770700698629215640099130697228429148355970623374639027887917177240832046635310579546786388220729426529442010946579487529464740280606637096284844919820627095468303083159829205092857196334330588620332953552986565912533551168044078230200470738029160210907147700047572572130424312988168906231826162089290991965182476822470245028689803728771310671775133203668093675240872833219927027466723573122760638809777296242718876658250312008601607262026510780572193326882722536650423472863243624675414106086462291348261279507019964656365310344872768674209985433896783508213315534362888445988757096692141863359828075037566705791748904303490084957207393733196407599662703092374823860951534434583750077546985403809393650640112241088767606461135904132227287341891465068774925808776134769716940945788958765044387004422271697835990457591660122958026022679723927735157067511905613487885855427715338365340263135422684779658695835446920541034365464237752723277764092063645521545237848413194441922677837011648857657246962203466273248664945275231124043862254619816074713862812606053199545208281650927576607726424050127826504604259163611327020006203522269737462398756909786319944009457470586939647083022005690244977885126330912090512844284327856933227561125181746363470068270299389560883859474609860044494028682885921882575798609548059312092871025185515966640047676303259018591120464003002995467223371169594963287938305205078696510650740835983793143913693530525615421790779378665678172529800599123417866966369510802002880733172881025620318289160770981095976625101522971395035002110759876616412614470066997849860916546066421328427354425812207348401478623122683890279800379759304374033942801140215287723136448283705052348001553422394862212423158100884542406026084775498203937710901330456535155483068452234929292599831687783993780929494372611598358662431227203706991002440663896200967859003442097972790700326060061253726324102306026173589503741140602560033357641307139349841557075849838126805770430331008714503652996582886525440188116804341152615389366534567898939212567785443567609128041446244168966060932562176447477638847483412785885369504040030541235643729299826536415768776972824874356546547292130569540719389266137009251299898086468524172550577132258736718392927991062395831842524050687871294687178809690643158863631537365786004483112112579824824190807635645761788396568767087052944072506302998113843409717570517174381551098929327302146303487021575036955984924762680388647243693076176020243312628976296097859473684659485025232502078421885196865772399101361528107488341780763421811628768228513995456173973359276448159206383411160687116405649741242013743222601146952626535544678400117478025258755456853913008939239869357286432287413303652588410751911284068435412664279536893098827879988715376470788042818472549404785476962183430377017084954573183529969910576439645970030895049569059208993993467061920667222475004240520396417919611096070857386205861717030043170654566491631506125084926539492194863321076085330125498420966462461997799229108253793050868331855429579593026687622161771445636912198484028174833610790969997944372904387612229760443353415771552671147999673869568065404677269694427197505208116472045888289685569008787420429923936869407612350777402811707884396486126033691908603935365305548412307397497849373714615264146365033828515174226703675798140461656933999286751060441660225157574017796326738478670216794351345700955295405894560474380227872168926371887592770463149620333923959975313571352634629406977172249473678810790403750594162559451317828856622920667316076968109910296320131539949507136668379667781414308010152553220786094017348502188560197422047886799173189538800653486666555023367146635592896696100507592512471795743671145749747391624533126595220824121529504713402040706741901872928848653474237055886443134068794422200839759452814290044969073115847353835906230272353500885980317897658700251510994893151223855955983686530920368248959489149513776336353427188707161064578436442254964448788335701239145172392251102036988676206459897781928283222804986544915691542866992945973831456701066947665060831775247952395904445884554753773190154463169354486950999742221349500808354848026217345758088088064494953036370573968068664357334249630405004448077414294458561572211845303454942077537860112468333915468974181519740045527138009948078422824596474313321420551628634000450478745308216841598555445711056255198147788759729762761274352249541686142737954012376582166021671589716253680735936689749121574043115749364919384309013720641434884996703551284664416413126456748697348439899182853013451580770420305799877756048321291799622243180719044522914142414103748289967133529325041310774523128673346345885606239084819908872824798980329400205538583482845618302032625605157849443741326725227628858908363624094875342755469928149002738785062562973258198743095976051854290497524401121845925262661276870098625195756905594441783962770928852149338058959438662290730710243192787049470049312766328261338950678943945196365947538771712563011710342238492147825228546975014452013030823420858708597569177645450077224025435060948887861445000151917165564564304180843413941072528391229497458363198142620167211067734719978133020500680502732911632679781984737722905935486317752920450708882881558760566746951050678678330046690176476370938191988435232150599618101264641593479656538421872106852037049764566490254534175101286101283788763891101530441967005524583844188059592758946914918819576552017076849201857325294101689850873724150094568197272901925016050021666349709854416756878660758275132888863758449387782066721195344183976873876619090876924209421240686269865637180649633204730551670756678181036876374126104720598243488453410505185255348938050327246078961439063391922731807642631915443333694848282860243827795967828321029459323039546488598627150366322231913802577860124390302232594258932508311008434105529157104471518883980498839328151484951511063134359546409198182147372635429010480334356420252362696998304259605411053458387901671210551270524026415475995119102742523105656669236460773055434606941369404051716511257771833921611936292189200194025244536415449205987582402581974232395185697208087952455723560820043984017655912333079701856094295830344978420701054993925835519451001533004895155354500825074188622645028930139593580669876036332077687862825734314691422205543834540126785383424252586585859579543743346776898430745908535541747678689275656654678525609185837514281759713195017228515357612477335876249189287378420821427393509109434839917120521329924118281595117023539795576954484126664680905650963818150390356396153641675451074832287226257492946175237568381591692404027085104472704920622129745300120500858081234046884505307916517036607416087556909637953695430719676918222867343750463974578382462644580979152442597377651874863197532151287859950208761985966378561850386849735262721780202535487113034104865135129304542729025847148282291782052635440500251993451641840929118657388550097931319439586972412772025993917968308577612728461361760703691300168031741691269961760463533396220989800691165862598025229209937387167429690536798166665166667142415383168901278866035787638417951392885724766349656048269678362741678910090615553927124204121350322257668849076572382047236369311318589844508137362764802899793644686180110566871369085500197093822835524153493717404807717405283556113462463138422671795214818844575259007879390513186389114225952751175785763674597856015164648244591920996862860535731846312246373119214434026101233586695471684424435839082834762619652200456854884832587748281593180573773978861615683474186843689704820228242888836841026620187061054338391448600470351581350950402141766989030475175415312808867800140435565526201571602424437894276262437742471692081079537869473477916702093780186787191578171899377307011022211230414715502767092601704026471849032281975277450048485986315000753822681771554579656892593395423789919433068525004398364688430853865503535362169503453100272132342986513932327113242002735644469702810624794955173253155668613551012853459645509012552600918143865104381622069879039292660613432137640256381888349455587926963775535393930236233930816344900652952571626116110138309667173459165866773407471522427275880555304603469794892857883159811585743987313946327657222954306187560217343182542024708983230993346055222258653565310727399420185121338693938146848294862643134797829514915237591598104121462728260891749246625791136743576525280215941935844192327680285793533491558061071249875147385282125605189880772010826212914800244897399631019591242510858303036452292022642696759563087077572358234225298416583450476735361620408055131766181638772287514218622246414170978414072900548279019236278401465306885734883406665994905950816787099469986757625400844057669185235741726327922444251039874829605049116032893131725145485851931499463898854113828324941469133397902475103863457640829873280412533470626714083276456049277190270078632289393284259501645027373296299436065486728144421555819543860033427249526610876390512472393668767453994623710237170949866319967260764411308454147352711683812782864713946138333078052539836882553459409161563688070793413693283792583895130213209550532459785250028586621782044834864482275674435260449595543477878631568947780336721862862824809359939303877729251863090768710110828690958505760050564635979494621084068273973455774743433775421439560844279633731918610786868304580977127184170083094390103716520596988711532473493655225993733114491936274433097770886373410725946456309486100092508210066299344561302321779001719678845367304982234603482299522274067413321311591385368621942510579732509799691898251888688126927005240614629416216251696765517214440600675240040816839728081030629297390675105527515058925946817000993565278229408568097021799414332586793324184476925385768961805251041754283968435835172490172314215260423299462382188389065632240237939812966341222613578726393932053061426410400454880241771852399743730501539949476874365329899628853170675982893396477631352266956867522031861611666245873441319230021681554431549394024945361617336303118662177978122296347781939698548478740549877487494611870601163314053848954222470183769485790589372309783800318594367224098143490649138878040122542902447067017106649566539301894400340987845372765856732190765962660379524879820274818780663219744642895161682438045354553776625336878562268216505570286133213692793426535974816901261264151418743999261917753826386094609875009250006489056896523093591693445460061188660758814926533563953621617723643857518951490805437378378531438607971048971887220969492333168844000315788938120038175983905870579109382086025301793445075101865187629166645258178062779173043485754789592755233070112194928077336337463653790605968640095221432904781190896218513288803494135189797723554924132366259572143562723143847609361102765429529073882803462337697353020550709146135209590936063281880031517139845549596868428647591619530023928986902638270263811279798546073673984035210253309534564821685450163767737119638480817853271771067798327050578985922972786301930062646200746481517357106214056679891728520624684511569573230358783667238194057626137226124476946294597128328285973958763717703177747012816413061893834885155639378859268562489574579179732957020017743502374515257556103368071476362571309950308383575555029163977731760830547630097609005407643338078742981492346597480644335282730292173102719850313896780387987296550486446000055784677548256926678860880302068350915654599984607308200374371473609738902637357810397274433563647452214798039874611610144464819560124974172065342487758233156421747467163139137907731770080002571221169219607628917058065816769834244386826392409597904886165165734549935916647230752133844668245949593245324274743932206168480781367082458376498089628628067715221818173002345136940238442511452070412870859282589556972450638270913638294758083317050159743560803454376276436257783865672059542349472587787729136845529635481937378166446860063217637202207148539091930674208990302479115187303369675826839921041834817116281452731409770590060043944578549704665072086442880118291519559516010069571272247629056578979430366463674141122900770203859796497925668849429091486163720404635979528150141505749664372095904602034771291138290063378198639257375490006856943216072248867051071849935335698021088681682790047571925548255091597594313183239640674550491085256364439365214821206689351520112144859491920469899706776947464499602294193904529956764692781470246736052895184755411578346190740370737222127229954009349319712823909333247661576307015164959425714239029958253083039086586147097744329081419757600551498015216073733494546823125145118879161170302926813104730411457792148466931771522641550655072513619026195081862031542776818518687031596781101594668939777879128893476716490080721579781826839588589214513318043018475441673080827486478005704267981801886866407276964262649796903914951710550343159760191317465215349826279151410993407157527082921972449746498929644241346676352043256654368172222757491769585340545908362591739532542692741235107440297676238711245691941084157095854939654444836581643608843370564614300009490049128856393069602814698748319023571782244016217254410389346815694291796171204085376834855241712408464835079987344831501856420490336078039482620385275476954828751680103979042597056381453485708133046091684442655301476426638013865912777274117527635501165489756420987777081283447597725926669746034988324280644395230912819022747933760284266680683352010738319333436876473073151189051469271740576523735426028175288731221186552578405565516870107407219380498124261817680561007954846315869054502356292076268726470426272972895881776788743565322531415597349019590292614426909487131944817455326911724794189590721478637692016322495559465700476540887493723383740972945913142780214506771032508932133726071853612650701820607481093654326832204997251444513854312540517836120772366697449609936397969503800108412715100203497246691242145486845829794779723008210428504886672038418618103588758059844865979562255992043490227384682922887692567479056309035368421729135637112878556027611116021209953810558136012191242156024081668304571432849026000204157354229753970423746079780334296959710440349536151862429445779733381331892380291397207498251337641668086051907085198925085034519706406966380387610608085299321066288084246422321952065907940260695662036040449353718715796284682329731535116336307870439213495750740139482133847012990156499645668716692275432563067069148254857725917600483836752009798364239524238374439580469344475685845824982687822780661753251298638871773569723354629229194233676696099069041049487781056602769300222697016826556452566091164074792335894599337605477714703276016883674226150075092134986888456656402158583799240382992330547295927835244628036922078402201014756419664923412643599844884807902727197793887375893616116266709853913989951228504465048641665689835367357437724550045923682916118448992833081151668940929133618363425763074196104000101299866712010208528115201081366618525195064705354031510508269013640801772632678277347021819074266553033274984798653751829478316516095302741075971904727735790052632656592995501071724903949453672331434790106323991668590132701922526174463936309753344772328243637288556427223027137472557171209694453969852693931394044347402267534113428576437977826702578574187349425801012027357156128063633574344455812552938914808896086289256079869852205117409674898783680898915854098325507456469203516976545522711937252985600599709459114960247728866087159432843416514359873960268331772767934587122962102578209587309139099367411044421560243700112967792461188830688114032160863931486066968770363367793379044982986310939019846000856353163944355300354605596491062241082736744425419672149922124231111353433667060517397692109439112645119611562942726658528040715216288659084417421781192416469306691883555880382097774856559060175988179965186829626675965345018970780557153083986455595907074811869354219239747638483107349993514499522649363241986067840855895876825577884622862960245071198165475087887130560399214216353868072274840209117973660901786163574334374173485753091042850876850866405825474780584107452142047298635188127754137060890901593634922227230414555687564535644596014056395197407730316092917279068706246898464128267143801235461730350866458886475346652254075570309509939640710672202925244361041410615159119568237672304946394355292291189637233706143975028997321063149350878692955186592235664640661816305905309427459653332323896004941653306924465972032194925356542734665114170102216106185088084605614159351751567932562308458722115233996321005747086143312496245487981854013480869130929375042742818806986673096412653424056584126487770618200831574348323107360729088488413134318383408856516135139899959376957764822746048362791360089264277045990538572197718047536483048719089505966904645889453487078855405750491098326955032722508119182746401021389858716894865941408973451710235091203246779725999568950359234685519357081820488864308475463041031749576218355813394360333760333792949758887891819267042755012265478857446803395676591326395393750228182661705531136897798972018671417721574919971011969285442802261164867150340592609132538082830917106513739597087715179143329503970641040101043038117295300250344736772165971565774932180541157498051825960790630374716463951231569965327818178508499155922990686780446251464184210913847276082460438094882542871407996903829722888064614536528566167478007310818561160783424916085811775265251086426194395385575275116685618118812363566678828155878830142447104927685333893420417182978157446684807128477049241094722316858078180389590732230925939131078588573258493310354820164743418262083606675545492187306958881331720947977652379276222269911020858234688603477876653166238767905776287564832161734827595172959867156947067964126683705683511312262012474042305643875981574151100618138399017354230791553427401425965285036187345525350407679879748644238834423364004837643489916198972062878020733455183367188402181976423972239993263705084543255211300532429216739746676763500642090809063361684065199092722394619607718196778906617013235313858276092437149936709373373749747239913472772594460660338749942493618329449909916914222584787398089604683896532777525784550921157361454346272221422138107587071069259058801632898612471105577676648640399782380687599589972669641572613816719933053046604440135927398549882231573308867923721662932337342465798904945767019194021756265709135678653065524436583464316448633652949991509203898232703791291088772774632680281752167017974843379157942014014466878102269025999839993442966357284379440644800893954065868264527598815789312528534317724369377070987771662928875441008889997858212763323532522361410877164871377810852432149533240639352071216640277086035536885279447239068324998697988297671059672801179114517542381428516198283431901004413695560302543068241661124493628911982078341748463653207798870849590503605949495985837392570520799131372102677921010301015921931774429427893509734921806073877111798028892969800125646101759444956286728459843844459490356151516387495462257898359521373171602272612513575353175645772114936088016937439598083822433610689569208349353085488658743175496016163862061035870129231473096485685600763512567671465103681359768276454196050482290488539670353994154688496813576081000900143575048944186998286645485337319259190131317798883371760406946641589273562248187737311699111796593051027022947719665199620156412625684396527686647375193541161650985851043287066583019047528907569483815753414933283202312242831928214685240765475117546112336338699251572498160502502311086633592269636402637774291730053641038258261057337746012543587511007533980405561452271251520630329582925708446584296029040767074640729493610560278463359484376570815545142983354234991415679379957202982661866196168599280658787740191652491763509507825531842905510655999833280193506938507643448288808479929207480518071460930659570068570453499012902670848499244059515720594513012571496983633621333394087006254059234564903060697119194535757965739127874333848058452845740161498109006933757415555979815724117497500108796579248532888631515892595030475155397222653432307911802465168762279460454256998502813601090137820687819184276682441682356745835066242510157159082559155735089770638272897668137226904374244047230062384390131619967712240224001932076310940295955013368140709994222332319365683469186284588266016311733077818688438695939385744932797892865822814124935740417203427408678346108608697535481435416841276741121281551377090879920485590965083364898401963851860603308039306735861194712158062131666358902025246386557679731322024534855762760277024895606907698390461156611991887845721563947815599024594310469649923223040093548818664406983066511272063308950592743523278276465124095578852413810230029677479054577001124019362085970145242364652505167367590994010885164288345473052523702329515439520408633809131976436530906830184906549327783125388005517498482940713112243346316613315098043698897861411668486657749229717505649922218655452599222480373235780047349634438897427923789027626525996646019779084728792465503205806380557077036222376334009077741011434519200312091986168036701690252338152890607366755736727528641910994042622627799741736761615603997943212705974014369620445172995114150166482753777829048595138943532240100501090938716716973983278495277231308454870560389647319624112920931422547092012879474408782117006403213998385556507638611068631561462479655460386786279709265118455856280851106686349161403795551684220676006737742489564720849818589182918969779693176598754880060294219902425824565392368346273068278191090290888342491949249468719835924578047708629821019769946524763898410147485538133023705580331752901234548735507637575886414025243983667319453737814214143124580740407672997306634101903743315110888706721470488358342798492099363741213038373114154875615693471188204475345310002362565539910593559872831920264037613633091342366583343930300174236756510493976393307123088837165922119410612906102371507690047097382411145889548570850573479546361887066092079747126262751625367957267979923688127972723730446250988391876896396360979467963656066457433144152821336733141744709666965830962089488551815641054909592852444575574899910077209367680556716232918798201393713760262963106530807255575632671592521803151030892675149721025562325570157521098664354227525643406956993985782606043824283322466791993428318853024622603937105373493286434567731656099829814782023622273783146866226380243092026320390063369322366910778272223282806769835154344624852626037516625720978451534627691655991417854991611621635828417492787907850631198980785046928345113809332038612790770714159626301709783754187073443741212315395293442761768398866187830142450130661496285061222390518193090808853163852769979411145670929477147631690334518493915588027612472247725194385075363188771108520168030440215457304776465794623657945241708156785968381393957978116383740009612733312430892403898753944331290397892062455533711746799423123320660647604478352720620865612942639269897957113070595973550361807915160773332702546161108750610873824170365956508202810028466074774965729519508414150774381946918196226979987614662791509567608605026204145785498898374734985596198239705521912804010356342881618084235998423777682795266985865998213226833456501240316357520138262543049957325340865168590300398942456897965076497848328203334245223735083879540667923497223042891402233623869641531481767155730799827641227713742672524701991109813424128914503742653925556207612594192675463345265299132715682464436992908563696489086513140803912791813226557337234939464910205790191100436564420080000460316782374675640493548970344889727979636555186267143474807959555837059853725999542623761874436176403003169928911559541961994022168919678695045002992846103235299939463800654912719572172464335793460391588954546532970437725807876677388528110439128227201627890686755048408575828642022346983399613668817225473986711527380784050532767746730082309706084957212830483148523787142183308826079522357166510273027158495701340718212501712899556690387583172530722843713903771060893164474894220150429730405439773732649236192546251119516822773268924216073969392007025352005518726163082634898170962903492860900778362260790290036459410314855732475194490015947686729722333117627641878569645873295903517536878835471082697190219368145960131699526802413844759015693269288612990579141391401129752171400802913171154289081829097625439150677974960574162386660289926183440551625907392005957471837142846909337365527825263810529945115548838399576395080612404644454631208094596837878509737616464862920431568612662537293141346489174917237665500168090063787466805003998052043537899442448846811490587920747866908173051400380111477901007175512387986392178618752822402165020333257934652883951743137939347579053555984612415910177030093726448579964742714933991817280502466103407671552669656206150638837778179334095911788711212354522902004771559062980832059782337661376612087488776127130452455611986523237056636387931656579854135093977485598393026081417974878477145135104164389661444911817941315717938554311891733294127237536823947678063946972418201417089202428797821012165201650003598483626362305890327025479786129872738676143249332213540535633044893184390172766172618572050165807402861017715386874825237848624920621662034492032343300962727810060929829533020814301997944586914966746590611479563883637784782430978584219672841501254256508153368600824074982690389904846731795624789871275352326572507492410344842448148966626723641030643570408643557579686699743846498588471448284042747172900174386509604563164845505116700788589977353634802492603081469750704169447004482763138952864684694933637380541734961627415892399094703961414576193523514396175860254870226271481783192672345965093000932022418258220890720194502815990192605763914481133244845400112813485255128858286008319069089899239184367417370529718383870123825644194256675354970299331535435753869572023215976258635850299594678512205751373301586004278126628896036536894112329310880016690516397525319856557524103146816478676753363919172010849906886071338524184293381671831551553299764852399625820718977223203193825808497678525630136117714177590622209946327413949717858023661445168718686002433451483451447162652667587846056660360711332738216118736908897738415987871722828723789104145399381129521335554472060802363173321273621850306399977303836947729770995193356050153509724924428064078163338362841737416655904746270061775534215309633945451330001217219464825628130801343060629221516403844956404688063943849451468616295847467187622949139570959931378902601656657372157512439395038306809026320282552487270504286688469130109878151533670381792817683966924446776661776003180073596872875819391731784446615429396598147086490126904579057806011362758608865769674589571945406301974128883269868642524333447033108675983574187403578723492332754359821182708254923764971052875034346724980098053059696338997354026402932437053882053674502671628708893867055491463290876052782763223652986579908211049583972251344034561534118091551312226687274892038991596912833704209944449723616140650890749745543998869629896097094094974885675528512529505864670023248471262396885198034427554224184687735301114702764398852562905293441672663094911911832701764075763409770525565882242443207514463576892998888091635854490796614283429442845921829897677688622992857478743987392007043604801708236291070698198108955125575485109245068748448140340515580367295330708184473071425035279982145543683342099126812932912146904379225843535754691617352696640105384894562503384746256005690864597726642982039229016944498540169608725170989134676477058863848927082458516023330174467902445408896971694783739923096969725147491145418958959880085408379326868639432374757788102506390145451048356973466166971048424050258683858995957130432717807831960587422397988119746772318163850704967973113800181937361161056101634879371152206721372647418278414960214561019857652124896152875081658936067531188745508650297664495142816654784232574584594700613423925323041236809642199556452643844847722098185423357151047469503247457765384887972172955714515026778196944506132915728638836758105640140868104579178834035558706273666851463717016719734439073173898568966721674112883162814178054291761448745312227816595521268542019904750870116435454083531448349723973569513033691147986634572789480869795307164884638430808161089888102364521865293900126295747388253091371519815009568054419401663197709481451743498597204412057903521391762698844706302515388925272129102353015168810159675363575039648905105411907155663172731288090876986864537735175402995690231207963431683490599987577774651044905732669050146159120484003492373809979885971905071652541743332241915252408251569047403980954272715235247689048421865616229780780871882522903919585818353592159718318918739864284327362132896493965234810674511971881863269547419965970340019092489769592191777020723237689326205139755670414116219253514416365789885791991407377369856119215724461975182560847383849920408711605866120247966473552450921854491829668430022324916913727604908893697551381953728731821820244299556029954577325468235010834510188228897959434013149023801758407541012202667489119260516368415639884161614361889465221161269626319557022472841677459802723665163769406786242772835192877713909449442641230988286037046068581840427352191278151890391577902662983153022378251852464826917157427358335283075375145154995080266156554879922158758545738690532773650662294057720742242123840168226005414387489179528319997587232811972873515569530346338347241561918784613064288825565578680581149723585374557382960636844961209421577211405602932421843395573565458076194898949301981815148608282244607317222415353667405206752484267053514649605821118289064100183343607338000323124138189823101844060463763163383131884281705846677943265743434392055592223375223018779348090338407001332867341477677062363161180373065261782269974404387858431305396044115547833837831142713657268121884698163071942706094476769126701950567920466785875976928554080751410452016203192783439187973852104176161922172619147750009010042565595675444057021596788025099627677090733287244031595155203985163211684587140781362156587598995829271501410537215802491162714920718839488394281617818183588266197048461373154402687545675026821581054063410583355974841353300330504969244040674474587647122915173982388278432189828598804673405107081819085206708682489623165890037433095807217922033773562362713796910812547341778279115599469719185598063697042660588774667042884346639970550566837564064271148100599596536330532610116311426624620275840553197856246946631743051450726419394802279598970808477730952105812952066370597372442693279800728947365934520409339080151668870577881582526868974734077119783814883668866697870556735415543291023893622576775699472887738779193148818494180153884211655563089163982771382766499903142826675781881397661442434140607001460469247932845696185604951228708163343551843336126261382392304779520979394169368851934846129049210198838146772528444220796335449882180857869681688698682362893797821632897068218224999623262946582212477113937710915541658894627893705307886687703203700585244614784133966230816375940395160342317395018141245675805001063909150442173901706180888099053353902185536394671687668544210394054482995958213148950922302058866952128589851053961442375687733596634081073926360060041775143334654343803623627814442054523049605379221480815410261298396784779951223711464936646216117169689865259363018708420049611881783377795656661974346202900254561935289570859463827963311129025604382721724076190872484823383332853122753850027808357109554275180181956886757993775756193527069653366273920543068020993506713049222558998843864024455866120942435358512674409343089822868542601135821470171761434550547917757073166429670728588568052520399862764792585652487681480239844194018966346136616542946495564521887831211109916520618691187138448570225625441718633986670122636761267495114864955556311423339025447419958791471993410077437430973233621482652573088695657554872870462124324519384959735435270012289029446430000691023235506703246820620902627192313627998634436475291799312781172192129979506291094964856530713575702835367525530554515437626586214630957808647155778083649234332598855528467334832481735275663389264829776220350994324895908176417905164976093568749031612129921447499625502723142113847680064861308953208743298059362231222454361012324231725358065158443390807294027560183420176328101211450056469789709008757094702613946406764163005111524215078180198066017475502965256903992933449604611427521999339109013245175238180349467886533869491568208943060523784638168941624571964428409570491074077764119823666091155723579916096585828326829477850314595421673271696286118670973396606216413706820730193282724121445716286457540404364346859805117947038363516757309039006540576068365486678387654240638837722860821127224722901717463261116484093745901332988089072647075793388076370893957270349065996542631522018809606575501251132111758174361873196168679666521529161574604731986934779468337427317257183505341081503532084261752206809901929546984078262963869332302228813488144217062420425070077232575455850372794649796470959244246927351385648713398864637020227343007689377352057385075734384738160995303080037096699693247874910362247650996607489954585763571801760777836834346709012734265478782228234573906235228233538653296465046656108091011281468784649494211302183901476830203665084533502193401165663379145664315355071007741008567171016776556501634008586779511256320850258100014356460641556416165733480344714331652702419285274535874342121404695504204825694074095928570639288269529729362176583070835820108085359611034738127547952664705029275101617499887050055984476171245492408670915703860453216371078342638838161526261843616500764124631556489522081922235377998237593127032776339666027140318905906303682535726511651517641067921479275904890889747376660992853937655329108145959773420095850573298041959704456772543102842703956304273708883004932017278534803068745831323448644291204452840606160583615551618488456439185602399795842444846775692688229319193166422606872547735540646299011240862086637264203032600894780800143473898031223302937328672960984917246946705111629448487447878790354066393866779311320797711977776948032753461952524924899546947192242181254171157769429093787937282074551498256563832259778404660278818187373403594584605434140876998360852471297390587840924560890022704707389194086869055155357233894998654801937619194914622608359060784898668255390218228016383501598920910394942125476466255870490060924970101264331522570126115367866910679483608393876891186150421647412604447642469935690493446368423822876960509688586144740350202808071528006679066324445042030291323683887734288946057043057540261801216694042234973517870504112860174710374807102420304420313406169924601411857855999503060026666732970093698940418707591689948003665495981016007982783471308160904609819149274780242123649733835399435830235319379649828434776833213347793832819083029809418301147294909211108873448092655861423240655028877676521557352168591259205336369920227742002742574954684749862476052502015958219761316583347303342373305143154135562361010840741036351616682218794077951078660465551401426896901649607085455407437653935914990189231601755984090361551030757843128994682553649279307516664252007648388549097614498519515126827936371832128056951274552954489660101499552308890713167497140830082456251886805272113528064737997520797297285594201722675972322866899213390177495417182867046474760203719054999518928534286763066019370807493855881542118086296419806952481786759220550175477976492238030706758709509590642253122943273221342735498778029733662232845727377121829587223096524788170831067032553168847219062118839855933855013756790931574527395191639365772921488494988020507445540797266507066499620314045181815896848875863808452546929581420565656700407916221022453184724762635494703750599200870949742783792006931448416506314739706173431003014656075009180978605905858872942214983729273861707318600008769032954962806253031478349792679902205067909991063514683879208057652054508802485766859867754884071617417655198985970656873629075900815078912581934947674102614503094248615731103440320603625394879250740723467640298813276755999776123525030983132986915974489001880267588336998231011441650990149213780769629250662615680786821385947281642415777877681334722412672251864197538316955429889061249562880678407924731327010675278821652558538584046114214189347134433922790850664430221472048493926694959387218003316919039557968779518892578693381789347245193317855689549002772077448373542863369965099680298201184328206516082289673416332795264692584805050730189471226669762444005224255126337485226454026626141591945938782599567902040585854496901381138957102119384057423905144298563724295211871330802744327002253252609562646773238314454564080297121338369618742503321376849398518712524933735555843141773337625746638004410159244129687189653609073148265987548282598527999340908905400531287219363677659649932886401239549946046268117977952755423972507933161944734108271994240534207118286676023829651822535851268463941215162091277573250968609035954139739509998842547080881240357453047907732644988351469508331617579697864219479719315817217824976931476456039145356550607696759344780581920857130688171377462896126510676920377109169131392653886755530462275665399062879185035247310286991755269254210794710607312156644107211594440778843680612339041829714377370490508782154150520113196660769595560714632747786213509682456620965132024365814957597616503978980491399798725383361237529228891412672251756618772840349583693737336499680812361115454308376989214810170198907558044765634425260186696866747128778333122976709791336234231575766295254954515606729666116423081829979579328264759259607654186164177544432676427636675656610182741336351387455838776945918321497587461350500231815090711225413708345787464491745646532017599425852543469314668933646887695808840477828872374014011494024689064181208349316427386784970867371216108431620151654462414652057806645052716289944200220436251184698228625790041517381321622223593349963133080443166289396829899424758002616284377747054192782334102730783488777689189733661750656045663150989821484363626769298566481585446428048910127230770673184077564075880718527321362127136565337941061802928520948370298108622919895922771074768400775614434087790960205117090537745870963662612814945123988631929334028972243351327746483987723738124666922629989118576991480713075026246400073363972884508934435013773659624596662360905294175191301885036512674657306114608095040028228560819923192184643286900212137891752493297736701859741673778367678535978508287734896912734872184505044410416860635605378109670408449719771479176709145053486565654252150823523349180456994743188006242227525343955430582638236766986020096194788273374804618090927042038761673993992104929054905247715221544687010752281421385906746624693003447419834356929462965507602694036415251951160150118689852468314813280261481946916798839971225337599057216644143433904617884160739068341054231608839837936020437095973692834567287522494988668330754080545959081667459147128293975227971898204345608312943774687274617371180129487485244430084205425677163894766759011870784459059427158473992843567692548703973470711066818936086880740264921145888713773243930599306409935279844979408803869960303402442918273898654810791311869189004067232814977769284497435385842421500581740125444477145509732656579720131838886085172120879146407065091665176376565820637748462309541528591456239475368301777188557172184816199934868751229402665595639350862119905012003136644869221249721735731007786065799152538948470503313747763304067524699723899154432255266468156283567238210213219245162347295428029697187738328284383272796929294046396824665171329041897687736246571164449807558790350055296871661273898425091793700490546918359141125167672580749485226358609437912677212365091892544549836598478761139445009174338811355412399852031388026440752554875850494001131671569642936688032528512709248201375881984569629700832987748374296509230850953577140613287780608804490555364658449594601022030016806148961455169406603689066064679178775991057961088876058731978622055725132498222297700432778431409581134845001235071439280596159436230355862595436577136423885054515871188011004852596543082353955353160761270740584768399146778174152545948109355102340580152465761329265535097091464921810139324984815990432507176287458876606632381299656308703028056016489064663846755492103329900436785732663661233139802640906244288840844505267127312470523070997825736767706933470593116062050854817787004557811347245227358830259656740270203358790367386842165974038050772793852572379680827134137031224037011659674891255574937058267825248076959873524358513671510060589195123767382623314839036642752927525939935240371700835689428696861618360280879386873581677868011541653601755410363954647251714544105236079654755316232285505729902506543658704221446625433282388054608914747971610673868614202027830631832989323747554587190777936918575849322791414674755799178127503690568950468657183450586675533093342979942173931011816013268413095978023915278839290400104064282420383438872616824880819852576626777318775729827044357352832101005159984445238359345517316978310824949743990150632487248824436832965176472394565916196176065709858456746035306628461339654209844508992790135326960311748408526143778235271302303181076594404001966838750867696837933556875044006228119844615071998086707663526191542129494483622670993855203082920073357037520109939042525950354976016209381843031420865447809876959239227537333347559669530441718018730368061055200613224767795081398012207124428285023211261888072647375617248209404837407623234663869940516433391278217569391263674501070005025655458322265171394630740342283010123747961121714170406607092612662205751959104783728845915289558603532994148715854661397049552916591150139211795567063882811408624210543147809725568122844264426330016310296515435540666205732689379941413781570789222710810248261226534798641357581726675569186038539681367301491599426904336665579263393483842980894855526565237719794431100913410597787977395218470322102987757048499051298136190224846296485889855721687955971142943987475901233276927389823164050251058678602369053543275371697901595457674368568278496654778676747734780958243146754021109970852319794210579307744311337319838372328740812496441560370982576898655494388372139914470903132336849697380220095939350927998278195767449743746727465619814112302639392910013325929159486166685789981472674941047481673698222635399579740622986399154750897130444443275591451280689214213324469921843374573547363955509662552398836661322587077875653574736075141464279354598138368456451829721772560992253670692511402212486841433467529495558738231733137495627864256238990617487031847696430160241858076868764188406822338200416564752738120861719553856993241757996453870381471040292481643090922307683132832386660019356122585394969123686123036224444972439895646622386652869847151636470690274441618520846646281928363325105317947699272207667979103427085481525626503181984093567967577785056898518147360005514659155508321707539862098062343926713953511611583958038020407818637871966619289728763375426878802482429703140400407553568044057924302729360145553068163742225334514164267300755646446674569323680094080772184361555876496967895378949557668893791025360998961015508228195573024403583797833376545772636443384185068323889709337902652921914474074558828722788735094624300451790134889665767881817790097391646116323308833098494913693147012116926403825444406627895909510134390075869952202387045425023321671938381045658574776635992217567603711177467563750028308234755574751175424588134862325281338525093763161597266891226754318925160761507733777542005647649059266045177110806638767120245202836675232958295289518276289203220592488810349230646778909396570476409550808357719314314984645382897350445999462441284714052558818352356478604819463949036996660847075732449638280079358569302650904106335234421472684388314405832709801073520103871217238673629651321592866823833113694487289766029154818549171190633987492731685940541983056957561889358152952616460596526801919991827205346119654206032144436417490432545651964454191779117559919700095419573747135385662523239164308639294439934854395893573347216437125200615457330946101036329795245330387597194637524103632290283695564477636194205242006648170471100732936051701890070008142234028688804293068317029658697067171374205806195948658092250305130918395650842714878523668733539227871674192240211953820112606128656212581649329380521633360879409439266960582742483939973832505598045700817150032994082513493501082841882174478042621491071298483812766591582568969483024237127215494220416720675857277161956281481257301395898788327738150330947869430442839489757634415374899075420793885129756234010027290132623503907684128675603956543357284974561080434553870688477570518754454886374526139954016376883052684526589472924821405816269923923932213006069044020011154962668507570644376529626897858098283486685470778225394678747720958001561966990680813483077175700360159248517028910550019063971747198350972243179595428039407549500271986338225386805391601464815871197482148651655341554661158555089952698574088738021883003678568998270953440554089047512155343586388251054330535191970465826938248827833930399929578871738895201074488578552195059469722583159897993580950337146804970254934147941685072994604157367857342536312802484890763199974331995666684673698226271086450636359834115276376651404905150194355053012759537507955133771391972108713891367832518099778304868687768893860002678832209960951560345626070147634484257858786679505730927767473099727340111571303328790363607085326303010418321321143682723565206803529578136882331163800486734706715069732152623931206731879503848002422825804348149703962261349613222438748152162383630265503103883874935945482879367498839771065264382174542948663227118446259416337389263718958279516091655683743274554232030737913275681449818874839550463892922607381308564127779594208160880123006351641500670973852145296199796536959079252361523774539576645652572481745811979564758236848214943346361700608653018544819804081842101973732643416439957139692759421524984414674559039909452601236175337658577568015407710981048944284066442086277095836902051851844439319785969193263927690637922633084021108601534834051784648312587676273000363934203979175780152308002797444058378128449384609068056885216544901143103714541599401652832146059725107190393671182975970060395515326014250814466417181548269879807190939331013605674602292715118507046474367289118350899860187280938067375036533151641178848661661418381412908558942377139195917775757913860165795575829759861942332847965456355644330279975340691939349910194233899029519097624242972974324881986900516152800008265555665741581379594668307430478709850552077297951707960491968155290619991775203743014854047261448108595363823573859532941038423137559917853224649597026906170432518773319047478461277978969455111209579897608445250300134755167164032912851774277732156373260891824068491789833492738920938559803783013567648079312770466872028314044870427414276518800002840333856280029847931797262949086891985617579866267637536356800225666986459890720816910514646064807838186741792167326302917086337275096809423753795775994217600485495468402477469669514942989852338239066655781588039836696689214447077336924091819748589855085490654385656001644848937803761344617844702780961518984080835546492255273933908186629046346259835344015198537883063362714939740472975267230459740956088601287333385684205886029543336413924046004336998337531476897270724775419189550554875007631945289746558665314207420772123473568076946014128686199610178241361851493522435668627286784352875221870104193436070884937491141173390462421808967660611837406871601053810732657322154278975651459580761195039078992142422838408880637047510753565360356850085511671305076440015725439741028930984899996056542609421025542494050244709538472255642438401403499547444790447791602515617452483366827622805522436240413176716552037857088115110607895357720072075934401080690168614583046221828130890266805528969668203642137341048192240237247736550531347383083933880845650606103310550513856247591298508912728515532764891908477193075112371563336692506766940841243440335999155078929708072093503370902590538279311778830846247548852725800561213699601189973182988128270535892256519196298140298750749318649563904448367690047774415048615051361042839460337847369865098235366569273724567442968870108217390172858208862770270663101955860644343556468821518207812375256058676873340497169287644787132635683264745377572029022369080176518809774052035126717224720507098268107892700328376750553136154844534526397371593753037959976196821001949113362574384515970081016844134492517447751925745509251041885351878510413689204816860655811413218526719376965059414284768729631805414725759943874465605812216267398333852375908517367046859201199633706554743321965496470395456152349315997752333896765428395652315134355977999918245606921308916147490379093933545381906100371107848998911016306991219433572537774209433977783735535207544487406232341559173993351593791949721393872285478520736897000553201544520176390267135721698526475586798986083604926283865374487391613648285755386184080820408188999659412659159063785252274851124692925829658626214414400164449209076922882538826268525140553076549113969408828779027900632073907456528946422273996166031381778600047355071091934392936238039132795082227871400758358731051405928853980307606843407434588706851444085920901552756184189021291042580290183836301036132909956382247481580215992714944788129083242308985127900210275864709549595000296547207172968255662522654549271460334751097625073989573633632994075145708569720684600876848005087039421651886917684671417551852738384937060758416439909303715799105157312925378460733515944542085790834369503756911697998516415274489534082005753159186055033173044394750614975903536146605389619592920123109288092602073009317872603473631033242732338598591348629903816374569363130683495451904390012372944618509893563135707121128191516814885019011567359949386107381636436026385087094214254834580264458289367190259500222231454822830039224720701855594208283351573287720631967203521447377526505224891416464138956723484471316156968705349431151238665628354374989445900655086194424095369064667365139827306352690025338789342399465562405129997607590950319474687611513548457026605245883868358372649361945366573748503206244082945718677487609182654523456002171756485120523074436916854948708957116384424540971373841316448324511614104887110247895873627010466818794534589644764378363862980158131270177203531950873151426606040195921086424683169810459491104529592123321480006389408879318017784414970280463364100371737152745119315431836156849629523850696723204808439588359501498581998113798533449561439665128519431658369159294217883484683760454513053105540205368458802287797019664378318039695084749620769152253012840929319664655672640359657846610059988455901876730397519957993890219142030472659381919779700789523537421248000450772933282487964880709619597138663074030372921088168467430550575804336557412538143159966438228713137552937242876051952130685939053989978313440838250479418390764436375096748231438257836026280310074281486809980174864863272593938048453675232521829200734447089898023922232291825216994285773233886313327200157815616404403475256923757930451883244601088633485865092666524706964179847826239887797824323262272452321330418588334828948850126536723662718459058195782531540466943842369942998056814957505039525343927068282765909128023925319528252111422241483555062058579963013936330652563540212430027348134458836245312699726426336345215300184511916756719371119864977920556618278255688190528700929397262518320322807912426990157680880216056850902918797325293733053369410894728569157477415202553709459922091835885219721386513209245876328558935713127156916578270290682602910629732343169765882425624890875779052710349515309873639746043191739828678996427031299849002482297857838143812274276309594229767658622061271740961903780077294189864573448531212559467410165237996898132504679330262687178250801912683731107256488846412540739121918893743510017433415391719291640306124555046657528123014349987055101532452166416824959510862837404072355889278573428875753603157027132066271924336999285011751361263499222456116401155600782809943897321620254412707800932954084660532424239572798155777087833848741063861800404339556511899705296853185626204195559948982242323140835418870428816649892511445735806744517271539599075391602622456090614469338767526987228501173243309838401469794202651424699965251552031239159510263542348386869117762337365479204355905239983771329689416301888215779368414022514317942499083651312432278211560375783036748295247431816031867429427231805976735075196252049699887154438943359484184107525109024920842484053365983687872790680843239994856399720826334144760519188724115873429743667747331363223832149662884222213535235743039976967808634002706225368943148360713058982754027108580280223950273502300104490588234310119243371401130583316076228990072268526685317362068140718049349561482059612597507043639479968211855254355554744361661247371737444419834268187207308322131765558751238467726056078190797181495350277166709735571819729683408475789090117070921570010007661531595200316457559071719538191206630623290646421234058888235829198197725981140148403751650865182850217511470707197124835034657909008377586545271697110358015722122723374687092060370967962992088086320566228295789436123685219243306201747144521798487330518294444570672210823926454034718574993766038851440579639051382622314319926750539848025339395473085711349967545418608553275840966999636698071828236202700166850435088473542797917103444208113968606831639161246596035610081568619884587938819727292490006033066056671208585564075425461811894449886323525164508200938717667820104623467424356669260863161942681474362347190936722939548322503667762428443546748244099572334292236148218754267604350310321425038245738731484894780275650661815472372981914859969849519945758841845720795543881168858800929013144705238732353991272495343498357829911834167168440028865141033693355262573716696474694093782313412741023686743504953708793285291758968758106181093790864503500624522266789628244815098887780743285422367665355727860134772971350426626952513945485720455076917875287216186616441473411269720787851405970743429591388653050198217923366918705238996000051427205132305520804511626463755903037453015421263006599835266130136414387913709333928886219298108384244819167030247916217031697596122734939100022616568647999416954702966519707916508193862622851138357741758569832369316065329319179807789764528921699774588990892624413868497858774432244512130167224926787652186533915178189478516461532938919205690758644052905794486500871982118559402662594911203318764893353784871585173742422792089928962613687709030412254399300303419416389266412382252594824900223233822247485197385413522673602017809423419337146285274976094522668045476342224761321971729935998075102921207817615614807046508960731730203251478917809550623818653222073130651978448448752565038524638492379326250043760998358123637578139732980606304170273336010972591396872316060313059376813875284553105473553171670524579846806504904460350166965375380376294403128940562583402134910836811641679761856852934569090649919920580808639575601305648730510266274443083910760341416447624499730168691450264680741968143664732945239257937499256196534609057207495049467948226173667970680621963294805324444021894057999591884294639239621879300219425281497909712391284892838899793885570383747427591388869996408726241216326571530417226312620577278798249473853842505587546590128957575497427978738996778531174508519727278205975057910461625660700684199538177285378651044073568888423289824214919834460256864031499890999229164081398944387850155817436436352553022685295323616031460063427238077907443148408208400785928687083386757436765686212135398576650262939869143146484053879685792253694665688759608042389107376705136874836400575237700195295171518924687204913193969224362678186869608463643049029485527299404228901845433491949348377683219194334985102702177823257835937627287063665396450064605112385586146759790626220985703872478121968813197855493779260057528193967334419673081478158826608279190530837293407147018923969140749894702982329348168164202302736001550608801202435730205813537944859262590287967871491926860369459931008532529794395031121927231840393081337515189268007710560521856538156952231613649179421090365328551601959147613889166419184272916792192676181080313230996172711481528650132352686843365585569492687132117335076697978416151404737716417322059162484816845140855310142786334995539218945591776760213448889279386554248884452610085220747402932875367667730303422695741387245732307440032809599275792974289112939183294314891223050543833509639266526243360939742824356046606140083620689545983035747391439165331388523779467988868868949038347750938156507426657903032974612921015719917347527376595972518409642021808577087032788894301406085224076694303615034197047521481932851896731035197888976976031104767874328889087367037500578154207872087518429431924002473342891575910087541985879430983526780632635538386631863481480190836707647723224942582717150151324352278337989107416608181682474435768569725259021162870748594169341796958839889362335127179276970339437559514882168651410373602713982337232668803290458673011377001040812036234727838388968620846069062305145825047105180936083012547019135423535129056342285811436116576468860505006408723398281432388155402907491507179955424483578457863607091098582752515670866902356375926580293045687145205254639652740014655675570686184196130341315876156281790565036275505416517949482868775661236706628337932859429695101645128190723130379277357309170336688761821873541486627501791869837720047428312985765948533665896965183295405708172633047797058006139601809907662150347311349145582870271377237742200906344240989047457494881347728369121300243959531801002424001448252352771594637870560758989808846339131959345510841018899950310491296390962346555017781297024042195762670201716124829110998981398230022471355900574133980715598970344003293495247443306458223683971043747055651093692976665984208635429930892857026646430727467375025259085212530402092128160331030333100964699413445293096196434453981402568062317060312856683109802549510463965478709224491305190129130829870380782011066380857787866115287587452033398514264070667887700259811310446752372088182539000452478883005882735992335518715701420123628374820610909027145437986233471736677746956626257500954610815242616614689653166512943161709818563845527846758439338503878710461847885177170981221326324700673432163541833334835919751710263498057069642290140732952316293110298950625105585809050249896806835897301887135711892383893163893131091672798935880502599034528004723264487298246778454163740444388348291145481640328964642202842658989515274477422525444849392136914787133419873661231273656401994050115457357843746949183382241195851342587495387287590651133203639233141401863967597202349687264743468443726686658830235683937141335806086066170931276646704446035986905826888935801154960419693323570331580545222757825715941419637788872286961843256884736091820695948326806131932861004607701157790458069514998245939646236613189571826211092176501989691780141256014097603033319382545963018694060453201722914597556419923446537283709012643840744125195701569589613933928092182491452196103196111639657639090250992525703785483710045159398569839294373416410822383395500149185705744304374134175390041097450135659799925252562715557697453402318555487238974680155841227899048934050135596769688561140596989233455373863618245053625354040920902897202137688288386940625559582525515146128818949964203542314240560399924788598979639292446170780917198353349066405183536358454939595126512581680726868464127784250759094355691905693014302994574061959650717135181611898844622220560832799385663239009202576167204249025390292862451436692927292105830852927716919906837999273829971782415512159026568078219213329273075559845354739900651937023425050435578293987898872033163942268198329838665323474852509915297265114924084009808056166531386305282548334147480071109058960561228836908838159122801202692678425298799571021936259784442250282401552597974049622338095116531606455041994811684408917024152664284558964698697320547526293315696849497902702985103368767087392955639602031737151400060829538345648579512551474784267861419526203157862257611805042754078998965188842019841236151285035815466806960976608058374556251900049853125557585476792165022395050296922576376099725765762255879353060952695800128305005521439221575596951284407312122541727537523274235030772030155461640782095263819948465251420600116836078564897395172058055717163208558872152040252208263615849998836270106402409473845284781860584076104528740759881377412047802160675979242143343857869220596962322155187008607720888526222968953171552171390785457628166703191395934247953452009329969952024956577875314465045087311262499650636236925868424231330396093246460382942683637728601384073610198531077885915486628078371184764772273603697930493850403399835244848424427471401608696275874318040810249256785304468438097970389115486062714332211866813294587823653948560472274655606773732079357010142555840194262075778487047833194898094652385287479345132744310713158617260173981456314163294721819479190793387287025516141162543806449938993603497874760612721013410880840118283979147890148223360329110513580797377840923436494370036464065913656063952009429943277974889310956869526073729735331618917130647237664995969866508298906305220109352525998430403079700396714548844396162914072905318018720626675925724671737900324977721862095382696786628477699326165159554871469554535683519514534030264536090318620894964385705749032699962023742733635298672864138942526395059865995274761346083895586218631130314471124871513925016855780481407601057580642188667921726087012209246535508739924084600790124514781293874192733884269331773442246626668676479042060754123064336560557674695946558072023741076903031586235531684907622160125008788469665650072651850165151771021116048126117595224903185158233327999970881133956916847523646924414183380127778551668149804247975866427926465171081714906095088425711960190952056114600858937796974472052387661406826329914438814033529783023456263175058897070197936128494375620814815277876950273745051481207337986834597078424507554292442272956280504580047686234361552429131929908066439189858084579984583430245881482651794709464823214514724390870497880798944883489879084873705465056985611250073456310654955033568162373064328262100398723624435207445052054508020701027638795407236641223967539815135889038641650753540223354128674812146289245479952271171718125482927654860739791984764807117425363882780075789956322634831983409668717520045420622153065849431873805529194551716398670937101414369807311835232944825482414045715702530221794914678260673598716756616620283755065776977652183599545438497002030525872353629106398496825980246283309560304145107468862411174971485745941511771169520867143572637542804040638162915327722983769006729251429033628091988846738458185729300000095507547169724796693236055270505100521309161447012446900463727133068026197190444166905224103480627109383779273465833484310340982714788669192426391579331825235263557821596992075480570362633842646644668236839780759397458227215205794059522750846194422386075611918106150806442976737157816467936348748714244075664918703291098055192803070759188377149128288101219163906394341005845361643653415961413400136649518170399481381991700614630838167846513633096289190174899969040128776710626380895164696825226246132423641243437737561204549992830001965898672509387554565521303925950430729022947906504846766029327667904114277294303127147202098529624745859184458244564613111064898918163035318544174821469716534990970062445808494337025777872167422636107813486599939989812628449938403037092528093496350547950208567143155406644893510007986417559107274153679550293178830551298671561548790899490908603189859099899200803672473942180433075751291296384547351150417804026037849962360662177122214319942260267168918368041387993943006276850823527305001615191465994229555221061953316789843234479655526836529726113887005413777278046575030758485898502692736949808332105762749611777125502840828850866591133369750956866847989004198057633012274703625094826363473185734644458426820505112164584478885418603563708848049171660835945195712402689798579285225046457488435448932060725291649758310765601806480996406415945728614013013131814148082210954761995802473472513860162099717216489191274624078465372903204431878210163914821655374628051169503728106237832394449382473148000909661505630178128143895813303323160406423478478014310526227324889543011789470763371748122958379758880157695320311223752377680181377723854252455152063094372030336766747996701623594846163576403037855869595857913704636692062122457108111682343374706632915021801913577420851591529252149743599966408510763536766581391512267900119520456264487675254035016977416038474160681761780996973184847619832228580813634452691063839949885994717431119553149146942130866130256394675898126464244873973833258789445611166650876767192812834570486700506967159153111108862604677391249976900976904986017093085015812361649256355802129176248139135538895433185511351816080017751326967575645850169420539818495063932278081384898292859960472717061478313006247218136671062837113861928886261532442149650025106555875876715885941546175834874174519813065019849722739782644572769273210893213694244683308746584516606895237901997578097563119908766651582284110354366889913675823587427209613464905295450598466399821999595332193705738679027806734928631268504557786333277746806892729430860198060932893117869558295068328889866342197319027351696488093099687806243369369832355125906898974141753368857537771813961837703701454906940251249475714052621819425235359381156044199589189050350020157728675466671698163227964601075693288630166384774536072548091935136572199089502049920195417816031839686039338217226336552095767543830179862831210226436531306201008675099497487344419125436589224696677578327436445424692978345358195741562871049478870793350043095115146078715073477860603286940369492257155079109519414440033256559280949654355069777937465739706497430048228974060569749184812605489029053810177863122463856470817854521945687131507779905586911607059327020744809411979896519719354648727667223436468374121225310306845250802750064125623681084558748464271201198705946893541851398623264200991711758935706872539970475927292031748928351601524583305632557138811613853859933717148472997539908402320530156983202669053175002581087109342765414586079016971084822228524491100807882824943779341332486542228157565606504390169032762639517425529523694888381477999227825336215984028254245071737992627278399162102826804683508543487952117680098401090210742629014816894622138128198243973911215463237881160902722768760771352495408415110175306943597347061622212226452410986912168463439942361258485176698028900426794874239811917455003143308380164703790293240451451248267081868647581699929165958204401324080472393880002229363670564424875554351434648998618904648834525286094111858995661966596423393187424468376003657281155280136275802542319601221455710147184875886622404702212980791735128398763165573643622848124530159334439424176015845582869016459862934607785621493794752920211460909891784876719346100688196184389836089517217121925092132672471737095931915919916775669065026340034754339315957864494964749736217580581160537842536276722656935745285388845878541436590227399210232551491328540741913116113486352700545389424393288932378256203071387198534052553225793710878207444435260220447586989406144418063717622843345496566190677776810455768776787454089317275148728394722970746332135227126724989692602891404507372042587172849606119983581259013620229993354386319026114352829031213126376718351665596182969357666180806794764433910774829313051323328542566565029877484151724817350072650716798208504770617619265613783289556888304828786441916881910631885130111689540481205977276072641420981263945393847028205472428397804624718367222046986408472597329442318872720921622369377762101737542625230997688783358517795953572959022690279014156451371353806404341042111684689546395846729651023641100023822145650492339835299828145402445125775490205157490237869824766525577998666649745721091404930954796164760185865127196941403620578666438617403645806356837689125488366439752374346637097379869517383112104376530532411307637340880662789545674912395427466177490617062011634213756044287034961020066423982614824518701296112962501165042502280471221726241329330337919397691747666429639811141430359532372147061163626960119052043547763379829693953254231349801296633871474988346393490706645835460154944367525404971459653612661146740271267631955433234259707175118507624900916920815133087873066241599342004653897419213903208696179344042706383303628211849273391225568319794123029731479279833401288217234156315580814654806271616156013047496514776764322972239067261862501505995435708660401348778385334899357898423578202387132702440046819164012103569718834719866643964843549059649442833097295434785245503760382022548325707449465192052938261636055964636011796096739373037676162767340603994159331489267143714849340271954417100679519434527010071557214214968710214693795384869379048324778513020873918743770759812829238490111323398200621572483292302919098249209850205338309978516374824429603439897531647035610209633699831617606538127520394215789078016356973543329610049949814338545618554282538571196691316411473944813275698047483191745561170593411885959998844693894062046550861951928219522904539783820441970507444454801282785151087990827516802367594212012693864917141805224729758493723956997711969323516233339776765520124199930438035921343516790399964191689957179782927119701237814344622411198810922850512603663739701684456778908719689890836469674347627761537516957852716377584600788541548020187456050205909395798437086704039593238531049573810773815531209758568493568115640853883554275292413458100677882125467430227337984994059533672884233686874740241821854512413456461441405381273651585339632075697399207343704016750322876212275477935163939671591865596913753172248840366849286332627183188933307535093200087148203705599782111569129914964395293917149453679354697910573363328312151319199091926588208900999451434581890589433752108283673141511722458863345185914235534125351715620058543309423670892059612537119810954355985965059998211640588849240330461368828444305186861887053067852615152221367867147688027118603592944349973295460852905481347973944803556370045401381076997473775156591978314614768500695827247627783884660580723406236871938272624812324788739229454813032867829769403277352733102487963979707359251910199561464557085948594993161619794228037529519243058311548935272893500132673690750126456532923744701226308326528581499806131369572357213585601691607878855250588900805932810743765874457337682248191422148847914280405702056046424364830717703351147687530524488794698271464967177193324431292722832688235561903305736690132109953995444916766875649087359555306008094388206547243873319038516619062199626621775953867046643217668900764176460577847519319598791322496356468185096290674020262455150164020009415002658233305759025380471365117876398784108098818449259249332040688050623590329218448705112835355190536523984342705366632040354442504741505377209709687990789400773088190339713566544934354661093360046854035843717866503679751380436525690472124978795818198055523614303539546227722934350468106296903257967116997772491061393735055600476527362734290243649971191366522318955833987278625941667919430826053591354835200748273628450358611691837102994544201218873056238696215352932397039322889321645479680693273218510545449938721468541288058191254167602211233748913746609375940488037456002717226145107718614044562741308188325731908364913717478159543150530080173324981535363135518014244189542203095321572025394087930428547607530264824414604079639641453139935134160505528224128320182029644625152983653657060562776736503602908973448757661950744276888976119399970077752525711143206274921016872456282670294126226776071760529493312415459373531936639492927537062458485124339691779628483741141814819811078466146025192048355592966348757723424135963339236945758556954014966364096250778926004106595080024127448424913152977415087117812389016742571695693195660378132235578651754940498426626426135817796333002074375609865301624327875389959717031743176510060735802409590030387541668387902976298523903155543480796865794259933185713506865665317167591839843280674868352299334322980898698388374144353970262255122445510028286427725255228186353593864318018973635276721161932213432640952219857936228466613155554076171359063259295482985204849941969735908527770939901968576143380682670709735255340952709181485142514611533186645421713875510254027757571002075698103676098180250861399176816648389451188310588605869300454983815765624945869103929132059734465205694570430085203247038818484379233648039040641079273712900714206786033824705404091589697133943096117364893260750094706237574878311651864532653093766570634404272177649170876268021811757525384395306507272690482526560073136444850741196445919762935396867274403309365697499572570560373234704723385620176713252223638932988909186653775953940439586859583752159882354030538541619908554511954879648734725932789734268379557276474688894135722011415719046200091857722836949713517370181948997985086677296379534927856299066518697674575173196414873743142071923551434912294777802736991080807554092362757671566028485191535504603929404880340776765141074125525349599001266183708642047871954970374533368719939947549247841470724818940497751313916423361074231264175620276358671456989578174007543756497268321105988677595418260409333394790770122514896396913237081356481070726702667283791475669362515414421640071825759780745986326258879645402449998199999282394614925495724309462418002777107161488823510721317794639623141031082012911359908141350559110482571086524887565624459283959026686582761025009955805054409501732922628885727033797810368572028933005152626808629844985025442193383182369273215283845287680378310098957331671581629142102305922914726115399605108813569157173373485220759769200860690624846029873141527318382351054505361166939488703003829258094195650357296441609935621261734728040174756550863467117085065526447501412684978686242621455796617487331102891983663019054482619890379920776911304544325187770950999431001830170264429598267574594406742626412728948596610117872251842477615513253904155189747929662892217659158074185585560500099851051049683183343694286026544123689596508038690853060172033881206158807796939031211959111653964243356427698887399559924290236006557269108842965488168333284582767459463902729434147277455070403649300220930915039197233519251481277717513602298585393061863608922990647136027058778473685131864996405206128465664071933655722273934643543104498299098935640916333253963886422757174450717151216508587895932892733175749751312011723104964402642842329959895302255165630428637800494820867480951341860987799828661544903083090232048471088422609770626153191358659286880033981027994679300095854687554018719837050675984966561667784199497414393345899175053627235686477518464203439613048425027199502949521653525255911634063082806517303169541866481820942145016154309181853833632012532182046018015545202698549887605277880186676848483873035233060787946977804012458763407713749436933666837125160298136167913354742877047269403269340414325122187318982406705458825419362983009005046653608358097534062576663078557022603296458596141219730423895755175047501604460632860760585132014017025105499834076208803452523173452758343705925899046876172167240239518895583237634726440830370591975886702521536890761170366757620896240258128325072519888530797744870976050226606227270293015027699556045166269026378702410363194791038859668342248996590477704775770055258932960717976057380589337627290437316241108116349830959624424167726198937237505864677791549910750509949229152500393531476849171271986713744430380716752911620447161282565726366319532244325706890306122121264152092280905893853685506613395524647047046141234319003068413794829000755306562522913886670212971776444042334556842709202905540262300311931648844475770598000782766390782009017336149235872680136036450608837836381129447222817603857922680910586536668272796441094835940239341878305878854445360598255611536139962164307103600031669974864461550197130803435496193697528122672543755946554534148028266609194779994907828561814519938844941353460134011762814645108402243177997613995691450743042271103515715346032901383502653477670655024307127298352727510595823858307341064087385604987334487215513368868811154269049234702696891517395594389100833061237100848104460271994047610253749196749542533802465137481876016521868255313937088248984385864672591142070740236958004132816656591642060995575273241641055924508218384714900925469517790535237234221696843176899267103032217788449959571742379330381029073439535598340246561607363071977951139031161621403303872044935328465977692041244828688480590347593746192292892971178789901102347476628819809218087678544367871394343486739232512178698068393983542204139070453835403826742549039430562524991822782554915371351225955523124150405216285044617186149349578812364143956699587200178069633826409077970148539600993160597303350813298677680806545658072007337626617447725887672793709341707670817527047106755163876075051169515025745374568767776368956656141764129245974321409090681309581965348287030714344943167673104983715355862743931943921863709974434266489350491362661304643371724387568536889708357740710245035644378628172161130829707897246181904566916775185665692260870054721459470442458857007553628290269108513205786187048126556234931706149898276887118828000830546258478577157796326777890267570435347833010482323919606921039244367620629882361362890666349111074502629626169746199356320321193218956670414054323733081452244315335752086067983133944003439192254366086170638447985849552895144177636439310721031360308130249229206607679280606733354208805067877810453262261441359488392536895569294991043129005792310294863160354867949816552877464565159621908521907598328192151285306650005144789036648390852947588624196913278129869928713489305407853014071078285317940776436989094577274896717249444930840776205898018298512079449460386852399270282890898556381411217610911806277839800157112086113076119674161288332160235742583657712343085652385183889913129226720973842584675424137927794351339947106683323341410138558090289684138925469629968565451038022920613065214929281318151592489110999549543151495969855874905766615036447720045196315631199233459449425419874332421019562716661407866045858230234439717973266112020022297155170160216496968037964735185862601411080558138621833151620151778887906333969257359814155890122205282230830731989178524127140425377241165596037290348570431409557927291179553232380662166961669222504527021239021329258086097937797780409276511275732854209173418625853760275445986601943597058000052163740602903302407123087306807540774906497577308400632505570899086446684729073533855296000536413272490045092361171192180670374917948904861530026898604715934785134130660418872872026178439509422058486384582061662869218656058703301604090786054650983795185151704249657620021045803713947934043660345001047067852727544182346295566226103461867953050625600310203376494718919522337332866822226891433431721263950603359817696552234289983963210267290081353285545513875430236711598667090076981665776040538545048797027830076847039623624075861354043497307576237947283221131358559087403504500515019927006710251719945405573154655384071626889814159785935496095313207656986684713601647763425771446180279277111251054029824171204498931626151219151655605980289569775416292143833272128123224147084738052485001109739650393728901488179123890469043407216621617564740279828567132650769097457217229513863936236344923987719204205642756970569864952926948684448706538908345958477219459832404809663917238864202686342490061120042875978809291914863903184005522940178428329895559883605332277170243402293516659293624529516520153301610102032337623413499747027275760283293795499627643845559204845135958829739379074744267952042060727138145557502598801737396398989417506138236774616085884470022732402436857915278817396007163947236466623397049833541021595222070334537927902607067527984173596068128325612117662647856209438919131006712009836394315483530445063357339222773431033869820269969299230850145769510866699430739691344327512041701084542254924514346197010990748021375123831338181832283810856541361976395524656724810637944915489042108042275742386782971249715173252299066864937255941308377569629821834776840924602646934702145197131894369059591607016745251616127185381664197129083580066023447171712296186091193140027185396426959404664689657621891768441379973945045129905640104647849320294161905949697871206060226960167408778186024246513667348669809536601401723984033137590401024821516644119910859349377642169853482844559753150781446779316276785882901277319514818676540176453512222926961286582842876754364062236237624116374634075922538730782188258122469585731607267429650095478512045409803583267853162485119685281989465376491463776992858273719617157758800145555581778626393816064511302148756703733907696764238724611421965236724210298683619649385622586485744111114730854518471030009939819245120808826847147317991205085606441042711611863108257232363481951700891688096771182171975409972570645246188757423309055387949215628325221514793313906591883677817702700430085579876546682934457923135009452570183693830422043199328209385039388070787870963718043433561819813285238921236738493897042654003884153541513231748123435775556917561136298943870061064490363668906339251816190759466722318885453895586427017967305410897825674037932489554706318611081878620152746340038389088476654112887121279035605879311480800692668953126408858762454563597653479982100619713665183593166279627949327381269711211156497262438283242632998350567019355440200985900248486429238964899503026988444336484700298185794573347141904876899760332662558639016637204498406700341257410748128650399048679738858204950341096913077648413474769748904652544723834601366969434859277157282594806590797222642261681039922571625642829004294570185383359864238352919701936646065744118181609790228129902662546108292288051396931371408691162919875750691466506900888531397392768147300885258634503887760443008070835793506437358504721490835358234721472630748377485937618504704104926261981167381641654562103380626634271396019018024266704149070629613284870444223362994140048408143811865268277591395939631822601746681721462103966269772069334491378342504474558533388877867974927855972070386625684991791887687906397955536439567374909296653193309381965790048160486697652920158921787257954546591773678979741496132062418090170974152655805069619395518517379154873134517921307869662271419563315746099229989393733591949434017500004907645132389524654045282028692362081794145047943705704669984485864745660165657289019303812772114458367425825277044001083881257499751822886394104417611713341691290628252878008720564075136642157661251926089756688931871875043948321117480976422715011592800614417806843167985107124297760988487932218173255111125262512639863804425496687154026156733846337931949098506332666728984215971352552016250476036738651228145391452017704935050980226345492969401631327790358421785729809746061920014688081918982744746375824059012034722993404818946554488546722420779392277858905653724270772571511255343786630371900074743179780703828968075963735256998631076358692020782672467514279096938518083931964029066703258513533292373062232702773220734513222771576135590078598589406214890934247309768323123253537269427300706969820554816600396814584005358329463008280612447958016395141379378833770157774683701270220733530288199728808827999754675758037686252582280451019168751551391125909291122882568450565638709755086527909007400332321584543603254189945469672560537147285525847638019737483579561390314770832892674007182514728824009045081146074705298675594869294552520554661531059161040314632875819031825339309158573589664560058061396092209479127289269922658400500213422704236796284538976721488641845111877496799502704423879785101920269630963680083248670120277828618793812982354695604847011826851539011726512139979033951262130610769782357146001979240962669674354464910559120706351526733028333162906040085503658036566875050068760244567763215634670107243119610454985558225894520356492022292256360219786062272011655380594904923967725625593875347424506449489896821589705035945165723147754960847256387341474334491875130010931062232784982569534349816061349925011486690231640493219432916937960758128526753110583657916746203881345607366120805933190758027182212585641925918868817859557531562123082190034458623041989162690735248967069980881549828121575631911855456563974177110714866455220425611199211512358363204430341656154197565200590635131355395564203685950403680206657521165057371863183012700250919214465944711129184093479439259527408806240667742336944813272074872875365741595639928481516511032714887245790391036688525850883385175362472864677170540352001808327179144569561355013810892393666201776428164805563849877719589098692453973028058119500498180923837320547433296681140882689189803082425786250148740377388588583635960326080179807505940855491789177970891242929217903223836095544777737242209119957885439509458748872528101320165893951844448457419054909989769040699122252430450145805375820354372158185437232911215084389022767428934396173238267220958496655896558746498048138354692788806545728006473760226988728973659420111666884708144302997137707467938082139337488937143766473595795801559088970691194967885648942027186632498843712809617842595636378476412777695470392458862178817364216540024389482612311750338075672073713340168119792291410279602715265885966569790776488521602874258117640462526003419804224825930409937940984752888044548286341058836728798036045093682144337032181328307689172726465194036506825613599629491000642550208601589143289776082485451665775874672721461269059770687652290080809477507874615020413720103083194795374061016758752906791171272101651062620186980931959171822732341233740294164741203964997895676131966851845926026205120133651235530610971935628991084172901055349646493033509904305419927368223547033273326036001285972159223387418603500146904574206881968024619516318547123572101773766503118576029156877657008886439839857914988521225157789122730672562761172030418830833854313938088604361883421184941456010873963491248078537891921217842965376182980988060786562774020470004692723412963439191802115235292813109060093917476921212609293968515121488431662039428809025065619530476147239342590353539495460340994286739841615366270574376181113349541578102785870605425175738439345377552860836289149645541777783042970068058811594815639979297875123204603816993179688261844932591518860568997897442769413694357489138588997074545990536095968731735021738486625821118187445745234335449850383400583497013146644171939246399983197319866505097466172394545643333340328159219846896816463810522610109208496900166059318027156961755514473392216013442716678093423463202909684794981729535173518614790952933167585283913383794903212623590010836556350537375263250767967521469056221233404675951389535572623159937672528584923054333709745080527184135496324487057006878527755441336556706100057699055901233692718309308403620473951533358507163683716227867714012889700850510223208004353011492984727263032390578526285612686644039369833106159796225594457623375138009059357183074050776735257130657901611727742338025687194236168632002484998214438633425173480095259969250359554331285803272514086554645728612195677534156325504882876513382683518989716403881152962309301162156539534239950072812172611424685991711012572165229371096593818040192029358909315773721997942563496898884869209614753472770801388368935765196522190173194567054538208157187602738692528968834080219017487986453827950445002276756628268382519654677140378894950178870348369441369103855666953512404352617714852708663793819732522656316006666884513940306542702448785013184004866921013747652538943424875339861183622322580454413535887775068843153540808340194156789673213385019409259530521802433772029587354740725942715807870525371523892656580315260670026950439137160453619571088691437768832526927223273414658937894798468805211038931075534259392188053833117518639168564085398976398318894251883436050599532014824565109134565519044600924393431827581479972202220895409435372002050401263569716890404532282720163664887434496721872365098300823126184669195164498293038635876564285172305245513512730171123359287716323309091474231193106009149588476637610391791118513178179510753918405589984528854630228592066568982218305778671308227408976520985246501837815417614242640742801826980238831199382460367862255386026867193220013484295777068707638674227163264818563989207142893704356992944280130176692273065099157362777619604745198913789342053227566506009958530040383416911361505172454688286377792415655957222909792910082113911262755738705811216656738476770162457435890649514561104725294386295962633874620702612158813788283169055876842586731342004072607204951218275600433805437550106137056929305940090602777817860721292864374868655154791938190928241821150033478747550172793234234197898172576904312537954103988781108702391704513205274278308490916346067971537754799890580394537720249552883536043187814068105799121667994760430973508719071878178246493764743397652810195437119939557272326187953045184170684699782566928374095365943350403801981146183404958521196106912180842633434085229201383516554124822204905117819984584328926074590630369793572034889107459314619099142130386024973511329391269892679377510630810983339077902425274427145699772366832177482389283452848706922044225950782642692039326499416841344985527129354222470475345769311568423594594950254604695381684415035937495537644394384265929269300302661279395494318517463933276764399960368456147967447444673195330678904504453653673680859220825675715053940477121883391178333862505628060459812591623792212513754466598858617190471797103157431975850625726467347327876319539287994057455568261435454125449616317666702450583127058007107549935565051209199513660318837266761156247659841384647863115443775618719434270439614899211571932568004747503086194251167740959386210163342720302080613693220905277710201866876798292303343128267952532317207133991439192233579204262693407892656633979083853088183226178035745835876805872617517507387657440339163796688556901743277852918412405649184559635582114845089755703896644028694576112129354219571395890471205832420037462621600087907611782664108475372325991539170064603606636738733913549163020693847883934152712321178451616528937964455824033121353630346238531719263162305035533355518590428266170957043849249869763053224880014101908984796737546917040902762976940961318153934053695588408421374700406379321090375069357663008467497698935612322624530512596131701991455513700542929899262850389168773025181317767528574191916399467768971351349502462322112261448389306134268729206121662827777224538367755577563757374753579572577075911474003459481222209109077217190630254796405488419371792980617100701099507234613350739424811702682107214982426504329037411106726841430859989513671532043052574167992079496768158545424055025508155161404259744247450558866858293412463451143611055465943597244327652564690313176859368874422889231574305108932206639743986541521518427421846134995272544202779549552223459524908512782484394086126580414442378885917040989051894838044490156422663613832384318150938317999340286964364504154160336631236888683912088718033901176137464660940765157722477158417703095918028832003192496977356506768236302905969824094544885124009606628012069907324186710547930784919700547689698155637989795635734395067554141480063153775272675268439062100680252403718022677865048962944739852617438970806144377953533241501645159254053699945974118059747859625767249167666127160487030659373043503621901842793293378710088650248482339298676614847610065678241019132490021175750900692697963725057876938830849968154078530432280665244202892269051154884166120236689242130624032408861437057702892720044763069409324422128111956178454187895497184802013359670455888597845384522918694926266205005205232980921930255693734728234888147855756647847651895379118165799339437973241975595406178032705020446686137342572596454408501763211716212658396319327673290876811563501919463211652376340104902093152574683672417900212393006602645782921466144395889381219573525773949124701121117890643999411648376337389691269717463604962501682885522976863055547709703918170560167601603854578557221334299062791925425900894098086443945114360747787007980034993008948328279882899385181610249013370157202714624106160727948430401023752834197537850401953463926512657584317756696036558090787297895419388369307158553151570991649516420048200157802432375138074615676928016726816803132572289772537571480900806435114684735996869347092282270441616101989827942754452111990197391673617965192960497174749679766675660225509436953562524697946666893932861504040073864209297344449011809321529023471668488613482092844407730899410535877156971339276071099770240276984581643561473346954175917256750349710638468406362324500527182655490959331246651692739524376729168620333452670432375600807419823241022686059869952263368338245541839815256311082788639509916796093926164023666702168838804787589330807357371379726789441076223456321115455254579014345518195419790578807887538394171253786127863654369263395059214622904052624333685689524123018770212637671028015490414604408658325091734236407491687126206588455274300793826091633027034556230586296081741245237811987541218901087978226693987226340004759946550799918534546201021809474770877438171354331604780668831499166173636246714561943432723401208660165981398973069779174895937272681756276206428980075695696807887746544215863174573487242892997012782096514731503962489175938163384023809943588940752189119809998387454307696316401661985238110455717721686661789903822144075066678320556585129594684902182103221361512446616798636550711854704214624346610124253315377395969431954570949138776625097604051192465867540556638748809595204945694791874326109665359777730614091305217120430981944088919936465603582002376376042609568225363266434764459229291711946014066560253309971875582864370269701365499269200971579468689940117692393718863518768513595752111037115846582724866582319406943013558838230152593399253065011814388428066944715235117538494345838963657585989342942252000529851835901681607033183334428968342593923544952631399773343000570938071049399414632388619770378127614346133675391791229076118608606977448236892257741473976722708759219527388906146289601249800512062236972203198868028720878839441750239270034813108423931759398007827939927234054352200382371989108371403787283837214187176064225095235821812844359936276764549642765139013103337362646149723296548737442240441612682624279957215537709499919275904784070358795048397298234697516995431209785558285665539114464062940611530305058257793499052501995554683315234810681340158049589410398541482569324002710290109615021452622289306466930452159226503013140811950370993695713435707179483848407675378605606116441851790993194098352898121804960827692213985619525305338167979459237755618690138809662522989955844000857385312375349196463659941155187994816107976718597785907921958603512323500220973738509804074588585550291273801062915989685886764573387474031238505088642383516541065294788655789267053464284409795665930449817075090468615628777052590346588826300739790304220148200771155873032934444865330459438017272571393807858555863779971985734648062501361672678724625638740382971212319120802242961825161028779546377228035950281721472350520889138579872345723089224677241513847480927484728834291208557518377478537097407306736732413833132743134222304568613165356204525370427828269288513980318056093030799612672781345416226288655427401973250430936144313843502054339733088273253553513317858694764835181847014831310023585414070554364479944932882921043151145282244660300146091299577552141926898637403063000720367131088685747877038456548391919905391338242286042103165829210508074762842375044366378120144863189195306426956324054250691701959095324080122128544015061969500171984918115687554386372407599989445776763290682284658220553999482541765351058317361914340592176282679307159474513765884939568526507331504924304665169231743310673226405751585333596479624203719862933544286631951989140372885875707878741858924326781610296196405870816144991123327789666717453874100389801311081096516161968464666257940285935413984001887417847606085614445266409727880126169624389945664945788551322261089528599014971146488347868359916913048304161851170238808976782218799273512779659254944186681839478992810571616695073615251689975911378618537664214244518982709536954687934234563030933870878803927399541059824470100109872867184916335274645152947730480861416558021958557707302423278652885002397708400296096848371869253680041157697821540894373156193338940376897563316261273267000947325748464331246363956351970164039473125692180586681202519716043578243948934872925751934820308084527021950216216434950653678429162283695766162424631215447294888142403334850072229274975478092489597690957061162426667909306903617230407461954428700140859487740606394650516101762919736883548180110721951029673665193494071678391858004073325160702988400489414783290533651471059030711877839925690493503418756808431909977889344621447297797833352642117349284866666025251617276451274513934826455325709691710781516516259013325118456281494333078819372566751945399724683336497140666545086536819798788344408298042888995413321807091724971319565855522932661571311047172486996578688932742742937575548652960026502930723566666938309194767428632135183678123117969880677685098682718357816172473288959759748243583477109615770346597947878996290550745228197390158972632926775851999379371848911241867884812585727521879683475710308075710171246055230755098910458284890499582868433028920012678018361894935568981748041534234624196848883840215870581680949116730740914820220286010199640496281610390526263654388829619810553133103787102298320615195905263429002921551673006521486309887010437345879829508293661410656149463627054233702603798566780519103120954981163553733608167490578425432092069994971395506727842497847518011141979366162812020229631815350030205233506320874200288207098589868812634627460023062477584991083088848059329226914133263428764261343559042972627128729314859843886620879244784334134609279229610481789447966194618755008344893788820139578644895327078637180535577839595724532558771451146176851745606233039267216847399422131055997185036633648761890193618382737849406600323997003142280704822612026213870148132542979985907864653589882405119455518415846388465147838232598217256842129176189494662186788781794165594860747491180044702286827702185616533074583499016183345083224652954375302276860356936011233248867149279913682105672166854070579716379595146444781532309027495316247715399397181672286926100157652919336157883619382567899162451724251131703600046140851078625190264963142676453390646541504555894221040092976914338366575684723870228704429393455591085369251338641808756506844853608454531226329502641470957837620222742104412741942546532843596339302720546618862179915757976166960315184642238633636770137734786502098970092853448475945618797040253426060424627334004264496576518779483658382890733221518551365711395878434102425005363026769339358695607094902621294453340236687757419312905815001040238663980495566107537059386330544228239716455491909677928971288522953930926353559660568465506047803370849234113783601370747878834820036166197394496619303505013093190412821102472948409313284775187452297318569309873718850520577914188045246207435578871516046152423571233331917669925087589830980491475981523052943850765778381354207436472978748623042902666310088020356258840212195281851180339009996493261033060364827433646669936808426729490514074346147568465472517386336359296547082650973151115101562121623830006302242785068584058803239983870370600933863489881377694668684181969148520838279339948412892109306454397413411446644450153342501534910346096755095397128631703543426291034522289985914108734360521386741507056836677513893445041645014605950158125621136172351144144070932236439954992027144016280160420888467443913335483739658535202187804730476605076070906367848714565596727857851249459291813328529343818039362149199329245372233629645942359402967846912027279349399376329389827051612267134780886093040539457189100076841737214467385218068822205773472406111130208140531436802195986044515205169062792656176074678740835938096863561565333805675856091406580166316655015574951490244910502876373257445103191183982106868241832193965131351274294513898294756772704120513312983020084471392486567959244782507122013845890182377455996646791144452552979614524132879737029358771620392974169781622850150124173864506845097911329295294056420400481730571132369285137392719807061014987866749360394298275455133172155285920321029013062733745722128916771634688072018344095157169361191679390257935469965892094903939505108844567546133734023090233243269675453065509856609585283656402911250056319235749123828176316856727030118866279464486993931981967036754300808544071944835666166409989241037156331851956321652358099508824513671698198114612118813989886697126999790714010348891126597201785419602155752484952073953530678215832670663307563805777187323931092191361122965034977902426599095469174916793237055676549217881439067326208830923982119596414625098932315695243803713306758293801199861744991835802970949974476371310222404191683927229591885237533757471694875491302157270744403414602357745035277369482140343235899228091519166280804473860221572109352550126455960909870557562919818731463599424762290162642012589863077771909511652332140669792497061940866759460283667079737370287480577135452710457168127548535665850712865676196859712807820586680484471614633818575585887208426027000928540484262620331358154532421390583347180241816872804633802629930407087771631872287004644228942572285661214403702057970384311370222294455299021768574862389247272142870112443128415443047257179280464304353206725543286053610480109939338122672541720557818078845724620891663477566986555353085826459117278338981078455932058017275246242993580470006193643983537163692395297929650551704217221156119236825913355147157445154088993987254143875033532312179348667286454527145182934983855998416863374633221484033244906729355331622497255942292064482378825658056733709798797188372737351924008889375139758673043434222067181097600037364621833219614864896280722078993359047235583569133327516398806716092333334891126158010245620023545092523186074858973968276152804905785272528300072987408693518167594495036056796067831657519584354600245773215828234200212912540553514288706306170356621076228263600761826185474836529556515620667375876953473616265416154988217688300285022984499218970479924267680624998755729345859092593262293909674371379215034680299220200351617789815861266677156101836589234286326118992745788330578354776867594836407546540628466427593404711590590735474353388835021458816428562136155013351773822950480804090721456927396220704340650433931168760022118909304915383319645811742845156669450084079605471644533964893677125361495812420371746565467522429409412899927608268987624641461053738539721767022935869899088151223538063665593129326605361751312917476090089232952571657323459950029799949547253047117255572419141528035673806220575417482077953668052220294853694118579570801867954673349641960047143023634848619821657766984286140882468424584281022651309082379144643076920832695149813764864932469228363276484716947676360472010386531878136886773863270732982490022836579086063447158952227345554370660935611235983100278506053506032622917942932833850416675533113328990475871322353995063798677852161724864018381590132947090777765746933357691899489971645030088970696756372634736534367159497897307435521366445794114246857751127344585764040842191539275841140465576481147298140048200840270529031780027503403871368224400180428537220148601800207641344564539607751590377603694959613988735853059735756216197580931772205701956894317996086300979253848150993896854936808446172799111028124538921067581892847979609901143796354270156363237135066107771456595163762862811256630217826544137321921070688171719399340879868319805365071620209483339361954104113324794728771710016753047314109413317405222950122250601157219197887846310440144577734089375266768707637410849088701550533058655302151261856331193508837896211418969937840798204117233085960166728262221925104903286971974983008765957331026877604736974318117420167017218543183765457273378383339650177768881526547202490092390762042844450667031070237238709843897350069727405091513943412217846931677016391634533724608360047531220658006968675095429032319230000743366909401990819066877110658847040310178230285372121929873278962969760515116626468778818054631729786980876220977837925578046050464828531743388156566529799679276285199967634998835280177715443692212977586571740018688743384897803429119253750973730068948858952999968724716136535086758366821135338785302961801454399475980098176635697615284018672924269912016110342150324073049697489702824166829661867356368986493838955571554305648124418786456351482252426614387120823733312596835731826281041958573048948643047901098263939101359333210526983102418425823714786317689497700723944878235259218090455040025752825409939133522890886360566041774036632794499393735044666443226080365823348977195388513084817814137934721117070907190698949569783758222614914388425652084071464795557284822306368247263926849556666327544337907953730171129501860145417756095894039042077345613979579821361115707437226971133314947205947872862276820424068155290761418899526288417491465489737963941052177233332243902914195764835695727894457707804511271795518281868228328542013411003924502082643114027395911102981033279548831414820236378766540967536754865402698176173382143213307146024689896667249144006892571143334844458187139945434328606921212564661587385668443722632867743704890842132224128932469367880652448661630817953517729016149064217459994370262942770128513379897528421801898155053232723773506541076173829829783008941947911872527626034900835849925980652682252315804093523726480854296967504864804101777868407925616978974104550719569843716562707252155810573155026963601802315708284290494950847449532841612279633919439498092113869471965598654494117509883822892058913313772959979977213628269327268919006015826150980708350525677443418741697087096577052366680380486906049289908485892571914838276655914890090279451688311686422275645181251162878756656453551375062106884190378614667598527732539833379923651397939038407084655083518983353614075076249201265522113110408244788601487398665279222768190468933421576593506146489229603689144338495734111845341605562191765677821244688886280854779511264577704199152514087893520359138620548311926556806359032054054670270775538546136089353436490202814373382717363905930405511385158897153355425799154038370169225022062644073509531501197258937912816462865568819889238823291630074312405421500603930824700690929066856385630952628936087178126562374916495668042512893919089740269390558500748523353136446188025217542504287191956233828825243494550262503554599214986578573271111076642126368744487573787942569352967376602999627017877373895246134527486791636478806388331059391412859275113475464650875080097314202310561305298075162406314062798540179885784238873220764993948381566122031958288407418935683175171998911545469885615872134988807806339694237673288043580327685844415852289353440027289725875831964008260534435020889169363237066924548516658128603200633212326955926559589247156778593225935551509267995188353453918888491521510318851214546014082284189448460799113923832031350385866453835008941524646210577828392366303377190033600838188737384905166604014818579591736498333568515679472948093684820845353066144788406426413089970363941265105687114946490166961834310181506930970862652959761757302431726110847639718193879402866401351141181082214350873734362363135832305910263754824975386203381991268181690555982562942971385482964230190796791100169609284687247643015407172255095884627275502918952769081276155193995780755119155732084015347134118478714536272759656607036683772429313698572660514167386895675509189179553031072171686255677543205710845760719686911768473764849421767351329698195113176938340816649657118191301685540776585165098075225053881625214847287440533676116575280476825224026783314970134961094720410398000367897726771354910553679112231862013082036043035818115729370513022435006158970026715738344820004035432692786112838954662369104258451298172419073897282509410499830964306532409786767572161513345774005198899961697309096851850217593551565967977581657677026121805164711026052882274170088668500531903061936670932541374175050845077749629523889403608008723383365340276146205839979944057730401913705292122514780867071137603574535964171882486402283495797633800334221392175673110552250054425249747439496515306326271227818114933572910362630652158252577680074971123334076185295757978897301218623177221018022345830903787955218358669683219606362955156088817262479289648852997962173231758868544185362127941164344287770505590685370966488343687766030041530070375824711687097937517448805409008629689416167505919205285013780807649255046276487552416081567261946339806912408171516591607407843932766644354688709349717385230795332683759889771127269116736638572711489537734315392504424967160761239037242935279393345017175535377700156271476520167652669751899082641513659963631888958769801850811428949147783597288744784557691606338745081820130403628749557659156911614718025562472593656405303800657647186482003521221773288175631135793376373914432059819425097426750577944119279953356114889944590693696186639626225479905767568541031574154182239177232762906920240694288669480190723029707831375993346329944127632965435322949719796628419489898909244735906127673847619611387656087885635177148413005148541611664574636518490692811798295094626168788678612988858121318545260483283541407567897311012223073059326735630856106185371669316201902058267917583821408077390610152607556359421094665951200910577852261666497708917830682936685110136195399044422824230975965137874070432484455435905287172936708929030459386092477289930209105435634428295149333312321898595197119192571757338530225680305965939175755460683430647005769385249873156457943127763361319517191522085089519286260405113216594317501821411808933223090922554636714711713069561335295128070202571122695157969049842709824041165985558683461400624859617284628597354549274927757410902168682269552147023301127566349022540860482512551684586228456690391158195202693017493038135628176446918634854848520740943467148472368015494731655290870459742988978772694172482622964921358095442054564472015411283917901726763598419143393649409149470375504490132403130746778395136934038157468561783620609066401393562200324938282018614371461564734957081254930404540088469829246371476283032559709484197905356744489208937984602582637112476973587238292461529290130153580345899233613308913507723081454647600766482824449966152829375667046624610800628357770942504430132919043971945661155089725256140962095798057412687185300805430518107776049835591118203433316455366611527232397972911703090468905098561480662370349669545390844830553236760271441068546089160433986951117548537667231033347075786002845255536907549431340149566889998065852573773558288872150055383167598409133601993835220065027115683081507886260242123755360579750773329616133594405351230323521472003908141104959048252853950019489356436783062123272790565990003552913481886746876883195578031900973529273819682836838289866864687153539275721626193975666120524680801649096082353804749764182457875696070825522107170769399579057965430600477178805321114535042297265932298113858717046413107804315905294777422210721450213840184227103904836349578855864882903792181515275093572590705381268302004868387569175958713700716168677712289070996667770957527517103461085796558519101056328014633464688137954722806403051167174643185668046349621635665713843285510368738356916032163785875553283590916945266992583204139292674093577786253830284151859218067292220106802037200308684884377606312739258334972897061456328287421364562778172895465803534287102693080401289924914155008042329335493804242737487493687427814966407173401728426843131705568571772090898229228820291644116770070880794776325345590906984369171852515800382934922242943020756125962692891359513702659350816051612383850971382033841543852575733874553105651052490612556473442803178381829062992618964378038446707043828006158607666736623322302414073982977121159567912190570557213703858654206189114216836648920765816583157088025431020830063682494530994514680546972621915687869027867954300570996544502431626039538354487970473697922606959100187174478799788977701576730320525796606953673595556870353560201120229175979864726465021914886181550125736641025704322128783811165366132378708672481342044469059328394514954241076429187754517662814774486944029265838524394491959543553833025636742432300118734269414368161382531150452015267351589281921210347019029789592620981938864869961183588370889516057109137545830455792057559914868919592904664345450571412870086319568607323165224905500265205610923716266633748600502436778926440142154638565420449988613915136407101223245518964822466446139400321355650285357661323124369085021467539710487243237035327308034865757231621234150562581146340718299887259088308980501242673746902561048861370196900445485838809141151481628776858654728935038200546877047650539666739650382513309351354982309315334729244031967508194174211344218547780010650722786613371982625741060086760985922693593255406084263963399884511959585709059907933616548319559319149891248632371554381700507014295137714845332876175072693945358869930511812750926484076830982322385868232788673037937736522992178418529195938273756769044464831087989374688840819272701387532202002984694868947586279105547403143533615305362083547225037446450531736803494549895756037317042326808797976661156571814885245331034681233512407734190964686765341016939675266967502662485498947428827257640905544124797421235189709670105821622597521276367130914360970129305346459610199156878507156021465789309218110094486697070327399577159324361801569821896375889809907588963180012119350523450464536302770334319446197500779621507438932478877919002426756311067722090040095502688141088742952192910742974634441918056664419638391462006150133998785905579338780127545122017700565884535291450379279806813481386456984218865280797729478636025102452195787745156398593570364209573747324319594349336274507731360890511777924860281778866161171022662132141543929205084302701483643184496232046765162963664831523457810039720419062511247723040309587574183675968182141879044751172797882870527659837062641971379297819466045169914613150985596103172014549296788903353721262881455746118456629460472312096703119324159560617676959699244162846847341923518782470885655802598463911401199723866516715828638792508982312363012030522674183124468305771793734489364594748029815894405347307688208267313427233748649139926288792341165724521208996628792043151393770801880893273714559978951186290338859070553786912373530649214049268064504174241904087998356319602070055523219292191769573496531901345669480961268958859794049401151028389683616161787833253577677613276237576368913324088593864290083992150908631632474701229617116047354178411383667935910869656154322211109599828976401461399415594207312790460482958475777359185611754754761175380642604306248498424378960885659610567023024543083403080812619242521593552087899205709417340971747061379624871617154266103358722858438767214392468193849878541585416641440859309761765132732824028304803533551712338422915136618073329389599370439373850796581235170679347899905021452676882845168193220287052437848071000191990648461830285901739731537801403398039449034426735771032348022740209628963342625484419722512884505008065012529894429288995247724888265733099092655587741570849742500819208397302355073854281989186582378396705802870605810419297301212764757451227203970126028868559553418622460397788713854565905248802183300036763611548421478761189311233442022382522576346328113040823514898814578180230107336792070235034598738752907534286089115094741821343101869496354999103903913273263455207111545306360671634007213771365165263521013320839151333077432672269085896663304609436209653334836211277860434686116688313421682953652013867626923430006038330646581500508817174004958303250019832417292649166413069884808410267228418356964126046917106512935920161811977214828935763813286086506510094088805769118765295638974565645574224549707365291764352084948460422786383006216707707744285809490525821937842013220139775746188685784535522741375475205473198469785079247974294776590383589304777682109262314831826944514170001513827225329781086543854347229979342295780844135920212334580190615147658451482239134539886990898659673932538924997937255411850755231334105351564972061428345065756977638227762630185961736450875784020746831559617318955695224678750672463114163281142540647958852236111249096699060893229082475117824745404437413128628764904814587588549790111171495450185429639288873746454990712195615874118515076000544388408530657916850994614730752677228816048426243521404963304685149711541344021323207064712555794266668449709087603237912001564563939098450920814467083073773242821381652338001955351537961334390349931473583540619208312568809519874448103611377877189222258537581586220469635947092522373588314445768054423046054603986681787521196030482155490375973563751847622250358976117094707317273905689393530555292420675787251027403713140926797228747518466992045931887742207181626252516090801794035883826774618119676427884631523328528806440846552736748054096420594463492285433609516065373696279128792231129873844160582690671689599424750736320298615710959630497233137044283339298701587069910966495096741537469561158833694198962985009133585370488787332595280701242618120865897524994378615198689529582631152237670717455027318657774284787922801201724506119610862276674437813921905163944491409059916489968422789634117163847068981166977103562806144465059496075530860545020980175109137467247905603205209267214318539193625795148945675215696554963894989188194708599863988186124515495444028206112492639858613314050455950993485057719594123787095121121629919459999514139635633753075972525326899409853777860647083904019011458181893653599713206133756163247386639624724263047033428235008371509526525766266669618965795398262665319231558900637040517400846662150291925995669473875512512094163476322379566923455327302556950613519665406692180880468816382191827376500758771645021750593104507991233847721952015761494953370747713866526412110440474637414429985251547010992538318640596787652848569862962340620919439814288484509003324882562367332743635811514357258030020977666806616852903293128063964029227219109334797926842177468834411976073477365601156737881667231072176073494864066752906278255469663887039819345785825558516830627847837641844077016950682304768241156491646404946322149197693121850885054590386727536560573265597786804838871333115899621070414575578984943584744172334676018235199333514349051351516502174861881659066914051141071300976763695922774184570702253529929313814245877028721122104315905000862773615549175342096744163703236588350936560763250386072022252964524827673002457910646701868171531351863717115010388321055904946314911579840415806739538670424439272504285755758067168846875074897662686455002597191732440035917393290483492524290929386678172487862267143234688983428333139756276969191429330799671256391867865354955518712502791496756231501391965928338796224229747582541530342694077515351286847190717975929578159921964488636246287270736589539367078047413677049264224901123326451194546746780459921016107677681084763449115980794902329968613532899044686326999070769186721322256470708477364067728345349109881692717112883969925183820947449499272935575923290017350738791822617792301324956795676640819438851550008159479587196552067241089863053907970870629434891691257913338690550006794188570793699220241387047790604414800336243056271228805844093214830008720996241654965739789893853143239122686984427045026992679912965922053058625590390304757290735850021669051773751268034764888469350068558087215594964373024082917878317314238957705662059944133648211636001981645421795040826746190481979941551952730687519176710319458110996931496691365514212904033153363088889777619815361328276852031862696543844152619732737282913909309821273492179881200215924039660453624843088894396127212275288748566689129165777657139000033518376834321864726326739137625956546647187465658182546748219170101073601614324298743056939088301100008557725856812729161366492084395373010221609753883487695812365904940266239193153198875886797046469815141651999997627134241274291243886461969916182033885418784185138953676996961945604502356192603310271293058385572786380728590275795142685426989173082927205087842918760771809291583957690729342358812011746758122362002647419793006335739651814392524619039613199464587437625247555263850179542969287327177435381205228895226870313864150863760873618627315865775152007108624232979078605852141427770868905135618826388812458860211735442055362688402711090476782198128213733788687729655648233791507367833084579887457390390944134266136949598874038342729751629414707885710499256651285110854629524390488885908960651141281536834559757734614605872384733838509191147598609641034501065128192222943237673394180564304172838396837404815057117365430914809555114181210272572734735776421224755032172573415150868485427006615609994684204196434089872319781989791552564398469076016482308906816502462807353187817202372370874237779072511348579312867941773527631140458070714455262677518985435824959758777115162787589549411278801950057949146007003289971138382440747850254288552432731550308874119435111041067169847367783888922482019361841111186491723143571393185445009648543037517556184158487847346051953391821980258058740464673092343271722321957276640226055009105514616084796316985770396185080673157144221256567901099028969884248471586888990273520869483318694532733267996768149606230360954376598814035074703667784406427901142914456295380133090938831307779706960326193617914124332168187672779745114448270578735877230264949390302189923532990825202977273495781710697643128066908494440024954882291833900189679577052083711284610845190699572589151996657474139637014712099315996914642766252336231040723494316766556612731270055477361303156068390051663867134047451407736832104421910834503715026848176870219698524984772997691203039832155061460451950946455303592285227932764207355206747617711030605006163785684838419614134933632704613217093217905785248639138942680167069054445572123229404165863214919650875097703882619006424241386626866132290151840045393037514080094527134871785007043707486227647533844046164848320105098136869042673756459498485962779235142781753463056405084670438773434258898619114321604544781141537169010874501595154372722157007543819605978161021583121502217676538655747689986950686789853542864361159875597655671711528261591864136145203850012781421796913573409033523156573767992135102532155989482952585912919222424189795020617322301988974496667182617693505390189297710973444844702504374675321141832788898261960393184655132749373779798075349070106598670503164522478721570704178206473747173580917952014910984856026428362298283273871123723046402764489113079148392170475975903338141547147863382334822162237424317943261347539276474374637941454352714958510305615674177992342251880614379846042812289002187920078818632151516475483162678034203216308043913929904746300915427439036154505641757153520655191738888618231213447918113667538368521995166685361589161290130930143323764526366615000527099153594228131751905038317035679821487541622118481695719232071798665352930956530391538282057324710055534452408481056276511769942706302926542791920914060705295558586144312917906924514159586145685003375848437933626173441265781281060712722791865931853917615841945886971932724135481062317588610000388360710965173145087676870909254067065415996973545878880405088388011981744544184573482327544553748340781171000035332841335511601185530067328903901892575456777600126082547118653816608586802330255615534655078106905045289119307486664562451703747181004489022125747082704654844522641658503233233018809713172903568021966018896033458150946456492245279382701681233129102827727206639896666532852698298435060236210632016206820950230026519892396762254173789649161969297035152459103215835140154591073784399304694794902472825740941842760781642842274545315398718242142702952741666815023508801978433592841811642143052931962416912687390347737940899529826689402273541469903321574290401108266481132355088443345098293223369337532357738122087855080988678570013460926914815164071995635603745042725004356878466602880536002166429246393732358561828302798778967815666443983604551655855684187575403309550450879413609184429766025548341121905388523628139683822201938273221501512054191921180628457427722453974247925390693072791167425070882323069807242150481556744521886378852839635082686977281159903164089724901753442529668267001221017078948916166833762779412583399706847666506083721297979487018076419847062204754905623906441330416898053634447551899485223193532939102967877906178627050452249879449947081328944757181420985860777361586099288124246413546944855834181003676564068739703770828662363547860894379084080862079829079455732060409948306055935571888488363862057314664122523588892719083614332361592576348017571239343654650879336592912987687586205705138607214902136573001156843290338956144852012331017787933740318020975312318151668273700362393920657343962683347215713993637697598570848067013090146429563534052522333244187713328199874156894886755936752952550849133114396401157320707177628484356365072546810725147932780662385403083621824387382330663089145335701113901323949587310130963070660425036421501410533162144040176433591255074410190976993298255960776429668631715035257360512481164423260835613849352845055646575883418497053691225574248663623512303794594323832268873360395968406774047346812009735250167392955744854682420437643663928861169642066145622209030029660556368141828800683110407781640754905001595370087574683978428630145972336790875844758781168290103492429506382247702291913236381491291974330715029605087532442224745549233211269674756587015462370348888761055618636824513366392480226891834532815870606035960960480608703798497362106213010563422554201007761835792276862054399997803098724003385807716633186649891255361715166986868541482230444340052214380643007933710373459476426894570212235573215547464259226413854703166396500764282988929241418678905753887714682524306861873779473728320452345349368369667001360797570682711563863230019108669046143602454342166928287886379623201684526334831242436312726934193372271473496593713480716505069136794386886581756827390294458636334554161449109868769103237138376238984210034142004590851810513519507010186766232539370004746438722835752498364925344298041593537338113485885538802677246735382610793202125256169099212922894077693224764728993138265431521096088931166180110244306837891359327845684434295271650435250583801353858287241106359446143219098704343107172127187315008804126729108723327530315067630831532732196066441532128888215553030068238668687274988679273329155695698604086686421437660273327714992298987877307123663335004783183428796464776677441386491204086453070551812317369003910679016251181903939001093879058462806678493634983343548496043881444677945981662483977970508782427917451253647165863872249176599171883439822275474012044167847838038738179167967094087228066935741369465117980136883663064741604702728664448710071670208611459187453585607915088581798859234922019595673025308502111405455704067448344559094661891186173329929125160469156306766542935135684762861187781187417136736391553699375627550980088013260884388772280204638533038417026765077219806492504654492071891945449131731941192791539977634483202230176017937729507946825208957734601299972081839075583883746185892685045134093985335525905388907968869070208564348745702625535572575963322360996790531743546120089810818180580056700986566280717137952506615992535653536958713185619939530934596425123711444660049228851797645580056145075364816923715759354067745238744768670663684294201070722865577769426858374901193441361965976248459442580817288381262722946335179609849935906754809074670712080956678632319605145526912081050740155845115377244022073298236697948916865745019986242365697476907041962560611685363590164242685014475327991484870719479041105797065511769294659872092954921130249333102710826132791409139067070876379075547663126932903427597022686489296315528523010006415472222347830201636311421194475331503226607539626798118628807838977179119388938246279989503909318607687918832008892617907991868029964156818210957123128911859531129562090772622479608627526789977527798171891729127808538187432957211509971520520902477112126862941811932465015000950081300082876142313678228618337615252798377615675880082185321462675590862547751204123822561202816384543743924517450049083358355636806309369901679116342596693939972190894409571868531669173897491634725019086841290862618351103637062085034521691639542371396009420402847422822767718083572131204168456886551622439681559271879580869411590352718573436430193917174386788547631033971648840019053319530390529848003435402926781947522306331194159932159415416902295786718873618992460580114864842889779528940124815452617189394927533226446324274299338993604835875873267485201101010774515801991562486295599749994458729118318359806497788846633354494199141227242736389087593718087053726779357615381271552063575928099946360606489124892385870570443721065307931784891381722481399204733968021739518985168581452462141814931422330076926166089705160754123510324947040319796626718551494855216401098527885701630029653545969022741548636207409782211053129637568220479221342433105236889951774553062103793470818001142181650083841160938687981199707156124354083625514553952582094433960224127416385880010337007781662513381367874981144867039635822374174590598582597976795174601848743590156323489087611364664621422428495154128709136058705658339841602469812797753181400366745559778036640157758952108632520401365811315533275748391019662458170242586157930404846082776594164937156412719713174388563242345877601972993815370625868704487774985017998295696096870119052349673123411362894173857845721199919652096405201534037360629780976046355079338388907246062613337304738919025914388757005753351846333368291683807599110488849675729675692560144684628219730452706943576060955175583619567788555685831771401301456723721138749496459923427458761054940918063011632770425191641199519038665846353565123706422241060914086047883276650423517384493412358632025979912986816069945298290102881550902184532336995813575817895317322943404254069267983215849090769644896841858461363185683819907214378869021513416050265646670045310419017203106030601395658388554124424131710759334289120251357561363250879044402494222479458384128094868377968355763716011222003705959188371093412784221816018084013973597986442481920217595256126725552264635305854789683661977229279635080687814679289151520026297842118500188467987179640652136174539536443905141484358264570821686609417587390818678733283775825483070136032968387261231657180118946448909152328529095758943117041977782524517676989116863729088208933117182679391691436551663784607503634042331409826156033119190235316200731345406358691261334464929340590470606179563211635663457991283669526669247296286958202049739955930231032294228509958228941096587058953013804170509660268404119336922864349483498206118188850784008700428239832264040742485269684457378543691513303911515369091906122144394361890275254062634156586446362122482661886538997233281753842127730973594333743666243221437141560775664106299406586186344851865518179703123468472643946825022032545196057072985428988088713318266168618439836332122119839146510904106413041394391323345490082457493898666824790640339655418791618417499651573502552166218750258268616936798809836302490562459434095633201279566290983731582952643460083252109571808341881180208167468871646897091903328181750251217031233136374976429487886671944799254339335816436831900139284406875574660903499195914346655487082057911799831706633094893907919600003976471243555521012480828348170679494318314947283063212300938336287051497411966488273291909072260371841218287572647560277858622451749676866918372510680245211723465712383780953511557335166105095570683298755486547208904064585149478167631078130831230839784765359383222933410387146708523480736400903544884867624184722022362525742073310652633130686258155424285811959389608692763152319383279905467976711915718551795616958582708936376677324698805091313870798079709098479160362939112209391369349271622951585845273919304673595464737504644478004737511239962505376006505423329502231849105571612723516361405409322619508244399534764638495751034942794610289160993622910946793514465360696114746321480061129918055003997890429924245630145360906544189220167046472783142110305554738241558888257657350883870857493415377217874612689561303203617858354838440954628116779553102757221141956874526094938950619138557797245887048015969929309167210271364163863438950638118721846209064011484641751664842141525559169671858281696569238724751198336129144027823693005413678140772946741625865300932974371399775004466067872393143964631130476935326249858993795014225339984225989717880581208055825817433220641948610386431998935598270470749093297882583261729319135280401460488987261436701566466169825292819604877245210929325592445451522081618089969743549460683215191984844348822226978956821295656252947024745761497560072826636245670751885439703299754162410788279158256671782775724244482165349991645848797260857543993816027712026599739969369610808286976256179319817430373347813775128882957004595824503206375341000534985150835934466797844857361057413515270093299784467062464070681597854407098941109988160131780442129769831131039718913077820546593309985460710654744033924292942865097630401356599938292768290904206081717945073289709996919688613548999084691169893580667687404888154730979649701205524748291599761723325079501129991206728273059941549539434565657263790944472184557941792799697786796166892046485688545716762093817964482753914446415919649705353079137010618569038005889520164534438139263513160447857719009708877909555571848217203511954618707290940989700506754822863048492442106051696282307019562875234368139177123599381432131653741541148420782546285029297321683086539275584534962449030856606033002467900100099833691100284516094822455105057303183205965093502273451725715211658295959300021271922479911361396772068671326591201894065824599354563443076392527619616275619421663697391784179238196991396282029616225811762525824348730334869446418248089759676449701498855662577855644890262151956169241425347035810989347687429980395104989481519445000309043549027732168798122157743094103425318203576006716565627323582764611331339432412624278469146269198228216554598439617275537811329910276074385858166434622348504378898742751914756965778618437352734827314792269089336374458396447103506701023453356219410033460868778742719975916742889822101526349188038506064970171273886149526543321292893421935956669315712562473821414252929801862990643969420630957707531009133883406167551193509336221719165082293084544300739215550302707818835761196418107907397435167944260729361309417047323303570868029659027160291170516089258084523245797041003045268130875432133404324876682295161120817945590740124570630105839954225321163668517269717454239808259273235717402929860456321537549515938724805501236359128127998840860030334401662176594566140498372841258238707131979354380094371816095896777397396630051693034243683952727775589157004641268119394793345171493612360152566327168596136602595098562544944463446029706066779284807169418918180151896922281916549374733017831265755121824187423517276302916075798918126016651121621022337692476886061874243436930594804750716200150681259348010180495162806020739476040993443361139641856137766978615293971764309985092190383765882168921007562395045593695198421748226331963487399591631713353343696777241084501595491397053250640512446951310069029098825862900669505448241401264433819719483616812078575229343459506300529928536077812530966410297657896236508387071390681801704122898465471210490708521337666968137870367919363365688475379973205660896497537207006929263838674224269954359127500596373272552479005500533372025115302658436590872144953958479812194173593335782493000225523208916105055541808654151200112089026745623134317869569169640814494955364207052674130158679660314379530981713058015071097200150859432935425893217907389153162930278921598818348474879770732497311307767766897990125406120756726536674051140506622611632706594754836431955451326013464430664779005329461969614513454994456308026873540679262883327669808920095042379626542748649241258184221480608431816949279236501020939863225219528130677747917553559255477614632943638865377886868254039164099956672095974855822695040233785178389006612430313910343830295165484986789625624187458221259706712954960656596334725449767536325873818423364628482918146378488285128115580308749343671120399783106121696850453391084514679393419344348847454247216566261254119329718368989678084784876567572650582796518523701443601711439188822626521358546696039271486631107761454161424544584138564555274733420683583030065414950620828474875944832881657175196191391480202170846157302848983941345438563824050257657746237397604755481561891792284279357226205647905512158284209618465827483987623086234219958118061778318913727726046134609096713377706033199719837567454418584634811964104200318560538049962705517264312324873438973159752779698408609293326407788410658072248037547278255964407701451555225455761642986331799440554861779807684472512683581254716372639034290059820660921683591403921171676934893041372633822306339529705375992504859165971949302198404298690772737903478204005111549682997697980722604666797662458483394341684668612408825619735268749383342569924139691531966032702223637059682225889148376574493605381502779732703902570094668077711026161516821142692136454753554535746955138798483669239556075799904802602607403214742499544404498672698791173348359198992011587209163400480309197986646180166528985635525101126835936363620969882342685036684994150077676675130030526121289746949848239362889535576972021119263414376901482279252880328843990855338476266019641962262233402472059659330254548592825424624529665767691787196510901630551929505180386819233948202098171835149428962483846462953776287929873448760686556500888802631579267360623070977558035301362236382410818521953835896439107556513811661824229548886709783687327865963285302907213612065698448009644362715085252305055113621612863294970531124272648802593430097423492317472623080818405094654755001489090418799546373088045465757124168870196242685897305819569168044996988883301112792673450165550554410492624996309377081749868731200600996136314737588060799787782599842893474570371380852888481930219909334409761018122956908268785854014796297348580041484826029959075961373638133465317801395590472182770004195525984644731854925063730838694861497387336072974703665085995169258428286144015567231584063293472650207995936289954073539157147175247257916679848688441363440730452692226421633052163466747733666162844358775340643140413314939517753282141849450664886427990797640881085197135345224893421719865087486222504405519279942486883320452005035041524588275853167232713441720799180989186588605353613681444128028897828079784866976115207716765706239506485462083143928016930929015893911789189473308384314062814270488209054077555285906654078164546369681983284584033990568903665373372293015893761823115582049660024676055074698319368613551573732054954156921153857712564224664481941614868721827753192676044296391762275899655124882422580148362990729033787720485315885054022786657019167076749916361888661435941217087232116360064606103381336076982915814815920066250780258901538310448019962608086957276879366235276838564800963638750210940340909015275111651149546263654016367660952811309332252933306313850389577264039510773431416874046339257912162921674281887126540032021096957537100566382666930412478707344768920480905081971030117352358843650494367585922674611645102032788685822492117952021970691315676624763847225112837567938874483436797535798035220179139013765288841979989362898373224706867970817916554131381778440790730773494275078644151106238571563516274287909631794833998353498545463016263122891875720053145323887387744675828161945551917937932011742276028034387945630009807153283028631843888613281523741746430223627521396427949748448386201269956435043670145818728520221217248025977060107672667032434185466603761483706674746681511245654872054300536203433806947661387115718955358961182646229786103891163616141740026629661636849679792482187753995727416282119248645561198569369429291493479543641939212490946691228345858975756953808798791980509342664858057400521856376921137582886657400358635090277343355545710250133367882889612658694144330525594523519016074173407501716508982367615416177229158679330587234637493025468595005531670110712945803211431941581122566263306500179679815525683039135234086528322160501133852962631730045925933770622719345484220704220323313909004684780978649337703080173690151063775594824663053802710550901369263129141926894723781132135600022668166653164392328362708592463861822847361439326527527456899053726540377026052739785766395567410274853753534535637120185822451767224805604465435988475931380121348876254437095435201864678141693885548906008995242549294307885649421215227444365996188811693777045378331345274919022394307925241753231977336952231398433589513186890959282799101382762937687797221038488021304362552697591691002079628773237685785707231372467003683592049209768670306116421509154863073146882930474473568216577863609488949886517327146376978617589843933588359431841997057383986910871803689922641167864562198873116628881102736130778447536121386402024977290554804243491359245724239557621707105254639828510884215800785442569975705388615997507480693544671378702297317485534458926248894465995865722163242520391533027578303505551397295559483924694564638440338814082298471326241270350854626221850921610684134835295793334346475597770623361246577174184503387867135488639750918887637842259346756855978938826295877789235339382471838703848193438597835429007504568000514447972480962640938584064785616967829159323630061508599333048501347383520321523012000868633099330722806638873441300724055436477422673915949169613948213700654461232006919522703802242820792018410967334395044044937478256899122736269437768023986929419648986418146152438806712377627187155501466158806354059884546025676498752081312928538954207938424058418392799789918481943908315848580338597386417100132603863881706991136716036799448110811700689511811218580147207069898736441180181235396680263225946993986380246667054314026186861215445906578445900508681007124052767736934968786137814478792177694578303131492555824586715519291782738775146280331905459851127333829867372183017105329500132745782861125274553753991222849923618130910779785914746154685346986070998153619150467938232954245350250334515581574499905068985745674898373353695846563759144016799468166510031303043424728284092505609117526801749704604314043442541224753441737702964059507512983716265923980958249930736623582720741384847424611387239519781940587473697167584575398356989385554138051599237079793998667194648992707143258555919296874154107059857035433769095852409339281154612225381620477311266356349808116728591077374346428193405885324119403577653124676762115816363927492123863812847706403411077317394161320576622813444765192901182800422019174009679229163701033797129811916068224836444366853992113446726681512552173878579561111904755612217171564619002187165075228013076942172605526747942658904783478661141634924362963790490302117580914022835093061171984290850472987358614306097501062581524228241282225018002513264057537723390425727175380668334492150342855528467153968224728633087526807857433316128134014405384292497942513356343717631211790461482422292695901828544052725031201514016009309733659739765699817240295489323340433506701560600161184429212316332738036301552652085350768135806508491655802951734789520015870824086476327160691925983164909985229154685461276620223922141930538771682682752782496687209747082399477632635239330410353038997960603464114086900586693798422014880280623473548961922209407407956450404725412550231686362550300905354227063216110740150723919255045174507086078690201920826511476110835751295008640417848415706760648558462496375257175488690210291129327540995659373533216485024140016611447611217956962458950427418810113873730423403187388756817132048788106753721370602390567822613765730491833553124069078922774125727837173681907372987175223548765846568356590249950788853461946787603807584725654848935653611432495781135789818192548583574928612322210846364293387413913696591622835126530158490442799628484299640581015591823728456177912001639502200263533378093343408539753185095787357824411157429184478747113224874425034082601535878043024425442460405009924560474803684713611240133073812397236301235415753248576182694725251479789035529986278995142500423935096048636477839012639869689956274161687178793723556516018335010629072286354604500851782918220890048785622656503545792129559246122644110853182105974333406295787946339631826544843021810474641271177665546587080589525325973323606089540323451168761862385436506640715039641654956185790800057324370901662740120032955731270633559056920744895390410596675622464898484438012794443248136598856467677515807445507669898575270859097447058510050463911227114369541724951345118099097004273307500402602979377329103340083834818816510467036114328823519511809860758223567262035168806113845738692651297500412143585475161471241536732747234870412316757045093894691273360935205508339392630439205802474403396017660200852788971344363797929123672944585714146465834928773306726924804431033902888559239343275551088404655344380658734492845715908047618206125382401465408615567804010210116880330496273296038199223598607094734396405608035784099421336515935457851946077765238826250390826396335895585137745041364552004199134734219107180043404779422803785888811088578420253164259761834411401538948860574738991275965488845648477738329648742791564838686993532181071301270370354093959069041103831698243737519834387415700027592899785930877877364439889205727570956837781221645453389005543093354123860618176653941089107885434858154325376597669131087168832592011165967663399915205147415900082644619522229190672525158468767752685917272282148911910307379975039736424351533726763786165734422779906137212904741276664092586241843646262722321365255418322628805424620087448901165994023068905821738476705503009460469994671844920249566875652490268035246197765434243633157886313657193664678736892898414975264918921200296061571508593311287015483557406633927804328828293451246920545815897347453011120139564575590599165046366450115088759320893288492886518829509118987819923302048343705755955728117979136766821992531241784436914127979398549482015166849814880419905650495433424914314574906100860880703371452989406602426883098501990770705174070923936025315076345853651505609814903590099471255535718449868023122137524221476844313470861564808922641171154290275804202410005075512402632179186057102556915674869150186967150953218934274075480566781255626320498788976325684873392339277087821901801691212152080861800031740096736867339291388701753895183870376737018613674867623750394461762220502739049685354233582291655345765995020035706349456188517164838933827344854902869943343366387395833745172889805483726162680700679295336423963426460315900524349366748221090305353003199829449174630500824777550530599878197755239367796513239515758119739028770239666786824849401638834880379241096599077768369258150606663601435149386588062853695192975381674817675118213831187955619554978720004683270345798169851865716135426851473223127133790375399168370008671506150376944578405838825080332376267033480837212707640504302495435679707225049400775170436834749948260636930363380817793011412883380054433122013972002321611742187679136411697958550246353179220305092178822743490083915865286493090860610487429859933307848297148474457003065301229467842179045658998829243249780537549039208374553257534132788875752880146998960189892966852959397053966402347795119012021274036216931809459503598062542762355385522148222212879534228106568572344447628454504658650771224440684206577401858100774866848453844823633047754445023939600608853883443748067606570518843900016825048472769436289494720779605407166596598276588004101907430365244663198477757164093895085595775326832088351432387769416237686194954179354011399054982258894990567169623941999231777689184385273391955515405639113759388983737683425913954291111053851565743881821890956513511267780864756874377051588444797607237749584525962597225008349368666456206589625010192788818247846982098997626417076010020846848517064022806328911795019672673642997987189240370700731576576030555811411268715365515656587502471596266545764488564095423395180354816232046714894767786149280848269230236213389330293690473168834320435166494748619375102901239313939389640669989899624472321591429283840969048629273691361322415361054909148207267270332260326575767066763755990713414398048313040261574368578550305351962010147903509713693971313380488267549520596417360409850122176132778184593137804935403690851618244029377808892298823737226615853075204944091514103558733395849464029794761640360865928623318863122164081521101183240477624135122387695169835322816445807913710142763695199712820585407407720166215887328700543606473355878928409625354733401939079694318048117516112192989031536801820609351774518497407397304343223838950988605263849017466886319887452722004458496114069563682570802410483363462142247024086179466543677390808209917252755787646909946269899038199885764774254025894810466940149065758987520271741723921229240903123772035358457270401200430305885971745061200640193427613680415697414598064584574450354941529924174570500481297812290530020941213158558658008812335521599662591808434990007128640235625645332208187571765817934118477086333811255870531290859285005220525807673539883251744036889840702752112043239707879892233170095620804435916465538115420915862570294500110518774679459842079166614528854565154386259625848246199796651485788279389148629380916885202227441715477906184040039494804321921373986992171515396300649444159995285289984239364174455152284028436760369022710815411887564735219349530436289471632366322943305802327728346956829258190590844388052594848575482455102149580364402052348896103636205929082864581657798669725501536001359355435301248992535031447163602402100555660318734759842053333352536455837624642971685345549946307061021261491174742534045863434958992592019661629720037406254843269688591543236319030744399262438032506799745831297404687176601466615489043657399245872522543203218771819065305668514456349049967995895115497387749380266046544464900929012354052445166354872263789194701572888214213742520842273003131186007533215036573246830527698560942559655567208079324033666231578737030667835158055433247402344664593097556067039623289674805459823704700281185297680047506246531226400722437157030758376678536957648929588727358938757594721454448975096686699045005761670275232230238641130618157933674560800099309113474168173356049134007170675628899181999226894494101750196013200196109585105637740922287648591090613944681788619670064972841511239523280286627099455362887189802529954845382488268347579505355007997821605389729351481633819641310850687868601391961618473710164216212245683745691463361913521117395870950077202230307607234398012463185634699448503666406650350054604393245186128640784042417565881114886684152974265678255676967814779359541344880783012422578863368889210274110625710921253347939418833241661223462428873813679703299076766700398624633987329175513124441246679314353706961446614178745768207294389364685255561758209149459130232563517751419755129294084992676521179284717142458187292572311118421043538113338696050958487857645155042329605666639443748020072399309526469376327656713048492542453587292892223010190494669387018431297879591610963705028268852891638191531450958309074168175886670641571268264693651755102850983831288338489586922328464962941883545157923665165732790093613888000464642653359716489910545181635627901795800094548721418480004733814909750344397570266226957765314287326079240775141802404361312482625094792023093568224685833613041482822864965470493752522892487063791840627243099523862849875247518882161224093687250327522636619935908143092607586573430841285365287416270697893372059001741938757431802520586672916553043770635106536742607751448071358684103237358613722792590390157134977528623219445155519005385644233559289552134412209404005177927783194951725206880264074950003960758802393934092463100124735863731818724088278285839184929935961622165281009405726639102291815341115905180842821494586359067305834399876291867761034366330340227046122478590233243401140629311377244459977354978813100977173700494122743299232708604378071144404450531118631562690449583363241595248440796616664209326680532330885249732927378581140823283265122751158750571844725310252767385457784381581907534789939916591050739421836738831636050568692924579231785462411456491133253798822118643735392231361419228261974463762151232788729189647830956168974398172111640603264065470086358973038084711033126673275209148616074211420952055285608546533710819002692216318743607257612116811270030944727485192042098980843610640425832709699492979903579235800187166299142941797935810971097418058288208932949956550155192577518946527824820274278815319948179943031313017497400995301712023929321846950525669438138046090103824651751932709971323998721152078979184021610353933945766788337900238952867515049548439291855278781638943917904539954401972087950554338137723403912700645199473730276171734329098349076010011691325188103067590859412644572608382617722959834533774011454506992813012488879939150955240613787748105278329532606828695605588109619081270920776933148080254530047026594073798883468096722024518700862858870143845817376178986020623760147416022523815757163137896884754710976376270100677145779360874136668354209928173894405406315809160873883536787538236065178924529184496393046316244756448681594198350654482618090421285985709787696546211560206617979618443355117718152683324737702632294246890079890916634046139581674367165081404029408799642279168498295056161637572741130840495917869203547875466465424642643853986013098101619592682579383605522042060039754551362461316187306166326151261641465377573739130567267902341293147009067395735188497071988337250269732405690222943704472928458238559284741781039119912923970020874974397414564996266797256099952400849384168967997093733628020018312087331798502337774744368289052300019268455244280052164778212550631440459878880969391351046602524107520472933282484989053604672659732201540458894939788463366736350618681994172076690111620110867357213366246189403837820505690652864951621073870584581442748979847454769488048259161977747618261054850400346093795622465183001437406636535512347285564732809702910890628990469652958198105134389147299064831404945352781025615654497383657936485778976077185252965831303201576681320948496990569099560750126086461976240460730575499204236165863955151029325693464796933912048307982958584209945333629216737384051368779004998976153530978893310780465617138095865922885380068441178880241391902843120587091557513517408456836639157219077157511019776361511445752982596479210057823580518653025888295541758518121981156053401246097331525252601007574066201824672821263711596359483643114317473625801479943313913719628272354667951953448165168020589536189638584644717056693494473465480422642879970073781402303261021730607544567663633826809285112047342549652218610677330844228257324129986093588301794220000871680807789072961974987174501119099944401917487291425041958933309956255279552761032509088635508566418418081872993912335236096295242172355020350069102728048587255264133250739809064870158137362147160147472866703957124641394379458422380404573873672089031261233218396999412114989734662220746935192551119278888019617617196424744456971707331101702369552988995697713657183096529010410607506277882068312869521860107106843685820302999779107407606420721528529319072926276584199205898812492680266730826618495751791565473454632094133993737596540969704228264024095274821568691625954322847841365961924266420270531988713937273443693776629249672765936737594977565974126854153064333223982465432131886570719888868152893275740060913449618006888382894254577907898216060792065032839086192499257074128090979679020149556338725211884668901723624294896586741910580640649513008830461625061405067375001499145486275447097913451178439281492523830871401935538989664600590707966519138765198007067173614070815719728225589940986877934377393687877772629569602983279463685872326595755011692714654665985551793463391620433986081952708000086436047645757502345612635710465029293474395656342112603276779813641743414493121795774398719007842452224359610911973644517526799982029232598126943730872870751462039798218637745109450687425194429649542674375495913249730007301809505969208756826359975413490300093674573109520593821044741038231327431049411716466327338084221913721629815364120349497025679675219497256334977313027582632272596141198521852653307559665961122080782632341516851295329285987566905241144233205778091546556002450537068171077869237915981287065219581340463751157785506753629598438857063688183446999389323716811412425662813840283892219273129779589272625097312711866067520205101714205428892092470006289667630982387508874934187777064610190610633981139181770021581100099140147832227896520882203422163423192278029399816977486966521310806504311792690771166484938557739767583798010220942582006219355502198813337539397686069500266743172857393446557320660846146646223635137997167645148440583033709670846115177269802205554843081179075232975369994881895328526323403729613404366171040856999170520229699842417866409182066818961606095342055371780497819011687421115692815948013812754210047669292689482045280331042968379194356183371365473632532312195610621654013265768857609797228705602216717305670253178698379750051735490077519669141938480876091465071452171107762271273783012385921168798674302478341277650395580249611445716666177411417121243859838128685383043164000537257558789893207698248907619533669986771459757661259023576524145033786076759064950940502516953225915379787114610635603202530956518773439846392922113058764207377332510040005849554330165428204178743036967498803074539720834611682770310570021708763520489216065585422106295076388929493086082107888877932004712963359107772274731839498279392636441241612131955835268958358163193530400551499121541222598853691017857070934573840812565976630800613366463278588097934403643441243544818869351959774841902167006404837474297551875883325860282876743088921401892183526704266294211077933938183384443720088859879495795916894860754862421742247906673617364189462069928449581516612976552046952787174164662113923388923862818102263602827079199521349783071992435826583551363555489945748425039860510976918426100015898062466068499962505935208020466326734797848485844244909524230595919392719737559275095994047067551838762694041192315415762348152567230743980596898912271995693863373371753040090322782821695434580001077384379247512578073854510115741137701344740918824354040910079244823634006790694945155961738692012305718854824005961042708229286125724507906959711235977117002855867163005233853983001002457988920971277366103756266357348203074781272425562695409467742023569298515586681713163897520739406334447035401785279578716372857368960969815183397365481695129604182640120385583723823099920269965070680003427673704179906558801180570257621612119715076216354567782089842476799870522504328328550046430956115806116763221148286964728648784548000525215233380177938376431788945643966686745806832060099789350954413361605950671130000170965579201179747308803659364777863862338969595681930162525361156096661993261196141944791594119121041230787400818728196443669066361065324050324203627016119998331320535762090929493703354469715690720421838803952775349012048611049123988386923450523288247511753030604961411016710010002889643513076044636163420215891566774341709238771738461392672589000900268367479834733718476925655861971991780776297759936706764939293396156477349158762307807652173437781851314906103286700167923161425457910147841907145767899380244328275977626030052550219138147135686980356006994693672176747921589765271220491359311877280415300286367387991570970152688572978585754879242106088074420971030352242679976358870865541568896226615545733322017163328673646512550678190857202918656079538016725246495958159517856717144540536554194311334946740594354305821332176314589066077318524609750428357966893841748134984352364160259507515163202768680045637860087682763798294845371590488522124383343131608945301928396582571738707508737609803007083269724154394747463247898455327424094581763428194645965091279348762140067401707904042188585390028691188775328088007676323922340695689558414581351319783859033473903304286756194694218735456007202163050263776282531448510131723719633401703799831830041773547454946109628611513226006351891271830677114028033102294494302367491111456919117004779763258075179676933323455620889805310905703205317469196233491333745449378722281789430250282718285500093681678405362298243543573973594861276153581207120016855424061344094968181016026475585210694756643317378808478898730351817768680442848842147544816889558603877107187314258294625527679824427805777680803830127392287496891780095303760031574085901360879446987105844121565692009427917972724616990777117529761954370878935148790503941946565719981674622713674142218973807627918662442016816677951909433796301250296407455822038920850377734542618231415563997545325828771958753065293945735452608685140342742092556069855901286935177412126269833981173515644598005963784095335907989956052585568562857786518598832631210931528796390081807718210596156887563423881715101955194321821648899394419652431542265542733843814205620400042866812392366223131015072254585453176032250497444204841959458206393522200724623549623357103916645615256825181474358954639597310680000288225153428490483645083889556820238455779172290503152658555026657771326872961671522102742537199467704554521832612168172848478193044451667342459917006457590132601874852450055232426049455998032380781311728084910575179797840063761738887266289281412606808945576171927757246660184180213341921841230868988101812376725442274311109305314746281350813408681939163510705682062664301540197071876313201683672215189538953706658771699714210558648388949316878454533933421869009815143773079019064041914434862707759215177681918153992566699164911912566727606583943561379366717693753106777537660517155630554269244210448454528167725682498530606661546112958727717743047678744068016239272150623907158784252036362292351653509458786760220522090845616162089641664497674701952202646441386401603219517925954535106117830473364018415205063697053239500699289997421840068391931908662859692202586313403037702981778928636883913203784969627036598686057517748013838573853791646554321968305970230935634152612073878272032079240537745516562119063636523316509488529846470448505399159872571017392182513982006410585945441498226933548267252704981836862673696183648079319212590570048965577091879519004019677480474531974282019526498624422849889758803509151867502767088662248904542601593743413953376260663040006503622840007892664433994885378598297077365947920094391412071119511454365919868943259383614143522512271167032015325893027699973663480848365871586158913543137966074103222575249138189296351911109698293906562074345794551980393529643928554358088710273355830319660486649854264393019356903879772364355375701531343159020687832564516183101199945378814882667260899660132416064734627504605204046912528805828393401745766546977879456937000533545160758147673092435888638299723726545142009370597279863477884241903884368145548071074518343591571273740154405881658085727320629631691491942070447863990770234188575528166835203967932733797321191994037411883623255261370748587727082423579230274963537023497440818919040931458193314492678222179748524190787887346101999947981185792044639823621870231219060566953619094619010879674576010540288418557192651083861167928910021616781954620983267407008247812920267675467919603488697938115369007555126361707228719441619186668305352909475980383355370626028455309962662738359946882482025303219123892053919045803633895526191913145172333996062857566799535315562610353025088441078438181339853763084375376712276227215351912466259135108404921250407963785494131850998849552466415596234767040981360892629324225768855564158485517365430691516484393968460455640529515734073657252886308785894133129369804335139525048728169577969582115512515728797944963416947990660850956018467487508101488262652800005825567162422513441661940305430459669991012852653146924158279864864903041632867576529188298379853495630293709604981091962150255015234738347514950589469284618177427642434675126170309795612156926678839525637149817938430589086933588788128621419099973412945832676802737979799908823077070923832752233455037284277181075282334564494673895627190210790459929300487433318782379514842752704308242966233038641125023568025839387599014464016886835083853083012307849008927369452896616414108978298633882802039556851316280601198635832820409017066870801031703956639527312504199409308063369391662657756031344611464213970784508771616705290205155487275384447784879246042619125285045650491017266239618118921256563689023523295794234669913351895828039442320011826553450565712174716618416014164903613408276981521235132787772669679767227887111271664296412632334076222843174963292370281401437854847620716652690152346019978480222031553818025532155427357453152890727003737505635758930773271682606430714856296243232101579725183442063498676311737670526903410024078769816714964604010754775625699227960720035643323614806046871232818752175557351161278485590478221915391702611327893220792017534347664410801029819003050229417029619490902362207750131158700540345873458987174596278862848376638184629862764886976246375293963594136656977617641466225301221095162600889178200214217879524053509124091339938139650216128391598689403121802313408794184392038431400181826288573198782694821214376622414072430375281490186051224357503087244330574424270694148195257517145952232207522940881023468804533024538485538775953311782265935394032214325414437112450920575256174127987866343562864522158475229056222203215737690360999132566899633353451969722920650373557634483031872461670215113163038747831464309329618525847772088626881505988314258228673102771456545804806781540953036552041510114290503900298530692043035132616222345796784757744719695871168085091365797274818088776994114740080515007590531853345810981551519488676286413669417687553285960147956649531085383120290655003384393957225896553797222870096459945742770756216822354836347511571095103455806550479701332199110224557596082084090660137285725178309719653957349164575459597303597250867620235020657395589477486997862024224369308581535391363314544415975814746884685302505714739836122538273809494615040530037684682880638834457186326474409284796694066135179205090779027156412700826094757237704034276775138282571334482710511141480741801498962323311437641820608296736498794002710671234721062582738819133993990038408174644060334080197406329151404016396474476115721418937873064455872125993598135078396673310130859903811801730468548819766337395365847420139564244242881512803292508784395336692706588693030892466761827088523351376196951067838976177310516036008188346518361375138224479189684395249296552622544913222020647284046733434457810555075192718570697004285272157702860294731785752652197857063233683132238235285256642191031230752848922784435526223305576560703458461898819321769181586283157838719571743701537344616589914537473943375911821257389241316571981054390652990509044939264689305498690383494369002030281285009475449230120976770074818192444543505003314209327774887118266681583836953909978129412634680081547283545127774510593413815418964888451946916712580295520805610502091629830728423972545379925219664455548256343749365902084485551709643265877961052825716288590493632873487265073842145433564428168955446378832151038163554286121511476895307703669027661658852397951625572382467511388348842800373632240223542723495814702470616663093571997732667996512904544519944539005012913035413708079935722071191818040816959311162141877757773618766493968746168092540727750408149537602309780529085442793138573346297836054247087378748027363592118030558364324962575973628465866536108961527370577656453076611891554522789346979577496768394856407532113941339273149856151640351412271331152916844458132066769637758994318418513923099820744345596708464838192863323256268845013112385233386357379468536698766807474046737857725971786983244801999914734453287189613182225008000164875007423724935812370621253591298745221479552978602755536530715607438232440754762232103861388761181069497876756516031137753923271005665362245495534578434227483474550015021552363322374850915524920813733415647144695200639008674363594442007214451404355981895284872592075296239916274152002880362796267918140636911451149487863889789815886535240198823477800100370613939541265833370888022010453796847098944116500593191541668319409636405502071509330090529362186117028769799631127062820862021628858470310217114849253906560151370482525616769891664283506588657843838021520166689189770264674807092364463994115564082520830097168869373129960096471182324828574643911850027409948674754647297064087488965362937484584919665010579481034226959850814917075482045231272849942171002015151299085120612618381853790339244443968874096802194742630271881416664232112473281794172556662685556049213879717108950732478219135155401614818675892249915140962634223241390195353637757778652804718965372831045862007349538417650328035679769228274902517178557643943337241862100275276678154323041035457208560587551122481861144988274543822174199424093314656519558667279849955359855889797938818392730328408536632543266445143498052384197644409500399513375267414899484408510250977985361275681848009705651014210321123314693583521722070604266745205817911525138135023316655451921755524959236094477009565730192898076563069151455914746438805850626410994482560425542633102389592091074144863324733925957802216627652714534588541259390868597207320520523295811915052443138836555776330634256212990417295719199908692175239605677183868718523482994575099706993045532636327293225853325860284070928238267450213419643517337152776921230210578936013848139374537960650146385565474864005274546375217610112322033737316476058964526450490832504663641881340630085589622223064720788454746461416223771030636468990584730416887050025754830751289082903886547216259127009169867811871796001236369675026341847932369887890857402350057574378939552932717142975791471455262025159614896011756415159285041946490862432876366098805593016504706156896012168472216373141953922760355879344702615709749274122907440371817319204336865869931936159962822957100941762370954730812727477812828658991847242448322997164597683371017779314730734114341403415464584043025171183399654300841974876042464132075027334724973362997706187678598290671080591389740886321065352824629478557906797424654136456111399890519324739192750085696133751208873280625674423784529660606467243477601744195380624603379179168391648362804233478629383735557510323609191105931021577431568461650136824612366745931750868297162564415809894341363440632350754420044719958672537425379784200811632277962354936839078479207343746223542107809645467656818220790055955306873211157019192953488208037444563064318587693606238467288794096957794435612327613987860464642820735179804684162949449104716345424805828600623065585002935808184565926620148275224488967287606770557586981068604975721156804180763074819640152789105474990518302081383473050191486220743521738417518837565553457067716189005392434899910859618038572723479403257862439703380844405200458889495924933982437177958544101171015801812471646209728157905109088870365411776593079913176739156894557209785250505535219391120194597680194828685519192891717401616998911585329319078165761623779670978080114625285195861343228846896092803663970524086870889228565276833596251145869350874423894179815485613633216814942951332923333266436719959057997364428631744650234521822870313283124253806609431672448086740583800510307267599549057527424558678959173131243268084174994193787245361308687445982514764257491893013527487381910594762373020667989882580767253791196329646465379516706734591808315001770420249275861832160924596434469295664025488498908091253144690299470625061182682025688768692422505082408538613775146683573935857334831925623570279302597057956837783607326352964626201155020394347421746178035474212713653542841075509591261597796862166420972868746878862268054587752911857306396824667987955130638366077493235713813704950191860066892332162522669669821520516499112470384739227684898928427734275889482074910928460485987435636590297131030824144600575542666758802522982800815362412301806226115759986047630989569905733125290078361947385183029957216864032920203561968322505390742422258287952420211182672936150107741691164781703000305043730590273054409423609335160681786346701255244314316171123385511374452110341807051111234069485670091994727691596521077332431520832376721871163589375882577549766572185618400488258729085892408852397576681258804450330290512419407305877356621803842027645294788231124320323462690520957523058292246716824961758601742928972094953931649885948189896495721408284711570503005143536892602581080237989039264459273852713759315413585329453884904071399523479115476656867538919633498527509813123516110447876511580406845725447047320199440014395466231927932510785011959041994796809731621989025778206661725340688900959668558494944256110693901126207992108802816518905623090899041460477808152227359328451373967959236072174201396719201939878455326128306152945712496981517524780644681364852819932997744172288111766965749972223718293279397299817492161428642727069087844648030245146994735423181034041551341221803031912769814902064601326760360672069725462397506709526123639943317044403459209731203771593766027504188802621338634501491023635831098019575396875028853779153328032501435498890717698461294354054508283806141391406096728031712403787027983458319953046047827930343135023737742875153101454153038754738526993043292594480230361937867357899887239166347660944553610216105987047687743212198346022045768307384100341713657914107347194289484933034828759957572185355537614337391250419682981889652916954277554258873949616867582146265381351584817540126489913289234411499751019878712456020582476080594338659340590077619453877095714377874641814860457059671691885077148227301672168794380533849377491793621180645923350789086833208527889301322980531779980929076985808531449644579565561643651070529508710886573646890751392385565714902187630818401089955850163059098791296629983738198183269738757202283611753843210907919474224101931247166610822608938857697052334998240891668266108974601438171674692010794061882709799014094305060472005193480705719818128842471019474716964423623712510064776247937999980008278341254126515742842643369736457886399054654883271847776883224480688355441177818830224388290874525256721892515225103557594444588976286990695870228883575519774331793100064457973662571229120731812622345072921392064758685866200215264712752169865557785174029254639700062507881624665126801510938218490871025487696655218796194501349332437668943135473417103887369132692791319862690359205386578054198393708957477832934132842999066373630808359376681836203499469154892755173905328699774392657919102483169908427837756311332336049362512021223618080895627166925237276696662656283806238958025234868313603675410749772696905390199828730890529426712776006027294038356000973401245102611285243043063742180032107675433891383411814146912666414839628960950063895879686789001624046057656287736381851036835250477499704356004252112120646694909852585708372323239914732157243673504271111231562209708111620219612398969244754569211896689734033816743186784460205781551725866898542259512849810894633679471248226010364420746079991788575295020806708905293586962847467561333569837326032415181556636573088070713833315044115516100810637779493273277662757004210907709102211215377051690716484650442830869382001190046719590846907568852792874177501167545257886545889924462528242267134383371566905149880314323279953925039770924151017198581404502224852545496384361507372903039933989221432190453537377055910752912132594081117714883304505074626177579721300255932677602127938447621515569376837593714892149439818732777232068503822761537981844603276775820347192689526466830991521767777636968739250307495894820875300950986887737145070425060512263249377952486258649692953294590438694932573911689145018217035109384181580817869414889271323919661672759008661881710059663030214289477110881925625573619315132211415589219245666084984164097852621614338092605739615175848357438959089433925399113231236069410907882547211560287356847192195825835521605124854072601710510655295921968015851924012684567312600519123765383666188964921642809214713508570562256413896991287977527087788536202445781327711629152581375197933218561602190692597833322049493480571296293161992329711181036932012936661273426249492622826672309594863977754609009072178584656800889039483365129639148301270708976591568635868259403726475118346373364779566838580750366275158209512377672267262027765733193701510366396939857835147332142509362446201406124417313270532009926339741826519509734783107833464374723011583557309683992756058792753487948872387747499289357534625721750777559146299534855882050042902766463084848126284491539835658262492339652838849709884950441315662758946934012943742382235308778971524594571296082205490868468459946779593154918768055757095360355829162866399161205634591573710603889530195737300482368074817118822950832440915021966631325948521529142528231684482633892332485164359193375653909850625807505128999524901984154074198923379112429726233905004222465092318373136041082581748797049036085751200017526050388162208497980838381279635805853830553746603833022025571939056805403170663072690975553071395692053364728480080201456167669729561037937643295959378599947066946045341380408287217657077663846068658469508138324085099115387993791489511609363075833300195172163710050683518339308289938220721147259693408445811833964446597452800773899323456880769683460400814234554826491267412549845456677400519676566526909308001864728268843993435674452117902318644961135609442369571199288364727452453167839677671179438568922688749522878305559229431529054633214195246176546795356788290935710894008556287634904738611184833338418215070204902247718534225857658613972489017421592562633780343474843861871892977177443856844355683494835437335929911001855634045923317905415451983844571365131048137669919516519237689141082469982870674873620666656366668459234546882547272758424120558978422664770523782784708781378739266410530760978740518105625431838991063701160319069547464912772533551428273000804952183880835871370223694568173778449628416597200979974807288954029854109957482544556555063445593725844291028756900075603910163312364183760657177532278013324657014149326291249653000279633170630882879342725925660311333744737647288841665435076648247375641144393874378528534056600204643359398274561475201642352540805631966652364542818899733059171041877947381223374512762487533308072105859982635614753363099338885979551181655061233365003213446148558597649806633598575391526759130279293809953908333268393842481153980884146247880580456944230425412778161307776248453226431341008012962265215267862206753418447866667793495361811011789854265683194289336081417770778488569447871783074716493156560168037876461579287671510027795005988658866990341773523476621668655080663500185343135496729479000626934798378514271437717408114889417958708541334535432679183020394236389285846997470433922596579397095593825243606984576232610344484520368103315495921646778682647117316220587995440410778148284267366144432384394552016705684104807584683290315001408293286681722193254369390450674646324644103834237706129920228410063753119865111800792411259606279977616182695687699316499553169893988993232233938037432084258829481742241698605329432361414687261594935001458617788543997316201319235549033794580598114009858582893037119563536372923741332462319127354889848650947696958836046136215462175468415594889524985176986078385468432455493909741539159945574660619254941523609805607913284061640967273276260508058173059501258102903490481011948916210377159937782784379448936054599750895519587315018823327334702567803044512294085107627894820687462420224640201849311962609098958434169249420132668847501498473611077520472112226574488413579309770798342685205050626128712728476261608209471735348475114426598634848636391746753237333087981999258043531737915868324542266515308666460164381164053462462725448016728059233588284982417919384702817211822073889657171144945197908760135974224229737570963134643005221988035542594618639679687198879061674428482697775445977863431558791385326796637060871983891487569985028604267029794780029425198653626173860160973691385297689130396438679957847727035403251540802683685586490355871427754277696013460789735707730450010174752417989332816298296192308423432124518289749919463884435198522269515683501443123939604508020390034284922359173249170020062837473660504889724989868674537491812464541082164703730435951100628760955444691727335327758541013233962140595492382544896332707071650503635719130802618179182930324126386093276589032064434460198931722160243051910483994601629267590281870921357584216593710406845807947593459440883354549485507037644479294904160648370912584243972988365077841668333197608080442167665880357022892522060158296529850926717427379893135342858561478962384242098744717294277530318353673875523950974755865452584957163508903727340440383387716222469874526634419811196571581107641054474255507453475419729772025169382343506430037540474704096375223391432859202766114644259259216245952634038645684217916889060998883035748262392952117066168333994503995901023332387176891787722010530467812943274369720253927479995047541656062350093101398923128899106345814748906069402333306067816410586894874402261982346886903150624846048086630455524996407019001987708654235119176385275268789542675140260867849370942274420665212406985620398678960893128067481046585911312052795603374038659517574270843423595919309022406346118737931082242708875737366279311243322831940768634567099834256660686644486310452881319531630121037010313300166091181909584888615136321973879605091939287499323506298987612793957661293875357546682624869766518313156868086517705055836833674846313867010849353129059494297241141647583599210288813299662004778761738002008619112911950652172719499492792586229370447512565677158570337306215566949786947802359439920614981945194207088663287083842086377633282579200276798731772560956773488345553861483274895188627161282338027051113112498580180357953251700528960108027424158331404463690344991660733399940458763468151599167195841766708175895765500949304616939155486040089671127136265554743701084740161817801432117680089676599630188167154668136862064323141829158096662754946872774432032279138950656089716204804806631780996633321295875231926674022497620316093171299145077951237476562537544723739520219577469064058862404780160169024043950608291289252511691240382415922151299909032844171505670364687831091714333688570183618527989553043920676549816839272068776537918187350599658571118296452883774471854717990257997876303888746490840773531125074546821724773080012686135402123967590091216972922786732256342629696361562000915259581478180886406948776825476202245993749332174885402990126343948064707175409560383460889327628431413838366173064391616691120863414812781104164402275849857660754743280579377389878065532663176061563358412022551066692012514152103849766469082009656291903083947867271273541563320020790756862081328021736046506274801548840398385950749533418833274713585593617863698959868260702835845211395264444286849315240937664283269934807086464944132156290479126341675902820355036137260814234429951626812197256128354823913523115687584976033753905102695852267650423217731702433331860915288890158199419710256869308459931527584838139677665727009587083400314856975429177633220728433872234055567566270193940166598236077348248355680028683763086697989591667827605467856725093014328824816686119460412391358717218061332053643946387854262862292017694063116672156259748976999452629729636257915090450349719564377167034993643145463359221139181647173446185111407856844075157441000908710540081453627636472831333655665066323818884372555178849368670072865549798652346015154940223509497432887558915978027134088664155950769313260030606528148893549807420720689699508749548633963878820929387643426299707922755813805250453810542875040740039524345575412391053008295937226702808262491531699958137101330225228998457528742479414958387700068051731670583615331953162785731038709600015366186101058545788594952503097360653400137515928556370135472786444070271982548417961058338118889411427331021353605472415775465747436909231943595966042794183039176547652148342208166557227895184362886905160821928720078846831151202830389005928796676878022888669820878055333906077150346631268096910413106994065555401431502714823219582101088127938869689796365185773428886209022683731737827733219266217244382999285977118830930206449388620127497757156999184016392389320071400990661396743164940378210079297792259926285631467001204716392735972963243422858851237479345326543779744531622520276857624668869993592440058931455224282315433526665671199377538974739235010026620294139979304870656269461343563472409057596031555577178710572992783191798380050312334644431842410149485642110262636105986949102600880070227195452799028503299488936281232746840096142215835305971446595980094820970644104815737958813323456679569017817249233969376615725015319033753563817514391915274735408403777549567859083514141103466924582909378873357081453578183571436780144755011641254497165746069162942803716681694962809426700256032535581727092946048155167416504875789522703338820649259626162035044704177114709686958661292550275345987413880680204422992136204632858362611898075967958355306868857826450494656204068705530863104005332357745904304176393364836911835734881067216785267151538825467366171471002561254181467484604380525438660567310631730952946329028606237036458298282341258759337176319045848571433817798169819696076234735043197282446175045357076628983129540806486483960010613338348287105008396341692997479330596715428491131815109056201207256827827196453160080331331625816395232541195131795414183251186484879234016932524524314440758312920970013294249676548382403120150967597399374816045633025457870127869897012481204059795538959029989670700905815486346216620549545635723328389218130552720008734030106405529438324088889439122124153745554617985186589008259664659287052619231235278614401666789479637823108754150560829535609079981511796884023980235283353485025875476715073332000260759762138873658153726886911781633335180459597041766903502156510079955267199123442689572436735271052083825125253761818500313959632145095456106026858507365395215269701262299610403686283312430855934933843573035768544213934544044039210606053674458402308229183657676174547873623685091947595329154497285519080485576268696930383784465927553077697547803791520434294700118161612593834677881705124938076370127557354816505531724462084702959052732507002045425568939327629122911439594383465485561204839418967920818700865947709056094563101985372194128091464559924507353523750479036731423171029482701446029888727684265653826417250364540542222714795431208335821836000290406928105316051533807326255041926494760236918717352602039366877270945858303402822981073372208387911609359238029586080601496829856251805288085809494696572009465791435023007205765161421207480370588415837502306053388057238676353990709506304030471591239592941673260695449661594072690408214437026537488506453484766466555640290662024449395774639210795572733375305812748294026234973352940294416974604923159637937231507017755787363198972383212098600729475499369243331031424852927703158325527133181977658018696437543046832442736316276454090221914896092534360262396517297903442200197229667795050413985148199104972197524239205983764045020688151132842379790559362898457283496998094922330619226412501383880289308631585607992823377957915874815874540554508525583977577438163843018839798616432110592048214096762535307115996888877100378769627527800799990644741483694879338288099553019760139836408137612972512553577004574084330557304953179413004763835670220861924670474484728920727835510627473188995673934767677650017450839343966618985040574835093664115593962047483652023365446559692412513961892143362242618433109546176391769548495056075584261023556614545649872734361729079362139629585537080048378437333688659657113672774406379926996901115883264513837390347231758000410052317558011589463218429786925973142069692709842589824606423855857109225071361341958883276166606110176400252546611438821958481058198906152078766213565821081872928808562972891280382214466430248609591968965450013198520419868926168838259159947771487065599380791905441147609525810033887108669592703847234855558099766604825308904584293688183504381621992161477905333590056300164963866666948105895125372997698974224022511981756188013852621108548615156693408406643960342738129967935258973658349132764412914925441417406764352953177298168676300179069741113475985671852450444694470845578653707558138657081061848289538255735497024896038498548622904007024866675526765200588028753535090116424003707426202418391254255026971816159195873416449081235527926918420226012503876260200823324937162353362753637333386012608591235035064314844891754458249366732757157130984317851373298119037734357559007354183843135952186804815619199902926352263860299383199121564785247955020484734888484249106722972085028923165295822896758980360878139064114356303515558016410625788173724432959528901482044896770103225837390700985594513539248046505768874414010859185701221032781107360457389378151751600066045964551209641086753255561915211663580854589018037540924941740325803735875104303305270846801903380898855422755146232801351929770855778142988693499228275197884443939696401315481222533819023308264429302990374242293560338576974789908290731976136999153543840915995964559852875748733322906642946870113104870391994538768954528173223313195427273850260764536278067516417556075726747593324719315024118344349074842683142227915441771586819732530147772257038030429361526932271794610247379005162761293730387604423581395820124303508185707705895299075758898025169302334600201119700979832182270035293521167258866820452072292449922157336876528303514017072982996157493508438167987649238760040954709582808170432007775966646319424194833943643830070446086480076806908876252755826081975405596213356108991422331967372048567466178593967633423824961110333156846636292463632462827286903782577426939604187543981217576539969432698537999437406794837329742302437134013482407945934936769070744456348618625732010635305192893359134033630108088039963974151406038178815558516031821251454407437661839367569044220990630826147084679561048511953730530040204017540643213590618475939653359052390784035069484402268587777162618801526425227068684931195828003847603973091706210741238730336105532348113606019663485143076307348102832567053826482062528896689272918893493764047528579833737222800359766217263413849073680923124042130340981004562609541434720437132705022319457493646128390204632070608488775368034850054544370977159844955531510801287999665510247334776144094107821227018735072306473065658254817331056076325975271869119601944149173814466693004803077891639641918601914318855568214514539236007965985528436281981184774896745342903731888938295229275202239696305671880985315850895383300467312271389117572979970710753095129377485840678258006048887659221297874404313188663578925758802093936739301111393817496227730187501925309600069269440212355021207960197511901680164253789475191076243720099121044362013120747729021472166773894468873664154068565278879337778792527359951205382779916708362170764531962334126221855075074417230207519260353192661427849739146365328074561057045158850110960152390747420978521198838854230816172725415023078784962939718675474249714297247538471171316549468608494947707906968570881821585159376794918680570611362082769588420079354905939906597656700933326968161486132079052476538475630342090748186192405411823242784399147522010569599501179475685587873447441442891100260058491255202675157047453344426002533072622002639320943157666502591271648411503608900803417130747447325354211248179732756797956644963394065774852985314978154983055015683823871357017817544342700648170316672771592464505080814019333888705422010331022397381126478912878743365156685219969089120353379725270466028278648262555039290262580183861937791913309277026808117377842049979330263464754195836449515002559343129535743447929589047123956677327393770236984481589681900447381970989024246375208499050101756706474441235947756722539784371131091329287197789094776075725181257539951101371675690139180115428913860196928865507701063039815358015252775948377419938330612356312843770986274242900768553880816682220674293500193695011941156073412289783434455846198018207914991046350876533366359268148996825834985596603205392901714138486790741559637757230918405009063732952051623210613529336625815864384227999423387012472609674791709857295037006652599228491725453649500632564284239926493201750961452052744435212572769255296219198903441831991280113715943215386465718398194162513783911760955835846771515246834923587813898617393973668893591507526791635512407099637235140535293258540034980055944637134098197290199583672068693249216240706807903279821398153332662771666564926309950593369933403767111243668518238602852987278598828540859856674708350337198219593218739192687917608975458172203099216368517321946317176680187262883676470251164731322935584353795942441863203635151713128171764379019473908187795934245058988245275934107674274961407150358633648526770391025690571968960069883444531697896143211762192649649290568998071652681685872441282734535514642009959343713345234073024492240389945559908972900678944299005738741810130132409371144780908209063704473870313983237531555484456866471196240522887025414388439006428038666871359664344640893052906236351428817489997374709608294738422755361603876682630786600892844207162304231864283557380322776463811339119198081168705438653125620260057542848454336574339979942041895162509310205559045387651193122545370419371423452551487765566607011880938548351675227182740909054596374979109123758263154904764989963548116282873540034002007618822933942615640295722844891258853666847212010254643287691344418991729040188304981234895497313527495883526820662213023329805811268000695975839935445898630879335497213204968245406967147751575388608047972049257452195512866801723525464305062760244204398718687631066756658385625380182410066497005198761345783778051249202247489730864658901107701667340275043391998673583284283959409140509570066758777319603089748970090326519869393405822694011321524803348573262362067228418821941775944979814919230231086257604383607911136669970680150967568452556445086643332619008560841762466926728391840297740418088331630756910184495893826179900166759110524797013179559613530504000695614468222220226436514945489730655950741189083561274863849737611535663402491060465431060633857320594810955137067626668321154992451560585725591278321947642991654371144127188507056120270771926153802178020039448856516239045341253716512901963325691518335807210232963603625556831240222984016683567200389383467970057112102971629508154786831118660349564511309209552380470988021807460290382070810636464839595623996600513900432986715831905267456429343555763915547324666798005430673621650989019170118642975095180892173707398757627595547534953685347242201021987411970975108960760714723519176740514210005581048976419203540899996038255378602226901173772482622750598670396967049051849902463211347027845648617589279918412251381709087573707030024925593944439810020965600983383586062975743992555512579026913015332744662832153099784125162582552862210330788547722923829997432286983259609802520086617051857784378076750265445120439847238366629525696914374766261459213311875556214578794526723027537434635046319422024447650342579539876993485409549312290184195463651846321483963166308089503237885635430767359210354020741028921483551274234800381953003147350966026461864231856282321757368578147848154363557977705770154700900820015449694821736867812785792383255054909194476330423017100287854860814312379737268226884342216456564110159612152988380928065054862181030548039055992148614557082035494368078895303615554682387061213326003099585430046649058156311962365548872482874665791156174789331255998267562231021316786116078611414912070603344268751454919682049759134202253865970284475740857821588052034446340271319020771442725091136418117404106257100886326921010571004074208483087371536001115313124844373254905385597401327886314144207606394857154497766744089979568724777031278697167215543961594112521320151282192010805930803292117030430221175595386422112972355231145564738673280943948263260787293278414508684034950954545459452164228691461956007667593262768771786002734026237234794093929345420465238942529420648042478338651659211497362832630526933132519680038360820551427675061566613187489984191004197045427414614990927014354049180210618213720803166807449979549796839769204803437129863982539524526584846938848337704276734057925819870554791404971108914406160799453595497871228379762572010975481840093793681255613663584245808912861704932149165692852337200316513544455187417268053326314818499558180050421571327110711566767162151495168521959438520843681661214276433971685150761713653516698996972450366824399348586047047467394481447355953774768464847434263200017620606976809687146369017805705558643133340537516762420376089691796614302550324545242842915197392838558867223539145569589813477283893885857030498617322966651127247401117167837635325104272379658333125317675561398660197240476236020946170942751975340057117624028969995099591413054290250385668690410968808305921083269457933059904675797755476608233908767529929011825740635871166185752566831328279641348851091502403040351886785329927028288569011896184356372984926746308924932229816486576143013711787009131383152915740090103112598678478042956377735306285879922433553282955403939446386578438642312338462712739220249598790190578993883270011261835522290069782301791996664288416226377735880363231504716428940375225494102471310798736127081630847430412048906625429694300750773117638010168592972790975407025548775042086814025371799904732356453153215740226481867084934187327117479555840529059006648602797337669332070198473262419469957269145527734519995955607817550639061364517459760395056961961338613852762431541969524378012247601627024053384691051481927068197814481262345246979607423655903599361958348759652440241109046342688615366271665329869563718059243098156597520189336091545793776299572492083552173328143209834414868423697413557674091012522891396407715087826655075935123596217734361326301576596321369887841744362699399016824259951793001395256868057457855809205432573586345515387172505669172190612587744869383996892301008135613663298457686184714159910875004042349451481463092492777440265733979364463892165479994844146712734103026190218198893942462631431207010336486278456564738568290605660535751979769614401638417832483118332369086511269287331585571065566909832835088831242285263617956505658605883534540532665045676775117547762797907978126136422955680957624480650448782899656081227164979620936479784842873611463919657194933064875422301571105028434245131296493644060162022944129966224764976292819632227386047954941572107891340438981176901057017403543128240843506292077747139960453526941607015081211517454279110307359747454361779304165739676594440495432771102528508868249841515280010447179213857254854980344507575060680301315407087934812679601456656013249639572665991879726644688446027377213633888079970216338115380763121761769605620253030320463638690550302925810291929355146511062443286984424172390070212178317469924478907739254690150063693219464325689480856858479921860406491973584077400411579673037092217215831834143537910673401789512907886981588955863669902644250982562154222314547964326692809418541636087102156179693976236544167554609557268322102859696258494057062898201698641244888224742890662531681831866640718181096909892124961200362703667563770803412919179881131867138552629136738538597034422427097491241474894198807880220085501676649376472878198459058596639604971403193758972184388026628173470016424402137097712924278649061623315008830726864789457287137674705781342309948100000409312619248730491353262363809128326879068345826990202501176820395064292205514462053400675594577917211019281741519199982710744608205903031256833291990864787619985537818540599133660219947206242798307841651629668133402477102633989348112843142498047293801097459350956864474221840223117465029495848899143867953542115680927563848356609535840865740333038754043410433987529304086737500213832292208720639303546615886701698088647975076764380521781053992917022838662737148107974821956248090914162687164518434640724239510574564595384407823333004215664509569964537607051536543979913112904609390154142352814233986615187821712847812190121312835769785482802748488192560343639645055332641284228916673146523676688551400981717205593340189290688344397560811045872212041341059311219606188852697225636033765675443315917381857189604603160876650908069559675396862074769890930745856034851638198410374572985577267915382345687047343514362097175500705225342218631820178523664886929134352608190100163632578311677094945846946844450752640383009809170978560400423875630873570331838272295541936112215194427211414833593445649236134323282778187297436483931941866357620714364134782346061465153507261411065130697559185244870498464914213536839380906403704616075400167078731036391678950281674093513274964767006333735565511242751331188726226859071553722104382867287414762499953954647967394736935151694107369696098932641624953208084832816038461636843203257985403441679256840291495941505159559425175093433864945326627180851798010782778502219343518381122367919087971505723818987828399540745061469943649105307120374927582192084306166594896487902534982319957554675920553271627559923633965738275617480496767826594864178110382782432856681954176283017848490511380627935843974603114374908986178524260267298385971561187910935008138204698257270927268665504110565013283053878664004991397039742359359088384915970626286606297385440206673942582457217179915594077789259350895275953376314185909127816375950129124676175325037149152251548195691129397629632746261777512345482477032764405782631903145217311298884220361274471550366672859189188714963440220193684035852380242855819315486271774265971331686339040603998718959358946779995205562610200341770826933019157266190016100420639796602281190294993193761588478709955164961449217041536939131152144851689991115578756044717495065550418250660106975066409954764657241974569244813996967561988375178536742428574683697476076415152261680864290661610727419332361354215481825609949669941989021216616149754666350125315112935931004331633881273316690918314774690843200179216712309594862213374224187905291299636463380688447666090364476545122198270746197535691272299027671710308286498758993329333014426855320537539101851168998283062853073965186273401428258946706626204510074114423424153446050364296946176431913570051406067242698320167060715093151768388460283022103116416453607075963302808288380935544658032412664758074214419599633434764500633503257159189289680115370759401852788066650167134593473411695048128149729855196820978712429008304672422426541307163741400362834900462129771548375607550968127135175039569225717499816762322185024884267920170877740023563932672263362331941310192193289761002584801074009141062660547813594434439212118613965296531648682620026154198197227981705670139563757549618768642130189215927271166273677642972172339510063512792496403542937714403957401798946353942456691487469455743621638957440980667365440581064404338128048393333456053734830517064949653460410669830495295224607984469717180922293929542048581486251865575001461305009534155592984683660842337325212441573401753780364521428833634797865292212379830265485568587714562083208740005763783583609929622743682596661280758874652538591660953355988022487956420119156749104073724109852635401071283969114983630043166965332887117089271614754704312181790501722355790635858234923512139849862503184855168818835597246982780566802061260131516358216684021163097793582263426298184561926744199091573419761763435185588727911984658572509094326880250053563505469891941456738309020532220082032479620305694300118139615206468429430472060836968742473243130825501461061135384593047015067830468860548873049999045555535542167904275718922860010979617078590670638261536468554633010235846236555162421230431639488248245898008151578810354745730762707783806144685464328138650696699277265266524201835924540215202419989188579713313623010390875853366279938456498329726666611742426491588413779308181122474870128135902966652827147013125350385093616492371822335943467909659248601300099746149316841771180500010565490091010166616744565058352156868680996046780637693908586923913899839708412033930544753898775443625496621480879726060949232922978340637154444738313072014543727447464289406945158292871012700055249955705771166320790407267159983497086659018470436518334187682397209010470712360389042793963598145807992110410629761798313662345287818175058377150315108140926064613471035505614246134516205799354379900269657737262257713450653893871122185713398729199255353078613262837312472970640296000808819421960243802515089188570139380383524291222737905078379897893185064123647626933406748841305980847612364187189917610534169704009918550632951035886683136961246931419753141959846169668560681808416871565810076924193108755144810243350602357671865070735034212398318387973927033352108890594013439936595026128579811012977251481287680285636317102296992192711350302915607456600495857702850929687275561015007783567782288936396056447869260918659435817544766077053634572608248210764307742564584915155325281269407326830492339072195288902168014881447961536005027149838647508676547545340153133953594048030864537472211745204181670114375620909775085893783611761012167980798482713246468581668393276415405447600417215728462203335333354350192887020291928822089196015130678221893836375580772157900192795747234768939242049584889342969802637674848802841162180286432847137531815494607402260225898944789374504904754706790058059553145625960125570140451736746162674926190559843124049995840460180146162709620291847938751155372846541955773101678724032130721584325431564063400162076076759579678967450358877853428672521778614941086673700640531312894595404813019968917693295750672953325864308240120113065518647403776087493167880787403675369599829096358222809280029133578590516889113364863731961376779131065399796329735718339998144391381731463924428076278813488748851735057131543359201458330662634402194081718464936339099617081821996509108918205206753542381361520985440012260382113273386939732966868142099556544832177246912999355221392228649992030533205039687499381460708444779507517783621186220276004541574870983205409328955497797765178349186728601703033269859803975849119373594324527290574738860508433893010558305994437400708834993955538169782791467432865463702205897507775806561789815545221087110233684569071083588891501031157423116662605672073868719540909409918859403945013990699385097529296183974744831723845072554009429635587338806273287929619879362014356817677391625691993577222934691772591070957784507689749909548085325721212343992929180459417691402024926167306051393636048262935731243563671998286372634175963660279816036634725594967085453680317370771262763504842838073207730109359205156345598644475742729855772982788561944151394804562399041250764598807301480736758216530123900114255875827917901731890716158462984697174977083538461231203550021165144022668845989967055510080964110282871212827364125146992510895233477275391555623034120378963908457465708349140664525725107858249374780189497010268428282195150821154269392212888768449490425606854123533563257818172149639698820563116028699048634754175169159471964694979159230913451336979517721941599090952782269592934173694430629792705702703008519590188181044748938276582305031540260890027506440524641403704157524590987615522408912140844209141345878572370279115740887574047915051979644688013674537299414962316133303935144953348004385019223090079918666214313366678878512664284601533771747628586081597411302557638020688454220785726477824069776511026892764817272880578583169375426998274435901280153676097390908942552872236070810288236767436479890945099687765752754947902381212551177330826523863613778542905967484791975478712610601543822322622110500374465064973991478573799472064376182558559936487926549668913310475313610392085592153006032929359244719349220203324749368342334686299184474386506022463795333505208875051708756835965117578239592387206024745996306490810624229723528024323936631575977538596152322811427455055053345866448758032547763096528354510910446208006830350338114727223876347643592990084733130324444787930524027545469103575934891247414781215036475016945956980390132749287736259747923817526561651984049618428222796262424794207278316308700274310141996844172870226458400648582404662907345518574928511140353747142839292447870441413208411193730283875797964117582306512408799836085108609587892355365232837748193737042630924491442316588803729150508290982772235240455999167176873989818352534769367588615837890463022663120296032573137378253716238178307589467700730240587864575704900366518229679571212332740018883347643451420800915591275572537283563589680019494776104018025557368435845212805416730157505388482605069261016578446411302596634535680762140025510154095712162424142350591248529285638603449770735934880603993196981958828562977885292292146085275435389027403864916090139790724124040495205105957287343324133175840416810737816688261905229459837815980219925916498604346745900211086560825331364299615590380878489596354285573627274533131953474552663604730143056118192242470309656517526846209549827510020399605122844109266759184183742667357102797629612018642051118203589341452903877261807052889225846685739920106754960250426843812544424239757075391506488672240899682990748553981681884010260056971053814033002607298518991961999959090115809439370892076815401434766075140547632095126427163744627858440890971720060524931509963732997940002728260012521422078932686934310560764769598554979758491743635758769135680269309654357002099322306348162329395667298208529549800530676389403983114415140751952492060420519269198259960538797953205270574261122544129335842384532573673692509278849745689161650396604460753737877655234903616113004193793307915804272481418412816478559181705621490225048746846110044967531838008801114686684487012146875238457664428407549510013004788368573082767708100552304551713516194647203023495240979035633760890086019685044202197145776253085896982181854155280714175064370455962512175982692879414538291139470222797276034749417118792068086479528575649913594124420121804646391094176967541339874778000243920910574748008024404383186251727169789017480226545878373674812084209699704084635661551392318667081589795052351484534782477012896757090744283749057043802541676984012299871198099508095882070904915083666789991611046868566818097416720887752491329681799724010737460881378339881412709351697737441563270979849690087131650731260471837843797029379728209425304993789250083673341690438358668729525850460491723523706149219540195861711314959963064731327060094264007014401876994085444818441401140949837496357092626741999402252148586983005983575581014376417692721495129006374308837005662098332165552893456611705647509691800283615332717247267224844889088480123611509245816623851832437192622243090926582021554454248525782266624246503056021271798822605053206347032284446726422542118967861505228131715245997011315162451875775739209602092168137492409844407472240882570805004449446783656357609235632126379119100411819510504143107981171352082230450687928243270658422389210269662955645025086931517704155612007127119532507139027506688269097113363251805434862254699951839211405243122877341710452849750745655750490293048034487865207699582648504442941005174549811644513265872496755772166635086875193556094542961320195249872715304782248100202018982523200610411291038183446723015882745090508538939170740567894915876130240718485096995047624724890684903274941532122681973218434096109060866228893044075865980661657827755932898106100839959077646932410414682546199117817738588735275213248878846365187875495900716579595432636685641492025869336117182472988233925472088441815179049591284289043154313327711458646995553302703338984434663688256643307162792496354916319067794389763221638262088026397771259082896587614588231286017258408892492455356832101002217770895889869434828247297002873674242402903611748103790907052880064421069916867899045843879224768104034211351837276868958890931740974285123040853229576175380952482366877837701318920593915714618396999761693723155103098079774416165471067241846369025102578778799194295395805598942814728293201488464023958598077179738939394303959854827887981579675878700077599412102045955666556570887956247468329450083516050228812683439920695767600761534999974322484945340523587082560640118521592821689484743521379903463288284186808946089302310249732946071386565189204895911675127077684194217043570152583864700922634897629143962137825094999647746899851063999462786380217129548616167140975433344865147549051739956557468472714768995362681356533496427076641650559824192055453338959923612370674716578360306843559389739088209263826184161169281879039367895925123139694904477587538153858142030738711775973902555528001951412477239586601132919026613497421265652093566657178161925088464815445597948038056454786708050141290120039545746434842063280850169483993101811101188351149784203901091936505225177994500458984092792746915672811288840087974819053383399198275932999862926225844502249125444314111474500793833556822727033318663879849018248439137042706876726396917241334123050680242520291166459095661827818602076619031882241736976715289638199718552415058964809639081385373383420233777349627800288443257273325060533068708651116993223949960762995249385713550439097000235373662144633287450521936895016977553695803805596880659963947034500200718614664702388145790278270732679412769513626605733667194405013981883174002913806170752484494282073478409960345808505616077455401097406751303902020121156837966719207047408195271115464373114432638163770847650694646608352028545000386291745774816203852022041076085383542210835104307246817790302641869011651396491040068174866155206840608048845794816765571629326661467077116573044273087174063773877260067255342411917299566136195174362560408518633768528998315568830431217595285687608735454908786141667995490318445165084025422292153394935421049800464417343370432000640145277816099839702267752034484847796121657138177322982536292504727365305411488604703687375480607302300191418700766344859258789629580352496421004462922250817841400626304355889290255936091529757241182939736384441269272377513403960243004764967549321248849398327113974227004497877897034753920658265929580847244721724672325541546523018266217445610744629642169946596822210412093759169076526230684783270705335950050065388506171893812909567873221419688220575966035980126934558075661905202848007068044334220507108849975709538771627979791438780853339240635206871440689911594978767202515828899554601797502224952562358966481159172178402673723616374775941215347380469764427854185105033402302219835572545058051545889484835018752690948407596010115708766283123489950800257775841959568788476366205169631775478740130863150051622239599117642734004576019184121019016845382242219472333620365369680662809919343192264050605005259993964682261863048720101409582510485140906039274819318317130906568172304882055308844035833583069426102025056386254136697351013524538199996259299329280315721551964333223150556414857635066000291439009250782124666581090525643191368191707753056675707503747138282924734454650290338386814259593120667440998977351756989102354214913594830918317768553818091489847697318087614209223882474156246197881959834337356882355566885455044334168872232061710269488369381409753944591755526544045034314984646061152699749866746965772993740679797371464577735037911751966456625750704628268955180942866720169642621621638210744688089728474877326664304828247977422054776673016987132061012904548989462607867535244458006393040529962409926732272780106066103611745853965253962164262024515580785090975767515882305421315179947061276499674764313425010121352723226629746321266245278990122023372784928029659999683326600841183424361424006849538891180739239373578635590867422083321253911661153880105187242561629477230929059162775677341057190662668171689702179613400333944172968756863827615480844221334475461799768190101678282244921083449374012210814589253292654825440028588305455076620448206618652097772169397243303209886581980462224439930657478171366246964464363011488411728104946291894560936658464875493504661947109869431226104764190197777172893659695741813316683369645068014320572580056371116499628958932636464819773527528939359880676875926345018493253262652580529412855369922760456426983763213458488735263281558427017886152735863692461177309549827268149834429306800814758460939995597632100673574016837323184601109932940132361252527660208310329719583456995003610526917089316059069994249579122052078102010287712074702375378206838238920396356156643684068475160974849254068410326981075225060703193940666150373378153692496705502719030508869873383357546142587643155465010301125148125357461843142178493874562970787812449716381095358747298893133318580381706651436836100900344069731431742023605109268568076418689876829811970946190412387673810950298612578186727065649519369248015232754531460553872787139325091285211983756505138639822472029666796690962645413760337609885208917433500851502234612995764130296244828723817745628272024950543844743800953240776165109627060187084833145613557570024359416500951729823232907235083227314919610303868598595900040640518490466981790517880920929184973880664170239887787776827976031435368497144404271971173514976429814217067702887099840903204078040707248745133234509258757717347906840924014026972944646990695410598310921603606853226045056792106894573830878234108599185517601694480080010598544996725673974520156288871340875504047318378134653525695007118410279726700631045997443773683625865678903664233255080672405154645553306743466179455437066523573886282302981171245102917878417435262835145936675908561899021648202558943800195791265200227449883105594202833117358164599458455172585785777261438668677541403416158566070624528898422707592431147802039239364550694130542659570819947664112825831012515142831937365119248129669920129606364372122574732303975255812409643765230728311584725271341879596752873810219840376740259528032646701278187417373799018573079411669570899044484523968807911017401416179881649419702564833177342191128330264389839796765232924982993122308780212376128596649005253872855881640825887289732045798106333461931990980645695278877433124764977156220039590452141686884581340171318928179005149056920375052128312327365240871725084814559943979064168461734917407090367194687699397038358908242021621754211144694072545022363567056191341252139505250144588767107909455836473776699579512792131159295301609030036801534625859829322701238242489323931769858193664157167990592891940077315757289573340507537225223019400774800665123696780275449408990425112086794019510172056313412307078263093238131262528395412334756614071361663366181379439311029761314765585451001579720047824136850377607720862792632933310711330148728096912609782713352836733832910876202577653031122325783026025446574140535452311530594724111810501071172917265553293157370424812945077635726857934849655066810013891299983942275484025398097223228484529537916112099653311456870297100319884857258075803440912878576169359323270801757983280543185595956273860309044249058200686342778490773741544809694600983224363666524919640168601279913552240061820013777199382528043318847194783184848815120438539118183476169348511845314061361660281975275692570168007300109530118871578294229479526363109803202392673118036117988861141665693224202645721336592100751775080873517925884292774648292255096786859693115181182423704764771762075458956449298062185725038871056647581563990576292958803487832734962347811258855265387132466195651366659022484906132585601298355066141424020255624044533962796793153567032257579907108190137586138162478145206318616140489217273210276954078400326326083438977211437578154171677643887668049955423169930192407774161569619162520573212986959773777273658209444847822011323653185055939792270095293088896118955464289873961079446772000277695368960088096040899926808589659840883447496763577722125631504795851458326882549342921509036304744733980723102272707599220422833693946195986794011400292219852512309013277312809584223194663809290134927684103977072644282792590960820163260214142029531667333997980555560333097103986390885203147622532407124472060018233871409013194316528847502204868101493400495871889121632333189329820962323514993361310847086571314094073201554730277951318628241497919509605744841829019118109278854193741216710431313405841461573620292949470590356522476748946610963743178035257976532517887925750017185709167077566965041117092254962428084403741748497534580342977237610453419534089100818642985452962039284453599683324433097901528124053915117519720049993879198607116085270196391444754279277783612581612313884637998059235240518351878742442724706790113225568457553960994755186378501106098326551408426840105182228882582208243032167477266996282634533589215073664863176662285128174650682287236621886810975731825809959498087325525947395901027916614741483161831183935656239183683983781232918440716995499736247659687163738082304673794378865059259643484164793773166327074783567229081009957940295081481079933015461923662745666984697579215939348778355542955277420503870677328813217601986849665436004641022736826471363514850311889082896360112525912726723080681515848110475054560489789452989838338454065060352432899483552149664487672114963111736453999117901043277302381558907652570622467740823094199563121133853481453549562115778214064549986380958028741663804941899584177449211200764035283176938823678335328523172762858416716316411336109007167078283827676902697294400391515621296084372306991659471733127273154104886881764492677451967316917587857466318152536524559115116303771983199794578150440927809712018277730286363801061104917673198948284243721923504659790316663232075926127754562999958671273634842169610747293730022632529325945920375590021952735928923515659096380412166886308636043398574670219759676517464612733036358529983876820204622898225492340234864978922506479167755062755794155935018828637927765587845447635073193577492628798922090466071710906403141697304089296732341840274422804821769590323935996492663963568318842793788161491077487195398219692653979366185583956294113509457882406555127612308707485246734429860777189116550388206088290938811585847784360643547456533628068532288627619070055692963140556825859292912969240037384846362691473900342275613946005666562688301748941303384527907779652257281829825860874175477850928401216706855833686247170935340293076256246888794803754886330435539220031314277376762776576345878200716948811374754230623070913366246994220144676108368793316773867444819104937282400794642595728279761407624838896477825167829047131426785003606622078461542598843095304928262380094286053390544638433383408327346289737832472516466371214051167721505930930783010033739359765234702567052741048328566254271055418383866650681152992795000206923320661224777938119040886083981903589206108871713884108983099609441691693340639533719875215181549969797838736134384325836331523997699829393716738011761462559789559265890719013657215828873475554464706964182301426473418455822016587014292116641745903351630593345842699934365509386388662126423648202496653980409550593820899214645918382838609429518607649630437996221701663225678741341824062234375561530862429480903778422905219177015699684823431829498820841235341276847747321893007704440562546153431798030844078666424366796923536826710584675637103434999518482693016442745766304100522114179051953892369076772072793901826096668610202294782986276529885153230842155893287828246139080913467965282664898842374076223217186493372862695886325903070944072980417709238830502541549651438119252832973040216551856148919819569563862009856174674371036285260008527456547235514596042354322542308297223849728857107446887561697216289783237913094150688817102118525583226232438778167616211470140282640631791617042786319863350207456784776577334331808458820046059289472913255437198329152545157097953130177422651775875771436766009031104507807006075743500648910885088761090326536441358495565233522125195670087903404011676478203730852736442369898074004398179977926652713310134128969331148555923350535218461336382586850020053621438216928839085121902386276745991389613066351600323635735897367160213827413070350288124687060732317430032891821384955705378447366937377401974840142715707330916101343890177807046285530982734100795946691363991320659105469537231747104006886636253794916076735824125730344586796911157940362865370591632362844643446197308195080925264658510073103730294579046190912037266884143371709623205026141497727019712834197013031071004217614277389866410257532033384807257458832115320199975818557112454224742578957326793028445727465380380318126430365586185699435919291619269973499930641703296868829744945209512068934710356565077205237579876775799755746475862224937957545548023764571579472942729075421962383832872549249057757402780331130525414498896210733236164789493386513985356818726512853257741890066830970639054879811408131133623952391917351481613817849800708104550844821531490036545825289415363434852522845893538514792642247742813736231225688690709536638582254197674230612818192712623049874051218396899168574091182059356730217433041041611976384409344225226694491055895993970902767095378110885875971360063679965088490172547769856179545771317219097261881445154392005380787150336696215678735735487884053079038732752040050019713351974743131503904278380095600855785669092028199373929076896091176873936199009883668398706173394717828932390834794546417479432613204144188762654572657001304185124295162787107622935451239415522064418541447829107920278700495713314973410763247386721214487387647857698706077830466745284363985659875698284507195531365446944068534716599800878970171775234524392345984557016736982708257554025765063255015430686874779782396924284012352064120820209154584915298887773169298476440443133547653273834284839816971689728019739333873683534884580500472057104907082211777808859671187561119920845609895714697336763610608302650774415542723398875502746693029741912543642402885361854240298851098876488928621945966606392582244020026918643743937599579389715947443920292010854172947894417572871087954645520673385394133184160154425496940339705696131660726329610416143394286125452999420447870633126425931654907717793378089888498403268085117762911581123187415985348021452610685069772590996098290063365073074954346852993440636737524272863300086238220107159645750916084407125535576949586715877085908547442799849790801020546957272685570041445820173566532850274304351446759544229375842518665978740579686328762974492162561696698320808695514727499885337194462264695918093195117881699224517452027226987758696454688222851584562866540330443298120185628294075666893445914279186578540621081332307820420788962193845882775376344450945085264079534261122504171788723152830727423030121658449356488503345028521650951826739967820217503423025860182792509133707051009994666728358509950086060683532586531076422474013414624670107762155589317460698312270177579998505215975670387794635842374818717011315301659884340362792250228573838760134400066262859004859151414187796385522698208069557441565825753394246236418772276329576920041943880764785344430223459406633841149204441671775558003621062945561072464474995187444424152894928014134172370022388661037538925472645245704929434361734291742818692211270818305148621174272479616825628956867543665924018658695805803209586820193174899914665701680556526061818333945961495010798163578880499075042835334789291505681188479430331024627488755193209546008312348873518253109537337928754305970162915269652948346751932224361494374691102300128981198483250447655142138483792297768369657338285335751960024340479310498225615303754125286832821880215850679716215924503368499072254568088880644827575644494494521073129419088631345281764846749179825131283158494146024018287878317843286560823318090643672917865961233780181451273295884908271823270963534276591872925450518891449516316427649947605738891091397912692752297160618888273099489543449886791826086555085802829927294039658605335470039275914233238659312814680405970576544039283048360220982946560064345569618250405062757164895284065691821640404975436429830127856540772086484680597570634083418012321328129497433278544876923113845335871867004962473970626070464394597908375162869038962087963698986974623008302285156546633958533468924673571011082543490461399218798492444471772179995032257559064883336055630205512056652993781041070981603509440173657813595686247035025927009136822409021276240110102941811395058132598012613373560206417201980796826554095691940238058809010956529137948469277951803893515066282605408629879456699698978020281142556411757648755861418510674164351264352806988506505157994229172040887313809592815913648942791375365370439529907901187444581279526423599269714610833924995186007899216629801716222632434612945879597007336833634721043988868219523615205530123096085761684178661489853972897062148285105499628077673354106354364397237855093845365520681235848702859337074022637755460295412864101209095041440471034321537571705012652668056744044073982247369616124968662844924449041040715727968101042311441140574922481791574139165134365079327495385438530907283501008725911224417455124163892053901426404353177712941465998478585629031076232864045275699305160776401842592893506756748727214224223216208677552863656632345780227967681495527975049625346143965125484296496999306178138564774814465734896374728660621910778491318733350865282283982767111061850102821023572287666881715026344157757423785716145112317796301261184846999121580144766465997949353598721027459251438051809294903628666971700650637644927390384275671011643950662217444792833384492298883408983183945627134003070996645561383420621074209231424216679809767317679388496539089857339720811020429324265664074582212342395225738568793600352087537203781545169507888590639933166730062688665624306813275706875084218387894269120039712837962099212845121790376555722360686009568459814315010041277643081151831709968830722877660958085976297265693361317649280551112865481544590746241329252864548323449899352489048411891037816752144220183629883231073132073888702734582482230122873855473788158004705496327886668555421476635293125531830281975551149204833923946285451964108266096916140711098976107199986644427967997250454130980982984891433606406598626888724912295792038392096792614992923289910353129933292565827057353894727372861646825297336658138015289488499971647854891710585105872668253789420036619002742494228535449302037021536370190962339932546746780541827899743119601736342081402320570490225846041913319981219634789959116658593589475561871021999339266618594065713945156240492552876223369903414116019227287054971975507544121230428929599905908060397746161941386424294620504127236702845011549633363919478450000453962772384042192486240263137985143192954293007553039326155403664914521876977786633029858939467479382475623409569539881000413394674550675670912712521863534862054071325740219456654289400097213245468234046086725332637797277245566333661674521573922701307693910070794851889294147981103496830624165338024132174075019291650087867202174340727558452785402529779622012899330763084839881542996313844664373753326590239310266911692985337782002295638081270789153321024046345360856231614987529228744728913956104190223344710665694275717655834150600106760265389207711277962991376581314095012643130064239803167855552100540742201552916182727112297452729809705285452292112770612731381804701650648618340366530310798742743676927224725672087322281409551495850531471235309242562471904579212857107684865452787417373773572017179874381921113702823152221290806927494449447986133639811954013169474590509666928232070773639928056370301777031312540693832694449751473820996609468581347924408044097807582059519936503654771466572262899431134376452496199781190199929042811522216016952442904450997235173558482028034259134355794127500369485320059234705381333693760642109391976840880133891552115496317307989867670642153724420509362735673591534323462470537299509576983101311394665613063468890629233482604418354379141055895257088973645956937423443333358546974791189170074678123913895939254259328582722305649051679505352776864054236542882751244964228588101516442291152678952833749208093949185243465239689156371499872490734048397519335199419350864353613698640689944630517247780413380158013026589949751828451593794697747154552877115429302853717543958646894669967675825184208773788785947725023807675372977689999940610961818676420266962939838810247950280053824113206442220915410180868197943856460212799572073774307732607365711989817461311619400196374148088533707981643036539430203561558470752991424174577908006852198995277156016665006852755039864143789519470751953166106572751373940424436172659991274874756251374612674547283693772058971125260422291950389283502430436220117361509952827883485714159172157313881910940182103081038033912391996595118946218383446944996298705092861735823763051168948789733820220209779670009088358818957453270625183731617237911857405459434583378946952706014167098559122580302249999413778066879557379558272809550719531065591047826947830399507918747243337044437247425883552797185910821987790891150007517840539869040250651830153736918682704698087175502197321064363448147658330063452923179009905198382793128204793375590304689501064386150615668656894021696480310852090209167943046708501409904377359147839681153758217073056949498543950324902579751310483005234520719666098581536212504360557627249520343265884147075369678540456027076716491920939212937233104289255836187013348432995899760457886366575614116130564121818201948576303507332336956728365244535355328743910028345336421812105562025405342789286525191150115053069079252207264414297891952470538454711350420750345713462548902600335153441441681375015269890752215599724553449952552001342710991179296925360910638599785983783378323603735602017250251328373229400040678813474457868763366592301268535808567817639773237419843512335240710669510552370311135083637680194020833596599896283100670181554478969579803133721130560220556844677879336023305096986069829319247473139888136082777898662138245232663541684322685764007093482274666694287442325632248728171999016433516929276161679318387891215662567994033659989874369673151509361656193923187201989586033034081556745775552548591179394228346252063607601154576384914755163729689399166607413459397276242944732936783350401798669537076175512051452206419321406894863544899981499096525970157063615606678230281731952110074058659880213870604064742025547532413316778835367789613564487278905896486043869269695503748805697388160609663482331944625189642541334526473577866062200165833837667076978670726922224853711720463210199057775653496339158014119411859036568280568945223875682140876534397052374858009413074859617949861781272461420440557977748474597167157388400656215936703443596469621711114788133338754166197883948081471133773107307398426491025574895261123917644973505256784508189875609670169011770295262472142899875959365755169160564862201712192395192106817256412154619976716428553604548290306086157729074414716661166557563115191576292377062359690278532494575817286259478428237602620487726617374004768317858959558210779499506580839597874498758904059823412872734352167127910934659806385034285522773181298808348768862492473564123447301535750022338240611538605881923654836593382986878029245390809300073828958290869240898326384589521299499216659048400585303167131003564414547131874583148308409615843148135889786253004328447398657341154003674995413415666235019686168806661640769308950152629146993774827601406615548678244665462618266662213507673988246963397963621645064969067987276582429039686943389946705071665503029300180033943410836342610439985464911786833611325442894017797302521802853037558523005413850522768606235926530974603339070390157658195847537670512492968410194138452825659003874907375118254597881775567574704634805329409164882752211960998683224386843212350709763154072975024032377175156539275918968684307769951424876021424684866025908279878458517501272615692688014286548401536175601975874469384661056567803243623446252098563874791044661696990796614262473176967287450018068549747591605503840721342168591699006315083670863564446338143695724418114065786354745157938506850654885300837096718411043614922919693463817145690419506389214712723204153128290368338827167351361960642224328278394759402296955636492187703565345847747732793981737133954409842167686497441954809726719380290485161987842694930300373809607437955472368569812417255316414821661216399817478666289099744806650560469857248494086954614779797473352633923935253677787617650822866194595712665170427847653707874956497537794281986527182391021964597540780517004257740818177424676019551035405056281398803179196001847641555099218546949737013813310359739576841530368523218685066075175698543789641832004985716187778334078323761668011471159515897595707087007893586829027971651048721743587105631012002768438091881857183149836454512036788954791952790103966492435827981532446213318740067822391034936353158070082967547373129813388820083824567519582458932494372418735936987216924998913372128620358981836520840156308753169254980529441621810309600981343612829308949910575869794716551183624868095907858661309000313713488564460703315031977804544807471937510870466218847206069014053604564382779354059726209277787661957927328441900051658559158899423492907331530332927655472570843420831897073262214900407546608334151359501682233713793190810516626736964791611883095225243280018567513384076724844020252423036893637080543339007488318759866024458418628909483530874433705014857207132305388815519629115413133174378591609129524996348856250786298410436303906151000167974364589842336046484671766065201926889839887704920393134139818924503076352726866729064815292503399363447128884020659110113702961530968604995123489331449495995755026942127234994130503503166849678531304260623578135053980948381902109803449609931756688782656603748633139337738217958050687516991849134082903055149448300150660480972471043641253394764431311096438728373618688185076690230314870277145860652671000961706731162448012731113756568059733221889468149299048585579515810500863202847890579896544391463181143555682436741288719997269919754595955488726786752052194849804860564577177037371743908681360737193411835181917091153125065701765218793407084130455769232596755549041094803759993072150683744611458264719467037998957476600681785379233500761791024660420884895262178184863177861568422212523095109942214777284675482697308631491854364669211319611849986066644784065488283034708368770438443066239761519967267462932244391128453876815934271295576107746303636729846384392137478689124512078732834829772651057330119976288710026224676548400772420432203121332277124131368201619596863603904388541639285794410683656385296362107662537659295208333277367790659010078812914977351181740375905713592094116960603072394059556211667937837303186234753095913736972347245835365879168160954885224998814288641505129524861578259589914415658825131534605449101710247335770510209161386486999626109320517934728013327305649138242248275480211258305511677506982339729172118247613185642253812308107175499138141023234099888132622202922449376580983741549491096434238238945615042290844130008356850105125895198348133296391357068573003254502617113413855037665632914527428398632265662621454802329069774129913120791335285395798051720230509641697282348496318251777817615773015816076727723941749320652161880524369226787963559256656162471083674319438717940696944731809071607243320331572361033028873637591342320967280502492328727630428113744203489031956784308989259535064935374307040430070994979413943076848887410330418594766472291426970889196723205627206797515434445014896604001673251126289011345668454304887797565178224123535373013397436759089593281263685227639335194489515851843014929341557650923997242141846641007006416780126347042259452968892047533681738231476561566198955152232602183340104842384983630990722670517630107949832364336576986137767841213385657252439661979081810716393570456042725598713595358871824586138364436728663491996393995222725017475638290914196713581687092054962791194768768798613434969902008670932163382818967024126352815901919837988386877260549519483964738291253959856098409459514905861502593089764126897079583224227449374598361757644451724634756942134697133998849133890031053683725628487557665614262274723173129067864664972226748377977072333681526404097497867023441662366748935314418006871658864617464180822501796273877048200785850140286600354969406803356666232792739558653659208241970432941181642337641272506402241264682169915989350423475801257929628453330569282525327187476637231245751726468222881555722670012042758506827918682673858147142446004354732407019875128937825638988940216329054341081374866344824546606276506132846706532702697012769976627542095314991155556759722389692032257571039194992768816663315787006738682777597242921132539534714572619588440217536900073088939203796627348234997383269988743149275251395550304763386939965135539420736545341551736645082249857272811073265486978732990309085542620264342551249685295300280190448610713512161682478173634640164508195170647331975048721703807858916702300428670106317958770756215572470419214241848576200911876365232826261782384866104795057063236809559514957858084198290718815034107969368338131880503931531803737012352239317879836832612953262007960263250407639819867918080762992760081185151739718744040549486877729988536823462452845743417146977738083285659338303496818933588957301992730850517099618806428615413685687162455227274171610996347625615655815145570037477625993314619822758250811496766311800602939355558180712402433000535981775365806443252392955117337928789869469575027331949206073034612034262685487842393024065687940494151068883585094212570823822303571817430190972143933855352035998477729533740646733702938988339495838949932535697652956262857070452508281403799291893243295197933189351877165914221378532944494063844448242228900783479952016636663482425033034411165563562400187437130985711460960160936940638949088353986548870139321665701171830406115683547991532513087251296907271189738011587402232597992019296808197608911078222473582578311450940244822006590868793216064577930237251529454638398012114502477206965222493763389239614313599461357285181908348747093849664332661399918619497312684525132397597275182920062089063667228803047872054122305502709222694341761065221142825834438418714200213508639785318397870756973989378899636088126275800524261345070423335186633506822935648967328585487933461311267660397478356596612769127303460974243943230771225339721754124524658220143901616172017587142459545451464188970618229953768732193293441879037124724940754898586495007731230051606236548793461411431129432591619823369584499549250114293473467721094296592784286171210942531836065903259623217455745467659658854384239101725400954443695365766943500374396271449032635408085979278219535800933519047545287722592968719215548232694041220393511792742594953687060330001749428168308537187362069520346693339458139084319549244559530449043518314468851250043325944435013177603756794843684243872593524964705898798471386153401145510070406914828729715148873927401706272945138488373566247038293255683812557854962398883857003047178399957369859695534403513724081587260216906678791057269066269448427141290840099953766677544159740734900426906590393555366007345389976718662254256795739668713856687000949661089454580388781587420925182057573361611672839536902395348524319431818113609665284096020099125987150392525133045390976031341312184709895114575814376104763194719661604962258814437308659305782843977852521321742215142780783509244683116308574867496741463513141016736586156158664336334074307760256025889985675561968597984667254712116212294753854672187561015460099653466518714001191168651581226753712489718934100075605519648371460975884224620096293811004968434136102498388940219851728323983371241732355422273925258133591675034416903827643119919672818721573820122787172350142466613906769757685320160950817583344525783268202506283455774017767376558792570104580154138581578858077651653836212696676710048812606679469685363769664506374644256433397999803482996276692632261110302022305403456336595319475869961009965829122530145317791594646555445343072548368275467597613848459549634572287561166637222668528139323889064153435078657413822072415330682672171277485211009472727357732047990438892893538703196839267870172612805821485537765643299526825386254226494670494874667803370112649868626413816054098976863200192659278710060869246077862344944637392729858071778301676096954196924781854501600225933307030493633918218034710766627204227500693568783399672416995183225489545626600429394763574823716938076247537077547701777458227861186400851891888584040351149401827122500733029567536419601854347170978953036639555329191003486496616920979577912182077440973514285525300727556861829296430045714639600270354217119596986668050040199313246042272465836281077079854172430681261189069892205102913482491486047409463538978465436806838935466421760128693411151304624664599358389250770091504325627921810264879305343494961300230962367000856706856118950744061975368199969664125555613778117205668687013482231998406802782985450087583578310503251357647469258461981279719346210772045949555741416984210977225917042209546604746729687059295553196508492306672104718590634143684179295908338636237424193220108107734435502630700554725097238034763420380683644892047612547970091725625241033130633194596050584063820345329317423854646854594699567034081504795982646872450384785027135422276640643798684796323858909670002229452457693868950447808092514812958144831867106767252775257314765157982117894722801618177761882885943367063997342317098344245054651039377647178171099570118796838876845297321772648924662777102973516039718927484720997904155925539507520360480246071710745072294342599973899139273304930378734148360202392857213652865048539136329257427437521431973513720474250194800038503750623296549374991302034062569136380536412212882258711818762797805513573614432932772259937227746101493111725443866833742318090950157101720122234107062208198787114429540939088203046222085352835573899357603712282367561876449395439163735657023890473866157199773535816306114212705130065179416575050240785788910409144139068295948017707187849203388310841658286667367698237487669465829731642395095485627712755866629181094712879058080576356422511033040043456597990406763798274641617889908506844601658306786712770793956905366055777241483477993875740411972606373079269333588737014314963473093940048714914901067761067562160737780775991867584416405417370502879683243101093498004848685063067988146314214598641185239538175610974529957360651215580312718812090376311069897517123754848273595539430550402396853095127720097136019249834041792577516711081849410599677159545484470754458171211903947184449716855849718596633043070579151936640467986867851764207018142499979631054667951940923239923532845702883320972831722310161046598630300242649260201541029712023989316980414694043390348253033095013371754537572154493877241136032903050943382074329323534292514412361138496899198774041749177654217669486885090427484220587802454237016574878198227351511465470982515707038674044551211184017519503049681975425363151188603731951643930861790997369885036689592727417589663135066329948985992405726673796381026635124148359137445489782074794660530947527890600020123921969374169952327282173773802222838831321687523136883720402010243933632080195350936327507293491414630744036818692498482594342996646445638066924997069448718454127613648042175882305348597611937802068302025988695716149950696156287654223030867986535462347298714904183098585270915934006107727276297043981568584793472706430876633854330265066725895678918072019917871867268253748593293791203056769745014302822792485123920090610142529150305909564142820805808735525017566585147093598362259501804735331183639417069136242080972419365475476868437551184557343827294901141104549791865332313170154943208724943412666987799497150500358832794527930590489729524118422034980572500546866567626438768677819086689774895814642220151705138960283053513802923118446083368640139527324406632642019444586601611007919887616497050082985684255078856237230357096056240426954670571542226961488874386472260314989434675621840621243497904068069177004221947164619360996007553723386891747903431555073537807629288303527468975304469732871542016230492760127509850297309306243432123639347809002586712771241264402249321382774925133164243051835686759726627553212130459911308078991916953992400179778341011448544107325508954553425215024164223157191154587562116163364380423011885065276164861387128113322965719410431456725740335232269661545444693463397942979388206137108159483310492153130969727016169437161673412029230818466562073196069587484996610730861201959752665648971347331673402510260434629209996351075354591204805226970243424005603816013963965747911978085381584270538614589717483393484075286656027835879420845400708930207463470698843754718217847304189931823307271080342591465838561403892812016959219755852138881870262418678534255809707627454991568508292606490057422633615551695099622302610402659915436653021123717173977426480486740896258725805612437585746921008070222742387415975153722427554076383958851519323873349770841016773448822863271414368376107500835517620875537037279354609390626768096829202088972073682455254337152458807311793875996470257029512762578732136310286703759780264571993999762269862552229001888442198675918816943077513562760896108614656038907639401934564814598951795783602126692878661223464861463908822618306061219480298813046022636995521398627139671116594841592180092925383189008713201735299517573825045634328796984120971443385832316560440719295988081595178990486288574878223623066869272118100585007071036739431923676554444475778264376751197307161533660747474035581859271296828021216684070354511248654622132409616558021031344606689472950850010367843778979473268509620829996776232084764016877676383521596970374918135384623253006058826744073643909492756085030613331752549700872519236483872057532477241422569726997998911911124514180885615693174468151198851136185703136135590496267206546697498579080115730586701228163824017587651544635849794878299962951079370521147437034148529429896834492126642925499504515064651841368259810741847895776401569982144835628220935047650200427818565845674930359716731346810054433300914031928268551825785640030142070593139196429992758073299695445202528431308644459063199904441849232801081289578691172454728748826571861288218025015634351280467058773870693916641501351380453087062348618120618269918138331357356828423915974003227116497416597187816273189898074790230035866988687807989348174049498574891533045748411752665327268042365085849442725561897044134745867546407907646665368037076087802745867696868110461769398964736147841558532118547974630567983826314855940935361782362758270847192137993790071861401423446896263527378223822814674923902612241169434755563242318597559314187653158130622775503949558254341043915510370448641869140866597913508227647462194085711643577898568918293196064658379610178623408312135770522923160930420806660021583419830898405819141425466974367083541055574680897599353895315414573407226670278362660784266399961316893674794996271998668311983168394183701830767475352353256782441769404579257186272461167181352663339757554073733880321360051449096213123707708693655318980917332552742755656916181975990335048738733759214842257059790481272158013791649283510361995684319277711978165607467949315248969401714321491472079196912680901055069584055172817495622414692249039116752263989791275563131264057494199227690091663821389628947237664048791349024286179406753243697882435763310417649429160882471459619369067462993977246289160633138610513949910794597992695221042756986546981664183977879335036018966587817673261823016363477010729035600797062238838186512006704288220782470484693601801370264226244523992791040383441026245511259395894192934633572606878394309330642544439597508630096905668732223717947768947097511310538345561013189553350293060001594821423133144556870822881708142055020742630492222667962700469907763669145650329110943979011320582923733550412400508977086066909860210390900286887537425891545000906491744678719458155358648922514077436088472169792455274476157894234950016653233070308816162725502791692120847792700001921957833491714686266989696727066756964317039484149977304372266492991843325824526780583576500463505974792565923990019536085736796678767543461252650645665843709365709036285098157860123508182132420084639243113606541999484145211238272392495798463323375087500970169939170031210713083637324017872544860220838396994631513940483490869958692806316081112463485771850343505378844049219392690846596447507409896911211469617409106277074328667923726892986589235590544550824224440202813818865442789098126938718885908027848526735919821144568339780135146788098298448675794010175784560174284681940135590835536665407402598632219684483138061062365445567199383360326826835888932274225852513916786743608228567070402056225699431187590033455242376368825800040285671482227751451561877703426597583320122628604413565616601741569648221915397735418500385035480189957792522431152031797362960811522993885310348425938181863004031670199557295685516045983665529138604746978565437433288347452772153285214331612812792507198973878255470054302754174784233077163654054705801261173052809068381618071741480220318901620724042789810520109687837325866448504260604704643613588625249741706538008344694312492557751727033761888977834800636082694169373364082067899322770120634579081439060034283835684993541391998723496617653095088147544969533922230676979057697607688841366871546178991348609014508535111293365158605404816033764613385977065003511894983209918251196105117227020602649542425271495654594251340294255563041128592617914079602212505301446826819225923550738679232551184811309831531821404216281564426160139890759217456424319725260963000885160633884958924807731375024870213638182310192282073129396433936249891941465400526918932352195108646123102823713414014053124056357868868629950634689139687342751758164442840666706718439295955100475295094520488281081289797396943941976506147825743141422490182135466166883201001819956653107380145784875502645752967326497428255711038964609637227015777492432168136696709807289679686426293742764917588086275229846986324271661591942924162898619946742501840269979205081392878188572162553088746437702607823775132824810124077211121227749550122548083757412717079051372982457476321803789786675524442662425302024521977533200282741187256324899106205061416716455788530565548334515902217684587262813503484578517818804783702119255941453126004252155967937086638857887526702468369175008539719085876544947118631158926534619871613602479445634564093382837056949924803597757696398567193287319876445753518360929124329294917181091673234716913419908069371804937462238636293013515035912298561990734198049186595024604719324196563058591262625431062138415626933886099753156458972329179449767983319875372465817339576504340581447217636613832118195550656899613757827449990153743555209988293288508926051762074364452327889628025798490219525940830185206691808033577233278862869482597948947526374410724389976374550001637884802516651234877578747638962100138464497957875357277145389603789980801252689601819274487632293649372654179438074011189962301284987645883634187296034223701074396258947441448006788767110421891542940064561055385599690787753896324741668457424664648696927057126496525683386985992641586120452189507536162638714376076297147184804902456627933224740869534339690648208798912322317583619894951652612426097553781842630205278033582658344833465859929908284473887064016403660267214265365174956713530691634494007309251219111450138559832404737884785697379437329387369984850837197744104013025860461837881679753516275067835789807752746648840527838299380742345972757795284671465568559561040206123351950763720626844050849649904499656006958778628668404710044723032919329269754273276160937207017134247971702850446050570480285123897153753169832174757225216857748656774134944210776934753209270494358271501207441871244393314085905974973990624296450063551807215956399244657724624442001870303851709218062069076690254175847133843406013868618218600999684231980056584600442798175957967644369295881180030987611379268327333964088397893881812294911987638165351570656735382163578943172672479942107257868081115729099121793711573581363560450211435240439710483629408049978532373099201184014033226246038611161449573296788155301330826971667483059314351320329688412516989184945534082907418212816243990399503674420400370242673807376763785947140991590550630831041993890751684469179686213197004710646152685106996598627044814970471520755389858331727896783077860616754134519834307254014793816298925402588077399251580965575387094032911095667208821725014747251687299909548503537602699766076932307426444854157288773979869353301660783004504564302958916258018540023638247890601075357432186628881451215971760537236202064211426118231085021980121288411230320354729696283289295070541713871484467309025750031433916835859546650614059923534480174651470399495771392283265386141790994513166053838034571534246959869921431278912879078203091493465021611214708328051165142013653486633832645216565230039100398523513287315700996425025223064397347055815132507060683586190383170780685389766316713632070829242767408400242284759260326306644683707960986358343016238485178820795276209093592734691969593994224682151958421534301805533431453381566631174333924802300864477653808349566691660496755560810794184936219116754483216009788584813600597015207699178593601920169095692251086993780880133831867288578996236721663807885566960338416102928832083309055135524108638628320441646226210732106789923686461950267216822738775546698998104839862184895804651451983165687156440802181506092452150393341240661143844777051820164110553331433544786548839240693731143187390394747177033614904056263357047796151761123966511186934210682200327239529926200813384635563343675615741939614776794349155072664860649502436964060351339850568325035702399479620737582828992315782322563270688704508234224343726472348936897502722795085454675738703360417791262771929463679248953623455373647373840242806207062706118229963181858351725487028508234688749465665928191384361696940228678092903632294787912469633958603059195777054007435528446704669838188208102758898041712296219767485988352766962372788576706876302997778462181525196261784651149584495027613647636737329262607911110142084640077168486158081369484155716728503927388660109209955221425459843195842804980291383598014565387954556664611486878250795581357626873402466747538416320023156851305070831344699187935907662961255657810712425393423415371803272054293599617263815699647952905370510487231391442994318678938849544663456762434615685944815189765581989364625831454315635389397294049647120081873558670761629048647454906072139007548104747640018059253399097513798151460747655561111897063491120286156012228728950064956268296764316443826871812680913862660406930974415478677927557235457166474941172281782175394118314756245775585898222795826271925154889114180240236567946969084621180734020237002259314998792343844932802564566310786036165922200452313708598037714474935019672384447779274289372012335788059525111381044653337461793098117939723678721735930740505600821704203888796403398126755606018823207449954136624689363735078133262505045850543434872974738357855224786374770993568688580246501884246279781638490651236117010662746413270690261059020492418399670564898241165386515459654279077565282069667322197408274292358614969489634103125172361271596808980618183403674511356228541131716503519235655652628136489851515936087746772923243213264454554502024452468460536279518546559979035495180507958054839082537654485437033265700705678612417246318292302881130448987925384226662112357840034496416678949038844368434925210130858875415292247499342604029839020685921021922672490268215711203505749695606679248228203654741590513428372385547862149140657642039061598319139803561615355780244794453479585778458099231983611445723970660535130850592896543099567077588837348256731848132964291790449103987270590963477186048811578344985371984834060137699230747504886575271230640713208138530054117915960170805496696230346746065588771945213308648317243111671278695544862798983337119043611210369458455746230917241257578010074260519961015408681873952945865353031909868468685028875614849063382373749736799636953799072170081590775380018602345638285879775045620082091826384964096762485645402417384371712063642614120168720400883990599118940053503893383372046833596672762837218957997694065357914737442850058721134297270453350556255987288630024147622610040380765499710417972593824159353934770296601750364082963174990690846468071639337662127305278192850743784603617228131619575184371110139398298690152999654377846127716277434272214467019538828541303150186935462302708726015948702921041494324518408018139877483113215881236482334019819722362421445700805733723694168852321083517034041856293515733744628663582396343854584742206143353044372778223576266871739741527534768884440847443654116152645931689535710606902460129624582584579426408499007245913631759446562881190957039669260233953538213182701740797302767060412513177284837388863735122159019165975159096864798246270473151156140203262263405535167626418798422033958301938610278456389311219951015266436634216026633748908617295886330498530607538288903549791660906597497828055295190469539351889939197230529333363844716189476365684699165809475872920506838404298291856916220341920437821826822624579968637408885001915402028298710848669903055987973317523188561671212471826338221346288879195265459079802265720321686741675983871106168655457057851615357979265371266128198266239482679608287380881201277387079129262065075586901972360409538115771005308654451530342592843900325096537259046560951701621029792382547199394001891840167779674403702065157459564326259775131008111901582534997867898232317493055559830415727724876263009236804952391417053882926443595024733479496915961348207474089178096712712583587875458464865673886802847359278529380786053858247913443629267027084059709272129854765652994546703305125543254564999265434130366611523833224937566875648696695004844544588483827572834848055247659558609525763232766196113825235507888150167862788322275728621507005223768126839885895572402388479861355465818272877836285183772679605076747142861846062763269074608688740861641754775167168165724301182506746482266537813745572365173292917253530243405519775627664809513710473071436701737850772137414151327447663805489780985138446049027918087772105568636125569226683888343372331204832040981840380695069529164854042286867523306631014295623075216628792128474424937118202977655856465372544530925037454749055814958019422092523427363425009636755821211244438512274782014026321244718376117501661861165952526633950192665160506998224736726471101184621507683427862448435976235789809905587971952847278231836542521867479424470633831519191145109405208541526561562671771262916359690971701738136903284193523696536355278824577713625642319060780983898175908875152420418118885014528911656044448425739105031381802269400994842420419849956221248692351700863854417648576104708680291306155552180110087032112259266407713762921259625756744649561293369577072564072270006037615528888887227065905498856219834981415111645420777361543304944844736783345143881692859008080619438320514167190006502052133640486805999419724348578003719895785783544764792712244350494767627328363271031747854923062534528017548032938917173398373459859838320385539268814478520461789561719570918688689126148314482466582562151827155611569946530958522782590031723679805436083051797305686737527988553883508191172414094649647175825742279713632541236814943235214700280592919994105021354061710351357153953137285592350371377377882590240392040876259813454752601155072599174114747587951183586183923890950600345201263261814029205713133838541363294966085763032228186269621534853720751133385922915613778988117371860315705859611934142330344962731903802915141110220225988748561047438746663305467649215285001834635200817276534896936914892072866252459689200616227104568304943821802697744659934442076203401543019440458891675931430283731656505492746678494136887911372228096692350275990624150181392627121053905301953812608201879778117830246969424272265811480769317076854507347358932791174969819786210837124087363816380209677355063242402088471380596721168345979571732822798812178525896094926581180135686666761941230146933418777942291576206049248404964104368879549926235681137488719668554599370213400400911818507113444847389877266131453618722129974011639565076730097173264256364779918328977418268969726648486521049506232664814134097944884369200446373376436664903217357860551442935648014047165126429155207276798854865109954411440447510546069034532852647669159402587914659067018089197569674790405565840058493821923924232087595043182453576536112093057638732267172514456999722007423522537632279794904826013906628712291621775402387325774716654808912617125013508314561778966067177712503107950743099227451937961096386730658697828199941988363379303998376265238693853564808588300539321412945875076577194601876460046157410823699617586185936524039768314245793751503220602625147171178819544603107591879081448170592485875069526654374441725237524917913506868541648966185175954629966044067320725097711783290478983620195846788685508931949917894967344491583297023639656796372073999708829691495503709795848528878909279196494490171127873086827019558366376696428354718671931141381156748749627592155701347074460633872756909865900394469702359064169739947603266598206249967007368689572588924098771421112474520379870494891827166589356515764498732256025796844373750433762643284944622810838406173287081329893123253965369521307140588488705020409470127736844538634129020767593372349596431434898553646526904238761413458230443989113556236551502691247473597897807818787272949238665405924285669430821129382788233885797749713913736443502602221000591806695707077605824902472778906360194459850446877265950220988343976132910040604618858878109959977338169468140074161061579573711403886376220316908125152665717949934587313580640800639332142076175346076599692057032887293208211656076814665111155229688727586785140233209262447745998131798848875027138057506852641371986536353767969553007686890058696452756904982401300101436974249509631751928421497137518360615266731731391347132810522905487942856506377776502544884384257639112176452361352609155799627182571457427197224422798127349758078677720371038648647539198301012555457696401250984476997025824527934418804059331657932671189912714691737902666096114370973113922484228331981826342693218320797330089301362121065590695506536024580161977595123798855407747125487439232189111147278063443493430522958788800481285310932748529113212424655337073125971210288726401809465202992003309947877900041134131016144731987682856010410332650403719069213413215503373518298300694377074859136603604306445943475962790964042710186650851977227721433798039011214460841174156690990148432115694237573199219872782985825403295198813982689820302449638830781842890691786740625980617303325698139216538402829223522370917295885990843532101457320869562386657024756799349965351495275366608125102899000982635942944852794994684329913970627781155441033400720418886207438120958079326007960064947102876855539337080763351563629856874150158637207542352360158442104901208995256104974952315452922658875090390433014468074070171292083127791154326270972845632535764494543575204441033999803919277176362122370262426793410770604476303299394519119589961436283497643028040498391110259128542721404864571884083424650989942752070464100409840808687976263649546010458796496306179326269630886462443864838885563879011947888470510750794072793820576294180459632070140323366312069631843954869265605035591342941327453962875111730214339111552623699236792198450772078568104301947557711490420513814146429136907648044015301272899119921094111924822477380215739503220092712573064229795476364008356711580359707728572320356195700987517245060539132697892988875626980430627928570307233557707127810597022515670385436234272317816767506810746818388571764205064159344269515463737952046189683548285828735701627613223286836869267660898776833635269491314153296503425771279980801791355226254606966921583391045405959338539275676298193300371083195156215054345979828092254676096605291273015281062096600400082059804884036188742407246790532914099908742167332770828222385137204225243016097732854470633078186803495602091201539691774977876340624624201902337804996502532602979440294277733543297572739723215784111432555536827010929534532769945742876014072190550727612330704675352081217115822835246616819588753088812221827493866609954943898714277415278078111875177247557297609306498169556001083320643655529022823308592201646524906225680736206274286271563522692236458315686213176424225135135077429928462569386453568659437507521929531477553236135714334510459922228127765177900276235070572414671456216800452663468752407343530265580106430467785501635482512331858245526922307121338019307862426096127939825886209413068408926330788978218111290016111960216048508654326418795429033347910607620926714052014112230541755119035162681007480356832177064097904384056873880773880836594806282488493851821924412222710893847309184067479029507619412579104399133725467043469281065537363046912916983250229263827793348847651754494418721287940815308387945814252813974787663017463917668453934636544125411722483522055988997085591334803822383804028597790424789449785167611329275650324737325700320226635913703182797241845695013123468176187035744987396036899952636358854280037459252075737554053313814671917718593520365322206270050575938928116414503667496425834535549960567900198603200284198049058873591892752134184375564899613559503533044364107132292145189775796338606445735766498605108555989245578690687269296126153272000055536931704592960296025547519429651493231666047314274492373866538233368533945163699593843551762917084959625249346042308822726124472615927759487586034456461975663569276680645612457184519464083013027341966055889167581249998861563461697534584251152308473883761229505016736361385210762362202614847190568779003900006606558236222011028275663981997201530816961301025668295075271328342848308601448396353525614150064085325246248532899552692070815040024471644699285787167068309045651184576393528426384081684715777934337916897239077342030594970607421481171857731973850759146462007837967546194821163837282999620278078146082327493406592956319206649838527686310635650280739000895355654668688748892381033343605340641316832277696814108838242075152808479047381540848133717762753881213801361323060294231370279633805151506799620442881915741592349844865601421761827523526918645953148450689304589510891194495041368041576883728083043208435552905739966042958450525238259354801577875196786994025483273342330018434226736388781083279690853684327899904087540182700481756357267252248964508214070089075015517028436297828374040335885553827353169010580058686863328965150689745649999112606039671165867268334756073397215806432582118481499900618149028773251222259875382799500491560924458663630708397193425144009185530972485337711055852901066819468838229309826443066671898502569961236432688579971164450210211844469913777928984339558021032478144624448932230377282887162710777115724039104405587779008705858886254368744109339726463113044673128605717393097779918844616706748608779663964912636018906017916835547173600257065297579482933628612286869172727602341428828024660207173092287510920780748858663889597520040237349811460390823597167052318799925511836880900336874943049768681632951200935948163166855100138643435621000698183027793505994337333834748039999593637778620495612935272764764270470398552547938494591020110845607888768808765983124695188637105283239182436020076908549141778188103770824849352145381692388614181161614895992406145070430389497251321225744575944673548007446776176820327838271925807385126918795917194029008244304799684852827693761045882189300835136343234063532304234601139273738810331440725193611987035521324249635568729906389475380105944683145961294550050905534227722528998170147157924953258791586893081959514732712693873155443971069510805902573161186120039026830176696612009409316444696584501581558025919830264999852950534651713343415420411314480060791335989775484615666202794740897000423477282675941568304725963556830277661478791094242459604271625864187139859196310352892639652721697027543754527829262287851351707010696628857596654469821853366101787054488664266671303583715947206732613085762206598798093926996410513803236994753975814640944043560850079960099314755162792135557151860232739278110644921904220671132325493227536927903764125915589012586437026503882727369093349980961780003068723728064486371342329349360016268714642482636159373939743722189132595957350554590346376646570485304266174704360151083581355123956781971022817382215491262661019414231284561990469253112690228941963811425410072607022601070730314604732583614318669526119987905357185397108271921365141359753890418748826218992800573239478524290014184359634028272559716026375033792885234624669879719328193850348050360005829797167855868405735482890402882921616179404711190489239468405666571919724240139295959741425623277158587544035317759715319051196895841120011661547190666794600620361028150620149543071976171848687515309414424780102338047963099227546213434274538304342692347873565531368417105591521149815402873848038221947381920529004029909700332132985616619710971131159138854542751907986116754028156986800333576664595562004563690319822653639503994502625364415129658905410579931576179187851098247785056628054288887026350087333150102225958994681374402694351128458008806588784104615915056149378520095629691228520299745962241838112925111720442498333903092851988781735658661706262611850161777240814017349035090099821382099305221682259522205168953770047685145192734651284421678991827996437941208599755715932539345785952318768078434302868363069772469844402772876078058235784851062994413402956401916732174176798676726448961274825786173653236203990704504086687698880888948443713452019736457187356978275231610163917184438481313907175810623850634383801725838716389138641470967844701460725582592968492996197783487465970441788289118389625124604326285314455647657261657682284548105468469426258368913443187451432990303215972678184309350210936395348644554184357321752538623209912124625719471570631617107207367088358317609776730616892339829935816412620667084157904732116649015149179762890042119616387693803344625228819378871873076924117177286701931029322812199100597998849304423453203845944579014333670104200779797786994116833326656229501558126474563988203479414420649868426697854674543854768212934909206856133341934971751896901054878202247673907098154876422228063276202449617839036061118990532460160791409539962840732327800141179785848433979307638115808495570022385748784516960043302585232637694120537686699156602559653755301270785587631745217103820542677095292217249043058163536626524165098603922531989245751397363780208495917564614510566523556798576629313100131397830183055767028206988749730523762592219166526035340643183381175150091992613104780588397924698732846382287722569225505211059488667112373673254218260057361815623802530869163686929447809497587271836203133912361215172168040453305030892223871018723626942457940087283907506052340466046130979756668174620984616438447068748288820423900169367661436207461276180342158769147144541465786071915018427546502591999747901898171667595973357936887764834733348188588007412547068504497355484576507825554610502803076862633845901096830747431905233112495724291812685001251442053151067547971376782846911490475688140030846826150107430812629367877891535311252982883629081078010537435337673941158484836338501161312407430915084783533766241659064084366001943989935265900899864786403032375250873631632941451699860824259655075174408496538618836849296336530473529421283017908673976821486554355034337473372432282484557755565931633683404307470084001963718752003747121989294759785860570334844006736244077421312639555880754558283292586212016239901094417812643636324246065113261303045287915319439096989810597580399506690374820442626812667734537454971602887402075641325610834672734731107905134317990992683737016854620389089564203441412846466479095595122953349969882681283100399507714373412543394776987902650322027737394371327547718299810098384819774087353719431272034937698439298543111582601858896848496384004569571911498724817543756421519776611669145575919652644641508736910327937685817870042630232308446435374918457096290111511448738721819471650591396387444291008922974840893430921897541392026905649116037356618324188675362797248250232265656194586213081209471100303195566050636075265162766322713597420070433701132065363317247343551775668924018475075074488749045712267183356085647592250009460119500897477228904192945374444089561151257248857648126807318088366109634058257945920102678487422033760743165760191893147645178319929960796467164794093140768789180466045987863299219674500712563253915965819838802558021105568750369382229875935926305421045988557695830271850308090634932351673048255779784139123202869102528537646126519977703235700182703779121590888300951922741104774120392363574540725062395845352058920154321653892228207515774214200350847755697141380039041406834503021220646603353397146125628603145532459780349764481354501073704327037229119905178706503104529088377173291836576720760691173177516352854867269510871653718081955484684120602524791675232148692063711036932003920750700883021369097202974694940918350811855517381770436718862608101623245352344052086334049620128787768060453570274429999234053851367576473870424578719929201202061011679126712454010734421664031493034241620766896651049666009113805544100623925926689828951807764107663973000577715846934998142198242306901124795219526438553764858026122112619721190656526129210573714024880238873661220014216824772043266316438578174975112188901301473039907152045685599429104716828897571184061982260808125831044014770121474560704411280216700689618275526077905789192838874889397322841787185868757953373868815171115430229796776377688154507713769528744520587430347774071594154641049796210372548323960773731919418794540570377225995197925144683522524113144953645620799143724835080252515762326250493631083864854869802846721147848535558015295411935038472145975113591727981990809821308660118259558743048303982887307191535202837187584234185176995568343055511083732745217305189659827975874340081493928763538425438449111390459823596000988045908785451562537189575232790343961899454502230963029166531465717041230346376189868248654684694364341803224665637829162424445344559653446033677905345867858629173131416039326413330472479836203565491367553682283295267725751903788532019541692570673575805895730501889097210076508448306833344116820948355680148984331829522099104494241617816475229986051917478641381834919058690507781159259066330776938229567579037087105625006651719074404143769230634012941632978717455891821337489900974129848968747261092437218873724678491144799206980218391165662260854581704554324486313125056965175427156213696256517132300060926074780271740634739827881720909973274677322687077012627772134657303984879030641868879605368709483921173120657219441889005659683669380097068352716528680830226866072306340388465395757003417736892118481111069173569526592816325225147342626831236000521125038074045125269661142551397759595535541321909149070854524912369802140362421637582378113218517615527138709174074668981595320045818131614652832822095496382739143615131371098296719235564578061121526660910480410710214245142600450656164169048830065347384314590691217652745988906789561258096259937876824854584004394009754863497349130498453074900061864074170836972494977521898405339375733018338558443126677175308761599255289901203382676213977891648988302656180700299260258343674269716344949036638116787562340409017167005930568952143245234258018662423269992557972308807237683037704432454297113473265060297189820092325995431637835830278423861785165982916150300484464854407446433397605394802159456597039096749658664164294047520730163775720790839998731816557257110429794838502585085757309948416343091355967244122554079137096378028900883712267460301328023594425243968744081825838623440035311740499259896347540831784100510013336588713182957532525070502413181787088947665248089591643528188430678260993210451976940044773998946978884344659969484039062856169049240692631834718076561982973735397863682984369994337369370554059812182132053759934607465553523313761448888498281761978993722308721232954244895324234896764224535525364581608095581347499760540640346911472890279555062658063967192298350069193291780476181967977570172668885656434702718009670893258707819094954300924423042394333015409343806476564910410884324612836362209868729854674831360388397290098062769295450493583014053770045059642874919728906517984313644428819067485368296800697371869576243224902878923029821726305251443976327652465562613768933600094706893741851615807204168776256559438117084836848422902390996185896697719108756300130188543429714453411875196523117759732780408591443710244686043601129376238970946369830422477828427614346036993792111058978857641280202314849346823731673992209557068009410218565394808355475715783690046927333724268399909254260654929146317224041155644832143138716278219695062505543003987489155757615723373905873304617766275044785460400929945835440629127190988029978370894692016901954760926181129242081589075623642693845752358076455467313919860592862245991405042706672899366055380794496008631167115785452052655233419320469887522126544728041576567649669797210678215570244754203166312053113190014203399919384296354969268280421878341136760863241210180820825273817305689310737022702124219844553299336603927091145239690548227523273654838966208859843636526938157533901447018104044040040334267667898420283067015735861265684971579111706227504025939128115046522383468693882063848663640950263448696635043822586209227463831251402134791743447376694335053711858560361095419777290809097263659609359720847292249756800280916831817769097891477297396980035531730569351065057792793147946238918256509065892616400562020993837678171454512721079556791824243719598720370593670447487418978617022191219191562461514175143989622163708227598975454027516150962157018721801237258228000312990738378854094609501332582072008639699679272013628390711880661037360691158538749259286373044916441349951077785738686824128651225984496115636765188099539570421165489140003100690717740338780529866891159731219825466853209831358066931632471891099888508194672983909957594607045699405653379682193613067756824989429827201331393313397274317022238742793697088754469309092869935799791824022333479689177295951681062675474351519381159772684718710556652092114039247775374289217897272254316939790008451999408950480321906647588235970792198177953239670512745355652454130538458205853208247476303058751414195437864436728622213432524035727192830078156017260744185185378522370441000823366766947156236916060413689705215973313520931182225320003530303540561131243333164655396017821910841976258078171104243445962703909217035786447905819344135331861629863463139973776867986032077059126193834740217238388183914540505759207774358597488550485619528121395031599726775573436626947783301361241685137924075179290888202203409671567173043814894944281052680742420250534478634170525118145176855707237282380059862130213456379563539138622950115937028169345285449854606097259358460995222006225080653878564559315888638881240192136105503150239213298044695897662737047262741116465334238975163818708261182358630865029823261720482848618453570986292661405178501440503499593272979625864675974289680707147267520747963597678013241411043900384812775680515096515423191800601434766843241646608620791344854280182309401435220499217374592825958652677121569338458171666290463330612689329911182511303880913800370924279601130648267811826231863357980931728523012150569244447768755079358679451665069796438393579573407003047435543606620888529415776106225057444223670829398078309380733860948714356757620304142077792192850225797281928488356515675967622189337615631954061556014613094763452256004219978186307111951929519031614534099686732419851891084611299454385243006422537267293369833099848326271912230749012240236517777211754501401603469119232548651023036567190042423732210715829433747297553402799505498875137436198697094973721992855696466178891163616848638475881907690420144578359663830393685794727071258420622173421048997494667432610731887500427043822389784599398740658981389190853373234034538105313852148702634695452873823529575879553173865741336259674749755498757324668774825470838964912141382701300511716577333657055541490131744930832222255354441772524299733214505247667088230381031825214609946892544531106172438388866521903060664846508714616504185389751439713842340659606719721638707290537101688121855621820757313354896582041455511640939791036734459861854072723950454981566269277867453502501729390110934439455640165571601733745246324031379906663916841071943962782860893062266478361247453142840279751372919597668928935180298471725284115403996076826532197227903038728531120803909414308274818746923727615668859821491463758919500935736871695441324784379985395489764290657753744892312712184046257952476494492438599396015524975797215364293918322066565483019651300315886211950948468279058857945723990391127096229952254856037914541622175386682526879142648684570008593758728230786068869858578435018069806128531853826933632620776401981830667954444800495709111562669358557356522827037149834655553597958927111957260943828218575609377044212047292042842426595453855797050959393474948781775847575670902676431366875184212943018619158593496702253792025283818452021474149939280259295994594094055335843274225673825687154750495004085341650632236730151361246554231441733539009747528429446504201894358024285140169320167253886281309431977767642910769535687877869376221214565581048572299871498343557806950057901375540181945471712738217566839856156707928771555144785337205348537771191432740730924009812847404617061967123788846578527582224268242047196848842998476518387817233817381299686070253720382500425818501081771207724695123842675249744232647925229885929054596466823867064799868270635500758524220727019873238270943495825429744064474143370127475932789803235212903088991880940345001316434540108859774024965197677295620628086051436612943779615260905981536602286168574171555444085937373256878299686640620550801496137163443155581450667236555876734061650923305974000385921138033967690813133034416873639839723295802427637757797562446610469925975699813960538866284720115424048481409482308267578692059734988779214754549023274004827937891977427657765838183889369294429861782760933574675403336916206926432462999589436063430813667787113988938175118114961519893212155921831059646848765922669554305434546903383930097619113183457479952919843356536443913917987157899816412355960384813723720514495489415163424681424389557456328740831461876672544984076306024872495238999830807848462262509259782441950390268037649358017300322964576006780830317885259684390974826223201229871837520030631425102713947746817851958931433631236362169643157425250651099409417588025691655642859336451981916699316524170928479530366014186503556925132255779082025512694798418137440515747857921553435766975992189007233357159755462588846643033683601576248519805617653295651663451495334206688668754248805253994526513200082767226298737311764495508561410550175888841077021162858246543457108904500468471244770182735852120139933288231587010117206065824690937735071009993854294831392394089943826646494022663402124908486024331258856944473911359535710092645166365389506584675373064629107617453273960504262363246171557278085120037937156012278613800304669655108024238382814872848284375133048440076112562855655996923820578506043407139796051579990540236639727484818521482030166024730554578269576581078783609704936412386570474641766987991642739953618547000123910919987809688299110571472878779536207206208584788566382497556617298893587464526372153933382652622469302032827534743557482114716327833151389007598084591200893447400340361632198822210768266881159740128152004751653731077289170093371135284552678379100892249070305656509606600794832505955386417363396538758160214605675245188001004970924844221725775969891740568660007372187225308351241828211855062910167493587560384226711946312520086328671367434651658663429259425299609769659753498850439086849326833066674767075258487012721633926580181897356623457521784314282846490579443567026076696290751265157361848310940732581355166006438678112792990106040479982068067271429782866826868413966018846960945084587414518338353001135924372186544792694296344004343844109005886637145140104527236044608199433659250821549209955470443723044077344815138398029286457290609187721201311742139497794593228112419582949402289702988749297519689441374303012700620505303556088150578589325370439582612027771332570497811581553148757299352552797095828098468801638888865163452990674597717571533909240913361598106202093036964574707553253471648036022519927203013088559922554525390099617700134003474443541675633993032057145817283674698035828455667067175953684374840144432026009117303873125908863231395933526766782934245585075965330994345134060962773678309275098062671966157220003442530272052389748298239856378373739472772012941562624553787037245322259784759183892499500046789389764176998121134399987118675498171832155413876528981117455492232157216805803210610976121627467806653003390185975292955090614020339669149896860888115558744890903625483009947483692728688680007754951462233865566077362286412359735277706939988138165289832533919520275470380886837975727077875855859841818814165269552640384797369262767599548417343466709569148439461746987516734762627341325213562237490814571294063169356155321886917854093195167201093222426261834291867013247383393316632855385873593103348161190011231759715691403272108807277734699618176562356137765016331272169425578081986874470898688091877351680284743593692398397867674228312441517735886211017252670278098826951976541673528042774692631248735818661827161741867758911197981597600089254084872258513740491828633524104633367095880930589494711766190325631061158968013072768713538741542247483262567629663610378933431079207813350376666953068789545055297494459753444907522726795721133859505326112995577397724224313701692701393927450949740563362931926838202370165544731325923809867971424198564802048022269169354450709358771457048164884628388804170072868921163331699324611886751283907851051887055292706039179415236419365676535476955099019064891044961809500393086941175211742050002619101530470017120410585168532291498543070810306451618449760081165356574843358318160369885224921794674403236246756399517804625795783525658291509677244249317631297317061417180239319574832918259703991031219966061718493978965948037860196953985831642971326272376959902299955040321058950677959422839015290629742845063543690715308666381220398358547600600580003362193357554748946352625157104470198576063139648415363731551441568707708284498555238394795376773857849774782080162008052495824631900706822454014000013301824541671829291325320674306219489356213935534568576743946633801859848476222342757243188671031572578419745723225313322760608816953980240492194156779897592999602383153004817066082412136790663988317149323271037855125748121526316735081967278508025815019088879982504299896008529002312505704677421258385590407377157434318257196813144969284458711002169152313431921843687862262270344348243880637715831487340168459088453053330170801995552352736691397023228506253818341630546618564402855445370665392618238910698029645655032052155824745949989653701387946802682239487605276442639012899339309780164019215995072020630377729898904859104048585549650505852557944106974016729152469741394650544954795472734098904517043503519630805737337335477618896647401308305157705771886347400467884144486624496606447083482537651987566476970561213106249959644986960932282026470073870907991102536019837260361281645940113488632127999394743627041440055393887049190114277772804857562177917300782697792884314915231705567257672121058433728022623331799200701155969815775182032600603688344243905015101147770402536251455582232305141898957164740873705968867156092970060959607932578372242999896407062555871336971678641215680998902867467891079937191884657610750146226133095846148625073976957875856969839107016944298619812051198219283301759495513918021412366553247256647827613691972171904891466321965689064648931793878123922758971855554030299595154061979534787041407217277986497954942809661712151494990036279789982858504889475150372558530097502023070912455851151812863580158944678698829875663956379869974547664444144595171224359651902062961980503157880012323063076862374137392574423171042678352729552967989071891085046615088466924274548628472756016023820815043305150445182247722676316157905807717118244231875020197982870372386848571732386912323908923826937188364539404241312457756105590004823985825913410171420170260238777818280706989821940171249854618730918947432398743225521424818944619982899301827648988773965920780072977848978000956456438400489717140909599082751737960160716638177319073336486760274063163761289968299161762650303678800379077946050403907087946198726286499686506650699221004031854697299071898297223634813095544472247359099466595070599660952692166048068617665909227815924305620760108222493633542267530752075204815548633619616646840736658602740978421677296562184095153722202749785122154660735452081763912370722239481462734730245479315205764556545618091635396784140052551756104730871234868061112947292867330818929052331311872100768421364815338102065680828542180502186479802536375208672633249107425784679695648448565922457824981403745269291211704862843966779314998505269640043189270444035257272340453882474208110248572988968609677822564667954123294549681852695593962912757228096776986518614493417246132896213536556753941096389418948204430198795538433749306226020278133893413695833795856819487082780219876880187790837568518058033062976234902363357920940094123160073351324314449866905147763150436037134113708892090292051656717756794798265567575903522898588443625176662576819399856691608745528149331739199900741763616658644632853931696685030649771359174909500301217546029630366982881784720891268151046245533566367304109887019343827717440107657319862427703897934009632306464011311158375902829765827083469022342987418896120574552234155366165873174701441129444844942524897348021547819330990679326018733521965193388615757400916854667370201460941832767784620850027524226588052004216753055135747776644075921674254164941971100949997505718127704771322327090908113423000512016579079648426258333713198281428088320057024147852619860782658250251376032691926202285748070616122786253831866170469572308990564823302400030472405496827313842244371422850662399307915675483584739423435375917960763154926037737526945097716546764713691087052499287615052269726915880593349062803011811245535456675451187350131964172393154082091301086382138597210473438412575397130008245611778865986384071326367286319191216831351970903002342552392905332158880853672569408940804961130572504518371719857310613970131977726628437419700499155071480194801027525930506888309919412917746426241530104329009290017582548063084761239517324507123062300383866988551110756019631085593664078510138972360388921486570239475569137281238525986759295191800166886783595660247746606216319179073304662253512042413512930176090164216302344324282866088544233833211774022682456515490155406875789268923522796546809813699344197499599979000417687328574160162861606277843657108248265479244611486449276974362136868934604685928203489722496814455891399074518278350408647882316113919183130057480159838761414194428758002586298372338393992868028490474058764990792166154691836319652170827114017410366333241954446102042533016995799947007633170082135078555441129104180954978447815668359842636181106615123209254176396338173364867494729468268473038345859484965975906444185624494304178027916313210516356098223547241980636194243268843450274643046098418235604977648019243320914155066834733600040350920691765891175531155979233862084916394296646066765433953878870680326192595016379991131552976876766360158150702750011098232097299237820186003871698040000603411083734929463260066911481236857295026893692576871707727609547264958717913073384787550806266711475647661261084234978471969601766020969691893962266786888310023326533864446207975179882873416192782465682552027992524313439862325817695436939189501608850342258544976115110459052333056915085247270529313437443219479772133735234313793258406206414926389560902722140601843988103483891385868479125321018919543949046612642544969526726583128925091255171316065541109559989661613037553088677210318660379433664745189935548570362527257867890381913487462638078162871808416639786499059547903874992508503315176780897795420048025178213707212299671121862159709571144573360351215213447992592226792619862119660275990689821008102987905828531139245712996601193911260024322206680446912648435930978217485638852199926539977473630210567326968118176390902105789829934368092396531789073436911452278779297415584110845652991524174286828929584673530612921874573935233655009098406358257352877547969166971230081655647727784959923113306396565173550525535984942360940646562407857240115735267192368799884092442720515662556387387202709345615159194250895201755754975717953982164599818936015864281871329827990909474929234920778707509347815173148506913829470771969085380318809867570426349706087058061569449047045877239953384060445069989058796977083906308805949339713969913662218522669592421920296022617386463058927354265833280197489034277755015053167121886666774867896567164683169013297417471771334734288125303079796403554854348839484051040158825455778878594810155711339959994641751977900494340298152622078923673805224895749845548135307163938308776368859440551172453161706289737325274908560459390510420298528448561972370141595921497920795788005567253773185699971943115138454936403256239734593793921331336851512493833313495391740343346347490320216605519566684079855279541075587885331747794980265678650531284414326545712810208109726107834771025988857501550839585506004202712545082943402848022976819011498975438174879615556729048583706958870653203893527999236439672902175960368745904367041940793387163405863874951528537780628661586952604328018069446818914387099180923209418883345529960061236774098092869626003033949525592973823452358345985831314062158649089237099432060032010821854264251439378434873405258764580399676293223438262274811995874566557107370527963384294502375380498628319665430739435188655069992656860400135608089237862361441718098098292593699588915887105829094608282559324593850962764547307765933128040897865549199109382466921266757395754063346607193308913986858087045716734230188077933257365204631545786867325174044638590386206815172286745140886813281349062285005405884761881477518545879452886200474687243693204508818209569233615218254819069835410793727899304840553361318955085996091201646139854539528344700918059542532068114604032351015791913220629937563108235428809549177281391350070805155897283747534128177207590968976046269829964072755793761482388145428914602946276495697364996492890731798402114298879378037290390766220965179747554244906519405898834961144729957909875726845823658379211252179164038199194446812577885465135356164759738089764262098035157446963939611122484671929411628112408567405617772563161205464922151104819122922410970775265053411278169948881680436652240996776268529622929169810764513006171862458957645630633653204099558272384779907004311177317066221593153053856970573876014561638632090011989066433600824853394268488162036217708045922551720470081317605328286834061932240329950927243008022679157065238479592504551759167975395397398630696253551249959863212312481787521928974802830277423386418041714654799806138123019825232271894447899587123812356128602172264942857940365813926930017240219301383974081360385271533364514423144403770058961826289995189800160862596254501879931066591770020304962607174159884112157437918300879021441461099307164220126420865203134743560790574725488272342686284228319323897931168966093825967997165956563209839547631895858629065201605900727878939269213160259810424818340724460598308898652364308667121328608541931430658364183159138148142088744404039136694568075637069091395693904873712177101061048179631527172758669615033621272654021298491942893836129378745693816140697063703392015733889440948955050591380586400598221712860837133064346875161616546650461399242621836714473209201582286709774258270135829602335300374857512725890612095762319703466957859091156162898909718211224431740843520163653890534768358378173960651689468480506160575971382371485658075313469543146974515341887023819292803722939878108212190245353037494557073118783468250478297465834884606092663008003858558782771383364944564386348904979797950910946895553440016705246392550975379898016409124349126794718888768192096018320941340836373692356049174057752461312860232304033958391444474775271381819020873514603646579166217499827787834708191301321350776976823626523879288691929884579196005873401666334015730263698811900086427942357332053979958665888287548287269714341238066366129320475233220819537383889395407194779893906864554691222413905913858414945924428093838165593464780623042672856634790539147725628054940153515948423919541206517422309880149440033700623891700480086183235714668225068185098245519310813857643415005967188324398879065668920915746623994933076793043004216448009209137984493705288932114334578809377081829790303783088996209357635379410869224438004418172888115720468880158930282948524590064355958086475568216313695999699847585808046338051031571232463611981027627163364838321429034655274736219815141705973178880630617225081877266230614667719741242824083975818527803757994796914944609509987083132401137548101332395441268227291468352302586078965145734634802657146730962974502141764186654614922537929799903201446292077640932591474407568249399771545390604281843861015864644007992725452665269120617968396326777442359030344677103645465787517809089181395284118247759710505178747841517416468281370755077680856758537000567747787055482866044684838461492645825854104236380852133256966921536013956279526567908349429949876789384779678164179093368142139824727494231068166046545732195625030668194091026341902245684392138267746590520666262117774803746200453198369040149211516396511787181594503516186142375468263998261457901936122419192164968485807358919908579300815714775961503449277711913379404699287642615589498174681440883517470973383376873682980157812745647235463454803825075015172942044706466987595722491953541774812177422152882370326020665392787104580522938363743096822058131820023499164724974675577582082103891100331371940110055973671032483213230671854370847302088994951200999953086328665504358388368351695782314120669098364220706107809283049199838645687970009641768900619313134157653592422908698714241507024917597424684789478453092849120589158028164431612590284345650084224445919012151881832921757582640893423981823155370225302877296767339216116164924703204563029362981488370250159617709363605998671419701210421387763020728126622106411145708700753927660486053753805642766071920343080697205895903296910626006700358638937494304535122142023105104879655891562147537119504316917174730809770630760034469706547031199602087735324672691020911734760206754628909469373746730617199041282132482988635312764720679204921181849101730020113033521708098463203945414772433921906526793341776017699969397604073660989104025446286285466744656931031158644978247527609134350334862187502811690914941830327731982481220022785873885962952643193902266972669491437413379474549324168003567959468100767005218295418676410726612988030705465989700903037816119004304689936826544292305701445491128607015406826593349444613150851266918087416379519153818964855235227582414017886740271809150035431548356030173338705804108412142375710169082377917467330108887088266336084343182374709092846759086005802579459137670268175909757129367559709451732050697530937842125064247742448110953769382605854665071879284023094977004443544093259472348848372243152664392386787761274234381940125065149135041575538614824053613471267978326891197783662406239989636641719370211007042379253602795579166904057739777734132076988759342097587599014429573035245999968411221955389107025854756859580177943510106987297959940059738698920859925096221125189355594854804927717673372234649967720286494224260883144577886957317140978695978654932660525920361971744517884892060535016404477941932502033575473116082629131430260421764421448020046211729314183175406401718638316467696373317627003302214615350956537134197226803149696709979260007986883537324524692408424619072400362252768883497139863295962057428522094407549656703967367144224631049164418814376716377987968676769289470436236479103186870667607429308108117301676475374221249037424006349012127359629742389434201938636722635219596374691251717375027040767699779835855571162112783671217924280684108879460942360452132620575136660207891800895322363989507795398099317373297341368695457838765863530648673597171125056540586652057013632300991856211498517783330394008337965976173131651618268348041244036079248697170943347893163328899442084306865601539776095103092949974959782129631686349089005812501696540457229380875010177756490582960639888679178166090860858537076945555294766920459169969899391170305184332805334007134096691763756438467235338049480138238164301717768010711480514019838943812238710842689984082493949939264203174326477998713541887176668990281691048342227759175397957141640210828290620077406421775428122294986095993068245635212349139950732647709700032143308617477131671464326049861870410220371987529428499666691706092441056265657357065268440655643543795085545424497444153135765710124007127226357573285780604949205753831250494425317556086016884964738876337224633624524797884394330728899555578942208145485736263244101633187661358133968430316555784216687135673398682597607797088971016502097054111722016796987565325023712892348815985664768300040368901368754235477847936799527657151409300388190930968222478412913565792352388280550119928625923061973811793863182674922298526569501948907295185769350386263469306755648344017314645985336857571706654195481130680849185745205005305448944180185149817174329347961373375314556374286297950415317794664591048682211117634679812631096219213468703143320688106563478878488446952329398686877059276505205384961920865378033849962877579913768323665632844378655982065636663396550233338630855928837326296938875037958582459049773727578733323180140588780635353260808656705284442803285064513548741547041318086980707078028448397037451850812336097137009325293901866100129512706909684228896490597420960542369701344153549652610023312303417877939227786258756291645585503925508530980859659165290565596311773901804807357541424945512286209369637012815861158294139257697049991727950120324044286061766011718343168777509853058297564097339397435724107004314738699523896763429771754851154061676826103873415019517731657916153615959650856459158162926390230837517633033803952413355329587257138941634006869407167292081442856411098529825059189075088532111922914602757686951307263889688560251045767071432960995974236416115231795763655734759613262051406474323222783167750035299183611010572279520177826102507631561877851937254244295572337226690947815980375363376523947141889695033000020475682949000610694316369644039570129512081018707367434699366542212040852227653068384903209055826058131987010014606462030101581088548895060545482380278934465238476374580231696145265670522611155862772921312141871215513301799998540777447660381181620907077499247668881333835974948091636891703021326376869980275761297042565139686401359030352256197397172764009540297312909033867663401147412217667207309373801958707934082932197608424341044396321230389846034097560735170026425902714543478672867105324856334131779759260271218155186357704175070934001392267889803108118070603131750323623206776636428878358975358174784451390465301214765197127580778860417399038409264690462274244588918077350018092500296807514104853070076793309799537518866120855593463136602162867791737850617888689874453874448072464203484568345747460973032983167374399457765556521518416218508937407287596173298113696477896251454945372942261879247870141582752228642844962436975161516558787289906338880780988756650852435260635483393492264194876868632991493375668443921147950035835953935047399147784104114106277821318607391873736749987193110957956976415701264609911703970024219316674421964944235964656488169478008010670656290662682963007998839452806084699064971090800192693396482939806412703441913967743087110151263385410716962637932437297200503290130105227997061623683543347058394869786802650638863831648126756486106819487131421078049488181693021088347971478961114410403935236959125961847022494230337390519203987575087133226589493769971383837170340560465770942675769816206793252866564722855985080714741416510901218023596847575664862394832255083151834767419018066791960035010183365256979838877342616927907453497148942650655411087346734312724395750764518311183277725588171278518379870243237995243610628825715187498188038594426031618169051811802932468055912439478532177383945121946435432986021869985298774222615179980159066047377431088018380461562092354302802664752697928577861875364549478894820734005396505762606952000435094999856185221893432347489341026477348686119892646456528738212260753560105318056073843051559072035166454514079001097347217229872204866649251779176059313221465470880482619181860833830977681270667328336438178928501889154720462230011314825647626127220283865812991291610354112982158143994860284015353744013104849300368875473474759453839238187547853299524701781565569222175997576302589185402172940956837180324204907865373885654706243016856292217694195269747651226453614311206724541315102554474606617351581019697926626924050689199945289724399807030532872606585135482366073037914759921822521536036361915469260947517528175583813926134155354493212522549394101579016208925892051392753342447098869795385285077258025172120492460636876628574088963941961998145721833634399335229343635097673141441128834130798110218255111552940087235009586092598333476037509109515166556088866657772474145044147699656588329456006921912205214828122312684269030849852947395342180765211369508396415100942556433549821199609383908722984749301950209617975130702282926362900680957778302292883123904574766710533243973037708257250785225290451535738778601164507873719375390012553015490314178415348018960151618168533367747948150626224913130692260863966021903258250010075892854709482920901017060551158680272135650888627781802223393810963703132901897571948251080263100517145135127441128447812662048964638633038421262603947136279222355291931277937726940755853401504793581582426083350048164463801152964715730581054724311488001198239707183789744677467047487730398964471667612254741183060132880395965872886286273842163927120265294527498364598155528018431444346629164899258748711201312488512314760987662694167870440753793946878910815711727736205304089848935270606192311836682887713275155795436715909109480107662644883336449745871014168237286019247294294277622996717325007193634031048880829851028971751802586725331180062011002299523296200824951417458085650495288081716179031607222975396967068664843384647821558392009591960862013139455937352993033269588676855600013707478357187902603935344698916030438693164008356852974923102028029253190537581326995728539718989233817475849155378050508605247917747253385208578979207791740746252419264100086380826642289556404309132508886286947164271683604108684906633348800376021723436861887480231212982274141025362650732464553945139631781743925070496252687535902559470304810603606763906204554214839651090923258905822690166160257231201545530613147757942913930510354385683895485944450785460174731956746007964001381481551377477902968778593394686852310416414743201308243924123789376210774238609808037548501608189405822924723615919183737244744197693339782216647283662620485787270044932712142725037626179383666914235151788240628920746660000051430371673476694695244889052947433881934088263641380243709741313381881792231718229925639946568728886241106385613787446601381176209227426566632759020987491759994342364782600970664257794728239934325550722634207959748488569815426337455813610378078707648505446487538397919469262861617904161528566954106910318643621917316752231495689472034767870169991403543842888493325907682061791972622909190357911429693782452685663675644111780867209095617178509933478755237820642280424863864586166287688268574632737010465575763646725588826341333954731029775553247637410561122806902603136096717258711319326031674948233545394455677482902146224109126952518733288686434633995568555806914693874222950650764575616476703616013736672372954470131604837436777725375172516931938968871534111920233705554856890549897008985978677761524969625493914277348162398001510553673858769155439606485051961422035122291442208198790644307760856582257736499588378141870399613848831004123780213345124181571995497950491264559614044555976998182674137158861914252761979379466085546438034059994886638023867822111382015590717448506081712689049869388179880719420422319450604749250654210662082417449589819418063106961513100778792231093420682922279980107347211278534915898484700368645997763817224303367464609679310842342926639127508017078864492226417358589592997526258347303490960866941062539285658319457833701754032291274135154606997843831489273798993786991348289238238550117323668291131431787969720552545673397933875239357377215340867539111591402898039641071941341646319280911754890324311374624666187873743981434395098727850888284997923034994752708684147913765672231892238890191094683248940705191133776797635571847913366100220666885795356624108288774934658057016987634554970469107391708427599619425955330198568597384801003747846015454882283840032880804241287176187077905345588685566058777193993123029810664028701969067709804988757200372505428942022622240501597625219721723832141610482534181354122145242833109340558656005911552224279755399815609470629488479013156292188808803053720524205250343922788488943478871727242369879088329166015056272165327814150632058932974851950239528042339224591315427106993053655436629589800341357137614504895087546443527086272391908467892520899729034319243699870446874916295803195006418547410329578833002316554523648834921347526943599271317329911101681369381667064278389591425023478840042885834446767663730067320364532138900116520819595208998145404884137102942030514007702902567175360827868197041616054407756323576910732491464266707161844291760634679992057281024352142749359905231237505014308080585431992805013237080884019340428128975496556339271218571588223793797570775538206397989341665590216537589501038779986499573935849928272341717075849153612809668215340753509444495756708314152787428311958731218360439728338522378835998662925054162484435578351418114657090255486096717305004710486714818899294204721875655732915240901551287631322168166563946848758834390640357561719066605525284642302801727946949145808594324350278325904815489024085321305233344712502139065215777158920248366816879347853857548493380514591811585529307410923063491158773612935701715057936680171828581767832056414040456796380079879872002079691896395639905284197811514879932393022185800194347301156137402191462652546619031848838801493840435694874285813011107236589970826482834460619954849244941883254109041278964327072891432610736239855538299388244078980822104965250806520793737458993996800637113894964878988086285725187879627871567413249291840329930307469144501576586894832125509604409750908285999420829747534835017247341699397740656991850735041673126746818187413490807904111775162379384208987489960108742396789798594360901730334655994409362439125343829534240365497504057989130910008662937011930891654473912617960155000243293106104287265239970460396908557814850410122538756737294449601600245223041604880182860238611765323413456285120296859034021437214297795630215086337227665543839529417723777403004371688106848279923650726515382833232738474173516983503188565515265805426795355399067697397935394924792484812483922665711105681308401092751833824211010182136063822627571901239218722683893873392787447359228890010587158891782806062260289938214779114354263320644981751338935523518086337458411023495078232731138025876983254332154172856553155936704078011155239977812411983537118067174822928549020419820335342130770442694100816232799312904939684137153544147006986995415577047417052277389385265306017387867688593379630881535246543371431956716163375653265295168062795554221126767039013884975676035161953333382435912414555870495686293769506615661999373153469169512081807938577563076288792653906763785734645142811234609223541815782447871884726374346010708990973291177201104183167208347990170648049444464982397595997641843629344189914446632055770968736999722782088857707907951316994384071955964486398456172901105295691330732150949132122839605047891275668378764859862550564525452039746614281050975765644154707132094468434834183246276374624665724343755275134594420781672868319308399017449152694503398744725952770341152203232019612462719644505474658218255891215542776546381224265266344037985662461831725773380058965132073016212736395999838136135637740107195248663677949812994403829987178799863571233406921555563768942245415496420278579109672988580398405445836368472842488984588547888008391638257913678299839657422160112091091587833798596133819376961542580810048723963616318856799685512677156817707865372303609896326212844110590643466936406334108465242458868982838214537638617513348678488032178306724393782536427685467744209290529488878203694894984087377313860113723422988853221858525380978913741826354127996538946305943610782277689678772814897519956461023781858683845443848787985990450461432014876897742557448519174969081621990492493550632172787511015096562549478807554631199844322060144825973224074142093569277394862196717943571709586594836895637162965203152310843323004385405526923263940525462243919348845595780400956524303104546104251068358834473600185906718218705363352433988320412641526704205770470249999555100816009130198875261974808814709970518696916725794188617090134269130903673951022627381140811813151145543341969634314874051469788295355327060808588911852011781741520261015739352113020298398531372030767840423598362985774337528475318207607074411885373805203069409894498936573608356535630503471952641621346259221130780186392606893170508750468738560835158768928458277261756966620664682451112724839145861197192044370445378066027825551415424880792208413302170578656982930011720261809599031332045015945351123301899165432773595237836314978999798996718601668145445142056485751224166716464069062766212870627224602068905429658066880163220224028904740120873455131929084278219314747395719141484958209184671046332229817232114121212463387071938540745666592002559036914370228321054432569904133301262853028707378747795028911373625934902787745537081110035114230562071960933608821693828358908610279560098172816571975028239534730154546554511760283523243884103151230295893624414979020092616271132345940581850734429072226036650033604979169927289429240761943396695838342203856029748503544214299590730020081728329600112878843653785868259356861367396483146609985938233381435201792124817696230557189609679393261356959567197487051656048279989924737850738717484488994214532277787554842112474513704666702187643694988207875023228408164719821759475981441894968685611143290047090923859229591195288705100966742223908797855100476703806324549901464769835715443345796961151013486060676903439410012775902124557928498789526446515693465914634901768695383222904430603933416796302809726922897336339894068019521446829544360324825432870344337490135506395384950605026840050914586599412156137110441945704644388209192868613542726008517028317170173975061336023665590766566181293885555830625353481692526136938536980591728629302508686687961093946042959306031805692257260094667795368690309235867618041352931472083484645596241618774804145909587274086456777041158718149970776217777233832238585722757719967650666089249294144600658680429428527450712029050550774142879686279872863711370489192039320280673559363472138982161354578401869372834245205763954714261257425861624418792243590172512717648050127890186823639567133814563914462080946894461693045800205361190339350639041884278178046761194308551210325768627407500043116042784588432950295689749672041597787841540914448465177487185882202122341814008813524059907127033302599041295025275428721950328624472671103434147130594803200061628392214626561815691393600911975953638859903765515798180081248183102913840375316258080551110754798256525791311178690019822517199276080951587479839727957956466588134113853029698019059243118727669638831851503237531788006810517947885312623101947502728776719318258671432647255968778647383889365309531685872884658945967004044397703128992118978120044036685895601094327362604275524283393636028008722937593382498427279140952338125317795406768125162361571044476748040634719001011397846500221688667721840098366492968517762053266768210676833526669127262082492274449968220976104757454634706830538310501350103361963439093181328110924927859089887338507336251728653610135341856946028348834872698925282877268640439255596800120240512153218492413388682327848863437088766474833884145545347314791152347111341138978396822963480677447853829119061617315380246289951199985406633195913903649212995821726185364458347690590367759948615988824221198823406135502499802091487687917290894860617083013500349252690483349277318952744072539066844178341575026836664380235350563647347423338327696126657582121354944509591674885929467291392628678033277999882124459703155616202689656871098272230691386973946277640028856812869377260626980702585711842577519415674294782008026669304734144745581070696325683696426527821087061347892899150539519725589483796347711983941751360729317485857765953763290196727626768722736012738849338375886650125106425691024198383582899229119082514413191162909723463768670429991226352887723150834857071017030251872884730221573942499440238112649437598026838379073694359003231081504781342799929151153699890638464797937075624478007777039813839109369980175606806630080084874778696276658608716563641153047159018380504437256382351265514525709925966933131009738776998444446204316845929581677188308915604559072309971194635897117563687754973985547586837133590090172204582712273789411064296003998094802497628469896834159216832013524412690740831666560030421424258306438180509476035577431943984580206435081377286657077832122941270713411388206036007198306896629473829547870909937602447764397264361966589233311881095541403421152330269452301365904077452851605598430394470565000147067915268643660096009927296283121443874589361232132433488576938007706149866103538832217450776001622953220725181453978231761031643792224204067341651909342642780999361491941740428692039798340771475096345053562517980879958901864397902595630558630723136110382440889767627254001310738252937601104443281261291037946065045209929674284194298103025899390810287998945405940111984931981568750233522322724199266754260796870930480620084269284650454590999598981268675678773603917502865173277551439068110378072715428345459806083472359604848685400719787919262243212764060896804412593213360039528600908595115056597744349823756665396436622815058061575512324974428450035037956361025052732421411634996606289941838731417213488773619871808274524575161323835407606311703483192966588347757764862945063508983057527925544443019714009017986163007516470189215331680380883196190360311847359751403594813887489903461048963896784911013719443050178004651826717662843736019399340608289266072034051114905423311652422558003556002902604012653668949304462589981705794228354508049289808774911701049455881765684713868850036026534894679291866298136303318252574934434888643557727963111502329263869716154095407077407914797994659696663907022495194698989975825639969997768430855753467607393652892407476475066315332018050352451452919786369340984565575223750363018049642697507631910544937436476362327119808899902421816998767989447070670485344560205191525427863604226130025709345032381150959179847615728122116068531893204565292073384288257014259120804473247088025891503854076614065376653822347537132396329342618691222727863687831136244818101986816210659306212848615833012213224205262125425267525066320123063439765861790704534666700232698296688272992653331877024638450052014183458713097514071705191144945344614028239318567158569372831452935054416112958011264755675918299941511057369008505166168502073789491325080793123847004167128823127138112458171485609696412086737281621090932451941462309006048981120116388558167038201412736340631333697971706540389817245339292345944816802098903506636055667423049703408435275944101849968949860427263522992543675744770911244210162578261494712895489922228469145254436179189740233078093258906864629210927824135176839649676809562689437447468536346033707786587491065678100654764880627242478210806899734743154297808988536755531454717412079427750452267644999140243285439108272349452781115221536241421743693617180080753369043954714274793320096288493318964997900210743203983875805969853000533399672191639055799533748789321323783048038251520570410336030135282125961798937987463174757941491504104730021347257095092857310246655870422740661520198557907629335211824910514374623493728270631392854041503834279690503008718255747323703986295141416236900545090545397725871284993354112321394531129868816496611937756069242291176366253580757458105893298696190430833975838639840535180521414501238399974138939859007520120264148012206429153374848884962620999639418088239523151232646167392843706928593477214863463003747432845246253525691225441440387823356291669462268539669954023611327952983744209195774625458367060532237758741775854143587966373632530753119852007475535993521549741744559853503614207061823695881502313968876898143333566913113342543875967354674472195880289573363369711927873696486963215523178179532827020400623027532000935296594077803984548899984548704724810852676940405120944243594331835198570006980356088081692417418232722481471711555032281180087799416444526537562367378681093128906494466998038363075960348585640839215827755078581145824383784765889347002994854523324265002474417097460152349496287546749491886646592222743450557514846420823026732202092373587109847652061510658058224215264111599550227652559049282471118547852340993107369569294943622148402656010645837525895437556761352128695105024592592097348063439272127842009514619129402836328779194201464004577534171702298544651735624293948523123442552562183176613463436978008280729882272774473328580171010614338356488896427493317689305749440546945360250782990067628083367580661557411878479824342823389679075596959836167876973420803195237589667014750153283064859706604885662644798749908403916184542220242819072664582144835718398582544416437083648692053690266538827632611659822661424257381469310871171133487121076918886905071858065204553578597435787404184032365241008236377493607626695613174551794151577041968813831266608216369284732678610333514666494858571490410126556142898594255209095684332742635067050697106955967632055360612627476882297951502272734362487448262951760593914756412016919003071083007069820480940912071260338999960995042825858718727243474593822326197696896830436549521610520519857901910451298837586838025703308715031326607614759992495648307073256905161401820155594966033105231136154739523159163623697224126965425489309574128358086996246315748497104975490788238836511430445773472785984563997121832106401233958538880356826462992873825103925702677263624074613983329940321230998645054828214688768640613617677830607171212129183701377988742130445706883801148988358550969667749071923542041182568013752379444425316799641373675690788381966500756440639569599482535498836739347187883780036540669834120000651038701047318072577240250095708533663632928377760076969441788447083549183717819527960913977846091034696145795334253987090804026281165525172052817977875357653293737267459490011311679755499923385964507417881918489733759311967564557938403930524691795833140740063270407877214786214249688869317914294231187053117680003124528670042307076239245705418774115829838606069835573509777739950687099616168274565729915413721264917306477606589170493594160318718366763815690803232041924364064876700017003943736264894880515343727333197404415047200182865544244956697266933709456382185520114133986248329867382462397996615241820217679224661932804727238452966192669970887903977102058469896879155291549810677956955891167738280782655572716166474471963890856589219506117348189522899939204395684207105886840278039979341569801615277131868287915966709554592302313437669715904651197980710097936253963385193943962141641827961942481863414362775875604356914459559851034284650087989473807216212144627643234146434869309870954166323958267730672455841666913025123471586834370223683822108962909850327460043671027635370279534229009934771015862254256474724614701261777344670702559728594427347939940262116593062103626824106155059156554662122600186592453804243508152819210029406611870450006453857179687403338964807155147407150489310641036906828335205740102696818488783791653000539314478889456351778869705782588514976622167375693964554784726475387174436008890445903276886760512983918976730865709531783779827794667912644473514459633611620634302942617661866894276607670111514693520103090271075808933575322836209624547886166389665677830814275771888427883407206940675970834782799543423014525775957306000040359192078408273823517040207732083039089735090701560350953958495708536564727168238323756216393728822535253114039418559558089450698920397373336616196736349897755876619970215217578567571551762158749330218580078126513555925441416155807725757570781346655142444194491716843387643541844573277759700150154394392020181405828420198299974609914011316461538970663579482572881784546094980251946040716908208049920938074561267066473700295858344686084966637823637702800598859755685567573414001726993105920348467270181333325261267002115398746725422989797657023189230061302874250103060256583228097147944028174605589122654358830883090589984697784163458659595151004371966658485729624897404650673861607310030241576626127323777473305224082463072823573389008740677014887931839912207221982727475291473290535646794133824691410730812344635779603448714530152845413871046751908356394352984797022353165008626772693112696163756609822865801143249346337725684495272490919330041326174649128318027771462676109000566216727435056529376121673675187598620415774755076951622239828731695056445925054331058315695004609630767875846986211403248119991709216635701733049502679217600677802571200951946785675776340150926503471719530976114146599096335490261952372286659241348428481308077514142518628121799500261320198414982130907310420566534303949562594380292814307007577083144572675265324626925858639682365773146694102888263246414159929248365112550031604192032260466118166622278529242475474856618587276704062380965914958471046851775460880196971807302349636403469882153691154408636335568475303589342746316726168443445183091361811333889063701451104385048761073922970704783026731187197343212753404476771776737477222393406386473379612318415640123832915226281716870317581364601761900084897771000060394397122079252593671640377356233181607126279674068137302142925630517686656289481246603134855459606438519605445114266606201149372678925584519441265907978813466417596956247285814509847159423591565380281466729898616823370049944471381006904060486118938412799902564237088262098751398436406864165180010458018665926813542183338327770710810534110206141750757078482831840477817547322162151469507747640833415332928121573099233188787776329171265268741758581754012718395056947180241704657896714208353406186522604789153171939495353204755345235679431270960190130781615719075541549393558373587106740677907590439571794590030257682833423781806332457805068544313407768449196419669125003305818559999004224604061317771952542078150419603332624499480172466072440126540642018027289302719434037469676767407318423104711860830779995211011290562303363941104949446693808639032934298165876114343601494131454905264242502402984879846176529172443422848108018856210788077275668839484002475728186308842392713751495490968848479083264937840523543763193637041323897784022964294146847056336040333406599509025040807345502262383082687610536290312213844900609469087321467376303757899492919505726730520136446452923959941664078993276498996725218789828630180794344918033301042966671253206782055141187830926745420086257304746286713182322482659396421170476223782324216905102423001734257030618468608474319808944170943264867952166834879268611829539165664687695655785139403854172941208834773381472278932738719875374710652253477505264257148523372433510881122255791949118009433937110748271179632878605756422659017995915356937747493789925855492920704656361046296193188929563034811549126988282667458241775450052758445331895883661607891155402113205284139105310038277631613916511359203849947830048127782062851610642743364577990982356765395066240955323985729492157133724921116067312564046460164563309538707160135314466053954544137470374431237305005067117387230270935859043111386491814170209918893178608151393362007385867183571108655999029078434355160498843105539340963315014447793989361680739937780781294591822608959141302683355508898664134816567684521990365301003660733484386270725100497295470567816303954051354877614679521062974716745836326798415202184800395205230760231062925197600790150294504630456667052120122491717382436976577915037612765035397555446500098923601435514536087747400869798231150581461794875546552947180757523133655015579923949050250812011169503462962643749079837652197301166297141994915325415435845452553961405520984912434176965178503207779789246932988928700090182589378560155714346197480037606795431783120699843760485840817180908833711082571386285861517756224974882589759780822735959157577631781715195168963550326562820102551043215418324133879625045737075117818099589891068726578691798056730029868988080411037258444186475428312416813180455011041667318933025118457634371472705951497697674781917090689629968224586726508986643217804597789756931289571028965480673585997463786886780334118381230381563302501749558038500134754875433397330549371320453073532633103212939844881308654154019439777986177783912419472916977266192936317368454486142578412989554020452109322023058844247929301604813689802873727065765166949669739715779867403106539953269324276168409125917353625342554894540709586483900271960091285954718315548462348073577117834305209018918442348407485433155738642169416343578525902287750047739714117301389929613547898090189993780024195418965703241282486647930757851316578033389893910881338530477944686335923055498347162554403614655428202199180461152193893419859066110180992448161428458935107847098631760579834307317882354614678198834037877785867726715475748746613728687035702313536869372016867291007178138720516947255050636560302861247749166840825653228599724319485741179064544528309279742252684336211021651129867562671898195862908112937493685736361030138521284948305961941676451179270264842519058733851888493358399036787626937603633798729760171130406191801509799434449743761516915191772072674067903558514415507995773906764145149759942106818910600842548449090203223408794494030058390527757505227747616447337697882894161073831497353236758873673179579536806997358034498405234505321122263003901145909598731927134073816225853132375412278509528325513633696443672323357661250336217418966744564757742261945059823810493197401687855404426826663017065447451148872918699649801703816265357972750599780367353111695712412973142860832509720256444112591916750822979586042736761558633781027027872206838190038140158873273236046865662761996521406539211855844447337803695931839628811166152815233141186118250240720213160440870687235515407184709538665411426792576345012905355333310652443723686732669012832226200750535457298519159510444993066645325625120266759323100035328452340418294698860569705653828725711810896728614083998831096561126701284767036596872083706447218634371032158597413673231667390954781589430632344837999943073332606682057097309375847128700280029179082542197970541517089420695608237578361063377356617695432363415474381789770328089292947395768717362853194137812595209398924668274989104796957261424069884309521235575455389892493872154583121041809069398127391882251528470962783692058215957894461641593965541508289868056734679922892142030509705964231132421210804811640736162766242656081737570360154284950961570162337679257686176511019922992550032406947138037622231335931293757326131749627354017721327854836156920872134856136284242703431146397312888510206547262030261509160674963509341267615609853808937635160019753130897181967127395460680943049742613300170313600284458944409599349983459225252736471303221023230407240577401692206206495381603947076024340664246736895756954502947493525570286976612680599733410549245567496783559745716103753777713769012900904993342012513006930216218824581601525689041224451977588365263153020792517686528821626820407521005820867168804442183758943748558607551775344263143600876966026053335011045570785571254631114499664665721742398512877857916225865062736204163179953989253155110702466682964253530530049771080084798807829582901099071323899294993420926519429493941591816817531104649528830265710509368608026274658677335258387136769833044043552000489619645526498795628183890923390943284433327036796187352705669007560157768551017567440839064057085507617881026684761208993594925082113270858827448552674218349851371462467953077799846240706470878691411058900202121355041462262137917410246885105393706129889286148333415335210457391689636292152872475550733122547743113560666327094469518211396965294632753582043231379979870982987816899044381077305161714385474945717073343463030344433927871472898418826079898446190678523198741648357172673585188737177750026037580297866645096065458462171779362952683919432292698657991988358163073663067329327052923611254227744492935778504882158198088434359893221352890047230913694450591411726803682153399852386883967564416172638954708352431547386925788161504310927800394514978572612898964514940996543364568411620139477736642218043334474103349141292872573547367764222097321879977046069405638943764195746148153164930901987237869999762881397842592158003168478545576992433506742510542233688157215844240456503942117718056776433906150668939754346162811721741847079544043945993810131119952531898230786848716836563984616762939529222206665336459104243332158196161980540460058487390032968199918653745312314721981265499392263192923466517285550126018052046290560552171807452879348486516013848364825538123622765071007583427134711469457345206532606447442092927672550264739139511683447773486117143451007878439544985892410241322249874972664365334632113403578022672140848658062997791750046380128689647929975396584250827606281591867007816726524992014870769672599758337274725072642870322489306846965779378867878336379757469409014791288287807284247748174008689973286730583237191044162891724115767923726380526835536589141781494003567698333276150097060350413562071455589032010194546496437146915579866838899772414626193722977125337418746849150072124768545954738211697111105183988126011506835861967441991319305951345612130570550177657224275578139207084026171468155592673878415975338131305038386720565999343751948375903327513859035260229841938004288984789052056597428868210487313458839901431937922220879817272604554421862286129655969971906285693477031677105322158380465190566687107502291391801364025787498938822179832020022182350508092206296956493973909773138333142012004984874792269363266185141623012540624372228207367429903977630937923714376643365512669769154378747633862762780547865854444314060815943460529361908051269549691865482826720671513707352699101453072309534454164951621092294164886585204136664321165619495433945213910848655034794976917848980868259139765823774515731718432993275805025435680060868143475381309121872633757363034601027421282512783551256730373119649282401953147775341800676960763520963408569223472180752538391156296589314821179972891389714269249338848720691170978530630559668622768637776766480864698997398794697019388077335666070344699915582936959207027172308025299724077573780699770843215106053469434450662742013466459957979411490113524722430117113725815362774726028153030170696329774592678664117632617021984892270697775976182150072789997798177874811804794868659051954364525690261567670818735254199790277515154336831626645640338667305354322594741373148840813772504421094935606926584838462739800848017136381191763570606006820227957908918061327981297430193044948878379070609905732921541860328864093282278772061694899205322237755787009241942494446087459860627654874674161004529017977894357814747111927441001406292878421967374096853133679077407975027714109674743425415327376247014000587347533439129373645721983381987881214350438805835613749135764850049862846002773113062855389911226214248148576477116086533158264304021633028645236491280179862854176065893593862426153668977893332209872720956551034288067944321976147487422249717912826562303749573257141792806070477859149096711437829396435970020435957671846309486008723761617067460802982188886918393990083975454245585865746340111787165017051537102505922999845778405139004023958150820206198633975563819697484673565204982134175704803985244894431985630247171363675441457569681224858586072348257503307501025151009312851464181322929660478246955118457391149191789741670513440889142524137851939982350266596962758904275805903645470779469284802740692298197561215221398591198697585660833166948463752101922430863500555217925113648817408823159410836354402490615130552774508307598909626617030244835657679090288916527102223508024448440222816908443516028849479330044107026305611200101609593888365738552811948550680402390058419654429533913662609945038374377861049204982484332415332650812135764630051773201704406693130772748003461694886895880752765308538962005346911485085741668987899507473825097060564905479760745430471523627081425200430252724088830428383317363540580339410713781453031228412220449550855189847343856590953335629755407208885796691460060783672612073572713808470392169500251986982492557086765955081567281105528052247306490783753870265510970774155673145831306280635067579862118278316777752248645739789935677694479490391548701576724824621172620371479675190482840727492991798455928388681674629761552236249282073033661916185709763574487091385510411242675061744653637991762651901537899486431378940422079816926739848891827684516535834478073914708133754854062068807829239163164010540358379644587200475203388630251380638221360280320684015369878281081321924984589246600725657786169928554523128060666338472372834539811047428191874525598451470081504924457723789639977455802620451834014838005451313715180571084442639559443325144287478104007400302726865211385231633759886816271270101455080954987473230123163973728083999367965139982961782641284813264787972122545166068937716592558848851344844645936459742942548360322400381692050653553703265008262022779869130335851898539474114582572579036140072713161236901242267797905188637478816729111622294830233989446986941223173412614768406181957134019927272057708922432498026360472353435713493599298544569658755090304911157007070077327006911111005455868520371559904570790943343660440336845506232893078397703615810167780965101161652512491664250818658882084851195379060699101666633877479415736301194856862825610146966192916691892027333257263081172936874574955727020683244778265943276865314449023881027668180141938563807160258866499192538812276919500130399654413755090121825053525982465582232048032059369752274751331805045103277146240246762358372531985803858416243288317090333815700367891004908733941502855440393545316864781721294068509402609587664664272341185527140242338163125978351319550010318098211140082780989662518511844304761074166331778543728672567095354704143220338818727000003170860130165266342613802388657835737783633407123177754106513025027511013270713129406930712738650827420539593059416133506646018783822191326953511199059039106373054719647498191525852994138153905692799242154972454686430026202288663380819174580359901815633747061468398309240540628679344010280524945610283979059020652596795962151246375266922698890668500396944043491450949620360022330593480927602346862535612942500539820433447933907476693722021584907351694009053435833341287018086877322454340639741101609460046108341652910673999527702920424635111804834225936765978434552090048040942613880595103374574055697703938767775531752952310858431324994593386088841196841283577812124078884085803684633698856668976333238862405154196394890428653965987351284844206073950379127874807183941781973343872507358757954959995294060338742812632039027828855830546885784061476965671378703513285971972500749088691340758276798644586062820046913484904370979531625129342976127433706962683605972616428771432440088106384792050041050481644096282230825020766837870627998352379305997663979796607597129093898302623932195776149652509457356333825735907040020583583832534325123283464884027987684227659308079589343831713325592876107708608017043534241543776548463941133445864580065324036292990773787648217817819849839720595968793393072843114080627190742472299626133301445636362026220419583884187691971790361931892726099555293807384240727681177503861377669980070386531467884153915837901192285218017322561563524102719448055022989086698614779292386004560212026039160761052639397800098111791706741906235256554756384298280510911748127262803225317787452700756335736307124787164220455008379997420407384304014358981848107743173826440857353733910896790705626814621094887022188596338193239455593074951597974143623261002332667746182874752536184731405446910637234971381045231604131472464266174455238819952530409920716446463839307797954386647952064627515220795224305907834849374922373773212189910930814509277438523218552128344888852902173737931829269276594838210412507107420698344990733115943833061398274284102007062227776848860182832839504428457879624510653922639900365773708658152870415229082386397560841814325963703596049025389058387568104903500688882752334167190173944160036969447448439534927825936794220176791624259096779907111625184414834781952879022189098499504627104024792352772488478828723407875386299854589532677562837808914394541634420183458110426757235368248153960325081933858656333402905776113070074105168884193720083346475897233399962774353403441301959755575143456176621813179859170052290378921789673641202056052513654230663229624233863506182348102319649250980467536745628476385894637197273325439190653611218898757907253067800584950886872340280025668637866819196019846241095923533442027083212336821639310382661527252997317515652612120468531305555436081048857750260179080284976211468201634746819893181839423146518004739086370639097906409026499310729840979545863611241134786678689060868241769470149037286287882430891365744843169845317291801501012004267436136760258337711940605072371221922330644516400432548511694765004739944392889494613644738930046853984333579672104860782609520441398396774392278982189988276284062308114123168430075205495340592350820183884864470927595737740245392273119032805909416886738182770680367771554659678907400871682864855526906617661657478472712724390729995040428004699964707452874323614709368046236881816048248157227964567390622526642045635298287820068496428369276700592030897826374033928822126434804088103744241856318338873722253993066196113122986275780504639458470041755413558057895529972122791436964485741021497674738978962167851174837510431592937952740715660756526306312406902084909061821504081209976573100023441340353562671090177871672752705537806951492060943039245505350857294349334003274347279484428725788188458268147201949035393830567343912787852918534744541723139877488039302560862594692849800895036860703019383598829248926316946869475075682246856186401352586148094888312322351787596656613194214655159241820295586386816092345033705795795063376537991874868757628060278802855772621050981879443915471333046336425836360652579253352650281254009733767179285489842626631036958830903725724806344436551128889248370016505724627053361662524493447188124805352589666309632309563743950062904934647990582042654779191032645277114050055014993270494760662299207056452888565068255524951110846291840375154607268063455294967643209872332482047138153383100441732403681305850290524772561649091232552525003007202546001864183861250168639253743729042787493104985361423912698740245076222966464039029473136021472703665006605464729887961390844289065816598672683968842273115790828208734210422279796734961796549341326596584568893956353259409554538407427807082496234814645623004046828381452335611213293456060572924335966567510317712123568091576982271542363176691403912684375819378408625045522352194215885750313880083070149416346691864582596719367938270622506218704765256578494335713892277796590731694746216531211146328110998002363445215075708126375440290177011316256847383009930400571901268954833892183481220337998818443090155696489400242072957710708721370914140477402208680137454459257686151818510711690376112701448704617757475279152000230137898423933242496209313041097942914960030043262343594627720722551554209298224044854079370924770806064135050270882093692609576088857301746576593758633581430837212835070850208460639653863103774221360746509186140577672721666062502432926843759651096682922955167973871252591635712337251923203904776817770386586159974228551687882213757085317577124822678503391913022975304908106196354557954540518874576785542641985792859679167315155894334033401297533136831644476501839812916884493327137949194051817419922224675787713302646642610258336907250328072509891741881668725892998549661425855595895434458116848995247416360509194021278774016309071271593538179217336743523066941827842589500051832690139161236782344649637338879443364758813445311423719775066429799680486229046930136586524140407336701754274609212135837554912220385898837169392537824079226716739296592856026202859788254397629550302005997160058471224183286744367786295915673760901204774233648616021197585117306882590902278331467337888040828324430866548824561784360203403921557921223711576923488468098369903654148390520226772343509062951537474106817053439653871666435991498194473815132277266017980726187328294885724853039423229133661644465206637929516924307560819925945394081857135474488384938115191681840536328602037226490771273641584493750560640476632876394566467234650419291344272102300391867923809484909063208893855672907329790801015331125421538642153770593742652419735497032326868432538253422543525397675023914994585192870323015160530559030610525243230081155763199181175521388090585094665235761891592616901049051698054897585555491248893120327129632213126306020232636047903567613335322750184753737418563995474858183792997125834166723247253486413040500137498226568366284173248050759823772891795936070674556461044040724722381770819248468374364063093947376711662285898896982745476322016588606361221453603075384293432907595489152819590545446996520147764446349819287060975045509008953057173688795708147800122865906163901715840009372885526844424750819845792101355915428507987670668025627542302528399193133294695866554948655390174711974287564097633651786633486329160478563303899554932366932677270295071629725739233617641407051284333172336511238446777042457457134046138054471655494028472334178097448499611866000504679377453928058941596356653211025798360396242983118083615161983850766104773174529677720908653709118361796535756348481226004888340836328872069763630603732000085917636385039780892537993391200547485439974554738187842499900580369609129877600919817760999718950456059955474099755695317448058174391098450933922276136870408724920724749633029258024112280459998645517415187499008476589677193121392062023829338245128528163518863268319087370580525293348238103122729535628160186838727711384500930848084356836546879448603153323188300956227883610142336138838995162196606699948611609150084862078853338151217109677346063755478166365463061860404839452528467976771716741039502390991205779208716514184012727530894616412414439585465426293549612572174751104802468132510626262983499256335787524776774204324512185272114419019329501053163719833746530996818934090742298116503203714027491688593312147018280328760765882821717224297592847454336999899999865403794135829207834988865339865293281058854632542501828737042058000319794547091840979763937479995467054532237526098710334017041190428493669510838894503027867692337513847236751597270125510878155824061118256836322146742404732449688955441067933199355887599178085513723842882009509156465145985072597877266258191844544120902168233106152686039538709121252688577082549803753963358932789316963620570190030165499237500077657322496055968394256281665934992502552610013866978667326953347485236260053537683668359678387245442626179938932125368001750984584127018421735693030042878819156361760377299475262182068201136551135308785287913508137942268865583868531665459196738804212677231932247011278930971819288609175339313542970965046420168887744411681822002694252044669964018393386017405900435681234321866638842661472152831543913758363174759145016256811429817088001293592607258128443581139923095250585430241542164644130919242316868956271781390200249105078648961649652869444275508368221412588510059089191074457757899842519310109495055402575737596085211435844166151602154120208038778836243586600671075718023975103821935565289243294544601625824805971030021611608536974688442195192111616018161588922716423955194094478094206402988578417730665969237310660855189717772206673207236911563786124409907308044203150656742255289830371192382986202020317958705207087263192413175732678297222725474295352440784210907472371182670935099242432358884099058386164863046871231154514602625265208598606288528213118171736635091933091697618331229720792225423675661202240416187974109045120657466467384790040924232866433974470939538083157946992969850911736928832307975665460655866145538229022659463489605405770479907507857865995580841525284338451939458961102991823365180861219200089782145021652165805226457079314930927068835401069090115527044071001807012483958544093735007387245859464161175481472877871336175904252391170996009913516278594877974928691240234780776582697750155044282563400716764421421107798197279334363401268590065761603329393987024453710935663308456624151209598483668037545656799047513494136796559136714093626104259879941819873640578327097160837301753429493411305528925303347955337509095096137579435692871650120425123642969873847649825965888571936396967218379394293994870368946502260591352459435727824031846453117616958995610534738307360151267485747897194392645828795774807868391695790064074532663511522630515564266717559613617981375958228425064176793333343445727691339558971816446040243253548908754566041702061499517829551970005836739336860008394323951894763915698707635761508325992608649515923761952851451978403964882222364130956892690382177220972238167993539383388148628932173918505848549211365276018068212791081958565297668969414476836071193721857120207174031619074235003404656449950308259949503151546048951665203305388794119723478347675541724971071857448486955119451298097680671592767844704462924907167950620890676453338902637945282049265952876574990083047599478885458178077105397614305974945988178143939557614677957412334188785795427601113409692360826606908804151996058355187431529943478740876256295010517591546383189537358321533939894167494941611254691777253011488821397708863596874375324529541890741721537295490275924745611195039522775584138344451572066147220483023387270658325106877072132529892425868134969933149695424739207499424863573648289877212840977469747415128229268380049071160277229492100580006191923125463407595919825119295579613672442971112261658429732310353061384204734841927059895226370889126743992556947562339346056382597343098823726907175080470057318342804822751608954282243831667954709396925954331847625581371623621234284217555545295859271708207673641966139126480853883129107404380305755041111929216486232839206730864381390054266189401293091302696255122208916984976369286576712910829166605415252563157853080443700910087705899054340432802293193903070970526307437437577850226820654480335282736144588293017269801034049900849158826216668244780365956382059215190355222950746451271778453485630534422689012613225201983320576751263615270608706830404878353592167906562604425236334244082288943685172818457926800984513521435924975029386883576696175244734971849048729152866746342893757119944560312167185873415200626141546408106446638570096886655313365292904574587633398008173021687067413103646899024037256262772697245298771704405127499349453814793372146923423872176008053864038650773598615556115851026907389422688677585523147558474322279768758889464842400154482400968219406201710805816855335830351297818367069114736950168589406466284798802518182269156569542967375724365710791631738596794689820233929858888188801585228641917147762542521895430733286429825957673927637383849706134568158224593617878843998767532036735841683536353712599067039377926578518467242341859328856235427023166016083955760396211440496385783924936905199927490918643707351709712288625709331516861539152148649616294277597624829828994893087370874227857974448107709027307507028712015380394943153986044890755469611259121863378230151605637700775952350194559623631797215242256595082453874680960663042257431317944033967722102575498074614104832168207599060407451551269580816700419563686724792459364669947398023395731470010972936620690676113066705949683115396833349260277451958442484139308242735632251671576005364690243267557890722450321350427049154396075680685454953134332975451759235630338928143673596310141654841704242530477450801257713464319722098253556399402906609043804224401830876388099951356462424835674254549012918191850371633844462748074384015446561693970803689616531818307397065276890144126527316734632320887850556785487958277514196112276196345867265814530257217473157284145667775166924478355994514123769887655181016468793645003232518459786942027991375373766149536462523634217260146170341939956289846769851423397077654205833207547536334534041255755910704557377876567413652773534834284065041309872142785895376184151391771517290534158860515432334005290048649613446671983591003731365537988503561565363907747311186726892845196768383169964886355076029273046294334172944328279332160827103292870409042469645448125694928297638025020021386258959936665793615774692196203522437927078431519439064960342807258543313934848140229427190585599969331947155106584738827901659713378559449619929450271591621839940650088364171615573462031179403170257600997493435302236686672224202792860350226548567068598477906111924390491682781483988045811659717314907556719164112782407632839969151161383535738739398770339575558807390614201879030574833573852837399409057418277170722391465031413947728733582877309077430841909038290756943656927044669771636011919100348641894827360267042332244172177095217610053964635574408956368043961700488182416793498694147374951800763629279276169982432494107027285702620143827969670422204099243539316874844986962397368843959063746684494079966928058265339246738297842499620312016321427966188738609226296082405503527668161466920299303711553991970597138262496640039482553781771021707216976536458519659313514377412236382770101606937453898879187718589531948301686275123024807142183021854888597357937288515208823367176948787840499831414048766119578660733655960721563850932899288607633154871148167854320409292286417679846608188786012250432376307187748223903263769420729767735146913410601170032514243169163280538484413120316368321072609651280681648271149751787663843390681293986137999373147861455232130682389453327751738879923052651737791405149193011385854336308374935968924040252634530913548812268220653334856056838587950930917143957413785650871670249658251999758104944362044203353763762933001683453106418642689718211265122305075458186496807542216027842086635251037306996544229038249995963025525818159696805844935153499212188013519210485111117095288204860021453148363508596704065243212144876071060434218806968643413027906440339846469788061076102637629935883813010813584147076924677787036861447419307383167368258953150636851282457515219812000421455620716498737109773427587720343065250887465529739136207148344147598408193187608739373575552000371497917863163584803517499223231380508113573604648633318090620711195308868204665723830177155877517579452966538018447591893368025860300113364180532946650615690569058148669571308081488126160801054440950124463173560676800731271210359945845998255683186256717284698720275482340443948740063265944742964475148432292128009829465491967956321334992479838965689567809296842083178699473975619029882410344494057834654794733565247198081195800013202470684014194668558176877156532340335153413922863865615882839943125375034912339813543341942668266333759057954177667478089140686084297356341511813782501422106227074061775297699718238337809394008201740428660642815009684978306446292422041341909541259567346403214451014788981958604677934884107518926887521849909388565921537135139906883160311256736688432452389833843957703531624654621136314308080128650460592566733126003832191050012715685875689863964970907581497568119057425900388619363207368660335680480028129071824920681181621658385315806374292020837685171064260808132840413146872278762506677437391071174339883680543379162214785352625845391052861501273753136515387765465542149427088017506137137179160286998792801126532897563792361929677518784458934510591683674957987820041686266734757508339037007129921355135303791513641136882806517063676321572830323723010848590535561439071437989015966474402508891346211733993128015887455032271073748279376134535217710635074639826612787530508810928030957192886134156095047454834169469405250685164582864529802178646625910188150653917365349515900912319583142556053725126176665154721392835913385535428914524759207722095791427328227487408676119160444525436667766165363733707301551286330168109401526149711629526684716560148437933474389804644032617035847489259908605311322991980812758364001061617182985723264972119403746128202576951354441079668770482258561235824951418574627629122321883398916326910958584204654083235004316314778011305640979839281220101334419962879678901542105128144880212352192616078706534005270547870521151489795831027357785353924312462889228212364816889082432407231344437972279583822477045312051621953576930487467495878178362778583578098865573058051140853138126837025622835064695807327100337308462971448638474483431008179738798672720752460233726152979934909534323794663018156645416705092671232556635570989534603694881083726497906973161182511805791007680412836001819994860104090826408064963026199918845668940757827690969365923236716631413382743631923930369253784262396479095179693837654940940336504853345506903244784444471160920568252766666971614820690213956022796598750240640778429364879197882817699864694051761969538085498859951481102990753689302396992688206307754918022917014222101767402525989606091731538101718209844476393305636976091045105801825064159441347176261839580875467129830993274016203695112180641699222325448061692648210014538991811838500697476469795124025175590063484882914795665618952837549908755760226150523370748538792970252973274684873914591735891241689069266169890579969414340719983763529243407209551372580863531094204146382891507851211375088087409116476599254320119884780440524481794356954492005566420393174064888982262221304132195330859549664448190124028697304201547367498447678713372705291477173515943398512063271459329354861156859443970773926893634629908764331041585454909351940235445416435080647315060168456213877292673464613019781026009995278669759957115336757217672358732329887119831499491163139217534171873918985725128856776091142284693047249722706722256124853531377855396967832185569219323737333421787777365232214709015285339904662465616827925934829634080969782750204146575455036380709443788494768579405914251729882706091079642169103395806574498750988257277364123994651574663200545524799842266117782032110613026068338591450940999343052924989941075529212943113855428525999484480391694050594110438205275262521674205729469655527181173402774605544684587724268807900130633526040769404713193512440629820986465117034105615048366139010038215044642385931492920371453980320245686878898172990357819015226694307935370236960103031723841686777118219099912604550923604036802437786697454397603673060736644620601510009783302235348657350572667531970645019754750995558033201775073008513154416604300558450378031287268327335813301452003767750479604947055842712764448463624839753420546313872143814815658446345136700750045918151864306687986261118429011641538045654377177442619277929725470536831304567843057400551437198415647385993326366318703047188887467046074665478542921133655918282177956700646414313461016533598239732570431968208854883070979834425671223825323421728928400466808079573797386137467501013226926881354829078666118586162158106448728270804033245314557016979679894974637592175332297529488009420979622008254897525329305368589153260947785066669429213647216221089363234213726877256157740156645470368537305806152142851928836589964001998453166885979857060605848907519723307547515190854160819154715947042174077423872432130227853872880107210782306636186678318913596504906802090856971176379081139168569765530961102470850087171149588667654543063290320366382024935771721028990760760869600089998183229602535374579057672054888460339260552845208002839456250666046327792791303358096389804363365097341529803519892429664074181279123782004358988085855940423527701498844923829110006235156224659186451924505416072698643793745329454112098901087524305780081524857252417208166255558930332326565226453365067387571099041935786786405066401686298320503765723428676498341867041977392690305866318541904572235836315217973600736004341714699033086205258740447533384425718689811892048648243221276754471239796323668578886291486094341194092491575962210061865826584986573001484787424918808985471160236197131339439584527176638048713887005601835028678993936071864288821624826405006706121470760043789896900928225254021282482319136699115798333995907382736354243707372416862048912832952497294299447342466774519945418561073264131360945211870826554952448329210503913402418115931967195998094774496775145649628481120564124466215946720711501471215714479289474064443361751548688592555623562942556942084317137701691312580153135449962123398783452054157753368191902775607981090714034712871587087474684208945414384376786978901291040012931397236666631668122002048279541208810645364458339478050181708474804796930020954022238015289666646226526559400092702792088321663057053437651791737987518389096270163559162091604040046917942635316985596000899363458902430474879936172767308334761224812109490424974568697380225172466615890686789844445841157722840408391896633272332053899796549075897807945843668610221538334487375593343658422558300010045288954163976995330045416852891829756313117656221757010859874798207654060283669653790781966057187060406939947728429639300515253975100077368893268013656909643923372867182893430441919436824411822626358840571571925111323602270507136720939806380578354530425893658199502727642074568037097093006056891264261804202689987820329537797567971538953168068730292077456597239793012125859328496196193231176221072064533043851195621984665283047677634962614245905694027714638384300626048719782380164393834463153960329896052012070479794470033288657267312569691529372916342200070118325342620149696205281829617244545614811425598187146184016069385789968330359362056780978041560696947050860905161144776534195810355254617579323374216873411999042353139104771086654531341008154778238311752277085130265817952718442154058026489323083309863427327970182438255154862751902901044745328855087720481476368878951687640434906498310192908206649989790180979221278735583631199817109400586334937830110690257554786030941428462382621417380776976561259499348457760996794239415554431601261172390739360205548047704073279320406515023354823335185927471295816036024143755195548627993232771509249125677299654151275556554490226622860310036139359816262363021204551238274003496300603518348345485532354070567458076625232087499930444956818205876315566492773268404987259539454200941551087975641469224970759725782518940667166485717526850366432120742293549181255130002677170351417987977027000399852183101565106857085510981234136230989814471987870578616919259302701553549825207234912365324271977381234083804077817012268932772793943839056531223640203614763449392799284796517313375662859245609749690291228361486040723354278015318625589341788698811411446188382636576975145032900567020503920931972776159134563972834973799760224607182419402013231419616795171523111582457707720828534568915925038096073961927397817896281389065661296475440435188462259782052584331800623101818205317535572697887856023098984754008137355786664920991844721018437364180011112656820842903654315886379442096218112132900429423002656474472407469017626508413918584761261716206664251908051513766641471541017331382437350882629107236214369121369312867708230477451082429273921902181920214361519553710371778454749636634317546201990267736030145212973466399402697021113730491468686185628899999577788307972388528191475710821485381214961928143335473939830204477612466118643276526193567487522616067824055443640650405684053689362176383347932767120664774829076364634041157111438898337567607988944341892932100866386995568193937758791748557888333703351357103110966122941598977987364963431983935420288796460664763923478334008468314929699956360876372132283136308413109927351648651761609743281669839894591865176199963679653423944106039266511357940781711398837436368568170587039765342150692534995252443734254102562486329063519660205912735305168810625162046915678528775341501817872890708579731731798511292981772150477750294788341904453891832635873496984755078491146666886499270369788340568763086852184355624962604491282017814685833283031218363940349258317519007818830274741723305710889398456366939039154732934073992542977207458699581430659180422525334089254261233371274227157958004394870610411274053057161199736486140578554296359541402127905855884622284174711378003346458602078429166861901506302133065604913328417451670041563406236102408810427009976278432577035347483248659767034856143805334970811618662381456164801000395451658658199156867572476602392062036600871688608399232120272665569091624710387163816571257717482659366493360447773118568659147111356088882831485670176310497764710748834360736220318211871117242950007783556359896645832517790828062629821733812191975205014942204515506802978459766338407108752849520618829239268854020189709520507956165857717812819450090479743657809882729752261270038141934166967004432719622437813672661627643732354426853061992734045279558325156466490816903493456942315591477696670890153828058593702184032171098903554745581051778463568965660344714084502275067237685513065086621261133089689808791982375621841667031457533772499064382022655007054810997668839501496202303879636729725732126160949568986864168682939835061260430108461876077685162329997179086415095887672051871253773906016160965656620477722070663553655436475927313363771149312035237190871560567381468020395347702469802797825666830968715538893278645232910477112785856698883505664575968440825419435133577822660720163706465677176944692072104737104593483957616286450377976238294429186633151562971425462388064217429413121671646830955512329949994367161681930827222284719173849979508115310704303718904013996355294217810099262027752603207168491417958791543412486427614675434299032140527817128159795195404730944696323475350525228820527035897103981990530707505819645117792389174355180143759041295509153737983308024974135719693155960789788052551530761760893686733146870861650271319697080529689195731592975975366308351250755118565868387469984906553967584049391346805466315987514095704432440079156335800712321397458454580695515445042018180207329588561953802663241658294360894177479207490420062211220695322200416664361961443360243861989932259448397162125145321507681014956046862026147456189804881849962480858976046878581984135896075720352207247246108413696069904361606782420653298005698121528313973417628453523790269713550391421220014979020102748431992006153497816423225152605302716814527564265448611578663309522901835946382984877641621251329031736637845799161507913412024584553128721634923559371069859362696032571053327971104262985211798783683945918933172900137288315045183526776221339360178985213258900535410830512745815825164819786067498827498135293297024828737642907451143534596918280539074067028344040732996067705454210085818189349540542568475052140628279780826080184988566573905239180559684954188893840045571469889746578223858807947362447768366506104315553826630484318339375182637584122787583627727873952278541169395133504790825809752899957266501822124162560052333083243233994848826475616383097944088591620498540628696939393062736477136523915826506638881921643375132090703098074812036184012129060503635366444161205828397035163223568897967669431851265730085261517489135546505648748427308317026451562175173625378069895291232094448296928788696782638684163937699271101437907610357990546193590127287985037010125779383833989238165325508853119314855370120206443656835566644382683005737654324225824720400502982392917103831504247096599519526881455733869315786077508651240050780417290502595288641285833968515077487962186940326877536654024897310208254183663226618482361004009370614817072918185320688652635828392176427765618608871843128468536504463515346172892957095557530260325880639076831413046126322352534635421470527453582204329988634487093118471269220665214499986790014328538512601299004184329420778809905168075367709293322417715039063806542849056176663722962601987050953912976390075607604941125712578403426981363453188823844019665151522936796692363416169901652971506816805164528061324929755473688483387608412933027505288240180842792612530821062202668030304931337271697939499879884036352936901016526193718706701303876893662173258806527300147599947142357180460156476302988587438699348485711979204034031824023904066671419415752960665581406904734549098733757239525854432880324907336995592990475585751132648376697654248091134333763426613105714045107711179637026565596496754044033413571038151729828515025575704437916332819039994263345789781379861797936381711975188563597582312086765347248261553794826358456470199386443832863122341117294504429881423687614908587292558245971270918874535822728597143926516404272741656808852105187784027428382634965724012543878102013817538898470431793958789312203921564062800564405208049578745698633158443136677691004263840997036330558811257982167494893768327447163897187788229531828322313095470502784027126429864967118168971694628149537305578514786962409291948760190579410029599664931888394778187964681513341401004540822865118916086449947318403338255315096428184140534596187747017879984452111507078505822384874098427198563749418745517103676652553429440190186409089056861911659221383350150300039815820001092660266826947469005990830624510147362462007111317073363979816410132234750265874966728824627848972410586643505181025349995668444588225789592056865149384346968561685547216305859173851756268039639129078630287497091757931711707170179408038111668777450780552292007907521783171095580693259342495855463425572848244357462863815978842454564264299871984168205154196733493240932323937336632941753607424072165169311000375737610499774160164520533429646391575419467721134413667875558453887019817670483240917021776980193894463487585726721557162320413760786092452252925610563952646941175017615355829965302953868041395912520878419897126287964098757688437924577690544235286153512690750099109695362620722793687926405583906799394808798375245015071794556498791888922166770192493203658576897906691259984148320413097215149914987560928175749882837013784531118028951422585980373188677494267796802493568142275185416249471037421965672410165844277755420868530336353073220674743249231875976239206047118555095306457926205143176858345401566928376012726587405958978165407975683743162775062061435359178002675778174022476906380171625593290500702200050247765739362664787953747184343830467657212270504650184787964224255310984595551849314419941050456631053414934021241134684007327216447810440108962244859261983382841130596310345951496194281293131397930799345761680983078075565807582357096735610447737280114181178776670173747113443119417080779779676315368655990527901198773080678450175160147955437384277391679816140364324167402685349687742072466779257737808470319822642564276335480267163781961676577441250690869846369814182935498709710365192868919168282169552221360947540018693189345760375684767135230188835478147446456271510230932501889158117973530041753330777652769796535339031186128398510195516096642332863689778706063765283037182756265799389012533392309776121706804331726841124359177090205742519055841715087995324991449508581703064139788954884651235170622735014942779551477865835174914838659219641236525039135787890793988536561707497071848248825392365387371592805416682679586100672982390302980667894386717542880584466521485147746426487418763423456053846842581436260784827190123018012150487886806944219273936694248305082711497725726279971696611014941124343171417582803997578545692625048858333750707954646891961992957821816650737634283588202177002183793661315470100430011029439032492650984396757353199923021623985435297810536707405371400169467075041185554121994889615780258617364144574823869938071822885275327462372806765940483813828994809106467961365867887878489664261394695651992337000840541349962252271100940067586926253030673271923130427675936941993421514230643884276924680713281684008679999370315551546465453119765969717273929429209337734114669513203394461063620300729173456031412071476115942304981430170106547472893345129167476998555189832099946793858486903344722878707762611590640768960590599526845307013125763725862274236260865845196310510316655417229865845833072707916182449354118927039274061649275761313755882708461171922798088821105200225389437880034099027304721221302954337081866077401331170896393658309129489166046639212581298049634413713251380565948785610872036353158703520199848955601936507818192348265700539215725651860463602257804458973435609657431610094490755048341635821915629001963990288733400514845545213377182594956608913314674223823750392582135479770990373752224571799765796694851782336170122298787779074130864891411624167955318240194837751413790283708380048578633004506353396865174951640938837788827167557871075406068634072077919021656220468737329143402048251800177473451135743357065558261946626690427598086397423932118316278468421376029504409817214055512442949853592431591548541577200497441932436292361469167822380907991460796917560979887113129807329453173578547745912951747090513180873161384069634414596410390389219461280981007445659481435551845277911473585261803643805501989059553227251494945321435370634217409857379267348950676899346667201197808716218657689854417576158627068111447471358374749443284574902066785960071948834894811592507672315729181429256697628973612679853184564294109029789898133890100656642472854099651198194240902455287580264466151964607122092802997193552576348941032863756199267642947180741505946885412671227311199013892078811704275415119341361173622349034175851531825180611077265617107419004424579286639308867591778031162313624152023512707434326014802948497247039837470636550518996961321351481121974064829571900155823115419040532329726716572997284874971676418346637327006938993752428843291544090321747463456678024442909697415031213122241463323463388832595033423153450468265109190871221079845842295775213719613689262711615013733686874310257449797275714174386128633142665395774454285512108261645013586669184457611920387649991246137908908312506095260373226192845337476324565293218331449149507566607656523382495436105962294591685404620211111900817672717605983480856225078912201345211406410714208984708127164451022260482549291086322117801855569022269341602261802558919740867249738973662269115156857761768456818877059413099427947939413479089495058603256849199008628678324279937020541080210513714853333398548882864001782103754015222144540382012750221230119775156043398266385969072770124598427664818163479670692345012029163429647697619972314627476086873865969640675149243550755985780804114189919816539931535684189085777512908399784870436874254021812561749502894160523739633640645892055519371366295898118372699834141426635055465851075828432459914466058048149087739005034054902227537997065506127608823768138122367859463328371806810520804069548030046648562060513956989815907848764296526819374677345117740420956188234136649387090265040771955977044419027270628320264659366373748486821030206276600534806712303796546102283844164208306528389588430978947692065097492322744409926806083791699459729840338988842428950105273605642258584433832718392343470171341044888604781851295242789841888976263676211127409409391183336077361517676399175729261599476774887408695679037902376840639762857001604556364491986900864389502829559279333448440978827662159044294186016344900995624038978591979121900126115579286151478596543113089943169474696225853738286268739231279286159994459439802827463471181574584512947573209393653552654040528107007486001793251939436892308390704927718408311840383741673930369613946600962161913026574143459646904630507561901144623851616885896032224654277331068582371005142714789460232313258888641406967651365112829584190460434924959522138786516563528467074085910189849944367584744239903295260886295925464250521006767500914551717702902962516374844811618944482129815566872230940395835038879324964364815938225805203135924056774730900807504456273650598259029032397272561608786966739605405982382812114534194974004500069139566014306076857377605215546332411934421735310142705432854337236734770610424548101028447297039438380275340909185596930883764933183819505521408098276746447600126387920063632953448923254600209320875579971371787269111407235459116870805378530033756599950053805061944288674965144754762927797507322159459648377087891940576965722664079169557197351830859937239827129951802551454298785043940911824139129419958506218071709853189222350984873577864173833207900572073425825363372100053393659983677142156822292634591822664928572040085664326406903231711933651508281280123330390862800077425027067683729074605100614492065168258346666180788513709327849370284378661381835999317938909479822224472483270286165059755910523872017330757801394732164064888212705832423530369601365313162151579639257371492601370653068082865786377493564175147117083258979967467317759249163618084963598118921373796051407237238016531850552678418378558014704627028610353535493211953360899605448804286975455188366243946691269887904500902495338913104462368930581498977878470990928797952948970094905753368387075946763336894582472513091730457346495073946178959801501999091958016368139248705137417781705523938134147308046252479387238289873347896528666034445242667594890988588215862462346505809921766027464941940676510338104893421021952300668403405257184517482060982703554561182241178664182173441324309938918743288746120252437794738161132408908028771202465260437042893252996068337406460763822634833451863039431429765437616207731201129880060982669854937935122153805223005610791587944240836613814097043017822100569330611976031054070624498412867703472675479829150542636732987690276770750184475623465939762120461182248478485916469939302165942805659061490165820956140126490269572720982968215382991462094268663864201822236863630820814694720193172797511991429153723236827650530935728697977194924929508262804789120768998500344547118809773728632686652293054658191260288679330401132685978534040460705480247593348092009786618812233798890073411369313101496767976297849335348905549386540332786335186096769516692220619322445504015093614372660612131499936476551909864296199186617430314458890368678013220464318820931403427673148219106218456562787368562016876294225408563214738589307244676652706912853908190885039648214817621155599320371765667445363294549773834020053126808291338180258611643142356984481639253079786308009843324380797348338414855630591849593182842121934780655443702781689974788921395024612443265718414254865100644652470740000114946779112545311628440714227082651231220790912273197351584148204127096693905123719796044291632171709519703956117829894423195705680121249340620511616542802602039641604411336883375627055079730037957716000199568542016011304652071853827661231469883678450645901429826787709924876845614183947806181301707256259110010006350160927625095488384751608053136003705678899883841867160644226028965480576939224357271292590220710794706784878350092299892580542984354321798918853771091012251069403721399938811175085839071813265602497306551511334578653889340664557507517822499086188290918957523878183447951128069773057930978853665798531782723159450243099563858956535840612807410846047259484833759981955732892921870574883610752376811178588525413322256543695825669836600948629716558534194520275050886418053889340337310054578106400570933912708040596506535799786814737030521117550885309126822209063355347212022727760853939759663340455073111601719174853477482640168407069304350482525068424288160646680732823136509264868592848633381239070418454908388373524593299175196781640389581876765212532560062554638738710455352760976907471639654442255072306485007234444448394958747928575304189557634603548454038591250759330834028428445118234967904557057345850255068904659616399563880173809842729530968677314367083871172453790349289644253330184306742882035991645411749475993786729563157960284561661550324623274027785442908608541193955435870806463793017027050418269173309993045844894571460405988835687909033042537513081997769079596205207787688368297380644843190383134595841530657569166553604914658225095681898670758938994307469167313263004264126347724715959764278223428832677929279809705126223144946354819891748557801406138890257451378907591187454219997297591871211760486441034689766583103294511629669175254638947587095567833235751432610734946114323091443662122334045475147891724454453711665666511683984802881822579317099600643348110806331362432043442156931258996821761994902945344809612519410522571635792782911892782002075443535820952496759921401237621820928213615172746849622435210410842776910850191041336550540551330259701975645577978665241667548492099868135984496051924957073743058817159987901122439325553953885610039020950781177272185745861055174532302202233668032099196709695217802105282155914257645031431177142193849843567571008896097087488736316221527933449805088756145869313569488320224690373744395343352293734424736479171042180240475415268777756638001185639953127978749063338183070602750548601175913445713631515265317400059302397719858060361100938697050938519010662768844449246070475199532742996069256615898475230085788685175578567728955907803024574521338427915516735047289803673880666759030731793960177992386032274918007918995142050425358330077564903062103929585217477290468120618497294115493324756103554589356307800848327019684095210187733966178459018824441290762213733069782479449907369063620010848219621091028912602385253889910920574647087463335758570136815918575236539279296178009915519761902728356492009688739191722186409724406120501101075343704227404342861035014350309485521213670200382243052039273432989935675178232837164921666909635726413958883645480385656138756991022624054893082081872958016637765638315382269168429114934610943929877193616900826708791721724617420247356392261475845378417609545971718139117018646498303259768640868173535348296667108263236067296617059394388910986043943996035277894008230461075761978868642684085157770021464049000382635885787750954566483525517044193630035133076423241577626571641393619950957041867634154776426861888042973586418631887782260982680285647678642941051612079218692656647601208117550891426794205634249073552186839818527289326724219986839574798454335922043682623695594445809755219213908702758360530300458447006902758184801980514203526363875730276096556210732498293968157455567393415108930495438385485769905250651172997637962839307219079895435702156662289920202361689456187295185828898947696334722196968137371321390281694718159070555048845253975621419171997769488817790626811803964482726886782061623924366724058732931696999890633489182101403321319269464074095459118092629883494292909011059130185837743817245987290442942698767922842450589604527492838221222798676240004762036229275242399948864308415432216197040718008791564875818694325345448858942208599805153419475541501117189391523419588888730735910226187808938295955812965728123062823388823147680977915058600871319722306432764641697622359840963695473663352443678221555301809600935418527119593834782213569179497813473600347584177248834381851513864735085751729626733700272770122304622474542588634588531808224119725216976871802074365208555422005041967179254119842483848399466756748950030568486663733395432799620652418635509150047022320647508718834992853502417147496195608818792636677393645439043047240516117435827160506284255107784770468184662380880198621395275899047363858818378225766613444278257834331317539986237286106910242979292121325398203910354797460413939302214108570447470210638897196599758711430447246977369097876753477504170491153035023085558859111254463553635344543965093698895435722613180976575034892681886565300306433067716900810003638777151609741839185699637204247171826330185244820621791927477252531433883057935808024894103853429291267788764999598244169370630448281032646915639433815621835833558923376606244871304891448240778187321728376898389669133684456624821306690248253679846887506578756145484313173897662262934518407158105363820982391816286472528110873196323280712014731866363417916317327325662131087506194446072203995730093882044383195664080124090905322811262528602184225945439252206841528551976660382843615862602060580567088864499149964188786310322396276351666068088624327769495346058569095556172534150472151386288643323804813465138128719275316435702167955240945676808653607936534185950291621919362887952173139298780760404767512353093462760460777359404906226045909905959840385198810734141016745701407662902715592152742799492745732330203001665186506606806957907445508888701398475886229510054179107096294681768892550417306638727555768757221021004861439068310124958700559015930019422068102826780010704274927673935883752141330003127583058610604335664937442838604747050982376618863611676301214482252918069682811579075957384859657595955871292409354682384759746686658666406862408791801417051534479795883410849680440995532953023367704752946991261199238903029675334762488321217186503976140795615463892351768509211067879783142380148382862697595937103292513744215433296948473567936495149824514449500601194439859281791318025703349354443967137808314259107978267376115385677588710938053275863700166529755501371558055731465422981137328063753774462929119867910373810745098953745160571446751126424099994641880033659590451088754847246257308552729421000493028723641897951169153048219514652971575795972999720059698492694579775382855280560178405526191003796129414455953586782401539397665971777494971586862742249275671783864196342414167240390221963308032707982611234255623857472655710636912946466664116314020617289410206803237932882499942135671842802061190978334153984945318707645909730204261146430638855480403386304696523713347246181383677387237817334743428946076374361594949828818964214946378818001975680167905399021593710659309068101160105077317104580640492816089658426695470905258540038876829729498972492157645448577916023096673188938524189650947111291238471613174046045380725340522135098008495486234151624881771517984839123537666066539135283055691239945238127209891153439816359435193509574098671661667858232070807204051540683687208929902021476474652376237683456904556918479475710732522461019898344914590900694209129540438508951822594982652345892652104631250466823144690983444669631618995221335730076333457521251058878193103943233749750423031702306171295126075180756235915822078737172770680473310422288902291194871023782906204838978794167545965404351744266815876144530662193852043842321256209523251572123506020043733396968966178759366492769864115234564883984142436782712532412945392903126813568510165369595717603695044710974768693374242363268299899564474965106884165213770220699781991018220990425509205294466140799685497876442781334780466426692592823514074049576949855584541006173840021947335167525280284364048422759007154582853450657828229959187929313182984504053739464668007569971073343331597700400567555445339964238508537894321987524239761058367065504459239062208872744467371318158749081579329118496437158892371617440014660449785307012119678341083331706860696801526885144800805990177635146759871313091751138916525226868209681325596421719017450971075260810420924490630077656005793839143056376436338010459701931557247861858589190249436608816350472643258389944806801706968612659511856009444956774024506097491263505701409853782501325885571057544369952491793791474921469894278516960258563883793424975124804324459074369488909516610822476579521737710388946889444963128038562065172819038678789475455486357083502120326599757176172932206252155766651204154856141534983445939167329927732082811811099826585194064336167538488407292063628141202875299301968402970230576796974683796277708710631482642194601086049968608258629268412207116734195466788728017035628274888161335762261752214665034402942532171078038953903662660637250730366655604565349737262992029954289113801729845735905992847231568844314789081252313617179410850294308978224698275024515471046696103556423109995412318334852859023779234700715264823936392793346291370164814705180154025672783686276913210075676475854214695697415505863398644468421219839969985446731814864562416284333539760780213377661430442695866735738052684080364574216990774311784484576482546507601490373159423995161780873592009326981133449170897122925599324228833564811848519312720884538106942870324595602711295417231717168989224464912584694028064240055970379145063183049764101886593564808107267831324153272682363983033815200550844020062570094135292714342586250736582907571231080445899111653702185116990631146888019355232345880273144223594787468391852825058591835579469964005896934240391704771738141076234129078361501497204757117564061385935094552257495865128867803440055044678288532265498322940408490184692150429284373268125442677470907726211898032762102337417741715005335901879513883840858246082715775879772576123547600749236799616806856476749883729084743802852218226202074280350108208598746451044973650229794526345315169099431266571650983628763690166088330061039794686557393133720944458018509041116423737840897191842173565617923656152612424651574711547001223481922338182375202994744741403732437293363066915806144488807663574999070513937771541024495419884997688093384049886050979500359911523245338073629501982868048895576163052270889523367278048491498362086453247094136309048354639493319592947507191135372813043513158190025666242832520069379735988786664953511251773648746048896076981882259816044963197608335115936261671884712523833895589064038798156987166637827060293743243433729253534124742372377187393071626876855518062770674781832904423604021734577811255557657453868844691216745440490360080209164983337586792087771369480929988670542975519729597445306411884693513548772014099635948874403487334006092941907437174546124002096312284108611942533949921818479920755068575737507579066732118995398371656500552722795414363954868787843703691628749519814032596609267273783226998440764069565865202610119651627522968460303285672012131655645144237335613999325511554351586757982754461910949748460368582506663564692887026110505247822023356874565200411717151549587523005643497460957731374720765530816148124930477901329961858817982492508017855068266189185957476092663757949840252577211981193584206354890584192115065292846574328445250874516276432382221252180263737413889180029077725873943079886615173796620247162871953908095423193740943383661690734331016194584016898067054566472197908162116893696078607470300162877453602141585140605101716850302524951908435938165626716461448044693802981153307533116772572224164615398494453058621955032463746107233284423133964546405802106202141054876781769680434139340763959398803789725670032911429709792568793995946486602154989884344668002505638217298639126669638218769255472986341978486996602417438391336474319973342890652120290812230640068907406438604577490988290026213116596927563117257326317101261434543389229042876689043073917093988768379199250608871298718557992173837005902145769167477313542029491848318906632458652832714159527909993741021309104538014757239901797722902556648659518436545942513034618854934073956127328118165034602799715995635087056723772765427597276707727582771372729829056428138749099111766820509630043243883574469601079948345509625324197306983081362909137708412292256563280413309293493464195008445953827136249789427711095955253683250645304959298061847401281505765347376368541535344621346574079862729064375828433239704123591429905479877343143161210240445702096173207441688569668945861351194697315057177564736351295192073173659076574306550583395837666376493543437022920700644658963195431416989741338909341357145752588681083873589943248631068423879894015261916826549479026324654484659546569729653550951906737374794126605141852058163611309860476870291295072932536573882381728528038535096684712135307949885285714450979456229321127196520168578099720576681623899491711446016482061978707710663753792742470736890527755555091557491657438445462984188471857574252657473324009290417690666572891247068789285515870478457395430465948373647403843338156857434212688194167409917413305977187882226267317840442922689828172047222245803599208581236030115405420107747975012128415556228032929318934800628471569683096908625322884773404480720832097037797886562943433870961702036556994048801733580944474206538884470920101541819487824476414977381681162821190784599211528196228130025844729381408430348256765736805051493808513690531892892926859373277726385647331725773784314714067082815699302642348934712273275530149127726517296365959312219689319342665820645733525114687596416827741150906239622062714408724863270919644657599707211349915104726228796690860113784078262173196928859657970185625591573593741338947830180824545455600081199680415236533012448709266762862758135233289576020035810365356874707930502354596248602811217986365815027363154163795062578906074646459387745349208185570233366668407578366658555191437868393179873259807166766568405979442518445974126345850387127406366344777387377754549284118714998254069543130670219009036002695797576479916031316198415678076915150734179364765181819697176070937563876116677034246529439860745000470679165898115145606380109317966713803034200244931534339919962985042214100487143002838297102347547476488726772831394400337282541709378466387734264176402733915792546009492735049921762346500089835682116649244134067565901959917917013342204844162096415696657685589855788067331906861056797631060586173237367467248323386935452815596021985262197315644359681888171175695947388357306166338516436853301184365570298151480591226733491133962005252472153095663126009323713281403524561831372607573897358592991928265394669653437098926253194778879046417512048394143003134643131284174797007753987275875938672299849550624465875203714725266082452446190953221857763584077553054628836074144029747185964107594186098084670210757915370055378578921503914422304226055225049945972872037323422593757120150403694680161194091587251171482380465835948292192687381973379869567597319697318065864555202070357518203824836309177487840517682580888948392226060183012526313508283204091035388666504233584820782876409070821308984374047966556466984896473630081491679480431200321530544074767426115188060051094722488775578317607957994654715843066676031580437595224234260879575729800125991658794202473811941051976733141482416284033206698747049838617154060747937418642837874464192491494367935676344497261913470600427315584825375107373583231181158861151461555625317183428700504132767441409607173920552213398251791927113623586719857952237084254953148479060577216659487346813121985377030265710386222619485805378809142663697176244182144117935314846643299599172433337064672564803217914673912603125656874081450214514821095310534468878398239425917323179389479300486953577606100148560452906800270255724228804759580385194239403048644405284675354600118702869416459222861861900803774296696180483128774124158648191850653074421255126195468484902846497573941793287822605151610132666117626366449906048375193493788931882306073385298819934450682873896733500789852145586534805369873141352995022887086159264457554878666177242632901829310042831304160494965266023569548836013471366252773773640276319967534586212227159728966606598607172994040201435352015341348058643974874919055881161771759925231268285567144865922837383314183725590637456314423362611837778336915030870480793763714345413387668804109433680155420259193738093178559426821950406737802560372730187970578228797931775268939538115644286246605056162571120117691721279283919393680497564906874402158118479796832368043226892722856525192765912328401700068744425523281181256170655889429567624921378205023577479853032950853584484714271052865472769373613773627211312874788898036854204116997702854374280613183209044479282027523177606581992864333355031056824231662336076364097769933924837235659072236929045627368226837333953212309657983873236657260719544690049631761729306559358875851160830684472147146783205804154798138422578101181388228928307522463956547772728275340860547155771071910247534607113116417796674295424965587004012617962743673883784051745578714602921666053379610171833378285355445031348800731156327402249207747110926925229569111522141287390567044780041994188397171325858173449544941407698679268198087421415493211692460938066337643955793486147113304795901122966614264379020256722248725076634345307231615927678059026602736911754895482165199301839819583679078069229274976623089114638098832355540708013406596772471285306600464990519247053675539758687216689132283398687090382703247936925807080337040418686463647958636827178099586627107958235371132475246723504895571389700341982004156626247023248190195927329548613357818510860690551324058567093119394217183574510577567149386614764374783930111599289187688694896299296101811973580686898223255484734511112963282981611441311084899342566030430124434442435781261342934524300900964281643767001348025221384885077276437285046920834211311109182059047079015435699967881225739931436248588940599868501171493425538800237933784975598005387175041468920407816851884211600173784140402597871621693745977045262629038679135702607075812862291237109238279325342830769459404856616889601908403920633100133219178423228942934121723969244461532529363202179524311127203410269903994614164225604664181919417991655314762287397389062374276774180141099461019584367749728083958314771458089423550832530463328011855575707737734089202735266879437987866538337735301468903667515550520871208327232248864970950883798279172458697013998024507180651089029903318508418457147850389779043390802430578804159270623366772699105573081889572443138130914110372615622897141071990512155537902225006604389401671277860190873210566701661460130113508727871962081891115009191946130479552013624101350273513527296474809731064448090754984508179259121498455786529676439843874396626006594985841769172236351101049452174029446657903413305288105472162020150311751755017950472284195917344713205450791446099811385724385284197249279262889686941167860225411245900230526551800407722940117214515549383798089062589148156580743976348002036045796778322309073340402978973332331150939614909540291526433322688577978082071221767954689353793887265976662306648183107183919751938264732122760787089462346776346517087387580399364191302795032132147344034542706872605062655791958685038611126346225956042445929650487100739465099862799586386217928528373009218148080803919398597143569747926148077904100735774751162782245008034236787575399832167517519397586098202184773485449890815338852761647766656382674948873464238650894205739164756509648893188448413161490220831488498293582243485638790629360388756811842905004999309899052797945296647845063626600105111150767418758961791967266821336287301894707667919942382735050157693685402345734061587020158015121939661654470186066201058118625419925977565374765150658152921176562576859600494600692699391772858785010577669894737187013088717271647759282908169506596800989127712328061773138801096416991106034730480858570365421429550187289958061837075061265874017082309073493597506142154544716747850163213090504799786868602746581704199979962626801639315679636616623150908162970741303385420580761388134249645227240730871461848880707229452703683666801224377358163070299634103789808052522219679493914691818090274369485970177181941157545870759976137295494355332796409847132719466030401973883932527236380694710842001672969680714749491873590373064258524642759503168702638405343586010997249385337930939408123748300038256243434052949205802507538135666620401739738614178930964346179245602608780561349057348075159887816156808965595510259981662420502901031408982829557731343953741451131363751089979825805243842120369740331960068666748719289097807135396687364148397241165327355555344527412304646352961554580220720739657658280895413774358171207703763638483711907588837241773821629946961211451755785413835252388782990581200490218375351598963276147193127723282132087398284162035801521821575047156133597405540376180773778461781652971776355210417871034863869933879226136664645454119812886967491726997084489729462438065080138803590454067798074497477060526937582637438224236196799352724107825487560760652158872146116980478838113263075544105103071543158857385082213823658391016403406396939145683392051210083409258203563367316074802549691499103320644523329953008299693908128351475670912103657322718869981232808389731618118161116113345371408475453262893711275719831976235909188752525414210110851282701907407924735785375961029432658288132149480157120782744101280872567596992569860453576163330371255484162019825643549351553780027833278364137830631522652579762549235615987465648297098204639467605821344939268039131130413958994579518281381788569309531223993895149616444746943587123563994304770811483905598457756832854891893609173794715317129315760706978288209469719676330892662952232013103916320077802596275296938474917780671539773975072857079289702814698189565113459645084100151432847873189110951497058721380517931570197440997144453039597814789541861366535404368572630956112597974657769118389803932831822217626490100414396212070898103502235910564693896536716341041716929793907006798720476538564071574033644530330062602641856071717833993474342456026847211425525239175054576929494717435914203116394253669497379266185868179147581410433191296344336151811835195210256693609636410414241605935503113062519829117670121662043376407915623976061374074693094177169546228740904515991024893588429846223187800274386353091769159083384369355222628022144805930069526585446263428865100607886815175690818669504350939032622267841441334241279984808106952229068202569075242384318046219740893721598067940094794895348708084720845914974090395775181021841784045573666402488964566257076942116377008136993364535538674185774450218029191482272914215646761114990335975946644621366243456420621737633724753317105687643455010929182471513851711949167000584808174557717863928158886797493050134642777700342124234368703353808967336950533321914063861108520328554586834738618593623932593112117009904886238783101960570020638798761767148267613110729199841831368778494892862313507929542707739900659611269163569386377095176384084817245670568686293500616119540778749050216743089815227986594076800840970929789293812272741604710667174968525530529866901691344643182748983396723833555887516617036179639867468866272828605304501739872184504303188449001375069524825509969198597670323243531504782850546953880116763571098433643994280739600295382825390331707268619416508679830660137819119947448850027719300567826886136696817355933351391202120361286498224058876222917549815681322468828497183916491249195424433590352842556977875320064491649196116849419686857753085029301410848955256736671784312223318273457751106339742833096156949528820440534603111371030919670261874259229706899398858970118886182054027348538477401733656893627545682945989661199723849582444101235360631672860295026603982089490381457905686690150084222089701830267278801641782032983708063380407261268649702452777210455279037604665464961653649081171811423220212345005236597358079880326189895165678260223055086025554700381953562214869821417851084014514282854729998580864400217790321864256747142517811718735812465666405629326197077354660249759398436426984493542560364163349056543280444446738411035861243132256841895397587631866562577910476272824076790884393634445213412166170309320079988741608838847403488517001912090351659270428881668139470822860799251114528598450068055451629677406028798684590862777984501472576835066439701292107376926752547718968401717110326486087981378203459426609701990944388103442633036585613777584901278666834466696872652205367683910762253104479626313426410986140043631535679796611117266172117300079926063750194761489722212774721771136966894630126913149137993622958760053643049102335202280427995342568204722822789833733187478121619456448576655258377527920685639974927660792391817608770909002929151661678142460751520580909625249645921448098747617081054565142816625063035719505373181682555260295205290358042868048070568686700487655801819091992409767473344479191292395896212316106792374002818660955669062988281783991284962732936021665234543818967923730348602832844441585853962529164724914270842496019324435069657427436711088790054908149968871014060094424634017594998263479815254994153912083075107489091589945547506107798095473461661021590648766040762808472637365977755938465576505855436450761352018065304454049399430406290266418308698568029165067927649693964230587610363632947361065333022648186287623721001596261541416432095878690290643040774128001714338234863438122897388966175240734806062496051630138849353104712882482868992438597406958529354656207166585247113349577005689166636064093467807573444327983207997459356753513092501640131153287320599032792186349306179167660937090852825332917089544353243612118443405247878112562581589054430874457480306786118813739829469449869827810475557714313379259305217325403608542987100800071318563612014039230149465011118037987876920469038185519219614503123766175174489231166099400580823758183308511927368678046600341191805851596880390416447469662124490072404299781665670611554721986179949784547211348587141267392718015230598725572069240096130107324818249228639863606498442840405480853615348566803543135015503854730416316622541596243023910949121239304037101989577626201147673975917094661241037743542019344275360614388921427168714777228841126813185313766628860948855407183207949530666931059032305005953827160699357426598838730689327978931861213157486065055785520708637734495600419529739968041443049168415046489608414602350065373432974509784322229614276369981684307768355683382780798679865333026570751868514760391480026539600253113385870201218630209554751665180478368390002171001795578328830990411575290292966905233389149223349884098869703012954727997992270318610255166210983001666384655264169771148545837303174619054774134092262727855522641440820538861772806549497311648485075347929752809277553674947648060420398611750938611528647331975790196060378168035678015750552562108142969178476586633248612523514987108737363032002024136868664586100981877678571101894016853921929512117038749628646779752266863959905714859356169252313252175223619072182507970535222590818277683091330352621414483649932175438203740194285074681104099637269957491840646689434716060696148191168943093018758865809031139607595801196854371279682579102945592368340412890089623384922891034833419595256418637713671052638156164529381291688732902570354833821608048778352374805494730879892324459073252433864009549308697646651650095918233010106646580522491408563799667271245000348636168476270083128995062339573009032172809213363822778012538880956263583544139709254934722931790114032365853545991824942041208408332698248504538028745107849643468896007244058562642894918318198188033847418705032677355435563595694166678372416196196148122383480872906632772603125093146720111756497642018092535173186201447513404114743713504145537128429272433071762034623006011002122786486667927057005916075480744258197483901932566196596276403802331691824783744118585247432121043260185109863146528599520490942149455509437176422225942879378801451021398245886094810424863310057695007805748748727048212015427408656416643600498556695933391788263322134112019588081327977849114810211064110836618701780123335226273253812316408550029839481921494627973874179320484007840439516345965948338776502344570439314826883080473854472302691104234696458323981214601202517683944494625781668174900677142639422253601896615273637303905279941072297439884743238767002576993092456710826128492623600074196424791284271742025073116849188456014110198197821004485203540579425738991605835559339807149425078483315009855922843560841102932233176790734682777389559491851292889320525970119419236614603579425234418625164094979893348776598474593176693894614188696802231541934899283673207096810433829140774247675144378640208834657700677097580602530692752587657789285275694688360614456615537392670381334674376157752294264773212527289109679371732631112788062447081558041015946834294310839243010138177244285830680943394248061632195264758156682698013705029005255107814213384662250030682445789247520461368308142473213573700110535382101111786382512165854234719370518561587865762192999750007603699950659641977834334415235818629926905650549572466871540623664238923753508101925931988692221475357135479007197431114221249158409865287355658944181328624096960093397344680977083316563205118302100108303714918830188823370207723184498289738560266524537434301567587848020011999237204539162632598780920636150629392776130083877758558754474299805054455502672354221719171084182790320006467306177801883884174114299257906849737624104067972352005725267946656150398603616364666599943842954938172738270895704058276714039934451435003406253693927363070517137683170260930206623573518549343983661504051250267188743338657309032620654341202185558771859687913812883340234133641686913476833650997166105813236418270548309693075231992868739944661066517559503810200085218404830618203983978530271754757821095019883305610731374427126704561230639162176575520421601382610546977629661775704106174423214297685561215961196943966489485668096621259868152518201575424364445770278803938445708464470596509595801475959672176730114502893822609485907401163612983020058571316999480579365709121665328836259521148356628596991418321476900282736026407095860266310867006836897645477936948645252883945561120847306088290183274456393057549283767930539349059495612070631013518919584577658561872815686391520184440670730164535069610337792245104628758297978110265703738368950406236868052877630710837967977019497193355881721807840105945474802817169835484413378927282210486613614352678782903818870374133196104127569841753205406286413885976790173109241370208640038479736912453647045646200546382485718529311081345685189303357680482306510560108457979202451126551979183957778475863075780464921572440589060999450379882209863170839162349061913364502475385078054997921196018872025933417524729324890394632666394712333870871259164230496216585400695305657198344832754156455919636032064679608892479231386521487468509163795315292287602620922484838317348716206516407035194946782662676544322740303470956813368087788691236574984509549874689081329428472341886555222677266158415763438657472228599706077742984531426384882443228720032723425798669428334893307325304638972056046141337639058573770805850298402971687466642571248379253701796501641032516553415188201330284348695908091311615060738347779466477081984683248567261748047652569136133801734505693856771889034361164572592467911612809809241082071978200385346488843928272024087621126294535586726355329889956045671505010966824944324038760162793534876724198248255735405748460201888428290253039837042671082988222567689109126137538041542774886287823376991784360427342332727657336132052431781033412086100092367267724319362815121961012616334613636415264657685525396045828916829266090383826415420693287499254929475108154757117784393599935952380835830382944097013379775638211288505772889863223022374780372817235939756118789806122443338714948781019757213640654814643094380926081918379994122465266018224818184811074103217911938019542677666090688526650587310622796556029935044884481437355479147170852288798943199860046643426081997049894826146698525937894172067247467930012790907665598173483694146225564489445852058732400425495878350485114693898265979799418913270364479670956731163550948271924790844453926905149168432728606672133700624694434097862375596893302364572995520225287449190430465408935754819769285970142044840201332295916699708862271144574514796848348727263474550395162475062938700966666239267791889932634026164462059352239223010785812284837906783966963349061593584854642883304680869404090536287349342477469758872954951374498866404556474798484315431405420644134478376285585218231085461136392770362682321121687826138472724397953670493299905723353641739995440999974574559372145681984764685203502178353878893681565853500509181646977919170746501336909496064254707887636591000198199919010976405023430907460965964428845954884696066795774119366856898097294463846741262581117370255205685013365333673762167387826508964319363545680707946269678059273171685701800647251572469532871211961665425410339974073932721614524081222709066741915483282543495053319001493780897463659535623852316309240391977532389593716757065854005942451811099433483099562369669283467033718921053453935367515168385720466667001333828579431130755365943599899407948500914677740624430426260716141771709599697551970065001400660380331253275418676629713967925584834357094858329943475116913696553305298452281826704543489292476901039339238889874223763584245605826581582404699605087641722974215178996480400098002268969561189305518687543456237477417438509899976829208659989853332488087449931214932918026971153536311250665029631152846289292675283403013171834473485654525224863124137998992143916083503564557691716586365405879116104728804619878170233318060188870060579760844861155667336228915350253716539389345179929627752974800538266730530448075949233877016391360229019464612357540782097031256884823351104033442441338047471600341412995944269597744279532412753439245749983842181094739935721303023975882465051242794111993063260104450277437543269088475650786113283181216940804579509098649817961474492412741049799824111748590244372625678250405658881080480007914677686747516826222986828507035958569441588506657734330867214021123537875646378083549100274147915109990560540453913601366454829566758816761465873268316922298093689425363257622107988292043659408116905740185927960704223478242347879133994043626113706888871899328157412424636209488992152415146059332376096403671590119687726008333007699187861263344293974947514038722694211611540142582304732916312576421997878991537060440800346264972450249379408842976570779865685066539818803855763137658851751734478452025072125211744750963217030222610321547477173278871945046141861130011387659769540787784468069256020018734846125539522136598243758163798499958485879243481240666242406850348318152699241624324075051376553833040046670350282145286041978345904651842105942111380685090719032360880047050913244768485883103081444483250476991121609257003530034747608051789687431774974395241444573850093418349875664589537643696936509798143917195003886363327301017974026831818394873158598490837896804640939588486258727340964434224009438871525920475894639285494149830076500929668629876717076212144587616463908499794396637650099193041580220222768044027034172230754747149647683057261674973584280886748051317418597677064470622116450677275001973947141366378748349960248419267952092924350427236285185795032813578150925216520808474640394510838344274704369591840994487296172271339937317407706356102023654991362669883179256548213315045252833198120579007286639121314750600923088334165518255856235902920095642845786766057503641489958088271229611201819962704820378868229387741716152249535987993390888551326200044947632308599242409114554521044979259402572019879692062600167118156453179409400928324601478292829030235752493848925917126384017880722187798962493772725409803409743189393302390098436527790946194250983822131427989986616492283565751933401971110745734524016144254679946229692302958971904299895789946296695001427375977566471001503282266809364902245462681285250916305789609071267064720704107234545047739045867322454795146262386843329318706430382482922794307157043517593833116725615688038551277412191696722369688668940574828647954057335578696637653672522003330693972772124441695533880909815765161406178928519838162084086038245449035795808127278738967740678784294405555418455122695909391426924504623557731916787856707867235705008465931706170789532882855767909245082230847806598654657873593341688037509125830872736894611867430296512540076694248376531079300066331124687998463852861175899337591511525026827572446082944846280412716202170077157620334005849053350189612418284744670879297145288841461770337811600826861877717965225163046562747813464606310060836436018251056377857220711479400434758865203212437398543276230686951253030584144332368153977965715478899827279648955003371565199487532385626557553806837482115076112216058896533410434779931758425071767411638579791858140683727832623321485383937241199015397329644050880400394364172927489904169016592831648799871003161289122292932645996305639387992913320373934201925473504281648379000187912357936112486549882143771301674390569173780926520703215692025892224075277988025891510552617077638007855233643241389117047793937351938126538132234146434720429660040340337710456302503729356741727407984411783912643471399487250198230693293899382470243104256013197286324564063357041713352023830714672656128375899014536410427020868046902055343315546038905654113118322655422955625258646464797450870264708746299722138043065853578195581461802729355481153935472919405038197592030661249197374013674528396725693598034887824060564627561111229749821744545504575175245304059627330648283456357947081351705821707815569136875266325841250798673891899542392862812882567655684855528657183284451268914672754371059261810031998088511031857025892891790976652148649929402165519382501525816548291510086710251025114113506217736456255891647713080352811287993759488278976015955785987048180020188750947614576049982110554252244662125273916615887953149904111930949987941485122507607117875465312237213575913241166709653386964420494726036503748319557385615657209393813601931633237512829824151673608305010847891073557175401309257960990757233242565675737675421060552667408519474181101215931168898308724863212179421275012359105570195320304637350287912316153016305944006851417730708376412846810762058175414047121754170060361223947896373013265431463044955875319329522930425702599304715875318791081246761801596061372829774857876015099977031520276350520023531694340873849655808807076638666545150729332695421925918133900802243937540730442963275267237800330676636535474148802372168759303135174267892581945013492512278323426537095794744248638102826509049280250812778288183498942508495099286569907332104934931059458849864425271487068398935363470174275312810408570957970594930081100906909672711260012471286595297612136206490131123082760664334247939401243888565499418007069616899104300356075111352164446456701654676519762919776573154319387583280365010484262045079492575786870644331636949684155634996038549798333431655341834653232724247314041038711348977137536864662481230607830325861355519404717264021315723585548708033151811799566628789673170004488507555640883885182063461293686911785416180645417607879198219109259531092455576833434033064947766610567227752831173345939783570922497742759066863263528524346516985734292371836593796928090835774687671053115484838276474108773305781290066255870632355951535461970146320627998880631304886058210154864172115781477932326640398719536651113293791356788288344485588509367428958134253116120464622442641926735197760557075686048168174353837881140708369871149374311172977425520919457090167015043400445900085869739086816071606039485077823293602860815756278825406698265450229584994012691316609723597596209893923311385119683794801320588823585414793946270329293196779613169287653466552346822091624223141870733436222958375012089507239461941182883049309091128928323868052175195183154700711715088448525823589582997073957866724850585593436505859645067945049659516729276047518425906394364949274730790545097278348893270369920235815206504792729892750547314425145927872743499285242500471984333082981819800461723822381748741601831614580139460579969134334101051449067120993549191014050696611227016428658705740063159476535338021907902943507340481093534190676614382043411600741684196571373227971458198903639307222502821863742103965705161460922081377748243128333469827825857380444356518773243381894417873721412408828766732562463867505231696767076573140642515399068173663429508253484330903148671970136957367389702149788661592522949319330040608353274773985934076805969847520174792046511103179408352003869531120793204642408685491362893245219647859902354244227974933894023660168881751344682913712393632983595161924347180249035420221661708586068600505230705788209832602002753778351226463311361343487844200991511156438452872001695903920637882466994969198688047983806166833228850707293949037427422110027659605858788140256254897549991222568750438877331595469231548317192095833042852891742425737048406761298791135679498924598279661508033532767982244451455016891135411728446165901435989880214087397968734098529916317229187923576727936464776523114250947033083266522942489831249863220015719561894926115045183770267952379505888321508573968327948843285873334215167915234618755423840881638629395319227015358968508292751997901522986410905980296089479106567618511756043438613126875073579750740102575197922712535017053513374407317144337381683146742174193667570526488093069856337369000393471633210242685076823774182640237306909955022865694126800690685597280675408222406374898536698059203118325167561191414849739362945129438042512539649311035909350775922708148002509503185371435621109375378508807226148723734813922910183279074438714465710496263537409553004396531877840596671581699557288363232712696914531148006438280295008981030007443887325924430752057693069251127487513111820816293708553916095399749393462381109445806888729890314930468149132237625754640836337256730805956444247009913896938383658705802292268015286058750282837019579438848622295935135147370735275681165746863954618651675994505685886885251677045050069935010410907529851656647199808532036397780518811011249027977806211875991894421786340788132655796178225545541843648112864731402513329303891267169909953648287205604218593661838600656217436207761644740803196548618451052642896717913160887968209721115590614007017892660915658666640471700178560113238438991111141521124939019108770240709281690783305762167385615763026973393016835085637674821185508335177985380318728626588565811520611780635292934664149150504978683656705913449595634832158125620865735701905308065413518495215332500337148972973119507126465508787861952346966532900234361060491519739573113791389446227438571321785902490877062587489169109239112028560227318708746248987988941512988597989549170195256430006017154317555829875781532985501555497238025549455069935727315839144376341685424007406810750572564233119765532025354764195773508439868129013172254133126455117391592339617200455145287809515507312745843958713992420525898361963554369129561228975700753989594500124366353750168587676307386318658929616178041292493520183981829522800045434590345590107478448363228890990031774601575183116898372790369824876613404455075816742152333709816045037633280381895398540178510334237941531762194188289514591316090090186267097779778194914587080574629048468808018190968944555359176116401746673363692900511507987218871071683976040933070932154098440894561656587106121573824861772832593598832906000497779557160646114854221313069379279264184198916814023690962757546096609949798132917419046941454548415928397078575213575048207465403263346467237808473771529142900484180820539699311131983725043713903788695489689388318699046984827941312478766547305109897348698823507809362702655615316236936477163469281597999476189917475060765522283113217566997989099892639707041329835566797274201091376135441397429865514788190727212889026864153245119564436673122509091779359722724991658598479353530016623699728632624801002137777108242134168398251977387356223599996688046070119517194033245007032042989743723700243491041670053482036957150353486563436502622878246928884662294226941756973845796959853084877737077268477300790574578183938901321658069153836893948158222208439673891687587263192742385698896605383853465440485157680719542199904823683436939776469724523669196456185438092501505970458941030024412742545948250229727453190921784569570685243151165205114356996336875611903524681593803007279204474489042134912984660075910868103820180815245823571892197560626673943117464922528634576649706159125119938958504072631191656467055401116833383342290304067916994977646968009418991003744224936968605009151442531305203739848461677151435978991287125515830913366530796336517831657174179046943801267816093036843012596150144936161136566394495219773159519037195581252316406949546735061589547521186416307571115110647302637620813100178165349386579231035915549961645238323711190690336947706595699363353585199225887862578296693459233392871641971444252177030130400067399243866647309087281465046461014488776679461010014358685164243699966671403809812266117446666224818668358634779611199546964267229070746660969791350946295331843062752030368008624709303595641431759055596368868646923167017291380016851891307966397779750425242658994429561603615949541643027646024338535206040422676634137747600249796314575476259678903565693111311709041711019237501309830605038350855854365593993485698855277941381074133193742978163218762618704049343548130530611777113536051017050564835711723949590652490310277629811896541777335725409517508865511484539354373962553606017808387550779517111837748128549967731698792711523617782861298108749942835773567152082992123322312319429547146074214071236750679039540969955662493119147603248002584672127713325588054464716727341849126716018315597585479299015249026212771623856402989422345857367504523747867098745728603631146128136324160200427642360742818620168931696409988787421199177499767829041483550908380423437771179266057102932148208034118680937815147643240134281602421277242288153693343335305734598264392529504006804250217465184996036833220906763499781113023125501470797300174081176835101017239138897938475133003084070194441273520179918933516710041567821110787379284751273607304926715657824127329548671843865217606728495507380715100034482665069227987562582399706229893625110989447281870116264266785211330313455623079467233544984281915005091299392838269209071731270443579032484906793738009957243727187260394508321800895849200257823667442967185596790000418129348756805872769496869636980471977917661842872961820684526017643358597265953411287085270333720970133354381513513733287000427480056685686047829895920396147314582176297031594120671175277738213094690283033718387087373049225351799708914759433942800661428217166877899357755743627971875972199408362039676578943614598942058159062796367662136454963694961166541395065414446353932970758132716159111681559084692961241712126857169447300092866761591598958028865594243516557730439982535527108300594185817137614603122958476897603571191752908496761400227618945638421383327307141201599505325706113730297172980345386307276426881876638245930655082614996742958626864875726839468532110681560327650636080418391184628922684358976478432047340449876590997471489918936150299281484791280937993275807288133086821014723278289341375318754210679799008258820281127327702522491171438711140895739340856203027082181659763963411833730377034152261936816336073536942760430153150647707651082489247114691391693510880350895137084594593680745378645061498385858150781982878254867751347282645728284409860079485355284183837766156981886645616452373230058894628114322487066548752831851620543180760297927676702447874717605220168489349826311489073596197437282236623300030629021319546653385387447812713949785665993860245948177157539986843079551114387938945690828634520417186137155307652706007124802184127415072706176772096886377778249342786150923279717190055901375970183616347958831938091578240704176206453032022947659204898003922074899214736006584137008263248238122169451926360862937681116537681006238128700044462449133715312845650213128402923340523087681906300608048728483063488487625052829365429113866675825604206369738882375449285301310173905034445622694844538187889121026440544367432116158704131665906500647674869537029313746267777672546326569660140815755532958139951421430590475688657649409103954756387670353118746575231389333036876828637385418752219751258165608037027506052611983157527429650969593446691672274543101808397474449262634859892356986123151241763870607121417662503102100904620002522325345106266445759097520522179484799284707663308588808845381554949977341070534100040408099665522766082534741873168487938349153089965908860082241786391653739011357963472213926343713953527359486026935806241717590824293820325615623111489799851193442106860184236310969742524308930571623631623241498283966247793551834855464817962845259376098292425188487975756400952189017306980726779018158858161220909389484803390568775284758693951238899822837288218128894371350359546487160302341938332979599765065547023721831550682345885679425034592800600005902903920095014178249386578861960596328594771071362606908096802714859945647349610188459610942338188010381987269054713707571504917506118009303216306507896509230310045437484527031856275923768330264363160839739621939505498990310574024213710965263504802946501632840649346581026192413820369516224050267762044623273690070763191449941148974884349767386253307562284959055544639013188211860925279008653387730065196240372097360762874803442884107179887240533030231171018534051998373704383856785581736011766884890555502917457516821346451612282156840962720598720878067553650566992611237528253392210590194732352019502762911679429272369398209869657862011688812948467750188947852260765968020019084235762399362369907181680004149276327297102597152273736943166583112704841023759898100199408729540290632176946556446355684521543180424294846600408257107528886998764769240160879150160757974653836009885164494685072199669373819214545224834799876931742042945352145855543470750208485340480002535110389083764491178122437863469950657973490890937689547872904522695942881789874942939405378788094067448370312538550509428625501322653434173369698428722038453173242220773938990573611412916378174362153070954823488936772468121303195241320383440253046560550652803569300976778486931655144069361417571051137131368984004157878509901045948089050251625196365181454838366954394860549128668067176668846749395952481868608535094826041918329789963792034302117314084007224452714346156497175452112965744046839228182743634183351915313822772788885340492067587926732976161142194585544123783341492504838167672335000650712419053352278256870828107332379067353662402817767513624129342313136943192646082582181234779860051923177877924028883883759058535124187251297866087345668262402372142868863024093666708286164750409107331289736213404261554917220618517811558826230611804282882041483639586833083194547956207871125247052981818621134241698612208100502462996875980415484076265017765306551630711483198013365707159790050996348940084365539549676692479179295815201277015338294133854165848211081906093636064507616828287311365686644459773427772980160568206568023837299735614805985102923540471692433403293929629714791604793520568919908138827942358683587132043222063997966746219712978603728134586256741988917747425112524394992478362589104330920837911341158649456292957811578819358191613962438773470516255382085929043426427336235292256224923191744744665920174763646845080546845288315021067782847887861906843234012809457118200210265845123538131570933826076057046528723259181490941416123806837915932418943954907108980047918125879497750099620353340996377441390213721699876773342868095290453243886031155233316643174658161960436570736693590046561712423552635039913891157022107881533200114617739938441267810098598200405267161924426450480920273335782747000792604935108546866153128087898602770269953253513197743347271032846408847720644659608733057650740954542550882544100628738008411461701816697223854426913284581705009533873696451310506881620378162811476961255595057159035106842623614537140970396440353738451511184537528781717351325472327520732999062899440631845771423760524819377736003185912848073887213953276529389799592738233933528045417226737407138732059676164631439637435842734015114297223294132583878979505378304879405779323738588815300757325011668750093040669033133549683601033220417682398549484656723153722699415044235679991151754687040850925909199117543360488018559553595909379168189859326138365896780539614626652404547229491651031807571590262277657617352060392931495501271707554721080107534030909703278243369776676449362391018933048832721516448089760522631610867005699631410205204479460365836165501779038140897199195466017794950048763406544350885803549016757086623185312454034288510806616559322618036340178434519011829627537331467855057928023768866475395043389169631319257944358792826393741071627057276097321159420472564463653959355295492486907251926325308896360772477973612652606307722557707824777478654042587961754126324577009005729219898974990335516866354508864318735553125727387087386097958522395121399697879174658622796397379700316985317568883002590361010438597592774140693704419896576906401471921705989078532643009744470111038114890153485764718055952842864566609304714846177361414532726879100183013537040320873823920198949172370079176748191265386647544893588035503841013321000507031722220752164927464757335093657743140439207652873228523380182208420578728052864941924433190845659985233219449896284332084733806687666256839286793328035814643920353554161018787918683111595084294682674712187319993599460039033481524621306840890858533242544353263826456081240998758063913652295117376554691564816801493843998642513627530884157730036671343993082647374136592305823136825115612349438688272799845030167469974082854081827743595963984031292537374323933443379904827925420168278620298595244453380016189567097138980438010294881453166618187953534905186328554202093246632501597111451784299513225158255147190395645768021551639477391517468934478337961439236611373439943556896092104493254886929820127267505222760352384049292696287614435385270294629349972678985471791795228406673662894801474214946837488439826280091728336753451819906627328585200281889584565404998621732330444777643884854954464792563045874902053710895218368769616387248050071509218807773993417074504730494383906572939724704966999382652408184892952682514254658632688906854283555725466549110401958667254620004324309174429451627200418486825650505586900934048654401863746534232162179339729352316729496319615752921080218536634290054078622644023259264066753086117517140728017708147348609215406585074000328228511939496126586909225696197994815548403500101115442616212347017737551904667724183746988848022072460902774344431684128917692471524491244885586255220115912293862139322333944715133272960109527947807171775509031347363019616266335704521560671616072606828054707735785933954047868993231258376325113830887257391392722251664123459762497899303407462606529582978008393856672266205703392540041534933477175434335106875934478365750797770182384790550118696553255889881128909746294841629133858420395173198198658003318294172611538747884662038636007052268769247623354670091268062844995567600548861227793392478292053368494188954886238789114960991518955647369198477747258852167178030050234786433832648621449934671905025230617845923506846728002534014229267952685959889024258800644386055103170381913390358070303610057368956231771609218681474626931490692060953981231054564191898386847068187894758616960805038250572505169414847488167371632939543315051191017089148888117024729557011394005991069629702475926475010566900395567245018665866843846117066230898601580254403923946197537871694787189953684317194747252112637513834239719183156722312727405760113088543045015857667457518484257527830961642620371173551913118578969034432211179922060559977563610155638061375448012987641548065707314619804436255058444446954661145221621766668164450399440984906086501593707826680885096870642850174740648041897487874150893269623076603264319639360854126162858407198298525264354111541264685509328380113321089110983939027265769251545610228868862461788510371763092845060819212883801335964459141388872256054434048312449566788239740674519507983492730341172773913079847793391937090501122521184371261166410680614889970810911875980843127152432537869070657928838874912589203867390939879386387670001266212261624619946682999633629266977437423103905791638069220186567826633870847392328929621236074590573057738662011169604841250997759031392378529535488329196980213390155997275888384256496868345898115979995584477108369374304118704159988066759747014373560340918767294787738956074132957864664168872028126043085363212784525269529840628131659565768115167910954415319875831006475077890634225595219187026969018388734167139010275236051002139762526246085873076847750938759575603268832355173813619396622908746584249733886316221921274018187818456957474939065310288541497556678966650560201839463176503084913013416023612325024737170353738120526574748189196952225176643053168479298929542244609989251474940116875011588638920314406061941187451187164849185543521643984070142978884379792741238119352775675481698275743666791387014087611013456555121249336670952639074782344522613830469683909039631327527572067090264535601089234101612200566785643767442586236879607738094490862174837836537714376349747604550133750930698279024076879681095978306047315255863876083912417960932686706639852198585490771861988447474191545597376892896184321838247076489644319634648080675983564354737448081247469945753320220073621961328591571293651897387604632450786330027654016765327873332356161976139179342166172639677178507147884108285235693536574074569987470855348650820107924726374890462237299083322879287860405537145134046605539044027509131070213997826123058457765562706393057629053537925941435631458680341888954447207636769325352308062996684601966945350374630075251760685010165651336039850100523528914962544602192399496273709688800891206921078206173028111978236365097802120080630868878198653468558914155719586934485419878829659493242820605560289049982993683535222421240955456903555371037799892419378139789061156180068714474872849307029674865682220792034743778417175512798966918145519505731812424197603409187865794686566556304677312492486725726102598075648925630758119340869421362617009919676685181882166410292878586216899992583773607233735368680522489118974140219214807903915239115758758485447945116784762952903095962205820427460567482160579488831745040130676253199719794547718422966461666594960143124783112933067131767654078389854580697783034393974901052121129557248850447015042061656443268899688101834628756455728134680644614740032894534280445090961622218290436459648012359279551822989455082718201932917542905988281470444565755938758670257557276199421958158984374407636750101107048641995320497178160821754275693999818719751561496815906565380123950114220234895625908888875731494244823841208275385484585018388037443473569802262346771024615381049745378386676856528384560549126471628723525981871523845142302432074760860631849064681633574697664027713633528967780919413306688319261224185093492612769040561364553514136930734060327980077375837881092910220699814539298162728241280869419782477254202811711237904161135528444238490955371452897372805641155247104077890051810146673373176563213069138890610307887969185348808175134105496044183031907339864306924901523363307396829590962704705862071489439840801430630849753986116791739023953639703737399182335813830396014757273087009238081377105797857310478205877903513392303999365452102656367755328470411354332025668692284281152374802159354846168656692199144433856044421312768345306904305893943981791394807168915164398094150419284289611099501302942208117999909982291953765838277479910625171888844271329187104601361276358640034634365303518004779533727388379189297295407675456039696479591720637835398387232345924882337602913937513617162822749984727005490193934082306066720374599716489378598369337423275479791048258504887383505615688293634304554997322825242508498400334913533882986361916273605219931964331150152537806148126434356160567191106008119809743774227873303262763572013069829171943780950722353606535429472829616915188385814496100644033120940588153146584100632049775650103656489369983111004241842565106727446277604195534424397150753376710582487420501599304906562187645552504712861342951259502218173761197925788368169431679989147794747155541396508247139369297912332970710150360471391298440341789238453063711077634019942209502441581705449107522155497741060758913917520111066482851863255258304338779790880735323049627092825330091395987718821319406784114663431388236851221886422690650196065034523076231078609350414513135811535219771354642373902165480545767935255683089563638168130715992287137444323606247443743018759303321129283673910960502521138805722710880761872108333060133543245331178830946463701495877764428392802378568041114337805022642162050844306162132620178952679818506359121381500443106711184133154246298346215215172174149838133776528636163208673077032221783238099396794972150901957122171134380389862589779905900036638572491553766034522977739985017249498343064385212257813577387192980458893559483730719732953480154169733441912455472735948154683177560304363061138570193456429285303519045004581599665490138576509679429612952191845216064365176551845558865493101461877077764086222472268536188794244241029600916343959547586809007981618163126624851012692297668712032221079954357541105386330854496112947301457703150482403562023820653755424178675022091335603649412392748462436559711997142617891873947746457100892049865332052111667933692479763077564465941917369899636863218930451916375032688991107255852168839263113340448963082394748065664105085875782899575923320502481398572502603582357806120325041936151536984394676721909783645836053459511096120221520929673448719761352636242416009720894059739402396918204669442690190978683620117830297435541599225333109888845341156901857252642723458244982595556651144466485261321157665513574751447612635928072475251409442721950430831213629886031290614363475531300596515398108885215047932086002089242727801709716345119006342987571111824471931411139176950599941387690843013565560421468546588354268616903827701392463290102616977822716882280405192966493980271962158301543727377083263475587277295532532202308255164763124289704564942515714261919812825944505195875682895054937478114265829077445459837217490235414239964065926948084132983765837373595214378384526581550167500650328678048896249239525370910463526673970413964611925059700408289223739569310731463632138519666732939738118094532353040865575350034073910288385861139061362936342232455914548552163700350002181912676807120000188791508763026439737097134752870927346528008197053953078081661258096309496157907070465569993505624596480655739158307599111678349322795986291827149311508387022896867037559002228188930420167088355407547097088446456980783404036895027622486002554383450823598672089651839368249430162343779422787177412822715247200611485036732216541576884098906444811028045100422759348463945719058791080450208613086909222212528442615835740767467518567846538078577861867868426705431561851507829573446338120164398558893395436592936727796637087962326928317843564225099441852403804328872166002579738336417682241580574958110156490320933422435553264217329655123778197904103095511196662898456601187139579845492915746143062783632985966835520450123338562878186321896695387716366006790574270865817390540719476596071678985105983636132359859921791900997787208597192807775554463235566142623412420416837890936029899151750301418148603407692145906550231487296255793525055172855237838839176302341673854323939888917479375335097260205898509341076817646396960650807548500110670940662211970499413827479503804309058436409776664798284674861086626926107269720972575322447939368474605332535267756723872669515606843171125457068406550818306673059432021608468565159448690899379219791967015858402484311546931999103146413141325570884607732665103343395738359326627129693444827711729594751488217784659783323203242115210973309548176662719626412245969218626669174636071137461800051138601569630890058877709046353181504389679125420196154240446881797954405201950643934149788272437424437453012043237011140633901019768680932543962431883695228379092241759339540786118158597853258654384357328725462470554979281462099726758747986755261999474569763275781117581800643468303557733812469201908810975785217837368039322120326300487541912500615245762782371126425838307962967142967468025263058154513001045079465226864225996040122108193388845880247753152545466750194947109070586646869944365743916261558799764951297345635287581581430835599806819357568663920060648360001598547671873131419163498762759648023774010758651536923058042394031572112987605289359683465886287588586622894350867109554335783855294899618738442477831863100432418353959532742100832711073950837950550443425197972104089148660753427452737415600333888340457497885777763885245420488296438729410535784801907746687311384860324429900057932480264659011066257044981648050519985093789034289830802024498953900880040707198278502172976570416327838721071847058349612275773988971414286143719110284475159820520832953168296623732314511843420871423903565058995765976007666023558036492793718218365492483294654275851465904068025721933671085649388820432782581129641240043921356328650767797578108335546868556225431594470111236431507709052709748434450296258270750376874676992967999332231565654537050021692743587069313172147523894889104140586614235890229610044170221246970477025093425486203361005924737229904758165977993643891321949247359574884467669265478920496321683676285376019157340510580836502320666452234790680419679464359958277023387469153765441911137530137906898896416350918981910117900337610348021911986267888113623666449073661911555224916707134120863390926123673350742037295842105411487920146975936573607556127424331701215142033510886663044388456155003813960831107969420355555568263906546423342890222403440947305569523442190615242633468304018137899757433299715493514999218095799674210060909881473480429377747474277617002744026310879639452752206103837198040941151399767409095103118405440625271397380571825876302923226791368328657896513838426779548868932828767279512829012529209126405099452712099505618226094450347340391679241886481576862847163282535171177024638645435863329092777388916757720760778231106392096313422948758705261115182678162987792931611168239919760783554465152435424885773980207755023209816193040036365253655392661299986483812147254239680308915766309858725675058337310343141501999529342349042589223811042624409004870217976980420558922270442399027386545133000452183055674543438776364783707529720196980952209754431378536649756522299710102940397226085279039737820440416438353710567210961853681891961069347051765479012989704083408224587237733563754778126058754037466218851983046580779303504478361722282447511666557686118200875625557314479033400117818711144873003555728401519435922625929931428565126151383434433615089282322056849230848052215857038787672650769033813085130558595629301421142789425961964045565580540106482212710440424736909298671902892509125358679664846602502021703310898142441254257404752834513184289334901468998742539890017236004799675161510418517873740966065468229179329472440454350881767058459711803757380786578844734683225720423572000610673896595267152834319628431037352750988989762985058969681841059871873172306669541062010920637126110349718650283523567941576107677206865068662359994377689158972939217894133976760852934802081144211551814614923269872616260101007880365507166175764345022467791505839387642257872507831969483410371212246631485006175435526906336519350152601329941034141777800782775610251232647181681878588190534273293897865131194799433018350602506396505664445710348603778857616579478710559776216118229881446798119757239583256499863422044570683147439111321207412339574796629799932647667782996319594925938124245170163526381950147988215971103556905337090904383900607244767716728032969240055558607147155280576721274979801495388367081242009910730644597432974846763031816326427347899039153333126090847831760188793759580952020827982549955162590653864990331669388617869132781714382811980972864267931752491629100213384491039866233648465777778517741871369162279329780448116160659704857302167136015710598049126655713907677439449417927982570448544057103476867465274670930562713002054605135679626182413290459495684585772774560666110261412730576767156316091749326758813928978361598795671547001831685342132855111737073322577132997632940684367776919306793889292231108078760049057377702293906492414370793001415112824882043351462859042729389968416320112338650719936762941444008162696974433338790744341654829333211250065224251024403454253059461198795980323017737402110788872461619152219631182254728563629000017715695886222744469975000847260886137832206374460323803673930091626520489746052308117148597964160251306865095281057157939889301253470390687742184372187479162099982799912614780561093536963051447391172555229312537885735742177080459787134663776687416213817431659031357218760257470712735529051857489488306090169523038119705299695002851048005655248287516296423122843903394842222551205453233228873098558735635615890770370239082859206383337634798231594701457761372971093118384387963873239580887586617998503198722242994172124557846405767348340161718794655053223992995157334730700503143946883410560315925353704671391956957606387621396562069392558516016287445030694907659408729007980816003394785634902809424941439624821993394727349378397623317455439286729821071157016890091578333403009576753055606376143411313928088041657198916455880236544674681660651280114464915056202642804493649812347648754829171311702712576658969040731669735056084120211615301065038209350012069732306876963381423018320824550420722827800861637878646057199805675416385581331048401786521035768566107253966262846742178044427925093321407408308424208851417746206002559920220366057768172822714116576196950154631169759383893675883557106774292732473350764952668583716214953478640363408779986044829299899929108744447882360123729671540561955785328453453671775445563539502255273109392882989155067993805709073784514104544133459185517551858464205646701285067893726843716179989713651909204673816849610563805538269733700477789852572107099989054896473985185057380648863589805831161756404512338083517977318991699261287113559753252157396929761260649970007955934834328843223211142826259757512290372011111905446357878831762336884809458994399418431318756550667836325965459673205314289308501884988946077233259401206454538111681904543011178295341286234594590398063641829403006743349999402758010666259074435095197567603699112037403284798187455659934668790483796984397570237245179341305793255178702791004192215391587804350460641370582751779094619624834737687458403272705310029265747652141826491505084759510067500248142737350186010734691271935414646965934649939303029412555580159906480443594950620513778897745714481449232195376572766740602897304180171138791951450654458461193146222175913659323247008199846440079902123860764791912683488493957069204430177917969405888608446518166579369699340871156225448821788035057090947435029039782975387608187313746092832670489990914874375039823931501580219503265162728513940016792658642416529517545415435463756455147483847389574151488778292655790801330734102082868920057364595110014958974149502835145444376758908127358540310864504311204933241385868189004313487520886339942621714120104631193210295686620747092481391899242465980977118868211429584205660102735961336533695523141856581592924082204762307953549894024104818450662509157544423086355912783270307118129194750372973559193239576834276304792891885023959135119585849887426766112050667621075292243640585208017595530408487472396194377900153091618947364291213909835610988694523462054511099554376507490555398707903876226516336955710785544678769917002047048976100435864958066054337663048795103469421895826627702925046724612100907592272712871037170894576502512035326941499854882312711928934357666661870113779988629838677887153423642262096707822126388813373955744983090318593383264376422835428454944196716863256132935896784124918343062778429385914566295057366892757803969686687771212879613872713154925858834063708469622609702421005017021158308757371244125767931414828245451185102130792842111114147426998296971191053724952609683029283752806087277926837050558755040949556762382898890700454258411459659083556299218911977279372433586256457495294307267130066074832124521961618971458351111640498214798439925118142940518893848683686365588162619957801665264146497122226798811117164478755129056243805019341580546802072916945553868729201997348910512420963067305226062791274079870531218035144384523340889720447825258673605222517484574026661433874937410805430744294692189747329319588922236261517840301685691798369844503879519637387685256210760750669370607336253196889043751879358291653574632706384990227097379070224511298702444035035741665574388751346584416546489079911305678944181232820093836978817440838503616991372812629905250771350321306964281612863586559672776777880108114394813114292522062843730095021492749005820512293086962591835935243332566327657123426225738142658566872746074884139831002466451354204137546408468340696421313074759492857124092391929987233102746557026105173624780789695847413648646587399103067168671345414225976444368634971420098699753962823413896143533630138764485739052549990655691970268710033450067550677462104834034270247541815015982973266168595592911093500703154208080397783647605391507857517747309235933592129511282180557997069038405846557007211766913343597574764911587497542589371612083590488526457183585283495030634927870466987698908892837892440811727756052027073317759194108981125442405745002917102136102729804378334577594500245107059545976545335194208753965586889561061580222771677517200484531270450733270709480963345307368449235492412393249991593372462419931924166977494276339115548405944337310780729121889967552815857530709517605611886367547729670669562147152247139970215757741291833781060550482198367903197190003907443724745805427742231114223137778040144480654752028142358360136203276048445869000339132853343418058904341866774534138329025788940831607744362508398481396897682341001153860658648277785482722596831145018704455608343682006561898680773837451333096203979951781749746673350028312197866623338972357407995533049105607119100842783208135460119806151180865294214479761359402350969211114852661742030893629590032872782441604116759252968975398374327938219288448054197972873241730803555139739443505462772617707922868164281311176237140877525031159453126523035659283540595922900414860737561636444153390853252758758557491400899574110809626289458445491789505300849582565123665526231293995542839419009330223261035232927478951643353303717730671478225183374447052646944683703569926352845229375135756144529172545371795282156901658908873264260274288981013345305273692424364418142046226531658229330879962245711626453929932741553727877916443607014095143143304395272784273289775369341362146216758456982963187102386061644533162689920532512229206032032633736677320921749330937363265769189054352940966504318345987576072121471046939967793186535923763352427572584303015880460256843314117081548051017728832541406989711534150772062322708621895323075915883502295253023973326521425500626396284305476508372439002247243366507998385015112279515255998102263493896726135608713454105377339523000149826291643209664325266781648813899030691536878179229032661949296007601803042429877041975182478920009792237271759429258218106886662803138143569996820341033925608689654967077838813880611030470521403105858241195103991296752082672035244225844332402217723917202203233260420884529296177517141804138268137323705922349006490943543632074910176527796729938888324670836008091627576292914729263061278191886306365717385080297829880136979844612317140729985234481926961901212450941341311764021089242236426694823002979220548640606639356372360277811719226428337165118745571560315714165954340998638778287379654306682305701303429996908286530787287801618420595691094439845173456117768630453741454874471950357064247784282804219650354818143652738381859339258690286403822935444229208592765981720194006222186103065811678414922004366716923146995284177237198547009547014793424300902219242010722954231452657600603292904594510115632999135617033772591372869731281540306210356123327957003821903673190866572382560768675418840312147015230067947667223390293043150462839637199406165633470364265554086048100814208151246321759409336115911771018387122517805082165032621203008931642400993653925120219119490120265057543280597597691608064386115731207019468025967177853369959475903633812377872552395584535724185547566854889008961805604783342126239598803540988061050658118492767113185423230762394121099758416131413689779908936693414006315683552392359665043418405236358261037594154400543111460057367208768412364087048246148058408539904443057757055060819311254083499457613812101806408437136306407333340434573410427901278815995520746469878415964590741494823987101393220284463222073283513312272921819256487910792140682059962815272915815792010065128359993587902476857341478232860691992335873713144511792096324607010407604807009886322482578514180047390487341950815657521533747932056480381418101762297878106837021452063244235606179693622123755913134900270394704087598619851129717744397218508629392482227243709634618272429244381058580210425260515301705354380644243045990661140122964051691864384944004827963945725274920153664736005510997545949861676558154659282617628450760116238200420710116818477522320604413070641570645106833473193172451936678201230808507812996566234888335648627705586688565315506398270442979820463666892788910559536079697622511758498055317082880334094493379192070166586520326407855890902553313700472966879005936441953247991953420219142463584168156883320661992256428753659632632363331570087184501911548151852863339553755792195621585986218408707641634832746960017286894192035795779640903521359633083551246532016989409814885629343220504904156110249022980161480550937687822936789739077475560371819426920098088968792579214519811051531765678030736429445893637572196791546225867177024909520509058535103596585385598526405346901448863123348517744361994949806678549488327925393504812153206525164206110573916943072420066624858923402771733907713417992342935138277210612510679759061392252887081682349653730137644610007092762233866162078474768270976444528407118345319184609163118875206552440502102283535479669646720724701538415762446787742710065713727857088398911433242367904377727968093477346203797243654823368223489432489719927806536204523965992700371963110798431940112814272166596832299517929590631129967676846139263006397896154694854503126767192480704970585606389932446452431233130495169563494281047574148526740719262208153035542754787974603509815192670994957270588755421375935193237652926266288373389798947603271241163657352579444180999958099736373478098774023954405082655929270116825370459353774001099700222313488848025691448977644760785213076845067918428295412820738464596841557659105998245237005430446237935913004835389606700700102646234898814110713460706694792195514106460363164414333917806489312436666977959191679011996823102531954522204506219470035590493690558278676909089030749154255471400501899746621710209310295073806073837599987218232655302673846744287759531793526876433359555800724778972731144552936585612221893100987212156466622818420919967123605211164383724222565589252793854038100087113481769018130833770115543850236591635765271222075998634589431989480827187769300256333320422792198305984086827896752523508229842548333742059717961681183191360259157846465051856139421157662272568933307540930169965164585831356661534088123504476967833402461169746335428577123418204434666443760433574788223382415267822376389835102067963984269472902453755603204960877896160448240316098867332108079667247699547728530220786847830375667399594665342607025588686883570712614244527174924687503107282828300142315532989779631754523948800318167199614539440725176020672614070039321717229164194109394315760844544659644532611908329972288442455589109484199999365557152484793577108682736608386830839988195020944347451957884803310056659828596817247789052794267122697152673768714675287234595043770393491778991032744701204508218954316593543377603550219783954476000041130030874852916483204742685212252165940119624829185174801089057181663680367533010386582827394979015113245109723522047697407415851064884358439584235455922601136291921420486443060852659005032274684569255986870734246723920322611446972451087090627412092631172727672258722231755133822424982213836308652063277060859585394778675343815473414596736696043525342035001315530734371915962889785595794439696150807892872340150097537973993303370337651995851830211459609728410830128956150931976744455126852309380345052978677705391096967473025001954622068010056686189868311171096048671921647699138476666749916647564424253653495452463947653625200905077030285089874899683616369595965595693270439308325266657826745259092647558150381556279580919821337488344807065841591093310245647537383178457348734296205592744709990938613552030444368448667944557422840640804965061686187291534872237679680977188257299461135706770522778513464831380001176290907960071475917450474036126986518017201234284742721839875292206960853022815909193407594459776000889919877251810675431436213727372598614087287507405553777315249608925195605466938693444407372579845308217642787974263274240685504805739934130043460478713178043785928305193114530136065574282023777198863584475659247484455184813397789729468751390444690400998805807257965781958342622537535685063607776834622339914755638960294605943395891733215597359246439027384316983198696333388859445545820493184955181991833564299133098249934461378264580832610883647683800854265087541946197443576595080308380415482407154671371359845995986386534484414270764387524876821088995101095332310468155177780389468818555410598818905013321901782975127010940664338356151346949506328745616056337111012178949577178539199136630788551269837322912266755430842845544026352833316363743405609260281080683457038406221586174408302997472767003327932307525923029627243904232671818397633194454231350160624925844083187003350407287241360176147410219109681405919311318861781040026713274684676023102279750682101566344136458104787051259013853979346378135424195407224358485224728759330918753719853467800205085125026972119871368216277692068669841464313220079148398019694124421689001520825800944727048746734645571493136159238050179674486627086175571328750356191062830883654676182128656924723932674797337281616992850807726526899804967721427724037585737857067976370964688732210671783594796804935995802265197355067263376342211598181884861549658735941286402862048130636485024398224505776406532770182441512815327703542353622451599787424987085034546611544928455026547085290099930853267416982535152278533076630202394176469738269649730148944553449479172067459231361717578223420337160782262332437038789914202822150442563413244538124736760826004983333391488695576474902214579602540966108815831932610186995264449456526229519577786412618835432628134321682887551279599272250034531423424744542880337880251734164730904178917248986424920086285491415580801868880581700654907342525348631494219797892849814196764376861335823763809508013692504295831668425290719613053758160761666070545197657530108616629759767808618368073939437183967261881652328565640822093116829158531108221737594473299382729049851993042674681783562779905078685928904625148664563601630138638754788583567485456875765566029520337932926083667654990603276769371756852149616328477816528480794021630289513275724596439255182287064212964242661176590195726965425287214648615557332301145462295254345554098799708406021486576949470848977764672412571660873588023614644846386722069786174498371040832946750435951404761703031281514295904014100798980881152272576665795512866388981194161790010923672437949809016947867848790356944697059832667997695135459381584556207087430242005629185803668900673208758246522960039711772262422522140328084066312757936253180184817351023374030293531623428250717416579658625912093699625655296703002763891477054381548273742985054539403292676906792834143253455630864322635288539233219899609471325364318292308546006612269955447000461142109166937802037695281227241367626298498350620773388152525231132730074855374026101905051934866943824095572280251687950373614287554791861428043249746963546982004377222459864957040354784111071242851353960104841064891893561208809743387756901953741437327490413521760087580373854422859312792814515465494598622639474769469687482111730854108822554289268577728831695821528736325561896445646883354030207178660391588606216441906940718983062848211387664951044170173681589753222240594902117716099497029952490989882420225548971991873114235698935762508391196864548088004077008913947464035213218864249860888727791316480260164366288491306467221514573311741391438992977123640628145515021453156991654670876320702541761677104409906999690812006393333791293128213610539940472658572555877826041567887006085338938358898968180032924386336429348405841892443772879132483143671815423264475889721251007343993742741812463315947220933496052443499986426054609745154752437142746782389014400807483823690700376218082241924338440524406634429187041921789427889420908280925930112164908532742776721649668718683590375079294578091363050359174087860503033646908983579641059904651030339177890050741985338504848911412040206858130479240268127977003614706558626935069570784302531928828558474594508376571015188775112581048537805647178342776136820195587221652819581463926973667155768877846680821586538894125769999116142845026000029403895028483271317573072721510576692636412100083787970297640147397113269771352522133319008844182091222431732635622604434936798388560405215894227610532246458080246791555044703293324161010808139710808212883027206712601333542564257563913234651140977371699357423529867963803822898108095078879610410537774908084833485524824250951288348761763673037225027630744208968747663810667443510826152497051171515766710251370295931418892305297806044657368840254116580643940301197352904431300198601022044593173567260735659513202017425656082910663857499081572291958332520402614286818882987834453423243272332670073596730484870846337787133654362194698436527592381682388594188427752013166829369682623980722499153135508940713955884988513787555657325404679105169185279160843245790031185243486661877068522113611139862177156720686973274989417268315856223931615513187753327983019085234814678483106326110661299004255164728629961944437988672501963204968440531584257889086397731228484949525124276457077153127617058425177331307317565531504597553940274139733956727647334366356153705249155219839868732580067846670980518098513450050872553992807704621260339221164071775968895314535417589677415435754833202590564248909161373233732700987175832552138389090619134168471148988999768465150121001449445989263344593213707454596136221747796793692548129330373255855405080741903838122703584961892453349351338317155020723999583178357944555719735146330651106655954563189637948504647185088597368261048919697165992904755588699957608148013020094016093288886052147696411036535002257636672768535225604812272105339585569481809439814987462354847711169666425605591861923917805472607404150802830084268336419514241625664808064697240003095745097505833570727823177842875283634831059929500730391397282702369843522647422664369179437942947069781712849443662778535712063834034883301913100864314368189019370541732717803776342609298338829812238431470082569852345584007959324963224163364544140316260711281716843590045172722041395457196503901168146978342596627567604866977474082324574469604326804800429674454865480268387954325382346929204828088088940714449270682266903910418077428073932759695180645756623698212470469399342867644076183110820717550970313718177760162475357887472540229712914104910419176139830015428363261718546593468479540996534463423153442420853607839700150439655726117483772151428034982244639973452887443315380690311236249470688011614375048482750316702874486648053307113874201851773468246439876151309414270657357483828836975100746032664434856584019002157382806229504544098188053657335132420257001731357821015797787382996778126920935603656791120772090547824914641226269117168908782275638845748070691231243903842805378179937295835807964657056943198176011029850679611010690563675842486169714439655676238784499838517657348667340414205796698519333390175197029028448411828193488158150080616163358557687285681127036670252076610039237521034377398228528742962764770522077254714763735507544942079673449072694671242157339898700844112073353452694688451066448937668073148606049496381783365920411252512905147092088478034642771432526996123569170125347404910825797041385998680342398960004672319568724374170615215561314972395869183058578059138145289780822241516723537380804983898495173560817665434325355570620908700380781227165244844289584272720826992734955133509482216959367577082832373803353160199987680149770205136409904098164378010122794545791775078386777062030257112483068586878981048674559164901069073988504445973846957473086509458185094360090726634882438395707323736388634426726160063450876206457035933624882667987084808411475265588632145368053739072486646023306482930125394536090425731625854631673805256742460293504868881697200243354950602762346890638305827706341945307635837961477271700948086703345685406066323446413646326634233824862040586040595252011967437009983965445141822474749642818157434546745999827243923754235819521011874604503268794262633513243375315590569168683284971950117926285878309526593466278821081931306446144457127364959794498711355076641270345630859439921226848181858035864544378780858257896219826546084678221186429594624408348972579080621087014272580814153500095981143675813700623397789358061427034540964595280857174187276924474586659013314981897059111930509447722173565663162374091042626716692908463142419538656009864744553844996713757433085589543223390451974951328057388820236644426181609210674304002591241578515421917592858204134313612011496388328985843557230490935169219616907835909064943200853258684163491988906353838714513299866342859493142422803132132182901828188140509747003430243375961673506661997618910616238108538103993336568013912779113282442752264929324615487485064965115360652761156404853725624594199340029126175642444103649737793886414102233038806287422608676032872017428487382604571783330920280392118079298146771189605250731240828125576393312294574210137492099475823589611290767005612374728004006074850442339501985677555918552809388595289245990016606050563764930511804136880968842534780411510074703621426501918297824799190182061673721883879435000473896951449967441336762703427329011730618546743590319997352510670263617568177249368051250847735691229171812748772454878191799695432019388466794967872691242636544025563372897845162743669236369465822683816165795808985549203484275590626369206117993993391382921460127075698808812094127472223193010872626483561099196036053506238590445971631391144579122464217205304295240567839381996098723742196025394906088166135682383905533044112066584516103441279093912987843214703210769302002492873646722244669427872903179078641183054145077063115411073933848905175542264534473225322880272016250096539141315698650493238448235817352669482202130163301049657053963091955085507409355871650072681869030507348991030591853142935667396506953930613480709399760187164018495517402410370006986462512333633993735829324554440085561892218166945488150848786216275627201968435686234206337694075689508536730880352573580223006914550733891279454097750156765831421750586460122536034303309108039200756025003999410479573608145440804168525048772142654625517004520470256839638288491380886722427452599434537925345511773240991392900133641062790000574701838275229519607215310329357182104473144391878500864177310540789612549427242749783982166986447905054198796867045181899193908643607302417801091849254993372813228628423012414637670206126821399480539690850584828522584752650515321533856496220710432399703413512511859385061069509940443061711233286076539154008140796736538296745257069590518891966216586676232975826792570806397823324223796088293982548068311476017073835058538118669366416887212807432354112451935042249028350007239798706928663054760893176828147867290562280842156100367240392184465426691250099713929650872760063584621779359699393490500920278330764363511295873622043475839073015632399904345739728990126043931194921387420072482515601898037687009583599154880167367545776761840758770067721362592702567879991535801390052923276123056522249721250812023780331272565248533673121274685768475653071494066728957379130063658652347969510636225198135956090807031012920789032762589549329431474105836266259423194557493497439007219092649066211566041850822008859874698123635220417543401182363008220579112496983246223032189811996887385818448350960761904691977362498456011310904936540252972258354412206674798202154399778375336885819104251260567001943984679070749936894579509303448300247662246510631957164310535377384446135965809805271518829019056835061475671131537874708586228939918328347494744337750568442036286800660911594430491263219424778384846642484059816955425025166329125197132538329177552648175697876259420851063419623149135761161133253059726460417732967077062288062259780412247995320852441740680162852576044351621275719837848329411173014124785942704529170086579741936388998984485617809408673323752084281415088992319223117764008994417973642559566667227540191367161885998801416329535852644528094166628602514889869638710419488394712035790579153888169038980056285031560462493202093945208366118880239028031823197646865008483452130366162483126816831206112953840994442464815344895783452134514597857650570863685888048991671752187591638036006952310008896382338051833653476920869013615363674351469836497680637834164641377421614986246562277633605027350843564467593684541837524168786568073459193299506818757655595584121686408271892235341313088285032665405826222532099878115468113074868744948715700881688598868433791206386739798272377186060822982671123537869506504895112323528116960484278919556547326695325024270451930043216718854182923264701382461764313767329203083277767738616607403763080629067589240028185291363425505757573815637660990202434882046061820096683781545587478836067315903342792111930181837977071834287602979036591623859660556534635376756796742369144640461207807302820402048412268523660914513654250789452648300473401484001305364798158824451063349013262245761003969854159628401868203538292540048764160106667807530236039867100131682324690883471931272605564833714968744757799190877730198179426116270641156166440093253357142464638118340988232291981201459301291709025037108707263149208204340222033073504632610555525600090420397973414341279170784709628218362207584617385071584866985960128495467972692413263096480558511076631771315051975436934759136776911000156894049245407155377102617058258608576142906012981728845330275575203817471084771776064318786355606232244689293755896807158273791741264905554073901384241345255228085133405687052951989407026867939528013539134824255869642878049327251290150647566782469887880674674024659263368264069219725824953877419240904512960337934563886236025533020955333946147495774491940808785031368519863975658574018533326417274628431205221218633340664919977668182977219229527012534808792814463891457050514766551052622589815588916884303382327006925502093689558751718733915237750387424539380136765000982093679828530572766508629759851038931602430872391141828526176230243883968381863209903651678667357062018633352814178726879573551644729865580562941045150013327574243128038347618091782562539351653319771354048783332156701590549146644953391815175230637307212392848118850401149273583043715437888026771261718272647766505841479695014739367975710586607707333235222662251836545355367148247552109090115909905995962615821611785180298372886050643361502968809081231938289247619854763693032793887215209561999979927340128988388062176886521994995492654333619139436384938334872501653223434789161994508320448300030792835995564906896267082630944540269411497653710512805887462555788405937308336152094699268427181295933180946211218001399990670123083367190355806992351727140121750265899573271400628678411329196843095907388905241149040302424352722892843034092721416329930511410497421663492210927927783983750974505832458366849331270688746298600869721834628424157248903740909118679834044699705312076270642478915899991165373667070618784500094225127560158026023739407294315287096974407061389035225991348792841782934633990962084444248470027027367575731312000199142874609277535092688039604332490893567842253247133009275616424629880349779668640705721970910428066685356528971094633535331609887123242476274767375364739807341975963485044592919820206681119569626516317188558638793099715273572377286804668105712861131382178944824593320728977502338248906397218010327930997578754033405102202477021837197020759335568289404382322546876457121338289103361100343299806482365692402281899604994697911178305307040208753186297942888375770203495613548446704469826391312869083245554423321465234769612706543194295075979761691404236083088035188732729091493407378357462077345594644316153155071162560238811328718600027950024849572442908088586343183247876126990247385792533903190410055492273883742751253632763032045577475490573360042925403647242486136743582339464781700038146454229684979085219648435544535548474396811619407394534655429118468782763205021882744173433907099139598787757773468461669265330741920124853234096189205338781680637684879774609328851112170662787399796050249397458693877954146475679655277234140143530220787086138308414134894570222810270278533225064142326294105688440792874011041035233572789269122491451273861840697859578399470825485615924512321977348469212245834427937630767514717856268180142741199176960249029229212841540605441377103033332154082390777397083216468279573464540544043566684090513233128929478886333903959576381474670204085665893651860737765431802606893291239946464901689714863470054411482935721851445007101364724945615708927094460839935479179553070328135351829705765434435054174277786709315686277913884246226099259669035521497992767122381510399863809349853451150972200921311818399968850321936368278006632305710540371091269837489483904659226887109086245598198563826347231091032417121919181245616360119350487341565634075987772458963226924735916340467180563174050528447830182189329966953011437762376761076042387273560223802935011644770335591894467683108739251880535831191799248873574805850470406678731523356490321051809639183601517350458336735033463812860108717251264132187969042284795285593173047024871417345895725920567118862115439056648136824918718179275813975003311531347594019857998629819085140944897054727175526067078431676640679058275711041171982731743714221524812113941119741478717128954276880999551371521231829027063957058908022308261028892049600124148938075365684118530193542223432022742691884720701932730994953743052313847940234396003417078534103352067966956307052757007564892196435852281026418956403452716860424531708569946576787366759818846786524399031941421916005006182165416241832759414660553826016751247384130747012399248748069196172013575053478719640711216847880932791294656040831302733205226768990300858591778912027060785112322360096497895392699597392696659376646905502710380924286313030772622950401538572066121435321569820455353189866290471192143810677102006843353547425878335717024882973162269303773010335804794514465870519266138774829598296149358635378483120930336064599728837077998816814461340346593616406991745335672615434221497274455890333247384342025611036201709642937896111249659524366740715455800566366356366667524084091065619699475579642485587664631543595728345287131193319147863711577187211549852425872249411613940594123711485645607255765528793781185105231074601992638235081956486463715435700251517379599093072968885374360617309139982377960547345085893583427041735863316848757967312966036300279292073201183476326089964471727447226030471553946094057457928480689209529574913908310412565429110002610498278484655920256975987227861863082351001506036727691843645659890555463098456769176570350827865043706427217944758430924529197980996537484929460376321399411750735427492715009169004472406688414294904522938945396148246288521004987277978968470300833116922035154713724799446977996617113118788365082664616739907782333397287186236012474456588071920523360229468127762045396316897744454632000363442029287795345557876407346557478086354392242319794865185980103883645704792732985635598576632279436074984553946572445564478585426141082558606053419485603237149494134932655858118848447066142240870282492669621684541225274668444911033516981673842543421460355162034852947637798383103643958783355188446438392789014439744010454287237479531830394737886518256101447267661096386017524425463838117305202562388772656141435073069221934014390443599329746272359858339233959511257244104571762704548933180659588140472438240676782820911767184310054990480194321300936658816206953331215543223665342774113109331379505803938212134396387693205965743241284327488478783880537363451360288228024667346727057129517377959020789402675317171729674423328533465464669590797841808445376247106682557150042634476266497681427054038709104476561438878374484158277456841022128865115694025072649539083014216636336041395319921993039840212368371279373019275675456455755237892841916449407227775368041805943897849096029201943767307090954982043553262190663604272959355327573677336341487163013310173382527006048363234785402860790285841010927124487629926977188838949954963709058009714081872702219574029956116362852165059807844426737572213050233918925661606325542444900358132760377858472764953551522564473605411524376085232565029107456990891075886516313555148398359089419898753700650306772266608602972452796113281994155454646111602602865735266009368666258699969956724196534941815494278927264679387464310375900722106931688139816882760769928488294165634698046607754460031142408632328059856954583137568670757350647422342168284072238507074183722190990499954391301308905899537810360704953208562035341200977510643839630345946809956499097710969592087975483440588863729688336487495792508441778779236547323505392985897098933972822802519580418449555822366492624047308099564773391481718318198300867023671372783451558197075785657475744201722576248590727162588367747433502651677492839432567466792818663522050196449880031519503694955522101952193203463915359417485540674456057245005963019157679228559593061400315869445118164292796432271202073682706789442277955893639418284657565671321941525345591224818479824716943638506841788161880850554863853453815469904008195458213067188257780145798781355427598263145661865143947454678928934335806836728286123657796646686651240548110230996787659521772118615976365231373909709611864881753240952711900294183628790839109091071685547662576957075517636756242754273303773349975213495446016136787605539094336717161604724680382571543822676861826387740510496308199310567063457648248997785257572206938952355217258342878620517697370702290924132603933328468381921454602885685113893110887463391018925226643361106589656156394625974971031109780563192819685785353207609432313954218376526704958949657860532540126448730298525626135077725725127076255389717690742836929940875774809346064775127570922181207191091067679947474517338810510016103916497480712640758876312604901033539347457355156811143360132220816741212000477434445348060576638390368363802365043782208158202617797945597175275376078585512825790473022274504259860585551900803711104930392848378599783352326793043142705457090563644405338738136466466991532337045294721374167157588477972869044442960368483558713147323006541318845989816631617491265741099503769296199884718577772882293671434950877698497834894616574128329331061098493858171101503109301313598398637293738560191543476366719580374152618277919439910048913729834723949034230256574241172336339557006742513816828064789889342046334512581155047051503355905531972899764963985488122079216052273408988802228106968942468385340987903996298637549302916416862179908365752848569082118445978659034358223055462184962140759928311810261666443657795353890318572062496606952209224385008908137030280264602059772435501797219091138252009359606535315102701689507350945349705697144775332363067461541940308478930557980154197227575115399607846968544040814991917873945559202925116932739389828197426365698521068108429390874791280572631201994935900563626789802648105167731752337956591128645587631243366385014736261601860257416164580355594187612523339648788624176350253789123950298169110215537286240132289402249578161460793667827354704081098515228088199008587723320359477000446632936460192284892871059946342748469972268959489980837538594792314120869846648186348442815938609565783244948271184957587922765548031402809523192580158217347117059065498359403704022803363959608091279987536720891958932309119808454257916865626437859348633169579924379622736950658708807663205055069279138594895955885958952247677635164871519430727831959901082426878535355008373753950364418958850268277039043661518045524616939435220772291557614951377257117999339161809798188864643637460318022819651771813269662096634374068185360409105708027306860049136980974825847858817146692272112408563974618003331517396596278161152277872015574087168888839389906807288510145658584133084121099086156567739929109689671653003291803877861431378819151395911439638760431635948560110756788531282533531843281915907440512637667650750902938271642558645076844349771677847166839553914324335350635152201489528888395856711309902220154452924363530628020705788021573359200438721436032817625207991641603275765164220253315986437608626188767119742808032101071134021192531611099466091480409957103066795848914093342705861163581233356954616272870927857875110833851469575192078315385674816657361821863107752241059098590584011987883209677121456266697442055005665293763849396718749736204401869775684768912700096439104099202957062615138937633284018644034174024487759692778904540108183962506557543937083600963878978318204359602571629527767169567585251869402055328542032544277086205608634103075802178567741704845181695493392456902170072297533523566954104100368817345680025232488786246666658823632835139538972668818892785864773367101880524432752138188097852294390262435723524691458847078325796059382087041317698172548201665682784514365218606081878821463681929448000940631065838284985221295339756911998180619967333371625393317846525925544492844966162417462835785914088685272983729295630988926360905995712684643004434903009914965716288591612247317405792793061347762095127383420042063331410845902366844751511352481750601548933285636745852159370414114312213214327528081859867521186391990901995817918974947627254849778239852324841287443295895366999931927918914474204593541380664678460413602000756712704843840130269048212838398002225097572732083080471391550233025890350850457154969637110068828102905723223112219769555426677168203903098025151710115901552690569910461706961935719721728954046244316856552622581761458188781449523347001381701448939523558433459844532187696705306937863361072146517744367211746046066680310107454381496486270049647777108854208559182714908433917264052831902445333528814089869233455839404222196587412405404680465146374530690487032181217563629857436102564739758236086109471726234190871670158628590433695472876807878258575251439305646053901955420287767777521276816285608455946335835956675212821551776838103214438027475089537250327095053308921307059075806519896531426270342200181646709125584765089600392885011306046000027349289530634570125998347160211785529928717257197743244816107172422893266749469537882462546010552556917734166177924688598562781774423485998162479125844201021431547120654887538909252440140248271797547404754869068556651208675527446487479294503910555364965918527957713987288638225816494168549385138544089047941705701309343756170909439562456191429780209615408111150481436359439104755468762247499103565148033058635276415622950467945018993756742804006030453019316479270232055718952730115351198527956092472199223011652457345434343338459352443749834853930952958938822747307283269900280851417502039783325365558329091400979328027122251490789083183359190948600350469383761864327036725728171141084864651030291875901509974222400930729116254610371754561578332535427748780086020940389670186122671138662992261626937748536932037470762063350901834816619245143251950416351349020506134541717719305155893581707368757613588694620912293836648591296037575255527620290408165960789140921788244437944031168057846365782365346845848113296796158208742256251183058324042442609521851665825611474986883993843675864151877750085716614103044563248864449417592361216221318867088446105351097555558642368787036950244177739387661753760150566857806945797848471886005139826181130510030523494466877211063918036344851492724830280140657339360742237067420322665344961964466156569107359523545282750415873756086581491915531856216772942522208116510489565181831088132833304021212949607408329256451452155068200254832753251680740563417851857245120357223026465818299217942241905225015108364010168642477534100408250164490390066282650801992423890663578033068702086889778693871035288472923656760677927404021490962051433837823850162249588614137171767493662035964496426267045377619292286653020994939973025592864111250045025275755508376020319624222988665361402928294441111824764316413957905341698203050862273615404448253509065925861989616692826379513654331944580614902241681027057637567493373657459096352822690830495584064199353437234841767664685458042838646117139876438380382708415705787487130442260691540705711977823400762490553741081241090011655818103288260644979554570860150872127462386790272074310810595269352916645877219995095430569318592234732482276700686060496090125024190804207272462021893845086415239850666342205647823671015063336185805073154361685184317200290786198324286550438540672185295556874405064871992741014332988126422753253484243518728061792952841344475287496485785946286853009519798224289981820251107109149935710909830452362527493229655466437376211648571967697065466641861194585862721537032568248997257202760851170052068950802386212166013302646684957351944134049537797144756629509139200742298657933560583653497133120736432315466624074988584534389723713784496354209939419342466360641139950222728867461188753352977580728743602614018948620514046960404225348544838862384759609319302751834750367059911089636404361178555863643332490221124013277781755836337120144024894715521874568017527675723567958546932539198580676602679723615815960526519947811793865264486364771680998744138260390145157561224815664952138521902591988258880818539638588098605136988863018137555779226752445625771994294628689459919371300202421900146398070194377199661592848705724091072019961349041306073715360550042106354058871646210106698147263625822671626006106668001968447977457312704464645407011359341438977183467223487787748007234283133429682442128679355577288678496834938012652819227249597856551762845876244549302964046200314604862289400840639135690677242794990476361406910252461506748789561333858386343157471900277760091302977854704473505417260517154855783620849076937981497565234357768651887199380498595901918795387153388141087039232026182635280075477118516266218162981281765138064028920275821941365694101466417720109347481645844674571934991117300401038423213157284089328869899400407306415689028979098277468325374697189278119909626767310708118521314880927929253692774687384767412488308810942472846509238143359682635896540583558167929519398500957222796738967325821635310882313745399193588147866583717025763204311005481955354982589617575784232339806592511441896687464326390170024798020843948585731346180032333033899418898869974674114086896943725278642205703920058638090322171261600764926463891635152782260995855553174466765972431674131209011793501464936772579988500652340190500749645208752507880092019492426817746731027033155812010274779351608571512820789364550249475971276674723903603925119806896492939440588734303617576278521844592956648107897540053772771229690384734734053630871133527288585724558911562310977553443215754516382263131451194734928295953827511081409546123944511373634911887744411637184076188411827937586844864746939838101724193399967292757538577445633783170025819716193878537001003157345115067075271263864548365146359617752068215228516738979066859680051784770148631876567802760024775847763601471883603774985496961869593372847614355760756146623424944070490640522952130983979476218360864477363163729119600979455561640976628368377232747150204363233469712104359953565484594815906080082567719323873498649906070709453354098578831428381763714378450693258103261017563784836756571612261427501821279070853477121593907276307897865810087476066889119901223647560635915217575455591967971813471157381556376557658064736593722106301771660403481289664512264955310255236812672285525138241231639166666373372279111114142908298086741686338408373095240177668552930804636884749627449128951142894373989735300396718247834840366273765435080830372068713200829168422476921506319507296271092820203595277472830245394655185854507518560201647579424174022869338469556577182413470038040911920754311983500791540112379068577493144046848792785067849578638324017133356901658520830074550999956791793041906302108369738209085025439132106020962136073051429388034633387275938680762941825362230280428723912387375130245228371162259309227361051974827032780866759912783121450944912421583321666646795915444165456603612729491644888892940653421809808801749095744157577400069795430941346331812284155196290062421785956704273675314469315497084253579224720806705420184058038976633264406891929941013510574388903813715871153676312828423932346714462136792781209059283550365092793046149540658773184662441697143605139883101528373400026599662453305885915609981724457129086361243844185969055518581926754202265111405732464662909166790927703638779909283252688795070365071135442135165158964187574590011742948775628863293054296656136209394088461430155140182783967424985872440796950168220577883736401132358810227269029710313742315584631684458307949922565304998274118804602960085677966045639281067725808331031430127135821494367776951365025753245152559915621928205107739527357690307257690336933800339545151331629013602453537003156076950998296861354696180772318864225057141821553425592383906356727504098182296569797335213229428849799295832003215559855743186696623430535663668452056232001201120278938956403159853528059980893274183697486054196025614740962045993999035960002328666689276796198335500660798764173952803748217660979724198854189618827808186698467678635134286027840477381253672337824094117224769436041716603684765115156452976146911199462484149729891738555777315053484565672225248109810705189067812148290191446470545780460606357815592709668275842358160253425277397263590096430404202486406810644098989122578975438180436985071132524337327590041585316630608544506069477829552602727015668830375222855952797578612673551681297385193237542322754097973950819404247640012252277562502791232362817185208901541999662163618287719173081422911818172919968183257428215235438280056808986877383399625602827017072960335968029166787474142146618334952341431670607101263298283182704911535767384033688673480649204391191861048742309571167599016505086617839974938236567981597557021291134910036222246323433207621139556311450093818371461828239742193602970470850554653535360252628424785381303856918640933288517486448603418804877302893577542619366249125169956015428150255357783493555464936384181338851128603411749097515758456771212480489276252777866293651978057177865654946107509600855009745444904443553349190860418088278869193034288559771757273921148382043246484254725238202646451502089897873534295738856536199787732871946230683702509670758068564523732209430794585570616680231548906553512425002898063831009478669096150884625969635818185976757198919190809447107862463148039808668028586813194157568018378956862744720581622706863320935814764446309133204254458272484621562994324550804264862564330728312555681006821979877726525591143214415885142415469972377872492738040465517200267520729975726040746120904419428687258622307764291642512855667758011746988799874589229313386355146290371177517541110038501831245904282176385953076151120824513662067463440702783537609882452090543924117945854637781927203610159834365368785379422965748676128800971322342747333101786981782679107315411848232484261443644146094965939410990748844092534334740809772665853878619108279387105024693296686560223711782619153297046504155042680181715053403461322620065052956073763353739417239112920411002801886038901635327590268699378700474602485780867670260387558953475081296727314694844207489257448038433943588073286780043513720374598967172384389474202891122046246165704088408708696731368267142334131173013565408056191188127899389898625338362321182492716098905869638337353392259567258753608782844454932806682942179273904160312923250241216951153762159733216097477057428791046973425466119545568354541280546226359525309648812054930052115672106890241626400821171877663515515204425509480436807701954478858727881881224780477552291557326368854529093092358209809537267052898355820627900190372914131040574053066832610475762317193461573417511867461810635849603786813197788792897870729397646536944968301918422435068816536747057466078548235972923888533002138021756332483838015082857931135330721963307273075986694644665365571151273599595309446626848270847401381090385339752275222711875309876025777357022531518345250548524739915794080613071018620988906728633202774984546342231686608310000714485850780399938839158406831820711137953146496038282087500393739179975136029935483803884530439240185108386072793332480318497278071424207226987960170647653967646597168642188936072094101782493225532388974137954471133377094139993197280294926949657739950746549378581935487878232982629737804168962427330719528569696908307554706058590480431832745070815190953647354572385839645534864803892171271448188270084199148972939923071324607685985307278100928270155780926003794628599012978083938755574677496976200942971971305008205610445137204723675561652616891465470893643120572972876801259013129840076112024779710677435907101304292581279801691062899428681383883185716376280227668645171885961057215509534075851875538885561257647228506523075692371218099198517376469481607575765715425499911862489417641934622012112312910607607865309906364491688655562603111685565983541532038769797685175911146847613852319751056623052058994245303961792207447346854218807227280776716899452392911081478472295725792518690978206674020343062722243543494694835566103315517250990858729435305902977220530519056526235778583552176112583643620915417708942914246085399305214072924990546626937089764134210474521709062735244361594889779154824517412981462901133170024712568339771295473157615144975875392893439698223355990130490064811034358210149654634887209477745144726824838798400670090710611481602450016607803038495372993798792596042778123033000908357989335895994958412770427283493849456206322854994705327823506940250843620591968996436691154170243706720163518434722159231479496167015286989545207969764386472185305918587108579581281624703543349386308697427988474171985195184918233062707727029984302890946744975383189729801345894157873129387422226622772044548469118713690891896652452404449510573636068321989512870829067755208371795418099899053634128972401377714198972044458687018450188931364202009336416779264776030190590477788515689542215295365794738905580245562269016706040370063151392511649156253983903292830316194650094515754941457814686149232638604703732104953408270275243496821644217158147399746078071563545250125188902546303520105783117943757775958126969736506055515421671282818028068578275145077411342511272648664662284353037544948683362825705083653044202062268199058205567802708517452316217283348358692299360267795741483796933102362553566842938553420642804743228941952726028363202462708322782773365938111606380903257913404966925662773168948683014999470021577139405317716017252857838099149567667481260500281443726981698221168499829627231129652586622431162645905342889216373894039595728991446720656130461501363199097360665601709166720029407351078678032786910396924670396172428676965961432603561239871469980933763407438450805637703839652621550098317701499828767391023769878844342908143257890670783383895262915105832994378260423993937976678056556779837523121346535718129960581337289050887086471519089834442637046402990618064978772256664119065506829351066047469947552698885363513254371620048576018440919553153831718646651485285993244889506318083836795934077101723951307818023467709652455964145484632612410800980022631938985679805934845981223506843902008455810415514038607857653037337873666788931517262710353366270203469198982712564810526896928935871989206287026307183405839636430224496309473335952020455337411085607603206860532818919608016866277173313947873507926211634778774458769798556036849870126383591766549369191882113541684631444798234945437446612833920267116812479859805657384653436765077262235243493458332500540788422901377016857826380717605641286941564987243973915535036996330803073625121141898473943701391989352762952331459126194117210090079293828322501822328570410809845768462068671492398975080462925274778368659863644127556264023801828590711527293486026583963485542908739060428246270549924170727023753966990475099663815752206014198717615442193702693449783070356362198562281701775074550086622511065516502485704818362032811597133703492807532844264452409077262868042769431102265882663967630844464313781800443461655840680287791559567579734984362891928399798611662404692243059377878930908171962215754939319235423361452580782546778199411277124156326377380496960672921934480145923768210002013002757219870196080678578417428658004409259629300295463471200313851991203314576098971429465808215602513339106113520034489689306114654441095095866617771611388082680775952650657726307776087314218512971702901866577002737663676888845398484356177861935579862642430576444180836514847593197481099473206037568238722537384400058772772402377237918778421216552319079337676507719766770404616852661104967098198575698872041692411518395041118085133040112915380290579102908828051288440989155046664377320980732796049608613451877417167475550955091274353560566651547220215946783724438971323220294868527562342923984339498271363366544311378508858669378794012995171332524151007246386104649547663159333070534313625943894179190983670116643801364131964472526964748042480359544824956720778535557016173251331790577747069423027017627228296237281409204457829584924080169703053373440272033790423664608606652325808062960155188804079901664390890700449998956044266882856946813230040243632964814830443366574536696440378946263891146771979285396865355697324466814635005216173257283281800296042241939702992287276984657877720479671949516492576736275589471650379743917475902316246784341899434586154804785399807039387798055294765378997147515870087215403138111803763212202608146516692017261901911433984481855504935956238043748368925864167020778022443851445380210486635443425547753771085568349838257109308940368658074126552905367466745364629595253988792684392765958803794792849999190290229810002597418921099715470084890137352014038089664273296608996872820730181434375487930287996034867694724050967482374106841770032345084322074807106744136492534153129946983297345055874047024783364411689360758786931147105329825585262169293308853763584792541178680700125756531363250080326583942557817403478870310571375327089058118429719365840707418265847995160986679254075576618344692921216609136557334701479058980752620339074920233368132548657717741839264585827145449446126250968247092751509398582451713067480883966468063460329698722794560756675537455353493145912808257131135994883941173906448029319231300103854813201903840392632643566908263041757623034328146004341477028666029395523029136761371423114442304717418050841537911029272815318361141496641860028820027770725963619568579421349067022996472930911997745767758444210762286114425175239067443328999645689107025977696450003449286060567995288674553030554169684838189435847675206536254917665461919693512382326841200409038499092118196196979478891480253222593497451555460577847439619379512647766841024015033216288545133698181998914359004215291955034528528003069591097503776770317817486874271157255164805293362558811345652697810699810006705129642983148971556395946320646148505819551328612875159760279728358243304696100056675782386852628013836432420303971293909738190473515691350130780567810166718868926630127590310480463661685664470707912666701566057015991149596333940302543185648529890052475967670573612412530586973327925592212312583192209076220754918775097797426517986560592919302347859105363880690559592806190161918412136070925439743585803483324891795636368783990900315713726364967383825465334198529611078512123039852515097761557769530335285042640460080265172141013806585308320469063971104728083819539671339364141691318211794397306814546619066468047174402967239009924285823549374081933919080446080897952695769307030592683610955860760627488830888415785459597593840184938541078493248531814808283417773855538733591692514270303693250376991406029528789195583272547687734952982034103203483759158235768324599872101222701479747124944835451239565359382122832939001695830354035157382652457989790839978168179842485155916787641384941286108307387515083812295002707049235404515906762367718693628424533365788897638584191056460743312842884829681980687423367684048643785867938200591334801034553215846951161642224730596420933730870548406788058282350230382318941335194962795304656959124436469576046896887794177737192643857539354729398965535750850025527197334596065824088690387095378699674158874178694102811904337174504918091496790107537076359664729205753890971578456217293314008029499784649385719494751968419590099348361152080737499942747428141867667954677477391070049332270344280443496953872046959850874914814314138604614251367556884265030872255879244469846253868824793050825076541805419511489759420745552653453767908305963651856334483232317991386143877295434360971346474913646398747477977629939624055981845445594184103940281973640338897405946931734688329119992857569137477706317053572397763921157840028090054985219517546519429510336288488512506558407932145314276827950426465818518610788303787042354289528950415327279261638384784963491795947879546106541935359353264758572532701937739080297062727079979729352246511326757117248465761409237162855774980608667078772420139258082944109626582957507508422178578435993461984138769904978415341197068862082945912576268295327824417145225569122166778707366915782434232579537639813565494078447485630470013612156047111561290210463476611986870633251032894398677760331631594645037066543289288718471692610305436303060989698790810378024279539589985975325331831813338478955373049009480053798316691968062762786098563306030510749542769475701706622005526885384744650285350456573615444607836127034847834853891966789248223794209013137934496224270790727973610914440483552384849405115981787956203037148182241604558749353243042406951975924061553387762934608684991638046245576341694775780014457791153941778533089217954805679320795708515607954780973194533231896770194252231778861213433221906279415124581440925235163222954916311391193713723559359380104699800051918035977264037104045261929568384282877950372049624608297821495734991076801530080598246812843558429510968110979427793768170857017521959198844820556303922523938814028085043262337673549650140089940511566333641453863351832285779924066135751922921813231380732711839966697835392940644069431274929577524178001707538414665685134001838137713523430337376910592325582962537078896813724705784818107076942959791383707716350049104566751185387681377700424409234543883356393517406622524922459904531951936570926952327861955374595229746325132762890204882533367721125238988935776624339447511251437733911147441172845012840727351635041105155054099488190172630140898385277610133031517238413086405753453949779956526503041470590499375840933095193547451018721990264321094784382992121230369262347967168084127757804501890061986398622124601328390517186920343472544738564312064685030973302850231403899650487102332020197464259035149872371833454438839578960341276235332429590820025350143906822326235955922076392289010399265825556820504553565438953685205315322821771463345762852212901804286000344245215637474555759751960090067017096416623236725476258780875384888375693069930275077066243440068994182627887954703975833182489391223293420728926696871123933149683818363164613648795208914816125533323021557168683365529697421284750007475897778265465765518565494475363179191992647715610496756743155257628134487166591196392592600574576723885049091603469098061070028071276688512926367947978358629899004316738267359833749284038697969836156289960637686141390301211715197026672169591204964662363492910734338686349562406733889717787819067094433044171422265341444126957026087837237069324625686427815710391275111631474952872684078343913593517573544132819151043601513382053454039068110798260564733898961824235500861333448725053881151813726274751660087544319403905575993914179584916781856329773268533592256575831788625839673009526273884695874693138534505847700866783116115710881050167701204950535160823548699886156850737837810928556643109329081878318181791173070953833435112155080619736704571901963604632078679807647337415091796240374831914947584512954506446094076872259640996669236328890915120171506602577652128980851324187888280004623587617729695880574371077595846081160106926600759355962015739247247582253086419655237622881612044998315673783339931373442292696403964143463020929081335239585045722545698688739732921761670482206353643581855987815227668956576110304662755367529333899239948431357776225645986488946432516997071742030821318057619104933508628539779369318455506256371106979002371028255183578549524649326431371324026074506711489172342067235037170845411696364537944375675549806066617475278710696220317136146917210408997326693537009808524934596661284695455324973178055601743952931991383399337650112000358540925024157513025560787481786944273404380005676430693496250319642781711432287419746773346168090891902880665416971348270568397110324854232747068931147345486116745369196312167129800268598676219313908699188660037228181292248901529040299583434854180065961497427169418217520992408550657940963722330128103592465569466112147005698156729408694981155199113696727942553796351027305645181678868631867861616221903330576292443297127749295627713720252577758408574592302997281080579763210550331479518766734086766351409231135468637246570009050654808621929113898773845683674006854981401023700428708326013072739989534342776655373119985908608174371254658871418978866729669941753390091724306368227790157871255839059041013825828165334881561422114811907034721554099652819810137019255879853529556075921322163814324920214355243040285788842970335139212633990130262542615446721608011306494069877835756281064428075940545686393652161413000883291376048579677119506215700108424844368045306644289865336561441310228428911497201332682399159571632445785961903771312647352071362681300672020561888740443533580936605309035797271519858238813077567554052910773496435133846644513974439057767053575044597223733750705404540616661521343826146376772171224094967697499707832748162691987391125765417928102501320945875182161671034618994159189976581026434867684808654544762892528286152757730887589632343883453335002209591093674335875095697987094884525863241217427600581969389318445805241285922697269735069164098629007673744626254067455179820129563081876142785830755747575326062414569717679877856836604521241441727968283541811825060413800327377758082003714604041696449451333804743854774311060484295189370605994301327864628472161917446967336471325330692166810438558181675349004951044726130985279779777587351134512360896902987019861404008746006600943222783730123921774545524524562655301301742507076791262491273510678648620014694562612731634931988544689712227056195014995535751704480345670993837560620700066115328013175453189496127317434752452297012415482982879989153245382757084345328534458870633630633964447107626926749144535198159291075993022554845215832819774451345374459442431645850063686384058962244727698562672685834429504113190950482891792091401503989011588690093481627369564618586127476180499906380663090927934598575005299128901090543626343877187592535477900954678811929559102038207827306184111644990920315316140825233163761829649752616127289019790666633490954345292651920201651296655864579287687413135386503006043110338879610014712787006460639440274995351542901440247762239254283609356972331089969233190996008870972694264599723158195265401883710120401222566374075869764577574010410817205209202344218256608535130662854155049436377432669518121023142736229501107245113703997086184752245916352013651833331963643491147140465503888089964727415890445187392896173472788209205804654235454494144308755580163530094284777953641064113270254925905953523257507175146944421511521445350831758189402717661916505965618046063035959190373315370485649584978577515088949440719926958568508319759443386430961072982046023336763897970916168399872224720330238186496473402992979594457432692598668973293016116411674221394091275426538381061376805315243779027219504360015123066229845345322276445454109920225354569344234864212122961240633202240061422588810139570238610728682189936999227163910030070564277846265640674607491676668460062246853504102464263025665877219965106425578267658195517681971009997050414358208538171236485523456493063222553287110288147728155342483581255740527603680060824368090498640886030278206897541962037120160206321490284741334028501025730212998911847381167869512574895109133455486569610601334104096114314026754713868862549581518072381813143606135898232663288935731419027080902314134792900955189858678712221830797556369655261082880019667170593725050751150778638660030340919989169298138546763684060668685426158335645550695664818132187183717855803815215964348933441126378322547511506994797785334228295360923642527755845677636720348863607173749754186181942547866433106765717164641054505267526358879698742546574932474773605736750567388143496393521265986230409115256902158803629236512573258335942784003392188419576212604890058443486227613088248046919769736071824684848670189395906264083861091804169415547394715181403204092225557084069984581542333832587523086528669376344302596295172749636472800420524437352440739264767995287522099413475394372476274167847632033300707498327402802280137982254080857663246121237558352617691733190123495384370491388459512999216533435649658937030643549029344362545752929839232941111598583080988730208192239315715430664686837842327756843531795726643051226485963809087067365566320597251140408794763242165816744154057962642863623732392673366857630845135560257709225534172061520524840343058176546378415534357268739566192610258193497896375056484428455967781422137036721355761248862265541885082852990779260517525677682615101076142200945516446976623549030762918381527688493017196397818369451076508904157085248679833792133479609003254973211547956945400962995939778595314060012840004922890805659842088821843969984343934479187766550308467377619131485984046843924204146117270384641594603458570244020929799077242204676993106218131572853169188549850866620534990525709946451908879380580181027998012780060914572519733338838480813654447807796917210012966952751178383339308953150255368692271661946685953562012512599544093777731775107910524685759975517350334242026294027735823335604351295689225063021340224046012274077649584373692671860029698903137716894600973255295200345107023176829753133414923303484367668866780504171633790338184553004900771385338080862350987310288829826349072549757711967693640480754414951541009786954837073915172592254903939113850807063001214223909708728302717680085951169372900526253554822144682252596245166949525226601106430105006125157718696253450209718101372545104458287406540854616586675142370559073293936277537489295069243004831467159196532055187966806528194200341929465614919779925643498534307263335121944739485578341531762694446425019235629803998036143795334051058941976958702834819395082845887815091786860307358759384795101896411263507336163246826229779819064374741012234811487221999709295413321058208974407696222111533220624636053963349521890837464266841001153279211135964106492103326264482236454163799634393664113636117537467877638874194601010858629568302309389982016984387213125185428217405100069556969060804820633858878380756929650531313747531203543337146780448432769551587738840201408288974610842489385468721988230456468843772646331216206598587540427938927795663750634703248652282199321629136195030805852589707790772226098933990943770056944208568976418410901457386947249776508392506778721927974412270463264081963155605773282718974968750046238806566262668845261593401985442665927063767293050641910873125151474217102042800045958299072476141496928639726223550847985276025007726161589547752906619060783863828324654792659904923129402266484133092079568100251497723766292467369199051896463000864768662652950644280532516412412151138319077893602325243561035832391364328043106972895054227958617679489508611838545742427750866940243244148461732330615640212650020919887187163964582076317553695409648976750152354224589750642681998062810461680662640432853755664576817705256600921730608765150463147474564232393680806395373254111938791355206140600039612806710025529193099664613129420014910017562034782599532871306043421391925778899745327984036743166352220847516732094605748298826079189077027710730115877441518845999934023525676295611626317338149538052019221047556425760671350997739344644776976760419401836469778885645027115692335610506201746547762433101651400925069557741697861231062146107958088164018089439844123062449197783225900266788237032514944303767329136832132875591447929575223658381727504271669706245796151654328774626711659209108838406720537156910487347710378264389745822563157038203465343293561202733630195028898028424930515329840552004177356393791927825260882291035342381884465750185167480923921468773055198188524899154475473949017901161978785861232575581845520257660329543066597329719085827867641904769033461127102800737674008524945383070710537739927244367968448046326777441734729073500762798415353383897372479798518625826127794668158916676239135508985614373280309580414060738490155962148665526110472036974898328840341586401604440224446815659113618000900940674678569810879072319492477257554133278333980118239885650875957102096880848714131569720330774860782168866212190439867340016571579982027218609015479357087015836117289683406557820692340902355930379811315773806062330603802089933074647042333541993646425354301761874483476695639644878441953079523661524420025299083442907289557368974985540010096680959375566544001039922344764508346155307624149467160479398950829092000919716318582714972938347164161340726553282880825656654779117809659475830503150726785065598009619420998657027072091514904374615876999708410195925447490315830659547258101246598307862935965748422248220154379684037502590674528844095293661537250651233808527332204573175663357717384081712403347708670795651948691250987692570837633807150475582644919682834613994091392679196319174070941744437776041728205520583765715567679098341850714529595250586805315551670564276526337622976284032077089042356891854744018744465009978788665180430760478258449070628646083276674183552399446091842076065331541612595099386855217412157341739871932794865085941602212497684091777053540717627472807592703758102296048969087224521526384278925745591042038065340956150122864893314322398669607809757361257634167053662570116702039245249578541030186798695146112960984455007930082071695205736805329058973594424716992414441555781595722004920864347192021985247993774054089916384226903995187411259059786131109357069864947090000037307772043351135795784899064044552004511383527544966918259783352904666521715493185974485684245475771392409880367311344672996531127970123386532121514740067943954990124724458390143914026602489077370926202396703851344632713179348794823983693734079433369200999357198338589346951950804114821364409185541745055251984787681354741255605744711634650294814074531426958782095566993638276514777581818980495404574803259390282523469816292302168523684748116218974943442072759793461955342707691869888173557635301598192772317099474864184016721736850168544271696241459507490195765154296233827535580013977138958006456309840288557531208636651413921397432765706023340574059205006310285425702710981309521879546106270334767628539494409206471142965673646817936797190208737246049108168446825117890924351569234572911037165630800788065160907657589812176744670354965855581096568565983371742555509701017455021320058137895921698814910961237665573834377415261741059565160049276591473729015367149488022537805539387322775549895589503552215650725644386186119699140275204828237646541443377050805108237617458123930029867594181817954202421419246668681036796756671361481007633752446614979295046497342861994562362680626427014761058933694098843742998498070123833282457458550686885398815040888976707846039057428447281415221471447992031544164453517106184755160203215996263714725616109610505648114262577302716261129169347357998835204329433334887113573678932825111645335645139452752670170199103501108609341269727325905727747925245104074244487593188255745936547283479652362635717649381277887956390969261482207784645454495265316003655091452062327531546794201715534839376402255139715302268637941385789483845629380653750089366340317168587179433082903447112810761796536767265919163009027882147497568799892463310792505585675469499027265252431288054186386007827853877557940753499638351190052294239213201032787662791852685632674841512875441955080098553307077378202912847256108352231980584064267361598014117516844197208968361721519726173233006030171448140138012449602473739078350544699937800291575829090463994078306901063954519998554101429576566071436297803634357344547300261026021197010164559711554405997601617732254068447007828278618253886685363471540751624352775507345878532283517517197663824365840194907878083564640697816798562024227167410702603151865783129771026881878162133743078470446254067221704112438206253916299263285137464326204822534573661386463632191848490174270147418417386996012943212530325641504662434932928866110010231697071796177092852589640438348028704199858292747702993104606698287763291214554930619911857549130541939901438700131322364314630223505416201860253032886653396624128924856969037453624896472502722045978399959178202043584429496712620289277154556058748374572403426824350442352649130043794006242670896600365158043269626524090193393952161274029046283667033492793635667615053700662290785039714652745075167955694450911830135225321360681776657917469758964314943319396556730928870534173572177998258552676616513298499558477293054873872071801949321258303661613450389808677785794035080789745528646876951865084678144568804760241401852097296121551886233675373850528115278605568873002553607205386633337635164794736627691391321918171301029286986645867494513192836408823394804595655598047567395240195279713106043686317775400823934924726894642627581400596568963461940877210171809340863622043917307345409668820093793481861908816349715069685629443475337033388064965434816700010269485091448243577992835875326912218205741606631727855598691416434030302328466967977196682703854275522281333516881160143393715489072198174706580498747380384549318685946194599646696660002756561242032524283339490312364451984472648778541783064969530200226002571392952215369496347125596909797626788673263521655143294303512297506749038746975576325924802606319783111663289451212497123676513895549884596295694951059553479345406070989446368888676206886870444437098530825305595504251586847146302623419072545256887305212818170352500582558032533398639058738808435141849554433857842031260737071804137706971752288477553046178839890848824940777363302019097586393807033099303383521123839679445341812367299287009078795084254804393085381877192851508660665487125119766796980112316987945351726286137326625810254026399032427013452533952301626633398268851543406868949447739658506845120710667477735669478513659196583220976612541171033716174395268891157520953001180920167164290716949517643034371533471775580292640128967294078822249711859070797937362585546451846701992498227865302457414085525825576583101830084582802333140264836221512727790195926694590334787129426259274879447218293805032624823734303239526977367101921205957026307757146544997248924014742455858916136598689099078577526567462890705350845438063662045519408366211762999676867718473562108858966484274574688484376926355846832664267948374958839491769257001907681409775433658117917722289462015567454104526270791632383727709315609071074636055529749780513683379130425677946644523796004154264545988115312907259955907369731212358573073228725419981628330509063763232723266713062946560493875502832586351852292425830023986458450787521020816251211917721136358420281999809824417662063593612178791527383568972565127885110764896891294370872329632697988563558689990941597063958147797698580042834654740390017257136972373350287442830438936073105857755291262423773844784305399554359245612385403471499967128831268348734548871828406693409221426437743813370885038146748035088833810867919404001392681173840597261475925304064656062161042750817449496985662737271474214784593564649657586950914542763761769437446621684979388638117428655015484120738271176528458712026859241415001952188663048105537122722007796711329329239842914889924367399614694628897490808782926759226575466050063347528972356936061648018689699022086735157643797331661820158672244950358225426150027818548662713128696985094921165625170643795442182207567753436689444967227006326068324983612827237973251947989811243671839212131998574501726234875314555129488429262913354118945875187158494441280164477196448600806627957196728622944906891660826030115624213996246181430071624086162437112530419725689926926952712414473713684740808427957891386214519911612948619491659180008949305659121586876398885105796723440530409831528636048873061689005596400445912659538320418900532296167187457094243115415724573534535434446272019000249015579601397141869430588496211984223948464562075466333970047142913708488404112767970702935436759451432558693191074332099208357603439706065492616185351499201693243675927445425332817470092261362811058535101678754741106192116171659177226083025144290024663568417521703254046891720060122432014354878917502031936157843410787960159568009689182172868766889073121921771326218730942228336203575443404844468269389704211194769805001577306668895832857489968991528228138132735188131462176580580258401055487338241212338497731297024035800206395413279310113305096001032708136781667633856109670956430426743005517557822036978070028713661123714211019360058474027454166644599189759967218869092189626500517326059632606945362716302827587571803788256919769347737674831106017937127079175540685437472829511147355814198585612058264266209116050140146651675755843888467395628299918809431698363427141781603933244772076962111681982324425482942640590251566515015040469239010837829510149974153343807672423129948576292978341578122149671457726780992918065389156794420395978412283079256511934353284777863929089316418506970365858306074336572781487096108335135658162430767463458405212380914811336474911206082888869691377255118191644394238114135210467215569527057707636384562910880846781459735899011028695636343305588104013173674753402788776336900182844335958767604233998779783758529469158691166565474517563383381270582689515622869203992021797008353257046972531418677454756598609104649884927043284820913905046730956796490254757646913084197422438841852648032954818631582999062712205174124765897747770013215508019736150388831841214032809261957229314053220568475578819119802972643858555723324094804540887288082248136446898590919313416218198835063817056207081124946588847114024373556788164671340009373266412212515246581723860245375499314287649580307630057827745717593403600136929022539912238103124126986425408781163616220673943785387912892743567626723264581326064745008323906127043286635872180170142068811094105518947811614783714501122526416249170207572143417330076056057377596559694824354254613185155900600181396853048641466113724698536495994298817218952014166343909450497889345007332932118486751921116205448785893735934396633660532717224195888250388488948854343166431957389675615797093195902773197042011469734224585976050697845917847365727978072289582275883778377221359982096297494181528833834773572630428317788960479733582704882428998223852576333606664513831919204693777828743609263676960609427415637535764933572909791970859119069851962626275169686547301999188574718718526529052414491060170254507085726420956465007259575848800401566826599452847543661555779798038881748622132947376180733876853716255104422586854944236247702253494883659577549961295852272384815745564789067957561985359610683575078153060835091813658737605226942587133094884059272111516826604176527654431301722127670943055993548772888200850596726686911641554709883544195324878044026875825278211404875228167247158563405962436645127398429016378282012779112714683573522673931315990442645952198387309894639915872051774185756584970182154896276973645679612478587114663893344941245552575260461046736189249293886018411314079816727795669605002422875876340581714253108785630182941124544820228719746798623678515252059597328939147646842217017614112338754354195480366851930052280572133040862989030263463355182907531883161150756034847445981896858861780505761217551678148830341641636285699443049772781553360582401374713893491441244559777573105414388759982299615650091028330200229458192683520421131515040529288335573299461378306125619602498944915826283404327321954748586438845840898514640058416839861635033532932715688063419343390887008411734613394004590811962528511060466272036002543995565954896921470469260446910496848168637286977155753437563261936750595264469096280398564145145219392634278436855258270903358114150461402019406473333528027380147286600651912145526511464394125008917929577564376544929066589004451933651727951940154636373923414061374353035494080834874041152140363399947498527228560047454551892791051428629835321943623622074141273750756036872695399269299628708490115848088913977527933477354111410889828567123501300765285926297224319651329966563266764618726084608923743252211420931044993950773036993631578737992934458061804032925971627071141871710936162071973129358358857181236528167710327620671752698437687916095107613985097035747382514207708876079942370703295457747176379354250887670048390502259855482630747337880034893491791916339005841312444276161125561097236095479314073020601930250609945119041956741709573134042455707075881677632357040291190224281222820452140257408141440957010535775499544993824977778446765704524383679712305139420898919871182484075978543218437949015769134331734886888135209984142725876042879541566128169293002738985730136548302495336718013145798510456263960615663891414290040870845945506646054071144004856676526446922054734647862518791235762074366251032387465602963462914648929739337267241210409262613791314816893417352264804551278937787249342708941453318679728510600324362740117920065154940245028288731336771420012473011600207637462977335234965822951779862498276219000794150759213275104827798532052390171976075943183063538992148566424433753038336237512791120525827084310728512756118712097777231501311015142402101236865871551976896606985849050605406511854934267612168599062928615411059726017657897114886574437535181770223334741357728866818533931656946651451301002942464291472359524938412961325549913691735810501596341680255295049871807773852897016061307947980982311496382360367452395887056551827261156437217287254319587489980109826325801563373366700540668787662706137360905236505442540791297171289176599839435472350229240515610024211071163384472367906557350165798550081600306505514629234516677639160651765897782904756179626259643464552541481515885145430763614975784295056998083586800544614680518882658136298382395252263071299610721586688707145626141498839012814743755641340986778986412948786419034453534161375054840280702851067977993710028088225686658296905771072892620836992753540856824788658298818668545708065720363703768954097551429846333683842670157702188320784781183054247850163160802052862274963886533435098417303327449657670703441893171765511889702258264347513457052731364933664687325512083123480784090800155963254617542199594937362956132290751846274274282530164205433373614824834907807048498297104185847476543974001487110971942718391731754090097769287416775333840837275885035813559603690384960796936258760979350494564383786099976399379951482463511536811370314534083741111938203068974665249353919228165625731262918500277294016777824179106294347144039028694727087510262457571683591695148416274883455674175948813336904017511429978491033614694164640928627437851266522530964864183255371832932098555492716631383261566154245993862525524984873157784654046683505528648736090726577281485642338853077787761960698942921660406059706815626596973342870859972701963623044007479659053574774129297364141463916685714520467176975041354634950427059044410014924376224349638006677314742106850763063254796999070431137686023948597106064318630173920101659395039474993509753995250702271674777800164767472181260523987057594051483271632281533684092483130799156048634738708148959659650115713606307395230710156425171074643982258427890213781117145845516346945289454341117813939811590569408224482722732441158664718566659582274560887083303752111899803034167713925801162704761542239999068179435785865707773185842747236975517575901976019567080955819980488542444384068433570258622021700775073539800910394700881615055947140405379673436333203431664871374914597536632114739428123427498059256139927790231801372630498917947434557992007119450475275290795476333518263428781114215881443197884514524074083329745197492467022580396695157176707086954483404427748172503767007303043090173704382587787512271644047514668658766248761532159477057888513411353754016200461897514021782677563710420401153030419765380178778046680546142512460992771439494553654863157921639987165644111159386958001481185646847606620169015299205835364271509767554317860955188951292108544466916097479786266397094830746290224444556020961918219908141891257929846465905729041026238381672536752883905398721973715549105621684011663414653461717961869938520650734814822630356073838520711953341181529425270186975064969447175494702868093868400939189864132219464117794601793544946802939905254380664894133037649996186572927397108531879033688272025193882710996725521301405615204155653860980175181679063188236872522887037270172076613491401334268317301356724043317366647236149697831285662055758905151750984960399749268776412520827740637219031518413461146519223339787060824294595671701227956172762217778355002895718193576670245751974768102153832914976354977888884589053095552006165989718246527917729653549742800666332727167939326567093708981941399280180183905356201471117526536417781419082086237603300618687882803793502883910596711992744487620979555308919767694988568810533355476939308717065770965942048997639572025015591797228653107175636031087320618476589001984023966863536926102410063312922452724406184597619003883316912755212368383348843338688219148858461989910253998542315383476407930232276655159931221357646441067894844352673583550450946112525034438803875810706928347038326229091128268072489086603335483005775829566051647140347444062723575435392149131739102726248693295603343767162951770663029323792910395392884662771833938042182402030675272658928216790557225188200298868229336558432752859402694547907924513401228768333747013890992049596747816007836606263727766662985519618979273784034086348062260748710421856047441517051595578054281886750677837401542297845911909726760480144643755779029109146972462351644892285293622855434796175326938981495180349022892747673686239313338533766484214725047060997876209937558439883362711328149980646100410263817950065647560460602119514780386859370211106614716866146595097381469554242353502128257858481710993592291460342865331168244360826666974024377283932479198137175655421774598336589681163739491463068375051516930936139242519406703985899622335478979007879524168257793696461230694485039358888569036328211907849783654368254141585118265132103126941726148835830532875888610087787799724583784379427164381971300040011445263243539070965860164026825074329178180559129910503129368746279366811188120036277616136859765766436401078989836536719827716873629899173663642015776192432330472914679395619563349850876023011134870784480710600176212270625057409853794706670767206305855666501800028955939056514027754419155647981740736106853588975498312273499164175244742514470317240191242051309481309206926101483605358618171767418506028838932626545301031079224644616738186608176929158483743818773393854318885247952256319738367476560597069285735265014493359853752125365091734261779691529981156049209393589831027774462781185234119665478472328230130971611405599414434421678633568270140061691968345037357838298016392302579746700365518521422434570787149734988263209595956988726378576741042073325847302038704984604190115134673354530002774883125289425156325274488646320562302895970943937872173940504280127848162597094689287046837079270398323424420155301715929678533420299485505658679384659649053359406756047133862876156348457517703394170661063418456158142619672657182275999323258871327066779290081391552580330487905898949827832281738685285263237819444264245347958552679483542930053165681051923983224685503132386042809670355847926666220222289280739910400457385425140118126385373749797681204478061483235167241596317721230131454790612371258260480961501388262584084316898736940519580245683099458699654055660526700125046975910859581951214518147782557352400172456978458253345342410457469411101251580874283179014728326386029040683919449786448020713383619767423261113896968962848467568373871956136269869096499243670524719950208381760322602342506757038618747637197286540420004507974030905458115352328575447923492982661210037591580032856477281024175813337783297793442381908540940856613164966474981160128542334189690813749419030167737788965600482330876134268736957139304913074587671237879599058881627882636689999813089043669410105159578040961265077517022634108033933730596793937109362050630020934602047930580272631293845011863423358087283824258906088906941202266841443985086644788674772419256692494941497657926771718381165950344289790101223098627691378998219304386971740549854709300790001880011689311712733401073413857461753354584770194603079959917452070636898245610344229462195331027326370169660805527483544309922149482492920827786184153046993144488497022673917026001921758546954127877640379155590882888202635449007711614362036404720388791601695790339114322069361675124946979241161406729701018805257752825002743174406127451141378394728144055270100656929048282406309004815312848438811318574042736029012817257981792190948538033836927157801768235197163322668504715878248719368024379657650800624572869633219707871340599651118402109895567125303196268381032375905281236140227051243023530342424126270957250302697704848412346517440368038520479736045334465133804236765216571489216841548465437210706637186597822452754422312616908309967825341479121661581816139396954250539184089780559167907435530030421800505836408187662073512727565200584004859728045720247322219079048798109144626950854517883362185106776375210920645536848384214552666038696292349844486729932155465599355293312284038632037653081949879966591382800398349773581521728155847523346100438168963750729924801276088357835152521079759570527802934403433320323977193012107683725911794541980669744955551411361364000153578993225528103159065723331633333279097487827710082693764687767696646479960288219523707925296708900518582279683159347820631933415844468934413849222151189393403074301094226418423266374243848326679360388546215721050135247656012139672123640308897946787227052315305311517011410571368052659770672763894201692722377853218352309547234310120892651925013142880047485275988481682887940551100963174606583611695356496871721200461038443279896538107355850699818617161798112490364223480711658762424177513800905280625212228390260373070021107880618006716826695246771174173442541550667431642374855645370321360352529957572972195803710425343311979597649815182316898167456166665113066659060201297871918207785306229431106656906710195430205224014392435664309985652346046229286292887950536001510197499739900024363373276747287848030192625699664331971269395812532413919447031035375115057980882208492242879901947675930616579031609341010499800764507981151004538685287200674145509155846159425429283067644396587873055854516028539618121595347619501444825475245054491534528373322065034433957802216919978180727412716063130965668747865121911583729658899502906011822060994164131423638081446596340718758032082221606949157101991678243596154085537987393401846808856287553809679555602456445822574374652268400082490768030683810088561571780362129408471149300980594475329434001204900393899016880382954168294756492773948356812402781259054860531846418929485918610159179268075809275394232496876725027004066005379643566776963415691893212096857881098237049221555962818668662016485741131364276073304093707310219534949384817840540225257342857692769323722659480333602780641018240823585120415394112102313636952670322659728630002375881102612305598874001947611638591850087997536788132916543195177553375540281722835414674844994358568934825624593149253087941125848153424625552736733619626863236441410468090561376644443261844741700542802436204869958667072131393082163917127291642635388523637339728594361860105383866066843397834596559326408167579670367568762185101070745308772175188320885186771682193109216852017511626683675276496168152447977560163408535750312964943186655144974316799107590195575336433932357999259424057220455931066871480160153329864897798034482252536532057396383326995069096325713669599504954727884429838953629376932808285897984510204268021608190128354922932442808786104949170970845605220606037182133755384646105692443232836563464804041863010869700542648426371250349711761938457839494323109266648267717363395804919467245416713913880422790412589714376536762777584263343808245376011403604810236568660522003644257596908997213932635193338798973098993669875504081686672247553122647656899244778362625736784474468206992763700072903308937169262498784816102690692513531588488766192427728608671974053990697273131955708309385982628689827182746879535632770919844762020384896496862149855158044445151591417114085767338850856747366463388715270637254606405264793036784914638963850004830615408198299625783747829183985405992360307038362244995028211982117809370663336880188257465783781814984392018750874497253650415582601781549605219811909412283632039500646337649784840799728186463569198707081918819128377679492712382890334558527493085744873592797487225974716220337667237016123352581032453693185281276175816900460198290105581155824439323384369766771484183832647480518183499325249531372254114795868396980814125748392169529023454488304999066763372615162053781547110381902295906382768227153298978585403672696208401854192851124319775394625286445291181616944452608488993322634788766757141927895834720280242733221032791138397223927687116412314681631227198292587576117281328073017034893533869460701143166231333892459886732773210489266769940310877147233245377214629270726170056726246929071463195189791446816698706412207375167974922473410596884899504233849950776252603557377423917453653530993947766525731402967824633161531684877102114153873920829851176254751411242082292000063388445883194681493769180737479670374692755300944674230317287789759524598868008491113536389491305623269596204322301129441744919966551628968882874300563748119992424480684760889901092400835740537508546137236346325298665967847461294915537790127958470535502190950369899536305884131087918819699960086108091745134573574999211401251632168863959510088669065066374663082381580750558265074434680203561369363337216156553407894762764649448539916127361644727148845879054094092514158013407287044475983556490389213203626866447373199691607091480838057226740431161196269253205429369722807300632531599380337804759814370076191141145858829888867983770199483751248394603989500858735701474900557510310611821993170352691049983484945751452289180976868588077875420350294724982614778698045572194471107693983394403891527450156443516918448177071869824722934754113559683367704225467681928417713171467904904410375582846872680814858956843154076023102750788105585904120346260080823222544746960767759276858127461732606526133220656024028904013450823036450032002182710446402782318957005688196972021354664700778224986273283097443564103675182150436600279026907737569354677664588587651754734385702108666703344504232480239536564779707030034977323987017300682255621577084940418009166486840424323962421981179290654016104776284930028583611204659781999912170524165286582840359798067491944935673863973622537723788511608011381917104552416943575038400212187432952509656947697974312454358626495940138686597013373144899001527504768869491501021992650818864129600935693367950991206709003848804476915471866038292673071430407309197143165396607540366095011632224320042344702381620085569195758489427419978644344952867719086160856495060489166882028374063866833217320636706610425549507685549107750657303963153456439834079349529813212055215593193307178165395551361322813015081348965837653543943002082476311388913429490182754630161806087104477308947013724661376836810312072293027690557052919509575933584150810102314413700482759359934952980760413266036525938440610167040922577004165628468045957099236539994457435716078802885488042662996518971483246388022466877173666287854439943820486630274840114820587116486529081672554154386346826827907583551737095811729954949830164402707813986063467057199956801251350237217358739165925329874144809562081708063240890146207049280228099016757614237428596950820826882393034693314454434212966106110558480175775744836157316762973611245635698964467606269265539196563645673709623340774981280656250008263165144405336708776136174592610512889763894965081246363819757788526322551124725476061226126019799434468758299325765517526038531274306368795909173891703174345124775672030652688339545609732268426747084917291500536912313259080101266846489258354528589782444351111657553139434609155677872059193683166926601674767566741813905270582455942180186756489449487282230423603723727747319197747581895234129345379486485458534773078528981241216610832276859350533238452573865245466115748032000042636283026952165010658224934053377321667685004462407958232196261411005655309042937465914931636534453396244006637321879548706636085721999531193511714079164480183611753256836706689687653107268670130836718132498191027902377590482891538713395829226249145489172952624907969597300247005155350705421377286223785540447833189594911739080148207489800493394623971757662621581664365496927672403651604666935911219731981050327938428478233124166574860614819682600405916299988351707943953813734401623232425245734535367512492225322364721291754208662774346968689060451800863303540376336691365561966719520126092488111355684454362887434172025562588392514418551858583943956037426785973167565645224785561370449035865209616582113172956853295233936433816597243254224278338226176171382077059169114428373600924147005008330303019666616039109842754956152221287960126168358112026199663701321068913351907219083274039143534129195115968391643073529781755858989012484367090104316862852244756192000588342111362060780317846188044984917253632013812772019760658922736654709047484699668614701465167549310965212671591210873014057189256353085761201809835232792490367694215752529171574420435457711211052424592805396192548780090075790083553168283804184292297767048755435282630008633645693286729941636049365236519924978735332706199015085839354617263829370148089127105470143357058114823985906093727255359926777757560483213525568751334178138088968886211710776085915832813276473063718581850618595978212333135493689425963529474739527414018396178496506057348179141544313660375094518113659615973628398570210712501099740893127658591838247343238728091264687802336066473517264955784668983068148023900305755602835980108976572235075339737041395787837319410113023760233286694135113336383715857231537152906073471341055776960901589778387355676382660641048314025203098340423039660007933068291746099300949486123436815367020464125588055592189900008676997807400071399174079198261313446674940788713451946811143747484628723860740556124852587999418845608139779648657025096738435582311300838655093124922148404449146367532220689232496175320943158072402923300415833660434562972592140698746663384312999562543172799258123477143624776819465098277263526639786361405146501221598721341259880647273310369476460313682252649361142010991538168710473290938383796060891788453512016553429408324114543892473366765974116638053776174258058131135079642445360902229629418289034868156260586064901669339732221903505167936458354011754214384746633521785617786801134786490122216141264545643719866796580789142690319268318312241269835256283275948889280865097632329923142594296256904054069272473995424139678367583110783802152622970561963703309143249215577907098161975769975450808766491292809866052126492346417028551120966801116894112012843482784210345204600486194197135692951736897351046762890314433312248610501502845595350078923857248403236483387030150157443276525593796319677653955885587176982035223659813441740160181216494082691785840000961835184528341214275838187350794858435366807880188270314226826753796087656526993134213246428011865318657890417796665795760071715729093380309254508174120733652476641587996667937728277777923388733567179234705819592033754112627619995271231484857009499958302217662412273444526239314940352270671642230394318395639882266374855589645397915480764320896697361952172347861529322079122945481435155129373722430535385006220703813518317343765314768794425653193945402998987664940571977516237347556928081757836763955675994856851294381103194808929103419167683635130130516788426520700552375859382238733473115521868527821527417146039472182208392052133876556800398586394892319352291154908696572931514202643606336191624097764484708923371720975531712530216106438642572442570014325720832123260117468190423900813191396222204334387016056485695950977948683913610604156430693236282198884544456113599757480464362494712271065703946845853278774412910239802193201004926431243942905332571968055369157979217358508392508007540650999236327227339671445287791902997789082850235939898433826514969733481023832186717385122404475621435895835128240087228084842257594262723073190395656506163111272614888943189870372617925026762391665101676960344550689931272881477617926655787306659672625933195298714216878729984770014995515188447656907724198324922129403843209948564533438220797900825884211229244183068473921632042425065569708736625159166338025571368845583557179800687403136447197369429089618991011037468627742465974174198937364363708750355134919799325604507953639805144490750268648320341157907860745204958737948514247598222363962090695554622900203682897583083228868681558573584354801763452049775166228977320597079786848394415012135775741834399331343789022829413501038970548554780168874125605140830353923179380153273870541475660295533533836466003852599468746413277850067831416918923381693991374214093739718083887445469513731842807918808182122658744147323201741939926277872796521083434347086079655044260905905794583676714436032260665190005372154749749601599601627599986554324015044304000699908515145441260152547110792181708624985872585337164452217186869300557218617696658012381351286565519073932096007280922454503187904091860550736783963375360146118947642179011303306888313500409887902230677500451495027130510894417636005145847247365745737228563000019246289346075616535888186478381115300425599869562461742944981008564657260406445647280544211811077129379780426021502121079573777397946102799636910199830542225705264749261203372027320942558534634812675945414065468417692505908210595409832005231533797451998403489661482195413524723782745129315859128514778129870105038146639971639457750003856361144380577341456266409606452466180549901758743132850830915079137863065435136030538139808610840493511618900683481805341544782109480609092942045211631806853624046463370080900363788926474400522411851181992861188321144858265310009720606835139213617445292352746461928612457678017185287767289472593477529784249668255802215347119106160966993186273837803010578105129528538504804099325556179820796071926991510877054350340092883893211402997196355538230942946102820745819300979906251993428511370265783231724111037902615875795527960420368465903802794925651701614762527139816889224803982172465737891793567637640390543515815734225365696023619904092639253227297777728607606148791674595098826926840533053331932896572102844992124977484613185304712317701178335435602356116599681809725499156729775107834179711600824450132587555418990715269969812434400132904171271100744598023526484135224428069986469078720791267063792270944768630567251509359186712920574050602801865368143531313049531565878415067846901590284812912348299751752896360039538560314729095541498448318989659075357418751612634235839204742564754791070679886365913853870887613239393517652572493753528718873136837721587898513138517991943737030360171083962799525197022259679138778254170826941645676915194021449952991704070742298488200663032217818172690482132368572106256480239598840971415099567159969493291881936862816735679710014799108567908383414034361298315881945315183652591918362433816430793545895593435826130130884762634372058660845850082168291749699580443203853460383072456246226889324548343660568310169203859976491218843151865657360037088266505123944407431330922941224794934744927369516584117191753962718587266400321522877301700262099549415645483192660458534249959084811877357311105516551417732282846222648056608970373774836457600484780176310267617110932483887822558434095073538499323263628507865622001706915974929576983924062307020116054429103365128990479726309371754621452174436202894615948811084678005917763586749541209936430578305767986822046309220152408633291667093134858438995838101811649538890644087065214051695784001246607178428166109549713647430648760460778897789974549292213491847972954528457944938990271237071387171822578317234169428570195861784010488999492790794425883137867060286119485573276231747710753036043977182413476977546063053070308127284577395941907801265477598379719147322359834850009690505266598599667107539740710585189965139726262761143825408154989608051937922135770576929829084729674540845061822303964109195438760160651616857331865069194224985642159376770379508063954236628228639282257554254999000954275279629021898678016894669501392251945934381523327459430212543651534503076513314995992722870753889748066981369363786388410987967252622390975991401479161361633173606403338467392054612210975244790377077437365563614715394412069827505964668536181634664292344498378943223611671549197190640980838555707885405521816741599172472846653529169582419773798893582982930049884059747549018508367491953855052651671674363858840356734707010120865024987338864474241971501035335526168504492068039652177086052660686755259483594452666465936121550694354645628275842907050979873111572567943109852053895950227263863344222135775054466759372017654341451085977261572558433803942631261554413293920135642645840244706113086589476560854837523568444322409446123501248264745767788435398677234375120153776443750658640861328506258052209369444026098778719598820615263770501436056582989058230562846804262855067339483423618705423834493645059382692615185594678303090158209662897368238037132286336262871641721742174142217273652630194224753492706492898315870259503318462495400302668647051633908731872763875795812984437221403041689627318274717303613681574234820848668448027073077773840058268310062490791003018897105989795497354531307023909913903966300001032870629224775982573217845803512170478752596290523739748352720054554415807641022879898755523713985397033680392327154047310930537647124095778606046890574853298833897741533745136812377540277045136453095146316072834008009878646303604717911150514010592435998552604360534990602827594607627540713349186722937956527948741239099799949275624353145865075456584789062142948367418560607753611624439597613946738362839236569661960842946968770292755686809383941267359336095148858814647319522652248560476314304923445999259699681609711886388700361607516803664915047636958168759745030493451924774202224281878197041922994925074113332728131437478673935374226643981365481997304966058072287083256506818618596454471897858790208414752447283593936925745205334818470361049182056503020498301090759715549162362671292963548665766217174490053642227346122701153049204682536067893567205090524759367465148633256072827140695301311117270225220371732037058854183133495600321523302289084386986501100033927013207127031838947608870365396298207918958262247410413992833234666894936569346851085810185931389533538733883996602498532482978971410535290003233457351582877096794917185198252349363921564514184813445509827089210407105211842596503047698185627490188853955617934610873904460783754519817778566523141175263711328606552382710392192610559267778982666162011925438644056955374959079324528077274172518281901018289999780122112061606383406009194258658111896870755271398465866126146619462893188803529241706561987837599189473097029648382393733698238492724967386986296124143283987718831641143928391016175806919435265445893179184821406675930070095700318539862266620199804657465067954397975425382820254022076989228770719057911092880261681873906041898103708445264829659346821115135971309515807376323584062719868685336751469440812979720006943957586792606452175866333271850739349806239082313253808893359032815069561540575135259763775258122273355301308183368638602776835872159287438654387509090648687706510012729241137575627636593832489896120433437611350938868561709834669478892536641294889837230771558493140409171895191735958438137709236805460302207984602364599792607628235328969882880236317502040473704206815967044962866885196815704873297374780239681431984291551515661647714615691998315905370755569214294778441816853240109601152612298959168449365951154390574722213254427241612560439279573699675587434463657150470340697803608225479362925240575016653784152286482689047365702884636171773576452116415934009785269908395222872295358624996079141759017461755617371331513616157580381293762624537726916667742911187927486588972730763951913902031001746983603956308949455406140936969918176397642360105044789563161076210671161993906510931367200651635519505583513371646855108682653854514609461657058672563111545130271704491296171990257530690215819845904489087784065721012300859322548865038726762307337992999449850114144634239301485434322448648137540706258148475195601292083893508455420778071345872323890410129923481264180296606420400004826426241958441452025422243892080245314474380872327067729154860087671028102649176601430954751163641638248707954611221539567598979862083928988804730581579619157621007085718056178577062764978971966642351769373602738190344834265251058828645443743053740848456571584621948341809276333250411345936277664943878999649942578688738103567658178364279817234432319953025617662328197252060934282451701321164114610056753538512120935207233314644977670431786060802934359084242527828360038246881076205875088256458635306686537513631446539959343217344402645409673767909922832755704349752079210940343236456650608102116527518676860997017117031810967580877435359147864182409706115531854055887648913313534513740825737793577087463795435065819487257788018377597457395627668189672726454517384642706052430925422467359953639187824953037384700216696240897328601796854092891249769759090793522492909536242047292593335154962380982652199082076354623218062107149493353097129407122589764607109340027554740813472509020016349212596590436519421727460688449643351770568814989483637050275414699245574182931559880058967774210277830799768101545831021663404845359961732030272674959467164014877003076646917143201888422571884092327730494134046407246591016422776962264933560062927166032342798775847778654871647229953221163948509125910900545763279114987455219732353284729353454944375410280904678965387263601362140734795573764784137784115890665586111428895742940394410902430390739143232248189817816807067262348664067758873283854662421884953757643063577695602079139860946362704350745136612313206475210414035028706939931739235905945049224484832246473584920094023296256500325263948261664503972912845631941990029963018669948165428486302326550952122502859311010809987100479110606349457803281979682979456238980738073771809964148918109042138376873965816001499361239444379322368770062656668433806059870914783063957188966664928545924792189771669810297488767539715167289580314132374151727751967209691651639040245774333225898022720808016983253646700357484917205802588262197437916741972826164178174561462664933992049798816112095096617382992261517979437971277422044630680174927019277125893698559592108766427949304576735157374835439236776636845151720045974710975118276119661748041500033403987834185855703364688259424334688344946133853712269107346479224015584565379310701435998712749359669968302797984702818896369969334150021909951678419504117253149209467011505833151037988663731269709799215410921980305108398612994621793020625196369530925726678735104072645680465812986616612569976826557464878120927325690942536860596460914534531080405175843416192711719084837239444615489979974992447310286173080312276883486774799326855218816564193333970129546725889772534437100313824256984831760681362250310002755903392125498197901225524800296248657694657561588810376523777579519345779787246856625650228036429243006685415108161521452298067996127761462279883974022915313420683387997688744030639961597460495617003330213253649004068731195938518326385343062236453699259627717033415065770418210356430322397918916139719055070424359718566004781636650217575045318977005233301061093972121498941621669708965868468902427794351362552260932689862527525610636109856180490339031550448309323337736870314116223484230251660389281415622344149029488965057043786081503711470252594239352574188958224894759477548951579155043997856904937517590292078435799184028990466110502939350626687310301046985865151432909635063923741323874692167456044572966916157350323940405818808492492528083403194955811383757196438880972790149231067543319982260513302897936471495724849428229680871083638580299876982673177458025360957503763756480733868617658500681106708451490232562260704802907899790912447468251280120134329075439773052883825939124862227123058123132993550004218677944432753711906433687864123304478007419255543360266688093096454730614498370076307290389985557076243333130582473592312810122755558162175441679922722616989724980623677511351746088197138395212258455089910347333974238200647663090842798947538162077407288764151871427694047186414772856824231412592916418286670639170985537337576573092800541653394301438977936515564007307542802913955294224467995400139600962179527991564739684993752451672373547634395864017345582305166318156878929015411677476081995237848108433856719895171683595263737354674749492664903788005201362517929121743075571226960818205237891166569290900244209566131222412834081869022230183528699253106900850979288710838649344407512866994199761875528006383983554024451763885338730499227777155680301461196934457636463305406091620983547624632735283440319700207455603490061198264316215958165401701012335022883857984739655484773498036205199934169939660700726204683508535211136973428419353589762381584933161700456844737340593140647047132556166233544398362339435303007887748946556587131832638008393956813196163683531968568394634936161443442643449449599422158071295179221154472056614697805435474921657490463211595127666280541130090865539439734396973576705428318215794663645709492150741168842913098704925767196800674782888248339639806537182906551330192386558450537219582777839440811202476719872704832138437338312090841074398372924559788655807532367891884174629536373768212368888694221484564821312745619355350533797556617877707537225903173561901528662856769738515892756965923830255745849812650249572216510836393035499926381904416627829208262141637265176778532136541381319024648082745369298430705907951942456713970599817380027459744586727347792681943832249673950878598891571356017227672614632639236772444118150877363287439015202381945085768865680531727617058597055368577775035223859579152665697950592796966232703263142124703698173163520742517836783880295506751395664546980398390491015584608811005209625014531293252849044860116503636789358512723004946508627896671518975846726290972871774459833526283677287085372519977216267083740095438291763064879134800399131968778186392767195914048055938161781399449017781525159772400221377095110275079889070260622124095762080826643395086423995743384992666304269249077064782091750884043891843243271464394197538203343753515780621600684884216620344573764055506397970800043662051289743804936744936852975388183130808822121902330107473055177685959343951761080598916605801139070682716960583069755947073955970541816533546880739984179007050074150812237275500137147128400546544871568870207317387636641819670896546463233481429719348603765948287610701089390799211947868893186336240455739432534542151415594628570159940099038350850675099212110323997956954843881723664010689852423584061180509133687119124415671323892834093435927026524469564738503208246913753120308232483827844260746399391216239645044631822991816405970000023878984618266920035356235026944133699048089654592545780272399240327656927813127326972981287918835671543980362076950672434618095788713659809602853134414278511397945886930181052736864428429618097744052669600384298979621462741404890353081776624543776360338955793518403823572927171223942577842527919358439530788624332794335614239821829640440310229429317742416231316634402914473815828366401419086906947111241347980748106153873380974556374224620900149513378465865259120965385219546984657167721290992035365365209074022148809467728284625947283018969744383795676215235992230203930023773862608669673190249545364898723751037223390767570563398043305953790396655475222989261947557761331169626067334636974543805246091363828570234453950677290069152290406971286423072358599387406575968531269613774779425332200861251604347608262109471857889192449324777447533533040535573556074859360954076672910851337565345325486189989527118683967136550564876109641930638173205084752391740263697498982196910190944448582180264242707833832937034246862413293959147800079435255157102880860669038995943932570206269592841518246438440610583378078125027328257799444873775997364465318091232113128516425175778334584739649073017005808924639971917485935486324472792021310617187425206469364158646000201790210330719122423639979241088105991842056231871295919186538470906903022954051144756623924160553578736618903843092961080252821126929243278698785489747646907802938208171509734233888177894863298970190690116090469146384247284823186792158589142115861218108990111230950311754974388536885707682921721717450578686211410280485440563439021631792156352991731185450284403827005477618900328735337803461128029469955600479812852239657884107350843363636181830956386849099197823516539904161034923707208868750197388876287854101688571778299319941816777797034677951838644893667510580263365681059176196111076233459371229288859488327675709275830265349018106038851665587809119402297170620252532951347059843325350218606659295387579675098840275584216586363526422441107164424302669034394231397883382034157690669941929408458308727794812268683795267406948460830334551704595435568150341258849577380678398433195546902121566512485391375664589479370366488101410911774953134019331137633937518137017302767065825371120256162736426478287266543174665302985138505513044720183167684005086661997138621863227628884256073425962181391809259176348247337357859143492142227069668371476105762517445565705345951747418214518598906339802322652029080650359527287701421578441463197516941768486531567816726187725805145793098788900051397480664368307637439256512271205835252136205075797798724121653571791466244395830603976356292922187444737095795089779763343471987679339667252697162719349128175547258995714678859064245087791970047712734180248545042636539689853882063842776552594374993566280392388871949938466025502612657018303971111175801866292008363291563878972205080882095260970659352464009063269745933235215238880118318754687770511630763768009331037879568399909393937255335622346643775973417630481450975876859324237683579126766476797991975442285793439891633531063226522042357246503694654639190997001176591905216514271973597744397205301088658372134357900582657828143409401924470463025723480529595453295824291061258442495649731505556845472775318007834728406916733486582822350282420869491661154448849350117293365047186632828045030917786286320306121969041327667605147883521235923611048906577243347274334464322948375128405157065751934774635819782537599106721545745861575152498438982225949341673637147986676894921153969033133456536412396407085217052549952614311334367096223363058420883722762853018843745367696323135177097666462996941789322890778636513385799866701579603119214085637451774388239019207837451877415927212632866146924519884654011460002160859863987387909055531580299411470469449344564494249871597180854702051785292789634788669345130565631382042222851054888136438922666732399933232801949733949990611348149443009360748904679067068199042061965278919710668168269522145072768862821277628197609897887155909012549701218457493157746115890195712211559316769522873516008371594548904777550714409739910932876238761040878957672784766344588535167049340150202038646860839392814808294279039765357536374196505122324056091031517227864825229092201383478696684848717102001660574488179799696664756170575447005510396095555338706914407509322121910890213397608972138733409601807116675569051521848252704362161909516761454484140350319119972620614312498825602737655389977745821699454371617052794646154644560399884366590670156267691772787190448414904236758597018722761733683553265061811116614779083834589808130381352151513175887740193243357365916059265092232632455746428509516577461756635193574022141579785630032540783247343453677651132709121498375456440737884099219200855519196876194269127815040542415505687138190128184973931644269406890958553918846490591820638434867912010605770530779714812368523633481053577089969075343443874689869030877662836040990703884816865815638197027061277883651111365004873269197773561783288748881226002415509691747688621007783060073549467561519779861017173909954157777328214615308498339166492970560706440196162254919458155286644096468487873065730197617494633417921326685253245737778238926364800317983228916162155343404791264583129367991889348547475079123390524377103457397064751600911194553026253350428196795263473429955277128897924447520362692120492377618830999220056642811677639905731461607313102268201689002166886516331981488367011655553421972440848327232535072067583971699711970274947957448084310266718292386349124936180573197655011776104141827643533656940582373014187337533588892266289889802090431485154585809373334592588817981570359765807875083516846066213796809085352384640523421786378687609247609230614337222573287629630037495783377763603160864021045091984366629179655050230828807214410011021816129267249232576115306017290092483963945055904334179572874379798426138688690590713635308570876455814960566737796786309707471433218557248886072599940620712419382913235430188793268272460236758080747404362831775825388045277051994539517200272226965696622956069724909545461239893084381903703100970169831185600771250516093370178855892259209679018993920290254964674199028796766379007602944614157051072270590949421899287865996231557392388986140508854288283262704455001509139730519856696789998716408806651486687757931361394937375677966623195199311321860832320587851612987467827575999983803894284319981264865478159060047844381846002153996129687743668045168577783621533167632262969810249321081766999285676903386399855267770513971533327755757619491970834988593471632062689064355120877916150111130106195500177710314237793795630211025204082025320151110633439482716940314047973435918050522957228506749188578976726344449878776065973424615723102579325454128199133963019721786406988247084309699690027252426943790633694195556843394052891664195912209941239515019547087992964352469575817682986186628898553593797642998900128479666026412735491148505197715474683687669542354957480285949442404780347403540176706192168635286398850212423056740751139845615019095429090687888427140464742459775826263740793331869769229444444210186250679689295100138335718471994953277734573630853502230723014939164234409322309141842362491091891826605320456907828508968956166829829701055857185553657463322648995349657050931716850199401584369341343188429909829223444102221958952912844087252250677756072668887062300451499273120577451286602916586495317342778791857872624659358501096070263082439171596405240401045362198431802409560503840647563560752608490760742953127099340139837165524992288369517515662579242096121501441148545692377513028405095206456300799406734692099475726854312505401504065628504575196511515318576427919158399014093924845308680269654834173940466779084750263131364063676272275542267163805880256903792646651675504987849191406475406797962503665962115686318435381233488492119267458975120694160853020137267114427261490104387525155801195079434387120495632431855628816277540853077822874830568658924667105609172022110784818271925011945873090433562315223538560937374736690779268737835198980263812079021754874852028874335307938432127662069514186766921299872353237808140110694256544390127500869581436144779735067037914606877569423253912920331760163849038354928671167537820093114999160691777495887073496913465325117610529575702056945047616871596915570193723879989516645659331915600392938761329946767719400553719629703684042958788474588180740732639513452672059908494597230474170498891071687453538164844241065110527690353446299292422555578839786684524968410356227325366565289241486673838485044632997686973551427087066652414079190613898003820931968426345910755778273493447987020672715337776968942026251022224167276677659765292335633158524461370863633506635574433296088176499267056735164811851242236400938537744374705986155993980300558709320382511320950885154127544106832789355638393069046755610808003652057383906790791678033916864051860561123804604033984163157737041396016203516641556470053909867222788077500314380121799969309500865987048420754485124262236313076982097655038471200288785992170579647783196125382786516698899122485722108205268576330500795791284769704857117617288405486178369454615842324688504945899108947176619277944752346330350148034988712123939652472070317272292957809718029175441458466537765403772975556752468660225142898416489628799874412068762877244163965325186176569238840717762852652609475959692986258381474276371785855805292190520712481142639795313321215076481284239765822080121563990501500973647226278130194109035641732823133368280918920820149790307566323936183048173318021181745878247779390368503150134011849032415495619765787012629683846193414942975275255806204062620862948760641063319739002005724590652340406249037200778365981616921128094368109914827825631082956413429738770001729995451325787436153986658182873579346527855821305805739861735950692894342906163403027955819653966746583161009831132773967099792341353429843591178215184736218841054791242686096571093514301021416749106761143229871286463999591981952684795148944195296992854635750007297677545285594932262534976116871395021547261444229450578692397917791385937832938489018229628337028141621794540157516662919233474747917630434773540815347265978552586906130528354587649234449665941491971282212576724439320844503763267901391870410815526353713861242873571527508628058252293153966511960926852503160098206740900045174724647762370386889936838116232794683867690723010480444743679276269260771992358262106625576900530047387152940924459902978951672865227632732328009048866032526496115180506029838269447057424065671960476049367501255346987551406199707322283473475394102325427164603239211523618868886210815500777272669770800161926858645963637358225503829664453192890751907682105579250092203341299958593430954076977746201450010838744602247274602218177519932371139300333483475945624126369358200828057219880954112929546327273192767122583382097325274576277192337105648355685417743589533164379638741569354103080390089653707501578091466153965872195276834401252438137712875984236149913269708599949874289479187412416297163878787169786828552353609470641627982932054732877531810685586412037314690133369728209159128256884661560557223373308537506374266813935438113684066242501121713647679222683312791679827271957038123920909739988778109379164667542047717999946063638932939254927457682554694045737664369550838662675792382633600283578794425213223476418779727151433140932311648373294605785968725630044438016338241494051261117451758131598366830338916180560659641125967711115443542231001029039896071639176944588325841250211495328897127519751619201797124219553165642614982325933752681448820265470824417922956592444154253311378384430737745117444972241617606901278977874503095938501317768033789865527431458415558207200821964808364664888496454251789787753501731275499726718526005900905504579287792059330367372681869854778665490790718016495687454143041390817293366769470914335214804566057495630094046284970891552457785885028183842172225068937678213202837739283004334577550905057554621551538326311054517170279328921246692696626791460441262455325703197499778402665916560515749643761465056181497738969446494955575253291083162095877307827684058758841712182116479396349413962007144169767092460348155376140489983013844488945341475597338410573130421966275334576478551016515200299703563970193470685021038922769220079602656886047959723299645553415816030700879361863442232102723378572596253203800584766202296994800603891189238841563154832976725486986759080269733194330878208004272368579797048129047512537392363256573281416407352125478910043201478680281312863703800823105528417432609687034089436508316863976137738009053148212558269815475670428212884805535051161214511609252641984400661207524998080953800573776601920183313990782746605379210539214334490611433056113358247216571585667418193773408892771280943735941846261652430625847795193075066869783106592817695308466672465576951503986448990147811716945485527850492661082342253836868894536617005833662314216302317192556227849093478466595248107332808382703481780869723817854325213823248724060431927940550274111219604228076969637291622319253982946907080078018888879336188301531599391070299232583004313386525119690483162642436421342504524728842534797600760127562761561551674424273585097844367189414124114335406931505010069695776245401062189485644248007409915635482341505234413573883511273827539902048216519260836330525739052917311207371050580269319863220262948982103023949647769003841330045511741963444826139009182170544091327207609684171544165603254345879770866668246155913953816879590022459908238883446152541863440649037976480040672622991072881603216592232538488409799673025386713962371051307430276868365306460833321613071262804488508693744668505929443239798351305232974842483083575117108029314420302300580187496172730170552099900658962559625081796791182833260830099145839764558337725300364170381145737935771688408578961856827828752256550913781209629994825023216097011033028786816959133474550207926684398861363392503968821387782805045808067045057727059772291395801222049875110015103952627580986123249276720761211197311179251712673284294241605729386365988997109822657416959452869373313818334602205687533987748625309537159411838663834909008260361098696496227310422765350223314973866444942397697157599646810057280785520242404316041430482153950297754148241580756815856768134302701601177471850019901233234996444354574383107724219061219953855832342129868066851176466549840599236035965435007001988775075278136868477551087241000510048161936414285709533485585077728571714825233832639782288674838332609292445521976315355415741228472881174985876660599765510025510517792713755774853942663903161880179287737264874877152914227862207121437506365838690419320149529263616644350038575286164676587556037739566997350557288813073702219778343510498479533610171845361841898617623526964660686079127093358120096926486923156367207427080457809345275194884835592168451170173935002776626833910936133769442996236737749452358402117997845347158563026476270749684244251754411384534193884286970588971758771397739208251260657688381303655285856107460714549715901561408895352793573342989716794062820211095877344977519141690278963866178975065563204711693414909123375766929114840674016640886760062514935432380675159651847974590670845890240391483897455241381772566357920586430452684633039854757766106637288546029844435116953064400550845452045655031015108548883313051512597853185870431559740594285043279786412676522789299804301942561514433385568602068013031260282346091784739880354525973482538974530208903901787619693517048823875997790874148346944235790046840881058105329088902813257529840024142343629608258925241247582133452451315042510889671885112698220647899480402025963485221678549872243252290001322248975338408605738444568210890566794102075656335382462696801198325311026054670673155443693882512530218804374570288535223002543705387187112597624007915252594621603425851779325856977078266439413381665301732642609417402122917338947005317073891044464711427248424183381433229729475640943046075996246578676156396265658088356242944124162290070524538063645281794321936073195397847650281870989914068477411754850046083071985017823259371542593882620710657981787277795103158288592882699364931241819422756158011505710438002733791495825796036739082211597116696055191146967587335595555040159824492559246796034919523984888549114398224486045899352903260930194999030116739658731684721244755100660511740622413672534553549017137654713329743692940264621195652549357494933484800659896461196522617303064768648589245416719943645867914975324284265570353740408009190417406592212970671590264599960524324193247150930278382468259743248211135546875557339949884974432927258360451768923446260725199488451185191270542967928667768265837478942860643611276895621674131315608040864202162331288856810692619099348129527867181175442550199350749373613333612252783483652381369520914541873718046815216029135653287067495853694004555759594843011140520810116699220541340127221985028848660633391505344004963029022886399789795654643481334168826889033613804609149569955648146866044084671680710082032897169146396509310428460126246642684303311991141347588467229003359906118887287090440139386829724836118415381473758595081749665660003202383193423590349066374530715725541355932106402531752783319863064706348242623626038220941181106214110412498382577341028090265750951042861092175143457636499170692817629237562589658896459553230190900242282885929979312311214681596248877839146325749918823546241102908490186073701888789069844169749950216326871520702007504447239921325330466334154587449389215075744030133376105578021984850043127289627483128066670397772068995534930860742639610797845915964236220762217554594387498354020142293594239055534799693812599260368505618207057452416502143355212433447837683664952615630886455471837397638436630881252352041046195788858720446195048441933173215850043177914291438889777031847573328553665469776254905403596700192037536695276451017458687659437753360813044366153714918656836289740837481759739578595380974276881669344825141149855339252044577698396812294730649714604951569964129654900113826084260132922937104918234386250339277281114369557014554820905095624274061426439141570682360007525990616748698242057993522745639260844057989192491219751161228287568668433884548494552872094167118332221523607692621594620206336161827946086118724779270609559735969677469043405430948236067212008242923813302525056492568319597493051774291246421920878897318299608542425850348199446905736626089672778924502999711380310662353507266294979949565129487957556633528253408028262510934354673892750879197040785899847440476993150371197274484159279991301701109340539933220759037404649907640756214353606663691841880861666918737160439370911317869942930350955952226882337344711042834991864548380325821050476974546436182624732781037854014149297556636071056369738452737132240154171485955260742544977168476056501986220163641133439091827289777241337250892892025745104425637279326529319011451957441433677954332638962679056311720019309803390529936982635673146332272054832740453668003012041270967535390664295704660769958631425216905599678367834066489569557105124111382630312649926529541236097396705817538594787561281117822250566698504055801215244995838558706132533028902583055095967278059148597134010974713753562826645942446254375696634570322954384330763152543995355630523012300026956837382849629861966909854626087091816614300996495143833257891663741610871647702074587055775149650835643619327574095511856652532696297416133179818490932474386463740058748450934432843449501497355133289056363364190785118209615387303424571132699497836065597158857308751449135457123816180686673823560251610895357865306111169267108301468860739942349215027403039222334868046072607214687643808353043051149289502912485780840090322085555481702607371100897494588129313787178628441756870189423718061750023691413765886887519149498279529158039381569531865116935413160544772662768641497551626244719230298886925514134209637305354226584159088449316424702037243323433360607493388660353693428909984965236570635936707760957859729943537261477510328617043943624419815445034605200174040332706772490690993825963943180083960139279332666167647231382665080715146447094783081256596852697410016670046489373546240146034058885809932048316502791044912234540483381575644684382106144767058162416004321157091621882093925321620161730604658675563977905798688369793070177352380693816961037397614315798798970547376463563214688012517819619758274274303642580439815242010275750597813794623608489423995619293919081401144299620467813041992416987228506509063505848895350508385617898362066441055038348812710365770592393951996748119835192466513695409497339678183384639275881909990346613091890044031941229087048546132970575904481597452431665944671887632359431805412883085253999559371794055654234794530656574752161979735816590329544756228446474646434721740721594931965912793977666585796415755533446292454282709916464688232286144165867827058631242609373516862617554398384838717694319942174140546444647246194950191682643180684773795334137161400599024373020277357475235018816965674652036882720915315289539493417462558014565047596063260598786449745535980504388748335057397840598420634070388885796457412064506550536477451800816164980898315653931073971419403840149317015675678304878048268513030308399172749930975857981710336054408785937463311727942691277033180502018583418777437425356091551315540125381723197093533193419827990871728492970804696301764285931910557135767360015231489952709232721532842716135200497991790547426174819442592125578749521934633811364025511193988575047057505856738821226223108904996023554611780511484443995319279579949907781844468849255058416081883232658242263437224742663531722595747623562294821945664911189399705619537629845018491877189315915515696742114421675216363569178647272399302125967433484688707270439826347513392052567484562817542037370175498868616570524933437434062507381353923990684080674330486700770241741713711116553005266426613784316123139378782589181857654740581898248776850804605523978824294855790701544248912391881576366636412882460916459419064461856901250450790590334279399859155003469648954608731738785111345027471238758489895359497479904033180532182392441576342353632479121668054389947387938248309059871122077089704272298680268269192484188431176018760186616198385276810142208202889732226145944525573649965867089586514286495424180672495419340460695229321210913273363506651126571594244758171471919511522827088081459798789126792293951805089030232984739505773846399422708513844917670574681683908942776434499600327924417005153516165333488424484726347982847939499524111850480406367763783485434170097253377678076127976469992488554640104785415030474427930907463461138022181948784752781911051454687614134670686763069272806300731752182031981637236650594008214644242137942761915744321096462247004725067305316619415633000166695825070476102084981548116389768161852354503748159824354954048963881298330285129466202049748541335552390315090418961917665465254536851674096611163137316776204227392810544932091316886101365080929610467263947221147755186436113881015866834605291862211236635964802677357179974715654979107883701235917875598965571994271109122568124824977908299323268560876934054834181945883659304685488617564811817076465155748700301212669033574757297048349365792414432827615099408260650389518680901468419840451333971706926875657026739037670713060599187845954830580329914291062873097093505284057292194224422676395139811221403762387211122193916874229824895046178096146273306802110275546242061878309941366210664070827293607970935998117362000836904843108070556004439056092301573798539609272516102154803050739247085616556699137135137510636487568953734370842230614708827191864808709403967409570661299630689199686733559266623628496622369895219782960112095227782263736147061777770978615794645483724998485371122210937218007245789431542118081401546312358545416500339019925796127117666364961402559679777344055028665750420572461161000443487721308143834987800437814147288361430408492864180137110165435014815649458574794490033208093325784546234938316461725053144418933198806709834176905427838715319884340159406297445740514520783477662762750617375941925098979984610551351391609838970667568260342930106608380619644264104573802457264884738187930114955525216848375097764735937800919396249750627609300781820180530962406742342027551593806968017643910863971791331222601867930171433264481943979504710054275737891394399690974315331724947952170455903587683274769614833351900506702434330926914770135171556106537311794406253115014420045049194862755147660387539177653664846897910829701406850921588629863469340722627617699754783893162044930187657815195526792331957437133183357113061116481874772593202745708525977831759620716000531267422439847244820482333673767179007203252368277530550977456800343191431220095433598187200940105597396082999306021774021098147711732543676201959966156262717122715751898897796250390647769577829595516417413641059294677483027520439539087553953176639586042875083590863705766150882975499727684835564355095643430389256460970148240937453376136019379583728146055196162485294779937691584330600629667352692237006620693840953444506655264553539424560445803667505930000207166425735962079108437201218664158166416519151076872394868012539470897449759588375221254337928028459210394307245109165298134594602986643984132330868638312522244375983304873693970654641157356452623851801018944427252959314357475057859132685153281136041615939605321639993345899694791632374827575621308054176008408000843490384701001277976806615601418577571785213858244443695191688700066357082063665647491015008854184691158719113531253347252859477032174033667683673170073121741692131862912528921058136231391636654420291981149119013994560464532848450465104845113524887821049551607865152943522670266558497721844993459990923863419552033843871272592049001806087492234736032296602306837650499905641749736186564028995642802381271448404824434010920189199992835824161048893207081644978071190441826257518591958040676299061940241035452442239588224209740724744190277412890711793283298872413682135176508434139890908260987663749099832259765523945336749444558226404599042911299132876260519839345296933460178443418132201032784150119069544401761702446089860141858199118904115103369015029055531179206030763500346676613509828701424166877207670956881204148632971903114450679565485316285417153629158306895394670306580632467796781049307885158807206484373813126687119339563234905151053374024437064628839040299578354020270158399058260208516607869524736166860909548438066411644900079973497068610215613662242270709811631177319158949103343107521976587199597959011118079820616725354379958031184183372323356325407370364463203734735892943701893125244480349789212028050336417784618880432894575615635236940435675019976117932052284591259650297121450205618026067492884112071114599199331606651480063313306952905450028396686231018070206484226930509896332648437965631696671904591444405120068416378348997954607389230195377346980071177105507008908353223168044109972788556990399542123938294525279978787284860867042708435576926741455591022272459711359274289609190222835399444313827508292985978862389926351546630514897497969102881274163352542753928213816912953136571666556017063988066789710408333978299943831841040147260189107993464660129195232945465935344280650790542693694616474122373160697328243978500652537808139856421080950953342482587953108046077539622568147123369890235849162817914106972411926144429333326166146796047515866073908416710068454466135632018159403283550763296599725682964901813587495050888926333551145376359908503101388307034911378277746309587280718875644233342095981959659354952208762458346502625488114529584865740305698386821635446704950922617810506829553524423713758652897269446111781126375735787768666847177408544740198402487486835487431402159741171767001563526340890090273743362307807309414381214433908681568449758715718560718415945002595545057416637909832413607670388912873429736664689192494462095000131441801369171229111130289004599817625146821925874433669632670947633422704062939114855522020525591231442092848044330181986509820047232479425480623683868590625884540443328317725568204227562904429193142505072617040930080936435363818207343051912289118496961998646618204274102396924860613832585496432828219809516808541415283566023475103167326526953912994224848643171537489094018285115158522586571751254778640077781706587154126310101251675372021687298867292452565117425717234694225396722227267406376898670149678403744954037678441355362396074532742626127710540878263521680292534207460496924101070201357255522697647914726232930079696071264330179200867370270365212161678652936949434217329839879319410486969171454197842457527510680259370508075448885045602641310429209848425831900599274849106288371451411042703109134150414294949819882462223393054751857315472404787519942608796758640823288826207366442317980532653431408874295522817356692793472855710916469714060340226690300335689540296276148921003998932438568151985587349218045311461017409525753060283119890015935970888765875269366981553536780599668920599729037635097554422987396982695395772439123934976910420248179652316934707221723336058018630782656661305017475703232817050548391758138080038240973569116408932064809967743005578043847631462702384917548760748404097095002848523440921786425263064242639104359734169103299232002054936342211576211227044028998105138773395111626537464312287869999252506482318959135635291045801871774361643696157403134970400471403953898227572553949929446882131185576493753342329108010024501530327073310150112366941274594003275912624888171380583778692629130439403179606763844708988195313732934305389621817097981202765782865489197376323350902457841745626952721323367516382212417721717716933812553513214298459981241964458749748415298324452337130474648874977969716862859788854736197275471865333068052968989280931993771183830806752241642009949994835334973960382890027377869745679304150701248568094670487292985929255024205541264344015024829294606598878172475080941849548715120421183124789150656948438082883950508275379899727279097777561953253016382730595440817593774145077970580240089083248237678764863868445844648277180443806045637208032468179183487703860379509865898292231036820579265480468334328446193475813798593437971309121123320012678822783900262241044261171515230245722331802506130750135767187723504931036854048427311269614306447137399918133719980124145917814400880372596490009415170266404034407967932653598762403653175838294488885265086976114251596984278319586825605114974217436358720933946325638398978705432738921749839866399235217793631385346557668267185231781189238205287833848862769019721759427360980691860457222496819098400291460433990867369530349183737218979143971567898567208449882772826353014332580610266981612075538937390679037554890211534610892622561447827385787138988242952257341048980929511003459908916619173097377178253242473241930207104776544769477703988763800020913430480227676359283638085482277158348101252925426745214675588800110375682787574597226163122008272005875504574675198038514812921400322236458218618199092125373461315251605104267682852746212398799493595672396621469829255104118161007969278110570108081634484909702966294631077587455612722493624646421219525993113893673236749466260697913203513087231832235787043123587171587373926346058726476726481994247686090714130207029609978301162121754860526844625918782337376785010474259752925795760491369137603290508174465138452097461016396872060144913923144693682980879382974014636131852134722244724934356818638211308823658886499871550674408380834778227424747188885355485999803608484389196672022318012728424994495174144593439581926148213188842913918999230009096048297223298403389516283680310307876129104828029690998642445374176282535611609154449171768391151915836513345343010125256677699672500791659074949536974110747669755454666254060341004486630438643831779844232725076359511592190992314111121779290135251705668724026689511474484644311981466844645124352102959539095485224033965375252796933815917625696654787044075488521664813004819650491248157390288569357164518612135424793683866483175164829520412979698594205140347118510128351926011489813112699248557242666904752069350523856694147620354194274304021632150996836257240174633825990846626266739144386073615426200151224914235716035500653072777940082915987690203205242575892242611090098949841950097352323814467113091056062136029420335076371813914447027278515767605215067434196000561009765945194868293818845322701000546181952450859775650347450515818377065645209202572398360242500360931624531076861401182163438674731296625945437357730423829816785986298542410251573676489276333721897258370076503206794860089620285514345011082044674464040954279213045438156486728728917578392348301949594120589603526259190471958306495013013122835997055962518942190101165103267801118241692665882508745017597058043492969389290465607528690134184971707693147688769081310873474659942570474191561855828499414017002045462248105154315247325875086434426425185832478232457996780681168649084793273697249651834152931086950086131625039949684758253708126785571560569074716261658546849478940723109008334397877412182019886943340743917417716716926215291161452619847152870356152128539672197882084145681788636252733558848956535572053559545865707021375154871254327181429213975648777804998120739819350654782110206512842739816080147514092434960681784924629128839054569560852476778470238492596982329831989978015600904280643349627026675940135932015323424351514729305088598557903816004704879525914460962529102181421366755426374540461852365784145992908997287356991276489199931632448493078092322915091229233727997502115361410532669066749709188922394677396413798249294837017842791637017483139460746137883132604587589989207441666163337434609944255759968019324021154196515018535702347257866574320106020253484399076618544664827395484912548811989666656407305080284669194043238511565070884947644431077810684413016860136099713179635684422609244788519173028301310792298872614994954465677803322622562577716945018704132473104076553976621167966331890061119371041261829167710848641499491258375549777615383620997289543662223529974842473064253330393423273710659986129522433197120985133160545795733598088545115156952639547699316199907949342347767667092255134182840609398233662814347481527314519955767104349731708871443685376755882134735615459050954095568251679828690636247296324252332525783233752421681948774752861363537121559104584752159895095065566515680789096724829290820747531602313092287637505590425706886707038469254040037891327512201042645995717371379195991266315137271694730923487369158467708392365178238881759721025862732512538536222473482408414010327509328270222423676320463527853144655004446700820221036522078794272693867125191180684874837042010087235069310354071076472764707242919124964857200556897898940121084583154333769997460550547488939478436129631302156436854998034236186302814998287338079377916134211460412623369814516258559897605588651351933851842972611984332348207658536960396870084818302158141547734929567766176485835990169699429451585963009400417293731418256854725536232613112573934501247056988941329554810740530862064605264831472032322728119168573503273673345772280233101986727725098232823347647671996522629757018736451652682051368267626385492982882032699116446368799067390894819558974250025417477637915331619215766211196573491183721793799405089176702922047617472915010202907908517279393883928660189816606742576273085014359987181817462147116049963088473123832197326040475014127067980137946411117201746488661696748264207582256175141994875038861115256111697393568960023334791368814652153926799454211351897032079510942175683421249722922399960696634155548457066865130504585457707575074346322372486845491113464674878380644464958482698346684609297192025691749679244914353843502247557927302490989981385223426339683406126356393491815110699998337634642974100104580976492246642435754173014833921845676603560025011510374539979088370411225536100632990324682182721856433503459319066500189828028964342437871794230583503081363977144803288046070730103873902721534413807225697845325279407505372053295007196077428663404123557036550261477920323883055257898942905411368931398433890412266512050572057344535158949169254738203634370353293505385866416549759563707312178851738892706707712356061434747527064287822344007374103115292443039494602293810760969128945553510907225853258004442953175082146446985157286483587908304591831439899348997128694572721466626329467105640309812733591785828810067344296481506032041196467224035133581409283034112421901584538736433088370535993972726491369006159675122400052191264163404752280389296133356145165116535753286396935633671637998678799521824656084476074247298677014027346210386218007180922040731837849482873556913584179491740434587171767598408359638101738621593729008850550103417781240701233709146566101527816634837611550065475150711712175551509717650957390610933513277362665728496859397591136234854787762456677675095895137387149688422072752095900614876747990215629445717701567752188682303709487045814908219989344068838875390476884925206823597941147799014811185402498166917178152109212997029562119214367768773747686116565012758747969817445717998686336714319334807573595736225856910392111262247618692556574314316085758492295853721615784215083349163282625152998688423217104617919202741338194593403567896071722948533288889559041270877167139056575813935008255404221861924474316920776629894321391659332814916588232996065384001695950970841298500309125692341146332986405609348190635581633319495334317386789430944456388332949404935258856704744034191070981724205597348091967985757503236250729776456298810130768202917634111130980667168080705671703353853967680686321009232690394176683951775937796157168901055623096150473064586976945470444535980808809803272895310439211317260176995680956176546641066722701406402241212548472280880793475024226316378002304469586123462594384130651968927105813657003857190635518525534556729097196021114283921316037974381853803786954340743416974075136059172227588943216631358080635833563012580866742166839924688644870370989151118639727957240514980475130543161249150251759219452736277580834133459754498015577152268919268362162847545633046766786968488987005207917664426158770042379720315989699334922546154440326624473730787733008671412457888778469686936953136876556057585324366772075414656929374318241300714938017288632274298148689026178209399812272411293485052775536407342574044689042699709054457876416770004143452716667975661748307615338337250584430727939802862345670668883255198420353577813135623527063353648873282028365214339938921657356030835352550758186656017447089996501355934875150599317928362202634368439487039988447808505155010787524859362190717678065411875519510919978168495379076265421026571001129012049473655064978960667473429742272101253878725550391500743652588110015445704322344300087197946528459928959506091826408885083329187938530727822928827010978783599161101726854542209490353174884841878310271450426504100871997269191330121196524071299690223051804932768316491734623695306571880501583950265885205161197556137004947734699363351481003585334095224498851840270220167246593282441947205786468299961022230875260269511466398329618155583451691670383492298166220097356359300680921509821847443923225933365169072469150058051951417015693674490486816066462545133811086702422803510225920213904887414526516358730461603278014477556575011972296144466362412510728241744801274267731814018780313627206496353304019418315920974843614027664611660883333247890697490126659778761988991296634734817661484073290721067046176276835505429639563783021337655385710979332919177953093507516253981644577892916623727268731316142695938380473159082795068812024928807149505017668929964013874216553507433570456054614080779934462607390381050295265739673321747919420424135370286174951733771163836650081290755266260867811229629705014061553902350626662754769152428144330150519632460984201083151404291181366742697638205400152654809261711972220155927428544469713755658702245999581141349906679282607777450695216165480335032704808318898844772576882831216525364059536321971102899764087672053793577690371454269679597470741345070105414127712832057928012228949747945660038245676759913332911889187726804365637133858343209752597668839176949296427127452364261430249750244452521005622557037224068590862744626402084461530380718011767177996288804003930238313227708907663595268465767149883935391048288249359253469486431364387123268823274942497132904669311729865059288090261339497714330463870571484373225345518941655019274865788928847570671625572522884935535782379510689177388704361138894330145597527253068644190919541788871374137314879412207594087123817753123430905768748301909814034679062458484177170880878183913482204843319080513683163503349604531612171748517383626596160068129493223594665773000136635900739139018374890018530305192818313041293631334684199259133546775203298043630508329403638120821995003336925577733353542036023855637594864803506793285270016707566295106251331990457544990547088359441545146724314854142194849262817434502892927725457966398893064612692431999149059538515644091119634060305766367469332624387164472627545462197486864125700027600741813805576877708854274576251054312232631762200621635229927069240389695711611258353009445407327997103770641954557412289539257740391521264045108183494406405884477893242332711697580853511917457097187778208073603286032488506240274894695382837420284806958144656616854422737234966592847922071241958966345709914977190388866459011775568092263633283888586261486823398110006523376062213132489041043051530252991193135423919026927969834782472554176068720316495213544317442027288563309368136198755389488911998318009854233808560619291961549774069277989075831653063759179728198015388814945679954628523251417257131586175945216853173247813795613767366608411740441099712967870562013251641107736988712403175988787307141912908958909835995227977873042726645219146728288230380457955998192126802076682879229613190919346017104992097591371207432436063763920888239426988484405975255660853694462112491372359320729168653391060266815162216458167055688030491414929724312710931115110879572003135872197334884554708888120972356050240201921642572987065411727215494672976665997664118473974872899893465695965252976056386103600032584198736014389119330650535320295028617879520044202962493290032737433751620744013955991230227287817371035608302644143424907769632109139401007536781221454282012877452827625093458687661498705700741066873693278690957021446384197356784706880133605962451238969039269230145663230011710533249160021861188672980124620296785911532454730172488508426444885485396483100776857954722601657211055884404335797164358380541931815361149065702333974928630581141823493536106670328204704071107252948511169252600013347641773534715119716384905961731512875964311561129854143956524450780673202669492836575400112489173564740458812881453097944789751225124075097053471350669198533188584928115132749073986131287074413743404671319321872688257682204066684367206696951701284276244540688661786762307463173929219407181276283542433696793597641515912915963923829096839338366995303177997262377613030820525371373999904376013714260467772339646272016272866118237379787227782924642248686600319083324068338746033930528542612400393367106161218551969522461883410369506354277236443257846823094522034716296049400290112802653689324246133829457308716494843108388656656187499898908215987478834796136748726077859580177708045315288771322473916430484207121317755012788032757689918496117080143620102627694275173303136149151950023968860042144987554263180524908904803773237070976892085045809154372913835530444206579222752516980873059562877653060526032370026221106425518560820164275884668446854519822612945536137843482939914888270455001380577222996114407524279571070013058662391468341998624014382374700548941517008493171639075107924316314473222714185480929781366874025015093522092587588086839821416167078630058686973076767494129771562265148966687299015687636821991629885346489477880776603785665621788429016146854111900802394297715863328345341483197598745643971893339436608601577799367579646239840295943938220914146296051276048338769622589462063418906806443474280420995245461730579259110475280446383678318551760324415797801598939370346438489511807797387495996251644838975283173015374286174625607960707458338948458379899830625197322008404414271786028330596540266438112231463727005513248532516982846354291527522081043556747628621756794419010884769926510891397893139797167019817977667344192131409843939280380095437834750869791645155712986673197453389398315402534857193229975601970394781984141310421303389768503939408951857709108125472056456170896126656505408063520862447145610527094163295858614202239274034012214057582744007572887170428143581679656382286567254418869948420706986633820049484747961360097014867702035312988288952534153287316089893217248061178092452603673103632494365206968359621001742612865967968597278958944628799781697343487487806630223827253646807024422561954936288264792354800826148394343421229052649251646700516682916308242731480354634426112900449021113077582692892322554137983467741533996191198758573719130583048215062426723020716477317241156533766713174443164445218290190431123944748171371068522136548815935434446600705358076465991794461378006790848908565421981804565459805472137640873101382430891681622811090830655010997208271286385450303567497164689293919261792658047072395170214269894288976037372651899026598534634041594076053864142010790971279918342017611928456855915407810052893202955706007469959655105692773645790369087875284773723589807757923490806546923866632916216678398420439686197318068219044209185121566546988687563456666893021383488393809426597223131142619187505862119904989952041243385689714639115956277484264292573073470960048501440890170552017919734436070713705623267710732747138882545550160231229597490405174598074405865322570341419926887936244528797627123025591640924818362458876479540088300034494156122459913186367698239845181276110306587201517873526986718551669781290053287808580243274123709514323403312611546734545688459607874159357346696335073113639160478319871661658319708179347303836287087145898036218449890203464287491568226263482153177452196607122565004816062089279326529684337398928345636476097562508485739691845924812512664052069690364343167365040666158455137831408489799202397715559890085466445640285183741725971490655246534369590924205448416852575349013366298075765621855900779274067734324352844784889305715689032607116124350293612139573354702978067416127736644020006794246683899424999609994552050792545540326969478159051777552370887347802197982124537445637197268679235262654781694190463705169124822697895362029084600811954510824072965672498787295715848811851110205646246705434123858178054239979938428358401360414390710224773960006869489435685575387862761062135342072125684993039566516201319090952544802371306225254065188414685172897416422689415138713758459046423228244675404210079612615809747533715946454543534013847408564953329545231094346672387724582230702799699284573155360144287584581972850179216687844006442581749788543010256131703900263160309705074284216785542307192031312368744960342600915919306216027516393486886543555000893167669469061789226854271553238124009553495962269323394362057759181587220547200458888174236567408715039360345130718239583680607361735443746030654336343742102019086866141200347451718234089456770682568499263094439608360249956509829550816848476909933863329624610258273406346350298440986384775602759647969522105353302210430199785173236717166191811841901032981154028417528654343264698646576511808815342772246983309041338606807042914972501580766058474236640281099161340249873588975389175568183721698583574283006034864892253760097734245556596104890192668003421552722734237475740133447291313208146945198082778337125734305421629784775046724467709407758675055734029651941016325094834116519041956791454352356412968887588610810628479138379354077275829421125132974878667676121682267764358975618698891850862555371712151013577262462227324156270281386259301452844878833586913113785691346282395655522926664906074595119709140334721059822782138411035280918239022761978031717438392938238107881138612136380586795286277792543308486211529516525538249779999651034120557278012174219243157021657323962031832350240569647246176779476205993549669873365784728713928334613125691021170830468229810891624814995586150620912134698771987557109277324332848155039737812377405220883167821833253859264062883446728756111061213669344792986943014367222156332388002297684912743200295081416037419325934886858064489578612789938319425215087113216064022224265819861087153806114588522461361476640557017153547088583047187185446594946572813407271395260532689434836344216016792749486679123725128153716866227920594918769294152915029939476619209868493061155319121997585479395821129880693143143266449113146701519675529599476012908289052869217200446032695871662970475028772471405688290621562912737115779826668659069412000218900752889622025205670051836858543471632739887810586458461334828480707170721403881334308894545899706233253502680002916562587256783584072123284218976912902017330641458124737677039410774833682076377870010418164372828993989002972164774128781902204081552263850011237050321429536866960056719928598685890488644258150421732853014534374495855013284586954313669642082828755727040858198765790031648861733330817692378237417752487355967717991608694325288270978299095263366695735881780062929676143227218385075333507255837151615038183232119496746088586445817289881252532596406827726505440260246684523358796440648334421426176034464762234670342140231764945662433359779237213164791134130168456820082257977934867555019031780673749156811617139628955722706085808981552800804520108751022443191551013223071731290604547931313353314391605416273183405945470733733504397767804411234324773256438981709012408879086554223592082270435443093005536229189876950024821528574267542296671227658639676394326784701851095236215218416138566997101468290386580097837581407980929835190327665664831522197137380908213428006166586528255647612807482021797704030819098458580176058604278946493334566836838810148435234540145328557558191442773637975180160013062933912101837546662893329929070397879956605501778470555433260382517240788850070699068978737931282062290767748868181146817166036074838013184303950724107195788432620563875809699920183734986861873813072454774384953886618760683525617464512029392145127291150124563804717316532726223253996056319184147474682966544109382614003706142392430641572185582043992179813975879461800069508631850076427994551020360388331156150980030654049689167246702368134397911286971760888074206248207607675718634844276957924017013593038432579305092087796306103719338326290356812319052585540800602578285266755437562433263821829738289791892917263881429515837214570521045518825726184498586736559786558479394035626074855312959202872343082911638701024298212228299397041748258204871728145960999323433550836986143920139795955155449846608240243182090463629245233997463477477944909815609751828430282855154770526991917042946985875370681041229467451442459467195065578861587648250252062848584677696287166346364275909043109478966317502644648077273820001552217750068335449898652804473670056283906284057916875052065408909321619786218777086476119931268206075712524246423749844193256737024196130823727737388844641440132202618891380901881984274421007304446611965492622713871707028857495907290187479406804515501662597225793854318886745851198362398050901578394065849634061775409858048115653805431311604389090567258203638464109127702231105238654402420149499747897039291676712010440060245161860398774677065284762741395244490905078606116253248793993495223048250639951033270111946224205713079395760998042779834978346313047865025201656333194270524335342870244552728721445737622383811441412218404534097460865865992717263008684104182781394827756171420500782643990653267862424104350116036063261093891152377699237872026438407274431438762075640063482462547261730832668931066306546962198622996188521673108840913334026586104834966138994643329256728042223994799201421218050994834418444231304202681385459610989792430094946270933020193706902280077633956317139787542751469981841252964855048602607753105953721846046763149245510501384739200868638593652192462793615853191351278209263272791142478265747238066725382117710843686570342260494907482037186329558308242391490210332166202659005682657527992493544189445683761952955777157612926430224857998936770556715215203938906890778580839383003563249416443902451506975943779429274173253994702701047287870014789635260583408378711991464670976538799353072077290486384129061750052471631898092043709133439544765900985672891802467267149223226359335909511450279274899147918017197079267388813790639503170034081949356822939417121890207467689591379166090013908620643653306468825713374727737581883287116216647538688691201432140185648192786318634822424470932925730952071077005437129074756640538854719796066928049321339277267934525075392987113270396078423467425508589181017013515074566081118060754881133741025379842535253412582126473062525678660448066628254309001538374418043157785139797769945925463107871524724916180427536767629890339037883308426243111459040813574357252792996610995017430965673727732304511929733866104588231967932754323287755438165893480497762221297705219825289819472999455587563484525617147665598713436582812442654120895223412195250270119642525352905481909449919952588968635525503843982030082862770210364247189335862800587189328739364732862771166969421340056966420939928211088317879023776368534502839982214929287352825880364171534736199436106776556939723204344683235973380031612026201455961185311304988936196667787650262071774498264629948677500829929076229246484018938634569388517653666346258616007355043744674014189472215659126993883641432666088701695501863253732428756857466758976088026869275308672785508877029829477139482628270682829231003196468902543028335326821683254292721904986080108872740094592991438474143712210415247113911979805996411992073645524487909854122730180757422699815969889414817241857280333432594633798957344892436084273184082867617357165616326376245770730058788261237485840819073954898392415047788125319659828865460659036694240973309644347737777459326673713692072415973231458960358935044660461096551338092658935834651595196471097035381618215175204376743520376314277740126257555320345266575810387945571490519581780101063277448382112362873471128540584386237507565728873991777693752593740774051363140398393513412055732297423297262170975911676165740678791204201094604005600713913793662370314621405425226156873152424023140272565793840408197048854250780784254035340521994301627829329137682272319721700672124457194760910878791390186442369896855805553922172654035660879342000832581481058561105090186893803601145841201992811077732639990870644299948263712602980653897389642979542245239018475179270802251502854425973192287050411053706415646800621587100765954053499058603242262912028840713780971987793942997188994461414336911039611155614703625012061560870669620524893804739642587033444940056148045438159792451652362716938304556035054797801021837804198084032440698933356461927947805821012897535605479961435014569523365783890294632228459983625804810667955534353078772783206064548718483235705156936292425739278743201181302720407912637692060184729743228283455435662646583335215668804209649076302197948364521859892357824490637711461053518176684970699238210541240542955663741966196736654613585915838858843317886938796399424522241449018887291584602839942357302843010767342632614024489944390686030175605186378020141442724816179359638065777015944808513842484490537861983072264653844810191194596431731744424003653841304523089417478070462332735408145558062897719507550097430130081811983580675926317344631613169399882338154587523430027825489770248499999814726921942705596531585184183057909353657352866091201784681765167973459139039015524464694999288895372549004947545833336431020946029523352137002906426325101498680498929272462744771936210796479093589321630861064824871584540584720384108969222060919072039690212682347412129064434479938365634442521863949699397124946386162387059438833647028767784135885119870737832520600956704817070263531560182796431595531451255701836477371618389596452073932765143256072299968620638645204261064185211292501064360068603885091447404241181607619227856318832779515546260458725461664167084829554800463900811580811740668550197713636000659087352608474434588643486541055049583221532683647232464979743884742498389046147070720611396639136172961368103355198740006469879340302017276824459400507226158414232247114927735773507778903967458863630935129259662152279517413771137673852113973659876674016996271557144006408474951282547322245757672473676203521452889477650968021533186657544297832066093813343803554501085668589181758958146791160317768681283019716736223716377267995043199873329955174451561092663847353557990210905542593178647950106874422150317896567122073923361182516756957325580489939071962803900601134455120850084836541753803125429052947154656209035184865943920826654593981263978735990875178980727511995829292430990816765136605431307920314588337019706213324841280830223586419157246129575059803196745990872648072696616197668275830821612620508537232718297219646988146465087567365781349127108615784512458319262115880165509421050876854606554163966433285049877872236227284732972626580533598882979222874694263921150192168784738088885871038544509360100749889216258801483686875050772644717571288949107404405771507075226792376084018184999810146945458964674554508480584310809610009733413358217682966568447957971643849792974532738652651423795061972411376344197434910327104601581854404401978670692725255732621577815344480860448385884017286771358765059974581735794044067986070251033894004728586245240916323998921728907336879614456592288625095707054508956848873397024383088573688826763540564023763376163244298424597202932477777662645358636314114124229052605864659121866373772075892277554312365485100552185171502348172631755608290496025823353747033240905666740044960806376726839261202134076179185632041832189356800934516002824327229249475880122642366880382036573387471118148399225014198981683012585363875434830066347827627406559866356684556033932367332409135380456571306217999810856055218908515992463152424934682394688268978080834089044647194155486727749989793011739616495209002859564966715600605046590934593114235505770223159407370591918075825995724192552378421129927986547685882895840838413651945037794033784207784132415376942993806256317127793499706156269685560690954028843129805974232748785296316081706451888050844436718593884556018957432920810539105148103125294991791869219522836586490775531730612510521767163037647471092844829506934425783134219197500028776048101038805606505191912974294517346320232129501846766944287228539967268485494994437447831849532280786710142104765311728219275521148898963690565016479019241596345024325203205016480785288119504406448275731156093101827281355478792622403084641452447870222902144469378498982183914946508009460771303622357162004325688333778492379825624789109470548472705692376434619486769991588404281128136167999371336697325607651565027602892359860636081388989117013679026819338950505579161488413300276874609713035108448952560470745173348247367357891912166170432628848109285922556377580080662216372894991811700245820805317935243098280601193656353806006956932261273676674289347796585630130971147767781568486548803082111432000558493706444894011735357479896764069854900351756956064906324092880553948241865450480396775684797475003831921227411412964089317665869128131681625030462909050901040639881367127131392591878601310364491897268185292898234429862016603985275729197240277092311920114992018815524409928363972842307321319278953543137667237087065425298890755614058690942516117662469463252720556134109702820103721576539015696875741981652028747905255011026092690006305836737877271722970500663553889178798669274128581203258460826374243352230883074557860952796563514560381115971361163587933700339403985571995892196668969749519621626733957538722330500358806651151253938734889381697992794068197535000415259512968295128043213780157119954438475623906015191841231091091645218003808281375537557608408377184911777018424005686702290168374242304011861840784884278633432545958034999089957720550459170219116850319881506087360679629416025265478249390688026713405515846224085575601207716957703161452384805756420434752425599840476792195076383727639915228246555138273709450783881691247226917795117914392880793225859861130387380216017510010031702936755791054198187194601543507019768265706971170027624606407241740682171947252177468301657420742669523253085915138082978460259038766956827686125795400009940989194877853276745848179357822497290920619974417835509374586362239778004842773418807066217311123687509184606625529518594436241341422398822657326948066778252792475000244407301123973881115833658036309073225472810567443815844755430262804513861251973072631651929500445595080666061201459472097098085327452429815589694317526584401864953074966136065653896165262975682784889156619057189405507092704812456479849742823363961465385858035582609365096068121813459538000142291917653137454521734171222852217183840410743476588914157011219467724372679459845678709502835094410448467323873505687861513764068443006198041539290629835118818566372953629488788989018104800282138850167093485653304613394005285635431430664215874211217763315628616862668030534290976397946942605664066550364193625084307709354986611885387750744865569150184533669527356709584892078525148101209606963081481671721401099199977685772191596761647947329075553766284551319115566406865631160214940088209822864146495302719967104897628356545912175585748997315692370461499727943232692463865998934278001729295432695690373193383996360055553881841038260063028283799398382890230330373865730042781608743207607493979422196139319033624635557619928946816868853914451678286758478513255049022778744847523855152341294968162129093817100484675731373064869640471098077358958977044826906594884402615017966257965846084607725541530160708494337791205546233132141163304774660762040639667095669720495530888244709892922664609837379641864809534014151460901751493821924063802048928831682220405016454569809073813543602981938323971265331084697561100159596767122133377772507882677189811104719807775685440341604240049681862101167888655795466227937269879934511212923789834489463699513705557909661692341889103770738598536914201131731331683062218279908213809398300356578000143955289154553752430491592521603427873576087215788985020170060158194196810310590028692000606710888601285017047788909739760931627972533699511916776982503340105422098191962182991382907248037235494646744470253698835726632215738523109630916890710639401128992790417408515288059075968168750466735161893534774060770350171770329241044432928608994453268341615544412354521351301338488944654543543791648345462579934983991247081360991161411565276317502657444856422407306555307074673849606457224304326540551146901759283816914161691631472389169635747392640454893838701809336887599204388417665712494922666705712637528815970847168794701985788997210556862462142654431365697349846823783086006380735302128152498249981339938174858764078107900142887690959858220988569516918276245353341560031959670239692464759657660726788418281318182086307431595601722215173892959352166982266316778902374394485549202084087310913445382068786739394272540099459532770174975900293077196104493892980966182531655730859163714552311902391135289775395489537478454204338908368327146225345760935129730191012773174843461479721932039910821781081886549175244965351072816449280197034643470533175264271983884613653094160251685412449879118063130338074388520326324420881866910494444908953640860692705843465870692395257417087894358765333878330969941136741427111433078488663373428363729145958228186838535738441241346959875317330802586563671818488091620167905843813300791719846436798170476205991116428179680468834375137373484861589013380998930187023284272893203850027892150525040665458077891924350205375949359953716846301799379947458581581514564805484969788827935995709998927588437068213232231361720134084535422131615845011854296755760997620560905325189012215921923368759066441422733151728560876521870400434308053929737211849897503092849279323259439454666600040972316072840509936668301332644294595104511764235633577440768185990949677299191429860206633480133017365788293076470028222085549775311463130680253759947185823408800181473839138513881263743442213851869283655075668647173925660914411882319380343560398713897066108440314853007602519384978765872248714115015659959250937688536524891704072731540988660758484944665483381146406300852366157291308732111948573456341576367075271013716616008420308095002480652241266095404541282002242485205016372017926298452261928149297161318766613999486313506031928124282316294066699241503834188509910141999110436565102688798597728970571004348932568994259855105350392272248904670116228062044322206659264875269653823984148005434755564039892134515842209480250268633497065953971776312778124553160560012067925600261539691392645076310521248014877493876048715865874696017882573224354280718564488851595786298610734107014710321436554452106576145521454438450868102446359035757992202255542088418758503682552710910376903365808898807955919840422335928089773291725718167317512271051598958624544891493105946363786301407569162434045747044754287834809939402649219494088170917765105654040499432990000002460069683819006077885541991316378503404564086536039894348676230788868708855188924594273987626839133103330821882146255786747542073552191655719817523886645865337716989745148507588979010835440447191833942194920789805704647505355072922848039146845513737471152084944510658446686541367011206663245402925344328862495303153277769748223740071031183583722373323688687545379842458028285861344773814888337084394995774418859037543015806382924048226630317042689711108384110372039625222692727005066567238353368459061271375952435230482302088082585556795313677615978374663578183633277235803486588594566530560230805167711282689278932526320139566987842981791289325237019295250872853896153721814266501470341723188044431346691741404382192368618461955838460905560980725435520841361926455623195680131876126401351963765282053616397018386002165624879138415111199699166578886963334195823885122700537826025622831144475721868788458392554524686256352368067371272170270195917972677658508276622732499045792878432912688894840944964366238333685163204344457999125209182556584571687396888051526563296862740023164947852856371405910255677932307588142174010942085879215047285733377850369925558918565984784272914021251328931560382211070946579022050132120430432078487324374289619149089421940993909388879269385242357017101093483881551994432497399598478960231515614886104126650585124609907270000413131559491224632971660791430791673122864453400805895775400583916675661813137379416455290132232714942677583975532086216885386408365166088123923048512099018312115269515026741994818260276411900149599749193302814658987340486210640909592632438509712469310932600044614442487208507252302456944248967177805371059817682829435036153127729282153031126337760730867603552837462407750412283991747418674224307168604316102267582059682347324035738257578095884949785508774031596211982479118819090915084234324784319176697782652344636560192322359971565475461054732985355760317956961182373599585474173443012375164836440172845284861798424791612547957627566541177704585246299333471892345082525889791565569055679760881811436781952263712088922993398817355305846403532142353329310098575926104912966395534902992453019640026671087892312098701949435248700063339318623247643330958905036323495438562101622775570448970798437914079093842308162067772249973483744774288529732898973238681629258338204683228677601761196081071528034609883216231870439143332712706092855855299057031351001132004529670471412828326341325595223316070512789647744252411824304799178053557411988180250320149041262673269808047877632265873440164148349594038425086705200108391369194970600675109508088041164077684774917352494008869076817249293204315442971147594272143911837285034974030939603342632553181462154305304811826626941283359190373856629907736840620635440374880160826527225580850874681712583681616987250982073479778002626036455879457984901041149914370847754502960915400305311845549140466582930246231801019324888589017750479921305613248977742013882289044136216400414879269415551319462579130254206213255058549811373245842015057106467881011875140119983005604161470214678534727657560886203131878616040395074589392972412683859414470322800440934754717274048103530289182651164454764309967221177093133654543542738414853458534623335451073997715905223997615500721497828319902958917439909405819660508739017708351012022909087579606607120512253918627846069752410063862215311207821944249345251853250979404135446453335960240698815315671498819303376690158763768482239109213406906235154834104234503277384622359157577828968203495279560293917689070026081527137960899854738495773692794246839090039649969979565937430009179179472763646859097667624899892953122768366135461843792748963699035865429956248674018548034593960492517745379633915643203154503353606613013153818565200361397136886309405151722046980380750721586086462479502159654779792147148415511199382829433310589362845807822144635773737348949786393073807845110232366451315524870308674472795314400457034193555315306126878071251463912933719829524022280414700887086965712833287810306784719915417328314736995813822463276342016325330837390735793808107296173251339123058711786450604799359662134679288547047546794536877794548252459267831539227006596302378820924901281936745640889499084066266852536994815294627241943426626692931575893249363063318378258643750495474402954592044115944471598564855564696527781773073169037442675210601096735344612096635751499937040749904278015575586203620242411959615432786126961158427597997084223536289242757387262895901230976974997185376392289240489922448035616760659051003718622103401440853452958046732856874654134070975637905655165247482548198371101110461042115908183716016998610722497944402783814820818451217041463077080326242634733089110105500172631595268014087871427105304013017384964452177073098585892710549860907641072915835958109525410138191178199428147172911899489418774664851785489301090362469661045820165043746473065165014172999682817334994010787834151378617871866889410136742587455235414129735543161279216252459696113185094359603952929770529157000794773033138538546525574565308913366485731210990457012154958752501553110553312637439493643189734601775815417621517892850088239819090826618342640858199099717353201371268459334784072670960537604069236050165955812510898650802776351073100872136123240674030300832130857281247303004141416872122334197240953792623274526570526645260382375492152649258343473232192044854426968605911227257438162641643044437142899544687162256303130877870831137254324081264019064112747794892072627838926155577380683427487408110021099933194189756040618353630641568474208777470748537302771553048209014087874556511064588914003835539301514890770478269895818210763050666822108034340543865534551417490011882115285083012448233297275373314116027777283911593008791611095134408122567812800577136176300776881070834075339053149500018112042865557437559943414222325791679565754567726576377323308141645207546152641735532558990958435475850168391047026310115966928633990329635205580830645568320638395009464684403340212276238568629822271064452139276130821080475357735576068827627577309546459805865690499546177837731546274311292938495630408863560848324696278787947554766668167379105632564094600464830623444876478418030280507412604491952353044319822194384234706036268507984541740941003755498590705865707221727204005735796181675819619521404645888781483478503957394915602425820044834771320628774201595459413902244480484595739225108938378851291632721162667032175288888327010343285151275709007168924518402265151239698627880305697936816543786137915060952811967118354775223371372995172495958993409035368396097953211067678205536549737501808923961687979303687709414928395391378454551905687808011517200960318198100095821787517900033374577098094233400076124029241074008679223292353011997893441380548367229370969327515793792463349010439162767626719756279649848256246865124058339300170926395237377282094037247396018868741702208156954727650681607294058230710656485142605988880775072931036689640919638099459274459681304486226232213917805096331507267252055743362505734871574244973480053481833669328842474423628901906867339209368184750838024404079734048306567148650371259384725763545562093526739445419077754119243775238763789975054991458209717425463047510276046266533550481786165374565153594761335938317666171251491334042182022324862655573653298293621273795288267708968093468578460559121540908582500496704957318728388898379077302302097009263384299628855356136908556322976174941849394293916555731126177853284357206338027331405679469788194700417537652807980693662151144981598597313605982114378107963837475756798870673123975603154703350561197394664146354946253257306238314045422527830381701417879964131891434463761284079523133575527455697506912487822556468886041147463421487160772653420459396008758541338584549360527896922270949606654061684554910196403258919593135272262523142974561710164383498607056951840698527357459399213255207760398950062323947191154607553267734241574418772095019607387956799654790692331900281355542818362314016788179015595656434482727036646602585484653067425158303794082106930727640083690298960170358058752186752790877432050767803528795666628228950494915777090384052782923737985717758869575501029796811916750356166889667931308785143483654092569260393337023316277617729926643525264967772693968129121253829194202229102027727515188477536460631791456804306493554607812128443302016811748055232230603772180052244232071004223878346860018099280019724854777499920323689648110136395750355273202069613672291623729063380979799654830456355130746753915549645852326441076093693880920403354750781809880940117576980289833852164739102853737670429799651707662291000909046655979177569231616702541520722000477505903090513004084684061540795771897711067827880561198991498340596624260658146955125902485850450545499963622858350146715207030738535415058438151130734579214579222908577822540588536400005129152543950974516921290021872502501084565447844534455107696151483685713354673790951192814473978636633644086127961983662554477325848981901247958473436053740065625102432999739794157579009045178134629063473882063067038110798381687201050683719611159283532216885286345299931990232274571926397114104586872208733345497493237625270937834364534264992105202983992912737604479743663974735996473415344103627681716174526321032340416760808598942751995308882540512895678607500767609646472332528001763070409402709721408880321460613379550518269069791210244788949478344815429320506018002497678262223623778239976669072213567888572562233165572193511108103558559272040367186597947645376491359289266504589630582308074397485597563167461841000499311456679586096134164679817200680014810748076717453661600437484329831078495066363258737375393774873113191727466950386109521776160315127143706566511860355739466266199023718466363638750085949479193449559807418659071886366610513987037634920225802179678975664872877796195458745032888014701483621309010056272197085062469269046235470337118626841036697361255226219601548124752731766711636822641463186778119480902261084012527154790739214636952454545993899200666105110575247764165887022374008853230536865817223028871265945898998418915707742916301502807649883342009557548359065646647115534362941359188550060995985034920819929913503405296072016395508670514235127342327835845827029101282975527907972939848916534105800323211120585880520947522494283782518463300904083484169667722603788039597700012182917523110653818213691940318126955809127511504898511509393367114611909863009534245405047590738898951216807968554298712222275524547508935612295452609655631785864781672817869052444277025430692760336702008415124468838945464098966717390468846345595114270613557866217337869770737791384051640333922000407894814673361085075951216116148928825886077631123126463532916539536693254836808468179296739254006086879128657508646739695412268866836594632785685192144435182345610177038046951216014154067923675939743216200957637102465646004911708751464435101286721932119055163414955649616743868384169009521821401612539368456466575254085973236599318058296755920356962991470768915317307379919853172328627562464804644441081728045366061473326299779026085104783691373159082497589249761505627398020572104891308733151311121719194208388372454645085577372112449386086905651316851405726817804632862574114323645843553285256123279300001960155581953988530504906138747254280613791328437064349215383847469786855039081430703713853632430725742955151751380335339033066224475580928450505129826441589629043093762354834385721968577729169599058273638406597447438325431827360365173709653217712769628472707724083971673187043754925381890226615221680579868486814661028408071451158765765941622133565754798065692415443285401383365742288557840925557107466193375207903762399818986253231297396262998087730806935532975557680280908670435649316965274539147840744297600915183070081542980419681589430370481608867696734040393051405297149361385617200438869936707812859247538920723349074483213213068446986202972348930161810091154619001058355564302934652382426886951133603811149178039473461106059418354351288392120869735731019784026468803947591332185759803464244277975423802364249808307271635783719255597358647557659974736212567466777371188082208783878121739878032485795190315935117267135938920861109276772952204852451855729817387647494658204339271996412036277556655708698035657385629696970060318428353682676297374760672961448116594705986664507753456317045386063415236232407595429458733150593242042251776083195799427753707486308508520165782658355411741131015457857978898820401831655625945410649963536637716986528969837051554581029727402128578397221620275375103774379460902167182532897689517693966164062598192501432354145375915467297285510463945961862916824577835056882965889070102906582037052933124019111222005047947313506843600227190018028043738026868168950089763830108196398236893871188320633112165947934707083254017479043107603008149549979106445025082409086439115702800989168795812066713595226244455645189329880826754037518349900112416409307822821535741951318310830758322012302028998766097631442229028984062537928555127508237798967277320741528502411778927131899383094510127684605347236171179066606441332538350501072372072438603395542701008088332058579964643463968615076501601642254999753348547665323064933154380073902458129889067522826349441249164502328904375644752933482184334175946335718415073509039831220236399150106149871090832494272771332797035372056844722749765990025344480606875047047334919369618436746775622245533038060279100307868679565579134518848374376880260204342180830357798733067456320155532090465042518744589312667422455386827003068415683781908212711887525370034582370935523575222787694303946232392686902609981489589934884365149373321612968772668561790994850670757538475583768522711644128383860565256854442969817819274172322851276392559995000962943069829145580405659605939078516538837811225008331257145543795500755836515396096695103073741147117611860706522127538950977526171791503466964630712360726515602912234821878765910735451217904986059798037921296792485833102990454481517584169311933059195281133374876331986039930396642019560349506262106692969246603570358780948155854358689228821511976758158289693537634204958693658589263966199270343934294065379935164417052545481999330235320141708292189605801965429828821570301519776963715701292828121586887235225968080566386530237989540951231378670278452720509980695940672577126913022793838006139226413658831242578784571838562523145181978038444260638362036410377236276233223564885374331134858164809956375451243562173794749914660803194054762275071019364971821088405362882842277729611683377646925554181191247047641087961065199405422450976603774394892050787646082616090900004060924427572839984217808944769199155727555318229701229019295074757862014091112930660297844011958878049404061896783558033359570359749371600303526465948323953822687256188874567965739541448805526280073118663484876689055607532454122794461148873032090509033998897065560434516101336128229325433318052059942654798023854528824714394617113085259469932194614072968819464591231519950933214999782933225632773326242695732672013869011578166159587740895994871988273297769485352971649709208739061997729009011209559065929520621767230754119684064463875180890464318185716681367379347918260289098214826743618199564122117885635028230738805249536519058728732175209756539726589867851943514677719765370554508411403084653058583747345207598541910644105672035850421416328420483123955920432236702452737900745934132995317379024864180402975009261030778067164229532005326458829271050692465639275694412534348585060446780982071401450497128716912065359057408764893909961014217596325125821571670491837295121687427626266822334699927089440650814172319838389438560689972962107131721439708127599799792774268759325355756086438375410374853955130382373514359797724287695766387396789601756786177220685902606005127174360630305484707445324102559716567974762143890167670712528067840710951085196090252731221035472237553172341601264510528511847732686443969017259134548795178060036356538782615431162846992998930292651957811010333745455171469997460299794669523116845722249767084027784981350177802198865285130493768757933096069838398854110168214012910707185053188500508323110824265848631398173844794834676768748087895434689562877612838891016261180783969404840908855999456189523812780748919021151185942233112155357583922903587047148965224340255742944206263809140412121808123286469544455393025819293696616823846563447351353418840503530864569514300188758697333422178123794827545277260157715404329101830815819944807870151423115844971687395139454707225395301534769184398893756610623703850121419265183692559991976278350997301866482057645802781796835849263124407449305110365888552876025219218274128147723080300319165184384626873572640472012241228080971313763953334160827506604420852771598713351598256211506217800212194413306784718493912342052229059843930885176499779145448222566141306616339256857160354850270341570590745986568968292279343909433380213933975806970824707718281500307590225432816230639410678935433068343466426925602897031207105507673591145449241201642119709639257726629339236568251419114961662987466785755441475876857082898751307853564435562544833084132779757129600799122802774314704487894565099734530524038365983736030853606100590620262457131758692379186250780131520418562890936451492445581809324821336263651765321482253003167960650884882800991006248173831253217033530294618325922164452955248475581629110319246537577736287218043536708296101976693898245241015729471995105036157871623490388279968143712724926187576513881071667796915242178849316601221339029617204113636471401306082083195220521590879173074436290362018895617403728463463700114832383249554870468335192865642445295533763903964377439771607727641019168185583081474805611953905252619295272629243424586548005611231183540984041194398168730775806593107733011078799983754402548309970239147724997111193251774229327124863642120489116951187514027008037980375935805257807587182460516323990102237388769817338346728378300215099713970579226841587430917288729155187699742002909957492915743183763864912952120764466552984168640272011605735587574381276438985259813802691623798707114424376837294274348403800478943383507862549699200578477323522232506130153546748386511863569976701819394387869176221065347646757944696566453115127701325759982397246361165169294108504547979421525898034952058451835484894466443016185054607259280216992471376025262249514831049949421855994799506777717892893529748772219101005155693334299349294705121386295789295071574284399354471672352791978947996041818794691067714444911213144253217572689659171967331505667934623282750759842343910895452480244732390625428755383396830524678446394261145400348404686442568459930579425221035601528787253171884270314483086443539994073174155477323629806005675884880127042608188726247875740160271587772406158458200794259512364240889672474852548870358462497470139755335079504955367833899412684489002331053231420601047047581311623018613603695035822502139595818104773072187360512284482621139406320350146778138713173439685959237521927084235034435669929757207603775979788817692762862402268969106605622012756468625837286277873933136428276424964093866397052902271403596211369810874101502393251421081244969145546381438935531629698386869581065436703795999396727340171660490192373993518235224977803839782275150275210030736609987775018784529759815876539323628094661057393549001976814891444616275325337211108477853808198380138837339884338934184338720346053353151385937097296037835138526632519060707074432749745395316172823610965830588429581211811941940110631855423622508193488923355542626488778769740463935133249161762907533316599152205924301608547848907757980966173132378599540006039472736746281000937520832790128847193548920077204298282273799857514326716255575471345556752573048040370669490423530525305459822076593555439804160848994416303547298924583574505436742114360466868106368092710086919651994693879993195102273356707716355286308299916544084325896288319938555525596451022391906304518831635348108402506968256582338163772657377754390863449146353001281478310679839488902787174800028446148511569053093417174211305311487358796667661593718187394618002203523691634507216183385757830767287431922049706511880018296414278241699035268841300541425327188848501500305733347678592498584979313490791406834684222642442191086636633367472667682247984471486912242884090052751890229684086071186756484145329947366328989876920020524979054124150589509774583351090982762517205095939949309920018529118887889623932451614154721910616238078547419095244445420560616486144917283890180890592757233280549845144228990350173762686604462788620313222227212539007112927830241320116304594820104715096646950311742238866505022174378308663523699482480130842643444435754432530644070618219656413634789868052029292581529091541768839765972119302599451213442680682803462926593313850948514024856625916282992562059443187574011867846793356992148803036035144345813090137240678978751119420188224719858699297716980573913559262963904793772907101090014532165005616903296590271236295577656420098050770686795949749228609281560826389402435834544093753297824345283829531602712407211431245789500453618599820290030196611447799677600412440694387133208412240002971615107947720516043686703115310057400432407377396941017657685587140571191140117264263148020053425719461136221153886295132135553118407206101701168547460030865662393041323935355285601424072440725451758246830864648705899121244160734930131658764730584484877831255069269746183309460171286226787965169256170411369319534800820673176580397316215179381056800101757180916740770613074961910473682305512655991151170239833645051139981589812866045731598246923093551747653002292913188137099111202519085240885415260656945464553577596453337297550065855338427192301797443881777830210100856362253496840642499214681339018111880141059628069436735880892939635167746154350486253602465888422756460332452846505860293902351591089390048289428895364504769268074248002572942869914954512315519179393226026821904031330370964764757235475127826675042641492066483283728287508367894284570552735905772176248887733258563081942455493806367351765869474154298945468963095802930835850184344672593873910180616733186259736760950853578240593235888644663005053860362326797308088229841770451727112674410836712860079078668139005464678403155072260248947031105381913941584597818238939765347137226980507174648236971633195606672979770746241824966788978990108964452380005320957092737592765579747518439230712326280495414686742445601477792871674022130751740440387406871432263332662432758166269966721128454709262947222991803197373871091638849765506709320080697414125148738868766355188531798518908549592193866317693642531738651787310583199038821642501471845527875226506356753326271642274864330150882212650867935316383891993408597352209552259458608563834010263443023327759769251894920413078293710774762684489081202767771659576410001575653190858384767576328129419770511777653222598892388227731288622698364328146970567237512937706620880452405432645037310280601624663515079683886960523363202288603045780718822341005995494159022492429189761368794465148027160864230344846674170765561007918141465045233125103751873314018736945538553315925302648260428992832259030469861855258621777612547900103025498437026378629043335976942900839487028876880318538209333531865610368539311031851979150346249526498324198232519251430763530288166239116086786804938584978489115677285954222305518704442061340082543947160045989035571344761039089826797467747963880004517148795644118548384425914486458541631372485890676747218765886745854077659607113894310494329581832709281625902813651005080337577246262970859621352799734387950696450438357136471129349890838186571648942070065549070241379707998938347896364373241825981931587899106149657442368460164133773444929197416736292210631858419506446398889315031157163452703555469685168468919291048782278965141587165585852255836463308466047956338535345359047950089296832729079609534882096877611322686128440483770742556815530305286706607068402092413142727638475454378585008673916258048453858302188402583873745068454612600151684983149895235200522540842295816027436154847057893666785130776655094475212737861599791288169713883808417598056991153454882984654306696447483360225427956916672986836192534356113871225468344873487368577075253497106434080838670986990454434361430103261905154234676323480506500153801962086982363233308482769288795572780685030649020830988702290168322959105514025699780362400942808924047922762643693389745544671229818780696635962263927000804089360305376079759280018367141388478658991130272374329193068070389094376916171511399100017654301566910132765630987229873916561376088091962537791776835094590832677941908720963824742427129929348537796428073966453211862374795842492441635597014451400217260029414879198541021946247962389249905479162152310679009524767749176839377758414723885257591662240286726634754491874861870633406058028311526684070537954245010025708492214495975620073385491222725892492327454440464858758328135215057448026263230630723525247495248183925870579278420201067527697558564808678933270847696348378544465639631225337086789574458218869290850298388761529930357489844789882076418430805659149373614319504965503746997216778923296610223172872622347434832350187611459114278067904643909534728045514118142711037294234109327872922651386883154907671250358298270598278198869403378094498227863335082490452037952042069323105943876987500012231918665202902356351261085549913107421030515004677167924725452138559585812553964564221464236244811129488667502112119588011869689135783668185798111029202198616917949387718379461399425113405356006566263430626639668431623570647923543618477920083326882403950445975796309874359635117011653863940907872040432053912633958459613200794943355656178888830447122388129047018907127103128169255910997891029615433653885566062781939494336685498560607244269082118994191694401031304515559350727373356593822807479576125673726437771562061701755150273133345060514822612381257229176649487007025520099099287950472050553099805288442211877659075413302631755595910523266585108454855905793576082168443512070368245972208165103193798347319718959707761804922583680886562463483527175226751753006623066853261910333578599822664109632179281300112960262378532766866185858931996570326327774175457094023046544229784758275236906961715117851374213068042942371287718470413362919362946830332654123295118135016039438754126802521905289007769288290047335381615096625429279425161797319368568568966044502824627500500505241051492613587009600550389158288398703038920585722039395899490664138078316036460581354566952772673839076321763246806927878440053188920330434432232307811690351157586479746645943947701945735972083777503801394045622286165331069725057987127764389280123618028110984221125828338890424907519493629434189144344788326306839523503799541116873073617453657946648869897229685880674634408822990006273517773618410919914941388182550643100722428944933579452132892699397140601619469316151039688462882580625361286289466546452778666241660638355340252387395685479926934315483263006667474637387537117256390033851936025286354551764728257796051755255745538110597154772737875169346384891563707659093515719556575876471459541848158793554353438341547883500808156894604574717003778391161444467419653098850543171544652617551393286303573813767856532179502736334684769843973160833137400157743060529919948961989744930273512158440700651746220291203581340427336942999780226345416568850924567529059664248110629230602678620673895989657901895506379783132009158720214598732213355744735259679487734117729286373349368937389437561006566036545365685431253733726504803420598181438490147901356490381410015849573963585543813798121257239756177860788579188153272919785422621441209966300237469994252044236435004238197413798856973875511146422978457994916813591087162159453662572774509423951528704458564525628790259327675315557981291641683098873655664472239024697416260171579774891934985847608221134898465826486368203315116262414083619364443487579194136878979066923388848773898415428726954805865855802902327171246506201252395108459751378017474571683174208450512236166477742448980735059453967216459436976610787461981237687426626488030520986697735488628627833222794465467571848082004622059589934103330207122230945224230656073395592166333899599874398410449617256745086957587659955937031642735122232567529803417946285118820533656507124464493835585013144229192019663571398845486401672256469287893237374447253734586319560799109068668342312077875930147663547008511183508118665799380772967718260451922196787582046644833550129681341081062029550512005743199518881766261548000103966749547717071695403174353524954408212594807581398375779587131838588981276865429373197297449532400280120011641441034819343986245459191958874564595450237855460638651235815273691461048099444250699327895134486718687048752099002854771834135157417702342266981403350883339701235087048114949372146951173674533721503780600103659905932175482732724042954148080030660818683004399374020560246761681300346401094254576160622535915140758343361786714905045384859023704426743363257139466136166884425485750050620141904165488880631226628832591241700576326994032364407351698354622620217092454255285775015514412089076508385484904601172337694591171621639030121258128547017954359884507146680056243470906594094170075515495827893287877586156627803139177994801403231927246038574868947051092701835077298671739645831047488911795025100456378511439453159348336540564181313120678397690380731224871822572735302070545586595928079081735588583998313032164089310245278773291865681112178262104757257792118252775372355890549223327440296731896813979195516894926806703147396476870324605239588060228158873814896912303380678429649344970407884683049504563695268860859933532788875314725741959998855193095305657850352089749245923761658917045090224386421837757693557189147380741809108821258004204647401671366103976458559043277006214016418023048975701390544865317806557854569080709731352842840103133714793756106738811449399448039858098791785143177690538211686799286905537172653592277923080649959658542735791087224649990781317826751443557431393358616070787348834510209013106256445961137046065660831183165527215336697497963308638213657645763969533994340496613148615060326383255565274567320785713676886463594088794552396707417832238613859571223505817547082787921845905895935754033787006180558316540288213413432965949059290180745724909373240909496996508324306949560839049772518399738750267375702878595312155242532496751975370839463267248822278865222270541376058926525626582810846239527948061211136318820817157745432494823953055255945754323384784847268551652645597687059483971265047781771840021969455516192393885107601780317476130350182249954928854293511938862102418771822793982625609907401808009891622021914341851146804730438206410044198864541859748994582252236100543368372643642484932801791038265921824580975569617159814333957478926592352859617543862628612179158667632327964629554364375411748666333924211507997733001819455358524870224064433773585581514281474347663450513238665207025155016112036580154126530686049986706224066541425139867746081947841763286361958265127819204877718689249738727319104997750376014715454303694479098828984648605497491778172061140672614732066626683343515019718263955396967350043539317509962960071373892675743347765506904478225780217799859209535848432945152592361090666782990283121823844504104529283490514246717807997261537746332821642722218460655844178953732430003681590360354669859152594338512864624931525636016240343010892588827341509389988334322835507513892055559276532319386558377491137169267885792922156331348903214674399489715322810258623425114006883294376038755323788441182598569923385956637777015810855523748599707120021712674391490388445858031435339526931100362361398109461176506030881770605132674647050533447952059174788130471834398724851135546828401347467467074099539564082634958087474696899779390421273468027272453516134281894395451224685532281326001827696188090925524553428137166797976486933895511086983189481937677449882420034142285421145301337984560623861377025661025258814546763301051810521309578745108276113720769842457815883107495317301457508488359537428650506262799820541695893098326991918233887739195283231744229534901309453973657243686047565193896511565026279320620084354157116868982685318179651372151229088052834949609125891889114903875170421646688146138440947047988951902907186218839400766989968520790744105745846031435718115583572831566798074665093003274886438249405746020828353802150694725288152289193289047421492506330613277672117064164537212256328099648259258196948124779915398107685534470239664530905867922587717190264979093276169679087567484081537464174344483569195266497723802309970669680725739789614044496737896708883247463072690664471902906772618223240187310377679003436040014809507255977638707599311441393407427667031878178147553200922586108317679881147723101075085126723571331177612566596860850821058462801214949816192522561439596045807436497851030913429634614603493924613434542491259268978727072871483229100365401376507923360707481478983554132102456645813335301826584390046829424994905232301863099168003334476450556672285608046560044553301767523453281995463410207487464558125158637005094798096762476861401411519069467889326562444702765589143993103794353954236916673365369276903678854912092229491738899951927300565059487960857182110762474131705061856389754554147544024777030597710930315185774016922053109959693289387129853294099515726462488920421061862246324660605559001448075595537222932941842771663377062518419518127117024128417252680455673890448537311390921991092535881757487158792013349782632747200503626102312510747866113243540900439513417770985305602427523911524140642989219432929388545318340282989005857082165754367874320544966666189668547057526398859242498342213793739502504326623507024206823603673672878248355933034749421536536201898976317572911204525357985419253502843623675775402038737199935331069471674376941251476021252268744778901223779345622250992982467988302885893911383765572076415806425371386551584557349152936436971125616012737903032597627629708632157414000089308465221886588640603817685267303190795907439243228119614048583310515878533029087720828661932576920497680177129902073447218017819277405449473371544766657777777468840094798273446355510882368779908827713436882384736959147577318749320656373075542299836376599324725162974972946911226613792303151254181515257436782736510833187904303474550753551789418352303300458785792277084829843697713195257558060415263371852193919875291139162972123587884781677992014276187362239867500338115263061478262304621646211658977026309834255013475571430979129009421337658546501729366942477936887991630889911508596918009632553028634871915905027755441364512071288615745429765593679945036114006277900852585270855991327418859325250479751858441414285262014108877022693178315270860083368620931880322809227167841307209143373528191805007132360721233946449667666851491687443942222149800663191156569273438384935074709866158721338835513500157443677241591477442023153759877456879013515879897304113607431502125708386497971165005035768839096720329166698672643497674183550593637692918394509863449913614085911530595540551806614914077961368770592151315560599056634091823216764895908491175304485881187653698412923700190417482954538086322515732687348185771802773086793979077948653733789782109757295623389630837852634692285093090166949399787810071431296783012332535618767125120323068833178239157958936902179793182562239707131258485506499065849872923935531078512381517145518522779143366945829174935439741663921549177320382933769088117438191893253992672227322360824113072585020651444085061874931130316511783953489489445783980383351765743571500806442798327807912294466108590050113504218897728682747770378714464325749185917960572324446442127417523276152751655486537371981928356508251493689640293160106759735948403089202436093769065621105311770085552509532167103759424182261562446461404108006960199392183978171650323157202425301395175666498210678807515889218302698744710457152191287944142200294878221721835966196570463449922430052932948016693437701138147966024263691956830034733200481074304125249787021340853039197585539068339490645257703421963963204102751754290769996264488867533108805326603864525832960301893239123821729106907194305541223581322018775119657643851679189239832187162092723623183312639594772513045899155352729617915905040502824400163872002667126019427658025836514456965942024783624975411244896659145418495933854848538506229426104866109929682731486633015809121365340863972680486697092300912996761348652073139881676529165870940478829004170015645083250341453097231518169705943467003031138484489512670110162529854980622618442363379358498157637730935245740732946932956569654070295786766207295445934197051840986659614138206465929672702212831182273300471475554372591107195259101304644414194097356198314243533190481958528220695407191512629818932508739980413824381950142417505702608174091229015837363782139012684619641075582610819181329928433315143445446380858451046870801499962634897445927628267962252902223519066591958326484067986613611927751347398118149473192650767419522998576586247123644754962721362915971287456362427733222621153577770310262854878151280862872842328967036736627807795940576226567832121010008380598972125714308989250002402854331713135425412577962650462997855086083083919655667661920534497326312029254550342215504789641912669995595908113902616346319692025854720438894589759176486119422181755197545605562225884998857164540631314868868403331034903463821207673606752095318979649813525448817452500790656981832500090201099464051444871050030360949206990139048208338717399276433786321406623692459931939216980304444730130807551474363122329395213260385740374193483547528113056960671115953833002606145243731058926663692234768687182792476162066452430975225567375365872511233314296970859132184564403771088495876647115492912274241059001294125948451412767646654126087105837486638096034298648298051000270263589251101054114110083244692853065517635225524131529088876150221341169074766259488684080558554761928580421889477555436648892309453592979752948549070429504115111197937283599131290151338863959667865127226824137385595198500715466985862083880408566328972892287120616624412212851207402865447758092144893709034875652322851755261766635691949737316741220515271092222998026489353395576420535060589954331269217910148045067499011880788568466108772611909902597024445968356120915833246689528268708347984719750450694882285758838315651916425008218399676303964232932865289734728959308796847575619026336123473839626303318752023036820324326642790747184700615497039230904291862813077256444928278091134809807181282496113223157148880949986796566143281938979005982200137800512290474883880899052544024424643713371880302798949834276176323621300150326924689511323047386218133729668479853465002269450623060969331777425331975420296879926182150574437910011404083900648324253043887743325637905963327207716648888745250830023723727695273384721800072970204538779431500574850180389036838288859885003484538386635994988224367787466557337885165288142613162409162412158703429419674477448747726755129225195077622327199254298664741318947553930910884575033084677396404462463636201835301556758226518800255912846401487327199454047875024017874767400524961605292607010344157254180144363050988526790511317626154448827464019628290381796791153791812136425444634920865503525095019546946787020712763970552845332888760321275919281312795193153296728789126982013047281438610191567570571647640541729832805190306535897915552086527000088919917277582398343259191591512422092744955955763453570741634555417659457132314143397592234793149154671139881259326214838123359122033109771848258323757803353534745979518713959767148545910343928053447622298922580668270729538114553406987563551900015786983198574564194768725000179832391150697705403588575134089161040307638751494499445312719354031188582609055310878004797597756660821754369780722302701440877012190311772044058108019089146581362209987790470557019706033949807307282016200685234929714422447208266552757368679623509935086541320100662279807820577825443430133829779374495373300213180464616771023384844632150059152952827523583832020377230381540029250523539462359181848025652117224779024565376857891942428115375470484419970905659408320900184684959426347941375734713619185793775464033206070195404218119432711256241090168019584761311596964690029078656756002516601972499536144005726038143564683694505836101969928045809503384409685156063434683183712250361674254308007082855791262571094689935326452629807122545796482664043914780001274166284263409504253767795005704516890658005723935809094537514375714198658399074231429775021012294009357406132517335255795970509317709927909320667282586872054405694446099423527357367067101708115007305075874156829144370184637693194642015945429209518465080062662106828737317605475150867572697892371786762221984862239225797977569032204267417143977243227509157340060519088944756067913607765288061379224678372396568947651442245741468669448932644487292219615262456112617745342404163135064696515156194631505987838108043416128075481435352686445974780923883719413455676785022973212658153301842828300070719413559093942417056067671386686996280951377312746423823662249470232580183526430581014459795706417458274241080110593935494098442441584230760344065434551781308919762796274951348335021937030546883238282247153295101557399995361096070212821760975366248041048580962917167053629966729791062760945333196755680005894950570616595048601513877256191220729756271210131762803618980929640043657873650475012261366001570755568810781464840468548833725305306215943314973146557700801638943409579940729431972567675017921369706809677350778964523843979088483909124931573424568565601239516412022126290995839747696639732674432771797496835377248913553946070823326843106547961284727501848839521934992070156344312403122757136238749874807745548905472998172257895108615700833632833127209559788676586230903064599874521164370681790254519634607191851073660173472170056588573816711352835001606694758065845634538459179311024233165953501864723193483484341877624005822917526508188511029502085257073502356070224618675714000608317956205261746109537807516770000329612157369735980345386755217536706433665007133634866678069666574320827524898996140674864445324276609252938657587399078264076479003090486368255755055031572329703444184607843496636108177651948244218684045501244530970409765238734919794696991170599835410414744889626501397159239578656348987645521453011855415207034813623819766012895147706864942964677932137917509601167767006318622023854704482161940534080339752771878914968535101974893094106042837525640143837115806224000561391708782140440412706200508304866236625832305569116087487298093304741477393977291834156362518225318225606496276883785851746471715154772332412860642854260299916458623313695671941836225145981975526405691792377958791701568092040524214795718130761580650526338099671474840833660444584002903269769220736492992207769518035101205479310525418671248124150108648594751390169090131027778316081168277422785271601253486654222828582927831091853849425493752589077210421852233896672140705891169733047835420790672010883536337579778886106099526585298232304743800036247675908541174700344557259092000767191544823980454782781131742264366867127017150790312158700356101805432276446302173187726143934096827730119130642165237395768268915320119326768593514615547686036804831672807837950501061022341982455464197584199480870891470835786915524722972224549269300033038792224481383507782244858476337921835201309218836379657106811993693176682432307996408639349072225641475248845154104230181889099781656586569908794904756486345923921889552324451908088300367283232406151003391214638514505449839949884047014205054328839685824943334375849005080835654849595121248422940582793274563912815157101925097815014909803347698969843050704508579399178363623413198205348274014065795719580146149651232096804418694461865481559366442181987909698618944505328971882957274101462971878844315612415996205194201542276224532411601117842551790499232584746979172735141230404817868659314804875401120855232981147539335788657648823995326110060072728857554529550068119058374243827780010317061123442894994567449520078284989271161772653271305005655500747155324738277435542606926065676490842065198990989424990091993915558051819497364550305359446004545973439153972972896229961737746948833377402292633256735947834060373577278314989581204891440254360201718437664360972022207900613970164259661621566979722831150573473824679739602108252000882761956235622239383105225185022470371204770032719307409320399849859081706930162869266190023466925418558544636815321067763156255585462448968536345882066930883628792963464604143697202916233289267797323860509821470656843084826295737678951573933219308437609850133799704357061989587736683657886068058639070109815192445276927900855622320194189493463983922824599218872423047408263463268362986374356941591766160536274898373241433113079218691733739839728265344146944449473830281693772456009264830959177407145041578958684994125011650539406779752940335818790112531716050131083688294408185657655546448171839245383001275333685048958823058648074299579399646912430752067090555492874921907959260430267701972154650160014054785194914505276044439700874147107195421658647964636626703811922792788452239779966863415362473293380100135780292059690152800279730035451544204787427032697600496285330250856940614518423499494759573589466997901354231366079750292225808753466001595021105152607135026878652999027454362018993727391424588483520355128217204503076590639096315310370043279666514783032404418853612806502067694198698206790402262411706797173462920494647054419098303786895550311066233765070832769094245868931376028040163853738241829205520147292090323460814033764276929044169525352882219984938090375953700533843472004420542704085479707743374605770928715026068182328389060510530421284252376817201547344641339463187652210329528459009075111316591666290489761087757060336409651240389618993449933694955171459833218547108783536757024199433819883426615005076645783583438467151548299575073710014833591619207844504878342300265569801611098337774211239129656345701838290950315107723111874977362685185544597016888809393593325843810553588543994119040656014196043700109037902494911111171440983105815683706394850114084522071806798117232199333605022595216123672755411525157696433043749214906550968762599449471139481235035987759313220808126643116775192330251329257120885184819303538932410363787689455677193517860456265859837382414729334352825257894114053406120005449496074203471285787474017490603603395449503163757761299419674015759674626156707383465321134245886713098966058816379485614962617791765348946143669964549939759478322107206769796978278084549237616484152791849790032226841291204099051684029549092519815888443004680995101575703219003696378638583461504405161066237746676718915852809867188146123609152074993943392942426845102897458860713167632625686930595704469626666424741350892341742381136259841171258830295844067947074136615620253406885484954459374123191694435369610837598319145235334151602033502689382923603823543933861770320377359081510483120470380551571725985427407260886073291328724983733357434173134632737290166752974148556605203546331716097493190908332062174455900234741686373308368477486393749800647966502439341425751627950210818743565923127455854166752833432963953876504279140190312593874409560992858247886853570398065613325592190889434498574258989559964106403865478285267396120542965030573422336896221367486993035521899306540876286467564868696131346686814317179593731120343473947706104051900941168934604602424912055434590386575409679594157880565208621860628499873801713328303815284019814342692018729090265016220793670827308501041606713287118641130597276185513258153837239389890845787504976327771059964157186913388274812694059169969903060036656831171244584251240903879648666757320395621557682240645477063751447510189633949496542323167129998755309058160853316100618994481967269065046046780445827777330466413015790097205107623907007470135160633284993587484702396188719549163689804919478116395749779843986392078136592333326061246297961016400386308266079032207354894166879385194880372159404567059686704798365529020404259586221235366794485062049509527978372844864226082241563490741120152847152541427804088148436124497069006097405976018972044975031777150036490526184155422655485193502702100753694443653867675697443326425556896107167558536100380049457075698268342358363576445102019725576760214939603870028708251186174000974835453233310453422618522163584261152200228284859937348849951404693997620058054670302091105328831494006033809271275663091165255501503271310379255117714562693849687878909767526671551526768443334991067681837543661114138770551677967796050830479530610348902530607009536207264393886760718379603975313966209640756076166804832671780699117265858229807082175861413379563126833106175418973534946385248624169089227807591461730961145656479749490823805655248235370430787838958939477790597424986073453966310220927384889319579281463108433498219888748539239137460568144574335171100831720388844170016067837328794229344368136489097672669000781163735875456069960110639563199186445954765427589732929116798867348645994687572863734771116151303015058891385668733085061485997160845462195062672168766261462430791816529258165532763121601843162150885460735855169130405704705765825210493367116230237572940916973854885888054919034796739667169963544788565556434239783616900638138800678932761587758589114113491939137652352660527715212138576704193987605692820439346941654319896386112158596512167276253717018532941831699028077691451700296972570405128650602378036044146460355357628426109186931749617996592660228915813033711131705453036454680425007270321021450169430192290145068069996319427371874588204428917825358140039993691607033229681887161590702088339536944795791442619678266887283500582566260388870634347590365330246338881967478937962352840612363116663911894068393869983710831378984894212653995657493205054598012561229391493455595728144582227128024850545768656800122256903934685584995292115092984206108849672380627888456407006242177809824698988641001002566257138367566636953624385472729107519629860533410103298327787010330574294885780109631923341848018506339550897694468659638094252711902559819519224832047258811976961034616738025853150085395211428077316243535001118962678063851444779285723324813362319085539218069950869544091651056359266699981721974217190050977321263063693607413234338049783855534360656876245679171231502800991153183923435886773375617752063860504913782729900696700634452860210586486255194322259833181570576640817284619989672251158099703494156740145784515165827625791540655485190100654265366980441522345616749747277656261711097457400105600378563756693040057351667899026123504631134007845897833536467411914384947477478826811446360391294115325012078874658679155626301892753322498545453716031192644390476779205880436770960567991959483898575535628502468453253416838976616876144522829225816062233615533795991288215528643851613519283004914989332490777223989093831646229795637217065800558714327315364218726816369396692247035829015606466823981788961492117189974601234800773706260986197957074261592009698593075759063746653906971387595258052784270575941000393721330689142035444923487446922710753762093822096397632551604613950390737414993386917175099612856629936208619945548250817554345259686179960012211586183032839362316933393442587171132787514952347004147866704201038229557149468580534111388074506093877975155759807607882864008252802552426844868218997936309547495458779412090144482127620408932759060818104154861878655989325254337351561999134806795320681270423089219608191749769920783550254348622073751452329083476259538654526130169403784429565702797709303634528210956785135364391334989420068369435104143414236637309083491243320014922624479752327962001379465752506391559349083265654165318320537463894763161724178051174914240405529668180590829272454261275958057632274201046509956055730710872952042902932655884831002536929025769042126369115487780677165320474471166076997543498869340481776654328087948828538464771803107026904180973662850198019153552350120689209512472830653068852147424965229689717066727250484642012936339647008083279333288335130512836131605840548571441454709416572623236107606886025390591506398174238975993969050311750941798983006819847603297624596191110966818326944257199928479445982469366099619497285893860570147572888339977640163136562901129007800359126772250654625487385984622001299318608300391346784895891078891661795845206478758731481936714710886768170551265864916059682876117894320260767248713480252509516658518407654874627204518820372346677307548923291269279513264876627306668269968883885132892672484880957881475566822692611816705249926321992428013034711608981497391439203452912375700074628151393486594800350932403419950847362120265510440240282894085999180566573359838293758832989826745006354602273571557712701737642806277739842642593817734470437974063108279737923538445696969045518779255734637157043782845399064837661974870804867834832604441880807429270267928738330774189411788380114828933004009353898145369063218905294302718934938323983675177911066683225858771216367052634473282927685346617057408677746567119026010584623702094925480391714128983276594420848485056658544955459558394761548979911746975201992722795298055073641085946462439266368095853705435139465773399368408396609213244844655941388608000006231834525786058751151814994126377678279704020833325034114398612926658696019799611534146626130039734171930834214314429130906867382526489126350351585098337441474530981609950370210683002483801866388221754919781833720348861483256806637451380992411742245660290451981366238291084783842967226694944528545261017604709343500024024266828003410756141788365155144142352679893881504336578264689364622609084105821708414743301407698163618830812813539278684029516682344377298439198711240290150449047171379809163205336619889099204290897420858662067350214161930054472792923060451589312138680834456485876910934428048184606797053412824355699852920220879500620535022951730471551495046138441029586348090291449617526014345055819746317795827179041125816761460660011089995451571875046312122571684143329629984729812929166478909114444406882267543848077626614253082927436406856102376654763619421395736658546028405955993073455860852228411422514505669477508782565255904988226545432933182296536716587568856651979258960514784224269808930899966220959986742584847363294582927900414139770430673088585676542277572550178637435651004861626339151918582082711536776114118492638597749901178738945450252303388267638642864683133323424421448717922034779151515076206749356033606941625933055062775566958422704947340508158759279716965271633992327667433151664278940998236296642677460285483502786725661842830419092326537816245807266993033815346489805192250392385462959259635967992682234134453430798147819803516697272220701728722624739621697057294380027747000377855576746237094619524776160840590192458240461601859974209566638612608860214173018898931964864473333688087131997114229539768940329877512852856269656109317372807937754476879610720751497401957693298816949398349195216752149962183410148786655740362222758481033206273613047762483188645937916090616058150375907263416867771609051797622095873647944087154219601308897876059150810470871576004360029093666000271709588151012651685636722768950303510835085240635537362580109484256838646310952823943432057245785715870419979569688550328986355722595092924815565814975810625166529339763225151298103104637065849219267080423608291312113555143239413138244387132319119071718009127844375452203900415165153308700289361285871030223373430614595405930014586132607780891447999082330746218937737180867625619923977164218166072897140526409286096157792590965360459059008689204014947550109605168396986364660181457318103846273540543317872428517050601730310776771749057611484405206921631130790040408640989639202765973469877797562246451345564842496480307500913897730704124237723842633687777521763047660004391696732263204505317034972279653926134232696841985734566641277256976254679008089818596636458087563879457105424262477202664256000614271004807427966545156173448092676395785248181857849017988646083028849027202800091790174759171554846503539268524894730806832994243076963062252075446577449364765874020543081373357518764913949082625899616355068650192037145442898005213975522615492126299293086849499893832261361644459796504916717196935416221477172241672517950924955197595442792503628417477154105900956388515899132010929276081375258076531709002296188451878284636784994696560597189365192545422902592905513758032631877964257458962107637698716131902545027575727428590931074936854200214880190700164949236028431726582428868574182837330086181331796654515867594903396603978719957176788879852073360255287049817873001735114219970966702264977091616598508453080219054324693034341176499720982529784146597904285694110000270028804992559941125186803738753070655666825644210351297109136272014639002178818751904575128362284921187946581535090110722026429568029452772709938483088138277359792450717927083591139559189532447008254940230045665992761676589437568287784747157526413418939891585111677379573444913127698888306916066966312956137995025806247653075934084161253651261649810896850359959268357277434102519800134451823557938779715089373316141100122171165693473740744292088151875954453686789206939810597934640792249460177478702525477094598736596762268826198463235072990957197691359652701210721931348736972655274175536580485728428436764481533549944876098216564518320146792616283992447687532893676799773222081595621452900063729899405459642015990295677811596192053371615122133991918976129527715687260287709058169456021874396218929646409059561969327263774194449913398370948540752610854065732747420825232645480425415547406997062374653734487862452990834286271848312196827982309583687719443789538372325034681348448637238944353781263202248714154825879408719852092068232813736140665488767870591805321122612250174670581315919154786093344865593276701564915982233626268337457195298148955707658343713972578502530275440345860129662707642923463894796879150435404292917816998512276763118913181754178387567557817292401842836911710960371512327032838984822629683512741388626458563691057270464777512298818130641237234573730408641414590659658119824756661786261975288944665679963351988559745420553322093275389343230709140168483013062759953785334051440975162993967774756407624255990226645560715891114401113165221065505860426546421725351307479706876373846432675889524273985147379337077450667918005587372254535900545628496723888246786597866761259228618805817947080092462729731089347554032340525568130321659416686148753116221810254552928832720200236079702430323880508084843750588118549172128810333637065558406245242590845961224175775588153475536590508767003977420389375262738325418907163898202600285112546939467279187010676905942750055642404949099948857068502090860233874995878449998654345814658576505338983889907572663535897068034620273888259172898002275893224957797752452179126810804337682960173805904883476992028187440526038624637824465807154180806406489899522121802244422371110446677445903251201819934232871649714601014050858181257603412292524974335054891057552924570038437025207280530103468512689013932321038899954878369152552489475013019210111745231444412563964449631815527054314050953089057115539989801230235164938966602023899891815021780696651901916998530793638587874997625264182964011560365706362687979335273998724996994395860734558483168700663790317737343231052502497916709963029713789002083289308136841128595749112637065689025998336669457297363568757183778315679778927913892769133219896495922231060989280037223606736538261983005593531973437428934958708134862606912365800379423122428560115793765701791550439108379610322330619268873734218675000873652835383527783079421867695275711065044461874289408360098067931566174376702689531838551961810163932372275338702833959407115303562461626955513035650230790928981192101147251375349803547771460608907955433960415982559399113706134641084517981125667007094234854566567752771697994002726224696961155780230670475083228464835491438504915953283129126691047083029350105933878028638818774157880666444819252492986459047252036224132968614387704265140783302827418494201518088412135821038828504785305589905507033270147820025553960030194526508728566118740896386954521256404095579141074828328906101696630775116962391466114512990301024276439816949454076635165284751392475438150273527899488031338721141468970964722326304589823596738759427567188635127132454740228178062724800654350483809680340703204213721754083103595758999334580685036997385742470558675771243717930385231151442866838614597822477129304691822220557265251432488728130148280492580466832664477226425973326243436354921488523500520099422044633919756853771126419271771859203511841631368400042250394861839310718898089780176607351455396387275670039887902440316830037848455836678504726330446860690893418047964032822609919207871472938857674790224828764431198775578789005350320087463709683268695966389143580788221843575413137480255613303589680662982211913228842980569757243487428548823290512887764834301865507316495644843812528584508403569528037608624611038163206234861741502870294404382574140450826152641024124180295301542181032864237990179603467863194004131675377019841197120385961908990354878390349626545917488813639493243303327102033724052808506685379426210009164658871480067865084583105229429592918157425306611861977837406974342299075197584607154298582460900353623651808200931497692601675805288206162496072672706720249016779276048156801437145902920592230130872141047999364076608920316842451968776843393677599209854179189883713249750134753621682080989639572507053822798765238538139870614564923801565464081189331411004186241819407868177929322884587179117375741705459918014573126959903782579402853491619052423641354050839307337437925393775467796052697261109207705122147547250828526801254934065240770173391334986604459141828577729819209187216030729874292188645716223307980862437683048504828432860159886839055982447908563525913834064510109031495339407366132788966070192931414509469780999630533607476314652853399997129615484201066185305058358722876989062700637908704702070410820331119094287540466800362183652444885333264562202044724660186478176570109597025876933614463018301380796688794831272750203573563714117201588512098218375589855139617071161911692002515460589722141608133808273872608744425250103901647388484885541909516199297967636957411326034358612335604236914706195270654137699035180342453243930550316346160902202250819671488902413048690370784820005847126681501314805675521297204520241826259935061163195906859939172261322449761184771141333144261423960242182418140197804647749388276229571530348719074733411316776137596264241287765977679451030659309333297711729223205329752178926941190856679066460134167314066066710086351049742307092352517347719780424539542247315769648197732683207186926016500353067946686172564712759369012985155922216699092005579416529488891947078609174905949196943795879553183217357579036621309294536265205307860129516964512027967693014883631444924660646339327559437496845507035705193979712376753764925250057008327519755596548842001503215454414849189130396789628767302365416776139266040907073143108912957656722298107896302044489217811056900510312024653255511342623158803384275979158593437144899227802025742727395971361704434088076493701950345515052331163150168869356329882402486532292298425369926962686555496277391769155285835150798288606105602853341285111453055119398013061072478478034987079256973715336057403284497472259623857532181163595838458910540407822106070547505807103583203379132899525398195508867188591295878888110311323541995716053050022184801160728075647114377259099792523103127747290896227604864122060948728216054791584026240839888834205723023265445582832494995624977843079915625112187712163818449937991525078187283289110363318582746942958782803722594588637852066853997105564026517600722599477308211745194510707123989182181176079025027275142348897427112278319181600566634519468839373428501872794095836981140446971162750573770698595367300187608527994427028736045063257964181873771204716319156362807238197978415535241930667557919762965406480634808688276499841787503995513898297444164101458478550441348451075307349651809787921630087467308877338809857023275714517170701138241964212826882386888961989276081560698957380317044323216975209090435440983802022308340877445049846360815014576726420125833298670775845729935609779397345502176170491857732424769493989188630039634039752764315789172665086287804155853220255857158321989709873044828804817689040247811199452439220354812105350650530395138234118680522243295638243315831104865033746530750875521078388828015801990221102596955945724718533824750877939454681198439574381472141096832820175454933115339304087964981561273278260047159287873784627668996745987189011365703039731551873387375311391690974235781498291594983999668347717256116053114283375633813765489508318318886272288312536598463976522668751562348847388666651264863707051336513036530463485844976877663120862442387504678960669942774114309557244297891688174239817862734357157415201630654435289819252954322280318658610371614549088734696874347840625299510726847912861316375704947609092735541527341723639262219314749837412547819977782424521015712366754299403713645180193397364172977897297555158956401418587153543124494121623631034155449292008760479552694991195883885044822976772832656162112700907075190988708480328789664714654815610544967070080404529308132350381808907583765656911489499336825099216643944076357020514563832390864388945948796173106975381822812737840369595712993823567588751284005477414046530635072545714139758753125335766140906012655509501675210385730087688855346325468628121853396822984810531522487311799425126940732593000679079122329094554596163129484555427546377239426478419890758092239769617173749419047264950455104427357748851089125943524482824125228773303292228047269216858596723257542746356696841735327637810763103729255537760185623618250342846747712459687527648528348546363075627486442233019543357645558724698181839402291952199827961220085915591019643111392525796253060075606970683334149913596736952020808714090508191395456472572496855753536939629245348165387281476400996182584607196945698068863956506543723220375892137907257669848991519874126653476609894854472849128304346510854342739427633898417642929934596393234067183081732347328761465034506670295030605112393484157721037356648511555003504189076901313386717170558093302873872121821106362325982803502558541043796168839525794754637180128225210510784745244656621275932116874759445065172602656063247963066243017185976940762052417680985012598003326983453503809058828746555622820910333815558174392117495468450312256710285219024060441728639319266903070200612977564076088389864332469161331085014286878543576228090646971721707550152639440888210326598220296217690644924558684010998563931547347671177398229179991452457156318117796742343046808094426514224593625778458869823808849743177874259692487972652775056398756104015238753261576501659788204533200557313061503950042276827443891775268074516777111084808278694531488275307101365075054203486487401933990500819506545711405461631844062086674163543514181293674239670069781906464312502198939342477829471650696472645024900947490243338154933916454997896704302265836658939153150431670416549015243988519326757543455259746807169279640396369716201047583396454740316060071479218709642157899213314488058773882119695997649559029891552382650045217444567208877428549302666702349278354453679863050272610689567828957995631891380932923063701215631473859305139650787843338400721170398095946714582328742818222022499513812602941053861492489013143876004075909980501842626415267768479950763490194939839614725138543218047400306427770120942911567626766772166804691702242154085930104500392060494718582958853108018273742481923761942870564259466143554097654179196309038644726023879691584540258431822444047031258206006787027900571065483780776690775406261910598330514342439895148142249514157968284407067653574226635841728844821946139797593060796390646947017115017021854327773827514306056426772049641449886857429037293097761089228763539429749143085926146361816121134841164425925407076662270676847150350825468419328765173381896501147497151671013731696507839724149392137458411323912262509298143421754751548106555338231641624656960456089354632715923154039274499051350853247791032866238750389479175769754389783347018636030907225211829294814649140305323387462131402970843707266856933997570832682024832136563373214741774017611064171756800309101470372015828871947602048719671115394256736213096919056318294530428703523222656452857750452325062625320254977490610962805290609945803096206171436037816391950825744710725340490981775951853176311411740735739675265787911269123149803416579568482902458576851001621720449133900372429749905815512730493288530843121116859748428037021874499208506077862955735072738006070184553839845877607197775984952926162964421304414443453067370006948365256944699614247166046349531200392993504812675290303006954760154945674291109655511706638057125274030862456413376379369723550105979173118725394470256109357705336391536714651160741825272135867669624593274070130674231421220969474080187180701080850181647225667748790355937618743717379767332585131273804347878340008483434558843435404027283362586070375260059946075549227033703190405338343491382951780874864368589139140308597865570763718513559789175796828647273952734997224796495974236726422573649859674132724186346373422383313292161854903456876624579400847133330023113657760566480300633138089402339323802048865898806189379552549730584105040607229719507747586007456471976531252937226412483879452508697639484060042060633202337371502907237465988384884637090000638490710431246539744436316862611820214828472943295552407051467260185263671872987498203819531233455347854478751134460483849958167580719715571836903715274625564727172665780370032963447434755242827115837107378232717125352068200138344180778911686140136851800774591770881992977029021849974075672830640639067126859813936427665694252121971444280458032585138207201698226172461907793876318832743935556184024360376028622510298713472860676811883765202005566357882722486684099810562178668958854499321846592386277172272417455081753809176508176342605437065709732365962045781321456732842161300060801178423910092762631277606060258491817615532057633318560019737354366855425321917778369265198760609598922105438832642321019334427973682913869798005790238678164116116374498441442317867495575479067994096282929128405069797109168518685618223240030990913150692710919327307023575286762956255452217765448467737991228574478886932811965400873512633996061865066428806799370996583325326962769280367139677896084689891315846998796633302329445695400141848554605736689330247619127005715168842089482336094044045992314566020096066410362494176472592158533749693976836244642907895492263304544573701973512825867742646436119992845535993610919469165230066088097663757545797713835942003627701987851852351436783316731496393902316381494240578935247667210926153039262032857195089849103536482355204064523195364849633347459260253288027847466374632190901961439252960874525102013428633366603222505541344730578657614380503527683674519737618994070237616149888916127616813082546369957775768910430963552593997793174710574806921814796766590201491965231377380378588545070225368845896043960928430369194740694198820987314001438064434177217223449268388739091073729590721797694263328196015425778805066473714313724474381591052413870297985184961491612851772356191247320748486084891561389690483337965705457354242345653834495612951525970190935786812439679309683822633325324634535021824563973664201821054013704485301331087617218290227407844674542759097558849021899850195008577856032134124812607921928713047435786875206415862365011293894488013524833367807795369801901720861130269753435294426171759576282523969868872882635173977015409563608680772253035518142377323486477311910153369147793720882787459833989924519626334959383900580278725491881606138835275418934296391614023815063444811148248802869026411009325718957347876037622118734071616045870193374697490989848914806743641232749564690090160814521933638680837253342223596001977691798364278480244361669884000516726294137873642328535106337867580618221072506789754409567894434755958766911826753290980717841321690239593668795022871031772500788298831840330639781456052788660244917643105857651135915202878596403345174835013054488040076336522809896241476571839594779094941173743689915631366490963921224734006481136141342682462227172286123894540572944126536650463851958082861229928232301268743262639884664211451366942457673830755034310847672350353102555987604765796495169027686828920180889174858611675963948363879776113298191478141939616482709008267658930930998625122512927704550555546827009223416676515832320403496586222534439603567227541068713953689716559816239192127175568211562279001808392247054186479940309267285418311392848906219827023491753978132540718779378286667741931609366336239832547146955073166049912529580470141746746209654741296874525754223555826064742260887457166809111933924557601601871846714154271796424213595444244911159783968461975635847680072977767540484023088673432799029935931237058696267852224686721891431840887054206934650398833335650772573399463540369360279403242036410880827057631682691030778510490098615337475201771333872917273472787476305403171187409032874538922566367932734741664349561411532321363702561194875331934576984455615079427299860831075116440325847588005243416960840515447207137098123595371864585052322057787726314701870916043436014136585637450937010596171340800572078148235227679615487196827107967700308582903506046007606701652354054577197542938937345709023394765068835569963071194506190161450436813431519201993947037439380633961115582390863515045017999565711491334700245254358683734884387898327439711718312196283107756007453600398268513312553060229835227926466670262985243240350926277164391916974541789530684274306097287088989698719709713222220805393240099425871681726071122740846094668133423524718507119859607401098141077331356047592634300599737968732600072170412353180826652722905472017580076165839426673902442963599614284380810093585334116256261945573792481165463688893496480014390496825044839447807175670750909103045283107878142237275832415678884549616445542433336916565240777994390059781076665783863410441138845927022934990498590605060872366253996951345781253034338031029305959521875623185062541897718446019762105542803479432711365273499754363516424735436983372909589492271002147901274640064728854127832881735644741088658169048504872216842009570731349447593145269838640404412337249801292358137448666950266712864191328702004903924254346370866607531642194247713615747387918013727284500384516809374506465244101855044214426624585560065472714981812372637841098493618784804222121602760874843759711903816495923752668897537789625762576559729533029179179829382460798341217162769680204923488248583826440868672015374445808194785889391044322964016088338346412639705378311581296487710090582764321306911179358200765987996216849385631769005767196975228311617332488154239517538417314655037532324984215629830125986643063269811595453991186216066886324296008343518790802213201431865825724599304124745499180469897736738841356209261769397685321548006433569534442208091735702762403159683949388286314995027622174253690079742292168257822600449458733479086415173254393610800878155852018839650691364927900797657785538109317515941595381541654577979799951413754524620496803527856994129363411052726997487802348460585572132653401714609339704901220760460955170002133743026495549710276465224613606729904894516035459060577731627316992380398966563202674581140563324691728718874045419279164728050663220307510160639063193404978943283023510773647396903223435246475889787695513513040144304615893562133556550401564636325818479319490963979704398576945376378839077702966834474830271140014421733873178574319180895715833387329006925088042951314576237749432659183007851219037014798936790882938995705063925794446375942028618148823816480389640603139032368200753861331326593485579230550813283026624239991971446629972659942861224547391337084138730519417378336207201398615613901423133024860555535598550810735089462172040170439313366429464217197018713892451254373307554386336957940145744059288611358797829579019794906438606599354893077229443459455822280148554250648047503170039495882133145562549125656832789128479068474421788805069554299061944789587578010740203809701038793237715842364206575841476264877187699492561401266648082163550036218172258122897866012254974274689314283726697734752932234126053349196208928426286299514311100922512346218475616473761797916333021502534650706058513836664733647162489565068343136562207037460334319760353070946104460264535671239177592146391684817609059691884372903037143894433754261566464452823488948514775798056186293757922149581226374099561062013002033964997773118054512777910614047839530913931787410113330238876616702770237187440890225792092499988288998103825141272822883059260355863038080750361502950316276492357209830339496155368078201385269238028568322176606657906598251698747039541984618077375601419056845611883510648478859095048641434721828294496366335935000681558877334708859607860954574058080090743256158298016088700734844305443332340196508652733569026990386098127187182917684989253034130337601752627691707681811180948976612528423574653021172775139592634771649720863590967761042613974150533922301507815917013266863182602607659102775119883573875677844544620175714723914469475849424156793403760847506318405526681968080487944794182985610989893062981182807719043677562785779443474580925378593822972051703132361998026821849242402218107648042845523247266624903276537960700689511830693037582830693581999274635918138841278418371868112951198843962313000905007423568080585300901018549397212860988835318004187044078790137046174863920919195979936481061316880818083396209773430090585417411934133717481068449292142511797943897113993431547368218036242808936736520267115931024958076737644441626471745309112803279064828073941884176473541026405607561291685230862768191578307910610250740583009910908007959212890944359290907418648090985672230613410837931623704377845577171243145017546484411514080266542940007946978764143309980702406816695953456897152361899060248765611993397016900412480025828256760749112987826799611858159688541662960211216439605707185531933890765837711342558297295338738808508368741595068754806668486480085636595244182983515567875282446308591937891735433317922624067021762601234168385223033370433423024065658760213299048433899535229293878431896098397611285449289371437926814865508942136780893908314391720613486017985884124584446053238192533399367488968839168465288099805285335166202381029332890687902296875762244502266773337830800324956194744420690510476231927411622452955987789075927388610936768230884409833873026677982516691392321223607574952448287380615865586481345508540972641686468553448750105399318394504906617526883455719185277031688307025518387763031844643881453525356930226854550907527250467072951164425175432823538971390972809457721910695861414612684924619141241822364460788182604730220514554238540943140848542640079926023530361125904140952670671491007946228212918012823059410366514283478491539926445671343212980611945763870786927932100454966808662198020716008847225631692086332748449234676723323767978335047247766723715391826210580577569674655466103282145990530252120976053165402273181060260147680515260563105373408486741148319461605531402950946991800959576039153496946002802688239343622007313100834200417242121392255706899870142584404990808246218233146146657077110691056551642661965210547297239049296804719488813646562526666054010391301139587543607629146201798621392066487095639065156088647439145597667281237242548252588345474764934966935298537748402720839528708731720423542890077919841511895704530815180675939001404263867760510736445537174168707433046722237166768792697458862714795542307516282889260581635538174835290422899012748426248782158265205133984100899910956110596388075873060445824995544940395143912589795099520272041558006083625661150618817782738549476659595872577569586934914890033566231294720828760310737851161354311145789797070939953681559341323349682296825731953239343384703761435157076988534703121805945844749422582236135962428237523651186444423777462467495599614903859241784274513667608424643626282842502239171105527572972985634887678378098779972086257018776242973910020499199976141212056274632311709228656325123488677433073315444707462804892209815061963869187225266359956524790574953970195271113150090526292585283275640554048876730425986542271473221081740724423092207254539736188264809452838195551116496797571260238846152948957487192923851276610854643395155397783312230238442569929051733260322557103114092685899732023874713590392218903309778033574170095204295822384854482300192374509584284257262381025205381298663958699396061121551266838822257571451295396432687750221457184319468231624467758091779777960924880660930817578065554184401193965691592188137670640145737876015480378067738360553745328547347866432094859132276020668197168111517449462258500167845906295251680587049343927510182390668660545881798186506457035104731390284561759671133332722212580065757948873170973132031000525151096120972115628238725945129697549122637903709272797320878517098888732666817052448293738994194655956043423708582070136162567659043150041450953029092961001008442773338734138370424312988177054607579667757949157755614359614852773391592035995915654882637024957596338415478913129015936334843429717780268684496305956918800476912934428705071820944326747075698683735832412722831121323740898328927286471818259442997488155803124070938805823940664692142397888262138897689889785228228273814992175755272749149842602218871161621353088919660569552804926906183314068104674984694014950071384466894878190803776433920702445077319465175609064634024729880681047937693311741908652260455709591446938585151007730402438235766548890152668528045431773571244126288389699856842846771664008826969082426386178313638633342731648823332794355036370290727778673724227016960180531860391085433033749384493752421831196585156339353113330276353988755630230330417875161490452880848932210070623258888930851104586034973944551384250560240257570297387037251993971415607194350924182616253419834770394079092243541454538751047226393752993197979021500835442114365329922659121889755012711669370716359443948807038849886463041662686612724840193503336415512889017611860752437431897722992037880364465004238583681345040620113510669095542666753049170562675509613883074441364601863945739192585040900390500586750864063766096615858617482306206318309068966135429297036466314908291166191885841000871080034868285993075195467298470887275679232615787892140262316224061729852408633007874702272518504854216570103741581271531453462852743215603548110604436777872707933467047218005337885370494276138963786192762366080862254191762289025213580906927708173843303067449505299267977186323932219952037731237414718670018582743520243717794395595804145184714399597366127426415247133841498950835333348209501726485450153716300118151212370715026265029656522583652073908584729792856332487481768903884062021485612327474858429551977657273875885852095695538348564202416609584309097174284693528888919698041739861780025814277185709873255452154336853418590916932994704841257237200893896329678222627955179446165253031914980696930572151821154634387875937057625752939023141287182020985488916939730427074724484771245683654989152138970597163493989659216221281384000594893263100823375778685370163784755651075118582549761948447214645722083722873781529006864894628839080572886497157019918111564224308247713112531816627262141577850202253219991331234615233220965351037613385518811852824498090195991662124857397199529821533131889422135329116348064514459987499392544032999524436458792541700126634963458975920329390609160963230239682358913865405041866646429279259506137065707602233413596380855221985064153550999806703760039530597973005354125688324353599270959704098758937834577031616643537180443111726367317430722131448979666729314592498262002273874516215426227247456990595791163979594411153953682154072217844229755311565721278119255200686503073796727574181307122985895931554950710150506372235122180497984538599679875156565405412546689885949644601378670197039224699718573835200238530250133113379183403700282969303530516438697090859429871365227903469670520025503964445402919720818922358696186000437892693536692236484318899767807323253245413937628732382934444414374857870383464242245236729528356727013044072814263493386622295206383502179800655208647721144442066245468147169862091529383912695767866294822245150432006655392169115337848201208680025301421086013482190109981787527765553334381564933398187381118894440485882935817551771899498301205211377398828996646792340759323095178295633089268379322725939182096301548433594314083599792581271968534668614042160877921453356980713632712169977390123671295634927654856655257499728411765202296978994909106950272472125105904199374792537957161939661615607274167924562647717014399192067411489757500367485358109665613973853753046311211869491959343071706891371507248030099868630093351619815896997076331378062340929133082326386521929326372346830560552104800579304636949880620185808899525973922202849272873731946706511186329052325411014043545781144448233186631004820521751091179225101145592648762004100234258403778333862098283211111708875017677487280535299918560211126539359799727713891395333097131505707267503303022463637946980801382087350874870169729998179309848535600442983724950411674029729384145108794304299574036069282971823371749418379460818932200374638478181415356018289941047740473465739425746463503112529005137631909790753460811546222091770263252682549884392347868924637479377920848602106767995048342822044025761674656757403009745832300834209714824490150261552977690750395573112045541954958273533350221903016777222674547638052318114623007654580973935550179914634931250423685991424131422653120992861825510624872960331366642760172400695880480305913256057049068976883565635093869265759782734301921288141095965657357816547555222250513529850408630779561902219185998348998273437431784953218780332182687848095713709033944762829327883538365358654113770114313808074460754630865730590630914350855956284768241364426454710398818578953547180281029604292072684595247645110223437666530227575660196872792891502929145634328223509725508485835994792515331604087287969052175037509735484219750653841002756197094012139354760751163653657368808479903653545641907977433188365930742762096246453405441004208320468475998192827733735747782826357478922944809259794499681388930738307182897252180775804468912398642543579144059845438940730206895583393384877788875102962173641429745288216670041392036588670692087932110323231547607732015583046728928155834584676439582774664074239711819836920852573173962313274275094561833339781589926838584121403427953032683268807727672459937687469485865746139597108096768827587175114732846757058121613293161585919083679067756636022356664185644349326359281616893870597888810290599368506251870711624225352093968759118443857353216112703418211740987807758030290804583777709990022409201704171148822757579816949235879519539572031852851668685265421953951938546350869857038316590967626631195111580348709311193238933262882036959572237774939019158948683139160606961489149241577784624009897357972349983949702754122962206422894263820926418694738481234427200266595498538646251868280191358874826857059492190791467218605410596214462278677903623348134356276256058298877729737972466636103039178491250385613485515079556285155998705745083139311604868001421940935626133027407101331005419889980736643916477152060751770008067712387119939056335887705898973521591421461016807019991453790783130346482325073505370679606199101777264841941588833081188653963050172331618708928412891976783202566889266367352989009518976376212383699924377011743839900398221506121926991735685897685529212000744778935656356371194255556442577092141162165249777847976616237467115790970882753406260026211004349226610453180755914430056261016207419354057483336562108605186685632070233156752814722412062735546708392840889349515607904569398226711624042639818368114858973912435166662203211186160642850790195147504090853089029703176273358287975392624024274820834518599592540757859213123347476603530456183711571598050213236958613704564688728760944011351815719821000326860151213943723852903013951644437974771434997414469216778379405828289727625160019343194677769197088814762829362454677177734977562827160316871653744758671589425239464455300483493691024630009082964381175160776150652788270806390081542483339743870863619899019331346606077006703468357871827081518064879652674226935849224910295507400145231303380911436474959270494223107894672974336394567227944591545131264998360442411726394462384351419290487561079063947335120075293455481480764288018584749884959698889255878186294209866617900820622192708218503460138437713946547508553433322448958107497503576408861536071576739890113218555057528362270478942483126140908851783030019457696747754234495258740700586580667372314148724419394051799430075524094730956061934227142132653817248886822088603886622244221658664197650011711645342924483767086993550253733174303875586948947740857093585155744928550649925870540857581702589934075454221682118345032059525795302075019914991560044902255699624981802802989914733831498020450568059963629875450228536444387555639084708640331768228350149563113357430828368456181222881047442352248405738621431810767630301820793038003276108276346472879217978543093831487853425726241375914704262415507243707369646152402960364096659581772800301196058507593797765004090346830072229941218907850453286090044706078898076523470230274954168317840032930757021783922624007161523787632312722240512244094138713830070702413571342531034520528850090951978357432853973965012914558579749731767363841026462425880630687593818069518068611950307593274244732615468779122410248849591302354091638368667299716059353940448666046878820386139367031243976698755432396279765540106006834661444848599146559474752786511962100528784409976831920309607410586031503761971088310600303967485608432223797883324621177492705135372946923089300365989208250633436178264787801972289657421194197341224714736317035462120700348319948709580617923030856955640741224357041064177049501541191355965061592041952957293716186659787664862269195096128784220456944539150881546534583163932648539991030132150246477019320501050360297168451244643705339135302020843593007294612163882988481520843747137611321323684103797939924146167590790488956867371248999791395403633034238476580639542423466094283424177638368887699608331729900212167055954388174813489910049919138619053245876636771939414309338494844029325702852021961110303668256557022357020106427648674037195322863538419625876845592491252214196036452567682194808481600937367554711364219124847465333821740966506167358698945581370114493449522051050365048069075986295076735223523117658741357088141608589146565952583009645652545817199352331886249384862618237334968816263610522346761256809038597361826798983918343227107040334556506805268014930598918192712647600588007551601494521646721038801993724334817396680547467538658769881390240413101621747662798875453147464703602632276477477218240991425550349154247584181730158474358125241093661813385723489415270802454578491167868785619640790290649784789292461698668306661608528249097974126855074408105910048722617788763857475473645935652330165078106190372086881141061367010199104929926571462679866771867740848047826415813432637438688915625557377188170336629311689079235491113908418215001026054954169985122129022986094126668546602137983149953267754053688271491637450692827633933458393738168487354794259362032377978613542627902909267671346138073680505581085295239837678421616343103681520894457321930867100109555927161593237831610799312252769630797786995240135721315311684915404150421674747065558467505025825381948793055870465310127287249743859618122821295910469479810816803292823118127774623684930380750256466152374379908980418051909903250415861735740371487506803380460811825837422338277362289440845091701211244770523321725579952393651910789182724022683882135557330129017336297178055484971094091469881005269304804461719048622622566586282346929161458822601560179543912546083247143129850036093055649042806032536412024045416866157971044754635948820257171320875906181760938292408847656423925171026360629267229121539533666402740289191943405375787233360031477193505287674813696170204970977926545107573978138114348468960445206489969211002581923499129436655972980869106592073675942048371971239850099880140565553203519016541712178840056572466437777034650552640704240260999866225815042523318025837510218835971346439875673606008242304081202174521495182591690166159531827875547850688292481256008429726351916788887759555560139210438009730972280551020588634214935592564037723463240652275121310053206016692955556035461075667900676925346980807410426132838322910766200729656093771862980899496765694957429046030410657417668358583456971093528292429119074479874849167045256329301407634116159982661042652922095569290235033149785185094260713631889094228765123376594140554775038053173830294583425067919861407600752050509122080799258037380263833543888805063215200269315973080130129409658139901725246135717964661680807756564527527700854388091447636318654518223505132584797471340331667337052092357522108785545420150368005756542201734522622278148799278332430200451925761249949598972683786574006751152672882599120940213920538523088716115348761284604837917440029617397175542698877792301818601852137243617945657379723955909407071268749507913717852690910693197085118553331132776449400622510571643472219983267293512166410410199287567905644474926104013262536785293297244988465638716523233196256146711496973129226178595751890870055079954347951679357532397219996424155187648362990943558840860998230376949765768321836331166481281916970582381853408470677828926736408035195579430120585822714571471475571525623855111100570091236588273880620434038963981035788686712991280669951502604355789236103228743759969827637299857669453811557471585558906771969330850544003995467236212311240533436398588456550711915218847704001390781461870337314992738907706891100638663851027151420816136007424802079818767071170106937869560610534963139288403014734179863993833307026965261850732304955358074153499203313428668968556429453538750538372177802833618867274360212243264277355215542932692928012918763868636307378372934645789842007691246833087434311251607696803422471029784266598541395129475663594553701303613674989408925698086732816672186886298873735863824400138076693176712114316721698634607997287744593711235586425149041066822019940177192675530543545939137557598204479380487423346065224788993177697593652126539778832273739953018214136129884419773267701622976310129667633777115817559847714389295690342156676104007663892843539321814699167520667045869238514188100017150179021977470683092491023810605473266182014379500143408340123387260680020059027222547127045790323043945139681555206519593072523673585962369209600981836287437088470660564181267392404557195773119494736921635387387556538537316066618046159473744764307554480219995544403924393608765645105355524489316312611946543479267086594499975565961787979826995739857231276735593068550534225175968417923833281569900753106953107936319728895969665009067891933947603351489108354029490097677364800461511483145560418552954895753108885889128677505141562963459382465133986651470520592274995361405539775284627527660520039279119978548395035277265932945439882018983187087107718500473032895442787192328548318787042068793142175452940265436096684124545890302623509982533689409521835842321559815116225989034527773525726902943139337054773240546782304791994675398178607967671663655172223582355835317481341254105091576401591038476404600645700465483614529608137714685211031224425521931264830720004818385982430030159887085330788269556145178940026411254351012130605028117699856357416996433449556371380343257175810842215342904880851347712125188716368735473746629640306309435915763428464451495890497587568501946132972379589181175771598703247371748100276462755868175418698738790407554448944149567796481126245497829442404449148191324395053933831730461871048379017239161989252086232671306946128594761401253059265798557591028406979242346245695142333876384825124222314857295398166480454509374133802965762210465254871300114075996230549100229476948536611489612678224075060932838822037896437004037849236536669251996214263829400626022012770944811545492115740294406491522541983183232819265144227049533314274255649945344080352611843318250322366005998381483518504123096730816143298466580783724998729899698418608031203566620299038111781979425217391415243110148261189892125699879965596136973458269291824655058200770014223352961460234368554863656840744142719573912201092718205192177247864401002662863827053973002454358716996660808180063363092336180974223457839151252250568405156627254062855896542982734939668314776954078152665280438731097541099437682414248667040840951678707481702970781224800375328385180617974841166891347806743265524084792515572139087487990155322145039654056753474460101999772958486827718474070808533171785182100067915290534288379537292290938676495736376070528268856077824742889530403189930424720480100502779216034628007883909877181562078975938495994153244478996570145349839925165719403745877691537334969958865312887814647232326517195580132073620761142656498892832209121501734595453310003514962968161054524836509882481809182682819644393137706850423146795319289058371084326351107114498526853837735000521036702744189030429387276364724153075767064938496171731698686775529966835138105703671456081388144467360812664072126552533979523189812071255048267744878805336592817505999158911173526361014183359569294036267140885401970785318857031064456784769679138448608780132116366037710478312995890370028190970779258614657116294181999995333075688561089853706724225157072444336137711729537727744457205050043537475884643528501137316599745713323423588679923397942606827007965213235802947614866707983140472163365936541484653574192791016297357930196226401486170411211059933366688480122040417621967364615855496414097690658672795990971195664165813062344135600843537594833796938467025187642431167281993991245688542359394504587531528462323622830909829452150626176810187458201626313188671892427983684690043438959366998786939396429728809350613720936112561914660756921974795826259723106327788947613317713392571454377786249291615187838148729333944001629207304780603112722993951315937689990045848344379726318583405254543489307221518899302108757857263010470400557667431808922878571810593412164653135381145940941757114887439552294746660010927320146345995952376173919084102575011823288332593632979570011372220130581886231626227921051848041334333731569575171885690134884109007243314047660518968253972499956833060400808761691103580905344764326428896055647504442646196921861844439312536060571819776952370139322539563202110999455818212357681254558767694614652376577218882633767184160426098388050295719477794655133082606092367819010746771805950939360392539258997159288217415016579389888161416768712433067291605857838867862348736555619713261641047247605145924443671797218696169130751935021111858769904425055715521215773480417718301238538865554411486106605115454598184044649823581866712687213111535815461471495136207401273221854570136784844429523677976132854449658892045172289530370319246472983360682235172292727102336830694324171988476296144836530971046405161850351584101863259901179571419570797918846392624078120134569514255347483103377593194034197939277597781861680049799466891515648464080624989177487686848817619219793113824148128692194690772556897058638370516473720299581711220931457082439890917072782710161061535575842611000306436037288668361271952010960891220040651136821720363517846434249580196384416351297232049210470809572329872872584731145829413082869109372597773603481067316285816880516197869544166990422324768739738586348206307620042826592589031271333016968029435320490745164045869545316283387190123944598557553841957736787440063674513639111356212976510058829899338630457158187186349171422396674194418372509351190440414418454523698558267455618238745947462445100116166665225874458871663958936656937682784224679025844338878415507642215576595315557393482682723646007417344910268635416913599835377320695591063267685731033131400334793643528541604112195033143223571913071006022765007549214452470855473487010203377961486558768432548603475324706394991341987418747492406053024391222056190648364961721829155832912298283786492814602370155433809133790783118141779504938121302151953439055939629302593133399711803258427477990674422212086532250155464330982185093468214905237584968215220755182306556068983246021977747770419363512519839758489324310385362275270653663589914691353141561416071611444366549315516547250960845964123115760525640732271693498934212550438173172184627424075970835436486099713814200208527911780399757366237173662995067456202792168399772515949794252474809264708419172500078990265773501354936594574399637114563583047920225407897771794038165512132381800186384459825460488491755742835272764158464904249636895717488946389064250874739234791634841722893220616477668106790635755807143653887845077299643705214343566264806999131197351984202753936914704669817979675821666150054794792834270313311936669665021493369723250461775261256403882917390676357491816689782057361348938921693667915185635415009049091589702109936183536907914491014170363997649997970970435089626769075650884493879239481495027228210552057717508599958923243087133260610095773561916599139337335572124922379933535693266606961728825069544591449907090181743984491454090458548437326346226756077420682986608105391784167029127135075451283302259647033517991745805669729499136850340108569254273078420583104379398188674035298265313473332638664870995859688532447926898436896809381762443356858504730933353596348079099436721964119073849625751265459448358786799643910731961917636357076019596815149525214635213504843179595946748125686442347815319104796203421406996309426957605131814347400804801022286238155729373010752476594681384158939433175387812200693331158424646502839331694403929399231755192281282723252306146499743065231447720593139774232863101947389820505671539897305412937204654310707253001766342918754593688826878584633115753809162976572471655347609989144849138036833186293914311531371872793245270039092833305798618123529984010692009329011011649764973069906719324963404552058578805247775672896881240622762448770288332470988558951136947888179205778347801610630775347814326938291177475386887456700877121957899765503998013060195213750615646444318353088209997766719211653391270064414704183290099381487225610596067386902817757076251730032901337853834700052096298531719913855447575945486940239653927762654990281238320021993752812040006478853781644856417716167425440459229650440512779346310163796935840134097506171319910334331744524181168015697817114741140350083278278103168135695091818701621745240142961503008431022705239615534859130770707853811140952529455206155708651353515212294892849266188580889374301732258404866650286296787719671098958468644002007688396537286458487411608403879550789578462243583939578804273913933057885624052339019117019774870313360802670446271688458623190982893378026194044210534464632386233267545087135400133533419394127758660989707411017239786925622578819160997392174415263214441019969824284808657252312682506868997574100908974207419175569712157696867341481544072347781397668520403536429064962719083357846083843422640685721804613673349517233286893479213763339596664983874872340942225219865891257762003317228965819402421070172711826504426540817742624027571617679372389161740959463083969937306769845476911941495452414377236721795561062578270875525587210541697721736933312619206258067166683098062395090916995385836509160975319811189346112921549757002545945507888938651749681687347853001757559305390366493410107371152854857301197245899666278410229355731793215993389546501528987120294260570147256490057212460436632151319473798775865591192098872797818387192822365204062691574016183915764659303914744140108438003939562315553815638213910401434027990438461746444721577760304313227155931321175091230588163730540558538904882763981941219898771627669379488655875878312911451465750937188706566815802691499089360214585086556279818276488727665598817069780092472245806965175703236055561340306130640360563337485225641821901695129513421620376080060406020902456372065396614226875202683217045012620676497553787306358119381164609368594969446124778223904326359341262413054259596124686820642643161148882704856731902684663542543774219966319837945971788267799100796386172218623265101850189555342991487033978098924095233471652722094867233625870401125113405301431941975242246138965180596285051278501079919957572383907407217421509142091139170079560558533442668462977096896333966197959815249164177622045645561176233960242380324684082256340454674681232570711636145274515722519057208050215964721032235690179725920321817054188949866829629198643387334379667442940956742366535196647589640291678191723909450622953426361283842306712645338880535909879023168769387809339225283806371778110811487444793221852663284603923967037725040786696040152488210850424876302133599052218739614881034461038476018045162550689925582433401132446152752520231106512952776258227045045672356585679978929564302117892266160665774640758911679010714622971413283375686112943347689666397958620034793006328818280469125950588854950177969559639250852322204454540729899096904410727832046624682903312805136052478412475483365575941834732279288759411944508556015421881416387387850669851805864320637312201975235995801792849931480630357135780858868958464425243862737342852536776828910162744949470793892706964312159358342145388135474599216499197399980205798371793571305007932553739262511570266818272391491671186437117777820508928459538027183239696725684863501901589520434721785439254204279386877747398724146845704330694228924524248385594251522468381331676488823069369387325211434545250420159545247407854951208112350710016156850045586079898106616970062352716383938780308777179848794476804446496441982299229651607297855290035932362076401285022810437058733360962395832251753825271439361727477758730036407394610390967367066432344501618955408049508923215718346730234233662748230700491213672192028521388326600288233194424464624155678027841545155491034090403966373329363845059952805977275206219071502725308992438294312182819750177972186241324377583314092975821428211301599771004476498828028094282192625705806035858844754191971388093572957125961171351225044015214682136718485823397958116139990944604201629338664302774735420151235062420748397485987295932516466000370934429290953623523854923017525001183238393693668606670360727475758283617939606520170785459207934549428225269950221894428361881771859379390653811123255585214078081315349259297677375744374331647635553909185362994453369685019101885569179045604919185704558363963713182580143234495909277123977899464344579453317001656693887932179883128927188075019014691138564503574513913695538112843073227818569574866460883837039790714227069210541489136253609889107659471458821306034031681421279388539413671432292958848721452881841725770705262166125267656908994195984950286766324414627852996848661357756421253348362225510501816040590978023825981115177409348880269183056750569326798001362399765485201673809046373739228419146984055318733777983641958921150897088689569301950519637429851004667815593176362242354613797291747039616327904653290957164313349191866355361374325595230997329035239996750252872123058011396309139164798701575781888309907392130719830324748884996060140479925887652114779380835870109201204223874661791618753615190937110616288924567438204751174794484494025380455586855999637966967709067923657249222578561438721574087767652228571588734229090776512051009678316199530552914064917899594657381490560228192977088562480809597863505051744176590460820361130334796068971306952498181474450898770930960346932470280714384489840117758970696911015144753926151521279109664508470055135512419319883829367481574301431733898000415906665468767912215660957578591686670548827428231035343317048322547816525155837025280201716069247335950567096143071401986982668163169875797014392031046803049220382226480557623757676189272311095490186833840131489941932955555001813976992667535859402692490033383986351661501064175779842867303195081318528243169006526774229785740024865642680370210009624860728770990868232976756811241598419780830486209058213086105797690409992760603263917232377938274708233739547862692522961382468871251779877959486699394645384390090408882743301953733097763305827139036129652729663246413587891715013792796670957685378613636898492011703757026172780389915167214224147314096031867060658973301993168026909887130421737409213135504536511652039310605381965378390846788002002021825411706312023285432198314276266760267317576909033739121359170227051623476842696574004211277015932152845440822653458359783542900459079311730648716427910278237416386322118975100991622813519435723828486280103304332629377132348632168594409727071799165878705393340209063556503804598709059103721989002506450416292581543581980223224939903184259284784134904228472740315567820828687473535291436980136686040441887113305699840118425823038729603742999268709621998910197921012858473456599791979106473882112767117903925427257051413757800836703687422314648643840375323453403162693729846355338661854146433303726814945279032776808220359654600177406533860515768863348745067141884241935967677982056927126060602210297461281551867891867882898935372930792331459860850771492391807117487335084391814612549618879299119223513105866235227405535608805876891814267058582840736111423680140320161071716756218832836005173870696781718598114483823423301338075027132659366311154317502802655870888076343296049159498880931100731833355260424369379910609249032978750023137128818794367379679946629978363567577232065306026667613984753377606245773797129113127347107901288496613614800975321927102941958178236707098618791904989437689298283963432682303901034095392966424563155652794775192455372661956403090452557046166652376397593076596198059181166852188110384321745881479053380387100425952810556889363660078227050387881749209344053632934086047902070154679400811144144291040123186620502573036673172346248491617545050286799553508427483893594208209529187112201807893690523054648002838924585017165954521652851095342231952718988344822789447593132401254835749919751800864592456576626264377766310741650262621428162591424313109598727128302900173333874484738298326621087343849884504921356380561132692904086310456320445075067997709841757762011251886003134926966804799720424530550730861076034514884285748288371551026909779052422784546789187776167747361658146884981638764670921270257190219098492771839940074981374963412262880569278432833356564420831916646740046505114142574396648046906101097903866372774315871183971921706961131601834690066048928350495498143079786902820898400902339351398818396192401349187027360900491065968760328823407144981343138431979882061858430440074717802862014301355059744656630590105917603196818089168495946060839192887180640773622153693677066193293119216453521033096517993068453895634585963598657061483280047900929837531288964764536073418861180669419571434453089570446290967312577302126087476083749425670263076421009908131874983038015881548744876365630643505118033284438210134368268885708572684294701926588758953952438648380211233752410104349798211747906483649797872169817039118266205637104374787109578278903299497869564293971579116077881221387180234887272508840932038915154237543076806786317846575339470422092704546938326090708893896650569981659731425719285689096197514348815767622564268624812958594891921375563077072624029526557930082489034232183654304544302574540753179554651723554177419667466365781692590557552186912185050844097390573161907309557679999681027766829032638328982654026173837407057400804891877574724323704837660857948441507623349457933777724563548718368933407216676618436663655571755228176410942255036729571917943128306709713705726331165305771087475054079601997731894848236745263571678501638300665323088419082000506051957729136585013159357686166347754295242621993067002402119691951566764785644482026135325081541663178775678385671436824380836553278221107563816300790736623846425072309503932628664959081160942050052320974256485926866603921054641571385505967687074280017945325763125225337230539954411760518976726313364607306984376681279090764604825359754018933925797932262416533737376213653346457228091434105902970491410843426962990214458768881700383076712091842795492279226196320403182407757309024963955113270007036181337871613959504091871085832320247212713965992543200448874017504390254369819264841620106795331838787634403755159939975773086878141921248609074722336708133197519920520517210458457314227307718898884064088405647311165544504663550020246467176846883925496875031385375441202676087785499349501752856631860490645302381683156745978167442842806003663884077847623783528457619758682242705938760623897431595210876136524947608225794512280292821059408091664101707715156772439068489948853229455013929909942668675742769250594449829655625675183617809344180820170568255754563734581021845285813870123288564942933195482117848680494152549146040968462294845848073715470776297359247707499490813325837082846577204010376841797196418465403302632511652745032205171288238268077718357763825283056659566603912352844269099278892802590123674866443911464474300524858786990527241931410354973760737743548814288777724169757528623731585864982917738988428610091202004755211259822214891603518746392506734141737143723743827163329401503634752353388717874044844141615193463734470049505893155566323450442816060929914747945598794798222472066688118091301782142050969566326606350407357668658841842673020003294316745242622454936751016295511252070068480182759641873469349388210804638467841619885081829787642086430679266974940254810360720048252070209528829101311956456895528722778478197582357138172172046495379582154763989485085196367553183040139227858164477594001257108848060456530646456643054333482306119064091592880135801330141119689241194667971059673197041291817901982654811779136036273992953803644947208742904704455887237802421717112914716062803572742739985119175219465530253976544290572908238040050425037206541481358577175986770431522736413135548565526477348732573111330348785988279110597959071140593143612914944815103882503507727141994484341875574274635507668020718872770096913456031266895129717046467845053356739763589677060083711623373695956343130295594789874585688969104055892293001749537952670705766708403287078982003888396519790506857935188427530791300634615431980248109600178268398293068058364644095032847841688155724988173270919302155449083156357618913906782987717634088810342295606491875201129645433197124965710343054854522284144773353113672806295338238420558202159069673565530648370641235727551696938988375417767776233614733707792675313792943766150237761323334437564314446383712719185047053555975523025386858400458456742361006843314957223882556923367068836459427901297687319111452783943332519684229791102800631564614872192270694133727979070716676178369320721058647060497559816945801132709194754611353613931014929753309393583478079423180868911071031836324918811605240898227990771936539122188722046406923970619772330086174141946953186462433835928910086968757498192708848093213096050476135647261326325669936177926511282502237933536282112318254727103660058726874472837431853903225447829278310209908739842006033938876207120971526282007798341246921924112018760855907516755913861175637154835913220268656814478504171263474241980924089504872995423768500339466509218027073321060416184774740885008650772666882992974716875106327134269337378280807498402942048659993711926226203143076459392073080866028193874274836630775309075961518268073405821682490038148008661742066385559602846118356842333313794467898404383587529773126561147036114690782876186342891799944679600596416789619722346108413187805803781001751906382154685221524408016540452164822812255599170363834649092539583227552844883667139320591094317145887453181659795830528743494956263146092904849935388594249503743485596222051369421011814757689032853089668030417420796622515635296504959081662208054804897352600825617184652062726141988689029565985019789869370034046958223325488117644130245144366599130744910471850966422634417070435451004812543928743000466542332216917270290633473758871016962440550624649527304280746355862467599059770240213670683181019038288658880085658644070558541835598880367016692923150335671109823313446945932859100425311677415963650148343733165390754195242325976956661072667556032496673914898843647160277127016190028746422713573915015046768463733562081696736790054680835769193030625700967857419530273828319034965433231731904118857054906668579220469363272736677845728231548634235923653902246036768068306117965640283361232967004604616178728760449117598030909262341580348471155928686136919235915432522625489446102138297669364453169547612872773570343863178222510766168860469907046855430262212455520323201710405857960956931300553088092019887597096279324574198680017481694074894769187265919101515048070632203984867648890093093443193042963207784921422268678907782966305943385509684092471780835360979171102678211903620145311791543990874708092737065690364764304147442453860300674540362824554190463052656608958288932836745730774297237429902067609690022735247736288550043300355006972334495894586169611367682946689132739210715857736151271824099642212702033343747252557255286536367156924602624671484752105513812169372734702586393049233523663116666183438581258232005115506012658296351300314076357761440262811106416765730301902902506938410240285327372485299780507169030280189218201691360388520260514902512697639859692666959041577362135061430893259876060445761069460870267565811570600190332377224446655708338286347248654185061379863775899150696681601375186959618118160192421853457333207870575980853598992604826489003879987266710553083698852004118279554455158270897919250579173482727412314946547277793025465680320983836013531776008303375504243824346263749243409444847035536633911366837233528613424411154950360884446123495323944845531108531232858975292830669992874785400333449177926256166757273539262596520717435225247674302127094054762560647587184657970724267610092949928695250950918592216826993418619769039459248476892254719135132994605038863134342611012805068872049092214596040423703892507399599791025916965424668273206406873523089897794474255719397059188851489672425675619123044553360021235314122055240119248079405497427648644891215254689966758492958757846461128220797858609297833360980919552022027432742676924428713334527770038950184415913616607299192699111946598159645372955294882591132733249879646880244960926236501250900545601673622653145480585157447022778499286410812637696081242839028964427087512948409944411207394079971064377932559377342520906746926659739263772238840152576705947156421384245082576631645354040437159662049595200833414634367125642409574341825394180765456617093048759230271070996914796155741413610110145534744897790193586449081665861803817158066588003556680520751086498987364994427820270629669228038893398950054564541616804151842651029204460482493879122156858897918594036056036130228566478430999486787280181325722255906927327019882833290841910814485194043145732690628101995543469797981028786339089676656921595000753996695246837369747126929944907634415657654018106253106355307042695620799867941649542300150819730256149543569016811867350091533770323426867965177487820814614855492030023977624779292462196317241484354501376386735204668451346178951573539444008041033720802067425362817682716915544227173685369017478730127188513561420850847347317564817248427998824569903486609617232524210901147145056140324311540373266274275888160267279866667837580766795420256440880232169901549169368267020514313156829371841062130084700400652992921605528672821740780548376943614093858214976679248909751465460745906546514996904637304228839551252866492658432142059050294906956381654323405308439849934395714825486627914513119788461131947734538703061026669274597834297006620894104569356513857599995790599606626399535025922894569773967616494017222630140822050435008613675152310161500151195776714883885101865219822592714289002669234094869748704593606141103581813349437633674865686666336731019918808576769843788340365177889893502435559340704675019254411637483217000701443828834670366708852569170674413439579408357208172982369859040190749247838637271674127604736688788328607957153042539503161552066685859630396978545414935910197625634251042196728178973898346776368683748016579616606383100590903306213570617662198561191168745738604906310260661301630731975660432644475094978008412099546348772201136363272478133051235344500328540734692205673192258481076298392139052024713275081430808001087490392563699152301519685834050741842915381710197266824681771541751538987520018507770303418986364495095051512150674989545750898557142036615996219972840255133902183888358642353064982792356553793740420164130500146526551621077937138746345488793666974099971604883812111667194020938305369185322478628458375972997213362376210835205921174433954371467524652795429022332955149198396658056000764771957987012140674677152099989677529217917525111159972597161295536889550979463845841513930157347609450888337998704597825234046216859014702998461062107150479121697235898693852073641480573933151706240218763524880550573847938971439870581570296592877566728993846403536910085515861526977375389954375263269162842365654417275013830117271540891586397956387415627634683463230219509480840806467415636964506899019463312992130097855404548193968952286052701479026964897005441757967507613785248064247551650309020974838835127549399146880120532371947882175082903543316196997220290620953789460312909472644211340696736231809092411732052240464181033581553052532367473344423431950737436075782145391076447396556953404297543187088550909762141928645275937799405691180872234638617246549632026750178644753860832101976950210369768756854150624306246331896883023584409905349301502414582626899832774399022996568235843629402346966769675429077613840107515401169918347690265507600472265948699807545250945736440182837935237869028371523788125471997698747146264025936303556526086654198297738787766230082270625000776573510256645859452748820735591558035025930551966004098736592973353780908052704748988385816624726867388827636846580034266856592124734638102804862873205919434690367648559808357409948617057507924619227202862222424195552608003919915319433897735179266699847242176589682324377072209246546811493663282176626831695166580937898613498879211272712616411677970971798696134132078268724021208989409207925772691354355490926811854603077890099734045194617736016730716943826357065374799429531044584863662533555059473917017683641265202029583699288393045942270663865067147134797065355075323347168695491245021025714419576070993024064464785485095569515212606060203972534080772676240844014994498871457167562990076271767383074262031392593519492361057681746900949312439100905513045421809057837474211992234087369753746053325233184311658536211646955740071670620412587972930368315202336946718161805209009256864514874556344783748417759521585309271134387398539594579672268537500072649330029960434902182201587765324269208874442458550777825675645281637380034630520678182951301045393905748496512768869562022659766764613359351248282132078057502365201994822820667429206102029615248945071262285289826247556458347080987251944771158775947670995749256664982317720824746904076118477108110081539648736774181557375473116088411479749249364725508551714124230550563547436008820777420207366804834653570368081885976114779516079253373499663127548168455081398343261822515726259096019149990107375921149895380709825204891010720077741699887350286544694417515416437954607359794323132422265065863830228141122315379628535079015900676950861911103842015346274870028821347865955963159753128826851175043211242384400434030459206648325645197727452947702020369935074145266035164868726300735055798985060304221813943586537636865809337646446688132711683949862243591579680092844821030497946787948608514993495458888046349938968313398297374541572614372976158057184680156408216805756499823815293534405215513822140929377159810518524818993860957867702471841284230816869497677248513814182271840050791093057538989923761640972939362236173520504091107923370434698164019889316238138724109268911494344594327234250370849214980225584690771920717527105916779790352881332154358402999666193509484420256568150228080069899210935963779910975991115905905908988679348482964655574626842635459412668252943783571266989131238168261245624214536932296895181396867268206476004199587650903566523826363807967119478770172077240566867199861530745913595386621973462477467280160793755137315976356054365740628120756069298146700366095908403301048971233163565045722040574357544257533478118619352586599270603236011191062844658873597117134332198726790559386147983661279491020823494991802319663961373486365423995740663489724296756812458691747716046080055510174850085484236540691326742501496133268427089256073901184285200608674081961798595087875363487672238189091416433564790535720049121685337179501626827439366250966273332927927036890566973636900248629713046623121419072153894374387521894795900280893854662064961388336892126902789650117346779458422295713096471715354418217157973602466871833827680160743633037016956853104049398293928697849163091819178151384505018809284042828461552996191872605102184701089361609738193778336574925812049102472340312025095468170353849373715020881467283144412479383018021977229572540645918767701842212232225919709771144837509298007933609868975807851714153161712646374216681349146754737790304613551197634757432790518007817409361826619503779820363648600020273883048778204677997478529007034879135091499095214389408198993264770432519661857105046558467463516884711946310268514945148412149488318722331448226242914335917985202372425628827515139573250488506642013144855616134608915519263128143772311342806054871097925662869664425352195599410822171100541949062707538669341771810777721498516626200498989077028927845712469290103218616548136764210727904666174866315856013108273247737324680318825986174383339423564203242097438368211714610995609720008430206639712039939211963633912846207595078158682265256164617333762189257405496337034449044675220671207212433898219066198039458142042440767414316959890393869842593585965457084267670097380416061642619858014195458713331619622959750566328407647142591388974931810776231087031552182382066256671992820031722381751556279064730978158458854201255648368540922570613253907955987659312344248692896051417777451987851489860926621332152943244156881926005690333218189021486096339282093003668335268934509883410079200888169736478929297675468713695741456939202983088473090979572088741698367445226831616392325057555880032232325797903859030155456911962456053044261610966619723946905230806112610175924692185626786543095182787324944778173159478036122701193247742822703716236130915351821817557864956163388357362699335395647693390899893975294723818603184155857682106314379932852040331333542627726453752669942930193210865835203142524423336209289937654065005122195015335965010250603909238294736233781942607083600292267729076791382137619248825495121912376437395702147131560934434281245633265596262083314961364558901357618145191743763053464913061193241672403291354732606036391178692925293393092199482737261018707712521613027422995950485519333674161293778543560088954773761460519715369465234526178201582860989752837356895314239416232932398134925922943684267838650391655821226326859728368918151721477321071777880961918395433555231178697146927115997793075737149939536731402520137615431706079659023919787246348279519153211616556938655059303877371970733841401394220237137312322083580488423855766528536386644768052457323849888463642332370802086828813791333752418266429395144667018622302463141924678981459140432192890284383074351300805051465908770483054896786752529944294237351658063616967099746038945865049393838471792366217539227402436754702433862306695412833408979297072650298508797932298421301710820785401870251243086342939041651522063973945379495981497664521741673527418712792285103982661501004616401632576249299369737961775528461544425970718705024844110450735282628741239641545665540942746901639183272139626626891814233798844954562805642061862476998443776598749658413097588638736189908474187192497313092378898532083898020078388006364778430566686066114333387953843606580545413053128580854934237306162021235470835913071822904890153006123370243501958040099425349696601167611030354844154938150269243875388032984786369172135381043217484009116334448161546427721196702882440396381035548505746630109578695236446926329679513701108709856124481207077670071992820144853156847455422935728418334810437886334004604739940534326991777387746018307476666264350142236643710941835584409490563903870619359098634032214827261417133798663835434563417087200265926227873857727692133204810851096441670883765643633421283115437144951843670829313672794728256739558230793736565100335842519302266407079433024849257385546471693724829394359195597446947428847407096841579626417272007984615254242753174071018625877379521850382343548007866130209468042627180187914705178412427184590609856999115156814266710951491723669424083794755394521999877098535926369745059295901183428193481406218863013548862622364328235564215942796197274645723872914036490515364200536123014441344918497742928661541341385486221978313494405223168345615421741108550483025465446990952867145883862546412310005731186864724148942963756375211906604320328755739673035951321237604050464869306516329560976751255844863488703735758593398385646258899109842557386072655835840058905614733172894417653185540060665803457912056988052547986883200336179866978719555610297870748012493906407905733464830375350097907110666047368073591449169468335080510494885146325185748777764831856595639280428323795031194333854208766401163330522475892792490571191500487661691258126346239440599570073998078800930772837598260314311630649107545949754501579091236396410528351053081179706504890383219099548923680206776784201629404892719163663859597193492227719661612318192355843065862100037637658731108136325799635659802485153896562528231392143599937301129360679915570017228308939377897580290966222024456116024155354418047922786871586344846371152317838339909468964670333980268370377419440697600545311466951411665692142646371610834139839917213574521521332830027247703820282682759660451683871301422505838401284832025589318365747626567307870872052693367608102878878505118985515418069230175913208802493651660369491380380480379280316005483625208033879523794081029613220256837167727566299436344971303860658218273511269952517977392890244819515732241468358510963368179434196209166370949732545168033275070394427639790266867976728612067581065278375374900935538719912103303124290482156344559075605000531149054291666890261227404477300156799887906658190000167315975346025539948373463537360863802461137629747613564058386128419949020748071160353226581358043338522836109911092460610738448113620298552192977120621325866798182102277504227406476487841879831972214474413296780294598348177180183203600300824795719092784784647709656469615390809369831674508673093370382319597061183599777178454699819269641121874278002698937420340197084140739775035295403233424280526702794686894751720384988904266283283693293322142617090297385047721332629463730998105760267079512351277046654522332655516688424023946011837314747582804437581701518946163385424731938564850416643227870541061107677196709412410970275063036711713842703249738335062241606021509681753394878319249439185428067626428878834579024260889611224089067086394280927718929794955810381242258923258488475335936068405355528647799215991224454941987851305788369032770444498903320960714564509493542386724573076367040636807458865939000740137608644408990201481753053083780531218191587473435354149250913822698303280417098049331660810229996263517633738175226610087744622125151539970985158729336347559583308648492847115168157217657173730185407387915890523655487846609004406565975082011893670354727058053133100739912928465631707338109793653855012389269129043393871892574658077460061072171416401650472831540891358583032542252336978786690708800087100387705768767200445826616911364147096091172542294792555132363156296360585765687691707870985267908032379258445640846877668884544226242223547751509031924148257287938113735498800089523198033121569253426273696129573568718056889313789685877667347926779675276119898726556572898502430390240765538680175594001769667765923672182813455913256896804774631080733454843126127794405144433379517888275995810458448542744396241816966043985339951329491668400296004974132587821462794619341121719841528639825625697573207329012152137886215090250601632031662862722227484394474736029944150917566543737615818018447771494700112097138991484821692729297486534368885490112182993830081669752957171758569621502232315608161316024179728899809698799284559548110117858691012408213353611141540621702829933678711312160231107041528666697535790217786852857770408625631900086272815275386978392661699025243199322246932917859864104082860201006109813121596652971032179023271079414840558164777441704578223517130610849095268784567670922001180421407798236659256456988782181188837921031371514840292490640366616420450657460419277566692368356007399191193193735260769218811158803654574580470945153436451230331870835921661886575676928494728797404328035280237389842961390683596174014010624020257079596656080207615399475995979401008787034824353093149093146918744459010798078821595219903767664340688142120862916114615672105227544837710361817608486892915848020345015292893668637106603197605094972968602021424723418864752144354320508882615762006295956825064922076018114820087043048656132623151108704816334451868005904482155838963367691354621445685819614325749175628462113532506317574370128537531210118873565020206790311262191437139652389041488621202905555662701994057159100055572275286048019458441844928303113300620989687682113048296070773378047687717433181427960423166807864178717244329043514437004141427245554199059712565935676499267188786554572066239866781222330279266306383986127577228710160233908892334412678630693363551722831313829267645366493198913538336422855713186074070038378418889434879908066893836934396641015683181340847247408013179510641700714916981814793511250126654937836877044439680216220477938796584334301149994337314811922633817988247291001796294061521167400353088984608664505095797581338698054353380994882706047846783434664516953123344468512795245875491480392700499264638574037988484624163765547983120719201132849129156310821491668527646987296609537898192383714372834013210179082700690541915704972741834593792135311428795339811977014247882310852459116045763026199844442237209427012352699295857094897827013893994472835272441919356941976384849681199277873463219812103001776509599746592812251272742517454303355386675210364465746172489873482803549953378828029142486363436150924895700134337427347268594335941880790961104439774464472666832867387483099904802133448951177470995160655046464940569440574862530478769221877298596884552500868564495531327816776214855890104867647496446407110710070449419296571019854716107847238471592610290946658593320245596998229335633061010460029071953076828307472098093549924228294060322550636188076997125083945211129360603193477316205563107181595980640469451481694699951680517663518173070133165909115761182975608515429948877652843740082796279070494734569659972808628990654847544562651780477399070163825837008784946260449622804227349194122737825668896646522277552913887025763645782968571617847731758148891372155220970836294152051395987901796028452978378612250860419334107791936821558665757966944485032811178235675184779045947818236199415793272018500816390077837444924295537827589471624719333307870608848578465809746657814608020995185947812778985969171877143439340672784082516881322805492472602041100543409308469599389369668999762559270722842459596863024453417686096073715680248129652407466962148236395395256216999351884889438272610392108615759981942171478021812877787800262252960352442816279685701935485645645393908365653028188166015452584772252471289589733108652591210664341613649229826546126177928411675443846718370711230679614741218055304085866024303190178285389009716952020845199634868206557452863764274993940598764999927026808765445297236120380826915947452314637569694372323767990427501242474753797736138376998059719473505758905753168775846867578588869084719740333069149226902357555293520383105803755511942336601895784136445200399460624679104937085768352691715155034165268996125595618799729893997101068874553494112189369307879788225953811337093554382349310705940618130629332497247422550557533346563906220978466844693005586580607382714481821483199200657735768208269949143858414272975175950308237229848042124951124305241088812254003915910991689807147499603153508851644089420620462583292247102970902370782025069216140154824534428651073762629608176094396489211529672699283661097083692745253697421182370803000247646181138038806942672292349351937129611102045475681013454168702602248249189908765180054703231518934346266514317924033093148025980622424956433321571412085148974322473956845810095882257405197128914331257333833657395503234181877820911410997706863843371427509297800965618024759770713147944694909619566890447248631858758421706799557299288904421869287854980060791197041113867306701348811556507372479847836656621863811929475116196578936825823739215490672347095080889156038204567374341010291142468596917963715049504840026063529731536397413882997691773181847443605100754251576748289861558149461843095366615181416203947890956744259231530216798713206978155607535024820674010780747674338299131345429843896276944065644693463803094227535804545440585077589244822324724584699993728032635282941147646286703349929999780727432578666836556295442657024098624253374513432699749896925145146977365039621633365595860547139675796935963045263635448844534044041258681904466866121267116383536741412201800274199228298705556814467430312690130560860504684288087455882875927605244505409260061350948106860757616270084141989752824986946986539210662409165368834999192443437791630144469545283839046957522484870850702034391976579826798521667524206289191058933814344881698114129129793819599860160677253376425486714586609666212345983214175829827181773011782941126799983159195208384861836308343084492850653027794000332405969903278735756479004305949831056794112759723475288335943709726647491650678322577796547318585541548004042902225580751880018741677913467916506775140875193057957418320678595142697131692129011219065336478097092383628432781949043046899731557422142977919405382971944146380900499904782155524295963889213925351498322553157208577941164191956555489914438847498987612752748197641311660216224698228381029215173700263499422061538034392568437530067475722848236978459643837513020911362056405746691026731546575539412684042347109309699126069191454207995799017764051756913414398838829805866789063627887940599757383318181023488714418063008878060499662713965757032999164366174514451581084334913517745025726547579575723367643762117477581398955982802559727882180643563232185642099882111238199158907115897762924144860923125892223562213638040360941503555330895099348494831088537862942360552093183985212372705892003486405419098213318121371946836396292842011692573068797644978722385779032739408105440561850238043361467381815545984978649923987408801368484025257484688508882441074288727780570646547399647532589849022308297958140992533405655558017546919720472268233009716655623722562886393853269551393132788917850739065391255856757516280669463522950841473237077554901892485229102054346638940518011721396032371779529840651547705078245236033534652795731534954964782211727314766395381310942245630245875526429902410117474644826744197699760245362683816534138135055793075664692462590197841606512621940580748997636919485459355560287184008714249391373273326638921214754214236807958118017782642811062520088511364338930341424667514277003813657447397917421163119595463093223266159647364914400040579430115318219907190249046079753673735716831945524411889395849989342483289691633489318100656430247989180196979733432863920834270414753351843358023194096477903384761198981507078010328722666020011730734493869212359688097191558363205415518420392169670028524494718605048251716652099668756307757068317804029408311012682667008863253361799198518354064999968389304164694611599804320075481286753518259596406013951743318241719536510292164011817325822794034647918217484606527370395282052618577652438630559160968921449920053442970009075018504433297065828175885850788850822341328582854018013447962592197842648753093839858533412839530823288255338286233664637195766800395839638553921963517094715669024226855485193842665096545162163610026720280129153896492783098077463944713034545276729424567759346007239865526507230632521844921254405654036533133218978989079133246695505099372950448855561496527929195342854237824604505771371858924398636859481702803142672763630913659754856317147202825753020073373492845156084135949218390076297744214864627215608651542866750547597025221592915343182390348114092795427622221262476509026849889776345482620205962753929178044502841178716908977718058953963375998230482511802793846410075373878841726030285564951846326357320723009837886799147433005573064242152491891582639411077638501937895277137215621390205714001649731650241449349293977659336222371032071721988017121393895436147067510923919661118570969740596782780148844006572885464585089569568083948287695165379572383775937627638556078877722649829387552955155617833808257489942917508792982580445447340014281001525383284150829789632316725857672476072696192256766828640329529240922942128451606449757421140675145346948353782366569162500974209684067610100683357617842751999999626062907904143544457046743325291599072626775283514778532072310265924178899112520430694099875972707921558208715324998997029934671692487147369819994336203278904391995682997873568539755808700093767786199472033007963834406993804430137973411715416824945755207170584440490273398687074990221991468831412493580672374913896720743381872525357923634035409222675444717123709698849505979361380712686306643052670708075538068267600581594933352051252514616588027011936858357745803389707513824322247692689323457552314376292444315242349761444666139137588728345619279504789768082834978407850763157456931198959027673433595962389112376633587478916357949156294627265706982230765874786261267185461152081936944189819610848534754035780136034366381779656051455321290673522923850597954741145256985550845759729749056247570958638412456238637768823708730048927406382309287767682809933996181347893412218270319450474587815548835726458369311487694061349042170339689623028573107696540912146852886188426053946553151287175200779843625682485442776994182129207862995932710583848880056535670693477072893991652301570316984520224982307506426297850060467755699740742455036792231587809804592354270999241186787191342716661640765813291759342728031502222589410974220918646359390098872463520139088226379268117065405987788238204915373283635328701813756451311472772755907774841822442354647388325535195932704071420148490598079171256387561678369715557932513152065910370806505430564811688557514361444663812463241436066039842098133695658390677864841585474410269490533991352144245688660187198782326284070464830498701927646486186475550981782475178791865409962699516046955290398448516467479439604964299017530438579295547150703082348336922304780385638661838552948110400384337871216350236189953571809942973921536028358162095580481298138868617055719296668051273376884268022017458795089362519556713954689649104289265487758109692872176780779887349871400843603620130463506192699309061395175594519993624802987227264332326714211816502051160999603847459671541014392278113931214914106190647455141204659029787116259075699565601789322494913136125417859607500302515783611088954851836734951282657511581793881980124312984703421000529149922540710529706989580275906508176767235868276975481837576727869137885226543612763287759183224884792092957979707634736987230532441804690361231698177082010274397625101669226805948864939640413048176658225241540161125522538144515680179721506929802421103184651120135689689823357686493166478594091730949569218829595983056725204502178747944481552641933659663659475940621755033401605488522014426102256972181432585546797535291516353208261051523484048352302725896046172104824504941257481698953570969502746924356326163335911803905856936841106020194700170328933664026883739305869866352730143223275535138378951980957938859836300407254061447151724188794578736006085604951290184329466639260676904231417069183841582647235409734356902218192792617910218584770802936018180698479431282090361095870107024717023645276197347385208249217956393028733416348783090945205535029087597441096641913002193000170536249087630393278852524871434937251961918681957102872133656177504190818140263900403223210995847947634884316799896102340622590033183790483261753249983461388219768183275287878299399990116077770435365335198743632796031422952939985480741342705763824232045484188660187746916447937951460066996476195588191977887520583682207608679665849084836454001101711484176653836249104598028698301460486998486525465346655373270959702622750718139738395726479397157911410991886327084460421546596272815746745128733307324958740996618948327892228536563632980594422674959216443582509006148867316555509098303453314921201273398344839548663892891072047710714569106248162513458801524500329896132406738355117471388448555301178492320403814607257088270633905802816861645944284792693845468545471666166521722793904312582898463408953438011178776014863816054168984112559072727724180435512120519456423159573988798932028972395147264030766576038869826544752211810776564139427365788913912102315049964906786370279521420692369586380760082687327973837336162395461273107702066536244772602498799188964257627481561121436496704651461802917713141603654865946905555502335394731203523666623977860238298431292247925345631771754025476666117430156261481472735721966590793552648399670605345249303579487876536489715525457010911667302733036802151656350033052381184151328519110028374804953610014772198199871123794840404671855088134561792936779452811286331863630052798120093119659848633748452529519051818099642780156043056943128437162737941016092715858272422368585627720338364801669476278420184014986439096602046240446652498067008315167189846855209953060183989010476855097842268490092899455994048260165549870398349022993501707972349946003368408259456753180554465168994449739021862433369765945171263691614736094320030825640118909709927122547168146518388206381601238675370797974142507166600688393463743988553309449860640452833962900444237133570829071762243431949911670578876779430121456604026959995473091481669967173466913779665221422286846591549023109836788863236983200328624646732667528260212020075581317467158956094988094615485631148686305854903150105348241807270308452262248812176505113091103196242161200005161242562147826266533056232726512467977985873199370759877635983186141326120820054026029988741684104890489151862321686912277784000510926737692316304911825978646670181096776983403870211587123844164431427615183781598593229259565574764069686177156544760512119349567338256457084881725576002742861383602867381132533750522875244240728678250628963840959854808093543376128313060166732456165736676218923179615387311838070162600021999081148773630082581625164600307490679717754900725287805532749376862637447587762905029719107094167280041398750017069025790323113938928973487402692369213804132783451349031373364252246449488657785483466095738235653204068765883607485198231547611590675006289048335900707809689417938270854876970343964830244246525017267026355476205706946510500878054174418111133860104257800313791362135231769669030284910620191441917880401238000140146084362897961440494693585035462358461329891748316769622832062709153584422316965247178609258495705872231868369821359674641059745947563625391892845613784308726995416379964092892940534734989603948644202670297579090360399143390308460166781308623170682076136528394098426652827722975098545009587694662539870050876112476431315305243824565344949636715773940052436709387644467140995222454776210617143574040797312905163375548267611640061341074408420213937059259467180383786842919866502674551656666291931173770110667121268458696097446311428700187156355137894528839717680295531155109338364074689479703172679937464317440472143776761968979499036640617203319149468461358927547365449884288212745696148148740032989191226104022384215933617498384326611748187048375805095505917093114321814580285199889266904622158429180807773806573358770856691186407671530888121275605066529153057536137663331954630632591523828875108421584416502919424919610076445397354440509213740257559799315592729772453232528120316998340980366147576019318413189261325395660045587168458031070068663910386768672261568577486471199393852365749753147547238116742128463136688738842014803190588496895178036238509763030120812659877019815001496126808352178883377461856175717888876951934270365398726586150646698942926239169783958486541573930184390784170717886963547513895936277194195155628221860914212620304546280628858629593919279173051230484784388105569275034950067378626996413871444261809546638087650512438453461670254597536251482732848635033805282013191074635993203497860013035774403548829989943170003031568424586766689239360843665481343641048526752165166410919967232949995208160538004970348527190934261085885766083006894374742219258394570740018972389613835597178030580967322732242155523825450053953732234223582427719804760189072809154657543244761469724099901199954461164274297734330927469458819281012909617315198197815425041167019414993628883480736203396273101499973829242136752373813536857844845194368752752133433753434235754433577298709523865875676043009187573460425573065287612625185050240510584506694664597749681434231004893944312676379392024765528695630057432079226492721500336177113935812284405753895897774652682144797581768801026339615975377394943693337553829929227737545480764563358567166263451080346697977561700988030417527658560431078237472167818795835642416606509749028629951183748537626239862303320549325076133966442840284155882399622348750874697324265445263132260623765505599865053285926724686907537853235304836726249560837682465896955565024569467971856352257776871892298827549316177793493979403083814776528328831665525313536906138943688139748781106939392310575356155652770431311334179969085613935193405316962936897101972118663168272864052347121851558376724301301225877261478353615547518410581796942525504276010096015692591064512633985195894118441794000324055109055091921795192476819115232945339910963146808876805882709941476228815564643381922992491922290773835309091070816484400850899173278326962750298126245743227598331812111515858056162573525561294251852357784881689301763168021674622544198443530548030535849651027314559111190621759216725740956060124468712864880100442772213676053136180481218377056891588695907524630784330086898556715102589741515426613020470020106624015992225196759406721789433951814866131895767011570431232708455162720607665531498659493865085750880037397704405563202170312403827095331473245255256496757958722161608881820999877180415598617591984873988911727645392218917589540528094138592019374817949490357467153250052124655114562882603909040068462678707124564337513443926833735576214775024075392170123071869129229702878000534235974965387239290391573846910420048652720933640175888630350929154093933971084590628757393631363565528041092686273299240701709705068070916554731854002149589461043395098283567805697466970228648277792248121542685155546941014096640232228954526090431653567141386938144715515256739506811916420062685336511299073806433169299520049631474405230504203995708268205104560320201998871184027369543964085646201048297549507675291006234322682064307438776731156455098870557102440366476319303914051312225002792466180985343704697617259543982086272391974175903827014506084543565652263930509183839787438498003591457272663308433989340019046182201189995927321063901840531126827294088739863613861970317176652630146844857215861625284963624170237214441097646530012369987582779749487894928078332190689298623981674604351307874931181595763099615471254951155415392248233962187652005705237696205755689995354539612745722302617949703326181651981368787436446881475592094346621407720172423977243135484392177924870798431733316758355548226234726366248948784665352992510821371072868519020810182388062705491589272270558849876714170498532908269044021843277637659932351740410803197144336379084293082922770178983333215966421971717052397761089305048163220053315485198991861453234508630085913398389599720221129914236027344943329299820353535257825907677231983470341665756850338652600834852251235132981968688105423529666359062304499688821770567437243369154216046943409979261061858429732633681632985225648196784025235898506938035593717306619674871173678577697970129745200558468951065841390060058322094606420873228922902956304480490001994434351702958962918771759506846817345016801886212142091796706845764918491152147867449212969335660750345541209371217066954991993984569674781961045249350115942963246680278675423768922136997247781694015620407837928226400875182436092265963775704057315595708338334814315004019409289814574650454862843561169487185618435226640660506745654164080502625591665615340346054652405726722707947068957790718217091861660889090943105858291102505751986722890251757876097140964120181559608210607526319131946272243136936317137178950410206218574814395070386328310863785384415403472184874714345510805696207313500808515472607979481741157025522409766328594231185604075267805967459793413242385024831871442372158929386168492400404989059186664600075551167514113090729213706021323097471112847933540177327228722425067575057954719763367454654459026863149758037863979396976702961490956792985325852825632218006179310747626240478520320041409392650186240784774690702792485615108172496400384815620545582085172073336571471595637334690858787353764533888985905845999819945780890492553858633961413981263707443744937687067933227820043132847335723139235836257834871025694724667717679004178747630570754890515117072327977001702752507362413243738807175501434814455718949060068716532281805520929473258794100838708562013134730303609694278351611639695845029071500903940246010741602332441129499203061212462311240095773728468068941015848820265847812325261408120926294820149174623541453544702678318563889114028923306669114942966914433590061247594566326637860498794389095631256768707033576423036691570483798915862082992835434601972830299795500412103751323965418139378767376040166344867697905148166120356989606474067575783104340199256676741202249754435439441860282842984720593958482994539752894872723806560470912955316495357290286561466325211242742030764341688415058400054363470044095977624878499506298175063096101478307255019189848164531246535520674152955410323400662854987866103331641038907505083617005595447064307664635462381327109193509792985004458209899403080139536670421664802198029352928486185264099168351127394954998803552631575577480137717657816585948935778785874790405648245192202661807245656082990953289319861924473248686124342236396332906771804192850165706557808211760953717026117184035303067033041408723920978562778231837539879586951697762426518348411494363229591537893870663727854232522064778274793661169338811450485536780196649752062213953414424648107531459861766269475484609032931791663850399364061446457884142969442567595288130559744815235067420863668952191199294975374290095311531826346554308831697207766429397512179409700330789353468878727023724631455159132372897474183371947522570717806619736729995278785500818095842024205664190233833157296628067611665273479223130954982072639516155265139565731054092534622422999757785129568460982332840155817494827368165919484912032984867509969219825614319934872741711310915270887045239617647960331181536390560391190854822840965844745726695394694630965582722141876398578331707788363076154514980470975351351567095770170082144832613177626481707725061494067739112410517740092630265312710534983754961430305806244432750680017243736187071047116038457465997675199966675319726368253797615091990962332336564859901767920528512172395031293619831066958731356635858119302843352074156559087896818611506963307093285761468572037124573311523658001872465791649706781945325458601112655394074916557868705064610362917040452314986951287665815118181300883886223422582909958038970759514970258640562442628662718779501839371386373884725268036883387288936724218317781125006956024590980898936045760387161446938932575848743297201152970524296730617134480447490252113163728395518058726114804787458784613595282054396304675855695661956189509569850559982860259320515349464914217688560524759820280540296702475450442098097807282008536254667554857702431628879156650985443999519252260366845361712712830815052096854040330842907270475655412567894293414465902769117633610510649614385845941790494999175809766344860372607770557157100861831038782898340590134636757667489350477451026164551785860489454569644819269072390098679331478069333071978730865345124319864144290436916409481552263437627427046919430783562629949128273863406823232603304003051800608920665905248481610138801126962354880242861122605296033487263850238489674240198278738704171280506707618662966616086121189688079419839049735211291326740358114133039249660133345772107654296817642516238340773203920514000272083145957412405556803769602205984500210155381763622485976914899307369575553059967291450249634394062054382438421943409070078309843829835320746367393616549661426887919109351266767882731494199659794682466918856850876657655805120353934718722146151256687051025406399590238783823629220213325031080028044279095862418918902871957563735464039513910883033698342487378725652037936873495050827242267943084779403732666901992298185777766689271815626090999253984591648846333550385037493887804562109329390695857414627771073839340674810870308138973890133828272278946670677541217417162888755559602467663589871617092169013412133673553329286418512549388083784179529578662680261696502093704487715138912027120374770799859631080316744150982661669006765011944632737436500824566562076997912783743687864969801754230494793490974557568100774440693936192934535774845021303841110428534008270046613258998471823079684581210958099868835633517824034174838512991686987861711528960066084219323899331759981508255026734593725626102444367345919248569062381454455935148337848503864326513836663287065132935300597471563012741846207759068265389388531852176539753028780009702878496255814460245075260670300636758859442782683552866628852160476736172020713721809785983829690612441825321238311170114361544364292585208030905356752302501348564724561238479696293291874062238532421533931400237239724700316213232352350038833374199570479208962944341252243749852737819894169922992473977096074339919028485879635062870336879657705259712933047366289789147275937018830790573540426227195819103673051501543424359725746315084733642741140703182736959793124083363235466797472219258869141221971984888510768914327273090455307097287824791810842638145010615603527547807351373396041427440347261714199313055759771786641140944870766822805426658132311432745683356237970348035394451046016647651028668362133165494085073352415315102110380663765547275052376321764847743911771952438406205606022163260025899502872854404780342763839008070906432397219047479014641738311775915748278514639978699959084615042004580035328200861698380730161412481779898767928470212213906145920713788578755912489649670226274078881988484238207704619806661775911455097156689938375511571713698351629458717142247529206666129111625364846874337129379772112453301073005908564035987865684637613987724270051485609316373717133012023820448580848054470282676264669576782980047853398388409080508155270140258884045624449664087196073243207878735968625283140582531471536693918628141654548245124518723447735559517539284766694624547253162878811102955813668311261112798840458883632356544882612591892086549577747467544409067823725361255724387161435632685619633244442812568001169451151284242748753632795095977078912985268457381939869067474835661854516700878804804449345261013200411285987257825043338798316703925524622497340146385446606854060402093896413443710031130767559993615033207964481227627363138796082524664088611525297271641093842455661813903999220302900841507709210804972982289338421822754194902146534517842986562035913807858469136628576081876458135226360211689958127507420891496061091735806446153203845169276112534232760567460716938142133522624561190478973141485934863698171014134460022515851409744097342479522393208362187145076861334742260264405426398027585348185814927080510715316767586388450011835096025737431180364601862470576635515161299411362286154388694643393737966541449714753388494436903765559550517426861585749305352211371650570158361214501588534463216035835199465259631332821373551334132342089971403632725166671392079527045099488514384967777050794467704326119341102989993877756344163707446051060008157832377643118497410857410256410640836807938109552486393172238599207483635470766811538892431088499538957961478460933240326371446395881149024338152883904364196595994546276113163617225851883275145546053944846120817641149318457194699871315897383233775971043789068740244882485626397767245135585579822218851308606313918229371852839570123391844322211209691047988419897825214191552648606023782733530903793901549436196935193484361131282874958669159605484203767160887710285193165897950505761461074158715349625552377863459966436455188938552655434132205538946069841019991165713674419760902362258644336329223440276667188141611468034247649641315407292601323582261352180516441238890121666823959390985066392533526967700577571984713207112418719009077350716344909171224471352675455404094554662675231566893618845131164226310330971705736533421156357538083660102834359768525081547589755943368493857616996957076647142442418376606704317965884036595958371262613886318687673685948476505880761642823058219070798687858394102697398983022523442207334423661856401123289304079136081977710113875447538972074932025428108923872550301229053347612959517943507636876496488339962141048332931429807808596304223588866676763091572493895177729897210204892050003619235821689784990686140469999804463937141214697814014350401683487351688353834113653547347630245801043626412883061946445690002375399699575227094562085615795653895252562216589152767339376945469270793840301805866605368685469538999306001097307222237484669152669138753289328172596310607115622762128810193630326340133709127880285054777574436888081533479580798991725109282851620465266017754156331370426948649812204898591671957986832296644566436787229214734309892285282987964694866761093326135021290001967312106545607693351688082820935800331355036951872505664851108107019354851893224159035674182778434497618445984393550995174042791073571970514303030294407047544765523122962829249088222422508346831716756818649822840162603137949418728907855315166300721015475299725385401092892500387199792645197397894182162155300735385778831207494486040165564306799170718414935621658391965711473494350412683515187015741344594371629915165240791885601881739286759405660625065587260668938945168453402903035725563181498784396764003823716824340593135116992194357164852247990253474534345951858214716099411774503139326232505253336031764471054984283999394802074846990566952179818006617725136415671889306716987977266030652321497547094746359953485059398363456236223660334353026930990882796595253187719164155259224031246001113669177656524975611687857573832101262779220679846426599937708576110629949334819423857700368231173237800232904706774147980937723876350839386183117875755787778996972976394313210752421332497324111257056994203216790167321252323464474011037542423047472379879610353244806331605751258368329972881453419086193534318935134036298836932873601624178684813286503607193653285012550916434414988780620803224935300370462683553464695573445855468533183149633636840844887465643601973821789752673833615920624832345703216714135071986426825327199595213505842607401828783811972274963692669478163428661941599755111963460752101873677098570087616299214582377838718348073739398573341902325525285543741184893941891458468307354602209604642529464161889459002087179043719862566756010764706058030978343406193534421112681457327635261497384121676954067415944897009754431530272778680074927253294773820632025445321424801019577820089278566834610336828301734912080888309816978573930357720446213520034819509289352458005461201342296977426520396483434474949446219272819014467419050765554857515380891683392384772415571834547719972390409691505565802761237604724120299796172022985880843489679152681733142004318902898527908284398361415721371524683975862644908657730388042856987510217185344897814863636879008846526589304320544354745323087842403071732715923683976900434969251875094838403805241230832501388191850861727469068694880777192991482019002959406630650557620125390445916764241666885237980080123991708436402420106903077667968818563664419375098064757976873947937479199015050235767450447930043203383173418087715525298871717744780656461891744537757481993087406943904892689457430695654892334865151353791452414098284808928394045048176981813823098390580310784617037180454159448348529654249591432351999843024234244907941761227252887602247117483657319557714639057126079756515191434890084670004411435547675408565327405377940319625654042813545897752854469137801789575223340585316635416434327181715311816546609184458897868943591211775698749483979156775031919870115864563234174463153238284913553123632149742509960286963915635547062745374085403119930369549577238538636639404187289569021658759003194722629281613019163021127578594751793473044031548912630268546342165961171619509348493567094440156711903304448947879303645550701433769595551268921320051507650587522675377411566580916324869391110212991684567680136017686991857417797840923170877738476400146050366650957798924265129387233770118511714376539425502544377221382362406686975631155629642141358245059282681362768660683987009915460520662066570360748172862564918566503302042489921522653205226575163429058410405567916232711538743127067086848920626043495162676863548689653211864086230014430528872806415414562656844733207633014150604544687003492968207811803775598496134390608331329261533012625906584728266953382107476117136020460143726309001949350049467497130531813352986620579174487574434471788584235018119626782498055603869185551192325091787302519469413808003877521453077163366096296711464519198588503232879920709867893817548203033076564870547442857981462714051523798519909645662060283091096167870054379700690084507707923892450736513788915014315477263821598664285370850836677064046754528357641528564668756227992874307931530402961481763391691495976312243223848212228551718899476262922466303434866247636918315573579281701256842748810267927075601340864664397113422950693970148277788326031313601976301589675654049727965058142749484733853171567318588857053887866385645198133708521936672605079276127341157075485899459358260243002776866944699111683359494751209188549246194880131879680375185196921015191153742992894111787350247512896083027808950232998105369416822838436291252796693683955319050896143932117693526758047291779885387048908134174258247737171364448407908298620536339021713045228471004228996796439121036420712637081168507885100661251050686742877954600052023676021791293176176529127335821923213935201122782913627181462561059114522698308554674660936600772193975335250433926019312617622317175997014444175437368320932859655511083541960123459324211873271873839600986569365653451552098631859435314815525826602940089862848345068735130274675602504080897762846490614824890322342138001291195836609795335715709062575248461745188978495660427682966054702622560441309111669919166983876995813507455712813334645434151559033389251297598825383345162361564505486101037360573165126271956053995228761728324695916586238137606687567047485311584253351090825624520086201622132169487906735869151469848736173970905224791698298884033800323064747931785830210707449297213987506744197207169728440114989903862290000560781877762211658570722362999248029114344398462762007755622175082045015303485941121138070681581719195067856326953589171947436113690115002751679058826011959366963761438843284394815432689946075592676798979194017878735747284840545604384771717304969795979090662630963526430500077283356907233549802488197272637817761214344119814724818993841400084266004933247934318809732566700796153789729847312015814355264471156212857788431840992313816077439721804451467866728172736041124730116108171122866175924335426161203508275992296428051205198510216272350778834945743806543652428515976559089380576724126068884303028795684622470788341268063659658663469373496980433255623640808146483442148683800259573033985602595668608459372309399506944243635454600945635253608693357173687395658750660289672614544639764639485264112581923595604252844868768925838231904321060429765050751872678206912379859034777633964697754310443935483953694900558526593508898181209331228421353776619034671744595577263535793997367226490541775897970576652475685197998158209025004126824872293136207725150390525662063943393467721306490437742293286395827871143895096612560937851747184235703324630611345337286081582001262421906223312352778206294672122170664899028675452007781369507293761602786848333432090185227404636341435536370487777831464187764077091951342204088775081536688882776229564778087209609199528836476562099169533260367101386916548976013740019526195306086193647518968623651081181228664125816466961996215295403687338445367022461293594366337273338855933358935077856519322689462561174182498661239675442616843224282109195106399648695927131374808321077097102230940202398002104958055055805907555940344625111063257339201250800367251736284916763079002777217987298979218338493418267471013325981271833705795743768591721023613671566202884266613051721602305170589796035200484730274330172921502170625652027084310530239987627360641743052628773594933390799020139672783090413845942821360583370548975437224657228635650249967870107257080246483505645300574461386067941104987882037970182078538397250566969164804430712092737771753123161421086835693357046973372969973548027576662575721753082115119411647736663235533623261500150524156771364302405871816632257427619439508633351632784137824446440880337645855658205997702943169928543947547447729453003282113682290812819272081760511464968925391891676017544233483043285273095081906616828739417319480858225415347431894469656114362804643571408703647123425604215124349514042745423697027307623883711857859648099330279155914342362575565132969991133731501692612811966746568844908770169020120344691313298949403326053195146243688311177927011263665603112564351270596872910853581449074472314804991477768560935017513436536635810119402129488578792316196367171011698171291004787152740312179202392107986768508616523895198287900032845640560614752430488522797162831744201682389130581804045319466574411512906164196494849385158566676570653320717817182498369498800620283566311974295443224347021409101063826004654752192824726472044792449978038256457757964774225326453633944540433440618199514484729198219372355716267553439478675889207946878513382934740025051175183574771280989119029769452850940693686620968160473551463555541854679348897869468652370535400955212890471637398766480701304373848368148639358758964885313423233101625332943752693919632216960027703841383033021702844398189761435928312905028312073150326649171012447554215888734686617713404143338054251428425495710702997035078973605869208740106799455910263808417750607632675331763817410416345537073877974661135190673309020642524969840865099620142331340207559746522906161266179238623600038833584876780124588217350224787184065076620572315048908275860508576330865443545118766020498279954263719553310297483187315478237164829415411880000128128593724260435816140533999694547284087661929685627422095991817316696413557140620223056566067866542124681851736811272597084728058502165646411743845654180180190178111178442942708344638952647073804303495776405515229030763192372730434312659939948605232700353525591423553172403324048825541376275152179373980187973273610907485774777655430646244657938498735660837999022706145174393605374997092497801657222624128285742826986368836048775051757825118881448572576196123737904752183645614730225977769808545419330339455676877214177968926306239105353783726814775788488037447876589344122572630517510933093587861765818429293411798220164939034138186188514572364739403757090570283267080004797411680509358830085237161629976867442881751309049575635797383728548193916220713786869918339037875255376057742875012241645757425157733851562829319206037800472932635869975882889644006161562045368697712278122128578553181155438177256336387453083472327518284113968637406516484445982364924469312684021912314942644663021389171071247317012147460704066896388935477932476935773599014645785522022010771347309456573229644731252637816011127437954931475551361818798893572339410248344500410000336838985185848898969970262879309663003710421247130860318697972801015640188405167240686096417140647165782251064040941972763700703568705259159128445020188255126696208132734986698846482706527135359328343531132144612053824879766488968602749350068579434811170376490706864507704508966655285444068320741139838645539299322376162018098037459701607576923781394338096808819302302099131016492963403420379919115722172103256689021117558911527976513528107761812312954595498188605533028270976905041993035675528497746450484061116245219007923964203900526035561478038828887515447660843319808238923065928693955186045600519771691030674239919942396726234419006207648084430288301866456598239416021588339174011571407887587573466350636957012388435818388871522049315474804839246632565204141860918292412267125598324304859709384275149322724387648587012028676421837560949836363264730849298063465336253853863985461266731001271648840172643190370036296195329019964165519991854032880049689551907685575280751219963414086326405642001714991737664430344060377619535109589106906437266893134398343008608552290841416943652169153497848484375481027626612591968521766084680547295752749462359489863908439587587515464589608413506562534696431758071243101310151272073979618384941980498149837789146453078865645813431662136115394361655167398096210254851243402431401363171199508814084528515089079450757181939761303930369032723515371349384006807967901693887444883891155085254490744299164977950779360663683961829769503523471277806885530249871844729223055018651994698183367903109155648486194877126797116035886101796285174477211081449126539323266209463538214222001155635061908890977970871768392896271254504238884522857566460835152320209128538475257568385614472133388588562944119838007962842902593992023938156787907284947244899979587477427150135101370415518121441451770593943126032315462614526804249739712667505565260097700373849118287804615790498425481718717469826945376167209609999891489592448777323089696162416746262643650399634552944808118801811050845199372070107474356752281329911003262668126963047140102474444454611720202491381821936283429946339865632987214461764161813783712770652800375308567371113110301766303659532779313672418704944350798533025564285964180936039367358929069267630747350604785677336400240702316595876584257799853286872344501938810555742671846108614725649669299920538175738470977768642802074390243416227091383218021519806079527398191426757319542669129034972790165295868019448802049501570552319332671974923565537329037765061796689640737308628796721781993920039314877197555325395664780927222079177261143655489178525363851757789863903751656544346994264540318925319188688847265830842368978456065487137874387866948719116427375913741541438369775280838420911356647254860439893010038987628506711916471338325100804582395637914008659847856169933360199018065525743591529735469725198420581053378684650696787225808862108374587302907093806471188495334983981589235534823438844726614253296564360094968054821543905681326556948326738996353259351111935044693402698664420191119835004125648125251305909543534437366708242442261633667096454429948753239643305438972720379552944879230572481001288997341748895077926924358983168427017212167531079785880462797480313936837358508563720252552996733376118721327114592854860639282248394277669196218797969874173921720428924107513489168588211264787533660363344287740612785104784412272436814163098837982458509212127012476815314916483978743964810407020993850363988215635355698917299639102049871178588093515274423089835529424427859160709522863774527967117491124157179975278966329731400972476600235810918744291648381658139373724134503886163126965250769076940634996485884018434591499674483413757128210523041457056211147971524116527669638340141529361713176060531192785733240518706996556958984062254069540163620223129192453544961644808350618628120898053352092496727919908198080424452132768905971933084355218188103098166777656721876552260890254880050443332082008206574215508337037982419522039688801249822114966784473094384624395541436585856899307309018115302518954646405698329440382097659403326088359493264867739020925833857464830971278474748046534204385093891306827004786454164217092757215151579934590603654604203308155627790419932667438505741160161287373755729050956213634464950656072295968475791057279121879612182032119713278647532547436278716034256975305543162077895590183106518582233906024292403763477367534817277025733525197377806810373868044766080958728065264866351427749853302209127194276701854863720860438767607851140161263250779658891816129701404249154189782080252868718604212441883624253942659865426113830465892384259291046894979138289636236359307232677981028233856861741919730755962433140994777927353010998601988302675401659245306379522636983948632882308363157198143343908451992337747839801986034867862261848414956227374033797055568775955732725940094491414247844507145574056723171188361801230801587735053429489107324250087208884398505897055966470040007471428807135562537581890140533005332569040472724457905050946866549868717830211180150195919678894588559318127130151044696448518382011633000733715087559092898926056186653415560528804904396112294693600120687033096965529446854931954278320590678149214991906634794105314941438369715425796994687559554163671194226418192385135325932740720248648197814149515573615692230686554198353733672861071107659602931008856442152147043269980550254257731761494048197580204149649759405138190496044255291065199633249451232014677893603828353427845676734005265866617440189331953048527752785385799884748275614234830271032360315664717527898074214693008241181206607685732381480964967251866307608009945673554353848071194820045066727594225493492563162516826330325532703179623744829355834805458797760463346975771588894938614480289398082450677169045803818716519678242461728285690614550007673080270361957733215710631833973522838672073497192637477745305696740133741344628245624800659491730202504133590374742156276754726781844960130682218292398979075563487429306343456816135115326175691805112601523465524914734767204241877700327097679517818967749923502342929244478765754528311372159068096732294403062387496337450086681056503540049178004881033710019104822539027669385048975885805157471813030691236605027310919935789732013332552812074309209056226603428770271262548839105633077681820720849003994306550940459156466450523319533041461176568805536294750105038747150321743195151507222891856708252476545788691997451750773385126973276558778547048343175440966317621589374841955564251601553979194736144956982176115283120622315401941642002725364750457596739188988040390244444190944001653837714190412165389352430217356769666897089452306540395641640020370099335332759386535523311563592572296683353176365682716703047450056681628705618148213296143428812973618424145848991123207421304759902395452405310378515920988275839858505189335599390490352195055550592382447449617522117947934835718663204898587778217994755775116137734617052737576192470061183377872626427793149546053368467200860226150239392022212131095870569034809202417455157943153268466877790372856330513944669592929288956476997627566457196172108202536383825034196556966826763204766114352653425666688817539430067892161337717102452315000802322413395405764490586639411544234373086713907439414150349613974397147744853571590666430362173235691002920452202751113819648236960147867042821126862021680134722921050661450898418030375794293217042170362607461653247699182733270373176947634101019685678850484184670263735487464629293324137234976716943452404142631515844576940642642280647470395665264509735031778426596828737916414945228246117304556817595151993759938889700880731307225440937221907034427219814625155303514653349415731436784057646163650155910207642844664730374187893714737268821776194665776294221169351263762543194486493498829962038056925176352097421405352982993444205039949234503752643485483906764752166597928351270412246244501104026993773872106027823759012759497829863594654272884289154291425342607210093838532648706973919674042733923629881924902661023670095478265798195790177142972613307876590488746277046087490428411972359379598987868969605306722075856638687733719128350269834408753038557249142302988851359265096660679629575256034002980080410385265299498891342803993247079019378657959920868998293548463251473378466192239241358128439699229518021239350770708846324820284442394470525749012123084272845262180377018597589658268647367955037884158667661583220870952957636513589900998035814507617047757943199838396505275172698047533256383354023524752853334041072286655968901244748393639878274115901862069763173286353664704811612225292348004144807569744664157457708891240103957666885964055502518462473854886401441079988018522448857274790405745637057686989456979729176822803545831489621681532663924463222155858258778177157492168558098089968413421464921876111297618361313644426205837898729132098046040279938607333766681106459214253945976084081630599678235124731342222839728896207344961085584930592588816462887267685499815256614818006371000573886247505076300646154764755581429827847704820164222594526889725711927028395150843133271760691297573690918464681068906628992953153599027121635316974164076107764874645143553118495747678812190860490175719260359711813537042759980146847397364844170308249075300441143901418239151138000999090012105047762738939601163628578257247228567748455101960224574856330174424847666719945445535909732269459216255345677656265778207921444899812035575738096017334595397095547111187576382263957792851232004645444527824739951650264197151716774295665129163628269910727654560227716385168617848632730644613021967031041534894622699290564157965212948185726907434744225343985852838690114334476309445788247008116031066764573027864755175509870180867657258616531844294247639394030336480449471750747442271514660303874925238121685980481165784278802070522518794871226563487967549341745483453849503524688513393393400331083263748031117060734983022559087476935466431623839982831142982797364835276880847975820057385424380071773162011679965195809722101824485331053307855823405873295114086592345433978651442247471155470636663738881133285238005282863455695539744424883994425304971249597918185766820448948243293390032992747402506771169027727494716397247067262620565320179879411721686652567705760030754495953866140831970774478571431278783158715438959073471300238899716011750640103301526209467457731885394241637308328199831192751649790105472976858769231264784039640674106273060212888328575742127191642753558503556630972181727033604065611565743874411900068786620276618619592977082501273213732250603069018274834402844489755840431085022544848479766263110897571097488028227293540898157777754550680908248512621166900527296197778225800928266456513715381003075245562998921688537550447913269250528096964108331027145834441375734716432369116701541956155815348859469008177519104487331638350453244609303555402627394838651083748451664158644390434024857933033831636126995811744840059758023929251346275632929214736306073417339214706156538324225245458274461273267237786341025142408860119586944165508895420882225812650089452874931211543072241559756308279257676580673905711642752783583778690922409358553175658835566773093950221974635960423997628703205659722296324918985216403728222590551311699350219490968920432298223347091667754603109300245635923286248642970654475691369228561402738662552498480127023483884948485571152946943559355935628313369335225925132308210237135191859939003053757546602711414083109794821707374667855365676174158242219229123823932673718637682976400775681834711409150758951470005150027306109341983960726378171497755616680400442813352496427432581360131909598790971894882412732938622791516413777623273645216028973230722301469189324083796353454850981267796289551435510259215118551040532736547826661109812309803682177374255012719813924364774484328826938252413287525988976869728477572827262270307801461889877730101289949977996722089185964978110099148517515341486869257833700905241526479748982526895142729154674599432503541205236965821923624569713542016612891739391924738447156026918631830436469734129637576174246574606371603342804161791329040509935602927038988494747149450345389857456147577726089365070122368503877115951186016779357645355276774118274970609055366079833708234375607679630454331697920687881458518331526248836681746066550252991407957577845296519775240171126116144755083776598219109057379627053212889473023722451325149443706232280745475302999393440819518925414014854984045797058352204163377969427158140238355054248598427510394083933658488944598926880989299393114668009441791867408922499096338266093354543931926110661154838734479307912778963028638432071618310173173151043212164604643597143808750138326065394998540800747428449911447149512478098477252416647604921545200505188800423669685870753800224072078375770188444155840350103524308604282649792768506244843333784540378053354958833447645024241509845199843364764038851573928932137309519618342950109695087167462814484863221415539377575993258772325036063009506969660799145389193374410778857494233694257928566657501414531510032296449385681669553923677396550859878427160335426055168452948719717939558695498779329541627290552524001668493063305387760403264144690916589484090818118450281632047567125889688164667644158855733238255014479333988403984059299169243775668233420334752101649016570414824612536424570590553295022266314003689399024158105786185503184388283279180246346540328941473887979755935639480557923938915081356283111748605063949274162436424240951211567614462856734978033575261651653629502992720153732293236743012580652748570511564561963989824988334533182110633318702563987637586629947865659832187997602362442161460779338287246716059388850640732207521611088477098500942629279933374052036839202840700502390510687132039731379648563184924061310331089146575598702081760912937308242625060032777281290091161856237667997675540078572308966254467801260124951327099262996145430183553970653371653457201986994581712560468622579261676951102670730590600065600099784545284633027929256548891069882785952388854737729671288709390962796777787613463361557124397814554498790094944374432704656263595095602512070281134145486126704633475755835743146007226513970834569878997055770356620576239875035473299672741782291325082781165204228618971873944935823621433593738146718393211439627697180600910724914486394202649347994820629618080511903785015008587132579256851245367713220715362948015138442647840649398785732247897295003535838718706367151389621633239289199352391646059383824045588922753088454605048348912177881811437632633784391049891714102176134263479524836053276041671105270054379262913691692843107141230752704810943401287974862217443790450480322095606442235842066212684986559591261775883259994380692531695663008904887367721781378326302261714701911290323012351102486608966754993329681269341743718042705678464997777006752687284280568345053874902852081432865721119840491190409801619099001169045891087597670499055907035867114909953294141824376562143474609247519404480400807821269277237770816252213471371720045252286422560527765297267587543939146274624517304569843731338390976114558427297174296765728028613590887794573683862844278252605376993168962778001480602380968406957163743210324381724573197093864009720896565910294966595689570300957843599568410627199618044287286447690773583899293565593502212032991292108047373001194549601736619134965273060292160267379412844803234648224004097785782466959403599982907907968639324019735776193867619660422170611547480134462540707017312799264186556899104407950365567838360258941112172669278585788227801107348440052833076382112285666121471952919246157357213926332534865987277811665979879087624767481292795029692466898991785584540650560743516495411155403464860742539610894479274603281327840232177139438957564998253909970789269230602235307981363226228467172719754085680114992037923891947376680351336094139964404745687719952809216755692306545742255661342254894433158067279536859822207434371611584376521179236109857922437667686535353010593244538886936586259452576650426131034381142722841907699800573059485427893003974692891336295597880665979328616570247234447196210355029371612097882825156980119258041100286545460285994712874922068279507987643375261794348770508445551362289746348051754190076742707978006667875018672953204640218900212334364925007913182463627397303904480798483766967070859977148985691994554966635492927893424586791306078384572458264989475742993929082488991339143994658891779666031950518532428568409632829716774421612250228471811664868103518144241867148604541969646748574206925927099106472296920593605393362999334067700399296245558768177975572887100980711787768244400958520988208927984153242200361014185945302669831447310774193536631762434852549649016876957339851212537319271019240315082141693768414885742836282858353019534935052549204366528528997499810713631813405746139238476060980051802209190751567479129263804794207453493963441890497104906199828342083923330268457497714071745470704398331142139944835678881731690592601538146199454214912016591169982854693899994981146620738852611833535015995363125751610268389217276630545647906136142216491233724913540552459940878966326953060158111518685500213020966058271560961182519123806649997234900521138445420626788750416789279385523613454466523925379470958908462480659464515604181981071288113814272101241440314718707462442177988142853392808673859900465828236030283630846977621276977379766130423045794328864335984013059211783015975170741741307303244745039854912882785372145225489061768175161548863600947003786616184479057231429472383724405975725856413364551469237828833404594385583647476781931250278929051209143083023583872899597661852408604777672180791261008883619838090273715363096082354949374208927354563319398058233487329327520732075896735333627513031694353076134233236913937287347967034827592128601471076804735322365544450401253254130705584525081709811397392792388001878450516170016741608757606976625410442262682974322842475542361633580884534479742849272329142580037949476285199155478417110897927118932610194085045229199888655533209362604467696879465502622026158852517185552823339182152251121886969851807531472963582572685604331877731104290015761580117042388856568039577423426611824187875793326089292738461955528721681753546124415539161416742366264074646577088297067077283018927732116420685998866345194547079905898065671104985615235871422700343514366713521293888038448053430400140638593658536562278028769725115561159006648330194127568542192969204572193546861344968065904715519933987398200738197894261223264264568422384021974816811449679513394862938345932422228333889627343691698999806975833848750814409097448539856738310157170482823358012156704773634800504251332329375313763323703183883674807697607048764003336133186753418223880652266794699906888219975314786800001121395871729026707625846855108166351446926626056952268405218968372355678775587807324932062841412677830684912168079909904591641085742878843703451147438061486557501715144990897346142385695343981002110089518389982196911980030667176325788078844844861807414683811302249575466976164418072861134807687693994372308883888705013441393502794762167201952664021219596011798739598106741225705847622860493488464107535702504926924692975152595517626996727887168047585144539860394085666257060883214460632193813061920525421027145032320902346866119686808163086053749771785347946974078952215987228667883417445952936646079483566548038480446032286882188695332486280647924330246630403399342336603823306335797595374948732390860491012798215001205769213743636438796353266353591887181666233160516476620242361184642113610000417956907047159839702584194269800567274705124685438928234382803527709751856331212955667431471064216063905610670323176145093034338755109153891360452503709230821840975888327470540383157448925050925566702901142207630534844414863713068457882489872871373048726181097794708166801234221289041387878210149857859115561994920643878975257306331087036164241766361621458809948308009443701945663754584540226099102444669577748830628892468819291317515231554848148702735570164271933257395281090157758741603461525792794452063991534705654268320645743358869943325279078058836829553652003352449530314164365730490216137452440366521840028609169619500429277281279700272265933736552781013918625017764604112749026959826299560156809282853249121486629334124380474932821768335902876496185249110513897101112795313092204443120863554679308248208885850808473827175336190245919818992836687689781275723463680916443921417191716311815054621504878825786944141132445947529791225254606848481914129528545388044323137869552010350058398267037363275681805397469682905020841356695534394196139537127842297800251064088336063986257890078500041112069374314166400879286038236832450200695666603718512554445497106217816729874008484418436276479399922545641829946706119162100459239056918018058070324604227716012969229422101518222703385061861560544070484681007533641697963118504470737700262506246129849032311205621788868328835454867302715967051610274402332405991394721568029505926584848277630809450562251541336466398408060912792139897520522800332830773044053479408927781586127055827894319493388439492793517903105503720535757360449859371024378359333252383956289616895455482731979737903922011378386873524475312501331745713698132697684130648685943240724395461707563969836430847499181077290971208467196543654657834524047881953649523477986649387299121685467296780514674240401351592637101221249787190108389922747709054929993166203191064451026422916111965383180544400886918671335102025848965616450801970755754879565343866258213863443526986633901190376902291804186705830463129249166905824197087087792332735608709636062373340412172891525805769707800999636290467163682640395220045918636310107484037983000699564739169437706954636746910857077061104531711098897402204392854666931552616510549262526973686958190328745155077145092512054228430150732413477465137341692632218189470999250115415909323412446888256696667993848353357024576688342300111584908708972898103588797592326466932568666251171381425829666651222390800036942192942553864392226855566677065128216790631447074017401975746250140612820214976921378590290737632183128363536664169630092664388511173456572485557608496209299637955820590657813961367300485790575170789372939931914690310047126603963226227760334546632516169479607365430012421130566199805187121648723126472544636587204558262039366687694852084677316130143231337849360448067732194571615005741682814849903213172418125236970947230860676551591759599794131486592897762229315647558171594806046582909425742872196310370380567929992883118064939811268999127968245844679341956117024384461581189130585242241606203340009933187022691154888020832811858350783342481093462631606345688156337890625293353996637226595586399599519302744291291424119454634512450790306028208570476001542347145749635329455757915455882758828601096957448890567400553844008679524914955432683680249279305482718648402423028267850197299610468416481818348939135826949891850604533511853578722515792549608417782052499782158847613543516988452213107572270402829726050306304552712079811522835230392259982284768526439793307616187789764724703709956304735667972650895770329458673471132788073004314462300994404490370629437605154526042312583329621915529441095688873437140177104456113264888795650633519245300179614477182104246778567251632096862594671722154511315080772798243284698451701089393612945680845556949951433339679356489921250303850043866228005089153116778352844584961584662627487441385205312600653818568637471963202261769680633272299932667282316314723289281799951695983552798539270280216908342269342772530815349325758124681572130426993271645627172950715640603157716477749348262982707545605882174959676649217086113248269758712973388166176981357211051799082456525835831120893055254364475700517312071224958705380020833688287445394789250068840825824678773613903862545401307315918461427256990671911714935610660951283536337615305299466094550575319395714506667676947385471370377433187567940054188535606835528530743041834803763038411789675671158514341505222513689399666676351476143650152582670997213503203462906804319582990124136638270180821556884324713250154749803594959087830321126118494334376283534276147115175650637776166553363949994818437514203615419023406054947056671779438427695364778864672999449610228021057179136260093799409525070449019055645612331876631573494948244113710630324381156983006310454105917774664422161495620910051333381070695992917615562227153913134358852134626432512957735516725620394213997915211443139653958208922574707636888797635766233212600135790216407921667983753261068040765590164144108315502478152600784578092973670830269162804755097843809254988010028332265013599911499994310490141279422371988573713949162174453932710321965414560246335187672032966454655202641062899335084387510204741375716839565624012700169097112713952395137638613618741178436760957066316567254846442230910353460855857475090145295999213131173320374520977308982982177712547730325927009249772290482492678820402489537277724719299998790141695811390446215938317868692152527706870210776998928047454527795328512832505026245372420214297706396699510005957736403098552441825243897494408905859377714345150280501242223524767372272661534686236917835791985399054268355333924560366713864752883829300807628973667342856402163463506139060424270784465492075652638576376228442247414689529533104050845922383344751148738260748045190553277516051733547079072916287073495963479617559182288111593173289146178429254931730475654077226791866249990112845904264859796751327745202915763004540251071560879377102659499476178607702881862579390223499538079845200144369129336360671246288703744638914912416071681931640326674971113366907821058802256885410123386693573093321474365746822724422319896308511482388981843919600820680471875847654362466466995549471858790071958339773918874518419211269624587011458873395391138425931466634399950118314102619408426463224944340794373642034588738672103072968524807251197831464736179452796516182579676413107813043302920541170337984235656502093223835087582994300953622373332457175375508047122175064974020789743208986315135513824726490220021162255671485694690082254288506681758595283434027480914445708312891126940625545778489839726779416025751024939053505557712439871195726802390874132737134234729864840081140011599353236332950949360884927449805062354790695269274019625269603924789435194800929464048780266900862177061622138907148470796039482882368791352489515031228661804848794268079388576168583810345566649247553140036850192474867771295261478545654072814754028123414797673208231248186145924577005607094595504904892098945014624717849087843184218094461624944371857964707536573836852509405943546812716089573957535464620818020736693869388851532380621639887099935054642703374542605982064648490544996619101764896375061905407612748836329696382093319686735870525517459974062521964919183639819515855035327734155915321511220050710629550734764491930617671425899324836308361747806968536967519993667513650354661667340560231436151147264677863558755354803533526116744708310268345923421589178192938783318370631861675024517391301262211792679974978518953273784891722930689785912310469510471707270725482210374790653574323550179125518544789111686180026706586834766370498631346482633652143768801225821933029120862669839979607112391896641360163799605312846774820622114087346560230021564131526639197654756406548681171353682806602799653261711117175783698836722999664351379026277234447276693209030434010345704930499062881055942457476844556309479958011061153099087615259841454537557645831386770638639443539678919874662051982199129895078485163166229725473190441057724984774664796460378852127990047252205865513988678491087837852287627962467106785987917861302716668005071872474658868198455065815998530201965641097132026432044015599342884025066656714223814533824645014556832037112487889881822573803790292190586198866355091145374537551862680347146567013216438349529496645612728005300972595510385945418410022571998752949699677522804299227112099180090527278949082280950315484713859810649083099557921257486808344029603114796123325484947452559870396587732875886211706012016925367177752272347027399965594599821255081517856460546486192482052202038220657224137278557562264075865334727435635404155708641632763887614366908276741949024387357642003298123231344154102757753533088833378639722200794531522336972655956570385706436435981075638712249994521845000804685690415322003634982137368547640449943866234083338498391891958617201562747901490427939457954053216452600528003996056888084594139023575828813944214815449668077912372053896052741170960680018775106897361332380423338348948938709842935775877719080308564698783081912580970644948421780643548812015079267129692987936784148820455366182714343907945471224053314739268960306582816101648302078278390029709387014913458150859993442890092182793214761320029418208575565279255320456040635533935885231232525713568723523083165846455218368062513399537471370046969350001882986709516448345639316908463101572823218089492569252616003385622912375528189321236618127543667796053244342568402288359386054160945507773925858334834412824110909594763884069625538230081938830754928837618521016193800052704893398171657635326382912903518545867856936070964622546085405628123223896848460036720809386767156146337302252858968792817828604699864112918021334073382816977802353558040054358495561365333212898962528911763270402478479666474836962672746034433972807647737118180036770383348182632713597898335561817026773619911040263547406070777067493407937270661679168426101226468910377831104447051795724520660484133997211646710017177350941707264247457126135267589844398209001330391997428134079910136662225475606779397683077528438086180881988907276230901080572567559760732447389648873565839342601566227455471728079529630658269626382034544310007994921181333428947439634805611671499717669030326928516869983347983946654981212965546777798278601986910463388967942276229714492056199327328625736702540894053633838440638037712027949022490908660277016407974479959712462471445610524339256172177598981752529221208901819662235297648304612768378141966255390320041097860086592769639051030357018352402269682713320545674683336560093985215711679375176877821050596072789859076631504318862841530981641970423319170720891800967926111543117065725396587332370796573032299954667440032715573714622917669389570225260238583622379025066379836241526550630184674518915898716220927101708732967020501714941848998544255120095626182069459708504563341025184174640356808648699527170002734687904763878326395784894395004070198754011508483894028377905593077611595819081992156024684096742582335274944755711011137946731407858073996973554430070060710471475140887353316930142926233110239447886109439688862974285512364866410384124646861925854493373827724445872129316418627023842730593680784909935898785290658356858765572401202292986772337498047026865352127228844572205636158630453664253023713708917556130519737033874533772735965154013421889639034142973591064892558215496224256154815779424870146010796472506167469693176621382967952159420496679144707262208586191865395393287625010831194444263845253720096556969225266753274370801249576471928464693520444257267879007675049362499491665636137359755039500711265814965863865297481095629906677297912726938581180087408593386184232654761117709971053798668583334950435046596374129985138642571994413402994003335296758686022063215136676873362272749533075096248298441081047463362873477851722340175286073612417566024333616408952955778737523274605138013041037524974259081729243014967486734241990562843821460733586225767103829479725266940375587083962891400130243191072417700959623146252403006518441740302092507839820968659254658927199845944933367257326150427015847173305229607722103716591816112717283927182352719565685110750306134443990163705712172594543128552888541328398742938751226385740943996177455051034491864694258085401485503825062348729172971139035972124290960410215420018683829152688307830503618778484976455384525069935149245849404101155389396974144147791975157794817724613802125541899701389505502338320095023036824151813747346521051887809238419879923521989148651325640133204867301606749612926545464023824958751433935040621174157590204800136700466845728069649073355687164174103855865040459560715202965018184409195816901898710264565072821451108664701969281140727061512458962873876073218609823295910194014503186401673371768821779181067151570627509957787333775473456034559653067229559453148755173226119872384541051494627374305721846967694845199673455238470911203988425795863681419826356363961683960862532419531146194112945978412798132148630527191753782221132748518655794726409036988161100491843354609449902737136816331524267469975802360053110772621960298117502067192192807585905522106845601224164769474523887122576302571476177932091812278741616752899168228872589793354808635334067161448932794355050498528868691423106632768480817755980461784370799056234751080234164009938124925029631851219931672689339388326198551205223912970197107341852813046661001842130277532219395056260169101935154414973716568157071220306715588312071750838569014994703058286448568039368438519733460512952119257750194181338759018203088040793644140870158727837538947637383608896446409668138192105270204746247975685450948377887400711812126673393216937550927707675545298605336479801277646233928894002032901862626454306658937076179851985152770910579939039941030304751266757839048250981174413827291338865636258074184098996007222763994550424469839196921400119306720498515648736819794738975203271070502220861508362472400726120391613910254326194613250667523559324101758254056049485383629501075895326806346484739416026487150592974660580937638988910027421194553115249624990813736931604518194141323727822129150270244324095143435546691774529952772337295797348185834368385293159788844089547299903364221896467409628402218412469262434171450807902437462870473061090067700635821218990590564601031477067443262473058295912210081612212587232842902646969062708467666402316419326110580594907288577110089312958340074191626889519021007509217752957271236688229134259092948262300684060466701347152419585534454787939865127228646065496250475436885321950405874664638302297926455442937171408056774783825503379586426537948484019715762147025525901923593715250932554700341555838486269972907281063351220018987348228084500359100877052626299166260421411457109804337669925741871099116366671128684009575613500121978324753038318451293239814462300096889647652201446134537210498325385206948031620985489925803502523329023180199826417483448916866123581602474956269185742975116011644091179726474522288831457583163252448960282822359177995217047683014115297052777215779795799513899555204463817460163679768344252396288632899361685791856470574621486496321483201181649700877748240887453248179409296371887305468186556056403949402356780589148163498200819677593337409527287842856342249257978934872778264095173617124064939529289965190532056245311139253740828117910916647887956688583154316056934105157401595557722086150620888904707995573924907506847422348088331381751589046485150190407671656598456468559752786041572477933644205791597013232006357274093143647970565987295553550175243568752602238633086143187091130665998615974513874065065518145247732849720486915355133115659811841722836684845426093381824413814297530313635860737085886012354659624787690522364089768414254468309294964505967519285394233689423981005104915380552749257174435928777154560685889232745630026583098290780101192900135241508303263823865040607036813292784252676626154153671314535265939766660564509531292619417421170639223604307791047758050380832199958763790601486212927460289877523401889841438517373167795861891426808952887382426337210743164458224377972930793679308200992183478017589716542426036494904287408381606107567514044489566616711424806438203823284836466751947536769929425088658518075257431420363456178906898591013124300031909193566247353785219848948099049476265746826455287837335849362685987804456398372697344488488941712327525620774129103079280711867340883563669200548019436404866337488441755188603550626204367036249686492712552020388606598302112707976037748734253036797462633208023584972936359648970714652697827099509706765994178368022312311340838239884463025040036366420555458624852561871994123491336306156615200897805849762654887555004281021689139262758497447703830606350397982581991305820372312294717322513111248673393099245213601457901892698849312115136510251092128178512422929763122288512696246605995200197355954099986726799430600067406959690252053920714899306687741632871206021303117150721975907847780026610563120605522347122256052627846108475850711391673235436752753747829615384521328715810805850905481666643486654764023950967913475599202788046120666047018465561573814076848623390414882742306387273910552900677216504349636022157358281170003315914094658379497172628823899116294760123049717185617951925087336832191467214478778279368904496529213290761812294019109791497956333423892662043611881377062307713213795844185750388476739259821951968949626457319316670345145333010237860131884889356887832265958844957489872422602457235022764631992517350154010240421210944332420324635089895251219306208292353523427311840108932219683442157854545857983981127094853080297648661969935815205968518682427494533313715894324799594982855022449012508108423265329029489262112095412311422428509028328326638157906745562521088957875702839845512176726342919984546564014971027186576184085043941798333626948304848928807093586111900925281686632731975708848056834234537126282175656409443359765279869589819244176178882633553884557115509293028269459622892374555045143942032667962695703810495806472066626152350234170138424427689734971804606791973704718110287119805097173598665911431073998444365251329850621665393568237365359300073519591513965241953590232563936563897366522258094537073399265933792748696733510706045913245383149889881192783016145981622917591760472149945352595751434223061933133807464291731709627325663934504804688421201940969262555644600383389341035279320463110304642756269874118619597216730164646823361036004082643597726943514210583650666533813153207932789412898926639284695484130644514031355154015919391877015370159311407959926224129789224431948280609815405512636062021007655691130661168975891561382689653674897038604700880397110433702374195201112682532027354302394051719412128997517950259715514289864399810107882822888835865038420920330976662979981542621001757222537201466866981698279725270400637552331503984482254653459746997990673899286903935268384565171522019503201631214378483278265641698643856250967367824781280114590532508250334908469582063378633975947799433948436926078830333097479613011781277846677087903214114229470802045384254104545262073701609246567802215698321407887963592630515989946892714871083138596005814507520598315002729520491383981730768223409507806476203540916430583874883619171557757676735501123545104343488133868033630544654543685276661179450874484121450370156791083608051625628515271059219630643558750714856474812520703571473412037344589051558807903915116012458348882015526184456508455743747084503891511467486663489812465553366298162604521462333193474571444673334548945869981477975765914386042173336891828599425835403945291848768799151822732140478770900530757976650623594157031545537089833835465386118406635681581778755029675537076150874172118319689836644868723569060049054458908686216967366657345891085880293233186594438830192825895333028825110908729040337849473470622957994148191428198441529318359149708432407802379298160824915423493401776866238141520094799223809373980361398965325679506471180228826969692283286216703161814286480657743272654434427670599553881344236993747378125726891029573399324802958304340811362374385244386472742360360521547608620460827588932679717863264973873582229413914663123265440494319118417080034467582393818434669591285482318447249201704508778054118227718336832415986814587325757954376808592534385117310251668380528271717797204987243605245031647259941395217028859341191307785615846096344637361014152358978833226843291909751069985025871799799491837405002609435889483803794135923140524148586012812474786460672467975946101286211440836309514891828694117597126528817300633750708422457739535796939856365669537336701808162548122657055553264868648545825256159516049361464413084422114354961188561443135628113333808573771422933393611322783566406797797209801889303230055377580034112457517306018279015479789002760728671836024776882740921730686398993701100612988906824973923487531008080460580658556437548038449983494404299749811849474902680949991798218579150229472438674786323502878763542877187999284830409320888546408851473364367722275198027567260827575069061114170054132604196877562055407010962362041397269826028642534141790708909061961367076005543843163840405066846934374115386992224642710821100235808527969996253230907015088686897280056507999640910132594391792744311277607577085557371718723854446049696206060570863449997813361855720981440680333565055279422546913842059450939398560343081637181980530640055979260250453079814081286397282586729950181359506714237949130691866916456098294523072298231206855749404284259146289387561367825783290323925773334438187854108698984309778559501099699948239744085299274058720364042661823537090036112425635332960811968633362871755759089988476256886157724584180507104723653641095008725327991415159895176825051838689778562110495187469618173407217399765088843129135253358806048710908796288544222338680258584900696603307099792512141295444135697163760427187337217336211361781096411678604666357410423107734615385487627961465215026305321857607140648568204849789023971053546687202339448955084629035971648951114668009987462740125212979780431299769302461583078484635301230560262109853152079080567810209469328386139008869806103971185276006188019911684867722025101971832278383907806107517881603550003991148566298190794688263137829149421874849477932992555610611891649691482135052490168867648164079735801431408232731851746416870941077133056646296502945170377958891285711922507862803572164942898870127006609866219207046999936820152241673408061180656545034246853469634109455698165134556579803663531035128973533093207764813364867166372363895102771474498497865081333851425157275106096097209336525237761672598581365494018228724163230913918416559554807691730828198991030171330124173887778188587479744089633090821364733094964519520360917075661329353741959618925524690016358697947652723157668727752156735187054547306647259510452173212375367515041128609471666414856335365923838111052640483195637231213669924159615811979062147537678958794993239749044164398445085231687256962018804042327169496959642777113066075435895534946241721187603190347620174252297754041827150942902826555983718208030081082725587303874281039194482391920269599355273044278693327151988624209326106685395617636500682269696114180718582674392674584211055776842297338902974309482137127160742221726386820398270506323392507640138469558192969560774798795854083347922797575028181630533182915452059672408272287486919043717187841826475015756421476003727353316724346119003372236449523218802260911424748586741052682708038757966417572054598041818166919560576036838648256233793188416131771487722271642385858528863723318399668397859680391371513326712768985228148784284554297484194723779726881087354396502476519672499450241943578993977124029271962341462722896817778746474825796580224105296030749235185494538696357649887988253433814608128333902476648214951491552788010148886025773944288606538935102922698346328855852226472854078627107888216718089638062342262656053051185377720563458837870909044929769980108703973929020130175293977812740977759197716542377650206862153490256819763793958451629867222429200753360573501209414078062155902724739726985582390409724020212974668617438270337776909657708660770038285120105732288890199053271759876996932747359489948987211897351913313786630019986338971739437744493974596490415311532050911739776103115637893281338444927804472248880837826686989107130985152112778135703528581777105007932089590755230381695803635090732815910242475228110998147704587045533893936247854425540409329728009251549892641677968309484166489900480362986925385241916257153425229232060227755866237312843237025442112935517821344250691580088574600806447466663447125779716971849639123790384178673159050144612089326918520923336583154177183721428812607787086513896336618253632922270934738844376022768144911985141703051830521697920559476968959406385891415144774632858450403531884009512564411920991696128248138037172497059990465620340658703318431422538492247701618070833338874613437089074129915361153541978202320606507044119070706950609295459964155337278107659547106977333261185387121839535828137141238284402659451539478411161312741192019707926020518921168734192753020306986282863146047314462730498536412056464228011822626016364725864845733310759421028331993579535452430577063639325203580262896475571689640326609048076931347406936713818631332190788841234209265400857918573164949451824009081413888677987534675180493417771989723080537883381107862861981081860178151866091303431352587712962069003977323252652457514247119594754495221090929943842874602034688198453428117393838858110448123537732005113140202125469686024973330076385872474581195337408566773814144692558387448174390068437239042346639053110977342513868189839031119530447640711023563017476443987700243783822609899934108637185690944609675391616008340951455980433332596481786485693476729747850747478213483176147119836114343829418110339945908074716393986720845122703546993952575008491789941904581358681241135416764506390113364615839548100547831679350486048817398332426310043398679989745212892641324406341254673901268402668385131918779754236193049950304083116219518795086876420338731518131407618528520676919121488611321652975727824585518065520429902964258005735883079918378749111894326585621197606020915337705141675263753876401257975484068603056119053986882578003515885869835909891798298100246283562394187940417980164042803169158305638700145532548333015365454701483385852687899341926224944328810281637307862122561795742666593733569891195306790397304306221082516369653880230494701707697205621823445578847868175729788748390367778276890693434463586050021944621154606173486046844644785032543278313070892351445336001872584338672403167494559895181310164022240983605448516766264948940120488054442461228202284510190810898297088360258954442724223038618817939529816223549859033984525346945433095152668130747550116031110106654612000959963863231682706278988213244219036724420387506686466465740468828331707378959877962939219904134422801161899716535249375686408614820088641749147245559354233637899096624261853583999496469119413349007479989964595567771629374302027736715376846277802669711253138933921801372686967507178144848751023045904749592349302385720583155988338295385340685844688323857871284904766108251875179364631724412539551579192352550011918745902198457283078665872978455632235276407566592548110733958437338008731778109392802075796449436800523785009993907871249475296606434305477472081230291626867517452601833759475419728948197928277012943958476205290049111560388902293408077513338194793020639481973040443549157929603871298997188702677011910691855694444787865305106699527434696849229450543047496018598596999014835876559114739053815643135235643670951731522296790250565123751565614727854644868324227628613299546007578660304043064257666613808461460097776722996751329265255852269071702998831144712541991481758673947050329316572776642024749093374591468020044801259795752936641544785456457162317809403432169078776592729796039402835565572373062105158247771239310668794052680079158305811294203723268576156373908328189100068302370456772270750978986710674629296697992179271218269408236635921678252087856017643852937354751156468023856079339779798419679777336506089255794604668365191899981202119328088768586865607141612027549938735896691522488217986672467843622873306208593612970344254473051111526312155730941039902386204486620423753636632442046754790534255462181246661233360467505990954921956112185016537264118820307522570538892801468525446033704754885791558487325511686557659432629857768749626963051156747928922972161709573961166231505704955671370745943242852905483306294728856699723100775082492862389873789212200663341027724402877234313357823662503438628732239876744566734629146374520762377118591118808643499127178364744946067095288422700216609650338884190040213553109879053410103629784595424140516521000282454895724257183201633396525969652782746016456091187691002949164578099137917492347251544221875747432102211831977859088684261850894744179730533280003847967973309808955481738038178848275099611008079345346063107377006944708113963347169204099007477243866648876583973786670366267306139416905337151893535399099571965268543503436574331796172776396283056127247609695873319748882868630626273224640662787133507136780334530484706092140823486990717984994512618543989993945112038763479209787217196414303044894249796335949850700757371637177607618545640544928463624404119992215865928856236024076894051107895892021664955114807941040989405800670487122921092279155604174541189446879650000354287810285813033002951309729976410096421321914180841246272984403167079758291327578487476251808867472478041202120643434840734108248390703805251164874508129193300229993835946403327219367734082564562581799867261097418978468425241731474479169427403472332029634395934762560434035070847958384357700974641477669899282647428579210648517290849824212049648445581088483286199053155445593807925660621832606824555975767154708513054606260169782846974263167769745937431988385926563727770872309591750541763344329801069241092522138689305322013438296183360913866297378653414459652316491203365361208065524650119812520715073700638307441770477043415373373266815901543890304400656016253285626464868453831786848188641037958791964417931924673667563486991458835732892985416065362319675324773579808321329891848709457375727377008637814205058859125199220771496161471944225971479590462284808655031199113860793631264570680976311087873462977664924415289051192017195061731683401976221781896380257192486463149261461142127471695528671966688437823197445208835528899252953930427938475078894429678032333145266840154630068922407840941471742151153151911235837494841903396990210783017366072369992585396420947346134964715325455079649192780103223274329938705097514128397530804082278680454738011488449523993398679182798238493840024663602727470254511086158189195592674621088124977924848111746130182582938451458013985077022681688398479383053620024781627830706925624458680084279999452826944062833568386189017787894639790661694941200340981009509443196312840036503245478263112732632023281146656777786526612152424861382195597253681600788554193252776405319117511163125206889662772581983746554239112648918176313578683113314124207264384890279614370599968809975132583930653469360867051588475626135463909661962709096495177830369264249422320201524857647889856188455292918356348836699627734015712432471292593719144409621784138221192754301138897201930047202951878135306710461624516704465728304416369328815026572701832926700965269091804200383823925486427434009197743601061675741361275494429446859787711437382149305149895716922211971263204790969891430732625711930719017669431771879476606415855577777123600721602679203055010219504694008670467187904709705625059299294659771800432310843363366008644007208137727008703065859299979260228274406386503461906116140931463748899672531862571630220958739125682369404872141839317908903701550129712769510381779409927086660433550244691368632697200299868060660299624104098888100605191462221718624357045221290145547465555147275286888821673447017787711390158594543021262116848823867520915697024586723632872141440875776232483763634696365501848137019621903483324911658212285502925915424648234705472341520113557177597453126713156419108365746749195434167331620289398595657193873387382895581970674599279546970333023418974217409745619559850513792157325148688305025631170772464420623533809675472601744682913425387660762214479221807107606519169582092099243733072700670554998067186810889441014664103890574957698054171059420673234422394687810930683050659751396093898695196625172443420681294862173928999934911785884523660633545531429876201708662349396018306065058831013134955472291531390676293121414492094210623432290505602572782167310950755546054063977257501462561160546809320560605174007135693750403584134265154526157505831014192568700044320031208448653351836848458962727913116124212493885298834381657178247738273180156788183524683115007103592742809331384952319964828854723509827956219872458611983258449375842049080816867373369479776694226445298038216312921479469082545812985567239482903104822509449268089664381206558681859694110414673546924732570683815471482179512545234105210930213911735223105445136009238204293000961837623492667740233836916728611956514429533153889559036738629636301837824245127837890152791047174655048327995530376121496220679954547790830444097946528943315986553464690406535406391933015713411109863808369774635377643140943525129944538556508903146568926542460504139763337758443952149227051002642376561037623067060954428881997372302331686665382609335678893280516113465798291437523222894850404826171843407689583242100206992596297235905983561114618102435029746721381108004845713338482754608568287636467935639627849135531657559104605519101514581746103791804313275927143495897073076005260346846724341662903785618262991267210163270960867550856680391912265313956684473208457570876626871386184568768268815857682892357565686768340205573540501922835488118081269160714799349047344671587852769228379297823270269842219777573610184369953680428158379928038647694323816176153047166850945552871031168844396173056699518943196008435275004851590948697272375298292718233423254393420785927797660328524362964294130508252059259824110459303205527705673570860336042494698996515431624536909935537225655532132355339343688747383619472095513161823592879389003612750234911008347049411668664636642435459982083665345175419943939562476287153438595666340174323020490591564183885846783044467222507130395033826289057911125099265472288540369202433265138583198226445591045281931887567471011523200646788343431657852010432831355378628335452177915015136877606560197229245291946746258002316910263357816560396772371884172581957488961560526499794012393389856418796572802457714923311929842362205535857838978817811297698178006743431217433371516430138560719214669292570979484152111811380931177266638782021815426438165004015424374293554663664403073026948258214635945447608690631895874992249226453126121869488587962081301346619460274253729755457140208745589875789064269714731339768490461982703053042762382307814005046966497375416385793743822785451501319638232765219812502759871053386820047458266199549851615778868154380653389109248789091321455990341198900649860273086593478833341092301076960497295283265952700080720802911185849708092201370256378578299016331405228187714286737585063550989136472657662129880086259190240579640482220119774649457123016823935405648234733751649822374460140740935664909703365420071232046130400351939108986121327760316428432303235063954091841818420037754056185107918813536495305922637788155738067852450356969457565927265975490837262819345502355836888047005410358454518303711271042741881527490116090533193499311742564733359993379322690643423461832650179106809993422748526633134330671458036463179660849430246470072980320949564097148310921175263376871810281426963627166177454161796430671227682780353111679654780534360796825155919937289288279255704038165588631892376372597558278529519785686121641746963409470981961698125554867395989500334869750901358788687294980106042437434452716240430550353717763380493332724308750746190926679841103348123037165287109974446961300176217001273407236213412813303542681721549045823275783556711444505691049250212152533765980547555420951609963649987093383949397757388842807853757604205600269837365092968836519016260107577491352451611027587255041189920063524278924437829256451350830771586342021657037982690163507810946838185999643303685525117617537859875772871394129236939060248750848945106473647729199276957169000718126918863674398858557780723713802858397397754803393463380335993673291787917050375230041721349952076878925429812392237170313265817246534860440652605876355342504474327168734201971665934940776258972205634063873756086317986250113212931796995611018482477924777246594585190201329377580695768626720963699900066856643990938448037424767778502252577529271799006649929775438528723638443230422303450422875213657859712244345187926876156856447185236269456514748208256091285393331425869674505098678477988142136920277827250979470972817178044421250218344624169447234863535614752679510439117340646203551761986219713067040225755566648275210173179235645439547689096701086900089020681373036742035166999078959846493509023208031329726564104677478075623817709359477864209221313710174355847490082878563032127396920214822946752681305784881951650903752092880424324111474743716268025875529315873849578503953608085655408554059181081019802052536630677940189676614497274992408099785533664184790800307595280387910883233964503152195733974240577749239397559854062454051581755656008004064576104034645740824858824340674466072837363111104198121445197024719921765957539704597953531994035082465805558031739159473340335659692500524885998020632352196014077983574821462681133909388314545082167423861112177023509940915132696811463411171352257595847816692613438630396806052275401328110998379113129541167025290148966876730601703087793233112310850383987511662482150077744451519658038565907044251482957172264472086367879625224496298370135333709061236513300819925028573780939930563889070923012709854993711365108724207610210897349206350493468026312930246356235235566203352766708917095282482566339492642375454020633831065616691959454964242005309622634841109863458109414404789241926864725823335608253992154987026863490160033670767522678885645196916799945514180147919335761292835435313383593330158691370388416519498479540176908914192385158985161017533028183916381380353319038026856051382408095644076290871936492598263471887106198358435344181306408047074945560252373418551917482965409797959054174853639401560138423566723542543855836013953704635154968840278917808279425283624096038161043861998451181768234490713360103604398430923053347856904359671076002177926429086781901502106607282638056546552987255078801554469897014722534701004145483217285844174341080514904661467179460287961505866747780926871928643462606714493534680131352327387415846106876574479391689219244217502054997626640293789570392068112020010515711254870692802377944479080157068353040942312804097619489690351615190514017066778621538573973812915331665992770375501080520788999154942573176907992085366226235692868833177743610686775176879131411928410728245753451897997551636128279361860748971945437108080960642028425457414981868044667807834407644873767360909255457998225866780331848464445553928278164513124024862394527573828963322053052640957421908345047153827179676767360831021493566814103047405736459453767529981781348247291938536185405384456593667664328080018957585887594488221954801148834630789812558491427807050971426104964206321017802727367139986999111127724751545367188045140996794128081228469375460268710148228562596203657852839246160092928424361143836441239250267994415945613331703801149699666464042399748445441857242878255696294268916426219411252035157620488641104526567789211226535843172473703306601000192914881424192181604569253442831378874677655109204947109629661092495592924738793676054762264070501716019684373987865485938081298668425421437033328987646165426630760826037711464286592629325051053944662948020307772999826989624183090724463958477223129369417072774760338006001250134142921257775246717367154820122294215329921817410871542206272357206859647155908694748321303768823669721493931045434949244422211871572198328450831594662989887908523777109039859005983330891604217517169354003824159036335671556123377410593254414333663915825255065972601684334671982908941996835410511351767447257209420191083453733245671529294624560864055745655771337278837298013616397101509208232816568042713270339988546355703680168053900525489758528412761480407664691672079454459307995560655035748271298431804112078180705710270647263273141046689202321813950253042802853287519280728942874717880945958537529737603971454209311494751378019260329551381142070105207819957062063756492531927981006387315291857520446575760692295987887618646445301801289554984449602057984863939707147089728423840244699569562747027356763241482632031314590337387949603112969480767342835325620657344305748870102676636299531134517042640845819574865789023471205704866592721146771829342454415291780806167176146472236358663827383284534657451325321274326063277756531279992895176080752276414054218443016821256739662141258674428126477336646174484911650014812779721307650053958638912008443137538239425416554125869106976279539000883231709926889930189058659265226045628882301633756915328651306119961857189111811224168628490782476621123896021563508692852227316780608405546028559723698790940507938228405353117297022741416733140828852945578372532379783719852203447339210277555166359003330778003146579101523141234109210324772356235694448841428700100632220115499649268509531662672391343189341010416451057314811058430796728166379035964456871863236757330835155018361561493993408272411977338083571440721105052315622374967575055062848220861115025016475851182976492386760164736692018652459668531185816749230269632009446662589266428524241766552642594453972451268516222888006683649480658606163396804312773111109938979823464230654363042977177198009425080200946492265989554568135720817426486497024014381389333133812861122269757465191477016779071538927245405766080891518002155135590011066380816480796748190216225229773314254120221964471283328704308855800015721748162637080864177976572082659967067378777927265146348045663923611749111606368994390301409537915837796791139761769037938822472582282424124399549617239689000749407954827148395711670817553345546491271252007146187533407028128437733707005876293515927625967401393991257836210057492020305741746671275736028540243588317984861355126143431592872096119815898535611573242125276391001190667446579231087931796906906794277629735897057031209703832575051748426561640777309678613160673038545277624261175280770256917957256322026334505542164627957588809867570004405334737265195173775666595128986270821007083754818508921469979870786690516885273995571144877497824640952847141006798284435484451136090110697719766708345924853573262776672990118845074231056661786249082205451754816003066970989031636292306795945883103149259719696957060106410584578246365399742176559336017245052619661684232919775211192383487804961828955419677512331091288847779247995754046115086913089138882822717323875224836394286600037905658061733192061022519410099163276795242190608238269719888463392519518294651799842637406814960710259897799405575905980882968989710464035903132266574712096729520853968948360926438742476279109600264019623760057411870266087235395206917351807904349705404457392040026988480959992314846507929310346929842428202139381709712587388967532221880357412465669304406825490866181201112504276421454914425279644485940244649192451990028448314763215453055646875081002463376264607229727294995415780561700018358912153538374911427114579796178488652359896828067746846326368149189735202270389454847074475429806995924225203582258984228619143006941360343254533028721329571377608242316769469871092323415265941718828602610137165532273996245196346996694446768102865874995493294328754607700508740041368963793429584797149936983132386887208639116406712752023102747916760781667775055706668351460446815015646908595040771229221049925289154059856889618150044341279626526484851536399712521373790445972582711117324058087960256103541623597703724773017077593867729141918388545891011741953537879094654447791982117128603620967269063756086537122993311412692101536445141182581445620382677774694065458403005726589405045162870577307868871454539996206692650048204392303130564320398884576296212927136927982698480394793024458140671980560488202082209328148258676463929949468328667106499639173193567712265580266250642104927236774918757299929769132991880790457196563055917446962412116366409910423833601622260855677917242009081213696898005237867469463685522992170269241708170020375494984130252139482126898863224195111172646452899934071551002425322528792044201115611695520911065122881801828136159453714704244349847412775646187781725814657031919553462731034414655996716173493420405015567683807150747924445671506662777262741204644425133484539691316295250051570826907299735273008810483906158883510518512433670262397249975945582205704844030053652237507077404821578117162818561125784211274644589073177718449797594376004580291518022095778883614200953029878810318328152256228948026210286306263909417626665668497328550081797959272346781890106669726831564691655649738338395300167658037383766181087201943782441828868535434451126611797748528031603054219741667365491708553009231844200690179835734452466176486344435257185471965729893140183385510023882297939702878701076153690815743075210994219211577992533249580863559192243673391811422689302361493824341945983592292211120380605318303588480795161527780286278247049906844505761883648350224411073147925224881882543551220293754102880837717613879025506381627926947492447091514038346218532117488157257630457522400638189580313781044729028734362317577488688807264542515823361117110207370196113500435398501884410748354694814991690447004829350097497121466925036500310195264288717227761694200436962723390724033000522740313259882561749208078252724785775515554498771137356731075329962541528519992335597150942835625716277512446156697262693677714972905103662822796484617124740272955670227315252478729660593560499374027176448543975375290969515107538682267164178494803178898951293848770645600821282214849039577866135211259755899066091294171668293626740875503502937565523364794157502391242838568840557596071298040059443502508880890579991457172438778966547797196352741129785497235545881925009832664360329018301690075028437731600345543343023052538241717802255705377180485418823453647587603619276389149990324111034187339168615146963778223708505146311052839108322690054559534527196532366115055803763253871836104509055272350341954121560206450166888747887190742225519601028719473757908464155415846245048263448078047136818002537568937316082134143170701515700488995785183728830527205579909868209049967642163997871678668111664615624155741800806282207106726290595914597698549053645442842821161100318067919607336603107596694906669452166582374164250491642634047559625708209213847290554763643272563947422787876467115825582741620596023746990553076385279888912234182550642497046160436197340848792842086156009172556500844932771387957931164413392723151591414452604330010030456608138275301611757791033028174032119502541707346419995686785524643998643888311507137046915142495328790775468511307453986397893777496075552943848352510134123851703827233497090544859060719235288221409481388308506808705384231547192628309277486777154488393616191990478558393748024989906013239328256982630882287449726984508718775431726969578369404100722606126366545637972211982610881735614085072816834261822825176206566372797569830287611659996469228955686967482992654116813662007393219401305431484112440983688121223988887333226245144042370266810001644216065797420245436088455164198535330905501181038872984406708205368420383788141261832385855475963243811255159609430098407166760412596736033245674287070959912223268250069187962570742998536754090935492599523144918332671293740095443101031761537746361911377171734663685497255940308575163451287024289289701816233386450224219788404818442600584084732414704493814193184588686395893798333840257571438393132752637343304924440745740735590996059273875715831921172014972271226889705432651592322761988923693097732636757486660615532662648831190516398322011979181797618228378835593996257094685219867627268110700605913268451216891178650275447479647950949459478167365159751441199707180719494235542482437102089370084120723686750415864749771598863558895145134745108640218898207151989186621853494335181959071896695747254210301831634681616370362566338384758077698885481713359244512546971560886149092959620032147849354357790949843388440284086058790441304455283229759029292960713669352141499120651605231848686835282567380345174060557373052073818373118509058915877586225321418980721983307762911067873912198859519447252749778769240122597554706011856366187141333856387543714936661038370262140065296831103516292288233742013936505037399167421013035482191412613157831929248449572918433456205173578257131078069887650037829039132133876928524268839429242368984667702501499546836616785684230300774354905581478765971126719560594797117346281761168400091687594989266463220601372140516687095515058834637347558731013215769215121543620434228881360917249210954594934210228260308687146313279567248063599187835720681664800552091988312691215961439618593260976457397627154729287019737869431036394585138868144422991260710370234990513346068262985690244893359532647734043997078885148125932263479890008072038560623722699521053400448620565807370050804412109016681827449446715911040486760390001905049436671597626421226971589953121023378268084758535852825756114470476380154912825337347127857213914382211340104449465802402077587836983481982905275265481658238087588270986888411064449809640416564130778586616913660320346141696868453845481233115269206785793543087865140882053534300328998299480137758106958102061384099442997488247203028511300059874703158645435637433052075123843923494322488803134780261433545502192707826181751032335976292507587640676357567368162925583350531382932148862069772847752583770507747925183895337088611327486737062559344372456171364942823934589714940596524241014431762445025714153716343589349695842943147326155531027930247629581936943455152444516049856565917242253237722451570912622979619026617743043460398520943303371553633992951707944627250025684514691636491579605648624819735816240279408839520559990131802454068860630629293008074354561497990921665559551307099230277624483716333515901084258631149465345925591092525620200183040697334462228933977159935933680170231729818503181577730428291381925753586804531342320064384215994626514656174966944036261697652723799701742877836231124982358045738069334345426392699179265486907088800739380383805753866297384630527672546943059137923407791385507699858471374783957014556720463345147241066100126695014172166992039386819384590140523735919426699727099686830862289161918665980485525320807138653485827757383222705252643096597483781253006872493746689475594062583277365053334670046759351017106470204822147879229918655638594201441366859990161418857340213401922482913381946916079014527425400898724201145235151184150236214947845877742753023610845207973328931069036908467172866638502231840846673748751399936561322319370044946105409376839893887657530240569700438514255068928143802263778262105456865110472418821734282343597909564899643432568147978415372890013158258448790314556920931061965966081924225489582987596938796296332605472997542604590616145243743533733957245928289369556653048631929065763912113650075962501314194494054012598591776172831731496377977220113256066855340344113673492776657705848481146004590044937190577407577784800093024051983745354395905508301985072383820209782341367708783375093907346339901022474988228006707153789506853655476413852285824909232486386313958970239031887767741411973894175987397919474958788073483584667875750908334561929421409178351286477191379863374138043646136400585423630011991138636312706387825109548274311785842373353819451560827377030351653861329477626519330969763321112691035151786478015990258504809578740422090010132050846872142081576374179555968504075650373857788592358096854316105429704765672467269658418485381535453290542135084235368425294409125646118973646091699390988947739804111775949970881001544091406129037545644908834254935579834155529044562322117678809782021865209579948102650185444445958585013481623983311773024362657619003760961962266163327523509733929458911559013941718381518935047016600300333730248872941770395191743694843694279180777894202443000178564274251578625107104431143062492105574433512126288164850213053918520648176280054130146114020619497760094697902982032512324511663918662196403365155865036062316310894492673166851167856470895902027598832322319969156641607232919099551584720919160182063580537554195222088607768348906227402388458679425461211085703266181538722398048981354409778666494117922145701605098430775930756426000173305447854060207658922888056347840174423904710822567972662747450374599263780066967091915593910068992374536660445755344474761801246654143103898867183676370456343174751712130178977433318530226991699482844229590959665859482068222879339658993881710713071358171636936077227431068019355400217271488909900287535453574227452894937864661774590250075459545003581679753676435080584630071098848733552938117470587537612387949788226770823974151660316272425883775643907278526794821216571396737145144994975337544870330455981029980638807426661158545443714257269815958319895321607239031799716311440826966096294203717281738610114723476627018938287121423625936627049501421690731508662152669519449859186753186911066500430836534117381873973550247950403610104538041755027542866145532339858673083789725819290838661030825548285220247040678639828764383553378187902585406814455610250368817884763621784518666171626735552328204397481409599075839934897600148648443457216971694308581749166820049929021359324275353293788335505191881160178813631315069571328225871240948037554256624754961657970062919677643765561807298909745860289979183522655880380543197012333208817873260933514411956678198732622975723643920891655620984401069294852288377978787637761003785885274560959370656946216563324017048268683393045324342525262067201574233204206131262483418630674473489025735730756636363228873187051107967053804026266172898529026706039870287647218919587178874074944189735427700529179714950632957065565593373959744365687831698137441671030868099041466747574827501862263258397090646093013288772636967598532090150618594938227137132418031408702296365766870129713444518491325114137625383839669102942663586326129460369663842499047403355124881833755948698231243886724048534324926315245399482937383247805803706006358989520356043000534570453291133492105921295741079233764503039218331452287624206195911603057281721472257939090708563490778778369008592394388692683157823002675262938751272817673720328926337619895210641721118652468186054263123009191487496216108034167903717398523812099685747928907634489221312879549697836998820567901095613828487738871106649595994472161831915769626890739549760754224485369253048516787675073195024096369053501857618433996806210215920195288285035462294760308533050637927618745970147548254808401103643795268078712155103893650770235835055665451145844010614838878119805169060754014950797863893534445547936298893844254883423962314508188897934741742048899170650580635755566825964841700375929116894887117966517553031061704213760675925276563052596694329139899943035943349242081832745731304267252920059934355646222737375245514364363310090601050568564314457111097537438731452151537110321787180521132414985674184279989401171028131847349722773210539755153542723816576751473520001073883546730919239291166173574936943392343802129321276189990323021134528469708140710527958384969525770755428845238685908576472698026213110165806726974650530974201807091524483723501975806108985345909360024846681359686198095062662167549909542497957402617879939359680097499083070198606070362540996722506858633108716477613291510045576320265439479953366460515288545272627235505832284582266455179305142504720962035407563391603234909007465649165362770651219892752644231673264048575545157598107356594319874510079366023190529154303158677092663341389047001079631059239316477876491736982195174965042651123184188908505109599222679666080410602539846904317657885561636841250236673077363319981991396369116303855349276722566499864280778146034089097436630039033370296527325762382805793027679471350679473077390875435691602832973960616290465701457170340779748325927431119270464571349373236399365855930376515967882938302473866596548812978397359869816372241094622173892287432966817098610442000120428433311871440894173014344546360451245698626033669158972449003638622954020256814244754449204011371127556167355828950395691285586316907657651021375078080699579485703929009108708326188161780281428883621597335050991222854917321677118070805192396859661787769093718073696278907745261052038044098503260604849370332229258538034509320220980812877171031096158838326958360705047592977991403429289334147558444978015015139386883553186715395416781381682440348205275091854347587803773842901235502168483130570839783112818684928798411428106506677510194352849394818144163095553605039693167388858242001556379096347181447742565845741271194975442377125290462876184772434837436640238573827195892170307312952296271625578882060961916518984186023794685271965910850907870782914433481358110754377592547458341392699189360010182594857280140657647206951877829606671137997568086321677848717093491778753505710531007047411352387102402428154610047732857383506485025097080220295759611715453879204406329548124385546392034440849120464988570397498337487890245966674362171216505486244030530012968779625546390974719183876334479508331439530310394065796810328080819025982899809495142458594255105237866318058494499340389577389292580887557602009915491646319432338491955875707920991535968544727557732173344620969963832102371037369031504932381845519562034559016974841372385601834159564292358470908749534541688499204834744017344754389907198554412276965861278536489868257743408752122218650681165293908944851388815284770107685719209024166538130556720537978379308081089455522891472532446837366893085662051984477362357431720588995861372882890783537268902168142395594889811659252569414074696072014397036494677517055485478632524264863485238822182964987533580398479665419866050217480582272783119795781696143620522624290157885372121283521728100175418435605365152586942360852849121767351924891100500188780547877026191615491862439303667987026102362667063595424172729271687377924192771139298909540402098383666357693389444507749018072570605835016644832202922702130963312263500632351280368958057778808976051868416425457001559009630111783171375037404793898800899627508396983027798586035225718843202613053593103631211152026139976429029053592856999703624910488961615580732216841401947732064629769017217122782675555243456090213272494083343677633701008102136640822692201023444417110505569253108133566832479389155541381107373262609779767810136263889778722543583342143823451974464446083773305909970598717490475363938035863167743214771573825045161220382751493102361448976939470056433140592433391593528021982724101858925929233848036703880209043489320071205984957667333818774551405643439676404882181278284915875278901875730005068574377611038196976594637821272714879157389329445440112416135610788011012762636287563862657005539896327232543944156696633794972204242256467621655746659268131260676236612158347668355175967458060168606377729785720710424444421093580190801481225893009885339444853996105987327021204521975449434608563471680218365478968617951295673866234288363156463675214366612724087182083460585231044142218572951550897431035611575311599332591862927073771879990941833423126184345262090073618785768312894195349511106335365721816338001063586365482945260514534515560424326076801900038799340971261456350401605476154198990936268341345248145760742544457883164523258792614210282777834569031643930130635935498273260071836493744833116709644038498365830523419390428524761682883353090531002437122797040781092457283205562689075428932468877346659072767717489007397025386510881999616862694987485399697714484079306252044474957304255879784107461536345044009647927683566346027543387529410481104709696317874769743726034495505350001605316033208440542888086232425959264818378224414812754337506113904989188559789981937979515273157957370399023229336774322582414585414334601058041250323767164228682892449158242963418817166952551923834930216040029738209220777414806811972108979085669606531886928249658322328111786071573609271816223045944071174694492321743297106208692409218995769514978161886499160378998562574073559209816375371787103185417542316396193630409379315903632060804935639248284716647683876003398079663805138224935134968041908465305450937913075640667152855291138634786919267710978754828071617994691031749781216961089459862247058071848892916081158658562721010925411139354460966650210067976313788819688796381299255952668358900477846483432993603417524657196915895943884420290570298584801472428350278054509606501692231184834015822166069529178226789661997447124827218754932380065368876796447592762877952113923695000397258760271017419554476272900249027083827556434518164493500386324566462204663822200184392343430601303291833721049516787989366443593739983565650472506964653716340289778955521090217698240041953638035185631761822074448028282083814371672712938213213057318850321386146039710503081796197609233621350880141429699726136399148841427545607495136705926868533646412106360069693293644941383847754696254506702384726456471061512975909927716159885497007867982056126775685934824055921391448821866035009486058979099715133343721941786142558430325982939674956086552513465757763433755931132243307976904280430546816345509698996148264194778545105085785195826684680748071348229592749994320344072985499510425004897377691691857679344192149173435308842109333638495377486963807698265417960719814748342909104471806363072446512745446805361566135323763294711668779637944540209344179602010872362253579875337110379252775251414978350330348578283649046190425068917000275182750742628615517396064499219411738284841925888401130577353193387553195510430923262657946832078986464739557536561690851510806440296773900841360418775739249671423165789292988661415842926667917825098802122324293756403606332269671666426343692717065917486598885192457259784075250446752307616124718125056902957505152172053305059259121902852413317026073728280247965172102178385417094960592642720986354317588299218685519406489739127623576182829603553603508119292454626057992206951906306100880953206877170304074504205866687934316022499030690818567365268899736353956835748222813945894661999826240496587533575001869906417614762740640842842925911962632588711919726343895209423198756338881587504684348722610723852948578235770282692949760354281716103957278215591643977254365876938752821580774506030058246802014272177946409803629740328093080581412227330815525223415683560047280884989802673809248350165964696523504159420946762246318181110848982266712694602286987968568307979782545696036801835501891869621336979276952591050014554940259868479660978528114592024609272954502189655156093744941570341361074632352302136087810347570469434593338460349079703252441447575852014433517725050519122318748369250396851204843107980873770762536270506631533886426048596570779693564609674479274626873712029829495206133179328829559602280212554160740745867590381396335733438313982283982241271007966645899493090925041709856544199982958596632045046086146397931671150967191720998926639177489655418123083553146799372744452988490626688907963153910051220821620672720719724735922583618844598483764793217328847134398832646715584754043888902256687327397458816810116273124323551840388600542279458235542252304423218983277812207480370338897089459648578747907593423665725696433602445560644190916028772175975735168830879349658947998181603995607730342998381001621537892318692321179557861416531503913538394948391172519592658523781866939143264867269282467816540184699711112203441057514486705745507196142017309073916675926302505678149658648407433575844034116567734669784878807072393033935251349438558863213719271288865618524158942915480150455867413340159153513678052417442579957653134601102107561650136844745794716662232241943395842506169102464536467009092582048398431696263274992681414122644143950235599871187714222777301910414050708336539335785874101088329739119106014281355532335999015019225280694757169417891024243685244274136947896038076884385967880467086859012983513671247942794765320016784638232893929550630335620682582282096200141009534698023786059570610910204572462871492746423034615133317796351944796797530512324629319531120122817148612247167353153994211660342097637990651689736309761579091758462430928485695888193225364600330254889209700404895378353320202085287388974122261476905404676193554140483802410364369243642176304431796446087995947789880196254031818319613340293526317070649405967926569354024396453284020494354226725610629688962775764281616866495901033987947972777509568503160396204256865552835277482492715781422776029593190202883414660955831728992761767378397412121787281473300390151905942947147042513462294090080956457512407946212989103627521993095336436333331862531945481365323099916635222009043968580319564008189440576820005312519052055605151560971763778466123071988418865438691269242577407166249327650882606525941750226073994935947652563376495397898702525883016488998006950898942452555049569028862839515520037148752862295892269318156727231173636603587141919208432489828880710742285812336640062777653303267586688875808887194761332769115054229461082701836154160385944855892221235579176805830856064364306161248084506231255348603298877298763265319972752220510679524666714452611949750208437887462761862091617055850107531275507193525194615003325952605108428821885421365668468348003001661000460671465131749045595759747236021852223942164002870048253433058435000879345072795268899442557731404065050590113567619967097737919098322420921666290620269051831366630258059800366895196414399460586964938961022766264350739172328785775799970358912359927165606293614671470896117403936755318066312602963087649474306899735853092658826372093292615694619177070895592396943236869469331566485136369159395794730193082518191607740434001196484513298523645923025462822848138922413850979188406475700955347966169069547353472318502952077340595792043334960080550447731181872055934634184224063055489421582943927960133625856628768403317510863445704285587670248258431800329608533723302494351012014580776585570759926858138548588592555299180272590642319030325399222575430897801044329266608919311943775429762600193158729721213614321401779900860612291302590842839844266301609065310403002045875343547663288485614478431594273227109815936991420423532718720624548041214529671534512642961417931932868785554109208930800611441982374268124444890977822566066187029426487812282464657587437359833751010232872554131506039455330180306840259142595230669955352096885167483782124358050429536447224976966527589155442227248447356759492607849326882076911726087584670615458085212565934073551232664886772721674436971654469151878456217796007715468898507645844593718974929783196000414452646421425735643581997220960133615282889174517603877962698857976309296927726589906931427538754168327015473753555158899528552464784113805845027103643506563098602917993328282654242426762479091551903274275418642163789416926845340428852278016740448191737840746775075758074239455680658187510962594155523618060647627761610010461537546222236485396363566614511184009454101002914226833750164670946316724298275139721745754244807948850918190425091050030614897475289856200236517623582890980787669176448824464784638074354513538891698104333706043521889497451888236520699559429841203958564402739577580755793105750946651530000346552479764691193639743308951721159338833182618056343373697839136874218170503753909224511528602386158492441559459000473795529933932405766130402195095674238730466569800161027766569158903529331294443324043633351419404178275815676227056887529179768957890568665083782239837454865923962274578983144958656906512061130693648304579115631020889253230725110476299725506071702718512778603517327978181614644616975986687175542303865976471691253759988988363097958759495025482047284056291297373431141319773075552545037669190227655606567175174385953464493913068374408049760911981122798909657819074550812944949447145091296472368431385473346916808450419513265453744536483018412141573226090642131980053831146844570030922790188119722101280281561032747817964462192514344937385115007057055998051322085209681012316316055807488005572633119870211808229208170208015417451215101210850049477627277789887606864472469544872343195961551694601693964724201646976649760403857922372666293121561507366352003087958826507010927108066406108963364263130207916281940230565533005075016969073549720671792175539143195901025934696442399543630246748742115202361647490636958733242811246921575018005922698105266354473129755483597134094496303777626486698428849068167795549539440399185512052108166822696365611893513372123832279522542729150325484979606173396937812897406412094784934770411155706163724829781839059457035804954720136960066817141150659448480155519991705000806102496797179043258817563509803138721969306191683724548743102527411592776803421276433826114150696676861950594889938035811521100825310900923034873207884918275522724489171163244616628098537123348802084225694653455466257515309011022880489132228538852203545449397343015974888771542641088505804214276135171338458260001481936852958068490103024351197087029492168572522244680078421908020402964160164120321215265568052858588300747292351376843648466889694712977500031245776897893736939313820217719557433446526272135197507892373508797127195362614113781041550057764945426136392291908500813048652086766044487483962173727620032616152125961661032468262909070647780765772477820963530074242426636194700013106875065288615192808917032494882118635341826901519158470275821471426192479085359142235466071159488116026735805475774695308768375970321914217874648348656245259469227475455770513857264476086667207404755606985718236390187162626632311234523232986865317927829133691473977947032520833404295073043577697117201935264033812238888431090339080716357555023093338799540620733729488602382431138734015473516964751012091460964994203718275033666025002357990766997356519698249815835962379958765369947373943191398832290229074919267156660240248894710828450830579324408277901038946021687980955418007376480245942446626390927885464858385213547533019112388653068067623433475427420752583592903087445250880141399269872456930931842213520741492304398433682873217044663193854813131893102308516046772955998218291255790132902226585055202410702911165958416838725934241671957304282119034625053569970966598682709677327120506087830674699058866800772186001735927149505683058948622215503532097928425198065167449131756574685160992457048317585964385637694873968366543694307733187191931097678779097675104555257260043862739895331643583325611670331761070269709811673031242619768958566943181304902159624012563277842605524919396874795438709887539221986503238949590025693485460787664976720514815833736941229890585740923771431491920716568998038867488633724606868299037152965199893235150787959675202085205928358700141219287865137651817489678819368041119382689178584385211455015261308580890315481090764067600434059453157544911097607002177724355258371268766982384687749187606781952359698001904174554138928098005378136825704214212280625566380811836359035056666853140747815456118438589456300431347846311795061216733954710261433267073523988684350526168837460662371339406229172770170383285983933712753441638095804450199603213495230723855211531495426417905287801155797368651981203255684646416968286028758040482929219905514002903033877108189379418857689832954694166966655791746728499189267524783111473572607334128802044007862459625445976679665004801037376216802549702053382228464938902702378434559149266566485798372987376732875274889209308743034581179425660051906291422569523837734936223420275418397617017529001454792906233720921125333233682895735646720652078105709573536970319358305186929716021672373856845773661326995072561601357165095849778483302692083043884176620464136068614637598808155057021150430445686874064853167062803886977423923111975467041892598796045811905821997593881753150071394643145394983744806003600828549152781356612932519762564640410132273790784110292668329932436852157272663070833675707854240212280255878032564660403301298122017009257190555763569563989377410042659799167320876509008370711344011700379399576051608232944243127234532544634845236793292321222439426420535322720441273532171020631383437700460215267021415396630031968587614095497475390511932730451483109500824293092348354538623173834657140866773020446963678303905955737707615664823206225643636297482369166086620031693024416182031980427390322035979759707766465837919491629078803247665462797039607674812109983004801931429228656181556152510784124521079189866144630011940757393684668855931668807461655680465522449115451994461809287256253604848564382889524493366900910985536044180028540563115027633259435775866572404645297035799912737579230151500439591502820157611535758422482720303237311778207816155858367174099714874636779447428142766633160658868466842646059877393083339493881991510586623973272788500160197010429327044822679867162816768318918629837830812525703334876088917549845331377753903102336014657766711288242457373110636416701806583571329599783852320048988979675493669395552249642062746685702460338836246324320664318057706246737975581961480582927933586486408770059987132303965227234441778108284607464609690455913897647739318843124987066882961239467548152403117923306630539679740054857544137825450578159080855889451354264084511403355647988810956980311041639860170717658984461488169381179046715763512786978665594649379593066035170243020071128867412580369933595396937092346162883432348673252214069447528787065953304892505371500821350521842908013254052282165696381717580854996599673693153005539943126747979134241506802905636887763016468720595436102488109843750868394726985737436462355581266297810857657393720762149098129542319805016416154811555737339640711142536918867290978541170678131865981254939946189848261541592163130214759041544738671976190776956708321069725913913319389301155575272885979485614766993993063266879600733924324093886725009264689574628460562481828017048309140996925865964341615799903245830381037615752333561681551043738335228529744618260956603524038554762870250603122039555162485585663333051372477975400838761022078779077448374266278218645076947999292759058027516445802356904583779009078045664872162082086562109315307385088845607321900396265683722960808200335865871883131779624720363385446889309925133499132230637993932411159480965597871150084169087080001284762536844697558931481094304415917767559167034096722000398163320005306785729080533553144965921922188734631872273658800946373898018721898412055533332418960203525805518707964014959601627416422763717934224549624261319537503010853903880150528115699840947358492026572122331376051710393325677051871468191521134180964377912932088236917679592215554283865774547284191500803786754170538454932828315124575873741608628371607113810443043368975046178889193207035070379709563055093723895494699406622659760337910119759194647989033836681751736839509131820219591898602798309534291110569149590433939428102804047129665581924496626203565506369735607442547936124052236134548458748170366332671832181582292409161193779200432446720054490094708547777604014200556422677075531104565737154464282948055340744655028797198860265784664656445209096287401202340867794199239196760170104934984984057993699472387088257716943738097441346473723478982939344661626467694829030502276561241066189830303255354858549782949304127908481010892783081573599017895950382632046082664322622663017607641819382493148093723982648323708488679589758286823571066997394064922089187474132537960507435282771142504815395474446579442215568595925761967951739007584595725627501744016868737951811175178156634587498451005800692649188945182224665063859515333302460352290499786425712947481989709404110550216585912112740865041550361362386508411954164088726290535373754126395268544295536329321514291556730352430287633054714373648464504702409199421388643131486929716947135631446716786216199854074095503133157498756181836031508821089134162079754466827861390852152796902370258767438287169514703604657170502931068307971920626410674322669983799225552854118837295932003677585067440556666215086798260130066327596779922390020570326213316650062634990817825000463278842183322191850058133899547106606469139697028222612928002484175473497103133633347488545379374795259804091100011014749298804194787440717919032761347021035114738704025604609694994814096185633154344695742055637810706219028170183402629634872035243668325957687698951028411716569152501490262937833432392589272227156943173405740552224378809714859461496895512393883989957336141595739469035638411295680278978394613256324732756988889582418373587873553394289436359633512538799843297048040640187377542221031669509916624814028497574774128515208160296256753044614525177108810673220391130938242264754435768781022133616652590412927410745671804111464521729403427325734950982278097712996054457689431342944413967110774898729113352577616244948648175368552383247923353338284836977209949860602736762257642003528841525696994322685963399591488625931775646685639508599277110365026827440708711393900335808113898462217703635256759762067162658578324655467891950716630472528653942573461942176556940963726743795706977705097594141212205352361855221950915205816241481511698641586564560481457205369835988796752484386210975594000466774364905689102060028550870812399624170094885690926982102282039896349974102005646357694263965773121919321282384833813110946367705029106157384713929162311685644623790757836041149689087182535620197395130374664498547440562403791765280398306027035205660186382530850082467175026616558354237374353024182769675784302053897642434513628560082137477947327841377905953061126837791783247107466953963108718575296668664782592441678519854712637884898941504520261673346444120733494505230212049388018545767752986207852782578889801324556726024501570892736049771403229304743203265716312618581644769034439252719789370038887963885968251011829342802752597874258686663390356260434763111614413193293710028700476300537742141923106183215881385537736370230917815155158976959302873364637019830654445322937976402973990813837490438242702668684034619653335185725899772982427846703093353498511430832588450371180971794627959882254956418501676107954564170631419583043720217346363759164622425646938669188461183067008366325668625006541596852268634721682980040495075679955738492165484875214376514343805634059051691500973893129420034348431165795673486536637856031227331973150597189504312511078836243891435477558459357330185196930167809392070051566742528246997741241356078367370648942946362131762640006601280786609164057941926669481038987680981688815449982297014328018459811158970995695591579571316828016898469245160142653939596984958498019807175310103919167586913280245561290115307757315494041910994230446807829358463096098363171133941582176551365992242866004861592889469300302683800687184691902574443711925413124093157917021024120527453859137266133215020031505186855660217277527938704344949390954571444317368803954184285002617372214175091349138501354083955966161923703790459876717660499573978714098268968755129605137432811393893781515952709160277807853505471166585152421912353374382719105701132394752461017949536202419609175235897828269845752921524363598541132070972873881839317694657214490706588918000641478318401584081811828435086336876111805294203688173030636241484046358483486865351046024291862745378478749929726762630328353537745215716788119340278318253713880574147131793977897993046536093904032595987371544168624221956458442274803464571846396013488119384053233838290704221809266198179289286097216153921127940813252620260632634353542434826423124966806496431853680617172207367286928923509527077099619942784811457572273768805116230889472147788589089068185864002841997725229179604918033081557356148209983895955201110824536612946448610908827377662397698424968619735092396796645766844009618342196346138548524936083764837507666504728765952957963609119010597717019812400424475217636191859985048250299076774175950613782502047067532842752436589212810968935270841878371598885741040755963601478106597678870724847723385944571991297170449500457196748092339773060841043233964163687766450364961191388122658017759491094441497163142660667788261552135607571267184590465609285357319543976589291139685504909184727240713468723296486919022845495426448747308515568839421461888868517725698866823521716989356195682822399477329087915516633146623197041400380601448371784553426736745205699154465190196387956740993416186154949076335206769555890434595792361377151564102067650215086206198298333420430130554540580255192305003792260596206808882138288016319009199100491714695888155449802009103829336451890008974926819777187783329152514940350317817371934985627843505842627498395651360348293130360300909939361957781038199251469237474793067475720189044305398584487697329086941337040059775538352092881473119568265165620468162298727113542454413444003366973895362822999777714119484817199904492392624086677753447724867987258699180333523016355606918159643554698251141237539307335319010623760829080435276109339245862873141426108070009047992538042189951643998495052591802200606593442495690168152920219737716452531564515805478265579566451447456819682386060748278427380579691161832416367639664451707044206994464330093600863821996855651727991705395450137514964632718466154432488706230039340339692496032231797368861171767760388259274990463827032371841291820896970346531747631384151697738286929492696644889332895868837246831978574905048084869388731514665598847455861993170017111977644233032455031920384792098364612455879690584138257968832706885293368787480421777214639085641474404279196790776106974375238432097034880732741279880092698779338300233219358262036870678641636691829283734926325767082688885661480816233369710698495066359949360334205933875394600259980614675722483279837522390060783769293224179865700254805780559254912389652135142790802140735935330436904068734478806300386812734611280569282806978585139826486636768304445407551021153975536590855024134997689548913961846460943584853173899107927489128529205070983910924400884052146908421645035971445754176211319934962822753756853514368721154565920922177180332613892372664455175242603400481808881325009107908788517639483153374930601786105462029659005349619832714988624793355089867954993784200836334934862233628191428489470865930042105813848437634323315608349930848337090748243485954118049055235952783094758516069701114418859443028074052280433119865643536697065782481408309069619159298897484225892549431499365007365019199021728529644614229554312843477298006686415377194278464067663875969017132464613235038942164229080199793456155289215421881955768147326714684437454863254134014048671888442697825228839262419263796130186172124578752179206328051157146986758140023371547465859266695316636155480094386830791612735590301840728545371501813750764417520548841434655171515084762495309942718534071495031367721671152049939611152884709735739050181380745577731318817208033856136710777823560752431555476226460290433572241717973784304140362668527943151966811576987319939225962349752272365626484164762083309101090579046850519922343154267753402478782397458488780511610808069095375205579871447853025919918740716248464289099829066726940008280012480233778044607406458215971284907949053051147743783263344814483290116925766936739569716734314877164958437290068067907757824989903015962738752061922274575275194562771310680364157631899081377245340029078819349557251193334805196703242217751149098100035062346948520724129564015488552774166252784629074579210545497644710509888292442886209528070093776363552713059411652243369005511686781887738846937578315930317181028768328994503247987987694203422657321584526281875514101238546641366789787431901938460250560163224155537146104969654864519336029920780594462839392713545513251475450616672075664511669307642993312902124376248353695154686056696576541506196514528918736738934539138182080575112071390562278422412715199212232031267940931135025535408077691616439617621513289755095308030709437552262665665740962240135950071629522216175050701815147497038565414634428524681266423118165412888491081645563780059012032782356038258732884096009900088863483804511344817432888081242219397115350072375660686653957135988848850319918615558626256407377738913874168593717425603132100345753093260509395980666166148491985308258017706819115047167068815413684553136719744103342368967588620261917049057230752742625332454606906665533453611448103834216463689830058955043270523167131549937476419803417739426199730850731538571492633154397163383267990793736272400064693542015230253110966539530210231388641184494355669541689237237438302617062798217416612771399209919457384554458958694452333029924658760695729807606682481382927662099801117376653322097564388737075337659585110604851048010932894902707308722885282131953161353935457142171739735909651339509606910024890111883823794527984617266288067417666081378984774405344831509415507400870671609683675616500219614046932582863008424961382163939805979629922553643678355917104421915387315564000149710029447095680181753175947974425408072446067420182976892648194801358488844639420680847297126571453227116164819971564055623584875275946869079781484025566467022637287095232367411289677431103883236253938615306456805884418068044597379602323611676050866318721050698729590385468485701531251355156628007726869141903115063481163623556036776407975053106409516396811794392448936741242054964087713519192384693054849009486901530630124067199460995325193967179629456305848184605502814106875572787599001367009863130823204394930556685338972017892175007385158065212209929467529104684623059620555874080824563869222679782646667793352066585494821674057643568908593721031085803269478749766065980063244860335260143147330903891755944329478599609209286293056352891539041685285530519954210771583709029207028953596965571703960153357676014908766318531392446291679506075641211772423993226683212976812652172027531298975872945491657125234948376573446462723193394812377349066749728879757220813377129743651624047112309086435453468853531083058682209024049797521427634198332927239443527188801450342400002920802581846753597232665562134001822074976922345353970235853112896778484122794200129502006750929396463040514228692098349636343552548173079332240705448127699335723605039119899433267136393784101827392113679470524871049263224768994188374224737202548880004862133280289218359878420778721004274519167267602340085828108079807294640921334305899304619086957518978111578756396950860146229285499757750433786709699163689274430602525911630963559197204472732166928432445375583291842603375504473213551307296231458916421783921920729515780535759678968244617515134013788136077334303308212925278633177127955577161693426505899856141251364526963489712708037696648383872597976110325979331419478620875329437548656361208776953822483596751591198653392025390060537373654753968942514852852874407935119510254665995074938914834887596992404251045049696377559608412496180567553649137874613927149039701628067161972195148866194267242637446522920942070079519024331686533213456334182583300511906121099999212173147374344933472539973081891315260817177604117248943522160372842912965977202281577794439765957723487152361695498665920020938732843130780439542850593901855544421654080781253860971948203144781598704197842637359007657954171676814070345943148603340729277485698708620471983806526611429040829135204453351512608040835384148208611503818777490861215057197724574597724616346585862056349938136962256340919331016888238743922594574869055910368694066569242748078160367608935689686629101346825325644756783411251773457233232325729983055215731909012667361431530624367273431446706887939466924430751681675678304457964946403159900643884227011103513253210141313115595147370223594991402178211651227026658465808644592128434690110656753840494015855950077097813770115581048143801648330711838905553056960623588757732538134257227746475562212907088389873878871992248908415317563048369739324548084520126532099810486657666953397253306255149728929911763500569948892173692504233206301947194393402978610627034797256322397211807736046365051359895701491530940561411287276693911930546484422038498376959672377410685417600334439415941981683790135670321635201505550910877433649983375859152516378089604130831608324882765194709690771161031193706555620678014258306301445711647659333194724562770416496009576666438531605515088751260538031254175988387489249355086647429889171197732956735950280203360338643036809883746998130250944637259572731834864693224818544960620739242044895465671789746122111370967492631272042825712533710004227782667197987930021166557430499424598117593963165403785915902370954322677995917379854161312533046904718687522468673817596524219760084172078600952594732063177510914619033414902359259565033345103945118694357693792186557794039662565073859959566735688090922919342162976583288235534531543403450813627322600990368088677573311701040762838792822156408795265937067420446881718313671678095300785881800430754027622626617704278846401981234540867746872824112771226772922570730400652467205038653624050028075289253191213750083108179831108949735265456188804738351286931380533640102374788904786999862718536298473238382102818283253718782156173308329415868219418905959947406592885069582256889942053188818235969564772241615267398525973454034877505429003683866159368701606526551917343316867660621056252361030600988747827652180111439190509312847290827928249457880590718038068631922710436372511950481113614419887406800910835420161599756517455803462441177560847220326061716911254354182004091106363584054393437623223061530344515121495706857139360511824217057646026302455049383034416815927104373495518266651172702087532910234205315978411534481879229157965463673481078133611623647823971727787772630690852223293100892482096054522233170671050682851967375756307960208487020837874304556212744461953205656039915437010027337379565303108299125900284581697897538370553612784905116534093182919338563969711343052293834158199251728949288208434338425184430452105206352103782135796174097235219045119124562036201337411747343999370395339100191397054935530428562789369075753792179336636840787995700699456269739435672949510279901208717497741233332250640847752761195956385502420848922329776938919811810027765069402384734509352320234424060122199185634336681283457510595569695690923140321798545187227877484885443848053553978223114199020113033503874870990684709588942753040655969267220130988165306828517043525686995692211381312276188214706049249648527373335110602269897925669928614033144185747087816804397785768156148051095426277312437834657843884877215751440947843137932427739169957140775346272953089657320467300637685960168979125426326406297252140792552862787066478173830825664843963292759036408051843552680843944945052582489861305479082258982763058300844724736648409937134123295289483114806346932279623373522934233231971538243415511939623941901710496994773528711603998216179212370868955326361214060214308653943293811635557247955975579428519427989719938625093527342382034063150322440973217235400160653126252167512655739352344473495933225197728902546352857913370047535237946752865410204529361753390637051463703613429218796289008149330876291707527715813819957197566951104437690849218497335290305488798093302150711695711808177634555349491704799977263265815881437133977380163082989573317921507230096976140822939157406950940557577743001525105102834004481488354632533518792067501889344836720130406314719178780548259042745526042947891095961091281220556833554366305187701998685945318149423235425969452543020331643291352353521365639574765772183218135428113459885180950033919781071790176510972140879894475191249554872124814345117967022484699517316428854160353087843683219908497914278182297437841734169908026792608165458952568058746927688119364643197142744264342659481697021215024767885298263097093139411630823445997196369141104744746793726529283510456429332852775106318642847766249124740716753104132706925752443657938643285513788272708619765083529602964518905651435939838595779324880189966936827109890890141061413922932529173675664490992088406352935579270173825885358145234378360276962894282974798337889504165322421645975075713092720547316523961146519064178317227040148388552527083758914586629506827272664220959515940434853401271045251570904933222690464613382458675027932841426451768700001956717642602865696792144572853798478690966569780032718134877182275130194701222612534071215372306456298026324689328423019464467494675556796524154717367844773462716644953335939631283686952020076597467280239282597326846021375035491676502518316464373116421041436273302395803562927953255135097448097294657962239128751807692228202402765359038927600383519761242811760720049415944574200295181448548625397187904066744635898018474179256052248280320813738021577595809188490650664735707036534690070612378422570910132554887077136015790419912022214437317370630924934553902935009569135717853142445003647310702495472813206826852275213036663942718381421598350251646721200523538826870170943183726125430458053862464218522867211572905345734337596701136865422841872278157171485452263249553886559313157993382552145222610349535297983577910417291118687558624918852591753676456997292862271448407088076326815023582501976635102825371334600703082979904095512369716405496792411393558950870741035160262502115406522192292762818673590519724474539746588819242844064520962926206117567787782831936486741269392675125097534413459150871197750991506154670193578122522725844820475813412987186553227363562817557697575277507026642206976163895718327127239528501527362210548350522343884537795107857993208801013765282012967603242655652029990553764499592594782889140530924450921185183094700713848328843218533169538682111663661759130739791648585918564963896998888727026963478162134085023513641370189903027507716588856486157760200221457362346221381994105873271563688849101301149882660129353047995548624059469454098631331486533517560883416942684659518577096615051104964595225435347261691974450752937546446169397175973186237703081036559347897031741682033073911893265389327958774128108594070510145644195161852818427801093880090287160598110344089353791023731503770047876797644534557430714916871745027654035154611198153660777891010073430765387503095432848892203404863938073867591993056863576235042417894886101176887029156888600108423736848969829326733443813364974316685334662892067587523683669828588377445876580695581646144981629388007985655132514278435538512907459850353116687831168697497767295893303950432801280159430374054011477684549362099269287160094949782689790683908941036354952282207167528953313774577705050440859201176207445749807104883949684214768637911714355342798491215467763231708145596638293185998908027972328252978775478129126434370795709092207183083642433053593255785086153745593633060435178205112826381973980655714641906995183154829599926285119165305211530573526145922972163248789131967108673435083995367763008736271645278059955155220174209019764044776533333290343834242272754463272773795876016479983054498249107419286169318821299064383104761344777073044626005233392502781362516889898575343598828397896974270388122074703671188006289662165035645442858778852210930816073156507141843645821636608488534496754185526897073306360504836755732071802806808988435420284412121824624764396223679205040182622363089714933229239908278825074837085730230127468638629286453898772461964479653214317949482066783905320937652116989781522887186109963630873037414366255815010855332080434542217426695269399890026672129758478015201507747967741938823464251372049620322125102188009141443421220977111457693292079518472943342010310454199551173897112631665077950576259609909762379786850508582165465459704979858450734251732434012564958280720407749082234252754369687917247287160512854050759615542519640488249875562641636014427544180786561773930847028071591438096672703723522222430027492848143884014871054797529610227277238496347953410557916828296101561269368085957754589504203269116721374423581775593563357581197104515641267414844785551865805545159923266869222685878969155627186422698179931630584463537566893690738547690501191383272875073380715882644713260917993963676389542978611786566183067468023720806157138916991274376527788095053075855985053922868938659184281432321729753070200190128133565800943762032593829977047833624171881632281689067398398502088032877278991356221271487190221610507211907896124486614770522210570638969004771503207476759136243678685811428863505613391618983908878996727397851769617598301073109731698407980059819368577839068854653597267130846869043777111847664918208353919596610371852155649187905236330165213889004449608602146152510304211089045464489783529255687013216777718174991382245469517799739580822009213963893926866555757760111003997567103492060178040799478514251253410927643440781378080167623271359700284544296178341947024994684703736224823020610127011882874789950541348424921196989037387253144865725980775537437840070268721250590122184129938046800535892820005782988918077695633542344548942374970522983031352913219457084970326399389793560781038400605462057171460767600847316132237556499998235218393620473415189037748040793650630449833051433730923553391251970128006470127398509933856605723930658717075751477247366745314190342047655062001327098824446132062124317518588941119688337664756467397987064765353605642872101038887929559890203031439706399457888266319820102594779352797079922017006094338816750506141318443723409506902504146748407144914699268532076958341547871487818141802996000045152642825202094123414453997650564932769231123902009571685598596437415074438709361000310545059548101082078640447880040301839537784193973964471748680107609778666823794239575037417318722834663840200853570800907131398637699438368703458363097523998191129814892969806431491219151577356410550541357188414825524950647585560968527865484015895330915025722515912954510921696888304986311013055358626553505327188568390321860372215868606148004325708142973541431324804939240771696810356317844402799219837236733878559681844385916456030351246750807886239257755801926272046271729379944629931177002113946769119982247028623814787377538129559884065009841729120164836547650651819293059630088936233899293388740499436102158924584682381410682068179720268649426101899880186167403209326441777029892441466784347411027911804122828586605288181757639545932570591527400356587192311934743895660425349416003445702285086829712649259696506230075794431210126633295581335478782381730195937465116202719357340612505544301416370821728964543631627927403402988342461909528104973287125439352066250814086052830590280489755327023794221191880832509505663270700739096751004650375127565120049109632609770158420329870919295992051737806834183169761673202886084718286721535524802938276032178313823794498834104964195403023597141623828397935986560898169810755404181383361734351821379746313464720959264408712644727410673915983733601479215705661865058097910383744203917533528991227671722490270673230466523581634452030550201802297267069236575899088619413641560905481346419835912084877701506831271035857405572202830303747490210684652855263363460383222250729239217919899665382021100196384653220239876928206254295095873685511803515819172633315653414828598540899163153874916501360654260354916403385030859746059982219761357583152075902287403229189678232865770482593565724590250237637882960039545851203544202877767084106871127532174675978424338339021868242620802798796408611835505394707309919294844738017642415744150937786557328452244227050356162651134772581512182689256308124941105550639313263889778119870221569886312294519875138736123448079787130240722643265888815787984371616576846807257692933957307126795089625884863620973781785222275392373633812337944861012410698905366620494277362515978760690927198573492296364460339694337070050182149514353899053931323643614322610184788961510484845774750544201809221499105979100550195780043040069077095293379908486534971788463113053602946605049370781240515671241608338000992171535047423181582285025479855327382376086559769943050424518580554854081606239973608630263155702720499959493686859605623393356966910275394771873382443256788045039241278722981938913449102385657594905674573884421607220065992653288798128644556209330211098241544279004185431651028764984315752884631409717855638719087948638300000808287338772439827245086341284074629836546882213564026669967433282672648551729994617277197685599351237484372949007130638966449750512168983622604932395719135422458302847371207722960656789764300489228722640935378884797003722027388812094093263319720541221510583526995190478368169304681772166906864895737540615733153892005003637240327930401423992709514287401239959393347829991471218184186744831478039721470805135521511178398616652453614435467527795649059537378659153484804118661666626943030082872831183270958963188650743694054260033875480968742215030825664315688367428645105387556071035161588863569422481303957461314209765700620396277876321601090254867513751973375528161560437856432362857765786778486344717314619808688705941348457719655016371243821199251966444841475842990131731704039331052732068773163068480783787339292490093920446486118082395598732784770464571690939807773824095504905641207613298215207578899077197908897306451523157490669038357646294909103717132337699089124413446147515145477587115487299568930291361973428277023419370212277176685168075551897060452780050387004536790915653935577407534188952591447081223684648190077709342802342440244829597765608710766717591982404247326641793289989729347178871436465390470040710384917770234557438072910891157987192750213806559638070267519716777474158820222454568521675558497778186195071184405993891203172918888397752995878778137637655463999911635508815096844471636887211770974309665899881658862384769690503003457178094393888105556552041904881672631222184419273876386912587268094804170643149974575735902966860744331854096311871741770520328428045547845447113981499024739867818413965833098031744494952641144037719260906916742245880633869049708404502267550236021015523421927162309587825586385426138344143518521950815996524829832171969319315966881102943460179179450279581516239494396377623508993454511038865606817931183862469554212432373819970989510739552551016587346979254494281157601193871852528508496246716957392988848793574239465885682862246734477114987598829859659047051735595189168562228616434620355424604151593618218145036964826356535586140881677172864118159138523426560047257113606081656314090110453342059388882511183260279554819023016641754565145048060248221164629148683187447626782423586274018969357301637947373255884815661720799229507635320477980698600383870760760990320438575966590960520132954154167867890554213657177816639115312943798507504035044769463994120012910521477315897308743579481351563249144738544475200912605521701605734434163330504260958772581120405352325972403219414402393248950119926826282736086871547549547811328247288338034687197145654448142681179261923014469487502775293364481029991581656337467313916563563765404676526120034846257583878577167849009941706835399445864324653997903253351182176888207852420424929131574640642748964183679704838528292275589084805578001839267689492629248681061032097216438748891601272624339468199071859928736485956240302443996292451374854695308296781076396779515080228293657595472637071849124549853458563647993190252903408966222261900872736452326686441674982547485174338635395005928773671043151035986955664766113798263958563994313162016414830148839275269411882650330373861236904964559072660470818980984255336822072938832011291233208279481969482072188576268323973148353045771569062192950184265908622997533318761957482255965786783190918415116550271462425129202307464084822114883349754928114309075985848654151774551701611251995037215352605040414932512175314127039786274208786261543290949847410564871507622481391395102560553374427838514783684763011076152138998792132532696479070368127076607298884123315160288542974266565327167067252361299935246051602280372862461524531051447414408077286033434621990629773469535830824879154253071414997691847259359121891431614143357477218096281749105039610167408463047290787338882574732619669824225169872339558019456192338081538902456329709093853674700666078940264590666183337059366124821093083383134804499671114078766786827703297391573638520991812619669061834710595654072284628725854183691284074996919901502622054606626582889064600106504814067054573535140046083866782154346824696582523017384697923781891353217967107057751400196213752158276598851810155096132177792156944553754664963664523762199232967631224116238153494095794009945209734318351098148164383866899216428917699391986694955914739095350388344805715408716013701866652590099586693453913272535955276949226718312600734179858242180451507448543279064181689910079581819240974318283520359698638035057364718513439632219178918108430800199554114701360331952281376629901032542836708807281612866021851516696933497840761176752664627929052494793528233041003086438703516485072967924591135413417840002965042625075030260457258356785720866290659595600786806455384268810155808410151994547017479925396249336795396712144286681289550693072281159086015164472378123225418418860027072728150849003181721635435949025493121421405035005322020244345850525286050284538715932321248229605742070327162680606409614004595331383987631869013661135658526751124005821168733613561438132132905037419679460738283369743576106978556976943314577175666939473518818929513250865260068190969698350725279694271911473481077782190681545662176495429230644355624575316926108190350560900999209773068287555198530143943640663073229695916855313426749680008108196487067181612616643846082218916874260499150551281904194081011606885762760389550979123006127617168056072002355558903119999091397033915123302507560344134972452184477925208514407938363194408898813207475605264282370199953248036431193889250244278392054906089851176125451414392588327775557718099868633811146614550863486040971671954653944471649791735666493577793152038104062837440734665595349168148259259464872409019681228044732087976212538068707726303739425463410859570428696128350067450091057404727202673486518583941083546374112086735311443481829040216110863218464372977814989802578125314544074619905670778015936593141195699013344421350639367075070766253337543663111860614343943615888318978322838227250037236092673547314224253744763591899505631615862250749197061541551909446926194456813975987900022562513827571190070734018085195525528957888447686809263029018941731290884208226157878576416025057982050526419008752682459873381700573269812104583948938321807855964668892433176117376500792476087812506014906713138989424058671621256235036875201926508832760344162381948980580538269336430479488186439539532579873562831483006676352318588548369178503244081426627670261389372557262902454020099632057416935835971828810727381356099240117386007915122353120804697569324350811312124596693709533918885602901249898738255251362887351021157386873656107461893631271874627831477899132942980221336472729343283893504713725585054024467134339987486673877896028459977587213302789314771907138766773425774293940890534052883089606451392033191634239116735338606900590335522237260401829128089523267293019003419869513372121219815400726688004947863899246261260394040384744488959281565681451762016966823489145030626298829586174417429227863036979020778169328324751839290724250128624102946791926328266752134535988637995115989662569859638263511436967726857993539550441539615335988996654933849695524428370168176742338034753223920744553839110200981059695972210363987788089768856876039060844440409387465107048236086604032908563430468296499540830073287732776520731081847375833100590376094245791139928976341605250334871198667922021142927918976229602446436927471683069278866684544170048372307362580095994858636976955565374770564464610297175444914437322058982065894922202584586106215836130952331326540594862640546709709468591842590538169083314609324348029405336347800372165770063455912885840349436705260123714376599770316441924661755952471483177610239203298797392118924495611806977607164066189472525781176561629592733118901335659513281811506005514031462755299100890967066493625338967722700719926855018946211781123091227763748492813000927714711992674353838784965612955038581108734937356887209042137167416925667657483205610193801468448374467170088104617266293755785386498464778276368364438080153305165168149661979187464623635146503720821949979079003735827841075469563040817991890988628660019577069347536121723036951141038303156070669334634283393166820365724229659934453087044670489479432689536306210821054236872780469034103304066053875555374748888225019406561917015468033998607238845290259885277032277855240253351655705985527682084135526548805334246044777885006911606456815866864163338120222957499801408352776881961176378867839661997738620961215963064945983745894374463933012211268570940484643058476925470386615967699383600999892002217797463173874686026280433595894010172843126138884009820604623869235858116849825593598118176053455761808866052967370142661087535847291408812363825305383622217826718149172126227257088294339088682005092061613841318583281217784653010447360154887380003308693840501118953383371845198494741322686940292231743456681600467314430010917527502337978917161602846286252986933050472973447661833500411460693336270322747437902400231234082543544872628292077936724445924237558884077159186843591687938932654793962437081011062536977579888449163069128169051755697647924620726035706563871172733873733875188931108849760429384278683518115020376484646031611093610991583183251383751039229821287470153715557398456977712326937759758624213468248285940034762734756490045824653277782630097495997669245346862363877414428084610269397910824354871537427249786160956036294512539549015978543612331593509354138214491226748475210027702166332480416947802722983346559693677740793375480548661395783119376822044558206147892316437772491575833105593882352227968109678228619580101260444092926163525850049419240595980513312297364406395612567775822731430728921645231713351281163766199938028125524049462857103943853327959480786407231233433884926155247868331538538222008028501860272681336359415921974990866132009366082075589407619768070376596999081912386380230105217684890614213037797523382579313217027181452901651345289611209701642959407557450436634766291301455101319149662240467912821542262900649614776464318493059432363844160129152241985252626888274608654122969761012611883226951448797545666029033501014210022842996046895135324197830146565385885054470513335861605998063590359721899707547102091381382763890615339123220073808337830590224694908482585820325672911967730654698876132228216386425659971315431610440638559909638705185891185602797174285999565012294302931328055063331137181011549771945659273460876815984631600428005866302233405212704993471566498756554108231267273140020931818986479616504013078787786285476844294431829838678634837793855802220792398116516727938810623775231874407709371231182820831715081517884764021426891451393524988852553203862517776365513535122641276236610764229333923493768681067856780280397206212388268255082326791304219143962311009662847905278374190953402965060253469304969542309381964220284480700621344215895317674983204671678767307638118686787840356321374907067774188026161203558472450755938909559141997496744190588757731502203559298511001877493597571217479781514612484497609522843001137637184396805411141919727492647003575224089095491616813792636203056108851442009174054439721647128114795616910909630724091726172505273139317818218087328170621084175594515056940889556043915404660515361644331926252629371659477979888645118346940846518884625239193395882991012872064825879881418528762700634886365436958273255093431181738130891631149944975787237034092557402759498814297542829104526541039788576017208346598862234599995209868912484059406834721571164150535437321466420427063957369965083201574954795727389905170197008511908368728931430442260240565416101725801544339511710344678903493557463628777362326065630142617659580836134765493896099923078232545359741551116666097456082033611283976681886479648923126821326967397367736612030550151005118977759907721884295132399054034705820531629566491597996802808213748233031481442678193057906646490225469885220004370063364984527618916975898499180995566761596328385691083645013026020765403906286751474860486975559060263158590242751947184892882484571033198162392708724787361523471995901325770811844635148556876596151919127823765451456910542058572906257345394519854466610157978162733550766876002777130454336620696508683525468470796191860407560221828528821496307186997216199514085408739878533347693513939717184250983194603297468631030323821623745416531666509615588735394199207034018880159551672451274056625383195161034219599785143673255608413247783685987184153394780795305123889573913243325109582806814905571039113433643209926468668156626307031744627035837367590977163609151365549443801906321239491705020196763046334735890440897670100388780781932846564813885851893734305898339405527667961058535132461840382289058017456418096231400383315049489140254139164860892480186060115412599568534411311895567006891244697280559466508769423093589132698889632776835635784448490574719614736236704957855305855958318094077461477676310289677439359592336973342255039204893213635946687787153718664766210921644860076172573773090688148044853988031817591048865571156209204303874699934077765429985248398823512163272079069706651622690864519984002016423814508229060985122845859120420954778266033660339151063565477955327435067989588532533946702209548259622046169214489148803625297632665795472783008882000828329718658457194022206051805693245433831368023120461839546452495102109676223325104198718516119179445477736680528959291284899251917746241110855458394690400240129937083283853463498500851669430342640548873532502681626444209222206992835439484509511430434796933693758744757190979967406775353440668991237785546202823759177532510703158977465819466995454366852770612248974882543409247918789315926913914017532417136694123032118159165950199396122134028846438923717752185516241276682231852227148635623773660967589891833571870188563912953160602263640748695892983535676838107632278115933272052574853964418584066078642414142278493866828846549282822066431281090623610344807504436513825433232593878358234232373271935731072177027174893695217217464882986860304715154743374997429602152580887189188400256601551226461677319893222283361332850046220923210894609853990753845748539604545471778486102009558065639128404467871915692603637455740295249585239234856414544630725184444545556562096168917883906689912398496369728394334243072447955303848636902685000019302055459637967965930048373376332167477758803907706557302628864559549500390281104386793064455419837783506581825300288548488117467411455394187325431513945949778230141628435275842220814412578883802210597276851277565026859259983106124440527778974651438703180503596135175211857852370632831600793116543498957527676477629521806557911432264000741417919611727232690188998853695646840268759570374898518651656286447657133836478565455180869260188781743943431705431516670505839493217059549780786101978856786399266676891531934431989966748135933228515466479713587060990876916788236205244996303192234574574106027993057327969828763153228890358030062713146006974791647652270446421837577102016208880042765098560500114857298889479721871186421018029164437854836825126439593436917625350601510672896199034507509353772664781022104090454608446164393629868557740642495389028591979103759848750658776357758412807377588729243807669058839855945865282385253518796963162547390467625058649866362668732880484676455395401826627308492973331946174520234257517469004632116470302658629021337853116767379354028207222893064077965736003772451162822373855755141038145396846593762933577387461245423668326794816564361862988755135935279779580319929974910736028679286214169956383401348235763334091777895457290386781634343912338078595821326834189195608242597507767216363123256431312819299134548341859528532899052491522614529407945681191968528164119998700026279342219519109993755111662654532067528245590384755532854466916639124287930698289693940790888866771603622930835154797129214773290726454131331804803986355394216524618595546848021860372553812332690894204864051640167875659730380364582609066920957502027154389966757105901280681899763913360114154470043822552735404117082513679053160059883528479721427934564775985114418128751461473455050871581295418959644200382140402740010568371854757094867650012437308790006534159008967154501950430884666653478999193688661164894001640497666975761620042769833137085510256541492743123482551957863762268735444616189112224647072137600705118941303625653406036113871151961492143871313568353010806289787972430311373088653915987426833095070225398471527438281132478401148462526037046933235769956799834010121907367866596987621945814756883149518921854718629760468196101515197191081385534279507015816166193592277586314911723336505030818464771509061440963034919042358318609199631616259978467579228504901865996453943403525678976245730309108002276095361499393563403561255774259575107810084005620567790046509072261750845939748253465781851845279917777661598606915308949238403510519803053336632305190472026251793867714936633381423249611034561883540138252921859939150960382258269597209498188603683995643448656250152770168040427443338984873183646212217868644097895748943953127096700540142884345780026707599263692193837655609585360432642777200508338435376660141885168267429875446883049332801951781241918589404447563476809704492548055545439320693009907416986325469386003586493324662679497386806763266205868356577044524111626985810150929336229807734327541255762893869258743089034534920647124463598899516166148940378156559799190838048740876414074107122732849560314903319045313204666206856896020278589283041721012973302728765317609033383116445156475848044469541791789833036859722087049042887728691676751365871924171805014857265034602909564693569606299071330265365139997601816461253871006423506217602842719991654461239097456668984549643572117932950869754822016133961885579506644619617641992599209556141354823631942788580534843530000350824236618089018652473238604905326478494576682379063627896287468024635114265021002258376024075871829755860005070180184176722899877185960601203478603286028419104802131659794184706437585205861262515064290667732479431579005084466808194925678830341636892597400303392511211923516681042299424338856588694958270575319771124033851589831704287958899662981918624709679493501615979637344578044277610860772786931745681939524419841127547068220882865322169066108586918565912490233706891792491589497989140471865185581837917857980227522864588015129026689127354445280894177141197396249816827893918435916653467147242050011123020863851563380625399916233084712503051066360699009895040139535661888192854755577340722639272730635840116585857139036425132188641832690161443249913191446158513089883984398423840240133192047109054689981708936817272613804417861303026785123729421227081338505028823275698234673272526739601456092215242832772955912935762183013764299754441089693111834053633764357916782497037054096111683856931644410858770660389955681265743667120473016985357917699991175344918650899013761712641897870775530207280190272053500079249618266996588152121101377536578649226273279313239568976179395068963008019757172515998978719369351942107308169292286483079243537661351833890738813317423404180592327506141174295750953822588023921963506027857338904947910248718939481971055878424656868269017166777583130764826002064580895249885317966367188738059888107958811020377064878203954776801572601372042491042109650960435992793161527454584103576184587074058811382117776168672493611087773940593939774853579689071349740240827659157598531142056673702208000140821841093087961838651153309404126193241594886416784663400402723755778506869711529486833937525437847843593150138189586102763248351130908972142342494609950696654662039133816514539349231595216145728148008918692162664035087841526715986800405101286129338740876831359524433841444224511684064751028394517910267609868517886475431832407800868626217221836265909664064244885971046281950553356252128532942547305345254088894167059035634564453421681892575043432470017690254453254505712891911820922195515205225354325389746212641118536780925420118875428276054718359608685286820894545849452088348199876371121227679749237030841296811335568459912336338751733811216206834021951208968174182144987835434056364904704047432154180217142114197179235916953406210454489540201008415937427312640912551848084368569055830287668221216243504515282139436966487111172277576576053332572297883086650447133852399805943155016701102377285032487381998105459340385100287452592379334835754374915144032432998707014890571744336154267129538144855809020184592616037109178145070336408577282983017318785752663725209308601817746537741939969065451254251170989898672163886827318111452274733580091956940698422284314076375303255126407474512946351470295644937842363024747722062936414958691377467779467236062184212146574782445298415992729153036013157951280425670377698772378315786550717812458896528423465641707988026295147791814987857825905953634230256877813423662510450488292164880066097724125098823481880800383667852340894584287556717927297897691694493739606623852446828795314079832357208412437048849590316201418840400023231755804545948240091176407428978060917997224877126663876323493423473801097081508639319430637967786197734494667031389217747458793374207777939121614628263910673543951944991315290038583132704660636786480711558012714102366314628314955022386147667019444739186350314616254493095433698643157314804294747574654843573666921051129127556585222226767502639862638384657672031779752437213722558007661379466156939509224470959213731274467251021210134413736438782313806558283160830999560049348725075137931496249480043255163955902268564654802076321440993977779150642740939444528846242933337140187623457054979656398782984932019910930658836147671718393651867273960577083984004869088259017289447768025638097272202514273671628203415747756873218305840072290368911069873159729387977327402271962927008089620264357341187028572452912922299474217842331161222930129532859326538182421570093648478542415978037153608869704008068677948589887989014486152562548639529242921919191730838488612032445293745547212874977716987384035679935548286772827094838042199865280521270234509786409328059323908470758300904317418544129980578011499892190139467211128134552127679172114492349838701200369992268037087278482195397465329232256058200824423341984731952347852617578077480787660023026518456336431426365444669531708024128090368959384021091994739804302142862073012594801137108651793862351934373055952936711898126650862123359829816846611406307711393820956519780014185149218290324111999295247818040212573691458154728619624806416035877007815901150121374936401379629475921423813670959597793961027933535014910332105907972166453512241993151804439889876631170151507423292358829891713457068827002919877988864860150121661108911550554227747297718235947379333329506190463759164729202172656870921611762210446791109659822516150100418375473780297887944830298868617568001249511245840071248404862644620726963364731979652485669307030113986447831710955686582615963564377497921467746254215436625342573024007414637457468957404482830604385740457623358160494369297797916463775964065299351700165109261740049849068378939162430454192940526282916973134283400286012309248796851377259492383697223984899553559830653882057646190988514719209681198756742147496951252213201024768576753978540311946376997386026390956010642361017588253058792775506127941349481905227766519232947208905973559611384981117086930007794194072874980699245490648304836815950227853588908346414254600419908867978923317234126301620114870828726770566476272937710684914587600533495679130997064880512339964884442221566173491979893365455146687921131199397849126065198160627628493934785785487753277292316331038742869182609443673474509816840854158251052443814861389057399312045387532515712227481775160217358744274066069098583335236891713307966473161624171463675679148317104355363764365854726864160996945075820182356219157094663216393605106943851886231553470088113952259886925814852291700282093244081656836724317924802236984624509161193625861752404780858787057694410959090178405589180522672253454540342824127723935711536151921382529973728595783527422271273128002625003416761425818887130668134444313696633964655529207180653322780735537400370197771840729599181508078622185285963757984608216517698636569460722580257060580179321544916174179898182920330010232318884610820898100761899648299170568292464158046480712285137182532093051194059251490950535504650096445183770322230103411934583911116393523722771437155348975118556506337313999378857893222910182458425694068743237465168082628621038098779879403690586135471636257448004995287894429896998637789248569663077699474918423871963803964683410662976268270559773294548925576591217866954847040405052907790704678290777631530288399372797123576824910788956444592956166560199083684631247428011477355627720490336270262027508636763256340854244766501986024830638594311783803692730329788584181857324697921245614696364124111466614208272927140971968027525993291815346135690487295379086084572187197186629162182187957011860337828873785830244685336565298973795278923995440172871638451009836762503219942595249998468052938539327428361682929267869611927703104276098145616782365331105775157925173423689558630414044200603947730400056012470478548147003327576427769625045398994894301719660554295683094673116404498272896239699863122213344653409708688547202462826298640033233748497699489558322342198095367836906747310544947778108123031551155062574198645476018522689035964177423729576994706220430736334598118785970131808106722267218523358670697401538395275521910564711875512388145357506896694292516131017525404468643166701002879529800703889403502229876940426878603858098212373449381335498352757863253504232283047657473049746303743794696764159185842045441359622011220816755971008061296146423621881063161921557302386025484733094483815069436927844066443807802585912838240608141530098802677553894374932467378856380623072873501969443704591333971357212124535851876502629137090820156045460264196647815410270058599282503924537680479761627825249738851942702387301176494799917501053176423965812325239504865539651855035156974085705800359821053300662521580536194087966897292098680983383417820567352657892245895388033079501085992349743242343288749039623976393887906654842745125300215936648204020046390369091530268750825800454923420745099941570143603971006267987932703654027214677969212791355554007165690399104182655253009030258655246946779054387895235799116791048212913526401346867260685256134420513555392469857120787917336797892448683509165807789749961952204308877018288714803889694051868143582944861170181390987947443650533279796851628888018816627864690288720735592954524125449190113407752964852367367716213748371941165389529435044825285923314936748973283481734698074614192706929787941318367604978365334304497847020836802602789064532435738293724201643435233168775130668990874783527205854321310021356651934416047714032471752126627432611245097354498816716561616581390821674720123669458118689130660066828235461792553634251197561272436264547928326853401040391704367622620427490638726629217161012916831659183840960239721876928562015891574978190731342812732725481263932245148637630993193323582709486056472141246767727219307872024897652753202286797698552918298028850797622391046580549937085483912204613586218491057221926693094384108696346335078704803261768847375021250435547530814191566731453169121923443543892194866789173158243861278805362737295896215092965552327384419848190704231113002836457683572121952673066404098152348590677256697474082579024350393447883822206005832154972830166158851069100746239986662402819069577863316597507214208599441145856969261511253382490109254540470733115252162768381684917649536190549731441530999136755081745530118623755519013989081411291152829758988295036394265718602614537322407996860067158153503958288744180903770333393594815987266910153308099526090720731268855647070894111197204934413581052553122135239026256515584256470255767011999408094280613106420769640810358254362502795768175729938229416115335707039200331470751843689530878788589397385444434598611651348701096333455201487336263104554731119785572528683787412744702439278351795716688052277916518022688384886175673906997562934629929435275520760305373023970488764220736844064028086941517924849137746551408946833722317303141430682941120307179415699548631379157393570003243589154170799348805161797379917653465288499724691585526431992848432099000498943719409645800381744468464449778820832799343291622945243441040905871035011027599296582422649839492403933217692716323467869870898323564761512789957089845302225205605283974394858489857712795077047323208318562234410811009280286041328584093529244731497740073158291774685512132888360531154524086274238030836326140237825326713262296662451036844233778606894127640158708491266436075157278804167620510577415934367380316458588905747549552388237709925540322011450885967012794538053151120397409036215918142314890271401805880847946648347302151339056495976561192717850186758338645955221933440650251591974515463508161349440383491346995037985908058366899310538362095451027294114177685693814423254913217079388366426191849952008920668705895800399514219478565528342018486901000928200244383120701049354806500400568178918824898324994686228069412680185307005203755527436760230987021229315012748067738848159127972004225035076954840242463609718040309031560046026062617875473449110195800381881099022329962785385243196729885907993850157820689437197214032212962235774156033428222975750657311877798795167193044150962712791373673171981063980990023265982496853075623358893506827696935460953131725494144699613048904643568741286606237458205628011707907718751643513529544288170272253526840128632018306344398306284347084291600720285995085329033630529412997947919851700560250084343511498127031767448281706724739985751704757152437845753794701693779724029292980475188839808178689965997067642306178213143742962408929307828383305659316911049522638405965975145646291656411436227577608513876054380887890083532485253751566603263885592926118099601898352767674341404307456562047005298146373313848807061127662087266344166254030634734481736138722396685329451641366008386692598683353168362479242647736419583711358404876558164830273692287995157913104145292180504411279794340216634058225751477969864974748103716601834358167108035066947780825291479211958728518147123796638675877851695703380184281738625117040043135597204377101890515574526182917780558302782344990620617570160063582390158492970271256391960356479721180858577719095161662727307465539575949769720996836166289999889158087079826634516407004953753770840431523699996842726511498483786851097756704510172869735772234230386565292459431223569221738753797479208190298303830025217843716120696666379453785300433202199369801204656504220309105200486641994763703485824011884696801908849603691977203849378571599488103001705432181803814199784244688037645605416089829793881427660568812345753667901853562507698528341087935945760173533931329370984155603514237512083926242058103663516680427268739213934108552596104996274934319658334602340013442502056754979479666093323736801668576798044786647434924118127143015675491704953513926453709504399415154106274303955087221900390648565036601105129555261372039334354746039174729333320362412116582502811539128890862574042346771211174745592120834266860873531869979756474763657989444963654750890495566050105363870393395751377615486548475375703207979983880753842473121606975337629554255425938202698178569707062974457010344253580332544494508744443970827350802007927590586415368366982676344318519157396413793859509088352263233156982448066693786067582562505144921257256652110330946250968346953839102332072559720319744683153104004517377812527668468986323883134785149790471026618829407443730310022978750337172688936401256402371586221766505647663512064185871624083273358726288269293235676982244661395372181234093521399756415124841924497913877039754466654430349484070622695637816843193952548031157028844086690268509344490102077349858298599166783985133806917266893633975799218338956654652782487748343767462006895728506307657562165417919537497107571611601199433993827483566969833092299408882736789164316690499549155503583176224468255583320755854401917733762804590799720251757264738042349535979275855904258369720391727545514540731781417018897497914510969726759492646291914672477303124322537620296979987300987175473624202857196359275139608593419676444539703647133066799700458132724567446517010242814804631382118338372988221864399124602904617819660732190922220925869552325585854098531480649076923083767081348052998168823075718816560677365983481311998188379814027811831014677397606458956655392595960334400883390750261671349407336025029883237215922154841504817752001856221168224060537941394661000607328524500779454132556357395081759355213919334607197806874476151398765051459775554082978074010815237669069691894733939931375850360458827758213996211125515284774324110918068025314585119673297752292080524381182085743790394779041511699203569774590311853398016232815928734114174559786762245619826005023395387717293897363719066674750917226534207144850915417564813090525508577032603552685312378536515698184418142319843880125795701707902668543944035060995495384434769506860901157609550397657130610628252557407358599707131953152133686814614205874811885930233229283811997929136418381124188055658468083973168962036374773344244610248992772165312879269961043162887955541397243454420988554120810816128557854771790840299215458247997238360010385317546202089112486881690425789097568238230765056734990631797337991002395019331652915012418658034458808302349611606698846261546680799710160301254817049014144283819975544077747738889680388173577849929142872309905980730938920251183910090370099621470253712433052334183304148995405148158957668758696809328298922626741310383177464200016658773294099477193702863299623788652590493997333685157876898619144785779709147323784569707007473927412501914706886445395457940436134842499431229124137567685507205022918350748113153189104162250817251657761415996045394351519646825173905345690633130729139886127125245037348019717530708181492973906140410827428643662057552225325641693907214986127830705290056121927247533872681827302062682078587159213709082418788730050898110784006253195736905203830590826585370794734112800794867576853727845335835084474218969216293653887712626189045698536403125964402683557977396448660923997471648540759077854784197352193672190923884867681630936264736100801558271695531095074744317290261237609876809413268573878288862861959966511058993023569509436954455447252327529035164341805634025446509842700894149517875845606435784163523417989024719172883145663572593194593743631749929760136196849169424662149123206696775125557087081042010117390270031477810888846188443841054393455127161178273251379705414960686600528573913231586261641599395512867029415181302273822485802765434493155182185943614050874400036784962531493355226459284820628436333920868072680728093594209650202629311730145049522153763813635358402890716048454930118864250863635805385692372488104963833998275096916570503352615894404817620500945684553624191710749774945658685262277436856279013603138246187369185331944908615215672340339108826887804355374463880947098023437959093588271878052866117699846682152064034992583606970154292925101161946133518063529691254226527161192226778301024184100833621501533453789797857824888984998364331009513369157474795238765406870737742305202586736942268205574085258998502750291299973807908007030256325516766096842985669725772791947947295511517253468095908898577954067308562684770878181895576161699910681786971729270834267539884452069290398239826709574562424707905656416326668099326989803755949686354365779410186258015141817354996832389078389103651617638521638729438826841024120138499011218821081976602716840834007332795066259474410408067029314505589922500312787541198172803397416104903774100871913027530794265495603798019150030445892502622045508941576535747413393998009990076119585100419483514743839897535664610944421321524755737659364319366308100134083047694519893463204345240772676472064796266086104974248711442610598946382633493356258508290687785484066299621223861082890256765193914858601782258763557900348642436020796190522669526102053610862197547170814279935769700014739678187940088731620842414653770817801266981558658929662981099284860288811181669405721487926518335911830181252792774534738460400192875390607369931132173337161772609885520014095076309383788900972386990969238554850596806504341849979725219717296629366160293197263227436418704585861242623254221993010402987621216204433717375266682703420169410815803267884337722121517075824066491357749308692374305448404582897696059524944189093183049063796411330605091813691674853927817110074677644217190447961039067158542338390392638303473860024257803122382816550289072599985370451094536614643652936363674648016814536383151311145838482495663195641751670863468771078162081687045950994076666013683694138881761616744319620602173389755011876180742790548792672022330083474039491268047551171566432127445413784994587384063783003348051471290221234614325212101002190427156140480064984076994308387497289994547871361215635795149355315559787771824831432573504661551514796029726130628172451520416465828457672331904181191580654721109030945969858055168544219991656006488047943191906527381535031908047529737974491844757407498723063081115641512528647901273712902071717480279049931368118316632820382033729006325521412220731241663645712640377968382606848560006296797170463812597216132154515876935972686501488096267392029344781712726076134488395206410221381335638379577385275771894947297388690549771015768842274630677573568935686068289047815598969658089663930066862556843145615841451944575944589436939435612103702380794268196656171796595103637224660543407626163970413107648340396597724431385039938819964992807337675240987762296351543204757466630423241725662552224094030503887722482906204390248908388746013832802469423630613767879723371766902117985971231165476869793645085003264300028685361640097808924917159406858777746756891976358094803159434523537469300102883926510274137557993170396465650031237386139037038957151987759233995365095103822094911518181866310717746859306800408301597160789691836818022043158109418910615212445958441240855138956879137818868649648222587192312953602355899388893476757788889760619659844254750254270992399017536685771240745873258814175039914441170426178487293270891610179749462833101309389632805718947558227289068150522734145961236055907322042815788323405590316783538438025956093694167138912782313544890102215053428575982930183342319811427732379524685412892841486776729543940636655539574565965374300334205054881337971044994612702372763865147885202507730366854171548179822223202094986115268735308054117961718234803504208311693059740987197657238937354338731981579932322121712137122123678529138060534659379497141828927714461375319484634344894057342380319965836592742242771985540589801693396066165843937699232960508062273040384320218118637676306405171066974460495779299219099811710143186380185000827820827918732169849932906589929805831120332382765441321832204327516473627621334110395749371689133151113267618185304788830292077873555813838698294865611357785572577564815534912549104964093560737949080112060945547509616122309041865858685337377997277245948391000097142029172930453731213076637358828633308238200121362135641547409088358149465071454307806946868038079529140290344732887918530202977523136165497336075632105996388830988505614571580100340247391551786126859277525605569759010999159287521951653483675249285410260576666980183104263969512041320432447506920276471047353935774519030803769388088273644899072805669026999500085809319408264139106980163704553215080988024103847419591294525787837794262296210258728854110739720350596569397133001021109900724180597081866108461868437148005447208955787344903589814231959056820357699176185434419270057656739080205474397272115804005988406388132887210003871087901571210602558945864415966741064315656376777848626945768827083640161413863263022698558202835962295653916735305382034087236894732393188220126495399627094814754619349605207771729914802805399451245336894378918489323539941377310385010609217020169978509946421640594402554193474819929846618339600669405590433338691298261965059033579689542995979464655407556549116612610178954236856987245533852864639631528597322900713294610136716748788617930482325019869718100173600473379913991260603042988339061341182573150185494382704675619821796974279910484722151095729083374294887097632683216554974932843269177563712353784499668863927206476356281873827260659173790915261735458750946736453649642114038494979069963082369425856600838666777237039241510147844385982113778643636293790625686180497229486286026155349920432519362025658491043369317340474237157915263219345279959231468286445869268150951589457119685713456451651925584640798136405194374305149042151382233868810693900118384253112895432395304281226265558869187140656921687843077769998306853104894553526163950367332977127484580828767018667709285492363945275460856361246165898236729891169361755279487746298892255887332068407255023347596810646584053897978232410494124908649663683297596840248155389924194642531622249042854733537749457288538505321647545834991232297308271816865950618183102794941484040140204926154484938361009666655298595299507072976544417915335601304752398418258239792942274079948847378993549592816859641052182897198469600205686155254911340408767862433556059972149482550941726210372312313000532874030475414757686131600248003797728565786983691134527852269704184624983239998272379638134288681081013970731792390568041533107949598557443272163957439980213787385838717509652275379979434458252365461474857576016887376722437588565680645783996141748701193728275010321572839707676980490173728091074518833774186901028024685907616863376938609171621921822831298354570946338966974841105939434961745951183422410861348997028594558433710564041729578015485168537105550790072981133761804373686030381458475305114102761354814629023528237670492356389413177483448797245025143203814901029419190124778873084641006732795243383187193994929967045558871944311847085148674095363330534160778548024659137799800652248726050903319851115912473776762690293297835477596036049790863026248122999545957733543278614967430593552193744711521820204296389178351423050168148617375481119984104537051661724131662967238406908688583476910097942502688289589302520966613400589366966444033699313899523585206344459705057256706216914735626115896155139096627127755848364609195187317950846197768333447927580281852754808061691245445828949863309466570331456380874112485561081066069319956597575945290164230400704338382263010796194560927963359192844009367508358940787030058681427893785314356081676574227740129844306088342680296196347652086914418335889906783672217352944941113464823847807675946495308368698265050774167399839100991926115223778459648926435813042998435259109248749085643011712880190548053088221848813801620976589398872531199196354529541072848619756959114263938630739657345149010272007440126575115868799469035488312471782938154144109123297888503413749465913921085776198213285565503905797252854939903330172733027420218998550419572282929090459155570790322964782802513006203351787398122675246787456496346437482097619100915940065904517690591184633583909773272963466560182260524845012063829883438874086455481444659159708534309386503969595281730189183685896053763510306040484992770880467412964373866824147930221575598285405912245766514402622042510655020352924880946687578466011215971088001688968212826008599719987726496830043717304239802205534479854091472081564471860304612463175322812884080150527760975729482748998322606996804286495657953386180368405663832161097432042234128764237619625695603587366981203033684621327770401245206574045946576038583181882333334622986229731650037606589323058597763031258514922591376357643894010414457014738693659937737764670823385621302216390042532984532422957499037758995480805087674127901601575585428624772209850543651957161277624261042101146660065033590710529847499307070693495242160351113731952724501665879859470627083889754699273360761796815502172279346602699914905384304713472761737442763476757046678644677178327984376688134486983446746426952236493696383205833722742350310414524870069683274824713076429409044943680693205035433525809507896002645613287755936800015184866695156248200538949007868730405828571645613620300221211667486556054489391676334134127571418698131835737153701921614179018775017819555162850998707906930803056504591871327723126971554232407528315973337580007499925000320136935847144855032565763378344659837134725567909654821779899729616280244860006011283215632349783054703185001383426090836549997177856152484896802375527027171708928816061556664430909007547062787683227161289037706797872476777048266709503767218714604602774328083275906687601596298765898577996632059271348954283373390669340105221403938686006689505035416116328458393665348670628998120263861633427132466660619289676015255998161458549037187170563732566103743434545135106349312080716102700479784657471489729096793058764713024003671406574837176439735742950030864842817965251247806126765942216415283571401022241676051243836830881567485663504922708436084023588988389372230489891894782621585800828919876447534871027982592671105912241990085816259412140433117775776111335356172853966732710249777127936673497724236771056374241884398717190290435232164200044921017235733080467872579072663222212997404585037243276333378535152619895303540506483320079862088557451296509407502779285177341283678457094460956405411801094436152915791153837077911403372732955257562048809293195890321424146780353848306015214584087556558909748497444457466699673377056884289711704475205325893053509377949759730780071416773563820334077761025131358519499389518655401681293541582984712092978359326458607853660480883359473693681234635730838487561375524116197585519416431380465378439376132713743646908207352186477179887649496979934289966050258961247729001515636321676774977310817073041721785084478190259174315589943474184135908864550139703466811279381562909589076570035766835707093450149600756234254632277466474714696875082729421557631006731988120121558300908898743715736944630936848628812817577042748895378631117743649719718818609517708079050955775170597142042642416854344472689410434996258830737335849271234910354296380041146624300069499076780659811966003035365809360339117907939359946108922716045091573130529014485740704555667216490865743302204166018455208547282366375248781703511545243476530351715796214938205708186803052852930095323962776768503541318467133480486326527269973193602829495303657341475703614102634842582419525023690314252128515511830748486843364141975615210884524217917635229857871243951982145865512348668809327414933746662134241640440383945260169703746559496828550569641263117021232599173679298549228715390425556923846325587195858427962668407828931055356169212214381207789582449438403665650976875927203615734049569096735542476516698929547959624095818945135883074249788658069423071340770554340783259948864201503575440952862294342501448212906738412962762618959020860374221779804520873678001443121628087139794325463362489262627782656810715192678551817443999363605834897464075308764128293869868720414463806191392413015205957910575234065291686246826592882956058452486864008019604977846609036844097278398608419238807064520897361511341877734903654554383424838910752724864880088254359496033272838006770478260171109926308794705154331741201330925783055754590993971678399487406125871848944462152167467554272324481979503705676198288267420169774679885193378678266052258844602813407901882742528253139457138334436214549226028333275879199509201959338909387947960709176216969641466511029810454701899299788795417556087359063487543326640862409571149381161292789207142848506647636621643065799323801578412893654872734281441950024183580430590468004017680571394861059862242037268413942191106651290021227270090538073830725987458743291880416324457636483502761140209636378740184109382721846884738941502354646817213904127131849580659616284264603438661046632789466096572727452922571632862843628502669111527679143370018634545327679184468253530940293163522644326954880863504888336239879016665861318303795432067284965805347587720828878043282212394236284540848172193054415663955825143451630469768317458492355207958397548637182284950055899846213608036019592710964150421323068743851299567365557772834929455798586479593204690953393241445780672370285537867270440702445331022373184164128907589274605189540533961954905935788581342766860595261438167223549987119080159738399363605905577393997511881265879019409672161996921669358869130748118300926091945691259785293002296232695460767187419000528329036505091666278769536223928397093503570370984790323393439035493831736746471720374887058253572111240030378998244553481273247626520586039903445724767771357119384602913512788030614125969840720774703051958733518184200021246740596975112783170118797620033075253319306370571375513209875173574862870509095320933194449674591069718706744419948494941658661419577077887245827126929686459733635805526145162546434583964212487035691041551896663236489985776680590597070663397913288743617728654310292203735344770703283773777973423532120283496101769460914229719863628816103732258804170700523733595977821553983672032051962368285295478797177697458577727926469762157188858509371799894049228004274048797218226508372546236196663649423711736350208860149456589641537678391319233727656331537927552717364583869360997894974343749836122337089339575194116952700088342192739106761837601226652335276149625250139071788282322244454347021266187338517491422526422134852082649173057080833755294822200538032981407628270687354478539096930268559104492914353662968633885015191204034928963950720775854540375825833742328796882392885854277645772284313810418103426793508638766090928730393581391063623749153009456943660636959814289764233203290640520063516646845554791807080205130920178574169901956516479157823000917558633898124381964049106908165135835396026176227680515705282159862657042736077367694996882559089274058759420920752435602454215540695244851047657509066732507290086717992528295609065980236230262634051225885551677565917396814760995619144195418370957762142896445142879165844990933270466810407400702509700691337838935595195322066932230159127252913222425280210440979133527454940095208400782562094174265196551142591418906063249345810848294851217678115262499671843784576469731665504577962814635183811678929393214788777942911554598891437684784249417818326144355827097628432198378479862856312152421898731554873571020743148327364508478063187909239809193659520659457049770304400057339636556383571080895196725565414756700742781574621376128556405327292205487604428485949628319086588618527319832021219711260280259497022068987818356929225190799905438918755204848759143301887001314005738164167626095850134204757867397621492692404055115598202408331094516610997268605559107410419319536582183752641896893090886695689010019291249394161613329595065345085615966030466185526015666370694686654786905554198069143941620593289630711645745969534963048838221989750821740487448509821179926689846929273964833771683633523244726764117823886565707192619368524107433908285617417770033173072566840328816630626839349055197310110127744256205142792422418576457716089403825030745599052269623320604627332544769248298903885369439851305228266913128733795572952374508343722619927319851628477633451246751106330262130871202989866222651790964724987041434620626424153012790280599213979158755645346496511292765943925797627022792800515733275356067298004355189706135659412918537051910639897031960781528508932190978706385261700884339206651955227613028219756903915722581913027988413481818361902663990743076077516347838232357726186963671401883144374263260159341879580741144105580607422974546481024971412865305634095501854384847878410172940717753370399589606485812270160060155945074378198082428499182270287732338687049350053745725022489010081861643039881967286556969475084591892614264618766147813572440969327699160791427343563253901034693454778007891932764535124091203596570793809227804264735990241990189741281760221865244592478053886980014937198599064052981100383107691695873057318678288358487590857141894774238518112010677135541617474858109430009153914793798879691365716867261392775124839788370895436183431193647523083056946770869962428728357635698056135488598717409512233422618820105510010744323253158869999441238501195743689908806609921892475949156870763163524529825922746278120871808305638605539647673859997877544765873212189890648496682892226102483727244124986348681093303429436829834518499106399404357182725420791725572906880470758002554389998368012220230200165974232508674499140152321632058436284627287646265612540138364352975988899048950908055695081555310628465534917407248924189401742587954873791632274783364909809881569203446384024990502169158224767733936344847196282859763482295629996705180810888059795786353262321533783521852535631433574824681186671830737901718150388354028895511206178237842630194105345811218991674684066097276623796297732053802016640340396517856491357979295811285962250071851527081282725056383816157808579033066334323494256839386833632222887241845660932279952334224386370397948259394648866445451551287847667509453372341231732712434041050828010860116142147554345125523288674384590449279306646934913552399369174593450380137069258649502428304807840501613912214317153521557525270843406330612404522978784256473783299092981305447413477150128956322970986001403532264678006841702912058905110278859087115757548574348088816268568519963500509708633484666048389717589827288939650206974723447231643299590003651075225753244693806195767423101402647753916548909849956188494236380699334948734173997885731131653249383656689359964441129437231466967866554161245411356819002376278936144669499181330627020713943974173415900616826425149992287186224864877425623280031361251147586824717039538662492753506469724226915144882649931358746786859919244259452137855583410341858303445040769562583762122410785211492413844299782314114613791066810064676227829000379001457908348462191408354127570381218693873601621843985971402880821070208895835686422837700478921402617064541395150684038443345816259573404262828555745249511412517944709937474875948020780422981809122704108116401076730121631178241558839531858433668366603224052808070494102442033480089127389411641247849407074773376655194176106453592777000732074387655892920804519557075415493997039534441731392223947536568854873903168174959535719147133584755241174551001345229134296135988317300916146649202667210922650577319165122169591679469776460417748236435881542290821707835293584968021939781386784162160733421988353155588587163692109912095519899911247059158108813869668982723334387348288626427827866487531656635733407690750090433031307350680125967320147127147707682111402173375885315971272709066321989186605698522018927561964708683256658287136182456682440953918783471191829780280469856371737505455874365577934214194410973057334182628225786744299903053429229722263648372660716363696374940706124392337107257293473467114165541876199025995402305679597369479329374705079463172617674016286743109004637574708292609595555443289513492898411012254317470367056981732183717330070133919327541353910682145166784455352935784930869135605314665857252433938381678584445028124119714452028977083219073934204972887504484559256927093673080325663062064485361210820259972345901503112738923156935538346619001557464451014077665713518891196577694821771898546979268870952296042734232903447721142436544185168579895163656994349886951268440695308661698174870305969386322565231861360921338587924113833722152905515049008953190248829588606267497892246410031292081704393152628075536761666082551619458389255608239640124152520452787603904768119165642971816411558171363189602224988014832671148377689700229951244913184457136433764607830982726780248320761885046529845746617302323639075950720919321378740468683214991105415262914786891873204919397248357246694486306659876158528717633711571456185914284790544310875310088756036171402805416565400952425582354944447998313520433332384165465902729763978307056121000922638054018859540138800895478428327485310270823307385870571292629152967251459165591992155353445050372735786829738376414748593073778313331257981403478977261113849279062437202762410833537506110573934899966526958224426976513673105473257474422794530582627785053756700143509041970582014333385036753362935444475983818709727313774645471717114563455095971889101090522286036674147015646722757281583903248293674342278118249897721930985633005288716210146087713236406376622824034911015091533365897834849148592455646634485773935460304184029838273108785013454334778579662696981872346844981569454906341833870824585834108694474386691018605280746866309053719914340688716696806509875306838004825191145141451350342809220133922417405407397851453275612456617636052140743156792488780555371582672441907862564075665495137447825807496418648146648832452841099737450087519582234346357270949151465705570865635752503247466798855307090419008565329068245328469565558537314739443866824586016781952122372057463697351709619858146982607061352148581224610569933772782090140846944529347576318926532033794636674937594309507166512380094361393924402536737281498469056743491162016809650291827362848937092819810039190111578781136509151734928157515162668063673608258957902774999885768657016259811843922963945132800341678849706734003494324510130762332285925514647670201510931339381801502729203024727103190215582602545073853508293318758600185263826657170094608790388636918208022067036390437157778737284385830784851717057472372598184280332766693379134269058524200546103991673276904838190001228523361823949514427130310882745299105366724021602210348255886025108075121600012561945205953153261788874385994750620754443620564782272067548090772331699866172854137241955022487066821837521472745298136769276997744003741085687803466003725645317312032272845228910839447219345585101596232955761518875287152622398409935083463590022104277034378021207247556509546656711423407420100118368706820183219271167620235943865234662753790979005170417882827888020383694589061224564661547028882219702743887767173622326668658937878525544885831519926486203796845289173265383799433093465346004778396389804045840303436481570404614336942363868040791291295526580237304399918719082764576844751905142155947929445291058615092160290333782251587654775920804629033401281968282721343149185188807616946609725018217569132955037269798461166483855231756652015856160989150568862710345308466950306405395427666299266457923507632478965555050115397739933020700843659948009379014131990969852226536259620238404529570124127428151499942780599660577922150465525035993516000524827523636174067767434814985152442003340170656462744779608457098660836927909397194270683357164551570152716967771642379385599982199803513412323577260118744247369173763185357955253798173228833050640767161897494028183606350171314371285667986755866108610293396779036629566900093518197447484201724985632400746132955588923518061745801769992240238531953556001215422713290505423096593097189962712430895908678726224132214511711170907087436904009187300812537490667953331680882046252373642411529190262848376768046762832938357830738906766568933057891538429317004139874830543421465924804222198745450082653109753857012675109886868216238834407478340486470739574394378547197981909307108826663566451166570944705104764502559157013965586836414977734310980293073718495126432393205120669065797166110429244539834733562708145255102825104028386180228883909579806313826550040157127815200444446100091960490041081699150609153105077322509355220437309060511024252259748547232654337898726238283097413668218595951649371059363502398153704326229452509086991633565005017190123978756782014370418351344353207311558738705673818477826372053332559630621955980134584384993060890588213230411127071163943143765122495779318012142659174128151806597209519658983313062355168143636214445713483018624605364782280442594453668027308692201634543342890210196886832302653335517302188567304748473323118407982576714679744612602041975493739972767915741234168094000032918659098814552543479828496246302531575564773334309886900950752428442456029535967161313816401380292414274943290085228339877158882227515099522779760425120499488297062635662308569978811301436201440043758158604394577601332176939764124710842027373871431367386297834154405247216656654330942503031573694377125080176102041979331602951330683162893076459443811306540914614244355617163811852918062751011019002049374122052321380783070313307247422968174105020971410051284406966379064849375555864940489864176700866013636056515653233224474155308410882883619386358493375919551863671263691196382772719960499756036199685407687965746335414620857223957412368527659152688667250130538141295557756189385666080233234045120527419668658961746615848615825780725653114232692074218831864752382677930331266549366692013706809847220425598811873309220339545065264880022468629404591359476114503217280999384487918968105869267945168178558273474640643704400485798781589255513199617787256554408412617567802098944668131680888601587783565727195158937087583911356148362126190727695743099769263443562065611988302335233410512024515100740775795622016147654161678236977251509519262031242728040822519817340475259105755505995464007947481970286277132175631737642573337458487415440046807583586112400694265752713357339341945776825375218167334272471717045884864605283864332892009881526682505984743605138734464911375315144037921962085547658228623105091058044480930351303126274759848009100444779670778870323777720416888086496907399953546560993069810736864280458431957994930123867281092439823425976788458859899280797076341945635970258052556784198376721901772979819166130919185308777737040783042324059876330236454620407448123974232351919771339747961898141471513397739117163272683745507262855246129346748135134216752548740387403334777771569189053661300374666775222360575686563348525550073328003985398256620097374373647532972096230003105870300049705910195270669103483654225579078272578418526521246665433358732999811478496174894806452758965556168669572607975513879841957798614585838376818257086643671093135679154990687085751159432708738223488014750894229895119174688967904166111320006552913959337724459275862445587582717793143653212619011829033134780305151308282066641149213674327759949813034413030795845013080097540863012089261879397200112745683803894488432441789100821434414370404090372430083324838417844583732204044768258373703640744871266608104983503639943166412889515131949555196753714507100306555488408055574435609880573502112582412098819246442375731223116962480647692982964392813850761019586810748769747786083489915370122783841092811796545556475280902974834703852864056881506636364901414508900469031263615824602904206788077480038870463178995800307728020391327065690633934163894615292562643642603612627879404329595261502764683075351719355132430652720663127096684400560267031485449767779732908426823234782899558693164539807428562131095351895284473593651629011383369803076643225019620774121686496471740857982623218560893207871033037942877388735009832574212708408789698497163774801643326291145019990974701047497582751157703490656449375957669451903262264705627456759190022705122768830608265257661560405314280012834371644375447974274744170233265200910048494251168995529856675865076015964126482005680632935351468009418311594297957205528647874185362608088662382120836331167445434788841115675798607145158026438341897064671626222735679794941103639682867118506217461677799752072552225236522591626130873847163692207775614261985632596194532778222113761869781926615431815316425120248495333673410839547106222653173600263126160271672933451463392355373955478486184078340702463217771351801664041406452651494558636728998569512774029532244416341185611424323275655797923722433538765460604837425168587395573902636921333516849004463338055125764638441423127894472274445960577299676120807839663195271690448181612645929353871329414899575050265743918567342189085630838297368684647991597485986248696943660955179909583802765174812017821430129635937150195021615738405061287978979302314422757257813721737974219294937620024117158310011318211825901858950693357930760928558957752100698351176489325228280169817812207504294235538453965282346053460969306436474262655275673149806327363782549318616280792966853786488276533982761594486827283398035837768161514845217334176072373589414087284463006932557393310199147293116662782776572809366795733050650605980076707413059850808735265745091742051012578854786512342786015437479087853231144826896885489897917208087702891176589903925950740628276542994886412553476957420989299715059542634773637819286409362045259936537333373514299656683464432987352102694752214839505802821298986900409275976173172168007599780710948070069970536853400430980746994076877181138670050181382469535338012501014379202619097733859142854801185634746935113237741712600400145943654969437800781077374042320640349652476416270914773648501565617646842690236473400875670419766956584264847847960238152189793803288799629838826198242364487066210028027526573131002646563807904127243275867253031894034800173699182770593743610856763755092028067046281145183588340730943765528678320063034210748727862284454466532685207446439645429233522073063636852330525639263696434043040305351157798726915351599840620768667169688838213245876125189020357234816975553698533581679821461329671624726804108484622271920540313172349402794853096764614952656575078793110866129328760621033177198516304521504877482687814963831726537990198537411436645458676874218264456867659330626435581456267421840509650277960760983530442836322599665246770087976367232490312236526777568712069975284228548677038377820123946413154911291141933259647340646240230259696586195163650359189748568303105445805600862147241669522515934033000902217907034216771342948728828171283787663655220285764734194931526929765429085600216251828522195387566231439739322492799038194655081314292823911760862931502154510967851039117475692481197582670120324375849911002744914831032818700423955562333973228838155985596333177209720271291964884573343513062317087421516927726590860106892085450343254992687353598293810038560067322012969869543311212595200263636705704767636163833525640598517604481247835817912921504941230096577620889014371336612146509919323562149156284449069595148099734965575158700907703650158309708798844696359754965130771912255097714613659117023306512057261672781501732985739606219829384567260235088658032426472940336017848740569578001596692814483228814900527157377379512436577951096210488034102398669067157635193177280509130845036688083441991569561673380741874342430256445917870613069230675811875350680068783626569674946731302785848276083867395518317616930718026525003927842520933068048299922796560698089379688745262284957360676138675835003797578910664812072364338698508337994745258477297617940416741517753251092688631814255579665360280192940788919930356099316983659066979871880572797304379724580087339544535228668900016897334230255901502929318906586980182935454901962652832942538306764101552460475649869625051634479873284317085689742153836019467414690276795610535733205934534281777441944270940817892747573613448313737603752624870394706861175940777879128964085036351254505884507249924893665590037914624865002429909881875768773629874113368358756815295968387872985864483623850628485635417328169629804772044773155350460755866052335768133691740635933109112740804453275779667612157416407504448021653588931421685403009429083190133962402197743919631466195955376547536696871957127413023220497747662941541332616362675481380938537046940409028848955750465627140868164427582388878385915607296651250729644164355927645416651503056565599480006340308514936576076762693611489664056186071555881707758182337198483772481441114607981183091161205238244890413020638052898353850131253822346486149068263445344166418848361810992607882899301034989208407793235217471460004068634594865492573717350022780539382514900301505273979159076351179008750229469093165789227054346536668984125654193961641545099159209929305013335834616963899800263393774088409367288401041977319713775292145914565180539164925691497707247880053300417551315555869210544751775797956698613059822346872900745761612811615252314029694596923815319210344755869345595294646012008150859869242944098531826267178279781851672045913813946546732500508379020228761712909999256562018110870585944486752025604058764585013546144322011668053660171171033416623723868230131365600721534323739698347669413134004830710385741165250486225453415260116665336738688220098010439398322893069516443900093872691195938876748765857195670817027661597883091670048439845482670290406208349088188936833384667110200182919519656915970308652292731165815910310086111693699313162744327823571558606496261520151206228417612990272405133091086353746018508426499756664442395446620986016194892080231726450912615453258273336251231549178565679535902227570191994424065474622628506397472764079605702558054810496104110170914253539756451682307271172846442861826138832953399583403704982531123489331935259868065865905848025601181349797656516287649820503429818651231998692505929510465191759710424880992191849032854614292375878775173530971091594632264731962609419742915755610366155326787479082873053435735867112916399321908975300354099670071798679440376438356325883578175519914031922781654399296123333450401015447754725700645211967161006790223763425609191694179132181099891458969481802755342848878182748174709182273995063706354758752765722399052793806794467186594879211958686126223314123086023297204716707585111614043164911371452499288010573822507663125740749812186027261065359652185531109340933447337990764237114830416564688329477379589081057290729604498832089727413200585334137476668089873203399128534764539071230523710008470875867003924404759591980799776669129325810042013381979448309342691734572091534889829384883736287149431306600054029272563148653302636976477487275860622305445470674220873827316227928534571299530616060442282979917080810224459272362234671054768394818057214025353617708752536554432906344129803998650791814214426376137518756837024915546746947737576348166668567383990946776717333660428242004681396824909301534244694903742025093313733519719622298570504912825929688704832687831925367125781854485108252862024562379376994730837620650213032047774686499340867770321101426627734334453252749778832801508800858175497372913130236097187208606269919295448069351516221163330132711155275463139273904072308639562050242292171383649530076814468389559608678664778983548455613708345087323121241240132622334657387570492382622640789354339343583862170340077649078853771303035234814530255409043038096275215979206126696551888873111150571691249172999756629292671293947221786388123476071435142110076655960323177956500459461650958300243044291128693181510627022508355990342597047714272733838345237345584151356359724565104364775485829512344148765151501318545823899577199075551626817318036367263643706697508210066096823278082910301319873934911999292311832375425054961408965056806789460483051025596845730159316679558551873455610251058232477312995053826809269854135385515692019577883720201833331557380991583370402552055432267909800353357849686327646900303620333086170151413498609672174235811575397424436714403085585704977172204633535036132206696974867408554208094414426029884240997098291785712360689623679633902911249751638202047158664503687685168178664691450402276985132764746003183644131217102573183607231961539479744387537411833280675267238381223661351601686660058871174590005517419698951689318267326511356835253020768313186623311703748622320527780510163330041610500744285478933864705720805670328324981317522503779093280253427210377661394230604423120401404379477690718195280721976859723098703208384633205146579882007531565252505787083069288123306344092393292841308862855055483494130816637278010173599660433730887204276846013656815587997154054330320113505678683490221460388878855079804138090081660837421108687111579350009939991419235138587954031416280630255344900165055941797880934064238825342475363127179056957248236047293597721712852474683871423829229883377125417457297251986294438347526762676459388439982916515016414284419026854576092915068320093741053406721583561181749376227490279265779908748832507671049466741922878774269830548918529026638630567138155589696410459952555610261698604011153073935658593333268845820246716235573293431822532054206875947013926325963947232469696077704868197304405084920522398858104455018075688153878092945450209653562273063420529518566861559692853209787623074018806821067212319457503066144416200240170554720510220291743873037847553297641634585868204547205527038492508174277253680278667155377390204792180245994427300826815316556251113423122626652463079316802015317323512607087435456145683209137377925007371439720497203966560242056252349453433976827667316664562329122727137103509300218985819531091337941453221239724915588754543095433308248234487593278516707622763831726600410795875491087925360254593116765883768074979598351913092983352703472094440399044529313953079242672397358437078550826230626379442080594136666979468560195999343375821439886555029253135262429079356599735184631928410129227980713624508704303619936153147971292294798881097046743634205911183207071610781954661354385851944798713168181239357397426580917279958020824217340374761273204929909382909928095430985078962426752538094582658529583865012250080762200665606028187539961623358612721163921154173029390603640942238999298291326249143614406184014046472945507217045768409859047076325260662762865362221197309279392307292074884490247691165896601472689834509619576960979295825427627915184822027539978269668567736454950564715645742854791302246236705576669722393114481303238721026216542078704202514615340280828565240012738525405128910514428482355915753569798533313787952934527368911077507571995403996905192629279316638706675158973427990685120892888609777023691157264018876603151965170433360787795068003781278414071815640350446988806482256682400326014860919367585721696342192078301154322369798932872166251205506195283518139543681784672089369325717470307230864309040812888644737238681847931858131292267021769431986571154536349192554313720850288427210005328129706857299896373416003223074838025890687862441327040641737185289061925815299227298095447791228059949977895683444544300548746489981170228496938773147661142414882299815704881843502904462850657230637452544087859908108429039965480840032261215295760482507059294097714017411896095540152654813282143092251035016102529198211595792886661432354940190453537098853569569002174253655896327493840252288166450246786957501851960795282189348517019929172104386072478733625020846427697701341921483699827255571938705024736895649759132424150254771909276394885565253559205488354003014678419283860068519651997134451234010390332566361876479865878417513618560288562265092004025665082094249333189756705844206867134816529970776264570956591928701788569952956328353555514228694089891058740887140795872050269882679117196219144575847493828458870562099299216812712032675273488117232494782353557383560178050481306504513050213350013412556698140615310483555417029656659485461077628932102767269078562932862207786122027463193942209975270678849415824436812992233584798948458357201417599955067352753960790884299017146167216448723353202816673532372837069932225429602840946002037910066944958555057776986615508397643309528703821131131485451811544410784219472172569749679290816784535097596628292247247222010152938755464055816313965066749580199418190918554380258872980926627596513613037269446651009669379271092684122284368458067296668964036674161658955003827945658217360464503545099850947651526420535333856936250291560215848311518236650839432348535724039735965396478808895080699476326847553426795511975655171546018252939821166717872408867032371285876534561594285521475010173993794747195157754731874560483375233312795712926083749699272778975719299499472065098873590082103870575971348182892289462299145024494045137220600459619354984444529565779073674127385192161823097297297055930843768146087612975012443290640324227319421894413331070362975223645175903463424170452547040527402409511609036268060167517425971078193429588659267739139597260550420419786631072893911445597024747566595819243709890066813921425549960156023471445053019328929587135863842064835680136884540773993584794017840974405341504899896477413583873080709821576700375951609030644578469288734066137822344277010093191570898962269880474517942962048980682348092147595265538857767952630152893474561358173886390298414464802125481170809104538748521415617631511417771716956225798658204449452564238999174614002169954578923307061603851642926144120819922321753304611438202559884147139829760923134062342018242743807094817013883194331965222218126181886934410927389445927179023229337564538963465867705213540937833160959055176951413568919946317919988595543386212105753306225841731665755317648726020106213619270967217306966980992548945894094505800954325432101736433790077351342514410410863319904503582823163498865846595484590156258478506811493053209381853821965422794911914660277592666321509637484148136494299045966856665333376690716045306480900295584502121903188184200038849098147252703528170563570396329874519826323515318649582771335208194896943747027531194512403575600132703758508443405379533809213452486020175685875696584766188899817713393759354386711060829822043168835684104063227826047409910520833662919341645015625039272191559496640507842934567214788742691932689188249020609349520445411762983678629136935940047997741128565495248555039059710121037601884462300308150656608151863273462214441432608609160718254838427162178102370952946714986002508814015276656561414533397211385292854012301650515238647626326223008590899751229597158383011605342572690732428629886389167693169876905308873799135996617004995207333408666556525643822326218705534593243145023403318830306022708083780280101764483923438311443963894432535205328687717797083871692847905622614998036300927345993601030954712176657419832846036817519521256494640476901352598895611736134879233247656229552022995345201210466694777660953601787511816177370196891310661085140782716420049538448912940769067363756276853217070719158864837780259917048497601604613482261398796023973612991406183640138736052967115347761617157379658936396109808396781808336046057372908032836779602273723981405747342446377447321134255177718930410137715604889525633598207678307434600661301683553202658510809011885216787891869813077753233489854732955592777816288027424072383692216748303296628897041215873954641700221391744881315337182220744749110130218554993699461974089304000662958637504951806848037194987409065297352367013989586516238576048091765693840366287352430512138524852809996950178592850685257766179748820664040823067284726453903591855059684965880664852224915745444968451113637443271399556655636607705963984602301782917093764195163015696242445219907608147603290844141669385130714312737854647664541446355676541679703165273555044320171936982487448377543771167310274914214268499334246791380262958406304064236397274337629715842182848648221665918195630550078387857351949179030789621097724616290674500066536079891607176882066989312039157215920222648449702702156311817086228999755789350503312942989046167837336050522463758510365448174242349185764626192315962052762170480111631507334439527140548629737041679350227271693499549527923273683097327976500823520609557291492950390499774193872323945112728019696512799128701436542733064627248425431760766329557563812211838175093957029077670888757284668502158645459000934345143190058029883630261218353142768541468171614788628896109294035164804698756069146428703340301342192909405752134841741342763024723261611222604286805469203635701275006543911858594306114418486051228254554610994021044918214747666522614556412645305725086612664588611421722408738905069041647885200217039083585782790975318169379742147668617140355230505158727812070722866115939961609467015355902758636687755497963686151329099004475999277330922308027277935237576164543521209863413946181091122985599705568106578942823078258397372214487503633397578996865288393052240459855236942096948566505459128997849421022556507671562367702291809360387330261561854721751401380479832345283078931886241761077266347631285867935727837654450015709541549815766920978188311439870701086640162094969903466581288145144701656889625639744780503554644906400249942620309986529760341981570360622200816490030074226037333020506391793921891110629292193056808612180983979634406458676601697866212703591205491678280294963690793420252566201931934322503339478342293209547681221338287739811756236780319133566018919047231985659177216587181794882571848686178672962493764557681017278137695194323181984869230035757291107960705334519186053914354683832237019424481612230541853162037741215018861367227012610644814038953109085594748713887526749011056958822717023090329395445519487426760500348298986684361092424923559185210477278054740335292269904641542940089199755613105831715650984772058060989576121001100830269915020814976850051650660248608112976219015743031954497236174617820400440216911085386644438904142051725045909458070982628974101455521507114663479958620110565163374887474417859208012559312935034395243511004442390770024099652911271339582928293715574574186997357366513886272997240991878636785744713326366149369687400708821730261660225775523660176110795792667333862029796732126635585750943578775656002693337627090119626946967021508767785149309319401356686251228819780680024377138259849462646127204889416921312764707801649948259519741780762720689972489451687168094402558799597156484365118868220261529100199258147103103054529976925842296793720075272276728051920536898375409498420074919920240327717053860962342214412080665479965430800121687694181121591068404858221080479235377027627055437919041938656654996555944335247491812712714577658752649629214277439683895104030866532440865603000461531669093655849166646148030852597600127373281402803591823973546930225504960771079625874993510919227758415892007974795593828033823655845175359445729644013057680449860892439411813067924086906048249063117943777568960994102253801505723098040386785673556192233304869688957697929596263843955521907800156327570188312693373485277475591393884874440221849584674723578936439883121037479778023336461611655982672227295212478895651709626969123834118000288378022396069123034152111187469637697365391485257913918098359864861864995538747994770797883527808052684573992442544737506575946069169919801835693025591433910405357227067611439175973999390570390552934332968094285085301054357046593988677755758954840389755195898203983438945803685228085904054848889282214434679672630676220984665493329175039618017146137737225609083685895522284890553259796887637528717976584140436043309578410304966638619375615872533564860302169905510019004075109726540831293786474404017538699701606557049195738628567720547212444954402810178441521462951277011072588048672484208806283581166471509432115993998089479991126836299767967001536226902366393759087888817654174776445244899544227272884882966227125416525225215879960726141676401129050398320414861630932201063011117918929631956693606788405855978616691738529150143224288921175031889756742434391816901947908982658998152126058193539522217661927044295349920755162910774629349977824295448053482855153951741070791889050746504419164109822421541429866907143572784325412867840245532495719016453438534601733254235232393683174197543825727893779986591491392426486920258730521952359390635524256201973909813722980546473596989004753620923292751487307747121246212402176313293122026026839550316406001835362965837784564943595577919984248570741191279277102226337879269816877388672952081054015356897768003625418530319658444411908410689214407849742628574329526023169856836834202580873178981749512065240721495463276499268560732654194553398680411772451538087519766796562665502364034998284967604648223021307872876965309767776292289837831174220943919695931814621896585993524397700094724420525324825397431005292276720476338853759688740000067730458762988001991501826009068747360853805530270995440822122009762366429100279444429962593862642082816931131358172958527502533391809564193856236150262971934139365001445735686613559651075310303083572540686671434505046415185575335626547673327137919744476893826887953667239891105195558537854110674916881250797457994067185170959134600313722104064084512743469977118823771348002209088437952145006314653290874605736625160161117630561510471630881191460455690355796061069055538680485240285665483268518043500957272735138553943435804908267170540702453216598604589395691185079912426758484612561841431770835640000436899989302553841308969044569640547787290603080736298690420462096996302708575435988648724494577907385911919057975836643115808563038870410401470202606459214353206700703417228711293652961819018332691936796837368443310667373750730357762927309865138300653717370956006208044233517659861530255249328821840482951449512285891841005732554754790148754966188931765426612275130650920785730750053891410418590530005790838916271093804577339615092582361717628978634079822286368011793240790551472235412741991010254665508613250721539945570795206311290299196407372898687564657237796855989190081032995109786058232146820617929588685904082426033105482455344396528104567333617615401272373108862993027736016651215192142980123236398565004974714316061325020256427716773687990655475627188724491185895480990986143930452445898862015616715956523374069509018222490678204341391169839044575646921642948439802055167481973353536158862416263147066608933792075155091135806435121711380174098097544345985211607877123441303719890320003174365979001868356857701094435897908077386106134568248862039196166974430268863989360135550382022822020920038482707421419031549125862111511789756236737603579963716771742140665347694434949004858638978216794750155904475526016447683092207584212178243865619891436346677645959425921143021087473144801214524808455624166573820169969834006616815965387754550949793606676112089845813408366804761761681670696498806140476409473608628822481684251896201770133667395389801244076332779511830281096325702885750145477907150547382408597255882120877442149475635858058652730559182750782878329602828195780206426070249872831704983522273831913773852486740691468986238132182318582560527381480972797258814144587978509684040437317544786504759239791434632511971299338036086594719143104843375123561952133667522039483458195601022188715749844531589212306558694432143581133341837560926400362860014572035226237600895349344792819915560950089703736503302600469249885228783776645996127166814932714957435524777074370480352563761397886903049232182609793596650189990836104968975138317928508683691503013403391476700283153210073082901278080419018254433250342664057659936307926648438223162946802512905887571840014637752195711616109005252098393838295440531475290886430445440384137053124442450668018346913269869241398624981324819276294632236396423634016506101738377473811565830989966747686498159308877928363611083430620340954486207061905575112060867522950809683034381076988604393486334997191800561156133596729899216354641734217150318268989814483910196217737132993432551653949786087467146194007977150207637078293388047070541021804654371646762969178837094983199697752920966383303366702269411226869396993971152576184509520827707484706838749477650176163016891435905107262378997028853108817748530919281497034030145876554012216508672119866138574980531020477435567898198552380291720682069477557144011290852653838126080344309050302138364628075688075966238293447040563905832451682958395125683964397529047287541061678607518256049578555663028457959877711725264123625989143929109993528086642440192203592994100186215329096208678141062226763647808950546074632380708781378221641619253900029998076305086773737831301582902153998153730939643905704902936311361373096818729747502420172217946199446588650529775798748505197023978512303734393421994059791249128915721914152773565925128631380758899375068053008452683951217793093972956548455969682116221885028777651677208841426979177166564431097797113564505327349306437943971566020655184914127199509803926481321423898497799367160232278317552433487914386409017977414705563028460958658338965266397896403521160256615718456225630743762929895824434534134154784441126794136249856506461819396225687076650066598498760338109869034936390521513413027489710930517261186942423310714430638322762173615262782102670190572659921372541693211637479505762560672197561726029102597434889290146966039177402879194789680704086091314554919461913445186617536659837784308206080193053449144006097066231956059701933950326734478168998932133218484836958350110253909757583043788735748583589735913141237273226887837054319547094860736582384377642662227300695946697977616768651027250128619858550244992682507915627884840615088723528603138601540131259351321306963159373040361705021991310383343776357822836227226837773412262222835531787648947842528019384768512160644696457672532351792030640039783893846798586534158685739317263245586087579062914914345387770834531960551628581826164267329038489957363748171956028953222645744250960492249207505939614351940442908702186299778588352110983645821069724005530666511042371846751032219624475544263341939424600101645675820171919791571494846543428251309294992298078840786210412941777836563699594721012335664438200396586905453297094678180680959858841818450082300487800729471573411939025270603778700716735150318363987434497940533724718635470874718295024514954384263811982076050458874389615537884498499249884890200374903729445534558096980653927847764071124772746553448353952859995745929276423196307298900926276659321276034725986955855406100578258590955739883894151694457778049318758923304442891767827730418436777752866665734623228338542924850266263832762390237264138934989946244449490890983165533601001590631628076899095878232005525006934351404609907026518412296086031808169229722805858224260797681115528132436397732836140902460750572845259093390164266464822874469483588474713595405358335343604659368025982333532150444535918031877799877451959709370221323935296076686519095381476501392631854674368904173152656710695883643178721081992614821864330684529670515631707492033433513012411343557904400127079415337858714464634630350473368764883483417599450899891647573337865991618676938608333922404877878755447355921639631235361377941557803407174262194346065715439064099441901823437702815017086302340445986182011944444402609069733947203697545306364272082119490537315982181273463209402010416158172522708530118901801051197881634224123341205105642208800877887278307942877118230971355462068010067529461691358129990215301617790416531898965887934541864108451983264403229177921392792126771637857789205866131709122220952952838063152470379346946549705283525712214864449476966063552826485740280079787676967657299528329938577195021863079228615103063628854475051490186980342468030159806811964232544102797597506689888727047838431949380524423024494503319456653315747692351851995217457831772690876536154221974147747843587995556543078830899068494628683082624676910743768697946468584843063271745308369572044693249734538560581933792487595374898117371484674466141309469240877746875092146638973720064648120648984078444304753265315416696497266894238863579422218507646758434832471058900891255383880448555675279877178038422797701283114663607095193217949431634463111664692519410045860368975673415374259273012798969815753585159998098966230050635972594264259578775772056097080232109170432055974706996020203499679300195922633186010312372084850897121782549743149505175360701057298069437932789314780062301417154500216327202815642846433171971659561899880183626049120030965641100238749292197489486620266009559247895603586866415076691939635250309410616054349245401301111205962174310810974537012722001817565435562447342600556940624112540758283228677524402061251552743186938369445640728611212743429637346584063225240895638045515667590954319291854279174225821333512955171654496535924513130988897914306093959618072953031315179936447369883674554075329262860577517444242044470329740641487530965010669133981513347677471425888841224325450001586685923616042030822141452437905770193005451832322904990428729337408206209932010861963686530249682725327675863040945255376130073042106805846241461446561517303209024580141384847912384612812505920661510850634965721188120396290777573300870820669312144605591648956885564760633763083032747822773066513783598554326812691319740689544765094628769262763081400764316308264778780370143904063133187715469135051230569229726111496443339143620032913110887115347902295700990243171749432127802231663809149146771238914677872102454216559742767957020246331635161598306547777202516240516906196406981113206448526181047292647287285227343784213641932425122827522438184897482456358121662931215885496086352271731750012672002940122645600518646725318501423256077819204722122470177417446097996393725574823866020235047301372537202890470851513186071507259404944881236812342111341143868244509690972101286262056021875816899072897904970739292896862218230263370027722135159507656364979344729845829497280124441086307871970762733056963650443130606672682412306812143722137298466070674050121745325312519511086795169707423947242307169086085412588798013985502423192124212605008270151769993854007449873956329504098214160083306654802653231443137702763971444487880252197165926445774676608292781654825389735019557024502014559114529352662751962993336440097716546496829244134479642848479852817281338645241556143332601054316048225060677094255215823246040694126365726114985898373041933921134483727192687454662993286047842353181176023580389392713770459205603835187530479724974824959300259596152143560912427139273240762942624535921843260016347841175031384858919972885431553718512765250854459451642456783320546158646932498579678958564181132227787420822274699506182012427328354872635536461995199036058195132255315037468459610525826840254726347104948133773984625976053544337077058515023508998061194553084485872353112141121690882381047663175277414534842468264663814252212906318515412136886574772401635053720004513532372496586491022731938870056773750992106444023486160434712585405693353979900257436058402805243487137170205800579775412164227865316470092244040911325953500023158327825728582514448760819314157620854807706193368366505220428883823791220163398950590336377431805160501138218757302118358831306091580895640513522252168981702915135467585947904950296194057678380560373809722053349317600953385245114541223987658499801615968240828082870051270327351515211740525088610773478012066125553438467141569058253963149798117675175416453076742725342611772957392745433038586670199967907636482483525230968345024643800364413165196347920016115161910209313631003739774979443145518524617510634167053260852578771305465620731698111234941791695186856077857877011153727898892443911158880106399720289659451862624931712959806498129092141119633353621489465691786505475051858742249894969028155211809214101800939458425934256309298109779785503827043854008204117231219062376608656347284284017972853764173680384060063460479572601257910313301515987223610447229522597424897849974403234209874229828851137762710141339137999494915980546659774896177904721851826064944037852592136284133361455890045172889713381550407298500412300746067553826603795977770622114164617968561367142954633957678842333309435840342103794212443852439208994976163101666217862426662806961193733789968142003274282864446865743706873393305955458711922243553175743708535042068371985672830547061063510219660788371475752893472512011205745524622309932475572392435116289678461371003734927847730133714907341414518758144479558096509468886070495207568511783969130330347296538478207133702117339695825077853728459754671404136104021265559013656219413751417194373919470099617102088724144622776996525335579023407232270358906679751722192309976401238655530761919421407799196544678394333342701316988555958147120830527145317535026792034848825741842930663681266888677886683894068511776793281199466827787266282540816715135342985163280108002537949499051234355113778854861650074913200248840973827367714577607401769935841203406446607118796448898494514201376506242076200640980471074521415763711706618637266418784887482316147771373517294254930361467905597500288396013290810193710988090213088690080934437274253788182025571049402881464115133008355308506263237220795470130750235684870530992845827318141369618480240000848448082813071696313304216029573372721103095367412714343075586615823886012388044393174810534979939579018855558002746854062246481337622820859574232014613537464889611791442139321802934969869175352494600436035428455341243959994294166467115190440045759246452220199060793801359133079887065142115665907574741908751149226311511537122920744048549215265009356438185046172585486648206305804383829767379984779687622371234252300162798928542552215701082882147385184919499708108989818257651539051334866505998063470349221381992279878758393561675650158308498146171174760597655569436348420775630629026962355597826517449051286299259588887804998948390455113965218702876256327691907455768274357262323586731738615537139470004712016140115526959957232823253786342306396750178589659389360723495937245616966588391969413083553067600766594152590648458525361627729067503738008223187263295136301154518934508790721668723472433639432967584619363847715969472150680917379399710728268992467732095045194825265026993581389864110006930513311318619796021703271144808412507387726038809883971159487374605271737348232080114005429197023199128124336173330142772102905613520696807421531402836147603550160440177293197324887138199113997357728050972193883401573554638045533726810663744421677208519899045541445040745882699414440757402557860237504054210181232369062240820630710596062205490408417584138312905349518550989163770043739885027785845676148586869423924689033353847062476843215355173973823863277482940581109596480500965920255091543760142263750050568883503468634249522406069542043369515037515933093118621307633611290041747969415669756907551914242450597948716787751180347761448097034064739083316699370006021162873760297867465641486005937627961055182174833972537017934092339164449934404550960694568402207316620162435481536412849849321201859158402282057094789505486655517160793652893112492053017753920574171659661586460996510053210134983444312007989916257751957010043779450433461308343216278884092946802427457369555496976796580353550442890665963467251374283523402233199451279503695723361157971795420277325107602580830414348049342754422562598468964290876571913859807888255397072028829438532947707913289651020259309998303152553548461975539221542885060127823356509086094828984594207898943030133650060523539888687532685338486083231272096046571647372420041770158757539492099228077030660284623425828147223092033536941951147151470265043148449087088148344252598993523799398012487035248730368731716813801142320391961335537334322764383366159834859032464247474562402570572791723413923314466006675468528517808566939599305895572418817933787675309428657845898039444787841323308008863190707117412283485811153326427260023616744241112965909818110471941334587729609610569168057336941468872952282806673307271345532518287420662054255268802801490443135882351948024647639118693064793847434561388376411235008091626986364374423322625466387233624622741418791900331847947739902755138273138677227689021472683404745214066137535195618129106559915722704380609611323805866055303586095051284075691095668221465181788599029403422048913632358553761793261561800946639729049508301276401697954043820272294044921186389374560628764260703765135409157083520644170225447400010094494209485796733001417196276321283839258583802893590993834687104476565803684455558636660797146049644482416015581097619027508266401235294562523124869779117632193214331857276645387524910654303342773534324545400664755986864981406275780978664643445313446525865860678667178829565970352958495642864009892813953427151897907437087632505596569477939415996306938101318037300761301966797735151014169710791014541512848393832318896369415233771449361265872073168367538396029955818143264376931241015568261444455711714699838567505843485067934585205823765193313202662660721151482430385539575761702453455500500583264040762569639958104940728302027464512089906051125311232244459251536865288809007121423630416349920630220560507503753861467738240101631848251969432913431147119964510275143015635124314032069707862978196347716926044311934669916999834506257119941287110771343812155705675225142338445856173096553292486542950975168421108341361221720705769931512359299649146664887770077540566952650661404484567297326484258459613507598275433862239015216848956635659005661981323337556099037901356333165489923930679028478070535328293471030665216810036630481128713648143008140106510867801958270166553579671518002874572201708781429639664428530351787154882396450555238138908904114533873054583811926553684385422389437592469198928870272053118916088938653990440608233200961792704803281807261481815028824332334808608569152523173366553622880845582964246385796211898739793651066739087190265873921256035738780459828920028895788697935853230470220036191765891711224789691377293974770497715415943048037780299500401944745789149534989051014713687805956322177335318019172787018732456230842261634629810764193831777888221926941714497648401161097151444844753986076666157730662615123479937264248198134113576375281726364739786899829855489932040972287419005060031169288744290531445705050368656299458631030782492579781397042818509624450799488894401419337890629523670487134641356011535393531777123865014423387390336929140195589449206957388255607268515902722697148280798477265891485594519044194524992838295597808753604608351408010969083975047978540617799548864513360708933379699227577974536607183026987764241179520660622810467839424119943399278263257004459789789361576357105709758426143746089511852979028592911788745229056986434339542604556996612170933194715757162454895966783920154868412276713017620722761323245695727674031892877404581830883947483764464569777739979545975345914699259644560075110469332829720570033465983172270110817209958866814158048394168599666747272142372439086225176192010166728991415108192698995787483755448372454033084609319336754999119771589111544016871447577782433270321994306028319942911775069234398342980202084107294711406791237768244149635686585463117809969571414232099197506490896429352424051061474226355312763310666036614595966878902283829329354054684286909960956717464551408132233805065153010820973860097417217285629811014276440654645977576614827477786728899249804596345371206819288189031328417236922713200150565981886125563218540697254759214480141251786500047141318585904053205604428765098923320882273590953203779745320666048081640245099321896600549808845988723745862885175738389601334900485779911703776170675328800309854780878715281731605827147993223719027865918765543356260626770830788985400406417283547836505327011052855828816534878431473756386206436322095220397185729431176913935222744992956498074223505817447901477010376808283571487489639096509279885210913496851491467354787022536800391711943495645270178772853625030110355793028738400410967566146881349966565535161778284444794373246845963152504190330784907708758782212799128578294253978906789754585860289665445935168592305600614617268022001347349771250594309703704299434282909406076964511500589428860165092853923838472056056810658088610972943902157786035332160599396843892701232858036634343324005945829794015435293446156344306160276454724765213287334078540198498878558638947383709827761519254561697158524948918194817325934709738067099435002484288533603042744394350866019412754328971987602213859541272083267315733957306657523704297358867866406077427414079153482280112296336012328673472115612259130467392697706198958519969237946855889238048776385171829688567941104023362665097563610380844283378964668929655296361251402247856350847311032171177526289690135308073558985467267882652693298421946360541646299832437608618129768890166529623341352491779938186729602746977208191594050375961093646760100395890338331935711747093652952989689646628082160800401292003320462208568707583465139766432618148861839040179457989140763560993889186496830847478948383082647829306422882958937484807670007572295629578013401835438687549400887788802853636297868462538470483280349886465045553619813405602647366506994547249396261704321612379675752590441869842997044201978657053810119079278497337464213211902096529314618711338589217647964522994582682236135348807488633053384880563896365962128013781267459537635403593621410049666782320015866346088391535417970955366162073357529586695412102933208060238034756869819699479982317764981016196308530797884806357482471349951578485548867749650912703768947748679326489557685635280897880095799645795408958574961535571103374813966759155424505108552658421815432184807099419994408357552446074320543446725993863177229338822650707600903093829339209355347934127821963451681906080639187207048313013376146368229601645294708406701714099621477725349783048391153107185961438318283875047875430608685164685430023884146598722436218373707800206711804444445302500137952093072863538361095358227883059655569361466108719056275234328525415458959558240387918109145694408836299322932577056422533964858032119440055180382697054433466352807521737868005849385001388446973182177305553332652554999273519899924402911998471547071970856616158043821202757633762645777531225327852557225840466133684813627711394596071393090236776653565346696664365982338245897813545886198069079250594162047531051366011105671541390470277399487454644769453458433183565484809043511672174307208524720445678821648643047819638704829262997113817152639354533389506837997781804575763882441496107282482747316796381782827637561734677761961787563240124382272864735099704209434496133770747973393541217722563185078202594032501196815861369381853446101412822060882550914385045480247471552622809873000737340537506950217437913620230624900586431863918987638389729767635741840320446182558920195177485403698818635666343989682363077084936222534713056735698157861549096514785853566790862947119511417620451621307185225748781768874085456375955925791086516725003032352993881067630982894528864862321617069709781595108177672085280122235889956254640825913801264118318716813014828820376266646907503135599282247423521599374077354249487498321471396198753272987770585232637334439139004362387210495569514915775048258597369198209148710342729071841171834548901198687276210855625073945792380663787071459378769233394259048008187226258875297616274681925032070321010360386680274554725217757852266696952954120497633196105617297319724762553158137369222850363163034001211068786208886460895727812458828213571626281004095525071958789715633669084722725958214448166988719036409746302615393253073358638470566307274737934518280448503224482015116979363551921436993580562074358084741821973482641598785082544338968667752731085332064115695575937602251676096786001560274646824809045969750317066279690314308696198179016986695227303297876254166766690886795027998734107859857647277459902479069134753208311119929903267065563676546218890419417948646317383104087066738122776380529994181056472137801523556763165910213591412585941199730949715609040748989432041867829960665318109516160689263620728570478756173967252087217956274939431147423272877870365057048480332826395519151742380559583270283936642076739706396576233760182423783971236615653691903930768888621931795835523606834523968451331616217558034504271696509052142873998171142577916177175983505348257858841318570275404739927614464267813279728008425887179291768068277476254613533838291604736814289120055620193035020071850423439739949106313708353551344474594847506369945994266549864585080001861847320263161812429419570708755145574037443622708130328602768104989156944053147340707204652546492452313670218026161241597446413244118930861637827406537799716257600342143442911489112691424458552420299146814610884527234368300034879843820783107235273764554383134748545398396115643164896774498674919234094907594537078203239209464086415417154376065143771413028698074467196103046500273001117118850569662829957023313920641556217221839199428010457399437394487502121104920110447707233320367231766801075005184089443689528041286403055141480055636034930123758118838056150144302585567014758613115463709249607008280759203771079176370723824398017982389994858571216230233432555686896780744296050381988943823102233422734257627009821350605655552953416814251489631389879537041048420424211941132994495304196254029731956222140990114268338762300855304615865030096942080431794280395063767029685403403321404933169754984462330150018775037725631075559104756038385283362709472673336791914416948243362537757529995969468369136427169323635072689986313494134315035612048255684343511456289462809869318034106533558295563886673013986247049521019224477108478936973798655437669558277794994013234900330224664085936365483719436269632359281046685667711873959849850568744653119052247408124303036546336109091933148876481632529446267728733291321578244885745637155942472701360426380552773336312792238453643252537127823282138998407730740268702310381078180177484197617360094745422103125343929840919397557566055976695863604753550416417128884348371490573054965563848963206321430987638808775316099113118431146225176277887418515479013257546336144125120616707748120650306725930457711411577532487756178679814878926029963705841181180240436545662612840613570934544583407900739354710910696444943941093786388784608465611140861036680081311315888134811328990695018432184407141347781214041548915300103245068817499188741078725287000821211485425810167118501404324897580588411759158708216583097325231261724287058275934287806980192326522809298851475043907648424252595658453690117311883525525575052949421777271828026442383730088721808288847105765567391301557673509721212534487067980744051310155687457572042867991240949897064003949087774882516191091730972526828976100541885526005726677438262775548892707186279128226856412168989658749774891605071651941051155774338305211175671404565393517261258837134641848575983487655166423110957989514322861092929342643842718952798854735119079497460379040333796457305821782504812231271404108143729605305634688329163243587165463295419842263725270119771874719255047632378143365284224115899041610838970904839247520415199797960725655862166642961268375029109254341744211662998677345648740405546510184689985035496709257974067859509253743716993864150584195566218804582034642352570755424047676326160523855407867652179306390332441575156356722693507741342586808894643101588965771053683562323635894627345054010151190650403957328806653326270993051587367824034817437138924381145835689665987999337917889658993922401025028186522203482176618250527860140635179114471950140382212891033264152957573592596919453862993361825770577690648448885409419689679229559141749361535394706298350972968973477523750163789462335854653493838564262252012163337742757550284382504264218706148394704785618628667233397552622081630849690262668934268020608805052381693980017144664663700224592461761104532254118703139586036867243538118874969407841605053618861471359531155516476398503479577866977804249501272569978320869460240343583404995561047941003651698796597667100046848806811874062147854581102503627376909217239196556717457694427183970313219660766757630344332386317542919621344381128608289186028265314140472366986507324814085180090288007905286448317116483278853221944113042609096100623589658078976707714572771904581439988640870396590596158587597607367466222727602215503910271697788845543104475952207194543004234410339233675352738739938544140290244134428880538908020910915522709041897807112600642006245997411453145637617620484489219174680092146287176576250070797089703417204764983424037053426785568952656204540823020359702115265232715998713058467816842787247212974155836982884198153990550732151711583307274294622272561146766508393876788529555609258442287286622624166518649388681363017190867325415264583617402881679716879158973540393229294008213891651357930035686792745736172439963256543173904331932468483159946187678919443426752723082274392257064999861188687567678195334708976598278220662462176813089348372454473459904377411554817842411534394157347806184036795879301575321495711420720661825970659476878192496879905836404262332900463777265928124100387221171102135389006829621772395789766210588978659352011035383041150457087603070427681294899229078575429401948803060502418480262428273352489790764127271341255733751347289703199917273709642652929486406309466270385409097889772487290556413476951241201584491047238985043372437465451533884725981647254924771467019073487991819583299726652694798762617822816895942626844599391719661077455044353499861019794893123245610808105203299082663142093785659279397802999045253636702377093967663836627161091016050720050540509588016987458280699259444883681525570958623613762199405791596279604637584044166484062621914771571303159240641765847631759001504914748541479014713227775766251839345072089344197066642042634994138263947514855663059867661167932282679491829769561137291401310702582018303650652354650980492474239827564524585750012250214553805051936578986658325895602916295187929658594120254261203818592025582485051409314808917235371743419008811940895178333400857954993106775702116173355482925412347757018174180609095640183180657098690756593810003334843519865068228519814872985304564362376190470112667865862573950671637349807390774977496784617130784186250973114470512421465917544736044597033222621315774127483202870720841621073164121541481448086034082982734452999323198444963239397532534142896335378886868355444390349996480307508729845154765432124695278484701205276363239436699753470832649392013083719570371335955712059617277836735583741334163987346618618825363537876935647247699450614735308786774544922039512947511388656307586365241392536939350871392561188525235945729706866927446997016473041488796352287305178501672765638361896974054080117037759725740534707753506247547538867508333626460267776530098390977182274501072429872625056652731742140081139105628950103460538203675437954669492876345287115343006422659026518233823801072741058095340949008556508711212880119948924424582420192007914004979287657585252589720441580802166878491962017494463649055993398131421756866503334182901008675798826579892102681930925764265717562284917158635269396501515994522175269669013391089720277630417068611714841281111477511560047562144232604179129407088266022775415738447376206024639045840463777297218084798102339394719222014904014010089880034784954985852189939124371436260518998944355749488740580137555499170897561906246426925722288485120851453947294535912098792233760394766208574091850631634669412601831046594007879593461349741206736039661933733942763539124175001933248952882640901964543094689166982859490442142652365307619984630315064329049833194925773765709619892706599127826699246899494135605782241405668993894891562443132992514229133265842142321326547836623362338643758444798374267894120634409375732061096003657441806374049937303252274173896897075607272651585592985053375309379835369763898343929867697904751742586049112998170123756361403565258141932842197041744661749772195444346815140011630398189526814771169452875439091262518091649098618119463035336962716932037028107961566371123618739327829585305364274264869652489999703958790780287122423939834363103464930418670206189090246788102497625989490265795264549112371258110897870136596790447841783985249151589445176000783421659414033149989357974619767385846967532349587235551207939139317695679270224520775189671101293485204570517634434414871639897480698967650288833129506889902047822193363386705748608741463196713534731749016902201651113220793027902865346491674664500666951517337703062797211270623823563538261917382991867147575796920044179689511047769405247149487102185163965177759190559146216784101191736171006938488599336194643218717818278563333559160263687998924660161124221915443048171742073265462197116113218771405694272039589663918214598460473627875111276414189136910933451184903382227392340729556205939890385028659321887813461745545173432817744768519821140761736569172010250056251811256730779790499696425914888931079294506973469457311664891636782339951691320419661297843763791291262169234866230902072643412469384209442084898400137975914350526883735326388605899030613471750149161359596195582134857663885047608835042575808779459161296868123147661408762623044674116899971552423376067847712435163130251270363725024146381833570875968873190124242448582817421535724184996506735502742462721100039163050379740646376347316866522238811776775096582937238770073225275426595441135763910195652665454600866597713295322335312026583542167616873124815683470821754306452200464849090508102255754582916972425931974822914730034304031202048170289832391878366662327266640430305044973373683964064545010766908891931647493713032908172819602718028039842928406791500057945476341705191243165438625573888822547190823078451022601204718978105375947959234380701289027579991185587533193638832955599057320863900321777886057354968375105125908160658083918997767146076772517813606857010972074050472317443855421817217807642309971363943176576815783408892742503122178114240151599257467578729693051448254534018737144849967886188695270613651587669560957791408130284610907311821204224666867236159000368074168585197769827637623187912610321385192033962597383107294574688899744306877490325571785029433166674907275427700103834108510010988219723492530594283469700925054599838721211138028555539738013830741465971785644333702094304363771192041646744062957135727476513131651250563314844175197673956944517807180333162334571986452850327973201197419661305707471546080051635635600492348503159529391593122210616573385473078503822533804181728340178895969375836222419500646201235724952545330555551526452846039587971842652793904844976806838852576285112001390608203013958561221882945127903776550566049294379844075424052231002481588816624696780299297523656363128473050628120447798825055930454890806871921037831460827004093763296338706882489027457125042117627266608585301071768847828702586754708032367506503932400555796113270417560488699845282785260960970940141552108064507385391465926969534090956649254306023563741363868509016165563920315252999924250200691810919211078324003054741359527374995287546331853705881426225816732575880434704601194398459298721206631010500395691160353037389139192141995370265266992062649918021721032730823999989104975309568364866405914285866009941591456411487507549575842733299904934493752224519134092093551615101692571663333207175406320678438043376296475003337836055399273709889083175420622528212577356016655523042739877671259936487460071484962570276525516600700769344650051995822279348533224590696905124668215102923589716971545736665801682135918896522149960866480245025357413075156595506762658875811645937695847940281997624606397917203142475924925753136608099721274825016907952446378349785587332310508635261947683082393929688265842431865765427174957826727484556063640802180434893937528131014247683580441629671566426078922273034085445716763430495782824133328381273649136771761010203509093858841325960351459497081075606291561681229059437281479760075825213869560772349786186537189577396054676863426010878387747220904135547418842010643625545025306416528569433892752641014888373357335824749150586573314488765681347609155466804276405221300160896217438728833543510806204012943210632054008600253042662780275020362760284360278276894571541107857165777935946206778495210762190308218910066300861709882868279481855054594142359607418948291564373288266238366105148113201356513115112131001691047175040504915486661388431114484889229204123326272381880084034096902845105488823238382091249014439143180477940743840432528325939401842604404817899380447791289295394157686113115283285875703181918684110396423797005036539949664817535156385961558730238858038058931195391613592190380812228586789248212958927472654463511321833651051987294527347429678222087534003649363220800755743263575413840916152405538712135046847588234217085569511991588799799125871078741695358767717194209956718515945987167488259717729267096962120818841751952825582547865466881737248470725851261798029610442609675634274725985222690998386193420518006835862848411669842108919889715407579236885638884922840340056192901825799745934547323335245320691657716874562511733880219473034916339098467621720539313574033032425255936355256109587668865450272255404205692950533610474195048090111848467219076028235466942743543383892048451206846772299865693643950780272254588218620867161817886297207438438051459090746782844114102291271725502380002523212340131274492347871800453655859114279895914271426491068204667605482161023235027801241466420907492088350739961523546593582968003047101363970729105265628841905594902412665080394428582170481617630100202233480451780034769714197519829497127527945987077420946764061485250595676636528297768552682675537662008564308844205876036402445538701577463271226215528595852681004361995697122870824859120395756493677368616310287067740478484434738590892712575879180970293261248402602589564474966437031116758779215316518705740644161000029017578865676584864050829728299003455113216228569346994949014524802662263154197928537653289359239567739537146414844888393030768714276958666578739662523210287017429426519506250879166714405853505018338721917327484672401778072151015138751668287085754179325026998344254650815761460240874883692100250148909830253005253994812346960644681724757819948187625553921617159566891794979692972321023756465324369582503604259393612786382221860368221894909330227078814912081565674145012927894055809389773911054601283603214565252328172337824067450333014695687395134341622938695441162660659044475664967815116548999497496169047013715325070641398179427882981931750687754221232786387531522968163534036819138340279849877450552163776860219085408116661207098665935544293038372595432216813808470077989189201575826582106727183489608052513964470542574347284376597411854800614384623583188977231985693543949335133495040644713010143393028834766386897049976583834676180145158147411549058748576634137854325214987511560689210539452039471981415484231713422979555134341223315364112831407826582168564140451879287939622386921652549261868165550312006237599537562886294652578777951784693000268649973384449172780712009359115036153929182220268962330566201998086746690175994183859418320086347216235223055091937435987494228116036070619819108277664778531295800782832490370625708055150608676114665360969361830532098384135182998901273762244357696862734495724988727421777344998725609005007280261823987817305219965548356518347476339314115064623366772167076984696544055355724624951560459157027640561736890832899897504216411239216188425033974298048329633623305002337845879473105168799125287089804306885066839954063650077094272234830891383869121140123985826475035052394469110433605767693524629186758292977506925703984577500712664602149865474524591352776409702386365580369442719229082014289686719990156982015781669937244511002441204533930585185487829108124770878531525435847587148557010081422020816501060182595786081991666439606761267589142407175248023399812735448942582466505524638169416537873609893650821868960917610907231924816073095081637014715745747549239097849384642796940711709945586324773370909632699808225101769416188149235679633905764852197829854629447041315134941498043753948283850545484370696389393810824783152062894210394317440284503707846765629014932406231972181815871355466834240704731134820465621540867172261469344984617371710862677008586821495605405107124549984928699702679050233272062396889852493394681008267523436529437413918669198520268452045292683872128958752555649751333478420764319400131300506862483873950089714274623618610201238716907227631199053316509512069550533864650443608049949813985049954223936008830399635121277473262772765444373625467209300789093258644450801806023866885944712224188606337468808610658738679043373960038492077170237962073748089372743840022309219510773911188239959776970254306781400617294880376794310545970902465122602560923026414287369371282369482964312987158750965603162492715368674525350224855428959134268228419846194365996413545942815120858981459686102572115881286878728059109424549605512066584718009240493101210102664662669451062576573360504481449569101413222355173672800493559224743811408394246963729959945426027374557901890403325174717895753460874415352679947026056176483750810684040868382482843484691408637019127519603824416241221681872207063012285381176044468121940466528301414077559526157444689282259387665641056273209973999214226523611540465546676365987777726909255497381920106878406953865664626606050015828605553626774807539448406186356804121163203342798864018675045207638022035646095752638531072025189319844158262721503845687937269594800741162873947198774668044007410668696920301337983820153395898909311170159362058094227245588998896542741992036752020023149399364102781229243019787975096918619124262165197678603812334961473247623678147246774070443405786882756421711568132048282573176072461403379678230195279021753854745632110769689910884100959001991309500262396658813216224534825397481440892168770534016321944923513902610606536550799934600265117709407998852065337395479559012908529362706315508369179760329973867160133202547327681779662306464334048190616873929982605907290012080411695244230713793071188232588325529178533835378709297554912725053467786207587177715430868849705525484293690439748018332210470888379131322593908218535860775210072397874250531164367219012155148229489517566938550998675011936905758013692088520727004140043053899290987562579093112502379808691821801317513617768219893737916207210208610645350481892074252720456504613612294541697817307585779190497317118439406995019998585788643785082291701882408669504309638702950189338054250452350419265860842035474145354377756902562431447988365766642990305236217562614716701084817489422624052557737463502237355132473392200194098038533226020877072190834120744215465542797115960771885466493369998802298509199589381439448283286451414550336769427680203625982507771922422253225845893471849862671072043836619885979557960397516619613653714506698099694913446015103123723743506042238714062683131747797711966747436567718322593407444007118386357870323846246726797913884788187544237550490161476545378315997795789490882527344550183644837793350972290137861374101056846445303537534904950327260317518975060239718019124900574181769836124628490235343408685873753617200326612729905704305910336978080207281608520897203172972469041645185884945882827710427348917428735893901992419773385659567577191920961147316714654681812497643216253022115535930297943723416614099663788142382937161529613193487880545261297753808008474164309701475817078974926023648657775166949578454826572938181405729898673660978212932040237857966381316842749674075761188371987784316440857088432949187862152721430701637018427614975034639376117602073891986455212397372227394743010069884784490811302619969698087456739662682345090180040208258170625258867735574903685385270202717679429842096847621829464229653020671721113743237847570607954106782583975597579183329228216617104390053357298125934588438990106092877419398131814146835901198359775679697469765849463339350883443762053462313757721061577609967845424424026759129377895495827520279315013250787338646595701280801327477000312895763317777163849939447713023266752800406548234264354156454170946511847825349472704702584428307125006443629561123781406029493172988747368897711747083908207658599805384206619660210338302661586767492724765254669180468053388397904225689047130326504875399021824980126835335875097369837133871093207990516822127722000119301488986638424694124709540137773363060594740802512820124971754372174351474969009966787140883893916424201382090495468323186083810356664452457556849338244658859083996465149255046261594440659112227614370954602546341886645595253905320517660732555390155057124352207567555550625017290464292952025672331712485240544250774245136515643962634015253460827285109714106559559374287805907394925457121005553322547603583366842920432265219156692797807912217468471959466435553000935865423932951181377690143508369119859462295303032514791900389192191360263684714423053737903158559554884954666343122407273725696509031436692047060174325956051588981356842937219916604029908214705446160634198796626630162829820075309998231862902098113364993821546115975120663211293725160316951745547333737175296427964250140123972146125068853619952725502372933019084805344949331047148978582610216094522657374704606758057780426225701569957992920927919579727396751593081564535073090641232124836134331574838776823382079391001789069372048784110047042227126525091403046698488063140633475322792761841347541992550744549349103485778740623978866546391966862198637075105656910108876504863163175182771361013929649634764802610576058563226520594835773494562001552529462885270408299088263404470854496566278268600274512145801170007246150702570862469045173649522914651709766383094058087275443535592226189614008618698025037375513122539341923184093098772895729184753432774955376852217297009601765988890308801393130058290476152468849963556047164853505687562819787001237115831238264069022121437748622426012486411904285253205841217159299366998399884644292617119944874884325658654612304114172108587575968674646273821555334043684132273928231739635542512697859508617690780844088063211268279379859828951923991727090996899198396635161374704178992139546018724390800890004355390889441740654145190469285354828199528109235913687747888030750103430920451972812825387069587666855202139470710103181722627900267888670334839250161137566174706564662059897278118840592802091732817755982490265956923056936538274145471676950990238795267461880030386907205308131390434582881218003635465140371998563731580032327393429004974167257014075215810829875155544771388702458099064724176421358920519383823611870378884008484952781099706537730797425438235020358541207077197956152064815704445593997637382270050264887464747073653697605918524773223222279966527725050574973125818110808846061259208894828577468483001631284610300436356922936601008003697861572672758764686630938354167009224944303441917568612408990660132146258842232463155863204606875563150018924423879387657395340172481695877220392417489382794229537074728483283759450246382361763654984688272137190854905204626874840723739394241466244786178949875651164774204988384721049261324854959796645234166830222867659754117380159961283877507982443741484894563605217744507541540955976528709704753118349777240550089152399490547450691778863608383602221460169939431697610417852823476931086277459172095072577636359025601663864636287303180119571585042043931398579928779235407239811556987548441337175889840769499418270556602985908560720502179208964511082117706465570183925301847482218552527033017975360402516891772199583906849956004920216383904722762151093937931278197101005866066263341547045890493871340954139693516025889814177358924731559600371074110631576218560058697778011530718385993128793461185894851236086543457335678251362482290540292976192977445848588211587395750949695660007525599185400066939988223692856949869447557622873392309241772459592537736892861175529208795487427421058814684144476307109365562051948575163020190204657654723547791268410835022491890330071999585594477336268875675508639823849263485702385159870393965533390941213626744962796636070127741198146309720066079799683911088314822202477836499368892516376518466265197038846854616338202656955540594077166416086050191489163781813100815202672737160166897063112948246450616039641353936993879803842430729012637982782541189534602532313580374324358910564102723145098046379250188540547809318138010778094890012033486018325936071345889142776207254073499469405400160935447744885649834400855807530178572396933559446675609835244792932816828506183275872005103287055288723647578022371349907875839897973261695633390187377801524929824891913513014796237173090662542557373816247314032516847959147623573487936906634741864624600686956055295797164797804350130674912280398213492601337103694294201379809506300580273226273615801906878251327575376159150804555484007369528073348487515423365820824662228303888043191780158944806367093961967528365683780273273500632869527861090239064974064891562754646922208066991874338889943916516916309686661907809110612109423736933890274033888145164114183569576648298357734369622184423425579494307812480408648466347980765364777205145716814935627219491780177760480659077459255972261574283974877477520979395953485342260803274723067840799326457044721336151223929606379075963138356456628094631209556760614597721322113754233567465132689294146667767905137182209147140658209239738265189806079184645880399665694592874060746451230234750542135262449480383526219515988311793865824246550000176317304083823473816865465476879817865152539865080418859805736428086366378536206427933973286313386454027890780469874145015326517413854793945951490019887888484942729099745016472811178720498851001013327897816175025145980208601272457362865271116557893192299744629917269105647245242430750131039785448154070774616968365948086176872744016279497396355420541401500531409192468543034125662182249432879003142310066596411099107661715354711296353210247759454611840805051808727901600302394327229626430803094853088554680000993879416306968321715047071463524705698851110584599816211361404848170414351007269847911718333469934355553321211261868748622355071005957572069399778653668346386534440164829598078030016308707898231137422885304014014333000882355492881289041989535328313743024951276590329918015969837812151440210328231937876523427243017489396266902669466185788961203731829658434108033304630104080060301277598876124518696070496477953617975282831944595312462588541185378298632383029193083427850218829960829049971616747671773502464825743546138979080376099484772724464718432911840340792422189029902394994961437754442799058397012328652719330061801591647789474284244645987023286027504566166800681127597840219262188655698415081594697925580676439315721675784068234489690024055244094474407474538221714913654603740589279913639489066077749042073941146824694110413417667065134760975209684519222621337134597823459747416624341900386044458699229636227452820135228232920345853128387898198436485991863247733506105971012630251044429135285152521521702068277209990433357978763568350109767427697448221013536960133727242761017573568546368743789259657418190044902930955557099755150724789978581834454450314471694166880725088037459743482304959484442887757323613865893620873312268444932167975992476739635463003934245208677738118717586417435407224928390905206088000882041952522165193159856523810655392364045287256716306606002380655198016876637770228659916204523475806831627384952679357303065874510550065246663063831870932508035666990879258753195765484609899213214939028470862927382684660405703463615425823048039314158465535322816432670891758036574042978541237436165710102130090707169974754972721508877330485055015438024515371822933624565506597133887986077300369588587097139399354558163356466863118987843370092042028903948015869906236310017854075293477461711285695421283034068859745049215815171510831601460504069994390311047716997616590015491555887626361728473499165381683672018084470595840120995644833573583021831022568948377273214579197393300118627083531986515103987574905484010096660283370011624921288215318142364394357428404606265129354208859881264100107542985135528401085947772135662218154535818302149418953644527507898505130588091068420082888404875107570439205921681005729856664351161683778543487434631631417571235785016233206097281312789494376697023871817088825746582134195299589519560866294550956034886321502622539808611014767487113369369331152863402986196109043383395800345134736931207913088206823341053851195248689910037469280971949420665577761769962619476224160007877670597603110372156902445110420611381711659015514375182288189328208298906465401959850174535576443064564246354444269146169199676547107777681951202529966478790123756932578636602158409056896919932632066134057866858978806764723407819275114543682517372891168616654694795710694044324937234057492829735100316046966252006883902877015900951693897597360735218466169689018306770782453980702260324297092779513980238467919686926896133132855932483522531385610764120893219176324521218997347996068155944548427713141850892569437077666106702728498555117540384263885804483913083728267599773519935931799862542074873029170552039862745365540293993085467255566384322978060595797050023029350407364093929425872741267859858982281882762115386244507847596776954565105249726498170365595395749906862378806556467035955658527036520618569972532133311635853154451642315638964927825402596746688953936457254918824785400214919132793269440833149703488673551892746634343504358405791528581311062700882303038987518407800793347331303194785029770050365320639396154636594009038598422447088173930054739222830251974828032633444911569218738105330059242956648828914415393584915377454079887568896678304711915707916154166522767371633658761275555992801626887949543993712981443467129512050647144643021198909652196983102148172124634815989320988546684405406545205485742994596683909652936709376398508508643613884520998838529699633360926679937902394289429365905608476953996776355594952412689140531899694556799278092125993475733282592756508702943349386582110789381366762679473762050030240419642745575158152807328395922799836618952675907639534190817498150290269385847042776303973983360391266111349197071629348885114099758106093765666273970892480867080773767039229967832911471356592656703722814841500677954176346721499252761943059900378813582293437466018141757236968100794600226991721883912539568951188585104103400206240765231518704411672261894589155155708988056716048317593780438833853157634885621276979348335827347023721584758259268858740379122227557459354092094524195004777425549350201514547830261822019872770479737142772063510534920341141091747051738111306573447829820911562246680761823581712727543285355475919319487805534466616685805925742149744996405159014779919376493367853356083588198879478538616160096708059749230863466886189191588943324331543664210798127811101377254529925321468042381929412346810720448866431747869462302555880777323467914358244701286639754888558742682171705162061809621631939633227947153512396548290374314015481715609990819793411037199590869475040986084627906293484057231143100067894190695764714143182876277846256526437483064200738965614942268253802634218824780526140554808890950138568905404835370195444967026523255342603319532950911991280653998729785978396264666161946932886583066997631331180461831387808921587021427114593654206843347791554584124610665230731126630284453409934155581256700349222226011759209687057789393249150024324857727441238224639185035484262713604055600347786745843958148509887973592409512036217142964648407204871224023467857452954316422044651691463544694134598155853981386432651069807074992172269654991706329999437192669644542638468045413942029873104341221001537759440367137187744846382489797721230262035929482420269036776474439371840845539788061271434268131003387625462273926344769991064184979698000218161283798340456146422134798768998053652086464053126238189460724010756748772743611866451833288448300416556822689840003358486689047089485895805651736938862682726105900980236113588025957658426741417708247640730367758597108829917458226594857168740583521356871877316639846558555847837648137812163320021311235887157862931711827934816916560936814999078223498312737881096066379873241188365995501267488466521033553402020010222969650708684197168690397796586898438010913223606940657127095392059964993903169057078423159055424060288245772792835236177600965196130362650624204928794270665866473982481990279665682540874285305891887056625398607468010077338827051504744190602175718633271951360750408686590950726525697910725033037447557814727238850333477166360483826693571286606877882281942911263938602826655876247164627194755860439670137595247180457494869521838145906128014309986332477737345378877279355799471694126586456148069359599331449429100709865677114359722739591556312233624940252010427338458128752325211488831782009477372400662617163969985730789918226892571951305462492754197651934864119609949328023436449532097226465025408058997409079601475701581420790959266918402245998096153934963054318092788014281764590137427454562904769614501102309168639501589729376546305500400764653360344329562967394603795969193737998973921292467665055478509523408740283548428776616158536543164663820855874838312380373662005397555977145372412718126961937360345129617195557465315343933231261729487967133721804820171234924895644219125537682627756675736414771672997242903419827585926930839222360325039364452989923803808680830420704470289684824724296435874700688622813174502297320583902860222773253974678363636539171876279417643456826716989418416377618919378673339652663849348648342126505999581579598340774064394375780369941986299832659613971965107433907082497627930769932357626293054710894624932031010097310007785261046196748627879065671539539070936723601268064241255779751844850201168865605913245417681343671263296055331694544738682199156693495491214607963934904287559862910092043339036632828523499478940546503100242255025553448851684146920022927886129743305912996516121072102253707747784954098170426710597451206526820958885843623488531395491843946038806355440362727353948396239032514083960555143767074909844395398802490963836256337413155785362412219781470806450232529594254566555579933938050329507622317658382127379846398441189522642277893009494281449126516656371705376166168552329203145965603848090438483332295013531911008075195928238919445552296329434799605603952938361915182952658496107402473318174071832679842904500737367112702683252905201765150792240749141924534043760466097469751973187486874162569326850026099390905905628598661404524150700261417181902094000526665938677717848985214759380875698673474495532953982911779000291565224884606125092252902752762947909952875289236219947773150648275359148798195693458792221115354105491426115287813673135296937745965234843426962717658220942619824212188084931736845104817297446519019981895978573860993718650281858371861891467046579562991622222091799519344257880136319121488678855420300702911164671775216319342009042868549910339977930321536177680412042558562253028756320632322890245044522032419472664561628360605458075511947964391617418614321144338171713900181806499798278865197747140697475095644005712189269712520072957904372737866466899065937262028356539822478480004631961662591756875641818158486652371490480636842988846098838473976021753927188593814506115001264149270142706764282403984056593388027413878158851108862576650748589716758883310088400960530605120758250300268373990127108936014391910179119474409131055460850126622803476967167670082436562656038157076472002979426400499490563642447104303965712558396018155564662109255079657314914729668919536856711397464493327255591636354357293800116725141203758650050299722981128723087926901294974491994912996722373351285427497048543911036199396930472759850489274044317239239019227450088543589997509615136685395257590628670093929737966697890576505062441615232667572006197473794864639966053817010996983931175644068584614270291986769446530707469495559702470403884573464635363388560751147591558250093690573673096744605619517592418862753805131336259427853559810739787361838319048071727986049200155676819136952269478578929675437430079126960362257510946502311732790162902220710317052841670011637527538180441808597309004647879177204650784459037176484680008532682835259545834113685814119581489548986195904284557764435647965645699781850220084140255716544968688683947776704084054157296984474256563404268888755245036185453372057760887597544381917202359804334886003494686063996799638182448865322346812436276402679539900934318510457949383210865855471390063728109143719382188563766326487568563347845531362091611970036732331527113322847812421173785020995430834404084784836175642341630026178580064373645143789985712360290972674228747658969805379263378113319539929948395434426275619010634190380653722801184680492595933151639595071867045136851646128310555510824297604835802119468250643603991725656222914938168287401784079716134919454028338179405959811036329146719356639695317959549794680447792416023748028556874828601189599843234185079617617407934503479308709214164460426853988442825390820834508805376338501534826429275314257709219633690081557180197216887378599943071226733453743125665388410201567704756292006900946810800780137968344646968755793399913897159961032071683647670634170879243522133994177818162551469203278780478310639519652715377080732773196062538970507740244900273302966120741508047474858749977536749068993812417237829788139444186507208245798380606051291281383536276099629209006393305550440150412410677318975126958989028480676181499288955014434301216383374705519897638579858617314752364813319103366788851264491332859555177263542789638350699771597778011612759772432813296961315436702197700892869753998621793045732893361033852623720693977320615172003577262950949084944345870250486426099589382261806563787390998794180043675422898648769502609306069013362477014198552378225525178920093798319895295651617937093519603072526918846508356852896006187758854119951908241421956033007057624933807360317439571124573998437340926778577609168388645257298387828017876932433534948201154489767671027149674136739555120571635235051564935098473477913528773934726459123342961883317909089715808718378406836169314942154538518879674442294885370333850849603428909559428192772646612005011307067927111535722216528198337078998050262459293745209222625141531533439011223870644837052615570978284753851770447570812307339673484822037552824857334270718017185893983818200388655566109404554078775500043414017832451338966470007678367953890605997510011005836577450631254358728135238007227677828644046510111426022082538837844459048521438755203200978601551271454610825361047432375002634964539291091475830208632623850234651956693222665157485357524010274274400039960359325791485053236784039459530322330087220162058674959012665181553986331694486444548563597354660627089158661937233623166199833940379888654333161523406099300265956910927260397142884357539127811990545977369170963612426264529974888818809709965427829150556991689994958417020235375482489920830676985313473233525153200387047655358550054576437373461183932500921938462285669508286288957136946766971158620589475576955127470375866847818767327367384090763222417646575277069528753954368785019205159666995401145561761807739335657035487301477741376585966029334316222148461771905218870751828510480939910047480814502452613604070376178019610361430348348732601987218398544324964562740489501682798172478671312360179751762114540155301682921023336655849366901704907097268573742897891957940319111651542692038709421026014954403884716477281132771016181233687827956811602293217139359540302727099010411805311730305462447795530520875774698761316648969247215104755653175138128493015497536819819945992242745049758088444668824753193475920438172617845235634066829663513180088459457012904677037659319967448487587314042633834408928034744027358323964729075381780543459293313985892071047192186063319111016048692273519149432308888638032149523549097038375112768690152568285675764799681619649792566974470369357091212550655865843315286179195943745521191301651766679478138247200142632834553857938665787646218494074999558429709703915989362898166917065935394603937810725550994438627255432284860775283730867272767757977260579747855785256605694866790375977612497505949249105691132012205972402527999734310913436168238019009214551270566867844773857240356166875474969535175261656408235255498979498427103576159943424241646000144865650367223706417488705475866126089649781423002289816182813566989884440609433427433547820052613342313968607309858586953419543971058654519968359367219387758538239888891903777717280507661254420086763037969131943155088760526026559625688583742076058853837463605891268457280298125287517108695078365187307503565797641423161458485691918486206820703367620194647273475501942953141883500678389322308155524493011725035487155079889010814492741370409844377947737552462082438305679974432931840028657538652318740571732369579946571282273429624285077601208468476869160586472522075394081295435782906001156433226062501037125208502080559926043190684596881114617306702415391633923419016728384933875648217082410795781967258094692818894998046942505229105548755993283508082440389973504880010966529393088084416730504125890925334150642547698714552554729785835105141260835685899269781869826572490387112040255603818012290920470089656731680360876577703459885362306094610763738222121470760638747592040976662622252098352090111143070293581203501906301840300965377029358934615399918684243281084343479066182918645923235378739406118721239972506601994659124192423247354746016050989187789818164028343134346351680741721911796058144104533445183147140248919100016479796540566865012584289655040242356424384077560594349938999945870439705275868640940207919129827648580497617038359779772024627358813460671728186014135358138565825764946882051901647632523494884928810892290580986101163406649023336998569485719652252573156346546155767317731658858974445501946700283654313903509187636591177901250599238584881821552886965316508620977601741709529237048807325268730461463625791782786049779207093249449716850732684088152115576096974984570347117162668307856019362813923810185062724908164723200393057698912278730719874516989505702248954370667075018553012576895292712962020753785571894461640938496316717946624837333674357256514522155247225273233133693890787790179260632162883659650641498199633824122791300809254392771589501880303421549900696535435850611936602572769884374781071165270031483106658778596099956460167543909190834233740343863205539970151369996499902816562605749971441646981071574851891418656535558272661289799170060684868916121244974880184123630928860992721170650331333551713184738758605913787331305895221426562041894453386039983222340562095573495486355566556248855766505294942023548605553681905870535238533928215258522289197167826110877563442296834576769160258074277758219847790200390129989674367708806709198811630916181121894092996626706890102599638704177606096573676526747511200818392871349407747276377831942844873300208468842886621328340897857888500327427308720085952237815639055320414559637949644916826227100872298603402353817694640004262106817547477541000170477954964254976420792587818765665185932155945082149055660369990818076892222839374025606805129595064921441838045111714411948328751015378038503542683745057689532596753565142978592560645840120525458951769616139328260701113943717262244618681742674582192392959114102068488661032226267177068273926258509808352104663092161818178701806303556160807582481627785376548688827703105020514908605753456931298894696694376002743560969401263018947474764798916560112714894745886254338743333298300705613401967379004224694000961094799858602127761583757532057484526836371148696985317090500264021070823876509030243399097601105918786387043379247310740812689809939606657932869985562558461087647050899710631385799118125045161272487204320054701261648512948982035394906914802933069570774946984539656015659271610627837614395224652631679327423182418800955332133953539663600637581202627209537098606430691366909205429280154458340441584485708160489915695872370157448178550384241824909014915378128054483236059346805642129895362004738508457770146835302456707980547902547800353838120434749623398647679190633860600068440843935473107380036332244735627852242215192188469330377628053468157443462408233891910079144820349990015805317247342644011423514900976825500251743980369840464150134855576816146425687611745757428594024755910135317012874138306805213092976502881600652883715987154289576118826457124726539744248499613192958796704156241722127118484788297763026543168650596855104356411804690757614619187225861605545432429951551187359036957000028366113047388557389220356193356772472962601766298659088238483382731578470408392341705910884309737265741753211334426775861380384289914697331585533847630244969715317381858631326690960602712537680251594406726777843238829905554880674441524242284355476010527603532046599152107644617767938116327874146328477347102008870200672476319375999380541992234956827897524045766892408114672270130853644344666672782231099938753900712913557551020841297121459349483864003705818759244842910219227934559579196385875898674057338235235023153604973936399104485143053115217903816620847087506145685150908596133576563178162919691549877879285643412556877328924097416756162750599956805731832304382653357982011557995369835295299431341095938068644760747851588418623951106614971141919352709618211632153773787717715394902702963678724911473892842838221877842709154200111200738137827235142606288183981640341796958688902080626029201893356537246672047058663532982439693521755211605781270153214388046222275473980121850064735503659106960552931092134474892388076042179496994928470863381222526490941352059604319776986416352963459118086918519344837356837265452372777346563061228276728810134427239788584254452901376835397755121440313846098414999193667861396586144978296892205172583015141761479381875862708990144256970707324852470992280590643819104234045845514241103011648425480292493945110754269940708968762131066451115115035369754097071073644880594442399678843691111388617661415051722249771524706855485259446206323469121897542443990506502737007008770733376020741738310352531159866373624114441972518945009830147135796610036738317093809435082180759544948067137110677195017863849013497365262281525194082285148789462681603524468216703598679663073026770166739405517247090210679858742902554286659390900448257983681203191702781774577579525307215368563639713519139751707616102496230625266775902582766292432627934842325167273530107704448801288621812809963435920451400252204745380819318778674838656111072421306562167254840313300870773562269171131040228129868397251362439295493662968972321379618059877609872568763462808604099018572527763508729730142964386014966132760559712008471284025269493472061949488535102075873477056961241443743030160998853831052627036544186244521631452416539143735791231420658100871339952647203043854810198344366623500506665278064228819932639661625575820510676742463366391178263940687216337904877906748517250195226765346703020774321957451981453993812772360289031897686927108963160440151830918560171369755761512330533162722148765514072844523178030889410236801431644591292108317114478690214678433654134603290467412763804060365526211143252783050426484876292856024840959338010714412793187428061301362667668638901720281331934010513938110961406466976239792051541849706035774010486909428551488250275502926233483829910748350574353211123489824799544377410036770884002415011322051603968248912997880746244127703297700971340548719479131505980702084913009485657655738348591436901900730681775464400916510992607248829598126767927574636520541694293465529483043254486588084837336442971414585843079845960300518134054433296201127131634518341571463519131537723384114565909841521956787108888724487759929866854171022547787116920443524116858943726418907603104851833480779909303439799295168060488082308935872584879237755780484035725840851593803605678341430322222078611221274615691656151549739011097328585020920163283393686498306608953312796060908804020270127336706051748806522702547362121195736921068286229746813029279703209165160019853611859704518246664460353090627608868683271913144906688471544535161672589039010146914231329342093434722975144371078980443702300683170005742410572103530425880828780345599947866437559832442614637169769825580837926902447285699908153776004278526663817368946982907927359284941472117709601093389475847843051481297273466253907643678276453770716880397730484901214976120297393648951100484080551570253105950014353171421192006358739996053883110462647849656923257479042135900627304119610083356704688618998521641936887562043740341465307523728445951173983626211100658434694495666698076930392222864768259875378749820618349339899841482725372121855428963727492577842223820865818207288869657555921909228173520797828668133622872299334938084477213169872309146713272184220565401226801462807570924907013787386435161962473790501983060585323390331181441800083494798620534394858903532865775677011467027788009527840135808869894369058057075448080527847994341219921207941332363609390821561429715791863158748961943014902236152970237663825705585626518990620165971433072416118675574076498618518759983462401993420759170211421186572539539756870064168189449175743146944126429243566641501603852453441374447604674029704620670321772616427866031847163776945894241052742056150660424228667366590183267730659978494393772601752731922962981281886051933898604317755297000223254774056050034360043883240640273344356913420582947113574286708394762327666693240799205016698063924468814466889635119278455128957202592356029431674789667873070549615431727961941489161375620816131399236073082606336999676159284931170146487605044496578682603481036067840519287302807097048306257065112241149876173301604383884182451289941155401156590883618966517441470501635464174795851337839157805899182412201510868062932079950923685442270310149621497838320471591133452967001407127751113188332673699902542934091741037692397789329253250337652809124540914346704138080314442973675425749834418307769913381649467188601383039451887958602309889531482786594150078919189978204909015833898658386863761240787244575051321953075724007644144089282233407894776146507615578180362210163666458292461397442207196483623926197679740168472522711104897150197690628819368248845831324250759596379485715642245758071303810313251736497403007573040443980615846418232763033490652843588103140107453702169203672011180341494234155704274379869229264271623171237086557092527599892829577619027989781364811106179006902751434821114505271575158339514221211118285075588330476876631075513928889352195617488872817471063742158374856970045002546916089557218171164583774576715045564015052501558877522647472966523905167055127232557575705705655581439552562585738093172383271683486473533800021655655942605475511442057124485562677889303567909192487380390348362381679290394908850574340815801952096482424353163869997206329462691102066767683255039245245973282624698041042385147043899523800258917214626885122524849928970793847194548916993466286673134341235022056539371929415373040988731250869283871834416588996047517253194841855011366545771386447081346621962287566349094935729034486944881901135902463822203631367091688813317166355803444915916327006991590254256365012515138028795732118959607332229949927768326251023173918738036253766937925652134894660487422889449025110021240331260528019790765434135419297212267018119715459998082693703844678313148361656245074318627675887383397595900926470494259889200288687686339666311978902040769928847866618421060985156725816479803767194690447317925808704521381495370964271764232764946898718086200969224895846744310378948241008706428722538281466104281076380532783177310947312146984102545333006454992805342329540099269196570974846440445882537824703873329487245230326453861896885261959433938657493689047523466522924565389023520533962126579739123510690958304329750102990723134053454740903022424195901988333728581378863786228142407995999100555971603059076320801116593860793062995070500607931028336807409468039367759574685420380740879982655242064599518099379839294697350770439020334594886771539060505090446869466806831963338312878929266674999640539641755613420158218495395168788112117789738765222628127777139140123597697411510605855925504968591524873329405788319535126148014804375355098443923421943380620087169028124556930746013181496163038867570533167644920511027560606772127970546390644577930498401287160358704944204643832528290583536857230948829505432425700471480175487150221383541478471795873775712455358165865600379053308894652918470255914275958300303304062366976344766928383110005053204390911365823089122569679760602722424295986088374590059476932603200832552109175724940700799861195202774346463262087537738345360029413408605433164602392598607993676760320935166952829488259544997368374839193596643031710940751660615166135556474350513893867930541346339431845019076201371726457695222240459417408898910244856640022268643432951221969331874025250459575468473632700795640423278425435913673140250408109067783766725624008928865682837285586583310957078725399829171289083674069914147710837298476029195778881103281236325796331999809138770588905296840184508969636015663109267909167864203952948658072786298830705252653175768525086821990729031466478495302010493142892335574334452773452821713722247523977696944150073163062565186596604391179040951151356791457955198860885674251931241438533096013031876886303276272930631911788158919089927615254374155861475230402757018268334923353471803527126402820272574373470209788141979938483652212672511470389060760326023421738427679496835759377830693806023918838448401352718904220152348581896119704827474621564913681201874523176863811407591879964560313999699800277175852458669204245174042128215406181942933851444160572072015814828464373965261149321345922727579903965605534080975633892402170215306399997079504299553144055268152611892780684357209096580698354801485483178206101021171040604064474148138514791278552537335692000598494007439389137794435490107169335449615848769076814186766468469724451871705613577384157364582673473761928401161124511679717323949586966712989096545253255410963620858667385596088712672274678374784567968603180331241000119003234896285880779401537247297723641583508002432010912423774125169333009583097784954703856652714879511536617401821762776396363880401369285055812554144461504544327823414968699793163661718650535154082120131312629524530211940092111532822989636206301131315588906724395804410115846606505057245414825789135358650227844876064333664061147304178344129238322841094349212212012167579880115571291836461596726187108388828131957054527176052571637433153471463468570465159080342056478361631141278467113038968225356239345227538354145844870997997976027391623774090369701856141702313931203442873165289339070442698119016051465652189911079538472819489120276285272238893065796616231443065101458038963991244740560720362905637460360584078521192813533393615896771214541611824347606344254913167853232523309058815264207211756584679170400177096973928977172576770555949237058844784915345833644839118084784260003353030920806360596138268323244024617095059086678040748282853098327329489192471767216311482725285027004349413056129192946104452761416922618417747305453517749221885103704374549890024626277327830694313685418299497523567422322486755170778079750018598609127544001445351236141618241649385964468318480139962501287126848599138044265828919748836399309460407675405201839397325383395558602130052975053298456928672323043046227862697930397003112179725450316698936666079565071488168461549033659866401786390676388596394613848484802504747762774588416345002337143199329731090415473711485287454099685407203742200248201301631372437024670885060338953403725334940730608840223099886447554166421800817902090701708992853492069147062478667659300617258453104081702946890791424106586026170697301621528185021064640935961140794554877251656219604690569953762909445566093676953699059486452448080251257155587506185800931026078536486780673521025533197624925947262453936433932565978072646032129291478117729997217888521805393622623351887052427865043325789945502753651960357386393937121815122151616092334518355689778066134041576035956177293377362850450411013721305259742154210673520031385722680623659643227062250716475785905049661306352166569852757503982566183052663234157536439260496460426586104254571467309417367903651301508323846910901548254404025592092020449235323016658995782776716443810075399770163225145875105164058394247801278614427112844007602479725291606134061421814744043184750520275449415602614096789585625176354807629908308144940060782993805727127761697690417025827200535190458068547955970248765379567209900766199824244639190152689921916740209948287902566012345312920310712399061035978229621182303046065551486469668005923103849437832511433406459719110916198024716453741456106343576648246154187223981520610604377759643734320173277811077039027698599853855381071296317719133116005334331943725047924835019250148986489534288221556733606799006184283873730750034198777744810623691694158911815907714320378968738279006982619802985120850682202318403110547563948290405017266948021278465386331844522797671386849712664277978062549252690353877542787670449852778765568013534622143025294092481615529193145538668065596427885698075197301595884119939962049911347726009850921814904081826651628868647603622295984139137343279016902904875370968922926629009675176038004051521032681901928654083912216999949577091578778853376530510630960091409144730995823175828319347787102754344430167441276714324799239194307134292096371590928130599406149361326557598426768465721490789628050030151529700586702851057943442205353661339701609865542911940273706383485052633810520877493754376142646267567389110873633329802103502870052557248207279725411484140283199529991354715921076694889844487949341549081982023289971968961458804131561173398697959095077555730298751058468406579478103361883120255531635619384244209604654991909713052214179874851871656709498996888226803067554382917331091087287414494537244674424981400551653321892379191092669814603840412852900377157093654899176457511302085075615101113675256138894813661926866227010480392869731322537382813224943269719102465642665100855900128601889333678499894511531885141494715981964192546179593028404581500303017771226241331036058580058102679792603555829255994519070522753794401294474953700912339706190219712842026848898110908714135673574720760640384488899540573111749372751660974779111740832854596565971622910812625435284655783056374823058544249295765292495848190099026755640605273656022120442411784541700524523121245230761438605633020468034162604981017337539923164314543684550285145905262911268474557137555793128849064082018531349740773586011931355053417233127035287058836217429475597964161267252790452751288044780530601740667231520829374823148646917776350045384808474383076425680905823865006270226578448834526798087057188789915012862736424860296824399533403538479442609851212403900662590049118738040718280361524073479655006551258539213698365697072171012555259879081654313125281453976800594626344457359373095126211817873723915174149967677283684376177696986183125107162880775993114652868514322396758749321803905672390893135250682129422226253344154590573948705846747277164901547251604104560819776496173378200039862511001191392703169792483968102470728119407980880036867324982128677097152504688423182852358203189167022837646537237582174141442639538916988983238257140026546447566824722501441725070412746028208409536619846711667556673706924416094306774669342049675251221775083084038844732251042600773087299163927162507686622931316932187023732652789718229089903624661272536775935600059386125373457873843188626857179899338314574661086383950482993153321472753320102497984956524068733400205151258834738662629925957838404790296018219580146595045755361322288381692672721914804622447974947578398090732805822738400041213600243451891539296801096013492574069579433929808983328161864277355163643777014339055823348848202693902609932199857078311372220952573429922241215467449419371891182652828133078616546856485489774241431436908219105533639690096358309502139370883287794339338180876527257080190951266418923623303514388901463181543013255331569858424118198471638188571399480466125298162822609196443254632051443855232431664876139792850645764496533643810372604661228375381088336441440056285963099396995017122502261815085076793667431720719107485116328516570727060983075081749011111439339801917869596342763071821711714062088746560048674500757915051737304205511999027095464517809025205003920992970184621525241969639159881101570083807281434437149688521988179643142049330064141454310302213522090337495981878044147466706972799174265346795052977125416507724870820214796571916776812999586756044401938199273812269770326200221863647332018399914810436572558717240051399709067518858964569097654921547758805949998584600086818641996529502169320811821603391172990663376140641747769055209776983590835914573333397650148262477457708034377121446728521492460746152430215567378095465372137302107264387809734182083054538815279252791828019079760851851160040636706643971320608631480844915782615981797459656438973377226614155768101000428591531906236078884206632003861905895611335042566906456938184574703553370844326341323519745159637562523598496983497727939185951190549782217983469852933474320537163316416520932206756406138654384629569910285931734297661478439182336719185780870968664349792081534732360047226576501347531594148228383800482803180325960949068400551192646229325528181165238958225027565658530054908006751688848798867835763035307162663454517699925025881758651818876365573160303335133983214781946709790361780693938539984603943716810887078192713464901305948507407247919333242455118383096166846568188346799546446798951322778387803387811678772589221631910022130302661075533274636793374697551246467076201914237887600135265168319150561755770457610569797935388864587108854962456337044385174211835154664046081675999847129377745402285196221618270269328264088916910052516520325731196871642953111690727878308483043289367365793525567034464135843403238875386252122147512472305780219496619841295021129784147335135532058096078567397027014224369811122502133859661067720240765043266497087059305639284770916543221152747997766275496083708062892599359984228041286186741588413966351187071325075252708603651214958994997846997818741289895148085779233681743119105008425708743695775231718787144290778725757413143013027958952537432565493890920375559796446003637687017277660903661031058169839724412274110004108773560088944745770697698122638648547280977517001225637455796604981346705778800617714451230633796845298829904706024825779010511907372981931261060479750811554504876758287335493455646642382225929028698555409252782969072747509405175685513993583684792042909604784249111361037175580409343287150241026581367059097881230005342607252097246101800391511792929376273044805411535850380891380123183798330844681543214690834412307109038265070089944122994495769364678444111365294579890265638638317796073129855362486335450718953965168774201261031911109055882437206984467428022400360238605442755224417461082514369196982094760333311788773915937288234322456196671092954591105735115349171315750788438851877360674117578886548439923124360966114029508652928689329576742841129574693793424468475870624854999133830404014303577567494135269692879655063733147532616644974230712177142607929831575767544369057998239206512409783231957103086564274467091030722339407309631163868560963562256566359938302054781324506801043136221619794419468603935331817697063572498943880852413297343333200127307870240822192799893191279300939614090062401538613606447422013924982297074740364226036009054317267134015251631505684713140939179184862864199241242909054210247429345393954950358519855963336611914838690522480326137649168536945002539207656378789631836750943634214377585422727514580447629478123720380052049119447104092075636222455982133696663406098911843135419762175684031472682183145681061369664588007069300194111654895308313370441441714066419004029419516367777276050333528814566799879666691100982059143049778568931820742664987387224159514546438183117043487604948214862087930630666642162826025427452946728957767846374298135473056643013813190191716895335910124270527885592301064727175656756271790117857909376005705338897157871884019317520034177448960420058336748651732301392164238543886783927671429056937306050878694914592545079016733045199544151059355821197249043833513255846467344823806294891469819122032781488550901715702324529439954761807691354359032011145454682486061895506302808132699856181429296479712409970368605049821044204208780602001332654862653367784806987330541307306315362308858690466219110711221883651473126052366403079657175312685313140982473099120527283414470906944996782446470946058536900530086035703377317549981533588085519899709676141701203641225780557533278079949323549081530350996895466902591206940204380530748885065518819902809462452600313694863690653341092187972972702818134577851906577011625649966915316312711090102274309857505182772607214650631381318437527828558728885927965839642609289824433009669233359312249683934203377592762463829056063931018711510423335067125920280560630519758091523871152370225011717157664922572548991170915624428816998176849796023962030604342951120054590930698833560116281579766954315285906860557004179837782431652728869126697361452825897520541699671799358850289648045890336592633737162125797547756275779825229614971809555919505136599439672662742702391887474893171527835978298879884231083914634755564211748481808881785463637587603739941531907405986803493505408410370986324299173621340746827355649427424333150485148452974109128395148079952486627218417803441437138410786295031834314078378436543548625589317389053697139876286180649670099914831153541641320876365471664892410037889367934750424239487337761671337531493755330324627055367972414142853680778247008911876310957862420608209870194690582337636073942612685362142662367781450566153532877736690144731355556310929081806763141263248206862780431329775550575503778332771379212724989764340051858639772018797491745767435190465536092565628000709676280648347326670645542362868696555656714582439258630955194181820152010472729283377718142884898968573829118386257659577688326762350300185203694957264244647100101122223300075333069880069855747349753576291461322027840667507988340649340984885087380447830415297662885235268029294734330055658551849460204629369842370649400652620894625496015632200623455103573797652577213952031722127494065467558360418637007127769094448269882117076583854062127566524620266881228893525733583244771471073203440836714430161659260795036064638373208283085924262907195855239777710660106337401048833755186817989803240879176583063103608481808940268619866374905071741601672581307620003035008354442401865405430208885318927321822568906304873442971109828161930226124984405552295954844126237044531210645899232044295902969933870689460051758408119548833949760147969081935602630375347198738733533311394967899039456920415893598168979105443024931589924242044751610323858669285668928012197444258309687575402033015574204009054442790199743546847097050677979182838011262241390987594473516178019552471198665765866353767309782743994904200938551485914485616527228276689342271018771062481055474850410772740188325206334888320309740467455248187315328819680237719876044160910786618388492232373379333875944987565690619443337104309395727484215354711515779747889455097851521569779407063519846519181320099403519652768492549975897460444624585109283112216515740419347180912685734740615990426408565176858934496627329981065626690686821677401279669695225680340733166097497025401590879351462117951431785089243778269365896011485817966101394828337763617483474394107861453488613817380724087602697026846722634564863369569907819272757415046081189694265847904584103845452263584732535992230709898428475430794130536065097455648069916977865354247105697270794725560617927288989998128176973901531322114325843379819788948813892036129280671885554065922068692543380766726351120276235848367195246121007533373990443865544913335100488645938332759678002204517397647138371014749722547632915474314787763221806332747604510333307833954648967714178751455676072072601621588318209699510511741886825588016530895962776465086495958949122441483363755062203717647250146365822146001708469005338948984493783483188848901244321370673449860872090271587777456906662297562205820044204659341949407275719858247614676765000591576480757677963478191660357446055295858314288351170111284143323620365715119807866149648520970680989202216906124602642759991303939846504559628309771634141735361497806938416461885654421933556380739565220757221849904898515114086573713546850675448238887716599533935777424033664681924502065003336617532990666177408144750762336328513694321690382798461111057470558288702057946486360763925148920703131019323750362602115313745134635014268852394348047802992947080361233066346416819775948747534686065244518888211477220709146735447262655455644721273093925737932961874085575162176924399025222788562612044197153384543993875660850114366695511667023828733152647769117862947973489881295074268148146309721770256623581726224456617847635913839963318282308590725988301114825243030663405828543796351914093620135890534256499473827694952250435104558603219882520643754404501545864777689655412307944319096945611890798913640748251451754867794271662750394983073900721705541591223520778509039187365635438999183453612533650591672040925498600993951660617206095213090402359728559116344820895387762166362228019775164161404885583993468214989584615188427003112297173284993666039031667054189342954843598955576124787223717326274009451975392939829755351829875257776138585933336190691793339920950248279880603453467759299444451774252734329874250512282034394572257812805762718733835303839851338801290054298723454330082339277695540947036356213243795678586746837376091798654800577786806296639625564121064045576439706958412780861531519915574683742719716169127633407430649711034285964988066304483057069135455687407118422941752290926619706386064050392528527212120432177755106730172877867378933274470349834333972818504676107399104422447349146864664924437123674153570318375183911393410433479081421645055558345814310437383939798619240239779418157975796267058770062665887274122972773742212243430600347040253890764743301051878775494586727127306759391347666213573528781843082717742283692017189269325541485716850940254337683755191816775010624101799004505782194265608457880881512180200226193342849407592792035646083188067002493536189962795635712399535188640509930172231407038344697611919075404678599436150880045787045271692773235722175017661527963877839273522227028177817905033926529386863283427470480550022111408482524923690127487608860163090777121800617568006590040583936345602751220476287552800914648997629522490015696373223762350819988816512295975913733911600824861586894869903350564917276019293889496940826864959334586975740257773395173730734278898581953371072708522377083016101270851210193704254704196078136368554288918983199302849668585616933433246157495948703510343557507017571436474223909052538769982159705434162652273388164471115736700668977682906211253498565144686108838256586630115941951312762342788054858678150650667457100381093962359246387522413040604247260641350243414329419144020994004397870566077160989608483789300693235505079109037563021398045698972166812019980575656174760809894102082475786428656729068011441744347210634472451634700056011221498329086142017194879401473089145321766167006524367355380289134704509576845556568329478525137342311326232455734645278983808483533508805528976116256511895727674872423817805086066793028753885103514363196921022164249922386479837312321605595344469946424752717091561016994367175943670192657085810261358830458236932172530021101491228747989177273901773237982033129087735874387147321289973458689247170573917123004587089024957785751289523241049383063305879144534574722497104068187353624096823889404320854743660683652883782709713786745373882482373641890971443843650444356115076226352726265351273014801761699907295432773251866455882265580131097279095664813226841361568531912818418234997329536249777493181390336680597048478236316835735944880997623659099553284966878202097839264662543437673924721338957633096389264652983844503263848875992427382109065473205454464826842049942628796119474870844785272918680770640909491360315614862385034350581585278967748992424300789200253458030937744013918796290185695679237319146665883677930455222799402345726838832836217711932612948254117535241555524430376562027198857929061198885407682188500605032378336344638313101055644177780876938131004503570179546911034106208878503398877103652942066972005309026017710009186184741108227665135490364224458221281350008685593159238591653229378345178022829548411792559886830711262444426889661340905582745425467254773309928999063036292543656845319329161036719624878535243745931245166727359004755958917475944878857915497655084402200703767957844736679556564042453502594774423411818726446577534814210551057533432219047539987446046781208340871424380861446339067567771631366941103007000266328855646554437819988516614056474422767234846864726309811076277539115061838499701451460391712292644987710879042527022460231626144484624661688933215902257412595207319458541077534079533580468528108608923807197097645442790638010146568461754951180153126579838649549695254336858886156644949079204770734263258312736485779679611864941887886592803799336939990051163211972434333219850702675339246713940580009880630223867202610278373011520635423356806005376928263185209482713785532501964859725196798638547694417230033144802799124903143317233616035670125532018850783309786456567784042224758838101316776275104393164515990077564981670997006713948769123358984612614111663483728485032480481462199728052572966298998689213937809906603066014927728242505324535660722413667080899890224350502630518904499844411140236919298947842574653552053451492799641660480851501591793674992070286539612822253412283727276895703062797206919983623176446594520502754379878842508150734653991130489260611192508938245661904492093897647696222288775720099969206969528388749258572279065441852309021446841399496617613512936143948726645125885816419733175999952557940437900184592428731457808029134185724955639949752197113473897186486072306736349847438167637591455487578983380408831517538883877733231966293366289016548552733231231473469305928481601909428753655692322799815158907664332079803115107414049589091707649607672595401746602221451821005608047944189636528928227158895547720390138858695183958073176017074487052318883353325583126371691190790537961362941627283966950415025865900334599686828735026465499890247613423292064556711993072523052068046476399767057148774790651355483558436632347827478663041774063264433818456899407225898972247807486938732533348923450439524440469884791312015820205484764762020812442952849759238332935205317739980749168255853550812184000459944814680959972966152344797154993177964352533709069537086982805870627696714627737763781613482098414272066348375863255855703659647431274489818527312314179759343817526281764307588200380409018263676910367176583040044074244919650130764321250329208582232842831415060594357848047956553030781597698162669436179905869733229256316720408427153522138543297786596455616307225083013936250055304906303356126159977028634295835025620839862321514330262557982063787399487035449408101580754076903522825932200419054987439610979649301827414929957051744919550970375531101581971805686659408345383511817140142231596009247853460937262337130804038644194435788359981790722194611347283926661786945251216574072322344056014630531570378730783937496721534320347680319574597134917965276880595412003988928178258996977014048955491945114159908562168612037800103114238573691471863977178867900331601431704739808927628009217323402123119396131213876566556724684724434041808817477481353878182803558819972115290529190311432003620238575500929578913002596117181834628689593940070312176969884794577031170045306902971746991629241566604963862127745494506398698413137479441755134236701126288274030603902120402985378546024390363637148466721222072451399306147607070435765716410822622023234012991278281280092622480178331426978610759996933317318112148708058846851054889793040191658686327069776164235640165994969423195755852871908618109675799849706086951763479780575012856550109353478453752974849568152299050397440680868388803783786973487445274568948897314670620705585037039774797788738384693827322730461568399741246964351727999094084814163791996770224530804454581162803989680227158033891290096373871480763793101456458314355856648256789593032817252318523888393998349199271706697187966604404562915427202629567047943564929571551004875357320234234123667612303610366433575255879304385245854792725616726018181433961637560763945818048092728418751000594338362623897837846185882396197556649663090716866662580077114917484090831081337373963359288246667500002778230246546963792337407177622845452229019754548114959004404535068192454123371867849909787527442724222300126147441384886761979972263483237355086887859329973598460446157642341634384481546321036734349314340507435178887083947136456906392626899677241746231399490510434665478013005126719431005212589097244696645921295902284342035007634463244993524430558619583042316103070271376759750284984372242349687371303319583973114278159962439597621716395836856852003233154109451436758838714678060012927462358831800170941330988904345269866816234308857900093444899731172581467219284839866381708382579237742504903847113687550543624508665055040925938657325320868797126251151121560325342861390308175216898772233756028691923395028619623941005661236804979543589857127346533458253269947340763699146575296463985898957516532582836855804225728889395489687471555483950245250781793816325900544949992521537613120491111592732506172370351173368091948181184150848728308279483178881540810504319864609710144354891790632766030077168262698123279149206084809706894982314640705195049945589607001847064903947239594225084914467000116907461890891826346662785451241659122122127333780960376753388357445858088447666166473430100835629703577876437540893198630567210942081836396315389100128126256076356316933768779464566499410249043451898233171215295394676940092549040936613740026421732066731973667010814681614058471003976100176743319314933601332133283611501048023055004998050259416538498193935917482251920782468917221043518471198038255083264431099593124461362229955274543376636497187940795243348379651339668793691963488398705968266917380588153524510927012520999603748327647690717623494638220977451784832708938940194169487952008269272434219263386303564870345819035760068416804474511544254001722372339532706687145079126583892343016536206894419336381324374474673049903572519439580335233232658891041050163682949609438807281912021403916536396448860884965388365948674705836511441986837381663680915049994062631242738738207256439859125105769741471762845330134649394287399228238789424155790244233657653543517561087052578270003772671390962033801780526270901417110370813155223393601275561989574012478945585468138051906918470614389637257402007702196646480299998265411268007028961827959660106834493666379613926009715012827605898376578931195571980712382771424277819458789736084760489641871945517598446412677358476153422289575792084572490647791882935951802208166988320672819569093072632407767606096967107731305629398077491639926751882376334429806157675661830412512002297286918174898162664191480816487413426120784235546884340770219841555610752958129140759490533449227572821073163279864496209024929637142357808516916934587613318231646208605767330786101869964218324631151032303072811280940262477281393238788317578785307076724829389248933204832813547010202150421815178048675239658432041196846442987793947555010133700152841877127960720167448299172334092866864287861495536359101162309280407213763545665339924636836145645894472379253494179941622254613958556323690469885420099275114031262693821802977800638636757729343991101601648938476229657221894122300754449457232540926611911033410534510618986113019491246663339622955780360303188961735720912288717764139073598724163243013598287801712917346888483601599157266549378138652246299881630080929126818794867113730989106038005249985934669352196691046178049673571250313327708741343265796052619823312245350567994450160758054418677649260152800644583180135394093576621937839689834345885193092119908384699429342113996974341053439225972468934965113153618338434342613855320891261361274578643771598528643374681462063709651328813838132325968176609247885342419997644629019587667346385696361668745704252669456520272436603861118626381922709051626173988185247792956646347194667118715047176285190803026902065699585369535210765645837982639105573197538086044478897456233299718619929860969230146713647853608114459061365089432740478233864815620805013003939563409330558851028620863894395519871969809595066310883742183941331996296584637232301460219054683818737311002352841168880489205568564714495265065899140370934806405995946427798864065828771625254190513370025852206330599570724893974039100175636974204298457620404352684007905856234023179407342560309975332700005584620212620556527784549036875717043240758534448969550988556848705341737403317061962802805345927801604398199303787152193941576941155976590349302105509579603861788481761172057263419009613942895658316778275418324278581938567994875891648639575916580035889706159120866976440094539570450229238279624181991660574174823370085248195425418612698860856212030011016445453524448288533848635192639859904697386411978773027794640102515485991570977073977044603835744505761078702421382514905789391724196180915284830265532495880872060039612059663547007162908369175292087280692881745023588076323762750012919532113976174891646083937948765360282704155594963166887131507317988505900749729975776435670799121702440353575031413504500364809964434580766523511191418528508005949077737996345239384773174988673520209169289721671453504912148437563097294577864687308092189726595171292329127421742997769029930006021896643845034524461500003163711619572351140962347121382737786453230707188833933615797448839493166798498605559305129184119832882026047200891834971089027381527421775365630636057341634276007015148203833138029376006576852511966384676339110951843507683052984685277246923143534604983216330348207024669393607202127531705429274378702028093907947561781152306307289023241041971736133415791588872774366328934729873216665621961537049834494223965844359949183221421667721818601554629815711698775299619283788182406200904031087812202818066114661462318448122669562797166584364777136120068514283916723478803819202870289916362331796409329935689913756121035420897423579238905573707106829755984802693686858107404342055156179498655778021192379707358908011030114052644740097080134596142355513693888339617446822411223899579386970368230446122169874083536625771435875715082448066881378561402419441717198332194451019768767301362901656784728425986325844032901924143465794591266425254451865150340603608325608086920336237222613552024970856390997364461050989762406990398696984335815104410234574146159088714726746541100100715811727753520160087030406060182056118533778290464620244184888202741346245150128427879427728143120823432221685258374319777142170275442377903168542744289741634154487873641726923260834608978124661465089118497989014220503495926102106889109650082703464624742983765313331616051733574510468945995890880832114062522111978349365596322543314933578425969907341467073192344636892454257474467532437978380363650029658742708402542869924430168991809436687019076722913596687172951969287700628842973924581411626739280804197792118133287073806047951905873620070901064892481082616535092764754501431556900369164590064899258959181447988450418892638473195914934984871559353948746255930509059346236519420122326850002774212499937768968791543611675205672214384450447264980417333834426479164417300865390439217679182413952638744378099874369821522693826328831477717227788198045160488115825898561396758010211286108681022151541039753271309334762872367664515032662700361711292014590874623403483442013205058155508981994793956489796056100618293107613012869680783771670458929134053219384204284412878701470432547181362961126627657064513284097597201872282113324061106880070183618635254536823864227570498285121983206143741847964202505148078437453129673178390725561508441427077083270758258498226433755465111196880805503484789659532870866747204813950095267568610937787763339766503001543120621852988224758497248972903079910805453810540495373639562075854877742003892665962505841077389542103501995635555152563418336288996298777306009684101613096397268208127918963031596075597374014700442418666742552708061724574910747886890902638733756504281485627575285664648042870751548910098770515365575050045579968530935719071655950368660806524156695529732337787814608753257038595204568843187528718681208429963812877656126406766722624472378649058390563688598706554982853461880832383383654488214330354388128342596223007038712036483857617742022569299528862864938349527136797351267964299077823340668918213264610784220242869473619189350907351527776132899753813553314099048816226756457367780661078367668915406447795204589697419575145563754457938960286371167644340919979498055000765858552959168837206801623052337783428534385281245715355367147297715416394926195486670434940717633006571731602284632430258662934278802935412463139323068054383528544292845244099224121877950923456517688775457088288611614370197967963885457688374725126451319907211142474072308538196677370149379098924100530991545126825255556809188401926200896073189207325148731985066901078312207850177289196675651961513645592845325528582845020752271792836750951029516088601295023251401373846707663937732780954535172938168222834703640463223896022368747580517497851118013999095038783930086356404409786703347106074587745238223214080593220934484762988044685768419775262856412587694579555193520641256084417347270825948080051976423227947898258953321144432388805442201211257182930215402711565501175346575750793379618619548396999993039003715058860552304865465610263535857211173048430921779926301026917929682505031708103376569563997297148382474222952104979098386050308289837403073322532881912109437248430476433524987137686280847193441514843517028293286417846537743164301073741129904075985809465725668449206394980600484319866780020642458770627625459402572913609364224325050349625196368385077818060579688735976995521783817936436298911641368420285607825441047718603410384896776911918804958329219696998033888718332599248473356757128047837579898876418024566532360864055854432629030842414320382639425041618691870991330510862248251249803614290007118133026914412309314604470030708613012849849412063321174727597297956872626415103448154091699180544764783446043350335692277184730578014266743610000719996116759791434226032916936618338124708273143508362322578674668996598383226360594425052559531259754448574958391401592042881563573796576470356349567428379699632967309291668417043757919321384244521829195490031811887349486815727392133286180739622939957111366085130079252166660681453682112149536981696103123431035119703689091032854740532807859372538390072038818595811759438689761217578944182661669007761026525556050564955428493900232991871225246061426630617471176248051680023750178917687888390772533863580158349561657290114539258930209912302378875653541779095842896199907030999795406553294973458872936354811829614924726528497438705627613043633190834177591140017877202409589767909831287378047311987321929798736594583976193456221883053774957046435390955280517204608982668514156045499677633210744340526594376565541485500391285273056339066900879788225229334719932486132569763587516255027366626617910017738694684053192674739686734747762388928955357482502458983719289514459199273076050296517295305668937489740368917716349501992054729125105191661074442842427004559310572846438726779817836809125320071319240827869269894105150473745455756282204212621508001970586157217280251264782916635319929575275114326669585450752059385897645936797729422851175704834686263580405046434581575184694817084715896872005415888424459404222000542658416425127124575159699450120182338405373023202667915629854156592562944613009955374216734346068216690130181724268072447742252740544160473378804928043495091305924101600244993578275898804994857208448111126027251020028441635021946836049716507102629374513648831278063386392699159243123157891670929502076802424778316742883148447815231332573370273384305506146402658603478241020916227516257323041688775059733648569852551515033375892276031094412889082695164753145090099564771328095603122132750061464280983993860627611781604207695426283581363197615569330215391792493631317107513368148311742041656929278423514863267993984786892782899046341839308909134852970435655201535456865523153793047784972674643240831303352248573907301352421641774179849621634733358561359431152749569262914342909749495182729801045046573785658266159033897455988953126965474395568946018516490393256787362786661678499004447459452791671058221897799924399630653171887531570961614849352631181754092203010731925346713383101792630583661020080804798100662925633330139528221808873154192991286946761131081562146549496763524371146618959624777503730754073374103867828524791743545465302824705365335909232615223029739206388653773667955434450299655336760775006308145527796828670697479691925627289599441876768267215910161834983245417395325543351971208331405891524259855258323060369339939750195606242923467060396397450057286798315970368902568032447134494809740945834430770698241370505604305855919475285169764426586127460708100555114442354127211969947633119601593771544402436300074367777032474463939202192174423429452539802939986296480827757855556544962218636360189205654314359032241318218583204045827306971424409967805896343355551046078741787574913219239018941585001132652653018842175635132397552762037561638262211856846162358527012785525936570753171698563687770925099972567676820334778565846711118091723323816665394137415169147157065815772525894972314280221621153487949740381736042575180290218795005721542299321824459728566465210297838367685077697216181268332481237277789891942210577320008577517923038635038719646607322517116679985156549322529910156376025512135407930956317810795170723369157713281990970341179996967722433441311836319575788176781837741950182023568199138545958198414596203871849934691050097790273225697391657934990979665623759582967708216237621781304052264182763591502846116826919400191668047040866057961606014838739324124551132217081609587690825125572470072328190786127249914588861680075238118838524007025488043441494576437578192601499753394808855100225071682239251009534985839473814049275282969164520889904940056128660078718927553328718496340841716143537018006074231840552018074198180152133024210891060288922107491108877125902832269066111965183902206169844332331211120999610281090902388743508451336139578556887631849626666908547821836833867658521545202610924939047610049440058150260849080860450853039561918078150789240684866721843875806155253591506156946653076276753757044706429970184083684411065858008570285939791099175115890343791334601698658054656586232121134199677699717286997031392760760781076166810558452587470244785144899257046834723866759866665258526364690732595145030014390684918693488289529555115672326165131817882822033910792135720895576628393370126237251204242906073523065482655891613849557570542318245398932868939523020414589613183006068028412492290068270236534828081959613581376913800271886277041676501026566577768200488101788591282151592799709495434650274699598177625907692274083692153927367686227734251568426466335037661835816688923804870521948177622687095646779253771059006904351677308036934465144031152823248880851190490580934839924552258789851949079487797553669511446057799243395147943022028317083552002786288451617389735972943811355924516319148638988757460172638972636135721041042095086936550125008050300989360036144396001709777445650972748884269962209064560658547471242039650893674674418589706549465997430071560832613621384945360783447239622900581227107693134706683466520721195798275975787989678715240750861146010269999072367478408415095453113401708988841494629503510183816639980286620962078773884721216308987771575007400940917433361571476100912265452817620360188721244020862150390784189714066096874006804063153800874021934552345409358042291974986310831894680407943232905566692823359603283459123484463915333180084818022095816136782557795319568934526678198071668759947564261553575845213176374559952035025820214984685130306974678190945970942398071231607111305163290063497550238006858046334587594571890542635100893169326346713796827045411015951102411146995544589469977520167644485138015146530563859533660941769031134760756850815764125983586624075313657965414565479946935985259485446239879949707846562748534508192267944851762287755338579106310685101413056326407715792300642675160418622946294642098638040276640135266070340267322440652954958805906503858545972253405768048630659904399418402141563031543544812666372789060680106309293784426758289547710455517700094142489472222788557572349188725695399448324313365098996905492149513729636042144167281371141127129754288081044678986001420854682134336148887145139541961766345283913599219134696197301340259887310761692562637144856618040314423410021056517700309112281301619801753429023588339045660902189541714657524074262768368629297009331465728369148296032509492481416474402266806410902390026508418671622286926561531203757827861655835630731833117088219426902949637286626803659078086796827524619073619267931254965594496634844594436491836298170417440343994159421245270603733858749183229339309811474420698793821496155486825236584177441603446048489550470069008358623335692283536033809262469440669875890682633594855354048407728335826689018783899641196066867217208110789086187636307206666855873326550431281927723808961279561442079909918354145485713768791808917692211245240989793350570009059934878769039379444677532561546290135392201525951964086708293523940292263937032591538175087624585226331777847426950853699412262979864541456876535076074962441359896173546212360820226496748381185859767051367676163142174755611111561412274555196741406432567952258800003007355298173782225367025271844480350904521138693168477381471476086048097423468760676890586362093278535621466827668487020871298914798770142430156641069150846785813143392402826565219709493559200036793077274005556264169568725148520091655889186140713404229215294918899012141014239040382580376949115663225106511534543205239151910855304262195393031005032869832099813681069795684766027447684226213953183021531091530405271050349990229633643903635049333218866874906755594973054089057797252062286174102747570578204953304687412579783987411826303417310074967520950466273887006940654884441104313426824321125733011858504091649820828691483340375525286836835711863604864587897568816799374909816853939670416963563444414306150640075024515662782590249651853282461907458977126887632759719739807238790529417492077649221620720855784665182798045020526992171010015656066081924368622952932995312120237686890287319568451965930685135589154006815090322230041348290256713585935391083879932482483013168081244953822096821599558479895604769616080285534687240069584298334965307306112258976313535475124740061587069089460327700532302537281137986067575250256767924125397338206832741889299084726796822703446411351102782194701970916035020177324501833808677563272361519683430703659533499145563652540625169874325804654737498157675085852884492382734157003734202094213685095994192960263792431312808600147101393135050332903381996887829899501774002469678314454112163148161577478076474396448247577082539262223803916430559081520357358863995036970031124878073804568345624033825741081978257987276187419656807625713552258757038316283474955106593406134624612788722813537855704805122503795257278009878756052002976679767408102282595348448859060098472534506459487743047340936589207063458375355252825992013643292662035396512003276844758749254761156724802448540795293616062998700419684506157213395326146513949363185152297732715364316054421626020727431265746772019145241848662929551080264824128587870862346280302435702609529539958093976483346256256543979257644089871662129513436434569776043474242059692860698794635020651787403502140513330998515695443459903525746709444234973579378209757484367223276253252637334021715780716878382934919614378003120077331776937375630412376818313424800006974719053078063095031074657568065439431499402462660144169059692212393789386943572023372312750017629770770018205518012447336630996737673173523530756621516438698549184764194938551465219891829273211923604731151604706373467754934778543936296862966066562961874129154870072200053890404690319600795011549861142418972692337541414340119160459731167330083743997409699155674002301804933733153060235952901280342402855963804786425001816283567351621603015641734134880546790649491006289092159181873975145342682723328826076014718181611319812643277393952264233563742657590980079788421709144560147156781111914005176056319359307366766339762054643422379364728493551978619586764982187760303703538520502303163902736412439156065485405369207556215504795372642545183251619288740931354029704311822062009821929066161585721921940029950251446189445102125911498752781081856505188839217582498872097320240459827219750233911189724928635547740453783064540233585800673957009389168537874449388377288363692086517485584231752145155758226765485497619235002745683664833238554674060080866529865273149648926282371250398819933870140917494775926290633441407732570702708945963684859107384473899229867271207311924909205654046529314664620532639900253068255148433241968352779976767822563317628246537619645229028293977391570596331440711827641550391414704587193183396756213621425666154150881056378401589698293029524060148710232453918469051886660443417959213324629968623415953393799208580388722708119563002408147591513039099978235531197550241495107038579514781071992472276925440520969134715780378379697090616832858708063323976736067354939479848910906724714321266781726365172355761908416604199427396816320112373865870326120638838254552449944657260633060836888256027316069118506418072858051151748218122490276953090267836565379078095106612068328128208390691049312396269667634561610924840653479515110158999405780625606751225626439951357211583459267601360541851799554233879745153822674222155407199153810277470768100098361073316069244343016957189237472706301957224615953958770245842658782400332656936440211007035834762617461917501479875589089863004697443277201595330189026962613934400339405672013841573666516299077015355416670774517023223566554562204788182771708658798022631033637319374467980570212686876250193282416861076857141391207605452680312777247462940111610657815217045181984221188612214658780573381143654023461014278862485189630524214359720310779772176963309764519819860044058894801162591634596880860389713297800114477759007003734954930840289547853814840325101907722222828997689630587061605243573447063678296836384543406649884618740605875856340148852436105630563515802266050666771596667746222027793257272675823080940968029765899161110048185629120254910045043477520641303625101662921884474067782511846113418630868566569431981597276469682485843591095661150828059487936017553332412664949177478113603740852513510620452906201367758311341317657321413753031535718626324837328491983108391853736038398993532200732366415119503778852978123460292831302337394891656691818917180677589490115458761151520657059918941327877855862819230279026329743623286253500272904549856580982644006471322276318442536516866100136477824008493417450118792086361701548902618459544627942625713930605957499542187281657961644367393456103165515210112094515504044608070815745951577480364384834230370978975792150892351487675149277752914599385913513779335036298455444097071231630567543234643742067875178710964595189361509026813722949676979094816229305703451923727126575860299155015463395591970333589123074808119062359412065810380443373544358763311546859584841580986839537665279790934201156898731645573842412712308900473571446493939938798808953171802563505508912635938444719388217068939175109851498049696971717143752717168706805715802525055885432755286517038373941484540926518116700417631788387778275268725078639634246254337858670639490663723262882599015625225002743413120500548696940567995190011564113784736334755588450787951433452589077630463604596036004469540422481134110559761256515601568205242937884298708215333420182323300911130583026089187375377881964335229115717117044822643483229622312007382627626586474653756898462545650808634162012798863113528199872354216432038364747461063685412818562648886369482174385429153802418234574889009104598722936081837964933229157782052565253002517589472121385216552513115438851894034532009288225772028435559774852028137575133460687039878538800461253371529028750884495844343089646601167093364504916625304634168520952214064763419820714205398990905356526392846729787529716555009751755969572000092290695413838220427340681197975022361535603693472376760995121328567251670827478956284697400195142177901670256980440651951196119259372855988236111110519669197644734987738780739400922638606649694680315588340895415175523508744016303811018586375377681227186307891694221698206546948499056778932565402661768555998307275412288112011928265463806245833671958114031803082243471420817547237405370371001440108073156251204968018125884907930197793909103511778430862691301003652017961735565673425846647044981043419563253113435279621061527014155529465563017550431510154131899206193632718293061287488789606500302376254061185744720225511441182599553083163829238855982298472048014912056815821920958599332791608109639547124390584550430648634216764378616633896988945721347075655896804671808661319021365130625190779031582214142510352520605356739454902177558518562925404472613712580776271113232409764295590542135424013637367567157589578705442656242537858456637308351522594669212482612056900399311786807957209784617447036516282325824367522516386181895670605165726718038699964845914747534956669258224979707783227192490956541362734251742885473910294922627411867192228420946343795547314454696566841635155743567841409806584744260011978952733741394767034647084483330365442896733204504537525990275948436013190705402680638936157919934658108690320079122460520380674469596350030641909014060854456964132112599560937233207953726595776754141326574455658831233693548797108748590937756042528403649625725594210511123366086511220778110343157470547305164652126111926343651306004117169300493355537783174836582803118648297033126125299415741106978056071255925071761204254259891317747351199828710057258822448439378904504023994478643270755365863448085503945065334325245407642870358363095435566299696378121138060712534113160499984039573832003463015937091819198336963359918311815170772242707287488576936775782878126604413897831058895197042951641689232870575670295989681425857535165295749436646387490057098896794913494532839395981298222359504139655304711428455547112798106045042577466427137623049781861893119123831272449676857489621184395493472327731766901930465206177622834145655826718385924044766956057899917887621366632005496116145887332166203614601855301132456049837769431663975317159697821426500431929567353060004760399749948546948768285615045778021544396281745161971074617986361312584876695085772518367158830715209229047428602379020281594604755085465725533138352293108450505004789403089188581042533678061030786532442081202655411812345292903513637053404820228081726748338029884744071234912694166611913318988442166059387595910294120426798239492121001217804293573287972624072606304564336833072206928162561925837762116931906626199860221600154889940727113026203028536177861281597515628896159767276814017100367285797203143309618666900834242616137113005042968191766734817872725534379713458166573260603550163118883333312407498744513602387793014153373225224731455775287660348876600842008964381996742603870742454663833451407726100893292144122651191309110866994496044774345154353994481216653855638532790188064158424922285035277090196052311138763663467514329327131114995417296673638997350469465252250467729025779822194906375371322656443338034558440604064219528582514635472442385320613830257331487069276580430005842509969005566169012568547835655636361407368159396152088332175528008692967085278490691052374850867848616729621086431956421169295253802380427639862295536590358252768055273674271500196340276044326354906658743612449404846326737647110338309287622417077354009854724010653523856976164434488993843674777696750238037791470686191011413535266695350050957198525554879341941656278510143507810774734355144978794512163701471513756159855429467951816270145572803478109836546968897429572076407901705185034017247027875320806600349063670734266626351049566017554460253813991698399236386330873752066968096205775165487030039582635074446405836779525214993638737568843459052181532006994196514565733764121437034332780154631878902473154989731761383210899821634351478326105132775977976604009661347807166972464467928617798003533685140711555872101514175486506513246672665770068977022397490940956364185977511712968909432512225434670016481354324478853940445354251374651573835248078550527889444824567917839359047897756476405088498428857517335768167647991887314737886420948862808861122713152728070011764169012851412285842356630842653285117663149756811122466164928884816855448695721943784829686970559748205760216742956943947030221465360360563374376862751765425428116944390244645805032655866967238552524230094261479155169399200076293856965060149991732183220384801908650576608796129520560766721819081057511838442599115350076738263017069791528485070479135464211913671442606737232046386016837963340813348028769780532404186143761038505001055449512816951888490763611153127275382465527927986411039757264972199679259643921858596668854765567846500892894274664403443610818077375709078195085964489479472641600097337000921286931341980148278800198124448514587993542747549734949944045649434050150533394806635234374072480356362287424217895467973080283452500098966816000490372409287627269826212703183648212715610528142868234177779857177865385840832678231868928744354177017127539634338476953497811969030966821216545385779320545278353946132214085515445703715097462772871740468707654561121320462112602361985126632542343330442118683334692093399939270772853914669964039017812027007583820165379476857639725782999167937568723732408552453828858089085657048094725605357459839888113144411066142969840644202516845172265149275211136886189366177134102301902834142240707237021765677874112507404361234419672764278345523547295887726179710815159068546655306138230189071271612638491324574102353845474194029104906911439510796996192900432598718431850255994960847001768204838124835091808413151385452203598801258482032429546197424616006503654047913682242471557063259993417795152226536418814930168463924943364683682226140269583933323488323645758067388670131088148708841240710516973905199144216465467394724598260657586455160741912455920026588016429803351229147286342702686935442885136866064006679546151983909698286231670830070729104081654625672764094556517466513044188611667140881404024768223182761423933849861038584386312972445106800714506745085226143100980107245433379689655649885190456223901770012059573859480527840019582302595540862240874736305911764326971278687575687179628625557308615187999710976575614483349268511102432551320333540095687427303112322577456285868733431755681342210920500019823909891166567625032929528083909967067523009861915239705695546277574813191447342625007124640417528315751861126667804972644505624107698046674618728475350167578639620458682143537149457829983513650071842806162782950414493412075499681853038243429779455552794111864065189877605275754942358765615304163383105363978670331635471834473147632581976715855398403877704168379620177793019272838468782638233766320298776744567028926622080411200055818814319290382570568881835884830814663304532173664168259956734821047615450601909306950117815517363296439556143721323845444154410339928849428912895025556417879565682683839823142789179367697302472366606176241898520488070969164910702126747364911845933452781616339367628910129900963014363833349535332277419702333775552165528568362976239249505577400950697891772521954012306426340723278378469421958258407904587546313945324421086330815307287077831380795756017771701660502932464949973074684270584863198354815450749640454542558365129429693579410062955600627171842102223587262265549808296384612539952229769732175981340143781876266873428654975462099434216895864114048867904553147591899911820683530537547228190298254467155207431254486152908993907877407259398447718044693789658020215573396916598201274715843174915718115878915406459045148616274986394584505971512099911340580451168661009529978458597575731230291365033731578107518641199709008125856501817305551857004622395251754504501184900798607498178072976722853814612655844604069393003635536820955407896089375673542994125288281379190308493519254011259225919914917410149940577701308114469372896140186937487777970020939086026624937368762205601300720191673259469269667098399853357508790763286231074678626306301497012724886733157476163970300510927205332755392775683594770963044074800601599175212306253694848742120774191122028364288356885842925183482377706883755541307362325977915946352022905989784574786932194163028814841090205601291793683377158394105542673965918818125937035753771108703950583225129683878102615160189852973237465207925467286100094557253779197517881322297518594695109981072143625229735041488013499782870621378866871469508509505539917273207849828472723220275661104046491867598590441666058909943015354836959500058058423729412409642121645767445147863123463495754919076100370176325016242370755282318560691948916374963703272752799500978667403631240233921387253049143306573109400112704161434421565482612065390935454428350555666530333908674929030352199329605459417807385621473009459711897553645279500944637050670942461402928768853560919416102252554840791515385868322295036472218467918686894939677945852791324911204203423483359033294913368014147670099388749706069404533520015702196929473041460354008275775906530283491023981657396164894741054234641679325749547925608438262826904366977228184021890928802205989585112735676588768451032128040695701998127349951403026874711489253084973357593376318606308158083382731142613980480491700481772388016741762490550032021993486168400648474754042983207396158566757900095693306755497806945071954611002168860289116624809715860337875984997996896840827578338547151070947523194193065775462416796617041581739299090195481597800639663412109440809579707929650904958756050704081986801207995739219755743867555672381274537474761620169640273495153129574843844712727802234567843202277611290931788002982521639301756217466975169798158041598366239956828330880295891499769249096820179197319147341177777659245772103097282622141572031195500865194345131078298646295418626050632261922211659981675693429320545111826070686284836373952456372087492111123535350255880964603689013394390760232000814117284871578246341379558176916308010575267877272685246251901845869820781576700788615861617830124112371787409873769285098193970618345560175488172419748951936453751896077817237819898087025056210600495225588560634971947090300203628184343306190355216662190122506215316826452901430912991789638098496837137017047035556743494313845098384067101648549372205642653628122517853056960035178688049231336245334406867629867697149814211732502894641162445819450552932321869699545928890061782762922541262810759378217802474504235481856189868430045095658305165127833832749059160975266207963148000364618036892665637575385232409945526614597745900689044494074312767231811946006241952879137358811000584547658557924421660689031302483515710433158812529511544936302309946516094033530124203124022468516930790973265165352803117541968291015060740394341244815815738387263186577915943086094731085708174398270786968725678211614018657854984704907294700194807392990995944455727574098861746661801049782693429994653573117920313242420411416907816100892293433405181050198226901786171202955638505874251416440894581737144190965782360296099878220664479117195683739436215568707433351878783455434654179810697498208397452790123206798681233680621467971108433205809195417532754505587515466775850509674022514560273265968102645529330023431563037823684115319311611819236498078563543120086564839659044115479170678451379776530330602369492562196047330914686177164531417178458209334085070064714612128285126787410895679928878454195306798210767857131595596117052304541201769527135858559399190394253447104096476988374072991031574966736401332533212197523876694930218747207992928427691091480167526954092784396855181091696311635966152034716893713776008646813069433769917443652271558879169545017974657116537786888675551925688587422872368417125032236404665659897180948562127896698060438398510834706163729959626697127658540660708959443756635807801005861887833913749395584415720510056014936162600684711863144359003572834438319110367194139059625265319276133669894758498776658735012438364190800144536989475065468938195618040215998986081490058112940019586949518539842720749655071502828563577911793426200878903241257629348329875315954487476283615874794867533349647205214609057356178902430280737325718490428740246310748420031272642122324510378040804217052032405164094273254260146308550497684791436660951607172979293374053121377323578102786073825196171027473711595751937182487671559849886584285833480402264898302248003446943525078564263215026944024585914449238240454118811152912381842234030870431867537430281547042314894687876287265074520742596680775507925486907910040447395458179165518607233231630194344270526394823826482095111452641365288866579496856785636492159603582805062148278908274392310070760117814673190247280418608582548560125400416959164515526725192925226782837658222997209492539259960830709157064434234500745646529380803109914862444942697530502808243107968732772235777112879034078098519230659296172301836263393700509646787212089393950278754064625787849919801855851312013645613650817588554182217094552982247127298442277671148056412800750352675567630435836299888165805494076319515364812794100108112691374464747588771798872717041603209289359242689761722732800212727322169491133882054126783802860631411511831382330322127530695897155207014181540902492617790950125750231716152147616689363326936148627096356892468755406347554961015842389582683007588773152563033922740975887768355149692592281874739010001788868380698376441980388539621850495571181576322905186586014942128222111725535153238037681868069330321523635216199360691345154565860036232756769475129991258885355605302661798180371944990234752416683831878055656849951388563586126769819978803079387681583355561172006251108511878139377426266336082044678705789368839022800713831724100578179507090334879483671794586594838875668048511292505952886071935705915944552707245767259010264694021409146807448561440556027522028423377457018477687741499561052503415284744270624754043196827299171143927009533849394231062090247234747279155557479694960722634342836190274426791895595647601717103576459717856649233531889743068068562534701234594204098989340380479925379761518344137206194215474994517809274851616922413370137224247340329348851418733040708653314278422359289887559364421995936962757137960576258394111193881668672785822888628923060751311752207476821226927045190138269493583928880644485945346581644810753012755310950308607716748254318989305158263044939096844902346388202527747888612343740197255845747711008089395320945935009315552401598142344792861403614332038065455989389859571730171351171615147167063318328190852041459314259205133597145084978355070442809612916918438285739177658753366066687354234221395055558276363647705583554676536295643085434994839294792809975516016157100204932463732393620532141630670019615881460289058249247791137617612719192209976482223688083228081213385207171081740322491461680857214472301406218365694746040421049305885676755727493241989456196298087122359019829241962926628707372050647784296215742439393631134631891659106915998440236913871846870903187153803577160605938364251254735528260787928180954728834680316705002149417372437542739774031411391140701289740193400715520182859714476528011773657546078460338806057190927949157837823738550661430124892178755652429183942653019151707126018244068032701138281485967445612063043713206338507215482327982548113448306346140027624276852894889072530820221561453923807452655761142557854364545968319809707192470875888463950490267213070665067092722705395693806627697336066974076959193140978686645431197534516981093751781966828468506118780825662660396078613024575519598947285357997952859019485115178998607410920332874435937921440167451561909026545100015402783536783028312086921539761432565318213318910041719538093920888903459971740273913177704516724189116762344409378412500205229404213055608655181020011237377168630727833921937668477453737606308189449459826429721606362838105853325925256295350654420064075575692132312430512443262787556574908513657535737669823969108467303251656398121584652824526565287701209434649679667300867679928136180094550404077168062473900572256495278111086745411439155562276372442791095147152879590620427254140396724935961687300880031477831913891461306487506546340046799127961206227132754724269463079268262179709165931430973572096733172408926207217731850969627919113000896694559310457822788989323346522646593509806103143969143764961301084117334272201266543551128552479905971788264679967315647039914522631249116915314939303099673519776740724393844475995447632019954702681810116966290590490137427885725205656476335813895076718540177465134128625696167617503220924205101496806698550551084574430236388175151862906973067559612082874214350498514645357077838197818988398163364008925290879000669938893260270223921014216791758854628515659435101970774395574562444415311077522192478401765881263215647311593724962114439822524386209062083602948872441934339037303389039391858186871558439276892410492613076652675369859070858409211433003501518136926261636154545048520801342532564903923753774971523596241449376531505147523463166172618568534252311810032108681348051056138715930856796614292408356782946109466277413188381587086950313125168556038428411915262772905300317049013909256974207521409068946930876149305423657796986651728253804219459093007913264197744702708415601938708077371800663919001154631772564432678434058215664192946823617262702134574178529313888650850096990020888497954397430533436241060988420629918920277722088403379351760741333819521355788656826859501623347403621889701852901846568753163652504816833533386824944842199756317795339967076116523233401879491262805973552843305877679309488762454926158392150077167449168184399984033434868316506684873374270795596692911346260089356359256300252991722902663753875686586221394314775784712723975181922013615127807046323535370464203021789863930120743205454496186831965229487297343998182225720540647738878799293964026182133772918533573592643910441877527487918685600312014546409479402641797801058463466227634918449906537990665348583194270288610770646668987526112659749848111586940976929879503179494277955549640495290774008456538957332048021321869982830354060259618272970503422487076921381018181132425316194111504752874734067306034130799244101142054461081673415324849407492359488067605186674909906407292999253350797802870293087728530185118082279158406816787957265171646265511818186062179278907151522499959290731732669257645145978808527086996426984459817770013413528759389523504983216661519112966276434447246333453316612194846804850320116627366635236488132654950044464780580755558210312294427923385327279286988220119357584131279261167020569415060746084694717582480068762328382193207261835725905530895192838117060867919785411946599562146525324443462867643370733931133963863320328487367570678408237751224282476750396991885274067478151879365529266013747657765464760246309347090259593777772314890724352254909430268147253148772822010556166842774998423767407480125460346687499801963077462790090920988885734316027340952326856471219860811276992799567241666167460840494855087631060339428266879727718934631977669103690541419325995250752622892342094429128756321849230322315690960966492690035253457666807113246303842128849556885537488385260549975356942152323807381232436117101874097571665889281587773928729102089005185485126420816984900437837942369380236077074931830489489759409468138643861772443676573814027864181063473911008167155401317469049615333491352019168446551177342101007118090611232380661193894416091763306926024140691389350075775326240940387271932957086080764603103012690497951101025555787685407686056154408559592432221391733191335400252989047667392162786010065788177878672761870903534472871319571392883253101146012083737022582994851579712557027028911826165364202425091475721379152921490327577529014068856829950878467992768706588165420480649067164734151720213973782070855175105173391799899200699556752559142254514811724726847375395832240323628577765108023192194243591895701902530464695949020493078970611627166764796045810164159343092540007069629923511543059016568724972171082016735421863602071006575956130881105606934129060467344262738354763362194382315294256243744827375829841940537476212183337537485534737508498156070018032299606819700251907838205582123848912388390675412521472489916009092131152554036245015500821423675029986552059658189262778542752051060473400025384468942464058438946761655829887260255981763219503097069043081372966574338362743866184774762140929944837286753614894225032790765718552458681627279777061505489284207488454317745178809571519776956388772134442977893405686464057439827443949992802400083837613585248563948194799098139794978035327179513353390294301073917375071417975780476912393684397890039203232963450064243901866572682918248328049244490773486457160739952000979312290607802293328356552142021183822954708137530752627888669967535567258100753477479761825511975564868827011368311977829402778574886850552523655667463591687098548850006943089793432924262362828867390781190149927790231404839619329969266829537131132411587733145623216401164026207375132123031805329461795272340058570118610212667195154074671292575785688980315558142224663816806318266847065770948820973028575231112746941855326656931817364165372868841259574445886270071123979202240477652101651284801192878233109721203047550300431748570130107532507496646257562800176225311540995970438362594674355886913757530052488497859035685897074985193672638421007521593991599213948656031508501978848462694422826471643110192031646526298655031705721437097219210692580243294488191863047943405519847483047663779481931764237489580422864277621118317154315171279452488881252221874657937559182596472574015192148190813306467056304056634027447303489571406451906032357523063198979552489208623756329443717696553422423534362041459117949146266461791859617423107870505131873489342719095015659683584653855447085499595905691930636118991984706105323941276639177438104211006683633881996616029799811263076456574530174373253920364694758160493155692518053514170210878424703427291049595135021076821700705866836476095019175927495133550462265690365723292001587348039167249376115268413246599665812205742228525926951457220957338368538285426252169133625607553826324153630729331166069412364055755958626640000965442864170552767458905283435435423018622813051306176747780965711822027290308510044776852167291793395320958912423831676757324849886925311061826494368312141688361252747189300044044609018956727771017243794853396488495372757545922868387445073329093006365867772829743696316945243216004139751682738962076285940060759147664767756026779854293417416059333819695244525723454126555397320866762811961274472223165750196283338242558458823370228368045631750046759283535372921567360842132552965980085593770931303204552541294959519634317137323950199725858922623112659879338995733312423308894147516465848753253991459954165767233589707344982690590577732689109584207927754796478079093996867229998217498011311170435699015905452752873122028343428589856894706627100580323305951342127655612972842542300281393269794596178025929655045298566065466186352980277526599175087643271085188927805474518309531752519219198949260872216132452797841138286043214674397083551934077241317102932513590435056719129880584693984464511712678707274729880259897596853441065230472132834486471923144317053728133242528697361687679081562635299958896019688442398824087704439302771050610728218137216135935201618624785216779531694912708584019376615294658116438690420492337610624271086746475629783348307431554965320425639921819008167965602711422476638479310008245121753527995058317746612873052654296318806541601015042061453623541115556434323961343977074649460607286609988751757587560071533570470972619065663271201949138936587474722850862917322975149259595682609898797066442766540473602137463165208075073107783499458418857001560614779312744435005060044664860168804194718169668990096099425460613496285515233212602129437840660973185024049366699690097426388612248914929119437299051786062957426610139929152238727441369470514901600095914768143221112484288061865759727475839777143704386437552460185052141087096698924627640344794509062076428100668613430239040664055174639747307219657511362882148201190241435659807645076606807960275012827142389338856629423758102051360400613244559076115928118449805831325017592757430965331908200984293765028756783015564269235396865383413954106178609080770294507552719047319997954171414328182977899758347250368903408421432518593347449591742913610716052844942911128850524145934510785204931244937968246345123512565316952287282299614689407587424946177214210076184000440495542306068423879086275096905408449950797128033764687565052576928721227103459973979858240021203001127396455878448213079817477999565709216898025926929025822041416591225866519461334092730394816250577435491141515008801158172710147882779842702379251662644900219218144206745114905311261748992330095896212132107434590701442819320419394356916468490077866158799152263339811893045125952495911820149062298554543235104897909689879246617878785450980848275336506124893832753074705111657316755514308513877427013914133498756827534584672662733003988468316777415645211625802530603055431401809961300605881426480845789934901432689098569639414669838690530667850630795694287479727812934934894759533938038416965385822271292409342450854795675523611895347884473615715800019431019865208207700882964401588520544577278430796124963534291708998867142288130207214278725390986510242371131757392177320345041401146992592709590791388507633386768035448032092868578542598361478155951039398012742407131724009522498544078945261506684294993719051255296101337067767632369198773066323395007678726518557214509881030217531881203620458072784732898012154373001644748551544903357875706292945948231390912630690650686119872807891865293779447643749740303455078992794418416978851813261932917433525742824751816499607308532414047794671218322712069254015718827435687946615290976622848346917692851781357801895438426524563322955535204839811199933118209277572492813759708519717252059705996909856135811226345546078215770206088162040260367456460016016030517818483504630354891785692449987842186227516120094233696513677664163277997477780913714674477247684389755760831371386024917556065824142254707094133233810078122272841611682707420170163444327762676716907247107019915214858366679885816235246899348998022030993281549222158664527954963960817687918229770368702017564620291831623125450030601937498385238119047455661951092348013777476886163543522942967796612814173306939047460982190563648543788596691474595181389432853471689428840823613403217469879588068731500538361321353858234852785428418290955077038665360660027308883159175379771206950748772231965281222658254381026876272790881277390229094251879661896989798723219004031638556460593258159313924406614682838578617201282993559510147880611175195782645529341215529549847878447824204534806533947181541595400084574366041275933026476563139885386433339744757124964821445689489528218876597832115664404464328877288396011867123809548061078950296937951373906718377517217631599527802879149648466862914969658942008632624774743213233133879872698577224284305922093895670594549938388902277370735488970929424719146051074775411938633422547766893523136601318776078927087241006603299467688966541934211784526711530386378749793184514997527207327384570669995871382316675347694986731861409377619320867633660649417620063486817194019902358245774944007878039851079567162620496391577208720597449927249347679085755801079155364501878113499499790135016656301603496262829550137531447291055292822281321555343295777240903957615018883433546946180976165226082617559307500011194376123868880152236338119826564942087834989231545797725419405494055448580035906412225184097698694356509200410872559412150702161122915001199697791446497300719960434052135678299842493829665425375963044834153540809175451862618382409439896142667149376532605237130442087112667332726832811948227208486699868940952397257806285275825729770912970075645158217791874760929240441816619593096891974445814575744598593391635981291068439955084836781080097479303261208663146406047393307553102354833263258391760123180454650394942909179031990455960048213347479066592755397665448255725342224187684265188718376299211939807412744470936741776320626841902998212587927232003486631209217880005055037342626356180060027474637037946797587870148878224698580682536822175382756431938370066468781342298716404138672370094855566534175112787939746568438445204209089118394026139115162763903165807261578211068314580158636272025834522040361045315804498059085628046820632973528969640234665165261460008346660765206276332811554157818391744030067235115044342865398661507558168163268737820490552703250989849687541299366560479199120844699656984110540723364013919231221948820449222978931316430812282197580141238060939827399985614392471066750891444373354626265901361934923030283759157839924714865236101736582839608518785572764081981243769599299020928722300680325387675341595311984817988573167230816409573452542128663357323734659642336703850574373083898803637080624618918944232550968540794762644643593054068689434776818732430900666383880925591006576426980504258685096066884348835364796555337201820630197525666874836122730302448767721161524902710266706911618580701817596023905545612231351964330381337838615172206707299218626335985550616230535624925561008925340356746779912846728687728536886550208057033731475309631648810462106095018831506098093218914409341454822091510018798782510734441518476482813172438886694472306097175398157016175321311082206410302083088838165781588889241708524653069913520762534937599744584551751727772268677368718597237214304450924159420424984495247662093165018351955211510535856293949074495880827026025111499037646055406479250559562047560954424903829122110403264972994436130775198545026399090705307930564243448930237623603895874404214022305517777301610301610671067183262683272531994797766469575379001854255311157791399265385955869947019835475719085783085440667641796869729262218386587490961248113655883652831743916221968698362592406641337253498390120709322683395198166508694294294369895134354425199418521666983082734841433825926853690686991723852375089039775573104972495070732741694729722111601744048014529589824686617400784037109336625292484773882303340259062994031275734588005071884628688187530332105963165187571341429353162016468340077993737980808501336771551715479334643239875310550339026895079568838161113897175165812143168707680946152877936525470851999134114522073884442336512564421975061051489247475044656818737797007305177856913865209476003817492738596542923984900151320515582687517512112049116314285447126334858837730460101096820342354537360878225961971302259260725445236286639430378594661609856572670794438085376029873116780605533400976009842274328448789445763158357148588754724286457262648509409328212829009986534620518814524375911550676322400565684067623637646231791794760444686764909996318639603427492434999071039022667971199934438598619852748361957665929934563577106614172201018226152856061260351240308428036554262982969478368113830831955388743815712446987715286759152307140183375718645476675547330020217546934224677131751922371992155895626166168277971409872640299768022130270048239992875634808490753584829603245680839088694429380732662717921494774092234376896809841415471373711811866284145669876173859331921943030567548976017207982396416251976469878980940967331228589545152677986075866657752112020241553851251994424504883540098734797387625859445451949094391991878871532653727511152290998465485339184685279967164036894942516840401404398350471574460079991873869818290391616758134909719332783247558484475404206851032334192784444770037662412307523634202223569798058734933156979365465024222867146193525390959454450298923710923877722990045500455862755545334527736040397245115538106329170477727374122028834509897938958851323566487151014879101176161233807779931399699613037388231254283928840253398632465011320098817141030865311932541788791983238314007512064864377400791487248760270879174602460611581597160705719567840906250275816523842564033948494569741169306395577125538002804992655575864539253169903121181836384924282513503990251453113524136708909550142409375582058223972677470079334260796158574818633072368410626517020967457855230670315864031951025821410506807444470592881058653047873826177145615129909609319478091203389163526635098551929021235880299383737004361800914312967129289511338810385698881963358706606780024944130668236920872667295171295168008031859305195015433976317160634711353832823216218499205026177890263219653127392644569086519206614475774909499041621892189195022540536290959659381366374688376153945019249692700515408883712548156853527341116242154686965981107510820006315624948232527604739749008830430044232744374032774664121457751304750158332126813948544020019594090787977582404645906004077086817006968959614464688317637387787653016410243349754824830428297244621928902158568478732204144685319405528726963818812610324466751651775238595690690748615484249649889564239213674690917871022022860606911176554237531799596528031228248258337899771508484251058806429668696886468225846754248974255166253056657200330136363215168153944144594630823997314947062747126105065705627503675799748054501508914864837775668052850866673173113697812193704099744548109160908926314289803831238584796055461953842480308668002787514737147664092513955750187963473284207739907162437967116400897702029601647070132678572402446271804424003163446277745268506263140662301536413861259414436924224677376223946507266587388760846234628921277523320036566299078890282161026098001081834850674294228041305562472229574234947008784275472650654559410319536095098121288941117898267300015522418453108827152857355112561025154458658782340246409069216886945020272680416748121311728486005478224523539402226586790242686216834190021687067134592371421301628103228579379180637077429131175638788646887013385513431180027874619168224974294312557132975140359520000888836083329973699243384603992337429432870458453036144660577787000180154218853145684794618923084803309868931380746290251033524941022865685679312819727491629847646548948492399522011192624116866375462064993141590017545801963953793032894203420913119468344768061965504675473851823300222751184221795385414329872713133239098857626071418404158638665854199888449212576673823393909242701399266717740986587165291544273611623564821328779249670150079020109710153137795273931810050299821065808155900217734582513254687926398693457254884422276268368551322458991582596194748466693878641092064171947934478202492621793390908770385594016863860147964544986159334833189633452338362505784394713516357069798407073377421338674100108628007959169655182866162493565307162551741215237085850320389840543147904411254496485422388099741548479409777119459803119318976518094473056208174343888627976991643916541614675535629711090241406154541807047560984664230401348231072061317847187498899838077720935335649188012916050796905174975282271085516280135750969902453694404328957067171246672723490601690299928067210273929465220587966254117773102296638603000138244582929745668418957691159024324095639842895309464789811874235332857930635153036015198786979659110886121472474645924685351464273911449328321090342198988176626876637589600440655638085896546819123048486486733884627614310305290349102007955057646426753823612465149895936132305230163422722721343647618702570572537799523858880457319999089993280341939967679839794551011992217042702801971049616747254180898984880522631568474871732664046763362450121858177440143630910321139745826034295420442939287576763989379310287123299532364784513261179606474890013842352153237370546729489419187670530691526094873893590875975834969212988266261310582253348092717113413994388421945400836501331702430929714678560785288966901613071857183658746197732626154153190250837847761683477735100598817482584894672207646669602566664868068043177533912359368581668309136048379093561049297631467423570495244912763664679153605727825854778509196788759044795910832424155772201531221398100934216353961339085378738787624768698037525203165518632011890331193040978207832432841957163793872593763165144830634377955931901588511230738228885479471960571057156049451514339167686183859444889098339176306391173360808803543027482265426044766250895646539192848876631015424752243039335627755220905305695973218991021993275547948455676634448594045004184924023834890645515184850320152635489369402583144897734135066206139638805494294960428910452859173146776028316406083124118847619009108535838038068740620091639531083431784969102529951542376871995237551984669199070022662518443742570938346873936021018323822026076203419902541339559927673812945400476060316151742446998938907970940259468186522399339090913463946366869032320517175380142486270686070961740167719887381075673174325144000019047619701198965870297429981211413712802261190396699813154337847952213359257457112145571272614500067891664007254325936618533902019533552509419448364373099009839463756380733085390391545549833371201601821792801877933651717498697454928470088360098418074297096703215004872946658031271072955853181360297180988182096993850091851900329372035476569634847989073938480636706469632555558087413003470129538206015553215418316878674519176416195516563888900363778421137219362565982026191261823466608220440485739466345137164879905722574463886339836451606062295405060323450005450170330871679357709644061340760857943139437971311268312206259466250056372602749731646393593079567319551406458302166116065732450692959308079320738517144136815033007652081609003785378939734160911020058163320780639954408544034690896352511486048436188300896569727245061680523407698838901652948260215272415509462922306556497443994921458340749303037822451681190846570644077647216656161158369668495959827461582199627262791791230243913613614964039827601336410899316469866752569987239256900731791996810830772730036159715182563033816475607799414571590359522677235957596330783775672828734539022189860773673865951791642361653941747510761865425202179689928676629438199005451084745849440135337765242594782905218966404239276858087077935839327240895322532101049872957981796783751533284047367827458226316195144183047912431027122699833210332843459325347945411130830411269622836870808714583067861092123359597985345301706042099992810323988602483480049612328629678491223786241877274637047816828425444879250266274649044469413076012063467310612922610398791477340176454960147088720234724869240356979891997705027348324251740386497810954073339015697206110159425859604254793862513108105355000277483563883731739830113378048389497620953195571053557752021680542974837691479488995498237946979739234420394550583694744337144786252835623929984305350220801057120436309342151286921456034312857264812259967186971335876461866131571557251614376767610050327674745413308564998817813448703471055998149257051474028450603425923210482290171788362860209622662978891041263203957880659355386943078756988580675855768949797518755102737037965171033830417144443216731318089010516854792180943926818177216707176723817682414675217044437883693147104053621621178176743863416226539112681952171361316756323365531275649989782066608747654979528044774975530969688394516588529938640722126090125333504665779446022003475068593584100428539782642581245623908163040356562859105524278332294454143080716979455449558071886092170435537026142177087849311038556287257116727220841653085291310667228239444046399183431904218527434477594611675937643616092496008430167446687896255442918795020408710332235034272307207580274141944066857570384591082543943481541079396506707940570441193323119154316792697307654618007300249912742610434097386014913898181659952149010463827634889023227701055718699276965661001908257443552373753812364741897339409851436446444286939487426206679067185055396354254535490790980470397225038281494122229979144427379439970622357923028256108691673952411871761988823992684261604013657434110211205299912717123579490676714470799494079442148492040032659899238475522429113526652456765852555949624579403505374096311182393205426542125369720981956657889346858808654484164578013581916189396075404482283081914127116737828162897996408220389148816523557110012346175885762729885608814913969208948947173977298203959857340891754880649345143295687068977195077530568686797483419562818174157250147915031202929264755529145250458060003692594179553819175067047528663738872843709825781128858143978454113878891571533768119098182315317599888155103004125145244124463643663780955400466319694338597169658179472524708691490403691163435841153006462616589665339534119455448525373852643140189531415500511750893303286383197002194136750863327699952877496324728743392497269136946641677861641245017285623538668171437452052930082397652811300094999686648618930564714273621990067003421292816700842167363567816198544280122804310887721487760608319315310485338242771815319982237388855878744744734854476706389526586396955300277988476850173477319902157315021019070115036329488364053272995261786703531702754323013083223836608370193191374389184703074378781497635943200321230616303930768750648435024497929193177243300708224120812161819312402664173621207832931453621694461916307372426215707279177495725350238284554344871669412267678299448380465458697967375978580754413822597677194716425725547714704903185088272391851838689170078688358608668970983611587350876554513933606021129550932278117807759288904859363426956411520016685861892986901315555443102356433978480094917930001317062495406695289259094035436922106965793680785154181679426669869060270803901841650488902417565625428695012046164993302724146198784233775977857678600842178804687875456887913704232886366284729227788831267684803689352755173008754063156586177900514157183197715582518642869421934393717182721776751382086570942106799755603197522279433675547302482898128475970148462693429755403834591975525414455394119557471752590423912679071386050024417684189287119220917250962250957752166649118323257554518433320874896714893271520544263380315720468487082022664447942046879763366193027925362429178090397215622928846490915911980559678276266031131407347607278898604553550510697091009243867348478047322566567520616354152214188446954263425563878521088513876774321555149567325314017713894042889409461838523095968328145382158511996167980437358269573235746531475638443478180412154113796010886369899075372756882665296651087475365752840903446562084093490811592997244798050057934450413034952902579434017196096143074457174031039071081098815004593814571979934120749387258109979882286221164785694718560155788526377464177528255134652489137137794433728922151882792553462460504073423031673125786855266028029374657630052786579435208463658313705339298372112071965002848940489272087858408375464442172886433583138207321978022128803190768030583668309166240827894087468387675803854626147293496209870659459745789581253411298537097163380845183793114418836365920385405094023299296212580998989050188722990002085457244167148021988969018038952038824773584314531951650054864233334715955034125473189873989558062486575002976063890124341440434361891289551862436157314119925387376011135852631461819672279361197264378761190988245537602009457843126711241406766791753066088430856766835234516464367054597947098797971567786555069564987901339400250644870191977934577548423604646946521996323675512793360324427963731264415892607037670988991327730971817522986781245619902672705542257440230615172886972470532404957485108528963936932109239913192996800271160382681596454473535743083016377727818620881395145406749131813254783159330940275273428471549491725491625030241946668489881290878765222113092147535134321919154107667481265381012315320623244610268081267099699594020274067736122187942448736599361967286894733567775489293313694372892349496461679533218822450742254329507447219586493783767677919022884090138730844591049185880144447262904188916793353590001198233439739916425226827281375503932269653682320057173712350955765208428972627800573754868718786678262858768457172124550270505903462039615874604421394720678481783875393261613364967198172883089948279326644209011861064942769064216058700966715038372885357185254521622782444217049189421684967310744069812547067515999025714644978322066038834954509036811607668160539179489449887315655460498499251087747159696337865146069412381475663342481645589650773118393734337493190522214093135119034953941731822831625654617817888168019466599311907380343331441650143769116347297276043742966925495146312773452885441392559802056507380766572040505001705739746930329156499941803404291873499153021150634158843124015611321352431345915692705516581230593586337177353834646967326294504929126672503937279655308028088883931752079395866492946045217387783365765190925069095646397405898086259584323807216618900305464120285859303599235061281771895698021939069825174351679479661307287576813402164287034852327403049189164602632626020782038851877841901698339457075285732454947470678418442126174808336705380183107831797762591400500644596995063964141902407073438997673684039922491429392311472461997397935737096993104084408319214663503528369404069370818437859355944073358125030883941101087583741929897752168882055993351207401087208242827778380884029824310699489748333413770032351703621456101918836767242014079169982202584577567454586376950385706406112391299220607533018377309126773943064105667218387752398529339530268590763529503510949563839332524661492346042391559186572094101353577854914708225060461771811543008949752678877375547313899813077648455706508545735317276724912915316514352101663821325951608843746471946300588105561361501925820192071584869912360469961364163321484502118739918639775040609177943710158919100942453177619587328966899745876543665975372114020411816784998704709105743207065233350511986980809721459099989175488305005791951443786197213651475864587446600601054264953749014610796530879614133020896505924066657889117635724225224179823793353235406023468591796051456644022949429192261175762274088885327502340612986131925098426728572147108912554731150008129488871509192512530198517010821741691683080727638462322239504288249173456741137245887439925738949965462906168453458737839140962313169188506959690781054032612139892548683194343019811572155895663324925295817790481463275987506445459288868416912573707885706508042745021588062981067750731506294215966987391649427399045022078035663362629655224043554056841790324372060571671248860739807620982100166642389549197365949031696418293937543397931794512552746307594977905607489479159183130349137224738396311406210111141858536043735460693831755132331352618693573201286957106365286455473275712593325582330153336226595808093630504772343946465324987801614732950561576469921794404389714189617066451705079679203566356723963805518183962324394211629216939335071918329224800067005364853457259738946220883562058203130540133720717497744400567166480804512258196828224279931614916320572315928695796747703189050023152277162511407781445423415500373601647377701928526877402483759690582023217121345728228715323939636086994912823852068409844138720056107209889172113969852707981255823414463495081109403294501005029610027184530933085139066934395537710024440473182438668521610071648814981181140086834490323489738069676823141042630445917493133022400880203964927742714742475531388192343451212510020577719049448076975182663302722401123339238077387479552116866189464937251739171507507387908462233345012255980605462195826896950488514120821317115195678629611860755591267825555303064658970673826046567263767358859686392406330894844350663496123372166838445540165207034980701079610067070655354637649374927615752376807824911388471331752077357103904327489742388408321656962034476284761668288984904343554898925403282167510600056399816757061558678104923145502685243371138908405490382014801612231641202474776606266044498535024835259627253309188940334110787378339983806389582241284296455433960848062745055171164104945318826850602298144063128669827500089559022737990714051059859805219235242598326450734407175158819785156191325535605001024437189659114842747962310174033555355160734910735536180168138850588799629384399542630460549450524510985261641790511578559623365512867883862121912853452513924318214451909424963973604156785116843913022963564744139718136049909316167169185876581575358827839060487414507430206128239497301206425884361151994781364736439708344549630056758522766074338084560355827918438981385273178038707810455769068056671690464916750438108927331463543832136220744247503940582583018589911491308798996608292774688339243978653654817721814847120376002860808444909706404245023762962023629769373043627622737320502587742802882159063297969379093001732586285663165242566598934722664083720201914618693013241413318468422687009049308492758595009049103650023892216344439090949334040335581918096182076304285546539610049975096868007535054181815303155532950068288550873693191876412357759322526439984889746301504609766291348578438813667878691555413197898519978465555279445144494622520288577746713417536495809153928471710344696187590957125514396574756537787825962851813116522692238149134733014699593272819400608999160434329632808373238915231384247889415168843946311022008853081067750347325688915268559476211197287493127248513904976051810215866257735613736725733231437420330160818733217381542930024311422168783364196714985650896704172292122463544354044027384238214098409025773354492162857290908712942456423467863073257853858972778086642501317327142711161232245774381109877764194638553773704370425638567485475692673805845256796431312959857533655508009444258626688192013853559651913005365042085468610579715732241712684883091066543086572911485779624436583457167845656505490037209036243274159358687939766775842842306878391527197505262743516570971047904739205104141194151840115904312715923796716023319928639462818474937073883242703454805031590686034616203605857425336024683410706401326861787127573031106289938479541733921721083804013892325330812764182753870427745011713300806580055300592366095360234393455368708936063493990444702532206525362199654879286723619435447860927755569143919863542305042185152480881357586388206001539256511277558169065540007415892534665009670825796062689621103937381317071909711368353684054700130472228982790511685684551222899884743872833250460768849441800219097721596981138036612105129887700397207028857823719973435379694920460937345861187427717585738870403248179735767476273451721723087468010819094135663646891074278183635527957119163418020775569921573290495231533800039874331188232579200416700685208945397621468763532530094273325587643964645608428312343127113744209968380302370348211471866724500958782872762436893229344266219322157048684066160894315058308243738003657552101632603629180475398350799336827464053529870802804270759640589197024918045486495967068643045629721895447524120999351600412333805611423854961053039140893002863510133364779122586962721793776420474595061582340226899965698006153579659463500717742652159804101192208906204411824150444147415657889655779538735780917709145713709855818278029244462494756208484204453902895181785909897704371668344388116105693732430267640364594381456320681390503590789146157236082505191429784597982676616761505934995336542635243801756569069463191954345040253869885615885051892716281801084759694807664942572458784206675122094599844884528522302608316769440336808871818109115032820008150849920871863977641237007451300894879066788204435264972630534839818233727685097058685370485607712684650613812193447923235721683672624358927300237988114830253439120767756785639393277731452203422464912961952632111893413170989620770938503770119512907889877278517943079984727182955168671441369508009497435911320795616654272879431500720040734341542273433378174368207010014838634577739441899773029538509854197108477227870666381390819603928476292658849902754969099627277646338351072506708858910256036638892779966106578494193831957065196150538947562248928456564880247713218343407039025396458734036900829228631570021966918549283774078238505741657313610267061833179164955285668699182849442610536589977316665092238888817886287805317737062133428483523866334359727463273605768091457910339786940879476518016329830388233659456046756806153363451189726689533616512199704714094426591412763124994366206617102116805748719487109103643628803272684504007435310616233171935481966817562326775188444071899986574237258246017644400156554373254055379888193620510853220687175660920514925644808000056631577430649792021196658711313605967753701558832863611892441018009066317741447256707766067675597667524902055030107020531362697010673349024325312668895828678555259040677345277670830273847234174667377239961475218195586761126162214164514578922695916314818019700491224032894753957221738959852763530347859711723524315670995593895539759825870602519815684515060572496833645940314099613577304215279169554021504144412843313939696435436505520348215985365133599205354237774746287904848471515874517602087997174223055673091295401486061419708610177155919382684623168347440881049991864323604446608525383662942700774456331751424842223281200295480441834389402670968587515521616390981885623015831974001115475686495878998503715353002564711378267804299265948976473363907430115940911049787205505879383994742204934290649438117686154383055111540019309351326463179602933059234232230585839336387860785675419300183252749964253539612709870768189647188489666701080411328127868389538093469508321707487649697346306871544998389323769167209004105357908184130676530678401880970893402035676126266417276630279939623353284457935455123913977211625814738450842837448962614585450006738847912385477388751595092400242836563368652753313244637632275276576882204288080788593126939542146217024362171835722814505559536530797758740833753279567937007780364556591072088446689111220926319441252514145141040501952084956653003004009965365222694527888630343043580145306203891232687512939610506839366790202456447719676437675929436237430329978775445099731287754089298944439414409066562770534451206667131786886602363133452008953704766885047470513755766781500022054700389097162438734004275433448817833087283419621095799594913909643086709754901327116483427247107350439253473421826545925018766137554283736591761720197275758456882676676859497236092013341680718443300063822921184201165889512099286358278863702718608643924739611257009163467013083637580807670170378500387059433811634900751322948162433843822290412549398134157143426880111266331073263989877563149540167386595538029404903699542263434222519265039918783754211807486455043301914965611042013823927208189807118561353762152165033773297446645685349396373658636310920945161802588342718153724016290457863075240903371188607111076296018416481505243079044919292215869483135759825263599084029607688494623970043088640926002383197334030299435991465904556482752079110665232100605019317794253675835957272961996761927484598507894264519101242448296555746012134828733720311117996340493416123063505294081223982936136717298661760761991795861488336370456051462397756063074723873470911674795482049639691761838997732863427560243437833041294676754836792777984963543107320259778987970553540533554870450966731127034076372398718345266719739644549199063591896858217575545680836436549633037361057632816429597802714783365918813048839109492668359789954983540316025008618450748276248048895828264540569930702410016499278895651919793212974867481551036616590442107732388046963961816966404552459583623184343334477855053791767915761579292211481492937478806427831299717386179187172572787034973641759152108635346756427194156329843699239501251770810339292555620413636200514549481773582989764906225693473132475410369343812352672969036701210205171608143811812407348079237241594753109811908207143409064515838749399561494660470609215097341038777492175517099659853768091925244296909637188427260509943677137091430394970942219809358806513877830211187293508048863448408592870125045323208478511599246942962505754312569777759309965450647718343564289967009258054172491694638248858645061098479491022384394472040642323222412501464213494609118215816496507368469417687443099903793262288108517912819155625252049483824905876988758353914030939053877711988765269016863023235231832715314990975987843920654549325191622038039225797503247245086256798083540743469306957006282580935219979621960367238227448349566841180592005805224996051239294072313621174290780069361409389463703615635387660308744939805166174870509678798369720984558990911834977216632534039882318801874543941133999430434442021997102633207778495303844534822445357937895946949205894644341641482184977245537947495786866620236353019884398037764713766159860371478827268181186986670278688226493677603314671427476651264531604318169036195744172536606041989095319830416172649065069019642406561986297781000920579546459557225757192315264606162576950691439168779561853411221112946475189251121869125588564795119590888046302379799927235101200309466666867206067977334790741952329388164605165916145213564861585956999443743714823579863158196431333669923872223236848781822267204591421102242613141118270492377765583874081406174593654691113904851111439629697475243148588522034928164402503497318725681808596233599270648750038546626412400360636474374357058519861088802200596870996159998383463417768591251372736504135885297007925764752008255416490324962162325130750838159066025218454301500099384225620888769459912809553552125377074728325063600415945422843499361866658865309337367554660722895109037729499941668150153961232143828445669298128343180534039902867681821054687147154102811470335039803718078740317128766664688198736448191436684109302491267254949137530140300428367295130988091610120883922320192238834403292741758698692159193507983067714400254409840080103133686035455538294161217336548435855855903280614031603893583897508583875956039806435587587193129541796902706289495399820020560881062634352816628310132744317035784679457962709517624270931752939043299314564906662307317806497845736382983424793293192610048916160431974000398134375865041082962345723236712462329315473086472721312743796000512733916792253921251965225813210878763978770068304609844803468135143983936874470259543439099334911467022968890290913526606998777863720804833758367160706948325199054444405117701406059936503553962381474481863304881404586348675422974019952789104854406060638711115318453183330893230361109940634150594744512963190424485449909156875572649196604619244060888762747981424780436074536486275350519967384508571081724681928411575327329825708016159824147351411301555217383271764540584183396811146280404173917057195006027544899030837306917486418080682467013953248210959452749368763011415726096727156230509400149475079717842329700461101932775206843059318695485947869408912329810337581949585592886591596808455664470928224294753190655798893079239349480770195704294915330002954982182685541033501827216862577189565633425317786398104720051466561948811528295670569511555738609368339374932757232640634866556030005283748703325213860011056793317661851961186431136346834090196773577542878123955675913040165335127944005313170750281766805155315513109864937232723423135683413582945917286714477288153295871144556058851008383771642867512998310907016292835289719112195070915006227367570546610041379968139654961855171019449988340496798983548610026848982223214402527742201065440492808649506895986046263257457518891995610740278443236011849854454939173819151563064990608484745660367720306724352458501324851914246960380678313171556262547280455761059490782101081013809473887735947988322049939917361544001151090726357718421030453838205311766856110810478382171577787603816606631238450860016412685385272520198397585826895164722921299226293167816285020429865844351280252732264057541995498870482995112852477054416393562045445316972079864864944958044192228465250247364923721140136596643468972393403127835045327207775815376156881970076220822715026212760466814588358936835015855348950588872445216727652326134614750901365306530674359418408151263653047504587466628877668897027522623106329296080638113480820781897036479585737505029689868829837982288731878778955367130259224945954489636192296000020163713205379831509292420437152862735879732104446741843935754480035013783164123324979614181680440241056043591636738526375408978367862578000158070989521717968018164608068166326902578976347610192965426114055369642717019493324256219877041257231616839819046626548385245883060684650031278934592976572497489560174132162473526242427496692640403139749170244086339885013144354858814017402680915470861539795345493797847769003076412375132090772019856063295851216162477270882956142212619667513607362524191011895853684457107009408799365362289036965363454719750348557572015135124579382525293332114973093539616709706627194461229611714307425945380705522711319773485788148678749625255846487931362956606994519857154005703747947268876019602683388051099142122527532092155631334035959345070759688256440785802422873088302548356206638637861200323347477047757975063069021272629268583377751805622240368075022742085252487728226667179825164458596545681352401464329798910330941106178650668072316661773417498246343341154848904640293736056849610051903252683496854583926420859722985596260979237742930357725820610497887699229260018912027158765519986499832255367219480579156802165407993047004304840257284985430703688761156372258781308235805703150902439210988035897351940410696734240993126446150576755555352698274039732665011156007728577377199407682218918476942627038904056032395269695146861067220403062827304630384424741971950154536485158288859527778487574175904989867951756018330351026889549780146940192982886545295945521440195825967149943544926303002472744763913336488516079136817483079765404299103378702430571247386322747855592190760546979493191033707341174641729381474311903919600211157277531057298104458852346895655657204909668835104912464798633605725781410397160778065576014639372961552300821520394306003364902965247935740102925838470791229362013138411256598574584046741682791364817739919514346846466879134368969233335351726125217454729225707172915155809858731412921306625552950747966529980718021731737654813234524761616242142163963075550813529438921610650259195116886257160341467216694001338557762148274881528234682509829563223195943260920591135899600256932672205027949064347281755199321402196134663383074512753855916065489128741791124032578844864882137819389918587732864540847734205246783628726720853794833411194533077039839299088704131712070289926695212166126871041132768693851895594062648434593414265827086177415390660140051752733210326595630683076693503115129508078416785800270773209867438953002829490863198683468122510873709721242649465937053486879488178790094709815457773404610073335382598895668390221853488802054848654681813976292884234249803695736699152559585718642300619576285012568268241956733033379394399884826274020819494867642962099991275614411125594633615705115497096385017266460850154644122719487176379094352378847708620091644618468545259069627108340687273070038865888470002840727984131702249583405129112638252980572547903312919690560325133361889813283473180059379037600946050206483369684906959169050023019235296297758794168964008151408545510142054363669325746210375145391648036864186755221616634719912070631852216894683401203874465904855410751743490032795278346810742528017796030692593527748451794420231033036353552579182156185141479942087071392790276566974899406435583417581777480884929225131502268697100922213393512258016766221371139622741637592247869982598334869360591059414176387284710290818547805186527083972992075620202442694012089040036567659015399298607573663584600417544983760126231960481734309372040402396898624639281759917779774799351409359695886187215240673154285936104257931773199478262397468608708117915047364809984914557779973701434144113905721853882746715938049660052745094151503976764086117770092619947005679032812586594951726430342299977996450187875387170757968797323923543775921476289104204327052528567621637995641472500761958263766569662594954218434126581368841926761390385307789158000132804056239868895990975936557942979772125029677978461965314016360722925033515986521232126501695842632808426224129033758472178501174132536689813745393346424362691084389516220332448025893977059402511928619438907320096364341557899326671192784653003950767764906006257117807157530023412040555016140095078863546705843269320499103747459861790354996229498262173387160859019301866629242716822260107605044516395574173807136580902283452988222014214902918008871178783929606741397355568845571434374335608914842327793372850407970558836850047342379671100503144986726668920348485884536468226698214391874086281608239465335370677159967355701413688801749951633486786170696370450174293631348484714781947631796002404179996613468868724265697583703912993451661723121651850638837691493190849428371481066830273299831750199544049813338920218307322447852415745016085957159404563760445623051675856532751954156790998030618667717040192789102140954390234859360905500681370804640721078211511639336372763375415348117896535574919356713904051797615639404992516920264493722717479656890662441583414235543634538511131052787315919502487770733300061949769464722309900689494031783446177404157926199191360566561992830322479192548766726380285009607448746312390178612213807882234900739945879972294325228919235206103650869087110976696655307457488985730426516142886846881969752070893804283846194711487658866884771795143519620219447845073784679141696849367546224217590466180431424871984552967371046681566146370802815028662673254895728093308798542127370714794673702911714390848220677086811786758887648417238809142989055304965563512909885238192165333936367256013234779183698150523761634275440299070006052798864050591505316380097940817740550705311720916470604140327999605099625839296505536827036862897211448922610696714178077131154567686463124738197846225616776381210969664075352157990889161719916804008432743083993528121525919369628142086564001134370636235219603903999028354625253536982905876747615554704189871391146921242255743862865185608245707008053988685383004676521890291628196260503121087644564068226833510563404307933252186257034970653641631018030204447894816130886247327530789391868427352682629495068527238935351902532467416484611965089815138766103966778923000840398430406656239132863326514337595517384657890498019286107791730315250909277936987697886471841458888325461355842911382866991714357423536740632332745319251782789810194218055753537642876430912717982152681641652987411460613249536819538193266459972879567719640052717484813186047144286745362214515843180502035001035449610308153360293370251326703036483450485182639212046443931859802834282833306416458971980603710544180944731400700386301601549651013410477591698823183630838647976597040714568432697982742963928658014034384242796181010461696718982104332934015274054936754113456083834165561136142193456614496134608580928274551857004648027822743538288608169621161012434030973233641773289979233932122912120227356592419559866303685791324055815238640840637887214981094924336273865724232688582376790326406297217227313401063193446359684964684338574664841810602210073789115504929002658071552631736800534113050798320047342603470906810254093488432394043411162723204158565944886334277440487495194064390354717733680981471834105079516804249846143218980812702765396318883012036793678091526396832949409577972687137061451879637532121892777916365142893239697371707067680277437609183316625498841408466302962948657493348943646153473030099507044122709328486272167306889578118541490574576180603254424807673217176145324834862478622651819443526256741052330190891861048986644319568812512124049273258381365889520746107244951604850477742725839976775533835762305432919652640553361798251851629005724558905624442970902732381638574402334383542487780992684724972880156899196705123592594819055524821673013736705630278896243068234052868836816201687714401551398978863404184945807614522639365613009863365943081654738320784432277145663109632941797336092768341876042926898318511789137251816651400716954155039963756267086785650339660863773927085934215910776747851089614385306717507116811984297156718628546264554329760515613544839337412521223933037657278085050896091783040691359300449795235821461429858104123416164094546998062783382221124392558467997934784150206570713212929376795946471352191544506262014689569212765477657052521085518058314298004897922076721197762232166106006933337343243773182042926599922260898669378384494753340048925805807861901883341963919863583226135261915698240053333400391295821233562258182726098710185342623181620870013874130448072546359893487481200501513064263270690440820338090446457451442074135277050962743111862245260846864574196704092952670346973799341937474685132315560010605309387909365086928526189024812759220559435375633205215231238472822459527749348391366858787162778076657688092074026425187422770144651024729962885348214270517878609100973946708266478669462984349970775842246594406985305414760902329298048224263219587613875064267674067935648776440858909959500402269389677386402127079970836490345565973383852122262842607193325969219711074483307474434277705649789147101738348385689831654080810060503783608239069783033319100145891725210837042823393746332413270405505164662485280919094030175766239976051798188998606964896677680423198932695449442588652087822348722418480076482467332102849652341890179243792370643592719612784169154127795151449592321237493842467355110367056868788154584370216418482929225542261353420062691861825858919273379195951715692012708354842289176088850633882714644735604955720304696050718343182062925778584264065300941997865194693830352812585475662965566438906615121660923349298243276340894149251663773476927315018114210693595528471419528944431625144369451327786751883184435522149142915542246283054897114421885372451736610817656755814093561015826378875051676726100451464121519108007860051193052818927744743935839444375481672018177976971167936338503326407828943745846874006955321768652354866250871694936891446726042534299598597101318776564289189614913169076931908958451898305915173504812307008914368035807630189302586077996392805134493160370682778709481968374741650705986335647663909126475169642053030263276665382817630851989410805834434540774651968043964481620306961341728575352325654615962690235345019743520156601355434049062952524548033405299973609308199315133101952099137941282785956414168619777841470177097619365839590422124605588014040729166364054754547011606127393571413611142531368376828189662078314254484216143635106570615354570628453436835157679366170988606177210905586845447180812621678563968911815352094428600954319320292363322856035996812479740410920125829961100314697895764450022890551591246803822587570395491156186337597972738141076244251560086813228151020716126356091965913478322270569865940060761780271188233538277778924347748853168073227125476608178275183076613994899330074369184380149255743997901463574523596959772127045213528726750979209339015352404036480299114430743795326679591167702586875888590943859656245375409386905814298195525738413975830235131112362610393269976352322704331525136971627147833736097457120862355669024832925836419248526232692782952515507252599756580886048600106225028892830933992893221088516716864706575994047315250482599474007942648620308007097373402057578254227366179360440417404204898403691928825326835473172154499045551115456073146308952310823502856116074996011541487157867798601889003954840416930248538564256979720091625596340564780900076682281898938120636243346698726287947729111684303214648235765295018446349853339313340086377154517463362212847961654612460612175102249766918449905771690215417682700584867813910768568257339504696966728087395963569395295205483235501677513866668917740193053090094896701675830614697524677961246364508331360033345688135631901944263352518726408664342958360422958715884770738483844731125727159370323411146608316356842356810293204754007632836488238702807807552071644141620026995314721057546218449395818502933012280720595816149526664921032818985999730225625739136450756016256600591501052523506633843840067795346615759065211204466231949274473692048021999560421081691225161864848619495149765545784007969844495288171924284033974003554932574771773728965225220880304015665790623083978250687573858196822581233853578067362297904501272731661456171460615548873125408922676009695121440617063965546172378414022950629153882356644860041577887409843870925561271805281499407275499718495333740414848219017541095668497039673691668091291398277525635437548836227499225058453056566332651818968461614648921538338357165742854897462087665658048208189683657455466547091478850456787205352150903179494404876386296537412558606270891284356232844849352050629715952069922991920461996389632406684463245386546948965632391349863891047953706379493319176686594175942557321366674219498589244466343182302813290273514479656849642834488867371853747461216554652359616839541579901372806196857846889485089547672566471587073198990497676659106745066479230028874525121077598806096649617768391190498092878482785879914197165738608939484771911413833924468166657727978520104265154772953094361433476393224631742052814666464907248483721239466876522413610651733564708141782967698396524078631637336807004659768850338559918496246543185246907944420193746069686646387606591294508159024036418535832552622268960294928411953728733183488463893104360587414434577421986379609310600015565981617623914208832235215484948284587288229898517871056424904558257156763124076239575695561394786796724869538557985519792290538498218697709801796029210062855018189166749791372854083251234864412600419427628009988482959676970675916172918924035193665285707748593463251464761452995284890336892605502793386570416387320268047502705972065390184572967971580735109619451146310786970772920026336492730524486046529341766211322476111745811661158542421571250247681575043359619431318002661783961097268883109830079812681055997426498256403163510245266164277873374750715730782153141050330397145856364198372762728577491376360007783433765516268857295632559149357905185323706649681230712306729002633084612072277577194671823637280833767258220609298151350897815671857668273210518997237041711585745169328057470060425271146056468389823954899660779637695184651269830159675885788477459821237401069921630467971251184497645635290000077726025777389435698223842582634062251048172084532704743576763996199253766678240086168631244233715097393873203000190865930047433541273645759320932888435617867330431602518678110524462909651834858740050095003292009722172342118718865953979412637910474992604895025777112537875310437641114376956014317723610775009022691397604913001553906875330206165690365789289781260807861136970056469162236860568987983452087099269091767082079013843438563860427410181532290986293860287204561304761067144411604811681117089029772746362817430590271516774442442953356336066737600969933501878095425850418082684251011980850984612368064885710769791594701090989719878594368667617128261540304714256793894258141155713628575520237276209051813796346820796982959572058556031914528044603061262039368366739320169349815551639086339360353712566850239371397533982561277086532109978200252692913749166585719055757366410918235472355607087747370654122537050863536707491863360535691381195311939779247185158645966562694374658450735893311342920982599889803172628396793230795798982789271696918452334321525536318442252543987839054969496737595983884409721746755504649895037389572993393544781830961400100166734283305335155666059042800225106702856575390836586722337058493028719084232382604022453396269896267202185664426608690922070670364182552439925918104169119024360683080453505678433743258063512003658216396509469185335881880160843111634029986294433875394890887094558230979082967943224432957925441053011658827829466820636154727912239337423989938311690384737285273201659571479156232740164850199442034369931531571061009939252096067316710232143646480581415930800093407435063904469668610537463414792071159778676623100225960490237616122565749745464276657133828523356664988042004750365421514591859351887891397720360540565154306371992603818820897620794309845661190845369818212086808015232946949619432360835995845002837948282626873599875944151749172596524379817046463877532175990866124374241779655856301138274405004223214755484176880208759990811834106649302296251087872213253448730608637999734779233647334000327728730815155899832578300412128352148006328327807520190539263660042048149169229972857331317668265498496769043988382136852169321518108991379266018965401153386602604473485300401944109742218864021104212613804419068057717498529161929967809721362696764086925288176529250231896512663625520584982506276156929342004840903274245258256693892630908643702001205653844752717804816680749856676419894134312499005775929738887899739044389003890941334553624172815015063466372497662094015356871269450874583794282250174739005232594879846386246208080032040871617880217534962626250115376147641886434285128706996548320150339584772245349757146050449283250842468592864275088918229826579769179308684868567250173165157986478792069665957794092155436732559760734290593322289646287912090274489504871952433459026395744811823757270274304591523037929506959445814841526002379079832530451060961263060719051088734093738057663986521966840758779979320514835657530854046233895810579768470339798853352512597899886450059996852944797135049554860918593316076444640065328898629983157715921839354918582853459940225280494016378683132184555764337243691941246626421741473331627098967541829966821557082370654692005763848543595485146984161907429395254366427352274029630977759591731739558404217075300634617551726712751672480377507803029056065512635370123968530300895753772812622859481347255518688361129940858790546420544075921595452390870968362725442428087103384899260031866620470799731656036001138310397738293815854430291196716441531771714464741347410587650091395969785657217683961046344023580002437189540837787604361925964941643888539464607848375763720522268884981706789283373221263465814341824591030227907308963103144908890984337008904458904641178321338015952067195727244111604859567408536383347148509674519901116715513049981903240436705764662820034595042002581606676907801834104592495436303459119890089493331475088441749970569853388685714064411513673464098483140395346112465650526533566076992269702593987240275848834588823740757210937437257257063215241847526962424406765416567740451045247775017305222426571639983050836148802068429651000041420088334911657677190494596713019956569693564168620100970891626070431117828389180618197180695064031599371420957849121646871624135465503770773683636849132629905955490628474919588573596014305850316187591298302948505752799050946204003271614175562908228994040395988044827847824223947071312453560723191069668312364113718620219508526670932962840871292247947687971862697846125364276616118543179629300425977481901229679753583933534749102523088641381231152587670654077477204767327017493368127325322020801026408485694494889315701677917284092073066573977882788342991760853049761797695700574962036665603332418845834927683715902742251519713526187593615802601970297110071581632104372940463614438658915554196712628213846908035270400928821057720820099503685038173113262611411535516121487293683765488590920161392323120056525403927842584137847521836723660147032453610945108240801460846364172042376311812347222926336187827742855447938368318159594217848861860678440215087037842414767177324312273703341622459438064036530933290941322479202722198421380882135274091636754249722141746581463721278131830782674250863689369415741088607593882834399239419941345613065652547711076108386247836686956250752266765291285202778407494028147616592857102676119186931496229703875530652828090769198243227312350099687343803035241562702680803447858656997980253502283133484535574243370796156946431236603590077563519719603481065373571272766400469568318137319357625291681190465677500695510215291783788134817659456265002640993299387520551411469495868280451719487239212665573102133902711520067925154139291468500982767160758652793874068147576856847472690278230655729292562556600699650195838821047402248367782445803941499081074177430669709810665052887980905626599813710211005867734482589180190918153779690639737453692714926108649616759080810029115629270875637764583390850390470944395683618182198812847202655746196763733529814773350156339654355920838630973331756078885937035502108127161749821347055110292877666270829960202677314848035225650146908802127266109520461257129959873612998687925466595685638412515675723511365161520154296214049246619279868329905051205612693126858026234902205423622980338606962860202699021943544312887934625680112061925776568697445074621831188515023068905867584829932446257210762327703077027994230127493623104719975897128353289940705768495982476480948970942236272386340473449360946828258956642081396349176545029674631870422679900074512574613487926169566144227806006901064669048212254045803844410613513367075579290284104841368663601114491465835434706858118839574358062714598122357263061827365359522090721799831765864893513016802724388115082020654362905141386138405046078538410307781170581215676670621421310263481653056165773770622680661546621887563916482046635903004662873611597533012537260991496467219178334040154549533696700475437081701467699993239405338297060617163676182550211071806071044992228824139000743263639715119660298144243233869205617571348506979826977149894418113002588189731054967684128235738955913285975801115516950436547810958035013235284571179461614203209262631449925260638137766057734536672137112882771931696841911714223548695000770070446404417083716419785902365085144603780789709502045986744742609166052220975432239782686046418224582629545043520697526004620627806470141124334449651040749122520591659956807830714081168983585274495049399017796835173609028108886488560123658492955663681754804466126998292668886368037906460432258104118899868523449124551280559871673178959552167295033568211566816761134519452613882344814675613761304320207631601412321283155370693150052011155931040948614430338663041293530903044358603697192502985712906300378409752053915022992834504414351318302745552739116946529809849882559091648129968848788988710908709532341348046318077293451395077998212677168353812616362223393536946977893761356303263714730639101238134582457416968250700979310923311723638764274312618676400515783756113985870320772598437410423431441420579986527919441761157585649513274610983726534998450453164574791750429905482093006819190370075676862869395699624865421365299959931013709521135281162111858999643774706961333329011256600915245251555902039291317145677899360868998707550481480505724194347537753885692083704365514239207018460396167417005228641299309887592327593308509805063583230221056933155770670452989821306660157966603897042917702221898013427542487442116085376308381501305860476431138415459878190927241836183388619105872179218913739600252493818730683982395861905495184511581594871212239304787265777958785850119538880016562212593804475252328506944324161762805489542580210996784161923328787444210909925906291512136839531433491734064359548916477224802450212671892887992548225253049370168634511329121488894694516989732395914171403455300600223532333755957648698460686811879935789408615832688094819081601431596029623420226232387921309707641520587415547035135553819913492848517012922087848511427432650362295768946867898631265373183022508137373705866474818449902007149983484832833971844078216186360811109129565216112136506077463212744016187301111875728328140242602492934420021786768315299956509377941629675738415031362406051740872872257570581524823017678122908052935760695945164839536856637325869407652894188013405102452064894076898764944556131289448779755800365182226943725041974806110791802931908200848361965878862172223709324172500127307385389625341379666915252648779607306596129002100358381971310226396246803479639328979402775434597518521743262169502888851311327037891186996681878083943195276036259105407812774208765832067679645461994944081180694642485048451317685619758483549415211740683733693448925066331670117358813315995059957715621163163850029539805066997308659099545627762352703642687279202270855502292474663777938825685048915082096290492766980299680537409723886856739350208873204192752807452997631938312233142414385661512983359222374649743896294560198360055132397620506590200204703607003468944975988005642791603703350454742477253066297308283182615183931395485188153978557925949941679152987548066044414780806817800616678884394505305536898537415930182647485103291398707738723515926822545971767238434271559049056324231479289579397416697599053331589191321115589184783198395716864875076129535579978178529110082931252251639439008656535203305828758337778017022615399682144655322520711421965430533505585614355421502426508480950429890052556462600169788623804201578204574031597646455492290250186790809401999949812499413923658682663927653218545832687776056168719022152038551293766668195431591008748011019937483775688333756145609667379161421976029688345416412728910331514013553941784902297230922801835631825147343945810608111783068843716630788747851259522074769248546319124208757572036533059656983646957171358913877443974983093007605267499172474172163429600837534519075031369695727157187528173445541572141756519930378526195904900646585743420861215614548224734110258277017446826875142746666139016919808909597988514562145511956852398402722069406862271416984163630208682245094450863513699833771723415218113959320899839140406989837954659609948798826448770571165001596023935685078488113332347576389062168883843748989607448459463323270235074464501043409951439420647573764251643364346802130854026108601476371868623044003886663282946979761000319503030527014775530893081752766762688023041105764884339754776401862545659426938699893322233932601304968414177125505953519253638992771427447041703897562535042838273903587849361716303997615827065045785395609838358028384865760938845269928245963726472125485428590019098673306863894687821957275784259534937555081864653998739214863356854662672456959703579443531796280418002442799287936624854439358212021675675970187607340594490509121966167182989379199614572985985078830245345355625945082053866168327403367675910077573305346019940187638913819442383586466898827015169390238219707685981111601173358696545934469406959527291437555173736240651825425057225133742132489858781933738140022268493158320621639755328628651230570544107222602658217748237509513961522509107747275419946338463052580101711311731435741040852529022639905120733737107995500602491011456102682486970428113002290205920496185913939327565603661603242105346744565290424572775948150288205678519070780716585738550498214418142374152421029688525149044957181111861002882234198429787627489717548837506869063714435505784802923706428494430905773262355428901736064309112255108965478158928771445787428035908341402678835778594905727120458244785169582185877672139258594621777460461915052720189261512260580451360025582654040694106327887617643642835660954970632928610487484610696109839701062068586364164466406611629563223959282130218442276618321176687470021667146079674582611567165474156498552538828866916103289686519639136408286321361184774111056508422767132606668717400658345820171386958984462632094211006760708999656729175590238919617834475502137693645499593821657316222293005753750407836878492500258965537717465445292327750776938428781528494412397898271569684525434039016944877256918196486595350743292881638297385682884556939652867230107246224483477022698529423795066832911301562679501670298829061137362237079229280068253446684794070929059211553854085085142106615072948751179243546909338585545418178551046942531904756216442593566365783205180662343672459670293723602184787475734530117275057095015321109077811114137845797845532648003552981463136539191704921499878755583297129175885480801858537927057258607525615316555963109042733380797011519783024701296108268874646423425220098145658551039046082995540581067883346572046924822234230959559995380375139969945078077544676853356036217150617352013595293202548265134835594967561957589005758684113626377051660473229402350360011575922700385506340295993258702951698700935764306196249570921100544548770331365878388620767156250574016021783404619598972203906986882278280315424654684776401197166916278492204290751190594386534807110436772734713029590205249750475070658189723189551095324658353240323775355453411119832532770873368761037044948510390632901331862608087802117436130623300691049811467388192675782215405273285886458404570082974986485628825867043855632913717798244393488037637717831147603377862614644838150269055171755764352036029954891061659405655638981754899266304074525797495528865433311238043809949993664789410656584515724161199706308460952084206674591833867192621688842313547324733070274952743178445020536295546930508526537029596827255190978401142127005592479293943132702090168875009083870144124100882467540155709056517445988053524890048931985522791890945798731101604467746015319719039252697121558434288478042132775359421545915748494752921873156683140249861488612059138864787225421244709531492712682686408415774313680956948390587034133127173705457729822324034802979809495424530023284905047003633304919185925735162523496244548205797514868301327789519133778470597235589052566058179503774257915810916088890441940582013007225156126301653615546782016732119039142404068705254404091848678162120423370646298866739754248990915129022180712724751256687689424907495422393311875716245444890159928343579087114622462003424395117633600894311934754329205296755299952906405250338518475504531842101162548266878687145203639530302085848119581051307691048587683184767597350948664233205067555184156826932044866797993285623193948683476241177554104522872515921313382555065658714277728862581687855684890457362363534709306816188240074307814804227913941703965086700344642201571914633180374534572191574645806255644869905345934702235111320953262573129493760882595379648745393793475393351596709236547049267262171945889748692457284415041148185427232948641997808014094524676962493810185663762614251219684907674985291299297573600997151721479477826477972695847386690030227286542818106296532632573096489548653380806487010570990755919127955428223910735880695525511303152622150868406943065185466796939889873938470492587070124726980842338534912892026653180756696497318690436454100237091043337053090613830894657288064784502676189694000210769640754261828217945810799880380710140370230136929151484756251895805000432993392203554019006607183838091256005788268607470247349486484505036505698493347787153602456461504468881785402374392736344486526729433854285338096835789045356661324981182139537917460889105304500251425065539060550210093749873402166536112047026819396670549929355509307021343263682770562752865359563647575177580418641188009040024036305749588275951034339430470985965256042125487506395902669725342218056074357025358654058141347037077109042296439177166859092446371015206771741896609945841432565026317549405770817298263679583659198773973585166202349409356589394486284371297227414123690026977217257050560245114364923117197629415779966392585747581776247777139692177342904786393233195324580736380030140958224903462698184858742707443305824331783058292684764033992204386027404522403148127801468378910469470737257368886463860126606530578719255490033573871438312287440306484159777072268879501104604346926472784908041413202012682892516885202195830739430327934579447934276130223728885001655509262179711918970737612436477599273430749756138732984899201811895870940383630000505680318825843529742806894155637858336596026182062332622347591543618129231556806737353118018379478905030327458811790462532237940381354535771268178450524899522453121999519997537782227406148680036732571999831231085306572916990249024990385793630648151378467961438934184716984461687980348281484298388505412954554567810179465282866375478153105115191401065911676967191911233083130095362423252418919135229361304214487992893782572942362343131992863088961093882640041432435328517441210801456257001837161037824930759574939356655597376081072988429150836524738437024020889738379730560555209501950219276395182096404676913842847523128020043900148375789645146058725887556649150344620520012064178912912462934923670801858565374547875855763104483474288670875272033655439497625623682191644436162439241044779629411622469524581364692635342261743259243446772838685467580273711534157547457063756645914703855128462306536812365993454143439372168286741999898386396853704797062420190890071207590295060607196739509738928292559542723342675205174735371371011951570082065458362209928656719045200030309333966069969839009155085885193410532426228046126895537661331275792310686564885567388417941569596545698098739160363819675611934410072153690294948159662795558395749959376224141512052576020367641397220968189171013730606947448938960981893318438263896436547785105890889776235768258251237806478445310193342959468336828295972509522032290501381288974524379165135896926295831540701294240233935968554516622471661898429454015381080451453638817056610348893900119584297575989021736291076124215291953114691946732633189391201957975508748590118181141681670009298181425119049022416288285925567660796172330909487975486824295798813608169817028897680421882943417615113460107522502998543140477695633754141983493273470221494521584174493601750930857060364655990806675350683273310656675623694717814957050410167120859832797897091985112555298949071113300835119900938820619417378574371533755143827685423455300824629236859469810991096964260307203897103052472334208713531286519570962596136307227270635094353951246153129754395624928541206660983349665308310448690807722160311764327306582020728361377456394827073962705637044921456137872160734435292360264930308444783746412417214486578647504610732785750648612224432314007414169320606736830202883477157453922475447030487576135917932545260555438650875776457011438373024497984659899374458932140334426920680100679724112906793935582446090301694805348664139364050189176842268449278940390250603215071989039129926546828576255721322155729362568366792756585362549991824756957782808179254992299082085116184372469251877371784119221053758789100831214066591159438483353249093451449650586205451556230671408244360055375593620412395504037624844701783240092326308781081908628790937599447816808484946940239298460774827945163345769113237387021473836020794067715005787057732134034334474505962134953687191293749110555621869451286943778620792531845489761817228792716796486303107749107149234989398991211787096900617628544772269271328725925581848400846543867869853681753956721807808280187278556732844032674744428085547212455679777863721450151259833483846623692360486482684152818650794391609815420671519263944041237106107572847379844813934952474526114364805756480993421955090810994093872481957668120308301033467271102520772233967118863020428698289516020183571151027126331023564105124965271694207958798117575756237810466882123984960653057635498156431411683533901740739221743065635240815472039964130732153713181131037670994744724675660084112201021411664828544859761953479079480224441259416495744914707729003746778598571942846918918603488414478923802287283591855706795392656455389049802058569211644489816894650882676732071744105573259499319438496930881105535670691319833371731710758524141108100418140750587479647468636926506778333071098514405787320997077566393592344913066818915137970018274456248205919754359183081331968487908114870097097613439609973314916826902353146935821805876567124800815381535253385995597575946489218365263175190938138699732170964224618780435085037813996766179251552229760323602128167274975090528423404604312188718948072211520387531542641308680835406579709391349351833736937806472716823758576463347274535399595456402841982805831239250721130120956165993856042403087412577333165803785124223213585820492458301380207904559396308363131642478718995753561551394817814285499505857417257363993247675527748859564087633704381821517633102820569265485374730367311202471403847877774883699047615474742812910862900140133510734983783367336054098912385914902712992121508304893327839176404488614340181047043918010375334810258547544082277886374196838196387911486904680439277988028962577821832255600172519627215694022238019130528395702101564489252490935690378903522284075182506974367003774387767423207675677087536812434534077223666960750234117814470219006159898310099316185551559240366853993578290247098603378787974243547524586276230239849910955665669265806748162481359165549596684741615673594377758599410099856760177436874340400584305987261364057472377510220005550855635261819696774850554935221147924468582053110627407940412336371711570078666919593820355039933892458600232653886300470427197627718725076800050160934470430679172211765065344361472212885770641549654438266050136830005742963875616866385120182740925785144733585744082939902894776707172862461905971512756012005996120845699533506282123185228240423973115562874063681240014875360784488221170241064557823832827971117430430070451090643242741629813912842902751955018658539124451608749054490810446750715268799545366832836451035490636546223820098315632837059031799841936914836526015780753903080527828040010773819635829298583503642825269977958875059902146700354542430629738512247251795129353015638278273957288439911371325608338791873535967286443078660377592626980933722080432448485299049365300802607030132459281068649839795736647818251325137844806200749067530860876927913377118674948370459335897411670882710541448688707723043734750486484686359037215090164838046053632803711641379310242112484220776348199672840178791373970775282155770498010043087958156436224040404219701025085051739576828664763693953853037563631337420954967840242207222177201673410348893636532645950363333719958556467076086846528263189812349010284293143857256409723713785621814781861161956682885353126525136678698854848495795477277800771409565677427651152585232057086017650419758519184103836509518329149314092393233504160748926747472869180392390339087438519493978772317332633802327539282400439336577279551338196908936020150840680745222112669460350838244874589446436582769354824758564008171992918814095955920710965171518843543888234001518578803614613799176283826060951727069083067726863027169641647769758927728753736476626677275850798752123415800474371542727778441984624710948442162960996105409594039497175343332128890003340791562480226523523933764410013904581998422337003592664273838597320957423875724918508395761757575598995884373710149789201724357982828688658086346666506843540697713428108657775261336114777815381459441152114344472955222533012953804255834413335611787200187666862710094352029548588355352207742355551988172744755975119022208073097343835869312586665952112328867140600628371755081757149089138722116072366258190197554590388888308999335915577614104503117967739059343910614670582420188742221809963311086739658244726849688532291138234611237097069112966180271573230000863367989707745145242953679354166448166054492290248709113669814918402609825076917492931366240277094636333250637196813194857869607885534007443246013279507658549683484136358495797068516045055541099564699564790280621542020104613790957319973562803994950033334858111947678400599891722292385635637916105589322013512500344631023114444512120513373122803575273081953158719984787928747483928081070871519188956424706735843480533044393115054843957580354599059749762512418400825756771839394853412998528125654272709178020475117471811348004325150386714750847975723348257459903225158582353562701502137162268490914633480432713561071186103360506258395177210720372641945002542550063190267325285286085474119638619778594458547193466778958982510718414228048069751381187153964968166399746898491747901869002739107446873197672430051514826750226472132529964840961637844279237722412146238836401946426896627824353016339650141001674658376198798374777741022370114745264750828067100224799694789196676547817403967612766631789485643740217782600626461280565338099270865875642621701822784912315577185944604408225942659493668658073744667770113331985368415382386709250107471156798643247536021487021177987154636986429558181913418299444440225882276913270756914681459832695155942350523539966158833953219899340622351021748415970980357704890693546274132379384906966900133274819675808322715878313444253260576844510576673235898394810710104155052473600352769215919295591214571081836249682789297650319513845869230155575062586721714721546106717353649731921488226376198732929597673995249973444240638211690447402836737905346281896537437320282794487314591383000442324122532171362280903127137019015113737983334641988743215509577842215877201125018806998637739055469795342735992171388759059113660365906425109282919805172857227221672696109669437973919792347983404538072293316629427356963171605478913482894336254880875414312096442236796271347853701639767589964686814505818860773796802476380829730928836285473691944810844981477434990924954007539576774802715958555206473387676427646777748997727829122864496879567478787041533219435331014925059533585810708541614586610438707580239366709958058801097855216036991089648366148330807924722537585033364139486524447977753740836600263388463021269873795245601975674231586899970160763679555072588764028874371819013647294916480711882443145441113938204341862661027127459052400096839788716269662792959645978915914887304774300824114094528325850297435751611219380837402068927984470969053057273583099327162545792495176336209230985006810034320568782060557895639895143036637054811375499062334648844812404072942172557102041827933284272517320675709318072752182854125440348346806004211889117753410524398287815021684478886605807441628623424364416999001937044468465854993324041801580647055252363644913445437168437153471155452634939240167468962780982941859476386977257942744968140490720382953544391408584838861313907371472592275121179044427290403834900996807683773186493460027359605319636516480632760368757222842244936785057964475886537685762972548868866896272500485282590739274908449334174248315680109986394099829354613515348948099833812080121469835186501215263652736543639989320363949357272818041940308643878369357915593924654900501046786029195198626729934349265019299179737283312938226991006468110305710492746311117618684540524057115695245799274822497231807327774877445515523598592377453556560636892675956322499701668645893941217674887991936531080038075834361759992249691585493857184278245882412234402458332282207828149990556320696232644599703138190640334386184767658256940447176249935756623006219977642044386282282965683851080643796032077611589917143235161758676928178460125007189920588127952418940141824740451389036722371953833195805400347252780322452118133393090678103480380079384451879236707777375677214366949715271154393727039713805809514715281091252366548762068313296355444776449212087749584558054895027140975858882216469139074271993596175142986455830799675547490913176550341797156124251624983939024576125412549578357514802119990932331864713416701148722294356507170202020706089733281065241028932980846249842168057399836621513862900410585860032698504815768700279275700101797052464317628857746875633016902343595047680722612493157341666471325253113259076112135567877381787846175154252950926209822525747802796474823078885419230634340516237157997436749622047287597202725020721152444189369449338365994957388384474677900736006368461077113610782614035265654903413658609159102669321388758609147658512154542734143070992878200039637287720624471487992718857238242017929719351995323191100129301121007689819177737208414840075898249611996162138048188130327539958801861685630755359967523143687477381198579453166326678135146680226323934500211868490716392376282211215428511720699664588013069660822872149503084551190033364025409668191187644471580167706282230103104699561420027820299735612875952798591668908009067043813641546336383272414851389810793622146618410809501722175691688603078236215800454701063406209094261657621765159731799445587415158540627424690244925546089464558225010361495874302693910444860387489707383723036580935651651897678580706357617974360933031854332846012694012188373055645374436944647544531526584729385876575250109307908724067510340807800485236050256873845637046178097294426244276723361175986294801111046762466679108057749586771268935125753976726749875036245064244729117797875548820487801840361646175644737859402627610344357836178134091880102592197547483863005347460658179423664940461526846515689803245897554613495958873642155233530003081149166525801027147400767469625240632699524334595933197604265783275475447780049365432370738417135228264866502016719505550513277599958646177415731813856960168274488511307934060959285155957341205754198261786255825534229516893287304410249934941623697184933207954862033444401780211181207467177547718006068807354503857726034859669251139057426911394316842054305483838056625244471067105835517838300466877285835558102310312391441392062712857173661723313918600493887753457791852236013458487161216760598864365749017071753034684869906149226191305733168361589864286823570157616183985679682960584283811557700409055039407788542847722755726204840822912200184436367186844126331750514872010336678485791627513906698807626258918876077962585292009292332901544603030146620596339272504349664460666077978207742291905576459640656457689207720831051468027080386163652748661177274949386008643327174634473646780518914992911655503073985698715757582447132672649729005769121385637132318498183031424370180551622710941180333230080050642329518465506563280444682820092681871015115042646825849738346284637972316987354657238353826309027136895888895309678928867242576091053111939675230597928751458979522510400721500693343122208700827007575156890437689133779690070376361383189495201424895745485510939812044342786484981326142300764741049526623012189430099990536932134694262702205578902066457301737046975256458353710267196656264892209159947703509969106016984366980246401597434825013032221834393252263510813845914033093380653488229818459965520216300433193634182292495977025647900699819311515977029867211607783405012048699392305281659015182920301732201123400764359832910702668112893403555450567837874392539477752070433549865105032725703426469333018874157594037766606992180926631589866913219770174651616401943708553431856512139560813148270820431318979479144396158367161893133429082697366102070706229102929256001811228772357541602006078194867774419284365883613606074609580584991910291480030781848209522850423377985876537971939476032397098895894869168501375725948840023044356837847295284629419024660609907253769454703539532127715807963713955112143958934752338102436976564241838584928699075439333055878213239831795311277593810151927475301536696952553925312838562979209121695235343960316532212566926976864125459641328987185325086488145152059033880843034075196448342472735929790515321058178234178758668131620858208076583616932667788312952704705705745130135946806264865403279160631162653772560472322353321855233856613099974101491387042857689940782959336150126256524429251744954971700853846850172942324440044568020611565911618430341717634423721023889586496487934731876963511839691584868407945709187389774240457189997316358379531020756509541634986989470542669521297109911810252999236516204801989873751607835779029688356779418312112468166457984472636033873422317482797684084695842082762447520023647741687684889450716139066399052607534739438878029312051492500613295410908660725421481594878887158121828723255487826993137640102124822965902758782155873664498363676458468249758584918269564533618099910176714287388089169367242538146972233339490852440432576536324875930014277884650194073371356405962474532533429153134157013128163956502570379114980262363947313162937518940214890715243330130174582217827780687574766627216276566792303380757298419787558988947216711573995461166952641069435771396556852311726482704642201670348307102010187309241033947486007949068115634221936310515730576419323393680670678483914996150872595235402914313219617115933592191109597461865377600579115139274886568385636399367117034398766258429760163200101601768364074113380565593426626325135131980148140280250078762919758936902476925699289068887409932053889985786969116124895979141649237803281893870280174859246464421220850642339653625855983873072412261021613384871170731811283034927532173196827510406233636263765091442718697528280603601759885991045626974794523579985836987694501883535747097882957237966804196051683447095216713564040281755408064620204507409141780630244593225589303346822830610297572837749222358850709421871658883933987288112102218246128015473559260081460483898761380357120502384528747351554451719485519115020676206335079760407625253476459765135419064489885345700402720224889837794759653388441400756261715704621216685581006758303704460960485191341953795811606347334746135733137505316405297254970066360168128338870346662362333283433192102717791349202439324836691834862910104396715460868513657484175749109122145114343599235730703012596685583379943758179973180847480449048092677480183401575826534688486039470909937548876828890989598419592502059267143731782274431168453441546548606338023027212625327959523667297314995085223811317212259675477973568982148771644721246561571872088712963924961832019616514784564979150242521744082624242257403425231874686606743933305942440018712442258346659312698332256345002378735813582829940765086038779480810128058499176755551871563637414621029171754786818318887410117963110316328992777822990023774831333905248455793507928853452137356443390529806669504001975969636053391674423380277028264775598827778713634538834711228178990567490690766129465963393221212183671668154230206648102923121624379107415254385505032671778664599122216431689705555928382118364472314346687892382914474032955080216986854375536030067190432847586941910174387492881781784056127926382868317914979850207596359713535991775997161667672270623494244974492653864248741069965025497627017521161772786098247960386657785146287500528605891955184593802397067191556599549222503327651083960536787812297882542688901022842368413821010462147325491950878864533296974362193108672515223811719956228746492028812248441537253736674925895052277023635901700585464321001845725707919829720692460261869132267040998827199379041874770352996446815320734464413977085750579296609029994134910092514666754291665570276653774500686059115839793119920604654096927120909183445304391484942723764015669864421209535247752970228531222232792977965351737154418036642470682348004630098464499083133435554504291663162414780110109073330430759290614064138929032776080021469757080436768673799905902020236957014202981496056075504160954705508567246243479461343467506429324428341781350306454435947395917783068065448497444381087906602532233648868627654411922709950967996596126106134865791509328213575437521987844687776855264472267114915674868326603987936048570670919798337856038333063064363550501355143940342537248747672335898218181642539924665845401248718898586861364532135286329475979556425195233337441299308001084810714671634882301119052435983542695777374571520709152579119056485842395464880190975144629462125597075793411162574574078330690469101516350241640849029516655173328738179636063844817002240517192546349556655930178913569816808617952712059745826026981829051969169252210373549626267366626037642057064288606996782056321867057875435680527342577322084102166034240685941339422019229862424296431680113731524114842115173930176197636734099608314227130271634226626219920254787482934431207898911150944617994787387109086006953850158729151548994216781477272642008074776158870705678518501951863276510004784377174047677179216573603987992219184409594876078574348851161526904106142429973894526125526578037245339025637173276673986905869746868006583210006983417605696033185611466662661542318192252192410786229083337858277993689991573106488840112328167815333985181476045431616841825597394658616345572488000105470936731654144688085273590712546183216130182426509504292314305465030394319052639673552674267811855730264790759960641561647628032504478485546107889163597779001182584874022074906202418383049488528350275459006256910681789319695964547016619224527515301644823561138536813775217635444467947823562928067025454280737435888978204204566525623187594915580347548169168046675069227293900682034722076448682959041842974966618605002451261415634177138823272577716395051138991531284052971465420287383857201619616390055198410603260886107890195819179480296856851125558109544348685392994978914691393720586975910105960420651416289680190424561089372065148957930155329551641724734043473936034006943842599349785479856838335046799818295094214674370838207754336856450483852285281926787511190348519944946235045859245102004096000376493172759923232659472985032735182227161740789354217889354011312072319093460228481345382339726760467143644686231930009790878558329407396453206089836366770857650333761978508243203212368260821041299163922685639201473728342988524760934051251254298698774377692674784756996403934924399953451474855840909244704343285523176285217280718534240397282161264597057301521353154744628750519143299988242994345608773271612568956096981074799882007804120304161930049893804642262635880017136924021157446355081388253028020996025770041097653984206518358532381998103369813676158919912775426489322568288448511266769965419680486494025319464320279569076217038481858268473473530917923698314103329007726484293753834032001960249822577806351326629288726530335978109247604649674707042205844685236461234092617467302313588184699236225299878492905732241616247812407011925411063292204417543411852274889526701718418346417495922649333918113784027650703218723222054858141544320547876030608796898952019699159583864954348551905179035721115104102957703603971960366196902499209712223404693055297775520935687661068477836459084082464711958428554257163951285878029293252271788644311074010307368846457861457950032338577764839698175732795021105937920460859617102159091710974374026628332056605959090745648664335070503146723184956342176107483084785479414642430586519558858263339387593930489357953305990822405418124941753663358138163531794898913239483661644279024363862336436733853136663089586138224336953035873102657789647627343554273433181722155779621522977112723935399202690998019038380097905695809864020892257795055121639084828504741617419978578097263100355711032880354787695312263537237599283216791350775414983887847400399642146597170936563742598174509119692342296994711497016827906737123664533180577516319654445283674999824461416139389083981029377998270808717414780978065217223536847989373856491688010346195444740552472636549571733937302391097588014993489051988316814655678937591247047369691544107274728116527705155773671270116339377250708623364502518626708490965974826581001706300238104068932595724299781905058676995018812191892056548228522333771447260503747847791549691291002761079934229664857295001647716450697239257004769412690742055010581285870881446051883181110528574144508832823388089944685790141805776835470451702485873284066212288819380640850499495159568967946795153394664843382319409691140969775864617103170562410843220090574522836948660568549605190576985530698584400690044044448788266446299946637285994169197653733682479128168021364022848481708145009847892574218618682996455628983939641190818896552048215223519676329204184140270824748799470409953716285724552301031462283993170477896546033883625841421915917222415826823758427036021334047209544083550397834241312691740201261715548785869240757295649204078057612451250782728963660124077438313754208350280375828413133774826644242975685761744707135213523828946918663477463937718672067140273544345052289091265874361858158454864159956183164729840056956815818210569115354786295241444777312554653730194447877107115997275115815931559272980312638674464461227507357567175572573571376375523065405524219374559222091910254391516192195986231648771138772079234132347134881685280755481675032974739574953973456389771507448208487566517246589051364622275883642488250263701939831353607301341643766763431063355032590183240926975531631810991216597236753997597627065672269040513240800668961238420747567852657139363216179768307880913549432841297850149915065171208945113109076557350571155747853602064922890126109979766759783262935842655725592019010452711438531702290278136356291654705262707346680733107681610162517196087434248876511570405558833993569015534685557643593732881988369672303241127947624016295066264206387655610916108521124740448484712774192497198512752669127872139846753558389231321629000926819327769140218640578477676380495938674492332337516389610115432508069614766942071250792672108153897841996377749250151473693861042863160468898241552092548877690504104332754309396849584420778129269977450138378616142189632828717773566867907720091319611056207234738276611480218130085955066220320705878730029119852480050204129131050208954838450587655076183270205609451926443520540656414409214160404825855624207405847660282395725175150360766131996787716075871171439350263881230213749989024020750040333015921776362855558311937690323233865572243427903992243173753196358071948009507570721884588317280469700588376058622845196400574380599968165594515860966717028858645065896043514612054432322218058238748487397359635203421024667053452093290852240990112050314771186562868736578451773583182200949518556564644638618869210005526705417278205500544012466013038776647615639227806748652680524294187815014519185632562409278923101963437765525857733355199644367946864914461487544483324389548797292995379758028986008473307460340249319299701933764929402050048916868911864118699409494120368262044303553910193736617617184919030465827063923509407281986745163442076488570209027187553706613363281347941471060688363288476818270657929065224347632790704208980227287835479874123342449509743287323144505969633064772864683921042213560958156445867008750060226781072820913331978876554449399857458011146094123967409302907616297748066302559908218974354353466530775224828124018159514177547833774335697177213600117869716460395492201324104422192941131825028637777047891936873913893460052488751366790406008728608453119529265926293468612660098815359025757495710025071975897929876368277910370599307767965033271261085997748811885390330491427722089544363859907150542999162735862013452147441583676309163865673198376698846117276898125262125064838710432411002681345818874281715201213193476264719162913943352794977393750356074321535302069971576576696966009138381249798232336319405527608972665539130249202975257376543325347079733056088967286609473163663611938152916698415087877787040011159317418983191904249819643872785215713024795353991044765994512573349257985930138160388691937300923863461708469756132004688513490069912195556108048496294003189024221372604302385642659834929896506628052338923702791395977438487830615647250397421526924926960678714355131254149504667081665742038655559534654165610295206216879362229973175033734362519081369342694182220654583774571328135306839321457509053865710305221586099638662987354211875219578494401152525951268399973886049426859637449633345104989591488350390988609640749825012575780561665991689692847221499700786699449197744073540047096402093078126592343478385270774443422447746081291014261741990354163798555485122720613381145572572045082280470335759120150148186262786767831798099448044726092654395780378511315638202524708985724318880449309351814430533811179319320037432705784138380330015114972156596987976909343865013400487474345601126944260638365732123161389256735545617311390593162689306613472237012001199810124823117324380918651665083519579774176445388083747863999707044745242073185559718207222176511390628949815997947620253156298751196045393352968087800208414054306910201942955932162047396624883356015759131427571213820128305643742715896704040327194920197475543065594244888109289376293788044018848148669627301896585392789817740143320743638013726282242509546905079024905878985735812070420162364054585605934342201870981627976297304758312272046762632266079685564535603212506763401714371382891047678164846121812623263318526429859866991041260437885292053480539078191062575856547300078384963949080544010106682110913279517653540582237725718956796919606146018126920465366336009806809818229653550102201359386163182856662971032817519309070963129727730935252118384238266276806360055666585349035104561917297269473160180786054702958248493771383279249398423314352358004861636155511437399241234318233647346063772635527945471570702253643929725361195111032019153675310403075949877869794152564133571057741478102298810496415090327089683505314244487550759497624528503487235866321280190396205511701622452310243563328915943985180925197884935799141843979459102427554698384828603305270280539272839766189125209372754632631766073213710906234197114102542343504029122366248865592428391356020136051637564042933500418834031118887209119358253705427325251087869181432811322543960522983179648791516880378949406901549599202162510830740507829527877562221967616209472828195332964478904399348940191426759076971393814915383109475885963506559450822552148314645704513239843490173368536704619419301418979920360102981029049107508177355150365621482681669309170907864753117540327627500752389080414260183632040355121092567379006864370947879076428690736297523684126070009050748999151842761168675689332536315276372027689267430653789229728064562350306401252971540482127901794227612315727575692176411906248146057449443612938877171547755239694762337597808114365528247435468919087369937301621994178112216411302549447851093582214110064014297119112542939940849742630643643686569425867779013433533224517136359421694387465470162607344763888048033616169472552708916245247307178422064548234477381845712718199447194939007809228496384587281312808102243767243544840149227532148924143432236779007082068170651902699429967508025605795534822234812809392009965613575612496681418184208208626428219842598332008485719692297023569934199524705454554562209510498295373789694831057942769678986405447440364549700479519127342383176509716290703484439554345787797391379325585188403525297952463079792927029845916896998152542940238611838187683719202504077537415185525499194532985827459885930173096000519969672067472748965026154801166506351586034696203623890175585150454066022836777144237859877041567233628436614096161801251922496416405867245168720189707641775885607346146589662793547943164353186105965921065784030982762968977016374364645174387308475376886846643694135476827589162660978454724951723338356386351546724574902055321214486066451976119917829792758506763044701799683185076022249762389815697432306176359769281107018968920871029925089388314443141948260689076528909058833586340592521736700967436865515504222015009529440266107564500361776124307705837183583574790244860813075127870707394282133227905434511745593195189479007449300463250453243172631881567021717313986519108556168919917664481089081942613233906547309251482219472729382661213056500770004612695230961465103111594985799561711372626444050335392262080451673134731345180335097420307076066742275196615438959105124838146837836516748445670257669124406598097019864622511631489262756455042768002008138704018024606059077736729396378892120212293843558118307756165212138503514130656809011841512126279565417702626530536612442613349948063444577682833799695680047976356281618475357385974400540594819405109927340127916921281607317300224794162713860415434472073018295082890808086396988943509599113928147030001001714599775349978308250817335836641183627128400866846883896594902189327824104550802717687152701080345217142442273632886107616319291769084878243282338966268267948045297977889596041187021476264636205575175752777728950560267055064007055137761419575177079878949509172727384095917430927475424224656911926966713538051809687434957450602854888223373373680046255424730213787893623579352741777827165412351509706995866582570986864703980336241766207727330272890504072545827177013778880633767411091831546933952726742939537956994373597569667040967172212423477407221688542342022608143215968728829778331412413007812220370788146322151185976112440013394749752398623365402948969475159145317654487922920191625451116281159840064977145116806091847523870278400610475963081558006516595135556724584463512562516119980532306586089282305948860293803856861798805044160782512471941330845805480220549286005738019507404639760545018704382722205815628563783476123791561317823352281095370727743695500497308046925744973338182726676601301168407132181489273084845333940393996117046312349707827470372764634762686407932099237320495844121555556139874641122821073422788601344632588941628629198327175410801434153200862073885558479213461619760636927272395017915177669928934132274562325981584728364191945692924597953280690525414042974476690951429716770998612380860852518340991481536178725117269848120131448122255119672441386686986553374577082290017005043807966298609402293379109899465141703249273584759134980088256468948738066037919785878927290532845556264543935028993122568126509722234655458710375325070785809177494817445338516283482383820370529657083103048380425777668888065612170019147363981452933248882298356876025226733699228365359882904429404054430124725278966858779953504210820981799290386339836205950367278310861924908359867965272930601104697423209788595078536812657755850164914521487387776956232705381074650768470056966945138698882998981569140856305450812257228211662818059550375459336384973216860769115405293720367456976148345236051425854357693211019249374512531826920577579824515461438669461163303753729273843268582287648890733995283274290142790367002498092013256070424316325685977050401384948218061816050038732723514575753031486924006625956349340763278090367466873016146214321608041614090164388724729529025341002809832339456696660745638769768578242017091808909697075630016758815072538790467190335296995754772382189475069892342273922475764166760488516542740455409794901715053271068806346411709598769140886793631852224830628251145041325953369360258492783462959089736537185338623514888913143771507827341315927223028959868457212876082351306343238248803486861853199548714822458702914638338789309363809089255004079488776470159454463668403931750703661668552101905908562810362301859554620980959989178398395281512175470576610867600738246787518198932443966514653878990954577840506356470870587928614664559197064538806829920525447601868844422463791222974594019472996482242791086546871097567294349138436195903931052686644135681046056481435160925749833923887345400440871993698524207607693746631933544654952106794455884554721643989997766416280152935519821208728964910951827430347301671282769598808186669199153195111016982517863262046662271424086990752979779368107799963292880062977114478087000595769277912791452524513639342064351441473160676702279133685861040606314041700736269908135675777390752983934946981886482305241723745532435125754347777703221532267181178379170045182552474123171045259696379421186062975574338342176770146276212563137714349801568622024701424394999584525506807585190341106113426451189782912745511595550217268307225733135530795607416561911323123956516065565484821721202641937206376118901761185985612682283549619558460683047121941649013846792447828314560721877137669278239082216636881729460537589672354806764569006059387821518886715520258283801888571828830406153995486586533184554915811291287316549890091633919298379801728191863545681570881349100627826055466656304025323781634299859176874682002121006436618790993917126595359955186757998623628802340686192126991375340948748175537443972694418393901811823009122827222173729116781909577097746695958061499533702812329118816636919599634338300537118187223279406990482129710618564759563375647848014639029935389087566273903628785236564927319133833138395379761823368423671044402050798573810382062850119979360858369506963707423510178384482503318550295608018878904617851113111443632903701456530278894985878254290272413824500570708757842173856402611051084848051444559452652987858144769851504789819741282179809999490325168711103156973478130728815342715428450443418310811673779717043613794015036303387444257985546794791919666405483145734704407761597047963064073002873190691677426826384520174203445526707659724334041380759811970908265656526711274327587872080930182345005891111746255985883939269818878331632927659457697764724451608052912318141923257705768121541899689659961785157178544769947112664260991057281336387794410962568444244115910890508910206441283737971097740805937152927132423273209701313293465782116239926416034618054468818389307302642226006552087997865650176149022004940638362014575941395688104370399732518500821680499760813472373056652776515199869017363400352163077229466788523014832338816179288138544854272177497888978321074006287463580951093049079491288528225967141488198298491148156414218276214387538315132169982889660129550568959715685443841202017772400925818447600100443439754411159633656204457015470850507913947531528911121353784925089419709001927303972502065789540624558403261059873844474973828374282946386683080227624153166943465735870445564766687710081797710949686843655996015766410728312140958113187667882046929138857828395475662447548556757989839707813932376540638429329454450887003214701111922048836027856242357491749918591159602600949915350869007079936744422996303541428049092353713472220418192039859466350534504919256028657241887832428753753486568911002135026131829909627738995651042879124313588818999721667115455080826449605186122378390556728219699341323115769094380210988966742909973827042916137530750726780727535647829625810637232323817414432591939806035290788246184379892886516181122393376566012299108022198828946933916040436693159368098039067276864894627542606654886857322312903083808799852931802667829074843636044520127710193748952570482025847652836677198708839260331575022822927746650471084951040281917433899405541821098991734768025778298657653792602632705914317951963978133436699969947690514088925049005850221466347411513358439884910234022077259024752717608343284255197808869364516378765013469855898938700703484739553475758784704906834068538486342686448009059509498908528903406960485031683728178391871306717518774465966989215297776603244367313490380327066192833856034411144749916484369377168310196884013669136100538315023500102784718515264280664691500478205542073543230691337441311607254472366058711186405352600278599868867241622839855602868225166952581995456726073894440569997110994441317975349426875748030058376169510363945210964722028401627736539172527984946932477494090108479698357577841546237655604439576667874065675545814946204001261902433679614034433724875251792065062307282127316095526236479761888874857945033672273125084131061352889608343771801873019313652020186705220376333484518511880928253068838549057344986606960495078950825695187358336954559765545830075894609997797632480280457244440979170123924276721057092132399769801356564689082217944556418952912334303526799575503762919999697247151244093250793885216307998727737273505415770276809301204449914350046917533679052478660677013574028377555586470095354448017037690967636887857697539071424378086540481918581764446966515708217035310555580819021525246070929969659075661589774975251922157386178713924749912471589423565406355676016271276521601119684063169254782204182510792280144027860374752688755088873457594846722482329772435629595741280117867456043884986086454125992598411035358812023126705382568887334615314932583464800866222768248968659874679277121709797360006965538491589426604169098040946906129858170326408533502993159858986538964447373259620586468817765040531910229653336917519947531066689304118022311135807345354075736690109197859307072552216661313958300435293618973157154142461124595437614094186983097703480521673105159852717058791263784446966897951931491208656686915725998481468366810198371422568089025627637358484513777780500867193992310552302200573457131327160975683072134904088726485622786901950791914781606970959513130979737165888339794429453226776293890167680198370126153895302259001361496175926207090313559430863113333029166522137605493524066916318196851367819349293590710301615008181364479021162584885793403620863913403048355903655949808408141103739909936304438773835451017445369042174517557588723396551225111478532372605298013945016090817860631149976460690630960743952596405762124033430785443614265108835522672552546644710219155518165322293299353763895820950384314877953227345116456490026777070320597599368299719926821490487802227031881208211074191714935083902792223748838278558055152785593337246610868994337430907362836644192261354531040260243672085405287049791198687152031135701193339716377153531371410804122093389128364438972828215101831908831539865818998590544198556498430447323722256783698232987083113951633197088757417399094698913792571776722819229528511206637172103890718518179061717638011596597288730936202042169856751340071381996689698011801291003150604268868437914364309336072291368713024655469753437317922938305884353808493094996626004528987989573206140180922261821742798583581565279068490753141470436781504081015567755165022710805676310195233988863371182397243277969593573761144179950957064208019600110646742281186511137059792242648578541478464831613107435081291920833946764808075676474029103516574637181930937873672393546182809922956921732949402927063914919087255844726119271699083856120719798965598051997092021508256047353705798619204199273767606680335133870345176590959503785773406163330778006191847395055976434807975620801828802199585294038942598181599440200929641828896345749748444831769929694833314333879938078598803628758296644383127605397102930928926973291913911404277211651868307205494411178151544723608759716821848147191447346602466681283257263835150018256698971349039653019281881242255149865174633183071435638742206298564658852273849186289292726304411931701611592905632154208978385593633243486252132957391345515114146091660281052858637151632299516944305876019332436578501289816722038031286004383154845445947366553078748987878046689238697908599271750594631880307768289236986395557164636545320326134127440536354371530976880465805219458332210836369755085808579024920097065048481195970449590027375868831248276377052444557872346759499027032812542348205692902114247948345160587988614613480910717190609704995565200132516356376223479247455354096239589116540276797237005604120036832545683325255176256652268236675965129334953838949623824915389732089384756739235187488612132443791188528841666923772399838991811599218704416436742834266702291235357784136802178970312929130891523843427045763822443597513061071326123690807968354603457672996754857128052411125283844540927017584935732878915927877001381208364016252005599686141809615684890133922997758907464159900399355283640646066224886965725431460558084140964512444571791615400621717086795311225653400416077319483823203776154924556925176893453074785797312652821019675133615151256177901662493030267786415818907900352570569267509505932930419847353938795530537596848153371125240647524502921075915430993323743253067378566749783411533982815118491210144235602724569339128959250674731967069876877256120852262332866410695678227179588193392010424029947322237153025182237851253657934765980681148736746597826264487395173941567279454842939490559790180370386440365549373651426049051865351408064687115254981827908772502924736002962550164792919239126157064945394290408098809660486421593082679849828010806392371375897303505958098604635705895288580986038631774216903305501513804145000421483747837054787258904958782866795061471906842063516862546439817970113173588959907612178182420567480072712470798974904757985534910739586958345923444969357218689478065410573543899367913204895309955752199009382928424326073933829781361312090261826895999806087696064252348286660525218763203303047467140028088910890855107004846212633079004040706162802531782898557569921264642965521214941840665431821167191426598514114957594019633958984464446858746679772346698980341370865573603327932662791395371910281826953314805740586973768335378133372790374407380124905954946769557551419174917992924284626133990751599923112600124113803119351901630046946055660517774301622563566862162120960749149088320450818072563300029777919605039902157461551216142999987656885407181653465536935329903335665191216994740739900525436286636342368595930122968128615067233230646474029045361502946376389245477681592517950632979258606439694611835751229714356527410910849690946383113975784107980619173788541416238896052184886349237765299912235337930057574099771672854116802869431808600243331703742599276055449066960784060370225494680542293421640110723491704538090425008007018950387793406141222424837214373642180402754338302119662050871582317592253358203000050184403094346135957184812642011751462893173923780326714512518661215061361161995180231241933566422949010582992326095768518474851610135268350118076546819306624549515302955107153398844171359565016745394630564140959443881264364517570590724254227834312911013450705235911313585350938047340985982350133390420905502356269619840788789413049468390356118836162287285512067156033069039323143024779103248857901470382835306990987290163725395192854418129364757958512042054671664194802920204645005427511761180688933171857231475930387755925041958753547969758866923162696081284500764257279810234055552453616759262100068676590234998888878948566090421546633130187570875634147675515824286203258561010064929379577281446525834859340747846804260874488095757669039113278323646087780303657450891467939812499196083929445375820082838265256049274082725157539252171789804908334615886199258673158405905558000735739178121402479221706610263630731800964463792893994835860257262939566770744681885013020758302766625770263842370410199836596022963774018948303512035764766326886032373032260894495412314047779977270864208130570769500174307218790902322821222370481368644962528139944084222145155177240449663289614805343565412229674732616163010126576713206301586306691677705756884820397641727821713217956748179827194954121967070855962951532305683704847196271230597968764892652332270931576955170122047551659521875625265812852565087841570563554329593454844975348704982663996970600312287885303323345359035966617162006521132807179235115568644307904007606861182868800810664109740414388504730165707643045004994453116687515682697717764472649010797271416226174478127408800359775307083355206470744488655630221274206775790186463437621835694664086408264468980972773945115839969253846776355446199057918050948300089815608900884250063709149569630956521910432326363890805871442335415136523832713603517553897122075069489521077730458375395303307257926553440300106192290029246775771958666255701052839121469999667451073818626149546107209480610579600030516233051531453354143413805777262975754447363769356278833775913978077061073114585565162078961743597565865022208932843076730318542285743066302372396075167809337580426195626780879229717318401605866163274985943679028278302800036710132153947725050180554261547505894985352397166290421214551641251360260533379507483961589555421268541630719612219538729582164393492296386808751151105429293180929301312539927611616683795124323579563885255460762936100609202279416832437864888316705932832450607857430565012486896012504205970203228695352972285598140543579987761219245055772380991199915581089830345433946968913572787778913841050726969470949851642394005097495115767919037447013236857560968617903466047181109936044952808303806579284683070426564538577794468801494719538184924640139503821181644879930602557200788249028373338400736598762230066902195771267599167323156129180395050984025028424354400446631676481533146389079061770647473363650709751527399412497549770623185158861137298452325986738336945323018571512131583895302707798220024133136548207330096659673057392554902865201844583022337259637386382207034324372707328750608261402656260063353825914871920721141749755453374495051588929208862179772645991771698042025028062000908900558264860331703394266139752849006294093979148337836477759258330510133561239822302029345078056010615162842239333559222992642797839433255840138831849336537086340406549782654852898419473486985640360334237846729883627182861414219756264169780182340495338093828485787664296686224022957491250819869496562191219898395042896118422828220309576656516955344809580414397152235576956150239600726801295680699312845736391137621015631263241981566117092776604745502048150989319619952134507769140486068884706948431884136983729031006878788997129397336269736446078568429673923104242570036535545106544250607726350335524939922727418062297961979893865056242303743382419779738354688318502508988935331605196368351883948146919715778900530728850675895595251897670238679600769299776252580437093817511486488800389921152504449054289384232046214130136011428496985932769212990152320673534884419176907684815105963403802451592289930510624022535851576063203472872121552149047900679159781690184888013054190440841428188780124903137188903198243502774707019739545579689247251771723502977558467856735031773920899203548083641214056099707934429108592637934495528724265645842917429020738973272096840503548072764208038733021975922040511434404111312435135014833161167396043980544027232122621794915722042964230100515897711269024017684820858509920428761346364713756405360993337484894512416852327217008094344938018305924803663030485795904833994885752600095865036026369194563459633319554945932184269824076598306384854447416009877399382627622211227013644399396345346197972301581658505400231234776545869203647236338011758534187136908018126933421853799734208955803260084384002528556117967372970616196505844577957131682561881471387896153836348132607981966437015140660689590020934264292621123320954232642988936945854359687524854238513600326311827625038650881050786241687998503195476173487811705179642342992093804226005696055141618168187352729668494701164161503692705084798604933321080030794487340560363845522039886127659180339158580902758136212539542848605341922625647443931741089653613642839956755646139556458567251814479711007204107278853729083013548250628000512671836169978440060629994655694677328637679128096384549588354051384555912126839586925758544353770171434151688163830317623193584545755017131396098047429314208339676072055550288777352327440247740687770748134966554768490376757253123048941163644005272648587890955894254024309661419753444093087621670435274494825340606097275635795306384747005772769055371883780593001022914349441710907355020118204379830107939545118176583825569500760955335138377108721638140510185017654223618926888101515926982680269309481035648534507019675282404666633029372501162886503676146378318269891708353393953327110342675028564126989639257967825326783398191114950131769917886079145170747225116452671214805443956366596381752229262828760806129459453508927620155526289380347286570139138138958979423067028093167069431416559884848539178713643626593598279071334434332700663927417127715178194396526624932135464591104860279770210488167006985651994963810600659278505926181178966325903079360559301757533579135859634254940452814164430404525252381676924055570992581795638444662559530803862158196273485333582371259684925534111594312892575177293590536196888550680659522773201026626637488105092033910893288286181995590680083379731064985011134797452478733573378869396220399473679742307924183964094521908431466853038319677509270684709457805626338223935767662615816981647505341109239270036564677070575009112942694504870778494342841257704539763767390878610825623139779991501748874736607952347489902674096771688554541551825159640982714589106365372074248984557106589893721802391391499802186833682888366983077154357851588537908568487173505120680821978391288807734488283648882011728621787859001838592299072712709109995289006187289722469832889356149543432856504276808503585719626897236175011771444671037893697336197982337408304393255236354513012399325347825132595500285768827105285018880423668132092140689155913928584390051137935920409391389730050824930125532662441066482597123489611651414100274629515328111120406026092495412539776077249564899763217903923158807230997254255162608236350215544935369668517789884166891616972689992778184731212655332698383802146482051124868050079008003810662970479213750888467350150202232517464531135165584954277582641751863934039543155220596389876627689781851046187395727828510973054997692229053520731274418680297195946669776229973298716282839751587340433458778952546747488018508710985717974272072846374817242633823708644121624505375987467508659037788608619346877568155589591680412429866193318424064100433950344480686098180220996120537921646868465660490466808650007291574757314175960879290862322724572199158133242389043152157505640480737392523125985414683038485551977427247861797559815020549250591447521332858533447756416835055525603857386509366560072905703327032030060785878659019060804224667277024728910799578920613053862107399133558260497181404103813431641911218831585850870873697139821486326794024375134493590102725743074995723148382624043156271875491818426356361553664446292407470677355228885557713327901021760822915468697811288105766448955802966555312455629669647990914054139174528439358455445289147930930010174002107534172500112544792621375786719005127492833964013639696787951292287605308807911170186829632062422777087170409299693614125929113562337366122514896870827913975099679398523560081009652174567440785663623855390605399638423895314750817448114102334915191170670258038915139669243635662426951775915753076824382061551767723024522612484247414521859530000593727876836456953412077746991179282680485381823160443533689439044385738670913428439125442567519529665053277549891005191818821165593133460320118583546596593349694550501618720529481787233190279900193658339653707195055417329987792587160931802179957112466357748136843293329494007389045008937289270270637962014025752762072229762806828450004622856898937066607614171697737478192521694258922008521975896664140431814217518014087765169427210872884658360355926730440396741304729156925203206067111786374265453569539276910869483876757274901020027498898482024425397187730045164560120661169223648870554345593116169539926164353639977288107800512272833388797908412089320822073991713617445649673822520102562843901690373428725077234305869548074540921449987520848489412537903984085737344539369447574595981055645084452219136319975699647776856707511014930468552101199565803186019082221378196793098996253626129993866261222200441728934751386158361685118245539020084622742820398359012132228393880906894236451401744942008593443481484656931051257321615308497288001097886987475706888960746654719382862043454685088809338822096068180044924113577480135293084235991844024343685101417756176485923880749712247662454138910913110232596662193240268824947983690454414457913486998094736095539364717066952195941051933890824421568269349414822179701720610768234939324321159057162545676170641600030278258876501380329735529815048650543958688769598706896542231796563390425907172382846726549001101511786496313050695589070903145195891559693522657558292281061293542495288610662803152751097941836222545346150891028405473088644475809766930652014626708943947224114336755371227376360487899979264049197713652593779912215849354943526041593669659352404655425007653123559400520028511329507928842589999236146395385625220399883662288759883669762131626989670806660937526768473654844731488854069352038794437493858645761828979538871656359504098563962917416348812659665366147958507389508091754799625057930195243571674919228480098765351191483046740194893132607769294306026856961493683466283338483726530709036872022660377094149186191286139729530651912345049592716262350395407414267053965201154283243938647194772546701187932626838906739628611558552687861918059772884271517709074155315369370062753256519115765294979140622270109294876440540081494059841164956103936384946985433657539166011503255601331955277306025107849766933448029443320131362057706472638440592562918244710975391343400690229600426747576811566315687681372712002592701337721037741023836251909764066391310164882266578766878187658858360701708150166019042767269710658490928611307020944729754484142020773299521008755481515138286268733472015888210620902860521819964220450681658232411591971219233467949396310449380347809898500280341224313919928571633102784008360939460850922195384822066984737578666535691365771905573442344606288888286999467487912974690369183170305527739248165611094560186943518826654003828746907899422654795086616046463709410808313881090393697779632916130515724572040459767193914685010141874494848939422664536956313911531913034328710175385981268517616035712698350450222224234015948318334261489896614703122283625685517867499729470357490395471677497183915893856640713817610982065633182259278270173725533270801012670540928641465887218152957313052676811847091051657039317833231489158222132170159278120946108353833145857191504031829581052910663924880213302567598318105332469820177825841128441212201212910080779029834959427926913208560884383136331089844869897818651531457390489325123519680732730849694893370945853171713817979082459995723411400673362644703855164970668628715407878542173911681694262684829222208284678796369259972849743802207761397986299482930080640160558096910328453557002292015799156454999854508763390820977746934862014004550425437151033926926720207986643960057514706901248381126540138248443385095777985138795772074962032872936016716945947113664569362376185505381668514669924758237685587762984233572742954123935973994852370317747550524801794345373941560071336075642250038230576924070110652558494786589013620531118433113569335909239610771782144906433790232078298498444995551203244712262430843220512136377125002814717954740775217880349371965375612870993170072992729452321924732074899795791903765259197407713311913734992189450501270962460366967449420806670323976954894711702500063133911242214805499531772991097562793638896818239936278066471943920894523778881721549328645354195620285827296636257706038796427198276671436581338464845590956551140507422213940176625019529582493245358637189539854188536416160683972853614317417705081440002627286719056784662466258430003037916375169221931303843468454546028217721465398791089589483643857078900138397757532632662927819775036023741436512874173895660997687465978629958160095970266083386129824230910235194896140972080079402333499648690648045223637383787863505264913498543074837025201246348789067928085186725162969325294185048398919687780930232407955589275219686582831494453411076608296897345374172864325880851681312937521010390308030541064672794720583625304958557343113976304803985659035866812149839444738646097133155169887099304341603432341190195147209650689676078844299422176443094805497952281731230916709476938261710065705151257746950960818441559309064384324212838682757018175800282966568858407691751914183447029554794779089310732752390132957633903463222397997388229504315922084821857345362010492646552676539676421542218490986121906201954335307770971309078664036238129794457675587229053394196399671624409250989107868687477340283452404311883330488181527003614874200753975635187980741817012389619622075432687487665799087227360135140550338520548945321833294923482765016099166133646232209799045175161653261454937684101149294739733101473336667919383047660757690729964535967592543257600941877830265657044992534031911776548093584503330972550727003061320886484891183494685208301320594612887384692268387134242863673131591197234035731044959593610314696155537402558184370181808398786384639823680030697688975463352723169872842016076069665137378524430092547369855604397259509516012391851725802491548175095711919401422078209659630304103636264799917043787701525780638497891031036419425360737782588090613717223469960359318815749041831751100656127612043846616055837636401253708762199376916985517936731935644932936262850368121023082482983490484764035374530056649286188122414235398868115749476072274659090045154834213368235969939503936662273037002878032721256355987615968878776806759369613606190989309485909866261286768299250469393229223876900563172692773209595962353157838241575763536829641887772050564364073578524263329978206456380431829917863122296374848857178339504168228962458074060334273710822059226914978513622544489094242123905077840684187230775778515939789183443791584499978769949714127225564699608661199753028922947856301121321231370390334621093104307413195343774216235179638031493480339826940502159896088037449202368112493835431855853250312121848124383014105207462834591481603287879733924999626320421604625803683019874374407476151848684800766780611500289363973445019367378431089001566634472214666233086536056273718382422882220014554891433567365571421423715368922576664078701594165898308304011902038941488961894988969343531769382384827113611616412893807735696582022883543963213628800139414811307071759708657270233349875400022893209479354217881382567852128131784638735129875425639123697496666665979620541050450758493015220536565295426132747038926625628177041042329273489216731664208895833684886274399878364528399552117949883086088054386478257162212919025444954642165326222407260053021961387899636322088296909526152138507207319450431300847990685682609961887635628957002680510125476396109308343737692506319162971410377335243275769320433855559805410349097487536337991680106596324767191310447465295185488271561917549703279998358379152225317332918959684167595454017384028938364370586202307983605553785906545259719951093590237441649263198156389644035290783453849741644183439999607119925618402070119627611194688101743183478866508737930467800201684007910916847351893643750355796950961518729438564721458452533289794059763194868690041332571273153977324101276463906693533514193562473943044370372278012708848260546789515500094504303004108280885738287395328851299084215424725458006609870821750013383383912114914755514636618849370304314938403488684552900180954000914400085973510164824305923733340344159087111595223117747068289668711543973211732842109416266616520821829816207409264560383368844356370806724245929888367943813163476962097810286672324677971767002895518612645276300598596171861842592939531779954240030058693414911559165773815084708485542330592308605145830562053130852439502491654076544172014928357610238210569597414153878083970295856035648634237520346725568345542576538698504999897304265454953310142969992978682463128077694845672097795230742385625274764510474853451350087923864528878524969295040656675061906895992228583234195778745988608275361690660170630784555792293999403657211122529845234992202669839482027525496793438432368632895457436189070881457640435364951598569884737465727378823519769809080068047432783009000790539855658790308196979578555274956414344551023571280817382817992723205423860697012131067889755131452280136979236240222701403228390722359349345840368340333242496557190678793740835853363729102872389219191600139012282512799874820287414971771946643439801380560337961388275430840316999894012754297020032258748413075258956491814425315623257945225224679837763764843011941688060016619080634984667901409040415743159698491723666662005927779991608026972313739639759650322280252910601786210636828999937698171637478473641434934301261843243284963564595360591225893849081847169652871037477128365908729499712792840781560372005560339456778455870194805387763555769468553501135055512912990866544026393978659316598894378060294955340193413024987553053737379498404251145454098167331177946226022577495660460478032216426895793023968356692366521918401291262813090032914588754573397394673588326550334175495044948088870560592681773532206457871674824020112771661921433893160551683724166267794487288369765600938446079852220149223043258604332281746345746035200301807888220494952486559979829619446300594560338523794408356034038522492326217601579082666653656034666244017691810741919441366896916837628872412957823057086312562960581932315246967292020208938251925288424460044672509699045543321390011408966910066825325504053307516199278534364851792187558726867126651098493136137353170043306792719147404722714236884963919708583649737647567061857102883983880467239628765104247422473907385559648258439929850971560136645637415391141943726360717178869101460847979779384979850113842074424503036553556351120233791213185187687918009742188921939879763938308765105878573180330900380322627956351586347251125924227311133070754860746372737790952044637202492746148216414289241350800963017652684739406977140123508682647313597989332589271532290135467384568686086356617586904610542192870518672952221059657309843312738158570670004689072244723051899194789494439811877500669963952044210850358000194560958100062156411703307233467971018362827607823464771581229583701542042871574520977179977490586366286923762363463356362572933795111420178596618990690914849021281946837571899992301661127352811039886500827107257324970842343296752888539370125075619868944741185573322846081403185029307274503528863659890443946411337340260047132937972338048412202996353858009587584196115486256128547817284830065130111988037880661608804640298507934524747650259213226219638095181134434018820164003747760209289043900687629375050339534326855923288824748796889587713810603151774180045360848088910276701136886645941140577667903542872040200559057229461948961656418806444716018251893849567852160399997520835934161339223471972675072138064766266857299150913030899610332129890403213335987906364269973538951114820111767988409163712985383861539172625514685459099012706938579398113026653023973354181229536719693190938906497751516829587051804868533382823515221553170204700048646376378349412860605586161109078522804057638312344048872881749001681876569051799673086658688591988798624465013871282346802257709769217469727506546228704403255055852713907459771300802082406508641572060033542489985538693805880687130196863346750918934787199948826596822578502834810264119117194989266945261766281963109840556101234966566831490703170371325221980180678833834245234379844131983847561028682081695097336342069852767269976824220520406372244190370132365167011867002016309788909878550468827148342497849308678792840028906256849939251931278377259422565197722557112249613823805934931942452801431997295591777166923484655103391868213888712558507034990673619755866647810832599135208081791631935530060640424265445708673055020287532011516491436800608545219306967121402732166067676526416042547811020704257936065924068993853714637457374727170292498629954182562015016645729427214803595062636869410438372919928634689561521069843979080179049054305306983036379080051439019448511175733459732453207312231721401079831353366333813549935251968233999039788194024155401081863410906686785259116251894153037596915836421029282150936454401023430118090187116258099309955204801434986342967542327475686290802595682100805618782895070146037259724171497276744535205380514359954553927011385570178119301477535049296124221428779890351868640002383855779215361793491953701582441875101138312329641838707016714983327680421011430731117335905490561707057330610839285047841167913160841486934158952768445422784829146377172866341961893557923742656308593638004695505922537934744564782349789915929749555640395673816121089905873037274289661367922124973051769039367074072614803395426132369292084725752549206412274108921873938915841660175460547893044003540685898012793363082881251151552699959724595623855867569190806142873253713156971775932213590544678705061698856286539086305241606565183182251181349474010631486684685062937287753111367037246748155751159085557870613930033074942891161318173670103689982111861816685693859409669324482787492012423577115344770284074417277498265269494970432913899704541536821830110422761828992981020810033131109796196805074173946368322934124650463812034643344290995948013843308194692901119597118092288955127011896100226645228165534088326464492940718046414917295399408966338839447989615786651497550474458689375380120602413536593858953362187882626315625691276751295107317763405486771993793481180654987919620388334216391939585842925572494070368741904483267309785405796116048209408019144650469753559142157586102386990640378782945365342958302915954111906346426738349353040890934448212796287628775157852964778492260762814796429463749339415229003228572152974156097467302668910332333079635359836491020085009552599938956005000600064918123367083736729102654286460794932055453153274810810037244783723647487904046524131567383201391707391895313734435611287123189699944719922008028584748748855992597068638160101412110929845506622849271179590187768055236522865859719378231876444189288216488599100253395916631077390230292814291124394824136504155620786217407700580485596312546280915299328228245326331890991988312792953515692363343111002944540684226385842310695724748571793276694368836707551043956247177203835799166691441111844728818082584148812382152010783909691963063293445050277072809961499718308760099565321170982703351032506834007596448322402664674588769146587368780001562200966365412920569177211237564322748655736740146360801220354273000611904874337546578107033844135475302145840802658108252346156579246746199734380683123152722968911151423145161289902219416722990712707128983502272048924727875062338087731753890035034336176478254899407237319572448181031943690589903940216920743296425195402532066148914098330076643985761496159952950791301790303758456090267588650956636210314540486093220332857989796705002259065843405946239700045042076551655029025590985377279163126453729417034296198367383618644477534487925899734512366091207063137135944695199628260886409774691294148881838329362094698755478363697231254272142672801054194976375587531949933912651571318736217642044156873934158194629049884337191919988499909420173821926961423388769813858046902014795879147027373884069802380969886846001113793595644591560611853261957568407797780581556112434273898373395886305203749259078288040642607524978752981596355744735651884937385390916694846376259866564362336075668663888450098490689220209641055293044485626022546325977283562465136568136555726862504952425331753592800371579504794955197584015519851279894548642794029183724279223168915121557912135252328091451272861455784036338673186027649728142273909644443243868065475465085449384338967186569762537884144648591663265701519211622597992992098961678496053675099252724965295089847531624843715107434348332803774870379909162070345273094251143724415529193093977024100994895492135040833462713649353781584625417671863947939441805913008528343858646017044275892561304438160387054958251666176232753786751760921864874399801755204985219393460376942832654225317462905325356718092625831604837381140671407333163420869380232516544320889156088689377614223055207079957438719683610424736622728580766222728453470638298408605635777504219827900497723430182527964331387139761125430943992915990082094451138529786401586807833653034611995636726123758472410561433371083620030958478536315965462815410645155298000741160518227763153483853140651750131213597516465380395880791775936934967456935196417521390550455792657580849075318873212760178936410066949753507933680381244718115053288132493478549454757674022511975382912019597115154284491341077210616666304728658251361670816965462603005755402940555372463150586894732522660259771202453025107589319852035012849729312574559622152756408385347896266361567982551830561124841087021719584287362778969974356265960312205810634006951758072265614877383483383588478214209680423354129414921394771251549525557843355308721042825195207065731356508081085401106560542222556630896727778219174166965809200560228282001065699519682348123861687435659032176187062120842211277203553839903607964240660143657446961659638741275455602359833585064841468431767001433431431259508831060658235608239293812439526481535868770772206593097744500370914220173031034595084233792067067648828142065943709378882522239316339704412709948057246346327015220556103305981259477445080731595169987534248740004026663075367843280196578597929073159796732537722398935416567285603615699826220234947061707969974527336351947684404095617118198450403486203758416795933596779056736388600975120958476406721932386975559007586386189740046419171851259241849255472915594124515575677690597818602011508399853106671055075785794669708322069985978475986559091232625208253077132159565384421830815008701406340730279708392903226615180226421666022201581989550046118010601721003171542049764576479228282058768998925278995150368281688322433936294638180546755066803382032817424073255916675223632736346177582902140775620639106390713401279766401955898064567678183940548650473506227034556333860759402576421192433009650706542543386683797433178930664763394955599777119435539063934621536423545014007752222151468965770526995119556874347675786349986458046209866087594553143676430443287183733097461045210947089867254099563847861661399511885118178528256286382165084344337096372341026265364913358951809724249236836573487031525889841556808557569396583494340838356915406734854320445986817714704746226737196285544843767778673144132856392437837155553862825768417791568919241638945413400407233138688530950140172825065648927702115487524977077866534571216948764633190877841004870118546637673342140711185256033772685508327533882302611685451726760577594740782768713491254944402163108584377645526308004496420927318130389426309882492265328479617422201428078933579912750281630441142530826085476445127567468214459350447669217592364709303402245075985602371606669268390273214622291760662598369434515626734293163762729342763098322411858418109774212728482618149668460246582203759471069672245219001838675602508812911014792100514153910818233710813635153924792649427584459627705929620063622550051890774065696701211861435949212130189812429470872630229291392423545425664827495301010017479976608819070200221266602746953080933884538545432767815163789367511097846488279808875853198143113071872617195874466288819542335968778037358516586262763806059125604582144217725212021508419980324145167041110715583170851724920059720974745952626193700482127748954883887902694633597225307310411744742214153305448510206400608433218259272519143788900103643306758472002985468951323077359435125117819563758895937408712281735737565745789468503779989093708882142583565719074793615302369068902697619178661168118588700557504286717378218097182685608173182545950033630855091496395269237277751741679052971658084780844110005053471231730551442018860148202824546383778700324691107124545423212656266024487208644033830835330651592546366345044373256759246804319012339611679093509072276231905654098443732268721666488001089482891940727601548118169627928617236381002378931198406302041690431411532348404064341487174826352948119865978917311084877078445325285396648520852581190732209038278903401005483205979191619563448367955528768852828113726072075681015980949169514442794942910584009686810488319491811699166229946367383218727777333164252800187071454511731962649266133176054243646692435509692553823466692832634238380765060747892779903444783831626197332171288836904318353086760746668176718775788761841339167215818011209524193566972550053056832551547399916570198946323044167069515364179313549140687508411805855417074203069180202129220588721039995641597654119979950185951888009802957912876740641184102242305406254656249285597064694437501766648014631606022966622731325328578976221129129841114437653677600111298142087418518569287209644591130876614297416650016748977906980692184589755328362526114874228688505861332780269626353139603900958363237054403776174213135509042823714787815253321500616180244783031272986709425483455244448497906355777908313804098215808918221821778408689827693308404522818983751011775511424902440440728398103060024413172458625638779358558272036852033456351494036972857808800860992775709207732359122993747940220909378883685562795168392456722982620114267222795917377266613924266094674831817833130381300780434829186209818515959497828635114898659915382786300692802801968703613538002693609508635953931622256562733262759548671494222850851241268078317597348277801072919863953031428788771447940854091170989082939771482482080936397341665261515025673764506089970132809447705284950433161312658111388665779162653355190974471366400314323480394394835809333221577829113732043251919885264358878703324660823649580846623068624075665225251245584741735010169795107880601138609388164859623376995110231278819198871450737064038101432354265214556954432044440475318045538389432679280976282014041185038656269551606715642911669929906118770092878496775284576288825161838467378878260119995749695807701988444464249064822595532637083557464397849280306074612442312549570579752630369399118091035202745022336946316060801957317550418395005818024400569383578641441741663255820347050336568642983272732468045810514404777343076550840841771466688994995184823339535036924417863861914447914000135922696910665741720581338031029349372699029647258394048819604785571543394297927110008274625686112756905438469627473071666328245345368769420962032244333837141250483182860791097665390010988822553190034068393941180432708953471326996498330678642280479330031251766144499029492472642509704238162666197048472781456549293528710912800518570910240971194185232112631776505384120199995989013652154030876788054394642960596449097606719695366331102631054033521196897281385464063688461569449872800921580416582745530073409411832497698439263842595477776645356098183867031652217538636299545496825945847945671030434580565303693992414679516489429430729704346720243496975571257529160804969666513026061182542216879183086875215740674493066267379836512096442468063380792111219469390925481549668002624822774017996340686191406946579199101506124444777176480974986385086910359130478712084875114704836709013568491544667795061847640828948297136590552054208850232911523425322142894791456694961164988851505239063690727360097183810154791638865550911634774912782869156477820462000858732713363368794181243879086126487432204879774898899496511659384452973224397605077828890703189534966204440700229514975284266665288208962780526541589389650603126706989835512454669605339283411017581052097017833624635831178438316274470984240342350860564479488472308357374591230065138111977867917953982657915191221417427844155564399458125370966688582565120592191971197633584835393964980057546363024978253608421952326052733842152358801588105085302877324003951289866401242168219403270167023594530671389414457455794527517704470590490134695705310861957296621665855009114168422574813757544655719328310807006768051014992674266523294848585271863640274425788900912152100368501569516344526255806634667453154560088685395915127676453027205726591874264341944191554353685163154786045295971197770721787682730776565265156462401846577643662348465921003928047073289840711999236157462560700303408042528334657190430812072262194812598931772292475563853831971812586891934168255250221240800792876855985652712936288792523917302303792949818992375460070836886953772195647870283619800886837759755607634352247576507822768704810413044563576255144515611590767777364167130844790922337387816174580417282660853317002061450703275830153000518002734160640883874561264331461898000128512004987484968962427432942979589047679986266113575325912832622634442680490611840963274697721385001672535562022767062473764473597137003288263760535833874490093578739814926285624284477391388726546225370995009405698091842690782145976436000870527413994889056923833779313406124568926569797791983050194865781087289984546302331826429038839622411521862855618033789898352318147099716961040765276714993293668762312591831045594518268399456211962941407253989388758781206914144356701488647269395418309547079811889012791928659605668576110940288018651479704069393935509666275310174611024376009522829096813543635103483426758015857564782648737228712841921368102451457409918179106836205911444276859744261667990088599269710740665524694746384277181723158852452249082146422901992516289729498420166825389003389801756906570522350724609157798366469121459477540631937015051047787580649145585177077625023059322069632789217844239486769331080285965052016924685136848956894432100070854199613548241003580041657312002575809682008986116559653283119284604930876580007248727632443824496348726668333099979351413033628676316569461381143592835944075967892043350676906410281557775345674887286171521605946967618312607657135428501896202881666217463122410404393006528659662897375447293212293532920886643190196387315479762151157528631228151127558286130400767591905345359006038706249625484286705602272986843489280241600170889158540137935966387849105416969861420112116367938724166344570149909774862479877003496081863917837151335807281064038410882960817484315393837751389884382624772517862620158731445954549976741535511813278771387063603138719326256177219809485792383278312627244179366796147909547520212010485229122746892399566143251425591791637828997692170216213364266054780986129067420283027346081084911804988181482670066105895445724557472627850252832248797327937021530377539723564392650937441794707935787365917889201865344497963347498216338491595567210213781240313141023289174142769121139894912182263728421071014379837065337623215855456484761397341044719169667767551484080876529810994205031580802288434575444662655134397258874437418940272857246571282727879349021466467202396566437875376360895676235126094509648388710051608421586190554450997718645377931268916904895187205942544732863352916644853770345097601574195194126207745300680948294573944167102494315683299728163511906201468379093596708696680129189144948619107138942671991257077182109577405175215628914423409527203684809757879351006902175171711572486558091059483306644625515948635584420859580178493387902905509249418126987893761944114031408101622764845954161413116553231922177692525575168106843980918115524746410314093892148147921074052995986672711257278418568430012602312226932052319111169231780641613305134351454865030246990834458369349459222059005433371712647781379710082340767906153259570424474931847881672342858473050511327398181009930159643980906438245476150246176567984246065200986999555651901098873756351563171152427140707879941038761692755115600687737093500519665726942224370329060077721747061600216309074066880335943947388131483841255027194012303909098841990439369347837929336070196127651632634252227155957398906508092904860213686784504979253938840255619974741322896593455354209519169845757573605457480263347077615530045225299509823182406636020464509688857278190901301053485637059792720063216331388399061083990250405924606605120277828218122970733134790980601859054991372330093184801917492639175462152270731659051195299757434340878594024917070331464788414779503624730812088886669400193526366344084633331886813824377561381293258446014636126412658225115309203583498439990257127022895354970881207253616397344086544052868989316447242835469105928530797275899700858574637291576311945831190870833535104689497350289810007832704453003027838646479818879292045093227683637422300929599601519054485383662417347237174082895915975222633870042104098173992150711020544557564153709006250062442487518672990092279603136060354852372562209756715060519367941911049292750676194749822644315171542929426355412444281332815515389870345782720069233021477014933492349470971120872604282997116558852755829889717551058781344515666172664066877047228621106533015025510790893860345690930249520758110631201780370286428122001535214506289816478987663570237832306040788174136597774026751833707294230121569274356759287605702717546632445088398967604378048931420864222797771026115988478034558826588876501699694887360102496438918597361389414555691736177145811959239545578042659353106869119965546056710780870652123275858121213190194718975770213406158177600926889236817454456425858109124036122701375027338627185482185783711265489260563462099400042665847180141511356713489927168764787299964667169992541676514460811300169616688709245918047841734089766654384007411230612606391385395159741959858787099617423266450317628422349267980328584970379993092610521598413613707489176689771005840678073349027979954311483288047777613111545517901315055575550859946748227656114801525395360531259203700519720215515599945788573406757135597751576221095551291312234138749594642437526735230066941042819524111948846210275402301772046396044292253283335518489764539322688704052017810275538628641785507701926400693093062592876029008507359116826569742134180263934529213587293685772007267807852413998874920386649870016512919589806449282632029567270219842667367597242515701090845416219214422409104500271341688111333114524737377350013247018206410122830581699058043160491544593324643718765618384074805104038764721939802442700177480280849207098887769778221596800223316219451024222357288183221889180950897185531216749659822477698466599452497917218030998647318064940695526753997611214523116849309441271498690012257788192479259593587274514037437184679403306709073035265538970642788059369114577828629463222182665234239037241833270298042452965439971663468613447411601216640440358242418527289545418359244240044636379497313660177760238547077865861268735969280431590174226293483112138018505843694386850574022881724932088054590247681574290206247312550122526793718538668540372921125678997660601322582418542713148779658807102450416218146443680275725902001258021492241039126758605948375826805553380118827442781508911588143111580448991446665913707183570763877567940066771876187815521992566635603657463804048051286729072014634833238608934037150883824975210947762589670944503875772227413331759111647375445325196451747690906909577052995621764609989697172101471470221263736042841044641727980984361107898327979733224395751301871581876495242061770551767924887322934635328868328235102382358867562621577416148133572113871104672902790184217702475747346621179573770758108603623652810279573453674510522282615400350469546775546133211629238365792801779450683406371373960355087730077248986081262158097764940430656139501049084233396484020536763979779907702676071349572194319210740644420231429245556192549873216934104751694085212885225234160700719446750736166049460008188629818700323949825143572143880750403461747673169111467631336635732654303555061471227756611285005386049727953506247065671156634179430459430366050249519336615162820261332084702075998007016103166572684964455420891386519258520285749563877883633329242510052660185333190108779528937244029586531796829464622994034980699092234689314902613407168113968804217619802625420012106390282185550498719303082912077760660680611923114017129045781287731793207305849399379162600518413228791065700133366296659373019736574783725555329512097898259325551915494972474400050462152882254303826020613304798840343008863051155840787335317832949570837861147840462613668472238246633169417534482642824707128439551468659328056013549820038362054564644866038898328822642615684791314715561783077989865631011570215184699165774331985663182156796048234592054797816629094615231328744161089974569284917734217975686150153921678797350850185755146540155761670005416541282685974873783914693103128854777438992039742135219149245835717713212749821229103740799579690032804009808574548714563366107008823943966522640418885312858340769651463186702611056680314190291158719016207811335896045327204352794832064690492388045868325895336247750257903382993550096435098181274654999313153073554687875133399675821500982298222155120070855998730912601181853173112049691956520938852932025356114490013805762452634969933539698302873442396084960596132259850259929093178085012165726928662403154647557874090119457808434180510155673161198345523711914868761676038212157103946082557565469559023511997149726727337436485287625483180666774254686660553810777568609997001401684238086951953509735994638061676849833678231602988328521781602716931089751889160033278242927712947166375343959064013521258581946250500038647865873651972825766139729981255353202823817921372370971111801157462393867171146066802924303466464906549104532714884513908570436535864151323494387737586401294649187598820097636053561438987195485126363274988796228238154162235809373820925189427615250186663301695354375013785428794843249565720331318715850930681569621389142989063765556538311508482267742206149170988623936127574938110051471440023458691080771304987227751784296035079602770184793755067193242515301627339520459658132476104602312768611250965613018220533541606446724062479624720094958818210413674335397825114715130354021337031632929433043549288903128760353912039111288227993232066656089658305356845234841937232519584017936838270425609032413451500220867168112577391668771318104954614590931696863621978381280820342583298705931833834966897791332738622389292701975672495501853114820263854993268583580468582050328815674537909510800187228313444069619681493860162124570431460721946605537049658084516408539445020126329427983336296409884701713516619154649958706375828931757911061065253171447258585418060278187598432108017402287928618936608544608868088775221146222524682411164688375492500960605416263036227062613570648410046186522108849341722537080504074736601938844621470649634313429635033171455245862207931862287727421961306928706869002213996518021666263429524282288003055861024686677908777907989292184953324706396751065206208675858713779690108282745412355511386881394602084256746228862130842438290925953223158700260309348908932058028388476821675706583783738210773694752248171034689400026850438262979374405187358153122062377187647436510145960298672844978008087689349447229039830773789630255954951710212512446461192280364333441132110006403016185222347710821574402134873674703924415051125233215408182092358378105534853199904743818435415522379573609351978553966802581254266558599798892559125072570805649889377089974455179807620562948412183235636897459608794652346065710570948387508014132525061120784506073187097093577237435029480448821104174585024091377451779995605660663998149427662014808028894141510110412831569844794425992163387303807056426554074375181421213140059399092487779449382153411061536080916166481050120943868473408101122053015471650922347438923717019499182202143241640118473280870734209917031029923459265792402661996934419003266703633500425095281831984439726340834344085007633824913855545345311447097949355520685460093960580595130006439042640618453498036075613321170729567935880048817963673371646363945896359207029189221759066529100900566816435831489156225552921707716925183086316772758255895625558933402102482818249534634762707004652827557334483294796246296615918971642750007753169972217401434108846978475152170911458479084578177804825360738062830779395879056451843582341643626373746394773369156848281959700216378813645712307929672745654889571494406467327746929816400624671109060238055838518465371839828193364800642896819845167949621295772546634948221286712062562214228573127100023686141329409826736696291946465659320765668710387635179764981628162287021701118097847681588563057071016219189672602608543086486905623702116733936873684048429107185920963065176076636425795124611483327668569351469806916923311085406886815944257537476064964709319528620824488470089678929397132001332242765893681952278061786697037581619770796574519546051904380068693040380836031851832699831600583603559984617104348496721529007222961411025349342369122504810226240604510973236495359553711175296247997160887315023056752779897344706585847291787745012257165000922674692513676582656152320583217148841294740691125766861815308221335067615211425509592037805682796311283943152360603059180423580333143340023689817536679113620370988837150459137936090094129540430359056183576709103976886410399506974007916800410917647235586176807613799999354297695123840172475741776410227081046030123365375901818224847500661208695647818751078839761701213741680807180053925032776190426261227445849828848657132052972154619136201529174087624843033792087451475878132114252258530471502677627920610530848769607737220382561323672866747171334499837620621937663252298714187159366938254244459967159655376660246473146845081157337913321850276007050698585873196152775528520420582895932372709640978802683458109400168677940983866037518388517367772610986308060279117131176044340015935920859696589959251285183102493127701782818937548648674349347959458887764813053099517330609057876226989617503091388089848657538265511523834998308036940587740399158268272016449743668132774411536385298242749114481500676907875188015832123687535786259942000332272394840046399702527797894054466702823281954705380593936652594228117881595692467173260732777662681140721682137345002916778427238656748954521480999083431483425745575655611403717735665847701094268068426632360886496079002361306134599302015701318653465180079629508304399374142248089931683403782420931775687542294988288666279430341546675802420657307870771943247528108903957169811375893491023309893650797571755717504745358204915051054553550930823604466234208366379766832417604156744249408720010881871887422851596931079226914035822322213405311977153529878248805531718215014181555078736299900649405236303291925901945065149790615916844034188929893717797926811166105726756663647813578775236365409071791467253017361432259229345147998758127096431963122591535134086551223021382418418710593269983411665481571190432435590321237644255457669035456544967222415459117438963558478257530465218467189107287772650441736928210946587689642555708110952328331213292939488463488395911531135969833613431891824773782334661503676929203895124494787490379341370147618330189998579265152167420773753067823424980786363090766540722813382943043071198992472082406542234792489036281157657602270584978860020746699720916527301550861502051690976315592697907415025406364086411286346036653189727577167372266850476516123160215788472426910608585535858903722097561376742102669796660669565583706020898456612212055096772609758351892863722006461407336669123782723735558403168678822580561263489884168809830256663025677048593703279324402379630666191450668150381109105792903830423294460509470061029130659749229227503333274606887531002852418328690679453273506172137468561651844396152196700806135679144338394065570834554421615560738447338201953847300149452317911817280122296326953640464597140195406619699750321991661286855808224662926817659918317691479379226980307404335238957278552802498814897584993703579574877504574111785075807826012812938820519567119329887414672341769587650193578815031192671484801486065427360807782569911482522937689949095453885820521704708084750079730593741394182255207553209688316080233733305719155063624752073851110979188263102191508981440506470474498904816904114271840511090682256523796612056356465186316314054135216460035125080117115010231207451069368128405794657688917237540052184336721314582748364729052277672534320443847346846886915886305172662312898912102631987643600157303059279209833226125199752815011641529007954085345965314947635627098270868679568498930709961963265803010041114201958038841532877262849994857861670811917540449984540347917767836545220138268656667548866138963249512110986766707027984639176083488497644049643273899352028947695938663685450180881463925952450295414230702455290173585033570698418334517066583881835217646588400320898885666248896837424295778735626369887963415166578991891396996705019357486825969927147611386584463721571059535279189670330083353296647144079744972546899009042033257847826547926290368469284216182254866428288964992249584944635696758211360466814862853878905869045003607926037094584624027321565233196079809930388778778536490149548574343177320632672348981376309488554144355109890138093453141722703462052968570519510139578841517629906834573921875683782488314991507764609320780741274293218943324600115462957370505458292147633879186748286501526494557638961122722572879950815456808034138790385473193792466617219483478624121642847013121371367820766356727490053976759420201598956906706870936880465703188822914045638649984795402764559137001079917665635522221060101990718732294877396588028616429970089872519627320562557016854322451038103420316640466349791119270869850242140319066151105758963516822403116300986394462916318980918129027915817725660075824260189355579531942949179968285104260005832476063248214763943373953266175401535611665553013975028983932247218913310182295163067677523106066448474247093214702688445323105997922092004901626917410635198949468655464077035959976550184188326429558277549034007610076090722298037411878756117229141858152078403603931493007637690872719007416431642324314240730755656635070140431167752102858533086745557519668638486450395043791319625933343587291410143299952782477148568411666717902170277815696083243076752421697751520560659670023618176729326214892657942199062590958590056940283894551563091569456403103217983345783180953624226168872993150391837496324116956465859996678495632218023194032787594006316179930084248144700319244685568158858981597078059234276782633347567639326697197817987539283811882872348952425350259014383234397704372853235696966203584057030203943016314801432031597167742843673732374411105483165583367282595994641880767744801386806489668853680756221964249592914043428391212803792109804370439018013316156134121423800002690824584571711772680327314209595602187530484093132106972932247208639687344273971420384375663134403374375167253711636996828376281071404263287292332385387353909335145097924224487593474704559237942904856977496951256229489569951040209559521550593611545195237015228866315795109035332294406797607272213044036766856181435416948901714367790568016631259160692136794342098194090016313534080893374474604968943698155948944129922505137863451671036548045350671919088975632905178328989718213209020176469326562893808820253962610093862186976046124403174830541027407122249146162049280731586000779179153129218844531310575846438260886754552100462419817623076380604592480933473466544579290275393271148915198471718601840363836464870800430877072084720903924711109508031782219293383834560068926438571491808234573610839052392139447344548117161521547272747807850853569077523728218010166199945476134182375051047163462485192501292973322274449234724135617952359475284021596365497351893420137398168564127064110133872429568136165512971224664692330302435164573108311947458512962716803870264426884165211958879534639142221284052837336767269407902618670077646661445014071524631845957362489846998445962748920096330682760523006625500962614103611169627605311762237765288225995456317404954209209125864522012242716192213128914197616061183582001851963319982259907842883922931136646542888069151672380930602434747477538411864971545061855513454903569900658037423142373313273085360262040615614691813203899284624044488975081191084107404376452552196772177864678476685805400277670120076348583738071701320331452437059147874140949234288578336480321149658028922998016842615897558677897655847396476104157780601854402571983715352831550562092201250192976631161176299322716954000752494151191640893380097963538014399740457329760433990619084125271939616917900731561647435665618114804002522095991824977490200324491184998623147387326262236758307314483750429601538460248685063967585755267058647751351073871881301188930757636116833640089717296096794907989742386080017153985887471865649920816691384451061660573867751907952893786068308176023165464468586713579372509956758240669595872689365954185258793905285980119366246291565796252912267249236781356811578665797077648811828401287377696712240456697583095693410093944572340984486885628971610546534835752068621769717556683724478638637980598554980053302860593224374260478270453709406318745064302807716466188213864741402222288375328072376816130823812442348260068894520080595990417889758936549624067592018431028677923476593305417092328657268496738977064090254063869564356744373192511471977671071314902215358692303224569081106681702784746914939635919888200907026646602441440974729587611075429869477694261318749303842890448153107955941929349715712441755422400381536236944821187056883637682562257605597484586785275506984905947067461312063865698381469383271365099636519597777642682506628560926541443180142145626905357816072963714878856633775135915050528660752064389467937298913841359170215022312200467919577280799634011185573226428452718673492794334395217297499915604266533926701774191962874577699403641722656055750682866574641615476445362448394706977976064259258268959860494172027822015931591122443829584108446612702936024024640240012296430136434556562508455769675661932636684809917264695195009038084085685803392855244920508534616171061872591487424777926070231927128671075351650910258275320111886737688118242683944609699602010792395633414583622460672982333575076667271806281329882387492616633993303147388093488227629324982472697363594904869045006869269501719135022922738073534776014249279086104520906351395995222865983508651403659772658889650150491405160081846362413279751844583800433879236361252174062247620347037956382062483418664752778199081131792654242632734568788649922465353517155754213714573442932913480744677180485788003533653966577145914612174833863205195783799181899500353644948244120757104384344945210513144193099600875148164952859561494997810468129154585634375754788856033319230182427423978751482865888065583823872693388710723316802923622363762188497477699629794940157896769328931467774042598577258523810926463065401703324606840046547356007712463198144925833302976370221103864082744273519311340262138274510669040162475788696409893454441676492957247663313774130448140233396096359155504104654817995387188901412045587168439391264472172107170323329746821240700028243558593828707191198015139954741518257498641829374616263506729113383827696178018389221647354749494336444903315295593333351795247292760059434590039435441388165782192530676547713859175986670321883111621819802032358295044299644354522022827711372366679829976161933821238260285972426904130812181132608146689992813443462982409754328601688799820835581752553628857410647554168827412816923939139718434570612239416052934117253666693678763350009917579175393964073451200516021003223413843740543078546708130851514133402626716423786377110197796226580978062476307127794093452846554954811414675356531555903365627642504360030202539922123678078161274887746969913948651837602765979007754504946475904468559350368474959551224244219359634091489189669630258986013018366851148084351196561961239512022601136655472128763982130124852212100929523825363258119515276592367447767738559123094388504315357699474728453134631740462881172435025243850927523209566371950942340140564993518858313289195381932861983532223327606171673726563384470866281357028861017357398592479086778966099655025584261915103364452963398290622326752379397250138225352481537653161429861708444474627983365777194656460214229311172850915134229154131888329085135192893088684485507744268298433807413098816603819006652011199950584449639490074535919541474588433073160755462082094470648416772717835538429651501841811423095290068330059809651297801078068746992792073532955331088959997144138137372191984468444579257221343647679360327799578713779515465304649033083697528543270530758788559494370036379310738962366391816103080475281521731941883499957096984515417979721509775044260507573973436320444080092679124565087921625036955201380541383547541692464140347888494349065251030134658394332046618025978101908122447605376301376288291006445135464831518384503438775065572114216937942254879835747772724640193688579464866935536557711917787096656175999093357184425064451076008858159103488866056399216055918081179143819278413060560138879663856147065618366153292931236277129021328989651843649721935564370340098594586163241103920676201395688943065779867322116813034967639326518330300024840975109946452084944468508391630285634178269408178774233599233651394451384948056789401907873784099771630331746445246613984145867207021721080555938063702458976562490982181267448147163077138399207085519364402372059577886440547875064627236094026133207958363913916215066032160873741592288003246489247467504233852275443588803876508954125491543263517167005195100664151979878320245507491903594210348795341020980354853306681458589480096993840801370906387545170467578325370906634246120090986128965903030659224141780845336748903181760384184486902138649179541084176020084027612421305630472996874622278045286047922288902904313326655847482618586061484260064038443100435709787087824846472724903039766082511667101455321206725101825740686356484986641249782124110783339410688432671194605069614999173997047954597770936114351102918030033368257977472731484269001401895034192446950136870723814308064616070267735763572533593215373388766399768306064861925128513820956339898389503682732044296669704561169709878036056089245922966289130245575180595650474307248360674749817734972835064654413677795408119750403704234846311988305907362133913455807226868250163554859491402453950559411183189876869641797064232962107470107686893540052304372691383730999937757771774094631375873378200787437038646615016531973803111596843837531349399122555483093973582903688027864412594114983268556256128647829980258485478411914528640055375740830819025560159393677778961058763670541706704756615165164276285693243450901978979727276265017365396067957576454919971320183166645870479214206620552008316228994543384646622914118811741836582647745611165910699106651888479838368676495921700331237860356310011653725456123240423144176908309164683675133654164526000248615612326877249046322714472348151416713987664027410833514469589005129451564881068484250873748658388256362384398654375859761795143599678036566694811906067959723428844459173436726952792377212671207890886660572251113326836845081295733529601212376233127982413835166865478135236786987265379142834429722166262796692748291883579509254825408782832598566178088824643760601197739165015912919594580930508225996707800850697767632208326335527940339678669219655206021255646642200931007213421280738531825393751850337403109572557447584087148298600915509985630719301257484361528140739192216176263695482118374244922811147591944000946425678043771137630281542473557038648416442163374053912071906389051181230160572830171757170592589226176115111847427552000655396138604926888016365969597185899770715865961606748023365557895642437129444533758767518560138345690282117050421457830069548119525494109893404804209917739274804002588542896819833432916541261716122605753668579764370490390621590833645340843893664097249911096480822460354969089441309531511401600318708393197157144309956402899929660941894243281104566561649167085388335067928327203721750106420734461284013307877258527373878603987118325264871458307197401466629343610205387470177915103845030986210422582259596519148843692677078320746553092482750247038609530264497093037186277525878911582673965972509108061522520262177709969887711724628954393812136253698872449834080110639354201923521703642257427132873763574433020259598781925415470206950118568638704365647426072547917412407956272793740275330126014108038624672717508676101741474073595497471063500456423823969408424584113203327252805258198333912596489331055291488709521069231497292654900979958113772115178033514919924608372365105797435551734516559771922156249290755568620797187126198135439332299412999678224369299808460217466914139872079123030167585422262164675891600820485686690612079279284532919174516452033211103507760835602667440201175836138719603976249016038519400133221117039377166068398657999649890668208408453519399211496078466424214064424325018068790427512388637150361609150579392626971264723764611426865727288214784784238647613278132755293102179399250856295568461504614542429150931346166721552918613520309808507673900894173616284385106950230549770795320366106463204014680814646983001442014868256488924757342060735162866019291281774267070194771552420328142169002765409308944039538759533235984134920142948307610881299920270634357636319092647416149061785226627611773372255848015885739323765562970034471822646190352110430625696474988763297220217904823649175935067640129286460240068850006614821198872869602439608558882249295368402228882894846860517315676064070632434023789964316024478163234381765999131287284020981538754176726723552522083801766048022098661372086338597469855346618313466372534801975123219193717867547791571534330967973212573613487349877544283422818167934896739578971622752003537822505919293849055098886967107930032945370874059674748307455978760662758107779335118159917045981039108664586664802346346067351477592370743570140179721829863611286410153789954274632049868177030350997705577816094834812545347931700184856919231065708047694257823260647279190149900582132213847684412925706517325162099398321028286283683355983766391253376768296161547725123289141590567244469171214445004472850405873359950763367209348474362523892765334444651809285083646566236842373100669919282254755873301302606890734184079943603630903467774535813306365300590820267599176660120912490767341083780715008024065830114848545106659181394236961421522965815012678199354872930929131941318716785835650589091781809512194273669919268244629743886787464728427368290035417635953294533842836144258866115701560786352801262355324937656557544065584872685085516095763075108448166914934161924236875893410993439182501184820532887257891360460003398240576440884819351629138085050508046667941034400395921772661941402566378096390183496040872333872853086452423317867409295338571403404216282748051757040979589384426134260647315204208958895035923408977516331031540369535347570841293456726241758972574380325669720564417919867562200293883151119134152503517103033967880727243694236820279895958369390899198282604515662364324341398446455513218089187883788480247412823305803171430288416357774001260905822976558412272744841659325040792064882087651119427610619094294155860377405482772019417891569796148241234486741383897870495161798718722399955177021103391270721900228378222850732793995646111120857420899498304980158243082309954642024949231234570063466286611770168078600431325678553157749392866920609004976843939371534373662643362722886994860862118468251050053918198524259806548737903613797393490254377916659347181947531226865712855686374670564635852441917975333549484010803672286222989076982869579947533195911865027863175651746627945455104586523828190589790494593375953895833340012204821917035517306344152353157486422033366759568897449304950487455371495244128517662839077409505072415242992008189018555008400216935975227555052822938648688648882067853038619143318865112018106205941770077295119744706562472673770587998696222672344876333778503426778520508144229226644529437644331842373675934010560659516147135301764216475164713918881448371593414377823813967110430608065797306073267236754054872753851745443903383672236756239383090041894058471679352795370189467384572105682315440176303335045659379348268489529641491823755948730092825405367899836004347597158496935760265007088663537828204935586100339657696123938929719555606807100882614936699880747241914813135938867383204819155109946698812707425531946560589329945402729411784840604877398426461171813357892186868332792239256061739491293494247759170469747613202814773972868998822193620078845115917814344992054194092600882974997461191712002142783514012800188018659357684005976770935205083272345714761362751136690340152376442264511747333691713706115992637358350580904590462498336540230873337161241975410880568917120285856681573949056279386162981866222990522626584409483970033462270489691577954104856659223463320649617129864574205702529751352046141584308871496428507907886767755592559099140489044820130100103464791296177154447590594057602339435798627986915463436814850477365130004161721107358892391225269292982516674249793133176050840536640625958260912833101276238924804396221638546379415994191230641206448376387446661845147200576868107292246560309303696507132348735453914521225217985598036705678624058818082000565601088515690779221818772151958943749969210690338285883736464251448598603594889135419121153460847570837862521219603146824781819920234041327042963565586420428764523124236407608399227413964289168318879531795879023895908437814883323984775525357093416452621697064615120286239183955059801979320844531340233786268762138001057048758131825004450396881194099164924213683018031191610961760548923725726288590000558752267902916172362183521111707834748681161348695288043179473869006271424171149954036749221590968875027955060392167556033873029235957311783450107135524160975799196958690039308288141472436194619154420262241736195058102022636519978978170036830276578330589740749025689680146484919165373782977419309345012154382033427550161058873631431916639007204579833312399070844189020462577265347590978858918342751071957177315557189033343672867857054679651997711853886677790111569483862472010467521285167694656909866335279867111832653388031926838440404713951061812948658712366429183754422756958021603141535446768553186627571242843092461813442101377199605436414650016021728152767719926086054462638921530010300935638406767958129669788468433809606253815161258518463895419684351941651962568496915944879820907621666199314344904235490588967047079242875235104169187909285310432211829432110540510608636874104737414628547255376090244799915363279682401322252994515979219247190395977919055947604318239216272871419459422461012659111879560018519603020435360248669787279392700188592206434342974871119327259520341092759909974118627315098443844101952419053036903297522227539298824393936976115014885889404932689190773979230773643901427676701389046529979784397483500595154007027758565951413491835708664526772506677191545678801563934179094626002659936434148461881667907817270324702389018639153109186043631945000747599458046197346623201616762669463242667591266146421836086547138190027713464018976149073293621539368068763726045203432907594391992537069555549129658826606549908865783315223139116302180549604978943886780811344989751799388888846657755897634062996826314485070286368750244173515705684151356593793078446333685851386742935928638809766376871720249183994631657021310470074442005599741728765015344715560655554489808283992976563024436871653071898408493294282950314951381329442551589406378704463729196125244163357263549196042490447210554116542148124566244328627457272321367039276795070334184700532113665128200544374301069250234471811747928573602298702440921034606454498487034212677119163450932651392256444885805096622414846790847924757948920951589269612653563815490553639419062257073013755233429024241164804072676465811372624725647779774615736552086702392304102385680039957782695538239421314033073752252694919072670668989698350914567259931040063832471199741955197391743865433943848720559600746882773007282141127902056567842376551806879746849551753442764599427122825145588237060881535128120092398906977003539814995586228448754971599393207092688910964833332921591158958301472052333451475117409876836612739791628726667932740612962259539530797818358823912814674739352476666707451576257272898207554527193928882954634858760716895573016159330881323718431856653109236680098044187129763156427750372181080848573835408607032045452252542387407717699692294279282182637392594231109780234256625449252583811663485536552006975151405084683064790501771014946294572996667853092429055588235825267307114654963735289406856502846205837124474809065121006480959936325006545703206377491228900239766040692834488760024819334396284913550068625071278764040588402333420389329870715388114208588029043889163834887815723701420002985108959182249233303199050317669108960418288533594963389836816754594829147756763658334439158762670351817757215891221321073137086777319105561559516474053335924068955355996798469241914864953520477225213666880833025446349504333700505635686446977413158183275292362343795573509539740865355905730644370040512149620207466569869234840182979205177292179197084933690563449941210332133009440995608704230103036001988124265362275039867130661809556930345255486560408871608964953771477414636275536498060282831437998147479192925923293003155673521996539409951089719193850145825237542363277427841820943568416680399165472164916175588234785429352033774208117656961702622829534157920934143142930155130235767720497464292724037911963931329849376108930093387425568368766895628413400931552066223320775079998471523196044604446290815844135575696294515175512111364952904677560821695758820664905897321540987915972133813387974085448886212552474318211319141217067387441917187802446183396537690565915256739302132876299365307278255261103454791663096692436036656309836881510550739957766487562407880653680884128364421067388499395260374770162845246665423048427928572771328254317136912179138206176472659513925873594818497973639497749963849809588407071731128205696553232937277412131563331272788367052445981169059435759708938384432461924868661276656691448814287317598604894773915474667690223384263905872205903999191437556429497646076484455465347434519314267479930043893238809171679481617492829007840682911986722612028800963052387295349375376006942016999972181058588309412410767567279820716746100355007378327058033608231801043895634135048500036406034026579012734203408186885291076774034845235617688219297972311260859516840846670509869730260864024840277623141518793189250521943981306411451174456497385602340236347294311694741262658615586618473306156104873286102783587439720748959075610608287979666459009017003112211506667361467420474914506734769472553048690956870342473913368668725415897255227638209519346171122722616511070594856025532706300353336954083426586282671410708664333116813081886943426822315451819347794207795736461239395265031296322499648313000861320597848234965899992124879907562848708861735848005288880749530018552669048229513023034867075711912008761388151251247453782248257099718515719902690139002713270260381275595887117395690878367464182642759371834793950530541585723038209940452017111511698027660940589181526651879210694620785832056602379079456688128639479205271010696834110674747600663800233008731411300544714811176825835079505905822972603358800869613532298086026680617048612240740810130340209826549403292893807613508158444235444404160058420091589310004800922281842383995467043876209859250169574118303439469420623953757855080817973542229270015499680122334529771799516021653721189646016949655805731947444119203647568638000953730039658110699891217548003736551730522288233003827597413301657685114366058349545148522658939227854279467412684505950621625313102198187089807884131026271156350816082750392668054042928226326198621852085947423729783147603569213179571765319527905346481761701293519859756809401533203560438040026580617168014279757757251785443572270786110853695216293115284672531148047230691531207979676953399565021432499428253892256930738483236647930931562250344682408666815348022928077092359465705377622957392159962155566492290410130568749049902679445527817774617746118818143085248703803697117000988222162932308696056185170384492225791558248828977154163272290423775995677155847427543109010899002438851662945324776450701211394073836697419410548467811696420981726545116598869462722566792249655253390937811444699484135505898342556012094643651033640883886694947868795773189419512612206374936271412904554805053032678472487961029063519730629071615807578079316242044090872325945139538810769740115276313684438921502743970933752303836564473957824201179748999886452631383809961712837455924520912612396614200178148627065019413500005909555673291151715418954564251434407197547654886592763498373338449558909494667090033135174947566000905170142325499412859574852351418624512637662783346285131804015822833057386600658219693072325589647916645668544850452605255273256764350656528392308397050194263464783556880093892446443883613879781482760529730618334493655691348223272261131487421634089311673117832773421460991092383315613984964405721049515449355536704533903053073608639503885652316726141953195670327688734685020384092090389307040878349403321016831802954317023893411074379321131347840894652591791575661201115873754517113288284761809420401793904063326663795240898756226970264534278715254925306672147565617640949465022987038217165841863927566892656730319006299177982169301381357016415411021445737242898604016430491736882495520187506342199110217697426756213404105852213044397634245400620329835456401474593502490490818952021469006293852776167602090541916538121022902195888816278834896411117007137213888727021600737773870183772691668221771070074311657569959000815068370841562728606490909445122111915017106842789534277549500238613112108555535795896912657790743165503861523951255859878954198329991871696957608496113970250438771111001523385250832566957057143722588036699843468956582583437851099591772127706366746110223693925865258838230608061864853197950945195590125434619182746612399627100516040954261407113367469179399233604602968932784649172678432145377638420457544496249082100385661484229313126995240373934570756080248017974669273537928690460749534229034509461395277348359085250927064079368568287152713585438197162999386673100551910099605576097118998597420678206214213694547575062348176469067956664975156138039250895784436690952385965708368154338234249146803457852611653345050861663974459763976594927870708908514089377130276901803577241178188575163107019852235392047429936870883432056838365683247644859113741771976429639481595834177870969699990631792836650092459078915816912165161027967913698627523315731304032947192995061338865499917759050843316912160503192682257047636276491061334340731209275422237228333480628075825080978358081148596899614651254155439531558025055592275765501007164202172264114951449807622143976036643471374014525394114620741454645821605490476207590418507112014278835753404572691188795195126784104944794894005500880378499377049604030246269201725994757044424642559727636300740120584788432055782480672908513486027048981601261032929456809464118010189335552324627781980630022144061004010204681449983814783001176383638591283487524638291205511586329952327901784053087075227530675228364824980628044494631558872758344985218402445231872293247930595414811655996250178959913654054654450569399491261668633764240874174340019017510810475623223650364444850439473182592568770876699237464108158091779032917124603189396928254976717289777348483481995371777707796012206104498114437012997769294232811424580960869444428447951565904783612073830273311829046526316019585244652924326287592536303561592044980693494514968816328828207458323702718632773061607052927300306585486488341219653702696540546729222906946039839388335863019459185772135170724328752452723390409666908954448911485374598754338902365501998333509138147588503683379563578055562082000810343871975567259924031037217136570559277549659184067335246267823374514572980265157371993255144475154774489594596828951003408461580432092579523224790368316432316789176466217135183961244368747876553804511719255974920832843176585376894769136790831756116344707241289518452633047829292804283219185330550601007095097751132551129052609885959112867513578144398541032981306982270902415054786474524126372340893560644277739981945315524502702170314877137869893678424278968765964814027563866180935617345549112719952263364940596509876437485116882827484389657624908377502387572502291709673009516564842610734602008000523310705337821649677579257787317167557438005989507692476789803828324075122215659139623715837742573342061331273617920056682757068367380094781534498916535791756977389665472130953477565101414446855319520467012251637451143348839300981366515380254041021344493680042840909616245041314028145670758061043638123925104889108995973137094201210413885924591550798219099519559805628855495463210113405627226628845156594037568332445088902592536222232036597471774632319795074487822890311500675661759970918697190678148222856172831559201206181729765287637478172199104059761305705804029602667765550461476082031184570610017762030720875732815993221918998996857546629617529997225099649756201207010294740124613173843818856806559827979344204701859532698197487429221297392922646450450325773170395045673816427409842628263183973454433241270609699592757657017104389248080962675508956384563140631358687367200391493660559469781851818970866638532072756928539148615836754416965342018439587144155043447145478135145634258955900028426659607820052674020303846325147029522475898895062874032248196647873879186488538295358359382323993645415434915388365477584982616031724185757846711920493429979967993114824596873672011015136416550728514214226159333272036905680626488865944487498986127517678228687861372787413075926316454864287449833650567355907958590711127122705634500623019688418001689764359878543707170723220581882178684536888773286604676598067365349769702718782768851715109990872937830466719896819197907673714663094306752112653755341254274354258818545772307643187830081748049922859594083725129214964721087748646192103967831378613659125920192258603704373735908692376891826241240263345130535360032618553649197989700522309968003914172004562880326413751496529019799098333739907734395258860805742626510626680105140020181218368503992405241200829907125866186726507031044634391657199011529291267637447122071782623476080249213750596928919993493108921969832701994502887761709305454796315970071636626441142293076419989189622740086967408566627696762548875724655949032511833037465684225798822874392645282690200875185181968375832306344582266222940108154725704342479067084631534806579388641301804496797923421732491696885823948950530799868021081133150274572375104028071887836163862449795906426974501680126579785281491145900883754112091828453799109856392322783215674314663205605627176082131245843536855256941858568265470710454126823552657541541460671434444374570165116633495481734200377229272556887937547127882150202384599554818254996759773130208797734066730781992773689255816322570114980524745923947853048728807294792400764802480666105758707740661856457484309437904292217743147877577707323388279071255870353604466914832505105440679422699530825088291148445319951825435596553150722627148504148088953396693225976489566376813106880429290927499138774360127179143296897955366599786073968703951574856745818871038245398470794270357106600117404542641895795378412247764114815375533727469030203132737662063588573667700236663790993666535048893451069024930075034825063551753053629195885050998654279938173876103922379176122918732489231006559171474907032693521567731083576995226070582617543614735409741283287478563250632110950647820216978957745382384942021982874729111534607386406160021418010139082642514494409071684805060251064300433758067017554366302991082200950079780076087027263903008179358866464457963287302837547979884813296532157529991341695718576824923581550772722091560999972990891876125276341770602403894392202043202486490270886394847348499943652634323121032369055182372990683572417792103528468506294478146072653885764851599876011143968565538897076072662279215017803525358367478183373965606034932348373572671175559923459205533826150952466323111026409640465300921969436889693354594908172362801999755144377565635285858500137760791031931874611736305628140479415491882264963484758579298065173453988918657224850940761077547362543232111257997057911334460178409646820715902052487701412820867259664146318077671631182775272403749301245508919973356323914396834347461915051520256344602358150704565426835378999571312015540544783740269510587983492916923332878121505605603208633348705089111865523128003879385692652033599785758233883115113901176326553980603313654833035600336673401225628143326343845058106639625646409526194002918913466472834456838264103088795293368282820026379367016335626301781644005361305297062194105467766226460260337072247611975707775773093421986157635268496024457375943884706168336639436373680575114611637333222513309858202596295356502617908752757299600477136090240769501957253982566534030349979203284622291007345429804245207590197564844651846982081496733302182502825876680081486465189478624305828990301369592084633580217062226371123514881501660888664490498384060959303792406877126331529986146872312874632269521960053405606018298264576531129715434690502558513432534378104367917418671780795604704671274302448364139222867944429548965109625407006861181874704843181080998393089630941144961962153677571930858737366389332285989927960137536051048608348549708304386519790857373291834240614003028553299933169700298253842694772076808217262239330434404465539576056251144386158974498913155376642832419785956895827368407223549573976178888880367767213678175595078607317525978670241449931204006622630436595432650438306091434140978014862320263552959506790319889220786101864597684630954220834841375584025159823468293064505013820647588678607166302183268373012946510854130101870338860606089607234406208854271775685668308818107320596044420713839285577586421131215652662170969202036355384343039993027198633541529321500613057850876245383740771627884146508538902646329330973004412236238217161392751905177245508183729291103733576794398706545179423148852718697074754246434002120689430758440131897847945849227296295995869832732481783688090470219841654630594294759975767761326899774419847673668012079700131866358542173546305669444548020957593538093338037304260340190263507055170437139892629370070820426928763495531475223598689810317914728882607589955276697253431125681942254420994273067667259240030605312052351207839248390198757200283837800109103313329351601172036463295063851894332394855820855440090023543743288428443385734388546028837254003808318312268522696136156657964450857512860149612742896478273546513694158784943205825995930940491873958562998174145312822707455845470071616876965344733620432869801413367046818319089653216560817916181073107885206663999213121142633638297465991936667330526166385305566047511207081320044459200737498612770940247399905831433005405393098748678229608249270421829553748992893227749725911349116497589259288529474919245039776257107998426806926007371284167960991438729283367625820058574155103922832266807627845874906744181016753231726970838186510845817877021701754735456373202071301143843953890235847759879731627764616701504690693015724162709778312428542905236140211927987559808532769244548607496654526614060523063108489848133914455442792718188763134879923648966344881724472624418050218418620262853304015124338302133709984820863198019462883464363946860516516206053668466752778374203835353510113607759708592023662756406800457655250141912895735821836306115724453620706338502477043255225616612321427215769965734385542925140367343763859091816797355935016299918010834484873489729033310241068491867685984748477053844869372757137886823394736061313434530877597646617352629930153136648267957498271862514770496090930435695457346631174578770753408396992362370503997134529126700274947540704376245466057598987787269793065964866641073574769176316754974959622097902872321321840132594337335987681643107253551697440918281579638791097335725472003058317041034932352853553969357247240932355966422386215690105643659097409102774369690945673083873432572652905979025722330052674237368142712781434069518408507532245089462403275382710299405692956200547557003234878398204670646170286530267022353055668983050169873369805229770499903421146180585689655217334752684445359622688512627958358971759801578105510531875431794160437920550411354546521410993370957045219592329277448788870249790433855991466679994083561249440015705487775459290966134126307358720893800246689076611623972774737997405103515604967110413555375707866875698578580647439019045300231652647546935499440043003554710635767437263745980935695091312766164622399946070116378231584929233745601042921368940952392676998288008532648669943224860402689572270713506578659008718314145185445217164815696650367140019098734211753631199492333253038845113415521995782283194032867134041025249592012919562555124269886640679954308711266347008964227778197505112124750224649665992448902343356532444834665165531883739905949375837167623156658469842290734541753865138969408663060013860924879955215472252338788867149087063473149950181908701538853788859336061560892182788047140848564266007316736858424879796358196001845657739410351583654902688800417787934136299809296443988972947291547477372782294269345185371364902225782042955138190427962284792311486380804202099003237450972851632835692180391612200647341999769615232885394149906013663577531278509863623307004363201317360359013729057039869640553236699871178200799831937480624149941867079890693242425676251147320506497310321830895253596132625936042973256285351305731731344060088723073999047052947730716414395509814906397748216500770159031189212971421298249324728828409871467224788980484355805162815269810720297327900722748498693010620625520418949541154488750263288620323351734555934429700901948510262545363159055746180316626136322262467884343591247970353277425372625496385457980970321762101256930779226935987738022112085560944711843960862761942837856740546700012762016092338642734191250510948653843178715547090396186297012051984852909974570244805519296078118153966909419057395582572650158259760497833259786105159225201214968019110006211535247409780770321636413326648566591933504406695950142928312292679303288287642336494953663885728870722906120613123695094541638813108386167309298154945486683820353540823481893038537020254862204338217262507620976644552639848181543240054518327116707864914978287745065749758194069563013495910859621963737420929060453239926247933693817761762059653333407349425978825726310569260774121712457455535730895008123070510614888354453429764927285721492355947735393687172808862756334325061753233521706853912509193585417962565779163967687345026017335827639612754453276644632060594276692659303416798170421929771446507481651004074326572933346020557320151211293267479086118220976406784034530815427304795502034370996884999669987959168886240581480167859226775378133758306861199599688693718822209273485694648998293113573097134367339362100999627781507230357517255404202225719595505058558423795623465161588240135389168651457919778850245966605198088635613961300685968930894732355729847687387080136415714811723404151049498970869142960999961399238336536339452471239763111539289395197584015814366990584491618249376091723438650389460276245561002025099507924566340578729635302455723911722529767061201779618259089955020598824985874841073513089600716478355298149190148481230133439202524611144696802262769853400628534116873141258478431854738758237358307515753281837398527447839424887465244435593518616413820332370141171296077958877907804208249432687373125932268434444804784022827468825096149496961162231441793082201715358748921078064882113306018645027192932360947616978696656683279717696343348975868729138452369812947474442298685118772404200375046462274246208948480890139222384967961928403196176296229613810318709476225146476349670009473585499054227711334617558124358259223522820662628772059902620914074163273807718954599119558814338458146699301144076335478913524685955837689373658574772750229850546733213695049676646694241282400808053576040383006644345504065192043703445365831336249468990143713319516502827094960487689583060901419596847958518481555932582276366779405890735160813251819598067868962040905697063121837202157647499264943612345203979656166601076433594688350389758844305775814096879019750662544463026078274945567467284002431295172358765789185748005886598612436212667958155140497987382268944714979624115333662224967529722464924634467568057839810092454460282556968919831704526714635272319889524435509385675268474399043753560047675755625390972325571626529177545897004499727743299470423988103402312099369321135761362928917307859896563904860939232050430325072032860809793982814863520086376882357693830211154955957666037543999603165767584055119179591494097454964672129846694833872801753285916780253942530986970261440082075458125062871452432913993519162251733875471918769271609414909561059947304079768337526637926079915908784879075242749400630781985285476999265424420996138189096401387954090474454411214852873167203107405715340232954701316201428652552039231765341131748370105118294074025784760856896232880691255601341139025822304208360193058157211735844269345872605852020503191628872236868594628416545080266074303758604462094270455707948572727007297603765375327020872800100832690516227670559773789778716698023821065971989351062722066151057871018075198580464103102275671890424606580234907459097015523789515874408902917961887428347859184716242709923475742537119142656416047729274369381515146534096864295468275517556760204025929851373034589691750118949652209975914755127042863588322400366904266193514004930797591725424499385130496131608650338387666121891241899697792514659911266559384760448522247972779510629723742419316421076276234040240294047932843631515715842993114167314391806321493649795180365601530786547077325983503035888247699283898363500190354379546552359275437802255816234990288802094161191587813798027029176656361214621211639113603181367772917157203189845263161435255794862524738035616168788522125618455419937213153793263526500073177599060635353431316582183944536262921494246383296908203505801500083421522851475908354732816295014929250339278145192023533251532989641797623488077568215733664723191092795756525041144662358022875398606708452378454627330747807128290314426288389813872411759858599595647241257364271117537915681974865078285602744007435360578600930902483845034013002391821363612934746365107112262169834426654717654080918858823172396881021362797223295770993905438390321517287262890384791947784739203550318950139415749136477945451667551284163442262401152112211694642696579751085536873472338239932903397455869963385915759730435218230103801552535922648574224239328433551666844434985373108937950936540864158824827959225984984082339221229503452514940983711664224969566113516184857659995222188663934021928280822322750581126656062952128887749146624196942149617731932304969568953330451891974752004150111753816398796917803150632746412150430855534930010738602436560036939781027590905367685167733758828527293059829916607286397219150087576265911636432857054739395470255009329228029562421075511429800826955655900171112522091141130087275441565108370199963999054867720240150152890333301005563995387180445012221364316588104643173720430297132946898609375007087505722212093152926662154586370256092244799499122636328518166308993665338848025469721314733702003920648228624122289301749010848867244019505292203000594489155995437465228336791614271414387060496812258342260670627828354741452207559410783309774979121285696184591718492570902454213748878997807197138492903048366267505474720365124083814111046408555301058159650960546877765092902999686436710464161254924404301318405902715828714950064810129337384354520405189904206575454751448804763054535468047625793546179232592409331174807079578172915904521349877314928333656055592154534964307225910199927033205431521526880662892428543208327266951272735742180705713949949567388975837198204559927845116304399992096898641028689041614379465297315763030475206785846830725715157462123966657154830721716657120391814827236415551552811188684368678003932443036781983197738552588302723378345998395598268505682743556890493500885206345747023914645118267226275542689420230335923505283077505026246140215711233500885455189584730650138796832014235885206143040589503071284684382959999580660055630306978340317370725661686154686296533499513777018534258809154166984724700868395770383019632816169999945388559711065537074984564818537624001702451190001637083157897447326336013228962800406842273043502237906814788929987836930170708768790597157319488747293829658400743238018898688313118302598723997042996561005938338573188927500463774986377107886122895516691629194622075823609381874928980134801429889732577812849041319047197614161590534299417909328998770927214875208488859895118655700332232803969980073599585108541553685788483544344981675716301582930996331920436324793910229916761788145341258703033980606246516750647852520432536895450170464198672503786342855599871587488739995559916705869037310967161707115812280672534132450336893719166657158427534568333186036214093227011690681068149169196511960184267138981365287192000291539173516034623044915790932565978591290488310708784953161598635156439219366991868960436105777989672042904563345114688654162103410569032533014591833679367090018406938458421027524411004389738845023906509561876821918129598886735003393041391959601986642795917514973560868691045996710650631573767414445963027120205081406419764001506037040331169402900899658781941568324383908288667361239371264050025430011335692168919865771138834222625226611668348105257423906487544189535329342312275604038591576351567732795410789755316387046348172598995559458394203430727534678008878163376893412222282517981156089448671343592928494018732447364376165441017599943943465844897153193111145228555652347728302649363218923317277322952636944271182222881222731923239390394650563843967099105597787593902174107886950165642698176882717359104073620223524684571276064942503188861727458369677263754777506019859899715176165041577433001118649485608633703848565138343424992594079871899521401658804945506378515347252637843951300606822216414525979766560649292918817692380136838641594570767699088771683996041224831339789612927293390678277816114242004377191362066370708977575315584255719706262294025257791501828499227386222290250482821804341870892538107663954844263243345320124794407470662124035188561817954339065859215580890012976806850720593983430895733302713584121621548244776067298869627759389478460949702942528214872632280313661750822209015135120493861191836844517714649629447052906657944232824223830952375929009860604714169921456255562864086472576259355799936314950542780434238422493821154926135684959502723986800559726485311804890924076483087337465312677712043034093722577183032889741988307754504197903710703607472839096063061907248949074088396958164631782052848165153170798052276996320280157464421977090230680482459997580787529214691388286737961328935013267849442005714672197904747549912650354557919866786224414817239051496910089693422025525651663741973250445507683056084090679631056309236956847690219935666051742535257298417900104753094209514084318995219184139188358726758874453128396959050068662094735993741104310468508982677033816178412079478076138858265490735547374048092048467813542440615023850477533446240592054988306903649488789140600139901783127427894570947098015808782381067801200067916016218581864835083303748864929442463650940083730486675480069986074204076460368158961442618477408054711134660734409149628077901417217330999648658870732523385489932672779087650109025907843582607099282494104266559862828956164017531688240050806251929334399589382105774464659904575261653824371739032295966371294020085240036159458594869919027294266441245753902271570182631508234496440449356641420755765116440730897495777684382140344594486853700037764252261654258458074866334772503417592932874394551798941187350730438473597769279956063569261008074270476485005994018071372192698770156627592133872392215744801457693778382788252367555164557708177357251688589746610022513955636979548740753483500008935187592333420605279360445141625623915748534303548777352523516354417063653913773244718758485343998321646212498385379278403879451114443525458882841475395891681406612552983655895439597399402527901189600024730136373741896315082000669939359215318783882197895770798640497534341165177913341813524348548769650911175161337770825854566936071263653956735626407475549309404808852051148516792481774439818088122318489613513476252843561894777028189543322071222699654688992360117927857256713210223634639857229206811236916539171333975225952914277282998634786345666831866492895959587026720482946414407055742901440659347535756147473835949979331358491382577872974554388187203973333212216942574892715996908926001637336113743452943385668783443318426844079815173392315520215024455589673370882986575969687399568158332031717334805218197108679508024338990572099409103120721567712306641021979157790483360430031179808592362565311115493830547474446485897372779968214520439341804945269137138999398682907173129536647632757889900275541270786317382845042548893662852696346691193463025003879851848641997889059580463427649164896336606356034644394831908017305245898935772945674030737252205629220163876672690284961474792146391489427907439465769504911809234029962080842901520121556745313977680506053575633220490245940334778939972994387849535768036362722415023688291948035999218213544241193712069610341373687840046114014689182128813943024885479036615796918904086743291391947767649691744753420225046156332015810638457492798499747255485096409419980968816569699416251138194319733569897229089385019367287266454523028867643613248194657599883585439310662546598922212966696445444876636077753126585827659629202557013116195523950848946189680688055828084815172342231649823177487019599710303624509170643022667742070896461466912136790972296053074558700503136874246080126323064363982141996878851470361005865726778091559928935805596775459275743875623869193647258965240535311241094876067183908771281262268460002849765940697866908063740085196117141246779770313845955655523253503354238214262139675034490603546192573515374949630217768888833830911382977427827887700652605347851847864618640158347592619342436607654176629792948090731156250613692100289838916928686090272745554384063213614343400658753251907836707985500279262921002862090646027139884374813003294250007104578978863667046263741035931328425441293888487608747656023202230683163126146978569391246284372525651356932941397077679160595959342220850532918695837955892860518996750180167622144217064782449164245176529256432530647629568485338185966554294032051488259245567289058702366728529454191960589090051053077673211181708357368085424223525258849511590903653817825702232068797394564316486693843424372120940779906442770885444920291289571223802234638355129327142549012890086577083703866599460463614736159224070164159093672703429365740149125873043042660882840747569721740095304022514076457447645484831455445506234513889684425162175249732938573086228355478756380964927014807989711343249613086089317909213014821723338645438143354516519112430734625243647018759141214910263777151924516778482461001939115585999225690704934173931482449240309611156115026696954813638605938640150296907582734026901578000794228251249469797559805314839411482253207344358025616987360533416295401833083218514120566426303963625566660111559747948110651110199437259177444582563251956460228168533543148861196989725466037405847512964432409956314893913560373449058817146115344953182888205956174302760648160522515063958907589238591028144205940807754688016578743099265219327568417854987528685453774267993350619217699988596540312227462145528527896454359759565974499067127246857045218206254571290899180424119819561417149265425809387567224637097911468720014715307255550857945051784269709909503347892356506382222143849948954853189005902101673403532671845754163387153436888924515710556796175569344486545748904214538211861066885328934253057187009583168566246016285454660247403254196802031650640035149121166802730337697260991487614785989302799086657016516864663583708129879974310272004591144657864315060098960311332504834869353536888515296835491327726138610302434094776626320678438503045324976258390931362756061008666505182876164237164548762626559882147745866122188005793373726549590084241753430216303305606667491576051160947628672337690278210345031538025273073203414212148432083518212689669471830845194351069146205061200149635331372537515497054276646625804913637819794834926943978592737166942609736875729136375096914068811464625589240192192976590247387079603213411766621238895903737758990276794443097183777834758312790252494133838780927592965078003711375848280860988575725468371621779709020605039730985643166500445832771643938799591564373302458563995483778525348100599594941426351155926131292737974026273616277540947582918362317555281864275231198642234743213631365886191835135268670923265094860450584891697866236935096612409463971532400816638223151703412673538511274600905958519312918458165324922644015796621430061525864475585810965019097215467927740215365923178738685336744455092276432719060707336796887115276159374593120067179812810096702341979218960309330674395222071438519854642855967839470718530102492033711532955430940599485802152692849609471837551334187530492981553920527470712442196954641483390831827792260468895812640166873108521416970959653939557870494544650462333567012713069418653885812147671917658229734625314344340037668311389364546530600981384663739597345846427828575245526595717738141869421743345531203671375588014500987378975932025867892778745880147872400958334146289329344515891415437574390513602728721856581726745200413902327997752507669263722222210070871128966881128729175236521363847787203455655221851053230580313893155543639610555513911971396425543389838980271632554228108490833144310569111901898096861448778761575522917555575925510351193265051836925830696576511885411532036047489964872460710321851429863026395151326439108648271400449307811442571235310460477188818653227808842735157816231183188590834748680036082938077755526037120743359039707225665881882630533367517966980246509568729367712325284594206447983763894423488375797668594798272832338687595077938593393104834608376613337712009851228821606993950013668992406735917667995521470278057442208404668943285610458654879971521780745705188424424141396671038550765340435828335425508920122132337316667654617628577961964513544545811209656962468904958715084681576399087069279279833361557998481467142451159615019017557879966759943409629224167681335864412053425664614889738191434174413027540872020999249675060868032250424917645860716826220362579852577931996154497664705724172025681579323814350957876423641384254829914742008237634981198493810534799006886488242751935237493891860200965945605910832345608011879827360015713575862856504428374875554726443627136631339265282445907379912008649754823595687541555456814661442234402220399865442849976794458390470447699395463456146180152556115632903829391134601523282901926993765652025569713237985208152869274726047155041609905936007549265792430125624625405062949779145908196869955669060826698576340696821187082930349128113037973533141874187526349138740671469112548184188897645737250439018009235307564672390635690898609005567462534318192378308898461436658865431097773412577533927070880796885041468044035874434530419146131435788695928367773704531081811466890932737841211555164682583017296873069410596310760301455476234206937340219278779796531652566500672558121867626030917564554459147438648706725243184098131591674196749872476864366117304297328447953638245013359252445417269657080333611968275943769675646458102730861721719044159309977833537718010266455055322972355605939782687520332539600933215497466687313953225439650927369634318493305513453942607704726031412792413670470464098388558464677787238669686670973570466775548832685201650836213528114397934676531575454747612057414673006918318156261562855465613236948438204285487618695498372292492164098086648413762806331946366096891038315864855898152976847868938546533899369396295255771754241536121540730438348151234442128039468597754699610052918073820796906091939495835927361673489652524768125442252253322374739636422884310221946118544745039705709296149981393125965114662076122904965667212659228623388808832707981511452929522540563330215587617548997157343153507776959584712813143793890076335153447137859484080107593253100235073541826948083544288363953872953630737308990228390911520829045963688599388553073868544497204203961459138191264783631218369523763733741755766328635129714883376208687491570580365216174217926545954297206191157493656880511043059895616473399105394086651630232663450134242248148696236700074087968866826458739332144442541664663237624478388030983968354284497859992361537047989524903236165756829890451626497671919289381718832035394971942601917665577582099860463587850851817083489648002367387729991254156206625904840123023491097229690483691240141481749600136141746718004255522150435480273097729167407663019459996910614479626726776028166837260304393399474327894403125685794337527329105201560718819761624574319696904673944454703452609078013980992807781514584762322858465090036452844471399557605482556755363624418896816816027305149651935455273411698817360724483303110343610741909570927898648623155523338750149381366835566141607055362688800769887674654953028298437979084636468876651891437892112461749090139599943088120671433798798357204371480126081777741905224608401563397029441200487354941523026206045298898268134855917663794761622081026526403179587087083554247296932874594132254633820478159958804560010917988128315724660478322877917822970389828511333463712069081942614984094422491462798412645685275965875575716895649056571060160198754513288484498023745343574139363801252769674062189895103709755529171611215554951741757529698875431291206707715534026752751608960050449769222012779080333834214493102375856995782355151164560202922701086205206134588071914135321915299338519014430433037953961126045528994756322213393193846669267187792692760905608779713148396027041394078540548373059225233320431718189150454372393127026414301213510641076759851268653863601780368185562201150555386149463422820575411977687731943089320098205959261610533057112167513482639238257534426411236619690250224347498842688757098250713474427641174887891478056309494403686938344977623865927712254631413612627159345386448317705203015438327389474919240950990983636337005285322662606178605625177884216777679896422186813905390297322803110393171267638411443749721996889406552175603874258419995464619780296818606676392237373413234599348675193485721893897042599302746994947280862730062414452809584142964677868379665173497401276831661792207683109684925426632926723299220484304230363239063724899515135080515767191558627680920795725331899669887167014544133488255398879095337904271246030732707096280210842118137808729616649310183255121459613765323240301745023573099947924467802868807158857082874073603299595965162071578751873919621720662810839208891529770499651636431709247988757950858231343455626003990506207527251006266941090584291636756763444120630376015506523436180118479094584435451094942642998303084249065755236010535281692562457499254675955846502732889778321378412777240952610251252801779790854724418431067752275296043794579877654426678127955157359269171125885727301340300571313869416317071663106108469706645365049658279229530010086462355471526106644490723763992362191227990251014612562867660371891604922092798138456680831961315274539719040264855075255021229220361321723808505599374848641716822055685385638508261151646604624032382441028951880606234878285767283647010392137756898216306571465672059405744326778662819215698639610460906336680144265527954373393103706438438777211551747652389668094812511957934396206159189957494756798748302217627586653952402161283043677031585413086274739801363670070771922515950547483004883584106931985748229459635185882677037661790982538177944057693384754756486511663307698775956308086765007669435008391114213429472469376935353259404874318817448647252131190676738524052223842444718365739774110402028477141000826898297768685674914325269978877099489242006511999220485378941462711442753093171586711377209424012641427953799760006866786875676903395158923237711144453458892140071155950259492801469755985120516002047312676582974284638140613995041583199036190163562072280616555848564579927085108868164851085805433432983389228435371874711097984077630578163657846613789345588087211082388250941885649602942374422267659791874191503152324800399320801183886183556717363941535665770474610901784488786534970505569311484856631116567696365101090362446548981909240084819045503979414286818133965100627471458921905004564730972009079766325085155735604673656360208153134734528324917795410756256655572224644844839033524726322030393501640001129189166186488389832185911496178257308185885114834493923324447384228164297209464843744303002098631216730572173120555843934732471870042706621132243195086809475372367953633661771047851598888826801933153472348171826934566311052840924321117645395647739640962339244087941764304410177995420283464974919022042791698096258872800334406708787941561618988810456180017196972344936593952481663351454967032955247311952882535909497233665425430878017303487219076941303176053518155940681224799107686525035981227107175360227842599683152111499847666730880433973545336698253825395024611085800196022889126472527319014837995016177459417306175168962123641811283136226541390327070269264404952279055034605165726973528482598125256045056437004491538031046177739703006949533531235796109367409022179826337380960189284997310793225159007624388429952096207816032851663803657805520243161545067059596075131664747468320884308920508406153897310532518764734717881773351201734654665544527046065481218370404105786008063181012674701112808484339516609879984159165572548398919427615491280611846697900790966630664158378923474773529800777158627721037216106014339107365223556082589842521128661466957955267566969844684846107587914977703395320912073354148528948398512204608936959324231995695105943294626453332229749789707115293184067044215053636676467074839176652030659622865983503652646619857572671133959129024387111171706932420251410087925716432237636985964585813420059511945007990657864704295480364412269123578596432106916637450608233707912702975741903080549221417157516139947194123963565435864896822351611894485333051332443628768511756253072554979348208986831152040158071352244344371901857805526427822720279840440788676782045227623023111234303319576636032531862953172677642408366740420803690757287995919922542078497810142065678951939454653686049254803690381682591614613735906618051015232161698702552711941312574623392137425716050400898661661003729934837277285505632046406675813699165510887581675737938537087293689748476483791776632846971175917697848839586253463183763415141891921583934311673258118119355902549749058836565374912403231282097883540714911934138520298770238697887088224151678257853757095774607192519854949326949425060611510289769953811904457931400993275299417945542807431108305808810018511208194211449827336054434264785301755575986108186149699566081717884087839985938310186968279454963935591695248538403325518080182475673504028448159790861349849386356818890102723270468607968326629038791855879213452228750937255616893305538872383958746962439328695828151955627060454254302296148903949514207440772787843052261672423232056231813496030759382122889543652698670520991344596280786793304136333614638808806159599115691357674906689225278812727548229320074745509996440912893230865737556873082947646106606500130645688672720748896513858111077783369385583577647045588795485966553791033528909044339578636848580651646033431343316140914723765168689324003875324496681513181105635553800269534103366944937085369201023650764801697121412495622539715644019194631229119589015775671085749738214572019244443097508647870795987042827769419727778841452551777851532863200504731487879940058229162688793894773787778856167583450253065238112381928396228071478754140566587509428476406664181669124775069804728069908231141113092523354739317270329844651392948942689791192697567701740197053401251279860056401200373302044647941304134116820534092569708815249340290191912002504922618230496374329845660047761141653700860683658383559275045412764575911744842170579938989344116137170314492952506726713964716860405730503897307194396702708803425901470730958015177287760959939127722356027491946374002860213213041032868299057921613811815872742320021247452885022076443297406149899887392578563282057687195345927518540833686977101702526170373225076684137000516618925256514788405881643538368867558241137539275586355874127003977430041207388898304917779816937155059404172143765763668635008957614191759868226983601329748412977380908684377836249443554862934433157466610442158843269320849285259755771658016538526371423816885723736694674364213039469905224997176912830716845720197228522299523279989747681409685193431714445471749118258308596782693503077375562285881054650634913866364131135873160267755240869304446302522256087337403997153217690631041101046985718030334433875864306375830691794636716900777218480600633157923893323152602688628731670617320572125742251832529115787012766156743188485681910242072268443989216293513596257293417060511307376635421630898847398797781227713753643686821266460429165022277604628199696204560236431289029102509743672477013419678861572454854215446796679471532295815196748652810180313946697599837683614902143383384392259976381412006865058784504917911415315256897346298612391795642932846913230719324902704047847084695513138999519207881663155693121253979397781539904324951349741377855433829889858829158383008805390008466992288197991171651311206336836857496112570971622516890255098866753424743634376802217275717892861264863582781504601229887383726956084139213629280955142995423263684316076059683979375050121585912035301921836854623452438395171837460606123268436714981057043356533572467873216925678234399273836016829511225626311530725679405447525454887638623974165401565446304756649184357097798930547500510121121972956230527451496311467822033855322560764554927839492951664574222201867864390267368186845386857441319270811342283320561435733794577129524599040235102308012417794904990041035849550188289686647969034915115068710526537998762252279966675620274322474394770191371084043665737391650986939011674590238569150473616852191987336887297377820979671116865241591159088487440115392368948250283240167674742793411883113587185743206770314076642616254353346968895388335332241288726343242483997003082082951079495904769276761756716509596339385884889284683169456100079262024240182333642427317952924632755893166401792892043690961785858614429573783804206179272145099724633318923890080408261832905079625946677449854608199132689934797304625791824589586977227955918424626488320013419682695983751510331666150743873714679852537525284519834559914881923297985054107361030656160715326323070372059146418569641106925696918190982120457675072837672017848059800347450618118959913274760536559834436243133684138042260920241398742431089675741879893852520331801395024170287286880347107605483364129281915473214592008909273571325754461758965815248478776191927611499692639517030890354864007808718046143714938888414501759236234082805844793716843515042267618321359010946829606289810319743114049962602804852760745518007185285442708509188687534280101365803619420804023463816188225391291797726147993459483508498384718846141483568303464871469104938920074684692957189699415358318486576659578903432244464892919376501753038092999230789290782147932694068309657853774547759051328891837010061553526274081824789750394907620575369622004239796779957049718710865980590867772093317177528416468749706385419887860131931060112959042353059875073868821923986436140693213068384949545488825948012418688535075340845204354551374776916461207668922049204471407844399310804703540406552717236112037507641397089325111650375495915251209351553146630431917838359945494305381320278202597350884209663004393949358761698118430558158755680506178249808079248061722356402834020607440496479434443662341674168755203288145801346341987440051194899260172305600010339076757930004239090331537382833415198808909761156542438386709390049187111595103663734626561510542643255667298738716926096047196775759896250242637354000680769701010335368001568620010262107631752842583405685402238278172206677215814449704892470573836365862182097513054378825439806626912595457340266441206265829174822291509618101904943442030086822650436673048747028119838213431378496861711636710885368652933302440612792945554221562518681154736170924452292321710682301505297487589656211021813986885007828444270525379650320459164478552981406429943080426847243554037441948398353077834246508460761264846737053283723170240485933667989588836346811148075821094657660552007218688426471080445944362057109296129061974572360669097246204284877678589822258077402633679087482796403921796196510102471408622051785845167068466118779717254814865642333145352972669886144351101658696940646659047132053355788804619659835409468833342270240155266541336339328052087250881690178252998262916752532663620471713631429404767982377968338960057113426010108897489657857605804658764107866137559890028728390663242250503831829097378495887943594683599240009472252000012017644886459857979140846517914807722119608790043502199329390370112590533404754218920756727466818883025666212320243939716276611632545925776541584137479822831554463137884267720202716186108599983999743112886685245699728892902538407645192080785387221172439350010606344431388366969935567950887336590445231697625925555997442369344549685591313202523805771401273904538938670138360116075484276709412171639741411645756019176752069436094056678733023479413172473828895201812053798289804376822897906771112357538720951079367602095234803726580258341575740232575469972795977070697346319991467659152485848545631685483745061874985082917838439027618137911791322127135548712684072135993233410869298141584487216177180438478820781128928628103899460241237050214697658495221230338416821767251150833461573175025503578490786345956320829738707324002161584000684172924353061867125489550754084899692146404668954750237269340561910005583959308457533631001809481335639526772476492336961483028721020907566030801198208327450748107899005260365959584160571035919299055772237401495204834893127133702311427220610271738412797231512216999125248398439920141707986734902514841265979215270610611630271466923282121098175821659853238151448941981033562215805591463364686602829562299799333415020316204906695596551787021235207123343701154032053468678750678470130562065692267759515927230691636578592515349156015626979127385324814025300118432791237492082762615336869048158542035121490431691153559052108454846812811366623528005505461539011989054505457694795103805816998882881397303911565121062412521030617790617398553478904340909058837721159256005914531351371681680767754221686431749533650652841100187385625088450386457217617637464571252778365773257536720483596947997404381149282129802367607811709169529179901467787952270112267644377299606787680159971826393642927618015775684341981148828225836439894297043067835465968872165193134111825108289068744141143344770537948005559583893759424212430372841350119875781797255776474557555571688313694652610980852922555078871340367506967948084141017196902764079835104082230977210950278512849526010780740894078969904815162275822953701012921404832547326553272783012959373744642387898145294000164726138353941052061894308194250486094829749236181708456783702621571943851857818940699920879423050598765240406154080673889111337981179460833301984983225131088579575828296621035863698146903864382575602821793314325175121211441355648895110824700510242085319537635107395845595883241192201327548421392093341449809450448261830976840761810886237340598037427089700148555973539013281571898963434463824453899453814277601069086425702646448393064490161918556451417802290033382981574045980924542097006230938475360238167242008196060903201100150463469946421920084154453070518344117749138086150557761188410209612239080702302171276703792816425831512683103558600415569619514795836256940269121233366471147793042196575002031760186652605949909289257779162485680409020952091356371986459394250919122370505275652696788946893490109127016018098138139249644478752224844068526804979108949260578825920108895457811102595745396645099779954950706326732551766097854150719745491853675324065083527143092289065574655711573785788107111563436140649176932992798966262919095868966924516969586134740474364340079320115020556580614374704066522317645196438913747180600913036791145170457104660259254431268851890942301046425799636148797220802852211357988875806461983783052078064882961555628537956925838328700474656444389104487854630994729509948643258396898262733078542174946862358438309451113787757278736084293245258419856021124499631623873775386959511453220870268081387161088678470456029936803500324905716890898821710037582834402963143641255472575196454543845036887197981509614751074046496581559475188230305102341316896326967563605149585586675386589255908503247372868022747223935238303042885737362259893135302709984368782064697319832471871472222387706199280581194910826505000488232411829875024275384658357870130716325030560803758156921111280312959230274366115563817013300472906481837053861026365617612115997440209997457600346555314444291296354296300470570027927197102429003343552714882653293957906809373608636440356452821356870391758731672755868030904888037033508689343104919127339086872244391559029600500156270950375876748306111935198597098597677715983752176890730843857944289356261326483174161913573669883727066714071822370527063143235269105301045331810792157210470619094948209822943227604972046624702232298624535679831286641395688132362837576599699740118598228494109144813805799859562407177552623504875388395197167737938561387582215690371076226194699482388365958004894379083402963428581211829657614642492979442996166985694565279158339129956782103749053014958596409371543726744949823759391293514586102824560656990147065055844210972540272902566145233743380916885108727217148631413835960010775896489686445875730922324578530761493217166541611122212010839790504684029452126484190175417660020163440427172731964690147456872189100076017011472557720945060767284757950532193319639947085785337558149159567711121381617936871511692460275207286489982335880689478473442543802146641144398035432728286024925623968739687773744211353968172886310179522072108007163149328188369843062000149509271159326371706443054650624733438058043316001392216609497569358662417608495517554817417903272658120234557015842593411212557485520194970696873555741886604017840926784538482188073990081237436593919514485375627777145908963378769082328069600284772345384305353133773275992118269655904966319830511436274500346268283521284174404957779090490588125944505653030357677383741084128846369249912925771060782438129891118074938261852248833707178335205732278274674657585274679491605902092792165905747896630814655519789361813417745743119181362669054006165196290095477633150385688657880030514365352729164347626912917611184708435098749345011690132655397221798432837730433007150388121149755370175189233454211752549163985718214534593626911157244403022388447693057148984858808024482685884161793698680635514346364851760985923582448978197677758260742550994605126606652807722905148478239005572314502800048515752612357706426769446034523334790893397657588576617497765808639312302226027644963077363232360490113938085838713971571785548424090060300982331277540138939025166571691225336942442618147987856846351772208750102556253749780860846528528322462405513552423589001609265171627939410122551082592382884061412575058424250023490803982319634598407480828119039054899839496337626773831482913135668132096241403318335698923173579915646456217481522706246807777256285982596294867341072354057664127789600295544950575599300939983012225347854597609399898325726410114493749985291376217337703823667070992699674812793974630957555289697348223472217715724835969377666863398713204972587612645912561301252745120053447455405890766641867217777752056808749500531769349431675906909406146490542015360452809583399346806524589526668806385930769344797686912751212389781092440288097757224479925274767411002008642996701412940146928170475317065463959062096411827294775601111106570894956913505087286302271506542830070821912357811540217133729313559391945788094864586371745842198740589048195422212815724802527552666410277034240512020864325671460677039106448907857521876068510229066888048243291276707169039001598345096675329693316429078475726419847174470476377969550581239681564602499712572491481780573241198156742342984469188646958830768769680490179662711909673750714777003805469532538282163488279097626558015572564201641968326756707816201318974504261112611355084336468621749653340162346908083609695657145832798294547780344081372952024971674643268095866187714909421519569004410527789463979552514706731259091037807260523601282397971207134537538861287225416228013068164488525720198127060974484424500030109851888598639274256567840144941588535895015444958743021108812366097203324084756892733339578219713804840343403711874726804114839787365148188287201976381083874559709196530837647061199455824592512746420174227170606495162659370759204953034225167920353184070899671153296205011227471346854900919320029398676559714662974864903538824393882235197345295133378746465618453039323069865663471774050970204909413393071187315075197225340025260131908207203764854840248681269436102717454973333093223844695837870959987023363494298322568495975901819945363531988545350251703729423793096790150971334499685481910317077445325520031217695670690845540444996571395411087112076509831599893400278936731623632844220837840224590616981176648794233307713428539837228598722652297791712248598195965800661594414009357182376335368599552873511541719280302514201897975294005959300780884830593074378834439706933925069341616849475816378025264936935814267668909815986852618655189933079554817656622459680495759612365896664754543095335484820600100305873067963875277836135998144258859233975792960974101673352075312914642968324048309943830110275191282334799355205883163377950102588998360714456236279750252182273308633857509971250114332794790053231100721262548192314760747437913768367863577925659671538363426001579294517644847162055008500819947176856019289346466328511787010901345036261789810617039071316497941506347375619594137170955980709555334042837161152357078337551447823804244470473651665754269669066974892354874862394017785507918602985677897744269519056710437080091402542963439872945520502707506493264632668373766507885789360579870462132004542978539976461640865184932416634882554152112292061740918337493466285120096568668964773069063527370442315616078586096160785341617640177315515892488433032981021848371995277385176663459382790157474725661868860557171198875831570489987497895584599695202056744727190520001437186622923806693097433237001863453328646944204831442485884216233901299100220852568449834207234442393160502685173780623814147846166017081161049781605650180616950208085009335981490062043402498687698896748382167115012268252039319862180838152700106115563824368066925681952660453694922561938430363365813772250436381678482272774926288211665141134335410474243832987940177273851271987974712126324973606516400479867069518623019137995787624805757646804822272697029692008824969623954543006683107252669123679375822040758117082769030212089411426091581282215973997958812824838329126184204622064216085053061173011286456640047456600623577365427004011734671698511004671660587702622577395460341713849972759853294492641894281734005135291436300837956716881515142051193952596873458650436795492636235733260122483862983842588877426989409211429765381927906396580321357184893447719155240015300328212983852654009600050190725589794676950603370648982509784312486212986675316971903180384797810544274635867100846438043085908648009363150206903270136640938524690031764664881835811334667282433634070979022739853522913818359160833917597310714897056081324741838453916503248245956165888888514293089844465798509637220669356311933998977285457272750413411133876458868806005616460570994835617985435520187547742599565092245384840958138978280409073674146293278957975457266480419584438309136994382404640232940776882757370925601113081165471363052708213933967695925161117869687576069027601413211368113426738496991667214629007225111305812147327693135777098309390220325324944416659369228570770975911596852344372724165217898555455774461195711675495124391757079833666282481242413204705124126271853654099500041933511789438142777767127648101617183280233304287562026664670767246033865782505966101921992721200333350974497130622524131657786183168280169635995610330950050068402250322901926335686721259329260851333221482546031824988140441835924774249851431118667157849459962346636965010259000746823974251213627790743580650770813859685953874414435847893069683952078786043112250151833122885588878277136432123370296961831112262707422690000063317387343547425509048864282845513532652534305699560757727128224002660166367189828449243910388892467602627706014785973469449833704956536459333356067620671658156020792042720418527775977736105139843896356862081066500723598867495932036451637675620634900697959767646111514247792402092590588364853986265065587637965045081879311424339921420243035362902594820530639500613891515513198118468564643948353082176863288051264403026655663512763778980735879779727656684175649665834302660969021248510099064567449173666610701332223512362856545194168006533763722872264011365586357206447257841431890557446279994023749189618323758154225688730755819187983216847204121484489147293801414586688776771151700530750196209942082212170504214190523284401646651801272813525130837213561531381177992521408176402715981474932772575235258046468083454917501800551980270585142181958610314693354442189472373801089597950436207223540463860745570897716991614599678116885610660900819315647046943388156448344236402878639349466973044455633650340650646653989999568109562362343969189436376911947456635632054080978764725239307470875185755292223928122634581146600696908438488159953747821170012167264318987873360966791635241912105654748864903092776889759066836136777285072660539205671615921406587536620510150072122133032816703301244345571008710701238900211090053617175892379492465852150635959238008042889255435763512348153923774652779019069248491063791134536131959954865392293432700929592082911758863325627568352175901942393327567501892111086223439214348379584872353155824936294495297601126491638431283609830855692210084968422641016691551549703858887980999634000745920486015809873334938642595883834377251219088912990679942597212552675455237227902085505225614122999687685756753289998835885354149944271870405201658313029272420047202761720088130999992566988278344637114710021984440800639527016051053732358527126628728388878713085069651060421746587415894818782311531231907053748784612036050329600806426569551575734994291354132341367791794510514178101136676033286623318632881138368760370984896128821826290420977846655979101990557215947167826123104264113603771865978258928264096903423475428950277780764608013548930218008301115689062647339152060892599534682313946823390067196430798527716691156026013444063823759321966076021056456180600294314304517893484324851551978473172465638164775470958919931435550919569907384925459968464753004271777811953089388416897755911773731090444107026633026658284545822153916279201408451740541677333879606897449170245461379889540790369520327051230520375569444178049883627527845997788161840522597323839649594771559274175251278659859391668001439960746899921915775752110416075569564567204674205349171911167359142513048800337039089793034750031156285963802744502176021372096028814167577719914663077214785614217150402960528005998038587635459381352574637241100414908667516201463880747950365662993903105181332814335498372990038887926121977163674387329407810634324881210140801631766433504321750282242715333618165476219650464602628171831268537965652553490340162921868565821486418229253503610936193998915959810069342375607500664424964169058782316407745244142263508806769472979205210400855371223121518661966313788861810302364894922583183932978072698558912070356757813263809817869526930707248296867492323155361831109619094376087202393999797336294001013085024733359096941032411017286889979725348929234094054269698000363973656802080932680433905134457068112236786513976795292012570671855685810907157766601729558163660770935462219729464887462460413790508282831278892081449985586197473614183238113026388733188862726973492736130177456520250339349843726233494986164176593107701320294450029397418663866751131821786580086468629938002702589830880824513327112011715219434353763291153295055955626553534857899443148411002247564101337983611369660131483878393543380044914185570094440949868274108761939747999420726260398705052886830374918370080417359890446301491286275100132340055573731129192067708579726722264154467877544703626280495795020279780438427465597855014494051414717136220219005186374976107321620993796070848062497541444456160050278570131961366176479266159470065810874992029657939129313564097401287405261507750284063189175354364714675228462007951331710684716159955660651402769701459869487400647896488816837365675078804216059663582733915222871162106235892458844208133215538597278073952034116728029554761568819300385602297426922999500816217533712293266379832102828913616050774772039284192554448393610788437975027628232977870598805751153156355726352041383474368851240392264893479475965580745342440882417563271528960487066113578263937614896855125331751318055569774193388865990589750239677115116398583004152708899095619579135786461328532701796122380146230413767934534872404999741698899566807167623670891981166941790866206660117182705738063928272709540511269111244624434719586286146002072117797017229595052793717853745675502359520107913322437124366795992117000345570744886950211858635543107738482311022502796278389732365425991539294099502021550804732947634675877277404413497341035108152104428008045050018738915642651918244581470707768923836708567951656654186783018126048901199440490667069372859900963774022890977854111738040574069271400885551302195181456502645292576183253762529474077462962351674582248350746266397773254888251564108711996011656404714076909894107175869552851071881969527691733989505597074643142500627757695040684342251285619135989963180037659498846559494168544189168977887842131578090495454545493819383862577624937549877671002491844018194059974028994695428954630364936057734519073778369401314925249275396363452964361579447554774749129056794898766251561226257393152178887351209457821687986865250195434658723912621408296897519018680417430114832880797885385820926559653918672946490529798655003599205258756601780764776781646628508070866651047720088572392686901709598403929429601510822788010991437471730999884100587132072219831376480679904772593471774621819814203525484144731387472618635861413271718212598171194352536982260657705550828346358948345629898139935561598713395345290702586660778017058250540623573795192063010622489889487960243206513545685425719059501684743246869231900208166901155789993293185048567371325884456499196964958336276774692885160421800704134163107880916766463738560106091987688680815656905764592052290274605352273075529873826659205660883748086463245988075927925594292541694235392798703349956428860025298794349177333677013143848775646219545787200175099279189949591909194363663836881165734403657995939877012836444145337188451576403485447763101442550539382135007920325727614306746133264835412608729374625012668157322099949250094570461841083810749101863513696053978198298695458503836295753105798634039323036285285732243433679356999617633497144469622491605766354083130889342819909302038690551749802658681129646584320174687259667323595483777038725863230700755247807259071996908279095201372528035991022517291643977004289186989156326713726049838736437875200510790468622530611726789944807453995307389941441923209258407132703493938320120420120887451511548346286130874778220412412165243651607053514314162017444002725720935423132331376531085655570755357061343876853794280761818937037167342347082394064822963701154874121570879469687298863677204664315831416983871161474169645239647938161408998406037910511227780381604003247607626408290990584453840290533459642997075371387320853323660777984667884596558138758528565856632601710304414234031732096957477245468738539820748422247533179482093402443406984604909828216906191602595809524288900894021959801668066665031053356513783804907017332225254067540853618839370423141793606521757373342008912831811741065363149329554909960787780891141069052644934187430999977911459624436810258396803999722057966238145790579961456184971748077994180443488968099730105209344447419241608252818237908310039009498401879271056712479758591045256039662629788542923676380673344188687411074763755147594407225269758366341690794191564380396800456093147921570972197580022828917757648322789921800708244859985943619410966725492508859631638363049349441884544060168217562479976905347245742151622055375336161754670825085671526150164739724476766757657864993551508147589885857436967187465893155032988790664750844726772427124646411970419507358965788821432284425303840424758250035220854209642350610879421448942945999955937012667611676606554858770051358274934325011306808218155324594198550613574416910156763283043609899526716080861656407837937144474928516145539353592675368650435762049526682705173474507541821606441698803188356963781948703271155488820187391253725631616302571622583102478406043472341455727503170481512737677106708569893929658960519614964948403124065663320502422079570781771368770383280762585443126849288911258923843616200881155544263026377921643501856353495051467115197879080806774002231461229866206214518557579232760911027177051737849664546114264596224664070234466823070930406686401392330092515156955066807618891521458396570496045858421605744896405401118363514083426599196943345187944824530917499461145025491153733651847912312698319373352886034113928254301869036900345619592542601926375165218582530378208487332639184145127876792804580146843700993410347185450301538160399566821276720580281959742003386360167830611294036588039027171135557483141396249243198201156775921844878859174468795845002875981924914174895896169008682233814331512894937889941065309801951470824793396827790901359888239785647524487834178431773167611425592520460473063262340591023889138155639119040215635166783348052737922585982390761570092927165149921193695464404052862795744105355764539175227548632202544871166914739012153895320060967872955537037544338803509012547622990989227340418732115154398538973912522855802218456600783190789434081511195788546286581061629439944118450078178231617689627033712264676041786212568129811159431376140399410576447967798372265265631478918479436193898829067701231439410624666859600837366269582785668994607806599312848355718516242666467139710035248636919424588082500617696914918891905807777537665840557926008016227929726398817546339852854595815986957111458987622629743168030428495734230156292149018498839473048026227389684761198199121046075808335260709286949404406599239223728991329093170801482958016057279388610199286014628606414035130035737895266342452942301905583845368644998608180490331605731943448098678373368494494533286668214910655267926625561184009191134226762072365883383080074699831833133731598414063468928471306170744827465269854934528575281630585027281341849808742112483861025438610855319432930607986289339240898920698372329536436042490437319622306785903155097939711297255551599570920695269827876499220001250562060398003918326989963798775413072597331937286510573676476441980691784945424515121535103928531168333688583966009514052849280260978441486350976360242635838357750096028882410218146687342077982116729608074230139894435843828079861604029982833647926942466802852127206563731994565707683406888531566558890019864289851613385413955763727952710933916419667347603427358727352196192611770576094006990794514841474646868378235146847527024618801614863275418081277495217980062240821439397407797439362221551701789352672477479860357706720839316979855416596208290431662159823286635057274390427183170170198357280830900812024178433211280340303697623975112461817194681552370961183687943646540867961704414424802653048500645542011467554374773151687669901376993892705682941041985025476958788872677743452012851663463348477398204006964736567906476609508054424980999107877659272291057459824347512718229107236064551487282728081971574786796435776468836561780276696121059418727522745863838513199421360833698170021040998659360701192789481260221171519027824536886076509660001635734550517706007050943672139203429883153684168573784632123765687045113447695069764087248166138212221682866939515228469523184534893689691229370826079571501970315702234101104622471537967439582762685754944226594373308341981156228463255867588602251437740702752939378849724861663986971946567315690904250149446956635669315627723478797716000984172907776039389526860374620458195201081427517538638362375805229186508815394458772676269651968316573088167276524084352313949518366570277562489848244015906424425092647272004908501391745366375490432823139362045551642575282049136118321205975111735039273712970675399860672658144012678829341932655070558322545031714283809557360599393276416166422638820164587290231376379335126194957421968316876140462889311217289691679591722685229525440362738440751264634293543697630591143692291881515070759134705225154654916946029784534923099994060056329247566892289330907003471321621014535248882188349958258407800103349408918233492739286047798215572080992860203229381852412256251718944635641053066142863869785545242722147010431647401503645949786058456917250837631581193727848820364845519713491619035737517013661518471801118220985046910339636423773537657398785041797043665946761584012344369136107051952123816843300435984121422118004087350377941760295691671543878171844981382385729270442011323351455177642431895384483192463717306879638269661000341547210342459671442409385022711851382439896346113121814714498844974065982467755334655247703375845888799681993673108485317267589540834131875564544907077202918433254406384354929383836915714323513229367973718965306851803350476805542987364496370145259508907579257088277400373644757998096267404277911685169628520834172227122118766689870705591291876322605345187995352918148185920386414938662937346590415996863433689695689112134319989069710794712098621988147041033611170928941434317332889848485419395919542791945130601434511939269661302768204169689475197767388733159560877947590981035409058588469294127123792352447967635931466481364590602500994341332560092082788990929458183591214485509490115958670346719898008994591897387062098975657089947443540080923357566581180098537649415068532125395012497107347450389018136426617783381076293464406800278287010617171953697333789463354364907387459116227503708272041460519879560067277714412577111258870541929549238894100002903044909700828991123176898688566408585367984309406959072361407082805732142797065277484821883411870514278728362688180984315586629982496659003792190274094026205955006698177215968010778447779056574533822619369391801237874170700309735881784864186820717114762956317834872077132820254129724408309374754038702917025270730710549704792206558328615028022854373306060497019726404492958882641075989950235390486081871763864822601950974227383524554156612108014804312756113773787164134707639955205130760437962504705725025983867043404417509849909183417419411644170751265559931379554631162991949314416293304721789247933750620068110888774285943785634550477707657077208168999391279744811635945639692662284723098777175512808918113653591298098802422566193121906665314861564584751371169269545220446794058190850385317570908404727646966771971201877908186726372327522112684264917931678683900789614913747352793483140272667596810145092888059225444304328693053501308495643334392226932194397461239380437457535743020911860810869291308436964576978211681582046650342611900150041586327507964735332140304394607686350480342739273623350600882026515973332149580846508896203987905853825099177065386678942544260956866019260335471429117184801720215811901610579298872588722458131930832378518666531007195624899720774334817733178500652092979607799273488450684508170894202539210043656308478250451358196519407253656687377773566874994516335863878687723659386316377365139188460879576594008986136668787504096478968712901532871186125206810454908051262669704361737949940107695321463658944701280159155022801027671012142085671819548523075808081547416023712999326431098562182050865382624651452207657147687368132695563397148449319630698755529271753768213354927470245052468925183891587985760583736136126936867948198895810051532442203084598221254793055566619973454778174687721309147833781119851942191324606878132252387555599901098762040237178251013422838495762787307377551097496722369082320432559692421118856123756131957991020673841061068486982215968132499139547157487464051146800838793029275302978326597392267241257887174420295263951359777988993549088156359912371698746784361904954115335537764229100587887051704939263656740237240284275407389914075028712753347891297705675639678270299650532432176311206735796967436501079338334921610023357824763604092531580270119578539641180938740576959055787847965484023167824714405579326490240750285182383086230793650350064372488150369534636318999680396300097865454447006601544525569271329474102835975882031999740762631961624692410946645415945093020751386686284960055112230889070590371440728957835745344519272672433101791569488786351988702770621700933386826240154729033159243828210150729918029184555674936605057899233424408398779058379978315017878898185966475967627394042021744139467990558955708624538115678398595645991639815156313776420728703403825828507909073914974321917033721186397656691793190391262964566566999364329474575576057239949519271182358827340170388805082207934249746425585268789349496400432814954292739269235635826643084804866010287115239598703874437734210441983844389194487563706787831358182384261337330916659703237299255864158284904178816896237562229974858392203235326259112626013710149295340220885754636067076548832479911090450437963059083804768585037780884461952294432773405152363404526094439812728724814985941478599827926600705838175071871747117491866141107675299342201450206164795245489066453794508986111318691985696499247501752605355205427656173280960859980457455798455480185761319639163457528666915192722562190604108411521962333337628701276549348276084240157627538361217399844358651494279234363095892769033540921197758733627295983739436710858008017124857918541223034655809077193103400005030518581160017406800949565325618005720380582874316634939335363476775495891868850826349729742910028672540718033542475037660796889495877122285548154932145440913798942609665524448358150705914789179410886101896900665466940010825032719881529064524894956826675850711030638463078539687490236812766756150145533056974252097900106113059384755536170443620978277167829453206519853116468906838295382488649347153293357630045679314397135293962845215952627206000796267235269673561487420812263443858832997630461287303248006767126296870198553561479537922857068142691992519695486702003766311209841718873559193883713909875989610556993539294318541216321910043315367973612561974526195955526377994857304907216565579834040902403405897510995524783451469060930650736606587123034965917184835839042258939093391841925108855110439482139055762851346374379201853287013139846147930610160812044126066587702931060583590260306801471247168673348188479315614386362016948304500816512127702006546600515108512121972938443776881243588836211979947308670200800502635658062437186919386524545391126082048965003524978004883028232162602930659990358424206133088302777097799504861308562261095883771150684539782928241137223381950495964788780973479553705862743679584601515273197642960300283938138688462681614207479818238041946034733494125133979075094631352964452518465216913944784776167623573736918665215458923232739377972263873680053396479016933845355468543532541489485698972389871993607985915084995671294229445180709023633981123457679845707612561448037769465409296892187096072535663488898370233942398278093943474939067376859863965354337662156953694316797345292757431669638251146006659570320392998970943655397853363562409748967616847782651935524965548151139826011004457679136544944741164165252944050915373330460688437490142157831010766519027485535078660998060468841227439198409897517406687344286880608059221374409953482130160953016213161017981505051515095215351016736505360543190539725816947258609214628288935401949870893426672061077811733746606312647790037190832455458900180620789898164615346636777864495398126986139699012888673638813823213789819099735082479489642629454161861231762170808787357688729845427551207117565942619784362016233105935106270126630458795153958873148454306057191102037434211495848031304223047332988963567080994206171806559449206682582139410521501721790898072214904955953469978687540167605164041077929240742201515192662077236176328646857167162142940497143550165803709184957918325992418575913522506284441142631930662502571207332284276969883331609201947301147016304151489149455072984664714652286194318991902744874614339961173634373726503519070104030608086377643938040975841405352400417364299129231117964569159863171230390371242629330460872861566058801071909835052170277993027806681337393482581554564597917729716665148233762666883881072196371210179283057043718485558115238609873414509241581808423269967366161092194362713705689132323052914685566838681384970257840209706593432029478565609147373432929417567661095132527667646752469631145622869309443252011779886544886019719182161581451658158504915152868220403477386129228198985337836041496715563372568978943197075324306279886309862317900245159596783658876542496204450055931898401599861376441269704048936497959109076501342904114166189351336310224807990717026570576698219113553220703677370489014246853299137051984370802853445418666835587671096508828968129387574107029317799155614208611583811161089117478208540805215547025020749076499628400270082712649732873205852224321603517524803714694862930158432448880384628404452112575030638012695388510309087615652905622396912587750391726345682765940492670048602931648327884869050187665137675776423345220463744715857717528617308210840673209812952375449540036982073902361875715659415411009157583732327294544774713450906404177741215606716050315904628421931026107399256616132184870085649522114208147093260903136606911867099609590563098110312338332330367523734944694427104308664122418770578454983727914781305054789575625798539468879225649618008942029211936766432358325183741869197058000144060957320480935028322362383289799488169297268282615239857497292354929639464646346679212968030803556993630356581067827052983648178698916522925591664367456789302616867125817812041350268973067303724410460980949161595320381175269642187057877092999307358005192079290543392809364373629204146902431627527378372362263971014005979893668586693362667872334503156361175809625365146507829635364459057582505801968862363961969346214339049578211516896132220036174244819986098802788162076307942411475651946952659532447416723085897964589035128885008674664998192042030817489658884345921753540882339268719809718675295705981341960107787973696395845047381286722992468343951462084794434042060370442228834914864595189624982839310763674866448368645124790006818739498716753832927316900704547389036533472216229094088839843084454711664153711364257296610728092308925328645065248222602644364953445116860015300029343881141064672357165341198471712581928476279675456661613730257131431541907314827552693663110301781403877813285114864613479719900933363986491875978949633662236147746120116439175191049773807084549455089542662185705230793249965311190618889813187921548511470875879284607879047294715721135113572864231422966945722128842765738106380212021001493177601824329584996560528620851064127135546888065139731219240087042771715453533733254640624277408263368244958550175459580673750239471646824375699240566950139390711361543896914114075488997385218108286558958330587210315776623276440815460402512996446653881101076630420100069418101540500974373753341132175492718304908577388604042666408018223345678982784306204187485110143867156394753300941848080716930214404957058779306041031425551410265203171350861655533309455967480890852627491810474158047438157600227118084574207721089169242897022219250126420012318627966942976470692073670464463409883346527481692006956533834850403980179473473244358775835932560639092456233075598875201176687455690348573117898474976046594901486999118747812593289957772002991801332582526249359748861274207438982488008803636832526562597369518752802773126114867820057090144029819266537610134458135279804489504709524735491418205023937890089678275997738936810987213998930486766749405332092331127595659811454998077414414531451625822942220533718898140096028596970855531604626326420029774362920139743989289760607431821452422483344187946621790268615481277771859846721098545703401172608841910774781452931921335788354518888521294447274954192641062072260372316017981341199371303626347738898743349450655949424250975259733773222088785112932068653199002131675739398861254448540695980953810752543149166797974691711718070529846159195801105366365423085359239069260511558973790162677725594042428372026363771856736931939054613638473708998722642159406436271461309066004275735194202096257824832905973654735129260949672909377753049646077124046760657778447931909249494762131503316552568764113997785499677327494784941519503937605259117286873369647744602804003863344423881270510440518674507021704715765180829769204049080293419950712482391837758189822356253430197108222014758012696151272722805941922224490023444998253812193695903488224246756438595344698670997499496483652211865573328195824560348229004660897338535791654168652343242577447933929538471149223780248507330442914159144410235953215800002844332550120425522434849117769194556033749830541094665821572141410853129053729093550646366730715645223871564622898275284407871876703447624858780200938523060821745962609962552845083255882449358979752706078010102254470357344508927495642368646687588542374734510535141145149905735595717342066620145235227907458418110747256737429371775258105242419082948002102203596445284638309359785229491345561560527391830861887987761682510755382051362443611909833681043293850501418890015037291834227638583611711029264781317933528415467848715882647124901887626419725139577353006945220001936103308168832971869434731797593924240962986678355820381479023959190251364895050183362938968007025741264144821696835699706083112503267629974247461031199166439457808001098482621399655721982241408721511376454177232288925168390839750526044918423349168688612185701131103841352790497377170853218732281252898341110373894199921572780633094402391026035945630936819731687439564591754059907125674066119387548551528780224016279703448715627648232291300700956883289528391221809736370878057939452054214323323462719001553038460783076888738648615850632904199377746018956633798578143354027003491753319302808574942255212056644685745833326867574521748809852431830836461007152216789812700703295739471751054690770951145216879535883216111729126266239215458434247464441547439687959221492694624281815333724159112030115379459271867851427778029509184187498812401456796093401019770878829773079476043521595089008397206054020828371233322349289860732099708690857333364357840116055902166449719801008490097052241088884139889194094019410590775350850084417828725219361622914674666985431000667900188712350547871484533872796182209666403808124680124176708538115266157836721607431510072064179831388164284348270318170686447876726451559226781091281794128716051657626347065418327633757114205361782965350615723164348532470975279237941933541305652170616814653362886028046156306671403687710898699495450166977554056290734808451933311574953375901372667766237770561090187816479929408671979613113999266548097268328533837939172170620172510693128121408449865959553267855162326140307203805394284118357982965486468203510373999411219014398376475910846867285293055188471144460259146021788441158922637692738451583339361954468461405091847340557182123971642363740991599788762713531887638255217070882912869502311307368296762230394905394505939756852890200959185559032988050103384035681279117616178512838736984465179290071297524294505252721443939301487848212314990461293160580391417131843035499585182737961153150821908605962978173032371144438198872896175942566671012653738367902189422406694093377199319719743440017845556582617065365066897981102675834669546437045286202593828633091270915103545579552394777916523700243621107190553584145232758144547519827608178890707227189626002561137542675510010698379917069368933914059365587759453936781557660106014301438607242039553289100161306065463763149222844385191421030236056871680443569619381563426316538130945155053724649094881069189195687767957005062507536123186992872563641137140874481798248402646262310177644947852824816753590536310528370927075693764728259757626160559954775272574422350955384328559944341413875432505975056541084149770702533877511668152617447583977659635947396356871367597016119521249020888547101509729277906484917736662330116870177615085763941933264933196394620794203140959754847052886690212811666271094960651368774026189630266323909099461956010539875746567776829608358763502914775733797062898238920936116582943075188650476807659298500488058683953354873277091640403542091734690280539166676852047506405737095930774716224387418463011233537798839190119404253044624943130007151095387720257547523436498947332481998956411497680287674415655014599034675551860519920039689228484355401345133232418317463806910449399474688268501435853834886995386603495266364925845923813600643565706145749582728868859765941016852503167946329578915239614478843911722070955183705342887846324243702437045452253239829600575669844829602991942927341924025895877759780157876091115387545193920450518148746617035922748472337548076866140504287561202419271819141823272750584235500503580135748573433707193173550119273210390682904304704381134568527452381061113948716324895816114096126102168490583898281300306950367350644164889724533343112385968341270491543374943776220838260366654802289587632254007102837936087568289413811528807734812538392912420843114222618431606831316583231480436488734660837602171842092764600279980141850492111499488929461609114875324608029243738427995566953058852616290851959021427862609584927941720574167663553119248544661712496555737290206004975811809383744265948614340074769127525002128021390790768600726588645596429680968674825539724610416072221237503043543268025426905556418414309413146625050013277120499071385037753080508957107479917691296914464135451757201715358009910961522781615081884995681144551277737361921140737601206120443937420717732523756960658629605389767433584056154389012685358836189338363797706455846733577872633800361889096814457985444473697684708947856749055813451818840327429605192046817264981828679045732438388259431557518051104236787476548909179688395834641204181965970652535050945388030135398219592895944241289767277257936837236316347638889065998945674069626750510559110817689329611089251551973827122024810865823929388172493612135012391156900222527592707096359330906247262530421976497404413445023521824433148625887269309258978745630024849390826725758677066968791773425869915052476358456238082916505414266245222161035643291556863463418473502708320991050763204720990001911498073826421592551738144406138930715516513616409392455365017083584807881628094644753463839637576336208794533300039079458301014271493041177103385020117856476041464548374451882388946828476196549685909895885370133227424579690052462648744745721532037651018076816102413112465443795657613490598649902109835936202086290552765612944529269775024125735178885811124566960947519938013543830505372396526644370734976891273747439894221016803311269070168046709721549640146837331010814461671363060417106379935599189933318268926062359094202575690415281497066998233458576117101071766502336052811890950498062228122324763187730867699463609671746867584578262717693339791040605940278435738980028583432037863393380385729427345259255343766104063394977253951454957208039644310815338012989352078120511643626803192917154877587444449177505256189702613635141011165019096529451949747296540257721837432893098942542117542418980042665185692335489083282462324946689462822144858741914529415814947661830947407313678581975402356372606376895124219772233643448115000711001664349843480841412773335169816168237201871487998159047973445627656752265747356708869817586606059805552971760057524194550346028075699904359421230210594579352602818728556642529014305678618774878363514472432648501870938910981247447383273246805029454338825813972909637890571880420498820637589040727758110290391988382415406817896351615883120580281478515092854318236675774608154219435988050401221966171317398514324960305155056374593238146204698132400294714545480084066346475815620922604371749807845187388248093341176167394904652231100072624254358389721869768059518893019202715674729605684079009138532193013777708989238981727121662981624141173249505603263276419267240305582678897717367962605273213542514044114960429755713483039333688638695536402201421837198447778605104406089196476181572208784937917854911130194585587063415418244170257590116766329383025945006895837116871544199832301468847659765193046871163506344914679248031705413787484934049147043620231340840042616380915993165445836308607442536800045352867322748269191137475962804817908844164619760640568161536777431752361171278903161078336543787290100120447150951915255274993602868574962704041653697254188827326039211609525787277816482734446762552414487522000052974019491432931585531517681886042313716495726093647635664315359092689687618010649518324517705901868837089850120029498415837186380219096664427138832925271156408404802213794609894782339975801261163441691797358197364142211017154106905936074729269883656138985492308443016972752063423220989327954603685045878617386985335532290094196793960077402121617992717048467105692213959664902190203528517463923041377412960237430099200776197289268860077141467440562847670547499313576885058617936569002549546616656776014343240514688583083381371616292062092931855801198219119296646331643313009070638708317446331452913559950478197793527371175850281628794529932973294305606501454109473027519480086650520369632361132643602260755811430257162730112363603212553812011685919182275995296337765886218524459496331054359224448449238545982985632466641357102060937074090171592270233668015802010419430524336384416387706573372610061595825061189898038102348117743724335549917126007683144129573247101042481356103684173124001035786962022853090236224519621379241197436239587513946566405410798434021496417998792389170969037374342113562260594646909731133442387274266040842976412511096627852525146503672554825911936873714467889035278617683557506363426796424051979244063216935479090098538089420366219185826068669817629994575102643157000585881317147232717360132010043554632253364919301022159743389627750388729976305518451817540469394949873731698061856759432308346705192529182829421995880198572977300354020987457698158743086500224262308489088013250745154091889462407919837359629305036964369769266867808854209461279715004964913334492441556090967974017715097054935193255724260118469863887966538631956191508993952973165619209254260261096482093355772509565567771532659698409403899246438693296362637682217918235161936583842782392789280424209481383075370188809228288527796793444375537288273421740780490066085446001666696237880909050207827115948455969933649937007483993682268829471608979898371335154231289693043230685174598949755215765271247230930055534136633740350933131580895438199574856487733764987856159099821754813125176458387229509023763655239700256770321079582800780788834704822486054451726594442549163498021753098329468264418177678415412508908478921708014961442026630990946631461023291128893510868997693767154047268241598640839002957847556576397579467406030720281759567395440767080994038122860759996953833247650948273410451833043623356696530004145311001605397442653277848628282226407052937175128578407006600376164757005788869225635815454968703155091497790082491291533128478095894684111936762007616393237298630960461689100460105259697318225393902214024471442565038702020040683312073867022607732755806339768757778899532088981069210563533282915411602744219768468026079276696619241455236149311838724535528992444005622880452138703969240390771081153937996320114843471196319387491690949647615746786332479860325113478545800111238841037795610878757283635900253317470690403950489354661073687918302603181556936357032468226970268100818641573712786164453398673741206628443066328535873510268241231397905011325639544791337885382915350867341671732910086025684788364619008309406531370444361832465298450587663965455469964080804369458869264289922688047039851625416372796990463553054347679842089036862835431495091302458351654941406795829973636634195746711535372304400702896582995843899065403785799162902849222612704308956326569320160554390706987586783081060138188356450737502585252605144644278177361400388199403328636683215100801819725806728555017295847554399565171784032670335869380557855233696223610753800317879231932315445342867580596570013182330350480501088889092779757001139064968965530765588506099668095339476239842319326822445997272641600534984595924130260132747890551301457531715235298353062596340723120520241055589847535131297344387759763024284123630501086333315307742872188570513847002452579327183919112612674249917206721830771696540535562773216441681931183413600490880998625843671655906248909641915806191924184309006373375154373392699486388510693062432745794826088951340696529938451612285936726193995567379181042032537609030516624311028565749427749855282262021012629090286827437630137481651395171738362145293549714309254274810826485155743405629115568728276924884002822162687632889861991864421481889166863498028861967657671922261600064725838222571891445920973463242975937475990054575036310496214119198390903744514123721378150079565376290960177384004797674191414897225685353942739343578539159697350757205690803821703494765980324803259497220914277970022925686536644812280937108540634183362336405747993725186850362476894992556902196024933415867717230223830158500240493764132830575453161649543803246198118394184237509510949741419392634144892953349234654774089914457545975482455791680851190942939704965535804138870227402064452166127175399324936221216108888903978446204192040181360468351666486386156495125905331844634938735849613380107344661243855281119052384947537770125409080647894316649268574490035301569807522765269958559084028477270017886423944674241208179344544584323457677650614085765270050958464989282589237638358799875370038806725783717645596018538189673736503316138235546327285477818346607478739988357091109051876303363874057381582921746995713456730386705475689185307943980903836332844852810229923780309455835482136043636215970058741924722367215589054639593278171064976722170355509654791021468990083825357832354357795978302287520732747765349492070354016374425986425021268440290736435724346884735675312985865297915943625149084262688669357805952497963958105631602359418211466356344294865875480556330653965083064468454800226175920301463581462662245230391077579093087352594163179569530809522181719681677149312544174707120208986901182579960936284227113755268105756078196186209386360240832684859067811564029274351165438910106373499929029980501784994194042963060885639959016495294573582508010458212119127800012692323272669902427238910743008087487330961095411461322648348635775290433461420664015378171116005479000354350612953146815936857809132390123787229886670386798245694993166793456401219906060366197254815821791219673025762284994195224061158693875443376241458459999535919253692964430787743002756837836346685029540665844064882135679293816839718390004302960983833313849471566861324624082796088442916818742784787384730955392399223556233150196593709559537451839645543550309572568683404708418970344700957268518066611214534299623142964865287182548319957229923342642956838715759377314870976394545853294746464226474914814605893706419269627598275361574079448466562241864977189139773247743773583555173288274401417763497288823006394861465391561208627300674495417286267164604203606738643960938666643603981819707932435310860030004806938015100279209244475103036708400924326672727799956502103202710663953193976326183412444933441505457073523574713753168951810026785682299122424973826222242243547048652892383393243664934526455148909448057561605812537214335084861915232147745676654219592785380539105665565710040274758140129509651744037878671673682543760013334999297764100956359123728118483491604478338179896251427362273521873495765621494773653460027445408625976010327784390227732345332488149304519643620429695349261937088745680662314985746754836685677678433725715555698968814390524262856004253178651074981017485860644221206049554886392345043439526341279181422039911832606692909471638492652003131510837974558505832410234861135558468058287447333052554349679437027170161875202051742772357784549596994055212250856972657847152672475009824151636007541828355554598728656649636648311727315448534657771865212025933977256477766985938334645815278287792679108880137505575296239562902062351681555122566327245370503420007053593903887371247579601590800375467995680142735923052549384104148999622604795070946254634394526197899734555883129794340405210423215575785912073513585134112304004117916161684503977813327433046379100166618079151186904380358099756208977108045748059420242854253169565619099551759345753360167400045839045653611876068450236104442924496133186165880254083545620021185603718015288845539872628167620035996001265699078901573577631202327808748129692107866649206937567404799810317738920405396037481182448146525140481399500795207711087219540100135141395500359672317931199380143605386052894069944480625521962802726810392233757216737660497242321920068935691757394293009542256980541804532731593532331453503425231081251694358108357576173843127293437117676181488212571262270810367052382905624798323779086212686942791898954662093867427143771186440967667810746043216321810517911397742331191099824763963816101895334941202630952930983863037877609673182071393685892352815619623212294743414151572139677771653968966613488332232828585259874050965774118557592261858835924851147821099888503696684229392316110100650890312012647105922825787357424675772817545588647886984571194860355602034387231741888871772138517732484881801337014728371316483804632718012687185160086943421565614501703179512529263654327442383523539838924488696617033809562139532556323263701157007613001076152020452531915896437735092225367802400141681513440783595056669173986159175401428443010668802422382276005319754214771307271787258445306720063467010508614658852726305767136620342051436649881685212139573938552283343976304688870088816581340301692140968398458096873902408903646549316334294966780477910183075009443119174624267173460187439598978282753448441705179819588667330349197907454090041656913593315105471228762145707955824063972314609820941178388125168322322996007502553253296143909264248698021544113888677503165659073339479737298406249443130202848013156274783107484285666465205191446596279668661013815680311497635560092575098085801280180052986911755382084778358169188670886529194335824435293025656053213148608071621540255134903022039651175556445038623212344420534635967559728071531011097575628415200340712860440272681662909027974492464032156120083990979678708026809337335141070037939451307508023905409298597415023532004623516281219850958189667442008299133550401554881173948392386962346423468112108173864458377096042178103730044222516516231883963126150345356389077279677936578727110032000136850706829219178627161673417282063104463616503540038634762775771705309892732203809165274906772074765454994604515367543544380872336377938709713081876498299712358060072012466874555919648881653418443118039871250038695147681412783899539530768109690394273614050402810421336872897802596356723474034488759782399843773959583157724168410570747731061308449604601613981166063228882551306445738745387435603494925773371465778811691612515656652668899000212369656123174450651459292071669300028444582986103597900576244780305590748232985184688749312691254609637434622737836331348899234815731228799171228238264550833097833063495861326271563770056400265324863652035114345618545644308802272164138868348908446363485691132567886286690870320461136825121576090536649090445342484097034822509219456610566062825842707383448105537799985314666970448902098777517780271213098528621317754889101688777816309234587045259408044997506995504526481361489876704851321984499061637868297610177410000470998190027803517132267721191609033315643700568035635932376394949324562997199933542370071405546858862944963259738080322580787782149825963209994786398468732093052460566806271144580218436243180217283690906856749363697369172967073867721221703451976571600123410625177620760382328099011040422045050349855191671159013180919011066570942104951239432287502868615205035734569279731966852590826498082822443420506997992098089780454425180522598447824982165871598714786414144587921474535176935532983853922870241385929392353511120900948406549119806445614986747789411014593960351546862642087773907804222037471093436861591095467891676219956338752117918500644741203681653473916525699483999749833759391916262231824662588570007704869698109517160864373654004801841578413198979071563642590352474837461774815461772606922363600214373346290196097103886128548240714703994789494770634133916054176376060673091019983804869780602524880728663211313786472236081901111947222339584086209131507562733029322254049734659881478597878515708842839221872448854889805702840128389260574765964708234225079448138533670180151250327380541901483966443442540073261355543586822906435242639284269132212981059091858603026892239433816010613893872921723517146219605395289188984991932637957888791885868564314128646094285373894212925755359926349891205637668162885915261116090849105998418525215455796982987352953742790807153401436894874283323687519341288809882561681690619290906478011955779653440817355243464704024397838355123113506873567606473632572233106978601211060410455681620848430370590972478812120154705382122238618322091438032210611303349435343915574925284290658538387723256114825099545606156998639170527919105523877681312112978396265668505458105890377125584677475943926606817860828043522354255091111765232962903390041096920232932132455147303018127449071973720278965687830808523368401575233225396775531324964163572895626244287971018547698535608140366396631223293823993465974245605181958402281184758602895505633616863177673236418980414243005627271341257581310142941433690801311928048977402057387080152840902611793731149202971797023273660051263813919232134349913329511832834865129143204637986812603526380963544355001151389629584423519064533860333955524800955448677660081351727650149559459692582379482109937874131051998172539121617226830486345404219456569040463509664192889034453480474466208866857442850423149056304206658440926581146575565833612316001705484379292282433251361424926318855380200408715705229292976429828364374258732304909201006291053942931123581981272562338314141801261467406674369264765204087106086328037702976027909124590481725895916120517460679077694476494651531678155578958040547430476853546185475598711037819979404028854005783097735250395828171660106784174666049554864777482651196173056146753455417733160436717959644710871723266106565948535148001268783287795763423900009778788625373191272672147869964484347423330438620710030088345683599222546570072416815598206514261693166010564145570986159441059702235360376572337838970124084193109658083718255937481876485871230808528301947885543400711333362446262531850541289551217515012503360763589391148812382166724444656732531810258528482342446620021196392578457999258959620282814847866254305852250923941435193310112956140963444007781959926554197644096878026600559730529900507131177226284705097585653245373136559491254233359188665230186641391217989894935045575519146424069097460407916014258881758277497438253940925734546107344702766370204419851841974984496711626823833375650992517068122115693470616489759960767292699984935837208733654682229182212374669315078357575420379712743308114021195482896130060863081552287887493135884960022011784571474168948188991501080027988750124693427806130817893964600876260963748910072841981245489478294353312346362346346251157559481961465235476973641168214245720520171448024009548694429243837004545535491300627731700296549861871665013415046271941992897972505234548984213327874140479268734378949276361926107765782516211429822333645066083096072518826503056564829985742282496888069181173439689839823534444424262326898120822026877170410040722848638817095952328302796728825869494180775622871088560379913734105084971122014693902435617644490039223864142693523038921263379140070659231873174683179172216927482579781901829839042856214630987189492924768819597510876073308946635758495779029686750267268279888016014707581463530487687775543629461555230039408547835493965870117853740790843416409974759196895748917266911933497399620394236592798363760749560268479236375318253763717498419156659110173460510997045163154616105043870126420474612922806773863979153869285733845462241956164608336415281633328957943163958653848395305932562472426269916897973126622989918676141230324732000007047192507496692925054434663259058402185675790616996012231988637737129283213577350847057205340018321746225417124549616505252944744880035039200631697502110842741731400827762780381435437294805906761372008514509009307678864586450040278369288517039314459652376170866253328131629538998483805618158864835419699228365101024418833830325597139798174265963409802816927549237611432949985253366803735452089891466903615047259981883661880184741773418223588580480944439906884458057749176455478959585553535789498214499731527755710040919705172890581813977277167592963532403177027856934959886418493191788547796812271409265618804228748726723209707429737965672266914688188952460071141209346574983450085705505040118068338415716290063685841079898625238692651419189132464487699332688528391563394137412320160409561060110467995582555307972648040943667961460212320249603187904327170508919861375741004055346923628055318372911646291967326296086304203559268870581565489451377795048001052802279721575845532672846852827239269898607740616432632305014745259958236298921017003446214059412585698496837034090263515383363286848542482881231464096439887656849598906155742584987515234120723717972798026476359900876170405442757150147549235769195020940224877792592206919303990709825950170886963868966632666624561221942925486750234388297406106593859107232173430104997433696155776634663674095340468816002407891176017948952367507925869254876559436214253374928108874718793566583259096300250911598583087885513553325016297964852145902853353818368044596882794604456419423110159317940721194995667122810694222965432115796963360945194355933682132633140486846997749423087460606110452606481475236713932246679935284469817834166985566458238407881987146323393370274038083209180164502622387001320106920887840361834142183729886034938924443136843244159896499593119228067132608519165937668976058633227125621086891919526704802568344950605335729690504556152969441804654836093161939573902239690867172774392207154217887906378969155963346965225752614404542604134383468050751350521967793165116037801495470674938200178299687381834051412090579779152210770579330671632470608313387102702331010032453369448554767479833720526376689513963302896190177400558669216710893255790014800244442848828653288414968212400444995420668217685272698464482716083065376290676166936419379151515199150504638731338555122284746502092841711821590379753620515304249421326047611155403346240364567731966216191768364004370724601752537878976331151670422331019659036374446417612685012618040162955157080675360933482222378716201483267583656626352705303798390912608054242082796592859655777949534821073880519100560096078955386235483006369578907423305363422870902423116500752268490724937313389044824906880087942341208004854886496274643251286706129096176934854572454907285975250096207599990357882253817788369623467038395099355053547311774001576514473091353975459475462039467912631470026663037733986098361693873753142458191255004300093419921140766569862841562409982203438331792964131365129804514519790426171497057046119247840749467078282256580616051487478795904992873213571562341349038511713480542091068887385996235989139955882461199676662501699087659549351613886533096070643225377802424066638286166619314072078980187081655655433210163394492955090005667019592467569796647270906785097371460026914590704991815896063557640202813150657200729600440916753716282990486534763184166901865886350836453105253770620751625484660202584079659627370383800756003239878312346003263476123826343151577108232305894525096811158518501479031182566989869076432501941632991160597213600414262712615878555255704195913284271623979987996145056824943542565490923132530255424406970663445082592983860010585362893773561696624492344600760530879179522089574498081507922107643792200337005468135348072096795527064142203111795087272900873711161322432038471850959535045601947449223022481397252256831779828911280323797539294926086793342939269669990403377143604774399010024981117244497166648123786092665640021967739626253283757695540652630059067534061758600017679599998973098795848507302536118313583418731751642714603396041329776019014907511597081088458636050636817713964642800704164190745693775011034934678085576946752610527652667070401502089160933533651868092634965829540591991452823064078365629173698068385759013792889259725420215490945077148662951559695042186772043372351318780291783994960752164926620453470906115676900857580504854890255861343983502453931368236564249865702499302446999428115317262950135544131140582877712968094913705494297362488641941708299184241158684224986002261119995636690376208691051061174027881791024901895925204298911172040718622615150084083434942912508857687740042988402786325333210398756707734317753352981844919228344436163374860021603613067715983483552236849866311262785663468006453057118773312541684731565553267039964548999259000732552916640639400145623894377211381412338882561949974167978231043313643865846598737329562188757167799351462002031155980031700349843028658285947971260412918748812425055911341245287790934967070691808035734826051999510495225951513327046120943817807862264166544589783798579428952264063921395002814499770266340517233159850455266020962962242780617630730850722344837272460242496288550899761276338179494029376045114110989340268833927023928466299948793970216408442489364792395247956365074927760975051950356356225203707783130136230162019390793537661531849299011236870500138637286096601219255637866600773389397607825128586839929625666992396127808950016807689632103642630525665477278666474270707883000705722012750760755773984943164809464022348776646073857331715706389923116421185838620147971519614702604827182836755776701102983243131732469176292200829234115907193376519495577976360082943174098155368926873108953659310453808093607676817447653960337896111525610466632404243418992661808212848796298197470043831301674835604926576233042051488598062210761228120477143864962579939044570728754237622485148632639031637305002117752543440133701099312545331990560546858734810390941862263264892893183528208763544890814937440512951853335335745398065644896790134753963888857619252803301874471587035811518956412101518196790195685546425397442121933590329548843733329156602687514803897788044115090108223144153420581457234742209631666405930435237911367092727723095109806937492583983016822516660390410460824435647445904438438007948601216750917292056043247803139549495767354395440481459078110900536859007277334331243174985383938760452098219175308556074953927517957049698885014408433831638806672382794107410364596942858662467460918146260561970220367031772845716993842655243409173472873795054666821413370327128836424387107190298240113657107060819137847271279575377614186028616200254163320025751777986725401598329758301754211131193584122648846628326939278769047925253548399346522215184996427856312220913050026165849988563285517772885551540689095875294039020926887055888207646122058711154777906016152113833456458652430116391934766717843065619210258883888944032219280884984857932188400404479581303966786670591369273750576451663631771304642001914878792551664734476578740216201161800863426724674993334817555883694536302020203101546658812301660174722441453163802085090026037117640315587296332274213217305143724648735036799367088249106918407230912498024878994401147805932265263962879934113861493628066891123219489107178306122251773971098701822348738380474796112623497303321435966885171793660025234239307213278434099624317465823346538443578663177623209257581573273165542969282975212808815884349007658588575305223592802359998998893880592143746644185695738701244500190521503352204937632954559813063809407242100605689212608506877373956281452207090148626510402135884716694193305544930921194081219284953634528748321622661463172416313184909196502649986698834831363930253761227220383507153896255907185533126402976305719367556520744228097365926183033738993953608597791041593107484360083885929846875785830801320039871900692464153954684994362020137397450571924470712320272052648909382997500179765627047086903749036612711928074174860765363701836400771610302511347979559996098843805040685324198104670304695242057116499862464584801205527109146293846392070683155499202931254378439431944894645773526192612013259219944640663416334184955559574312256549800856635764806032096830965898968741838392147895235930029235989553538757077367091914024491651111530340288574506273398168650198798900497865222220042298335983854957616916725913163446945416367473759539363507291337848498658975549555439105580491035669891105752340020131702210403059356927161865467343686333378705069882219857092354316433110823644561406725922329325894723559019364651183346731617002264933203236979785466688949319985016618931500663412278383038340042350160040302456626733607329045037513631597045065244083788712511141146974013453701981111327953744941929872998656399959831085914620927417081245614601969757308948308213246996048601526063366496967808378637892242434149159333044688848413935247003424549995196140910981308837819773662180056173577408012631502779037619736387253943803090774622535520085225285590668250316356129582427904867116512319955619112771858084109650609302402391425312553725604070729919283799043016761551410326633305143051367873252186360264158362831210553467764670693444629277548226426082491468367462522252102211223154934542143768172897636704820861950195936928168826231019479355342653535629589470594283460036157444751267399789366891718537216691611432436380158690507608984655117232062751931159025117015430952972330281625664805179053080718828048599436194227259103113724351155974675268302854521235023147494076064057862226121293884647596426571948791055228011707728070894322493672417102444397321691850882836919196066742102632567459557380722150850163460060660938183107420985645703473809202751433455631888789277441165955893252534876040092431304017916517829678032023405360870791102636990676168037864053721608496057995390066339040461273896682692826410888421518762431198830652515877367788502278915508595181680206434436828376484588213529232612436082569305974339644862350337926884489738722717800543970721306903310600786568938229751619213996564269773108857551756645581632543051512767610037244177953865640961695477383156429839770577303899889080516395392547369117380344012467558344631211696768229345990365258400244499927036462019225634934881259469143561272398353279631693468674288420360405841442076893210381628973518686616542714764880928970598186101162217461943388759464981905371707428231667485673634607322037635658220274503517253955343676128212433100486435473836720613881583100549868162956380833849066174799766314734231475623348197671012305421511319134318422648958178145974314698473071487326473255143352647591367098734939433540469853590224553616895696813685336098730461902184785573287519968683731671964321642940928189965713947569154328622947002851117515320536141699009197430848228819895435880518380236003628839277380351050826363312409377446659798020996866389462072160549496378547799715023242481343140492904766691484439616860949470752877744001629128203666633674229394036578666019054598071484218021401145672440649750948697298810709380866081924044295022693454283303386419073983374693666180092754602312353129500786825370225281285951627491740084039932392716066475923439066096854588385429235992132349975502516991642330183076533718159815783601049979437784099194577909565079153190268980347323161056028768707859061852566126274133380902893434508517276522537838113444808068487090447589348515790068481328409759228887407586806507928831105139210130638926588844921723390238063937850573333372982538646471899941987928770412237927221342024372479471281370902900626132514042188338809138603005683901725370265226935397346594077682016873056178110731765777029922434014523256920201604004925979663775154161743074873306763868108591049014315851354598266028422310873784887213481636282680684489540716457602663769764117692866057417630013880506440431727144486596309010377329157046698877456033400868508987335673903641946441279668439911958559044882109890938803573537592986741401284308973575517983314683433666705672371355919554445572931095012215204357319262483533795195207778332769850483842761751644922331981809489538490212007026314837966711369806835418263877591793471587240754315168117749542229362211508446427570157269434084673825869637835042434259915746891144506178330189754783005413725743858523612163887148725482219954315327951207919571086079892024277861527809591726924377330797629796779264206464433376035448413592462906221333459616219446424953560718481277744440181824373683699468111227197978873067709865141599312140372969103973523018462652515894693278808687130851919300408965028974954922008338566699200359939307443994589347597956226532359938950052867373403173620327431158508197919328987588698303599334057139946556458178976406687153667929784800266358938175952808056831250177443511531254513563151763600258809346506824155957989979066256828200883897276471926840141208431509854193639633528026343475336168417785754410347162327627233624825709321230621232639081905368613709222441179344947034872292107473074740672862849694103566142024963247842089620585192049792233926057513305652122283247349131594074806919057060100394166759057026426772001271252238914839760801699733177863002462491045879163412213511155871972472668287064654341609760317574849943762042854104567862207517093673968943811444715827992387301959024468191766627467595253411469552994698723663687089650555425119115132154463221603128261174674825835336786530381533708575005728999531228968040370717847920114971972551292949228263705120228223826978723779146707654168069490734166772619590876792229188013824205650961685138371963778134730632929717994811120995006048216293252404485387282681544037890485730120674879969232039038010184642666222526495541325651252511259273740873183878132382678829521307393572553435716048466361755229164288709186450119030234797945651339569009765108544809358177040921458337140187799463343650778222516072673350879183582755322611507937079918837913928946510965460563615717958171003142197425999725143518799139888648877045580004725891271023567178974809131735880503222615240453504701281697897988879986601980967312295760242674691484146394733162486812744725834284562918578821988630470835242583851609841980187813279691516103791823267123386075293395283062044551767733118776123895736554391186251942059580917241790318477907879406140779580424092582780543162095171996252485111326226423692010238229303935583701623190968126876876427627541685810311021427455948477283773416121595487048024431306982179709461877653455147221161856054452768048840036314435925141222617340287356118741169102884601745741409705959398447870684722859446378159677461716018549505539128961874655083740691957454292905216784430668523761727068045099712332669267403833637852765672488451362406673811253151453323929499307717983379131808671467499231241632592492117557776392737522503580501043130198644664397462058209971936178977875200224093736270780007003867241760024512497263579591825842267782833905224061781089086308120329936018557592709752065745095911491235306695724385594474164103882087109682487679815854833453997531226160814339547617699243173591071588764101772591258359934164573406068479769132722412774376028809807813721747021628648115311136761967309488338563316300234060491638814294817498738119708094188510811714077515911036750773116254924523325998753105235831754583207984543279224158596370639366146701406571240479895967941670436893102327258373338728039659692191002245818004302771233986134449010877763109969978033479823334510550811558644339637319941152494825881247567649616772045383797641826165329560588471428529163553492319490972071688229890762186864382794771226144999823315926214410699276793819364524984390670871619492195978079374048030206596992568241101844027518381594927603844961045717161731364921143359558784686649851973338236296421189536725687419562847344835965382151077498241913381220133198372398558041251316799335369043418145487305503091333292622430558439972314000632543809927504135458419462213514612512833893428059342359036241569579952013405967249383510519081723198555387307114819418051207375721599740803721934120175094779699772173462249724728879629222411608159326025653126693832302507622585759367258529438743683289511348289929864356102053741176256324230059732701001816373993609288948877720804394346465826096156286057389437536339420951629506499463605396516553973122016372140452177309308245470209567392223655921109432926199736374308011114614646195814767422327952747478389598668853447657975075092714297138621019469264330366022312053777120644146952867945574880042807776815358007543577001938586693264866887658510235809306410222484951380407973289481814546227128544757417947937608737940889271419565518039061919736550083508211468727261040793485759037151987049427405822493573960879112296954515825435910669460189263237842535902489413960185107771901415090545455095723489572563563101699834867864225617734412646753967537913710401898527835380245572746375903046957160617885130938970837730855957276322800907803441198491810495716659422670129582855871292679124584961617547601017709091987890024207771938874756422828372364254062582221306467285795307571096245763531605920444849320658946049318412780267604604473433189830232372926975529523768243993864589040047443160448174772887896104044810751222466235574176734022996200287027046726143512741365431738155038701653709421093393168539316704123068623160311756547851754253672075804135705444684583933633256881824306259912728171495413490686870386396243256465961353456840109073605131912456919813950471118490712484879914396554418790711009581783220445977380976481076790239825849353942478341915472790057498971506435568037349839589987337289108262578476021915407902013932617019297716591057491078581735702978867848728875286855253267899909905417897871469247348881966650606182865831787019260374055106772233910216978530843782204130644170560245141069962001930495169547846081872792093817228584574009171114874349017246933440498273625542318899696454842197264575588457703139560807633311796566018615464862088682366284388178726317440339307887187308097145059496588998320074478761933191558712494558519079528061848509950103433835645365909577621783276496317491318089237332476647027683388824353494182513996501143866519527107329538121694171432128742997337450523419923966526491552387375626892847086102264171463615155547764816558429565806992082375437597156786416098905180010681872845959161735959794216006756183978521025267938283820596458635641122276729211986952916234228168405897661796720339192383212324998064650364039681897554262228173718293342878852013430205062693282360675515769632955654629917335459213354957650127509699598966202562198169935658895015341785532944516989324784133105505755490522872000786095625304941172440074382423824881218519276269506334669597282683118305509977016503393454222082383297123991846872557951831485605837337960134785144414624704846555593156789834492524274639637796013232853915768341678248233063423828201195124649162972368207753095142147430353728976160751742206093708770556684282529237341517580488186140763943451537542487905207186760909097482445660560803796329206094728481112237648876516188343386900492479433128607603366126013578868111240006293502152729248082012568528853849469343787427488902304059693915194082369745845331142284903406250525419415928181925953362313530094094440371885128990630102661062195913987171278213948497675337591779180942932871590219254576807257803187176129441452158181479953698746414279418684841540775633611556545966636448252890094980927141100909241840272918098475782455656932233186974981886919577232683914815361353938581720569981779077836797317417930430512688170875682998189412310329314084857121624916639109810062353483924398442471485208923494591829193612668366173638399209610788034104283441109783206647584152710280275705341465956796168096872195104766886892334578987355909035403581638312856690192478282446148416047024816404454988990414107235409800971267107287020851844159874303599121148820350168367691453309104668663003777118017482213843349977393902780293595033801947606075351009256878343312945547391037742773689664299474773645380066045137608167570187990008676306641933163921666620656850613770753997663943439693571807411974388725925265677293812089339638939531621335818292371253205343224311632612427032165354808684487796614874217061356109486320948203675784154415295315240046263795023934452997112429328726063440873566187091664943675174375859639451344791119435564263292178120235429831822065562299771196941995064383949044411363750056456724749776727797930354209775671336567119551814398752842375409761498929052000031863283610834794220741304062960750854983240347113387272772292169159439209531984073437522690426234613842743098210515057139327734800383052118442657268946052968505105014238925298778890271942433193888665644310762759085795446438596303352473132676906118540838005794761915336714975196257885395577577290598027569211335395068344271478195853834004765833798469860942179745395786611468516934700633756216973893917371866414604654140615227437501049643528640704463899991075694636251210448288615272426753289117005808142028916255208559938896715669412580684493538275100253819237574155748220969053463625104966800290195432960845067440355494582097278660840979344822956638174507390893865755435091308411381151540676215795093464574731336703225223258640265059020928445037431757997821514005962876298930012664781528803639118327177495429374180518254001300774718633762088894437712132147758938380626942069847925608331841717262140070412433074381612214852962042963357796749761236247154649775238104081027284374686066590423992672459195205560667996382606343653797259596782271564338447213524709124745475004799428340680700411183403643368637760511108653951378128258097546511942167474461008241740119899728806474439446066652404284550047581306751532321477681947614021411862435920410430580070967128511225159954877905557608576142783572382749912678408916822156043752537256219589331963088470654454048024448112910435679062593998308325419634472260287216325009816590225664305886437700979406106642949008278144746226789657971172572832287579744826390581216476380078109308959747345672736389881751120874433925497312015451157684508188517804838985568867269127005733014565179768680046871985302596886458723057406591858373426555664448552797056186648877859108292180088458810991109838913661870055288920152464180097677980323029402623049546316747224933230147102269640844146034888366549380106580309982324006267603266973952783258638188840747128001477224664598991541951535797106904225582130547713194301635351393757226656112264455896580974734105005728833719556064020482885139196807352143338343479150860232832383694537505793939625106030271028835645563233480561257600658311664764385260827118455865527104994481171695514148412414743091002602240279870249003548972303498503782209824341068725508461230788738842227026730670032742132935303344269615378304280814939375762140932976983636333384119767281391692417910438566047124478405385560591540780701337269251817796928676767637581023826558715196618048881911697251142524228477321159638839185262528698175498826611679218256017685910179831449116804610962004137228847827759649459544360753985194860879230524431994195912214348875106133589996213229172515653442760173551493121530843711205675254043144688367566578697811245012735844905883015935517887621164074923823138029943474639691719951670933740142719773383680135969684335093082512176532344847536679278935021010216437638604890460454655156345406721141260183943787560703538617187874990507606399672473656666375601441429710482942727172883744324501306975958945666796275414068876296191534450338391858076674898933258276740704321036845961083064645657104198419718438010202664161683758827801506665434148152370956033177300558965440975494649913710502582548469417068301746061072405276920010293213356446014900033374187315342867748258399809424506893595295133119802219565132674235027248778851537184300111763293794775726056374724874780682945859052510172381850394348838427239980922020996989482774801695308325970956743679920826032359338962631960622805910631609158112607493981791450666892450743618079233895093743517628185859109410156525294676241208044204577702064464644845517666416315207260357495979703854022097351883019388179105748037174434842539729689527946633906424609867810233338405494263992649321145826048205716655366963607464636038747980708637701761525733588722414670569225054457374869142564230312560319966456609987190541278031974460510891492629672052260094752752600870203208336891935055981629659966328896659608647941944543945050518494683772226730469513057204982809022412929564718359035112678661613137703839709719514899170776679387950193971206436008677898254877785282686783913533668043455060867789457221310931001851786439190558843910857609878337912207357828433548271868815598034546794468614085415397709507216219320053325830659627343896344820987858467784340602917726876805171274819762419357578793023848390017310063609413658563298286329672540179284000398786356525573118253791925242273752399307023105736250376012330679415748641226864329885362058559771114761461260938373795597690195708424043099006157268138100155274181995754630971436064424652636039263823989231314346182441007067296263779964830519167125649600471897586268198096383877325099628017239078950873130910122568750268144639837483891936561203819691957352028111588865530789022768502794994166842925750113127654903460737601907361599267793792994603795623149483263722096440401683486712156005884366384579913070914763140355760063219684583497320170335971723932617160197753124036224580530535950457853515789284921968834468975785315940081831140590280696289035943218100723344080855449027304532132929958028326795700160524883731867925978158092684338945320457789351107787746870709358019736663193781127761613622145317701223490745702172006015467639487048598849946201231384271650942142174766902205095151199468990916561316476711736463804620977649065294064014680508872472091564078127424081674912197056710943106658582298602178086900880143524848290799429522253809892558411753489071289966870837029055285151013366408675731872167177844721223757646867461712340102061385290407269647443013047875773954348139809832643823912592040050370611978074457353410674699263880991038730870535153929442795754986158004503821547204644475511231468488234428067483070838868962939455056570367603928970481856719480072179283886339884627335939799193513337885520855807085056039871832054260118740185149480993634622110213076132385605900947384264451050344700796541548045774425031374354587337032879177301651425780351767888182690157554483685759850983594663522040994235924578557677090828042569815627402154222992851425506191258166668519503414408260703109635339346582940896059475947809410582130060025853137247127954497873924424278612664636726927929093040630947956438273926704775270945174476510988197610630331316132792439926627034608224164843085714807002767376844051436850264934798131491388127365322512253811530579916554862278896218581080621730469576015809347726866854198071661591249838255115078175214444919922299816845018531463581644234489049618464751773038762524947927110122116773156007865606624477423149822080066380449792554665425361584163480715765078487236312256350025727938398870039184657503267344206743892327746870113342523953232233115387329342516891866549902438005199622468032028447742006104721154250944166910366037330465590310033678541821289457533164757045100329673377189817702514886420064322991773887255616978874768735372211532662328297528236779500413639439386441842100536499764633256177446663120339798604193031551211938558269207918250181344091940357891212117940230637248815242932675136286230487111770428611914233663906545848235198756975766783434415282951548226912523629620445791406253299387164678947194281417766686516217663048943256745909837863296679596809651445356563392893419714360664532203587421680652442434590485327745535149082805159704729148784231979560354153061305756480283425099904630163585524061785317299868438570440188764840171545664271322481782250071737598544149629274327197003357819715456318934752268336189929771701485133297293612930099445559558502946033497550144861586999968240348756597111330404769132077287852451738376515288396107165327953077205586285223681552949086512187064177432633185457758528219023690005845237276307021804776577362823200289385393053235504407769402783337934173796402430464210296720290578341329208043450672889720771848251734805976253466060273929436118655678822424134474987176303650833731818597982696797085510828109703586149744511632692624451593267540014591912133360174432758952890451939621791392804062488225713268799357570460017409939833314634955498975197223580575804652002760630014523134898363550314996671938115678521806480863295508228564225190042203881210463304614583067234390748776021938117633665855266551067056782766612853241434718106168675481454156879694297694141518593131792115850890689187961220440489533816311178505862864121011577457680108214549395317284320726962725409551466428985268697308460072860863682523523522454916270586495939107284128583867745261443402510230976081919298873478988315042497185082550693496366313204413068858733380153926822898907041616173305572544784724210413264856491460616743837787330869248942142310079805354731220435310108366277356360140325819477083457321074287235351470360254939327879424394000942616712066325218297266570534853239028941476590907165304084479324436430508301702031885271535876588929755534522207022257288176487096202271242238542039387770505496206611487332637763679399557276768902467537627456899177458613576859656551981237108520028011772486254968589605851445815864159136946065473826120024603214423045800096971847431796179691337061613147580176337322334863023376918287731069476358580868900444377517023927438916756500691055699662696095370617573780438388212135932815331147906240729968235636327447252225080403403977727723028302751740219197652168881950941949818098957075900569711696072919695431140754784819231381765530194973253599374296979182400624675622579242139860573087113588036850326202122508270486401616280389683672532285711780074324611906461827972447992686883622949528591307133037684270067145136321379331219567061425083079591518661007017659872284490204282654007830743600969095778680410574478008116745828344536670319211895989533030247178724735214326169532843985528516922484392394863615082937135743148659818546425390994494480662876535474349262941879489182570244178319486551247092419062534836791533146418484480781086442754791756433247047977952778130912808287443616905728580130532221645085749759279826542897359684792648682513676442735856541944328145164979887594560459800119167530532752462281412396720065695145157826964576507898681120564219001818841985072333985736584721261306030638625800063423183100778918655431595193179362512310512824170678813205082330138566071281109618697346963864591668578205783758764075301466176877129106844312567022597683413580725589005669636993583525198006268208186956401077675112368018543780519744182453493592009483222133328757573419671011106641122500932938170034939916653966011230252147833199519099133470997545384220636780083138791980213049295961777262708208852569267231258923828697004106410654844357671095978807285324629391310034357167321233186405398439738669186680079206380763430060548234819828910074245971163422699282181209821516701766599337296485074487931523776950904162534210768292017860902455234129081463698819378495251543214267275945657566754668819433257548896384475266564857666016091766560236683001707500959784203504518483634199744913075602090566764370424801278746482181248614223148999109337250018822364139569065913331639629990914698219536412514166438560978269298311061827228924578535235742541960434937657917836471565670452257276070715546807518024522228879335027776142709142068637599201954940385563425140860670229878237471176836023321560180183280735542076054307200981826887854100854552096788861822512777165893570827908679982385401272398867911004280013309989369500823148542687699641435707637804772851379584502166047716154509737195236491791423955782005171777570160884246217291089537482201762088548934190883730286691826771087709528784006231311412613012125208555676010990136719743397742838046920128434378634285716837558433547796851748867098410995785856698705996385298174083970453817777117276602133481178496544526801647923181162251211959906157095945551005534487875574432392076598359898649084869620543677113117893786049556451120178156041336855723216691441334609121184673550134439742136351392668570062121061805958913181219479619024137569257269607344254731896119266023584679583560492861282570432682663106879583558323201565588953373889392082777538439356631510336120371054961248841972204127585671083755870928684819568398763271879195482580434112254350178871529974168383717384843068774754494708353341303250122064322619997577154195773151368705017915661582070263490111367934079210663431700156066463449020741579531002896959312477225850612359435760239074760062547728971757083305882682081299205324846062433596865579409992108818825870673057668814423699061816054416747915172636344778461611595020996627380197003152326047036596565542640789038588109129988816063290994294032539798536666913101265116057793486523352301999965780413800980423111885239656219483888427177962859442555198052207203847929774301271715600476085706982437494258623054093176235243463290354349382031067923647103059650449983957753636800445068395230890305448309033712894522878041487783958845463043415010809560054923555103396581854168290568754839512172909117849864467617158696804423894716459474901697726273644703089674414555580016714406679469569473379923843281957367345296619106191855157022923671421804582834881989714933241245778853357149822725781238560128958376926605454420100468450601152590276480946629767843240902265345354819576584347101827152721245179657763632084042490552815209990328921647254156221701028739678850256075531205956409075392840479565554589319015362903755699734051319549087661605217802702607894284818214215143488536070318799302063489542082862520864050510101432578562026318107032833120099165358944570379368449980385093519715245881606316993733015000705770117628749333651897860780867705443909233788427368019358360393217694549735396008478894264645879877397269275836783817933523906989699127095300425911605586272262425650401404218318677431956867479476120076458502147292759543378444347167574438172817640471661881154839193478898243562047460815955412927928196026146804841558593480618829932267651444867508695431325653632034534292526700510408202837488114532003009330566280269191624491393690986253260856612442072454391634396788875128742758027745456522668302196433199569505645395968665053090093599232524930387042441255874255346082022660327856028246295984579799593248281205391085975885959920260219540055561990903659161188209747886815015052232015796594064293224663644967020769929611388080514331507358040620363595838056806216818239022939920543329320323426166002427268962879906332054983664357442385192093600615058826377861861563405400872706273438039344235086269722130909351086015972561001116473981723536492409800677309725209794790475588137824052516424740801406168266763927260229391226960011502269759402834788743614034647252967518336602447601101939035496755596713422719161387386949274617652137133751366764083437531348807841296195187099332105324512333990769756628534714563148484856432055253336947909804085571966550242430745388067330845894756183874855932123583381303951130730629757764939558086654141149225990664629058380596955296250052919100781781423784465106410205423274709727195633769906334507356491099611775702882985819171418002730438612124617778162152066481881547407114505149277493621112361058939472711148101667588432483463154561724793395743002985564816383505186002085298746737415259694668475284457283931372795908410731394709162107706501462940106343656687818933361622013825529528942588656468296012870420397458964772024259519968633703717877150706574046790430227925826287911612954749382111218082969931019940021912968127598037510933631362809962125767338106670334666675394940226875905299455329751366928649099443703491350555460793640427781762592721934950472494180132336678198216942030809978372973149222132545034478252411342300961856976348990639906534813226402353164495433680642698619818035065182810878546798230670252917449648748794157379837618817233358031805983767205429340445197629392676076369322249673617831292048593120384790812028503003025803415769485694598466146085498658999870198516657094101844289923230330341903651753106928681547069489812856320690428397688092060804451030145554133133214548837195119320743575922779140009226109057806375357493163417772795499630339868819474083007114198328977133398022110659990442762862726716842538248885626957716548262765600221338232128737049557949925658641971048146088233099822602569182843650067982130728669521326363284023771632841176558135318144354991874911903128595085625505388970676935443196464058316581006452961362594526460080935746411443053891811571824201796100102197558429798413364314943180353043965217709719258289472439481471772733337419356688190109152340269826690851555761011325293057989937578956489566673925465745060231131476902243708144991964631863853986507555009409948095031428038872162462991467125849016840711417495857414201007436550051440163800919458110279260218040018709244545391088543218412162315642008251624014679665477868715488895019184223695120923693747138970470800838421379837845877305128139361517524656176599302432364082973339500963361747319601666787403380369866454518146777890237874223591050519570333960315942038711761739424006355656731994801715934512307077981732851412095903520072963825545207873274751955568837776936219818995901315211109067986585871271991315055025080433519828859721697201411063140578453525474687019737403121247308344758292486430448972143958880770223755889244909812117523934442725629841902143326212752479041972694196641273018848629168126881758524545057471912760217305264223952171965305556118484260049771780335806997772843999671434543689543676557054700853599950836027237947356730172327795278325887035420148019602724382182354729925599155748117822696662791358909793164940755684037468326684059742785811615248133056496476612678121064044054190812828102574450338205857837277983509429708997874566233750798072961906219909483712729181812447041502538718478300833068565716099910637029066830328948882820551186616175229991774275232002088496006304450129167609547887681117848106676293310296739335050189982037625104104088933293643265473431725175776946609746227247168995178296135146924969702787441955328757839234145888326256943088699224546102154952312930203363693114338290857501958915100952646344628116092001525081303013517640365900310912021716854173991909680986240628684469038754950779250605353933938324066160253798287216184115578160104479369084446287804813594206883073488406375836784417957074053264701773259123275448549000813903002542633219029401811405416517237335248291595694320840316151009227938738109905974360686271226076398770839794851435602788939591332671793141296346930308796937366214707651584087387186552851707187809730586626066260428043458986017029505344557468547167850920444068319271128623793494043092045619838249650939475300319361641478522670679446937467364409185059477273523485022213860227291213220358948780998087262908016601105604984041433058012792153648894382502074234208499791540663409210329649106941365480519379507920953481920651956366713416304623189356454964678678415003090587274071392696629913155533928411096139606499869960581450084392347941691637961702148552716439028534190024175006666814792118300723751391513424728209952783919543828271790690031087917503927590007062571733796428738734840280334032293373789363734892999936607119800875874221140883697429257618280321444112530753402530143645720186219004320059616530649826309604346455886041941429088420537187882201539070519109656915184656658807203649188933420829654398703716728700896056731834646652566857046060380920841808252402958048102518988326058561803867349095112596076589517274245639785315828040212269919120795323209771385830811323672203412802084789756591484672850757789388679279431875493927835641513530260232103246321095102287446744080358758156225837487144982503707727729452893223539203430537406526279969644264359412394511215421650797424515643415848113887507123975471934018969836188384393976201653561671904991112123744979765007128961651314896506223359495775675342395738660913512980606359827465066182808431546959316947398401163092424975688764612171589314948460931978302352830953365933398147221255865638421337810686512704805639439423404369814834268048687755503869954948793427320645039659492682253410887039814231493814625569399013534216332785928708310881245800548765919677312775075686780089113167702588806380580187548923599339526873511901909443983752150428305692529639059258989993600886099435646629912425718889713461012657481286829066040667099984132845265461661568073674977138149396257371449685919304583008581842310685560900440983739784203760202244263265752579376098293491154767996937746671061615709362524663164612924810058628948774702565602857396904649466193795642115707490275134951580235461860140999212854804129853996674459499843436370672038254751917541946156334398213380065095185994550516183360123625991254028452258958237498681443942164748237419097349394708358203420901051782794620343238436348700422485628226086436074073972551920864594831231456739556460833652175599959516064273864387663447472508877688890319831386963175623003808494655149417521427094664109994196322474947710747863201653808869320390159086174480595040615902703699859662433261558046500119745161813003896471821713814484930588712968208949819113458408621689679985203869142537031187758933975339853730261658279266243719134417189966595256788300342644163508772671520255491052008555461881498696024731318345343641716885325372927859680229209422564275715754051255446986037125004416063254133256687235576278106733771938444812200013358557376456455368748692603518959922997790279331604982103213487117219788538542168711984305635602680760741948561161988647203582897671598078630808599317678973397795868565820232399826545777709659863533365307011986490952458645980704201092538777907477968246467234578370553090161120761415772479776167841386381706988249528705291037894306617373921299440823082196358099266003549794911024041270366613486077291609449608531452079699164349225164869109905310188065173778564668575681711470715167800313053394592169102825320076448267885217936978786066147178065900483727302036593660712930269757634107119996424209091606754451403242678099875864299802662030107707299928785899195044464354273932075305141887900171365975162753062460170006939571444984367361880107068631304800034564214415632410739256867792145917766774926062133438429358090570438765015321076736922703844069636637571962383820752458585141942167579977884632310355198144641554442517959659076823063063690543350095459072045248974425730941728100390852681686724443434239572442072742472563918485797027431336751990281405008815199267133593713856277484867146832970461187961309295755115501853735928629035110136837859932608201746239191312967753385064952687456373864038227562660894327476205484605064268333220362819694295769635185651760331432848094480944276361932269218289424216241364023461629927125639983731568730044577645865078425533637432736578156035984245362507456769161442292667568127689169264006995950261965617619804504724529221449195399916003432245482638908772416170272409247079245610839366391027189241702993325066997374111061739905104308821362572958638916123916084647672575613173924100785849527682701488269950980567828780589420083836408281959598216247655389682994229775530517193433390317628082458288540627601331407226961452267688321358185948327232835356846374229326084818367553912929898463877977784817214497688155730930127985732383791250314032672062622817931624981619250271076418656624495319343072990897612347510208377102317533462506735695154527568464124409547288383252134835135443101015065581726463992520276818599718962143794498783062865869729114676019459159796067521205960188404836910280505001867981950211183398993337505676410604004875722466408130956807984141210312247788332702578200221601296449119596116105333575606511540601838970625624430807660353291480465646187353939381337027162926427415118722851255683894057474276397093096032461864484170268856270553731069393102129607294328477009757045548535116683080835535283179083037874472375430160062312990933568703220243255921825777945901668363356681333135556623401809177703280209434801304510182151170418808662003466776105683566088069012988323640033600130362142801031677235993604150266463178049852340551279750160712984619457816503871521022088308129217034478084356120930773374690569043854085697438616783537211838947363500698852841765694497585619292763928896113925235078267366635758671835728298131985155768951116258654039688960044830035277250311563739438231606089177908161344651521541306161251088926300170356292234898836336226941945175668670430799979410235969599465835279780160816205968140472904725749806403628157442510936144848462046057870876971158335987400507666328523657325332466382365718045669132205850968944967816281714699270841087907242431770111988243055039258814542139505846971353855820684392975617815902091930411847056121081612970194861901879995223029389824096965789390966995981066339233492953031658927121899030622529642590087769315691975793872400166534129755418558319569277553962047381161686370735910593232629263669063146553360480843138153670187350855397793047489619563025481887881221186336462801566863509014861482716589305253405490553966161678758689248142272662769792953337384711073592883980930746502593570705970522300445960813700520947666051477773206074963927007584983678197988942071753783662036789812802328432572786126312790349846216687472930338151745450929467894781574202108668294352250592665801205306776003193243355214809313111189853890609131948398713864708323209470083031266775712820086924271612575841186453336272678964808926741429114795583801202484853179319787828501661455849924540384427810671404847525965907681073739921970737482605127520434226566471480779507064797472066215553411570250926864950384223783909390246051444302124323089615907549390750426623253025930783832214616279063403763122270496062823754326311219463680038083524742383875412591730915492295061680632946011609548582630702003162983405411048575281944592792566999682281160681788190631631318453846116270338572593624151680838568742087911411277995681768063732927869295193716625529707188748273439946403266836533158615672318784850895518589971492361378511280904366274340832987874480442682008244924534380979022457241385133114633557242863999656445128584066573552527192180399425472159520244496551161971370784234582021414148169390616938941074140535316541775079329778784768249181764188190131011039361938566082974963926683501062228285406738428387936614536691790088136780980123659857504518265897067156805705341051479288320285775958467933883931341726407790654459664700272020087749188917297157470144299537733228502553268807570424638170393762816443846672595599329435736769881109168486229426095995603679099563016790139782050496902612325088097676729243902137465485037263511274275462970808295538875297883781596363436811427824417037432850936030393140741432022604470369141856500438653055616464630114727287469207207143503468106185300028261014201842332370675949835834201700225536311207682265315729744155753564152618825031534813413617967173144933514096955708974015387039089769023250421886844048898323783538916280301615897019765076294502891642399990132506443154063344500926262562209756676216549070848118631415355295833353363826824106743767262501193184837463990341836334247817968364175815662730071177274751323236369258431622303551101197700588565440726305248241032348583297286415896436969607135283580194498064043021918778197768772102523305498084965644520557813831033221031382047697409133814146601947180888270505654449254167562376977149894851687444182111441098741847475542525084342586408038299952465521339271240979352388483109143927457969486370637779334304037077105983894863884178230173169215578618517166687297275891810020439220419408083759587224309036675595874718930008225277401325347673079506672727834386591666457569093482499644937364637420476715569634704159496818429747535863152409494555327653955864643380293967066573264295620934104493683323012487258140208985031467071049244631097987411668864439400156540582832574331278454539356867562255203349198463215582565853782303376379623209969001562835885499565105834837879404879099920568901325831909682391651182401548971848875741968499470708749698764074078290220795619290087164733725048895227068191201286317497589141496333191459666822347801984226473236590214353167855585774783189624984257024404352095514885018715486782202926618796453958615411516584223182150018868399958907098309439255593923673241724658761118709857716326061391359740702209837786671064306471651820396838072491833217649103433798880689283049825167914932099518965495399004905578636062233820740789547132477312384592541221768605146710827492509526838240013270720273638498565731351619235031330916266934310134603534482714108455592638928905588494902043055607934444255611357661868871345285070962557458575543891080088641271983422799545297058423570716078936859107278393040291402026065589694001044052927391385019861610842010815650298499693463839964653520710611351630315685516846958115665727395580838533180857976980890956925394767596422336393408883786784450057381103165388375239690725617960822716560125473251324066543736772756281175924443384781484605131624227513897404380849534361013413057518129384966710228857544236451375322879619458124946691073109362584118543005694364250637130164906345768174373131203322184249598882085787197989541445367612656380615789549680267607167330669094279958741172703088772086313999659659947374975850654472769661791610395879649631539184672881045257510705772860104122424721956303660597623295478511862063985771547700633679253580581124552997944859471008007941715086266625357981742812956037556684343847165520700293779658442031886134938989805256379837187253152536272318539838819142322931630018685120039332481840055874387221794814469356932125291148745376455177637790090657772847640568544279327501618547563103287340397222239703875856127277430348407962102789218891795881827161495536205107226626721630938348646502596798027507861235575853452595871740620057327933256343992176889788317709722848332090622433325120498256782929290533058295194176635111936789154357261591268895437753087318802705054578775262001007697489512395211176630813737491287977790585736602774915448169501275779313751571468058276650434722046231865274094745641905021064176474016430331574614171613731619009603946518859435960902716506556341704358153103736184706524952602370610487004079826285703021597074477471289019140977743622991157558218008596607079021564476733174369390631775158952557378732146183003521152383570676114904396323463728942255899491701408955584577668288098342709917452593547395811887908082265267753317323201880172508100898604079030980823014868872153743229854257486043795050172784228057887451661438320890659040369445258643620378715721292852107337664969110874789259174575462107383469776793863912482828615708289873797184591133903712005000083480414784176431409149042264661791950103320027839961998160945824047426191691960708968463355683321160804401061748289915347088899614865270670776658527403543977503256623417350951515437517015630395209173401793703758390109327815586211810510627772140084793565485904392589239110590500323599256220405245702813154515054806079562489161708712741564129667586135231741346686594481076278997225834106357156976394603377797556235605816055257442812353340201395177249846480042888128999629477135008823190486986724246986982873039752497573343048634457300490390005643231781320024103274680981330278893222283190577922873947526880597111128352021287096403848303724865492538504042600676442030596776592918845104356465649363873299746711285203714564430678959834639179178787523962101363991795385088730977918456154306121371131726002291981192009495289698513155597269293400176298255551892750655921256914924843143027469223566342933166326556812032207761077713420578745984569212695861364174587208353350629825496498916533895710950386573543258999677680166249680917374826172890340982459238625475290817741006545908140390932483032821731611113464010288755783701690433780765679973806501885686448840535233678845667869141161571942666159458482931467310833759523061626876253958986280258029218945089368928574989318977383532382569282243225939535624767382093799371319701765921887769973287974666959095314177410747063377653921970857075501447722176131351849920502417906313110965074023603118766364403825197708250196138973339074279487550754068712580490116875312492221247379532425783771573103169533614463141195889173582618289697217802656358695027263233733413610335230007981405216163747610425441328791822627027197359417415216424345265730056674928936070187689894376071913190986763226890431570052055673213579471821350597792181236030082901027408672552521330109169295596549834090733616425280352023737354585652649880490790127476167420920494434350656441907769358531265794144174297960024643347929606287486760365508591975009827722708804996324835767077186196996514497402548971407212178120085827584610441130999858290290859517077025863890285895807687388957808175105823152052088877889876925757529439925750901080284960067679978082929494414505788778037522985563746123959606497777223317827445596157904382027529958552647989661233651396232636153329308462680720957166853887594415178351902377257672403049214020761188413806294871392436760757335689601282273602567719429529947006637091747634688652569347412637719234566187255621396026393505689040597266944503413805756015911181712912193046004384051552656379473172146079678437076818075410221517993394365676544991668431848491154469579006175335524149632011695330078117791880821129102960768598842398185580829097191307727481282912584458492075685131035181084648260738025349566688537434999983902890113189619909905331749001890558760736233254167147403022951047947161142331082406366789348513953700858372595353779959036877559559581670768794142368343424105881746914861620672593970724882543878873426243868606941779453904873225887438669636919981615864438652944302921410847728165730845048008444266255710598620812917045496340727794944051378728966799264681406593629970423761329298011089385361933831312660501460627528870227647317592028407756474178352350578969380840823527270778857340211132052721236335574930812937476210012571599366308680664459787814645016394191465834520405862274315421047704724682493779520929403964599199240848031305131514212379091096789106688191372407509924030748852744529560151190988945855982472861766946020518680820182541757786827203337723554436064588867317092742399549796780589839395412652300168114165641757486143377921545193193803828232516645384536862348564387079992514867441579676045223496496064689394744673581464984249913002243867355748578908386582679001248856638756550139870050149859038736223930145262118350944292281640432248266541693681585647899670972313262698549462497289609062626202108188465432456687491496884756344065921961229189863079061206125031282248176910138152194624036842723765928743981975764485489322465653787923684587419537124763295391196676883404036269516500804428386961048447290155632993230327895314686637329105265653902434515822589684247214613555887807232561449214386917691079084943498699966171418128142054242135696544001406485989670312478024550261578280070630167250130644684129193459509725103858392105381409398091464949604911575189511590718247364922757256883510690441226786665405041886290899652200245766654416246031080610102417363333663745358851129260662569078263102736000026362414960453940176070528428806863914572719519440031101466676461940965340183283370348390951001800735687572318897623143751870507883013199482949942329505991757800679055903405267137843659215200665803666721229303216407300821425971402348445824915570235070193709833395587944716737020881742309858258656450742444842941009860593366572343328320589299693110940099486891214839863059698450831707901641204010397301267508282308145586952517857075066650720999112777393143191173715924132965874248944273796798605190121722228302842452503298307904623983514542266736072081631753020053305810148395267780821185584595648892750084028391667877698213055623772536672050242851383315199020294814888711731024035472279959392780043218856112502937048241782534840210953394123928894354611891462788825096733813266267600578697310519391815723675919286521063844917555264203226239897071728810976083837985828346393585241124080183459695872929250727719450988648300951383724489097133487398674538910893959741561193589360204545376260925284776801034199979040421408501643669554141212448875264908743350814590375168747294252413979350345683769348402559436855299010080906140286578263827618389420844899067004002945542241066763467699398109498080915109630429089911706641958893599942075574436389028327965403626452207059336265909385884250778376063627047793663224097864190347380929125968701470406036363206412859252264556289356361471572484209686205764110124865779304249985577846090426582940849260997062334436706323868991900180279968734693387736576180624947787708301121018241018571139493861702339166596666721362913477176266534939999433110537929178523245915897152150032253691383224057187179433682183151740122043709004366337027292845728376972230214375519012395359680908454981769683389111884385287070487299251614373643512632280427839022303995351954449375013066569914764910412504466746148829679362997800077657047575236648884013537673145337913743524201948267490663185367393187625636131823256707726531046061673564076023616605313974116834197589600399527186768079489827541520666132181726982980920047345711782185906314167493876763401924671990163115703038903851951476404097380099889131510901642559408057187512684218083185383554901950061725559823022926761766740855402921746222310112375610268074358576413717682599895649956158419933285946697220010657073383463935293593262572382843297989315591599792959378724711982492054194269422149510860152346336026607871662349009277722385629031631597017676179659791144072716031986532000236535624443567371769189344028092869695565430520620691980712017227787050220960591743758396034739099628096338797114077311729695522312834295059229058554563685070104879879873300985342327610092977114866470055419913864616000144757718788767874346569495425626062524127003563059217528003389121605753595277580433294625654866607722878332836623695939342886393680704561746193276804504136835344957062282243250801908998139827212992569312972242415591068432022483317617518579129870057630106017952712687752926144607124733045866431310277382731808510978882789808968057030782272659404282904517560811378455552786052847673743676409370293116523556858174430730407014280795968902843903500586113886676248503234227192363835721153151189443521897129621536939287659399055292688527958498886579728584737852883697110370956953389958496735358505476068942049831619651749755341320331381587304632614913520219999596515126349402967816535128132040113041197083818301538070325298089785855430644628324677219101024996450249902694466339025843331778196355170275263100038096288906739592683427167107482807886778328395413428026262291630098028864553382735301730894504305715397865022395907976068749244895260133636591451179642838505693339588219525703730656814179076764580159390243426711859187795345465841965165645345439708853443153951563121513203057107932066977808384933511942555837875186983774459770994630361124865001530109930783312801571405771877887282688692753093344194191552059722950231152695801879724703626769850761910875665045755305914917930715457398461238143344785560390819016907936768941441336719857202849156141129830512828724055147438655678008785036678098986192980838140873104873568066774676706507368229498949958741794785826924692525668871715689254546600524027672239949673225861198940300674989596329296801892043007401657380442725497236917444785039773711925415681581903006545845832018989732912379095451630491136868793955938379293483572918348692721480517500713386340787129002290810517804054560178555296920917197538404430064528030733912092882305991612096227803005513964087742717508598757580551819624043646187373755606462405523918320564525465091980614052704864372507700747676370519974804744640656916350495996824652184694564116514089041173214281329222165537944523007680747921159355130120260299504430449036505095132522198903664616268774361629548190358592822190507869993857868327050549530390876391999201221941937910458404611948983303035833216670477583477897048578974124798418739630535751536599141643602809722974536564271115523771435084581970219002143370947861488482558925563443097305706759170701421905565811060528087432811017074186023929646513677902120425508334218371352834187170946999851572564564523077583810157165374285815237911796385509948142322344018780314689849554794297977079817271392677952904998198308043524915596376021107521141913847220448689962465000204117550254044801397432436149745589807969531815790025140434952593245705547496118584289409090909819983304987163781279830078912466682776831875587411010843100668571667088433385263352594029505372348064493833752750576337017429149452482140764186015759373615018732038463397628504382343541434935713703297088320577409349643050905629928281150842558134992148407177120835941911810160804730531953216178103147202028266952192270586440703114080012153629076598361155811968740800086144922002378245033464541190095126567881665301193383465987274360550562676537752718647332071547723871348013037227824649436452065812519889037102368461413746374154076920346512989948904084048828970705053677734580043171241966490217646112310155470350983416706875973970517458158542797853531825731526162110038562107048664507230196395269522842790338000381421366303137066111772821051640505003885257690009599367192875820890521798013933113903346278382140166075818527106271984465055856798350209719137648833088507761100120067867710305911217509579979835600402913426679908386850450121605031463966354073597886758498396597232243174784612685178575558923766875132036694796236398069009318899405538738595175861688470172482101981348778792232810086529315970017430801982548968289687762813067966260793670159427055556529787372914266322618679688933283403223157048828238098917367792480235180972449500983848473786612943234118601919876309281536996322721071060476777110474674349604181558822662351683417131979251536944713592956978624184614121703376266036920767267863425080349947038273530250145595374001794352440752845944443150580069947150948065372980403750434904022518731025489694829790317605171738130125181781393212936923595064223076161484705771029756284977175999985386229857009368550821815411959376610328465637710494133541908459735642350544469922849797700370215977459727189076791210856548974195071695973120187205574548458417747059995814753146891518696311699826887523043204851394056657034368275922105165063389012990127725456799331061302092410943717461136956193899434010522863428278487388232975256643670895654265166143001057461748171232090509535498083254111346966702926053123582985490518584640835112694249730090544667191652069523045026214825186071061735608427922725213257393704473233645454678306323151742778300254179123505617935158748786669654567405457177937993685464429934717313688791862476182376136688901054960615212837984609665783470391858737515003333434887141517379419621418738120370003929515599299542954179617120081985777728778386772468927464572328210930461180373265729818193353438284410252550138918554853106982381332601657562339652960274734708112249668721586056563930896879723086338845692930249576104633898041201142751798310168499482389401958560160778773510402681556790170669611224299251216080922492778779281073299836888581033814068955808185641718291567493215348460645940156632332537401401261625746560075926825552043082168606016858738515772529892725912626640136172098264250286082620678628587235798421891701726278348123135862613273257978033205995450454435984960841942925268858320364391369759920809826728996764382574826510328210926828433845339499577110532897234678889434166684967904346400963304059299892118560653290427909985264098579436179736656069435137485697975157814880227271346321515674365780425829361569371052961421765921992554742328988292041648245160263494677494304096473573037171354067355624210069025004194068198183406600520191531807690955912752747157325353718230711839396927506157440760191361503629628417069859857985678387082406573009878856549292774154741511400674836644366103728242086112018202753117882840580137358680969405789479626242312149956229392603402789230625789456618764122277891199151630199751408447579012539525991037677658934969978908739365867181319059512425905877312607906096977099750451607472001757863168026593833812552105018755923637897485220587483246357643003207020074957678675127642755014755636569290150659064775877122394701454295468124162503009825506579368715144503401775308946844178192305649101137010291438702858863401004129558457316457947863296457320811759061758970612456753820097050887959145669374586310852226917001553001585468434231172560387496644623825951737485302826412774789923966237127449553426366414489883148763948794947428436950552581638494138782496929522414999059340084716275271092566081390975051626217478589869668940180895615983780889231901431247346154622409994561252707255662501763632697378808129993231620133913755616701249610057216749282657134375787637063872949649585937217637492222403752872186084461917645395237829701098571642511876340952758437523125108884915909019737811092640610746994981304382068964716592279325856496988927180950896508910982283978732899055408110383269417975133289932059325116153755399483224634008273940746385976295830261655337442136948942020719944072366420035884961751825135681044369321034144261864343307718317513759958723399174832400109646233952839489906403148530882216112619195116716034096457841358185168426838358848833003050700826532228089215418310311297136230225336420874836765317538188567327243275644809289322077766105259350763276618249979387254099008508060751688136894982452271973500749329930290090672197930127550834762016813740421811822256294059249327435715293242836562894185332168139326779391654989244785844889086233179970030826300328910165448993186908081468943050820049056545078048403793011353392974304488356388794133617914919659906240611621580080896200481304239184332332351377278372577508409555690230117699347414177651915822024788207800862588202942275421868648619942641779216628784761688396651485840547637305783898122052225861826264138142496883786596122876132599329667025173430761808903513068032053063012140582661873100143822188126186617014628858050517592423218059274675400159611755548188041948012915606986986741164626660792645997341402206723426937052469904119806402694807011312245208339218042075819997400115438626145609904374981525824417570024458896625386246610729685919464404935351071658859548472052782928010917956390794951566442612404760063372092568804312194540571158917728461665820532904621319987810508654558473521646193234396430625308514653031361744998816647212995940972848586715929221529707462920406035686662062535700811287651651178110555770006822889013013340006762386326430788591756421778021995489137438297929690136539508642183733094311800366272550595568729144057758363066068731287169899855548536230161797225398636380898876919406485132849047684820243985985073241744930514403402993977853334067080242291788556717154399709026176606450909485918208412557307471394709164851305604924020143606688973486702063434604781582556059433631723113417102336829119999450670992508992152100283532657113635207794444679731728966841982345294221786531079970740147977927764278437124490653279111121554599124061021844457862010925625748833254183701455112202325819353137808898646769781251513376914438223869522716873868400747188102131506363554439823478687916718986480790832936499050936143630562074890347150528580863030313382815521334054441795203265608917214279936494230595680460455044928939834217274912918177074013182967383730567434380485456073030964259883335813535358667059453279743923440154578722660342625221964697493133529119189692882336011335062565885669131193978474357683104095425771647482110547935644463846441803189730882099319526697291622627135760632876148925828451512596505391778960020001518436417958289848742301890732468333956606756215637720521018418037334954934877777262443172408518688279794545907438388822562649936249640708508278855955303980236926556319490741923729357666569063425826494364186398397862569474696438696408590714217532516238233767144728062419242513167980844216541872672418906622585910547789147858564912715925069271160997836860091289835366399739322640596043301231351412252189491117401569611233431057751062867572263180880690740348829399029279559223634030913719001298433332356038928177208520614897297563810258551380220904637808269008682966714078647083645880225817448469973819009054718558010589299296267318605930132846302996842364266411865762652632641624257553885154367864469459654220950502694663447496620225723390711144669586576178954375161727677288200105946683089426551752015412599703324671990701898250980010266665371735754251225698689632689478108667274745372587002521118196910463648759359054330598156271297727297993482839463684791374537907557379892599163828850817071996548618104973582133362086700075100155627304264368782442512001764992091348798912874697206385648205749875432946849158385127524098387200619023778752607609703849955002816313697770837656441592926709862229711670254736908443362212131465776496896741450562351660411447880357666904988269499229585649738806081489784760820500621384481215242783063856656158063557828531928416751975126670293403805730019912898310155144666633319941459006157319926439376677951901468848554431803976202050573063296987523930071572682025152650723775835013657115753231943236245227002842861525805257884833835937133420361721774830955899163136907230695835283020365074496964209865640705740722697503519015527370970277373700848027206750968805747578124389642379106231801114380599432059198069317195833234404149191673409367413051412172846777631343625780121668850328427121483306423668682221276560952666490553260325924395821766129622122375124319830162208828807814204448211027887509791663225075873378126030241728236621039791977480924943027193452586623669006808182191966535547984887616302060378013487343934694281083443782009617585592971023222073178311330630431453503203576709640948547227071638466879220628677945781537225964276995278492996795261780169313832067620912495063296079960461559179271554024526923024639125924741099715431821438936060711874167172371224941452825657759504365801659107819679899664277161100803952661588058898054035952110104964955767905227655031633739901220455482637244338428062426796758592007067307127861076451724448109692722082445384640685772705118210401577253574163173132201789584483451798547789476851790852023190941751623870715163720921834510192320930637080254059186601213356656780368363372253999460445968388495926567433727293819084554619775258258652098413699524415645541255506368002417234897427038010864292893312825827272240255076546223483441754061978985943656758956455768069622908005677089007487489447807649851081844027477940894674034902255194172505350645012581299979598360252491340411739630807565651448742772517707997457199366940979683234572615442236811064084219644576330983222003087891256322590603022420015192589426005701701851909092190415449891004847263335845731601787264528748215287489042904209812321804744027281744806643824479028091543000150868841904036014957275254240567628456844255682133978989336043920325939139886552981250780375943809744473237171805005408994963113299513783668074869656178008761550866497635572986527218086286028559073862644618954692052669991743608009308267360407058222856474169777700421935535482119455609806748934232424280001594838997089882601533326764794260606676485684797620263166739635202690032723291938438823121405626157034876024182293945480853788791112008816840489842220916236984933083245747596388116711217709668584987096150690165477913199384571965775559875313061977528455645041104581242405636612618814382295013103401374426526089501481922568091139850132863197202031796871445356530510851506512925764599976847277017305055869105987179737587364395582218361630851645208505670648657987360569922649945428306719091550126615224542358077568101356583178177456347664309241408729415358619388819733121981437208253512444818858575613549808214708418650725993753879737731167655922474843923976110458088472366641676769938029457345090531749537585757350336282922408006156306493596894516762655739187562627569865058148104896201012190975416356059962817280180757013350525675604979393042238937004387037346082871817336460103572796143028588131461839876325981298115427028231818819770159727338493209849398582095653438858140887098439649281013584942055859088544285164315507850768132177347848383857323461451406908933710479728875948957607865190069300045196465268746945207085778416621144378973948113180009065959429066434491902524110372034172112827350655574244391046592495938072704962500441426944348909263139321907062186627591919970298203417083978136919051685119626420931106393208935322489723457202225709838227674495720030659857308354407634595748659121583933179522275515551979325140342666692304576361462593624507235925530724126801023000677823963308225365107019314097830056331308965410592205486858386320076273590135219959599602172734765088748390141350454722477013851334191941988702275032370709471398767365144123863545190450286984875366847011380873646248065447938387819873694520273674736937998331161340608779677937949808312190595125878524506306658081384096853132018710653937574788523956960036613130837021482881092874302070963075834507173095296929896460208969309898541800078650085952235580689021559156027447842076426498791203636645853751888799166899209380593365494147020537648026277947297318333103448484742063594276235715472256656202323854268362620587442954994452213465357955505284970374519053670533693147021960838370160326157605666262237277977238798140910676653519467421716454288087488181513037923195747952388372495559002178663009634917835740533566936144812824438201400264301194851178593724998766451156096444915279343836589991542039071639330452105365713690881924425721049637355660270956694943815528478214700173784040094395954449953055819226762228365526687466077161372605812256518156781585341920735428220154520540649654895335058298936164034770902727694956058247111115941729008274359695548770261044234186520459266645706103568842685417471040149780589639606037906677949371424017152909600552963127725077651736718998203610580442245291283765851752718160993794207927336793325482037265430983681551626816823357363160774837314110230415638997414719210934906595031304833698742436818193719386965916575130588604531770626557577981430784122917875892338234680105189087997318156241018510052906829895628837571763820582010293471485888111759462797877224385769920119423594344666750008374721172570815207628310332364322289996792453404715181634341022157609652250412179532015984858370199777663643558958673769731781866703111236994937189867400447937180621224202678409561811063040562042526518686297222769096806954149505071587481083434089451844811944746104171462309000939065838763479829882883129831584992709671162635348385317180943711585447411734125501169668828179807648650130248375305193687515431134125266454438328998330045967741898900894197423729592481549316851977138893217218133291121184915663422970826045126997572629278359462510237938831657198254126876828845711960866768823700897052787091911167041930687572318858823367665689295620556897887130719354103117046630516429407270559806127366002310236308770740296109866466323106943643375986385576401838230520624033633452659221982056839228935491849134879477681060188388327783176322534302012277417437485282096106811277884655675794315027776124393825693917095593711120932677726799662658438380621298631338872603652518925638972579417332786245213532650976983683690159950870650198386992549834901231043224372899980366740511390078609238880531518484779536598707041641569586865877302769540143048052064491011650881240946705195601735498971443254654797793079594026661032140746678008092374892591671282827483860525510598915295845730245109434804789704395288496441679000300806723560652328140179915799798837568678282303692207470408149651113156839083670043891786755357522773573049729428118977229392981056002756447386187466214820708484388308145803987988712211578599614063695434081787306676050430808944135131830420007393418575269120550481542906432308225974332757574415227790314285338264277199995832455283199346668076654417351056078020317427236077806435600046262115884210497474124015257675976600715098048112687641536985963521691931607121352476080049631675154222964213560577854197595730926844934598387542926860092248964303352025253587294177833917646734267207036987654257417819518786877293176647421911108727698151417892346578849337070146752626105933301272353663385903322180485405408785162247468852652994655673025694237982917778125515253805271386458417878615818719814266499939195987940774849134066571029010220188329653506908175104412010101787305785628418866446170842304535110190033192452913688810317307513652767736820980740577316133261639975912769942300158150467771414918764764858319203756259856314823797461513775147082598132459621586301763724800628216587870051075335030962174005628994108778212888935949144839979988199942230636763631766279772562141859993615410446490154580476621613286481051736660038210597045008259572721650287839536727066256132267353340466430962950815895437144090369113214573222849189827307198767041704205308344911949818865677980773915837320266392187332804811349534647691221325436519237431241317256732776817860414513174073949088646921014453766865344554730882588204726374414126567669003449939388771512202818140207100113719461588046113890189947117506153848077329742263843212439927826576406388972329498063073533883810018680626362797171052915638098507304707391962120805006728454186272069924061421304199554628297130504932383934904134947882524644965228742644008265731437697558295449072123524423651393749490198741992930446688196403855554475329724554013350808621123005356929321388505219416282198823929795667643618398615412028375601855442424407138885462165382482229997961874738578594466175013366055988157771172027398412137559145012176898784582507757020370193510227550963012138772784007448927808583773378265813421080822761414432269809277506970737878536626275514416913867109930577178522751673572184271395682771494205063849509235021104897200134165363846686496495327839296889204251914286512286365872110804095839044069249349288003080693277621214587321126120636447564361314127317909610613375309615273646716834565577790378277546959775854029833571871652949686488206878742344557828449339091741968897370769891153843096268667540583154324006656765335043378885153586499561780089987498888608732541271648774515253002982742376983869899264980946512045085209963072375935139881646566965618998438224819796474263859262016766125469067636949980439404411291941232007592950053191466339404297914327076001920732761872694214557935797231083284920435512546474143911466053850638084532900284125925520262984432017201274581352003807342336510475641073726688541026307009354576618423760977377922106083298123487873177231899298237391761431192785425103455167028089324319658138488050240335233565360824084781691738701135037523333845479231527349285687222994237573498655786928409537773283542320794520431407378222866962932335539330559796300034638303554677500194795817821832860694979741224878107375987487575237914436462532401777682417683558196053942795343965139878177453577268147345035154944491860896315862290818123043831617484415791327335980004255544847003803724594088425519529031302301610558605877671903405965378718650337712535177059936797567869514299751916503634341527150824683645203102565142059202480679591338016747557766406538937552289634682429080469529566672715974763212630211540554699779855555093710916545826604255532668147347002829800827154700539970801677628772299711459909093947678220250898919257133103636996773667337659369522715536967333646882063171679840684040766311531121176082677630808814119074485123633318547714318997438037886790255260592152305911794289917236254582008794073313808882709334497770122998833152435314728423234917175545270908995226576805110988651767239007349240929232469166357131019187241455557853463850214155788969419349643714952745669191515760791575416679318774260824421947785604254677459416657496154608341822491210071622518535074667697222090334295841391849358624381220639754915519543017695591127383035994325335446087671234935813652218767108093525998917592107899279662210378473382880440134389204806287114600540443223496638882024243361268685209536355472754525858713136853515711880414722888095999615706204804188326695733396901403195815996837634230047870668044051365722665991861580971218395689903119056549941196896642190690545581755010654778957188379353120524120981628584439283550406376400812441925735181012785042888911877333109998456203172304112858252630359676410957439340065392385668780055616804458512112897958546863812059518549630744424332028432237172240732267782380971123903634366518427497553953312790135399182719446971240374312633619492030266150159253194780510010687705477425320880740912842865813403646362785157409380408579653497822379198176831270491100158998228287724267948950567961358698340322851406696884352843012675024465277840310443988645586275154286014662041095406197954458376990134469186535397880355862738236538913542188402812426746610362662008280622304363392603363959202860934630459243825324702796947474600157496672209456689952213633609442564617666661551891360444887840179434343485703113133147532101500268306893687206603542000504176153971807515138515683576178859560267946118853391255969678499352500694731408709494336345510634326388827116903152397798217084167224354223078565689199476374217055291740293656550918006199251825490689846644693851905257246564379909463382525327762188516933305732608771022483029712324560438874483633902680925473760195829266654912738665576663958413442759614018829896167313613423104021992183081239110350076183302872641312018310543770949320861113989951100424235678990023197888584722898440531178957340671094194399013952247008010457325191856164627824358206547242334634102500011533547634687809026230481271723753884075882773766252257749093939607972675525803140247365305906543424592661637639255222476816904501853331697889793404094013837298278897861651463097398711993558789697506971804341203319357642955242483043229982700245439840006217920397122496244996151767850931664529101068810170284085375486756548920292102060814677463759116101573628295408753862896318653942934772838609646902184651281245870074883473002633108372550984520714321511033682412586449625321991405057225595986583626068045921800962028153186167514350953091520089621793074848035020570308473374299557351628815706533673736530723868669656447484336937802307663747599311922002952165755695425317315038218205174738121386032841954923241500530272242436107808132579259515638819476461970334534573186467402584850180103111709788766270426750902873054365876703616676161994422149809537007557131231918829561241525640961281020685253724400677517348654117677298373773915957534789683881198080663409605415451344271671164393911820676125473045508285337065397158799388114059085499219475790166355830905387818622701062325204383189629846422961891885411887725365883482455044445926905299258080506863795797141567538505812646891061048828825841741624020569853497715526464057246418358204664908273469512540033119386161777010751430886366163803877302210005962159168835562203172799128191799037044966724603757687357621941440506046233235607345314484511973658151818894608198979356287897702454354182624085269409874150122076285710565344544481684336116931043131740198771772940907569737439113006019698128081831171408105268591197936704949034583376621948910269328593861409169549446090604387783442671569426440614437649366764507222710345171832916673725300537076424171248449010897437310174811724993206544324886731399660292409951324104966925722229656072113343594672363289068082308935638871828004485178349475728000957601016760982138221273623406789082715905988994873766075347454292484093740629914175970735789935400662531254418904014735423204026327384976885692248917005075786298477523196925309560072524556531270661748582203834651215288185041385940409029317107811638174286280565163163556342469498317633773523295797799134518616618800577614723491136098316239431814089323459795866251934087884942882721763769863239772151415841892315951039679614663475011896765493311153609037328463111646252081113368257016578790513467400514237229419439728483978692227443567478194673749274446593478406784459398261916175156676969162528206944550710678370473869719517346252721248939091988414470937678001527929068023519709744678879217992254814674556278478407651481124023830685707395353176861345052194098075301268449251714623561776171194764175997409830736096676974198245602920442214335570924639564222391112470460526817172543991175288213815770641991051760452682179716772433157506016591934132897788780145799317866626572212962896055173541442324206270772150837912988156500841931080648712716546070362993421273819227623011953463417711280574197635754896755716568669474666862112044808744538325301407039302883915952618463964787578732097562811182078122039009509394614875788579531061115781472252082733365854123981039183757899997365014471547494083120631938233569886283229517267237162936812997624965770206490216186060432391641394301029878518546292568304690694130355999809402228359016686078875618585654278221464969492450305884314657381677292365982207171870453867531803464933700292037282740861647173890500657152105896063581378469937887481438795499281548167600297277509529903250982150315396544565154925176471295004577789835567978598277011207994045162399779521757600703308614001100824078208525712657490696238916597739037100615759019901172208961939523994801573063753899826218121527001676975072203866730166053588117679908782843016027886153254813103776401653371340929550140052554746564088365451413424880164181354257804617560778705500313355090005776975341389956942309261416052597332274189696486391729404965756286061501101632223091748322056302075076242356024677456126534440154532539246026243622140397435182218755406689573254294091984707068503360075600963398114631879192953535074061936580110237747988218815424248983299222882316145811333804801736477058983077841761958612145866953795038753377887972494146145120129583622745147918621576871088265765165646911761911134602712195068782406843729534094775297604411079650576796704963591748877552025132720918296030127808279913534908047657971394028202883717374685151506562427480448543653575621875693701247899237346700566197121472968994009881579519789815227774411220782983140661971493329273156668233132704914001342233085647122852775310514396518863510326001503560490025334873236684680513170268276219801999813491011224938790405608461727925906397877528858646638065859955067774140954090418162526593769320463221276135702483319074695189924498878161819326973996116137441563066093366759389715340026440983060460329310352938681431048382699896080458044672006414988436679972094975131186425278017799316079331357096698507411294355010547150443688954357619678099901639885655514572156023029131628253001653805955649138521020001422837424024780688098359116714796098426293791811323465661363720879934017446195110702849159399129877847616921132588470421146550356819420943555903181782838155583487086798876541355017241391432544851817864022083596824929687157649338162007053481752879425598036924339084463377329526761128410082831131357713698481867252507846224038436059861016995367549351744049380990803039047829568539722767600965340035042866823022204914086082496542234150380414399450779035630690159044491499236328255380933389362406204670286734996511825479539951927631241204286348522424162485129284249996149480069642945149699042550218723331504417120777007477573317814335927835891452016819563502528153782939536717056427683669471473319518419088180576068292811058408305734770242235006708532361349480235256123284612689923067078307595741127299168123244855896166289128261284951387366907990098319980390486627314569256012421960232806674990799277605888243593010209220179268530348794099191257485619958225287326646593787201081222698254270619642741383409560449138194258738205684091404725330622927639339091446141292272678602903469381377724870916713980851942407737092507581165160820126504123374677918666623123463527417746339440302683426665335270405186734979106198975226630089576567207650452983737507768616084610707789870681938003033601485550863257346323820258232728088776754828833288740939426399260505152432659626992125562658091423904003026404647992347022851923346542307676419921042201803853952244275652804754673496911997976302941104457859194884059251922928106041901433667599528010976919835034821165524487513821640061044781783280169080028600401642586152904964564010487035117071788451990622851264733919385629695712086549157182136763637085368274457406665006871395622758654947431475259690319423876683646881276609264174842884524480490554677287636189188308379019495835681068392813541713107677447005884312641615628858904725054035820873956174404143305328664426813366210784451782432924985966512423194835928054167008239737843379720072623031800197946381605880751027900677187218475878483344717228084495387085397676776298047816450393166230888304637852544571755913431006149946664941709475051394629947368245010886773536016225504915738941613521515945086812649053388290607550594683689985673678715308983279438413202294968641506940954302241513622492639631455713468628339308677382397947939833223586014016099874664178979287682652083167431389822673970034567285933830909431092499041307725191103375320427831455750483241385813612861734965957250317291348542809239278383391072291998316829313393241080325339230996386481226621254232472083464205586819445372325847066967801127622738571315684032915214841335440262031173892240487018625558321959458708071596355254529339942035997019663712970814553987516618819237848198317744605104430586371496178768550695672814611934133365140467509142555046952251500899956191984048303702965548106635110928313341646185904678542979054787047176453537608218605182600036332760096994090367784457366717794487389720494716246328635716463661357971649475421250137546157110232823989890707962791698499692699653060180967855157284822666377527838984322908960634403295558171736082913250122209362677551287020655484388444119579121550014348497423193843627942242019134304971732376299337614704471309389554706435232883576516033591546323894649268757076562236383261145864063701603055462636371942428802481054624435162520466965897351096365333092934034608718706609728626928048222346160109188984140497491882094803409152365167688821684861893208667759967849892016946835125431915745158048242605924017171384876006904907751920388406189361910908571362653735847733885237826003550035524384151360023154340961562520000773634431493938710500767091173595016243746260271623351689281385664880039135441322705348565017123229997817550354449197284122368834599599081703918192734044945220312313149586625619278503593060972953544077007534718760787439370532273577450379050069068937749363167686195914979762851463860648918088329117995414379194580023978043390531261523004440397949501833347502180215047980043028907264900446840415320645086560118073199066613464709986015076057968205378479427964677469213225066635962600779797032440627577033007512660206493405892063383655430820145859314052560568869375174561775943165057054339791973154031728032143912273478028244351729064120415261688144952139926668963992201072867329694394039071848505468289993316387744353498034932891141016091340194965237669724756588585913676391623653231361974583454936252618681772846991032181484874830205172653519883994659005702141133135739405394218331938459865396836665511256895061550609802255159657362516153529685956152442939428904339723153905336311658563321539199955532082730248769359990050184895942407642597010643731864495165747068860402813750532425179785949651285973260010412338862343922988387844966376811696391145593691439060903490019546032900167619795494816544441403542717370264370825267002905262102218683670384186262054915771419111608705103202551916509092695691552543736431345960204125112326355941899550981823723538051978722282475699954354656244168991794992642285003954335200371452660237357272466390552019730130452449486775956464578083825095949507859417695810341244099785820329924612965094155559335692196195637481384755385675407575579422682193227901028021591218660798127822586866323458645520945486201905115064896896111931106802314504883592146756818953339061889055952116811353211307209557483875913236527638224710650798779420287034508520980029411723177715840000133069676294722709876087337738809762719553575041124942580942192800811198573715450417580630001644789350082669805245275468264046385451462085833768523751887912035653075225134884547932748185643389211442681034453653274759035087894941185121433653525965715168986045615560504128069712359263248090242127592139061429781541910691759229159521130376412386001546958087463260144828445029277730914447832081726238829716210639231867853747288410582859147899513959531974402356415512649001738531579184508560229019734687991662709909020772476142991462693193651807351530138860207288735122027931438655278721893755531713858464111168265781007370426069990716997926624063770771472028255632123252252083884369604114979744439729097751759047798608376457335070397656617457976942230156962696912373644298477655541257038307459927435824725188721082655321271178881249032160841334332602038285703487681003932859892570686112932852900433391841230194425754302842952674630976194658178022897797711652708986890653905414511706043110223169593499092892441637341305100962241976140667521234624820008136614545732560523189745116237341150888078911878635919142851968929073967582844548292737334324819259611453152722047006431005151482371622722678801061395333381175287485181130141863199049734975310591305404676627344384749519443947581763248852396938905185266140081205502355165274130159217611624167440097513663367540603517138217694578928802102176618765254698907485717633369890833301774248857071869409605180541377572232249286262704051973576108579956098939465346627576132844895057432523960940852704129803933315414611440278351129828640973344898564118668383242805044430894561940063113015746561880910577496485090553286746426105267880086517720507355084228961946618751414687392858136421933947342004254190734713943504334312779296330086888127722462089730110938860184196958202919012226227475767725261245096687617857032559131663809322324228938710167946762295829152454371054803627168659080600018768953833824588092615594292203199786742833201252271955718871089375168414393094261261435414610567199621217528175330878788801087082406453664705164449419636674779250486446164008868308892532805105937229367408025578730425767298650087830750477733358244420546211314930527713034713270574295923839726123237377451179097479308096810467741701289458331602850255610842524984525517711175339780415508090773672918035238318068956930469329020451111779612655296211576309816975842594659968412121213523966027813949187630463099415601498596804571857503300824076788040085089484496732745155827523891167983693262607519851698836759762404472379984994890332127903607177173461257295057448249722619568759652381368214873346142145861138697620148265578908687481898001740119354867540236926712586681884437988146525465082539367509154021007952470375059751249679174727163164971092854800846698386792681132626344333976717919354986620356027896616065245286939167108567303637092221896017034290089115538438916368628261316890903540137364655288624882822452884407679795197462382448993877859405976783891053238006513644276093698797082443620812816823079037541447312747371369218997975305071414846962109089982560869509937972190649150625123623071434462050580723204051420398951361577097771953718105535789358406241673977265488727057859973857852494031322256810113614241037586846652256291234910665667493043456469665430652669407805632195817881578849543472335244613386545708990411503337997456806721012697296198893435766135767344008944778083472726765440957678035430357577469720563099884844992414495799312115476884187464296131957146545384677008808844839968471862144057566775359700186351074596945139343289387734428098402725204908457322238219596888214663194836508554038839765995816155741819046735646806639998724647162674614057989316313067628900305095602873673649725377257219202285143750226004346548127162543210790207812556572610736699253520975481688042701540511259023739888129981009215354567129629239444691271251497101255120857331920433698042986203919469611531728653692751350680214928307442255894071826891910525003966644957945591909978270046312108414932810521597637707251538544146089996378718315472495522606056580235308742568322664067921261022937916458966101740235433196940008890749565277822311230700053656968871228797996271201982771651347393308392675327264892634641279257092546472710568245499844105319059581307399038269556026772219794783783965546605848766773991128307848338637955237241082301619598282740074570042192528814507249724304761146321067766998868576077036004400865912834902278707300905765680958725776120915230713200344847355252610780368968206771384876819075908294514973250877148716094401376196187848227304484553938654759295381759012356159631787970629640938454676769995022593339401628717953862054641993992494503675672354922253275267254563418823660114139914754574468680103248450448962539901930606887955420063006833883693049013906020890213126301819667279071175221477824657301097706107326723180685991096480892581622762374786305647511768839387671267641384205425938812662535258082115913886809763681867933461334824392541674806839339467745980032825088496374251130326138622331906365764357178576649138635295572741657260273854177953479162410680634988788780029007961543558903771913742837239014282024856128756984164309952891848024263110549146663890233741049805146854055523932549680485404499675757664090995403258524266881323423029690395438649003138760157039101006415683303466098119732887055255073298640461527705988982958703617717319410400399623153794519172137845066788859869444979111014050410311727818798074493739034233174608328106976859449015995876767898388694780195533928713539030170602919801489779556203769943970073538052925147125683898801637248785868303098418324386355050614395775464008249037652914373710473325668940536938039412437575838405145083223570118952977361564763003184174079763365046415419066043399048266048419031523698105301378196647393088377077482803736113423864144975581203790941832768009880811180969480445962837498915322260598689789167998335697766750874721771259612493817419052125381631087289218311955775496815995659467138580144144514037821075360352960197037420637799722411277734802351650472082130327113994329648603144458741878014439030988182940097976783692945638609009232729584394915546978872812074757257136785638325449665497460615905035512203075363076213842439145638439342249141094193984216249286854164261882831312172869242741065609276488059513168598279064736358176915181256816432476755104656219151240199627427600074269778333779835166536834451036237645882565179689305709115323143161318431977779630156256249534936212301503312692702719748759424429935711029101013823868816862136499500685067695890084951133267789850224601320282957386681431546543292790270532658385219325124325501154067975017212287329704726046864058485459736257709814278124008565693088401631575056692331771090173975862185231648037896101771975364140322226617596370211865879932844139840605166214286053407390634311281286878442287838178323838269538979059952835275657196828839269090009152973242143731319584907397521830244130438181897434484635524989781986160206534851186039085031770599488927865013936992762150836490977765531487020129464007186864748887426476465106462142911784646189960308688082602552392612577929810503587538269691991857554822482060135568871234555627822477161797098779750147898450947024562082414526569741730939677083795229818866415699948360427268999791534527676429082029954881425280575438879600161498514614487662885748487564313378938269878780759165160136208609785008136467582146925089114666530644859962106502084029070283476347808298432646091331356368035838227425844038940277846782966099173539262814878708740410195997389045624528024616923239871966117237697278904854138482762954359081581564220321550915933329744653576055227762788409693734837397161688411214831187520584173369383304501027940346354330837902621355356007137586812747769952194496785882787415886276838868133786545832597323237903702965868145267522809407815941646954289702892265001827549492201096701829455583136726921683467370812073645005506805445382182466802765519303730563772891044466969280256293164502298700267930383588555599011433172793429570535228744962327651971747383337424661586438726402372451741474680471884418626433934971900237081586215792178395472286554587832779232461312323718088106348222818070477855204458957722353585209702635063791365364308727368672372984208563892984091414748995326009448742812422399856822202640343683274706819946666774153004990344211505091966999625883804997077108649822642453792220909168304810374620887986174604869247915419452808479215748995349587392337432733450995098125701934685796089869179065532188013968603111561989231317935353823789222635796608117250690976210650920031246238313161017044112535105043686836926438464960060504969387182095900445359059416961375608782766491301671142450657380778708023988425379963166261189858602108293513603670581979730305079025670602550242704182894920906055701651359680210660157171278783061276616142170735985754446782701185698088903190266935861123598043412300909085823475813721489755133395127009922979364500974327006633503379428730227698232434657968452236684202650108706170834577775160670073632453418729631561430311416575763920022264501431145689967316849644621769014009646098728417129008704363698262008927593774183873981681982940138072419245045579192019241537322232165959544792994555373700135110909697518519615756655307319205850549281360411036359749166075207111184978950255254826474395157914699741399232359308860473942049288947010091969223431968761427288057165048558406138317150528351871573496634096808187777161014420609819568237926128041318798333648732838854216255735202696037049185372956414647242194159944263442880297832861921664266807840110897919322660550080741997886950251582533321340451999186294246676885084669142072164365977490415458429589094565364482344308708335784727013671066140547305600835922887959757348125894996553205920819198188207349574205222651581287417477589180453033017459091284141219879035507820649809037698477307683852380649955346629348279299163367536267126141051144685452310703834065130661225691604060924162661106069464038338914701055025476941442245443579433667714147888242723260588452860313227331066832290912557192542525609617033622643775029314556954909363199247767624627731132990196385945672029910544994665077362069839388872781139240483116349311490179286105568934319429083951128093464575502453590521490381580278876740630824652406161877439745019030030472612413264935462119301600440208694834605956865972348206300598681674106691774394335323864098772039272066578340001716108577161764162811658898088812772305568971702508197550437571005207720607603818080779147412002774275700985685385496824859573155168122146142599811540696573358898971004442199376715814972718279570607305812266861974102457802228978877769113410500007607300418391298788924623098699585971707131769231336418750699286964415137449810121106226997548159902860773642232431486955746671146853229349836456107721323487835086344192179719049534196941059746725555151589321215124738327815955388285720227813314527150829244883465925621496081594817098106280381056676702235194355738667081037140283406186351426425886419418365747759517100054793621283461195427045890575734783383561824917307532724023415848358484743330149985182976446129862468139865405181816806923842418373439664497043502977481781739978126268492162642162547115684688796838734935880558305295435132534107085350728319697708107149735795440619087726103060716044603293858499515503801963549625394591739208048480488231363195910112140288135503239629010490154543406051478502860099945708549710205528587787960868609616323970003871915877720368134319086723914027691181670298851090913632914185613352802317437553731723653402244310726646010891119164175817642554792850853867721325209084546457402579993642132944628276835753904461186982515298578542732110259221964540649980048943676788359124314028816969584358006457659106099753574730271470781829440750462308706280428636805999562365751532192949650537881518061105556257238178644200523811380361253361855813132273651660475741075819523908833716029872242136919971510072171177021599721686767966662158708924214686676575039733386338848929521647418941392534921946486572366392439138548565269513894169273752371568259204648214204458332794504101610661887947556707203806877879479335860550315540473363814046876685722253105776912265612432804550878485285546947018044329095785316794204646288172096685591430584900671149984678260081071473408143497729951327767908720490970326954209852607590287411259953979001826934071774611910299576829204097350162406938353692909494111942334666700758548075343702047390413156298367799702282584636770329546511622501865083775103719729499190425417587110272771467896795247965468237151651619270394652309146245508144365261644336745324473300631760568509931716742303526363517152388677713878336272600584994675229828177919604239015632609013755982287254598333127845836287647642607208601753233030093667324522701195690502558828319334343974044929763983926306584073601549426527613930602147791208166871200152962834456183067542691060546469163003522220877912961569786165501551831102401199443628931188540155117379727099516290917304267310530734893519040878613538668309439016873524975141519774680687213591412957730588634912930071642136973150589371950652388134625077023723134431638908075806496408456280066449771362636105361775364458689344933971752977848891473700596806601513868519212564624732858547127622875390333033761622603983173916838146317572349976446658979623712848734236205944553027535858632706808165524075072455793613552527749299292792210624856426920377012359400593774205428790024239482915393203428194039167769326434320872043739884618284283975636944867007807026297385926655183625819345073783582136577473571152533754863760172194794233230483358251460103385366855789450228319905997953250949539972065516659848232575505036465813355685720208396428851032117902626828361704131045780685333909411867756127584023223275232417436294490214482530137807998211711917367823208413252711154422219541828003347458788062473333970345867165227986933015740915419986593929995129765773773659676837568040269207252804179171185779333331094619734887439018819686926193142712133940557259873560235309763650431704929744417255919894183379973592584658614983917039428778724434327481016482556327566503170503512451601108905647945232886249393883339069122562274869609112615382930182269375959656704178087869721184454751119860670840183166069677578286228934045600231520138358091778042447844508786046790238116195536520204811885532409175242075302534123432735132685083510007814313729905027641752236312700594513645568373450532045484081770338753796559268038582147119301842083201362300643438159235123936766501057431185681717333591623811054145239691672091743393580729131943445462174991302761811945107870829247110715942224154527391785480821440816936185662263379024067742054030134802487370298038437399591410122041519930011330975853401843846656344507324182322459449926981122226059236884348345970403259133293334205604226052134656058586173667069324222607179636711894604650079496697909879991552095159691151114958021273732352133819210245906291287966720300799426765634598613070245994103612147867475447522922164386704481123092368935124893705319339088640837702030592907960153769621513394347371884544927882950893107318620872710184422375244281026979871317871539997472964387789023981933649622583260634444885402412529775497979151452222278835720940094644933369876018592795831955715574472660278078558109491197960781112628348863844268964704749107518845018055445416137442204786473050974717992608870812428126378040114606075021247599538692905451635804574391972562754306507597552298199559194757300162657112514440168737705036629024690650635030160255550342494006023133545237069542749201867651599818817562789048187116114155419603960312564478225660225495410860399766584597570655950751225278481396128483280283323082608488032967963759955121783614269088736132967742384925443957436503021930441564515267806617677279217737789374042092441709930230378276576578770796747586694987510416762748436561837729482862305635806018620617591065540856764663823030651819807844367221145364413759812000787610821943299282242475258930733791622843654788954251677471401398169420500041453665659920169647052077223907084331624855650320122577095776681156024863398118873258010400344224976464246336845301862726847956476931613246757819853111997138275457285365883967409168048851122238510844064848217209021160613609318099142870810491916999519185168239221260904184696893660806981977963380597451065023199323622540702158162268023167772550304789410467500410903852065931002704736410593294245544182991256509600191601971026116091107692988210206036994599835164864824857987099241600680767687566853606559940967113880430158630130238827864703810927585157015276343323624698100467189041377924516908975719318316574728139849953564616415787299362267320647827070626629937019158044978306540031826956804761850577852476923691695025444594032566689936535189488673159102957085746875328919959063171953937826672320587732081509819620847973313157048678632678747909366059182548837125717456386799287518832043042046032311512728392503993900081400719217353866540807143794706094457539512720138597222399966224390940658949353899515086833301083122144739721033010502971198186242106474191208852264576759404004714919982622674473298590939716081820429699157334546840803738716127576539283484501978731304914929340839648109285451191506168842751564591761828420109962774022185463556919270277267594983201172142630002486969930451073507986310701773149396491128910351414847865821885870114063735291682659569436342967156149232959186270694358194225343702233898269952742894269171711852809560215092559099197217177064145715746303125435182504663195993718078623735017245925753986799913437419162064777948350768561694735208150791324078012274268919868144179273740472594863635430690534966628446999313624394236504019921426741886483428168491004594723060085434299917227187563121782845556213482544673946706801231953581609891139131110391062902098103771028371136612446782375038836004805500172757567119080285630102519508826288571119408677840683719305349763222459566158713985173399931726740585753571967660081941860102198842973969745579069338483975161199699717697179171718237620513564196031134137998437893564096497107898308320908225223377785638762435321312011742998610775576286592362963124971699598307522520846368065265678252187741764501417988803071691133140636338074541291890344835475737892988036492750853020688254012172094212863731252146494530365136294811675762232071599571518174941098690667323125744443366407400167276501153725324834501991492330167146743845271058175937944383694174829822371103071354714750191115862152688074443470235835993277730243824281855693907271982065552165119657436542953042706930906666928157153325147411545716302333277295929787619159062807531393343275548041478139024413158227466925849337380715629802394066066246701762496459305378294947339680883568302146961096147428339295020465335455564093599554416980631329672563879928571930766733180856606833261196621752889620234325311867140670264080395955748191994728820281140805006206357139028163617408452915771427633707273550473929455347303746740460652525961707877281735847567291911486762492482187780511117081487413738997686209669338554932634960886386650659838532759060571311961629309153828073651706599416542671162334225863119431043631708398218130203509585830041464825418558802883402623921830374286174940998713914855561715517140928021049712435022819426389445755363870421596804941027756403558001403555903449361389483016590652419951676523578103876653749023208181512772843966962092064893697497822103971025697523137081831856015492811862014934665987099162498026888520929947011593164329373975783427613001577957521777692968275142169209996810694550752099362967358740409405585034184008404059632852252259099284471313351837666102939061127296483143266584489661142250044680158849872732223209585133104455457281840545036240471216209533383947501482942698241932423917666247317751609718926319179332678539542798686192711123354803690668460972328108145332156885877516318323179143200174384546461613793806605475562457115726564671222359571728262641067675254139630149537453669578874220079868598823169216922326717507858672356062577636707016599090809311176722202178130217810251609109798696587970197193853488894542059087315655511825780084796548622213960882632349438698797499564943460982373174508347782476914604155642023646559422137016456010453774308838902258783063427367923299792375007463285608129207298782354932412256973594496875180199854822957164406432730599834599581409640633026052598942078404929567758551102138710061993610108358653145235359498054471958182911266342045340781059762539098244358841288062600174566334952530006046155426999379605615937653534063129737443145334184569788025965789831502187151624103690439556262645786585313190678709563348122665469719314191985646399185854347369379875252242747726169178435758802402743218388228312290099265518362815167546277512975291292704322172659324855665825023666115374007273444188149840981249840697582435096783143334555529533980889336066002648024392436776283146595755796282956267959676192732581599863078245221415285434938724479079672150615900275959143402814088099907606548937791061274917967118195649315334263873803931718375747288767195550288388302592021614552982248557615485846974761441507131715536204654135924007504698835611764191520193774366848214135309784507858514862062673670368791416806496903810628917483066829276700314424134103863153139717030547218325025566977389793972978626530096697955040320983587868702875902473623304187027969150580029581785737674213432401385284598786295912755268712221661260466537279935579309846366117676946122185185867307697453030162168453928137307330975101044551868492512066428373712494933087120353737751346636504532956323509175682850772072356889449157105253756506603045951505640455151916239035036550315525763256120134898703735558178115987475186199080189690866450698407383084334722994448339331040268728008051283343959115850174001904425607722388380241839482802539561338258448983949693911449703989540280442806424343242341824826443523523392440942213372718204631330678234766493031630212863820337192408305916182766685898835915726579494148915053588514776802937751916582624032212900020998162137102007088437976570259813367500025391998372743910557839358366674709670737172076416196960733653082546508588400071806264431659497860021000393541664109096215018292856755076389599077014898031715851088375844975351105477168074299147659467534878656660819928860801247810378319074231823147056379074878488325320179083208375042086739035884282201227759925443444706118710818068046400473381266328941371352881011312316934670633300202512631890583500531457844593974296892194228980499680827873815179434644994848029417161480560032749917015591091440868983076274721091915947031367535212159087741493670221170953225151969382438132267275423762533379420725190163797756500278639405988869302306282900185975134699222738312729064212002162318606097309514718575826315267323315986231980518298128621559938391072330704427590530833567445657734340583591656362684335855499701816156158966616683663397744336076316203460266291872369548829966125080328664122622802039092336193749966206359850183280790706376940063737849217113674421857715926544841960317089372764446415863657505708150738448580209160927728630068522936275755836478220166550595418148593374705764731527217337178346181680830393742984670461413938224215956994977948208575962365571511712406094855263826709056499381590892123822836825293034481952291507168304098759978545567921972744227708998154780022595275439986042884402508510199694938710009591625795363175328636580067009714554974623393640812012889938291054347309771084285273810273962968855509346108704227096304338899278280561765944195421729212121287337695002347117906116132374823642247482379921417242261839349872448664378258848479725814520092531817684705002921055617873112371913025100532424293749335122984286850486562529588221990223579432991371667373250854015024470891325725030932757456394126518284152287765696596255914611964089410517722955624715179093797064189947190557737617254748176137124557035495509398749118131070997707367173465635944111636569502035793590166453736708121269160531872037429376095497986115504314374747746977595928971740953133441458750172165751952079865118901760787606412843370082090050231660623235170162374763821939586185030075766919816018457673349478037670416746112271385894488537865314070074924714195436656801155960613607789604016036840117850954898647510219197435558735904015690591493742511825885887273491462798787176292544219826421745685357683997904323378973487081897450540143411804497876398325621743151750139526127758107832066855265526846355252886217124120224767815389010920894684827579104583055028809248042710438578997397952083147444695418900026796436468676070806231200295529595561026588808102467681700269537507340605628152282209705093396891925378250104347179931062498898084190336404058813266994272970798347023958769758947052594827602348100178685878443448534488297091454391008240035634018284076869856415807543120497432464822004452290793260271467193790686616172646968043502386571755371491328077899588895384807335515728533076112004997871481275289672869293351013890805668996275538953082258160358290455943537707734051990207985202090129591866398140619523641561436386996618362333021426657701527386884073921474698757448348844697575752058946079849516582895569187491554922207527066832183175106046729263488658268193554612597939351430232838050948154392514478024691101645295095583924685771648764980532009344896876800150294787290700883381981020406373064238653528581467626509911445003517970482115863934023411715999905002180285490319125024055098548056994501352407462730160466160040179416271570073846001720617565028097763800548917925941513121603044802441138286415762640711724763037247010717267469556058715670712585375948349466374429902565403178681383020969934703945482451402783153423927610799515482424521925267279590052014219081142587824584059980708779573369142746074568531511719782318159394588060627147609038386899995836407591010513141530917573435634332214042795170530595082818645463406161472548005861032836999326811691730031643580738806006125516673444007988024730366128072200464245603669899952585289842287093087781523471130166589648086172188372938560091078888854544571673468733717064094780441684350971954695651814121931193581609005128639956554176432044757085983057847789574034431003431280574537498063143915575824757084178855270521787300051055112981950114458340377014079800920204297114862875533879091192356106932549772769880993781960822954283777992593039265083413732035406198013451490772689305941306054983947222342701201343642128694337143506159980784603052607236713090637533205945534550446381791103985960022743760686122781164890240136789527040776140232500901729365860982600055499623230318491179286116874936654409510396005915714212812400967141384222640741701060762359243701124232425335580402171710282780747439038730596323471597006837116872369063609943406963560147295578754753674285419212711247950359389061790580610990668939952179285528764891451857819313300741547298237638266600825920482192707244346251635954927774824843382552819977011186144382653854560698481802901940243615788157592126603996769411464917183510664358764162777747075775542612744462045165915654636414853098072137750654320501880617169960381120837361756797929299646239984023792222829404251950347374107490982337942144852958279423973613219515667225718909060455101697790125730798570960648947183275052622276966893413248246605371654478312700294411283538028910854108566063042226633956512959691056296389665948384787078252667893528857485571923057388228720455937440928643762470230873925207880971894965378864172192780398360068309553622997052049097676105346555024286451220585699361229135405930734839786332980599846227911189278917890083133636236718371882681520430422446461292248024440474223176270160166876573802692001586737324315082905844516685242609895062359284071107386094524618753371118062544714922490661735042021175775257670839757108603693020238507850436852212507376838531259580215184378212544834816468647409399203252950657503651968944154610041347901772862836958540020392971160625430133364706728320788056980113941108990885746516515616047329905834792123861331396609108819559624407420900905565729528729531806443977507314424285705547229314341884897230259576281419506739293749449916940481552643808732622252241512193350912908510187656949288136427546299706731036731733395166835475150527268968870458939212095567386151499505599034726680298868373756339269125155815126943368248603301364639009177352059033889862104171547797781458282938499631575041188420023934839433410324636419994502417418315612514069669533197468761724986248363333774117767917467060730926573672848278245531926463439526667107788687411749696095117390220941416774386039693865135128109158668334284935878005427025686028726283243019269730048823323036641871026898580484377365862679683136457274204338619814850726932090605220985169266638048349127412087606723683808139423429337251454031536373521094235944241923268101340447838039176089933909408590520590998971726828594502504412213528317476476121360817431968720346684127571662473453906916769302665151150017664900208801882557488936022081506037351835313983921666694404407819160821149934588627418236845963139050637651529750831905726474506448902655382555359149542869041340786294810434000988228568746959548066362453846309978676696775218050307562478210782192735119192706274894301546476038421613932788078659265613442055244833258682328532040149704330674623398089573302975997412098106898764535945456747041615982134702540281152670641104961408055008509448627820321879140673186251182681090231445477956200149605186190919237882641049017107817596186446078590245920369476869351789593360026407142672104886641898080685510202918713668878632958977341790071499187956139891800073175962038861582994848345337625302970800976699819715489166925003101730271400009088150347860009453944960911524760572335758468899218709717906156702695481722100346884441939531204235545290251388507470412570937122226589876914578002760044880727553137449524258955645402696106258272163303718476884546773911124811086360157622431092039173579680204608025433522558746657651896046445470848893198033698889316391074461044240537226993250205753030025480179658774604825894191418259939904499603949902406930828952912220283114766513258252292216702472342418684270033864022953632805319124591068516782591809323038559824218711821297881509268856128841275508226850985461976342748168563469589512203049245338836271088751993268018938306900911854160609461005989775609793616871050271618472468800706147687178144520953101417233615485779242934085034609777480732615698420632635416348503504367467435679481298371816367279662204986026567470501926591202131885980547365698223981271642937405127224152066599561630836856808226440328706214757763906093677331778150196383645624273583626517594373204682955011272956172426749321122923471586725874338469425712017696198861916790215073566074834940709157009563097139524374166511127666779112609180607574841397571894487578696692834317898318310194407534543716002856380040158904199801272304089387616792605657033097188697933394217124026436604173671943300992796573537131428583732460111360625265021257976044619215169931291286781467504556002577309490572286349723170494383529386605630035087176939213814226571835979198848797234125273400557678657899932921893508823856994004537817562062085146647515486206565468250516060414711811151945410044025095867555487427841135264320801152744761378582454262847490812991544551571842024319667838852870934764600156668045536529702335435040368804023475691079621852793692038767766957046698065361965758569946139006742945785690014820724047021751485975933417486059371860738323313982412501630572115822609024621913690122202075875010618773735748946701241951979951320273456629102421226281654179878876454696731627835723498315699955047754917063676593168290436230347254795685803442786323265785004972269519207679119151775974381492881898661640448750455224610013743550401339021336603313044591786189653304885961056328648572091207016754599376129183708189838711717004797237138842934989040287659958872319327746674234680707257692051598235525336635171736116025679184570266171263791335931169960532350137940950523422121107095348902074414813694679472439443263836606931790185521005105680963288269499018369390531661944592842581369366441680861080629160057623915752253285643383522527498170512246742054693580801516220931074067273181689328024727983390778141038888141658447319420148070036025799887789848624977414126560139648335110605301639719322293497474930670216298735310659594578564483010492924355176841405143143121943290444656649569044800785408179319110304711963078623236740053130441857641255995784229844279569505430488912205659965357918879890839959414050900780663633193962768052407823404187686657486959065453510080496208655048006581408759626387460021898259195785424058387681244580963486692736273949176937594924273308174749563994446412354789643985199326193174716242378981296933055183424317643671789190048611966789215045493319331577262860976143392425169673360986557106294979499321817913149324797985907675091274858392886988275195412200354519215833055333789253079709943695267407861639664284939010138926581655673161285638406659116351427092980399438845797231471184038572341148218114969574763036984227634476967291779215143859986214032721923693279160956867991364452651845490363182707100609613220605026041916253560577081717178920910441672111938271817610268281671914693903496790074763544736072479513299347633843963361877488908662343379592601436442450777727747674534217644757395969013773176908389378124271166788460146494842174295065253377215565498895911512079184023132840644710297152264429170865001110341948037609060163423068084536399994975367080519657041650455480224671276257312665620302279010952422048856008212627140980387129685478458449661353181277997970711330678247004619119680324961595960680203081838948900111357384788649368994473070811466032880080621267063196691077599301296160802628512939807965077839040722379638484609988882429089797461787899024577528816322759619770422156081165539199642139268752759565008250389441127075351173647487711946262044452907076672198144325835896866912737301253058787470639319549051767086985940750881797149566734697360380179002987094471587589316654755009125731201769096966647593690310860310506495318347708741385463240779984940500841961538542183846997668125784939369020631367560610579404023802808820248093090123866273060891668205626692845747032766762530750063655011904876068009666301660605469293597714310275291414042220548865276440387793263124114310886924057940944939808231321416961267605236584270520797875702216056503341231611903913804209119906435430729200089235214987113070469155706332719766490134917191332912452114962653659455384299270695643160737938391273298378252636137428058381044456755318560807364589585921976159206621929682473782914280328344781717283745458371660220336190792286846803889308283007891527269030688060876132376502168363026871128046472754955686240749645757414358144239893095019326205966907626451995777655100980073371332287507033714397208931205581315293338345886564333427636361613685631542789740705244273718518346222428948349793822692357186292378537582461422848140920987685313163965595761707051190446509981999482358453674673540132002714177488902732342823622174357430834267975522200750116663376084851436207438688328116832410634463173396877717047807857144429031048219529553488033190215477492299640621199622393317340302853071660802634135307555808899023223106601003919234998292687249101891710915547209369998540194120439799260828647540318380064624976432199918912389071369762160851696536437270605560286948737710444759033858517482497635068077511796817012439832048266341224079367987317195048662761258619830963554958112520307492979740783516213971311957279705415560061061735265666785815810764896331221510345766342153687040789182568338251875026891487230845909980165940557786050149385372649779085307355695443356638753225374705959726831381071683667107934237028539522151683825809430255465900747384443362981175921144648153492247523253644724821790210396473315305053281914127748752362212810082523947480770194578343115888306656095937067258891547606768550372237020119760586841842289972117537005906029783234646071623103914146216723262028945760666462130599178567410030039869628356050251870507434096371013918562427063092106445229590136593959737030921403074950372285909858233770783888364198113655219572758445451647188708734484744081299058338987919230896294756964361913718500140355787950368813125714804564665729035273728247240350484022952312906304725501681494168355925512092284624973608821594404767412461785495698431982793400059284760122550463250668414891474269642524331714013427085704903228563008892350767993718212961379857369114162309989486789821686923697529192228801581353890966052466206495341724335115266999107732343372819831717799872423769809047625761800496494540962527078763582983595878723565239270740846844275537283867084194272438089290330359231220406901200317070777467273090407946582064081915859541489080504338356077752468473227910369461004915893492009821703235269222459046727482086373138467613498985137006235472333011173522969044353266663933784230521222801656739576088280572917710137817142685824027567093799896085173403872704829794286623963961551958502391254707396230992196489323215891906091462627678731275944191587288955670686925032703507999627809123775127997675356952020867091404049423363347432714527735498893475633796029314796102805564919559384123235699131949036808066324285817785949011411142316573437453214128477443869194735534429921310143250204937443898032067490709038730624404475468048585853106511018203068037901301817220393697200962010838121342107375464279672566897590698001030170770518696651547994033285672080931519808456512676949611949932613538629130755883668878078984629414916087593294263223116121888464218473657748951732930818974923885682743170159688409973575109687392701557537551642983324314503020286532387221342983325830877301015697371751763705663768350770457428295209713193524051983483718380074166782126428195192525833146825381570094742001216373202687766097178678406445643197997824871806212835767584461039238195626875773656303750555144025109398818169779701803403554335172267179032080766051805188559026154673958799466554257428970007756450980010739717028022907117490631540712691504313560771406533958527563126173269050796029367184678424838382420908011656965832192438895802308130630571512271713351681722642380300223751575664137192581429710579059534319063928377654376902267049741116377211038458078150412891317095772937304117502628113961495383334523542054495737221634179474048550411440972670013706530020978467479429009259382089762102012300203834882753536943317990106550408856427328590346508476051541642365519626838351067568291298502881631388808452428360191333152598201294835917936960620943328486903659991196854351959142061785438654985849449319978878980809016617269962659264456262761951718554362313512232349866723292663302302427557736273007006859746285861030541354214212136994183772729977508896966806554792144256447253889836295508986950412709090118032418120617032638071153454024261445319875646752457319292659771839786003170886581433917944669647068097387300966891318480961516662206165848391117130152054985410827619709671275828066133204289252685413313968980609286716556313250745788414628586519951057984486478209968349733382944967363573403828259680458361053758393462878949032712646699440192323711822803739129417937125440732614426689635227563824401041032814754988940392326444536790043116972664941648841770358054908547479479377199115951174190128606437038890083649991772911830169489854274452272793356226214577108311301975100932072251314378909424433471756705810055572572015631948275923877295677158097648597110354247161371378688544219212178726572998943522947395147303434174290076363862014636811345272606461272599636106505497500534429461177014285291325013521979283095090767831976628094927124449747982432779340306573423442394350027869774822686230045263025660101214583035840126507262710431699726083102329321481616882618924291867989556206074914430504433665450970386781703652360194928309706805234904519110334900428547533056960730449629353722442002189725303507901739011914620582022601455810523725995385599695849170480337746059439038050511316161933307272544278096504350164915485592605807169914231629802401099973804785264148541871424139440703229811617403782139117971908496753323823671299311338586571209786065386493340271261032171702842411441715732788543032028652418050844829891167166619390467427527227734636162920884819563693573462055856287800491611078340068390556845494555402230347756882555258152625031398247490478645677449646242845453918684843935485879612949627717811053381906357533299453858799352085066252384965494243844980007414131097114382934543744849237673936906274898927239522880232403829532707807073968569349399170765101772211465189921177019752604868585115563627490994314950851343707438133669167369289147690575278438720257750370568604182307473051498709934756931842192626837111669008822409032498185532067383646523815492506577209176312747874420297255213768978537745393006947608019723166717366420864276348287323171114194251642542791479834380666773059215868794340281269347237425760663173927553730936283682578863393867143377650816838301610461622784810545710632388253190874448749779402252364850321735997343556062044522580862900732916893678439316950991462634498230835160121225877345790118586126725928101230270428182199476994751243485314478315466071803230226542250145556083127470578145442439095543829643563522373241139030870053247432799425097529501361111418885440277781332795810323133237592553045125169288445772641449318902637570106090432538143454937842178101791065598715182162166531390212174850037021036546970214391774945467746844046014991546076435887704551632097059220519974669490182575449775433955783782043370744484510389975819594830676403887661236740327242629562854127738698085539910644004752454928568852353259438783876407682444870423407729597022449821482902080285383129877571783708631817479733003230026218523191359191587650832690300031418106556858939083634563867837627227479607130939799096942269831972152251059656053510193634573289468949889743015196589865127716837380693732279827892681542536282151270600584925907358665926121088544000777770517794448023673859676102238881673447189162317777444555048888113641736860105840481372428122618705571876127156322997243544551001644615943863701193050625201852419532158524912351358745624639223375517070852285462341004259615205830246621034824228423795755742898137132272290841004105185962996057276575287297166656026484713362553772547485012271326185667463484562232771346891275293250627626672968156361996511379449961329123072089992711994880532420599484914643317190952440272052351167026805166697148997335514363970618868759740648842374961064648334781253389594418516637065169939750590076254032636530529579155173992440626205400654654045032646080708277209943007043171804788669050585034267580659542036019157925178952990312512697360975773986085022257692545018548610222209546615959375244686325936016297914931470610007584990247513527310913895922752167190943992063116735664424563915163087129337107350699093076731574602907895562626435229833304335856761724519101237452943029403918306802827542131847630517983404147231445096478280003954620955079473726994403272103797296835844597136545582388412414156368437638187303745064386448090558580710335932974665378965859475942753319120072038418661761337754436487014087737382087321947723600588121802501180760898504705111842306292469985467179089289355944143999637477041120305986159341792963108310758214678139746195665800330023968384358579470652808611741360521192333783369034698228464375897733507881295540952140073636447649196604884312705616501084524847442802195236743413213834631658221489951311510056700832240014736914744371819882552409639841881264762622007528793143546718295628704548897455798031676903364795161581571435217609298916666170203912422572637993502386804300259064678604463126374291908044755888640338986503189013373113089635528342991739202709902829666153469766170066221653669087393375450402651751765371450644559227016021731913528849571617931677722747642531459634123502501574070613466256445835249226528471692550003528445319049985052285393090686827137988716558880780266228306467999871999303837570166152602574426828921791550673628509687950259172421206695746462641843058282497981554463913970134493748111022772333496132240450608256211295788712619911527168122661745811270193906447839310565306233666535896139152082270416827232820150399171042150735400266449753760423295296993124694725203742799296329887513279402368012857852565998500825696236594891218982198311645996987024050957310987809154043351941570996859532211305276101380554942889430722779632898797439198368502844408327189541916276495628342703293749575108183407546674282163226578557862562547261044506465564152390394920187034192162504781829778806403243316491313753141083760307376647148398079557198302450016075189416888937721769279762059272277130924275628891404994927759358047434093866209860185535406276300830411162625082175372339523844529011642024437783428122081341574548511550929171180342594952867481884423968374922045713763548302078643107089880736787666327489558660766451234755456500473059758218997547925418235655452271683281189211081494546599854379162430910051049230207325167735036361460317159878472911066436407121874084033370956294374594416482764176962103213262198675953907804267399057585058928023205098832535405204276022342887517471593266935780813160401428440853985855788104305412648157051644505357338352806195261341853461023260552734846596005982208185784066361708188655488263821160219467698146909567375601431807637344002989809052453268367156805117893014097973068827479976733586747493354415106535643479240532007029952570865334219187865740894463986697596294966301446391638849925435987008257440350019570363247900617976121303239231888434508975365416959910319136348887751113159215576171388912074725552580254365492428297931188145675442994905606776215022145434850598600844036480614801548707068307490319089902415611398421136361667165039119774848043290944356789598823620720530758643679438813334981352333911182041309281568169979490034674784401958186970437184862256201078516605483544897058137512494574489467300472628049196768927052137688731235523874130549110316592237417985256489259808227590553826993847181912882464383618569629666429018864600144817318071894914327331461049693097494657840290873041160212204827050017928157949501584077644608150194225290123354117459112353980346126398571032480454342719573820610097687269019848326688052824938090544112850689253194570499077327320011904325368511190602192587465464946893579375679135790089609524705316943578832517226956459876924789686240168636718885961521158726734542373764043226017477031583217115602463062193417229276851828237316062834585111550975369110003087060029277965805190123605270685148447078111230103571336671010046469307222114455620444760084884407353312555049374716717518423173903688343801855722417424841050310457046729283331668256111978767975517506553717716701367725065286105972930304770024770736928579125640962066113993545759561299645488871851809994437918553636351920851285531299110562373614019014196780293435576396067764482852249863715436987526224322175139301797898124968181800430596852103351010373678709416973049269827572245157421336480769427993583617181828065724713032636188239845055380996645401580894364339543019756739841419765065124979351509244476818829614417053502133741273959094617703452053933733809117245951984407501509190589830016447912227689368062041611917893712151026420425548506916986126760885184573790654394056193063463839140357256743204243407445824595730642832461934691868455982219114256205332099584738706944449152676474450395208984920859678733040195631440048268098856926330487741158609936067676822917660431394383056616061556613032009177380760655670933137292723229709913965095537899000062756072043954664484155823765094220369046395514722576803907093255406592724268550735871195739665171651354984886162395520045687665919734879399354451306912058064094685014569936906044877007631176423939141598643460132625361357128855917335467103932301816376964026586871055677276902317017457416822159756328307249878694655892284440735484278225041525790970735304277923315357342126604483630679084453917594375909315641527809653566286727261665884258843333276290989532623758894809533382518523333912680448297819670905511807003989585408981986650360105784948960857523338214390788071119235862698130534872840189997690940818124277204222633943508117983032843978881481538017744115173323510506765908905575266534403879575275203633042010591194562941354277405177453968383745890453860670347568313366648915720417456976048515790107650740403913738487219201590894155626808343681141215668187310885597859787173725382258428869614140296623768427914606680034183959649618564545774951618167867146430198043854754614356375646961793470125954961518042918955726101439147750971809560729089062017260193363750767077249310379561297541397267581619460917495227933125734087526289171954957809477710569061867773716980827312144035737728993856693965258701805494883547642190559879491985865535796676006346513465166635571630774414854033458416687839652837494623182239009372958044055424492418657948605431072544004566975377801943954591221192120177992362369221309893850687289915588322458244876034630282734775996116826689755196966817406801021470880281542493129868786120829905204681319173612447526359784477579285871302402982815365748850326951625884248005717855536223158906417747051717179664602924511156689917539702940230902688882685049340218463181561315337734666442540368231878955074337268706542687553507913639694471021846280544569474047349311427259984527225500006718651626568499276101836549180372477509780382650288904583303172536365241904538833095098303413366320468572964860084864913996696513536229077817211474812906719856124091582928357695918119709762182514754119359598853051255429855053597468215287017246047148084802017458659927828199774974450438872535738503813638230464562135558752439708475845677261099239445961040208283582015859489019153333080836065750076996470049994815598411517610175285515821127306596906357466877367809136316350101356961851540649524841438362283323310229767132646503500923009529089367870136295955322240174557421015309330835693327814839007753533984389530961670080585362726459117151005848721430839488446703318831897514104289633278498302444200160034477472970297695820218617628927556537730274262542419133843060089514468897332773879807262831571323964994416468515038254266444586943615100215177372898446947162794735362504338217460287114678329524043606393038955310691537034817892647735733462741186010079542523941287588855131576457644304097713810369196559266506960678644327713809960227209849755929307238878264290246403971261059289867229857824961545359561338481363309813836429651694041024326633799042968036752556213517330868993710768429437404607011859046685729754707942304543674269926044225465644654363817797946189537905003446289899301328402552798428604785959138196300358593628889814839773822627670339103652422003031791473243025809036381796692501629865880528197252105374769459221808498396256705383729877681665799151475894846092385596238624723004381731935376705717031459473972381257341553379206948889506551231616059092362608264373971201527160669928994589138057695648062461986041306155253798514648430320621323885994896942774625278413493069397542791264847197510457530363908933015249126195672944956280345788002465011847407323115706090648077678889218723532920563206556640857344802850547188439300718818948541351633821404096924890184732997446868459095366026355721950825185417542488266653469311526291639901086655496290888522813708887853522191528454820040804483673112654022780149502099159634111781694570266347837304588366104534274226487360533063219962779863874530621685149763371038463735425354384676711792592442961372335171305994730276897064762654958804686457812436024818646221036639410839959421757353915386738799320066782263630466325272242378600026694194502088322368529467183273922200948054897509165184119269062218599517677251673455378835417069848109579178707619319235058405622357133108486221730952108505879059428869399242380582308226581020603853471418255706795581276141224269823891936861687788226703404063008069061989961272153875452130691963807241096884207098163247897658550629403448538811507050416984274680359211711681246726513980166400586612093036757201605256376255586149622536654229974445179758207950401479592788393258654392047130716406329179926470944702699522869685933696037165775515090618335890111661684760628619058048125082942744945914397035327878211142485564923546317973970734551353782845227272499361843138265943607151581568339506045902364296685630928228851730954736450740549469524935093636493152907633829715063453926571126881702234614538969204390122698469447024241963139821892489056790196282985425523620970468499334899181482429817661229512882867253498008750784530723220523690232871737992137752503006879744575900034584434849095741510617140417097997574282985237927795585170623111586545302192652028056582454588743059576893978796534532284264525490898093248201506096226475214666017019080090552234208986296578566819111454142058671011642357286225366256042286451884597763781466320127264538955061066946068023833347634551401241031532239886095457049184559452676694054515807614589544292693821484538285874591399808193608113887934016493097701524316613302949123710735403684883452202160927052674231520665294984289615363539093265760468156121294104974656705891718488424369415862982484547755757528745526510526324471803646578961017555532526932275673997064459284134642806227388285175561599148567036814056209943800079256578385882618450743037067362632776701580554780212771181080620844369057057728216782180343608034612206586860038075250275570018642393453784190263085395333348168541316510692434137888675722528367361142348953560679510621675926363281231348965994837451901444347100939342205716621346139007665415300400711624244248304183651933448229070787308056565019517526955802315803505984880615886257339394895081270772536690583405988545268900826620488673521116994398538803684209534536083153662288487606005061134420410168589843628588164880970533214303183294221476732189066882380180117431620964797524148223083325672406101560684043481390911383497945609032827903080837511098510262691775597594414822384063109882719917840867780898070360608292313426862065392406156413833731859580972817279370325019294461128908837963237619738504866547600883926117937738583602504792908200402885412845244453157483779842919913051132310289813320053091367485821858322166282210137116054135079882625647582161908463323312916625914369782127884893244017916635895523558067845064931798335790554329951958347599691025722473249972301350434210917484267536723332918146953796754330604053879645045963364258854766651899028704893765015793556093332623284883095865059951560648725887549572490974988412987480369074346572842994137982845259988386351470697100054404397614492055345880634628330553189184422974126256597009677083670842325294503683811672851336314491709185712627820087644753777052485357382664117308793992860525600324398831077502698083140483149113621270656876240192523674240162952067321533051015339928382647814089660666108590528096674862543851036897711432298429112588939166756116628981566325926989543562895569628224172952253344881173088087061353148563752226784795509379659538773716910122877550763973366690923613494347389737890974351828831531917447257250850429777858010795709384640141847621702436074711264901487351480423239146083082251342715039332496980047959911395633807347706577512471376548028233198748555549284177538338917744760036080448709541353371371551824779254574596380519915690854315247625621958505666606395770433248597252643405367412413012005945865000927170542829105008278628258718400198008580305384973507246948732210557190522421348736855129142552456579065220383149960637067863686647839584221212877314841034985530913415282373364161280048613831011566443796739194486483408278155680734763552918196440643936105581163407600634044492798512540529226628548044256339184973791482233244716097870456541391608746864709340109253895285570460111950749680717200241084483627879429996448325452913597495182220101175127465099787638026081599360129626316482371754732043675271634885386748365858463298994510963475794059402578413181643915882142800827229063092075559915757618277613787948355377589948292948732484250658897931662402663987887905918301482019157364369839887177922393384493119778691465435119037734943092276147190728810873268786283548105616571835342249315312655944080561980836038074526946745713537225284078719766174112255978729752946895281030707980047508615343981210224735458520087917203637347488401218002217456107432051543405475300381834301722232576423072428724927805080356897387298656313932727152646317780942849058320409006328885110472776769935138477669699622048513334707322566910733764941699161031457262518751953677881899375002127925680065806367232637269045518511168516735177498239399800418437425831954880911806443267084596444028656531517956077195654058692853814807347917252932908912781488067913211678640023617376617557977908841872865403283464521904008099151797863770804413717305352808207571547081299082111843213928991234245833206690781372962340489481278182865113703423633391924713789218625376035905718701221498115245719434412751483229603352550339049793334406496345331690261838716186709608878306838200497082882187587645674677160703534364829246439326328626497625399447744949384017694612527043267948567357042936081462241433998218017995038635313537025313269643934058212004164552240525756810472962064289705843904158167278736286656514351232967705726342127400827800453476212635395001484687311169806971583583051880535503176253952487654979455982753788045088892652729406427685053354018499074891883108932192020858558779367594012171927374273523109753822108607715885143517282110269466185611640690002745834207605317842577510940736295429887114413497366927309945787828477456989496407367248299537612358244367300390087068555190607719498260345508941748633223998727642773149767629639851082987231724916749546216493763735308116441232183386913317639931514042411383554126551647611718657445648330712546002584056825022286907695239080475170449671087539634754914540330079781221277015503637027796425738654369643336691966362751009446195066433214585784196098651671134630025073762646790921578489172650984272280461007453505523896143029958607047690944563912074419445104899775144078737849502900079449978498982129294421578287175844854217732908279530917904731922096055515560494072604374026041748823650024549040769407859649166166440861235032786850655998563520245375487182958244827548963678477686187626176514453868848472432086645860142303995396353419814331160318467095738263824581833140830325160972255308903183530686373174774596863409219506039642253614333277973913292043610772375965968513223014173111988406440914769931678789964335463576733781754643356758164753898978830955418537042612836544554811514656180235840402233659001501300627917480994554016671899099013640170527905944581762329715932463464934479347986026318452968368877966435702166870170402395798628820182680511441627211095954704300980113467208438818703834020775501033204297673168937714350251901342377773493805172725771281292993009182180642641685146516824398757830932668275798539766601722446837071773365886209019350074258278389814542825270403069073069396566472659295414681172393751477406296714174934716639079440200209193802462268107726672355667793780905742081024833894929740377362031280420384824055098984515338465158719108380033680368347614277903512088194904322902331568323028027884157915431351411613771379669198779985419889282134017064038509350251828074647716222006832923438007837131364415876638988801775361945295676806701989936582842591228513104182396242481035039588659848202953505541063427227795762354605151465821533340819040498960897821806708852551138947334343429016081854224640825700225938073379391987849835402208122794741717095958458266290997613011743330960034236956355017149092516423521679114340424965981222498614233150502344476533481481091276940203100744669957853722280771144171499407253949256913315558482124325926794814688254346069471368279508735956372168454754914310849480829334839578954188887303179295044889115462308773741127866656797117578569615960535087992290069804503603728523658865567466456951107552252919967459206692351758013144639631165014755597350245414254345419130238161286056869952841728160655948359091130319806329896804196300072759568883642581295019314431943321122501439011921042658671641662490333838692419927458703126234017903820159830995575361359117506690230958096454694155995542458528756841879818264823075320286350189508359979476566028924093711516598178464186841356686601370596739418480401470715152869783973241539815768496771973600428079502623544273188834437209390902255569644498170059443070487523199264138786282576093755056010433892193477476520448074037478593796653094502000483500965586398757030276050695074919941392880268995096397439131554493063458293388963341674763177077107338389023400061478109698462534675186622184390106283431334388125947944146401930743707464851819940693034011330408535578242945453548937952916083959581776406651889524432235069727861148569544357654708146387492504302942998343241774262740894317078091119615530506561542415850863732285085620457997045858359492415229115367138843936751827295543430798587799161693630963289557921581513985357170882092641720627505210929790526730524386794199847097006731098339084722419383205373705825828125429168165425185778774754929938330082435727627318435990180775690820442549289269906098780475021906248571471365818837021318562308021390701821058682455506002111834942885220281133680250494937819087453265847084198082209592026699857327122413190044261478895271298516046641585394861903569556756827930654656777756321051962851984125109650516723626103519761006179523728789687340835603972197225914128168746096799667453286198826112836849645634918760757254465504173405579884298216218706301553916742562100114796973624220360729597090395827051671856053369412810420644880601621608418245623940216239984324267788731516732781960396541249951582515802171694801794674501251718815782694637038252924679045458953397483549137241448771731160160322152230723101108605476116879723908805596505251476827093497252688377265770941166803402989356179499773609049767851709546310385195108706368928996972002107189258119711372616665440235749562686812016184838764270596957892411985800123024901681517245520942109314283770609833908945431001120543025226701282583268451867520369025833609230787610579904944281628447275808184063399157061622035501391653154682291158028381672022416339474983828711030324482447791666353142035255843154108590906629749550121498756850643129184359659930396918707933734304069516389633879965671864502427145768904739780508925690387541040651751082609792657569863214546381177340858794229389849908256745681388008414151986070900726157145779933250867691590211024802232007246632305825299824420602854566376710112660270394789104044096605562330960231329304147045503440444130292246910398903148815712095926782648116675533117881188768285313410965089917450550286588808932546387301397673859272857741765728624924807620547354062918590175771491164443661073831243374332742746050054742004522667894275601632757915266569533161117539110047164301764430938037765985446617117171250506312005643486428784205011292170500239397854539177721528427643606090489474250306010688347771128590740066521872576447416885848403190330275713239130250966942874029338498551948600528955289381163251144737990097867130934243439708043343124477451147781863450179714580141755266991015040790539052752835730536176286147459561679841096097146542809850947647871524187847382203716814126485320545954369070247451852175809870663975498274286112792065346595148248378890919848226307599618817264563079409814596636306240927525637014743045165281722393652800465291203325343552986366796308505226140396808996642981700766611470612100068622745981615641563686191900768352872817437359517328016611573011259028507124814549141088090806805094529392781927930543276262059443669022888278580803090415074166959840956499214549695747723328065656793822238172651279737377988399837537024469113337753952135381208996149000552471582177505380243152404492871283685260334000318283411282823176703250776164889383889121312799520821328556454597207924510438489522844309144603772758428614229141248823959462904315748751954346027783532470726838112995547474041256045950546130584911248031021823246347705246955793423608374587900782600501155483014262911350149851111611466301363909010478290712558678596114720710619561162464497552674633775813380952618431936355414861550853125922080177645915222939181636078534631742717237465658070491340562663501163958641339344324808662667566129899415328287500388825351247712259052966248191966585868649759061978216798514757467013951428276374500139317949232828280082738352615407152911368292771700506913249375955480247469525241753045311703204278755305419412507783047198457454713557612972457665537690412630829666881714012309379255384309582792623756184908228986937561090619940068866110943865718522963319696791648291700330751932554133066353449282426783411569525859799875965553705559601330861869355033291054090419995188604746121293338962101522260420121444560942254428952453593857097457599753773856205348008558426948179047218333654996546179442165952742049375718932203954768165276445611607467501492392015651198764852130964230781631487451331045175963492923614616564708022542458545575599107268635945264953787655451769028282127777413223953400200976037396823962411049119389509240051931442938216487815352897442100054732320526198412152082274137977013590597706630850853683458044001910458327500819592790853926870000983041612139511064825483143290988701423871237149108405714738034544598393887965605679213805760449645935289292086769282372641580082302446855386161996215384788419925254987490655743187665673527216098342082503906144644686190888028686832046669235023011142956585682808023270912114198997438281635438210303078333123242597082723893568633605130685646639958754926872874741798531651998416626173675780196772820279266187559599855304758996675381370925247240942746271785323342161421724195030706336268339991387525578281315130308090132208868224641543837760247897713508399852781266329160419737890863435388570115340748849816961265261006398315304495761664799275864225669842801705901086330729191466957579433695182597963045197427950565513590468621981047809823477648890610402795471501330386121793438230646591023776994427925700656881604698126996095035700007097804424400695276972992381784571521653609307132667932161889143684494277890614798157278112470484052821751372562067039828857728941709854980397354243006721457526984672548578593490397855059668476279658685187950324708797895956870292713653155845998642779815036636310043232484544743723215890578530868718702872608739286191419945990451825692803505049446128917787015303519782050589647423055395165831216210382947557382774872182668260655719433029151249129683757403227219972577713194460338438372994540361935979138189654250542489883272479380236460480001793809699383192452135126516721913141847335127479704327474850614840971560020624445154312898726610739585096081522973663827104924212491620507955749704793754447348611570929786676416979078274856389344766059713547856419182164777809251111773542150332644657018903294735901225446863454283025262912495818208405294117927899044755957518672169503074765305819993880696680768235069598247203295885280902421121335146499892241896495152982002307803998332320940709284578180378326900277993352720641524905250386522711120912335130787524233962382893661022426240350971451699677117721734078952321771190421857664263877375496420347551820323845459981705659079992292985346166098878554805265095522397606634112669735954839899451124153123161155412565891713657023744862641140877739949787459875115104805572425068939284656466330604480572579033142046115818977121471087046775150434207918153928728854816446174454031074844058206511334046719971400277053125097393690001349629483697699703658893332753016408800992321133196472372140487600253602469774348554342838250659493112993264381615095782099928923885157321758240077295370615952933899185340946694772202888578089056622572113939135440305497069791195855382287443596713942329290265834449970970859039534261880943816862048085879021204372528465639723478940738965696067987385314763639508849381282410131308893222251031430891640537085040489823523606755484974127020014586464115017017898373226906977517819654574032938479737570773296939174819123919703066329589150910734348847574873003409625740370902694413087022105166408863138696412771450238769585282691456799072792250763538555736200405515846310288182448522633906393479984417099156853896614890184335475111832817364521087208067306447549481751334882476455017464710076591955298166293242053847071706443473950891111435008750899432793126828820898327264112624338798528946381521161105597438252542855030618988942486584484289832767063031394836326346451329613631349652565159615177047287236233864282273210878044558205580737265148671205165268156290284812935513882051371722371453286153139572267475485630524544064324370976674247710615161885768598216855673760315239069161062472662377150366986821527792867869408073085401254278211120348644575342430345454388790948241345674426808207650410556291686765603953839103957944290531583402442932304447730731260909567258063105151190455459107254053012451839238315697741238399927242767844924347556191146649733883173706153045264394969591013578154652219358246829362468333179037019236545402590680998082874778178678149925930934466672865887772925076072266070743041379872661296125339469749479994139595319415034388131914091035011230705884721676020655226967370352413165406939895537809012355950318528347620069914446602565405551840773744404362896478771324284109037562132249869956733335982874492268156360433257710166200431522777810597464918382433870975296475805894494904931162640502325786849041175438937116618929041201086492135155183185323995716630726081247013096930039753180758785998420736877243079861886857639261318030238661561471704195358705027254178037070027934326315919814366437376836618248776202126661527739052004692928508975476832099950743783486323087971462989683429127486228722567895329768313363031042130938626182080164715283360019727366314897152783791797978162208448500929904126595227856969344235046655598436945321375472239639202727315197190929883881131975658936231792133604222734458077116913838684739665695459568511233084932629326191404477727674722236734107560879427888104867749763584219529077111999794156576738117080186055749195421871447954311772445380313110522562266167582752466317730599273574519519822739683689875974980893725282259356746294616721440790667991731543457327165527560135713341665117544860847370026126140894285681240427344118650625482964806306586399685506340930209386629328431376694110609914607843706262281439116780422335038503826678356076007029450155312432989496434638898730983542590383685870146884348651476310739491744021117785398769703508711732739479844639482588733775463674997531804184775098905655549784325739814948085254747331198196962426224915815334506381462697415558877385036315678590432506650988090462705024365369213956564296068689698164519600539358469879482464038527209395104649915336104680063967630833963969915080272854627576051954778364852093608857445875205505063410797352238840607976697546802422653599133037246874220661029350884970021966599322595424988881606051228241183344419038781795091507992785767177710948904245071147448896101448951341605311916187310603532447108505605301939655368394830751045355465173009843953945745889003850900834881355092806863178924718818849358857707567133514410531898966658124621988598652607127450637871400672031102149967990598567763973088386658230834993424010355512990424273512204675385668167278976852854132363561529248443858460068479330946531281451102840334260822651269448970297809936877380772369236468206309834545647284684616764017385320215892241298744577943378446529742439727924731560618832835573472439883307216588540200579531347369683277390553760932781775493737880542896083819464160497242031663698320375035514631536474565318634892957271625668109763834380493153019860726165208973600740740976306207116493799224243209390969781435796977093016988115748957904242854952432700824823762113885020063966667248185583528470420572641970189863383445321234167368056374813882659430652116056262676186776776085146081413241029519263085768028209201358643280258786786022675631568139965020349458730114371261007499612120651581716316480493890099041812655623811904032428360164589836205979668392001359166509865819431811169782088799609198761934826735341719296828156806321347320870642569643614871434196100180772870278814180517727849591969768981936087354524304966688569810780485301075427534429437403062106341308440228361247685265854708974204630131196483720470494824408887757223019356436666275295284766245198941809555351766191702771404556753277182685056463536621863826874245359706060724731859903040746581061515878329190937745898766403791809266533889882519673179568875383377706454411222978292850802078034372672273999543583956645760513494818901148614452625183074583536946443777064737305910624704085852244033413656368248909835741100474230499522129690417273556040023979467242027769505301043541418161058445040007659780541210799106385521695886343575928872340250009827599969762077257646260229102278590469463295604828184623513500361806996545910097345117874450713203097369576240031321369838363914082062488269794488425441318272375252627133392647847086065520973712873408869682328778664864822580198826772781300339753305733965204396577022474939713672805340995496277340386381835808315147918885418185856895685833166450085830761900162150741444247388247647108246740143023750809771400288391060597930641645345912987318227128985908760116182996922698324124092891872936218167072242326345753186066450689379159981585838938450341992241237121053951036582233305718710959936090676815205872797780846624341196512633038113752943186339544263580701017492610512125113331499257654057003185722666579789877121811376341354693390168221449838503559146282155875270403521528330881179062147127559970498652152749525610464234092806050027934832923634542451431976624454855769276789105719887695569291889574342718306411427060417300188381251164126171933050342392609218942207690763773634051594708428963598260249803242903151870115668497675421408284047939943287093744059784664083556991267193386642825350573335624306428035937659733774740265770987642303302196444289418637072429755571577204045715951745731212292918617938553375967978251761810318107604971188854150140745309390619174145014214411894359762041253750477001857520304014793037059421309510644696740206493360295429526565327866990261346771056911148726718858306336691197913599688083598581864572753586689188560917917710516422359561719702001256589965170718476844303687545185661475734064712965836039059399635215388087010981231536372276991999512433587118773798073990878701894450914132021508777976846271775887376389440458217340562069394922788716577818152616831049830220450926112631123564836836169262744073795449836816745485705795551211110372943144985106369902676144565224885080930159637606241982016810673652470641313132448874510435194148175789269355776104219285315662880757338487811825387446231108664293295635543340379403390055785071748691896297141664380486390370643458540330832421944826378665866562436374590689535424670640492425275762077303738824087322855377781894855845870036294824126509811669175794150178077704069622276739788348110679720779052272998703195711238695395837129589804614538386800271389124938037447603147562071116582399978724586708937601924660761396495543954826597534332318058133679304131601547514978682302206242786000798979150186681140226447741719932366256387910452516416142800195819512897071934781377323597375289683750258112840858301190150089399719877237509848180123153344929228274270962648865930286535840717028394418602845975348926549754280649371245091355035912085271702241339847310839446811304770714027691717964409869253840836062518506762242981248225542004055238869583624402625705157203081293437060171624738971222118431361170892105273849618608579837695161476095231301895053527002475012502573310479356448346822054837893752072030128412363370210450982309153446472577075767425465235250163232957038463825629886687124523091476594003715770545537409522862655922726167978631246740015779520684463189885411789871445546461923615523693233643592347534661811171940033226171894904503792550694659854784596054630312204000767805504971213085737519883504811515113413946320089444092391713275335634580998613335893967105809021823049704555115015452201839618934124297145672482117812824985499516385948866526232847236279097078696484145140738297859294414678256785789241356773182234954089502212061700030932808967476723811440099167209236436761294292387107912840895878389513525831167204565121205067879931049438712966969826655145114526914715630922164632369944808724321373735418349382450761627995957240070520641760163214905543875121185634577574706849955738329568176614444080678182536731615823112421533243398525595808980294423976837949998067636488304999083244980732350161705015792526392210364598587089948160473189418934712858901719641552113753922849357961852287683816875239163570517205964389525424987704289086200333061672325560626458943235121647358170363624217984772489055989185198611189327511149924266476068632574091045396541573970987823638873253483810516097748785461769228568760747769780945128260517978073958243396181661977387851399355833633198226155796327204486405498528220201279638989596417220370126937448252711319924800706340273079527733014582093852853553842989073845732718619380117957025468173175640137565918989937313760944410702789483324252152941064745857763741222015719311983527409791346563548386019361080407283029622903835970742254081495737420422106043511208289077253913939470557480297670470925124176782706816259856146755448614416930060942415662399487492774643630798935474415097210547158528353697193762988446708557582788285765681276756025475262355749145945995173898013625538286109665264435010393482090347975619093226899435149773962616240077105434397494679178129560671399479056602816113292420716002864491756145091660187482817585938053722206529889655966414757943310352476727819253906892475169431920134649648729711611478775528175287543947907831754300510332851738305672762598670439893412832688926775169862370316867931422321708139163602440526840420161001700222639947315157238106280478675305404745958053112654521851755733978182522585773976974668497073151629086779399284887980476200831782996518179764966713991277468392822231706084732596016319143890720759658351021993519220051902277347692819356641201004544507082392792647836446623952029214705654179240909205609092867843171981092951414965939775725023063501515731194126774411862502578928081766927604642117245684583338541323001093727449199344878587339936896505156535884866422690940161103734028023138861978905209455242716694344195533405964042254348714040510582624588448265187625154106561304475531144746399367597222499558448691504015237464283834695343409246470883423755372662964502958318650987332904926719303379417080482663426843032072601260084447475944820449139603689131696752253326607457987608320043156232208517016843243343573278962757615631467102541382508628086108583979113052003245493893476655156504228971916318704392645314298723184881915539725383498760398889075633126858776604640568519834228520198661281342963408051205542955967006608877291334507882222572147102443437455901192983848616389275994674401692203333390932387920921768914633113135106546715071976375612526518583543477420518309491410532107496177288650192114641811122748458841313302576480123383582861802936065757588579075258008064604791003025390812014178267155245007724347531890961321810622137515691299852220123294452593047621724119834337232394986243959558569460925453630307400555667163584964318803792063711138791044266681840085823804889116002597828634209718615528971004074010776263022366063149066514779689317138122415263570695415984635629583506647978740785199637656307441762724467659274496536152566022396980305455663708141112212089788566693997937828772474898565773983782875122942696705474878456439316061581295000230793134523740653043817604021463546288733568998335200157184126005438778352229025798501518237582921794949982308157014783446035767351881139911568416478050249090383487268022461272740481023685192306564776670297868222359575083637697022729726257153610744545683145791338241932595701919347741727650087869126838259419721706238418279888690912928278285227758071808254916242872509037493273832169684011640471903337446306419438651790587617246529875977130245248350269411014395310458017555264724511952057654531110239711093826783166372459724874343051447316059315066551672791297071128984406550550382778458037242721279902271919664198141793473576461309439157143601505125626767032491156552956020106967931061357624384641023367676708579586580059421452647636852496350263933283992941440896346307364857285869860117067256416566607768891620214326955391196053645384022134706465179195791468946567794794256212354725492988031052847122060054989967004108530049893790866042760062186307327647026178519904618450303551909396048314536753547575625711001097473555857984831441904350925606823647544603078016838668566283366724515661839448868248641387531354500252217370246455067817628830645837323126547648563867293308380719172470361348896631076925930746457171119644097921662726916268527458585134688360544255459224221821513749985088005710653503022313900378254888488027186931290784446096041217696034657752176478645374507005203498051850801396186014997316565875625234104867400961269012360603920058813184198962903018191673214309068549046889912064899867436941003504838513134343839181864684751628901349880576905264115481981099931602375187766274439520170324004383901127683279882164696246833876706748057295704226496905102937381671023973033670172211766560990736469311210850731684539341312045730544308360318095832996807162344855511080022454773578493152947489564635784796181848805953694095424988223305748929924662460939444467087226662310854961449212912401413447194635767259491522629469917416682874544517010067947709758471320061663910803728159686791096729929282560674223582390545514879416691313674806539617075113509624348519619238049399809914362227124217334533208705476588266807431774762699445691103763688016298278204748250896077744321135931469252414598572281676526584304073191004568025514163473233825149935215600098971081742211321188968990467487867581169320486366416714397215847749767784619094407276893065444603490980606665316487793935638164036909352081416400842959232503725584303848820441851501076490469070203397455940902374764089739319486068161950590502017766898546385511787833250622323765559047705078080420352379045250702558367137799438565774241809368156202201140143451264865681443609750798352177731986682976832770820966761193643961398135234087404694168840426351869879052307831405310373473681707289298541983508773023764691499842025342378415890642568577665843359068481206755411397021876603521245395629815433850054194623653969556370343185513712997596910634721763695250490991787603592638491785517150343833507141151234091586865048698152899136289259500347924138074652421413615891488499948640301841105769933392393612427355663642967290033891268797718000022652273405314669208797781798206188285912706056356028557875087260230685162786403229821378505279624361541672755728699475278628475005608615758990210627125757674168887694582698075494288317730807498295076891021383422207209891379677324389301367898622917997261755590656590508587191076949482056650277484091801952703066634399136402729298689646888686665559802721782224432602144404335612609193047801374187097730213173512199180132793748178979445477593954957402005942683739130585873870141586732553007453470967125684815255232586307413826733522703542278533725897281526383688364747494211839825876483867738687375662233876644785852637527546235731946877877621953926455064632736604336638910911736230496696713245322282289166750294370547539984444221113422367503812743311986226303538800726206642411341226037583075022528187581297007853610780614310329907204863766165829228882553864966678534548578848850513055520069104102953886218110795310938137399352845379100021792491483197072718724272303657709808550254106541025014779179459763520978501447804788823671652690112984679958850620782971893754786043400899065486446612354826740518465472463992524128863304338377244078701380318946807882377302314224035990960614083867622779361106226337195092117440038335196642887558639062435926960718601975913517193882772620882739127074053600258339588868178173373704255020141644366982485836016016720779114555509083512516656589739094962284359471023862904699300274975385404946801032608986922049155276051944545662923029426366285691148541345405639009185294146276314620686772678196887864476733597500228010982057807763733351806803351400397372734701688845485489455029839225754111076980989177714456145855689154157341061068440823218809446181858417802869860417991267987126474576103494610272412306794347450370780669039659871480855420356057984498506956790133344214289342634520906959810603891465819854381837218900913419106204415382290273189319681836046105796175275788617349068938511785392391004556645823870996145494351352978106752576312108879743121638725318133866305386445942939811593116315644514802594048336607638870329848527057267010152247050433600366808069778830086298003009540334582623830439294197326481517930819116784524510582923190654331713266334303349785712876398686487477409067802730114512736644114236505804034279574237172205108880187414023402594497687558084343329201237799305948128470588220231794670945444361378038744022188174356899025872709250497857582312330376644497006129318884825349861551051516119174025862370362606165607697129113688565719453449646766481486675955832303671353507181717428208219116445432336595840266892916283264601822710312280577180938262652643309513928803197996379148576619137673361922674261563018162218969966194170637026103762667589903033703096649576098750763217679753578666907243879147788383600472378838670412603950206216958427415351783887902572332710249675647159501868968084053242504360186627160275917157684207262373293272695135819869943763132853096481783699901083711514763302259445453577394711301502570308102991494811013582833531274457954949033140472693392706517846916691005587971977711216000768474070287930513901250927725668941160112863689079052739695648231803096323917661498773672690486516696225224124952416412836334221301989739026500887334591218192335044703796319247711355499601302774049896876961392466788228473035784321751581116108016949511800818919489675303420226760569428685930765630794729202088373380954444326692998201424134729494210949507673967296266172258766789966953598005800413573016064689331971735836516458137016971591254003602368587612220117311916759683190595090921062142364663200000341533302539020374850500896785102626030649352099168753720039307637043996841405551780145838915294015466253418920677324775755269841177810356271967359165380630907664960512060009213054264829520470228233962203673769788935373339545689682544576089590339451269654969451306061912855408257898469570756263061607392918828833482526769457872825942903687397983336280942500677926744569000074013451960057521355181938239275495790617998405353355526533867909292775621593130903964443123652228146395331056645504199386585709071713128063923397513440199721937357446369803685646256040318629438894801093289568343676718327658512117971578070517185329342552827329676520361789875377605788445000967557034483336403867038781207930645508197088128772741722855310756718962123009212425040453480688359500322558203013427937831374177579427860787020133197994412424049636353435287773476235948300768357309434133778365411313376101882140899645495922939335071036994804266287864886252035082049680439168295892433536010469186661024925334273223145031515315267433386541876878271808965143450942579025821658438926845670962721464467252330334531983240253876163951249600123468562244032715700931932986933866668885394235051761543852740422088037886047096179732483643983089652105096834963882090094342830272838850662945825426418017720730525486726652164326000457213430468565013674783483450060774736027141278864623783417270325045976344904277431542338974813565614744157430694963750334317937473044856442180177992735689452488183987202520631826406736949615072099698931290420842685011748707392383325295649594376441120495390576401772743194807559698343236488896362671338398139641509823295220629161551140794078237342958726032691322320482687345916754650303879583977890542687517602967375159950809961260179903459946849112837226402018384866489733786191941327363370011038766019974034946319716733626501201305252187408598420761388433283201936348398573658431654816820405761107294458971866013939563629904767775818364696598913800920874274434975684488945414167287021535755647559190730862013866266949096569147343696061619237833120631649286371807092408789708847715279096138236167507071738704824700782445507934206764149926745258572197646816867687358730851395415201123014387348252795662682868399162841563271278968797686370217370642415448937278805495522586586766666124256366829928227347390272365066035045393610547513705428092775109522831351314966603719012246718966857678627445482713553301400852966295661721598953408210984755401703315660693964243115537592980881725569043278437913499976324571490945080219593773941169080440125832468488097248755396330183092300355700021067598029022002692459069820409830597091468382314735850417859593783756826654095411535786722769261784473758521291438703418143161377973891557996076688507398861148415245868884117737798210466173533408529524267087123375949685346130579366012070491619907360242099329187302262255060893070774041122821221827334592593428449828851904665874222751227804042605929789554380085571555702152113169222036832338544903570363112243945842458510251296701464690757433925991184060877389479150588458357669344327213682852189170380029181971312030489901836305209768661192731387260455284020069673999677463816584832917049076155802844994240182040869424297823831429453606381153273683294561873414921844516674960495786132423200391319519856341583071315079220126445309581436560285486483853341468640631714184223276584940755177759888206381141047461591597090025130533452522859204045324597522638291226365852745531817860920518945390646447425304505933894898596232344647172625585134121772756607621399457290792333226375416855635795264912611446447779091624186527851200493121707766403227876558508386242461373593288379632092864113090447549887858698785845228044461676622600672968907783812687166560825488653927186834113927755789637484488981346183124727394891282557377639493601325466921333046064100968078894944190870743609961472362751437214726397191871232710976108566492801344838408757076490020516075924799114393277819926506869805658830152895306904237236408180256108090962825269241618576908893355442477750206367470227842779179546857176086870760524361655022120355515778598951081994046258545433170058412380018639965407716127143589771484875003559566472005129951180497435881084690362162405969519453040014253253184399560331006500426267495866440415715074087096147870884172090471910014866041958934405235278185927281897672082832180482603508901088642145977240092652018835956526276312026991531305505347326779536080144177657117670836934819202795447550647324626599825267308281268143461403066122673770527090105961352742345609848587107473534148831976912286922613207401144813699432699088197997399029649188484277546632109862873517714085236345597753500914909632612162034256218685763481904066938162609988849621518009056843291725373142703282811338863162376035060876674560719561111614300006672461615179625849875109136547231338372405723159204536040710822942047848847917263892331132153273333471927723056845281199932344110500603157196677531802005554834397505377876617301391691884651570143524698482343645030540638999442473791070228964692143513973389830695992000632298885351745214825684519973910110089542075521389622494161700937406602206816671602836827969234030916673826643165926683929093080503304556684050810955792565366330593895712747692862588982933516665770827499110485263466229861847772085178433710068929260007756287232182652934300232965201753874826265849455798901816600865168200575553820534969949295382547371426525329689082247333839407038566749219151976776980182308444289938236445299891465143914944637834746110436196404634066562077800570282491553340188829820607877537219311145435576183784394799344746973302121871854499972160268428250817378638141288773478382126643032336235425850582192050648506439192739709708183058647468625472176525879572190323587815938397863275929991580183643251546119076969694705642284448402766191549838810960620403901536493089512675959116263369699764415888689065216325779747642239629830323169719403324417160257181747146912103758129075898808394297702852958350343773430896728972389488968723735411792921591571224057361211227776018201804749457867466805210199244512394188806370172777779662666269271405635999985693691873038538828834726837660266043000942510399091709047552737474966633745922094123667359492622561798872923915141767005836892860105098180000223454291744869998778194190834723054395974495798527556651152704192143932313844104375017401478671202081274645563439970409953928169142352269053161901996481055814897321490304600136523224562873450946400749616991022535252236551020889334725953155084862476511118867663782649972365212188674369803987948705666527273923264727801895275967155400914902835218027015966532535923346528284542531279699510169991363358397778532283804250718095977039922460771461360867725048652922238377848368844923632142086596832818411800242669534553903556654644979435175875950072632411100356243988518562602285286052432257023931406415214228186598116126052777425727821758400147379587471911398510419733315259729832672505951330700142415898704498831949092265370464584106626763314018603760328133374833544449398030989283202074813720996242838525127875811346803728947984384927757643453719880956287773624625647283000944272235438751475797773204163114206674661032470803684669225154156735645254417179022841772737601108502479293784334486123897039401280292289486081078342565347478754545170815311976704952127317487039773134309497025303501885999979002707514220362374550469744310309336923933770023607409354832666251370699249679621597555951343829650854198032143714379142470465755006582995339525943548799594920636466761672183818855689933032378950022541945934988483325861870879721045829313479525079706596567872037959260580112427522126030828673112279125804651148677029051624682283649864867395523974501529959108592205756083778886345119550570214291238644531806831061085084835059150834547258245831909780571429648891980546142987011653615758696793411873150880181373354797163122949898363175995177794652040100095676303488656224725122752849552563902170628822541017228441322881060536839899486574954004965020083032220369651142117181633504519062608419450518237037667167736852241582213453956654160991635933442015773960924475395920924791033821256629345490081486225165171980753705664727416700297370593792083885673159112990024779631885468725938317892371937036276205395151995213120507809707368911621022738682407089881495554135111972095087770727175249313401164604795965405274680325093919596940216342702433540881787195483531411069857501603777616923900018437947156848001191600973635043765851611959644861823109008564033668116845248862754371185299372630118378933130813095820210490456739959892956710358337760464519411555378251578218327504101374444999135203083172395641344789443063495322013685741289187536359416736014430660373389679299164478858041777646025173726494245393456944933578237700519835000304139344074772201380765769545665397146663443947752340756758894195300836933658034240541110610760493061595992374622694249937180872263290599246787443506086991023588461094427654732163538641432723574729134969152105491046458123763254016587680273763010088257273235919553138161864739908382653016279876533625710942352854854701721448370337933597387343154822275783268252892922951974233277240045783961863313216084474849661807867252816075213985080309212643580556589705472382735363476953069305057220863694279439634908590555710287507511504145490647920422253049836368448562758172954351337738203006319955131835392481918892945472398674132250952957754896772031171428199140632399415870305884162608508748265813390369152117256685765704395527435801160013124777452977241474513259421143922310377130085056520889890714930857498985148473936392609435727007882912787081965098872409543105714283522574748466684398328749657652686994418159014027753675780075860170117961535268521442450747482561343213665855474342645475632076212793789320803131720385840349232621601414636388797479396498281907249216071372716743263135286143674492797719566349430613981542288679048904951253600909918615784900342558219694468554174618150823852928320542076026557717312375740482985397051337081891982689671212326909469426928395674053361629425019366184172552080894153830362112200054439177637924785386565905109443956688357663174044072425350271730817360317882560795789362445675662713456744017293080584993545185211159619467388510967870978490281541107688513252341872586341598834872154105133438187472499234651235958680475313210919087317459295746826177513374076134583981116757272492095399532555395820204664394623164807223761261967053705677753829555115266241383677510221562581791636315157793123363819037393892750777198149443867501223415112979042884659268955856905439038189784990390992343914757198398158530048830005982411910085836485645206730369832106963267597306393697819065593738593410225774444972327551698349446245602697405898913359884185702822626543344281353432418445189354860121971698594462672738141646431427205651327459671679186299513864860214266989416302365466829144866056207646506412248455284409020089646440055989190273349479902092346618211678976259840350759320392890802160474594815560796583325445024798326922458621594644167505157553847210801145963311610612887253481800406695917107066625393692366717104234730761798360575162563705987570737540428099934067827977049668253161078158377781391944250534660325927167136518806416550039451853597028901097928769971456452070392898265285787104545627260453742748413074117356472508405204240514772641675549271382496149912581827621755991456833925641007040297838965534226950096863774500117518073654839265852471785093375039727389984333596422679593860719848892595071169948949317934981809314391977611113939158204447611104351453540850762050009345478427971821721510957839444507838119447384616943230695723608874243313789135850183555556592436171411181676788213224271535110322406583354881194578054175377979952522754873059304307869253341184831514047045056827867325395738833055472351057834488991616577263856751406434527735213708342375608363254091313582444246319412173577754638461915463487098877480930639017727259940420876431786509203820479849822985947086542247615146930834586975915315149830912618216757575430010080256860717185552285847615505389634992571726219263941026565815311714283688157812916620953094387187495910173860071840005751839680727122336995208760149024772213214290351647923398361883677766528894154603396320521167023504429928025245630824211671952434820101430468017326542627510048028974849051905546092006148217836542072156686607441534311145804600455814436665168720930581119548742755325250301148502332472817929094072917454718107220269076359706910753234324797463520830200079637062768488743891607419653077508662908205043512605939761696035787589078808084157999284807163197974244539158491086489876783988777556031379499787633718077061612261977419033749543811293194028810112858676577528840493996992458202614127431342542639148765936096637598297320130246272984071659285622793311499807474400373194895529797337898906355453066655196754717767458341793632786927065632003223845896952555585004760686403769339271990852097504203501154259633308970853345907166947865755066541218217174828146327966711782962646506934751719934254059722494218760535741952808206265803801658532059297220979709656136633296988476143931591147348586911825881425736480681975436592546113208594473140359502423453100974956227445931250409327716175396729490932921058747878720933287121489984019935843855429869621286163850736114709257010918588906209309017800358887709813396389643490121498805550232794865440975204945655644043206196209957943228677505458144622183765653903280173759083342206958658213808308024419080021295330680322902459724260896427207562372556666263620990417364124272685428507698889698984009931625691705129507279842241242157853166679459250603482430285875012154811108608762046190891374714955625742119127472190174555420691463684354069831337141368390735559186192390505076053833848908019820029551561502909829966433104617781677107327786759202476042681010314717303515943231022819572517492796214982862549680554441826187183177305418050596337064884859054928941098076920358901215225655096278440870812267849232936419090432042060368626724073262871858311415872193531668316257682465354648789386634785603231775605341389008819091110505410727960843686816819039576833137993841282867032407899108693012006220203838111808175306140888474406485203439875606791032627555786741864637374019801164584411433208595116744330778745046172662691458556042727371315079909183860682687194547304175196084863810520354187743209159924293953682218349519533410646198944666656161517864376966173556224596763428905753100620259067863620933978848175069580018552048600583261964749176064017253074493819726468432918961681405759829566413616590575743383116174166290353861691273976492647846457132738681038406969124789134593342347932029478781469910092140091797997101704480509539974911255360156520614429687803604416219806728660602666324541091507542634725553648271036107304414052789675721086694760444731946491352789043354829540211257474805507340827890063090626864560936307754205785695026505689769987679628152337174977322949595666308279303485062404384900092604044430017048476312408544449974602077047796712468782372118956983425338427978130656427577069096421213123182665590396845001911645060482687232601808018845446890940221912614572222215738761261262064002726821450193543342964567779094539894400269020716586183314426606934582124533230492864967835595911426972827182017980936981283068900098629005895314918874305830800234644350235849614634042825793126941648225540823583413577986716740520457861236687262639666482630921730368163142601752910148954351749688999161389807096548176891944780412946384640355538644947527061850002183857083099207401111841377878030406940561877931665296825527008286464372834160669487975920860566743042230462943998939185575029148065400447668706093611345676499017828416869914217481546392853913803842241609890346656892803444471367801535980965241143797281975054282725985124020749090126328966094588102133050840587499220920908700300914362080749919237000800202812646762361688082008116444557301233190596538683519415820901880326947574489647573019321350544551550223069009967958594712568991912079919034734376839485594806705213497204947190910378695854222141665783667963917825686302550895903237224813953993628638608190897342236177935974601627379181077348565147743333587558001510589569302045258774799104903974944527228264305086214500765644359754132610869552344014999818208585570814125393680763398222924190195002467863286606069194520244248222812495459728867588611194031676790951667204134979635202084919592021415154224876424469258130122970106425575874920821194707368652173758009607433464557208464571322116519966001293082112009583199462865026747839842586288572663114245865016024170925653023196424651217204978292669935663208944515443673903965846021478043550255697516082485182302230829920746159357730670326964577433402270099788454814473291367958357413914830648658553236793397817128440810505421446209037517783904966455672398108368812253180915897971820420985777191314180581034736106199655582138502112614157950204114056377424630766659814066141802727242848429305640739427801177309590885672374645507273635096244706136632404223939081849107859862692076484840933998053109115429932030901745959180909050453874960846898131549046886916964634340717447988304470321121380706005774855529719649488458597913543340779383827485086448414067314351753488832545974593896368501937406572096639334881607535364079668869643168702813214724149464693735601006621946565387185230538558943441692691058399203813117429322502035568669714706593311417672252917925774826832556585471383592441539771368701463364371823455610068631072087913114634878092420625594413614309523939311920618902741680255210783518860481004986140224008304577534466584810973818292656628239470029793997587641784805968158163330555845693034257732975363024431727912167253952087084258095901108499636331691927539074083665963621074780830952631611701368293807540349801673189080000891205197330727829157371865323899048912687969864755957230951173335024282304707689933537346816512991191354790568361768522760316186098549123150701853787354525305400194228890224601742249711000629155507292863632406476644877071732885871653489786830559393676825889569572219549775401986687467159340118690866404270973975769102998393972389540958810860598745696038324742828875684551064585401262478368217506538970928972058402155664772535596708428492423827045517274603588854773806610631793854138516602798897186708429925150773127825617482556021888706996569663633091779558295846442635318755818959647568486111433558000042922647111002265851478975129331163262201415806751305687787372280967382664155638202248525779917160729491883505815872701691853112020259756688026833942478478267852321911064200409797169832885577308879246687373459555249941327575353282769412121043249360297657648140046292359728413254205633827051051236497268854633643469404663993395897220141246493443538522318768756379500012830186027942477576366202532026005817302061490783351331691458341012045145920665048769849757414505174035631918397448340146503332316936341592182329574749544746217743821064889593448128891685882029887889866018197369339755143512397813575490620342750388952220944552118775182353509993298709821421724059962664511746572920110534252246214260592835333396113490005849341379420219866684379526020880452492824683373433966467076378568411669064363725339083028828691662383408220583544804099876535460414640305465576267957995497392218033395772026349738889227627294906417005291385290025926151860998060379021529870123770386387829801634823508685572478934560787803691467162429656244710943739492190387246765503110098511104199814001947788639952746032396016688990213616251876731817560063500370565117767703153093768150215884644981024355338750761926477480436700785808126442150552753259462862625887051345115271756902759300229689726252993154271862710995820462998085265144042969410567624717677048321512322203913448229652222079088696201138643387146502610421609914090878161436296016858967353286205597529916587926979562042280442862385410040327336973745921029600486573570566567981565456244808487656573635657975102428459426005552447862430327060789699219002093878565850149789071530728757197026937843168073627606402900254486488560343074085263815405161637442937489884688363866481604956810876790542513742236146711350499760227777326241962018090557164763061139263456505653814351957972108667798988062224766895212082588312799425924199798888566855150828298510025330614820310928712363220146494805600800365894482888624726711224010320699453800520647988124459351802025672588926212112043200030714675415804705153582871586796242229604480694538337042723593367281784579021289707915185500309278198590878623117392976575957189466445519254364966367055229880439085040226872787587934354293584366421447844040108644376777178860190978055476899977959227482715388130056705820849866763294876700784212767567744236072852269867114138543603809700257993513213024737833157694575511599361319905244240650854899241604013369083084851732951424140567283781861567314038447859615288430350135866540257351349708711792326890010207534542877074237805445091824066668827381185983847458176841124663050896230961308472904837350993843177240753555929371088253518884056975091667122093256563477429720329560987025000410652290199488710650330222834024099519063635677026566306243488628647561758368674949872013979838175004343937861115806457911458272085416290592031932920070964594457007711933289702908391616470059942698864730601889866353176503080433727459584940161371411293569570223851385927111399857056654769474257415773053030763045086420594025563370250294652806311717160286307810637644510121373331468167308711147876073869180538707483922156565478588586122860372108752702402639304063766001143762658573912358838619070399316862601370846849046097579984078869770447986871260045738401548839093119920865728107228210839457025777066711131964632915288783454810425914273358258047359795579753170537497933147711422217244069129727172336472590913722491917736610757265257916034755725523859632589364412588972239220521013073159760912376237988626635691730763759769997803501459367931781323469097521105288707600296298634349413668449745341273007404297922893744471271104678627943786520163967190415054538814230638574014767202684233205961558088390000490996634943341116319977119720180367651056396054453731868400316974952459745466878696243277817614263798402712353415979834129759365838186465224252102919458858222243647321984598317518976314034032412219259144496012509319198920832518547610502038580840138553019355287813820185422822786752953243180289191431218143365814776576974854493411359678103763730012252477658432416454898219549978405798882739474006172592392494079224268342918609179728727332984354210808767822818571551743285767125897399642872728460622574872472636836891168165914141139788597391745448954139182918545937583665659323309726255364881040825586960923787271132462868107070755667005948183453561595245252735237073439080830557714476422345078011923015538627954096050816573604217407637953265751477235585178170205471861299061979074244039919051190988817200017959899883130889868629084061282828919544254675996229560339330171355054548109370701345484161732441911062847280360457697185173727143398039258382306429317526793663029171934905159509143084654473413635495119978260501198507332532627617438551562362212918081269713103982499798327164991349073030272147416272366296787632712673214380220777740820693573000018190707404161976129782193728474163887514351286693204955195108263145169213657554353233181206722792775249835080815997671850970376107271876663097955598280497874384758830433373756198519003236863265321876156501652359182126030729455136914138188423436427887240014833214905842240325665737631297431832570562796556566453897620148737208097577458700292747398963120399298013334844507427599084544353956149746015730344685413363930792173013129876684731957208563979731229116486337461849190689142726962621945029287827898140043161316976485744101597751438205897810416720197907113432255729371530943006844896097386445161347133021787635685160639626622332914236741291985892445412998248342163993610644181794791338628789751956118720417685999518467516064922148410403439126310770811760675190557074441834619031308121311320800944364225549805185932373730468929928507835848279812435611053834792128836798392102688772231818265872028461207677583434644032213140678727919658899941369626178766856541009434981757044697225092651940368722798575697009590251347269678632085955968830571651127911208877929565080116032406520705585797658020881365666996771741837834568344547036417229252225475144144611892169643618398001262030122218349975233575701000241629041439615527340752737814423657661102267097313094359743896505323668131741707884627990961947204346124981769230162993084999295169137893587507310123698747482094063847926889464209644007362156896043272321522556938980760462237860645260850957333410637334242294485866722313986586186600431366907266778621659635822396733944190049750475756288309520831141525050895100818586413812322240668281865450161488078487582012203478963171620720318361324127207628518595281686648660405465955906650013078218335598514057112096400556914518299933264329148111246081493742703296778313544639384099339110798452692403116343581867031303857047606026267358934410748454890093506954087246459323325784645497209700997411450443872807314817863360192933439475747657875809240185623663347452279995321070241505034797323308256227545148965260678988304175636569717618160102796914203085187451830542209438202453636526627529624615035488071098727199956029647137390071922013313669230695606437721690011144088967611045773364661333482822397022539252678867524049374302916969693981111908202208656502750074655661657941250618700824798666435675051290786874067452258109074873682756381775710911353589130912322008212407763106568188969199044976010281357865120157972676602318671411324707267553349776402859791171984674927842347838809153314777892813818451925568064280083134748139146124352172255913202473925031626557921984575496041926905960229219508184139515743628047897256054708076311876406985325825666912578819306288707517846409624484990493272542566186631275936087410341548284267426010296824887952773165266419945883641867719303581411546332953046384426472354562114412269728209374087786480758089636802679786832718175641670721929556892354647183857340325569419265106940778297417834431583739423095687817214023425445778187717084488433688947404497376860969811443620363130607654550505965103801391941895576458511164686786693782123109449165407484111423293913964371797300624496569352104893245872864868242860954859179252086914507450442728864628141432898130439230675473689193727510914446400098779046630442323005478156463875508641030952608978244516258619211740046326728581156429176342929459903518190553758287751394993931764070654490678391579962576458481717110910188485733266265458220276746520742606513801788669558672955732941841312264552349381323450848005380451591213835532711098954691983164310259087777806189988941745348072665977893489635394291766503720372197022243656670444078968629658379504155787127190997984709151848091017060015801873069389625049465279251075262320435998352307895212910153487737265851129288280901675305041654719085217758310237649747591246593888190498504359132525879952220193087757889022406017074066243418531573177939654955747330877019964247537089799496658369796595020061065679995525778098301654630209930054241810805233199577024831561195268366404547370165985827586621562790810235780679179044160449831866792807081268289877751575464443382742731119827179912152612127254036390896196167041830919969749651203361379272341981574865138600229572494023043770534997348234901045380925887665912076552149022509964118305286634936453994527849315115938679542287185782772176089462709556655284663426120461474248784239608627963475608200379553631285205659447571767228310755585032499321055242025995574393169503374886398619451221957427326594940570413280559983624364312055485146424200781060926120181586986677894658667598901824421716346546206571093180152759703029334631931937505000648124686897898614075948360668825619322947386714836474494904870423071042463256249405040877799689116567937958113826411188632599595159013063858977133218022382982918771072571163522996636372708148903216147082741392144703146480671483519317033267042082117631266646993693292311252661586500681439409059997556591163391780120141943114295192212947904067029351522585901788365417426660294069221992757509214827426258794383222373867930522811038387479772986688894538857220891816430795959716074142365368960319331756894801439411259238930691422315528196832241999354476548131144111639212716442624757009836054113540456918205967588654217529065251375749761393674025540339550711147090911483384990723750269307001271226474582256138320494737382100011735221084793091328147851684766049729113743342687364748835370989001722123114182189153000415213409968508871492191798670614394126076273902289912741063028144707621902336865690409076509236175216673333753249425263731510913940395455854350786774691850877028953894616437074363643575027806352413487172839331778998134273063666120745968931278271531241318205387741937240921352529864344524820984669133514243816760098240353859313556088308306068428986528734190892557786721781202693756249174025622138458031753222082543926079983834474829801923424491934391408023974421511651043780392591509517821095179320545981160035580415308315107266280375256443482725090630972053379861616265792025287850560861392237000290995674150802354110301711430110720032447285342580106012686272317735001827559792361420797042078704520636401875629840176350539303790450074081330611908458214284498132204406459910119906220771036867123082773827369726082893396198590415243785677141269221861993944227797267491816459201251761228138686447208080822758562603974062733238577919710282797638619944832359779880102439208559051158838997575857744201693267465208151526286300698570288379875369874599220533070849152059986246483310124815647496373344081852007694187245793685077930696161535946736910457032485532806771742898749475039474901085924173222366554384981553720802425303930208794921085075320841548387732690954658345722995767020621390636162700067381934279503918694882879087026498384261226375457652293451914804119103286138480062358546913528372926040899742210966703635838164666375458270117962721236475017232524017791432330131245295630524550466010372973769669336192744413436055431097694324340366903978851703647166783613657395165796618153950904951371276479703449704048483205356333195876653015393000779577108503755515288631553112297953124212316504322133492690304180764458690290254575836100991213628072765254516502362227036677409329400395273553389494363612617192372573497046115494310991401348827909258674150579433501194511966389570606142634549325210823716919289539438916984648092071347231788458666019850330761689269391742809228239215171483249579203748194736142769819163802408333963314101042387641750252380551363141586752934422860506217030741481146139841707634587179664547275476170080399262810766952476958986739846364814419954464280683961750980264321915320362349616732315079470749658005935365516914274408356539949069796206159567872799749685732641927572039009604747713097040539046374720379922197380639870930064473289629981563312960300456294912408376545849078889308885815799651447267465195892224876147997374402821519847311381087857473868591587313354071435259754114634847585366265759101601905624282907283096237867326842117135639333771855351044937628740986464696667515609608723735101797652563526026922073973849172508127225946964984877398688133317249654520322786052995950743903841088808478735847555802323842878104017437538789204444671853375695422887914962366540765533434103793452830399251602664418209036833855947750002784985089099348917792417663861491531774555835485907025992999112274670404801698269383357813606658724399628028091148989875005666290025433535997932913285673195150758355856100820415125995040039926322684233585711954385586836296270752264385316460946217132979044002012049137706668726172323814667985041901569856035142486062869168647545337847179800432617612901832194597223111691263627592623720250402141032614876674995258780694528312516366610501548367760877218446765014924985198919240828841305549242456702261619216143703128993995156374257221131216919741889246116194433776936758212780819085993657593854420651685699737672133597007784608051316567647745203493894180403240895586080089064868382769421420467962503386743290249852305156615970853604016400509940620156294818272760553588088555851737544282369214180626823207650828567274531760811375268535925300828779687812331979414606581149220019337160301131971475064277677595760935604162660361688636444055587996295112097402718838632399619488179041142149770413730375924570557485834282297218772549162282572908894054788140414472150287849654647567546077910888108615748906144710276918021469614311849510459531469319824946396540418637197801990383414426380099335365689303288102579746332134879173029921856506853247694002089695069216131893271642837504350098853094798449821983027777132130522561175666715871682527685165492047230423022393917603641160577628022992066400804388367949036147343699645766075487439400647380902080430981128606461717186159446831644299527116814820099340065609721851307158186551935746574062802865065965004514015084517464321491497785179875355633428771226777098172726300395214624401949146271722949728490496117098494020781573405065139393327624837249560026276750314977987548881526536022543376972442788143975411639731133956720838127953969411892350894298060162499005086341186311378320190729637381286059486934888553748827300500396370666331821672367368067230422084153633455052645609245032202725367745267406183183741009190208580259779395739297868033983427974363079682456994894585659116158933837196931098134821087463002140985222072372446430794170893866739697822199631487345908283540872653208120906226933547855616223336665057870671325728988819396703057124580636137082543880821765908187183548337378435297110044553120800632759926589928030173928419343142226690119081384322694467234560111774980582307373835835224356506740391654636669048653153663177089724799578785566478143977028461293391249978076934180536424811492719811522079950300122808165398185702101053762524608307635790168541019035127212154171997845012027214924489846950040286538344105045824778670918050212876409850984382050198453334567819189266010697992139559839241559477881234499778429698380752110840556589144189634152375907388787479094461556655236796643827709147557555011100131701497689044659263889708168534997153823109549487228783271568770957897232363077611304848103372797179549144966308746004937553685204857474080318586493942939274336022646134200806622925140845797812831508837484340782663804743197486832007485554361511677638377358192011066266059830667577286963622054592784919917445662159762004812122985313627911644326926626255131512217915744288900429307103447080290201458938771775771975900970006518435318561845559439154285059139294330730060881639718886297616030319027339570032448775158831635103098547690233719857531561156875315434399679595212322280343281493683957254205827218871067211994258039143924131518274929543610088239855974377983544235045666452508556067613905426942549552023336094685420106685471714256903724968304273710241061748712415705471398141978681267348470894942162400577235710386887743819666567437528080894129851279396850295439502732778879460082135173229981556487828518202604837429911687665992198771513221013429980767472756166741098040034875245977861334674360131490646962777483316117804431725842673582364707061075250109675171881459389388502804680203827461201872021116877528545474388998184925923938827416656018015176712330673271285194367636058313286457516472910347609853922817183492066561908987688236578129217338837343181449469676057802133926023212374879264512910302808378800318211812716172969498701134975964269181666267166084288527344840124869137536607596958962126964890695179930157034970516597135320404602396040020131114376693826917974025378143790092189385659034809708939669484104067326298277972785174292654008898378140823269107013971086699664292372257096200790400180491939539585298002960036643379742039948294665773696591594552192907766756927650072146833377371012172550884936419754423211211216851887246847824224710809310138499694051147497321739610024538136798371443313321376399560299618116240905045481715998642033956865863974479022864726515311253658750302950300963933940239339692586300039786486331623956055707326772076979625662962660095551382256129594568731981635266328972480074874860880357334543280969762663275872412223482841431725740398952274370009672323901394347932087080639301398179516225055612817371610436742445111547804623627733579178581645248247955363440385617678933410783542392139633658545890467781386873162635087567163418733890242949107015803101716789604941096441401578613653659720228591653525896113465673781479744143434682916328380829420343171717197368238820497442271517580364675346989570019686590496163883855256854911330970297872536215270065385788447825707801927982901942940794072178936570960402038487345935487610838308364656391103769263704623862620855464164340236409843154679245815588229382193080985930252467116178935050005208605711209930913146371432811816541250687522422608930903624262718374437368948165773025083290099676518825085014390126477729496012006754931301317965901376452255272970108664278668025923152821502206670738056403629306689642695562476315835361461252364995282900187699881719156741388824750439448972721180424813208288438382469566520580753107891355729619808335911696840376675991130538990640057415630237789878219589023042254757260356503651010279939752422128993361067514959579803986510996088737224428957183752235932731338477085414548135947108965410300982673486644838091730852629721884989355423862115416741932015478570325175762328884803775477015739458246576413711098997032609072147497054507692398688307470385591496706318873788954504576601115433515607729955606614231360621726519859865964087735911096388078182811008524139460083019665138060699478631012960424807469170304820106392208909836336055749575436907325416841478360332732856544805446813853183024905935754227598150030429573915829244206641473749970238575934390479350151754445524588787991333948468252662864283971267441942244463470113810095153208101969067261572781477051888154521791091289901299555360905762584900706010522109792122195309837571773586660310433335589703237578917749041149054414441889906894482445458686863837595791222787129967186473998602028237245226773982827436566680436409114752793017122855047523909588930776681102748401955625671868761936212968064195452740550973386921708596553205004227906385672744787299763985969860301874853264959640976478723287436704940857492184600464394665843000172583671463899687292082194357158714551955312939801300437344723128092534949393876052295981012994861887913921211591924894530516596629393843086349755395461442735028343159171765251711024363735045528146656938410146081210911797334981503038008062016556396266562252708757346837597208181059676473950933703988668705088226752051365357233418350872964930709274943155368819488575269517450672628396501278844553985111448921019702786774674094413258173227747917155610669099679729550494913747762700797939976911811172905602002420541038754071268138883194092753712645178437721692305707712763856813874800555557664743940879918324992810459878201663112839856857443452650446418422681092584297301601976876826371615593945811197334511062424387243077055958297105946813282323991992692465881264931256617953380914515582748685198844146740557801625187130551851128921573843106053009902311220971952775071664913044161802345576318795984887564611679322424550887188206329044113057965681766289686267454686822140497073535377554611961711962696308845957357336022687067400045576797155036995110029158075118462237643844488259853236939166267191201375926039245264791038930535631988254719266545316765567694191987415757720958321819604051393876370837433688036044804183127476821465050252594389813059332560888355376437266237816057382651084564967075974977801404303851653810211383456403763180478295220595633878809469072275125112803042621000577353668418837015311586369348215379031089694495848884910875137370853561236830279347056002954479317548033469061126154462683164463302627779081194870753847336257884178773595025811275967024870004000635275170957391243951616890617066362310986890611800426166531564823647402804654587412820074648814547939490711041305963165801334837503412387702379899323461315065003397806779784281699395087608898326168382127971830891234326472741678343039714022374004696665677178084458919525692749440947554491317994558446676695284709331332917260073729474407770480941441541514763819641814236774799243100825599841601580043353878455179936975874945866740834304670777555566013722496210634163415201242734924087556631463899856927927414144319823954914642610756655051013189706360882985024972045806175390165341354319284005932772926666576771674348487440040334404984059955157922110473416493552453338585471771666092532161291822316897247313858419441620984275103660396650121690347278219364096448586726196600808363637947287425067043250088689622362441808631699120552615073300475698005196912769780451213432414009553395608692677170940842101873763513172776661704636171411475451771242202378619036142691372537040457418063152773124278926477271395818550494686747079545558398731834492658283070221568365344544018366551418836346230145132007461494848255061945593401194791680247453215661003829558746473342149944726899407686941832830742991144350320260576265697476880066496422753361258187692864268304232694955024173336492904116981046158091080069635242638147691722251574529903025943679242000169942072340583749641131306655544031412249410481884895086362600050455041840252866977840481926479089971027600098400788155995622813962015227458019637572861058525024863683828299425972975949934471341019426074812445787548057105523557466807825392805620112099966459431097643547701869123771686735473516961449553673113819225798158999549917034640409573625899879521028292412831965409242397351369670592041667537088885907039698950682592311859917090622037674305708549889131218936383286394150756152804823756025637647231237626857350239875370823647040600217841682704057734614834773376581855104743680102993190714838511509837401323439765106705629896781269655301161193274940206946153728767436318540356001997691328334891594135025774959313484480372125539886231793153670031320376464773067058307124538556741601203275710458394427112485002155992176931281795004846021477324864897152298641213748604509768749265327311586106445752716628400329179005419362937816609049934937751802856631608701518137965220513362949513736568688636191986037651762422469341617095844070026143055830481465868902666799792462666282546805133074559545517987823558485449887169141644375914136859604755546298467499472086051932890120987296702561887320587111945839750192026168935862161021170883038960485328734655532726034019310150498043735728596443840027888388325364983614482902386047150320146108293381153112790339187825341970612836745346389601100993075477645056831832774877018623943766674225252076941664254442955627116908141611170645496577951343128833826405710388547753064892459861157665996696900435002443359218888170365269908429741641786017138956373326566563941465815448413242098581783871227557251094330719378044938920789947163639746185078190864880721904495002566530676877488415955746524430899027222420635991704971993906389194005451012763125413501724546762619473197103148204435084739946372340973061357995940981571757266092983162266062275175628048446664678830447263758350381115846678683513693414254296967999576359956326825108790806197071707189208274959532311435771026963567630787505650364288006159907945223336993714512264781642472176460962263407522981471510584656009095178694303618576093420242407185472642481076491669995857457995393290092928549389272521043288695425913107628369699957372999802658742215992551972483048488550572898135976775129370824409852498724338599248464713745047948904634577511653402565773874829851287908829407955078162430236353501306007603446585859679506148098079387005786328475704357734438774697917915614759445009203044111383577359956552936886679632199708118507407872084380178593707909418508993449548091040554874800959018697810149075555245835102849550266225250685197689027969590009212394717321472070900951125030258844592255708425062014814829700276765473450969930202914681040969999220396181637069543582251850007425481977509737494676312027230761609005948520596006337042035528070554096546017444579452016752923679367979406427469709536273121071604326380995100472214847073690062259896613187782381038511607602641203775065206015980673344006380989389768907385720401924870699365435542471062212912744045038926152969041094173451730266610568144467910164269739423252391242568995991184441783189204666929686645515479819053227967359935634375284475987707432658422772450556021218041621476507830603692609787427115042593045273899172375684346298711906037947811974503977781041185028525760459540790139282791945079198093040479641694864054271618223639944316056818507924843879061647185489475253123521301770989363567453935880246066446477461816784798378595167883668132858597405044779478395750345258604195973056793361432643185326200437355877628361723963127234219876738543294138087535986892327967461126969856287482126316201263260519917552114078451834858401128100316302734097765839000646964389806332318145057064200055231632545110844431523232201706865920602838881339270112479709992897354198974150573164096348963742229054390112649443411100007294972507534711296661397008163301814838500861528017253262665705420854718505650612927709840444718858708104135210396975361518941533764682769240544371717549066234980245143380312504328595751468819668477593254299479124238440326256507642322683087671113960328275794342764820686796477105311416270655614812735145878123633897660022705946765275924063320139925149753429073922788631439659219163235314184224523968313040216162793713730295293049398564105981206520201607708817184194660616433906495366100068151001826525964518498542873265681106259259788198905841838154676286572779303180781438680366501147412675704377348502662598854349525062985412313180650167221784081126678084872457947901301059601283442549022960973740778211911584432663766204103100275652775047898593541118470869176859195384735583247552997966779336706846379494609305748117518772174569372053798135186978856212539291862966021772160623112066098104945484857448352117735631647266256974286648076579030312424374817572960878138787045136993398948201966289228177245739081005257267255277309672083473572157375648044185792633361760574858805949305325931921321996410071601646384477469222217843495386485275143293087256084406502790204721282023037133195766857971545224133322490447639797025529192397537423635763356297025432987408324140607743987613501072654004209527374887184592940144282980566166094480130309535598706025703407602883520794272527084112402689381682692493818132292030970267647382833141829506888075013707861522343828119178397771663217820817989111669140604774047640924461347015660081741258108450121568147057961081462802156937118891884353689864312371995573839255556945607498319700809556841401751669274041877641445472947393372870978799300134452519138877675229824718160881375854363752398092032679012308802277895883365429703030008072834344105699456210920135931887279095269168171479422216628206154264936883207908732825050259114602820162154723781331748865591491777193428071810691939051927327216367473321524510830170030946181856682568627559944657548479500273850902379617158749168964841619677723834114219515020081949922871415297683028937010925381230584027717914386124819597720184921200158678681453975350134415532379207050956783332171553502133731716004936168328461668425561799501102748304570547729941217216418609993677703712364949734278059055872245868145791885142071680851914504957142452425509838327317585344703526889346656533789053984274929568280329262003829010388981690672741887452365158517713937070907565440696400417445526177922768848712507134902235253252139430605162055353814411415737899804051192296819779965309232951594697519248557842031797249463071366470309667195288324292958375463425320941552976874937982655885993921153429219622815164959903801034320698894816395242261628598037814773963989877633637398967089847327073510885979305685601198581890300887860722546973827656682250282647895403609802582147282827155031024333575824398882935082493663119259537482841838516472433286180521653828798346493245411578261511741967851883326844465320961282884816152363765343298152313920218691005085532594950057266877072165177898785554348733852038247478021124558906048527197066076770814321574212258081975054749489181736415855574527306635769506558383665845433773704853233661031842055704090387529667500651328349200724789350598955928379651061082286765751373624404514167583782592901496647910629589218037359557739197473403376875226350620947681418235879255513164725509139498770609267156487372220694656742066072623225557480024594323460133680416399680348114833925418235185652259996167183987515501752448098172542926562559405491853490090494337482983009726979638003644634051894972882181410065636325453564474440292034501738457243141368474779703704680075195449915607519489455422637069634687301299579090614809031898382637472874160976139477025231773856285553264271125985323047279255107193860468809650729857485917120686689782052913272826348111359664769176254611842046423037781760351660920820618055279677366419621039735516524081598014239919395351069878089494030189779720755752069973454712587761328397505266644413652629301179696181588636652166027852059511775893639153491561322298273064832867771768344540547093295026749873903813813597810258992302051824956213993381767010993540064573245360617321496512227351111506857938178439720837078533044385395849828707450972342139341080449756971975894212358860675416397287717214763829618554849955124315100352314905914975886230109853153138860249692956303161901901938518741117017312240556093810456381654009434387245209068287151627978765604283843863404565500621990919555317210286874110304074924791299274577927773000087948896562380417405930826908959495924744268809920750599318686050578235183641855378285879798976395949511727908331345446506157360854023784509545485088668419520496935904814801513905162487206544854357873772751318499876995263640519730562482572828179856400774242574850489613506018574080332284249224082469221189757611169204528544450045301649734249832305709729685893948105848179761360683831325477026083628894851797417292703678290823902472026729049872351112883539127449222538795033181820324527334101256847239115228803867062809737594807582680660781808316522089661616708319589163030080976169440359568745031511586181649674744356768432135274701560022400128630003191157518470107438798718236767525564241671149082145067707985000157455199544865293714272216196318760007594718398589683019058722831624002842721970661635937741048875299577302920820786037916873124886388132671214966322649063308068609839649189491113860787743103453418769771215049808243347038711403624964640385919426059804473494639439077454342165898824145386522510533566840270328915714922010116612904328314949069738051359791451845221972361399044037934399784728344071962492465431331933491893879354009216972843308919235724228524219273550002827478012651828503220215980213618571169846335033912132080865755366239981980956248705322898075983703311790791042366395886580533561675222461055767205905553665338588889382222772858607077302659024306230003653948339486938966763541972436840052870460548834430571229121494110625963123303120356373884602056226289322649080127359520178030937637517335055404198992237437260668808447129202331968074594633853097061008183885259043408540976776398400703509004988063899133127987106423409906206329616550783738569327570393694053418813973640190638883954548121208251075157855912438695832620525049212933902719159362345604581169456078990611587575098457099661490627231145649967525128676179255482759583901991121626257866985893460733746713197371800004569502543850025965561319415680193442610149632461331523854281472051953207006617154221098914925493943401557370380592171918521748094540300245542325598374463888912841130552103554421075538705662281581798160878615687821306265169228644320336598801916648201640374444599620412122163755198063904415610379401510819503810940001127818351213272268921363315997304840829735716414793092299057447020081947947734128223902420227925283018794830033280725809630409305719893023424261333579161543941476565441363852455235379611316526340858232911338996674118774725518811148742796336337985279357080182897712481516241830863946547797911007580412453955731698597223650285263125170543599550631240921861717904744370149314087379021320775003452787213052314194348926061082679594690870558466919162146656590781691857386913379957516752492320355519749147127170368294675994731725958215576611891256876783014616646873368975773434162903781982411227323067237608226686689670760770792310981059653581785846769070400724328778392189940573858312068450582304981152078468005318483466244304518905351407648067613497404239577209277471749745639804108265177212065874731320447990146190761451832463386753563795360045776076856485440831823441250793386181245017909236490869359851842197967001149506797157790940056565779143096031615872142017657479803769401692741464380648124823530402429388990479855793768824131077690311007583473647091029049922632714015394604933310318053267452365723476158020530939869277603993560073633791803153916051014294647046574220651378817995163501925920299122929932697416473562270645837452969123488383872458320565943021669727442314494199838360941110792937130820253370458068790147364871960384529104150230631690651633919242395611752390085999550142964646325968146282724136231243454762931246635440747115044060241240194800625037604668485437991890022512883392829374155373814424747330976362684657045483079234480275831778602529214168802297860172573546325145377929974484952309623674183257315554593598812421056143610658381791656254084651252267753714811521606211405378247494579454436985647266299116535607441228402118928964996794476808655169677099393956523655901209232306146811051799638268970191871787447004549080116354433790769096320642946139665248753645160841831956213700422827204272362975409216501043821555759430695065841498262140849904001889897384828812375546057833106164197126649232662826844904202021492643587771333945934445937004036875937952053719998807106008732091237819592655094593126460863870215124070055897796967245341732139748819169202497074268980543052253362727668709768574083010761272160053313046014924583307456730395880016989742355102988354644403892263051369614063276307195739665949730701240036421125875991231721468524000614773274351251614222871377612701897297385055416087593102041844288736165218660542405845708953131480451463555306909328498286461004327970781710976284850705058215104682129397029713663458475551624115836077283306989060528936556116021796180926849829990257065621826282485124941005224648092698843636681527395318654886822593610128096548151255539631301711165262169348381652412005137389918170746164308066640292291969983365520572599111832265841401212505133393796663023198644013890227848827330085096342272996664051473091449211140004102435655199066405651853452408089059866907571149887760941629724561666021113686032439319005115112679067601323071497581097328615133002736744734744123066562569430894291067410281957619145876279277687812760618824198101580253096670267102580213188398149545554134555571271118842280924206871174701186250992216149430930432149848404345859198571929524196619928780820375043112213571465000262526370127983621411170150214935728040573604280511271396166877695427464095280379489804264881229011339070917564851212790721685272357614520436374911812421415512549603465541059603363917418473577630262069603022973932109198890601950190352084267069673909272019503619232183036088963028610326484579632363343460486310680589088882815251343237315836680907329737529472534835207804452424909280716614961310370052773110576464225750671173990935650795791546857127565544805270873252691516161106184240607896560012400096126088829401435894912850138131067343215016104081082628722256355475313848314509764806861362025317657253367155925280978423356784311052822739019577371000050345025175946999904779208753832585434315401492883655872552005809014844949828609966660040396164257891690283481822477443746442372961848132348608558215652164843676529833710130959979766576186202214365331130443615760751372587936956398884991938240964050073544775405394067139273927837453166818107176955243075577524736599983783271836376706687037931971037347633996313254969777545304248414137687166746408313772119646562262992703365891858256989251301767053509542124428890985821479180682297626797433978970197595088390114121298737349248945639437830701228701787726442585390402148350227233468475561048079090554469957167563225611048196109825868214503155829892547447605581762503984642599418173339215576608811610388269262359242818436977798607625500298945978273054520912827316036027489776908039142774924681554849922727624449977556343797407754506659798195087687811396022474599389409606416052656149106330603581741977360683778286232207653656113315974154431526110085255742460714863040964376761315041972116898863770976629408323851983906715881068742960265853142723254224009784179871501971590535197854652274715410549226660049032825396318588185468127866209589002187545932630850786799190530282692024730858519612363420652910843161116395580556804662495842672189730379645198040687838890619897328039889800014162392935749336862865760763386960173892799943183600761051468635140227130084971890374457370787872307580709400596612736085446681371684133462813703843830336825675584544114002354163915206729940798851356687382728713875792840170425860244334910097432326414068909079716087914198655750189733122731923678200046531656331482898968153432559273450810601694171302760241270812964501024030540117358569254594913034138277955849557914756905033080319110544719990214583341465760385330048563668477832274027858242940146690023910837169262988219952978385813859909572772303026458292307333692162638245807262242094405690843061062259259259933982001114877581647805781167769619170910345570561298790010917289849446312245718573587988448269826270364436675150198799104146222158422605984976823715157478961867191891391049452242170182664509839640729248874163708614573280406409008150182412198870278741822440405331390048347487309016572711546820474706215720011972054676507643529368431547847196553936380608279046239553009365353348025131128581624729375216574718368909865629978383974750548177489999780690839726752608212313374247472462328510556923232973801462534172246429118986043078440948119708022752247684675754865772434431034907776166848834527759806623297817853835366236870494112184630634189661472405082021367888437417480135483932272784404372413881758341472655524162399428698975759703292988049012486437445851175640090844596712243318275256330658997185110381949721976826618538357364318293776356840616022252624169181228898556783787700775502377681115418544393257873109291755371749805865507668042222576710960079076739647299641272647970618306992798351543023625201405233959486568625172775050059908308147130040401381790848239896334030581228043329758335502775892234129973773790814802514278163595078505816909918711902641337956132860827794098279055035868042912299949360575842418819159301332316725971717048439937936702533384985925477679790011740357958262234207419376113693170287240747174832850794454966440338065457628404920762446407105118506238008592798488331372344059587475688849314726540636747830110121965081002198700591085743143149988762927720249473393475305259637284567893085274433418025587988585417974111983032567016005344163402432882032466756213103384353147868938138774087247978477076166753783642814307261822722879414407637832442575385496468668763850237910454574088913769017023756539715223430759364938363235380526390232060085041090487352168127049127139749971275099340493867184945879200508587482267630954649575399764236744129260453930202404606794571720427279039881411410235313170513001211321431248963769469416655359739598591750481421225295017692110365836825347297663952060854792863588202526427295162456976524256370069123490536405058773871429647682466105129237230116799316778677322693879321469479410269533288793444410934254918587282536184762811935979734337977583824756631203560823224442973451445746490760073506165837591770546143369642437181755374702313188173583143041272224902068421335539828218466705936006221395030933190566806951974017729629703311057164016275155024066827870368653818583740164608376746135168438858981052720015346213732631000055189895517620627508855735100590764518566642305251740438208672672278075064765134587653029219609936069093757312236809237521778330459680050247022103036388776622229144789191021906417690223721820413345975475061673770275076805677451699965947514194234889854746650226273675327775189723304236894298054100968238976019745117384649956947892988608253252914164595188234695730704422203939787889359167077268003127033052146773143376998523812005665521227456875322750912774845324395648403154501573017710878734345379845713116819599749703682038375670496511830746114332971239554399180167300817663286269855461867253627866194386110667736892385110909028928526146314313623228674552376187158410014737240452955183306698882317501183875741973224137990430147964071602280480013048105759688713136444274016157979000672289034083315211704861248455302384742654270045351470934834444214135961159999647609924856158774745958746391750212334822655398802910210000037029433338898150878537117865772686614448970342758684877406865432643813682223845044164351257316042945064701440550867254661951559569009901098199128591429518043193296270682330210065845155684330341622310492226621573687968874168976453357328020998593772695839935986063432938907370706639341758337857812073927725604883358019333738704139122884755859616322500877569155608144115520469604022647244503103436143713719688985794983418838298687884581263819362137094995045769060424253328815631583686396661961848495512373788533338857555301392463177600305855508534394773317103051660798774183563215918581858868655555682199277925002278687733503894024026892553041399136169738849050717482169470396440444819734210371667222550644615449212378375521731804398447010496959627514777050077336387091589217742592628791585230526508683014711401987140026319910015884872589005265751390033718454852427235153456219483294051645235549673110263565975768094460359839077835668279687299445548461200396456646813956351600433926459972308817279018416793794266684984906018964755428604421603474818158938832331824202288363409653643748668254695339077970550795852850520084594330694923121309930342607346512462120108853063661480427021654816097180521499674498070159421895189764309668467118998342853264446652031362403202505537554752383942844898607343743166435086991926500537747941537913255018772732311620626723462630130142673926836568776631182729095236970753684683382498348007315377180401670935316853635506984667591334272928019965429886342297117398422757575840957720427678032481213262519117168773012165254288720053135471531248497879220536951370264837174753544559795496798396320919816740426247770326196973011071772832697782719927770960357527997906545453068457855974226990395439790063547897671545913567523256516316626288231064290623497562784455814884080534564258689573818219446577091780828133046793362160569992077745296541347475123802132629691726796194134893878559123781049206740902029593596980847177772777629773904093551202085819103721518682163146456260749345432392349823348436556865915231610229162642460027354212396997114522732686044006572628966944896229616033889767239665005181575052222021340448382845013672650202589031332989609356999819891990269746609940502368009954352469895913686099735912149505801718892023962218070447127210109243027779752736327922926330558524118766371509391873795370071986871736052216120854660327371137639354806511329140033213355041189045305241728733724351524728660691570519522471529890381413979567278512542741249999273632490544324733977195135556658362526311213382897924876432660919859359546760255973366693599733971591315907482608099335356029776847065722458865534064762563142382328803593186686308916207151485177842541457951013198498362454000320003899897940228054428262800554467583922936630739577355121892464199281491766633492275441192008389220055972803494309783234465303271423768500553281906225928187220521554285420120823183404810392297043880600983306426332972518615904601242906283401727696830362288719799153165413699886663966451170987290772852538146443347648710667394131969423665390288712051089966060620557930147704374312839859887332623382820633608519298986077811183808515914305414499272859805853120268338337792714931078570620550339158038536445674963432245417894456284130370985822576907665720657012761018414273464175377785819306812192805689166723263544039505581223126317613738440454670168441942984122876285912765148724268289054752386744321098889152243619819710846227962933823049061611659564080214033912087962800239823553514627992058583837859287809010739337532735215955532222385474614662473997285723884271229427579131721027491266999599417738639171444465689163711388125954407441789685855050764231735026309689031141620971734862219388033214674006016799635219207832468204768777246584414248936993674382237033952921059325905027319060977470151144537544544564714461601514624568087637294212166171560244504204516377228580917580874084360835818583765667291531435830953163277668491585355731773757624334489092942828214267300613720511104923339521160159285532695864894680230062521418980989173149362641598704512924090150153509722666611051315602263819191656255555581404403035366442567578079648221121661723312500045633940638218489296943478099493085179992779267411848736390598110823103371558558265843669994522445486092833808296353632668703815721781610618879449729216214089881748079129875291764381561314385452296267278750674702950321557076077995196927650132240674387627138854670380916476451148001310961813852997472155940746572852954845048101925861265284183968829046093106377751050710938964155480752040293336953951627842903340525827693527506399771391789856684416796448696896872986179803289708607813346581188200847135670222323786788489947246077684961314461249308134137560082423813474575712779617911975484876416831417593010405810001538208114581255465747127648722992882548098765724148090615200393919546312103915806120085731741303738292858438286289608622359214336879328818247657084729377942501483945962875574378388021637858449962530752114830671416294694976049174492236624045164321130469913986553779349518109309201046556869299034294921271666551530358840160018592718844268771722766293413861171342903174512611589550527200775105704046556372391252019491604834164971585302887350166448163727303725248418981108917786070110273719098071094347259955513453045735488216050965024114517835064583603645034174000302755850045250982149254825853029532946558834182340677154843668912920758886677864304149780839724093305914775684120194733927757449075723387541087915707693065639678716411527253837754836822558697453199026810379836545070987322587372198650560841579523839384215563894505593259724178274558296867546414209428015092211047226117233467892334464378212324185055237590443028219455259568761498457837210008586717887424115505799830741594485612209554923408519597944847198931765374496459802198584509376797127156146031781999187134310418036616426481673837488168087645345113748545135720107678159089184580158880615697210409669801013372021942825647977463101393050241938716669176021362789910300328556853991206531518618367647270218088564595526888641955231717950203796196873781019126003568567123466751419103816773318909264117631877983842491451441718156255005158444602060497183379637981014647980278315779391692452022121572880601632078211679846620480805180023151811984915411607596681986947001449641101475135230444006982023513248567292881897188733961100931090852872212029460140096083973724025352238609004081371620484500369947787864204494063176253871246427724955487944813361262918706434126234094169624659092961928314631001807957047256679772345785365419988910910550624844051053346858554461593536900115978742897575585943557575500092458422642012375809013952399076749042235551412250157343384294818458878516080806857619491774377965218603423030002299578272828311680478782190065854712569212572446927964389520099180299162319169345715397949303290558748998853206428563413391521770529380926626102604248586228749203594995596218002269167805001503511493434159319669632730471747378145658373611515781971572523195857724163068242081045275688174663138918028225869184632148953361443396354927297705204101212425893140220132580201816788098669763881015315717231966491858482732723816106652825628307850101023723500622389486894588754277762451240889071287832629983494059249581320882997609018475577249516003793917143758807200723358169938287497851498577347035504922758579159629497242929966984780028978465598200484835055102857330110662114678376796340050198779175312108279411186293717435458709583541491366034586643932085664555100267180690279886530620442744015715148100738169379683256737256521310046154830307205159928456026701645348059280840338704471845170976442801198801201220255095821387731684060036624141729253581592140277147605874698327703475266877866036428765189837186506915980265943174031687347975056447419399387724505432868456318523323329429758194475781665626451706755372447874053726703409360298795592730535253683760448569381027905624758659920782664291303624388012810889083139094491501655051766785265506973634383345500815308101208279186067377427663255845826852352490898558526586765949701611966313276313230606035649668892105380307820390623903933357387853712102986265657296908260261998150157095057683623618410051342880506430487841731091497479329182333130592346280579124970519467283726789435991471144667323540205437319107081676530337612326416815963800010703472379181821452847991556196126476706835753718459041408486553154559344996348110856170687406599671612350608287625234789236428260653599055990563778237218010589848832121102274605401846409806109558786588999286984697032309038459087481791887015397624291062736550625962236548501425169796488717997544020313024393694839323854933980411002387727805347797403134174173190706984233756772956701311568404997052742312060380237656258206485783701512247351544739605935252899612584719455590087429672558116892678158101026941001947072352147682404721134606242042734658321860183731324946439703245546498368000246664032410920835438809957748890512545315344744845440857256680638794741528130892838211319969096210375519885966104726545984594696501330136161098560389918632952568235167432161757292802360284550667403377141833615465963177373250457582399474262265078312806752962509290493976266995115634899783222974917379912342932796922800720199749248234467133980114274727914663895485213939780838184402714860592989839788056215998850617591136498377445009425352661294549111837262046152454473125854952326052796688241603898663887462969522813138501963682257474191469526202828464017567212799459865806870795787766263871629923135114673189755015870793422893018134005987825165249564909251047923256884609829990401520421434335390102358074562188171944728012786401945912606106720067823094001994013153005530720424515248351635770792951110982160956122087540240444927177171807497869389063791236247941485646050169113887563257343073872642149636408438078886522261274325515537184162357211384665590683453988567879537193491303335261893184027151793924663880819396268019754165855752782120421427150048614016781828059786136615146556090275022057390642300927800846875453658335655882580380544893483152901949165295993999103547472235125635332854338379736519572079945953787125663795329487714695916999614710031393468074642734854611467997962783529127130931818360716291047732128472717198825433826485892526420253827619620964989558190082536260085573135525364408335004091506174357541974370388452516627570591049181901725408129357328029744067867801137985406001894809584901388685078939883335918674300378119782734402528679484072424462848373097873330283152861112298884687716465877561357482189238543202238844427527208155801645745028385366707891494322943053676563859277330144469128415962748143315208045884390057090039538763733838175733456837740495619525209879182725622405812895618145834772386504531472454488327879285179591243123371067038708724749458406759020536097652241363108877806383798053241577224875625705508524847972352871863421697046656428562648878710094013254492468665373253306459792243583088217698721384878694604474960192494160059259397191052800582947488444264650266382143181633453858917099682126022766715204198328101792276318774010625917434504959402637280942925649244635806304551278667277854275183238869832592211053611097768163473690939355918275715235020909603467907568935460204110601509875479184600026431586364053269922374059708347043972021370969574378804479931489498475770053846935637181639592444407875384224637877489438601241484488324896410647269391356732249381828938068367476025295853599617150144333729173531133245715132171771375448816547101448019788264804070019566874448072205827245086935330607420581165119700334988315249118779181223510230482749203962422011194604708198137051619647307872987347336003929464752203102999143394222076136217374509744266755768234591993222507626842680887433150662908313775212335066806903300084941630261395038193668015678009770389105776858649221211451128037487186783093934481387252703895214447943030533769730194034282833901885563071819759521153056431569526719351170430582653623192281286977965917791039345189769829985481175200066031643708383353766204165399823220051619577656895815062911864882806097842166406644858935143125128577078687845274117135849393022693106269347694218835398833165373960992204656163408941079251307640651976629925161161972173645231754556432290247098742614297996584319392618745045613822816143548975570468330803194181315022693847583798740060015406030261786294481501085830204928124577931514235784100215689229522161235371378623393979647309103008579700760782214179366946976257335266100673760456476083450971601409549183815672372552168539648423055753215491374227585799950775972253269102352256460411619635065692879728691783619616381583292006417299221398434737767571129689900760053893197142572351826914428600774196917011705292909854676741153399752240373995163800018616849101955609767270311700846736769640508725447408555099908861794724405629003824662165890424513364986206338597335030088220622773801162399812922770730281842628753841782205916096304433053001571441062193342380766758299512382592247939476683127920806993127273031642162878122800404860711771164726797832147269927924407949070346905136180989509459800717505412864930198631185039151481843555306461295282702641580123819599604883491710769601335346260883653580519699179303160502960550131532620999629023603200432368688536095173267763844129663284306028500492227743031877653512138785204334050451087197090498884306279633505627102549426227306941988735091236776056845524566877449628414034471547621505992444034206161916232259743606369153256985233108066494001379299082534052447896736786684681921310369634455655038280236255488808183897382758228681055473896096039683622220187138014372853597544855629969362435818841033122353561816213654728554204149681260473847764589160890982564126387128428825790620551589111407502401375602501150157282121240937871780916354461774442123516312178375353014093686141484606092978333220863575728849201984301862903361594193951478609625737000467172329932083124789393961917222829481230277177393036269124468774162095788304672010327989353746744656320643479210418902335952273152598091468993860995054112808037503124659872574438964809294129569425702969699885911044610187710539037208496047635158702024410016804492845427047876437085173452650350157835382828825335982771385815876588730980200988096350008644579154334475200259375050530754079699246852092917320553743095501973021468960260955697446499042205430645569442857553706987495156872422819743075629937216711457581680912975336591460676261099870592020385372586719252050419526271777046147709256190524524147448724268633675624745657128966838852038266009641246793418354504523565144027318375286276021571163485761423437528112402243953681896888003103150140206532344235549224087880678539621727605318552346807116113061485350294245853110983341272885291971694050968645286491690000104223084044362199776196265881174394160577647003455576729763817692186445644277644673735901586422710931563186130146065483433120963692700626646499584695466185548128337508148664609739633745573669738198667989883146966350451024132294304347177646944361981235359572422613720040320403254839587630532701927156185301505205871709039656289941205557294755413592868475076850637627811555514668951728619542322779144095787143841294634898181217026932577560489861782475335713905373510730099069625222153316141284449851533472907848913093309704931110850309919662676138355287815469562457080407378670356603106874973103846184350428040001025269393501567080921125092835878954077049450214524872347976522911924230392947740484324019344307338655688259901471669266756426396634555536409552841281809842115349949493619959761909870760348156791110509422493704389474066980064459533881982481196565747297528625878208534960197356345518212633911236094264614408373482109609098548512157421186647257062200004925759344074475783130788830646728193896505253039100728148694674232711381795330607719982409368609466861256431519255771536227263022810346689632872614119508411870686242064940298247482152433813107935971715030439780380876151126958876648230625211477429212825028652467901739230302630033064584734832477477608934172526421588434654824748160164311875117235346247899599277926905258974922334413937267195019369396575922487929499708942530716165966598366895939413342076004237346203425514186540955963425996290971737990546634018165103638058552934057429885470828926994916143497162479754702611113588830309186817271430731338580864665826522001516254788914148700189947863786931050317811760553008198196704782927695391786581916963537020075065185242092514755232861354274349362242490452884273871764819609453493616800294423356605126403507874849424287960579545418358642102994745494582214887059646603998340250092169009517134550544700590407064617782059718759704181218218143518134051239233415653538634635121156446191059010351377157068002957397909009943349253574668594895571990287508636326705970791528351161783807994676089783035462878547027919480168605090418004791053851794177111930523412335248222072259007964972857421598280109176332792537454174421926901636216069683587069105589903217949658211507305599806205428766649648193474809797699100992628835210953974485538863562390545248006710844109229482489966566634834829064945613719273867895778193267215309479485319092968044825847509049841476006390602535922631790677583478871433559846671115922261199349644642704502736165255596050333339743214181402894021051916933040346867417375108564712166955856561771181837144088424741054219333546998248298291010318539226134362551466988246958491872160542111936847474069186913484287585278110253680725989306548362157425989244151831164580219592809600456935507121668085074893439718091467899492022484592453662958342134004051027243978276387333219410061033499388515957606589212073717647021038646279910493558208330726333658297262089245510131518213647724972609442384000028672274054696245506015509289283991889069053530045179898846403103183561360993847559493722138414176180097264916353259191549451050813176436690394919724742471480611807295925845052858102474815252385621833369498556963955463309821530469859808125636045752865117876630114005915404944864880693018897470977656596849326373227365284865904685645388961894358209584344813768097172018681825340180922019237508244030135509655926700265733485920707247465446730197038908437356364255108304990018773205963789534719658745332563447611268151527520106936350879260929710305835842660703195600558104706227429640747978787729287978376280822432076004126590582384677530772136838531932878535849319003324199668673044604596052884331186908195582984254031024059044674944060056129695841785235164150786940908414435163649569313847996763370260225243024651255270141467332215868681732091293998718690145772077991128975016807841011920538659321934047506132366753027144967360037738907617941572768021537221474859396658978042066062582777321937735146415845832011609064537145801269397177985139673672150247011672251290573107348179869665896696000207361926858797292100432269314906736956328238826741999704831250900556714168501836331497964368612622174952104241794849473318642934471977437271657326534659647474264109767617921595411491834008086780528135439888924211842204025434813814907686832126514980187169044653857279221702572611504467781818954650524720775243442638343581522190229834194415938981970891643205761053741026138900568151435679225481201288981967440078611624285354695191796527234420986990510503267837310566386455127288316596363668992506109987635838523090175400854335640767135926296812183006116904669091441113173094699080846157952234168171327235564553263725598243061807461234313349401630217330559005838940676809794301477527131025282356803474111450995309639285949650338743988756764058500590635325817098930090279935630115674039910840350179114088572356612144207749433588360552283805897935708779765121969991130078101134417483431871063320848505172059485953157402388224626012516866005787042233792264191582247585374884104857037458952086859042097355710451057074876109875821087371419737182804527435366666006198937194184377153446862259583067953323089483729073961746195661877085470676444048117188301391321213199857959388752396547672701599776096711426126741311789269314436354872007634516060348765540779475103475087955611232082375262956489685347789208655060079016608839910980996280976711841084973887292707683180497991295017058405213544857663684127378819762032981804634047309378685857385718436682017318992997943917055240950073095426909224831904532234746395115457993491261759810724755638069123169443349937592310628636702440082657917971894640909512752259694299567507292954303414440653053147822859494148052668011236341087724050762290512888878762982881966616118265603298998010916392334049119768311614200093295406519626236931781451464386849268759233950649013435101083735746961830713509216798352639406040400311093332206288510915167828093020572982999314728123025611311809969551480685516244828387025321580682282882113604045428891829006535136363748000555875762431578274845083195162283969669880821834393502608563727647769840235893442917319586936867937247431805844922567674609078586805067159170353140588130652368268291658626655564903134955462161440590633314502870760708287599854104487042284651175059469650417474670200334642200049252097463728933283141949807678136290177803002538379561468409850927659912051725431764123623675657843947305977479767632022277947424104801383812054985202637126128069220620980215696882482400456321442973108806839273216596286030221726314037405251557561572265577741744224501565321582809466191570979337513996285803221325788695969191419073553052918110969244336035942019067612812436157677895870263627058151854863632361327035167252657154685915839219423413224830747662499347674810626577340980561178781414497253230075035850658348304024363720950410131621474208136428489063281432887275139463709038155794637616436769426289301037366572308101340550649841637821956681842450582788860512751909538975507336150008413329468186350438304404140907055869108203534146232287373266791893203504782584919787641463846006193022834130777390345911648432884053066856992116729642095213624683998890925600959707027299899806959208397708737296107104023314460499090941263571968177638666211762493521621373550374052245784277617005124114950297575826857479683688464217078101915994802643662256032249514318651449435605761617571736973469268969307431137513294152127525403156903062234960453480230706758235915358812552117084699893581916931829764715626097340223916912436640438068342179058493750774219532440184931025675771928992997872074295571462804698830781754399573283041904075891603246987104668745539317938128223426108350259781791056781919058051851248532529212915788787948094236976817385433578017139900901494359792566905202577313166436039128590916965581465890995661307011377182029135924570682533063852201167147217699087220011447377156006435428993579772395002754850681945328799451566129404948179755577317003733443120214670640750296546871161523028469478585929293009950107133008872998754401711447335887086255572252808540212755863459710489336981448369145445939969891282797526273254549203154630706683659205396288115302202809367382855070246989076363655620214743661049380045271507099037252548553941226346948401532504738194731780615915477814676775222330054355430536205312150105345667816118999043929753029333434981865015508574058523515206112123358050042477679257298458812443891353185830542641406268426031014509118533757081483932010724621394850662922206312142584976535951738306899938355469684426222565869982587093373960973232720748146907729778851755030478208079698657153797037022817506076670231509480776136488851453146007619355832330282616381289637383828608231547021292980108868952319665104054317365812185191695740706604297419572398969774440109286170595607545821225023646331541873648424105831800178613063465805765821996953483249672210960146284880151666635503259931574378841902122997808579240741934438075694811684611919157184029835860920725690974106654217516495347263664329939424639476404122140519699257973830068840313965499919483809160757197513675370109155713431166955351036669182861245767803409033538136510313793696080359803312620466721646636205385971852040588029487039604365094807498519856262186170324620597970728356077250452423125572107659908007891027075330574016598674243265338395181520846884809735902069374212278642240224779596025906003797799181913967192884739535301416758449385585046124863545301020111719737822779480280827318165492017942505960924370708178121589625648410237652441716341474519524043660691961702200596004251360571263306136814199641293984678954772711910336759857244000406923075858188038723548636395007467506905818854677958050079534003000534311726951289448382914912668085596238697502661402773208797749886109823584460664637934570952959886564172933603359080381109606639142102088191759877589758096742300706926238385126592853141728822310527821446200387286319851894769135869858234425462326850126362000828487325228566662965713384459150380823832332467137013408226582281288801632915456230565713237456059659539262642136114451100621576045511918954876820885847602639923135181330023941808442137440028020349889221099396416792718403012593608770597638956633611779015128650257540334890301825357474640154951099660218309454157125695742680247724267720046039605776250729916163136821742357364837401347240423034310897743277900896868564892319169926277411281420763002929778418489407349257175961712279214308683422206852693664045619368525510351288651597271028727928281759681866729179228157950349725402857170912071442765218016425135387247597368775180257601815673651643781032090492044820971506073628990719074402072813933860802127630604569619808365245432869013033505610808454501290844784544011599843502616508946802664357856233705026779251819963319570210669300833906031541304841738307473778160736299711193211594759078911383786041300365997815564844388510302216799649701683758296503512940437579315079830588345486671885224041831990482551438334321401424441325843065711835413576617917715295850701819007622364906215948026488923604726709245428394401654083509013729320211096487506714395201439891543094713601618083581609846424479873329760740430516120028442270778236962186811303814144375352458328253957166766613399601429689258915771668588830256360745315479684715279930852745392649202047429832709828899568956188947003942676711719532559329853627454906163881038898531266029720420388119484930664755887058512215119961638549731005226642987706405847113414976124410457987650309526346493876745721759095264984480498710479153951420368297583868301652490083840023684776522027924640990276933271149901589621485396368286484606238845498775865002319701624110911376039366620044966074249068757457725610003779529472296879394216258710762700668985575949038293899256583089850838058457596667102996295313891057317518340383819114570715649661038084537955045106791074231241488885270598023150694330837085088869270759088281405725290324081868680672963176647658081812454857711762928818917444321656776682474146658033557430705596923036604534122727198399300667669638447408024613818649549306716836683164240902392301332246977911654600884981069309705319738927219508091898239686844833851840010589438126998600594407594465273406907517097873103874411105640660774952121193034703930828467781211638115172751010774889359703601166373231021417560368935075979025108831434506215629419597767880479845990773726141643871108738369838164893846378557124514564357768733100285002892075833076383165474445791748666488076165480096806623102815695372671774087995473672279947161523890008683137738328508998731541498805263672220242768496306664132441635336505422211985616807243969319741033156904865045872708180897042373130077266980321560723513860995814384013678943648047365596432794902648001591589163958565596367818873173880291319724463486267216522843407161456745986155070941130936925380107631702296891128615722135625527865255187602524545520293745313559457765716361335789839210751404839262407318713854066731656485065469189439126524699332095775378705149242721968216149063394084741873319991303851980648403238646417127413006903459406429923362403229741096629539985982657368705890264996630858145844884293178664240352107665783783395441202627579975756150874356839412434296134397025647299637954372565518368920982574444904806192489787160176636737425094829741671217448458077454248080827140070743191060753018682250183513860174706285868000055048036054465794412860847731797304521226291989589552026440275344989052836045077538513235414669899258378195284261464143230231705560912531180396371998715312366116154269884164187116759503559181697491131077291058227037153576774970723704454551212791772514385456978934749964292068037564384427961900191126280312297251503666204528398979677845252085085188911271627611902702018671912081003795344877402433215576665353728529956269311229960041259803692708261226306382984640188625686985947415824691777283232394083912768595108995429711268802615489150182686992910655790056437736262837191008930285731645808829826835377432112511212408138105061428363762838578390574964256127285933748940770263808817480208745957785646624688924712836195576303859056368238373915358363621833491283531611597838997108190602492511484895434582911523064859889650071156415014950112652744416194181938527412096164748049932361215137081584810927874129175780144336648761141993891814015972792739485414975803812409203201645746078939438783485308052286421201669712266233972255954420649367985457309448856823489900278222076290758184579300597076566742376537800194035945927224547022884518828655791076116271522866863294454394721367002322933090091017594841588809494254260233513032081316163505783115062890134920217598979340607915842595217195358940468865159741819561478964187419913563605909030339319240638667764946393218688086986310505618068445078477658573341395919546069241425440730567112322555486575792134471630345701978241906218439775914362790537498347010741829415113686812757997226983759270886679402981542357238222601698238094937675604025176560715050397851960484910015155440815945050378980858017314252889573839868961087972907314828080306924411935329025581420358756810691753789656843631852145137026970900961115232745608377878692677458601861899368271741640474305669675937460740177012894608799601582063820825401840949492385683308449166886081110772013381777801104948911079686525589137298977496966486216225891509093309224705425749729615265107800385659350141834755875505505335950755496707750766515013650471570879033184229814329559036124271966756171802752306038460733346775477638099262405631483432462104554695901397843002351869396538354259916469125599615638683715162470263773664742239252443032230680003936436908315216398780976067182118516218821786730701576747564549484254156556483677258176737332496187098837443367913547255211344365365167018819323704280025826265822801339158644709991541925737975653069661550392495883732500806795037922001114482430003645430931049640797511453792907563676238633490657615378983513207559012146761450443823634724254552315975431971792971242960159729120275378039640985573847185606894438928961621072431400999716078772355615837984483315543527166293848970525801810428280917829616772862793941698255397502337388582114248877463684645268901004368241853605748602541487577113416452645952897201706347636236846697653188876286096205804097029829578858220564638965459995512030892767416721397079213974303729235245306526589569937719834513398830014705153453204167481359303469677552614142862369909147264158017797023992695787449610203527784008960105848213617676784944414042740422609577267151200710597921217596511184450089531492444792471424676240878816610234648850404224677626876553985871473028100056503270139121814389564239465871307694124766832113605564158659202676710925409836476938322140912675072325852253951552730711923355563967184604903408310793833331590687102787254225911195842403515148023679274122697229494759221829816129850050216366524123251861877929460406898384251586266219870502715188748234353828039868344644793934772774032874251195274614576837912373099452777231042148529155677590137909227721527680140718962856225997737347931646974010558555266962846003699861928595905828685480839501244372271924297803872145092935389519533496572634862404133710196779508530050156894854229029743247083215630817685333556358946908127112473563876760821808513779997653643468251988060067644807526341206446335213044845481808966896485308563630584220120649646394868448791080263906844876966942420764161725668203719302513460912255750425757781020571765672070283261817149351462141197578835510205959154978860696912751885753700649063911624207255447337495984299931216489905932664821627058511602113704231752384635829550211778786047814752893208294769154989707461713174839890938102228133834417906012162176564527954952907907345082639783819226247565291373544080777873530707680554506200868859981041102796294039757568436300190828199455437847203628959506389482930165918194886472710279649414023279124332620243484745273943614574223155541065715220109975543534241311893079122737493287705252322573842625978512998631315979290206581305266954784064293893357227626885194184233320667498352562448801321184330970025329047675727965088687891699173293096929920449108980087638371114861500826899439340357107040728686902947901014750209075128321270832263412920884641915859568370932260128369972429799837387310704323617564475733485053612880070823499320942543359858921477339182786390226328965695165239450927793711085063723919096547786185029055554768623179372869601180152234054330061954882458276160698269070734134171674218230977173573688083996712403483496789991405013302233993848241781453654523971312422717078220246197793083588996183792026631463469228899399740042094629403563726643252643410275823434058491553733140861926668706280743694465381294604806106838233870435696046454160569236371335148859675688215359198695070141845516803428017733605846666103174576520359635605568775070768304585108132059553768854577133958075905233518564884752183598104368602525924203344125764733354483547326434658345329361429443876294078967739061660538812136882373547881731753090048860284174353360785624536065545010335261718078465918933242411513757130798074301294262822983973976047289947195745511141072886208359931010589656380915744009538857630762340112850026346664878623951401756416028037281642821910302011825690044172111526000174581005332517710634859653700768224062435088921390576235825331988505553974388155170508417288839846183984345328630489244964654907728329689566950035454848224840999322034807957041753887902994561726240763659219399338993060828330552848086866127872175302919088661545599449603362172106450841745647088128938115291262076778894417349903880759946470130614073819116872961447678163581913248427337240212175939323689319122030784116592810203924074757602691592497564527728526198300728469133831830142367835069333016097450991270376496122493874718994521926068390015140179074880163016609701930023508622744713647781798453725161656328951828574951199031596012020636405796256820857822381699767409181920387082206676173201446995803289149754938202681050065622972631267919888561034290933414376638151094102453840832882188529889662351251492959614831106863444160295175066461495444789190114155490769006599908175451002330399734433870310543678848203079226976015967750837504832950975793957953106942216315706629827329247470220117221460617818246174451225385620726030486178722767576893254788953727264117586043208610792920248932081944805319786959610406044066346872040176247184125792453757121142813796900682755510073529581126355068904156359148836434113699826183577082610996305873581865708317829166170591056177317369070354739239589763763273159136043326112929504292125049771598251568361370507462217075532226930425742050748153819800889452985644081835012323669532750949550300738454692572977529006191175065048547556752527710657219416181854868317576155101184496017208673616401959645658125815731659613357839802169395249366158887927346118366687332668931827075667796786791462085725216764158669700356383488709256598408772909970967606708716795158564522787729650626684992574157755501029835470627962533238692901327104365578557425012342101343022999919112748422175170678515666770961468257854275571134696788135920718680885838563028081505015343347775694328681309664540550310218954777378146251354442584718082219710812973973526709778893676658277239508458740452617023869222663258735799474410673585523388024748187815545683502121636234933496644025325216502195241088169027886823885779454226560556395825004524366296801010079861130137596039406424506139384723602826301622405128188703281893779372336220089191829614251614859382490422198534407229728013279605370725523881248682463140419576088960607795010859584789791269311919731209576788128857338485680336726474825348967553842758182171396795465913822729863251105831130943199951245797115190683465928185006600659590565095605780348832583229231059540446243943340753207162921779011165829308056287118255066733412060897680823030093926004038609938867178986199940769197784108675721182585497111829023618581369597594768550090815237722928084131085917888267559831935407759301692253413364866695793991805217683996234448268453349699057124034512061706273017294862069569549848636250780839210547663025296567783290003966783395142694067982724784890224095010331202900868494169584360377169371874003652099231031459883992775182161717292619059755445522925286888119339596928036280350275083752445829642504232750517043288813897989136474046870517611924623048955541699890045473900165435650161040273529439054978172330509933841697034921425645140953740730279648592752185785473327072374530482287091828081095510308633539908760651686346181209198700454896197363526771422585379970268210043024600513928022590731836821664692252539186990615386069439084860258288069912568623563101506369277944085127363304852022531947484777445480353922988383296436281713755931876166960112650250875758765379322217528867692466289338170598479480588218520035218580276984171645344819975711086403056211036103634485971262718431924199808737495155733419321348067673333475460479101794417931470000916191209015115486054580402160318933954508840933127029542592967356224802678672634676906470845067235814411962812407735390944053661669927691042491826944862060849793469875525608183891351215024063124119281389368276779864289474904303098447789782729940741359766678764195421608029402028785013848099940893771803775037066222931266421688892975120877883425368504385005566399642875635715494565263854641266319600887536422586335795666394201908754161273587634363971078933611641434588788408676016023985385263267614997151610270682914618931036491588056416292293911093542775120765546788402296809259300280561405589092565579419611841994843524375426821112615969224272065137731384386841911258536984380354656275319653221722145569261602057991309090852198025605444657248102103812256644652852934462461309131904866538858055140961517001810765114924446856170254329869851556675106037388762599114202555908587223998859672366701668927447396402271730716926969952626628268483202309900634353686173673225975708321592028397618968649609738203518773080329745600218850339242397843429687456980119927823787568100053303132841888787525610539180450930806047650019980531733871320270101926552327556666812202040088262478406530284741775671988817470340926839163567107731433565094169087418693986337432177955945307044615284342072102267325786467984280781272290063841574472070152705813801726983457802447776029953891640713364433972053930624891201543970346611922989278362560850576241104831689484964789273908987072615008182421551551466731473068231155356721191387339794232183252187478330074536483228102462566506860494287249155489446717298004911173585521116338583361853838362259015004721720607708600466217804025074804121773353507254200567436916170517863548243199280271096632246463501376454108791823679205617655059498369918875462252737803448255456547046981483061167840922368597740603233661740321088953076697905635780018343348760442940588451571220193117473476344955416748573824530259145084929960826088557019971297935706380245009171348390678743723083401516458764030859986636375350512634491863771148943464525111638963720156277521955735577574167506463881879972888184672090910637614332059027834812416215832584586077912562010274817678420089409756200305561029607127810278795476140970670600442451892809306510811735034233100786522624207546832426880039397982543622124365562653818173327782946186850688908333185317860714886197192221825119091912246396637433782332865133806800311369920168597897110145178865005796547228291901833575177582084369526319248053042372202267673812670946129856267000898901781714610997935961760950245402052539915026511188745711460190523742412765234337568568643900039186359178573497246589551639194378792279895279820700623202060318936633424398953451197525645995979062361230360960421283187331326741548947024587816154102542855155556010413830940187904377884784599011959014459972143336854199901698896892144547483201933591324023234109693913761411500800087104542484070894694361852996977689256789390404971547846547706531099184605098997298247979570287817898333239500600746714428714331910929489456768689539487727080962852212217455961615017507029500390511107250232774802089813886953319522446029506086757394776963679301690975180701196848437702673605867915885830650284392067430979835269280836111253508423292543408421139294044648715781489787625935298595937583316440348618843409724228086157156469360551988833403743712314263428943977502497356026605127286504004151904067723886954486898351832939952366748548523348654645157391902545200137771721909052454243812385051934096865226390316800250458815701629679876626412241827572652563291801301078998022047559846849463020952836243807811522376521284001424565238888354805112334649827359556971439205486806967550985098920805209618677194851855018975444143250239086899777810748744293191016869055832216913075604005671786843507146273637934992267058124355112694556612292897898114730151394656720169900851920447773827740507220938502022506736555659802720802347551844296827386943893955335734439531401965343795776539075706543077302054045531023755584523631803168592458827138693857476506123038443428841922180128768704245932328553671759651192478217824476459694275804436694940419740028203777569609336919258498653709131804557894997504225483643866640234946593682324186662728303853109145576523387857282706645080425841515574227585236682636377243925371249749090076903832879613132119571090674934975740143749927083533798348897447971842466120788454159028878088585508895475275964103232887158170904716052015341079115243965724017751136354031389325445905654890540342337778461939254039816235117413112439210003183386341810775242760969634238351457414129469205628356570549641455997555210217700924097972781022511099858398220428264932756328096025750816885288382807292731108043416767909538141595000643019557789239112227022844430786866507956713461953776025018436058677368119089313885906488228164049954930595017146587536685882523963570283478921376767212769143861165100135819043107748810186453553782164627391672194324196825419058099275860293022666226187679932347470196651663973259706129045328194977147877014423705713855261370477173286111872300264864692676300169582459332428223961456465531365026635181680552190353306799475420657974358517934413872185833820891510860188697167273728917412747401427358607497692585515268156653000666247085733649552636988100738530456581098434050185515230594784996987232762297041553166686630566434955046847017941445621699596116773012445982535299048672554694166902410684115270409491696852285435523020085839879414710160324691637914078458326415904180305163970080254953417673843118477954661556116915649437353407818912539724093820978628612362314567641632180934337154928139831479410331105756850285206215841023568606313692149344181798828643578650611481361206512021073203074524823342295404904199922070973986835657868820520723306491102128798106369163508940056312131646239915412183658511636615110027331742890575731962971648422564680008802678577067798634320672764878365745902018150158128218097384214657682764917570880675063532951320084590033363682895222447446371742494893868306669670234228837192533889131636856009198631690800438778931051089951947262580898160450161514988755691192194696646441166324344036006228811227235846514451376312431131268349543676506821042604515759303778499270544981777282188481809183863334786642095697365907127371146854305185774860730855842370374787979273667980630095992312462456952542164670732271108992960527223618675333254153970266051150523990420893098755152597362959888706597965638266242698044773271845089814929918477774068003167310507699331110540947370902682890536554625558795339169210751751616258573975841313997073230249807700360626226112665360000897982451849343499046584152745243576188758951589446008394999334250785062383203805203317559756910768116444144858082090784477502091752938941557728744377444694801836522094417172069997657432433480261278383175981099149097917571665339529020544047588442536613348379821691753353307671914115051868234966673624899482419656563316189567083799705780669785640255543235166818390346277427090632606279478299019797681752942862864446784730728976626148228599617901989920433006509070264589683623992750978304073028850357233857234150691217665220437381954557664405822772823902830289871609290173878868526123238959048826387343379046817339237771174050182303799847979919877134120295517227703306572140906886097367071477582693548230362839228285015493072384327802377065360082563239047600425667718231771105885852954462735642240283924385344559085743580044134847037574536340476809092136467367944512356948102286859792210354278452750205007462489945341356813364521053694373316474626667726799139265149410206203670843683116824950185741644594055911386501001123112245137990484841008338646052897001819212857707173656685909899809351838130258122869725320672807595507009090618137050477048965321566191660379453279990125593702678785061872320287901870266042107373370465565434245464209806916825522429431397272343363474923857173027074304414622972741511375019823010810160367958820922116413548093566073708687240827342257092552122342048018037897152399593923858090912479922275322140999144352062189838344608443449142944977616474811520458012068073619135320850713617150039561817876513241080461280638848779349122225370369426276352873239507852290387429806443916044377083889658686799171007223502905306149665408144018687308318028927648457251000463256422208095352756855245516680164687918208227619339789982891811157902262192960049240232965494390036580994872438969078539590214595640037513972817397491660583813132059148132212688225656543249524158849292000854814372732314147046961704068490882444929734256630549976879221094832981719145788240691065114584597894804233642766403188109349778143113599375174606866346202597530481986757960550302308183255891466037751261219709143729367493787018732330251382181551497070379833089055086737745129404308894298579760777442670071801727156933923079339632443962577202594476465248239802484595940147788036150139239513968008609478441954751266792797877013264753360047437376250704479226914317125211490440773122100348943821425204859664198570884120300024456140554366334953100629927733662151725427994224651116848512339158171378905979826157469503581191212536385549715361281136832726248736716791563691653262082286780008033468047969127371873144785155744370776783456726881590288818456211189533876080551390658692290872166103270956158258431654369038541981612741410199623817393551121074906480798528985554004497799302275521237691723632317935160719756874028456391583528288428481614307671680676756401274192765643780614654395512456747475315899627323377709547378904624617943900839956089920867270835062139109875687325295264916429601845282017765493787550366706394964351173075324676967437054270367059303541520992313694546005931400196383167042399173801065206915440532436306703137650611467883243217714357540073860115313721981030501889138981535423971416413186073976025153448119487277974634593674350140959880032625033829402396631369055891192167458644069097389721876712975591910216900677492392909647681172355854609555398062993747934261511626226648327737166755527156172476653723770198034208277075983798740076887758649936837392763599977112230103317936517212309305726136437384669050260297068529286504489472454124701415026479995086641002859335301170231512198995201867495011759261527610545023780726571950445457478589894861442672888926478215704848037759108545366783077943465881670063152086168120783464606582719847041830224860328063286617728808531064234995582589515919507510851740308622342483555010403045072353106135236820588013487092335436352359350264877939313406722640161084223977141003227428747328842175811382484592817588607165357373447571917324838944859764248943300257447537245420787431524531380270327554584815641321554464112251994210466430428081809942793843031741178970125341551898439320465750723810745058608368870467478285151321937285773838096731757945486186713652916675922031216583996413751763590216847321412053595353208911501899950141862209301807879605811202379081160958908009057032159963441882601482948609805102329632512378520181916855557082161111015506930672494126292544528260497429196229777482370973242793019519522609136756039064503266019187812495984910812182117949147242081919439613357871623599461829294337320188238465053009858671143293324609320726632472353411799473385877124782340811886349648199617157382760231365558547967150801822816909219052424484400249122159443081906673510681627027349112349623374551519880014475722965140423581519712657653830782718616991102796746113798393607643448626765151427210082958800688368024269086905128165816372459071620364168621031950650649084067316849016434349617447024086775121891989430450186059843820968660751452080382164705511296376337453712817006332932655559785824333176665272371358978712529849328928285344387649066352765798121928035591384532847575405827323643436749357155562504152243787669764226815022005243588543047908238884183514333972938760055326518179659813379528817818478501210079058312280734968184811715420992198430668873996407307685143526742298719864550509721063989153097690702346993639566154514386990882708561671481239586948546218047461784006392879170475046466393771047222625868035249700388849169744589393499385118880752141436021598816733693642037262792365741043741864519443089542428919220906521846728653150766626258323476042015973488440518727640276504201760845570602320661110202706314985665188352723607601967420561430954310329535174199599923105531203380116182022388948857901408938644479336870324756541543058503848398374847430769011110879760817993781703756315064258589423578312416792389042853362254956984496997039897060735270736416133326597929032307967682604122228666444235482127150358349886665107020971700298261946000770412219906034682048338156468453847078923532492665114937002595714502637405041720314101006324184048840612453622860578855883618448005756808402353525036150397793114924129361717891178417611486256225790324893760476343312320167890203606883778287460386031895630113733471744325698904232778554295849976100030545365024747951669328230804417877025290363555227280988198650404684055164408178178760019824720876026927042047225554415654317401221211538346386744231347566157850927609404272146243883434305706664458203062210603304432291172937397971626945917462178305164863326672567281876462650244026954459840242355303273470212774226431009007438716890366611259325846861835456334513545410067416938268017581001142163489245143729565909192857577176168168289547957911307697410625016968000873810097439620904658855713499359036304496136745974708572322542788699549627173595764636101451232081852911936270417137429977388644532182428014924248075211240253396741964853600880630165188506999158488842092348726214004011367834417857633827373545897043290988548873507497028161345550010596941877788755991985132665757529957972619273992627096020445799394850099179983647745717152454527616806936121008253442866946964236469354834435335608796875866275131365415291959740993213411327919555982256590143653320823412279748049183567222086347403803114107754631657539204671833195435114201573179437308396782909285872882104316341974695092246415754924733860898880215289573308853077079257318319304873439335943316875193133181505423578747767066611273202927370079574355853644263362393043018753534085471818715544284679405530339269008306416873625255213986779053471206296436957629662072786865357590497300853762124044004514702045728685452309979441963595105401381061816230760941083000461547728934793185538284304157177272875680750430699201555157625593514230105549097704199877296302071214611042962910362040573402694036548864549691750404902569959570861438463130218934434650405880690712349069066438148414741387521497279009987515418178156621159820019976096488432964063964109215415951996896998892066820058415492682979190966220942305119228518509084667644721110720165142470533116716188196881111600330795083427438582150659246297995343279889273987526718279374644076850885463187941313445566278154085719589737708859367871343407365448450540695183819361167101728701994258688997111659625211249169393239206691879268051211819224468217079159960204345100503107966620417271613964265821059980378391356752804483507811053224262702686402852004292145551909179853543554373168486604994362742440081267773926412095664604285970331806186692623126805700321827548948747066034338573294607901652708849303497297195404901268368395060418086923490008121514772182278283083859229069282786974729949200336987520435696599036733370113217634950769700380534807383134131200513722514927753862660162050389500828167741086462582693849733807039681485051127573711134616832661724979393516835578188002726008478289373989208423551070154464340690509702272866714040849633817465828464746114906704645968830745899398042693023446476694765161265995995188388984201764252058682599137510710047462591486641807364915358281638720305421402069626713297346583985726300974273660059695517396126569182866931074816645567018671320788648793308207805282471623891652173721395414684176155561870271522265680777658769661437149425590591622215152386647105558003433217794725402242538222062483101437955530503362317272624780450003251928939729286041166991353011020845671821921283877685800448380302802389402459315490901844667254128245044001857976307414066225124557112163141411502475616490322827020388221726511865541331139302734202478451434387556691679928787963834188363311944560057331492725874491017101283940127280718439021976695431134401818365708541035875647818269813888884209139625046077278002036010421829523210528291054117349194640206466056838502875966516358365294809125396757069577576467309888148097686853781070720532292429273078764063429586624991205456202380556796065000355558260732264370852154363716110224626594305221641520075080819201113974326384381066494341126496676181384512458523481441512618393264295814977516623378601252324704852805401784164457227637692072350057395922278539057743319005030950566366856035455060506348733411287936873752308702781151698122141305290025470289155267219218804248827348611757273069908384628868816614007470299002831762430156947585324152869689070847487492418586929165695035849971478749450712874335647598154110466809894868376757565691994152190947814912850211231059948195500489716600593852039854014020017123780526404536527670332372352092088589277469929985461358461921898216335374891091620293029845761338560945872959562230412192510909580166683222948912339550082111885230734648373749087425973959103586249663565959585890231581930870362052954870195859551572815083226724933878186194536352863912387083568349374272215814566639600123291553748281999744602502891660571804347771421919834094553127648986199480541288338828157215084574998817789269978013862083207496562700758818843810723633279990327159982827976935911095483051871822574397601397918838597374917025669281414166306474035302862595584019316802646375801100454214901711198183705620627515070860080258633383722831734131783539656327796884614114141512626004333403204324495221685556438764667062272884336015364376953655457791314628522286849554816498015471603907720485883373505599764228241776110912755983358400045952243458099142369393237760839277759153642767369816935163897165046139311728456713673068028506218433093206833294410071171864219351407855008019062773353076650142599460189842712299874537074785012364199886832686194667372226212321863565049089500698330834859120724279647858914018427797207330741779973641172473781861302073773980832798145180497198886504400365526605317640656401347256957135154362965785521922625411662890374695565268615552738333105576779566387393167131501379502667841542923263022033818742235765232126896437301197014098432203371650604559308072050796914726038569917584139173214573855165631578357253710757350706053491790316403216123461682165397996762558179903777400742824671655593274794745400831006875184702107509899332741776770598766989858678198824025175178903860870544457849012728924481234442600826498101699437474538158802945268650752470501016182914675197531525962612559141822241217709316634690693878416125376630399349775376545841268740461736994303290106093818602391656514285707218326789433989582136201344059942780148032437557680010687274881690354880751834466934083526771473826446391602238150542613983133301907923780461884215017161617737770711906360080134766198267208739881814979916910441573724890316915912265827782480077631652947926543603639459043164450897450202856401289392877430168446951976137462360101894644057409123888946438501183037603065238131746630216479335193929821258481243163416330216630729464943598365068116656618637592846400750061013908460306837343400859439643599443262837064641785055893072060507637315908767367460151578453968522354516166209815984437221526475508576271481817029739372165031586739604000854909941742831420772796271867189833636146198051503776054800736471230076517621808239663143794063975865569572085898094872940765287569207316366058970330234510883227961962027679088563942750717818493688601085418108740349292643181062283214879837162188723568157601602302452170332100430155628071479441302165612204341407842410240638744838252788681891789161069982825672340511033146148927445483435272175862669438258219146296538290321304616305966201476974390481193065870430708322573249701591658946934333804134127798285664888194726548607358397195050815916015849016386648273634985676084725671360573856948533676002875970624572382382305062970837307631577279981908629710912366799803726860179296619051930438474697084414710597398566183411595100328545894104722177577884139993885925845290434482848682609735610183085823151895149637580926832202262445388380232097424686565181790550446503295878397457722203920926714603062840713049736922739120080899266658338243729471353435281702779014622178568234438987116470732597083632212199838415385156536000303190828534853247506427782943407135355221352874225775330850400090578249763369525203879836407653535551782369856419836802450411972417575740491506975425426827576838242577953471421726795932783052302446355025908839336955626774619366961162330775488691615866943897427312504699023645835518778066277906928794670556980743773580386742122131483485256272561625934019356065932525872526947640950162932586712770250710463761170490885920726038636501361787195778915098103218735396072248357085460090224101348407010295589873626665306108814706158967501457734772807080726277409574207364752265285341547411256856663275689045458716709491995223018210926872172893657385408959934530509449954347907410348940973082982141049913194447067227187768189158075515738815626878963703918489143374560376645294861247752228884119042063520420398591839579510561246175553146026391592331931151967420777089722826183656397736560910051481594125350461682064740730589693144436226563882756631364828141267388026227438202032223222056171689366524405017655013806763481163529708938297890108878776171375650256693061483924280736852253283846082317683700193906737005984237729959156303106647316279897859463318360193262016058105214236833071616345003988902710905439441807350440694491931897667092022115569099616481342871666623266211808713235386968871162033700349881831172429958161028530331144286958670720906800925158410440264071737286423727283654076014164420402580001670418272516952223844553863725778544512924119247054040326908755939631583775192544305491053224070549486970410735490361321813113427688147475722609919679367337857776122574476608838156169436213230245464317534310849802035962393732358212908026715593555005837478901729429405326857485464941610982264859279905192865375317307339273915130384343895074056264428580323066586521879324922889552772133712736844147538229079286801848197820079392672504274848417276866800629232497202589871975863156857999717475278974151558711257117980670161184593231229398458437121943105829091593442344783740350630085977088997027747603569423653757069708901994731388688767464976994206734617935903928852154184777998941986014251330539574533499401886675540582203307308522910227655960526061920502299456693192091852900816439017204057285368094575406328567651814063724687536016281577130136596210987943542970458094640079795197049242252099226120381865960127997023469069755663039856303641823920086153163017725609281431018763748983193180461319780055420500855573649116665347530828812539449152802295090546176455562569717279595172035607943144707438686231891015005881426451149456907692980681931392294842958723436478971325907259239391914301048692123011345227638683490758145775296897018059673428607166195708085437859707792530433276513046433381767723462600225265903513953451853832681447613806419341731380572190114556793366553848848923612868709086719242327096212589780262330442966550160437479299091579834323452859132861486654762267530484172608963971831126276017347381737334433221157394010726651413655687829341477042520269598027213709199012997913955949728805021436771132723477174920965707807170197925355077155987048384928810971060603640523371288271127539061771311182971714249054184946117795230107387131660555916017901475502115629795905138425785724034963118785432712983144794942540700038455705666396667474742069921788429608231625973476302873142115312736242178724925513024182782206400755343045934914304623235244205584382150677349608929141922824842368020311582984297677770512285920679573369130889253328897322304111673427958189627433819441140419465783609433517853883071926211351946693433960432442554199691850775493289926087833997788556719385783184839498640038639491742156819305867923711554825728682960880090768312726278356324653930479597439408690378543186744131377305616709824006209468697516107402907788457964472442611247470804771266562610330540331559146062992367805818619050626123567938114444406642166992808570102627354631532766786081117617494286418043864483824924866005363935541823781163174261827624007407864576767813856230984673727487701396049945732352665551453739082921610758156312101667471101706054207777257967295161585350591170631302980054970280385854865023978336269341150788478842513107819975669820254462148732874079572033384577391355006271255480523854421310653615047717272681021663217691278990665313079211459769499098191437725345066471587393930361851054402653079032270273290428635721532286788986451497524294255263686167832170921896928683690034863901915710615374657179589255625815748398648542392675117482264206539655393498141280886935400569710299816520210867787119186568469054615453009661698083620174801526164044900384351846122565792239366633148679522270294721504740322132588666195673418608309248289273409068620281255758764692962108134694707781099761726420076114337493623532875970407367036445390406093725883821324821355860119085945904721060609697897656593508512153018869728826015403455534934056545767322487820190352741376782464873375632256172484222704726523834259824226017652217847092853428682220125648091424171128860890354057886885786816999277279416191627498230270606110591650245738742009776607306089944897704275886080515668291625502292257416171162595173051260678288792924897650970488078530404251835557278668612297374298002791549441296096463135752009776290240640657526750154294869407136015852347140992007403616365289000092298548702458906967805842713563164501020835048913449304587920601536848122928468102495309678750915589076056019043265538708433617550823421042887405004346203478175091048956582260035081805714028476069364711818737096484304390603489395569269497514863071125590870419209181249620404093244964009802825568602593749255282171105735376352859290074868270579618922049951857999101934612921821855570084271944885266719372348998801118325047499745365858472327965433822998022943276527826903209714667789619792911854544739343253955109012916596710796210615046627948417664035954226579779860548807433285980161205751263347360552273696626301285848258771860152830076682710751341467664708713918096193521266945314365213298522702427915276757325592880442267718119831760755740333262884402434241395100693491735822888857390626317277721795958665030475600495363994107895506337059703392058130850201092287718421375025960665533791555118686596716561212334906224368668045816853525683786931191218636889966776401024911323414109796271448512318514702719128813734614251417307195872038849700626031042032556550998929080296463125668444394182915583619017710276303586688030306310249645037679676145917107842767795435111787724689132202511718192617875849788672799221048065460581848351566089152365732916688459360639145723661055101179035122827389266832658497061386106587824954784628907694083887505820858997543897793913047479769904641179025098485834499307714314870243039469592344451461722227289823714200701369017376258884289614403851453124624678579103552560967961848189733898587528463974967180804517762989498954918972928149970598482270618937954719016590121186619447592035224697966707100776868326914699689998086562661615615471607265027871045549279810710193861923985850166632895885285811719683694456006504231057771832196926812189092742163728401633375532383013589612797987813658994293317839253779517613900986279119021813173618318661333710153507704772644807459246064580814787690900037650520848626149345932276547009191312890455518622440535293427865765476368984262830560004136411821663217306475412399922159229508687838589173493246485431731166356055563387758820215192882211411088585432180855108835622925937702925171956994798224296804096155961006343529513364447966563966480456224515020287106943300262160644910063743870921231978346196734149918291356352124015867659153501559157030911219503467349764984800080836865432944597133403969082614407262376912997742970666827870583935467834559585487441610042192636765069022389509972620114113361457554620478333822242789092794069580113123042635640429680426506702673813177719362013332605985271721910450109321960778771338097419981284578641151275569059040853491492023424107887731105152596686841461104883156064587484734938244848462733492373985687864977205300523886561460652999524709874214854268451264773710888239032270267560302922456507962478429479396424873113256334238581989517640665910315914081207205392043518734528282139259092997457733351966503812141761335451426655195883241692563930413473051547653083716558130915781663557100221814636594276045057387610283701376407561383757793251077088298009616909736006056905217078622270642946504175040492795670040100992444557164641145735739933429694328848479237979451443010041319444645397391755255118747317952202068211900856163083328807116831122899263220477592008927568416887189346916288654271807476998144771602764189588203677686361656633193066304026785797467789114399546268882088571252009745270229455620098290572983461531965688498255810160395827179861125756200241951873926105022500960671414871800785385441524872044310137461853526881329328193441814355884538219457111735514961482807259780356063982154250169638641759165025485218863703727577511593244525222422789555301617892378552701643453048081689300603022755230865963974553893063666265594244207841595171933106963728123558238124221800334317462721309953527737162543287933028383132554813036336278090117038009496410605925088819423875830126370122989281818110466591864371049748061810785607623731469613792067752877506847007076674683395636145714611343882430487865117276979840823817684161365662819127654618542987498909286179436106460333792619197206750510531674995766168623742124201557148440743450631876085986841883372752132833335562470610469989858888965416879166361445626042783958300721387415308240439198804096890732059710546671973977747721825069845958475284881083038705610139869184838937962126843635215201262956195482280086619668110267529707005988396990730228798882688572790161193519058436479615951772650804166130492826211702857236478572254929838728281862428000896212820532406644774669147251386941041075820441405071375955422275417113697584840255935756302805967556037722494716690122749270754483104227702640947539283593195613825103016522066329169830121848178420655717826342434459281350430998445285456012652956251807484199938055015825007208114656358277985224566046377738986629261640093293086148073581772041180867695313198480589553518730760717969485072913985688755168174846474037764063402384038746818914541322986989876092596472541425273648801852408806676014608904671176366137879490706432428793537358941158125913566119076227552409374333700420626298956939008773758929452691547565072576016338395387294093894488126654649006984296563019304795540564785020378139476129123494197218715887904692677568834167291245063630384506192822365575691203994194094582488403319536558467688476267891090045853109657846377242250189312738002892204347878985501388210637414334117187667632191821544408001083456280411282685963087764734375736043513198636293149527468220123288863873286879837928172776430550332628878746671227102652049060914134440313923110484881582414494873675505338599510610393545955883518796530755492233382968751822678182686056669099637635742608782819571752757911357392401329542337248326372960233828916467881277392356294026316573215853141244613723868810108297410385285629684816290056574626066096039038951630682518952622184946431832142034683427103884388208489662324192230187027672913088678783548866449000126049406803512131384402094772927246171839561239880159248217368214025747610854355458682093471217491910521068459687674122938214723511291787674567373222894758537558494784485976812605449124871128231133493747811931725342897310430943941191956097574893059319107600284073440580174998812931178437107734765653090146307157700314066526661388730110053175521327096664478638294082717395107970407436297137845806114108127801841268277514467544529153819162591873028459679459791913352006177558421491141231700896403795778540411182547029992731232883436128704367302591352197239255513663743241769620352549143099230097328830350834070195747183400665730889745380228714178992034891054843163747156981931153881359618325169257872294909445426421894210528804414329529660311340726682676233366073393497875152028301574690399450439810067821129694195612470411500386304110504625509444592308057074592493247602813080397605059048332433850151507842509635626801493208444446244326757091248858085171158350920540469340445014332417547826184742466683754437456243296325501330934089072703956053100001762847645376267581460565018905465188985515351841295169137618382005206798400431253641140204188904826159699324854580361583299599909578857780752081193807899346985625914367259259729312483989918041182008638676600235285345099506317151638907597333167760761985822010387897360436593342930247749916643493726839669453525955726203083092962069573785408851989800874491099332565482785926963264192119181583417526519920419951323552591409779164170702043567542918620693502403026540494965073194019378198399539977907582852529626440267444655830059942881401073336247397097394366932053440459867116907392351782926355612715473616122467878517725124868573750558925874187084790259988749238491173815695481474958182814658821535313872120781215701234542568607248424943285193089132334402387874225674563282600042616949965060109187493594780549450648014084851989262329342383360456168490025242344890272904105418998441620790308173259186575562802750493230394561457207485936307152595295488862347173794554396937663351314375358140908726204375733152997313833375977422341867867707612984887349718681876925952825507436182079511927832208626168675834268377456680142567936234141074668157954219885911053114168863500543663012737512492183883052400989753049795512906113080069149163523958910852413017088596032891892785924178931886791901205223810420194151395116227750765088943789933905537692183545311403940189296418725888741275698573946791730565996579238038976293636555066078647898735943971882918427353739695076930644875539956328359709788783835238398842385094748775756304944050299850837534648948789740192492189794536225602352889516387114578832950773840605076543458815874060066850652818518283719171297597134671075231045429149101716664228389252791861147229841643677292794851836368888813945285449310367377469876751225797543743118894017299408314735433852038634717741493573940051500077249984138373277968156318347476883469447111619564770753500842363080315127163101332950182366073126115179682285774484807532085661603120890568888799713825784010027447459511068835341883920445844394128236272753977454470054265380994260326023575318736781468322381119122108770005283815633598921279862366984348974655818652343509909583793632783068365675646881001556301370317438869467285056858529179655273984532944952808688629510020827034881505820467537764657213956083637878793366257328190522960378349971671607439445540351732584960895280516286651227711263907877375756418572333567134785007515250719199122634069000753883005149028624445708107805594353504987963423411348063602029826131661594755029275149977656875561186460319583819025672393344075655262903522670838657526174699955138062655053150023477713655131218939737766676492542525877505527380630487135941742425783419682889536481195556490858362478646882106445028947063795052109292813092085552918739702045952908441317730687899477208294508996237188078668733883869284999043688201054342148801447227492919037565395422401653679054728737708036994205660200293733158110952180859054046215450413179460367382402719336056501036100319996158699288541230548667516376759495754672621203170160545435056346405068563778857279514978480660811147102840661806265550728533925501095317401430301845291533090222852188179488109234652104365435591977639386716892994225628091305812056328155531759366303308305522697404608734489076286101883363449442383267816855819222339471487387534285055234848436305341322237207707947360175544732433845295905626259200113212095017547950381370293502113880282170348041184148211248687994595350739530677359874283083505617331294321903085156083471622082156198974039319500484821410511805395929144346852146753042599608578233829196501078276927487864891967581805901694422338744271174688261451755064754676427684784386575848942250872478292362252059478684154224346304231594592951713249797759986137471162646056726362031409146066882567803428902388745223794508902121769675492380596447974579867424734630646073273884865050783887795444012199000184088857315230014663052587338583707235152337176583601092281376986526407501957221166547530933875073690559303119455565432183060633426201137708516103177412644685092233555315263583088900231538030169627322003466152907945076237884754138213153229478802188573700108086954828537211383390719416186306788334499118930959221691479771114597594766315041051793358500216768808385682660327071102950533073400617440789271528910288352901810468767093477562433710474053522806192529554720809739357414071136760525771847133893099681463188261833426528418316766302345808093879901107242248513769725370216557042720077303050026361227255797549860812232081970970918132699451509388702570349954092081821219445550282204197004545079149378424574424715388995274661335416619897281181937947693672408816022003758648256971020996282516176274928212068245742230892987206927433455562324943724558874098585109561455174091274465391420406031316289366185217278284432580073559904105791979387126048557131263958366778358780308899465395591646698022979432917197781259199809147818172411043880292252794415164867910724696342208765725964536424091248274137992047695371169968627929892023126415915819441429509874853183703637902609976479750602247506242546412310377202120723589802077232575673617505538258904794828966297847380104689052817545483104487061738903642426620617549234715212880393396557255133219949432747826261409347710335059530060519220480775204061051682345365810219541863588489185553683035685321952680973651592322884671884614189743556521378486116113675609583067788814832484994254978256356885832191206237539522546291174091597111567140245618209469487338264236203685026157592974647954047243811429060658058457480393565390815837793240177974793101528539927364616645558588515519107395401475372155860569061844348889835766643967873499519053965908015690700415606830867886883159206733317858227563587839450237981210568698450851952746956183316381000161417990251792908247763705492052938443591320383585286890323245669427768171748871977553074150004747348929415985554688588282352400149707807225699507530405940470607875578773837401454989285334358247075414156664407605377076309539058315999160649462057714730166851097041283177065811532363462599244213081079836474909036355774771355938967718113851578546635140792253086224687476961011899042086536785478110163926430722300780219275858893883931380575490895065204827484598331751201561213138706585483391730218037238806968953721139865604414230170715780169437012419149946477961281922356131876674137396934790117228305542027548551909758352624490310114547262394566267845065462166324665464319073939383516436437900435945775073613123164321256794194557718143343447736243805361194901812638403124325955940513683276132222997985379025481157311029977582158035824211208796732319641186448577989577857051028351274214382307952611636368838214506690584365486350783371595776639293688551189748708302513146766202625348319753691204396822397641429736727769817274975172830639705535774268963088834470220735867441474535021731087037451394074034050428574656668818050662659812349888719732013182361685164102958523323664552272167047378813366066119916084822189300550239416973673831011459429385849103747003863514611341624090740873973728125419531288940734345157431641054407694341066964507798351725876437433961222277825932530753563773963465638356747473128140241732398907996501237689074315809162990212972727626866381445838382729567012556155022413568837386044828723324531888580460148710017565652686791467048428270623484003117882752154815498896749731356435141665308684247587644030347264909951092940005580940516276918334288353456826480127658461154920324259876022374251552506303456011242410213069364124486636629991567809863619046879997028740807525485026443955992309223638435746034732240566918668076148246216208138183473020904012196806073662015964888052739267081598982227062072992546628576755966567470640351772019173128907962232899205924224882423339500238324180797985506892251234790502759919090267501944732202812676300525345223101932741042907275605936676697476512262406782040521966217695669010145448567301665076922231026508725709484646001598627034326373166226733379292599197614408520983540060146287801502696983752154849075877044810971298158270443263496478027362126276465691511037879477702075002415117621274581342159000671031305830009211632189618997183883715295666693782079302802192980642887959834295828512698313709189275363235086972886496800072283341148592717158332474210223389689951487427354927286516529682541820011954404830295848125350664420656470796200851256547086804689124621762328852316942043397905356849249395067859462806350207983694243658001890115177031310580203182014323698129184618904479353164375503311514774151653210558034237753820329413046983736230040815580665662420124540480916509744460641837084564914602962085610736837279307707466884253083523169499766382968620666463922103878369571594033326051509627895784350606002898429664474927751925846796060882150108784555292185563746391267115155080311275394916265834626294395849981957335395970166378220432023501530363042221194293361377174032615358797887537802608608117426159784094055683282355711484472716350966129913541021042918040311518543417383292924717495006526242780128258867209105924626137621866290332355669133204507460486949619310251871455314608575323943564111329644614007464418190317161586906059463543784028884014031533529373697926100365944188410816992158777799307075810800634820103253322292975605731530936916424076722945394211720642653919185355345751498533193744084759361582756257204659346838716378135923832100676646955905004870251505615081397356990026061863391393635109378391701780990763267296858734187350138208730419546991646499795735876746448506331572775160616622959642248956758209111311484085232114639435411499112398390481974071199204758034916551298888704390303018359673488528471652802045152324762183323575859636928792800072923351324643450708822184276789205786366249792472888810443377161816891312734621220745002646443509396165735308705465087922986712677146454902273769880117214098795149537877377362901169262144348346795059560016175562331881282585851434360935171467708385178897963198243732448043422436896087017970362126193182904137477951876244444057526481326429575277919951480653524961345785526933686102585550333643453309305014297573905251143838683786629834595409683151370011286353497217503138101753285077490183900373558659375641382075550259476676429195458641776668829633819460596513583267903946131634136365885940738505135301908528028036146640529019282678062512161312674102653451386935832596515865500071691261414588250800639115508580430011411234432509846174313344728066572032794015598624995267020184946268626272215511781374506638322770165915838739692529414671814296058743457508412098282473584538817946956493099620158556614953738685178749879640487631122750473622736517915044500958258857489911663260628723180208720964801556712081942144668583678796574791812060430723292058576015086180259208475474523709980487437952526514154898248934058965711045289296117115017945191787734951888138588968316482641889977699131164439975524502822626565625803785526334206081817796936057596659054426432214008439831793207642989101184167600549582398540858136169709270705113562013292686026872050777256359366823769164475025764081327284410129930284209997886160124856155473201376989186860676244108333050199806093326761637758130115499996495318352162922916168442970925169269653398324942172800315402944755960460460887422049823879195739293458094119745708435173208404291803033170624604428647930455721531333587663387514704477109266018854165077840529385862114312798614648817196608007443948813395371995078434504185809740092644886685029340809190373063676872247720350383773830568093011859499772090423708704114925887733958118347602682858733569237433653809973380161594208476006274360401369233899844053515888797596254405108910065361553516610127479207048188783136727872844951958665043910469101814159046889191655007532179699021219168861802144244615514687353184290059050548524111283217744912780424000147774724757372136030678363481325064602174643268890408040113894400171716115911601869008205680783853111591031132116586997082979034998309524654193139542853720312697094354253291853511635300664987063733703376172958331488408839844268465449694845800692370985244344489403902453282166396570682825970771718495876034492074654954907996332468896856086396078887650075430762893988963290439763599759013900092823439363134813692898981500883258265807331501871201715773563778204439569402159450290907130373316016694916885075735330734420252019575372933707549709349812027110738752510282655382122497059481518790000217368028561893173954785074440172751667548050917559840273688199271979237148181121706784628531501739698934947406714246029157404149842346851603625191722989895240716199385335052761789713309603917073618412628897055836337329396222480339402236904028938796376931195043836196147573131880011246539265278114364929873937408605939741253542740261732458704158514059272947615530134348339668359064521633120236605329507211311106986792782330030047369621313245412615772067045791776829094484556686130303615763738816438289321521408689615023338530670428084003927363413598392154529846384710612447513284018723341612078826039891435388949325590232134620041286124172208496542873158967058016306207541735851517850242580429065951307011725844614182778088817083871604903728324068732255758751184595912056346500748218564751652142135277910287640379833628510841377264921180167853053590957084970427839212827545680837777503502220980208592495404879279853135419336529824700490301003722599346325304770268212784540725693178276968041569960647811041646485139737213224668795604585541842759082151065643829141316413655826591133397316085573860326295600532672734450339827733832161952168173689092116023895655718792931923532794732699210969996778374914244322224419086465692054013869732496516620665676765592004314211249941178729626863835271839043402567716060304578017841527132809712060254725286377507008669702843266040910213050821713850189859338747012648378896480698066906237295150766188845168981348244848306847419335793556153372873673148917384165548089748542089864698433772907968307462830403940853051521085037947268935597835944680330918407578133851987907314281307457970907993619892166937048588515348888168364899874912675731534472411093021960026548050820266443109122562551339039802369702511608184374413353241918069694820213247764815498942433830758992620622670555516996416853116110401849909200521987641039397511373163055779897318321282931912341279619707001988433941481894619655459427760559492152734327307653106378433513443457015837535851129435413109185313902656335602084855597483025815784915484034167875839841589781005028626331260555603755985640505846198199124384859873860688210827202378382083624567651492310050555873028418927473690966988280323991560346310738450600779181583447965216964690090747745184635469234321948021404687328589329339776547593992067952543949087219766208075138166504817852239286052557594325065569061989014550224418296133744497075044980438153711950420140683001259952327852963710692071878576790086273874711483684103828855596581962598455061314807774263907776285844826588777336170957958006279254705006545986371991692532612551006122391783342623360632518797247903252101570226536108288225976604692160891714256461296305290298051558764494541304765139050813258926549631921675738071999464029695928242364833120336657272595976209689681016588679197298473895154281715326032204955530569207008513350846242232530258801832093262524894066560092366621340718159993487869046763680016639584679600783264481936830225305762242030665740114885400314657246211688080157458436773158659774832815746350060352761815541745241892430402914462286868699885906247763037292176677977693919711324684909392675339069778780877811996872030311062277847797655592927735420584613307771466918761699628562267058611834638961809028484332146560474389638340226409070617381191074185133520653600689301926458185550674948955875290697327842902169098798093042461044327581409507363840522575168377067879777015535019297678771196433372629448801203442014487143855972098097374571137968568765039928178250277320208756715218513140283648012657383681769288445478740756054907879635452538533435885450571217426587386841543655371312802261523562393558001927699142764619071653337277885686072240578332190776075406696742577465301986258701730137858060286315636363329847301593947638405678403783459083341989316100327539957112145816686539599253644714441236522511549230315170018634694632151608837096366330034888238893757087435259638888488717097660581249351607567901721694948558121580075088950802984033765349987749434320020874985228779757701769658397063411627881554291954051730276151740889048640007354380737708298217979325079444395632081700547558524109037426606332541411392813905049065081427265916939186099110264426346375796642947292682351505034822930269117817548434084923627758734470870272961361046845901512029382257119375405445958065576605071997045113690088280301501214204394475293982818596718741914882316666478484834655982677532852801703952588538963720203170898695103314438733961464007559360835518963517599064224448168262604690868456690083490979662364977257575288787056262483448376964978431385221535967195168297140655136912777022374667503587356878652964774568375779077008654917698789828888404230551271175739246296605785494431430169640017743406205209779721404854604133737242335639416878591520274666717862950747207168482440757326078926811160544220319902344225173052968532596965776672601896035839481386973043096064297892533725248419008363326398829063355854821654132262540653015841889691532959873733049618468664049445415648083702561682785004665036798488932351397191020379016450025295636912909548480789166779759521528908653435355571250311756674972711579616092551004254274642108027321000239735066940986768775830698981565581789678625357280201361107928215650617361437765080133150874680745687560747849225375121230279550701513811014569284810831793803424158845374685769719289539079897769192895605115193966172081974429203337210796230822902011199267209233876248956156588687609604344013753849006740628790904088635143103585248357642780659155835382996506597388198198025762866162292194525548427616429493885872191549069003719307962072911453355417508486513947362731638964394920711441056177362124991886710057572068378990950469188274954847802525157431523831666299279618148444607708044555573690374254587407065686996144833803660277728700097421783786446846766122878842448548691513525305171541337346991632379686741777795572574409948428571263639124785169078023215369448519552294895498200727004160441552162401840026650665127518847571839876919272172130566275997880881701575741764071484448387368051547948595351376119018368268810679487065536099988266479137446936931958498664273386555085394898066974313738012694076665774584641068981671803742410902620265949856304024023443369973857080203959268511168050111866169858857340516131053904781546465401730444910358495821612448696526041801246761586277508494500901854547280408116418861591369287514259607620427195734930806302705388622912453722741220386029796067966672715853495359189824853546484629460046398935782142360764658351829680212491827292282080643226749221129435009827335749550322296768745150737444087827392169202184281533760858678794182585836783117636171020089788415725605798178515931634025125071987387107101530970979281156734303946530518713186558274824795206018534494036195625793093344484446926042219156661474042231364764710250379666304229425729362823982331034329162244430226093752076128866056809225426778967702497988864034850943168042888005687463092236555119153270906122364763713762211922592089878144375446416081738095587811620840774436949855816157924756315816836566423765842397999473809619556152322883929837675886371313326216910325843786084817070349807403165443107375893047522868619101845297437488944712246002867396654470209374962750346774404541911803232162141621661776223778546267482644169117734010633460096172945566294378129095638974596188573157173426892121330492754142891841417736105241331926479623797825393471786065035410399112013024911100273320098032010876287862003963807594007325170216025884069743371745531240753525445102976888569211906785455913303392573347442671653840176032064539814308101040705504462219708832800199114916965773225508084138236528402466484674101565556837885680929755070016619816101238181447681382580282268025779267050700000374848236895885503361437026412098065862580280766677277149652608807225706761353382194589696267770899872787165038926145747827982623637341487636978442058309622556179429568489644799608620402220765267295488042552859325538575978175170123051880928388137651002672333849661901756381523595963484650600065307422005743191028976182672335751154140849837890728553468994976332499627513727979923456137761682441710472814862843957489245875559579716628894971666354018246273122738664385863990808495421998953440657940685801708716521898813297474996571699851685089919929632368539128217355081671499459523423168001730639082430621643443546519869339802889820558800416625784124891859303685679527072341326282576591732738929032939311535922548626586406427235508033683626177085082992867674534625311723415775090030937933867838310762622163432920176184722435965872240385008980643033183571998683911630923686477854702717021138687753768961410897486467024358618193558982221316152762187238363812375370428250379512973899576646023927055810139624133073809676760545243546965830415446458069252703158155631439522124719486104289866802009944993270734047654787177248877455880546144470037722333952120551626321147611435250351750697201067319349923101691500600759565038825858639833014798973352522228371883113938681192092918328478888641607797253986201775552582471008654112502626064258537031228300814145705588376185714959139377411445039075393487745156314920011336920629409090629230567219813895776706802087179403258087249378128725702980767342169592466252422960396301979815454231155452859504215427834350638225679236649208263581531047660430981831121557811934247012679654538567119258266802510728097747855059818963889222847177295151649460150481698925341295664497092510364918532676407547511441548761936244596523588408441841105250548648457535180186828994188542754945224150458407404371856605546375610522907694359260325096020701599826505359881066031670720251036396644961265479158302578820302109770777367548738885236687951881518311571853083205324198416391434320667289770910910068094721714941815020032556722917043378975837187313083082145812181754112076482103123805944850027402667114175905139723901023804433004037129931217793245027273853643384235740935742269269344774547140826350229066715656973868682924643463654248414148616244849308812760102149944046049680765044351255201979156807666520390684512592470747651335032740368219931013092204344991607036974572467249653339984070104839473696797562833385221761730275467004977966785200488132279668994788777652288745297674778067787652429374404593293256499417084808816357396849879681509433067807730684805245293004220047355566810194199695998437961133505524192388586514038991186216448872681218532125078222606512736031205781725512315609588238298882230399287833125172385907995563032216583971809733590377835068771227376309722864613309612271704450526495455443407086806203805132681113895802398760111759188182337909704379469243916827412120710891242374376335868570080544808455627154479701722496930920710091229882837222828464924630904188598610719411433952084958005867631291605135959797106853708152022887436221887552079090156676073628399035039265722094456947478700319431453258306556407553497230397881140378667073975643243920381160267643031194123378565882410645858657750309982538569528407589002116966503498841517128734616723013407435237300624752707049349391051685187517213659283505684055383477536021772850814129268404683107147008498294940778794603505811019519064055212394909015839357657902188363288271412925889659224390518936249083053559778656138046873076928305812553905498761606898718053179635629294622666886395436280588211727725722331988276982100760373037181225097311115097765916854355911403682047518681268939252713869506182636573643851341262124499529226664471085786872152243392597693732738319127127974973308341007889346941650812118257562022394107217819066051698292560330418629702777477290571528032257767682581573786327090998427083152847682797414694995022601724959531912404631808977944497147029955935466876639208696986940277782856689236361165139560926136627602338698044007324863167729391169644302695733467726740902505987356782879542170261967932035834447954033226746711347920644821900156555452401489117649687030714016246240527257929685003687516994138798265911059237253737902478348789007870508976845999821929212679205302657165446882298082066070813805692422578801360389114838776397564976825934306455569349441784847363542869791156062915432058067248680442938084873247666126462739075993483771958304248405876576687685740176306236141750774406342521802720460685910330344827774361861614214315443480768757933687987642204489116038853776584192978133969827771719324573488990952403950837373755566174230944237992637177957855700386967157028250742452988076320283095947432647981217667141802479058496892574042432504090491817710201168743736902671442108861690823403894182590891392930305759511265986400097326624433543556268036883763260916629674074920798294612761338573166770571584191718783197977399274020430246083133054032123980123678319330315788828213703895554094270565011205825939832517657707032962853587746436716165367058894102926228692820259728783734061435222301865948321036426327573835524402478747435157662889389697089170589652036344524528761207040716105008164687303247104863076670170910024082375452468678257933085649790984529903316095099116998157124981634301672120764803038007473844988989417803894666753854478509084360812872622930866206888464741239236846710147137847991896761193153834676326167277191687905365298707681296045751627777811609303894067475980286199621703555980374510487612575555122427005359260234660727693412535675646282570860447399036545539662219408532006079345191197625071551053156568220531106509580585296276794440304385289634136045911363795529371547110597780311811088704678610658901825577196680331740823067529589932784702075587227143129442994516752604797035679186268279067629885412912084297958121592554411712629366626682265932174945307689291964276609225035444127173846670644359366515460026177610936638150708443500365931322713860459608623595512785163190802284929145633609068698965965337226229497373538780887111540843281205229161080671355744794163426143845944761128345521848663290120584175728015884051505894686508444276952087512447819439748067066722067074049467292378170286349213910111607656670648228714624254139780869223816493023207543039075431016025729398950674825988169977512241648413491324496865652302841688574697262271775961405334390255608145926584673324491705619058154390978747038345515947386425875309479268815897045595610272464849174904821831080047209883987572354775175647411232677909765819186974763686122494195808631949941018678974737707149680261891443687366415711613091088608454067799076318228581573942789007949028289389812126331696217411886643699720315033736826504684777262359200981382318019163759284274583578952056385652606686233944395672703501288579338313172620513102589013982757048537951824354057433810288878161793042703993572126507654957897283533150927742486626223766683305403217849758851822052335637141809386683322178278151371913395416990694449874592914591989466897654667460962202638472205559277356442951037504872395055281088770121570212154628436649657048383321050888811185721571531068850920242751797872075389959610373751688071795141239562075454840875005181193662037838799760811987957909187710681699763171024623375759166677990802126685377867967843199360871222591049224077323133560781745144628619564218099641930594622850475980432869099998099098923866560294940805274930889083721262500999347577906361045621831961561172715707118008456578128416876193643967039949792646934320469144600554183635833458563278065617988983566625745917529095045687057786257821591533763121288481781008764242008000947672572121158000607191100319318908533926131821083961920436429149916604560409290663645044963719198646150628918935175788385129128743824740482974258675144336642502508299508867593442536384071364479095933611075305098914274380403555687231785618117979832024474474671681992964672585144976582715161244098240316890907305808487227500162350086953277314243712472675383309504977036662483563565463865251993166116906741414023905897285160651212968284662377404222256144914745841535548547277472695721282577896959943809312968245822377096958634436395217450185559640829042871418402800555287245274269412652718709737754357791981001408219215162277520016931556566263349038284951668513866244334922076249827771582118172861941207234971617915767399295439097826627056310533606341280460639253196870928557177540414597698618151654813783206628584958215251667565632315543939199980927952918192637852207268356867137363693468371526786463493176832979176783352988055143384231024338926048884729161290797903898098448122386530809150026417720918363918761645009697228190555712165847117158948050195314845600453294335720707457991583978939222013923660053783043330363332446508348997780497324382192092987261727250563895020518349977916422321486414169749861152544125822540799273428764083195801257821831575412666764267141268594792736327293678481320199903942646537342496446912614742436825402526273656074315627920686445030876205972998603745639925501618808164777052858978971860894694430046216651363849826748668706132549102807807548098875934305557275325116473028754668261435216665469758709735133548923730005354707838951605429476186341242113698346026086324661467587262705376989496880802217985276849000038293686527985382339421701666755843420385994546414055905215783319651289990339628093257975939622864040673210958225504821486062446262437126442598567658698490950265456957531813319214354833455542103978112028152725382666599278849072726810446791484313604370630034474496244345101076304183116621953041378241761375540801778065762321299052950819433760035461524041938000834938969271530100782877327936549062953519253160945419748266025558490975249193254153882708064236633694983299772658722775251448061567502705563398434459937556674097878830159233378718784078882581253360218028295846334247737689122766945858828339367571949057013070940043031954914630764447753569670002013843735371272102144647018168651596687094498431965137278319742331161679373576232767113392178933037617885180178474371787352154596315567719602777523866900122745273291551773096949816355282932856413387669725788421845098748034548129598875728865240059244420290051707147817085375215053078599069780953521974058922036094340083181814307017820051066275192927769782332522075641196563913091348528137831560912414428504891745274750912005912452367315136376361122472910172210816769152167159758747070604171868503014962061774929671727022487558868164660442364619039280267908469702515369805854592753851967443181316350976145159294709494085764953737493225519408600766825950290285229945136816123484532235059884736062488488208896641513655115566247565315887939414425960604684285186132513736245063784172732388100254082639359509520845696869617427542136707928927712453465710404390759762924425333133871266845897159156879881383740773050414774659618796003377097398523447243269365536650195420997787791464956089911286834216209598769410446028427031326775391966767970152731528059178363308111577514724239989056131683787344386730525034823843267005584310566520866786146719895766918934822209199999813160729976445738752378511867893670758161220749042075180141414283724971635428909050299543624388159977363270193956645098620319691201857246926201738500461290300897965073772174519474450966229900920991708321482558547746719568315544626994860246280363747059161470796030461689951428346496874308654957049592313961205657572069395124579947124507453768381471157385944217196022464166241090397758389960278167318950358116348376089273513487522328732707105784316009419065165115247066046026566226233412731763546070921462593156966799357278710770175125404161173046606137231034796660867389059068338531371674203929110492127487903826767271788747194401161911293157195542931189812236785943109400064419645570073978485393700037700388835553136792045691537782119911457957594429213017979966531661807654527593711959222953909831223962163361673606543305135350980323734475424924174512071350304320789027785175457351719514529602262203495947272954038934649037683526985056664959463414049879005386931795649366489028091956171293308449494005161263411289450358622824005990736598855647592060834043799459443474391923170335558281702420412661542169656924441504353651558363583151171519486202742822977899946294911618572352055166476034350842310287556120237549983079011241410805409578467280189609192663665431328578985206127177382123193811167956813443299604632574195189111342573802477182319528580531201192739893030889462784484575588457537459637205499006474962653829738133037777655971473551039559672128458580679321281631708930819992994157768515172281782745480085278272414346640056871841820150282495613711197633112216475977193886063290744893090581686732403456612740512161058445524951032231923387215369569082469151050982795498392510967929856571699111984464792367503703085620842597369517317075030531507608395725345505489781027037917786449615457386886989447070925409582504250722206313626672477261551813971593193245185818696079591710531744276111954497816413358544163796381196495374246341883851642837956436072329936282279953681728821778972876185877592593299215265892937746735514262392703922916787018605065305559566898999070789758035347077736680349012758560358846335788334364567975826180700486343548697709147036435877609243144836863039357173680708735281910517678857482034438821646009466764706379531238082154081953928894396816779262287091753908159935124674992998034245421325222354876515633733674040888876799038150732427269158340423565350580052352762147038414556327859587583072496488046360417205739793407215014990834276082979105271626964248477660028851827112846192072354173517882523841500724079988682510786710207383786935938645882788137928270684596347841825174118303853689162840540641030081034844648493109362810720033134790852476240668326689703548368856731010359803656335422648418412745155504900702875392635549770524611095196828343510831595849731933222179289359175499264382065552569419918593481987191742140160139155891565708060569065740166416777593750640167776303434590157794857142951563788236644908406775243678726518475903762882385827929998514770163222950426726554406628612298535624422486672831390402399321711688343191488683226670953557479717783980815529199844102605431550241801145127975857522908717847275304361483511152088448360037113341286515645238873014271777306238941421428078624700171301657861610000388920625242573581673010452534628109415922143678754304748433949593139948621333222754845894096691787953158694800616988088302542577524610849591341267826542096758004951422318903984500099818077862771212995412977115127819610634520894666644738891632606697358713087141470472392163919785491595980770180257119021123796829361212067111786655795169898365542421176663921715644803164835618534647899923367933354108455052167505209772842082626949443983957782304807770288247248130025825184406323276336630128849097708103830753186947311656992106918690195192809518484261147312765643649924445023583994707151971007121650749799891114540873586646332819826931348603086045928448873653930989290480210141323203517201147941737928190613183230689026701503503960834530267263168885523895923120116028673854238342252614172512077583099488459914895765563125197477823206297906271772894154690443253991679883325731910138796594117124921620959511980440942239281374262449485584394318429668787297335883612555689307240163066138715308371940230023483798838643646588091145183099964296264812062264908776422916424050004102346022806427288483198829267734315092072375557431574357768691840438283411352907092781777107956926387682886702471297880445522039497484049882726654404407143187436841281159178268187751939247366190884168294654876074987627027995544451298093203143194513745024747679886657775936277335525553624397789622909783208844366166454133649132714220581863369705855634179207317006630859646648387465592787302124359389662145336910416597566189565150414208720994395719764286034305963724544171676779430327644202613840356997421268516497081497461837294699101636729053799278303290736781178048517775629720266677941077041309196435845175797339757697128284079631001594068086494600360954625615485811168936584076063211929849042692875989199113672535856741529317757751382220497516161199271012062725204158786287910131646194924491749736829330805953520797160162907048274625315668234915464852447510896340555671683545626589402532342458670188508855023129866603371532472018654272515905439703827947825068498960812290389701652642996598060533004122716637693454608966903304923650730158870512852201008390628977412891070107309813739225657787770671582259369869397049024798532342365906020151113465470285231274737002844319459117850636157414311498143116306371001228403267135998733127801791320212814177804197768836587703950899818854394706597168616480425576765016017437416414843214975898980124565060312182416742443134351856131989180829335106077795731673903985869093212335355177715499812842030304057778876508516695111670002533412306755936295988784601573007202203259684782434243164141187816279857748166333844763368431116657046151046410405057994310402559441881736397399063535106645185010546972348382477085548957297028283632009001459453366799556979442932401959716382580759605740095289158476531780322002865675517371059534636944597744446025978451718566588902301875989990836214141722766413133309892802397919583903783876396679392307368901580024561597739014232387638988611548760068370832300633229639548662645490457438163146251547468503619191850015052945917556769393658773732536089660004632826188763250968130337312160206644461688245919538976367606579802393173062106376802024827112687573334482406290173322846601830931548127368152548776114199504752440574380668429907125869163746876957898731479400891080495213384931358411382929753057801198081034066145254509868492272424502467753831131778634344559016728425618329456527862174226618804028517602730686381585677827975768781403236539406674886279227636766319503118019898866013527246271584322670476594647801831445400895338330193065122110601836398884937195175236003991084090185364603025252503040932335497329866434754754742391576523601001499125289049285968557411450605175483883969501816157526596601780606670716327544898164035508364861514355279594066218462308835140763676473943032435878457266980216903367110858070191608359179925091882088203802713434407351502057044040738237158417476317684829047988431966277456135604469426649032079065215979629620679675442430275529655092505341898405194472050184050904523540734657810900211081677911780474294970219802229095795438605626255402221356242527118315736743269798290919178467048499551647296883400921313857324358417642199949056516950922431561643445229948414432071455431974038348282707564939306189306004612897465982107942858148559943002680325676231916747225263711688101324564338875697272278743563222661186441512885951302177030640711444571270780609577196176203136654558998173695885251742304114225545916374169537347214860347401489749474239329541458962593803121765814561234381874503957893975117078741874062945587041000349748292529013318807402252164964092420483741736701527142304958860135824128166039532042998511056492204398030075413506743053013567859849464958326222259077946528125966989266684671695394726006969206804639913905184496176673774920734525603908940669556743504501971988360834831764277035849580177819760163876752161592594555487493456677948040209843686322338401511754736636430262288597966088998170246939570037233379577630548477941733043639368778754319395376252996765436301130137843829889939637424089933529274797563749951440652230849043122888814835356042115663161173305626388721322826510854641955271178519305526512574287824457477018507902355300839638072123706160302105897325019051896670809303612279984566532523623874224004020551348591389631453168422670451051825188448081126741970100110796225031032402021707835382007173707824188127976602718075973510467621305149837211775005516017301369691305807724463084556985207971040353536776168020578286844056183162290204281304137469829208601311878778752693979264523264989906857618840624662323437031903972101763470748968540313299224794743578454339549792112084208042906642854559814665860647420907992243536831465553268176289654958930135061456966881002715253606638550574856383001501018861243008975162676449319877700334183825047893381252256246023140653059437892692952420781920213715664381765149808464715032326098943871174138989691330725007810723192186042230473359254751770018223141174551155801629847977689289865366111677008849419143387790495573888130225602291754416997670350890304210763878513999579783176983540152348860335560204564355891867031962274599662483113609462288436993972400741607454193875284288193639096208460207860298888222647348812242136830916479684037282010254704514754262619138873946808604920656743987139193161755415400481248185825777466889661748694964518840604885259435685019155123304841552899207310173777617658339097689522377512434993757543611591830126091715803783579433877309072399935636189775937100407747916594381237320945988591019334348455194851010856592655699518196719528641354122142299598820982444413174873953810389023113394553119775447105626723284946121015509023978739222975956014887933131824443260245375107381797147880894254729138772708129562729252043930609515586143574516267715875309765843091538206031807433668242725627133084072833515119830236059963473365719830874712613062887799221237765736539197641297686297048204864760487551576267961915811205435576757259584769164410942583583249400379945869332739977967100812276573963776627038653401973730685378015111708539619191276923302934533268070822850718536514295926070555097746258283408512491113769422476823440388753969419349140864729932651410429772753278317459583666008779250305781311851456551745984911253527410910112376797965372250891997954640176288081253899982151523392180652396733776898098186403751751265776086779307665996339464431806091068055717176908337133057892164235207494924887558017917309872534916288642493528494590667646283587416852846238769000565503137712104689688502046143684104140232435276263775142500206293564189223366746302564539104771775645245334153606514905705424635482225505885702818228513824589334264448662531104204152983316976632380978076278129796088200289941443238820239029807565267203227722978884170747572542909715919561035770820063543352195486905901179334602190397196912910350893743995058462934910147926013689736241833739167669400601208358983045541419227237747067549444709662540491254793438136065511024476563157172373610544298433528176534050432300155961484559198856291220428250418027598547923072415613532621750048460750500669285612420225923376633404993254735472759733154969721004363590599102822951827510955444153291976748859798195915339991797750254307028030736235556027181260448636936327633163640707194786660095606038569556792450752801590265460145475692081797711378567348013853431556582536702457571739019480582563464797387547315841216761477250527820879324819717783684330643289405402936325986275427611118566912487616021688720569837281508964370682524864751948193594905768557679982145711083155129550075398543300077669360301629253021809050274999887792477975229135847299770091521186307640828059095441523337470244213350145213080352278115364087619313328986827939666571437873752337734496679276026924999920163739660519097493421784827568640500888976585770357231443676671885195022490960494310187213521782179028995788485256404266011874940079923018763099074039631516720059205781214914869823051639028496078541836422901373928083338032545477634107214575597208185732405895034139287652741132606690261993779204311970982773363939890333016497593712419827377505268691434376335660238089425209506023209780677027079174366058348409585775256159671360646721662994658911946653173548788922763629679782419644871638740574000208473455172970751507970264257393161003036305369468914573678671472992722456323461801000569295227542551980195534120278469921045387249539827372949258656752350014156939088801484625989425214768300904386984653877524728256311057998626096081290094681104444997565470444757720168512842985524064073182238253515907886844800302181094658264109215337130714802542713435454490269739492046997647650145038188540382237314820063917899711209556093172332588753701348494804598615593066787590989875616149611188298987034117736125640749812250959574880821306763763355626516673216420544449088571973056397512040736855980095033163542795590268330951560055761293046236332225773013202952660762347487979828589790439903463662827702468142730873309813650451500927842721241707716467564986484401068838840699481990992672455250949810139966221654588840932333463691989228970856982832787084714509122042815515805565689640361471781936803611178288918124193276520550103548945879607147819248482127008933635633360289030494401677201674206082422106972129198897217365170818370851864459073275029679262321753624481444351130682686251668594625173106087062638767603495849062316744629891548294856574701878879906053827989416451710532154018176661255954280526041197501176592616550695443886416646714340169958357287948478662672152443539812340728014300791087329216845420246286833868739467055408694418986358397767256415092547771804600721554497053635795562645394451509953118081984234811014699831779344684694856825833802919335245678930282961952218610498477841506591002960974755443719776985019948958969498446663359156945315715677978333880548664065645733237214812335671898678809973133340942236593065542176652647467294674793211578545890580282838754816865540000165663185672864673515540573854491949262154918930054118654311609270942578783661820454369126685085961774299447392232745983044656664702086740956834475278884560531047242493143777429158942966729937169749795774805933192632629548496805025834607265706861630291624928784907984148819143025257214997081702315707591930758972456429255408095625052448393874880345378707744354345660179336005931657884761045475441961054403849681067368101091549064237094285255069442149409707211852104209108108804493659669227766584484289716867104944555817934431143408412738200890961961841537191170687296013323803107428706065992533965643761599120544164443119405471225343865489981867760182266660514273645608424560362692150100367627056760578356108314655406916387769911324792505378001297509618945105262166110541174246768501551742275087491815283265068191292838419330410433150752217184031555226685818625750062003665515448467910211453197150695963538366865386122808809992088677087446473126950474518591074809219180398300666245736234610781546460076262786210161181673350269493171262429202620057444768223013500370832345940139150866068770926240567744062435505937140326394204728862358065292438605629725394134055460308908456966630765971565052261782814708401100848080275127242851010348467317634164581999842334500165980199345174135448249478254474348535450385032387692773821216314291876502537362893976903994520656674043329719710653770258879681711083205313158584523799876834375766896588812633178693701636308956036855569927046782192510653408123935342424482606053046761294988916336043246470264535909026082130461495043097305162933145430048876819686968259993843894766372696663586125427156809621456397343662080285924017595913468108417406402433549063768880147556581569813408818860975955767402654742992481406645737601263505714790157049398609479382995434716940901802071097211520086698183745731291260308122379371618099177927280811568827882468849990821844375080387492215123307510598537700358537019152165997465950744605411190811792174468495773215819895215444378665302156163124865690489877266091881402212751090844899114346326733263656552021695103661043838428163162043372482142950083391667471897845060191959300383859816433485655038978836077101389314206866239903316995007206902375937439155370576297634504125470358495334176179195332997163026967056596357462153670398207525643893816906818688185041418906033179394244146417996765006826192896715792394072214309468794806893171997311577287678965896646084339754651115548519249117221479012468477406873682906601524677692913716993890062362720718594073516832672364950590702531789101960060497592911848527606629991159216727401241499068363906070760013977232921203106570275810447822346697155271702772263325751229434624084357901927834413549853644585773247655547918294551239400789577008089954442918351264127346569279919816854365912472906727540453500672913510426960239974948140684666020548927135827702157692557300437377497556776453893537213505664050532782449322349866474860349329532797103627479912166820291513499440979164909747083755202915871445710746754635395592173176249251270935652777582130088968339333366556768554974652892104675533241775458266424936178781819508152555238008297464227265073722198199503245496370250736817157588588612057270983153438048666741820127479904464762753646351598434123084930361876814977524050190296059117143299148973241306809730313188967233281300013658451830534394587800742183705132510202041826881950452161343105613807738704006741051397341414746846395284658646840448046119889404359979751977301009741130636762856814611044314953563529077169935800438331322322957461737131117728666302250708651025451318397707113255813167918113665578592336194238449253679156238107362100143168930373009864996275717666645613819684525857276315428318897263245431186080418833015302474369447618176662476904712256151466228358313393978412003660461826746022672658742376039999296012285871466160535876116074575588189123905817604391766298567661954969819590465206094124517971886952709078333863917867383397160268268126869254125210240336054739162706495805825607242099516689877950948522095117746063941164981276617222851603449483541166708545138611239090057141339980325733224130697851885065665519931923597174584532466427082866780114932715741595488227742815344190964101645348502283790924642143010890581117810956394818580492714696648997871450603731342503988300272289575726089674946682206743063438039661248865056308430760896111185546620002025033622789955958540865526423665111477737476566812725426182019912526277000504803034828531680074215750617288556451955326686369948413891908728514189692864791207288847112955427475831684307581585002615658050803622809472292467116393606722125129745966402781621279626011047414413996410970109020226879507294637567530083577533795570015769570549148033318221973561102146785510751591036361262563540304308119655506005323621159979393269510360150541701953054360917108945504477426098705626898330452348800578257344944469597169806774938302038155469245674984267162806999788141078581662913958543564077015170542872456007216463177506115942160895789427520267566644381836810361326122807093634611502186104783392670425573708535931629117272628008752923304041472509024415863815355744365174753070802838548779958034110545968863262589036346703185078146029439306910173247915398121735894869628140062846209135028347833842694945032619007720012871499720098831970305903318998893160514566888111850253382498733565494197996407140766091737895986138725408346258024397608266720584116187680578541034381069895213245782929287346923423613365938521703274001087327678754264587901818489323933324276327258357934083514423641158998181909252336750625361230343382560346706191028407593784409859225718758623545871013420898845419740549055817364139227301228213758590164622271036098474981737545754566417584427648388622954910188215713723328120766967158708955277978800920566539265826463345922478966163041174695035648496001612437076302653158471870523395860031722170386062397624337782543584278082825591384158127300519988454954161102950385903143212517810933291556863653482199362367734056892006666407725127644556251917191636084452036721108760689126514744162320028279303021978445260852988998097842228697786501878608532338166283102095516302753242292665622712048525948056431444487652672592887944306457358664136902393868089038468702006272201789015421607130193320806847991023476769757261880945512380663895206763836750622386818668122891848675244219129512335575719794564036934467953977700813997298226706891944838243659975597061686890640197212738933770614533479633067740247852874815503028402326076067110262549722565094476729313464246227244069257735374014693714312923049754099528621656341699367172301101426849120758459352310349024010173194371703264224337859835448261487660860014163158079433819859825145700089831165082362374963417060390327898172051621528243582477764522067054383552767408481867436980701225266953347935658128859854362700855841287107188105132915877834099430290802424131201472903214328047623319328954945738286995307909911003338058095033552021064830655292443006830830743304249361669226800582755218073540439615662398603635082067759510471889380550005895478939609117227782397841867264256094899694836230004760373275433810636716387420747655419805004309071023472385193266889298561813958142179252048121376295921058767397649680761120517613868389317988636366116605508850259062013372783856552280713153891630860987507110015948004179846717835601523936263929332986889710141347452246298304708961402772929420736336560323436802911993203773153090300191445271129305830594378668611028115343375392399986336567451284823888472999932574896817449121881360652160191171996051304112864755242176984937335343661602103962763771073451410943746601638516283099593813579361950382665534581467083684678667625113246952441555316625871196616765554181592422356683695849245850677960237073156309461329337282582366446123531091685255234373520314238279558907940951595464003631807591397948171488655019688427169108632260112577608349622778572249996141042750753719771084893367320080126704693803281267025537629784019127061198105820518755953872992475698721648258918916630431957278734044769011592256557106758376212903042895340657688997843349076064713827461555417641787264092139738551077818987299943482276568837352666784074466919312290734066510023283770967291741706303634186271984484394993232324029830693668837264047919022001070156091008305712043554302903845065846254654921169309026529449920460334071002241616737090681929071874014861282460092846740503339195249700985801751680055083361971484083053161164334695319720955049851491068043839310389724219854060957638811917660987571346138768633062586047822568872895966358362361297698583633612209211865694023017114681060733230615424140429917309014492309957593617158498808162158741927990729308494257338455903477213231798436219661722969398345132473099901464506560086211955477800956282328577266519417661308817359504175122797245159958032843236323425289581491000946605454601529100214678804552809391442137080334772427032295265607232720959633411248711230235233391236193333001599286341990116060889311180255517028825207699101566319821686138048650188537332206718886138008249550092225244444873179550000865368073273905361177990332460891235648485058271071713496758258074704607113926627906748501223070310571370722133607636802489239267455353160714901421469393912970282952498593864033860833766600044879998451041282099924887991251238281344458787568405028911982886842131678638087020157613402795641032755247812320474717236670076988250574097115550961638242926862991477972791564611744008214528979681890533950127351040126714770057766344769456624018553862356083367032661795707228537219341531798660132756911779492357069040828729525062361135886144228184117329449785910697594286004346911563785772739413537961160528046781104800501458428544437291386355145558956917864770579879901513781926820756143726987292014227948348546187806375489686051915162822887631204911728380060440175702089516766758617605541235795550039044308865101573881945686228676161755878856201208390767442638659504069089858327751358707055065453527850958976326153952785639614298829865274192213321992036205913426423110577012219160432176364176967037666271383426692682030866303867322535264742393980427780149356152654120973467906615847999627745897234122783690635017931808031231635150805330970638313066372632213335780145124179693030178841085585377228161371427879426948269382277089409411784211466575317832692958222501408247317148216277825061202045652096686892638878803262469896440228126095657479961110408743496409087329901743296759328569277082083625763497276780403210677279809606155255364619997174000333544505011614382945594871177045118214363829108657585589139559245591296240452806062172416973475524099716234251656574082214418945811043654781523614237077786477038915944875811442030565407967324184933246535666369472190336354426542813164429038452088338069634898118805406264947198685681166731616989744106688801801044611949238657083359542000892985387752015014035898952727421680352533930341587031700117877707043523275632988824867218510329181362055707841812352681662417345983686087697733023568374487607138535337593736754337561757441584105870069415387292041380006787076509491157566677044378235380933854505007547579506428256944137167843344968062575269667423279809695125726375843265297524249773304922392622293863921128829223545597559113685981293059437986793099681104652448331336458386899220642313924842375976178705720463383597790070896836865104666024442547585145927770117217168123545681832228531566976622468059551765208930771724607804218424789251112759150131141707120454443799585940704511820628037722050365621464468819011169592312737607718922919912457003273155721228910059581716450155602192075021006859033060716887005536872905817036553675065971826324743694220517835745036072130638038492089811428519996045728130531419335694316980087894725625140425364845473368655475296786176408423632335846743432206960824650342095158791879530314718507140121460117520335206767901325433604069708793138661140915265267404215099216733265976506409501137486896335401152359260209281696816352676391818687075402603219119649633101565698644182268027000265495022546962280073783273653588292277743976116874781169089379802672608373963527968660633646556789276300894232392210945781323048810323336072254475328046484763309751362795991280081046685202309043938679349500935029126930260338037641975822605981184024507579119393323663198450715905681802209092611133962415939884678788686749971322458066748013174106978537195735143790708393964480262388810755462750286101300743911387455218199250260923540255041848714319175946751689986286795291338821025373150290947998916552549517472605514012966596503588668139765679165427244340749260402290255677464384777318959022622267148524865867796459475708299084051061249079744864132966480791974540101183446014069624775615597891090435347721631776793678717074644077575836318261812162104076072589923944833174556786097878198734972549276451918766080528973701451706349384819930550103680749056198775751072244911715906264002127848125963713992517197068140184216361615728718764402712288824883437870717024166699960507702069603197348937588213325473663797905462723686063450040612312970743998794431564115903431960167828178121856876177901118587824899438623570549968650639040194127733083689079901893799366180268790590173294641868186961651549598978172071659032698406275477070790239233681671224769010422771823207686768480087035697890890616056457891470476430571705539366712435553835641855586148404364145685427274845494685608525502677511204650335782900538895828057661926354298103964382130293850707457192383597002373600295923862890725776115508728279231370520404214151075347985456129419271284857341165056238692209620338304370307067793428812316946101875763145530469712571756060623051054730065635168610117691881625164303253611259757432635189442003759641070619588314274846231427895142710168144858452996565876925536685637999664172392902750674065125848295062944253743242827704952238945420256992633534457880474600619703965945903495369561741310716400590944974318557704813067725668010760328098952355667666985816485682799126020250062990277595950650610351869916852126330690036989399099701700035378660103788570391762192564134318267531207527578834182816616862668773996797849721361950544593982902960547827741874532114145241935479522410679264373286487575281643186614343147346075331686747492434040646619192799564753095878559406233794284073604520525065503668139657920081584118190673488635102531695264566277058637368049143307161935182771628364068916567488799884724568295636942560234870425906988727584444607158439735737006269678071226532740225356434206744497117524087281814264428788417060444201736263566287017681382574589040449904464020008962243039378082004191395492235765258057737615058157543895062650901479490287317228925000932425166379355622234319675849097458326661194499779357957662713384167165947639815847250756945972517189052484575851215254726068586939095015387969864942365961338560558917437846149685025903247188250968362385100079726126319177546893773873718339321466945606369994315794629821878524476564267040043633999208297209203925270340756491365702003966191671314666029014438471092223761597875635980035932789496186828901422697368278418943088211131898178498615813542373837452441536641568607270610608443900758771504898501567581478307226685161020950231626569798303470127163766127473123718878800224063726924084967351310609183719554165170316780898679152244011828926519739099068074171365292271430887327956969481055824191804313540212336989089356756881525027428080641982286521042439069240118421876965969636750719130076981632900761322380355263652554912516998344988615580090214829778522009019228594109365292481557106235805793951065464843898519552181657607601407735225241913744327120845944419250301918573441966925518970810054258730209143904580985350006519472478456205622179855291585172555280648867887513614873165990066685390493606410318719097799262064551889120156489522176403747067218737863359915017942316366513995892697955354329920871055157022052795872418361232429857930595007433584209303596645556604954418978853271329170620264581151483638062470163191256769794326867550249411257212620180606213083817774410030612277309467295172873675862210846881427049372680879928072104296046821452915471922364982111882629075495101213277036574491665909456912098957465172164538939089058596386303080027662709880446694402436722801055945413881290147197332107896092575511948522737341648341901884485992875906561765483948154453823577229631534424552518062797146362145037184060010217321251304943940411856939410819455087331883857719177632126622400561427558829173733494745402405095960541879340915772971135430145703775135103494281515621095549380983909785172690758404404946703997259423740970373116176132322270148395701253456482519032340942575966974184008290505522216570960429198561626139241583597116301372773706687116893746460051618965828063519485365509654891606412385714154600923696059163267750267249611812911776424455043806134510456626014849091139702473582161289812295335808402635847370139578900715368935937382944712384859185805806593580049486806104284603331178861700302703727511057617164128113052808961696065381726386927431914630694439838430372917443819174349447119173870983353724412082151887617642006015589049774109065984676447466704928461554776703077975457252984963040273449864739648489247138480187278296839615624198287486102421706412438711596154957445426875834288183127613813088094205499836405751451303931846071038897534112842540430441826420640960845236930507001092794162713752962653546843902379181733127855455125065574038283689618690519214634071476948853356057992824105721811131659933876885996413343300549337664657607278696401791688097521588943602405410595826131280343108412184731747915954500461986622505692861629064475600596410193429937621148386159499216285873781668622632130229290512297533415986409922118007472798466255592894458225087590683540252014371398936423512216685248679857596941866567196410125227940158860361945767497965328098452477503490075313340024798806586234312622992237610880687069991384452058240296863704799892641161410877433030083853177226485152161122275883915874078860959522160574990393372462339398564960873336465385746696710180201972594660691316617316885816837772858785536951696281692313977818850958686496053020062925332275241396029060402669420441025984829375563405005921992960752070727273899337670253483788808727340680160815506114960787055798139226634196614870115604689383347032458512175854970023277488487037460132485971263398027634360234419479283508594507473369949768197066917385652162099220268027538329644957887916992933401874818767091566568627716027070162345203116356249501001230571501500527972369153798089203681314620519634083018123758420730966117801539125889185042040272270867158770485837161754873488387692981837506552834978729647547481230695688886202235341478811947965977216893351434020086072522605619669760480457286300381690873659537553269511642343999023040983941027883663851712010601783747117551805489475907753036320791820686168308426354480481475420011400272510903191854577534962353968998900224949544942524880316361311225085583302341887147632268950439128068942195470341683094267800397363956486733730712826438965901807162813297193230131883887992687430461902629771643298160656834351220716654578335932769132956896284394695743805110047483749503693705112683913832871617880886220239714420341516069184653251791959633710987648812246984844401224832612054879301151857572371327417197931371174545267004810501250010811098058015444050047681910008961954591718744377800221743908020697539679479190472449594851814727333804344552593892873649952912450337918238149867883691927526153534920616906395526031237806229862022689058031073455172556585223224426753595970614479767028624200652369509123746129462221829272982436798696150419427288535573101960474752552124457575438759198419319690224706051240887626413968662952188233808627809461375179533745655054498607596866495910638228840348278803703359098827084646234858199329511331142631741951639834404821298910129914599596444519093936535863718723951094669962867153621467118568616788452377530767583077167789261806092795961600181651522419630771665674653456010054712735420211479825318807964120779280437814691889218365832554285850710345286994537726539151144984766526720468468361911280423607564857554146836771965861082610509128065831208020706234215976071490557423045535630380604124207111006552300411047153070908051611306239714613810591007120650189114433120360139835659189051520230759664711490350169737639931591516356761693678831240355681598050344180036385726457983146092650817181565117775776735635428951985883138385968147825607786291665721880758448600107973962067522986745321640677566766138501195589139351587946698382852493045342876754317912421262291879780252605326465122463253703628736929045996249494493390555107019065173240877550634311217077498060364385567108948694772614999579512730628407451619171447234990163071838920521314323432410109243087355946057464084766800998469270123020242812025217365665638525446596129737242051186586010679780434832543649475526538431153306534454891462612480465799086217268693384523400471942297734255008285373598682452631310786579678667910211399779113732052996827482152181226748376201341256442691365863483989667154743302973421428262356913020498885691819833045861875184183933250167248539567208994157545549328170399279595301836762270566337726442117879631384174507637318650864919752811381578051822811223967927918378023298943610554611726285838952779831011512836599866885701202165739219868016765838256221850253468888682413936680493263089243836569808561978888724883796299057701166812093264890118262528053612427386376231861405660088753761300553701373458488916131294219498918938242083574419803311723487528714327697981111160922713893364577772896578368522620993243635454013469352949416685886139163163923850218355605646210700923968644336162951380293695335956150548623120781595220868463162353292156416462008094751056634920184716945251671028716139801148398997077506134203426477499132293315611787084804275808826398444498978343931026048582728402984036541425801833202702230177283157405148160755143440657606862933947113113875321601402165585371289859548753104743116472533973384593055201358488851123662259293529119604052826953344012328047201849619041282181284325459048848336660789781716818730734385223854288674176471087515204851547209746580821281536687982618498426833098823645031801657130334008659976860173100388927600007430302509327863993082631147469093233264378621036655702658401463365103415845042002808722121622465289118757267496687488236634330543156428333926080160593384657024525710684349046541104229582119650870426616903330746918897339605214610180786241559399831360459158653739335214241884828153739925453263477714817893258039008220283029462581892639733058931053632527910544556868724592764734285399341065724703644723718480937598122646784091023507944370122507506789019541549599376600889285176233390527725032777026188768370722068655353201337046737315220764484551565186937356238062974435583328502071344532869349869050277191544177573369672444134337043168424513342684221346933352081013451967621781343234075248947030975571492053437418675972147821079737937562291624561867269716394823977540570580468559651707601594549818447125355016262814789422131925909758542696252976005641143388325338814136078733871968143552661506024564886191414035838693871931004016081742595028603816187613723966956212444753761449700396550117873801076953933724803093739653359220865533940874305525258591018369115175143623898963775178495069895578531876291672408999355961797097599978533152693954310111866389915414222501642124431326357014197901176773551584247990780668092995714949619393185577308072851683950033826654415605196372821498400695893495473181820747908538923096392540356787426457425807508466524244641087111980885804559187252315403362936619636597169663496642343678488236963388516520252240441904681979073774154292953661438971582582813119254661932364686911298461156330506531108170514142018366728384791933765916751352988022157650791439733861638512846019964616458583480514803171023700055125598219289438175281083300017474912670454138454584869672188039533402197719915425566478544091630334111710408165808536769587206532216163299227075989993114407850300595779269326787027725928292358372244867289031104467371730591414904661154731269449584514271253519133199642738006926898644553646685336376873623886493866332552658056511801113963472077386851576535361773286185045436802787572974222836199097342308030501783381120338239133468241158575137685455499719685307385423097743559060031456031811518056725914255758343543240910482189006836847226907042073431504811475448760497713567188547602273806629684619321005640855277316055992315291865883004385187414729830130967243459555288609207356450621469230101320698808849303755254391520679015046538577108822526281202354377392162020900540309399551812930248407103845245093708349604774516544192213930632906448736864129524268407518758117632753161585556207647113456228792219386902264335278922662240716047291751833939419861023155159271536586808202332708508512138340538085853123813149302622891141948792294485629539604182099889017758918560755243282150083079547827220683440733548762045548962323923713133132872754075387983029566367249759895884281067702597110732194099921566798709983295987882515052083158489301466028169372608917943853685648366430827339771720124302181835401707622226181050765714690731079668283105785831391979977792690676127002902850011941613713887370205589654033586099172693909591126324953027322012085675103300722990554131060374960771616455729567017915907189325675946237601697781951008443178476430268417680337543347210147537523312221462687911211114134447568910724874075597210740037439339087458970803028668490907619069306961014569984847721435158560612540055486727916054831069282927255692272017031593210770502551845590964492832506742285770847955132929216424183740385626149682023488314158052730309588715020960808240784167429358097482038417572261555419449460909160685738768083403577577968915466356365944216024747072334750554439096162420851767712929383247913316291051800602582097570101331484664218096054413424429882916084091972108626625570586496263464105438098647825352650531130404495350218888306600458369498558553433880560457835185779538935716239783579061343137180211901259922258162526450346121218291677701451719277643683232635369936863871346121786825259893196646008869777517947523157206481917510370254624549954419201374822353030725387943925720995678572808620169929115324390238694562458293746660986237452235912083871706515396290762122346482339509651364038981630817453545209024184867816483262073959432915560993022900985748728206293733822448085470558091624032145426488981885935916429415068246142008933660418564735073132202054201951596129598661776981728821452220813358796214547126379516632541385021398820014929145155856950693667141135147417132863148546218512194666018085910775599854662820931152113427526301046556720627975121018821341872619895890459350063694996376933401125468297497536934718819580229965419856284049558175853563634244971762552623947556811408130691830363501600504496744129191235220367199723512804073972961168254483782205051035126047861712576428802126630002186047623196079450580138897393597094023282582912084753997593629308978207218253026687346923471133026534479564434031036076631345414843877455860346414684634429353231605395529422219690169988727067097873488814552589537887647098487013934870488788372997997421769832534309639749595664059217083571366647108822395037980248687676897958435239256563695669910482451309501464231318556398158981708586976286566885116761153899929512234544425357879102368504814255477188922443069285529430298400703998729113733003007539788966454679855942872541297045678752198424241069581931447311221729912220078305752574101474747263736520954176121492091253419076999184135646907694104457502075182717358727954671377031334031502419564413196345872579174771481001599014472922247708758659129966946261535229516920541388778444798881811233546673960566943391608829728869779949832313878508851150935874402156379249466915235379815029123958710939514224452538535312360307854888900630018907139288525171467909779637610665528306036480388491669566903369303199608588811885605211596701523296018017634125150465267108970456576600488074783272870915035868911706495361890788196283783452308005060102370280342022140971214600278659306958047781190883507517521632596347460634765813553879492764221082554479750374398010477664677708518386878114344730695961704773740533722645125227213010464294599683883465070860714835129598912643533344730932157007359399458179222799200800897675649932847417994414435507132179893984811793843593096155452901725216140888235419336299787911230371634982513458155216465044991750053367064468743367373835690289864996712196745171704896149626216921261903184475646264501881247793132880221358317362490875703167638701093683061442367414589206932349090809450372130039581453200699911837147036807352321289163481753149065686930835946542260180541477680164014005857597639434878564324297537530515490574104144852713460132078978378868527476456505026420412573497620720644624450729288339721961763378236076962451217727207936743434124850357521467326021310976649923221439124423744613439742902180803798199220552991530720764100707994452483866828785106539193718638947704964287920568643990895366672857708019136277061108263812466813941607572951266071550217098153167292002541621478174327272954421158042927660303634738183261504455334443694153837790277457511689990280480502538733052532115845616489717926164962136106463406941049099367078768060762796591526373515381863472369905424645372456125298329487115371014701326518133444399391288665556907022160653609525562282006706080743407811848707577243197003033807797515098889844906100509139506801743822858548182672135072770958155732987529048652878019893691051477354873484984348308106872112465575598548314802953862687110757398712215731391458294647159098309948158398402417272998469520295039153064437425674123247982668270349150361323362071775855566966316405310857810130596158802355603750952059291025830389346666150806650071858889920458884669209800745062676335793537228253556089441889788014466164195003210318615142635112085557974370394311152613882698011162700196883445694860186624689267821022819286453509757368667609762495668540600827190679485322362781895745196802665584604235219999423597148397929778378101608553275930543841360227294389694126508125706141962397286445655850825573453616265365670292594611455892187456868664058299576386975540972970891106982230283550211755407594020209623657309979135830067193313415339358806944061378217473985429384749234058907966942005321636361979142321103929849370992554214416111569503945252478831877531652288732104990518102701762577362758423106568283819233942973571927862707478723955045612864601810183989201727108473485121936901766048746570376093484442799602891800264232277464698549698948578438032162156005963540667455220898784747758616405904219153317050750315120007001215629212218575612181543581625911357232494170831962626789700719491997128705467598094491776022664332308726224601683667970626490311640359594743134975436419913322610401228855242762182412288783602701660107506970563476102433603079841984151706032964437331085070714149900135640612922165661733664521018313728386635643826111606832204611303412019970697314566138260405785616133198298901514369506184659482389242137088143495739833898262776841071865401169632415658809584554386387728127000138276955211167249001750022171256610878099754378245972843137421449780563221121274121411866502240709112853298536859833846755880267835432627137491222448100565081072461667402585758089759038743527710835175285819279339170679453318228494525660908209302588428919439480315747533362093634088965882359440421803830808148569578056609535339599331440260034931942603625540819077505113848360879810882258932349480739521050746963604389937556194384558312289270784872281579420929625403595633854672577556371666385116295995383069537361147370551429850043683366798325723814629279814026772879524253160497575721570134258279860174060978891591196902012249434679910222016185558003662368336734253300699059177356921892898451824731474518970326379117413795472275341574430570031322328045726692295987979464383145923836294027426780250210016669153746747025364914268508402499973357849829304047690983147209615343931081257127020146250583896912882607283849869638771931010386041219477990698742191428858798941851983315592825227107636013380786331275901265666081693261895961397236857995452293012346386027332775072732605901081723437353518379326534890266821103306623872111739518908314770791736506288528600990012018076884050699631706002058215055461320908544136719055162137178585805359949158999401798334039782585137487628539549810077725361803541366067621186261661678115010209111509537392572793221650308808236382659604950145898571649525367673464178698094427021641692797207756606937684423571130646273290228742836156850718178878718900740371562015788032699087793378980420631887536589082374659286063928998068579912268459544885198463010016076489727002722805861991118822342236059040623812476091105901475836444960837674789832727301947352928587429133068181307749206343691373887089519428459474619928850699731012957132914381341562380846108675026195538127532448711488520754632620790422804351056474783068848052614958546017338644487495192668591284616112026701119443569187764790426786334004676736339211771989271428190174022124819068904288409506765186412499612748810275178725419845979670755735859433657289855008041024420527062308871582889452958344570554196101714589633276068437761043574635082254712011399824011962694683348777763857211582357578053082593478901632334179797395470654215891124708125698431785558339346652879921643213419414891976724687764708779941657290026295281344280921874321810936638387188689339600637210223263985608769584844528016421625788127553712947930772731441353907286557153520699983350721227585735294851270914675113940652563340695897704596465229766634104021695938609287353304966127053637096098020621495754027377881977257164367007953221846796926953009157247197557185089572990630512314291582292770799097328364550845874108064376377717389266321328817373206666506044031366446171303877795250740157450062482328119818640887885747903235652531660531212734935850927030843404315428105179551458224945103757988581290955457157519507506182279192732176914492835704666202006124065282236979047704667479761069855404540291867581194411562873566665095411517198491805640333608990511146564848471432069013699888222344470415000028224070082903480730159307310583191796669698441450043693816047516131296965706704646301025421275136497996327362022282384058736898510733942028497246816636283928923275391034437579729216107576971460799648501889888226167587149116355219749550569222586251980495700337843158825457587139795029808848902621479324670119312747897578692716055796276208218427614900142494023355414190501610559338211617522913353724251424537021246943595850853909095348111308647034495181686667294136181310167260337132238378670627445296854245007890066802506844344181776697203854202696299772262833991214650713263469760110493490294524120255551415105231783864112691724210488018736361515579526783049279746291865568340968141524538220464529375094326151593294039305656052015243583328279536404839785503679093248283797311066123825055700118510613637262047128318333506829124907991836252022724179483588924612971311881907046441714386855998115883516983957318823579108466992998481184535820859406243124536088590968142730159314880098706113006589763606604673779022350944249062559599658849165647786410045488565585562581387661032106297044291709091644957219862118608929051809469807242229211602884727862290697111583864829879331422800020242129791104433832235340730832664973586363261135779606004722793010399855346597365105849338740748123195374820841500770498979711791144948827686197417481450234472682310106896741287346067868879751715623187869932667026257474097390474554537019223094045753207589321570384198838077801482637134646756538530321509219079231229210119661134876174177893360400130218044633103235566010260734621795858523808270692944623291154816525310662751697577076190382887520422260419786193787520408886209957666822894410144635523221463250457429902778266634174446793728018175364693707311084044329126364855687595001859125195140869182484999892442281820566832244923275915498195509206333108453223787106883838195138310265027723669704757909514629785539470852964571259128468121006120412959257699915241283547324056374246387534874035091119005292992097717349520084795128908904603899059759501786569639845986709763579572487050975338679327340043365314461968439048381656288667049722007292364513865275062577873750370882368615334092000238559383325411798787034123940246766416343453391330186115450542472191414423525720862460561497442397242813420572255263076929082873965015063093526923182931354164614956053613751411850563832376002253907892299061736696459121101772693634004007451664938348143016836853113093283533290022229756491405737978114240844466666532563308545437514680995892187420604033192403489697014838522197979048901493262390645423905218829157441128313301171079393852823216996943500944532124607461578103994209430496962599890919880388614894789400840820257666431491885907435497896285652757866747187728785378069676731907123443749110174344252123721366941465192343059286995421403127183807968396564519255833834807826868964589294403768288348965419897009384934249931286735072948204536377547931265645063184016875792907574868886796912490562657758390160237685088845451781440241162358315098566410595688537990305390827456549990280847053157841198656663588218024153663942093962433483850038273179887750670711662825347939367026706229270676286479287875528953911706639477503129424794657629161397508289959990686703104525204629369062103358323796691250092963144590536087495107473958445940615642285895442589446923684298455742947544828692560299561522283217649013567220603962400451726012790844524175936477001896602806765446665546782669792909789103564016992769386784162610243358549740393595133595141451606587889965992008652507228774297235371082304428129223984248417456341859601418554835365874996272958030349292166315139372947352680652920582505832581236766735495237449102066485994247143223751470167298316457430906887596456733922144732968741638313356523863069223954470955508109477042039485337749018344665557831211517581724100687530021997971754237606221162102135196005200668818674128256262202861071024329013693939318256903233926486256296082855148241479672054410752448913714480126822728459057438747350316478345834148386139801049609829748130593968267991438114048587146020221664842471839458325445849331657606365017319762413305097259694660323942930855097720912945248320422059552776568772795236311350541662074580804141924609108244067698349678986663377638898420159978451037759384585199158386552321618734062684116082532317013648634512147952844570700893662406695022752292681081015760717712139102360432964922330036982625088522326830900926088671557362698003856474453238672254176834888073667070578930462502839631717922035749516089827824764669578922416175158203152336274715400668958012236174689716174171862858582408078216224698678925250144442323160772255567021172960613701743728680987345870310413734778001982841556029554952911140930303158278037127892533229118409573733861622796422035483232333996287406288900110007842358016613440312099691722230483743276266635431485065223654153167495678300982141187816760912976282825162945137251156395002696297022868782180300077602913763360241269720965008624473633309262085960798017034674333409766537282057433012414473143879609419451670650968064065921114056453608958690328600469704637143871859606126374923946328583883019418313139556746892008655200200968002062599295758644359240709765374196679901385006151391970051427658824962047751853186022957680369070322369047457443063003684032861789478308391396233287358359014594376688626146953801882782561499926436684908519043071847670481456502086312106487050440335569986688474734247355594689811792669896926644706151484526378058581522710963190030310224822848326801996210584430672795562529250375443631685444717606400336117020500901486662106864060944415245962185316636126303327800418547665655477062901361088544771295554270967660353742159083881297790391330910020404939497083689345017596822543972297939478062934853214886338560328304453635249039172899958176509651138556064883420911270185956754411660078052284549024691642616518701004734678847831834241929415534242547431905735397657421789271555433450215493294575767179953532947679211463155448580003234546455978826437796852493328535266296168797660206998778774736467290048446010310840072749979053769387366653188113727139326774379542665432705902913817472769077577872042497635090490668229470590814180356782167420336053042507309750139940244832131471277649715489949632326214724274348473064894785244289155833251729090182323089750526910794385686029216788794020889785293325152491185331900638234103713358784996884380089714627779896677948947433568859497135117233039724501011791574196589390451609055567330102218412721799047272632861830695174013395789804724544422651521238427083745797316355239775630961027353258639491036045533139403137298430918533481674542283720569172254509065250921626182316690113942696797141416641305706730483403342008960038408078519743813342200700764586970192167913742548910262815194395943811873244448705027451228311735411058005491924196535568799400222245544426802745268919287339891748096613180901135317567409546806609401218885365488092252233975441262766121732031885994644506530130825924119503234551413983691620056852707071146859596132117386270914116724746837545972593738134770564609417009948301509237337772101363537721642485997695369596968358487981657950410822748117692599805605743102587044279657134720135267645337970185214437919646205593055641285878934962426809006913770361529889030350127485003130826766191569972987490872293398056702918041749212700377923363018628903345415776478856476625876085863087859365497012073948035758027513568708132878707895229679428398743247400345027559248172128130615764822982382601039617049056583191671573807723812429837611129315785843510818344663241149271210739046863350530729648721109453647121873582911743231531747556303502314586162441264104453278729916783526580816843303110766738311645595402689655038845353330941845240965212996839452529751553548570221345970074105467709556301162298505100753449288666087490654796638595940875004113484731218746442983666791380005423679386147735431524114406923606434783630025718375968555974090545278758989777915132006413938739813829770607023837451732857190175428750516918360228320501899791247300786115577648808310859004247912579385470025603690517050973412247648895739030515389659831050559564259537788823239547104624413940028664529623044281491269519279874135700007226593055425027376328724537261962750337794673525604073067223895505839276322664274349945850191388998611871060594542690946927164721678899103053663498886211139931587872238789404377135428102638535359927841953095965117878259505381059179088777548791359588812683971206708278733870382991829537184434436886582179897694735160889535836578639213990978583875534819878729144205767365804086817555008631177578659114374658825406923873004018534609820606300568325679441918406572751380718748634031222517374727336287686155764674463640393438466490097572677652822908857198703248076751213713209065742990624132940485049275249773987746695267014953687049818837195022999113408490130291065300772196426504006954186582707122948076991326124530724218117366642547224753662673763306498874582690950549509959161563573819147250706639207604074298750075816586343981450202895386584541825062478597393527283670414475690744382962077430546210869169753285539521282808114898200244550293013625371266237957802297550748046968621971997034489873733863398133132587511975990425318858379896684127517201004261296297753113123265035248546921328485185943394964478431999023713476622238458742145949463249511397210932122630183534556070722113862633492627266513599214531753882636872092023907258421628544520476299693264341155042893714529320558379220371499180393358297037366313579919418643694333631564971472896898742671480275024196293835847875714529403678411483503104315694569173657693293407159959733819611637877068857155178152121653018746889279318146967233371858984435519916501621486813382252125889384617801942668861291456516086691953657927820628397516032189009179648567136456828341219381218728080591463474730508681965683964239033994094899914695848748659386698654505103284605076657185691517954907321900591242668850395341748921590633860879768194257736031072033719967561922711889414921136586173335805535343982618543975968138170824295408141310094235043853780193797817234633526598839390441247695568792806643152666977693961763692749803906489732605162370602740390388492084819381668591343148783821492235145720742131651786375103022865787744360509617931723962899053124924996286610578522293210444513532685496326873807776443440166183994692935650296086450169174185106565099400482568610281030286412815676461110245228242806517288275676034535860908332594995693616700721959229218483355919525621921685694865946804576175410737299876573060618835482405087582121293991668569147640302601617937465785932341878846182721858350179130938272657092819142236656065280319414513792555995210864631582714466598855120727849905185686250002298424470793759898113600923051501473849208623004084559041066984039118107346468636400224292234523807250574813707901385274585567963100850746641786772978933579641697564099751204008378601604934370715367175733994148225354765409197189727165115372480294430982803879265477155992143043220210785388620224021431857669671257130070211511787224437477010267190374194959998943053506928422043435113597638629135315434620404007036458944046890318426315430783292797064674091325354649087010826900433336097331781723257029626261084922031939691047396707340864554522936717180516139114391518902232525239497278670453933425400436603840217265299538125644976397146254708006440888176929264739838212236423073599448497662208540497011021465388272679058323990298698181155696875413429074217095257962070273710450215879487735037099714733375774243940896239162629435892093292322455640006591479863342338778054735377632764453828218333166716295454329545975468086161808312909028540160360625791622973370695322123680862083548465338535789198510597012508362439448195948906203915205913592916121010374411702217953250328882468070538255337380064195266317436961208778547416681375156831944875038048582177451292134404980448999132382538142740027126469016600138159488961096371047762265221736252122864281438353300577874717430912334249689857018838253114338197587398911123830505857241656438018316821779928365471131067950175935801206409071729582046058124494833035940794267119695840921630879334764493016780896409023358667810288011296853589785145474707911559910309805179676909403633638619963234471266322571450475763680711187045558424881263776294896598247562006496200033461986859017344429613167206939429753479021186960283994596424946689941849927798937127599689787404631230138157963928903947539996505800841318177509032495857949297501234068455138993288089988579096244360154964560239440748674608975253874255511054149927362949348101415108959504744948843549062260182104960606093308495263031758510271005051253840118979060812243045728429796355543571296131032143423657040468200484082136635022666066276155390386463273765509444284278891437531548520032717609196369537846251581079423118823693432853711217171794222402839837649611874974848951703921616093366652242601460630662606709264466043009615696790176511037171161255204136226697346118053802375523127797537852961174395994317529546436162928955452195690594360568916938445657688611553181866593951616500938011977708147016863521036697872072533455316567424411678001777116845486510623506086273551143655709450742115528816199875585895176803511495650063355069446707376041083896599183188434790604020831432581897878089940018293430370439985553909630531814343700730558638662187368722179011343262958385032055612975159820077319593786282935144778028389327293857783029449275915567304582022569262850104901666813114912004847566458502050655347061421006396439933345203063814875722390769655107333668466810594608526609500034352462683923369916660747368069326916919779184648982393816512870857966700649060355719920519988369973209350615174666829178263969293639285955390294893794914277329047893244777636941893880256857509809202080728323947108261107780276723305603427784248831306299147226244351005330309101419591433220173837433951899186064047421844371344241506966468947711151830491066339878515824112902337230863685140302738775140135137894354154018895434314319961291133885932809307801120712568493706480928492284187574167648464790489525107936052360285717019526120583675257771477785016800439725721223921073976505467730036348556906748297183644098411885412647166827351421469163161619204467633654842680060543494194245343879810374425859389680009109258689501673075603681235979404551564132472734861317536281089488888222631857261320122226813847635393257809134585156113182224458937862397832660001949646146444305250529855365748539716118539847835103748394609597248135283772087657180114249441219596530509013374257647690521495800250153768717426482446110695503326454696823335500019353943277124839978914769770322478264759545846323311756260143285844354691231734543964929093496676328230879623922096082051589619382762472681214113910819294175691471941313478424711022633597655010653855822959342048833141794823485104133346828489033826458230802839261254572347304916076674591270196087034663084750570467286457449708947349471433855216961762221698087275560280125311499885956982108162338080867174187432914403691575245378092128601458929983507572910004049443890617905966974193072121299424709813598333923137372915907381371033298443350684133260396791346669622693820691219753326819329110917738184792413668275987529593147870672567471944938277938502947619519975983706442145473657115054539593558085124250780053114586515086415263157957085644897529488544667983378695365723691273539188601574679078023545680442571009043398280077725841381727341428091782350895737906551364030736873436643172175595862815817664421252134332800501803484139931611403506747233556788078143344417715997753541055886589477071137617231643002736685150458315972035958122322213985388118554116789172351125259259401846323775944042128632960243230918597549880338897030137765647551690055802954786237900453216801398321250927673855507553735656122962720603648321594490002210463737692167630574460456668374106502364404477633121372689119034325414902083150907878693537850638582805280681466055521828908874857123184826077162917964352356585081951358595082802758178110420789067138858179637233632039587205282450133213975483421130683646594345392094682225236081471567288893974141859946343920091602834260155153825172622008195869286663250005177453118044624150152738512339805920691080886388304588908429712740349050846913230206590819362674884718867591278131676137442187772349790005947135193012869053502645517174044746573709131341456007190696023325950976055321567195135433613880953924720581670803830520941951117444601316312250893506070114280566938392843284647576358386794280601469610049342628410420089524802879109384961723892945680079675829983363647437761949552417979603081848287091046702001566156231772665671991683296580840914321412910975830109588217387055549296937851116090296175586101401952887779799202423262238823588927060023364097567380115776246746398193137702256031084971058500582890984067318645875588317557228854651079846620164754242107563466548129803409497318735676592772313724437692079734677867886536409897004555363304194034904242439193149429688814815268849271532610691847744935624862323934896396420709137297424275157134662011871032265972924837287310383125581905132540543808478101915289904220691311909094345555430563368065921493622082595303864837604492750453347236806570189317496304030445968514539789843606600609065538771486474591009782199086324284968889289170471878571434246542422843045512461682439427147912892816705828717804828371419189583089342339840292489960675623181152569774858824411419809413547266600258124765746225973860425460433194019546515438432800791429030296077703770686867742808588716702236920611333885975224542019008778922010669854822791658350420379388695093710560266935343100313171020906980182692031355319673298974201754541247098607954416006828750402406442774581696744396849599828626711486508361508537739363834570112923379522347677316884984267006766289242497765620943873913914144906592353677429108300676453352176023989320082469128132679273690099963712022080737454786040897386919385368688493496481450557143198172934475130497833100964656789067953992503194300047494470064494149469505920687473012055065717462639927294032964190934679786249888323599577504271682360696479920670897010098021287758605232455600232674954957305284028130989765483898662005281106287244012004767065323239232396672197675602173318729606022488069102979532533167247916990131534446986249467471202495544623592396081055922091598525673726059856060876541076234604904169927278358344314308623626456079768836085678912936650040974677202856849189253132465099987431725546414061680580220540761548048269926448600818657515624480691056055967131799535327096683197915507669489114490512137249213401977352813428432169288567535271111672465244384237981898111235081040551333021263884263119133559227074354366479655130425064831959230725720584791985112802397123743182429616533524126213902073970366791174370858894349195543785289688508262437477469572427382421121341995180503658569286159190045044684959626998730310151248098249865260083618546112942874166308179046953095382937341790612290380584054077508382278414068468124875241013879888210914109625735548151334866286362008240273384509205922866669034127617471230306782203814645116655377162942610044661879610901889621175001409070384769544352364175529287791439079218122994702682047888124235954887559251492925768698958754243083272418654470914714912151628925548922694070555613655119027724974774984119930159204030021949409002060160377902115104631353687738592683785450535566046201648984767832713964521901679249804535758810974053455501577581867041395428647904223802671683368225012409580618834526266720001615073388618890783922903027213555228907167430325123988266957214929958241978960668662426979030791109861015425254960745281530106119251343622625585938609998223391267557633922407207964668579127819388740298278066123151253195541144120037603217251272405690878988350296011595035514030694863246480977191806994625115555328055510000049842066727288288896249307752490183918222493792710168140217056848993589818603581296355532959709849187041885604394948665863283891598812286719316720472547432675539531792076407911461362943580723510747294682435788323266563558868219343543382732120141643561517106697199926075286813020477912131901957088222036758930019563815959181682752585351201670881667506563914720253234571964146637946703350274305574645083754210445496427888531401291888985571827985603029847709296865387089030303303242439227357588455205624610559942209781290547379292639153299021197016724236936581108553268033402044814805771124371668186240711171142537774615745244514134549370705219219818594084308427509354316736060270735323514263127996208628383070831329803365829356277445926258808532321035414125728556989009877889815574183693512471907946969284480773085159346711581303980048169822211741932194530787485570523680891496809690230726346411996548628913416906883937468114612646874565073387284875997237248395175369648854222647262079226360757155754123953959285020414737160091809416519391048947091121107945815508811581939655763663466388936336853879174302127488485063466202321421106987892398691859971400096221028415698858563542687937292822097346629480624775359267149245084645560810434620433142138767378990103171957663490541663844663462771852100886243180586741199394114308689067184450618557128891285494507938244051005715692817875587587317791942106819294798869648325103555513492036717475040282100596589203428281372832821102540731148608912803397865181841397646841072329744993692558186578496874923809431702567928630855420369984277438770956299891607936351886561081267979752332579366107259130772008290659718184822095989864353363367699295622193630106089392362677366349369386762059091849937061467297211444530958331581191645568033135869248717251270592208588859499109070125918884771266900850521449619356875319774355972877197158860210595943059815648316049341964520639480592961395651873574583297195538536779838128269343111690134093210872180489398290538358646430868847586476766627052852432155171397076599418166494865615360705204357980068668175947951029379778024140503164839784940422330932993596510862875628073205560499249750632314729072710222940388044483321367818749537765606356618727543724188509930815144930005891539018209999297229065523972370134279761203620645766804134090191182133551483763376012282243951077165632494325774589360450551438303767343956716736989928362522798182212680227917408561514075901305353436295496185019119062861522077930616220775300566025348910119541217202299880539888947220511808223485391527618347034149625122144499218498392952677470488740002619313314830619298438604047901321631876582875201106140609228705425475155535404033044744089845537281733666084461406160077706269388611458087119846381725491926526667719054963316410467050261217409243142609235828701358516930156215933044877932066414955541118308437127797452117806420640459537646153229604541926876192055688090560188311972619765556492545194442517342770715851286906077752750913215467455070813215398404587662821765119493674961572501263390937198845869719307402346670171613796928385031200098767615006672132783934464713455841897007227598349643976386090069790507005506904324490959727271547442747328402136914306407291953320455759482574040028400455561367236922569029970462228677800504934410936379410594703027142696172911213401596983586699266621244962376950147580862601039650275486782004394268450985044312810123942687345839860863005349515464268969348034892285865640070396371989530805533761765262631932375726830710323673091455332808171205516105348427177441745023659550338890426186235959954685681261371601850201300878642959160969967268840515830526887465256621508046832060072341254723850142731744141029019790464093743613303157788465870001643116212956220569308771941827518621971987628086477721177380600041880927675085860831740826192504481696830008478475645790253524308240186262924403591980714624784251094369082630685700825015348078427273341589571970207184488678232735119740614195289656354101610618884205672701187920411403125718898977357503127235978196592281546903619238371681265746040819929164306055016702931049926993124319953543176045569356706234217871638784318023306113108895722208991200974546820749696564482856556099030473497590778957878905955612698035270440595022087497638855893483290802036754925293204266115202642591480982376760950900615082430281484264740814946440964823524276869106117855034684222301310266004794776106668141322918245926213814409495595853339748640175030776161010443640435253209176538341324168147863391673085296843150557620244981463220551410410274806583200761873473247574716123394241259727751029521296479398020054153985339952816461610093244679344050460824999499930072037825081851084501800456338869242642132158635699760778035089677028652614976394418324167590974484427070882533156381570051351606221244649773125661645623881231720897362949863948779183207932375726775819621510106222654567535693377202649803500832101149676654802051810676025730801022143344533361074552801380221388279093956006968739047745973853127089938989617294650355236417720813722784650250204094169069750967110855935265971000266329252814129742780918361853866491176686715713121050698885238315192036215730513004316313760386309315210858664429374507275837735700671077657352861493243707722900513655624738345233508042346570183860260808953071355475042378463648375127919631114086842365848925791899612399437817577132471457265257745337297839879243823088873179850613442582036964307603278802217310889203057466585944608250746365269203378358123391819898122572563978770459456616415041593067464637651202038750014858594168819535670325571623514832771222804657224008155174114578559091999246967596131518631388352195601292140197157355640473294644612156632585883031754401390257907003103529424688991080689324481039633924219565705810560051321190003454510884875098588387938622832820254886451465540701746647184607987582800603517683187941547911136346353842632742364644370090764125961157794327482852842896026761300201383012762878368160420794317096442403998554817380432747389318601807562839315797041578007465460934241754855476226036850045097884171709808753806379367857962638447692774687935982154958092784644376307483393712621519538100603402436738481322813104604651252702754760505349937572821234542620163013366719568039324554124651690088673113754812213576584937890082534944007179686441644053824490041304033155773603424979193502920681295951775583209048723821042132208846180119443421330421018243098244342481743451800645625127664351589217807511028306034580731909416486868844174727721765723738365886243224009694694453568833710276887686259308657604352938558131166217965516355802013725920553565558983578671426347285130984373473589872768094768711958191517590583385210660656942570902881754245700399734141693417600357197176237537835297312003745751972598963319919012688439461519245028225708325459240670991515574087595535487263152060106270047058302300469155960416599244344773600612023606005272986369312271057026961188526999942257518111337751804531122156339542227317927225418744446535231699589350618836485309899921307262333490815694256840140333469815947196242033801493762491826607253605993690406530110426908655066863478834727382199198749779839930886610622299045412866459588514216645876208082280138240453797821853094545623504352023377775424036793601467806782435247708906755463315020513425739736218630191247053364188590741334352807283317543011626480687184277369879095592240733586263061382150048373696547683569859910935377569891114520287643029982360282187433795049035398054209324961954673730139940434036145895925698967164913801177512753865515664256171500769278992840617602433267721615572425625565661059511344232576600038817716816662970740122573253008838029155608712377941544169099378065417311316557631970801725694022775674386925839786560648603618926050866126711674106395427999384841458818984923350725766824542770240851351589023080844207464984826601540220337636133587985823909758747312264734882078728844823427055076168567003910450069798500576689929483215643786020460630382754768213778762639513439226094755895754024988131723549238173158729641851695614005789321636875905831898377177047502196055217228009661004367137084802618732312869926718493999611634747632092819265755697513999973733416944972705549163008772565209118986584504135421985592281473254520931098558192453069968079404327171504077068910330529594621401733387481310518285498563401083994877857685511490329005312230643398595503686212639339973776260670389426702381418771786877726099533662225601399295861599618014588463460313447008860221035507805471672356074796263541592030925262269338336939665062911745933045155507802557773566722681885070823264686999301461799655521228584013872127320717023928811600447333478847318757368105677538455402178682954422740636734098175859192905980671100842920068282061250089538118914603857314382419209281642647349706160450322814370398781985601417085776963784120236224175655938915807056961972780234370327626759088662434757471739307146374667080482438533342360026233325611158669027259437463087442332265700609116294215280921792519073058231750813796965995281598741880565561155703286168568756227124998443053580007250954324351683032706022746990851176775229689976160038050292920739270828991627101370088473119261199267301158580990164561617317666568667036624844537091982436565539808401122542142952398164917632258786170130364697511857730339054001728881096373226889476528974529482348715396804309463434138909956234428669064868166530343524412239820450038083751399623477161046012533418384525280719572250894100634637627213671981550064875811681610035160037030595894529231329256234426612731986725827508512222356551400042030656060380629213326476732857777877419896369255999193835654604052055089073829606763955519840657024913788273867860454541929910909171103379524416623155377901257598577027538356766625215890414800162492667548053057284852667271243192820979914363557118853414860801728582014547962991092180195188809489044537183609592135555592179388555057607212313303460539737865155296461629332335422441935907709803651569361663058081364512285654109790487404409189852975464867994860700831111010171890156461573962798831548824999915111350823949911946293652563519467577796505942796695783759071572422866427399969701403669407213247033327095470620259261186031737194040303691202117404473132452286912298305912966077792845561461668731286780226773960464419065035916569280678168903715782536324074012898470542846586743328136174629728045071701824696576243158323941253743681346290418222189844655174456793417271790859926601668900976210475596511151859205908657055667428115783343390552153555626926003004645866451366704526170118843925934833880210262307811263555665503045358507587107357031953548334340330612695866524285845384561500000599940390179122432665396533900208236338005764852735059607795396361139952969961713971251495470845234337585480483401299857672441982862503608763473297557749594099858395363139686050743160937091154560940564932480153524846369666632402110566699635670248984372329613159144741383700444566641236895817214257977410440669574212595486569431628019322792773750362170733839663753304853993535825380431467462983097034205676469007036367062273199003493376086201016423683948456536590581003446129434310664476275030885318973771955547238664448615928634308176982944324363478962018462603242397548038133969672470474481561256449709305905314782685505784170821491217670309573564731594733943780034781624734356217118540527854902546186638477943913820344012210862089238794973462028302781830507474230735246062761263996109430914103277586206773225444276649776843711713470870114445382410132202134305842333416505731289925212706123777025516775990199511047666902962093137697806159702897654910510371593714810877994773441810484124749815274984556211674360169967518928435870274467092053973494746562182177648809192744513963305765076325760490750175572344465847253283285831526634808485499612283056443629191379882277051537035382962821748956045076744193698233776337522942986099463692605984594769131410675772380931341928715637309403054140428248638955328216337457476214274642432467580287036976812350805908079771799215988485204471899564973981432143399579282690827439491772659198718643966297826987004119203125539633656066617731343655119547580290740347356243325505794883251385562393035880825794463453997924628481676019979825825010139742407830676672210299953318118612603057463330792240808956323729381225555720845444273241513277728407358085358402069283908975301815735330637501423241082411174285480270034884816398125348453748252276567941945274624271195028478469797477871656147136703161801107532537569031436023867770366623777580164641125972313986407330512614235877396146990105562164251059299251644649925048941033784818656372552305742104956441461750663115613264680416903325778109643602691560839880168614546539354136981149694205589525116731432232691537439446259538134333407638805887430299506903700921846861910036242359551187402974794098675983861960699466384265396241671367606488703577564840625027489593342342422332243163004536607272419259321145454120806348275382359514777974788029358423414816195711691703209967601545813927466917852151131242118207288810137325869805994635827692256482609000071402713118242000835269618782419880247471695716291693812668673249164137641503025883332181383271021388091014926796116840037650504095975967408566826578465272422488628181391053583930827762722750814123874103373957019684105841197968864923204445517961270590250557168076718446162217462817047728193479007054791683303270578805945726514429903116130914443001372251960722221141640544053342075269167885033651461002365568178002142217873677712135528932263305453993126422232323818152687334877703044129845682965461234120591813659836965762292212348291988277725833748424824541300027360714754480299233695226159653227862567663448794542150978748898055850605559436705960638001198256824815523181843878702942700439866888177899267183970851542056260725496532985151064426348371246506842518278940562771489884415551163084253536755621746720306905922604235138522587886666870730350219753643693514897644792590929832943064972676138632245681615399526972663632748073240393514709818807489782273234733753864077712234172045595067899385572254864184378359131950482372262358915382867840462929382506721423139802530699009946259460678545345718496623048648639235295612005556500476348169797079455782352875065225020252884129439613105114179893099351976790418608210894209371124008433122776600194071550477692360752086296541800569404900937209057621316200934110193294289240754816454641308825173555261908162465842942660073247906600583346737008831978687534597453890146791316531331453662782995375692036034710981466952731068398540569177949281750137018989143619660850199953392107313507057467601468743291139532254061892055664264631615754643229670671265478870471114041954258205493701165976019355979165431780979608294942125197839197674717377717151401818889954954350671219540648202003591006058721504084357593850786440127503880249528609617487069470987047372010312935941606152630687339614589774126257128798989881927936715193668682192457549673737662889803406451248336213252864611559126736407393283841121089294897257510286926470580113001109174288726146113327356298413876547588218599324427792050951962874602698615446429075784519798805214015055306182689551111240898356587717443307872511467048791785957456762999389532848359652753869759863640318222250754964728653459471643854794476510277018563676475340097924630068141754990581240318331871251419399212950880364198873102433394650291546301132732145041304667284766512294520368502437590685017907615301639880261070126057934100582277419419826016290474684628900210187368675792512418746567726183561811255973293882913921235355136221948374863132486387167680440601387559225317213633052088458605744824353890799629846295245855262975915493826414060816576174449488587144794593485795760360305393273648666348685519227169373662179425004568580841799228579633039314628663961180032532614652155686818904305742851216395661707205490644009185254486635061870280947690958367058249244761932345346369106127256429768351207632461295072231644616145939348730596468702828520511165187512210010323745846996543717009418145461554743560702522042825770948869162728176109536120248770193371389634716181519291354777950490187528041447093640801259182563398948505897320011374714353441732920664464351301955543033772562484643948203582717138976801995307091498742153650621663443731774174849166292397895012160273201409737674113059301375226628011535362188515149254297205997809346875193573147509327454876789482958238088793520963603626696913208527162111296663799024513084454694122201192504755611260377679076924866317857037846755554471432107076945296526591079665149913873301830984706925418857517876487493213968401517030668630534908564738961318531799048978950427120132706075615009018520292179457460173607688042090123872761019645878222346266752090574028365606264161804085320575699652650788922797012793246570658034296010002712135270096134623007755860095135496853067294474796608253683117679700663650962745638978767647086607921451543531307057061054474716585709766009986010746576800037736618639811075502956028129578835772894065180657866138252588115799094148153056784713401426214487166222015231488297535275379258296882102871862612392632418334786957009134324115268924854426515678404749202852109512508598090654668872624412627251358052458552021725330573536348777463155539837089433908886756835643245090766092736988821424511889211020075391015601607360959316557552080111268641783932516649969084447278846120874140561602271198398544394099793418186487527731317935022040190035212981300419037114846428901555014090462085610944056578972049205922208758515607515709824478521117688943149185813967619151135591752568903596223134483936463980741980349175830100342029598924190741426886398506239814122556094594409091901013527694700329817999817644498654629291675006134444706952710680801574634419780891819230357562959756798816524365646145396325875084406540125033484157367621298587863516944868758844149836448868070354361361559803554557821475462106073050934520496415607740844924292187484846013141965359184527853804577467177467373278521220024620493850550162147263877942076568704193054789081462112749718727784665196857837968767792780419897060953029755522733093835853757368976796968100123385051426707886839314738671674305636457800221281897087400300920934106529715771602462705921089916605481156830145740946110051887842534780044210864788960546159241142791947206990838077253801526971340829463605638508209222201737688964783463552068433971866949125158578457249573082371856373069139601395861734726910924856111318844022875276729816709270894753616763466863690119846725956088165184505888913095566942795157543678594375335018374984801813718997874016334156872561603945221737918377330553772488647158313088490046905224991617836094540096397560904195834652807182691362387664119415851827214441419356893069728007717379598207701809307720367569410374901062233707958142131061649662829437595456473365964995920780622457415832203522465498582126378123834966505803119177266996001625559074847362206819629698121642831771155218641128013102534793269450654384493060741598378002511291662941058558365905862836990305373446149855520424003349954956640393565591266486314919898876165101612986007593237774285304779115097078168830900948988232429964389878027855059681119403972493840300244528666317526482347924969679903279329196579233113496975551235101639628293367987636659155520686181892221723200032455296487181545499655843195898813364635724105568316563281104551006830124478277035931116975070785625130592797082910879954020073306399544503308335930197129577000910029577212635655379414128461588938174388920273011212957881997743356684996462586098319274627851785374445447400024252321734862836870584180129294805894661870880541488653956771925115660547082128172709085292156157009439319630773279377420315775551948239467870050645633429099482865935979004484117071932268344737399286591390119761919759629121545136124956401133901233790214780314651967321304613237317601686629215738831712829977630788310613435324124405929746202393859961612785097890173127972684239084988139620854280796021633504436472811249290375972353104766487239951254231247843668942036460182025434045536053016463034550060959866370239356065546015177448834729184294409433459955308596905329580213674641944945612320305038905329183907502296085819606406603654864903499838560412097290590029296274751277422364968140326398063660622967214569375370477140255091772687804564919713102683444955852293456521809237177997998311606493828641509506945627209980309201175679620962318862538066396646607346043925269089667362169711473786682832588073993004348953233166832739959563312306200320642784457696999251615446326937904986027949723477668471758445574057634662571692750188507194293242665780238190499360208927683033970354303625262970577740908278929513064430689622556750887523284929229584615982393554853447026847494204265209451124432662276068701574083725018508562267730869741375373488017362849956300409588287689994827349720409716897487905395760013783818409106765382517731546094453337717078330699584963597853868622534010767237725060081842902861444343997540050066750377080866929588092207515065980651801562186012285813083679847397611711999357993000987552584782977655337895670426100436166134924643347973785435145622146207922151633514077089467804232371765533068317482145781853668626217026742032492042272909009860973405179037942915707110080607771146241048927884046344496420848172784252089998173071965835220795922956164289002942184078487448953752411129552430525195791005685706611307939910873173340271857433880045069836902778543868983399352171835259160984895301799917881513352570270496710570568007452957536192085560721332863969625196529841900718317252314805102226172153845707305811387651735050973355529584840246564503610320117468180709102142752342651510946106457502155881179858441384537791970497786566001394158021383656274124635660487771180203462813686408651569832614170571688723747895636991624027496588072590680243049227852435675854132730118259495914477169273244655409240891120314758719306906613677798092843642073411675094038924337983210656344451813512200145890156440323279562974349621856924366431024079640887918274719122202234086285769221226866358734282825299227048895307192803594124051336269059182905579814378317521852172024554871632230788742213260889254114001009835670606334019459241235619346988581780227334958968918332707554905550748337970543883196202520230264466932112544935464336650679479940653422707845776424123867638255002892385121374152052251461161837305452538735983178845563970773523051075942462133398954631201394313839505446079667917353433608271945629821307928348687639632067503992669608234390402764390865989868519513645015030538254893819942710373214186090297514358832903006223666031758037624333794380809696473924776013424852669505268988599282601566003114856200010973896992353292533585200638791115509579226391795719760242329167090337554108319849385183417463500250849013512018970233676089927505255813298080272117192686596880657841058359351324175651463646383735931141092083061591371605279848509988502817111651722260163720544850715984128089583123392339901756265120356805647300362344787919021194221914120293065660744892915237924813013631213772043178158588275653624830402877280201044334061844616699373417821202714971887034493484868365322319846515094143778650856063217189016820386675616593114954582833008715224856298760952379080181152906708787682799284106610283758299808472715382351886073898208417775937790598456407305076693183967673395679550062891953140278322542049337252272619895368238081732068362565705625446243360479258301668750107538738508131662937851676122653816106365207269508671006007301448814474127324401735761658038312787190031085827247048564436289597217350505036584231751904737654446131870381093648921849958862327927053843895605347014314712660893536556313132614480528346536314544965262884681855803356364753105952606454222472836303852381901517801773162751527121646954745609320552187398502875309982394259418018450862312460247501290980837600719308472624206782153558037796734828297279857413889525686651790460435414170123525909813822513804246186016767048859714165773852065485152415712864216253690049741641519967748334611760257906772219507717039153442070995473898719986121896691805292850266337705200420262803749026801805623285919523844284501498480473149655737243925003708272291613563263691858169664341333852923766167044669656399748313419846187529807657722373997475636029372080507714998209505738631387627755125634483136677032472964872748771583661544533678537143025426387353156114590869146388672378154566210586913105926202365744011678919617726917197486889779058561867934405619232435818283841725834440841684905907276036600415313692064159591855001826303099673442762756422798094227856197798279129305498772110250328427472470802800500468531109703430836391381289973406278044395992574601443013738381120283908623981233928285845434859370954864185413330758933350347644299812722140528503991853962420976685256052095030822746629329652978447668446391437222040887413186637632403583102073419875926952343083382286345054040172587319457520438568394116610754758173402597401046470041783920210312856833951868708212354995447639723484376959071218646201937115264955702340468237355741423105280732788335219867346020918908910237219381775425714428663957066751287361615678060603743187020020895730811393337772202244153951013572009403002360108626824397061760071502547956871120152027879273510658472152137647020321767002664600563682804778056741594387609318411958486817986684323666879117707399761277520221109756326346078551974002818187794405169698812060751174303661963290328043721300762559750594815909158944044770774626173379584525656572601442986674210394168664346922343536848755195263392039272892206407203069803365993515965764863001714073144800320070893334379840865317242277009036211903113680737439926551154151812484850066791009832976441753034586314027893831817718728346587697773416503163370628727901806084310760966826472559875317572180407989868206524445465416068216021023230589865474392183966014290371089528546924933563133852232803532906796482257347383184546667200173794774955275034347477603155928030964572595183708313627593344741661302811970856735406426929693063117834775186923771804987461470418722125573575792057429835386722794396805875306448742443043640900400434218926598109811625941433587549279737923197224494934251225679299008059180928480939129178395455120081108332679043894421961082267673737625882709322559323213271297808814606244478941276812862604966594802340586764664543983237270264917996592897653146136656568185283852047650735090940725960770073581185659520768346167015311878334970390176848865582208094153504104072633346141468252301942406027151259520497206277446058337910615900264155029389828587536835321600840290591785266062286206902682267905434775259958288516505001225865797807725022188324548531203811424183810806494677591935575175744607913652093505131022141680830183070086583499708676576609892516288889782560207928043251199080360753858244218380755781948959302193945329356059517404365566310610132202757316074969437324249498271514167311903939519243262208203641298471066410224403989053530828869094003973038114564883288514922997171054916198910517508001416314613412900463885156078010286192054012969005214486519262206561873638134309168434023668741025148883131010491790811788140947670036348866164058985589440586082372059707489655750028456575742005397305718035826631137188111392429739063249220942332561399975860343123154237637304002694288158075264183182039574913252212728764861900963615533494615304236716727521655624476548219157076607609272275509026946904182414347197517457159082990882689624874826921884161152140908198007008305884668488711483635792033262096725642497941375519830291176467954710033773735041215490182277377490180644465285503893640814643190988236653954706218786429052765133148886123795161633624148623467770698359284643239774009380806650794061333190604585075944425463491767186986151009498284055236976692891815353943615994727129349584915350198522945447546518989400417422633519598714576121847021873198345956634825208737689557557409931331981821939960532823548821254273140006503005803250247379563316732670503757233574155937258714545419692352578519295446634359798544638181074700721273756331781503116946559125542812140918590014800240052684518022859825321990699809129717759768512941134520186535061686945336670567094412351704129024714088477987772764604149624886184804745223485022708147540737046602090084302532946783920089385990117901895550545648754462143829449849785753787965225644383293901296398218413617848786006263136424487601066859541684537445655169173838300175897815287075270338072253389036317662365246645365949494527790261292200727389158471726534993453694910075577632609855078536783970683253542377452499028949180648609107967945641142754947499669401592403266830364736062965020043641434199606915281049761688279870082182352997382654999958908519420396569958425286864695940603446471673689164270360522071031733100753173976683509730806873004482901767190938380935779250491930455093457069516010614423154466903709920466466269803450079854596122561347023517105307986443858241323902139661544317456469041169528484265007877152923834634864513095083923438472112931930644778567726650538875453311834587061168843173731466166391050922558100751554751234772360074829116643807931498520408349292923325454556988768199788097053948997794236699595112723256751105107661214894974768822594182832490863813037183202163432314535543710631852908452057947965112635870542492116002422614820356073760328698694043338872026238469763386874203159244800701248408933756532009828704719407396478853630114270079938121574446831349322328548035303006996483129629671060005072274056008419299280502264052183870145623483014751710697419161516851269310865854383667124128603094112061188596015884498148574963066113120058162171788589874696457471860591393169631850849403759878590185488414734541941190564882378010085197872785391406208972311585165661442234213230023171473127649419301877120218262303763005199672039288030364354242198549002012034396770078909196518689764066811370483919478131458794456926968868567269677196348858026942272656697059191094901399113212985521149087967335599002859939864436981083663464580144469895019158091538828597442583750435776744100391115118338692449343580926555918714703187429407929420682902159659984909768631262723723728785387691496704788755548893118039580544953668822547480287775600566485460168378836295166913960757003996353354559281854902595334420543321352628817652467485212207176718920403392199909275921560838795587804913072654273204015065675986602136366444148757123878523211302890128772611885100754696884226974532390784244853904305787139383709830988322907559707304807487798316111491398927684242926812541435175748820943051129488099494448190719503593344879087321055859379208533091634077509820926462012719626041912894794127899245214224279285769759331274001020805070646054673308346192940664350899754334254968301194832532724273765574276633008171665166196226038982233709877418477290831633298195029326949035055196552540530386706514916152815770411559412265542096084740013652083538044868974976197170379217012999194153889141084168915792824660011790487117391934035317597137679209712389921032001915711664600531116052413303814611563114194987272376803972426255324218782535353080550137375994141615912817291180316402696089867505050899805547529664946897845139391728307100748809781740247763111955995856755747937404237234992948035568168842507043184434015707204679463537467665682930250651903591779010391639895143186803904646214822429851859596482763684528612478359374215485761341666535960946648562807286641403106606127447956080737844789828505354439647000278729444023344478256361068571445941669493283446344430594615985059502428545668103927570828311880749605776400151883491407310449530845440175742297988660663759419793337569791465892692856255531716176451837100600694144318167725740412967985328880510454093887622421084974949040374044416764748312610143891021387816951500428240097854537915035485308951700462542515325768749938600718764234321459373618130505911235137904436819093735310350693809441758160518641525644730692126393808894474297044570898857761743633152114666877401328632661145315792909073401632374080552027253955475614138246188163060439223051339984165094813119569862073930136615114984273336082763781930263069136064387768407105161573566396723050686765392309794209665214620366328581040880027530267556169496222272293502261471270402652812448987499947163029531228888906394770619751284288917173531666021896708635212076093667825147118199895455346557109224695500160871653695494680194642331042996936705777691654114262293130016010344591011566769903061293969904260530939664904385717928608002724618787976731119430079879012217363818276189854026865335980984826754591234817772581227268622719032648234310402772496865585820978190604802423850584629231152772661717153983603184104525575250984786792195036557182145839504303288990904061753835303400346853178636365816121495970043279462642718734081982298913845249507843778375748407817429891202300862163864240890887644098762416415798920950656338352639551824702754764561619439671588798936318926750576928597969777560919575113271646093220755657093230028421647804032163525681886134210640012991664571197409357933849564574121832524370229230878779634322785150843061581009785475333945106998625888230107440169207561391269203106700048235255764397142191066525896264663168494072186719299569396614303548864333027011206820489033371035459388017836992439151342668769897822758807108171456367579433679444326087281144063435542189109807791087634624288977287307661424470325251101203751456256044522954042581286973909625966550941767778388886071153280746283294044721215936866505384554619642699926113369753164870761109262079931277443082679097400140902640899311466048339171831178653844397778678264928488915477018074970857824148636899261854965664472230725765877501301045504788085175295078916036154040104250085457103153043719237847144101391667336440205545916545598571507614184560399351765397483189295510292284833786297995829867500587241157023390575370460377755440442859146349878356794314575712841493011666271839433098136942490114416679888844832717152805481054485245551816726520857495573340573083022974049194092385705332852904972503404668015899419201346881947806363771513591000381063807606094170184523832728624772279643186216621322352227672324459179205828260604874308005431650420342686686020078749783520183577963707967536269800218134404248410928396246098695003750057357921935492068736211234259728020843051255811727030424839729517763076035523016660930535842549531635628821893201001980646536731049982411967336275932596822939731376611882409546782846423053122487407347886542466489115999748849538516438888228961736960528457908607500158653406949005837916859673724017703231469096035052710348096193176517924281862306567276311846424542896446614726292411773395332395967957159432661538906447598289446778909944714569927700341509496783795297975514208116334894784075118272379614016697842934808336547524221406406293347292290251369615580266281779591906839977045221010390893670499072050341447704402286257629464746105029452269079645254191707616626943860125686216136216246550606376065118582254003087939460788045753375450541420875522664467789925810630324165315950454532783946177175054371408657739364082165259653881948714391114353181762572088693623620177359094041751367076378917910894309562360944249843463909234708175262745336497165234855222474618467510605909912550463254341700851654990274414524490182716488223547844613454287426408184222643876616461932317937461461727553191427026013436742065008054236511275381369995218236738479169416310122750811432124838260144830027715714903057189250764764461160845563250945100134771804904471836979393137516711726830949943030175728600256991540235525032206095730380996598120396563384128051285741320497064608373305686881541837362727738333960345525800405980195112097966394139162959958902964683372374344930278911011701020702297233804171825400580365757853478857251408661622248358142761759773399495696570786217101381971628687877974559033697615518810643666944250901940017245193103698489101269102843924890387311925697480985665673952276804370755011688317745456277496548052085658385543449808695815944615937318444680266138474500046062341180873534024683794732914596951700961013135851195259155957437251988706488541586528644511002027168176103938027565465899363973146834698151851624371090087123459977046096029799735211726090126547211627492487448118333997203150049291627931500653010963906103855666646627784418397036266797205500734068576127891592828864921756011980192288061543506712285439188871603567228863146639248346962901765724404124877038269731711326638987513963932477305592290297751519541713817617785135055702351178367238296892971086366030973036027767713270501227023592337082441468010633613505377725558596941296709666098075572645396669236534280087744582407082689603677130559023877193062505451646332882219836559450659506328547565468392166603150406659779746121743908457351499853214844623666083168332516736949189182188674971272263542847925569591367304656342890157453485065528544341593795962613195538442357040247014546507871530886364728784697417617489615292653542527393599124934394074471201416705384840039692126453003635092633072208595282659537055445910521363549437389067977164409984452930473195468050394446192298653315925074737310634176870476520990708079169223947497890862189497662325162982859449230646809991112955578903071842205926876791180036316617899913848491958358804902503300048047371507496498862483700405313333599748314872180602728862456210394760220173088711370630510478073811629490810332526076013602625453279670546343406281442303453168202013577583424342007928307768806318188959704405758850826282503495635629914777431440435691295769742816714218050016597772547953219585682508459642765604219885134180462882807571803524664487023152078893987367822560313097486643979086289370307210352309987323507835614659956813046736258548393902235169946407708473949356955356989263716298121923688111284050873647629308509953126502448328111637800006564101361810415096040543706421070629488124293961523823233636984461851679769080976493123213233709567129155627482001949122671078996499286306915853866347559651853975355505154718134545215816307424258260590496614721641864939336644447799911356996481300616421197901025126503387152503364855780541272760953297998124706421567635561710899053063494297712780605641760744123668372441118811677419821905987592556668408960489041199351471297306818724490639872598711920014322913189368354084526518264918943930419907128774053117842556663935339686033643185693658379680863695810007385258240827185329596728170876740233685393373642567274540441062188435731516224899730982552762552090170139453004633001642652031417629908010291682125337072619785332146982235962944272225819924805372118952641270704080888429272294462259751280640034352252549875751747349288917523094050347424918590201646933334503815795889625544651268500592804237815426359478608360326292337275507906295578765144908414431518594764353090170273724211480726131306304084391118442638364389484792058892427113401676698555052442608157963846097748599765449132870697257944840851637604032367843166285617240081536091881343622140901371663865916740333831383555997570162729845123623100844690695120825549656624508742443450707090165680781417584892598795608911161227664139673525897801222122382976686355214900914464724816161064773203219455959454997385158792729943745793683065910567122465909754579215100814786782445545984403105482453008693055248219315134617360383866745254739359911232145229404076778382084380456587594558800294367450682928428148426910551191418017293876173111112838890792173996755643169246584143990058000564707187608057522049733992646757335117822875680900631999316522989339862051930304915737275717140982105556802709690289759814328576269603661876191788815082481423712983465885050709432408036990513452556565940218024872689544607722797142903267784658738678569605686858402375792618247995745823727031797905619781812068030086829874731951747541994893807082875729366710785097409079313725466562654122521177268188688875136720515500692175621460832581141681516452270863658576505050839419671613681669255830252712029878782415406788069898848945063172055529158824443548418252779605660675040850307144634328005452410974680843410426717603885668371353081484339448081969322089758036096310200484353424363952470482130293571667985284862746712993270283482602509193827615734948794164995676916299745700385103982506383098730802576913833147737386308212816938917868239309166922850243866337681460363157946394007815033072982714136465353840669627519846018418566210752517511361670899949995849597441855687594277323797182973278472765878231557159493586727971075643779078737784317703685074307383812467319086961318636891306012267775672023717705906970139046901214377490946942470369629509888708252686593540082526338419823960116177860268086710690923633568617334583118497138226623980272685462934490643580670821041840134543915388391320367827690959369125036954214048569330832798529091520563188378967554324316163313421386679033657464656416017655170321182270175232085796669842173925131294813284482026061402645832012088578959348368181424244405696244429290964362655973925556793074541208909005901664388329151367120598664260139922130719753479173978040906001435714440398655011416074403321480624234720104564622667150198284845535537162481052902979985328528674351414529000876958486226543376233553457347415593989289649176099111893508877214057908026972034177197295097277533339719595962666825035155933234847470577839695761389691889819863667487844311666652693411543464104106606914130553452388220460208093058801404933483518235041525429168578783112016133967250733356580141975323879236541512332142842055544475482418052781146526557550172805608142177919954495179695587817114804828641210932932955922260677720050981931239167274517188005771237186527476725097063702786323256399446518026281812542676711819275399837225685048796849159472494012569227784288299594940107069925384989462501661691759145072117895079359346319204580879039571027773099863923833572061404457082868255149658508825036143443105629743613757457956853765560342146302798943499447458089042514454685976982858835316623556401079213723724686703893883590286301172419252148536374557043611741874610799152265735671490348094643458945592598649155853950981921466607436922995354096581151240089147545379798502670885782307978943058699674328678021632434869831763355835640062919488423382231852954542165242003325928713893994736339176888054025303258302112954812209211377591368954628734124022878627797642269096190818288722899105863724847512280275960436711195941023947210660991776284302151954029968281725049412431875581709343790877094778785280054886948269280857292001651667514949478029382554620500078871312836795796352123084469449928740743555260212535865111018512886048527310573326790812166206562621961489170851606620050523732440769973805926674746272502500819249948505118218743936696779532357233428770814425576315062687932239454260742655277218991123410532992920306076106358297119829509124456448219052680565596024554763766428209242903945951952725493646371092839869561549185519944098843010568974197524525470605001043273691512994824928943250617242011566233848732820622038270004359298595855897236052098438584774525907398538419893157269125120972853210389947375561020863036829737640234753170375567751933604452680893335336028029553496217832988709555244420599906601419008926106863922522541525859685455599847831352232687996965138384370370873496828594151286216965178872776222751343596536185541897929277856973563648680045903604449422151015716804994302255554692474707778236740893580775580346089439927703859607626825436835224374217154127626893317195882970687870993280447003913025161061698313452507170180188165232085291234800902391405638546208626698045245883875794064940030451354230450477247312976994346897467387677308950733533793137916112251651540666461903862421264550793696266929147318473947120330908323196920343810820308429817660356493699254167951024233937038477997814984906623992840319465020161266921105998369610761898598845176315098154068525176691287796817181602638490247005359216454401416680780407345012016673151070782801311380980800619389132574681517078696873437167356666511188567593252145730798134213549384129425270494504060182198096971051218424492753278486723893226430948824077475970903877011853850481227467234796377914615507524761720192992025791034424415545564461917267011616316487524276428815743584160648375789176780007240254480318632190716671834126390798059070598338699763740932754396471392448377983036683646816024260578566494731110715869558872217599040484091617125500030007099727413906533472645315435156943296833882921212458712375851075263158864444780008585254094710639182263546704626878613188724530453452903428088523954626184094971369654626999742572957834814532702337534026458584454014387963648890325423506578840699952579699697989655981726618195870601755291034132748559202591498352752098532307101871071037442072335241881619619350126753637027865946453752963405922785587386638668906625293562018970454408800865237683886130213842074635606311947632749031198294337014480345964118104595194355509012827151106019931942807103481618962955702122771566022642633414130264853980292342723700295982996531200729500763688758059898421681086597366406621245120943369124159225233758709207442741096363876455305950391878036235207028469888478987442576872451463237718044260848555009276597269205035591275075149995066050578014222221333290779141865528534988438674104048912874494323806192756157817598999468780711083858849063045318159752943267728060993818456834632391774793225180967267183502617603936363581901697326516735586900323911104994170544631975468988729259149092354562437871654920370664973579560360307312658530648730556609413312320139799512532631497831165358588452209689059985027875871966396574266544431666227909875063347753928227928652619723603564398797886840318338236805935139268062946669162821986888076624322827077530968977915547085182508895836149571093881302393131193788910023242287673036790841744301740103851629041580383112012339797343850914636770800517935899492621606571033808781758554492968546857784849779350669107227322664959036689784717656906986166561936034201890450669240916024462264079601538883628073332716383056309341333377941545706451314931574108753252585009299768768630619783273464715722309399224804102953672167088570732015453835510606205946873700584879404002877700695316975138177131817146102790892236163243237473014925127960915595306134889671870098520249517841713134660551954477478656019309509276148818076742050123906085593892766672622934786753689275649866262870129080711972832722285075488521053987684873104516844475323525675696340162896933771957951835070208157437566148575880020268108622257579831052666598952849024190118654945754377723193805114106296331986311892300465091495057263536217316716336075556449720519791394846265960944687581342123527965908289001191362862787531070539167648700021075207847048306279733335775108792126543962625686011376833233916615519096982372290696535844080623530767038331977090950634451963651744869496087048871709649656797062920124642336792951048097939969854969233091387576454912422476174881039249342454161055831053374638195672421943323816030038777777640499701841875151791984298574293626547433679498790982794731976469876465410868073821535402361411505149743696615530300827333440164476672703628341690032190730584920098621013154076167083871429208990222877894360417628530452104538821858498990038425979141658505614758791562030296175144383910320384675381846435731538365622963872916543580335990761539377147229757323135199280350884601214674075361966297534986240324902643658513466906150220885502233253779126209735408970154557482628352182999740394654131760129874535873389189059675070647502672947431077715221717491496113565238290695431055994551316720556433488901981408897224539508057677066049588124969749216863560538719017204656218040308824986126431355143742721574103886719971643451722507681641322515862600399368370060668138442097088867014516448259071763878782521814352138138775604037442657730859604154813986559227196364953851680406214154841893048956240802075399313175268896014064834534902254082239434894074554848472190536488638221912363773943745866196986918641912092117804107749007630377296003899726098864141570083928499507749986688612615806346064493845799420317770537475003646925097403210623472370681310897233165981279644935616209440193827663819328675883191334235681284913406380085265193345121474679660270124280583017305903878008887149317735550586284389890261783740889375242468480849269727759008685987022531458274560885155290842102250084494850075822830751214698700160024340438564351940401474308316254888684485481906257286148600076947352702857938467083830017365382451726473832314892960825387279481701120670147627754775280272083154560832602128602722536991630616807188802920249428309238534635525491302195783454384126263640432860889843097376258269332450361637848704887683964175481734617534348474437489051045857574657420560594666788741212540953936490192006500918290112623267081813332470605659975745796692155487883235442869407299094824860549079725112382430419137687578036660652162564011167422491608952736739599983670375440928384990371630721273084818748414673844253859061489284418459196643036332729630614585377693910059650958530110807861722753700853638066565903295693077679472721556899218814253353742358861925853345285324599211014601263737993706682890145411145620327561499083766531882591355391189617319026364334477056463374592404230518493429234070588292642847095504590933412375973095498469819890212517320780615548644462319496470304875018730874069691424402337420305686273065129915074145635262293058492893463769909990665873035940986531382377758853897431671745656680147057402706067796569689763232026296924694882416881659000952341287246620683595357260550050572434537732406759573348642962811995739064136847745861515038629319387717777236183312989790013996058460370159446148639380716322958235813146381854918413270619548797933662996573104298536237319091018347961976717238539459120424671135587893522182147275722617704245531012587542422993200984792478394060121438652116992818559450350780999709409182345012019134056609809975123738612207549090708856161943188113513401552335695973825618986830682221354650257651770134388236407711501940574797722591965750380135954741342517321441105195146490777670657450211516337562340541674426005136123137342344305674097586060852000785220501166970150506727900821585586165159971921000261984111814253614933936042232539548862405408494747428484538916003346289527649705261248412000689364084822619935737324329926926924610853199885985658878525290084417752678767518563302857472809186338965677279751563097200915738562743158809286489567593813088107323625713442654929494353499502038519866119730773543961090610262622649877049308539694721409706139044374872001797961957839805988505159478141738701227749007188009001645562285008006938252687243243592353953312418684383894704698059833746163901862558842937544571589631008581657667465791736356354506527334961497867090093422249561141622076511329298192589860478250538135981625156885540564437922816173602533307837097089792456841036017373525814336901281409170707061551101411388788501918231286236190878888930912246709204046227661627683921968343648260460611645493220283407113674130289937588770163760748979965860172893051612901683476919989154139666596718199915284913067880601652060057483595830876075404201003394640606181943988318934912366075429117817937466527184504739866421461139677777116308379048862474422224673185684794841210499319404015151788554879734609169659043027896173641193249840285795644104027626138130508840555979368659289054860079286004212292312595304117320717138978971554711567216160755710269446203313265931257122037904976473557535303949277314734124059994553487581826327268774077688892704503047031087273413394843590313473622493169176439499557479102003880730631249288951223915062727412601176058147668803163502163992469403916620846359011072649961847868820791251179180042412616132655238465848518860652718412601831928094578358114168056076070944808687912322732858715049313612764601331279494875976669180375704079466843897579794800975681294472907591182483049504257806988812431182673976587907333520755041009623941993908735066072962386180624819503860833381475887023207812789982365182894384029861255028025356461002509002511000744643484939516465464550067752163369274629344292986408031319235595572687041406905734658866180290072645017848594929663885625251097591796853527785086286963824926541123463878481669459222283688644604434780400100281638893111796092563389000135832470451618617570421182179272349358821693423596479217745527730425924690649902705966989768577960239990765337453092498045220528943866453725083634936969681597166695152973588439103450509278285691805226011602638869375398312627186149090684360222527803383424345851588084817590806548387078294988843147705334300927756267795670645086429662050228955940370290483582336311826724766610310654079798165116152753098542529959013410256166217648303041819372431905291099506878708831433707637937757507385316445995744773851012680774861139061789622084131490605417742459284807759999008800780314102087424226088385758666899314581580393690817597690104050234856695955776066036432011745033191176298373067848243925599021416832182906505018141198391104874678996231661026761981433185878298224298715283599085078902102914295924950813388114181215959316530921750679059717834194108461685275554129204046619604618433839470669317529427507537310949519532617831066113520762106304353317200689597736529196603161477169588701388227344886419217570988460136416885321713100105092475247971824555360543760529910735277024684357933219199562534361451013091924223364144620091578424742294784317940597664514328334849887590230752693118701156896385189577032244623893240687923986889458558527421005051091381382388505468793992614238195142500138097185431532978330724526524995347878056990322387830221156539513249954169197929492321062157898866420001315954013932553179721939767265706601112911388360109687979513250859158399714044666711631478231450408946945170909864778233105270027923632421293305903326321366102238741329816521640865372147346566240310610255758914375438439288798453677534612936123877699390807340765382850240729557204590328127065286694072205584052764997951716080501641963809664397864690976912938153705861675147640252811567208576669112329739293755382424506712790796203383724125548377383005906701489612297880135835904095476919372614336581670778669698001440516551749458506526573833676326846433105656942619315356363676206408154991869294066539756249697314875374027745995809959361870253644557147166704867402528936997548378299792773446932181605562624823892558712024263090400102144816560184714231760833373971084873278877988888579095615078547912274818496241444483515966192720615033839524703107998521174911574706784514627382141584869545794828452357459435392016207077353059560372679296037085575841355427910257983237289955533159133296136725337013938598178118183296314138970821560133946884894446894214526394943583445978943170849123212588182405763289612701529973144068509577680466509554001777944428018369425144559312829884676670320780214996857978557240981332948922335177868167268531801011055338522089293089308028203703349487019555893356293180118471853227675328805606026930749647238447375531977622298861792896066568846299270313313629727452480095799598415894975887978704056467441658529515741512367792602481599431847137442702433234399171855327330823715758519804724142219291628760632164492887049503882457686568640238938486598114980853014731586006883874126720457814256741562767286004595292235741249939607957149682059177281217070971248778577818017908441875408451313106126572091005595529180008969052172738532719652459176663244749701975615665796746403192207318524872324606570332531552708236549569615808046660623847397419131071035819656868878449965701402738521471123767480831747204486476866156950767839849168878298442965970664943874531784317474506625209735084953441183002119293904955781790154016789513081605342934703847433411382718894675708118927724155458263910411456110354358899954323674348249265136877521935004768694785870040341991317006278875616307324448973413030170756680981152329817387665412331912604405824354548473069714044666177279364185326304549471837327496626787809778946019559352926576358878236445034439491759806880659358130441511768064180305262472428783772005617688236348971997035532291188472104923336198907121930433677469334386526094503809217497817358695876976351719358113440262929445599402503688192573603411008657433987766705020846762957886525428412658749495934975303089116911017579026765292651812137661633303411474151874984378535458727193369440393067762840146416457745450963426025187825418146210039129638126629672473441022647472912985864745033594668419830057717228470716457368349861055225986567212900317911102187259117119725938705948961895334515117062196830569178457232252817969837024330123857947760501215493660043185828510497159388429467870077181074696226642768046071572913031267948611699088351998152323515118896091728623080324599172095621941879060030733941275148692340605651515153801528865244110664684424143290301044554428625454505173706499831949640330426415508762032855289854922043042204682588337120313400821316839859094137704855503731093897065143409296976230657125712187640132263512171000260473532684269484486353344427961150196034748079092241672697275555577614555703281669640422892702663810813165885490418189149152722875466347104205054550378441028173811394515624091537214853037364125045864742455203574156426325154490318239778397686745091562579793059383387414837361668498696562115849256677903857869379650556683331107244996847014283103413818809694392359855996047586746182070569088451857428604086531807784706047747245034106569710378219848375633535472771899129896042537958586921294780895079339216986069889361532373570433400730091767196255301935140097364526161821180987699036928823546099595054763403466311789014880478260045522323799620167207455598521560451222245791510323153938829676038331706891602333189473887157389695672447109692101750321712236325170684532492561320583318494879938379364641669895888897249588264126166061354729982460748428335214621337753916922051321845670019430534591519560637118545036497612101706962185904032411027887666153587172280434475258243183031158610175096007673859190327030019153335697368678463014081513358235949248141006386187438515269100721148532636876243674315221027717448340563550503946461492413936939099049920145960899664043248614552412343892174331743915516681291735524033962299564298594481163532741162470397693687023706426642281790604011330422553004934151616271541915092529138129957233242332265209702339628094522886387969091769857762091535760276419243463775184082529305986009666384772018499065525489181470951623273864252889249511894739804109813726288621452386541800225092074334303687095449261080046657772693933119879065978721060281175717086503114070628863816720121237571421074769484836410612151506797486139833480800437577171190404901374025801091763331489926626785147039379911268103409188989110565954623473008496253999406883028839674872117957651694579911989093067218307053045343829551868607734570495225233353608822282286352309080202328227637271251771433033874932573977792366675624027330234187056946368153600502259927873246840104058210922672631392826525537597080565904586723051926239876153276435119285090321627784580873595703259019899175882633705635812312528362093704125516846604505007564428079905951863826980577751430098952296655280373867010700854368728501873414202110149112682328786277500379341856097308136391043238856623422128675685966001876562216640517675198969368258551359755731269307168251105394869523841693737910201668560722720877103655321070605480520010061542878524896793821291852390572392078353202631885668613953637919289600146295310676755303523501016306813792651649468351594534917418297252142175924267117146171804729745755404068726736829102020794506078796144923271991080545578028713774616822779500273566457300889492660083771937058150635498317936457027843822690563113943263136048187220205034155276800081849657086060328210846046896164338893953773808995520319049089634406666737317567680077926384209439163139002401799536127011469367858864179723079993498496955274584806958994036839295745596566960444680286111252683975262820810567573835409727641941964502033992403881727312891158587632759299441818750188809758081511941607873019769472371326753241167701144578385831008393299282089271483512640548347330368448250472817756976619817754428647570119679314588222663886416836670026532387317569898439660435434387964008053934319029742827010038337711083745683629610627317340272402646381101384383260197492350686756967301728827831609861177597510211219121584082711819456018418712684743474433719448011776842015161556034654321544464815668199482147991452808123306456709912994296067690054968042791686115023282972354353974064500444018485202040658395853276020670565590777582731338631378614181685384089432066208825227410715668310771202713059012905519445123804158235129578212489141915146351050492864568451091939687903422419890001535028141128455432424189390745228002975592890193914318260931891433227666489932378648649232165426708838077829717835976641371135632031201305025359505962591110855445941754324313018246420012808687240541744918819316770466099177797229089778001875601366133779189195735343626142354584561552662470160318522404237349779735630777143998126422580343437042190792699192861292937191321137895414239292150105476758690928582739403078545491174427312431820687383897861578497862633417816568709654296972991302206786333025591315958419686906105069251920920243056193969268635650051034680559188496526676565470461251310963178830873381540301017321092675975891439981596585944838590453352432698031101976400361460635259976809475652759886616041648311250974815680747706252410343648755525087925816371051009172514251139922417844779475785970159230636806204304566516650021746245409039765521735635466911476844067644005106721282320950995280901539812078538810180346489747896024814139838199408094144112957749085967003241448912091678693484464951534845407893383641772860231210875241217484030989467438330855633950549932714557474408989509851330034665888958647995840662725869105561714705886364219775076595902444597032748585162721896287406303122877793986988009394294036560737800863422114085382310783620136345729717091752641608197645474479913645305218585633305312228614540967015758558642937141853116679696359372465327365419233521316735645939712551356070905861082475906416205769711628821733940161242702741646282583650503730494715074220969074105432399268087455333930309177852429740909108785400648691813679043935182949068752220949154988838643493060857743237128028247754665002346912877770419099940182618871585749887448126865815992752303335942852928984206489736059803507252748048695292236082577293645586018253411458800669461729886033883914587577224169118831854801334159481593029087463301309377576995711064683792812075053126460492156075268276781399068714646454197597002978302009002551847824711852513973109770149073269233459009319584469712966753385061166117628371103638693739538697664716989615395770282039403938386352252156506167483642598881725498014958215658681637843081709099770833741104217103347827171461783445220921976398748520462734129984413845709949278363812204945965627188389135391332363476623586453524023386957392159811154357637380487686416749485814634833837880553699482312513990251812228914531490025589695394242014810023103934535706745282434729764840216167921035624528165225960738853522894883371427040824092726469676917474101273933508515154994633739230013639608597899309852277384835609046359622625591380602942474015643242107390010191192153056860788823811508262505624964876054574024328658700710130968113770151900116661863339725024869324822016009527262162985870641784939139509571766843164358450601056574026913991101545389200635057016940141617635283553433975484195075030824021736890494419481177316971333876995475676994119085409504046534312516311244275937258992759699695060382194548223303000572298332606036013679297423133415481538276785675743135387305129298116768380546183664619796237026358587126473058188788411775395478816225558496167342846252552244527523680402038214979228005573630909950744009685415446332004525214476079371369476559139561194123557788809562047759930774388929802371052090711592104801319902995662282342196713607736146982487714595343243769129280890271315853224737489495636174304945002185921884802077466924501302657435799660147780417152775746017100749964253006354864167528434822419567422611227055522973233649360302709246696330534204806951754621999489805895597165089084431315432835219777783449967169715526355455266762647991657412598068508569004577924788712821341993478912104320081000863326162445279402711471636047622676583840192738606749505672247360951653342598361714395972092405130412326125302808605089965687345302471257617173833967654055839344314451467478523622938791122430787582901233923514846179418838587974627958337830085236575056531524743428683157532980723430039686979746709727776603316748887900224316753149189344610433026785998578829729980551108366376885569661193882608929848928104770186702991282086147168116014342302897790774211353648240057971476553864122148824378194172817861038762515326560275692507395067764979537475754762414065803402761952461875937774096797781325090996433152637089887978210804466949796241454245965151796715489666630836241069601403525758480747212355589793152908158397486355092751183634846304237982239372419135095459766362260652810229942996249853687158935521507371071352672753627701509946316313150702620266647296486054252530562405704898550814579427860351371733923053542251738920439487615018120365610799382000496736078734502004679992130878353830718176700191487173586875442370411600485535489759727159816320540123879354846875710185985476411126841141658463337587005591577199485781735294010278013404559755883430249784082680765161620947632496120122108475492265551967134545644024258105742101831557912625286537942044736678127599744216961164950482021917645049149725592926034807560144074340727043081554550095894380762392941724417385844299354193133686620852385003192623877918144012368112085635637284857200123273921190149085226775862085689407909769924207671258389077781824069736180297334672085769882306620619852360882086230831110003311785957721793820119001373680452670422863633519576516736379681786965791106835491015467089076862364896014492210197140802901552906152660299906936617511323138371457265820955461871781543557994410071335840199971179648474413628075067399488449576277905052218232565060413696707568767055740213279686958031386522842549119950587756941266616041280628273190619189789979497076749462747957967295143683196691294771404408845987080410950901904526481648588522384404961434247818608394411322226163970690529072357389212175940024599621938742135694296601838069442194242495380477779183060023876968287429839639436870174201270198264493437189207400975893966466429303423628955355319026942516711452127369989940499825947662328291969883390239432851738718598497087503168540644977481207607144215839626272300568806339445654758675778105759059810473589769255273150567874614856500035914194078014804141808172696406537891129232252681175611059285331159757489685552002093442201892669332014577545428638937138567162609485281130466061654317669792702374288303156270688003501072665025303159307551168095700363152204907203907669826748244494998674680019727430299273081676964481600999093603604479730312679600590292535056361444739853910648251011566985567717239089435973544601687503572906240425018109689538341149878484670503316507555584990692610508041898491066133699819714725401214906586335294911021541342837343628704978962130448842821857332776725928350148833066366268595633678748423973458751573193966365274507163156647977528334553100035340169734193412207207511975270405341725495443505053282786240438709283186766511702806140099742797275897088036679590983311848734527458627912412184271793550066518695687571356664551818553846564432798140379581639504379621318938545613456961226376138224990491530672105330944361545826477573653837302897426534455160941398897044566292854557368721095430003157766196548610852868825170351816278116323264731124201331220067678738392350452646856867786131364173433773926718069448688517759142753202500541477542259765084926618739854085255545231025255061656469167824721343590642768500631347776407784473154935424324598479949726608319853372341832750442109504392037230113333251160513911955409725652327317084963154088027943081627616386042731744792934823529305231282010959426604771992656847616321775385431982774165740176310231071122220702392076884093254615467315248367281439445050150267290697919092259828168995160392866186877314903586810081762236820551668326656263985736058605554694855697200299624066893313024565192800791266970527358330723313446309227546427029603495537707338991468799725887766693479410940730310181847343659616283751893991331134484888239930988714050618839754165880381315832962487040415709318162990189052114094719479970217918359043637773148649228138572798352305033101765134428634301829885784828279316477383604900331445180212143001130136605978298587950259911334436293956907738636184066019296135854032755566442127975928788253741077256132781241035499025480949366601469306658958002753366908375401212733544631659715992929376846728661514101161287152280844521159302647579884289342540804548435174733938924694682739072443669315002231542012876120699683523115786501073454836674576637271934578120900007468284081183457293921322294449885728835313654522619602055796705391346027956036053914496664784135692190538406188054360543025127931446005226502918842036033223970611455396987383276886928342571026628544267125094127812466167112890435245192613400956728582390208196693988522699304953773391992163483793525422954603901968230823375865359769955297498021281031149834069759199876008275202808225642132592762772692617281600016580714744368375562648995738410792728637157493933599964689059729022196489184260228372998664507953154237725886735772499808405227954904256290001639656960293043788414594104985777021357823653958942171150275912305838071882819098155002535687300750803966362737748819726327722950825405931736014252734635375030425334805895342975996803769024550986831941579626739455891721932791553436971265495749504264866203498097952909793801341108641759225494886276966732630806547648176278678478001664971231738315459390869430983196167889002599476730537540541689205709531359858962194203975842719578391942324017382441105892229398574981855718449876141015487889793425402493180041591474245246254600129523153910702117654286583163871299217080354539589430696419956933455524690590515489585311900879116237117988718196839491668745014236571229159954763351947269591746919270404928703847555023200222291842465542663620357723192756725344994355361050674649416670736243455353420044026199348403560099955996957375145679902094104488656198884907480536537490341886267115622547433935688681092121958741832323208113742703381967805374241913833285260299274888477110797981095648812816713759774374718858444923544300518347501650550539853822823433152443135228330870928068149615179402352529265609902904156786330478574153738069485899510436157450832770861383173697633985381543067590780748196574784239468554349759690939649072782509073659786352378267792906389858774916187529709328546900769801649644357854681397223484864926031276045266465552096684530318330212959602635996910405543239550261299292546121168398094551498802304340861542081038077905683620576204427595542308676143376653654419706266306854177744551354040641605296983451672282864886465626308676847953126159885114341338529815468315217481800814074656406816783574851988801444235551005394883857533986923739259404260137005303353024340805931180874250927565809803983519105380586854814025572247823707366144214719544482697422697111847370092667122217233969632755880978551403336370607459470984060791155826138503022377372964144780609169341987104671239585425266791961418449482939851523305407831191937973352330216004068181140189507177656748012332789534846312706181491208889868093975973603533219291394842689668469946279014030716100611125747449143696748681663046156248620086886562107102481457848244347142551391712649423477968373292212193120216471203599520978674074988927963447777215661867933262396995683277736655452852127162671786640658377492082777843331360149203504413770287496342461601549612462887095828997369992942890618465382224846434052820432897601473186213816408103137621594094118750398583166714630363216317519115890576653368190104993404760368411287480651437446219995514891671704398022949486178110996027182058388725704843014801804484132982329299774375797246533834839628780663875297348777145840592263930971155279712552336329921416404249761990901763948248993422259516400562018174579016593297499889044363294809038652295629577906830339129012998625712464043296015764479263709680207579477107977385828488270902505764931475363699802819269644822680610732160747375198526784545569409492143811145939661046208039926058310334235011038865601111907312875037989446449266343046988000254092707453005401740088533650423115801099367436856445555298627945487908909495548984111050486538312536048603609800204041753391672737846873016355303335907530513509841453980071225145593440511587636850090702518830828318604175376798371696345704585332340424303949284204448947337858155615580968932620425596479252825901839354264563572880167505984925323652672340676536224476535655037406557333375504102867491514444770095015254841394652510584365135634264871114474777191392273102006021381839654798582479617282513532879634068914902313952966736115673727565524980011397671151322174174648741440595328317004523894676734303552123053245790049997507773600636022150478546538152758268848228390752179385730998150953885965520817241548731800372293999529901374565740030081680923699057285495510633679443017892969594447963374392230269889683528925629129066881940581868537330547508215149181473616716503795798275011222873397104344156101596370318868511166972084051065672014705175484039817278407121442616784477030199266890752338050500390463237790959007952150076487015867339149702151298364898194040661637698467919523051118111303886168780099033106007813875345510279275647927461331546569256094739385129933173328944358809054107184367862126477329420350010920239936700009301655828457283733643105045147995783098383160081856946256525702581520368193814651329602957882051775867386922177597593353649419164457815736287159928151126279922406391775170239176014218262238602481496144337895036930721762712542259014024413324219515247073631258452573583669353636260052264842648042035416126677024147239787252800463323697575783577795758175484147761244622672495652188082368518315737454204786293344584904271224124633973788035926227809684218553454874404390945454161965440675023452554983308036376718299765206424276018065142302363832529342752647613027120272635991579771137572049750993038213160180396682190281763151229818268615994631124067394615630578643706261015097207366935271762828862351407514693047807970922014995835242253273038873252433936133186375356181216393056234366561560746319349267432962235552923623838497063087465776658071686026911752701487535805499947272364045977474729557865873571798349136157919092511445170594885556572175099602456177493635884890031374168908705802244741569346843971195335987618227878747040407428926835534847176071126631983015916641942969255541854846166358521041862221696635882833041332888297930645853145041088487363982751407205212530293737631512868699275416589151786905094592403598103313740411771079559141734829305647082934097358534600853774252981257149382254008964357473592229840505440835963448253196039639781110828911692833235406567230602086085091488609653241034423678282604444238217978930556729821569931672329057199961471012874078642282459456791675909246236398338532013973977346147413928238715942791302779502944955057772532184855846447852407300487337915141709797071847012444208861650753014663381009943090729674515387196988777812261729415659847581557919606683241835649155601018051410398486839190241775167477494012664886998350806477948443892813316960656333075904890502981760277419587536576493329299383099254001079636800455234661237103894296767337087020808829787973553591803203626184785057055158158788188325812586669032838536164602008943046464356264114643789013170251130580221765962392700700667278254684581549609616964131691769234485005509921864435451781320188540371642795252387814617158591252555856204977017711840975426665029110304095342564942364150868016021118401585837137690961602097656058058432794755037789235814125281493194046242211539743790034656650603249592867372721030713790811449359866641501009300570372087410604932680219783660590855577777445424319744504281249582585412673836327583508847021871679884235653340192375508975184335998935900556722064401956860125931072323581136103010276589931167813993161991548083041505684170282255421679900665589776190314289750874594129324128861818058621490044486792964957634358880415567307894494342370031521253391144776797504494202852222735612165525092541386999061909266054615430478375035324864021156976265636228046799667977260342712355369677761112506451833935973560777162682121802890590793888457493330553316171076403162088519603310883521890435602223872161132476941163451227555638266929778136495054064322305403548166159388279206669628069788522365516020696032584179178114141939490643784731470006314178796112246348942325582040388640941626849151762932863525250257462380501013265016525573973763734891131712773732459787659444327328165776306365618868328365335010072617359600718612516403842129787111884850266127083441938277538160247478947596199676035589559268164605102182184104950170218450431006383017142273581038079403649603928255940901552324293170871330234695055737152646209966981312828958729481172790471176932585187050852552848638818324038728075085292410260647676666143071511375013602675410866353791627822987934946641471068102643911454990196792168264182962549169305480818125712267983554909598176404648453752779745646689404362456847217915755162674008963634425068668416831014807630987208276158505584727817888103432312980033319776618715249836235368399579121809005159785981744768980625899973868831170931765282673154945680468914325781349391052162566290312324672646424834761080179560847187095703365508791677144918078631411517641444023524223220226435368876452233990602303770946253018973617242806734012817779188956899009800636358003001699494430655804324076306470804500256383707976442190703671687929767251829210553228461946742235841381656392740445839739603285388524192669539090062477012650165146359299671797078858136379604991797716351491399718527959855495158434996077291560623006761364342537480687744678205571476745558469592823267646946464986082929032607138704390064334046115458748171923229416348926106014082418874020223583447843973904691327339489281741957086549170856852374481528857850034100337390012512002282215336624787396061414627243194765676035950123044596557698633541192120720745236682458769414121123514530301460146265174867551528358945978412673620191027306121873038906050763723093165535261237622652773296593846153480979891417113654494714155931018215188688148518172430361363129624760958627417500521445325224809819218604281557199037181906419247577088468343114882486955540820061436337979051096980392418610655402785417350190175450606919416756504000466876431693116657252773052428995515662945917615773076414765712334789365055978504450715224857643757801265088279231683803996019680877145783417447567932210693193823991278481188048806031465458800158644740788245551498016832396889531542778138341697694678670741828809648445868095308854508566659997285928243535035932859218473281858001648575208154806529746209728470506569632971222931462995086630912607556402886350473986036803350428203222027416024124776570577049289803621009001265306153884232783599457138183293737586764973230036721809063309335248237503909817439760142762995355003484482673180791262854062355921633174833893966872879041384115001848881019148439022497947718020632878469348888745024397879218016132521059313688314256573998189770672878260238030444256594633064309740658707715009884700720009326997811715541027206342811141654830438078368983473043712870111106494621270853118315521264151585720486832590425134268429142078536445061728205611811122451440552058061618561356398197225515442634261840108425616782990122450222185107269264785808757896468226667714228005910794852526082720726320429315721644573238382059329845927925810886106889069623875503839993857163170754327800668018282471031888317579429742582933755591139930781120248904530043092869229709925626413333731243725952545395968137182993831600232974052649366572182006195265970686222042506267842791192138475085215970924176816033894592919430342287192216164216234604067393146324640346554445718355000184790305630476445647131468633685923464413297950585349743825966586374122861440501841053964218367761827528589177422967596924073604382099755721301027125217981594145243635494567847130126321618412652077831068838024287883682407111867133563196511360208231313309895997454568103190684509352035737525076266555133735734923787581539964519286413028146126910488272392612534478017204947853166290204796336237087673253964872263860016034116388218554009785179508724411548889505622300001829547636588112736578366509140969089032907705374940038664462841825097801655814923646675329556397155696148227933067778901862210222909577733755272914589552527961097598548823715963540821821702896456211437819644169115525133523419148838652995421787520992181809111881227025296062213118607137302779891718159626893248343503522725913245117799196831364411653786379529520824831150329304523522606408887262841355507423430725183499485310443876528500845379078270650160298134045148504785764616248986998861865403560901765238059201366556076576425004563471169973255977516843909260292910242392191204406654779866146887017954857590956915360385696229284489638800984898698440874171229976589301368433319500566727169846049317581036364379752832784145345661096171204488441408561902873538222617256073008482848663691612057162035357884001447921450873174306684200998878352019592773811940820352204636235418145412342675092712414280360087971262783763893981441176106715368939551453584560179511378302925022112378031799205193953700516923779881636047440887904660862576227016823452814559132642639500537012702289612629120854722745841257024028734091729649343808309732724940967335622691976928529593185740284705738446710051529156439860028835408984752839882549513544593572652865880825258448544692696739042304968458532869768732440244781494108040214291134871282296123007426036293162737520476916071543884395853125817222255105071470921701433279853727101507995302126955070714112225330790075306863351295597650861299634357606519671545937350420032704448457738811026979692635821737271201649196966160029860360799113739089950445279286494582508594406413145539255806960093781521510683879595136294200890218179825366093897486167519308329166221508194678651480252136375902388481158646733196535132433112712896592245523436738907155907858877809900819220118969481079042407943227807729313920342076738122440148742206897178393764832236440534202879526860237101961848956489820107960014716674239859135501659109024851600091417453756835098465512681421259314681451875564174940981851545074437942055614610993826922116709975471896960062354545780872462824595324963685059719896299773008926002762661116507465934385092856288417938748532665240103655465762251569341926230405026182175397313613527474316199586420171851523571016584058470013280462883873172317770511911747681181172114443591110937297687873223285910153272763348626503515573096813653578499749741939920357142421991618082802830217778648261125882470059250161673671489394695203972646167497728254755640749420342692743361940378625808325070285018319572774125354479524515442664821111285276132255209943358952694899859894978309060445809726296254221952534036470006033987327125238509427955211169716866867439038483207618882911495648075900331452779801740965589678849247099466187179800033601520191892289775804529611415862006312882653999115313425660349958261046744277496794764186407443417036668206694829702706181484631181379054380446047691266102762921506201786701993874501529412212945775266326588585796566255412326592768045898379169520689177492234850251971858281595760622755089952692612246475750195956720851512322193706237172643587152211026759281282664252392850453312179655104155127710999350097809533555476050016428551414812685439815914947965321212010250206115503835620534355844903545820227236310627303833775424031861924897645660873343619293320483220937782048584915916499304320885604441787794887667945317864358358246311377217164992091361600928453090895008179590559229686681215779018905280700112126318727596461578448602580405747995490996721711036727510750827078304977433657251069778912279203216534093134912481116970290562128654665769082755382989379449149538152705430752528091375967064641113981926727842142538837848333379896969957374105785487228752636862971639371688071915111554046336379565748647022878331353263134341578724371000541602431124841968503443450589694295942132073143430445324299766063680311023291057062350994406887991971023303621749108480237016269110254369357075276512963761893707666646378104050224667200729564751160213411362450834624500493709558549468097703488502933977117705351227681179344611976803014347107566586905195986086809795587309970783207381522642477153884329105106442329535053893422739751814262045858859332269050542943245388857041972010486116870569527965816664868252955358111664073345819820684656812690308552272316100619390082253889745534800242813292238387688390034972215486954760552816983659010765907413729342484131913107218267960175012922281134973774411672843492311160531000558159513713946099114202933520813179283831569988766541791237854639546550426835398383975343679653241358595186385299117244701031603522768212863521233121481824897132260116665586800369487631406849219539769031100178146536680785260830767590640301133869165751504827727927360473045309807713760069298875338714285214793705686393223402934781415703466019895570337411753094283004235175775441267021350481023217617754672587396119642542766527994740358347681352448274751684144824518830076260522527712769309850917813358301850104693227943595856874588047466570451935990044214908969440039961511401526305431069452675434564189993293106870417010594991279180601639630564927841520431156883382963456178334659167073687150709108652193132732728373750717778633704036658632288057791428021146054596378962555319240230591598639954120472072723936995916938032393962212877019985034752539734250557557928080637747066916909352111677574961018759687944204644135737901344339025873099764934388271207558782038009006833011507077387226713079722721986520734191948079262126376815768630266447514661327806093849060188011799289958128137712304897076617879409276329687396638602689260903346101449349927966479832214497143095689266587870375350709608969058669494119947545522774780071396659322853345307996199277366397433390647052111154265957487779123289501129826370548923598037449980234186244646522241068098629540292966609452870770605867704551677378739711167215889537349363647308783295968720110747376889156587227103706339961316316292991296367666143032555337213000134914556502270283002051536773306003412560655228616799018631888079608998422477395895104141684637707019914712871043061179436969521726154039936052888485353942052559470597352257949198597492976402982110848080781314046143179844281394763621159517743758833181332501641093772044451643480971299451020875792832390527754614453127739597302234979693142961133610888514272618877214527179011430247876739220082578314173497607668901227245163029083537494403071032578773237633644858409889707699568011298153810079506351490989866933129766196521555828230977682815632151492298166384055960337137271337895918607528443668655609395565476715621103916485627291548482337797526793601078452470658235925367833249224341853124989867818832635132637808628389211997511773800144889058836786627781373065168411414115881542892210048868391854786445582963383712319498151115400063266461075730237249214420606220182337548410075070296594486920268508080699806144204026847909298120617246101165263517171249959268229563852877583919161936044917723230964339720023519471942869414638351007662605034299872825421078203088664321806764454271635674273661794823958141019377842648346313520038960451649753198084404640654802495442278929513842842613679772025693891567743620971270921158552014766759953044547912812601984315217358567920902814957935485857361162224923643796571155703532843517274996081028120107113014454388129474394000776917817916293712359004563915753118618784421898111639771622607388366599729402869772655941014344430369875132616575060413723254448656973420499891068535312034326816435318856685912880538536675017439344230677713521518089175032865380584830651817928930458641425140026943434900063877051104796485187783498247686690409369611166357526622506019274018405892894126775538139382159339582745440826768062773009945010031564528958095884716172419576504741388974578829601763117863364694981898684909518979860749091451227081427710597910371800826499537391965618804914446660732774636647805703495692142403118755754622143109509758844342886230882080102020303440815628132941747858342538203930687345763389109589657116976303805354243391621426158448651130693517584914513507739285922393593490428825360513324606154254793259594850195908648924416553945607694714566196537423886018579401121256634761570952846856772646514393205837564679181069768653904559935291786237439385397463128434917434924819668654872154194317999898384758318708455693407386542558519350880974146452944332103624655554283805140255398023480422068502418680410996489696842407450470332951339007628512186319390889538325001564919590949856688623741390730309897791981376173801825238801951081668578244320500314736872430760063282316783560477194712531550392653110827439558956195579642172171049499794333818477596018357086314439197298438117353958114397916496335573941571583549120110577559756519175809992918885450173055487818667561333493802549326207737834666038069008669128616836510470679351216206782396798056316838285720044150665174521206009525541378763462988342660643891377141197221735779251866282021163527578775772666720440338383834838498525802803914476986712240619469659478380007398747403201309621167719875360209604876240875904702670347230657237521496040559918021964886908836893833179613722246690934584430776978159238366008226092320994900521849527118635919652555030459233120189781517816373599253620661203046358344719771380626523285434174112070248149302819273068119598586643003557344454536441564291691034964555275833588031428871252184029222097150302787946539901978458836216350485574534707219569381518991111102679991888396589902557533443908347712373438032711429271777545738333405534785692680179148204756574547724008017149253073965775189209330409414096117441919805879640851948378448181980209751478750644470396238590230693209443545749644622550446186962079583861151085307223798121550224702932303187090205015546294554637360568627084142597330920990680992871608618439069069170909480612256453762337220852340554670002007281130030627245518126596588290906711480060295018440378744505846674346986057379343721775007695601187382851646771222954439903997870017959278584932036965559215659517638462870734747799708619881179996769891651427208427453683902282644475365905027194912690050152797677584386677133285921986769171172259633017833519911364737417295442263810265152614740919900928436209507795880621216155848446426442610244080731262253617455210559102473693648341639763697717983709041370162190067620845714106248437137228705748677206079822529299102067811431459474626839601751440790104723611812891357080417811677374893561972499007149352790915523682036645581445164053862814176143159009918941185110462313028824039746253776349626720050956329746746556497777639822041034729674938212066947692719183451237074338427875326177797988100586445499657888004210071872663110927084098482008249195701782691148708532861287439631499587745210378455067706799996061762534711434281426302849516937019142548627406797066341453354910729963398288673903409837525571405684662411296140632322135950170823937891128017598285763618110061580988855114852629343137084032787956034848524606715500674871958905781722972199833354519657964482151425678706083633896667957125640268664814939634070010787398244380247024326854000392675950752330348744134195006253125959750603004360085771589215408391491989022594314246037738024183174266894455371042371814471267612569489020463616120140305268643356079629785646582190741961559856952295409019778691560076957520833698223955575124870832902595353248907444171199778680947329459530966742997155840371875614138304397636165728651824474162870114962315694427684715897298108519421790845735527730266843358800518238078314663435180541534377308322156810609925212396729229615883211848612842832590087152943154359565157576726875384630890699690580995672363131631668865682060979969876135711728069292951671535070637130781873714603003122916714771681240975656590650738342297620398166702215693929728401988294570129705452941487085375629756912599350036526032149288763327168202754037414031856597545624570252229357101191748000118933948068261150938291707942804729579418654804915727154170990003802281367273620709569533387799081737969002660867888154491149636935386493378161155299218727356816804572006678369158464930740639719666088515266184572726307131289628040412629082167669784414415314592203958451880156299369639443286909617618495059954988227536855737442196225538344806588156392945524142217691060930996157746049678180945462047701204029491975110522025032095402153258779710869573205481461411164604200508538678616940063712540302946621920268195466059086274826192551831124381948086928158048774060007466863036821166471152748266366030581544718386040854961462416451784994355544309345115726580767411370878819340700687446092100853444628944945149907045440957944413504205727809376049421735218258050620731987085548389178125653343640479388504928818409543622684674197894963451969945401812614932121873728411779081122965603526088470672147508320766124404099090586110102337038121073657288019288944845897227055932355781355515711979110819576626751773494147648813595755424000472774768030463504779847159041278466657667783889814991864587126319518549722081671152924678044481883948836261491718448467683461230510159346541712801761702471981168471087171870113779435834650268101139289298377266208556612244751295153691055355339884241619706276260118480229699086940384377861600795402431852843501323683634308056892189286127830334272406248256879577549602810726114256662213073024805623537473715459037955394119574298406740067191746018546342014530202891623422528221421808617480059630746879230902088008311006233224379919260469338046517759698071239105833809874795930211588311678776839717778123032839101754524541172651725643092206753164462109204235902085069990459841255365909269241427634634677334733376643083541137790529121421434821697641528790932874683745171055921862396610100063038073858069560286168252260964124515900778451109561667460118047948568541059791682050461313078260202966835973809355267133914549471907910109166388038053941284845249451207325504896495544741354969735603763502858413852631797631455898984047638211875107450417353474071279620478887618018451636478923177725525045984360449132733973495437405204467833051893965318894875789257406699230186600490939427846271335634326708335174386828878196205199715761510780202453540137203130338882705453826919646801143526107425767944291641453386583035792415420279536439786371814678032882626212854109964797091718471596055213285585182184155226478868489659306218355360078053291571031713988268012963461437815591628019910462024239299324535524341127134659096040848134928416963882417606564851262547672178305029396552405507581975347012727475577215462934495298966921538189164510591307510190536425946386541538695381849497132168769280729588406484682182014637376530976118395031677682431984272076633829574256225671982892708959214333927314342723495430880654622098759543647183245269005661194036484978150789529780082514607403860266873856084471541433007944385998888987318603688607055965630028860785951165065833946007652593082656498920006438796553829779553811393270543613692660992244851936716201520076034634892803751735367817035462074095511171981969497554640055038973202362504386494661884677102921808712972361909032829951925377261766885885520953852043205700743663360630083264397700595726539670389698194275192535350497633660889276775774024053304550411629967430475844441570047997022025880805935980312062786088341930778851562356468229020689624291386157820265335328270769669495810604710646756499229226293992018937355882682074870977814679182281534611833926531288132702105672203113746115757019329975365621081664605241452078141439419903261639909187779610787945054585335826425663902459820626025286082178281445993373449364061772067129711564754237426184738989423239119234163135481062625448534931640638150978569814793017950786042511368062228252686810219771192948352333773945279919917947844473628650724016737651036187085716800922847164691881133355855511565612130983730368855021389498601416896394689557733657086704018355221298399296688588102908086539895891794539568136306745799593679383127356049860839801015316476266102645448708055944494363417703989504620126685036883534747362748688334892561531911731268923840855114221281761299845043357091590836060380989566836561577187229856119929878440164798031330187425295416892230358095599517089834950263907569334619555338672651333647559431268678058615917132895670296050023970530294616931708804158378546287497477880260203969711642155241770204092149164698227300038143193909815946692572370414394298539578160141177884405105235986599027775515852618598836696022842690111447839461854955112557601168748641475223441744397200105816879300879533017003943496786710142008355215275012358869607935521403019864825703655114479140423889770681953808886910682898683370645207060949418727553189056063254663239260720561920512317501413261587024846479112276976275920259732409154422495032738749771839002939850299193397036574994834630300514756620793199521050227550843337021348754087806453566586511153159548453731098079716951999669954158228021212112568649639321629078787607265532629458879334645470161310309227344391415090287822281819822473077877469024335384640364650640396396595531136153172384752778286535132264602662213714844908564590997860403486079654828634461525062813282980502491636372965599971899329114057106852810498924840694675209071827969716981820093449300035365744093477104570990204012139220653726102952453098095580835552832067103404217437207092159580251121323149143964833908229839499521496954451651647804249531026476928629934120242689467193843517914223071104573160285392085985496679635255573794641377674829701383130210534905808833061104880332339732977295699929196258589031495422195353134752872375551066112966393561145492760276487473379153007822759813008013891441585743087424476309961452744969682010885983466337196021788431577971739027064028677394406204364278480885020301210181486450236092296962521658861791852010118193624652330436617799185259170042981466453596950959204143824820297237676819490651389494809421834469623969432254795984141274552614869307757482770597730116022600964998263308304280941917275003238658884167816366331175317646478038531112131412861178773071557940204145119115570871867387534958678728286567304111755629462207986304302544177580425243044781628191816563680008855277446683552764094634259841695954900865632802603068271197519793866021821286235990650321476792050741745932883976936548202176557665713491445167259756400225050775126174983915778744075661119641045098328736145525658185106882476219914545994383249332827675920331011759035089158356835552163211115415190264216952060313374541184848147672047289744656409065811574240302608735685029043011774730870613379884504923007093428382804249568859260808243597412785378131560526771350949527569611831458224487059938841027859417467082305783699633074079397716041636586326362764715864405708129948282788423363675888617000158937575619421225542892348664861646265737607271507543957636018941360549351378965105587228303748605890833624799890652114267228527364560878532897414635554434844400580058853577799496654967258692535277195459290031051050738556142182329367027003386255400269902403113578584032629029897447099072082956781462973372468841269825143428500330090248392431218627577003231783470005187233626696416551034569209401992165945790730880592149309998926914228521201816455010609906943479931432449430668101122207014985417478919351212767906924416988145534877791645316430909944651523824221390038191835937825866733862759099243762003526495866738470116404107680374636176080575789566277725337022373199964493522457138131774730784201254456303471154422338637352540212476399878496661187210838308926712809258698795471174372926238661968589749324183284239572571112375262657230863911206921676346649491967234853020012576056058573132490152177466543630470536941384792242498549660478987275924761684997468966767899740825765640541618791290776661307879683821121205084160701614597888988041205232286345654522171023563866734854477142053161629007332750370158871927167271459912805989874119826675249381533228347038978351753392869128950742302744145859565861344152037589971235823681348123404572991517061554796738578901694107688352993123856762607693276270236724111167273975829265657266901206469119127485023048146305458150241358505973905744787580234315201664296285269425643455143395349162073963044940931780982258608485105012025792713845754771286544453167199230426807712975487614665071371396610038868853483626719555212578466218771848675141872266931230871797942945514617324709484391473423279216516896575829956187409545760271094293909902436834560183113150665959245670141875575148797540625169108566732583020918348277290466572335017167292311218307112385220624204043815345072053574077845562338085291785344493518816101159821523302328431711635704042906759573438030763761274286977098451525472815152016639524049346731284926240519117365176150416063310547551488639647683389811514928753615861693810214757753886252704865592410511135051951734142133871629460087127858485270929225128935386690684296136581458203077423563812947449463167590097699514754881266233181958734632566521539487576602982675556374807552381999790939784051472780348734665648092236758526409797407820204806397514143970210303707233326868267188378832637708315328958448450554166295591953768967341997107816361928864772591748117201306260862546663675512349187056324552548864790618650815637407756044266558599808340336029858647386267036196273675365292136896507785113302845584266240204408508842326773435145143084953689196516670526915264113080031704889311772344130032377494912429028155602671606015551087250859117031747079338341085052166987253208853439884762029204514193391434634328404727920533461220384623376918646503855002936974442186914209129562079649961325658461143533239362859196205399030891241339581582008044167399396027138200510235285670896647194584660864144936046070555889603378779593452176077078267616491091709705360961719052108096308715536328900052960101931032872866263536737903085711721379914779422866523909343079338673036254242358286873384765842583503562300011965837167254583541956813174190013960980674270918100316912327881446020711012389915552425231080595271346645248521308404369619937541073492846884743090163479638341229067654468470485662700336947769816528822647225467861205167836274175082682505734135748303891150302254839692868076169102081585033777083969038247244937394649198745297277638233339187514522120761227827176917597877211739003305117826088124302170614914947801981676684090848489031144952887449360498304085676072266663263545067573038181198733563677867450246292296970760642186446509423150614690535546154129440722625102956624755643102393494270095445311943251989000305085982948806188970274858244531942164360936511281901626048816204746436980880287568184557046589377638330498008852171204100348457458090305000961768220215022555855230559381079683200562801947697058157133060202121916727585321861549010591941935672302489480882030569298879379124240671226780800979137774406448936441514856803934332244509303924363468107229492105518476667984651169919292461653471924294522701406411160912682560199314738852499276330454530792620094760529158402049452869330164955807451557458895586170224652920081027736409225729356521379876488766635785092871033559965367970142397339792325112333225576493870751937124283604413594938312774230711024037020851072320635695514041912915385237396900014724590596008615815224176672367157435047188471231735395143942300358999726081536898356551374868871696328729244022132140295504507478468042541495565094282990999723518976875714667953724569177146506895506272474048503019724396012596104509187667385948800682292772524291004744127465214128033317257748279140232049995102836847173159249228025747320245211639050370322167181526192152168879106675488231275208828552765182308097750486179743662830827211889456430018052783280939258107132533564995656795484041809892583318848136662446105370553324839122629738698774210413128131466515252283743302779340146045123172162731173782623488407936612233473442858216926761450279266853484213895930148584940675727550960056485020226709712512107730670842196073092301045939435507837027527182338991785834308780124490286150481921223969760145187518846083422879480636024912891325446313648072269001803418585434708110646377866364307916410901159033285753081474000014717391696178410374950356119120152336775831913208040347187818178686929647669431004473839095159081753441031192680680431735420496382063623563992912991821260951219341390019228085109029687032945549023591371256732846275922758927469560957594559556033912236293768249605232684749635341211676784776980069104597720604874456834532169573018344290198568057532870397162690621449102880311566156442301529625956463162281343563538278917772868123938635326229871880065291392221073943270485197332431896619198381917737323450959820266454163807050041580135573139502310127541226025458785321022711207261608264429886152082934169026297060357986238942812537728027711690554573569440386569330215656700461085359213787046828402589344880555148930619993270057326418367398943626294721642144289563722459256825406618937161575458520898025261340921867461218499638038522424609077094664549903696421939889745855578189480891699334945990038255457898320936052215309372032253045407247846140258293685882910981544176052629958416745213686426223833148728778639465305304475875717063597531823080887479817920396871751496337327091134436427796924444033256263253663898645077280531058010410868985949082173254711430718668219700783422173439229425600367179575027419259883458280307215420042092742952009786539174024165786399812585202486477309081012022614218615252681494752153150912667771971156386191088565796633046582940197189297628498989754379945329297889241530482843219817235841056801822658172209288672248195563713522963493634714521326862657187163656202516239538099829003044620523867831725622297231545113077096903810696844480407422460282920109950908177817797820504323120562116161763552371955152401982510095996476205346085977437596879936978247564474855231417442427454780088815393514484157585793833473476076335243628438320201696293607401948333639010115561323870325102628537264213276715896698444125423854478019555484054797524053626534145516744034758902027070266827267420932264001166547298297035878060480337112721205580297105069496788675333764302523056426490261608421126900673405586671334581174009410684669381955196130211119594358706731568978049739395286425428893249411172073388432817613922852402850327894184905755396491369581692764037535442368904879078675219413018448611210038829307970077061946645128318128070592345186328552550272977692253371003266983369782477701180139116867192712409692958243342691985646837496606038698166149490056609620743308372755382250428667829924499507387182619724268051678310478093343024052968554605585456973775623145422440238848410883953253755080779286347472114575722914503908831285958046271173237551405109260644609349673390450493358673155757668887891701879483030892932475617339629165865972715723814348018321916498270512260247993266889150316339932052930332920636924588446977321320390415550613377915570979594564382024504469897437728460597111436886424758859807299830917236799301230467831837289267244736917389599858059896025414666890476837450246531679573735060357178834777944161704785044094966399954686073108670834686956727445139747516549706339201591212002633286365784168292022489025125123435614981740980751139860341504945430118484295613181254326899435710503521300409272896918863785562407681485495431729950335166817006924109069971545436861386476697124230097728561970998526316001801212948185088970412162463440210002506325280277198743180897123619504389196570026062563146907822079091652087401885019060968155241489792558683734123280003166718972528102527065394787242617334913220125329839266431899889991878876586736526572376560708553392649483652547898513488980815943568428204016547726509126137835104852000730115468746264787873825938206711451799301210621171459298073370839731099722874109836551666234857740765955467717143921026908406257498918200902178298479914905904618571583043415916710696659251211227337694341059655380358364411819341698073012587050126382413201353293236667084754398567457154254791721773875568401648455111302941872513678941486194766172900209132518620220803614389129277717481411097832211939161667231715287594606548083114793128371579226490106624919106370085299320451014742990793369014887729372631643028542270432278096645457202122254396816928549223812857487018915240965344524623865475766152357278857934841202637092255883054329367085499589366930952172914297534113078914426205743464314190052102668189902822730069134891116344808774790332568582658320744839347344226203347136998702998443909313934097817844330293565141290042258005815782827835578313508819858544085825997748298752835456729429666965312873372980226124955146340953998131681155759664818066076452946822246194495688919047802313878907918950416670629396752100073040491809257841603984280668146438266495273104464159084060197380247755647641914143549190811218359340528714585533669946629351003859489852277912893721876604057266049058413219509022106004980979515926186873245833205805364630888399437331123549573661368510978546210220980457209351731638114420577865672954662907855980110389206305171907555131521554802797664718261005757180300021814827899872243722026453317004100292393912313804187365835568201320936360719142394540890883943005997384851420705543604392383448200227440628206170817401250595272174291861755190205642821021737726668246704531207932344224376698728778269678514011376004187532155547160799794386951518374343229238162844019341829930583625786363114275149154010616875426991069003224451857798309332426642750781145908236801780686238926813251744334142152601408625037319901079331116450840081127890914714589651666295800342348713572460816155566851352296922465675936673593169861032760881047346606455265188873316537782294240434777354965505953932773926830861455433484159493095383280939902873491726551762721832010678801388693912938365552178144247054627057557479207143437427082032312077247516080867521622370488981078878341445254333366253143092264092396361278540502199629291961653303909365958328380804030467988052412383380496769099303271753365394611969879397340252598455746282093128722661704270420418000064925029630692164520404931171125604944171435656187993815245717709517778187383434958848342403872644008336466554652127793478584044815896600973821481381743992379537450404923177024391329259260056051035621830339707125526793939334308035818152875385862842977349079115108728518192104319401687577093262041340912568776415557284704469807440681534813764200813533339233309350815055490480761039867353277740580198699104231275117548025110451061608530612601941538462069870510524971248814748299994583476283032267066340721995886322547677116064825441149763451767601568101299945349605028453226894701467853678461808706891511553821483477535263263540397728760066602944432869036156971629230646874124404929311742804062041985698523254460142188805705663274605761523881257965743220379566798362936259636411190915122025192736402123810420498852540398295733970816568104911001504013599685576329051858562795736067576023349943074545357770591831225033803934682841507925011959502775310585609409051968057834504785004918927773475782512547616999641465444875827407352639220608753127435218266971132414885834747946946192211052805602241615645316046573712909226109429013237467974760801921423188593871759786298045645614092895394257119622422446561781745603298631285511613001360165727874478672421040583446292006772078762286566027587843421661619068199083207659199841367114620847084506887906504857016394873358269328396041184708530634351826993912795410618921999695358610902639626015370410777235551545897792613234351329854293333067700458384369788305033301452918286055943667009981164809439095437883246905222625555871325308614493405906712508051814483766731307152698257292606760830273211562633771469094530711802646063571899175070985504318767935001823365896768226869019720887936471333955209230856468728190060660605630332728045915636759822244256506183666571223495581691489390195389133722787343825320669815195424308994710995156125508078079650675592456668414585843762091578715365160125685113379891459318972885229445925765435055121170082945932230488369230619783733396060438148250651719697582004150192630423889509818542686155267207774676669719336826995527413097354938308596756146026737013862296373791054140164345562502032911688417193223497087075000835764085434554541747493608801160124053733495189608057389418085917311812537115633954254385459056988481287804753785371546610833360575938546827719920390069630253889708020875061918786116604040750268618889427481647927843501111166557737770053481645228722780173030394340429672511824918205528305730664292082716207830266162899604722054879681498419428022900122109792842547952422867728481992984454264586703948746511731193398350168624645389579100299444449921228588614442014424214732183442318582134518598128722869295126097177608699157757542025940220012318932042186488120959659381642779599133423982334397092219088972248831132349726354937489006152140287370120669089445666770312156090179041019026606426156640250724508518212721168494484862063284698004884345206923728943637788834177201854046426757354987761473963784586952862872221364846158705140670251487936763408849466606380045166277744346095364837688637924441904319631030236904155178307843611746335093734053389673256035351055738326818165371065788928121662440061424925807123398725455184005427949588256835504500311154653074440559872734330850890492297465538176101669618338207822412399330631162974164876458430655594324019381686759625072250368574971494094271651611840192479576338872614179065713463917683241409076314859661552741125177999467530255884329500008786115344511884109001143312865516942073592848087258455033591505152250879248252746042412239525424100584611301287825455366878653002894644541479130501713362969695996637396352390938466042929113196400821688989217111165851833853472868092185671805263831617603608217660143546977027131310425742497900307477486803683493437645149851189479156823219015735516134061791692989722396475186536857830389113723141098835547802279479506051009230238505542275944376986282379441777672081880537012301138700551490098236477425241120243237651250803341659919761282880400341542972188929272441081579550687056075351512367957546649569670112287202247525524985448834583429588249362376730969701213271878412163236625234753803595569151121464406302580454629304920827287894618917843446834145380182774879111408978417670435653252542852702723847386318141526641111098881882689274562652308407204754651166517231423704840741266162667334041532956540821210897427313369828753165724050640251331055999808432964034047673120798891504421066483854183953141873035888155356548740352839789155324685050444040624816737354661435312647445008270966866300191837321135202505016242147074718298938325252284506982186715207060813435616328813271100793676308395928429470856612134074230777966122702850216499628643558368646754544143313709159144895151680212263154254354889678155441383005527532033643989332908381331575985701533762536673228783957765904440755292386454947941374581967800222359850620533892392085001769572679342557330714846850065964350147066407727993042657775293864740976342664242895279593469781545508909959570912844364637750259386860739305882552902986655677414338564821179197326111132901053167763598403087140359557832170723159846751590944363021501063664374384469967231998855369460898593553365705758027120976211031134343126110273058413926766691906801326132644814180447973633979916622891985021060356564292745926213043296327186708515263960471612702003539923057441770479491656917796778038016206554177556514176362177403625401196401384661665992889331983738963401689489085227115116473943047322719083053685940815015786137667507932933771583680105279809703428103630295853693675284470014153978334383915127406934430888997217930640746398345737991149609883770634003678463258777324969179038949135161199757540299836472177037626475568334091479177831769205033117570094567419306546046756648568646798944209140725958069984671661992087231279948458094048883426941155511359812753702993776701283226832461759609504671009466552163889082261941707721133284980216918011954438478455138038207145566996576713491255430373506005261033385587954244233292598879961295960861332311277256267649388215797136156431873836000073802911198895623599459383085625903599491871856089997684378617248741150079234399036565993785281446757122561530582603027589678248253955420278994539166775974334324042118687335140100997402654505319431650012133887662276334850574863730708094512101917035302311506260780540143583068636866342233392961483214850617073079935859156409480562482863520572628981839915720538938841034162262322784783566207915516607653580173125093138951956238197427371362192804941350073751397904978617732716192025596146456425407417756359623295955309533844495688328176265181943477620027352181659320499512487109567666830069770417995006588352101505397681468897395480763797083922682846329263032239394126455300475157793477019875973510762202785481797822672891100841335587604946725856870396696595322913412667533256207105529149046310703650573525714402198088133213382603250705344350047578107518414958086369732319358960806120580552632207143994265248692720891135061472151496856854176830326159425291744105349208576493692426082964933071229959481245249512730439274606755120789332146007452534775417065922736112428297279500672575296395094829935391443578189357637468925396257018998127079747572502519322915442390489702728291116634131399558059056665328192266741882604536744958378027346257839398181665919317860850366242576710665601761619571582836500534741119014451980368853178803372000002073275275421984215304891299658245725383444869482239047565706208696259246635796718375955662434713396878905690311835863096485289944125597908940785396870913617124564311086868936319535114371090793543700777641334442803405748963727480115622697613339080911957083815350738648900279736027997700980290518403378091650572563536005240272832513853100731647495318357684310899598334770277156986109704352856852623166810240484191397742699463352572691561356968028491599408915588982081794552479650744128391754169961710777259967091853457381420830804566740930439069899358349628458934057312774001877638472343672910965199808353930595316691388149845353292013427961954908481888171010288729672236270283851320635293704000950185571127748689267471724855906597807192205397187280485803030841194543912034207877049413974918395260383499822084727795923922003561814266760416431301809530592806933328005967069342457545604631266336571333944715321635680744174122157466412879664686330910748789264628253150655386471993389503722162516630276749893318587987246142344269451313445158259633466137915447425921992994810210067450039225096196185693098450563219711961868714187630882386386352824134213742418832599448112417708425492936547160973942184946067545061548600158583819187333054323425915888292814125238426629471288811283719548953826349214704215658421264225964694090039966326266160828178952581086228971378792180002568409165612018038389647886836021240329497327174891232312250359155894036900680431040055120386808296378135641780611830015790125262620791838930318499488491054082811042804621070473073146154925785843059092242782532840468546843087700713731970179589368782386692930082311896434191993513151871261134282939854975180196531671058983492556187824567504708323371924998889533967408567759962588757750721811688543781730635205635214268767463514969133730038852585637486764264482177871492906992895432694074239001014185622028946508218103033427646692568352609723547531515505148140324359510891356020936904690800124587648312696745564712129601744572272823680573809233362653900448019314286791211167838714456713887142624809755432435898113646441966700464496108540791052423372479008170308521854473842440989144523448870670801538417528971379447825611577793969115086259365245688074279199352303223298507065270228967856989529664810033143390320237274498292713407440532575246146893057100727865055507820376763040594303054913269616806628655054869964471709156918548700700228507699411607311479110171692338225977635883120105461816657560076850175134145324195667143583534045048075502914953307728403352388289192602566338797370882517991178223926727151784018107823465648944582737484057318472698087810788948671293961530248668797844596001487696669552381037782979472604427670222855904151805988489496330302271282164056680976426414204470512216982843808277776399880226203584794663483788392774909552211434707420113310555961351426616544993117956169072640380012923614591763186629827831019882898178532829137667023486485325578816761777782409920447374143447481099188747876813361904258772961162184343108351004275941288569875407569633700678768990297466099325728809944174854287814352069738674317297838625128190392616457774577165453251379058990737367865822154167070850654255271434009288270680806117041150956075377576601598517026151571337984992981737853108886711971193914378562411737538581286684671616835339777884779097130405114215317168644241680379329471312402607222619732526329119384502103615786671582123952613276801291192946431554383243837299884860421164544278385414775645129851417989690099739560683454288216688601735338917143942704832761575918058043596869779989592810277541731430910520708819101468950456286254674219984805103540087459757151540351301267717737941359622742213555725762116252625698995095358349977155305675457590604102088454833093305495004163030319568106723767301514920054910733174748137405213541849233443812394791379362847737357670247831000278780534900921374493671997129758667965372221167988887349493168741225742086287740002962694639816966854119796618783690113852822884926992299791149748952500537289922442524186983401078624122481101452558873796228372550111136970237997482880829295992993065049547762964284504828510100188213124175851507017849356567922645338335751580096322772910534569210128427194648320051345937884639161051392619021069856595606336770780176522834782693649063317494015171135516557492946466539747931171571216451809480725802226489379859509734330388331415435039154955957616904527011606242729834080361919914285615003061259228706812774253157184011512208232145869191112174386353754211656240761244938678983545764326563991511074357087170578095372877595476862266198419851671303263641191763584872637860831085247617696101298226527475056865585833607873784198468027592047034673758116812552503155528323770804862698387844861204077362170403902963405029872345762293402008319200569390477805545851866129335839354590068352825824538467756892857394641079298148624581346664139102275060752814997862442708183235005203767417328699291366824055485149599036658545337685696796645454889705761822699737735439622433846315671910846547199167151381814581946577287499380087644082381377350906392617778930850773072081786146318355407982339766126822996827310607065202087647648895234808523289905194301731284980527502378040524915221536655751411019996183789317769885494021337628878376415500458750511245251460407918757630682913192483332200957450151147137187679847687798571479210366565917887669449439307081887847524008327978133240263620720817227756848436652168939292618006978175013048620936916492503360053469412434351138048121870952072191531186076983316328083363988110824265311944703332670285669260880079271965667916132217639374343541135801129472567100162830606659145726314927927637413936021764912012247789232927821781944364974947439386543741408861872721331099488208627436875949640838366561729245523412559354813320575068657587090644505799122373022846467308294233418612190168814123564059874663283824806592939607782230121924034612056877872865744242385787735353426611762144821200953044147510827772588629830748978539083492603116628208064818208118319743376985831820775923168995344674589271636808893683871540536372281294365700174992881903115569279427813258909871800908020490797791812980439284371649556189112699379878897817113149668305200900258691408668028059747818713424213802393029844359167812030370097356524196907814943906117666672303896858318984051296937959226655002536881864989917803880304590275143985186596894495025538099694373651108868009014495314651310041049118154152397538022829239232897291788778775299868196678061434963073192301270355838967997596926178422047596685976311946202557457675582801844310943081211731860468642719000153005604382310415884043024578812283547148150235123746449079058268852607687360495699237045434930181969839968428686853588708843381220797035925497916815995006152195058952520229224405386736271141134456513257231198010898393303713826638405371549199544218427023809688178037689400243976579700141517374017163543613363553159772687895887589536366531872835950792109822334826767202545073273439378018108975055891213770720247717993449295416854054081296150418640962426977205801373319357312099361139488859144113357563263779270487880256829697193476388175083701085659585549599968191805037810209965774345006615419007412222673283378419044661249804407968039203804257959035320532248348593063947793965045784810484697123214775157727894089762354174989191577966419239452689548551460229583127731692701788646732383036992013028423765257612014951581560057923271408521887734114686005348717549315307585180484186499985626967246614332669059375438366598537448321065072617357500689222234239997011396437016111344054648747537215983488956044327805413425258539556602257744132302409732866435866975178740705816813598655440060747935420860900271112918878926863052107307789267321264765874936074684296887426562792109257026490733457130669289822706429842088328924155562437616482665721594730659928372847993342416987373765777859183601214747697909578317211469600241100457785387796922665598817802927429647123490239216315182821971701452296603665660954592060323560722864733286630712359911262778723690700664516511558877949496493727733155691960237295834495607109526073254924121630205922871322292743522103309746281461156992720239503657232593089033538706437939308584079783499064195593868598005664047837590496480994832266891226370631350329963369246698374526517088954194314983711185128498740307566405092214817698119935913746471340521810719285783303859981458911682752464639096369507080881638539674894921266689966956284816990517336711031458018662207633984084573062983994826610757485135746239135712228758511689085912570915136339146683935522909113017901599897958434214868237857804037700687625929150794517872395397887574442176958843648317617417441520497945943561938702175093405305537653776277779462818580703431297904356767815589551078530941382688897166731413136213657101101856320043185177769793337326783072330208524393067106207316365494390204294132674942810279738932015746045075632271055835214084456465201168309379263564038852758935077455301827413399841037243067931091572920684834355307188248917709109050899476306257224977514083767065324954885050255038023820550009476604843457558988582612332036000839158396406014345278481862732057856096319684611823989285154559641790898810187690801578861591206361619399423887247715756982411017132530093945751378105948549181658146329470186462137276508256481748595426574432089497689653558449714290778790035813006759757479940054146373653811624510489771966546567801001416606291604412087409150068665478046404682759625352817274423065853906786639481761430783476134381572263909599661212717413214676871090822782053632687234632317018114837503285466551115426194915853955490931469600741236952900551657131752791179058436858792348125896473672401056749538876638945899785273245921526767515434353487982848600174437820320397357599621556178207204248447404242201914736582739945025886614204799301436770829581603360598337633880546535514909830098685782916147431534057525476694961724077768699043425688187816190483553164347209687815030572437509034019852560565871469446575699611081183329801603344448422506199666984549170704890990713733802312929367382559463790540460099051581508892806942267018854549431414729219620843703276390283995299763340315860659492029322722925620584613269381523854198430491844354946646583843507547287230253131077898320126248013078848796084050319174270157465810951166749503723601096254825386003720363376260722407673877011902441829055331362590441949922619892091077919693201395114036098616571037080104787437361385750675446974386774315378964913088824645949860087300648872855282882725345846387179824990261844430359063905160889561273688840534211431605093335065590761971607988610867947034103621282510237424561659111177314507634566276216753514837906682492127911874707401395988988735940985197729902735281010515532402409841305139402835579935513666502578717227311125696213617639467775306517073447917002980487174344076813890915481628146423395156358817807096426463401889102476593097143877999349895426925298827567045465442344234729979685930294663401404130058278171316518330894480353913960732518860846275685595208016534989651004433697048560592461133361934317112035449877511679839734003967192580284219926607509400833951561521127064551268579703902900034433853626573994927307987381727297027720612045342168171490967412989260604422249157824603647038326188431459526160000770775218691851680572376815454883479173488396725955278236602103593117828157195409128521655595391132858265985224509298811337619626509314150995262010968795690297099072400304329142838936771557898338419033332970762428486653183182758108700468558337680451988156855488638446452310999574335658519437616499845497715367237989420915255664054932329158241826370273365703007827727334054309756024531602391106541791441776066124912603353556199151972238708021965179726876527550510968011004995232916227891232686973622506180823246632372772783432861299150665772547437649893562451653029486961549180481539142767734859775647998206014236431043228990384399062488493894948767773116084044284792216756464583499317010174395471704276571830989748766195812422548211690228497838362687635207748719156561380923557182269872533484505947406311194568515834111003440433011678833133004312490083958676050508336270840564574027258513342067160410308537818325780945309626013822161137043140128146834163865089757999093176110754490894516305551554547816310652276804432802975463268139518294080558416549482465305733128664034856008510892482813995681017273208193059400531680333123029529961615070079593381809114188671848307916517730470679652725794089685909952709920682823679659211627895897877421103285029745838552204783117075882827776454359991152605404238621255374211749060048720746615711901673386554201606249491245100227804757300678176341133326900519437551124762702746525502911182787160181990210064161886087604710435466109358532724259609152924662938312860138724934251350729526048430390972258061145859506535803260013459662218376301723434251489791197089256684670836019923447269852997980023731266832473515650893798667028373841439069136350481931857647325754695193763673228307670791504131083911412114798605101786366983541915691576470810633661153634714845068278819683753321263362617082301639613375496591671393779117146387204053857301765378146418649156380651092836798442501447480027192946174248783829598846529382796250457169673167486361613848973509672689674150004177297510391823355056867466970949033829087289216383460375298605171142097083116433265909391270233861183248997198302623513291193919216825654265966356982387642608222608956748161004521108193721109665897940549940586707358021695707630039865114762666817535238088763167830160507846964555731760398525654724330917502832618574045709518053458198230586326641802949465382128678246912451361010023051716216348251355895268110007917085579163497631647037114969944729451946095744400962287050144186889613774036754653260939448407083292625390699217840983456818609251211123388683359559949693441235972796242563353191889462045885463642384221451293096846961307264509643829148377254885628286988141598415485897749767601706133408664557022765993161552185715237757851259925706470752989321163495173887452176007164512784198344717722079448764598097629618168975500404323626235811665278404468827096392179024341334241336210677985493244625453404244460794964148540751969800157068423271204114745086827431803187561440789554172463129970262302438579674211956572393043319756962293142647432220777055600026928960726878343373164329411213800614323990956803859469763132653615827375263700557016520165978170296141615378269110643018896651769770586826460084635068726903991622534484397198302591021033223274938915066560891653005886631989691372344930582348129903224282978927380323119757256686145854798457474816395496294264301965544738965973092057231862994035839916335558650597337723003819825190157029462564001043485679937730215988552995815227972038321925390166830903783731234425504187214997598833730762422872919077186571368147334362867541290331029484728212462384589350525117070431089586918565474201055732749246290159408397770352830269558813734702376173917241864276543500460965554692208498549517637417640865583265833294161665416727946965427673285295634483705597065854089329510399528286063820510140203023729259293451233691054488926329545180796480868222574453873925908209553960278039448682833336683759253497042609026501524510614368604357662305698800988381710916321442341331003068661303042286667432524904754567047501364071635414098667442736622174200379430268005357857403481482717072893514365148343914245343730319981526733828280407570025983799927070837996448953067171334198938096461756540922580803743974717600508765037582208224927814834123796942728658437099779349501732419883348675823877469193322043178195866726993390823320284398201061103846052993077089482616828615065763091837977998249139638542467106431276962073931334885902981147050811754131264294632501007658008402893717769115094659620950397150497701915185221206260770543794209310743402036950814745619871002212722185639538782701186893284752706128421520823414893433390613082405291094566900575264128100581424928445521543620561361462949424065694246967495511913893721728980166222725429656645224533168369372118402359883282993858134401322392194322116096573940551764805496466009447445892872408433059157181259858983968200001382667651921232315405370931641929789339029878560616351969227336162868792074618234359894256876957552271236153925866393855604983612128002398728270077145574442833107330974422968266849923144581447152718401237831546508927398823396203239695790923851888055516917786616080756829948850120003100620717699179330866120554708148795797035488398682770081129634766010938778608306200290770859845132029018084886883873480832597923401219485853649807428203772059638485647066887882932436050167663776463016968836505961294481924641191002338043676903028416922465214201484490684470861779589317130955739243725375080649800558991473655090154255685346509855046368544164177072758523079339573203919371653552182837446160189369717602595947451282967719909109388507664562082550860737218929472778837704279963844870255552149747791184198702203350607102078970038487924026371133784332011008582862877359636762293485839598864824175065246379468463572461875551396093272496543612146367708399160610347186065844992775622601627303457934617567374148372906736083192096910395601286066196200946326357442311118483167935166551490321547558364180145210507540392734860672725145552984629524750266509905343049838778678493660130463499446299650282156401592428237621478734739108749554957902138305469573725855353445902352901311109285354314970993622813499690246861950154276952205067908528311284091545153389603092289291366576355679380484317109503589232082350489408111910728853621626516069740191127583543785978217706385100858059409162420905263548133609018321196148637754670782203857738879978776331167308518149476230453028755457186337981293999007050350324504599245968243174908829568293888467343763348584535562244417148767191510952853681101374033705058793351775561801747125314582226218413553726506231321591059971335471879458978939649535357667055918377077834545101186154695761768466996016979678117716669020381775433444965782453483272202800509189495742505878638483654177146413457937224932083204067964755313270719963526396410992044002440163959114636797081957257997143322898262251943320255680621998373882837935243699599437288749870717083889434988317066755694044523614701262878830689409380399497764261154958913565082343035692415093451590066819876016415017653826672251944774773282724116052639253512864516641568493858421554392786593651607140647007496456559074065201431832506748232024854381582280049661738503068107289795325073274673860181586885529379115306504291719331257342411422540629391572655312650841196255412515983025126140912771148986170456219944309659421015677558788392264824033732140750173062537229784663327649559480899068975678013414215388394244197244302577359821830194509566918489372305992214650880387967540300014642030463049635499501057883663997117790870198048461538013846341965675118407364824547999248222268649616939951344351601805888606310642085924853590910437661441461559350523432032036820736913209310031603240908861537811279123043182768489611448303662220806077865683487626874735180150523925396891536245125547905700112292685500579333416984944568875110292118633788593369791904408036083767886420467109735219488723626067475476113716925035165603412128168083109243918818682293367163517370662751769967683715216957881209965689107782443803349736289261211428795659513960912073419117833990634713009580613232275993028136814074177196675180605678296048632517116300756788734592527094938703495189722074744906574149717950811481135749785706548200798017676425069227791529635246954363424532278402978245759833876932550546577824505043237960921105617098968332811995600400637717431885803738642086368140695588465997771294117668022326507723699040361462529179931854597794954808263218626539454108598572963896386824440322450492254873802069764446915844397366506098087681326682251439563392581233967742483820234551148688776814412043337119883782311003951339297688508948833847915870316102811177187105157478020208100506013491491712505773394368538079934255567038885595900044459780447692841130671080428752308675446307909171106989016175537212097072010644709469758781739595066345965410532704009180248169586676264555671370962315535066799077160580735777923609416525787070001409852755789696571422606249813660526829804306476058866993737396135141528694547451245019008614723215084397621898127768387767185721141899375305844509933966585165418623809437934998223500906455706553715322639195808056480613839751264531240331886620926365928015158420089885248170222372557478412970126898002597145083040066768383301548579378948423738828595041384366216071898590632446155133881258417367676547390015607764227115667487427267849252517343438468712690162853173557849681295403801402104355772456991630003554157085633715073585341854189123857440759822963585381587885030829466071537422054873028631248578915271859537101705561715995676778273869941438202259795847233294554640160064547782598488774636368750243350386974316794623948079804623676330424447070667931460600467704548643504229729596461970905316156120546375938762390782133035723022306791075409378142367172216314138445961979411634293589837501163809586068114843634109536884383122021701204335269261266156896185433264063842549068028817860260955763976773063225287206571423813012361754183070274680254940886057658487727013232732638522605498669988779320412428626378762771374325093902704379610428766798976035857872966858118747702626243379115088214591114784968714818268121795122481121183587267251344802825154799174460188812566655731130697138023078392088843835608406599492213158811101461963783119950742718358636729083079958817870699469495849912218637711455080279053734301232916752749886812727236759914052759476219239639756198908414381665470743364247148410456121159339100640583649550019391914331899700951724554108605710561604832082481022115640517365572407594501060828641449819684539633516607267856309627642610939372701477381032481580979056213411414302067713176655981262119756800662694350932579735616386223790565493018396558173705545483486786938698647267602655862659878043317859083647121932202431399901714610329210707190349264555452293541689084432205918059980557520101805366850291828102992747853001825738644669551300397818681587012303920920277207778255225764335950540073414145126389807133800478255430939313200121079320315395755970844415940022157212176528238705366123851734778734868134580769335240077200649020392792590624810746612322512606490847155902920308018387599081422930925795847432142766780170857046026612002568996491337127205378669124216630415876025375437112081592004598193915360523928217758399285756721350700580029078438114441939929729773414914136097409369265527158384450935572069456693736472865587962655108375951582111908838776357795513159610159830678818249306008459242482478983543158202827393526880122865084342386355849314628048620744890390149143787767348092756054662028830704263147378218580660874525666760389048320271663699492968803359731412416236372349016340125155180281350274376104145877063710099721601516287674280134195365289249111440709783743780984085793332720195449815103522434937791017294298429706592265333273177918580314550144804251392635503540206988755508414410918762594668167928942460361190398611745164149239908986169811621301923948510373625740335678464395988620605822759481119372498617797523234505374296671273873361962255623448473617126169049033002093094191522688097470040118094573415465585710436725386595592077370428807985615923146995411009547661078665687552020845723618425805521368235596917696851143089940564866356481675927420373630198464539590895056653435609155673234321584169893109430944690528898701835892782222170885555414194595406762656174077374918218524489533113309511992244928201766933120524106887392126337406307488745794115182929721863596266498916586308702819607173654200448932893688834744033441458975128946085278620245581088096337479484571312708624628270944686413020752247588448455072220042421503854542897564928567234436244138859236667361518203090168605453743257272829845804789930601622551217396322855232361202656622470976244292635639048875002169044955539896349380478963330241721498576091116004713315872630443538561526506194706921487010758631185731377717989666342090421576795835212610494963548134403380400232827120489259529950000147567142698097309890772936195933097847832203998083145369257905412753413449466028418574929013683911964731308684908347690269049617459987422580899571434061656484369165451517825483017788450714831887874585504956414340541972158734246580481051630052603299427252390961947518591389123903006585330231676453770674154879394068214806273910025576300368771244190039611413545418274344400713190338480519539067437668604673720223876689515170857990463669948864765872159994145444854005800123633716197121317858129567361489404414422652408051755422246069313171729539507952998214460879579347857431236447052743858392007578862465101838336542370857950148423578212536871941404061515893024888924450042541517462587952332255222388807265501161439319316622672291867279957146987037354933374989443963676499800964268145857749609565996294444186052815420233619318631037366904727677105958112698326926890072227774668180758960527925616676531731109595481499228468428623640500056337115755233342175090921366964925133027286025615104130573812363683982569561842309805817114083445614720917827273737640969205742171547379624851029574054528951881503959568423494785334338295172674280030865669608708913860729674371577581177083156643714830360309358970139200316929364716101911289143267163122269411440054230114242457066092587781599924518821522269738815667431984888090718682117471399369343269518962434256612819415361192810549262302756712519841504556738402414935212641053808323897282798933052793366936458286198880923700260416356273547651333485860476470966151795049887413718001185501667500895771570442157315591410426738190935343982233984173814414484300339594034078226287779013877364186372055195058428800297827585357256686819688590118860241987964772163338413006795757495504708090639481887197811555899589808379907264211449718712936403181185701379736678814741338251967634132565828961448941198925747565026071890837236375792477523763586314991800424740731961529292083795261296883189605225668948978084235383751267429016457361475681838737585250588780307956994656950330940242222991316598299167870713883586913132175814897479494517577175032680272712714417108664368872036721451187830976593833896614585052950036806286543409382079361331726919013722732390624187920693276887438060481436261721383932913943621325997336981182768517091461239655165412192983780402184033302865843893169535237513046714007978905611660556132616223172587511669300888128558064078699534143565977967800142552398648071243801038355726264082370426656952561310876038291877672764751528758729955672456274139255021651855989898164502409581683180177438040796046036503450257715257127636367583193764233512813257845192864115219154154373806049531087619665597468781702652783337089754242697654289081625581856875790040596598503370434832462831905038646223957928922863186377818638928470717692726956366073442843522806653836527513885627079311147701629047039150785498924010512390615355722002210927893144621521615075773647733824146350736422833270579787211392726331671997561485239255564453241151098292466113190075699161073914844898145087778833188023917065309133350561110158628500811900955936432744869866022684019930194469951038726966158320998129281664617112900488959711228480251076756600219864756547195081244308323145994252925119604053795684650261145793092396383162059475726863712548939519071857273269571098143871844964196569036203078694281753167569813737931420748622547356720166947817152974351302336339547572703961902284553067316319114522259043302546030668128868777161836495501391835861957832633985432671479433429632565873559587285417373065863423596060730482851709444368039047190016062031917339205766656838092747577856038915101154334486989931175457912485449089511925733682186368577002741859723911261728062253394802504685213028552749594798755751384329413263997743487812456306298021657873544492036680045520250474845292252444428173204178542620552215280036347083375928078208854445779472756285250036702690311852916905283120459864819582137296844892696447127544859858403108068208662851071043973598517693696715365855584602581260718498513363379225551308965495884059120029165341542057654532515817490113240789938437993937671591518700987766872619137752313799520222343219951194127452744584565458643359891623936029071791104023535635681054586110958410558643704657857562318530479461078988190184007539051726186485314764786102756140463971513783377364260020928213001117092413499790629372689564335098831723195365415327984658562404694573205072527639842938779504381393929613084274143500513037717084453750617620330684461609547758752672030314247136298572028202635184138608187013473971223898405840797811508664579375665422714452444013456967571623816407837123945225527384260210691290382044294786496331032935578945983867256479673178661202709534231683762075403733287853838285809427601229757779411463113917825908704384011425770819875719435516521812807356792860158049798315942884884916965835309304120950750574736204561989649228126915144102161294074283285465812040188217034500604859680498781079373088226437328578814503697546513628232917919734515071807808318375234436227249483230685234376817337619540169084564581417431501944770091672650820415111530259094454808630247001882062782350831026399180428988678281201618905906812604832509273441713857963870231507418136099295393138565015326604350614761605669041598301791636527218653760286681364491269513707933393987290403113571887609535109220174431426288841699673107762728860841897967134953864203791604170999133720554894479707071880661254757893132929625903972264755948446475904703156582816648338907753050359796352828374817044080448273782454552972742549238276571846840108044376133358383287318220422873103442576146307289713343280830919271454401511157516809869905268620577954266634804993053438561094308054026142213536661618555998076070154139991626702915461596510163900103189919099034592278810525579046465771514559367007793844248794970087028560025049172571281325588019659111222289266298177636336103758928528498660934423083908619434793105346141136575520656313373627512892547583579142948064658369293562166370222667449054808980978427913792717338917675770641909625578376922351136282129317607442472921922949645191708348787776770421785200898814733466478593988827158048256692564740819793949264768839849980955194488655151731808436508024821865115260718442912261077586917744972171969701087265965134832709478891096812664969093572052329236854593314751298998713197808841555310062370623191713298783037318988118371428628364687134635558094919968442394562542102407055644141817467874168012147536325656192169183040371662099627858942841077632909754361701733265716959711215883464297034331925197907726390274297504866855602198124329050477200647231548057656666058057875563306985032233406549522942095348194527302239994890220340156456394657184324263422990931315088551967121573710677722131138887474171349993401067119896153738954462754651721883455585133134824898617691517044068994673462732214877130672330539487431289332911827164701087962132600816856801936569844645277199959627224146275009539146706182154239663784391096960417597822667464461533394250047437449374219178817363215210084232759401181356500836610594787517178649846978468092394187194384225782193983969498512153592616357983894137306454013785571404249735593150664081442507634340870579252515424191886189280148209643384425692310297653446875106657509686521724277229597293300046968141738536215064621110588615155251304540537605813866112936199465337377850555796120104663674297314830023076995125471932050163142569333312409727154325706586316044181165409111984966235826563730117572222794041340745218100008193260372230879865950637919012188669638928193807763573195666953456521963151647838893775420255843972242511402525351524170342282694789229326361304039204514124032472883911822263458537076396597528211483695758191002518674878498727529771754655025835199727528726694828424871150411365543391035653420950715811211938307905504413923802755692750438507231754387036463627195066888231083243616282919351068443765535291645011453121203110890718781580796661279736443601860952008025870848212471958078342106482989466566789256427032638107915825084948385568519795810274159592173010069687725878760938694441601050693905751015622835796711082837388059906303404000729218404894503215078962616361927919044081553426882932856425584023424369585566811656986361729004940466355092069868492095192145370350304953596158174666484589591969693964950340867683813330904589238754709570586754276708935465082468163685447820748566113262946644982503973831881406738207186909243354916695055136770846430206040152077277904935683589981802465110988734242939012499818477089368987415264550945185193108197714679643060845388698980475637717473425965020993916524091122589302712479002552190329198713870563575436233677363628567100759955742047144348720821860835083582729892114407299188668429080014462104439230548902612575202213878697648285774453682045946390352132693669269906366661106236596151055862577326720356899965014947186464208978729678971351921503605705686636668933922794850228040470169640445852841352607674311107443785954829666295893592799173201744584367839993508462700233096751062427052533698977810211303920464468500927250513825584963470968889064285843445067347863592375981944356855254473062063402917371855063334788884735721604210094862881368173299196903182676437634295182561473717168962698534843136094624350351550990101292228442466666429905474244260570125556695864455909014784882845016280559199948905084387998603521572707954493202531847193967352612653414391600114618027197631784101773798594708084190515877258263351455992722669254857842657506324869018742877944804530361870341015927799459422653413026931220518518363973048775302042697490199816820064675462409489568958665373385883709832774287706615160124355784853864524785256876475331151754841414198908936196100330278571398056986662780516331762294127619747038432021727133078529885790617615735848364272454900681003158051436440875898222565212604289577271529275327916826161534451057852423207989408815283472376901772263198750948634342283044854867232449030135723774165250372628999611102442653778219770958538837283019630763315079276674429309088920298078580698166723080029780449031006205642095919239614932572401792680227444367083339461651449525386643608610902274026521637009412546447972671092319935069876993694519946064413378255211530552205866236025134735761125816097689431581178760762729611292933013697901308531856727073135177052015030023467505464523756132180149122791264703623774097807129049730810386180501122496198015124879801192926222248075711898305834747173509702994700220398373031204172158290215417090956048773454281414971966355508412614042194417707048068043141703859298650927307143272820120494535908065462184222396550473323948151830747803089722759496648341008572216756083675821868563060340802177432439561288494210208429783858726098754624339283471264826039053202420892520377286897279771186015503592393246897506318965448666436322716359642213184514704520979380722610550702221144083671777835945431206273308006327786002557831217437959857420226374074304157541029532942403255689616163522797997167633412004072333334327027770208521418644421159272774994245265587627597569343401144351575550173863290523188214431684884591821312478020929956423977807225865132055486769230522360619565188694314732985023798061722612476971633462735948977833498762888735943694597939615627810916058547564618602868556748252205045829244874277936181155488687667182849596857943366317956682400963901074606748563701340606603523004874400528206612400319410721284742829510560339061375780417497649551342557428497572896424828859973021513515926661947562649721432481465350946284151843765029727305901773737532379131902529154506643550237539685645764431175635601968267014158812032372123714682046049803905208916958753731232088032464933215576721092419995270708961151713700526985731623689375404577759878094699746880656295740627671766639033780598161670374927986221243817464877793833571898517479377044489666383657983474332775476008091571374077254462104638491523769557125943691789175319361537651969072623694218611034332757764968830362738755563313274131178905211444646533369769673215273639570974553116692068065013890760168647254486815168279664131758841005252028894316413944991680038476669291886318914141133476825142699507900832493724145697111087963113360405315277328916135220476180860271705365353688687310926088809621260038780495635713421367832575209224941575062336409594221237793590278892132664374979465416520163983567140892504075456018987311437403937707458538070881893132794630009655631549627871750993195294612453741764477662595815568371694436444875641259531802343191534676093578894609342699644544525528105002981765479359343965671635041558519972761748768121728769907566617417056322530410932723718019291812375903649027845258730362641378031145026459611332732068846401883581385899938174827140576466767083339921325759381082229194593470350698056521405011376512631087928295583841590572022556178157846471649440994363191855879681921738590671684397805628597578661969348291614506140532312296092508399051963957604979297366815497090287314891639100606847020234391702421332939191813338455422654775718927744509725087026062721884485882761146845850145957820531265999630310949525617138343133351193592636897731086273961637962691178113908086716755286741151025683210552755295261508753023488149849968832103653968332339865718185025560449571162599946270420459470877321709318615402410566212619093418532047637868544570210002044502637794010067075459865251981281030036137858638546248797093384943179129129048344266530378710685261756459632552462517979680176276942071924119310169540414542111163408709873558116038736340480874249078179541075134727008173537887185508573002633050939411690238312884422782150188190917193649492893451480355533124886995739832987914370439261149568420453804772168070878136239849041625771413663638489174969970094610661208820279472696405644506019116679599353707136349787550290118668929361191037595255856513156742324890412338930328108001673732948015217911260578964150265747323722190586116657466510471591018708557273398899823021979522944149028187103168808280090712124620304396858507511633116378296753308439037502764539356920666810733310527469748907422374192392424092878138450333226283641483684276348113334539189304504858153983356214078346433704426352273766978032086765321788581794393230591468843448464516571884597863823840710871897423976783718132670865585953673359041452190662784250054296046238300139991228505847396057367574744829873060038970513416802458352827695879654085201198652632217068779029770322156346331311966073448590019363392638262787851262408933258671903755032002163756937773809461638642546834438697360439109398672061332404459736913919181219812599452951054264510674980022566458672430055144982970226770971836020949232499609065575231839752583519076554446662081875296382057690103181297536869509387085547108856709871381404796553932421453540896879872700059525342406454884033711526436609781345926397848519887190257696020702203473596319211141211907280873970197479088567045015638553202488879036082297003807289733507746349975515069240234440169066907981895802453273731384484264090699464604683094512758425079497833348452059000509400854746484315985584267399059288823003735150343246793591276013275616864092462931127187580811213398451349502649341273255879149673993672235176937487046941049346933875175703490400122452586916224019153899226035367216576393792311052808085938787851372383763088006615617013136813320544899335599760422907940234413937171878844113759574208662358398052998574503834629156495656860121006652413213632636092313875512821664296715347887394837905916186063028257512544032804746948601679844028473250406360817255962151685828486635847480823505607826294502998028022872132613229069059944033107402715193422426868638037845919031242175630086027375688093611519651460128440789722986900172893057968012832544486663867924540382827184146620257077664337497431821169831616880460876964709894412569316502325534377214205108283242679331521739199089418879536433418304653454874835210384158235391081432771373837207943613703747408337544715649280445155432599194208041069287794553886620234743975375797498172894074732306358294129028151646572131601238606148658075678198132984645159996005813010975162535967653921479857619000684238640766503896168518612119977356894221285405255889082987161757444920709536323631798468381949664864515711454034237511921455751435159145787724160526425967517237446929881467643610519809607392722296298287823965661568180668865721647227410458553440787384521309492362257902392014425715994908107301361199736832723594532910608463508174082552105658616726735499593932418120472399355104943348228651753943889426024975832173524868077332111721226188014648210003947317816881376129834529788948827307136206809168134464432549274437738704468186877763787939837396324061598944774330354778755450837690208005902025999273515795584674120357888228060446591496776438933197793339439295668657893285206668132044444944757233355888135078427393785651523607257991469591562378703367252383110931945130576763370724330990971003665094251047600553239886635803708487942808918120176692300727947659472565359816627425566724420823384073888017806745565340968211261394130237220897607961806957972872516218228560749048223413724831911005950328258697892988898007028668740695613890932861747559871370701544596827976093477724502378828122487341754879458248450576366758388945008004617666536444421993754662413671294923049954664895253386313715529903241481974491143884755671141344734957587337766201643770837893252526769623668621470344729774973395084921807043446051910101266093795769330969020158281903008246771154934829017260692801506420487509507845967924436463807745242152320413917305640390475932336943737223448934670801300668052288308643763915547366534254040581317669358298545292002424169708216716937059537072271472544205947132684721602192455923463563343232832662255897865311026570770925426230182066998243863657561010342555936700139845481992158199470536168243253721734043823462272709482226015155704400016106992416941808399476374608196889400890589312354635442582859639850622715727412305226135503491751779416626558895209480291602758524443448889524160454403510207441645044273699975987420951061182412890424996733533974311276277882034445860714082529273330734220348483809334605594972042757743538871857087969021316957034952847374701818333500443578560422780133499549649582561607010315995366911501068300155295673932668413803911821285236459367171264314008806177769075642996774576538896519279407377188110112031394713635412465904609330617846505576457610357603851522333741496669207706092842135566469301205219568215880810245802583456341867594337419466549319218743642505837653709446725820292850865847756166693377074866081549925829933722476364690161127256481880265742824301098180487092338597859077565794473569991643830365035400622919145722872987489420841227609332853416666096907373974002273058591462751155287564438625080121610991058486498203518217973827473063515706954501341982147216826294263909696282995578924713046706367152550011008486848745816870172983041212666407261340109797259273377122793000151169069302042109759393420856967730772460950603689625281620565818994965085661843131177996338210884790958204737417253098253064170840344392754373415562192981124539279651019501804198329467577003222863074446282647979551454767858786949568682499337721279196133452354473364222787844979440499343698985500846925931703372121851101796316077972803200764721418674696648253390607210465751553926315935491601161083960551638605819346734586973985911361928665892860879672946912286123461198455453888563474185894931544509480167097796321416367722122013528917870975836554758203831207549609527927798116646229732391885768758456347326939400902270604323798360317222921986944878452292802320520154430501700055520263532037907228448053293710481818587171011859208139011780831436235188618468545675716933204583122325068949395368972378864291932209287889029166303013543036053171169346981041456441967720505253222779727308521434300556647070665079595595888611401748986168822472773389916992957195296352998429699036156586408053134405426620150482584920380044268946191027860453373768071091951034703900208669107017698941587962014882159520099337579576954727894425979778079770839909908416573072511027819470085840052139662433549895719354255787463781969756879007551855518752314044593515369679943282365913494925658913195443782167416262474625137431457309904116152744186754788721775324682871437402153481258836330721885050758804870007434827644628245392849705499210744952457628636339583835642608933754160991859426686180494634241572641125897041973583617259398887408949802745449062470977545222442484522685296610148743597355452377093068305688731713982889236203698779964861328883561971121760554949317924963517071986448827362182259338516405905459569506678452646075302605660580368125472532547206295803616008380841513731216462490754835076401780274997416128934239676442317496990298654131786953364530967474457885524590312181955839785191433093014668963666373869240437034691235892069486247654394962616287027830845310072449057061343722511496462798491989695089099989414792243799136912435189669821033099845448444835443258927288483767676531957996523004096312546592031684328256294017297937702409008936132408272814833564507470683940833321164301862599484883175961893703163426265217101507859942022701273170717440247318406398933836673059381556886496889094085531427245730798166581766290749853445387094448458837374274680326205839961683663137482148066732229628923918369209911546318804496458417234946641462315920737914613925023439981781692765319227953582396955138162066342615605328499295892906902065553363629184505882239715942622550071476395863680436961631341620003664919540203178497938585508451612530990192569621588837591949954826028839423899152200233592263935075971663975768034642807104716467526664115411782500690140299358891639603308946335363967262887869853918589866649886579111933880337560733497156155256876411349948495821491055259154969929009825111103827503164192258884716212195283609682631645065182658628304526787052056377432735185175865353899343822790141831810368049969921117124646069329384056197500325017659817806577320688859813360765876052371185164736322981166071591325335413811036262480873976251371179434049492936484338575112797038942959037500307606329813834309735129409420613222958646694839203669179861950203378471126476921501546568870799837726623884545375307035607077635589079533297201677597205001247304693857978090160958683278885569428986286635361754513837063704272045651021626984926486802590400771256512947585445959900561239738682446156596576908518493408867381983942491908700972700504461821253814547296802153133024176702116109198979015596853238264256535502403719245448016830501099494029779522468981371156406970145348264910713365469744853162184285304624160888691176767260387813243112471549855543014931450855923395281558102043573701503829257342456367217642359622136622599227769801401806549586121657365171747203369247795177828762276771266701162674160061911795787936454960268348402164937097227117904058050052821039907735538862825362214365680432155198989901091559072786660681676291878984779923039001902912495485724733291347146191054903585214383759897864239498604735321476272846120919843200371941405757561082457983489864738394795196541880629008478439836433385813552443757525399265561341766799185118486485228527148424604602054156975949938935815469190737565848120928707390219723286474922945099360020342675696078563037205139992543787566874035813820668774584128730890512605627788380309111678893582991542038614574376137707431755905147962776011561111309482297031186124884092287418452672944796020572594297341026440608301450185856056177867217466557707252091999656406878051439748441387510308839863991037278353539770247204855838292963847512940296640631605202511656296496184169720362998512904333243443430653405299130326112864528956055244072197875761030801923414806184136611085022984829343757656841480216221033284257561562354733385391546346964688808985675384331325767458278889140083953612131856703210484126378820687265827667315546658576250660057597705524492018455752177399037472125071188525786911302653493698664549160669052673537266744078043009702407185716204730654316483993393507827682096620077870491936233761991826573603829832783873215150896356255130753188346677832250455553961841893713721352294903259768925325439187860896618644258350863019774325586844984235945850045851091653402019846165297518791781998438953493878652659552310201697972562350966026114200776449822955604312355015497513900750458407661169949976884104739937216120303333636321780269999507367980340739546736490410482155021257871851132482569911944057625299844013548675769620124745952681919264544447539883849014524431857599451988916710297917839666707994675264750391852853804270156149163333229397860001337121559929207764276202964340386111707408045957956373501640158621701553651499335366953163623500843380299290974107552252794002800423340758980837011687792160866647165521835310854409877950029179557010623504326797875591370808180880033269377199696586108967503149182008926274752740056468359202107175837350369879585669426838141472525944723401280181576401870617561350356075091164943741483713998744142488289535051924931490156710157274004628878754509939349883962380484185094947993943792222850527793080929371374847821712464092839800920758734890847077101378360811712371977325545587447730081864205844061175285554719410601826768156804003602015926902534720783051754816737370265084896159733912023268920520009916385709893441788682673282961568844246155208122897241033494239900688034855540276257249453301875586679275623295827156776437187466462494440008397249535969722185067170137963804141799155050295556923232137195277070477532358239674746332439469585367397903423931071633636743759494762455861760235268659625672008462136332411741478938657479043701769079094024513532477261681494230393534426122778904712724071093318623224861508273003823026487060473685446623534643216043969110250869724559565065289842271333353598282133805004668596573461696997762943082897447120724787454708319798531563360451691395668902588154755196854027443488678723881002949242905573194314873296052667725774518011303577819212600246772820108915060258739018405223241145392637206170169740021899268152955331946108101502335149043091743391746455845127322659017730202834603979360339914080191740855215908919816006343871573448780317628946338121254911789242110581288994419906116886762924507709962257918949483440855552265756412576449381543646668806144629161326292517062844328052329304204914218558143694657424313506469660185432822022859006631833798529459214610750972478754024052346746721116061094356651227967004475696517739509685853216562973743080777208193252843068104758733131631454783807900844573493287697223586736911819892420556282559077258042970325214276550672452931451862119785780773746368981762080375524936764703150657410777206685195740268529494008331104249550248186021755835027190068855916569866028630015796572133987521133609307848677829148200795448216586410784651746509537527297708485076605701403512426738815182399002565525977527682372616314883281344588364530001660048786543095028367832817773417794760694977037162527815093186119540059472327290378155013897610096222120620199816218000796379503748251212841444143140939603516105913778165826714270399757543507178768915309970836028260241440280657473844416206282763382985915913837297456266748579861280562665291303543354941566469729444923114466298428551630404097411320822328620505326387040080055668281061926548149945141719578683957711174609992798874608890257196460077733648843114715157119361264566535961090037308673072051039030897560488593899607156895503081116649456208234723097519017927297471672515497619353886674588735461776959102112964340108035788634572384982768287249950073259231864394134290485420614669440035069170527265007888013072425007447530887087985004026587134698399400666212341470702873521297677887815881571701265865249824136026048832757265002341182265526055004871186897484719733379321604817843994278947116343285633128942756681836288076201516234606567572386505827259649485341040138532781245922909505359907852523137900948392325070961051031608747567439147679337442469571758217419339717191426774492192713594537461232257748043964804570940385138721336242396550704559299910609743268845575497808607193522949994906080161332549224368798933134736451124009974936349071160569129765141778297166361755570530023607119395312790988347817361519500969492555929021966221339336108945758486673775963696890251663552603134286555776251490814959948312904634088401624783299792608485200736005897582833953135512273203290873577388072580638155002700700018757351312685182525116686044986480251949696765415673253287156236046668037159841485288671832093002551211764192863979859907603897687941025289720931080321175319412742501314234995457359449362070708531453229357180864743278167378630345839456664728391105953660297724242094224693031672675144662807253828321151745443496799883890247905441819031779551404220029709745765244480514371118428729947005257625668774870777504505523061149883638399394776574945284581453831884904450817393842279057003411996928027347082239266507502670456876567337805682629559616735276752097238404552897738731463790440253672416489562598757235168528833219421843585452190763102487728437859859174620531146412523358423853192892870698233724597597507947683034490886769768358626976031293644902458431334681174916652455445050529483037139553695155406718666863863460641622231802364670593049507591849409248655053255448359735780424026345541752936489107573179302858610377507370798383601059940387029380933684263951474122938093699626954111864627000591602163877820622103203589285525541502717253687753269485995378726883209759137810742397128730824719599088570260052812767111991614209626223893712546101993259866120304887284506614440698146433798932449823934095370668000448731350112402460006224829965666406063836566033130978787971081865820624194616300843648369967094189297310500962784310501689169770427191653545015074953571787556175377948068440343395838367051537105486228512349158418308941342212681630521291477873367353929389064612078836272982461056844691817003686980905945569959264338711707238948350219168539316536994887104896584246845450583779032707711950264063811230615320877497697657797467729803601061987572716883931779614942280243034171400761109406668872535186500777251292872407456712014887593269427863344689094449430604743516515380912318963295275735995155463118176021775808214417830184492010245268339451465504984552713674053495674320083227622937670181810674399774157144321410889611475616836842024048605862830421661713327501670519129322223860488134567377792475676907311597934634735182778848304099465740120996233597297592403309525874200799773659449018978635107558175859954418289081779723282025318489963642891054693646944245854144136602967980104464258943887723914260861547482196183923345283906806741668826815125595780963148549313618426183367781468090099557535119013280671455721210766412830924752488337375732070032840221877142850415439528463875495155180882082728349226058544134412627750396638703601751192401594040355843448197358291098575148102018607319397893002889159224174752531911249797529148895855108550650624532982684977825871016151292358462867791979465484975199858748034998546326356071737326573907814459007203971332823689808588579214613650782532950319202358881544798510280427637020723396813367318759118499198638847767311539617804415331227386639727156360543945465698121872715105541262322753250508042204858329335622397821935427307417661913946314197073322754496793324614337797781438520617473492430535831780576138211477065950383415951168792138183718592488127439943902594271303745088315947170482266118233344922536695617207383196490972649212124634889576394211102120824902048241591961238566170457912800485270979825407818937836453767427241603809497789395530424421723039650058574998905740806977434627972753906307401518829374030166473677166934758780091666866051415948258066260849234182144696002114302233835901165778837007398800473563878197425984058409808363081392483319971920079009939246386338046593735623073174817930530837249000963425975689217647386037571349839914377180353128377886789167186317212760544126351627532960068822164165606519733563938195960682042766515596728609595256549306835371187373222344102300027582233977458820453404751968525819746717393383284604436565686943517424763804166187747683280874906328145660615184375993230808575682358865205462897692806226433389283892681382675309299719840041324437653138243119757331994793891789761121364002970601787836262639153370962784544022957588532528155365122044417273592585352759867278105656200583575678850143701477820881890570481911527389483799448722305459400038037865983804671677825811335740598547043251831380973528993430883460665757705340382280072384998875467895812151404734251033286649276630214573719944399637887383269003842601374877444459555019457010261122837433132389392858155345823602006855185840185896449810161948623830409001761638850046020502771500649294606187748659704719757952586531171036719759575309992759865081771402255220804610454271913513728720215056187733838016802393102960139069989706860576732952261191597791317308067466504762289757237990014171240175204174125921855637310405148170864834989770013051730132973198683413469790989529216600343594117964394964594859893607695617553181451504437101762592787749081125734014975202464370780015381532846448091029920103467669768127637410536548037889358852783630029376548181197328444784717376711705426779080769295660768646853242855074196331965712885932034607800416241105160481030622068479714363123949338259708839018672042628909109051658580314145790788669979061859068515541617302615444642839569202611381731635451849361384595120869669445216332286332612994640486293807023288830060500993968453012509396300300395458416913700706182596464835997581899337540235575665935378585191804470176432128807847792103324585470851735179543142973098458955249575317196008762980402427439590992480157906827692433558891730742619443521789783564221104369418407172133307047659856589043292781810326470791393643094641238971289079352794522261539933328225803513008855544948797171215417174387782669844411705484845811801332720764868889511238614251013008506472274536260049123011566106866552191451036340399162063149252270761349713781988884302911234760215566499115112885744461335440019076482155212340207004168913325080102192371678335104077501017375719680489975275160061261676077914906879403807730536191105973351313203498840401164208702230117494315516456461661440269774227360194878804667142222446376361378699556334867893237372950190182750515385276690699627198551931776556908024419770631172707750281655498598167443769879517811390461413137987406225422325794776434661575362251155880563767800194729460819729304412683661851238571560916946698568826929320003055084497209740225643242706921512885290397090960142187732020175709288127971248723778257194018856035488267528367614358983057319233916989982391541862838352141259192650355762059441959204505025704895695513491953004508321141720546005596329588454614497310295445389304843408555773499691930567121904147291620755968331897138094394818669265789328082858814325214842655940723997619777390758842417161640096323771579282931420650749461572063001434134638847662286510159327708782938281778733392823579572118531459071157086562192185477499424450570873488941444276819497439018887643304295496584993093652844529817456854869898256041831284979275257640585422512319488540422943974913107394138154122051521692620652313982374041063098596220805312923998296745882519848444085790979299883035277924092323056557482715181147487381441957953807038633674629444184421975759147430173052900128830909372115709783277591797495862179904530932397350845579414648166608925313429553098945019404143771135675036571978813482990466885420871505330853231028718258756520243587218402663306626128397366630882950123291579290505543440684080171491924747045538031815707937964631867873490664804380389964521007813421772798000809626174096223995677870161268780032193989985852338104693150925143890114058480165782605702112763360197182144421627894902780341434548332073054332425769560999281336331152018477221979890936043687844580907057407752558145339276652532760426092534850168227521722353870232108724878638210069589146818205886801638597906052169135503371757685731542624171741577396152204771707287634420751282199243218373805657752876445334463376316733453853617676242038048562674063415945992752755522643934269051691846369027449412756759703434414334034153463550222548325218508095008240625836534184185985501222654987612320601106697747604009370981325797335764782287156566609662381873001553979613043906054314324178300063728976850718414045634024176217906383203874516023776029595630543826330450285637303993886857837023234901177384620761092265273899194581715191747728793620974530869308674030437282433728334306156381376137514135121367240370071663685553117976940873931254062712281237363074652351485218295274668065501753831411829990848716146490783519121441365424029359018506629988203920649737188288444201740334104306073785983439581489916881267795071340948137070470662748262391011029077049549897885178805004162655640280493845153898177931029125173584876385205755987760074758444989067840126262686630612466178991944158211861279384717649610004222630760494265116740305710670483576054178886236550929098053446417240466769429656517496391997728618652810037174574733137403503068295739743756425730584138447230817210161466057197787807480938170596781655153458504314478390294554629046154236059925621907465679219360062373637193522234077527614078271946402143974032632440680983536271900104803925661802628013146116845146757791611307281549311775516190219690215495161986318045844059474103169878970875514656701545247184178487065425223129864711527457175458661050903805327193899240698667591153046023149541072016528876930151156896782563307375615255685634601146793188006920117299425103820132077638422125870758436290029483332811537146995762083372459697441077672726657812732488707172900386568042512403116096648074016942735401337505019379771282547528370687141170306617008342819463212045204617268425603674270796225858994693948322272983165923159320691111214787535345424309891452328746795628610212427410028782018327085818534833563698928419463844830724121422018417155921435611256909633165706383358321993966594694731480842843462936565795894697760496261058684411113523263619494734518298984244550624318436652475286735974023092409675160014452858723057246971981332981241202048141834685665102402053952495535017022935173157803481174516789553224911012278850689882828696951300831762319628298007776945991219639754223651595731664418903321905276070796514706866702266942175486466223501855649810524181592763649694785396663596341385244340731796700318315904330885223535869531028461025117884320073169538347170644363304723985509456275999278161564025891464865594507151906676032641365720626502353638031500992612461805588999666065396326558710698499961521557002528559687261201293940035622904593288860347088998785696474667395531236790964438525187146825159160118932686243046849887547075294630200778377947780090492336021461335996753697314287747981260860170038004409279778915192395961237728944989203408326832016709847557002024874253417783355648637485839276261672028445097755575360086112695804996858024480545740076108906482443447899424636834483213005532397602600454068678934059245167503208398726341335511122385674398517215278373933132060631002848357035454158620610422899131322988660405816424995442068067387329973017788495099004436588856201213365989695485852281882185823793571247684511880474526557283273960222373527813703127906421189145460200990888348772773478296738478860256792930075612723622850416637572081502855203874990675638412598675043925808007488404089219118684659400199398704159128116872166842871045808334934531999344252822581097349820041165339771708344909617431170164274207737795753817567232022731075159951736624499506971548817564271062408861453849029609015206368264169413329193842193074354788384608725759352703766763023148007050021906458709462073862802618928486934803737771287077286502530531713163711023170268897284314244427441218248715802606770343459942882354425538785963826608185188689887834681362728808626330684419334617539770740321437538968585913178257934068768990288570006291334340965827252308787384431691786345516117728087577166445560177288958576929785964972527527829555580203831051348535138847981916559275558891661699918080445496355724177702776359769683655734419518202078793964016969394645268393545853393300391357551458883929320191431543925179303259395670085053848697718156806430629684641573359487318607407672847477625026001776279087988971610443602676780129629260509244467828577560347541946256445111965362027759440898427460976922820827349834907297746543763039662222112832358378078402430139570165431739343741921649401981958885658475227495670605472031349960652190045013644721299353486046691705231017660087740137945540625785987896805601346303655081721999312365479004432253081253461679134562422718258421590060152699005157812815040910068876085660320537350324818762097913742139312840483618777972890632531244346426686268728779737549794006795774012050316699566064586054274864826549336682985901559914484094186040726305167388398342861749712522899922799112084631228851209789578487027942306070220149102097294177871742206676010195923864456699690337777199420598459902460724281909939746019316959107837462230580161780449631034453142225453537474248590269714402717109747260644358231250296573135994482513542071737456530608215901783444814432848728530989090313463832682562802835084892642285908412182254636569380296144083559314447565122027040996672637511876475889450829048232511566587281644378692630882614573379428223621050710153714307108934221027312058631094014781786116625576059831706347949559237232118251967124723312454421221295544528826570750652571325026750657862305232035176016563086746385667211410399004640748624402152713315191596858911569281834917030135659783795917432134030471365591443439215882551021630504556901723572525616720693756951110451611657029940331805061663823398875408607862661021381364551584047844919268821363334001391177102979554243708686762470950724522783529415114336558304469783172990133200581362098468702845438053058639812413023058697396647804751032979431463180273481871673453497281294100123150385494546977230948261070478668155977092941078677207993425622123786217271477516980633286205542976576620451511512697813122341912260334779049046615074873050391573884124111791011287765392441962249954977677361975117140646757934756733679053750122475428274254957852667606821374699199696726259019915035709957930797429925812301039108409682996422304440189741617186614868610193966824865855676403915398740227755334481364912741079611045739910643092510808682565231176642713264724820137635465240881663976743432146769073007185116440527208531364777701184195636531285752448835523342433459766490740205305567067513779217594671420575187716989352571817622616973219304239874990429669119714477122961057144224949336046582524308471946254683838322785175933433991803553401799296626358595513356799081491014419741152404808068298118951470130469944753702840569244929603588508789040631058944412688324783782056380850086612508194444116714536451666111393085662013457680873145929318928498541239432527309867454473519096308766038391164090487769979636609234776424948382247905715014932515237521232848037669566424030714201752918219174373046554738032759306353151623760471710500261989294493993546199376780219065009804989135756168821247677809572688136243466391773030805372350265956057473336581592831856300413607097530540759713915575670682621890486226446271579008231367025242823765657751603559339701110341636047338962639882785677065213857261623957526573079397267602283143400745037920072960958709891607497285566875561509340685876784246560162227048258151145732233140342653123074687840822448241392998462994970975172410844428750088330447453245268365629448061848884253212338784348652259635944385103570431582866462287678586446342104591004063429219439552609302082282653531804213649885836879772968616739969423133368563016717969227252393017045621522440216055726350117232592590921928772587654320090508831324969968096456031684450566789369179008842838365479327698305861850536192619145785237129928005078887555227693544779783072141331272663250531022512191936408354051225904187395003557169210964059637951018001299412263378245077297934584126141810344748815716642078158195205536524929443639283793053910590044654098871109770033603207583813349783661161984910358707417709361918612427518209410377013387904167604746521124472170595535566123445310606345630336845655740412246921517089763383874389193300632745554978394478424031158830743374564382176719044294874486189949444189197647201361195858270352492937532881345269339125592101324841593838611902211344645586768479625896352953735040062886501042088492181314010896150849371695508217310595992910771268947417191278807259477596899681632088201967387308942650709105687656160918286842637079906987134794648076442943756552245071205048638279414948396728578025018656169217425897948718837467025880304691830745268649791720714430878046503581487749452639801529493387478364206904026701817594978767845745676551102077944958747503013214277736365440117804826281096261706976510231377443206821063378607799999518266301332755162166419072133122430684501362828884019956106390753616033296285464937718773002188978996433943489013125521555380424506249219278700707823481326150708593741614096248784017255307876847656538762904351920759163353552557030710055218430673599675928030781376599212380578478023128029987159257636169276208650592579421442757481104514450108716039206399620047184883132340139339163795458525025354804000610072537121650167715040428369623900547151658053388717551415841390822139834140158240791102252886468498473624757120822183529148836955787649416004070117222456829046792522090814878777050242364692921530277899852602638460297404895795576027653839678339085761853845165300020815567334227137525494939982855155358814222237599071457262877925468473095478845010934463244952159266921344856104716718633928638957946628343937781682042215453696356567242573182186627488185273786805548881681666502529244652737243991889446686992923947471929619460177829148827047139109034597554654341298233040395343756038282489921255583257690472073665103842971935097552021490478714997380375497109680511823624225453138890988191890766924740357594526484835515779754261396350051451179204621067233771189323654145801628809751693332689018459411337279161275747608222346144797509601121785133495913211982541249039414726009656541150592641451799956301730024770215121924881970582662016303724661644472065525155823735830852445571111269564998948628767159950084244825254375228935020022742825420039739995557206837037673010038774046504039753312099158626336308137325020613231752378720028968870209003187879575112356936443640620028486587195648168310522662871653888812177651888008584412424496699540994569626960877316053453448647497509424164086776253655617876095360866418748755734381234677532924125146682785169865589521227942454792959753893942715529469101131838360849665098938333867632667712146127464888771923220597571071758098863170942853602276313614593499223636833756189751754856692287320565958738024885880854532714703657380003795325668179483844373656388149413575888905474542544729912502627102858101874093692807480118229231228957846655096053163376483391008404187086435846828037237596376964310929850372647871049764061167130807235760129057589892494469199748412215275098230401503987834426525212657983748491476866304209301143755729625541726352508189749270236498229857693726188510797121723505009118921989350847794824031136448813299414293753563762099627677731248372024453811209899218934608983579076037217968152647988369783997780010503265951593139488531426817893538738487948813594470946692019271872870441154036041019447646555403760536664265934418435556370397313693860552724468135377312022144631347538368167656100001187369926950311426317801132873584936206086166914834000913651171910074968481603918803395404513054300690446324712823909177161285942798280358968965979997919559516657926375805659709908342253617606553284892760144608686170575013822403243702223280349144553725855106472252576494236321050984864226933049304331273958449567749729235844280085394311333249872777449401320180178233617580950561676278310833846396733398247075254111072091945215093144405851272864411384444501363255487590705756611672134432850732465564733971726463594988276744494593289500929416511777282752450113294691030301828717548927803921454962712585246370060891355115782952481272229308125708205656173155006158467551077523186642016781723171396688759873346455201174753296058479699217954924184211697511736909718204186224583054497704272373796274003470554647717926454732753728857117021175640955741398449064813211153236683793740867076641897052135586764570495182528047503451573142449815802856514856555806182729901446413937280986052819764512795627599398641099119283452216393471954395603268221267067582962045930204609252592384020980322113112981826736426286751948500349858488819284540866219668275930359640021623653270528569140214236547233870147452974560740195562798281819381404933831794145508621462984292213900646536950765334735397813529348125797978144455745929225145307576541730491720628822502087076422452635693457515666949178390350983765152831395063157709431847836817771248033542429174148935551893936195913002616080304473880491155866939062910777814907030435666506205201997727639646811199691190671431985451447249157404906796498129817135972902447958223656443858103831726322510070288641007243566279105329340124814650787942193456120184459508180591587869509659561419682898005153187526598480515736332892797263975184407603636321654628859951107335015012721439229309635345073327836774961966690017033867039843794741134572702090941669743775475739944219508047125527332093670073439771708872482247467076091983355373681725790746818917142143495584227979787264308536244792256333631482247197373597462569483552898504453887406693943157081245864224041067256433460839634320436332134345259909832073698226504349451007929351130734029678874068155872016874147426039077195029607503958284492876422296426290071481711986136371306245853579924023161610448620262252141234109523688954595150356031002416588231761793064896698775633671321820665301924192912621055489772173378308616953715421327823962285329462762827024801861557572172546439179902585973849766972950138883528616642320372268013655405677158188121968328230884322205304584831681702535759783002733294939719202770241172785663275871455900238656820122144265703574106940082280038587940017342352240112862395985544706457928578935191130039018630810389028036297965897769034553147675328134969819509453008538498493025111277068899262820683759665589996278776489481355905926283186051773792029686331821354040064439731519101413765122686533887250780916139285239342110289268800068614245142042322431127393720488313327969674580286032706921741164755520605484792213120170102792708545922669705425348140259324875983564782877438335523337611123428910601783053941964490467999885828962766844147450652022878885410962653644142750119958431217482040238449629614300879351430326709374842041059621491445097153779576529585210426944071283373256630943272914170570654178831552735127328746713115835635368883447290279624862933514475571263577399676589935774075892771743397720829907208507295410678282773673741298742727332098096253663592096732113560904952006106378164248029557287249757487013326458409710882270355397241138324923744397089186686332717450614380021716228980210615961244345676786889646384807075016320031336016561729187242343260478066497010630324658851470254122348494615787430203260173910271921156279679598522982739533842612861957714525253889713305193421122581601093292660576780529142565519515047626881565614971547625836157920494234725561598418200466223002154171820239784816744491945277661826442031479839000785815004991135198635454789578204450432608863921675571770805793572347386381744846901468735782956760965418636434740199314649893369068446899716390617599747561233894611289040423416583261827413634745488790721129126612604652128241219953204508064575609212489759590359936457391936267233663018768378521196458956429088417440951769787382907341067659925627951698317484715049627075460288119563254460347036830583924834350336215746863692801177598994560754902941258268170212861056271756552592369614744412348057389308770015574833308764084729949179316151093319604864657955779931171108950628385097992963917091200228159827995311664503286611786299140571148097080895396687592290562761568730369161913123271206107987052990436230184571585630540864980765356520231729786330909303868365160510766100071391580291074440719316488947068597926082860447994547584464143100103878985012015805157316279027957873888427097699096025404510244625503187489263256719456134402031208967229907301064908211854143402879603096177336288855878652542435392072937145853299307617301417349055982479792879304986166049125500119942693555345226387620368463767234195677675542302445803044799573590997659511732023934152157906505454961806776000488571058344003938698484667326255173009788352404295024726099227280403445475852638554862401283537777336289667148409402215649311880675243144493940999160308027572044129527104959360080491558440752126914601519081497146295693798512512732631089344101780494789738026281796154552443099419957374747908952942376987857500358933402304875667340816451469908431034491683996968300247613747598747063888277382805172405680320956438527696075047960412779917227878182056444383580399703519697971249231610149202354784281396109357392997268370058107432079909241340794448546732856972849632567226721559635186042499252295874324110538856722611890110426658188582334778910612570487818298722579967594925094776826027106446481507783585655293416183525587395771945875497554632837256689776228229872354766026567752268411775198786291147268897391525828111686267742171642862677315576537641004640188198129547968254898424519007501652258840497461332990748672654603879664871987762530880629147117936508265978658888142955927464783061767362524205880924272498883637142988705314761198680025215713125240153336347089095294939990360147475146754625553045116236925855044434026644969226166687648145575380438928722823870376660699887111998504735190878864750554427240453391509550322754102691439211881903782175647526957796968331468778145790389711811766274837671487785526037488007834924215004743030278291609012825528623646832891051977122120361624956982448134453308751765048958917184933579860970132264037183961165337762448666290805797134801151290575955780295251968632309831164137185867958180720126973722155931787693710736073142964183117569291407671212516964439344756300753096699673465959916210820408241196067615929754286658427844169840476955252038249006527168064762796550107108118683735576227566474891500853689463857172975783374914944380291416356204630297456093268424987556863915420149149419145546729273343105650184699261016433583569846858494892983749068707182218278373336552800192930818755656514513249934675988200732116769134693122959108376741265214100158710155589093910651627957476934895353853011314096926849296210411181112083697841403746926915712770150280757932248640321143410507334210964172073768094032313493499765970597964040037412965689115258703894406714811204737005453386877902967931138396105579720114720271683559187345315532762163576409549835848095443764350984207321384967389135489150187730155743718332300282230066986574742259437712007664797535488302694343380584439797742838500564578638420660537308898587541428465147788074193950849638583845615536353307056079467648877613000537004480086040479687350845571950475251141274436802354729045359574963906558151294521592645441443095137252876159902106704197567760510678523036545481814267221071954268016863930598267085199288240625518382227103762417046557444064885722356614911233568603271462345446120601402733485777913818114565345216790286178846160436493860811075407687102039751585716120348139452749324774946226874472224324846649595242845337990996198819300787836776185155112368917248738914070927476022541644856245926848803172496405668410444383487520096732302512526278760732006446080414447344108696217494800505406764942293920586163168636834549698307837897625358576446847105659867205556732426450479345679904887765088115403963348063109062202751613600189244583570214292130558290161147852826038052502297485504494551504797377095335181493940143597600603649097869145194406777966774417782765435929470278655117770496064392157218475874077051777256717563599044700514177197467108242937512770499245540677428874665529107812219784263018293270151165181610073946009877231569225039442458749477515621782453772135833858895407523751705988280956182194604352854596708549849754898320068287088894950491451426999780427759416402843342991907300104707374583200032306873060445058375949686832418221411710135840163542098201617249604692972386995968345228738479135807702113935832980547011233023408948692037937368515593483155827339460160640045211076967294744109053665490250697398596268524722668312094478969059444242800277412291978796712022591964987359213189444974542023737165008337882602070583939735888599044684724736168040127755803204456423832652594320215358264988487752461235235850089829630240104869857354457935365119173583459910710154054586638002724864577063994895476590888929131307694302704410403315431533539219159741687944710616466078690798288138659160740890570004039279668455167233886116561869399411631997010236830077025253073010834916374621839280919739366781922990360523374175815921548350844172176547993517092694317320512493060347287923464062699143041816753946180003261714861426129697854831232074777548470453947876192122235366232084723174229737061662838905790817857922437990554172913781191311594011444604627021675562315096098262193980310020027934759794695369539174276508744967453794770419031262935362075968198686274306825449133517375062564196405653059495978678981943803491260246720753483656252142524555522285985052646893617670728665369696283328215318184188241076316284424175085298087729871355891097288727297403438948785861471453295355551300152722971752693494234769578167741249209603882332751271845807008031565447910193437565503253292546517084454750429613814434001373386051899175997531864620413199070026471173088726276773057816728355535860152548015896870963040294141707969075500812614729858459409499759319090374908694671870443075106643536807966930070418854926405533946769456193566765296890440703367011565729824430653706646804141520974035213269582653762640697036304460219991958178448126914026924349143676204484025851695578476224192969362874956647181229214237377159243776194365137723594599770845082017176164238511204773132039412174312991924395571974141715957213410147190591290363491231713297864628107043134665610813042418703038991089669649734964752810153563586142559522798427704674874611605935462125809378576455789975621472048241626246229971586293139128304324817416249722821732556031164755593507564646820105749226757115718547211169699511283340300431828340920560092419209365387694153251328125466499677238771596220266775287895710536594023362969488251179292484715920849515346766436769104558476712820241649123731259733397291886157072522110794162454229855980683865217566217850844156819900097297303011950475813659674384763299469682272858702287081646065815637390443783976731461914308282329185178863912891812458575218861842856482343652131673845247245011900555313382813349600456591892159371433295131260616709348838800217550216102499954018638269350829714809628418051537505931786234368985364708175628233175603285512774885803564776995104782482766320658287193787303793370065303081117451911095738406220905652417433793038555275230910834896009914038895730934454383751515532616824260195006751161986616965680937407711418953680708295863004029499327836645886786708282708653183876665562842329154500550815277324528792834847105221291092955770317578013019243731127200883641485595612392668200286095381924936671603391358506658774621483845458875648520945665500486070520939491923554759885575164922875666002288469492911410772131031965071794193897058612278199676162683826014371580044983944937117155833219474633291417100593369413030217878903387325443063695193419058824658223193233574667220537616975413397492012451146204926128620113205650388500301775993836971954492442156440144503999414166907973081726502403765284557492893619040753896945280124440202939939833659542769357914793757637950071659229308931103755077358395265205255328937460042691622527542339034281957720435497443288261501557696237370850206650574302270057132287478216037225597846320814118893268917789739011489624773863707713056090301978172394758435119797667731022387013131585490406125563115858339703682146930694854519399588258779661002561779788413918159224581231393367071447118757195857585957794764868200847342145475986060114714773809850302351280089858947035753438296120937265961943746258526564705426194282284553277124399813202424522357628547716561557512331865108350580630219712689396576859504619308396423511490552840367214772521365765500152066835777664313301194506622008528430333239192245933793125383688111686469811024816866423375321411878625177817326055468987388026569461236527266344898174144822057136309667867216705754312474446101475146632455924630213393694705819901425138236119723610399346642345139944284915234368382649963423965689182392103626755979415827676174970620923318223299756683104661024180141736912943400485308766556047963241170141499788460666854870721777978346468499229440065739758459115765260723646954473903849155604272302774651705855557861186460758669562879801284480828558277381663532637596031280345429183236879624293317633738072489600179724958265341217076184363632302345350437575137498300204211332166453247914427233676475571717324639714405464706128815971519805210614092726537811822339835265367322754369756781586401167123314000716783272054504643842153221283711525918018080667632729940297339339558862764109402584384262509551927538099674498134714420869999960202125494761147590759832825456259671235550071093818372743649815615564143526837539667556552296212935625535596080124912437825542636779489447824650338748902543279700955146851324051869837383413660717630498810911169113270761081406113455984589681736112223610582795642392651001064880222958923497446940375943589067439985698737803061192502080822469567291298663705153388574626684148213974546437631230388397190680054262648596053686095734700329106663662589224622026841239594794254909384108813840385554566472626417523030153459485613329491717368194545393821943662600708184482865449325733595559195631664696354446380738296484467950468478215857561193260360021728007749096996688453635008000941770803252159535899152416333880762981324583777704119195793180076366661824380175905168852659329671198736363698752045415785338407406842853726468820424915994250715644573931033860905822537916363531173286429059128404037948962186157551575417624892259404175735869426301280461049047851938571768277352874370258929597125923647176470050537049045166102272429533817193661264827558101548838678103273789412222999991468902048174279275773452021659776313389184235457218034252110034709386205567977298007909094180475503576700094867247621080134910456280593963662558355784429921955786350019919128791377545949065153688764096446859180503652538659703269133338089295007421752321287191627649445657882366720835770377654687308051064267479364513503361503869929931284284413369823515262288517216125181813193674936313978392184479904507778784900348356034976654895892189417012541661265531745804324469852026428660005509128162890907912758710601899250363525660274447294806026942080978771484617736992308715484274118061701257185352983432714616730196737798575389910353165616854960608750090625315444370764188642376112090463294971851651400951853263686117816287851466631464589139649803496077800218597863084739437324179720324726024475883390763718144669412379107711076062006297905341683041096898384494095784635628096221775345981541402270831267078034726925033252059444310085688987482674568551299032866327881013590217653136268169104927262977995422210213594486527025671282231370979993661151338971243648544783949642795909902961460740151938645701963903575253862332638483393982661967435578000781690961486122212084250244484010230518626955399035163392020870429728082731148277188365105964390851205032337948876641576441918422065856512415302713137231965709213467477131740831072962644906577067389581958644338691666492256605755044745409313710576155576475601950773884293697944851973737435069883138669083035492973347019482091171958132023427711192780397301563654372217909174615947437958185456450167913055886019408833269900548485295201780871993883685824012279209091557374966677963647131725788759013179132871076132199459482340926619663830353093786794362612733022145317958013841445605851102819206318957969405974879101461350901007627746832842960905308363718153288567801901164305332829349334349125099377750196741691450188714381673956730486043960598243114266789063837352902017123491410966313721720641988554634287661491906866865746665868904058777059075595912882333108808808200089150084781079908100357514856632043613305008883557980091843089762597853832792984863119216750452651808096562310055281140400811263118319466093752871061308291233738207858238576641182984951096028345382175811142887070865853750747011889818095220749241619482735379464041209072997899370351633045049272378011271134490657866019881757374036592678922628484054824038426777118253282336189368103879271675479554501257380013347818443546175273294535974749684420186385546472860091431943415224445773217651912401651045063894784068002305295099705538555064800483770388378282131405909817953115384936065694775425053934532926543691160164562806274125938552663011946914991338076030557062142571272229417297862256446138114850581090972682859027711617116804984700330934132777608839364033895317457533471842888525441997197292151968334494968535841408825811981202960554245702010478942897376413888408357008659899456153468082923235276982458270763093596413826794203700574675563255079533924088859742150590144773674476012770211556141808930155360539107112499365919966195401761917379902749587446313304808523434772776506162031802381666153914808389321056106326277995390888423194586566109994607036360065508939134367131570508557535370031276040756457432982894585330871475099329574451320252040708656622825418547792268440217591858455411322072034343216045750342849140482840476469285645569770351543385313176115539457669867762399277492169673861232917594632551444461830119892700324881330907306061698971913531887963496599924488778809191657303560587820013624327641597810359150929485335540725815250995742748582876082025552653284000462527664465880113404440920737748376824437332701344971997273771284571783250529025649330803423060089653972692288685789255559794117158876628634385556357056471343959831802799500262565549500375987370167637134468964194851594881598050170115329198430277100041511474275390841696472646045109369902566628162174761941399228483889010874214314515422814949125986121494161002744915494304756415284639848637088042828786970696635625609549486488881177059253281602952593494660796287518550039133286782144677405358906871485729333323252869694115822474866991492853685359417105144908542540025154430421879341486405443984626602221138105441169511046031817353275702337051095479876760468207782612507448700668761142389264300497919090642676635761009066540320071392103711764404944877068436335364288594634031004939902311973197306907698227278982477192112352270326836772799012705388282887620124936102114649825489006965302021181211666082254396761498790165173391871539107766353786782961756547521711911257483141940861103737294658176141745838082422682064467983147245353815049966027742595942781056306064418841323485735495546573439335312567626743141923704461125200137839740306992972737140890507463097491150172276294332844574261872365124580336083540624454010029437706426287868779071629212319530281551563049641380793082174176145894612924990088748821355170715750928374008828669866942181349157803050918460550718994152124750711369937164358734381736538697370328116716054885982247201231259934665882857819176633318917862971733576819221320135997896372497047566712511453713408080497664305167637210516497748872053994162200128987793795952662467952787285968586648308861991241924106774351366621412838793531803937311142954676069452786779934081457907806786846121944895742194866555813697967052152380643924426133891432197004357951917653456624490858805086849616819675555453677247158469421654087633183344269903483405183031169081619078544740263655191206713130606025787541030980185200880235265756761582927714100531063972731034141022276939408862332285936773202985925333503334148790316885614247539552755659246342228843198573817252864891048666391569799655251822500378277625200018528287232106881146800370345663096322696238293208271092945462844082484243123711099088794927118520548374631277315590750910388720185422129712313191277197901246871392112413349634604049237476334083411641367578244905090001270723535788780194446432784830362833096162302395976301238198516659779495925615962149305798186319986672752337875795617590384277861651974089259272681650329698290962042064115825556394036749048547263505094877170897155821548912620847370355686365557716812938831042323085658492649500626437735816970084407503032016584327944252393830358338981802313776693498486419298549058168659322557766672159685393579226850866052773356442024118290276022868829974824518089905155355703341510610734546534321316320284105047791671684340621172855496754325388026106554678298629583175242928122546909659578745810103200333180550089027904887514006864581156976382341345758823314489408874592532542388151775380457630017776885010262300544870506083211939305192234520251885957387489299145512199737098479320926475024813077957880683206802710823325453163778702108784213545701634731492293197519543563741953529676124023517634431442235112965308881465525218959456880429084246773373020283271814258824357927132942364515147441436293618744846691292982717369490699977466053738791780935254046523104427202114332799696120412627441380223366234339313227562843748639995084001962108628742504427180933936588331757422615594748886988068151311506985822752074031511809496324059786077517344337408251540527160453605320974972988886826192157076990151907502789106762236491650940641418832405035081162114884612861556208736688766316693574972973156388450790064901475103475479182756401102311034173369459879815238705348349312856068907149995395284493859821992308128462608785649420859927945925387591106375720210222617870236753164403458778770982133272007073439413060663482552761581485319240731598770057300127548565554213298280219396005694594308626112493984158435866032490556478991377226428470931953580667527799442787962920552626851978100511664235063109295677155585965714704990122972485419768373801429794567207802868972891464483581978676041465724450596479912988400999474978455287216388569623476586047339327354704773352086770968069796204553768517367516938582923593824988761863269991738991058223915900936462667952275999786488085982248494415328181610084841960621535375904197293608655451209842209413804014546686022989391897896535280342325109615128557461045658707093726416355725885425129276880148063351591520581421726130879031021543246078650290408973109390183681124314329266105478440923938632719840765693741708860982225500548842158242916137146879753421117900271191741960830033115534977038900031661574043786645160068911627587925361628090362592223327913387938029260208222435360703375158121385726636560808864866165495174250488680391455084298383759648514003646330942399923351241525833054098948106330031090370828022265597697733717657764906163003947146126814774235350988602917354829733084166194244384504151627168674998949712051144664507207163093487755964697698505856824453041309704138250053675681977301640498032467507391675357733826028917728327815520202442088072565185156591216483353554769876810311451059300587907316703895962841134331536369525952028958516146571956827519252460393130614459079010570821735851745177875477193705119079911406324951137712606125896159880457800044178350077064052587682824709764542235216152966520692439498395874200742190841018885119363978205439131712295296129635754524777970657029878263171890346313802980513691920652384015208524132636978491719540068513603619752713243804209724996883532763345074452134888769739724216098622771575818944299720639157751860636300454698620072763955059838480415994053791242278226565726792259761686605951421620568108242770089051561335299678481988134151500865228291362704777971819441178630435386306351248795300843096201493558716788935507983716572217239033188416998743671068589603834666366011918949250776382413181564709398729831061458821786042490117793797998285187638584892061333353618622569888621449547023003767930000073042098182407969285254517614013831919817698162508231870052549925822294793863330780293230038929323729377599501886051494116211096656892622097879583312310339914795924812607493433850854097259110636723935523924686581650032421850278534427036167169944111192727281228544532963538339807144500418453010206272083038080233316632940546090055118536805653548446962637427351908062152606964592153704165383228339343215130347272190888447507798605549644058887310738866350958988275007922613652972169015794428653861972112648756072568553806344074896698228658412706476691727286482435577758372862434988584115852716611651935823416378816935970219900656713665733166901527523960362662536303709271010266855357640990763992918101313010484110380651718524256923638083894547927224274320581555930750413958654624507416679096766656601309975876857130038965113899375261083711215980343561446733986524003535111821294896945438649520594287093562413575042843106749785994210876428459718374111415724604692233358319625279950600878441191127949215812491470547210278184704074993091184457576885703482318290588371726292129520132284146905015721970430986608420840530615969868901117585944015774996930874427114043126741005998001007271752339811228456984293543251306445898165771996281308795586501682645227484438903015865799366011305047292809723449297214737704394750682449164930414045976981171106786230815168085623414649109926323287037149005154397030341536034005002360038040059377046347254286459227183691670958968056078762412939866940323293277013392000827094624396499083485905149834014968529000319537822280887483405779092451544834849106660619398859312071555766299868642519837057150997800636464975261958705111083013377394075894053048540969250980457208677101033646790823804400864210929538019684411429222415770077444386782783987584620553317254235681248838665769887481754504901471021348526245201382182752450154720114648827646633875785398568980108502500340673023367200194876721863871107321681446323650065159460300399532671204369284570000858762759772896561039811711229092474925926773848635166079127882297364860358914581355820679335991197150238239017892691806216157408978719619131675568254220034203378249820768861727981206371942944814899670952050531190437961241932927265802644340032427992673749144539893617382413959402695531884218237651902714236226125819456057696623454498091925694201617403948122262386105587490372614944177355428650498581983574091985621461810802678032058967882949508022518254004877404982027678621328131919187438930042279479345229301883279177025887538278867005970219803603735892116224747243579633309884343332916598515799439044402734903917820858491786906553689462886504153038520806509271393981514819519957667504545326246486875115489884485840537157325270114536860433780163016864914995180069742534506837922019795049692655167095991036623456851785995994113202441517484489529694022819250830380993058687377534217028133056832137351324450400846686005440445256030237937750677136378380360577834641098169787424306711348539035886679964285328561610928280585290648584354009948157806605126273710461600607525249622683244924368162281588767875938470255983220598324189288013020924757444361227931479424269384417991553802033988864161151983770363359989953442074077565534873607370616316035108233010559767041124214540158026084483517601184485449795468229994896122076343148624262487747515022426146419175000493646170284946169646645085816276842145445379086622278993672277601619876191360511419292583392573115035462989319649448251916862655887129424306064732126905605515764221400539816290093437552383455890944039168168115913879499460442600741863876991804952833731229956650688318815533704561562899016692662866588959259267771011074547808795326314196726538848478601087156566350800530263830590056827594303703952079831914342012696027918604100778924598379495789781403650717910548074546139185976469207626474638491263953446561023290600804868806619968348412006572822823327608502354027421013918662437187408256183563562383371820085097671751814177010549926517542434734601229815296529050154363813533036196267445393303632894067711336070159829531638901103337022241718680624804927820884366647258465259271159695221003963280098512335878626542541466859052838215641434428448966730541416928405306047736892091498680182451359002458704678819551997422292161900488081955108020754033761861999726920345448324857716718148735730975042307814793218857869304918972986239253942178156057698971439961450912893838241546468706353374134000065053639868108524903194762816562229643703094981617152224350689185357808926968124697878496804576047826331892575658642423835168749770485360595876682929449507310922695139105423512113504730333467979925400529498370599223659350582025918868851774887268980531838037210551613988767398441478627359595399589634991235514408738581931491926984849501227045988485764769327721921595686734857883848460188928016234202111986536943283618185459391216284997816043745539671127415397703832954975380825082941062319402644426387971315766731621731006085758028863708683323955828448697893305151487893125696831906244223199311110595742153642230967838305360148066819724481913218833752468231186521330185181395437254826063252441389232891227450175204871987179683793226719664394365133217483999602267064233233160086731575357213630126295331456695260769154436187168817674156601754612497359755089727853488927584114220688828829451625935535033010531305069614260203718381563435166435728872632820207830789369338138760151408289339371400509997537667171253673646210181427167299005038890774563418790720069832859146196773499138696516934020970900483685910040856094703479333675834200821003590541969012409052414401068229442132820589698165185366486824381206835506220344151035013737435011093319194712005411843737242359019525511495820453725045075202414889984841040919678217191415979695899468016861073525316650488887010287212736933517870298766029134296702447297018468389502433501040826026062768854108398580712788464379998457855024330102362048529712360740116249465557768846072455516760765967074823997403582665775171680362847492478162295632122290236682825763965024922878206928495145991704809068515773355643684183135927758039479363374289994410111814726726283003446696692956581173086738279977081392000714301945188262178619794427872730523242748965518073084909713453717990386602766560215057313106577237140401011921194998996856136861798793882621670324098553682857693728739350311140171064771990059696219686234481070924064615133415203506647497747082193578449829956426039669347032273872037448154943968944976594546388374571907096307924608595565208581611570809349596153475699018335479586092145891721172832972384324441215661775069509033567808074665070442679379917909444176477552371145167195758799724781413583820309748216376272939518246757676728735428373283514194142138402071962087563234394147684744488717049985420323588828757264009832533300683016513206538104917496507843270202047561275913859019220693780137679441943356252056847939952333164940263677890660406962326981402314259625969857628237395413984606938650744218333012562830348927804957033410182648041969533424700316298623254896824569174317559407130023859776761209210348404875744554330619568182135649772249697695069944506077904846661207928039961691887824008715592258060357423349328049798277648724900332513698835336907352282210220710427789706836073075240100832542333318766655835830541653532533566573203956618871704485602320465494684842083346180977654754468282871979305435306845221047985890347561465993324139291626695087462865667764961443353852319835828731583373716931713265008618724502920054289621338445158651789482094910525591092422576161340894754558094743149600096106990232074811336513919802354104652312513007546227179754280020023750782980710730810881996142934107400589069386550640083394852311333600180669936809455560551776935998891413185754547695935612462679341084612011158235094334478660004901469306793235076771396809617956705479672041496467983803248785585091375392421783357258596222217293891182250692356680574207003865986175662500032680741518142787888607707770906861807457603801636331040834241867717724261874683363694952714682518920108216098243593659859735210160333659469000276199679525383623579740716493039765492364896870674226101189327068910232803827198799327940273342139554464326982021130739483564332700591477675927110033847808841661757339555207466345983464493601078699774127478815340958325236748544369015487399964550852768364744119820821479991181133409257482442342034448306175567779943660689723808701262474906660716414650682476784327921181223270272984793700821097412828167565240395781613902609113953097058424512981301726738666522085158013235324779993514267955559887092981763175011442553916255475161073375284464662910026788029021550360579121925259041992406001946120663876338314888912053394866326216016374148204510207703097012406989688053910474580625014537455468912856548395989334348132651041080282779996320347207436056377842671825773705882376139300857980258278881130805687398376791447721106666168080216364441126999266159018343883099983672876616816215825394300451022333229486603730102696440066698308159496491867846371095530873607552240352931000827244040771059984467536178002593380034737599958452388788825716350539367721255839544702654538972255561885730386354475372632410411200237600635566479015263843238540239107467916986984650763041843399358130561354621270207188755074948443308432627926479218742294885520293814406307684606618477439992814972958436379614258013613485253049895779182834004130930536744474381753917105819738045178790835872964686453883597678644543504045041400226192710786367909070722403333521234071348810930621743255376207160610232468013634996514524580096638740875658660094061072003587306426048065593844773396471216109774212650555923324230626991942514703627907753690969219977295135359693286454831430759314920508954559362355349594304626158430286700036327976909330583301419490234436615848222726847300184283009123756488357089541673715113530949167222792850494198450497262856941828412025583098429800904917921177342266609230434901570174282550470662106212280678440859597206148882497337543126804508994344006146647499392241186135349855062380437880856588107574647601748831550361152306149448753559012585522613906873120397669644528988438307160863074691098758490787862974956515530073484456438191408180901953136247531643942011604347479404513891269455249505465510240803601811523314334613743506213594693185094289637635904348275022322571242054550481889399754763408193016720869706550518366151029574986288679288702370205968561345873243548435170332418660880601254808535042642074689029733108480571163325893726900263342147399048619461870138602813389659807361288468487945026095131856502322641581126148852651551495868509393444388211490968501596458114173877183076601029172018474091591287663077028726243965207661173893100424075277364504433038872534718423107036488127109522214968791901223760253334413422988681060238290566233765897645672367386369242294560577972000069383802909281992384330679995193102251726520735547356634585657542927306276291113747477535558005292982087237856429676619652172910044764124584329537069711314876666580043763313352689663716865193436569129117618354234049277168680074856594245466060363878958121804979210402351489745667555358764462770225975796578646719666680825355572641968949189303527624658514642648521728157933351964598573716212329119844584075661773538800218252418036404122634176740595898271344951849868412410996001020341596028663322768665905006536178029574914072830542147588701463801898013944621954469910418119941155523505226059313398992957047073293760315724068096254702355575676335471281436442935491603225648318279589092236976738288372052674369381750625119885834107032240890307923096354205125130008001842002041168312638708493970935862276836704573560876479119308604291659843215276616847567981938706794551869584532675559314134111291116951857271274468438862401612651587219115298923019719255029926345458486111235358501431899853531949383639378521998998737351703524900505204132471454771209156448126431743623317056470735766854394178361271535648513827559344888897899644320294834727640920610273209419200216308988945086327193689728553500526109740086725754405105826228249832244653414231678865520756429323241564390886192667268334324156868287494082333586123918029231054776089323992718815488940293050581209724321298387029526455138353436528469427118354907135247143206965944257182651412112711177298699812384415812559028939505737206124172254660484026099372577482914293415631076202534484561973898037681595557801103468031108351468821334538615020872797025471091682322451395110082786499740052369605952572781200975845944242841147028385178558459863370038510898261759885187960370212192332346017535218575457752643641089363231507846941832441336733601088831212285712109879601507979956460259516116160669862953232364134628868608015810019319109348447666126918206913177168962179098448365708284445827098289534401794701267338487061195701542184092303476147422025305609445208141848479130986529158546195534124399462674462396434664978106409295188584392438603254304335315019366990396870177938848115152256063959956033267243578751162826031442734633719469249872730233196735874683486807175612021286714227618086445570526916816034630341201648731623577230861017974203014371783750359776038773022060498015056542159332512465642436689192395933636182123569501538073839811036173720949464550628989151349124377023963276124965426409747274506779113982013092823849235326319983923932560148743419434629648598903260731441503847703864677823082002994248228370594394498346935189602783568651048869033524555817361879805441888260543534136057194399709100890026270143698353147040900278138459926574502510844568907630969226760075461766405941132485322200297279691576841902594437922394381713973258803502225179346996506001170881600168982650725223705697774931442054790823948662487837732826728200113800204076733127545252275707335439469835872801642913087960247825217468586851090827821650193878830027733552727961832613996500524186061436646385549948633704599419488286309760131912212126969364914752101135379348216270910116729366156584280450217041677860752599116698610281923190341488050741865696892515830117873300750150466580026236093576451011772497573108631604169624540397875651740404217929465022445744287702919446234018175306449268068295722738169372599335583019690824822890338995646713339933293502620071065988657774331815621848708045513399117285478377336303899797337280277963894017641029424491646376475094833312995195145159042945951763232240406130961155470875552860153487877721613681605016489488106592178914194271413355226174060830202827588828497479553388175756953738201085373223099725879572071300487416485625800593873452064352521651259490313756923636482291697731296648719286371689290078336431603569008307735759035664991500221659685331008542982712126784855779857269047459442062953741199197428851038792088108671690500910865049824313514827194778421754431335326116231441670796546159954318866852295650519299739408441431779182036471664238122922770386441381643836388090910197611389616031889241390612566479623474088662095285100943136313470067838487304333141344427187637392721993507783142079107146808711651772862227693429716314504451878871848046232155353398150863939160627358875038194703358389167283866328034365971254338618720611358875532255424931177590248219487592005765859010591885539657843240357615048478150922588625877303325603881060501017490847892443037082703902038841808395459485682611138503844603369071702660326957849112983437652295321141261287703416671135078584401583543701579486267892195851353834921445744313969283379763833370635669883296237955531431013424870964797213961605469788579133986078813830592620129307687044359882230522928629099419250026755796151144956010307407426829236239590198778434773534854178450344384733478145465323441793657760063776380308244070295329321461640707124593315388647061282128720990962069875117734761861275616586900674525981330975371300545398082056913422480032526084970156553262282320752618466074831023362244004495647736631685340275307774126269357099527366551061271880528522763544063241256379475767297234908235267919396722886740777061352986878175691015023634408157835392773354097455599755214063346731413434068227856344885968283201122078512354098108149797873845272082402149254929189271156743857338538011640177703853733477650446646001326998647604617580511087951325618147042037666592123214786516943172878023111797394834898791279929828905989110426726184622091431623734869863886926354338195060418557532710692174547675691816928640183224384916985282219941962755398924411373021126131251975168966273616298140116913880516875163262074997849263458955022415187482939188975407219302351000206440675361911343693770513582773082320179532725775477387438919638488522421944615048109394386674498011698443576275015026100289833317500937730412208663926309418193979348602616468084483914061608984948627976039966244552314020710209622558605663070089352847726350501043752654438042511421439407799633308338933278136621162838906952285692858510925987932884413524750378586540200658142115161971899471995883515035791935969616195317401999811254175480367163539421264626652122594176906820274473223096448341953954005083686964267963086555128506276518536743333184540197161170981408218846630252325528878614510961138115938508906111182307705170098868349647926767030885332731711957408098748673278222432431574296797941915996255914983626030629071147308897591019355998137025418413621033870184797605592902995164229138094265914248035298671280438814091804027635148390613388950610307279619714169843544859253753116829139160823842685149840296689857538860897663925679715488748070630214536556849995552704317027382222927181500422437589266208039770641411254209439634959667816610187988936646402213243248925817507331722413844549525151760956356659343274834116227319204357377409852289015759565980156112801053517531419764461313556974554571740277112864429867331193324947699374100137510670950232953514523689356665246944700088992627143861231179222450763274208556542454385892546630993176095552758033041952685763380184962398105630957586866768397251166570989327278590746310591906531937368415868553308687008190727432767300085232146093006888168123144457160855572660182018453872271044171438900061569411535715284026727911231258175489765385215675809686054967246905047338118532586094232994394302653745328511099098590307299053254212242325306537235130082433351654746378101390539789935473255847784508982597997754715766586070803128724440951952515911629083907841908224466609302660227749218118565851587644681270017147668872371327721838239975747389791460956373616820899337024284886254019879033034091245219895743522621063601591704675504840881671837155262524380417419428265063393548344052586334432944361371156859539119692555006253949794392892533917632107579437028510004985986211741879522142008684332159656047519680915848563465908320910608157963113330173923683773233333780974893561982219542052144443451675254744917495030962334607868646700074436030163662348689906791658418060100474477073274669299716007716187103616105765194901108405677420223890604638384950369742095110188988473794769966849290491576658173366173097825089274806549106246569976884219244984557653546935865389306042769231327330787064489769574970350982756907377515992887533399528254188243340989520437183488496444797319992827625440027154415633829558089249652642371151871489881047557896394988025152483210714744360807718586026481986312942980596643795926241104751024612918693638497179166155868048290543159423417174703687706147855799030360128829690610958227921020339285356592466599172979794763466546412151986546777067926606791537884023305168432510857707271870799704304120983504446972792807574415238647446341818056301527217322571536494951216483464682535176006483784836480280769529049828165825252927300806668214557852939710129080812211875920816880917157823417345808697188547594718188154093922204081034282785644748399613953389021906229113141861290238299267056252217281845989278130113349013458188572331883241155132093501319467811446637507820576229732593668829026305492100378341344008520079371225586279444861449226742577168470508477026918747960611400570833903809491955471766558260811839270856692576213259814402442147276815606912000256361165206058189339807775004245806840844495334784887601959445786669163201520107222480192923234795203872160923905991667722537712024476945369360334391102787440012462348753192099829922664990796806177223978225073109443085448016040027904935219941349513027627544360283816206826977213855543095859350770473101388141377770286294133408719296895421397885509724786208864015463533595144563877795259439188086907248746293980193921872155598994258065612231411674781530557218869038797685585449234762947568434999320705022042418847406911727445148108817519891754103369501134309657639118118584620900277520226709652474136857768941992048642233118070165553463127471169906901781818583914829060724285127805519136780586957094099525132614007038485736987894672541712178320451244914459206217961530100772527780576563341429247159789372107966487295321432527575697819878086978195570701327993034995543827058159255411752599592051868582678368832256267006676219476558603837894212841818040095897203972080207859928640653317570093984909440585096799592664585317564225823090503861950767941705570383214753116728926301473287084321764395747989860121115129701624709136893258163914303563295685232160601796150855317670274824309635112332118181373014136500511608421036009089342033379234464374621661946988760263035635132514453777112821909540413036498643199545624419017740322866349463169557666945148071460795814730914138874289127906269644595264422527852483506350322902897752633141884999768230679253145471885417950737949092456386753546049853168065091027391432091013672902882785141193561107221461617116138807897547836853821933972483320522500156329127724304976615961089224052172984618269067178980899565457157324766535857034025148349136653411970043891891859473779982774639982974747703909323235815046190897136091602219640633835051812389205627897044030859153955912491334291564362064044712294674338251137132780471123402350162803457887881223581412558982276738846342559315817770443134905261744387182931418703506326711836434394263127565959511200519279738235059931927712959372913459077060478042728592962671017705397992588693531572862974935830486425569045225796578935987731591047452672092394955157456263285538517320707133134069982481065935188194938264755844644514805687835668605181153210060858652690623265658164474673326733774674347759133693515322661709351928583122731142920311626737553858610369806256124334248430948447976962390422562293472039125028343290164981248258647111964779113457085577722274355403941078700855148529005639788506240914642194141686916858075562086006817380279466870271555053214486859248649489458596481271096488684591487441946103315157088529716130769136583174805983881603986977113271238462787148373760967070728545370380282147152992543553133036433903601008206698011797168888871944479617979463484934457246319680443797959186564769151888853591287655525754192330973313567838447140158694196157235294638676306673064101984613966807821967219391433361450944289946396068013728147920347602993961450874739929214467396497176539574256246714235082339962239267947247915760797406308118451691085396932317371622317572524509937604441179562686228495501680394617748774690707688675776020001374985217289354281125478007046166466797768591841715694050178487666888959923984936729669895029636101852933449744489326257608323445697221993868450328896667430802750239869555854916633971056026366867816941852778840398317817523861979253788350992533655440959977661218057125230773308806404509146805973817447478168893602331514832217322661642744504063930464324308019090006439494718008009640842861125283653285765290932285244172300168975093118972468620392350423128440310615246706551231747152617089280496099434681565835740955719497920539189825676378305505101920323725838544078198247187647777500463364596360266796852238198373391111062816916295100486162819806590264028004496128805933416302427238599394567480400840753121846549875848001788071501009844249570192125840991797028701816841768279344513098719199316644153021305728054748679731924955587790740560916780652404276296108356002325819762448900152138792699097252231059926137906367694030373637871173948561568199279805116734102110314510843179346426250175252331367837322142293000839932130185582370807772950739635268042372252588549067164382152762642869198467277779519876839360403866519994423719400577235698909136210359226408687289889931775183820319710314908623512052468194338418412359351688627510493171955221650493326238130910409833936499466004594330157093367444542204338763100828945225734732323801332581294562394787321660321359821099812707946067266604448254629781470199809974231549352937062525121375363077843124802698137553031170605361393276741333001363922905776208837668607776813496699943659062551519473492035835549269302246361963473942572091751981510950502033292633012889101431563985653067111966699747408866817224540090953453329086220033968633349093453197315086137966344276255232917976623026131036755478520682307057410540223158579402869821609356136857484179607852547227058776777529392563568614942407181832690601772487585843968781543651167358183094242835511936957920684642360428816272819394308703008732880687644942339025980643575808622738482607821571564978298237078846800620347735736617231160996381497039796254982949656545477245474478350465139713232138084646598967613067081215538817332590695485473785030079991334364337508901585346514364269660630965164922710926280969259857999722345345270360980837588147081413058717749910976211233731869003247749006392722168234699041723103394229150299064101035965910251050710675872047674346859742782673148371249984313660027511963490987099328256777368694662662813945733030282378382742098355332302024796480017408282368706289689465974513990638489559992530677785508449213342931271358434831065349879600981686831153616840690697540407977698481411659336757868774432823170240481298516409114685434359959346102148788858941210670003183439991226661421748483505540177068573241581404594887756964705990561698529052221128804964775873646091711972681809964659577197472970054908736844002463951426024133339524196679031876275943187715519560511281258317487989479249215892073483063880685580607456563346525087568563256959848223437920034565426775434490255937749947206497505051038112995350519384886636072694341176978201012352826348936265645384694375025936065459052898531993488004110132229587452337090700206165353247144433030345960032112304542982616185449627108859919697776022208159529088305558562299968895669914309051600024198144927553225459230355740359643503519846406013496850946196452895883203225769992563214362279925876152383853909326703547916711583817153800206806884295961859009472146967697435237335082694895738585430253576421291699337137543952192658165801847557446518042955797050249094651515308281901263295412415616094565125531367665160318010297276766192583361178598694910350756528234887132186602479198123609815768222845997685390517936522043887079081633435282154503056232030820691867419054238693076385887380108592195251080829974986297495796630398162684457184796635917534370642188958233685698759526840526145520552424821078394382873399143940980321831509353613837935943413238338613784241685945377540816576758363894183728789292593404512485332533471561655692946882935830332410217477592189878488134396459227896223761123455046712890503401808035326000907987551295942182703649513644138402218004170310670180041871108462847480846950621197265849569205153566465857391931137805731319936632309832405540834645044805533788150340686434934031334256700673883665134383842060953317568563427574603528654316308327372463345272034891690244390341193583727231646446743133720689568827800506417343073296536930863705451871355727898483458616108052494742302412685712279097974505698106823967303724542644725668989443019389717252139436956912529325112436999032226535664588747644382049687469834943344059178084635256726184582170706999238378406394183097126917361967921465351739361029923017580078802758980089739609850912943627693775977282974245691709493582606700385423777637757367596521139666647831598892119992162910739437103237393343729920790783952934789959350664935217211390165411204240300764173645987978856838633025373884470188462060773099500112855009574807915293297275477458934790019537652671256700228103098121355905294346008325479524387508505140325917510895749457633442067199370013501996362912276358020021020488287533407914034352548199433110001425486994152742610069147739971564818487234864850369588489071221372238195270384291803249700021801061064365562337896597253775951060584054303029871507309983613331990061932800013482105127678945806239227376349209512372944665097235263896371664975611340006639428299507345629565707556411457945357644269747282878027595703576261378382226437845271999996984053302150178634854204927255986359720825732301103593580493234814246116906588215489389416526997848561327207010357613364951557657396757203314165756937439691093688957647846373812443762598327774564765503743158958567254136968680639577879135179833540226033396535983943010518453613968145005137198776225733713221800639511072820939786848900015635355310299879846173285880302835154464957023520935987694170553881154727035540059708129704623124193586992868449822086792480258245270471657329551409711986428158868051120176297577766768081278970285505687870139575529167325830574757055140362977944032909262577873455484274877303360780953631111603298062032047975672510570292107285541992694975218962918765435460599410164969192498547275103512090920916461022725574134409228641712590993121411080970309288357996469422350253332083234621768470999487910510690994238742558390552158476345237325819559310817254408013107509851706278394919807633610890120325509621609144742215732808008258614809784748690815188184964956529124637301273501624472042006553214512538861184535189126373253843119613394630504257303502995937806038716658891638748951227895803797978396802045605087317904679429237021588646465897078022962286852613209846896002284399130848608657219434306324802053151308275042430593294309324202560963412021270914029379199310551683724250927386793365571767326916891001129202557199325401906038890855391836406145946967549241827038944053923910889059736145429566247705977635148272993365923542283733618226172282950063915807898403293151369219853171373004183493902756709307286685080309882077145474221077785727812668880003128229005588573916720669950165867906799184159714744334065154764763847666615321155907297322887682444871594023219913332703932391950630334824649606451651073928400478499778400128502541290224425539485732211096744480017212188060280535320742002821226792287523186358279096190224308276113985036014558272764220052689596639428005276296015603133930705988558618808243196985301063269698023870564792540134960544222799547821861691090858150905343302658446136039279212787107540935994069843227448403172498549575114456187643317582758240175017439128569379543298119591408889717804738646611694493508419533621909628467188797967422057647346588291168103755423190057378854201568680927859970497796303107216898961941240532594440518916849550308012478599664013208648847635155979554651273552744362488696502315444932937641406678272467920509895511126553572064321378261102593905516003010559984100662606289553556739483982994581099690738053509584116370877480547891449277463650351797943938445022593747149865383205633148285543848580428951417403245752352797257244644926392095508773172681767426669913981190652818740926157242334967884964331721408835951316421886145786197212295964465347111765536114627423078968511558437221411124855615393149648855225368144300615049606402111544280156020385042377221483892548733676054207367894456816682496880507266807600801388284576376191430516500978042180678961023730388442216899467185242362988368058826490204359002328018680602772994135959798801211190431301249794026890525417483886672071927611296694615045555798411261659054412577412640318674730762096695761716356194526541683740463380157522796254562363883913329182037755834580434321499323250273335524296467898160948154359014830967181958450880601115151520821627047988170647789317637858661624311021990667808208574401001720008761007647848672308890277237457219911915280790571338434826473364118794329974434516119887581087770362405436973505539227456246434176258482837123950544275518897111339165367809549526495262655525867346055062732411951243075794667154762037024616118784024544897220303709744141959241837471840067391860482833874172294916687728243061381258962736660638969338176649652589803880147156203016545962684548020260285702490321258813975585530217247813612070415395999749902216743758926315998001062773122439412266005385637037951793140792808778303100658197771775158396525901288994560849732475916046816347653324739470779203389542504278150245785577114718659529487158620019768462142490166913747968036946629702140097091680064656008122003939166267293294330760767347876485883270911258279773601065898973016943487601583053060882734776812230512548799250988677134956421175512170881486090600132160077444756069184653049597743270804323906939573010878707045691868584650388900575127711118157072132998707698609628805896590121494203305918888159020869656391397475084574360212761384386616168120257643469407465583429804352177823224753035173635808259226402968806370762995767182316071541560923145771000158744378554616495097453857498601549952943037257287254130778890910429136281320053994443355604954616685188899426969700036333506378552006623971131772439605179797531347999249925951591012241390831810338852305122345512699273404607649902523507436994290710578170954420851267479218852042265464475143829480489145407637475810939423302807065835737714050175584218607647774467277010325044877685346975644462906406326240244537043620165990953086907144103913515976969830644397090936582572640099618503213878020664020165923813140741159672460382402154808272451946338193570743240755732577693770320524432302541914090652221805995840285462593481398444603674589634697601697567083499692481748991435818530625295117906478219338402505187884967630510074089820984633335420295782395973185382309234988537572100507280311516581628505116119029342795281086882284800425501687954721779332037234699059336005543642568729086664559682713704930377402427172490243283177132936562707270532248274653588637030572688934198071540349620246156349661801869607679749918373533949589312359866175336277289072095345410410762693611968719909725103263393734851351800845509392437433286310500943236222974474652549934642713860299983877775931021029782379013619520060109960517716237987018542610415877705603154866903963450203789831323587066460874300410862368658291336831461650239378894332715859377339208930900405911038894982538831221237061133994808510293054975005726494273801494869837690516084557136579981158475697494020757655583780220635513592075635792488078181572851850662181806996301308519149517754666772854827365711341801128796966914285312842844126594900583778687197361261877795420326038075100987660819884333482347764706571832540557142511342389103152309728984850011723383219898685930009938360077257340430155806495744106380242139916503425705368753864390793155549519838590364817361370900471308279657586107030246218139737522606979382354242855679428566819136486330757745783335473658804461290899606327738537090196406973152860864783001819707611932253552412057709259521328052410277702815117329420668582529029321010951253191105801849270470545737049887323082137663334712804643009324835328719657696544199055854333435859734747045469048529022942658959221463915692402433580302254292072737148496958871170537862611766157667207504953184289744941035880236624359496204816359161956151238328457589798282714872611292731686808916886928389896201279346449123641392351271400567439787926019108952934575227627373578806461524989896561267307464250053655009930249199077542704650398689919495690279154624135023282410238169967940043168592912740365877252757726042953135695348681071754850454486147604729250204997320867925153958076058398757179158954983964435800099522089407330077843449362739665058165711836069847180295620590979256591048458181321027098275080210230350864650958368430749233178457136470132105546403456462835745462872800939862892592120861884607597477096751209477450732159017889058200757239476202633618122044621739977388724461931218386335918127648579668751789796779445281112967709147905580614637559496927625413498688394684395578640612552975621158791984363554314383715765376915914420248855960941883983552552059085215629456357637719981239186118328706434221608494568259766496215594324841878796959738445704182162873435097830220834462277506126748927388841643011595846606461205785907987685167888788673678004619635678072944310183126860914786630593284649702484111761579832828343327390687856016869070901447758815016428135676860048847584474492648868589681142390797905831869020467858599174513001064815684745289322759350669185817431251874488724118388928950904138625935659735054902879888926343445255473080210284308438302152418733515985197853784793768852639499372540869834782021023088236634115619051865376881927839938252907152131584234223761782412312559983753985635007141974234723570245976063131704157098340755614897605884684851960892749662871913107403447471092285813426655598475663046835045798559976185289436812693878997312014103065800149787262389271890590711448569945376367762757704008786444292217313702518364907560926497151330020062094349368163506629121954408624440148749612772056318203610868543153994061964793706941576299501677964889845494513212768880772770784208777143511232262169862595153585579211109469340977967393391002044951341105632644525798026769449306883269636900272806149783348446128401872824607672756278215226375403216267082708267142870123559528143100114751011135085428811481387002724161621672132388675950476091037749056359747966798463799290365128548516906609279075287049823457636427104059293797993254089517178719659391769853469837684204795149558417729096436242668214680431362474491723794401400090039792538238720153114329510239519464848183758057991688300279353623939765283803888732492239052317641509334410277868645683634253027647613877451585604156774728835926908172257016575220451278941091963735841772088005581500630216866588621845548252334538672156675705759520217316199838525494083151713567950384019002278253171585000897763703438903858663425207248121919509889640862084404081752499981321917135365574553946480532086834321541600231454069190507441896153775471911886341268687416715163092468905955258724480419574891398179491398569970182779917556789782194557625715416373393412202665670675354641992180379872186168798333311614453054510394349638663133046700758638547148739015310718853096517097998222534619955571782186005898835016095348955143647235741828056860976535375858896205566618886927323729801177930610578004677700079808532214708737131588177797380572706452419181635598367315333583130773559199725635225514222533264507100497358787994028203297694446170877691658471040721681206536810797683145394427191847010514552571032011761289206675871108648395083439356671409487561381583572194795665742659762711045986235526947487116110999955058749719913459465214674426655739519767979066824854744672048475397725162775594395172194723586230034013235235633116823403575886297158170933047909195211190251254177858363913469569382540887103885382700981215103746915961007251760034896018667191567995629216113891285771324093751152609621147318265884626134063953018648689861672512808430284046521221268605996892515048001365923455684065397982379404236452062159144027340952507257717245225567021846267733601770268233366973097635247634352949673148519651476580851984212852706084227767222999240677341206878797601129810724610657092414005270433102764052628184420425517382175831020562488366779521661751050525443788102220180061780900518326433272094490235526983865208587581436764801598663102795641108580937097516317137946541290601642620626586504544440573285443152392676069692345238786034128715743392795295021932929291231259413521525943856386778161467787998155668075913244918339783263722282696049655489576419923614888087823688715115379350617919511759584158665073694653220536300105398218592374764610487080751696584922322343400845590236233259139920142101979958513616526603492685895897221468227817238035053630404878979139906406545402392223529303082933484166660515790594787688699676609301458814866177520080566576788656582411175741550942056394390609618682818734132682256980015601222820255263623115607798136761643879785090141344685139065625295886896526777830720035891432716977510555309462474596940118741993718942289333598370738332890964718091642957212989047146576998142409207261872800218354147485957823519899364695907460641341799176256453641903891893293925528638752602168375283133008340547468998953865631124884616061662283037127056504651729956706348090337391449813242606177702875380501445841279536318975260163568254125785338345301525455257813132878524530782113828286353516171849952024821477751411617861211009703477044322317971901765627820766135760677747113860560258283012623450212116384071992357695096814149765015954751301330831493161457858040467357751060999412563315337754455516462585628824695028590256641396190482348672986438709320967870072553677236370514408039866824588956346109900877160429105833819071521604178923866769861284313104612337760921513806324682842319995536351633309168161731729157038714334646227236084647056891286125917117675968612934862545355427276085891182342416388198607071826246087473835486315762624655107040296507697025464662492051214722507836304338729808113570703043852152749236390548592812792289561733599160763160343131047926892684265978003140446015728838415918384090151116890667431226405244331971549712106354534907633770111719645528782156318329389065595817996964633589736068266318489718081608950643213935526526931599841378527264942055422951878677447593147036750350205882352466367886693706125311849686704543260709423673674139547716836296083190506406739042168927480870001082751146079168533350697437258898033872647100368551566455620298351202104119115167494826755575555299558337548790741184515641401588295604250333650553544047539793698471991058661750153065952847903653854028962283793548731075670212424924565037965653761705364061865337649733144830077114372613773009953044674413835707758959694225144363206883145049183016849284746232414434283507901037509301357427337104356453726100014652863806688808000400480773685437235826790802484433364242934734460057801032711858864914382421240639263123939794115810865575224736496781297722008257664840808106766522565847080581161067073514724238722199019643028691794207412612337401073089040259186741500445322381221019715964640908984862480670412003272041231572772706553693683484827082931275002412017544472589994305632725585908697301308038878025080151453096152924160754297132839331304949098684029852730878059099254049908925560451710196057526029819800519428389902795695861016623693206385463186001692079484106895044966081500618009377070784631300551702433575591627690252712212862471815353802477566798121142316394919959972897767429619941885461201176986224811961845029505688574362881397447523368280333373666179832804107523948686664172749278576525812966140173314372536668839053507115758014119073981090525475793782756829879105443117177784977678260335796046836940327088700509826743985402023108711456882960998421144148242665785628214663414558746649394193512752346111070406442371073148536365645375229188913596062515640414574136443917874707819750283361385048904463080603744959010250811743927099916063922242238263538845574061831455642595668125889726986308532912963590567525631747857663074556780963818119214494210546698188594996086051618077716316648403334421704443907057291826111552784863207677802204481876772745015172618306748985741872708983433800566694987822235823877943073906204463709830813675223417493458223194957648889948050701460628294230537864012337637392112465201729021416631125435427709281912773432437181404285978648573129317124054712661824768440597530035565218550704304048231957808597574000486263524329858201491933621350186916053751529927116564104353550108996637574092242788185326435636022456930225261943727552136567730410877377532043982827958167267303479678069133354140387776395525613715577031612740968843607364874480635795479034481556579455414766411697155560447828040116124795724025011051678372773571312297111767066261906789770213489001046130146757691597021524486733443853121047051568576118122985957161531344706537233537300057009094756791107938039157504623595465277823728783972663687582357546694525059405524985070767184897307660026559665772927573339291078533230361743075634132016725094742191773227192600753564446775713293484003058776187301570260776686373058243018960078326896628928596018420326696130562870696890517513905008803529060011813784069804659804997970064606584184226726982224230339570598090561564406877224625467243360138043386972649729049399204042249987438983349983289190107635168636264900464854552564108342490845613821861016997010525718359938208510948986935769049034276992887200509581932629285608750322216563926758444515842235394441991681475074871858987001595548724403458829308669731846446934020471673668818156113480238337186895252177306331735875009464436113916408863392647775014464826305262325505572704431700095063983762315572316958354962156591546829788587201888951372597354020032761489521748559308642964069302585398953239704839878489367948196081197736704853101649456151646524116635595921646267748351655304474082733368328663793666442434564490708734756512659946139082864411212692663539668990862156925236223460692874561546982900936267398378145416767295364003666242075384397192629545160745606394011138737589897032097516120034184219517280823375004151292480504295548432598020313604733448222918731480487043419875141222127863790013297087731752794085579185261245607708970817947638165062742493628685425524763396371057539020851015063056342048082163686984936056709512262613020007365105987630850483482497555468367449881435948547520837329376156286684773690413444592497281984494002148682864238405512999287005888384024066223206848913679291622534047468231981234607125367200754218723995242905212082581944951202996835971146887390700289571350126662570164667809148704093133871766884911743182825444937737697483297617071128547543242173815517096294484133838416971008223245913092467188647694012278284331779161305956099810049380358078895758376683908592677917371678521853803040638901646713612152351789397302415741264454214261473025997856492728476942045704361918359355766337942420579026362401372956910617040376253652453625123349257377134918554235254122521103190699932876196668615063150507601252531622873023988592654180518988970450111848956575916440580186274053707443590125955369951350179978479200277465997913738703481199928423127632044783019769974325685055854678161968662023109773183726527498764857983936316129662366673320520375739058329693492768928822805613871405653731763107153213142528465174764126514410922607573886792453567124863899359040388221667688063770994315289720130797672820462909195685709277090484837390266690420374929917143814447389183644541457790951359707810626114527282897739259154303792880070407566290439817624233392395673692447406124015202412190682163150269842364442009431771656928156568162965863148988213851988903311382958520571457871069999344883345243077579347240433121964882216270622100236248018702284200143817285546032067222016568049885464872864918727821952627974001938843214397642122094426345578062983098299289739210694649615020590790004642862545389120843982787405978057559344718495789851335701334861922393855717431552079117369376738564724334216469456051419683881115662900381756053719160756479045932482089947731076642012646003026425897540943064379073211902985265368727590176939157458977757974533631136930972038520601824030437534449464860365971501497765649446477138000525183658442471922400275096433792383132149356210824172371433939163689884929345609429729065598056626900006915775790860944979447796746653200232505619630656284410463301227859972260552078726456612543120569613089141548691467943034904162449866228080785772301000274323634247929968541679037555490243506928202389835676374833432136279162718062426826671423646746749444015092418359758761320429922676452207372407853814927440029857198914564052812363466584768854770784177169542823081504886737497186312864934028221437968358848500119271937200486188646234480100720104588850481715470608058932455682645337736362963148613085804770261648478876594529353646969099503645699891249526290311205173795305393186804283368139459410505315962851816365737418251556779170340802475940797976873228218714670726925871625110720656826142743601023478147211104753026979878256243501575424293999116138381737343974746916014490595908033542753748691494862755846038753081869393768557458942751289154893813692231597976097452114063094078882826071734353226775793820464208405433908092608112618252073444320079027996054268298508591835447331616926810973443371623818514710715529866692685277309473755024928899509563124716777613776443479957580331933264786384412013543036076077913321768428846464830541291119460100869609984051593034266122068196070165827571058304389194681880034406160319779012226253731732586366439594594168637096100497919140840648592149283472824605762575906686319595422792985700829251212889566301785938504472526445237922670959981221989504728009086551172352857436895891900528109477082256128231688226326032330762488342190183460838575848170691153399847980007881038275210191311034052687260321411504928135166931115135527085772312209807805212518943311361107205531619695680425579437210319245156533080772076874205433859748623870785685403441081162891292031864278304067361401769407443687398941623237688460719184577117421730078866916577121853433240284304306879494227017761530995452294931069624378908342685013437591473279081438690671218385096312818887616867549446416553034093865101871620536625654930517929435019239591719540805975892082845512068603583260428210405302309455105034334493558619233920568115673256356230476926034118545289602317558188148215042853545274643337902411949916280800358436929002154662655686314439874140000563097147526712819557088550794877213313369628863600787036499394304598284034422619031285715223406759288925806202275909952801033664945389716216060806103432863517344855600485062132528782487328766940982116609338085850918074468629164592483035627981115105113925318433484359585278082897877082808443595980757454760018514334956038941240957849257108450877787976237379093109353846223282491942902703035429122546415026414935062982872101881917681549404135635702941420525068919266836030227651810859196164588580733618379371352992113795974017429800659037589675488652170792555044615954921623103657416460663969619202906114589621015644835119211136575764757696114843586463515626201542138486480769603305478890554275966783934412007883056126703138708758221757909206293591202674114877877623799776901680572538151396993015498933032850552699209701027072702359522272559323464857411781915479392642165608885186812504573385949871869063937732267300164827802467155903342013158938618301601888836812247863797364317166285726994479945298525219171923022643386755751417609140770919220121826571208739206297184600649535537562737019592472296738773542311120018855587026755645206536795663615232894718887354837312062248361067946942415513807343187261635926557138000583767398223592328993115007676710245664289967532501062292238736965870130272450095305414624710066946707568169614623139717938650141905184301467937669045991567398304901422202129563277664106178560284198209253777324555417059980272177690011781546031860613039581427592430128543187117595192301763038472481102692818213315437868147837843361695268149613188607638848028349834767387895608278530741722978973859978616168529455136645619486262659336874028554686179364002332287533054283584342481931071407538759865396887630878701281974328568087969287050865365253350491294003589851628557008674890843069387228754351347787179078542652819523864483903263085609781695114291221603573502639412971150764583557279531217025286318588502742014389978280185014017965708467595305269327775095048443317661910361906291885422224424331592609962102344870908120342412572159069059748565408560271011486367364883055940835985898697918953148795702835696282595779425966033120625589239854745858837538304209174938716711638937099117533963874667811344928991946429519794934303671588355254231314832944564298770089452083359852475327759428405231783905086469177989875784761826050823196419660491237280564298797739668343055977624459981176743860145192533726444988497178608814518103746375913486956663740920398867031200185182180215083508622493195869358609346952068695653134617597332048764976861611992023270719534429526432575021990194745774326375824964651829107655138114178805512307987178225219405146735773250604633158335438023216498392816021635038848338437056609944296251554803385582938054599947601366372114759464089351749782477597746041639920848459066916897704440908668524990883115028033314577980333178052783512059351407908288214372700749867075503476016743874805993803949013855550437090779014809118374648520711933720589270826565419052721536439957589556340993562460639864806753866844221726299753848259644131672790423275334374428700612025309421601504430515927867646585319525101205024176165803689308923121021337634995408118879433856768838392682063937913383811087034652235173956320919739699713523789527161781172808679883996432917967246642835792309521037377847215334782130134098853958015011612870791529936803182619333256390883806165390519852410706637164039197801982498280730863399943118423733049240394780200907709376895203121134435902071856917752750956458983517771029125413478938109520551488483360910716615518461244745077347812461176046575734535469666563883098911792153254225847376586562766999221316231471385015429845793666978827577064079692040853162225817127287061989240849555975989921412654664894850300299441954794773922198075601003716757623619636738159451496942001792719844075753563174498482832873801213500317605366244807099047169461361615638949636150634725952862707134692404185333879507492906660421838797135445500826762817718280549328353551930534488281390848288584522132275800380817556089099800103403368492829625118561513165955202710570213574821423278497843102106920160977599859565533422051766703326098340383040795156322829882611878540181557086809737607712325407168171350757172161557605198408647074668651306795345190814108967848148962091720776837912456315510984299146915501949046420829054205677843997114601587474143603184860576659113279943219376210602555878999528785010553438179951241704574442524460292494059862326606952246305607732225103801403554076385478382631472150329078884667852638909951039980137400577989146001761466111389504777838331800123617007775611449678366478870756222983574342123936522064814532198638341769392019276775927056164335397612278050399365346029149595114053799319772945159696332270405090733888185636201561359036309109100120624005818325821052787986396462663356415029812396546442635756967859852048449708491040439596721366799234047456533047027966261438066783362227993524739269794068426403583695083959950344719130798926960337602426847145924401717089541505921309627309695577733050046958694214023176460292914004854075312779867939710465405566739661726209875570199788394338047664062500231012110145238918625805122531090035420301439902276377016290565815930394473716783448885876341693730734415285855881043646893045515063400313964611908864110381291978705310075146260292537652193292304651921623638031268489217351782938060582217384740332192235993572101502079795772457418848654413571819859857933976673238307556941917712275828688737872663450635036119355038719093200129425405781920275672900727648866708518961930109409376727442675759451195514817971279528922211721250984791472061428188702895904454187571608793786071988645855866425423451777916307063442115682675974513723931308252256827745367174556218589755327663298727937350111662885765009730688129326127686238641085098788874983656920276808691704456890870760727700954989982767828197816390945365471161383748789201159777322930355657468533306079735453620169826373344996268352436232921862670395006313912378181897079325782233305737502174553152814774244391134012853372662242452125982976931970529136618709764258069551664458124871647238137107756952215813201120644479315096651907558668488819946445119137769747429750291328836257501929773545338635800544613848303098503093779077106366505349824084491344895897965500266529192129668885782008675950956024236868621334641845148099875674583208779237884912100214094629484193176999660324490013838287147298922545647821927748413326120840531839660184567264147931782778010951255253320755615766798775164416120690104535106475112580236368048513095026100508964837478065589640974173170509714470666830237245122784083448029730302252310339452644473416854884229137562302051244686463425415984418831427132966187391798177851819347641404409540879600342778105366432672503692673595372478960548017125126507484367071187199338321494609467719611397249854750320908930590612035846465180619340188150416412705435253459905475482209204612861411698188334216732845897446367135375069566562525525082020849760123873993360748806336747144096521087771264176201174062932897145746309201112402021948429397380778256609996381141061241664656133533699765301942610562670417026025932315223219399895625119057175983992086007623221897083279134853074676108038570853267018291986813022668655336930633670791829831174708591470394345490601643822883888316878081119447862652046383397330998396012674617233735420234698495378349279518759089495228986225304048633263610248055690019573372256955424264292303460129397934935833859960960360374015231070417466620232094157728072722379592922247737905754859003915851157906703009595028327434472212712601910254531002191602669759167822665587143138573483457950862927542210788512197194464106289797891140168478332223934819663712484200066316328195686281056356557109415072826025776700465916742770984421770602381566321644959970365806857973315617970706883957442328291771197651045882070647603526691254117740553723995342398083265773886250945732693623823708996027557410097864591254805811365453357113355259977179889454812945511420993122967056860416612924854470792723987052766935939914313358328916919474520492738408950776763804064829738433097955256365614769655173440704074143611435389170245186534344325685157528721194382172764799735913721297570567519841548654892974684201140809275395030038084514034612896863629878868395930903912052014555102597143626324269616426411810042453614031033289983734125911449999899971581660518964510618296980696227867445652020335052515263143777381080706500923604222677218358635764695286903768905292540246073417976271459866563853074249540766140820025625634593019651882086431211371146244943026581719034655661102693994628649886649392676483068001298132265029978041602532561000398567287579256876999690227063760200825272376848691429917801262573142332722528209503238955219894530942964745652186238714844328723597689459364868721023826180524993717416273421587573705223009680119864587131265520922975417280256934720920181246609915958837309630740789231927204908847257312269234620226366460110559977660703297635005767586590937531066283343357177805423629493882340613471077983990268168110625040900540759957378773575054024521691248921767320662211940507184329199683832625976145851354189665682071341947841496631597447469046577409535835256335705102474849454755778624312176187404630998443767030803128477168754903965942023786684529270277557175597131618674710427290415002266084087018332350089226831891812360640378910141325952178268982874545609992163357371458807429392281293759433235742358674887276595798555582963885582421378936565495324925312699012857861926497756218509730540522939788415840565946461494422033327070124024093651186172263293167728367628863055447805841140966061876787070778614810070840887061765326352182907964440444595612176541521975068718300505059456285717438276057056515234026315421487910522293060136181522672759799908479152558973692449296680418346379483838202255861954952048560523861487906519745425706809695303069673062023868046527312816329704804611942824033702043020677096144707655160660060771152994710959499759043932183334297000261094247653810289721589550196444737183704551952994840275271842268043000849038924802672973582630594892337366662746124507492751558445342088672849718836337346890631263367718075502568158439436542793805720891481642170725529431266900448956698539181900725271388238775761685313966886421110800123841581459308980281596373672978283436489974919327398069492404912624000155893383836554436273378150352630179557784152813760430764663681664032199258448411800086198517925736971081929153037664477699582555305029315082600230646786297493793980564357994095827084864762413145394769080657364798926217529615110614739254345253638264658798817803957385884294474484111771764908663798282515982004765142247440068528465976391651925368643359739068836348079012545320231756831259673290594728904214942915392878948547953383920932258120734145361980254282581051770521136865607314836989958254546424263987425989496595973537041941075445126785729207208964735107749775105309946218782219340445491368304454650926804004634528601672542750277792953101970605134996573245514178729256296263957564454212049453096052911600587164176228154896666942905971876815563094019461318275883887039301963255835581620733205812318996902834472015576764095060734767727602879270627092170016018471483851660906676940228386793204375314582412029605853244307093239358361879305512829292956183341619041253646702301023812951609321067679106904817482059761851330421106943093775146365334180889260869409467385811389487753427208385764924782301018818169345092989088695273124768853988768807048013765500768118579904787019331025710353492511121337858061059467708087372871994797096117531555742639384554724147316322961804816987006076573478199831636423412308961631611402244346359078481264596907543143729070833978251850276445648239888551472692754902099729128652243655252193177428529153084219415811498544469558381947599072142979244812305573086981471640182467771724555221999692145157117233104970337721031167159330025830772707294837562228737576648412427490432025839097763253571616594106938789122547810012356840491906409252375158038530445460576120140447661116743851468278669488915590748361651063586637234883662073019471398765212305973002646058891014553618844631991648671287174329332563927627270540838125173842560358067105241154510091899231670280870082671705813410552236886777303202218787450668690802271157374093576799784458112534752762019190359431143210296198201386876989579348746310086078037119657493147351346838552550062072112530320746545987338574581713997470764253801070863500672084993051115472726593081965279684894365828878479770406874598228458678518966581103581694219497084544105245246905235557636103452655817024093794299670905733896696052729964181583512100517510179934526877792246926750981471153615356523825776335331252070301379922814326146750684668062762868924670014985695854891250564186055370792364541499704758182063321525822324029647365563870612144562708719616783321894806785884177990960132407107629758506657205193177404393000072797645161899886219991136966273065487770014268851326204673494213110119663571198081027359661217206121861099340293983021899552076341152208150729380643135945564373098070005662420551672477443056587067400943287081262916612158283290649333711193549545670065779932650936200134720364953785358270371262584777476371919532498536025895513699656912030623084408402639472129336035807220647511754426853043543498918866178160333605030265275800062197858692714397847296949568558041826673971473811677862510290527054972112538334794771942140510310811105620357112116676666083287666865105128055165763438167613461696533583089911264416236529546020887316351113314976322091443840617515554667094052587594027185994714185506871081261205546777932434928310778054967367417978063797904449403533046441891766615030786487345852618251844929019030996365573695269551156969983986246439998985284407446097488091626991091682817977881470335779181572811379314612609158993347859195700260301227776721387926607768430564446608098180490696288123784798953378892665670647318781751992769441138004787573604470575284442840305088070514789297038751569788787924148177555452647008911264893194936250465262679547811539035362176815287008220946432007812256167139312601959771116016405968102310623334198610345215274114749302068187256733231375127290073664257642292098560769597120205159625185821520750477564866324573828345238022265199092448694489654303700908786253951920051594542387502340832089871616950698278767568175666835838971034987258774790017086233832413272680742168131018609531089274933270704899380162745475124790605606882205733500531090948124658158802523385194617469343294277597333893885202828117485405741435118898701463426098095112970375705297416215550218217135242878163571361557793289672532649992494838051208189828595843024572309933990372907509193318626611407739417169140333808611029465523154647941625215958322655275341299639332115870164536524523215466312924632175086610317450429514934106790313769873360516544584948314430809958167439683971523891406095322212460949020736571690515065135047081293383546274544281604405785185668677384131024710619865932116532522866198397847642207385797238869493400919487644486602958152958530943998393545942721320879054211843023474181368836942982926299615939010453781114023386823625240252792813669088043770526624555386441593140288826575663678275453854166276712732045416940669589947358609537538830824867338415295632747918200993160602929240431412797882060422247157842851522156866388904648358993043239663239047905143354173061168737493110171039245336680477590971063941596124819540440947289041444335428329758061610946370533463492049589615183224286915643825416923903436519821038612697751564165874722279591118757073895976968933367882398306428398874976564716556193664311276679972392408856061177570321974954951658115299256852539376006512870533966758191248065145533463907920999803925696366463634848375508711715814981084382529419542041258084858022294037207864382395032507678383181868463870261224902971459697289609332690275664111040841193017807728599318099767646691240345546805492704985115791795198826024941349804319150945132558942607900076659081166901582933816353614057835816501329073066633761059061867276441820374745786511415594674850744648801004779334076612786925558616324783998196117865028637115320940061616738250443508451771147600560667462425477836025731889869124794296969106863249279918187500072618270123600401244032934290516126498070797385374191211953616176932615598999024255154987716911256387936429550816389564648771879950776379264251318717304170899741759078567338903957484011692390473768093780556313147530389153232518015447919988720860050306417098925345838746387065599959253924713996939231160909210584896974852916952691397347131457238211925698229306622285501599376718486259977817753372273097754687802876543275515852793442156704439294893535525937072737365024743783164920131453688791083271841632604589989614311245755744002834448894543547714267985826179263307737524756647721772139830293395294274866010514411241702078878952865216099565055101605117165945673803281948274178713168307895500552570199830734456552073855217939965520135899139285794218036018243751848769737970428674326444206405635483482147921745497491867636068933413328505712342312581538154688352336359396428940515716354807939155389060897263701935542142018094374871175079723469947635246284898114399814846207540387110898506980423501454670656303409283401163700514779963394000116345451776862287659372229040272513870140946882255778314595838208090621741256235976047965420233203683693894133185234666748811930933029990184531854966626158195126806903277872787393752458611851463907161974196395867158850357565608913926627694829104044124477349650706803616866491131210795613219148620661550412845796361980167609667352861587474848591747604467635741799275466544418600017067025334856251083398364301048827961428616075572821900951696279228085009070413310147457162978162362548333305536758136809203388608719367268711948260166788780077675695654454346450620066262943766517391579135026835107781490101843290464920889780788704110769578334701716350031673358765340279768798988878220901077844092675833136147989035209109288519587363255149669548763048108730245882699511195600218090126568249417284899732937637974738423733474207192045008402678332976740730885283481283207734999883703001456746328845471966821047564229253193878181667384185647450270667012637622508047476564551546217666108756695432772086990742045044409849111077069783605920390627853112187252279383352578415588642865407587080653088037911903530523824589649737160758579311918818444394930003376132014938574093930537581655387221207805020109860407884598417500551339820419489091883657717007230775417347969637842110964425825049889890798056601232567114342483085898253132026406783773987946730484977973267902053810414363570796747166043269345292919561431357555639389370195050516729116544008460174387771211203096200820772620014755327502030839353514677508816652635351645023711465452360428490541375522925938990111733887118966609880986173685093450954013649485077871443179396216897937568729400783523337696644681365942319537594280986208592196313435542065561679872640119333948764388128434188371076031483104423689239109499792599551110962670430194762210967900982889473123946871210156808339017493364280602797450739399465686659076588011347469356197979890172731789166663148180365481504014260063771910948968162143431121574781586290559452163156389720519594501808721248754419637809771290985755833212413490089978959400335808109670795806679033701010941927600335613680567456187544162017855721811008552189542114359371734777510271682522752456716492959905536020669935034370652787544141983654692397287485071924302303258728161909502733472519931918044381525366043241083881464951082683642015344403438502711153520622190817627528614620487942678833926790083468643341744826677009668646307238030105925914080730862652159299630470264948333773446445238627901639500500772477921785436262021965117517145677427724910645466741635641126664112080965179148629755838727996989047064020452710911780052865735441011371702820387361428647382384538592351897813432733753445600666697069982668409372882252599202088676225108044480214228168745761266344846865277121991377206249363087315656619340272459878992685590376760456250199839867946211104363796134600512740850128229395902630682786078211969286561981152046804620315089787983178884194317226321911723294183802432331072893922298322252402632161263414785443866167751965996587569970373854344611887863634072171030271330089960697297379198351238727679699923824865897652161738790500771044546812495918438502624715223557014603941485520946725032699535602065281931048504461569284015379346065284493589119577949674954667768956722482573954130663193479436111965611541252407330600912603896772702239619884064529278297576780475525734838327267687418142375130778479215192622535835219397389019339355531553365174812768992092990152088022634823775902099640504354137704395542917873500343192908993096968520946020821299885417833109941047008871086155632387963352551282079676441461741130966452829451054905127406313368622462590633918778428719675685890627361178936997629628390437708576416167493184611648228219142949785775011745254037602583027775000431461208163483128704684443472150983228959390248936274811892121337749859923657635787727263974165164683017980100649876955453007669342479276860394601484500180285960162637473740947207669584237936374211528513209112863845940803436404581163537973263961186040699213695076593247911793542392979533746569131105826210776552448493523659330056026595438214336175508370489888913526526265928942757453686311207244089916998120748868530261055277782569466016072287018228657222219547835082093772655315619268520453531721865432047831994599028491887676089399115160052133424529855764234085857715875309018189869341498699474339336363752820077702957330082131057160639283747643856339383415253801023820336157390041693561894715846140873667089503315698583558385520751252616012672211767191942369543843563733885797955989895315447797160685236681600794909849111403456539654535685911423428629856568161422396137222914489741618055593632442381379427949962811196287054876912527313150123117737406555931164838345581649130130497411240964753491888064893832796376579163774956791570211608525140701323246237638291832744417797308321661064382223585715609283427882956376622626959412499601647901377883827131960768673370386086086606395520864169872981147608528798726601995802869827649687942233208122981065363153186834807768209047570592684275997285100914702730454080523168215846558630418179431338248945061550653449646454354022859093137925494365402752370091029438502581931456665646057021998782270107769011663566567244869301449315701088915626803141672749828455907855417679879975652610707389584307043393489332844453881001719543322031035282645454198476115727295943537755124138412653416490947411877563099370910492961350369079488003230923537742502175696745713746062075405191093188466921103250754462833628004701643396911928997309340704613295710017920274626161055928340142852796097733097863138541458394906688375024599663776879680073318018784396532653430805119629336606833475629483116442559783419680478059031036582891474515858283851632818328900504481355254878854014370985120434970197506378404065227312796670695412249789580531545827209072431370746575570047610310719206530440894890836849280937812733933697388269770144638328358010638009344510158033970346589368240089049214538775235161314975857975839951886920717389027559107719265345260851186008346210638757036879277713392927730772278650113209818528540658179842078264707024597944317104536900612571450671802293578589243994441045235096140919956890828507436244927555537017849161594830086229032376944016062542263762314877083436611078327172672220859222297400424677100491343156319468812748911884556514106065444012913812621458399446004212306172261729728255512231369738576893889515573179573501259402351073447915213535128129019087087939281228874694583355417135108137897957691140453681725776791705226281703387306263398118887228402824814987732819660823015306405032188355928686117937881325901372968196061942443330468288440358921198733582541151776658421027208593964602062682042498626384860098195171519796758826874342870659050035802362325374467147800842141688416862993544756805626687242938714499399118568023756060205748898961217887735320098340497792722611074528796963325549698516534184813554574643708668455710291621527165958432279134411110951843919237620637783606681829419266596087699542122339508574744075290776954312797660882857081602291271549910780336567093798317740965917956855879230821536897173535601925458393880917324755680706304890967804892677416226329648694560295808053742027522407931618351597942885744066443930420002436070172100212229793437105047866853533910798896616079420942544369803749223333327869283720568622949229408022159832570472478817555575485858298285344781813231301250242092185357115705959552503640457313600426686214996908704609396021109425665223447695467474016222456249105877252889346659970443874709359211018730499020232572193475683812426075902579270727087898733632447868487201315225346758107440857193882165430237019766117418956310690823228441429307328227894584730765217551787770738199025610186010336282875073229265274744865757791433130215405058524090851102661779064612561040732244627924397903993945223479593516733233803714633984134884513301614702794655726282678115771324785971281456558672530722947216482350223672244519791765186497306435718014751251268709039477072462625025080140448178231403137891774579429946041521691973161669336179852747456433381903069774516220316604961414624857653057985019782560177105786666585645892255979979398875463947604227890368836058458827172224926882029781961728885499657371167156186443429118730378937391922521935794512386764727262553584530631105202602215149763267476736982042957375098333416922691317941904016539148788905626934228390206646766215880341126671364752166427712255653107330803228282949261337844029674927942708412170384221336973262846308130462381163081301778847981674652535841262667894198573895927222373923193685265889056621515176897240930413174336215613157149853017969693813333351524669065544704379646613605683633151565164586509037059187852782257036458197973025057513623863865529574974372712506905326575631111718829601729135321423027218452243665726833228791998928671256017690284686652361741919114447453618347069946091977923734583146779709330464293941845545342858223142912138345280329962991328232496524308365158422681252767750936502398682923667353560689659419896634697117023021524917979745056182840079306985272480520660322470128430104927522104441626811220349187830046267719857786766638048979102062089661587192696442299079225587681750189538007258287781576432499315733909982137898632554671254837110718798941152417250288779602358395260148393516037440384658589324093022187525135703751405646845429853633784165553914924756224124727307568507387733298286131875849725186740736074306538100939875831591687273408143807231685224762825624211976219004652340284054770230621906103787013363580177068745702739932051814725991543242671399289968912102020528379588014774576592745370411696674860661276172902210363360189958768611516474770754759396209540826855308968806011172237850388358855060424461528104838622438838164211067008308126294220200984683892006149601132299097681307724308995004530273447574538574956951717883423060307370002745618328448451581407974122957079036493621605199375366773956514794681267961295615370720694662808650316058055336331946922726604757544039917446767859966831697282583054432015683395897749272393484440649519201049320921464000679691366015194698226918122543092701398395021798301275167259846967176776735554706555710586929648425075977463351555524493531262818709115903305035283350108806373033075990220417069030219657562502009571435266122327425413437083443387409364624421824568135464058907778906929675452727742924150616365217718143501522637621874080467784691103287326586927910512125876955565157192327180680544721282853419937634616755397424760039769482976564897657684549826815007222012971726656344290857502891557620497550344914233934967791424788811990978622586581671189205112623529603275567679238187381534692866675908110088712771152535877915499822688435724670564592993100043186053817835033940675045691783657570570076370855139124008487616788682240068079040965586156858235511023202797835266375555484564151956564026744773808931411335833830438056934856237841974071215037989666611461059195616619733550626653944486480897907720421126761848797274117729716438197155238278596311014924157848092723177832549193669409352268511584921309991765900982953904698111570354113759502005170316428647722718033405020311369261241575870630287596960067959142624578976017509435167931137789115005794538284606484268920675298595897395138761959242297477759046939599394586852211229174959195953822361821111640997753812943263542925892652433813531921720476978512684848252757807035634531934337608263095609333614520475020368189079059221252981363217459511859516585143951484735596447231841989193114702663851062193771283239369198449152890680243837378769027569131596938023925023007134588760695450450184986618516801314777339181038920670173079634303935551551403665583698387299385402544728526547225170363925063012361051374902582138608754755348866967179245872705219004053661777329530282439066536244487401319207147752323661892927105963722198416171915979901420003421762517706225666245529556661788305906190648756891168298682059324884744686615335982333120731171767293729570368426406628454823909129249332769451888864103380479622064036414329338212409249669535672383266979725811105533627665129370101511235669043207317201155865632556058357912874655767924205867831308235217220815343453766285308839609730144190670543244052987131003972406729174258819663058385207560257736025323547422586993744223152322036295532297518180468881329567755724697261692123345166530221467724392740894855658760250106060440222699591619595628661051414281609431314144486322138410263605732286682553729124730110818730320917215226050927012535948563738580874313971436143442712514200309976292020975330867878303093874464157135234939232637506839253282342402522103096711374324705638460166020911479559991962956885693808188319404476364493945339409994879215639537083758940763612884120737345791048878945031351645333270989149251379135913762854250119024956750588730542110898673846960781847053016547342120647922120372589827274966653361975149184515570890449265930447347544784156249813309954251765690825184982410960666833676229760437880062889219751042300933460802200271489431811593313856772246021795595318473869212958737684880854370627093336200512746878849558865625325687302139894349857688142892738599616330699653574910690849260882273971192379790594241674255450094928694819795134461234997072464016439964036361967030762651891655745380474132232699844912679668771244571108128777281532287297676855427724177100943700518947544899574154855791203682863020370987378029203856370047548890373167021832879670033347572500877382617427911684446917344778624261468523850612640716689102643050526623374988629024286497254148284119071750672590777958812078398400017398761488179479329305622788464836698898235397928759068750377590062288431271942484283894952939026067413072273888971580760916928142385953843658790412125493745339124733144669274679022410807399854864017827565037713925446471970030804203429845138240175764696583588970787296441440474453181658219709259265075295531019391046003158223643875968011124937535086172215967956398349829727273678304076909733550250189472803430813256290213010648967712577514884251673236978172522991923422449347754507400730326364953385690582476770327543837503148656670763160277540559565987171577484466681115204848503844654944850011389262388121423152157934342938338476434668509448657048959363456834328123923142785393843465058637670137850983196530820853338104246604564237125366502497970099051315179602162083197597672352789076634575095991952504678809618761782088435515875464037957028534331559121575154353427162421824561296280695560674160267179639665775199468934722045797066422350669279773921679590523486482639028760170636441521734986460367770731669773641787024245123830610674161498894333780649004238819575136750503386601523742261822962388375734978336930992045449260095028522361924238815043889177631358628457024835708386212565049500590140553913116447087711997498636183515733365157698260567573857120581529027684011498509933438251329165291677371744048729903816255215202001542032180415645626681982181197987186398390946466015069217946927998042867876113856678738377339856336056467391801949626711955489032852410905517976661123802102575567900666271380746067421319134826388686561233880592862231354696752281673539685093646880882039295492744171018615038636292501925022702653797078019421572489166425870191690624303675995516683291159465363885441022096477009500955022077273932921336957123749646645030264181037700484156193852216078121947734894941988303040939838488074668172387363718233389623527591381297750213200887270697043136687644015278803492192074119314662689405339109864433899822018099103125517980356683422388706724236792094883422692819244599852789384569485848621742218110272520969692067470550640250578325168414410978232294101520334949752376199139240521222677807940232960096518489276170284967110017518285811193436935384925755905427300891265428783346642608734910076445605172709859551924050977307936358625206808723485990588180765139953073365498620355768866117322880119822622987858000141495379100680709267916262296709882611775732403477907032697650986466774111352414685881847083766201622856250837815408939709879264974470836404469882119193411971175930563063577135888712335287719006734874297107578546897440889036442916551062181600628084058298578600007440479809913563477757237645674470368791479988015068878354766568170108831570182515538697526655997551156022400245647225953772557080778102401122956570362303302053190654321158187062529326920653776438079340803448096697601425871750169174148491822848838751862660984001546650858419925092888667071292422179650534150585730879186716573040484581216299764487777429754680771517360252369565828284695093808238904661067217832973952981847128624407649200017937721262732192697256615573239670477915719813730328719301148780966367169491547613904931721766635180933237720202992676604060342604170465995931064439138993918530529519447763668779997412792974529119460909856127750544254421601373554749788622636854096952332048134182278015398166700473475231279945397686623159068916127113898933450225115777431740102088557487814856872672279355808762519654453824627666094145333116155423764563576561053435902959710400407321652187185104051012420073658510448863609125687526313600939417468079612899589972437737382911169119150435047144461570985443325359007495203841809557315740181019040156907975614343118843589253469795713201015881942758743017917624914164479223328248350453064023328092643015328071397053263473047479381047376134394399099216628731546311120413829806823249753579436971393851455109633844306322258118647650321541023801775001127014410261288601296662433897967571586917148323479521338726515687764796322439074532159526157250612704210119165844661468849811333070212299682012289101828336877352676386268334149741507947891142212732444436366679397757863944746135094517387270468258033837797686273510712098600848267592770231883160141547383005116727580224523742774689524987353508346510656991840110093159698893072004535517366675159142989521207621062611553390275460112259193825480491420260498375923799333259235188078232820927866584376715171339084415866433496845802448346172420585151104691142808117604903997896135721060038623075261871701567082217506163640541621402503061368525863044118140370090835119409657149307590788155510968205232144888179504159165770312450858599391832901769438633995031915105475258484691763971643530941962807563196385732702529494181417444813456130584760194120534240894419300524565882769890289161537797240156135316521162601422707909513944430912218687328539947243933430061848424569624091005110291230147472872807580338792191790250793172000491724246209654964998603219037343135760805697161273022502256094719133015812244287380920166158762014881422424120396370093693382143032134017406151883517946964592197678324171094579277045036739108177071761508406899820363746522936928785550886481303539418497045268072194028008116857669615915828950626265935835467745562233389299714113010518542727386822793191679286724239221836221045271002342876053625258176532657151953901624713590317176603912742702910511423139141555134098909517700614340219870005357849486742500545033121444660879942293229265754284548874756479049291878108735683305531207509692928609854440220421991143610676378055047597239184182194597011938623977952995126470803857119998123338205972249940246506352556376915674190692484257125198487899011313114607259759708804990161516524354303024983576385266368018825661477425645649189597520278609418486375751581601925422616743173300296891662266856852845588304699280592877599486916375055837573523961184601764231986737266251131726580424864933224757306299221364272977986427329697593691021587020320330018190632570889577198986051105300514551008719155879908173917072521182108212977234887542174556527632704596583714262303745945131535644035340722962448296578481433205475776283806857454699488523283738720080141962198621701383566312061006896905959588356508948420554749588376961292058158219202148721547925631554952954480874076960569092027193287271018856922738181563077980732200958693790750705910179587803871646084162217425144982022289571559589221586692932287568192438796233436614252479761356346031161802650793696018625933260669648304143356091041835659058760455530033123640152032462805162408175741163035227397605841788119643156093034428116196824133104615077349797325083206202858319502994250817780351078003128362686712510676241502956166241698432716333716070583865089021229601340431686352366809440530528246019730358641550627600272278540360445200605145172846739566753237047751556464526986175833830823037186551142650203586965295549359958114323256633772390870918597971094162173002099306005828694816004644936988611157988644383032916590597344531501962907245176956403649101537653159525389660656837688197325928027970017859746073555901166784592759377217016192302903651312350594254393374767258709262947999550209330107116749947025360040395238951446062710722343250416681016580318883485102607219366914346326884921653937825884976090543375339892613103738666941922190354055473627061673190687330049562174998646952217832752680091920801469420457593245837349416296750886711578455579754907337587182805949152031782288590743207197658262357250882488933534689966170292712300444869771336438299019247980680546046929635875840421451142677283370531400073086562654686714938795815594871276466699349917430875646732138128990258011534823359842971741411340028758308474492518769213617487045982802133342283737669832212159896506536197319291744969498849045567215201819489551997233256351090112658884155413198521326745640377602249862975948115211582509744417686015759915746581764758177788784974722052065256234572391703057894531208838043337958516100088507632157046726240581143863478377421631126201213233061152894318980830722714625949906566086520638152108316038246824317778720121035472737227600785278121143899505923076834541463554895835310520202500353924568756600222857643731529006155941304539158068643897129082078149707317311513337533118394374982663009891520648190802608007713450673230726300755571742059379683241949225919045173077335350624727536152919265016284617921230556939235577017835820925328080931854522061142510483452557076046328882753749604635894425497511975820101671558339739435547688740321508400527898064056785325926859385908595597931309322815129445751559280489429362022613214547626048787219113136457664328156828924646882421818549694604139099617610589815198037920196621476151408402222953720921037874509914539384762129316347762012860098620518187750447254557208977740828711582178925679419761871336703070877943884017082926139159563354594493625268018246223444562468933649092433237462579810067867454024251398253096833509100006123371155841789377133445985494111469276342691909870552984735842904354662908476129839216986442342882071810094474351680222086885643390919176663849172194802858061215769373195193745684155675858364128034521791078338039383757448153322341260395078979557296825857664257481227905760886514217896623363562363113429312950578494115793096985162907130217894096259486256844084874804130324746279212380232837371778781556742000056282276746176550908470756386859231141570832817097944569093031602871916311635110610994696230142967110495896917750725126154914644975828664838861460002277729455655353388527513658087326476476509029573095360804055177338791116996569317933990512541149769066710942309393205481429006374808174971298241490000496063644387630899246059537701133372677647547818867862833280918810137471946809900740554034174876880357878450800630931182580858331385307080169266973589661569181117082041267384855987698671655424557446895351067079810664080196822999810810408620538601561505356559189227017011535921860242979949831502355461475541733666189901131342026899881217779595047703787458344030331041732705921531719627328420843404901449334978943845061051224113691109285226044362052080503241367207868917474603018115589792323343143526770521850032429065524715575223816994495631043218417672949373615288689242843973087786086021006381325401510809125042668294937767807031423961197503284907000027741200695625693065769040802220483650797291139945080184428596538218786833263621898452217496669656599329528538404456442979609774474729512923303188567472381040052977087763951472112542004372875528478830309431492822918960720235486603414051643264854866422113138718425315121118962151411707067315923828892356101976812578857805448237463593801023794412443438633667214964720849856229019073324719178617263183419349698832330549170450297241751704978936973363794773615665602291135802224286151134380766047533316699135813604527863470789934959446232518963859064863136809141952746882297773756245065110501737083492357184391874936307802942783406339592832790623709769313167512533068687062598595046014753685743477117034119880473348358245489942881353109291422612522206061152755303829766054024762944343410212649994704711848109702657967796580263272611465680780984901607168835298909033226030388149850754105783868976963247076577723871393052628757421553015266730297923290712456886226715117712391812857246654107997516900910447044256639096479229042975664111181843192434679998317848383280844427920529906874839193882505986567392865651196029006861224395836417933895541081556143099546420457499317307374737028759698821478957625472935174833366776289366949549652460324690142223909897803837996988202319352200310390664421430833722405980159164443425763057950863966801603659279343451123155796069007775008292485543893174877419630995160939594134595141453832944963471158238249251926344280758732801516852696028624657050102348345350069166216670307598199636350505741474833082498139970862116941446927061328408541692088364043439095175249145873563259162398884653073496853177052846978256851382014667385483346136381301803461369801592695275422017348346174046512704293416312768156079359344134356847590227920307134530311729596035094442099954895684892808378831084444189455697097935236066194281023137091634418228800664190386361677455014997215818452158313698584641520724874618070501998097989774216606476038855266463883657233920776476447358083488659595180495522519530124327496165822405392903763867157594354519590945636019188101716427433291200673037080956462852901859363589570848605284665999840047416787032211771048711419745001697173741962010854420207365839844974003546308900326488012789726732120460766304866276530503608065913763181215908402520041707632308206120198624763874490632462145993296997756399728259756428624240654116186578253978429110949673268088132434120355402647548721490812784114742302246655437829406420511779474854746162648098976606440742653822283772861621639710285224522024923648844848267704132413354683409269774879906295171357047469624113334633601699634420054497032121749814675290061403159688478254265205911605431104132721048870436886649047746932698127644062307233137324969820664216839558691703937904914139481847709004078259809158950201692170977732081522336046070707310423515396596502381075574394573786550423033669242451656419535078695425608827862608615504982625492461459783901124887201064098051153920980192966539726378322229766336420968334769307838764006652702050602856113896703969736613887152945399324627097103784126340195930529761239370118440034721472072234240775343762190896746828296528931587822900324342812447145833908042551753147942453281749891732709242385395092588185333094349395975985033326161267307698174158712859906517886169406364793377737740476081789205357966698736034418232338348619082256819035076977277372035965230540735459029725559560527402197601511015637122466600519251524521281995581815565906868937293562871537629065474114243335289271930624653286131996374871422953805854584069881071187955166803813034358164548152385625367079459796334620930200314908309218388914300106867790355620630670712601995712354577819004043619891623763467803613886927260326449144049626065329605462011766613023969878106059981827870948231987254631314975338060024951551572096480133144696620127952110940229037482414112425455806329319945743695521605029373272078763085655517732182527063842627481890040694107721806284081253044976962586963198100671020896385775015673840515836943822620553235367043454951420896926209514446515295260185501414745653140064867164494561298858533044826962501022742926955426083589745345140695637209351595468827566017724290156591000178163133095518959573770385231713492674823617500874059893700913874362400226565399378766030314538054104881934344465079555850826829013419424199992482832473088690129984080914503626967624241161444514859941971679338762347465030586993528218639077589973693197487385546492012055793068323962413275124897664471356087445639479582695134133959041460724460986728490822008242304337904940600635337940489624045108696398242936572295739038730410148587018561810491518663650009745347121007983042424794232213388528831509429759281970819816585952460071283478173162665804964552520452812170142583675334096434573295756029284822129736450730206935986460259034789408288669068442799705770159443478048138317526915182497048747940273721598037841979333755833199833850570163505118129240401478641693672287719453268280601236154881649399419534076505819858303078251125067830734663667668556294343055920789494927436018012400222699111950404983665092801110080244640517286221185162136379256877347914098678256196174189485058028035736391918285516488370388005628086518038788606907056543214892367418756757154215071492633774275577193067054146295501598222716911275931731263413508406547484206172757784613086694756992444847432150727656627496045923768264551531265366831439986348979307221886752414833663483374479423160928738959190229826333992622009440709070532190402142823888578795913902334108491252736194636671683887380483338123210147926615256508357925025977571758061157588344447513100391885862750379805859145668569005218884918679938715916169446170619734898244808887712302986867822409007358343244089061819513645783329827194180938007161599977547335318721007695628608068761164547586582674023421056224172949310809705908527990221354320131025524405385130807143124249085996471894707022826930768799875839396079627647340639327964781665815582872897224224147848387697986817986887452803757679795394128975642581420997859729380601723146037574258596801662446494815243989471986109013553227901373114814965602908739626865668208064211827349385443287024854431167231529925314982178286405836821814137224022470908879022720008937478748620957702569349822631672704487182778312264652019383277363909612123564549124213787799391075941641159464180999418764688426488365870097458912142181668424075916558335983778958272448327716563348770315941324977918546703402918050620676250280987448687726492061388068527007368823484641977067685598376710613241881259524608738201425554838134958015314540962882479746434220083750432625696068730278227464636704822322901031903267746539068716502318103557758881922914819732960453632231109583548161512239578396618816446911848889396822355823729178243769115765748095175874066761067685234984513973333595120984951297698650938549626096437518511684629550194933609215739974229465290573292095353429740147963204382828317678130081992473642335485016405297090809897151420862480655335838815395528946063071679643825520541011824438435688228327241751122838504636378219378165082156751041333279037483461661762815973550888915448993420914500054133260983051571655790175942462489317619517617998948694324187248147178876713974131179197213484330968882859157352684381493201311996177792982764320311303414612523713018306704901009535289121215045543897426577807344078374147524410002705663174433905821236640351818281588155471182775941316568100394211333001121444304747693404908691666786670795994944484099050541642516381482317998867291406114169243809087610229820353817893851048881112234568082888690123556624788217228807970553761605528896395999938368915022876131120547917207773889584610327509574819398568709759002299418748424212257488878766465097783297823196922873027197586627813751637975704424835735815806322542867421347112918838609091398784623035213857160157428956899247780570956690328967534517029612962930888913886590196134529067867969779464015169400418347568842895999107413479366447595796253800124835334089444552962561084102627274947102220672427088200334978030833315829195342302239214377515289154227224433806699819809690228753557296095659450129905561410519473621297929362857412348625769973464503876829956068376215157304664873151675709062260302288304177844307938673048645773022752811613043974197549281926073339136758326228213847282140533716442639005685359484393116473565256105634770914932711484749234097770804861825079867289141517315567382771057930644719039238772403321265854853885848514903758242150229598340239104734995760197186227085651775288360386347152638909528229632752127624306394006388967797691187722727819244431739676606093377052722062869744757959568675086348407381509710441773093946718071450769749283746051444570284703585772267022810269807394402500886436818487593302509922097254279749510368821768003577585065675248497720017622895257774246934078644195798232814576927773113661509825098750091489144304974343451157023656983629294882272151987441481128709280147239402476930065157820769366180620288543198689529421842838600193887936293165013857601702228244683261900194559457946948596401718754668982131769233146803831775370577642802687068077889171175696763077225871297998622183009380321176531758654945018708129569447409444026001581246250429337710361965616354778530183356111309853277704983501068245300787364187418243369829545574665502386805157335313499291304266297420584275109563928280936597697263985150227168068268873706632861368250778042379714102652739788438328498554663260400418666032930496737055608354438932264085476982088886247906539760973594210982338334444246120120138227943653488880199257296132383195441560514253222948268552222223225959262869627197084734062838851500720951318969955886409139786321707625130916761759546412756907792500521012660447518410993076658077583115128407752727642388351308157981175358473869655397500908423690394529935830703922673899798319635211101045881173926762649837593077935384598837597834668355811006718654929699801084754248960437557472459515628888222781234199516777269812941764733860710144815306251985867896864187673965838675805588667339864546810335613113692363327524595960460036357657141708929899938144006613565310783435862656887278022029062246269805448442861644609661768581691954283906100350355517018909002516670938468493240863934943232440989343513815107071569912761442363877545116241884253787939859703311920704967580359086511841213293426446890144561437188433372113222577633631835121690020185454728457332778593519016155287261951165439232193001405885328167507454936119743566553490503320972156969483421178022004449568526265320203519269082087456551105856533020557405901332538857577853205108810696594903792869090356844456430063377327863316324557397352987774375338746381593468558900235396447408916436024074210462553009800136636434415863621121046515117450993711756862715032213056045707159294780007076362683168802460381341506269332867661099250898456178992596717439779438494865417724071877981755810862109530401779149214071009452711349205658753210470993029332001832210690631272132526476482301473186813879422351960311109410599110753010375268907308216310069943761411253173791958532953883129328326682060171884775117414524590800910349516263303757392003783656257313713308802234397153805550239732675196548406517837800574149564402746942085803614471176555671221884132376435143153272386869872265767134670674015051467984128826021315652111178815317938126571988138009241743002860288405108919125924306117211715577020402763891754418917348088839528708614203925297533218723405838682826508221067151719070672754082639985107662271019160934665364509770762899523120155097151951027674642078998317780595191329376228222654349524080747275930520401996803151742611570918294298257708068353913669523623883176320666182214834585991040552356150813193055604227377696726407398535438521832302928415305783938042973862502472615705066978018618680203760598974993733186661837577530354743967611247244135366855221864384285931425248948880086564515232685812683724116767047058599711405329791850000862050054111689625341658480918624478965954150501896832780775559770109767335610527125893754307559173602678016444771163190013497318539399605053023227821055105706136570402194900000060042919331292447008236938707878169552105705984436939019728677762509067946362788856687076572227792311902701615672847564906690608111281749868077744421128490467548213882178562702224388549102080680259905187637122627066664877213870647488880937550769047617265627720869327473943384916407627090873357844111181574594819497770964998084404003136992269519119274405430382414168216581990460159651703502041599625318894806814569298094050739242519617467997537656442849842440332793896385326584184566844233615149541933605989415627630108470581922517169393451898244423572439915688293596184671164121866597635070304606520076338350490137759174453105835623325691597701312949274420114015120319305832668609220778299619689676599440714292154050399912459182338446156585336379770209071022383307346042453160795318949744297300268725677391984088305726656798601622110511500426420178713533174393864905616737512361426161481903439776045097876777570248041234075997141610409097578167890142445550835031207467420884807885988292701156807568215164535239855976060690423857700697273311230256738280882027171203756644708103079232402675143874046401348555014362708481972944638749115340207198056908368993322504097830739270536856387545051173512717697013876431671227466266604417984462273710430690763055402747088256861118928910672223985978071389299300013003589131991651355668473308737373437267741768107635073669770409826464718485712782059208548135303900781682635574051838671203952257298070411760482615427120281359689612460137532838508089990863999815026100402547700071130802112000141435090620625806819371317922472804809823616898985928492494766062783208000299925235222380533425357765495269226221116234294621143736782663617178530367960970737668851459704886439453329030442135588711779271138711343098407008691558056478972010346641027787072543828457427137420012065014427149416826174254506016206891013175975819624861130695635909881071811306431773821465707259413032905830008250455599713708129271586172077873398179869838805915893856366845870376409496483925980464279616378763010843884826178145096728622439743123342981549735061984853801483629026349946845674747490384319401069022993339527164552781668696387928294166851896407773692462062121834395537683873223985808126771012398873397370266625900500906930205060033099237292558916628065686070411773732894237775951679149383657666158357951583802116271531151820864482134030327517754946982686117517915209087397818522735356423834551888955241727984677787535291048889659928801054946443184864239676732815960404416301864545924746484948270485987417401224034280014746751287698531414965899423466283961045712885350447255452592145475205345572821556056314104197409381625646957289933792117400881058863902652108890888248132199910115293632511752632168414217058802603523595465967000388873080066952648103556308980358043020662438709678026972895916622672050749761638791067138630284727699857053952409190353779932241315090146323599811535429947520679074350233330554683813320319548427473228188112854152762227121276745498001507618183421717522041889965852390903010154696431629835351547685686517453048114495036512328043114720693192053679065955349537741614190312641034192613990080335936896621163089818452881695743568246934713900000399035399301426480061291114221144084184256520522904188341192525693260442608259897217310643314501510658713222975599824412039145919374534463109448240447492632795275877065627598428886699816251976403858925206903974179268018899757677605427533971393333057690784547164217597198468061296177684169619946107980911977549573880499075523414642327712472789307574870537791045877858271559251694038927980966102399387364370145057821074862221368591085167243483017576726517681105841764577142203753544832401114306588517333792219504170096331541141428838086294929163623832838333387523627705350550215368407994215031719855930274947445818353596023095657687828570499006044462345877074137774484336581184039842433166189355943201195257207561062735052826531577388485706181739259841247635869802081088337272312787437905357057063860188903350147176450974269629507648651805805069181183354714088955292229087542873147903068945505986387605318986425203878168271598487921267019463509960984467280029059126771106314800015973926023499680845282217018493374570182645711082446877667465590157301059365764428664263432446208110465306001148377306053314031780760563682836643115562556463266997986692883148677936924368282862337910728644859015047306221394838175837419309734335680456086029747723097722502011209923960388208302287440561941604105488079799103944383562109536108870710609118313475582247014211749091933442082056810720547514282167861418829923125755725117344166102958418191942180131681479549714083224660726126983318072844238210460330785599865240110214441001859141125903922555478362462419344953078313226060505455978112562343140985786243340179259895423130355843684079349593619828294445132218078551734146127579604311823406295488606838971572456110571560794769887951019046912076078390941158454561566469478049134453935423982887264743028909423391232453391098541652757257239219873147643945353841645183579908447481013575052672814490674773890312655068850256366010415410298773114333722833446917653395323647857938436150469359891343848796813419756749685774255650649216738463930684371685811042215337112133707153349961876473592448132921726734744038712611945955142310713645169277081458919582684806992882860418827465853803850447602618524900848395888133218898964503648161430871512345178733981227285770394282198854232692441787540730427505032126967980841972078400069368792415625867576130660719244151285964993778159020351132050160361241462814777617437625616676223991102478971493225716967762888188570871041202552936751128739890475720128539436069746545239202331041775692916890023283549417979030137640103636422085315935481873911772741559478253639735585758283483687933087276418820594260109868288551065028530566066013643741987234145961031660403453356769324228510802503232513515099667436251061616349455354937012926350628819290588158597415086256739539744164879250507375852876189715543153767752497182849958840319902693226871245801698784233728587298380615322344650792878911004881205798459207440689124122737562113730936640986543583099006907423362251943008103571551883690739014065655799215410611122076262080174131772207108020707255075480202108528348446005887798336491538579223922946363607500087564673753128314673623247326617588950422530141803373759788532738864419774480926240921886618771249272792792766721353254107902471051575985826014811102949732420990477113881171909647754862123758756343467828004007576158548192318066047129942667003799927136673177155759988193409551845629191623520718184865826412747655387559122858560460209185589311214817087669768935852922054645657348440930622474941277286556009199145683974214722020046268051669640237384415249936650522803364127158854842294374213005028387274369500241587574269492346069397154235017032843789993478637081696733899600077893945637427478648350173036722524373666838488800791505524216532815244892642578082017663652263222075175528790431538301756223070752918926968374341745595172088402879704016074277485502108438995388230790379449983410923069746247260272466150718368282385680760275948709582146651301523831908098424704340576495579219747216753568829056515213758377625987971503704180121234703872216207337425101883805627488763908010422936228348751078687821921523048582397026670451805318859619702662701706468186140992348037906854090940447067971891357819957877539727746531462597720178595549716785372634641970755579004995288720399313993679063769045052498510179830867315064878522830675220967182596668788310737689990541732096400050735066046397594972992248980685854461401969640780920760361127610106116620447798619500868431997910152941382782594236203353878710147159133075978663378713787150311250702214087102901559995903233994053901817694934015563684533686271130038844077927339695268532353839689820968869409078374380076309714419930619496892549990796744329315319913137563965154702859013617750050930156523625429275846485360565214813762023061110401972150595347631908966549120806687926932301243364689893856334318670504049764887640031489020687643855545600008156032054673588592053267955664983452808438391092937211495283654699903668528233385515305370115966668360747571450379874640744031950268157857162372017939223816704487930581239766696605064410016497313952308586983934290623516769926133595687364226797041765924974631034014889582924277259784013194378822359538788317327958557462759880987806049951729099693511097575192702060889328362666361035072432725119688383494527818325585091663477377515052086788102805176803900814617364208739313394592414733809294944545238195684118072566671704461117734586001869021026931103374177548476686217112913076400492530757933181266169891112006537955934910757915151126806243206334271119877334137864650360020926274029224185971875762947112195831686310057523968311332901777858288029520647960450004673874631220637826831648211602985179067699457255098339539554045992257987259919255167208206052972431212921833996621772961558303976866572377036705913141597987188214700914525021566158863873962276948613552162503307594126030581244563265609173628828019377368986457329821725123076839195050067983368299674755687662903521519049841207691569399776280417611593994394203939807315070934507564759749945816050884199706254233769452132326697137123721199617162986862062223176837487458877658167293844563708307867711232926498809916293679545290562156840042973123260890875637713757057428253527127435728035844688463409574640023669729625853716985835373973581853691233087536604943559708353167179839607307260700965905783616810366590009260222420142834362060224241457765483515678914995257771998077009922147346296458815869714982923183003734387870666253245493848789092983931857506360965028475147387570705084433590818127544940143710490884569214739892654325143450769194034269514116914177687001905845734114845781272286367697571095121457267455553620007384581197733309190812832044171840719873328966227575670543697238094051034814909857266178189928634421979092090979405321835262641481137961906368111390470226406184696305311748810221319193930320432686231445178843143622798203734588111868483715557485845244386444419845585660630618830391478561915166429392674224474585728233226576157550802691462569863069402035195527739277336981082612430751913132057329818204029519866077879728557011706580143320260358572573448425454040749168260183484061255677197977758872300063447450985221775808413656356003205226139017418108736703990027418467763953708349025684429481982561546882226056162812850610616454207334620986931442035289560421288393062773296516330645957393632452430736705969272674321729523017063714494477364340664234828036929508518552941920757812379865324230257241748732314611960679296336266156749548783116813121440438345840305439910992765534874174719120740900174159433499702381441152316215718608988737618205612625401528810323734268184721597953511420966989744330841872129625831593052922608851014717432617230494926273747410446262713608281887752323813285040246638563646317620503454198895157760125864543341655701760421404053097403222788037361934137242905442837488218034671529518810473668875017390142607435499797833683811128448173337683337990417036752299010258195798624706377306957104038620347914129251709554299675897063978238546525466501005935339285329130592203601988075117660033026380495559557411954006016871541638476922549927775920608871854685166401516642169536428411065738384997056318956652054920622718608961646047500942880373917165174399300796623441381915187349390271445160813213791743152389843298278300002814215002169254092798119595343576470291340014820229536090762304134450553937422996192923160813865422716169526881152246670702174660290171588175570298337754460954205295113463270747153748179009716718549912129103314951677681777032018197860957678993908721529946167289249063492901768099496724374136989944674569970492664089235829454518889286475230767541589212658171665773551873335433052177678950179736437668774798093446333501495759813031503185333460335851899076669294594398679846838828180279310489580984557288970749941613612709140599231452674199702437557668846759026900034586225133225644295848876150075004666088794683091650016919528885815826831500134199693931074494800432840493711804757911263689897860760444557046804318470740060238829650838170158288451288419567017730874589295167419358456984691204611751596803119439870902088621980227777052951461857645791019593948220629775019680371333233057157578832960863670385564035533683534885268624955373177253031315170235089444255077837306254238977855717193556999663702575252544563479356653197739439326651609834899384237429412863453025601366582077587926056122898577663942481943506905886259519432493631626797641599805647991571803656562162835451348202252177121353623639762517978778108100771512240758794526777395313766439061113101507978059767747820661437823965197888513912819036416206951022050040015530636325995574421959905774394071807658926258154036126202563589905436323252228930939124152796280828598555555432355723642482518527102164582033725880996419460138741924872241062479285826916783189230854075281323591967829615579714924805225301375549056812994998115332181745456775750351597474973501284597619573266560971052763552614047051291432790336092581815089872674523495955343139769277677275911931147636950732806855798723897033694868336396001977737661208076582454580521834955775498408609160608457728663789088047315024875302032228332764527801913621285541251900760338836884749580182832886774823315226306698231419255269070406117894656260182540064599984639954607831060754732765858589195124948063823896268078909253192234940296872104628568354462100372352768181383988515042703814170775477480390257243046986666436504832766465778242889104934400156746469442224200104198020524468317908427159338488643207140236195281983023650565701893796922613161101308724529632678409548947519602170273591569961789826665475869691023162366239109915230842339080795258920045687572931314825675285807967275228240898335093099618411434019347802224066949032984566258488866739526805907139520925237152830672421441076063828050678726801765538431033815542596512212637547569868439650499609790613238851405130004055790090384472685213299052648025604364801077893572328231932045916701201351494510883705190937668919017399050619274750462324556125178231957819251609090951318458692076044420826625205983498239269356007723437387301484955886886632286220637289322534466696514606474729010041997522218500541525821607374564108231950276042689485076514984530203743789062496246076074369876700303631815629304342863329990183900422541724139836026294286083122106659458733493401731414088584715715422520734552450682200159819498622324607462592888518763622425906786688834077565343509866835625918121562238765385634970831066774747071391955487977587793169057060525729797692760694809774236205016518774179466405020360225535037958043343982126115144895968310673313608651394676724676100883401564730209818597331727123272769092681448689616421589540796754170087929089235182486583451798061175076072541167208055833201085079067426163689598347811690492315151768773259858994351525393995020759698533756109644057311498476256086470410324895355806638214518137779004080304030742112903946837128583548761171972088391531117664200247950834572291076392913714069544027686453740170945845288880383021091672923060647746520549581216455587792531680251303234899624824975073580972286456075730344393885076492217735527084123800738880783763208289471125626428816943641566027867867012254319735979018765325997347621386958320689249690657130886483178365786308984684832440597569859731409275971149056386541595274757290142465898175850987839473193852509362249340786345374703466395388754985469844870766185639617109764652087600186119697459830903949947215462039557303701886891900283155654429372129081626571783430174211909478260441061470339565606131719852602266196750302456755688022152148036949472144596973218696699168118400196908248626330626280874167506578806630986791523275371947510628610196742597050295827793444517998020520099840223318658027678066231727177696313781209055089540746180202759484435665518754209742095964391285440835439267730323447424154862248000191675028973878699368060232540305041152939770152754464126039784048776417573063950233502042111208297773071477323227605246466531252427021039097917186728238867078383666870157426265970007723183470289086920598096038316359722276799160775297411715562574519153544104043288466840293259950703796974349374355729244607014357864837884233700571971237681628749535109399741474126996671723363012982482149531764311433273520509021718236966384676034532446854363082022778329141479911493531323179999086610672865646688935514724201032097706190175476106915467219412015331291930619563252058515737923343920616951721571182347926390786792793062299419045269132784733927781850701989575837998143988135599576549516854412215999666801271828412486012122155993381479836428565990174168432823461282240058811575011360080584461106218552969860278745362712980942176743851566304298825966230390775929550270777493126124815100601907712424856935303713902118640381067383986339500044503980599592402231640130737267448773833144671783798010957912228047702230119512175270335552106751384894657196611606834495367478280488566360286341153926025478057291106364332600730170252896847527238679148750726689267970520068113845961586198685743183136823883843990052602008236760574076993048620950487926852391170094748679845578745053832992804754891419244132580992423685298630521456706401570212835128546833842217638092294428767186605033673306483811084374119971382210079294774573465332665047135325779571297907582888575174638692983705910911016856217027626065267617749565099827498039385578392008795981764021788401061545778492615459822034205236675483983778126498861743375348875714450287150654736981471611331894186784717607872357753441097813781251502203371048133362057533616974197574978895504892506355868104936525270843552533854553857697994123605561449718219946991045054084095810548546382288715126487310433726943754472527945760508510658104245888494557268488862727541441026598643360146109394320900709793814795435876683355312451804361095943480681686759261513732916814207669616084163885926941245585978095308259845425460693589804548173644768392542688429030897907760016674229199069505813351824881419251597817357847095590113848807053662231641227936661952183123697092496568601510440829787457298564428703260164130893818051868603642683764443781803446980751079289395747342894451595074782721736282819346647723134663691624235543935949620307481162407173707984761459691913930847023088418350273155404457288634848330021925312796226563917687039849876261832344762553573375270983992213231504561259027788814479442091994207147936091163189385149128449597728839832312988767456336586499010416897157706372209656927190353157555692011775927364102414129788573253022364561606929949518375707741504983296304706927742072481461937338576513636620307356684426877422545862267071413419549065436086195070057730484651996074739037419573594375694178628567987396619120236392185136647342591976153204496282894380105537242028550559486678668425218983669858712306877382425193414958806018287682991465864667368079509023221718994082128195665133402704727678399402829338572451901154842167448473968086988988412915146248573968485756687557931339915946872152460402386835529521278182054008128749907375359763902410737956311068038297828115797531370641677449893163745293669935817322403305248938233578274444002611394295505866747891698151722489967801194445261092842160741298396837455590007499084606434551895782855425184061547732306968842759096472307517875015317803085998438211615940301625486474491524422287091253382874640176004152024189068673103758014965984913001930048121866335040433297378157445429443332455876057950400981912898919077422289112133716975606784417213338880019756954699217845916051604562978712789851002190911293324395781005874874106259756564388971339473656252935788157053854854970436756316054521701664658453142697473206194284640205609667599916851708547226348699649638872090284773990104335132117702807380594719022046267358656866591550598481463800833708504433910450773094985620386109944101854371701347237504506154906831284763674276880508851342070108044118849174123330180657381569105969950194972154984607890781899077029050340843014056906968886053319484986931791907228100519743021988219751566418579946450252799253823345462769113956624051282210720028165084013808079325863100722370284036431087099472472457041545000730536097802014664309840720822206355249274768454726012429779461066763909584785666680747157790341172803859892270129371090309051339742973454269987408895591039954822895696509617221905090283032646839116144745251900593071933144471799661661211447611212928807735335202204125286854302438063902920815733529716163623410695459346981900496069340376439710368894772969285756265821619057373822312813951104338706887682088348665948684047719711732528401743291006734232166858630799382356061009327526008839935115629509131214553380597806162083903540175287050956336088020927642013457245945233646714815988606338593754038301761051592192828856613812075790026671930697220119634706474241296351057211795478090359764308517717158023197240712076788443783823956418202102267279322585642088745557887134024889795526193608639646145674596839940806873957092711345373118682499228030483692586723048142998873858210521904518680085924657766985018182214433636669265867452431742065510316946004766961579523297080933748340701111203912272900221947415413531537547248995804364109818879273469529327300918372843693565320796868563119036368758158642162564336682585573251925054528071087451619597835825097291074244991120103332528996005251255462044726284856363211231065699538182783491522927673017327862962853329466863092761921060405888098068579934033360447116518062571291429868752424315535757195823110104038604899910982355369749222965760662849572710081917850460211963874972196288444351416389421398994094477904639953536985328660114054048408988634915330784050470173831525836487915230315931957725860076258231836503623930580106454305538168948661499285397736894246113438622675208356503403097407034561272525329675389769025990765815580722186351172516085951311879977870802755143663327013380190627384863130708681911847677445081695956765986695179540558945299338177718282133646587095143320804994231712605061580913723931038715461039978675725144807498848223132043471394165056410685786640588113345871521568506610373837777185734769326068275528524348099083350771213644728869681641190350246003070780165984428265639800633483061935075812802132465738765873375461588245740736649827687039928329819447745044876676907780356383172802572110132651367713366062131513705426798419427186815519394695112516745765469125172728097950918064070648568480799470181593974405185170742000944453512898081700282640877807353592715105075488574309373449769688504639281882859517858935505670117304331434037200924359152987713144716246286159597899479098194684393052233526286611837519522473110266013225218482648196418273953288110348940193474206414911209879055418575641556133578870795505966092379538773879853110142070364394066734273390809486083890609461621544598815927784241855763581740644073301925614524492634282362413210842035090606626466666655807377344244806395724403753275050719320584253663298319088262208634522431829360126890720736465999284677122990395373037739019110874315603348823203367332402846794775972363622795179472718742481443473728461044558857688483162967336401588664043738545328897025074845501226162367121525123024448628021443136300160789690760430632918645139194250006173633382653687746155177613950757033871240670464407939728890703071753204219716832000774890102626599989993095062854525744168547673696821256733732931509977854765617951385283459466545645247670364918176495409458314742110827639210422545859969988326843207120682162845859898967205350471135632509101078168527916683926806260306084504116523172460234070947543407662585160419523301807436980774850304620159207420649923988515401753996831367876635491552841248650687531555941162960534704122122787943404347606722283412050435055540375755989179108678267635867147779291635029336873379531524677133481754143205467538361853131642343242898972641152772243270745341014692907686386138367810931935023977793237792582916831043825856902629750660092242440356360757285024096731306898975282242275424474606945132320557043173950910337890313667963845131500549383923028183058855182899268881114098155073001507252474782338203633864989367951847263392974237773718442357284561193649965045238275732247168631976808780719159037266758928599038324772512887213051253531903357981287968396433933751909235963532005227848494285196259943648719586906540122056131955964672509080585292197494323861645926929637964110890994575022094558674395527216891938249771042357800995159260252834332730875308772931088980135409389700075706907181522806345812292061118308926194525180765355671530439398587184871412849752435041181901604804506725834027669783470482516407834049163492418695927050919411025338316772575868669033786085785074635976605230999378857096138398216079372672783630073315963054582954053512818041164644150424911916788395206058712681965149070341264408525823166509887915061517524306889885665502487960201832783435317777039373420650557315409963647628548609767410795650098842719755087921246823631130854648985559086727019695754224056152365187378494599331970516966523390536080999048795805672856656567901169459497676565891917425007860192773920251975068986548855418776015600717990182613522916576854473690114972710841386656577053359844652858362439826702852250844057798563610744204441204391979361860040881078430794997842691950058193802663800648846158025671842780708425026608676302610667655304607230565681892288238101466170301310192975808726467556464936495853763443058133388773287922430588881830952233039889465435295832856100902580024727724310692447845562840990068780167008924833262517433853247652511000045669610894717533894895082692364174901114345956443030583476334816132657991804144166755786720291272401217434476435209782046305566036817949044292792977291865522577464798664590811342772871086615021114118444521638618223023629855235856377586378595206799871062583970850664482469749706253910106669827241437937746350669926685214475706945971705438977761631262033638998550443795698357883932691289207086487459016824817389896831632741523718783289695722056407188759642001372160487068138871994332626872321923194562850223264300052869111834590661967325639183356936847001826399752642993679103469408598414881861512835802984022274631910341011375404234762464787572154911304009049114019850107791677898119503514023956076400393576919137424756607559640042803714845541558501473487645331865588190282580138771281645942815352772064638803303775905808327573665294416884362222592883720460055663612252561225472295420277139425096565033658390615952222315419207360336349958119044229039758161364201821002849017598414754169587178713643055964391365836983314652333949354386120785883216738199115963180255193755086655728980768890493401295137111873615431676422688769043393303649993349032252529701407746003172245908514404502256750322303848353842115845122359326425722812099220024045796043199604669263454046556951324145433654442271208653569159086301277297130715006477193937231875272678079194739442023068565988591112096711823283896846059375430290362052151760857590050413662288783918820586969177474380231343617527175307338348758929614596109354396986841245846274980304454220504635173993182203369995207692407574908335769636652887480904765134865979659468167928201298109876698550730698276517095144246980624544578821239546002629209981092339592274927459493684939566931375994868485576296194392244966014711561843438530787286817230756864957725960192540534602077606862173757909936280344261084183766895070573557796411224689731799829896238138034617428081797964293760988297010594711220337014378560957448206601167818782105783305449901629156287236558951423285255321579590657668689829667860146470032175473841884728733775397933855244175505560672569044144808874995816252256249456110064068218602805300022783971052161175738104295248291546608954959950114760688413607601212120853716421135706453658611529096543683190999011328823761186040190248859326396896845250218029468223809514528955717783749134931717996953514643127311984194690892683341268190873538589929057950077508948387169485647530938958181274455044918346269026621724427741485772196460043521285030428129471861583376604995961861403632985570809105484622440456689578211006207874870783283246643323073994232571813129934175747569400419089347454214744598313198466549628167958622907015699481951482002780851433084860404543276192800372991463581087724735869970728832076549449104949032096751977890780498459492015827480000600402762078369869736543081858342340176320667609041806867485572275605152499948987634030840692119091537400096835131459562499100588219773973467644299922830628111438391552711050781207209342236336154043208360497603030506901329297459789270375429088537500270319268110076474781057680400069406985092953331191595840670362200190075601890529418795973306863725718683206000820632858490284970054619217401361922504409536051906812373769251479758321989785407381267903693278379670784256200218697772107601877864878070803619060115939482504261046072591841328492100140863305985614566339367912761170605438132822284766946347325978070546090278429933977160426189528004265692670311827276384843922697573421889416322942154370409697939292840456912477766133996115881117167976836874536856734654839668805563697002329800532729160541974036475499335147822731173488356351646597766358196569965976851164627154159679404305493222583712674266654762048653006130034728648960812511887108997054064909508895032471783994436094147957209026047248324375616865301310720735148213201063014105922982653689667049856747577805622282582283513716796953815522763520955168272641445096624410050443938034025225263092779262100121503356270469183797980853929310727764064328589609193168636354336825989461567726258142106289311712806555087198942348753254662301088560042644519725909761685828359089716302339225495937613547126197021048001669114304115366064647031075757422119182734124760452176684870214265321543035161841966933386158579514825908253444556760488219561664199545573041892889277971901184873854456614311333403604749095609209864669869106757770981669637552626332832287300585420665091130919025628558284548296558976414210221829215070142496502175961751631506842107931550490577609183639652489152209671329391349701020524727440865763760739395039294035784834881013411504863510614736727362822872644831442142837507237235078702319536615370702190034710110182364689075517924008935587680830887641526832557318526772813096036422616375814251755972583419415662319429275607841928829737464347482525822654385659420594503406241560921221135392674223473766892004174047168171721331534946730483452586428946157397651180803181817801251422161940643597260729407546205547526214320984602894967171293009221019819543210788129077034865322968535555441388504685537981826148816082358392124670239833458867962505437963912355858522931648747304542286701652270257059573338816838389195803926537124493233799176026867309614972453208190155770398516155135514768433338152696732211378860332025305636187222218651574476123932250041416595457186935490545929588731848541314070443343610605911388843132177417500719334341424433525072782601838305800857403418686118116260822763496437430796862357741801015215726023671711210213704721162756225433990498473967646008372418161321052030441266314788276616361775543962177522663991266083813399255134817710813951221657128553519916703846040882012135131749582230238079274085651638081772810755366507755359507109019571089658708456823406799625546672340181068908834644727454042646314197748772370109558472083782683543884203474327249244081413115967642719119988889387739727392319855559385148283175898183126937789316120404158052915833400350873981238579471783609346590212130971786211186270138021260535836903655132860157415321922036558066874128714804042266358865594234751737473726924886085177491722334443185948513565631199651748575534813999555637961131481017686191745096525170615233740759472675801293383652692088324120605612570729184366411726934803113987653368694204379368232844392152115106596401264359221392049637291368382228062940405263379682959491585140515372323064391885896235309387083429684313884356634138381424220618045818031555609876544109912317228737966491953960764476046842402501512476647993010282547281066799262926747614354500047300905361743419415177181649183604915528251123943936761456102718241282391894362813618568595141830447035298280938537744424969738773835278473516665066449359638222874938311107896016134021185999719042171223186465269217596611707094574268402883146961538224359724719936233228942800084726738105931058099561651628573080332207499519584040881633385919391911975244393316854708768555974371417304655128771671786795664305869028682055121988042925927246724691717269592370201508296181063648719833798444509502825571658184545532767113087042150223284162404570544382130420277571931465359398405068758695689215630211038152650171303443234010721839464342042833533660012045265341753379296118823850769542572466682197883188932204693873206651671801940589985983305313514735537052307530460057859387296442061569871113125919033281414331304897124446870898471194199185364298542770416722664600297936890815347830963334156747176932621310085230297727795709679000405156946904444279085854657220716355748619502290648003251619117284559338052254764630078536634965481942236705313458612003251759638789303793422826101344928496278990596746732156511553414127682289386105453282240579718636305692280139829656088927828168202928944367316699086112454093079484064093567416291445255377438777627566438166600358995894737466100826433102345681919712182060814917708824173068628559463763541465194777698530239002035183368479783112845953468302556643132719362430625220391856278662624132792607981803978518884381470613912263512625973264166618107251312586041035765268674762412321407918151947410978954603075651289039641352128865280029326776506325837123861522814739816780088681252576810507347309348661110590819518884311558303903095916473887810328251444314491550227375454566089367299627377431188548903338756483543407600339752907083367531068626666424907125189053487258589143923630635004516534703293439422436302652690617541646368112079883231105220897163495839274528081964300698545984165314868320246209210415833585249704936930552570990900357810812413529731523482112306432915311459554370614865382174399832892922674904656792727921510822478283432605293433181091755994697248347915083195176789923856258317841373238300412426142100886857229174168429335013380658370149290448090472113853637934784152394152021898777065693070532822000858248230677382618218710566867099023726107437389609136180617798844744921581150048621285888014200445573792715926456043974510828413755691045241065564400422027707343665407557829041706929656553556886307185734977071566457397171378157041704321633419706742065459505780366702641031135078594581092014015622706393657785026290648511806502576309523865244605763286411792666741433789949700524340362975899708504911049318574361507256604809831431297206811442004845703861190490476821264661913891917159977884766133423059712640679656781817810243212592886459929379234116107969960168494008012446206585642467372093171643657857743536650276916309394520997294997187660965886660086341883228964038483805736815227742552154502010548102245714757066126908320440652640719945155878482570443815854817413114931748970605643177329311117655416595181960945724687021232754356347814841093865945857454187757997675767897189869015482176085999981011303128986794537269696852015407157078471735417899015856003659218808759672424077140128534687381627759610240022229086386059231650287945538986167644845658162035760101110674232494911747274596196317988818250901241191964420568900283165882559156901678332353765064879860227008726031608251777225905577143916409687837030488765113796921999109370534108015783719439564108410507279774474182225964016593776659280575617351344815660582144787515199367947765452704723832384230916311583985777058633436101423188836520737077106346209610873785875584465632445724866673824214224837516298312183425097024355068843258377830353033894786985212257478538259166763654435882834167547831189099586193265429934982787563737630454320734949480567133828770073146856827396682064310047584810055132824495611482791907897371457139769547591446712516425820941832765404964399449897336801426847887299174700357657157375767653799249146369431113855547882821033556045343794664567209432731720673119620141698764245451785170496037526273387585913546552492588334354874126478972481628014631855391577069776129313588774061762857900520355718159428218542741907354075622247647128009714837308946903216727206658223286696938938818953934313005595350020391844867154627109029139804826363430911112631329358404241913826012635631168032579070456745243611387525521809877334047325958731090562399349609850963501018890606967150986461287307772509545618764949437358742867016221838865412141024076037504864973892888126759035344912753216532427070493902325278824106500661566776306768849759190883000958386733044838925020939839524488331542840862803691271853876968337034096130026622704392042016828796041457615869495722667508565588948899892064740412706881278031797377343133376577679791143725977928854629804138517878428948304036520183550872664579774593072980649668811922869589310779912840563482066525722220217169699217063651272202845837325023806390996369681751650136505391971988816019999791805342076235036317367505598075249199717565674453223595993171417360059100795102515405315360821688989051696668804519220142888687129997294229106148971039982826075419258201618070225359155740278257982641797945038114491204498109059042368208937409278048128189528858446086574096537049247440269224545230739761378484923384286865724730456896236924153249314416092375357021138228246853850144952286040808111118381565152953188822682351714050502110868902837309099037842047865001006524837442884510018786619320045539342644287580344200386228208307770125658645281137082666376918142694884790770109023292588825480454496812201609617665810280378922954237354743168453096032272368521373724098779926952198501650454407631521283593440249334899105861482051483820828005290780622621970548889205808585677977414149118747002645675646592896868820659115670134817151949360295203019898038650835928196548850382326162561015680372707475415729054979119360460794989353772566317458276886527421188301556393447895485847180785500012979907797256251124498359304545184530509865212530285964896728415927538222240069003817481968989068764984061017016778864741551314841135932355552045135853983848837788022346075687343158307657968429245555332675442574159978247173236144809606981628437781309120474619986333695272855006962991288221915977620494132021497564908192897033370799989119149693991574007146753535615692352929705541250440297785834136176721346459909841106698220693581346138455653982451670994335618395234907784498483181482138951490885646187409685899225923307222425807855065432555545557508916783640835484020789198844781531520129203238214336531504931117069483862544534674541808252994364678776926992171248320730566318200038419711596883828073767825805507243118999148662038796920256924238145033091463681864018777758490672652502669543057098601044578537062096323790619376677706322075712917005350793951859180991582323347572832349952543628569913647765352041787297149598130259123744322284895139825468430461959307584374326611122954375454689491831369822726676156178539911707022053441539051808946418330656966700490840477371651194827338291149894172606615400059797338155016693625838464872764917959301644557640160632939113846019164552955914982931968101667885019081770359657464949899399098972103932603155747861196836243995853451037961998873313785568450027225190555911139206256397597082576130213181524609992837410420150290989271390032833816968294350520488611669596216858914874065444360023847386758802179464994140440549005523606053618071660923890191317205328114998381280263843183873029799581004087568755852758115774648028844222230520734020025718408410535862706048133755990470716580330615739356710082793037225598061503031661161402630480979092178356529355594640587666926353900328001289023053409504504101308828967932014382240754178129304413396298475943612081498507976799362268280852773246643369498510705269575735519412103594783024635148635656780191447633361966324438524731217062232172346869837187738847738186046109227758805297276720322246607459508732267151543482717276836495190209330788854259531875564335544220417200436846421338698721502573207709440442967422149371575301998699009597896346100090136618983649964844755385379711610931755737941502283028717206511942355348023432893365197245817138792564756390257607891813125542225882917589397785761405528493802645507210249658318568504202876522109149170642042938689754365170203662890884485206791908518339138601525620897093855094967512759314409914659947399500850358009741416275793818190415843485408263569596471538367259506972995393377003941968958140860828885389288811998498941288302101139826350946130480701692845838495196558094868585680682563428301954752066949011738492678325186868831041740297841794624691289528902193117319478617762092741489387061914889114105920442294175004898092188498539452637714768707208954660211463728411676283183805853545736522083804030493845939358605039733107382928618904697605700900502505313051139873393562245721731629980623752833249943546532543380074795213738673126640803627926043665868450586445771571141217062679778696530932819232901698238515117198811040731999614369073130758752319615659863578492908027311684061889510513064426456821893350128999669759772482416569997985875913680598893755727201671344738255984716291256075156106548241515724750137287006143074483354767110728301328123060079453744460294865878573263163764380215852375571040587878524422727593424738214245912968847955602689597027288065014301571128272438566880861860529929556471109568595896121097852781461271122364018174193228485241673025653184027577537242118915809666107608714466336863849114814559600006132078393244725736025872335889841775972547781301099724672879692585406558409374012320631746494890616641039422462572518625245519582600087671425544622932299202747552398434708131557248338706380753790135556204858370466881895403592611290170230386581342052648713106800571521631847970990511970210738404206816022055271753643347361088165207757726616194765846017472529104211759390486778544102768141626990666935690247086685003271913781691018068140236570821602208693306404708673032432712022378472662616460347114969549246388450397749341851361067968650774361897018098978892579101038148558233642618464813868145242821578405968391501234351913868290992840367272324681106850313472808482955808205289466934543534543323272807368714357662955881429298304260482494539956876872900342815699441840502187849545045137927811807846445004825348705879791724424622493672837662022566737331297895614606013001852254862034656354154105054655428450849514355116261462428727820219121561804259550715202915820600795951278287603181677314119144830409951144313211853622082137245378204212790505967335150394096075016275145060124889682944078536296924977602678360371247718082421941140985927655816833623793047502234724413395421872344983542031404521106401915082366614552924092454432477030561678683240723652574867981278721586664548967771103188097330171816972754948889085683286704167698328254057523365795883481711021122011843897125908720681379029418390303550802397524253566454505440996372733224510944048458452218244170036245577707829128363936954514392908208249484151300980963259164664465471193887935857043301423966770091488985013794448840534012492239239659495017173568920929015188200354128284107061716629287562461646339497695890777453589309955437888131660082853661452008521685502321003472408918015622492370400360085654044804648917864130177670907236279115492762549308387169729666274495540913553130985686780171917508652010299570068969950503724302467545559249443045491143437691487549463674687475081698276027668922032055762522468155724101362571791081338156508961641012942269905354182548552985832066684713699882070052927341347771834646325613446417498578743845010258301369849506098917062346425501535434774603876631695542999380631655093237919822155489304201207442817792630822436600258806993032700134151901736047120370812483393065784444299595059192921443043391300870109709481058688009858977842669058217895181570756036657444700413688546368939781408810217782134279208333499449915713052836897925225005879644367596331988743612921910177314507581752825172014203665868793970334194442398726113033705293293985714279820755885552226324473645284253019893688602189476829878230881948319201566457087747278421766236261730826092021867646750017973301671673156480946973852441279063138068904046185879297560316986982708367567259372408077699741675579997757082124838572739986056652941518514009302012110296587751695747560328554290782509839063970849938047000835070723333548145227466011751402041088929472154812226454026898228920642711623841823797925157014394789770643902009070005405098329689145261252530082074209665110747578059273637926498906122557530747322362274951126961651466281713068869000496569151913090051458965117474979318055232275995002815463588100050873816685657374979960406601760125422593686400412512792929973021079385319926367031944343137600338130513341321576353475042411382945004184982230372908262273771770769963428994342712586469106463613634322801457922733706212405674274302469664702509156862488711651186295185807902550668743701635149466014038978054859210230024917303941010047134721147872103455022961298525833293487908104579489016128120028475372286548963847714194470016324661189892516246229956973478694356702482214580175116515436252560804158054206802367074607320545737629482397251550334456647714738040972557640861028965719488989348502914958108701885748424684276295776882900461464007154158857184174093607042387900344207148182966692324710297648751872354013669172691503080128202193427864468467476364162249099061925974910146589984073915486394340833354120940063273228330989100728724445915960573402793130016583066440209602907226339948462907158239757618837335126810380742297647765194238464153467442563839802787378438068884205259057411277373156237543650120783924071061564767818968024472594235784963873394704377046813003179191247386621827162225045142791494956038020146459367871680152756387031048443710828303650010703457194487496645571972505787345682449126202191115913735223122053325373001993721923074284812920585934390600441769059634389849354261773139446474044624500100492633328619413082833138106294176046505825501953957367276600767049039558821591642198609140646652734141903159672543350241513352710002081069392368714099635288039420730361197219420580346185991510544795130683412284831383378418808692254436054625168067033358937245268877031362164042262920973386953824930719734351537067787660536213350847857614985552774812507008421950162995636365769781788650701385040428634440935953432120415707192438367899158153023991245512880387024840080635195190330227993780765394090089561689857044510604133343226578780789731696934217794213287075339599450657726094248719910956277713147635005220704973908786430613525426550308428203701335318343636788467244540623893927181924067926761111635928388799795120190096500394921501700134425466048332359805872333768257008222911605733362687806101036647945843214008843392912373810557980032077849203500399965952259960319086390172537625118243622917861503902599718498138962671619281506205689857346724687092594650941716146026761697000026264177202981547298771021697697561260338881119833000409818446633803333871497391196362341972634683907556199635447539575426885576768788514551371068180134250245527260743182475699964658467901212410346868344511984116416235285088429855054726043094559258035754879070934230682344911855310830506588496348269853326935364457046183341284945561752088213128338176974471032703390955392485777669676880896937511143780317201890785330920121142968670333913637131964828882794265152115110719911107709487266269065939953982331165815087617783055813889360220904777618602615633308906777640259819620364665855841817552958214699243462490040520494760061716182688158610224331817170367329931563050907381679169412049773184282738881351699537437016284982177360844590769857553566824123804818514911736853400381923426669573615987178563941063238696017924490313411822082238505492126465269028168131321570037236668949986516676757561554103427048694887033637777421233477321315527269046952969888830627875962855019794226373182019273732539996160127387745771841197769708572198878765736257147753601928199120807786641094656985956399353315177933367352595360832341150754667441197260840743292319580212884245220937519406242771424679600418722065944010534586867237540971433324303819834140195664094006221785554362723035380662731149767053132611435205602034897668096305234219620779057586423854121855901826563924765286109247523296039117631178178221748256601146658405852185674121565776833524266688912570371963992462393287986425352524098577105085533841443794377560615993077982396204756015749603850708208288978704342203741404505039443936072817103253212741273565967326473870114277399717573116129834747227483144664676292571215279952296652581041286973028562838143221027185805236574323876436300315792696893850566238709884427650998642848452569234177142622576528254611079063260990825567201794974474805451187122197596749320870962039174507973687697998384596393010634695465768852232776125578357990085491217209390350083013462663025444594234896910800346550999189572950333176530481060861475436453996545294160994983968278247976014215879860451668614652164009313115415836841285847949756386174422374111625978300742099578248254682544005355667930984403461463736303395158516530264103271870776663986101718921460401052587675182271641019966595801885693870047273992568490298754276640658775975644951900698005026635818036980764851292801787333238684462370116955392416490166843334730887851371862504636081292506564735739902755982397459306706939176397480337756813621605935717831277364679039773208867153160834168536896340541829336155245055861970414209774207487848001399301919263186199603834864050321150984232627228484096874494356476911630678420320740356345076955616288807577530430802728373141987037618304009933610325508264856399277807785032236771187848603214800573221870441215724198138464433935730092034275266816866497632211328122340209521320377068320529601521835799887530198113852224150739964228647843126897355176701378276682593658274761495862165962876975705584396832283246446848010510795452027236516437320923900569152424720803334090496360085631035982774635903646318910444458006728567156169778199662995074298980582938485964496066069343988798308368223283124510467947863598542424497488989789805873750666545359497174164712226170632257367229288230270164282647111677341826718872073974929102735712227427341310007465737214777809153912992642458192971623099505431499341613874740108428815793820297649903603625184727958118721649020799081449728556807998273963574447762344633398042844023287186713667145283375709878329522059837921324023197207795593917685935052231945720326493475025861049888896939185315986806359391815169102587300814731945952269089708863425267616188518787986589787194289562653495510335012136251130961822437569574787404021452695275855475395659302509911570384053684390149313427529669493682891629736905347556272611519162030463502639960806031755814673733556927025658954607341615260848625295000208436340911190421316342457764912825095429356968240408843370209970453511976661792047533195759504263320848598987771653699775645546884368353860365335875853321908437148827971126083636396026571554583142601927216116578028894939599933170705589760217777193392644755618553554000854725203698256397792831479669284875811891848873523714788840338007168678203657125227183007727563853162355470342446741371794034372455078208021026418857831742755509798868342183713350493225617840295401972578869364534683519523868969657251970804339912507209315653386591288017628331124966260710549522531427079714552618520581846756129322599738113178349400605297841809193400956408993367052486461801704164927874920180789687355067716641834949797562644104216037367136304794523643574053416260113585984328914859752379795706956576504287436931116772114483767726368665480813790452397390289003990525537992314694281023026547082557125247528414626572023752210126513245596868682672603926272247090700998779286525597384023642251575087121636141217369221354015814652889088378065679680222562474969942257758755043823131462655561494575132644263087427714774822720211734706497240876887114407881464328923732279361484222437051898823819379768222869846363660414600298125763539486170533724457385055809537046199162163461187787576165380768066391204317630263037417002921707692671694423585759443797396100038771205693145720495994931012022780465029523361911753322520471373387407349851352602469836014289913218004443281891967552063184346419511658901144107680677724501456629588473304930227777753226610056380953789226040930849393983880655150208953643603166508546903722555446380984161116469600638536794322592211573984722235939641618719525409335310881567070774385753626528986630337794922176272279311714978380095814795959585712804217248038843843377051643376530110327998881687075153916290010938209820335678985228941653769517222591275028664084034409603372037849627944480470056620006200467577302122830144705459148595251113173627804863030109191021707032989084572079969186595983857260886420419513447314070262968938774669550148356575924699837291304695672424300226472417949992452195503891587492229085106357447360215259477728036685001790361933743247675320788767123524562592145014818965307471932436488709280685726452265995167393817250028123052759874567203926350204674790732641003949137100530223422349447059128484533000302176807038695162100870296901105916183326879299747228174127914970441569028216820685910572047169920335343833499440693116198134675735929178312859251224649825968406375801821675890686447958577372992617231742752257855697494666937577844404107007378354802760504856901179914614239619578671449162257330745500026803270113706432513896075590039279708105852827497264853299085803837006066685908092083258265544598993077199845490062849885778562976424825176943937234318340153362147127270756571634088572205642564049366636921572608241272350321871512677564070380772704778475519028791654917409486653455346425366352322832931181031172482430313804212344933117875847582756832690916410502988757951624915017841897142955419293567393256112519137096180041049483163339453629622049817397889694728801225659504370918222726562594641459471542637076890217061430063396972969844281626827288719661002656946026353156413599772898474313807664267160307168461083920140928485544828154748737812522861773492992629182272435088452674630362162135956324083136651339423602043491379543591775428290533787810835906937874266465298934267295278566108475760660216292838014069445144030286621101362372146558984933507675250671071579081133635955169927196169784549055061510704852761489852266747241702064452795371535415902329405502740022516500225527609389993528902449573247413582592381525892240391091139787742036498804446787125973649761062968054855889331995198647808324636262200771839904366387766153058528205703989682597612896163666052103049881145875410470514251174351471593487763690363333168967721852758343925010712495166331445967527863457568857691856578521136065216034177971393887725681536482588219252584075124750537037701298828940344452932812746628461977488426763515452044918624692607471390541459245165173213583277343298571658519304732072587845191215097916728466807772032082704516959827901996730412957300819422801753225013600973675298779848173350976929618061237944097765108626500216144660841936564553574114840141463356818267970704947454653213643463275979279027481020098817249935937521354226692486558300322016939745288862699203258061719081301561529523905142062128766770840317308974713688064339252470671450081127938119583115292291962026138009504907293376118042029315461174677998697324562249077339454807815837997634506518113828731212784529218210142534878624117120765440881978707084627148976177091203730683037860156205943631934933674976717353633518918492059688074676664568979349410740671198497473101354375367617056672017566946033699712154842094422894024324564216292774321931445358868369501985378853052144101460600950915435404228326918799525926666860497598588759675615988760579809569878383686196848223979726679740549048762064893834900382006905978676509309117382114020860698034010909143853617749101638132445825263395721349165859054072864828182153517005890950230844828776865860036694135189183060196017398525332547796262766542689187902178176301166535051519054163311594485226098705280987164651980332148861264840621027410353800514952998700510987500960403506691562749079417343074252953722212151496297268093908207914218726917637984357362481879533919757698937730467399806750496621978001027713839696860870664435716987584790271424239939759916573443247296023204354947130289535118627943472989449322478499211238661068244487936552879593976677695171642483373232532558470441696115027676966254348749808420457312367691191690801771017518676055442601894661655289205648869855371706116580113613543113378880808949797432465106276235711195306739800670766503718369455624118617719755113058910105766087634020039200932713867731751358504595747231243551528368575409951208835684288113837407037118083837648723536797668350486497225625676483104576697060602021417124889812086334343827704002933206704292641507943158166127599803558267547336775389043911117424061962542107553751315072803613674144562216925740513460039988490731430242689151611649721501697862454999011710976209373113529314640392503046734455069711529620992807770411727455265693033110445157306300394748883697282442042122849225736789403133168262654850841410875286567037785782408394074877955477626656168297096017047441076241787126614483152010649172951928461771556453161727571722583219784720266617990959494065955391330872107730708895108824521894583272195160323884860801650300509177277883313464945198333703628722543133087460590458452959696711643715860898145342254957277954099693775490460834503164410280622440004980269423272321327086373343398096484405720610048001612228035844788280651387141119162712219560521360185981707676458636972663405990711104666571371306331226035599418317474555383465570291616453703612370136877898009422310381363365385743502502535776056379635086376363612500967701873286189158457447744286737725610960379920980954452458000162545472376498102903168027586440134803540786302408761725134372759280055555713680651209851193595993276827951430354534561776261735926532791247743775132304142175174825064772267856626572498288077208067813710445186292323680026488248719284957469670979397069865906767706453646485963913416840251033021466973305739811753182597594395981404154850898586795362271148768582368550696869993804994384002924886862739234949965110909812102093271281773384347015565433543905555669646227511638278297582326176672349639864270686670632734302350817145344802970580565925194959776118976339709509872020327375589304341556769760837278166547489140124781941214146418674704736694861204654537691623310432313115294650826491352248506878441565283910950673335138114477044106559011834000567177595863415571341894167774416578703542007256313437944726828880211787530839974430320474620761602519940269241042669821177853981796528958632395877733393985963356049799341790918190369898058506818941127361993094773559124304289486064087390815667440745650769309932356112057234581673738609221854569293123580286269840640550620371912207209678865083918138728712968526794054088402334416561683518719338459354450271589947648588094892558431364295998306935573750637143145742417950804457921674572680531130149042774105299383229819174819148222743432484416028106098418801083422550206417505089285585110556568391437237850818488322023871624468978320157555648848806957621028945128810457964195314657892018368624374805247663894696016075381896212527462990395431137175137359515727955724517424956742828947942628666161118405324176219876832920277408551738218173799890782182814460625089168753847050361800232252565173939646905076884380923422307869292244196310702876790053679869912009149118906795859180378623412000180143745486973195831627405544401566394328656313694120083454528732639913261738927173342871171332899644070965464392925700143228060626386392792045983037190212880357206624807109212051209178556886743617726155141379388900927013827731014691637325213906034472950191777890859126132903810654173904016609188619736646749089787950499364821937691334776754122311044271458307478959923078104464511676111442086221989072511943770830853972687319539733070963899404854297850606421741387749890481284451504510154221407487622069067674938717713673085892376465244309988799927471355265492846526431408882586019569988867861146007442678486501334932901753735930791640921804372929949490088926363875939212902938194765761448445305923564618861988070700003103959513697039263354859036567999507622863721524308431563908224842335575001028395324538475592965259041567210188949791183455876579934612556621111243055077358876337521339369515905523280833111749780192368610135398107302854154760871732374521231797810735842572287365971880822222634982379617137766728857552635889555916592373177595623766787466997557286553890419881129360126567069015797281100848076783977547812754574015776003170262666881996472783590876227266969563148518082312342958745447709163440639610531559461010178903236410584144623279421079025738907802827269922678216324931987206843013536716038482967186626978148069731755108376611631020682959423263853861432175442700322668097091632387197616581785564760440966945239678758312201644227098626620788083636891936564452273183283163138010550879113886654392438438665807987179308610889162010956831687206364360794621024074270996165074546945246557177460613807970427643888135337268633105867036611729807414717282281397815460626437449170152196298132392525591172196704751361355154353466108534096046926878585298210917429632562201621359719978005630647676717317202071739012752773015248779912187126830730569780329137856399466599573747425534987376689068749449191515261761424754719024576564974972403379835903925797857383348332492435285805422909930959363042948538851205724121243344315686921357961838482783486091464429247097824196835514659551389948889265371875922030204968824210942020142521186929191838368334099007900937278959948829733367240561985595165648638171827395083360625842923877314963500368549819649282847860973469605633337052316943469515443977166187959369988255979170888497637227654576637523222627585332382299875210884517959931482194241151865231664943427514621288664033557586282026696697700131711213488408838615956979168882558001014646124136299740821940396714487377848861865265821291915722361245647695966267497622463363623883776859946664332688400400841789952456881181215223402308812213733131761761626834765137712221846042419792645636493477490677014806786513592235653654613104624622487954496259883389632926360250866298296757695733224239061714652093779592309256121713578003663387044063804379241273724461086922584519205591367561724885272838397299670724185847197010062718094333175403980849464829595163793404695701635496688734979392656881023078366676835997356659857367753232244183565170167653880018388920032577454885168917761771050965583771416905320027887989560721208741992267852966601249627700377055775718782643237813654329149254757701272405024459354508206942596767236213911890016204182139915205609518895559135669740010971503152644917193422459327671621752294194969941778152751996476164603692606607800735081948757377414264403199516113593323555537335191541627369265257641212484956673986607327645555441714586777529136805526999093098023844218911881091658798293018748577873782288238584068829989281819018972103359634794511688418289869303234749341824882385996519268043755163176819231743893777579625802443610344519177878012203367183611427159600366260471132127597750794239457772188374962858134634321672635416966562906880600962488736130130122313203156391790611428961044561736117256765768911336322517106034083447176313420276201464790143486160255787394820496246205744000130297101717346906909963274232270972408322152668641788104398043329163803913065370551341345767940292759617878776192108359902650632108736135723687974022672912393328274514816524268838532219841801674360091855879614719662817500222992579734716635497390888361029147598707187415375736103452112255302535401511671846992172560012107103933430182791396371952671003287633254576239458726689288936771043686838679354287298367807550318885423292674598723504477912034239748560627059005679278968989880547504124876156492959244315389433963580934384137823510799914046875633554669018568469940485546101493460240260951421587101569441382472520085496302397332628207299172344054654582920676706902932195362739629782705473966876607474474706379391099176807671589137944752611345251130172140485966474134552284609014206617475786113675841880050002997089297372477135172523742259504008435772077805888778434892303566385857597722195695305522071877616559055475453729367887626696413875005293479691299177569776863071781848452692187045077756334632500628036870257922581080948857235938241828238284810918265627576708284052691657673792141115414737395124795853582130523845264331669219858690597821361723075360951234368705577176323911110530603706728502045304895872351886039074170751419240182672647407534527493804337604147915544693492278737171686803302361088045698898541261663676371651099421038146046122782692591896253032262254799030508419680146234632747121997263057378637410122802328879459046224660045326271131879767057249837935887697158589916469341770995736424424840208525392938863521069455317366096658392238328579952584705401813448996371335942918132125894596859150894662444304867960514363050556479984859850156397428792525055516433859520737881531244881143190758848249963665070537966418344318692062787510068375049209850099683480370840090288325259951780346992409394241215006870168726697221669879402314731922511972261615586224913384340965310908698760105970247364184012127860415382681850972132093477267599828212042901205124713921281004812579113749713117537355165479859400840661144039686331782057944081552460454969476024156913436833773581300768843784675420487947851883685197230381657909932275192542151473208673429767413748804292932084520963441696206672168860699685058748484966547274554444560824086656384460665424960582875865477104795706793031498946160522264323867462357463797059139210719555002733119946288694292800591547844211055856730442495493840120332272824534267282166841596795480867895827521366958045186642319474101928831608643437633914875617430606410082139029157676143331710281883312979304982189675261056276084703997052400926218613287377347071928288099214075374037269689281211996401626063298698896283566242139737477460820957669179390134159989154845665258932269898999558182403354957569429588447876157243243707631304429952773729471697989125066095205640732142123681034431990113714310504903807719983702426071170399345631416679095975526810938726445089159994202513640338718640552001198462896507308892130625861296550592261009110368931808804580387057768486378456346007038286186332281280731869055596120909957723141925162630108987923418274482380119212570329512169106796769586324145030676087409291536941652223585512318373572078150979107742148660807190480043395876151211320058284518607920823759919658100111318154222371365067245737475507078200070894505715321536904164697851889266217553600690282408977898812312370675050546648815743122397775113454250853105917895867442262789711105877002072390714583898145275540602801057454208654101860770445907201817240446413575678067157261643390528781581152866015850983727025812076607279141732622378632765522448783632333043955606737608982105050806131359179432861891440821751526877810237499900283792190900809471879920853584324017305135106178495710093477220464865496171676126509597561717839546609014259644147310947851456763764212763521317364783899361085381402313525013868774010519447293306280497868948964751784105168651524481259178869188351546056229966010060825975259045578720717399610687720324244609024367292424012933559102003716033767349683361969740943898766018679225444447240038562236674526959898263139749951719371721581863516204810970809244281165173966458534858955934761136285158347697541047009314735046780544621279219114026849710394006098861889289568408140738416310621831301197925705598551709607498369295082001946657358969278095002738556079354557832159830209243907131093342687527903661877633404616243050615940476392662531908431095519935366629505220626071327389930951062146306083559365481097673759720137067627819969894301626177867625483034646053106339781327868542496035584464862253590016727958726264190556373105823000012644359992159839784173526878845119117661381934247751182667490121968863102508381193306465022956039969800455497817026721047799157459055120637405774316029482876999273846978987273581501242562957302911519007620684340460876546149406222122319352373023049581777702538191455039436811388874880199115228850240194974249364269308958791432605796329100123198290443586128500529110966200025432192205921212887559822261916456592358324364429299635039745330890678209775744175557312236415694269399171453174876555408473603010313117274188216960393618779819333171773532389010312667362408344032932234913789307866953876381557324624344603086509756927272001863655451716296920781817341181449425199835319816753425616778426140947789048467754005330255296483388789648299114266325471324493371881839233392945604864087647437842134880138706687796304655817531234626889930676975344543201919722650196461797469432298147932563603943811114236323210559587753630075020097921948705474185125224675481320381788560677300330787082529767255484919395232066869093194419307039159899593968298317063666903884110437976336483709325116856124335581995736107180155686107393247618355621108308495368382115271945470140598261170196746204161588485319501135834939100696148233930602595508317199752489116162735387851662746132822152066179504357259300656030994620135967884465606963953874388094229583037690979900595179758791814019938876116800095500914736163109319193634510739973903360945291500174210317920785094228692836384250549970862922678333179137535660049274214949830533008523622939814142009487577834678914633428057694599975359110036394039887120283833740607525172252128914756492286175629428519661422009033995799472242783673537052592682532190974580701064717911906058498319858833178217913588058935408273000396402082874320107404146071972449876854242998109799789976211904692120578775529820803315683706301040596638431392337539352184946988254450786112335391005769684557595434765187315940476393894206655835217081832327340921277966242597081089592248201453890904658941762388030284937475038748459351948749737262554921874967726484568975475965677847112702948119407506859551578795798996842676270349000093036249467703367246606794200690148275520189022977578200870036140033188907112251741064348402662797244954185600057603105173989022644844698850919982399968648937160968906098809679884422399214492423268989006838598215187544753118841556206882340851514076737558317921624544987328013003132530159576416108186859033361467046067929115347872001944662951570660075692816869765237508268200040045530075388179725052960975753368941647586151244867004300373539727818644388276307379434928933152994258838838170735920291005600862368850649898571703755997884412487245093627412269507510364809417113596002368532705650466545062477047533421671372089257994526026057814786995947991793405395794089098253164121619614824058408917681224952229831377374478858661957413544891597638302346127400330657952569031120179695689013398002294004009567645088567672858831474700323437783991848236279633432964556571453386013142117895117907822508156191181088203002730573919523496045185794806178936249457453102011413258877133833961756635398324560712666732995429428557289305324098656649264917400182268133628276662925731085323775499399077357404373071947066678201520891400771904270505688383768549102644493504214427672449760909498819156661808664167162342375807814653762990989945527068729680590643364950068719608742765522084165797037363125336879870854862990674495136549178792864156920369126596782106742727094337774412431880440162715777871755940326237862731548606588592306383035019645806581094178507412919617375335508001438226590377053659072088659922245283484789988854729660186412836809906631855890387440550450132690560066399494260924195525844573218748637683018571157732053677088997512722164683578112696409338361401157022019960988318339655907715978737417589480824283817370188901273502825444681250319363297097073730106469282430993372334758349227660609706518574251097107396661829530686307513181654266122399754610636670397802708076616195113587066520966548987072813742653768283385464502996894463305126157850010041797224807277476772433509877898762726322297201630480960487570810993557150570716072254035127825596597503161177616166258915885013877128902963146965875652459953803348134475668859865238453896966960189674239711451911489100976757881683141900730709560011800778501213436943513697658610163421917104994167553720336439923808674902243530822087805462993659796522418836158158148632563803143684617750600189317998228114793602631447140954933714423367711891007356691809598285955463392730865845872680812507522234478614006268659943696984948627416513211576055467461918610709505878465010655060095211492759427315779171957856144458487688278938723624025407992409452281602940184966177577202689015947397325950114324613111804546195940852620653329287743823343541406951381020817828136058465442790958908061274604609285462172626197727442906557405819449966897369855551533674220997846475775829352302651629280317660475506646043189775946793136967919495720124077271708913060228971939593772016960197670180141382073617043225955185726290026370053301529486261459829467635017034675672957132761747237957528429765179918569655368883777728806306801735525892830420848194050198757122530267476151871635497278509167214768988591016310147529893477697958896361476980096248589391352827041263375588423188710064521198668852374410227737950371338509644991863089507824047897916646518579292719324988922510722450870510585888631086617238692072759552867455397829060302117910417475555127713314196875046661784536511795558981948002349663549322280410888943734910609638257346541905216257340744640341436074382597758818375461353295055372252247981844637945047681481091400829303848473092780952514762505970680525649792386282919738392184599504273447641277305667083427138237934302298933938321750377607533545000883442567218471406339677319637112301729774582352956574603584948872109600822376669498841169373186479370877972485510172849756423219921960176702751618656982577895358162198348840597919623944241099810857056476523522670933637451342359204128688638614819299025885247846958567961670395722666246472008109485283917900811334042366747242431058561929531542799663437980766212245588743173942827922168194447439678827812899737939867702230873403600484270707983613626759263867112360276573246715416764841900939292574348036109038924857885811478859902704234309283298500191617708947333913523167886090912482956634001993187200331862200968569200161185055387341730245197789436795021112539354218453002444753966496351532912470950305482219539132303608986501258416067088925513375813209765447099899425107045299967592530334012504971875428951565605432053664497963646299889446295028617020079568497251765841660097046935031009031772776422458366760768864778938915663355133210414752555754156137798034373950678609428154452131530207997588522725824196662079396332281353917942027956956053691013609490815695151661276948135134688102305751863555164335956756538745357402734554618719152703327125925259395320837815222588931575107800941375280195568073020640235566295212839500121817426551363113309067079932365067191243446859846861535409925840022772235377937090114408983410188567126350386452694252743291984445572864574983938569240808396629455848906528749096834444324968068572967746987868873019522708122369574302904430944619352487718229367209800703508009600475515872531564036232539972124271277703379490214008313982834611388203337738875841455607499650911248212238582339779474532142964643769911487106773337317291387485724246339187615771404719867134358951188868159703809247586009834755616995868651868749193637900672439359359200898151143748193951451139526363507549683455936471227675567203959885565686672710711331557141265127872322666413022272580176366570247764868685354562915826262989629109383932278792362460753940060937704411718506140533386215754324374155836384260817173272256997368869119411554196356583441118713960946506872469850495129800606838792735785378596223043010540735757813387519052877562520265790380811184830395931472926459167371131258534764378836598029578316404412497127399746094381121065325624833915445060678776416044128178084080594025190217243424686639319439743521409746794819035833555788762524902603298162289989134633454584021793833487683745921475611990648445191446806276152477667569195288883577468691720691238857452455687122517676772216754810304798508916817676425961574208675782623955437924459749089519400416785512379854716791241458072139684645656189850337889210121297812015009630196541849509901459751719653176562799981535121064123983385686081474446520190508224841459205736210133458804687225013231575521380993773031217513378900987755853906095245034429136332715198946778623663951753715578510865433313484822209151180129887393028914498316692916789213113903423102980686758561482138665725656044528852184325363163813178487381832190971127231543947450873401030074309443610337445342418624074456746828195220751329479605066108152493294537000863973367748285189935466977966541014927387028542745411948445210274729158748443044860822144382782308858982460915688370585344782028816523766523837185318837347582783146344833874573245387648274072284011764202339578420468621357363890831115153718294355690869754137489512441754067689435121766738133495595983769971448923750982811496926473486262123615475426164194359472060536706259905146797444821019880264294968365431973810488271767913444190083591639134728165478066639532969686104771820334767070611827240543373486721990120354724640336208229480840162655716133880134400172923395667557034676400147267707757662375608303896220512789569886466868094883489399686964548179356675004916454237543344319893333141553248025375575454631323535633207493939883275123302159132036161850959843666076624440447115209377447753530195326973540809840290974710898156251117590202214657022362636902525444080754267231996432740227955298868451727216946901778448913779255753835304122283060108283542265818778287304790891511908748949007480519529846719228197695112350839739992852966649300385955409986706627993895653853282218761218804252423089262586572686456317397839198068435623629964492662551718073536058754115855301488452722811029993431286855451904747564102406364305936674087594968427387031798722604893717956974111434235242643644445093416494255104945876952272639199092043655915181405062289222367826254133235304801018894170430996930173581037678995048076494507774443452999354165775596945849116959838995008888454108914605076441338979876706158552715222335584714027727432713462955998169057285859955707856157370711881864227125928530060690578100769667672479365453830826525731085277858467436113539305618412858504307268821924619448676895263774356172358044139371885128371342977895536468199774737474475887984017057864886724919033469262059826676034815098308821132873276299200171708209339359592261704418694580914025280171344105610864143244541915770530500770108168007747996997031853005686547713252139771494972384158789614188605686012604926550517836960953708095101503237478823913369525262042707926123627575402862097081353360936218261771533783721981294298858348887805620421668386019781601394016236630027410821522075808296524712007672332922720103479319649297614502601350019435228427300219537356476043892253273371331157323903728987232031717570555153076433493022205547429007281420633090829054119621223237501451632373543437187914264902010250975770715773700783176372080433248792449047455303577919263007374619196247222919293284523312690605841525263683072422782748969388852881472002133267604004873354475444739201490519478146163189521317708292390685918170997382798272932884663374343244839046529730642043810182139648897699620155671918146070309935280045604835337842278789654440335980929239763912485780724314848374329753941208905636454262181497934697484015262999121363870717527978110233378421908739686715332005451790756472933657208608478983199097115798772636387611377476579096537319340931045606739881719842575895875138706781536241070649833110916863592954311550603401156815272606072159054939578380554009968908116274143899702756865306399506671169931014377979527596149702393393024399464787082868964516194843035884138126895440945495744952737182402257046601697454778564792171629645325906321704638529918059161448536504429527110949134663457751472831252738020532823395171809513397350983736237634988470750116554236334103351431331916480122257284977148088822744920346860768939949269844250118563158070329196509630883164203390049260299240721675957951629611498963363676593268588125054508406389190911259380628370728815603319103726075270421554901496885329467952171254465205785010383050304208242953674911177414986168997875378499213981338057681382659830139897735579360452090021807710879377364770000318237105632507673594199498090462732357776517163498361290779834909700301107032224311057414406786963719169167995333119318069556040461240179185182066491428675266775337053064426906334186473018537086749039619192038292523687103272478259724690770414091030960428209046612309488644028615800750040808762082429454869126661749418628337220426636166066987945165700579375754845089200903152476921862106011276177594821636575354911784546483228128353877639310495147578453832719271586643976857811593824283652574225288466733123610347414580055078385805973298304830591072975977729621259346842572135499089622925516983684925142174741239144853820069421800758268199349964623363544956507566311079711822485405205671360732435920723840054089349858245206887774541023091740126459121019086173747341281899264190906794639171828560762516780515602069572906126550333616524752481656276340632563068152739384229390479574753810284209457737921644479757599901203646110246732344121549851345566517020329202948571961843820841741619231163588633651872545023411829340533399455396904709755581234058180832599890231163309758416958462523404899116188560031965461752477171416425166441252299189706901993926937874249847559885257984900409395451986541652951981636105773038924199429072968847823614366034587817959088295839043715548129345494603483705619619795433317349476454359383272810466572691735857014363833847713167583407216847632647791439316031517286293484153049455760229831769184298835966305479674853291797987611466744935719389824712872017153147374633185292975215797403655847307362233550452050209870598758218232582942488947393639303842427892281252944995884604372295006639377368428921416047382764225868455061904563615809883733887743013134877675706522046470517501654408664184953105601371083491146307678608533166615521557795814908260714651027187271412382770219153105702530502071622911897632798691626753544880105849323348235869772185729415000258319883906710881174221138112669265452615695765750935928474944392129610131128221858725940831303151386188918627741183654124044397796782521200117849999468044480381151927937524181537239177436344468270015984489636354082155625286739205193064129755987790097415738442552841676594553341715798922535538951728153459687842340286641655044104360509552120302121386096517930852018469872932704984480689610298112705915350222517630519529147026324416262731830048814395895548369592866743289045751619959208224467673384997691887993588400248181110084779394875172876717882282352232186749781327671476280135207904271009155987503516681896141381287262860875632125913345974756169724890906551599120349709276393122362452858131216540191819043143316237625369080736335321548673332435946344274552565999699618505550431282205680568027324951215245778887504288821305867526412022605929237525970401957602140212931074072430852258778245925697988662773661902935265655623139210687380677891975061643957578673423393482207961638445777970547886918932685734188023697611100859204069836389075034103566654265200425006776697351390924081499388852734790385370071548656147902375703634301268341166023601475257139170938149095732378477093448810534818061103656672451070309799154927026798625866556242094190275559073774810391364879476151896099485706367710807096365697297551142305006382642873408764492988539741153363084911451340921488479497513416965456389343346471362513904720130528092013477480299917087506822665040061016549184501501280534585115679276327039763390358828083531131481647283750348167029441035988616492856295342283661665931862116784550618287110216706417235842869027988600152928312271602477695362449601620233638547199651965594939804920734643871154075008080251149519739416485420370035051591226487510130897749198114943369060710376001241775549764295380641072110297842692672392608710224025992947111367917803993393667237379457487016331080039873089324429082430446208854443758488525697737405587679854173336677298275456736796247333363816815183870432366299216111687538705183866449850586579338429010504539139205919944521634115243251513038904783627107604729760259335704821763756744045213520909757979201152508543043762495766435283555700345307276151785775266079231101864173320704034828401693427861549310948877787376884010790177046306928983429879117918761133063809735655755251118804496033242734719038881270895758462887165810293559282329606899540322631951619189585208796086479839070342501808950005575594831620171307326472852606263019690035442058358037086189608689900522971324560220768803290065027437543624781510295758114176147661693427077743521485687610546578108606154721341194885771783491271294191826134257909474058132469277341868703190021133599901254709147580241931221714005198349320219054287846009293803671427113351370419199478118132448784675381406392938579695907113037832916584146422152466418028719782718522186064461798881600323180674916857780066012198298483357268613892198899959469199436675793429147532633163552563144777235447363663550642125464288964780661306674705865625416367646395458042760161912905490551558378344907458991507681786119137428008945803139580952138992396824532453796394453557398879935231305488493032503286498722412062641282644899009762278405295083660927936872336509705407203742557873574398798296652216731125194998965165878725633034650300767682165995492572961124729465679793498282067969564526867356815490916382960948832768354601443976011560755213831192444670700020590248681904338374635942582069707811083079741990653317401480545675260794193917039544682468313790394997112652155189835937312462115723436728997587176158900457539962125895009442018596967031168808523811552335642623187120144509668726944988450544259190474909502540941727501056504747919047530910854213035293094226701335477357119651017562607059702193618387036300469887511447003139454348061175886631983578321000440605708037989581319147414234553203827773244789547224201764694452629532240426286978198219235981436776665875741664754872136802186928754807035170911944667338103658522639883937197833818505716119192251446376328024107064983756553569345324301510961453523649511750133660685640116123233277193484229622040400652163673163334073981282980122206991002787939610966291505607234711994035001486077427066145907248185573732691787767420704839304932999746994479784134642372326888148073866726021100061625387703248289089782551190786911011617152172584923338664691512194225400825207920182274766515644952372433232004423625028228378709146673967760812031700361548445625132706431460879415131970699018384017801216447708895107037257775958014184332480795494834746499917258104660489221500992173514681167930508944646921318760360715238531365821268830925117444943983471833348006360503715335065415126329418764439149997495822333968875031897462148674494041419915693749200400752102982480192188066028683572177129044563004238633989278180705983257966254191804049270509700455087990059306199223234870633108187114312196498067807267122235118507255825881092048426827797857566180953139251464894976104298045746004069640883558392665895369817825824630126588609797232888456529927792805220355695834308319613820636272732418393238654647892762688989175498894011253727752025830806336768674357265556850149462097196332657102254995947704857617040773585892826185560480801703221954797268875336935401416884795000002629074644535037157503661208627614126022667843206926755410402812364888937545451927632548410418784164759940087319527138698500798886319891263892804324700324601496228325468779049427290031843371275724628381318676434041587538331250130228840211136387992459000634820561122475834035988653130637689550904251036159266445126510419537021418268306519974080277013812838252883960288331721586276296627046086868452290857052300483213070692187699028835007988332988173432328197687790449474215507355564422902654892964551459703842418576813344810697649601008899786338896822346012537692195620205094454601008069285411923181023795602464696878578182080580481650005019474041640907112197765014678418436124321231760903668942576866934854417453224330004273846922586269940555398778403772602901848473295595718946299715161892286141942478959093656062066533192672848890294741939146542148958735909085897251321671440165264028370454659678004509153864528352335472237662826309977901433004515448275360839238753833178220004866968571280574619950155270224297282207601126475472185754776976671336345348098938606567540211966430674085449475446657388936515569745376463350329890850033651747974821539830848538899378197681242670409147988219157935480563775024166666179956612189932355600357895071807228240220083807666708278762488879413311577528210058268432981410887071645776999039357569721389180257478851546970908344223153140582561415767739187676572810663412798257357039465979783195690585102515454326087929476079458349305055035353731809315021361619643986759426151124711814933022165879176163065561833292215859294244195420228112000074146364898743791847646021027451232454512746260401246053246950463928949226306907226892175206752387918894933737165270113660123935274996125103586136719677386363185767680174907225019745629212809842140462340167906437982336432578726280230560512731668504940400960428454658016662095829902210938822860598815636187998183681002321784665157364798321082637326079606015131791031247268791873959983092652687393620109326589107034497214155420797474500335834703164683253303693676222257828304953198450478101716022688837125675936215220520164399065950333818961809951743441411782575620557637096419917956505647840160666218131371970690876197860413242692772081584855012093653800627699264352491408023279895942347258782791040376233841765766588697933368921141207790001291745029681485851184799794718723055850684703988980934549463845726896894039330804138706704433077306565548768447808393602074599735004295583761335524449160907868865317808605737569700484947625825139641506224075108600580384784482589557528732949812162309750680394110615325852089553039861903706381287131901341043056415772817073501837937550655246912185885366368670350920835315763296349687228351279297638423520665930832361712847616609640990326023234008453640584056308493647444744927421152509812946198643679319565128687135390646268293704139746777426097502917417187971674410490183548206250563699352149809463948362622339044977707800669374762502653272806871027155085159447983076325608220462835534839762502870198975231046528381868562703601465276693787444231522471381480513463898032375112316366195417764914455350299588787164035056587081076260295232796467850650634926751232245148325771505011445303835701667661976431312773914367236640436559146874606183720460287080524175266625920985725740927641696642990477703888042277015942925423746067233220582403697432343569719301839065171308215209794322209899059669257999202867831598599809174532983421576084391023444704373827311824653268978779894168266886457837390965008499727523639565342858940345164494995638099897596300920805607348400687463102780561144431831687923840502483414387062775629188966937309155250075642194097881285348670822120630426056479189475507572477895481220924652974877275847709267461445664961531248716632972088691428439724030429311846666909090137518726851941303557253923469932567755536749002431392633061539995717499236610250208801775977658047750615564465788288292340886601757997844958131999554394924827995343109744615194933985698103925540943573989316508569242200117319809282101029135931161334929145993662580071003259395004827965323039799941098192384774932273865005346593663784879840603177975400830254867506949318505939612819602093861282227634322926173030717851387621599191916686263227197267609595896833176135284232460999596416380869115912383500617893442997158036903581861596304194093570235972695550118530726047542480986546794887737795253687040771339171954152574741309720946419587518850881118250710135902529766156861764715048802776409889678063043519435299941928774224744320340971957951512812904651640256249698921939128743887714080318547050254596770171463486017707204680764540177265617409048283154699061866851028370680401645540372258533628952105447793387146878856452973589895670467232257352823488073782656100118701001605458372467576716662415343201342087113301564961454644232982420957766328098177886524634928922082447802276715599602806113682473047933403152025953858785134226835243325529805722978308652905319223836177436204057841479132693907162979403775588446609091079068933398805634063930743752810307799207456771004258449195917710390249846634727973657859548197598061599205631006248594565035607322911807354309366129410033257916587199985275917950271912903044073400132882794090489817943178463464546260442242631094175628629361329523211125911939631237309277393885553820024201097566944753237511181300788298648740812269214615188923488898907289268198022006521350055780368260243354941060172090126926967701042674731811996678885058809095788479141980658498772968068212759629817188286547012918191555483389594136124596721242911736254270475047325218561747454861663786643615603845887674447559330721105421223426840952138361657832639191323988912021947005628345220727791241303870892317194949445975212784939913002285476767751808760998111599543215560054177448448777624760239510837505719320679105347700631458422346372187522440459955457849487505045583280496742913696451428102027186397750218535444330323404950700676145241940867852882228058253811544374926479378967161482543540292796287035678490344000627719212841071711442354986542061089065861934591769830677557887677178083280194337089287959603435795962249716249905877689778214560776597529556721075753186776316343706289489751970397632091676360344664073054631571007557119801434085054484041248257986369409941957056117690581046555425839180399894276030668002227742919233059165427572465237720957050136548214068953129917873799257476052465764894707110182476640881256390551712186664462487253828845792202824616828847212303438888438201857420986231207354977147429797554814198384157220533845919891873575245076815508623188669894092149199453456115192492208174171436613527376923119729328260379784802175811741068017343007229270647935318757447286236943245951392696425500920306512680455857500766659450981123824274780611459330893691893421912877127153076154853903708454383799909286768312868972086298614907816367229647437139345275132016445614594301306024402867761793038735229193808842369556741681222355196272202422919919957993215531060588484027071457453481037236612004542598034032163594598244868353867513170824210961310285244437020992416937430761530586836536924194318544183526433202849827813799806573780541574636497664161120789765237380361475555771158708064580048943688055857910256745134446896545551106836653580663058475500384224494800638662854066681697392810912778141408406579222608139806948249002169508988806388972511908525043551947388041716378101756535540281925765259115074068285065811782319624758958934673974623423633324708489996812152807010025948344626637452580358746883241768220285297111335427035630135203623320091168694725715173373604682037053738963265596015382062962750715901779735688115064065058905685419949600564810317446545143130434008787083307049131282236196575749102203077827767495929804119770456915880592803737566608718538404864802690662384307288705619243748154917871653192782822309003154264831638249401502435456150397355982449708415298793861272476666688354327395696311718840425232743875608665275977699582813601836178840185162621405900153565579851203716483513887127660132690014806904345570984392633774828823528755463874439396045135930213410118567231269824085495458740783314102317288597841786927294895042589925482360405653304155920420443714625686683859441487998649340629081077479628235396139689845967917681862843369483513274428330785249197627997765739799519580869047506738361031668650349876676906586352502075073997104138537902273126839078652170531054241800650281073873190764415323009658636869035746261445285532395749693609474204762466825837035640945307631239799531083376584037620060322790661424775017712933008609881045375544148914740386414584011147193237078481246010561025063333728444622106012405050292747334895235791495300172047351715277303750658006972652271179979931574250273364967110442211655116321465770347912968834074319357757981106672685309064578258222623514917237808316646223691020701202897928793260200464397539916741673950540043855070863463164757570063002150446003448757365921351931071131567302247984507895332110876309458339434683484304093540345188399883018681276358862757241872259919903165984148354858897605510014286027842028612666741711363916059893449615257538669089281356195336135593096903406577987175003166064308597287705979930208085503753983799283905791625567666710925509338613334438183728525125832915226951114744379111422545477990511538982425911552310746502787709626401515116912607612114039590590213965357122717077257122691088358084799854374383596010376859035482935500705991193519054104404845786037610284500486641146000044588105991934838455679651927361909903275648658756282987692021820908677225568732949039353616595124945904832363753330470845496036179457559954055284805842413814207642211253807688242274140968281097325304055962275051548690140643468896960751637323758386832049080577636647491240349878313517988541864787139444865576817887669489382971716259244318546495708283488368538152873750793028819506816019485554186681824978996804078666533111740425920051773317482026614067490106147601635798764960031802760308860037193050339715813877206877379432299902158901165466423340501802164509355870721649138384539936535013164221711600199247458032926284857419493177348087429496403655208923332740654832607918417291375107478745990716644412977844284433131773841457941662546543119149998056249297317538734913180744488648965872504286362478575894051594457761916372144003203461117990189617031968064693773439592869876439156805422182965394801889587116744877688484804259607967081569666631365973900302469687066198695081902626059183457876978381470506079143381131702684649961212026642665358176541159938730851141287063519004191961154294859433600320357346793087442366513721059849789246772567140321699710895039734558671520649456924938483947427862638036715800530367930876993086988604423022735365406499598858640657055157537453627167080553560041524474887922123964184787355128682906093217308347439910886590688527504239530568723341147837681828252879880266153038898364489515568054108857874833579187099588740948204976243243545068723758390219311451910629733967717265000429688645971560335271902756068410777419600602781500635494201617741419479786543209491451897005812217730859784238258049536149597844609190084048290287407048055073497739994490749327874643975377733759687639284563475280489686660375905593262757002824343736163119574235170138487097477691044182044329463910707986787159815091836905164886276802057350072154456625316818506965411941086072496870428597983424362671996343652535025751447479897976728915108676227667182212298497407786644027283938467528038230422584107882401341015398197442264900525462621809707700135322260182033783030952388672622333230877276194601119961640945330775312245991945645128360584634852059852845416657188101286649465311665940864179743203773689773099458266308883242421720104696562757039720736708143400193925948694647303914049344957403833373430121334498021323177696165968411285212205765914123844332867969556615609977524453497366284643985946194956383496190269432643528659854601609994124562084192555125434436848007362629803973654905849348342239246261312201975473180406404764323943664159818775967498986708235848700542826770334601201135551041267186424744182174163006948490354134535249445968255298719301514692614891537211783215603888558310284758421146170304089171588762258371127318506844306919570913285645877383233362293081793449827677813320231006086057296109133502190940578395263394474162496178326543281467408952427500128181974788387778599767411211204677402196846490084295841423389591383039482336246334954725920003189357729197813715471175644656366728479185272323614972133965438774344491643343349673808905832057910401252236999357770867190194185114875093967176757728538443261092904062815926054352893822256010803915710213126353519213297842859678644411737339853646116253639112691575532906173378152247609466028202807115642085948207060538149280652113006882469033863050361052565059631851431657574401150470920275424784810528280054658731324422262785449113810210162792196322634040341501717837579759509087533689744559798662194171283460401998131208091442983548041796368833880210027194211658707375284864463858101500704903730323481327523196259901877526024003301206182856439377260015502873683302656059050950998976875891240821563718074893513136358675652483695907316876939250938534569590692719992847899201707467822255381054443434515604112022276201957787880186107059910150169741303885225940910645518802156987114682306387889955476399065844289999494287197238472697562159527024871807684972067343680344047761959312193385333877614232014069122206985789161197512718075578563296696151637391173228885829312324335515455256679505908229590210641021903530498754209911051229539950706130409236065223284712609623322220445805554611813280254148501119955398962313188593106694487277679495311610974917520109317372317381539347211155933670825705773332851563919515965315324541816005203803231036278459692891145057307197902893283715113507353908993054730786694241952157238817638345313270450143326621712237146754441198759971887923726767401345103768287517535974321647512559679748608356698027328601852245022108703589014834292052536449629682859294860544322497228081952727572941673691592063868011490221650940536254267297680017482693038295009935357042204469717266032610846542985149613387573907488607534729320224974472260097649039356846442698109297793750184697544331564594300038275656754593369314079126113598507586107040239069706211200081478273863897617147182437331691520502495094991482376455225959014458554000594045694370631670553925083913886678389740587253741126261778435231490521401265337092312370972018677661678418232758332059134190495250170110397868940161550829828451813928773123722089134451454433677152035262881265844102145561490641999196574801258637680200044009462137045090567093117999666134719076892402438740903913514497408188562323597799369889971508579932155298130783074074361913521723891044582202397849177124172877291448191994157133766777854653544672770396880357212144444686159050733459924039737375001176081671597664589759502878498783665717760962115469910133888885817657263833209746804132803080925165721857762330686755110110681149833349117274590691132824014986514260910645813246735309978968150344537386121026924673785154679725958468400675471439034662489092614107085923455184061986471275954831046392057228850220224220798533665083930393725901253860982361528071684516590540001681289121469717532125029389016419958842163340263569310123692483841545156600647892802254905346525348723935836119589824028894773942236881051660888949673172446899542413629635894095727747106737522908157566481044162837164960581049328453681510350340110538093408014528960119937803629750050075979205139199033154111747309728537434618572426988788073074701831130009607878765362287946078186141489079816922814059859339220456543948603088365160629830535857262619394944974388118173393685821987055323739553458136293455080988813583437963136512943155915006660997979792503771390066970220938677726121781486394598975299325749808511026192887677204340685759124083785551352117282855727787970337895941770618379109553752405533012449255352041693319333866404084981067449779557402513941678478718384614082047612507361908826095604277682724968396831019843791859534935726431394640704155138181510733716380299750365687642132619692919878347625477243265231729724990822736421907918597718419613885879729638090964194395428151141804732216720409903259986385605737858505154186960520582981988785696259314982583604008212185816306747997621124683185455066825553532901766114087278622547947802195948362794484443671149761148500613728920198681231776441462375003507954826674048170258088054591702481491288464603029288347505556591293151641376766206812415925648612589748858466956301916701954530987013138254257265764647816693263923723806653556119986849285185972740260638748234511136107030403327126161621840580182383213551948143801072652811137720329406400067548398403247038161518261276858184950371596718516520891198465590057534802047793563054805533902670886185340910755373179956904730294451834457977598314370390346870263466779362051044242552099060708077814246396174517205458632316079926668633666483077322886909501615742562385801887648383780677314526925232041855034589145779696615847356023549993287181017175912052646981603618798873787874999957815374263373402667190625335769150978018322712749179997769892496229303709622379850012591609949510487405268455099414257768675646640059784612998207939269503236862123238737038593955841699289794605796006356209882684560683644766819506621677403648275109520536188624454934199052241438696165470476749742951357878263938634218634111884083934667223482395107059293387345441911050362942856136722008363042395045322598916723045524028959021663065391504072826556593167335316345362069510083990183315084055453498928930355246234068669362047324332573593086861587660513176356999819423822199226962621505039431752720368282285182509034863965409981892755277360833606525099551913592700905023495412535663684324035203772520631470967400867431942125930212757440779590812662099432859416599914864570064510942759424046427039103170321305222091812792012166680666518286476809832010618713413664062211488369742690584379544135282775397860656104563070915755205977390721267349845445366067659616971087222296569546474284492726266247498717405889834133409692128573512879690340535964410024686787550751482707010059279047887769190012116292943206525592237683215847479990802447305260723910282229571253944173806675643486305166279080253587734370248731422838879944520562718179929025533581767821232873016232622196627919505050196772566250913018256244276401353873186196251154810965156397710553798142812250188227486477394497973224329658579939781525430651475540159441110122613093805772531517661077129510736795854117550706230284225757308494559235729471034166718462170821426918019774691809591130185220984149266395360207190419468601001125766655203474638867962581128558944237557483565016594211281168533070506565096253902661276419625682638996177959323600090355629921365284504972887072122685244571077055412730508489247962630908064118009692947095755624129272256907554137024992890303188829709369622100862897025983648644713719632104158735520596067116437253663125515159367542940562730663106179644306394410108509677000862664871196616747073396745864480717871235045326604019442116060341229888917635341943563214964119419377695438225420035085702891592526687009052862086487957964442000882714094727854016549722121713149260361998015663619560687482767985807848801215509950391846284502721758573020454198366556708080333715770583354947235809755337832973490207843270038653862376077114411350026620143845352080154734400359722573065265499797319902750058974608095762505745306284478405397514917199301026143363884249064086452161868741585976983996059132928518161881805576635246492732624922016232807058802444340677598273493829372717059873294967111269304783426555829204345575537209537107982790812850036177390328175771034581860321692737310043021950858982069104057973558915957897010217996209698731115399528045299567942579974816947997526876709923948460272799795392781290581526313545135174623472422544967744779596712320621712650093139894360516714527885623262015012460370466543983434057436926379230365907843439155084862046746101226291300185672692587263599360848535051407173311979244057745897037614336535138777193518495325177558944674477607702741003932712638989032422927856971287828914864365605389186525184354467075642600280827003773516984258937482463134400119799858276998866795864674336699485992230461373633266668632586200377502826914755308666937465940835857319456298154776035508050999586478922966651133287172830272368273936543742791435309685306609902128727025043922780189966310622173153456528642866306718670721299835456984290304151295143537029646256337258549866309964730398822614668453885226065999800018031911667994773866257018747464390147002196094609350204892771496163091093557590834568820444679856653127877521894323093638887213084484532822798844402697944086078040282928753833636049575304302506914818728484838101677262471378385305229363515434843842320398752408547455504605411463859233494075876489521282612541286519540975809898567595051070970541979889896201690102194607320891757978994034355954984946828230762283231337159945573962651545707599926551696504255780814849432870832167312099894891426743356746100536683679503272160590924501209161363222927956256535714068035041368668129159791278660235796133439098227145849051242267098949604734723154417172485272228645264150761838246901577884130310631392276498233650655752918024879698942486007460028419126237879532690706964848599886350815922308416517413011516937470878188011493043231882897725128442323794978168568809100492359571687737525625035870893172191922315839505282304507458885596015494536168628078106927865947874530372836936831449668457422783661623793221699376134033652518261464667808943354556271239452760017398410652176746817218699877723434729476142910781290558375097835395089806570388260218646097558630533854794400579687314932478339230266783551837816287933498254870691253069077711042308846770239833360341559280864952587090961123708502988409669559168818002398226531618245112277808896922491148283204775433794657481681307825253165581415320741039952917918884980290504668401486421714694590916193095755170417384658134494693376518143517807437061812239646101442596911272831951625035529487187541215382203345778487310576667444587817404571140581787369873987028116451827520390888436288797414030144228458201969207615718799387803536307316400610922013717601338146096010632903508849794152018369372085505415358623648111978746773625027908481369625566475841774067057811069479790642211102698562762761676162344314376810051364951235766281004179986108692457475538554623218647998653860700520835442817837025408354090675536932883098268327106000874214656125513555655005074761725553126140637025187446149025609787124457319573344760916887505785048009330468660635880128292647363514195386116293706145531521742966967274813270201829714287256084138959264441133698225564898401332583161635393136795196414955161326904170743129621639084289053844053704230252439862389133048678786591290958864638311928416515037122033654480794936131917677739390980592119431853026168468778379990977668191346497015550689935782774175946666740430622211941611250839030398609335363328088458002962439291212041344027360945450171039348120266434236364008818100588275186176474783815212120901798166511125473858379899510025941375797641963474974684861423588144402831420254078348021084060143517949537111017470070254691361186580642917349505709678389036470396348174729014809268076342792276128471424671674021634006484437734462607793719936640188673254668082532193365127285932672810308558473449199659573958024039653907281068582015690197328325756146375569027139926630423308998646117818562817168604406190001110526549558602618019121021309135391343882884183416460142628088115588188866115612738529510444783765366259463628161413484632863886094850183042449872580429408554834027674558867452351559035504109805207348026029048566664684337773519931264585156052873786268083706680370982529251680226179742765045222889118939611640437714199848715641439980445176985903069780674439848343922901388786492734695292463615645466110999722495476197065858805255416874555769567791820272577166593927102843959828129235616512873006754317990265446465462310644473394865964667344120936836132121084221719103415453788973552877833807172042597214137911792871112662579592722795533309149800456435326800022398087902308501057030823375512236141371760611607158200725206804084040726161595612774906690104706565575997711541051091395942973946887672018516739454755539338336209451741047096073447048155991220869706257802454497547016236055586654187590540961565020604996518245423360844155016558493215888625446555884416599807485101634220393779737263099582725413178999979327585592659264098059423778275647076773187788349653978792658296026167118161099341289347634026373649364199926499818715744636459821642315511043950588586391044906169683381841432755613280343303572877592531051652059711636302949110205164596597730655347583976704742083934166974736716377235999982732478928551274737561116795572087598514107145997289161473200344620928244241565009001951538061160405593333740046570225318359010130501177745392209904997322570559005545349385945413480231459491692012907420094824763351097203090956563422354416937302842322911349198876469887388340015843659964431300187970219740644434989759550929343676538954349192212145248643474425158078247873829595278508806465932573079697835132919504099394570772568108413536066772502450464471355402326216852082706234481633913858819016807267203030302208711097946746277793713932580285376624136455403729510580701562903182707676906460315112929568786289630745588972600786207757548700537121626420413302261760363687507183693190310376984093975634762126559480333696264198717702277761870510207245979699177765938985115382260958500206449939802687488779586560774406380923264124861920544746391127269283048542434627992800639622514084748214633756296379290884193950237488703125287324573771671106041829918424512046816654788405960088470348806110189605414054775361042251788521469304617435575969551581747818664175486150996574807591740053057470565166914281003388374963250924663598087570166246149863173709445357259565653635518898814056342296260111365241122762771203181460346312029358286122889276322594111795511753709866332306562226779453977357920404374793863604610541880325932623175732587357925153920587810722633847589072796939066519747744118331650502169539725482932828120546108419557174772786651695683464204604025048121147582679163979927647366449887871208651476855571235640522649900633672274005503938066012197746966641379027441310607256868835762687718337791146178546649995086110053792419346947976186888239145771300581716482647101226100173012854564621688159981013644864273061843774454553379975996046413367903047760240113465773699470245175753705449443501904571912650033680609651208181558441861853396213754020334583217511204374214814756549220260508620913057991933011569488821720575352128470188933707556626111146195945540424381408758845217209056030233986230619003472911215902295800088376717309832531980413004865137895733799358485937778374199398669592153435292780364324809218228962639045036616145847209076011763421511166910068946500575149155340953319258836413427502523914921972426370832815509707616435052786287982083054312246009904598250546153785933387339738786873424213739434052860980687037662549846097906589582016771700517706833699585302990507413083112310070377993735022182210042064981519551195804174865139618675341933264450414782524863572170203050072831259074130601523286100261446903427386062133829418317457117998215891608809553289332844978116791825040218118648756259131326703678287603261337732233470930619730158835970081062378390541079205667382739039897866048574412091448882575826984180243894604475371578170247360184348077577322443271734725273407582201455186783344912191567658922105642613354852199467357162563092474280824903509390717989887473381325572864104698034864126960639618665430995834104352194316982381830342572102552631062968252517180718410563121942834045214662840198310207168465880496351676490669443349188908124812895345681973239738516813110449535533347925019168018397066701652842109717418777575601833970953320893763654675032484230023786757142107267156640584836804796403626242687683772951623774127338920131478799052338796832632386671826700695429518229775784451521583493866932029451466635044758805510276432413015337979697661422978347700633268104776002725328910470392830247354593517089939705580356057088373629969231800161087800498626144172500339316638025884467434051902313193993218630927434973321272116050710018238734756814553410192729974590460961384477790119198181336277492245075714367138747147169928765386087706925788752568915902999898292576686783712606607932898863724037488813132483853020697415414411000834764842885868756766720519515538822848443138985413487614700807522821457885828470458024568677593435666705532862810960489483027247237835669100601891528053862815080006655298758262960543273387160846003503653994796950407862723513043733187482881991960262162592756217760034509000129676417575466478098020646781551268097052037979980075205744448570172938093343116621930876464421016290781771457175015339219308338196992665278260801533526169094842328699779662989438058954627572018499339184313520063862030888142625818443533311796837456169661852331202329724762753123768120502442171272369000881864626485819204611815166382148095917004605765645545420980455369598715305270710061222041250074090264239363750768367184450639173069265134983679177195507996739200001787082487030875237453944681793273528226454538821329284009039587798575955051707049908837040788180009623585814814635714781005704921056055213634571147456610922239814701112412299582965012311890836976511008010165965507188506149895700513915298561781564027257119617272826930892325861614495317463178097502005868998052789090739337625843435160083549535657714974932740256193875431042331942148008503181526593326057770702115388333321061322737285371478596612411709517413761075041431486721895242309783663822811826055347397470096840814111716319322119319577763396674299564562121123026235208160031707978229148600444279817759972902848523477091791437120315824094022105896079804990397016581784555154764572074507416477175453591448056562636696147010519468690891920736061376673707906668257120773674929145590197427744154399007209683851279274995052311100815504390672615255712123334616739630515908018466069319651566319481059153866556366733981183982973782819235945056023534986327609232366178420962972591944307498135630868339449808873699677976993150049341810990166427820336126570062040995860030499952113147400626058518211204936095610005255913982077310409976815343542114584284593037701695943465232573566002746201263014408920904800502594898544098985989809422082366722961081775766638705312632250602357727251999003913651569432676692973897207123442930463920719180854478858455173133442282997104218392241290357931671500829407733977705637933000390590784396988217841006404069016683539490885837514910159803617204261473606788863568194400395753011554284330561876422035211573870912879027712446027167974975515064798993185546964004743913533515876740558721453789882655357693260671752534999820234107962836978541302007842665477308859159162056546569511893635130077389800364587548562543921161110239737435367530138660655964424315672427134111312808262818116826994758944470398295951863085820521994282402434285488883154493598998902161134934663297552596440380247532310207677608556375161461688302961016795354501358099709259451025844366137464939348176194098397492163245243872323560001061758957245604986435680858011023726672328866189795904598746243482876160582717103938881048650965477538083087728404774176506394428497475409332213848883705758954986669086467648274292537357141420218831285083021024793166286442566074963866241073541692240619369966032384374021841946813440764396495913156375234441566099184401845508963509469679169103523391557428120297499363359463583744189675758384756968726212615509243944291619746801037967914339990019255570099767235405760855407715001353824443329118199591359783374731158040808027966965598560146549485857478497369705531902389629296285905456643880830764011207846907662739194462858905664288617147605930073525490568173912285278244353315643978206213366190923754754162687434658789283887299141279438027262452645703614423034046990653309799020033962586473544515718971257612105843670242380371637310270327468275589317122102338700527238388816190745797751893270991076935904352980277304809040457005358821947547257153931309244194594002355324156671406480466687949331759864798410036416430345535211619706960517488500908263911384276700800709854806997175385053388617800338622428395050637029226389516562050220319110438126557052678800916761080978890358016533571726291496456376669852541247839775523910203138327481036107203704447341568139541728940859077331312395758289730184140542915415037445551788915945194824496613816162876334218359939438709982742741774347811422239087791614460157242021553325158879483003511739115406481898124443456994558998820392815316198718650679845604285124265251630636288198302949992515243955302920977669263686621140546772187427372413941575611703281506191162101324802944913639595040159169193161086061102143394583791322932525618380872539778569982955730061896235097983807829090563378978769264268780638564894537634276820854478749092389885604407231945791782280915637658474175409706692219928970011210467869961392350778841871579393601195904620606904231072999196695438425169927343396282356485469781242914419422037935591695034459422454912978782145232579492844185575714073103723042721083080660221009549291741439866523908215764171411142284459777260383178031994429076554676364792176412365574798899998373876001637696331506430097733923609709657242436233261849497061491216703105619305322699431995613274996702092652055608289482421881701373664693617270926239681414494863378495038964103821573691658363906986877388102589955348275503030267263014701277316716583127936681337811704368949384604871315013153923657923166114900678637992822010272197256922420754971371502291208708237233823616495457357241764021806514803304403127765321083109965020210627427780943057078602430171559895167236125812535597516418600361064707264791105101963655523415041737471680727132255818011179028348211028673692146081372487573108545856098279271684082630949774114768017395125870518674987020022733043241914883363779386249227651039423226910307379064301611778331227816313107377121543453430055847211745675363828224479228203507879205155908748517343232284163270798303428093186121735183662705957770665576913966217990460464030776104922702779013118732210836097579151840568965576519534573004845375811593907407488850902278904357933770736735512317675729922237928455558377363567458689743833862119982750010417535391848503095147617116368374286104871329394958403470383300591371458522418277535670010476536261033519006062445515876265878745074563562860975040405648268872321422692117351060145175693523013435190779117545696462799009160177806886511364092943805085006995663960630996705750534741972623905073197607641947580102857043652041249688429607211856298004849211070151571199480217939216949769039024580646670539770103881792755470886739198880124103742259006480940223645924892125136245720904678529604911902919973423239746321077872974211183554919637681066695617874607975389793243230375409783582547566354982448248693531523688394637431621529009944961437193205149285703652156577858089705862906786225935191152736985199624337354181398281238665421041705435733721603266589103212530612916773916562033141247945406825066838838391246178945954496011806931074690997085980279477732725292378711125108477855506049379158880062247681163412060076659440864269203382123679002522652297139827751543524446672476060208458573231975414918517671372877039475845273277696941720185531838257574579426745850108998847801982153983617951225412754570164636924167664850778340953829801746690123422407181776985427590625117441130075187533699821427162306234188139534093478789550491969749819609571130795486762800515081873338512833657432359632251647340139569784547512101694820260256572895662425939129730378512032014767180398707682890773955072586640454194054799170606818381312248197230486161424684361388077616214765317805645962312662707021434835006333696648545664341745472747750847632712599896740320258441496065304515342653044678757791601710604723810908258718862264909726276411675868343836999572382503825328928529735379419474180625958401143243265963523640053138833829687189099739928993129502077745687881279066993307544916006980173166154121871024546797796702940315538605291690078851386351624057579189929341137737795831585921388083130805378360170521464835118166994764713086995156061558150294883680458673702449548891989898478896433198985613386238702614375851052648846926061850850607678338568037516291343328107445770826965085929122369246603764477229706190804090550872169161795847677084174745689534910107831335278660200189286921727899564005974979997868706462640848642483396275281803826680377575220144299986179341298616951988001751037114386608645802742173604937139544477734699443910308043782909457421774037293891990639108175123275824369203080616576321026160793676127070211609622994447577591865005176057998534696546982915618942034842668377434912697360362403766731699325429405786086062770895179816444379968547638797139605529224881691663514624670942313074087808414511528686257172550235442461241696377961881792830823401285322765469027199075316132081947209874315720377779116014363486731357023263574960917558280422115999082657938723370275607282401892916430516633122956450619105342734136100184461910316321304384597793895170095850572560610130910099881140495749529207154119716543177429948796270556731616814486744224235392985591886531574486810312825660136030010914300776851883315640602717373432057191690712701878868361079789468471076252898702711186575290756643707909099226511546651749246541366708977188883606629671565596387903063512187407593425001780479400773105992919514728615241495086455783574970166797192906465118217403396411710589631646620667476793919956875973828999975254851487038893073983510228002079361567054972032033384543315832559590665427972322255058768011833913251490091529322991786284618619202892793243752655265476133598986535608515528595835962631214942080120515536006862503513598507909023716912952530956328349623486575150001766500103664823538603475838338297024672270506306156135111523389717471561296695674412908575419247420440067945377927458977097086161892402878914469908342760675714131046444825839262522613168732030697255738946133395962566012945248295413727038570506855347497302026678375562691180221763929468798599183029802240435019670237199869837126182068455932735793512664151183571856962172108458635793980739440035406242801249891230557218059741048815065967035473894082842752155968857455903896606167466002684029653505021516972112391586710007325586278456906437657757092131964704382114128964136299949530455440113396687481829775657026668264373944722772368266862515659269343333101986969510013049521860630311996110242950830586645542198320464645088970642194963836525956867461313143036146519720085970591899630472827027595477489940743986572211259241476242990675854916114580532941195068501763981804877520878669828813341134040844074770368217329002546858488855337861040111946949691257980575037175850856650379601183317695764858529515482432138697799007426199198885684205239193392420344558074804658374183923082513440762377689342938550931274828590728809954532205297184360454006641059351963084383919901835420141242380406993363449130751187535234686647894768565307942403558987426478598066166411979695327334738230070619884325447603140075628761757181960470550816500586289712730312220717165767798552024188142094747227766288172884624655829138341318399285299374308754317937641267681759981404801917026147382121304993995784870546689374558608228404917746116495458960842743753982468987965260567568417678908500126494737580064224957241854347745036833440812126747182982483132935299623484978780387425954661819847011781391509125017015771381149517111724645366256624779290318853862324560602569064118526568114901908430865495187729636721649219286354338007982689375708181696307457278968934708912873712634012994136213170637711669300855509454833393910449547319385105849744279257415569547986150226426971178473109517227960462086154128163729405046384071217333240195240723529214899443340716681260568523110909742239961889363651879043381330481747600104508325198766337836376423357564153156772607207823874253184884698400803873251493560688939985594106832107905086031643029587664204662930124413123793508314191158101419660223015624475783783989253006343010402892112959225653449589584265981469919635688860521141550841536997581508027671969148462700315461574516952158321731709052917977842065861422424297532999408952176032182123965126973643831712915450884716882390372321798128389921315108567268533284488904791717605450340815098082137763653551012081859170888316398684432843061095802493102628087954109919502221787656567476612297794245903339918227649414330063679073280478271291687587966045041242239001395150831580997517581923599803403307243598997214224180515424387306248095298951111598412336442662777826663766457297849830753902624173602966349736196712435158029870615419043735277633579021060562608062381400246556890045338911805500863539332221310521173099478995679819242216935222384561976750012072599389195367342105285533407842398250548294397748711019896160175277189730690391981189890642527736524613633501689124376241345971589797861081288069418155089524025512561820735414875307261611637242755383990342253369035523588102117162959090142672706890471787244593417535313123699856044878385508109202001163359054234054409941747098613443169193642763174102626049616982701588681836685689360051611131796089296663650451120376807764290541665980890798005198312157244552951156098235031890010713105122101050622313697955902078903342507118956529743311916021922455425879501616732955959484074288086799741423386665375034834999495742628384302921306383689655923448813168396043080173972011928201625423085193026567906301605393808735358874719029756955960061641618984116811019785047417125581626889972018645763477123772130755828990557325655390599614421934206155154821731826712392718638694430355135638748573654513752846598707521595083493716785888236682365612095212023216140009002918462315218988098213229846548690990202356104577296718850847946142654512119107611613631684319360816739647828349921554460233502324563679428019426868419933077785107669258082324287694616826688237800583033109035249780250505079034039854376484163295141637815380719959312718158549145933735876085495279272119729115239507467985396664372940253932934866916010208386190885498126670543853888618220733162827856669032248430825589117005981785736667496520163860834858756332980362961774223834964061301380522669164573327078973462632932001443717033063629048572450076563201589562907061396874776507816631128392856951563812341838592285568495830710420438033830052818800992653420970712825320139585569063815493438795099367916178164846343066079526743284908650304099551722967308983878772206313601142056146707034598172148951349079926573481515778632401836834193484783201671128273734091082140625378551606804087765891140477610377048249040925848732428602814335997056227659797574205674672704068116599335310623748980429524519538124899246003963935190768010166264082737619142186723949852082680728277298163362674126243237916711661703398964115572597413501983303525473455846630303039527049699935126480464340312497483360697276813512130229197555181495992086861850223000058344632937272778711603563682208059760666440903740515234599636725352633210460554925691514180290533106264557585813961046734538144258849370917966126862737393335247422660311423393677616095764097353121094602143799599506087335106317781451921582779938435092864273393790741805935520564301055798629166860207385847486120175498766894893587509641094579513658851582881475234261367712418394532718592367706531549180735683084821178044330369393906073352741726772139696767978406208530517965307571264093763389698605269750368562352488009691309742298480351088344602282724170674953019921400176393901286455661613725781491255883424461153557969295438530254538602487241199297673992116965007031314127673223291319586773312250039908940441163269123850420969060975584482881336982248057235209060356194063731583477414589079405612120558361317528096201841821896783283436396461054967569083980848872402724745989164791654097190426977578309128969703067482977702739404715579312376298793282865974835798115587239176531366341136161245255465937823605912701046265579736926980253351832989691638976356266079579448992269067943423720117985968003660269767300064813082322858655566426636323598020649597405208984568942768301280212303314119439884854799670418114965202135680296273236285936527708509818771505068750286966654064068727680348628667086139569912872241702148461463859722946571444870770436308853217009364493256646167385306891762848200974638839985501309315599639249283304210998039190952857071308821680418777455864160149897687872660160968732507829764740362417574545635297627689377729673302009919320870322407332868361417978360056222782354243848278412978925402246661762870463939192695788546654143235267274176783143336270067278744829883343719554384418425020111873686680916749401663297019831430932166321382787070196353163093595737936836744247066170092112461418568277928458473106986429413189282879412117056810582520362141316245189693004730574853810977126364165636609990717042781300586380708287941335374903248311947359474750197827774444707944777432083433405944327900288354471957141027819215854639710544750123801372493312385403114009759937578651503095318864808601421900681081215983492526184535737391307175532778961149565623607233450462396828373400182929093550505250376965505967265165881012503416958411804791681912255027911659671528547600500692108617656373606389537584110950052828281594301212300371252908139747314159753749689686411967788326501971936981376566185693813784061882548501130880221423924002441088300531788784473538409748340625340536749696383753376354466519694728718157248361019186800090060138739510362845398075557408114836020676535148986485880789601295766509467746692667823023600617602701453557715019358462762678153091480882160231940294416075337898043176098529337315186190898124768989379239134403640942967084054368379309376705077062423628581459321029190662268997259999966867387404809095416245309843224636462099686836572870809064667884052246322546541603236363710859635545851278862378843257282842824241324783464916712397801128955406159381658400999619994077063959118119331866023188313169776679703650515290075404659678058242409949448011316276673624047910812932764001867887540600443342333941959374218613343976402155008729498439471023395363890941702946586798259872126304027987789871124573479605622653556181326894823620812008234470239248180221249376867065520739032368076748397809137859250208717278755677336686601434189074273879476199278953949332097103817554793239941512417296934121454019251956096405809514286423683246741541592512042303752244729603433913441639301703729898890418403178482459039988415736407084142076810220480487095905486818281323634451167063236407502272850011080958471890343877777073104401797952823712491908165847013492548969888282665761499444609916561098777742900358974237248832591914637333658328012540857944166824879135332552018752342421550467006588888731566866368249580402509786318042659067140024055562360955992548314140302521800499343945562762942218317705873252351849731653450061825147512151903360182166980225201612538303431862463403466021915473062183664826628979268455451070173514033102180185147389280361452802105067191391490116921347748689196416622709745042589815313607860088723680872449701169131212766276223139248700964914999719888003127103744536343321549308352681038930914960793078077404434806568243692546501733270200117242606223559200283811579244853066168941895519792005817557574324803106986366163926124205370738866483282252585019248049272118700585741568086774852467040919612501093436809259620744387895523321776671255430675805770805727158984339062927864658017118396166792765001914015431208031402839798853766208407900334193758128767533450187469194809768504147926132811886992854800446779805068165610797881595981130406520445049562143768498265548942558138102154380308290460000873477103583930713171478016874538065518410370456340946832191856108679380645691407162936495754957244846332815457066305773851600170497072638138913844198920149238806001560080206033271503784007309121861003690268243996043011440782935452269285993750779116500013900511234247832782617345926912462002675410416178463925465691580957998339963731922922810467258864936051966306625313245610338854606515725282907525271391342947768216013069710989916581099172023750379470963575170592329744829101289852467486691634203297541055511479744673516319565257992218546535012113555661945329074496050950062580992894786846186859319980982118591416749638440623538827462032417533392830637476320738421336738150549942409969703428909512533007780461015403562183845194061727333985232836087211113677217156305917187247601095393516268897282069226058337904861354612002700888215160977473287168681022225136177619663194485781713233236190982578612271468280739653908037575730177678610974543306407271369508345352417690174935314936056349530367690724811579902190582762662966817053837105299166528287700633180941529953849127850523972611273754575893703186920992774707199589899420546103548963289233327158586074495008276618944471675996146844120202078529055831712427290183624554076159662493377856510525195620766182330418596423271515574396167688109431593640911700559145068124619630467668704338504294164750629711746391482541096426077993528748480915044448866675863844314795333112372845283542640260422067853760524641741380609439281514559738967284243811692634360742938522567636415199123265580252224179159135931532688964674992320693722205149141069817802004485351410521672730226185905872607399720149562260783030911304186039375062720351214298817656765778570651969678255670243366685756604844735714332294890450314632315611028710489201533487570886454432791831034512909265696569711927867385031836044901451534403746830251730612022057539908896033412687815674440786536149145473634495887239569250268506981622039584199960111679394722154320807186549549043744090015436987172261812194956916799913421609177061708806438382589969672710273071661636135742466729443502303350940701937134512938132627924865109425174862660079166316383559292287211751532065983379268863209389584441618584849301510533371940842719174146738860477881412730098014649097967254346484234792749546709469918642403290516084212046432496082935062951841935068741058402994292987537533075297755261666160752687041791812964520561670393326376309430265704597024079413470294036033539750917757758441417466533392004448388162836621440287522503982545059554111703732080102144660228562075239449270718008980881271170311631922747198078109082200335755025873139334266514204229098523399678564277685921188266096617274990308833234542688537650654069105745319098138511340151166167882442332687258009342455127743075857574487999894746802086538828204631065041804880801295426666941224400415199976113316658223314115040665581686918440425951746316626166750777083140642890041053143528256644588634236361155212532688191236938574626526742633250352330519777672564215015830088761922231765918406267101400297286207747312952863669959448576840260333903596964528950986494999429412994293453269548126442636419900692535141116074963925104060352060636121774325251899147669787133145520285187767426032962672130970313082322373685706867162315050889760736221061279946733076910303552374673535022873311485038519572174646765406878247595982755149679702734074591791613014679335403906402899525266796531153728153187691376827858422117762387146701879738833941442634908918173080474284436393017183369089747943257011174291119076967651375012994860952416571108511795545610931888237528471261632912575643411951295161147970361421466106067666420675748750322821177367935464049914507788070705744790264672911722788189906766595562698035927154624680766673797454134617814460608527295801355625907691554025429862276690369942181295349522973761536208831263373971645955254706909609716023416499664544417687859387722211247363265792167132363292477675399187157425490498343524401899059728608811365613766963859375052566612791368886362503577549272070621363107880621567087817885675922458238187003657580646085438645086696186415350562466049951016442443674626525357713670113937187506335168023257888875522922503745398555092010083729822168581279401733733631878977262999532625151730568710944266395850414324548138356854689981634559236499884954776001605594733363892535229381539562146360797611051604252579650561415556532178107816769763568005860037477362483929421173198382024649353223684989594230973997241516103962726804393761124272719840516249245313133979748303789762239868362277693233158931647599586792310769391482388389908390986508267216444700571687629575134047535543630678742174275672788078358349475294170996381464026908205774172953125454982074231872382464089572807845212227469263125980164964948532744336650015729917657091673721202128781083959145114014458149765260753343356471630192334839713590494633216910960019840312135844629376978959519815906310053067212650700959613211677397296744890770936898801756291743054206463079873855047046834427420037706881175381513289154264663921170453797906873008962785648620992205881069516372436771086542293368112080749274017322133586752837972029634449862708072383871367688929089457707357544424178610756834448805352946904621493614437819759326153975723140209820130360684811445084096321425460376758303552148388648172283094639301696777726793126522356340382840598509282877941690901807775062340061699757600736468255007953466025542993954014580276306497756746858662871131366335902433456788887155752911929180361319304756705954126749571710494610732323355526949614028709965943492241833872152354242191583721132644335135602371749132170704088650031515302351735390823378542241737665887192673852841269883131326431075235464550725369122453129402029145135255926324600624234808657915787901686486154342302241475540509034997174543792488055889987960594359200565324033761610909925637801741626935408480790418568735790728140899125379900772328228460002038934950230738696623276260363756769148957126856987042299075705885490304199664518201137017126343223703790276199484216468947705796767737544477186162563006281687765446727192442757155680914327786331818341524921927046000685561673847678722669965267882138238664450075418459761428322621793726735700868576527331738154298888208956341481549855978817162819527505828726538142573668423393380953870066202231459174830332278301574458025311390441060956091526774117145152629989665303566654803676688111344592594590345707720255678883601123194104970697314055998421895996747828006190111140056739453921684023719308458369460157728989978460982328872467381791050977302164989902153876189465426959069640250689051500181978676743887550194923991997320094010245420332691902557722980858177754384847366189288805950627956136494451775059435647759510710757905197357966581137054772870002109027862061813911342380488252002902925826965342858797154442221772199237210883801621836186418861286419881017290579599183560695993969742548193850717170573930839106617023460613590056322798134463527120838063761691192372946037111624821999344895115979322762608196510358608884581620060265650938958240906429409226797518967397240789207185972982847474925564165291018122053259363028696201621999649040710277673666081792265523616066579835679444206885180507501713410180819805864519876570367491215892169096039149255211431161946350800222798919635405541543118895812473934071114584290442653210536376096522498409576225439838442506584071157072484997459654505724609974774660205266010286776661419655417413825872839200904402946932411901476341168867741874152658982478335535599059164489311910056183736118940355849671757623271927343788335416577766600706864699620930284030015467412932559516658546543473142661182823351475505962588474646104354247252132749971107766842050528451092932854303792318422541963830027319859940970329448778991163543258619843516999060592060394064768627385400624245227120707940528602931829144258525685285587622291024333114104689498670703102673840761431868202643529845668662451732477404897542539069185985585101722255857386320210047882872274157558149059395216587250059232986230003488104875670621127368130577233611534135356683373670269499026173684348972321310823590108029862725055621496625010275178568097119118909337723058422931859006459302531172527887123534838847243489006411342153939131620646085148052894073405796359439481566086969820763789177180364755111925548862093742651589035379433990937635450028695572408147871589173466972551974455397053601794741424619827625086433174755426833490203470569732980077305871599421247154639937328098742319828541494244796967664684208281987778643177952582860192311023494109426449901009367625367495447443710875635703001081964023377764636158322725343672199917362617899169481026412873582894526008005030828873590279851890613014308706445553346512203477683915203032005755231368534697456093440894058995038685503450413273304165762752266037895833986032359181197151441595806073198205981899318196792119522205607878196162248473901463423800910760471703676499127050819201625993870453519297352679981676589020976358084448472394253382189596813647262971898341903679924823424602694854772333360960139010971516208848457048610246938275508353921901471614556100214362920085066979569753342879875172286379904681434932567968408753874722302116158484025836878505293833768958183843713455144496857227004475431964269163445396201205196923126693125290176703727207972076850664277614839325444350695124992696014773089348786015522410322850115732797873393433091480078299341190776634675229719455910047390378211665571854846943618260790777362320485235451466469306008298757962281041937097360740732146678329996370628666784387704902690398914615656424045918648958538493600156468982344911698094689641342128407357731426486618944378851257580272591559358906059183958490164267248637752664105504675314833822757515879449329182318904014862672083208604492929680003805041851743424980096050255860898936621742582696346704775526163304765404469365797367039484902573636045662769539115574070190768550126702994291367113880410396441840320138288271251038627910325597561780812028630958082537787806195816118273042235802417463997058098981056457064217191204411387499582526520641757974367779231290062144323790304498568232491247656858759111296382879490333375506662470242629834192629510893008991352728794212788041032969721030318201672761794111821371876232266490910113933883199845757357170535009482296890846145842651074301035426871820715763536489412331324013395838832201531672571683909918720293420501364406390110269638612136705071569188320521274746259811252172761805921874917807901270802746559034763205423732290036852681805927378415373451102009756684762778698741042446696147977734464946069988815475388358531727908076844496561697055655238327497629472308074601579319751395206920912556213936275184364359806030089293884949589448515817875197126596849516692859240159219812954492050429552218777788866982200747430649665665219872603694399894597153300588987967257076511794937009670995286539799955044621720316749423627686924415437988456182812666785079822664667651569573143643727252442634511913448649223476256559023931774828713945999598073017299166612651425926181273951527495577254198122358230716426371050357830477982587844779928772471978038828743355250987977297652607062099405497146647235739420016224031421006756031087714099533516576899407096030620759333936992620432198279702742548766971062375250762939412992472329273828780089580098662610314053130240457947337577014869760098040720804374745831598230751614812061753601957362806740478628901984987669047149292766574696559750352865090236412223900655862300563972407031178103207505426221631287478680652296331317456605602226305366153662368000508963245663488775517887741229535213759162932738992277087199110960949483799941183395506663352850453946592380057187516159239681992962700712923452295930021455424173971420892090810512823435220759656036388048974219944795621649550906591628752969096800803579488611953540967618855764971151444725529063963221030407535306468456630875138394001459545506201750437008473896772320354785350257516863525943704678314295924296795807539412426152112862413960886276372966677374619993692729072420179139600345540814555787405710771741385332517618490434944272763317915999175527568199659806777856758713643065536893493522771845731439841529255751442406646712529546626582968204369229231464370372240844964742961573419339227725987684525576868750482833618420731644457948705644493260373212916551736285824894293700314359397423327247796091604221496236974246586777623048258488029381699416808810807147566581711849127736993748057849258769244698540218183256444323285381575859793185133356700273282995685858537958317908309444527309956036665399762128102751966134537312602851925023408608429997942534631153221904998358209889125579249027173387977561207648929848275909827294297460583287065227129592080221241381412651873318603229798232701100863559508101851005327894813363952847425150510615944005183510341444740582291564326550517210126574928519015651466164575557757002004926993198475352239284276796903416755093366540780032526548095447589498658865792872096055307198166112225393988571796105070707521987430526522538557414222621074044377365223719936303597320060961731103295635841330667498149528975109750894043508354497529080096989167361282565874161667118906655577624411738166947871635328210365851925399520153123045320744423456783674543130845190237919472441891698891630698695089464107181311466687623416011060300621360853729668448103545394982041121311403339644650156367020300465667195614902075544376175515606072563704580003885995917542347229244718681442702648065972563573607429472280838113356625434295241454094665535085586202660036716609624519161686051239633194204924334907008958615501277207645677671654966585436210033852203255604918516323309874349919500461838203060144055883073828877623929142640840319662391250945184815737294703493346677952497823091601504248904775516641734405774717476736623134706937638001632500343689239056367725152434485331162344800193432806713398896521598409072178324190871825291067448051577529171835999961389014982544210601124386685278648666934578619229782716929149352418781504747802501445902874978616352081785831455831066908690969845423756952219622410519786399850757896213474433552368273079746859076113581990872289606190494250925103637408589663859675603815171537832299013342830054957696389307690482559881364905356374076989314052516514487256704909124896571656198491484274297499951569908134886124670372066930249637667582906547287676804057848718339073064019228998883785121055997862777879711475234860383483203399854803305888685203324276810961040343608623208524080043243923890498937672519313771058360287402980621674433986998417443946749388221379332005525852872563365502531318862998201850546411745263272556448929187996830725373997857816733017512236311445179271839923924076766803476210144367413568479996368348727209235500599704047246285957587231282228101188548604555857392868919721981182304908744016297743464653007999528067906909553689834940787697334419281226837341145500089954123455272032888645819053268155429956307003171056937539707240111480788219014018911795288902030844025204584465566573621590170247721936917516296985440997852025955763713530058560587063239214336414273332474150884653471857782536359584832806142831692256799635933321271982605136198600233433092691191631663583769744912835434926885095886557603053798497010214240452255420489817923888659919389440009731010852142278995818918590070557087844100895582343179556681968393391991168612302537417636758313471387395952146734034911754791279185253147715784600860262499944607020946756055297688575826226794932528922765434068205947369417534860930731000844491358455733253567234585040634668254927809882707620284601789971704110612816902976125137812394338654489560869269385022009857522337724213098099411936000469626466418495431667827717826850752821062858044458759641487039632807071114488226782477420288248409006464736717807505606777574090605267127072391285705525621874220022735489568365260698004097788431312192350989055770857079468684446118773580157829244374420164977381294675384974047318395315900487039598303557300721931761122026054056338137536075094659216427994601221997271097237365958272822013700227487717533959315107474362725389384007294543107472046595927169056000777781054602923052170226706048509010708799264916554684527949668500911578578800670455342993305274275391935700547986346140853478801303624196545716756329218581998665847190025024995161135829192200821580402231235888839872521310723143026824971071314432717782021047921260063859958547359145812450061974944831577125341149800858417749845562336493350412727036172200300174811014299526323555221076739962077288068097441199626304333408320386605504099412706849156120901288230073393719809821053132482302987234581499710304210894521087915705540285110231291909730357653615967333919580233388478033524589588175929363564495562140031304288963264117376193738146692547707347147188339898064550932735400421466643161833119956861533498977944562872957493530202993421268113437781778352811062633922149945390260891513328578474675060004045030414903452287876489207768519392956342578989367264174783457036678748530089495559567636373736186052284940415376989806856790728183877422008444373200840330363807057780493156329572921962709514129968630822025372121676432628244469023168912514687566561771938964630113208097319454548705043217345839703596619277480793801713791261041512306282410137678934146737129529694012987264810809193715110118205884837494349481075748812471753479704010664722470800942940009326056203581370530635189007918418772603137222285711314250381205571300998510351739123924321770643533109031081415567106313112064621296233045213423575868982210189337168058335675044993291552198663563894875427978459938698722416763461259470669883881793109143670911370099043135406533178569767139617276805095841576137701484837361003617453902024209972712491448444778134228568997530956300512373391786689634058972392890548932594490148144252427004215163259534348143404864409696880923206925132960718559985591201724486527647297086390015075514136077336018612510587688054591827741810101783838764179912931336812343323863932285695795450044678606063818824883856801426245745397135944644417844086391148410279000420323341978059201229139658374338640829242173195707159931117446760624710530785716640409784703086913769427720883847623704759478577363231178626607113059497584214360285349185132951175870253451197109287521120613155150737775152050335422365767005866381697153320232403839230937330344928776710652973979752573224653182699791973307124322786995480854692587757977382550186155843210917436455156686005145912988374469434519235557037345027130128351274038843388813404222724371576824005722407706667970397849947424770924621300738991108670738047755988881620166832201450638897995606632716556278694681427293129745814653069675892686013223323045881215991438332119800126136883000444744870863126342154413183291060783699654646145691937725687248195461794066389948590186411799097602650085703999832833026500642387900366589779897868836595244345379599472240360394530846562205246366894834041652398409045157730089505771573760320987340427878570775430103318839187941891982051267550261078360109028275266237571306853342389864541450155619705228599947328109817253172732874319882793624245447663597891569517066548500088291589627713349105185726120669290308566840633066619036479384843257929957291069331731489064964627651255264886979488114379666547006845446528575097070816780274777155808406098200149036231025903965578515555907635074425981426647176439040159685562791006133183560144223188829939292301296257160294919639613915385828657799815494654170032377477684471354191541764637370316918382504789840084330868219067873731839375466963449325472184034802702691402021562637701581826542771674856702686688721370028978409735466524846732421080573862918161189037555003555897738923294042700594296199352901778450917337159465969615567035303849443205885988207056368809626780530361481674217876805183133023829626559565685519604393559287391476631171740890436094696965476197496569777456211542439991597430610426167226883807762200999949564663962882985520156267989606951696256743209927614788984699126988924062849586071120286747556067094752692140485544715578648942166636762163652852391754197977891891876901282668076400730862700269467496259218227010772510085592793987696027046469772735303829403120521965315626531326192949458770805181469247062468093820962483622689785105565176490934915077154425628621173484895161317619839383715269963277658638981091533858225694728520100045179049322715489528146991183224215121176631384752990627296683637277213190607162804605878023543001133064083637372795074750749104582546728214013148230936169305677376606036324396274570508319742559311797584854368466791209517669190442202406904565183761226963219847512202292808616829460930664768203727086706858881481523750905782331761474631430877472640264290249873503880133716184089388831104286764977851249607680199041280576062946943968034044569558288449502837005555147381680903971031481976740099773054517356249670505753636952118667269631000480356712538738317813751368113154921071387870725357598551530555912888326817625501380645018857310403353402346553040935682663714561064862476059124787330289414368431591797121338814803127733130495835264291600783036678856454672700103550824497143737166581085753736644517592048432613909815056622376063533859420295838276542948134374348181866208472512801832779220168167084355470345056315367601126826452618556985844960227817893161471949683775461903797663211930389606507038988241564518216121897474294948140678423348291357620285939865788528805132034504839193917986939162677224901134923047053690148585347405384065386012199778259567343534332613078193322259401482957657096570994522897149338487856278431622698740450954852682036589459203197976454792912412929662956429424664042144261444904498450815252080730408946253274547766499450024261515527494387767848849186128188545834162073564576433839576314199059151826419045302610284468379911005932416859711447028803509174928040508563556530517263273586549650384605629338307588078078632792612947107992538783574371628785415010182836405077044584587183144719566654045443583753401792433435512199823628388918731388658655043872020565191093610320670466932048019693072875123549149911494384531964077962020465298848326564303533597198250042985812724860958490078313948859041108255038982922171037288062131281534109281707874638545512017065024518496529726339252703915829476514720128922661824637741677727408061519962791350377852867847961527304308382547906438590096268802189611243195512699243645466709344372561837461599625645476372766615352004148136463472600166015748590681932556347387182933998747704907305618943278108046214192976850542041327232176278212773076037253928223346466595362449308736650176600559679328295302977775748554615063427074863019361569486493998320476263719167737880057043916206459063503720740599113915751741040029044943493829954102745936142042505842588343766740699752780337431794467728281526297083481043526991792489720962490997274862504593477870213157626934150508358257803499271951342227975832767583635344945309799732714892886792802205911300812735025151541745492319330021313958633381194286222202147243758646160803803564827259027558757865278800879916386477816035786474572070669918802461057900064449826925542364992550128726691190964240126785773289692526004681875823753959854730908373403156910769253173469159462617043263386169570870779109576115494136051465586642674004248290591966551429233546504648187558561918642394815787970305652746140736417625709494503484501008736273107659657858343525380793964779532634891344881655991215862498380071922413671447039779565231663523723183525242049413271321285264830387940390440101608696012196323265025204710041854045890594588829941667377201606533580047806084168944169155416138248619704664138959035736552556994179866388635515389909631405614429650366811859803003914353805271402088796840170989803244405402144125011166679880625140715296941048080157207804027912158681600846402493755089636939313376302515167738539153415597123917328232187780217702638346050705068444812751700576278343746863525133327555341233037922502786398413555378597095669013245117865664594711166646540544930989950861056584266596675453252883749482222476076192774851065040882632043366781636681257134941745895777238470323354350920330393371649816257382280211891534749436525076324688441781618214278061877469513496150368107259101954434446069720274166594707472811391667734080299261231081067037240110370859265005631587703251151684012165912114802982044372396962273361334232537804629204126483916094711166105800490107758780097036282075050814631565871358947651053367799141410362675683417577905987957952364006473667448474171772297978688269344139930383059299245408378177561485362890196511643151136504419841633345157181452613857159636832986739135906960508107776817818332602503817188228247387459575638113444447519565868966106823804343761268028747111143815412787208755844863473060015773180008234185650385773666611159747631375624990575433973059900425635061053134293986172449328208459875114090378624103880957065575585992900152282646084858447449775674713914978528127395035565046327681813055919899572372859613172771395458654544232127504398008868426584903537177550983339070519354563725253053901917642735260671893767947592486404418717274748728420910318821628953743394379558206602516332861103198135007274149172873941756102865085005610238102995163891682996115925924327221318853700302193541464514516443256414755725898198559171171829704836398196533663177251766419711096879391608068121191236512218714967235290723546597642874600332196416813302181254670629099392499342103776821939612547872321944748635885367782616553234835626706476786296067806856168618002507065114809589205107841249209814752639356003908844175127003850249563754861120056977073691039065215365448425399962319938366838048621897544467807573906038767759867270275438976931190619937425411180184764709849387933691671047479557986034991662709453604485993663800508307840693533074112755853731231223854940067746273902914792832564313433656290242535280518714921602212501749966809364665664698864041406593764699036833546348310008604255633533613168164999995860453813964471913841812250129030845530529081594095552767958633576931297470928365041618675388386402433586827171506550870985462959933729771288833470710848447100978086653203182103934026481562040157732700927959569152558666755615845618935621498800847871328979799789535823349457613622987018117188632332562499296667232892926157920312478358264409462195827166139022542479098125918716630631542383684455223332999852905194877517500256674005024397729457982142464068110548272396125816022377417998056188920136643393844467792974236713450561068890981468148818298891562156050236561756166590562948894314683707820309657365775222477877991414677535604483100144864450104173591296828426312231024672986929614267139611677459118512503290512724187921037255948971216505632630300410335915617679813712669018340853618186784964779644658605926541589683609025326905555175847726965612968928878414741458318567294766773749373135489652850688374321230319843036367450043672645707359468696079551905417726235204650758923007122425825868122683482860455076451988853681518404170567914975562422697807980835365770941362570098627253953428137327627432118199647753138399782294397589677399847429169933450805516263265795650544888000957773451589211829674941107523367887128511181800161795143644598013110070906843337810299569889854232460475227077965886752741777862348576077301393180205942500747729514170248915457631283041602434677345915976353638241566473998294561059938425873373828333604631589320139563393081186038192486445012417970941800874514530647535223741001688211170298229171530065275486421217211563621729453066706544585156808110427724893872649795180336852306078734107335803623223234972136541236563965433099684576017846005267526670766016693289832851649433849457247730996601844496133531516868098780914859392741774754023094996037509239768358943305554009775415132667471090819762041882808542957776601562824862665208692873381742179228291122440895778388308676483983086855481131466758297672744831283666644280120266996114036731132455530468061585376214890418619268426254421554225022732013853933984012129858915395894277119523412996055276911373572484836147177213252376123828344859239846427822324593260385922986346033209864356536412558538762962771983357969991006238058652148468524139187174071454819595322052028153987983025274589157463972797987769842215371728281677708790359285905528604264630066015216871504447336612801795992680348552692945534492120198773826707549696525856676708936945075935640529567128960772262748169314692553575779533507847329576671569631750888853470664792628688875002877471616278478723366555263525948283056086071587165669817869115698120801512411674257764238607097160457132279829932260075024506027456600148746764769474380275630279023923703146289921453850926646053373679943125640017243879904148746454936155337144786198129746823949106907044471160744081921457511153203148029344774507872365238087169816542181356473293035182493788064655502879701601859387908806218493094208051202740637603692930684179383846451784248365972154714755480148115485436861601603066102359269247305642107231234658059196781368887953563774347215648797787306066344326169880592114573421607870564125404292304702313766421056220489696444359550187964477595618705145633690942931464036864150080627508886947225947014760479863039207655667192344381787399105080874345555153045798990610333063006210214985806265891688095790849831683833086951216642796307481014620595793110136224873774587574049180618204503184748487820338804153244032766172406762781273017752925536100832362529788611656914406760052868129850222352291888202401220961924956246034181237966621834029487197923146877546204741849335681269330478040927983348617893281643354794669524429489596822596246615155736319410005605442896009527921424331397556785347355039550874671507520198551555319299252592300481580457663191539267115421993866646686409510079474315053266758346388569921938586299930215168848326322763525652518550811386951524608682436778443103984729277562519980987064433370818794360612178753410769959576776230222397671181702387563876818410777728808402586497917675643645787976523359997474746182375355918414228579793052242857532325756895276089507245693030668714259233005510665547017862701646351329186618963805112006298498878405160518002289930076925611467354510525468175401320274960595750691243842713871363513840116569365770863010224448821908330562317228264705510196076773665135950181573735039762775881540600489211583467476192418220279556858709286808692945644739740503922412489560141515680042599665430194812880736967238016824516660100471120275312365769851103299600385610402577749859940532838475280701100330730772907638634594345427305199522254831524225578075218628526504368662198939836538813458425799952600941879999059724426289251922759803430345180771271867083247583475175753012046215630863425163482804726503142053880558420530846929469206390153727594347318060121156896635861118777281840331447984806079936765809788783004331749546431912135783248267575564896940971836888478735682317891617715123968143505144768261462527145614099592545256041775798383305215361095161092687375544828075348082955059913811999976165475297256327966016852902350722204677099081643022442542462168545450449121156127570596365035310360774109470684001401338082687583073592332941309575617008486099021680833988838102604859084319879137976704824756423384378432492771711985580598941285600180704850231520725359010359962751707007469260980790633317309409111177894379193382093572952627768534835023245524006791146502528782008325890310054264560069934895522764933781751706167441997952198303371761127134801329581223943922005901313149479394937762641217242233027739306837981460025770512846719904967977588827340239579338496277873156556725233061177812856470284458837703457660813433897735820681216597717478472109981302260228984384915008693799643865280951817455265224428571335255190708975983431059897158543499308587591115507517303427104595949852932424780941289486966657314447337042915199849542303251318696662773038363841953088572291081692897637201222461699866079497747530957544220573401178911263425034549422586951981055549347328758770440377466989972425414309055194011837310107381641103432950904812425429247446891422400440832407779967014186270448718991147763972886738346481780037804713662698968148234391310546055793712824359908550942495845093853816100432317856362986759375998807266978382278494680305498540919910143152791313906213572280875979585282989822693712297042977138718672328175306647609273831347234480016591174428235564556471891720511240962404202326368392607776883888139716899737672069266140100744254757885432834187204943373796800173355033325178606422126399780672466732082648403592611037815291077326802984469098990214017196736317799589441752983896063050443274723253748854998094147820494462822447075213609957667397272514179339183788788622952699736523360935098297100184557013210809550178017396021806041057853774462277135745631426623389334351398675109626247490813486332453155400472703455157481465714005363773064724835951900620531701081210102190339227322287442280529781361741041643167220056338198322270358734440659533470123073074116382501396195758351917475143281542955375877483831941993354899244327859694688714534304389565788695319677160012611275830480598074515876035036998251790311276635136166562549590876374536507783150363548752831183449951933617634760105181151779345016646740059099842947866180571280128792170451078046387248330419367981858042621386022716658958097790472829153451775716183459485870958502761807407670533337365209891285676542752777959642952563514056899448813830348313087720501635578016992149074284006658598148500369570528278291686001765964615292726273395774686302617647029839283934674976379181460225340883806269439343233961986526997054935601261468060374781513742008675291353152149340069114171505051856363206119594088966353025739518416513110967740476986815294675046965744725251830122562077452336786813813903936344583224437760693051394467540083060121140404324547919321755229733953336580848465765484977538563299270750149827818150909950892838617434971569684724975515137148374096035418690250233791669517047641553896411822120590215314917373743172508520206330729414035704254457943006136380451278437308860891915793159877195177455054456981231008462207533513739680691538661578667551245901089576942739339320940387698144032750734710206855461227236118058348125148378358984141842288269435676742880280752130027928169840911285581271741875248710745936614035033823759532649643374164103238569279023028787657201507072635310048307406234835022773631029010257347357022284444716030677331065940054054137360970473222137380441710552741778395509540930328685667173118667085308523041184423655684832139812130608168228279746199373518373065470923336806771327408760526287022035572674942915362962860678929905788587258797128827574140498588228784040540103619031265940866003615271028872165458891247555906797705742133942026081265123100398138526368903635955363870195800257346654691557083230453179861032379393316369427186001265215193931966770458685337118273367082875362845089131580684343864902930175772270604599278491837266744179858352804348973635504832628981380194162581032080342388997563181805556855443539540957673816089805169480263615458800509274504461050019416598977672048516700620571063621390128656353226469645021788936357498285864715859232106342863075225679392860702976495095631316602257203575112161516100532425490443041754017357229169718990898040008093832238978646872449726353760747860293847512760378890879163401175087827093401579408593759466438860792962336197611966209909680490131680848958683893156885671175155846812776174958390468475922645798497743166543808336601358126828585935264844500097016054040452047425131691994346240924544872272678991859575972004746111707722271617321482345445561109495318497309280656451332584961999517634709802821135258323812686005636118767146899073201201301948548482370611629958345133006353643807675068298065453709671574471105786336522216728285691753163637907615585754880176849544750249300555512979177949955542970241625365463447126267501041654240270592795060136485837714638374193221985039224168419560072761575611857779377135210813739071572614899569294916260223249678929186041039327807684199878868211210186864274733539822359767977264913488606032248373393366695828604971951772342769041711130555773993259469566872658917824258564345111983076923187756116109265016979040066600871005622431924968148669782662394966070673432261840866978335859515091687131885424772207810361947527172038861080931099105146585259841963155713233764118948705397778491416776651643520214025632508376208184679343723275833265773540193325998732999107118250325274422845202155571610445855233386101212176022659913295051605758400717157897736453636639357959698093398746523139544287968431875017622459938122456347248165640731408773973145447717758968305662409115072504434532259839259494046722823310706226931155507589927135579085479403402184643426042829695361827496240335594173083067753362785688775942539117368235395011108555310816298547130894283937576985791211228384632896347849210919483351943969494644848001298760790405187275267297097948391862695040858467936431896301560260700146430420353279650794069830351319382229525252271039995724672528431782393495842962456363632356535198595398191004199152561285732043880730022879095363977164855872127343757554525584263557031780078202145553810925368201926696572998145193745194567043023735525363982890215982273324546751780251002468812722587106761252130617625457399371325565130400873775428496317377212868692427280543448383251605554562417935381967290155817547442308470663295628601667393709746169473035677237243082277580919293624091669998764209859193021070383438412740212064431983414583296026634574281046032303328028614977227625833787544324169821430372405629275806789496115707123845500482401045725329632952361259239402312337909499828041813414800977881334016216965409589786537813032763226271797147715781739182073377171079616507766423134882720215230084306943484737160694972879383656344130070069823726183436236178305467148503953387940268109100448140438513203472508421755865228252518031247605503650818965447287469501911794703437339793574369510080396250508660334324291017360877574264875506743134556988517100748774222315577303273557216039868545953807923232705353325777854707522444278277646289992008458222079833009457242923206711331691441516293034193976206850988517799001390315120263665892368791458238895013796530445366607167908301016172757206697045350276803470267962288283058470878383257915785814810444115938753402058051953926592863038799596131399516434767974416625753233644062835137018548382258301127653964145735825664381864307115724221623509419797698796438215258462387203966687791944713406748364641254726242991742007183581423540876118178358637480192847294674047603790171823541582633894497788349662179090197153235698737615389379146363046918774827601280823296705919629329444225904637999833464762756692003979645323197990954430349941978286016749637784269726158023846381421907155341308039897345353135573247864941906794386396461953866709638699246342017410518423217179914192925161324476298828621156081655027659421194009652406882703348021663722151533091098713117561343165695778200921647656246309738499021766928812410356493337741729486561512916601287854281919861391854557148887557014224985794124742986886421831252606228074699492135700598068815438428943544338494003418731236417134802455974352655165909373372518731126360925100048512706201068611498016222404881553835529228710241125813171590121509597926466359543210699770934050209106739397454025785107618660088735582705494782522755305808916170016103950525281178437956750949939384895640496970545355068995880083932524307443033672217257123731479393798914474029723052012103237401465614771986739509208875318696835862753403755698075902452862727170338232803802813799226469205933617132541906452955486345860090985177936158835629899666151733903431463515505949544576673131767351586164272515166816255655657016261247925362327313127930610800792181349070171058378373586921002571181763292803661515591632664901394167265575766738522037350699177750382160656366196600567993788588912672992740535746417298500885100568084184053449939214641790353882078353582304918400309761739029632634817832591126799439668884070703137227753717150811840719082806586239514511733577692115697116495113248605249824306337279690111131416954594421530569025384058151953236725460717515226029471543427071259855828127288449324214396786904252906950627770519780512831684737397443358007688834496670290844369731968678606826625721370240440260629635827607231041847766675463144135359206656592738306477945187021601666639605096844823275397717102983480534641391815324746760256855395499176202507347181880317719324598544960837726942702551217935806771388087709502147846959216864929098078936088007754620210539950130481060939168416421302700158678720874769860279698592396989807163686550621371288790978159089987330657752647110455610729566638811726885304649923063207184842127028789355578960895768265134924285020114022190840068444089463342505146139217954710462476338519144215886265916050692285677956952194059300813821934527700855099687804646224109636363551928811471550281038117663981924612313686732131359280382007433275640479586793771405921916823300969033506717664155729786738304869520052263684278852668544328637556635337981311641591227678930843420336264558871720556132575364074257373410162028490035238322912007886140449241167926727703419965932758120046364271867019485643611421327978259213992969794399912765657797249604766475176013561282785437540253826288045190331196428649872898397906810695766183987046002017489105459597039765305406321549062856542494945721737825299536526387807611734128299524031051306632373703056696690253978656809570338185848861082863163090778181665690814310219719262601818390263181244954438641142038447817858961779335300375996661578273782727390351319207782282532908638893633686078946491342012520650274887619182802987614319853443337267841272264830571124500927380082459209761376063460538859788228768227581209178862341839733532590053361464269361674508689948305388104250874057035737467909313973826794503719549073055937409863962744046154558054393371652850126095975369375753127437427540776465990210400546553018069321783051523003626932165889269600455335045661086963568706631344516734145180041137862123416266739320777977352395212012611314006708818207993372324460400511698935636551097138782818832748925496063630110775596683090333823274060954733233790251746263896271086729378263081536392964122819517361150970930075852161089547883383582307795540063482309658202189348799013790336147668425361183087934545573975099524676356786340346159188559626229005939512330047537260383814645358132850951796538638502422834596047577806102012585267018666178867910407799935710927824650521474221180649688469021633167848870503639259732018106958444778595510232820978415681568909529638176145316449899873168781455068458916077839365022647386882060193240798598861495329865130497338608034424127601290099748303748835199774791232719253123497915929976304316376650865069983619862994110276373071470961290921127947492948477775383491510845646518636892298389465242310178860388439658228111168799447979158679608865223236116194844566647676692311616003758187883925922870091094018443902183943774319192880306324628517019847162661255289194586193955723488097559151307229586910838153032700386890586345698052578363594620252353196438528021735724636456595473500487996542542083571077712689977714669515364284091505824271900363644840602777950351494308044863123171098312039102141160760711690646154955587696435746991980654992370583322846654323135154215412156657595070430976840015336373391361133567196244503589718972051999643274033919360479332612778570162312474533055876731773187775994136510607895318856922453281491485603428756536991665354262460531304851675142124281769375175248917308691234036327096067549836066439913234931500807508657680495091944525232599688395193392228870070616902096744839212007321965344789104841490744662565045724694170905605872884815391950441551486089439413181699610928036419168566682062544697769870688141363968337238369027450244864630675146558181570373323968418491746085139269563805644755035774648026477395336478227274506074523316776412906289209293900416603999709884776004337389874025452226273465611271734627482411970129513049773953247976223095741706349275110591854648610001418844201311021503742004284068230294900842891254593059995386506265015607223213470231050528553648216565299154667672719851934777109055449371751853034302805794531344504121514474110945591703189190839630837058704672472003528507101269463026369374305965532139890647798275629763331277975114124089749782918746622296463235302724383168697598307035921357550636735468149809249754740162075283733854088717878510293401393980149912993277430461126452265972729334501183880265213647006509252561426538012913963817918642039967000888190094842914885199730993180636783806352591385358344909354638790957969141912483736844579247253757904142524938898844270995495682892219431855112800137666769242405252666175110769408776697208172165618251003159840359301594473351377125461353867842012618004099847286361880279900700555899705577341452206680045884787429931690059865532841040259666395930307068488989121130929566531092592061855925221681576733713185145473034779791676849391848243051094176888940683679363958670582094631368913618953035513603887075433677565094606468191317336162052219058468764734365799090324046914941685376302023995481433930473387438714096228340060279258122882692383484589074599709296525615345323627762103974546367430395292547189153939097464725381572439257816170701057184832280006702077080769563116596363751918308857264536701644422065719618406546806361700927008858592987516005316680791820252613817808869634216962306368502882533660042334132889323727505936503311206583667734750379118450805422858048220629881530876050931948648095854606300347041736761591170283164250108290707279749229868924629055118466559398889171334460687221570790842067422516602301268449675161671285639036812980397750355009751465756981553880196893384644133554030859935536331990283474317516720367886849720438484466701695433140216688898704957249243518086915108725682987570155959897115104411741518951713649570947774066848643819773995737463783706323758690115929425247663964262677299192303951718730573827930547292075794439271721814328924358174000766565596846406018799206244966559542661308326027384533300617992534488273947400781351011567418094822749250181893208853974544746469278032192509802822102662199725456611538288641273250952329103924328896078508266215642262763131610426593496417732365388422275323290243647078209600778013847347419570154610292427621520970022809038404680493361555198817009342093922041160584089930110630569609270215801293710314921738409503237635381473373206315828965212539822298705404768052898592690588099087766613762724612598977346457520151024973828269671725089982728224361768044367020061951111101227271912784958128984723349801856203768273832080388689358587454090869780850507023004754645131470835332292723314701211528273972185170145367121542767395126408249198669904942445583538230724782563752445879588336659601344293986838738762608679832668912001830284866342431013365628864412641922292668070081824460012864320003934588589404708488697035314578666383506149623498051530697113543400482798448856849392430799117535878952637275937215824639854850506542160390547229707001878207812112606994393846363287277235623055757045489998469252301451798528507616384520750763054681733397103591439330082844820222912583279079716566721755421100454256636064638579957871041852176906371757421155570957539686541150600614046470198873858624869676076830823526880369948695718438630716170690452252213693812077367376263535358409002289924298523378492601405999556870080351277227005938770649415459292025629743691407873653780825630898617943922010906894065934778096594147294223652041930233498497508582672941019672668184003707656250168919078540686223491657889523121690719632650363910348681990104277584722124494028601395796705068661315430239080515249131959949662461657783739114162738075592443436033660409848348608010259186725363280834177235099818012331525033191243331370202500568141618171313080576159175045376972409026539434504919551538138300672432736972730102315705660739557774060277747586980120827775543943964345204618482670999699046533756297396258009232119844806660190090313950325813079761182352292566168256182318631961783250027441568431588991850923746339713587409671969482901105371131099440546380989080640155823569017848302634572225670898915850110925449272265723317043742823220877900090000301121335152035429095632368843654587115202233479139134777086462849133853958402427931623103409412085070870396130376359260394975982345925469497691954030843268024175872854908503132009601480360215473093686573069824472061598402541167163996068884470800833737086557368227002629583095297642737414927164517630239832616469419318670367990367183720657206116400491119174072772884781359434155194022762437057107255174792226381102790121885454042395660867753300761351192426368445549754819479722012792674646913177944718724682752366877705802033641448689405506379142242825788926928118561116387547482352344456519964621035109783147773092783992103754042423319820023748216348700163626740498971468564293844500149803792435642273394971690018684743950151556451906322693704271347855264192938188454261459531506894203021553460389051412043356920164096551242283927887949769571110628336475483471370435524386727429626331450704090515491174585013715834095050769171690005234546059206454881226490759271981445628615332335436555859592794125527126858840572978364325892077918243592785260146672981644009539809356189846486758945932207697805663722696102473303376114014095100178058671853648046347921853197277545090709649065997770282111254254063925883287216173301272868423467700078828850666754868995305941971862385650865619125722232947621576310678725882372821212368810665156616933837688172059775156929734566165358038799611824557212541651760246888365184361572942043914337684742115980364874712900940738700079220833068507311351566671589640760306644380556878810416832450562247891358573562817954261390268708993051603961510225617599271712755051220679223131246617092718314698711458222213063170439087067975641185904884849208610081702980059934401595164072319440546272612114163642585240532229032341072838857887878306717916232597544244221665120246777270541024080343250435672724554178314699129116657552832400109677896561821484692926529680030480670270202160696103248820242686926122147533686561618695663175702064067102984329852235726520648002799445492578649482442735836479323349552926262863870038374067408815858146077614473277924892952512015623460952911019093289079704088125817304081414881000223970042755492324398245508338195338428649815163591869868197610582057691824221059284729413884598219307738033793258569439816150214767673980367500917643619111180868233442292551984198744794060513491279723615460381013443513896277426313018825341103251395171905957172582678095848190179744396170831449946718156229325403059433174544943572912360830521487109336327242494939324769910904884874564254195035737716006025428749289456021027730939171909419753987712464705658086072423846201867276765694446044660721986609051030195122480695351112294080672640339048055280721960575030425614554554034780571377231203754847592933528535474150864730855691780896924877465465879557445769464067537732927191794584480332222843277621146379515504734551739861522665044572242436229088317256329908915071533611831009567110760420778881258863380394055963953993751152452926984158229642199867264993897241066104416691222543413190153110092405820564101516787560873161209590489713257122084848267116370953244751906085216160882101583630635603716539093554805216551940810382609844019666862790212334615275420495389182565943080485002764600055552061889746657913871483948428595389195252420337429962837765030358000679091500208475904483915040791685188505263401899858273549165109938024839748468252566039221426047918252675156138156351606533997154149575183950378613145211328967807617754744761938644868197279816860389308487613017034972465735439569403299251325510217667744875012283646112250854697878230613603156389680061169264253847486919075234703378696755319193345885597834234694617135294849939334522836203663868787118056416037378270957616051189659919553162907742470137069409443927334198468624871263923030794649195061465469878830106009296465535514859916980531407743198741747835215241243792099204176254965323272409907773161256871223513436821941840723542121233395312301672753072027374141400728827492944372649773812711639052028175995206733510353795964941339676493550962842607400204247339379347962492601826500377383567679771672840488195689883816027035662199023488028637622129633457467200436725427608517209086421039979564230638349225124040971758870154939822704573842548609053392692777040026294612503492497250253270396487553252106008983936163178667005972793461457744301838900963942350160327810662777663569726061361046105603493685340751309837777635503916396066306414481700285858436928385586162083372119682853956377687203171170218677555569597652202535607696014469960466129719860644420191612580764843500769648171013902589220610669537654083879251373197171430512453871174395303043618820304237197255163959202959509569693251329214940612270252457787313075922851473072273347631061385092463897837022709873924018097850564456410398496601603832621828273158500193821027892035953402301680228753363611594700190951996015472474253415900097700133517523279106738427336436403372819482676273530581363294573199632232602647246157056529249850990430088429550755705991519545350960382841985199568271898568739997235951940798219397791735680764516654237301173968640028197028179348638920751584100656895895711850085098446107797094068855926793929702574154349069703889864474370414469334071890045166376493077726426858045880168122739717103595681625390729288682566270987373722216498589380826782678813987587738903814796338335832990314430527005042966538284413282765572315929404797022022077879742727871108769085790050203628068293336323887518552447200397753223341601447427301623249958600933056543889301397660262487741591180457017364152883827901438429865376969294281667956796744844862730973286578005514352045001061069646455245416386729316773291758656835136734168726287919269409377567124850140695082387419167473109076331254104632528580262338525018143999862891029654145991424567969781034646807012828214983982958511576936149168824078409081331994195990121138062334606365303503092118747612643951446167176843582263334817741207444591951945549392896487302596228278849829875286795106032401144250090398125749684395620748398261392001124043790754937903147821825924303394639675034191809875961841320609636523324676585994443177771312920913412897755908532018205149787617014922786290546958956800159282589551138628609319998599283897253611524855043033334730633292838275053617946474986151716652484505388764468046191335548057763900307031677164047041507117801306748749290012261390226351262240276050176490850615808507135764811672984468521150473524259508179782164281972413551369681475458749315855979286655191534888592770984548195265940153892395304377615414650621445548753108288871473732274885945655997079845119357240578494380996597358909107829066167092638726754958043691693081723244035973155059808517242772028708244571963026233625327354167735278843331510313344516515054665697346274097793876610351116566477225839759352320215289868908446495327141159797911769775031745525057849780579632774806367092259102318886431374825381176989397356274102420636459605406229485395696401499690247743273435317903708339999482227013099047626258968328176239076856273114581316178007621516668542920918321009162534076663180968318692952240355647357811799097174608879810728218634624342960990995896359118651870674730707022147174791097586737815291124172927675765841152575787911758431546030685595353578416945939921482403970028966969540526938051822332641204604070019443472199379095801057803452939955690681871219338980877782870298704861637480030542300717383279211509321440104593077976913033531137320681991586612729133117328811961314283661863790403644115228389774548096513561067365606363872750896080722911586507630246829832494565907770415426690669401057146443015818609344970468796632591283128809481396262881339827157747943505388420598673808395493243586708056866605854800203989765812676005799528702948099690327637013539214658174189436018670626683297735280274730028745554121386832121463430992850162419427974133419250702498528466086216372002186437605055779397662848105356815169620721916150082520429389984026963866774712200488233559562699395340001687491356940812054415281454582393018327288596427723467878277628278008698643806215160664499111529285319120775759784265340498678432070018316967044023935355812819519624716811282857795432955330134158664248256563627231332655672871048105825497718990249442798261907729893907805837667624764970360154735069389884310580287670423446119020580117341832753112238348572766519764610664608083389912205074170371603715297612749490043063745853113806152558077920789851638875424642974214921887309924420001508694449075006873239954414436757769505168926984624549001834832706206122953792995951303098433778975145146239640189705781103934108881811063052279364585531313107183317283774098941542922752825827198692470137394290236001204765659441628340534877534051386640206709952827294425072490546934591923312287614750991170100487216964399364165048227389214109197654608108915633961483189760268470923085976524272617029392267567769686692667362128560679965022025074948583723628548551073225027627071492867339672162579176401362777836152352797995787182206988212030289894198664917089341308135889282621536474524412690945676645626411063436121632738236412137277606507068639486369759814753264261702828741502650122137641434577062505810862746168538501298510305433046512009561584723556030712722057672132676327870697202188626316291287468139013766019075355433973169839225779589631159803891839283253473434362985608845997933993795686934877341001793883018869077760309133398668705333403639062791927200103642407412651580181636336043187928815137415594360492219789473560981215957212393630271471946023208006068111481374354798549344638278091446047743944291085222125335375656695321468771729416855807296276634947799102038203732384788198650517396844523136145282052508368001640004282123099184024997196561550496036013542850619139085186606871757652258689950731112514677479268240303261623908584219113976197151258823985657051078555541739063965496245623993494395951178959872126992049793729039948741833124563308977303692362988237924227133355586302562884685558426387422998921963727577448292621181036822877033781216083047137898852736042932801557573545225675851336997606899365775518342811078358942634691050328002241908311815200948030526418022368634418381686163220142841890776642234099696080165867419787120922685946817447500443237023707286356367458865789756301926062774406757431720235413041162686210636662275523717599936868258048585847460200038087639492296575989873576203017377364468018092360195204609977692917359414985343490069950757679480575441896603954448572595753773045526531576951679908938209443209667019747560539319474931197734663322692210356308525102916972501346205888749121237980957279699074881248596455384763584097072104147985559257127591769636265586303427590800086774806943950082654316566702220831699414006120258948967808888059079634937358244621743844017113285182263343696286870717692737414199181525005018713703718132676264358211703399093822488368521023496010839845929401951810146805063617352411273422110320156916828556784848985402796593098197487857095359452338817393645831566928657054776869399678756315105591434282304623296541346150366490043672460650564061310744004817018372890690531020632851664838331222105126633208417036265012433762879542904000297328579469808450043199291595199895300805418409542197484034800387446350288367948517274886164345199850294120339799977162744275811325210580624644847609654798643811552940717780695165244410295670439418419200627355490410202944405893516823783336549968191015222214592539737397000434410715291465726611831826435758584021325640565176597952938711594338122118090010365709702619840143613125756305078803293437378728379415447218716974244286492726319068437278752143189908051056657527727990274226419540693763175141694954587221069415183073241731120828810512220752471738023656457001503712138254887491806735023885735456669726706146461093254302906583911443615477944521316705767374686370207671401812926683667773987007637935397994930962642096353850039938676682906731908467592975527563487024136731621884397775210070699514468148867179132755118456724793990456202783093242330931259118887658246299143313856806217159650048488562815214126117561147163588338666813279682210758226462621127488299442365358721059136224111262001555230929953913534833055025135901856739808103236295967417926795362456124106523243573679617715791899105345167707567686347050712730794462059756237998720069208197094929936565754877313402242396918547523211268269787170019734071379382070024853346698394983158905387010167066123634723273159383645364755227845287678324853836426130835138625525427240943982496693203069035125944254540770080586628037408561611069504893089385381938581090675233234870567849873509830715004495040808478398486868660865075840702637777226987396634659660926455269452046213751427369472755690072692955777109840593006680576484080241363108324409268822695200587318646473783073174782399683026253056506444318263785637838372083594625470931797048002848008544881119008967609516500679128533896176684369147633902007729672260028066219185067610200273261389171413056559488932358006533961321470172101573364303601841022025793518898080200779031137148060035176363274475715882302324365920267461718261050430866864315027805813491667385066743613225684683423788156290686482894993225881625685497177116268990755601735106561409680238253175364875086041209178267264914344623051190503236149999632748509305192350892812907495088506087416919653275062825731297940962194086130910896414963263967760610628810837118039686869957403664570786344357784908202315309227442171069238733565357839896598407970955231228876392117983538607743667084463245950255966088735752653178422900275082491223642605787517656333549503267181483030364253483638128490993191542026965983154621153175101063658202815264989520298021149608755306666546827399211134766400971571260061532961624335546243802620713404809618927891234775264930383652485225539503191470173506043029894776326384775682010071319512373196787426137313471760783559460582625252135196827269423025460436616278865772030205883869265473936463156674736482802964465696402493488251973229269501540760034018615643807981866743764267390539792072408673434279249252882339779613658775716006852525248739150695905160374655495575282011714167616609610009361548100315020960199746898187792340109870562880992510681412540347778600880797715164201753853419551424116294173778080496444668917351617385129270704752301370707797691481225444538150419096324984172239170108816571133460841201117617839218023325687250617453056084252855750672216975814106206145042780322658527351949599471836559467155135953436393128717811365216747807794606538639580966755331276056723687554184537239968048722237777599732235125162482012169254304699058025686482359333338414438000825187639771674994726797293728802323349992173797409930627070691753376108016797801548875707645755256856431252677003140353284053319729684518430917799081950962184608190361164176672318743246099629036723210035374267323828133414096105245098283836145085910595608791265289637881265802573556456512696051743776404561546570746497910537083447135509575984325932252429983510790271264489848435793377213898035072588087943466941639959580489675807951701351041981309297945013197071230200278579575081374396692625805952847351687809115076123110563208149942845227385906686952330805878888865147339855415691163234456150448485685673808179437955301618644982047161714991733506437551197591547069569788558223512277094391518379334668419365395236255317497109831992219306482942034259566075557661478255674297273927690676459454736919796316220406098043718862214655328042548609278223194268151748720492494259721630585012816302685558485652770308924691862402234406642744064047372836679154816128021863716725311076082085899402510972052179145498930356009295266477888548258302446723131155017008179415115914426677530903519028046482614877257555789425248732249068379228466677139961390068568535522897733352060726600585535648180579435906265091439855269175039714110519639567338627898699859379274758141616271715805484398874498132322758841915051896001068810612423789609216912163884639962659319651779330763474541871581531323526672588167067089224144943418666268469089659637614397358261025116719589002084523449022860579741950000236652088729736898469319916230133476736818435897021674561981433028597534906940303594660479653358504675584015278407458485575233284608152901867057874056495392433641944656815047388060231488298206366401500445763431143720111003603441452538703379486442357701376456896165594998421690867760797590931513204005650561029404364239944911030193583162510045478891381399573628175691795689722188408349285479221010073940429953988512580740594889228588303063983130655460265347395447465414376112869572579690987390438446040669479868152045487952122978585732380394555986051246117938788416134559494921124850729017230427174280346375664515765823462769850919010925793800021662800193517859366267414111323079878248476971833824978734904739388095204766925703593852914752287995294876319104254278697987224510909452021769416887417853988611385568392588889527624997202621259867999390331134966975280438024041811667806092722718489192873611341111609831361338483157629909237002890393643501814565320258740921420336044183538517612269098508345054318830099754138430377305745991085637188605538158638191605230789421182190737458687119729474076537198359565355943085602276383656173945566740850458254991737482989256702946675574217009590190774141677708629183350849873304937711991914779078465502879386382164048634379864622262516085494873571644048660242697880695507109242223152257756693069243708186578376099027454927269588758207216609824222775610342243377554393476657962264898078086382678779691390384229560195922722377104170157236626982525926034733520847287398064143925666018795163559602274536640205823681827991870893337705920634613093383001213047791391207353839686747306176119615723412988081234312434953953282505805781623057321485803033115817959708433320441839318609291614885584069480906362739601213411210560188580541080340486728342951646397585425968359773702671571326477924423196392863179796121919700036931288326297465544050858729004095977053819155796271792625195822544791072183690657792607261188329291833408124194717988919811658390295605384139324001600451998781784861724178689970838202546594160159869065229120577460250657885574216326808440991076865740826967545246105502290247381633265691870866784699106120122196903569750658749129929547785999908206611159832508462153761477426920375361473337463380720821696382219575686223463435377004900158831159509232099076821652747383322229601024122968670688639065705710425514430310812700823200529094857915083078146917973762948864607985295066956780394195405280217706366944984907238885794722894224835375394948488950758238200037121055400940769737112690142319413787145912050721344181980030315173289338017269801645962350094962087128825077670583653648666723792711925523207760465634235187750872064525196328445770295880161137909871765927020057521908755476778318099645501456152703474593163968526083206114666277471471716074588681689996168146613694576690676161981675891795214381945811944062070121508879863932242024325159809884523929149538589829885024960746886643334402295164483483307237338621262047391138310451208250761341700727337725825326045751907304696719094933073973393103003423046221468846707508851215031906816139444534525134188671774482504842783736396087809090821549820984566380488242794094147512768640240503694221803101405436907472527347617508558275791191114984764682758532902890558991068374073074985975836079211106177758973725402504589915756677009491219356552907948748621318615196682449442939389450258631870047299911162301789274547162558681172991570147682766171626725666480694413927222715297498156190929604371993293464423365237096977454282033096454241999858656894844599853105762593155333835524965881978181856924906462057367812693024550346174776846803092458446651927923974958328639489723021428490926675414375271661864199836296340415384774550635586257992947101799790411390472903422320726981123958093952335654717020514646805250933742206337862475345095868037255906310232125159617394036055746348646137211984942116999548927007198096433838353638317816690343622918243212598384125520180631044636037740290891068427719918574101185245409278844534858688844492059096095709130501857579945148545667766425881944931072673844416731303884513516891016707415789954601112914527789720446478435660271216326550561969907306164192131981362004073712358105874397245041098348908285122099265456049225903552541167797589936258753882290134837283774575010050902068990259946697394330501080601130337374014980955958186583465945350072413199157180899456680315790903940776118543509741428801437581852268532478452177634591382592151538092723480691188975945934318693989691003769925034872980966574696920995106975428360572918924823554488748438495321203427259674841313050114083146412449431575776936610603947810628717681577500853513881668221176867101365974121007526616011386174912919356207615494371380739144979457767562295796855621577554616715087412627513953226587998448831134248641397351724578212141230303022176024216867388747598870753832388736493012684904967944929087650672981249938186439209647425950371170548385157086652621978448680722963381891889934367342678826167626186282739468097288944247524336236584346476059205386496270106801181445208400527308971827889657801268498072148033991987594174952716557382743666057244811454437833397345898797347235006246061475355166235337767949801399541634609975212479771105318717752100017354253307387942455290080625898482537715237017985533101447669881781509926761699456379754428289467382495551265161710695410486644443521041350168926194352836835149341835643409366212888144582476756685267540873438022626907022628969348102394736044037626486094024459773948646121915307103836053379517805608573347450604621918341018721376570126510383431040544098813543662104525106315439637466704885049331047244081402479320523408940888193036656339307128552302695294843555560245983812063138535346077769637004391848407224430027329729496204470813215804436167516083576205583117098531454947296465352802668561642353994589370548212699798881684702740605349565288712147388759455875209812681381977252725770464346810933583617141743588540623317415042591565259812966483207035891440922444341593335034779140613383910546170449008694713530510626741160739287133845875644206757110261486157933434562547862607434586606451032923330208714025186629870450664257271360466716112020238214302700022238894642871694931145458212892196351873007301945988041307704648002233941610601144923377091124811814435045688661891102957821859210392556256510734329374732356069451120030477268635195188521686031118708692087623117794819805254316078640049263222701075933840375387365260239935883115598266589635492280759506757670434513792246645901485243790709952496288808360910333092658800058025681114245150723010403600815115895837939825863013741470696732309577367971348263927505644043748217066522550281952124371660378490580792357156146182702251529038787605302930471950847094443717322148942675049297865159531825773349312095395349395341962706036793246721520099274730440133567446970256729334045779393064678982316694099585085479935048092305129901636494007324828246252789338349020976987783630533785731136323685408721769353633693632447847232537562640225046485577048768806451244074032151116925052156708050134032804413157840839563741145490289290758036130402629201277848139032538725963674077431402380908850376447785729919468967923936854874249247646594096775072674768799862681934177490978288335357594220232589039577805309633124352218474607000475492545190927886970146498094156720891694969618885816375161869570371383135313846234234769659917678337081610980812082541269536170903836199241239179806950406992100151370955214471055135746330353294112262859296380431206589924251942185093156594038185136472841752109769826489025660808308587588395279059601207344368188274945301395101653952638976903818912520537714905875360318767624274572899129691980201218971552349836283701108592975450185043225815599426302253927930127423347614170075243550367007746834543657985160756944825311425768092403175706270120523027710808056894350223519850046410507023835639361450986746814835891969117598672605860701250337267547371013835137498830966115898516717031662530899379551118178569430191221758740374718014632033655704008998150919717544793842587291080994731387899538587328109884123955920975069225574812452303789760510542823571255911998303959523833346977879741795767219568280460431838182068325491258679728792824981264475731500421005612196190872631875017432231022440751338333542366960348600246060422104920720691162925002440692225607778894150220748236098091227138525307252535768856717713185471255851250166109621650232324339200439610105460953321338126269599265009960582591938141314851498649453673755456601003764598984621096519876952331681768767770652480560683070107006774352568131184426354534428923021763610381097847025353138040203000285308723625163565366070500210395078737250495805590392794508915033063065254275699813352514841281199868158798499511395871885124317453096541375136971401715804114840126440177639926988996132740283090073104460359020623560482807259478717444119672206824692295799823533019905262984721974654039652744224506300450674140900052495797664257311709859272721824015518139627246981947648145604296848871944825833418085564814833478597495664024512004939179339616883507402693926516796642393105141020156390538756414947440609376178938249262377544984835849232838142643440355720171156837900837456655988018970319579129302996861810860314905755829358807629582031804300646015675753199933988665586624579018035513426626823834525396492907373878420482118771425350896216524035508332126613875585785980925929415050985716668339691857318197032034001280499680734576632664775368503224352371982968361882492257460383937095504938688643343961615940828698917109716349251628603209705239675357936738037826948129282191249686921325127204926521793020091840605032805121427219486350003123618230652846026477657597019938064880380231416917973601520690087730228054002520603307621799971933217451854292990867289662822118211795398918600408761403884858435235286680944357812295522381241673761679311334122053521214492303828983656083686723261944994887580687098192985865853064806096122313174583025916333955437654746479010471879647831215022360608902377388422638960402460645783198031452734891624661833026312022991992918575464294875943054810555033415543452434246096561085253133793986627919682386770625745764549235671120800854789858103921116104128880846549659589776878141796054809366333498637015656136340270166534644855384087334225560462258433554910704430544777837345103359511448352657129988826711788394712215921134314306014325851889317535396040660887758932763907979408864182783750571830986210521509613284678624432559249791507700943235812050663201798163302460736153327974769748848594673390883083911403043831594303020718050606099592335193682272945187348023687770990616335015578577054798035575647700344100119849189911708908225280016113807801533855634609385749586295861422033840994770273421074065168156307000939993158034770156132799277577280690639970806608765166752299331763743651862293649957933306754312510141510824108416732632501121134472048035840125124286930147029450400993352036326499107713984863720236594525446224996601746249629363113441697629383260630559666999934522822168564760390838256200248002899628011670622055730029298709106696415284290274245527225272175972365770186026859385455029548455225783338947314399413322879769607222661708397835775404099984864902284236826442045029438692971110445608736141375478460452896581420947470447960857794003958223931410973996849185479456043532377137123705609007955020263003270535387413923166282411017690300656299257401446021994055735242346752407078148337847736263060936282842655104105818780467702716873373835361243846718220842220922001760185308559822534741306771044596293059043868334313080723123249624405953055052821211600891503765508307538190281606775358331965747304645079818265973229172145607456453254926744568749287645409476317452711065837006143951983752068738938561026526075385787294260768328493357602930445319648704153657168466655651761503410246754141153515419918846763463768792435466200185127545961707951993319688780048866010017460623717125138523822309935128657886047844980201994396126726711871743342585034589851997561759795430195232257012234381076642112626169496665708859680471384551597630525578353640727211166865043973862067966553157301179577146116629636658272913050864031085293361380295476083310982046834130487615033694772523771633593371699123138068163460215608318342011231299730574293193583832297828209670196087992833508953958923037842314575906702995569545480299635597900027901566841838596682681286055319760840825560563911838020132853245773612904115321223972914825807027432103744677152552280720133878351819722084210098546984232556365752542486915025745916713857266989713574338200061591325893047136058828961907345548156433054720955312285954744348429690017746790635308516629008182369499946627105072995698700949881906010881080996856173083617845345995129538883161639880348439589298725957835303023770004798549241707425068547310299017756205393098276856664649695162239226188106870807631706196116150067961889256596741677615028463767516985850789913517058729996291202094403137619751340355926997270193629486677435847806575524848282356337676616949076482917610506703020197731559887898041898722136112226198614618382338173593224129320552910784808956459569402238722942252929322039325030539032862076876794061502378872795207804485188657483977478475681513045613210433789190500589439164880749355494940058069786836150321565987385364454902912980097713493836833753697506725502462001117129552251169756845108083975610592927856471243128432631563572231431988170806572601103325213211890633465929688919936915568260576078154931059103245559765572315345691550330707699347272496455723399731427713199020074759012543657442265404559268876506452013235749706510027469806245083202042916347826795183344512400098549882935234815000785741805454734855286570280456263392518386012133804973824749537805629751567301236695332854206005841943762672244224748424997611085469267516607786165678040232491835719206146945147753549491993652759779040176300073497318315556926472518549125032447017516223466509987707114431945936981430821957927171340164192648705739515120213407684307870277816194934517316096241207311648228885836978425358470967228994835958188743729369421419555121820184851712068194305967217826660095482141133325258037615511433918527058408539456149103515782683739266446932401522203888511783041653726795715295575386387978821397501447886597722402168081714576507193241773129958591297781958909792929673475011504678794198966739380600803283977672657282182264500579967759674610333065919081208851920187721119827419517307173394172852842825271690875764876027309347222169377027141850092176565278674758173964907602658644283243307753941731755672905547941211116168684088853842515983606590528793734881809740796816764859946495845883323456161914334917417473154576886383256978751880266288425384112313468883973703527170168869262096061074843897763473928006954141706100012782513078225398093159445812313170091607558421289827059115148215742419770484474372468530289302333265078809804282714238215791828150985657149031113915064400838339481657062269077151946405452030370241297090892347074796088358961426332066843966370270700266602770995711396890346084472520875857615417205079549712110016671440558679418792971569792910752672912331759461884483482944319181222693585940806566468808851968618439716229478791344245221087258996345442030109401093575033738738250209642529666302713925398615089699837243995046968720213425557402914234026897578882411624082212683970996446389225455696968880856783062436858964469340374327351980374087593799083674726399701579660791761849589507362328703627777902266369068472382830149264924966113466457420610363237162461687111777458819096043244832062847111053893371075896847056564794301024347207784721705512414818066504914721512294235939149291337097872594542444647638201992199840278780368388231812340903255282088927083824763466505436965903792681249429962766927890700464078787447077499854284234987514145883237934209620145493243689847527763673961130535106692738895079700792049376166787809754265494175076579351400940963937508443505480071336801075040829986074082649138053469157604959134833000346157248926731743718010003143486093593179347645976075957138584017857476467371450007579802220234943288586653532844813012086628334400079617721846294676611463538401666680710055929366513744187198863722865119618233339701125198521074870309174299711969524680412709571103072164291347369555198172498878387890328738218499893851491701812005458567903578760925347721103656745880274385078214684177241740100169639069751409281097511141540557872452265760118191687808846624277667854513837503406926350251314068605333183884144091661889724452462019622586849552678790970939961104771480355889131632410488327127302801199836941031825855326655145620898861825172042008475614079592117692433521895431119279901028559265585568449350502382780813820578376408376368168097940901974985945650667376157580220745629878466826762538985939950035564270059086777277779196120010639068146902813482008734909227304529290439537797687716547461097281422901509825194906330296527975191283836457069425336489628947068885842126940567445182266440694846819881329314524920256813611157935550566454211718600054360734073510080426815143150301915315380068015146168864532144199408050527731846122133472401009477150861794088213736429147539048124706188812210135842298316307346631839923723501452531043623828347336888397903653593545792323735399275906418792110525520912446719698609842611527296043243423126737509457328462610998595602366881434916845399634385695759473814206563765165309733866655389802460481946932138567813993856556875606002659239419310413006576647774081045315681228867732825038670881985393604347858165952266722748509099883320086447605884564620025094556164099882928356377718948288372080196393800244993852030625909602048873499046193404511255707511909147334999768142538097927916811540030469657441105781971865167649168234170738483391031223420917073568873579413222431119336568791934479238806469284260885475189392955169078365805894004700859401342334895440861879505928829994644193967532343175261204879214631592861102537036302425496525025568884235422358234524681977021379365805433017576119222253027763607716677959854078095963647007157779389946993167914026963321431532097033694503428997531681922012772988641908521668012227394739255537201966617921618112131593826348580277929219442334619880109524079614428681534046038347278227267660276448640165399227248175378257896082254573428805952751311794058071565963215604737085824993511311622941519319655267750290926500169994182064770203417462286152886189719894943442657265440004978742203110808841011999797512390647630536645097844833688910592069552119646738563296038391874848052699695031118781455576783549662563114390279875389562349456398938158906178684362738172522250263260188990495974504224586678324369872478167965889828454728884633900332533503165631157717053144940679975691414285446491647398588344744919172836809230165925635887883290816879681877890279786907705668328847802562642818293147323787413131168427669766222258734308607880285627993978026385577770073008098338893389412369768304209395887614573738547020183855245288869195090785983461856157942243762858104832624774533937505581783014534124778515408547034634029944286453887835738900951431574959371050894835795869895599098745661880498811058301136507225216539110770823179713348545033337754536391677313146305270003972134603849214842815947642278563058048505816030020642667130819122587782730024216376785643402670922666642923990383256484411270314045617505828814712941275176091848545233906021223516361620748209618997014722292781644549343106727084070212495758641142757256896996185406154770269376582711626712167126382332770304687411276865948866291219370225662553106898177097389769317825505866412208958079365043889396870876959398440267830654154945168070270268359114637201077076177928166911809661646089038141978808325827803811316991670196615984705741219404534187027547607110936912586519989054385441288499926589416848306846239551877746936428700192390576459279209778364724065036835237049571278621545353684594444394117645001199244685791480559375563616666959291230752967287834071701917673292264060192933768929624602551107759087126942677324677983536314121903940852945343569991774989773721002016593190153797952249730586572928270459742297203161838581152898336757455202929959776997025191504750083148840827868172281578104449336299657178974535864673509474004564238958664254041499573797885878660262115919495827034469475500807388940908071277226054353282232134740961070825098335518478139997232070132448638127968730759935925449389371412929076751082678845674823422545583610116382235405759249586650401879448520827355838966303470263297286840566118534467412262219414774819217410194348307545897091535296231201433507112956740502172813191693001532819162198921605576272489504592868623239264324446255794841735733973458116680022678450987148284629278813831161349404030867048584328063454771457755011133209048885719677563154937299399063708114889161603839535160155835665728846606842602486302161847618660639819186595055582890368938169432329882135851630201549648609266721878254960228037641901940130044536874266295183276991723325149343356429511852140680289571144241092699149484178770078117125275660202647527025424559852175283716049476786914178254943735910607738927656205635387435000337615547017961782422183226487270135124424264820453100396150232565093567064977636004810621860006114336349477592617130036644905879967637842275314050463959205617824283621060805433046176643789009698112135675312367790683565112332681773577492440687151763750437274861863843366016663043901512468166025236377385756436511763675768865876905223656476206924309065078065529234986849377235069251629707280555560044817356644834238256367210520287338816542498819455824831544669117066095734113424637259996463440927446406249080945052553388371834843869411158305672360056356258375296952583583912411432168959144980722402734190752000603036337864719000743508773427221193703819268700193491894556370794303071584823516389889215196536163620478826456966119833865763313960254032217847698203480207722372337707505023161797871503266066358138485949769279987343651528742650305030841180391798123655254975753689892105729274452453700358802920121416632133688142842636443979745473846846389253984189566942887654466666905866231560028376858545844739757499214780223583131043349382915407732245627482474408163864933054338385003936934683229043836710591995262220787834758648456666993899324521349334752903316815993159648145191876273587011960240116087506199704338170849528021317243462043083284026177693436626205511635068333176749899044016147376330297175683260577665086308658888588258392461975160765271644620107302129456970865289340940301368693282381240161003269423692191730218971559418775331512670854381380551192056208365250894071180292530429931276669490391811301265059768121221588078793179949818430474939583696960688518156350423495260800468611401432514369218721878322518254674213021645589932506597744493780329531495618284156384212880162487642806284696329530065884998464698414071553173713545924330200188822992043350913169622842408293459377482603795767094828656528260342938337705112231233203782833787196140135857814345690177095070808781392998563242503486784694216646864176056604688778964544180582470573616949207774376122125339986111553952242190390443243035714131111550045360380285787534449967924046186668973922631040090911220365979928076008883995263306832184594546191408643253746361498738820442542216176183418461144361183613300345396198293420131426114983142591785181791363850114422257186350810391566732554302061191297701669467979620370824689147399848329066762905028346959894256528101434220171770703109477630990788219732131295209697247810714991576913303670056977628055273939184337879137998953338126081645094557079755908724041421200484214490464072241776269606036203411718201037343655593823478517449411691306059109757347557322459921623539537862056464421799222423810308768076494929316787755460842873099977475556792561431910851473306938135320413649786520140358350461483123145652772316819051122173108221381674754598652126097044441478751798528236175121446350265770102244791980612214719868414516128602585747585057034503988963813239846120752128549911258323484025406535696071680285887573348828977237809021734489400074894189072696510057331073604006424794181691549247882510210134270662088408032517735913525759815072027028257397644505307443940203360384491714911707951586869675564859662398779398724401565859632354684512641046039531403987101670358921412439432658255145226363986155156014684890263631843587772812907050197251000743134450408215465140884563771899328211133286951599362204697433045394307058475207680647955950648137336322643963660502850908910688738091679633160305283839494424760308542560537095484504668929978253562209494049443934136855937673661848976042548480955357620234418540113262207244495139256537678401949056550283514128308704157836104774009558758331497439889574912331838584100975133020605506698673957964175486744569952124904456162619690310063828236523279135460547222620902477737467857245808634249635764231453029849767326098695416854222867312455590704584099434023183003373852002415769015152600724518571248255950885437853289513352607677843534334690801518501983570251972205771272580771980689461661023557713756394355504090569078574465924669851608050431057996137884543502466538459480718447234862798811854233133958825399887464869728078821023396508585376046118025818563142019121164708921790134486980213678800939714266061371760029363252853387571662739906905659717091624704555014964463510860167293701695483512258561523710107542694051754166449598984401910003020944666126944201896211314450903383265959843846571939147580526173711438613633851042375897048320073167101946096864268919533038593888143324708969773842291241235084483415394256789400874188361069002866555409702907743015783131785269366748850917464589610159586580687787692616114028384757692127268570561441067404041809817506369882922911760498367990679916554260584306465541154642591530731363247428760816483735251916455047850439751583166289436149128159495181428691298138991699067973265315326306964357906704895416355213179439378327699698856698991795402769422295329424634393154296238549141915636379347426635244101943499983555806775529767816577221569090806063298760711143506327184331641844127468438114875416172935827184637052456636317685467941326583311495695666505410829700212262395424579319527376697506603132494164356369707033644790745813634731775051882105805790266994034393533599387995384201810589671250471557383677097053982277730165055109033025373799657349408503396517188118636920058262839598158566383232991261275324006729457356832965894216447085187978436787231810599259712873048317671446232955774902041152991023478885279251776160480404038346300770283583921404913827043600550324506774941452275495308092894085614407505538841077570460184844544083275787349857065691818267489392414578653890004487315652610182518330690405832933128671499328241843337705646371215567205872946441486737294215712249407999684155072373673861897903140473079908450976590714869751616862755293011081706048402210565851929354453425330567719862067631028060184892256346430129939242555816892746093256248362023754841313759292739730902559845007224934212801375421073445324031387000310766455519025905460369476918794767722850418848038158359545255886068068388735178544961439088683656387427854359863952367971109051402618317923431038425816656595118455976530418806302537453109359962079679655943573468468760757988890697177489001129631060376195274679593950619717627589423524145869833321147290555035654209480956346453582675847109203119328884568071381822848679079634572637575994114196575978954263682908137001463520090676167217604152692069777911595510275553332739227744752272285850254393160779019352307570189320202754062261289178584575622377928222307139816594343463651947181207310238842224673747156332991731372387474767565759935834773142595791931691482165504711751040516816072877506599362835346139778478750437519164028156871748049614886133193529114834344374130753779762218410275332334109865396569489219655996572570946935511985092185438603131916213434163735849522697947422367589520369259200970321893780159619185287511416335162777267508740325451776951011358775721669408008968563811954479067295644980723599269370333507862059774844901719464474180592635069702221748189561564653356483303358959480307742796537428633326770229161567082787369500052312045355636833735665658529534565657352945138881129589867644083560848803360965018273547227964919146782920689206323706076862024847887700725170863304921150283540561358770383663386106220753768153466056128502286782416184446868790796295101540810687404057994017336026177835059184638331249987210685722662201463611765866917899709004994738733996053791891086236483782388783534241185838116379253591702764257618836812946899538032410037695831167308204852325654932412169114835046094006214884580727620697913782328111403511263193597496738344357564770765922550636458316500947116738941533993479967598824260827828854290785837441956666066069935538050114539490114772355305002457488072442407681298281386328612851130968159242828545520073282859499909532192384555643637300826358316070829859622506454814622972145981648403188075736838080646668536505791372018378833751235597120350778782717560505378887387866655676423079980100010806148591890837575238250492635638075279021050629444770398800466550452590516931074266494155965334115653891938577971176122586521503695995813804975998919022266521994701425204051946183813376053898357166534988074802584916489432100486150593493414180010483471941395336232934117475143256230939715294899449778021164231265474750221135556423684070424859183356344999396836386930088796778684695095932561096248842161984349645954204674274239820809966576374629808054609028601333405294273149079647172578226554429236701462729456312595592735713507079419790480098360535822426201698307867836335320905888744329461826311798646304556332974456069531788169007850030643465463123596650839169906434679616941448552947141421695699213215392673164333223638709155784219080823647164886890079189543786682505587836993542848609592308476975895203761885852501799748321553935141703249486219751739917363860779705535852272049478142053349284557979596297459334704986517323643713549559458893940335523845732595436914074954161558346143043054232192694778558232009266817282504796521897579794430461931660440229537563135654232161144174301004420598492347089636117811179524905954381653974251384228451353853543063106641964017872564403057195756576283910409405928502248488808931985164521449076661480580590117944992744706739565996125720826339648348635571728417671885410246217548827659968504384944132071251410105825855768878660434427511948475355105417944718292812992263079824115290627185898017932558336122302101054028776763541544410839692016336273934982592688682668541811380908418806216694882759349250904009313132378407312357897607769113106010120090119884028804067939452952672189853148950860552700374761044973208767760939434403687917337204166075422233508405025788090301263104597557994413135662901252203786010184953510741676244394591959728736899911266404663996917766937208618130810662450532857191649181525373249449143506946878080099334704554996133162825661920263536788781966095994361061670777963046016767589186535451868099472387015335110502552911392680536003055636028241636674544519014844568846506599098615463373351213311450028617932015683839460231388945327187791099086678713787449593636905775521751526330550434038154098541946962779876242478779719965458435145724496084401362521204390028047159818348197080293696142770327523573344335764473637374360812302109084052910521137182362177520849416553611307069304145161180322306401423428898209363423327777600714996124250503311895379690319926325837308651370134589236736173740081485138506152094645665125027690907095081772136335866743807799945518104350766381914105234752560791397522096796219545352111079167661915291441528420661227551552150184692190497112440051850359337305678123790610518448288193510931269880158825168256294187407041008068217527000845510588417823672259198896281913153737078088669516550438663757798841853847041276612952520790429060442902677894793392034623181599790855361243003495204449403328905990730246121723622882551990000528229056366741303452365325414817979991537946808263704687368009001526135872096343124517773748315466155772819178095051132854395040002126191554600218177778952459704388908445475109087655229887443678668014650727633979813512845576989947900956617489585530449293304249261354630820136206931500479975121408404101059943500572654815344665721108988823117343149558453708963742269125535866465007996477200726110069442356164967385351939772388432258531307107826963081918391920188269969545282947960486209047479212865286750675449285015954107786013277468195949176562565692293477160300959430704977935270358684106170485871228524437486331350765435821705757119322626778315688530556521245600740402643197162826434087248069441592681478432722875497862453274988579100859490351008543330119683717416382565276355768377429581022663657570315222833330003066427345853534534298959197180651232041651288582969075208747454466664037585757689015533350264393595195047504266846614929405365690492911995757440710479523140078732011248494799430880295774539222415740149539874851097188309662920805467680780496714488718824005850127958445511259133825358153353893861245558160880145822471109936372828943579640457104167122555378050767486248022398238631272229089186636170704171869589245398964218607511477745841741769935443891086252133397351777277140792483309697808210332054101220808175375812448766772444583825990365672875342139689463289756167846370552098970615571356027871131805243028997531751905426483847320611174631857866758622286852241410475182228177312668987042159019763867074494614257529592641816643762038232904616290523830267623098687693147732189495849382750109208531470729569978800561761759811076672451521716517860346773796324051512630585405021327594391913588279649082958016255162168999858932784890206677016945998246563744696254992622309446540355170357093352857858908183153866286301288157264723444302891416447076552651957251522625612995449123969844568777068860347472808209678886931863165452824972280004523153548761769268650273920905125963982482737149606122683484093067227940593770281540628429494034055134037043727999845989125052807367172739101355515309493409241283687267710791970170989299196400883905583432822353920173638991442516969946868620739106562683027818810096516926016265673498753885549508706154193247834113047508540600176805940473743468157546689911962492431449908762835650536985411457314694686875730810866486070949465105059707906877370021428582705249561145504426427396956891760867172689061795165644869500968431271316830262186484545189759689664774966161001933080103238218177144927556432967284361771999357516592068336842101893072401370006488211675374073356248404080315652485042671313334651943848464605038412348329974242284483236704043322849570587777408748716482106679806585716643732348945446294453554248097189488508813604893079542346286991409788941254824777327613039043544227316647988795598297967443869483376400917561499226040692513541514364106250101922019933670172848945610607131685901553004766699295062194123510326307103626811367963414738178954213234775385735831646383285235825296130640655159075079640872222624477642756820675583301914173661729654797397449886253312955767703909654682629206809792380709543455650690109954430438840049104344518573176059557345789940213295636870620949290279174392711101195598178672224725827753465139379646878147233630025689116149262743213011149321905226464553665213717775325338491498610834468618928064671172931264794564909102857446700844409452704837818988865547796341790553243236463795144104553849223936215285966877768761471198747463953466892677308778078258401874457315897505073982816493332542823020641759865839592184120123744185695488258820887833795090569708008605423399910747383880055052187372884930098433841485638634965563879064042639150535399889765108244314009005251790478457954321503017969592328525271281906786499725797714285780140533723501143875329144832507898916397914789856262017235373210718942984378763810969422328866969502701900131768103286695108953844572237106559671386686445326549111874829563637177793314259337823603883119205648758176904802712088456909526476124384687742000496747274128522434706043624509216751268924313904937377236743425361212578299393191990830469871400681360609037164688272283112960307592819512285055921435754927892443391091427286579616182256361522296765332557945499696236488673646728235171766809752074789392084182229658452159405958669030553135510497978383350668420053451971900031450093766810158116133292711907963418767295653500882037234149319734384427118683834958655283156449271730766017104252917604749970231696758218294734037022289114386330309879098079828554261058141026809777580850726327605831451138917787874275439886676530648231393492345407517138875170169109317879017805295065241384085386306136301578522435761809940590625407124203893469606779273147389737985382893847623194355418748176937085243897293405629762192535416771925379705973839697956680729680017671532339290831890197103236357595009632525749883094042681828416379090202842310439078157298220953852447779543743941121209227399026475636964042215376918726515582415773411420955369688902603608352637928068141838184112067408328259155801428239941636961039457437116927758641855073013568716330713480451285735592983731480354286227605012827920089992075891116315209547003877574589995285677962117271523091086461762648138044629438167977383392683597835544507572759422167858924139185616431914853560629235479068901120810512893271009929496760264756293277047791652349972734680900109468440923050878322395724131913134070163625039273219881067708940086826646273222066677308340039365291632257749255915443316169009115106470236703051579136045995968917902562606542411660735978711655951874459652690001789826378862359466679157114329007853476357177253642595590223834916933127835001746210020693245004258932678637345411795926932050882936035024618301925013898455632624200134399016342520213270633020194952494283299690027881446977995230307240452482992570090563723734821315904867544739301089949251642393361651016073650530957514576631289135152313842832666800437722342572195687534717351688588943453262802130127993868563843906992779425048121256978378794155370416511579303949929400102944646615130054111968486130571709372337782003499680379002105554443902075918523563004795188013841945190220603922183020523657939335337349315679491444434171034812074763806151131977153073622628838645168938819676800734987580171879497423516423901609829552108004739302674002065580120309635194692624436989954837936030967107317091418835616948962074718914001468497321104142182440601830887749364937697531038231318410115459058215017533716229133308913285075135716575091554975971729694946804377755475156387933151885318492358264139555902258810594489527346722172242410045802405897907260650500306226960300594439924675833127750156081079269964630748605675053085234399287028578271078918580695883498210902948515983540800281032859368694916893379948819664908711720949031791070329349086736894339006270771298222637961907015124239038969924732864535930171954766217505044314880183956438389321570449950635072077366130820848058175929187997240812204374662966154751735188695273518842031269164071214510844494515220198811980211832839366585837257621120022950425216964175551329932284109470082050500320157474425775229631972120259887232691391122891841238825638663183121101659733295873849429214856037253267572773459295132475845571920856212841585166764272536472446477601309379793051023028663199087629142341075314183247346067416324459367215359104274078673365040231736400091957835408071182550850803307861136692532619510607192503794004136707115429355855786864173172608388742974361085740040905115017161998495396795445831134610031135196569216754840223343972145560301446835472976442368117987796802036345642439298655056662236589289650468774874979187006462663774446024821572721847645417498441441414764273556671164045997290497082731292024071240984675914556042993422334844093838702839585903720459844304884913388231957900048255920101910256709256480405603156930219254925326081543325751251260719956593140790667343292383108496806645028264386879444206231165027906876640925860637918419327266325092562067241512096433424367334150375881513765650281214704254409073968434015913589964751316822605046740649398981556590092923712303361278323569857879152399378730767631780064635370582270902993102154983059859774419332785748198788981737916275343863692632941851550384609929879547173153953189168817517167138134668289461417908576857262663727294693779312343339101316648327023030889557010409669563441890944471453647270155971387764706985559387809370235775300417787584056186494749361903177693381512047945871034783985259550211080357806681072581637685601908956307509900241811968047565502520910925491708329698078317518649566239776822814600043312870969394619247589853005197804723151180766809178556067152691581844607785804030750483736823904993790819416114249451710885995421237231777489927464749541527887382322785819642433143784723496409630032818485941831717133204050794863215603697207617502287971582201180135063513483427974435516880314226873209273436685736490101731248947777568368084158922792208203640252886479363716655272287435742872349292302710442803677266005570901207137123236017112690978137550294033301848763472045524635954130060642680023478208845220990741921668411073489884486151498534870441115924096613088072968003441666262238503214838614172933969987256911568301318419462123522329478531897675030756520996150435699206619821396668311178898756697306538132505312719432567162411788985324217762013124641251542302761451495182682211912544373370279746473262929876814232692201536431143998205146677185150167333926863705511902411005302824936807050304961707723399922424444551815575022027322203746661067033298232114195215634006519844133019323325728669348866537614094364388897218864004216038091989698367452075171368301099922124151069570467808252465296747638556748243937515346573792638572624923340153058166253195393302683902215089281525897493898981667524724073651557891727314130160622225636882192452397664650342121117240869593653025291095847909403752682570751945120608246745244504282573694871577593842287743792883190030027599049857818169092549250864693037981070939930577486426799111262503592811905738817803997491825730097909387428272429911216052345739294877150805062653094183633391826891003932680455282811089890933160684055990735507729821345913795575356116885162217399465588318592215145314060221016422778311692791953325793153285292283695732043107754573401997158272388657494734903358796705213101464867918607998347286575956109313484165726234343760027008283537252787261407794843236231854769183916725634497651868088159931829167176734820840290836235601053310125331407487135631410640311057258115033741897091582443402905792634037428222817791354001577435618626970548250621875548690092027810527907264898750250489188299005147369062004265618276748757534996117625696240672109347680812300169863952969153179647368325448110711747186338751242518674503029673578628291533282002316280504906690662772411269706606857901277402689430994784665145349491435091439574630153542309846120626565270721943152584784690134661150705246251090779877664466537246220062055824573289217112150589340961769388891390935333343217437197443320165104081541520785433157859288819239035827346923771068577132995766198897060990617209451994946227625745031527143116110507922426152796301671847814858918331760821139143552507748708684825748373732434163216245178209073953760656759636996053990910421396992506056209442406550380257224695623153999895114667797568603306637512751508936844485801725929473370478965793019696364736003156317882205495407610669410284308031161869876557558092152643653108927699270423863748058379115809278087874022986298412219205456787192262183777272722811231262001694057548375846575422761286445283203959145383055488752105891562956527224366524389296694999506580532322102700610299088075820810513493231539129709187882526201975383275224796664452906299297483084778132645451684673887395686221293093708411962187794813664715537383044064681710698332628595777167919334936012811471806282018060337773758371583290881251596693183960288156881975697326579055166382625145754291655352930145897139858955920251034370483959067427893935920486168767115496940111957296525950520636893998836229190462386704132390753184208570773470562924958774093504514306527095651888779524513390269240824921792765626476257956384375428909320886385694993790845915546321089128720705205076893305386495054086243987144094366333334136565307894306123817940718159063356452196791128137288912581833851729889705227100045214004122853521321652191838631084814076239114407614052020902354618936013950276655274286627471981784425921355645587497524888231416182557008812032328568650018166593963596713356078659050533235712870555596079833629936723752250448784946065878253378454156631803284873911071188200287600851075475944238491210055818802090297922703473694944118449031920395083413760979202150585155214251066451169873409629752389556791903120562446354638511366478942796826129827821470885405850735430103138158030518221171677015898776353492087914419621072428899984583363165344254124435953081957842284685159818918585753905093184453718266204462361431178114547181165336902634302983673882245009661554729655137651257303829661903646794837535805389125769405477291617090045580817626342661216147777234154722501965794090327890739990860362950979698059335340160156406581535488957860840120229486882977287518822176677098577660390699183282406284634187118953824811701089727146734019197405162409460869471834874475197958799197547205478419509722857397319064761031614796714775230061726312999031005707841653552887999765864121874566057462524487724584619647821893258778425606982220288800701104484071509618537502822614621101559593666058717401644091630876676496706068543917897132154719654684758796736933924100431444542863645796708283099269849304000532056263668478711660162172538297889926183571659985478078044921035779921344639917495776836169983649444791270964404778898714878128178665829439792782256671194442284454521101898739759393411173226039215009702014999470307830770313500787471031503086785949830521187907464258502788480465700422086321714385135819325313504825031935892952037783982808121469550544754278667200247020574639264906819190824173621362916444312091014814517852531880147663549047322595768655394080395753718844637723636904993334522546567467316244335732323985952758676479556139019918429489965344361265206061610196419110018544509252870356729065980809148817314841302225563796904537199182165034659977322890967588524605161849932541137555979598253546307006125637130738183746135792132319536505942640554688655462071590962902811926855105854998160432245496946389162640398058522126317949625042129902129449291002162703947432628637143590691827042765148033616835713285181570646953143213615234927246185444624561743057536135035299738417865063144673138898844269201362502433066128544508176437784453995184224483381826791688347456563624378758847717244888289453017260584021283853737333999646456143826156210997393271541955732721659355240183437139723430778420178873635748907872357248261755812383357734185648801081409692094637531202715198972495558174074725177636329346757743923132530038109290934407658510814091669848015354086293130643280409237411164350364052189485793372590156586248821795803687685845304030724373442970763152818490037340583118554582984879451488868053716508812560814245333320101709806159779624979787384866956031157523348621364588384733572035624628232768592014051430086486986616800421450585512937176417087723102395187756866894480833956357052841833600349183537219849372203517309553528650294729566210178526534470230696129807590935918612262925720212374100225181039435730398182000764605051796384940583041651516915723577717926146235527855318628094088795581599466807414776636192756744862986159757672711640208861765324228997600383414403876487527563256477634554206078592570341508138585242715991173839178900666116442404273289715370971002749150973520720686978548194982564257853644253340578818748387670554581290415221458894266727345800159352939952639768567161742662441419180449048638472373749590635621755303395664735683269218960693633993057391691187949617586062878909225777353180571515895124013666109736745198479161431380424879978591923229873559114610657626198659355668170745552395070865714883690223823724239815384769821818053775133350934193645964782229273642017689155146654625078659276409286614184658923338192874863571582060485976228168519498715448978069094703696718686117866413691070591857584365120719261262618727236566029643234891373654548683680958519178443206418833299902659865391545504235930374737078435520278872015504554523818567055514389788404300333595989498391731031033478754704140969291683034702764383023776526498150880766273840398598480453379693352095038130930049976305434069617680177907572573990870663307662926524823783296592401637955695716368800735035767131727319839370948981984043183136357892359063176085750916267092642942380326605855535994653910764734783558842803994980652502616004447499982856081676274289164018235805038310067013817323049398653519315695819311606616852380136726582300152611032549114605954255250553645195516609054968368629803364463681562217280367805685331135974370051477255587259395582138109663870836715547236307946318077149276357484447099479089927390307026249281609691493723145536460822800073592624992714433181011370127584167801151207986217422867167843177466203614705803714922129323215364412497678291938635480669392028394231122043312718328594420238673868224483448677352911713057725623760352333318843244767225575942675524038111544569366528602783716988259491173374390233068916661659006114219143376712942957878029600639083524113144799633647213026689909357399145265172621028624857751665079262944142690386510149304929440865166372543233356475626797669638498231204846153130413592628704239037073333516622403664464089947187848826865923584911232080341176887842262987318269464069301169371650593848888475626928395404960056495228484728933770422834740506113124100127368950386248407927196687347197698518722003158357949173149807235448688289682699865261845621700453481877207839966352586437763262616708093243170531902447317329564700973645045687920770074869898839947477179724625589034049561287923995017089940535729531083971707685678529604422932497238750892082314651872025150172586480345355002348837674132851267917019282692719523840367688148699445635365371802286405583686501129375831568397318824365367183829992696458087555723680415018113799549978179890402389864632540603875501140856289053374984252716143291235458818019742029137582035865873983884829997707479750835764142014866534886359638993841071009056913129510542959811291676812789838485661312349427434459286863786411977960878219665533978471506343673761223240855157982828508418864707154095317204983076854578731231913261663570613653590699449311912674140389213992804400164387045513423987515970661796061659965108731940349091378009164336332848382340078687647576537946319713952990934215040309704507765681126552390864497714178562193545463056354577952104603430975557159318981430793439769177482077509077811558773957337545796075436795482663898805976621166184701929131335102067879852938359302218547829994174472128837863142409418799693076303097551327012171554057355399858989527538448362698054491553533773921271058348031857329546694709700849466596121224660948426843285432580285721542030745907272011520847071707428488134308696249800247635794190088671281637820176758258958081758932859976948328052856449682296366654392995475326545607783971878092637473107083769699624934454875703078650168495220423071806972939470108475067371457583247135197989613904526425612167475584261461832705774993683180740910868390690287382853891629652475707103185632231965521090400246660326613791919048411158136178217295197755796772145876114713600200930808419151702740762335249113784816450139740913941190081860571899003985973402338409906731001699456804293103297683049992160225412035174753970863218611704551376669999309579364126776827176333650305625417907594681702279892588946134862437007185619068762835805871402794378177922709440946235494034311804474871071830022491652314549258124617458467297435307483895136389559020211961270287068869923136285915215655997447180537812924944464646910744955507622649877934514465685317739933287401506136393838518800604050149044243862173606900115392976553730646197554019450409699226132410540445475107605729178307509932228612328548524399823341063453862113114372030920994805869806547541150524291455778428007426946583671476540080744475751072826060607996547263226404887407246095421034684498883519719248817147632460686715057175017330724115893943395904086356883729698350891885367606961329105726881826353411329920931586940347406486771450505791754469777967692243172489314636260493046219011160612630275263585482383723306667579309582707862966841258698115642598074644620355945524828497756700996904141712297624266266866285779364774925228523381140882259530843818262027857945716495793289338218417102976202477583663075752871885705261577991620834543495694580417726222519373577877473498168916248392617572804444463977364555051693209981488236582032556134430243774531047785248264419565700192243487788694544725516776317096096363488457426897164055919767935019717729013121361527889614321955968834158707697519414072245470849742665299666527848051223736083764447611385128690348688036664868826916613526859299592923529383906855471795393000967727262949670638684822327575818863816297121823266071257923464574417122389318126973546561077931670004755630505419120567142989494472552368528139551465305098432864996480605728024590980674776623353049911352210558560952619123220360995507141747909423282125283491158513528779090945881773180582943183320203327989316935507336613670210508764428963795455128832328744570087342408064710161051260805985239111977251705043730808653766474355127010595231705322302945511452490400488605875992880452156487221550931277429600457548053526355848555411923849366246254871167104608421328474653351837548832524904432221080585305257115023050320193797526141139119614887656880821734224317255706529775752206440931592510385236743110046863406259153448185785757613046749615760936392153110775804571862286794058141543762361411145576848712795238501466342462081729878318663602786115686516497214722294288495075861835952424019401843290543908534778591589207626627963012946123363573867015022437752889993452218843926378784072395448082575989268910498983019467422982853785702635278379099752187395917559429035367220476664829955454773696556517138075115412092243527664847390346042375625955753789053238517154305121114399433232873985852551514261531316806972004259947549595559063379473283002183514564191664886032371481564622786421610984782211795514515562226623666502328167520675231914667558620628458682955237097301816268156458532023508721635127064714975365095955497578432965096735654797444659314685364155703748942620142727964682294875863302141038867652291737545894115943238552411330138426920639557499226868077902678102623362153828335829804600205742348143196461003805351139118814130717801536473067225885959510429034322329936211971077084357364435866993607269805356537933238013451860759670097579392589184989647217661280876762214352130741155944953965166628292543583304205989472464951530763424707068381056189471151006037524396335401515130564998810061901362557454251070375539288251641037363388273515323170361872626079618105731697082467953375389349178068932581900600295037848624005757376276787344008247529713394241137284751810729348613761656593142193684638399121206262665257391937925389317264198886111724816865450596971340664132247098280677540446193372317296245080639547176997849877859876121012279607784606862940733181010557708228694770959121488107178105311616423857367701400424731762245990463273744833801941044989432808701135993023234359948055516317976821693866741905505846859945469807030055967944359104951368162594101544921193315963803384625940096883976147440803309305959724290763900429844879758470952160674680236600700981916947856298879671720800679914610727979648317390959783002072063848462678274446741447435890372863173995551926467829835340908832519507756216246248991898526763014717303505071050107678615179959540744299237486787242389370465249029437503094929594028258368057765419565284611272975409607843292003841208020869151846168970758920336289887342872913113884084403605007861827485123474044513851902751933162427981673663401497551086333120729420378601317767129205480382431541376302842290249297849898163389344481192459338728324256385642468537844486478939043847061893342921031256332619886192438895431839332475253435120207542507907517466419162962443543605726024028789898911905152695901375025570352060787478410951686665819073927712844931755383709335007937673732956285766823102964082330900420901773312746386956227005698364958571510219653651055706551845055192389796862016685624878479399800489753511402818376057609763180802433194503332308311579737093009717340722335451614304267446382680620028862663982993620690793986961280001515984091671537507755780858155940168647562554334384033211559859160035522639794513357601887802799976081848724817669843560440826977222555965083117503295285543478934965312366935692742143297972624932835919190336764075806858400839551871462983721121242102907553285084194126383353210644386787864519675271953407009783601849948231302839796174108006012507627448703449150975264944418295482221713410871070359808634176988412970498806808544827598066670781676729970379955703631805610561452255449025689574020724042397488300575594561251331344273251217439466704165664613639836736911568936703693972363703511670576918154732975047776478287347350138940178992825115198615597797151503121248886955785469996619071068575210004058625136084338602976968732743432625733636307062614179151977241970631743930409041616585593468292870088515035407113166228671496010268092079892611566619387481096145203743776520391461869218070905266440524541924487389790599004306106345521597807740542918705911012597684267119371278414093685378991731602850940533208772892503510425561487844491718628022985246279320308989922286954470322783038165279584306343891507896931222120542881584337846021073501067963347564150448397854449440221994164099508816240919947939279935116715088768049068287148509226638124165307502687225141285128240541430131876525771366436157183376794774279864451147064412759149153880711333879308709890928627243208860260102798584483975296363185901151126408280984395497736382914524428107428686872808174160440351616540347284355702671319392489072079861611816057272990869142192950367504664122384808286968691651723990291946355235983556884992446936994004321893649838947689026351601771655696915490913155196418915556681314010665687644119719722213839768697383586784587035561147839603679156977294557833329911274340675825037970286366743809780289431674626710611258149366791559922492825287332721384028027304442475107791893323573226114409893892466844262122791681141576062784876577398036052119097999024695969498669734534961941342813770996596869691752066790328791329715449351918741486404901443241843475709578534539057010681395195852645186812620502601192965714211541731272404777523821944636195883750714671775560707163520981007072775547390132648653225103858909203806203785483838603416930625339319565346971425259203008111694222723770797753416906665154906529311696379952585334541056261725299862098450443840050594833158623819720212065504907194355813155056680166465205404186658588245215874097656402940605748373690385305212291500149422258915041951605443295760761406772105595164953199022799857685138132706667549021938509007409024149652541219189225426809585002894851302012606277626237656333527653811336823791903447186775456439955894355649667089783983265603693262870844339590606448825708921387806250042488721296885708522616565357372039644918052732194338548723665090762471865049680895470256480533163190869170063423509756441918917283234280697142563786733538439465364698414472713390313220309876119558163982596243982066139436603875591741936289715059187805271723251621428896717331799965920795110736667225007254193856014569913543065192671349496105613459675410629158623778019778971575715410527123064749289846302852438970539423578946253882913506787521144214378393145861608625870689926391647545197503211322784640156734119473845260635800756932490780463289682275242571382695672985039577567462009184370703541186493177218652337173186620089927625420537120531831946311911653240599069226116131210436159069796464312397620988671772091544958482937836370346719170575452711812133739701356346935395271554791944162244400705532416806017403264334324163781540340625354848955984086973822176579533480251336105075943357125293023517240378241061244122989268173444482684697342682684108071481012022362263627609944580617166567873516315093300538272425601949148399133885554125302411411927571317178421723429729463061132214541284040525010321062724454818224317952878655979408321609927983525772520655769304306960826240072218567990200863889159537964431694763319799632944222752997174986710829415303474971491445827282847713332498941512358465284888147173384497667123411114702301160883788873270929221171002099886756973412389289654343593181941617986069780265760230213462909218421698277818231705062886973596034547081113802145328988845413655431386485316554938563348410769105232686084805988023751271914837466535492109469154021584303661741217041978441030005983404448149719753064266856542703191972648694296234483795359937225581493518675590360949616891774894733320326089501170894252703236087300631996437277644384468107861729031386794651032322383914575940750647668824872859531197345349272711049994987125036637121654967292236920002246382814669705502606921189427525950363108420977624933783339020635529221520307179538270605259339539236182428606097094709009318554248198311311591337192389313557509861296343406390487403514782100561241455814251150734289964910597800618884557291468329167176527055913474320372680950105284339102267386773258894163710953995281848788387170352618911919445302519523063464876916047869503486198394387695247681525437229346352982570741685617125783421339006465094350618789254837412588600685382694490688650095743043002384453567202105686391280239235512874211957429438913075988288843558626235027777578707027463130386008543877022499253806343114383650170395834353503432534505080212867210511110585641651557115918440773571445639790277669676561898114387973543760336587564194827982627226559756545508340435341697803289429736093147301552154859595918736845094821039493702208998013483678509913017609154059579146625694708370812514322647397141219845983297092439181575133787581175230982856169800430280445004142396118641580369425560244545783103995536317294156171357782931219590317271699167266636666781056196749020786593421403145779102316773228450119101645068705841287056717104018105141114229070590186369265474136819135106742562486531653732670482088693918045151324090827602766150669780812953825735697804534794499682409008025175901034333731986055390217494246657507374067100583438207425821489462843195858319843855851983527961745718850941633271056185749275362423937566743954337443557682006943204592999841202899262325236189739313880501372524303586283948769767209688102931326870515020634489826862404623678674679307450722278335766147427731311830677132585101662304828083873780177100902966072836520465742285974474544281934419988750154843496185815911919735431568196891780849973791142566138359647821002515137703896238316654558398862048454240062006983025260342044000515190051417247289524787282441435693394223453813570499565068935787242281362468802249545341418113577899893822506019031153831108166891389966721121482360829591380108319101561555989392728262586414488816103084289823774954330042505663677462436656032444924540471600427216260864940151858774146637890021230318992987056671168583279113094125515423756962415950913592801643919393252113088118830401786701066504517528256359515420333659076731720850155305645519599463157990824416364684314778247438132203446305195405732558955464446686153783551599365880512382723742487023821376535114696299739280596454086843458538686379915317037153760433615402354460089854259178586416524789060865372362071023457296527613775166181127151026503444100695814887995711000397536377697459849649489102483282935016874710842635798040711158328188620531456855353099663704594485913808045678378279868311407617229083761697487705159562858518467369455190368921368678426726129016950924975906116186893400492468238027809813457569108827272930623633315979618667179281785112128016920715331471230403046884699179453311089202047730920320693248362511895630261682504008721860396137357516750544189391142114867114073609291819944114786291755309563128118148278633973825569822638297188046037085663906868883258536433695092490138528005454528789850418302588533568015305606125402918941377884399049018789985118082688869497633078554827794296665035925303961912902229883504104871999421486763664646498072857235223988187256089082247293438874503246227820631080233309747890663019765090181013361630220634836261793397925990921706043541100637505391968413426739622781116631815481235259099699689308525836450710147073303459523567416243231425810500147472858653693224113030801877901230954991386489749223361742600027193153965291053501047890341231479341804565041509849185068077251053929075146793873286177467826094512381835777125292949708503420812602948046330639879034533720240945143586206124155449785236458255530108792378743916134077462660647299461294063529522752660069202973469087748349755277720104865861075427027556576280562988255329869045039051157220156406631512033086446593210732728783528264069729115840146908070538846811909647644788154655228463200193520779379661001921840885896806268146852726228741501968764294612080539108049114185978048160237431533059436770686662736085771691783065036900692681580795238563263875792047958307122511554298559913112166187822197752848348158209464133570929546360435904157604488523521805010938373412588873920880112642621695170725840698236208205094262682712210105633338092019680781370078752530859851213195094254788244836372393641356974362502839301566855436816443066924869290135921333679388948425173467103584110774081742022785749413857643523577301273670906245295814022284301268947268825710544370494391069374808461497233911222563447241591251245849555947254271182184162703772825726995149912162331768173760586190349844722270453086858758628193166641696717661959744562659526085663174149181815515917431619487992604104844514433476757930279707414251785397665093732842259263849879522997448813761664641650405011322298598731553126126777272842652439885782594444264711907474820451479125071675567584920538995534813407010098599436239485991278998071219921131054258541563669819423004351430260015849646030457290289212002485910660481806394529909810930319403953821376005469423572851904758153105717628810922352294619755394992483383451221484543936463493769571150903916037200310897633956539566654966531908886769850024870193639682804108952608335974116023843598566337051905820212567544302469949987611010334446425547031318486270857054302289399281183329691565155776509589593350059951158052649576922166559266690732862564237923226471017147100780144186294072712515630643802248524967785451565464099423017564513736670965162572139477323464198549256475116810418904686834794894720764088857109684504489314479148569067281258205846259995773277680331601191664310519193830207636962448316304691217592046233541696172671089004688834788949569923286561336050872370129148733402199784730867312700772153375310264567991999634001860931012726747319452698902257683245910806717085865774988299478600599319444362056262259968467300314636258123039287118890388950775121741749322553504264475060801954290561117714900975498727182365826275258206001066019888891071432873617293643429261538074195327316792863873912937813529003285037884109851787018949664796066081248419753919234680917742877623939729806071331497444183382250353335388299208354714836100605613013079989070832298519451371888851438338159711634933679724610361484874819896373389165959680430654952923636487153157862742607734636750637158736607493122177641193851481930582236070256697616638633701509901564888805787867132187279837390871057292873826725663483056333912628545597315467416974175313276553131863805091912995314304585523194121666282060560396041989641450356752860183570516539726001180653851010268687257456184639831917840728802412685542564461551968468128092800591077050530548729765315297661438147436390460724482428717087201268771303907222858296628467063427221079497869048041764282260869312793359203765322131077621017052586148228850553418524533187321258709631814005552695754950653141488708876863327321456032131285703664011004886481786505074396166544882103566164707976595482725114123663729252409223776368483261621651013982093902141177143345642698484401857682630474846415467177199956502621714154844872604382931884021895363613117223432845163519281758780596802617016308295086866711775322959000610611009954522153233410451127513474644718649889416537862844726052224596416061732004832182517308856677459747994364962569917474347451919028875945657163059219442144813470666953869881143924231346698478409717549101791880178425496431352803899738936112227157616657453129914771677618103062545121414687436636779278888792276441163050940264155197706175321123045418059992555196254755083025884774069072433395803618168641663873021128471440758339302336129317784775135153545051399613960239325197217300312174804505250059481265924014559974791761598000539487229851285829952495917500305087163041567110597157298178323330567787573662052036947217035139078035602503262760187039555214519982491732602838428707260500291857635306920691883383096635438640616439399337644921692896257166996038545029736161516525917660221344072911249724094251690384650945976335258314828014732784883675430058606920186711282086572577328764221783438076360926062744295903767669649143730869092215718358364792985671480409362168859422230622992203965334054223891083764902740519639431566713214125392547107001364733465808924272000381043728168102317764456268270332646244384979466596832005024821899747938603223372879208745393539720619074135247279155222177021137810798116046263178625146934656821537900453530814278710429708135638307990782538790220435814399655036562950786194494289712507986832582500136189595989427966322819056139586316532639544994029005115525570780229552469512189989965893924633912871525815087498073244678997467865034060860776445195748368231113402676805874169933932797754751587734629530392621874000695132037384385663324971650311714162589267204570464458108743861279132033515729375107871266497881861898903270262715140187106241083863278515747015343803495573185573437737565454107289685555522794805435286992417177103378810866914736377886406930352522518520782781117694531283665056485472361890665957824781328898840488820836413128774030073075989496131669953752755725343622247863165600181248696416890794465836216142480029208738902365890270447689274090954728970801742255746928071383807484944665745491111842604703104130546569901081758523235584480084813515790939935860272481089514699763031531563772401490038196780777905286293464309894914359490803451545064482721229465734683246837165248166200946016101990439985772753759245243777811210673212078319532395928915616894103898136435364984714817752011054835500557871698575958436826172174737308575377363409657312139999278413503249511549742410677542819918500825880701671160114443819706671781097815438483215403900279910789369853281958254194130696963142417064932535168907552112487075696884111286681327996131194960740029349397039454472793863353742482869076209392606694072653404849277767560206579665022520252724546040278386724369696577555371023950554498322365929825383368460511035454796838442101216140185331501241950214565550242991134387001536807107929570787115224704276134083190285745600336312428495829750393712499278445544523974307464115855763302518565551050833335518499681687183743447121257280214361080671748583309458912806921756789272550992172969529968948709330150408165537170812879837392115697550488509767147470328537916850992942673275551524001296807655459716110428995234062965041181994103406449383335524991397387154424231477237316115808769003107629014014104870457690566540297523682911080242185956329630330267695964026379699100693785870907519184244164584257769534875582807271375508596477049825306570116214858324144173702862720787141908944404776332246776649316504968233780578199646824274506372252587447589453137535356494546151257397354989852016086802672165020846623439656554821141904395252812747134620475694989544268900924793997359481387346654994614656339730682058082616118676546194152651987993391202987193330652825879215433216872055775236723151704020386913607645535185014462235577897002415784226099200907111925694513149567403104897684893736130267441143061200536643460491080244579036532647096493336398972982341956630851565839813729283657153168679493398198566368746776409446371239332158999406767077619754269022847770969038457665595942379424926043240964104778085511460209896116536072278305595400440215827699725578326044299642733896284688039563082879092041627498147750472207520506008530893762817557885163964442462274425143783938474745735163422573735310140867527217266042483209926897537048829036934096097593337780966203608199786479307053560240723152498121340990262099448211893541028582388433508950854702133000727980132289358938615091358786109677456750447337789120000537713387535699040595644740831014228630624488100336886766681468064012471813217597758833624257264183969305232808068948156287549606829690532728764314510162908172748511028465670724974242678180413213089837645476977416012011079398235871712275425519974641169910893363740582639351978532139765779816927349168853468691210172531127467505858682765011496594026527056604867484133849411874660546713740351456105038004956216157482346429281500241087515754334724359832733638065518533638156843436127394979743446945060895689316343922338923055862488469270247386810620480893860707673304918779696349999961970070626168050487702109133136419802493840378598223833430249615604577729244706986036699827632619893368871931629791413516808819204406743074253066090265404002997170631992080083679143141024545049213009451294508441666060638493089215105631067313672881815965988703729839908396029849227320474793239880395760751481609633740354274338551451506393045776850562668431349661193034557524531148007950697785721139144514158312911118214365823983090194120379684893274362428040331074401901761569761623788398635977600945493350641715472023459261779588766938898018664039076444445321098897784754684904659325817629042154449431541035104103599080337581182833793064807360079920247627596297145500670228319505637384089124100166748289408827114804777585287768676055905037419960803163827367176703050603719881559133974160473607809632668760089554887897042700809934491866782210687344247093163406863091952701115616129724001548243528733538550256866072236000440785179744941009830604415605655563869700258345865727500634993215491470090013171027869058514049251385706428259326059718595202029888317585161933788319325374186550819561834231924713107016351326428757713762510123465260185281245995440958052167057417105510669133351566544910432778867475952143413902057961714495561624220385188047430852716944854385655114034038169013645692520729996360306490803317239078322930189482263825041805409970209263694300423115283307536718313795186960338649153784560295270505302337713132421046866279488859011100425706622454724475598855685135792631045139699221320233795203300807915212743350955389006498505388526348588009495598279394367094240943215836595960385146941744252952619728619490344336753805279095208138219542176120589317232822976909639029121681826212543568644451092677228212189754450442357564037399608039626634021142411040505841634016225083920608243302547572017734987221435199235477017760847048639206244367230363201989025719216829933979321364087907935183302238215487497256938388314042012438670265521162811672127736367019059438471232999892318400565118695275564362525796843734915712501591475084626219751456092369304460808021834494793281937788175716936791667219326604735090729219188912157280666028859152410282013610432628976549984493632685558066635977195104141896173991943529222287323560342633016793281298406200941485552309454904016183115369843547972066338930424578774794659233493097096192134739228833559381287503121428222356818261005221872119428039201177137348312314023967484445115907078283332708078936906969602325824973886572676397186491775399194181510773893870668445361444796839167824253621198950944798379313312376280904947897932876427776473284451367534636822212241780705705353518286097165919482405710858036915475922498963227865781470062229923253613865181498539031364233965684609556072971388460023450379482511557739028899805835134542634416932340220954246692678051276032574143506630506683728533108829054429701295447338886447289256009993982834421379472284151123531505807810965518545328250855573277508445457441422970935453736198246258075250131324583174264426429023203379172068999764735518573928081540110366315362846428002418215613305093394383486479142067377745741256313033068215154247160845248335074152994602678329485535006853785556165427366671788985762939558239579003311965407286267529599741885513178289778966943899164448526968780117478524143098202597019262449312253251018153994633615658917437153343250036213630057383192209674990611145597938275322166937335938111500793316001079629861110120079305259074756218009724602940293214526229420198725584396610001369988612149909245086814336543495683421428327562110231433962698148808020422805185435486179932647745882178328882888077162244603626161618939295915888539038785973066653542076202135599187219576208956760576167210632408785498843753366763547289368911940826065872255563328761224933866129756536120095401056631517097065399021181422882821733688446614896288825354919288245155494327102085242262544352626729138577937067268918724338141113917780823763357446429960430005237083653415380778628540410700380368729009973110952291926368227301941180100213690640867426675336305457201772858960658531358591986561513672503338851912219562555226934532605612924426043674131907740421062843226540439274232224634565651862678519513268258676527453306745945120945525227535384552543840561692065885193453652505015123718636910706419253215637833958055249895896672264831302714285070017496497887367739632255696241655634793713687054376942135492229777319703879601591593179307603395628603374144545556741594477530075314254401709023591234066046141461920363303865309794116947765532675445690397966592333981371303834558377281740575490536449375728712037824845926885608859747461474234124523208052585726257196697319394287806102368693871379404068071215841581337172672448115624976838217566616766572462563869779121687710491445931938542391944765340531689670269873741857264031054741320757768628844410597302081474660617717622473553148457678385796329851395279073158614849185060290475470134070115896461821902130317664933372979189713687659779934197992055879904693096739005362210512229343780094005482454564105784104795209520473039259273208027402134984526814730846436443525443607164217266054320927447214300845584511231492877541778622489867844506554455418508910408527167967183061382392973432842252560187779487971300526741232914592730604790490207557210075055384421414270522868738062024675078731109637689129644129181703672065563506067041969366737265613386195134999343117741380613533804797677232103361314578213783116887347296035093738647405134079813432213479131207873126947593991095480265007060523123666362151693061146592488827351787753627617003257697636958841606039784662389529641576465576975141906338965991187182285415416192465196910643235683902039947975787156406626587298128659513425859975771369466807244356619698349169738063154101619264437437317815640348722336112143839087859778184780476629484426053536079749470450917835670063130413658861594784245005897466689462722023043667257923073461097651494322628263629181278944344969120289764619419571079394584454877763850945948868277880231106395896887690961404968209272515267197808128377274725209604241275483829919807664193932379469564604607061424281014303699564313670496687704220924467179984848032021477811668589612096277333298704888000687094554015990057038489268336525629118656267656036230517758077707189884573405524689347358958385003800548827895583539741328309052182052505708496007229878037019262038748468498395710533277803379178351503817751077931551091651710293900009655772412996627454764217750193466704997101941893960681019688462774436117886641073245282743470021614472991352526110147288393812411952979738870756045919412364703906277613017173178688854401370664633132870904481584563773512124835762502976774939177382513346975091216527200304277453680153860722191559987592873014857454771213051057990159366497768272978461792220223654672339835043072860969611411323916542915248105965348687599948699923349262396302224066758932334828663892955018390012493892184781257862437743726930537254700032110374963619927055751600539327988201693333611251973783837231719782356038333760063329750921994245828503312771938366782336218229528628580637755590687256350118359741561672147690696449102568121064023435933746715901223283890353178946791553414389534776095079160276987124675049422083868309291231641020267237300397682089465709092635844120835273482192517865352503408519403063657883830686613924568137386161354415326913804608847675199145332982563714232538286789640315905060446977682659132123095168302551809503616794304201917452078539901041724690878995143026916141947719495043687461514056363529779362716605495434325177693334078967699384357828345338162939638580270829987407885603352710098817681783242496725674605146042997024449619437361895629231253614732887843684274189332967280353612468760415937277114185447134222521146168232727710799185139791520009807186602525415043123166596226862256273975297684274965186438595998765725798006633379283978410502832686518228924462346743145073413019313365789370091375011939079778712021771399046637069612109426201265242103011802093214120201730702306129718217358194633267529700400986368005045211305195182363991011317289595740663440131766390744457299691586552412984799462107444096321587076909428679000596401291578570662432078394601590509151664147675473812257440259985303629460171925345803922037857186251872356463817367808677132913824340342832477137538245995394296564329673896854939657258552907732157709974728005198533338897007229564315855199915453477601153442492556451788856852606233390120638852016306328694564327406490910502414966167181621033793635643037299191662850270922715676431532941915666689389314631233403242942077441391294234170092043920764556438968600936674293357799785826977620694350065511802754154439367880466800364856182872509884971263510582634400349140394835006174945954210981020050601564863565950054988259691589660930570326275632989653262467431165095101462256912714253668842277725978517348393732216775408076235252034860111376743465139585485759820651433149327356704910966212682344509811405183857204849200864248265394772155773922601939033428402008835642470170850348208676708027124382094166978977949361109936956599805612416085109993477094365276718616883349339628569306948883674061780845469511043923509216041038166324776100914713929500333180939258308743200555156271163156282085033724055944082153316584912092818320821931615342390315494986377453294973646601917821278677136250757115395588940335656490457786443463719067947973644848777472830701727181339393868831526584755348868669102059681832459922652481956049088010491655673623178962121208638239380042008438038825794548656155039161409672247971897888725722453317391500405558264945936820945215523135635477939570174887813287154701170355250593730056178413947337893985627220254717719464798562117924512554520981739424753048253619085252723320267899345493863335522278148640175949896373152099664027432367805956284932128586194233265816913615291575370120059689273914564538117468827472815110697982540179558433775305638441272709075580504292800967041809059648051290395902047049242851272893057155821543946754111418277686320666682176438864419869444802099778031536379194935153885441768841588923721623427041283994132864540293872700801320926579662770330956761734976405595181515531068956240389973617883764145261716013575822565320454731831947017136001845013471468915301962429779904210486786995645006236446532709572171958255981113378429239421901843733966285146956083502373498710724148378736396843001060487217885352364738169178705289095608881150878913207588913000149501810296474502039391789166957846270161812459992352256555976751422102693084686298123617093424710507405457828651398599928241444916580301289148127062260240861697829038620841948285010587591636513334879164657304179139394527212678962127617138229431530482008420268811690540267919911314395924314373206299636491450985861078777946060738673668784032156773196906675589321507930350863016396642719689062590564656325952243408092190600360027833558597216363048835252284258404235216857643673602099164416481833722933852049151758489152690476891815076748883253903521439194693096440703945878197131977990917475213249780233811599727821699635387432751283314331029630829847980602148597503197387435204559046453787011948070782329097678993146797889249219086364884231057219224601228302516782183958370911398139846141454670526031628828502591057397473655815598561839820578917431315056185702233663910770891630795841680033176060442013091217391158626545493213801183017428386545398434049920708592866100455626660222706793879445700106514724267791196195717423456762573448004475747193112855844318395656837840976881423799706192577755951627194352504571642368074510770268315487568980330349317999488397526617053190827115604189860778148198739200529575456590709293551277547552110146489429950592918293903710101776168053381874126936367772460380294402457729945516708461902716400048307054128504409597218277261164341882058018588703449940002848817504538136002857158449144054764188581331939378780882924092011264760789383254340192918045717503956758804902574439305989296464445169543596762647521745619189373622866633123516397204526914687882088149542639328713358820223422715219231305448330280062971096384122242170917307973924541503419723711037962210187609547075772396642786189848919672834268337431069386769037535640282218096157169409670290479829499140618464098310237986922997649449003648477899616756792310473569138046913708931372403904950077996730530251177165958375141323671005607200291441952364730965302072253631794794294979566109598188446218551979014661304531727698498370357327803362781096856751377187204944395305456046577825456927242245302754497820770515410051093768677379607097166816259326355627583138224649694127994931088429489751917702747861061897209383660106520828396711955732573433398053446007470720927682350288162348792528787202852859426870259546141304011646861217646130608657725095984352205839111496133341223062688492841329619525635764098302134484976512738970302473731175661902449105770861175928375550972007152159335151711901513795014019823832869617232302510942360314986711966130488718440142456229465913070971480698380001546716961948305441317461666377713461590904914910911700863175943013900411645921491780790495397130732108991859368228974764305335895755197005959465857457827352240322102576113697011242458772796757018527697660222266578508696601375968184015925736378956076608993986199942299868829166680727791762346237627009088898532168112351315883481139648356212960364949506912352349623495653785232632590878129310895213219776343016526187088010221868350558392701136065103871115614476074406601778082057810154872219845241130695361607280930323595160629093761761400617522987411850848446782068379284505882595312017713598250162962181703427634827409160848304486205446317782219769360948159035726688538454086741375674697759024509680699216894254683677776475894196541521274712595853280128434804997576612125741559220670363336758018579628982192595083231302348695633344861906812516433096557817660318788855906290850935456281727313250976798939625941057719291474011535117906445563650829339014340756756284434034021891389459566232867429997081344774184528712177864817894588056919554808746295874309293238159962362348852521108296455053428006947839777764836829535429983563442256626750904513190525509993110407806147647955218701480749359634189802623192006884417589051265659639921556601108832654971485194216206084618917579837725488190805354901886994613198376623216531752420650471263493032914053661014138375475664209937813489041047713505853881908941097445962991019351348936192396679834748110740650689345093656389147429973432756842832779651753980187604924102027306552123831719660291905220572087392738221895590645621340929316207935598708983418412280944800136884051760598011278987338045665541453970682060339417635589810474699524167930967599793636415729525119603839960849489075423684102000498251048700621043115983152208528298633018416449856586981475358820984538874832377324844148638960252600722083061325147107494361421667087851421111466261132392086186851252235101736323960703918377352766317719122686071255382408921985699864273793562143368067274323619390112835980183057024479828895303499086293432571184863891806077964897721211625260713270339172334680305974794947729744044462829835590128088308618063550976957500439227463097191364471777345309051232159076510157462696675537864713808144960407730132872182353638129488060973470025436861964792357975393972530329987449114840612266554431122784819452277521321407142931053910636696892537349728719525964285941673640743717490083364295907188412994447211044707969501230064944730312925037060779392375800565761080886599443791078121514994744306642813492449371551071318933640663254159899170423619055514714818714047496352610402015285288207471458289809623746431694632723642021819775885919333911805825709636738542879332686941887195871091493720669762665034234200388192511439624891724875278514039400782588581615703485045011512983750888404693491302786438080324746462207955299616665084941303763665038623310151867666796467534878526509404592570569057984108505819605646144983477900885960822704439682208223172690269536382969541946945464027033910301615488612281490836616588395244712186306920301549243837276774936592519301973441120336858119512981807928524683035587768921400418649439413364323153034283405137037105709763565418134327595669328192582261139694058914349585905839550556814734216510082786095512432355745138478470461890813882029846401040744288209739623054108527917515633361785644987341810843428214736810473002219291184143512424560631640088693342796308063408404190154928675540393909233987519234144366798659942190513695513817557979098625173270866542236961327747960613040806257498881845603584231299645354414206001930760553986372611441628450310747963845340790583939590507068012758460096485441195735212870752928074503342147432456358237979844407958767542235804814803613622775999888537151859912728142787826507318960161923276803032212200780575188844854173996652013181604194895527760082909138427529272951046651879088404004484548153209947996102522826686757162427791346827705572402189930088552646334344696466045369032916063976879864791522970974099827217579590955920346945465411366631825765808187381389888018637994760003257101090160342084966818957918091459751831735203386881063401907892532852815989473552038576924771061014990644488030273619052747369299056430973707283271510682356536709470728271161078854154025136975874930861885223708350501996308842212610667840523211349810501084908270195208315313864703895179297851720852517251470609693455899441493086739945304895917891530493493837913979506620388848362354016608289252133332092435792028386619606753928836348072994741981538944812585652413302227273728916947106619964548589318016062889551674064510366816372099777684003566588996250311713527247531084984800928915808418117311553897641524007873707540178645539648789422679724566845205412066851291909023100804943686473180296561639386074534024016808328558507481058203115600058903197012732677243808619762518180778665448835894291811688325479474148444813902663105038125264662405400902195447832064773146733851263814343533992359325920504632336443113099560690063983585857429944210154186264067841784317837793054262659164045523686074423223429092597868255773356414212518072150157863077270843834700596687322708183831576658905341066713506259214746858138240244140978993892739817998526636694498000915916455335129097376786352692370595775491327677132835930650281073072897661793585765924575579983950517103496539501718432635648762922424584197640147638191255949097694457624132698211998524842312946461971563227811929499004060437739963904346940017840642850412161830955898124625027067143813843256274662228647478204652985225862218520207289897068136477861799706905971391980074725132965970175257081599729972779729968365604494338779357943621495122839619948055027001429712364644781397557440452441237559603180546475653199413697019016644953356182354197852000279724878552591076978758912143090317647683272924295783142639420726938876259576954500040092357077382636144385621609679814314394943179646151483219511333281253807087988950364484293613215683135670090822833965568391800701563391938685540599773578429726769469432829622682683992433806789188416685976727812159709818094984320354029331465738543296167073410464370278412809715174732880269421237571688568514932922059602289588012824600353290890985003505343736312916522986497716872151144979939558251255218100401242679184530290242555945012708199486513756304071678260851945854018016035453965859557157932494049039756601077789767692364394512359678120006987535861272687303465609057832837205594696204770782883644902501394180658699856642436021905561325383421872724869286380530362083405524790496668596652041223157169869664077067142818780860959666329129471558220994760246911872570688546720361822654597878582193375307264361952276964497815943886967414736043000861571592948296446921564318147199300055036322468926333603405136795621400946085465711634258208362932637879301987452863841500275761974995512967164872971292166880458933752282623768144685284226332950245785447068234734159929389289605772305513273757645665920947931231356048361259462885308928362119552041578032538199679284173314672982313243809062734261612759222957522643062445473683986519885041163079974203485837103435823676928563872134929492509741756180988267559663229176472268804906324891315722110614718935927038012212296354447028601037710086026240114109801462630776522409676115038154475110389133458494543288013452352198383935556043552744131218002715323728984343425894692695051818351446232501751481671799163778426554118582078036347494390293483593985745872335850693911657937207492673067803824600657190755854340582872018127663687160399559545300978616510618941297866407545863937426361698063066962411698118926495755895783064460284870719086902453953779785588063249884591433806282226945332697846992041763098039448562284132509330670324656383998869543274250697086521932635479278260080040480307006361994733499887063977468289841695253879191112311123347664528894215030867707540689822808100136182738808832990566847104738860843775369359600615028262115349782917991712418725621035803532886449758709764358708695703190721592727931573393709926021135558567111979039217031336362039128747860348449689003849742452820205084088902032540007548001459766791361646647799018260653051497215787759672140622169035366789870015510522097363191661907080586759087667095567298061944558948196729922674767108931996404202093302917703857868049687154543199051069979795319154980820845340376041189590919327734859576713084354951177547395023174161623092446826342778769068653853955275536074958595841002474534279783309437244029212828081749557542116168459289662416453583939756973248564237959475963264599326739760980385945336798796644060415334461041925272507735838558650512191296091805948416433246511879923206680083762335446071093836319987521916002849633180514534858129251699002699005101172729573987300258490810160648894688523831434844859379513411491335028483819400480721684101401128359173031150164854870368224310127940356114059853608383936754593209540502208275841948395958440216085697352857475958669522593944612512775017279824487985624423649150166142410946410857114578339992083288074297634030100122997139144186675379992545201938375303961396444015153377671931003984578821609286073889320347628146499668534757236923161293580100649354129773195426831788088070409417744163984435387862094227283744345579669505571489007124254264275413428195628159963708312680272324852403088864963075188633943830893621642284204130408187024892512837422460709636331643618177882832931109443393045990132791962741561743152762037940764269846630859843966651603823105187325071170816507280917181115747501971706193519741469741995324806785148581826184068791746857583260640962225899103731962620512869741425608906188758288288524615601894221121675610361764206442903894025052532181642734655975648647698895458760333121491890473108542148663704668519576209535712600069077770823133078051718871547634609659849101851545863261486940938999191839306166188272043647105911392087261061664687724060611968811774369548796287450268299873746476433677110847612955994897063314829724950229738237832323677409164313207667286110031945176724017785538061694184258210438101351499553392139355342760902582055843740740730313224505588513636809820929661504334639375639912575350017118191687248380930420069069485970831854978368846628788854303852769106155243618833529366891291419275297507903147694363196937182661939498131654703884261971652227109921530858748716942096151120518796431235168007070629001995475553481555239411348365831803631613910558391299514407421918374001589399215591180042251398146332520060228464194599995762746228762098408871723450147951819678329129419998007183077521973518641005392098594777658098263271675248713659552803963270481591283804840838538450623378635285260536557126243871412910802903809896121616235915191458095117582424685021591741283146560404283915998377231224546284371140942195083340901680464337929301632501570545553751135393094599658961245900566789189634081150669224732026071368243742708863242807914531563590156553612835395117522927462730978015156645153423736536619216109218110527205815210062357247296052313892260929298327879825197791053831857363759443990917471579519833935024996631720356272897952038539166061907885247228562103706295056137104437992502995729060276887339017131419403106613285521710904921507231973266338474149825469498914806179788397623512273999291921643283975462074623936907562837390712057918498340518727138655526439607973355599615260199397611650349890218490355679057093686581114142927638902136736835054613537761767370175366859257156086749002295853439696799410079167252836528545153001877012059436830963275311538364014179261917574081973840228920618297107134824452849484728980404942859541361904558824368334944263986107538767097478261671314072523225380919472171301675917157569981114399429415068836786035227200235493823910388041693273548918855188813748904964942562881993234544742625058313235873116872784106934840889070411437133052888012939140348274461357810429589056110263129062375829799421294877840783416413463043794403036087758050529706338668459778064701717707187334040693054898719697027810865001806543922722790483613850636043265068673578860501838396073441980601413710499507448302284820101344623179339098407925162329930037677042219002360913694950109591669309045856956283199682316351617819946130914599114836385623893068367127514004398495653069771182771500615579269636987268079153020998307870215628965408708306883767225109423738612725306480563832966115760400475311194956314209321050400429846222014772358807389848288400194374961339855460335465897112351181490055000333864073019202947216400758313488192024250419918837831353418893542255299088856879152710151983430277960267126094414268104651974472401098998873328763934707447880358384431614346613538665600166844538365398240168477672533669029075990202756535699682812844559334268596384891127060493996845307718582162542572232330640257081837507529165281845590281644518412714507772138885032591998922019768847721809309279923903332587900955531288656325368916447393616364041534039404518633723303868308616940089969262898363781710448206514345041550543669405906421523226386211470622152855191240947192058064610114922962574413882057270809014382010622145154143912705679273474170570765683949902680045419679627921015504343857094856841310583252921753615330212785365750061566313190223211403970811058862253120724637065065710462154238384931559775652982367281293035425393050219345424940543973152475061991320020455504076340761601621392674459279772254351922328778997601499892817080632962068160496880750809226771215649163731072601870329136570298796422172824907195601627410558903040855180800976686051985781332030767320353830820666071258215291628811273405583629144671593121333617926704415463957855696097077620985624893304521542125065483620441500034664765968914444992442323233936188177964065416734748298892101926868799249584720209385442625479054126519185338302083785241059274572291868425710822470122184961339754224230765743204028230000509973097003574941591171885121421779726766653787725887698257310474078609406729567306569234833760261773199234890598740354254546846586610655146960270760397823752756078105985761353622802137612130533444644333233579456658170512134218014747951079253162967403491682417815635540010005093568720951888734060741404458371304020321263736555641745993615366214602673302737195351229208690290026040384428551243361076897747251789112818325464001921778193014987349992335568391624674199421348251409358304886828232922496790100227112615208428458158611081266056441539663846601266401365905506578040324256623196763045214089948266457918285771085557062319363005066547646194647402679507531673622088939922855704503179247180158829247668882763431181300555205711012074185157377179750024894290149956351721242901224982280321981527549000300605139105845355258505502904361541472190285660001340336680909581323719357694103137460967652772298285369764514309611988612310059348990014738310927051511536348892675116423358688441802208427258067383354942898769421888065582673913328072488883467427692251353191661621562835828653459780099051449161108995534689871993943964529988052644130095464830292663545230011561077810679131607340902321266338093446295615511782693122879228643113457494065102255990618825253217295433350967341714663392081185920834720151760329636801730150540591947648617920983395275933502527029618654856686901375157059181567342519391933321201161104215089144590092025307934871276151098039318427989704231436441179426703391014783171807351652874184844165709128891367872394709628400999600048575668286553647118788611179526475611702194819943811781204146933567154059033516278149732240749851443492188404196432064297805673022817415184358138406104127900073604081650139577250791945318226250093809914432404882473577682121760071708928334035326279424005999189987138777641720203292303913595449607361508948559802445275110682920856376751901930654037601618097604037605927312719851419635802881157924767821955080030213113652967799459647199308241480878607325730027208550033247880728954463975407409106180862330344569867768217455271273237423976519176224006252011559286920850377678909937951203854140659920305706163568140145885797326569118467020826163561191299957536050340807505265633574330636055167705387791992688606421670669498379942705932414518487722420092940194514576644780871690628496041596623086980838626625093780629155181914893901941636323375044666329217055099880523972057169094850749122713373865574384863696136825592059489290857113746266392285396370146308510100319097500405242058768964266761614940656929727321960196044391312964275214051933377582064958815823761877411367995955487978035099549526962481180265048733233058188224302388371376988417666782855901465414158293401012119811653304318762575566818205679425703938642405242307814752894732636038095106956933549591538457979575265321925344101492903354168029584256850151691150010264297088379850315886774424884720729307890661538607219120279411268688445734039037208363539981458197026394243610058398011311852005556404391869515795753041193744620691944102844025232344432437897036744115801976735629052799604276235537978198179684400908356611298994792604642860996457401997772343251637004707375154869271999002663307130323666234837487154926902650209932769230821074564839599842924265550945862777594658483008754431586736689907650045699933866866071399014753053417028794148759730166238736338707152464709079190945806858925489759104292975586117298909739521393206095540363831472534964679945854685155210838712821704220131055327229179311558507311908817748437688346454076855120688395413088553935101900512666494670805993137972738396140226459813189436865960140782126336752476242776551309400316979861283816059703146212212594511554125139749958228156221012664472244546560881551741451736777724062877639224267055799369765539339332575037513408381993367951686858722723107350179837843450575843814722863265249536712906378138988711495833744922813944339604556634419020345174735870273945418059108858334256245405124133856118561044034121497950438010282168767613872820190266946992463914660313163721364889139001368689299455857440539412216449908497917266618304654120397708042713568338687408803420687011202156649923130319674992825124736243408985481370172217646398979237881815841570832317602821599754628484625809977717876653135144252359701639915192530266306639951659264589803451140999966742479522897767167944936639018347764617076666478912763482387140722556336591494053409080508179701360655106924464050936719330281104195653569719544567608482048365264348397322289553379135521912803312359990695109379721091983867805517433943328609077576746034078102700753690857180404089234003579653239262381618467789269785148789760235723497727582415560518724056309421647794166943417819474846056097962072508648353476190156252573261953329368071223232959941755770055936108163701391824898764632373017039082858383609221634679296086478447920631790073883568429474443803135391865248845083143919486915486944370076016799657130463030631313283160522794843023907819291906312013571463156203945586108496099933223767979756686774706749815715037763989107917956767972451687249999358105529670765833148116543469762027213201141442095013017150873691479264918507775303117209450711990072233799155116837943121613883374429610629352222821940223135334681335548056892808058248703972742742568964117139920305749679438586740441718064131024598424557498822338447213105751747853233628652952887005763149533496063378157234858820591737591068369525757508235469886327404321898883204409538468326191124367431335236426396585929230003088263210334325322778227213138389144099497690308948767159296867301586499459843797791220622189190223315257943402142013203246884988694748290760044052158644849427263227702066648140965578330652733499361298032255372792656711492299802327381297749051131612781400353095153010215869370019195651019168162396783176393190862663014528463860796733650057190507377501809902668780037776474853814922189610389024853920449884560808970572764973423418864314060027381314123193747378591858741505220853089899778949644005408119291998714381165554951023299298968288703830777643818318535342630541741231839799062485362374564653358568800770702912536238265735344817513704799770562417290039569993215635313707717840249530379234669088432801770237456728756437952210514628595788772262789708638534636482169511743812629144524589418376395459810767675124803964453544894759451072955628966593607018306668994971362973967579216213487847828287087103574869692673669459829399296262697757066535188210666187205675422818023800933010125123824499076612544995540541085572398003245480489387528202611384034460711882711924471103121267240700033734591445302016037989704697132646295124049996340244279100323142290408909885551384604381861077193183999897188045002600364670383915134258602892153840053597608815821315511216954428382070135105495609177030714940340162298795188713648733647543804867236457193899571039621896976950954256567294393456191657605492899932806786561756113200917048536481686574818087119972882604851910434653399297340887870902224809226941789540565631263055422826923293558171885000816614566965805282219978401486448702741092810746454379771421936758929974549057292357947632882936513088630797970552578269729086384045288224230048497345675246980413242732296092605706512882396918805566119812420749763342712846339433624639849890883476394500703565650365820854022097388440381794493029099567079178324909437074076460628381309491535202432903693987551670159335971724075219058599161230554057956045116950740381067235468999260328143343992054562008351820960279111350128236069581354637679951280166001752589182317566818625787524099601737743204038947496217179297056843373494565959514922864527541447193360387368535813371284206864695290073732963782827454397647020486153876235174044590267059700714463685738456892906864606807001875522704491175590990214649128339167814579633961108741286052283150428289722367804613141415396856143781401666043354098406188819956130330864691648331631289855321515311366841305360643504847762132912056277293213531908863851646992081314486005822164210059724134684363209910118406898797974788262034558493882783742070699049268585783105063471670744554903449285672164478342211039587342575621137752948612936785143166962155610376667554945888257167913016299247816840527303952331016490180524329972783921615142205690586515488355811906521074200744927015207619322451319323172357393104962928763674410369190934679662874724460562904753226453580103179837612027113564547857584469994996191179401042224023777875784725451263009577200731156210274635667616823565413492082118796287817564209804782132790272352372867435021970864649085828023902279551868685457829750330897828629514238617733868219741907466964330644325960640365079458654297619040953947739992239136303365575652814838304721061260466292286652553216827060589575473174022711597686581301268504362895281678799085413571112316331605992889503872387336843374816319368334107522596226403315481445575092605965790126424313236270451800466688705128586014600685445030942555037871967695733490192700869007846163623901077109499447862541038197635224117809150735006442119543206927594523767250603884842304154479558897113350236371245712524343629993562623918353472909077708870274760945955927743371926012917305877042840595983069079868421564216364788258122776477416061769369468376056770144813208085359567723409801223669205073650335469602626710133912114738294265135075685408781356247097902321860208641735724382355206709313700529027314031766088055243774253553170074223702448517580514361609880462716427825736927473973348171836407035825798011737231435861598849370639193917654988027352815995608345897992133669388598982459344591311475159943961031812026100128691670182605652223002430939025700747293057745969554170149304725705217710881962359276803639289750880017856858263859085023392233022568506975076982382908867218530842512027852683950028575314184203232697383443427303170219200166438681800232213791778305169143549868019424511670990790540628551632500807144390782901289593208417193132779156703487418794172138956746037134171218687866898611712196344577292098325200374293116330050741882888082540151820280164188238405620229720403846399009153866415927152609490001584386497401379447125818059907166190758535590910549953950149739684543617893301114485644471792812878276916010937465334667567648504351076341581883155144343022652980989616063683353683496198390999152410302028878757124198342974734152649381702806400902525120215989625282210482254105647981633462768293571170334108434377867516154238228950953727371646412033533957436646527050397489106722348756026303748876246424200870629833913918330302727301556472213104244098108688908588979478144901250094780275163859831342420201403665445276554092467003503080165972691267483263480413194131767434318101483907728054374615683337404334133886958041189708386835202949638832167601436322453164953014926497771390957682721902432690483745468290109755899578860307591595344072583665623976119949945614027884136154996898671781336232631107311689645510388509729916106780791382886855048958696689406528948031859389256955706174620073926521558573700126229601338392057141056776560597377199175865780336765259367289078310831304068833047784829846686253176028505528629133918268514233558931943699883241494722586252738152420693192744876838466664478402452503904031868653567099778750157513015357356974992239267110614871402143325939815238380460685730663601824219142448338599850966277443709852519659346410782255395171493106844242915320438721382794729264025045800738000306962668388117010862357104972891106667472025681879684813777845005413885252267573127132433597012740487485919446973414367928290740012258876042547410194711098433298111924487965044069680003103105921782677341671271092823761046572882594031395629226693806993113092532755128039384481770602836715058659645152397544497861684857773465482852502820407283411934693958247139507448830063859749610458366712886144678487253245760554987572906893198656989188069296726451282755087854472869766375327700862306691262379765355825080717501328487090560672432533442227787737630068176694210841567314360738698858746058786988818207772278992285181146912562498813567785540050692686904109928663850387250198066484701488093058016532548880067066397212358491542750494002738205147632334943984711889589144420371770598259505211532366038889467315165053703980916315890756216594847325250240320505685463212048031494395928971294182133442535901306846763877697340520318101845329891865353991667499000793107162143530870858586350709704895898958849314156424986323099184091582238603849786208457868458655023708389614416906964371273753383113361936882569127438798095521915921498170227582822013761629594871099874936447485810682313776583315678539076752155611119536643217598650514740574041486660869373741505004853716463285138615190768933086764644355058435177548530602140535386577348945475797178389790062701316585215998297392981995808219455674496762364150087927668184745838449053037016930144974049613006562222534092985099311801622030459196775731883735194633800131852418903432891554444027120907698367881996271726585027854865923033249570956150433890912471139882223357877004166707075888767823187306939157484285641352323581019737556253897195525975386096886890302006160516306237365692869805547219820377317539253063067502833442992370293356605254945930515916102161009052626521985580288666906800900710953914991500468878243235709118913114104934864024212020325537312158696707570094716466936020886791789562137790484696313037824464578413646567498047052729762841163177727222696760860817873111146826735148714633480848317850241620297405424343066994257816987516085814548270582451199495844804793199222153694418197107147422862056920895727337315052332223270123897150655951446646305257372068670394143652781720523129707262836282665186662343993289046329203666971403854457735869630928582961050513688960427269054664286436648365791816520828875195902627357116457047889168006548937379216274774676274217189620430215578018938024636531430976559495576379036675038303777936086210288052291790690426910476203799890727043571935813283707667349368843195144387000719457984516432784866263090431731476096967483141268944340392290947741144756155839784749826890349304885692294699016418791864094947709292578660338872806875394755565309379235518838603224277398232803673712340013084366557485154875168135006885186378711621977264267765687554318261609137694042311488200000159026750386477607862531028655760804045749824784421102330205798110659247392856070302911087017431370611827344626788150951506665782662200269064757323823486725279843135411988944949744488582647598278407273920688707837732575108563898749888412750465756158049416607515174644524898784461954243175078340126208778416365555058082503842229876409805249852424336383929844653049724921029156667134315218968636871142335710164758165636919987842734153613632387769342755046531607406830426373124640269438144924761117534514200871455520869755651403608015992482867943940499703673779835544310373670901432764756346624155389508163892651460186475752131604191781547927715708267658042813931294372362971697206164020025307058781488672500025976657455338950681251896545829156662992819548280721057902221566130534439550216168401407735581669521454160011332518222255383452148077618601261253951364352013693071044325158878835375701025645209185354726260663388177293721118804306678398099077066303456637053176973576452689564185214722792655784304562211026942316471632793181025356665352644703235510925501676152311116820458821626799492549597621489513563840857431512671941669088506088086569228095800671574905377567577249876854421699442718808149020307409775846032148006174176029306527995673579829037829200190560273898726739718752083677411598603412748607370221003630976424708812514578856201640594116410425705335115152954131524740949870499971845967774807703859250002273153536567528084823834897620565608670514818120297384044926919087393946323505499579416069599436656424407387481291847368298471067500981284728625599288515164823514579938118332410111298029557984979494246315713093988999268712508761707997114124598342928760300234741431667176838882069095733410314252775603856179399915367345074441559455599517239089084125150269284495239861889085883724264086261292186220882563298344440765699313338942281755386073768305551920618447803590593132192237236468581836389411424918580132689557870320621451588366222930934463723371508800304271328638344958642977994919064795486836385912001879226681841963209882007208664697983151351471736020443280144519537360994055652791811063909656480251731748759811199997851097682992253537443533032780531669926454287066130812606738605270976320384812212824509793643841694269066426434381104592203123699168699521196702557993462941575401601571404854131952786460616312616138005190947515516341912284286980959509874378685956288562887431364100398748796332950649261095092433784414511083020183561980264558405067803034612768993331695622172585495877650462193965083125312821545389261756375703204372765826492470048392904397211368931626804715473981040548819114929509691587604814398056354438636505134551796019036607591529619367341641512531938138152471227251182128654390508102145876831622202297555790476628233679661109123658784733006443079734976597264022994335615797735350873116437373287646158891904760089874434383326781936629440841366469187673344192854083229415691615438199841336497806285871748850999045111400837837183754905832156716994549620232264643396101722124865604550253541114073255252532524458009696312744721219507182131024315493782181138270531893032649641973227466965480799906278697956245431819367859651772470833460885353370668836987924386236420960500320679229084298812613224683455143727816409267901452221926219897482763651287505437528390765303156808499640331499994161050162962032563608337138519803777954912648555379160340778071288767202165139999820826473638609068461287962083587930394654976663229197863201203523958952992828749411653398499472957124347798571539064390550596320725403569319763624919368538168723370193609492784195168331681146191290699665196472371871545447418808765810721584863547379843020940982880851249458424536299649789700912615966066918125902955248172419596695126476605304597287085001052620377370522377518734598507099795760363315773898669592375927046447411125580777652221816514848066069390283054344386777766519489501014020271586412051504960807184343608058506824196284859797924326948715934122548373108326159586566485956737777501305556822736602407248130269767095316528742699839733359620610226653306714798726037593126209656117151124413467480781092385881448700863354680829912741614856381915540701418547783718487093895560124574170615905502169044360000903984162011356503995079779329606173479391832133948752556494763667908450886867412849913138806140588117933226094421541528754208958868431430865190870730678336612553960749560350974828540949081857181992418455751016797197585835368231983886704219833196942573004430252431003971344938834276700725182227237755300527112116099936458285672937117518585365577326334874016647545218573761166030233502169574288995759377881486840533990712253246210206822418496926675310296032919025270542866904549560071529545021530744372222054918675008304926576676656060772490275919362888494964840645548817487112878579026686218548869873104097401315291810707384761148935345383655852274009698487224298970223617940652432804243868711434219934667919341361365380562770644626277579523931039077970146181578628502836207603591785967630124001968596762811505493151094180313110820956448416831583365366873908447943307838483232961713160866759524812757008078451305650834612800136268397941677671909407497125249726123626224809948856387610178551880770338600613882698185061577122069039574906586132468552717385891968257338320445847495809954143762164986821433502946191293068300880123323882171617261401470251425209507451526817481882917028054692943657356527031021071586096310232787957811005956409582476437126380957212901661208376991896653088087645358279340905733351335176775879648181831010106897388927210373679821854110808996002056764727435028876264038634836483891369735510925400680261559084164097396963193426304647423095137072778372825273120173001010183633665551855016164416498646287246422212603355268427633990072189078017847980054740245554016071418056336625544501530092412969286589147007395881532700362960438573235845852892294073750567769106403248528221791653203064384807215612132486062846378817580338438776331712695081294067122925313111642856830625052223730295481360036775765328825265052634469733165459938593254571461570367127653697974534054220386261778755805192625052734662967182685797033175581553924040396793527662554012224390720124359272920482800049144412742408077215343211921559039403526908840884403715495782006350097633823010284455181416248108815534337336126509040206896621550495384825857516831912269138191037697811959836307400650334125292456557056220115011097384020093315108744391790771633745202918783777401452264659777973892563538741995127165956255048267330540595535937464965843859855752280348282169758672816723783080741234296453631074657970895916809159099374704946547097574362791158286548800808819846328733033690246607596976380838661404292278412231663802506815070475699052581497543764486065989623976539230135990657012915468282402796454586683147971430082731176396050022969314548694131701890175290048425279784111818347182994525433388156236762668567674666438838680208656148374422606940649146562693068374301624603140802976051470248789267309949017222216982959001186189179859048308295767906347075992063825661338306996163069084488644875323458703022406851475332994747798253811369575761799700908071103008902485111927922364619697873718240786128605405141032063007819191055582642407179906911296901167796680285929694372746621016527391231624037942005526678239788191450548552915108194073671409457479155074619265966405135896881528082083110139196327499126491824814212422902812805441720898394312258967765970357028626829563376281627866349203539051235814504230317963361923448821819799552746328044875244188896000942225533811547241432392988400592965498442063409891751231274598256224089165510554143259523596466284231121464692693552637388850247544686789461537102375966328359318601106174722271202297905886326075593332050126252992541868188630810633423396227734933588510323070298815043189630843085817025286133210675063261273914460954706080016732904775939832504361731350665714827211987673130871047994592619394500013156172579501635511856528001953472673436351381860661873158059164810424130865715551122682626247819732870483542502994624847310284816280840116460988045417334569332737498453553663446900994772419900130179472835201570549054444395767326168556936814840692134723783215329625557572879350042901745523304293247784291187087251689395261950156384152806888349134926959902113429060234185616197752689671869980759508753743598885785133137488331194270491483351392671000601878564474112549034157667170121455345249347325124704629145555317152311923827512850426262254503060228234197434859807502965003322696550225525287269146139092165983108882514710850508213498683819131697452982025937907233121907260673841313933435746698965005296715342593993313659115836785462804376111389184020196806143493695049925650838053000426454919086729813604179819665942951461844333017074188459261140298811734394124764724980312601671099540703627213618418477139067402515605270522010989270993207243649996124334616540283221955985765932752226782703712556807882575241606433118868056272252825634975300872861537137160954069267020934997029471607034683814627159783691993151403849831919945179826714659245237061609773718605799936273623945581814845335065313617146850122249780188603051939345860051890484527239881840015242508053709004431669580047644177195987049907835892820640776401718032389102488656120718509234631802231080995863879888636291539857000943165909789272139778472036342792072810739115241968400639172569249870653414402330864170751260600964932214300960417046568071098612829602690173861362884520647108891510165446289643440993938448935182134477096379605768979390587242903499535804209643078495646697207861094964442954890235485147890838763748097869810591146933055861079203087412311068780616160874693195544969766324453876485421716560691123343958162962619833222437745431660739431774638796618254641030065911505018415468049741172185943642868660161745398991414043022626819811038327483142945658890324889685457971338477240710164136729282961554723292514854508939459174334817728840366839451915591298919165102386843617384341346544141401743038150724764311367839122646404804727406559640834034868606878033320788779363555446173633733922311907280356602299788694807048593784604563842910108323840309805911544872350726474600772887487695288854608720528463630149442373719959284340080399750947200181697382089511076029247743913680815104362083400280752488189928371827499300983188641572388249466014547350469474626578299500143193752600244786422089847758373795419726304821000488162847666394439456598754473615854577541704617191200469387651451879171363129874883327658053369264055048482886194033136116671878097130956323792635682388362839573277927096922500824927915486479961742523327227151519208804885158510139665644203482217930950308446294126323255696531425620844384915717062612617206526441513865069356886959204663448984575432558920998617927541399363121770080452136883115182877654781445620694686084408453234074090827159615720747434643323602786775047175964367161327393288658397699349339564731688412214961240382244209529055539913828688961725617645554127687835768960400506500041343756151871755952946269412701316232640736909853983518819259615167015186238037709744597505803560498904961089488788566792072323354774089246978779317432060186390863777747717292678922759431933125216999161624167404850869022827355787391302506828800616532448602119696552693180953255742485131071225636220882087077756833583811829520918024022980219913561738472852161973513347341875405458761684856454868646062792256121581361785908540383123917823648937948696391640362945943628178640716671314708477458990676632773136113165522735252605802046623987416177406132378925595104730657797621965484133010396706692680913504683825039288152389585555178679898028023961423413585601968233706407276696994320186475322026931413742472110354188301161505843273061713310248417365178894878623667328960262226568913411316439220724212506785556678853474562432713492336242425698855753706191959896633568211847401355079655926557356981396835149259042764717563433547467754544946298846849430379749838793883055464413895366630842120495347517579109822585766564436888694095893904448764451615210452860154104476298856974432169804482903731235710613471643406300524873675094178093358401937000706255825897655523297585861322001163805060547611125215845763100291483569067686830594366983022766557759888424786453835935729730085219311758829383753627325858512942585688772732453230894604561623426529662155459150030572942340162335289855860301098874685566516910813805941539046785495250939201171351538498742983486956255571429498345300158449254618340431335658566242426133854673875630708721034081433576260300141645736987377321515731018581785749108436284338339649672274755270035679156703650113492365783452654244288212547502289581710449295700731879254571133914791093202590340389666100397828677451599154999680388807232453977799271414041929127876891390691342254027858838513175420295272300103393700812739349199305492829224950715099203681686694829883839177369066348162393583536318786111423755414647795940776115701780255144530047190130805353261385241451718381142550251530246580646457166762403158276225170318855323235893059489396177754880318752399595072916906633391537699038701952581573944457265704619384891598613576177871009315806507500337986693529927507646585462008879708543051737769331991484415619446125957961729289506887193645876386620531070597003249787869824118682183970916805800236729853796293545352684218022428096599565131098500370560958622526483036368162753474968700770389730748565441294347979155531341254181239094367990877195437130161113858164011787583795758197196643797778302462273258641919131866660435292370105697522652079499742729507183391559275529695263345236580716851920360814259839879185057594404178824366510716752286326615536788435372605168184271048130299580065561390389643924241613432534833350586182056564783286831245898124433659826761744395501397755679051109215002406246158922392546917272449898069189593585456428816017816741063497611825131342114291875838693989075559986434891998832458499525500729959530931048351094971318257600605119334740938920880608091592586704940650985614126450304206320242260779693623659796404996611792984243548643353735220870182342734637839243099012906417611312031432407816317721555881012762025439121624434396484868373261435580645318695892633872596787842875710215835353191275815644159164458490610494075828209252635408940808037418719471765768817699867351795836443481513926964583910625667247666732208984961610886872982884554595988232635628175105443772482276314461732851015349946575424333301732650834874780034665586801701050483515870306845627309608847537492953744839142866690970116884113237732871429054749423881873975828201496966300403473586630215083800897442715954662138796330850203718705396019525956477479329200183043823009640346792783214737523429230922153996745302402122786025837426034522447690718789237430716889796966684272295046641560051291087105109448036159058696938111472560017088308182353615961700752687879031320197537250364579540125933133848124531467003638519155682427131456756791866675384226010449101427287855772359040198911113626490956257901648910151819866457946978130667059861601262922766764197926544254779592541628372366727470252518112863735966410277675052074949924696885123932249532246336040953055204705898485455890687998789846119596682248835934708040000680508969793139743511282042842624662086417811680348718080223368717868992381306577788530836524036491612349921340728314309077769840295082169129930512915975047540620752658912714822114108002769104885569921559516844894604741729319860191775027197908105036220949310390860863318879889667144134409241964678636219343879849403060110929994059919559045738800433708571791013927858571255655571180867516582482086612942435780366283236430301914124549837426483518140619739692906412398332159517643946706930746710356355255177975542135170738601348995467521481642419046863369266438207917582844891238661579565543140724208710978783701685304078769961775236777775593670273171749972715607248669458314388474139096106647839551157247426442982882829297578728712681188713127142727456066736164040892978988841099708604498070223754826572812237427137501472940397582805890889777391129883168825146380754851999263615335389957482851798848687885292044847225032259427825165871222026162147775443464920799407417292127925325869789649679746600922060123185564920722913851138139226106176301171455484212077471877663056440252655647573184478660806875238212176705751359657216621592629047403488084063897939626867502049242942860581764539679372849185216651457659058924453232336452733488745589302431725719214042606926052089802864517429471378373421996858998276753987531111667427813475294873030820462465395462357396090040869316173652484905308583228780267114096331717619011304789252270524117827317056734519430462254981217957984789673712115588251777679408966278783811177943869102781859021178750888977652042686393589433352961314633366504311549486280967267909059013118037859375848529884099878324913606548847732515998036863082698030815476134962247545084151836156589243655968552055909709185375322104032703509917935158231323049663841332076770332955874380929441838496319445111043925072277660657509938635702243773254421721528495453724175964100672335855368994193213316753662211918958967292850147698059957722727786408167911622034712050405753735077653219223046631138797321711521698336766218074260730727522118507147889762611411948555640933683112515526431074704817078376195246182447784489030395608279038163700289708631318125535093042624981071335081842733465233813285478594254581540051549189054185491642128874458599926187020673294767289927867639353731130854683379804269008293681321969601371447775155189225486331041768721529656928822064694537680084998833041647696866674536783958808533332137856821887582141179068437369395565250584768693565904424704619852616124480677346287584505142071361882377174561412160798972335077756408944923012468876282402299995701565419752670831500225965563679737314238886458696897766750302879835449628411625055540216919944485452662939814878538905221789555963213552317501578486589212535597998555582758482456613899039475560253043354445228781497126688161082894371689699206899618948184759110468313624157301902878394901159324885006732809211624405411256315358864821686279947881722525810890149083163495610004158193144216030411232179498203096309486116825378812497816226697957240585931173153274459809001079287132841773018336615098756052822733126244392601546626571061994807228233147409999753913478503659773172438928899333405539953449943562534532093809760874443378053469642620151189667618173191901339339059549223141852573768338863035265280734979255824838361226847708547984899238943059267086274791337351653788057028512729192526495616900744147817436562765630557019498605643025641793050634651673519253793163429932802262527069664533429797935049222864165810264241549959457356588241171003884275226166251494915399301986135297424804974268060473720660317302815120811917080029521608742182963532155659324163049474932736413112647766378358154115244140919912045093062173815689642203107432185183232855504509445821787386289056201292178197284188237469052471670226906778489762544894456289264518300849942616342294269024033157692363242348774431669090043411683926899598369606881293002134193695878079875347793955252024078896734013281970469259057046912964477923048377390139099226878782626546864376351009299329708150876799689935584753230536080729480261264678422728168236118423673980804838266188062632974432021095430640287563448807933129940567304358184034508270260880980997713472892218880622198412563215734671797166436730068170900447128225044228333558852767701607366090683038208165385035801190017753664023473766234623150753876299717492106525312489257626937092155015268167500969438811286757483681500088292116899541804203816597422363025671703698140866807943872054785688923407943552459602253027754977643658610978163632315387167623239111652579317398038350732332102826502651560604930021929390916035774582615367159804708640278652233241690942169883908521319341002682299401046066357623554853548285449395335508008027925030617809235673914541310621293638359441329953674942838653515358660977481681160923037659049531502261346898707570590562329890865455137726610349283851697064048916064969812259510912123850727034191138020669365401450222403403695462494695609778713913602251424536844220902550789149455418841886110523760435294700138026788237591599733658862197015758497718590929519429696349637574752295346561122229042960173415526950156280311264553012235505927127859368341375745080376060749459749698561735606796824635103311417867091719156839514515874280712066201097448908634255339446019837060615759956801031239818139279777213098561476420234328311668562493473716749563047654026793759243604766582722023558500077844069282256366094415281947354033620069241365617729741179335169142412741740232309412926482309462049346932327882652655114234640423624364596051858376749864888328085625186103488639462985723904148582000731561173107566543968976105917384686919334358207070748580541598313457091286133739668076928392706074362497883371431574108000914640389045271213995349378960038720161282806111763898956617036190687668121685777056968057480664847958991173202064975911945029552434377064848504068566903573538264312979426858324356286699885428023560689645600437656627863052350162730839233291892289313656913852538826737722851038758305785948085955463072489407306851324329743548638911981359617857554087090171971945742981178244744829560491228123049633959377857251745654071067959023981529999836013054688411638578652370238509972583801278924698000669399727814036126568032594474388031431982039308089466348320635645013765224136152932783003404737921439154140663783068541353118078920143169400126586132449113277536440713074600825307405183673026791495631182687261368672600863741490983034051518941076425437850495947233518317218287457581255631392873075337534188563150543989207731110353826697581706138759843004359094283299005151235803952510480067920593935561686255994181344884616673444138898573878217128411702494773965071986363031844437566992005151587978714703338999044156524972912351043014212687540371101285301287555869161691333604991538434836853514041335880798688542779235850612236308070536984919496145357400745468733980748902789225279722405016605446209670881412218382084413453823447570394620646139263391823762707851602504571315719547612966417939024944564681976943641557807031089846175089030635552922255887328968948107641831184676072950976499598772780887235090763799338587157923099435237712673802261257826815176239501015699571406010185820612625471297854902341889152993524898448231813012159309568859878299411382911777219009889841936585353345535079118791281893059147402649706041006094196946505073482636115860323618634745520386034965794986583080221987782167815988706851913453100991038166924058895596108582523094131270077442503683681018064612554829022859429620785813331046066646991326217118959989173363799123044245499507814313963370713357254816716029532427946985672657907117904897082476943600580721621815529103844571549060501174950998888767923796606955181109171524236090636856203498387141732456328424969186998478252740648003244092122426154821662546115483659798811657987804018316004235107620165485017951342685625624406489623760391537070948638236381723077632986585062726319540771752749586337384781147414577251205994712164235983842152607760792820707004281528766688817663334436914543436713744733804234509596770082768562069436626254677311951652629242668549738484430591939230292934626194955053825547888664490835757027036077719830191686580129791484967720235482454766957265856308815379476870312761231157929115309898577847640822104008815240439250107400117246519908681774422959524087873366515071495780577408840234156953560129925525745298124521378179447415200271503226816940880360951322045608721558792884401371712863940803441406958974695686669370087761781714994156880093842761984724828106189554630250238070091450990649532707300289103346356924400061284788736124850333365964571613729764074078098279291675399839593677708581187310817895395675679908190306334382248446048517143095803358880806383719045801398020200777954719725466020893359561868835341595333101492542435385257478130967901020342052324626343526932686187131518835620558709320295024648126984179241480544405246380750421274039260860454654027214593669092155113191282038305033835379546805959209020545078451313250332789039307977758064250658306584616670651074932704335549030335663209335489142917142287692667087700895050413449812629780964204327864565641978880598855058897293772765691607897742259289772177693292339138956231288833325763640038227875038949880749143059763794159111162768474519255299990236496140191740040093438309885027377614835127098483656019072528270959978737485333451093259439423876218005590948352062439767865211822614919710851438583020319296727350783835232405164556878526155019724551616623306782854144616648630614572305035433936910851346717545139225942871177317488385816486768518262112555203756809875905780387999786686065064957208959104651182116711275491866306276680008776707270146356380442755293928283790579853913929551697588516781442151213212326166451933484177249432574833040226352620436295742838657262806956809646574963731948850166718363746098555183587867188230268534630814629944188778591825215038280540332144318127895350532122831797331696758543243903063945053529228211345951973244538092416954536863680372261248788280249460905582200596435802844955974241000065558434378169361240299884460674378114255956011869314956841451675723941371255687746113266325002699599237582022904106499239628720126603657571499102751700455142910806784683317325666642504592264488439089821321551502939045723472161069482817065395329377107795757437207142100277673429962676122518245169345464518005478788193214198817107983684947280286687469592311657523696246018403266858987483998128002966870002037618071972767611392321723705203444808562618977562942386893291504969392157542608900468616932867453879976024307093847845455538986618719794582320261972449305448527561183884683062100202184649461154504010170741272294074789467016990669062029566374912546667866009671259595538597954278476277415857712687493052162839470329010637241832773805034718916479920920657924577665996662780295471477118566598460383675148400888561123283061012791890205283342508981839462543553886370293943371819919312003543180892285511895669730028222927736667105816527879637709512342632704923980603271847996058467946492770632302516984835791872065754107421797914176689764855687152627078626325085864599806628635824309215096381895590688764014805148909722268094659997593540008964378614936035123737495937405547724900698685928476994464506451161451132671431325256671961430933209153170692771441707591251597515513472806167858724665026612264960831948503487929786714435483967942059298422285000384389516159336469683708819632201217807526160157965401955214546861327605717792328313632838066470830186849277476674631870646986500393376043019914555782860301597882706737002927564579490470920492643105304672103218250607068332755888530529306629106668021165870234159698924335542232828340384496142453302958895272002580858370735061195981077681764661267041270936230906423953913523239968585231536762179538977054883542118559623587505570810373869144817084755943267419041370707113116221824123846109222169100473294829007161811373521336304710863168165180243780975755888978875530973433839010239519712117999323449817909590465324119177649109432838489841546396812500409278996886253855287926624622682470082654245526695676894159996848367482596252197261405701495159600834712793377371453587248489019710566091041317904139994478132833515034562807288694270099838851657174144390630658427463653791458528832220388033525297245116551790184016704496335553743567546334712128922967136330781388832709056927008537377151442364282477584074582615091926105658566650283682304198522409817293807330947136669230934942868547067101007304114697093744062221358635550761339095429859109406534214972013842292374652222678132868632327974447130748820771317758368288138819036032357258606120104684984199869902177757033712509847702441496088271548742251525539905641619954057666919701980763308618709771733504055416688076787860784010500648102668531135844820985661347127713871223648247107151339300005414437803485504737463809517943763886728625690414460963743365241892935549863171854726222229186164461636934205613772901950780387795192595181870596985721574149689267910083077562115299808069284545369459581795559137078568410700538920822645183953068368666724700653908650412741369886456975824853216580469984999550549803475264938023190715733084562100339818435327548942886430832154273622706053456736350267056197738835799998823781764256520493645119991708356737043475958088270187103567281604467814324217657457742602115888240526035482178259246306149398689489476761614574969339470386122861662179310619544212674326090380261107469667849722045429571363471507027519096603504126157093211608177030097684361753629162070978652333290182047439417172669263191924418005238296892548452735931941792979347551980879405420031670130642795846940763975584685952983172018206736231376951650000265807726719611676408434962967725226844905830194134638844595998961200248491820054518754244601342487907773570998572273914235654728612020615245849887181588367504264034373603622871243714396307349089589652368968576110279424403741506855908104147148376984727180978034780962362910072557544205210792745592339195510376459635410902551743118321168463217245774879610828771932784813687390170404577997813533540740106049397864811105279841069811602203375609926215797554506958178721270085729112571604097116950472503167036314389689884006767172389798825342038023043576948057623471263330001151890676521161661285037775916532601097845987885597587718547629740519323870225421778804865824741375749399823278052082363364607223226833182823687992660120606779189631905476821058591548761516167196595351866409953614724164700279297007458025567980384781754936546764418672962711825616933070331677562569465013097417844462343451023744575158306294829347873894314680035466434928392323617628699079188461117657581756078434458606417917839766922606034656082711223780725591724632381923758229656502220310648554496748159296755445979650090660251077522809851120891724283613839733263726270209503993710339237635189388081413205117299529446025435885325375438065643532972480107556411778295519009754379007852585921839382638588368247147073666556624255713619036072268317759483260977621965263422814853032524175614580491717900872948932449178275341508666406437764850661728636356918414966728657033974688478442609543136599918132573566464753905427975023538476061387181581300744544836963189406666878220501634969257080533568766922333227363510334265443061699572689977676337756158768399154683860507658105353930025000533309147101697992175064436202809965339967934869421319670283533729163726181851694935063901014784445939679494066889479986084876770585610083846336796227060309695503285795102633455023555485001552929320712617725817644147291945022150905626209725195502430627925700938489922227725909946709999598358337782537427404134818151477730509428097499437750343937816765699707661160147421068010865296590875053725840677621792068719592457148927069044864741103070717041701054768635374872406595078832430746284914007753341493108878136359935864149984745185225968814229324488373648851455234775547767532137873593927834999653189304913130163797899404232385019805462506101382127992205488591491885618346913114046741275255948956698835736524095948970111475816474260752067896664764479116960717993427282685548162143990462046674506281731483143166926721997916227995034762911259245889653918114296692952162417047668752819591018787472829950705892651608223094977621904178050957934371966715866756126601944415653160789131865635828686771870533873602424812014630182461717364260695426611602589406123870062643548200899783585867513302173115573661237543622819867199650082610672571328051617123309915058401026280666828254061075052688031753992106819529476569951571258415000952989615855066286867382904992457832402024119902115633944464212229942306040152865720499491947655815015030728158324876606719474261949389436713067190030600102024584319845094440804762494743845428209316691465185106884029694883785868556213450692699099307461373536635730020770059347800124733795671980914462160012303184764917328941091356327109962582460262077552531369654448361398254113234402727709738738406916143715610617090421805177954171334938553927300642676536665319382516160001162057305812205337582909477133381814215256115724871177571591545658868255707141779426509704512723206040181625637666862925629877455783144373866004562699802188501541432391067582131519661803628680990693055050787248068532683440088136709293713576649861245275541406266957761254674388980053348487727227850471164119612151183118987189254611001907687195889152015304745202789738316002215426795086713205933975223623229791830616616431667631717510728740372967399219473368586531325739392701022246623034589755597519917827485214762844284119127203050559473625317280291026258316034205985256789121179591769731469207913297459176161007999177238191290562884268548017846906699921341084078402604890315746219741230162677522526301701844222173982029720744624364500546331199057568658498825802893618882971177986393228663264895064144798732777908361183146154046824123229339206309004857185205087031840001545939764039089660651853724124034331749362843697447636071380673015728328581879255410852286681434690164136272303339150607122370881648619375093007044419427718167110223980745520650412860192049040350151454935829293644950152787133736665613941269714128191129441406555951805388074499554205326003953191734432070129321820033206647257894268918045565391266659937803580402667853142882652518190374220096803723803739427662804076216914779910281825563635657998036455689209191385567784598076294688384489479023242929430401458483131254516033842525896685828010625479741636022687815491638177346774403509474193887996255006847454833838742538436988894444223226220787087110236260584290898558265057443402808777242839276108152467300863984608190164384956005506153264924993903940842491279814580528779893761311931887724811484287574350866067652048531253352663105164693846461096333754554903773371321879270554604066780677893018612267650186883255840029510027542769215737174784563738770607882076599893736290331651121876385459629605138088454240944551526004107222824962469598983924530639107874578362131755066274505588905352074702547210630100667644823069576746074152861681364560535724253830693286922171376377110891552481348410850823206244521257703656589380935766091093703814382922227505482447339274504187129545167562248486068171409094918490493144222314291787981415001864090611378598410509782146206285506018462263385275050944383058204992022032597091393130572673751672892696886039084412963921887690485401095296916645569956403594648747060864048430338117634999238724578491380970857358183900716417499170362303596252208633982819233370775926134673083488269405964051333964811044606025927399801588861031049023801638630661914972559992108333192476150444696097082898573081418800949745138655382396944415065913767444523674027315545386912281516579141474530351987407458674539162342558524831247596069990548206580356954961471496761250977088693249534103983439793512216228387628517959873732270463054220666963239819298380285509071799170726973388219799090131144780508397687006706974616667020464644746716412964421824662816077401309653229417045954190722342365924617406824442979503131439959409744639650114880196170681264397195505234505961118907602608746196760912508282993965475134689725717883672572182903243816464645784975741582786004024003466524377456435648101802146711325278489327713532761692586973675716476019397279053979490236851803932677409997923745193339367254706447947791536448607682990670180762552410663796308470437767106880425085310734737492657209544000147022298101321338603856847208293342293141519331625387613520498406643411119351617962002265149425383393883509402545395522327192551963117803067069570248725127763407513424622504011835482980881021914440634386119640320406051587583160456217967136843053415998748521147339249645974995872882331036093668199401177135447144083540466399062209768980426524295189739325509722424076175533323710582697159124002619368717188165212677285445002681061122553455125856239987928252522329724209694178228600236335357377504831028128892900935399743580653800325589506914698102561213334601068477157306563115389625770182007081465821855984462377225428822272961174302284581519605167518470293971236634440559813639022312902559548287037790872504362121144343972205393227017582066605016300094717031145917296234083087786490891415179472224771740317896653896079136423619475858907711377205734386571218873208938080083282823378342950899917836994136506382256923187910777342503620722356134558529378584034611533180221133289302653894440336344608510024588411694196249357498287096516042064764473499991785273315935986403620467649352740105945481788442021102892034135680292544895746930166218879993425137661525355806279420592069491068068075376386564616895820340222803878315080971321295116850480917360783386444136793124516829838429404398140261999544879757499927922478574620509587192587041284129910951327083935937780127347232011476976678079105734066301936219906500235003882310393485952889674692954485849520773604618625640533397079152998537822628397327959703622709123822623633595436447894028229117963978387852914743064346010048184988703392910870995519680871596430121093090001295749967893785368787626528946722234337240195886682930549737676309955217232663483014156152052904783812814264896032153865903998490409753927581614308936736620582140188821892444509714906979053303174638796075585581251198011165244312062120832874470455496708883096950146690905834242654227764333764206697400960466607883659055244881627775612460535309904865801485664595669292632645332901452597241476437050716240929158009051078958128254611157097876679918046222332438527962730984853999234667651346242815046912396580564589583361344975805806597086654263872044274224269914109540554883654783462897136414555152005142625605339156501236369647975942485660588290195949681174173859098240327004089225202734392155687347331709373241381243456923117635732501789534406775363100087027556081124941920415773626257836875424242618133383174022300328795009512000646569772110533296644758578022310652759780270170711680172701355471025231430564208100032186950862796244563078986500973528050333002564473151449796805311036866068431267838144905686838331879437920421207993078823388932499609793819303166451455137147180028544100111436570733981983140651938171084713559939764896138632389543677091461630326519348219735089454190331822404325228728997565801373848590176577269564354457339424602892718725334433364499046902356597157960477026598151370318722056380811486870601896334437660398422571462863497834224645244526794744428809050046695403259417637051073022210900620829177167599841229488062350146419454209531374332871015551661259807358257563912194487064141472629084640713210229379231720219750406806988169435479516322711455477416388198308057253198910495417165512701773656602624720081642718236608061677282895276503504292160351660040810280934627559504900022399571652877587410907605973202772983216199310241027704814574159166794916521730292380599646498367492596480672408966812862005702642964651343374338843409827433610747918936937157002649152914206812634848995590744943183523880382709283784316553338170883705461615539734335610544165771582384757091535314725310556092672574730207178413142869599558197933093619136089716731574172834146411142486673631396236464784499946318001843030826728707555359124745514602907473047688839805235845063460846743913455909165036871800149336585895712209623966418629402259773072768997211221267200962156202997452630212694105957901069763605474223073126135049109888733653757302485206520678735274737452496737761785771251021899599080856388114532717420896536068397247837270337525894813744286291736735929078021687986691704323311154450748604362216850237095709491931799436663101737230210992403613384908574735429739785734996140993872611060561987541732410679355091743016686411565988409715224563477657305735594644212350072623068149712017686229635490619501569273663279979446882696827765057968409387961043007181161515729489314242154991654160491483405041349252116372968845845990764116976497783920386911216487279333482021887881524668278016794880527394603482651625501359770020524409229698736812109311100358990413020815461432499993725371666925454998875614759234877685213138292392161143688527574479143630217258482787096472778687119325410087053695770060771410682261468366086840347032717302375067547341161331651287247923270453593913174407707972365103370596621597968819007904340969226391289703944146618025753409487012983290574015195715031313616148846007449939522849070869363630918456812927981467074384027391308369534509352902650273220947485915723694408544218355347603685051594332492321738844688204869052917224624201451816564740439234834258835078466450761087494906518936576484367554504483799507977022137666376595374477442385286091678159872151727213681151725910918114694567755365936767705926403087127396943549541911182512906254671001762513237822706397044441227583591900512039082103650676714498457608355479682678835193303762486207572834398871440036068635413931265070323004147445029042148364736629629887658514779831100808408195348019981117891911586804960601578300265897097606421785978898514561756720421313679962750923706210072617726431280382006688835086262472358679833448100843837955764731055197458015140840915087210603003196454774961889947704302227529954939534700401556449089203643419819222595230880599186597473222222071947868712806230526347107675944951713266465168002194340898299027679845305778003568802133928531111650360704542275711714440752419332630695733765893008756197051283100354170893550096669748718951365285302001059421661163963734428779149501198865934245493648679956625631400487839954522125862373857103429572219970650903280030033025066755952641970404838439044250459832533015065926166693921318689809292882540290445666796074070842902386539623348190489456312457775258431325197594160155476907891114950066207147462784925875699443717366724136141738741213549529889183287699048707303833172088428163808440492092870251846171003816991124377526583131203028169423734039296947402385817671739475605526196199590782518698511279904232709610989290145363893306553381042289526224193149655333907859287287532036759666962293369800319901678927087117630086881891570732798400070495781481136977821494733585581156494214812864210263766248385928305306143987032909895580283062350895298346496566017700321591388322427619967011380110156743220078263732711969034266005600775601140656657549300444752889165263238345024146326838143633210682709488920837120375785719662516219770446323837524231957776978687194827855661166596963016372703187666876439002361066335833479655838181519809575473434758068670154793784803948815087606262155223701717060153164055570806416479190630143384000678219287616353642758999853531937940038448325980051514684013110869304323873289598753958790256058149491814398799702409966504588657098175261509613889448414688394872310125188096033922165264794413755514106850661416347917153600159988093619328792613342801977629558808741172816947061768209093059604276514637259609414902757299809007046827303333994738811345955995401230451262467459580842705150733519455817917447255384587800386084885735175972025212869378190154185694974147857194804834471405655907930778134474043571057107736648672127039724111889016148733135280797989567034207494999520506939765242035562029621998466521342444345290239997492484272030811445411356640724587783109102263216055135921504987082738012412813079642890909492798800794823446237894261193067377678489556625640894442726541018907295439963314690260976392360053017654723937561844230995871559802769440961526624241819422265331378913525876865708197360973739252526300787416264284628350555747727075177754094807283879197990104419359581591460691060412909456682846577235090435365755098534832050841495231618176174555314238928368998613027488258384542611613572520763883464235725719711941807911267252771641020396238462844705548741676261899532512276651192820190270365201336869259225428581592564171603555294386441682400156457554083162353015965577043561304310632175163145060645239809649780657175540869500181743184675467839839666922859743430620012763202270635020123558538013232259377939484489144685063117499909573866547460765840781440141215452042191125283792192466169094502969871546587485145284360470969312039753222932057189821587088772930242761144001342205723279995994227830449506127613849869797504070440652797714026206592977978777740452917857108656174501634843435120580599319293022415612986043934510858562631839080000200340151660078571597920377112699056717517509809377816598854985735572351873418409454301938960966205345140474425034015011267166127373916435234699726515922195332877687394217825680634550925868015480947259614780423527832780539756739579843945646237098725840114217925806870985546903895332973967028511085005941025486546443991182374612508478759523254630923475858137018205822027324233614243946238506077575610099537870971995598725536311235813716968658653886448644838754239270836342116326355156693124053012621152423645328341933320682309371257763332969071252712690352925459286086982418227338901545326031564683324330551432314223517013932012164004874642007847789157352200634984562460957614954542796078011384394296959513079821889046410948593399378251632724296138940662120690559572880765230004548779933364016236157907625495685413402851228928340610030349919182469238496378819802279154684077911633759322770234280481823358954880227217707016058184545790674593076665360515248525202364109952430235373026321827761614720300322064069371176721259202043570571440020531550669597197413325788582763340196499414872524786680978974683384000386664583040993012276141733659711810810294286226937219431253018309958549188925526202228069229822502482407415142662625383604987438911686341899298558115551573921531892584582506088591897590544083694665356252269684330942391292287555508620604888381035917690818045412599587458483395890513644282109685568737306453581376652847302398073657082303086479213255698863608514056174417142148898205712291898194601065734716457515629953533546419711341391365675494188100481022139125883552931273458508594866862852065367333948491871499810813698750738647444850306266655660384353317448383518822490943260434581500036215694120808109415095661324833733228269882746149731749878667664543152458666075713763943332823697868916482300025227670551001984247486187490725594919472348367128541868697805294437618355934292377182663545521513097350504420723056251775430926725537534009368450737845675095500132297250608316910996123091749960664642753798118989230906918393360138709246605922664138946157783251888728551259874598158342438359611700895294594383608499714325369879556570561092403459477189095153524529883855817354193911197795225258616907145382711144418557620904236966265925152203137639565794136865817118741407154586007070677987647335526411914198911310849460074687808858862123380526757622750336540268980321281565012010701226618825547743671147566335454811117936314377430528578178168379014732567549424445330819449155414498261789656206368738039245587164881802723259008303173391452042985078239582466127532963866503015008113141050120694848417697366761547893066377549861586091836412403602922531643606729191446882981622526809976066960659158271657177350898240058274132812086915145295551332673018424676113113471603755786388317106657244609239782009744733499150116886072162046103974782108961165764600843141089075918510560719965912102634121650873356396422336260695306628039285762409653723184114193375892276700257438656908057779354337249045282277679527627659766122601674468572824097446822444806214259428311421961635902263556871520312353002688787844430117773751032244043277313188664367548678380359417673214405780899221618429899993216720022869975636746537948922897008767359409430101895239138132910668275032469756816620466506987304462719025780211898208004708518605728648023803265423974731270528362824969282741306057163363554374672958259963875524865338141206967395260148093886606728549039665422487171061641363714197772763488381594689898468113643643721317495037958635084968910821306025176904868523541375113697380550783376264904367245384975766023957724900357172396319598547881001123427593366188299310783239351143165717466526287445720151981431680943509907152899823968838765622452612230427062811412712149893583004688720880835233911300883378289836480630716832192872036860445900836242790142846051439804461569943328318987681096597301456984647976065773041086433858519130674527754861849611813404008157625401312609578007294964196460586561009540454020374180286887665953260555183842332911114689702516983670654967914024426542888612885116094869931459070779085215000110020239161672885975990958811448460562257718080732839907890444301366317739483112029800478755621819635451715916120343131084776946909023137019543562618873685954268155057624335613617696823590327465781598634949359586135540077688311691486374365583283892014404305565723640553620827945459004947658965222520209784001562728131410973675594031989092680269685447570258399029589037450924168478040846598159030638083985927250799909042813308390313740856264245376651150131663879404332166816215735420993153863555452514426399072908269016354347088215737673984698071973975885677882650797346915381049404883483160268519335526368309705805645267243141011883363499178659932397216239593125040224738239785876403986020214708432340490305214889575906518457578707867899789208882237192568942509717427848085683687194301757464314858014679738677825375092480939489342572931446186202319833031785882737093743114527580095536258746052622735747566283939126457240657618032697434391347954287419521628513381767905218630251473937390947300797232053510380750124686373969628490942107119367064888459120775128120950720002903185631150043831244287783742260464890546765487849975950162335019406606801829480180983848399158454976397110841037103607549609612668048253370096168442754581370628830226913435071648682163223438635110601987448855581665053267487528038796145963310185702658518569697614843745180634484901019886342591948538702175101219647027241476759592470117894026039438323446205738375535072002981914433949665726722340100845266949818852412186515095513036573273572795265266942174791859930980219284402564756047111365064647002980137994559985196157894548472224585998069426095252468582794132340803364488728152112500898950692123781606565066005984633115527081070162710691399500126158991600839610061197055764122736785686556963947051851088212968411975831297792601002622257633406564884463344748899245352693259092030182709656341557903682651001559052850740542556878591941625073017829970853295781126035223675368980297963474190370812393794870340740388973995973170817715977454364034059635720323985594026660715808206900896906490184448264408499757189205369141637102468140540251739624963397126829944601541637852567468113429451709206194808106535094608603530682063169461301120088192847905583413717632343977532783778101581505323982765034072378536569231989499276807015884668603256997215489137102994789203801371963698987796836408696978829483127316906594292438950936316858361822136377082568039282564393606989162577353787340865500054616854659398083547921041315949718124082065412691067508097218249509105030576034189618396367496393561627929802649884325504550720586283630372344473541322730352433058103608169603186327775642178956812577324149871398739694634239767771205324994002618936051268967996900270284631960619728390797165966984413608043328388053848116747616055631179970007719675918435370884471247876163053728325141106239416259709859335081535249697151670870084032581985679421336582614642178009599934162923350842742503912078963624358795589874852325311351337060307836473476092905794172258531714907362537144695404512552494611568398065982090473437652341909503859991941669356510520832972413076249724566960454650374251285283580539113505002875577375401260273688164025845432436028536819592167584561662404322140896771868497446828622301955326081533962358903658092961939091509636906736484636773706696224590865610397387434311056661556656306139215342588767451319640359705710667177515750954275462027369323457270201468448785747293073340399028148570608295866117058710401679885850469762448225694475529409042582728293840532897968975653096353624089532450220571824248074838478247511407475539900062750030280136720242478827241292881701144702649789847818345867248193897050481036545632504817207670833094982818561080819874435909810289539563855419989748470300217767017568585115107773923854658479797690817719618312954004305646084369724599189620286291719766234487464484190197569572838118086683315116184222205272062972566586232652961513686847702341676640427860746288162268892231924062755511786530311388630406674954259603968138631097095437050194128904960203954509446977563024283885210603496244570663913327578507015113296171769110258391024193886065484695943989586051234462171490077108035847059859585369890719966788771597648552529787560826001191764882046184042093635347862368924817705430845727524880306799794457577776378455831604460312826793894804729891311806562074206902245396433052963132349499485057462230149067156354700327457446046820948580073250816645977049226228584372218217678480237295508937699827204544216921515247434896210926671764678113464821344040743666140748380958998409494386979797248128957615785917091831724963750335327188178721864911236109425432977484177276867178187323336663967514737622819053301178055612478937428370532976297972483220535879395132454840747165897826607974686436615275842783167718261509608144154420872670120831914051935689240023450471726704492845981521167740187254893988068432192095787466389024239998897223584643934961957554216260492194860607618880358763085799376318954707510503754754504091310142038667160073604340815321019897993858491756914700337444591987894947752264547564699478357541128166648607439196825762365284048018497136216586497773227254242006540583355249262520685893220737322511351721797413009807605709335011781935653969182746032386970794734553016387792362913571737439542010714531723126364731168273458624299531062470757662271326741997143463016441848862212104607229609389680367270647344907106250009330211806255127930781928370870026534466936299486927287795696973713630501515052193185524780719851502990037887250653572024102451268456847785436925453573723464064803433464042459647197774062745900171402794529192824303075233371473115014478644615541016465263559591547207975087768455559532706412672190832082590990663775848974322643577781251797378194157562691133104659447950647264460532764047056625340001866645536506795005105125486316733601204493094875965004850239034613620181032880587750634169517035765100374507308128365121182733593864811242625753412706528960685876124648674538078317515668176611191358669374690760650096781719916232292945579017873311496752007850512483600348023889546018360629277235624301921518591207944494552551573341420793849211333235210614160983738476513692071034251327234805410968639121458016371208439563167198590215284153918015503888343229779881311933489252536386866306283474858099480279281521453302708895088332474264763378171645815946166181002637875622558397503838425338428646107373378438988904958191984676253513761619490927958230199748212353804055129897104938042930323439658449099458822432244603525136091258980750305893434044779997499661029089767140874736093648643636116426345794053805914823501962967186172935702451727284255469079038418010936059268835945682591016954657502772037564810539292966768629259136090909709157852911742068446941138500943396759077171666630106533893154183066052604621862443966991515249323042059750832995240900248953869086995864196271531715917602786132397943187255035308795242359829311617553664758288127195483953439340176823696451677194875981520616394697026679371981454406199914836797537799028515791315617867649112908644919563743039582982028543896548215412276012442838398471460608484430537661019287916997164985240634970125093094901403137113273203399670855545976653547125909918354991294933819017718904861713048249868489149876697532413833907678478747756306699972448245972633944447952595291012658733817632941859013447249424638314755714291862034413818709881313747527581198340450277905965884951662632949830262725409839407169288268069171784121863060495647627160739200034349142172714826027497856542562970863272650859157729358504708530944497318805054570797890285066961510741361889900417133505515901714810612570541495195267014488404318323477788218689729585937210160399270951312133289321018207877656016573048362003621800788134333865321319522885621704489608918630829614386650025581713918111432983798576775421525457200271926764799877083681181559017501152607957715035927695956045575087769022221847524976711261869274602887088432230604499509381914015022867091615172551264280572981557843912442011809287545300971764841698442952735554628874531467822184527380566683708264816853970150234925980442429459324602701991830208224943863190370903127491372504495827052177713641352262931346835977056239452676386701221613960358287829283332473957797739118511989452606555950360981359524548677252619640042936445770222405671552109149274350831218532075694930534402474484215429544467528195725499078454591607872085190251719496863340687388003010404201000251587687818316961649045791763666883852291602968101985690066927217898349292763661979598467843660178292847064623533096664204347580185702620992677451233389175324072891322124357976083552144978798982700726430097013501491673703718257698193560124564136315478659421876196568727947486760475721101764224356460365004915102676870084923782481985305652132995119671230227074178580117444187605706738371127447193079789014445104700946495573176262052048246799331692080577520332460387135047635310523886704482645661454466433301748433730654430550219774574183147322568217232545017627433077126145634616812343323983021989652724808191525912763380841567564580315030792966490075162205817525973819435191482917063710264035232833072189780985579259257957565798763282866396377489173451601687411222167730807477247850784836276373164713228428062928322527080881574778448963567425416519810901219223726976559629321258883749027253692903631256520956928138134064230925189750322218547647454445029060260263407712615213827226870570409729041145559520563857378510994329415091373847667261513162513050156813007402117567291867526327268188291941380825924924087932241804921079440532306847386416783981452805714691094983681733165462238059810891078404518127682366662178757765539019012321781905979509182637390770557983396004559328036546031282338638772626140898961623578271878411379062239924247268526629572721781489028131646933462064642440878023959640089672019902490061618626354673394123144928094744923889523010582528569356604444139018771657394485598217915317627074645081286662839575688202603567509420721082876323042596487695295821100337051314814332125948788011040131273793364881846406294340263083036668194559724139867725033293907870347063412155577699623437246236352612923863187596979162429916817482475612317103851769200270433832549338540686430286183322335861886720460997704290276285903997548480884220697733807927908484333879998117579728730200994521495876300417843259973051473240682813502218439819002173266602028546627990807362695386364955074336668028360750912388819921111402307219370189300726840897699729459939910671181378170204727833536462526424826614633376412454132907650557936252731058353537244608135208936772534059192869954860535971680077439789872177039153336989780303130720745095505903411517746863110096751520411490177148518591029288970837300624842384033458562432251704307068765886463645797502627071545340816051986934070205692808616932217682797007539516408205915435702622926538784069936139899437822059056577153762266588899702800045184866506003257321964532417330609825714168194449272508295611525938063175178174671971205118482451798796215602398117849383366169091089638278987581413466120841283069170749791785076713880848409510643953206738703289286980807396741172723491638134038404422662022676857545084098162583441451529763525783300695292957115368550197257010005731260222802285905328007640098101354600894370407224540914161677634442402788137377861856887898097034865296901467286220937845114073403176733510477374731017512395543747565170517867044151325721368584922665923371307171519010916684724066540170784901507751247743009491550980046417829791247541440299719094514640217787457646313969931124512888093948371918890835682893192821337864535712389964787004567368372041255366093787166498480141698804906919242531413163153984187831582618789145401994482115249614608722110233302161670628925159767652427968792825033208367564125146959350138423689573866544129243015631146395900820962761295923730288440163834757110645574926710355908081624304793845548186639042627200348502392162701885781622809639258494729394685524020714799989360450904121357647653426088513590469313676547930830712933756543971623644272690886098000393988982637664345617106221623759905771355778888996634842386838797747416587491331492754551167744583240099881855164211662607763305200268686290592495649328275303430260016216891616428262878618008845302591789226696037201885066561205179684842755687134473547162604700990450694436226797538721069598361429181543908599797665838572759919573556540599663122352424580746004441713887071036297466097715356303215103463205867120058303347432486573700007635503066110623992327966988599485701384986340538137919166265910412794133932240543196749614506771670354264612272570033063691058799537799018028779723903112255117565514821044383142872773204397849859974811300907273540158970170062734683564278434995179094036025990529694036232423440390256973546268714488997758664986412056133602944416382858841196406585512290702879288452842844818232465265768868882188329601042675236404186747715310545356108705806090738457343750733931696336901027623720410712375312708980844997962731227020551247316753314693325789859190892193741864282078968104406764497317111177035413252452359531628089166320166069277801519003414476626802836880272046725922548212453530520244567701613910588617339811949111728354883404524203519390947524140142074390681774116941437726363924278932215782972112069388204416808943642800607144193931680719747391580488528480041235755041709914522151823596764277492502703580683264398939541733485802613889825925022697963607000970030663777375793372396255970798875468255264407736550441264121168779787233368727987587315274725295883476523675202234386827953777223321830877546095631530327353183025025209816766691854915421199833805057392729878274125381404704297498429589244219258596618742981006499737013108485625742591262159385070206756540195691397928747514163110258759271345160806673864703279862889744580635159541998482683757149780438415784734332639001238162372211793772804580014086580330601590568114189510018187283781995018023286801563288420773821014380840761864714535090090943341126867772562329754095898279740771343592190618808358124825294035945904066667414547017202768565886599825267882518211956685655114805432720716060319129231567679906832370907098880392912795810073528865307234063234765636340699754123608823819549556165956298812611372979374147684479861176417564045512215786125470368753035340493911065160939153371379489017793143880561694249882903924517921989725504877679459032361731717295029184645037539445415760938339193270452532541389928316990293411923216291051284055773909431983292874871362163124529930150846912906824568255314708127888011952861433195657969926331563326975696836617859427627252874669425490182817889460790356872182858016251126964548742173903839687263370630496726718353084720970420130866867558072392337924125619828251129241440583640547465229596379892246758445189493233305452784451508990669604734737443511017113613096857441372859771789803181353752940788320909032812843867649948420301525264053807998929417102377364793857193057427831287219371156177189699630199580508247600599017736194870415979721117179965557605881989361413556164865615737948097496578281646916171787655206419811022492582404877168137683060845461044598390690928501736785184638972540197067391563242405329745135634434211906086439997736944613653267211544878136756287919018299064410074606260524748118675966605118421384397527200127286179768518510513159155699372436304507239786043763858208686186748205491962290276365768087874504473761787542130789294675397570532257138544082872117921583614937497241883505980419533217789610296130208027614172423959922974409669019252018608173113332477195319975218946316927341109252441381487983479926318463386443396912873183485789227273438961517104542275848209170812906475319671760588573910753345228545613492208194175484481262754027640958511521128308996365472530500262691968392303151132000983529492941563107693064963590825702850245377060220122034153552546837999120142112979382230608498113614701361535487293761715282918726614849208211197184281995756162421465137760745201610593818627854925373482030069666811071697124570695662635576399593612264222579449894315035716876554533346171566745720615686068262965976252178182203658437698471736009329663997566409199269326878485917293880050660821159992087733077973203060389392180704787205496792372511939858419738079207069280568899565532637339617767994521481966926775916778923951163719335929312953879019546345715786250905026328340428659619668824853168540413702087852167946524174450514767303889840056908958560586308820646388466263420342586038174595812051846712900692633313958014282903577485068391045156207003091824500178628699355492378570234960497610429970119054441391742013414055510676059419501130201396346466489940126059498781926848418197721733829273525560996222833184040196662086153124779178409683413965915063405910666390843899550446047211329839724238117191123998422164848299031085874948774845245706713915620920004563558815991148570766083435467785126675348638739038269510137684813647247403488679283632050525288907389081520891312293118835156095509668289335417759296439568387098542674230423110587412594328841459434029155042592091456315604954883059258209307850015941637861992232314244454575142421762636874538581422228968744317722722824151891478312391515202997401502258100092185762125898989776134279816102646644668684620206675032320237598051950274543991566074541178811080146426601264216307808261574865487708466551891391521215942037014223291090197386786335853254580012607483017187863727876473682123476380949014094923233833344384102772212959345396076204412956348213711413695815250708343367453852398588263689406837987293686190479587561610346755803611785136521736383312197133289119641287537439843975368949054641024480405997443568285972741909090207837231906588313105570515794636199945696368387184490489147272088534609486977783547186332757663036608673016646219786232882407071060845837344256548879075030138080056237984172592951401384442176872693822989652922183051733079229906120989990179476506624690089525710709570038254456533180252564390215747015399488764243099255462991802629957079154421913996221342798260326096802339192814685355456867997952761778623355036120219076019133030485793093875068782903610678466902001615579957513554750087177993621472205900268477254801838190888334436030264922926820111426617668325427279480405054760779842099230154573088416920718970028215490361302464662295176552843563893536896575613284963333251811684815226069669251241971702420437404867722825695872314073579875682545634011873209250324882120169746538979087471998875194993584675849984111896112189040188714758796339469149365741120046271822958297609721342738475490243439978888316338780374683613005100715405349362276492370912295648789840513434165319967751324296737198582440363381940437109581679740327451237070074775050115047394256360643915931051707456925143587902159699702387435567297731834916189206829064303937489442304971617386673592007517162193665932682928608292719290222914673779430081224954567208779204362082779513137340760988506403706866397737915448657955766585187046618397239351566437145286227197191414077019436613752830267613442109712723369826405526105013610898155942366964737551381582135779397350635552049588469632117905856198766152043474812200473656575535002168645453429400091252425262207057235958766572905925094088537379241287811264138011246398748287546986161768406689608074251289971116629682626865850984867246968341388898639094252195190232560102912436900018936081885733232212512339431090952490331042181765319668512962986487039890912908602988749228133114354237579212814660254319082850405060994439642714700122310547429560406417087390701410254283495071072238537708132942072369015727422427705610041859919261096884270002908478423378416582495574514008402037709834166742287342159334585011074055536629759362559357754553511596902926955889770952332521059819853264685303364639328238004032815752267978003832525573981890701799864056501306199959210919122083761425998618042698602260226192596207854356751456187807729078537385696788247048115558435920710389957235781443753130688666576102295201296140249406098808325261708312737639813876658106263758151123708474807694228876220114794408477524060702049976804980633787404473004342816785845993374899914387576099933051418171179051667524295930364917010114225497865669295940986216304264405093066808289150971754394349809682375306383772917689076750998279539838512083576449696137658661911318383820094623420720887824367743476810011834435214979544727491837768745927235527487636877188423162147752433918183667680891253851859812392715154948398371709795040052709461349126045208720796650598861786160691638930999613519628794509610334847636374529425672922485362573521225264011294280539472373575730013353988080329814775160572397348737202741000955890470175043140595433241557265823859077453558993086699554610843203083081487484503339727372303310125134942517416466342456426930387871814160726155173038810656137673390320087005865603476240040509854415331647873589780164033555553916786664059032029609288405143745713389331433791394608357136745219467221873404444302191451266421009516097998524470538007894775488231505996297921355564522666861586326233462258201769665281141639046827138576193456513637396523959874574505466835728062648099035557258440363199770634408858610739645234072807718536212774495896338408278843864594123508963777670399467190009746754630871996060342478076069646001611634949102613770248517659684989099897166484004075988798933109140361887355342358392521283514858303518881351071809796301960383337388479870552513257201782523138965079447235354276364772200945952829300972419579553476892935742168246919430300815179665052988967535498027207389082098152658764227401089786954651993046767650479803274532689475887789349833879186035072452625192141342273986373240793752926085862999086083905249679994114918054862845692543129487502713037521531386242624654855565758279274769722683992650982223863009133852662363469853649432774977231223638242695954237407610425829839790618642091363074280977032672468451129525279390926406021294093235804947112411667497968773807529077750474398217910475537197652727261852605627427142379392628655489712915202312106141169523840382783137205895231842502712868141047049967003688831070262410904858243825237632789953525368918241758548083460835256792620505803286628110449379832123709163440085395204967193993992327830983506613959247847136390204192315407241162719406514592127303840059994952497099066154607382651196376317729299885902594416715211794947521149033244365219343996496846507838397405247392803899168369973323685510880497512259720096103716658508808678453233279817463257887815354901624590522227517287494917660732819188334755471937465987917427709320895992268964178338902191970762097194455884143705519299576947037121523722024128146859800034326336144878554398612980452991875006041831332104381256563307760450346002484874599003199534970177096741121203012319673338891366885880407209030533065454626902360331666595705187483239216984425968702905512960778685272416108970253009066942207891633513963345193057777764289154186716183538088341495437429432361889268782154390293014957576868616601569924819494764470004127363218292546758925862246512495582585862351437150804990939689936781830969593100861257973438409765501566093285653455161163231911251196717654988332037480020849676482956806602744814365709573474287289939341586791765278761548584219655875204252079105543328195828865593935318593514435132681443636047670676845421096554684144809469961017231415307582619573390358294539656608017433756578526469057539328610269282909582091882763805336453658861698192856675143134478663615794018784170567567089496983210536235585333218701328606684842866132827684987209005727850044120737686085682976781937551877293057107617186638241217361906053630365094261454103325375722164032561108641552847706733767736114766791310215699413410729229883997699527408695527531780886418923281342311642375771579015343615307536739568471592894271875641311098686429086526475975798503727681143985781819796871939570357616338078455095681989274017173366986992008494339297780625851732128244075609449317589508179875211146676656223991408948173749154179086359728499030305859616920152444768965010197958984961199155847033215266612889247578166453137762493441634710766080819992504205603093318223986757605907784263332785393064850811818139368639542796142448329519897964852881585169554870755715276021811220489582764895858664041456057923560711282902999368663767867518855841460176035907776753713363187981006940221062059637297989882175760901950940831513765647820155983133000711265076438655486109110049775990598224364950699404632365853497906200791084869867563342665983774216343734936686494673079983674202848147470307622275746153226041310627974971115283808836041348714921976500233187362840484325324956640467092936048762109402118271230786743358242286284591585194822463488410341610495429457190899044530804354198810731778593606915375611021917030144339740936178802997826923116499548364208039771633539178172697097187227115953559206717271558014806213610292920988495985763875825379896831933246953808947582959942301024727998524393463228084938023180470050453427615563291588562868482542832220692222706031725038471868092655520904330377625455980797660721622404649434851282808640011860175029238364912652547374578899474713692343788768120583306916534349587326041994089211889416548928684825636692074751919528945611881630330461790072515904331758878848120510947456650540395940281752410415632977858202759145116705932866477082337261011102571349062251516250925331584422845579581679948954877753478337114448979278486100677851438915233534845201030842020856821598883568988619502714298920231370985672424690652389281571156949281521008949867950253748216152073854218796085267548657264548553754660930762130650236026377940173099352708017963656624463242816625959499054876141348581198760643870651266131042403462322500535762993935292572458440695715922852376406052802507191911001194947281390656053203555435701575773373809670105688608214282752566484920662572657598986733478737088738529235537426842507023840066124461720124475959199787896489416984947681069866288943261232563733362544623102317719795799242442041509402497387278376070302055059647076365178033959686079459621019269712564259386823896064092551777350183312033333007172835588322102002465707588724810924873377028870139310710705671034568356670794685100955541565271978348547000534716431728439954598989898939857208656039119432686047293721070583345824514129520245502902245772112491091248528608549763660455412319437710309347795656934727020914284647342067921451355618988397225309499874655039315981252344404502627608305609082147288766910298098636471949127015176239372954484068952582031010355016861589873303404593622334759554837390639985355780176871330587912029834016330950219108512757507490455901980682458104101704334865036250050354206005406338518450075909257001599821242367980540176153106386231770604470279511640902454834527068939112082262616510796316009868026295774143749318746579490802994432004098289720580141272072546028924768447341064924724068748528510952476177487759884479858762041826227002307046602637830512533698377605655307364831225812847648542401034470210722749007860131452140776639502790992784476780165095921507154030164033185530559119232990924307375992529515744042424818252292363707457343022705120375346457317333177335768925291239516573000362543942305419102085568776210291736563090821743991224642036417253736304477299716313907952812349868724851248032443105283040164495619106021283852372209937879065391087847685856931587827416476346484174459802424923259967681577299784843203242822914401593786151919126727821678426393674781354060422828502031939513632572288915173320342144085608282618393968679149908764168016718548229429377962494571770246695636119749870143049429926363975328966898373570011737778922310000415997260815069584330097052480062573651271859971302389271490829514008583956061174680400908612862377508289493752423859927447793008087535429917598529818130900982484057735193352463148275371367343532647950999435664956331449303128614313064241511316688769467591013811051378577902033923138956099977832273983553400809634310036253013695983409063384784791851995912138928755157427398274465170904985378041252625581922123227331858094666569375283847130030534910352214965065356452281402969403573362220263766483080877804413543443362318098088348026521091003731936629201557700818097926835318780820739258431665641556441003078390224881937736628440865184463980250282274761851362851772284278760393998027275960582502629207200728152885000158942638152918650653627939710792048255855250380969194072588848611968902499832279350678693590271159126124116715341517821215818394861628570370469766462586124893729785986690944410210499703577689678254360341384285587349516859560968265745381439235681677184687893735853876404478840141887864465474439178649680566909674777163254600866118518867013910638469401991510716445236009892574595763279685653437705107650133069328999771506016698167032965351951251832027195029508562383169710438041901630635425678113906009674693079180683802815585318601992792884923613787729646906724036097957497402035014136703002174667668350475166467150575556588334568119732613612892195945038793939673041388183568388935878068134694451708658651550829875941252008299532017254331819659681033651423437059988076883494582336325249941982754054411972044876372503934900596606220999519114857710653464484870529709861074855922968215042728225351524673905995821335922017895664728167444504928080191375769974202958328086277063743410426777282453557874056423014623644117924790778710912441813280734485188216502358871577701954805735781954731398180548389496588550278721859262789275017433747442767664046225726213643921384988340154991662994093484246817396177169558391452825022021659667029739716150540633525864778136724655540782440733180237821351247546017694859695695556879208088406308151099537461874960254407006507458134966108352924163626731076406038996160580005787234192305653440886705157075038168096224343265822100276889623237216617311110592602785234749573681738269152725022558221333754502954921737228111996835957946350827847067490263390302329391740533539699282670249117643093940241616628444977719106519033537587446437599715197861522453652437742681625092322542964998656891231309987712525028444427154517224650344466653357928016413703378200065264259064311346382503058141862654771441595355452958665625027176363129105776771619212642793652832587658843831649063626232034169438956532310024557152954926916412987905412193263212639430079835303605371942382496208807485690483730891610495350752359278167379166474850170180718342027610541786631816593011400046485998487717687735726808426890932901029477162059114507102013150955734321895934506026409734703295959967022365088704820878742651629521713559627237696637517482737139066057136812788822523070299206355954377410918873230456851204125223999210860771965310572791991701606656464370673581820436192697952513783797063529457063522339067402567842924066411576608658511792022783411636067556875158353135445870881540772359054899069967796528570518375362980295965616044532612664498595977918281253828823071644367797696600949884371742059696078229460120210099032751702305320838356708768361292687359031992406464521181814575910034079945212230807906900225927845912417861214069238121825169640794518682845712400519299414862254294842516554334640544497324581358960066492116047551082991911286706197871687180998376156179686753304757515854687830832475110011875071068105489357412192436338621107000353108021797714152898920792907738449235034692851291837311661409556474385083748438161011888663500865785524833071241040516678414990968948912928658332977108865362176517678153888670817849806501694955224995365748895484631780617216947517531113289212120111967746876906716547080519955097832150866598876405079668530553647922272033434792102544096712657260451588772659070183248281247318204960053345148212565284617516018148319048315338461877770492575240193467053810899714997990344028070682009762880602613656659781349243908743073365977877677293970564993761350424077064716646548116991954566013800833078978758876455222434237221358814928586168829396520944089459713470076220998799891658474599981579450447723667633117338293361633147841296804214834407540904606236009399804069877959375803640483153179086378930282452127733523411299624404623093966768832106350268909646410334692324978265985426904932218755624051538822309733054176243380699213362374480869134268370709491956148447037072951424394300822589628076035971042010949807341582920175644478942490974720382390936896729988631457329712895884965845646487926730925440834900197030111616342486262234976788982425448467586509858042433802919066335047535861764907325217627234519245497585039201244833643555064170434468919372939090022595601760024012398917445029039400106501589825821759280302926912456516231438818402658362553716597765418143243602910873339960345162325045274619093208213626355378571278490203838962860441943431531834352530281545341541989500072510672648640051670174705688549735099196497146436488568708671109921199718844879817641918153925493413995963362946956746355295285136577166171212976775544370946733296891049875143336401375512656695924508334769485228785460784674697810635291861638098609631059735434302166558400597081502853171872621211716714888561616266727966645734802299657250589824609394552348323104050728464316713559045481262762414167477204339091435065313969935611374233875675965760159841216926940493474222262164029764149942847481194055898309373516836731224690834730882868615564133043043081718296964272426345548587127785864961821231762779013830627073333641880483052669769304873650215415936837509743684525997692354914502703246804942367779552981612872507958311350687848325148851748950379125478357266387401946547503941114778611256119673902249585030323527161685833820881603989071702160309889557679839045566872354856001221825582304147244435622115025739616718594394351288183547261559196475042119508038853931947143120808446050648134577723443054291547827042011082925127793322371474501977906809570955217063232712759938000889153650094674623194383523397672478731974571857328007060925606908402629575980978152728177746411469483866824066367906642412602470398189558645871501221510936686900639332446219843667449102387288502504716933836635457338546438254829238040337061440459129778649799684955664725661917756823093101335226432272147258365020865079537562866058861967451722653618143597402665270075277707276234225263083498045192763320732048255859140648902638178403168536187718776663440203959519164305198470665861936864296392626195490884085128751359976804482451047694315635745666203202476423625331446174550012059522178179263273082069279697810304287683211566607549567997092648065707298866319087259786433709046800325497731579842835396466398163665544891930678990534373679664380068501634179181928265537874606436117076373339336027836925367547288626302489355394282373673658901702802470719185704815719580540302821179162227622476660745555532274265222730486468515537631688577351417991646623222605435391520627496795795390995191314936175608930784014363747253044696861166916056197197917564376172222644537298703863659063431992054250752920460597917765065625711249811100447280197555092871681391630822867847764174872276966730412507914861168331267531971751669617674668019432885050916667947716293846106278675161205067335949469386996481472051539508867984122758034695617447905791763357194816392391114811759649774834238350819426456270109507428243292321990499556743124417945609302959136289885834907711765849791628165025219155916922671962588036825071248605307058210033885315312211214185442877587821584221522625429285242141872692109372784479804126430990993366635111387752241327721350690967051160525846228748533144573900740059784354820019916288083674915097979818889093961361179132944120645327053097885909002848044814404307900225219633566954512116816457045468526333761413318479290465699546378465305492995159894469808225252188424483262273592651193050306411701801221404220856992682080465037559579842900107964490567307314751958976059174477422700324511357585634285108837713215744697886516111180916421910080002912982783535743457481376438298264848623436225026268624598827356729606142091304521417371725496426018031522900700029123938637555437766499708381177292710789046321097619945392755816964171762297635591036862974113682278680858768228157494450270430176759089485842081261157422209076868382924865088113253194834074192946357787066525979975452321194903984713341641511965212963236725264717132821315665098429807524290243506890758419349546081805055336129639354883449774233410963129964939608517625050840835633672848409092936689306826853539398938925460761340312152389006827349283447337846264959982955727312541316301333966266145234593916692570102236948159139482048967386216610594055350477957465776570572635511069661912662034944194503896374366166036869757690337773363583538220529544379991739556697306468261580479716808233710816321917975347132611571797364773900648378889775224392321256210566946420142606876667110168488013299427493868792146229656232375551460634138277878634888161163464464319303120748605482754287605742663371028417371147813180616855215472395728356835022100240837301450574642533213315461887121167290066448204164783496531738283270073520062906597554040781903282691716007183606037559253950053784081134959762321754916655074545194022121377718363091768791309537199931024705413137105280354479125183525380156317263378331160309290610214109000048380295412282067686676911584394777355742089109594717530484514684790963550558288053605294881374972368448693529348554303990284699266583541792771460406148332017339604356193968946437667936492992372796239854935646311608155012925016450867637573784982356697233894497512391015522511057534426987752637909120040114810539723181269228708338642239636492476119913849725279763163110755129760954490831263753218303425414204165091334935494628903535367506770968967573825850372933334251675738200127099677796885281692279083224967344696499938966604126023534655860836499987132197540743641538623352919587060320823483521756197368984297848649448172286965537535668401066720600342545238017964141715652748336916125308593029392768264941225982029024778693948457797562107134731022052009974577234012877426551628049592455029470512959215410353983418876381125859141139975340454657947004393390064410251845028836667191666040093239251802515910333079095095953828776156182315426933591909769032358978214889050485055495645016964458557881727388247136864874134755073881062814472043890613056983413553809574197636514365747965511959629530337620744122475597972158551007971362330010151674430493817578639357195716907172931755946802433269993664580347160038330876313082586694232499632756466341934290665779507902304798166162941293445767132952271731327866062016993558807818938748786069951527486416719260120864424942005573673388732157110865767554717269090377370037709431273095111671505851215257861634667198168930976127022933884048715436756146362668580858063602924830876787521819140628580400386887452447285285091230737517017777713651646651997567280221394180075855840498142596464729876320667372023713397620072611077278167762793796831973217318543392422787749046450690178574547431901552449841711150724855055245869071600471443639253544624741195696054883154771144955306408742571226259160739892456170223878564538253152432662408875274624268903936034202910231137911826006421519686671754578120880486556784407745527710490767103040324344490981768829893213809228224059082113781555383084191571897621639100253889837381447554626240933096031293121118416523403013049354576229810583417488328115637154903320069595754599140331325763172940090287097346268633090674524566815037091207295822881348745220109026315957764832791246481555945182395320018315439915738555101167044917522591069611996683847725062210007451774279608741638543916740433581415249787098179201215432381718661786271667616006596297356862645720719583485364260339595363542549331212710145029461277184326868212737221792407487982582411422009799163588707897415523380648759863695172462383421763152046345680084066334267180584599817634218114518335163077993546563095004138210145168186007566028869559800818146796159229257213615975984310850053798948263482524931980429542328440633545251509573814970517714704607220023082056817350377965936456767651923963063488191926755786719127621698578034772417819278743879326576616514050732093429226588823536789334253243458727535521533540589359878595466397402279788536444825118462088495394777685712471349406684005795214573262992168027403221179228071816549337581810332201691611053928579665009317548883692514438855641802036724840839355605068507283502352925313729914694112311514047060508445021324595584567499948073924393036445540736701523819621609754479921772314892220424275481803016256008265453713389773613445023954657111169841578334876203418531593727192655215751411640686734687833746595455811251749818705327608336512818805715475621367768863666515264588901049981249790684967448576687347007333912351203634088007788013632506959882904490634599295119151155215708643810972361022139157906176014379840484429531928727059097174185555505498265672364040828597172643961782442207870239578461084094402754588674201624623298288375452686228106853865650968138962680625355851869599783429977299330004379052489637034544327144410752731962791712217908552672026267766097885458347411217596579537303719250086328642752757755868256256598671052446640429478023798604798513651933155886638892518206115011815082645158249132349591745890122709560916712883312433352914321784331870565640848295593668788395766472449365074656011352888756857919967963751374887168781217348736486076507821101712170782652116558809887223896989029522601988760784473802383921814621871778692956952976596519266661482301572309612154900612215904398399944349335854720353305443820615219456961915290214619169210430202873754593118871727229866303892665779239667702547892250411613522910753904162893108888853524412293841898002044407748469628660005628695326618579334566284896884023120898838730380210378241146232531671930815371602349915235709757323748565258670451734576669313007071969518985115353579463518316858480623574242711346661424478540828462396092658658141665913329096680616045385600166381741877189093589559163455468999873192127637943000385837052103192654173940576020253392750908651206026619117587393314932258737863137160425246357691865630391580116538224675928050984436575283785791670963889264295213803788920709504685296805974228283746857122553615662341606846674884373533896745279274065056449090275035529458758462047324960143761268860428402842703437306200411833259119364831683245290348118599097782809985669914739829712075773772204309109229551847080875558159310914681633986857841452912450589068725676935661720929546478027635737092004837706748039476203751095871451182172643073321438450360379374765766759896655064298884175949459233393283871434746622605344291505860077475674893820315589701027978615127186962578930614051199053798361567772958005140831300051255628205176091772532328085538740766429921793133859345477903039067933509559594405349486460989638201678587620830092455922279150687430120791425350842532369681990702107561272242880486796191601588777452166225178553938689161252083670728673645157369346527900398094658642408056457052220292157703568090964558196427157615977004753061466866660583166250475687667013691270169243374828376875753300047617251299291791417821282323829894940843159903240115335542475825825045974611654613501751419954101243387589660920417913701648919934294013663300012324240773325316461223812911728345686960922332281421998430879845268134640114538965489065745674692906090441180377256306283491746899202814020305571979785711162950479319014542034044265467814203011913587701611425052895662545484747814740489673799979371069976317678868471138046185147470755677505866272955980660497544243696935416385466735508751540277293640184746470906814438715102574076618443912021088647503840407551351992825529101268590387013388859719634940736022813259052193094823314676993312703221141042295897026876370260035121337191824950151625592961517541798356461867117860479125483916541919497332000888484445267315561103673712763611182153972572101088097550650639669858845766407687846746967435780712198036736294392618277646865658778921227701545732503912858379880405926950053431354270608432238300228161424144103511446733895665692089306476900104479479226147619941150916908017557883147273298899902529975092326616328488898115706452461394367170209514985245252754399384446943992891006721591944886172622926035367010764716455327890736666359519791415909192871461067311578721623251711433300986358493072387482438605122978116434871808037744474811158456485605511286007384789924887871292664629020442868998758875059909271822341313009590997595129873889201471797214293085301353275242748774652393567392322609727985220431154855900023804591359401665663877936725369053512906468287761423204912247380652198533326218933464740387360849177190123230753761483648990896255416459122756809543270867806807323058353838889785890775671509278381598833227000613316682281408784584607906501606556635671738134340274623246107759923395032652683205447660423767190461224900579593587616567399188982569783800743957208412050649576369513947591538694615005068009231128095385826751044269672038265405993104687652435575574591651368938732359997100130981873199524360980846996770378994527906926324125857348506974062508170737854587199211369679828980382355297888118499526139865917172252639364278581448225519965019014666635084467801673169706556446114804474390414119162609025024392038449664676082570156726150651224043415981116726396775324385358137662355803358394296096323031291424882701420493941087582319233810720660848962489762498990695564111811337692842244081721555919243773164220369362072980331346222405974098290170188685541377337804111490684694807457954052404970589460855407436042605518149763864412898114936963206014705873673171355671304072843881350211780808911778642539025074279977929649222454279150161651844895096586199683753385126545905527917492887379219528569955312053990755340197469211324049338388199730445623643200307759743984398591668783548940168771567169381876680593703016639084818129826832956433937116732832808741697282284081152639096496862129121057611973346104437926776355391394179085585679122731934971834758041064752402068675863537576707004349377378740832636298070474334478115957615161374059828631400057543610460875158145979539108256477363548063929516389706643807080434018319592628380619120328841451235610075080604541021239656585793181375609765976040551736867152577220792746433092997613993454489012877801995664082784258512984870708372489783191455282983816792612333223435351977402786810390483611875645559740141276287737822496110448141159637023143396024763448132812614395583238354231124311320709953881258607686368427029321941133269175835532385239717602417297096749876796540074251803627834393691532912367480915317488969092847412521693609685547487972470450792063093651027193509506312952707325849832580610313139411882229509120353105328882186300203599126107515181646446582216114615981492082312297488515400707725291448852902391351217809590354867956521368686672473228665473429921105268560624888667628083657727055893255753844146704788566342808843923650838884965515740553219781487153423933809859303851583053631009078653002439070732055549056693189152395527822227627073010408704043737901224415654834983341638772030655000503351923054802450493425657017489207509683915630650457455371017833805548354054009373235624275097996960248260557303897338938385986785561780967777885176132246697695331686993636022774017931271253659012476664660268797077476295033758686068589410392731337884338717042476528994841960581989776070795427400796954466913391780607168094842240628472900314642894338237061034214752287420419142980269358625063476230194725554792450857552781325492851812903700300458996259564019511867966362341953668983197677778384541090814858524319919030197855849302670034021575650709606058781376426358508672535687913892042200555307081482296373155616381986235476035918277901416638426494103652318664300124506948923480123602884948378038689282991181796604406678274487895096646790859254144618439836403760253460238217258607040186810920960095369127839001774073979231091536576882222910960127788090480594176978537282557148712336763223543944058151958491546562614664378996431060496192519226975701605439286013180638403890098503821248168927138746682180483608556258187965804647269334375113453839394449055387580641364094265783386038196100397274776309712227993130303593634143934796631038158644270271050390066690119794787896273027140424565891773540132326319743947969606632484480859805617059028742287247630681596107388209913915238161163010051075310928044686533349869380346751400959400568742067375678324720324838949040301976041579662162879595191268867329427180373101764405423391091872798021912931192671715577048143252399628130840268681313946614582792252544717596478699073029727260820660624841286412488767088051906899948507944718285154961396862959607770645373767201665515955540387303665255599382259059795113286373344209960644986593070175520289940208209722864510016690462705793216645220169211289346504620431723231627652114303897396893102341528850375520930471022729516002366172021014585534663318241144746889745065457867976737423645588148649246447930366763020866202799974834734622474671007160572666529862954738659399462464822854573929246548568655036128406362185344546910125609568843058512218122513625500046593975340606607946528110945952361739923689332967270750846367877531698762869718645042864763628116376160520734160393697940433580602476985275231190339354677320448147351612460172235456222454131970779541931312251826479579927470097065030096790078260890533421361771935586039151651778422971407368798546173539132228501451042299729585025354841608947189160742344934707914477863967368749532073419123711230907309623654599233546775077831505086866229940952245261834640155895886411958565137815809010312115152585293202141473712995867821768087667005198144308195275596654821934573638167841468424193831428036669865563813633021980431050609925503113509664760273431991306869887699372007603298269793237243865588395970152169799896140210705309527497071556974103812491052962692562316052244502413021865371408109214273846144194260105733837512458906976699649423860989927307055481266175495790340405266080673424112333883718937280373597297502204335881440734234956272845865836987963181273997427897141669595033389449824481471013058822049498172259705817239754490187683541564438269665401395005547414982795915411816681996532046228123281407325510283001385325776732479553602086908139525310903800084878478291957127592274534975571303475738525961988194840096611173077537762670346168942861885707153557252442052850308873430809536070201792092425627098453356359832724067491687804025798116023939838865329658584072285733226589612811911749212229052114233751363873551658301101255383148907109081632731509695304953109097518237053110774162768475077726333818760496125889511208775286460675563825995917835125901049756465179146530788908118885158963298235303518994362399616979541713323614545434020170341725515005557579786280503102830810048237312561517592809516010240407070725097201318735757018095873999042940696904787819690761808873970068417965837508288079493190725346400281219394780842379502098546497923432347886980394235616553519127967910495214603387769765085021355044096890731313772385112107594502593062496262051262989206087267021860598954746710797251074675664915497747575361193754204175538907899034074149429656042683768983185595037441415886540563728843482713503269847813194011950283682838746221378515885808822818209569124947532149421452930831526359642220471043045982655325348411612147473782370580881948270478242815851283873190916104368213316544052407122115562403835332900451440258627540340475629945562457097372526604406305591627558814431558343785811514534548203596473161240538839760002669119304998358872964434665317976670223946686942820725437456718352895940424024797353315702613152750678169484711539069018908729510531332882054936069153372613019487207009112416661982090323482498287276865853485539978077209203995159018979460796082405683548770072778978661618937270162024524816130467471450228074698487771345705145890502433931694826100269464082988924082105002426142570170717048835846595728688866534801615650584765059568709814767651063199763168192301482352523636421988628624025587628039969124292254139716607815014249421669286434488427917586065487729398270407722297686601202902551101917717072860506389402512970244902288230372868754527894229485966258602744523494836929780927189636349669549267957938390194655851417175279554256618262247167465586962749387563050253127329138012529715527111361954190081638051763708616396186482614771599236076034813024580135372975781736529813923197816167287900676086767207202380353086910835398841142890850655831757508223008658512272845308006146789347230038792346199481968433613238561778231563434139318063961313834586900073036533065074179520824375482427351006017736781971548602613732977815429704461664448980812670387891392060034255099167592564246073279076695833262463279680639874175264442216461979357367437265858869617817288140371764115012477940153664790406687636928841083470472614547137111355780733814952688305714939305453344845007886790981549695680076053495301908183915160035742686079172902590801899465622012870360713464211475845993804752772611535489794964843105997024129058751178178068947891335029959172926579867713736622258116686562954296969193008196157399419353783866643165620769154314460009735156820403295180107780906493535079272502236142137163335475863725013878464372180134356779582768038856713256886686809859475228249225413381425101667243447443924375183020006166279593221415944945888355464714514979176956961764531613315796014534179579458092509580050588379837467478321217846632131447517611977132014334926911113625206469454101343775372277960524948994446512623861597258809113956551286678092839958173697342160204439186058557428506398560293951115379589252362713259330147774825381310186030134851308237820378551379078654495705312790282414415739550017635404389911175318399615444600574881786389407902501131267990229000386291170963945458823622464493391455012046517621947752637183518298717453074336167121656952774390531544670003999246216416707469703741198920655186084672118557027642201295523489649964012092860438449292056597281892463552375251413594290240165268182845432982294577631289257544162801141549493428437752029061836072642785708097638703572309992741334712588550386627013605461047482308690726099671921708635020767153491290256479621009660561193275613588690506210706967535438928904241738193143414161094457254218748260386269892381666691395563172147909323019158065000411533977141933781629557314488093859276492463919986578592525992252620576660729917153859843698859127530347882407285735978064605130427961032109119398000643275666045154687775547556807457111903715062148813168991201678129819654668505141850064283160547915222052603555117837347839657926411993803355008679486379391512255849921403670531834353078206966937770978222614424142872747586372788562652744183762317508678692981045679599847832359584087481600251412207441027075623988927194494595249474302895906201326887893700117892072300556262473827207009512422445197262640594410701459859777646058977978596449815560072527225126109982909864990776115752572767907849025149781044871753406540876468300815822240440509453627284184255284460285752352017878576721155807086243489843630440729909730509031020531508301196045844949512982386799699709440879964875534781243756443735738570279192751241967106829372882679657156750305951101296803623074322806158820878686491879369177184731348046441053955068054388382559560522153835833023352241427750064300773447357924763283648773859096661840208493894207059467581746487371897120309609902065480220586546087968546448572908211422753252068928995282582327922176532407889422005841037152577228772361814778472273930688460618990506967158169914359054211672766377699917654807899012663912420396552499201377318112246009613333601274774692997860393416601618742766886721080114857945283190861371694248104737480725857248987788785363174211960805677571792425685293643262618777130590293401262991196209845197271004812015242053066003908281181095182609703530366421427567199432154364498848343758554284059536047222483689569835337419782916884327040456437301193012236841195758711208210350333900369369596754813078990042356335796159105215059363982273812752086988905909599192302983459982535136341472879611030942577328756409202197385883103116435019426695460812714597136885944836199778702428129549172519185604837892167005047982130267823936785664231508376541265116286531574008154453281214907583488468001053118973212408161874461515105291892050805748953187762383291370919657910787997980925705608647980391264016513268188634332570385217234031352302288784015448905474456749115324431268890290366347722474518286851014949237454148775431520020555274636936111312254159381826015692440112503064638740096925354085985720162375866827769102515402003571997822241925505461932337866011506879926792694400161942676580723847180677248020374815615007786349047139790943303959337415654717168517034995752570493374562101732591207759010406790056067172215373308170589229976258965132772008362331191986946582425400067864631179793739338294102075569354511840558784417332351054093854179913819817763328839297391294588125409788091292066607080553567061874776560673260917103568442372791262956097145964817775235578951494565387833510295534311014805304804599852970217898735897254250112488703657138502464697700070628968031807172901790650216454296803208964044864971706276774483329414021224726717663949138262864205817311942558536128119034020123900389387035860745669626017025716178789810413087309318835891287499821238430926499637587763447379794401873453367645276938769933451387700559218670110369714365971693455272391690154963799687900591561076132976677897964674982127512751373940193648458023786114140136716242313675858993776794897724528683672705129293583798941813062621103313346936890768004255807602425226453361252937483457034476392701637160150526024053794041822787287164122263900641937954699875077843254966888900964782248823181408808169048334427680048958967735989405449183894193087399394382482278146055774563393775205318841536043244987506690857694948989612481556890485116501309316408067360852375774034336553811165907357723172405888613358018735372418761606203883232731195052650765597814269526367764597219902667561095831656442845592503076334147493682597013632927000360437734233613740309559298597396009760368211423666214026725731797314297597769627003211861762117720908660821305846842250364200219054566777421568149930469044933898359307607477115716229193273677559203792265976604335782622940724508427135840242786151610690875528959792077545271990520384444015541820426381919012534695358402418856157561363424035442057915770915458204372890955777587307280578203499593701310762510453732731930638091998829542716530022502522145969839966301430683267067386249618915568393699271414002272579604911343825820876605695850933314237830981421496611287124442316312377904119577057973032649208616147802769824879678720266193204205705423731597956329511572565665434243875963984007914097821296527523440438982759581896927193463503566596180798501107109243294260831991709323357956632596229929946847836123789479220115637888606444704557180762500334722139636225885464519210486022485982832289079024744976192795859819310074804970125891878529218126337544450848955037200871855392405919249394089372349913116247057449931161728533155777489283259982665304899838590535845857141720088979638757033077326938067251876562928367093148142672351391289365913932610185603150973686972350202052278153167046804835602564150087287359039617545646751445044073615915101379134392683769082745300714170526551231660983554119941941834208308543405597761525715173919001915226329192075079055724023772162576860507314293373464174488241554055626304815960449340939696854780320057707528774855801249361618696094301373259499893910079151552257092225246337116196669063454130073515498854097338562866921377963785705302527198676615813029782549998764693970822541195451967331708929745706082148300571215048684728742897663386654452488502806639393256083775549430999246973051394378209754144764437886027651672667231339090765684043703583475927390621296730469949229358834409489539815377744942859141595618086571155042927718803116575507698310417499715044766442114088770024200530616862188025018878368927530248158040438449194980041522576817151502846533182454170193400378948515449861107814433896582570484219386283154971383197126795319179924837543068287369325578266467294237079163484639876765982241783962346822590538824511294353801700888922038440987464325402937572097840445800854597021323582744171622447794360238594861136461201766094301787444022907830320068485975285529507196487067930456831843324367319837388113750438882084731150734267933141590175722019634369741851224780972992821686278923183477001088333248616532322530266801767249427285372913763580378990741614740409194553247335378798157643487496068256308634951452897412561069295317432273299937767730013453102406270251937168568439122136589085888992269380863715656424282282428857434688165449503305325129503571049656017273250849148073569072323345864310373155958484731764401671910678248885675666269002435372181888469231076724811548927649577623159671526997786818882665465310162026961860648731934144924716827432672579067327449218902614997746235955160172634724622786760598726901695059306188985872472068757542342552616895798131572452742798392438509499242601788651545591627078913651593643291517522788718548565609951807972521988671447973592223953318685208906875394421577490262315736129556138826374906630615137623697172377662693662481640266733733856006544618242623748161244595469566524511895806704543912771224502029048447623418174357305683814537027183858425172466089436574798472793296161271951368405369118561908657399786153662795157122954096095464276017232768335600996703041817828675660765034945799958796161400071613129691076740921240526123035680136836428282780061212081854243949994088536075232013337994953423077062989552557229210999856675291461825799903602984073436590379550575667852697275401813738465104543454852992384662908142826018609977640742989508716605204384924877432341598403891538430360174021541468304053608714219233644750697361889840068230121024521275315146865111911024007914935406568689690435914875195410206239396621470477337719264859478274318613911448413199670749046114780755537771649024219825378101720324005850412008847975939681140702743327849844845090922063775698278382476544309985126389082723714202429296116110112862101423775698994175651725554319163463105127719210994742227081014531855687920146975346378144911709046398896073959950079089305435014397184229324804623549852152991192420571928320984875832028201592653723144016038544507664320337178280061763755976750514749150228793558356349276990452313140899552757189273892291467130596746234210228030073246923487481002246820037852879712907782688635328753963897492969013574872848364577317762971545923352956156017443249192343458855429826162939308443798938220692688110441659102155162714073087093767095654106376403721132177497214191133415085680215137663349063003450609211354761735584241732827952735827844794088983939951716386106434382250967432329791878992234341206963726708895924043647231827802441650941570524050192962391785558973605950023443382496784619688980872850674428737242028336168091088786183782095944462325675937607525228702628712232493598221617388111657699869069385196477218373631727999190718561297741614646525744385350822768709791942642375512080946037932030318692947127796573018016338176331866400284961634639517738171146344431747113282523448377582962109280142762133313147187422058333394834284654450999876816331788013929606401628414122744244326783541649329488792715617779468600871359157584814894776247810047717715083995301613981660860428195596595210007204710253408167990945785670982520936553244640006508941125438160435879743180775031643043100182533442962195739727180944685078824895294225471819909974700296447775540062291489905674932005316993828236134131277314083887650380838213844315237358450744358530681505063468909812628461370021254749625260206308721979113955603159228283974193283976645143114688485092810198750217518584680743904731858609923905467654721211144832612357611229166897356899253497140373050878706195744820629719650576511350257990814819679169661723872432195584928462524376121053222618209068200640954419283591088066858534650989075850583875036135209891392222326094965748745427281712328338504281432446187080317406527978086744691309268578430216676701117372826241500914237302524615382331808489488011467900997162053331626943962772042663076770861362604509084553065449548448897856710552731908807156665185824791305138776692630157144419639943614852369550793789140967667040775747429663658831215451328195060189576024260294941745130355629510905735831434461497894646358480124835173061667465432236706083644041146467499666174329043122127695056788857003695535994790581472603387713722330238952439986240865628498985008861695668490293734837181603711809782389427687452600603771980326159267369977262659608353961702282481362830342619294509273426308871380353524410391946913874199507715226417000472203881044828439360929298445577219976528262729626136599527432157442552233399164120932049359802913161400226880316815303596265348571349898389465199354325044581770455231319410732081624126212970460398191341722234758734940621953874805508984403523343362985091256444495654645344883889143775359517878030405478152265436541015161759802311528257763060862726064879813218640895688017914848547323505363980221631461874348830238224408708173684821073397078574083882481903945720409898521511938953554967188786299205192147183016448768504992381482506405545287617340781854854788770808274089849024805798883756424575256890234188555384398775954725284634271485967047266070648106683485966301307944830413647687120865053688375550970151421400279401316745282328333426547690494803596771911881277955613399592785222055126883340061280863915206718136200676006462799328585280235653560849949046641514856841594366474217513906758934127867313999259474526456099441598736234684089305882229594430395433499151396278675607895000084646106092208442189923004337222047544772102101337992000397213525010935335531898332152433150074789832213499468019273786062050949834754243612832505580405174747897722549476330790068390962229411576078045194281362139987634168010742358612341797275654277740527373539525925697229678706129100844079188931478388435662451145854471216841868848277975799036079405485423251947926425187274013499023025468716189895287322263429410296519027150552507455334960008220286738270596947563557826238746642787343079057855910034076716551203864862574586154492852964340694066831502970856250653654191767154370450329210361011420517544091277096506839594317974746714746211765808468219682700280935031404453735717487537097509470724085615163283303057619481831204129245004801985236520638979901466896447903857191604142103746164496010721431488764594045440724963787047888518524388071432231968069813187604955574153996536575138121242836225273986197862022801114360124622511934670701721309299858515408344651907438003485831621217586617403441875454623116383979021452574631973136059437533049421443888089562620275412761581048261952710639450376626052739719491956385153473251527922052941726301942225042625728000102113473531171982741050293750110388465494936082597617424296261761905712956715828940368075088687547425010459166728001264948975363190743845020004138692028856030496749526252562259565502865815094319389312712006544740608932064733237747596473396674886136200338119583114264479678080273966219778537052930286330799655541568394938786417621289096639989414038718158364025151741656348672652238006600105121334660049431528033361683077599420168980962621007907567698434002857028875964589529368545558164046980909399210492896724666180376030707374366438840770662640181723286185497311098775005851624997221890166831062404131879335149631359469671912200609659796564576452477136389693193150086599187557220110342336852469650638846057604571226934590577769429539912629510991961176628332838036789896047390626775883631292398618398509108319188283591659664732587319435411283393371140755716676154016046814216940008472119895819724890426817215330449010653590676085780967166355047666780374203760633909573754270006427056370659961264015154917758939004332708285813713637344057397523280500166688308834123568239844663780592615917352946258096489417923587367406752972978998519185370519507276138688812643721930389913901848651645558184845972782631849103045549931928388412404107250079244983343809715308580902970179810028747371922940026333604441743126798457909034039613217736485367951325038807681019260962644263783471246709495919318730674125149228754474709835026486104367221548207608574657961750448563180234379651613960771663513011615857109970198933511093682554679596102735872709279154711110857944669245340574689345292023633022997924464874881810829328525836356881582842390341194217435261121832853212248368147480757494916542335960645569316681831666119888431363300952825633947314433931756216945474775960248971150940795894567889784179810765394004420873603479853525767089345511528365630437427730244435702608340184311248171020260103027651614374863204745253523756373675182798622837885320116985039746751253113225297483582093485210769975426648162799982518642118375699525499393767003868065426377806864133437440831853780848937787766773296336109603075743120765438178284023983077598702907126466262631487102962740269328783499564275696377149600126705856310763365768092897790963013574736728038922906004932787588347986165207169646338512285228185621247748502946358867924903866207000388016726983229194254914415113632107437160840945438495400674820064377830734051268417887457607580405700088597461787043986984579955000779742597902790083037399337516188299051672170438814448964920084312626682795811915983084545907356033141500525477364821865695243274505517046465980111845748133557076947834971469634885723871363996721186019025412922373391356388212778056752838372170387815261706840093602963292732741494061957569529692508975218220420312030589509533419281978368430016680838847546390695741292721543839890899785154973264795445217805979784132347035957598250311561064844910784887611910993002879051646858480977060433722198077076810320438289307082422514918345429921741375139501052366175038775148052259527404716075637726726496715192667269657998848110748737576971314812973977201222644492229009285809287992791206275337294646065742056104625403393592003996832997751686161135919692462887413047143640134858887541287270022952581472224657506802812534829630308099387093163465098188176610190575153829712214274703574569156956035545544822453013240596019111093892639434640707434451968485340186338852646431511334428699634501232484375747606853573686816288002425417978371116179203868258095846654991887822887881312823880303172759625187971405867893896116537936595094871028352654649575772747673235389025312230292163214321980601719620139665285737415237645064049697200867953971533016163647059279652578087640389011304242328707531428961142763578376189907301590473789323064406693825691634622128053976911323218366840713693891922153634367707649416271866233306288396853998814361922721162621861588362828522084325175754310485762194807168788446145623339715021235787207049941781498787044085808146281011821809116358913852388790624239392279162206264837447254517689197481701882265962382369419470576138947214832236727853394392014961605718990841047069595108422113651394035233203494326205565351258287918227929864497452793960658227033883440909574309348244924840363778147535230435619417178088158483665817697786982803982436818152587435973918103700374060745091573108472438011299179895817835776378768931357699567273315152363305459034793108252651481067593289033649640979039114646866270249602063974947755381983652313360121511299642882910180181564833380097545506222528363297457752608332631751543254197547069460887397252552145483732722071671935688051668494681755871728169137323886818668625861987982791831927794325221762695582539979440529744689233054403370721845694916951714983503866860732353551848680446440120073392079628992936879174441544927132832483491068048237334782043706581355985987389540736521474655953079725506604149179556732091295668733049044120467949929360873044047702969911841388081805091717778630040687106166348459091274593220176470657015803232740673478036588073098135392503580364961814453926886408870207474833585734362287958568385702152871723229051263225256140752748352190743767804702482493269115089853766977542344266497357227853369573951648133367868308804787312168138744231742809098319896924790914628194982680094453885953004181884193871811907375823083864302057173102328899271732272537091872505112127753556080020931099544118889369147227227842746115675773969454691602954168515488555287171743501089382945015250781320371664994479371593082783312821616380873946265548017966400549744185154562618473195064310742706075045740166463985785658393491765061237703270760822679205731541751681283036846664134382396745985443879351620927158968921822917520182340847737212938168078941915819917169289429497766361868358765507351367391299132445567369946306199331842222623261669293948549409736544738065135828942644078922923617477220872924906506423073169836767488203934567395289865634428953487873911406166570620689364746581135227341019173780533162025828128444437554461353583824340252993965556361937694937579754882789668337891925176262596253315018192065004951267386993173901189633576779331557109798312266560784829877402709870854234095346675230974958956405153753749584310094003674502775801394317419286573709647792528661962780512605963879702840371494478269808126140373581355205730065277377229742879551805622901680205006733689213898385179543472484480624639397440497883921990367372260167171983782603454333970123343810076190756343739846481026589906464826124789399977070991097995376856105084638543229302717359211775857544790515895372254513595453814055853906411144112287530818419154961539460669573369953241676159250502825101547648286386361508878801986414718534372138761269943553984384369556189190361459742847290249305003380496037065070674595596142306213566546222839300967646005124971958854681379463617928593201304769789739352321710282368714842290567439638307664589027494051377426174360706591419790728728268006370081961563044852963244471101324745340640436430571402397310660990668011806012856544647463921687944385641814691730244944917525272228614232398008716934642166522298354373047862086323729397562803137053064477158302311012637746192453397634618584005902659832657394533910633723884153268232264163756718324039815652599405914686639569732529822197641040995453323901412561956204397580935320289691037149930424220998823085369908016646861221688210405248034468534212252731541127468316929870945753128566477126235593581020817819980725718270819872983528468960009211389369915119781697182304627290055205971787365035195706802839836353229504282650352687828335214709577203052688004577499834437588807114898045413707315934323395575638547393341488572348942459130695679055170684307565508463268614407296840464171705115836468416285611398570442013310507235412246158652011303479512128326685047598336698447274207502342804736214857298566681558364836817599713503887134465508800858229107189983588331119101748062176211852108676857700885522921982447907011970118053774720114698547975314399460187001303606851815527751469195333702815842894575143713666172801002653865804219361106133876724891721780304170946922882963248032387924090680843733660193218678059347284432890204132135435570907114017342555816422237474581139316934272237696030234984904028054963168406260812008897615266358381664271409080734119925680819287512240042202912836616697027817759422765831818162595782745335548259831453574964132972926405806832458081239269579366181164915078613681866752908098638611734086566146895070397363901044519204026599359358528757576201946692419004609537536706882788113719740850773758629993850170982297424635036163127736592499316405461707597341303256019447256294878452166343238632021178723459756567597958178980506551506934718634598284110844485067002890801009534576809556640788020644285384048113981230996267652247479166827049088138659875443479692404796311362016083209149474688827410301952099836947599185596756853123752373029986183021468874465659054595389255854766667825894255476021202983333268552627590485207088765349349318709390258716833236135586690429883798390087553524700161255689190548714933968735686962934711208579350554419342165453880644981852380264564335531844630784593496306985885159032949503511377563162119118583852392457653331912153019789766111334968178698790731765406950260634909886352869756356713685479135246320398693704190613265895639657472553167806673524019315915634377549079598064007151854936186267625728181016017856767652544205052521541274208319813333379150981948496364769975168104803590434244372513869063932002604761500949534189653537115441687032578794772185604246370324910602107105055103197014832466901119723908813913282410959827692632823107795009758438643965977729387037449433504403751410546889926195270208030958764414428838901817630583891800367179045695451177921518450887339044250431639366380405232961988873879040384547217621330825324675595910727977556588788339134743349921527280676462371174030170499452120922000496373499218184742706418747551349075174267633509493305114155798863842532997078718887874249525909292857185640416695192349470952209070280498805674617283251610516979725888494942067375364272322707060978597619890742210415809050859233329817770352727159817346816243492371257707858710335004110387410636079137242889936767048944946699904437328604576996357344287549335484746076876437815492046883871888036535570206849174749048415342878709838237457295811647992274405882536394087517600253321826126472427244854064744663571953902534604084823086910050081004317424988089859492127168051121187438343286646164114503737107648152973979107366238005119203915243844350662191050765679965585742787518177465798713128480203603781973164755174684981468104451870597174047525074415072512863914471551059106970343816641743285332545538951423565286000656156297884866576484251622491174529966939452726565032360215072705830627528515128266703446737477382938554798225988874397266952587382245340832924250705723689965244305864925887901376667579607557916516006049741643468422625254595950606525848192506773053114943932537921429689739774712614812121932250911884592322699468425396701619904039903013052991883661322548191032862292233534330699280400947112365286367329195860172116567218627814031637919913712783109987107550919099453291951156295049764070568467168098898151333848254293527870806733117815575045931322761252398602550140707495709513446288471714181020289145061054227390962959118899226837370401888273515514188710901831244769623256682911083437092447032277894256304930015367482125592249320310271113569805617423236883568893865432956036869835260403691428675905372237073308244591415301218981535447821108833168431448601438446674539203222392936759491560634634608085765872357068467852595875598843835066143984697201833043303420374313961402594001314981520476565947591955552349499291730292522543799293245638609833177109820154245782644998437352990092688864145878889292095604401880229097654516528737218007915071883253688857058204255432663883985505270501964858717965399922847409848299598198547238750463129978224827805980645087658120887696018758164889540126932290009901001943570379227684415125897572668577648251775360443707141632156849046178043718710082957229270314555087361979876950704181032859647865765047444653826412249952354103718626903620371638917817909726120987851283773404505625918476070221658467117854312813574966179854150844262735614402310354452872807260562723664706346931793985554705568870980609711464535768402438356315851919718672113320244338030624391180429335684613076795205803716110451984959507599650714562537590813215335125467845616316714429814147730897607331320035872992454076482750402712219290176135813186643877624457625402707166384726206366224153685427575501316782061475080210519261423583510173250381750770422352569189906560186699442616659959779872403270140094033270604643959040058940211517726245301066148372782808334722424769859057825420846502244712070109121415814371115902315028209404202838541479626356649860677559216042602973581672502150743443692228752634803953189784511574377908548873430743818089329611360403023256491837272032144816029656387609543895930354738993789724832983105177079902880494700408837755445308104694721758156813371124099175020861733140450960725680904579178487371906433717234355026119133204120938254219318666772037147611064695553211150612820003506242452219542527899620148707682372326306947860047487644156341930299011350027422762785401737372634247125812180890213174460584477030739800957101730922523450173439719492882778251455660006335367209203340681337192235380182407005898161304074444528955350975212648091823503973845187108005635660207300890227904509392667399703853897095297575714972527670575023009294894393567386958484864368905935454071755565620916091044553946662024410199493599516810085122201273279105630527464325255615263932086265324830469295591037159878123248799968308124190350264169223319792980349985617570181756107042603739510572550834649763781015986799493951332056427895894049559839553884300300845942010237817980778057950704622937499066875279793353828048124683678129265595520502020066371137278151495359374404085702620489378809419064824243737091413306204623350414765493002344824783806114117839068050119740705238419602266728676728265998860014006496131123031189635971974258205998040794243670577332895557772568155566596896694463112731427945906377011873435152955741793927662514362371941347595260436101850991321040563583673668656801914288480679344886946900957270904167485229894574550077657659608881212328002088824019160380059659471898154133119176906512742192092116937699690564273774907485511662920732518698782137981048145399089997097109648758442209302370340720187501947354824117583530049757656411873214024211020827293053302026230358990076461365832450659787890050213752975368088224052476624843964379217044855456135095344657065815007322831375439512596763062197268670442043562400714765509355964579544407954513498072309019891345976834334796652520016887024960238083194325275970137488882715582784344503307133323614744240920578610292685810916235173230733268418144380551813521309714195578308207350455314314774757653280756925107585341326417125067241880126613533130591321442918657116182499594510833837655631704395948331347626953009245748718382393749344636887875237101611818021182099157217192308725750471989139542116800358979469235174173368798085270169552593578392675438278895813240747356735023522357723373658803850519583204965362738663843684450856132148234996265565440609982956933023239140522277625460959677431251971489666000904612147002390960327496094590946616224037592344171184280579031210548178445775528428373393296069161670855298355731106689809675089233474824598851223746036936451872171661499434985531940473356411757245536534457316219006022547740466308518645093906450807403440172524541107603078883932148961143170702872948901442080223880151309983576905780817260983692475073194722536839445863166149387900823613599320502785755549844694528612693352491783587010323191262951994092927371639938001573942041284941099757763277127160170557267014291624481631671161103971628995915110959071855299134274103900353226535876970068042420898634314912910963470352115433926668075825594918256918791940697026744923506415829133596531665447245236965599901604440197138097957696179345590129655885907261264310572874164515814386918222504425853735964504154597571713733004742524121870359579401558956863034433531055545804156689477045733697243302740997963299534808940106747776708646545021363375740309628314005591944929526906926696259583638316910809058461215607142750910938477433373148494808319132604988846257072568370608638206702731812709345050947210168270034289606407138318396468814986148206315951883093008934589518424169661155446637282124533391819098230363475665802325957461794675574707896676954892239365014015163506742307788414533628162176668926406046370849867569563089154561980874891677222811085329660241500472057341028011886841653068517093866504153675274723467799088014094520564218709797409301908381528312114445562924144998466209803960333214119356177343514213786548626536145166506151449926879275026959369231457382213453013905082800580840863094971727836449374085627315849631011174226787994323599762391115282903057286755573376981431143026852569242003592658865257662686554329897712521556723768059006043047577103441128237535192212966004545341498648788793287369408757010348377549917571584957220928422705912167076246280360922719341392097908596833677727035088424820236378589762200988824559763324330476031073207123422522884529665981694119337636557131224644317558993502858117823010051275403314588859780540068503219486058122334113715148523507657991261455831922791193405757618214123572380212805687496457129992743377436867158985830215722266241056505626394478018077429542208423293558329023328929128132688281975164865626207271820703272568685697849442294083662271060999692484391521700537550551870175861057937576648210058323029153429675064224825638113305148571420422861945072679323389724957886900384463728480717867620948856770166683881652088170774815845262810752984698517999709650636204337133279236885852798543635109674735783844990071183154372247704224223435505041348965261227868475829575672724921985172816144801500051884789937670689613218665011966136409275328914367398750391832805087418255209117568562029960643163059285966378161303970497323946396079180561147212011094693748265760666453649679725776178184631774430789125898146751105312821512549659266886591770659256478464567931984430512139503547817009298376575592810345451188117304215936693851204820715210310740799361529418869368510040880883475576125739498499469349872503291865296190298406441980324914790793191752143546368608675232240387025521434534195498347114867121055147263876587373381124939112436104302922945307139533781406164846693219495582573938089722446549010047427603383325677372850297738023082095061018743497573711573506465400293820176141511744281963798415190027257863257263070644502011496774461435357703187313327524920400576863631772305340319721184761979731799639680860852708955785146651405973286559690160776271369721423711972925122649327423771024769162372667170773182480770586146151860258570107503677336146475480554157070378072647323963805762730953384660063235426573965333241507984827505067584749288340442526577436943254722238874422654885032718861059129476631326501938358612418746550236231418033748901555767234592695577054415283903584993642872242210883248293795162950897011702738742790714977409277576701108701991039109853764269354967713739790870916981997126107496974645389005908479271368184505328324165937410988640033690754516118837553799123456028659432737243733921857504925456466859642835051392688027256441645363910720377754556043864313910307844300785040625235240162962351479190346667202508200441897369835784258948553269174583374286236942263831150321040640245361554243487486547616773356267189971940318784975020412784199339985554847885684618730117926806090189794829068518968450846460313607225470337176656517071959922492784241666192276104406140036312744458433404616578975928704353814969076514528599268646306165122781482997208056852998419955539874257176753529379874906433540328286931220997346803726033089441124437351221942590216061913890354431628351610094427069401662589586374148486512090131941297301296029038681802441651900369392682920043198383164903174259670761610553298054401646702240972752891178297444658562974062374388937928981895726812879318332084109615403552132739717775145302138310346543407544938688124456549069010402678317889426670740263792329082970288942147060501987086220585532386324528353251196933681876644079025134488922867331913192710777155495336056509506202306356207301756014310566254216885025521029486121548962184681340726822223342001901240452939689884447956472567923904701971927210601694135509327915825614852092807190651642713890558472800085491646361148862268504136135072411184212282718227085338416435328723259064581945090354541822302498105845890854980350160780650202322136823824693348179025216110536942965872731492053647107425883592407158944603967793305657092992915481893368081682102979290373701651814825062304100432501729624475427224946584969813504345687766719761593755418925869422097855333078197030875467023084998173071640216851998341996855038919659630381172191217592226538828951050897559910374589526217730556308577398463345414779536292022813969336838376609211407743304572824994285165178941180100834006684377579765989537419097975154358503858921815523229748558436254430839844855644427369062675925070373792321368551868695260256038874404445328769400575603583044667492292790163660461975607517694164377812066516675566001951968930756883075780230373126724992975789197963446319635043527500101619167719092790572170076615324895184198578466327317491375105201254337381850613902572869281282988274994627370507931921907738871555164056954540597192302044391041914581053560461188812784299548880490164476915495976439699502984102603059346296574234589641513802923935083596289699095575726115658956423461465365770471852342798706099600318856145059478070670468037654143471476151196311539529217773681640451378930462711118770282250041928436611165597121216223316562012289017224019506220656237527818810401494967715932734375721017768893338819909777348345198290714592086672690630941512153513755539892093059537472915973515660490514054100495477248049110558541595169979014245639506463189597293583135804383502739329064331022544102998279133883869437725917592748739012596908539060604829907786723335444588623760124971431466380394306460300025181517444430676685546860775839020217621003149042203726309331060589477003004603822434383315352909163489907047142006324023407329888260964986882606815026416134617635892467950430710148705847534215996509227855131957192158881797212608680886342675685171958388923051762319959308971049779207055982583166173750176432553605655719623590236614287674167803098959923767180466093423494641079178610960515416987835690971313330851005135746143466221923404030339730019446045758960340884002919494884828180134244689460715824331026540485343019496428682532156889564484748847931759653320217756434879304822416054024737435615706890260679296909970147141846732386576782675234708699354085732484113081134496357211890093230929136920823449481073682575973824823733336207887208049012217355735643971919325147815060912635764313499807546097471555464108995267193737737123959360244490533328727870979595931494046458271236463908787186053999309438979057869432561722309720146101646753056645377811464995033019954923386703074698414540225049295138018805320390291272721663440243165007234142753099410619103235368959400400974329209841825545391615619555999717625590644096499715597354981199465920350482408005779954182451351180764748395923830587300417538292814924803474378005441997328970112293324205343756693110985193576847844218176967696328832695201360786062995883494218997725650265981001886191382791659663852739202956391030638514844018243958802618898776555998731879345122227007561871753266107260611491288992136180284370862695414691425918171142529171065235925445574696101618534715148316256159349828115503847054433559925168057418563380245332274535637394643620091844574031207400114641161855315529121252470317290669670679787231723300262488112624565845398619673300096964592650503623403612269656957393874837200306587222441193029262132457433874525278040536125392000586045004806568711811875170186803143345829901218408698293191898036727941446029853694133369073340077786662500513407087874295521713080484931033334296505946085568512786844881474600289472669782292093024422517249039546678827047630731861053101318969170334582410299242992660339105408864273742684121854365637927801146018651647934034669752644427424232637412696880074287307405455655201164564964544168832252532554810298991430285162868577740278382547851626599697194416507976468900380764013756153958373031037013408931243412835430545206169792019438362034946240057621932972955650170490122031750470939903919503969514716661496539256337959315988404659191229858344011892826407040594700434697320579291120250547572011746935419514739018533684748282597204704086639587869764706505775121000438600535490693261646867234805008281190059824228776613806037359493550740159980419998962831924581987825940740893379368053411720959442017275270978488158634061916396845149955113209742275787495395659260820938944252333040211604699362644926265109377292212558508760970940741509380844119670865561446593253277071939047382026735647362046821974506991175818163444649932788922640849212246383623913829238483585712461383827399933346039284717049451959047063614869506998811503751548453297812734803504161534310058975058056358517482342688237415969309619757288479389396028201569976314090482478693555889911265931782440688274279609148005487398795233862215258273435471882886493814082204160551775582392755073399065246146298716310774067451305806976336644460521745743409816443629050317022618417916997236952999278609893804462579840077034972186719719231889746187070244732220259937115661749055754059247314118290072022787966218504343202098428858794229149985524649940795454807622000916353169701832362681620519333376990506970706249213120092765830740145243032534169563004742541735366670782060047755343863416795356873561245350109835611778644013329480443351766789593500013629822128061866380911256726280688829847202848998648140603364018857564282459353459160385265106715091881667066954173003335192474837157686277891822243188475313278599053525099369966055659262169471194269944682639029245785894148663578989500976547924211865514890385763481992030302653041078424773711891562358471164345439891922215031602156230753131490643303010593377820185001774669125548170770733179087673703857733704397984547712177811495552970485209192742156826543263184458429223609488801682942995821288790619537554396263916261139305155711313031396839898093601729339557358521674134732237919164680249620770177353333569387808021980859427152588050663125559855713202523507952099529888263759616780051333875157811545582609204573498616730003044554085788703727026877348845334158365791977402058694087143112855230309259851933878303437312733838835823199647447328537273025580545027049791675981577671919337046165375279634064589242324207386108125782783284030485163475798118771175898205296072282408986002521753884489978163422796312668279864981513167896597364736685739810984617626731389654087756031402948316044432601565893353760431909459336651828001364927281076011087480496009007439791765724655792242912495050825082740852090202175224455221792223431162214850662421723111823228509797540894780296102653782629598409557821311965490669809234642714012957535458624425668216960942326738178235017425410416771848520794347241913944714709151180478544982826059028121539569445006251042751560687740869837346854249659091689454410554249951153685492478670438082588419095745388511372523347275242054320643119932080806953819282402083420181324657406573923048893531466522606205821090979923081498307602571730377739023108267345345359166648519136082870710302081417708282205425652896207997114964455065767663847555790880538224145629374220992146224268604944135163578249533113493813191759036159968408297907931901753261930420039568987465945723611527206704681736463666102255335240564902760959797162562673453310031048640931159332641406776677701057320409901560825958239015788695926259679885816570481741146087612120782667836674813930656685895947312558958377356658114691668449273972996376003611579137037894779474511269219983467835393157821928529477303945365090500239016980025834193749360631867104063267819578814000044709504295918946180173368967566006808898141149509878454773879662808587624231527685660534647848950121995078660494461631301806728205209953318686865362367901578199410236983136380630330850392869057122872419914999685027795015304435936324020687641558211823147630501316569351679541509027891225194163003366653441802809111798411878196888247399542464294256655323305685460045626083676760400245500310432943693737829090454858227641061768802342004180111163978878265577590739305305316253685438789284212230558478684839320459314537251845357681711787588670178934562798321826920822460083863414566522388949637195161839871993510997796740590063274878107559904229973715171764062169153895461599220310409572609661106095171658920043568909005143395764243367476289923301602935805283523094722748364697815764043376918030214544740490373322713802106639196804654074018683678604915223945563546725331377092043539867150204000738860274623375352561842732887943686426515535105641852170362881274790873357363016389890935403503796899824640894793484533787864077065594264709593403102640753588522028927085745197899692694498102566245882399326915998204041234593180131714502047849459461143678792467345476151481248472036577307741773862407867353690169484759158953987585432158194716408117552846046123654089251564742731399546126791020794912231118047746573760645658127913158223989259118535187882486638505915633853383734805235235660487758579460632886791094235428128710630021590223932147805075631893765905456763400347029116168259812288607544010118349868201528351192226527864162331723347622987745391443022042033584921054286580307544394693874330055696324212577192944688862387479110246989199223219581187826106435135181962153015393142755922123447001876455761927514181152002260004045367592646515658873307357994364378505458164903131300877114082535933536211791068111369171189955381459649033903343300988281383684538428266283659306194768043250581808964129777196495610311533984094290462714301019973096811749192729858769119035106889346269214767896546056272227156759292783978883915672446199333002717814441501915080574063804229780306091397379053019409073821925775926344910754574544891736592904840673886708348517254137784454478397260487201273803420258884992573192896502971826949959451539947921326550016645983134164813199606751645124635923875495379344530473609510362080453061823329876847010263134259688291659284509054697054788946610488249813568155646486624289529720385907325688291585903965550931983952684443523513041126198316647379460577091910960310640502898707511490484025945482251119572825241606515607770592106643853751512465069483768839261086585136800840377659957801837555426732491693875752917445470981686885147409984671916477284332223714110967741002078076321577314135027205338476926764524591355686602061535495386268400417806453721846230583758983679362743985468107581501318355143704876541725792471860452624790868165525610672604750873711183666151840098319030081561303161996132841429246397963204819187236388433593532821859055843067273509231495701319983347166042054699532253778690813937913729878883000722105518966696288008807935521924161965422715606116059479371447850339027193439316154039419661859827144297944911997910963689403676835323537035048666384513376218678886472265999931397205899040703248365072584557263392097395136068781349764199536070340744910717742218668195353297434625911268078199988567003677559766037069714150866932745875612060041879680144646152993526344419638110717904063841568622228631373091951246049215088592636666732243456670510970985939221092954919617291129411794409796157883015165509719749959107320072534429245701969666884460392080806715902001976381599758882737799100891070004177626153848864302404145658235753976375170300443690263452306320977590024325838238770263048999138609412946587607143280858172477695575049575849896043910251169682877708082850232495494454588945858372185866881673240967871059487696377757937113124945958614624518180849302068368785826935966341695497852578245977266931822904971956965821568374751781468104499148887119291743149688569274671791303231527017555160797114210356150128152378048368284792445887214438237070362711251812952532654164253391900040268825193631437805563409940343362274740106319369303527700151388426736861732741202544500972583464631344633001267784447838792864344964897593711648393333300078490216512073544071435816533997088601419799429401408609042846258295796945343882473817466823054729126393071771547474861860649807032826972316084875717865798673709922834269702938694550086754603074860513982860728007332165162129818659754357625424761520571813999708505409926367745841952388732912995541373194117374378026850431604988073598769330018039928218922831968514032069409061879105111408759108140028184521051222087822501157253808317560515735249876644018234405617546114190936374549403943461102081781815068107082446962965815953671286630392618470913655703554546573662793808578940144228130005982270048400075002084388136030714014767491864376518369972868007003391190723262994550676544308219705688905352040424117642885500879862716815229225964568648326449447520957718241699826317195615959960269197807484057587580107304469668462597480185881679818057848798433579390507692333592676887892677423717532978768002112757209547948803418386322639794066114681740461649523035291383373304486147390394267817269998007001853003693422148812368793215545890323912596106891744260673559748905259843382293933756375103289643967922396493460566034786166468191910798356790168317798420252005673536784262562925572249587376282576011197655721756297534831179350530657847723894544060450431973046326569518082180724253568184862173302993279543364289096934509977039287574341336296636543707730209581887780837956097579491011542292464142258859221122970754572999849344552700620532833576420112317057709379948563844703182148120304592908898113332109962237748628329822294038817831528674435202948899082588873946858966207787140800672590873055498156681279772785526829409971915734331910293496756523179136319347568774212560449875945782414907008555804742475890055978597581850461024564523751552226255030502978178600692060534061569771078052141023092494928805417794291411961564148180910784488193398069163581081952022415908415676042040616915217220452022142784713276925036418882833049591261774019085048825512722471165430223963148469255516741347150528975407384235413404925834799246193139867714439600840048711061544421371849781105980517469668963381346166750731209680918531961136615681161321246970064328953704709535338893002987157362293014736724581686207892405842129642180459045612954351231892915643246913736282433472389877855098334791885506331903887243177101692179839918568078642030329586309005524983203927822692182881473970617535919108246056523766766055133949201799601058152369375281946680403765585185225029139202672497658502112966893562432933433823882997563425668686336512882784116279591515854468772242702551580976616235886444916938692424091562646107238166247138251603283721019673065958574826201576644322157513032023188821211443938650124181522830883873168865892853128510646839705200790893254460853090140605390115663800364456904503067454755429759577129884487452860906553290050297139505930854771592821036423835423148163147116892813161554056571965952978324339378364236747303470272024356551998021592304488598348937615305629276123427586147865293432113581859919710217244292463475735842712333814758562126665132486659552174002484564281090677366697575980045833359969511644462392742015040786128015963857545151679294268775397584124507665283990014851949560469504730980982560323003354744323499178429166860136238133681272935543164486672606832036840423787661469031264016985467049285135005386648932496434259374862767730168630388911897162685059542666276057828214231494638385689015392846720816566777655040965122150713135547578596140898477563189105390545395206371218951982153157305415051908574472874996781113647012141779847514684465806657799317005870828468047899139124401549631250503293137369914721614718948690405186718737584156149592383885806921278320348891297402997234045935185478994318176701235697302880669735413895560511559753499500201692039215990981272929930736133635504260517472022668747438782368251061842377684000761094275913727278642983935948789466189545288987811416596493208755392965342451997777141763294666013951711092423490298221035543549986019726161183516514874070830655520351045950935271451118594398441813355584263201711170262488249490549856820491023232255805658268039741827735934682017384055954620140683926039746526620212692715875670258217058014114550537160227111373854935389149686473992373869047349040552893182410355875047952129945023195363898434924851561484784755359500693846719786045922581716000747484883295127000550759078948163556053859531555173539746102321702603932733071981839352190361196414953921391601379323325506218636106981818669977181387003974758866607058260826523933567916809283538342088882205918559610435888546557102903209673693833921984737163149033094770272054759547277566060207532622910765203185228344406737171186614503802489103033457566531806517609285140890152180405849632226946985002743983983768308444327510527352036591884460290841345394894489533706625857038665787766715084017645157477461437291532432434170753170150148308784706025381757415720701680726151454819901656011643566927309052630820051924641459635623638123720437895720566545089039075022123634372569531411926597405013896761175208532460025156766569730187562069590197804796299537461448533110377298587577828225047447065027189486781437142159478229633802326165490319427769382052172973813159481621206327985868654156259007249874403501965001613625206021922815213422759286981083683286960012981873885640332929823888168604894717847978139638228261140514672480424670734818874731863420735893365849296889126056258811916468521067210653644091106263005093347707006658434600056397442137659456681181043220183272708708360175057854678454504551944691513804145086370804400034725908190394622974964952783489483627643776012365889628366876472619079289101543388781818396792284092219091816136723382153894662764241743730695463104686587926474694070340485688900052350752631733054638173761122595656596375491532595254692586152137064764732649539809640875780234961399039439863164461182508696195603253338306023683542184484352235998160547221654162405895193160038169336393629867016231087546108226667709839963365655705202420229409162231600000755737598642465386429851581679935496172684945837384536537966835836107364452469661157600148726249930091748663862611271961291941083482281925081422155802255724569426525456344270940831433489780005518314707315562964563500514463073558692954316544345253595321026282738503945485801072252895329591427895388157725310224845857697587051802707321483358348795549502820409324523655584736437957006525107415905125892845594055557050184559997796282401752424245943823047460590753656259946689913467427759725809632202397423990839195711275844131007199995131964286248113459559870152526432098635536358890193177930528803957501836782387534072249065264368441488687997713006825692187272372735058461904743257292165702410951067869345182279811430345539744731939457993618609189554559773023990972960373906188836305624995645666166989507139945942511501003743886325300619367482363951716650030973476615105795695592516101077852196183755730719250753811621873569881766689350263742175361753541406384279216771413135450748611567069213649623369587169440921551207284970684522807280716358117924654885960978004614109931042016259362154291679627995187903306917787024849135015267135169719322235373548935436479851304932744517703837808982209678129848376217526238455673158634298220316923722652728837813654931326418170532925034384715561116937093781021016103539885863103042219170459759605225248759227599219284852268062352609323335682761186742533836816785886924947905856832396583381286896766132954442287930072693125648447663414151459274424112631473079463499303710804183962892865598919419246637791378396185200463246613409471320967588757665869146921951538334274796291775652977479234756887133685417357706886422614326255571453343781491662903861006648527651468033944577715558538756966534180583568351833331142296784901712565871306782029418531226874847051041889959818303303262103951948490775086903131022024994156947972577022094944448453065760880867568787459628795178400635235018190614657357928569632015330921396837009620966178908579846702138614400569863249877730296015517745862986584427577426706421785110883311408476092834793346156025520033229194262629049496318496768821594881901695506021727250975769907992962182757017378468030849284360523754479552519449686608280989368395719393758913647781912444625671093695743363460102042931262743132334139603177769877209311012231403619087877222472163043991667723480162448655093256349175376913887673897504686760498676544179550469772552956503819616949965892818428414274333070089367373300209137697609580814102690901508253199791006283067948045601523977473534740410517012515595105721529046338646016256419822598411854777469157281792779978118175362111084239615352701094331447816332889148621648326175335142703638602568674812632800225007625093815672819596291182373767148301726218342377302765100307279507635814351457003774135746703075233667434396580009297884804033287722888357095747508783110048141938646773890345802838760371618172630392404175761064776882918307062400929184155086507478156453740877312616392136609995889705408144665494769262926129140289836162854070140228988110995398217868188826990442977648370981256835872009982391903135436313798505331034014674317365126614846315995638540619325054188228407206047161671069922594654455446023936694671319168165716888760957959520640037494088543032335677082773890269519501698353032378470935935987698748186740715553808095328437897216559045291365310345086066812234612869893562679344418621540021252113841828495623509203984758183773345442942031679193771310431165896571703105807455846236818677452908625462750198633999085817078330187794698344996502132888872966852265192350722631774733711621616511591185931418988198588478793221643136421848967295480278550392983636635658859255355038777070851307776894730472235380515935755164781276882228557555939117365176387788173945072034881267400542045374760886054831894468337205540463279585812513007886900042201568906370130211441078884644971583779334475203864504950928763377972556567046835703821247032390117024447551133917919048925873720937341352611050011173116029726626138801832045992004459650276098623068395297529753090379743484396443502051595384042433611823334722072813324809202075076747148507312846206286509070811129027759998278105145708262641372324330691944833671428011547957735770071474357621471002336967165263466047479604060597822903067279742011146858490288445050088379457710450778621518694858496084855829197075363136200109020230294903013160125972756367812389994588338284447413553594155032401465440738720032312067564963706192498013642112690468552245129013875317285930876605977024897364183985247118885315613910688760103315934085749136044549750698697015002352828615140581580203173925318224258086730038372322656707434827059522020081975267890581812291370877730005279970950873691113530152286455190734816195634624588869723997892669659546935736978695817113356210083268170940990434052083142026513984214907790847547162811053504624528706212886175709633688869262148931849572503905063959895298564544824046118503985976163526253424209165358878266582723572850360907683252319552623810092674947204552874113866474154728206472806010139210585683210294299637123103704222770953017587377914284903619682460501772974747472947502036062233067738556123064945133533433926416538223965270341057606740361807732425262748579994989049894375294876096673054214357485620349171167168181044086348180690798525895709241933229821081352743540139781855842144161211674919150552194980562448451249562477707393539475778427063877865393969338991226207829349656799803728472785389408856464502122111307496757821978716192768422149419122173922912563478758637348134388564483859325586281107630995843945439137437545378514086609485534233937716759126021668173778695127887607240794241534800282842145764720344332534928487588153982846665889569655716685201378805697233472079144228926990414605952548575347000041093876338857628627108999208598712203227977866765838035353432476840857840751898860814247452152048523076424222020464933358738831759594831287419206873742011913388138351461039882617727298423484650299403646714544222745730948670398652273037555179592261954678335977475362975390551461060001331327852652636799529797123324055945305797321900895988947889255832059690882492777165947666192009806526143847064330085479715410684614668349173494988460164864197553294632214338370371823544115418571150743543581887727813344386495761867360458525932949385689686537310948503481655603877262332153153248230171625124783520269356224796830275328754445053254860908272460548914176655621637921873036779425484665876087952969691359029691696700364513102455369666306987011825771495443509847883308529888465062359635608094968249799166232722015838352742586299341726267814688646103833087374295764923259656498143173522807059891654043795969721820224301910082870230406251320020652361352789715267431952214729515917875238774488007427699253342647698563212913927219932259134726620208837161630571998195304952243179333853390811717291023896781425410007046198011098236935536315590475745997000072886527264839796194653247349089376171993345085748343533463941205724487970263720163590635605352091483645336192864326957152209019892490375322580216566035849041061372057498361843783005903686235115167868990311985758908519914243048732027584058373302589283959970472268625680666252115691827094909086524584782550244323496773874143765983441119876913284229924918930384242741725471519123672726572979382907995631414612966788362893508919046672375964827991844707238386483129256378250622528773469653444873502705441675325038221732244059970373235796397944476699923226459294496911207540585644904181410270818569720618599625263953666322670253588265541243624094150898838554075925811587002619274447560884862698513394899613070046403768912894292687336720221498658341443276762287097982335952886398189023518055803262758051341383248300263532114066522699652700061897811499652355209959465025578125713075043348493425609185256502724137080887477545981309597145381570374465349847711881313111818421484675625633769420011418014092610734403001406510589949028199429733699948189393008815782467177336933667699716713953074537500775992861752911338911245927960028157282723749426554925369256709899722712595775660105144489793071341016247800643504394624475223691068037449966283104170687397998145594464676181669399807657223292280211159481135694551733327641808715542227781166781552668284375664157506758802497018542699450735402138657210595401605571265307927114849025503300537045213101521412422328446749680642898536749002765921010034155766141233806691391175639495308779673753713098128263088281334427428335936726855449677259382339341871807660433172541024292343158975979738755163537393757884949697416543311393185764980376152521536598790908451108412104359734955175921090431560329162100847670799592271486043869620551388901647894296568723924100297861268751954890785683868720141168799506702595632411611980143869245504011283194563738551995406396925240518471865723556325349936821924184749670655424628105372463937022055758863592430005923813737577509218505310960207178935901416759217854431612178283907696829712856224558316711271709033682866900812694119696704560938892972738045946993734615409914993931412718302122901646563394821181896980522142666511934975974184917029032730798345303644711697545402209746905410586614380032457006389805005720472162253588764802949027847349620076796856222111361774166885277856768834521025389487082520579179688146023298361252454102754532854298423613731922810247322537748708104929717843627631183414229209092386119134735021176280899244537872420435623208422878766444711423340869731102587446837763066826825362339450739102479909602062670209817890950631359969493145040362982852036942509033454687444875891743248168347518788350540036636538533854223890127946368959102567737799548195967772579806528350103079438113831869799764920426289554534042993310628761102113075202700001101493147749929931097008992663433662768497312311715084268594025264276597085194109386185817910102514148940527179437480189613118617928886444711734378342656869071402777195256884387291461102336999850801308136357139338836652864692209826846085370170921718641379272150721866464403488879838151127797521930795281491033314938765690108020039071904600970950129569999485914674198479644833658106513089432796684565217349628174314751513228612823274549961742314849040733156586208600478549188028708767649429068693645797432421426196297904986312720500202740164429536858876109451526309643473532773204863297170322302759625201250657035331194425565807216404485350368909530141905955351791694530532079683864362590395474940624537069540509874008306488716199661868513813928933715899243233159074730867888514096034634557896953284721257742329632990446285500223253249487504245545220217906519573239386684500814637224874888292412703846383264735245330689563866532772826987542547099563509117744028177730880838931506029438068919455160372952297366018100582103610018714221374717513780897799884428148731515701906438421418679521543351450000490094076497561424706899559865160316144873219171592129305077506264615028313705167983536767733972718073011047041602521909159441937982123825315440230577610275329793363080850812454055004825934339327815621464062932463367405866702720913452261520333930112441707200439395531015710934900179529926172259973714420722638358587746034030112445373375601271738488590684331996907697419799107385142446837578227825741080439624507645930729181536899209316270746434941500850016323179223486766359343060941901139284184555897710174587043674716884291740718354970915740527763178826758673704968832409499249043854631847716975569136115127208484977314247975345116993312026023125376978830958465939763710054710530587198675917436510757593213134510383614472543234666592338564797013515813264948933713489759955760132831335375895374649931244173792258226066750658831547900917913495609834361140747789781115864343928647054756671318015420571021491085445470313597961039031673452048766598802697207633537882473199504993485390676810205536888142680446280546030595688001127443714773522470308836609590459451549491591579999883756541660521923756786463740842113287429092955645223301537002802434593100485197334548478465568104764864404471744078449762807030963056525166035640504919387842363063938353376949748634268805708362893376306348243092505485901675996868686331644780402570856496183493727819869632855040440779419340468660049855412184262360242571261625272130519248564858391468999466314413307939095946677220799360322555883201257363466266315486262301206099889485359172532620191976107278129631889319202204053864076777308707240343321559364403624508624839255645794256574136897449615157448835102785849618500741152522763615692162084698589070798274755665988685119953178452086476906081420532220522272462791236016792185063129677839376555686403298191409992719866679092420423076174252430062925814494693450075776811137867105265178625676284585317683505902927105420855486739804063244927013916457504176333455979447116868021953817489500937232673429212389956903211460643733210507609647246953399320611277492861053943156282210652138079305131754521837547184688582049212923687834816885343118225420657453117998721728453671450923163674748220120585324516134969814315006431980344820138032906923336163392684272435197585488361722780026273131372423968548374704751787491786271187284686265904136677745263695021302321324302316538349380968405516238974223461547666748592188808186307800000985131417226737524881712121417684521450349363590269257341699804790080534154946440162685996746643861103073623767315798212977222080339448603747016926013717392420030722423858802526645179389053503736735068685296054623792413855114964775736513461885567977641937827887328740190160591966031979404106068514598162160884038441624305834899315073706581836512112276914264455006180255920685874277917714609613595617546432496867391054387369172307805683221211038083542459030738964893389883605081372291560636455961476026780640395751595653804700336605164595531433207893245961960561840697738128998817120008603566314889193684561925443693347073698981983130486078732829891086164685815738588398322867886507206738341525750078275487865312387958236807755504175395942174094023116658732111538059455835062118656084441516610321454002157912428374037002691554665960737796725881350425547975738687348354274542066906608395914592613526050543791134854056303996036648700897899714625090785962709975204108295083250864282354647361126763157348932910434382692529500368078497229505924398464810912465618549619197397326521810030010811088532248005941244392118581482788712183774646968337551295441944917434379120320382024453632747012027600010198655835667093781371003690946671368365665922475873550141829604374204546640883555676645878716981851161959938150266751669687690881058535941858150119428254448571134836881892340786337374933654523859214386553809312640867535927237404054902939414784415013608085621392901763310447520326932410305334966892368357968024696176032793047056906558713426963090578523387531002272955157854533443665813366008489075347546595093347864208956522429685903650926604546638420671788567365049325606375938668612905006456964565872403700345601992269038052458373506983518329079377810852525673693327395160236331447001158384705699077869592172912637607847046493165280364238239751726870566264499506368477399354433925903014812827845074050303898032157832562467165448368828654009588244901736258520195386256919377683809287634713584801521276798786643385059464897479389588865655292368472438641566126642890001329503872944283139247852088905180133839413216149767877336066543409327086407377295524900384114322567765718442141626827036332317207956335365979422131534793302715445298345622358285486949911584452028524541217710632358708406083401077388556199298004797449571632048526847864423082997007663548978045457870823855889210316460742382686124116064487483192998538039405924662721060546427718179853168032560545833061421334307760430844157544502078986726211022767799955210250180823731579176852381994424962476300635675667962685445394714912614880216008089919248854593774711652541041386903883177259895643667123279273650260233751603045940666982602940085578948957112616477928914971579528494560618449889413237814674084101428162905986144921354429728914424794463855952964504025524209424737392773165197025629409622588076487949861604946830639174443415391639107187175432373781421677006553484074576828164944851864219462891715767313739899921607043901473863775779834216537651131162330685588236693573076413134100948126657437952868345434110354526585164699345789263556935335854685981780633716444724670296602370751790217453428779927485693885185194382920801922424997731297937318643403541155227532261822393324723912866391207849069202775585333599662378557247456186517155244712805856243670662340785445806918261911204837625076977660573692807936782180644380026373012356437840575772472017365666996490934162392298246955373242768646667622489714116273359687491605501669157026702912692587557104226329827403499092248462310904933772057321315285021727603910932574554435128760479818643090305991102984291725138787826833183220485021639224148061171607645742617862598026720741845029427334604768932046506085916797529063004884367782073957016848520628410207463414853856926722306882350525908080054932938059178709298115594862638221383707609968638035661319072213818485157974644551422725757485815413436507350460456067738132685864789123757383397233839697943411102299182353702702250600053387389374681937853667493334952721250115922568941121590498918425757991582198160661143028557826200650454472918582960941229340502968121281872715310790125753275574403092924033594620367660701675639769504299660442109584016851309742967508490917456724475024076369664797881195547753632173108372728521167890121248743168519406963671364651885934191507039211429594092556484763212626035120152164504164090725752594747369779703491843719305271181148065882191105291781950231295223596951726062043599212190175963658189460207706039948066917817692782190377134733714971172719062841217070359679448503785361284225133226017654035931644440802707781437810160957254251315457338918853262143943385232048225745719582961906554494610149342564041558564759789810568764532009573196428837496438343586803977951133802341194222161168267769419521223659824011005443758619477261806861497766129076186766999232289952848753649637296021971485306090173818543071607754402569025828039676759523511826347820209464132202184575981760312714196375694583375121018677158765903958933924343920737056009232945576466488169006859931486416104639471774603286689062956233743927283204733945155994143286834137577179167819712346868294157440301864070367079162388470181232008110635683562471665275114902795227074935140918203555641570241063499250913463677832641446021076238145970246527512403424951888345709008110400213092669807809479214106144209459188799938902054746196296189392665452511847016151506870354962743503054251821834705329092130769736821763651438762345405437454478116530861598694764149821063789513188903078467583871561731914487156527640138519572557545193078341653089627802108993349883830283107173439537150766751279045505780549116308813172194730169594372625570890434871440050637099551236144171446261244310819234255232259133413394559572588694006143725977325906105340305300253408605006458764215950602527735274991479894894233723918077362976696654187753341624066292974148241450644293759873251327158885466570527102315319532363196801351681873099418400516426665766731557766498703616304029388285439690768764929138186655098286706228824764041722579170751248268316435761998569706550255684515708608788155930876225614738908217505048033666396456311952923867068508025519259656005570192427250548670310653339773480006707963619602606588559457176371043570707551856689335626842880968161987903839089018341651794897778573707383452545799467261425574138153570047790657576840768759753542222122192150836419826357544132445893437827008921502678794566365112929420646161126846103438735531693125692977772046609103904956714567158640438894093891184828750759914748591786449526701783564643335870033171439752744363950599971187356440263947352730589664594061472922671336026433674642636950822853951455027444159936494121421920214959969461857615474263300543400982696981650176697072428433948441921779055013180366567460755012176072148619580588467824021738601277857062710438667172937874257883340725371898536304806579480698092439299336168661125726847498193595152209063417112235041558692952846828808847609526454447178033118300868633546732338400628380972250532419971215683861178775827746040699794143327673650534061701552669466483918162541221362165159077164990094379469720544626689143654337339732954332605961371689746862981617306177719981731554920847728769005113656280073136400685505655093336687274044453998063453434793729453790795887433481303551268470744153616449840854785364724730335041790776374400498735867996048406162182378929601598099563186299506955234445348396727900325930470291452412141750675930063131585947552632222630235570001853012717402168525444809071179864505036799255767924958457284794442326149277899530456303004530254256266381338272919761555377788108886353191613378112327454593935123205089056815961456334766014493371215842135724608319579445923274960038235513766785639770744671894793913621092698026708500021118441841790158672028034652322298730026599046325437049959372395802037773436488076635499226393892974480964522647067420990496035428668258833111940197937138809873562987463031588777100163150535823567864840246155069348962352238669596798471000682965947853504621362808822469952494195392836622877013658566826159973298575224127492631882333182189126133142467571092978744959991413641889522069746537901377670693648014165309098813406308946691742749763056389579891400922747886363036851955819666675548872293675095572031476716875822540126197972056538805590325465271464949562471138860337349561238584104755554959317895257555029252757208919083966557360731866469121134970823092238263892240303397540688947540918933676584088954327499452550415875060367652625980463785025742135411419700359701264398573003452486967772686386706623278948651997889855593170689404343120291425846802471277994839480014879173796724110860660589566575142259270585064027907324307374982291964619108850238598493154714194231900829473534291433769838226450261553296385145795343599168677170897920680169859569096540277689045767617681402038336933483215783248639816420407417702347243611079260238351885882318223045110214919021894437010995989473186667067445110289986116041909910367601705976100238954899381522622107885926213477398708502802922080140986526998616907506312892419867604814532559264670317761026097048020007240221644668212771315908707056873266172072964236818172490148944624925867846232087151548001713354053783484310319843848491253562107597267332284798569423832058970667842547634585887189481530149995554887912639303182217829248972394746053628277434043223127444218366778568451775544379808874071530183547230558916358972622085628400637135592659652954863629842447002886401620460270071584754323937740579550517417036269451854517864592937747617676801587376155564921127130765431205466981271003373920442894675106925287176078488503982166589515880462828826443633432853150230641190433620616862343924361426346188431842517267027041566832089060246064730892625568789719825701147920488268112050102634304637073866114268872863276503187870647549449346285014592399709445288812934653678755414638294987896539997590573046979379967029171836468024027456381051345407920363029002857627459533244773158635271331327676776455264667777089731148699198617597007008066503953060391832921987053880957579271706598323277254942944514801808469537552045689768668738973145113353186959876076243186023854913546548767880277286110772215958634283415261017620105630970366460135360403379264763921290725038124264421610393281759248129545546001197354169130664961266567180594585059758404647591446541229825327914419210178783805609753223518981202237019043772034120312795978555323496072716636810275971629791371968415430405425341162687819818355097491310195107337960006417484725478050257738258602157413460819919312464530537146825702929185907740855210012291776673761486622446586766742275090942083890233880059626606238949899536559899161960075818705459814519740193651822416587335490509266116202417349814025467686709845852698654499660479273341382126799081931332663572609861296987554699037127385663450025590036406006354521742588638151293599958055113009261933266849749971659430920253587397882700021960710490431686711403593571769816725024829584570693925128100699092742816785618953433692881250332083851342380339398507603724031848956799070053540061261064904172802099090829386114214075417750304863007659679345258891520570454905278309097363487011655677149642165307970762215564565121503828302632629309773852877396461270879566494461486589169960071659973211250879946253191688443539749946695876829883756212736739946571632332503798086752749090456551790178203859540856512970670962274358628168734423173021476177441514071820260775516338036869996193391567732101907691520550187920274240090684006961880901826316271081440763798770931060943896137375973001493187289341357053991800468382220058900320258022439191978282332106532352886414769396217583306438275226351482363099141226008814510940091634584359399400180191189473297598996862957573943548982543504720808616781768733777734489566615511079657171074532803136329462063566342643699678446789184467375424367856722345374268787258570179599514306680394675127459464299180800782889475534640757312671735191563860402079935476450733134582894849025331477664826780232758100926426609255231949492769108313597439628237115514689665801707886403242074423199844051912661291430312473029602994184424050302207093775633253555627459149402538309181235050797817582369124117287889704845329433248380396247603080811830289513974919943465556621621006892663464206446695030422515735457362939691481923083314578462410236560930119631342785627988129863608170499008074780389076714673810618797583494183049403444255173680152609116684261472106931813669410692108948662565215822680431327308909129793439222253517549663742778833798212949858357396441490282377344549794767552372677676440688460131128541899811404053356021317927139286919746896419902264477390931992984084966152303801189500820300018374262315732089849829410996502109982929153940567717367487521958251394660712390542470087097560033805947898697177211250548694376625808003057904344703696018710403466707204727071065962551680931093283863220111648933847057431436671195072184227627427380983718532931995792111551489167885151508540906803158480252377878671096886098714069443595740819148579091149204610454698436127238204550082512792159421788206444694360775171496443514371885651884662374288815051952015497212754527765949182641495936419907747356673321938106405966885027386463228218542552307654056294943684496084245142001194501420380991962152813775453073968167660969224059745568754200605372658852354004145627108885125737346009535323115591843031417518125589426572058864021433342852351613395584741705991209436592610668909111841088559571091850784515639807415777144082642073523658030208580987645632529655926427941115321797146209271841115137139275018120487820017351551809993582395030573938087400747150109211596434906176321150935100517655829741216453006079294248586088614279054481170134668183418051198220205728715814504064609817535593028730221415363520535181419015324715712368353865022435268123502929183667672475743063151714646106965292954387010621143155625816025708527027548739615064254301854688406012463411797525202161231380941265008884055652832516398386036980978569063707824215629088919688844554579311073854091697207969051023024611561694599519419401465590791573173633018570228505880997393746036155141893650948063668103957734755116345026663262714382961891351052084509280179215172694981210577717240091369593241382174004768647800715952854466149311705816361473460965661428671446852556748695484414285838522958418741934458505008049108884043697693320383507059683584504820031432926808914600384564636089655163759895703288748160963542745010112695822229336337211670892793211118136814131165013162415459458793385497925599551585858796013878920064465668845738992471194328538323747991459209816894992918623422305653598300937575726023708277322152737101648929551247353968430287896547845618021702564361819654878732036310146663984605962397747981044254548895908795160571161884315188226784560729282775756095237581974458667295204181590743912931710576561226178868778126306602504316467303534099413725103735921890930484604486481344250795843765805643553372534853657989153789387672774093732914232612990727799795722384361459469275677373309357156888550072174303930034939008242721115664738011117186931377698501893635526998077622218045448754446321927438604041621615235695968668205883878481261952943729633138231690183459106846722878955757828359707209020290414847577536354212652921863723062262778693341189563393832448873780453640279596699474250774450864934098930825609459894648124365117002434820699859726412869526366799924529320186309883346514125340994490176931303875756519907660441256857579895931700196260029030568447823216923618495505589962780734859507413072877156302657834015172432760425580178408933723219427512164889248134237747396200192508889660210596757316013249010990936048995126084476257204117905929586536770797609105987625149568776493807630938997814969660954573538059505470475621367501470621107781483242716325657421478619908905781220043812635562746502875188775254122177487027093214225687181621492066358531715729680285517347454564361661129737778487896767811912183732994813523257552322194474257598580483632523963137951578880273196313062848496190414124994144502157138634961764812449844817010814012069675067990712157925396024006569137276045863897573265410310220530136884463844882485506905234575407400251582030638932756049954651835802172480989442862354476477330326524947743240203374992385331636543036894973613657473960940798906540425596593622413790419462885276147625562530185295073128771346454394232836378391302302072631327334439142752282629961603484624598348484360772080237272212758036578388306341536736162606837056930219969761451154985596794265278363991177589099267205478055984555536909710095369341523203848284224419688270137810566157227184910933142175733574423113859949419599905330386388532452787496002874732983276530911730686817226422952842206288988636071881100303438394405554753367840236136302991584362509088461812557589456756532300752373538290049382167359889806920124025693181858363823020674633494683820496592302326923560955014417807969190284942082030885721529435742446893820122912494859786942057132073595140994478347026001358763542407163880214991747299536149842974779252082401583687085910618210157128380011872278851570958110450407645357461827798022068365867220845318909617528210556326407671604669241171256342706355342280880629225868000804041254749202584382152293373557091635139880725834292538394281791141571116540069355913419034189615796429507659739119301687302217510183820179982301687140910672320288470719090594854636498795391850495215223241591677820542596742244545322173054604179308959402428577066906388407403718845847790475716394641940206132025918559719598515919254422225060448835927870012044461545048693049191306529653967636309412438376120402108285291099542122399913627712109857260726443227966602482088631929625209988071397965444059199002465404717187988847539007376115140226050996816968205546083016323272686747718274629344029682748325780521538792203948559058385232779593159349264236669279552764657600541267187646363903265725235205668823313756862007199311577715725207454479814263871304576661538339111667707440261367412486010344000743689746392017871285167738172391312939258238042497786518921641858067333255954602707787757146767802676257347430032610701631335586185682301507320081344716689029391951088595407667797719984159937846810802936010276695420448214312314393412674314247537600812030762260217231357571893639279301606074569279295127711710583536501846577836141885819686794087998486434721403484160186717957788462216146697793563039044596524709432343019969184300249886575515432803365663985660293086226106176812225541453432873936194233740164566468451278316519652818437355865441795107483972965082958019052891087042782123192423496858389610592732677990100149939221246702174914235898367799432389119794189256021904534413919317784565185165180068363389531223746270917256155484920034160563578488658803408257279483917666938152372167504966640365607453730840085599561373768291169183343534385184572532605280630158366623488697660381293849667787818055701453132862621479427598875660309484074622603725199094841646951386974813220228931710740016165494047755778467479158157684009885859768278844258669708665749794505904301282868009539169365491861681754564524075557382161513995122134001755782146638301723560606618134661018367776882454067131018148607785221619630750145601984405117391515393634215509793425855424784879044902678669934568748855797493830969534865021304994499880900965226025879446027638444928680257911961068674303976409451479279989471180518542335237053594940207647174055322313883491182929645148623838821594231288306337221579147874514648643375844564066005539382419250949044827552118109957200531530698699322761224778523353215200412439501679882920557468368732350467354812018789255876501431118007994361326041231422743447332864880795927061213908802499915130772080968729391393281264051636296313249828950127294273931237478592781614718935655783561450278531034640823085042967893045232379281765676098780944958194127896757892684918892407412144658229235396118880435906000897666172278616748600273736926398313624634131866206127950842921182498219035692458093547074195632467339962295836370589598165454399329208569610355628533919492060745686273545259051597527129352061468548966765666555173751738873887079567787539309642548031728991441653110267474542729982663611499966478465305609592469768303921338902142343529284468690200549047369450683632670257185121406270493924275224011322442600754808938989865911046647301259440198111410336605974593433434499067459847438284671217117015332148874322990954385604598398373610250461040684637904190851981841588264746794923066699628636602931000737521324811247786744003455105009892712596687800451289862351715132791967092102886167391352340750849304219446478529448293547297172797140235291640393687278937781058368918659175331071263859579460298367110211145209013229499149073974465201308602917658114191489133777614632397051508781193720667475054877748015544282685533509757402662007897488814648127131149681973789236355669708707315600381308855238191443529412621540985925431653448940591664245161024674715776124294274055677745377991022077619007254221016129371687463915183364816023075292114430792539744155656722128096513719421797346885364838529787669843702799961235620519226398974411123054355125627140060001455633237209227175444077099030944356089830836602161975090127827845409671471757900592589079709852423885024508553471609188374357851519935279108215122756160545294641989120057230019831249568009194853116924853546559318400475465289932783666038256587990469440137465741076346413964955423292661669199117868651707411229698937882899897211122277480266431281794898225291882058702099256393377579527499307617898088389221509552461407020035885087068246038097731088447969570044907181923003834514534572803150428600382734749127552489342399925514276314852047069941910207501212451329681800896298974013437044948050118176099806577272998850965631149082610883454676590881804475941447373517466660054070656905321233595061689430370967454502046599449736801326498519279984822354983299784713699364495237736954876070777080805242376300322933920693192846200747316780726064494133432827151554258374828820260744462125885047769197509194159203607706240469114876903123567117028598294142829237042851927652091334137807633864626654351566447701869117056655599850198951043623244527950218377012131076602571902232077861048864418126730107350577742811499392931415990427696272555611955000131018995954705178376543875302565066189009137161014891742886723778044060160399904528343709123195949241274169991907353245825378291746556460420138602363859873238597631362131364295228762791094247965977770527903279508891004557766318639690765129684082099844258227810353889877920260302939053221458034476884062725140199917899048740001691213930834584554374816834732371327162379212623226868067844641755785466223229163350445377250645322681137170262724574106303715325112206074001174081992057371572721682294518319464251446856708570543671707411291374103362118178188783940257324397623470964267513141646757720994006598780774912099315457744569431685700165923549497989055004783334044257114966148497893494027049956048218747110694490223541289854369896858496135241410844787830427448810798828365640985243918403733104803307191895508224777727922171686722876138024238822089538435666648412120341342915734074562878305841118998154353503423628491526779822016040344344899946701545173321821598949285723163270354997837801128962240164179261799956064825295697071883625098840810962180324071184187909426546745607688269672499962886376965510053184188376324185907348741321841292739863673005909796573068904430671022103220476593288334015570788302880411962354901473000340168210537811577242357400670010551212125140967452320934660062797779058370405748695941933140677300426179395341239573677987080673439283603122659306248557434546113816603976511761441614429502007453002642145591910983349755706832450475593687232400222309062455227187815688832327050896759252962725095591478499602659587998697940480031643115767421073408156128436458749363714193412022077965976727531047618019127730595000047233953164889194962420934110088114401958485782085374169302466845274933584708944820278360126959647006458411094855867913549851556682425609418839931831664018658823924118734394993748909484877254902225040669761253153112617743175664104345674408489408416101495786513926353009232291757399374278090167749573413346842216621759594484609399711376393842219558945094811682446560702892282475067438545999034055123972531912319547786749578123617665734945915746394234464185359653242152356402672002027598507158948200506704116068733364742744455909517251628628288631380568546832083347423015551245375768720483574620244500717850229740169049104371222445484325788967642675792936728861538325218688665441020123665058306819265995678589885622248741885092969208683603810019208976452276206203285954301137981682161233408379242036310007266828824823800556292008026806372331246458947391555657277024653391714319190692667053278602961087737618413016472372004776383279200948356709833623951586954774799329185293855540333769632419504208481816740838311561325717188698484900295979048890191631558441208113947459755888500763074132541319199208060468364477199732699271497167388047380503710844012623129296982954340408870930995678250953068175527567295812293279952004958285495470046949360781928483562468906397582063000728025555863646098775451080349768660778337797991508495210581526631641886128330877073991672644202703481047497150456994208729902953359417304051873858191677147782093254890464120982015079631025461767335539985836920887925383927980972056708675016076594606394074723432906324431083870371273152620986976628180365845803183043943948738279336972585262994125855627296541451277737351455235339241874863825610491998884945372784166916542291656402393998556954220893012661867513811409961405061778728997030427173295842314723964867183711660510108720111241649565962664958698948760944299860856218399822116013254141945142655668379665009503154721150979327995521592297339923441752912566990101159257057146770390817094395280602862213579993572252854093224839550641442301652381285901686973494158764299051871446185545196975440882869002623649815958684060572133041889519312180072377598196752178977740432497984363723137952844801441674770882965801139363898615000155575651011569100509598336343483005113996895808468642446955510359521148600891250452180848957783945208087946748253345363319694295292580157808869923087970527703981353021731002156868568165415581677595020985621647265925175365627722268217483927725953205380888388170666477341422839300716156225809046105126649202235675664492663162349967731387785496961309049632236361941204954094532860388975168103751505709969352287410058889280084573375771582783225282215348884027952610219143216672073329884818924836172879112639249447245186142735678415503415479276224558855584945689846319330535246836331297853821268485072394384697394130197286696458895768872931099774698812832134599814301234876876740318166001059965171012385837777571257673767296450844906268991463258187713680806256362453223915592907013428436217808278952319329719415215466382860323199107307533252526235753952188786644636788137831112958183723458807590990717999628065312716681306677914938196954533845150939205879301972167144081095792195419745313395378285072092508388558789151309509453206193415522202175282882737430126709540236144670311307631388642674877665696217324220306913482038361562428132684202247156010735252500365300584755635659241188974030249144792082233614107142571632664893844626922261808418881210831039119224509441723812469035695866638074329716115427098931835076246082189890174167785236276269492257653984832838989551846361832307724996615376521230887100981288562222252874208190720454336594759658858201526019401472744840606608838687208789337502866974554824046487659116149445458729429836833738873724673673465863574298701231165773649894181304363617388693349606668428777139549842521157569636764728964790204764038525433401432817216068424470884680606020776044448535432452119372318189969378261206764311154614913675619948344463595207686812293014946885240682537842359717058581007303116159166520562834600493597400331068837648073778324373766538725928246102995724209145830806477409173826022631910430506741322839748434965985090698656862085644014569473062874914100192877657821202488841884323498951865417890470773316941037149047857113938609820875573576003051894219462557332189181595153189020980737778158194444014793643530695509144762019156847566420307282331716841189740862754435534864654666400868498988397083845249064818232442994845865006720615935287099978644240020696927297444645064202458705644015631176048646236721019038095203269866352413689173329160955134452797100292386966419080034311257857638679867704993539885847604519332582920628237241701128617717368839197057221320945961756329962216627342120133223523496487351310942598136322293588201743550058582467893741407499034290120121788338484039334472919616739235815271815765872228560747583894776506945439991086883407034663450191233765938606027114923146327152314370330090674892191908295939847838233930349554913198017145984301765942725035881803764327793627307219111199662813667545041003431751716186266500468690319709564828998679749158070718641389235113161477172881096956660147598348191190344410735943516170718336592088811876481814894373129588433937280713256894476430600186503341011448340008005460294332632855600932223775828562882832978348432467101322077504755467367307819758309999476305568186882786748852741244419937593681925886905461831094916712486977429779256220572053567268092873609893891926578225633521714264436894274525967815538580035755063980558468208553213106552128410911128536092410121851026329652172866309768492442461868084668704887765453776450667505919100171421532104661621003056950305303469649512782616321636401955669895352514552466084065922702125722907419604295226296480398096332196586762048602688513746025957627685200022569488201460337268433802230814143551408109615770692066729306160763062139821976822478898251657774638672892667611075513096655267838541079959502382491614005121146565663319359602974472608822420009419926703792672112588364163829259808502583797388097331453091142972887376675448170369663060227611056223529497742938004807546656786092574868440234999340515559687776153652061924178049145797401955457961177679195839640011942603056551994901839474326228565100477405620548111383846706856891403196574013084011804720372777486191820726265619499896918395136073703043028256883605634191908887257113168294221654632589725292391760740386496394379600277013151462255083041214342421770767186475375107467841527489501750307373592930445954167019117412587797748857277800933479307757655826424530906838631822265586943536865136103739037484098306804904152609821675295712170330126062485180667048089266412313870638623520079674175298409424308219991654407852865425459380589393591245118808220757033792741949661167363342189789461653015499942880060095080261433813557414610053450461492023811555908613686648613690358355873484939311455953932092045441848070687858437801983297634101239774249148035034928168934492028212452676531805212610740179774920167593573015665420871156448862480172800525803745548472868617144499138744712756999742676018613456594963078700637609435605674200416113903168064033555033416151469461544702598218873917424994835504306528942583941701277713969486159276687594175223795691484406571339496141595884803829385525357981706295209052744142429319242070319982791445097041013607466377266892663837808242279724875599730241548747946826310956439935877817701142610915037275061154580906555188315145375913004453656744160389047443024812908535695808898523628640869526361047702296420541018089779330489563721202885710710507814742681957531876909164950992132090314536228267564114019182032220411134728791989316310693531813429690759470159900808082717135337249231687557259367623616271054939512844875072304451982021076267701833424934234033606335323168989779810690827640165140232918026517030291936227405779441385548756259710395849295827252183119190000423110566073139747089779750578459234096802787956294430952639934365949156390686280869427093057128036822767585336213127976185637546527816548244289923280206114942776850546151959621887385887524639849554629270699537603764597008040318449192903200296782083452230469315273267426041651833083834148392591097855487865903877843038357413211562357745065319465141342721008940331694829383188346503756654682598002996876091523628961521928552295049078241308917713979486846131822975545541434424175451730197592269973852555451259447564979695924907763531619298077702661195385951565065012298865781209623773513043426854105773175469702068395886130107679075311442584096193346044332392679597975744561995305742199438132243089420173740954425280585536259486672841828670987168887303506435781155008854632369544811867732772525694941021597916532732264228376820627051876922702488336101658356272686199701523852712131368171818527680524104766785872553003805438824306848202890216187609110715893157040648790450761769878742649773904237182852046910194464358266501020116777688326642162671286632839677130999002995707861218876782444749805491626397415126360478536733935261694348340731585336747826952889775439845992898697620275884895315006200632734273722093543103327127171197794296606442483923861916232989252903773565088052371808485412845435761615726017615711019588601482031882331582715961915694884527951155796328365282786694543757584846272229148346286421762824688241694206109213208286064775530796500694497210109458930207022894538269820080868874532915966613933848770145634735410358157110271630602771580489798492775948667693170696022781591945586347836779758329269715139399214775804273349035771559398295540465140048841632042053244294833569770569127016340160220613693406062830185388527893075049265437059423539577476105360089537275762566153869696434840373594940879824275287082819877434555367873578546325488120866176472081806589606697042873298840031054160218403723554971090055569940975303373179357000403394846881070380103670082401149285198799311184707189037873652563272028951422743595375431004445044190586382599263410052290465398040515429804606459255738964447816073710285035909418504226200009992851064265426397204026024225909270974183044701533745179736848154444058892731199769257781096383819605938062464716176921878746502032806728147678807780107948145796263505708971675846279989682641304779836035121185553843346277032935326755349632369380160408922167226606178995794460753139259694717475442433209422865482235129305613223341343810248703469563476567202400639500294091441088421573724833591648841210713994339052810112403505445834562556019946938641765095303152944118318897445349306044272147657766388657094258957145330293833236791229963160331470201005436626634063581056076304117039932206451223475213131399527676213234475489987128263364237822983488298584791249870872793657901692538667804768516943258649088847773713574037637141085554677888247078062674688381394423879472235358580753198279239170585241591863518952485688395489082035588488733417505376112088718094425345157047794746326239221656179364678154545231074070170006106430080109170445789915799174685521613692073430741283919204521045771007757850697835980304587887377284412631116215808050296409491974351458223923012122073022260324072496068334319048472260547937473238708243494866215315379505272946492574539553907470929600335782833322824102869020066255711896857327911657584101919573726571568607633392660855157204387613814483880871009086444910277820372444313475629101547442844827604422675254659942331905372268369399343116642558998942993061155382566696231448092532638379235122753447933442710199346861317804734207973528991158086549103805790616258518458503813910592444197262977303606666306248763703223706066613090279689528825779058453337556449690546021731058645420847884800621897513859057612157195382036704701333832761615104602666491735694918235961022756990957238983340386925970638380867438600924744003404413149293790946529843736914295794017619802006406402951394354616709006729638261954145254817933365591495168445468344395067567966256256346490214378359631395229749673070005472105544609181496319827210964392139872525529621811849505545996455897476658992665841210429768561064760921874132388710653355512507616578136628689618399551420321689050956755125494747367618388638295302442171672005652281240102886507405856287001372124158992724972033542358877132225822345476358228645338758485053921988147792414155937881144597312362049891262179896245488141189206633382531912134619093958768611913360531992447880593351398802896689330481575840812605773686472403081269703792279480595083236184969340877998919144642209157600246951320629112289712647693078833488428137727825120550407542590201093200376984505129929950337187958856086757959031046379632011745976429580470801811245246850146850392105186856088964321665720247188663200336182877988063188668063619161836267109903269570333141346332426094139036818819882843040079024811813838207433281222460643845834764084287411313924007304759820450156272275467518345610874498410262541946961131970560116291186518816196984762186144533431770423573199712442149889722181101580506593368520619666396554151302149721427916570731749388843879837242085256906786096892217018199114005222297557625447396589146389980670336911605702190582033419221279199714561199271155765676797044604744213451563729459421995482190656936368654252515840296605345727595861746466345182595954122146330813987548642261763200432943166165387971329358470702160078920321766039875975413669782683260555687138205886741435774300648954711446248485427388353884839542760713786490722603156717298842720726457954700694638114103660461435744635633947024701772910308550140536164674998967646962492440702766017931355164201658882533623369003927978899844426361745464106185196705408607276919229292413176478749871089865518447161620114220976569925945872315437301986192324652617102638194415005407082497218523791816372176931658251771875299906421845250382274514229051402782117677967934360974517797077226459403003602409321408171124946103452058117155992029093433423026434835471827976891013516382666819765193030129573954424039697941081115320339917714715422026347265979777228207759660276361191731466942853807214460022286426688566500622456255086342295622909264018174860926222329494627425032269229301578753404974493713470531086466036782487665404810071660815239050975104653761002560730835700166483941034637425750108943140951123067948683845672962459461200548363224967705111698269215552722552335363203299561186976793402320254393253346545935652860594693705254027879200434725725748514116695612739729864144447944232795259281486800941418448536408294530400290293682298713674287394637215853274860241750167888045755274076549496071486044958156001670119900818500989141398378965846116635394561647913167035037663249694351445058709788422097852997550647631718264908025250786074628415184753935238428369130032348599511161536838695579745763494454967931213497444527603772384731952546688920234520567713803984613074199025130938589254870685263312172048474246857441828666049257830015270186765301569849427588065261569011984674391069124044744539910921223977313441675900629267535087241403712452013111314193088238809515740164730524486902472262450078329803700481404328036404245075528749324739414709739859686813732046655263971734830147932303559943120073176711687929571522319776458559758584146905928786270524078877332165952607545825054289870897626176718001733483628306064251890894583241298015184040358255852516762474775083880829769600422994326357970936020603988656390861785622683373316198866012436065686035605662189056682640558347703751540702322850377199370306719177223368241370476376525723609587122518068238871927866697054357104354610933934400106262274842207343089117649856390323261200836929140558132983383279479880442163804551630010112706552243915101770159235515465952005014656340538431283115501264527793437935326657048159038528704863626535894437515705338404754735340329693594266882138877893564386265684563969931748171454691823812692690175576583486267882095154745288309230456206379832648865854199033222813138596792970034000747958656259792837847844852246970007993460585083050438186854371719962902610550635909306839673039264005005172504431184313544478668866911921370058349196428897369553889974312300811589235977212694993652505005860622808551930909676034207590243776286015856791976313138528174410815508117728734038291955039674627464197481601852281249134300061850252599738515872595075162160288445011918542524114684857977895247775580331895236313125090117470878028964244881372935727787371115372029675884078038518322696247531005770878016738378376936634145979614390149035766839410931440820609091704033071298164021536848548293151251672070102429471953219217136596162907666781967636095414334043144855045225702922245984712104487727909510602957288369659285960338464167458892652906716627813205577866169868463735697288323655713171186415673482274968554904256467740368414393619524885566000561970626874544522342651155862995593541693009744851905571767949059140300907128069218400593848856095361524480888159436538926650355187962840958309975995696996832857926027405360688770727745352817577801157994979399946256235784397711533047125962234068392474148013441263388075120169470612519844003372990627995209451555795640359313119471986493010148557417892641401659458713675709619998738973340743671134448885307664474908728817758474535529724796231664867561396118866161139320170527379451466029220569768228828422977610891158261704572325267229583465721911788681491457634124746432839368551631243113979915410583572292707034858889560213356981495702245897099815000101369821108005679116220998537253077988228294965152447060339546388689786223564445531365576251779997090146517928060262886297973069534348676965389881553228688908024745644522750975337976966843638812731535624832958404970514297445715218376723679987130085597816085384891916604687619012445064742598779334611718152011083438833858156182560593375278446471490600760009276915552506639095051593970160400276492077729818299462101630503947679319016328173709102532854521039997718488683998595534795052710470811793629000845379634497597529626050860590966641339966358504748197607882687361415696484502881051686218773443818052663771466000041406487561068298967232734319723044311071771354387128473834224213005083539047128875708174407291898255872284199959093572320024097836384709184322736416586836035658190552118520500003204795742314668064662852492151867465777575389902868355768894152518003512068535390913609590886322933054486632556767988244626760406113735528017756303238844642617763739573085367677409758457546773229378397651386669859587535836158221994323146466769491273122654234806055742592646294234477491166604324660330645283848642301549169320855698442028624298184831087391888007695298007035935642012942827796243858549447370028748524850177504109856093521111971267343901115951056559030988013074266978348445354595980824111556591870497683057070891008702253015642873709032856496265913560431539213837137670285976294856475785514663645419059625358001852335685289769207720552650830480900024638763355031067270127365932147468864633900103463949404492063778750365217812038914716953951313316950402210287276453214759716328335616307856573975275719897439984847004463481596254412694273132902180124132139986296885911955275930197222911447074780533997030316599642469795958555536481369626341100876911999214206876137661395671574494596839901218695527050845382993378788595526652421330550593633865406269575894660731106368328552516496819347992884624971511098905839542761850760793618471410176056830178843644496593905764511245113959218975118676448348419608043589767065596449626131601307695985855346134190835651419625681718295163020018131587421732167432720167339474883225297855195523453528288876953186261805917119653708345724797700307286848782834059896627513757518247026273207159325126224627269068405199036690118760734026757700682662324007125274431765434892525035762734730540854145839057680647167017001787345016524509469124514706214117467806950813708967454804006159007801636143675810056328129945149902553492515461283678942022519947388488722886249670327480214965186565748063449005133636320916763227436697165769880048153483403130533415458415371133947792822485444850710146244914302347676224289960488494216408485698587062016152384187603260475031049166283460289356798776461589056749372308402249787161350022524856296035573377150210071631852292989224979459236180256291304889889024921436664458971542607099868566138718137195429761873990783110850307354131006054089016667218442075096518047242728808244203762173699734263813195452394415104160179081403216132378294699114944197939039070299879326558161404499777760346759675141262614523184255265463088264289078548525662178513686590992518262587936353900714846706918904864106122594876865712059831950679562785263454626557793499695983378605069062706107301288928497985131761876923831424560650617420598082532879881491982214352604457161007715402877445350812986962525814736353407433308569306214832678999333003093830486697782105193058955279146763868469421295824044173762854843243257273480123159686446012698950636258328691113900806733510897123986833125278353338568655920824743257158263758022279956068161830718044758090184345839608283324468153008442428586536109554304190486406820667046010919660286504736050600252837349550487325294923828709952910406356251318598747321995783052395917202077013084750811517960410407665363488618879310623754964144363669544129773026282994630235582296686975617542562641502287767796293913710086701382205282687875064044777456496176757670999711703730562024166767731387018805044131264961311196221445755350194897542718456967094499264299330281700561633932936300103818173139750174448280714684191679179351490638165224041570930964865357904092489601933406977198671895237887662323892365575449349305334511274904323580393784148587245307691758801745740553508571078891944980380131364574793248850216598139632007610337951957950492254302138248033839062474841105984963295195414360005212424316785340659139958528869980791329596982312905298481845782953071643636451312642489295979163755993992996405161339508288591661410759941902718932150489556405824386974539776706651473577595680601485735300960691058008715512532568680388263111155174011511590802493870776471564693870184197215165537986317905776068936093603943262735178457383826764805383257604033636265196517755298514623032750387217051575567050607849297645101731572507771840104603037360795454868341188214125939978533909081765402409150676079498998981150411243270489949032319122996124378664930247644626415977468429106541601083737688616668350376605482197598502338770303263558100292882068866769240439510210266584444548259635805264248831095587312486933347274684246965677970823792445987972913218215483182480427739210673503049003365896763405432335658796687672847489346825188554089684847914615720100300075961225241748595185360738240400462107332359348557232281460121548674983509794856160391863294428412158093973001525844178541930774815733250846758282180224997072554951462312182421867506573943751240463470809225448244068424255371320558453109480633627352013142099403676041595579667839362160321324323210464626254528204275017862539129964514122212151710858501759211835148786266004063872277973233032632101098985865880525214008649542982147191106616589042117311633340071858115614855843076060078262080967249716303591267291228800369277102585853132807812658306702923755538840190735837413480705848190576210789089484843272593453114323310906296015748842490679564790675513316004593202971980742465329969859940338240239870504389671926684622201272843355678108516026213456482446048165921252262845532036284197019446117778797078407726549495961505309865726060236013252500141530086994116084565961041404263191951371714040956893517756841087195999903427827183378038256804063689263453590461141876625687258835375581426046035048810009628903636719694945068140073702004394765385956957960464038482309051554017331399316200745882775506103111460479885723466784161586946217523149972654603615172978442130689828513351805137745739402817331650758200499525731258896812947061699312391857897386318205778502755064126384484072674979596804371989629608714559134231343143724928730053738392160476473806202980373050187989065988964117700071687182357044723835687427609890439941631454540773728478547821207742792364044549117202401852406851974316851574544848834667691802170145016153477574008359839062091306673377600332967859974711878791145361708314949319028862758422258263545751005977357070803713656097079837249101647234056543915089019875932245116103724659800633904497111174396625029468301088995721890323566386482342698679033300045262591903507267015868055826580738216016983759211380064399462469346142421884866514144950547696489567100103016284436786962300524417100699697759020174510835394153847573487789563138243657041434824778578298030039999498477911542495902691153343071757884424289666115839872750966602214331395402809629769577999753969683716487685642111743433295991214958630736427780791539033365863064986600451203141672317251669941314318488787415221529785198336093929610590786044861020399252419573834300951500573437560352746753155660235889418548271611912229603725823835729085653230566640927837001466246753947490582503170934167702622045480138752122934934495037328246986783930288822685013528009693767812266897605601913851514523571151663614206936595829185061024740887883563345807298572932919860437665010114854138578524883878929755342350452287141208248132001915741285044884524180879960294466690381625312662907194714906864667229270040403598096796718595946955698529882495100239574915952632265858881453123814458305713657541600890852504711554132298093239727942850934821937984602811015387212117217973201571564625942690351704093363698912467322919779688779629807186118497614500061779244148116695570903879445675036248177088170380055574066153165250768211324691654534524864173584992582831738584808713644938932615417433860948424645886794041575000311508292279340317711752178745668214071832122209178220351647490642393894922816719716934793019228213467727181618422366299289460506875874099283951256893565174098024017472514250281190577475537520445550174360575481920267548594124865409519674557344576373482536359405086718392544405627622320538744481540192642055169676527455273013700057460511141878529382335504370818709215665542940874259886177200568009554567935722388182907919233958956741507060876586693167061546862169771358795793855673663515697639749807174115351038119996023259596414753867425474868103879488879672597324849758815230667672031146671296540130248765690037498812873393409323626156687020497967593479586752123028267895346352124800612008378124208775232624142078046998641869744906710688079794276149815593478682182489558407798750154790757055260853380421165181215591315595890387860194168221863283007787088835671713475459967088173276249560656106190401989963138273917431632482575363550076652476825806323632914695228159488948965792250164670831094132418454670107661140322640524221051530293914138701685112973229046050962940239106249588662755924927136318601838362053484818922205384067047710436183361751309223677493132396134378322870417784786052016636486037750920440626630590773819041496971335050717124343059863939566823998416767027448041579523633020073692584335306205938841878997830079545934057938794787816305938831916417451793295444905137395776581163879112178872461891202294697577219138430481859180427301781126006866155402061237091411163718933079365049234688572208895170070928956249834207078348014886464118997150986661141199798490931816973648568725796306597678744809233246310618243789036231744281986636236602988621430640172638233891342708781991721721164344286162458103262527766331126819081824355711852244011850370219160956014149057052451253864979652591583014190160467129829812108643064085947791336417792162044053419607173678936218330816104632661790342069266410717675468048468680838444010069470878539208773406092472021747796943584710498325684839942050380213978523165488545169666698554574953977650083116362905682729752950675174800427962615175184862782488787222997275667293530054526217708372474302000515237672988042681158842583587538279322838644357128453098457858395178646870493157989390061077537934339345255031252214657482512930416791939049077629131619507473266747954159367840857540388660709476542430066598536059961511307769204296419300326566918347710499567457546706763923214421179741686303309226356727195500074472066975282802215573664865429439060875741866776410274039988049162007220131196272962568840178378984411113688704909344826392340303687997845680091846901402988646909179552332037206880744140608235104113858635441408483170904585574933872125946601047118262746628240294776858368007761178023831110169339979288419305746338930317628867158859113140295003413687876862993145223796392670115725094317856631816267154414585800919273488191225447909051685089120256104542868560376124025694406926790528865895822899542935917875855398172646914201114344986793624124676637492836233263284500905204801813034109137267637121235955901213305892955173286141685791725835250616459874335742877122008460865495522109916351119814490026326350714876090297537173081159597336518855146850570444839544618637457841820431355208342335166675229264441237872879488631833728144424980846639157274803956147958296430760806918141324528590079666737070293564242400489257924548131379988148279105369915345564129969205958630911013849530272364710526615313313230546501567216809150915395945693344434721765892486105144091609829837958750938269987197488986024558130882774327950400672548180856381065196220878345559281410367599388686980257444626281582447507369373106079299519111498485183031342231340863934804818520746930975087372782900460266832524153510766677311894216918761725978387287525606867250906965542342012421038606272823158196546693404452300310089238546889819528620494318123041741713907801709607835173310557598631239648089124289394406705577662868230404218151271711910362204139622137695622176467120994551152194797676504600023467027061044759392224185265676075103461865598274912170345858499441150517131967139151420151206293762312775312272977033156578407838867996276266105045730779013430405159104498382278946843671052995824843144636368170259620374799405159770621694679311132197126505838413724667433012239128368740075296791486886887261196947659987594545578753225826872967163137849088499871845108749531962969269880715840143047459604034529663499585375942931053815874306248496678548261341979951908303648452733813570398489206864453227658842274370427357844898183017441490895570400342929583760860052557258311789445378852720313993533742044725166197367688451963002200731515833067057934097193075821483958690846528776125250075565182674700588454836064566383755395555786721088914322065038651637297205237031707565922664133135858190641341678475617592922635221334152355286374964448109267426348527452607998556344381283028620706165754455184920944021399980391691380781808055818506034313990864736472287411957771905520249918208435569641823054332874350573075247120950604143194017222403644448789206923651476404647204199920452021054153156747226165713631065175347382637370669514540934744353796357912179094733455814885519090444647873464977563156464135511914411218068157856802363557705376865799485854956678720228566450469260501228414231058550199560084691522025803113715898159724644725870423845146817297140081054321510495257850109647291164870927077328175383776538129847421059969810275806172030875407739092348330142380485527418921845715374945324946510401307893351960400039421786142477134843213372329412204874654293838476253557406275938427066394765125434115141804197613126922134484734961187975376660055587840104430311503279935762092771777645153888691660413891663594433720985189200031318029076010786482080846641185734778422096778534156142343130711646907294684342167309921750566557680453455828093542577626304528330046438244476376783256472058606734063770884349978102855003587689175474240541307598896307425098265800311596540470949535838402535674775438076764996576944269018431807225641516911457720954607512995938093413470559968903056349161717883216721319954221546067153124032378773531404479073827234110931241060492261014686948277307046215737173553469055132502168391119399089931645619051558539181599350341914870378617251059943890503888607889000827061015383224464377556730824715888545086044647758937714800031852860341957450704032181374238950492582130841761178280038119800513582859471914142312061519943537886743326316319012432372956677990181839998986079411570131244197969010843177331335900817270881642853369102790294669634427139641748617568134186248974552444661023338814068431456272534872389863426906607525446587442787000207018130982748743961879637424875061761800582324243912781776969259573950760521734391261214038698525743756292667463594697836785344775753600403020650753549083998832948600900559845659791997297051868057695692200051749879880024846392518765024969426618921182497080732038186741175250947326618310220615792248842468978110066479572535168775508570518537082180919078389606660762846281745026514085267508633763027912063009298429907504886619716422494943169007360519148554948697095895396153893267816585952447778791299929161609708541144751288289096562475625752639729282668090477094853650570493375655984177744149645674912715158268425024837489239801593505395558811259369193765748032809387834853496509983708575277159915572206742036031542853594906115993527479333380857968410712365791187151076375153688284785636233018800316717273035625362583560219951234363148339197828792578807398230167175234585412588544688389749547908362500437396149360637242410949933133972689937682423344372187676328836435565248897122633291820086458027158579055876540905882289673913934070787291758565961512529953589601867930017397192405901519826022863234436939635392811585442093261567824695348530123691627772441225146260350174606238478006919880621207543570167027106198439866586590378759248680538627002179722524279427446398822640286952283537502707601109067947798669335644235919433125229952201441811440204485087189047748475049397934048291814525096191372205546614513560150613011960622572069042351518211649494703364307087711658125305203107721187366183138198439263790438961259778567401003212745034097570839435695058944589412498660306220121749374432785788510616118728381479654370092898505581423099331058239651935775526363738992070479885411603990326154914582568173497489529654628577215056451544916513855526441313167585767447788351552775397284698860695979176587118040312402291770121560710827556112031756829617005179020313052117323830278384020647048071831973400151579088124416885484803980071142963321154269870627091356846726164016216315361232862976460089841318790787709279973427136529169449877951678391978176148932056981584003525772501212265021179503166705464653610900044103988860175922463852963478634963729450940571089155282406937265799996950549258057376074279891185258883290608156531123369353804277300528249230532284116005125708529859305286735477521148514881789368536494836815472870283752494033139533617536177254170635519740589934338300626108512173457468181152538091975590007327775923045253828716674651607100649953581740321665789628750477698789864772695472837986690040801354239322228623459439457721477905670795469377852092452817399081775772141989184768083374134922823462106845232576498048734440248926213804781953820517258130295260714438143595663578212872375960626181500622285931244325474945239789339894224777566042706454321545519753594740119281477459649325533853146654763526175263225386979636432690405959486394293773756118332871526644337136671812222995294112117923090360499467126664880868406779634304465052392450094398394012320774996812921913367973072680266412407844961917537288642683803730971212911437686501460257575830976390852206737423749570467229256840416268771683800649394552321667045941269715525291291336846358773971318267616416998849433080324396578787184255146332481159422898515799600899459652711542804211540036965904217168282406036846339168573972361815819020538229716078012219824005828436083795809103675966103576253582063927740358393417574774590092967299218869070714491023135696213063996966509604019315443973894249279879322785994507258651843524113379721339706711579485298575977151830614142939292194042356588563170286840843488262127867919645781932197487836104216099716072590838305286698193319193871844283470873798913436291048398000171252091388343350458130984830204510872449583876969203902097028114047975498133771189246483655476181130213584592307262016629781209221275112667379148390821463711968466147228509329591095465451922695709835839082792224986995520618001418036256132934625103509137968540684565228073252104948315950394466930093274462010626932671780347203372218951338633584015564201707287155679873946508975219269551676335436958419227787008151971542636487940259683066906929207776800011960436949183961307025934950368582249731293070918148709400619133228566587938037367378821552160882192156705258058173412760800025020403177810597248741421386614687709733373700878392277017998060134849461439404419580462930015036198934141531317582926283351333847401525642300545615999808387754270811848640696534679814363592747882098656261995826953474821990981622305613850498371029117778467458789785680187422255144761714688773183196057561432722248305086958961943831078790015852177757642946779787132859794289296832613906406516607002302993085474624951869932598034703101254643183061069405271629673772452370642890936193748826983890088759781318500772420529558697178305863205625181480086072840444268971484499841246590118467416550002945395847265504233350700059383524051977226513022594992147344644729818565667726711323132321845897554616733547037028542588742265135510944001505092309461807633326260665817520691164778654692912969955202054198244193934135922992514812741815557895288860813900749755594049914504768297156227203943284481229176135928482658056651950554027648884774031135675341255343457949670781136296698195459629127942736610827377742032435741606794751571951235542474111610578809662749425356642557522453007745739700878888446241905468899857177609078200130255750326381323350461504889725885092726404670671618526002823937007503521562334701194063937203536304649190289375629046264079818360400420440683006951163759493148727929040561887436247919370498846357159177464006385858774758645261043260900604704949614409121669091483769561639094660951929910928179478404203086964864173690301711661047869847871324331809999237218613178393631819886965160793293530917763389730099634396339313950075412925347904850925745327304632993808602649736179769651628943533087210445268471510350108942906301248616339366763861938872764666625725253923193323840954054174894485982715979575053742935785625221446216522018273200903380036893397822012812428226751002600255070283779094495862225971337793979774180287589984831968975705835576829946584669094595398449346075517280451351181871641751218350976156672416468316575824946684149894605316172684786064070814214054003997368157496160803387108148259507467688312854805119259276644558867500794847840623882703038984752331794390902132376108583593924151089045125287306543551766906584986585951669943778343989345157629018587919680371118058360875633090523018154694770584616064483937314298636098460784077973169191901133653328471643739979475346246819400839818198404413735160656392357142279836469913087480081901382285386455781073913655265072367858126420908466315692815868932676583713304221043137558335480843156496164636918741800806436503786517630153111497599700778811274357914424606048252476686443797445789276894360162082028059274898374461293427946920552106163351085744760942287504874966853415296106099665821203870264543335979119471844654079197757466517177804100504298572765615635240101142822767822753814464384586411702120246232391830602674205369173710581598875470561018530040195971895146947025205003039581218701269759094041738558405693095256294678163070203037117377933482110139283689532005244508422094008218095951216614911298805260293150356634340143481718169694907899462287683387765531532737519769179617280855025374319574333649660030283519405006260524206792892021066080841241643675576736873922210914698792321949277814068963856868864145908262778409739082213848631069679787614419675724319021419992567577420642901419686281494792033830550008117282146425462544580772479301948901531129366440310099281362377936431065700935202724106843625912675983365106882563720810486017893423979210453248885498978435688458570371245923586617150228360353974846100332893420888406974428410828896261576375772307879511934143995781511408680352514371239279757519094513168791268328904626801119712344674422995586757370037547451632846035679507349001636367793399094215967953793798507700405857972667205000443824122496178417452510247194241744179492797025435433741477077569022229900410326130243302015877615749148939971509581434612024027566129015095249897374752800763672278024004736798295865829025836481222686699917480476315405740317735193635604178350204121469478028427280877215706156515443298040059064169382617244924040009758706498957140519978133049206621453900520815331689475279726810208427427490083966563402458528126259746240088467995684107447399037850936276422910570252641832449231576557454676143999119012419863950609523170506436112826879026225224310823261667923800927241050212440504405603561566989072744507635671489187721380669048681476791886293142045582773451511186586063243875318812057679483268774616506451329547021497088950956111494956497516938660169332459011793957978774156459917626083085246052723684776519655887583344377633914274393285121213196234240600896161987388372152029400652881351228236201046863386926035257997780979597836789025518733437496055212585959608366134469418990790093735366114048827083612700195512161929946430635650723837905438272869724054145270964376182101008262325591303378046570123198566294679826043353965735165944203618881081022849929635227791223236725814297067249753057571451923114330932361419196896946904412352935017992034453652745403588629356745669200196578541734674912131639914156254160358205399397018168211289106273418640056549292549992163612023746304319206443449162621253389373233420334759586783993795326145268793959920678964984359822561237757107118546531949832061810245872530905187439329847194747363132325073699752880729051727697850237979494032661634043831781069355676931801571667289003280724196689651984680041384157233654691565631750334817467165072557011294188819948099220097405345691278884748594413336318992873422828190747340368010836963994594540138062145684404270731300050303102594060963983535422417997754432243164617477660206247601906555484032792171652991782739151199374524106312526804051000541353824473696567177018893078227044030604822613979907989901855907709495171075881828536035224230866316362818048097369626386779558987089231297568477983677994940473994130921883410497070761467746502295842754323167358851317152399532387851141103459669917571066763603060541282018776642734961700054980935989639879023150628261681582752163481319722164970726225919430563009840131640466406933538560261229577084416955696429749100984367026096395126078379470147311592841547021764483930467423925638497368519050277218704333045443760444504224735941721524392681024301923592697198057821131677944423128149756976485560492568766873813604443278416828784856321672702514548461282714341789879928743877047137187186295933989017755430032633946300639989707707339697768978781798566634657716000215908915312980616242069407962585173441054194848028780168068546074190803765341317683676529171208050517776991451514148685863104310019674720394617099248983168064867768873993495360203746390018369106779262486612990836906499506908120527500292416990311287447329409722406439152531984348441383368225794304143756869352850472908306974462076904804191945958464280548038250978817171136345674348131383979797703545100711987268081356030735833517916232083701766856367661355068095347559791684617250779787618991991635099874028669981122808306867330152675575402119101196049513700105782026128297919719787061359012820381313648471077730429290989157535209382978033505273850364668167247543087331742168144146953488408866711738756580420329022084301972542247499670781767575963325553989373885317426314213543189880282434538181787452938958236232889786908169530513996507880170756686703041422084551177942352888167508037855291555696007305647070538219098384159975539220010131206054486994096260642918389315578384045288460710950573962707878356001779481322432666770441349627540766257151340214974132889593507337682348379761865816691821472380672488567136209661961554348258187170435686748932107160404482844495619613739703685308980092996447872713940168585171679770226128437981589372360197119518284284598208323326266037774599954830399112231077377981630336758141999989876798439802030506963128319745936003042463711940572501334586091357156151026298887643921326626532473630265087036915698908867771297150423738537746092907612078164509548132555626526398679964939185793976595510711798939323053016460858026882581999688623944639285147459059297238169780022870796687527544999215376578624571848128864694062076525661601319829052562066843875993397795498280296388413225212104763500913211608566216885074016153388278453278651768331351588323462211455375061325949490336503276034409171657969261528113971779088234085083819668174407895382413279272556271314008338191948187893727867221815026455363509212641151419975935024621683565431731970896832832286921768494158560902655977186745719079715448529048123147867825503013780052850983842956589225770877656361198348249695779024381779855315441747098328976696941787741733673608803626439749365126890604256503704725957756876877030216450601921173879626266206622432363137389349777552256433351940851833452851697413665871051842034161117852959810169746750505954747987939038361654653733510662787749212513537268784948537944946415261349449159027675985297144483918038962775044375427347059719812784971233282851868682989130421918175934524536641607045630451675324957338878871195916147534795085989131375656452561374293002717704589688922008895590100469315183692961262921927519440814221767349246350981089054975421844636219574505126420189584302990306241934444870058880570944812682726744129800099751697410054567944809865285247969566319915810877088482094712716798148304472552115535085796705441908057946509646993079129613027018158274464374374314633786631873345291286854673325270435402883275270888263054478214447031912132761664625412906230257403461504178528264932925378229449561526632327666397316660740823616492354585996261841858610358868313031179561514697931457771413979463589608321472997883723712761970289265456360263939353310320272512489533782010904386366582150999409429180336499323993669523600241482271302398343423199395769575325399827862371941873130070821214697388296744632907503023552082991609969305019769560611184131092907295168953010424975340643910967033420836634566774738641792746398992288545663698648488708660350907230999383203453649396317070347599354245761594746680298908654434241241026184648638022695195629568155678213199980131973899293353046245206664175058731145435996239553821353364101985554968899781914833052345612354267000270114923333530792458136112866927131125804229770537484858414363490933978376296048149350074925280473981767823501219081630665961101040089108053786027435827526393669602632898870941783529913162512204802974086645684360035929915146239508962532139174299544074505346988918014861273544866051199641828496723311482486899228574826588299548648163286073310786571114980623052378026310885184031709952429693190914969955499443226895055098662047479253952006700734249043305901252714558270426597166295725761005664530412910560635042578991232894019435337775875860644353091810469616277192890498455744531073201526286938006738775508576538195122477052378966135001277195438533151083491221353299138141604823867097403476097184607065308566426625824816990179675554103469295189257877169644250979407715128213832069571975262270579349389216926555819742080027062184358979931966259427367876646184558132919647937921138235348713943534222702636954889809049161914374197592338496515860302802145374194866295821841117157024193666057433632082562444017330708092966422513792690678100106998811785521120586834519044926950821382345913410547699428321583195854480521909644883298215122552106216408901032125636936757889692498616958592641035361195632821069854227036841814322515124270892934925378036812759644820908471075274828110283072648719709416114810353058603785093141176349773894781790029618995103506866519166561395454986529598979855826634657775513150281363552823424684276076398495554950198279663128784025550685878619010054701002449155681953466393942837269779242045709595742406897802101608966113457697169407373142754219994119925682398524041066729538825005137363310725081243537262889682089082094891309873023129122068206229304521384622910328063840257095130393441639263890277292781569745211533278716112167363724417189622719660885583194067987363302723649628517007467569819737163779228262083131015366710189139827678443591152857390285682035840957224898010610170945924966160191073784846555533707025341966874558159027535414888891342085978397295652128646141134017137742492688610322014936632646621765033112438587272114344760142392348752109054543724125468630512063335785429596306587531131790440626452860929787367901894147440326941742737222135908916306881720195191591462739458067375572055246971355991194444172175630848615788227384126438870112220020681124417396388321785813709819058895629438671547350671630119209836551709635347485223620230416062573035980758195242444106550924007425182782737544511034811895934214811580988010879728620940332425614939072548612945705512509030369995780226722852642972024562524591214962734772408930052703474679206464954867441177731280248459811402809343561543545345087555352182803228253060456102464318896274855363572592518459132668488822849177589195584689250394029125960046115670173947410085262394168634069386478123380767742543441727056379975227107927609300920130814478360234382215380022880150387676410778351843189988644483304609901451468303104818551718063651566497351775048263748238920155387767812993737746992606729336568120226928818246702752747849992806100697466799253296004178840866851949707898310870975900093070211490014061153602384054512286511248745158033508574124387728065469043636515846262909083843663515283703097987540788139671036688055469850654189847230360107193553732755136592504072566619628857698300657775157171195146036096500275402414415587816063678147502361125617458661500902589347425521149729541006571124897227010544599607345060356515410859774101965809052884727099416874245873736238917506744223218875273634252353567924823371554365189753028944257708352919421993334324875856813149862018503751234289239551862420181846733582054624222753816401031583822801629206657451409520609495425429062738533285362259430743415559551695645971434863367864576821593393679063367486275424738725729159316864326017813413492092397647211724383242029429702841686277910581805288269268126855225273233775464516114995139885444687954144698733659891848806651811396137892169691669297873993932171382812477488049087587634309764162015911953098756595448743924436222907885670142735084552679354889126757997429772700770419530857104202471938895290040058302181118255662833339199372766496403074094844436845430233130063917660242412633277400948251516440211315804676371830069840582734913739971332872640934533645922570741480127378363183456827759211864318519017640210097146211370970035678218786364258761517380889411873081662601574294108013221642269638788520700054962285471741013928297890846468065703786294129382617110241192193199547322109436382529453805630938022600299418492398519652421062214401896327749757004551883694561786101400611862217112353604932340560782835696955091739455006694147929271759710793424950625037978744215887240385329782795174550724693203625525200974021287570893277273830257666022846673837308464099724348684579248950249071591748922451022216485162410348283923085349177449864414855587713375131433607635193133936111094312603693601529705455427745309188722613565012680887566344273627159637537545446810998966973260643442956805126561437953061773210554278559925180384593943668815405645465300501985055912013669644199998445543032772443809556012699068946208537733246627661853676195379371774416429213144724320193313323399408566880107428366602952870852428280466122734232191718093507262743634172660728130362230347981453711400762515635785599365167704943300706865309409631813715699029924166173008494320040477514322857040077071946886309279968734231769126142136670001927866335329677775590794147008076042337047906780758100883819079345816584424836712584919307631389017206419905678325088688982160250084301400705991103086628378006533948673031551119161328881665882122077533603804086327071279860377410768459996922805449184429194946339456252712579609302256503541113916206341919057623150897954480211748821808875111522145596578203179931342957398497953925054211200285496659291937192326244764484026821959671347323228426430815167685990114897483071036817780955127112348170529287793254871799595317537818745733250199381219379250171956468285850532878063618692107747496457890039771311400658198473861453118225603757232972677351776035818039609198200766457326624616604045185138948977551630877559114219383903088631963491991021729714914331130611552691276903271408602178987470982974522613725717371759632368635460554257655119682279426843840201550544391838379158351545003330442084780486064932120451349416299692481837152608829360360268374718112089245803418104842035316885629899262874050422190431982497273574403088131918639647125959164190784608552169171972756204885559275918915969977942850674565152511360623374781974594060080436367149386001120941496373834905794565486631055673555389682821858229005531978502557626607756782117879934400856527064048059271145817292897624006074846156928155427412379617543380993815061220483297524495577283899022301942129561347581434579266772082787489873238243787180262159621995158626978975875638954624850781344682223009776745234469562167763308445053900889765229867604280183665746147584316620541144961361233897590813347233773330757573923253941996449186391338488040395858303713376313913104167591996590862293819281770046876579590065753340759503410765832402499108113288490513553335097879171413483244507972366125552471491012404527368744018706331795418601310009452526995749583248499060004824342984385294021315484856212765568939055639300307929102243303944120572352548961254036227404950648043694670927609245830162306420992314634467085189501937881724909372843071729072813578777618696766178292749440333059649718547761525401131178686013828702844380845178633214121187533213537384975749890462597518389602360474749816541544093530608275656958165460315135630652442245815757820576377004057640446984304295638347789122536697863104110613644724302717776811123406875560441960083129426232487294875640957529886057286519706562017899842277271289422878269657612719696912541251354529240427351873889960487878073111239691706378681991791343206996118580255221311696831754923151695444897195282374512233554441157607159065807122337009792203289113224009384236536421069727176660772752534873543219210396054841784471476187513114069135568436830198065301540000893434347182449687173077385821795449846670064517889932948480754612618753886262460679143060524623573136764868046719876763939281995980099388569418087463001128658709870860381139406454058685326015045077895363867752663464232953862526199969024636535629856994338045645731728800948993903584327791038094096029701640136111837084967387735121067096569430925593850258957438031712988754586768886759791964096288859839136560956321946657593549964614832543543593600299552564050312611289554902865891423086214630593258806110811962013309461323803474423874713010058436620242521081434917357704348991340640938989272377610152418930133453565450470578090072852048737825563921303935097341101506968559232367846304356435361851180318108110967172646079909471865308117907257683324227787826848125945481914053886915026886474345261083037935695369230104406543781295299696321681877498832592499533660078365039312514013487952803145099242961198884393095524081120675247615914709688595872732090036706405281255216015144438151536212526394289439862929263528344560086320052122104431634618755573545801937348930543491463674160465449053717776695410947520815724117922528137091789337172480418707398088720119709528844807015755386147143690026739153659193658195249177444342257084552153683629786373153413128399536288518768489564065435943869897918460870194485487496026827217100020234004351496150566131882348338926267192515823340180516538402481085053010587840662839524034991033054184969733361387669769191321721328822362980374254368129020867060238043148219161006909808387601651077003721131872394641379920289295469190089538082014969210613517196304074137255541239670598378686675586575397682433392382069987975331223763269284709474369336994794817692615961503598791154566670113513189972809116543747752350457052059274141065319904225732904803885264189864478454209896558095204776875766103843806011597347012663218150442482233810149077469461603051386493633384185580615696427704994497724172065906038294383829282503646384133774543125372679666295642532976141863314468345413812024404695348179339237930125518794685857578379194508364769810238487561948394328493846698543939197787715410482037959860671006849607006677605265920892118814236904325462473464846790643973957671595279866117901457122233144819845656389109608612931072049176728574795936052726712872446715267795050977501492748710711403722930062033521114291808533816389136872901830095648285335300536372924428990622380492540546327112200351002595193937465192927561747767948702419989011357730730577467306136633154265263501815965762538372713584388979938028001090156137175432893665704428807684371661152165546311023804152057915640081715465698434075891108495721104104643312782847182821505690545348002696971398909071993611026025742278605930029095481707333145571290332720984602940867477570895257261370831707183082906091198624238458601625621077112855420985712863815308738477722423545840669793341677352899861456211394454973564580045973350542945994918217320904184658256903968694588590216224317857509342704039742671216358369826259707491331471986425370018673445036735646194093424495483774119070379577693082587881727079254926079294190025577378631947214112530076177878509773076081471597154675349407061520482240583415383007510714106133138281486107743203426779574667528729890125597971686115782248382728360605627018147213068424321475808871781392337890154092106096846752019855423341577055714910665069074454166688334890337920459060731579977750851876503519462485879766398988553418391988810003621769784807286235325578158577715776528826468558226760160723121909886058299758533150779659442937613046109674250279540863091830326624287723448844653945012187364278023270648686035022914222478410897039288629084608853648574429814097429412409602295710837523458804458334113457608984547197061858575738979266175949125932267288364948106182355802131629585782990628261367472120895961188877693689788128786127873757983544739235605145211025247033545383904403612877670392939394830117427435482267094348727668205548992802690826246792870547756596929258800355638892435660808533066914146332914790331108910725173545657149014234698705342388975011288909969918684223749444781544793743100094602056456816262827295597278532311393196003942752144277259318652116587083208862643522306434970574476054040948052365456350657190508013885072683055026509660751620924290421348848041683751410020200083481777742441568941402218123135600844144382201738136385650067081457341743192220765259528219850183214553058585683236090509229610119716851990182397530274961444875764226618421738443346298985350400685909507597293374201262523498926346058845881148330502318276697664879128014382695390815665306016188979241884074436122017211497865977998492433453528772570566753016669622157812600185662550028376492739146228057710326136831799720365049738607487256804727551329875077371904779447697179153233419039429662270244257020682933203078743530899300693205888802134593969891991375958489309859275634725731118012873684186721461445113307234789298969787590557657122864179592556510147467396187504953098506369469344690425079949692958146819308669665842908615610288277079241838859123526200205216422353617630569961741786459962151181189895275452665862507793586886793113297671596312341378459795458233418378506280162075520457924920024790532482279829442749859053330348562374334541792603036250361386912184751168779607913619217016071654142559501462515575715858018213478446480684723902281920117199263083944160042327600792462886439020833451587702800135079739012469762524421650547599490498878491920844946584371368457509174975841602411925886043775365911752354954033365225729137161653113031499379564053374988911356042768208373354390992347952329210422206375017090525269091933167755563612598815495378427404108124650211250591097008487863848743485697267077826771640076366859549820515242857982884527359361055250236583558494560207506565427163030056695792258515369452739922078150107194944839522791009360532583513676610744454182983852450750989284326665520394292186332129830713210261645544305915268626835002483099159802101998463570765732872036532098464333134148667297080326081103301082560859855309332861429164358197006460721326765667882031538378960161827273235568693137183741228994027139847329529275784599262828342271379198530408685168970895446285598048988717903752498625793784626458339995770565352950833029290796020104229092449781204703185373306327488162542224874981252445803733828537437141825765999132731131464675524020871440825098833702232696113992913018793851096902052797562999615581165716692670421729570381235034151332201159346086962247353506483251757720347208448223115083187749106714090319057411423637496915779459419014972693733647297930667151646212407401049290469355867688041429509017386403626990455444215692680685455668134960137824823406639186171028115746460498361621901999175769911185932654119483600656265239584866145220493011466177857665419359057816017665063666357818137893029679034851003748158023972877196051294542985147287566509730800204641209632599606406478062962094431624587976273574451288160530089348574318244946237200436469402478860695252775058341921057478124919750912995414600593859476464955897850464931827750738232081138614182639892512320652280067159546772948173905101274182746947918965401159052801247137397584400117207531839850630254151936910963682545767107589309190840252395622456103882836798711066864672491059534967964639263418159376962936497630429115606296033983007144032182137297924824162809507035430044853065948503502677592701635863334359418272924195922987613930544853761837565991786570917965489221913322160710705869726705612030673713674661387615610562757594500577649973262520754829837639143811934336959890577777496358648325659693838589753386150790864587078184119479768352665275949188779975736225290075565042822889804893001369290683537778343289110138852732533358389242091225072787505657105930910381206809061795817558524374878631969274350205341607185929367627244359163522098717308643704352819360216283048931179287451674358596510868434169581765906798660225026288071250750088468638872167814610040904846160818994709127774838437086135577012156084096633086728037671351859895788111273696635263127606285179994364619557143266488542560401324446755621546973843073995794414150728627030712147330413641588034982877108932424988977526185631366383751189187626465967022069188756030109379953170911117340102272773390258628060207173190945048280700216457625654344002482619512604594156451905582002276613726515575731590946600097776946359464724623936033810106148228222508323142730546999581158906689711660864914716735091439027417645551673084494791230072850636940094002430227614607564874665007901935340350397400223340320589807475535972336791813218668141384587649980181061278525320984766616208605555048493049199119848055953823844772467048228809170848553677515335787388848564514271627202747291730253271877503139602627165433785241764237408159928758933878658183565047054421514068209329321168513696159811405958035999439015079116429286514017990273292746897531177692264556031401808001762403338695927938477214771045483085764930261556676972709836976128649265597848326057700193751288338936718013311297372036407113735755748261307858433765467864085563945299785555403306091213319293017979059808196592461651863605778244129134139883468968654848818831891170383391707058310736765880487651798894962396699493496447348147183207881933799302763743905806186912639231010958554270656800185564954502242704852673311528454800949530658192838445224593184154540809129604867717657243931133613581179400645089400380169320397160255601400281610002600435898156468824197876007028220523410544009754019691553495184900986986271796997010261736764452911790020496814370965592691365527166203323019592713778025257115859953327062581010844575820882526828044672453282485335534592868775781626209067026153349205755230103643616568111504642939012196733121045769688081498612631158910961795525730518161871352194871279759748434979793260457425723290433696005046164181292100563802774620520180863552456963036465363961943164489512505297265792960151668938115426955485310737345560178825764929614826425752718831419051769210598466922278871217819458165546752796733251693383891577038167150033567358775333138621449351974279425053223004422759315241020732975029063142912283885261825282919035642090107333022008789399508994425901651200829621433119148444483421033090043820602592522458395319411426369218900729494566230918700081982019756779589084879040551064562523529211474225275592406760761455439785048619768689258095627235941424647685860445714944723830550029427436143493741247790261049177369694135947620793656205864276034387410322959502369602848782511414459877760146329880992483444831509473432944267098540729235994235131863419619194145212501978558430408707843291132992713820950589386238266727159295758581825854098027861961240620733523262386191906792609816020547772938821702420080738901876093301817830890372042307990992826054766568311607559777225958747640541777658618344982289131659125365128537209964514418695739612255741798416594249727759513372575329852461360251386077445077756871977516185722035361153603209883822861831769548674334503694627056556910369696229499655193058854928620263103972421424970728946842571689307974216833141839448785238426077965468521157101406997877784814074578867474765221621284233273928196195010597092825060574043194451334153771881564045944102465068654402950260920873256436061942386108726290799469267060088059856417449063874378310741898234643510356646250950008477898138060927378396386125532785659103641027915633998278014730272919123023864689099878712248976819070242959074017656455823379662621046538899327214759769220973711507196962154292972098785008800694873433236531427057742661999501525763249675096991394719389951889843434311402922703584017074619990843155997246781179330927370713958034500288858578487431261224804220251741157735486427781934578597520037321591131800805704227684583168366814659798990973957929053047536377882941335576682569572748177206776963659506189448866797287945568295460359702059684457026642550425973012630740264752941647772582106512693149020155368597628881008179916827814536934848739731959801102064022456526669522520408642323167638669866207012186425703260511042609178407252310008929942358733061578717275793313734742014552224944384144111013011711280016742485370553389482917439727966730516504151816303192226193717250842949760563213398872696726119602335243794751477829717190591675642145752402889461653116844380432912898905416495742772331813256306275730577534481354848893181868867689452119406610974243344243735816004776425387084767703699756943412082311120603475730640527331398694117800027294774647970375184633388686802489739339847636539441586081664907345862578132950333293932226616210598692832539683538778505256824827617758830027003514967648214240755614215077835638479628541203713830889132809901326260875803825535565273856112437912746300507010412979931443225248069377431671213537296594960518459063821621260581526898731215587526543019767152662358562386370915060144151600187433392554090903197775377230359873672330842535370479007063901859209879548239775468262824382670108626004635454156057570900348977353094696703138885188508958544697404222737410929223418985570835311525282201111729785869770111917859683026678967575881658447965147991149895897329044975576303194675968701457580360423484361931564913524911712780361233615315122327619118362294074852954645669978421982965387487853467536749803805224410896372228952243516458776237388955702733947345646338674883213029768918000098789572221441938406686517099752307476826071962759464607686258914547795563880257249120107554567917071583903882373452543362066937790584130640806377674624432765711597244108425945523426716076294882730306677689287388809971207166992995678451241297248426810043893037069202186929147897396371827819640092307129047960214080150226202544286481217142507526284632671877527670682838704230544219360098023465870207615661497349973956879998962498013620192203538956068196116518074114415153656772065862777102363077475652362912774051384554761160227198083977256037072610630110471158332795331559874319629003849278366381882757781790895505933233346540149584279327693273433519484957841840771023895038713820816226166011721231842328506438688411531524237169528501960167194670933309497145857028827421474778802977534697405707644674120759029371029127364866903728809407579811683890779338495904326766262175767530120159090743584881380298921947199440020153140401495702933132959126173033009074038370972330497422323420775889595592997071320329047981345033955515163298633363368760506137810759256760828173673742184737372802184433976647895780619800318391195407600013704518180165618849719221354897815596662810922129771306227433219497651350071644278057002400138999269137360371419977592086754467395726891920610766847211044774933744320606495598661769140229360942471317954042516192732460619584470234982380164765791817400461775072168514254492443775664272535445605301895190705779036196002928347806468069405796708711767915079954315421205672711427430138760588391501802565442528100789228827822101728849295254782928101443492373402304834765242306553992907106772026322507064408020147862287114230561705085575021611250074672410401993322310588465111765701516134710431317238768222548858251452857945060876183823279188782106508291460032363776597007111095905114011378491820321550337466420021259207592403316718163839476966863018528185070009149735535212036256658426414148833517213049355715192716941753102273126080054736193704185821190413778306704208627895648989537742633711971519234258045058086323114859623766208786009803987620947958679105841698544437520793084151707064090029926109992755215398519660409854594599251353480308699611077123680016403310476938435256333628529486504716758191710943504684839075855335368853819647794450933349266881891162207699084916498058665733280177918765251435322504156628696860676915050444129713798295223341416619756951301549634976785262617569709980269679725999934514698883284696706748607238296391866420271955831494484804011854335820784056374079934506935027068600905734066842797675402538239480110469898563522799770755155248703601073725125474053152687865875700875653581677542636682321809342327015103174294637218007281252299613022743795972328372180701772691808645635031318379902207239153610933903340365522900721641818031707881736110682351314531205994334361266285034356821371569894692026947707288883448779836308099009278498543985535800437193784240561705116645970417259359296760436678839031813319445435955174939941925169251775262826195965870960378565624056810792674740350037556734287420404697188881273838892527962774548811976228473838876001516732037862850073238430734532585426476498706173661254291823657069450129613753702875223096600686126404764155670522089103534764950136771515485180134935934756660892941789397902734333287219363444750145987612497459447936154629188969598569061973078416092868067983805733046011934913923907036628931973033634216194825274763540810344272547994042699271805041513009195588738484255354942991166887601411858099537912780891423514154967944745083936126049712487421901455770631367043582772598093259452679012347081877446696087623744126071970955688461536033792201151539583596493657343977388441803002277270414179385501183918257794367942979419477101324670599834141447241315630151820057331036137498688876814663526786652564928899811779223935394502054075698528592309047485075381323677509758448847749767834452227337316341725939325514873716498321271507907276466589367551325856584344891846775854813773227654691880228227346934901687453959393193538520634120412565198940431186838116701252534644942148243832877858972578402116492591343457353784766573977085315775656656940480992730014801640920610418406915959901814322610255997756544199646031794771351558735088727185823973507446795731263468567701307679977660634600960217175319675841689565393557601267563501791277880146259941790292044622864210504299374126191005066817788555965068435255427066350418957469892041016677508110836957335152297801943644234841985795389987028797837631894153806532111889023186159602509629864336598071268455358149854929917382980400541582707222545819419182682645087625952902570123353039374846233759538923223631233952484777649728983966735560200323752018708816078302835901208913276019030827992616319435429122881762124159053840355839857484228827370411641365344243966831304276137961705008482181722259202591875924394970203469443721151733348555746007178682004617284685391134063326411123638671158688235631199349180396166246094185797732806853356029125238814323650624296056641756643896523795257062431551375982895799862220030521952194310412206735471916273057225756582483936795171026509239044577713025754439379370687756850021017553000145759423833421420144743064492708411350714876194771583386012571371968972681307815304643297226865199607628274058864341246543453408280589790485838786288067216660220275045520660495627534042792150454036895690885197581427931116551349299567434027603180393330465605595306510116368989788277242567798835985070091464015394111393256299467627076750593111081700249309056591529143102085052059700325080911864949734614322418273979315345368596368324581397124561817982285706200851958706594307567567118418724187108816668191253199610164514691702554789013635216380544352854053225985536630126037040571397159679982574734697914411478793358175693591400736820111065100299646142891524123787350093409342132232622791330775290000013244219675457203977428366326627894122474398500374118698696456575771798506083259691397296022925837362442760127809042811745824485386054266535925286747947449172161562396880922624264487668258893472032049740115125816244567489224656757331833255145703659207159915898238678364283323641610121156268746690586502548864359289918962729038436575171633773989996040402173025189536652090502415984066805684252162386434006552573433967692271616942950858756701874370239045629809554330301508655262018337978560524909267722663091247524215169533199725674655875819891422544078842657977864535868468408107444445376882588115959188602052682195561473654791838668414064363927997681466619410403383277869542771038686729639089183440862070544298553945679343670838240293698006088925722264748955936040207521129300330176786619448220821975302225199898036541912002045006969241811327578701774909669345942383068272553567698866445028836485763092509429019009211080502810810887648807127423571541869174966623322490948261677733121500139850422562779691101666297901339718699882996138114695231771062712425779803570022285577822221781227412214094286588807450812654865545124856281350519852683211123949611357075171884333880707805185218295771805647593671224637797908018321067248081321529335620925200246416403664329794058003722465657570729857098407930348220341816084560752659784211607673643352062711884531403795279865685181811558075692008328779162938429318173380789325421584205154618517815058690853308015790963863449037822428741130325885537268706915307882103142342915806721984460455524670763980749399885463275088635949391951552624210441362583804339937582133065024354711853698832313106369126052966535796526652765380751647061944730287712594518589154827543059518441208674360895301276428239779317713000599006922687114866618375390327366179533752785787132711797277021419229479355123772881639068279703325871339290276167148584260853929470467573533912151461286674042396845432858170386122665707199014719657753711340512493535227063556884467208713761451878118452226160081606379103095777249858889705311370603178873093144113800380912249495837248548556034682621887291961013338580304880425641333593891626070145755956224949533175411649259530784679278917144240298715343068815864571252299639969536081778276612807092249950378932653292939117013480274660164464375247878712190865931133507410678630617226556576746248280310075410148962221825693474796740760522816632207896146107172828972158325961031139682914649132042602420496652204071525299256644575358078881612067145790435680806699498984299334326712706252087039844305257407352614835143600174101827270602398380788459120932373210474415459289905727149817086175326392206124798382113505813728473631313632021073764299573531830676760943971588461896948290020027972376255531125726359813370806878492604671181328491540607590868397058515374897042978196207926977110780230589025372980110527822793976904208188632750065940532576664921538175057698840713978167106669569150641986138754307232359826402937383716558669621490469562012474091649489575313014113541341118809814464289875963044108652654943457965508077323148117422124386784646264577039391722023756427121433200176349737250661372815372712606700714347979571971611846822187643567107316490308070204582785386195460713078507913774544027626091977190918998064196080299701368297150390194975307348500224821539314868661715985962228941390023517953048795615229183540196946940576812452348152279590206538678507174315507153520366150459763044341543072167741080919326518487334518941165630602129107774409762127583111981697903872138093868564406631587182739900288682237988074424827669830236715918898590754758236651336916676997597248159796780126065976498441778363819313259799101764836150086493457126886873708935261118666419784073514361703812747877470440716619072475304230825046121323703661070292714764140591456099403627998037645081479262098638845810426421885807770710728792639107248602381948020662128584907618789144905526701989397254741629153266467963607569244268047005928831801010804008562516297847397389769630934022861064126497608702476063401592413157009666772591811829030931771343926199508632776995291063008466694271489640602621211715939615756176869331121178695181088551849089492720418096786376955260810554018340220956190471952992524922267849619998045811280040386207572457992872725894319422453339235792666802000259936071466965657720032458286985222114208604115862543320404484703239733048166153285309702050651478492296494426414205640371436800022409854507813404669323713930425059850381866091335357830610232784584750428754208104514268856187466023075712317307767688310005089097114067743715752319950737156333810738768314509913234545540614008367604069821485223511704544599881862590318568736055679544879107948990997038188721951922564818666840256823003416381034016300949345008785378355392532634901378183214816701627459470329995858200293463605689702337908382201685097742199752667155947164571544643591091272057619901279852568798093448933144854160170913763656185478167726990121663884391897879125508398797080687835750796349050953021479740363494945325066680439913316697076383037547714091498079492106456221563221128336289949486302669602780031978088723467444129965924536107207835149644790573747521667280876039010158918440448641120982086539939384710230165388362080354558836579483710619386577155556063929872226525138954108675111594888409992741586244849373478119672488117045096066352900851662215945359747156201149831137746606278761214898034217892111438436769343366587876821890803883940853652455862212064356210316356759511486092490826375278321584158133229697528101322212508613042421466378565152916740618345992407646909916096912671469905431243511173781142517633262384873251347264857730462519103766915639024065995907455896075459292131891335444085686768724490923900636941796692526485302990059806472211039514122183612446946494302230869703771485386525484656000233852727776451930529018324395017015771617527465497775289810772839972362436512843115342776424222846388001755092241505935620130838764363329197157479712484711705095980746540696289192640819358948105530881508287449583006919165844421928276040380929854344276550428071793737233564341101438878141270163062791603201121190671309798768624620944348877481087114955051293630556587250618415039520094963953607737989407566393792652828479003989104085461903923425227109033353460141832991275445034879965692703889028968001696037277863205042765400706610164023385707267348770686727706524043557879247580120638392740260960366594350637299646807621007098846977525823348622877865229460009691554268467815187673134562538723518326694045564674346843935157317927521331709179194827861329133798014461886991744362282484833423937860397224060748488044583298055016316576703633029637402778210760194832175632770466089877248757881089577756473899606427496180629265250585665475484522518737261002729032800722899079453102026967536045342563668051058317316060396785819199362667675919681035921382774729697918077494703128307343212212354240308914925480037467736806247236965861018253251832722477106591287590781052900704546459809736891855314904103627562993366497606841029724489050619369425264793456559482887765149303040890364739000772815778920051704960192925511428006241675471987931433560264520389716845266935692642465732149494736600704063025328429749238908620023070428414720658596254609523383950237061095535786445109970359670934597815475842160418142681762320673046915241376376973260124809370033807873141980042963390100057982484317458814740398224017291216649253161157102942300552299946602545269417107945976864640347503862264466700004755946276050715176017901048986251395287274485074749202185256572985947257625193753760725680506237826850586299872594810811405617006107866134219197777718924576037195186925158103766438815321468624427460032211936447426352541259675394887636604356419872415885137634702396991214056232520411712904258374455712427507210433557468405424972752578888700715940631929275465026889061447543741004246048408396591611979316112854694027037217714548953797954939239303595751361251397968937333923236322586741729135222232931871379643335787773879641743125979821887799238954965363217314708800673188399274706181848958157110029908615886885148204607958041815001612485941283160668113248448255684252011764499930646483732544392759508872102607851105309954032799932891771623486727174517443032556541420164677446777998176963994048211953739816020201886122476068444071354505804431168428152038734517144713907813861902391114670295099634515656831949951692944845701437351492925670025536727843000515473782823366158407410253861191001252567486586528150870585568688520705971144660739183059960554399104254573150028145080722037782870592313911176338135156071256142864317212832458668199884150017256156115969521064804980704219910079574739865364264660891848120848482613994058500613070965345313120813887285841535083144504940438527895260891633600805171916728872875826888503890052032186842561458428896771654225942326893476548770876081735415385583490177101447408202850718882535343996670612614653078803856174430646418719361154218242788927736446078239768068384937495552638771835685809115196868801044817576995016655732285136639959622086182454557662139362658726469239023045422939985496927882854051774956470617594845987410928717857189332914199529473251892171744528607293069903447292214416207579784461528670619846135140801037593507260477406315064157249047107775510580433504570588442191246614210516002378079072128628047126432585074588112807814362187609980644819138527750155620121448711461297539508721757270205496847342240418982381168872432854242149040335570633733717830717048208521131034260967484303016784858125562947632840416572312590863235105120552508041496736623049174178522804626397442755223817479165429333253144581459376703847601868174363515066908364430392578774731766618843993575410470403408638557886640511079150063238514900752312241441671940697123994249852065228946886802313609847017390818079023928805216212737770648164152036741312337995285918752361473694465270935977312965425744935853876074655068576537937117564186504340077146381779986770388078180212445167180853512297730449976694374575392916571480281933124550461834711764156756767669249698220614892489354029218666913761253758668129913221590114605839325364264913057681537072621658093952333090683734554120081093413247919714565487649194846079405634672068690995902592682794503126184823439290188132067964557108098483483479145117258558656598701566702931610424158979651014595152905480492157357494021600040599757162067820126666053804573195038843079147425448331645267800283384234450661120309020496444272183791707564899609817843233120309522916775542167502249578563619383798223980445119636129706622763424016203111919438665302123650244576558497415299451144988565022291829980233175686736111896310619080993069805732788494992256073328849445325973241914116197925050708686741762736979242313368993140501646745444983400972772162742010690878996304374373942343716327507616586721327456024542692835342276069918235520205746830074163092771691442516711813554682415855068198004906844822810145111036289164845085644895933329197485955752842760434637548581050787566950495736514184291801025959200550119386183982878515269736612208207030289849315923529988772428391490185845710821445526713943482506850008506600945806131154691630555579052948031538795445687786542500281017305754633661508026469703286082700761638208700472518826750582210092003645248765607949503219222721938083607422331838822959190747065030069790009013373894828329842718066708543921512940067046830407786499170465690548962827234067455548520880114671331627025771349658631509084120713248652018367166339593772734113067011591695794172022704005630306753910249782763398776763653673987049311686273229841919927301471779238055541500805159030198845356636346239286195045098513680010706313572790339926217795920774659535979712227275689789354902223174874505952966584382312503794238132065231638242423130913976880969413432684476879460721470572137674226830915509727656980765078598251159852488340431930504461481361439878585034453252672806994510811684493800814727304802261641281534026112298582703854727757334562907750551073099129894110053098097971273363397437923362446820987049673830887791455376141475433655777616249994304865369229722241544094897000718381232043399084714092976334760825507083055988234898218711360779580493034610169611441080015579364634212533309878677227571888879739427527422254220265749614835635642339144483428967011693911558139442507278743723501404320458497093515891015315031809797840286770711028440509613467746398314489960175757184287568296725754068563460650627321234627239631092029186047565851709895807533476719734600413905585479317693717544079280807811723944189977214017676643662682727347321898688572595305451320365013148842273841832040432774058899639617119313798041211428606818864742322445838114024446118907377254541656194726921524310663365389976481899700513533336965944764741752623681606637406438468194319858039259343736425068004088653631641788390396628432212040749964205628608948413394842001517762765993496737979919552628935275726311466399895889304435455984607472140429267013749330876910904799849757928814973141609938970280479682824303737815352834207184821845476281178164391384445760239844892004599823800606864665960523483723187182362486498508971469377190454120263946478222119275156489225064893543340800497792038448487232614032225704083441872386627867894172333805774606878747254923847440943836748152423795744775691234687604017221043466313347282186444599798293066671131633058931751743449683425838428211183660388447995924588807243108531068156016767964024370457297540413188222918432506390653092670399961505077471206010999034513041911325951851699381720614950318010276337599211518372313275243365796840262196972449646341660515449925788329299846940484494619106546852236796495132675617379428068382607472263484745846530441069690114643889576664570578054872278243894717791881341446306152008399321661692581505193514465386217017882885222790475099975708191814021780509577397058938689431727970282318250967467389730027589405433085726894222135923003064065205334292268027256320645120222973142073115154028163291773325046472960585315444009104935944643012548669589971562137520555722371964038727544001101013770521805821285055666712531808723528056964681228952467754957810260393755085710540231570153721274213332894458403046746324109201183941758989291383124898252825369182555176829131047118093106454180142342922520732723060840755218164784753817555465848866783148232569080960910512940942996970036399366588350981803520956961266061160957053213847161238762423327540789679915171787934650661502050033503679394658569495552361541994300587535344117363391913932971992505677598752973758882156164824883693649110008581777452398754733272189657821541568706170598550637239595344443754479469757269083662979286598203398174703060685593061019650824121735223069646692405311118700325348631798634870794335624197721530269137968720531087054260180840633629663631440523718700416548162257708073311437158605994279903372197746804759068349354203298050246076438227937809837527980325539887236521911077077078561256000922351055885342693091377772089396255419403953022824600794848539456793711561677540562391026495817150137427863354182012446540870292419679579837333888579739054631984085629109151151928790662182391441743601258449228809511415727412883676307034715036960809120438631188661034631680766479282102109835261157654930672583931650036254992135701186213428259971111451886677425464114650365376989972246587832679992227987798115029776757704416242362195891023008443604501369149084710450935849734749101517887035751927520817483389206856288662393440037123832313671237499940985374199385845306571938980703139631744019222659440138171085400594205531738686217550590119826450824322218741974980320740056882201052369992611390010670866628722297888979312764925268310889654209705224811558044171820563054016243464385739281427705623452677548902842631862431545112398132817417624174600460404849931311671233017669826809221488671055174501975544082286594714905601297334913039541503719523814413392021258490948669317104291372238781917377080963915351053304157823811576107948249310453535862419726416791415123536912563931071296761648625432110521548517602039335660778593091833247023015380948823830089907534013233799060376085844490553687823787873135208577603686079256142444532517526314510274505644559718857352427442092499318116910613028589916621115000189578607407198642635480294890952448124334894490847350896587403050242375527301127353263006737401556260078013625901717744289081510800501669021354402237078950943911653528334842981708981643628091309164665121357607372148588856931491967312943121085031896079586712372833851403898974461454924603828885909307196051324046456987825776390014525416611865732503920830601838644429262051770964682347185442603097930532818164052425723548399971663736893104169493317661328389416927949919779739868080037824874637139553546069593571726183686907604892722882903008903050148617624034785092345946553059676071520212161211136580638766999031927626436907240544703760638908283641523663623057923388029429147086095227278514186439581562926438182705322319726463883342062137177392876703959690922934529933582819214805488102036866617373193694668119417919489874499312704717877916336271348861937943301442418387905319110057794764016698212774248719631079227692715894102349273325326381876860552398365224499758745407487759828922316244580707481349443810251312514999370737932401403948479795347025761166561310891399161335406968266391159104184303614460337213942293658106339605375773210510991208379730979491774963804008475486067400501320123936080797659883120047263767109868439213379258433401416339189242330453280687649891447772301147646108671122031003944637710373748545633961379545540532280920101673820739534986666878728589916740847425202994754552903404553145420249104572156451693653690639802682819698150080020972148915451227371959138247797985759843812226813357570168778187379360874049291340900602821655126946177902734844715432861865839077974632389017303252202560926000005301589981382257258230709766022266007786429560938651180228560274120025452465938606882018450638858944923992242164119926770844525142203916797990131014792648712965863222962269822728948339738426598787218232323696075666718933508133203649417533175536101206950114575514614874356778496541310847608852073557559570442100588292815822894521405760603118156550035826961650445574225072803041860666642014148273363840127441115143585435231866808286938196387301159553509051341417442139677575173916719924015723034589601704875770599978209550364197795484735445554005860323403134505140100204022731860245501465892648446543049478618098255078263787236930377736074598688808684372242237784977315868941912300286648055660987041077183888017425190640877054248638076546843082362123656558735905352310269026335854634409098756464013070573744501126601742931412167056272179850572786836576043657102752340715691445787216800021684903592829539291077839658781468440855821501909857931574309740833371146852364177820452779982673753656210682185544350912469863031981667688896907396609629713300229295849972271748177268027354961673062331461843088828960773231078797119911860990921054276259775437707865188878512959646695606056267484021223852969606384785215653526061150764834866700138728151027932132982179184237066190179661732647721152997333601239833523249015427434765265627246710548913161622697947931934957616932146656392741137021516795209706932101938165967672263079751183957538475271348559695103475920812462483672350970102328303439943154726042418638668660824064099192397587831372299441349490358490366205758619103334247122544327345175033610405369159191040862103368865170491503865112613146253414592361819133396534373815335960885702331263872613473273949349801229159451725203256383502805181756620663144653565084401438213074360115760653048805638495713263593331754476146356722186129827957515209212899513576278244956053383667332203161204435574984654970778559497986910855011807975519361931486926400673637324709292207479035546272269811558418257183620350373724387316053001335254398091569014538921081326587456248746419478707874595789887914762626044449299162310806051052327019517135435408230806149928353221240688456266136461808368359808289700331429770463382550424597632003568213316635430328364881746208072885330582151243892761247931972253414867430092517659681918414878300401215462982552861572058978378062896956284225631965105394417630032533740510933387498810614497657695805159921224224200348567374737347061056886304769733156699139249777070054593777908123798390181520711985975210830739931935639818601643350889266320902662959066919006499308542017592081650990900345167745232546249313728682669967925025861749567059685771978507733575371886066244403075197165208441755413939026434289760157400741663405175709540970474913066923750916033474693082159912225768314407485651682448482462151615013248726744793983111170550223731531957583078321619885313066916851698743304887627542292181327922629217244233583302833592789760020426625007631804846696106335577022538805242171479775828297310454681702763297235187671033141963278356205462153374088965760924355030575330301746956068579402200441510525028252953545865251367648201825355529819133739226783725069220266598251146732336770875014787345960955116656335736948113331458553893285140601641356933283614849372064208402790722237286093716904373746011027126871395938287142001059380019558527925313892332357622145423490933798627359714958248115175592068335867294394924293270590693214452210188778313636615709091747233955970338206192277323899542573843909828742460662916080022057289812474459196204578838903400689245682473966505944735279877755632003606040069348502213977095857620989610083991230795369782715403733249391796057051031875369338198022587363536288315314639040157810464582789385038953975854117060811085013301615267293967440575303022459368002879223297162978584888773351827005207274629895902703290963638765350027540903606381209611240303939772462875116543858175227306573595481815383569268692249822976730156915820923184821787024879048673063422104107554424514750847083335651243715350112600236458158162123398612706919307806362329325490850881842024167410658586701418862336155690703466432778491753003803117549890151258303090097901589366747269002131458509536011820551614570509529066751121649599578963575818117064335815597831047007810154719142012380883500011399400966517173252657470445701100709892878042053131356096877571104840663110452701645023658027283188363139461208831104909796262371559643345991188502578994088844393101792189780331085939726114818608215578417720971275363096345097851543272464433127575600569158423073813691382705110293439912099895972062382104786222461772528186730490986084816784052481449556081891351764615453500269865474818408741163493755364743017782704389899862313481037290868555166386631161847671984632839661477210931229541278469489697846828501425963346018664863395683207687989157854646084831835958533862878474747733704331292977192074067852287812320524695200815556760953653796746964501645066890516468529391003843888322557585229534004653839945542374188116972937623851164748502269612789053636400465992016817664609244449205965592835879704072496062394405631114337859055465160318230843163612263722330291206282036948283102425875167715014678263376619415841618619821159715838760689108362391760951813038957516426318194694013316851221052277732919567673706629164809697822224801096087037193132082563443242150026220163961015051728787101518542723941925215380530583687587365927457540449849843774631594716973935790194844102132969163867803798863126441618098197574261273618345323297968624116011591763919476827722293124171861820245678464651919879777384444538606668249004191307679867144731905756465896021535929937917215626236979329975114458398935448560895022522746146561092719571508396560541299715131337552388397418499025603989627124411249526020246929679033441886956079418293943640434157786489500585769567762034447668934497304321140652218497862552595983923051474844125826679043139231140302080896710361265675998460962332098133496911710205085655260249284709504857960213261127173079177350252356171089394931460668095239184671810515727287133516342203220522179876186827014479412866414047535034564739893753244347878234814432887932592095800018792412537466410939722434334752116230323965394533482409747888356126387437532686976266062316219828083207589550538770782928809420516934914634298852301597693795549983267226949479350161767564748728277067202612839347393804803692986548830373103023065736721801795584623185792005449480714848794102324086637601338901321384944854851941983521768582936173670211862285407554686225653813134596068043358990017227228339128709087509211761536602724771414831199276277264607737299835153022261972111779861743456598206554006035449474761208051347978864746796145017607043059650411567477448112351198477572735342647312317797368892991089229422547628939106940844640694676067454771179780340862235904746439662498812155541137372932724800012255021149093524807698960808622524270575348203775398890778881882815787273297136748764291328100020223626033172231125283464039345775883531733594075277901055310788029913802788961047076357799063838155025525236808571596040656648176022246589659147120626206222222772816553097775079038079689832772100420800844377011624126804900246453531693794622911649149364074742143332165389037095946007502026633736580330140686410513850610029741775429098327631748064288441596719680988412029784202031358133950398477326270852938493960475321356930164812011681029047255349208945715683588834316013338791922135963787958315484985555540066579800640596388734603954174133020889948474302972590100167483270421577916446110786416698851063250647031641897612045153795096545960408664424194638618635944735910882134598092586370550368376739009509869130927260649671816459660273874369826725285615987465111837475001459988556620395299748810381612843546908997561548170541956868139238050126154396594243661899591311683503943017217704143740166835301182185035008726560624300438676702439561715582466817609314068437357741841573937342336101561059764041633035283682608855341749441739189267438683591418082260622905329840666514107647885776885507904867521836705220088675178695860363490681968831047436461896843072787381949966717654141987317315748072566412382294073228921851143376858576486314690248949760978797179302929721254676661128382462191910442808991642636524239344042659146762454414828371788566844227972409197081484820985529686725199597961977804387994511073470119521237965852262400949606197089515319815127293559763066006940673902061985878007985688424574669526901332654877892788950446933201187508498052991252920866470789603585346082623191606213413276648808498339784488223261764449188432229833587042364251137352885174958615458037996889373267611709337222544780372843821406090437425950643496612265640282197986058920984617450539925227761361254551275129356014125014759800380753328220843226071749439164892662291424049783309620799048375649650145717321051936837125690407859113588962003825456107763677696587166390489439489126291820430649987229537176312022428319074729619636099635395981356410771634776872623351062440465413763011042746147749552830828621028544332351997703878557668931400956070665449068660455335896110526973219173940270932749449652004347449710206211746780540726557075307456584824003834122113837299727508479859406127360648499824525446341983983817983132270522132907646732884585388805427001184269836589633482411919799565945692124739951241568084016003740041130246705159665942769609073600773245251332959923996968429898707138142689367763652978721542152368644938417364900599661090015570861463006557417177058968725906152824695409143052768797463282244097162545813636363955007352079750937773928485062562460476393254491319541936517917119241231756891236835688616060846549532026731538635214213561725283057812566910431321941166338947475014756190116005628005945249265031324704816290322118136617508655935315256378167874330001545774741190403600051593936480424803756882189601718323968884243563432882644095785675989863939478761945495642209784320844338080400782190159733283718097192499292772724238486342144878315655499201194933273956514227526798774437081209111007259838015753514518492202802127177027404383467181091096775031485335272252426927704201531641198809984293171730632405263587873775166893447196420389529825499863794359466547974699884088872635232276212341251296341352878250880207348930765436109322644647224527822990807320219326050524828356850360727603180518832831730378658625405879205008306529329065526079041881733504054771720227999643543849963872974924070357808858945266707609572070462387009179236491023661419957778719832358731312707508330710483213159436901833478913110982944971748546442694758978818839434114120611611289767663127576550927929896497660271830803349431783714570992092735660100105351421737058324926735341472304097083773950467640072835853735012946665039933390397350870679218931306160092552207599186705577056479374300612307737976909880638564980269792342654527010375707353569840967507527635876552600171801998410447411534935726061528960245632326036718744905887940537452471859750545188616236339920745721235080434131160118418953153277719035026770107473847043698244339447284627292357373724372996278401921710444961311981183741525922444304647995048144599885984342413735565262063081067194730637567100571531660406761231959685445054080379815768643589987784220163811157604174539516988099447410159428165136464040079323408908711417529678753544879111676999896918686782577689966005767262379253626862499176291459172943665111464362369700144369822662671158106451890906966578044866716318140473170197840183653531708887951417750606276499967902971787033023810261937430858125038058779562957824018190830830771148488211280991052321039896663119945877037989848056435463128388926757219398826591209314129431165005861135192341777973096879182547680563585345595046386155628132284863574686455995937476737360860751891631630023536362183172065982458473396086388259296454324127454478513490876597327945182391443221907597397575479376971150811156093167985416070361456368983120779449839700503657171216715280701576356164805653630437662305996187546625885436436364435177819061719744988654544342657278968974620978254065982990529843138250780205086094533789251557659336942723866447199586938523770706065522126067089866028237883402258227548004731008516539622249678440141574892679489054794744300026723100894869589108395960390892287167008583925651282433523605603975822651606413324047871582194355970427567439314761853244643355731145511254401425886698350133442189233993713502362601423987059270812847375851679335570435822607518078371161148314770485345795331943982152504438930024405135014851361729578495361490505239907660542408948600583187444284386633454840058539329352021614396587812027488385202321222486751684774055072344699721750886708649221556940271507776141334187837717822460565196680097799471466447145409188677904894062229643191162560774039587515259197120012083660246526166938713748304090123959089251334231545348053529184340389207547569943313540687293480525682470604408433243457418862215074546634801513913272307409961034544170586123631883029140376074376137781282823029512832008095870986092527933138702108849411449455868741301744201847437654753938485852509916380316476671177114629766102261034796225336521688779203746348615397102259811924648149443894846608632831980375071205246190523476794512305122648123620496982173685752618558864472335393226549396609446314779956734532704451047156110021606936482011876612107717977463235509972972262925747202185688901071653715261908201708401067316635372068847302279418452478390305324784085436414301162015699411980791457056643956596336020578112806631824864757762466729327717980786701035353903460537992878504259370179201530597819108977105977032866716625850806688987742479793241004891523459025903721453049837984571155355920652387353220116243531724345737490795030288568559576798655082168729640588701170682760231398807766152362073644200452590447271437764701051120756537685471748566579362784370907140615470800253364095102115492728946346727524707655963937281504300401718467885232873433799551793829742243829124869899817302277181684019653850838655260404472449233985214549771279722805107232692402189739455597833264269771535677123937925427056518809820134333200773796605686909737015348248343173354000308081228569800136692342441561942451522477417929855550935209245427234750178349426879424750020536662049128715413515526447779775117828776923816943211192587213652657841030086866565030587438789634151480413124160825588885564457471398764056288195875703556633346124194279708927932906800202569173705125749346370860354986594593820084391820065310850380582359637234388467510487403688940498536575521338901200861714971238967850691548365481353508515565258690415356045055940759449056183884474264536773576146773887863036954298568173241870760362364360158081562936846925490922349337309365638792978793275979497963311220175193748467708832541464178385651039138755896680137330029198935868623289522930741371619776378397525219358149397802700222494856633880526176517846534258879662736034094224676092273172663605353104961607873286859942055201439677970774170299868675508316147684058923904403331637021585311026456105089890468350422516465280431819842632586125305882946370189770945523895700464390960791522982684915759039533926770073457186000012330255069753214529987587838027264678267429947826604982102251695721283060372394299875841173264326624370479994192780176571923426717851778275278531241623509366369552218975823299374010568540968377669044170073345263491340673324425148619834855744659631689816739861010404486439129446116858056686194473924431586703271136377573207325986875457689941857321503873948760293019525555337649494410933269183861799742105931793914559607568080713049450951672524169192367430246981579507101089209937696472849958112514273844342560273220147525906533380008624026487894206418835340897158939595034829323866096988956297884638958853530122937059497540228839558253785001833905856729508160240660662945553387975591918697769021993901034774918870265147636110253341691415401831091047057322757811014763831173373038040878431295802937078083931670220186814341864613315026493594847111600333257991897412915064447278716979697079283739961570007327568222718753157462116903558215533921910160161539889261805290865091203085714867157317547592459736109121652234793609584276781212519751152835360623711365059389850951919070347071843986104113934232417721692025705201690945771849181882404323156994417344212519493262503547119164154851370936384218479084511605893061211354236342924843579628309742933141754192181441308059621059223748469275730762566570305466282837847284391222452978037350860963308459476594704132813164035485789827224704245391644964866857204523269478397835934591600239242126110443434809008571215746499502651912799673567444251994039051850218711761520485374712898124384371277727083758454804499907506126941530591958438845378042228998531596271796883941131539590898915374621455690171227161440974451780536826540890023225536398877428505782012370938851583257677192302490062247417173521207742645308300260045827263229473315884143145473343398077770812293853864362704053798706608671337346887849087343376807904164280230860558577368458175458669853828385792919703404151207630063653847911211068933985896650786705914972372086394079535005020459780760274047606326510109601046374166913292264655702261508048557474707230719404637084158586894668076826709768968746804752348000862505717188130074847976978459458879532790809253324936749790730558114561738307569685755649112559875721391133594171098519347268899090538961538332681080178404956413724594053688934629792415806489775914780265953361407057865893064610303056373753169716952672884484106845833265755572241594817586884504914688519671661742740684510949016179655314044119685207696013169174735803774399353230129218970289745407009673734425107804165929798154757612341503400690814895598110541701403353366864966128784365120837502667674716313318778385276054759730632952496330674273916722907240090239643356813225158930656623659923978987713532139928236186468792669220251498067283331067886217457874869515244509545892701849084043127267033803801979938274237040314838967320796435814542026621107425770475195788205750599633445631840016728837396582631471931389865918084425162936991995706256915995859715913103500961513059086675826483834093735522918955088795333981982107229670826887847649531477777330503465464043089110217608767151099792333301204545494906833625013745295865704066622109567758628952040572660931595063645912555891643037728754019361358337334724639981164319318215090347742816320973967628926046658821293179589073500221258191189264104401498822495623953873384213547829790685663859868790704349867378116031775328856872836103370719260355957201435887459784559894765291204171077254998604147104345178846784893887003545680360731891561491091998396061956279022255637267877645518747418616440798724121389950155632116689793700811753398488328436424329849871155999964347694879769254803625247688881846563667638182163059154996398904807369925051996297706890762659206252575249562594325474503742682015378304644291345705096012434391609456861773972753749358995362008543180830895914621863438471557346588659537535129958710741579448908806674691255945182653928443708666227563442783185423879859729962669687215205129583632154994827727523361144704274833026134763801822425771551627458570639683897006242009606497720799855529944450308904571220607439156022042122554222798083380864347321029395041005005965311047848475513378718015974972884677484485167983927896935299924518941039568318651018972819395518092682594477968473501115036094994220221865123060979706490377015793272737078375822514184885238357032985560036411400646116518035800144759240312262879301207685027328572304929452053343802849967962685450147931655558128423699163819817536538156803687007153647321965458045327698909822132142151887521127543551226113771630778093342202906243552669645977082470006457021074339649080477075956127110990169821163895357388621518932475433621315275275668459665255012026938654186595524800609847666559382137062976049838251152250623058945695554208735110570958362440427660201629193030538314661901910259894923216569908278450965975147116033209871115086043007397994122059486611865874490561150473638711439868656202967152443004934896636551105788888955282100997887211480991601341523061322684701808835433379096271468478536740743152595725341665736547067557684524668029541153772517152639268899414551223313344711411176494618617784646701151123610226544598557801220851281393672519235386312188907475394522788760353042634027380310276476306711726220588386931709966670664478239689934411021180194844704890712777270639093542326280071217292021580820038588250052371871733642665609010075017843008719288007937091618109236097698200950281366796495765480730692440877260211716922933710991113218389667457891460439625881396559336705919166713402527796466771795698025011530643848703474380266025453882331215193163341699754490193549354664404141443305673756180227079330362870597826367223813148619034467105227268848933815170296291875178965462374602249471543952522627284885141622393007252003152652232862967321622025620276912142339250063843908786447649546843963648440941809278114066114919796401482235253053876243155420244176651678648462537911852637599119112836076549069125482561961626033541911470236862088887644082656618804166925950976684356271380436432043567111465413362955358310782168605610824230624251715738173241348285679205969446119292022813096903841659282453073239459401263903138048821673108846704693238062041570001755543578713336217823018748552780056802349897876146117991997831236092394612983392373460546079862412318812439759235267872649956576131412656380588931390207218166651597286453240552763729041253037783682619899024861070246342243406168187375122433570138200055743007962067669320514264789731719054946494012484969829321738023280809610979913668867918632205206927202207743429525508467279660846118916194958886194321022794959838222667088236106813067198610830470471163658825826845459566787209075680898108779540676484819238152472736583094608291996367088309434988227603753534217273350296865966350162735803945064332162890310936817436134309297347070691480270882048450390178539633950174702683853638028875901279054957806518939169356294252932958633355356072360306675173520434430391563085286745897102734275419931554164560028425015242989314852091720888759431363626205530831172727427264943580407212595975018384203603404352104275873162753045196704690056191570104697838803593820347788166868264719387449300969330685296763212402977148279812168593655444288041994640024290596028208789375650099969845006237922290929947254303611502497732407990682133409503478524221324598242180673948713472011520711781358335723672880345637401615993717275339927394599081795991473564028971167436535892176524093865279648086417224983678127697954808714859197461433027601339301461274466181458627468441173307662400186574271609843184532169809738526313271138499187139472727506588685529495108891253693170749626129179621265329392602810518692675557989635239323347627846545313226705832337246845534392378445566133663992901484721902723416390382608110627832395866340692437786762982349113714214760471323740394279529849154531768422240491007356022200481566209026581219714064916525856876959034580780750868856415029996293158853309292650450691712528743168100842627435710973966630526184639847521472624302529228644006330786001898489646792505283324619123754623450542840053812989534069059688359625460889474014530223086675125971112449016620754688477232678797447634969273787591221534041172607864358340428612216510420662211844099955694759444715736871825716971729638360415871140460351757447762175819773571649884408038839473756408393354255833576809656941028208513398412250387073724830896300932351878089278563908920484037144248606411473592458594813860120178694074872744278408942790944014575072687165448442708778171326176591991117781770761483631571629778356021231078088948817683130068441457913030138210057286415619139686886827147351287421100501702131817208800617467682350631316657158209587168410935363646967610313545556876151651082491666734864248236784110732486778254906106444239470256296058031363503591187663512815091688053884431913988292205080674949321591402851349288070308437599682576936007936793818499983310760891911388616520632247080382844332060752916177860131947158904426816264440324069829832805329671918822685133096858753376419222536836775724668538424367986424202021440734380393181471737808439862445082004676442167358089474587517088882696751519271256508508393817490773973292082620896583067214254508798750813173403765335353449815157671920286674497349465146186716574946908149819961084222697625281574335165163687832581569563005877261688382429183724887393736742532708236452550451975414139691636758928183668752799563230448577588071898311104245563184839873633067307882375212654875145759590031281387375913372595399381116386405906897672282529411155199557787523594756639965703093233928754982672082064500315856968998760945709877485432480200781094964269347066521355854448528757980276726257928270141351126581848085132603213624559294496330095067194362434738411087536393092592712587213030021341481571186950184268997528702696565817463470299588385663082137597604935823422148604556262883367598100080327148153552765619471088934691787454622508810101338306436599487264430031386831578347589514712641138427727650211667386222885060694173256774010185850444499623548844159604466797036309164234020133046949448724362561809642830157101961723836794464782237382079154899220007720342356428468286863419957582913661273080805028059973266400943438571883424857784290318862992018931136842267552587285959273534474943665260900117164808807460286493170547452464053400244972177581142937589935483369855778861064152254770230529878673247012966975283357824156594416313638476595589792694797236927758527892104108213638749697040831690992293736578029919363058977520787408202582596066226962033715014901119979838655226859566615227097346199654973523844450100273193327644395746724100529779681968433817858327253517804499235148505081651266552740899195646688446348685043104794577052555677085010443376373761921421539635532286815159640756401631280324466666849240357461460098056145255326818803542855760641941705808061432759971031227426939354468826413914613933570819621543722655935194060331823968883103123639229541785338654093298278551199382114334178279920483631289060166652463650006964104323305233407306937619147264488075020574175588223785245044310767262913178652810404120074773581218112532024810297483120256202519690570611419015992697462135389054043329606208398399567304945560428880427171826181211012465790222318479802718589748899679808414769779839675133400440273661858125937232033399708779342670344587927846796739762437780571411752340183806481170677075087702272233862035023508432064066090622613794853024641081825842366168366337031283179149381788276983116553974771697281461803952418524404289003661164765095366511868861001586827745240593665825176782066037297539062861035532128071860048283419262357373688774880221583415282502106081805570526512273721945320556579648792469495451492509416712798850247792195334675732982952934256397015657916854260773699483508508392486024840980046847295072804552425102516993083267525887790612266749294674575467388221558875216456528228607643907652498033397955781573901857908644167974863359089831274864205618015716311528517692759171443111247318872423958493664570580365572720333732583555648742279930171104192711390662319643292042896081241289260200231282345022537040901116786543666207125167243032044044886620595261000207879034938511357546320396147664220573185476637649509533976610287570237393587081021359386775657012495383909493373006589563490744230367660582713521351381972843657651472924340095491722186281800859463357298409918794950078833356110199178480194153923025287084507576157155623345637285052129875546675043540808845548589967726394330547213211575536370674546642491825189961274885950455391166181895436603373296938904031356801812433791455844008054028103284020191503308606224565553792844098300058784519310037723386812967953969219190086294681022206207662863896934052300707305084047924030884671962226000229004086205858425742716083665085131194909981342258262195463320694274513980311676503192603469613329523285641392205264189231747255298528397601054748056269239896841406200057850915907349459757832189306505735658398091441830796459910056077866822407778654904958718434297917257811359353903544595999880809217460987658286063455730318978693067233422115900994457114379274321987113516877816457914911247042989107693195636301855349760615519567655929589737621153290502715907130127405031889860453997462528559148767925908361374208914285675164195100569491260941515564113594703493769174447531085101797841604848277501379683727703410419916493471889853890936246305986614981160731974780679462516400309984401730074980315755031238514706694339928715188923358654456716301294693053623556257190455097641514745263321093235594677627944001848610075659687522784730993065761625482095402755269923189511987271205926908953203740701816505120590817934062034157274385366057564902482218488866215137126748226961315659501212915474033672063914574859800926114755342077906518159504712945739892234518383198198156112566159502104485113316453175897364433310904886478252438950014836118743879914967097850652056570214614102889819546322724682203234337883198940711442369354362568786173378697271813836058631976247162476985899237450563140626841354520802958865694526204256913926276927465702882638927088531708879937264201871803024229378902600650840890821887727434179975168897187598327040362091484993196994813679881742330810803458815886457689457106168890778755459892458703131214065447574834267213731586561698701422983872229961451705056396748556221265172834711921099497764482526004627766774091149508189465429306853539021832210554360774048612161360275771277261013383174530949340875998875965170422013320873602497736651309831407200852749850672963233249240379947316066742636501450937110132902009907871159927624929427069942353638171835320418294201149539963776724053311638493757508763891706897964824185777746701053204104398745848347467869309530989077889038177213706190791404647058326616271617170246862694663214965853934855537179102772007658235646118323265197562111281771557956397974258138055346820108360810481279351448154131694728953980216672273448078559632655030884699625207468121043555579787262301957017542137936694447344718624493678753817862306694887852505918177975662454004837947695464941798754261284157441767263915534843082703271042342541189056060526431174450032065717651745140948143237839398029431391486909695144429750439925851334584747789635468959840784386334568581549809848706987640853806156358755471077175165282796743593509489635243793771546848016083781346169846339338547211896378890117337050052934432539720685261816156799746006836122571707377833401154489134501812998918610292960266451953344350151919232100618491509339787701042288980022871395549060939502493572353331946679136045750220127048576106327333671105840330012161557176813699797690108980051232282742259764356187654641986918310502731854920360794910929962031888149628942498498949268934936526634238398382593328972564870957009498763598083550990799936274043411520279413880036039694802802059341610813454007745424245588190827287465322515798279888446150801530413141629036404766376764437405832137285767912119461689089560342421813484580517905076328103743364073778763769708335756283228455132431121300116691412775188880237612446500226799923756832201759553674031637540635533723492727707064073392148711340511602753179573297318979131021784106684530004601040620170978214955153137682174223011215132050075755565083244436353070988412185711795045891942338903258363238677257290140923762564569085836321027687364909482599931758959314580967630636598109548358888040787006398726693938243289025936074965265980978825289007342315396669520702377085937233194196713167127548505110966489649394483271989935388970307544775661248687575831966727939963692236409911818587337138758912537363325843362200998337444690154262084099301826547070013470701931804765193845123147053765463228876946782504632077858988996049381408721442019486564922375060312873103773917556334094873536722908530717357297376004769597854113830396824314276006966927207511179964904459181541485303055971364612863596380826834061439511736012793532652386284053518990318257424377301043984955768312488517662581876448848847023011766439350650120519035794344824763044531902244471396665010700483484798007780714286219178106818840966366167591561639247552129014483925711995464751789466612411442431079047130529293537648437502435578808379158494690084186401587158697743263641816290920497100892088055279797298335278664710239311779645950831642117410178245404796765496022290371800999313605381668894603876971612433065748146330344617243509787528868963239289684526973640809799319720300915311456854708036581910507915959512620687802031907221249949879793911966303611076777984389548146782451138250981699876635427283249505810054228076182761397865726611015662210027454444405121350739659867353389131491697508945685940500156198209233340953053262242572597058617910425772926164826085139271792279529451322822233611824277821445266840512820015511577001358943950977238041898345233557068278626869422508089367091375617868996146137487206050053796725930274244506362346255584974529943830395767506356354207400566881556011057072096298898464764612643158013699491693875993221494182570034334662919316029445159882020355147320198403560234446139845115429478806063030227063097611286870742117599997179171071697052390754526429839453589453322687960092411009415105316020342595224971960055800005230580096144884911776798070248742911698532209689856182753199868500466583438429882910145213265169372152232293334207985337722128613842965758527466982167915184968543747072612054466961892971529684953207400999140560084055417247345299033074247091600711980572110719178564876534405897806767397494066662472044483334982800524449897804154125070210088957106586108824335534854437843182450002691786422451554413208035213581034531350263357634280099552178077963618986211305510921183793601751825261883927230024312979506554420235355636889954929172940510570112802428804849901913256873177795601141164591426388915724695818942397687689845199136775076835250005609884340980635491974816235157526614632678252749056721898519542595333646744187996998373089179217276204874884687503004373974940794676231612622231754795964381485624280507383124158582481222882633406046650685002880064738253500672990757593276953138914790706340801709724414104066481277520076322683022787793331310280308046986010561269141602617633326408007466210379657186833415328205739011377974017648073723084638908605929129253624162926622371672899843695103986349524076646141778430963215607223999286655030605313720242056013142479094512754244017991101322929365819429024919649124365526657229925734570668078715699755095765043716265980259341921591692645510600869220735370797234688869492741567325258940032557600690521831671430882025572111035998091698558261332167652797703570312615767580109163628976338912669855291712180472243330082251385990452420074880040576690429982440773408018369530261849607752225603046497581371925426857476678157586351994512134689956318280159457928277731957584897966072487256637071411589799947152348276560491314812173105086536710040631296681931287080630780465915442346184405350712187421185684794175751832218065433043966955936451162972543102388614695788438251279446044883747081151808720039026281763350774036021069419124650142887516138479710468627831462923668730760873856520812515974774065382536198928647194486544773179118410373862248478355886466741866635363370511130881882393097810026730100728879373339072522733231034208997387351813994121784685101435795867247787608215506964234500813626294521007399967091090627043745360733944876990679313266174323169371038959541321812439870759960656360788630624305469616325112551858603719291710807146816409076401357354676827205757525936509075907340709818883366943293094034108665719512143022430519833152706442707763031904271096385603833957939828904459445947474225748274429916546304310326723458005855176027124717028238509065347758472416000724932328278644840791004646846595004242928219409159367683458619020142380339663918487750398557931130858761976525139772986891590430295637600247643730413863793406930494616795823072175656807533213527915489659641754520817407359393378929796404422281610228020578382753553173126406240287700727948965851309973998422901588030057705192479776582165919873158961942176025670735454258586423423426019950196518734397534492453019458753640766750315438493940448053747139048294177943085622255448451101834750819398499572985126028465977336168231988961672722048307172067480724408771957363350574770464473441716882157772427087242919800122572093050689367958630241709565831112628682585919802937170097041124844014003743363067216658317757398433336116116973889782288690409628618944042075700822048602959490168490729694963492313215763150952435696255415028679607943252953477204232332670408091388691377791860005844632365249926010133173723501787658812717825651066248411502488203837786837679818108051640831107031500424740040768940637820010821430275135736987960630740399207156175192676005535280378074118838272521923578873679003939316663275016912192226058843340953632363900912115636761906773481004043586094394706444716988581288501843673614976925286017055889464706675641557057839231149747090581860973722012748262449892466613244197110569065287219461466275493699201803361646662395326358399533373502999123691397200484962430839860321019337978064664241742493058004311237419239941841225115096912255170168016721142198179347130506672550388252370925978052640032589673667508256171845716738703677719560407082561832069399594834954064071790881000297483537645561717002044237411393203340004680606715832299181673214971623878792266664891153391674161916544791511479688515170075385941172667713297821475759572159699554939517792288892581863869682574729870754973550502523131698760871944642212775473436980926572906185256371753547963502020535418873067471688261717536987460734724129475392122685127162483908687492768560786668093555159718214213294581278835101723569177862297513677477069838436623414384218712631502234241057047222279574804880567911871184652672246489736068280491302543730040334243793495194587627204072360530761548956662338545423793520649292358987926733929686462864516886436182471714425119716938141782499980737118951619482360954559765031058382086638732192101777780103632347182302666102733778801198213229694816561619191148190440668881163969921545586648159281692534551293131746184280274273194039544697516937507666574576778142580376533482214969266575117574447217323792447553808077387861365477189416322292313908166506172913604129609744106661263396095972247854734811669857912040593623269215758743021404326959666272993684980986654516532624433730085537348460908883756220581387191891751963792321279140392972288882903502753450907105706019538936469417723976022419955303110955449783076140500369405304553641509236481763011837626770673827982466616069370410810700400402474242214094283307743594411836215577979281890924828917845727657554192825266835947587702256031910854808276344842766850824686199310455963751572275164868834160386287381828392976121792805728271713880998279442110546181999203378368894780733028753410254526811260308139024044577988374002961946633536804354929101786784151329105876554663316729035459799759765990638255338087309908875268712469131932990937366161142072104420018854448579582428656528908031115112317543455768739907027072989392463932503056987395386425282195534264632934238484349101461262283356817089244762103409649370843961838934323990112989963208418148556316338368815830397335823191640432467882339496556456139075041354566415931876914477340583015714925970761668194053930639049366985617104979431673717562603154361918500523117607958194141330892998139747732294777495573655846113833807003938460268688170244640830193579079461668167177670176354084727655691275318135258656740835622119397788723327273419257565022080004773623824555719969801384414923616172445422879555734108909112539801229963306402815325273157662664541739060673364637530398468483242560288530912102932821905555998424576623737893956677127236247780923424017217069430839376624203726799754862651705899344021576752473436150990919934105315396902094574390306668679238856536270856297009097822346626368845488835301225768502503648531245196330923318204094607295007222799070375045897501243951465709110157685609874136715086252122900299444360822445629731074575545087331189203938350360874188974832645754827505302901133532132589947901805886500606370842677866673956204711264622440401629213535103313486063492726769303022258507465650772517438017186916102722310524771210631635691013289717045401366859768912359072216637758398215989807582675125155648239514465444546772893988906157743204274495944804257500731574682332240561550868787182867500287458256006707338927222257193378923271608145017623962639598187854131154095138537734058447274067157966911942649718747365584364399734711351406365292052386627653881679781125078059579198986215379560361710321801043601622214522890194828734206453078359745964579661191589004696356188578868156619157843035881216144901390556654159878998093009088082279003820081100368701545847583213728927101492878962119371785241341915380281511408970455304927947385175871630047773020847113275785547392949507537506605214868035878127435096379741673678273705924558852249738969212618935117011876236665340463603133638318950676314063822353350228833120846310349240538744756768220642544249899370395720174984348150439065010900611019766714277360924216828203193414826715978283634378880479110842996132491055205764793403335917156236064723598173211578780047726598546321664050087104716606261925818318163853514975360599652414392541596297446959849293959258013881391492143348600189606667246625046001077791937361749732840127282801215233509776376702637012806808680895830268285655601350466518964370268137476548991229745275215310621922556905689627229165752028150761155536138253886043739754716690168203619412241296700384883906176228835038894470629584075958224425744408221029419640915101375669846383271116555632873652702768227386443117463646166746592295569960633836241628003665010425624786706546684740826626551349766220734620536956287870383284847272668926277352808374852223920147811557264873362748688754031891985017931299432447890915502556089454966156576963140325716191316765904478410450109368340421263327474821111487335765063543373947273716383922904850874008679858951437149616517000465658676624242548240059088442038458066157041609838640687810169715867360529894138410310264095712464992713101522476465855607502769234636105187821395537684698233595142354882139139014544092346366387991267752018109258874674362932164652505260201476515363831428745864555388627764770762514817995294132712410583038898389192105968121746518404076795013567606052927847463198607393432664924675075725249405310257486572335488646296845752134105280919304408184280667151132274025887426029512746077550100274118681705184826127377616479407673670822817266252266019044362937794032284203017634502816144612432372165606114614396933817980397037908489699206598626126931160686182948723768339145411426396301840615507692039513058665395796024648838729910555613366398268367850755825279014258390750632716479706202221622639247420322806692803522052004552246936064041555301095210015049725248777720583611437769165702710537100026852046144068603396319571762259860103754209894787223821214289346911936898543167609018283994081503574455860247589209056277998222324113732198422241893119863719850416795502382930151521480439222140218984753180654097023631202972525235997221370556864171664304878736174552555175639471830310536802811186345103053452964379230628659753967608977912600644328415509386200930200085807189430792619344798926352563771527235081948200073845392660308391117261176938132042069983941392470486002541985928373013480809925089021676123605990629937639230765708130494721466568819300825335665831807447644645725766242890153279986836955733070882843473539613844652838167982849880287646032785655286686404170279431074480697713912605662273267792179457083204139286556986369020529463267598675978370138337224151908200881636487360552393093545166450404133558169565639572529297309537633118489779525519712371471604188226491658007177365063579985379625396985756878121409965165699783506614287579935384110006519657542922708154814280171259613734560412148281359054244942231820276818862897114922872994919894085967865927141496779540455782391785258638162009053564722982382558311519671196254453292452823514014571287358965217728104623386560237929299605617737408227561899705039882600051693107133980964494083192120524030634257448668756899427607006569471210326102018951469871259326293566870148562865842568129147734941653243471146507517236525163032421869812740967917163914363035846836794917980410349307139508090272467072405104013909128242694712379385515189619383737230421063560833387980880452748595532098254991117068199357279857281695863095055447348628788332370251374225094436429808790271361796012664280491772857373208366154323875967473897645772083542215372426561912245732801373682573934598794058656707425985462964581044895933448456258756956792598781724454917139251896436617857570851246324056000324290928103339247639540242730229440228413759643904556493269461092508388610384887049029131566570616294745600622249145683418544723892630969835185967643878646092873048672706864518659009983597622221269503080858654907684950455871824167583262958934511972010986830495493951885386313021213324707961502604800143634073632752304295834399888005594681836489820250402801659399226591628328091618205562146470630289575590525135658953425966986770727823105598743234896593101470977810177233308249814524825984854367369034554479390613103647308536309166248564825523571843791734885729625023530564223992009828330007683032731459413280592536855382072951624038263115178560915209742999376425472832192764927438241909847832450583471957876261213909155525447369840101490214249365417657322201729189299224294846661035045473292982123418480408056419719084825845517155678299103027799580980378611120866810947012919250640133733573847510715878669454478567738046148363793937298889037900360372064215288126714133462314876367892445427290820795648565860205376209995475024179004196223450801650875166390198247305066077627798876174048453218124355625648036302925819325516296117254347361078817688215483307701030834897883154960205015523077447539335753859388971774187306902425400842809902718005098058049335897852178948706204685956675757284912445907000163976560184623173620461297523298320220191809803754016242560133420393434151243933271464957325096560907209596513885146783856130890658520341874040404018121763770505349844342013163592624377457917687891857364836900136977702062311955894035958508293762972525495684106391426661671436073457262320345665842574510538386754345809891996160651539030189226076031789509251245624819346855781445686369069214527194085103315195582306149379678694861629708098063476205455374969596403200063742143504181943213875130568084644778852774381291384548077323799439211838862742157064299902122995658124717898096975089512917764779824124267175855093157090569678943119669390784809294650236063047285365354601678748061587586776843031982942182746156688045572711891507323285048201457936381911241348717728298294409914968713754318878846407193228939857210243312123281239444162783155099980936989742501235323764025588154217387830188276565376729715483332297983229689068852252246463894288733169883967567840829706452976414896447917619275171619866857335438854081829304020910474512662163566168635093238891086575584215977523245588035456783950054347636683427846921740529031743668137398627526468661033210302481890707031910842308181843413021688941489375138671791052078289655103663322081031917782253046864413400736217511635351540258095928210545868453044893665838472685858121064078357949289351289339351759228452581993559434965597203717516718112621647980054560757560765603460680724941229957122945465212071179026071183298504629488744360959083922363288972389746777280279625361248820307596781973617449612308377154344828495923411262152672306547131481934829214928069817523949690736410042213801029321049177381416090859685285288388961707342660964645083111200203431732757361904160957412888908343364262652855379408287422576798089376365141269969649128373815215638818405558704893657333119171246334217189604930138744462691788235991620486204866200361417040554130677393503716779189867059344647906881352210508775036035004131781681436000544863433621188552427139195376006171207466509088498563856403763885703828605877192220758924897770222266632269195241701780922848627697500708527856929129776437027074989762763861809868544379204249197589660029883395245750322853228734543998941043888556262891533815050711369073496906381192435358708430448132863739877449973217838526847297365784391954042797393050366690945502708001053831128790375002057497159665440131716708256803853319337823830951332809202289936864966862103083276784013443146471454655591606524181971721769483350793376426568690460433326921364063466366724368702690902917681136112984942357167648345063587743012376573317004263392272934059368509771763503077145624218172907231242009069877122151066610659626506748952737342533457591794260499657857028170900479964073017409108836293087364793348118445181033145125544986182561779146336145866889600822441138027030211574230475424601704019089747977163937589448771079317562137939399458873678333207648331991002805846688461649505066612716356251686805990216463720654840412785858345865393607001012531306853033234350882253083333379896522017763019552903858792332870390428730836789090369976420582322130816372398885049295538275474670239916306151994561619103259120389316588458097702849248442909165430023937208347995866529309266944784881827072752246735190646521613871897540246228977967217062650956624345771593954173912029161112871362041575393514520714326876574322371702148174869147477803211521422836712734532541175736455606265677442857772352099022907282750032040301928472667933773113888740769960867592177210087595959244512035191933119282045929218543689861458183233164102374558562073862600471384792044087752241229847219711061722151644230329809068054215038504518563849027673474364817284408132229279279256565830833611228090823393655457705339515171643729321248754666514437141125261328357675790707644489366558419265215627675016218415476283631517402421252812306358092251958794620060155572460862834824165988179016226233801774765433411231335304636298469612343342350227274428344580848250283941565079226065716713005403384478872689833351491629948694870960712132111956944329479126564165568116535637170620729225738630867616888002889498901242678194432982125470951053203226306247082556167360310633888862184033058266082380447837518536202269017090892740750981045082497621909918245330469331587450255049235601782270363865803244409502415753531101734960075839202173157455542140282753132934455948626495915969622270259663951779620573573242649569063482072261812018459241061915806161501814815926260785820731002852616060439889437673283565589528184424702355683943438642111466191531306302511507117120144255061242015079531959804546304813004924813574003093020694768989978917132933950155023723381821788110690665920351197308914940531267116972592377487275775175349229454366832074607924956366359402750077655306232978425715533137975072833749799899970964857657694158540699601114114101185194840791372720968721127850226164673743472205475318773786766780533465431586330064544417043598840695318175251710096394354656445148708384108726256183456020051017567142683382776440855429023224576862958091399936302065688451506439792014966360263183680797666828856009164606682169890119890436086523957989637761156054346238650564727449033674132484710631607006427287252162026392635666381787708215466678863079614838868712214352806837427834497865000302707513928237935586549946045322899279355572999788191546555496388689913341317672028282397533841672112564541378718680083957289594257535942805873187913378597137046118855010182693459418415887112861611752191088780409970849438415091367568864895815448081888026481828210010208189955839391049758557824431809499116044159539917645345618918687077430710906656022434038941208316386062805580948741582620802277407877325522854738525721363415184658027438651282661370481071588672387558286123391271908131031064124099847455913789694974093528169986754691218077219302622463890974462458444278117821991475954888003501503747231384877309630553294012519176393391049971163106578418906978682904974882076080368952664146641352322091518648616728683127637044944546491344007605525139375373849589426138610536975942548205914398964255732679238493353455099785674418034881642309081447570705289843939966542323617196653420666149162999922989558288386325301087786702869812269160772569083389615315234127585831048693104556064904077565080556481961783574545587136429105864203704648677359614786043976012210378602708555701058358433048221611108004376330602697148777193666176412658330742605606590894475078564481549809517748817505410916056359349535051272931241863584200973467312174983017141378765806341598754402289828207708183538733490121668073615390004631043201861989114753454016884916907322975515066434578682688756478279534125323837645827794170899735996751143917630565048684993097295137438295360888548691465811256075006404618038803163225618792044157192547965094301121282786993535158931411979519698174953017454310162060888596514616430873872935469582470042744481526718630932757966942537073547337126313913245415442317769107185344591726479424742468437033921049571597825700405946527686623384579297536567742949071813136649518363072162182658533690703951401471944689857165805963948714405048454596899035615725852259319966642390410528963051275795288044234594388966245925249735134584270415112108973687934486331293022850349596015449617968191264526080642923047068818074639927467713047988189867179251910080891826956705923930083518386086098541504092916875262524416793995342656035882359757819102037367105125887156153609623383835795316075195308905014557100105179526384007489669519265003878801281837241044159812321401397759846593934670185889862535974094926661691217658991126451473041768200090137220768689741753643821745394820527143509242889600719887983956124945558716943401643341453009351911264548197415960445924700629541910625688637277583959167765147796110763207486148280429397536000179517407121689856551129204425186839805797938854046079335037603536961973806027303582549196352699436490315721786775706289053632690562958467694623006782454467428373742407867131839517766215182987032033444272108396609588950917510825820952328456168848879489556293530280806954026583019001425316943505529794297114678167058677786976269216645772696157273414692744754209346419563367415811114059628036306175578401609597714100623775864339341626684683551689377996100721389362804587447718635787579649426295108138022823965218835152381380805182642361500896157685162291018666223605245985129461990015784600393332649430660488583230258771739439199259912365033481451711177405597866488098208975148235947406096437695227585319489131038622989784237258119194826380141401435654341825516027823636362880532199393355741042961169305311903606302840553089829416758610289437738435028143005306250175089441203228095480877190862950757061850098326772955606843581865784172875390671211499770224013315324066159022020391336818807234422764572840838297447217378499328499137954723905988268517299138834272336117592609382493312364950575510717000652272414081963483650946020320424100085641640621344892786943043410725889325417499884665039784246328342411391042399397477344540829950652899060124916826823377523129523155652408798206088465950519619628410679587747941875323525332507947845981643777910696221930312026372072074481565224868481841424581443097031662535139559279265199049327481496517484631123676905062946209199243312595312003319272321747078174055353915795994060891316573611432825847654713474024535067222441235641363757548643310224701978633698063388274871419903659952970744963511480481762794122953179861853037057803130288733396104307971124770224239492099205857193223049264941975953724097285576432647835278768885768421903512649584031932307683025991678122640540674408671398627188559678831974709759521290062448505315419623436491019914353941525968364146184810136929611249348952691270835100031410800229649702789102205258824651561888058477978838961816342252650185434963884100236205384786900987321137345565680668458272354534365759966218458597629042386431378477025956513350643197847315099486669704366692344663852577260809144825693437111521014183224218243924437641599522776537072358644286050859200540157678762516074223206781453668431547413185506926190081332784118933333205882682914535327435869614009158360292010218536488297676086016924693170262150731753364144154124030928073278432631268085339128927668345563606789050485982704409250120153691234690054844425772875573830405224969668406129498431012679491593907450367552602796946847821154098079390329049010733380967818353922210212862322928507939998533371632025385506734725235127939188012884980528497827097576248247495110382680027483372044758740672019870850734241923226872196658726482338215763681379178739949253286588903568066927928485483875631744333386120391580963662398685448399866527059094199389163116955095961319066185580692000683021284762286454747211911004692703383489630965044741463160672320345154287559922083957829864463504862656175057334244788067961775911619428908440047206496181646477506162193846108278993045189099170872804676413759313076385060467366161590979150177734285081601590106861136156862493247083180573990177083170677065469171644358210844930923515519304180403143503145098183912748462789037859408417027917662093325508793978428119572846989645375874416166573838089565422461295317782609554752386187218119496252318381935620596811694283537265810809670730628683505024292759049696741413541739339021200253333089172106376942236459356220906931887241170324952495938834224150434493147349896097708956716055609499042168003943663028412706818927892084224343759990229386716949880476875614857104449342607669807935184750068817996119435975733360397769823486374772091386772821376792353445573288041251095587294594065802973828910165098260098024204221082596651445855638046395047430109993070050298884844234531963626202055572192673046532371423996272192780391360765538131334460498539803567166144709528347917343610884451142664828288298595596988238926376498846446147758462041255659945844215517862992755984512526346001200935224934876625096594348032179908891810724757802215464067092975426901721135173085517460347567906327806360029144272952957581099448871966901175772665941883892287660655976814399951607482022899890361300949287443769103638414481031716476586429501018746758499807896741591120113136617460713973150247442153051681992891314445522929661502364490247395183424949056284239378351381359746470107749567575637370183157995290708458690101630406358156051465521294941471243349722195257453365973869035008653724514300927366306204376912634823303006501693549535063901819246120323147282534444606796462278890344210853103546777530171964343698269575344357828773960447716109647503477024388058178954248348394716798471847945340634175390302171669200523715508981677663002053347287608853779048987097158439846051976018709848829638092042492818882007321026941745596878910023661433081722648419061837879956466779961091925028716583882028977356720497687935240075250858918784183726241414617971814661143291149617705819104122224618840100035885727653014489603119065406954490302059230195926213540203792836883148728512621415203117823005014427892087486108424033767013666965024265174515283831955828781931326822470441092426226972462622081784575501989106653731317438109550360397218488571904771052535982324807707103952057464949336146643429528179066521693082641491847662649307131327673204030959079984313785473236692106736044241029730827616431586165874783982083968072725141470345921241366381913747579421767520399379143791967122591469441905481320113193140813090982903830870100424721967870351696151215703449394486854866460316449413495959223197237574525398980542326387497902336345783282592940597494645475638504348051690418558462063670327228683462425601162656192446237509453579740118681468819757730172186921678928136301493635762463390859921342708040244775237860514120840801596022922711440881083239581692012006573243513914280550459611218791690250797412258747264498393770768009324344324888647640384841078139604353100287014330860035733120420434407501084478972524834703796832788945661241142952257428906433801640695065266029071290509298844100564266469525278191924416527508462404705205276553789535144493233649691951028434298392960685227566297729937991020857280142727363884855283856753486164925896050852763100603987834076372476716889963467345678452570563135482447865920279765347083034131257335273774095189558645262637908022200702421465035867935420914250551386148247704828401678036546260619639219011702843475031823315373586570847420860205128610065289527780326066356047349051248133583288393894531774327073280884381500918877998447878778414994839620247429776847982432800140375880834454762130342404489752881531839490655432989168618730681063090054526608068517802306811754193475025721763041645353560780081334044797658526936230299480853623062724873509583032103106456977891201414423100018659895272016495560349707955487141880747182195185302035831960427402843818132012296090115623240592543543575404797942865249785456652216320040496371104758127971902610449861941783282915759909990380754081956461672123034353710221409571566583847162645008664129865327138635518541404771359183412922633693075173710110521237521995146928071723076218708446259025606172401366355986092248628049133973561497750442433586867035339023002344362968505573224978718386202330753156349122067626505129693620152693655989226170694406865946847542998057262384076212302147759556996308489595440054871551181090348645723022777101509657853475328617895605241300164429578834358045815553642322058305938441846022947233777159363778088579649825770314953758395447034489499164557809268002404755659291442263310377451479775968602148065338976567992060673344589775886461336281365082979510510574312609523849526770954540703280052411783672506723979977388165114408509724356508708975672107540463527874443989716384450718777047552639597027160168717086152810252610068564030393312049521136767815309613329816520735631507816383909928158112574835653055343699048209326247180707914245326197330832650090563441055182053512025404170369753142338156442835023084162779012448069712143151950020973630718049717512492000501712718235720402410436059844666847578646341830493716554404162931831333918076272410264789683482910483921269304084755685266446526254913084458936361902945016883161112017170255785195933706092789669179098641924436160988016242965460215151646186496389612683711741964783988129898429995593906529630732306709617663371051404196335969859167309960921707368213225746958653762473516723842907458200389819450131620714965406619184638957671745079043043999174100046554260802585479359492295207530458594493280985741613511853246860038758715851388112908779552081268783129136187673160147060515359909559878240250134209396820842204033101133393196453778556827575027947294300699881893204117369909778610279456105161029441206509157157248767984787856545668670235669265812106509372958293017176104753689278650738666021941792793738591626333257945402122241217249720085112909708867410222131009516060926428732200906585342258993596421025088513577586677830272559936721633676263413145997415509109099732239193616785989973034380348320747740745972827132483250711532588236785295797130691632781353545951182184284096266560010879345645212698729983031161201792533034725186538369254932708166183241970663744402128849187581950987987076818065923734704336052537950957732817857669478442382527496821618540442745359721932524449905580691273470188195368608832985562454474360201609307859367732421612820868524986484173221502822247167232769075581351693171777552934055649235947754507315619742512603766775312085823306391265455704947635519824746454643751587397494813567579783063366319465105461541777073171974813340333728683450932243834527706878466839566342460511725691560793178996543064477749185618918708699320522567601925471798861829679729572068510082802923469967535354348717408959635697476862769965520317720762461514313104309443554226114012984883909547292994181538588700662710840158272787167724655216969162257465766785931871667133060042022505277025222458910362984122912459684331260153697847259557777002007765773502726900735886512580805939531859290391751077128163669078438199923626256981895562296384447241528096940155565713835178881955119420618287008152732058757183838540824593702773082680500719103481289117725275960981155046194459312243732651855574917839720901691300641596162998024012266069606004875952978409502434659276142783748518971196257285542111634891298178035770922480718942463464407529909921740393517759129043685406625652140615145999627514499444096289003778024736915304053686598212575172367905022056262311140177330012950580838969684573216858132115082270640969515974312906258188368158690324866930279342379683428565554071349071059942439303848582591010716760839294969836671926134280928041051492206949966532374249635036013537191805243120305957555893020016612981002902168390210985235491447477302787803906906224419557716878704181331218910696225849177359496940931481200906430316932238823120237003190323984631841547722010315069463852127547428657610211210222528433194080289891967651090850626723521663529433846652095572998720869706802929398673950060742233080640617345150954651095260584565360551595778036618225341650998083857786885952176122163783350141001188523759875540678278721336449649278751223488672085608072316365754424407452309356518132760113661009879444139697142739729023379728629366093138257110305086010671509933502641038911609640032287817310616406143914024803220318685545192743253396483390038263449470111268137948515142420459764336733085609194508153699872836757249427641646627332299099240756055123853532372612195465391177938502263834646280195764573341500872270589190641184653621458083228978605854013386470556428878403320144244824622096883202175368938478244286654606276778536252365051525723293555879904088293609817369156390853142100585556289429736475725044123900043164805123983422080703246579499961739402019639050879701484320913990135557187708570788135031623413218254842072011234634785734114461145417889166809878546943943340349000441571285997665070366499053518193948124193022230783619574285519301083185869022569568215658890180400820147568325783850175095603690040795896889260379531674137560433050706301919536044660727621666147686241534644651887057883706295879852819105964557087666814495397177338751858177345334625388732856452130616057999543815003938779656514583548039662018948911069552571394523409087804217517180657120136077950363681314227495613270888829090049068426725983326489435682085342164209326337210532948913918109184124551513492658119699251056570094550876114707877553592912582005887264754695102715990981373378665878410007823486278988887214662757516426269806773112453316682450221394582515196676911312742574613141981278914944113986135446046123186725212027052320886232111065751301043029681917789137790654265263028104747637280848697883421904447189812580329567417073207215787336838096445619826015844802154110269737831460401615305840735687924855867948354317584267643441003946291347379157487981667431257269483667464603685424071148778814849155174047432286620592798916457648262112799565537934278131134737251150823476340231581108625503589655171380951993203793803053074259487643267499137960541914031596656173096468454747805918322326286416088537776734937992597481415591415574725065154508116637478263449606101597531529164297242932008453271287028768396539082461555444701318631262774447508030602638088433828007579031865370781397578493535925990344179564504235351725369354101227100627827951925446600245911733929659381453987503586699483873695551333873100870791628502682128689115533299999204684036681662874999697199954443171932795861821759113554217230113002307781915792183326128281041323247273281039445634251235768659202861373316916794650900995032488773412483146280601191495872883866604318298979853782126960251919118299326786403071196945692637234292024411982225158715857863210381953156155957407418006457087697367972706448330198220631665760851782993369795563239481542540985470299677006073544022528380253772748881907163763155675409460541835957150820902557328766646064008406259948837973682073179509693172346537641077609588011509980513654216455798309095743354892306456045228045031232822257617277742255240135401888997180028682591550829136346360661152117055286567186209324704457650019351151543633025925262079639588335206054989495268257485199020912943770977842278416362244749704309218463552525322478312480900724515493471670681421557220242051935574548735225826791754003535494532898350081661570197144758354101227579494828876180911717941516370653622892786737208797537729085079439203171147848462207345143667963260872547972294414536136973393705639082616251214199778281470587669587265243994941757503879157788058318989186670489913645590269037469639913372361548862303941848254927685528206322166513554363772735639096049612028764524759581547328553734501582142044088875233137756564824071969745954648722578854310000258191417633016046092250124364139083694511035172850622738404655363850039827652251714574224631643555401877026450145886941823801978231334935175046623628551282614080357676927413388814020878583236673487611497030167686824835592774615469847889960138634004218745868298408600464695293859568794543545254088582158723195236706349334270284919089512392107048520003283624544538352208925087276798618920978978442102435157446832654915411763400662531887660547619462920451669989344694493887960743325085386070864537774357302886210328360618650428090122100630756502919788253184850698793976555100402395651637135473072442203455927252254127022417923300351678284616242277448600050138238063558342593610402637214289901369481382696749286873553180652871366775738175303766195836591357358649042836916899410682054861424507715174380196890509573331791807307802254574974567844288598406400774929859586303232951765517828291323093175551466261613830745371236242490181766223812126846481627126343953872159186051804599738557693275635010216545332194424683760549530816431959926118280703027308671050394272597346924515992020342983422176933471650647531082687166961211621313553637093904580749912242743982175082325828296577931862857883581867212687359433838493071265997245333656880384497907327468646901163872213359168539476047430662086809766799330710923416422074328639089211118413006582846127158903472554868123550294029554721064326892253452251387357712961937385831602147245495805632668616503664027966844682461328095745292019699039982634662762008216984111559029134437335480953522385392890930379074549031467761222262930327840140309131724084279742312878341309652438980777351416068457577402462463196597503526093346556176514332807232680929651405994825656936188717471213305499836507982699382231076176290507088453401484341254960473529558183967769809166666682264884004242738076515495528518715304028254759921846136682706067488576187856758770256325534079379190664217633564545580919945517919496984259896486350483470699247673747067741627853885812477006233051831250626727680490693797910880554565683430681257828419584489439638245432831077059870869166100746164757977061384613369225792236988530063354883904679640205424086879595236527581772559851274373214143600728561616944449650074255505381978751582084088915939743387524445893774358942351740809973482236837729167291215836287572308536456971411021735837077838873250843981304814137972904404481037599845274567771385006207337029824068225368446776548365299389141768287661772587055358264181140099416432219640812431134700977696767247914313552266322627046530852466552041149261982290537251384792663391937539969712235680594323040245748414381950421970539348310977845448101375076972247113807914247481556420341304098171794049323577135050488744176228529392855688988628805348815603408580282548838912080768565425872581511152245571426906964771125672260204015070686207671068008460545928442902307648401905021833860510203649693392908420888134032408996754824511868057366201281046085422904592200523870252470575402337208111039529848882881585542445786723359254056543261674498531484439434326031017124410747530762029551653432867983209371057876407526564648506638604843091715803702403797505706147610805115529780439257616424661284165315437505077436352161573960710280069776321936394948176377438955240326983436450426595289788657462181896626671326327894382741916385690532353749409734558464483826187845029170004665299344141199899262495284884620932865908886007229077779354075467391138317658191808971433963947978694858163073622091635853328480760880341543697851625373709137637028201089061163536283653873065996056793856173653137859206537150302238799772331104648290676503002548205730515432003336376647704123200106068548153785975693227666454097886879382781676414076691231218827267909354217672827604400334848794862200351879612140390683987747597884099377939341709156041379209761966273283318042995101950646766320516748954871725487805525146290788537124789105309965950469807225495029270108343165124270584944836087170310824735664226334981211228016959452174413801702805937715331452964951592989199279725658045695504244454990176774533573339319999561450549964779510737531680891295801591367540438534449279038085611596965027740200437994166689172862849557057901921287769435342354775569600197759698041217482268807756247145158146570177562675194714316902644825695828187552582178815538173258992621235102429895646675444333454546258103583157540755235618380094289971470260171080333088354695993342772896889935350831926359460408393369076548631040664089414512511467719468294499633168884892000163176381477941639861973666739557183045285144416895187788545649781639099337087411676960151444386253491449375971767933500403547507737631805652449048723565891216944397557237508248265714834594161683030553850942362105548706795877191496988658773828085423162089786467945376089211973098947880641064373137426461539420553591246764026470263870522547348824750197619244953251809232255810668895904316281196033013996513778879457554401248077593084119415646684146620752270736539616749656624424398982113567176544068265718916519847249116540449982235922751812666057012513159988628383156083217238902822088821742731434152683533308001883054697651293197740676117740638758165758768007412046571815570969593226128122414318935189926304451073401887825672493639704046209607756851528691353060532483969652453648110049293927130230594784979377480028592013655207172673633576472628421593005614477613054479165327441118254769071134655244316361234581432010537800866351089028350199217156511522015566430217907178990101481700506381694439431323591812696258167141689969929002832017953842292770970242126624465806805626952372899265602501328347822463155151906876650371458010384955233176210442336223050542627143547212902893650276588621509505888886203751450674747982379621039021238695828508244137278552486005512207480586485451359875292386881856184738366594851837894047391699147548529080634881637169269737404610947813502388262469132884511828888002942071837325421930757003703106920293513069475800189024771017379864644501789299913749581692986603935855464667092236584036542493139213014050443106049827909736843771808716325784131124404246965859011923970961978490857773203979716432431143278964413002624398919882471729487914638170402202332902333181182153182236698031575024617889817879724992234236417743724903656097264094601938274253550399306318650525987835601863312604842024063420036416822198747623271903281318725453561684303067537481182913652786021503957484828132076087584546848239023339728562943070546373108945416245701496092375555647236022718105091073523166787245654842927818183937590462288248803756657278010621705534513398490606988726991720383119252202075328546003405580000735034022418855627858812377594147381422541721870785147638607456097332838932251496833789215493689375465255885820021557014192004335241562940922938298858392366165523200604455627759277824248502806020112392073943415919062159685530411667774686827631024169072123777790224420705760708664306242929439200510871383423526307130712448291913850439271016994201548493117070179056899125762783152092481365619686168315263442853625294174090957504803034946503261645354425385719243503904768236109328725837599908862257687629064174953554364662473004836016446071691764545005747154747929273565808220748549193490987611447805934150656716362874649787233993367386059979267180360298609828846921388648393369522710230979231759410038899696779362339131525167016746493764113230992556846459639555871964193782648823819112170726201391657666724714146655858219921567667069129688560549775148500499396428359079956283159016570326810207011843395720200709116241509264990985078078725157056684777634224337752407744123104017167758979805160723161537722377986713101833330001631610291950162947105076782532085020346756500180063696600741480422599335127173111622059142496046557547019882755725296759951639915116904613622657763291490671908505205730712843744427100867064359187742038212826080006411543115591816121393027732691341405384742726347140977383849622701270067329555990991581330094849407307789000911224606866509746150332790837499610591880376824097957784483938605628174310807953374107833887458401984019459197544763416118516817777819824528598936622569587958205992182752080612120549123744634251091943566964593454159212091061578438898010292040368495119012998475335378671103178764360764117503791895885657196621453075529994088068618548308642143498197244023375593979900869399552962925251311910631446037706831563038317632588857505018869727442287209988742006049488433259518722617867451797648970071243082783063362850033928272046808924659852192745063586623026367653756708006890155368895532803531649334627083015977318925012167107886211135124560816155574683188828238235330406465499211721495954676822973555221429287675117053814288774626363905707104131871187720470641078439089954274942437191576462063651714195479695739509772122197662926510154040793899257805095263502415146875040186971625556119238277037249507045098876615549033583378822006919149090367322190818358157842525910702317260273436504564247675556437154321063055945711280967967368745786833892981401286422947090624524123121446464207377251167399301340489425804525104838664837577507614598254802233546930120090505193880016530193340957108163056152204630461895908662256884139205300049998157574785768181049545426342988586147334512915803494933755799776714478514079377390818851485226475254370593410252023742205259383946858154558581340639033369361773809973766534311182199056842436529664684767977859697693402416728846513642432507815427026547821437223138331854822718997535441729757239334323798114083623873819510001826460052345467734681027759005568005509902050321291338406617439996945707409752772048202636811253937711562776269613668473329166001087824941499465085410037950352151610602757919816179930566527813739162113826376213376787772836851723618404694323977153138010896654334620687008770970774497122202466700277244976035781547612375052743584009515723240266918701761172512644977857555276303895274149774649461362550154895493931098588472327443526184721322311213338253216710044045297382767529412902463142592091955126886702290640903543707006380192852857155150699838145759164798510509487728683287561905700845464768867379008385416512935056762296406510493933144849936494186666316928954840464857797444077983089439178548682679235007498033346442043347641157757600834677516405487835818265609790470678733092427517270281909071155071752969585075314646293450735029275780377365082578840803199260201788412346833638622783886449823792951492564390742027385079608537804984459660535495325179203018817062514917884298452430648212253055683486756604488054932729635788438958318243188184107013298976451213047600395014275316273110763458015343114414463161100920219256077432317378867743858724516629891681727797765974701394836342718781912741340153051908980914440974008235204231758000576473050324570306464135413158740480887925236839315455836382300640436713241641333471337944822903321879755468322914580040183402211868883433421021519148896062619463501062678187563115686904702133593749722761235550013187394639597601368366743605169696492751814246920134153636923444888726026237988072331717859542833828029901140605586242599758488514219671727576003280010662992464694075858756678343570858076423448989806988910764438278696609059363714761752004728856346239102266752132443322662502582564613142451210874662174104557951146763232440523130537516114540263312939536095961625520973792466473033107433828672741332861407025852013579390077355895210881303130376815258021719502121468473540116353524587507033538083760108824920876639960208663125061073833571936128563733592052319843375937967093526792257864610486150060054647357756246557391619264066644801796756138008575442379237892912565923052546443703964939200175687256861065560551977637177551583286536948472838093655716999136193581526350302436327704209116473979190881254770793138309581933888738835083554562530157671477510749110541268357619321762293330251905213328191615534362406314827175417280828408970561425731063342700538392151802507873513066295225718946643480916952173704220561993376405467517400517875531464328945071378416355302297105905361516706298680426529528334814027294592858900528467156129411880739652433599415479605720459511029527581211239230727874538840820107424278600773514205381440916055972808711218781347486311046937033031529694076649663863318818088327529728288282151848147787670658344445699860827783615304897190697673413708697069257078210480761278700770317857639966938923780410929058640916905751783307914567178426355223296485667175690532236028696140294899003638691203820443041787366110909977648522073571639260838996902584752487753417076391041956590129670061552613246162040617107689794743915357634738431234861838907554763899132771112594089174752455979880297287192745228318871791712857207422239032381731171176266527678962456403733376723550587839029392424196548161439304469349906110418409655726436072964054296904561327898979816217596378947205188198747524259336381258926862546293127503925910648852536026628502750309792784514665156356763575477045560598752911350153730232937722697454945856866852306302184511858069812044321033268259106996126759387064588856663575873682371913317551289181903965394357579571380789450072747947400937441534264840766131829108800236600656928692729290388939493324806626972705176041756088745869309997835390365208275393968958183600413275021438074726232345405338780668224866758263245194555761857678454493886663446537459956448827704447566211148524320538370457798374502079302139478042651421759109499241408232711672699743603985478527547027866503841236856186552164352675122872403923208253810573463766084953536720901498202045631246806504683899870543754435061844653442242650098607914305012573905160743080009621787237551858103746751563255821401953107449063305940895837447199284608816861300805578530414571484102259310117223583414641965188888365696132524826425095653736833477062152883829708643086646272015227067797815396606292118128974275729688780967509066838851590942536876999421930605194340125413061855928484404936863497823010483160361807352669887809948449786391939308273113605911754021948544218223102209535117349977244135508781266696138294740630066059143926505615371174869054838788406208291125861286682590478832998808713608008908801209137320409133379268037269452748058586535301176932626091519354474758331265913437975147566991059519428490347698063596370238003947357244622429384928599251707228422596471983254539979438849069211439888599073680231728498077046397628298161149859597949401434537711686601170648644764837504716085316919847614245629164108914205714373431239817695886250677886335740082459942299304355114825568942865573977160088173303356446168678724913744146639483959417618992609559999508242434913364033001448629180549203591479338296101344013081150403939770255447841269938277160406922026806368433935916468797278809409987802111518316954410077497772681701738149149995887506340891430710212099326884741750382353705266567107681380478297509347647960268200507085052003412321356283428942450424342616342615665179034768301549107347129376626731548045617713767229266379569934197916589473153126585114197276203514916270001510037778512496818694635152212026386880552440029876933595635934747501153388790310701055876410573613776677491845346457627355862048683713409017149303189431380448626484995225288942111251080974481238509872221924313050538271566455843302245512826376311988987301918221145919976008589230831319601939180537643472062724379946051737894441006112943562283703386681704316139091294457869640425126069172810423340225373803666640854329870471930143929249666411175850765913283183504395539215492787502064188493378943747766617263455425507650390580920018055783636471804452769116398569150118518522489599136253325568607067558911186819488377317836112676412633183161298150340979558081364213271984484768929258801661879772024449221619408755119632396189996126981175533986529441882004405940007212688362792909585943552676103676170131744413551068436913748600279945402708711846741760596514848045751461698935180027832197700919304114472190473941780679968674520391817480284039076263709132300648712195988276568309011225700842111977976546566786636815362381531542743722977661044918924860432597388690041900381209618978790917815676749331692209738971186235816772035407359061997233288771790946010507795723402085172194494720561393038399613071872650782338252140893270647640920900841631230170279733661345729604077401386825896882238195001149494394699534482442547819030636661696516576491156607560605388819292838117256991080313080018918809626817337087103836690364972156153232523005067959218263570203871077120374176812847281373200905925042074316950111383707312318133968432779573069534024014636630893857693467042788546839000156244448587528923990514187698288488708605586266976189595634126649032852171436938397749809627486997587418519976175573486381896358090927641311070328003603869550892826345924329552644313659781532033092247539906214961613481791438801680826785849805416800718394926640469016315157465268070252015601169387379059813854458494546672968003353412729740305774210607251333181270048825835280083326199579233231252116807881392006020266118500400991678687743033452265143935462543165740337346589296002887909932894768713294602071111698423519922513647242475449879560602303635140807122385507228947144047379255442365284838784483001112162997244211305170584855325690497768202763245236789602997925415456243402714576342042571961362890198647233130877677242263589240316889268385272849931694894156239315953370707300542273385569474574956038637804935765356284927775588493350908124696352124734102090356179625529048987241208756329396362914679556412230407744259983873530635049222180884820367396614500642526281224203660623073695770490901714361584285737347922657120286471746665568936831119005484391005588268646630521982150632383196223677706132094475413287014566675918091448701984780874480952260407803610571949262775756396481056608555146534043076958222018776208539991946667497049716522432495512043656753517792296086814586458498461721962644114959339647323873292270627834717324191375982241017279132456555196496399019889341193807616401622811995097349417058137968751923726107027169427319102332017563585780266532713948450769079611097740871216272254827002731388252195432539181117952519145271680306934254537994321178357889035214577100218108776353660897083046344655077818024170844147306452243730257744090921457921398202926900212862140797151576404779888083860571204349676098524305060683059752307274672497453582117085125183778583802305097241221292318807912177091160717425930773178892320628360642765516560290608830514992937142997105796688075528768436812036479814156383201119112696391464130918935713179272172640998173776872793309539693942676503751166133066915737539801632701575886778189153069094707625720582502025263058256348696508116832681551453548461929337086305864249804436226092994643471673603410388115159132139287022867257168429583311604466694137894168778088766566106148832938063770962758163303122946696294264260849223117773926115535609215019344760892046460783797694264829195361826002030981703943645391539789386419952155863052634066641408071113897503555088682316511420000331958728413459071682939400841799251387323632756595023168135096055084390420698728457729456504014907082862701251492334205469723075929965298609032360855672281403863869745370474331759572414367861113203214112733436721298544301207260451560394632675773889750073261500910117324709308407190185656504406455851850607288562101359619972497728779625212342686916050939992330836150082352215663758599240838395330447667989366030794450817180320552779492436190417800974377787238847174192802410910207834278788577881706920230144679364838589836218381436912311454823026083229245185366548294214558450587238416343053022153163853013625596472403259651483365896211640343945169242420525184628599063341089799664938035138224599074016013774080166407695700545798102239843112299823028973433179888136486811981093586127372912844685723120210787771857244223309228180105937818966040153633515379071443442526529459684494596123598311859015505753128599918367599525887554774750673374172272376072668451377878416421529703893182519096073892224134379610260189969886038643019349162506473551704981138717544784427508231626177074884747269618444557923362927736084443299904800509491424452637268114250850645601578708483992610877344545452171240962224837729500483827570138400168027443328348354134908452265567424750383456134992604875811664434918030705270976171023723988016072096658021715519392831561460867862958273761335409732391421558049999089273498988226904902568697560084860196828125962521768145403921580363389578008260078941734354818915431466562727899817571458348613665307807652959530693515141677724671611397188003887327173366686277553167677816819564474110591674425463403603662346407124102219068111231039906028281701847912895822222066440385775251738908362791685647573151026020406706055319875658948061714787086357976130541729544673483364470742412021789775814708637608144063267361900183685679934431281542477354254427731781825935621916568194045541000003043715316937237761377921122094422887830672448780485340076837554303463072633337314823996674610586023728344821627040773782155148537914131924228245472827344835982983203779811839539876766175250013259235550737869961040218555394214896756544753480356692849467149967942441219463753250016456220874321582612312511493862289114422257324417518255552411839606115758301606342375609927765224581407546892172882400409839974206669241749983788273089020300949401510986995516111422816940504143842005020551718605939532330581714971826408229630567594024271440270663027227827152855626317882943653484754473936760208538775146067156199262336174860271690599571635736797146665764482511014554119189085392262317188049649727396676991210443512715169536994277884138337171667479995342737238150419142496136793209472370259717048569568823744324675837190433836286408109752045093018214227145067692997552003099956666046042814496195365299339700483352942095906502317564201080309461517465481218874583001732788900291236877288849464550356912304202041002557473753080294409112390876856682906003731560020628090608324286896793637033931025958019776444709638767823801125578347161004104530614087440300458828072842041398347061640170033243754827994284292653419495280657928567227750337485113961052479007563489513873020694530687092355922654381753370586000287730779800498682078290688617546980787827754657702195640732577955985788589845877237985070199779867917197600281456305987471209975741489174588194184250146376597908054320338019165591430917412392976287294206254597151164276329705961698583275339019193622053246363040424218737901436928429890767159977536742562607638891536247913015145501379622260083295935510136370720909345882077251074008174523986890105308254406683232324226567808463270402415078991288391825152819822414436811348372769084838651994712709823452858792427918350610545638928705394845337241720333881492930319091252484543236005655458287622188421557436110578061220563421940929131261872784354726893840786174141742535401797116792715542997047079569623262752271963491155624988529441856783088409066695825374801243803929018488447152499782273106526865204433956130934390632193880659896591078106644021066667451878043322017251531483788802855932341928703048657561293238073127186745688174941411223558987601763331320192217219761700939659764810897254071846006646344744948400790184074138584974369212973085312199594588139459727683889787036594038864346814133665388130069296805919755947982050529246012803267378546582500127637485403791897035346889762555419862203005474925340870068932295594016850331615943064051780715123827811675994608965253401372757977367690193900363058177360317579028838687596019922370027613376288384639802384938075267636905580108485155070082726623738623483924515976676281770305107278114357806819065597469945129322980030266168773145255998881708914336844134842884871699219443619970677474122429670572134540552640828652208465090194872701786499065114253955607253533547499757003403396344854163866401119348151077345511772673301894029467459544906073840095565303815527539685027380202165208146760064011011852945663942567651621782400175082806241923480451722985566725951645963138562701060366734675218378725653882659072691581924877294827758370001571344734169483548191699628787843727677431516697079557697170283930921087871198335886408596027916318230158367748684967171118032624158115046659881867409679595049031180700181826657584849092940740079606824647320707773797997952112802033765972777447722709148476042956748484265764434206375523294318318536204164474980766005063574362137072439039337474722683627577937095097197743510859281248920319693573722704028986800150816132121803665997651987132989549176701828878220645150163778231654329226870887122737395015034051019782928187705175833178604000764832044940321659056178135722998672972169121874175719210397094848600316221606397693434399270074834127886714790811395402587399918197342510031235524350786309728315104042327210990202227298451453923730354753746809013222844727470154689649805012760749125506316955823316496165199896994546844166448965831706165092712561181398296599076526366743942476332990504550169510145334561835136828410752855990137478016785197579194545047218442303548650812949925659779354878339182287488814837695312511711136679607069827395540567973399554512934180623425737547284333122728461693976879259917121386296374961358609325857056703634614694778880360291402811405402251529199896450180384542866778532669640951794070092666958387244413075007441305716969624235120740623188890194678061020577201639408281913953166691588230702970562790505201039422991596764336867625166805873559735147454091311216921042087435720979432299338724310354740009593008496844570014890917180112133270814245017285876083946508556920591005990640924577599629971648761689009095840371164196218178063298948917476674108287328618774458656140930526158525873929987143215577110725046828336807506240501258133845506904099001815226867141127438299156873179961431374841917341297852487494168950322069580540596985751776279763768776477602075983590626344873377372315126738508442992278721840687338103556777939057426891879485913215673324336372984048516129061882258085826763274528541448037185036100406904527057601164732404179302194498398632570738657007690527692239794339087796828115152011645797496244367899555501653637533743385384924500945519476595348546741499896464488411566210923397686141999927808036670873237767032036443217723764772298937479823045812342908495026895797541901591154029956461906094292865445231065348205565090199121491673902151722469752739205567401390018484873034288697390883788051531305152408608881059140223024477883417948905166103805868330008619274152215151067621778718983579146946106410365529012557457937370935663180938403706347249127172434105510184833842684448960694586300354311017332578931601064234708693058403223039163368375565780615014023246890587632036447282589105950951307329173399779321840965992998011048231111734521672580240960308264592383125666641795572932007609377728998104984751037634183632323268784834587632008378139395073629331215981872600409957915940443266342943072175510644317414924369488135093399899733066887277788121042687765621557044708511336583820407627668679534168129440812332759382302709269091212235549561768066967583805181282365627902122781987919576982538365988032543257585865749944361561348832760650569951650867613632504099318401489608560111916654757713732988518374838503251766249257133273366931454228401485674637054064660681175638810984396064196354922008496244673430180599796028226873392108942684724112125164570124020267986530371531970648718304608823807073965538288399327518380970243669548323295893497650490446788501726862496606205423463621450732292811763449173676846373823752771865522974869093087717318117101750089036238695617789811707411032858516657929123766654610930351501780008011058836213287620247786674266954438699201644567673921376571883220662796322920031302375376934197707979240889456112269772913992112974100045648001757345618024952959673983199940920309400322573020072040008647806711790187110972827191611734083835201326912273821393377747854417144433386483984724723742506858182171504474476974940944471016316222755066442366147291424311483726155964265718827100977157027015629904840875466351488207224332702959882267300933449548283802570789867171264034691066929140969753898718102073652815408838091127979552308445875508379767677239290307512966591121830783197154932054277836470220202674366557232411084798848685564161237317565046587433135684604796846196985996633677218063754028313008056333347252516466822183207158454382691897171042349468685508403965229080132704523458001139291176445081090188607510817744081831707565416385530032209242079908392688963293383541407398083213383388126355420033991572863815930472740796920764660373879401234571090728465859457350024565702925493514565513924090945781512456863816021026728728623652272444342435441402024150111946360997878397865522991051922034244257936870414076042914420317568241386579114721424625401564676491217000439875081459645783114046825274091592860057222538216689585017840034664653359855514254649021882399899792912517611185695836085667116604696104233667512490180928983313789319368944047763788710787389991507812650776928316179250484683993986228574959322024760411102241152855764532056148729431523558938567973084277858095733965190801285696907074502819452299112903295877094591560190986244720152451801313856097357351557776362399268951686627901209479259769723995326701332146112752578597678744379292198678050889422400491729780713178992404049426396710378827101157775987166730862667536189087818618924628567114950205266265241718328765522497670964541412354941797226850769297217243819066280170909114101010256151810693259060056347516671968014281309442173127391063565326574840388803648561229233422114053065189614795521309447912873216217730487557987935191870625472856893744435448967303193960418182281559747133450515421099974302850328884821034744657482566875287023937226994115092052544222796048251863085648729602527925899461826976295627610186512702757695283716463602135753300950994446128839343300726845954849544339445144609662902419087337547367558052751340206373902751384144901408177104040125898101327001312585611239210877770624569612967489791535857999006369419779392543434009536620970721245178737017073563496474363248090397722735676632417233827374094512160261650850295811261380055781618368307370212655089343434088422619208149197655626596666791814351481983410695622714950241425348615588980637790881276327197509096338283564212921699372783553450264849179187932708415865107052250678336365718545423471550204159905586614182757100273060585704479126187035143243785854914363595381884249409303485579223130121370963210415585035982764641956194976747947178981241430445166266771486469895250287332062692145859819310587367101906297309229225503498124075627736293902497813517664962737001835162381215289853433826369485404917224924490958279185514746483112154904189459540894244936425790312692063681769677062677575837534383465275716966505313192657511792630074649128367773971862220158683040058765098620615044561722833912340017480783669221012354850503891868920463716193036635177503734226063725548385625864681199494550862296364732499255963934744609671077106946669962279552524323363939812059602198780547968888259166450136396284917519246613366863165518235478170035234765103254939906194633592703326397831973599846580251699851083564266633898180608939217465952392841810047135284052887590634434370451326437580601259709963071578703100925011515082363451299490907901332190299305367890607192756516186325559940353973967940509881177492750407714708721727978140153468467791192077160265397298771921888834780821547809249703644736210110916650141860924858215461797437997898675359819049831442658643569806064411994072528987610053955314201523158339694157563286661438050791180255716329204758319467954618739610483432835549424334311009991401527932162582032753191992262007278940740871139282085220363212065317699724857707347727189876282061123126976945125092867333446868063551108407506860130002820184076626597514048511558614682948941604924561568810319337202914498010035494682293527231491151610460024200392547365156784681496654261843553630195006985996491841965560369031421738180552141529076527665872549302948897893125848152566180581875471867371149826066370662902527015600445485511695400371191137885994017731289145543771877092850890627867258961095365308479131921036377956024548152954621929019549008813960465471060488782314274424688088622886208525077078434670187352194450973386945535530081936893533611250249987067406984616181690152006218906843051892497816059329229450799180761917776708130620946395778099001245150356409490665963763050905465969113277158511077980690849875199946780334812549064866001188816582109892397374528747134773291836585874496704776349429560660250948927113395645545483184644384530804034139528327148864687952003682010970274893032904448153965191530774692111088465437138409795411798213460532920288867768890368629518319276621191404321928636174323110249298531140439723239899310473884948569172020075684878697251604456582138966971820555012695933918663561674020299904794033902946201827353955886996069561503746987840817043792366980285962132118094450929267237082158360324269353089449506226971561308642719987984837900421009180334478308121980345375331096199130927347908697360560141347441309949082314746493266200870564086530763995793405671845289121459754125149478089130463535190907342180151471791453034210959195889091120376478573389474275354411978789184965334452492631002298299754192790448561398048237236766712271798712891500924419838234494079292218583962075955965569743330737376693091737640384441365049395635721402705867388936961699193992046618763856368526686746882631929272862864809581017742507249065536885177987875531468283280759725715584556073269234090206623703680209717354417322389828169040647802908410607718949694545712977627003431975084997831882349336399340179808467952548675978244679705548658444614256531835947318330972734841052861007114065430853947102871955012585092091057904307316648624051815048483536913609673238180856429514379834332039323150241754251779370698979992335083419974739483458200497886605774526211597173451996280692442134827555248023967934913566559477602626455296205708857033733906685839717242001892625724473627077894931032082375009063623959832850167789081754217153122807797527828771265511678158228209386996068477905011277534858250340177884674835880947814618291896946675860288781087460794451178192515772390739234711594046053002472450245274903799853799176135422996569249288126561945769499185862624593923471543196491273645121757419983751406752740693768708112263935758872446428941695336016840720671896753131717978126641537452208603650244943602118990481823394515021921921047713886518959357077303086442548137011270059652515334119351297976238324917263552817019497945117973607119509728900194610331225103352780231460701370300470710982124167216928480463239481806433328795969524058821060962082527629329778422072034957256314108912612640273428118420176198508493208257901978469023281945112531670621051347863162407100088011089512432721029518757728316319339479720142320365533377548285612366018491866716319040268101112464196385556998211404619156098299990231083250186776385521751621528719591736908650437829437616114270770354024297442109567561675509512728134576121468225964626509952700994423404593021924016248037746474291849180586544251728646666071398579755196765163840472327503707034748686388207753069375542660922174212835592646986238917700574277762808207975527319909679906288736157306581738353828234314478062866487131718178478076936829132634756880068133625702750703492393889745076444105922640622994036821128183612275746828244790121152298315888275450925156780693069723657871954871989333197734363860359344661591983337262239808258945826538803574766211966902569278979783256477995977930164945568467668571101612598327343374147425634389576456417951272149032938523908246369856112330757796457703843778459632939506358105480267795220605645308601177774184377718423539782653403654519736002455008715855254078582052890227202485586867717679184761546990154383290036787048368058209708157598624394677936248593457783238846843731106151257172632644887971015943221064389139213151882321347412309365804099354480723685786412379840445268340918330993646712979925268139823248126450029237647041072006163967670598071211582566202258930377208851491815877410789245568267894375558357657722331020889498975006210420311855632892288295676359302573282428962154218601922886817864836231122811960307508157162951870187113228189382518980005968731395897324478024080992686132041213909563895392649334258633723549596024024469379064350393529937200813710192504383398969697902353157548344963557872945086161680402477697549096853278534155561373866686943182140555505268707846338914059968297643414504716613956685867765991811403034060066843848610307275306959032796670259381768597014805886083535626327802620754526683741290778354680385514494012616404069613268502458909799503175359895715999321848324340559776071624649858386716086719210067459652209140186168497259429704063862022442051983715178461437201996710276778731533818502946069330748939740439348458007353752047137976280481347219446558654902505391816414159157659306215591531878458211332119188390818105596371524232781392259628144730328964742500439382615823641075281295528292184489009791649690311090051827316954532705831969818370356353516252865100344994994381724958096306344858912297414374221194318174065543101948196706233810197403907865802140007214112382128574620170669458552949471447758037596131260359009929917931926785028413524642947633984240551772475268529739904270743067227876272631598736493455314939364290617698363777755457089427042747267463460921313325025408279865577319939461685879575236799853503014278880543157133547085318037568645175619620081389097739475017423294553800021495790934019270830699897092229518992971101012779036931552333858224329240283572081858444039080775696539273243605401808781060532359123374401995064425308196120445161231838727521577724943386054926119008982339007103004582223419339560758273205943697945638713050880225437211878564303903236739701192584617403693543770235335380084382184675628951154032511612294971887581143901898895802984292770277852081961580439394240777972766184801911863344199735053086803211640140339378491179720287386480247188183744598865911976986142383193285705742063954258466993128190552701856633527101822497856485899866528512532292800642089540608188608212420095799677534541843009510531507071026389001045366761561897867677562792013839317339799726822295209018242411590309342799956687219049697914174287014230892937531102578903898066697713766485267864546526907104878185759639584886051189250759722149050641036527744948483431635145282174558866261107283921372473783184226430592429975304607985746875582670896438550576877850716172171532120917230848820926591792664418336287810252915517560961478735513737039212658195382684551523636191131163427279032150381959454253808329026782255340852297505937881623475179340605629313163570695326120062126469155006496105270911939371911404147472171145308641126764909864420692748125523013474730819395862971109091058302654134718406453616313885737312285441504810445012792388944262523162556341159634474739771606876502008457614659490757565776644530591084283133059073132082234125426219884166485508479713769678216749532760435274871474816266059992627058858907375419774717282103469322739707364959686280627720004754686986651899510879801221782015424736089010539115144940408801368485689362950867896951154955051523098659590107400385976713283363547148694008749226160620556057167308725790144978684513650665825311019462600543068021171194048898976834123277815776427907101456868882611334986916304257454336671986013464857579302687516100435054371416632560028251561572677105225412266726972915852698300636685090573998257555554753121094018002907208786291845671006612317443856146294563863201770335716467771912787814918323079669902563332837636350868773911552587689996212182870732639087424189861633518032016742261915024929059826247951080333722405330739354043166941561890221221231884723982865460839283882620497286526545000815467531391960400475414040169566398474373492757226854419133647685307957615221356545987494291920455564323243631778094986452522144869030563098584976158915855015635539186046240998234090863546902352612777032131425986364413679616219399042487682700438165481001069134266842919966737203150343991292307746226427636798982539377065145086380238754549826649738642108717455089553554049092887304512128856223823983031992043371807709213906767364696042407348266686753443277833486029688592846870564213234520434788444875747294320470476825051110643675348372997066290403986733525909599304690233374140284399382716099313138777057311838862461105536994725282163273998386280333440596106102261706927312921775029859874873330044589954750653332192756773288914970426361722723204525974930338600788393803274966682975899317361794601242099264779088238983222995385454682171137144474806501095726437005977791412690471905538478109589175507170830477711267226780846990834879644056803230053266945480688039216516796679513409342941221084960077018915605526781537265306200605402602689887973799177187171222037371767955907905658279166883813139443237236197521189540912900827928270306413709539896555419747883563200235320792075541982098251431385760796902666192601565629854749466572880301390983540218256135130263138407126605081985641461724120037477477365785185965254334928314809096889038752648165795890313677664451943222228126033204516742012324582907685993597575537074895665662559160850633699781110002014129189366944528751533906552568419771155306956738028500280337696666901866455117220639570104538775161256544025720993970398985824817058121836810096164104764906579174046049400814940742744630085109817726581924173835080019898270230898957718937819656379574189705343023855327623351142024693766125584759261816855161172314013247038335593615330416284710449487327435356289201681052130046796704889289413201154098240032997706912523093856843809833008661750932420068951542587526583159333319257219968117339413188985426393323048851542556844246927859816305994965310226726040061721652060429732090550993457433398845860761728187727698568428726376341682322509370230020307475050443623101238059964504284788722631095084783098124280464734363833050787237036449677962892502962363577100579991154169939660152092824334457365095710443279586017550969697628908989001400929677878377431042597380449210027288019209807089144497274478134472074171869468739394027246440431635691598593979917763095271501120115778779705044397269129530274201297338557621436742495282159531415757885836734446656343230569365656239750330303799759656659184368533473222269705976181612056420998581384569598135617610228728007396361925023455316562647010364373139518057828954776960851101157627775698695451998321114480317602251200122594500801569280564602147321753833993449661997337127921668328860843449429596154884076178867267837069731898399520310392008484183577250126523261833611568978191148323210636771465407761500504560101816940370048963137324698444971802974410699199579112231506501389595471925276105490274543631894790909241010288467782002060582039274773656624976010066532991967200932529438778046220231327551919022797314272085824107936155742209050245412921948952999964639160463531664178888949375757548136704544856279898565711727606291999694928328928819639334808254336050946171325022023986606804128259934822637779588608523679951872659686169314830481287584856575348558250693734115975001884522546846383895878703084192265214252929353148209841004726657026656230941508769188311443951290077835869253527815294096334696225673802471998088904451666839055930303338102831761382401964134656632225195598650177474559652678119925312878530173752457984677142873166029794979601200247503955450137403131508876336995760091839709470159930288856088359532789599363020642142157811746011129313411634356475855897702395945606998363712400813595014929126040633771518705018781748765228938959652750611035298081797856438667466630262175829211771536286181096379121047625792002842390478467047926630860441478285564069754771378379831989671763550484377023896224637029914041691875226525383901279051108713572940457460445329772917255838280197199828135490268480148397377211862098281171244282520725229845460328337376965559928469686506432898326247199658837374056390764444760037089648522053774143498595449639161757899174147651017035898880157768745271921792082116096626789831693664616380924408337702146843747422874247261362582724008412678239206725062520455018149484442811430734795699042096367462535848626576742281236093359428724182313740428202049208790331694419162569267085989606236850210902714862035440672114566589108079251139017439404362313470501947928662916666243578188425464220423184163541932630907180200519317975199817540406058888708828847503209804643309984593783826331758994727072542579299992627173341556607436805448840688285912984009402157464520110500465437237487255176302801634868512435109512824699182218336309384716687618340531842428256049305219005341086088126231941393267952962587568158542490553277259099775435217447946070222280308010717279416069475353031656913587898073384354764975823951380098228526613248244727651358410243359044497050056844037883152640898216851738402561471681184626154592275166740606879518433298988886430817113590750934016503801091127491914715818839423914352394163239887219555907762417843491693593861700448386393201276135400273921666404349879533418771972705779368016639815424224774973326175702622038468311705447755623773036415752327647959214594520188071017177396493073743384483485304703096681349724806815174571956506374577039156650632390311203388391723241108269564889204217886312438495229036524910349749502869829637614673484709392182237431555522914036431405536369911223484359695881639940066797971344331339065159113790990918467916633839387484740195591338039909740750466932331705704054940700383442769777450330188838894896799801278606810753885016664989918108097734197189678681230969054439380446792068578405428828380274979583736795478164100739001200784106329549995694848468847233786591451495668667269088651914032289564974889027246923044043981476348968663486428254491374039707796602233115750813280968825278326935530930404018977242226928475596012284570095195240025585934949618920053989491310235220723669641649465164288311688426187741266422369367760741615097714698971540453572036524162784035677480815170577742158702762921252776820898618448636612673733834530179204432112337987426062513318776428716106679334843385330448634256098595017189093965361842891319130303260263225178208005486705575601657430667827328814330163944556489625025504014097177342154705938379938028134610902699288281835643093941582614440635774812044459069639178871072273388549370598682216972155050901149021363657443618478736339256808783665799894755129708310134324162241973496761511572885734957061926168067850746996801905913362179959970654427918496251324037361973052815971157765188664729340700026018304201454642998627719569357795753538189333156412309246941999345991936550368292474166166884883822774532932968882975437715418048409268228600616892469568386756578798940810085923590038979188513257330744356680596973646865318343278450303113302959501563623955431391093337253501518458139737642143387299937526427319940263137559520767179842941673276483073681232539734965693270685206979734267792159079683414525391103405940667271486045328019235420286707070936167838265376792959418228366840681398826093124601177871441334694134018399791022207981822132574817227396085289817169313768761726099023673084332175600991193337778418759137923133163624175834348992743845540078357855843924421138618854899173051776264181380515548945551923076974798784541105393312008907608716858849597901786222916504640856202801598119689104346389137476343607014742702658293241371094764463473212181629634420363807991560712132143620703873978236731135850959805164105683380239728594355408916753874488287156408945640255503505036860503579836412330896181922336631722177295311612393084646515318313736343974233198255320032865522506625683741522788328763844417498361691380831021423076646642328115032054425716531644026145123581585775451629589090030050349521608156907067122439238694369007422604777585069984927096728319051334337123518488954283860818248451449001723657059832689748449357604073321468657193443964871857068647831925104864803109838256480584699988880273463225881117039377903949733112518520725814850839238970352416154044731808555649358709964131271465364627446460615551002933250794727493283945037779373632260083697881756341767258177383856343696400144827140017827078537143631989767494710772697923944496610266004643407166952542063828632532121955945049364009277965793904838668772542086493308512562340572675051598661223632221826969308627329370331965497008865242867074760423074986596613744300278148469427438763486906715586737075097417969645044131114966341743414690948758510731437564470877800810643003726495196729480331464937910310291202299672483101497877195203495245370689962137531990085697886055772555223217656107735075456450421615487576046148046964942139886117937657778248639948740899860640012209293655866257964653507848513948879975140730138904271291133854656748704868036795898914410015635479773022522376379746809604164173374134442980582653839770338119913921324109508765926473310805221253865014440907875772499836323257388687923195054707269704072065598774419775190864315314819103998947232554874960486764641679885181270459330921939898516058251966158763619029002558330791531040101645269400055554283004277915905624343069660010709010861382759667582554805197808079470201531797115542730139164347293490059681661046518493538021434615460052830198793236750758736337984000625616159193101604769559516462849118276574110855674648449881664135602887473052988523175963662219185819265639198504765034816629261784336536017680369476509380949915034524538655715150228477041337519925521530820544758554742734416836422327098386804887649140496186567212316881616207355423599966692144526563621244291427848237320881056113607157482779313818741852883132594316010654262627369695146966319261783922746219174005520370667176462222776529618121522196948199738287287388287991189652097108547812521822063440463425050639670551845388226192055818013777853686548010453726080562083375409688662524842887406152268229474998306567929688412197910027377895959884906743112308902993490882034734827883865640900741068665455244833335470187351257754638937625507823840994082229864330708654386116490261414498913714517678637945329935152718182103227546153131185783175586005477666833858574065426539460451416148273660354696831271354568434812711049501478177022901239434327379821781218617115373947784012148584373723945730884956132075802808201738823859562952188074507856647520869943588262048902734801911271062652205705222331639776952518085393479184202077030328084293551420702481880539387336241501078938050703273992881404439985285222662859511435483311161951642671676664847737647854484923444952353518332303314966352186931965956668243941573300438834751387686498681429770819831438269198032249383044927650006725205460923395417068186651870369832644105139023242804657746075818012734927528149352319164720700376035674863270850407178172225648708882986698287947614891173414578663803600742415106226347557631387018347269963821334746531166598026925367663008000130933747730443342105374098157604069405376727321773472983061191369414582152823146870607307814300669993390410676885966636593261264344046428472815767298098043440172190336773806259644714784987055407655764272747934280904247460102831888301753037807965986643608384836786156779412743035842536701284076208639469125845487929764101918080059442952342391095369245482973901806102248657099110877336626225040833181928943964585091991173405438181331016897912288439234370679353158823138228476275874038480481164563797634475967034258652398756926503253087812065462870016682509529240032191887940055765619331564194625121236513117410303529571229885426249093008225882700223898381762105078622810116793592514681795394257851983933532505358694987222122295309575620794424948814366266157447569800097435582826996035922200691368236261462172749854671894320174653751314011250464486557498776766961617822869503243950612604302383204533751102953545918468083341518537705574692732655603955446114272619726208573756885594091592596435125238974788560540167140928691114717015244447802156148586749682860783194760552771511255371807990145294400797493164072508728603434175273138172659858587588784264217247639449688233351296721669092484418330231813447060794581721824338225010230542845479193758463820636890319394168699775317706318918969691254709233734585641069990629132068986296589059808038174745169486378003183954648259345283347132754426146131679589934107791575134472732021471263082100095134078338197686414181857682914764963604301154896249901217851653966787621139787674378603461512745922445284890849183075456135043982668605358055946419522580858453535416816514507967694292548350807653235060492842079282317550758929979556821945420552585777227957999280002102450525373323939319661633741707566291567099373534660877553666529240826992730443810839545452355242593875878460922621103575436719965678696352697085085739189881284983234252357736758941866004339104036696942119533681160961033010303519044217820165820815296872403232611779582280841734152742103230537024707574768462634959116147424176615724791570182915648990914434994101082771014998306442118418482793695440078658045469700956508629916246352598615388980285230573499593814464737113859137865932070845128919239474496302776880047276481527804152584980770467066502534480617402115557917711481136016515339199596984817430849787424179104501145025613491294655763981278961652569180233424175701952284230613677903102643846481908200848281071143684092074175737060641090300891599198747458322261990987551465732966651584367579188619774047484105468810951783539410040817833734185054369326086930040233919625924561020002239157657635820494427875356455882620503865132834155368012759231953055187714903713944546712295972433689932681440957599377248864137069456981376323814115400458979471187348990163251966797275322946673349703747012220989164340167106545928780068634443375486017545606570612165142409494698540578525937679226655841261778776590928492623817943675461150249686756364341030789821683597833723577165174512035476658312582229330227718028632032550856941589356799908582016777146776654517902540652046610238207982189335567065950461826529607335001594384415092729003713507579598300768551768099417050172144572104322521404591440919383981346032093652082274851245079806355284380024773604244668620132233732263876579529601262861862444568665786935445123463171359154505109823784739372166163853448980241080240631618372748893485777670646008088641502511837439766034930188443439657945420271202772521101382305257913331893317969271375963018028186237915884529767695775356833585464926663915925312268918641655254957441384992922493592555245379965631547442071687779909886216105442241147487163427731320372393615548918821503663284737101933306799974042959076808325322263246960673651583418842035833024567736166845500153381158183648290730993992398851873919126390153050276017218994719358741996530274119520695196787045659728261523532645512999913836757263062646370261618172935102580221863053110822145488362687242841023152077021443101142696938831271674054163511928114687122662389085610165790653395474057341348317060410002510076833011007657828739395130663694576731316364751165155740273451497754308125211395837533198465607382068684898685407209091477715544739739737077526125783165869324157906363241033069720125554741816720832657533843448984137542464913845745843425998031994708011151535303002653237509262065646559799014262162926088884820494715844833433140098066561377810403570013907023250416461152599584334301032280793802549427968538939245379782374269616360526830418437779299071418715500476051998110857870597630988906752081554345952713274153923695712247342081554004693723020243652474773090805925038890125802731043562534071183660009579513226574472069591594406113604131081682388880083013144090738900360056357603626827483617671545000338560281831700532160644717966544232559394681648993501981621795159735193810902731510094615300184524434312180050242092684622766015109277722982972388942012296895545548294172038931033589177966137804429968474988873582803719757934506415797074212402678672670819393645576885779003168733396157253118422696194839446601105210351668066819831234151061828669499003298189760706601536527226992080969848859546210907294075237529425191913828592889933086923562714734432171569534016521457877390353081199907138004628915510906084986191272451131735074939641156198416382974506102143977003635469276622132930670186019940743344869350515277237559575224740135193350819465475127962648122062549975139291436111927069179817452707782268807226702360277018221384975814878268584544948466257965622228344509367080223144272535248795236230916651582246923232595030919161988989245690511923301901207109772188758915227074559958157524388461648017822892112491462317270619697383511301341282296098941769781480282590931055325611130873230016821321599876150885934515425223268333266588215882896463443968022679528156016377727831828556924527331041914208308175825000314507608447999359611509088590190832594804663062897043577187133928666168032281066977846826362911153804412788301774843106576012315247878585251755991422148437885967516380569147718726700022035670046609645643772401821432228804049585612771660363916825967292543514580845248339418049319662512575436998010822659631779185596560399022397763162816774186078393522066315546919104746599941787135542931644887952102311529426648771170673954108806370970041344429960112052477698762764215278772536562972119685782192467561075640321615585184522846137475120316645872208541723627111603947075961861834196040161010283129241688919740563818418065698235184658212373648880673796201700783566214281757787786269411050236752132017634879147900453156954029237226203192665925596060570859629521939026581026027310821693525856026202699360212323043959507232153223781191600419232713623018202022835651622921052527438970483559274913520473919125741274933370960925851606357827899331432203492566881894545524566334818136689541552425199354471156202488150738921336796528164869742824023557987388511064954047863808431987568346771283013941243314955678682549743908614955310945997362164584761861640186006387510597379926977604885870632765783095021578955165539793187177313905404472754736710991827317532760327887886051779223724686842510394848380948224193996081007414917126409399230350756826154159385206331633230016851429857316728182560735776464944460325772436037040248802782508767156291523259404756372009626665225558428674099501692424337492862715702987523239520499040413824984794113345419247506507773790705186395446652985699208758955973804128969840735584708245833346608427721579109736976564432304433249546382210573243491890719131571524074636790262987035079146704337998929771768422402048887252897774827869436137259939787713127716573028482600132727832647768559409205271283086986654511031717783957940951802433315649547783514221308660035105388909711660307481179969910139172741528742851872378250181294115817989171994464192573419551720964094439474080249805239383018889324670254272493072662769140491315487576861182780667457689146406692963533869036568781155440339650648759769004852470941941013487473869063770021033076467087222657959697695238616898654869619817740984235937407623747322191551975035143977343370713489488067592816256863045744233854743663032648124060701896907779574562188420767943512919242369104253923097518213277577502336629342683417450533857114544901556027051251093397981357645823866852048218392716063365751154834107977288131683758036634949576430958265325938381336642136236689391892555557942920277228769219686295888554070398388793199124901730417257574707442463416395495048319458831331680587080586602639982681804520749609285881643471219593812756358036304271722273115529751575552528812195543768056499598311627340912140895056438708458043829546727300618589724926380571496595209568609430490019398649977639259700820616304809469955904731664635989385440756164684554489820731310329908141311291256733634532719052728854320540155701347536704010130694663509780986634421710827327568340157118917757419141535942036935090675669566295020970672379090455076837551292471946767483079365451658912898195251745821069679385545056689569978039936606481960423005554436780215689039075304147349161983656949509780779334964153585403927735002858638000308149517198205916979160920575196076456576488875539953288887317831010838296137787214278758412853866820321292030711116648697950329654521427739720506947325757555462053466102488727058602815525144455449637145615653517374478916364027635751341843437840886163248704852112556572766170702352892241996104466757764799043723899944342354085621767993805456234534252971728201637235888044386427250883899251625286570739018701512802452747509608267403249700065867300367480932029461149107554076189861706864020135861587460552329862179243540667877703891947469184800194032990090599962767757072390351123598839900053791093916731670026718945766354025362313035021573192594166792996195620058682109412585670691028018896671552829022355964273978476926754966243904898139356359152422115637096133346491734692661336876637217432808650324594474026604906928622292794540704013372584465691051469714768053481832284044878418405899986393957585023675253276533914707504974519102220529370018490144466177663713855457838340161102552196197431675319435559185574118392024366804336382475729192968163343851585014385661138475683011122734667806325276337663744385691701259301179076084001295186851156443936622688933229330875865247309273154048144132623521401070676332855545579145418235105137153823591060315534764167170047273657835557760564826462910327178646884531774175145525787434059976763973896991105455775356456784110016719962722238402183718506908394722596581244411044073434203003949960926460135437306831520050023055788691267849787503236999473531605090085754033439494617938003659339503258472934384283987682488961646851138342361738954975398427728097698903799244432775608295088141405475589230097917105094759083843783340800068121813848873672005231834475657900987043274534098067500269506439850941602921071531565925272514868877022663706049273221207590986413277731394004191914250034554334801143452464173810289282623379351061583772964963395062011592978984924865966726528543536007899243581765738788891894332995183478737750116043454412375542168160590372915976705544861053404658853580878368129190842286195125607241628665271756817184467421580326684327570913088584070993502547715867441084911542038419667259346982383503776715521742289856124973209559893240509520263345989934835964369227065631677368514435837014776708752451311542358551715907359023724622642672257967461182034654323832563682044968231004385837774966591969592184661291253499356383762185188266759414323374993094833022451068473404958870231484154303036395032594938112246292896510047217625453648430889742883499480044720802860604382006413606873698020123317443850567523748476720073356051006111410712716793004099356456329223442027480101201432916012589568381565121000683303014074318282411662607461502935786717856554631176648833609439790798580228900226774262604611779043706336077132567958600588410550725754539928639597339045209499999399148644836759670806682980203785453515678191079520559739062071166720055254872762176061302271773274785415712045123455434043702032964242093087262952282126367566184371714083169772875153685350058396481643503164748662077529080053012007765017891729724950190537926940375203563590149185765538858542448458525724490315981916638425607591937986124522563055910379600893206109161593981442311068218924394406674106158609993792528783590708318338393279083609057381635306246267296325337325473365985039896548515179427304061304762911788034973360198178486392736019400476587387682723371837943471862052062765322763437901898740442015785965194117717580835074178614182742308362886171323117329160048666776166342719974845111545933708589671173682948460723762764548620449804673341639151352708719635960012075163937626504321421653447099483714104904186394854828508769991060682598123437922014543971653970866139993984340875911796866667742867759977000303064696834213542235267764306066178136547666742608792781811800829083968699210395461295678621202619921098465944323058700361887181096410961311942594613578113229901607365193778908463879328664136965159609436537180373343008282705405567384183163343998868511837297206743380412809070870902186989746143280927475226894065391256766648480444996504074238000168740679955527478779283223224099936250656975939206924621170989845625319654094336325602700513664120517737883845749704885973473061515902723414694017657799739195081692041277292961125265324785686630074427686542771642364092105634828159093407418497627352577664839703619422514778921807457770902955500520473091657010568295778854951588367316910564474724393597363965668272836058863905586007198219305662904862833536485408798831769390509178419820875734174170318190030391027093344628386499727374453904849068368245686616311702930564597960914783058387243595728996163401092741056707680907196976781322871417852310045851062938576761298462418037013201163557696737060908732849197813686562818432241081669061704828972782754822128467195914614488935365032418411096953073865576904525206058653420210715707130495214342764342348108195660014605406363985480056988473864260911427342370679632385204194326286646051100531223174270715401213767404839011123392327944626930728429890139175860597703369406132801618076154387926644941665567487337149072821201077024885490107589778613554339470975072229521631069622415854900845995577061580987112749356408580003298328929195104824331166211401812677792131159777304612798079957034131907166847831908570255075739851651925252580380643631947374292642985233111348372628571867120783445434370693610980625733274116842630434912313572650242312291699801738736149779795779077753716208026658438675723771663125464384136903886302227737635768301133700481742529681725698619796443770122802319593863995736406874758784082835148182406894054975054720276097589805387651226858389047373357561092415253818033825402959115336536355662957025481897625497847037679656434068215678028968819670362333464525535881022386340555377325107180533745383505064567593669090156421475624701969061530032272393762093215795530530328830368233222874149500249836193309599582605707131432452842887296672383642455154311947925678851885288623284659908184608242775438306396400358158191618670386985865209213356594847428309580927041951446416211483354141765003347176812042056981968277200200982921454539163868140790761378124837425493748069903188826278746462571835918395125671946800499581027965362798520570619010677572877147532346434464558052347150809628893423044257785161407059279304582280780328162787434037810134605699257197853309072398472472333410056756555722304338399613397906845971478119551687446066992012812531189435095742398791080613501842387372013322011672236270672945710424848368154750262487551940877680588084762339884807565132540481177956755323089010199989591500830717536994818076824511997332370985320462499736941611072317689326063679069211640300875052762587758114840066012023244886498211329208999350326371625686540468483608265362381603664984449152426978724133671373751757024844633329744733068140568168443087254028235680285335331793081325257089113237098275215845729170275204276527132622289404971954924324650863316724629334160904537648078796501683767811410696732497774451848542180285318704422841449197897549795452816103862571972453269659662192022850934067781857299155466049180082058991919762283565743916140684234767752525309824459051187457846630616949938026838151119556990227476939685541675579257906461650353064074710077307818985295504766940779510296375321666392766531559663417425698297538609495627251320744074929735458704362448766489612109606824988441067706315859951502535713365093058451012149724915227871908664582500997374065540627447252721882596678404674178474633004720353897423569962517169475589733209661862917687862070284517513782105368826587784975151799502336317734183891632456883465058909063474652618276378805700914756882220908502949802084702438467751727326782598105534664754831360900828362476603978701997462478970529372497499821622080984929678518964060725295497826185422171930951099745549334998851346613629936143327803922194205168516749364351750192644093691927379634726682885043372982879484126324587217143215328482749231874225707871534921661276732854435690819206977768766832767247115566794883014575520349832849892383469573988860198728180155903703986314968144675507264821829830770498540696816928007487003339447378541053048062382188351505194354720860860120255742831800995626235494584444080463042299222974366758282698443960914064108979285281786403372042446979546145561379166541380780305978818898802415037884782818976173684107025341772527493672060800717962922229815434178539135961811881198718279093109685418591709158858174101077927090335835912876521122199513440526639464117644881790574948780387746580255060606598213716715660844317282967768095420432722903710418039540159119493304879027194153292066626314062327007252662662850277775606062896886812119662236852184700564349568772847880482809399453166864613838552962217027892596830391771675934257622190518819933130185513366683995386038929383107747884633391152769708156058409588703869108357041632371991735133013026673565929007855155732144601973858000378661786911936639297934707793335111946689273088591529812981373609132540332351366235319497214208826142525347747891512038334099715354151527669505590248004968682405005764313734859001833461817748453256608925858955790379505583498731690071607539039012477959893609888440420790413835038654630372431708714081981151410091114033122777419865284641227877291946200857254785076765825766750530245227691391114984392433398200830712542617376363489051172232360047444851562244645811063506644740770182176824625887182828096078368253056827429432436012243416642868964486181468967772196186573828281594853753896749518362534700183253067409698383936399258833708951248749894024107648398275495020741989278956020531620294307863779468637393905193282552799651888059766469822303430466981576133288285211005681012868965333117071048170631861805050352125094214269595703706635843192123281592937803061152974056259444407646350302783849661068295149675052970469072600858180652387137376566341712032895452392471456008227914609022678819046112127334125733994674066547626824944331966980393591684324643813055463870061036200364218479678949140544080022238069101048131687842350137149564572475055157889545239227598124184791401704172507925102421066626547549584526460414405115772102814401990673906262059366389020946629221259061335353452278660237144376443523363336974572716448140320078457887993360246544071446149039550488167287590154737918304915036688314839020405284001275112740285940358437271856870055322313989844763944455809766348349459288037111021628838505188329085373723941179846026747056560498711154870953082030983097276461626147641987584964649853342289320325599676126407313888324048394070795122458204011676182671900956021111562801222172157655377669432190022197723864436272314703026637794176919366120685817586358803906886534072024538979182764417564180604135065737253736895055847355364672648266295270476984128539511199671945111724482366798271304088405210843298053666260775014813645839136639635146292177656892121619134619223969205044889856723325243425207876321320571255596404870398927081057460481753941824905536447084445525847549112468428274259950533541522231923177010094217600762992182876621626337478227720200492342093187328231299084536911459729767139939337626183231182859533689259141920858452809485208817341698775771226121674436849072510887340523755493156297982435036625493627289332820855068935451025042203970036562804856489904871057311331739719288230881466071164168732381386746911441760586074263010558371827939552001121318485859295064288033106805988732665286399391695230191892318253038176088355834949201854957128227792331987403695566557637126364890802943163775217049027024851934055719313993612752683424773901088350520427965961627077097904439571490204931574137316135294008933037202363552207438994787960258477958197659560136944466071209233251020303812542782615569753094647186822241062327267153592927518680645738796708294057349681508111020823383455495159180929947215321863470357423333698800859558920605806385154504653446559268153566413298352772827520229045708909950495443146298643975166114226994168523342948230005262656248381416179777879226022656156882846473361281049507143061375859171337264366538591104281386673664784228183768735358219340894231612822355575496131841341082172424576760097601755170519496465254275296785568383113258696410118688321561279335896091392029618874541016522850454042998492412939681404093665493621441979216621213045466728363076505115181278573657526171985839486958672157365232825352529304638694854752519359035981556742988914448492377886967309989614163934416383356775157465629678783440501841059760089356279630182051431494806387372246642743421434707101735117235237435868577020862215612853699146833008288048552196843485774060697975252196589420109618221738904410621025418323866529674160295120912323110785785325152050197765643939406585528084514875144546678120282668079192340664266232813393141455451304941698227454415637813143877753954884529942559813742154790474939596640469654259899900968412764908085273663502580758768480417364081540407714271096931382276506083285092686269563309816613965622399659722873995883518720835677248456415972240927590525663002436835266797958917153950496732672403750476436855561833380377869016109455283156058160072249385562219274230421179217148000104990394762140991834125021508281082910446778942842153509159608169771251953025827217135852452920216094285442771306188107791766545813140731253394962977687338805708854420109629613877389042800354353121916134013868619187815086297162268317057463425483036655655822437778976280299646663063650322776366001661593341127282239353883718937267466464596530345968120900575147800473281053309527680364602685961755120757404432955325719959282619662033337919962893127001775600815267511177267593190611866174224037308773853997004711513584681637907889595821065653688233274426748809657891927870305199586003183818566422592482547505029839702448410041910930293632187109648933788171341364394503341049301888690835890401569372073507382914539261484368700211149242244411572548753091764523411045584095857383979441210334588831386899988756542784904692747295867024823867885684989085548318753236603016192632435702835085455684606088745776870189186007502395948632755466674490109974923892769994485137788845537853194172556816901663295268474644746003778494191418163835162560614397473910734623794061343808937796538700153853043315473396468444237198811255775864294390634479896391601376657281416246969060023524859559619104827284868400631874258090447566656679991294487952817443069812295227103183773675804663455395621781665313448212181755690427483663200958689082565878104155830156396788320208648027933793706221545289205883929179844178657179248807330581010003489935535052523350179012203051800799658680424564895810344632858730700577057838726712231105993576004189591635789858075711916713314744208355435391414812975001229225600793517821990851868644576974984598206775136646535598972169740308083185266545999767847093818531096439456860469006700034562395668101916788364267819437129207883967561384209810564481869614423371075671608723384856327243720161149132785868218060594477863374935025915842305929147712176706097097179509240645291646831671175079020274819084483618673612138140348924412156387163303163252318290722876441323476474250104932406591076475221363735765506104382906704530141754325512866701334381431038507219398056877504178261792534253020684222404472980903679719098626077625088991542160341640517022823562707441700671599481976769690503392149643554824018510556963230386968446491417962992759625250791763951679429856919752117697523173901021925368915390195682540632809771806414848379880239570495382312231994169520935074962802868087263533016164873818278799408698127858371184389903328494468517448052217570216927005038175702556265594651916552017983493152512355002739576257273137164804052201173138480184819744553864634813281492411924908696730133809944791911256322110299643704782173249694141425685983274031271885109104489955082239718052477184881371976278195443344428933661269701140197502617312000200645157976557687049381917726369835669877574913287606908260041090731105134140602103263184457472193377591445812750748908508593155550718466841057813064077208837514321249095910793523131965876535295315966763213826279911900827271222931308575952808690538294023622087318713746542599349387509229629657070964099278839573837422671452893156785745598623274205912789587945391002624734241814226904468538216458620380444589890651020517530095880964601216584345816111211471141676108674325164836826569619682926801923591157606742731467884727005959665057108141091430848311520550429694560668049195379218329132588057478367866603968771064388438189377839134031278325481886956886264974724652336929124393400021930088853645350154317243499721478122379572864233596297723812479423428407730231797397499495413123796128507896297482571261632547753689435436883552556265224992022476600385884995398663187106064198031389990595183834531247858075307267190187965699707577114917665628753231554659462967993074126990250093357948004379768295097476675452140430531601546042497276367013490151977846649154560404742406558272069800282737905971377040891768154080229370383776007611527240724465484613097233509802084344394366890149925441335011941300578638216854734034648622732063884145282043205683153581921622443193390524025967430863420895362627442151400895526953566121074056683867864110956549328679787666547267356778409771778268949217951144091865040365952248771201442703530594515515372490389044861405922693846863668931797653184105891011370587981847183184629740190552317484621920212000839018313100153680135080300755947341020255643315856547151510089472915526553179906783092027503057261065368512570881897191524569165416701476762962203213596655212232116726473721904092138431126834898346926602467044173399149417716592412275471231177876255562187291151968177510412708571101103127293356407094938387176903888471527248161031142413573770124734624160120603276988263782378176346395742606385668538279637141556073563019482601885190597753620555024162179642788287679012557804582528506848517645675196527919128077293748582317990642111974945744658761057207362575817505724843977057269042461810280076813834181344604299264156290815028466134981376510099982979315371624116165960916162149794102975404011757131683063237010101364279259169391937182106359275147067605263343317316268796549806908305600104100879785766176496276398175842584475626301785543090405165012388088992458645850271907708433621482805377741500280502265045723625652875811191984011959984675569366051680132213922041393240065360317092627689475138294620811011961793540067773786347655049985186389285152217022511637495499081171260341091829879980482739549209244494959551303598985993993769326739207478609683022118500573229820193814054617146407059357754150118931058939665077596075274981754918392956109145371949705335108332241394745199608203910268642586507467384849164369865870829577350952700399630092303735108007236620237305119538502413938857650348410841256247960981925502410537632778293962434468173980149657418108668440463989274962053850621961538089623985708502417455060605453132908455756041873206108693895867124765345902086234807941711682006755237410055545109609802578573084751916811980139213275122687219956152305094734552438491477533702109601360392634958227202298886940039264660461711715503353197347141800466726835433957196079370640213382413940755119259059100896432880145998133062561866721160861965517645202881370493438988370952775764872866283980214700591321180652607079973796392516843639352042283608771864747575684514625585627528638802792547612482831940019535280625642017751925644739435965899814605377304088458668294362622443439751112548464551636263368683388547952771577909500535164789694386109738470194812729784940837238835389218043325524224018254304411478391619992825451658135765715531451559429009717138145589946090409662831263543845180931036754757441290244846794661863454996510093799090680817484916490555954752022490695765316904135107926435508326348007349393616755322540723750899461282740111121999056986476502660372615618513619361270629872303907256149399915323741358381712811614319252460251554557653144337638771263915900277170489913055069327867195853512344363563373311086293847573230225621245713007654503983752052830824197108596979978623884634537846704013211560242267797018355074001843529457518667138289881001081036540975658289485193243322642793334590760921476544155000595315522519905908651705001416109793959415219987049811271733729824660599394336470595639723400132428696286507951755844474007761329902077791524197042264976254799403547070690596505447103595557614495637604407488292543314812829302099446896047982333862008592675937020355056346898329440182932326139949530761880366774664934038346436716120635761102155957285074070051819430026590244801512286912325695011818661643615211174322173693199666732083192007804610796372970206804539206603403140096309550156417012051879530834132708039824164741319460818010244436736359747638033230354660821821236115824373701710439061636587403546008907418300950469248189966659278103956360811312096112591541901127372598079485034841190500087345931250776041103325918245005689775035124829866073357473862427117989581935346387381484546858730079356911947663143915376688746833863309777103077829531242055026244220093177857553878950761065752445187906946764653210081035028997048601147690623003836181558364833185118160424084907811877543301096299479887511114155951044843448676835139680008493873244312029806086895601565355152643835257800449977193279076039293588008026728884931679888966098938785751790460176492202688785349991303250437520635152166888034758419367080610027896962752560852821697100129139193274752686566085559336368039619131619298706129120375450251026589742749415953339316959632207243287432881111935262333710089978500061688864059704654049057948184990016437733923194017230142303023068662407645630128584368782979424644796195816765901670556316739034109250339116024893428682334510464259434322145359011673806875879022744035729746927514525652301494221396106329389162430305131635597018092345208877349645016153381533467073734653857203084382334979435187218595996342498222394301801449296707853698478842524923861426441758551090662889275393373556190662443880344363418176173208672291115716915004831285451882295708209284215097163164938622632365183688043974057519877819245683053379853641088443783507688575171282895974746163501218553141171541525035607868440332904532174488749297528626376272080378210492492886082688817832203567496969877525734260914011998367919373586936664184496554596813517538392189913349612179475759753997860078186593264690885852807878590695599615879730420465404890411327070095190868664546878431750179002565717018049929339192793599683127461538847694497773266832379588282113883177738853401948274658255268812642203152239303361182378855388103745071214900906401828514936290351374225225701683488020863242742341219745574579903539589503850329921469577840556857924248857557452101041857037738700758067948885966179969547531350843114972926689934156637146373591235295996716100309885656253783836496526399830457971187939801805172351836897118978126074775342906357868163416063183147072840924386850827255852516726839689199025225194512796447640652944311844557197629875023827758497075196317615289273187885735860876972779429178779852036053275933218411762024503537624864941858076308399319887658517241032708561915359038162182335492355309315831052309381432178097528219021122537320751668640439267826382872582407268411549819007447693281639856263098585719442670530023171484470773913269518344881639556242267678518557895234760063688660062478698660400546055025981494977063024772893278655047863193381458161738429909036932436833754224980854613136135788678659176279241969928021873753298192992466337121216443668440882532090571405438661972174737271043152376521267003737864361566769560696420851255959540065611616470726974694459181801356209787418928168759488353353066006548412309017935790664834430711655236757550557464421941144534345429084267715973746930829408928868712967222203317170097003121559888616424831644813243683461954224261555129088960009206757122527558774114358437774753603172068798987330907575859881493998684997637308868241548503369339491876803804425773630063173598868056494778564916187551337950794816567090225702137901467218045338359697181951828164385216128452834701843376030452475126141777538402437642647261110903270235707075951590481996771827840758694428797001818949043316629580543606938411943446119836838092521002076479031359454861373471828851355254881393288463910916509780134467895556164466794829987842840046954341439016988800007279068842135247600432642542547462883648415228574790440763953681682531623350692849163969218982458281673803819721445052630856114684115941454390835067958268500956509923841584870645758527523647426950303267641235895682949540001514150436968953583870847493640106341006115568791901964878669912794341907447796677230605516857546736000089542798772291094876979327273582914547607336392777877409630102997646648695208962618994460150700541664065722136570201416197568689962905939814257185732923787602599303368022435501148652918991961483727907489555417773145394772337083450113254816201677778339765399723401668858237360726598489590220988088442719467241564521510730059396071024940541097592159637479621409615361245309540977981761864525458271604587944005863947834369015270477101286085249237513185460857738029042719990138848691853659508465376119441749596557252405667068621434974420092932968146012960907376509468542884074455169905396253808787126243388019630108953474222996508679795005605651093797090190452189816064372591196829806709656281394126983794252779953030030853566106137430642971963995927075989765809153880885741751457858632714959743612592769534914401043362629334764970850736487417843746351588121436488627764104682157136319186950127196677745863700006923588779228742171301412094695832934563938060181807009108404592982689264997005212880812273292502944720967278397249618250042943171464208601671558219918795951229330023313804333069194086849689585330161580991102459788594115494218900048955165096193181383288678415787385558816536769968210121351829149812612315861563790645433566590999111047985583372987389218794677778630669866451321965355547342840161966500251309137783678417391764101816896689634742173401660264249106484636175233440111005261062633683190654090321848774750403805580218567405717505787194300806491871982747282133917008154459009373424857078922152973587777111027106718825292291610271362927649793899685751091002771667361911008092670902533182012468621876320716525632218471071800742993924524935737267806507872754986757433541532232696489254262265585831022850540198591178947570284427305443169579147939511183078874521530073483949467898748708583528047951024321026232679622527572905357846234465521891982354642482466895377434469454194952573346070774220269744391539298657353675519400521396526108123711851111365265856013310978409326306225703123217003006110769424790275550765827144071033743484031903768123354812739260664624512837321085510979141490793798435507431960560220225980326683026295231484542932549826045707260781670950647635421088496592382304316212144869010586665634054054500885447998669242284454201850989016430860378270219558936034777843424361672977719782955287590537848227105609950860456422573180719257104286196216254387042165185023732154077330576031768514040377134800523054797037619874986237980823747217229476645931055723804501031205806521639445502298652239247613536814150703725785944870611519403929677149012700817416082795254752583063365741605399025751189402930865040943710285927925435465545779895086537516368445989810601499035708136411286206393437119867503495660755107015360016612974030610109893359071775138292087343279358093238914212179332632632213636659787603591751243372865382214659691410280204198784878811148968353493896360584220091082584982762037215113458076006759299335973269252757785521749817121077371377954782321366732950749392025254271861770669574756915130755941610527129955310648949270706851170979649451747474754716274746347724959513110910419242365343426166930022997282898730114898103457158839274162435597910797478102714097435223297829618163039434710573557855465202862235936144795534996306018506609960512988633605651406164356078769098700511977309804522167377419965644106248010958641208593995809641472599883266950180234338896674687133326272804889350187407544953471643640211332614231336865989907141627740321121159397472864647873440999664839786617848677877505379017755656268124188851348025938158236024172796911165555908442925755694796501359247645233748340074748037138893467683615333059909667954599510737240223008118557398226018723027283951052671265438490282773704205007433067882368234823286197647773521245643831710327952638130146640747989061107920364266678650238321245025244252129684525281769973724803862454482379106674939599456882695223976814123956922470945242420269850197726698853969711005340094600534805612966760839298181060679144244521406087960853775370727705258069978438375151845604847555739711173613454360279335575095890877910457743549989420987745019757260728447331794442588911496794725037478559720756840484234085988246612404652041397812713587127384592133399707626307145359248245214681876370258132622863882003477695053946889921630019985932517358346272926971795236781682866660261071160217405108009451814998990332075086838151113576927222776383132827136840132780005061456924004993477584628286808074605906848266637981969992635330148101901407734751556776250449456301011099589020970470171976443129183981659792831607371879449487279538810152855443283904381216486349822450361235741789250352299192431624969549331291660302803571053771731763858930982388394511984179731042388950253071990216902786642635050730931317384795202260233312634330327215909489126758125185481297632915877381261353386441508717154556119730294061810395489665418856263212020511904829878067776307024313786431019720857120107565635818580168129145275079752622577735222998511773363969775421608197984707488945254382774171161249604046678403288306930721310201608492278775228182861137460461553704178447962217150604546959521242743390883335569279574423080634691196325761664731050831671033335537947856898586318873595600138780107412945824905995444989509689423774998884612956654396496996129896119239251440985141037977172758711240247724777509073881352107894021283642714656624695224545643954642255685879956123616455802359355367672432073090390828006338913270116216554437605904344162791216854279636300902610530215584580703358847559744380293076957175107283928559853133197719187717764799331825590426073983148989838510657648811008201982240418042212783910420085634373829025790744604326882461337868592143590642255909557508412096507332945964075320377125567783454487987547423632719913125887690428244273162870982890761844266166108612077135573567245690491288486601135393578462373785013678159093029781433657049353510136358751384311425227680492910331084812702866478456231042030085818192873734028339732906604232422587170334732940332652908329471169330850102971362009649230773315676797129676846469307950233845765560245336058235695857543757459834759231982024339776759294457985271053087133010320342544137224908171186572104365848619174970536253571078551402577503854435157284461835839898379012207353825152602407585672273379306135833250865455975741108267954662779854098725050084756593842763135254451663647255618214725525074281604663088125286844642544721085301125056593916333884435602071266634821934260170378841257086088604197665783486250862165679105343283914428741104784406220103259754733267971924465700212814202036125165030529569274459434135337749727311968498777881640614426565354582192339905705796527871479021193996149293343805910648555509242656917434632270740551937701179992652984587128700394398593429065496673860830647836716513426380916606590751287713137457708415146218408683264362823289965328579467180072509292775169776660751491316853212320708495734444048018288907847020451401970493186884117530219686018111430874776618818125350040184484376460046030927520151344258297289028698352515173759432029892873981325466632996416281950222790313585517379731222098093078779754733613748921864513351262854086951876858584035493167284804052360667991313142921641723424514937954492083391339600708919860512642431532291299371803835107295624060435770224709709325966252441785824434696374542989475657796758246459389495720261179446497695475987040566291789155869630778489626573623563083501061709054810627385734397267184060014641212760073966121495018888472833833149910392849916072242594783861422749575597152318321064302117860038723046526653229620148977326966669441245320239736797432881202157836075349460952648114479120078427758453323057127439727777510221349096614610899002066898723182596896442644335973567534076792909430289191063999657955571853983991289988071369202368895356632412594050021101525650889102271301687968211776047846015248500536279828856493816332444957961306034566252766690716707184509385529848401593316203247292679818305611640105872009814588326813887513598180688444063619212032545529436341311705743340607818392788613975399258316108236912132539269875157006812542260350522042760007483708153985498286160025147326478981544097062172513758354032569634140402883519890283856323585039374831039464564998998827820822297347553388009698275169677363274506163058359967223350339085831426704447599960481597945078804718453514877422483639127132958461458904706648406108876917230307686578747641279198192717776281545390373116784958941037200456546717801824660928386756008481458038674435290983977276757628830657477117469006119249144212798096476729329672971475309238681737917967407112898411565494080187780732943463771959506357343700728840993079217646027631703587712794095901199343128775627981748780471293700050628882490546195870577233920797878703531957439250287465827842637015469545057541647118744153433287572200909193202777514318871278788649296235427537782932997344473146815729872643013618076635438605478593654466286478891786749453494384305662526150367192551699831078453655367727074158334998442432892229461122193521131460979193852280525377319946459868358038546189168200152836902680231354006306612493820520903012211365851989151559589479882467924863844821118712853951176310359171549385020894500153891371827836994220518705964613710314241085957203026515721909351965912652324516651188407574308401596372277983580359658503893226604067404676257656300279437790852453931346247289922441598934238323905508574377295686419707478063295071267279428983201064938491396356720319786866441469261190138864194226572912424206341862853417170902072027513134845665543405348562931718493640823972701737709301846089333475508067110841990543291082569288612548000300443565093315194894570441066618227211147551946804239164299687465514957719171770949671280020799037766150636776279415622594841956378058530797399587617747700226197842315420587827511773158737435514503868822845447593852381251381149183292772634620879812085290419936273781386014820135532291446810265444339853666596644393427959461662250714710346780646715950640054201742527728902871904759065864731961323526759001787495283217310567894453705402000579312588253240277020800465355071476943082756195520742243593178367709497644150370612679093124846834349089591537460412718461458433783313653606868066715200707245666845284111500302442510150455965764357965356330780019496592093691151492926132634169197842474699553444773921013470690452522903790741865229716394824200457782466412722338249875741895898017771856580408398420654144465852786053234365553171961744283748667917252661112230292112374654920256897641849989884059404267773798120569224972557101649761758412922104853945435877640701675600759752273597187611556289507027423037964375496944285868399459238934309581113723236996315105197914758760461892805146089976475687993948390993444332628030218060898765658469683210945615306698726372598293481482661098065857447385189625393319054337255406243251896479637010543954312139493037893585006812600288774032402452044565244931770843389973304840505820145937926332770442152056120928407705672864832450545754819260538798280762427796743309067909139042268091916193379096532519108488729054157746767333348978706683074251739338839693854670670621282392230985003520703881841343587875364690750003936157467734458331702129541339146986798435896891074848010745687385761760943753513084403236255636609218665267796968969178530659237071700330943570251647441768573432774340481531145245924238757378552731534480985525340980305193819301157549543437140717254710810667538412885666123306239160371590639614498625531529949999931793214912354144977081643630811207019764805887096671805809819717408381195020826101026964019242967454992358859744913822925317456038197456712633659134418430399420015582756945309753577931108217430833850515262597967585628417694246727928600353108859780591636665812056208937194782032933668667788107431335707449968570944273129937509989622881804420256219828277155435597589899092465143830192331154285515135715812984796948072322531944334986568934781670172645473694182680350110888661992275976663431856323559087179226697695976261166436302191304096283282332508120739938271887751267878354686607109614674456275838650779623728696994709387479347856258910922816390029935331751899111426459530523100037045530088408280545568248956850765946078860714371212894680798683393967138949147648718594236227357871632423973167673834123978238039304009563989801479478558108767058501383092323343510876773412120997655145989367063338342561246431215472209933224893854003114319208672158343101031623044912280510080855788125694698299682825437953827183745771147593934390159464826708636278012848674784900582556154863390793079627454953008961134849699875424903011918167471223496733988930496966806965436010396678944748691751289098827777804765122173966543260518890041900519578030977325845424840285083344492735627929185303985980036777863316269151028639671678870160916055596997719426406373941206248834892948436363577087421791680532597710227082619027943299160659375401961223519273653795023344200949342458973591670848219069264903095264755254246448845346551821022910683796790155749199335375275559838552302897857041564140351427887913875010961390294716321892251387532951194552485035582516195535081437024362120676983852831540705567492385125953233623124328056615302426910608851107522466596915553618078160729758314674349632851655657317221132443989966240909041595226195828399919524052078209122667978252998351102023271262805172630283067684723203938477313083579574512383505350043247459259043442354598461339728986138120081536686104781904464521629920845217922154861055646675208287301609564456168358251048947036473943475878296585230742919292992568466612398482096990371366231776800535946628492112190349017403922276782706688113805569418907113453223924145619914701953063832620442378344124957025697035770762238294856080653461692429422286634431238716807060310675515006758476721340222625731465133661138911757274977124117955554867763819990896965510863597630266090030513356039737442778224958168056257340358131069763094277757945955907020256696278813982590649036621754776916652625651424212045922707184386528750341394614658836024891731143120892410237973579276402103293824308915277335292714373234742435266267290773989855119343133591238320637634419070973376365722089364536279356729302819321578712082106902236122214045955712849850726778062466426370855665375869014375677488068888808488602795548142263760323605723478292322718071280016491092575982595280881200779965234152524501646892742441594247015443174053489181768770621579393647491940622006195377453706257406965043186239959499438127621094191307734464992818564071382171667418183321935821157328799048440439255940273294252171264102694484259890768804163592273665962060293858649413677032682357698860600118250415236534889779331721107166141576428537932682634983088231672658285826604687291540137600964816641247992483670862212504406945632823133793741102465058508195124525803238931319357552052434750977354223464969790666005449138073785532425161180885622867504270399871123347834647950367439841141891523041076891947124618000667415598694147641523146670304518801944993370246471859541368766312275839698812733185568331485113209593431413180158195947168999368176117975820135180483109309567783874338326532415480404104880010861316412372878038588024848670857541372105924168300977873175443282366495329485707809550569710187609156632728844619115409503484747791879984946535281676267976819132135420072327898404927304724510929702614925375093791743338965838388952090360821430956403713150183193971986405821116832529450493603741624868017847561932098212464990546706827219134174162127179313685572991351825026964017187936340773508980219206675021283098101080356149537754379816758027262555745814031590337302939943832700962532858196196116696355691266734061619868039996477818278898129376797446021057193127820703424484969290548143961017412942583504004476517239930844194976850206005219213274145356587559708810370486318798596468316246222302325784774086647249374698779225414174491938946457156118107801739192386937290999397360331298955584397107243350672572447015405757741083783359747282339246232849817917170633933447740945157866522255995593435891457776471413674955530240787278015303634627460260396594425294715688762872942398093737568803855030492351305524446501757432263108691728536782171492935436974893567007781639428920172595914955173235602304602978148341118496924845403003147634114065784223193742763545115858539568837323986848880209249080622988813414024959715876307168010430078091452143413472360500702272485845469933568177947362597100977767001861061459190956555110282673376600686826372097507426447352052314018545060845559187625596910133879830569428706986639246608333963786269231896978280016961951229821493457589442111608116186866506478666685415730835383264858857256045959203353161025988687077989293925316118397771477973953548308029965008575201620899440798935408057121686997115560695343381646893429852346652235300592480544407549474342323941440815603148527405890560634186679689593035640393211849823164891789052709316561528042420949538876432220881828588865087262217737042279278765587855370062250633680367661682548985332448581791998154629987851547414033487873990394404333913436746909355609882086655153452991328045834787598112850361802314436753975460770862338174394140649208455674232694555952055587362607907268990352512830476350182272341144786454215087185475272306106643754943437282800621161649892974636695103822655333226173572102896778789717098764755184063760735860466925456776182034153825645854757073947734163354683300544979012277388745492465234505707126994221625618850887554536110367058733627718052099043238360647213572855734989861403925116462930249861105223639310977106896868808781229273929764302201572608197674710519173967888202698316584952328455346094427813787040536537663524410575809373361639135398948194348259562354029875059650111136720237830359217925033064843626452361377132389032364606808308828776291677731472971045573779221448458690757082544989364880115058403096305160509959951800605046046389848671571997581759701948758845428591036204615026938422385421678452988953414868838499335796413432241359718092489176436066186655218350538210365501006798583968600637344892270053509507282622657742658136430267440157793675450738856823255830629509081963576197221747122023282524921436932556745690875646199135133163134592823292614606213143343425349648240381543580310842577998220004622726904138635352760977688650740872316852442013568864526384228341773934830028914393385350036581798995186050264213576498051993375059414238573998177068373237066778918754457048182027202884118951254819975149725460472920567566116953910291283307049807326029695513185045860542907090397785423825822878267907774010506436609733719337279533157140063010143352999729914169018175049745801943387180404549095478867136095935192977996166896450060434162120767855381321754684100390626487321809058027361525927687170216874263413724157154707652051077507943666740579298739071577449479021159011262526749958732297376101221969861596259634118842566052904766402826207901619353095695520520321856964555295943457531176871804331278065855438763593630682762492806674852827098055552197750296781485095276944438058756655813772481255191479755652797255261611223651465908129220902148372569965366773506734906064616473539537477488474715167726222037804792395474247883645813299045850031780759947682436021838453028737896488655691576515224547984035077679332838057986023165384903869192096451706797163847279554381084804835421955636334201950704596310701218263958390271245110342204487373534621486894124132994538346016967908142013477098413743660726491955188727817073068016413453252429447673911151388574461131641493861835497009798600182293663156466233779537349801716779527990766601192505613264573316965413142971868320137937344011763489166060573470593058315306260230500730497873392010983621106210188396767218330445418919191554211067664488661049647789951875050673514875418630758224089981808238086900419929381119171729204480463329060206541639879809004099906244122359130887526760327925453881801241001327501471993725927467903854790192251839170677486932890395319908543377680494197309967754053638826609323875525546577774695562118751157592705693172240789252427421836899263177405222342109118358169551848568793801927164974944300605068988182809736388777409951176696582513432052724754915654950352084099940086989539839296117982936297442487237461595065840711305904388785623035405917999956846922027640006631219358163898609476791126483485425555821039354344478367285849162751980175339385635860396346042620210029730159965635095583935031727682366518825285797924556213608223603118504543263811704148920008192027009856331145026447058243214532260589806737639444053261783946572251398935463528759904385206289149250984907812440761775149637781366402444461452322567782108950872498479718932782438701760073373760269366490698027921234895015059808490135108653306919816380748708080367946834677528003292055071307290092028165788012886746329015669065516872718576555987543790112304544760545303911765320519313082450165469689457510916735299206151514119852321590236880975874871863757284577468103945106940629903948694059610155211438245790034315207302933409600418867704195825168921456530898599210744404790329715818637122476794605740539396243031815479837539321719261590173470892827174827584679870431214764869598181379070749014628183234766138200430096789957304449154182643856285314858339583991696815244458195022664442759073992506837671873712339858877966092675206953902536419188447779642316337028385804402006602802239250355629038937573416502639429025426200867469913383990945742539943206988801351383340517951020475886458503132918228853981530698135793736664355437772988187455892247514507323141797181052694547261673925113692543444481770397567070263045231143621592278633016722218081635893297449836592565035397824530871600632490949421136853613611378115218003921928636123528082189500270401887834117523963799615620516669693457684459926258982355195540486207047817096085813289054436318523928162166670505078230168329311856845826150518044103852658106491125766435311048408285633669384012288200499164003135771965720795782075408544979970892591317051682218162944097731069323721436634749296387868822784364150072695305947034436134020215994682829086177789953450782958393871759067133471579988138963982185574770844055100683671719950544794447252695461790593626937368718925738926955407659673296417387151100374045451623577234930230713639703316847382357010870872181331277354206373151098389158949493554415777633187171000862946403687259292586571843407211246184704229707073379884629368158329051372376088634974885132749008299769683971468917175484907959730721460647259018716717138658075806056924083784840911094715102240789894632828771481968907946424050643980022733777859119461131818764876529278240086188589808138988257083345991588052050904556922068599712122866108420449597413041276594893205666877479844836390095041560652093280064415733537462341017856498930151508858090187239584313478060327892370702501146473367126322245721911666458318891783000234084468746887177789287566570060532779135096927693519608230672801856827596458841026957583234349064756463879950150548494227549846581775943382632887229291261542053325382196186302759300392841878596360043248220620249629173907507154032589609237094603006815792495162831146472335590181767459080520262875028807770748886727510083494002784374344378914004727732407203310986606292678073305650920488384412218916128971739708809253466439455060939551619102783407042824998062846630043140234526492681401907711053569652650252974561849171590597623643999005899107097942642747039971398978562150313109201753934820603714928184676876862034862845674685282729053636195345060734324905808674839673390207451202512695008612339205532178669481579189029996640950649623408740432652218492853771969851011544432321758169744755619245797642139558150668776210319449160357180514287064247792596865438037770122444933490447559353670287624827145635627344815312126435438862885053436321764174441524662594656306628797983492038431573850988894831720425871889461040816305029575174174851741045160434545245242619858136135994828969165310920343877642651115060838585781489625831163677090465073175473150979059265177590359420553839486976096392623849837369388988244919041319732458674165563827903082407404886925806845960655474432379627495828035476401814909135131545623811845494568562984367691565635991409266385464520963820313581180207479868196695313865141152951804277210802145824781071029113840884273141882986796424767243599218874527271387761710566367588219068428398800412601278273490705250233341588917537877054738614989919090850459787713211024145289786043212277320572788331829334453324925014870759906396988505527420538152976468468698849523367500850821466190655092477634751901241463394040716039972471454620868281487962938576574972597525880647874701451696939968505668589060002134233680266169473474641443016319895028751079518866142690245252742937149647368197485107833694698781230071165767973654384947953275687344684463734364628025026169340868875809780707730963459323777266584399127859532762360758609161382726234339953399307305208810050913190684702719724094550058621836489804219167173760247479683896113928016089948797134470146855077735376599740816311704426962983429057103209089907245707670380077913837873835305444445045859502441766579214345795987604263691001908716376053201271123746159005510798200394413986110779409239774797132545794202493259379703432860556965206923122058120314747946681555307507675209239406305153720012149164099999493310220525371346096610654712719308054555960440829727094772995171395315378154198593901600036422811306369653657433246689493148547004960868972642168154667851948460736553033063595032723777760808491142693974617846826905793248985819885371021982557973023288318561898871743942497899156080669380207496559536458409635964471779816695151973307860193254905381432227392769637546072835447912005893686369127415205022784835220596936537969744965341163425391994979267623033805930683292864137273632184652554428964664864215580380735452453346383670449664202910843988153263340195141262737670198885185656295260291884490494507855365786923660299219269974374251178899269118222457420096843879364477935778832397362784252874579205588155287801960384155003784775865760599002694562286801482355371349613890017794295399646229957050219477913955833886149846536342792830639597703807376017462496100814996199271641044370613702340593999547463204894749733387490475272750039186573452294739366029207777588850901460041094023359741686234439944282801162287271302568290760927008103495941450052279408237966273041325741368730060683858029757464572101565872296477793741510701661989872759793786580237848628467669957581384162169680492250419302858059191040998531622418283377405070352130961277190746197047664097753534086517270279588615724949548238594403156005901896354748301028432337500189046769402299211767286696342528315694615223319891845107860492955585272923392071710518178063347395248671154228186149152853534638515729035941798278262614295166857093427977407900234277031050856342660669491959326082423685965328084492862211817994192838877798162775030248149134619868670618250297116882302797928140981581746190145877076651697265398660601930332665220419637393908562714463070824399257625930643521542372850219108116683201285523121498150136007377388542921093840729440330028735938925085621380819185235044665575926691689365130069239971675629212102217115378653371715127143681293871147276617346884132982647682706033205055002284055479114264719710849441456890353532683572276001552544794159188636769253190527433431313462474295469853096921044687213082612316827027899991094090517000410130372422404760813566488169065580892914819713004717911088008546077355047513733642811995121226948564767543988329513496327727240787216881739882662025736512205382340436600252682137961337712621732097251299130680299115540750469742876478684928429664661908476095737232104795117970485619232390249548335520932386540328082135382505619772979424326234881722970875368021601673666959119381127133840244335438907679358595394474467692830517841351321865247382632564205767786962565246131748106112777953918803638684963721081943518097386991294377595535624372078829990234957067746648761917367972124881560906297893478146496833307576474593336178593163024996234257470565260778925374750115450870815123184281346671984468600705288754178096575991066715755934461837576642238919179936090370255182142796598222306361367236803553162486513813120231513843253173084396709438450935479948460924804764251855243185494283940107192240799466266561834252321962100950086748021734752001071404877075157687453893384675174258576202900827695629616656676287023547084829068151411192501071853519852823402696658562224762500693434355836557173171350303564367230601777741194579894416320968137130165816989192468943312571791152793552077443670526604993141720016331878126670842010764138175495801691558432599736072049479312338367641201745467099395980408976635712341341044737749813522981523502082997455605027539917709908035001137336165887485114727942167721190935941617558070100139433610327751235618387901306782654551607435061737044519828209045124751373165806877489077459991032737721982429050372612515947885034563341114749735873627743327111410116545028753542836217582775279931093898397291780820986047236843541943500683254671781422083334324011212287807884995121219996625577733703787446388280557707938592825128503838211709123151951368557531350742425131095763889507353259250021742088013904444992415231708794467135149112879108645947009783225319560301895665979821220867484262227676725424242021327093563858461012959806703887070683468997475225108173451860535163229763833217879036918558526613489422363450663902194408331010936164682632601551340767054948818915299061124824514972408928264585584361072524659512847793791286563520785449225271525662181896915423801197505732048274468395045756903853368268788841460060874624033073917087890050926870351726655361861190476947680722810331980252072767403782136280624862657374904443344563135902625240963899421710345696748305835855630979916329361381694303454884825275726251184220126433304791499873300086639594798309913313931894953112150399597435454787321228096767527510544301874899341630428701041767998361554071796979264915418683624582641209617105788086450500148975962561278824269337001636912007396502540110782107796776685887442790584077812568051423574065012175517887693831368285154403823480380548188880232381447767149698044055810727532031100645276903207551213894926032309724688285033005005838609927243594462544518501325869495115217705115188207253512935408096609041565377233687453102734296871687927908360847931748490919032777427056788348036736714985533983650526443612801640636071853081814115957033663786847469923034942613237101632907451119608979922154677346741499502817934207367804202536682823842008745033713582519804158438283734503518278174765285438477263750502357942373092545382941558372984792359834066964398641710205801661603094904755677243713296543347739179792435786527170352954160565845222830164694938893485911980601576941232479667302241523266205571317325631611520132849448596873549134742462247810524132328883998871283163548748435703260418308904002684227097008533274962059415189463849488711583722531524853778660913492141971928855798588663900291041823630251212714922422289123620790160159834472589253233018070465890113170643361832811241801364828739088024932115326210982388329233332577066357890083907504250841426018229669575167561417034567247482059395297657935859431635053946642557804822696035473054635966520194593950071062418439143267302469205656157135877447968343756645177375802864406436429679245493461309213512457237538148390074400240007367797517737971271593332806557153048073667622944056457309029593205014079665180201416536088803450106498324837646600900440785341407907465674374402913332889235545580343253058684472583079514396761947628631357066010036148159058531213853845698213699130251074802794837423004881749978987854884578710498583263717542770404898300844355613197941876955883692238595773478540239039693184243528029495044078123011948308609983567025379295902746558116809136188242858495275864135615880739438621883122609860445143266054519944642484222835840996195623705565146122775060216609407002911063107538835674212653717007991324859067019104248616053390674166493105078720492166531685947637996225542727709777503897902420923744079410927912452618344095291075351795152045928477004276818060815243827515230171264127602970997824690309130635746160533639249166809842171328821675982304068296561344358339733077383594937870258071869236602918265169792252161101367856622069489785673322292931809924483728367162939232870644668179638993282523311259879206002639895518533876202969399502853315811900503905568978391517640929762766616491876916490045299401000003225671048173197405168152789935030120408825542121739031780992586017367693264544423341497586841979243794075867848113860313229583604374303832303706945063611683767330248579006487371636853017448243052338000065588665411262912130197554797408277557733565404307197695783821408203444693127110655325143984080580834704579815393571927249466311419820643973623184706732071893532641042706042693287241137493927173595712728522905549812837378422210228868198817326575460523760963992700930103475534360658943749036526893748762056336621226778923974897731308996007144493057329145479329191485485709923560945482786047778726696041504569172557914311040816965985296885445357142597212451503313967596257539196518188726457501065644577975911334820309455928544317491855752642630386053592473063103381172490799875759006667885382852215694748800675155675435213639758448551807014863489623963915531507624355821172945316502436550418259051542327954258484244051926502613018394390572317561141217598054569149277481281738780256415721873066376738450014959146632851970647200722367701357202354443584141312140604400797695043192198535826909867028422527519828835776980559027235317205249974530210382771030465520315927522128322808645996621616032027597092119653173050875151629869601058652703738713230944315623274965678254662082062928935893255994273007091922546961367842126948908499160788254106910074741341543029721842451203533731941052182659584668524686047973843827566714783581647651651192525557779518130541860416898847941778357560572634788108554497310090721696230982176826546672137517889690233443742864980229602008502634242698237176384514696263279993101583071858193698413252301445164178746153010681922525888846062265503799740834381138366751398577671050426611709706521353213870368287663720305277090478400204650405678622663903221321443341462416581877272031742050811631806372317153889593854745237773217220383489133977607025265068244436797643040837337576253027412940793013320773462059513448656351830402819063664694089131960371026700798212889696975354210248854558811798990317572325943725978515456219361466194269365119046005768998719465567052302373284651207651696918351661117111729281276795821229398702042343487005853891188039901943078515721253647841211227757657186981911778281279064895510846329393045296434985243384705967732549833406751925863606512977997106155605285299755297536666502923473037249450120741479746988334272694038614712067654615239618903862012936528063388502095388494618842124949338584780985320176811156546314303389939011241681507269440909947685238651036714605459255118983321230804873698559750272138897478359019600371746595009705263136044087448495932902813390073601396854736608930949009848367707345537134390516969865465777742866986878905239168644458738989127789756936750121922639685809586836084914810380009709220103962272041502085503514842807226745651131382394247360357598133836980839915089673250429221816550843944556679042122057774358102360020188223991425028506776739219715823982639481373796262344852761210818742510916547272386990846796802034837125197309485706879268793752296090462230888782199463833586818356196244463412802155633085831878487100223492805595183854788490337128235004719280961148512626845343820468401024890898741297615927108217427555608372703789033471565108005014647664510119585715409837830035903432289997588094976256043321592042023301129912869870309012634781065515505938943886016838844895681811481161966853730845607784675159248071434217345788893914523730572561766738706986435114046353332861030822412192006283627249963708273422111411514894899198707739493552734411096719543161469509216618433306444031523309042234922320687165409705615362764702472289570494753758757681080550869153445802470770273343522175820238404237182339157683175530268560811363037467036134241885701079920070240083403971872026785938047589883348081194764528210136308031371005143101412432950273602730260496751894425678795807075471219847751806638214435748822613438367867987569723057755405038411064132600895115726949683120115568761259059024636315089974476748604066954031759910147584163394918073948800993547906474223674367009792259025862715171730829785805373495394550138860320117355382290509557370869065180187659838908804039816355456948569960202247092180887949912215922640646638928917404648881337684985839024714943914712058878425558117488587815618338623597709108325169030438979254066495527814296201000348246546938279209595153329785981057213395465139751162875651114196960527683189740877741552729146743630026076241312585308568424393788867380502113523615297373362128026536724738405866254751604092130413490757884983772322282688542275764135643167212091100422723386898872254290818267497461033298425796919095130302088952102958716005977841405535955609475149806227855152436917045883004177454134847725980931526254977303145817849332448364349384594835340878904449963546231764378354554209979328097827998413925363496866969993495078780439961501804325023600069255344880692885346858650703985643475341964362460235201387650987510035208592833331996572769901875521527377286540586140501088157976817014378022401067555343699511494319100467911856647981794198269150957028927476595908287374642896510709967717616697277627261254395492610575777246030003467107648439720697543233529944981312552563677894340567742181711623733142277254974054659429439067181701110616837025504582364437186482088455184668708760009622319207784588679965359103165101525792922545154756001179425718679229020361612243502156106691855933010318941861151444452316400082566897740696396116432303996162693868162982601036889484306282693793215967287552369632556507690731609041519860276035564585435758437863907521619726292082196227184120291294944202808908922548729052039959799875483232679387701309846089080829833020737817282246693757750038323724405033923566536927500140159360368927572953390828496055862879673741649604622072863373381158775312650485202618271737290643554217513756902206246034845426791336698418524620757859461104272639908663334888772216903909952987992024542463137838547246184953724043405747539992796412934286337536932030963373994868392677865804376917723092681444001627620906141905621105071574161328541623526062063533396267790758023596033056797690349728781006289231065730599403118197334683533957541872926617633226020304915578391057255111597086192270612140279240895312961693145068396174429067017042750390535898464612125913568627036651053436416028951735534673303057293574583260331101412438247928681477599417389227591638244080169142181453267651723326731005251480123358902309935889921677039537593559329992831399565672519560443241153720767055201094163522624751621975237750536456366956192211981257785595369166627028790180798795531372856936383966154701934600608286955505387509165592158107841543774601583175706924579448337795105365406113944858674629526712331156872911710644865685214474064557074007344514080751580043579798175561514295124778398936649122900575668785852957290460421705034457231546667435937461870911678433172775654561540428111168105352638826057725350600350770788474646507196926069762378302849667205124542019642043763706880275348777250009234863026047628998273068290272998746621067977216834151444752338083160495575736596308168154095464239068670383365428950241408909989735066707255638205779733743502911623076727372009433470962244966512063558173042116758921657868488335467120863059566901909255729090587819925799945924312618924121877448486108530752486938076111650593088577134085982300182083702098698178362604500065366594004547642654941887122016214870189060684501297975475994989302179958853560017295775677102416170250174516987831955382872461127223165758711227187970093488798210628082497219649073897023251274993719760218554656315419309426849741959037097441337605657997537029879173632566264999092436979700317103864940912518020766020799523081627920952941207348517839343999109722927450963653893732008007818962274310751593613216202604933670209986072450393350527222317537823997674676227913170299596747206724306741529933808942109724348002838956650781067939759191065863938894232428887006242424193240858196164675121574820082015696083444572681867411889803813804003380178914122317585213042446329922623497061113690269422789501871322536061396294190751862326160716612441785110895135961634587067553226474538937733406185094389725013450759099394394222602725634708780440279460815997659984682747653152000050335705188125379620961326492545123711326362587706327871446395789455876469138623499295380841297826304413563536086815187578855716219316632444602192811137252594694439380954566923444199551118469501071032725716100783000522139473647529412423108189691640484308032454031969200594478828914070707980679005291962680919256419161606476361331142828350291029491847793382487673819496161323235418250306808807669783036393499634381299888364997823571849814811837670208150053836706444896047347915877678654196448273804798380654292041282422569368432825768159444026310474853329849651207623890965583638428117927482855232692179846686307691926426074091815232587446890423271902375038208292363125945673267802590452738342922838067783261987351268134037894512812068138165792250530454205484446884432656408213290783341640286453605562144296161450768803262753442445403647722753761171787642326659111889285354729215868636068749605114658963655308877487221135193859312006795930505719108197672553216255539885535003947967943207690041861374891076203403275524384314175357026015073716824343168678866442596565030334644052660347342528819485754344100825178901594456752336478066448601122887183303118382878760976836087261600942625173103452080426597123854298504882819529043221216013922144427004918848466726097419364641662566080126681202564738288688286529181018978078816457534064606471104512806200380791933134568012457586575829836546670290173128687830791617563805844854155314498936631790918452392129864975904881826148673507607611595784808402700448617906973903456671838739728332963514481231503942775744927214725557647016362380636143341260277916178157141366032241920578848153602063120772073653861740239529530983489859534779303516726905354515072562974128293033808374140209967552239650801260700446964101452581779314789164583064324427429730161880916039252854487275117967218106312872320598097402073186176262782605092228644651691632062199039500559552923865284091519344656189626552942816279209110397742081949394454936205416128926510877659951689546213708964764837460980387275197479734251033790571795020327807547945234400892187037703108216963762532580306017560617637142955336218192300280182902081393465926664030641719541528093927838149373319822932671277977271245376957868370983411298160811062243549399635292837511807837381647926847742724461999414181700943628724885776094117975877996979594475110599279149259885090092470127430774304595450273935414326124386169014078555710997232324547109162861035713765263803285541282247190687522196313852480058304332637149361228751728029061902384524622964905007529047575810090543342562797579910317747017190560785728685494445967222259297405198456769946722435471229490739179387162660724010472537421095012235228041839807956171724090352637481760509025562868498494989738155283804155374904281482588967803977161245198954660751570441408601278514663507963892377175369365429701646508493948974528488622536518168799804515067234767946868294718687280475122300176136646906826925147182378389749283514744025862550024969755374181959081159125108569566995319504692121229934319250692115135063594590951562787614859303626632264956591168249594245534042514087767858244141834266664565750166098710342825557765571764226964570716825194631961512118014353138098987622475535153693302185104803421978741747837314375669870036787612421023515685489222047825765384248695621183336494713681004750196947454395141491259046649660057097645725283872757113778661546962459112281928984937640150870531813813434178934786893220390225713866935438089119286249079213354190778545627951360620781795116453676054254936979441618783143592272680526671998233343508545887776446615461307489075977926221179872689704861862098000009975048181496797195406523214289532695097883887018260375628620557817807063785940006235229542034602965890929641634528378906418671914709491476319980449630523872395603657379403315377111513060691008269229343360195546797030065645455485154934614412940682008346075218215629786367773614359531602242334513360548258757788412675186109191061009646082675167785457990498368899187662980284014466123765251050188033283049813524135591011934257175595929216861626423752710123071608339319842413256184144247796661293060886192884506913169269324051194791412533009232265545164405603906674149907989481106210181343310173954052545262782683515046902307085960250580763441541535486182076443347729108285820148755261338352026876883962980145724326115656296185237044850310528871482148018354419288271506683268501610516299586077752928531037531597423579322895391612502419507147447449641076313235861545517971257529964952006643429803959215231666257063626779539975753780002960577381802944979727076935523161824087811066172973247005224308276771704211352314211699208758509107436480224560404550626265713552154005839347778170323684352417794072527959699285474991130349260682500571318019907812596604632005005364512360493753725499242457235919850405929501890564744412780058245004060826575278723343424058684177038533751743077028047686745993481542573095664181551213308384255278151311303246123534025217436197417794507384121468121690341335473946288878599233826856665473578602502080144933334691660000458370294233673185680830533785170783127201881715733574481459095832185807167922533858633591319699774513247486344242138651868436657391193261391532049722016459900365770232817852177144482939933182922060989488454906462654180220136843853400039962499646833585291369493777056750596006239862029817496352268726314043061226134140147402383001736072905533188681650964182599174488925951505015445559982240033835020500044280027078563980832830071975317879525801756993642631043754108945134512476486901675677818551249839526792519917651738578213577365019767772648807672124574563760822519060768036200102890046730559867482020615937726245342431024070976230303481639873678440210004180652955384332507719146918247011014472764072522837972174089443006444945748081773563771949873395387759700675544339256291011804101642854819401356215051505898779934889368080228654141208777434448598588707011913836327699352485525537894004157780562617565106458154381795349658475121173752480664232121973053840207849849121887193091657079627991684870271899288092128708538701898499933983795787884822914458327119786611044615774475363498043040243819385299520368558400530817387072864742047698289512395711665610244743517289693428543896204463378015891373530220032552704144701971310887420800922579318757631865092814194040664523506665683871368109871011481421105512286916023175365731311647269211000558099643337797202363411684662191112367926600827708104323824500670624997233630967140850833903491439777371542815433437640559115183894715566008010397773622527598926518833659616791537847973881751025211903533276492607714539913323254934278342756968774548657500528354842146990634332085757807700707046715268281601672796739527897198510297062276559306094255184144702135226516711644115360020662816228710362154741315412778608297197130843545266390318454509262764009358632174564774176891834813777694237682430675508496989165814679731113371565840204971083346942889216410467982682397312763633018326344466725471776844205371957661719838251687415765304921563864084337199336136322793075964125849554670549620019769653762319846306302170188171798405975064903698133898529020842654400031239440509349488700792595090347813633154734331468417442505892230409456044427241202107067216288770555329461286672711726578287165484064605103582155071464042563473149686285503765705003858640341208349207307177813402517590429641380781891417578776304487651489546917941215613302379293310855118953595446580506761644617021246316076371310217309369613546963551724303653723196221801561388109588631120310520169043914417838686152544824608231461649360096960282156178823812328556121084428577601106213290253694629307685885962677006827427482402616894712393214483907519220334793663828795357701386726382801711230156627169875031675915989795942387905310520589275254013538533090408210532878383117980604842184275805296848943570779105524055525798773748527535145866318564420867757809258708791939549762548013749223882013001781979352454857539165695997362998204045783252966337670176949290287657218510421156692351570745788517124676613750022067136403284654632160798629629658733432504857205309690599328895875164579065244527905594406853120637167881177639618493961604538409220901674247919045036774921209736126730831137321757509195765223342442506270533715929300390862430230696827458987425645972202914931348621707441688260360153698978401587005982269936627144519561917874293506777433076272090194251198039582676913429192983174067432273099778352220980031404029451467983951170512970218186093040943378223425638787520928571383074646943648421051097465514640591591950635522631562752457470852564347779295674155663125858332311481107330276073472705894349380272335822903186363236003955656196642519086652991429855441158956369998195642395319599112877571350774085939918165725474815593597132767056928298115197773085242323923045917488770214142186035234433807797419898584298174594272976634544044226409451931351847479717416290919433385654613935522326290793142335854844122326116755028267074830728453128594880235265465587762701289957262577793625134280191781401292121377405612092715588539070084787231048534783220927836914437647099662266076850793367733275400610088734556970521210592385094658552709459475542152704641757603301966228571877951240348998797528382778903798524223655726404091200932429946905948819122557711185675155140038937227691590884927765251815092189720324151306599975638709406281851885072863907013531060186492574489396544892737443104448053907102206034771259170693992666943659774627956409290797243544370300289661032308961500467540778967898467929188682368506678713868938964256622608535080876123869881944051999500260309939166815656309182378985075478823499702653223611000504791379880928847299719745838042313252017508888937336526069334949294810916362026699723629717674920295115717206475460308085145240726731307102607699231296746489679889362390302252262285265996704251006797460257233873600811596893862054528961485799703833440673457693143354403136619489922169015199833325182790155616685532421643478584037825359331176626917401511249536100421176102543766904392212374714541037352472878420454425751648334680217141785360229726113565057117564829149551325076677665976126821606254470796355011349209680660771583813505185417210939504476593219700081199798299429673388694612226063664348058187402511350522937737265286397167837722885161604989699778599179846741875056419010724957261311671791650569411664489567767479596159937276459587842482475340061036407978727923823364749073142701645330415720644274651389782884013684619745982757382782351173150965419839546376859978038117633044902440042509985132747205802260687468726649624308982081847602208356512189429958991129978999756464330255903989848035508604113762813506587203447891674614087961188967782347599947309055545896125574887786389328242991658288819180205859896471283117298524675415344441896755956679137844752535550727528798157152486355403480121843363940292403224181232168203433968979932019190916500946386532845171224498957035242014721924085076191012542310669811834783498180846094608900463811351116274201703704572508177581479442378829004065199639614114182097770343462960088618396175299672442152746164411142432757087959909058557740676355346365357636708247323946038015646076807204838798881751230205631113646861952773449402752080868944252949500102179959965755991110651089279500853703228650976024941309765635617543721087683523178590934278559684526952835858854077665759739475471036905909436996004768581388889001597621762906873974987336369840910557986776085924611205390947947868779460486183909905068608912073478353998580791801801619360416487501263546728588336290386571584026346820260206760297103661412297105407569532878376643177132210293078033270444027408960846018665574373594484944274812176553730044595450602067631616613321314946350797673624304350100352781055515980688385703040176869907617903220740330497257454559654940109391485107302464149279486594111030734723060197032758859351655681996575781097237930706606691527017409703128416018620725656476699973827515885568365355162609885327900714816845816537784241733505752834229128247968007612191434998320854481332013185297592732300063702814427541138414049958908239495893258627911753999616454742320883462434733255629896855749290569342360400889981219806401060994503150273036043959457658065315199427690949267422687676059217732741829294273497792656402765110961947963548659190986014229609408212454246193066505415208636523618709447888573985840096028804919812825305743545817583465331058731690828389981442635825343809327571141498442923414009149695249911184409913965860228365234377788584631123271776803961226388008556860466034729838414172832159561451079003384869823073522319659285434370699428873241465318269379580303669792788137454586034938282242799166169171721686203980489676569739141594084900559027268945180423069817833451804584369160882079317343829012471469101598358450805015353100499143982948609158945399281009472887185498034734407320871832317547855325730992061514710701305949109223431421473464897859763457997715540839562739722919267152419086493372209039171238852213957339089832500733090016322251708060150458686491486371427323738749520513731611592867086051561321373190400806267100540462711731987222273233496175920123449523270217395806134785514985091829230658335196994396664606704402207742508846279790545990289149677982940669248719816939825775809785313953291091987388981479801846079881991508734951134096422964094232743663472636570296064302715309317283900846518723297803580628933912285076324115015059387183785127379394674138583112247168138651763993239829454276497896192035498623162477373829384714702061487613218130685855574875462389118679014128137145067091025671536836910478324379174073917329040053340092584842547372836529713831369823871981049747708263947891512440950909173401437139612917518823719061759848109927142889069878636605662002142451527123247989865814710026697940989057242490821603152154465004293635120889715333283782267012510834218252638105612300069881279184544531534939550383402292105638987201038517590747660802269940521183408662469061656533530109753582873504029179703336668669512715252829974897672097222373987158602045884001051897721727218504921052941304573586263360844324694411104954831925558560436155166427365021585720214847681231052113290394576911226724649107189367196630410563768099442668123875965459833961148848467975743890143056197110344093986325474427207339752369844503104688244372068202133320533846170379316362204918881377001451817905695520561299797036529129733972321773918157973200653864957597111637289067959768228631431195988758942619396913979666134912485386276143551293572438935059293750409193269324722615125182268575245486595677467916816956457302054276596729489442139054865897213859046436957529818915001504277953143758203968427988282412770375527119151742851644819845929381457001283699159098243059976322366874708116140090809978980579475693819915187027677689681664384010929687890304571698631044014871884799885463846203466367094048732197170670058066384449980062469580219002529665062121731207205658984226301512164230547430087660988410105274388128521909428832101019418776223541805094897260135590796522607116130421340009027135899053139423150194840081564722696687130542052173033880114529672104779490982518184985959118013567994276941326447574946518209725055528069783192826653648218218028327155195183101545734148979075841979442675832957350631502175797339632387470257216301421376820759467936508646172540789666942476319863772638810217692242588291598242071808239960472905877732601739681896975376081924803545867437921310012255675901631967662140140633775054339436028591049713198815268810211140499962349534766612612599239723721566027119860174966038185357436397049989161779066485440080767752583175443373925592300503536413834226138026537183395988781838291856271853070856939779857896449838927195022488542619644956818649038177077807425259584041364224784220619693450553056909226716167369725024652911361254329373466860414555975282704966409506315641506655457371771677751849656783462217378119792915207274728621612127215827475549665727051509560581833479347271994191514554864399095614325734431523599367719149525058169650295149103488449687447435930788701095527881625469321299450699990973172952381350730297665012453541614670788831266392991918134479646665309276596118734699555544463662784398017519339318864669686920295632797810906838144642609529714068927630666273222267859755845361580021428391961286291382593178533674481328750070335932562538081868639263236057899469218232054377123315193738606488708417162869393466101455093957357591163432738612051727773694093590434231208263988520872510425215424962494632133053675731633754723594123062432180487717954499010293900165245937258374077078024296663719671062349855961002127020417203966827032532243179233885675549197112158743871954871474755970110102114083933219572958894921183325329568952642845715182699136838891333258193770488802478024737423450182461171199029305605710042325270557155736601832036190656465825329382776479729431525132401528385815135783394963701344579071970211974121190359530407818438566895911568526230661863130246083217854104446330421434348581872245491191394869034349013110922287143788423556249782262344660736111810587324187211524867226085279674307856428147418089543435385506286793490453101128879560408247701239757812017116451514982362670348633351509657807073056038649056453890323771434338741316182675537709992824081113899362997709066511905068532057081227881528769972994557258357481888611025285098669709643890787623697880540365829433582824758823849982403805572562276278070876873035992938047251773473451645775722034674092279375981056569226331109232546649392545389639595140362017475328465162003046078169863816000369057642206116729806320684759191557231006935140509799514841137614818721574107610092635177956159852883981043185401922095055600406645753944808711154487450175649272058269316812781315565398724112872964301432654675912226909156345334345239555478314878701807424701147140048874307328315236197486541053430098834659674519202390076354821689562842144406076059536350663347775761940044799839878000656537895532066114008095578213014414374926169167644551435015321972496810324070217284623410142249891445041326275112564603113601911119080760344710911637525473342281276306554419375359374760825607963832396385988416717250587160942022770991128668864858826588768932090858544648699368605843668489646086564510595464559644325864694652412633724103937429662630076654895670403652763105726958333755420080033384343875576983504158328038155539842712655705470587505334072722185521269854429550550054161496780470514449707440146461170800452740683147748060224912109092579130558895149562879762026057942458385903941238610900439945881727391007626179620357438137694090594349043767347846379283104856603192308838806775767176168625792591685769086585356799660869121126372077922612001600700580479777231941582176769708158071694799405665430343660138176451392167448173403432883663542185830978482532787365192789984705043346753679537820425600880937492928005796867971132764695623003119739258329321887067855679118562778117259854399067192191148670672084965144234139712116724539271359143133825532609603613745578538924387668585274320862661279705936158983816171368386448598257888899386660416295906620238795386398536038324547656142367508306403650733963601014205193438394075687419570116968944480224521410137914787081426876882089680224300560818867394405055178552499978260165498096666479712277492210381831458743636587557915827003571611537364708165320073956167515850482249383707937736745540029370814112091071378883528603499527625294015851411954119119726118957439020964985843356395812403047172965191684629545165557988724346150001884269576656075360339882291831074022345661919609056231443048973919087826363042287054063998782552187793367210759214557345839110418205273985109592827261942837356287943686837988365769283385445355619486463903923172232931891372113563892198156750317299549037862371457652925582172183818042725551449545165027605408089369273007666549394264446625747644554101287057127098462527231138376826972125645788605121367080766279314631702375256997580079343634685353891784095251311888512936595863959126813636878461675593780032144174945106355457142266585535645438344091495916472318204272290564014415759745733898106387013489974557029044379242512183392594899920740256040637971865562037628466819908887574863196433472258818823029194824232365394474852930511057939005332412005969516275626388453560537596670663437481292580797696582736669261143701372821222278515523989848445045883764124460277388251359694970343243043978304214407305562300051491115812064634378609896338060603763604483797312407791864762750784541685476932863575565261210415159972702742275490962249865517390378333116661064036322788085747157780591989225352570062893811869986920398426870630483922088562556755066179330909648296572046801921732741179473916259459153402446161194553286841847330879098574671102191947091395925909806680198685787422764110096622872956339424035506425136528876863574831811202689950152766040188503035678046220726102043673473387116357994444820978645831260462960149184267883919877352905283422240812445980077791572211603017409208797596323212852980441697325261410039363795227481239151548959740604629091857476964649230637184792822957943744580193189692597665845954569873217020308406518941278720791791689607508734641891766854187193184389964879565212807760943676264847060009405859988343254683085898874111688046700396970020948588286843861684028113845056202287674053439151486709562879926653767386197972005394764132139107685231928409239480912295958302562413442997315175668280933877598685710334642051137436122164879243283320013313068998129163871632058168748020386772105929522376804694399205509789109447712612954457949097085237028650820805928724641268315211628448362854645128837736201351498505442671423458004295568592505766860472562537563990339748518809448931457521688575735212907535467166207658890378331474404729886207429333900697322269945043350766603992388167109613880803749623129162114344287569367086184524964161040226878409899677637716938970487458719092422622012093901830035155045243236883805797660872964455018206609713107049430721429007060096847299502649119104054816072199229620568808982724861955323318185375228168983647046280270463425135776125089466722968610011198080565820147818228684257370725764161353792809956680416211591702592108118605662649177250645932827752820705650793861326071664947701994808335153433680549731497576901259805140460060613673879064896076291997165033767892834300837881277024399653255025058269660785323351009777046489248127788029197599073750073794701329477314588248986148480699783250270195792753876991482364014263770245889999179034636124413665407290883702614694494359842030549942340545981443378146584125151570502442838015047154560312719501964805530115818298699345847701792108493790983665093298687583187765497693905123056366551139764310367061317277081815008251266542591756488916671556861056127526753752700486077249785040209131941406527344012559923693959671593347605613505030897485025263756575388785036460870121124952745535348402945880873430107915986356986982460144459886033656803949187869580214245266527864523272236452270812416019906092392830863263631146256674430231624549928452641258477698891467019030292452866511774571791338603450791773905033777147301482689911336976765997886595208340909190229283424975622298546247535037065678211238699489483120278097133261802401140864523334013578275428677576911756902118313283997793465840437152901514747503893522779697122714265035402943699472609125210490395493689787619741610143359573324729190927630795920234611256029695420275810124807636780496234727210102062636412664853377232901751143625932164040569210314718987500176191872111373437725153251008381751093773185812333412147402700371284381195868057898855563844030028562854181812199208717438255545595106329324922485437171040912415910831119977141483736097484912727676496331159523707025353385932167603017019282399527720947155682203462978466977827275785376781408666759588902284883562855368044647861736280349328567987068163131255268849904687631540639605703220291636262326987776202695016468471579613272591772421988307967699158670170706371617808688710640917999877518722155230369533520130296075648305572738830146325478000560338251486340504170974974827597491971540742176513308993900214483925612757224689739523777758898439997943159562330846545145824453800947944788376287419734866633400338359888950840191540010528929656693142562323491240114511185085050089253340774881744358282057553915273674732075085699021530516366048596195020181781573538445916190522593655774000032314446871184773666918988872369128313964302566947282672801562490238285031213547981521682131616407967260429953823936229758440669028212865860937901890228025809305378267911371883815392643040461635764598074097160981687850605155517076147754002663999550919434673133765729577625147581597604005381778195673238660568381134918988305194863806485295391371716295968159936695464186590391268004191152330528305787262287439126766942366101427942858764491845125256559204740560129320924593357482552481250326888758116900572823186899826156430894229643030358669662248306785112450603094369414436483516647448978134472060447943597684395650337496801448939224503862226625736809565453252347986296567162374657397590582909680177172768601642686724379199720291461113983071014405380684732503439796413579665671122220789935711912648307647593258931172672704997132424990938098078059530477782964549928659756245581078598342731817827139612190596657846643789593147536496552897866272261591890346614847215187615481808927154881490959801492232837110573921108404674997003347364372822304739522112950402517126519282496844588550232783308124185319227230722867304869405322377211982047549176718003026846454491654963819684937877979657401755142298198384992961685070401201396540717969775735727667055751874111969255606978329878735461739105326679246311674114329011114331285105683864964803845344737562049991091810655982020223632660486076968043676826367934159893656536748359607698496828047863372038495678849740389126868264372211398251619475340364050421594901088598962057330640391418954970708322600301054086957787379063408245955702582050921868150032946902246932514007268888437512009011661595388665200773876472650824682954971957311347324856643761016285470618227796045054906918475006670925940846821945618712165173797332258207155744189780787296995380068869001035259863453637033276182044323681220130897535535088927221433820725191136118167323509779951141380912297378046279834459418761038687056912040452723368300876455118216602481687795719965251935535710054638003039684918313173779777736252338213972369845769323518528089881997847416279111006211845951137380620334780026118425570964775865183612333060664912162211449511029567247296469262219548834427547076479669342940879514135669893735060460495239348370923735726408721246651833508715795457511304057980095443783905551939127544119769349095309780774727804489512974678777979512614670449791122192559490868182149946468791200860033740477631009562861914291914180360432241523128267382539181842938802373284991743579399788537554029230059270104672923960923398142190631507423422203437730839301024194358616001561980579672967966170808904568283730404503313511021758275276420003724976715053939305218380842211265463947341233458104947440541674180911647266415609993428569099142815274490445479232772857080539859310781288669403591988863859653283590372803789450843540231289793048595945709658063480987077309549894944036744527046688752090249895746617215862923340260460587028490041976754951026125334039497557482098391146986266223138334723878068441941989622479498614968783031414436206770221548578730908245750338299503479401538535819903254699769312717383221569207674710128963083932900831719518035431055475116557214065777529564200988336351887044947028868837857921144003027681419738975340767158861690298737538091959685773454092678323697139607820679300036731099405362120751978996827814092649510529364803358586456974391641545715193460512022570226141772515683246011957787936512048783422120951338169252048744754481137559115512483525671838855476640921175237874242394470617087680865051772433721088063997207339598149030604961722190959652666671685415531075873904590732601805682517662431526774215065777721912817263580213157390944777876636366213683861116572944376852479966589557111843668737533064968312213662202311756264396022470894818684067287447476581585262160127094945682748041589972599817207669130830256415126618747310129227664658112537664779460123431038191446691975025908094762536377760050047233309542924042857533199214429379683093589846991495445046487337180745634025490587027932524822225553934608196658626300456750808330984171460097844524809914593098437638149096862566302834918072227187325295493477502214027121219012154127986050508892577190849309225843339701269346471194430484267913319658780473466480480066224140716811372830281152496021380673079313127205886827819127538736472906071301920284257235824208006080522344656097698524329156305390144400639337996265791952913904675856267849878427487234297309334707746271241317624095159526123785073590105188154258129438873573815140580230194242709410908424343205345052686953822003036583519796476588643953237494954776719378111415875214229342417563561406319676222596500361359505325815328463391527673512357507415158325827337198450066214522616187793892931931991564113941263198899663283296179180520204333840586741260538681618200570998840646180962810096543373260787735410611283303764068536425588886154285075274781024991180894027192937821235149405655049125191463843586659943086643221001524471332217874742124936835982878014407400957861748001227127118542665728536695494543690428942207779979041483855592662327859026648989686135021604523725654321349447954068760258021551945564391761994583340720874549133827248793789778905898827960099313560288339777697755081701319003353737029028875648907270825336728595571413905100416031105530354963870176063564386253390247025365967642655415980922623346263352381874689873763568123899457287618475015476940360185729627977128887702853198001525412214432082704613378397816411610924062519004776895351050062761258174574655803118495820134459461036263701879414306841574951080955188193873326370165277493182303022027924264443172710467984664230185745900822495397834958558980842249966519565576424775014332266029453013604878958687304088271517209924611920756930619758469291255998137620191738413745646233019972588345575835735653679058835462502433419005047958893834738102171689245595345400391193205717593351544184078867487327440437193526427027620722470856928055697836644216570982511868204721126186498714724278223956669697836859613896320872381964782829866764031857998822116039841264221342833831056721824497302416823318482404665510925623544627299814306874549573533487512317956803778131008904764284485677348953831712445002904890393664654748382292762994702896854944120187909404948906615312696072887691471113354580325396439376014421531639580144442810502525558361771455468459976863341851015872023793661435941201422877675932926811266520401074684013890862785851578389717537563159338202682916326931595889645248575509169104202882911842395869371671784026458534748903157537427311760145181351621458116470441133507185047414496577840626968064985884875569699300395370414903625633840719231306722604886913577170268637271250194765542988385429483653199664058530332287672171748179839574674409943907427052426300568956603019528735970019636950697667325387662208796798689926435151832400550204221425178015910364413370021733733820264546915696912866839168553503543336256125372305803804627758118101874583136077652145592102228043677753283052143218547790073207278732067678136952377950481029950603669356269394318558164073142307890976905623708037735922115753207730308058887425717714139505934299811280868010792476429100966962984749385170121016640553383004990234064750781821620585745593025916516736509897154577194289649999452859665497751633354036317059655680926194017072718333936263284433853669547900367896084251723692663019295586197296922980924638108701587826192096849046307247023954744744484669087133035336624080865442096033772308984819882754905243382098429089194860729352406141172539949047304874317704788893600287418567634996467712173547195042307056942260238149652357048365949612071129616498288298029819102516699509615018947036269783821976447761818050527197240721630398061789718147332368783568190615473514317761244772040566605750588953929456483531699588502426706004229490132538006381723513834169920735474191749657845588043716257662354751380696301065721849253948599352008353438695776971972257509889249501983048365995913735186718938990094626771186096235021265671477861682208232119622230332287523577888419101261898486487675915905049510008283051605766928466120306199937365298245801571580116741415406506327348739940271778387851821838203463635348929260978390409291782345623116890622638239097856463951248889394014576653528631136999645060506269204834744390109142183791246417055010956839637622564175665204236882989315916572456632919300570332442593829709265316539127850738680227697425951300638415489391925983785014803097640982029508109238634440346741552579484205499620056723676947274736928659727889445232594469019366899226845882481326338613870659055168499771358862533887471101444561065681116230758414839412568203294175328702679805649596731689918791554196152879293940654734294476201279803223017116713957986143077474922713322647529894331278851950530260740104791781560338240902327461528399009600252533646653771156865943389952687715945040119135583054771462975667988112264933089921083958863865273178315690873795894807606080340956909682113748555758492775238244015953721283900818548932899399976505736480155717992616952345997487189522065838214507996379592808272870590535593863621989375046719255851123070052526183932239453904764491258842800361179589670366930146795031632616199331967412599503515770783835098646270526149157263662283272563234789364916088213828231778749522799112659251832301099051785928456501536048428273184890754953491048295309571819462545010821505270455768262972731475964684133686292426736567328602650632024662730227718650971638443015617095691109918461093739035163624116464253372091078943608065726505859859770549380965173572656213826711490432218776747447051929819406758308455386737426167579673148589823302460079626824646360940596296125104912065946128029877207412947107730972834053239806361892160162257226124396581942530854876915461762621364511635300953656452173766133421150518782812683304756823009543076358462619036641940622243491489371681264723017791180968318121985239745339045781886884382342798001987929606375578688057996605316442638803620229016279543996946091530799167029442948042699760554834293472741731781966837134502880306667943278890896982782003923810284807569326482390663774663736613096645306972131984736073593277059128842270000949992465499700582565743313618308103640539134799554583290299596492925044413451213737110527144852448786595893196229144864102612235562869407724305069168190579579816590027149351431302445404326459335930540016285344298592809837837020568343593832104620277133442421040792353214654402733429564109850592447060304075032756533954269044763648479039530179542815553928947862934775393669203645536057848302532065815452954665266726485112459602343160333373754296255171833081965757004455608388497607586071761664739195586258332542816080001551803806963810232054324734717474858645648726930260059545892960676885649426231699903662228992712779295786418107713808123006414347826230177402411330591279437846016154025647106991813729555465230262191672293822029539334578268257250490912526930326688457824106373678798489503273608231006545992272778308362756672527680277805622252804464577639925288695612402748311492721397565215576032217435399406704129682278358826985617114864023575552435684297729963820021547939915768555087711082097732380468361687556335854543419704569688064450309951785661872902179250541014164257380988645337773971630803613411295987750473647812588908248046469775095786134944263066006577923358930955004422158329058494682958007509348273052352114155474075646681188017411591273865390556246270854598849427054078975602598739516985908671482183816989276823624018426163558870565789942015854441036215133187140585004098958716548289425365546204235332035692583184890666394269543239326305790259768712545559085827935638563605655945038313644402742698342480206855675716930374660844149087499189309055806068385601428186450013372032451448987981550141691318760928834852828179986872337214734672911272349865438705234342831510006457482764711491665931696806286300972948096750654440377485265084991526876843760203518728772232839022377723440638499839965020521318743793171490956935268530665200824668067278115289221472380872625689766752370345374617328917909025104564719147544155889304588236157061382958974630330864450557232757293432919342860324477345964356914159776479015199995744615601965521900358298444671749440854554005717279472343243451517944750989493608290508607731190774844599133885142106632913799685972004194781427704156168405307360840481260062048281482960638562685726076964548804938450961325214695417809678533472465041983962504519145508879348763370017692892631325017052065520285039076186212177282002217403445256065698208055270145815330824436190460945988863233605964063643154352786398115192146659160958113481498114635421558900289611638334778975700328429577742985660830656422698041421407951543549886562859482879545213289866275178686940225602266050010147670467282078847237499702022307252912462200745087436690314009126715355336506653309345720508418009209250313794514406059534468536085783984945917550383989218112736170861292036164083683257025596688567916175641590700767429724256684336529633898758411448222602011320065186927818859323057996608763475753921786867777252700903800961362495511004061070739147690696542488043456841383024153096368422343167746007569961137445283066546814908583504023090233894654584421469002143729755980605655855513413645481154859877042841150265844258897225242213046856851109514888376387082785885692003899907338937851262011033475514403776342996527756290556093079567235224987728042636996444947018505102327242021579333880294011281904535047563957529632193917904319943116939413416487022990783338969949773753384109158873395031249046766805605494162247399902045036566088123703984373901344629669780029263900287652050358349230841145003897619297231156482143681281887386667481917804787806597730860041538728379765973369114174682557740317042972692862837131788064574975550126281676708712971851510438128771344736680305939643191261877287436328572585367444212696455423599301682933899961043913628823627690480982087435590652161360547072087372628104434487781668376554143633657977089924214585653684806086244637739774339713333290726684174711384872346071230644806215719860247875133293957622183371151698183327597752252782247197225746025576942640750501876869219952539279865165987967340675491711630552180582583813871005194560968494262342852689659682756979822251519379086882098093367719963044171074317092002635346603067819283772000350820106041981417036760931996718845910830762928259792618820726243491144270527743239414901607524921754727740761340984230745557041264574039813785539775236381618327602194608553813785257019910450570929103662641166955877883295434904999344541595821183188619527313974672623401057055322410486684216409510352476391239891112447744647939846085283788467245503662661230245135896116506967578098744358532715495824224734946124729281629393898157184979768083147184697463444978739764702306818799781510095129191995351916484157095004519289612393223712739017586073628308733789422038032865739207567234951747960895547822062744857122230487238725156414298852795639759929652856775524114686716651977023491099233855216708172385589923828218786857140505630598719049482749078523805970511044706573615281591272995880383841784467759330167131565383971052028478943653916591065231625456586743362395166731530038733767766318373829797728729176676958704248153177432789216623769358244431948945415242953154886564941829025060089696438236065744657679471914856990793281724482655137793895638304192452471071379670755482641817828713538398162796365432952817126995374551616138611505583158719874211528400110492914003828017577271700514221417898933506080245795088708091306133305935746159904887252141394946852631463942142939715095264439228740577412028949153555712952801779618973285185392706446271671346673255109986985802925830006611308494559547523912907474415394088205568430013322050001096974600381324856592966951686070653664091349161120524965051836042717324237971714360495478002134218466872897260177063011581558513329037378558536663717241202914801964216876136638523582068521401534034899037225518742808021437789858115299201239467011535961646316904832432465752950383656086363463513608423644614085147804660264829839761721725520884327423684926992782810857110245887590973173703741676966667214172344850534474148691406997219888658051549268507887506467199112538589532911569473115046674039912961605628329871144705236094573540079720612542999496277986072280778360002163936505971143621181795523220235864370123358857344027209882348630050181158578881753824515697985313572238138458220251327930808837635556790781465443203453781605943332317701693623536698231570400282474734259958133139238594850630437228805551755373112749782672090533474544397678667907013945980953755090641921465017050362800237423629713644369079023405228494608981130578594729521615279323133681971089542822657487398184859638560842414135711420232542489151987065086717302851994204994896620868485988381121613516371151927009990768038908309144435559465861277094571869666854946052803276400588727928508205244701450905280073729010066671696299680029026617931856896260607027047903357667754680649850857161855944080390178278252155244623847491064014307927184521474347677306399843462091724404755736066700930527129646773853557825579699414726715410380714048754928708781854784080295221375480051093372457650591097179184881068194232530401729093048701003682610561022133445867895092954362354765796893527856534874065464546243469274849255270800216275897648343989750486478995521728903964225808716892386678845532347087823720021036702225007587546424800729786756553685419461229049016178412681022425835742100295684460662413108794976642255030746918233569591159526160431405884507553804898317336783725425726290945158697012778577048082760019744329954793080571907425560464167236991257438638230974347256547779746866208589375367005900873661673654093667234883846392186665664949623908819190462269522776093708439962281716169881003566187289465432866769276182980527541078871042691474971399904974199485945486575925430046521459823493464064774290540060987373586437899486436205756463639229151381041164395550342838735900939651293487911855044031754754854166094425126753988885446964924864060525739144131369193265462162605264462936707435640101049676554206755613086561131019045148333607736868009994215851625264748436391989492862961859342076596242498513153020924199018948053844222841506839523108590474703164855789841815385776069464030134830752877546608221685063961714497556436822023776167208523468772213186998608797629864856390430793241610135648248392387387066708777385606971703995969772332293610596721612473865980636373472993581434301766962981834439228772268987273573345534428402669626027726275302712897421553967109629792665327688282023226407362884466680156824903499902136304074976405353994625336773105638496589719629516657512674655960076109682029051133077870420354807572127411239985158803449874560851997623660462942542838562039284199207074160960708455992185297740539705621808024018650391175443458990107559999138812261519552108652728679379185300633492436531988180826167855513561274201803655723594039049793036762038565887486613331911841122878726248361319633425951531597195409234410639282931605993653727463127243555027358416978129077088507683738997607357264207785581451203537949682534120614705123079202805659400212887435142351914071318507062415986452338631272555702357221047779206995238698311267218243485207036012131127641528339685607082759105313316626326185753189288403172693420290565665852344301920386896699388367949353200765540003981052984510808428721926015870302551352666723325291923562043416292756876175507017378872449907584751694369700255082324369238072201564487352160682450708077263610061018190965629075865884708367294043839767620757104918325814097444045360541341711842913298642705339357338122389667355822340319554249165406220852640537890862950343747185770934283682384903479558510663554522182905131639733081397435600186883482609956384396860049628065153816872397519484396522858768912475978108272823107722351855651620680406301705078629255448985500914442151069621946895854091315451319096894277068553425309098123895345877218041294245943277115683056601982400847601884727967052760350469302110943146044107192403770411413090668457286543758579935759111570896273930697959119224524192705436529965400023685395193449911392152611048314339300690700050256294466023228678102579955973159627651561404531759454767664547562679598296800983900722791301569497954214368978797677662677741813597024891082563294338356138631235572252196973105951700120730938252530836130040552121739785658643917975107836293886899401156787668272567633021738759647626328703550580665162775548622070540785717403075866460747496131170659406703037915310824487090898830341351432824903988789367504818129534853578056616601815930091863049541520338364375878645152097139195530321550621106654655873089895939195510244718928983530749451658707402394288792061609081405477455199656689665548862392652829948995411049301892140170144480312994807450521379807731510899678032500402829698815535867271229184267888625052631917043798955005040160353851580380878438426156783630469751723499561464092601142655087523609899769373620453980544084064858992633741202745262480955248880776413306089646917019814564887294037327673476957381112869771080007543430610483463337013476072234586372926168776730759769151238101939710837366997850583140804611427252164806285233821986513088818287636998194911738610999798263135394106073421993022066340803094665271332386585833962521938777985485551321962358256116995887737425823361513964936419327614666775359095770540561793705636831803535339666914885067201967524523977014128521056544963703640636051943204271856693525932308718569766783452250934193189535040346901562989681171307640827741713277047173419902828694820221348841722326844717391486848183866968305762541733217520809256765340559671339260865428376658715863634508878300596174896084193831329013123745208391441214888503387879059436273449946974705140695689643324264207428711835417233613245531959233493528359283427102054720446229193693717741506221282142460936236788254783724838955801580863935920236602561493883799144840940555805199039614964566292423087815473148994995973910670226002403663694779176589878912494026938808768641213536181767883392107253882097427304267850027547563257060825903162578728255963963548841211867876710695796510310665134429639860011215240338462809155303257319688817161676343955112474610240464755819265517239448823721155692628350888764621288267526227744350152100963695279311972277650879943748434359192634249420279483017544085412345898726484567004814196088546968044258013652059788457953662630750625631779563311882098669367754413419172266495744788002133798025930169545950726892117521051220393748248287141362766032226310127953796965674916647776777735794617740730163144839407856241534916491487994455164886559824687967461733820508493050989480805777260515490077890743025126868250593539238153779763267270146508249435875621909335521889310031586499430232266059110366442991797222658192533168867571482684177977568386563769566084243083810495125809287664503588309744338911111443734598535559446128788964838666914014497825382536263502765338378304627924347779363584650617469545120786254608508077401236342391370640174397592019203902944533196353344606858252950934402948738538394385229315228126860132219471809556441608181551410411356062197909448759505043704439287680963709561700075819227210606646117867797388853342728899838723525216128583522145812213772344797389830435752908259337045441522934605623881028357437499908447409863826445099505406176998084181365844352784874235048424769183882606150647486038468139876729310854757093392966655463190269505063384216342493238388190141553072106270595476647213110138005543112661204732583911139377897113350467902191913790421195378524133552823970257434782471030545179769698666264522818234076374919726330128826505569658742610455866346577817647464948160515408838115047965683458916465707916425715960242321297422496632928386966975358457330543568718673264140091823545725911829768753813506811265000197671550219815235004401169804316131096381215445505099737887308027812511543261775767386824792815792721058263028995113881397078569180125828312916774713507008300079048398578468193731427135374543362326111633105476091783223827518223026787701150171680763900569803930984002295396526461275227253823845187018141829128625693049886524699083458210740636202573220644023340366028223066137064014703646795322559130892357473097584554366689279931009711194555220031730642482948603168232132684815930840373683385683439341022197898083697142386498970754041100310272054057079432306471809110924667155075825935752000578896868869176687924843195129655932808548692189374896220775731863481893347410576405004297004348049466596657224508735343821775218709421522033621208265336433911975595574785267498352054164010424141679321702381785115223393155081872452755449442321408913740699836055672364830173047194747914569212005698043911763858576695012976763743879092619659672312343511392560657454136146732835523114222948170475695522465307874115151403391975202987379731996158506934540394161452335347561377080446329635973933445194926766840881650249694313474579634636770018148802978542452202555024284908258053548742019435607571564515923886199418717704318082495808144419328759723192391429373437592955177565234642974669439970603011229270633278944048389672317887439246500121951707598116477932099193888807451325874733301269656416973817115772932703189256402239695512103833758239305667933669026959544664040642305457380686766470896632367098140364975135904396728297897972928208534578361624636374595630739576582015288347519159504810338744021259439611653835925594367929174538833599731834072775111425320532250252773033065138838642557839357736745727282374882969985125263373337101897005077863358907514709646091450309915760541072430990647518166039152157003483037868397461305821061822965627725926991236849010762141627581429969230020262323528749003230189705963733130309699525518679725383280613791968446225693609115396639141759245651591534424625859348915679251535795871762909656438878295044291412912010250866423653863261085293497020021821653688599149914101957488555689487373577677900994033619779327542669672846011678537937076645405292392798928751534092536821735706137751834895349720819020773397418000488662406098096625431848257606149135479708599706938031654531293777166672089633630025415461505939058405597935246337263806232764487050814544747331203611961373948856552664305597413712186388010898161655732213059997303260736472432930027465729594946989196420438864723161614056833209508948162272706511273695985550932955118899145434934092314587191914495119442984448792280012148112422703294080893374260015852229908381652243379137302904111177438292541458693310666122896195977200849723870331414034849218601936085499234396371802598572762476525885417432176230063741187016606388442265394403500203152436323258358575186368687740580270012699476014675526776239651803374901911223659111262737612949983522789242532894128006088878541502411026154527049750704673678389280265238146405399256112648394175536457013169408843991284443589969212575283480045516621213377974564764647916040379183281731941335218892381803206026621493181421966925031217870465476831999102571848572811594684890226348858350970455165797586305240325382263529817348799746238712324810337055896101058427479793056963906851233751270194038030855662492559040477898433187116441738288313667630228828808470763335174162374913991319062535887811735590617335136253905509132185015509383660648793041657741619272619772382116746454637603181709329136096041638126185556827553453789552685120150555320453360329984648353771817870865888044155363980764131198969254353132583070019194085736135893360664624496408411614603948226938915407281734301110656464932767608733331941774254556050480991865372990286058815467487198586385324929546218056564340426399668359678592885911722443328345913874251579959064996524776210829883908684439222360931377054420336068226142422313198723335300086990278513027787547973768675489952200980411192231242020077329101532240688489029354219184561795961560631123637143189298015076384118572807186754626833022440905290521500640091522396234684471502409361770465369015233723883030193176171833951270427315241686804199352083714913304485667877985810159040575541085723678732759826982120586051279057764028526026072842743214305579999137515405934467687427777349589252637433559101669578987467293451286319626403889991540420265495191008475589884420078183616868271657304879686820253229726586801258227388837492788647758808976392518741588608130138582224535443576802066496854597474574381796556420093226152493878937321703364466366106168731990854644176986869403113919609304739357381185806714573171088295720879418896971139040697069397821160284184102560346184119791100632869558062475771078773937723101451735302238645393387226425223181817730784397091334530173279053215652058673617784292437063262258628305877262658024167307663738655682674016444057462946337062145909131945767340996593431445490816294990934380827370102254438192256875674607262546697935522574867701087767032556168224143871123374493584387445481962827484378132709907945145900531526632996073359254388593699915364504223983485511009462281133508089956288524244466660243857353757606718816610356969206600476986900631690378145742095110903657309529924617014491486789224031129780129519367368848851240106084140469768853348915787498492519535026466225933919514246695665220120826116961372223925974189534278240038388428251330037490677684196552705401422310800479522913698689291957530834734748991062924839887669998708575309142634729188719192975906510876914855418584943729786102536627957758630318449707337896875101470903370631612788350842733285434066933374341672018207396882458074097100429598990768234594203391263230830266475860407512642327400222000135492470882960145768795319812733242350459231437648611884206299905541342115852094284369472347978444956688399718319092196162643197566862417318315532654098217668459532893351042551901757139896128904909428758983083989750562234962115973888522906112665423866994183130258467024621475760816540432215657001577463368588088791700415731894543913030512101869905306756951439695678751781058807089572421043073764106205210727189659288587004442413162700712744187290958659193808900861938780453840431148934786003058663184635888843915695850857762668765101341802645301876697725396694036060076234439569372664907365894473563842716843567967498291168980432144808470749146665311396060732463328319609117900418832770616536119547980219317332538904348283446011659095425037281714884487180457980966449646315422532923378089973721064051971451168660971785949839949984810667723338070219788107699518984139793055901401141912250045956947528682586848847576901609947958427264159318218184654310094115295551828409339057197428829452568829279201302402176220398739437188267960084641494938334509023823833332983547261556227308705126108356125734393633867351258637548468796878008202708920741938276239580413166259546476655326191189999954573823738740592557010000165434907981824248088040287327946618797563807293175793457721012500643904778694923481735766043620775919525259768865057607848873727869330835378304227762687308157696468555575737756954213157575070156378108183143451444441931444141545297854301900142600659562690001876396823486753643905609551910177529918873183397998427126034322032110965129530398503149700267426063664519429985454151932160798588531267135575336762914683773050922471841783883972188126314755615391978268629172197411190924508512551512194762370935512858030432113337599460584854709829288639343744671263871086324742362328011781078077576244756731120897509295196782268799665851577259256394537892206795362806136869809188371274078651170078478445088026926325938638747677887564835611328355949314797640953819041493174283926143062495617986818671487960627310323613621607269683406517807063439901428758768180216841087129519364236763610214868890399272058389066693458335303960317426877777635600875190611322111768529019169438777942783880266385432830056657981812370206161385074600555314946754990496224521630392510416907782660799347615440211721736616237529471532200796597355305975760363180389032870755241106448634509219833519367564335209279198513884416592125507763082246217001289182150483147372693607592938829755053897977493151335740352682690648520351230028690297320366888494874647221074151931616847514622512510653210057670812402635397932856361898034406142054063140670190534776013799327252783031522176328031234417872384091652861013906751869349048239665102183311404098636509864936688699652311575220972772576999184255519613083201347380662808208033507850328737143030416749765024450473541162694322433868743000945890562167302936122544349282802041636859196132196067053374383923721638223004295033333065184315402118884361189532142229113341025243368310906323400825944970082032053024218153553780747966159943336827642111826632644188039799113629150102969620653171029860334561883917242543082465785130044467585129060060651239505313121495712665360976396284863456098113751139229416612853513394696348539888529069518740558658413666900750280589604680124398144530700435134383979568037746235660795247253236788747916953337145669293878459575241857420661239405210331789187388212867109357046747181191856497500408909742409985184167347648470542156427037025887507622122831299850937960858819698449536653605909202547023625165729464776660898422205551086652309784705062960478421744018090566608566350838538795887688842699474689640783800260387240778022244619080825899876094048316342558422718954762984296205327053969778425664803481581773507052535597638512227056732007993643790073063430463167796359936217146451081331488666539428264581015458277396689205741181036970514149345922521126306219347236728559945173326867047803610999499394994562039471838534486830474561719721441386769745545860307961272891993949751652607429155153690826879924862747865817601672035436656771776937367917995893213701930661896666502626975487794123678881006015237058156451500419596661388689795610043504648200191845640437992824193357971256491406343377529355111745570235768419165008177014141644994804214211325461261745225748279041757605139795935286534001780072594403503106932488406562070711903560398989501252817033945320348801256110917689525518382550673998040881508465590110470410475643570573236420345334407832265127576709823615979331799256877428606339089441763436402449633665748482521310054847476054737410843421637332443685026122560906545616440991372255226545972546627384578496973849901487798780123250910962679732184239735316297545110960543334896425640066890626986915754817872054011809212548003476787644395689174602397769843018585503852158190702576746047318772079530941927568208786587319847556970431525180700658456720024443946544816724929463673022016655854195067199234833959407602493913808930673421733410368475958784316749722554166971743696895355330861198943737292342086704948527352912498824776505606906707126929211850107571847251140239543306127574843786048150130989654796020354696204171978112398386080770832390921805300258417365536307671987072465732777758376683755596415240265826319199512525711524227172964674033137213280488052910307459071000362891207258722155995566583073344409965402628998146328153308958280770763000506338422031265990296572133694815517511161641492596846923973070338840868597005740065928229115881042282571512241219782102777033119564726787056477087214540897893789467927129577629857810512167519175768856240597170698389158571129762363561156333966644099136925538211300287423250063519927221790025259381643258966841433727768426966476858288858288799929427839024911889582690454909384945803688388238887421657647156308937671724877247357047001303345079204671236856501920624757205064848507537090565188128234130965589437777047183310167798240653384349263727292421194610561996680016697211385683262364435017934715811686131966126077391874482517662398303695192262166421884824514266223344660709906017118737024802277423847349487203924342457152206669900169143918737235654047976759868289629165123876569856713424870812159296735312095326985938980384240533712486978659222799951173450433056701039165720352042242894641097054623677621867342275482617328142729609346318116761322276398567463623024999481369808411703645187845390764709858398153095918472590035957356342273480084245600098734880959157177756155196656950363914807806827049560646787632256626854095831063566483250624069003351922624674242442525838906394003759286664821777836073525144767895723708454891561499017597139486076711022756839785106611877635688476484630764838287597346178125507981910800309350663448760110182131306054495414982615258952289234866435156158513971876923952439468442292488912644373356741841376040430938394608695225440754468826642747333488521228394062074580897662116575224454359835117000447902695016345772978363509824632873455524645988843024834834913392180946569098662744389938561341284393596623591206148730595938794538343371766706054727241454199275118881536732081175172789901599713495660872673044452760707330213065636158061153036485798092811484415587776507371152457326475789926726163718716111472068065516611499952414237891669579471914770096924301788419295649222888202071293544600024227307400692913085107415195423711426041976918087767122518606166589868183167191801820805046140313620643652733754164668657816365555222962810680425925924845844022430719010877223745675420042841921630683436082453937849338641643980981497880646997073814602793886786498988221006902750602592803767694751732286937822817449739906439126539674806662307715600928740700744471135090508047631621058097373531563657216212661910485385410825587965248249333218558967115366104077225170742483401172807002859251693706732541452295983493391038738612990727767443754359075434031842430381687187390642513850012325992115011991035431554989021505006639780936230192122186793745489813613170773115938627066056011557700070893225029603049424877992405740856919228457112570322858921233181105019307750597989253133781757917467841989569215253494548949281443501890709791014068491099670529845841280655854960928693206997807222426118612742279095944626149353052363967667409780460623230255725173920269872960992782881271114247016381984033270778910255161792478854243816297862364968874732789125186063460399081637834323165328612281564630229390926368872557933043809391177426006672099041687714454108920303251726208701439815989801650655283500681615372195101471322932373858498662002034707350072233836555714415344927854284896355234987641665275221479169889629363134525847064380674874856191783241913486621281043319980084197715336765670644745902357409216149878133506880838393517578200586356754783354080212016381706195607966942533284336399013727642960650049673931095651587142856819064130707176574333313022919072874466069484876258993995187448985441760530667977552563021460003199899430954872216064230931070111831262980286038002689456317333166391618282040280158859426630022894671225746134921036096606017736752579900215466933128045903174573101042592818735447742636615600748941498126128957846321763066236513087353574883574660244374552967871180590021447080600676808305569700089092920030282511514589263125725335079991833831369147158035276532369980219632494567124182797052744353566419266660161305589707952256245563953480415437963458379179108430955853962414332740364114264118486207838164005576876069672584664087590509855476480035566668662376877752660922374161827228495897652840374928039271174326634954652654237436057196224253704411912586486268671805127333308193192043466804923899631225603809103922681481936671316769482713294045648738231307361258648936059452448679937561288133476948088953442343014493900638561222440377210315554257739576402544277774830832022706016979409341256046704514425427602863847202253996430148088628286999226470671567225007717568012164498308812608166479660891901118111874159671963937898836014240303449475486703811281559730154362749868319103441635297630268490836866022663572982799366682829213263560351042667992544802786744618828596178277001094528806732990849295462444494321744731408484321245268911309607306931014491952820301002698525853212336621454888328916270221912245621668764424099039457974215950047840813117158948266201371982984250109351532599872165689775462852615742691872557033839156237016841646955889769928787582226861995253228421244153922566218267841118601087260093062765067587008380900302916958753787850194606683205183120431490102860300095350454011213698413765563109198960441406409294138614707748046131158641364776053086614979786384217631517348212130420186055074523342308851795990382471791060773789797083902158273875085323174669922761730219063563582741550610145249693562070340080727280374080564209225384959125400835872515396571570728764011355363698605100128222846538730077907257306800380305485949312292174322284950598712920053084939462436279215162373434335236176042681173731280090576845034162527181481368194614245511777361678363528964213652915291117590466530191465192662532710740541879087112673540177193315009494416320339783225737405914562295158040677953942649507682909309258027776288956734210588935559045425088779185579369394126524059932390813793852707435618988245800995061408743860633027126488368315647913595333653723212359199380995058601946848155771695457039236600152901514478895450875380233923523665042519332590718505587482512200987147797398115401069153881092418122527119898259169168510002605561208175618599666398945437724708847171192046575815858581279643131951304466717165507965381359712919308616611670171646706366560466320325755249021640677190500438395407897850642639650036544578898372589494425864036376776337341102364150055054484950309344903371062497902207126660662258934367651296289360994046155375220371839150861235152257828976300889822325626062382826788877548681073529409051552566005162980987998043799421380486703862609005224932764477122387015383246308783404697398648565270554374687113349067695472026252319591896410941048899116352982881158265704586101746179965481248669240793772310542090811531875262947139696427579352137357556053506476665316553927889307492370681140065867493835706905404814832043302136877765069010313570719924522412537770252536517233040667728322353056877378756611485198806325814719416492462521144445199802450242480012227254710500240867746042758826228491000649813448650407081953595969101847658244185537491524911054698521618320961581595330765227465255429726479501134044272804500470833928333453885097316558362335441234855685768134228317412818012464999857012470016478359148477810017395353981266532560492022042654581790046441152258806609384998800049465708931925809628240904225268528853789120616015175457968400562545917093503905664903057013123067351427242912619252613506823324120395776396914396585309331832688503429289252774610390436797654008720131707120967457201373997305760239352140491247726230446479777347658695105364269945056374402901306145428342894011650995845025307495717125181522043624809747872136330426664733217868260965167201819949741775375454051021271861326954471584522651427002991047104417929513552496369949579638805726754028632883593325418633593342603563429840504576787965613637320550678704487102858424387519642254014611215677004546289257439637309903406975748760688226948090487743148914494965476147193161506168261201473115534007786103889225709547639004410286605176838302893009522518588795782375406134362353674908542412354561434203469370269643478952064943033784629643637290517072768280015901207830982155519824302575818186704751118734308916101306671696135973197436525689947819250136011875410470724912657098156699757517093187510525312251374678742016832045791202138249804791469800916640102663805450422535768627041750180213187714671197847938969711064765574947931598125037677622245476537562526122201934561954885895274336823175842371374093731425846513607748418398110485213354596126850521550930165178179011633391505995132433262563100143430924941121647401869638667338118381915393687487130986597255079630018072970998561678437282815207796394618633398229264768815540553811251688377874377911171508068369098574603135789843670856042890184650558359657022672198414932482596994056860059076275302640463648659923141339809688192188766129066889819374364333059674105913153895248213944014323500098905719408580853942621017136780971760845541260058725578852986480480094722932293526463903416893306507136983075427970506834807735768838110247219714591822771890981998536818567785245680402271583969786123911600453942646565143053577331157285531855353292988568894222587398852151969684157204305667437457010826115430325160432353876111646881247327295732397013688213649830029079022881181417641425215572346946402450135504850790308681794024499196462577526317615165235831381837135434753252242306673388239803191883816852268747457604777797715956947310120766520857576874605955967140317105795497796867212135716139340016894415938089649580331336467194502775767001681538140422059006334836388182009444028267961393775016537791304360952081350858244860822738273275102675898839843575421368521158470312746882362916085348500618237375587336332572847425073561621427286535113232281841014297141021718935182158261353314439545992192676693825320334538027830514747564266416344037277940445977396577052604859918916540309512871057502533712330122207482448707394650421891580108254334600230971313270063490643696477664421562880649519722397684367745391331422089934165332029621482684983000274860248012013809615378435009823348445909438991615069916468523604989032695737911896134330157321641681876098911617330439393191657727338874599911009356784336810799547518684804049439267502581638310513122312402434177037713448323780432028103593546399772800192928240292823019660721188374290030058238419266468549853189503019937042353236936749000477379274381351050475426438702027382981803206264724692631148824789537729085640427779368329889081654836707917467247889468520724914117132024796638032361699719278106643736252481472311157427422278945085923772206904635458636495993534426926201336376184162994839080828817084180387426462012113775291736652402790723985849199533184781449653521770327805251587974408659468582339702491135108541679607782057378144418965764932583659566195416405364672333805114989660113304660495622248386503175980069563223663475836667350078435152654023547712089211020942105228034200766859037199837682453318943903253031902406074915942142630096655918543573937609666702950658918932815984894243609611882904284300685264259771465224478879145186894818997636987777726055327610988072341935673391139689659046980889008101233972279697758651200513877043588988559649190133737452362154256590253328308984586876781907539708312462885335242392596807129914785716004641418168344763963181846080673636262260739868439502527841573459383947722487616315653534867850412953347242657974427080168205770711394628034878154668585090167940720125237495128960292105875015005288049290289334038780312082570495601759642704664145417434578293494778848100649843408384005310115426963875237802400398951309727728513124419600101663048353226377586608857039718113457291680353880833153752263691775656659682218954389501560598065807072347848570747573505379720575940093077593023992677941890169419507446186663964153075700860354746785139588336741697473956597634353387261467626629132248162873340313261517274275075004001265783841666754119135207703070075253982867986770208785976583809906404196385353293472767627184324462903115328167711960737726835792565981439476238818030126016828357933939928445446749532100209119923753099264431607975428196698210369116398253689648239355352797154339311576316680450624587270228121648420001182287538455265775843829982905620243666747051509809068800450350841239722779235415314039694982782441763909912135107232426315709392944716558492771835743787165749478319807984560786290915810446382871219623901321761409714552785814226370276300512975746313706455018034141445127096524203345119436712576358803494708881946734684055936302649262877542644523997767115937131353939574799334235289044308634080459621403196288530394406343288505435058081796966372120123623737708089771566539055641830538618137095906325962870815895245604060717574381833619220422010106519395921104902359030912554334349488018060189098221712447098079127036020879477455485384609731649273562150975635531234040396997742106094480996894726932411898287473094951687447921696794068144778862476576675726103897974713323703062201428804501174364331597965458402658868145592075719165042406354355510181360483678645041956274380652391403500106134936890207940016483688209484488966453846062481447746503678534855392379486513265183524167173349990088974537662026293449744682638003235184206340865318830303565442685164516203858439991997180077942836491503370570550129224784784636870072787835674571705226096740006898804647449814605244667710898436405577173243587334478823844641415337591266405748149612006007457408581621489270514740445390796258486138382281591398395414491850479179927245098438607461262719655531708824233313655937831011336647070170202242753656673749159543299888744397123333357014072595866719314262882736958930581999956877645398402713162532518755731560084062812860641716948499370057711726504045114363507476858937922034841838209615310494228797599201428062806320676201680295049245030770385542435075120469033205132181012708531771109353774239500650935435269288888012355844579297500355326436379269433653176984350782784193792814881465847898716423762842715015175578409401500979518703249557979555304976280779992745311088026496705518571818485888674332277811081829696404125408070954437794629913973472997177287269037591061030777472887724992415045578993993851936292232191527905467740270531047290407541780182653281588560899892061545930799751752849612163624470018888797024852651415671271741409712606171412382996825047246002696233485353242593064556435140426251509614385229805475985241776735415294540093125518666252724233958792928855427454116738104152371175238575053475678121025828961513659353477157386913677624519299718886262197187564398190492840725177893387630008041672866696872429103352431887561869345336298681970861424211364822588975028169711571109865033077769508980756513011400991785269701323808245113681525611347271841091110384705434908835739093144613267672477430646863835475287630353003371251642700087196850271512866231453230164007428326130318181063782556941417509104293061555513291367127651857762160760889360832731492407761461675708440661116722662241792572149191098151548537529229234435997999553190982850808825219579394805938944818747823256338224477517344032091292814469230104992614343864095072528104481837320260825106010306132889422246527744665400281289634031261140655462873704081626712980537738771342401311053135584455573148213994135237144975158119038569187841222505804738322446662427904779865955128476301996492791727555863841935188329852168238949475110879316912597962050389788167474794604656525666434229718197419179222544364003633395234076306647325120093996630129021241603411172256642319914895813950400131149649566794720542855203873511212072112885706550480443786238588957058298589644480823770864609004190145363274407797915028090796066502928194706080514146783072773407236655381705067800493698673980368614177937700136693792371305635794045729068168135129897951416435785575269599111727704046941929713469913737651852386423928869019599707339661568546624571392130480719547864616496554601929198566375759136582095738694840264311237572651367245837409151857736381766566751733645718242057108537582072667984318646521696705773548578969568019340333702482874818590667675725307268718315139038072313801712180913120074540281566137846370032218513290697419081537515841632451994919741727754908444769433516069602271817494275519244076971539035665256215472495489643179111787577884404706747931973392562269045664089171140277404562624108899263859921091057315284521194571161700383705193515853963162366575519739754725610947165444137995331647777120180319122239187963901011917739999111666823718603132704202029972468527701839886944242865680708592770183142272401284961306474805045362863216104529392527381856408605888282171835348321777544131475260547344356035156213197190435284975020855614332839664408774596298155425866414541743735204037716237070684166030502074913965058115113732115074851028142570328968333810526382651104049545578100037326560348004028351841224943182708208633789708062768804047309898996300540337778395145765150957719381068452228484455700999239399993282509953785024063619355472463586621508887801829644072116596309145581999426413879359347495595883475241567073676772590916077260695210046473336646971086759777448263956783253138462496654968450107299892305076394758498659328295306847210711916688416322477618048661246464613601019333542807240710846910799811110992515589718446839512872460516275055838458759857447976151993244747527924722477789094773355294444513940153337224312365367736398905980799156431025641224563439002299189742908888824831093337623184160851062856782533744100880028055894366992670306965635398748188849619420924856258747859583195600198783730691390135898864296151217938155713035110492266635083247774444618952407365212780004060481979342013115397873746354580151481247113974217668906392604758961224982707441014412014042983959271749607621886859653688367015524283317574492031594225129461851602491234676847752212645102275593355782463726937627777466338078993400667399670281989111351161616183489624506864328507328881936628276792890056564658472671576348525176728131091244563815044711029031557308745429599217279199634328627154220904336701290635232819998511657544442437432108004869653977423327878856184656278760438457713904495099412706248027789629821497351706544976298366543868596227236649421806084919700490474752007205376852803410764650187253344117088652291477565768446503819773699580843967491258413473479127209788333758354899582175635893809281164188600461531077844180539790897969428200665638077439279424143427799238113316464500167696004262409272051405247156071382572434836599568562301263581005727393252747911954510688485384192240402005947355702993674785099144713451373244358218540746594865381249488092387692012598271419664210698397606729455923707855732874585842010714517040946562524600251146241870035298727093641958418945993294432190278490146034743180266381726030314022350604299412194076887675165483737055387442090694275922130285746937138329002367010229443462931118334170792551712203434427919651337582034536483820906433886011840354163605817357992039330481069849720075423066423959754431186927850356504762723356757319376956153079317385657074786510292687766180071325974796203379293423919052081072244644050810925398832105785449307252881339298587695409853444538518542298389341220822923017022867005025510458965370021059648349937431818363973824103728482085824577092632543788173157713660331569152692481156318767477494995651971791036539408781240465703242461808125885260021565166041738991393124101934367314161023443839363935418295274197934154093534543863244692556307444535400161389019615774657545917056480629311056080611104819305873042472569553375296823109106249483482291083858940316898611295120702152494920546347924647761705344499916468037299339729869107926682237233609710826223991851017597128022806381712480576808345470851905330783118109834227693075927422943202554754848199570888245582408240655817406086233593940212379156548483274663567591163977229632767662845446473972007384737682486697023474477415960590405756683996886130876471174209159080068821447935075629911909423763404440927297059679536667561244517079034821017168296111586653912447942939077172061824958240952378021996685330853739830944357150748513732407748262270757614107028676755698166650331870947119288288046182034157920950546474761913833142923863008287286564346400682594435584038396948470749298878328060198692330553388355077925394614020223659929153918514669680977318789525624164763814648351672278434063680362594062647229388742073266861069620645603801070413376754200863369696135444615867601758608106483956443153186235113975835076195311757210223011507289171457287351087111469839658417091571780136841261178673294990914751101766424469646461573719335219665162109487841696591610485777145660214368300573272639268477823110186822429064616256373697316683427318920962779111952469791887659041471375435874223195310273443390991769447694939282267954164534088029780120322815889374863520546758476655721835285173716375443014631335651286254771471864269102652366041844474082714682479869288387216894459668061734709169162336223884813275684805535553129134418520973250061538730597717009899437957480088050048660740882617076248917475033059114707380531952542970377660305675310566584008378390212641712709804952455750294472491322329849851086387607867608358031700115514758804781292004691651391404144178076331559683234600502003718465753487187435299569072514731194751199342602526944341293416505194246993567819337470170217456385593861637670141072921608471867811305836486510754009544727359977532521733156365571357798193036489708902090818464267152204964351775459264598272177106444234539349815456744367042499979613606534628076946595222315537604356369411095542149704844957485787777967653640477337044476306492350502341183197534972629318483934497890811594742579335740262282654983204812443604866591629161655786466380677306928147087782298312698338485820598562783751906276656611366832628556157525003306260639849958792950406972530079869393868761257237068974432910682359795659867754655958406503626264332071285941829885406323144265455551499393266662688422110498159578474820932119405812094868130163403071456041232214202782433817761759812482626413061917928873042556738069640128756105062541014919821192173667199238658868998676329565981447283305073082711732857601748487683140943596881741856854803253705766123495736543688509994043480780007077282779779854540547629071300629637020653335959711396284609324646398745031251594925031996317747006353444195645004522379294425983367891102606342737210516692229502208964869223429582450330675030936216515014613855573345998301134013200001711326271934581045091252855409520205745334327420124835778478490978130360340808950704369820489466232106753666131371573532996145896041210388934488949893800794875415566565037589029972915228870674037211850644894783707315506209686060209530459683672035153916814482158033708055613058302156992310525539995191634033613120741420585418542971639964025575907961142372768998663745602469726041280281687423622339052706855820592308392389408215002518827091297151186387406268657047457392839986223304498428076625529991131993714191494051445625481127000122689185225155010014828682235438813245078588341026160257126084552668285037320082166964094329816454752140380716322878233935123608575119590070516139973432066224253418078014928997183921719813094071921640889409200942397106210460836701944521882994849589568065855575283139569429499515841159065343505522202155037354307687845117696831793050276233273480898356666197019129371189208621246801404818073787053057203774308139382499078973278143208965004370952016808678577117965633488891482067877038860815952216991924227749764423792986941975168762235997015953998498746612151874054903473243291592750554192210555019714314180644423535066976503597218266376915472714520424285094405387975205815065013576233911926096929520563209976902106156386824818160095413989045246212643351485228325825880314012771751191677168479440648195689737038564116637713773726103830205981242363862551075491941583155321378845113649726427894001469486795119364679643405109197080675911830400491306902481459004149700507687079726462699459169155265638213209828068021398344669168005952809137056643109939528731775432673872179680214514964952201127604687908639297814554638925634504478957782384897055602930974541422211809612043282769006980590200740836621647669139612665942095538048953003772023309021084561280444915765159764522467329931244307398863259282065366120523769700383178941084055900198298265987538125982324290738586451884385215678705202738334267387678566994087570913960619210812773887273000923352706089779540980114567647149628745202716564032477126222484369405402413220352997870586023961101534603363445317043143030167911592695375867710584980277477003609846105090757002925030853577861094820628375701727441860268161559291091515928002320980577729512165173581019970600588039352186290335098908749747736578314878804401043297436332582815244581812355647246765408608278939590176811243818695451888485289600562557293561759420641221749187303888876739741502716096534651009707060507204141055394350833447612067628739823480183775439195064908445753556231805419067349036209434787317622884359023179415289105546759595788467620950568559866764166027133468250154275954799455984635118235911751565772674957968240609868212853897439210732304343378042833392557450696191561187795794589080053128073518798775010527615123341425296633071364035794246949597026471474464448069754659761201646157031539128598556112289146774706184858449344446424118838505253314024713518120897033273000884866054081963053373586496039772145738044950158507347496229959099425729400355896351147491778263288905920284309238252282957760062193632119419484369164403054141070248987915796486627321754562362975953543332894646692524094739296813856981339678370783180320661341019059972423687016651470077040987239205584342916609463111073397021575110725828712926852308597086326873737038598944884739265768386528560071398384190061644815777470925659431280803678650570091168186029840023255626452174114148119670273854690046203266885109524138886656107158864967726366181509480320588271950444669530921003476544813559345199174042063169521528657657741592358044999336417709905960470520003067834999874306529586661324623594881590715427912053364619078059652813455106517678826895020557548530907233330298317787646555333640315457167847582023675395981225364806298554411744000445304532902371961938857496684695821734003435139739400329652524942458461687339125756033944950885991289482338122098069847986240386953430828847842818829404984449150350179858357695041545998098711650053953898549226529664370560631751072930846865524488178126041347680186403218762350891952878587613509419460974585707823574430914938812996942936434514114893297634866814909059688084911276094411331796572498443199491177254996123864894782659850536930200601100871372775393968542940557052459577939949480909114090455848949766516645112960613675347864000575963986967125897778329809998207102247192343925761807147580417460407315199169033103776301829663512772581252504951486285417074794209494352655795780062288218269236339805735950979938821996962386585559925235751299999538146545056810087400886848051702171491524881200902100513091779425713258178928916174196242504366852488258184721676908137496667774583558321748573473524217493060196727164626425803406278874896891410483530050548905737869665314191000645653238156903392239593724550769817593033166758118850123957959085891840574711270884319321337816854370565073273225693625069319118808958316254363364323855992491004335509485282687403908301147135438629339359472329497487738431989619090353436624860768492111284095733546921186058476829786987669948870901255675599740073114418525416677686361375336595091801649125864511341845703398372672095362799073375621043981109056893814682595352211347408745668021676610096957230204646343852648129492329899733791879319845838402177745591770293178748839382524986497462751791473094281943747666938268180421669756530265384040235334296725413808839463875503070336309468301873246814488963705269295602718086786515718618743357571308539499009930669600420163445205983098972161813347604618691700676181111709743692406292232637667014313747388419804955565032823775253350140904250644591966677019658176163600794289787324070843209009772331548088259711054329880482528475673573260240535992466173664817914340881629153665631442515920382544356275391149646102336269006124546999066967056463335665697816172739393504266560526898887501156268905944880743985795359173826767362614816254782392655161645119452560923785946259710914188742673075990331606001753393641529168963795776309292555410203995100353917600900968797250130617074341571546578496495490837168072708810544564317646214601642988002812572620199012868825528647021798248201619403440998399070581860969684497829442355800425707375727008050879917724046154184767358895607843848032219946424412617293059747837641579801584402606085525456254245747482703558095630105796272204740390934275320747330035550620562624849576301515500559540774776895823890395398582371467872705022161875153865080872895161822948121571635416461611109555497979392746858375694480892837804985828229003971428065602266607864388790236958194226071457501921652212910940316381950203485428725577092365139349512958486974293456751252629062289005605661964420406172864171606518367050827625375206184497188511413738115472631683026834952142035437625013810255709212844377100789463858100048824208123141469735244461083549028093163817140803896677834549065989313922742484777653880067695581122109037644527807273433621692633529689805548502286907605922767052209544288013784117065143971071358786387304340839049422317738873885779539463388902357924462171477234427610451862819125904278880774205457150363083365586329370293445880072613395545038557071523269735756604463217226258249345909240339655656557369435529174727753368214262522228785156907080815482498504748482254498644695633179346738105037127198347264609484912175385805362739290292168598077049553910569852103209182512779673481038691729513919826592702209370036126206565523160767600354846908855250610844291563164511263276445928756905501052058017931733807315318200903222262926277910997568323537398431918146018272196469825813102255439431994414927664840825349842215195782240328830189051067085551139991885000531239654801794034403866643212698483120838858252518163140352576703846827340920825986054126531355699459477692340157661169334697814855303572549652811869458595904838153634364554011643670606035099930047821973480287219858150427925464412888719381057919047705865013444007784260537088705681966390079061646430287115748425411124733019349324296290637453377097049264451096481993727893371896616630832184405280088281814306011587217263133463473612169246354842416689069865742137385437533630762830541370275504973235155984380785599481632733734561124225886890813958072478702845817628747954974389602670957927630787086765671124440589621122802717120118378720806013939235751237764682951181058648096579405669844178720914286436730275462014508015442319501988397634063152664770747381827957926947014556780227998079480405395593477322144961375639284989746527561436607331121218305779702094098491240040203112565445426211428973051913734574579810991656385349807995980628927783487451741627421627280891586818967993865433367588437771078281109688702629144846246214165826363382772031836785255540274103152692764623850452900764878534667708618296200839699908043217351962590941010646059288018890465811220041840212989443080770978215930287758300974356690590567230418239288670920359391408809236341501550271048326887324693218103003951245891330700111411329396465890003041812514142680227124612679476241925592073525305635975478754200542989200621384623504901146904850244511666888930816557986353122486605541067176025225748586855649876660005668936642164996310762081867745027601680352116894545045469966257497251485814654648480033892515750303883030265404467471332527308523070381476149015462273823363955372112688902446551457115963217655342845732229270889285684398058093479995548941477256191605799737512284032486890472101037140341696970180061950304206826608528098331537495567912592692392523257357283989174534583546104889105725013892776105334008208318914799189725779292818166987487860154003622215960509082064059015269329254759385049070455934244688970862439131506950549981094675579585057822542479029446692422319682507462077686948876663180731182243981534017945336467855723845672040732544286582913326251444182616855366449279124994595332165256722948121847051865734206409497396803713050166850760327146138255047811073449706875640484787882431039037896878050016767058166286677135184949550024025126453544524957185393887156423126436883601135269889020899892136524580240856292352891527713399099182248168730567040852652005489962628520909609910924063888033946592298282150396875432607527259195177114235337656002014824430572789121238318868637045303269515921275004957867594325903777863162953521077713523765149384862824755880437984260034765310653425889661478731141406384083445289411098785940675245773478481834054587142316047146245653956661670103217188202231058086042607549565384928521606503994704570235637718985003523183530375136887731118145221328523448638435050185989083575180448527305084993830412214267920664488678230743362478346753645690145478404630921225298156497586483647833980677980601033032872953506231298500950042302481762506805101988296801354012565968261031730532963045877545159510318521682291771507877090379978854433355399578666070069255869791064693968762340692127560407023688640123809479329708242138377040218396840157878972826013490840892339219892609158994305642744017243498386620058490894725150646443311713524773232972409022405631612592404802259675811256290383047833570623800538404134993809009982344443801219741945340832983717932493109388674654384253850115121021002747117035172566392952266550410582264775308882539830269146543548598307145707995252025060291694341135929224067879020992302477466946433616804918662525179503224754276667536203791867582663722804439969064599688475652587081037856419042211148009715984034689915575323099980408494025024482193439066907845962322867731871500803533285534677494656602290961136801991877517267789752365989763919921925264076810759843431907906064864717536181174111337903980215161438615019106515352930290834772036417684641388044235741902271790655937113874600304672313183693137703602558370148828198020663244998303411042228979636589250185962429090489890069772953856100361291125827383617166140473026548203229332951679716593096559922286638277902999154014657762545029733798615208803667684475354121060504292020545299923477785130644000532587672608466208739594867778940083536262378928286374339320696859445091678567737437407935195276330096590717500973872314597732553113609059833544857475527693059265959473614979604401458508644475308636385507752491712865657390010598916872606331924442052796058348854835002487432009146688150553298600951701294222692330108759562677812022499556931336590291330360789889321986193557556667518501716310966846500692590392489095963176154075594607224626028802421689914436762938587488269588096523926928486223313002800515190547670129312961516764969293738654081569635430662418819618568444080346893388629407691096449456952375381934939761517991467501878226981626937911036923000981271319595808093400488090335084411730128669668043571024412272760358140136416672401907735418141545548212385399639574360716238648102528602799437147167670177914632873636087821916693922895596879818625430138952127325830674251060111286621569958277071712754904089321303626531482173586786157171917452242631097050748133113348197264533964025203739766823524076333039372230758419196916597591265066855925071773203090314448029930420726883053864974478183594653420704386472408146770967120114312150451631588089124048445265174518535284854269123066106691117125502282923489080863252112916486693713300590164885058110306799947444535185813740912792781849932261003982516306784347688471851027637273188151876257604920524076007350934929465217086565673107894448966718806061908501626429864831842410856321339537770702322293880734111724910941329382480184905918948317213629179297159512565913958963476847982510624241312550248566779118216680460488412586514370466011568170644679270657816151459869813440837662023511662705794609897788226765683138937855523076026799322042631187585963425234774455721799955054618326990091632250709420329714445342094528310573744792283328909617244565451563434288666357549070993785425418373759478930254431644119080519247700115652943207688230666327612441781552239054527207516423474116978457080710972573002824623104780721352202072754844317880832536627398109720560324656353419596959095658828687358500360041743734712136023252551710884224807075816554620005984700691346052226532981407767299482428572470730430979247984560271154837736256298601698246372184437681875943478095036589044448641302587824702673968871306133358114538946234012662662298207386942027995357491018867478046354930262407239298835539484696326692818187323276539332881222249446532616870187905486019121013362536113497577326140023091591159018701177240631399169216853177297165850265185970216095981482461144983797953155325985306858321867381881952406724951151180729439478666442133411923372171278128350692999148981903861336604256696617473130214964385219772425381624597725507393173916855204456560899404081581331671328862091551284543858366265664516395455054727721542812287654149301974722848851444522261597374031428276714389452695207929665752903389440784656684189172173140045949150952135661948286296512326013358177299062754196824410316385058925410495767142186606992124647751355870095943877535683082529643003678040478988333845011264454279995958279328970155378707378062894948008105100016835510889175042397973462608119225699779077933859728191041723806430342317868611713701210444234427828751138536445190770236723945610682903567589682365288943760015981948991740143747773063200451743954326128989133909521869100129908523783927435215374415897326183893409872647341206158107408415615229039053114193839019850344614414865633018168737871038774818178030299867397162293983127615359582702407507601169350157505645271153330057839918992348356824929830182771680777405475529022498322630145187467511626263407513393044475106129016138943284525768234329226514504572772815086651693425395311978580459723009160692480864814381246687700945332231134530023432605166755034530911204986451333205032473282208337508486445133974500105822321324819621119744019329108936499424341867366140221123382642801660483365135373894909947853087940341218253875902274671769745635922039673734296873402670564359782653296059909630869254794761274518454625481058828468089197252104232156157230560019582271522138758066324594728414734104126614602577829306397863730180096906387815991430211309402038073995185864272987284618750308379725563484411844914360217610726018423172699199595354848654707677911562963189653559901147355379453339424842279887595715759264243331103523035509877519063820022394831950223432461920823311286500022910978185638521957443448311002396032007839230667989153297018264916534704074028537191659686065351240697441401525751869092528825748578577193889093609498456601119734075207981984895924501764808234932712016220214042376828925139821963641358495830922060054659047587818160690356757440917629785472838118532333900282614320741814823538353310833493524927611478723096912330836447305261667450856588482012608611576920096344642036114253640096194394018190315264529274348162752911434199628676048049459396272393777741935070216109815740272329035268640798970082771616626555159178876927831685726672141699576241218357054081808213796515687328952062788029798653960411888267456712296707203888013611256245655658736896301123116436172938368353423350726617053112584336981816544074637834721282286064094627268759390316340261455943876210540792676526663855013391488637743896949961653430569992732472294524231452443874961181664430766585067576282782841508238564799758844750793702730347206850416045085430326675088837313518698879627981974031012557937001548241103678127756999006005267348199205619344017570144230337027076410771000960891163555060642612778299209266845516688808254263378100584669224630803201874186843227899823709857104849498307165475810073991393240349595347288304765334976059812469760728425185439262165416793927699464786451374578406275934288591725202925668227188397379883953146492863003193799829692547849732586482555980354190826806320865676000542903924906752244146045418148799200733748970527910146820114262684887597503545042793321779028972825084046537420366222119522597354298669006573692783764717080147197164841281784829343480561092708105563237739840949677679395650902132808561312601790481196464312627887913924746716646719193990788366818304024104019993070193545802873093987750385847013927954117684533264788364225887939158879952038351373466268940761711349214239690905737287534909319382081305595839598896952336950439481201071230809535543300809638933783133166132812683280781689184505089171363771543541355047367341782505886828805666932426208705205964435063026019288551672860819126973706308039365742347713938256290535644763076502119024134466831364693308931916389526247572654566843144545152635901303584288549827027889361799372683138726149837088937836221790875378981488562433884327076574387453462366126470947316456306914772913290116299593986112818770395436478435501955672240449723209569676434734278822528179314576107944425254822995664474753680742477143693511258965152893875235343518829663557896922226734885966672262901403810439577527410697537633956365773833542459249647816086816995918943961377487479374097137617657923156793839059132835890993108508295846740053789519822388420328489906099360594884897419964184302373557259355594102877471442132383312737269989567696036353094271421940930064847025346939337889164181631910885562409273084071097565768471590127564280668076765939302645392677920328914637724888151090701931399889694856381345460547466627015088942908106240406234599360486819210577583022823334734421129079291888555331397632307112559828119834403928817646159473384007378788984040907714376637122609568399793513311440243317973565722543466498426632827810941797954590346160166741696542682727334394770149856184272697608382774198669592983911071187566480679431288387188534427938412940578720232025801082848231681729096823801098828952749368300029756916934300192845394060197809688078109222608274117145468085893444505573608358829690859774920854624075058460078751970507117985657946134335656426486722891251026703344083141789354125331864411025565366008515612283264894432768818626075407231435675343124363839488010814014386149707059288993362003678442820836788211584316906392258179489986806765316193594752095117111872560906844448221875084955592366965102568336807353712366367987103449995794198410335743991324282243626102315635650797366754815779386526839948171701205271623102645547824463881202743256870437072758111927747391093968150965647586285688887623252653470880269558577650870724802235874630790397260628274943228242291585845757758970913590366202951822894972067402829093170266560059656780477775961725641785821996171581280591319368451482327522730672146105608105576091260406396279388893242966254994079027252289744743688626290927492767562557869940987970109547333546072902552241456684874197693191814668689713724400303836573314263281544762100642548723449670407003567577868201865063320510213616781045264809392452146024330031361545963230435682896030540543149761989838596228113107072620731065259351856878898878795305319472838311049526967350647209725260692223680249624929041252186407445145004221207491993251197398885538314043974749484200199236740589681779807817728448667696061951599679163902389537266573325822361347015300418938556965673053096004439919141473865755029180142478458657290870923234704344829283652141012965635469293859336982343655031801255880145922694886982397054916167130689115685322387645433398556765512565700855838358982951449506377679867188767378995431012487658655742779732882371260923097546452143925006474757407931427032016494266929037127068919672537283540148671791482787254468744350927093868822978351233472153305416097470062715126468800222864804360914727130276330293031649480794867454207011633255471378250038010286427326374660682921957841717116466203081519444835574489447153312921428236385426443667852248111596685287343064578321671180253112888814982090754218898962011746363942679285210463141442558023384064753428655879819118172307248077609461607887988302478266540233917864663198315275918579956041033988128805583369827665292940509837511239394728886949999602571100811080366207343243447146199905258503175066504691956356103822345841536700896819767113723644930908232256925399585790145024598434009815408350053983789658032500783970761355386591452716486874023940371132440784309484424637355159126179633917437318151497253301371433050489450185910928411641386944926913348394611558166298258730782264311919119582001436732777163410497689297919937557228718109356256440941445951858336927394173118490687949767134497646051413294208799506443981117764739385950350509352614883498642124649920431230048200334241260047231410049576920995970734078867885360689958295494652152793998780441263595195209116038913755479189086825169898905215997815687741761811841863749915709055065477929042838587815598801731927292370675685959176227356975610336852820596302249014558226581041925731145584677808604664519402464340638897271114970496486089994937021549456252517024099148773008612308897095300823266954635976414898867168678650176239244673151435478767665277724420069457830651132823760918436356733339711431162671373270441974397208262853058076905145803565544047522631098601524818896116330086212457290237999513263414029883880727247696300381866042020337317744877037018354241189963502417309796401048634747793076041648835256303251616003358700327273452517814408083595379549744053651016453993811300327104006189087975978745224791874704765627180042317106562364303098689865464772496036598908814427228050924721751654971900189052831538621578813628696018381167520256608140476627848121187705849832341711931190360794093744181289605129743637795743328850531576047684343152920124997155240510682834047504315342997481609018607098328604807831439533994141371954246719652431854275078211534796444653932746700341653775647118471121725203700354047840782001735563684160680421268204201679663233275276066545001454925931137631951566206247193758559867342447560918068780818090389228648346682436307376039751143553437721235436995866348939508969205120440864619306827322268196864873199260998447749052762882881544782228557138980888411744400314999703133765605578289445398168633901754083912871687183686743092044412033784935730302657101996564599950281565924774248055661268929377709334771918693415637001433499835189908502663937996107565720878988044546376601179688988004924735140967632002059192303770444980717210227391557557133356947851036697452849538878277484923706453269382917503619067700963024007422616842564862577440132062073030379893770036226314328684988905512799648999964885830018432987686083884694361958430237716750001777079122648307448302325389199910602205133428029547347467040417092362709118876532835135314699086735545988354862152858393719026504909057275976330176192787706261267998916774584264286717770436034266021154816311515375240585466185197724160079759522568419700637147984321209422798628889354464054133248795287965808153953791299135113224594164787333923951242853265323405403434820000083464442096812740722266167429975817748152639300439781779844131251847569594212324636088925393682543188691947837772278131039208303202249610093445406369381293450627796462398595909184251321006587629416271758290967860707101685730890977995501181085907982747664924306097222961765924988683540326607543680417501544918620271309997260327213304097508194652474190528260881412985417018415170786349816112780545076756102001396791826295242658512788820225361587393398281088003729074925144854288067900254295155136438688948767976479254718712949102992957615163689596121253651941103963272875182355319235007444315557207869386630207507887474175314412695812102510036602970447379840487712803638038136101789398910301100634755483388483319331321516247963087685129036800186204477990162620220776737083211919292933408943007043129624768540840724808725674973945117963652907810934455289932135199751306348129218519436966962623613690681817356836311989349624891390475809693296049276560281224806629322340377215714402480061214475558375199688429195411720974742263459223954745959607345002786097837892408125252244333323918044065672322823414441792370376014714019382773413618909911127363129463413952145087313665517956225386828454584298016054429535630850851178044112946744681837236798030210194158323970685370277621608771479398374634037606863670516262477107361480050082300392937822313306445175288640373984791408565525553546654250729931539168226956547285973331166370549516193813677742386688746989177396834113035228620626058489507598932046955542729993365341181703572908243514586635314516038962939191716238767895468100589371767020272700387410686491925124917461637559978590097911073653552674393162579369864712307671359637586055847793066432280655697587686119948925988002624545450739283386523231831386362631731903598750342787566771996968215725956337699934108673194848791531118240743208605621867064614140512960478502292665778915223897828145861463849136347576306418662800730487320276041599734236129538733779079719750599807499916383007793628338698002022850897149365597621122618565162323971727348122467938268619865100146858052306991320793297885716470789139530360427778348855289477644576062382727026346186444555486340258297117371606350526522424762012330875322661043451122576790914120113972125580930431658720121265163765650366758733762146456241889545237430637615202006877796223012723146491623079879541332893026321290494350860687021859742932595799789452781743402189743297492196856181673156415355103136584966316565360812973465486122309487148241350073045164123003442757512957794397872314986490914665191473616653058219271925890195171322096684372421360047720050742249111292168351558296761228238572426524721667266337952244557310333350735355763354916105883800668411660942961568350718686208839922912169151131747668511374314904556872490196548746097705185344065230223114143789093599324903558272724032145523430918597316775088118245265580258243330312621694343522946383103926825515589030543624257607768647707166473384633486624835175477705178142116963349929592695835460761504991621914078755675825445605669572232028665432859959266977915803540354928828278567465941710557124593171538885225029521763287132941875938128953514866417099684541330459396162152625716669608534637120522456006428395286638440190287768829178588406278736189999952462559621822705980593312198296782745526538365252038148250088347659524542341566684743657202360497342856133575677495695642646361726504741232908854514774304516416402877298475794988487496328557329539680699063952274125037992627559269990892891683573319385499168969169536089304003572347632848423224297476434647910110077183103826015399730215535094587579279216751923888594629624007619867555999873686149718774284651869346089333366473271112126038473309756410248865822937533260233347991206364042926686054746546928146814140489421590978832813093290465539108489039408397063500345135736337344055582096819597363013933647612326432490550047264326546591998909090316051544863379526787160897563352685311979914832041495166206482699207016496261049577642569471695874620816696583391222168057068427003552883595271023044406248814331281699169179566810444913191929310262595042253348640462575018018068331625351515231074806564969985331611921483733028479860578306387768417141091903209959131798195674469958735429890577980002757678958465684937488677867418301869780315458670755945628581167463087445880204504004922910451940153119252815480131405985441366522650360910939379819882621674451614338526747421683158835560637157203140956329446938998247999477368784488774033807241736808713360800955717558696937075542163466434833289936778433886214873507071369609286939536264835023079886408151268375208656804204317097565839792121456386517378319614713013278889630135023211467705347700427950875483585121582674572089684225860513911617865302164799033817916590921670276584771439170378121082572453887311100602085687697640616529645076699694849238921559922509341451178687826719210841645977853232307283021442011695408050153838285969445716986695903242723865603196477939148454982871484721550055499371915515889811137014702248624805593227423075648984780512106279034437862084283103742644699262819153225204926974920508350135039883724682280309846358571896913698952091786822815343703882226444672236721995140238748680469087033368330601396593004065979699742916206500191130920156598225969841098272109052623414818157295207367819944605623308862082118414615533777875339496288243174255348135540734112182066215487486525821614384728453045424636149820651677536403436781686965731558560449790309244906800763762109456477295516266326059825114000662768670717978741564633496102680541742348748145977223164296826386889238734053774972545202999935029647404531207138720026517422716485026735716917545734931171481006020340850731721849096408194821947677756540168917776656270585041984813366938500483318114436567060563854595729016629307971538640255822247164351588435142162575755256909692914846224090718135816900275044882998039543261477801596540845920321736554972685123283960758974351870996984207333818127670579576504989695508123582964264929875776373736696589894512607466211753887864486518513472283854942758921886589117751274625783928244321230406110720589575304752833752775147560402183603642534407777284867770653428916099322321482505284711277728052900829030259061028135903475942492667633189381962148057783410681092725784271155557513251162459329469079656288500605451429891423983308705278249470860903546510391391144105130869214871464276823892226275949845898124992324464966796571386437870263721349883704071926258845714065889775202175083539414807109309181560888251130469042323130011056600296623890862122690883074502501016151408398296428712216385513003585356207520007994661687755272563837317962104946971308790943055356895939511024179648464449730641932568740999643169333023303142998528812082438314117006337168377016107808076546023460006360125225358361680052546503475096405275246148787073729817275409705692554626238634570596251951356708706665049239827205022241350876768270148896879579701817844087468154970836019105085258041105891433466986012692024303936903560695025976371317930470669220585037377152538478533970591097702919714510246759006735665283783735434363623028423200256663292140695840986700006398184022149941610088538681021677847187866017951922528516711608583551002210151351934898983330199266368262562893014860060568511247877028885380507382438058975013790497978991559212507301397759309987854135657504185162734373994419577727507675357700143376623390849289178502655163004038327990664905808185852245427650843652131055687203247974821882538956523517241272961598374239465467952160690451472922479625210931668280009306744856549528291467209400995134918320154939360989042877874699959427797905065426103304248808296079473188379271454818238025412299871791294931908373421765073235258654140476114891283431997309188579676076371050318359061110368505865991456872670939160289787928527314683144344628944307499855106701050283870068216341005331761279299618915822981604124324749557113286763317993128752211151570115624591872062754730697965985789266287380128037480111949565159315040321045561924201258610289357976605242379167803958637319588596914065895207266075706558593438735198811148803641839268345212140061637846457899704101392912189064776708543196757597001225053626570152010369111622901608169202270929773918605134535364386629588079655064517191425732819651394275898791410744763323081781535006793333549090764474907661018440375961283971462316344848109773647575156467654794719113919807426134709266146024830503049189043846872732147913630726539800448603448623629995233660794829470458862049276291530612953505112851850451523575807559479801555446851161587312747512233720626691168006563772537165556577465446970355560546205598838003403567849879828908525774879765249687524084683788368433601529281365309870320592043678183080108047997113969508673155426952999689727148768602699947550888194573863115466751858892343151203083808258460158242128078329875188323834737701166392310111068380044298591164762178793621568540628832179406778120622705943612400920473348285583357752732029868189036530120830675311113385072786991619495005692000140655385111443049617607487878119289314467264709034832247075125786861627280537347351121695350150797052227046951374824207743229539415060709433089424246583611434388590113376935463391609173071412678782418836329775937170668283768658082599269401098402238476925688976363488407698642070246174631617188657345073045726836505439752611286601791025644922003861511233267522708167712209896375949550348273241738041127604206273733989176531124116848571835723418634976137070107032839651509759628376479595814821468050496880341714083167056308198803404643891537394596385803284782114906610703917660986461250557955496820359343926176639086974678812084699347114940041475512176821072962761068963942913081347433770645409710273014348163099070964108466108795673418497938390018411707459685313273280852951606157787559824444152839760786435140952061809355195779684467816580382858707032810137305170620613017599864333693825754932231184769813229121493342482984633122538945437514268244973628028608527820944698228126165353219463428864219572491293249953815698742595457995353174019048579201617428129616104030793241048534840414476623575640504860293872170469471379834448619796437220873709937798748132433686933929872990531233985186320509953697130474477307466250003791398015695788150449973205205831739039009965578656937981845243412674045727295186770580429239233842065747122680691847004505356288110396696140548044012637555653200687347298805325008477893769238966979199824487420766195258235544700676760915149725917796960162635492874422093523137181118644581376041598183183940826092733618725798735978113725894416934091263323283256272877452381907837339392080550133494692727249618662221130345221492767544128083699223899949512046815394573450387109714937209046113960760364175793935792117427041662571142900721699901402251701734557409177299172031704288950153756316907150210621823883237597884359736699230671295414969966121779882252084132347635200821326010360241182446667302427500495287442158196896290378330733789455307602773134085380858346406614918204466509497720536687529203187492657382736332244732960488186168050072689346824040801957706316065459063638309185778113059889234353260398346275592210484899636830902167839356988790063215259703321973204371464147792612817598414925049115387820127154029144469196695320012182376426608015169250306580622953285192425237929719052401823669939924630974596737141748031246258006797101012729784616518712745612543199773594396053574640010861304730485090596290059601067938071400826659466637977025274173518754061780787264979916454493010344451429275236400881217932789312569437952850636383228535051496746194721263079152220102861957580238343698888845659923280124346835154454986306977268934258278720680504287395490417624329707468794683766525251273686918348464965935562563215117637340428460484433311402865121896453608970079207276576287319001016136341626392227958085701731887258995464148482296158348267149581068327855167531033190374433444868638101367299649901395206263415751535152223735083775767489465607466805762114580638331451197532962495989174536605939650590631689239515190717363159012152523311777820792614306470794292253465252059426212760917090037300423042581948738780208912422783002238397495357519667015853903918262822991313769925146885926436093037140072377663227872982012359721718886576665707298790541864924342719656628668964620987453081685188501923831705424456371963947290807584210499211402801183085118578052000589199612907945376890807648418959128868319264488511536231956629597699814381891780875897079144635527912596559240073011076203753162272044214331728803255142134992091150171786071045554179338235352782993227213351423453802725150190733941151604710431201365564478917047330044520738758659097597948353516181844663397721963381330853639150732512807884693912858083964046207157690291766170195090378877819489091578791282121823261688965340706466714121552397936073101535933357939066606590097091595328216970063430268831041984703338098351200458512485584647090588057170638823121729274884277762000310281337026666043536594311683503511831840009632603141249463133424118904783440631335548221514876015317763062192681211464267602812015568506455051661036733240024402256865691849214301068537808171614242368802800138687266914199535896895983562801567540302324887676822090139419246734759204871253070475844625786749085229699117476537478189080850934216601798218566029902217173596509916691828548407770223352303820441770024586341136884032783898159451386082239397440591522244260546263463211782402574536240004839969158642517056266762932526210805038483820332557875727288343822449645376380973546364508376112323612644493271554552301186688141880945926780455036494666290976133417530491134634303230451938955162851650286836506637844647435559093608661271993110563367534591511028385122819895242185817471316162504791166637931845546903590411768331674368647385045761055345432163259537060703715655891238930895546514225972333536925557012512938196694810283301109747218214666027122616055059084864633397870239658822772964660660088768337689270325339700519654642062528011187347270722001590236497708831594243334950481394846478714587797014859330104135556945828980656175153676437792089801406892125282460507693052039139979128185258769134890507099750896889194561239850339500560614511669802473487440493912438439897233235476410191954341956834079788714462684709965123428767156267016469208189469420704966814517304907624855192025479950674005936599700358943818108176586919966549483135219052310614672208744067604439701707878158637347029787957743676276504524101182961417056659594517316653457698776493258845483308446367456980909152706966989260345219627199692941721474548872183971271818420237261733876072581298506273450899214264628244406982640729788872927020270660372795791338096702257065075855743191192467041445283436884212261663128950800917350849618582344313363616016025727993432675036031053468658044411749218534729602844290407194665797004934438060449537571546761698010150005245451926520436806340976917499013902219659062355243158350983999533453711855737187636156538303060407285932457396405067320758354258927992559077085026333915982482362261124341853548498442769008582429512229925798569868537828643223379246332526850901749131362036302163751367373087238045769505890680780569722113282416011764693496742861607331146426540128299389624227794198509500172923571097164108709112372564311764996860014512748096117288141841765614956315295870296001015548083916732392758681075058807575568513032870209672818512552866325512541736735970901224431723251032510318035137136582761074070514379820248094947127113629399971129976172708985709509286188993863070467330990053623170918769501246936796802424870081255982387261778826354768947824598725458929853362591512865388877235337470898965068480519778543351175850994239502812202062815006382479502644736595565445269649066092831697983922148878752737062695620186583638917341705305959251603563246946113193720676915914162751813628667574700917794646483572015116650398221634230991205006660503767027595490585213140408739165671359003687219696942309081589038269445568451314899173914655611165779839404315574646543032289410418262450230165164595752196723301934397070573045226615934898592361012712151489715892863329676776041783709603683046118674724619427463668855777329001061479283194400301207671302214527542635246482932115654234173060080854864502334413192569403135906192891998735665173093452330426363171785799236320705389173394877489154471429639642215754252066330826533130205679322349418116730435295871644574262823184908700274755669250861494271884317791302399770525452731301058865834737145193810004068863176963554250093975808992006374705481566798743443072601668575506753826646543653534516221156425179433706878837845072070056624392999773254852677806002002288524072934532301957243065128740006210139972977118855875810729860979394527323406016889505365069913582954156833679551753664790106307325721874161176148188390248151055376404125635733695562111643645654069006071067220124124371453359155517577412470470785518004949283638580675480610145781176869284909038567258358943658384244903466728774237727929927953246221671323470922225733002447409976462150002159907896780433021269112920862048334548508162742082585099975791066679387213140609531941687966235289656601034355906499341107411471205735693103287668852692092829554279535674607162685355983796108480781817415001162507638637355491944388241953459828925598437859965362021654698167007698507732602432573690021928408911811317125911567284147148927151410925999645607328438506155336574445142211954992229554624586190313215797708093622831508863100601134985494264942983844421991891632131555257408858369811131543336927690774817069374555838690276752103311277216999202827391169821197943356221663931626202872599363344979538851559621502437111031842424853830680614835643788837936002064947626100259102529097770609348710924108043667096525276814062225751972024932275384622294832905447253746877747254233851418844670317788046696204091695683287838915089300291520168623280569863624886587853214833347863547232469385847582795702030990694612442428979225808606014465443260333615491668816046764362585459029754665500314257226592709049835668346443726430226535587885260616870990483874204276108520167390538072970782015054852139873518101003729526911586796450757292471298655077427369788377316135465889493201206790054314944316740736821252884810856370435581135567536839051119811219483094536815309664286300163494755817396154833120844851574081511892051656403054074043539903703654521876903994627533644875094940894213665266701888887339596844908564493553569618742073083085518207706588975945257529878700671278571082421108746401277818721378564330866250885765774787829534895022729783540208636394250124131641562225669776416604703909953852710053353389694724268942086986309836967835027265379485097643133369808256420901852566595305666425676135290572681551656246897990672346791728935778091932345035039542168685070382673507329636300223437340043498114297441391642426871532732809522266271099678058711693199915299855500123359767789439046386766142386287605843231285996158912673088120782716699535606672819335080784558851205027281059412008347042598089231652521235594722373900467634388624158480985429962617043685546704655089975739002547059370127192578603320083670296574142790605251189190687859527054564546444555410454751059363887695377243314411466247220472582748352830439585440883267126806962799562385299794137443787856527854446628616041627771476903958399505097332977460297266808684589234416994110269107507889221971493670023714282299885939838414470917939926722107561185832984171681712724527879888582249061602876735439630919446314497189589626033358050662282962649338583079753341288003247621384322038775042239699588971048320362513543853394330508938476994680073140802630718472196011779791883756097007211923083709908271269838766165012771615237234864677574627273374304089930937658358263827194682826815461771498188246233491746430041332902404527770794189726923530708235437068447270053162215366398679837435604103142142603899030686385220478338157937233431762527709733558699639724868535637209495056756017749419663580458664576379388795254405753642744313032943938756708163985991338827324215834733683539835728356342565141679181377793971199975607599395491888288201493961723122716086938659803642705422783685803645924608655292542392330828614999226108414017179604162690268981239870152424044719061002307561925750428468206309798972347509647561714722076042974588849664983925733761874623259426840066919328162536994543139686691047510435099990678234985689298050893758065262654799298617310670929341140037352180264244518941963092719211591729586000113920773130160447537488763268780505518667535223589330129029677995040667732742256293497096724468190377776787511664831531750127275891438249208112749277538138999439009200029717356391364985126642747914015950365251000682715179504986608568958573482593258177701009664692229270181688577607603425192021605939809306814244112536658158742324726415067630299990751102607051691570600351018192514587490014482546875818971296460213048053501363537880207962222449197813312924384827107275152220824491062723633494576307334075382303279504344984466859598972467844649552168022093366176274766895573943641838988201380911494730235561995010814196135060054626468666180428960617018174490570450376555257649257391638136009083418187972393906017885799200961815088434137908075432613517561116337779047019231151668447220947253022224242058677111596696704020330538782851441607493496722518496514695900124612836956515098216990575960428765860953591794397919063297095523182474393179960634743860378288970941433833295136672899240173489465063338811611738188336910790712386705588977013865883516543128176696476846540842198021649151989755678621163869538418467331861234117157716629904447370113361805941010159927741274706927538088399306734878274886757656147370560814840845449479758898567641122202851189479453843167130379312042160473218484417187567296179591562034601686272587240229107306859529371945431013052363757324495839401297210506209467897790188996602428204653917114787189678924375619869908933477707867537858574694916442009002577101036463709219079534016333420815562008452986774868713671230172337888415263312433544619670182939028226789295364212944654357093366281622253028832779518123017253220501306155728811016371963248294454356707492392807990136034347573241917246169208725122176878941356591039224231078500903003388293809833705612079553882287765368335000430844750661497347851788583970850303104511529890659827172772692248228640836882357802976904831459632019412206234289378677032438827799778153464566064231486897149288958289861461047227967432034637551771807522336822215571719121184625928129240902673046558750201795763835776145378610444930029481570525307661871748548592695829299130611856512941375315633959850827840319515308141429288553464244365129082584366595700924876614078664162093776064795190101832007604453788426421421637883271275376347814018827036912513161452050465318219018281367488649136236840123669794030264599981133725762338756211419854893162090074564999977729302721952047962521968653069112365106312290610444946886872477107663882740458043468272126000581938950986526560871466357448532019183991103080595346953658368738714266929023139808694488216109143501455514136833607134375475688293156342137087589709859594422789704392416398192648382824117602029879865546765241060154453029321474372028122827635603694179768319982175837633313593911689487734052391209892101743086225690283560424160373195406049785899016111836377563665643753225250703562534431561884987118852583656232884408900689348308196915249874587423737357975794314020947506813409692416796618473293993758666698979814773475334797433407960397115973410705863274279263110071219434711973136141810717143184549466818383174517540223593868144617299661951796297419069922936460840492351375963939681595784185334307356948725233273443190851304293036018623935768602925500525346159917096622865450851457354212961614608897829173476250067761971811536033181586918228105422588195171962916254374301151342661558021452903421356752846470229337047219223971455721787155829015816300091772457355608343561266728681500812973464996075610293609803914853664666218322713927622615042881884369273168426279850847407492583155776656092324196974254817397625633271125707458526058229820767554318692478167579089264657679272921331165418760629239792165888401896304358761874407448380211379463728840985820185407466479771633732808508969559906453466522183015955058418638016168129924198389655497359005942652779935458154017308298453203945536704621164477871994411692015993478455273971837839407589163832719412836066905089921202339551171824515174016342453330382441685394701141710214920531001890652265287405835998146494511973101112978647320564123445298815187458693787946070160089246260623455788393890184077523390398988331232666447473182441982870057173350048718459489068301130804033557739816183811174663556560796966589158454872428952624561747557562480712806942647202274660735605071126911781592149790389316189770912282262102472766307946937511097248575778230510813840717210838642746358116986378802662748067092302532905014398042378496465085645661430376035634691472104297658198788545269659447748623037434153512395342670396002012629511306335714661620679201579261466135412899045829988364168530555297715500540311793824552606187171460804431374061518359593664512399377251288300381197906746112021107822192625374443219403552929152434700450403618933876777486876213164084461608557508495544281088496853719535018619700490698345526064550294042630510451702562421043156926489278399817106830093916076389942227699725473721847163460725383782418246958550807407313386700684204425044668485601243430734594595247291374836066326657060880621565869673804199721001415140701532880323061504585364049315418837805672495879529546161225424660378458210963230673491377880343792285297351013745474135677333973489514550818304630175332230045819140651499904684687497550995021401743973055654994504827423219541772718075924915621194927464164785299551888131211829361793414832250386384588308211842995240369530753928640417323336334166171777153848506076698836558128170462801183019767894655218461523906059308752279943099924008107034767825521020219841834246334410743163026612779728728069417703708005643333708685247365951121022285107883903065172151995263227397054425335061552380619847434173025037028042237288185598034279581477029903124292171908935533097712182139308821068110927206917424382580530784273408292228838958119408469450924562091839981128276460604316972956666303676467049307568192388466588271762724877307636686271535871547340681475688483763927577775432248750619687503855318162541110766698623504967424531757440427516571875036909883936022970402942574840833649882659301386552404629114156988382467298935243076338120906221788513047796603578784330882638667245882967951460906942496512418060770231065608995394856508359065181695394165869952065079013800666497676716510202271819990704117645856012765583664252406383792173357839483141961283932098366492798452154101858212055510690845409212802888130585593696365625197731216546373982331474919127656139217485276669347953806063115923456671649292749048550975633998320068728827795458461368545681438498999390185426557097539283598280863866970532662491818516988555880399625794081358958197381163421938531535973414915533917309136875313641560301225604159584369165220396735398305258092991274858725999883333691052839263221418457941997228811690650448694647812304670363871259860398810878897731325993006940685120035596142099305245125519344182609544789928057542009105507058866005652908705215823920926769761650062828889608672804842668482059495169036206963220627943937606291642705347843236429864188501379976025596106630234364514697043287493590122747447453737526032597420265654903277834024424620608602392692218570710955956308194638939330307539776240306398969876787483356070156741235077347911671036145336899840640740698538973428342626773909185497405767206193139451653439738564154636807108867636751532712540067950634303268385941255054575125122693810635861528177867403611009499573433689443289191562186615960638299519497038678433445203075493361499205669203322525638482135103628671808800692899411469759781551737163095057172250248171198270210753909140508236123979807844972884618036384197712712542845090586615669464809235757692798172617419366001558658201544089575409186471315115752569388802579274857607597214576997789843030758458190211214940226629929347637667618094490668227177571102362526230685756949783781119296389840076366329293285909916914907421554041358319607969703292851212598874928359782150669681949617884484085792020091914327504885661942078785351288075054808716292254459583371882929677881015761731742679307803733671463014735917306816525378847831977450916700105152819009383939683305101186330175585618929326251572052934721297392542040101065974888538681206755318246190752165172032333140504977982955894556291684067711977243161343627609903895952619106141113997102636590509150468671162328997054947068122769324617271312126174599032843482339088856459777258405451846805337997589292970782779667419755815902938542769343081920746769521105059531974974825276399091516985728242188116375364210813100109757801266344696610730625417492679091099240363982627389416427469922121596343502689293190716353474403393989719273145111936755506424908118046169539146268281825777687002143974138252457377492108423501024053697991666960991089423198182412419660528727154835627656965971827847597781340748294402747165065083604361698423126552352753504415460838800917386170951114766188199234138793982562055082220426060357637305012802388765916213707281584068086688790208058555432806715183999961861449077998720819239964231927968419417108279941899555264868216795076270236102579857577505421494145323312569548606332844780116183886968316845951801146292330751050347521158847586183968896925723165787676261249477539361792487832692217101576268170194258031824948298852171894480352013953127629663323268148351764609578947632952117647603299318662721209941935343997431481137303036982936488090557181824093117817635817965615545744942852237569391798037001346380752321355419006532510833357407717591363273201877300875146985017145284740312963588318350336154225119449988017470482787749344132626212694133738561880577827434218293857278600036158930360600415314169740421559829843602130881951166539170564147157581632796616325347211223609960337217993249519019161957499057121726931307680357043603007232282793467450119880326351263305914418881799652302228111898162580845978932656436454609751750840626897929310807056940184369786335210193901024291727733111391776631840311422073682496711841320164701112059843289947868831908276879163413507827920862684518249041560439291452624752974201186284385792464475972807268152228079939230381871891975017605047175131381517686602050113230227036550567722717783904874637680263619098045376137913089943590421596437869623654383464732173964970809140311445702879080210507265531213201723790732986463910190720325635668120830409296821039404284863342583834171079891131023313637496985390079781379716816109012575680593207204215221764411301399787064981545012507252574836426617678283334459533517622931398129021601448174264259802639380096808964515428591508790039003648724508014947203482943396365539361775458466069156394198589984470702303704806824348768757563086679063279145855981694102822825077323200002600613773929079172657019507341597288464121072649504350864444989326897138791085999797443437106468560636403875209051636188004529724915278163531595717169233376913999496804048813843230439238148087778181724705913799596431434563852271542302571079612750982075506224882678830107716411833259307888692182415427191788877990279125086909063919609197661203856481439064512742632397845844406423494201747355911580696212037953184409413939515457384811436487373283387237795611340188834410559865226780644648471700697932756415037678566373126312719315954759941508353106603129324050579981289653494843781773791438454798891450499372649509516640771289703931792387732692022800802474302342173771738038003703957370179067655572265085333888853381198818268453999887217973623241189413540434446540130126507723528505345696130856531398863613463941110888357924412545712786222800578643315354670300017048441993470781277276542134277035190704653698220388954576914628288066542256234362705579140673712628214826235649860070011244846450279466304819656236927354050767939561292434205479435983634737229820053762767029659538083988386107303015288087912184105806397207955744656622913220241862473053616182186695342552458296752714604296348717820177988380683354250928182921221080376300912657014656570653167248093947209520130044155314972717421086512155708869514000996394769708533926818730893351523864530768184899272085790417344475651107852840478045293937797936295464220363947875504409348415307940991198775361277686340334211410166345473670478815367326724293356619255435085278655684656619694042712202288643318596042464325529993653058003415205667759244955064860810528899921918546914072049301434343317364054764409698748497464162773573873756569682773092641852308619538638973275601920174346373399892097305559122496695539480036827598365624682377046133227066648908253986679880254298377695898552109818582329000208188974392947973966194264290568169383545994996221804799951469490789618310086309725325534315472202079858039227583312346815092324482063110209196930833991086953970386065469084210170265383447895952941628100113438602679073662050928478687176625826415758175235064998175031531311999785201132378917621589606530275551491776097352198871215167049561523150861850497166190495732530506349297358879871241510925589302852330541274260694677834800529785638330278016319730643194594040953673203586387595905720717140942932363986278706423035464994445403255607513692111767756220647649591629300573993231734491751049502848671140427172661564608719748208166375151089959415896341964919029718501621458620821702105530291417051498630643979172640777289085606919976890341161361844757354424960982026290789572834936941455080623201002618734772241429744675760278247943824405490104325020421301165519644828717981313904312468834120205923983820559450628966931689533696580307651184295518994832579215895234654459216119988848659717447186856964235283356230294812991691654186998461089558434863024750020246027802035060955504956963783660053828917125637254372058436308773298784327793293299779849915809066867024878662585358712591284936255814599034860941021558409329799725021253147346005731779048738377845931933911525595179271624100078582234054030236772327261982426183149529402240061072374441555421404603522772819140982788495822577977252539011194827095511817157636355939979458428992008537635554589488867690486949493420112933500296035739367632030381215090347205208990223289947010035289904446179792503302025880025842471659540822610793894198203669244651926244063961389192673854445853652491555071700244782896638091927343043779240066692086844737245482124888694885592816623587144354059650629849033649632045341921791036207703348554334846405483305018588752905306756401210283862394961859713654366940769033371293919976239517917739824047071329402624096356309948262621923696599319851249162377821238138479903247302206417574916425398159331225075578138338742569363890385446567652337167664310485861564756015679557670256095314215594320551590236742868148858733462481029348277366272021059443120422000357507171571245006123984893736099189766644167144896280669229066544873894113847272792974774498096502315759466236360077148273007830314332212472139692045484392176514386485523453519203719136306994337430232253021980888196865230930064789119856223796908445662264043089749391225810896672224718173827079116274505158763199332479617302953695742619662819727193715982374804036142040133604867874766999703195944664722363684033717543490644217203802956274096286381939823149481490202241403295710552026663738249375660853011029925803904495381175102311163927968034855341075172548095176151583235347775446276860647342688817199690606762960564150993240054945875107857437511443885003432246440337908371918904587566388428942388165388388715639064081883952205859539677419910499654222885522834995957651310096367351131045994979196480429718520178074072952011812639437584753604348930665253774555251337022111947899278609019474532662474155256404968129368576593024349306450335238008504570420475166168636884312577647187133056166538800888253083604209074773289917845128077274738125582492640642985464605841873940847338107190113299416865128801291854808073544890857593589210575123570137855240664612674884235643094226936823358886043568248698002546100080427651985365368215438361219107616081972645286498976422243700598369530091073412758040436026149566291258383015427501256773442817147748737289877231652125073847309353760613618527310413190813146178534074654278841759996336572902309996612792024375414438488810793264307712327005780470719090577912830402467248603787854972730136235399215857339755720124506556684368529919376764521582348374563114640203872512770172476735475861909234359018822337844288948203011199778025040861972376514294020730842597907594402912433774474171571281497657210694832166266374647009461819121657298978980990369841393067615140949581907485660564333575829957479052610778170942420362933209166689803704710476446614055477164070528855316860836121863541453061268199016645003813042361843361712604329321853184644512195425191459287203308972260060156678395578065813292566385790490816911046685990901594494144600616335641861781122278497113100253262718144170189255184774945273386100218528609117212483552337290708771112107281332026108845949665977165006564422600060086033743263583837858146192588678111054189900270094174985164539834889733584610014049844839542491233878051509286380174646465722642548852080297547586607220439600610348886577582489248283098965273572281482106189333018718255052159041586362729370550522770297526232769034397407783566546769771949769801267396902825060831010654843420788068076904985711517509837446078018946193652889180560841871635074754040047485743585566000057901655856954887926361877086916035058864813523267088046891068477272998656990015291594933421216364581278983589307899271947980861307460953539432006828228171917906861697061759448506086596670576538763018108507611463470829452379236379842566164766978894526573853156406242827671711661150256113407863055957836498271484796095562865549290005490649506060956239547143586964463740080088096617485144525986566756849489309060677190898532976152147674566048595587399530665470810767895432976930868984382464461361459839042465779899824515195075174424504705492749308345025807272500495229303923507017172559993659921089776401277933263871810356971246399543890261143379668676837184881385542516616445592596719335691388760785558891914668215804429075247991235367106552307115694670463512235440420876582650877925853954222562733002000726414469521306795433438114036022655186307485526488593022309618800720328301397728140130238299875801585863365773226252949635425720450470476510188892711046452244040984166894031173664310691368800571488769260095585149560590159991981594000920870991992591534454883551162241012608956372900467816512802435708374482302357504505864593846631896835468370964138861321074361680639932506871268499847046806300422765681826563770972156160691820575269240340425030243405569284586911821233890801798294734549313364323362319804580369623892952328270910245940117855558821710652779537518618404059126259940103080182797785370222563372787598489023611631605733380506959344842111877504498428126062088802862501626019756664367453481807517290987996427043333364223958066353554231613816105184847340337214257739808752773156538609833923456384115657179283263743260063939971797113175418060354268523589230723855890099591927948849071980692894523026726173664803148313013956299668104997955564285184949213904264180318088695062505494002349450491754700073961958516699247123753570193441737296874829893947351520909352730688026741579723531679093116784201393865980274383849783494476135572649665012336648371894086406590053881090411847294021829242044849125890239434213908215650500930927873175462223263253226335224187635723118616059751540051161363744453396690281678583210579453527871510056379996028129279118349102912051179840614161185325628350118209665092458737931087128681466264388124360884653727469830674528088703276309393172590018261980833562443628163574557265091465624012721576650857451801651688744761067370209872997311330943080579148349223934987069963816605108257508619856143758281999442917284962549474564374823117859666486412383680373189788213865161028032284973127404707463222823593436191330389451188272777126812780175916053967471684771788895511005277109640725480040996171308983302472476338420053701184263369907696943483997545250880043493175044007377128326080447335964328291345315120000424900997189546579454944426047569926598484115528351348079869513004117925722972652769127922663651451133322308104615380313317961195296228155654700750632040037980124330967014247945635167680846144850902299673497595111863958649090486399058419931874167478972288182782949415766662205979399552995253805527171793004718931868440109119574781075273039112098921012899102026751726386454711819134076210104334196434651041274532300003637510581116021636866465483187322865777426464373806195099897529933888078526067227504816719885347566381939722397865034937626876478507217594153048652233048877231429220997462126687068931935276453544223008282711922629356765446441146817778129661636053731303659873424346413081129242876333744855662874895727788692100815709765310156107829060850194969057417832159709061739206592981252838495161745161877080766797838081815097237416050313864797104224625289387847617080934165290891305044537897231906531062139776458644305468703874943329923656815637019745589581876506401748035754286092568424638936457647431690432725373915658473489299450200807856872887683492343311694777931452090878640445966707899798911296738499584153923230151162283362732610492690893047539841425077732425435482032234662243144575853461880636222367120204957318204860110575738663153196123484641475746407722666812395689174658197291369648101849337595921659063744891297835112380834773358569631990463328840654324572733098252321594191004022197134436237320558650381014521993862100594005479103700876993222581130202284463431891714342828298802586601825522612369067802352282309616397769226323758727962373799642938964183108487537719580186143155756716021634402962254509277327169494707577374515563960227058487807060975457755416452130042353510275710937377912964745490248904726685024249774677867539459950488613992734310921755517588728416325544688669680509387862486355715913522073739678422860833962700616745487079185896286796539649963010896169685657307670060838095191672640817668935882150621342807117357716936146847574030692005100199646303429540093101771463132956642517846333071716764855406243513469884019930932862389466496034732132505469007304799906384408290920000778224749911821009538417208397294668441009795626192973862907964236770631108506127501901258175423521919450753769335010151812257540544965963262938449178608705280741742220174593268519691238476476029552751592149003281026258074250043615016118829621967369598703363539293455263182475348752657277429326870456880498140056800984787769506144646104985373304213402357554007494518626238630538472007594096373876879445151316876671522171239203690622274107129888915912453213249350426512734947427520152753503783860129877325323843351529621383510133431608232363442542089144126382704720314721888584459373069678905260285622079167016192790982507774419694499653637277076737601663601085124782455584181198099709720176776152602069578911097563155087309960566561342468451113917000322890771458995658744422151191907220918316043191124561583280254966434498421252712976906805343544397879078501116008721742580552538844099870271629261729243285105442475601276537857690230451619445865143385320118473578761514185067061649541046552742759662947895297126437637769442823276102278866533056726733162269570276725284383712270520531236644823766250058026397651221664367818642830125043901961774222673159430564103812085172107177872607517363461194067739809113898726722268810615089805121822050801224476284566285221182716361370979324105671122298579526890140434530429227091349598572966142261325398134534331547157470172736490556913588772020804198026811037216631407092895523867849487234540811301622922946205012504510582643493225690765132500910044730999490089157821237634274678011064831097680032294597502151535261187895922460583471055843500147279488719129589760201643420367403496088323968495095371620663198809116415295776489425565459063174863159180344123351884198917955691297312180883782784595448297998982022071684050460879381263744447705257429820439914726375080171078886903746471675094772807859649230467665091374376501670154274183215858433686774701076333897584594630112196641973184147245818812039195137188834764699697636713805662394441712142457163612257275324949075230866986346950956643088575523646282837219746358954542606805535905692130018102979095144122395012927983889847057802437680780591020884129335613797130836114894282555937113265600034959857973648251418966304479966348637275921887077433341088766382883557857966904265265778206434052297872658531605052815971862075274944713277417063335419629201044287983029910837270832658189809634742607022006711092622512546620973239609847667598114047901087551720665197342320370194981263723764778255895919377675802821882165331542873284517765272748949111918533553021948238827715613789493021675061884243092675287108693102300598077955708449701261129268046725072840770773577905520210230750494464122574480783673961740706399144382482070877480043276915241771287809584419400763802897155318397095997677291292741330822978734042474365062761257553343964764558278342076545122111313198116261621636076465380648747592856767713080322209083454879427253833162447982513959684069203173942385117985143039815955079727451612902049343932267962235011559253091550291061549001836886165583363179167820727531545607188900890906566824815641564842083553390705134339028932791513306623925065817012175275289762309376668700020853144003203813712991052303463171101240068135476827366857697362276181632471182873540819265069349481635464280072340257206502107659217252341534349365912605967729287944652162043784635282458657946937131398303031787257804896357059432427978329260856326097880781300977156805678188388595801289909681275789361250034161428545356583422622696399957605966263032767509810007619209844559466346609041753438426775498893413918358889507805565516092556742569682422746960373159370335672448529917228746266808933521552262346231604980829131382784050569859129435777261682965230233010277190283896124131094805807824528240402569299519741448099449137003247360752709419717744178313978496916826014072226187292569557317541593687577278223913153961324193423940617551370425371332430070659961578839569112903447385027514034516688217027836712915013245904014798565492378234727786335482265283885035525436011259860850276217304431119999349052659388010236395288344252215917591223444829229277224927763246468754052676516382865028353673516070725469700263890271164972577320903307886532796869600652324167149061133283806680937041096609284007863977895444832953146765721527393388552811218006574733364160031444102452424942462226626754566929548647904773820293335742603451069069178435226289304467644986362623821716420987484147302030948781067500107339289356201549520165679855699319355124101884775939446491148423792800816297717636849833833225792667461722675686345099309776854491836685634074136493416547300258927602451605502905109357589690761998467457220379149360732879958514630270987836829092804385085029805120176101929152151681209133660301436021295178457171399039190312179860000463882354655657857324398383379413887170066665643351773160778012507934470492784586523358654928848351361075719988147259346313279499264333556645765277210011482433281314806591219601076820160979603338300679204891608769908141232898371489337218277100659775365919640061819502676590801322152402844358947755446959686926569854966190628013460796114506333824566926802803682399215847176740929647472999753426447746943967681177019760955664586518489126154020566199592743531812693430801919955933071234272184599481165478145091871819618010908051838725377091558803320665514055932534509298372191590657782680254989286909996127488682042251746248651493569239231752214552493874310216374833290222026684792585008595581300489330668572370205814721867433481454177011373362926800092665010113795310084181491618496930213132430472555897073385730939114867010364957233661192122269600613230620618011363534913018285779725325342545582573363896752354797550821286204892322498281082374028540854016769453124596852724421832987671053324966590161709364851964337136008490589521658428875973350286473121017059093457678321094678145294737160342186958066503805596151576445869296446688069849390085110975630755712908969911852201579333359639035250537982007774205504528735458277746494833413195418330292043366405560327821766171099499647948922036123012182335179042780709620015962046038869853300815093210153910743880008136739527889379845218146092066718142581329089702800038828196460183829837405637422741753640512901452971328023823460630285496195121955084787683604982967939974379126940332014361666623581703621996785842238479055293917556883475030875621714049348002161050918464876709407024147410762082643888050414039801318233499001946231876928548570899264778257373922565466235295300432437902570602491325309865379165723857157114688071947336047193777807403581137192043407442597186276561628055299029427323547398652338425283684697044300033554723230785447440469510431598072167690493109259990719113477143496058779865569603990324292758319752849195530419407249818848112912002266843252755790428772846708296847881680867701500038597769543157367346209332182721263161144335644877399420924515962026209586693308292584829446523360530359833320317586206980697650543413753374520623763122330551202244927550324652162143212665094983083131189016317547692173260550346947157186043210075440924272890003731879322384764601026140622445291274522920386354997578168966940406558168747848312393430385226603254361953408391293380195363658743520889471474173899792125705170431508056289596564316651107904489165521017447047316382334028184883039399676793917357570796902099562988838181788416775460374180539809839048436326406253942946728671874088539809196890245405073092430193222800698451061632800710308986803261626998807215167867296776569496428565672447977927853005961066331271537542770836741920260512409271392771356179579726600220566484549676544526897572135683409473093364517593038851671919877814444921005901980925267481708872980465991292173755992675810197624875228186976358232348712836805639687653669523958036228205774572876505700616796213686826876257631935604638395532129801280923641882708095455510372455903497886498627424935721441407857344435111755425186525081503157602219259522019095703661065389228140776344376848535933341231663878037864177766772561171327819774648675211178751816938423645177251051464162520433072391391120956054912507553980559873863263681791535436831894169544721585157439186651097155383359107492918691096654937787346230341058100530438875918036469289484340716462410182681811956972084067058280462090257474928875110602550619107176138812090328544876027998083152435632870605341434361550617306094435297817448046708129823328074305538186571294067281470387358936198414656730171798560733679056040135868643933745808319955486303826703103971547662301877616863449833528617007977735589640644358019418386185935301278357954872661336983888804153731864463482272638536001191673680701037468548143274598171088515243328090434196996400950881039869215247154817953287137866365098302786823304125490783068491558135403428134355026573808780382574785330856802727814559384971010477576796463836578380771714587619822589036614763830874781939507765997682502814637698760041879237166482963072374937825295130294867066801202292336146496419052696494613154379747923694716025975743843210924663732062127502831444749372147229335317604003531479017767373179832134835684529935374293356601755708217369670612489923370728119038706769584752027987694264780723107218753729081790339578251584933726748793510655464195388819613959195270946333257174203052426075703470625158408453815290823915223133857303260617109513262920880515722100658323937364499193778912721346829936162463178268586776459652855869947568178316194907230372563266133770933274305287593507295738811668994295981310160757919331929382538987426603412539862895476065117440173000911055144605895082131069618653849528853505120785558475743887484376719993357920280697057612905718553329842123889816755374433232912705564846930359176093294657383879089459086352340806909277487155989451883025079682519363664753414871191088299389931952080763871122222402629688979787620303004849698776215786690568456172802871254619853503656549136503782146650340413115273367062603787777718632165462506999362127747072234200639665556141117362543597806852205744642128865388962756056968130138697994685547460562002983425192532178738714535932941352458409880820250773616583648814607733567119560883144431194874408602268401191017155564562694338429924752476304265994264084173922648840080864678786908339435977498284664912227920475575727226350672641996073878422657091149316182956636273662573716969780183917778612145034423750455198042087404472600772529062873878201999260674609765774565885105663853039011112380909957937751872428529671000301778474768852104652416598342316789118606486908554173814625136590269582933766655914770668703006182706308067561995649893844812494904382629242111499733536448047106436207954374479876174143663863453640348303139050804597295089119797474131944337787013465805901879840769686377407876082665587660230560222053282965681702003750012973318757094686266264418087565265732806252589317796805118939036505898737503627922080797966651628287889254222299252580194588223922230976294648168210924993991259154821600770198504569288046597494017960641973037318691003225253338852806787329855788730275108955988570928665344606597774782098810664112585105158310023125181417070996978038107464296673181018266087570142589346450689497417346696899719104628898631007215454052966136790868852412824223822052299761753295606296558510900112448821334939537771475090484350603618915387143002437446539892771065974566025357543175475959198140585592853667648653652291995952313490107084392145521054278684729768710751198037322580117954177615091971743424891298042280990176736459552561132261790813658921680648710932707258172937035561162574303174309731205329784378270965751783705521204337706850255676390118751173350127430161332703339284407572113770513715339614876484768522877792732798014140781992515243569868978483385554884961743207275503004974840325359703307336011369491028213627374380316034053701489579878157920548759126100561227117128461151142816796776345887531760814747273792060421557799809287017505683341848039181751723345338551460430907747531629450509044061165084060467630344392212651850408782929505094633755094845237662104464102967580604791434930093403768408063912924826094550545769643399074550841381256250655368634525987222742992766989873251174264877441410207367025011204488925550271538310320077622933412440129370442715621216694860025775255892041417312405886693190823900118730120786413647829550780682043325648101694620996930545692845503913881763713295654641244716566434164224044734054758508971924365812106710129145344397066323148821679672707350948848582063809554283939514608263181883195616392309877664355789052668126802867024331082091602115179923842461363645648119316972510918402569415990230831608708773302875288932562811683501228637959980789342582164264626999536371134182789554608053288381602182112020732022204786443843495465105745663266249557571964064646268937164252607956199881587881773777602736931889975022758089230377285956980046539472128974802029871239887535431489732045455671798668130951887864638493310619339764775702329325141043977077031519845787783171238566951949721818426811891470139201412790563163532658235122020540110618229996039545403700030933914882207375847622989558435189696544984455356184244552253634336964832968553272113943725370224110505641348942280557716385794538272742081840228622389474666767513121526732184095123986727306163693523801480435510951433461424387122154034471556299834515668207921038493260445021791188279522515508548255333635111557258948342478343057442931272811882831551089850464657238142582718245622010146994139858124513090485362014217372230096729195824271442543937609101407147086633507096958944057933185145357684198563533217577427131288571027674781041734278142487189308277756426669243659455826431143154786961135584804971362592379814145186573193796052152850749801153147332343420283374838245437714065748864972762713414379390468100964361219841872689373082783592713610596418361585426183819525437098454797590082384476300524571494881379005880568293708175147878045970856332789972479580153849282167203683439352762064105258036543672206760638491692982792663957918565943831687695161525182183370875978871694714714202680846257583938142519396217560829542943953131628533717735027837793176062718182670508781123646433985902760137007616659327130214989534696294853904507586606928240170320522671531967927460082892847666796352829421656791341988334526182681367800169010710715827730861666339254433528663365960118690108796789697108163197524071004231965996783393283477423290744512257474692669652124380128143553357629092949588456301946281571221127572967782700207299583588641154944849184051746611999718951128563039135966176155835697057325747087259845452221592403760767705466415611103177515290154954762094869227189400998131605576802404030651234748250892910341857701421269166312345647998608601043552555265424041775253067022400552125742125642915590794713227403358858330739915482960241976342618997041095072684900636639651165372547615052972429399880371871642885169597095329235564278589857411403895090511509868410325450399246401761635593211670674144791200967700360276352060235466443350171941798977580935349477193234075984748568313902258271324400593581825968939227589044076587624343557302891107829955243901462926403694614834132715522797328526780278959942738532761147191879147973789853629870675346398677973432145811533662258622945391551861109644808070800345006303643965013944248318674833799796901620299655987882138317249216190075088029482673681873792576347453327342622345193925424230074402465474190164857364357951552894193703092737312020642648328111368490884364869045304026888726496882962877059635702372934894773552751539282935700046375780874739977465838368238312751573668544736873286728313935811814340783204894596194245149841009563762976746344690976757940781638572570918821650149934829025484424777177565979293575014043035657154223890436856906076683440223306617370780948010063271629029268137773811953629660701661737681990861482336050454323162659358405717070127064778592252652423277588296651229577018072730045512446652976830201906654080891725567204232797233858750342658112334583816327640371914193876546035696632546693196437643058705637025285802842878314809064768455957642970905473538760641103852274641852231355416058634002668574532096642267486036894074268100011741034379717048195901666273821593697426317332270293028017479759741490780993593960604990188774373077181108629812714512798943596064183248576091000838106865689702108007511649905572424202653859199376216693598875281583944829762914364620881377042808060832030950057867320447260745478004467165355032497704177200072276544521074506313706032248600430895421981935040679440568684989169408651714867102607090454964243041494867934871000558568187052395399317103191392844233617264544807261165542238705460639335249570905939369843632567410114706662767137990304292124804120192511448771980193872912176905181547334713755943590872600322125459817381189577523524378299150771464841697214180563729064607901474763074202928907589805353943170377612652422542792185260738656000107411398556246309417162614869857495252190631625541814352060323082342856112416366514791525338887510449449833492616252079686839506000053413108134060055502360965813100604673514117906414703325920504059034137492320016212643842039389122476365768443827661444799426688758735010090371700142669845286810776139272128577615405598698228602172059256572873942768091345657222494005031844606374326365561968346995613694728444177009810790918914205156248714210485149802621548026187636019116428314752512170354644922556608291066034979003345350579679773228184533486512273705461098470008657203036715161674292442357293983440196230200336282296693604393857581760744446827019231943541012888887810993436049426240842460065622564519306172035197353118364608930689969893140568960015276203573200253052564613973714951109735296635456115227801741954724648262037940898184799478465444136769279094385125864399687802338395978169949355578447349005182205924351118114465137571898199362029902321952907560687753849914404126219285107871979688598682693076599086587548240204022355071102104957208641158499641562276053796709127970184739144984776438587782815875510481884618519516408008628931006564650520240042218072975334895419425192670286857532579655770563105213672312715849863282877346759750082274066101698683586326105152544327510072145434062276358156660182960936091275808352631847884825369108239537031162950412714107413555470211719037952409257169522107083216604559536037311127160214753363417791929336703206668511773061293014928156903697117311520391237049133992533652767143513524071333789115029259116758363589842470757440165464592292415595616002478006147067517431638551358568031143542766111972469783586072524288163829890768914172189712601597049738620600549005015724424272268017626564502333841749697078714683517070728416261032051009646322984570453699744427422300492123508062036968983655839235225198412010454492873094335566318647233244911114217862038669027183765522965097656332502965032930614777828663385012406941325518799977508308238979099425822035465532863607665404222309334425758821851821504244159380152472924232844460639693698604131761091195013831091428440401323843754570998886359283692888774256100814440429578769536709320948976137987118912927111195577908249798421527945152449126919230351672895477883648497473928485442420772761298417848621056783106660617626677115266593042849598621816896331570786882537406345278685535434198124377621030159708481444297526490242025263241099035289020385172520378231407381894286169140451238010348956441823587847160397215974234992753842914595829317303507093479967995448434229601978629820009841605986520202674831482365331567667344750440037824823300597955366296870568243181332874003461071383223732295776599743438643194570176726532487336094114841395516030327213799481936182034055881158739916202928836944119338393910628983644553925497361639591986527173973255206017864440486428037041581480358971846464867283292649556765294327064671576457044040468179444939771469050822796375378811105166077574011448746991613551314517169944053386506415917941077363887503389849499008473124844088743570955485243973573727720604846077931448842212749297092807905972145114521823253812710148840514744915503163429674992832540092442500481143862623181118956419821890626208133754768974756409637175228093727417983869042886948676635489266973142204045342853507879474395939470396579917325074866278561447713412228826616590930575922402644235867582109044003837259301768551229764265936747406570177665717506360939538221654595188409097271671099075274582126386928635148007556225365779369893522223418072984929280048584182460338732569634986518296194087862193962275095103537245664077766269974078405794575245252114834256009087726728419491906955338679818398156289399775157224067026013540712472485048581694186261790712082979423421146562254247653616777712120423337904708362416667457844437288632769596801083951101022860612642391092871226637405502598556012355247595148597398417772029568812986160521100664349970010155610987153829484126316802241735839247034258017068360120345682342281866206293206914862403700141708006083048581315139682844092396749963160326616446548081679487654823504206904521788668850672649247359007971358134353051713589369032821271100857180785229162987214178900524151455160007529507527556226768777635136828114083579999863406763669634782214561740087776203106458075907896336037502264136162595871733794558827297199600413702179788097812428306374606530517860308532243455120715754773012518933417007730604015589371351764622935331634245502869318156059276211517679072139153538192666501043166054440837803327209361689211372137576595074983073795377129155959172157869863352277724793481838253354515702123709846265868159512779125144833912372200212110260525511786041265698717936631052390922075043732995272991365209760307451735268366119865885349353782931036592628576393797912625255465602408540811863626599880688098143874118757791586573374213869558369874078676557176782066010778698330578459047789867939940148037708591465336068801028629959594996077013650440377626730960930282280359556706005786264770285030869627927291319748790211966108104311310419256069369828660988851345330617572542033972030556395249421741780247123791495010044017663028472072924493037526517137117992639089301171352802884259101390775676244005640151178854383579734398978744356178291261380048928180743478144284410982086457320877840637061029032111970043419856662668595347385988261286252572234844362694248880740491910749488820664061472184088510341262589014188360657259877301506272749884106082142568688281869570159883025288108525937747411881030684647197796771480140957433554146260652793752360173405134268783419470088922750540378249762089409513241652518508321151811038975859808939833027696890230958149615459721003116004131217106622893828990589256349404912049098138350736338663779882321139777789891901432801516480052610702063545378493472755493971414028283598382991311513150826841185274750177852450669568865967896757065553065344835039683122984015151901010960093449586381565136531131530784709595508664908850741889031176674153981567277160895325581080113108235539066948134528458371464473303078283540064791642593471205333008975554847613566028104836952295143230860386814096361132436142145326937716440585544839843138972992925407577910864150308344905025286175329695751587050709249178071212162779856989392702884777571779145670064055465890324330146591832734322442955321030173401815003577632479999324923909437653623183977647971992179425544239333964698681449239471893790120374630983451478110367073698665946050514676652850793679445853221034489179344060226913450028736719382784388527178991559963728643245186258582285458379035054751414110908731979919091095699023183571142799891225494242541288856191438329084648069877719142992586610187028582612825811537813843051824743522911238561062465068750579765415291475303109754416905672184177722648451062481313857354484021128844249465999837379270643610417632000912419136178874693996561383590503771647020364121306142546642163024926916492300519442252860346202690350543405576075004291166671032126097457922783169066778617805246902858393425272986438181442731118353328872665945387118529661180726867058046886325209202029657679757572386392426191946497542599044516200665749600133287677191991395067143611311388428495226547332079786342299733863952775002270918061457837803473432796785230418247568849660983456269126820204141365864138373004292525147807468909207260179033129756263985105808196295883658581515960690493004217288552543202531028655720408991443922477529020202092356205782414574087311199971560362639864183834086071285020609984847780417498574090151986468999191526725061209465142888104810628995779075498433581005370715966903100022246101848156098168138833962386753267524516478349856801432510617325255952746547396797827342853949039641321932208167768133048634347984615482305727735630872438628849093902596429784295553017786942762376022973839607642923698134253444491979223340141977623550640771713684680951937977684197725171279960160358943609485755288130988759586434784728673940680359813535971278485098343285757243074787733965887694745339416403620975489923664260549045104224482856979985292063398494282920502655332300820322362133684584157600432130746330365409128486011291539688409142447466997832256438216386313218538834285137426789591778028005889130329554893812702740712867886493504682801313757026271769346777202442675498471339715144419912715115440156770197517996550425084884246342237663773051863730217955362962288253866338529675784513265437623643760876700040959213617294623277773368125843873372181349654549526757243548828740086272213441027272182174398123595863700055403744967790510348160831564899232611553333189096321885055053216100037301767976289984231021267504957693756536099482465305246768095110662128145083147084526613374146873831857991335245140709915434506964937103468493134202766074499611855105482000382560383095911937512094137431946654306220044715675172896329733692611808237693226689302774190854930607839897686664709763203281398614258391707155890283702768964981231333651320332512354053442507173605290533558405332255669120120709254411269221510309920550142235693101836845919124120500625653054025094613802586657846936430763411736712691589791065060068651149781271372703941491002390668250605593752806012577729809416333895590628878296676814260521850572210962998487208946272177296355086755538167714559795187409239001757754497577665017674902124853849300450655491936932001480288604296982859159911874445674828548356724121599228118660290656596184436999131011462071794403839611013557606260290897383585600549596644712367315291899087551281273233049558959003684167657773227499805257134370871152134114109216774942925906601190548693579681223324022370076645036263977494718022327449736775470950133262825488039843657668632425047618241612364888853515837331015734073981206621882746570293022755610245596765398278630302084233256611758012382179234548161920199832590003927065639991709216811804783316766366946963695045971667248127832856115881365141433983410796217702516914408734397738256855353666780830270958699867219880226261686582043306715665767907939552769355702551072284788264209650041817951875768288275987475136791530362624184604356297927538404278354972698131517404837235430962457927376771343919788194353772541548148038346651282917930758899391784715620504820821687593064323851703897529381646022449778208072787867854052732908012178735117171865002241333251558144717218289279985636965549376084699829804661416222882215398597540649342605308666778263346735897944381603289979412497000663881758203036302749951722747268225131442797773783696175740965887884739497241484554505257570214087170289904846844568985583398689537283617446080359723097185495374646243386557909735500369814632542013880955424044134547858402609859141983493431037408918271204525355927149576584886171488727200987615826415988163730901568429976429021632448749177346396755171358583770182876713930160764924374893347091583302103366025753395098832693463635243910499960176685099190368292762458385634426859846734337668289227311348027154134567497642836755578039910184439183455596310116430430907180962842839714295746637996173389790911734353538353595308346931548590929612016775672594544247572374185091557513181362748914086917426300393687127215990277746485894150860453623841942660337672007549183600604065515844602171318008391514894142359429095454152404051269879582697095975394894881071933111960218548973324359928023557574725643657748291624826184734937192223498130737874099441961539908492282276045991413683598143414637247917926044672779767160203694168088561043461312242196171743177894215905879610317740124546931551791110478251560008451630605732239864898402098122714523339896607570083754981525906205472367698834684332147332099564455513271920856575274207334545194827141566648474462568995968661332278849203038652011546763685611162749142852051377685573219851748691042126048961904890893958833307814244966568195584974451979969742889802946446547095581190359960485068029692799381346507250107985601588831222835526748591569238884344528680409449901223576494068398933987864821413088960003699404222116467080392119813216142836783468325042171746778080264978251804240475951791186514090819538690797582528034177520338770558846900982145995122024658725227688431943523189418771180600999564823475329611426222962670393678595566136802422919519091340599502955672571986746708463116199475804531966143919788083776562230463176151498823183585526630255607285453979332514966476105206796957849202283807980883666548194148139661934128107463620742330660900525620695532047201992860073479231551207294398933616655836107317336380995039454251902133919038236730323018446992926655988178398558424033573591812972203015354394772584401776403440974614606570591318631307519728466142261606271466489851540440996585831746376623242534688769743697204186958690370806087321401496106080826302348963712477561673345379539155327475387408123616087201833788780894852115360664638509203886650861900247385152546786074708938650601657912743604207304760716305730343518684672745956585531814074405694112963580759654923228420195489367353249220784933715326448076338957529319873337063631341935795741594678931820690323739567202318512582042949661362778412545349874398705680744446849066740660158968488143928523580346681489821393149657134920023160915370951827655609059812338678855009879781953923116922288427999313827654718378302809495628242972420299292325825342503416677412504561725661681656975073061458231264373629312952566390287602318363874457695195058200266779733260641035744682112117864033295797531201801539754944624389699429879505027098167578062006965337798855362218830583677770107602429792582703296767115730576181749513969868371825409514228294061233575681629762246040337929930367234131014831596723079876090908343728946817716392613905564734782028851159197428493688423739929877366719268133380547867123575762111158404641430956379215532763928267822390583758006188215528981005199746726149184445125033155698694912087287788252505824421484912359659275086467060344759361938178583332034179353437033097941850075681312988151951705792023683359460602370131540064367007347994645629247061691602691727006241980772605224800631027505279552481480913237742192033529416773949444991327617794203096321057613075959171109731164035238573462216036546371576805681359982698383033842691165706485002447561150817013071523526860478058720158804160458704073036173600911454268617231024385354755987042294834578930555247636308461090198292490579963469444313742752488732029783128745340974810028634973637100952096906954539008615425364194873027563292539195352157919890711330595644235303595273875532979653093474065663782729738610472891745371942501852791513199278682077392578084467600831351638018550791405510940669975225638873046156525982885739772668752591601375307659108003550630571346744596385622001424830456007846146536335010986630559039443404243107245893060438798497395804429871090783400884930823552967944946741314715166768127535086903417362720722183221760017417516549738768275159894696853392807973453958883320965735715728400399779857820895236411154739424403245415886224684874916649672433676944444215287282232219754823883379542092016128760927026453525563185950689550147760427558780672858785808957598703303985586723071886889197047080695722527899366729719067746579528943624790340141436303612841930147585303653414658590236634719464229252824679135186828561265180322751268311306766069783464351588276538804557775768805158163457687919082519835425823770757846130467887476625133135157287206517031739881531282422419492985847487832556488517171561863472601534451173390121887019157198610745013493392531346555712074430533016512503711256186906251301888590053715347826180852602184643030627388769321160555311691071031649543007969739000979625209908717063728625101365058856636206193354308127507104298927913720192436148861910555366660228283085352782000275487398993147464123544135268310641023216537647897812806764914513993614685446756542945585208542199693652005596274958840802969430606566143529051588261946988706303252735528334568624940767871530530125464784125128737661917058665204701176111464011060252772295019988269945840506290032180180567684359388896824372941082245255850559569345637942770251745197395495857008559277694839966481860660580014238208684127182667264251581570663122735311597822476883050319306798656494540967753226840689855266612659065593662121489210041912212736041572773243803683930402047215313483351437046014674982634907316661571156870534428631020617023580034600694416992556187087680733768014376976649209824994376335143357271997049493775158946456696522372651810485832369714482928564280231967191044216632338615963864084678469821565077762357617686514438134249272690404535337064279123880849807370706631236041723106531240807968740919174497208639786721760371636973179309693980866216278800207239696597726533387820718473014037196379338857465807100526055364289223597722429938808782353924761709272700906304081780022734168346907526538352004219179345777908708798885129592390479184679053481526291197926806159169769087400870212791434490965018974787031440821443693757446485317806816028310057766803628451469271291234855314355167180662691619876158044389346756081680897268315095332299967365779410724408452053568356049211583877197625785563113919371926837521888868255322369147775518071611453992150808457916563723427127868688658481655610847912502795203393914224993301451962895767615019805370805995920040670258734934416933197061773221819351454093353801943597446178931515479337003290970377386886693021256925902725122478247264422367171954655256863386454070429643212179591920152032901201384887055091737421388780292225309846317120258698453393894789249187291414679386475437921563055735872695309834161103435492127069548369603378028795032723119531961426620894716195032166643396961294796615751789464643708510622269286479067960961679006001669099227291969154379926279404745799226915660738733590177889063606802689961865496782802404182293182433914654588138330333240304593988073728525743383627428931425630607243315091860430127988939179409159570329806224043026677463947199171318715516605489450002333950629690537282890139722613274566720408558236047433106935407931673497289847820053909069754368188316496270463891861418317155074180180869249686985933702958605324768790309874819486988465372075116537956133415674129681134069326590007473115668869590155773778680107985868616871655771633355204693219301321846135469682147917364966944436969135401104499096279060884856318460383219723979270566013877470332097082830755579421819223603463874359383345468749780853284040614141738551550911589453437772174482850392548327552588987855112068267477696145857907214636875757899828488615122271566830015315506325807803302173706707230858426137346884518220833179830716110140176545517851959843219624384265656795301864698446681744729423790762412376579166860790747810854732193241830621964661124396829911798837457722959748760056999424570927516908357860703456935065467307608051742866732184848866811977752756524706124203750299139432930132505443583723638358428144515769319522174504360988723046281844009685377554312699991370678742880186493523526864471169049247716237993258940632742051132698147347551066595809639264071863622755266440637109180725227226055951304740195067333550172594645033452942745360638051596900573419315375068863974114040761044788703705561043284223338851378970973838790632284261100524887936931297811485430708460124530430242530291487988660083844791143936903678127614775052233464259154852672552667606404104859741037590424332308756482202515126009351334272372535303016412263543609214416882711259006686602796369859509020238699109806429613138128335604755470505183843109507831732831278461183740740402137957014266450414068563124982021434569005391779736379067229086639033708408830876468623322177756139472444301044566226544840308749048822450336426359756385982296858270097362225693379731530295126567950336579484606572778653942251487655251750137944794498886441843830875644468632623564643078526573695049364888648850671220238633544901003462891978596636903830890308374941511813221279594019635921403479704892638314810060442640855475383268404411831236543289075989893892191480292696198663007248759300806878972080869409586990349829491372676731791122977138471390414392492067457701085791218446451323522358532725626025822347511800207604122236788218249486199899902542216018025697600201436561487980794636817469569939722195512564709463275048156618342587921487871909623911423113049038707114770383710041518840977958304186262120887139028648639346066665785333082797394265786283000502621085410493349374780363705187688593674782007487482437519004999486160682152722414065922816213630137123010679832411472638952804661281445772037921244353472902433682889859261967904025409179988190241823197755963956642814916403025652833967031711996544928001665440018306291775449679295324529613519796901831476801033182852869293953473277895577269569017600075126439135525737588594426456198033326726945868100338609603308143923834412992066202264015398370300914245181674182698298336070174227072669920770943188616893208814362986138336293799935790378140308330720980387652515023261308080302076410940613682552940458643076481584603236968973633427271696590842772064309568475875638537556232865682719800136640161675537041068132287586162117580375686109560397019053258379071731426094083742894048067979925228449651808703434091954217720632265428554341230964093581550835412621483026585709755749339952548214911173278223445344417041475065776896982245395934484215873420245576568838590853848791783365658374213018732802833380559959329391839913415092481068274399632273794601809946173864110060379715517964464306263986453031527276610754578997871451257760201400318932872905100245922640300836866920983890052499357223644312237139196069071681849107827433451395666248777427933909044057369897386470934256710151571429124923029266649139359650876494835353159886276210932679009886781587409881371771205339622227580193659532687462054301543261847582037037249731122703181965864876251066374499487996381755969735139131539759452726874634741081061096947116442686725995424570744893955367022371127289088214803416570518699047645426128891849407517210540748213264058250090603256582324695459354196851284240918657507770988588619337463217361895329538204438409778020136663080930542570357645177944417069185453850217869373024818176439793308755275374881724436560865843648705084468347231258519444742269795254724972124003121471433369508141047288336357936256193292097165580627440905621484014308013005896644857367653229530872639401909182368442178376735593848833670596199419840246233639775305550034821517938585912053377087853872974438121552800710124977590077735053433973676117902049096690837559012462858181061872195866805276227736698806095238943916606183183037072059052009853856549317908563962968264451743568611369931434350383151047568666534350789879098807164527006421712517940976395234485894152870324980476989809464112582083643926830156800615821386683792175108440712221830974990605743446169455584109424703849650947434878855674026749073663280987340662037974422396438423415779532591920756246565996323761382747115663691758748263913402418110010437472459869469412683278976289866964215333194969785018304363316499658267857070314376302530072253688162419259926305838522813662971978886088317905089012333623834970664483705784617067389566301870756945425634016051388539339569379000292476488070221038319724402972975894976448547521406929244432842550034373247569350864260112800884647036103256800650571237236172377030754223441943916694277427864642930201804661318257351358038075022744980310811805951505563314998077126968959457140772871103747200931378298850258873442107660734970902535635554362470157562188083136095564994606183914491715208330293505911229381256130282089953454877639026108798823527969387332053091093880290430798975541801371812989406382151924948434554817488535278744386354868785788792483711081913657631004341246163281519353334839447597415093664024485122795731434246042632929487349128680293064373528256160310134062230715660226261350282477622464091302186943181342733021518947835521093756991100156076935529193677166788903795079127356360874591157614806710996679801233952997670366097593547879342727977938286533327898313691913150021048007093406039479419272063620137440290426604526293214779566198988566022856667036272372527554991524492005464327541637930299421115709485465352292279304929214634410424157561546443776166306647323204841018005774951305832227246897249095098965266253014591333336130097410133297497853047647987522079026852319848806850269458428900980968260049999595418763777517982810386344027413609341496126816108313831543302806839372793347244900328002699423804029903686942054267050062097411409165064951174076772380134810124083297161617634832937140463920122994891333123240594276384515912107314910209044161204723255567251100141230579872682405959125069683830468809430067398001692888351362125473606745714207061008833941218192579275757163552503322642691821767120614696592153948506371545476400134611920746454107877534466372022528890134814211363100619276194113085219312516778259880870474809343558346597214037706290203730090597744539746119514911693861172642176880704302504574204537233256886428742894017268851374677059495099250303570651828941729664381013967274187967834929586769562715692891177933844055796542358950222513483749658753987647202594627041493386295812138959214161890881897107935439633495633594777696148386327546018848880033884079673281559875266779433950963950691404230596986414725255830835536352893690601025223411475897424637221511722982896467290392627108416106300977517611596769095241004646438196176232345256325169615300750213442429036293985132123531900175572352196612965307139348314241072755745588963971339863101388095484755381987810137877571314065230954764768965342922587845158846472764274566100801880542248805303865458259243613205314784606499576879673095627189577008946053537136819907670136895655246528799562351112764050415855023486518411689990279242657694451118878715396877150855262793089797084134430498448469409774088444263603023752926538172807748356507646458438554339627124322646580521093460112338392938867496279264487696575547129956509199809257419354927529614364856630513229744659489672598345362224318457447647141989792301406912079427631219532312107782632746054716941693863036625307156979315044733699695670154742130284891626034054905446241913396912485447638960555509657841447352619015160543185696749611295223334033462301593712112814706390047206869408539137872261947641537495368021827503541859349140208281764700363649805260010311121586764907238304135013471641829897919509885286840733453257444068421631734861099885538047399589673899984279607021611259813273960430702725678982518966362585192636557442742483895881749276706318798308089746436980829469097974703974296965474877871962597683054467626858875689160094777962331582293650520915812961766305674378628138119167417869130198631125752659596096286830868497461114151258835749883276598825055622485221265324022124349964416190214848273570411037134755482136802775725032485107238680373611325680561481430277491463964753393561278684241104762534759398175660016103914442927791580202752529818782384138575920693974749881500286668724244029527491432252901389410662707528170497830195430202771040128176865537738071417041536677762065495402106979616303523184749055946849516996972645529205898414689858581037787107554870475324977209420775850994709772317657559246792859616697475828778106076625579367284388141334204913001154439484440524620122151583850594567496073841905483866543616192992474542540727223448197487303783524266930312742013453887284918202590667936423090850673908346236254552714497619022908592978999430818717227868420099443032750955389656441026210217984293744802224130082145285682578816992874321757200432364367602600096693069415025411394657585904110398315120316269073107924762897526539839671264000663141334896472715268282054883787962027340729256507793830006965302496799044206038580453410552501831149230380233301696365269320703841167855758445095606310636851826736080834745126729685457518020469559890907830376519609190943252631519666727279425518391476161023298711368543881488197620421953624206310248996217520977903400629076675382386047691092731665458096546462987352006155474597392493238682991555211895051979410138268931248416499708560114847460645025162268004651412135463145777070727175138287516695152542358046879210591343682530576286254014700374531901263218214076316183946281386188256157306668953872294786911814215081916742469185840201258559287348055341532886884170321833531288189262917190272905892520395736634976971729563764838071126057627333858889335662074488616635480614974022433296258958223633741499820306375245346535148045852512511545011599665264031882688077546281127801676062529854573496909607857768802858192193093932414271861137528577059665613096902924755149043641443816807879833754552463850058481576233177736943953166736311535232717400347855146607429903292657972034940397911559120484328733228315516860090264860726246607346066645389841243307840339108676251756918443843389394009708864508484453629519592420232202880517440545240491882107138735362826010663515044286815144715428192300112118163244493048487394608713051402750208084965029421949393711654391447581319718778099683481622568756855880672992299670272700749364427140551656350803239456833682910473640209434443110711303860392936354532284208061971793731091449842854448100308028410809321523052360730863455012403870951022480969787978495707435692416689094898066460253201603790984306287356719571027098179163154236173482091182412467592032381833848472813165649969129066996414349656369911477492808647035783807325409367462783125859176769800660525203614355378328349155710142876142461495902360068147680923901502133487996213704142803216535238014241116033652724704378035613314175014368582555082575285483695741193757417003982116271072630257417427688150784197237790204797506090771717749115181828867916727360835388693826910702525036869691358076302625344129311278330830963251437673340464759431091649072790813252186235740611743358201563585108539982646012802155662220798522559742410965742557639627374827386130530384553793558019593112678610857595210558859760757707418509672552627408579068833261506598009283778692489727446081293004404924335255456578426415824119186091865706384127153240436518806440604323843866481951574994913711860057622437700828929509342297320241889959899908065949404716615245465089789696627814085533949703634439022604932611212351585289898754374890604756615505346178189985885494037620886591389798855879160055164644866703535920472472685931601046940066453838419068168291581198296043315953008918448059670473091538062533468342802675277005087247989912545475897756571427816973603922118394785047287110092309789597842465541445271927690989031112432345350502672883639854308076982954015044212879609711325142642696030003484506775917466756963219398587250160589267235693459027708481587541130236355363464034113157408686362473940299378443584459673357744975412319701656555249752788134082184363115122634469794665916863607003558822400577975932548565629632723122910229880195672276066113440497746257427666445394203464768462624592567785339095132387849915650465950968771456027267334229201398560927630258871306159847414975947133758433204058240238379619342963120011651301245166303996241370346495959644133837503507339097100954157482825598161539763042836479173452187934262483424938437718270640285801722884977033050145899070809686299098774578814248306984824000373570604769545884358282480989237340491642260715100613431090677690816384285967477042662304245639647102430380828092825438030520085398208574002069144065463823257254144399868696716392052115984779278584829445797633437687856839945508354954154740685114640001335493625858020196156733059200201405040263087895279512839969908339076909120461355982908565555669587666353740246811737127609629021684878478743608327894514720682049468280679303125993546681139827710342517707863238374868819609747492238282196867889054742430504934799215039526858851269581015553855881124504302118955185286237965822455004523201990883290264311570089186415034304993103612190427578286240666778322209296755865009837604138906120565145327508992152373345680292003248543130761807162158223748643513740847865770560576412816707120752626464174656772289828189274046220336803985565297298361776339134920905211783617976218280073217010948989495539565196017830810166745947838976731334277963328566549897418323152726084804451883120372324077585317779308303194885392639283075138432409806756648527498829065558796217941314997567944697290445432101833751798749928945040932819560718196184736389171499506115507690362993451493633663724434551636394399676044733011173494941495855126493390871839645143581152605710754094641539781639019002750671065866348794974584554963203092979684871270420170258204720977695635763891425096578817152490621703444735964059897412755725865986417070778250498668036213039064264676623448315734797798179868690982413792807057052314767740007062902294588058940545810389105644507843890424659799426446867716850740658097573694965805883691111409484340866998474732132259452353522311016122276016549323164310328726313816860203911616484882305063800351816744436816921277964876532426594014326367497485321097735480730636082967252677493147954512464682085409456887321695993393841483048892635170245906433768867659321134398613293478426540340772901319027882661094299091848905423597908490789709376867906571232368748479710749404899539674814253830659885627173169537429749155590726465062982398021835316501452757268823668220465924036331228690723518951424579128567916330817950630997091309741511584305746857782215023257069899815582543664880658734768950324881251499161459461328948125899989839208645332880703129805691235123615405725117049227124457996482007315387281483739556639144524883304098640215609295567409345718083778478501170098181844424166182644717514260986206258797073751193135755894148893422728727020255319417356845082049284782259845379758452981020606690749492604600952603753813908730501263452575107609000837741122728255350681659632874726882191491156733326453627118988226756479551476419260163409284553257499417912864444254519398594335421824571543659732942059234019545391545055748782454766215989542544015636349549296110229194840070146172905468335057119301511472113968744701535173206379292179854837696847503743518463946125753451933080698424369596836503562345083500837490799124350351019828764689942435224284711566277576371043124426152279320956435886530766484054085741609641277599899534234636675111520713763164388507490639872163521946410031138649727855281630267890769002211791473388500158522821630553112107566884093208785693458842227081719415414558513879141161146873676150000778091597976629641017974374907478659740123012336969862289241375391543990210494233952697679338259390307925114837768828803582701231863603113343962381651840219840513907715955826745227252719964941824870142451020810618925478043763354973831982536546765814219967238051334406404185899862798755616471763743409829208736771898208712064287900616639884512937491466490265216519451722821470851110404081414909771490494448691640818537533237284925931369670061465529496200667472782740137068126916197118195039944843083768332889449472761589571465629517704655336737201820622344827782381574324925618743794461291047903491049579739098510989759905282992869591000923648472141771035306307928249984392698863168987200894116268324034388623993457808486977436037804622203344121705143774917338635585852500905833647338423122569576335643526195548389372842702736777443540301556560281930101691723065691963277991714724787710595742810591797426571452973646968463158330662097479802842220714300448618925550169143019338691892310209050612133776426183319686926911375822107619865532916584461679641332162322619148763384432027772882171467575718357682169585393675466984891421012668857803243248698118091185955517388802357248958343322915503259313440105380900309690909656687166684152273242844018489671877339686537451804130962985639173218296191515165594169287259213009888843553152194736324626517746965142384339698384164793727374750402238886967877465647316753810178751104967895673158634440198031011872685553863676025230683033632828519259671751050028560621604114536360115077994365703904178147657818219452615715600447213471668026505819468155948873151250937808324179904102393759112661641554167106394507457932091679996399082979785712651844440248459619084996579304416240657743385183104753123339804162726045449746105727911202305232546408496297996296805181181381028095422793530007525806112051152424528253928079543582863351765876500782208254771355562762603692587488207105503046404486260985308509002113636150028191138153277845211796914256354607106728665584736414654890877093040487277183894779949772071264378128897068738180353679607270142238800903236617118337381821112904250210771807744398519615287385156063760462878184269112672165872405677211676324086907883636962761053814149009312004806962738359384799544946357399179643096377566234191595678612380009088710469146307606359966468825528946874196301396828141085795263648879904540013605162860081699075680848607554799816688669382321125473056113040480053737010617499954990623795386513103184350004423147972809246245255820614133417614625720781875713153514437039635700251449350504105741346966500729776389507543900526384793474374052464505060347980380069480141463254677283019041727585902018865140059964122646231137196816112722065635182863844876058974386098363187444460209051064272547551432556725513088623473810097290901390771856899196461479235924630891779731467006643742909695477264370154971508747317769553979829056524480318918723881847926909166726215533649923669236898111296547644946618919675293904416874730091315598531114673644688011304874068191634506846522629064964073528808267595842585846666911569263787462723947146804891121463181686894502145084786763911773957121720760835362202218096156730809539172145609045444781581250892961836320887318690788100725209136975640574900789728531082010301390439831430712287971303899637948805767597328370695333327417204543558105889474776849989755217532807339688965248686092609199449499016809656904673126925804640915206259906380760306495244096527728228439146552203125030276687454071961793645108996192311509252800731016445954526462864830726613197406528852513809815145150661014826757020990551436783668022768456784351931119797169930081504082776465899807976735470704202923395503182109053143351914490448952144833607832053686164237324824409652791375270512833469009237424599107158824772734222243670255995277737455849088938018479551111462541686991012845483926274831866574978557722860086074704343214161304142718103603126550516192496586137140733665786859165528794147247694228845511505294785521130261571693784756489751219324235469218216320194311182224949347057130975311826056352415546519386745344837329108674114194970252961778532956296218059568700311928220423945966686263284844422999317285048165045878671033772420964943956668431012907737339645427101433113457024031869264984480696714710595882691172833465215748364207327116337732118734156117946610158369356810756431645317877324621837871647444978665290752333157778542051782277878246484389273046457008503586386145974260762423594734567021674278004383104236845914534375134358318673626337413620015000074598879943015620892752052018996938422342121970090267621214514036054828881058462618985856350193806210579735656846409307052599237499289228712235425457742851198488351087699403793450731329040544961556432319664794581930895781748747266706355388051782032027761511772911271498095140083899049455715347121884451916298084588768763962320466137074117304937236667176511570938048125335365870036040907949707291953346290475930055844480697011313833265905347764028752322576774244111497329719435964568927345509220098015855665213471525625861498770019398920146780525364427117370658397875969495997207509485327125841578624309704538620902356280738087673377911687543608613481702682050256923292610133312011349707989626269813224577380631643649077317024429460975016121474392250224489751538393219648537139700235608789105103327077471034544510529088639605475647542863502829037712363117043680352958621455966921697712803795902981711064726726601051073757993334393090193611513240240014539804848561217157413428379182420954135304865078368343243596241280900278676451621784348584065720210725437217996247910436080374155898765901396753326401846955093011561785307211339905774806993507957069471316362690418640423439022906567404947921336619821723107196670817984070551360208922371366834029082448214063659554637425504962836639100256465716934220474208152565071607990350055314752909404642763175369926971259238647417826207399738185509861952849656754029472893933362711716676188161929259231809393453949265473978734100101529517628257870061748048973137508401471414309642687372172971410742041051588970969669533121284509606569046011833636376186752006245546280633894432804225499708080218770394222324768648607348851821717303948868286772454134512150829216894112893671272342651765786315988979519474929023235305173975359866608802905992776271217876033149791123903467321277100407865100983186163862430892777136293390772894231655043526335321525622129790851912864038182124835848964061831285901708858971092314112335368729893851097608478815426175196456266038294799594637873555699766505112240427481601010000750786672433498325289548581999229173980030265546569580478414087852356007164117425881408325300513288117593997060174013119256696406687801033246774317080875120251249521480428342163402914769940280956960517916170401501402010120482594487818740550499454066270409052660910206264167881421925215237846201119843205615901821364594056011032905446013311285263120188073497590113460018154790177190130167476714291542909326749843408065268474692124288443380816680287960757140674998749248881319663030070514310344936074441218487743144088554941337120495589697075900487539045022489934003482900871867646999904447616625874041604328131939969511904329123706586530569884268422413128927473100880815711640573289129880004806917737646860587002041032868966371032925042140453208918684991060217734218359852129800555925690285631257349535159283302451526829511351372113886252891671506424845619142447972984574634112263905636477653218483262197248146742282843119654588575000385389314951697146314687670067716878621222170551897249663406413255523083101486487442915112935099303607976689624646006228015355831427869495285712849405744939966872140646035448885816532474992266391347160631617510230207947349579502977262086923367874855594767370973729298839589344967871926441512930361826952677798782491664781511790994703350735492844691123641454133055011781677203104576964165730199524253775659426965415722341115850025765204209189400347833285910964071086091183618928139299187310579471724622139631978070663620390642086681693854699159925738681099697932146557568669283930554984018468136429359695426647074508288190769717291933988871595723636193760031849582755148493683949527957104539483904756516340570271135269050971917048778230036542526812318274089057053768553857886048172711158273357165688646377739000485536841090938367611497438289269585419201631097518778337357100653039932862819740196946916265456068480110752098119981481842846561269528089339972495892450964523862736645304624917978747767570886741504598909656167594463790307043528648933429382834955793018071932850159536160512876697277513795081576829828240747140517912077826412957125688646241075640258585705376093927489164690280371146313278710553563251443965025154501798587371710776546441356252906475292564666058420822303890708599901534691688499933630156509122438292349474593195616760512642693721304437697953978859407313383310274567922673429471364227359220260184169986991256803376083875898929467151000639582077423428738562295809760672482107092679140272620860208000781395901888434565039574928381678114262785418733019664202802397782738633081250647322683049281585291704294861799265148307736069278886233412583544928021031257794147404827640838344491090500071163197293930164559861463061750751314235158073175206760263744876279685592907766092956573553258166987394084339118695017038688101577778035897564066117929627651876549646289559873847956148315246856927211800534940346427444905074995163605174283664547534999708292305145355651368743644885662505771455182979100186990472751862744277963852774031482717804603656618192867137269688998026058074980228473774242855391642626915793372137626254761802373192167937799011126806921366836796660622387473053340856180256553385324947137675424947218457095642329674627377924892881840053740071183739179228645371312963737853281638664072145337522865059708687407943940841808688036593687281542447101182515349183652137716271770392891113403938437703889254480477106516889514319261673409924253334647493031228177994889240979406299139771194888594535274635393667314818382465065533124174486844415003740738042908231795733922806669184571881258629337430356918808522084434653942497291966302522739130272542895506009714107010686613114677602111402346684576012048314856545132916370902342487071467842172293049908801979509586697392322079130448521317171437082714036257939447823907113729531482918210650219525480809450254847790604587565766023986505972515748929266390504330978868337563429654528128922762356373966340706952595584086147403361015332456875544114003309407775173544164159757408399238469850524089288611117978273843612655636048068722692846972197932090458897430517054096347427748768244352529470611547801071228556684756310419906583524307555443373131336119418699639012443728942941643510087433656066246800903000970219466900761896510153231352777918027988805511504057884989007261697475292047870926918502473264652832008050492819235418336643484585661843792565770893463855547401397669960377299182259013246996847917370390369785053726230646462265184239119723297449064729948279016426658401222208191418519166028234651555102027188005598244937166055073154165465326041749389123616974734040116347655629905403786637794730203956150533531799936632449368878217345399265317894531334221588942901337362461486097226258373375439849172660258522348161198823246561887872262347908992027942183337341366893879982653098771027659230888986402221846779888877972525089088144305242167899427275970098844991684272680423654067714800419492557133686811420779029461690171043060328720176018077617138529020340099673409651712422218302821007031262076290658999533652026810338019936532807824032526802016590681733878186371987408927756647706906658104874641314408595102938228391906200361344680368231494726834871865846441224843287367685832902096689498331273824934169276628834972868466467021349171949157944000976145287323650126105940825328154843186136778865747176926539013801283846200877258415014238064124773555103940983803024015071571325509018726520691619745318766829509241896377781613843335679349086684813322727286701543024042466655454051370804223225781205527552280682299237730806802422955796835065971936673089079375750352642954561745310990457876611989011633326537667407632408600524620246247543700096826621578334247367471704304655941447152966446477259988653545864758261435086024001782346279799617487910014427330725845739381166793908161747420960662232428438567317205762288017174935298749936843176553296229822336484518252108950838645846652356584580985473240853673429153534751803016191606557061807894209376247091157144436340233979207726118862567979229508692335372983521004927915907088279106533478700015904002470152040005824514430576196808963836810490272016969336845565192261242862731108852956345344601557385507732921456429359259531330130191010846841652633656510872660616709769270555408349762892783856546453535313364926097599128982526696507540677861952822723216832539068455507244921604388386144951513556173357808433230857540986674512715495328834581753482741087279190370808652914725132486890757215781940081443004582414210362279720132366145847666329762658716133511057696148530411647168855937681794547755773823663053632875909262838441929021582067977887679252036328878429632080381711447622079036681087938449367472550159841262955928634424598083482754851716589410254899154749754375882467434827195427131262081044474442062354752550228762549821960310191912147931666518303419041219382607660140062227278024485828201963183997882383575955941558986146040437830821809555219323490020822782643388584449080729800742843390164801515723050898516728028483846102660641705718896280845073789869441491660620794643870972617275858198750576508158387146114459290296537867717274023532281505009696222206294263265214267876259092348462230297546043387069109967418825597716719084523740063947548127274144407711006568659723574667802515320634258299228302381539315151821908114654178246605191053542539620515031443831913771126322146201609719541357000304642099982263761706305457040920581458878879330364256837181933763339867845398743670390676555736684571732074474639734848755813035150145260964121767914844387029978452828887529316531992230132772058597559314943864525365263579776846243768326273368031394147635822610934531306484938032653286559658490790300862409205038779103660701311478205940777620438645956586478958545142939757975768958401435408439361511005736878096337249690121707393762854887181878584854964299404629236534106897729337320362383162964442599664423301398966730833649461706299361907857673166818737259851595003172242360398486969459074039093440026011901689439695967349332649304138873059269947735200263535436218432180545132225578508112471398278384072710398613701810729590897647138619710962857494523119905153875907661064179103029195073943538639838437305298990152998940854043269365746810452297713692507671770733222921497671352587860418215643195294135040251082870825200108979933161844917526943433226018424612409381180430301523373779033006333064123718023783046402923590803468215300082842879544693853571779980817328955844099205516814987960193819578329627278928033811870729840541943240786654986321343041572911680334617471909630578538109564053733333673676519030400265047032296266381183539920287374481372182402685825415139459599728238129373392171077756611243223538542803064917830598291728496519598749308624854966705497008617547168525852406907300060550783934094138440971858494234577706228545180892874325314861657193016482230749598392374882577263131825322585204498297198097788763963896485276026792674216402395255841146287787066863626475510345138287561950861817910430240098020658145669457340910012175185781260843660321199804568209167786485969520570941890720509226470911400911739206980701670680411571062876048997990127007185545823314804624386806565748800774836285351979618163854208052894100931540072256070538474650344720169203023145911893067194445022025537255002285378162228078805912567757721547269458439816858624365908969330882984732591770938659093529409937541763092112357552581817034947211179700036680901507443917685535861270329421515286044496985524423948490364369301601670150603562757047031315707287309909570656337917119625973340461154323513350384882892628354156299550796317914916671090514457711711702945037779759041335540564474908015114314689700135470717127861045435626944097611252064864416925773652481780977302926224397174783452192391850772792779757220252627236488002634299129983508621234071403359510481350151818558924958901642457462506538544409201379857081100845452624008760299010066873417040491048754927055718556136870626677247950792151174298303190376762309173063061446659191126751338349067811576931788889665274594992669416348057032301047282851574194024157772578442063988409316076907957785529565380557113515457222617703350921423433575192226507977241315072247946398339441126544019010539883773220523902795470939796233334107775438832222653729188108262400475111254834170120579211014596934388870495371318637696731799232146164408950908138438190322692946431385493079330413335045767858022119250070958649182454327251661703978175725386954889659412720271060938047292030276705045430536794259349215394318108757996229552277826296267998839218991684205718601571968531788873902813611129991958865772951080196119667524425534017378384239726830827816354242680577786465422370480523535413910439974922355162008543865775201709256366881142826574645284885680236322577479533564047786545231119960991491299606217196193820502515551334011337569423179299356761080331362876925776893993585926085646638080190268843638937222618116784251245182057037776408738271212699108749626001400206747008392567894508007516094968060635448089300104184498125641780165183317736450461549058273903988103401747495381739479042846982453919686579289455287153402285359479079661852888508998121191665613500550560590872291499064315347554007728870969000334728824917786820557509178793907190454855855233851918089486039343672356459269752043118736402261888687507237683865650347272840213711684853334722320334800847703923798266218411692325048988030110051375127340002935216185831225077564945828558806513042909814587920039797020543580254880749062715136548691883218248204193946953166227795914315168971356753977150646380026942886924581356014953417742941322220804907834683077226029073654861286032305472857601320029472408704916710478666297272418287115839390493985539628014925087248397128213094435039556965430208032758509756948928568973623963963734684514437309265208355460372950508241617332697303933339984994527931657339814943332606867869347718767989859183704800830476380121149809369723510352150892400079078757234272144150843600775538864736419942463794503375337774404925340747462318837304635923965381639180276820752050444232649334937325744586201489878140182117784328996790968406731917751641156817135420384947059103327931156567340526835369939503477278387075318878578491817219812772192778348231375429934581241199111232005095812183488894990473707526762721024298920774989614419556024442116483552903914109545912163254479143278794165867876363592567291985938026568419583704263471542193404401100642042872363410090821958177352616017619882603258152362866608637268025651112509924841976160527032167294172998416479811200692475923595752793136202581206528310867349946384477086261136154248345043846081984432594494671564693895285299856099587440898284225324312579028402440193039254305195155402591220902405590659493924587442907161308543666595051113448165220867222220526510867588337349190336259849199367815950610091026823891514730914730509348201597048492837799425427660629005471736387079754762557661229799625028586206227870457456698649258124635369751520207673721778347151182930095041194070067639525231591147147374662081787784652350516180199045121425785293133607834178447155533275620801374191438317049249406205944086423631880305832581107227303668085040544670808780422239115627445240346968408608360541639603286097782103720760248455681030700486416883049983425097307189763568396273653668316625834498749848853082995119075741277297903902787909862748130562603456740406079888006392639448312277536346285952444661783323418483782284605902865482640467563225904466790897140236950456768540485186055676231925221468284627738566152897515827345946902654117750515033103524473204562298626025355637976828508370779272446873067336977034780285254959518312891750729851382235025391520534082064389701993049585869783779772518365348383232032255981253288416995750875544363152770385718149634330741570528477279259966751144385760180276042799136689215500802283826919186029916020437823360003199473512830840459090017623700876351037812171523730397076566083473528785462592532297841993764336890560610083759562236459716505987446791769199491887589582934086033746068311208671900108892853819137220745081002151372628778119891816643173777451611921538914681190999011959193153932043102301894220929241147917267804401495453195879256594768559030855583193553764708900503059969686124438944838212649935547178536417049257566786363341594890442385184607970885220175960236414911910866883393575322326813884633467285534307534842742277540898461640628693716603439331000764999877454652037652371339319617852703453819626114506469281949583202614610892239517334321113432360432733807623629812047362158840844516430489111374524314818400151769672257452368735175670092653674552906129695052431477106150475494260726628420668426188498207359399205748705383009136538808931815995613076566171462378648174077814709381465501145988782218306293301168437996785139728609195458557363353523661913161691500294784995442756847341166337534773633282604104667761094776396774174500392558990307604568960925666753491292420263749780210694065469283637138820072971673193630585506701824709303111731316443209156074048034925491438580636598856032664033115628877299371827263692512071648368694228919894838099568034196138395748318360071524017029706030347100018856323240148418181023289184422910656733865276538341292977099468772320982820503994844387959919025687667374929949636489332400118483556209194680962366614449683857383363164076248554738563397660640736930683006673745387764134375045972458648950481360262241181313437934183104712739234477453872366345947532668428495245164985893005972844725403150713396719141881098060595359520014147721666075800906785874251728494170227758458856496405953883321128710033441330639145752157147945999224738233378246418741173274644052226777253772367677095456841858150427796039702267507298605350487315798581614394319177565936990265297608333319533979979578477741609872226268003801528644810447794873427773410632989948308281794073159521896591944641403306800958544744645891561238522518414207219044811057714787219079000158285586859725759528327451792699209954311125453159441082584979281148386988663028895544208439998611301873210578515646105246674175750416812567601517053373161119836381263733592580922904043285418537022186054727962973316227964902819083079547950439918501960551656984635308841425449524307193382630376793101724607653213461880293264625787162614446675340169821863834571963664420312647405995156157310745545249965548257172499109179115643590636574104715683908261135730765718691799115771247252633107494508386308467329506395268198480682111069496140858725501043228829000325634752136408580936620737282889614885225665416206708093211666492188923510580131267148808483634128020275463308831920363105107956118631660213226401621655116014908377073028769331472553914227264072981559936542139677251806611363768256324068982523394147440118847750409228221851755045387886099789527633228868528303924210640715406385453032475558397814057547839389326468975904023062517754636195567869047443320528876906099486174989097402057737675856923252543788741198515807237137763909198569909251058602619078993140886887138776483549569402598532137522019701447462354364262105036114357529404813882129357089752112594890471898192528330136106853533491184390883044700147579969213973164602424294677875598678123639052443069128545764500123616911124458759464438876274881238946212990966980802478930383083442404381706326798459733101036416271700222069400768822656912386340183577098733015860809564436298314430793072313381045326350652779656426168659482891464776983339178180970915502889866321427517344350059300150590147431871984332757237495978594089418449599414815325367492038920148761368954865219986586472962388629780920362397810187271230411414880559886099445064455412086644880696445557062443594489549625480189708631427109769137449810167908523614074460584142528100059355859481797120549063093468681800927646207404018443938341640267700961491361343458834315252803879162752544692847103188202128869827273844943639888347312654613047469998687972558888463213303921799578956441941255644625848138466749983896603183470299111225176701824657635557959719164217120683432092978085715315441607304315054684662710330455690048747369136934499745793249567420903231608453300612933455237838130185144594550257208340200010081541834594683335668905886896287137189436122687149242999709476874139415086153853673766826024652610293483937560614692396918509151503010645509570563736255457280521986788609321046770134611762524123084593542503360584180651635413705094045246062229525908423496102236153792589711241073218470386836467442933406828989528525144709865799756010642647283872263027791421325625316583388306269593815678152361256866304154666167939662286051656631491009008323031251558271005019001397415109542687288586133091937531607778536559285798435960715524453241438629771070026518413995834662340756253831402626356263046524248173638631290719272251641879837736609859624508394905687309783254213477321056666342513155323894079018522473061505480063834368738066415459276337889473757015797177611028424347378506077648884029002641189118484514263904188575399656748466898542824630217796271222266155714477432826188258183642519651982125585376148353496948167147733755619968067194940777194555439892571469610857449659327104160260499260505294847631526771881797652370784997669963985159108641299022136675852486453013437184599125753054653523676567559682056119736358844176140384217489263727634686613005513882322215436211529301078193901737230609040494019673312781704042100086373328672206316799843206187339417894351678073565486849455178182074698755005239979539820429133972788334333390261602208014696453214646009215706582840162835882254024481141205346248340493628149584464523762153936093673103624521793493149056860461323836211974721815397833855147303844661765595836064213092863538685127345882455364002588202661420447396101431675144846484093065856246591479632767041723709931629247561726628079534376611587894219314042734967084909322665541868323668753135982040446204379695474605941610936234823103197563074373393789919571915657849322170886890115480513481779084307075500186799065472220652745251087069849854891838129436596458067283344080888979371714664689753004381606245793905882631650491576225547018960064429955432177130007184372616113717463013882192350885003542423743318248805506983069061807927062916381954637195567291479193521815949062482585327744704676598408252705974822310454284300728191636765934695900215217239615985659210871507061196520074572980990490050909593519115937674029599014342288409408865999431741339542001811165483402426988360126654567916781811135106704811831890898479521350021798118448136004951738666903317187927072127956849181859886996742248072755687558964160201488559069119372903987749384165129808162243638837094298909723834549320068129790356656306765090922882657015601200530881994717752527576478573025866259253071720071966377211583037281626487025266910315383932950208506653027951858119023236498155162826540317782771216075509306641532657690552350520680430538064865954916604419449185965038824712930960110752074863016398269456153466617239426265580594688652927926584015822745479936837099085845598818927460934395925233529504152813842803600714674772793269726992462112064980012484422664528501482215835881715983180482068849315975770791449897271583962658930141349931113445315203414180276311978949109676070822267118637365656648832936415991293590685088194150193640981169157950522732521961751158051789073721996486885839697175834043484691450611159278154097782528527534385550883693859210072086989307461970669186224941612106978544625329202035329555258056844917823136846836205885482085862344552569533650350646423882695111031831426213697808009348751562991399981273608033859409681662631698582839901488251471869991067061465276471353112785728095152294369741354377694416307533601081008909705370842963415718268096294912860978384954311751463909003113292946703648923595898717591719928190696291573133161843809202143525679538305067765510730269017872173718252956999691475727937408971348203932790746256247283682874539655974584520098437407217404279982441495471501038822216418258207759521597147136044478274671888351506408407388720675534543256376099612226963008619409824779154262817214355252485382625692612053021988570266682179619764073846131856067110827572764263405447926169779736108780799333234574511065932235984003525681559759686785585259719414222465616120614842550297690812592118175085073594804496755934940435500298531317065037089099247813371745300647322970133504715428815448211425625273855729087997576053613238874076920051152565647882893524244230821320902207532561633132092029452190151829914804646412514292002546751969696940736978840368397937324802653758490400016415682819966265305499601213349146026423848249983122951536902662487300693222367054990999971173697050211720031057957781141159829094908143912818219907021735295655258234192565175633443169870679406910536658432840368709210007865345858042352331012933929334783386580898016803563214622741332931604672073562989472589794352117532678705954590077132940995777307264166592696253992001362408663490229744070092042976880390843180633952835892568316725946074506202138410681544205606155563597760355084246525986216320442607229263108765105413572924235049417484748134779580134204522960357439115367132446835675317758469086274937046594286725823857288968070300666315394426328242075994753701089559286786018047936629753943600506756572545478495576421128443934162986076787753265816334058242886044507166082217715624220754330439337187575182661326924183216754628878495664438143205636868864986963816700252401878605788033640130713501247054049755436626788498259913959164837050346650997777768761856112995886413173073418258666565655847945586048270982734750910195717366429483078567299862050721433775400734537028859104154437774908381975223213274248913487724343403505601527729987134936857214612008050919872306833418514338671511202066363087024037616962782827464098496643078235849043995021277790520392894793827290581112045490134408628063988684944376665521334492381396327574348172518726716243514604912919518854398267038661010572760678293950164098622397105089916578921613343173031895041109949730214169453109049460634768658326832093785308086926834750602112049616302400475026426938302739819063186319447783859325024622456853071764986404581619510696827796215824158896220277346550635513176847235209677122971163138626626466648141542219444188139291843599882710460603509949167849893133166211598562628535602178634396554655408265272095600936224462167085789024395201502046323828044279223072348980937940939353952818802228400674417323798903466268695903444173373793924180100510778797532755877258018288544044079704975306507332445544803475008359865650683508151681204764170426499546225263509201028849152472433828154976143097055605663019710932086408419874520645479558166671235734170788562900464860426891832858558910996941910808010596791185290365822378836124734870839090655625538071755367830926484757113898952558643088043166587563935220400126836111865368279199942201087043088454339372061618506982167353565951837117252228025760209388090445316640155620541317820224176708285496731652836676646174905035852676035384476970014928457381020163707486775780166046047936587275647760327040655061474911262185729692961683119474071636178904046497972186702875027860547686527077437467587621586904684089863348646367088580707158636374782751460542045974481204532442583191706021214508412549473185246282694413695872298433057387543366561350850514462882313355919039716044725282447983777818123631751835891056011467561383496508787478004703032299670781903420885565044140202732132761391463172612086580062275777848523047497975945693761832018699193694663932091872789015350395759381958611994251070186339293937216548797892935423508902093371339916682979766562375540753698158530010192471151013870630427310975969590835329236321294688325784817897647816726026436153201151332873578042537730114588507084757279719559216776538947490206308490291989672476683993702410207010070271066670837350970717829026886811085756727761640897765735352614371417168959811713364458720292882977136529509221644653515845312813621746984713703484116305184012763900378502295642494850196234111117071850896596148476215427157833035114419136761032037556157685238732458210428253203191781739231500480431203107719629554789223874962035761895984276848471679120610621411406261877413723218691800170635362005170719618969333177260916109736118550003750378798216816237177674460000349432844235356043802854002858371884713196085237035082901029065881212008479654418340532228394010948409575454907000783897283184574519276965537147649979978005765705021575626648627665321336531256109415832839438505111237624369595574294987918705295259200961682326008218237343254514554431886213468629971852230436158491112213723889142096206412022805332331801235154527273660010271187257809332158085110726862410028101906352794306046694465496452070437248452607488052382431149444565574244180373984826310782964599223308861840705511058243315147702144519019734842104034696329784551486222179886937725382321555476144710927698132218763168820839439495888544804711460902931377696774746785748377555650465803338188970461154838886041630088535152218681996762802555356279245953111069134312726534288444214184288069270136357202979744221436113344238312440308235377152997014261697165835698131217992133048654709179744143812538812962226561560092279337774562189459506496666161332746595447230123079886266280873961695055695411639398295319900056162423771315444023807349144359134197113836662710197118101538767620067216235996514669062369794822719204811271725613313213618504100487132320951975783912130814777065172268758620624946031573271402193254250466315540550387529358840758805390454879675199495964397358642926474560628047892117462981932996934914272705769988468239861219696769329450494685542828547204024656886895908038208422547286910795509560314755184263723418446697528336966967908003287688737931481172741476431143175803059453244768219464843621865675572866420456028738300574760542974045751686952166340360413446158097476565886431326887670416972218863752084269748556555161993174049029059222874218646117929069619438652831270115366564220256015122446886484015515133167099730892647211551460153217886077703207531993893112269223047035269492822895240128276828111721480731266461235177315155825043543937059736123385996224266876376947533278549180632826707086944353628855911698281247072337640144694633124152552271850812420389533273540221530122856745122050458179821347645860238350905171510917689174875855388871155924978800258394388641093793455539540348906558364045425713846807127984316394876695729563703965274072768026615295913836162621841891232351339495399900437385856539485396869447412418633935699072613056268408609486919809176110134986127620504771474546772292761024993980854293543503459292857779590511826381599609210612078740724843442326541321251496518246581794140599323821836825508260695747473664915787429986710460565553082722610405314370287133139050314256745136367625891000242884836337575133658325675967932050999744638911204432948095568992173131408917619929742378452548944580376116134028106056350763027329913655506982377962490819976210445674417944680519528116952576739377607488760633771960725877401861928917770163467498330370988662050883908437778950431318722081423314387620010872825705069646910404824134578969709102969331006208672176157122751547046517347158731812384387658674438811762487110875608768698999933791592671940246053515662295768559043319534923207722723200238707974275646107405778156652638062630509646369670424825241837352451077138313759001331212521320239180113037103513499428046845000248411125833358258808810164159839675673775758265037065338898406437312934805391751632167046056699743989441625290915079346451385596587341344031936253522273132659315810850911173761909063240930664397484063454197147673303737484199393830483118187073731543435899536747324353727689957479391841461659464288772249794230298432867296848438249823372980978568151898507425496266158521341066762621611982585161783121365255868951036352078364139698249982130337604552328249672990863154423372562032497799972652033122969041090699455679154227182006853901371350816502065165859669102906469404838105421723605825230282858938346598186659127331048141791200088055527470440212450061330447922150058455727304840980718973589935677616114717372164501307627318811799818843767305641994851400129383371535504973902654878602813602251789487681926430191879892916866864899087311657030277230917672348153266350888522330878930268188389567478880341830417552017042532833982488042404438170395601240921460072749100421729247664254765251129916426520664359921828471646870564623043078936706664289605021410239724080943416145676164113096116993454441566442705281150472842798717674422254337855117918029661324712014456617050292517497836305955735405350993620285073162187107220380075249499131171051091146588010256302678988439259383502743074323537045969184206055871556684884104714946574951768651406111553439977219225803067528398454205508118331515435747019378396566697871992478643716979811442299763631022427810169151478607113262918047943724302770040445212906629937948360559576258969378849547110628913451544380277314409027712147190291344536851788559327339855473901225806018833653562401144491137472115127033750860605812400708865711942471888759275743181328274346786985031676949460102032371979754689515078027621785843635770677767872082683585899336452504645227822029053628212354239144209252710529339145151299949261629572030971780131431809649195159243232726702542066588566298912939735237291883729292933500430956409445820899358843502891103977885246799893635835474841229448214514361021962815788692386006807913219046118419124814575924790335308737515813885778553407831838059472376018342205492780568932400086017607756445147117219345206423183827333338342775909086983444954387185636988328252893587490155982756656285913904286073427076005096577425584362429245421071648602495807127796049149668757918693084873769209841035361687334318818535724651208788634376233896362290081493039684186393686965324010037339714530314683539097598759066778499125315251590258216104362591560440988298369381155502873490093449211463389458982459160633950597682123180821517598504548328480640024355451071009979815931524041004971620332736596429911143586245172281728648402276908601895659448226933883032884745874643149621581430174861019450163414263031700404117997351592278366813630299313900942615954444847096203613472703588052864326790110997124379636403223727363196944392508793073481062860338253978172404136957750316515911804662039939803136572452798416212088962729728956997229697875298163182916813079032773588694551715508493485049730063593880764029579355808765809614204845624976761261684634984106415751225022539259455553066749500767979830775564299859292551821842822373771202547324951837027658700663214698913503270989014535757679400401556511067137542491899828810297557741860390244770267855852759823501229005633001125094705356137915692579800040254586315859487025172058700870916515880260900348348479892516102447246494210547039273044317356879521923434346473184053764673272335858678273210815218916424076501487107355433671001692844163853922581256911421964108172143531272921395123928417175798951195774665260959204904824633287478674623126466224363701716883027619781573721813575795598603376039803606783612992072049207527522630267134212448488373057758575151008186532930204470408651394937428522134167328417586255131160464471857674071454415600779926482017626308911715553770659782069503130964241922924456293775549875805577174822439928477788618297427008713226445036589045578971530239227923103358561984866259150224147798166348674975536101661540933943957322615171865432142943882340819924687658197022315667281935496731308233684631833292923612988983971112507016754432841540226012925921301725441184050132586712149864789331316986422838164107129133098646446926787597916530550114294176655129066500906254257819534683067853042488959515315128385673025979695423349364865945123199346176852034125532740684563368333701865239898844736915734729766456409951302156642940639314078082968504681348178316333191291292150214394796065786933116368956332209134306424079552145062685617180379822769735592109469652220718098915636385141907215353332277766078614426780684463221229765771133730476562192481819523678125850325683656729547790501317481447965791019081737432879253504229152622258931855544489107078628730968155381664549176782038848381643470357506879396368060404180212161396956809123051890862407097372700546667152627851618130356749376609127624308951660582812920888550757310033118812829402591469128001978151740406101169750363650839991759964705161098054496281051966891151712142221016376241213605653825562397407744701589491576047208899363715796675373295927286021466686070782598125110013977797916965948220856467036425753333093777553870636072248333329008892085589741498020052275792188212603270753557549715605594553022422553379877724791966790480628175108027596398386740287051254846388125862457686812749352731692233551085449192843041089641128625506857154459473685379014378213457677178931889294825317717796665758665939085326053604928371870426372866632124251389440017158503886200509621318695653673890886212889475094907734865999659435820909716490442089027854973323459276074789041668873947900125457936119918700567733476054482228975811199221473668943505038770997462421742308600807606286443541262161987386113369899761455307297505252094155693158975966865003958637180999255313534242192576789088041137625862919780640736612378668172881999021989537325324482357535007487302872820815042583324712768959813305024385387429242029303810308578677990749317273305691225411465680119789818033228478066058225353942130562109372124681838466729310246142995743521940163536716631706595901833494268004519400120428560925923805336387648759121794313385227248178494317960148602592660369952529907231235695568112067342890374749334653700180318272008556321850712393595560797436295745242888593283102035475241820020223387271354157493540263924556166266006713874459137186123002397467671328710430417794287096564790616299264341421778423358727962629577691228754437783499703006725049751975732249464055478374990719059672113851055936422372908743093657518558433447311645289011149730850237571136597566936925743940398301170157969297986432968436775731026203644090613943198305331833097370312999311524113983714940339747182636823986471919461834035990041916396193553401929693661717506582733621694030916361356287556259801012400473889924338967697482072135119846930066159261949775721321629285160963876325654991949632753993382149941334872438913814486034118852494708355072840261812405153065064586992961631136576522708567583112658892886532888412587244178897478700380931957139287778917261747622123695373821107630671163316391035223727040449044097440192962033806082167821109686269481742506137221301545523907282468398244284728049616273632203246305415449057898943122347498214345786211124452734911563382316899077959215237895244699184244389474986374301468219548507188175100769259053409061451184474800772628402138877323137969766831282657552096807487481558125053333014208733186860683735519780216040914261172526690641680950101024575773081472310440196405797568750935625432103829890052707628245493639677040051546806476251765042787089866586266741027261791161563765276437777421444161485417066658139958030655657855973077350977537501520572031790998059979953557082371960435202697327629080589339845450614594090476427418378948694527179894268469357998834049634618265250749169277032431812798417689498250143188357785620530403641514150978955194443909875913050416096654385363772871716185745310226700186413727389547446064346566329960000547344381475043668038863603457396601624516624188577600214770523826385872640551245465286821732895380445815519080452081622098909096192270615255145018983746984358782966365401151821453171190710974839121946161870609955728826265606758608458845853591201315914087795954863486645287344722264472492195498321822157099874254049950209696802056408804687677000071420370457488538265098903851019521359544482246986429063716349581216746204435973499011810201342283798473695929373480076963897396152254008833471901339693437128278543252883044477628180012463759103917531853119172819942188341783446597208950923376853365033662274305062966315708403309071380493280218480718032136374598447409409788210371524997503157057325885628658591601817073722490181140714529901950445697655009953311693168856628814901280161362196755418744863503123818120380781950342102585039650282185074803976904960955341875010451367232365657054925001416642463026996195955693674089715966381578149315152970038246291484662375250316544611809660164136306092738259115494647687927746124353787787867748031156771132808425654632768093372084988762731569794209740193542901910900511229150602356120907987411838520986035334702413129615928447870387390222929220760910022460288483660851013093988951490505784665765021616626530276569723866109995885925502959730128122480773165053954520883822765782778531294046746944110085523320574484481492507958281602197653166336758262745762956432388270924394605659957632295268034442969601089729717073964824191074804592414433141260943685617954295810284994110715370837261349411082130546486015991862602385226896124673192040382165130562189806803232145567632730806725090713454747501908602118571552693102883656974365707535191560499779746591184126840148539469463094534879990450781252659687260325711208208894797732846520473629452525574167847303064581155809209003532946685625380891687836396604522056130870859277281860951689164006161356976688978996026567556029406525168174177320130318282856102328478715798523925760177362246802327468389494837177284202286494207123599122642614723228869701511979393394328927314482548929928794033064733657200668242414765405701446686039933792136296328319579113547770152421799446400330929070860235705453879394028852632676524562990604325829305278601737804221850614627922750329962082717308247311281038297386018309293622823486593977931737026350452473511470086834159860682799786508516986489757976824676329423269754548426714802418703371711749536671440531145237383135910438627611830924051393822073043618530242982487284153344849571171342430877849027328173970033230376831583124467550165625876688767392076282815930247514777851835012440719847620259731633524464076523704517965985754707297326430667822760029127650662255378528608953973826424793508918534573683505245222813791722887175759407885182050930345460261176429408629817650503403773514543496391684551733520099442397350983325591830377205650354506477198677257141765510766458966323672392403647242018286660341985947430085913164688778236618222721209309704885270421504161678897270072594211618470322272580354859684245101171549752093408368060228194528349373615637390828975476074710926951265308143240382160446179436648165897853233857990562371215954051449280154002882969032207393159761955389990633051565912473448429003173283367764769074686896064808510019181297458491892901734900873061531604632374920157041334047099315652623616698166220557060165950910276405586207720981823656299704980355004682970408040119416113584034689436066349321500676364631427484732938667473655515850952086071033482310024399555921392858814810541329368977560749507330853556325653032491684471648385890913298568846498889675550060955164842480622942583180384019874658818968468054782565313987135411513758019687520633794449353821851328856075213184175732584081529364092077586477390429610596721856241037865326610314178273247983221596722774725796421478487189367079061213946953210978826840130931359347214557971935395197166049791176822143772321635252468457745697257719747275149907508607508376003501890914879295881121274821137587924244687036026828272018681428308664463774280107977981663595843196298576251332634269542900941347133994193021433018678418577235932254664525753596000575101657092033899966632711278542156110989536521141766500483764251420595915415140820819200378023637479600677152973314290526483572157721513347818777695133862121612433129725625108896871547727385788341723826587225830633710290007832053449728337020480425791963498682959742980148732395717526554395607802037142577776181795510621626369295125343765943624374595729670788934297510983496689287152411683318812294554343314065795306752508287274971438746525585914094307248066232812792929276416934077877865092394449789042662623099405723300443102747982310153890008059961552722483661229116160356335367418048276478578281106008129141967895134536084231053633139369538646665418217164463041405039118408331127141736822591043226880185900979971361721598552309071826846102677926845825203889954193907180529126015057885889322789825465073241669243774566129700991997262983536074806594897090827222222807337008911144415660902647687229686051954985329839295971429233525572497893479309526503883379557865483822243960809332562627987073726128153290734771776489980738024176534656328054449272401082613259926867216355369973889821343167545772835871427816046987764324255855072985300266533663150188696305924350640658343386549381571921836072230507635286168667868129244450609955279848367973905346513297887090087116135800048534407703016566422997881937505568598271106646174286448332856234018135748563074303888858234552444022451252015891826853197613910881546114933025470346657900017018215730204918363018432831903119259782466979645124592995311201400038207419281278402555782461013883821317575861620775076135592875488613967789535392150348045874463882286896570869562616377388361258157745166415154382000478910783312405334056251392633470121467854777578957106805903643936342257115690706963566756782376712945948379748065909948013235193407365536568163725017047180758030806353388906242862060214729043683524250310862451851959694417373639354551879989044183934340452758034054217262352014008430594315267668555686859157745320250148361534711368451190985381867627609623076263399910625682127045507564501312392112607593279062099708650171915108141102999050269441728084117863402275681364073190504464340672308131912800005076424917372959725291510996696287295849199071631866271109201910528133238337960539553737597637698479389092393576886788455938115217640568704048919776200041384717338668791491240292082832113634080904828237543510550514149296290818076726239874654861689723842648168446563550444203588759165034713101151257927221176447337635339832524288456478096083216490514045842318582290169928321393587872946340096416266356752894994845604195400032084668350636088302961101474729858153596406844900448277931851136173720067201639144825877739230250590619926154588960374693470559536751228167693942012050680030457012674884704011401414747537813608729705784511592025100769811563904489078805499134599563654807366889049632035466409927383198548952590102617091328460475064080682770049633614404746647536124713336239441066442863896255230517884472187185606847511877364492995887845505641249756812203773714636582520702137617752377286134452300191146020256748901997949396807425215220786756545354894451967018227516420832262705037282171103854187872021459986547706416975136289043317156487255733286077030670303573508073588766463116584289007265823130999751366899417764783827388888938866314659074433038821436500799556150749583689583479112374245190302147933548704212834886591525405929994772188102368008800320457474867070258340923412996898014589251009635707891482322019188945508083391715902689319869543546471410401201848526052237787094626009094021913878108870212937260478556364260620107699928131445701620512882948324449776021992348383341469396118953671986734841512759538530459193408298219286919015066046289291840525032389016639019321212145941240187894491909696707089149671853624961245488824251382926978492476766102997745188137290403367956435797311834634214818906051027241004584915673063550850780078744958664404871249754628798686214535761336787749809115964343622586310648661544425827570994316175074109986832175725780465791255853558358513609632236151618739023530646875775558152673018319905161544276411209841466815566970129985276714877234729496584760788328514751072969740623759358682313616823383584435591736166915437646643436187888897820257103541044827724927761345928638402704444212332772965702781821224123059600517316332292212987069509754006202762949065630074728731933453492238640358761016822733700638827165222208626001238103128534049244718323591344317095617108788540732899422882867552338046047721239701255208687230271391694471459476623747274404654776428900789918168699519465944691100298175042635355656515947865547833301110349639634175636610612721499786888924304005164273777461116462065362369438763694390041579965702320761333523942673997518943988210996859824674213337839590708678095195993516023594237806619948639702046688474329761748354283295588016954378193822096846617226747753311879411865390043677105262739635772359782814605206316712365350127647915324839106473373514007711205754487420644280659899733615890959809399007544287597194410458411293190900836395765637954957138362645623458238273461147742300032177978499016815073914825262979961281662280038318716248110085601416306399799844680600512273006223912224724713204818425491592011106786296047867416679080294567332397748153319249799115382408648518032901566737756215588958596810692570729099842979053202672048449131541727310433786981683426423392487080175037918668332186431692749212576002733957940219314531482735818750983406994363341147424456610361194921594807684470870535845443459738046658328693207957663720131658173461857279514121844131944288053349701304530598234339586354514353279692414996063944498527836119824255566600518553199698806583710926011125441823112865886391426324471902786524620742189782152720905524803858626175434179695898566895824862086587478397181103295084125731513409732670930677267794556644917449092661115739564898599009788925556335437821154315218843892520398812980523062740001637250890365371668668610586259535173886276825788814336064697597937542062202410023356990411966817748631543961983309370492511010363487888928805964122349281011300465990365867450320398681997634822854647217886421375124774792608154722684320682348772036513699633818987562236684884595497870074093350470926379067919572490788382191206050256458650972684523322084858674353756702792294909402131114643436692484914057667259479562450265858921786998562349583404013707801764243559149066466876389371996510824936912383229027665035193096137186248471280555382724577762305971818968526197141661131799708547711320594733611057277236326828337108410863429801897914048396906527610307588427559588033922243814704661230176479898212248735295586961279761030762694769989229174158942432824880378434507878949147223261175906435167980412440660516724022904367269801355131210659919444066914282714602544135324186759378186892225154461857173657412908030669582996421348171579664279814329395262059891535493461360671446210881568766199262350869016012902408206970836706907633022530394710141961779752197073074489528619688472568184300032039796923675241764061288011981835802633556705217914152526406482073103338531402377547587213081452379471910803411780552579480095045347741071243028946732933075890330640311161576497970822815573487016369670025005543108366691172736294955094302106808627168837936500027442547929132598588494841148597724721506829149672422557069131437180279069466783049649806795363496356924487410861995044644797739261554528800668996985488010805861571161513598303374570212927363958253861834941065045820118617454829970454014431541652366152616442088154648775805492935315554131704547583828959758153363409997651254849785125457795563372728072701041050324959538712645606935892492396881138015696019983595188999994866765487911271640184390218612771417040068903403412399079464944650681207924200753247008790045616558405451734669016161757030682808000196924419915899373853259560106549829457706247074856675033189167120229393538697890966897251195868466667190668766872095173167240036403037338337848685650851906415867846010878966571634916466081008617274726372011764037631645720237563152431808967872715721725304412037022833155442820789068726429515244805037566866354929797410462900534439491970030574629416933985872961499253287154457191547273000906351746462915655030454228085344413372373815672056347729861353599924447745990263285782325095012508723622567510781311849173983072406047692898912876259974108845387082408262145011785539170460399699412318913714627251897792767214312811821277869557946693191157809972347454874395521274307386931256393111776149167478008590390660644287542839501135523621814461312166714790247636670971408878670270596911873618730165023734615407304531178255901893748231140886816359761023875861879749821641115895329156362809916530366698111947166640146110224250211617685866034703312470571448363711107643629888666890458765682129750248445714092371683941214163163242059072291528650234753034071362554326401868016153812118521086068673436765768875073862495703356169962699011562988828228104239059655866423524830976010215823795770959406667347823889086142669655734434269430694247302183170820262544972943409865908282676869036454604275807473567545458303724971475747553370707609918885103928222959581563089670464369610285334511013817048314799651419239189740342510490581452685648751172977194789491966569784913672464880404758046446748307602126233488360189398267002016151211931057276842828062885863316020853922626619073859000545954820400603191372748799453333235804003428467146654243108679314530099883703908921775567939104714819216581063867840016221905316877722476423268360693157723390642002935814058625228042419152983101426523983976943335209851278553796267299689307924691887255291368417910709698407129353315235661170052330707486512480866894024050592933136976201106037260989977600668644421402057037515593004893666882354830780692846856229975195802326014417326341214108948443107070419778660822515408758617102200352775282452696567528537613852532030169733075943871280362579015587438910081703441799221966660881425478246180195792762170921335848913600574506397302416823449186224462473043144346548119168105716151767838880096669823235086318493737685577087396513335002281334335254929479663751011638967596124910467570604790248200817590334739024526124553819099130341103332050317270871998461724089170738259901923663541410105645117084133584682473080048257857698349925381001061621321219200427056194049137833131517399579284542585133476855081701748132850935929676122596004141972665681222557820165538669417830907709525404713737230974887673892380618482446088560956617025274834948911734407410156485795359453695151623433356009440605800204775831301270773262440640120405064352029982126416447819103485889784749332341722595460651521093104382510362954709820954404648157412863620551795158953769263117076844223946373687126451448001867435105610119975283781768324653265059304113285805628556156408016568874413237592445588794761618375193579294271008880047514796520832578276554350275393101287538815605246605214170469919154788733289108070536401021095134125296238858100972985367686679506077054214555031935340960440813195205024213970808368468327933753148775254263967476071525389442303751992916011810540138414050485825970197588442632040355583945460666810772725516968443853746216425072689644892427151146566378011793908149318429778742178801154853328017374652655653261280483362399994300062437433215490079421699817771608174213996521888215997051238290908642098937421411283432083931283348070454695654611960163979047855201265216372051294039112132099303542938986120021490720748271242048003042594996641912223899882809647522079798881563482473975638672142600545951395715887053875172320546429964779343273222038855584971421620304191002272466929790168702107630269102622548101738852115319667754742470102833635675596776723536070203253578087559839960740774825568902471356812047492009467130545404931924247962107105335632302902638815004535708535324097619491644158999043063112782673123069312287352655509046809084347253311595472315641076341890453651057657720956940662142752077890415816179425005451888331961051370207777741597981207385711182497166005255650874740055222784006288698307021933210904374787624316323612427181629061679939180832527989862101603058409049804473828707190928894362546122605034300474181110016125405715806605305451281161487395419055633494940171670231441790636297466778732975474033193345659032938898196294735534373507695430660283273166023272366798431757416027090415412527444135189678644647353230228395391890592945356230370932029355640013675389786298656729262822529425968482622089381068021270439677646932173903110170015414553749211072042760724638573497939315037383001000263670632402897877272851107051706412162102364704266191530264892394605758049187734398764543379118316030561055717251872696063001312856234892190830654300865983408655721205066777211068448082318431071550279341636316603872636549697763099971368694106945280370680172664075262441478028885541789209443648217542677069082011770405000609929581348929515447998863139010949114272209921069032035320195277439659587536479553992681857678742789840082047715440640968737648903396402985124378254809113285798698934486826996814950756048440398261103492895882652623328948185113617770684729731286214475404343890700632937690372615394322690208291173195721039907218429632851615217316035914984079604228374263124389296532349865168585571088374142396099736259513490676426041377294244948508319588868262500067667524027018669600609746242225484355827515012608830632059499440318911957433390330157953102589749042541121882510031404236919576968352682464123918332482128138913453439636191065152992459083137738001430705824970830537045595925404365182727228450249747408176117897932860145693371169815163870957292648562628360278816683191192050447848958407486884640573639463396300393366800586470613208515475100232145019263929448446017634368537357000005126718583578414907279021745758757438232773479051102154591935208599492787609972528256463590962426386134826345287105761579690063940405200464788050059055685694442179227761229720300643149826538880237116244310864206941681408796635083445116585543097058909861873182984852567251842237039374885859596657226690355091881298699222521775993887839218457566460506465079897258491364285971668162339167292695506380524703450797084514263559260952958798495466746807296695533289634015819460147647584224389950573763164136796429655502334291660812934313397625865421681579333891818409691656792780952865250633148078900873128303185832436186944766616027062374533178437881918034484169192801011143974722600874078618986982467899300730072116003900892444460001060849335440898427436461119038043229711008296846827987062080969476084933489018077075219584216350965450907770394075453355005236023009986693093968693511087277219194470920934544101357965123295445944918944075545323677218087976018445498487228415304365894829990965916581730331119910634354904598723279678046148727752309562253345931141641312307853082007469300412934487723708148468304433984373655358904462625568291486228981826747695446279969375457797458178493333585532160489719618912445174137582210706369362400339629801429664550267727686031455730343989670076593477660249474533018384877970578496260209878034468364191995254992048720111380136235296902581456088191970858209248630315485684331671144453311173913350750683961860975524785264104279922298247528038175473316175044228081787919940849549607032187174888934904251750172428917816024414540597890187768685180930936213199649464797025780602812854704022441871965973719983809685473083702188144990709425558555234596116196978678610357442133768079165147032931920368310228330778931711701605895601407700462271879965787383883731136302186250645914980330253870627762996580871995105361837637865927049587737496653845951952086472765833312567103446072737091498136846203855668900617475256469328060716586327564922641508559532694408862395513577590869235739385410630769791396500558427495078752087762720330480917439280373148765465873664841022403990724961468846905387088979642474384496138087109524215243149919071566491273684244703548865836438726837896908840233774921038626233670765891113055456489324800945608412937012111660290127596828121563913961195360350977834827731770899761886420867609247267493848073082439212267956280473653392091930489570269034224159199519530492466576469536418242976776362701595108344939901332255728033474347843787134548450774387696087358868501142396725951179510808350993403043342459156113211619449139378828084608886931061808825111013248096267233372038211064685648809895158236730283439526669904125800504180707168388340636239317857097859908791195049544263702999716256908952636838400076842881349751690719231335941808172221168689476852558802197958801613977523001979949967510479002424988616662638851415944634078958972869128703670331856837818346188737533907635350026219016884131614433170496816070920309752885866668703077099485258857186870911897744006740395380212268559086416478956104347527345037978385249921406632904914628040215379250509887507807712789683068164199076386508779640520706246010117276369139345929371258876098567241184093966394507257103585113155039252384351502238512326638727909933387547905859350286690157903503724690863557793802895316125825658141085422147644804018660243769712018068586217314707077874716986061729796370819869513561196389935186400755383134038614128900788412738221328246957583232641529842191904708303576253032984168221297471666085888136639937787713813285747340359358440185764716515851037549306672820523882668687887149039215690200626526708640153506875762407643418301706161189768908099782341540242318766614488687063931817703803067754752578326863907498359960030505548200386058395360409780721836472309424672513199605187862441440156790782141322925272626562831863607826905400378875783280577320879862597744522170828221247259103260127843054733242180340843514025044898852988731891509586864900102371436089558325236042470794897396418022023429809092644420891247297184493019211599590339361573496669315530633923968857049823424855987478300684686922041756859273270625936612958811317700635676024251465649680980471343970524470667912833706550846832991195504574536213098695101237445426692549708302313242295199858994361626773485873366956393517071405785440666965609956602335379516950192193478573085804309219984549235228756477773166969556617572829188185779395448175233749453803520557051133019245791054286815374553717557678786768817301058668063163475118812559153363494944058714399238455983532100422849297227789282739194242595489163109778940692569463120933718228465598566960518579574938319479243320570486707266246653444250501526665586330603177159811626091303107846916071212046463655334287062913050269860123368291915823800497865747362778210038559588650364123388190818611777477330680118966577842129422603235561128516131365775978245008566948482832214155534260092405512454233443784423297052508269895727494244437826860602745989865416073453176399590826096461870854720564130670319082493790485604563850592459949531573439120998222688612401881691774702454280243147207804198661404080848176043818959710828875071513516002285810465062240100648249683213912699175883970418307098543549076117800062651380385617632679017612860057313730711451865103701214510494125328532842626410869308149202703680040945316189888509103211204181590051911639324596247117443827249895977092570256699642622733233646220255280750549353081925519265062624672086628024154431158104927478688859199377225130566575934421390109315971223059615188509234509030584308140386855379994111541826826282105567752873231103242601583925172060172807638309774040358393312880827661956978503201581487131519126428848716693176546037066229909274921310285719037952045806590919351353795139966403565322916282937130422201790798590597564293864742897576490261043152398797023784064716631527836327147095371129302162946061600475401737740672639971579551084047593178400524426416005056558703691678075761468308788430203923451874785847679668261667065743537779588743265137782199109917923075849063801722051082515548108671333719985777648257118947159478679410509344077920352173067391881224463250481287455978458227448173342880756827818212173732658451345525186837450194349018660245667908955419286025962771962894865179852700030321095907643106537530164688657141991901672715119351853812650961415555404148327480368840330443343836131905716859436798258310462998989827855114897007450207674645919090962631437478672503885790617352602419581837744697393702594332398789532096889982929199155419296041696533091527418160863206377942623346975485019425178040695062477622433743713272159261197737347003155583354524282288340065557475632815789128303216113511936063277083987817167221040090778149841552516962597290772794987544430443640312835064783475039833561753657978854146915202648461395147778722271120293869486848094113607567947890293619864036083432710627750998064670659773620325292269365400365586849441431268877236022378511588480008691983651895500026650027676355046432386843479941101293090519618341697589522823544749673960660457186631743704691053145593667727119644455906519968309195397669142456439849267628852800567779012402190934827356016633201103337681572672595327643414440417777497973058102725512981313460078380669402979552597911217533088950243062970456424084136173538299046211424502440560071815671730462951927632710979471679058185321603393551140825981574365851554661826778696651952182567024420693824440251339632580942702515810602837787505935413415913346447717964855104886736708700753154140279746312288387994773084934520555865995895721130399411933918237494764553670750984217506728129420015753093046738448941857135441479575410197008264789692275321821594260486688368875231086129954425542988490783160325049740352438428941903030248674133821616331541350375672147203079055716412603044809870557007052595670644975272957645898251163531747595211474297117378113167523950267538413793016446079127152163308133852919514411431873129397356021809224341709656914450253865957259447406582267819099490985781585600906475364463195707143182720591212476972009955628581251213780191132008004372421994194043608895861674703551926865713097420598685428304687688629037912652120987441283330334902195262772259988686379361697361306425314529465444039056638715710625370176813116111704284103169805846429478871270200577533072438418338508537429740982465449293253997847615617310872344035554015889902567594552624938463042079843914694537646997547289804553557766828584529146499581209399777392583172529926324381826989826278969199131200893378906929818217670335225352108517527950166051137711847586275154779453628929178000444116564026639579555402722728206365498902773691719641329828001707607422818087817835017450778606499289257900170230261467447834459682179002552041129980123293163991922221753092342910008727014978463180162137589896562631952628461814687209270654976115169648437652851582348051757859752822590216614288644066833178084054314508561171948067610236417489640922481562489954576494220731557017193343856515392681651162708221778534747734745284087116170729114063423211688191660216334225467852988792597723134404560764433742324037879683080049206888437421072796858412791822527777734780925501664148229520080642792183101810251136603480120849933173090861335479665629189618624681149234224406757221857085012629552014452838162534796946331572489083617995046685621152985424561757060732035687098606331984744723391246606427879502009091856954158618119488727749700108433903043522222040173010846387138348220714745961604444372364718231727747583607119245797363923601185260834312358711060981000241204843557445712517601853300915755268718140744651377139273660979816727256433177407228669527756396311418722332953647757688238899573278744994133407400719764957204256958737104560994058334826926452411908495747244048579907442137837062462077677252354801144665911416720617208689209015213833464048583686140954142272675675290104911745342370649336379114997571275626356273297118213826773335812016004326634460834236291408640160975814744930219448022268330486235811718008692357198102152936230714064901075772732592185784850927951025720849185890678166337655484996468126098963131705053101155768081213932734382362803013977100333781709168996194718705175041907327085061768790997510848292175642902453889066648402076977714355867989333381726472775617925127869082074501233484108011317837425495807098322915162951911313331577086017963773542022287174777235525647030876973128229902086101995134929072205902498373442802996678386320932265184689267792397598949105599737291466242995642305452279094292827841802092693564043732542871125356053355056787678506830084012588454512459622661565809105248473959257186983076246816318463641044335637260136003765289653574199172920346858404912033970136933098044386744733590657836083436591650472235739709070503813143901939881712975311199530111493335293895976162203459679635024498025624530808710932669870415189357115273202987654420533496962312384324232370285634891019151376484545367286524072000927777365520151458293722731861020960674954397655815288429931600123974311328982074162815811145138819638003028016249239687612579884843700048017023607605359207652614661260074614281393035648894995348591297100391052830656455074690585012119027321103062796329762598885851815175089201626335262534097678882466255138846060337726318959513214742164215675687774103521897192771179070929173989069544442649943169494603926381209480099317496245435928201143910573526373996741967853587583665021157834767379162249589870599872385459567457369698737812966447862590775025952371403366088005728462435328438446831742163890255118699461581537850934071867147134857667396589802097496824830489953268283180685186302021622023979553266470506822444183190162278543847712831506504910009367310579325834510203596784283390758253737629514931877258742825762395549681152954473167965250554935564792317286673282911018470610926685792412148052863693387664466067434705112873337511797669792959489351286264271315801799460545744362217690993696164869916970852003491568536039849141969023936883922079909728348924821430219965344019882018424774073556561382971021547246115875473844059160837525906748245902902174921638473785137914140740918597070977956288615748888147264831045620809094725965751588313506974709265923140854074631655898732248786804048622453910771390504361740304986696240462716440241123827883603342371609775828820813587775609666012236290040345701718242255834507628389803649843125247540514424867184237625053378712822087508863510992238851917729063334854583589073377187687490861661894599174783581709457687503404609775259233806541640630652857309909395800623546381044719009388960767281635662147836709206129713587927915412114388923679377093425549904199589188447063101339673357643271019723822294572582777311753896864998641782830466702758695433728808844096928958414020498664709600444073901636222039582837153042320772726740198415293033149201247125039542494120897556537239903951442725163153095957234644511505217644913814371898214081357383702448116761153527776044836551132194411797285358218933518565985085399040622235105476886813606774301871609497903791464109786683474894669406817197573746154359001307508459709250312614055303437280926167119188548978573243212316721011253323432020082260136561635393867452799437781332670337579624674604829535333795599407022509321728347282929437293176179919272791003214439519562728151128712964158811958994905888293132377646700356604436293146690674725165720096972026923601153557034292178181317872531986155894306640803682990198948721476497477630175092056971995346846332196807925714506496112447425365284123016130752141065273239984714798987792373085608440252846424129380523457738143533565516469415850005138986254633771840688898420502345377177685074323560961979179003198848694574473151749733366648025853594318382511031473585868284674724559420532974193858262143057052088812489777515121278139997309840154586148625403216343177112373095085620565023522459506960576097278779819740392765027936945154596618945439837486245102102935160679703555698344443884883584549906850579030271273689566283272257213022470288783754880442049180986287362496489498146862587278280172653010311667910798955354832620596457054134041657470339212202477907167958327593520202707287946211941288097725309188464738157299067279130356072728278246237147433256723448466152827770206422033524963464467974502495302518994655591737995964509349832616842092282747005693086701517579999492527392634051063935782007875849986065149462073478691441044889633503142785465853527664470877239949597438304794976045257839127094343404677444298012815120733622121302397304173873074529307164776552934766699603135576244653826715637078950647263927885601732419643135007695299225856042931151955850621953385956412923380140985409874488978941769057282257526058757010966184553924473091664073040891159399830234491285913484832338574021984190037514252538993109235396040587935413330016409032238806115919430988446309995375882393760821026888248921727937612971539508688976381388054375471646668110955379585559578420132145472851733362608720104208077794943094172329318709475023924367571615497421893064733981731048556280026359340182404324625251379122865249093581785397217049422749692204049174733982775065193502943544630347547573535112550767772387926549459075250334710445374699799737905320293386692357097901898985856550546459731022400554026714185327287202877416368819997362182857482869396000727589910704206992893909739980461868300904767015913680909638498871082506897954464692463365131032908044075696355271954897504565102397540429601016908411273708126747528389719376801958796856207312502061562290976316624771017262149443629860585129659521325106908866772256812236935088527720647340493363530295932318664100078166186228818722155069740108435663233535125792743556338279117415080647690312815485087750256704103054067503317149470424399661442333259349496782394519040075207558678797964145770406274849582625850588966885469682902437258599378658472635125008154782389213283107412524884491889489224718802254684221377926816824926681132556897022183353204033903417931466115053389715769397341994623971928557248519395113609505060161333556481887394771490767897141800595455715725695682411250792895171937585572239677467852529291140810799415910790524298666271714293675607741167699475349814994859176841243545672049472837383167866478144042971902169643104540836036966293504076241236003967224509260655701024446063906238092272136320728381720891986519430319727999857697530082203710679230890053708617270232935811217415858125785198447272007808959262149102038322230969243570022442771162156758532914572902748379843231322364409250973906855971198151894513197084072735993108533335248071465900626764627259349395246123976165854331859024113849236335933908733548075909122288282361333312222358892637581773507934226494482943035973026132849059608920351241309656971837907864231710856031142347336647196555787732146210081804278436895935605640635030197883706473383878430060994613962466641996084814122811195791041505039319347823389390922580257220289568905050259713694004411399851124594072003834496786184581987229491922248978788882516120691132176222024984403234842736766827253382050886602757958164724287936497870737951013911409221880869021042215992632738573258073329551364690740876947787100941696358852916524817570410853753034884115006919403247067438521767937980304581184437131312982378993852341008466482848529909560498173018362258430845916780089905909827092890065736306471218340891211051465645549800474240724207375946589325253518786230667714104487301222424950496566488886858172296104475449807918499293610875394540955081298065279379919872419678728154810154882372914881109067029661916412764384168710917316014511366779257804074093701660044128726292966678346914167590396799151175137816379138407222591493108773972613681390597464861286182825953680089097194144824656880460472354491330269732000713008842486069357228693949530314875057311621360071832763568728591746433653468236705942321365081919840764075057529957841707824732234615826837195956577520771140592430395831402352272931542561170623775823953523744040111076673237808333751282882634443163979847148969484411642069220525611534317787450979660878299709105359016330983210369842354374772254072873515583872429199223182226807597872920105121558982821048295858789535639143022044950997158192331878617996018547427150388149645000298897364251652875339017830376238531807987532745088834938431874456327308271512827764949692189054553107792418975589450545804450475349649537171126495952640311292727688288930891592922027370272177458537328213552280651413875535192265575831908812951544272646114368646985371628765526036142359050624977430038313062726395492935290900843892261217578229206920637046276459387207309225674440987529032940885796608010471275157659500272699865918953749287828011772607512686577894353617853233702250580635433073964258615197730658233288031326526870783688820077873363211053888205481093393408389963685280887543768344367020186828128489460447507617312484749739985432168897004978765778574696248062671541846546536329564217897915826409981430273844456901001321839373009987477725037581749664505142014894426863750299149968851247819701994193366832904601531088884382443328368187174010111185445411279493922255071391829742830969542488873288890331450787253622221041202575445033995655138734371870771899968470705244734877196915264935753442771701291105395728233660144408160343359730683275035417092319424078624206143321491113536636592934327529944735175999286500403935873721648237130618749888831866146201999166861913535956464096356423543518349225332913033103252910797611170372455872383550536576939143827196704021295229713661752494203500980053851395718269874586719311639449371357656026456375143579654919766364698556238849323079283937385304043713093571998590118028960307468057613144189347318016754140406964914525769936094465248619414359407113130500088043712793787582970418121068405777297347433301286107005200012197269170133953865938847807421653481018920122195023009433540974178854647898652253127743017139989684490538370464795874397069364962826250882481171415197096573668354168318109704611071160304074646378852621047683190084404832526136550051208380616494667779636965269735198891094182593179159989301025834481291730916873937198288011820697922971799115452717528978512097774235082929951415251703759649262129944142065278895093625850981752114902826806206780965009503201425760073069484238182752171205103619533904676151589421141139853224342145027210428373637160061056616464588150243075584249840562979705639943682826182882358849720693627924699985159145498985515563183047238680574570588357674629444534103962881539160865690813476636112008971400466344878425274789272341016369865120473389505454911673885490858843709621127635975433050311769600839212925945710690742485044749954180071096509015525265476229841983911928317405944161501772649143484738055281622170387581199840809196506282738759400284794961096061727769417157246075084441052987803219952007097132325688965386132731798123388500859841206503505426238390680765619545128694424753105951794679026014330434292740047777569361849451431494547168169534636137741715535474820402891391993849736026401197693343846345364179892689980560005321383685189348690251432591239252982101802125494775609258081992251438996043640005173096938238468338292982833232201886504349170024987555869229070973302029786731277803488508455040135236817016329419580278481211047209106299214227116693449045274359534896586918883479461329516807087043386666949677004762622534154808317356870557204146913717660403507774822538175527474924048976194856933157753296597530408900966045478265616125758999330470253663690517440569869253045866148506811944239322966737146919484179057037467870343804124930141122105934294912268932907593993469647424959142611043329904477193512563129496557101248239897865060034451109410071515539496529161387533717280502342336296457448414890789303814404691451972737670939289209838325739810234085921732398479308589517696580328627260248748426045165644118290000677290902716164412692936290291674307124542674456764886226844922304328463758720627698509069770080186921930290102580454276166625217249302728891193708708855155310274765541323048002252076001250798685243916551759225603250168817114801421194622091244147400024013175166500899893393577467840663864186799209182670065757847600094325648249233267334116217989374152269849970845328935819276357994433454075212997478666416626749611858372630650546001462229177558772361983047871853367579345424617190348857799648153965299458921788606753563211022820894069361857212982650054516284333240536709165278937149279501000183474881898138458771898419173895579575537259949095412337009095098309010418534706606704834960739355647253862375137624987076066767507893997536480303973559299040098314254023457579976592554105463348852297795535557961638796940540518685664745913289570489677595825450753919348270882333912126656643311391767961378013093166947440908845911947848808144859917516339833771823138677520477844586974819833980110510751041080419313175930507201250589563280612775553040809846303494886446357898077924992661573456458368348771899900219921774436386257665834359464652193139220074082323926844822664890736920220402965152817313288802999755821200364416668786871779781278707936879556976388639196325998829447968792117675991627889117220792596165587020928301630991437265763960869097458746518997848871574244059497870106814498101495498087214310541340181234930918201739143610372230196830004493786286068605436440276133248738624014998745209107062748426958663505585491396077750445553743861334586942437371585916845464244566449973122571020684315393554833021390345107014209416333440993157606450329241466092676885660022499715912165854622227804110234957209428642275800135742529501383437248132065374431986428937804619945978695997536382559611542395033083601133586276700350036035873349066117563216606141862588848851180542884006663260925962171628475999283743460530753802056902089504876787795531052861850494720132064089747465162090338862507587393947733889294410440404386094616526518125816180151739387498607435626007661460151754075842112149391620416050664711061689816733226475479569872605659156878998304622637289105173398715407660753718508104923862687948533933275774721221686664684801856620859168677830250227294501347648434066040319198489092578060793681851668448173978339225890488937332511741519168608138735449070882331574462517677095689564368591804852558010873180321398350394673726348739528073963706911780632747107778076810491498840610459692714629819799823148587679874761160731956653491425241328066255646958546358152604499561659808142287617524853703946834382855628693724578545588494525936835058649182412353046614538531077566100176083877658482691102319833857178185611642845731551389964723644885843640258702273653957932961354342059832055620161942274772431492851239746468765076001224881430576951604050070105641029791990222008344308551846138386174759010975064161007751498652327053023361335863039544705802238204821632877125602726138610658106574510976649636463989116875045625887794558113483519429047698080364749054268644691563899487049389950091761653925767299008802311825781247391757392081946680902900071211556487474632320244296549957292067501328122564432162711097827361647246533782964266889565314914565671373521358476953162549032205929313287664229368577067137700465083311882538852229569679669551509152603052352575259588811758302569869381959483402150849616567869658719342516623427344760162997591322638084601726135793814457930032472099696118081250715950258433557934715243509682831295184950550293014597941902838382948220467597458126322736155621882233162084164729743448571483675797565783125729700802075162663500001832132486378081474990831928523147607800303108502414814527450295930309062921232053650964505356452378695100887775484473656680612850277745909414588365183678108072922509942067282783995331533034316953308065116984311966683676108757237795201159228202216172769755380125410576100223531094038032931751156444687651921513294440900574053971532310375254151451104511251959708460089557711637870628045270800925745309868997771809808614364653737888146141854833229307295667615373137109994938802357031009971118548045817594973922172356330448837247111413664972946948129383554148425611257304469372058684407153901139580214632393893082942713455626502193048357456621981335438453554596354143521921146868463068708927051669299011806785222830435278769335440113629207201956231223042742562894239105065262673638298771637586212699239300390637992949186826190465481267800378342270554500600045091630935361987234570093371525329708974550115875010166051304401355840784557447828978633381820011907318640128392505093908997941151247252621099767966306165259589847819339145553231575423699004330311113907536480489677725744325033946235715586148550870643071163641360637373170979658895144425961919137626412247952835911928347061213345388452065500627481147387970079275222432324562043815626580196291090314255565126763344127606592756869017707970162703472625725683978831174726038736756147406634637944184982404974451126667777598255529398706209428058541209384868113012706805631045473470433195634282933537284762910184447890503996251748673606419411095475595672142844535917659109442475917731244026723294293909582849559052674894539910112642698572136643785268385044461653773360235116711897401635112670859319552206993495037520250385448021418055806569444325067264764894246500227342559810332388656018221682301008427584094002290518592935415635499998258532901601541843702313478750346902888362162573031856745825822085421376170066999696431721251203856305168324716677291429742936774378403990021061251485766784717063165639153937209058262095122244872549561655966032152334208698286519425018566828901457366433793871560535532666282835215718906713784084175077330507331990849729587539099174515356030220784547147516438484849932763938676828725807813895053645189502149898553930668909855649498333097623160107713276815840925486432690558101985685637348337858786010315922151838748793089762639925690521697215010198838004759440819449255138583163306457342641580714262787336705897974695511378741262317948020602413136518251583308546203594799826811671599059550870686737268122988533098067416303867262714628539266002829799304461682985621715611097639249936449809584871791334418005433692652162990888754259475364881768807456879473957759684329808534436474558214255766410800957015640666783932491850309859630896353338790613135936716841595851302060036887429059653115072148418921755000438838462853887298516632987863932054225186747842769405998676428421474804390158985445784409028075673996749867717178421528516463420075449291207877820717243613892890048910280294072689528601281357417274267560260082324662199267138280481420080168498868146307774993167880657372811623038104369580976608709474945974344693303259714410499748605288834452926812726274585725208840691191161052677902634439740393152276832227320344551292387009722482308298976430785930427908658280513886638319582285246967078580679811308330791069371341548256592018192201314469843174745739526759221955328494335567129423009581372041899285329732595547728942132652883599905724624238811103286358644925588863602872337783245970471935445990808765338901761723586021433307036258825776666815431020929670945140119514830064333683624746047358033920854068143313121174353047064003491273411395504177050160243696796616512491266105568138092548316357029384718380388013848082672295138036956697750124938825454581885056648924965404137309705777931823506277957995308483699121020115384015878768243726449382110004961751817930347550860377482411596426018142805425571355579782872698731032058663997796256766775059652900226883152061718424966147853461731111540065400879703501750696638191934510660031466093301818701204271193696878774026817543664261504155805730534259678131043598396585796456899860344196957970251566337844836957101032838596656749393991462851837605240098187660759684313583939366458225713076785942289895960967313462360014029226103912727592552888279334758516389767690371844191734693303016714372646882470472284198568547837143904206447017472543076680061598197050164488366481128549747037555217924054308155082355634545753000499134392229299740612570648738972362731112618232903390519839079750974523203172259245777717638300259962397035109511971897583841710187055878423768061433851805290255592833591529584526775224565107476965482351354976291909155632984200775739474925872794136294274009901564151612338311709595105015281116556296568253190837472442270501307068481153070477827634719130338592725571206533481029212063698373177338373498858671488483368177815506638467879496542522301413450477166509146532312210596174959322836135566465648428761624978854870481554672479945197672194219257124559537876243587967050674099594290806471975479639620629400927011613653075983350145299580469487435568415708048079347811603167746669481794265268077994982878036852749933526813417524230190172978746738103374915453977985694295878449593183947041839862828683986772807013372722556307982146419050972345993481547947910288491986866130125695526770180674783744289197279888086540193213851008451312105778839362679310434611385108091836435863952993375868555683157050947525392991663744561079895716941154567189478840346223606002731506204760784508482744979631497189087931678088160968624383885571563397357131044856266929673645831139576758347420045544175456665042336764753188080175634787323851717385903885178022307406846165035218999187384800423562385381900808998744639954997786603974455135927494879919443364946822955821632772496278223791188105967999354943311092017010570663205662837676365346539371898221547827040499285385334233251073277405158320521898011996779009780204639077849728432289186742202505450366229032049418884223273719165066069975567466472125948352387989313350516696105542832908880855864141690589883333648249734109627564133407324062573556522672316126172993623403984979510673828727449466846789651076690830755432802616829935064071034701742193501743270091392869807063530890030331049507482632524467314472674691002889367760461432962972957855959023000657610196170179904529795431639722326336953609279311003274759563953205272732500479921927477361770037179994571461294250803910500552764065576472563763216894434326779879825651567567376527934881888121914803022977097601378076328327378887787575135933520134817307634725077310764238858383906516762387975868614760014300364724877812442770201587688077596921620425183356568435458143591291104665608268543004646648274152620854100559844938460905255868877157152706778783552290363528548876472354856325093576849403953241619475521122821349291087234355563043955628585650341439228311233097034254424455357264802660319425698245749571366252264705776871423294338310173513789515072986783665827852442592106234066947458932138782323886665798685444609574678715868668963338331737782112317163932454428482639162306714017469887142499985130693178883491866333748045986683165582682705483604849675986591542229336418349773370418515752580580842907768352965059859005417690548568445008652791186466759905142749874388159064224885478468609909191709906371775472348716663254043565824043643100698399310607125578846253454490390762948518392277708664061943754942814305996850630697397938031604088555607973373084061558961051046615139667463318266285725490369529372292336729236084348476414261120411387544953235288215070341514697096130618606821789766836912773426518210054077802110453835507853302237024430049600807911145985696627033428590849402158856755739566428184177986348991686450877960373193683589446504808220611842480728180880877006798048108576364238280042741418353629406042099366808977827111864601953679596081056826447331968287815519010901596998321078601191727312362783306486721945859337887256133033405303221504015480384715721769510861598157237665629611134008149042714152327385302949689626822679814077061899503479891206630298375110786220438718970891556197040846306018305022831493728663267469433147970769938126801092977778511154813029230383011727912290312523531445818218722108293322140803852795305356986905323668224775433561836725445808805482726531457546647213870796050725440283334342827022558941979096118967604831253093743212680496303263144975890876451844197232422255373304164042836559136147478827664680986407589941056674364604826399838186218459416909648035283313369590585043843896580062340550908473923180575509905919007104207479639863611093460022779817748497731607768516526544789330675243166622640837140470188061661627763259135540639624403352141528099440589083598587031074576821504724894866294451695106369820065530760562514545257357882170652428383396842050475958930895236447751877747424232556994421264197776452320891373313086776771003669418760105495467021645200722650237853656119944848409893189925970805362754142753444641068767274363572338145693341812532569369184772683677852997518819085477672839741197585749022296811738805706866051451740899231485577350300113692511390322743934304844933006657151837540817384200800921435991773383650159536727028603045383398533812829737197719517682916073841245230811120968867277184805902975067855092723872315000105955381609730154121220366807223978666626882270155516045044042498804006276335637075653135963969949234451097680422151968210108167902984892807835072681765133137304374456891922706160446491456924581158967108426610652112544926933579418961506152407358761044510459175228783643644335410891670050098772555192351817514529396747053833064264882347328988267343502952571946521905219077341701880119476429704479800845642961061815669720711246861999808492336491304387981975129529842519095876303682427530036383098534976186404386542152008606988610966432402373224528342213124397244842818631147757961393496077021577157574326049248501731476771572600597181231906461176800149227467700403323489333746666999524829208729602825441023098282434496175972660985380959505167179450396578008343732754236316887838528269761572110955078460901120323108318933962304137922666060297641608856600388729426863886988457006289310650783506409135589580898541088200582895207121834674582267857696926080154969452712501521199071560940847397718913732530873872702995685420912281086591102041072534274696621456483487757211635705607529934184762970185738388317338348427581516465447132493190507700228456119438768683439306322006190617492589062305282753587298572162821995256730443438074367452232837934737719700768211371700430086300398648673690135784817801072698003061607820043568476817045487586836570280599039844783293127776016477926339555621815164499648346549665005617270739358298511827915959382673264951204191074573872106522321216414985237308194167929291938006064141777107536406987948532285641415060350179688126119869315648992070117107729258020653434472590401030262784755106650801432835993575247149801106789337525399955479330585971716767157317908366219746130964932676972591022614916829858435216751341885009999692009935946203190259830395486223951014699418003855203203579039455098116240370937451133248704515583745171037030710775335576881741095129380829843123588616334337236737822352204207728601606596025578513981622954649402742342718979274763169747427822048508694735706011921821795905730268396260403679427209316470059872366732820637556499522834352844628707430576650381720103442438807805766576093121874496253164796880949786331269218869621756196133948150683853523559497151403807498354521303994061218795404951560858525599981812619807712812899301249932172318861253358986925713634812051739144398259023095513314084060666931820604835627047651448022097987165447272063909488680230254811460337738013340079845751435346452168706272403766144414721345033506474505255187772528694067013575695129529131334672366315466600065419362408339548979597335099029838642018781027618536050573205530238369859037422905815919354801001707180728386215009793077841005357371823049564509787768459581982772164104677935062043422901829232794226625401028781364336947711599457073126622613266719220973209589069507248489105717350597379191240419909604136782405726119723740396174548264799669411089043634693876332369989407124178537731189951245408246835084057855191457173947225868985327060381594376830850392394738809349561544284867334051945924763887966092071536869261700865207246248815624452405723338382849722981428327642958071131659375961781203655243026835869321394245632934359076693633039936713626543676257301536203798396040064610753741309422315744355426402599658783324780686012462579532403201933680802396510796808888195385302860899343843537857218615161455766415855201481462885118909104779526819016340112508715996485577947260560174861927596689583987113092385996986302259134621037808234598676911389709363972133250157245924769664769563355928670785294110822341621442357947589035277355086819174036221021755119016281508213194393769472578225180229689703537599099813777070248140011175508977653915038120179230423332443997050058338333299361958252774371889372104065087181470878435806439989477032354268405004236651416002398762446554066036487253566634287001386440428619412222543791144383142242467047987408502076381591072856642316065606739657769853278127868795388754317327346298038298390365541638376803777052811012827032038253550248794206826263038167989730016884745432898224836690769103618959683415182627701368970060932942210821117538121198626420639400140553046937617747722748200427434465784099471980874274480744665704919146302318826547100007066353975692964809152665813201127103236150936755259645516768513022678798594806738848884061106144777214904558853400519326774854407122513400586460727251438908820824744222049142779875923206675768692587067093320852548523800025663231180628233537585243607501473171490012319332822777101254208752802781089458813429259287077964407348225728235968588187367118027281951308750750572878877721497357828477550186648303989304065328920429343474206848593734054072289146630025325242683430116542197690931639204994526369950967355314225664700513593441899308653572738668453395728222373414373899635907777985612161619132932267642187750266486874897623648722405006556597055163652914627091710419160984910232351162493318330649615665903570970962857027982234729155191994058028449677514539833007945422859275285791276171675483637684380997272146567507877510243269216658540595086620697891243445634037093530286184214713293271624866693811135805966564066206866753776533405567692169501736048189915570636883028112031501080882716104672030685545075915274394471898366777018153323929183325614183153533124425487190905262248948478259192810265765912132611645165070130446258331299049862542204568566203836945834471376153546028913657609108393334923469505842656425741163442759301355022143050219088112244946039492365538030025879116265987593347600576031442568395692892629734244418586956621120384104390206295239704612662877543304669148207649525327098946963452747920003749678455564326091855563844526405303744760280539590651259462052378728429989789045947424512242756132984114986113052302710728396706785494078731613296112056300053735367247898893495719431917039313658881281182620376199880626966957198003221485074569160049032670895397250378554111263292758392305443667078895791887993130941350089229172059746285864905130151184255696877654605771935075650452676858868452759477691056558922140794682775233673986982215966979377458288911411602959215932755566723111284510472922091744212481050508480981644103869563081948569390847978987893146010460377809814116844435494253117049561844488448002958973603408747942736868495484180685702606230488980125603888147781188147692691796011815785611630240127442172580835776679920677978891637227260179823433642081844247716212207492871223940380421063576595832234709770143152355419926201882796200320146172222830300595372416978488283742206892304123067686354633197215494563969853366985810393252982523576523643348515869968475261857608296176686134273179821425600089958708744619373514280972337992916241257576756934161532162696508232177470306290275891428637323373988088088201737208217134642203353822477424887179007887309443165440040102673196223802608584810390562498459468256177184057905715058239097018793428716481276860399773299515336306623496108603431795153284408443976558713242143033585300457628594432152720280336220502031439505330941161402908545505201375868608048642613756908313755867786162442952906121477981743341290178936784397165333755723203675415308020280915765539231991082957976217535253919621760692429802182832470428191868439149463011936881896562540050356100403143455072416503339203200163755434114958422724996795188341884054553810129104034373817386463759902831920676477634951247875966754890770156469511290663976737375535366168864458043397124629623366756182344743001314423109594156384054089629956924269320858332752030422710507742477365644317524604519955824477263839296183210416502033806463314855209772892256603854288099297226652103390031269815804166874876677627780470064611610791640998608645361205099745309346546645624948241705972073348295611397412773429071124349686747900645432160294962200579137243953418758839864769993532539830323401385104065881252193801348213298450307901859118799221418804836254129635200795270545607967750134890460989881903937714042566961043694385011737919962294190257474064862334660835802129574768111789679122005061272238946530850143966850541856049082535684497697917262718952623922465834967792451602427182771200665669371339326313564573993635171631392198202998135469600275780816664093722274109722639675133422895150129247502929656204649684679776234973232299479898569153057631466288998508928815213454390395115037758962992689138960050200626178941807157006443178161610870249258392550923825428455045400755507745265810092072700925157201213010676259175317726342386160047760094452361667890670741657572138240517379281558419396088112023129334108224166118100132761524812231997236544972792369099965457943617766173256762808433159947736506813076153335117477858022154574816270844379736263617604505136820076514975014354169105055182806868258365775054327918979513811004400708579433256135804032121960985379311847627058474712882571357550503733897979132276510860458484236830391235709241006273214677457813963887110668892629716051312839742614903014770354172415560782331729950273066653157075016189586855133497616592806079568702393065040264867770368673742526971938634625444940936825690496435045347512520490804572186347887609097088946956347329288874759146069218916299598159397010661131528576561641021837658017601632343015449134374541902355853272835422783773074908942084610758527404613051416854397567927238193181236989789060063259953740203272195120706984724320664782965695090495173601140716699389462407724969053298929640872216007775713956558976037879198866689556590943520168857571056829811308560758591978866354360439720350925178266095455444292327119635547755922973993229178974249321241094149249695963037462178298228098125664726586503055124723785770703656363329566479360406975125424588419923700430146092926397883966885421015754860426624203160416799995183120159764248990470434730182978808788588632650427513449341468295631886050648690471702234041900454638236597675529826059396265632982811848173469420642505402933661000595644536871345668664119958390625105488613676649340543815436666852183228667437292758735565471206794690091544843292675146891705598869788398115846994372889393515347781228009819747398295847147613516477495067459431978746810814691112693858377160793790986819273909150743822166865776004274670563448581032401379049503948161040794742121999005996510942864945462947158528082268241152104891618102560499017696345473428091720508764855259803951364195356627703364395321779164280003053932620803432305540829312401821202034183688615499118081069860747996399630790882639865709203644903511329039986754464680769107061637402921565642881477183664000825603261110435498089445728411355711382503624227942245540317754301349709864877581388967705224161187466134323311270895793100451600341074042057036885528302751999526438372497669750293117076340010270868801639887052204057433153913748071194673555146402520409698524815938950214147137699982524396806780275349453781544138122370881500137883513799716321215100337207295380811176669454403304007186909756945144146096961987895763326931193680981802006340854629207317304784889624527332314440576363353467949563177467545151681158727554786783790350844229081934675039201251891095432266553133708998953537468871510279609616741958029149328028435390919033192722909664503826998129141169131882237175485689987446755091222799896450871653676039496036712323086332775651777593037377526742631501875818611698843517990767155847998253271205314200745787638438202539768365610896551249445734832356483861176668602607466990271248176478533682893123946181077341056384577001736807791752448602417670642682174422589418574050668645337832519861792790095022493436216399396363658791656789730143232287206366283786575105989438820799778606945554226406413333854980320294927103256457535293302988301696888905088794658315223523252085787876630548802245764292051000041666917561420395120781023958591129695294488137744677426210206267354614832433165554714641902313778418270708421319927203593239657583915233134572530810161563823521831386755437665761990957113983329452897149463896015713588868943125521756772996743840160748026100586650930634060195855772156095058319122192415261224093743966475362158249010825425979278598519655343738897322621751933543101178192590934780128347686272183492236331541568020241067314455818371610020092381906379878337678201404555360827186846755902709047376560506011407568746710042597385320046034350753822491913014760339584640988502713077623181142993407719000237590070291363797373943036011537657540771124960548197993790629536670882819919890153183419337379746542448707841742484813089849425544251346676672182204309089385001033277389887318139927720557739567684429693870704947808646914657984440482186549588583243458449518209682247356859782180270138742345246572499110952296679520362585454482408302650312904319734153858373148540719328902146251319320236784266211706682672277639265406928483819138243668094372248436151760949870701337918351509469948935373813750721806460489061576867141078433506710863506569997126621306981140416745366830641976808225273440179593992210096429151053275509622625114385760085783718976826768723190253663615616552666540696456352125893368190315322575631231161465101142880354951323923343272295775576302375689367275248478206734893614886240933907548148458980538117904014336641104506243356293980894511738266904230426725013901112580271357158249800808103147606812844404635394494367923730175514879231399938247915612725502009554439074147767424899305249417281471745276046609898529794009321533688049208629229953887166162175748909920322578327541527786523023036119920883509504767111937258171043802383711516624545414622613043653261382426745734514453663249050182281559830200814962969232630011353264765577843294667999954632836023268953868272676829677598677999619311992024412050487729760071183905500084055299263960219825118431794100915493807723016780741513937781184791770429510823698351572657435817441207205314015732443925294385113394632375047601001544653659183927430231758557250878900810954921593837896898221456265682985870312969874925820674474860718321219232902828729129362861464703127256016650825830405364362462841550869872965020360227622552604478152440600967945419155455947017509331576332794453219239499421785470357799230005030496294058592184506394751921266574268613713196965054213947000234440719558897225259882135589454973747166225457511372706004524489478833500247609968189703978008029508088441415312423291645283060768643325509396356529592452553319531211838961892654752907042901372408830604802770428394332932717760062800723324878557588299391007107040180898718380989762465375675569784977459866247858172991296193311814597620883459040500558728848007827253108327942253974856600716515110571248582353825220715599131849142716233956582414738887868115704233808117765960767572980736518549584277032398645911882724887209553062162220501839135911306478764705901753644883968290632788700393003804771924684267999279932359441826995359288390391347779227849187639904537042250002394733676853943189868225505099774919329415760982170452085723789967886265822017550844088957721385378623869781064168441419452089108559260961338171755544360813270593612726297127550425686102083154932854462706768932206157218755959493030039636239023466992469602738671397512305237282820015546173515207514555461366657030302297150729049898220539055962100698003476875262772405282727024866690469295815629089695764473820466185014041340842220666839304029182115601172830619876125967945380853270409590852314593378614938718695185165388352452146203586283893587029371633401650790426279650605337186090888375226648259803665314804840541671220046331049114002457277683853659767469804198561985885719979246590700904240567533775246233496323783686592361906265192115200262718778228563503697308425162156889047956113445280179244209257681205886416641734920387891787815821230546876374446144510790863638906246237356732223906275011254937703950588246263969698398077655528754262415944499131159687395984832324603912853642358848066437651489627194790285807253000180179788762477911989868111172528150123735821263559199783077513857153007079541445073108867532592181665629054836782492525494979397391849629751755973592879815757431020221565998213653139082202474374280026475946899394115676923545761414268841614507817447583214894985347382902541687689690102249039021117179605418882396762710990132465681426303750990475229949378325964467270476820469566478217169544413503549877599450009989681727944565729037690595118452607760730104205914658523541523883490434340263200589191956048772387248792947207072402665838677207404281825096845471433957531560981178371004127428279920046425187963558645224949523116158819434454861004965860453399937167841555810032630213990118540548535270141255842939416184499405503275373201729300064168504695713863277947046755042781054662556614217978238093702357832716763175797965711236323151283218300174174158455812154343773744941665465232265234854719207066614009402844873379508485166026147063204829550909960766161070751762440634362581192684844697571636359609670115026042265246587874186270191131117746202635101964601442916814795299870029018841444568045563332737917875517586684607578687603400526734621771818141253204501149150867885293181555316329851840373178396872139837144436261225829330567885142361764630839568401749098062468862909400819038419498900980392655920086854839113169656355509853133974712706532420123552837278395363570213994370057911533151031924234758790393753882367251364879593241586834499875055385210695057292480259153530434026523499989014696580181304881102751435524987655969729855593937717217212997252477984372258212713497825414618867389652442538511997293648784380794222277684085198743661202309466806160993982478787278171781715694871524804796898890960267239788829946732830105403781769382843870493462622517425667929723368384866266347533935339966597651954250024420284397811890448740352173440982669397130151456013864221847319660685358339740583725238601156947633296626655889168901791721062287030182752099334999220864137326990956757781651653409536442527623529649475185934253681110223302111273763542790962728231763906549155033142907983528111407085644350144506831787053800498034155167468713345745569075437885994978626511525763771175577283635748374145710886691491693702844026190890251203115713263246906481689503232818845086560013780261022256610366228436652863713988826207312309523910601191185738663939260061835653766017500353226201908251951709688370315109096669878123199978749140088412124784808952994569464397029792290973512383685835760456717224064902326908050425118340259608256491024356329686637170505314634329758569892528778858387230089521973958797504441132060257240177272985581036528608985736307714203058795039479683082837340480397332700196914477362054584423376071439997260279832587641791071482119200111880478528136118223832378874365447288724408745425122937449382560131020303914286880320423238387226220863952661030514400632130502039205954203058738251439558393531370357370270642121336547660689562175812577704601458605833598538520687097946524782569659286687073659417463870280295642604653376270969574128478124463873527858608072085018607921612176756150157963626791578669225608114950093492007424091638074001125023490052116876944216736401687793320644642144164304442127453476959678374859996480667317295708150306969282597410118848874686196750716886487626265111666684367634941547254049116591431734999648872119249027869473863457945021310889381209763851772520141233170265738316711366993989392002931996452892259200336211697037558314514399714199251720194712622678159756862585184910118073323704232758229579413768906718577371066831786120606182592294037953084732699921266314665742601324540132889239995023578817609393364511080325850525337851455490392324611889320362732314867058933513962792458720450494139288583382368714660730299728577880290072988345234258158312350872632871095233068546567367667054857545983093701646742208842330463336485019656824421681742155214035251462541547311297257998542041765933357992980204319590270866497495204330052867768831319698490872504043855132871453231529135788393974252959831684844233485054371247436814412948909374595373903510827556286511383027764884301841619287063995485758219267958765238199877158479214106416743672657532385475173274880587437177925647129021525220014101023028277122780412068239205696770813094166318870216231249877730401133178444588440539497070464903075507521954549321702235240268441280094532433158505854763258776722760171140205983798415407984595615502823426384401021964366930417014058872523156692585762872267553002616793461726851867118397819218477544903320867890617367819057329675320288650050440155205227083541183517667073614266568547104147026221229871868677828825698764011940467228109369333241665789726043875319647777878884093069888101676212992009648632228291726819813609958485312287518346514937864825322911566182319868718729088868808603616082436475674792285432127464315243999972068315866753983443206336038721505267763927927981057916473217383640760284040714034910476690000920212947837780212352809905056081231163945343302664161329440410379938961261606378047735850306729416052915109301965762446769288164006972085863450143328424484483540311892080156294313593045386484520201245319949198562340150045685902003512851888615180692700306313981241759722326642731619734705465291069582040404487936515439662477830718436137164918800287681550847127530964335005750197242032489838756205732196905650450791587135513249905095780704648045036243230840186752239469489424364217947482171569360757326797232667080158392189962119217288495390262768953454071161301259584125407549101469270127497648887021610358578165772267488260572210274649010709727300221499966795618948278797497366026940026264623982009086961436726904702423737841047043447853725781953746618435488489148344752817851378626601163560640358062680202791807545616609410030750238047061192200240413849077715225041925530533465465348686329368951285131524507701005667601956439600536420544858936294894364977124647811475356013410948080037094588170739273908581634889227941925970024705863849026615651189967310171805834604312820045626703285803521503638336283544738114798636565172170077769461959655307511444736053830482460415921007101299786570109666006275889668293297273092020740128505568624568676239415785198158687247141463958592894539983498776885341248173400464067987935483924363965903076301804558519259617170637271428433396878346670760113631276828459192122606438479838626418038657108901625757984055581593576890558702468240808990016397862181932294993545254013682078737127533328406156117216440467427973173815707702509045394115433449010467508364369289411410689141127593706317647339052877882712446092482750493764130395327597760245914593753276604681068678367574664273061435933004780207536407891809493630437379472534434818141251974052693479462357593152747608243456446880033687255317374367040444754044707433897244008457781108345316799633504871226910949482307704677873883715450783512036501152959891847916790412109550301461432323288280003395551699350377053865262361519171688988714687277035426408878375484229257605999265218889252641718566028778121023525917314908953323157759957986464511726632957953049176038235105235991291181381153616529552589155868323240923083220585949442436131480282667357590078219336141888931530341929594244518696796835215173594498722164013490135601430913061367771399918538822548231755574148926491132048949456227068743078883219064321861385557002825990599130201901563686465527209946720944575500630634184668278804539504193473042267469598470575100939021624046154518970745446193694223235636401689012253367628456716241656212049187712338140388575281279473617142924807281210106193224102828261081072046162149728920041874092687209294340981286744393871112954842892224857120487482258909094059283447647250482745787235519325100951649298016023497981252620926669265720086523760362031541654299953563978383571109425933834475831250381417018303101015994396863574487858550259136037732377529158488065259287295459052428950891879605213891020152575788929222804096979381881239441427809977372689215219858853868280109207146366568338000027481708313780778765597331424366961218832035013976748297189735296503748581722114131664415833140093029685568433841255316757416473768139707122464407093421520127582497379962159323227783778459176717327682211026721942015258396392501364483194463395514681287832407884314315022018454769097529402489247064023484846248820673595271738976129765877668102440902429326863544410555835075311248347197796688633788422033307681244900076660090113172576338026687623440263480983566404530264672104207501241550317998706516177080038210463620167391606158809560323835354513504686110190867762921520070680178976266775178772639735630890133563479482894970719035720323229465970057194244069556925146175803475278386626464956712321691701602618648751896349857474839427686385593060556804814954195310895179401152828939713930473775074858711493561061263480500148753424511172198727133807259803660680251279884832244891426781817350094874024871179544245850180103264999206134360335052099356793086109693246830327074282842311303508455895223014707333623332490392961235712644896281561259424680785159472310140083545485111078558053808387819769335117988105187682958253982956419678975019916465069641031601925330578650871190485282706942560319667322050252594239885072174544800663079134729897056915617756029575766810879767937145010846033310454913231234499626261009791521063473375507331367687251427582144550366668554309408674266986678610767017418336664057921081135824467070834447552639065850955779634794251700318210926022583992963355858956058773822351502968525055862271562391408114586580061852109235509271241264716659522702784324101130916562879733481731577326995836498789803046231711083363096036774581202650119451385978946690740108212981716087999966417057571466025695997638042991787542928195620074703836106468051803129073262169956170943974003556494411084216441570113856186198597062330324009088479744317925435243955771444380515438063265046171819431424631250663791772299810255444224221274492595181640558521502062163757034146080814768210706925235288064229256109982889291040824900091903109234024002289732370757873464699577841125632105970729842386252676663102121095553567804729875977758964728809640201069833439563683929619751045814068345247724082328509797626964131043448912593458415431596074779984042656294428767361407283317644068857333254246967072980819540400915848694690249808778298543599597731896045284292554099224229412771158275587576059493267017344573338824206177443896657749293032204106771530233188356732462399648849739897956130659915521856577226348138046627267738204667599491859530012118218309175344941756646893551604569952020889921593123513342625459127763244967772977976351278101665230760621914512198674934277302832052742038917609629763313280865764633052145729420939405736202300412466504963873494437233292668586725915658457087343433558477152509762665036698835455132827305757495003029995365396277096167657983235531952687705372432511294442910764541407075926801372152981025706345290660178588922373343548065542116361208220321939811961693747746669370616716442110670718252968923988932334822489059470252820547329915120801884871785969379454373365615860803349694021042643734783887994837302624018227219682508375883961778260891008543496094720153511510878709137110885105069207795966528926677649038897802880750940412553843340498584813058443030411659513287327737336682853120967017623018060711039723573063304045495183993378308475518151389056095195053302816588691754658246665469823287429809149339159088651337480119002217260132087564043379961460093216610962706336827026815368102136065182090815099022492650915638696461365642997184973275778983993687068678650539439267619448999839765318957934821883645184572480300955259634202154490762682518260875242364154262373597328420645717435683773888519864420038846345013302855053954901523698268777892379829373880663968144999705409554902081303750388145704002132791305388955523682728073271201293054150226729236933354027750036018024046753082076537975900670744576036200388138438301058539480785478601087668207001712639341623360341237665131791867773174970207600465859835240315160835534797952595728862003830319980865621689354399235273697970957638810587920732219886178868212638466836756419835224253855395516163752376808688726446528043481722389657096372846821006589331169292823838257677793798023756235845911760767136006589463191485532843954930162027820035768723561721339416983639469389790415704131594323617489181469813963574551008783365143288149562350842320183568203400722231669742198202753522975132058139230312228515966578786495934867820870555144378685360185621478286932475137388663881848853775791428733963723012377307118176711146723975523788682488820359636890109129380733069002654037238663181153861155432519926062238484430000859410305212363505154103174312017060778245148036140475699743661670649360380536377981539134891880981687055788783829049615614872404384004428010660860665204580885918623721352953082496682111662372256976734078015588359047573189022219059920005765049410372684091133187363883263871385602805158898886822274338239004415022243082736415458815471270073917890897065390166307229103768135740279928337348610444924184531458945748986070787373712985747565950635198325003945702296476758418895841091742410934675997864607624037934750395600572155797448152457135414035174498126112895008960025462910162926721889355712804434173509131524839179903515816044059819147481614968231257454642854429377238544785781049322765352283395196617163134810440810291749171994693082106659215577930927852621454535497192278031149529771687478909314655318285577494843887501729601448798347788297802989082455852664326094356816159024782673787427700884953831343010530402192627638200345215065830427667871254657055506659159317042489997654766379641641149876968262545748911685098353493597492001025989021583349805681991729291533883268443430563928429425007962560231730685739286334983646558023059133996129862126616867549541786283162390866403511624233733573668632221756948710334531478668355814583088392424278413011730611477104823584798209410687092943831576792506216738052303582064970673569168860269857942842841864698317749535114220560193341948579406851265789907777537745634761043291604778471144016410087026676620418551763185163722513656348380824931128124666206801188936415648088932935784396113736073648822862519011089019743456396484741719158708634681018814015773468197304725042823989519680273460647478559599570839258694902340283748018876145436434715178537368790194425606513863072578942083378719178082051122741927389162468900603837055761047648185157259067609953486921052302003702188689770141586960271072364165322569866302307614634090358634039075036091038928709365246755968999335656407138767607467676196296644360879441488015527753165661179355183090878431865423884888743501792398192546729270635666318070091252629335228266388030079812959238184281566267946367110776593261910364389275811771029064885183961621186792405239134500737531894403575130944788631716021939106989504095890276630545878267337134731667152505163973064160236474687722251720585631569310496215908147549091918653937558451607610949220071998239616957911576890296443220125230550998523851250286282666128008532075547815424917152832776335914354981726246436094170685691091374016780755501119220915746960965418070320720679776788377536495864613301537326589020131509473888224918244814893140784802957576510724453180961789435714671826587996801477823124004202791747219929408038564567823192107628769660964574062841190848917729150215965594939130483406315085381581620548351362873973644235125641624759225635932482986175532717680101805905134083670115307967395521717157684837786761586130698385257629491527128247851256279438079649342385272871206225270573079559338412837341060480848205362919990288380753192354361719241383863546856962414608373315218027443438755189992034535510530841872258897469698643621634140111256610088395811145410315616497479881443935543651444053596751656948296039032837476796303093629193543014708476445778920563841252176733267034040930261110821847199543140191546503662132449511927003676852319213397351123618767172126260918238728033042128366120301726883141551498263466212689698687667709545351980503195300775280365015623817118487176169469055584747986601729033223893796359110961935189860895633307542214135214332200968763578548486216858602057428305674724329636898272540431489216528752873789270962749679836130584748981222288603800083488838181801926673296777781217686633956345156068721799785336143400396216813111031508704485933659100948959429590898846423756248576837969657876789962676003683109879200106569214577797076986830433755986363923419335089439792787298509137107636027563631040089815858059859904341243652566630110256069457758395516988081542665931644753571511852603320173629397632871023126706520641355513394249973085549695210674797922677051781584628604739308162663395473829121556628349886493428277373920736261490560894313109241839329018421697555574971493624045367304437491335152190092546782743410116854830906220657767531844386690839322643199949910738383121194700113355294062766001830450846163480135660843892382289429199062306419872997768674968655122058141882058726710179438150601162717337263830581504277620875867377486160437847862433071053560910370091743426943785536816226294270410301397292553433462607407836558593563951575064946200750200057304240523739721929891137334384881465470221948997070378925700789156961737298002454374301365606597366304710199433078943528083783037247799593669974753582956781149153989332802803285004122548159692037219400305575667525657675130283169628244102101387847953763852285718317666696501382341631444379997650642216302438109582636520035351588102378263103021941596001402292903498335538842709271559651742010912441780237810298527417694042879235702439923333654880684106613997775822214085048618297171785027710137408209290453257481025813501587759096435120118115571645886929703577730252390010062312532962658435171932520172123401455203291858160459347090424882387383204221692610220029944768878886609402271521618010815268018347236338684096418395761562205760546132044231475225405790385701980535316612220622221313466665145970344595480050373492683769912314152295212569094419151474197372762986349090296545859901164839006978458253689363308655987044801982283146799593680262219488504521858629069698301404845197870637418970186351044415213491437233420284290546237650571614229481441881770332171285372923389286933601671591598038439355968181074836619660326401384748037874395126267485144420377427562679898020959391001354619760473840898818196383794276953807404500647413618768637393125594105003631106186170891853497292875822541221940056917168419695308920824221179442387669020468476964104838976647590505749093504883203852381684585601645945682173136752124745525495921422312875437499817517522479876437500111815673057949853089145375565325800429439817635968618637907092830700571436692344910174081061076316914280971641482970979079702209812564037520750303261658023998202257465356932837257935551351851935459608719573032805360050173416640903629286119523141095067621514224692359035791117086206830787217912758795904369964441234166346572497025240294723651627974424076541737618938164988860148195324469925242405360294921306186701867364015873670929438565570518832389508130902939249248826052264735584142194135172597192021433394512757026408864021963123338309027156811681395538916914478957557238896665975491010269202014892602061757235409302247808180807597011699004085364917504860635691976635387216868159782856527350147097516979453185958978005496443818951827531726343026014608115944958801577659767945467113006155386023738759860480972973949072087020083658973586179207767361597829245807647339704029891538281809961538708013361300895516886567338410778850096033934113760602341994315403929387213142766294664515987631335087227636537528601921482497386324559703492835967763830328956701495446671857659889182508382335963333191451246074146508398495317327470834091014595305828712160740358402229678154767213184614100866281859639003272936336535273227832816544695442228386586378242085759412303847829618110519399980643628610055948633956946249708311989896474196383688324994387600289801513328314096596076096117263647786264540861719744594856423583155744574924363433778097777348419436652206833956283092190667259214581834045525153113511485563736552417323038717784198208946044297356069546375184453954096959934491467264324855856041694767804197998849524741467086249913054252159778991163449375441964462389213873956375703682027505323187294524003657616039358075259040634173045182509729597220806070176702806546709090884026445584450283497686536362545229999538991027495302385806732793699729667194534092012908077932912642218737682383891811090004988420204816121689178703529134369056809150581239644106904891619149989411395626221207756134612421112350389417914493839128056441915623230902249121419036742561847385803235216257898297885813223745641911884787962173948721146378273771662791315004092097254315895612112480193973431766661768014696969748085767543998097220877145799332711023055757260410422222749826909126258920553688134653099732448944222847903006071752487060304673873250864721148624442298223153741405240461710411132525584513424263557979530287902860412428300580004292946309986876359772650073770589799223099922477624945304456541414351765165212445520430979354320711946016768372655979692860446516628091022922563923620115841546271536217298561611301546830339893957490570320138466613384021639379943995572352524410494174325386651209265933110230395469492936423207622088926592826720251772512157734944998235877486054112083982718952871747491083930298976788699118745610562362954633042630639436098992465077114773674772526495917165785445723944105772709659046823378310562394406421005982973432138163442184018429323367921551684650179123304213521094052490020979607766876457141854210610152922880917397274005588683493466639869289286737061066744262531015970149926918714081171762345362788707298874648079695651824388634498666213643371896592160748925387044724768333872493721106830959255662878925232385202550344683186223506113089860179639306499012086233494500710517817126223454233533875363093830480372521334043869474315967072041027325039338637813713319056674745526964330007315994937168018547740995046913962487654927918702641288236304080035754846387312643904807625251030771658757246420616084839398294457879281356654195601491233804835465860599810168395592490198228978831455482439856457317044581406558202952655476912088680189065454751080927850532168696569741443984499021791303115058626456958950525149431845568921554878850085404265353875449776761808184615742968482503525697502927012249988218795622917058638761674801841352141946902710498454758750067243705279689909507364427934830551923040065679185403296072567525032524923292815291811174264788128054802898436544140125777709179987146845404596879277354588413964894881448100520487902942627052071056235645026288893344079365391273533801848099932650725301755148389262967820872433131990633346727330625093647107359689652703858733168643147916664775650976742543969341344808810420917348399057970269129095477133544161849826605352865122044997881009160445681197042143533726306427826071669981760405923216855991360407930487993841704965755932038533386479859851227926627709662803846306767591763733673967846748504335408897159323053061246014011774669669310263423281399335845050490980078422131298280178458336320052010763205751447638616841615105111469675836578504542157158056059476214204079400391540818821739108515061226385020846976734460305133406378270259709435478674986321269921550853307594483730680108931345076620768115394807393378439564983841191076206424488356644903748152902893057614638234346262349841159639183586106019992789971605255870269382517169088920047879443705439142263140446775369010711178280485964319574683873728468847460683292976732910510399618980892029424633363491158214404019934990676380676319168911577140524094214832261460355932647320575170164667877955899237432531922026793158897706150961719329434078744801655458692758661829521557869371133200380218810372660583030955879493613589135288035884496484695528168657054120598390936620421958363608190953385941435038672882821345168372243119563813271151585903182761613503049452838677660262221326563978785642549286210399790280433556587890653535539070120004547260556653941424951247832484767091624318916953119548695671719577018132899676810501006250982313748355414298981898395636594583358789467729650538323861961228205549751549924719224959572313369328642507102348375330604352322256182844926775240448441687810508417234985166677261184256473799848212754996635164755625927839035957532184984906119967388749242118127810555284343853075948044161798202350119542568662457327744393443855242129876836539867472598196981567899234562554469080120043679214650200588733903997294320081838759843509522929793030816453701919430837186691059653710843959778880795101278309880110356260058961960435967412580307612720340290301410770138932893378107725925360806306105610601902735182584390644720030564004245834111836985238102991305451353096164344748401073459652022426455209513108329531411730435920550568409186948577798458448875858346236518629854395297250647180778549675141068364434473197111594206368366998841625440797286247522276200619604649106486509501190661235531781927156919311179623674104030522613260809017174671071502994389116895566692993522910618999075357272326212880364130587568308959184360508693215076384446817249120433056143392371950228000196110576305674386536495003434611496214301090541547730508859945170290298375368314047452362192809700051990385959650176592781199747278247053151946049918981975911254690276187745411540201173764012691234066427267841743757931084257735397772235160262572022800010339017550797715466460850534606442342198588252001127312825370052217518778572747467033214257046290672603723176700479817616301889345478541483654106324213335453309526105917079617798875412657078310975658685752128455513960008070679126984900810769996708217859770670548883308847950199243757092445282966608568727706361803596042849851323100835383840829651220206532773145491778437078813015694839424083201233007568907334061070272603822531083410120388511866591895491504495810561288473469817494557166908808730198951615774607824220677806290697159194791465464119968662384060863660810682126663267019462941183169015232160942187551342158516376356209506698940604564236710956416227294304929389103897591755189165866823317714903741742760057069518851919811925272205410385823368111118842153884983734857849566774266939473659406486002392206394294077562256400258909422208362631066675410854687800113844401979106503270995153239833122966303502232066854413512857938401936300864552749667601756028427406098325010686325970571499855785893537970563680918770633104273270698065628990483413410131624088478829878879321315001655942133362682528261857974565747092314340264010541772649097265072361223898727332768359595438029759776604043814677220829314177203796447019945701565019376896389312094420766918347380782315788817256622775924014681710433327940753112298052982510098397618373087440404438166459867488002717633639540720360911139478074771282730261884540573209736903934517088006590205924847247691721019231184001500762961606972849653226664132873768097307474197822463860801377968712714152624443606246318993720336201609705982042945003486797778811593330367025426725235009077002177697204360993946460503127925799760359164717412377163622258274393303899398578715552307510798504352967855042751314868928275940289367631188827124910043349634645363898286690905276022131047294952903958536591341862082906682422511566186962382151845121237428697082361985133721072532862505508478709439218465057484702806864252260380479047050627149319449617182443780526613836973116426199741321730875190379271507608941420409103467532890418374557030284628390937295970848297745892431272254992139962052451936090818130977904844668764126466825521903937308059319391438888205215449712838126119230561087566679784737153665101354296502710178172484669512480124561179298563478663540325832125681602964822494922428653305760835496296366752543183248678916410177669265652195785816075320265981914427561104580188757098858787751407601310409403089499902171673069258674152956857835157449796560886227066840781168097264397417681649242699381827704494678696454318642734712468459778189297219072139404034327289834727397390492065035017689428600354454329512843396533236948405689912942205545824673490204431551997958018093228954756889152317533849698711318777507528236235676469567227937953875698833631264030401952349535654560938009933767099246903905715114902410215924293461842276359884958470566678653284062606010136938163051300712061558528738533120493003234807559739196661550349388967427511678983704131818121698858327031771522682310887429507330615007838356562430921741600079936337325255846379611294777487221268740064511920141188558056025618133273752562976512292107401903379531491739832165251122123887991400583198107336099986039647618587171149964588967187271520147690068821483593442066015203365268442128399627923670583018718998088961928840932061244244346532109934497847848707077432948637627081256787861616963302910878311766398369371229147083634706576604569399038427370108008419395973790713826435026096977933871084105026857606370226872429289557086039896448339725461003361739837004201958503425193549075297130062481953260327921588099733593495590852089185072110615678695715324724176471595925235366470385232462533079308305507450371785782778037117810830502778032640939239916143122981129858100597243008207328264010774506685233206628965851460961613832836222730400813889583687497830992594916416300087068387076024757605161819014035801052349315910810808753132956861093296961791424319681453172443296186961588330283951735982008824305343765923113500749650907304552728081280552439642087758036081353851747977152700208964014854334997638341608180863643661045143214544872436238877960942020110498782882030203652360014685309907678597527641943377318396003026471518216231350577596628585792957818431534276473320158776855018897071715394582145466559986275809110021522828157836925653486094685829586582259115714679148150607055291364525969292220373684842766996180659462865826531022247326670239880353543413783072553741511693640863650626323138202506309176467190040039757018955045144079071390139819271669475877205939172077024664951472008698673915437559407111865465894819134143697154642554070600532642644661574315829768642601862866977305473033064927059527882507276955758496304369375655133209982692715250127906779836971112051703070937895691710447618530469026058801356489905225082474625034445804027632266161990569525044952009301280191234638568840779047153125057924922382224010531528328772175699996397466908818482530529608449907475776452369353131087049077326934493897945243742864406210755800659727989288369494835494992141492511617850124297950849180372054766339266699394289422801547367308843449846757894583385845249408550578769362035992712957300293181725596070683502126758152275067492083386336729553033645754050463107965875510443440753554619384820249270976899593639997432573075974110633003464184869123414515032896702115340920890217982265640953879772666407311513743742375093050071902656764798802108169734292656055103432344633791297807048525072233998940405450811544809640733898126824296416530901344550118454564442341779244845626457187948325380054913309618768020780623733118888048314640499228774668852635418217942687561115743796477262656824310937465686245679776822916742705550157344313050797746301437958785395863525959417868831251270018227601064024393368237008102432613265903817549140362684505581679970295712709110989738516863928809764662860929582831774015368349255375195875560791178779153701850370732197943440705170252217706552798074546714871016741048744587485176463210836789981594410679363625852658766126790639067348611142353261943533567931010467940824746451423523911511149821372336603893122102750943934034143990592805711530610399183830727259180259847109463969092428352085788359092471210076689132697688617062848234894960556364428595670413874527457654099843726905482849749094760850910639154212563749917823047199480315453443051292943661284542002603377378036300925507673935312783357326461770404409070006407260223994368743787780672613142684458041519650521859690104605164242053660211071696943400445570109204041167228753739444712969695087927365576598023467808738257041170496593723209662776117325165954769944546116236103880839286099192867991407406895531665787985880333780272071101277901999250577154271461022690116931009499889480898416589710896989768696913391945572641894932758915196427230620864837521771444822908395849973483932091691603179955138005317415618249701391531160828693092203385275421736319949663995060480668182587317467482645329886411482905723120230423515169196241710187138892626631390268328100852576498829676539859346415047829310235888627755267534316413153203958325400017126154334885106990360573840258713280221483130432697738823765851722134577314760984260943146500832463616922747377489596688334035006927073678267232590471680646935848409513036728500080436272022846263116206744016563683798370830720396387713226707313384355278907329360670826401463434026461448818328552377115971175764355003686329333505671899079330991850250050162584898974866867758266904594617366419040481805082776624897399109778847748717346081468532259705376563950843308961657432581791407090757423821497687460324725619859727504747136775646443464332055621447761525589239155284415204512295540039764189614291536198920240351231421552224018999707743902248841471782503282059810719770937970254149677868322681861167324313661251906416177234122687499776201279689020846499081726137286809217691225909193169949853522097299136559345863615712269753444387268255531919283882998761024281074921899262367129048159696781617355366686291453659846217631792006478106645810635187019018240097623326333528735423406805426913999212124794162445850109014194947161872342371085207949595922206606062589243275679941410132667017787611351159076520577831100497069280811857353090918456528747646069504657678988463747987099964086889060767925632508252330410746079381589503793320548901839662004203322672255051849181656731804911394013806760333882266674342719355471106902688583352652570572299033805298856643644726516814495154834747551029752048658057245208458910916859882571821421289516490549517799234465501035772222094933632302220341217695462824530513848388153565844515134021977222183025576987326194195949543615538988610280540020066661994906271375709428297671483089493251496610268215365527044550658669342929750369515356511145724165713391481848114108069082252746287377000453992921579185835425399951313894218239241082818398537985916452072366013118546515301218088329769228235526369783631463442743031373930017281050245077298429182025208560368960105202252364363004654839764164503757537810427361204099883996595269448537126492804168465528188757473894038917874064102955073319475652036647348154935808794319116969496306185735367899297885018878998677007586904082180487905308048264648268951787403793280454729042414643722991881894540589299509702600215883601659039905323656986321805312162598184215836131403283726395331708897267068327365319842324233013458639985070118179727311245577113347241133707945555616365410554436392893421903070242422037217121291798078295496374038307794168357742879802580374194357563469783118129367039115410710043179846091831969475517842479133304655688579358240098887090109129859811134475569702185706428027762177364784335062431458424654714100151219322187238262124887631897782994048323263987874168639215268213116796051853959342600837955905254235490664858954787115568195299575655179580761764478387945543487722766747213427965468991449683419439102694752290959080884708856297207334405932386924538071394850015619943162185734942648042170859822639723223197093399725167258077030077027374754450518300091311170890181437819827628662965670676771055335272586814410109790890563325022182902698126393058519328570014781877655036990681654893546129608900125357787190099670365940882056671148315707307062789980992751819522956891447964213501984119647889273293794227406292642861633437727057802435439493992088705747966639161276952631614768585562641942334458893213794696716165185773860449043027725168244253070964012379277260025353904855799383585822987567562700039226220602752260714284609609122770828662193281223132216121608319156042876895244586027562417370782057278290267192459443643893288381030051923477927484433149420135808616108230455309356965319090736244553271241880679681861924819382583979378982175979561331741506796140010734428531874716782243899424176637197793966848087148111805613713739740281504563349039712133541753856044146007351262603081943223256080661242264965586809021338760796194106542270085179531408980259599440224911250271432616267087856514624639764766465517530496625328038811148518263229504978385521819778039608241240672679748512671030275935921391873724188963234964905347253841434309127111732884246235008782720795041889920762688058186318416393723616920375511887736442402047745618356721222950115291162552712252033444980212286852504092418303526262586188818941523134267973967105253664295350278537456582619499795590008409022140862042533259869904715817173914865047914601710933543509281198213114637346160920319063810062455865624500249924917597702653942046334924377720916272831191718376988736073723354846868540595676538932118779320658827375356779543627642694705241115329270437691305802698019908569586732261996306784060108404289651976440277465510567136836032287133606870547804728249893197686166536910818175345563071720263776335427758834396512362412959160330341799072254265320167597495848538023765583355597765267842936651971514682605092636471283291144345826388563766866243701693962320675347780543453766201158189463915521888417136397763507026423385419082290783974279848123531504351387598878338959451169521307577177725350499015407090597308915624003142621856521007377015262922690252349740682364669143166538905018489514603518054500758401768461655567909627622081284552091067779509875632994948424671023733828230248112175181034228569514952238584482317670473185346989533527734889521768473460933660072435186009118938684223692714142450984077945719569227168761223957091612432698967271503715798210854512876130472495942687104791697039468652136544482743652402204843418403101521125295635345637991943811364837097805397656075930512521427337433667298535210587388817382570122304629684471843835698034318746972311631044817036215331462128290780977356249070189049612270981462650797912231355895887200033925225732543699869713405738823501427970540080749184634305650361821008990456982702855168995761060922354496463193810840539438002385159831300719070164584076401201095212569198253086958530682172560199614828119218866801694652446457719394535458014245303250035055787811491143993029752011994823221588170385012089686167040055474150101752376911643595576295972348045130851585974061463154396576247163846689294542830912972533574001906989371731015793038437953684533276328961141432534454729672899214261566631670855420069684542213289982719688871510695408188152224699078525870273473547521639599706116160064225873149844938937073126766626727471185379364919409051490273060208834193611781118986105407927384242734209729755529626439901302420209393427480532834808649964961247453748149507042149216261568277238909675699133841663277357855182153424287912187969944517876836041596284339838792455626567654393312905638057080084782757036106226771677881241640491391411861737908678908589336136584995868536543151980649900621401430608133542591227876378935861344494153842809028972313846318703832199014800320412424694766019697955400360071406170065824918457588421975623970191851336052364392317116315274680305394278461329751438312042957335951441615149575529389375123245649291021709555357894716753772360948880647999356783043531173760104151294165648665945123553719756695810663086190477111025084526856701665804849546692059702082207443201892659240324197469457076332289448064410642403072897990555983316627019430034797835119985705205846735167113520357301963990357681601453014107423900904756034571537288177199843132270010339724760764898284029754343722363823467422109862543312539805451178801321318896688396108803652003347575774466437857078064684241304160567578519331295009431447828954023094708930845972046166085881911039231102019847788310800394154050819978844320087008494333481432016201971035985170860876097724979993144451115851615290957504105856321798609931960158081475113765049780526083166718087616649845890133172362056952588317129521541257449295146568199852805711006842630023911280707686457845849025952477445758458313808082464404684326755279552602352140633117147387746896996009293820470256461924180684802117148618949319193207868025165508912901028262868418392440743393316823867822445401227907046126108796752714743425893336641389923362157595718990441376798837231923665948661378768560887617512565057306584348675512210743972203354353329505161516615989762275457850606925641856887013188972269368830792391488375839330410167565724764022616601652930979806882088238986684795254488130888786108579339309863518658544722410980250207445628955423873812191922560787706131300640199504935062923213467670731922268680004255074044942919540260371188131419282649682245043037781906009477120962364200626381597417336726643910876805796434350600670382313734478310129678077758644479315167929117527837402895519334891154218380437942887432242940920612804047256675662516238557074220260099514888584812174389329690666773091049873054125041244383174949436872116291505955263097304655900104192369013345314221558564188432446809863562248039717281247800826667093889639171821112356122344785104227646090405237985301034288975748082655162699362235534444365164220204001796558333881750193178793081991833080330652240428435401371627166048840891474741980762255523149247788142452440364281326884088069982320402759720592903996458473529474936961083974023475021902617599347307989281982833406567642121690174779706592656873803338828839229447381667247054483193080527473560054040891886451223253192471123405484043078977270399020511380996500632444462162129208469277565157632859688438273759063119732616832990061658853106273794509774833622954290891982984351163197340987169415827035013643325897214771680131349697814410646136869507110527818538573444234845164974952944983189740791620036276591843203568613284876813095764786859775265465873170479535663458024454342004697950835710467996529563596064984771407185423318576378502733603575459510294762031772091400884912603973171045942629600571311585366372309170208993271861629838904486761874935460698142161551456796297362811235357760350473551710956503572828999433623057813228438588868733850278200794961767528039285106528562686768906557796107358544536644614030415162341690259487259300952249561818540056453900059793536037711082596519663256967713851333858310002880212895516106594343249257959508065860386188360802278556817021804631822999444110829579666900549380487774588411564528636815238118270651508659838846192907142562826349628097016090564340951429527254168541252270746789046178407239590673778570424010838473440934403066774678351304692974921716768902482359215579915452906135523379195206329305382579685268209704155501990411795879074520070443057871566359493408022664288742335084450833334007742435521674466166494834489013371966540308512834760729867943991484712557699395509994502304188121096719677432766812049706126927960799553773237678813253726236297267420761397707305828572264203880069068481140461869156151530478520985804948742845280486255667873289627706481916636452517962796889227349121516582505757125557119821944621764002243552483291452969911250335052807154913890815756037255543294594489125498943895471389037439857829410789163444739291308545386510144746568784061647507995056823251139384262844950600593807898729702288998296972777499044493883471866234902901117683627690740331730581835588697839914738659107972404347259243695581197824973861513959436517637905864110490208791987168050663557202369882704583038391290915662449435307484575349180661305291955561585489867124931436561750127346041176734210922873996853591918998736209082006848740881478644957290825829213432049459744423204610917979183916742331398787812922271859041118634226935251023851762265038951163540732330687112278419121370507968174438646663442737928059104796204981847573434241318466244034327048748304095790090037118331587656875387318090632544049760188267004223654391480110686443895150388456282871018407931605932379080307113271506301352793306144334881402604843142058050875801861256013634855110629610230803504233972628085418166812472414129107516244501197148663263503622690800049861008447832987687722075761913404730559460855896960200133764276094589579408100537987946172388732915121470281156370122349503529964573763602077474704642038424413341548456180481119027782213607909773973189967099353975961718679594190331635416058894777373661959111711352177324649194435009866663545460973201590438693388389724935953916063648677630838716629636881645000652520835423741661013309703758851614885387461839860516928492574267562933355070750231810818131302859752062043508559443639143600895795897286236232171123107127516959452240015464935822263566897711040555572659901747352291438363355288635732059737231814947800475570100624921203622490246251910705679651490676932461269198552401663417826546986074364748857366935104583567295535833880100442923522332328214869573545386157217475911002888409652347485979265809407098788034225592553635204699049567251741798199252860498730712130376110453401064878042898021782075924947711788718500972133413845623829859192867832973445562959726230985450306465348288611602083909126832096603921169905468160540633796343882278059346304737764597895734630501138293938134930158927561686451548858418447004183378406588151759500266882453506800068820609187980003879706626087341453717644778550671602616255810315546062444337649155578228566029370171828355657865661075750428721299159206796647121070390288014645817836010249269765834040015095046929771169976664650736818157797361477717854976020090750883980673095263285368161312262800569037016406674788906629686061483005875443206337865964774716979656588473333124173680977778789320041832161655435849893062605142904064305899848574737291924015696251800979743198412146687032225491108519723948811947125293927336224680913263926561625661209248851358915532785436291766802006409129821478402658564564602537575129192025602992777903768076553043877198235925172684627575307642482596029229702276744746043164441116279722097462115872215887103518424676000693858832331191231315777797588669302148282596406523451602907791978721919489787266863939925740839969918045106332248167756378095971441399398556707942764784382969233521134115556940084434060199718195736540858949702620466811618736424144135081234217620622907095891626128384831372424962444240652807138676315635088092975824115784255256122215177754854934206432816651871576505760947718080436218952768739748505014509355750892207705049041054112648714120447056277410146768252101208658788660154668462511605030965528782144315228224337366834473647133698974182063730124332562078816751460618346007218622113700301486163009831581811560852844909338027534164203096027517083855303943180200618314758666285421367538118598109039994821712944320781795941841667621965574235334533573982541165333599844768864292798509531002463645106794901220803015058680672407818261157736497397302775005822063807012882337124944285910181806817610452127513156826014656648140038837144732018621118957250389992665898192741357824993881757417500438466441427433590100454203015542650334033528330170204103545034108877183376114658759703571333539494477308060727980577033565904535200572138365890705100989474200748711370293682584162568007711122420290040278203046920889947553072519463351237766137839228171927507321536405948066397538025313984305166717263162228928635521380888842542034949311637042890616465994201391950826057580767187771898656107971839928339880904631708816528556059370621132073562278226393473680691903505220419660237319359810078277592910704308619292369021129405855263121144570101889948185619029754022907760884928539045141159295515348162448423055988231697952590390056738079911394188232985525507490345069731523794367621590343127540898944624229000905858057360647889700787765906912932514060152242496757113224820053857654476593031082674500336542008630724388214458338543528176744672065309407148280376338902558742664018162849887848815801563730753136399182430773908963669197080500453355373250252681050247609210124138080359392556344177667449437852961061287786940463753384047564669491591867010876313666899760566626052989938671401964730819268996128399947442313573497781049932191288537237317040837596739907210045326528245383738899403668100154257649094421201721330960522002137962793817844737918330712532005741654750719388208533724887667925310869072554173348287323203823356289447249686141962374888274434867355651485530974545362088880546408024765912149238678504253452807130024958802608718692073235752460207003230071937349796513143249542073541696004163432816403603478142491768083652349391967259108429546018861302897375532120011236746855098384365972692400535147172308935737620088826184794213209194459462379416943617609634551609403737423432609056570650620357890280047607455678826512026437278280900038106877400711343435535457625542409127405895917986139179401648577414115967167519724481019678963840814325048122113153451171955523049341958395765206611188865533241084057295763351632701048634563568465857434960829464285698136656219463084938506151862460162117830265703909911018411831690687141998208160228257964513422195790047613176709823882673703440557830354647743076142521467284654803793739102249991882342214209251656248790830050170255680404631711857572397835713414096293361131446388024084617373470119816272617266223910284017708001920495829375108733089770548434539458595761892661592630963581872892635533159088268779061528605197017357328541868251601507478554738716984445850721464430021674758768212094790944356999182512327503875951706474485168040774067023398166270790572430007048885354140052090151404427992484341341607776626985978478756313015184858332699538902883588211175783961746793781474049933362215144330333779365089300692105421164636434620867222729685311026020480146819728782793769785359822883311433786685211309319604508578490283540015892780110469201939824464020998931511578550073578963197093495330189411503942134353502724128942282269649096666921612380323598049345603548296970948861830562677689439592248072748945592722734200881971485021247523038307818640589119398715284409995335853505125496581215327020167200882945817758828008274104462854476179878684045743236033946239673957341823408517631205067727216695378935211632105845402302226798545067753339221714438719445523145251073750644692256320032650625506085776592695653298092272416504386655492228976862616984252404655424308483049205416425594576538368178301765813896725183270491879457579820224653641329357146675667520241623050774661763130629743325460275469920293807649271472594362459504660925573266794147520583803493816145662705362512319321592606590693358708544205462676479208391055672211473480256064445726171832903293620722412869178059090489846677302333703772774099101811745018052353454701505102468898217560069554278492799532942934407205331244569384294164834378361925646580416481187990388778186511086025638294479791083047922255575479684493587144045154306008443854831531023847413666092380020202829726465226394018786056635059315319994381823331843223472392492562076641640402684650127010030771139872098662104729817338260007482494008831764361533328457646169566491425973457607429565159617793141550407520544361301950223198578453447688643142603440097347002120947507023020949604744932473041442320111892459192414253416733878208446416219082012012426988531736838352967196359535239036244738117029568840720635246335888914850423345627299061077787430856985695220977022724993265298943484044426378227885822111402117913791267839158948972630519047137187083575967350328863291003751325054811811624467269656758506583774799443129472044775569376111872626590396413903961555365892143023416859139378140572554379516132663692998714898062955920683852248537804689106740138368949611603424132216422269534566442567857397869908639628428858832011225278668782072696399701122916620873177677095760048657163440422046189775693138286955435530860663713010233684036749953711044421969836476829955057759221304618592144103422708066828927890465346284942231557860668962714145718538161736882612490749544732590442334207730528745739590979715756473753210529112506316915384840423090977563319475856059406336386509548626756487834706251867149731812143173563301019092475586360231992047229295606514675473097243827302828239615798965607415977687205404661544729014841338134742374391495580285519524172519297520605942687961184909551186897945441006496138929092016464382554675413989895059153717156232067865229380540182093256761270090620065082312409528067804569395509720097357383674447148889835286867368248379783425264509925177329121213752752961136653813439928766973338886411218782462840473272798147803331412844931419901340775678495619192932208963624544305838476721998836509885385788473438311710725155092885624354888522664479537964182216042452703015238435750973995960988902532329837248103329480183958540449200564723257447269579379082667979605613647344161993467018172778731686850774581964939252211455827090477526540989863008487173702727931913211282029998595949274456753198475969840192649481035549909118752062826851183731784786982879827312393729470446767217022711404307016997425936181272540456442556404138899096463950879654611078585401230258641829513795940985916320053637383142905036447093844894015139648107574131002058737678234905569579306822761392302948210332329063339149005566454089721919489081876533896704999359777981020352615871348483346624442125588520124763736953672082580268714030131354957980344986408574820252110352645698037416755336481632295534622650796925407741731273140093656407596703735948097642833075397257241693642386770291802774066526117289028526843945861303677978040674687653374002229062478092451345875102877837526705742089518139009973395897895645643073016321420112443116486016488792968133002203189291534631015958655751815143019923105599065286818996600344282936875299000395795816675713455486858050041358539505960304329954741390859789704218132618813869947445454392308473315815612161823939688211945583629444666958774494054158525351052960157465067913592831335544276660510199437559138209289121639296130233473175743308018560996113915452265109705191177052932275536923149626063448452249264388270645611819751605055103804991923739523080858023270837631741882753810626284211430033887529011514154016062545081084418453933972102823672089973023843237490432464706134688288793419157145727659108126606020981628518888332292136551593394697746565302376404239755705490970241116890754154094774205468685406810683719091952333036246470428138391915860551187747782741315600107604735078289837690907648378315405997557028931655384165824987232928853798970606165759433660757672950603033951194678180623948535475010364808798471467749171698406352565735323476871965567331548935605759508666018138075960937405907346035264621487234247965551140131849167163423064003940971826915619270176625202607193426112218905776084796323902987510879663911592520610176155613967077257181491951682656659001029876777030810323528110248225182500103482722640222166506199053431364516729986650857273805578620155084495265946711007818880364135754605842096155151159309348920279117769053964342847008719584730798308180072632051270153293344499675358475606362313057756984710485079156234162730035129600345401784883023573584804378072968502999877768666177583838893606005929486584308662095278987391000841898714908809470420406916860437905291295368498644866554758604335760143820480566920555994358180111488473069085388399138295042447193158082964808041748800981065241740078274033888296322933987635364407283723864112332671561913040052666649903265807314130674294889649745891492840250862646439587549244051080306357460626433754057840225330895175624634405607073537524316357770577952986494154499984295053093461046200523562978599466052896698809848247490333709684718405651091801334724264326300587769394687851085723156576749923491925055679069456951742192408859930842592532369585029478635577992354793210931808830806129191375483907918853699770336603920970884923026180114733392167361232131046490891450943078054404151959698705120795802568533714292401885505098276618419348984119431097203692893134301709927068240812299138284529193039434505115782110278007281085054076692089723216245849606888146069789287171435920681108681669322289443494040939297370601990202909097821086446874694966608814819907505031546513691101724769520325793009331314356830485655439023831267885442669598371510787001122887755898177729013502747620651258951523855534096067187555880260780827414807015866900848311844385727994251307914417829226870504395965958375199527326596202685927330065145586250743080482645008845555788797853540016490763100959454195965193708454790010411572747903326557969313367796997138566274274309685835928813807753997131622973300386942427008832449295219210227982268530341775274036454077208892141636323763377823339204912727471732646034678698481332420785531010177374710748660367497687379999943213594972262474318512633160890263518013346632218510491079201213683284014976254017359936797139804109970255112593678209093587679768676131809934828399586691446238559779575547979916814097816214677593247343601562328437550043770470633265170282895328132931118505114111816917136807805811347835664307302787444459841526135711054023018278783913988950784057972352025455063596244081666275809203024974787453218735643432223766463309497497991278203806200507738104456740822294710196246057521771683065901175829573422718728481350296697920853692051307690572436172358548157636898789506975132431993272267913151362062172156871352171122804573581809705493591312704074041895461522290165778891614089104315492382020464781665159886732576851849750807884326027255021386441874427451935303162950667708306750533695972547767438984298953425160115375445473069942256669708953326262434743037303506225604728620295006469751512597629529052941573774875085612363974992794970067450478852728364624073822616013764277632344111246367225995563641548054997801434237067638176421915328340082165945334503450031551340804293885240973510855260628938788389727702683575358373712101182074620124934401104044710411935239540630880631756476585303630801794300468125838899444286918209824690209061177892357748968075460389320059143393912391307954450182174673342630851554936252842340662142132242107218596727201229536431552581137151541946301487552938587213800283114817713567349041138822344621323125116420979304827027691420132309152327587722386293639502501670619127231322231441516755557669045522930163068473428535560478266969872646758165365444756409025264499749006724766723518415630830840901328680662679675820191881846506148655102458721741638001199232116591866006219302648665519312515413188057404974537722566261718229886216981841106398949994041924876445969617696998539358768355452283653237599545379756180542164384619007555699375259036719333631148959036726203808075009594964149628563697702987251219354043085984003820428254302508314722633732141411131031878559843563428200568577193660523608941655576372333835638642242886926725564578805769454821225054694014403951728878058521965690541778669489923220428840658344116112557754128147187876680222204094721089342867462851431271452232128724280708545210702604899161112278468450751600654858205211090326897208336413551093960243969427515187005078643619324826955244881563672523123494423269062566055809529752920387462162698696606610921016017012869166350193879389167844988414675494196346322226416109793459222162248628931527703462550904328942793737624335124507437135714237493911341609063850603649751289761334592986514664099029282916845064352660947349063658979896731514587329625283736945287948600045925969478783504093812502447525340212422301335187993516841384605942141449581514370433947276177102073324376066298122611253163482345843651091847907169577912513968645598537795822139160458335661516735919784450462876566925980079194224621430037117785608728563611216939530780895425806246796081689243860647106387275086876149730826906571677754028351213303265037980807764524312025483486217880239562761870083279744436768757483857460555938685180477117566767133156062003816399630347293087310138722626899987384525392713748804148622516419779769015896601948400053386145872870622385886238613694888935368113397466401921704171929337735774987847873655825538133035879948545134665944802157686732563893113695682338982265475024512077309265528282216872897266064933952066423089931145523582708529655813546997645681267887781916114568967988398487719979674513257072739057899175604531857540397406364703363553120711896241977035949815546120333040651237630201465534760547612014774951047439403208691207457417044904309484291463892635469435073670644550128047394541286605499115507538067819701315270651464740413779880129961973696779588091907594041378400201567418588953843694881961009461361412315739908924173653751437762691610644329765465283250584571793945912962704129260966174661771477808867207606872880238141334018131386654744353301118738837482937834057997261067052304089027561307262994613710629645392053276162770368534610851209899210062883881735990916162307433365403929220534013207243824394572659357331458402852088433433468437902515622402787962538392046533814557539033657315834148439330354237219101934850319956581249748374094430091075404288964105882026457394691647694135073364444221588911258858013149122898010555014938166472099085555363988779557729562817892727150415827495187881940572774943404959390567429015063974479929632777619300889190412949030835577625698293831997383046329258064509013004914314375700932180582868956196881799235170320134756458329342462597925352376086637056168036457841659795711287711186328786432782737573588892322471272986637007643787302163616448930514603467258161463037054242383029592665737106363262696958785265468018418606653160773808770002131973995205325858022904130828692224063141238034648759864501521121098762725063296054935376464501814851527326473632431307713610512159047535177590092541019669238929108832012861588817507868267479150861549011089154510160957808215986238979869453532769925885689274837455175676456963586701175420963239615417953572232816162320022377034998202753035327043771633754006578596070307399791602325494711778225215607418740832371162274691866864924418296728876724230933378586218978765903747604127244710642753640789237495309905769578769317229295606828165611400428888324300648362940995989769581470270867961838345247978493959824458899461729921274942165763708413117970108778897764617862452366334042235601420535970302158522621082224397929512115333250511344050431367933345102199101420588232330194285658408973970488635106010048886487429405233952801434331850122993483385823635464049252648587701352178980015677350905776036337314461717668626887766397518292442347363670515126978871123789318346195955654849151373660780505667776993275534102176206091858640424640058544809634274654799157677936042243476009949288737797790239724908641533398047186999424151431556186121321683513509638404450285877345363060788797273775896660902596350543789499442942638204203359698208324956243269973894578573156040765278589883294438861316640733472618032635474768655331641753593171012626170133422585368727919033201332803109323167968788754054749884370624582464885593976271229207131578195093711701527088342151949094180326039531938282568586552715175778277720000381978690308034441804763304742302851979089970171454490443393975100345735846015615069192040077993015514605392475910603833136080436444681934035393821090704343678035920566788659956400731257279733047213709347763359549967523408795144384631102818536305461420432990814794760025059006728105059677003726685833077810891339361222399596424891024308930737340834265738702696009933285026054650610291411784082754472976271854208192611908974347559947874062302517979855176359736418133259644340970665690167701560644045066315433570133838754906996899382457725795844754241639303813040483070015843458075262462310557776701079815391145333490544511154185853863834402336863908077985115893813673218982391869911874576041441800819096758230471757279516373183166442879385100440456615800860249481468735203999060697359392389017839409769412549624364882215952578265642381885754926899767151795345124589566005344867347050626406919473859218702993649620572096903248628173997653848935648279220442537597167292985326652499998774948114861020822354379716230799085734479428034898192198600154869129771273630803752811310200449602251022951288816181061835508702370460092125978610598206944348334284061019183322997289133354265235264086295073778444198142666153800073621807544291376423402923820134772964946776132140111363718885902668647583283438207304105281746314386231299815247959667518169037665897183562100043706357724279771504798346883603756953005569714687719244019149786360450809968739608789725395137854846190605814435508728509807796332136228347366201193992511874555508135819817478638675307221826712572623353398167544049159099983385338011452804404223842282580140629208269935880931532499954205183798878517888311627386295945438913019409759715133355563133839542390200662187932763544053983175430511077264873346704152975958829345702450932564176839711547642434902335792102252355124257997798478438410626029264721836163304678472318220087667958800435986644709236391582979070589529830137726786825266418870392175031706204152569684041549817993876998789782912477705676198865824878219062591523671389560678428961575812089491491835836411847297781879126135412440988488440600393745560834568712887659330799611244639924009663923954916621963524588783154791916437106612736929539676265729865333651019756697505859981992168422775735335030973465392740410530051987375050506585789323890310983696215882603240713315653009659694423977173671321534458423180008277445737826615058690255707987414120269424120844028517792686513908729554006783683081908436427491662475841133013670758552105771976760661632647204713310454197621769776362433718107618733343652781031187473201741110261195131091429085718354055425652548943861347596312899194790442805240233939071094660195569009534892160329426952039235935109422935188784745104186803545347106921534036801704687185916839964269630462602323414963234010085738861908713987204777594039340159482276418151311492309346932892618071912683855553190736572918790842178185473174690993575478453511901309841407189595918625434561062351495636983822094076849522285448294123441286809219233616799794476939015870084621895855619894207225229327063755312975255001218768918054572150113593564785359472609389257272484377414277280400024758468373134340014118266733710937195703300640196527758249250884144459918133822906405637089244916016759960007317422493758217675493804859714672861746743443104196397296399611897456410413647142589563082420832157278139713021556040769061974304536974606315331221367207391325809332428530273241374810627473858100846189654983190594627469235819708115728918309714070687822627086555772702080055420568382764656683440703059054133806127183000698129771798979223802646792136472118021107932735015340605418687534356481156749619977777700128210897402543425237643458456151493265549476326923538334356050079258331569736116906694924218288723220447377241293769068094532653147921468210843007914251237352003793316816880575466458669210038184779220531323766009426333060818961288490143984075778050898227830272169918347528396449538957575847217352783953779072571345957809285028890587980746585374007530684597992440861707289108679311599336432850445050923844224387376299177663063522375189104343584736975570746013418784715913029138256098318964812409254459201564302445558630082465714387439067371657140293373422341649889045538562573346773536609915517984331074788004901263800594549477340436533976416040545464126292980403067741073484185393452336623204202851081247111761964329924376265551813175328051332714440277377885539048668940317058932493200124523963026496566100034283974031077629144033536994121468133981132441625013394263003365083020171808922684786629898352200336297159178608738930291082916780757100726457282107969493051929555285343026471606007424222556213407574043575206258539753087147915107651656887978499221629366631474998939466075139363801402535474114658384862228004611305822788289723761619077103466056878390145536820042100956884337765110950085576235562296834792471352918506014224995301093462650406239901832431680180107518794161984483004327690084886413816862347501856508992731416374967250536867137530296703567864163282791574354798874395981660358293653410889136836027494690159099714922346651423653668879800374619780958616055708593686779317902310578722907198181749991157282327867244301136908884909758866343987933910539364494728661614388759656406234574763450584174652546410885595244133006946692745195917221834967295947241478423381879702417822833089545092711931781821034145433818705933582884419928280829162030952240243342133461270341150920122327776956188462332742016535554190582631240649278108524868718013914529210460391062872291340294909923117690483171830537826232603652837215235554088041583524445468566642869798715107068145364230622808052298307837490598735208404505861346619038299787510605133953935829728401828133528093341960043490127908339380722001342205436096545019921108561084471101436240287714616636634034440511703704999383179200692607714037857567279889596744599080116558309979014140045602798545594990528770673815876502891450605402427848431605322773243090202426560690731246444040192745028200860073374054694389053301693340827126846387393238628912066244584003906539600989825793697554514673573378960618135333051995661701845121420893216939992333730651755912005100036814147613110530269032640732180072303051266762817200056261373234550771308422565354689668505485028029649515205097298631869268140353813456573801492498250117002295145663328672306808002371697541020678166324368331944707139959120888625268265393797111980436921389924769104350724839114438628389925880811720611170912460615203148523991681120685454804851253842630615154189396416917334132751792612311553752913321481987319713396135214795132982422014378073794493108809846482602027847635602014226474016744952069353454150068882643337574810717841990877437989552894359436999622615439310180640968107586144583666663175178596299471315961907620352248811514337923097118439721929138202804495665850011465021101535966002789385884591365676539405935120154994951998337565983220135079597126513981258612702590545285993213348730166645671105915854558233946547133359388919626749184596912130271640279659989804767849388145842245967671839474938341289032170411575894949354949378849715221728056596173197761649479868616551597305683853859485670890412090008481716374623030901947966449236997985380882260541528919958924645154965588213409194861967219708786052187023713382122910304590746715048557323556253853612333925961464403639353369963301478437655433010422771267568801369338567197834032682768596107970443296391299152569747017431495440906549448111690053415063233417025906550368814858237680800155420733593321841834425571123663353432901357137564336646305899722502187802358369120967199502851135150268527545233644386817329919822981771538007029087940747331639728300204080039504377937106285357237810189012783686679609846321339133256699496143012132073357207558751949658702045541283772706444305609527495335535486564190648549103810975391124162414230129464552193870799852696380255403995996284332668783848751485169463975293983982255958091514257368120830462857252587487467356134807723614250753186965069161162407241048665640526899351379698656545189501851945192541429276988826436077484657289257271180060565934619600361285969841759184623963254456618047359572292027677781151740384506436894362368927238977338023577004166727989034631320042365482237272639476456871524917423290099049053040839030270338115116857832173938460760935566787104294492354822875295943587412653858663454606291851023125962182175643101318759045117609938295483591720432821431066321085552015126566804092939752644729109304014471309281172004938050429654882748635309084766934537841869053229063510668455280456719524870677343794300728918037634207685019868911386203216247421200693697224326914477661513899825403731523377683999777985395081087259676476723892336099218723978797029176472768818147688741035947631008438597484029049235400875876298084345708756416294415020790252433745787513679947332790992466369851124171650038129436273336070075408352893037117322981515956663378062393141543280763543306224596180631223454827919440642854873784387195459148208788397237059117434737807515704946779215654143391714532591401551971299289823794128795415544112401321284092019476144536599629440151865294632270306007727203856760086918095090283214809341293225163901841255125503771948263554393515922653414742378783345537629361093208098866254380601824952496527625264332677297842112456242282736025710564471915885808144420611569482567940146646907217187078396142843288581598584336176878942286403041252354836487764865513097786355471609407587002973738124151448252460616728144849380406059062752845565800211016517563146249545364146848262239012683063706070010117645532519591748865429916725425289098743706758624239076593471762079801127540287903973538681146140393264905132195372010240839733214169086787518917284136679388136790603191687613924619860408288466965349595837958740612345058481990611293931968472630146302436446921594299960869983911452359318032658475585389715080818806285043940551676834184923898764348148713716288807985752974297408289403082570841954593199439428122275175846362564522296220085681671639758160769522245662653771044631852845286894685616729193443453608188195885285047908213261031583426506023662836328330146052543112673166831126631035307829411386862340826429954104244435028653239493041059634673425589541725626654253676303628535916819861045283909379680756154041145587584603032194919184319509232624157752810014963542709645525282386842602999199468929597064967880211697894689589581473909330475328500172777274073492398195096035785681026651506146445758745104095291630011110626908569796504268997778860642855643298987932838518147856523726298342370285963271797489131331307201485822661683955234244253038409434606768821555524554802721524659855516423090453899632991314115493860949578253640129828156412437552984429084300423164046077474562419973143129921551974785485761476382557174943987770588946347086966182577080049372583949373857816235356780396946482464454985895393868375670937547686287481381446973684722697067102404149496863905231154277617305669014433612339150830565573630587387134923917491239998531980768736586916481787490104476640822450483905433650564205481571956773697334598276619591916877654605158704779172826457994173446884977032259148927912300285135692397480754806442313859762410979336451041265603412062409735312294684781277284773501985923679945223214924231719663228741387013008035929129632118936888145792561586189613038439504445393428586369266605774052663847571453705222312708039375848403151799646040500220635949172559203750497286808896383654571796356027864470078843355985228601739490336285653438398800283759451688244238242184815499929863099527306024301059120744476529793357384539126228091189072109700708834229696116429818886417531566226160202029134245831079969028254483233234226651734975099391563827304616559783616137109160467285283746520342575026180211942493164711034695160128685469106930899180330731293623050860940775881752886248701369221752423880436585660010531219953634988921895085147825630378593410691603391513922488093470879117262982077672889517459692659870298471791315149295395757778951625516950805830410980560364658222699346461989059157827821351721132032566753658435794699045378370543652630594381005339797119340546624090310147701113353853204203258817305851754974397187380678853689051552550603819904422494534464673348411143248285838268120479478927952853801376210384999123604119374886616427704685003594211810905185647735794116240658837442513025106460738722062709869195972175417510111983957024506547363169743568857810207614194865897299964758610005269724585919451873800790064018512956683706104464176207632436438331046148023391306303850777257364860612867892522808637898670439853875010974581028005985612681093026656786796897682024978893733079718240824409082356368692712197920837881965412134361896708494502154899446835766984496654089302307617983235944365820622084318848328033950239655832314215209474976623553862172144119262385740795075895914537074968902676091360440270553088481826101017972758284189144280826340187807808669750780676784453112854406417369087949675684886149201327795165617117905340640541870881432455489261690696399968879248341136458158714937628340475410494398624596261868183473819014054882536920339802708150142064418897432067645473536906667588710983404165730199595128003479240376390977280180731046495510887681037644112710194221807647920455464072067685807731630793914722622748403770863565041624582238695413098538568004516286491921726921832490862849436614847034060924261401172851306029240552362852461431777949749794061323127172876051962620372902214605693163055534276707896734064410749865806924158396259227627131576261322784648443102950768604656814440625189487514299922246777090156031639483606439536668547266355860978942812675394294967618304713890421231112096807610899304640924612070912150603794705645805543322066085312227673435532790930687153321194121259102321518975914842484276327185347708769939829617769098732337628327036241547630241807880784044512079614740541475281021462209344884969144867609313102942315344000782902435046797028958994085506897815243344117587086632333206841681546603667576252673004522970311009685612884259815018369895748520573920525008860718790167974120864340357329240586617665559735347940465286953616426407039019844363289143230304244066436478659052993748070951196804146466247309067379927177197116119497848236785521621813382471659502533574570725788688160388607684702752871056911222668906388488656122814429714212546944195443673854536930441527409418112527266658938468981763594038153433437246413778097589097055074440157953508409850531030658101172543885493319581146464127357988479688463776118787207673301594183626704303562971474664760778895959366310561375543682413859481699325691814778425066798725044110771290408070177130981036094466167912662243307422572339714863405859597564045830011087730466108513905347356935850852068973409398010562989962299586666488626758925210215375859639204682609730736435235904345121160754803572911147724337338168254447054524561750872533358419333970883455878609749352366010212594311041107598870675696215219956340538203807076818348352910808518656271852183562746912322023684410875941961417040597417553930514333349044315814288219867319342449984053411449741713612406850053547253708415443176673305415873109945997497963722357589382387972722876637251785537832837105257751192655823311936988923966105180261472958660980164269947740136874989382155945246487081145865233702885077752397676353293792660151335040949152496782465949606601849395876229629009998838259756381038923830584312956056384483381371346286434648888224059500396292168272292468006567898676340935876571912793025092129553026656244072872628963620440241348415843600086492123368548477046106241993284741544725890656881245558777946845413406586858434478187397647273998726877540867811445264184761168188955756479313458033342727274705681057014590094805291836009877121012467481660695977092850592629377126648297436311534755584257249675075104411252462623253246774113723425939278368807953052265724796922158408843000710068877572544095914203468017083728333695093147494899653495526316767354280786190634536852372145609225322957731410502455402209404954363078673334949174497454230329727778342824613003060646827301215784251578876537741897749447329308412292629866179492638262442563731682568116701291023314562204750048567063400630383369819131284466509690245373612858628923991306805384841678130063548168305662987042260756441527274753776682224053771502613835859187127776113430946364606367432847556127029890043062088024416148342771420295192858534640538571778496330043341741139745032969673576589224982061390571438698325235550406139443890166872682719463584669261334416205144518351547657062459634490650406519916904170278484336225043698007408128798939170912446099551724633599773872641303169974825381302691620921917158782071475608641578000730634896601597977456428310057690726165834046318727069681721628806452437075820624199905003518247908271973475848553896486329042952767038868843088471615135049437631029665687785689094507308293889128892458876181701680835794556724072751806931446912766855740455004757558955042723825198549140294907263969668501382717392449850289496230550786568411671913987784066550060793783887629573492060065629002573856466857893338699373213349035640707922676025656940277342731699165114194498880657582760570711364865247551428358904535080725875073187667535541333945673682672938556989775240837680719814588646829139853411992860681431344390108738961063438795158035691120983365357314699638716691577714361446398710696041142214720144138310380902149678390045614744953414802363075758157220671436125403498461204978716455747043388013385094301790276456021857529955494547423788078163697783342307063220803733541927256809983545138679381729889573462286027813269626789032819810679142179324408538139754239244267786001661145486088697161946407917963083404681007210850223509982080631422942662479508507908404143309871430339142858754425844679602847272517440007959035522468220827445955994896664834856495533772189162247147329114650000946413408491119888422212779659948164157883281099237296940406582982861248917248168037222454013149772812231683031948343225787847685556300054483448994403054766202572734335639925556858917600204649253102771186383137274528758920535639419224360261335706793836652322585923440912261204845099939983316264729976147827285564373000287848029525072196598183057728005612503776448602925025427000079462319517604564718495534035490596487350329830280229379617570621166346064702907944776406678503911857205862566810737741084270985581819970500722065780660655702402823340179792562162916685584223977736324021452011905142892787698194809484094359245602469282953826466274765642471270004746254667910250085994948691559369960748471889080018581288772978160201330727208418882712448793589238818368583615479440537459236317198812641093598929454250979570070566930656262363381845936204037503275277260275937248527756681784752798450496844538683015064633586793401383440476236437041328461949417006308508291273150842547319919901045607319158149319621255955862991495371522313931427435222043569471010503095058525102150173497813461921026183877819473778473518740531792425353789792270651862083531800003637042801496399243201838142773114939536857810868596144802515112694527477199948818472578340349946130029071703527561218024169145021105550998500498169721574177422120323109379949946589834984876192816907395426624790784675929610717492910637349378447494715048558462576094074914954531977187602715835100474273842321722812048189563929213214930292631564760703268474786437663342653865222800560612019304576326767671426114233383990216838501712519818341642204107184640441278347830770955492601147118820625147354610825398663703868239411237127319215268355152710707504846326667065736086256862170386490731526401048657295870453775292790346481118819793306782130399729959663425917921621363453100533311007567072901138765503983491034719370183642261474594560092312430194095925246974303376656292439230873253779689582166143771164208018619187493855704212111053295922232923962633806135955291585829490200885802074068005770652001227545773979711623501114076124746334112460044876119944581362696077435281026599595246887093631055738533944642357770022815125899300806235207457397622580472283276213970741202179361356745729838636670125173226776413100438667281850016695990272124551639790212039027010103889447391704786167727231672328633155889131544864503974976061446495915086220203436110229369256925989165798094788885414298507174342589462848985810590085666400062287674751240712547089177824931447774362554383775584385464328415209295502806361297797850243009500177086279515903023441678062498327122734642891107087524978790313354769213354773697525472688076072063043376059326270938255817689307640377374801658125902771067308247909011315300647664239193807099586958787013187218142403225388212169592415574141908675662000970482175713911823640524167763643938805415821198848556120865901027149304013074334381454708041668025596315977354266895562240845431347900969848320820100261895014020812899637196778452558896336911185131682895406966840791852215263133926524915495511436524046962341935776801526916493104439693301329334908353822592957410565959625202198146022222854314381070879302099150747998334512469693414470802867499302427396329937697892430774902593642296372701854124498051947522888492734585075866122075187872722173659396039114063923103266031309784283022567767522294719817194114099056139560218304649415257232935156426723350541671533210580166608772307544647330031253644752978035980010501868853227796344160052191492328703146616968817241755917812388414899706996452570817070179343085922134125934493905744717904711143481943755240249114255140873317959757057866370972321899490454603584208391788364666568405074524377304773266146791254199314169398505916196938775885875033950939677906083282197218459083213377684253272967254972862308164143629170288460711718777021127371141551588679472706789843873116058982649804693521303100336729180679755804860100728585429499483901004376475077405490910739400636947747441257279411582133767644684947389141833320201304505556696468530187206224959239887374322095533925717027807773147127765159619478828142294337686096484637477465672796184325735057643619455349688557294769174807085081839272495048359373153563389311629565627102617103140149783041837106987498196021774279987943284734409521460590299001119925640677791901751076211825411935788958940909476671386397379072216659026894883908111069336294376349081291954098678507135755083265382865164541970483342864030996436554857597503610508305880255000796981597414283179337842287126481952962722746848312662692774553293209673256550444465614175503776699994824792732189916948430544235235432948097115597004319843833053743859363134374369113676354205974162309696672078456544758425497737038471304782985057232837854783773692891403967705569612601811740868788333185960815505703209265862298730448907447869908345358919630180738794726618387992438240645602994018404675259441637402719796439463364603449450901065405926760270433484109079488156498022481482678713643265249941598068183759149419606550962362866224899056452788199853576594171445237067805450345694240145521482367976221627573742632731946803540219668776442785117059078307389163434090716089826490576485202548101204459871164753744040755818598272866828958119128895914353070903602934697331133327559463299602493324489326533255510609825482652981763810658991001850016824117220696101617426963956187523596664849746847509086828577155174509160369016652355045850486206669965894226590118895389399121428978394939486340454171746994408578408536383534365290325285406027376600242953094866412186025639540870663781231655894006900831017128744465752982412916513293801684844041307153864625160294811277909316202405240424718579755718157750953606022489085172449817961821213808479612677434198431145109880744914498053025398626821841851801252812473624802280041930301013685391006377899383974170424260862161620069067389683665088304607514458569039699137063879885874877707914767344228147028037916374311955986875501308800809266026759483385866596274662312938506354851951821972743852910515496674388566734168634417390037976037369146300899749424337124805051838505860519796362590802411893812178520905345610288801541644401659208748753150138067354020354268712535459531025152541948058822366128465461337724416650252769830242197335562627743175605281573526375688839824294775963361652584228216482702454008516357643397043125138515196158665622347093034510123926687717345735875031559580447343470318776123324475224423096001860676699947327832003378053570783721332266055133238716246385681013215937148652131107214070285682996727619669211702244983939735543723951409161298755131060492334812478970200634111336085868469815935375451685396653690862384390202675509036316776238554192511947102424862116920557956017146975641656569172490064882872347718810074240391443222647689810521617645734273590500145858908510664569644067250878241588364742077880143576126831031736240111306982272353233064513198581849731645733547980704840689169206771228140772822403085937840860062075581628964927749673813700876935626551932703132461999153255939869542659546992220432820590053080524545407469510693766861692606309316930779413705764240337667975253712638397682377987063027938816740255907617896436265422622632061799157069944638523270174297838523073285555717914009837913975265652988195338457673979972753239944597075818458191042859224414599470501207486178065527556950987880006916325302678980925860298221857350950353888118075106236525319061052407917981153300489039736900090712250111652264753054629991617218238335002712441373436937314747397436589174768610433884125080444828450112648094313951909224417492512246306068847443120204529561590034172809709966095822222403743518584530556684899980560669405155295252584183644071607084609877056247726506150202601575719465752633600955020776884808157051058184426183190202571961408341148535712287153320664417763579101970494634969200991326692101911507649197184208913875391925649046705224102815085269978261764089267604041171262502045333329294161457546661835983050983926156281941647560951081327180092249740593154615249519846948218541606844872359945931237255393782013178102834732369216601770444212800424459181292792395043932002513758250212194824099501919550362082073131310298624483395682600209535898829024193243088950224143990702382163310614342269000762751700426812170679375572640996558932436541272685150849447597425445579997306808961639788353671203615363991015281976724216380515288021906602572912359094938899143375105454055627750707338816380448303050410601599432072937448909689297863413621533573011350381254261516079352968737086389096658495630336586365823315526223756770511784333861492215121383611556929693430283754857447421434014515760665330411111747514788801117777968351557161761516828644360044737999988371188137510622758014635947130271639350350690387364775513528409520698569548537613493837674439228739982518386789120788957293935223355592371820590386564841849770791538040688309016477802329400715004155069568525075181124354234030612282933005281695296904784588965553280592145124746144752652876925389976897040332655274335247951148648684093506432556278887247338764676766548497439313703358118585212355433220396335133842754207664574036950941186805743192908870232473699103702596284814480848917806003090766152385855404545719095029374562111050941482041575415874930514268993906401704388308040961054136276935114304933986462626153573783854188539527280102237039767628997906139114255035413624879305890837252542728623421189999908545255997908159775519839316231935448616818037482592431747691042071894006873149777941338259614773160087344093806938134416420408724234943480098855985204138515848426283303649869378754300552388531679860570122476565241391683479985310207414760174974472295324777829982305518911830991513678327893711592187688837327370983255413135265403998129769646877085750898176456991780042568793026756787125596214402264359864809955459820125838515257345875426060435878831597400253199224347187187131083954652664827727460935310772652923745335195698056791787303450480576188044273499742508146483352707167718079219749614811617947882182528491781130688864355165587137268037641127422355736003137180666602386973755790021318990982748412214980395881625004819736262912379818999541973470846660925253733029129495987848610983995082587397838322282655904130001166646134863701856091995176301839740487435501352765066135950037334655828430779217836436942987023798229588616864824802046221198077489467075042101688149760112034000832908833025989046588832020917943180391162397352933790031483205148120812634564471806753593826997386628435748427914681536718348422002483397094337453156211431594326629556893689700446874347273867703905423143076187918406288209288214579051259583772779603358498906875599079037748587124909434880957861219934827278089130416763758679789439135481354496173123621974961268424861754418133876698301971069766926185531001856198387756674038151406785918905403282221482232447019836688546458667250171767528615102955947370307334789300682617128989381856955457891744928225731751821855556606362941152858175204241755933039791289096233938413600861365465866054865144368912479515703920079653267207517616850631667293359707014728293818093983171081687740047029861378645707112546942826949050307009403890908837525944209389945597079104498437542184236098695569408925617596358743406706029496151780854086500836078187618610574949457251074657316161665903970428537202055641620739046173391344005972203152142742886844072422683698420996490295087927128221548675626129279361694574164874830746335240222193989165835927025525260780744099420341536362797265230498485043217464237324173589836266721043011449309169202389735125823074117254112232117816219282819257608176369575470391547537428172154400418810732614846171939620691594994236445306486731570523214866412138437620849011704471345498147423642731430816185273392701902507918352773660458315452281116143910484040836785301175633603886502905294323744079315646339753442535174208830814075124338361060143431676152578100289201239221162816235194048089325786243520457871367430111175980700832542719999117411900156619140869348163637875931759403903838445383459916456472777865527695774936795788656277087360331079003665034104509468004371949857134151702193732258561326660528543301672614686845359798463313244750257183293922749362423505903935253711311190436979069591009117361483332601946680599897815167222607114833382600862716632467730126520876674990291187111849383931234004446898651982938663964558870602981924989748520272077201530967238428687170503963553244151437217060493594912114967887878489795320183534764771300455081179296010725307103431862922997208089565253009352729919210303774386670716030431462118359284121996403344785420006766217484298628065932046521891078619677673024803422154052639561168649122170625203395295767228374854304770304064936510466095059190879732874575256845105135837139439458145496313976202527356647589457352156121593044396782710615107413132461388570306458232471410626387014726788373057733264723542858802273361432482593061895662506359352180276566784711268018150732148033753256600206782048807578672293455477926312366721329231846496083306827845537575411050061575007185255002609070397275995451353052495500341558894091724396856113881911608462355780596748697262819811359584175348798358052819201343908252014506605145703860509730165423210630651641533698861824551300230100051884935884691771504708199585619890089763586584046550521529180670256825476415863121527020806634183737636104765104828838145682740094870985210378127409519446480124889022330213862585121818526114634138101168628861070737988635000571081725412263589334192639634804872734034647090338019371445029528440079631856186611068089155715108671078020623164993316749740714929212680414851858024528705702043755123511739832702209765422695766539315627246088623616844422201255561163587784388929741983374933077843245110297688562960679793349700597853277531874346856336691780081253506599033036083082811993622417216518248537475208265610476276886262154073990219364575965442237830905931999570510603708075335814963599391266213438659073162268766178499150242704438307342114709239973046911328444764035204355896327736491288751838765370831833762847146661793241197233504893152674940332757179047572694801014778834835042369001954850971423430155731598522911883932946043265369882418555936641636710076614745433176161923129952643149875204589105840885422142455892770855314057829132038840401464130608747467400041197467105845528880771939139733915636702432306101129473689995744929553996460893312423167671729896572056854695790169846908785276239657114423727329211564152942643637271223097160210660011716180234223223868954770846102570395256931909096763530873632766627065025422217325111898002755102909682069051641097679079416166348582058937480596795417105551364096542426688989828971622824210314381287938605317769956653735487263355469797501082606441656247608832651534133366932414137629845589608154828951359769324147655147211141650909602190882862506764504085758934804897460047083549330161728894122254205691844586942043419138059082932665970719289615167755103243564809389056804513704986313976290521579222253904327772435728036295502487170402394382054102452627958598481263497751477195982400008979477608338555568284968296394085090824719961395654815812468767194868506425608995432110116480682128037094648605482086138736604721024879873446661521129597163830123159440175683575355682329093805755475631663454349127934394736141858003916530815850663237567007574171530087159180652134502287608985795898464673875841447534602336786821806350757916667786812798241906336498916100975756839649162850815150474076291884006370794242969489662246447949977873528066287493388657859456144020022932998493411394326950519284560709927260911476193618008665012745498066203489799528692175326270954915596190816565056772026754686250151370000512970866996746075233661315970463995198584119277466088736055662200116557839031828141897205038081776479956403234675247047884425141161656630594600667637643761247071796554005692666961657781510680665910065814007886805409637605208631276107930850073394365473181635085505936392084648423797327879389978752712001560383391456456682971251729269838229577742423131207579949062872053913613667794401665438491771942999550964529120356082865084287493051731330875764956450018843975609948408044683843948211094989915035413944492313837181085503232265841758242823290020917291415882432506173719122858474848224004173160913969351966548915774534814961228534123038021006172464840753118682755988038439309500642033909596321937208237416433471319543525792434068002912269891722656726526607932575979671361531551640240051283786928054256117874260833756330189791043769955132516597349480365492620598560007401742185996208494623364597592870259971955773215206673255231463869565550403083021490424019459282515153499286633279382904502698781697203000575545652342051473452465422529281077584013092790190182498347182830603267078671203616226857529105141177629806121106944244983323354332440256747515968237675834281125718631572335191659051569332516062153091335787944603142895136147020788845819688076270074153235295792783036599577180532416481211069468972215735522615232097322352936380330359259307108439961113201268250862135886354385946961595825356854257710515103237238410346370830317783757364977526703652183495050913723866884677343798521745208987811411123859185571664750843657361445588719461549140969851975107803753128754668080130624851654417477740928095909642944420137671788846083601423544934646548869343925177596416137807892959813417925794058544590323314444466769124808427399215369249991558081416127223499304455468842385833889264595705206716005905883399490434490968894836648313706833251760543576026780140561729553421920113664579331155308970625125765935368575310740886121585993311639517407368675301575735788891788074348266259494983567623349947542072432662638732863115302723317631146642132339790435674939065354589526134312444336440227970909511101242302346306625398966616256653279202969941350380788216311380104968922453742824012517338144976841616321898086188868677104738940953397884567520742568155037453050938704830464378914437981138666668809364819082030520429329102136857604065917053920901101130047059837560902541223408341051850692448327556213127393424318525792107081005930802959899244375891579436078742229645104879914891254485919116370732849087862466620017584837799726308678100748410620347871694739232059976298444876013210471898554809127919671943414529008115643567794120383484826261278698298621072329660024836775704183602137220490664185216329220326271478670080260954620771543753484042227879540739546909820035636286622056961865655685469104479125504715810705613934293351015778122420745718573030201412374032458348801510654307612516982716949918405758656754412768388158267992353989768429169709501147894250382210611260212988648326739163423929607322694614058179629788099435743013247327537144540215168927161313596384924374170198580009881821795531004093179236484062020411198165514902208148758249589060425622711161961197173281613037181041644877723829228422843604928056397553551701079078565860586024858755821671623000697043179656166887631434254295846356777397007223478934464358419788291127058567328419529773167444525373905733185984053854745398883322653312490331048889749626689754047327108253449458191630283923087702677416780921620207016960480436624776220894477737394920421802613535467789334606138804498676861762853702005759384331339416893316977988422532164458829534041045661788114847796638562563823699959607057845048679980807957534937048338369970591148022510670464358566425778569319798225726987046080476441588296457470346199480523774115401873442497699195086222358724374315777680446959381916481034148161385440805075668141063122749841708751650407176161175224486240439223355982293764652337237016755791407662225711195532407011079080145564160660819475901672201496367120254915092463789515023533070137331370853770434987848536211448888825734992839978443150136261980649545043078943746887434782520215622577850326016257953473116795276215883054493154940410168668053355125778073364005445404904239794377148695319188081783186303766280014299901604767124006392491762479125522038011800433188089325031271105724390050789325742987439864074715869642003990105804075643876924347445850896164400335530283787076236107793745958148246014571596752554740193707100528356576590529527559850006871093640238981607696179528413097801553642551126641810053142175839284502159505163676906217649300486208641603697975898302570423741410239911767322941353751407921055081027406648288857389202761840792797113259929633249910718346887818079337255612613875507148201528689256815053473374157245633485928264048157690225064038293639746683880821125222185180787196341450342233186390490263181993019823875265391383641363197056749207685374459998380585504267452967380611464196584312630241593195531584572169545072037866707937525100896220607334440949572613650756754571421329373497481939680151275223215838755203554777178443571773973034214655437179603810378854212581488884140936729924085617515179330492148222662555632260171394652554369026406288150581478974476048937604142055942442384287301067531310991380578787173152202141177863676008187783191004585956247174112927163450350445948233565058555323306954743067157941333640918974150745134076688650783045563238903568482027156556138790476451594890513046208205577101333855197160122674382406320586480521193809707413387352566874124254992479921918058286483479114001070158122111872301411542465289402758470369214683316624993765143057847031532131241596897837051527537418573953946049477767600273878107454830516401759974785518770881080536924141971193903010872024770675233233244595276925387052626051952196871103092150965757818804546561714639321660369277933875952704558753166719088270759188971130510952852251103445532128666936175827657857648479421703674841815514767103757287701618662249236111659877246181838583020176343031032013971353591040692136637439562803261071967177199673625977368073643802413511004031824503739149931559866267682996319257516805602631655943714797158062848645931706021012579923205570445551502029936352617910734042751200698926244643094488156723645026922133337475058977250351196962529909441532386979330640786701544544543498382069362729458375583450711634701003568295873455573707302765037262420430807006921474569633714563343060178524308949464174044400758296122603186123839382460489550272710062281708534460396654396298681207629878029955846968614848643160830910992925907767679938426778004870815599264090223271323819116304560990475869049879430797669317033658972845110034717578493191967583339831299032185878180963803448192310159970840090416210310748044695043786052293659988856994710413529985083674617373968774656957960653081550106475164375115840508490394196566121035102294045538014577376844338257940413015916115687524700808253869202687597239190690875205629498610510132983479225256990524189924147071439675265410308385363042178089021135123700260023875775288238190580571230361486893395068959250265837545319972554656941247068642556317814841517391848335514977318893953163135734196989729213075076414729024555117348483266781734467924042510500911232407738877046416918435073651503637603568825591633781705703050098272587255314096057379263453117745574953156344140040526514800182231458879708348883018811362637834491718119774497274794850458460877786639725526549915131934947408077401938154657770502484545698260036270015080620904440463497230035012131363764977607304496306677758196775324073996600647354753243482069020666644699071414059414689627248544588695358551512718487243641426338124827781092120928501064111242373280242050017286750350552382592260946557651881756385364004940575928011746562324475954856389642800948179804725532382220809804729744412881686721247593965605609087621952927734870338756308397349895833650769775129186572351679900509820756956808910007229172913192310933637099164655804239375492054467313230638751118688046877242415554569684285108545257560935640744316635975279107906768785319853026531727982988126171636198422014668786380134432254851849545062749839927757269386517501003358309358897806729201025830573294335625474594473141928157711314135128337292387884524475262840380212731628399663873091560454834055644485461450399557371045996936287932032252431360590423473234998500048327917410847766604389211232057452302211214902354898560012955399923759259807583977864486211648259205670884672361954142451884254922191426380866663159988328960847590042501472183551146910872589347990003375060968204004265311241816726760561613878121964312656611889402199012268772176019380802891504517010228851597255906825729339049345757277385769705033806447180775725293691617685370803452027628767541533169756932868044280527452840239631355750060505351991533846956990048869020755717662689459367403833280021286006435029429489515611030430012712401430273847996258090865631205217433123286831967782617577763640251733026344063605863710276259185068625998797679476365630821631516439056873863507500643187921908152368661008241169389713681391145217524186041867975722034463565408537221984326256105463521898852767466779891191983865903881465218610504543082685162866000426032646713334468077971132888446830144173542775420849575763526389240098428013083692851277478956523118613817279253010625150797761282999110757658860066224363215996237382366851455302777370629751363081653208059248593686410630948881138359365248223128215925116152889267602863825749662703185025486563809308397627398224843452520830488290376053036055000812559028404618491277086871038886668251474183749488993062807921909122798837967091848954448077359522035803037391169622030254780407159412980514196646253989289422977583822139385514076181925010846826429151833196590487523444247469179139538869712647932126759444743304448790973243884916932085174950127239553414162001158161316142258500662517423230335439357872945059576155254014988590333821461382543675904225345156427092807785002195187026673996420679768151419307289320170593978248769070256833165888177491445074577339815889972484534562664608882441133870350227196705780665306089091257656919490513616546888207168205997603595976100750452131375971936006925050624011981610502442794855943939369113302715183982557886522638259941257800537047240955884492941532625654361088257423128509657763558272721002709742832334052586209375821206762317255112053245991344851892163416204590485906561703255294340445618337884947947724729771866645933857799123030573527787553852066589481559809365406518510208681541028230704990605707218831425917363476610559767589337412684624660893148232578588412971382602620007983603712381445229371526900175929418832276095106202711978452873980361056399698306694970003835637384719582243271910038990589014321594878881334287163930478517132075334234616648274143171729485299213485095734180242183784822123749432601223261601521749280176166381211466077203983128048417011672610982943587543099583512726423143595750367315964202491403831124249071410336162626208537088696582128472002823616323504951290390710821384553400629735540283582271184963778075654222594001657215970547198253959591445964686173249495248773578824117712042824497109480209055611290610930167845790834907406800296451270583259248995156481946897452218934363301686838408409565501597710006223319063254739047096523620903023160626998763818080604790542694776820704790666290356462122593506957976721457699444559804800507932486819333250219766279615529644897894810960231355130110624678224897233048848363633643626103355421685736214682776303815761446784763330113723932801416063380934271150397849875330462035798053149105072761352761138629476749655778927247922678917988278587388133256005405502530815350858779194747395649589446007871069280964825726698490276891702151038668912669119569417422758028148036907514589683347099508832575110177596065295511733102154961412017363710915137242391577254271043189406893351443406084404189729524641797872313007558503856667796403854681852680551117585338971917280516240444317770877692536103522534699425483798154014650375862710797670024341234803782337569388992453770453485931761373827515367802962871115376056997336773867926499980220749975365781266549889269981062577977997205042825229310925629756254785432144688735716918196601942306052019796453169352426829209225858709796141761689713217573918511842340296445897467839472650550334058749981222447799949448029923449265738966285396678672054632779526544941163758634660927525937812346264517204745187981611272062391697493397370922455491155376918721429875528480214263114394264268720489697079500553393904081700862182731783602271402667114915240501274286003703841186639601456628260266713424711698343944402049168240266420448274877273951351151314261816729684193698431434183151530957334347410210697178487627039675152191172229930981236577510319421669828006493815905863247808284702251550462005017386282885619264802088027171219868537517268616015714465832714831063051103275068384908308199864092614285402770652132085668848178153041781325222084989530166621364725550011832636940990429028959366361116907646945117226058160196148797765346364230556570603442315295052175670682370526024573524218250014280937811703095220460921549089074746578471461204478350399661685075029666099374491426307081590660425064399954352516044356918728692653260878018326461666193147662830461731315299689369751512389152266443992605136154194059130555054578389515679866940653486454321159469894593660889519068538479087452007541857706150211099322125750021580733378178678326789870899878733973096336740468632167206586640414613473808404878424871253026956805576941294120983527244584032289848927871758359265941389842524383308893827043419721792859446915758817835983423807818363775103422695130088346778899539033112969014833053346205604340373836139982121145941794598819000135548909269668908234248907851056193939483936988277703739852103974173220093974193821841749840736837723037964244009476964586037881461880593210108540666933957786224534159780817025403899574384021819528861427809263271213116581711333731851986336000325200300190257122811819429160008820118601493450933677376848424223431202369550848929655591340194668468923158760838067362544215204232235039976517043555813622561873629630796154805728602642587318010803589998285208555034554956536696897863042537893287919021795224614281229963557275106555008672743398420968814367613246072785326377019324430920842403837397829155815528768205527108078395513470896940800499975755878305265708432888868964935526825224167132342348618688065136465706734761065482191724579894922514247908725474797070993561405312276286783024610751704954341042127266455221573983212129312370547023962607861315459866186446100541319691816197201456189819733175580351826575634799686047039030134075292915639119892188332904187345755963462609151708629125100105829918363699377187207667433299083793459329705647659970294681647650791260193926661005582065368421884727119017402637337681019180176729634625101585044418835345315685343412653234769518452088264408143643923114495758636319004054342971019307178124687634200561436530881264829194984362454049033708002458889221821128212711708989461831917301523052369087555083464137953738418480253111804449914248288774456013163562216186100633676750438394236756589798902664400853721853472823139461587791676792539431129465873750858469733449829438119512295637436236753412909178880165876456655477781937512686022644501686914072140187565772853242820561917176171975940796564759979755036538230645116379363812262339090416596745398498696182109546012991211636860301977731553945297094737594312878598802811179923496410212422022158961374535485660720354737037009341878814795242964059487131018363650802762124793339406205134813135157457597277304926387113374331714133354692191600235727827595693606281154267358325726364314665551259027355790323057371865879350787412993727285494728408542353182419097844095180897481521288165762518850650852320029245114600366094370747581579168526477914803117569404828906247051214746046966490689605512213063407262501764808750076573587505093171086807479657213876779784906301906042175390346262540635812149988727676373013134131225001905895631088902306760490284106825573756214627144397594659318694524652102851291831660940187835347292726400002933138485501185846819109506502762407230987569929597580995007379478272921142220371799086538541734635846624302223202164831353902137718931511910079971339022220981524968785446083580377065771409763815737754173776086835183133855229262634094228011551054017339948868792675947376474858210356197054233167236188728282303096851939069248858913831000583250559131062223741557540418618407118227583102942002478192068854781460644613935345408190246676524343839617780293079549474631451031229746729786149982758222576712278859581622864021744138345971510116466681556811616663257332833923226902923751867958423819029739339320870530300112189140969616304050572875428814410086599961776627542426002306016895594593293358396242990574488626774827221711259831011955006032104814189434078759068619170757401518222904328172732058419107395295358342781748208341001373454775966095242001792444514951153145378320800228280329837727620965085683646295533964255532731100246072552679486353828413388767053787861501525836356772908898043883281001890216171834920182966969310567514781097527040936600969821897758830503656240630384384922684164339078896986869400691094750796409142681304423393680007541083687350712492227635971511015278192523325121244552751534131002314696697820140813682471799930191162450460186382957076568633766512866307302094873833212008184505590043023523187885271491541859558384533292760401737328708288226072741328259266398973978933756318873746645246136897332585571944971689791111950348432512831276649344716375799777908592017661498575393933602713800326233380021406205344041643305709959323939052874355456752818481584015815456132590857690742864881686210907519794279129218138173664006417417622068275816118952658037141673621938151974076048666606628674256479761383197197131732050038156396000803187956815308213638953654947563839028322620141685467297077440431630249990761146539316971090518038587021012558615140484124496531820607168073942392349131711821917676324458460478027266535949710591999186553249819459886225147661067415598776469742430900642400396925254874902117747750031658604402262591529064128175923316106769613736687486123915927508428662433859226214596853147801292848683338883219980948250885578179187226422324807249780880930184552595389101913297639449279776877549706927851686632223623030197863418204704305601866984033754319359375248489534723468218211880143140856954684532676885187073905260525762686003236337587785322647649520648893978509104814296538216333182914331158745808134336869209975680583249752570055530957256188501932961691224671212076400356231181887366066396863936940020768114671663239349953256428435463974063800771345148160455283892029955149897825478665813643221959793937116590635655910984138610941288770130859914727073754278156429169649841820189152631428473949866797077734948770713236138864255326690943934161794482636524355675738486889682198596182177656335282688687100607382296449691171139172757066279889204075242739476369842308729685522090591450286628630188481877862277813358629982854562154443789211536648346976586378125906017937635231783845904310239949191638144207585688040304811603960886029128628067524933551682151448281459156897702122337495169663075804838609231408917049997326264009188394921751735208535735821747918481898639848508347800420135150440543630685908413412727959634340857135105696084411499488518477784216957675564148947345175262091026208019164105453221843810813718755656291342427453593701482423480731413866289115432418762622311551146088464914290521648416727604589889589122689630660816454602412843532573656945210399329482204485047037922921234023173080809074080446879096914887547432317325464347509448395011692019362458785907787008129093754440015502323132248377761112238201681818989800311119152937221665613194112226272249718390536599183835003686405763381462109812512033232026822072174052311264549363973249364874148750121250454776802115482367379838793612402771067270574947627259647005834132072982590186722208519415112920191805977751776885628798981948198440339175794276086007285821234039749737998882241742973082962166903741590446839493770652212792327038113755004226132855337358693270955556936366980103756290495482199739025393443195201502806028714331593957434491023311723290253597997659293387518214669374032490470008804198026570878694056213391520280317544485350135024478158446605787519483498833563108453352349116182437216463668160218326733191353381358339507757581607274987775416598948150088498051882350260106036372065304826944275207287568563902797835653775991438785135481880536431961739380506896112757363584679392873398165220466810561926354871759237510548940326399850989394906172750208396539243768793160094921732106835339523326256715727246047716921919676680025045451916856771707661082571437094459836754539727212388736339943787301743115910473499153824182278395458266944324726519574878394447735495191148640611076102239875879678277642418093112086046740508246570977344393068070435123073939510819483469283392828634117700384246906086985872726047271249259055003828439960991798280379558902040754416037737833043318572868501233054617346880626195595102080398227494502726598064193608598687634044278472750886056620700110257403440445394989474217682171819305813469863835611017920750108713604620810885608506418047132203562225144196786881056965375629495518297723854982042687377261101141230399459771929287342078142785059081339800976251354293338189369458524115120638058232143533111725802931427122229012367709712338849430829563979552563997808578225632042742903817185693791067018009184115668859393746334383222349614131150824352606215775852652449937746519294537143338503549002796260368380343151370844820989990726499698250612765939870132895572454895588120167800727274122896489481475924085086942942080225414855112819230319802657847635400484834593908755880038360986810693965094616916665341971077165506363225892566919916575424695421440241720725793994186105609152075484029766953596450069780793964216533830950520874209150107064325783082643904512694736874022656932196618414416728641255564707634997924814976089134699189436003605997703161043082250739317339331122059908285194957095101160547310660787189778682988714154542916627877393907031667898598084628503093501736730793737843060939157226529961482432529299880085820720646593749601136420451304993135515851604715216277320785278001850799106567962027632904824336535691892208224106383467053841517632592866665778425662873874420181039969114277330018485565581999418607717597121191283725680178800477904232604323932462229653004902494342059195363713550195894628987501356556047153035337330798602209612858717263867659789778267705347995619643627178893080320895603332743522776062993360794234548055908749096224383934373723528988439779303833344390046537606900091979974250183899432670372466977276640343866724357481079457771297684420091483210858013571793878825249405490939216210771470493039418820416304442720342519782019782823772024111065432562502728678607449603360898081419369419262487857003039602281204706818436429676754319397836022208109310819150295843928569117165012951155935995336813639434591745874221981448845966012619650796896093676336093635696749345961861894707587892965666517138380695703555953749977424823039663252043120899642137965879685792056473377828697983233828338775599746278957128317303785239140725139556902118870390401013751873242636672970101631573890405559795129505452527704819873825118251072820323688885665903012854218435120770572256606057289714126346191420034797472669788620792743359340418039713962504547278460443496598941639381510648924893972300597297703910326325919534652889341051167772680697664420310987556363087832742683901696526501796749332892913182085665820739486374237535330348359763979281953295927632832714847696424533578916699610841003079276997306503646760752170345620156492783787621767251294188940858632587232541192455993350091775478612832167765321871083663614087691605132555967160541067091189738683881322570441741927404332366957221991342961110959704848427172823599061047144573243768308110828614920795260700297753471353075956877271707567991332683355337421282911701420427957441930485635923554961403037114423438993115019138030254057615849736055059606300558110327878813587452745589671328705715977141326271434506569344086860204131384384509954347641446155892305291545963878564619949132165406340117997976569246498867274615194215815256683279142950268754161876551361971841050603724756522712511688129351536582622087803128809467906992999800214643548029490589422021547892840979000186714411876354663127520292080677117623685794147589572914128173510446568518155947623855987900468710465712050063068048981783730926789352043305365426271530439454264365840763808205213513680475570811877917836726704275505898920237200909575879543186313253150859218044629686222271849715141764619028143057619414203377308170778878179786277755656811896025877333976164009165261696489358554037029413468107683493587280873900433193906678813007703834428111514231286112479135989474864152212092985304669637425196523544348623934232233580376496227508417757199541057869288889723012177818803428394157405279628165255855426478363036477070234061900486809888029967900436707778297086974303521833633551146691413469251735817514914110933751754727413228848656159345235976111488668686391465813036273737589352588776034729942307711549068473861306419867206130828603480028485428421912094174465279296158970879537633023977193565809526661012451668421727918402813023442534831047183045227602572400830612443798963560227710447469522583974181710858966216705330647232579505797247961834820036983749071597360998456585915897701205797090710538860986743475836208364594428087780440383396408737424581232860953138822957645382474583233165318133827897907662969081782587988723914017657272099535588324453157743147918044957502341415649211738337795246587241653141681083953042083600436300418204839423832055890802689036315107365241980234798047923264254404653362650086082977100972873010189841371703034059546695734171396548598483210187887110417343752297379936040412016661786887645202119316853212072271496993498761540248476185484809111922959076338715557486798801616448770074923199839879600937615143969239658195453328046040156879401125618951721620802806012544942800181417740741050199830014151165346267839311960178786554875228192181158576124325920247534032163683865209532004012160210629629321494834032938462387724654495629247958560194824294542344303844470229878270512754342861380601006177473351696714715721720931017872805664738927812188196324567329058841526715306851424445067856840338672117670797455857617461479039189724661454823234955826669960275192451429733911457631185478615229143893046370964176222344733474768087323843289506736018448253937154087035660156675654746732002180766940264054018383986430385676471057478338115625566908158279011711202502655806962253776037088769092936658437863882494797146137060039266099052717152323289936996894738286006389117789756276495839706983327964705916459527944402889243574777310869704451977432347175919019636854152084805251842925163924061157072878089642428752941667903762133803527809339461172552699985661473135892801021226979597875776328641707003832317335574010862474926718021322992298870869832441913448024767538747735510213983872958497187588330575381291054070555653296851174068283114167241977562937541378483641271686410387360722614734039721764177317176180808624158322888997031721496037519633714468253145210259688168244921310171986456775162824041148073082145399018999944931840820043988990065705257044082819146056723233909683988213390805444225958127252693533008829515106405171974310020515705175734796867569408515708854046358517832557675480312983310663292921995557660131521169655762179879986494963108510561184958829335755499422756955657438357245017978071443511612369267480786170094860357894204790551554081884664143729566801437013983171087283282377227558402430342526050954908878672141251011293881078766126054251719642925215317147549629781873989100778208046609982714392334796451601424964318380696138595108604968782931622441032209504418900908368323411945929827519648886293249769135046702258982401922640260812371100555363504269007651905355140021663386521362267185944472177692463543947889080296126882067286093446002951947853555585090656068628520236801024783009840333514096121007270184158401703944155085349601416950256428563948250727800028149723818579224123912932918566787409385074796836841590611961475117658759474513559715707479262907969969784955815841105960093663446644820333628934021444390336188364462168332089028277397182886124498169986670683101052639767330281535061184261436816786609336064922057998725302520103136475446798205112763969640484734554715415982163405201608043414842289552450484626075398269206267727979805200353204039374995270821781810626236837546679841983222498154265260301251251547590398359675953075686639610843577207010142253390499884086901434560013119523508585194824886804250378203912305460681558798058393838407754296605229433866870840992926991794311258028630252936796539534543406133122735232544350930874784869272707108936981529029193050518012273493871138377233384487342756318634234727071970945195626904206909613867194234338211295586272119399025716466812522422332913010408903564982112817792898950289184897822183167388713459677558098659246032937686019417501701631320629816013643408926466790221963914077042180808459567194803225005096703019371404927542978845415937832604134070162089194135059018770508475651116152532499041297079852545246559150918516721359953143638900047628999413526335629653713499228028821923366563172370404798449279917382793950500189012654675870885662400518304576053946775038863041368313602575666112012834246246686521717715471034049950795590024201336061167274358459608634226721164450787774172795312293956811031910463986582353207504477070484665637962819399278000440005515534781056287577797871369674015794099465499886762053023081015442473594324899656983872953067968301803568886565324532775135938049167375979709348669672858357441441723514499308272660339878719794378678381608963822440909408933004258482396595325940990113899538728178749974275078926281308855697487756965878380930514954353996094784314807049835621178364676196070367460821621732041360054718437747228543043773275588667216562203568298814273682247986358709672566498189864245651042441203275366582965962745735444743901632156760836377449111613051391075081373808626009550834237537168930658574314107388104570507718441216835860870459425029491184624171707282868575110447003329100593280545471553232926037422909059873202479712024766045828358306957889120462827739052254526246801883081548437542168298484171396363210763465084023348068736538303970309202406198773894374750984417355470752961349329931401068587480218118719317289673662172308191471937378462294061204081699118577754025788804471210231691492177046783163744481991750360515466439403842918975561104473498311205274411556233700432107954758402550652051288361323581343149875129860792056861567743837950562384608364410872325143631630442753980021902677385388936500376670491098340931979983192973351198682177847490078930745265327886395224328263330139361854080693241430833300492666247605309890833954437531953445884320969899831461510335852382336845771128893983195469330937713293861364671880067420704417218566029775029752480728501986749037191032605036913548812723365708965966252878380559276432953170768769413480293715898891607592901465531486679476994509553288776270310878633772735524659041085629286231540277366288769591106952455730746874808743066195746318604241608098404539114426938225692294662833043318836151773436504451507626799993681552063183509172073568978376451443461286143612207371475901852488351513680618197808067133192273834705847056166800152799268577885170812581304208606132773637036877066946594811254038409739649102178187729024657545442481285362271218814967504811278411599815709360748183343353175101433355764195042028150725685969895993444075094179670402045819332326188597202028853885576175025418555002355566162444166482470258168101512327073267919766222600442288775372794795446535032259511603716008197968671396386304642779449438543717646149166428131236015183482546295945482226190071380391582685998737762287438278032594073019928565038407781830350298274473988763138328538232353850856022256325596664594177304389452280227336578366885018213006199479328694212766589419322471608040930866695358593025793064828178207606166047396108946639244513962091745961019921388806357256258966924590905059806654499853013277493195476271503336347046738072737834340499808828439880593232012586658358711730567909508433878575441279763485515379334850716647757939066463917187168889298743080173873040662300506623696369246923556374381929943467771615571436220228294799434950603082541907705428197136997696000672068881739893267175568679306816538263870360579736118904710387119880526934153298818410986760611437310240752583730189200841040027881819272460042097517860633200904329578505956079148818130019357132715692590498702818677970555671243212510896467476776819781330410474722757276457978017780636583227420057644688708602474215143106203858220293487881412543677760967836264238056622049685700006981675634118649101129712048877322522304555581177264811087507419559349915784593793854140606196328682786912194085158862009566730542463497052139621510831096562207802756536687728705283257949232450483844329064853680158126478753474395373819012151860751328375999844185636997751865752722800677185413207143473281088222499316517427434384530736871870207115787809789565133415848730067834322604284179913065853306149405904772354701808594972024985443648169726795893626955097009971260110566901926627282110167700829935848934149385900911861102239781555055882500191212732388115618075426720320116290063761180438045695119669988234802389780263064306711183006813803899875769771325823324338840750060417784141645723133270711552154707552564297378639470764082810601676855995264844639716729010138104018220926129909911809670725376928413614990672367018116854387980872385433182455377980291883334627159585043389148043084411233132568966194863543309719829322294962407637037258997072788870439331349978352787063443478846554241299890254071450071867378437393928522690517047907628736355249794051620743005039835681409212804070390156278420959605987844260506937465345055070370002872570444714437606350073323907056328385337465339747148470830352068754732477852016301607501707574847227950118669930589707875558762477188565277247298535636086674117606161755103863036726181443689158376004232939715361128299266437727254364745188366112750876515309525440653348980526336541506947965355817455542532435514080875127965722136484132471570878128497540446406105069846218820825959337108118136023282063492151061357543508221019391656354921609517304555472928281015631229209774576661368622655763375056799418456862610407543228750525104164862031826421546881521975756430297994195986301328144788557763976852682145057910735612778713058018940817140804878751162666125243010452696697850935342284936394725863847771927257141992076947345766721886180142165741082192451112832226057678963152882462592027938948850982092101314790173131741430132319824206721982024388618129052118514623018445053569373773304968030666091676973459449201409935113818822759895208767439070684648384244605571222882482505654526652117369167116655120982317091122345068750150591232522655276506473439821176262312266694446933471326811211413367049575320808071045602402068314360939179060507301793435941051870571487646742319700057512611992817633825991757575470842303064229164418237470713338674366234136326149971584916436377983830084539227068197528216314864660573042154551818839873337654436486687616568004694011473648122006049482858686089982549521993342195410106993786194818126021580326131914651588722086729644133632005800492684010264620321281153573316534159487849026450384704034015506768385771618649696453938426006686971917078936930519401896664457564150665628084663679983355372220419981901523715265432938232931634376557467925440125636125756037056567964086199751718111378721258890262274792458226403997738899765965888215410545758176389364613395475884160198677520485236754821927003888572881164764070070169959967590506132904680601782306998807626991999301828223593708784935459583370740770205725471399738977592650558094362750975352544853406021073672429517104631182747392505277674919432813231965574656307048575682899328361442553142075473697669137168309464027502186255697627995867350799539774022410177117996131594310201634340982796609153704214372420409599752267637517660281277803839962746160348894944309864133624151764236886784345343950785097174464551865818704713137078759876910281774024120941232764000461756205059596794039234735303018274386451057109880133159522837259934411108306757138992835035807561083235578477562056282086464730825430879317165963379536720988375503082248898021530117120561161442692151959726505682022850285057217797332666666459547618016549747114206387198062044548009093269070876214874107703112489802029201185064352953332427589398086389156747870437879087880028501933472279185157205067392606773793888712948759807009623660812683454562421614655677968977713576949714097454894014660487257371456138161208974534572989441778429261772227338285785895271729618959398027154820816470678208430349991442783168693353669828088122511558098025720940524607454317839426389570594337986703424374232826841703892028337714375129900111752566645030207563496097698141793050295844221326921817157316517608533686284636574191969270582890090446718086428816948204918325276513823215960031426883805292139974467238236690255401598162824857476553701407391350890532671053028401390065337804024491974564633074214655171983431476725068929250137427553410055292245102326906728483389831312513560497959583246190893248848206426424895188701095263573012939514256916274241715182006320699976852152961949173655242383670254705356574396667738184831633458530417250492573535978996776444351335690966439961499202813070366364967292824742566742049280401989970435055273240321442758485950925843919611925813354140419804561420139349917098431296912536047908556586701843901740509014549881914315073335226573400251724699711282148761187335856786146901323984551427385227557128134690892828626065903833293858048184412708725229561756201021920115220579905763086260647689003309169757386112200983615942475503073866320696243306996280125721899965443087966207020142801070752854425182698212919446831524813465762476997729946249499129231984348477735731900950405288486062911898886342134141377936552512134688734191077223778238524060390493157906351876818464012231264594340462802769252137253347421130277327612993509461563375050851615852672340782164035882834350805788342942769611103236369599259261498658463527787834130465530741576317790301828438610941937433854357569103010763605863399382766704890872141762892664457883723906975204669141932441212584896334793450302174034312363975651369374168968985552602057973404884762118228461005579565049593030565231556410077358742890133411715021066878766767307491055386670553300781024859868616301334407487072127641724902098397304334801173472953831665717143670363176495876132267338166886280429060687136999832749353371968741632308413686647728730741268305820472660551434323016887352034778964041813413872889466272362457811556596318830391757879068556905895779035213431115842735280743685714714999110403419500364532492979155877027853874965778242046606906384123611326864926780423495754384348123938732270848788540044291818096863536562741431139610088839083697047452452224501245146043911766574963255954031068957291006526937051807144041044139069571199758285246652372603193453356380741415057519492415434901769184225250969598613598872976805414876269868070526233803460414909538489590499878077106061488170869704902415085294387011161444200363979465375557868273209795067318923207860785446855105659442967356495494980870682861543063822600134310216278936192586474182531493648519670126551810855487352463831505672840812164320482348261558773685593598637226742660614614627987141322800534512893046872127761498883249206668052492137770808586396267182672500428679313589240568420485957671085845773162438141670453770323052918216515894700170249890908998116202707028896670099499750593623465034057224097364561842183506850922492515245433006877410634901035077890759038507883373127578089201640504961775757440008076945401487024096458773654452848736521878586975951063144926707638619833303242561755337385355219839019970367296099879249528097532558273681188130821380155124264719075248099909580017229565703877460432157746952547875115941849052022465605308923214298818737897238409326442774894075911622268718482040075858189578436928992787094669265016942233243437468620720561717926929913147383287968595115642911735910621440004856126543289280861953731029277598587590961817579966967916306914016565598421613923642549050816106260827569083488561864866448362563868593315589255379812298085669077998329489068849905510567828959068071759496485229761296174341416192057849325853752424908222076804365933039838901705575184947918459320873292045413339222527837548221856683250257781324364658192876621386704588201605332685137377476453873284567492634517555718178020089594075920743656964422605840095540118415279715542885072172062696462661984419936314342918761465403331513442990560886730346721262115785915419558124966918628356536850547237177892488176290682932050309165045001111790665428704319592016814386418757314877150801230821012331198773762788020063302433471694647620057418427919698792631643389205986107893376209515114178094258989427361034788733915306713710412203116541248737854997571585074928588565781572649625149662058789790330200481083307455654682837467837015053125583352849349570362490310236905121535680898687135082015759125628675420567298866016219475289677878814846313015729937953072310742294747149972530023337814476279740699071347215116435247196843939511324501814763648927466976768537451434631705423140730291356005214115876413381496241186035009486072443596385811502359973211674717044918041088881045909499672303538495125597652543855736450251905808907706585295939314487588804749801166173370024426639992431925586010705268535025717665831418004516998249341729586524290413523115213919677565667474815340302953680768898218111642911374537364069529775479834542374168274151692034617156428132418872790756353221012035885270499581002729075130227056208599132217473750862434153423076998645824515564593140681183196790976742780323650691590426604695656893663691518382427352173941037858489228164957195466719301251316491254227205740842455049901499043618067240613968878098524519288631469976598720169737402927044701348940893285376263430291683891010688095284265838233598407036409248674259726289278109315760097581056465621598062823403319800480928797613632477612970766768898662599849345847954190787164044799348713656670880249437047190748100269381974529036857908255804648397723343977777717884227170490342818530496291999465308920117206374783606869180132394858909066039733455255875449021964260339564486188988355268441758205709063503599568814456160255961133468330899342961311359257823420053903762615302099664195612381683601992067893427353019147857442396077809716029199705225585133890395645895104147986697217088362551716113160077448743982172362570145488245791816426999441191890090410541377412791740999884648252972122252441999175729358407291260811352693720266320971394909733754609629519537941673780130934349000059966138618622581004052145242512821472635963054706543578287087509172346225424574776269414205274849097645030937470903787360666351255705406851592494283640791085460037831105455252103394118329668352602619018519236389742230231271109607022992320639351004724539120435791965699345730799381738042126113213318009762029857023098131294463919010145364941221605256730430030219826331300751282041106450480161030249811347437282461686808667005401555431070678048795894836730447542798646216906505442702760468592776915969840207348866042040770664725625397704516080009221022550708573090245760385506400433390945664412038372565518828125404746477352953820460876599507091541130072528397797270497759247071052262943255186058328875795773245463710641978957105062889286987923957166234222606515166395505890649389732877313644233559849646878677607042662325082979199795692518184277015219485427402493423129115058334476425659610657866482474665284347502812617536176286867032181659957920517674951086338411785461455118316153468245095273780946186865654308156044053298233756020030438631528342026192174639146606793353703393562457686433557862436527970893798071226399914075121115305309818592400424488079142961672315430828881075976968784342452427575548217162191896852378814416473894414912013008835830819495774011056942051619950943943652186496667796750354174640022378625854669861486716348231629973622943900976841667934292281402167414949692497142649231442009084791970134744328997983725098716151086477942852492907089045354571203416508833102932397320087424442280573435944667490954184990996635062317796934900686659240515296496658373193034625920481497783170367326891154149773940019265906604307781978436144348866633724266945936023648166657874913452886383273102520350386650470133128967884569178815797576877249169157270270487247962712075303985121263953826534103597976985664657758693438950160344976442435058624584542879243640775743411442285209849671283412995431297981550820883542060288183287361899945118164287656318274025581948190446523771535379215216590343679589122183552822927975654235335649215111036666052528470022739276965314219193679876709135299167379486789763241963267044078682507045587973799261570813583705536669809350158902522329999013386052184620402802598781190635462824923545127927291079571206147396242959815856610005417161537696104950423910625459972609028562501140410398612540539441665895482173697613050654516373247263638519643768936816545035657587571605503172876893714687305409097552595026038695703419846098291665699507011437601621505120563155200162298948638422392076021293871692132715773278218519284255863002265837247323035921435754155572389117917575874891272983858099928790596340646466765015457957443257664082291644013437100888219129865787945124748950553809409634845244042854978786427568909249197732920177343706839110554049637299861146171628373125469475777254608925362247518664952170756733241237173702439096988569102538641627335035696669106804034637746313403439645269232547948561548087667467307007043144092585604558816345114276192377631003707036736875797037065327917916860000550376837019502287362300066684443718355236098026676337308487217170424359791868442096246780549238521489172002855825094622855191969751603949951678658796047075915390775409193145594936679498227316207163885233792294196985521592761563065359032676806170981491423723406366776175353347293988078665704594838791233887715323403886696119870246000842433183469875343072546211021636816826762842303306463082440665907244847369393289091920381053911176515701096694520642981531683235604313130085417963606247653621010663061159068252248628201710531088560998336557739855874210545240247410984960202858959649158298325973483705312052859214683019480915510341066086294917249322204872724843307848173880991846795007617615517461149242249696057142928589543747331394796825109113328304640126620847179064991221952006690501261698734675331520344712713664373282805301028163251070123294908805949060933305234027882991165747127786232954664849604457259081378813564127271275520704853022607385955901861319717930347485976740487752185158771348218320926113385227866942865386624368908869474253073325631055381689736235345528246410142046717867000239517447025939573392394948228908910343890769057313218600965864910776136708284274910885530539528334841163429180959380936492562588720185160147831784329697570833062819582078214111770856689176709856733213647328776842166533193340990548390957623811062757206287709863044670906574715156375590325843435213815587131843669269684710223304986985455074408202003101146275776316812041438641186392833636125742614950690423129496589119607287885147325201686823779663063904323389741529256196738307299146203882300356766013160687499384323230389924550232435768349404019881280650342480232095293559048207935847540380769661056683019511028100316932425147936652984762628399462138163920857647503020264301125402686271131038851724673736165794466612925655050607317045595173589256625745993310752136990115644867625825562456236517547088123394092027825561140713526530522425094008498790168924732612373072872615952628207434968385906498415039613342912975258517910430170376562834114327717351213170354104855621783864870906874791638785913736888913135031078911231196938580056436858236923642244569163596152542555511310357442653922066395066139760772245224783352701410677914172722209468339573067608680038946765645870893404219657521314274505056046971320134375060477565387437231807395824178917273539006588696249942640317060981786141047094508517689139896054303911691381125472411487804173171928378271943415412163059436426880364901848865993543051122412183223521324712403720200561502736705169615484981127313898105705528847966592857684610213733447417371950046358352960317976430216431170736526990077854879951652585423099583606085801277293687364394660821219583169891503536476912620240518217381804472984388350841026465642448314169370010195085460802373280471041313989335767646671441698143654389307107692899091742520666008703099444627625214178233328586416623998865133664433855952938059315897435876648182506132228396327964589856863627840457513968613208363267912615331608664062770516454267903790461357573502938852561868910580685455077463005413474676972660851675419124127767714804565564353434953873450346186064105811634298138843401135787939165150165815927634341584015653586538909138591685849241586673043839130373677063481365989193257253998535210713872515455820407973925653998305836324737703768863898226705965820879407371224082740205171896938287004324723811376209619343469424528137009092249718055529705418769483228117343014633762058846433673588369877298697340600183406350438337839461385665014020845982563216998899339952860845433193416841633541087897893878937945338210694225712771816231189817293574325938812586494662658090112393700013451247463640868343968710937282805151857019341661531911381877204040698537177275072000267480577415615093831325540833332840009458314697080118048838317115537008499140156912048018755967431164663873194862703061167907564423490811985774017269665364935685221985804485083255041656945620883149455158586765969136218691752386831889928445926147022869219629595852832054370774198264954787648032007810823921335271366470208855152827495003394150722044200963943504105435678580184404469639165413457260699303335374159582178449142677267395456274556131946031297396099833387053536088715509031271556153217413637847492928666628134289685776159992222767939089919039433180859266237837201470315225429952252998218593651743632241331666389910285211983131343421472415221890280448402990465805834166464635009042636247078913083464608038602536933798889809353836141434221104468010274978119785761796238831206533358254757571720660221781683375156438010477935546233170292642710801904353565287191977223159729490517664416288956396768314774978794655184491587233702524162406816168840407105552886247640898873117183781393538506377688674761231529474158191777961019955902305298883547997881910785451717683508753187206374627688661205078321408944360774509972594456400084159053780795130498238919341126352878630697309435692660559390697172710833200233611588069946192760705525177079586245739328298969453390303010228834010191900563001430819799710605256931868984528023614966430011991838063719339714550440545376404886848625412118596997453224474856418409922460528403356389656906254432394996530873231539882392014542452104912253973903010744712491625554940264860296874714653844116238323519247015686022689042120498167582737287956278051981506401049688305527505299942550377297056378105260960987126774147748171146659451830511998377558066125651551922596541415226727510593952879466978797433100463856126453387629981696533747123992418857059509849039723718803727643351862536945923102194094576103712896259576457755446266147240918897194256201287249307813110962261136419879843151235134045622696118269748910272430111071407192702291875741044207542019361709112392733282310937015074011448703636373450241428734737296816933422057501146217327539193587411517001131109937115564628095988492054154732487109982313440160509252788655434972910071976514686120062473600106506910909220526903572900883434170940851253488491382441072593269927006101157680820591615881019598649271587629810129803051679087064274735996305784415714526731318208030870695883105293015434817179588250547023997112933319633742992884151602402095338689149731146777342625445836334934867363682310076067576271348476521147275147372330078832960958206386666927108450912856384704419642006463981449257574764712368217290487760473941608462607461897076011441981596141740596314253240697932791241735881180348695145111978710104035944815745873178665090677267876045943516301210073372853526697004636967760349682547130729692577445544544194921918306910721557005898734591750422029313937255118837647818384252415933258536683878375351109056645155994432873400214216513926141933947152092524336752105703041784345829460638715000745272851978232430537974164831576191300573177316015031828075439490244649222233214652445189173860102777177710981670517920868936535145628158557222803589657420640024221258938127213110916877102451656545542949484319666667075892305044852942903655738076050274878620957821644418898311253035284717419053429675155535626428539411895095154556776324140430962294009570440939094525887776734871659026021753596253529764070925558592373116215877864162304964635115652427992878665192728944385786988822792439196977519990689234391030214621402937778803467294344951305007928659562287451675523673739161666103526660020519051329966865659385209567865855500537422785138079523292449802546685763038260975116648523521910127328422347098539033390409070756516652474585267686581196740967883689536501218403930151798975928843466802565665296135245665829094675186584687845638839448399885513383839174855966567454369217657765812706762519866084523216674928796205999885475439368824879777466876356111411409397384203509991572328476699166784693539032066962252194608185019586884327983050468841463079603746744462774535380024316912147075817889361448594870767421588245149922533568672012537842347388269053262345961411218772248356814049986123580849009907621780561324555276433060046999134391470731275386104926187524978852478399899611416508865509989659523274841668111006932867555038422874118352836241532098529016075993992550658964316981504558547083025130811146499432010871515658148375219037258225974113970986350955582934919655451176808874213276223392713234046847993689498334791564877089474488982108887699146345060833146385104367588620289115697373783152288508961449766057093908573178182254488937105538564292782339395200112964395682015786633798715054184158998580564765008926650014977906218749856318011597052700367350281347142623284455760395816397450138926702756716744394770720866888552660376996705308808305708405545085310781827354064956489791166035968616847890736647879891126586068126190118775820529006869027387272654758945594543587010644817542457195473222589494905812920803336998335563412549798068194055342170713570396495463384071830976862481492328528472515461476051992136023824101356046784910016672473988434854260176954549727570620169874408058655196666355320891710596751217916691853041105873457624508511804868775430379594422351723090262865024398032832728216497710620237045704961976688944889777730002863131260783557956790199813098438986005074683137530103246358906047836260478209231490871538278326272875364476456633476003221390353363229421210962436970446862688179096149220235676874858194492118830818329145204692157165824242907294482163946164900066206663437846454710651986314253102077234118861775603764035382030392433521201685571033391776228289220368345478569931074115592148653261164961910336785523640398570289573580175683096814200379006291320987352741370144800198317296066083232500986149630043581210523144210699178526653355676580845955175986430956212775885216246463952254129247109222864172438605071832603008646474638770093832747249577221896996263450317903139452111999796302186312395363602756488172425563928079200675741596508549314446418505269800983601683347614623979207208091026282830024413641248710191481514839671238090708625206457689327204990277801802955495708721334811352677566679736031670012021532517636460713425214500678172003253252973473658030478245073778511172209507836105413796095651815942819529018726710746362606115545180887514639975302095405121666363503634378269689581199081699730490401118332800287989546319764386798984127826229999697537570156327470262751244828014400478564900387026718361192453335394486425230497098773416213789852104429770853917539924904045716349699682895845681794715621997936872617788839804330949476937437584025185990523718091138537974087827407944086264389993894961331703781536694195175186901258513962270740553647355638691649728561788292893503318256738425962717601639431287749102172595794891478018886457926300767312439723536164245813883614218050033026521355043361321599787586218221634954338796109799721405236424928317415406623130090928310033656844493761700517611306820936167189540182693948852796212034675402054255636774275558999888680136016214588491855585530105619310270665385174553197463834973453503289495491071055057212538068682371535152915622451723301101980408898890319088467662590469960630451283733481789979908709144430908992108887199205162193889305263032531046237265135906605147394166688048899427682499513740507944971918077116886600729726134852815836512758540083262946854848309872559536002441180040586642070658690265946631251391202658164242472245408611410960043467727601202105609773593769236769835658868844367516327584157752445208946790269581985335024335609711898049898040659857362281284955870263342578736662523883116521251261464840609790703584249330752138557256162538166887711627753792863069834944069321416643281829779315030236764123601781114511712687164795733602332791907773284805614249328000485813926338257980575777208057193690944280908032075035354376817442875153942633099884774454737691565858563745536008272902665917976858899212424673719346981853100255567454133846266833089877888761151671753373371744075841352441453214027354655727522737826788338768281302311824273775774811584744042624067754072243475579884380409010084990218481258452939811296238866094571271766278614441421734654793564340326051503809522688790083611628998713305404604100628017569666537585401389314808082568786078711117398537561688935557819281181945595374229993382028798086147546003483795522632740607000228442149471276304511176402242330820164791817617768596157581463277564922420007311736116982084468639716084854710810658858631935318627786758623496344401996403384438129383422292997739226021208719704530719327494119740692417304519833779356447805113740900874941520676273218508189960562377634614251933690073803386658557098699985393353483232689765453972604427576421693604079123818122232539142732297016735191176375050919119999977912419600615073369194213727998862821254257625472790967243010538325731481368940172985708253603812718090506704592406112974998338102633651742218407872647316348041937906591202259103274006903201496714316807568050884887242384500314067792521923610018692929904847010792339511635217071296743025244223348433887193395520106265708123892357910090368102867261044158239263693125364795854157552194590973898228000753918888856968324540997464794183996416203243565867619777679671935131170067689739641469429417580908555907883600102824845557092213680581721197220868672797278811754422631366315505134342502861554255033789839165958484658152917313281467106761050415968422465540869207964996996390498141498226808416620576104736594848738312021426633288536768299436112580416156658978798060139684583883402514227203796191047398953085973838157740347790249704185150301028201955797086068072096353580744127143531967272890165825366665111207209957118926599402734803888137824218837651703184479883130142244351658664987487532414647519012898328438039983851375921410879366774273772186892967052585840991853648512531434818617120492565365998718020975427818827707783864219981410960348790950650844399045776945559379901662080123234648144803298798027685860768589204722143591948212133625798413632067865018648992973408718410182425013153484302007300048907730312010073005740351573936319397356131204468769328552340585885474313667481264001857784293056084525166644270895708383779957330500094075649867037434935688059113095702196383449987475222555133329631221665087675405292319008220171149142054716575801432359137701234231329138541555472497347208860322874535901081935388241448706189435438818330858152550297326356475300476336517567820903822437300935041645478898730371012799521436406726780924573736465687381846148578058643284323919271941803745883992939481158377171134694192997562248725519852022898403046325171773522349610227822568827554639718643798430097193764916991749354391879263245945480886680247397343796555684836703833682346128154475786835287937426146211626246782621809063392191203361810417745747901293944498561274802947530364915003384834914018816880070658499907918588971369186889710203038655924788474879869893876366154474292429132928607253144205507453387625564782267387061185178210350147257796599156857630044319738843757536261118577454523677800632007279831625193015024650742198131792017792072017928604956945532309940001016168953464058824420014022689855399655565570719074636067996242514572046616770691095692637677107910374044971992566666720572464881811667618305962374082963004895960053579870532970028535425097474849967781211410833967704150288547667931985650051303791553782025744482011484897991374369779558404974836809729069931155540989886646192984467090866999306856743971482727156418296532820689709390448650715508292289017433827713572795320641756354445673502389919836710789629166537403033388151857937986152902349665076985764708511924279273819917645351333498842007335427592118698333305839941383393325421006665108455057286202645637958089151497392722749792974233702913170604933160754568332268889784706809067517153881822681987057475388339500759769169756656153278664150367473300552171998710048977747334920667628867994009436533422246727325504238454136372441343167718302087626580909148958648881306421223157515522706955311952328397326381318533616620315722086666051719948282374847280704303219002325437081617961824219167730423989152427465328835785363820905133720428949036543339833567946400355576392024289677107784247512512126144975277436323692306773986035170825096891923805011846598001771841384032876743252618777866892229479909873100637436090240758253188735976595118467004408445976661925278016541770347265910737413570127687856854092157563439075602591354931351456888321447210043926600005205288493009315335180131627198126764940416548683888538522571297605936586204130237661689829060752821145854075859328314195343381650585336724941375291371316231918590271063722541047771579473002177563248704263404843114458846708070993089551878224503926475177556884472051581291136483168031651359283250682105929144366833853897171082268994385735924704719625631333817913814173845926007693540483775847827570342525097429087499810566198670617955557493281600868426896515529180887719996445920363420129915781879541663418350697062982117550134624004359656515471067645553426256126759451961682899671514969947165815701956995917558591629274241870600143002161692890170572837544875623434281230455774222932118888623078100190167958140944297089805814529329621812982771424806914778198030700942705972217792056953181375443524851285432057356673970162983636897704084007068149377918207721140037629655459887403955453388706654234902322247373571401190113649922602305662788914773834854808950743817160789552570408587448939338547866635743649395341863848400453966749190590254437617811760866460192503897076669711075689306874115214982661540062286386626293310767033637468256499196553958392610909776388800052876752362235020670702828496454827110762469467158310336269560625543598333647344989219527156191426981310772620441940795565380298950274660013488528867298639523979600443601735516486118644143491725426233280995646414222084522351168342910323328467760857332777836007457902105606794956314866627337053182627751341568959528785410869738061170395841089237360326762002640519096896927489092256531962457288719213684735051641941406048533962047197556625812507021904655487088759413444698054579591995896297141109007610319156693702297534917881419468886216209811126530266914328769252715127864922978500199172754963786052934198550857545107490154798118205294410265380451330381467070031641741184488032962101653984930043321113841609532801543462374120102199615864651565484947863753023119967548317871291524794429044491604589560865691396949051265773699986281480683724710078807065359865343378837712542853271289464464373011273039476866815470184838396879987814821454330073026905169152638346069570432487022765510516336115118832359179570552836859131906440196470061223975000909182817658637190402506193786156517527277756550823501736334625241284461278450752392208585590827553416519869197524368775323666118155785398849301941821442595097340771242451587481358212705660816937859783151179342505324178998368009634751107940318922945329198390615154906782977660724871922957719008261377301830681119617683324021352374761100758878634545274014171073375175629228941147851607817060456271569565104105040226577746584317135098608791249606390438302896835312303062619679721109473993817159176136381759606718887472751331084697713704869806610708393617487415299262776098214662765697769330828433727821203290878065657978055652023389145359082769749274168851630115571438363768724747111814542622257275069825078782190324035629046201606376517147529892048137289719933109229616578434228769985748091721540032382193906450548330649659456801529600116731978446630260718200699815107776171955984817869436507787940316636431956862181897121320287456618064178485696333838155982416024572378797427418305122867351586187650780579243225491751101322404320734493358330884706038309312347481423417810370834482287807448533206887536609787295506623739319157036324479244749677388456814828535128981997065002472891946260716776235068342649230030273442288490986389236972310538571059281372060623711808528995523896377685971137504164750311598972076893504307602253469050444978658297554987593791957192258223009317953902797606576539120863480695756519728238654189606158331018097586445607120960485618683009029938121080881464627126208311042877081262238303725242667156301279852484048898995465570522805942917948037100437445093160145451438151723889293109758885432441024101786373550237942556382256133181024247445889409222567655822673409169889310175238123792079131636331613656845118145126917638717319071140740542396772113582029116958599922888439434279356712515195242271855272281769258575449536306671638447433507852042267217445934841167486719437248893227768125384837592356094820513676650734353453923115219831895471076224408038214638116488453112225699034985124958298769775864866820403760522399408662172072150272756425841466559615634261156626954335397172483902598479196464340511338017834465259508559113607833443265256122396099283899855877741665428641415165328307482832690096398246011248747310017239432802801243182455119084128353339611473669134124404681380808932467184003268483344395088760976578741289862088915651005578496833633055432905642535303313461334540788437862265045670434594533627782627966939810886269429275337481220706036054424022893535690219468842107045325638496270600632442616868250649489532039287787023289010680259804116200542674816542502845058816781370499235063887990863362580070907801154036510672975886899886615938079372311231120897711133254928118146637343525270248880889077140076296264567280440748684550356170916840280285502176224372743350922729343448588621898816597646202834793615630466506516701306199324948231300228096761635377148355928875347298363526178779382177826383317872947944561308959230575246779953756148025606479489566253897169388294707097644791141731825445171240466241902888814521682137856487840041906826614126071594519157497733448772135211315702218692237167743582072563023218353464445276755117856946097707317619787448181191108960165060431354819794646498365420792189945023414401250650619372933636763437833787617592071511701753671683837578228020728281634751540098382861259780324034750842983485758632647042998448465684119843922567078036078122836439918601790554233748842898656461349070124485243140309853560859077173230020943758146123962149530756661191668545172839623429592800758605096649894731627029442145308847727463554971689934099995903107827103326156757296606592067872715099870362666071148482195796782459546564833670592560963014763705087111632125217101509326934745877861293012976678359546023420738847196514093309561219750974048320137541737027345220403662702781217644059870502146198656058231923957445406751484884497597991580662261461762320761064269918264468042052163384146197063331121419098862462942592782869206382904881108005208430213937643591371658968332603229927746151213842612322272555276193758265671679902817229616025094426825846319281276446311880899082819797463121260024586404510115831153016332284242309903709242406484896251976726242545558189327886689908263634333893350549688515180160957528250467375873681300324411769528993072344245977174931271894811454006403258226801085023794164378623820083818776313717628842356923242670282504900611936197792094919345760637722459527622486316284542403090786472479702040704895282855543491523114407494032614040392695718138729846881958942505853708921960480829431400244609609735116738504360290981992371366697634429679260980724391812020025352552024498510401851962083677558415007096990354057185260701177063694530762143235561653549548889973363432405096050189181003478758376101356255959586636330973829389408156407798320459676513894119446325662446259691571669225076752084899367937416387694308431533754270849835892615483466727652991101648160900893741396336639397216254086023114282172574521313176359107202915193542686304191235064389424869924358021859498379132438626804240655838586600207298540059568976351521838476975585342919435319226298458034437403383097408098276370518526950128159177229088029242792106725021383254986386230572466600379273247760683807181230800160060742680763366423172128903842646012010513940685454220226159300937268107387143049393992977150159882742172636787561940327381850175695555360620852065397473077646471871188354575205140086801073862973319775287551327579873151119488010906664766795328168703587289999014358187768667030268066192854370203492041199187263325648407024049624728934838091833422811788857503104675590830971454745183958142656704850699428097441600735989954162047482598848634394632818146558950375792939202275654941699785191937464318607263423423595521832956707296258515211536986239574623302048147388121536727431321096531986236897388321827266408790980672441695198587149938726315537963259605653423505825528081325671683060003622511428496329377663615421762437282644391960083495108853546504306589994523368125147182959416857416988568028521918274454642558441946095335696267320699590641851071371692001844937226586576393230493064350755004156321774112231207149161949451370742584675587623004659926358735269276440032589006421756947666218362014548487277484594136689047356694925499322537919780183207396021292410715774329868342476180408046304564896350778924976310372849708891826884391769711724880952452966553717755819327744849384828626471398486256014996226955525351574551670064141729509510340415153756022776370775435138173878403100168105047445632584971226313956731373086244932101853136011026978005634367513424859303978960175111988397277346091504439223382440675834043806268313770841810824986976363794140127517908648025850043571213527916768341563706476374697406369976061596469738968030913160663231432275899951865693129178599638525690291858272563142470999256785183036739212546535094247679249039419376699986498606198215986266557553216585006465428225465575229034775009544124857297028642062475804854000452426976565739799533926184022551167179977098571528884390254698655595382822546020580364368403323364177720154098467653428685915978492307644425509184689908529211506460065811667681650962837943347208518495972165763039082242623072548608822780838437573120900240208996909447668079131711929022681816160357340789255038721766267203980642677695633488841102423918878131865160973145583977024159594801460357008956429148431292766472966251197307928179993268159486316051711199129977077539152072686888396322737274902797358125575637235730221396073703158778804718380589830364504191985097339298949679953840524469634646663274849551616806410577748836474607566683767600167076185573056988848847170776660328195315975035771871797119652352728412676290313355380964055548894023177911955310330073295407984490026174919017510007396507476396057252891396220197282393884265658788486748156630647964056890761126554860408487311387575715593132549456167534857261787127801736603169613610260629507955448829402836231319963728138804727113880560822546072496040151879155082917118909061090131199154464495149993323700669240529540470251538291934939141575254810102696249647864828954523060646556529439400045657860725104333794851629417088267934037701476620058239330754614759351883306880177934172136490576626810607877106228995912918382936348943311733523912583934122511001812552830060615091201502842133829262957192508239179757913682980766955080953339622115303011834752827663086685953989012395252007814940343805253402337950002094759427825282015051658825214039448351984176897325318200676860504796825457393757259478106722078140652169863156643151433777745960701775074047479841126722609519021622982243601968474860515431370726828808864905075931273968435976437592271308771648322516454166795443565022593621703907613225762219155176090623186047319573230920242677277887113559457785179539690376651152646555132227868096024021309576251632682941579252081196560377973320594971737939598923624874830234121129576243330745927874053101492281180591190284251302713012404680159532828384278083580030495155133050371146932329127511327318444864741122226170369094834229440380385939083026837865763448477905491431478826373586331999102873567392781537713133669513377024447748403889578513383110769473433065558518802833180070432104196736311832514464442016244031653737004389301304767162427358309267098217377823567190757619203596235302104790139608092821917030219329976690543891736391854575843899884638408433500144296249798296866375499214681932234449182626920361573738473703378144337252741634535513469018914728404569779757133108289645277800287407790168076707722859105272331281239021927925016912488209003282409956924540241793587109032106992592156466832291523587352182456173766498935813718018561553446657903692492426617135631099000146272588817174493527869725970162784508395639008027827954583361628783977553474799166793950653923805439954613070573266971506664908681109666798342653082383349702130932645610534553968653357808059858636623304797389870272209833904956281047102651871947260480638586414064701725285152632900410126110133546504037652819443734788752675035462626879453164070683985720842207990272106662582966325968513200669142926567891363944272622002860411601342327525023966324124717749960376748859899271241343466027339465920973870394420258440719663944454787097660072450695097750856819609664855997244203717687349850970540390263511418663920832097216749180907394411396495888602720046716658609310082192313036265620605272273391842937411167997680659923959852099958432075771258563239778706570596908892862895019142972319572570170506314994174309545972645888629307086306959962161675898487245567350357082288861011969728906543820930556020066890139431345510396552333071957500842064215494746252685978770288073912949356109314670488368032136258437051995865823476041509060848899987139001735522055702446301502972773934211479868656883030531221708185843489558290460269459608735157009035504840916195202856203374471052454407432053107741813450540141086645124180721313464202915024194398549619246033279663079923776061139199680411932678473376510407249992097110363997997675236412118739145558675761381910346776313034245989204414524491477275508855565117290113675535542366362311435391686385381154819840344235917119761463857893420904600493880682279795636889993801321494070630174353146475172885927662680266593824291666131496725644746977426018439397134649743445246704907213016124126400756794020504330947595764596954987394082882067261302507039301152174762690185222904773083886810176187981020567663703938655975683598983676535731551590740671218771559057603913885428356173168254929181621318703141127736697940422255403841501964872290170993040960164731084235428362963117929347000930423458174205255310167600337695341055267280098583263218915512369786230138192743929116405720736255488373351640122076740771855509486485719011896265388938415831695947737678261920807293201294664811010358132841196550228420539943276560992760712805903268131240165275891499867661295964983967812889771596058149620018800605074954075743955742793221457795775553931411550126631041067212121921451435538157914777259176959959253115404975957763765495184735254121641925611639064982843412525462609206664025968706306681018767809754607474527661641699175862503140415018151458811512686806748512426984372494667379182550318922502476118502426109835805061279739829937033054955869395245931207931115106455722791501753636560714440298048402194817087113584795244884655294725762994566494216119014702896085053206427319699000839648838172677074391061903879349995489190477070348633296774053599449489656107354546625157397004293426443041563935683258019195062208961482015548289358181849620381464309302811117877817728120786719297514781083845121897555541652352989312972650012137740779547989482548025280337328475348918822170878116948658333735942098110607362360625313162574204954931491384459793106973986057567335759169147936569454780608144718458049328024426914301439980143150010088285997036344351126042197958346670864881305685333971347627165084831485668248490752576913581377694855045080202086232990515544907810816787881838146927136658570228277491004536145808610185159437533149966325390940323273650052572134014651869133106681482261084968903650973870368358207745625543555655721203538640873904419589464260184481828628599576813686226044459869905490507731608666223218356872811857894283133978363427594782374427028752230547281400372222175351521355592586940010229888434438662661140216696076686500263613603650303857142052827023934390568013787977162622693058450099425226460120503902119678633711999422002700397230383803828622383733463966531062940490932117984664433765105403401305826217190988248161342936620414069726283112266716299803142059927804317462458024505308594742456939403065404775367931406081639075644940071287342604560999976436161060569001348556245446752733826911894062036682089226302934229622786323037645096369769221011781008894557773770256296328679514852491067572520911358945689554254727301061963573055937835526306424844337091545032334639166262764560552561452937039865113387992185309611343880117829834124674637642078290231544074687283428930648408426940091398683527189280051195702022950485577303830176117241603828476837947117582073552220003846547118862337355782829618597623691654810564716746418006422734286569261333802767940474103529446776473614217129549998620660633037718087580773855652420336611371785342669130682877233283530132723413410423960484368938281997591401923724185976871640796495802209699288941947390154027288574788866979361881105340001524675255506018707690162409237009892039345756996372090473782434870408026061152788295147907603341489620918294549176911038399867358588142742055237050614680053352689316104456107103111303288082302199804724254354155851878481148529269425678365954413238925765842792232356518267615451825334468068830382687881294618151330972918865028074475646610947158969894903986337752704274182713303856028166630107615235771504980410668260670613089792919919489142320098888141781966194443892627527168013432891909612602375975941936984695174490942245414979765742205284192796713438336352001580109646740462169517959590848703173154536953126885485564946424900434482731899384954698070273391232659266436497821047383034870471188028290907498194687628221289425754909106567187895689284220463127328993320322962632456089803064352355232857831850520006298471068842853471605500270921695797696530240552261309417824796830918741221909863885166033504310462330949897820765433738639074591156924475941529213421144561398297230568118659186899184521004468037971375866950036328418418352085695940992447801507250239409181529260122112394103561093659719688825150867410746649745410165053088779765731050670666397574544045207522660489020559108185463956932318367012597331385927049013062758536077943096082286497268275138581332291803108219113478937716477715383218176774521290412050129417598655945254589837082183303465100174200433653101004498423865874888864067638384128309700449284134428804681607700616075608558530173441222285120341579648855784677145907166440935477201793549031422871722726866690719461028332691826547499940541696718721829902536424397639600900692416229148211448926287342730330657159731660100580206180342845789488558368375182194318911965924613088923888174102977628712312643661128275311261621710993091208717543931828704212208121551975261122614043550641066112343652549596824708112498199281035228792076055237933062304781923916621540220086441174870535867060074828274854997116533861327460836913854029561070569933182072268596964871770996947406766525781787225830183169059276008665766018780984556410798449110128951637365932073228017743321759556727087488234031681001390001532893607010396189787542952189740189824846121284742421350113535681721225230064649963729571947498842964870668465333296061491401607207721973558292140453164383083067331572971104656775964007744387212993226212188694416956322846935868547199885711836580109747670138055420963947557849527005113035152994464586940040392685300324573526015323478468646743329621879807773456954630571187767935346006056239342284568181951421919312960538310635001294485462146327831434168711312000191740660807693713475653898465042548781418946790674491153534878558525581958025060485178185606415435427033166542611127893302451840358951654210175716285901145905630635409503692138546888665600189828271670977592359653831588944691964938620070810551775149217431585640156936120924436924993143608277983844425792633480070313983206916020790855824691702345080435333626869965563871356744527819892575369543959137988047449085947929577304873937709678858287229892035756023155643330592316326974720288675035165537711997657050347845799245658215350212390483850541803911381702201893124078554335195505611472764400937487643847180596226938681532621051510110606320249570281515933447497708279225865498577985939897148599877696357133635276397745612611877671944314587790232942916391261751440315977193492427515678308817310943300435269383296784535080609116196336314039544402175347955157555622216131772357640825179472542699965954018266655811576016526558845481129612819152337713646384968356776097400874197355479872964221008833768342217337739082019475685574314532558620590900163686471622061428404268733270940937370676212528164915008380025063528592267191257180247518401622398111292804366466844570056752597373641515853371601767252532116879530731873986296545253488476974335933347883096151598938370337796111677013485364559197666527887922404152540069720115962247601950498923034782173100950536440817917691836483056280420206959522061850475119629276801740315861071750714608727264329175271251873789307548732753799289252908676591561555978753982859858576177833416630296763594573479550442243323297535941063931366747803096753043323331763779459207295697427817546402889105328775575468886181742660478146484102827993271075614324418134924691692167047175660171355436685035075937853223247411973816358541344752830070952146445712202111171910606464759125081602981920903609238801330071656231913782345243051567601710299437907525868200533788889389016106277754923048135775043911226487986059379161888979453380402310536872274610893584860287311223689392165266710083794534018843023351216129911704444014463522143546167107783255510735922824398261790386779298554268623125966889275177276259751860646553343808281184853450448398280006881265913816835612464637541441521156926471172331826439593305032663874924661588654287921539148235897545829407056722621997177372058271977188477510189129696160307675784660800066488530383355123030703055639638213386421612855523979481271107082628581949211592008490864273583021180622525853550833354664011976618449547591576514856570907077325090604109446042999669231226052723537611865102733072275362678983607464517039438633988201735863071379607826642163344014084734107676245922251620868629613654169609959636290959909773008950614794796741979104843449711666493581614893594337190487884701144164802657178157391851710888744778959381141500683020959845180284620533718608139444624392739751724038618719737508836043545554140050680913141416610928447881217238326289858939502704202458205276253682694640086386732199063136116043595895858181065947281904246233129943731541219038519121650935082359753753002406655356431042384969021470707399708049667940633372887594874205660128131293211489539064808181085128133011622690319672673792655013886137994626543693042424105848338123100104391824899523710506447141675221544657632226442245475813329374577122882893277610017421212844604555030447403529227030408278419869038313523993674643305701349610760895926063269244074188332494621295271648461351801498844753626166973039253161431428676172270085096753276421527143214948492983406220743262643321105650082418127069252254616624252087791736135768617688891241911365919092509536806864659051793323075040322828491562806795302280363766764555985818604826697498390511375100114688777292074332719274030072320763931425664105632677440758152673707510061660650367272321207585261525856765923380358409787937877657412402018576803035275982369173104781642116691687879639692891432238592789351497433642954953335792357996761926386260218930701527115636464244240102156507539550637680613124443104218030128928858517963432582382772265496741532593959735010341061025562254960434627373636601233009311449533243940639820073649457134710053804214104120792416681684527153692434722917235303655838142625887958970991149700038339677817013819544373126840647918448619667270054533254247777002505518296465362760286143204636526258697941935846006178242795496145167265857446773448780941816041703008882776185376779362842702680578265367115511499285799661218139673664956324765182724415672505888767446223122445255174282215817441655017657035530335046547286213042768524182133900704445537310378248766595953842399818533301387115317891391521299051257984508321913353996723429934132229805843461716172260786411407236943593519639360149582461223467634751067765862901769905285507926579953825279214013465298147472731076306917401211209377466902003287405395086076656531483420617080272812582992750860435390333625283414275468782121126954862715139379302572337892945169221258676920649956203202528771894984757844953423834241326143541392637729445095216706807408576268069050734066289298673395905970572733195110173480097656653499753977005280114715795602158920216423040317294969023165450901909021615582639130754382252929454039542570965112128586235525161434002522758523955962092416798938841559194299232246128654496148134184606370651810840794888746599977978563808869682292503556756433549968435671189428495496139565353361426463405007546740848664315929466798825282148481962903901649632268579450541510282002210895239173180822389001209960904830391918398872056537546886944830066354078213998961020343117237962856597533923801679639224443171037561167022217563152367987755185712114967981071940667321579380696651661376541190357100478312619622530522956622978326347431745907052442015600736095585203564662699642990680262566741915257388311248447862663660806650745897336806205235482483281577442197289440175700387718048202735921055369707340005068680935418494436569716770998540582287602637319352002615522941046910137599302808010668760782043605537206094302657768262768739509676828723487336738007333982032737085509615345885428100614357960246302995177482410924848634590919357199804561512755247345036507183404254434774016828488480893773814533651653034656114452055804448425396393128447284070405740233857520089387070301029496526573153079082346328443319892148258906602205467377840551032480096202983261840013858964547669513707001201139568244589114531544426654815409376107543013570134508803478701406699403320824389740807422883417028742875360372901396460128524169650724329308571251146586949662946091520870314492140938926773595210597585303519932447882309244847569407698035096161831532426486342165032460037472420830552838868084025219346979146557502878590254044348374664302466908431946764015745883880895758933619018165842860113028355479807436469765238134857509678545040291939725185392134469631294086245702322550544797436419947274980437415335216178383629465002658497361319461178888948503400947216532759751376717371167876747340520073471101679187026030217331636555561556305584522264560583672720895595304245592032379604617032604356420300839440394470182000255158854712307644625894493305584589874275898129752810205801737771919398517669478013346288692163089456970604764684095414127712955825573050687017896477782485190733741506201895632907475385337914472228184702086402081288510963340625372462328197752136588300683880682782405111230774140144622196554253035874534151319225002048298725575937071476011268677049776654665893375613921150225546665244151387538187778118410771739200123780850995818835042627946523969820714711944872523289568784570051651975229860604527212840408115259445415248075261771101675619968842120090005386552260668831407857098979834431189572708055660441554331261240510458713573123952875535300332149722840423681631478638739962632838109233209662094029033135119462009885898565503752117230418221411392949368256526741228473505335749079479337580979252361352237931958330096395578388616397398613639723137128198021526784198010418646709974397091609239448529906289681394583233668756327844387789722959510976545608293707712467685854034603937259478293868001732440801172314793798560024411202216632926452112951972347891811335248692235913453502381923726710311686591004921868196031757264503945061785424747329429704603258138176211285224287742428009277786683897876678997675758341741808799898987824645875634025344627956160967962790141519375941449817346155013265683708367114079408195279440944745780376499629478574663055328645544333122789822462102647602463750220540448122876164215954759038039043391600277560984932419952786266690834938426116866709967266021696505590107603357046458351281936696524837701288681555801858773145773336006801399053965713895975432115055676860233615472532160610785115245882090194894709115820864829434876542123214617984335136936208144639411116495989839661390877658712229534687099006389772499543683461728136175137159620844796453876073761132446476731543995170354380048055557988232317879853928414697611236682643720363626290166185534892120395867630573076123270870090992868675447930088980506794199719971952435702918365069441944315582821428405211522583508405194522178888789626422410970889268396388807926925868504786672483345525298584094331279914393165680753304020373669166955725608063542483166456693527434233905890761659680763165416693485025330333430144396222436398507389427304604764011799533113776607885078732530306243584964305663489222936944586392444443656880652330143810944393438439586499836198182830789572522270877097844606214558195867515895698927692386924802880483103094089993950984104121239995097532310098987116466997281377519038673866985302193445949710218513715375625627076024728092422969517414804718533690952364130187686051159972289091052211606162433906504446872705575837792032140365005913491808905232644214984079525850592306649154050094067295274899556945433893688866885325685907861481822330746177459595075435432361568781275375454706217253566870277155133881359591440543883214158084527892927473473821085416816743452613038956968364518904280560474053084785808547584789473536345155569994787727454887147521734491086777938469979267352453596283776192801701301101506840770316951434747901716483448767092997484303588670503890355521396074350160953149651598077519888512597031523319089046148445834977067127880770099252838721728243179143791164775605403529932893149318699080571316364633179870757631758267604450371777695815143208408939763472791901778516285489795932488273937557642630412974554181726730486541012332827062852325485898450593562419952976426920787607794360360957140089372501727842286417958967920478980606883769584876123850026629316742535002281458486051847158740170292471122840656058546923633558879163129852472106976897753529044183214261875555065331310491004797696673499515123832283945265368728081574315184332507122059647777986430001920200430183762206814670826554810951458889309439010238962921141429460356374792553387233039071364767998187792062840278903138812848095546571365599475805280207000762446517076432614568433295878017931103639443485888950822680234101865326901920755512390495605215362380237565273400260838874210627451347274711021510650081300715088485964387016072251515255847561014882105982005174794739913482024246991195332124261742763832487068466090003316280297474936418590451588302891098048112532677956443128728224531326477760564209496703055630368118184430974196187953262268769792923131245628521658927620188051387647819465561259972858481549938828658254709549786528929047856924044685410241038487657544665770033597328000338618359533304968129788845085991407739987618543882564664544111185229990175780552880272653221813355883281206194198811384144857894175985283204460239253098896984086314913731182072182793990322118373143508012177583401814274309217296584917257655817982927427688280455343648108916543604332732232098533929956365833777315475424495515900813319994012498759407473316097211073602410565963699565134541401135859282396571899133835248486541551837466643998710457704195910351386140768954458394607644426052431324845519422246556009760083508217733874999996071648228734503123968168912846663590754146396112609046852099266125391151927040355480229932930222598329649687291091973733101138790422451018524813976725944661613901515469582584164939818421483055755512731998808906817764883710319123491513073352325863274983790457150034881114163029383459389495095221591513405534752341280721078822885745552745102691319447435638754813066167801740240192466394005480329886610053947657484551156708930593660366602806658669664440205709557388748325631147625344837054779142189915811005916489939538273611343390416783200596041465693833490950550207818761089402028043302217260489524117528668917043121810067930466637967916787105392514724508094695446546551360348359190649470776673941586588034196666433232513999400265622373349932414453332868234433838898016901738439538119460036242078876300779701389950357664808520809071389328041340867569415386817253064381691063570825444479575914850330885261396528414152495440333422024121487092209305043264354027235618238156868174395398242453133532549658994583491524589749140094597790129064052246016293102718538624235162712253418424202669464686883800748314182600753613834129652691456193385328432435204424730790873983725117371129510598150018400816866735088899919662077832663891312220352500167642928701812488239764727731666529049280008145197744097401604496035759765285101720159584649306262979821934762233898425495277416169366856655013471107852008420843785955279662183582025836528570356655341541624565304012541839693655913609633503018033536480797151260290179505488929849258801506048015943572062893059674776689411020763223358459657328252535380636120252453991644433585357270205700641987441705308161428649068532948838099920571009211550470665897051697584162816442481770589591597703041913293589206160760638204826618647389326122128643532393700798258352803737902189749934652348320928633004102738669672522365675141919643023404619009588352822338990233401935093046755209773812673861720909983495082155667954125969509683297790379534911029625834918499672284307316847865563424445503890228676601706660205292809524991895327874226062501418509551458540116935784754891621865585110997277274991967234900173793604918957948875383626818393443136172796030000702807213149851047076875421280390476396202325049809245072843606369637154609023451250084543092583773933372506280091250778864794159896293897011844596917211007199535740827679671304819986295720689068178761475504993221686204982602401341730895469661416256833413629947386100419964344869031668110402207302825084989785370310618554889184061710658148021260291570344477879040332080713057714167970849132140770187532073843667556109255162553544638330542819649725134179271366722297605753766515050331333281668126424606346954825395541367373181992303744093826785175164288048455946052328784541186399027582070650297929624240395329455469367263662017239498496843143657628429796385678974366797947875501226297879247459623839343814081730733972899092340626325006670809915314956710752424747504936639021742305617647263110677191166673846856550432527713898173754376448094746739615390866958632541644024418600337145951724591593263141818381138309435811423740822242767504227262998886642837173789594608786697772943267145499914676683084220929550647558792118870140951959933582679568102865684123108564043775907803001428588456590026169987470431424809229961460348251113205712186435278644950872907205418784990287556526479995020439281703781985568095292651749950153409345164989122822707699147104548245673835532996010673994724514975440891152415325792802686533151255213984896482025817424111489468937137806981736316790437610526412859857937583801119040574749786548754846027310473578986404443453092059941669850446298540368034277950659682452940279086169820462571472714368500229638028778378352720264817455859475674808484801950370045517305275788765110559983023424583862371277570972046779443362465715078901091235654024093395839281797171457606359229282765826115955425684917081627761597322161896802340316282099610884622435367889595320055023334170596883762785183675125390392548646798479255765618554875514458404811874379179036759639322850504903005636165112986025073623336637162703379107365013287510055301724558575510435636936037255726873143283039232893195024992559726224944642809892440895566957917191283944253883502878474044374782076720840907311084903647366374660650257194318486535246811550574734173843503980965015119836170209582675354105941601522221450614169542545931486094086596011114068513282206721633669169535988288958845648743968563230669848108496901423631286725155269455376804675657834893317889882273004655595318618265121962400997710426105007789363370470526436242979135767304805226609481693686132611095029624237543092991396097011515980955392634693639271491715935322771607802114503805721336982922828738285262044209562921508502037466709607171217530460281578869856571692852125021957086373902171647190078360515683234228555216016272429562615541476412043912777653003345831978310949965768934392029699331488978579849804042567302595855878083383458713047750095206715903839194944849572601715375152695083434536897824272878243924567993374741149164466547622910770979717451377147322196450876393774150115285141098182141769587786863581002969704225526662389575138536804023354665558718265461668413926329058356493792826929051310055273283338099950387693069598810620846674061697087004826379731265468474711704727591282686839042574259102610401248977500684828117242317873406337613041684880985999753700631371747477557410416606420301074843435587334926719364618285220775007121084873936729127710976788283395630573850757916020525022617553923425759014674779418052144483906116503501687965827553234842567385800472160532629117350993320503045035498377025066294515739610987133979566660263978688320760193861331415082135215187604048649748960894457138400324418695759372614886920338702226513267861938489441765323189648524290480110376460442130749270290593465898519687882239481879258464285643544193443885303465276381970848250494620643517674637123159877317790374311870507360896399308640628381528072465112384582102589860976633268987668216976902664158636023102154061675549527123469621576806974052818440085841118252940947085226503697976619371762766746988281056196790073316993993823279261012443266844250524006174048920431534811102203026398168344655794704572458964009495426377895242539752769148500826442063497407870119158283156274751162258328841724889264830329472188639185890725392709696089830935047921821597653451147080746422224022008953353158731303479542391518871458428272055470313307755117019306299306731171433062196759123284748563517289912334069712944085132837878349167788219667170643737632063982748276257880638960349617374424451115980140423870635875218879784812462747266886281030150406436063066827554597580918418013716225547943106203755689052681060529517839647503036310364384941162778555008396884990254415138278499186868342197839511969731984168498978552453963376989307728090590385809906736627623275718133046559453223135591416639155831161021869577539791602567369369352852167274935922373381076648757387780488245891665896094644952275959140832538366515087277089947409942600397310996441320667954807732698229424191917910531510998869204442136775755030295566830301273957659562306637100443495918252113512916548085807025825244817146711060453897236120726667926672938321378862537531842482739066894868200472006647756763298413402594405639696050419346022546254864283809259197445278931304330736866109051558483929964785077409662330133256632441545928819092294659923952562062371008647618416283296811403915376745273630054019636793714834413990969446768164435029001186450312933911673688384813872080431454821258239361851487190667725665081160748399106646516385614671701726600840464667079289502163543457480413023837577386924081313418084660799272767001333259099568196131191652704067353965151100127010725773390710123928774988247858940858098645328204465637735768370693764860847546200894864358653548532479878285846123719374430411894016282781984058075415356287788573328887189393783217747505057813686483609630414227678837759546005624886123887043776653718725128325410497650954591600704964844578563088443791197340263302019913419771029823956130592552194767544100690904020594306610416663336197089170044118168719157532110795952341352689666959013168862231806050984210528131855360380313607185199038816412148862596888726481090341521926166698017980645962842940750740490572373820471892061077885766594227557595477414302398405688746013860450541189871033254154853107736337845654363725820234585377071270789065294037472605931295276788276080515482730336116703117254257120865849456300909694738222441364618963632839438302580921434895115253012249701798061154154814363186868169891981497224232502791544567132774201655581728115420742996057414950962799367064913619031415306831061910595958390783763500536677298839005963681093854746892626988531167338831834469599494046055619379382357553787324991605017930244923376402778650224235579701986820514337943700849978638242499863092553443296707052631601635502564506959921489727266752392365948143883536630215911023088880146809976325113850693446728013626312534953894894871006910631208324036786010433421198268433601490813586042770861627100599576047204884584350070748576388192643750610826955346048860763758057780604366718138112018058866025406668256635188514101898330092391177907977948007198378155852098781525124577956868104166049186215596138272690633685172675178736896652557319061046762598012359524367506304054545740930626375463301852533667813171600253204629614880739066187674979025827491039828342326840331582500727807462753244842771785027569899226576578331922566038220010768338054698834920924405798511894049840187341270456819742530701072644560068886992550324841562542860876953484533614452684039948912423830399123905062559372426406022351358511079260451800507833027074261143354154016964816134045633373781039147040431093646503332515775432356759275691963632593305684025081304788389472066787293731776558766887543020141879779269261035975220675252515850420137972810386249503318498333353395452694184146944427912743883980855424977330887097640684596912813954080745876346362898330005287474497066189404921652274064711241231357413183648185245831237399304107551152991786695336855135207392247466642793714490231672025135078136104170789187485967305545825482761916821052813509187044697646036293108190468397875378035601586205854525904541960239691997928873016525626766048294515398024951886209865881630568478546914647274757875468877432891511341696366564682726882359903595448710992994424064915300535558722150072513803732094492194286123220464846914506659723777960067538471094748772101464427568828765107257562797414708773046106602790572227926526426041854402099832019956061479325757521583000150582169235295493210098845172376561138979919547791085838033521998333337269910633387373987935939700472214950399975491364377300741128311444594944701090160949486110469787891271062459663810306656903616721927437968482301485225542176466554775840865596630859826498163754941516282545131495326915396434677685450144629017547300275439151923614555232826333373399414628567081524203097269697038216716131834602832808571479605001289131375835037000856367667144670220429067527061422042185734840240313772180255995756794709195061517119178855863627733931950834715568947121901037951118943235375695239690842317034024434458631822526796348515721435816207561938962598526695366409266614898099823766776442808570753678533874119366513707223037576224938243603074663424633484302054391984458684229977674806002050600917550815107370889540861723851243927715983998506367041431023876512992970060955970170933354861439686078236680082648794039298378006667815557078422435173687787649411977196433718833105417748249538278829653148112105238998610901469058285348882262988164351933761345067674078268972876949242205898671973855628744612278003511208358936840191514213923890630481279989965310146753832354997953029383662110913078509714713258989428200325098090966734862330659716071946383128832953954933350559833229234215291579154109930468245909866096380548129076019682992831429697738297256269625240007790997462042903615966824756922336154365537368088838319650201174285454801788121402675202843892798595785643124178454202720135460125339470886785988190796065656757012254259021482888503493575574246526814121492642972897343853465213066039644134938308828455385676809301740825222173722633848798308750744903553868403598096163173229661467362662700222226892046686648111969135434750944619043835315595309714975559070013389483563210608125052491189258731248061084777617592447865809202526757442713205412651169736702513646074008831782526545124186823046225882522848026283584397951978610552797979887131146594498411259917939318722902133431716102730401398434658937180989996621488222288256370182115273878169747795972885351204752942207504420293073344208199293845963768246036083933959451560528735239204451514054774533357924232780120902096630696484151798622820257466447234018409805090500073446935148778786682930636107785849773242190749328488237851857898316420067211741833602138161250480306038946425907837000562729587813258485950144928519182131847235724407864459369969855874674006083348598055269843142706355090778529360025676512362416862430683440309843823473357870892900460172111192166309439543403858683595760215025437462000174537661520387216581073896173783300013115050161823873312002234731992485475036623488901097376651957919541151773959644905871496774896796454043490214531074291126738436944678428636060786259546734013820692879845417141437101984653986477118751963734474718835710453098374566073600433678850695281101538005559373505989363572370097578225100157157666108835777779212791493948802849455586598564545863337594122236232827326823251725191428595654736913882499075981774827593559531959859743849272047039445374144556472462067256225834721188456853543769235158440287318830607281608534765901371084243985496200252565058618757658920519876589193357945033655742810725443510802505346393567059869829813910750756405792993595997260970917177399175578290812492979090900703371405138153719886218873644262841377580928816574316136210460429193880522828613928815516242082290093291064832052873827344151833506414216890250882945648119150111584769600869742454912733225072350064858189004754383699282722985309911416117546637371535293782374191183100900970934391882269536647227528467746837934426388625528349512327146067110954759054960410316287821600002569804551301512458939375436800239492017897521673900740164874770196332525009476674036811672377617118054873851556408437466117317604196192402167554184024195075983138142437967122673047456005537538484787290215105299140282771233767305917794856416075736073617405924016118066095971049839034829633751656217102266203790894887357536005330071484232165481963822731378755067044647895059875603741097944738608539793468432123946427520233997312370115187152866036493330453577899777363663010263124556777281454686576904228167012765305889357948734215590718743642575367736250256636164309322751186396719732164077611270880462733912989776247661894520900317765105612950692445460224344353031743755212141134667407362536391221885590338462529970819436914657255265298575805025694315275590432987089392916580889586631293927724167045514971017280508557089559138581013681365215641050994838058200513470486588725626953390457945957346873195400272616693641008322699126632487281279560979733066559765298333369375363282979166360720229483346611608411986331462467650832822792678260634406334772975706208299545311563772360142886230803609055355028736067647721319470527703938819346063945996306712693897274059541710328285297558026104227332032901663992896795431943950357248281832217063472316007530014616496108324523317645638747488035069541354924448796489744692092910491897073267341245070635438961949743003014226546141451621534631658675736265162455628269495708384153853981246463683987997935575574962173393065241188545431152611336061716951732062477799082280857948416551979382615923784685828416756418954044074437967062201799662741336199918965303635436438364144612928651831551148604004336372461349678530792034228398279190708077556650447633152517758933768484481780866639250761319131417420980390203907063478271231687066862883329659057412495136003598881314692237272867505271038035356125562586960990404230333997436623491135188733741531212442873802690257355950775829220799192237875977535878958170911510699406916480699143948024462371905612268800742289621508536142591046402601235213304422571671095060919218376415608140961214957437093698868052782954650055358753037654913667182247301996497184504413891808427956718466959440881718820299776953974028834426075832325616662187193840992838073087088178477017259317478324965143757191047707970038819705890849607263109820408050717984865687922287835948142693307780492843927237373589614739583616078838688903342886532165313818322023946066792301925919998607555669343470925085384714085311262108298139740662088613815608035541478920078734273291234491552915602556422005334506755824455196210762164833143866591999458417187477264264974860663967628218758272545276862907981979047799034136155407886730625794900185173220669819440656239714055924864237543455513048667288610921594876873966561738069819449881066353033751111945170614959799480294632434093124333754288899064100283499817460105060205377858955515828310961282053921744663494277850423354665643767923456291439967820937384144490511250311995736777312960213803291477458279206784712902287131918516495168717119604711281698911639443749704140301516249121250708209310941706990123645282864806030164261116265145768479697795318128680004887750124849501083963460537138229561856746526464047524465670709930711624263731127071588890898672574485654263710084718303782458229278299914681325814901615775022272074154638965499650984254006367068888592289275305873664774142409033257897894360657258151794696075221831681996749546074102877738889974046128957191055822041496171335731069596848181550902929760386685431027872964262039833051170902624775162039374842762801198608782880906476882535239267525989957691700005368601373975512349310261651056882104181056192847353244435711814099473065503415607134089535816840051686898224581363157868579138420970197871043198761462297902678864658712411693975195719819126665274217524471341701124476636946635368541365286925982468082660633018646119574384133599878774098717934153798927560829555116840810277341920047341583881108071432226438787623362104517879984520591217631766979528618685004185691958418339029695572192420599543342069474651501386736880989065799926324713668009137732738223651771369907020507907505450205461106269413650350808562329961677158838439256576342393097437863743067554883308104851350687345640876800583087821922775748256273440490224392652542938333648579509024803255832811727677402650498382443104761415355846596983715262821191975412061475977045472736189076659444604539408781011053811580899031700820748152783445006762492049621632591295188637449768312059341965896502460634864853595383712837769615333690787975959746440402258597634328589016447946054227096999932234837820632509937294206659522614332332740339048011307922418942331509227503064656729222423419650012544906348498088287543287667564664064208703612639999423276562790839555198176964997957129540464525234142117645551676056363266496799044085712853904603176589373946265411293647753871221708576030762914350007860629692352782214787750610643731749864488210085551292489667449628708606406111326879097504205426910410448273003386978118911144268195394845549974256082606012982833664759120137330074798837997053736395820963526610538754237723407751033259072662256211559720378656687084638071789451233270084333245492353838695293039107339154861634408256861403323010946148774042643532878314136350621328014669208273547173779341537553313307580967919729413615078797921062038605284072420261430384563222159209701865481598947896837683051135540889680236148647974556573315144673428148735854980875680618609896901617871831334244961835075168203623593508779425485176809109676799478454596256239472330144613836725530752496300439227058611484160570947103310316245616537564213092494004899583008350519223800356663266844600390970248790458355771336433396679518856911569481388861550342898518790699327629957497630197966462999373568665668062014181117200539095762603592350467127611480014510170584213158871523885023170865898857036075818964301350072267673144752823415527605970178708429980464615127584152761768071514094075181122622664265786887010374206539137073418736605082925020352825886168106975879500642170710475587301434543596114032380709459136556366351575599490746261054864679693117555656997969850813009426526851192530809596750616742859954309769096339949260187006802320428146228064582353890528576924137959933925168046767761053741589885680116502773542997349485914238198315081465280999541754432761478716976384851491190285944638367149413070126428460725163127098162688032017038958356715642363202612848095586383342808945696817672228130863038939361419204126561258606392967471775654857006565524095553116828235389247806586455391967886332577743230490032401395775816872073233848687660358374330153796683366431071117150749272713813944462476122788912305229848920709281334684989708295939109190291920444226765281895703921203997351713673712980985504835943719249979227645015294767894242470494257073926433341270498134601171140673401552136824140772594082294413404829770969259405957227872247446604984546265794412226655843139512127375181837210039619634653709057241015213889553494560306689043715906513062895939657735576054799693130191065516979586154332944564687659148641528820781479906435026248964072893782842425307416649382106274024939363110629575799491360910173216564160389894371265210992025050757155706154651106725635844303149752526853901056757686505606738357528340826456915856244028801235584836069898393127118372434450114483422639956568337404736345253317057468921004606793220520877743355050602480366157406583327288383521479014997205507177144115197894126595342473408327887456890367955874795404215198422181374389655064543588394725551440151801202021714325856299729475346420282476897708442410815687255963568937389809469020298598679812881687804727900026840772329995212002496044737735866038005173739840622019895630413411678797272635546531601070150982721601300296128633687134784941900572842749166933543059536003904493197078572112151977000948541354638038746024347103788759172451564995633091587744914978598665077244710019007927257809711197889517378428472417386074913991855951728083945898988382667587091963074439547566274381407263722150534038884810205230680921785344292775026712316936441489664046791734247390141972871865550330561479815700504540619357475800946438211916251708318595363056809926124340838875608096945706912544144485150087483848598389581663111433131484048258179975132791745454570273238388203068565982733302306278082606739131072384449484367591345216282759707842562672479234017414707103569581058379240941029587309925720522969470834589076156697780773427046874442706623783236453770523950854575477980180148256727072213667053225745795934428776540563337195706907887839221209696066215197430337761751393831969135610919195052028967122601300163805746711039124409863459417006797198328181416101981995557938899401777094702039913862862612033325933949764098608291080256452834328263859983092350208268268497772562423260513363851779574892396987206239857491406367243085390964757211919437912348194391664055386942938266020890252347866834584824646285287404581595368110940823327081408162064401411824142558753516792949193105246447681536269514795282745985440298385256021871840522938366279827776293335399005507538937526742764796058750496302959194034936077600047911389630503333233189605063795260464145958555345644752732304318043023174068717941989013801649677469605437066728201221814268577032998306199997981320450429974480119915212783966469309384594183154366788709104598998371511042893328871745450411344931585482084166972886784006577128188375705499077442755318365238041772033714473569956839873450985592980144689944725790195128738461198168979122180660575163039359608562292205289279179726415891298948242273216097055300855380729990773259656343466494704811297130008664611772354973324928057105093838028244492510291683812406869597627127350285835975601933982865479282326857845653109978119598258135698274613304986726310776741798531060100020721209542593492322316941827777239200494330614078016245178434989120044917226661753961269486883739428111324050633427461654345653640868429816855951875537499810033010845102670969596718429613486741244350414718878991820076469671848269794018978214222189006650958806921780266229240509511632651689763184213425774829804511678428927648561309981920504534544778695803341693161056334146250886074308347568571061525107364399494461642350932637889215452255423586443054407458628533566248095443199983038717623572490259232844928508629445995189327578940534972693240242032293966736279264109742566489889250589526954437241927152879432706049321137080464720330857223447563490821356820784444007006554848585185435396084272436213693337901982146013687573235805141145246819308518045533628449319409785336210715355721692007825649082709140332669570245889672827933795227527346195308403055564170876490482159425070600607851696271057925061356965846168713320550695557849432905896046260417340883046438323724433617962737492907772988363803318808730342357987396070156716888504926390679389552561082594452234979880543496791814018959677981422123579888659141958688196299202775595826494577130419540733914943039685539494066283308026226717933282840609608949812494300714006207521691790462518903516562309567524866558732784085821093322156377400678892752830856550337508502077440131432178641756429203261143449530140429359685029299803420607677344131640273684013907079174462418718295421024502702287482057225674425410761715808571566391893440808592719522618364325556652640529091364607446635459353325469702506841740083270668582955582664794947942024252818850388932621547273848618723991285954542607341659131902034313706323737707632459325397245550500376213886741644658601186832440267811716601687178865245780281480675494996245789400122017425150178550262510018478139788376369581642126347729472224041174452052799973290544245313501248235359577555035358996608124915907997355071700889315316327760134166398927979161825774463766371231425373925321416160136415773722843335067722281739649672200323047441475372249474263484983992941333223494264190016841086872601384626988987893035196952367022227029613346725558065914816674722406169798613226258998194152797213781433891016434269481568178447033363571642090066233526151813299733340959523000309514212262947814245995482568534404174517988628736263554849632288878119334287922919590451226362179748430834302296504228822878392499853463898097161299081343918510692407861830398515498815581047300087004927510610526255541544671904394378563715589317665138969845575124075455692704305013349088596419927568072015782064635151818594991410671739571008164293153935941153207105958110508189512622401120889208987949421466203302630119609347435100101405476298718331979002652149489907278197583480433110669481989884450376407844675201569115356051049625709414598337848296573426408119526275751515880952866929341126900098384584491967218041176690384512041256327386772646079701184644981890253370227519258368611123824858748605871403978775433305970408859244610207603623829908301245438247215273438486253085704816523154955577529420814880250886264464613822884918113700467536329507468784787310375163135942138543891545914705499888146009500939192468747588403644596467316776020459077134455361007145262998031368470930118450732756951353570223246962672279115101868599847322099066806680446782900742826070674071570566842274704079810509230861101065118799069370375902848810778950657335072063772996044874781460702899725992886737099603020042352334062053318161496042978600057626637627324852702801355588910264603129494691949798164860024888356556783188449009288819640906372761386774966785170243242427884481984906351286286314845014667477881674211769473579633955769175736046054486308743086408308790687461170833121872112319675334717271758734243928776562728260275316537579096605259614513134629676829144397428638571390291164340570354509568311587922254524973337255625851454694121426716043175492590712920157498386449452084945990144474629622742388757090379580813948648225343094323512822069005421000672604969759631112233876218548435173318707322713034235769986010844918393304461821487303451246937657448402401784887226330257884178941649718439241154483329297134515531823115591840575479899816817181804705020159770853206895275007509976005241567391752544208732452395105591650411915468815470414563093190239915633077600082989367227084213703744133310470903917618299493655374311254624891601248284482326999913615719136746160637403403555943049318422575469053944265946822787683605236865945386946670004697338778351548036278691191203515672250978857866894865248922247704217041196453437016088631274320290186949594728035397202211089055323678864732264377274458679567882958832102106845433141103598591231543147831729682336668300224319414104217950369014877694520926354210224483074155433494840681810556346590520561251196846483984473163313460010913126034987126538886490758843913727789984461704628415413206861942820063169701041950501802021358620594964025605004159050410439496715765872166108813408133759521655690291282072082789321525409081949058365219277943879992551960061160659838832042138455415475465455621514750503622359993734035563898694713717860100680937505570278950181380779805803350576047570213961231752975781973050753136335140509185851828612690654199463633941143711613841963627692221356452593521502167068826174400480077242244008168744877605397655100712787022892158299552422356817216357316639829145451036996105652053327768501618793535696373313716576333399106816009128383435012352810628610717759124426711427662161588646069778032920050111914000658478181111868075422749568380066631627702383673437383706477406691709815302988581842017009525295995311721403711187460891253253192855332082077714995840703430761968921655478142836292961987639295109818834433124713043046568526354282558898856158112448486216588554407050333662648101084926632613861907367286717466396750408222062689776555301689488065035909543025619597643721913422560075368922170725008037011893860366749278308800204900376084676219708924608444990765890465076775227944105205335448403972556974544284087430565756460351836413941933562552620741677654046837454288191894587944729726513906991314091174856816366658172280152581984629602263728475623253660494606003288582298258306614410063796752006717545012052113001158018691008110008564893500455701880447670028990620104277142963855859599511340405743349773180729531771354563057743813907742205854006279198577795316637565223947796174678675692907204344824769050320297663722884682145889430123880969749487035543710370301129389559590370066411061768038710933504454772434387219941144480022787457228720600690347805408370462248563141558966907122643632785474154258894752992713841215029441879994738607169197979184996048504253758978222483650000342784989044622219834671004559211582039999559401287346999297098234227643227901311097678665956886669583573785703050378883450784554216560800964137428544004195456858066043411325572173946794106372379165469800361180527540304094190710327743872905302172574399304808425843092605605879789127260527216103745020455767949392370499343027358206081154211909518187712818748106185161953350939774758627356667255010647540102011891688488301700460910245620422611657366835960748035313003841470819597018392589647500971710501649689601470857985399172869089698168105047131894931951450027351483418064185926835484528839148437985960166254420622354467244308342086851709866592779448033734204253033411963385795060674775629722953707674183607570297435547730394579320031271723990277862159129170460206765538457882255951783375187084735015261510208184593502039197136706006574992484958256197202665058820124829336960840198228531819172638506874514148724824454719314778484255846170866030752619490460243747560412876056512260758756106429798323495830604750343034651649050954029190360972806309386592548428116186095461006580528983063834377438591879251477819365668577331032616896586050765990391998637090365525512874270460159392316788338878598550241691503840828245019760319569849766001930325029407104235150440346897132092262491277895382854341969868194289259084048065708392797566780011263139088219401234825721488600925724497252474018737507317697558803126122764395493101173202302492627552413701303820019239596911319650723381403089628276599608903196502184424697288961888512269583745424371964365201722826173829559930782285081497191217225627717202704210814071340292932855888437897576885255077234822474044896071411396952312192072657471118230287765550313715805671687467653645061342930897523653888424701348077439366785703799632422056727206946614024270991287178593920917452071651804115938627615086969216708005704360483783694021335588512258171860591978491181807127610648617400944114298087277307429138423293870216620112014833409491028977869683131372544792754379677036369897399612311959638474255974594289848437024891786851383382494023177564520859365777678402068638914135690915817449867547181501331839220585046561066422440025427932046015585243038357906693481147334882948236272610125485838721323321050477809633625588042877858136004729887767362775201208855292266210140153811802597774477236078608361117958549844828444544284259549125831356126885858142692707025616080075880573208044772533185015291194914043278874849922541436319410362055821541914975045420529423465794062700903956058349672172696019125643000885830958384368788803252543750130290992663631947159324116610566213100962070777430983992477792122214528957507235788726388060617829649960994473985697034657426877543603778425604729275288126460168077477447963105691869465163513691115775721853379080268426396427003212855415301244943121794431666447679467912189593118517736777307301030305056184362824758985511985504966188635820971755639647668029057186034595579962554690773306573888245318461976716112910434814008566135628552822198236703244891173612599065836400411317551089384190314547578214282404526191241638858546189992060297461278208405851351096841834375741206172622600095900451309475279327683013681512333780030761102794055244241467699458229153565907142165443062253169593470191678903713657937788327363804390092737385458959107022557947450912335769070617996363298982634620409216856997481232385144332974982244507671332911772043251800896722378796248578587967019294242124753335304295187023192436424442115906336347269876581349259072153900387886655374361950337225141322644273483546300983152771632066432878244041150194019769706227776482616976356890374463330204516737630009529028441627278648280234622372262521577489958626101360396461452036955653916863536295197516298453405727875655626783649458015453738092047650404023029335130271245333462402680714882914404449330321015729579634516627065110587619981160069841824558328983087526863735377660400326131553381591531205008616313996595805633838739770978955540565730345725484611683907629695689262578097089870514223837119020567414364701574576838044259832739693646373500243091769260395002020174894968824693201739764410932842861363223077299747594587263627007630920220915803932462596855550964924120058962474840460761483688512957061791236816026895645426132426905641254063686562380404299303904983711711493818195106254833518075804226734742970713634792993282782044745885497041864032403929638356837195072785551193973579735231726125197274421580971101202815663950447180382261240574151391044630424999731058587014741422469097586152196458319025728440267122799471987208063142744700209359302533461477149373420531105224213352069997594633716879404046850721366400912489698930324247415126792681832251749041046083279803142989064256822532720466518874471160992957704736322237792121753566060855947027489430267104701342225158647289562141475872180881974271704935712924379731254137196958002692309692554229947213443888150027495642461955826728542310949755851756073388289386466105101741053751137415950210200981112028021386249808608241082700788558903178186231262972374177645938182964447097262652416184514676127186209111259468486205749129543338182533352270171351798847813294374359899418294425701259235693172408500993464422039252106111498627400863334123558891079793797505423017427589657759065656861108741545118639473692509979648052363205697205555015624112222766184978216808371982474357160731555079708151418450065116871213743468359516290155903726468416698634454706655122740504861985188417310795903169672406326133845838788589836833675660992392954047671180217384993472284996995692036501762202165466932898617860014100100712472632733347156225076585300163743173022065495662426810264481040253570459937887400312205215147582518288687217975399851575405003482513161974436633954467024795679649964811650248425511437244712998663903839286400323008272827807803190307379865114426187278667524597236937645395208670086654258086208722223611885189277683750711898493432789907315607019280104423972818703543705822530803164739302797242076732850757416515897273362543905794907751880103327900378634107466280964006545061667820461434619804262408500027694210175206650407876929387562497103068723127673949101261940615947650384377098310215113753571644294287623111448365136200808923798137176328922503324645317466050363133457361125534603405828689071628185202118198005340385968427014432065802901298041984200196945998069633532296124993310255821856673764444808896316480518812456385336667171793303459661117320239473458440762779022428476206473610009311006075059428794125336984700744599658597863145295846488627446827827570727048731338510744482687590060708298180762523487834642388459539336738619476365612809884582598139006685835038601717782051437029836372240212494390322332581988493484134209994644007418769851774414569092382473686916754131177448346172392254960746281644809576655074627723428412601197597898302412501943137077786582319186886829125846014764978021321501329140696172844970662607636954572134387579000387713211497973442302424662437084886857905034329747219175123392799766955219684638206830217446422834394081084053979083587271519306993770905051565980451971763555320608414072445889602549769684769560350344271397633978857314985304827312702723106523212584911966844396694404050525938700142168080905478673039464008916271719655256549584022425799244021578073034109721016942886853336590124629373649547303982200395958876056539494308562397694598706730353954294398239660468243215181094685453314919263992479952752302856696559327311045792527871970418821287156052262148131006426570567223534343159768431212717346932621799318185413894235714856486292868634921206709492736168558765752586935667653830579986807281067206202032336442836395904798094764089675090269169792030415371946063719041356381998048758208642146459248964447976231888533645471559489912197695198205946276127799605561373567594799783933706771020004085840927398639920037388258220891753529204350450638476139395299028323785887781666946246711975575558425844846551638129724271788839535770013975274618386291052618059336041626462062408477835691895873001473451509556102056372973245675787309476601290099508235495458108242537459835369449564128586878829677860348343388970300074177773944931989054529263196934015156746413672631268083080149709075174017448545257343118707943456907456754890837926748077143544775892937251280457912483697687521206021758494227333382171143741334620487961321872573835137650028859708582738591826510180279776731730413951837577985150267646893737747124533055345212349277517789331847361569939864051264647783559117218873949085767324622930336126069512675200088410511932785886020391284496645616261500752177310130016502718271014811069479507239594937853918305052485459826511843035287088743050547004146751599567099294981714416450389384023471235920865848305227890062141763770568903852276624466449504003680010921164669259105544102673587183822400449962913968167160749368835528748502206576693636249495644218617711276976910991766188540056584470662751385588050818162636308480698365004041803670580903160573737283398920804263863889324398212934441610251784285856251196413747759422585469849803160816893135422547777351537580658830568823431552337478518873107735058576036346185074022834969306034901061194047319972404835667598157148994521200931252197618093681552626105557980802100318952532860213970780889310418790564331399748086246568960534041341542643751014256329393791083474349326524942220341978754238220667117072998476701767290323689166340356275354367834842044751284929617025935793845757136643987343679616614370705919767885436686215845857506516308614514149057879982419185435351294263279238463960892546092801663757877802008656809657026749126573688866573502375277434208888633457173927013900667620238638441599760333312645656844086052533908940111994399124376000404052917347008985884662090074297566487657442357084914881399925004353553712323701558862850137848217693196863951187982085303320174165704118868270439511434154940903310431009859263570556844227461064755692099305190438756359852058936305171579011597288948958610246788271019343248943433552029914237855248381911627047597345181117866094572271786908015683801253347731789435524736809073850002915222342507496813024453392732538832637921479026807244723045341826315812301981158838511288399840765513371724930990187089005189480279260944399891592334126243539344154340302498819677595330674903306367888531578616147204131721265367734758909150399335806034047821588309142059223309710329000346749605462592174700449229827269063792584966937032191154564788748607579967544107841367498291247256302054088097797441413000446230491402405292611158502802439429180868986266063321649012226184837274912662105672991726016703994255687901816373871691274627686870602658286178335986956820173281587839760326323443635059307044080680143668458097110053185285484145756408956987715507428102301709309344275078008211431634628670219435349637466753939787115643518440743566719701639762568135637622543139853761694489606160682624140257142686266066941492137694622796598589471672540037151645203050224856791010431401399923916906056977214340357997345295718267185374107743205309309040388225668120790044472716314352145943181563710011830548371275919456375410883895066311359422983296847933496389945143475817392587553175334689746393020253577642250513290006704470983614453415289296065958581256848995261821539173832172256530331908076361057265055623025560359965756581891318240499431635525941832064255960178792589293754651388529000891400228882745563350825937081869079278960244162731832589658915421646823104698472299476063656708639432153899722121101225128647388202163385379192166523803546429695443265711900110328662214836464748733259165019738575651493740794997073291656811390008676227830856153722143178769931043482183438002920586157629418680035494623829549742794212692640633748696774719517580130873396773099440346384645081298484629396250156407316465251756391153198310549961447807322398733404851642236263016902219225694913069682536165074669426612501683083408729178394288009680994137102407343816886191742253730003914809713094249422803022889728289977165444421045465644781119412022919772956077581109249360648703469447829852378636317260371032100716586774034876294990179747487163659333951475984039928862112315523489007823472288745217634143989853271100243487720407304128191456724135036564807291393020062233994965539221502636306939766970681479186094130792352102301454982874648987245426677131557051749497195569284290519169766283212931132186636714461063980779951625083703107501657102335516220799362744254290275338417712320151844989663994478317885352899460652512092851352372409587006176884351368897192947872172171775826027871260587802596246073055368481508387251681462782477900208111645811225652376287181950075197814464294161264155623139585317772770235937801822310644340803158168350185514155688463386738186175303205452495428381470172397121175908875272386505197952847343845525762682068511067755917844670722935484685892663536351770903419271690743789459747775672745791275371937750122105333518289241856235579165488173743419865486427397079548206181978396129752363515716261115302036759215628661249458025168599254332268031043543522525123475047571363873468881469334801666562332316793734746057619598694028505865841910745725466313009461982263444736409962580990093966837189173775921112767952970826395563565617137370853984988923464218440884338554080548042957956355191978704053168073582227038574815269923420034066162569264529159265834851561045086709126161314617223893505385565185951541621793658845571031999066603817189363844424783142640447431489909866835757910796248534485328734961127838069055228568759155984284187081331541163631194220125359330572052188462933719851618910222207050552533575597538453060033470830111243831804003087997343126457969175288381887217487020569375609994214780612631255383529967132807477291241552638933199825490383284459669078688273416132414057239371041838631724675978342991283835718212475837836911725240366169262161105190451423918773805985671160590327052305936125381106107114478225174507634200427036285622541834987213655482757655718947111647802852520963527252114466155644005930833431411324444549192073215217312276272541791884850237632856682928763845656298785861407401359709703615858402650492540690565983633161286956928623824104138570693604046966555279815734810805005197515271029701812772148344024596792917174058481581838035793484875581151058508075090107130642305894001084403507338203171561070408295779458134143032758145757144452638326125415158148599789464957075193784601709491236184726885884712996207807358546583689235660437994945578046930642158385579288211344947570627073114696592678703487450575525904114002810748721166983781392756356355975686118392702099268383037779865850991937005257543976988634885825751994361231555945211169587006512967348439867746609023894086029636014761639154733063724095893607235270387421647709976533490014290118953959387952205684987968627623098475357114517887522773755691477637254393543844346875211475263214646385345558682876631435819482636106574813027076419168527088929007662267205522007017410978582697726321671280840948817696397052933663781171159998521127621888158051610913133254152162269058020624430914445509036187755644185666127532115143803629564596904097741010722867465084982028441308220109123770321756773247146662061196058195962542131322640422993018740558769544588188631158702343315142390536102967493687735066777431074809468293657967270011765545898767324938076035749851485127906486745801783303509407193460475747732966683514901644399241528056607113860648813610099176101431484487274151976561278006294638844731053275788975443734562535472667145886290977525242331236720874508781951625912540364615742755434333520983362418070151050447309046931100535966668408648803610670051691350391697076656454869803865879829800239160084291576385738698675282868210896614401609895416183228662812848015022320313466549557238211904838399098734115447214154196538716300525148131108483403322359896711602106609023699075588273142336860887925682905271523693287880554755923300299386075763214116147691750947399249121986675797564738954298417935989570089027822059541913931943048193931439477925609691524516959388022401489938418387264169438086872676765656657707187850902938481729097134234344437647164737495916406499826007065657228423606369938422666354349707170291492753184800664557717026395042723245866744410058625361426362581141836662652610684041708144098767086191118721742354950228245153963735709437734186877070846777939417969111195471712998235631626479823051253415006338610558065934759520833047019915665624268778711024684985091477970682474766450309405751934431724367402628302497451728575437968402336551731704413140817383531618356905905125143316560141785523192830839485310277146236219096177944743877034476306325346809297695291380200097653222795895554473423381283483526878851621392186446716071634675869908746862509193660469422750350376331988040273650697341363093390517632332290404084601008882183863367128931267301200865507943318150526391238212631253876218493544264233386115836525920387285227811112360700532107418057717976779732774140591228591706482652683142207924503430444560394749277826001185685756454702032734898701822620183977791538869514268596514165071326015794946068023851446751981288193984110355226855377481084860185967387288108838740078861343202800672690562451812013876455567878709707155452963627410756033624945797375997621191808313887780968239432349518166406854392806563500381986437498685224127553819255622582814984075875405582783858695473146383266178500726635685033722627786157166150809427638267539031935027028789626674417437880079360041648311218459230059542305495895361234660701760489915480043051802178606743806322897683428097063143333142965523578123658610357506892324912546046348703925782263957597599839167416905733731352493075351982831128762110420046469317153223932884818526335457050063439162494307166280326148839038745814658630735280481134881184434721375532897485293643695744146475290609443828683075361007890490730337670151357811767534851998164895010238188563566713508791522344917271186092147504876708367588688879639696672064830582891402059269541851017258481143417480914484929687947934495823278416844261231184476324954260091813477825661449086724485455102312297341774653843398099227284606325965895808301558165021352044896143074247304601611370076386718192664321176420994743090481408344335835116199737313848140204992541553339060888394616039798444798864927403120461717500141229481626497285191982730566109863170759241024891195802274558323723799171588498779534683533616391640888243385159850610286846718846480820706864347645424479749200738791447383380826902329126985541165509279701960503423050130635257693965038299167979848186373216209668987146622981411567676151632289400012953621283671018363031792680268051259785585889481448980712090775303333284475118229623187230246091113426026188451160555112943700257598336104111793671299543002781330748115860456425022278725050767862697480368650989837889571305193034085933165535852747477013063588299350373137929683879091507443563364441936697676307235209105087454978617112592029498518932196474318598078754692528499927378693487631235640355054511417038570350988841748633558042280935929889492605093149060574848995573540587201678148744065802547044652418160436851105166309876299052690050805770288146771153391695902698467637073256142878035765099140389514182371062913191402654235955285251979867887338950139267665741482280324848863771962365154926837413437829137557519275721813314076141976017533846573697000129187322116632196954954103555211929420782773897968391649929451672189902539155579341008577315193033243616962116118015253002192135066655311434727303510595311642424776351459285675455276444811623977095425970687100922848728394469078152753430218595165681657397225531629632038941760563469437386996147361561133336416939254816501942054524757632770779650391479835332441582024400479093550923987836457646042459661025222350977718354868061546610403603866759363978058029735026078696291512369062371664503258592726890618136476166093333080350648644085345846063077497652795080450402543816106286984315152508264084085481994016767104902874267169932110622349834792677007171742110226733404953822304678391787305931165261286053138002151421857288470548204124050396365413796556202089708905687783316746049849775438823903805729773328119069173767679448898532197454566550219521100835581347960376718028621261512709178092727943742176734577243517278949873169924590870990572064533931549960262860296820914538471940151592147623604335923254359471881010848673322984583583349461920311117218812157647948913814626572936509351479490294425211711935553720910904565542102511298690062428962548178454686132991208213826130603287586220263377180467904469728799721029239433250698737399573943853815127830860770106774220922738862843632892526317284421489158837452404913900467803161616341301394110744926893485434895825192641635021837711088756344342731373266532062012784201842697095735511823003606804433675596919237952478567354230116133389089665243817853703627784742021710268351482538496410007874757308571661993174978835532082269909967520046103589365140102686373682086269267899365828119602822863384540074806840366512808721035403254094328573147073004294301323181262551975450599287521179444822890862013642311603733685081288806118284345735425878787374657135603304583671265658602959419204231449648708417481018875219515908211388275015357015339494160440433669807864700270412750231912671769564091243476319571741513900198422250302488724418472148084556461933415466645452865424252912198948307126239782381216782939577842447298580966621454704943581489985921434078669342182414387049283064365366742142536879821954429008010641495757001587838699913168270891678568039786112430819602928734571514181147560092510790307051553707954622823920175729120092921976201750251954706155986047167429856172450521646600153284873940462382444660456963420306019300488567953303708802686421601021277825328578791479256013327073379458494847516804344925971460999973679207847548363771055137701933510112405975544165203415039843656769328425843540908647664771452782691937475124599077794663077051327044212433323675608324887858698982766460191313675955191104691799168312436676999016361030056758497530297224962202036638902552751976153043850123809722578492943681709543826120401779906141502636342721092544630245917167820591953138443515658274717238483425255444615234305756791901568181126879580630074962252157853539191921029902787084709869101609384018544859990478781608346208725695410476015346713543187742110209604246685793344203803802769910130224132457443822938128517115447932748668427123816888633386613528079005795159526321369654725696504948914463347435257562630725625822654300194185573434258450358519850135466737114747089679839280415116586870572224892932146873180225843883227167113622244304437175865915701899890106935779866792228380919345617079674346122155140466812848153594384606508344058239699270870688524844738162093261443403458285464288613555108932681772325060280971931096772491440451875633628104095611349368804358996956818685495697960065290878672503566458524402265256276238808307194443610717006127597460671036053754726207385479410764531735726569166366811766242703685167694061664919568556959445897844986757969794858918479947246281964928227679832196961032402810380746486577171741566698311038748438289414987922794943030808818086823380559424121807314447364613848961490587975616657713774916376052648042945525962784959880351743441493208706894759204334846430260572307085925075260829751582205300575091787258183488868165127124426116658695730808854166930613948823838047668972004445448314804748210531081333387900030120609974870626718693993393276905686108681947376482448227719486899877887609867905989246358164622593917967974196202824585267971064089933255190520465378210669292749654233469161625659927662960818648777930618772114392766846285716867245873732870850817520742718876945258723234618786495126493241907836965268588038631771466462083864830410176732868120043909156773296399485198313276599453270880816880455293372933228922872598283211901873331729989054032816997373954921401493048836508873717269368541599812682487877590584570223395398894528743892648990137298705730451430251147620024912139984757055048953735178119971857207928441495436328366379382385085972883385139901156874250175588533643335549174206607575493058039141169585264826768217105454986851174812768525568294281224137059218011579929925390838651305589936279628948658128877941948626124881515357545930672681737782800448717612097482936377884186624493239901280622652910433965307737973365195334064085548047034787675274440461417071681367762607504069100314393694845592908379952507293713205885619817469046225847982531305588677613187824420811361780892426246601825174900335390039621671555883604680949346476637158593488391769479530025753838174162922056821306823269691018435890410286585374658948820483839598117186300529401534270648592879541829686965624486739077964089788433789620050189584889711011648839470426281223075938138817358126303715251618011757939545461440981654125749613802118269754088717537408370420639297679931629159519934382307279544716814838163028468630917526008839499893120893856170003869440037555155383055443620880033168883068347106558932366650396961910436970842893781301960368281938535546554546081896918229528305615039642930963485309915326398024840949723536829287754873488214148509242121976660768648679032234141243172260028755750248794246725363264946166703678377149380108274220066356374933065913748770523747093082287103809417253191712275615302410023289288848963670051311590196352016476522853460928131567374604313107856031412699822422123890823489061642761206919145919312200965551280036951824141479156690425981801929731661892037490623303041604437627558323243412709609335204632384521022068883088915857266749800230565300066356826759110717273598138524863724135094742685448805128190559821927301973274046871767112405018993329258696220094715287980155089782421775513624297735971038091329612402168756185418189484403916116246707139883308576033574073339444704304609051391670342621592972391100073783522747297116543795242686570407909227942812149186469625861693792985590205145168162451574596761449490571562965003749785403077925183624964815686804977045295866337074952948614183097523713246948537152172450568115380627294179492075181172201451193607553704121009193574496533583316008572007284056170521256919574003692256599055169969202676263700516796265715383474058436497775522416441665013635084233081022021360166265749684640781895836321402562093464497051806266620324636090551812125878485281328782040844436881465310183482776147204486500377866786642171061842655730479759447242447041178441728322684971783420981795438072803493317595385448455911512684661393510007387801443771632788379557647096391853376375873300242013435239129119700288635618382056802115658057054973954889849384861119739590478727696789969851005980708445697405818718604951709704417728358966398090601762902882453341716384242457626254089241973024424223662787269178981526145123397903619168303339600827488243144011919859564162983721044522954023146222270433718774206755496387668068714633694256755096487462911027687266124347149985230984297625820973956659126606752418430906519002331682125846788031324194924694013108784053290786314252807023960128002137903476197417566692156689403275022686567518587992176848006278343273537231552372150607237381831539508119035205626701266624443532340384895328220909382460694076799239576206372289779176708332876035048754600577588867588502437157006125866432236913381262171492583431553847285742396601486775206039064049761678759910034986749467322369620118468821067718864421341536532972847769755357044342894685380226062414167840407377672589653671675146801431860348160802085394207711203544214780220262584954271379188360870062785200064057681059868307479701723615171373454392785963992708104136907377520932891882094339442948571327559381368867841118179145336445036618645736605312419211928404691210558275591253285506158996031189719447927885671194124061131097084267108337108016292789437361030031517910156898023676880051500216405689198608026306034692790517943483618481381449918159196604242233076330276267676584288676441711570411650613337981971379046708024926597719388416244964309293221576684361827877646578451995726407079801690583643944719214295599617797889073778087390386912582086177681606173583336765113490735758055998450412283316207116862472337527489907006610067594199709728181270506029961232288121911728843373168995460458798983796577507349293623060979771963972003464661845486422447696669554481920584681154040341479041882302102522848870744446885865612770421022699320548274244351365189088514132260698483378694231245818110857495427779122028829414344489604352576536517949002484461825699511877496871465152720508991321630175104086538723672721699180430122220352005648490518139794805838382877509567096765181911647960387393177902257399692856097944643268388318884335609520847829634327088211494311784544584867822744016364206413061959542307365391536636230791624184880578835648831438525671393649934779481539251539950251200545924044957404324479087189902671274488125161399238052358911100823361156478832357416281264848848417387272931182489249259626223172106466151551207645155058858895388796471127336595977732785953812749733883522414094303849165334992980673016417082151860438990903819053709743746413734431895557946187051090579032414761431814882833884321516256501819510031519232651588661423521169286820459081779548464049382285997767720067522680171706158017715356222150006407692045787927066246597284585755869633943705619181349488930974383229070308052363961947176180246722848403020047692629914208569026587596583406173885574024358438159607766194459317123348034427319690473087370424418676397853628510122574482303633844435007943903058196050456961216863324074407566451181869360755099488526464517111118182366660478266588945669107387547282813814960461562923971968571944981534905031262105337239897760205148426565081006240706409928065206192293909059450095595496200443463512242790465697896086159189868676933040838597341051983673792244386514727350909771493162749097526115393250931635175951230917821809616443867481448022679192231463926710954317966505317206705810335440903138818644201821796870263260717466487912561581049597603937082134080554460669827971558738876327384094583732645527358352291065429555298767862953394398964154054597222604665988358661087174949252799973267827709081104355629042097831560152637017827935739650166227701083004681403960515032278522001977736671493523998149840550112693672312375847246815440597380393957880387470073208483135261308296521694262687670151981997309570692665740733375185260946654797199633398683851827541982385362197358711037723890941175842747531386870594012417096750977165261456104896589904473965483508253601918321367876652846651338936713277163673310601688738662148783728793370442899256276124790564085103049707583928157980308450379375376537231372133624421278977689725776644182885681967759066671256061282809626470528554873839358104199116080154042108085463773670890512923106800820913823776128980457770402660139098331879453556993524260679899222464965643337842541693118360641679000754546353007989356315589588322263310198761531798698617074604750529860243848484130035150812769808117332430646540905721019622764708510880778656030081339162622831426333638031660771088402188988088376036162873975292916570993274592918469422319140483601397728631446069103708322566968755174010715011064497311564138120251393228605652675436588212579886578495657189024155992782682792356428414479255600466297949131015382484534828207474269687583464308200198654857064584110340597093079557912578026581871397293512950372069116073482049557399458896334036802367274057854881267175187746459905456627315039053869018834514951841766606096818373182920733445806438291569157160600404676382419277290226402851293442497833616246422117375821500831474972652611084277592028089273859592312343602222967308390796340921365813346779648079090536052784504894205663864208434510370057415406435874173116747269511620935863224201411278099547256289249149110411297185413154854091489866702971807626144113966653503607998130397141235645800507657812986800850329653907196208601297276092836578192457436107933893365525213914381068229424534705438176789138125840896739240296122267234042141454027512439635159172527812756416519186331012953717831215480383638869355186380190977285892686210495407632537595623809908450589728301092560173846029142871171943946763396255738854008075999836108502019001189176199745963608059940136218881999766225198384207692684031536242501454447694729655816340702207461566099176940111618506707517306017244007153490973232362995083495075448465651506376337765654310104012463579324108067526528056806633018406715296994560649232072705126499630079151184636056116004630234652650274589227124638306380125420735457992667423390861774551535790011040106715214757501438690630391643687711958066969911824577831825202954984159361267889612092971094411137294884710879918642878304398835076603443616409522822495776004913708516045670945732077718788239755510508244803160928901470010337920929994083905883583093981783719398852216138010290566454277957026798487123372129915136227542382564128593482659336560193657471645573636656118041602489966445812115103098323606251923954839949293827676900622196286151188011561215120080809286775533978682043079727386927232251399237076678130066354598064950269442053471523997185459995669249366940475964829975551124978173830008456258008512017528866953547446669801309413160785951542624877487231257764070467046213144835170250834953483414804004672679460032786362497265961724450424547610850451219632006126341786607231323413181446552088972949406537830845710377743129010283313910401872373423150422571254911875001836391750683053201947017764342160581683078009971280368590552625603889361296130097507155171496611806497083584880888990557092021194884417283792326827483426606244297949103550472583510910735167950830281644836935624038643215494434327291475088321761206724609828310539912398574123125303052680695945720437384456557364580728233997743134351937938560266681170842135445140505491906027858589807821136409319653479933667823440433722527506837003594050030453677554050303334641166946473342587891432109308924443628520557934133219880259564736635291791845150794165269712898962383642611229861098467400457276911380750506778485730814835685298783990046848862112408349807452290315955562529472094614548219476254505831087848434315842728536594418194446367576843924824673055532185771688832534449975964693330760074425166985858274841433644516059912897381424819995720350904274973901519919902729154275055993697644362819325687588624568562310664319458903758851581444614271835679799904610678469077321097016651494125858544706215192453350790340215161353713911251408766507488486919916836599969153666367192474970475537824707909099824561171580793159756425732869426306168671129467308505306850764866411369218996787284694124487255388717988328355919312152251799989114150829783580475459378101811121383169446632622455746938984555244371221295629620879139698493424252058070630536356861930703016768675213505678386943142012625373839754826384954992807060201799886858244735733747836516766888581339182581396829609009516090409001533654600150742628036133063202002351407175889913440740186314372151672900663698594719774262181917089304665162170407618791823084428352824491662260052806967799953028389263258400580119797874856095037337058668493900674958748183167664430689218400430932113153656879266521886379952406580293278889307554286571109379878829725126699677029147407149337497481086272803069277030364064621151425279218478541857293929925820097587930679080906360202064546165424781929577724697108950111690644636775735507945114831754828114668683086094976956384339916781304706335386872638950224550335359524478408985939213471517744197338394850791388930366533058011152767303835659461052765578599455741004218781386743039058101377233722751214062020545226708062327500612015327370588985495289351143258823863969780729801244262980312228886628714340364486828850637152062775512460926142161657179960866408238431248388627425167232562831230906706937318077255623913584896000984323365464365318341873640551513669749330186499297353474003161149298336376598819036101296997024992660785449432957602843725474083649402981760058598723543869309138876757359383634469106360008304028034388545049756990629152498394164845556562234956154020977612992286043840061358010602301634546013288184825744382241796783396123137535740509425483659256262296304268883153990748717870165897728678396267525645106737222696057272548739198945788940911657530884522031243605699154888799642260502541627860680642344200756916770636105397730467190025610507973509195078037771339585340963996766260097404756922807405086048535950427324941360366222085977802873490106552184804470804294553833110951723115223812550782919990588224778604983146163772418432093656066939427383765464964599473208640398268699645219622559801402619382402137284201163584965388087387808438399544874964615657198204418070614930616052344437890941515649942543071700686329868893202488680243494162614779835858300244158136760629572200711255863307268275231814844228556029812413192584553367277152413573462265745572369730857004843829536706872338884555055075806396660784826320864221708924922667611146247165968738738954764167333005220255535212069566442858374454625712066581204202527100567357662522288584814818168179947505093287998498751514091623471867965666933566433253205381478877036142146864004147667715055060412072005421203143646727688481064746638378630856309278003367219761434838353933009929116283061416655956468121553451617476751242890595225692012656652591989532707995902517787936847367762155528278537654366592015002704742526146663735531969851890859358541718869728861571346562145195473418464942899279855137822529501550859395875804341850967175621193479842253526671618632111377089645920201740430661615740835426309558576624277960500804774806694549329930156696378031590665765966158028033917575048933000063656303187367860908294332352786743680392485738007942899690429101929288960065234397220456457425173056914459999819904370843051925587140574278113678122530327353861615169369739684186162304852920936808246690509596010991199656940302927329645201639642781087085889876696801834285691033593592238331411912451997111496676709077909153970419135380207726117840564023200192220511989656896592091094192067243094598185674318625234225661306413180382766216737688043703320595705042229925706901105749345533120151218733885772794264794838207702594804793166222244646701009823578426386386772227002824520226641686373656227230407338731316809393737514735231853082857637313137178365755003718261962628349467044197080579449347732634529528321530061326069197829231295720241842183713965386985334120338747507727286591338769134717753798509628022901508113362784983999536123630893818403905758604924415844983640981820188282859201848860596163116990937283150517517608645567330477490468126544589030322739603013198700949860381348447272339324168331783681150302353993607017034778906601939196436359800843225945787284022274462994202317356854864603527918805993404360124196436335025356447268540846424249854307423982713432439046330500126196314657582845623242434135456339153137942188292794129787032951365037686934798498270516479474213044373106564165342893051421947213567638606507461649257583725103110865731158444746737965961322513152479576764496339223740639799460366986407388940036216909062015997430092183603757701331533340304797030785968514257981000161321211801742209506970890023620082289853042087201356339082094146355881377207989808634899806376374378285896111758597506070026585852324815743199093600719063000212839780369366629182157874698244902410714370557005015146536000738435859166561645839489300924184679844006985644513611835625758180790600064362518005919905744902000544937909532019108604458580453792202545969909794011118837458996154224030518713083566359406540065689623943815343727995119913119244386902826428776838675796674522545504507741473875462314021340126209571856137179975851929867568120403922212537414202667308817821592447072320306445430224819939955730622445904472613075307525625460233978033422002254094859779152199853784363346326227436240181621809055264437427263916227157446271900813848896025992326595804213465317033104315810334737435015101108179014892958693479394514380901941525029207562591006507267876922672478572400580429805975793540521115495716291075164562847697309790324292947558338648685003555676836611638522209304700868488478196042551665775034658596135026179992083875239892530600049038909592190656997025926483828230452264818187720260390319159034887852161943609024478059871524407402847441183273641708282851340863154825217454176414461394295869624371048959188063062611589345494085691202668995947098741983605523212126870592424507267088690547109658176822852718300691698825921800083585646947256963944052287987707301756868936969753603024794897504720820341471822095592228403894847052930344721416000035689343128629298701610024169429621265728067196358302889839157258170606799913695002416557431446380756566318543843654720155664205856814513423154272425681547828757364050939185061051804906957669126360385848071582557544872841667315286170287614603226171374399215566246693731996531669987096177609068046928119329315323670941976846925152278213279331804213612909221296163157572064332488694955163691226568632564609038199982894259395027475923445407122814203330568857295301846927561263325658687348873189329186278696170953280482070947142122811900209261891388830370846767037748164618842006800005155852460577976173545992282675443061276031989057468608880094174762294444381867524277539385999328368207281998079725406151274062747412794933792586772271752459340968728224611874396143744457077885483027992795287447019039489706848740084139759158657947930455128403000664778285958452822581780049116239293375491125302802397880354531454197266578377506128475930737488002423157196361714750965957544938228641967412602868473522470224144001868348952200631561487301525224052717038336324291179124214263827864839011643296880928538789069641141452265693374680427230285822299156245943897334396781921891017784056143697705045911211074434648750066261831654416127384882639085586523191281213744451834333009075878770240143272955226459759882769452152287039516612464193702868647899981349482470916449495684386098367241263809612501162984939464970975197137008223701419460586529075383001406497912920200564044518557922831166983681934444027413800142968841979691603514226517146980149807540038377013979464260958665462862654070049512032651852255522104159209489114898071177322019464696731793166224463304318531705426621674139633496999965891746680293125295911105810024277135438591030136390126874699324355454313716097557079974640732839259461771298854912288808526141014627368318911435490649751747899474338135478165494703975694157326126223864907544679423229316392635789615365829884448364673981702008184400880149757397599023511776383120289600575950679488183360007042934551195175474627820483479672303706944747254369302676200776610260884765172247692222855091064414785470098473187188787462679052672278232459951893014353641927814897835640419532234846218654425287335391547413225815261125550112743483687480366856075804496638782066828869513072553826100595178207613688356583736256644274419124765127627325238737843201185559255640295157339902315394625189880262658390620812245375773448494414085716604169388840112137151660191822764330689870747724937938811796630930797226924715054959478524434920813188819894594944091504888239432069364478419905758538124119297366486558269631847437483563505135737303981237574498555289449624306256706712712675321429589978638810672982145341916123351873530142234537928855421390108777698062607386666596585675106387652052725589240765610900919463176183824848781884581729442727173724174148990339893675189709100337570661542659235094880147599393146279263021584215407083861627489367307296382017135413481458625617963040674134091263268546945252196796907893712767030009440689362711618358951019952997121302870006601229412281539301245646439427663062769782615263296698117163888626870699078181263659559075043068226498294827939027451111534303189888828851720417565593003980516383116529123930904255015873429714463193330823219193148904467104994661361276179758708886773563903269618231161416221577856105510363254518362620781862481193744346473531444544500591540099564672076932381730589899643424776001063565705139017687423913397366679549015191922510193571119207393850779816052947912998242651235031977472572676023247782016054670215184748241244434439509616785200466989374406194945644222247592913686222729217253733008829628885226981252308753169828119443770907244468772342540312178454087920368286386599785605314298712961456419307214474427979916947346072826329517442547664115079451823670680009123508512535355687652366054809142830699638856164059583007556473272910421962486358690559267432958134715984242932032148579066378934564773888756149752167905419736563935404244075612394198364816773427736690240061660231823259312618904525099804059179246296721755866102968066707786308603055922592894281055932406829581731640290126958588618269363857412006380204952942056404052860569137644004157338308217227870809403722099118404162233483508513795071826656390236021781317995479753875707750751359746882004997547555593893950149539448117278917355106842599823166807147548100449201136176203479675677036473739166061701367320751617924668318238456663443070252910025581077096220552992180869343308966272181410321052855688656228672859765285925726232013544810826615347295562477599414160419074862515913236357728837561413082882131792841880322058880229035440692772496539003849898960738986063452461490148237056472948586067786575078003670301676523498065149537491248232298539383547745543825204855361372254927885151906423626478969800834210366804308433285610572479990586939298751561036920505739959483990633095925975439722525851939928909907340484524086889623753239006442972167193923864791946723451201759977803014924218233660153737364993393500216352301879643393178915896706189143949385673189468640486162283929774398217510979374510439324673719384121200305616929906551535551804602597695812969313243020149659748216199441156568955354848922493539631069105942826811531651136494698313444786786173848791818922187021360073328442502721102231448449367994899457886149934960241135563709084009677788665462393021215467647716239598295232486215671473944315399050830112600590049225493321265711242493886792512394944410230290372664560089673030044754212892981205098081381380017744907281364321060343275950637788961745519157469445403646537929982506579781459271354629949247161627870955825583239412777257455831121397647470670553316369552830234417913788892200387141043373028578463470561007084847301552746114175682690941251914649174516106059195948673850984415505343221959088729853893960814826331851881020688024890353574104039051164446694535814019252195463013322103594435065866044453926083917360908622350852373100383389038891397218236775619067362914073692899755718478278219763504614069771874215420404851995783470551043192138983131190270112735841462374169913477849223822089123690154796269538501520657642845589526565320479127749151990489906033023343886947633039678454902810543444456899330042347375881790787419093897132422139942004291501473441330966337706996962616743331171949798695859698341622843566321017383109215411078159915136514021097554089134360800543710376042731236450943912247674033368505319433675687866400963294577693782193763198218279787759828912696203980865961014932666793178751839124879534860426025127056152607402129634731422043266421889527829385481321663635670909827153472597557278019950804615228276477962111049501978738628844759324170294805960475178542715600515654992576784335685622533532020487277422568426711914701303958025105715973797259865108024090939921239830588074673508865566635949547216267210173374683354536749123277894048306229349561415083356798149506894467189297669033070162470173043861029963044664829709533115209393742449479615134136253366014567321461425373309749011991222173904960419001541856298590326973421023690629826339829558872671526068259742365673006576924738783965861902538942925745258151333263396855953345033637571778915091759684097495323333866518967910730031818256321822011958737668934971320383662356912488168204125617304142796253875705226473729494949570044852352354338718512475916855975598090109387624007420821436540779854384172706727972631653166671412915389053128820604924510063427076849909327915534749397870231502681139522977819610528471231486706947216341652765234484159881077181322152636444832112360013253440887398187149492324588379317077542418944692166619488904155783716355434150724076918617562978972808823435192244727412231734549268521998147327885949320107161282479439375353232443545029297918423551569302027586436317637479515167067107253204270561389696328016947433982429042478508600214043824674254640106984364636846305118092360505224922430252057946176363264408095624379568590848392612425555789839068100005661782591440819521097504417973951756450656964513239398340114754339433466208575802252971870006020984823174030986242108652437582864061926101739713446627777571027988967890505631861608409047124085466795413544677236318789759646154497668947996994655737799304155883701173432019221612924037695463664067584968518388707316455905006938265242141645975147189829259875611249642967690911811940824156515475460550296691193748235647323206602616854867312039052949524419400515304687677547867031167145691409860170750230196268588181602387025208302477857076996275973941399117020026492211517636124155420886330063041705363888538283169324084251010647166294150703742132736717635466696993415991784145271513024945288890723988468478055931629589396765740017571255006043535676204377923712733761172831357249868444616322417084115429891717542630294046999918647154540028876486375105415307729922027268272270942845013016983429568421718643193680206368543825887132446700527148216338103980392055109482115995373908671379106161663682053250503645282932027326096391386091417726380561181013835721510482299533707585735023311849233599938813999058069682961259353309890054250780087512245284132490265307158569656877697713882202909640806352996699125423217088574190660980800589531239144830729192975742049942018673941809304070669311344780978824438183994388082111504130332198943084414705248383743317952448860285162058491950956248818206107675973912848037335671245478480670553772644554961546450811714351099959390439193197559984219542671372748055336510432111531435514003988300798255114022112176458587070567525188229053114810714294124772369945148364967674952184435896532452280920121961992367970712901934165605188358988535249099564874744088988350461572034633442904078821371500268588222412195354479505637097670698106318380269403725368192389115956215248493960793755240534774406195024742364956748671538921400271207217076952191633806157687567763769551296234561376641666798264620536510693142647583494802240152263486060993600541642338005320880953252435360219577864487508614151583637812973187350370657929158815118463584403161330037036012751861579785433931260563681507418720387945970408023363367731493382358740324558898094258578885868666480678016505491965730641309797266470267942848082586298885822239164294425148388632590416903760751378678057076595343860606822684313701777968184987352690065081761307098748726740310607440755883359252993245872675502233645470256977134982152470196947571047110706595502999799384625251285833750160852355224463874143537968859765274180601842492059752793140361956539121205086518868961061301220202546822773407572920185902319670541396459251964671116154861931053796817031770119808672604049981100182880868877718654390659330989672502957413107393281291450835658692405081197928281886351257693241150293222479061454801368410935555817043149541751258084052689035226193458212276624351644947933937127742112100027128997238101803403534187646213691850323177730286790975119584206727066945489071564304008060037604566569576625770244038705939964570116307953547739856323393341001555919132078945707978018267002882024356165188434956529992456225264078285146320106977242903795683789512182521708144245109617260253348428707969912562441183308623157891540324622414062379899122426821987149535583062118390981677852874433716766969261695580541066780424973645822992320363866435519788887755609657421366030260959132239135530415098283248336379043952770159697594522838770968945173672428099605382810726011976711380323501398771799720847518178995634782695836633014224458265474187101529246456622859093022760520898862785251438725307756767195521141965045567844709754506066388461741545640102043779295510683882744587108207340341787712725794792025174827611569037872884661780601912903886880170517473960113409747021639837641802404951333350960886169198271275413327490237348148906927898785813510484558159747989663254927630680064355120171799876534457929000757886085566356270645365234335282303933504151481931958658119121813348734405084305711032301505577130868602229301101836130687033205011169834291374726505959974365298828294531549261127682199479266111352003116705989873707292721532937282793665894934160448203943151661456227462161131885347122650680772233723919398821343232964455301408350067806512945158662614882228771555961249327394267992413964411561462094603436360559269987460781850964739162604931394855961735170561985439836663919452661505161357434426844692931001575008933304295953677724220451631531332125264666686350689732482375167590370515806097776299510701462335790565826663943337725878592685101784978683518948237340414301486141882757624032259614874657712912226957318640220099701220410238435517943725978262855702150181635046646601371265199265348017760521023728172452174544297364995138878242317722396872969315565801600367543323266721316115144253227892584588778201053865185537691009053817903744688707832226688052083435803711824898648808716403206519678362008479261425044032216419178216000634050700480799285278652570266830929912179128538482023167427169900214536289189437463752960458938152875611953164420917252349326343904109402854388012812527636017893843003277418014575602629307064570504816761360408587442606201540956838598615091490505538255470295584603837551930617764891807342937358599171750437421344381844535966444554965280381874511607334773192260660725598625696998214028889282586557351371720263573297793068012878255559509589071232183318723804999726086512116295161892450403291385407612687727351568469992464379807495977471126666546887885023096902406495335176299339847983847341015436629493526932097485009126675228088824312335004369124969938000769120871899136953315433922972104561125012106970325139132202670498150058316149141162807945656939549661279832761608367369664278879809703975861616793662778162846867933448212240560894178848415170011754870867159421938176829502020567206852471294156176148768099948865802543607102275124554377324771823264283830533356699734512566572570710959810320131784877498299794070266059720369062143235957318184727738167041213947869021242779972404579993469290870694561605161762560808198887213246040082845395671089487134053612397371137942306886704079124446143999014363116759777355419823154256756154737066488676701189223496496161198043448141906838620243105026230604043304536929885959006656897260216439701650170800102444895013508419853480087133349019741070112312885063488986775698356177671983575409607605988874992175316761949883174276060108401283050599426414647204132603203794714728267342983503392809520835480915870851602660365558887692536497333276914719392793172786006590993035218612180509055555338751791723330074092844988305904990279622465037020909868311106606843093651058005572082153793736644810076817773377494049667835269112755181357507984257413549392529701693346982031007881244237757508976848188989618927759093660084698150564934762541608674352014583680383583631253970620130061889559275491398940956156806827687042010209313954261345416896313564799037764699104568133526917436420104638209764169891912699108922170377444611716699523237680737316846022259034189520392030978273282747786272372048526866263953348097073947845927511167621650710479554904650077306089138263993265111923413734939751769074641036294946787036950920421278718164764228380907960223784276995823986456720784478763070031611638124707518887480797083079514064906451274006128083529914657226993553483413170833581767705351378232611019980481094172039216858057395315176691617910172058696275133764479036569404652738439674449623064474055323726269251002403467879595515314673204241995413064445194660269638471889503398603708720159169478936427650358295018134974290125350471762911721248840535685470872762301572459546891448241781832637815010286257008900665123470834766454479197327195999700399187413882993827254415998077151031033093465365533391334127563524549723239381056400675610488710969252129365471755727467741319669272678564538151112388755511115619959471847665351907347962694101803478368076134415077295900155454665307033790392094177418233812596614686264863619283482913451327827961626029022802906004610127628197458359040633435150516045329270914216708307686589250730956738226980299521492607422063811461544543522621088611105288238918371587397505080532195965105818929284200993853312014629739888691219638973269750117841808844201093559141886317412215442026943690363392587882180523577948337803719128656161442737941451867902602806791569005373018272962695065303409213171449178033836681757447489086852960384135083135766209798690515701353865759240602876108177586741637484432828253942281735066050749753801758274647805517712741358943372382325743624634282447002502516583573545554926299292889265297806934817050241621507925241021183838202136861053939914040782340228682788058042656572243321038071810717441963492092757156099301798116815704471713210667610494319701199123539846066876808582903786796618093518452281393131890942642496656248179157108977087251571572779926381178331322150707263429631746099889042918200677871794154630648985604214882969349660938948395351142934891300920151619768664206780364474209645472219258748959834436300730803100079122173877989003721539616296509133478326622935782472039597937987891896017562414623660818433922448640649063019324554902477787853180836639572749184342880277635068020654213631004467946090355122776336625817988694624632810937155949938475525966260733642255679870720902668613978587516010887981072050271239817007940704371259644660792932253494330582383806447284865345510670815822788043048468395172176313177673524523923327213903034305509536203837902467090498367730998455666506837922404866362097566762921173576290508583217281692817293713376893761634018172880580405785501773900917413604911959598607799180063830804117580386361904401165344772810576520343160301989333753748725826773618139403167002514506260362236913907645424921816960517236918992703803059163277685009246826570972365829810076159422205755473870022427471882144813387048661026859248011632338324193160166007528069455106799408198096706191304799198409083373484273017125103307728177098572405599863079485822288743842124323229613443068398719711351098687369024217520559104053805775173774286320406866076840155693293599413119181145449361622801311925677897976549779308112775519548129658125012741822585194610577470064075569585562046650866445300664439866362950187627258174366365996347692405435953339122652618199488009855415100736444888910557699581296213897146273577441917702087100918805114818186175998397695205382171606353496229429035522493297351105170269048990990622999429781118340441852669521722459274831675281328294676857034973007653410283878757490469075721019559607550493402784752454519751627214474114187871200881662754656885377032409843505744743053407164660322587823988179775858689446203999655629156714252336461902023041011614442567165329401433272281776086583597631135380508889365837925231114950986215995476995233926577138310722609663698779839356577283874371037733689056853694094358496894662737524454245673387346983365249703843924274540697613869618409496139855580556370340204333179561695425924212212726235398990324929807570000402769446965235805757510659841217500457141285799514396770357111450543467910113384458135858932639096589787818822220789398214545119166074058162021527627253006220836947803927230424928015139169576477377914943600761358826247582708607840283694346916366654776902320136046728146134515019129630871631738838745744304674213352596279080937777888366495513900284473205191360243198876554399596618281472646542206016883360300419297101097756643850913163723671356116915627314797399599923410536017926640313315312294202798473412886795136506441587426255060178406355021080052157680925697178843528554103823353874453764251823574738000654887276144014007723416231702494657886175472887498249458422808284833747360689909041571278031209067431098099461984553020074843381396553459046852472422568151468883564685578325070290847006717856765124469227511240211499964070525967524204142004394286153704709548331721675130126679458377296642788432557648141814085870699130777549887013838488844606001167900372464117066807008103678956015405691657531047968036251615989995844053155229229450008721142813187327149896661266058638969848993520085328523403567555731471361569048899630311547617408072838939998064468137021479447173128251692370914414212795341969526702485049645245164113692338117923568211092732382000102102549664355794032840544474505672618549833482348435932099191074883955664117590056731830982826856394349903658516316857027352731222062712524422678154784369418236307368058313551803603873524486682123003843413514485242080310317623012306442267824083005866324656713768081489386235638531483023950847330800341877031697703754673516889156395087583479163505439037123268719947573240758445971423751783264846124260757312676092822612684678908660879881590035439084833799899675255697577325165113544238014277000545467059951713369421094277839992587576711091178272923888260402239696835017855201940572136595716456011218930648617527533888573655409076766103852388294501064214254597221446066346538049713758021566061703739511021049354649763934985605979064167344648251178547531626576070719662485455018689294012720850050924975643393180401907244996450755881505312612406945012025171694514263065750096037461718198523588811323302026356065990038833940373439301770151310073677137268481235114870375152992355045335271704916356396253019646834172172260853267693650965193064955590773014838885217510277315218170017810575954628004422351927108201136740276514662259879955644239062958376339268645497196889568304005848801387288883668788861483497822803996868468939002261615987659821586671397145131279314243273999717312681473364866328995156106835056362191138010553589135986228848976065504877911911429881548427096128285973330852257441053219929812661285366457899856607351460657755985094499221926506445545767632905716030032543423219973135784698121407881083541400709846417648685475237249729913078567279712583204552283334674863768867360059115790483144064074777398197038653447802403501900483375225637179886930097398269571577746869106420020346127660302785465769053755821151011222966089163248050169964553072061840842441902460182739714755225735683766399830755933042562017051364822650923922389108905718051914189101369364211080412622665655038733354633448909570290849210525434010291329418055252826144514294649033598573111317259977838697999151477622398069218023948869300351267566371010452932023561347937107234986902217462568246231604916935957257258058476205287192976804297917294041979468690718494100932905871227978104101131385705955885790860310103685718426107398189591673375895480010516076662415146990292126671982271351322819069662837690101242104594088297511446515670813479334681362946892313211670492247381434806490977598092119970469896663622608835200984011579873148545882831089121211240717183500900879482250007906001795660756225752727082796089002046922211744809616388128562588316315760809993707838842132283682591586871453020499512880363646200926861622352061591745877498995792861304103454447716899865629415012445319508350503953644588353598239327722897484527998212400071450980721838300857890634365792911828652817841899358700467318474456482060390887780692812990713043861187991066849907332593453209179876111822300843617773848244428519426653949363978309079219711634864801631588387827290237571023625098511752192979969147668244048502626943043145927624032728425833059027105501760852341617862900579800932158522088694347609660809250492243173852423111560425507260022958841975517171752578894006977072040541666494040363200427380152812054992292002302946126026752776047182301242153038896473914347099486489121551895341188499380412330244369810527908824212594529211702712161671979820201930301280346642089943223207096515054544192421310164025781741921619306438944017758381341956443356483864795010738116884300762612728127044054248658705226100488860604152683517123178711719026803756600631211106752997765054667108744657538253821608544483354693990412958806844044290082608813916533843655307775923053862984977517691491452615969948475348982009055981192611502060851814101652733717199930260207015660552756704831633346781054891005748179998121052713289225284775674434036070064425887427260468119249124903458064388999211903504148723970460586662119468077717536534347621481134158915113813498099825469894307329173327895447813064183675426647269198894854932785496414695166321318736929511087809214114838847372160086982045567041975883716620489075582751171921334013039649666084167384346404774527376324763806462020595487346564080204515125462841024490871496403285875138674213993436245918646566377916896217960946713290696544428174997986570386690028763629244232798888996569579997881505235907359924283530097083228654183324284021050097268094784026885305542539004402187525412169214715635731320334410718789583451928471881210162355721005148503887204898413010980531616288635099917462405803018018265294000200563618049679100484996523971243641056715868779636079481185374567281648424372115699970935847748739706277788009118517319263473740500693936804888982417012099362230490361822112415644935250640523041887565171000808784564370249788924520285708610563056422617070706872570874057040553191295052080188831002948218105998174906191208566254110201776988575333232772729230134688685279298404144060815487588586101974837245018033021217216991465126299365477595912879193066665624486164327434311238285097613449662812091400594532402082448552640781201554054780927442507248819724761268662321640606836993198278793203970785711525021827215118157672516067429868704837181147217375211610378977941082518832576271550863964824688949905042776551120696659890942293926307124219769539302087914526542038515116186113344426557590798169860009210399680596652992264709006626721314334961465054931398512127465664846481691732675260443950818192798882107962567386798701739029125131310755882474525056082178383743316744410803232783771078747767751369248491081066928875194576314115344171797545681661489359546819895634649816237445907550604439575710545493084466533875743175458818171281385496284207584942481184751338968381566823835473197852106594949749794816846491030096785005024196793259025689698075409904490267423989414385998841296400656660453424380916466595755929738474995232296208007099709779495062992189350023078645623641158296699925392853286747248979347103958031990343625251418122623607377807151961849615168854175080811859775337795882549191054375613476539234282498500434287708653758551042665780618967560133812819917583178132556359863852014068774488815591902624635806866005941846500550290808319505716139314407376591194518125775393532185510554474176592389898602967211807313168346302753441099538673610175622435642133370956357107887847371477153485341408788127882307778687260389424661499349061550876724246131879224145661055617683816958804697862596805472529554703013337404405849678201475253171333000118242143598973249083130741548879504426684042383707547607548693170289147839876113199287327417047851684779468783491853628044152579891274453686378760302732092235016007047317020923008912667105684108282878235423704023488401811745433218070875196143014770428750982882629344028734301202107921947232823510981516939101516725189724687673917315363464652256983245712669796524013203950034722668188104508527055337009171064169248814476404882202625505258704680038829990974367822849124464283473779273689612521921762457661984620507212700193005485421800129739219941036421553153349148589018932731226921375137214503026703816837043028876796805292572334382045925175861113817274583435721183663629083036657043122409141798925103660524830939548214591240287195324128299286340889613300217791744902923346837072114747499897373734460802493767489830315781021526738653073942984220298131075956634108349502509134609719566293586961607232942851944971761049246861450838675902089329043413166500179792129195373560142018131739826605884468679401299136319243390799519463615193839414164666426975254618328552757520611979346936678442201921088685630886826024280573518310844615552439777462362067086762585368547024812781050527993918255834441942903153098093140706840833374712910304971117801062649852251002202431871648589484353487851949851212284105899520711239606008540392753785061631810946916491759132751140538944652503764380940803654823449608298174584160115971522840560118775391710786116319551771710815034155931081850127023060008525816500502509500453689323076900624892757925305265212530632166098254645525118310707933343766318695704418603491368742029850047919245273868934878282455207717553409479770650899456265742942162395983244696054641863897618977632794869326321412516846874868546998623924651437048461423610808243452346229823116432101932099105923737658005140774660627583086933626505753645817218471304171100266835210979769795912950455469907582730639105942128078604768054569561666994540738585559998978945317478012527807266070565287046326040713975840056617274507759707568717528983441683980708330251010991140169844377012961825648932639355716920809121974157841647601863659045396226695626148354840219306118523579199328078499079993900941127282196622803844309274401161241944983936995541119796659031331765775796382128344680326792949278200023842429460107454759183078252707795099972815103854732554817598293522186978728213488794680263278698392192808729233377718970486392153797856071527673325921365462807049152129213905618856138273747655071310453115430624694662269350530455594278189749534391163884086282859494127485294609787960457408389022285513221853671573108338627143100841572259746005750412309389477265458767409133272324918136300599543456799805819849262485969544179666093582088585445571310769843629352481905354098083033128314284262403617263026326109729188007305005326279639445351416050527204334651403996217302165263069847716664212571270279073178510666547240748943443079364702336252673135907926714143641024647859947540470214533024209502955812135651191909278311834377523621341459883934389863077439007233428296496276812708202715878226041770395844059959444782599074512239028068680037507776464919405779488277328099798282488216334344925985528451741287234597360210848711852256159379828115170230395372179274345405312314357755142666533303670310217376004995255983713846793844946179659597830760761396084140174497579386573962623087840155102073247599523729947125816108651991213055909967781084008038055076534042980714891947159202549423765660850039549503097459505728418894385760072673812110413124423348703458388005584756298706005752684942970661630184703330042394150092638628469814854121148541041667458224291053987083020595965505179731094939281024759629610593835145548813565475578143569738011559768576630250149517450850927186756694140839062461952461400636355657565051492123895645335443635345621252797742986479301199858501753407547045955859035212401820327884368405493016966565450101663308089498852604907871017959670866748371673895519162758625409379516214887143810470177713565096285090404048261616956048068499035280123524141955798840250588056254747287662076042630631399688646732544723119687081476037866878504071738076406649258921120414402885257867765368613786219636072829725206271044542926417029912430034525844984496107544852764077771953833295157962547167677924813834285570455327705489757315972205284862649998385963904161869167645711241132718746042069525860669002757009760470805982829298465542569807420325230435132410546552308029494961988642541451995246765042509646235346892947615698113353203262984074680078726358646168136419700161164866950296003345894397436204649198643571777886589563739951845591674414182449276071299785302936614685288734533836972943832059466426637065376861789604157572256992155149152687445016975224079891414902875496341961515288668381212851911467202752978551292613574882054256178683452442249566034468345912936194857415495186253785708914268548980142119962422532749940165526609187587837831180845246182242427609560484592891590964042432213187344325628999304495801100723894490842849031147482349758892284397721020206179854162542787394392579805764547376769008044574241945116724598032453675541332535610143840908480488702431572005475912938796077588547351786551358540446991302683519449822674664136294819102071447132445147014062490189992412625451899034989271312235666490902267944018049999062659041010851832639068107027678560827017013605907333012769692229736846238716693283044420241502243426244745426482756886951714035310370722159262905650798049498526882070700023624211371573019414429942598740371271048673119809409813370567875255579509444119503782490013692651531511798345048311564441555670415909235629891152260491534080334153517913327245854753977734694101587283617229224705242148073888030586776400161263365981802299703694411693537438417144493643680326308636863842956144915899521330516589105643596763964914686521740581607814026691913698109042873133004205243452813048189331686198263312033095806971388998362676061553465348787869768116629426318289010314420538450874927240966232940261727291431093557582586856340942167508665940950514020831492485860329044830907893284587386985085543113891562577135131689024202777126728960121529330576659483405633115657961427549994038245226900199848323454617300186831932958775600618097391746478855997840690141813218879578175157315368607302595420023757817506726998209351619171578746075209596496461347011928710088306543479765552028297611714792542841002927416275117680127458419111376205828380963110542032075953019601931734569289667756003738095467916787213039241849027623580787704788490137605323797645195158030561357657443987603944252492249693417578262272219150720698549988167116256096800235430408800555867682614292625856356878368146907760322876752731625799727189355166773611706463350973625875706236296850006630847369355653988250692447822739442093721385195940935814268508189787058585578819967524742481304218701045567593373552401160477961802327292461076863581180939130326590350084533311512508226872580830605668073689883376360874373636799153469656389786215951217711227441384938334869948325103707175762696786049464169598951187134042342223585928017325194385302434332456021630105215438388672419223613408171166014702893785230028946813634547152792317234830226935297286518249446152119627923960290792680610973303908875714883080311092588011444674694140517411998766904324866558537177563307900369752778681574338574676631752024268739924340526047363550339951747756427817258660386260982499229610705228468272257029764755136267584097760535303194041460619874725229505087267620364618966480413038774241704982037786164032047099821715854129772014118566967834670441924397797097064713011099852207437374949242438963483956367381002971542631276756753569876550853032517043775049587426835831270645672115796339975215930833559675938388507815424934326639257183505895165733968770484337241876520660351558395983122509148380942979114482783555663019481806375020007060056099020482171395086427241997121566821965923580337079973466263965812619208777266077760488834483481639627560976513020794488333524676605902306103734865193757594275452384567611265099536277261879707680776120360761283340546073662495623752445519549787970629513135224310539419504219893431077204597360393590719510097459340118900075559651437776522362506536021838753877644668637792772230632681213321863482333571422385028282265919347523884238637842058229150644158763812599690471040566647686195086285484281157198522914789928987475381865608387867221229578741334398707938009801947938677589894769844405276658924540269828097148787512224252083107824579060057018334369936281060113269179626005439871480692490614428438433439633096582396830459532221738992011350520448491480660622051884530218203315708992217789314599892430730997742877292161376904750542506604875457692349587320988978164397868889885984949988447729565777365002830477086871731179543487905030570651993719320530399237933896175293818261108521965796661510454741027237517346977732360333162975832336732617489230859537361668126124860773997369785757667409406881506441498701149677802049772023832791603712656573547570021750188595847693495827690347961413402102981184932597572722555576406444039741286918640201216761460253749420653223308022446958810011360736156656473131675738621288680052976843539922296833313467124169228154637856614762226865846643557395516533570246858776006661776552571968903460977184418826756182916289423681657533608205622576469640721918029865807889191243545893152596753540361190781841790924793244452773271310985663321791495166569417676890327909332958153843156933190590906363003507896050306846963436604464946466383854263287112380094433473675921317442408906996425673412510846747127229441155993841980460877263141024247709245768539275304728613768731576382415595501349286910712489544898011386436484490129921559650766471632731197714950086110813724764136534206733040122134784446421546314491285634202857021232659747098519032457411800079999973143705446001686208526716179525419203137904822657939769406737781036313070872690268520980788667465249980687037697258253930046812266575488872231275468501429185791402917792151627564089782237341066177134446862443426768720688897694224059058834863267356624814468097558283880084125047799726761795400717110796901578261063609344282740792308614764757481146210129759785416109677733815940047764455879712529436501780618335561931506499037689475250086884132527310051497323539882574926545153385476715288827509431431980898331635374808790650442656803398761198624356718447467765053794827378329059795038490355493720795023736890171625241211323209764185900281838755240441253651463418561315235922117815355555326109439106965970383924884933829325856320480594474898845853994783377356937152311181970129573803943419406778792485728484912854179426076744710749393120477336270347261761175600857453844728869156543801365572479102014759395033567151755423065816932324270459545293902883628758351819673042877187102074661415091311829483501240927333635345558675268407941948891053154292688096366584178854921193073580090697911190233077257542511498312952969743710844234385298242069764414601951468374736842489050797416104154787430508611549791664280923103736232088367604666363463666015705547378361495236897964598461003706841770468034285853848149812749330541736838172735489434350411598981035268551285100333425286960940335299033879506112096587551879320410389975098660258524452147879180192464908064108998451124435460163377417370520974600696650655802591756822417128424157452268430839434974565234823979516815002868872919204343388979061630270881219752757876879658684697677594229636561786551651527945871930266308171353489696908373733664994731358525312075265347061174102330344607892003641493535783750643355591231650392415283356509758041588373071215456870894385544767916219896188343560969536445617969443926138283701962151499602469621905413525616100406981811226613678039830257434820795220120136932877760154244834571870209993833523131748306597213193142835159128043057380073013133100523936029887773669848329854154599124624528914343217217694983529196189165352762436973812431685352611203882171983819708867406291878146184014056379150032145001484395209092084645875148305448023991023913393959240859145302849804168638965192441050007992943734605093605189027227001004539533618750350511091866993545846120420202824747478427832453383026609135126393811037716422768255028362517906216039604037242018856288599372199138312476074589773906552191391673609038417231637836742945681125261394243815493591599700579064325097974125823350058351207427574255263684540504748138153936572888291875276131912414375520193827248566181633358132701392761880276527160057182245724591379328753536703469554109871292887382473296654680099142470639495797096879808919321183717815864591315186512379892123084180265572124683011128425177608052825278985535195866915538337443037785463735472547810748891075403932816455429207040590887060605959715000862460412079768818960881474359134869705750085359115601857902089086934021080824022241729666270071309147112414275530476162522295912515710825441663001972069894766854583758907121476161202827241536011235059839716253677490883742065080252859786722364784465515691114982516731354548436236640022790416921315884746632213872155334588054194259306087349901665613850304804699790670222757457757351861442606557134715614817594376529826873975738833595612666668670874007735966726061952460882437279425168857248504016199402111566777751222872115457325420196263778592546038789252600727909934725697726083766419204858713941086052784542794537465968514877768008214248457368641939338053825304162390111253288641727086739509102676455533384656603698817656285810538102375571324352829882986126627936498799607323727995433030942130020472877114074857384325036338311098042033316919165545957817874747936980900877628901072177593322651484962910399324769277278570049095181166265468218692037142228104355218168127291125603884739408445366318510511516531662685035018604126734814578435198010841649057868171913471009439484603063102553208524913034826873200769621025690397960387198101415030293557824449418067831712330397448697253321843114153436734252520169339327305596121512023334107346748805378474433235848255462181828230489566420226807533612048036882199097181985164755283102515044612766685897144948878270430224161555734809920506661362681369143391034409909582652712132801239498778607229267683868971177495218026372310338068151055129383020115265698797980876562327716927146091938497143810441303425073898696622284392001770086213055982628737211905713624612649303838090411102281977327887999689532614039912350749925837672816348418971360325303164375849367432632599837880589094330751398405148527231287335373811149226784893041841878563933026365459478032948121232503391423058783633125511299006167780853019032439245777782095635932461472287948091178573794111136279963904140214871342133529888125778442892657635071664781527107874030220124739933564468784757916959409018396992084551548381194771143965478840665333569462608849513324125524034665037729224905144049562673121662055704941373568560469853151601404451015952924239418609199175765981138869041624282142811097156344728755883985860777034530328227207311118417448442715782768305718319046394168455764204532249944808546414481841036238508944994914218273673363814801837782956689233044276298845124565964362358884633275266221396029323662066486413963676356395891479018644358167663182519297797881291614072703704965145934825254645690745670428444239304572622854201461977258593699993053132022724943305486476591020336602861012668362492230642629665935325660163530455087820058001590685156384825298503335237094218402471422100821233860806647458959624419076103957144328193936829239811487350917293552187515713708159408609950582163432287949220086383770312915824012479155564506546420773788997835498569429723245301001645215295739039090075472803119648137817967964630977802413655670423728445188163869805701977445579642632766233152383565590378366801312328919543703508593736814452882703601768509668421320262273017090652434595478248326774415033735951397800906134555943655563451092823060153718047281262113191985119241135652238459690266299002238180224900825722503601314977322416268117759652822866087593158553922926517117549497785653789916105644735654651987544158619965477938375968606753049908829935825234968679774856766625727675850054338866939453255915308735779277693760878698228777217596476982176300954562355182852622392205390433071147125418648784995644748263123191964072559462127297109547059573912683426785778928941180900885168233578367969378278228506449286432393817673153307433814640243781271765818216615026813909881151592453876384138938531638989850730767596720213136046997077724358303637423230175975604980872136165551762496985051644463535263530441373752865813935861870202274212892120634824368977243763705407642021096971712666390457403377073996415452758454386869065612178301131576532116159834579305870728222280906338700000164217507085701632203540045988877368312420407422858274001750776433603244985269292622278349864371061643013213606224875988141956355304011450912908672552717556201077612028963940381884905935274742619373312094254949652080442812663526532137782926373186880234939991585525103278751155653151495952973877361883350229534344381980965039142428362483880454508021350792346585239861690726104966965298277534625344645901913734901629661109888632912822478594679836714204988009873022113383315919706172370999791302664857438786079879277513010176322359243789588235721862697990083373091634647171270819502485596874221797637545169678830526264360696325231010271481483399185547077775435436048064135344482046899108487712739519930185981061891153524418251145792243257225673532557869021391206580896205874114052174867862731172669594165980620243034802406281777144215797191404729350321396807079288662254316915416760641214556901927870793558070403507234704276120759181971053642595661263046105551702646150832992843395019749814348297448448901365186225346604635005447705419867857594164460652359069184554404079745050484164432352683527105467979455390478891899424002646184832436956781724942087021231859219900975397089605873955075177411238102389614112393203304099315782596735708066487573097180257180794720990058501628515978753462434206465820526714320572308654354636460718435943820386550216618313348082101211620571470710910990797222224389029255836386111861948683971484622345051703575292706260619069964729776933576379957517292981647327633953861474145069037021741761599477439310908313337239041087724463080889987248613900580456747458776131474433631046064364063653817135940605391334527916323213116550434615875407871725902431230288311441454454614854571217486450721854886645027394145342328627722072746397721881916541205325727375233064316798874072434318408204928201195729484196559566016064466554203410043078702923011600358846083521505098484679483057309487451179909025206954313773300762450765033211513115884468803248455932945659833133427213050782648964494702936423216631634780746707645773172180321651658446768757369256662552702263376704422310954821012553652966325391619760078388428197656369679598084481862670419758379818934305427328618781023009371957033113979116264622044992776844201034084987831473613443355021132346478010987448318004808566426904836669744351352581053204751630888800878241578211434427320863891369658068611233240142726574737367902445566927600731395449485877917224988100831448084966249381948426504609310688253957419222941580537925960896024526332376370672266317856747652254179588555740156944023937735180222094537863630000087670099038594227684845841113260289096171498903101465801171488552087397717965424229788376823263598017527681810517499974545004439539607191823758810256410774213571895247535489312832073410186963510215503305454935404377998126408608293131974573376493983200726913056277725029368601800555985728277522642636995027723101421871769978282164147940371125762368016894200308604433954930763463890307423952881732704584233584846037266485139467902225693330718015148647282197609163861028389049351981052173871550979956060781525613925308622121952460208931340916183781304018207596965133557646457099085442474244776911775236163047753483004351967630526444713358357871204809953276725588615800603356897700636445493961121156316822340339047892538609831259692044413869790383162240584880963572051271614163960729105455920414901984859317248503810237964927991728303597294288436854240487321320111538785002238493415117503403626185814032339479822998367428185397859233503739647120592496244410621784826341922633487347407373370209646343332346400676766698608937313366610261036587786189328164312176538148748324583976479534871524567764183311261809319623333927811702537912726459888221240040059167084182226715958694270964180061757362055869421886340041754759254637474100307240288945240094637431927975257090970187768623928808101519266619835322506741816937921818146057147499449065444632271505149535874738252884625762358727274927821344290229344011187547748740662964365612794270849194757240659278954055607270859502639947170112003025943175788121800193895492853131623424869919833088054632914825604653004875540811235396487369967264023249901806183030862227583032686717423299993609132897360438107444868490556742812624819186810126420514264566219183845162168828647108696602064271817019613464338002188241543338394405835009814666439764251613248828340188619067916289369392007846599982845806390665940945171457716360096607302199280904111266582535030271163715108207346048123058910281481785353402676282218958389389910670189797132730528836805266261941849212324289442084995318941769743443725353226383451284678904813292502671802350389125963504775562686574522489771558580052328069155749062219815190679951023564771355606685882675523442448086186805392442468348017868135847520993908045354782335425875648370686116947301804499584016864781506844400275503253527230281117343629465102162755340397277598426836761925851108248743377304295720228511372379993645101805492644264956360510532224635569757832173128122095343500379408361044436224686657667925153872166338257925786622423066664070996176188002997021736763599235137198627558448792741271750895647199719528426458508013706529694881449302858574248392459693957247125071390479314793624324690898825224954679310638006939307505464250386302955925175407796446078837550862939997602260288522943296968894324042566586942171362552421117375435496213953187033817766208641730549963389826993266214314234347453834236831032762529233208674390633767266916770839860620726291255465700912879165979490922321270721557057672151757653294678909833402853740989160185759192630615233199212439943782356779856969394102082905987407105426092514446072721246227199981747942419554084741776336273712780496850594063856781829448649426770663363462770755140699974823265637478866584690373149918317368625201225477947784236276509120306698189956854667645576834870956028403060316260018158631077036174181544770662949778376083758887656816204208859424459686251622080474067883111994522058477378672546908189671128315513980193434163344314572398819559642537353008055091764185105956550277808861955685915936198478313982176843193851629970941883326673775762813464100685921907396691979330281557156724718240898943663875588798770616379632947655382668437209643424293000423524574583229864093375906247936225262150362241403816920816754396146003947398693964000121456520975952385804782889625130790500535658548790594198432075867260050251873868782210662185232644432468409538809333343301804321945559425014340722782310794337357553924246459825452297648498468016300824688607803702131691802479080172609037057779974509459796127153577773202010599700435806257862087026220383514348173004277924450830083625546340206666704654625909600984399036686189997411232645685319794479835034967680046496632022623734048406202699105254286210132992361466512841251881921720812493746812887834705805883745226781838475088311086732373313652329931417853600787477630896637411412886728844601631087264960565371054104091462980947486164056845561811435881005749735369430028238688067372341280288214640442945555269621575906993067399556636999583236872765908378446150239642338579053544960780447916043190148096534740432159809539652392418262709002689516822689902666999319612088955760825700106907523283690409189860852434697302227559169059816323792240681774365410143853178710248389716181455373018253725799031385597756789060838853199367151826209668875796134652123070017948512874089024621356151446392251693223011186503925412244754080301722085944496837409165529368967088532309257759731450270600263823039792820500565387875680483780749077739897542161718139391736210435445607646536493213314874530088554967257710909382948525707919304799461277325941643669236276114285594725355469829762543562934466396465957715315442812013741675042103854630930589089249633486938875792161157339006465554553868167991849525886095818063878728079427679615990689353944558368857252444208938086010985973480710061161606853873258917357945273420367871304786306351774084072948907254897751003787438755773860852761492696164110931570498316217863476366090655035310222675895240043705252215648912194042518773665830718260669624955386852009924113003123325679330129471984587737594045299702069276636069995139398699493527592602462129521999643463781340785104650533850493610204042667297791748594152006899597793241612164573849849455728790308579760946514879554832240148754257137969619985844867328470237184959190182686705560890163010451752365715926407218474064038309888916990369503922938085255725670096461667772204433884072365641349522243088390140627640954320010193850670707021392013101914233733916325155446068479372944657593356508091628767713304027260282486219144609125500507485086100716153094406041414887077330220229652662208183406926792236523661649831046313435171171430217422793084003719880357797986159403113525727302829567993381844091768229776262330713875258492660657285201492707315934779944518593804155537836494066979632674909915511846722059899460102545898867981651588942954112575523946662938489592413384454619058401171217570201610326442509984401841507324256894472043307047045823005522096838710481105632624396828907367664760949748462634762251975385582904397239871205382556681116870144424813671946903923869082134653231732592932220974413073744280710136293930417695600559540779543521637829628047997198239443294293379568125816434899146354153909307078623971070865182383207931224617018085375012930724399074398960991145557449531061361273236129952721083580442901533050399245737800442838969906102427369237728119160603758222683028449207897153125516665876461165203653684957505691466695772996696743615417928709109553159624045597870823309950467877881342047773200115988258684071272710574746055312971110655957026061261140996785556753151586877732111250706904114938873288876612331545957888294667830327624338471702040124588297233381944073603430007629051956690242246536006007817997070564291958570957870078857040199311704516978460574913499618435203015426842401000573736035727533258193064040351706748929699846498760645233089026952164501067681810955483480506591418036748888520714209935143904655679815064775649733923542513388105134983173813274355256491928373210961117522371199685081948713538724279333678077168240421776339685721530269894733496901443649389491490252054393508778395139956026743843195540077623150447111555673788789182035395530622400394412812898869168223567970808485291920650931794844403307138461288887805239979728361767461669425153389991174350678078643374094150668971694302224097417388466352740990059536885146545390663455294958510728840193840447966739315526907579429665115517225528890699209724613386746045893574341803615894617917062174326166662650476851412035984380377430163913067374088594133890206134581686456873397320396783709498658454805618688507990879410587848214774956156379059056221235083650492465780251595286255394687055830867584849211812449682500121832085131475279055573525580940142613756774682815398533523316887019096527144301029655684914698597283970887760774179788601207785501774263550784799163474379047039343086635419427804032059640704126230550470709049257789616766627899032859490214624863831554844405990791782668852156798331283757696666100552141446156485815533070562948869386485236274114258640850230161361535109189598094859973000507112038531327256791114356067472761128510650145632440661269094892235524492951885302725787394480797277650415068568723713035157876438291193761435911008197044713893606502022970864588293900714804822143214241819068472612270020234207878731948837949775937027438207086345451729379446863070548881713129384648854448791657596885425439532685298601939923401741963815860929823200306120896467150900788812862090278961755410236685835062086632800950613119427741070980426920995388882913120537552330409334741308785434290325909653893799313577241139030759725772897434894247102513170111618229923961555018742631989496075994787092301275195290365466644128745563486257907971593073523420841888308107669276875456580265605060599828364166606362815339372177571011599388891454590071158187526501983826396254106412480328573549617177486347174907608257807003721331248303580609438283869097816823647683721877540940540686195279363445211518137509719458912305076704722314393388382010467403310840572812658042347605357312841704132005693712608756294010820602304727172315623841896800444719620808596304757859507364221848218853330166042999759344566905401072951866865617916733060579992162561089094270002837019206648530758904167113305992047754461775721184249372860977004391832831566905012534843540294599784354456128580752030510294007426211924502439931260617453382850213990042965365737777368736650481216886724352978615718454181017449144038635419817407004210475836393711167053348994929374431554975896132638265939671729411558934255628781297179188380674914675112900413517114959181308485239206127064937860872378063858249059636278993914180401350548361527045088471918579987434064168103951393409834133706480730444450803100782539777569119219125996207178446044731137860550382730433491202955852402413035320337751825995297480455814382710686381805224785979550710198687566234770614248712035285575631748512163758217167272990388099350152263483349017331712580359546873878360114348614422852075905747382825195304838307469728392482841054471166091848227751657755193300113192150077670532890164893193217147459654739518988114808060945197715191143388883156830938833425160542165220923155899762927607059150898399543026711337610831344232611709007268867710327000329511429131145330249139083529311264779112760513973572042705555241846319380393341358790730649502132539984062462040965353216614645918670980418073540815323137136096022125654813641796832223869173423747111304569849542241287695100911520339969176390756632206365008697785433875140552497511402902463820803307723032968052131237295702080053035801758147030427900541879712722506424020942098611868560805824155466963498330026489799955811202236644428970550175096557426399531881997412537218236734541188469594089816267214570059075001156529890186374291401110559074127770691324728335998054588306266309736938505585939068965447362013242554789440024486224593585816221947458893352392194639033514211390717923206195384343832910553882463558675335507444071929819142348725821080642362148569680278059473068226914785880405504920385893361467399104544668453174599409335705131030291994027285753453247824438280770354179220958686019742654056016456282549749646620015709503524882078700459680386908672097365247697733830060489708963542476565371376169094995212346803002155397807565048211750887381502257665317787169231076556968972214492346256045533902680389899330771445343528498156448571236441539382979499542272791479096125742704076523566921497385857940393808471820493649130618937103448935003812166250733516924605436684047397624287205881197811744466253968529197016082834248836879362132958035375134249532982756438222863479120075480563702597283694811649444954043254478325042659508338824816483292438636702935613524052355064196697469381141291113409456085755448839620279967168435986807298860107763037750037672205070297512144288612321899780945279602736767530874257502468931296915710957813639173989272029266556288597027667118730493266732006926403820116970022764891535767966954127795900394504704289259536804029725959731835494933612304256168404235327444936010734196378753665601023949149513715051264850794060725738001330708142768948797630991081037437755233923065549215726840739484238863592686664531214579993219212947779580541199189989624343440824571340347025160033339430804026304115234920322917421829319065904361803896480879642045332228468209411464283777876575250966813702451800012067589134354817474661269660998352366153688576939574828976105594171845167921339377293171596466523079964633650005449423040309687292297421414599988019418937690877551641023596170594177550385617028908128174785675256608619847206509439926375955152593681117822456470772352904506871986853993222600259241206972528320979137564303384560552594148123000116428780494819409598859268772842168919149435651617671994281331932821002101174327354348433572511265273557272325210202619467423880011026321355032117342520216539997614566492866507894425980797266465606697818824917203509705861662106350280117534093446195301599122630073842406439646403031182772893999136029275477503904587444595323483714296406474772586701296195764674139905172780542890658619741746553098870187636575508085365509683553747158850480429755205856378024097835101338716679137296171223492411910003446530000378169949648352102404658646288978413728494612586655846209497827636931872715635091560367685952808126933232728205675165835319181464687369082212494255715174703579223124907321430742287094045650384729970772063931254717548666321268342829156357796923620453464653161851456792863723423100077251130019857756458063947403807873594992872153198552611481342175814066636344938323200146990425141930497206661673710170826374187954839058142402983810519077904652635028121671830986689695402732924184125327956542272200041060092803592863116235880640298907394152176718924574406978435610463490533386871346230140827291796476937746760115900276321414151592641742332640460730567997766279254075109128043983428489413946700949834151477618418411465638717653946064350412893539891282251538960305466282624675463906235184216940141000563879115220780347266690894470990474860851092367871990386321333571651770111063578940033994836983703911778387534406965661590935148260461661253724433044113349980761911530587490670924316169694973126090684507706900261545390536014636912624444669907143164878586060818297940502773695481673283886572718775045624242103429597564554854038090304285547178088212427902021071856025558129102584428694944032933947817723615937151458790387975686386384035597310327863041817254547275916936101489277889866227128216152391229587325398800160791157499845789028282362199356764634449805946972739607902666521196643841992937627284105311784843795701208225916117378778557488380794407079767817845262361005343548100652409846101996547521031476030660415783984098790571906283632358624481150900721657545357070891678845060987892487261608330836959793981940452256733424786888420371014059333436923806253205554187724110685228670170454772838876482521442754188580976141441954130670992254474586998869264455803732089025850458671918914476917603943238414146558399764741984327828243785931184045539122939339671262917410788702281881367550728074876875635565887449303560896888831723356933899803998608862690965436984993650818214681671812914214947242612106601700494090044547218879227826582675933383652721957807125705622103280843588626436046443823543307250036520013017349489407864877962146847144253045943018562538523072955025402342932584793999648571610458394853446214553776860665732779528108101760732531779063284115295811168953970765197669433819733128617750756082415715774946296074942127625110603164704485431999456879353734863309122628102819873535259497095428115234358904485770596720323233599881743995765229292455801607618876383303264293971010691100104958596306761664442856604554758408148684491457854211441864166434303676103218625477982980204050569740033937154802882183487060793018023930959882263335631928382557375559615710409015239191798540134903626340596480894646047537518322212790031567518470698641601057293357241083713035966619278152829935149817537735231353864593614115088731481524933076318681717868950856028387173957695688093906944219116682444222274732380040655591759462032286892332145475134103206458801360191895662984162599470479816357561940343889550697306160955325288195065442180891197179133425166248260942212311555327900495258814814848421485329796580356243118719202616618098806479451831908461099388221592273893845683648881632343881770924737559150169329838941459677195362466726731422784739660653330066535964950804753690581539245170587843923362493555319089447832180384059377825363550386220329954937979394970763689511748987050665174555034846886535801621452305954201392324658688579882032706570192557522616357494158540746142431501366343206696141138546962407831097295368380314481951091419535324630028302220379888306787498244653978073497853319186126843365958547868266027967924436566782949168938434948986257108673460358434443019541512760067732378596539177771388617492365292316661611400041678393702673711204144702385508481325566693813530525195783885996566139740871306090319684031627752085926517550820724683791610739516686644148849609997295817963626798899470392862971336025870522931788790455136851451439324335749970696003583037911791755192011434462572022367855251550658025042873411722869123196478124831009347327262826971908503227173279394015790739031805590228039022708547786109158534409819795666333065158719874911992029802403150621655402997976585116010582168075097282390506168396577311205686577883555606377542335427180686411328864758080483297348167476958497771558623323577322596070645471204214715506923923424654040291715608052820359539713381087550361658028358571722285057335023585407883630418149828629094610895152058522865178152258502376706474281193452660087059002970337864191204434742954365450426290688465391795064203712411565295123490917294643318067898636280924149393227546285560365688499454528475024551459333279875919410936275829588925083946781073886287773268845510694966234480373749204623592421178116210949217517640729797825003056279072121203811698183213915135141565654253810973117548216853495616914049560312050838651268819182702367706640594885934744816961629366843357026669557791684315140184842995613564428942129806801885617640417777992412356193657522507452313915959962334191576138767924134880658447139216711280486652656609328950500511018329077583447237680245678373151933458987159130321908539071965370998315390825688646131800170013296259828506316320202358297576977010999692305450743034548866001173584051717834793103509213363453363806780920360240404331676167700924756040829926335020010734494266642159262933805635782795110038981661090745563334433631244558931921602081770784078071448965767820802252664244201000090082894982953283466486233834517956287202908510745649765291451274670334720129683314313756057170424773465871089696926277013667491911216082960994466403300304940341153312524537171462132494535391682745159782920452190355823550864765852474005706135981669028925904351044287079684446822207073520155335141022164814496872178949249817243428189233054969990114267933285526727732261873070117927725884985287465762232666823463568744136158421424026579141653083928277180093632024561485980712781373087610695614954944772487271829119967623270769507999491767266676521579982319730386767283058856128860562991292280505119034399594054821417498095628550476783753627743696883641918036350420069794329441698457885452017630787596364237055882355717687079979731876157529678034564776306195004600142316067088820063213058161190051261528958775257782082666158998856064628128497541151285093150529819384502500005061262508213969570559228731665073430727607089985463603810621631667666420792638593036826377371738575472314126172249824967695250110460757064971473582029158840475147589068898169937028806402185335763263584548157943051865592905532393986923879839829463498636671548274423747223019271981028539468438269207806367999451174871574484499177421714523639877297113395068511637956798313525632615212726697808114259400792398171926607394379079878163131192703133674722536097820259968136762768519162300489481519362487618277121781565112895284830922126109676950037811075012169452669512413168936544160013465905085430675952711115722346441374852154325574773849493017845722381005946919702376290101361821219983660156912336518840362267169900053838213379199727231827441317023672710227198443367151416897832526475955140444272010692427119150219984583247655745120218577113147077888656669505463110163060508878534442420143158655759199255813865430537178011652803107802091011468905817879009288411783577537285871217973026965564022124029748428347500804812340265530215194276659782578644661006498141927343388365341509865347261812566990554642174442917715960403004463588832130558206157374611980696118476080920468071577334568095127729210215093245898327329003545262404471458328171347184600942127584829142695419435528789543729977563921281385478302754069045515146659627501581634351013854132604993225294156206343179243284091603275486126292925392870266498618050573339966288550483931704341050366383823974199030667962049129464587738863482448344665007657451327340272621164793849258194939301788270892397332426438862563849508542443376248224352898476681906776958916686671731761574236797350839218379377626901352915576149837412338157383392725496749594949895420109644104814833218483856854284550299072989571880516457398408328584282051405135240697672335268446958496178165581305892022929619856704004575311877913220627675711458542087205105992367536115540308240899846425419764633445653005934471951091002051260820878548208570637937134502443497676160505182895773119273221305105990480418018271659103761123945103116577372617752401421680852432693848066368074784628135049453506853703274441287675048011935712164338690235113788092037560208961208033837985943787546024202282528533479478544101257684929296982471698871265624411892091722920736273538646968405804175238471991100998999621753418849646504763378831901572789032573128086672522793467949939722115067281954848573221906478284528217691432229136968935171270164949581479303077588130471875397518121015078843398008008403776372742250501878513094175417327351691996142169057327348776688716562640959738300875659903153490638963424642026763052041898741241903649174100748090796002893006538906030794723871426777135388167405545992519493529696750325993724750130909858494409351033004252094067023403933139572676356900359992554915659099559003702676458327884143323719770938797239735418674652169592850220012876066415921848913538198894503520900684822316249194489255218206502585892611041175380912610314466881765387999481405739848533211479231020382486429763914651975238536704869492872216208642292221891669797209620771412223424467821390222376769815436532910280659086460716622811452407318942739947241317921746827015306614627193560669091942914740832263961382919736051606466493031935491695255126124886298750397921478630661777356917262871486987460932587319854811107393666223740345775749130614010166955279663138908036346923070002332908929258953565176738789965901852945236355578750714015909327876493003117803194848749548341748458635190078685426965402446727092448825890521542492352909899518343695348963447796891823778673801897304442639185835382813848184284814115177052613329312077452733209152675766820476344974606903118384375296384415928826968075682531706612052486716917329047375990273557226172502333526204870855468232596177755455486442820301178683021949497779512539169065703393842821203039670563496533677435666242458827388363269218125270391363496650222292481903095543182793647443400173597982907678469874821786699079526285672626625663894921979921750931730183823459417545619206803758460627780658171414103069764025560587247352280789534208268053115379375603166219907548757739097612778349326681405395712282917807909472818870001243919061625965389283943709928969337723332205824013817435113607815175529037002356508537063182930873679061258605719940160560544402658753668984089921264098369791135494836390733366593744491263194151417780096349780277577747975246932528852573847746808630312038997082785028989157553191206978747221692816546853074420996506366937043266052512971660281653159949628999359948540358127019118629252836605729791038480738944825858405454112002540757773540745528611862322971512384894816156632627222367246034676767215051291706984805622511366242724391173251371413006076809860664087949316528197593612537837534664332006791273456920370055158871406435016597788095196891072429521941784724668233354431285363378242477852282679813417397817665687654008862052635925923152494308200480960987408171461889735191263948903024428340573912726867010940523380356251229697209095314170866069703392206011752701540359629715218378645422878486815613643493998182819675972416817574398299035365695598091405429448040876931601329646562376554538601151118758145319670219980191844803893254826375293146756376680912572280666044201208670676723956987741666941400435023661292497713388714891113559365212614720275055932195094320544136287182334481081038779813945419276088120356627009050112032757292957672849344616761770173665979943703530644306884555588830885456671704428075208106175726280919695009278762761285790579620631426616522364926186444859635213106421498199198304381763843596584231944820041234408858416575485484286903627448127918760249579562255576584690888236947598896019618901329930773119257114748293821818319002035251243415582857089271115098654740656157391978602791872354600757758293984301044398028393198802204174611885751263206482468602665319930640981070564257563125633249411801993248448192907752755040934658751108691700261539521246235215428426492411982664311630108259637795895248053906134879119243930847229988105844107313678657015124631305704653395359776751318592590145277826645402482907027785356152154111066189872330330976011554972666372018188754978424589654875474225971289143553167621966587763041863913106938766370424582840372214877581999355429429167329550718983440769507511347602305669413935377950818675064620715319387571668599504537575539844466588642939586743454872364851045476011170558041417313379120716167350552881000967374821795580774891180011253876431243213973906878417390505326503667117185813560794870769149649196321076800794137576290282101428277936943008143754682879486938296578082944497381769555366981323525177765853964741089979298880421941297427492276736502033619849330257518801271264579713739979531516216140435495492074649079987228787448289490883175056107912566617485940504772280545125132518497763823994465038878426820888150020606190685672759884390726820305543504837034543247879732298092497636372382809248843045696166305355198621068240885084524642459001584882412490223944636411860700378684496712515774719194254464762629077753277799132672442157544733544562483948294796796225002119393450203731552251140951084934166315918419032913537266228324907180666475608891264782906425079816957193150785083214900466310522399858578576658188716324404330533605102216437888267729228858663612349065423254249352669466710395946754415835713999755666395944015622311939422902261336058452005309845673807832191827662347492480369158849058672445472613128629163668115553225416276376101601755711264159039411512109639921901598832422082636866434159058328040323491524259869489416846778862993303658762777638366230199937083524536798588162870120214585524749505594032039040829561884103439671057565484587369770763087457714424254494001046931902247983849609812174682494126306673489722426071211159373291913068725649601503005869007827558248806321922288540766708548253373297251237108274918944813562614402466117719966728716510910307933738529553423377795611159212405983810476280636691605414675334005400941923188029543350961299202275366067920249931696551413931282060512609854024490295085065763337791476987829759894839486357404193722420324549079899211093218067213795015330812309700112774793522543140757824822950172935647073986496226522691210447363317577267944351087616912970800008876991261803269246431155319432286383686869620146155256828791527419407406489570758042667082330093235385579634280693549475254187649670648548368868454819836633888066213066855295761106227401985316813116431076419432944483161375105893040587142195732613422629200218810255536135625454660770555375687743457109233306890942793079594303275285776544931105608148516005676223851086178302458287934945155560662494157473786213282568285763491761235943732678634455576136937139609363106803808167293144051476947523088324465196163942657166014240854027386438495472650608515777908819289794343044196106544135939236109114724707724511145475955175272957419115853896183969121596491906211286905619118621748551424622955880719964748623187994194480498487860800890893771850824840468671842846454559650220095598766069052852090904330904322723624522232203246945494071663315649413505934446582178698728372516492794469868963327487785273632038093387090542588664570944175040730401278004162445280565987069476721157341423489546922623173864392589779383833160460418344298727723363079342239178828577189921205236468890328622315733554001994502787998712849582925456107197523171271331904692456652520215365149030715145611919896888965476946380207840526174100548972413676103968206242708474319516652305435435448389125415877488611148413535173007102259786704247319138943594468902793682600218409839472276296884230417539735413138964387750743679909662041339419412873247669796737404160953753756064406821130506763659916283100114443639041221356136640952169336461584518572904588104612379967416139476027937420488115299910152273874485542052333112460227337291537434490808202270502327136541280856785685352847676562140041427798580229136363901144347110450769096169394925295826373179272911979599052960549596050868959131207762664861795378826480702169217389160271437403718838414933262438529873571229680314916215351700262599256666289770826998767634264819915781449451855178942807392961028636118919720058360565914423282511061032474804184395213025530416051932879795834912791444906245380581795154213835359225278426457039969191087670281251189375635818732127009282409018214593161895788256425077410244571137074899235572371431356952155055755081134142887988925080490769018324505017198575355780659024935080678547405737539553282945675512263001053162482837609158953852577480914647472876314990512470461906756538092585551326236792434028122195211728465923323992545032614218729439524431095768886269486886213998136910274314832321123352955154407142862933734428344363270811150484290213986167332712094313846607457180370735358604666747434459104602345739652799460477820768883876719676793344781975879806369291727898667466944963122362616830466635724819597763041600351847757774226025128321187679790198301778250228976538362245816346011691155891393666610419584036179516613187502710069731777400746453684269156744789274173745179968151985214164345877937334917137699219890444954590689608859864351926880736090252410234127443659860631199247416190593074042808412893222370418803183706589798593913685319346501333418471356061655242136235760485169942766303463654522215899757819395202994204786611557075558949113098831491668079144386855436337588679809997645588870810663255168497922970672443395572876080975492094375367368909507122137158218574893311759016532565966109079701378385436309699610151633209871491441703570368937970625052030498607356537210576040460539572120697619187570735670941169127082346227849064132651993264323221345524423565653110505599019503041908698065848336206906924048724126020503171916651912674957285623365788364859302141969320526369948903422686845573150165447087312219588318244281469767630873546876756560703909747592946532383495071363677564093282035909375694186167219229137588641755063314436262514126652465800016838156122447100378730667220893156598078240056981462241301538110777411251513664439975137169150687693020403747457669957918177360095145166821328824929477812627857319954235744513512608563778974780027563216850547213834912278267299553382039084074632141749800231450568088844527566624690096162153326925065627973075915103271479956540405707392379541003284325724052065876902660315109131372548166250254620338567821251712479968751875544187655180586877206532669199351447866574700537083702859456496719382451027988038984066198763168087879792462296297027110192993648545474715514042936310244631621015577061999513529148393917190917231713432938775464597190522078004034471165570970938806151153620160164932788917385366278555347445128576118756948828299017882805952412167976858521000966142480770480324770576271232293549694680828519380979217276061512856141776832539406532010508885863838978467186861159310728169585778060905239141976380586291840126214572193586620510952035743177334449193089071754902938976315217535176607059593572809457248154054662168577915114711808316178794712391177755156690225901304175222845383289123392610921639450966063358534802755214096532929698709127571144889448117415208409546516914075591788606274239549484419795746289782655567943494655647893389513040393617452772473052883058280947413180043951687400908825735145254578828044012751001244618330983341078999626581172697754491969575837904464059807153637155676390001893825049957202842427410644399405530541719246335074425283528470276452600342995147764528802784151420524858498265908928093328479968885112468333291936999360838924230517722535918784225910804453641492389410882724055659712195475397079282888687292540774384780719306512906843337876568455731799211323465053630578774718557432202705050944688219621033141189958642077666571894385692693351095398622962412522532654296891996789581876582938198939163588307866626114889761626674390206134580682842709901508687241450702771076689712706802694853774640676857473005350375454798430464048867048249552014111126143757921477060618399359623902550946098459921470056355037463214260124468455933573520351865638876658758265113260658745080461746396352629313693395606292289088790348460492029512547991202500709021305794056276808481672820389242649237921733376096208509581800169594424186390166967051295626254416419837974119133082190667949543716571966300378736342498438596690868604805400969737888646374728180594260809514673142384463164214845660378871659746699387268890880713011799431098230435413254721412593526113644427395779326876824931126103088550215790340151707789974429145307820136185858511769368792322358768740440306367643746773304795399007718686492079398986205323382768002747383601681768268208476727022144168743586962842381381566597932633012023985950628389874431849391438221331433357620230991662755545081869237527434952369564733517685680770069122651080346128707416202853851586439349813260134860877872161058984276196351608709517048630464179180825041484318182918532875359539045660117444606221058891157301416107839934997752989593306381407380581242067805315444190864820400896993267882167001400118088117064099565865265533968280350308499074938620019947481038042155477413106431577377695883513000948179867194842613032562338335061245084212050264370009756275624918947211496714879482971137810821394944682678136080505054143511160282096602840101052851120965126480547443268122752102421184593200037523547697373609420605618759148543550924620780295865952808052167566718543154966966951503346109171639276224365781990802087722958467054238804702878697469788648758602199117644325913510166876744181356012067385873952238578104602733462047366216670258484763291490608645739110649919632069237334282317710078049241471787892351550464481310085305758087089368999769988788612860261071820158402788622365806823504176012879383479660639035028226268557005375851681691418211109844940480011098850977935800667235012728065652342593244555891258597681855841259255626258432997165652829338349773056204895329652277420980533239385185977748832276068465399110159604134730985277931768086436829067017621485405679953855120129323763883031151693602803107883489962431784737144830075966955718706372242884834512723871505871128438243123458016840571376289646889438176922640931063909245287938122914812015596982019609351385469294582437240980084893611727598976902792598043454586357600885015059618508006167886361944616040296146258524830170713863494785483821448006588819670248240347098294706679952098565033139651251300247954384279196267408859726266405004331945478674815782750984428939462490277573398114947305144292257013375560956272779227485256904150043983544511319731851326799284438747283613792454893254916999127711418186979866898390665271467590499394004682988380584370958477513253429592986296966693194714631139419552348281720987475646724217627023412037427548373959191679797862633967530937056068685227539740017650463026435356013551787179512341594629058476775330951954225679083655893158509786717767898036007564394626247279141604174940861303096178547959559311489573240691568119965427179304226965833275340459107482513127182212619543666623604702225922147788404176332599267898239574631406414595535068954613231477937106863997922741592134548867863719135187836833798283245294791522238272511905072573200808620294137189016077087789635201075854069772021684214403578102209124911104192584696803203084346489361217955168622240764902215725274310543661545970355476966107508947834899631645827325284607336984069790696885982951360376161432779784805730617309447032628183135414032159237742684012635866977799675117311625520188772152465060349269321556826387321719666245607805469344543806313276174388132166181346890815386541700907024359675915309904507880182453393364218540992203368122714218006607647869416471126965359644571961190788903408236665045949340376670782348353234863102626586647201627700121219974064761059038927453799211156795912350527841874687778159957643147226654274192123279478598883801925714387831172367521376892164067263219325703179755676033602889128464407031140277538460078744117281169572951504660816910912166011222379290368776348214835719228171985107720311212809448627259873251646763284518625393288873605935579592421917688177423147257155787212557637056260388518688874443079565439884380177139139227660220395912765759984747758564498871668681174724014985324767610513169463582721617809662648177289577452646108425385314845204738133236649886929853729530731177929137736545464217574856619793446648035484179395491943257301524715375806114404203825763904245547413752142325528211627671987326309667524948599853769546158073442262578406684559592360565608664779522051479885185280646224957177876284455954593208304765374728631301542778132263173619135722240191945034308897025615768954174897778300854957302232675921121394790732825655602191902531267945377153995091135628923219048241806935083205011841912698789466013466953892361215749170427661593099852956865836242103809112285910452871350100955083601077232339577259193217838812762907738142023049067025720104788464779404789737725875432742908694448145556433883601472817477551270867555008802525440172281503560526939358422658125388984466382788970139367213054057279704634544518198503414369863688014162270402802542571945434887395251390314714317919406616545083812619778168180485770504720332794881306957602222883002491500281766644514527026921926661184111028139842968827545284594222362150914108677810898653559923440242207340574716452968843397185081029969644717043930304921613664675648000657351870367336765910212183585813650699660328665689419681488514816516777144142663807442462389986452649181546900670078792003152906702392126050649847425011009672157854056945098416802637987458292422230664999617805382266756637351079194103924631479852057969296475892848010899818125866980977770116301792948406123412549510091132772641638631023670414521111429256345616455487667303867197175269822265862832998980801151308878477669179535491733842523952569820760632299294293409757637310806498655291991767196457496078111716837068014795430549862855169082063330925982757604887611830193961617472920590914824051886779475581914150656185100590060760662399220632945117891616787402476445018535623340831802228111212621559492871897617779668101812105009001524885495254513021567839370675271861807458746179838800483474020928339363578096644712475713153329794761162803883171469704258576940660571780837626330736513517389518025408199561124107762531509740485057796159229981848360542778925294325387286507581133468045733952800030399391155951414485514860560247026176575255275750500809230848753869823653703649555260067990650021824945804273820893612210370321832210747731759991750381033129243389029788221216075339435869780253171818377127801491095852370240191455839301603936625732877940075744674066740280263611787265318254890213916641664840152650519542414658019656483985791204514047769704116444272342567802574618323275860093131887432081696603547743372756010776897303619134701379197710313398444571323257059032645765522755019648211401925307113284710437279631208548626704088402475243135503660345753900887773627598109278591101471059732577413263907225353588480667844364745783672796337647720269702466363499454858692702242626993832943844643855908637638566890975864522224383710010929618619428621329147546357979263466464453372818447455366445330694228665092537000378569486421572974434225177801081692370521756982739699088169433332581495907246008180983125794313796456006134106018994241215760300114783235168942460714861959043394516104983763129928456996523388351980826868602656001105227282830359604599735284288495332553425063330363875840891050346972763902984223984823255497417956666563644997024785076153404663523701466979387545884163573142119841927295508955808583829450439498735375106353263692351008420160733897076353048719986597560299607940709517960159869564506382119107929879141896103245619135857891000888572000343449830449147689150709775332937784078312012719363152176347624221339449725856592004797226288997144041935229572479183678908325708823833378803848256745829226158368166450969979328860303323034462115496500724539284752162620760987516208709073415828312033322835159548096699549374451930947355491164914632887397400125011600682082947734737661783787248250604125448975805775444558880883191773904648958287376611967019093263255641827123968989674713464928128683336222109434599542239054140831252247749345973501000883297368423648946876479085133378515728731157094256367675204705500741945531077431424826156858285249287975814675772734033967880368120756794502558656613492042482475794562194140874543842893462597360932053300663432505956687558609207078854714055555197762250019078865375296423517186594502609349931406353714796526252173942934096083343024664036065360396437972985736922427564565971971781155546537316108899373428103610249799677844684728560222551121182903560063267328988006505484754691949126312795397402395385987925262321657997908587700253994624322585723629123250383238460512464864055433244527622939965841587771407774048563531500408603216349265232939746529297301807641482137081538637016503504930087955979380497526499288335873611816501607098043602656587268933376225832704408452790092722918665748032022539676187058225003688323090764257392548944376022761441328677249498857534247486498513033184875994016595586128470344187026418334946755224417688951193863894420516257472466853586004605379207686597614612343548394983987675748144440298775228814937056248449025708068860541905169309747435858088980489125123283544699024172117316379432473511889257561831371703617590763032211748617175229373654940281938349823209274835196510237110061720635436831873252965331943194897732891156142078762222812662761072400443860322684603099310799756024226216255804427607516336834810230111822356744768329315412484956174737191742190330630580688204341782828167264455825975387937617554291550914806493397195654582027160271467856100142778513931936595372639659139915781909658366966455250752906776634439982413126263317512753672787656353554898589557353663141849652816312472279820998339071929210424760800146982802719975040671088450302260356920638436094944676418671327314486701306079832198302033825985924823292636388721352091769169286338640813564622064943664055115316276799249999910425705727918126380775608767905199077272560251221034469275554512503057759290748762565245947462503134506152856486771170229075394748162450302809846433166389279769284092081731938952389953791345247868382163515020014909867514896646964419090840418588168658716227150357962305346378119258562117537204245155358062033627302070723023939188469709021696070783238040727689288024233801217369326348026452217239511420961466167349885965625584154894481383824952360833883932448339262450626584445937250995644883714521062446376409829961746454049311568109509419848646390631296607538789803736731384652474243158932799927581513147535928135079902866337164904367569125130003374259397337611157288322772888010339947916467361619659382869892551516025929893223490371982356079867274336496228670886290005119999488530860752311308528728792870068944312250684018675293861255956119582076651313310811754732185847354698414925085379872716756915646671144379903958423641489693710371693236053567808308127178799347758798265030907320223008712142011572875316783324988967413081981339776542568909367134370762123682049012453728079728661380553963542270771676483210590789425022889483747760819669194156827645488731492950448688856071904603723891045132270028829022787321472767696748157847761562628051784163755215828182153484143865159462597491110183252720908818211682258964395310218334205578010520239895047331949671088833084467303782386881486385395585875623504588464241009808060898976313405045249091400544750098607832424176637299240776066939276862215621988511471654596487999934384058180205699163538864877958888455714958381173392664631402336971311136343837645788582014234428458009435268050284553441201558371093421980201759560823664309112432121748553510576585655477220692140959322079230172800981040610181745347012430862211753551445423012636625167350709545836242257060368151056248109527126165759825810042738303760514533685517349000706851335275613882348750704912393232107929134577952539883414922005179933172221829255040726867480299677862809644489893037388578744925545593479717462493927415084426134884206573027535910603028340623898061747966456298201386039561825682679085383558061121903091940447704819498095508677520602683029483313678722962160614378866497449516681765478493635316844933432673352608152480425186145674946466466221139058500455423184707375247641676368624452107628323491258842666593605422442698658492502555451175991744929475815185177785888139711890762810012939925420958958080857442171155152705738725125776319414471010503094658727289402975604831369781735357466920743415040997142168064708885360031368898872443995652509335501364192087094097924584691019273514342171037086614047751920197577180500770829004172283120685331217816679326707128026494380299764463648616339425961842832512861437014900952119454271549151024864155534580996396912185002953539720541982093889588572763562245275978169338165940533168380342111729445976902176109469960309515600245078661164921722673666102174945976363807506901382956082793572676491949962277987973913041759810666258274341863717279400273806703390531179631172673260366849225690627560690087415342119825893047735528054924443830659414703630687416031559189977974558792295965135681242944100045509160537030240681425490960150659720077746794579556146089667597643998978734727158264425874017101154469283427301193796320126485143120789919264499306658286806114040718720023556663117385517828733192961864659219643296836831500337895508821281606817650131039292696371262616294953457295758153541319600365765578470292204542741916673138982145937267051746804750078560064852839011304802981095136606065418406790304232459899189355067287570465343976291498176929631633691894855086463722750961934417583553995253900407797952815241762775212065416560559532133772434316891860149709515341258585602483223719817189993654168385687827723817341698699236689078416061968356380353886856459243440393824687127374372192720694662418320344836636645940824610098702413980713617730740612219721150746525751130424492811457119474137262000432779060465788413286228786636148810967826712722989138783475879164740644541915819000092401759169389125409935310509650581123666620960237095812069067614801985494148592975337981575857984770615168374096681397098860930042278427511900010186509255016857698805572276347836580986905023248174013060320329825911518115253524499933220112499705111038777978158878340228593983112254364597022840831234447196996270367300299631377839398694856145238126702232666036738675860649991965565789406435735311690513261216449458415883481840991763710992122538896605629797866289088820803852115464144283102197489356634962682115723229163313576267293309516048121092609509139139286712018452612134886598974202678097837815625019584085175921433053205656008038001633280452507231507441033945827555848621020897543919857299941051691675568508407932135874252729904704702992960162955740327663002736438776954591659933478806398113268657374493189116675763609574323088984404783448085902179917975074940216203544758957700784084011551972696494542495806963245270954747403987465223407738357999556984643837213901904607619944004755068251888985652032188935556114405454995490608434404583960328836197270408540759246122499100707777157239139277122734999674217659483228256137342888301076302338376207490684618308995842217878688679056942164335655569990916637466405577864073197852487896219699277677914401438232511376096345697910145444097128693938991431719977373711647587215099773655433009976358892631961126292528787870473936474462443981559717674680596604355828247918679059232061937646281306476277207583600139908948601218858777435186722111991695799007162065383271968464406088594543708417445545231494450435472220546340235907354057867970618889716186006467344449667000016689606011443941458241944325353074716418230491810655288837232318315300675396914117904499904194188248207937081846732194143711363859449040563723356664449420971889567830021535590917912097443373619955127532310534577569061642432818292173009510419263086444303788402189927097929402401229193664399630433218725418008116712811289544656544396988735889949489345539081744392782677281223926344946093700442335941898234008828223555916702751525242291131494037258385875128263249906747217920923956412628934719517784613930670991431100150991167983224629949747478092085966296833982878327447903905741099009026828284409217209629376484122362841850477916968350714819872825605873409856156712109034437233513819592245974802527491061316984064215988602712155036265168760029954500953516328667938255065352855601347075385853921900274721797636148704938981486568269797149659708939780745901545983790815771301976098289580550451367029984127741793440614899805016651150610056700013656206322336247659842982632839063975250967452801873709809191418826882347305295257116572316122773760128514663547094441728371614018001341500647057235885947673590207088253748527993926866841448905502415383208960462531909513705049346143797668643251349137255737429552469960645169993146604692604026409799229721503173322393610774349653269474783994210829242781033220759853521207068015374638222103939718341387627778096951448844643567675933888390473666214299800441744405550840047021552733439198857092481986390336479864012527608033432221847802273796473832694251407396801000034204175293958856139997293223668166313122793120653323278093856680680344679893157345115838164988940597054813781734574764108540831708094793772218792849528252769624246005509373089652566991685851581089957635118486352305822730848541000873387234562037404984170980098474769120794207311767593314920460715427553560254986950354635615204808300653793278612154514341071168915706273047821302521450044601281687506363406122146723015339366246728108525636725968042001215195763947351970471854630132843333619583880108886501829417406109218809698712867252411837159577059779475200841712227274340131589813220845779606507386674767995298484102102546005626914343300731485157554535219035492269763867147693186570680439815428943918414321379490606996162020710256440779910398066179487843106956751244325652631603458990202556625126480403128586931107499185581419056761172367853183529435858592600028147947554577799132715867564864794613171461934710390117391272685656604121308330992449711882129162391666148813845570812463443387001313942553215879605072148784868353512256786505817895007470377718891245064042652126430525702493028653431703809905317912536649706245830439245551734003767175320830890419509625180612294988869295012099063844541905251651760031677126234787843891709084101014150133787080639257334763080225194261842470535325447811201635334365320823320332046911803527000580759099838795344637706960061063992547949209099512919663147509753116883704502535882669380212385540060474341703810740610887410930674235914390154179947356318308565740623675549229983197876191421844263641425531745562277640062561964496217321233069814317089260783028440991145495043949867826339016431119823111098731199092369937784987859851037051560772208065008224356440741310912341503643564861339515420541322171480373460010057542452561354135326026268580421451042679165595438339409965569041470359324893956569402656104434877966462802125733797856138479766741906254969921628922367561633401934077693178882838273369873096298856703646640787729147085760657514966749738033037737297559992647487220488769862452903019338669435848224330895373741887671733954132986282047316637541140184003253136381911995998136969216237669048697472662316200101563154647392529798330028561874150315554303086959644647973907960277549446175390828352278988995280274077205977127617798560089656692543620674528886947475063296650238214665953960004140704156809985747852770274627580069603187031868649264290519936283142197677100444692448151635076367827557025782361403841514512445112198765855661405367497022790717865028863039293802297741658709863841038492689073563541402920545548156559481971415332650961557065193417263766920610038866152245564660416678015765434773467919574376651740685334965589514597511189639864562126029395152547496515308310854897780766067114271158746087190092236677664890345236255663271470370809371481163254419185248936255590056194950311220676551056909864921061299108843804945440882619050285198544303703798619431735885992312764585486916622371050631975770244686295509532813561496550534281249960567985411253482945588462375346940076929134981080169938174597808447835016725652864046473465029722597715819290772563759562680455862679675876358830856463104274315812387297493166442731612717656752892736813861023936733899158088587223140888860567150808401710751368597422492034742514857288318248870141624913497751836944770897545995033320109160482264774606091697838394811358529050328565926660131893874894626619661370058758381755215104195486299413152571407727597364564209592102568433786770994913344070120215699929598156039044981605778760537553745757237753910182006846253348720475556992305470999252732333352734562547998592873607156399730112330832319999986312560760606737638600859448749828572673193043379856229443557181163182393085596515816962417263317663501554238797800954261629335932700573522689232333281170485447872214433460477706320546534344299816184488236575073647218309363285134501532368573552196837476879881782285513211425853901432954667565773106554312167853300802574181882192526244258622253418228695953665396277678896390636762483828435188628115147755105700910846880972820381099603480776511674603199864489006271365739842798111967739568729893301506186488305592102259788403477911588850780547031818147423268624450140101456211943797003130957932081802853108382795047929318368094878028819089286124535481724397461330426504883690319505434972984404820883599423772633204415244942270664989449086220718488558502533023775529985253738103888119591657358328571172428141336283530445471961295456154445378117223936911965374153032516847856561225394203676363087410613209078736810167396278475112424798245549797395743462441638293523805290703407958891323128866615711374128236230750438158541791467433643139279681092851521370832091485687179438907887848277311016529056313273193771317203998853555439486093658358774350034280227268671523172492011338383470190851192321017569654314475356575994895380230278469300876572724398616156457532137295375878772042748584341606160916854052091955454295454749212950027633861562163636089656575318175597975779711957974317845217966800314997144580944463396223561261963276650512302646360502679624788843630298830227673420037735352960055077044339655872383218963875292735233306469857189782546324140960530669833783089774094436484129286140534675706706948398192639606449012988846118825970186973508450325711504652342819318354429442027180196705675860059826114587982211974247668680063532686149485123010930607920551101576643860436681502765983774457232715406573344346250318455055755089618247827815709112554068512174573895434072586297011525971814589832325111771897824693273348606315451577343631188912571728649021544831716999669650731041196521299263837723800794256860891989517557011220658266572705439538975865012612378976975609782875595312971577568141608521461173387827192485321779089445737380927507842398142917841901472660140865609828091835109137426238817757119968034541011264958652284166892380937883892403336207533758632120922392883052808088645168419741151695720177219640007241560432816352383507392815351006171496493966691890410463427207578727272493769806290435969940047513890899403644994220224244142203876663789087425765014766147517416170431065371570679298591256784129251958792949553960626319816743236318023859922428346251806517828498492746627032408926042293660515114011833561667565384551649430694388508922589515137968569290596326297120525942427454388109646014956383259984890880335193849650718442680859210135346780424225546683706137003222225531026997781395207203254568313918239169158461459755059267012474561912876019448582213861643965488362087455524159897891608536670346569535999422611283714714253425205777487124020029440557248268550553421959159042539557080184732836466784934570775267438305429014941254145051957182835589589083580998052965667463322481990269330953256011594196564010530689203789832599872947401637367460663411486128508336045771070708155801483147837555716826619193798051984522700495296663078672558263780212438738643170188569527651140480994237799543933483314704486098367072692416644636476970396513612238569513518983478328300191407809676800991033868017690293590029961244378264456177815591779174838071712109033873038257053564878114121584865872317497453795419350692246375256600300951161405579703890242564503999592905517933907161094500739663549398718540154459321330533598213287033162383472770632996514938131066482910161852255787196988620120506569660996558490656512726131026033471775530444576365434837354841340818905427699246978282314105942660611851116294371253266647866817831659567759352713538410415360587696177205435921999979816824584087141088984816264891573731568120896970599558902640674026923935795206639222861441585800715044876048161745434275906284267357439147575986960819309186125792083463497176629595473080224380178562680484289257088555947804560433059937329049702372841613595449153160529018108554954794242424261792030829034007266879151177406047999948765862652005884319100822499851114585015740121577187660601383026411664413355325376770434528885937825145271196810975333358862641850510170351353067028238266251941515355683307396003585884656901596148946082504701628692017991906390048344417160398374103344665695767306612027035904660181289455892239655597236692144479679002526582975559847171869090535981567363905911810999282241980696445533696968500704209352660325590625504011997511994732672491782890435663544955887611397418789553768177519610605302538163743112953723664642631648226066557459768706345884128187975860505539947844294855338102118199172043472010238549004545950925633169347702890599455282863335168102309185825502838616374446988985792974139119577758305385387734187508265429389961872272315480985067554731735403990193241151758071636174558648804149647720226287101939098065125493153932472188364418549063928979512505084430707301553044506553416432686039728365253679759956171071243447106454462402508687932761917515303309789076889602723033632864024479637129275435933103429543079024510599177618656320838515052345397276345496380781114379359004346566306912966159441348641800348465427372981618765378703705752657126891473656064128085694073215498461619002347523508395492106752482566804893851239347394397757493050813211269625027888333419397558678570212197809993344107244846311862792489324263671614014665481228379744296421634020961437068620026625125852653154184998855867874376997920550830692819770936170788338593950595075682171359200116584089449125220802487717723633417937789072950321559332058715589008440460835924080837189761613637432335455402416719018174289620074050098322589849788973504535779524257217878125046469647105858184643345001368321041954902625718958411022715605322132897983319635079968067888585985632925432588663808059683884132239034025807261413840764595258845598494082467656946367423886698942216584666060384034270449346402294687540769838587776459860032908651519599997929157577694582737273764851371768471375440212623953889023726540521006297921232191528826666070355473836493270697479885847926521981048643166063406913324389544041834485936214277857082501228744201963371213601175247150870491866550273820317618310652423736114923960003148808334006958148587140722769311319417042301472449064473112448190978129916181663702069864991484007390689845286350377904799196734047353364645453355076042622640932005226625849175844789007797303733544144198818169118834773341364006684438417738345316890519148791673183933514459705810145938433182325371222852667303228993675337799122005964112894511976916219431295882167584351408044739036066515937924353868390502085007557028679623867075143380630008276286521643248063384668127672771597960802436031241862099777753066258231265054558166443588170940717455581604076275114040676477591430367645005419829132387713872160313152557718041517318008623493267728382856023342383485414325575510411341470389468422363744215356557631610843208164325600610231596600920809920230403992620007845850160180082360076562991613120352220946438498506667209640530718191619615708813728223054891241691128546413823878086955915507838646187457323588100112808520532121664632490590002693700342230020784446937294958639559606722454086763389437285942510566702359025738758856001399146351132563339893417540526087007855495032950060468642042959772670864978004994130903043700731349613335599872270931731234025680939087853075224621690193668749385232782792616448682320506070239311328777174007538245248939786840669552764834201213419233639549944037995612048279823922359964561346821305269998833595725055236119279179432046842238358821457082386515729968910961087735703873437872392631678923381498475398423818028215325399716865539669143333994138175641959808947948086574360969860327225313177975066384668358530593864423308492643997506956893467068527843635429233231112103555287268536217833322480136924446094812470272387563366148655439613360785871193116743612403566020437714416551295149425972068058666512613767532880800462537260783792267164529493591764646432573974704676819508801117842329850861452225096010188356788001526462826401728413630910030319654671347888450097049329357087100324797316892979336875790381929388512872992000230215374183610716544093141997109047499574747660442014289236190387657540215100152273674969190094761232212143342145106659382975657228959277162071491344666510354361294586523677587608127912483372772170079315725533497233303808429933456174028169643900129721050514214379536766349516092883942566741457566859791018422657437581949474207734770814826743463990364482988793315686911567026716920373020830968013976550183572587749747036353888102791216638241273005684784711532419275909370220818947151404372353254735053357311814942870956379296890725836667571818648897561545258183380597027971700255863176056651059559305491268224391279526196348160033182494222614066594717951509436021974673221980183913011614205274260418758899136622716902039005685287067353181691095005550594519135065905453383607570591518299783943384055080633380377981236385969584840116623432076787685373292823545437796448935053322527494353370919475084921138872269103312272038455153486412977464393884476445542324320943778335566313953492976368018549781422142905574676373763890475196995528842649096805490082689624072726518473978583559057339139764402591011192332825583695017659482667339918224117096324529386389828679862324992310117949137237154302234523763130132560700727387579956924121596864307243926724731144896773758878688352566023466528535478811155701019889371884290395551097760129615143734314838578039983772955781805213965406346750332767623473478427716508298856356012642590611848406375316943920894394289672677369654360762795776356880942014945297041066532416713839999126566428297092099352984127851216159785229259319105796590792309715077113394144988697364985621157399268326892239022304864521616030884806918611457429315086918002044110424948579205095798675140739801589927105912151323005639510329810711674122978991142643666816529896064511533827015923974332566792264333948187482994988869351034475524409869947594400466400869477037243990999563904200328297797519550254957219634754096441119586110413081443710733168858481708053512286908390846105810787631411845731033400801135325926523944441511614177131125396178520153507825949123730591067977200428833188771440571207025020831908965063270407888311334428411657727429125124863098392581883450699257410021766248345888662437483433753278423517989335648646054508078750734375854188551178866815910210601145352411730439022990574570923448145521777271179049124671770000639290965206192105413929734760246670928467129604241846469000633612994894214875242280849759845032996455673297972502791257875303814038551965780874980007060889816367815709871356204418528658967598180649860932420951399619261315146622487950060869422688372226350069267714597767663794455544624013470804336606064074389571421454751534595143529153674697383479377490597992511771393522775797391087165259902960348227141785981745333426754340238947219931109786618509258730793527960415085813435705598399957181187080649299409004674297199757408416799125260690012691052036821113502749004518716119924097744625997724707658482855773253387525360952765084615241064050619948485769429115735928061384440217881523502728454900232052990970608103930807529402455604763104009346825232025246600491638332712129280207794942490248319772587681534397871048450706638975748802492869533071868438656522953037887495360047644090020053344154369300315937799697557931341655480447278001659742686402625663859529378410932121005014859319062411064210278461837118421601403950555898030754699101727063686137562700380607974556447689161065589111276407396820743305237140098464952173394209377703639169688231684266768956111522946358887474105434101094511810206427802524266450244206222730142615691641725937695898645302969075942511316692934965891908997362023559649346527731575896703952325661169223562155655043991903139238654383319684017554763595005845722043014679883885735715690305909492333331616002003335910285099305096296719319467746063586764128350120858372586406301260312578920313625568213386324260216881242602962339091313203865871578620099681777793117294040937212902327881734020514362736435316030510251892097546323304542986012901682730856034018073668231705875090119579462219450645702272393212560967777717733266174767491068385783887658829499741979581246101225091891497191410451491752191982411618026870097479750131704397324381593818056466233159571771420929602412262409506692947130559042458329117254153789383952425121098125186997336257543506599097388377271948476826416917117938901639205908560314903871225989448548904961888336975199581671785841986783126572754932406131046675264704475627370634086335440531289435662814943072387037004649065962330474245560230080577054846527500363969851428205825865864077205792996604107898994273698730015460143613993396391851235048197791029665953035098860343580431752954203997960580057942161360505785949092157615065355762226295922392374847326466609948452498341673558748205095977118317590778332800725236656041185541888259448684977327758237541330967826431858541072318730621498091425244899302037077741791879099296937785897133963495791519134836255642480203938969744568101292059449113158601497053707362552108521736249520027029729493234508032945077008450046358076340035797156019315780733482619447330576416411904834984772948030105694872812192426225052727874230718635413433360710493497713198883098717781417459752123184958788253322973357200341388380945705903810209448571492390196564415302107146501362686553751400367561050206136015408385285362595133251185949874298196803360438042755127526497518650931230580868623463965985924192148537244871186508827310112563257397657065752758572259901138566359467187009357925549707266837712683631478932936273368575938466820947798671141583359131631746109760564473208687023528441713461967615703893545925630134934009537651410474788215746144152523852213277435013220577836724054297754015111450424233298947699417602752667820744740071437994636696775277518260130826610019647320909523023033757459174397283373991264543462253520097365665906344179618416671568341382337580296653220456641867719953214629361674408557828944230505047659939777298581663509115926883461052727612254809691130315066009737243658746002535408992341667688949973829428391708217421843729340979219842811221532411926763931332254822504490357449100903408601296761826471803606802490434024450456064263633830786373017233914666498376160839477762182487476693823679316155591956593257243677461178102713009990698448738819779724470165944921164296624236619840371288475695622307363417604532775230913796104336917669441892405014757560211463998732349827872976852655668016070056997153095175227990042286970269467344458700027849451836220350354831696598453405997205406949300498043099822255633569987303998129152972993654323664761573588763766577597505093409479814587777071750074666854374371344159534859725668533614494321972524281673606027663845933908760806207148976737823019877513690164619702260988081631936490282626005061154350646006901861048121023652510738719878775088363776134781630819413652222212704299348639097906988252269237874223342813129542338945368631752351936730659330786774817536264594586369155830166785154436929163224639451398641111249498998021237057921820008133643935909123884124588908780357265352446264780732496524590857770884870002118936069584640260209191158756908021870879241344858152936943148635916855694482602467814909537679357804347492582225898987042243601758690058616834892161978539346065941549559268691890613265564853249703587095140384928863173174687508576915099770311843076899329133053837842971572534453077817357322684029535290677659084548804778290036753982534113816383486858211132423188160175982438760703694609118574193114566774851314187282699857969688551437703223719040293894601318601155218646903176964275809813205786277750429661405686651671794373285078847762691384160985821000113993521084766732615196069817925338107448998273494273997429830859992153468144937024108335024278681608482720581769250756679700339163811791876978658563347692188679030551959825244734125595243670499291980573923495518961900399648935364207962248920691726153532441693461444243139871584893897757532819556990447021461812657052514307343695447155027264978697671384333878753177268601135360592851454181901739637034040478585692259766837879718290163324532008304853295053126560342473817072936373126337630011150621615148124856051663024110419177534544915854202090294444821623130555754961188605518337023732447864180962459644105415738217369608024900572710149494092144373308630490913346134867980469951436888630699426883545740776332707260261405981371304895565588273566719664439131008614251106040498824581491779585074417301977000413742945200538178123793638698959981094051895132299437406631925203545506604397140293114016371068129111645118077936540634003533370434682260479732335284831216910015911761396470540370934612969101863411758430294286651554995579657618146729763416562903798847857402822281890291887300986530144362599130453478304607020615564164565432322094136787188118511712206447321810103935470526190761371514858609249987839121752609889500754907088955376831260510279917826949398174066067522888845434492189772171842486369615969221123772352321811015141151436260838401921889298073788012872290471579657433890468160953686311503585685350317451231029444849744227995409750142321117169803063530226837103410199096492802817404333847814241497488943576050460804773177188393735618227331369965038156842557623424721602542081761981327045714579401295666531235723784849567370702913258595211019609066809429245390453279523076968690610253933098644106447188695986687295597539644940161867937659302524575671105542467433580471968905895625971412291257797133498201200251316930029131864032728386912921360076943700093245938687491763155098257064777647362945238815802877183712921252685183448499090855057899492333693677000471315748319765505343821293948578285179599160780708472735165210882530458167236986349399212123644084817150064646144263994894899248265662157342654178590200385901426751421777416867301908104354547074896692481722469121280272521222011231151719897546398918874794495270217112423351762641341216186277905920623695715974078512500419038479546323828000381098285296457340839398793610083114822907623956738251682225175979400586187122814779819671052553728001588162488875443166488234644423387729551917680183366149800870797293122445693641043863247639376053204790447247132090629009271447532297707406845362816497922444930164840964948836253418911070527935936896690541078696669356936165757894220426905323654535501487129464784553264935676152653210845465047967966965245172244586526765224362733953254850451985126691162761852783961380480693749509381910796338041921695104575246127916476551920286284859943174657317935605765174125878375584470351693778541494777096237660567945137749411167143717701695663613310600471727009666657780237782759833548734592075644277797237919363377282636084188592835228952360888369724406819805160311052445074120214703176304182237048167710484416113571128933733769872079995238061577050043879663184347923538478876256107493906383315487343718480911885364915233115825985686214306395488774758101961679610261974024557508535694230329506786237255712993566962426884175378026162416540664354395641882989050733483356360773882224420146271175734995985821016035642066439867314682987153777034043701987738567002742507242731601839345689184370152873804370368664949156212612446315973791691191314050139979279228816171373805930041481159020533853995060424673417600905345871168110114168443447546917492132206221400935555282434610694081898325256417073199740245427481688872559345441501676190357888551487845054577741159323144730405199910422278772215403820660476748051175234873247201360721422063404114630863101500834894205381416571136703948668127046105004425161953129775053401705703124719371476723935328924054810850390810499055509923191925405345703721509311134241390721620631909111271049428957022782003941424658267463163299276985383535486015935595108208664416252735227826036133034750120428554917794649408265814289443619418794762263769817231917316256187450057507106123308337289398658951638035709215837063865241246043663002427772105453395970267284068384253714696369383351968073457998984541964783030998552270826831090834362650737422588328059879496846570869493526460244300225484451416863292559402217479218890671071042852217752080094442880778628142610460535268149997476094968776333910878873016992093879192224361306728876725456614860892086050610290917618337071474353238177230807423359442207659907381661860019042420648707865686054356733423364745834011146133008993549386305023178429857198843127928829481625426024056888107183665263363685755166622271385037627264632862802152010576438835974924826163820876620048010887941058513042415333485288300824945844009213100776938625036188790613473245565648335651225645996782344015032775575538682558474445344094071548185933883291943560108890536304351364750571596943314557796881624886401613379517467878448381638601504561256113924564190706171546918029543452463724200191394160746395943703096391854616431141832457324551373049382399132834463361701139332103232890217194581784249842355240070843065466290891816870796575755736402957333777641233351487452250998092997582988639370588732273169752569709831895792386036876884275914496849372147121142445606791925300266698355221120189865575352895044545671756498006730721687524327830352405289478132378569175079972562849207294532383479831461724134310053577011842027567137291581202922617192308427291936600228406968968485615718701452938572030092616212844669007654451798708989311384816001883929181811716270202762235523942224200936534430608918381110410665449178111243265581166768419459941746145625927515065664255916132032702561688711355799062295184658541591813714049949586014408472326624139733508020960992697417972721008380680114521318281703446213079406354703210977341071510838660483654253847418379196646611839041391944411433392645857064251627143369125240115487201069754585842817239488634850639688998276778107080063243002854367557193010438718971201153415576667985313026354140459471720267022799640409585351901132938174721781039147899453709811977421502758507869252158026879416397738521713576327182089611647403794998556803963965005847319917231911601285388107114863962444621625947366106116880607941996942663793068320968809409757552217231982846116164777596334873075123107002670853561639586382963220360294407659513606033933777379683057651282113645547534931163071459819082924772618931496000125971165426072223704170628304076433350171736494140135713752220068420881527463784232848281439942556035092276899798816413367579025037909527469028363440629397996054632035009055637687964314179621661729572459625646069500258500516119042463359851408121485212977404462900784768340095619576478765208727040989777036660811595398041925284093241745437748235306347151872202792927775382946039518053707382328176726639611913419102878037728617662949695874349733739986871769443764629524891885456888418537432630573235454566129558363908286892786122905846885487498823123648630824004584853403663766074926224374445091179759859048848621086323289806412789806140363663075091601903003800382270490664123208972875979806857983768699714097453055634176336511443521997577645950128224281679217109684578859236475093589724502711039640971323986247096439276696667832885015545763435113227156960626070510294301650401340798956254522767674638532104282602983229338961503976371895633170541452994409824484701079947555663257533593916826647359506498150561577353367517910855020629012395836645978056517726631667197677971863108361956501029527943738758687116441269009130969143259941798510948512451049776197037104401774646789384441863921694842536950414599640449393199164934048156011459156850394915398216030598870181194445418909369352118788943547865764651087492820592703382287617978060140308901081665374206987885535061153026926271296065991521845109162872921924300883942181876167628377352291451752612926334691506248497189939504473300839461193444279837866431201406161445833566004448320294988681456466440775555135517145356972297818475703594650391007815717747065348397437339308078144293351778739612823135482469654358307441433628634066652299419809732520736394942085062749083676145593897691895395929540077891657778982479244352479268847162032354190347806145501541628637278914832644098748430363987735809749822278462334316528293545610413861942152017096698339206215370244458426873980958073791358217354444402658675789221600129754230411960038082066368800983226016421661487748519308027107287285562566921562469311860417875693810214101059483166297550014873289259117992495854359091334406247754457394701014273190302789601834466622031636035242361023018029341246720291790252574072099020589916213043973867093809539963619588436407371248387997290099731711146651024955828798173379681412425246595572547500021150352574730859501259991603848685319808538061307522903834021483409348517528375381476952488300027131563906728455801723192466095530015967867580962211245534047236819285446759963232516555917764213794543989978635497356325923715889057019489955843255857534768130331442431592202298362173318239834924096442079980965703987809389943947253664148303897334609380373586590846173287177001204381865154514520027947191544088091121057317853726163485932836091657107415523754454126226857669826423248157992110658959307322025428625112276758312690428363171855324808845974870253716977706252985006161038705227590668236335516373404207887115192544405368391563294531443546371369977633310846907796509856575454394637775014365203333890640053739559194576147075809820748518974382939595372139849177463619573411140806428492490893638517601030959829591100820612245560589287102638828171980694105379730821486856368802806587894634394481430055935364084469513770012060671130413570300898410601299622571542762617601072598366991725084416881396143711993851840293252999273967809965260482835211790020304335787333327546834474530250887282367353761612708696885890313909926782685033057782347783015093547871634617323988858353319178758143759165002095082732894669208645550561597984772511448985211564733517094986243603919826012513055988465394284461323517458587833280129668894277563483051495402355899457521446675437935555969044691913907665996359883919730284945904422365006499906108937393606725597320937133281449727249933431256638716019283591187241282386421851594557535754309450002627678627236509080762164326875403596129747699914774862111978840114744671249609489412480347872183748132273563437491176727489291578540397207899788500748595771471528547483254044243537331751460667117397024605310485784965183100172291928649159505967896518222832684957175587191724544253584893112241481093279688066311123287442464954822602802113159182767493706194474127986370041817860442946963635034930489377129342432749275047676777730848721194310530753408043581424407556478568561718144070091493035701271579434906849398175930713868042287209934521075928129628530702785292230743929561348705809712005718740492829451038336664302498227519728277365912402491326131626169835136651153859382007285150232028614964498028511083449942230290203776737621207276615184723874880939663121794978180026467698561305306998931559522272323169007668135339195434414504442367564035290726181600340595332232055877641258028792992591420017454413715095803714487824292666803478230963370585355639205627384923983091414288107207651924242284081003788783653024300736537592289284870449564319984476183982691519689257668799639272709180072679049059994566998500269303579521871263765877496478081452512537299536808023729515223823685440679321970197664233853867389790777997026346079374383709377664968260090350233439918034793871219623874157227530943004405222112910359710716783280925762421093409272115882850160856340046138898286131622676924596602452484718689573507544984872458434823388265225006735238349035813316465457440002747077630063444828252362813443501393525445377372544410441907334142580153691745212106372202070413287430402982397201774086430027142458239389397933853533017547001057597575862739447801619217658984014575092308884868098710915760900875436204327317113273058557780211193121329260280551712760019983396362810138492988091030419453728039314192410934591864873168539563739117573653331331822039963099093970752832659276869060615373519168123197066949401551277374710199325097743632205451177426783247921679238598984114145171685630763775054030964669024556864657395923298122571483253320642429902985665693261871389808187754348486509711078996694235960276965391429386132534114297807527279461932295010510226973544978823926645408336313495430071104567549714231290750389963866752310991270076848823326998647342218197842494103548912995439401070761881624118708129376803378535360472351405603089483994330300996729528597073504297137866920830123335772474041439078740923721907576199228442200168994955975363433349499262502705543093103921606939796152569960195551856661222286570870766769749549306540682343619920770615965569834587074790445543514776176133336043365841403403756201659849214624183129635103566949333824581492844572988559405342592857754546692071204080037482435878331361366340421988985769312482038579913162023638938794857014257970413621781833555805215999167561345793162436392080203661611780578904402813165165552047945623891461838567293757740232395555734946226321258490445420329394511628153288034859400565833036627511043875822541385261294117588463372870352459123329112392346120583126000450471074950586310827594238232776602180970997918415462444905576272007556371752159077661304324822242752793097498593542093297016727452069070637419509280303751724058194043365149040972147118045299631894653966053209613526309300849902352662614990804714736805846357501065675948486542125916498377858702772626194557403650937554585729952643911938620332568196029011992878626555717247178231218919679703309377040521008441689909323435560158285151201608404675335244150988057940919532522484122778032787716334235094836084792277223899211288471645964699833497038751363890424043899478819472002133345946766938472304543228859577414925964537894806842296722568220360050929825806336012360834684216414505776565436316350284440024416425700327619016984661191253056694390431274703345544071379082356501421171216414542316768231932224768000939215464709432199417089399939124232118306713779042585837783004982439043035141600113547048110368414423939525077123543177497393229937127781061626504772733571382084815386406765412796699990670198652930415492897169942810540696255693231231191169263453674927879986823609191165943956484500914637010210551148128144657041075538664379214137764627563917505889085057295773024452501090242775681251010433943368152649177860686186479943795163181848826061032066688884041290581048453976222314007620585931667915434790094865562932303729471887947573968009207642130627198063626339744437636109215546545597731209271356235243990205322008721577514997222908633485074939259839491912830693410279421375594325736777311794026481581813388095328370083981866384260449044103958916052161982988883676998534048150449613252329711879283202606148753555623573312428118713636062604551968617899532291349746171403588338193165344274636081406264249339169590771274331849388702429726528748237436841634874183599526916058816703456763036158498076617928129234637083814266026823312552479784908416530652782032277552354007387221133889543368854023325659305469561872744547685989497635992911538939845918946572369617737358457948033265027846730412696775161506557590052936122286806934751920957580865740795149380926780065011998902624443880015868927537770983660732047252722435928956302107207495849242726701571170635141975254816604967655341721557513931090024166513680039571901249776524185325816775193506167633968226384702510389940118959585989298062864456975524050262161660747380355785092965022856052812316330404993868426563170124486601106251377381010926904087635377818285295469096222585957611997563681721887885507013634126652794911505000647990565280010676843598553294499895702554322309322932920486122192541237760305143777610916063407908731131393466633965100615948338574878433334039507073775014323453755090683988577841627021066892664095120794749067902183808406237182233333270417212042301863545316654339832785485948512288782015061376141577507017413568405602637134976142020426107926024620621869469408985350058250862081827846948556796357171096996418202885480127931025139937029249537484019702375113790976566717605763194480555397559112744155364547598427303520882483315214903538769867125707898873542934362973412059513755763692547916207616397770241196391301837574244110363640329471982788606890268950265958109905067713876304522872747895115809990159993251994300906037094236568163323640057510020045222794487563769352687721448340539860822863660540743888114439669477352543936385776369859920423543091792531079288259859501860060161490935471439815755310071038483593205499511876419171906283588457388914291100300730380089665822413627792369651770111527315860891362365502599494845533222150906466432355166884137815626073423482929232057329010943206143084096869493057648160262771727380730835478689794122162494851780946122675836743119993627544220594417474816149748147304148534671524443855123265077096412652541616976932031020669235229019553301254543548658938262907862955831092901014587318613795725265387129822342222238513352530813871014864867972511044009260395153048858653973907600032637746194449715043830812500825658615954719727426699424404336397874238125545182783796034960228212896452273390846920363296848508150881935377616959984701120415695308507470890207302574279486805803305383746293781082297439635291840838487072399885398972290316916981412446134756468325205850744764947524412351937885904408479068410539983126527018331718268224239701572534081557322403459540570026137181081728013112397698494665281094234513121386517049902354400292308003499913356246962486444704216084082817578084411165271323606296065784806460581878108654895878428216668284934408612547594535372727860310656296930212442739767854726136479646204053885664587167048017392432354156191371629193963457235462298280182163979102976240558464116252166407234377633093075538282509298410781769221132120297927016609741405055651982004941865738777135356231722812372007492449467237672267661918612130540152185644601336604544890716625969998949248562982237849436555110203820834227507799649772094933310434108150001342273765788411791044625979931278927533551746470028281702711801373232522065266989971862901610140922957630559497699327006591915291855932047005921255765455942907382674694900752267556409939717570623281785087557401734439688914088196486242839857759034789128827778847500978852840716816313756440873260344488443146884192012326805742171654806812123890502513931875357051542111298728993179677430194367285901335794616040112579011300378744583013552307419302548683077905198339481086419734448089616512730476530903735061948687042864984272021145712423763724760203586656147712990849430398707307603341235008767691048797981786407237051775801356176351532064284130711118826991912110062306896511646315563072779634056178852711269677843131997642199768717450955456668045157675930816304818495913819662433113679846410275945615626727507155898453019753801144529864434499096521188502245983083796368575623558572600399101551892183650791846882232155479823099664134852998705626187322695790772973026243438285282811387748678965179736368507931702036579848902265875755718844855354260333899627699138862874082156384843462220309681619564852805580709512676072142583592581251689434048746144390188994950751062054906694089452936442447785260007816129990618111625967325750367667158198354779444497698918262100553171696475395481096220023200364599017717058774387326721677158889952178412488416212297621836905151567582609386808739337754976635046797643655254237346971121032162912600647872734693080753273389312507893866992325905683141248451214118185130278014742750895920399925873836899152923392859024246449806185702277041109388715566593097440091680465786081178549823282001261489136786199620381327086632052496179217666854053394309314029625082905825423482738440915861546154464634199149617940612626893795100671353411900301323184261873070303931193889939109349186063967182967675919705632226761256801225859768448518811219314089727908575676472118692945858562903576534355606883280585376546993078990025680041060484779661757783914108594487375279350238150729696295730914417476730550911118212978302395257362054816898122640372311295675516828267739805011408447051735411357300785153794710903565873334077905373702849501024402761021936430294695369708012582521017863494948718989666411062641717657676579315333941290093881836944390161006135966550810975966098114013028910421208159777576384811231069836805375088046671314248935366317270687455679511738664925477827581204751654548069722414206123756282470158587462159651572485047168803284962304108369404054082780474072032287845608645462659045264890973348009044697613792892521132977874113321177770384996788340480288684719711282982262041575841972040394199211024837622488095765937140669126675147727547610058976351387168281887258641776908384007695834290565027541826138713561619682489542306255745425425216921246043120898375387626610699222536902426561897448164036788537087986546058824915826418654358207098023779312735038257129436281184815548991951887567382662393855772707258093711496959563950274833473097945126675792427372910856599338506306829776895454330136556293352565041941718621441914656706152339469132051413666513022969363013041450960019648169428758250873892839266482587408898401995290786042048359315671202028551326198202964680671772914694173051218745922673721483471089467332042864714430173004029315817728438106304947392470581707322320783390576301762280734521208826482072703138258292223674336907536921655261378242335870921319201551832895268794422014989677258472494981866369386292929174559765291129404275949945350994071395007363387395701895298370492027149034041210836576191872558065187474639050643031789319752624446012031249053712840871761263661033131305025083168194834460907551538919745051806067496780496617043150118637547973103418242580864890732466171894591611520432019358559259009877281947319072427578676357456723555832219572769362720707744631746931878676714611741056489372139743062094089635624095770746397279592961477936041942120197723573186872549899464173740615575621117874433787297682360335893172936149011395691432676262417609351777386948986181601666506165302886725272900928659751979325673077275776736085103183394872098965606016755829686503508763936273119320788567557216491600597114275261499242797908708967620016865931590255250915859340583416926265110908263090765996909698168026154419926044736461814197449626729049778415340523555025521558119221675056184309686607399586942736600305650574914209868750909281678614158640661011717142070210488732388714205730975520938345972759025608770980207063482329237956047517624679735623388265041495687152165756067800515011769051162118831635435196981655891485848847762553192811325070600650662796245234938577848655462244832546241593879416873519975181630628618100963731768379025866985927334614660620006467986269964407298139494762888944651761330422558976627576187291527802159888157978861676412764302916707860758384419311464781836675985952493960369213923971495644263734931720039551403149418703657097014884454408972832524265499953656326615211758299350040415414242782663664391618422658847491372331458621662812656093120458384023484855510420752051597778522386070080106589342986099282754349005345062415283067155938365398829766493842640633878234053130326824441234624845363786537705987670048323880034811290999903970009765594823228926277953943429435272839053069208739182190169585263441685081466701035572767777655965801024743105829843577289918260146067982437072521140316432887944001376795533546232104963219349472118762572999670588337703858485302614854370559643013832150736400600715456626150592825680701581645772964247751412456282208746535172619438502098376273344734805349367349400019296499401510127517404003094161583377759980950076173951144088269834156217675653932671696785840479386148272681470409870579229191648318300135206121338258052109511048979229500382142511661560641145436366964185525972229910910522298578223366438503473020778426356159807632986650153470182719275971910045879911718915593734344427453159838506416831098610563852648483052969029196937008545466594234977106713983576956343584970352227924324270894406576155603628574747762213813605432745640959114488827201731790487787560463698358811493846533311586863891323673380714555605455899498900909147884604679134455274805726464729278535044942309782467512497025114772679380137088520127893659177547575590639131952085806431070339509106998351423842024734381735546642775837658945894163916160242803757564505010726425944707222953269082552647319006373775203086838761599226117246268884503825936343096851449776652972461372533866250444456696353140317401333063948060516535568352199871678527078170326963722618200928169917223460064655482782778640048060886051270270123306195857002215066861349095118449677680402182237840703749721241201033505783545637788760686116340838915983790385084250332236521639954038261817578077752957527171369417441193420312582787652897541437692032557719168886796640918903549318484672228435930079826821726088510774316637839316995667005984698122685640119163813218531693173614370709551766599027691782764206226710785302182203285416411280270875695139196947295474412139338684418972489462253905742717939654001606866097159791301609005302504336968804506173729055324510115492851988638368450281971338013544598820610589146435788436857412275708396529064913851904145458526740014402050405124173631949339083685820492848424451766185113898070336355617245434326264362625206964464112882158009427257136310280501131193873298810504331041626419771143380208185390312750399339371031514190457858197630580280050083712918495534825763386877915668976056851701746130847837490926584999105992035555787108876259705501564552409959280971597943944942467231117399335828458994162136037281786995817771140702893409059121275113480428124818190218263560869370894750786086227035736202077434649534927444220748901151122184568525606876115351421672365506348076434296284863140460703314309617973013789830016961808380817975696937152990769865939489607911071425855748835451565108481375651905153609325580969614292500666482176908407110979690403972678171734365098985991798405628432999002572656570923782273778954643547818379488094923541066655715883822086454182933261959561870459756123566110569403801344502881774254963173010005181393679593675894910715598104738008144795246179696180976528547652403243834318741750872816466959056815802043432313812228977775885818149812892243110856182163740153865206623921739354052463219000879706251902026821420541005678922168225774712258807348607244053790936875535024417668688077605071094443817985923034321025089740843901240829135179981484169870837965503737382930786302616397322275558680436765878896523854587594867897160260417704038122644624473048814556349473766750272602572139157387044349851160746354079750749158939225156710884729151433536197006742894856572359229969899768124348612657825502079960458087222733784015841906192507804880058317971342666446799155394450511649295744323429181218876134851859998334216819455940980503476950169654544588383210817443642725338744101767263534289673479374547595433015969909917413458847476690274442917805779419128402660794671802381473053043879235627543679804823469190155465474132877157886907228562120024585305372869926287748091110872094307674232201252352832201793656495562151645984871277695064354013748128387613312616302529305684662421749456438865271513161862140833509159107731578432354335523562072118195003129541619424651477455921756094973508206328128010759436112852911573463028188142128113506737861299426354332446167239154610716722256375432910617127433851568474905952772030404581911984812933958331137542433265405232828031765379657749552005241659009987122449694976271644870068615748398815348668066746506913434087175628478970577347427044919144893792299899006089822022172640142068799114262775362531660962458818597850256394086135845668021392512956579087077415090544383845226496133744045501609163821905138581335506569763314782059939019039280972934766992618150717297063120592150382245638671308853659088036387382288036073731781805226758254661222744308623151045894866831762653639474788000295939548385506794977901282938600769045000593331150457793515275316635305620567331005294601926565418183031274659114482356333465790049686667849674281675079379275045330750759716375351457560670848225346936113918490207942489177040529782417747521410222301116787422495030421446454538112963301301714020337792754979550617588708568297549271280942022220796769480653501121813890512810158875645084286871444700846955228378552182241105632355357559677877730733452304921752787387592519295394586193029513627712762883383931196806589941344253472090744492542318608821663291703251797900276831360690243057876465018495180029382063257835917557750691032007917027527327753283723061223399990842272541306295071001571224383978131308731971514054721796419258295914507245261237459634587623329301501624033419665549792230311499764859425622215890863143090923596209482208681225211578905235109198509595463844114607989604289835494958806324824697438984953890364709520745320361870438010382666618807710416185901517864713867223350128008877222995619185204745821540841803754990205654453244775165524995463590180811777566302795450634175243922036174650313558032157124720504681307856389557280845467682665194361739670719766573261750649161590240091075690111076378454597247880027027554141042992365835999122354363113707714533185611786078232823735523753014335605830019202540508753589626509585930133597719168421765752831529154772275857875796682039423419704441072405921249463544165505652963341201683599577205039091730193782007294872908347114511936030810182386246357166520356081169479950882006015181812819273143231502504003445320813616941403898700428438884793315216864392406573452553947995253183936307509825856737594228817765072451273742864878753479736651846013513754727481423058195866905778338524478804286509277438285427119259993525918865788494146106106890449463673548228112496480964834841349430417477197243230888292278933476870008629125823489641587342115167343570342841042803917198682583089924749242110258827697213915743125227389662717393116270588813602018728614089256636886314733140829250501620437250409416279887595992335150180704852754126613877086933676082566451043396039782902794755610998329379113637085907867028853336188478787506138101291602471932203065357638953077241965202395431883070348494449580761053510622466337674087226598514486331443728990894636911360693976922981500351820442006137691410651499305102130466372402254016828190472834410128138791322147359293525838760155673820616717991514660546486125397436923661439288618976915147146292259330405984098961783786443305769310022901633755636845150313145743839677655544139387475470135208868472561190895066675969686341535866051809950429245904287620492091308267015124603148209074331002520435967232524894064442131227629302429707014986078154725744165954674757953909554115780170791835411933566270786013699224775462672319379611053901232888197922138442136979131735085402876442854088850785438214943178827718413838460057591913921315825482375919310291212147212509961719305500095474092790816996304891008844892137826704500620395388781393345140971681739949813399693635234176514200174090965839310303988118095618322755921656170734452092289951521808986052748680286691969261438064627539731721101274542984297173338350354415008949379157563735003652096774375243549059179205399613793260904515169930246464827183123163944664267748647603973025498963013351865962916411243042968403962247827158433166375995026054411793744473258869456380751660478526650364118571573301048101823026541928836040946668982483609664081756645321042201187522713748882374683902548872613199159371296021854444307987219708162625788224984767660119106975364503199377012613888284741462557076161462649261986180250480368666524012976694887617669959891857233105390960468122242752624075834912583694516095880352085522324616658226295546745748603821821236985807961575391443729504273306676091185251042617265561377235030204637035314797773066055770213869727917771249361066743145820138958434721633550106564775408606193632343143067748491673485430355111480801152453489291197467982116492354674733845812581225994681001032940514842323056487669567295133334685539553580708232948242257432264113134418623561514903542582979582129579427706410053567248902515535353475101217008593508572623281207516734724903559589956585177281880798291089981866865254256101398079732352415153789253663283685105191253401818482699090160359045411184889079694815749292483014622065072356684859885421901623350904046616807760826187892455267395691043571680371266011057948462953119183897089787207897552556456406152301742802791102287339318407687431228712627171874791856860988769208197693097284409096515186314047779081813423828754097362768935868220757932867850577327208927113096257214051142840459882555839917791973980011973814480812735415715878240174817212379403135243222651134657258195343108509994385994459209050084454243392165951899872052707245698556753517116186884464140296342067049846977447382535083355740096038325557826988442914926807653490651476721426762274951478863384519859911997875814959823375423915515680972313228205617345542502651717350934641400663357246715547921670820945965990788713809134900721672016066376269040970936901572709158421523937472328910763840061742408923492763412713170030767306146335244532952398145771843979461875071903576927558065112617651633641758333503121431283473325769644195588052708553592386923320332086634853064283724493666520242784594206863058919849455502905373898714701505795708717624556168140590260008922447800739186792745012989348292598291254293556804117915946827956009354989325572887684903521814627884456905119943378862824920865462009004872587450634185720942900046921101633560583379653188307665878499311203994485642008643576682790094631519719998390318993793393387961172061864014265833357395085570279988528866045980120999492815559577293296387189055807060929542772248959063070159535122567700212867294512917652024530709425478853639861265466208839228073446607625236061145835378852694847508091921831096070421088155581756672649252823789718728926972256529780347162864329943208989432675251938487981634945933453774771653031479207540153310428594176249550433455812145575698090751358405556274579517146550438594600357936106206279185335549831998974133480251383755811051182207397541575111321220212471217651457434367231464314304110479262413495387197241053035044040141337521997569077718521249465828478644866662645426697685097747508193210289867289929511991910169963906893573886862152739570780561993502557055244258265962703513792334848482503872551104824619580782541338794595392462394030957948220036893800414800688954019466139124800460511216206464042836930194958201237482693847637092176722755567823418893950770082974499911507702817406823122099482279593773608295510853885940511877569195832178785877607921601449483743525830487406976368749776698213158709153745845477693394487649993552264651711357111857593668809114182845128607388210880730068022187986672917928598682080917696572263675107931113363818205466841299124075209584055978148870681031224353110584238502923214084440864697810944454739094011301968374021616564771430266433340595954778833124648003275029185863489353229891758724674639955604997699547674719605772967031628293536418786722326102451999897877368662228145638718191833198878509899356194597334521267220373722260893575444845365382301889628511902539525313524766118342034590923125787022543634664882181817584440316780401790314588430821223909644086045129592191207892741016608772687289354640705459419988957052477071290008527839219876647670494771925839155661848074628826676427960776840609471645488502465102604780627727433359375033016752454813956897998832722333369005413537377997548607089890725538859196748680611853996395679714075304283215791109658023387482150256529609347281383026692982285886438115239333725881230800674216325509851932696531043568590024456413276959931011364716048506604450323239048921044567955847989414441011342266545336520881893307862887305558946414367581347100536265062825723606772369666961174715010275520772705455070479105555363942263064461394430163099053569464097052063138299027302599458332348941098590370075922938397118223753548058561804453256179734564595733717819443035370458958484499757088636688292193111518177222156118324663924602225317065052213016739244757555672678320859020271051498283331754300270188978287683490634337039608526883706336596591180819611878418957905097211053148320110409436883461293170262410381227068163280112992823636608853203122034102335966409540493076865294915863346966804402005059474343078098823404767213413242106611579039380793565728127603768397815666996055754866946040209851217777248116741017065070931668738925058216160318771282216490561708906399233322352520486581979554787336896736189332431777304350729758530611475828639403347875509485786514476528967805490344310514649797519267735206069969995763625062273957221739326826433122305183852709440191707222265918094477382836835854609497264827776359351819480005008870388975118989421530492406431228436364148428745724033884840285749003401545192277741051961424165294804625559762192833237919782811913771855971785210058622177513488464508240653789675726736826310493856245712688009098123446864067667278838012484156551175581484888472736289810281788462715763682677748860926617572076564625907354413108889766548386172482613188867454322779202153492665503442777350223733869832429965486486611324872783183533212331757741080381456702086638705561796844449554447375379533467803512117566433733562018745318398926332675817631342053330042692246276904457913179096268127729850358851691314550442121220166269335937584630943312933464257176489687946470843039911937496338265077055390472482031343528290641830278181541408072068636784952862506502905086345168031739100791610452520816684875761244142724106652902086210822393888065030080609389211387104796955023123214019586016904097938768501835405195238852709844135518821347479587558604660874100249049497600829400420601026734929420738910671031166385523466915982022975350672294425260912286460540668366233834740896318700811383812968151404365231619693913158511175737530332906867062267925007863596176428128698695361226121350572407076094501388791117337960473380263173260146185437335039255466995243355340038867519944823164476122491057026262695048197064445280562038967528616869701417566862143461224414132594006147350339436733160305678083817622074053154645802514998716597788626296148219808171100823196313543872775107714829636080192016617749591644784895373274899270240919011378183402451224018638600382197120035151541041659945272239264524989972103759039226034398773842999542542820295042262714661714302726504968868898524581193542115429221592146863814323210162994116254069734216759384257084510481864387700661952240782394242354559186810993455920648795296783439654542908339383846967747910841406476570198222449356714572316259637515989089537525215344385197773155680004352292308310972880453299229232634451581276281935852965372960826569566702255010421641398029684423586073961591277774660622023024025771915153919921429182001962859437964789638593941426831913922526689627922598607125621628814136137561738539976247834470140637431308570019622678844295684013994093459858253472672213574659625324475276978459154919682489444815382511095225752874488678032097409609705212152177532521389951589652521821132083134650471751299321097980909448652239404880084970437654034853594028658275024698329088772634496636992755485632440244752057613006773952648532121164589503095692362274452321186405996272153163768661615337277538426102698174720844207513506820619185236445315717843647401335855216274234594380512094463288131794134643633922837492564281603091672711348773892123760868830676429217972456999792532726653495641109667892448786813513854834747020038865162738098685192517715935596866080570972016976792886355184605314237647846690860596852115995645123137213421334422345790181267703197125694771704280921239047508687417058880969593719478309265599170638307405928593172727522026349061181079656741916124482880077450924238450454581804818379277844639432805351374786515535286679241982833206847396504318666546572240949432318823690128279483239105049907131537706675967654210032985083791665623083341759710238945860100280535074730875766567125372915003893963440337243202577423870119368613683359458231045648503007451174670366509966869229702948145470278571724096172606300286268645341665658689507090112118860320712214175887827889660379477056204976949883167844715275772564984633870958834140069987323554244503066213845399626751511878386142980877622027832108536907264410848095285785461079890778041974570751782310691704051049261210438338747927331161908702440166254635452540047114165852358737976360763493736088690992548163915427204434309758514620597515982215549753348768615883931035859501333601746485319360541814014158306735372321150476208564036003711093712435181795136426976335685567863179885940968518408307952248434715388398541594222100304928965981118851594946809200150024607381095516285231749548700966395779299737013586241874965274709714422397359603900447266180734096774903215308427470358256397504597098654445834050032133331220051361589901142327739860968128175970757084926203070562164118283669572378525749899740724536480792021723309802188806353700779393516577938048807165480720771501515970474648341603097648747283160237084691375748748005572698783757785488889516636151745898104031973252889194630294048732963817352615628825911177287291255978506001713339386084762742140991942690638568588317350301740076488256960744560329892077126385553711974598759765274995714273445871827539035648445467786760076511580230586432299593647396811163976593640701115638867295147475803539014190370379124466029944573131707849832504010133121225468762878563708249039699414909453460103757342292825867077820088485153845435679083477614846519025542580169440058885832455162144535701391180413755638644711927489267373963730446581879522618114003738351652588561403982484006638821801999552220751964357492844871587337528428724107856577179618474596086070055431731871743970393584401718651703413391595688923477479878557803757247406016270126609133080048463443229570975203204605012730784302104254584993444651212124947875820039301346129464207788252970526029770096781395165843740624854951927015735145055118381607211516222134049715373726861892623053694673586320202853909412212900093599073062559072003999345595497964453302906595809322486999686257896354543785878159136906189754749414717620837205094159603810265670251973367627546470409200759055731497106989222946610158063710104834219845036008993406109195640484147495268602079315571504825047104042559468388383106393420144013418144315298886482679034652905625258180616923951641254791809525212528839531017812928129143866458879359025426797931904387438957051242882349163235647851916631588680445226221311294929335876991311560470348968130062835895274873815031888236623769856807213158384788404137958956062824170682832617578452689792479307093290775335584311772214475420338259420697455451346673204959358479463804285590722692999257143216356249700703247268771837161187514669808942481701441486984510934450890397331928288048353986498509748656535451189056546865527334072752636420624713652249169386625430768597177091357857077606327509467610879446420150281046181533604904980494663917669281617724323961869651454792030435461609239516445774114631454845293504923286368142174052170839700710515771339611149954637196090520907691855971860778676761035391606885370506557534414498014073419688757317661111874082265490347340251106116938692227360482899954527847269899057201265253690911112166453676532019631685953532404453508195686839114319188599177209396170018840301801501544399330647748147105234690912841429137338940890631723307938336579189191313793207032852498163660693306860315623903198415764444109931131442742352796886727349380726877486953917686432356022921137286211810847458400149202391428800629788415198364102758034308733259343407601496531198953268902758519633937280018519918142095669662560900367913079026466926323232627225542395386533190661023847194948423349994496268907680076327257095513344349976513707744659705185452865577921872722801823372703086351085374142306466645079408751502472471725862802482060186630444508499736577231130461523378535320863218809905466119053098514098442232168304835238723925584343821417538073323992901957413644270174568722143746655401388752306743796335700865807286073186983026791735352658758660741745023993609179069927516585465395128823193177015937342568675940129008197509667163360480248307065220710256130375555859323876568361986234937931695853251747702326272759798450323882778503159033300745424892300224262581378519997443828081276161991132510361740089147244065413377982741382898062483755279229851647443947203452937355181077123819121161160522155287473722250467734685320966843314792034452944053377021247019716479207698518461015302437625543972205710968662743342373779033486566332527281830578260331832022636324666065450408124236115683463652192642312585645868861632403101243601154043834050478356310929588394856303559341318425942900345166193297695845117580204732937241883226995037129251831414488331262432729999096949392175809121892297850577151397100107694235193332817303493054950587761916485577336209858066342189675079009470447595801998154186277992774202873853278225525501066148741014731600898692184058712849944631420080694316365081972952922218626199507148752487314175179741144359888632127108109440651066485000657517496220017451349267710696396831085691436760405648614534937520717592082698867830669202037653957497920454405753237896919066173171779481483860280968090227030890682546901990498595858872146734256254805684492150310154437248969459870157875348737298687115604386334160415922631785299491070286429333394726929789263293853829415646541935692498792555390089144623391697437647239162975658014313002181584401893186228301593534513617461281159780728140891045552305184032889411521272399767493996356153304068188433587613880392467065118466192454889271939329210019059082868650531085382972504489532983111385728333470534004310336369705973240532000811362758104412719631196657323017287125748176786451974623968535060230110397716466336681393600976197939568002396914811421841417308250649374941970215375260132799398733815427190176035547997424437133005095743519666754818663739032641752933681865362789509537690018231536927711712402167944986628307691780262077066303224471777226048332812574770532680267377941576373061039664902602858373412149109946607311562220372197522497630925451134967990347770577549542002378826924806737112528851803596449676424702016827454210195196547819708567676996621828308124356998938123242435482315759293407420901082150564512047334666581869135034479909000513231656564488789553654970008888403371709318814385237858117310696889319982789049721307054770541331163494678817111147276519984636726908033865793510687837692921621690471006909757531541939051832567931625629559016749693725673162013943137306157177046215484568780854499215207386124036774512169757408659510750137219726283418741632651829475719582942026174622825637125710136114593616044096786488247181410076305272737128674895178020276257931268278314304999751819103218056340941440055786432004659555294528840368480209719584468336607094503093952535523511440162676952048840643410015699632895149432380540114978616439691618668603741161641229123426048725981439100525709601241234639888326863179408220643493135086629364353256355349367009614741356849253584642294623824416653515091108934491936530089934081861609995500311778516214198348539659410560369635255159178797204330850519045745461918039419153342120861398504884253756550236083533985624053214033456131251049444923727178057348797099107620182408108528401874500369592297366097161953084180130947151322102632626461004661659183331330226891208978827394060336606305339884820557101114801893827457549278460018049039752203232941517690778578289699704743893744872309916614622702106310316643549415103704043676685605855503167946471351856145801865166140586141714479154954505074308929743061837100287223829397408090586668658703815201206956332916531099389497299537258331253171996744390166288235559630728132038746371764300818019477042632614234853507595027468481229322623495297978750645436999857445129034313682139777376942251147220634910424621285231664041282418474843905990952782190126787441872173890279035630748958830325153339312539718877351593176899970467531460981400692494416088042964498661264624057623888876947882590198811322184931773351461792527547298869153978171322542430603132153425507862082449853415358601508942009641623575418389855044360914615391441090449940018882742923911608341730084620452855567960505589803957624100245869636721222201799150956508572556431132114376882898454493588479442408962911767224176649834483658647684660423458835003268871785959726648652886105340649054184086398477910395764122085509233150713879443745515403689802029441949117822640281273264066145270128408067220889353058192839017057598329939786686726115561689673624047310853878643977427758035869150829091199396634911571630786528918036687041062036167520701428251900888975549598843382660135817707732438377706884149740689019212455918792148729855850321917538966136268575342579213505291151312181961249051774109027125733400001823488967158441891537815418413384336083168386073858799678764453358036780442416699720312430818622899267992848721628901223703445890132303297640700537756744972964190154579866129110012415925457005059814035235671260105538958086910831621332951884025346680543431525570603830269684032621043492169249028280541093652596576959347879278881266823753632272802327397782565827345084123060087084066629223070333143962831383884186558137586025834207824845142374892129493981950793065368161074539550304817427876781814071111417145088406530671284262055688755410037612021737930155109825217635938316669707401170127432244158016266182457730889669156780849053215797459653474647363501784577022693117922010990877397867144715713618053790166455281278331749220583807413332785443943020458256841707519628940517709831785317226171760766754459189498688675015981847137084254792470974605979867533162805167018734388230918793658663204104992382436346244724051727799038041285228401468610278515406391181858499862680015157721903119519620686753216825117133109248489593927573938620104098804261239012484263605685365252451067865531164599914338746970377639928381190233709115709027483444876275218021963264134809133070178738049774504504360714898916326388455872635610263144773930714750148530318587829590302063754246489136967965279112018083860785204623740688630807691725890523996228608831906761943556834307387036196556830444402866226570197873640993857429434358355661090351279916485515951569751653438746120996406833009979695350585530354109215787976896854320086035109114258181034291208718707827831413164037310558951777683915999316915347874559284630544007676286109719791199715084355004146903863295905906259938169435574676091950537308547046578392237666874171422975340328546102857985127504713760495488684428756027179960887848889996327766593423934606459136573063778079353462660869043364363181921432542931623906482459982489785405688508294094501021932000481095814164561095350625231655321428987121868690417595239808503278868706109826127940671936218849651819392683706521529900481606824234117558421491467488240682645879371906762537980993014430241969227104262530231899268093113651274115056541339408347825601284124144673677258619674350435563415153141779371401212108863879125235021218673967542883831206057699650351133578063545433323351239302836773683634504380023518620441088163640787449343437401259443363102589120346187567962685025073520355516409052619076537448479247862286118371067482932902086246338019438859970670932566859909989441045038350830906489187387415489161241708301870943973130967331062870663779092197212852834588734126356875137319984440222296158435890554550474539555763011063566337964982300329545888174381215875206618752203347845493601532625072683319015436105453733766013325561360689791016307936131639244833887385504610854502868365346719863781279171760729542656701257668995671120737989255015134151365677748351824186025934217212832848741886467561997716704585917546500087635862693421028914356432642601616328909579104212192659470853009752325735490770651955218950287590392158252509486419388427833627668357703961241620884590584591934704536386864881270397954575287836257074797843500722149307783422005789786325242764474356897603793363966320542886292241647666732424109878189642303868468901751315247154235530447420810209080669297679960676943981847599929521076069006039883754960014491646323527425268944174011172011489219227566066778279248665229710855395570242810452602708624081233776193687022946504566393943774761073385220714601851761251767470508325315018188343817080108729957572794628050394822105744484366398596472593870764717221173881536220466743484252780026746630309457328507418744351152854982070334808109881926280720277675936160378471718100439719020994121590042371960884482311699529669720723474929621547737929663621202194272853714137228202062019111872234205356710101079269692413447706274536943843216362933077813116387053473250825441855848654816013691645163888515594637485931235027966969179576915370768200760333038548225935370890085051516529617732436158035589101250100666800427978838126142228410214890302543438929560684446819777959804787861499222752213726191376126957185839617345586078552328230142614250507598585133675380600643664982287776798565636692308836795019508265715336262525993560614647601213418382848235633277984722727244580442150747611594521266827976817420819949830730465105125181024508415269828478200868726870444173515242481695905725554057848631878080728279692236349717028567694780714805601458935388606077573492309878993440274084699278063220959110972828379549580356066388504521661967996907777019339978932625915495769381776052715081753584937106983788571191265885280401956762105290881841398075458925063157746654183769991373494392634423563049794447745762235627813969364175528213708785085915747730303946340700527905733632516954627553638981780337369204999541946350325278428752779025086871711017254716404038425080111607728506174136785287833490803802093504867840780923160709686799388122010272899971198821344510271622679998760689979236851660459076146138171318631001128941656863407108071187167767944028500929592757681993284799526289989015294981291800608003066432584057003783212918530426858103716775230703635332022773532552446503457901211763159126295481888650080019121093101689230854410689157907185039776333508844045420432845509576604784804187346550581152394418249957397056020774736878822988768408433195649141955175522348267523308404892848647528699044245985269824066661424184599927112206490890706552280712126510847938991231474201937912591178968243266315046539966765093645881671544959980478271855649665114540748390639738984972710407316419074163326760302739879877773226358865874707329811708109815258257976583691317561376945306961741186030307883218964553608046995093052488101399296888571464591757058558246206953794544928224668675462371096865404338712210035961190372564255528369888484916664501402222594748976973307501600468721220589462950056319806320593121052784933456435667569440078657854101599124251057381814277585895240532077815093753822894960628773322805233289794913463837808858243701780530833166157587879529673762329533613064826476506366581653173862863818203283633133612464046797387578162107282228091883856936656970948530470372579430363306810808083491779934192722428151953906136181538399837414025249971371553213148301132907722664902570953870829495136195406842796092894355644583930617003166785531941519644211066383390490863091517373457303718323341874395124051324532515355427145370302980256477259225610102416900545849245702104533120924721556640128436751202453320032292815726822613351266685484251000125515615221266451374586437034056292885034563130538256485416943947516217273261513910656785593271113267189667010214764729435314677744102532295696662871844741612543661342361368814903254043984834281507979320832733941246277053877299091542100510698836445514560142534144236369742936058810331801207410604115516487110075053705362915343104071404131364165902728013000890075031326722252577266257923808683585776270460006668057511166514095648326980225384724153424499684170216853288467508310191179280901532290296024660257712396362066927501825888244606227561551508543048073287116723173526132365222340268596246037146102135468743011714234113636285595638678141626646266316338327402401480670001594873202274350491164254207169397433664397068706230477737602493108373470700727060853890015328054008896820711730084720221069675734193076394606258721780408370751175450200853559047853282749541419122602757555554633763651663289372629662745980479087371324392590299815549066008157679829310313906499404344671914990988306276782343259517655949319388399347574340291969852800537952789792721890618854387754027970891585816855584150112128527792262169739580549536628351306085155983757389053321939582595334923627153322508504758491124217211744603633510231353815159878496368566251271135065967044507352219740098766040056657918374581515585012011845562982813525989059744797717569163883936388115805165995851195835775035195954142428716426239573633602680819371630513070180196591010592754805713559246026688020925364196011259648640241231941927836078157259494544422224703569439024085840098249074442387433959092195397555882823158099566646605919651016268411721403496642101494188035193928136748997193563962542624165892431147878341811409851506592270244945639637955954535215214095442921954364004329348904862491712091592889714504306022345524692169246325427593865175806144092968626416913787698564574520549941690851158924921196910934967107139026485045305741706533382154118329095577690573693424927736846607736817459672703954665368460117149149196243006686756426697238324308635417381572400880350347070588306813609580229504427628585897291959606692276263384169503399439281728876884149322335605119842290306724929112359331449080171374650691374415701533237026171364421063399199463092511892013440245280745870297476814730326991531629380657563325302490662566659143777045647155417917925848431756047373795932639809853095248766478285627307680468834708162176292447286711873963706609377178627717550896119057538993703649707968282465820512265000417540864268789053442795615820420171461729792758545741475923465039018845739893359481968598885569836526701221219806691891778359911206879117877467964984848106471100095237756944154354887119169945265837253505605515071920196398386223267601675712134518848376855340043580913795399333684308357603980508084622256068524307995298890024019397711086761170088549708503547151540804385326770041733679734646068323964244660135673498457522450034166677117924707454046281255419967390919152223229049072425517083850543150429043395481716390510413217745730730326853557713850866403147935488821128475035979745246907421059484948491082239112620906562985121422604722103549899176608926210268749354146462115299436429150811741222173154741807770335292967075143942784119344666895899695288362428277008985133937953540873489721803396526535193149278809793856456226072258011090360809206604492203558380978473132575989865216282939480231691854881297929418159267257127026359362968104250821287111009413625780293442458959192065483054314550657897703405502604807308739620753662272633919662237243708836295090863056055647011913702690027800180052507183600180991292066791951264485040269558219996512560466777609433566184210619341616600151474647513313990728867413290509562661914028405854026180241828894059107916529590468029247492394002109583224471759318323080159540447428215549801330240508190989594530261801086624269885400271361232219645766990310864710387073206061887040285439596135454014305022923443474042271380867632604529914326003289258219196263177430881529922124830703413266980173204360467067994948014981848152227863343441720786449555627284375986018230556736433946075200599880904049081467335884988255954773242715087876155149405368345232741130764407344346602855029735284705247899119463621159725046566283792126419505958826154267930644835350238228537395856263420352193770076702811903500307825721826337793253131125640006009426743066937673435949793538314016017604629229125158003037017574782194767467911852152537700648044833627952732259462097250605558985645896081718744926047263187203284315324090156265088985308974045303453601937217450844637168951641005917454027659016298945043375782183284661308992069103993497248935774291512192544999803489980558945266586099607752739355481271536306704736048595605709809611687560435743311063942135926380493754985844179745936752337698562241004924481053925192013724680770489629204605008195326858070695418197459165287497470346753474441068816348621099029267887733826612518316735329916457497244499785968823590677833998123191806640586920910979607116760811043812864747614093044568404637728103100633321023170735209166068291114911775151976663841498565341076114821977914799091639857039329043209778021185826872051611953032732145005030927072614131062622252554533048764432406639992474823349795052121921737133201776193810629593693817574865242226535088385698074142647979118135526458288448739717380726697210991676307371314047565382506688217521944393109166003959445203040219127058154521286513790758141458854611033531570400835910100529651903131698627404031254504828306535467532766594794727818981294022372150538995379223663118475889522840047533258558573202154893111001642518657737945129273943135976394049551573853447931533474784773415646068844513926728960829014669887994877359438903652497470318204605268084931016211070700731197809461372224887445029584995238462487443220159547826302691785600494296674475322017478963228873175121035626574812677099170725460760156105417148379618419360597333268771526098153905191503640366086031412879649803078661344977122812266847455352872569901173763628525645288104043446651928653098875758835817045074305081950924703487252579812928817107930162104701818941316344527922592877042273214921970883166407505969010782093342459929064314467441906710039485581313860011549146387134780008671741651056439646508706527858194419346977193314875404859340670089508086233497298347084573201930616798795256984973244370758044678800816485168991573359907478704951081208759931263688935842368309795036703021245124946325295864114085870573812455554310410485129143764735167382029332854488009692397283184482950107150318521762797956318796172467759604679761922538986248828358419111040751471263132277570601634013041885127340569514011261785433382046725404494492957390674134582400078669198876393340260963971503197779884002892346239204553994845177579478494093138294107622737575018813155728038409234698810023377016717718175764070811984571762619063496861061639233553191691976448050307872414940083995681896193041464399966712035332134412887870055829085310365168298251832460900804506849534659624055754241977023410065022927546426541950036173347224983567863800187882392943870295264419192881777920842438543896505695522642668029291331625003615692188469115011599902286180806916066636914573068646686623098765532257655840823855715769007009803235256510645314645931929798808900934445894976212194766661598987372444101899526501258129996745945866127531589421337500549426045328118170728745488101137080977253863973025869259538501646695991414269886840975060143408958906093479480408430760516797382394160466108128154373864659500388935872023336791436590117418840756196414953229859994508033051421319393431432349262278468615861762555330847244846695568484280786116741462974574695456496119248559134075019645343012693055404221332499705075323598567528193272948909912512085463367712899290506236509686587216024282245565383832247020890437779757137341233266958263100898839238945188932000068244854962853349890860380751676763736086876022472590697269370589044929414280315317146803550165937432872191116545258106264367558085102532114398194240164231832038598250114227458404402782095015906661115561943024339034436964476670530563879403003561665862568915417180640913028296962858531185590732148785567698324084218997267000572856298180048291739736986121927554055154448101327233313359426245403118437389611285597067303571463190114572322810465835339577140377751226177030177471077340777944056742806047123951055683506194992071481353494975312709030424205470741101680574909415003770521677788982262420192982814787091785103839960378715913736074518068451944152609998490379610468516014733454876969889579951172729958264574745202574867660044019430548527689179981469418247600892365080928820664653240637120819009568420262321631310787490844817158782947161802577416592800057478939056846604134767225841414834789320799583271230370895389524314101792783491754128350691038929575215697795070825998910517005274787680623634867586975790189737761961035605507919128430304011699410281202373223744905635548957055839139272775559262658918946116033842978566649236461497230931132463298556873611876069310913502643777439231966382332537640790569232819527591716111678585754320451300187905258732134236847190570346462635025165179846642833707602652936577151227077870179833782867189969393812139775153439570659382123044827004027636131021527063881177449548111015775866245086710281330644368546004334474281398800747256775741934110564136633851650364676716721013162454717828400051536747056637785808794862424095406130983351217844120517535035197042256112417914384239854071321894463675953569489668807870917030200561095877587234179248828850619007665987708275101110943704743010626318839849352116580689840876055366597743469912177228168820083852902676914479847179860392605312437657760961979659590530723460757833992470657974666165186093255946963948548686571617153917440651218679029834362335274707401821657402567447015695814579087414977890307264300880187044562125347696868710114039894621330284114151810285736234566085522493053333753144406908131465746849688732349582248541388426120293123495234326102338641910968009429211460082749236640256011136021071390440541833014054231763922207469957514293645171772744778288561405417686115279831136409323374080938084666982311373410728725266662614168897385123433466686695616831335465558256737134700180461310498711231546781053626343139003043287801807493241033418534786463179269228897327653497900591027277650149635651804337479506186912881679027520399152954399732909479189354593135569198290065563747373697857577143394541989191213810376096175715095482986838823362523039398517176308069144458206039792860913720275487625113267982769496614333273127000833134994758495517541019937027334329750010396097632117639695176117519706773900419797317637068835610448962276823067718448854240881112944069965690642898578689963284265492981304270010729697650097960731171996650463717429247139036067487436171132043577573407388399707129895279351796943110799426789719519029958389295914364847460181489920221347296455179478896014848336588412486282109792386206495435632673579803524715212648333727958163159633932038590980097907870308831429387788932052108449159420315797364833323033300495040628814860523392090225359738120965508062276112579613301022228628104917377344489624098663759611441292000159879899320806808416496626950202086068133173715423412717130642578832294557078725190891561999886652617220013508714914160881700953744429375557737107250463632482169729511488500427559392248917816708959727613924262481436170173074583875876810598283586373185860057496834317442211575874903286334677999338853312309686763786925799393538183053060041484635804325068497587456604011965266177938980667451859344105884670235711483487230378792267924304068768987474858003359275419230560008436616865934750907556135343360076461328035719639300471817753199857548018001176640223604502306421767228980495131232433895753990449270965950661020725410424951383690680121437757206539433789433563987378132721319509128689574977159903175586881583119131679893152323237814248673190260856767426627688052498789379606590127124489472242642893818682861266494813927908742965416785580060071819612399151821813818826616768838890689123286774331267990681723213027794211930432518938245041701711726854993646629799731469915043308806144619277403672690710354937736384991868398659638470392430558786313344957279473503414617686082251406275922798869533325459914896616614279667931036018797242419471759907522678131561618010126221045743555491488249417487820994321939435587083693472778167410404493878767134514902385380907436761318884917593227167642002860270539990526452527897943442145402845280825394522194626396364131827194079664536835639056388080567615982582231162643282495244676760412721963487653215367888176131253921503101489609163022406450499268069455390380549751589242835928315786369390081072350892681702618956865803316673343177335743982168463427416209933707031099030204874981057142265430189480023512385834464189222360001644236480640535489927143083206483128784085911500395193753955296049262104978627674991405944779645582721853439236843787720162294246018723952981423390955177601604723895829133859245093052929626046967636019928867482035887866699074240164423470381447385685080386486994350360857841040280993527081956154766867166398920408770896898907181064375266443335308221462668189401127529707956948140851241773627539797612447537448381392783711157541498777220633572670172588708717591153653217989410417554153351335018304612950987905714184649371891249498004724758008951641347007474937152166772977433533255227277752053912666342810659219878715757653179448568720594379320774320632611991325184543451428540159980314072420398576600705297686247033320334538912098365954031589886657059603468818743965677739264893198621549531237197113260491592419875212494880062937671055912360420034263923675815022879633513957411417908904954790675278808796915605421149343345840932699417163391697748652952709213347475429165258223352898380088020183798958248723102881950233003225997580073820580506230230436545255810896025583137597668535419811255816824557806382614066618184147068323122263777027066086418146678110924849515006128992170250347737872877046385551167658237813871209189917699699154633488287829470542890540297642668454542531150089043601477597780138909107219306643872998724816984550316980204100986058387990852720749925509892856240572286535509870669834578010185646774777061063018980647718993405172177139561748335655907799983761724417194190955011724164160093433965964656857095205085327952361133089714141417578838950183368494339773592979870429231145792375951308693224173359087345670498094887307458169162175213841695010632338027424591656660195073317370186412345879634205125764029240318760310385247870274227767577695469767362769037655590901685131646418396800930245864101121346370441088266762588261262272518096172932174806983620993830785079245611344644826086391417559682569920062280803601564540334604419713497858857880216295282500787392563112272936275274597744842461775747493359955670228795917761747986939545943465922985905860307665506983222120037465332177523999396098502265075567989852939828444160015933313090090950134580522359846182524750971378661446296357050434163870282275974356993734761705445152944723493457375753594268589170595728128542646194450798065035988738473134149834552166645866086691654568098114465828353244085829302694424424330656442317647228911679287652523161180213758633810151847233877138400905118631689547146888408750628064537585702150728302251925921560790771549331607897539509275802832049439818987533624018835021444922334770040038747881965679384926074502381151897684377081499547890873027591080302009595573167459456741051595778741317790259718845923109670427761998611858197944184769774178181939369215472808264740971220326577917580567274495371222360400127438382095367521110531011776998493204732246030124911337061969519552539798281426357798171949018254104150425035063092391041363407445656038663164333957293030633778624791339103854662065339261740700713946672091212827968811594679520815442999513919032694676733815256903650711443220767301395740537019514133262278498665095768996135620968888436259571281759446023045320600630599208068815080783847728433979617916551323131458417942427056029421209607365069693116079350609657699484176114274458794149513437385550822656947225152128798925347914994991343205366666144296349261013596737086044071045910690776230116581410731966867440542515211133604835661365579845301547893050362570375287820932675902594554959879110523818302409704810480474778514749810652972734886588135305418521284889674843523632376687199374569026230273029473647358972392191421385305753883206894584803124619688982859848900760631160274754732898792292330967043276596982343917061392609774479841917411214030955466063720299358070512160603327797161966520815199619672194466867358317615180417010925876557943338707048684114093565124077122005003463703239292661496671795481108441893166117693611400391224686610441509096248258419677387306704144249285694129234871965718652951728784173096594544877800607358438223123703642678169646049004599414415562633604899190444107074808092211017129032720195143640492516153946835535797718320255507872806597295811536071948332848555262635408680982995811046730805756938650521296764731813021759865820893955114324737197853432376865918394314405327016253526880597312181235377184956087603203912837240085951562984351710103415797502304228385510481377982601548452029722920045549148800495100409118661958618916780280931776326917887956336502621475732818205025635081875014274102350748823172447776114385559087767522094225074787027907173778134410522542839398055281418883446440090468015881867833958154813438465029963735981802618887148337686460906333940863527043793944334359816311695730357598456985022170870724943544841073593060254308703027207217641203910395225792366230552736758039512387706558553231100498610037384639892200974337011734199654910577196238007383661674743599880416297624493438907066975125068418695694134070077243705149143317851915378134482882154598550607302268323918393550232956015185665933025011483854197164226648179472145100776273494227922152331315608800975721000470350657291092468175443238394418736124428597222993136364745577396126723170432064300726785751794858779110063777512678299230404001203962570134973560347687092310795159589786539118431217569237325412255557669796560947830337741173006917859832512095518217260960209636100431907797280152838925050575828052960882102006692969935267544015241041955353071704403964669308857986836009937352597690870623053594808283451678525573212855983841452300889426009047433377926391178510285307556874574435808814500828261674039372190992776590799847480474622072852196679455540011651373552611207674340531197255919704495712531674658046440050347215293172652795036573683484212446857873392854622286244773490513663999621886059931651825128593651394014626577788719108989305327168101951163568125410061423352242192461803356763067831159815802448292407177300663837028251763063629828767605173832454218498244445743564187813547812603960293895665143475877700964848084950902527899505386577098480274830154982184859499721175911773220522386129864030825144779180645925229658113329310614126375161288317980633468132894665365359114079356213986352544722033201823508000746713539901756331403324949373138839490916084090633562768767983143277924784079772896889833040967821057918284353812880319376134182278754452807012969945263056843191017279012486800909320312580449392803497914662006684202933678981672605267109708468446093292521876494698626816153932841359366594455613518951456844798085372389193110639946183554691542560887107792453257159695195607641100072565814154699405888424467321160195559826855499319078435183759098562879856820223775805399389571010052154994054535336128058591196764190918005795488649512699242730972239753730047342949143554102255254471573026895405992052343506782351764867733645899381797087426540136503784690311434228400283243010673050140161913843208069140565640168317547128231557130697401027646298539302381215282486831773159581730935047787809191056288363497340910374370614241761399511612203925178126510126879074205636836783641849551070414399468411086807443636012447579377223570794177811219900434336318575792629136364558759128243917234950068554315939933333778932214551990501296178277356402749580843174242706287576560536135134795211167742269906186705876408367863230798953554917184538114807569825266961940265082321619043786976287670771347658205769580357032007392466129619128187067954079956121879340655220402609546193853008974879647284486253875821028678621225586516822005558741797178417589689019580596659490119553755635050359275427025771397977663571664794853675012833152412644967859774040340349480121865746461555084908276933462816094930213027381863619447321638671479952234012705799805097658997805469577067967478008505379485984108080627236563846023592878806109058626943339142099999131492885336523718533373435403590580055621776309846603546940355610648450528147390766225659500775159112442786042333901139634268203009654387899744992458312292332918984998989445988339636272660917093315596248743324154460641083493691525865053541958759157979809183700134351491529541914203845444657433017657364496435873814177026114083695375942760082294358782537179511692194646752569098394127237752296266923149112662807122138138507175427544872779172697618773516175400357726592995333238472764355238192372860018228154904369664683021685156856627790784453031255751988483819911856329751789078695944774768586965822883221183218532861226040974422040597715044872903922913596196296945286933627042213379427244297735342013604664636326727032327740859785987295249496769939318515912024713424984512702416735333470639657557580228442351569967622258440615853811273270048404090493926128768382567318264278021755718901224100178712426717863054483247505348580008303948822748876309541281763868721159938728944079176133694683091606727098000237240068635660042447018037777723191085397498680746208919156126858303541822911567642626846253426798238489123897236320898575106951267728941367493555179554696309865565434766246074393222289382858778291973892258192960568072914258232913975394434945196250597794293760474275100767771537431751557038970142569211502030150253982356521681616496444142429101409368893267249416903119511862997473320625169049402761696149687123048218622887385515365776847308104789760646999495744328660270257039188092782337365965898243860550163741339661085867677838094558689329354709077628685986826391110700110806300698959667842703805895226502686179465478794315822233048317565307502447523189758099762874510694732263866071246042216920837510759096368101890609974894506407871400832668351185997151159831701459119306239364825201739050984005192451802419451112045323776439682964720869496300711411429316619879652899771128237316409806587715271185501528969790803233326272796347353943496317753506118876181062932504217433578335337899588868898887043815282038024646535055290139653556642950084998450185522842064290438412488051208137045136878162785618896602326724884678358037147084710750236444207301933207931335180610961257453656396873924851393817041373133890581023160960462160902365792593401849823594882238235453515585329488511746436451632645689155486721858507610187099467773749480433267151080737376684482135586192492251050937478185856142971985745118610552079341053094328318141465202114081455559881721344188476831632148892800025687382157868515618290789354751445512931813069572956101716549088834267186782651761829100387192973887357363143052796151185259027431513489794495911155484058850127025219972036819261948516882786007026268427382457839708501215424397272043877390712216726784534575164673367643950438354326313193127357901590616212899123426348899305592102211784873629473790896254119869906766816540992709005723901703703700864321849261785648260222882539744237565496432448035615829809398078577856764873658125077841968132443756834579434451748814832204024550291103316894589150889282081957645053082556791836203347288161327062281746302686572319901660542733123986390099811543722398594281305851922599100472066423192553146194984336994100295542822052350347807359252985671423155949585840882288881350692882503347235967876711334812505243387308123454072219929095838188267994611037330698336888185075888994928555197843331974801529342776961676788452075558826441103945686739707036501540928705040998585057923810320126709254391900683002258920268631237061377613699044191399289628266502470907387490065455462847924481411674431302499071907664715851780507471064002444093950048928439306613412544846320540183551085075824269038856821589147135869228831846024694214045911308097870233397006088598957229782958741254930803039198355000556721554511106315629152110715813069700232136228111133937395656282674706158914293947327329632130771674285585598278359573955553516845278434634634857936317785763832976046491123018923909841228671020610982664806027736676045094766230003079567715364078584319513854657878938386783994928211312452267386087118112541222250369935992554942589667481924036617309692400073066341645440239692014934567103815143132953123907603834715399048212548369036320232616824648925931162096763341313841760997427976903296996209457132752134420854475804748877899218508714056171175537576215630281494553063695969911649832193597965420048005410966647164072599928546870731740052938335089542263295227442163662023099580567830270009426233168648016030968517177382734742199153230711476567334727801250118252164902061929481306797167993887680820915252536803170562843141682188500228566765963114457776122113981028749327822117182949643717678468429444237096033429764902302054919690585331723142368769350627129845792917031171005088460181759110656369990032621204636591877770123682632736250469717351189225449732555263111687022463247014482025187399497009234077009655997539755950006089667350684565599593124238538842532786110649540469132734801710010776250708860767475185325855610384298534880040922397658784322585062456986335779309836878895791988671426743689007461327098102614136907903259034559803676934678755487619204200701413603463752095962425591255362893118918020705875714645295697018339726790824153849271795699482201904023488001440608153791118079609310640866509608073700434130830124078335160128038148469181926589989501871885769181585677813391280575529305078931561016564919037181143791150693083919330330573423929297877678180521850141417881408431671093791174930191628349085059493648966218643319514988410143789120685351649069177150051905514762204716021149607185464236950532130065773751064316511810122533475658075545807524881069271161924865861193015649295592210541333348417666419652052462474826759301464590827793608647402884692997706907338730035355143602579241078404280093273843242966883294190172396999854933998269756874643608097634702472019620108936144191610591682437592087001429880117765715074584173670489462151595722897467065196775356694021092915573774557388694447928613580068940770496940439048111044028100327453376152053357378003407399508853962457947790773885682181426290141016866115232397306523442135721427341549880897690107400452813384022389294238008813639439660529672573738422007622163545205272097251734904772887567666719625748430408119066352002452523032853908371045646338539926000441809881019738815928911919016594031122147435299905476013762118404673334292176682945583886157341265100052937586581431895109607563029239831548193872489752163774548282529128925601689701534372112071832635536813652525123831879526788820203674439303791312805152800411272898184822567545698706881021408786445892951525784867109896551714395425303425505271934092114984781132172654253671727801038138907623602599978223505055283782701295677223849310546524358648914920937090168731272547526070825266913004924627000330854028788780581450934728222190351778881585324054965980980916319747527112001760511130113193638105867634606611031747417290260698484325338609394375240933563806045499818889319618357095927144902113139085410152561060834073081633992389871789550490469984524860245542896201150501660579647303253630452186913459940655396885945588633206091354046021896442702197982831686164207396418191749398453053574483045766630734082522335158615104041646183974976820002798447622512691593663778553607504999679158696459637913048947836226665500750427459376663461483118793996546820075137559721419873001446593838825728513552166338099656707054172564502716796754903224725654779171259774259388838974962627608175151215582533223015481371582246180063496118986805417699153638434424418457508736944852296652070973868649185780496176030032143613486743481295191596635436181093057514348677796247316225629151515116627570415459618330495612068301915430557217191836584136571258043560234398462454676311746540252828073604503804970171491190719488470020475763648141794550597464835194325986049080487110806251133552894831298483647542855825373887258603021772395031634980003870808849376418458899096393580256911082177416136257408640435158110592273297391677276374158888356608465742487455260699106803213180115986113930774818167836850411937058391297032567910021316269645831399009558673387711301873071720767426381994201052814167418288890610450773800916142488604916922632216266788062734512789016818781900841413482293944352698014566620066599707746086412257621974116300238456996971321019087595396987325032864702378183259492040250019679909113308877371225522935784877445222470025640093682617717038707980813412642147773849460630109773919315776701140875324240899451559458867513212388679782855180855308880455184004521910357694564218847679884165376797147974287742559756804641761976606562687808607372567558506957604329703206603323261256918690518944306887135591367790721967022102460765426824597947154840651639945122899522354429444688463518678538895047868649397031271339736377542276444779733147759137485529619481257119790428009043831189059706414361582771855293453462506500518742879476394740718176184595858977886732264081393746891212048296241065974147296340556780486043671740252451669208089571560682905605252094872343250882924625260863804407442199406502416203891115266751050549152399597324834639314974284291794141589098797651701778952333990106224787944279238093764555054446136003437765742558203392838175518798461101256186453048519083399603497976548584251415846633880394897479877264054241464775008529716912215944123980566859475778864591953996953344045117969473674405536633148941661059685537346379297847733209555766217364464292599977077170649710458127207901347477839589275520310064831640794754603828218717437356100118339491746145123442201894088698471335118562949326454059158012386690517394077456708595033223133254220629735582076147043828471538964899378274447350316315645265019109737017386119193158970277352554099842069844200856247391981812912587731110919067177781062347327051617399219886622625776211631617988505609418445604844998799600182375725820142751317560695242980759835623706087516738722938484969865081411688122066065742918207108614891561680126993010636869176330451843768401349841038036478650047754192916586659963075085543666302106125243201506680857477577531390781642326527581384508525129109823048825076603500161686469192836107980812585286446448539779272240721724840901791648102344197299241333738758280821359645000391144421384586969654282983477063253272919825969373952322854431719601294163600336053366829216711823331560165600579334624933003600891567850570783454544826375426944493507671545192145786243648288862847092656904367590431483293294481241246016005967430261002289064443080363140614275497572750696094584373909312939146399717514455874250291839868477450848003750589407705311569453419511240440330256984613527155665433251384958572061027874553027253685876399248183955216691052904433861038502283724266820969016101511348450865832981619201631042483544839525610328405855431674409255499917984978588951347305851169274573930582080913529381959436574649921990732920196004257970334274099948975931680942682897812321455935317786087038226196290319504344926227262560436533201265719893181494403706337009151429838621791146320090204101194570380621625703410610653151260430723075442696278951660038093794628318990308870945113271159141851105157235821459428515993745763813376334397385723884427932832137456658824456205929691099876446866865118940958574013706774961328254002751119457775425042719672056721458101104223294097259641286283709909908257699540212986496549712333001956907667900878981851743562046834511381083413816746345744332099524450086344206331120409958685956665903319440198772429149744946910513325178536947304064725711011262573110889982421320361889632141881578745239141834321470264048326322967948219222080844669253218028157548550432901819208207083255667171755132093318949596734947309208491021985198464301165569535333762683237196448241906903685713832399420478782636328230937383756869253480545648722348548151303301122788989104980147073008988654055073510279382884461023947896656251720542730085983011706540828465818427897038948485201915860921653009095318432727191456739296784918487013386742052236820792940869012796077565511636379964529606526349593219023693856872629885578896008049995410256770151556976404449915836528759734956169168180804899338517668848263423135947894127168358353362765727529948301523870408859347444016404933450110631476480533914117270604847163805462688259084434443143604261227777659030691801273116148821325315525064955986427664123769785498587075535078485747587530275775367290517560007410211092308010986836753111258548238821383695205612897686658948719359133483826683630973392546559499221314717594429433372650248978905681809289866657139119026933825911217944144211644053094086590356312213338492251797879635441285697559292453866328646244996517801543806682043745715595705365977457287656641201495119445944420137767875874819300356097347991805774705458909529961284426659076956878977503781485884055959716035294478592816229064646950833830589078667371976683549318058655107167752658101217773283974942237783946271261622085253034352786491903007259853179432295853073731482359861933090580258380287313566794382912768844582142669483808360825039028139487231968005832076062967069157283596438283308971262970869775327641935034832384380696142965380205330864881353182249070721509876701434365960939639042868684694879533937880856187654217885893550681278437355609726165459382522670237192135796533100774269742617749204412771412140814653182900558557687228242079041176761273484291854706840094833183754114126401026267083097082748490701312375648641235211115218904558279918465721354677903788979921369871490394991759674418812949504998197680807715365852328688068178566605380083269686986891997006617852019021501660007082120411121458672601827470709029270477706342485375676849833964028935169001103196421024589565801145454974320015465531695893159757646170301758946994782846911464022046805057466998429062781469834788304447688052305786143733266020687986050722197316230381402744987262651563260812651968854125789425613764649814917004083424854368733508952122505654620428441193570662606208642374759560029062281667674009477660417626747160359096118621403990530790308125585890528531518198421174793708757677942348721098550081699135905088518962546016878631635948123532255761724442510375634309391857114268440614840523290834439156312364497737465072188400328101544453850650737674750876169763831015335557126484924594640053238913873916527907154312487244386351912877729179425042911772493753588727654759727723572085522424789063004958288180702777188099690649574693372086338821853912673932930948810440522874276815535828194300928991786108572693220316812223826811433971347660293899534501956928742300060737896559234463444914970117455138721368390721891183643777617193116418872399101421504462651570005083615744950967151516449487829066214855384642212977162991107230481591262437699829937236184323715764851347766961147420743601281580014619190594907923914406948718501595239570227697787045989792720325885261760419488746370100036227950488900149465331132451235797197779662073843566814408963034802720856051789221443495399034803692654752260288395593785898444289399851225928696986603424713225993396363279752860904253528739440988249956888946086643517952405632270128668311840867218424214476247619088675289238277543582555758277316581004618544100566255573402822187980265257954933404388138387739091324021785871513979412290676100728644937303801196256235448997256917329326749411009643909070237218514812248760698044148912006054232077811974262055129390098926175201972526388897304253237187884576638751910126420244035395371543725232307509634050364792557319720510018349638454564736890776594171544272469984755348940176276161107032151115568041078236027248913441050432877331394680275617665971577127628053773038624103358232114801347056872731426447266243187887269156346844726789452861268017154963757023116097583933922603407799412236120107653797367369027477165110614561095784673369021260759158977545065325318652726463399621169218641989040060370221458525420326852600282049380571386476974989585588345218134855332240104914415190120280152020313971819769002044370321041884755279344151711118946843558013398918151803261061548821184614537975997847085171195108232281955379715231962736298405706187219037669296933248269743083876122857491609510181315249705064484863356017745572561614315734851244105455383549699039569161108197539022426746672115580727685657726647720450258311688875353380289498512064999673036783430337684551348053197677705049301466995652745420661042206904021636772092035458966133439193749943506331927148643617774372412911483534328069561065449504161061867164136975804649758812400175529585445288197558130604573690438760031026050360970970380642567687397184780705042769638282874563403886081863123182351120697910102938362529166115181009583233839795115552756411684888031743854348728743553592784497405891733166120225897950786067439142636346757211308859605482372199328563053056656933304231397193231829855472871666340825611046772601170453311850743766877766712432983096230828691964816219648166964531238504716004534339438882346364546118561173467760393967097187654532802468643779609149925081220170205596094477405269393777618634941969739340267919914360167858550724542773549578698840635448683106985064783227550582318962049041962881372091780014487445036334443791392883287654216987073061494897729541818780969203171283297763672145630253726164777805622595369669506984036005277631554773787639361172213551861637080226907598114296211240251590738257285298538423570481032182221800500784390465932885948095963288766621328525176720431873614352827183616198829769790771230114731457710657358755354741058024796613613599365462704409207014138270233321434615565605616223149646061242709190189178108321002612619302643802651951156978881421721517815088608773125705054924087510752343507332786190981308226647396013413111105211581640795133916138171414073158115845583247817286890031910478211926485858865985164176961418640926637265078271333450154098692485427015679869192513458480455263439569136230218947175626093002546705591582909899171537421896816191467206320496746331949516833185302962045677906832890743623656363311070967254634876656132585702967030232130137742462202846290715815791895858104239421903865531386504294742834668627296269349758691166159928025645932374359216991803754770169369443032634372549238537937719728323866815844309702133199272119704722578187634306798373853967811897317648910760602709952363512465866152076142385132631590971539976119040167970351192467328710327937521901176494186106498573354080473938701076290424258365090943014337028910840898816012086253863182201033742988568319036618661008515309664209182951813595042499968995467674979353812318156484570902708837661755825778007273846276677510165181181072268734760797232678541128719762280329059225968239044681939058383203088985698018602669246337789122618584434564345665268131073503142601038397669225173016177146613454575411857069966743408219339893853852737848878844418066904397985284182399672202872882942069170418505261588712057070082727902995887985339957303454238502753223235395643832690221714831291756038273663453687094271727004375807074300420622997655246408462710516113613562949853540495768439593082318607616718751090199526442668974452952317570584276516497298712267613408341534241691623652098736336930513577612416607863846402815470987735544242115586859432908520399748479666562054331698964876091886318925624751248471214440615306895900547863291904282250012464214300332361852316711677152211090951353791597113926213880414023788606746247298223457133013915960965969851242027374701635087179846909900113838786356219497844603980115154526220724194408803665988778528738313306879694038135135640801249037500711245539245535283547992651134553674513882895940961048818828492147750818864977712269976900074057018157847683898717329179664204371772405632864124715405469602759929987191210207553919071626702979141011339691820457420008853597080204295824894131201303205548900119976823275340217946642563948881940833655757254513431690157987765577804710784904125018562290171257993909741879679149407199157831740313538231014408049177180679912557138327989861091204283336435435716905901212923687159904998480108020598629075858374455432945182916200916014464007579118977682838593382047575616819659617444083827955828580522453036985682139293925699515270328028508502095608202030065718731245829046817092961118008790437640587156916415643786024839998481462146205105686152631381029801654758445702301203123237020742517642714259396435292138476220943967210404499669726911082503665989046110853381064488744186650280231711065429594457710228955389484641133131503486128349514619428300133931780057414030161827428002121118694646689719640283616648174937036675419069251117140810848835134989799303248651139696271624343416503809074870245671146973501729864429912742342570159724221794888183353734018461364828060647864926404745727067135057671519574764850003101595604855215617387798324484824652115872367846326682077327167168575201850544387919629613793864710066808092748324523588427848756277009154664339109675923296430829565961881726491384296405363147599337317731357346998367150528659837497471090021530623183482682041763449455592326611207152242253249788519284363167779472464075968668007998053553308901206192704123302373443108466330298903147302422543632358546048291715213687385395792994348760899539655907276856121243029080434055305314217539355276977484521040842179242602067338425617116833738503491831583583624294484489093138678996206900956856440452386362665332323309667980906840094681905922031772346458046739976710379898007931916980584230866759393552744648820168260928076766456744947300295597841624420796714397907282597511934688310863555995317442259644717032882259293811999270237457566324460541736459595894086497994849082753505489338104906229101999036985033169052269942627219918967233539972449314156583855812759697349847016999176197198456664648508870959799501936178621506628708426749095067302688890756864052271465659961478556285364898059050841893414821158963969131369073290317369102640735270540803836302100212741539882284299252446557180534562610671787582021101696100250707566584165546427796912875183113294464219110779034770794650235193439089478016028327734278188574614475804332072022798286891192602740691147458185366729652588842822966730960976728684292891390736233283415386439575121863555327905941452910468636710813102164223088671050808520016250594953728231066241330850057078897083622146759513023765568980694271596844005869018934712021978220191928791499325109319971968778954031044557910550665148021527521119055274413052094336912628784382055884588216489446679826163040422932447904630592932312719308549903658125833775131492862237164636104531713461111906074926949313520426642149671053447649910427144401053494296316512017296885997276134630891446497469171163468954993445963541924692144545856987385512133750597329078413949622376507570493099064533242832421156383490386022707369395463154965965557597814067703755552870004403509058431543800950318678792839646061252777068047796292163131911395963765910191309667277650098288424932091329577973135065934177472655576311097407138067499022586558540641188604780798258171339912763912356453646599406160369925544813635183751635626210659984980150645348487146636565494600139270414161380856366539094506815380818604468226457621737747252570713976792680627041242768298176885324440659056781995165393935445092992897959161041590662345299944658043420296160637641430464997422921269225072434908622476104490863156297625480374588819784677358218924730626677289900799891833547756255128307474425231811971527908435887426216224623032178792983403194431681314793720139768443761420424521011463644752227006588553994690530541821087775594568710273822929281639371505391271922971064050945848305426826927116477113849413377901410200479369914812653550048181738049361839960987023796315905853221781840406208232200254157775760983613292361342508655001341883602547408029402223879884541939420170283102446258488089985420673301957863889177421542026467750644571836245823534608223793326166368786969691702433601418082652307549036362405770840988679626076287603551963325703352114645092281687909320191889494113912686066202832048191892343160276631692027777889095187673827117892733255328283281150508763204610518264331092130313942313003719566675470338860521871561315885946769666516748335686337185367499793342355229393472073918596030497156229367366412735188315115283608881869634432798149459455699998080097736959223618786646019349995985638829922436585751422827755543993858590439030480943616643100210151649452805535989382240069026934040230627099273482616742815166452325483565575737430270528866023293594945080192652266863219941580289220358205995603960657118464722490161389857159827769859883124304115871697475282270619690847121116150299392184980580980707426851646192346075085896278855620805224157220062247569217092664837828369723809931019965577988417995166549175828513535446045505606813891720819539698144434805441418280054281758317196883776758378521335331198156621532982219268859807608187869705993559234679444157497902871667795281111788714772477189050446072153635227782648373558583584636150775961382669964424745975311859072510171644613635524481766576515159811539467861760380313828262543983034340552648422766438433695563616908841700080311427619415380566733763665281622303862910613678036098057575142690123001228640295387662578541880012738294950537851553839127991927550483163746825150133067401665937404046137787400984800494869341121033888453512410341580789987825788944913885418178572951138022833124930080322429706697823952764673292565950050983849737162712826190249608861196195491149180586082181864784233068553650063371018266763853068864970364180799405054313037407228512046951507031295724747551538207884329623020702297161307361413690332067985525911809727559606064003598540013226950367390975131213480614101885001526767517894686156546002302993941807497109812075223862183280912992267280532513331246049458181366841840912422733830266711017674395458888795856922098804589360923133687427639754015657137388527155953885355817311251271934594509378190874141014676174469632084663263601997503191170024329906799731849878261309465175354020743711058629303887680932043635266374098291600494041572758024568739345745594344763586103583454743661915973363322449204474437650210301045302792475112714119198139299795886127037363625277401431918529743364997912699665650554553744976690221177739330314755450346497269938682551296553983441933193149358677513976474398878007749669862720432448285636040626578245264502874024036840763068730530960276487352866777243687985430445099208754078654927750896393571311155268954879856600254346302971495821756167724881603950571510513754451456743894709038004814676079534987602974811863518109466127680115416369961448183540776695601662169144885083393034596868419241351424412740447158204458004457792313784975361772191568767196189803185659124973904436035927035902587770102965374997885928499877189207621093574810123103652202834930804698778905235704105810791348002645236086159679132678554134292791839100999050068358388882009639187647000321090989563297414429937306263863187379332857980723257901660890220670162951849466809492105354649670644454744728381616132572848465608514313965614657057298838607021705238857671866280895520902354048993345899338750433003192906722790416540423424657239291261272462576217579004921982775289310434295546680299769703161300289945378393246600141862138541824543336451619657757001284010425689966052666332585649996382175848977613522447938526068257775344230239167294783016304781714705564477906086471597799216681432752211414531408510744848644928894517376429646342619132851396587896950893014797040177670253496683364118953638142729645681930947002408579872118345019044935592912051015219600915849519290250640173662600442378100636447766159720785355247050910200304562477010469648344946168649262164404714433981330673439223764054395519835051504895994794734015789427582564663618734967557177161817842167788053062405068876204498095360615021854667455058606200048523351358451847564148604844963275415414127745577355882107780407673435486937981172219058357886831956447363149087036361658799600948076868064405846832432241072873019189171971844409124907669532361335148378386214510682809675230025398894785119832820644716982252733921441585882204319985388792079930014564745797674603727939004059544264206715248793117817543989893767816997573074410471232900795080121726095827704324463616308633884729159748271509138453109978480392585929883377294259481521473808961486879494387049725510874455920016437589444988307037582721860190437640254761581922512146783304575709318985485899915117813703967417439976990489746663994225095050180340354412688862359245623786940405934455367920404278915331829593494602426069415692022417788771238125249927442586134341445124190230336967266278115029399073467234698535302759507985799895462251787102707331343489616458725744679385593935601680992995896809845023030928203609967696562915935323800481841835727907371778366392185324251532166231469822664265903304189495381077389757416400155508746595725516482518103467619923253342455156425940707163937601844327190352718863529650149053989292489735517126820571607758661123636457486037961514948377364964275538548927289181623454522109580791279490182728817191528979816060493529982394651338167477835415673034301051816332595813461410640154898654366876553959073838047754104684980880532032129966030815906822346857289003035329261142140337202887734824571370339714062925863916617391821151701044018486807705526400198315649061823344945039979055417983198153297168588775457662353973497813296976618623561833919284176099078572406397789449779010911603147255197742098041654528479936220167969609424991149344424017882743629604589260479213919519058594645713094785644305393291361439924380819140509384576216654424936968447301755842029349725898359589377591772049056954619511686939071695550451699428694690229060808868671057289612448020687156523341406359404797809857096633914101908272813194927590817721956566610649033262086715995363595305449950574044907298881646825570872395956882041381213472719835983808340464196074986258163943875512403576969380470986459130012987402466591814962253468122782461516580309756886609243346264443957272595174017388196430523002277801373060611476277912157221942111669109038496089514239178914732275115094499610077930347137902572295518147885787553923996243693066408624889903453269963786157768865329780153397824114435731481907031565799838359991286924599062543628158822960671140704003261429594330813082052156867005350481993387386140978527799309041539157916215508589539686391224542762722308663746759975753171872347764444150208977206931611773031328181050822312762097718429718150013064064052576966592607800602295495283605008131782493217634877253744979834351079152202074175869440771499629553972544794862468673222259705672864610891523075504886037549764697342892885222769536135456203755931270760141844942518543870719517366745182037725854392252955326366140647006294464716342872857063407492648733155535371358087979154165308421900895203482636925405409845164512707755726712632873060997641677912011044414449974270684692448961274863212924160955381290865482851419658149583868611759924950911583802705007561192424760872833985382901845577259884226836901148948878544098668264439657683117699472474622497414490996035252130175461828133642785953555402313938570422444804687887760046370437819498073424500269072514967890815375471938717069169744987227158723058573293588264878383122465059829163125057647546889974840023768862304212657682270383052447802027652396782781890082016377148394943146172374218239276488996632438262045914092806202887159258585187802197066873674053010106125420428636161801978551124240817918750942509993604151052268675238827541550209112142748626186843383930663885979566693278405090306234019174520221883128086794347864178943304483017733119106894901866540028637344065502903944036155008871604590417020605859588348255099383636478338415245691030179205368466795478577181957402688158381031943109070898191562637644270996851750181726963461690193478827548144085972245391096396727185214969563123214372568372403286707394534145821207045410465154869468227046257546775632668674978824524328720506067360378085773845729554356905753548418117888425346256670576076523327877124852925013559914817516736773816589443791638746121151721329561136873412955441889409473651877044790289827502415421333169697178473255494572724900398805906331161331163895796964963836139748078118461760496603412505614562369891424627119658584168863434988997873000596166233621099131934973746615305656044789696334784036145007185617412633706423044389911871493301082301033529182743195687588118299063916966362745892124182305488946279018970537824699434830437201294596357585688921966113665920279817251132957170201462319127365018007558475630338403867625881353570269448673157874650956213007806944533758316668566565343091041991242489614859377600601629697103975396464204106473857140409103617528213645448348410562533340076926306478857320791734127711856990920150762069207877191312195005272453561486572275480631625108203549302560519064214693645032341385246622918007845399260959385867356244463226403457003255941298721919600983392699338312364888739094453332813146879033278927981828889460767221012180023381372191739252198009542041354281978985630435078186187010537814373969536946546734629790716379947498757705256323269191823694819152691924425127394137312990271474535159503642490197045442502669052634351009543853873968452742576114982063059450163109007321902133072111273088570170464715784676024281950595904082070678522756630020788396397402157217218322112906209825432570233610894331659896309904477142520799052584868159023874271434839503648726405406081129768722452951387119582613517639677011853094992595788328300166070196257345095709266007856275301381163274670178507656304233903474551586210231702100985600783978043935112118769231735723396337770222457133910623183517109296503460038748190764771787926793297864525321744958518209272403585716056243054602882798248466611528364996290933214113760532391699135474645024335847587282078832597237719328969987977858933696813620159932018700047193967845729335677049958781447606782996042276808792688233398875259272205867196347405784610428607420064189709852197511480945028627866294503512776189913700035033412540975561106497855478280778082684178397918438077457084197009854833607941301262270925535492095887614640968369424836828219090398080783078857634163674517716191339110948503154875444992592510972323485950733932611186632304119754354519264127423017183509391744486282924435791461075778342700456099716107423528787872250415827089829277269770761953350230880981035779382258864261230320910805290764587608986148991403253101439301222277616622717078506909236552806263348062479337655552462690694681752143534140769737015158567261649579063845931823255077002417645744630380741688143014451339113852041917729111412466304795350352219791853257866637958815547094544255694534598891944148277993130719599205557475872735230137327337498713270648019414034366009526482659112016406508180772539470486071888209388939043159743346529467748327443310465622518122554251967760694322634162966879201169917151586826313209131200757867002521072052467601482528269089129658027425307697821094056362881072938595993618320175739805010835159135624462818116239934801886763947650972865884829289603747829835470938786019206368959603514299764015717700426035293300243262005459049035090901935081865332246136988709823150237733095535411354836799511625310577268456880919935863198637124780464268075554318335817766032548217113542978166046705697327893396047072703115006111261473343010445998538689033104707374692512124635186131595743729790086244948360359547047845555845482813633832016098728961484958182083606302429382498545718551285338411310280597642298418321280082664553921253169686805549797938579423269355327831008140777499284505056266424481770564785423149720900959593401776535441600002361365341644921453231872491835475646074717594639740117650503937033620669316646830366033347003760782005877559728976847274360072069757402330951363412486028444726819361942678539839772725082670693223534512078971881732795616291786399710775572237124623592275290701871496635236400352508089128555201960747534150309750112645826766946347869809505569118695364455978055143654675291104721257963446842496250497542604867336440580780939116707863830940344036894975959084434659644596070716686217352524498793391288150781109348271230959841869024369497897993792365462330260548925768681841034163026484361942257953617145725571444221178801216108737818479653360096436901341035522564035060743784611875705588058932328589563344296402368678223567202779218262017505913296331924768260477872448380907910925442248837411034941169457242057167430164256775767219161440171474796231412430643971896720932066348012387570129880920172105233883277607219346137379982550595351144629332076221264093350946495544910145925317463840046892785568918256065601889376264950735728559260034374862578665592859807768265557771858527357292958730646619202955499096916424650360692417340462430849096408429686518730201458443539635970615956827678185865583565720622210988487959679227761344898640908402514244362336470953916089510386514023893910151687442202316154235820495474877302382607786398214714142525973209473985442238108115192137399316378559014913452499532980735279528055180615846378020762600158836106634902237221295374377340232766177552514479938208671817224685820335790920177844225983750348554318098133167753317339696948442931393907747445090084280043210577724016821621950169121462743837660703638977907527238150194757859552928619367627834323004027863975644302225707856979396881544013473202682265397207969736380812834273468131735457785091959493801944863394584154761262197792153466841636355736841148525949058749740817578425809034897389070223044812398687110806401468560216635380883515942939163093461445627204457635931320675377793030331049692451913112970795783109010844715303081568037836335395905473199123109506710040870669548515565504599623203530634990854329487770139057280481559701640294057702543970198705036744621467851885637404238428450888931895973375795327460404894406637837482970502338787952576504057182883191338072834717923736267015742648733455613471322273724149499919726254939573481243797865817728564593399969119785004104064026897116170558314964928036019716317929921054310175903626329573925190431974383543513804530588570597685505283085200780760715651944899611194154533137744037856323706749378966632698910344775331948423088697645957108619372198951027489675902544662036546024577305420914660815612727272448549317674699479327053711689364121541327892589495768949459724483027969599758979904082074784699190621141110967236230851884331392064567391944820838439966667526296005478504039066385504769107536719765314008010617645575926946689924027829320800514730498756088244924756529520634421195151644964090244289806801875458033462880910192905367032850908423517684340769055955735608746680080159647899993879785878700771773373940335424674827523471402211215069270547441010738180202229186355901693406856002864864444276448262537885966432371463728858366916274684673465566329208867157344989662365042570817155581404894799479091860699791513499474506050950082293133058744520738513081399795171924085043643034922726959435106074539856813964758730783512516114013184417111523016174814862773067312170719792797872193096266709449346199551951411964151760963600571197915340861770950835122368529624944459096693975027759362754887853630441428383888248365920229283259447616709076580932643286146442938733470287784301055536603074145992905764128971810551013732825157239571785221417454223893342606721307840667847892470320280131646763700027073668832375873926136457863753594548100298358043473268326588400740760229385590060533012984096293915771493315811540616837876351995346359595155450345729910774056628150766408405948694107396240581558186666188719068900716916387338567997061233274097852161685431537273095219346956403953105588493032089451641925008603608847071103743048407840184442266698489966909211904975657432448223162017595399275224366723475686562918740242583229273672517786981314601751881905321869453259789995427143814162733562337788195924697314215922691641558448209649980284683922021804182856357079790540877601360112064076960188577342891331693248899311477125941160535559196097350658183924791297347752695499062476008907136616125892224976684459240179833667596981645149604719432830076369866338452081117994884999523374806006315387679205516492036597209453141059836525588881945464560117069198411977933286553639798879054323165863850987808525489371903237246570522993888797501737729972350258257094576902639888645532619544088634577847430025430239505384782468067556479552499331931621919177301056399849010576651126447097606889999530271823763944666333074517346330586073712228150915178833450850232914316078523062638738139012476283772349525166979550668886039534974563930180862818496160312808984614051400000152848152611262978652771540146711550388273022111761808312274434668792323030451393824636369294996453227265434567341498292347850865682878128133591217923557116462716434577548005032277946898442341281555960810826898620640927705389881822379877051768881021438720656113980574138815883572000589117787592092413911827168695239063483852963787022482140424510451160249974614326734462053284770091444831544375881469360155368294918689696166505296862278693659801688598458269387121908459690581982311004926653899641912399491971284046145809376474325275027466646349736789904513378794590618243412804394896555425321604921691932549300845123561086104782947205463583249186762253342541781250724884171329973286480969799994461634598502887507800139814276520083847052510276294613598406776091072325569506850230501430813660186034842428288431422515063727977284641585880795051265718321975003546063885969992161790983169234496929689166534674394523838522746287818511164059500459552341747608535466306349113321646005474882396058945553349046542158570059547483253506469861387218385060153596727717950464168546188672626390429644992788898089288604511267150468688715981235981774263414564015454346983682669746109110622387150742269662581024942135790620089911653812760341492161027280185029818525270320375896644663343632655903304923805395478249946111518917493501433043368079523585397424680786860685184578495746092837570571285735425536932746879208675830810285703460531874734119677788498842703433425750336023224245627509983316384208570150051870528152450983630345224332286589900202539282255696755978563196227995425194182410771148108920597562789722407255721207022706044782801758538698184838467710111504507377340247321711997159029117596365318741939819453251634359515737036734138591516144604256894878670863874286571361121871700014556914670864808803762407797500123165813219418707565257649676960749874329479902184297829556332389954434553317735879399254066143307618866445007379734967370577878620732263347757670401277482818138689932811806056006731897793482814233866729217089009042954052261251058476888001366940748074641441431443107073429203149495159893138607872158234236555146996614744381373478047677867633884171912019206812909192540973089181027160040447695905473978666327168094804137710988931217403416622703734584652544702322620368386341638950755470961662350365651064608033646328855145820748535176420546460179873288232193207731878357853172215566238308290017841300308365282592599088133649541950132334516288160177035228661831986026783439206734321801866145843464739400310877773629773317610770768420201215173939037160031323880962092085799442708368761345746710021445824482612174594793448655661110822118644816543978568823614182745913495699421494886687648501611826836895496359341340107119889587641557481034831557992149234790896425976882739154981903025322100820544176190382637140160289106322331049222581748796078032143825908254891571950868468806398724786985266985542390040262061755874147144469757344573067191662276613602248888009195686784189744188563523227595665731930184818878447580769391442682741902581311745147469591485903373821175680182402827294473328689819659074124323295520483145752913377308274688107088346217533179261226299936630830743978286895876700602227487773334148245537201042694614452680791997981863180780408496305928804131120855576532285560284801575682253825681379577574634593732143519379088399269180014694977474661737696988176764976598271604453680344514979115348601025087857557699606607254963775557883781357846781785538956030561999675659719784830523591513585235156462109398470562288110166287539423946054266766369284695315684916965078439065732781451605472905996378190199532290538083698037610109892380379274157959276354038120943681290212411477047245821884813199515821175901435349417674329955013215216188815517759976817600598959942864648404033399785811964495755099292034224603693853163960630563202930349903900735990078979376311083354502573540398001283383165454659988912387895468752880084769121608700880382004950955280786305102906741123051347996857743218578598461744384021770197407618477149704483456730589651835928270145582674458207966418854441664547748055259254587006483042640088733181236170879513865517286030782113096857651513128010670011805899833093361508482149429650391018175953974890353443868768137868376916637218253156585031034240842951533287225015944386569517447071138915010660409646840572568886871351013985513723856921058528542687230876732160191871715855299111164407463240817701638517534266054291865894363242566980788452611867683133578846239004313763811441386890390983092946072933223727781682698901029821173227477727968050747306722655022993116326433789556867186837427135863569197124352592120087873424533321991924805021536583153336654163747291503289676528561031599835064464633921845341078403746343054052310220219198131630056358777903444719848659021926615383103100591652090649076063258548243803017061308658867250965379934130513537537825842928430201072519292495311730837453993973862149314507757329069626161326169833745688148500247555626375793429014142405004471964443384708657590857204648768069229736967812057997332787326325315873030099211763553536394150275890762888921940992713704535655479629258083397496119500451880345517001847847753534133137930017021735484576530321371664810715399342357118067760373187869336874092614179413955312365140966512779085153898222383684639855078936077997533601699354038272522612439457169037860195494371504936297575678889604206222682338677416041298544596663032069495612814191977925900914874192551768729684670580463069421652234749475694117757718143730682218960191284775221021463413345954115468335783378105228366198493399652751183718144333921176141280181534909374918673846252790108581490631253380180996723453663838837984839008258028836513712556800841495429706292634333279782726072897386684171414473931226163410182525679975571486531682551783336115260325540953626223458520538659404031041830499166958059397469314401709518789906251601591424099972934025059018171557098649381042464979263996931261407623152764529610862639881810139147666032050294333405602916663465588139584335805893881369732540848941546279726104062007090875676358448056012191670983283833263241187405413450685514063114231107619879575905646677395744602036862420204010304486350536658229051095587071806924303948917297312505676377045956701849876393115544383432177181519691489406469450385635010853954896256646093075143759937113008790139237786110252881067581644389342329014144388849552236121647405823100821172973905459755471721683638263082926849373082828923659573181558493564144755595110222473152799431925249269820954773556153951153188304875047926650425301254976158359348825789214429780183789542693978557316966848078365606143684786480666444876590468830863877933468291123999123884236311514325232598300627521980082800227081188413023162206026059331680989931796974498785995711914946280520636553046481847382844772534414336735559558260047934301910598217715712194105403821783386540209379273342885633762307312601301091687104456813742739380008437155475614676213806782387810433128841970088642492731667830836102229366798649670535933356393508025577545164489570009572123234504052245379964371273564019198252890960998490265928893719410252328582967852976401141726451470421415994951647066861295835916061870876956795627581209158745683427176361164870403937131306708965285650544249542494741868107890267468191080900637508963066309808212167011959055314407373174216384107712717221530217446304845182452372570792014125221024747267090780060552927355696671096155707621693799274120292643135719139007396823766478878366521139674067479989357495082069122911235207529739457042982778433130059381605335494742966675941017233131155884471507372304116442261774676634678851156105944886413586804318056426642541906277339126762644368321652589107920374554057039159427917905121992243412373202945971289704420993875964170398698939574976547262427351542455976510667876774545110680377453935056912433392707590177236805938623780481022597761773720732793934762844410977836821339221909640908664997014516930699596561668898703691319251899347042408063856231403222553824864869346893601525794717663756706744601278577866296648112964702652984220539119863648635753250495066513204158203059387903243463947588137733143314901281098163300624423161121054013278095670246172403730531020295434078794036568920649252270404153529418519769672922587167500726421790899597619753314963705054299922086291781093065625668218720196055771218018491358912066401795537239554235038001195154324540216919126738355774381877328531125065464657385239654617193599689845262934126234115498895701153793309313143082018189256074240037251883452607743141725493775697735040548361757053137776682743495118687231020716426419859421838157082118434701778374175261987644479106264294725955669718168160012066622626608968016033762677009705393243194873459314733646341921163614261003645312480941923052718288057130455324599813754278143531548088801693625491875038694146606527650712267287753349104488179717861159253939793674860955945957234413705472120341160867960806163294298241698863435209949570539744207133915234177707881340298859303263457098373237639774741900257700259617301433626961713842863801870558382130600287956805952116200141226342515587895083997684701364000707226681304792286117999767451662439561919776287260440425448022527586690523569677813104275888853493485853947517524434065175458864123375406789115790296107064845055200710231597172730941012387398730153145276785970725028361702361194479539339116206564429184156459332001857220965972337400087572135726885694118826545121915794318082666619641906115798199884721456615219849113940191311414698715156274071670522807251920628333490103976982546831245920480666112133822312751458959572431444836789194849567667803262911317473715105152229397621511277050742611565537510931356444942962619850069195891575648617525422319161019217448721216855843569372360507190768717888394196200286642638991324059374471994265784175431661133958777359088348666992715509019320616523256830185954298382080657017001979672207703487009595787338602743628493905104223721228787121761452443255181409717096124578366635124308406573166770556036815418312037399008618574298551277294866628167695207662468493407653038136229450505245119691640126353498988491338208802818827451695147172883468436013357818550672678215002400048719179138758552288495204974021713445123775847977730802744873323778206782332204559674712196046982465032424990837084621070768473313608548654649977771077166599237591648816151829101405150001268088812561233489702928924766281067212010836317010155998677220153644091728192964220363064172579108451038701965977736328419481324195848670103451908879260564431378708656045827793690885787172842898316017358001280265328996057182910132288672055754701744060738816684839947498280633047399844597239310268593747693056412662129589730419858149380778230989273356243701276014081563471856663919743514546243053224253396539173941660602135607472037683206535646097932919036905850308244926802360922814452580361210803299286400163041049011488681042506572657366825815569944589036973235468122646873305305870516863416757906640959324596116427814520384550438207654412193449864318479863928336430668120433110055308049209841969393682213091622081232321392873026633346505746607800542192422008675397024815976129258761534577958529602552144416009647674203390861380730625121093958493740975559922229700012297730271822848565561878774063442518973198580677432033778332700701298250282127404779416645698478047339120724669811327195818759249614605771578927696613092508954778056254620314960879769764125381758080632979928140851963332471924034035257584814288257787887272743473092853486719660305067690844788914514697743658466871285562755604783784063316680442341922636856855234050572679636102811415495073414833808342318947756676690075141554372877014078952110900714762186330993661437559133178429290867599500394554334436203041416323814794449210663360366058481108283698645099154030868407844138169374676032161150774790205263110909448379855235288277292927047515129544506903149002668174046874649699342799876779363763162919548465307725235162811185457498224274798356365975700572846341828021192535638140306486501205986832408156051900100261728787265908708917441281804998331544233079372555421152830686429352172254066851459631444758921186423879205021126360196255527636159550128801480373030665497311938878216173746283908620599004210479306029070629052704425710079550307593483564736879320162217158026257985386674024084153410126061487209392742727815740344259575622941156044689319558270041950921528157844198527123725238675616921537228613471941296133013399707666592483127740359791106751852810374155290401992630148942957381953312586131320881623097084470433981431682940815405792144153874834727491138886221225892709408164339040230841191533200823294793938932707639481434844364986461700273347310928650529963245781077411587714617591062748734610509392881248448390052401793866230258812539859767402224467979627705381671884076341781231166980778013804238741159559093863081678765957973066159843386502075074459618268776411177621718603499358530679733255071313917506519585603572588365516316972264522812046115365180267465493698584337182660146706661340756029022968546770749871100971149220544183825272140744384216747394649501747403771214921090811406102325789935121846337668775481866566760206483693986199077212332577244017875499896292229240913807299167026359741673413387289191241475675476882466383668157113184389475491389003240268654522170804440767532631081628045735274673749016921877926917925226522529448047404724822232088185501675035796402728389517588708367383383434416556186530397628859040058822649374736740225116011591950659727354632926297798534893617428077326611183101097805800433770881369266269230772620920398800648311489483375970445064886281640145323511305107646069944593511639849237288014981180475553325026719018010749880436263017350990443763022420960075057948116505515083179610092597682846395042962364898934460714083343532285159529818267255869182061802084757285332861980687964418533361377118760318841378351589098190920643351606630197377042852475121103504184273733415365131638875632000478609717171884513080152822677658099902783589412467503323054478925227874881760785501381389993154374163583738793443303164275069269383372818272918174566497190618447752389150849652443188830887131838103039359083428083991614971721048133538629151330024697559732365693343838481863298310585697182134251846422267103946953438796091826605202046649915788183353906469482683908972343832108765620096512749176657170481058450172907934691783243789965821713794300513369032858652797897146393220224459259011374533270219371098883555279666436656200132717468458800178939763044703340752278407229494227087410279104856149668025982482069690014182167343772972362223721949591048638094873522239052951493942507806231822306698506644359349344304271721262107439468330601001594773272639472725156603306744544354658512433882595005087352111926325226790867819255564503065502544441564611682292027378495445084357106447842894901997247835934261207097676509935051295239622294884044755197426260118103456254537485764767895121608837366432091760721504643714361118302804015956005108713612028434530309393932896203715933457572001994732365214332443099374537976447309756495511606677648641223353304362274693777077183419877316288094159649064848475723110055604184519285608657976673185897264170989748184555858253542708151953311832904670290360447320391319910745686345918775621323705477227725170456208981162295989856113115875954876331568730406763041452045640717662066050789941098459065976811781128733607966175095634830282542307403477473378321411200352105402881564650067989516053230338358799405629690888073767525213763724708475380364206062908028841539590433767921723599674966480380183659971410496530350021952247162168014947530246601936717179143929487133687927535073020310264045197112027065067009574277542777949550183772120426371277455913312876047409445717047921709419144621079906914471059634022599600292982993078246915872265621275441750970652972164634429168728466682382905414482126579504712839660515661850217477070825089215180314817387318476674454542633994509090709069954074594289912801634071593217157080599420685238548402489753575413780458283542125884542102802757807216644826452157478828105370641825642225403232818089704061527827037893289100972866024560627811738388244295714591702764056616780768262673860700330666898590065442423262071107614203424979931617506531108985017782146576848455617508910432402837151088202705661790229289913103660616118031495106710779674998685898463403577015679424188370244710226035618999313013227708588649032034029758839701993198345164471810096399188619589701860337981879781913524227189784687189824351258385720027644496251658267304354128227972051215368595779028694193426317267343700943252528398297538727030103333441129752648596579128577520923476422525134822695156207425043398243306056909914452066129301979954735678484286500922113897448840939196962963689837292707762368754616635653768366990707184618650413138197205204174589323934829292772598574528495860355640505675075702362045966934468022373093190914714857192991004004139690885239573345981336626771871684338623120424892179394723156625974901608157694287579906488754532163863860338537300472907414782374746870284701748401398364793250988429802907351055021420936170905097567380016871821164561997294674034680676345843875045080665251150850323704933455300251701577971128257090883878788650801883057368062840371490051445444904198909485206584891103480306241030433659679993957598422419273656711925398861540026953357109855233620965305032486026304568259811757027985376860889032494032856883201003149036146760322889288331649293950841711235800130532132616433971938226657805443772010100616549810470440964819655641678996870360348817775503958084262683084586750852539822672371548104411878239848331616362818190788824721684780043139475713717892873098645668118988012666594400986006680020210828697490230496092411674943515661161255135188833801951234236887932713310834280767520929288437428926557665846118694047049270874746137559389155449904979880372763321738005513603406323634806137917337469541811800889255124593002195359002781875626297138283734661302222701500319079821628542922984573080833131862390587965133653990209118188096992721427530156965042704801784926791087407842566763689319466551784142187481657960957352935778959379300427873656716280352447976988887105063450588456304865116362159199772514829356794936150624635348992528983913272030375375818352067951871138038387404501354677262462184029466926123088779221803545716647177215279419772570658247506658371887154029484373193331460991958725343102752230736523230886471277151828162085499373826989152242907243446952595247825661782917555109787156925902992063467589829850563937053223327922515959136686113379216562176877352724726426630127500443008966926118940743521704473663537007464792318511042232016645607868635265486676321507489480702493482382704415301852109754639019553046053513988623433425607654664391138526341140831643053644611417002236324511461161466733389504824557485827364401431145899509496259081249203382405582967806541816506475682652392170298320163988315443257455689355623646004445414324884556592766600902944720897343916237310830245119366110517459220113699296609651768484632735349284891311542961150685909560760529544698394334397600531831367092544509839494385457634798145250141155004526195288423943516723585571114035034405082949013908427355985193967892852612191587589483593031835666437598663624946127011825501097713498183254040056191429163472261073304255196431628139556006012130860385249528605992242267304626871327474119316058350158733176512340573076025554373791570455369539869188252278416104475273142186150023697016393991825903188533139024996273143270136755614422632403971079297796341273513479477300242439512546155905692991028506471744164469637122947852832798497736000473895731355867386327528470257289345864529643744787554662815544094689760667715908520018458497322473353204748885978058494722879999560667189914802519533763849895820158751059988446808118519578494126271460862885920518383567058022305945148490947521737674155868453111090420579683355997234940707816123734150262383955017368403861590270188604376081732214369005505364057007482023680388024796906200230598430069489823909006410182650097313377900247000539758160825526713991661278875610601573999576066950115880042967220680740364907037206207202853421026827324531674017702661598402395040055542011588839887712706001015005580428785943837522584132027771135307068320396964277248500802382819336278327209059602711801112420507982706257927931323598630923590884926092122698071073780653536776447291837423797701146423937752369329536433438147598851862299517699735736046630830718300329812457017676380515765186339899665497995620788728518453413817912766458624172256590691796319852054770808988193556029214884568094104957677887869156335436925752226487344226137000088319146431383127654195731688071668550268390962326742768593915610649233006253869816965866079298159069824833292274083644535531775606396233405145454741595742177970173764067263104796106087242436301340257888549291277841021733612054756701325461740743065048116035702498033112127363887179352577068669797190643628292835204833554438309911568193723855417261160503952768690171516413953176022002330265534342469611341586883719446061536387711531645530747330372296211396917089006865689693410803681279417049357391529318939020416799347933335713016920125419644817592448875111130204793588629651395361071068453243724049541544975261237153672442008214323559823718329847451989770561114741662762333668832107108104856611469876280466979109089823035718073877680940807008806670724196070078450897481507010389382621210202105106306910295873840274334213845102071807759695864004252083019515976332700204064624415352628858757811416410884822279825925784848165415292811248308992161327375812409017637658180712184823620147649087336935628054354201175392248085022255278494764886623638943607852719124736560702480145366539905096210389380050712627766082421107880288379179321406548016487949930856032700507944898682004214372504671049847982336535333655730473704984731334055362502389346574764073203833749967700373600833108903140522420687910235072983637791144689324646071589918693513908884837473833186210530988598219915489094957081448526458707072790046588329557156479321026978656191737801136211020982983218071557943670551311359514088733674701554888743348444307302634126916599251565528032834609496946673795427740409218215846780645977441468546233764309860871791585829842839375229771371463769239054790900555081608329750986027302078383164975168366883055666235571027902200092003820059070378060158945489662407711515399952790303961735121949502122459970216363146043851984695685889259639257535008704586541094555708971380483499118636019335832510018998056723953368625698577406750592743719261596911748981210808858025304175155494993449910295805628128924426224968455264345564761920514657030443678262372469871801916834203694908590697287884144433138897238516202192392989355572519214127355500823596215090128799297565396816773354696057464702536385322294744705448860291966248787803867194737851141257191237011774390889749014266640965897002472839727917691890953671427756923057301218196886030987044709136244968207244589841332835164628447038901280909663823071179963686249093647739118404659420216378683495760490195669561855524754000743475826722239714171338514513030138339638684084251164829422645508935334975879555049895513835348015648950824344141710134416447623969365893238706921195031770773318151018553874583618336125141880335915594643756443089923885228769691242800422275886114235953761269998028449968823971757713550217818148932634565303794445236152944164998573384529193953620362113772073111915341028232396245522982979894367267172267690068033403934415858633115658105061119639481783443409280225562249074054794895543631046353733868041841708909336852590348662272710244720249439230270279427355488089012804607146206134836076836180726572999059871466549356994715425395151329027144783341315503081016401883793701022933547695686149824418499173470687816983813648885904742990448511528398648875933838959482614873105226379109324129862780804770922694032789582185817658344508516579721177113138048226119279073308016423549878357516054349768477259463944538452138569806523710375642086782295661119475690424364491526328611555953969931327927460681316459431657484017934101416927521809555682071023161683847167975010773503722342783556494087060143584094100359656948485072850404359731127946541958810121096865886211362167252403139956793275394180819789349861799578906704495059754906908493018778744322349970663928446968994693384562847609526849825437987830832070908516703236612203430120357281307878723534642967564847178590913861628865558769451555013859390544467730593882522302547085120854253367775120677498298762829216435999340753864138546373152620107181712260609359083880617893176365979841735930734033794842911814243669388880599583509443497059790313054924243996872894941281412409335707834234457269794842339296088789717856943242594835336396721718250221190959698920613825055374425073909340165264850766584719185593139251086518847918987630964215918324198646837313372091998356978731614322565965126948833177000411567152327919824514051019158147247071414897599975788154025004868343179077419757761242102041773756768337752491648987935045843555812437139165710196336979860850459944259783704838996016482695799044296101768959129985786081221345333825542843752411897093214992271272637007907977464205216677811278550422443969209823178060075364770442947344948568117637989962719150433723141839331770579387260128616525334332959175261242392990353168761981516435199189235435657219272733014095750831036972278308619688887509240002126970590099065082829256129964680338391255323409009453215310344919438284739103066158908277284277638840764881474940816471891445523994075444841289488544569315970074277213471556323011458743138590161324026032936651668182619877334520897810234053643996888699653699304259853344540496751425549858953056114785684626341080966812572563611349822452526561665274283502184421336160265634478518699729248215275196558365695156445033667025569929167606324754270654373079637259647882852287863680699691244256579645632122403904839489392081668796136173400303110846054605491509757958988890892830261624253064660658065249103631240805817727035630330241025113043256984752995816271983052016524313007580299386624308303665734884365991034331561141457109519273734097760322592754502131307095436020927576442595713684855342288166735852532537898166147875615765498896610963872565879376937777393030768551319516087349004885373101924892776310637366756062230709136201598303839423032791011244449795091638251581481102721666596204518679117989777833536203121378452992790956014871481581448150201407332227195792870597853143359854854352449440337800045191972001599318340775064262958747511556910345047684014746637741227851038907831639320407272055628980120558945182504878192871167039194603801606011200246487426016852898911396437185631507323411888710493245806185354124203516827806561205165260595980496240598594646431009635699947027176803684887055817645751406891765669166337331792904870466252567541152962992474780919393736824113731035256424360383733145111827283195380074012441083516563669574134018994804379618324099030689249241471289482851201563368349804176457105100862415438946265952474230920641555678426956666363239258928585859828422493902924457981891246117139637548669320870170382878931945962939471111708504281959764750126656813792183634284972590681229223281247970462188878323354071132927629397743779033431882825891986760876881437704992510244992703469146344706165458695577099504459836794763784334350275199933978371853519641370915400755406764726204341063455629952637372869544211763081783348008369387244871039479635687011500918062223653506032005041826796780025547603009988941316363875103207172335113075819757773324909943692128712353521137217259391958748084918911626687920781689116167305319683534079452411308038985045915269748509177799248422221254502759826383257535344521163193044959843967536517713660987360360223196148581646752282667717835570066542782632436662246192847206388390327960926604135648096967266320628872149126617564813083871851799758821077807079785452292890601395163862883660164793986202351959507656226266914206843031362431843678002584701606735208822337914964458456985400073948575690304112997597780285834857972525778834998504115243148996596721424939962522248658888889724064397897133566028754928374438706289737798836544841584812141430268624237249365494611015632900646901055028313692900293989149016949273553898883508646635788070005784684746776097504307125703085004036193437200548316192973674727189964865668532882354069223233754422619143361980808536638980681736905810611083185870060326622557208245792036751114304179901702322679535365169252276949041975558201112803038404055189488862168174697723345975947649103264219572995004162457876519670106350212462845139078090154506870648696120878776813330349445971954618013739461817608170180920799780162713276350840365647109169344648088966444065510780955434119386336757180881489547876091756096808085441234229295179953013883873302218482740748363355889348654139933164486969210065663532682924972393776249646339051162878270606047357432470728674407031176182428626979444440557570093587424127954578313532716791447912660754070249408662573871537607250665143128542317491526571156704998871605395408208653454571765078382555079002460512271808591021650055260382908097499128878269372864830412103412520833832022089389460640861284339189832046241284234323281190567155765819092913332884424165551081423410565536387701944329496568530126038490487628220117150318658625509730977402089012723545913054710577423428085266780811773461535332900327585288958656663035613351216071129151044059822818753443876088864408400819730184011998121150537092996898015377868636500845126042289856915146187506943560678396317043156494900822610834059276132103624506844885120548656747990417327050989032422805593161128464768864888880807693085861462189849283373852412965850067418163085745680093228414956523866869344136607019590726756030273663879641603626532219029413109576559676362013268545000357575736239101267481149936087258249705339651755921997159656529496983502001402626295675030618775791044680197315163900502894856172675819643895494663959017218954827840755737198018995015506479799442229285397601009331748678326307463496999315332764786404203618903158684022024092814386110646875340251640615424784941484773810224680863253803702480471533657304857988754834955808101599280292246623630903106698957446839650349027609652081437894157122839086705004972488981745312030308067635507962109474868333287749334311291230228256876025168934207749338716149307310564566495431969745703551175449114244697517460690750172295187615086605200851976099916460503801495903739918042748593378052938537514147278516248363537548796064852977169016524025347482438912494704276641181101319549203222155089608718950084388393988788535331657528632242355317001990807150085782124507601454550504564160541383705095154884755055795169638864869771842655994310261282937020271302276736778498912944302304177810750654998676754330798976118273549965133099592457191514600234904907295944707590005013888534070742079128252271999585408246979639271307335386647278344914601501073870881524984578997242482427683419445720800358653863493922870286323560606099233105525610892296535230181814359526791887345304107221167772941769004197438984728915780563612653858957828781305487998215560362527798533234794119670289092149669845776240050142582042631286311965504259540723800951786638125931060247200096871527438768387289532268839929878024531798865730053420849103096545817243664061452516278235696954718481096522127185258023855879350161821781716451742020843535702482855974084988639141473175583866652835142808133819134029607517880379706817545928502690335874111482534725801870689958212084914577915877044873905354063367660189136476218258086190378386350900504192581833599426661108960975562209765821053902572644182221864369179523249898427476694910571749774450071980354683095571560189083866532473820177070037334188767484136628606119119070244624855341678712590144068966115736679821059211531508281225412981959589160060582309492171735332618334507043521022876088795378536110074161562270403084426076817320550434019501607830960922033460316941587737014249407648204929833011038686584405309423244886541712399492578578912318545474124690762132532024910712069550533352721577634743179694342935449646475543503587471650002969133835695538506805660685327985893801015208057732418239762905771070771299694153043316041287776295729762812715444881791984443802812911658328648626328689515928929168991591942198656859676338620517587539076718743825979040440949380347781715696354579703429074589578736036914910922569163585275876862974724236552520261690368014794342343093947935710140378798177872024397429367926573076191849325844873400521310171056280191760046724806255903936032774258229147209300373230787180297029961462388380440310850172415860401839678108554792748588503848933462820750312344610547946715759322626063215790033559500207711291073972712725289473838784732803295965882957148281524582992482639521512638090847334888623354767774394194313812369835174553527766518890565093915285346054698888458851686853171704066705310872033995341555464673265745650985016147829651896064507058029509100501425694507513866564147734624623134391752718906180889727104879872292972606809885819889961513946218725948133392260193428717142442307729714947986280643308811482746125012622893038289964346943562631714272617473204918090042050607034554595517890425159934166411688104929764376688853633239815477377016294370361472594409418189498754713941932992044269578537798923274930104914207245797188095766130466153918247005158317046487394988353072825686260296085230388624260874296726285236487217868981856942378892029975359984790705424134095853554064076430349997227382047059833085142121615096273667778240717165634548122529372621441069545271403759786839962115880268544296434213156345362142198119096868155494510936506062602217175780851778817000913484100211735728821103780366867177513432604872427955257127956551777685355358510017023824389655190999849064169292818738614245958615337870994117438798287893585696185589611183325008454770020334211116375359123765102605096305337693556110444228620933766115106224636418342166906415426614239112959549737834864154352900691819161364146915502558061106545191948160533471051716576285567882389167512607399893528998041428729247900568385390093618544544725499963018806901937232186366240601777636523855670208889778633947827713485575358299735369623167099186141185167561965312602559724509282792586128995805214145355462350413064028549857636866090233135513063427152756060146357622808888240387467202616156079099649153703225553627865514901251017720879226259274275842225788768113315445880239428938037318670911200574400789418683056033745417876162486440798639161942378590312429301834803925616808358067563213537692730177730650814963009482193748181452507030570764684770448632762076846424857588373083967521049669805626400357466620202524656839366643356310662269902709279519286142898773423325606218674611199744477919987582375670227472306522360210387255080226282907964197622686859625175330686084846601250262118493962605535667582788990299849652561658363527650468175384891769899857711069208623150733911204317455709698592314641549429534462663006883076830638686203318725473995218596705966029564893526290862772982786029987079171761145475147653540943916207809230209797138649615668744538308900138720785160845004671903769452988430937085896432768287519708485920024403223423579254302261398083743712001175044362431023374586264762451532417191840279491488140582601277950368345571493248050002872329180088114288552971252929145657872882814450812835833260108538456647304663808576375870901135788573870855785187077108898545665343460347448221352162287978925227852667034871940562092037784995744284997267764632544950602986923259231334740702954813235781974227831253788099590928094128294943305158516373628480763290371423141873033446137815129420697232153131911131298814236055672526848002906588206382067849188613121971705853073657606974132527937702207370416799658757225508256149779223613540650169372330894614968514456139827801409176930671299375990540408411273364326648935767874301404303670316124799267436100170985670004892251712616828333009159448457423761198810843672943902800288189109171749213304044076801828218975555777753916725388087568107409800305298123382567669928803646792208629790982875593371201756014807499463610559207177633105224780728534256027459295627638054683624150402277728584838202277063222393801302637418038207113946602387556651777222853926211752569532562487691411116878180594489012612120226315637493605864617439015415643994490832765677139583306325366347994025251263542134940176506434582833647660985741633290894162785447289188280822373654235434339287082060840985448557710252123196279724829158915135870271590020026687607946193915165236271106982763751671765198943085586918441027548580263680531244962466717810721529768098371625448238079192432713949193459297884168863081806990257715512513518168348019803274889781149387701272207898083235730035555191832457519599069949215827550098181593304586309132046441781996808151637675121838650554189844867891949186711978556901662512982513712171597932858589030682606118232933280931582286665923365333381434119185165010612178990663728904465410979949739517180503273380157598356654582251234420796975230777748034645330409516913679180889414926795808213454841328531501343241083994669820056888239571277252079499988914609999692105314688100128587308607060130838109363494040227781211804041076773673698556215621984080569730211563565613295065021513012115836800968338097198202172021960416921026451854571490442712866767923986020984562613769209153614219436372994010165883363320310460243794296339077448311388363221780125014119481767474176897531201997649925340624478250809891112792124244832922449469249223720175174626298000263556697690079034536152434981080313071870553373938213146230095401384999048792108327077274689907799662631531338322507573615177209131136331048237081816096399344741258237699914458154694080243227713403031567888455738720382725379250451097704256905958385882076846429409992599000066130671995029837493668161530897028742001787912948163244135423917133525467402647880288891522637795228941566617206808046106838267252114228826619037830745933488770223339163189649192678776197665374533083525445890815575536373583285723803439328579023647382369946154694174948630746963403685269161373309641897900379122728520412384086954716729758089467263448546027907705919233312765399926103175548871304146443257549745522754762716176948578581374805092567361603674781443664076901623101979005779753726119983561215124823739375623727533555639933725426012427895027096622901958935357401755909424800087790958647273944798485007677040340213266988344201893143043924386976904607100178483502628152933021822515407641204876814775499811586315254070301264166765961299856003209681754593136824626417586517006757394054436632592982188097931039091522753385569601053130357025634842983182719539431056407417403232755703619428741194227267457932813317893348886851893270191060092356757325026086424212335860357708866749072643098058892230823200471219657978058446829334341040693977740523032415596861816200581066677221629033447129267863716779446438500673008343026171002550281011002162930419078627035059926390262914120147015534486331033061864687718780793600859733296454360601349775696192358835973785213169357791699336697026531180421292254004135889763067203149408778651925562799649352865936383759320226861738118838754417763056118966852509222645614674223885038709398928228629193551706802620295554769791441571200240227449219536890962647033088809749989035557864037613248445886180406110684834498981820897723439631366034377012934835890528440959379147268865978971591982630939882019069693781958649092650726256215951248623161502222926472329952237068194972962370169724561471988586560650905567787045589711415868975070351544925459369856197571978690440601283762387911428821525997575712231893654645758782183701800088151043106292331719956896013970526328463556716046971665683800176874524972788280585027299597388170322022995442813364343714905064101552644004234068831675209742970444735564449154091548925088864095564198480143689754070104678958595251734946579570077158271244758722892419782006744051797673977228411542392877315306072135242699023519153315756274840820084880630456512272852575192112762019296044658901442729536605530913232399540551355126531236421750881735590767505501287221590724203523979289588327363624581518956631176656948352267660779611576992012364559505677649651689035091925170821935673583333862717115984789792783164384105351709179533307689141103069645165762901635680655234646070116907144573206232821806614632111311174742280803007860774652602493848279633145683148122933838054220538427498808073465214018569529923073881939637948526457276310749548303831598404589124988667226160914320048439151625769503937011051884770966839614299707871821572284550693869100646816715409517180531336326300432085622280533440752340483968258558235674887003751767190194455651379844481569655185893800775987250012237730417076986771394576907716647369428841087778839190566207485215436119667464880774494334445064201241611686039664942477710295445555751341174240481797799673005047170230109630698974776065997048741943209712546816320731810188639754418541618764428348671520153461915558931726207088565371754816490486180556186060765356399189020547252548859076765083625586615991189044624638947004886620002588832338865034645403294201190061247801996816728808046144189308859500701527192588388715022254808739400944310567221315151738078666927253927241350047201884561224576191008224123031957602726974683759967469304711737479768558662881597290013574570169768556877452972460296592188561699403245066756052039562290699694000580071443127698372345515328557787732716327115157591338441546769695620989633497065190158773784852687391639030182284305630154028087379688499217138635174333000733947075952632627789107860146186158785992049206331049644125976573866742832238701045344412604207478550372150152896499115629731167047346964017387035561912589606903537050617007665455318253561664569304460715894227796316628560053291965919942510447086734178006077769469763519213354227411746775367329904282175485659599023164116031272378636661501216070557470130908354357041794937708998803310715260135391321398458182939787880380283860798118696099041903653702283739974122964537013764152733482358921079488566321770764788708332728343134931362401017619037388313131028318885010206192519547276100381362054151993902147347618913066283531253501285377866812770265943787026640115313515864188829403391823617916775370015090057301094727071978800678242119493347348023465312179052049147658570794732996446757416369724688186732955730021590390607475407106604493791775353017486956641272734649341552286536706925663539946437430067572602666272412194281340803587573659675916493399199616084542629662069123620963273667233226902344880804472622464769157354565053332731030428404179479435356820347614395180907346309398870218384011473889720546691489760520107807900346303040211851837047604374410838851791090878574045520964506514940462595778658268726307265452180160839452991960654112133991059895365326617696515923995784766738438948553388441615285122474326194098927227517925334017131615994683565320085522393222810870556151050285917106123702169093034463736742463085695459628591630680847987395811806802249217165644047443238852802973076233368242725126578985750160609129768600834947456801282332456807586394598907116514897211200180237081001930058651225839400543662339569290431481294788906985949932290831817918794083892791127629018751459872835041921029969803782863491372867338578346141193861778001774836083174531154401399822731960754806096938607573518219290329177638694020685885211178239698114705621167502292360551616669823762421103902890912845380415932893906823128772510862778154138929534645512809764040178116678292537267478970250281406309260294521533097250789030848987347412143554049870444599934514973920945804548983460436054070446439101940086125196911783562944149585936778941616059838399338204686823481413252618424832066778709530246905717771517724271714144184461483174501783920823727547203535025065775718783534864049107636704955207952499226567910295467695685897902687448662879744467624067023351676567812005380215432996163564497058612220773188120963011038016604653173745731277866346778005753538371881811391705708095403902217511111191087172963411682983651930593557827875892212458359085504154943848951985045035487626796285707446313786801394784895047593668715075852628418654431520456823341108041320496924278420738820502269296657882701785267734496469158711110490413231632344734663075416797665094143057104418422099092911910369995605300881832144985071791230737369516153516168057321591422654447654132558900425488163247936249345623171831422152851101229242565409645135334432222427312757442754443010727139383750274904892245010209691094439473420835059081411372294415242163478494632395763593647656126534468067371364804589078131819078693224479454410187090400002000918659317882956297934013320307957037800438544878753680536950288054857189442620204683741354480465672697947242838240773482855685262169085091754492885512336206647285266575126233439663899187138034934731725939001312048475011550734006413059091924212918759525490487970751148826092903546880012812160061285963751373468950478742984221017048509996227045868385144951974533615057743790093553367946382633686333362496361415418671537884688568361805834489449214487923682292920929036442429193802365553106046963038103541770173842558632840384884653108645805657998377528788341918464893972522606586333142885933062676240085947350855175911213224869601850206485490540211698439312746894820859407098267697012332570089091162019898152746507178709176178695023118486153480654724256339343838605028991748358859806457646345385587772457686260550714113719269355554233053250435191707551539991567536102662768450359431190561138259906121082763045582495583754310749566809486500036380990399815194638540602325474859861428583096885744173096744734967404695294366564230846892577208902217027256307104874898655528699456335465339166692638390772893665015922001802522587437846838119552639317637660160429325626176830142282298077397194009496403898972322969250559922243243982360141942245374257113376858094649604755617725311755790922708499125706219295023239259664029077627404264019301004652384633577081422312116611808078167199823072773695329877380649811273489879688725069483178521844435873903767752211860703402457058327038724021342767206929067229859408624868684868952730454458041344629012626975333170864800439936237796652576783993174640899689396154113299401536224468559129126163508582847510339715614825637163210450700565130177277551033981882411154438157487374240886794001376004785081790718401228333179968758250707512621338981965703763569937381845588735574854163153010112036683458665911337529207232561245850983596921424282825923053229788745943197664983431266241569639258353062538021221782257409009944676223186189635181091510962041971244828611732487376633802408465076089294571557300666049100378655666742431264053931315834830680578562488762245723097855475580088069186391901935120429552267614424166296776630767313960601386710139328217761304693370615141972446233852865997930730002492490380675691987310875722959403165251054493581019036143622992580564342417003185557504701386921307692408434807172990053487632913521369695311390553346148697081154570388318127917414647410470907956640151263345182592843155805123060893254716677583033903739121705517145041208589910667318111862845303178130417315904881919421624883339353023426933617775496044372478198857246482897666142244299809102236141308086370616086787810752849532608972287477187257089368424270111602083600589713978559447802624177860359699235915728332230274108407979640810136841354009498240959773883678570257084559093072017936910974982932076580670082761248654376344764471640211308565587540379664856219395310024766071453290546366838221785763107889863337146962981950219753073108528717305933662354514431130666295794120104989616365116195438546746736777946575154204716263483834038583722440714566547812381923383652373125264560501372067069314918804100130149831007578534270148681138787560452687708178909353312986674411622908551214962107508482198135084551300952742372675998128034086921881014461963375904973531242620394437075586651115089546616068976711790705002066961406448325297355476045670620204897466390384064853769844030181624968134233560449847111999284125894913110541439296582239030913214919027473472793339201861670081189191937374480837506268914496011987719701282837019216133850576645599564294954901840278494159708434347700661829123343618204707857466663329920270254696584164493727010992698228792243051198058884238603499086065681677487781888250969655855438402367770079291595873299112898816301370228446112247611188576534545359747757804006703245430848021883508592151620250640963489881173292767059061899872929658920440918823572542263943471864250264533787050872121879323682253625115910904512568597884544346429183983234926720893657231432525634890813764285267380578023439559913353360389328076354091285209022344539110486406060196236347021392962156599720829374877859616646183168255399442925119673652503281768135652414740543733674969165133051983435618320011759365487308663231311968759966178338846543325648174796263986143493004503330422874379168192315137468269900360869981261108687932265175214195949821267451541541682560063727138571388863849823581164021604749722081013173754506407667666908527842152348424251843423336720311733000211466129812532163195645127034306668476112120738295524626143365662058168413776442132504676043572823019353607283486521322455274595288215007449305008621651816692934410277129734353418534984783209656865753526858045124766631696527918213622158428068622797021440995924774145569355679631012542853775584500106069508016449677100389676978734362615277051408996430019713306669879841724795922243830817407488349763409128907103197834892563727031030593870101878268013029476651932945814343302339589635492631478615129452536613789038651248296033216768450792232716373730510496987496201315176861638280842503805695037075676078617206602578658100136969131615141407195725358240660209043716045697218052615915556272708501709225295181474417063848592752147654715050758747372662629389691107782453451322906022767939333859661790953083352684199371418875171878352880938215671593167901948361021221186795888321797923188949215470578651058403810301922992881077396229859585627010012800581841854694296115718821819039714849412115401570042640095935055583269189304618694380431785854139179156315471200692582241783520642470647780700293949149360651362658208833424190699529807496183451788545870721469173546109470588140108765036772562186041173032288880056195348269424532422083879587915263643175672510909108355635549423683018394765916133487949071560968363346585003223062714883785763960071869615016712410905279437345747459172296812568601175693044854455635759021299044596066391315757672573262131226586401598273152526962471625804593575416146478958549126649644412526653195624287171980589922074038011953778658275020407116683219730932953530180882512430715929356166055927817802935435128449737603365948913733136526594236464754786131787994528058015321395899309612518351496848659719141205162389511933378714646267275555801732043494721152916552518250917137479878308980081828668082446273371520385792053131824980694320680998424358712530340977601057312276791678648550529567570077175138855999672157164091374925292410503937704077507856607313407787295053956390153703816133679261253549387464342423422908156206972279189119400008212103137812656132835754964532621173722931988658892576234386800311962704449469534676769246891415196692864814773531305386736128502945123578436471800345371703703662255756603701455867628364720327701389613413199758038029765495275850349066613473317645744797335013429669114285617252188166873319922256954944720864853970235985436414022104445650303504523819801364801625002500483310676802494279476961823230483135848569656049462616244812335475934180478178807320464924659072768408932957319507713143607996879677745968025126898673104376384446071583241792367127370382472584536870286776586611786961808271918597553419291572083036111283589359366694036212042379736492323682870845871978274044147237967268900638793501812416404911385223609972214291559241346828585660804917669602828790075697032075250221707878526195334811619698703887014829581053051221629129035206596533697856994274002886816396473805731188473273631919120507866357639330424861017717798356478251474466757376892090551293153489901394897533936105234196430785510426954921536402897506352056918955568638006744378321354837533969637399242364664993236538003166383343793696779291061219886212639955523757197266023876146282048071372948075573578043859303444830997342674641175311805278167849681549678102559741083127069946337803337446042758424466788272725241943365934708144857429405047774992209863699341601548641734439258697047138615766351601353263908835730597396754061632092069841327465891829314064187997431523666811648979392970049733515233251351196751797064344821240878227187123838217897745794465912887160015452192343415202738797374249595424482988436523416562483863477742494362275015263412728820003226317549126663520453768397961799361513223856234667281859393574084173148981090869733394269488161746356968290028267293361015319298692678094238025069850315379862421973147764106137651902853967344769183960186188442027748536143205753383274622699142950988093090907916527383700768434376081222812565206453359169732869901901103740175446981256115074377971745968812209558187909247652294488861844858406720681751086110997447764197596344189098692904663059319190541834738344258887219399122355663506479939298108151273570422890004955676386505711022486949733186520474215014309708268722867972972480410625565141686382862854420308762562970964142124557347326989308628674250648855450735582084783522024529707950680732298692610529712178746071645545803064285337184887689796342993099371233440010008526603539813140089657639879625417457533373384289159147588826940071036826549051853197538257094323575276502598613634560520572771759377277438774605356004074157456381456072318077185396264580102659810958683465733313194431347366687740520014875091701634218771414644850461229174068093010435015318203862455888556765209070903958326478392685273459071482055580089758093450650011087120143509330926095955898773185926546649579456442958615983706404391551095113425678508069850599668580904144892930509611130299845096363023228244648721744896564035323637187185423206859478389191093290767300016064115766810042475132191941471550265735726748714554317026229436082903305737248946502542741768173006204223791504871252139709670709921025718609165625322712916964869772867126923719120062956179231886304576212788763831124922730888262653431616077536308144580460095032390106084139626844913265234444209186992987525105808184009602139666066795266633684354729845663653566165280386659032413434854944186050909566296760097149243788172418002745287649282876282528294168234402158908165482206537700946380664947996627381060938136102452587108801022107773069686761284897157802550637944653966455494122451922222471796561011706783445489944518347090025948683647578727017053704422748558851928072513343299289465894384119917534307733128112034981212354610091097778941037116839755448248527522068614057823708296920417957627471936448632631543687046680950689889373247265770177100529851868715011227956388080656100772741711857292016363792228819312545353952932420434280254420984942629596625637005859543671974926673460424522250987594672124305146300195315993312831913365092416382446919527869743188146815468441447790194307675667988529735201248747758821866509369865058450312270322555044563199845146776034475420515144382289592954025502000014114348796932923550940769009524705215957490621220141824871602614151670864365797071813010287897724603686249634838941656191032950937659115934898162592956911548804991323880447760614204706396326665526122533602319235269717742424972831010697472242148266890553677135410125545942984724933055536641948884244971264319454392693998724914451498880640277128997134012916233395568196373030532180475985694143252762150866077648530567546548349429881863205419231087219417186052640904690309238701645015639337324679221276177394907673116032686821659048020682479168023445663308412556652466765887375651909112749588775666974669949288887643289713389879148646484302363877070805371944896127772317610946079129828743100620113142846302970183640402963193063448771657399291257876625475477183978260744422695708262681577124704782901027907499310568194708954318414096317837720651956146519385023322692921597620736393191413990246462078451011377012361954986667781065547882266757309817851051239852779121102443027470154358306019931190110087654421749232417172890126591624564367254872765901624658851382544193950845676770074387284037389076082133306812700778082821575231546783021667727230257770177887269536693391510094614420812985234019244868090947913593681378301376003819312933791933821111236621825711853107425918237062102692899931771647861259462329065728963379112203221286270387794926521252127027992930151129265085270138619505897327920224973172675237188893098861077597445043126909423478725192637407250477701411296711862288317279886492911718884661186395576933208343371862438806596703499311242409542447382842001823652980518727980153322862503265861379552013633574814323816450541159441907779409499508488905586187245115606675872091978265930966261655998137533832937458470618615206911969903776665131281283847438215105904926922314918822282159106868309304725972898408853208269366708168301323457436866189007195853438940317285190156932874696350684611839404930720854163255452924909002509979608757709867001812235314912782465945428280632809352608749196419386877491381416123516723900748162241351777548612614809026134355411722186847932692999112898317872381223592801281435328981256710655890492030335512393768532144349141116015135262813560252432097603697771116167970100548654693509010481952698389938725733599703898858146831489744362422887554178638408387785100129846748935847476281233561220489715743133606076556541304972146451080578376041147661924368227072239220887071757203504679724348791799586727288144154871663254171015167496667007597849474989222701563573336952099441208248994597178174445465917487129986423670538325311229740283279363032199530289843110746127282098428123713733637780377800266299931732000296402493838776239585356466605745915139625228719129165109400826515539113817785851661150826625649515600777590679309735057242271604048431273798435285502414849348605023627018312688677711905165672156003495013635058589809964889628463832691319614253273933288830389510122050340765993397609738244822517801119390822055692304642635798578608589633959443643685899758877743447274527539379979559090382445535280994564904150205868773359965132645812677722555850207975651164943412392233205112432853008648758082845715054945586347902734864995379814815698139847195820166478033074048132617592177650064752677175818060368471411120906638514420730390905975356013799502194713922454149138020277511338969197891632711906467810364378254271643421457956304047087606447607422398524520645557816664062460438564323859868733543265643381937060791523072279377821513821992864813276404317038739867847187671727623524380585378005871053248984057400730379661756013534845596659387331056902945914586551950311856778852502398907778251539250644213037171461259349100675067702116633362967959984921904452761993982602338510312263181386720054707086829586694098681924851301502450047807233257599843680744193917332326880939705728911588314012822076560759992255599854427449101961438106160761493550457905825402089097143065470518333013035519606798634319263170084694395752600965445441155487830187722193165805014666205083731237465820348582460566684763010373845172089347408755185927998849372322633280785912061873879461084422693430833127253892848656475420618404242552159641970820607386918464692715244017466066089662618199241176967681823244143856979217571238418840505620340564625687524050034489864722934844677118123457777162199231698701484571160208255832553865826276157921405599487648515621159435870469762641162194686484585634105924026079023753050689343446363051281775100932389823877197767543488365942742964460429575324291720857770578951370429850026989147501749803742707416474197657611111789192924487573702609801698628898701264129094427522131751758011147293416972138843088161871895324952839432533715543455476028315511523202430599191771807634477236721238709281683306230750325968792779967018135854068250941189705932377117341147163931805650532220771795493707559418336871726401452174090114527279090016470092122397145002935924074816509999588820235065266941159379247052272048278093768010196583173505309670469506395807536857542170308940286335303395282636961354258130899022476851055587879761727778021243232068317370620734449459923303875403722625683684974895617462009437881956788148446617253667967300133051135307317391165788984859726348127368166077793344416521296543655838940756819617088598007704168339361190830115210825470974075653116930337281651368750743097938375676099227253972295640372282963201034029445488694385725239062852683393354636066075641088953758567867161854705986122265789064836657087611776098505964723614162254110740169555311984388197595554803224845642952753405780702515877186107003886496138829889848744539623239986065894956520936160406581302309798253417329011297314369888720017623273772555611218438271984641876554294996547195248842417945806455205689339476546953257498112904355265952722115763277471744385610788155421654876539036747745438599966807470442169457682423237420735601068354217365158306312433436447207633423378274479707084992096411500985712572402187096262425879702074977321861403980055518929467130609225626539948941272695424189317617631549296321519378983693385766249545727448396155544606151266499063186846111862885521382976845463073409488315195573014186448265409794720867892755261140849456529841475971030578499475634464888065610487917774517811328438958917757751994278441232670100302553098295988652898580082115175037100482762883021904217322903574080017146585553275692078495022619671922038646444207554816734466136406609394150053097211447241093720018540303568963372539003441019183723030217155597300119137312940436052564431288368886359094334989495064778224819380296307762570563742222971195927460677527380596597578474069792711737768391520955104002537518071783931761245520445049554766347771284137039668767287918532850857438060447917488975616548169816771483107737336539058360774021719336668443912069542460308688823491642757328221356303767905084466024915731939451035449294321286627542757865041953864566167078741601439016219854836085809032315703208462983747323159094768973181872672117969573111218108914834659568721996106093704059501176893152555080488160757085585448614291268800512154071690820724139671668093625944249754049211820201022968684090550319608017739587540031552213149458036874465224969570040925182481244418184570423324593741000923660366212672942723275255841237439214344433186894612674958058883562912357925777067733689645873809037899658662024443192117327071831615029012823034658428767579161249048088149355789589546241512507323840955583238896287087340642969679906262214127807461722378293241910014748011069765727738619932979777876325089490704335410309885392568892229207234096656282615193293768844317876214556591737621287276105513776070337415831591988075392104008768193978503303751691872136703680882264507872732148920011609285131974348456703600000378359543288675475042757947184134996210523264571778186566487380866935967584569962400191001811049832495413506491862194077721772384103044453735542912101688745947029394306134093048907752350215162246822218431259824204578354778264738347034052697317400187029658116329639622485778661753519934363733513444917802781960137112318906555200192111384180648010491175886816139262592146891279673359479224303622028513350278306251391505883890889792222189944836492888190769834199374710359791668730058469168679231284900376185076128373246446486240006742454406710120810123455518610768541360126371276194892524652649025259797126819584216605363456591762821387122660614876788890747667977610741372310547576711554254170916295531556533894420977965890815835155584859967887664622796403035419197536299142983564404012027505397999777706847814094408925101358796050201549278099437477605458705858487578886801332356587418233677054128365840418666199707322281878596309123905874122694612122265338467696216785255585834528306493660966860275365345520495060019850901043192750376348899578386333231146657356673892464148411547055577023414199572669373044547404850477715326972719505163911312656352447097895181659041052136147234165083376860381772939711465320333850524532436196647488137489789935614408405928972077368149952341887647901580821473578338665891645184251736099076897895931393408478268763774372564644324475972573513641277641187456785877915541691863785870042606627521813204123049144208078533592477561474189042664973223223164058129761460989920863539531288990332333527545561143021552513795361736984747906988178135413157674409039202642150549699106493693616227481673315040914390145029389027420282155988462189175455312331985662091987142625867713655561918792425679150655881854638749566671695107446240768114516422397638714561061423990624665644166135773160011792671187054360911720067740542917545072985288788182311664715105438113011960750388508380310189547443770297785134518943035663054612243759522090262678853016413975001063539727478935991285659873338547682330935262320589901250434238543589930237498372374583951942346370985432926414665165219858619863512780323988512022027822467564050427860026173659751886800704776544284841314816123897649906379698629020838280405691373944534805359931761180184724163463185421646434674186439088361514412863085159854704488030993053649017249007755084990193854127718627356450097023379755339623775566565915245373207612053365572811868080028667351492436512354948535932334556963609127018901833401806238042414938005649690843235918987098524879645841114751934936564893346292713102043289871515957928524560768425904252427737689632665770075028231275956846158735191617844614791712604205118166920338504064296585670028059833158104168187741153521506584300660099986604570151488839900080454478874287070693372761852523692290534592922347927832868034590933239961696284152585710443959623430158626789765968872668546423420771892895722463284693055320320377523001258180096048604741430355250237781272725110261744681470574784903856306263706262281002422727743730568054771598337733277813887573777853004009677929327609297056342342671937997141222724586180979371446132376727223877427983139162367000209142025993330744113009955963172241061437780491261721923851378432769255545381910093361952333434307707150859489663658883107044819939994046470723873931551347680644495611115641523715863117203741159715017909290286577617655733417104093220512839715405998958559620143433767415857483927156123167585595937938991858651324254401898302244009394587061018385154045296169979583273289379541072113085368461613796957632294342922753220745759138173223760347773859543700425774764490848489814989790306839405466489863041773837504268663075106876687847590272673074367576837398192387429040833537984191316416981980970989294325818118656443339214827567107340753062245592499544288134450053025791437549718824757836705587043196895584142457424586583541013013013933449167015479555185050063581683747520894518466762146144697998716712609569492946936034083848017973817036618880338526142647594514950093243686329472244482394586416810096183358491685286795985310552766884606407954043494382054393422071767625567617333853855079266436834053908040521198918873266914615527527319926784311911316909131730043924073665041622637513888109819647346005058402319167155611311456973036353453287690386053355421750792153663062364893081461774797643168228333089682306498347528370982235159557473170083462021603697691656873265172729259185296140363032133477712575611714358514077844266660019823297961919056932163891719024375066376853268556332738207297407233877222889735265400447290129798561423192388341971195736217758888488736204636965454527650623687834513116156704071933711986628182171350493493664506063350604868298687645977638671760241640817187783138523344231255797786421207597645302432465690202954429517408516052470646562793434187403495105572322615762254290302484035209637817965980900384089332590305019071162827580841879171635740816991579873016318270007995982381434922965161256744522605789301295325897031777352130584093990449676418979370043742988545462830900606007028455173213936274766249768575761730962529663920460426989699291081556359837808916045567640066197486898026364521551634766008155796057606374238395739503361579973228140385600365169796806057765548679898072491063123892631549447157003247657141301475173823325523763975407987553838478409113997492660015633694791932635812623184402399982584602105065677302247057794800380381126531665353639367638901082707725699539599724304334945045110313524825670767542559486097082952844893462068369623651216197562225928647965878748044149321349350167649450993189066164892683130041924866667702315556392648746020701658009041784231915436668662731060093022754778507886097747437046155866497650579858504820696814937743912639350381933678299998074197036258254142824095858076505918724898901183429160396011381947616303778593265452556608525446320841394381682720265408118329438945296611695168492473870243808776194483578301622423378414579234102908039902709841999473764310817733235194310876470667422723481592553387183572930695131994173758148449029430696712513121617653731418859969576200020538079773843410578211061402998630592524561075445410907403508138552451448173481719597320382440432983425396485575452643131773835166507790691087590324621522287201080157302962117603828392395220923106857223541112145535982552854185370953558664193157848456864351069580413726737184955646102831428049737433324832689569227742912616250953821547931138949057752458324460511079458387550050848158097115619003374569399400272285719900809474409872913510118396246733810279322282438662592311336316365296759442224699809405412551040245681762728800511214734238099125556443266705091053825495593417164694548799518598393733593827746852573271669191476003836429453480572204809763900234464624870976880633444046830281139074766794207697963479541342031111809839338883639072734604723092598052967333280366968085259958036252191034039593200640898650232751631533221946701032945084088674779229779612401565974778304610493950986946841492795957812468443101531784419113288289559288648272460184010001450042679729501790447643295291270508371333240760696123012693336385337803807075654990680547937257850652663636983219781841620103191948499313278341354803119318795744697336383177170940626371946886188506828445661975583273057351797519506233211881468953765857722157849045323117557239783510379088352385092080733822242135059478382100405954079833289866288300857425392598860653553244638093388623215567946156961890409293849084377577392659548271148612794057292683651232771778196849400416727758002402071496285467126631906880662916420755315244203549770758766884665069779904937483383601840254718522220543629502565003320187745534239252858415044146056058745816579870801791476048556215975318317120177762550213845833641682420340392786050341358299207319352962656206413339500843879229735236874599262761661853481969226420343166025301922191382678332352964516036807066571926717949757919034704905943752047428219371718937162601967603147205323230343644287860198901869294778583115567881563117314210970215401676048610539101552727765653828498278074731055150347132527126815368986285335100707054268265320550691343581579388148858397815101800198278811472618666188919537596767102514661948421549035315202989477034199517893998115398804498925185270962020479894075157997263218045943776414165437879784171079283187435371508961060688569911419209571413008476241570510368916184092543217393192747687707155642716862444676060645113004129166171253697757931407042152240484330531636045939986355935261337022920188850553874724508482295156029930178989651861561652374212748275463859605711674105395227356675927688940927720735060353967294152518850283159022736727021101682551695234353274441131299002140609359006731608561650557109415228885175167754602407404367411695242401513202834284179590362431016200677633286106669442263491136595330657547832494229400196899351137137037891523906126140182916175399121116576931023283672298895249749893979490160233186422522576339327329561589943525154678673136675171924614969493280826001293875891691723118532136980511816749198542597876694735566878076173690269601547259965075622814574824938161701317567600757719763872667731732098936180738145250756391155542849253308843521198761314279177881833859231450742580272981211509149437015893529381685506198703660756521347254041974773474656030076797975337400051503053645005365725970878997629682996771054277424551677957061957770665044235416113558351193464479665528191608065132207163090035397253909338042417152056503987705630313528321626361333642765845570078775324483991927169716849545661588101356018633319470679923947450313036862164959442850561352678146960331699156524196196277552106885917819091196170071604812137980508785051947033673541332985735645696726140119265019997495089101754116667351482125962763609404932587913694235823668149990651058468768638168380263670394507198681811168909407117364310997551178882075867855121983132253656089141162616226018530236523181791142060047191269075874156591620239722673056195673315420772487233307551251996558668205520627990527150181768126280309300387884450248388149103972467234854145396163742977071917125285152910719985553227197499815547968299546367599566287442036321780442518269144698297210234125154053791287049838184209928058542819016615585883420989032145256610470709902194172604814999035909896840022382935159250599382758536066446662613499421950812657272397548302283824270052434660545588364368235487374863301177692779439266401950141458154290958983318812601319221956819172497883705578786266571717945379108913229593361405867818759719549006675552309333468272080495443307437540153189155011244578634429002545185428294420759577798787461605277630846297916607084779034605520635395221940232583797251146191545980020794156910923661991445605698983516708749554804157989274545042424048303940067470576449073716651302131142822542341122372250258004536257833462800661973982434804342274383180195947038846898271713559667896938607190876302856469064777406799788339818356253305003918820034507659552464003401032799393016373743187295720020458371980681306069684962711610365955843670010740553630853578505366612931614177233107092487840479742025330468738083354991749049872326159539599495773351779195399717381929750269038237859968361708882691482161216197425225843634043863216255185426272433529587485487369604809242697845163940088598631876348198536158715386266652687938218242030713917766071740053469841972753644918551765380779510774109452978527970206966819285206287845323914021203493656299909963413351844746819060707752919011794939641733048495779849293955492109890858189624626255657714144853394745156517970351512375474084091832302374165910353130011663330782059524541157201175998812479093397161432134049304883685460073037805863463597521005854322645802084231406903719611133592357002893433335230303948829745366451293534129920452611381519914218732118274101025543739571558139886780363209836895428383599605191872581143664543848502248645605265809019703075034057737890699413405106901755661202150442367163305661823422997560477605198777350620703866777152602337829682040320118243450669451968273383698952993309036795107989803659847651859291698941934529800213291529546528736208608805350359159533897367418238446566864952987259737511977793150162736292884439781146820992509409364393567591635801892854466694036837216876935569506638766299335841565266864275642726437432760248151751127826432415985384053356552168422433011902354559912119929637444129953293108148316212556083453110751093477234218712718240600719012687459367241083696238557744340604987665669268957557880158847942969599985372976665673329878766338328293461891508888798182354265053368809251713066528299415396727553135804197785657012086313815233805397884515256761171756783100958256043314491956251575370272352057915507772717910457608313220515527417746157432982698141131770425326036679828471006398059308822241899186860985407214665045452346459768373844559720800926942009295580863694209052481082774699676038144602203803008351618424054202119904421218010222487734453650302784438851290746489384499973567918390876633713526217278837706916232630072967992988250996234384806613221084471411454382898777938425011868941225871354036134038107239214175923433485618812771741668180030010625397639881499856285804304648593222249371268542143064648683176924220084469111783220907048789604260763992941482698827660014213061227228497592498253765770133578427757706922676049401205050164616930061022868854041565314722939594797836601192659313523428909555411119876044184632949309208640512101841414349068002465700688605659975320260436163854284250022167731664520199197789418391102669031623400548538553048367396561541851186558962915727523025009529664796738231705681457029771046114209021050292834185713780084333800078939665221371336017884300772271204179788983094694542368819254165580027059069988205763516518469878507842241011312884691949433271083280723401070931951485711216601950755617441346508150037908218329262123451580774284238801650312935940579975922060095647236823718761883547548128126895508928359045828210273730989630153241630340461053691979331295403735743704052832440560374875408798203992356842476257277320865797822163977969364706334340516145785440366160838509876009134453795802428434508148420811349427475368590540452439271316162753792150927283370525756980539235849513304363550730965589359302148177619996507875682201869035988346098750066288194980225503870440132602773545670019039851218441557565950779207496348718530597006399279004081843267134270599162690618579309455360090144694699280335013099187023822509449623812484744709360603257059787264526033519372861006149177078112316004060561338988160633435636810942581230697271851669506079632001036709219964459956358280779774853837929612944506739791641064602896796634154526853173260784138100613324061604169619742330605898477316702272269892807376880910893913681000481879630161120275087474085630068173501410658393144520648523796043473649224757832393806282603155448678698137830997128058357587176326671785269213398460803552933308578208932476877128560640729631194533249096072220318362730073432409261002627700616480026622524331135993989257037138554559966443045838761740501518287251368363467062279311148756211724730071157963340346695717722424572248263222163811655444522571238536720953305748522741503694879115392582208926057205277581666407869760341516423864164745265091814268035039693491288182313290826227140289733168716245613196204498855147384427340229817251694463253459771552910872992090923466306204162193039017760292387159648253209998801102031828566814478433646564962389273192109047676511110110806570726127585744739725727714144770082999700239951472678865009360222894622809388302134411929050487368685077354606852497733004358053861839079043740598876640573178208771517243799798377957227450341639968475669888193484415502510071313797249723599869222626567513335161996194062569788420112279947983281709131032552829149444039088323794305130150849709143857273522483236041414553285286974272572026057201702489332710106738641455473610718259066598061748998496386652076105489550434022046797261589991509689901734697864444394227662444694901015842983291485630588861227060307715867881788495524389875863449700746628317972939445318032801240306096647587306730505232889664024044430992634850005958115688635326599875671517240626697773707500373332556929932958721964892131659005340614026032935577662587310231000843233038219558745824395198841602265555440142231296580644447923375385391431985763380296648920326430416171547706591983231535128194294000664635414514831060816596086634971028559129376077776470898286166384923963303788722738778087231848883970681178771530535500246500506009111626250986251235305376641793536364598940043349760659819502759266269031037650134575654372679667110938504259509128961793876614227350251206306482587768936825764659018423845174399503130485842017114743582950846251432434062139222573354214018868341956716901259957904647564696665166723313355579531133586579573365219238610486881243899627099231038000159782314712666102767815378603117905895610134909501019538546526595106461231223659442343940465313228960739438397463474814288737111491786771649480325200360902007826023822919435486650280244380636758028738982695910342897913387180714792199729286435957005803423123602071444138834138815223339462100742350160098925599201473961891065563498357587466553356383632835970740658669545568593940895270465150832896539370875248511637580131251171190638054648510943952402731719532601169874475009550186768304506896757606633618156528212167815794748471400414624989803517216987857597182288689109551613227981938625548702608853574264077073620732471683037728858486964592381246947007061366795085084626790388388203082772582142888889122556621192662574072040297289534792687240405283615402992140686621361930352657606490976000816656712763501372876617960800995124037830185381046126191414977838864328331222765602400572442212002088413656524402680230844766188132163498723555827654538869519715383129062111884115736354719956201724897685448883292618380790763327023038094411154711631074339718097994601245760646568658444280861792573045053282279176772521680716743809712100390336867145379854578908071510853189876360237335893354641126265256550987346285896890844542889871409819244423752980074715321990129949043322694732324570858035544134925345068438850399526436379211788200803554755241552073944785880625928357842633304856479856171838996031096983992877538889903690278395266828970080802218258280051137490429411059762898398156920068349085896424660105767704235260229003439908507450942112838775776589006199118588986963477119255736033384256514773583069087432514357906769590870454416720123741867702865376080907096321908993807164192235850893582485330209652303682432167912366620535834820034316335223112935765345810357400327353358796971522776942803304302139101724135170309888540930965475560659158748711057324263284352756580808229214214519498048378896426828657421483077209742954133618249552104877950715924590881662787033513808495180561441212894369632581113293310008156490002901344364993508755039485312600448186178744580554636200552258253321807830177258738483861475715842505127308194825631225345101999388703566350909115261268157476971782168734653419472701884858027148297959068241319750980210889992983445744359748091511822712138700545338103178171200734177734561843344020511787452548486675694778537177039662662372843969967500907221649554635162509841410769303178475005205214274794629595849775240987342578051879550743452759844449406003579680164453350348660378392679786943854212090138288821733123161802149601891485997563991322831238804530269734351158911131493782085748994587496464967584119115727804653342213287432010965715800157174098907397996813919364197799843257692251941042098389341158425942373280936298410126228096110386835297432767269265939308261954423843035319048336821723425919940073117263871883221286305487529636186443324635185399121871222520892356516781568755357458064726668397787352654133892941111069000442979629194708580937640034498817775410678272558134519748056841050496370536909893749936751980653540929450304364018957930844986569024631863867530873603556849860782985723242831718114363906179025772531144717333576298019469183559414234588998888764818044536503465715751994530563479113988133058620415599333364544663205525473588137421306006667732105876452752090558862389504665526831654040485158097445301007139451845666039658151657496211302653273503798696117876254273097666510380050424084453130256513344749803125883006911361115774582731326303057210563796087744473317127850796628686546152550830635097073890147601608099490473834465096156793300900694212383487249019134801603661269173904429944049014093531716956456330965714146595484717993318463394874388644361054234181523102653747699071975199026884949564971690253320772572003490093840266372793016843004931216574162805185340271365044653081269934330064384375500820287924833570194589356036473231238744929507740282905390213595624854027678517647580649207750851876532929766741730573698129624070220058990424442846610899493085601473104584847307694464117814729537820438402701263157966260657140918419229392108379533489686148738970218577681976182800464141666772749717670462968224427640500015502413389965794074726211694795735145687675419900764544110250424846196454148312856577956258616563356397377189365019086161770254923848228601699596351457507144084070171290703048199766689737109790342552068518371086618408316978754762444792164798132924804307936462702376107875624623568578580173575855473105194931768626992328275263816364357740616858073807050140869807339651659460749970807099780409046822018093005641072056866545884174185459337355906871076695880720730014533117822157283521270255870917095306880065959630421311380723243382383223635350087834285792930156404843080420763178734638275601077753128856449684411049236206968418641916317003750651838001773614551852971489088759261730932755474298959069354436663770512500750095025724606534428115328787202386587039854620928908343016294388433577921736922325823039505674048645892778913284457892428001682861445237819954348439531297974623243992462625624787705610514052615679243187316379129646089885886419697703048705269849801957864243848187456895529723119165911289880028524513049897992795629261366082448006318117303742894466218071681484631429307230787527575999994989322207877636331821578661911285891349703922212099974971405117296794422583372624752352094662595475665991634535515089501447849207224606773591005344469509954508877800759612881483001212699172143240578009106157148002629171362433803081535496245331773709035608554918532309750851616439444278915374693576211511295191270246291730121665525379021716863548612209761975769418420586419895543086694187825051977938672386316256613171522713080098299510366986191145800820503359544795537831931707301050224140138011819321782689273192626888673184411863330941798309123529225188825148187981834018524664578508114321894695595177997084179490176001961059203578876173118827002809735749975494948196001053477308953312421135255909031212697668470784546540327302963365708569661312976353456520367116754555460744684711861896886208700110352634284934283357491682556026505144763984855219841632499114675912934720703916958846613256742129166305063338344309215835606973760983218730046874815399351191686421955743161230671291977751715365058997600357792705752135153711124818014774594115406203797628062958410928728581597545145416560442226365435876318173065588909243138216086677301754672065736766920384724271869892481156657031131292602764978227048308402419978871737533478680152798736574377764202779405693863183954349378145455304250149397357436843187427543947790997422629646925904436088667207806494431653583715089552231987125945550332596254947359861763803935182089300258871769484372695228954139073782910434254565893744042875279330851531355963300222263937221790075838162721811252867398045731412581123081172020026926727405666303755952347792532527881627285742089453288508088385003283471978878844280464832460809178081272062348292538687148933157711576151131116119904660985109565383803721228702496916748075912719716364439062668464447514127400832969109406171101600028515602850490284562650079696548614737943803467041228699661369968704971716281983168601358122805246043505683347123253751442736451973909986855719961117581146862068773966080051118808922529248411021515608414948194788629847924204979415071701123856094874472235188771939481889205911329381543989271432620115068188800105388358084278265142177597820392003032290980683261861530191995625114160178529107153807545130886492735261824975732764247149579389529507103061791620922707415680838853476765305578986383814533745926405078502497095496949482547535604874821743672009169650651444440374319055194770923711333278958493493754859338936449143391479823118450787209948284214044195524977301053779917439163383343198386380283839828615237441851574173211901549244357406352529564977564365378518757045440328709178629778094817991346566414326501619030449451852814706944872491784794569199083482376175812720869648654909345785912090734743675215499861776005507144643428674442712332945703618047982101042838958096603685554512355614688584259313842203971148767394957927689772630898536067039136414427981116024818715827407135222441131117077432745632244847800339414612626068736099424989283645192017204819565860886162638963291651129011150544955568715405277327335730202434797040856101252833422756922750269678927008144343160643249645232364287331042001662616173211372625931368765066790127672762420439038540359053158104396764714796241840054943252903295685132468475375250442150590148924576235451525535554201519529707570700984595685582012124956624087944873824491538719483064032836803955594510665454807620691331256738034937934876608660283144980686420274494730590216921078670822876474110806325648655755423955007520169568056120834564359490188196494806463510086981263185958291623257196416783741447268878277453427119293958332686732117062158021371873367416732149491822932932982733402747399343365499844944981124273174437505085981572623944718638626113217371465848215504949241070787063645748876796183440947698273405371324993305398646498464197123640468140434127085693915737953860666607565433778313408095680521360500451061991421556320365767135163555816446459834754119223592892461450233799604351836899911638952457819426400587790560027255731397118035559784923277197328674692203476406401562808612248610619171645047348363657681817751380263659647414082447195406579106733863715659912008266086405652590225436494147708767810046440460586172498713209921598495207508642936732112704499665287728057329237735462383431981346176314723229329055537963455682001285226384596052832952375450824086784868294598875414019672338283960620205651629344576261206584407080589300278964654971283331999064564849576314147424502060984339837163863923774026458656569434044314131733954259937110211201026780832376707869174554490034253643471113535494806485672720717401385007077012637317258989569440640976014187067132712489530152089285387333036114336869922189323037509070630058025394531231207180194023244543957496718533755474253987153340705717202911834916375995641313059760211911392018403307183622225628990902681548907492165729519075976195562685854131248271895701052036165583748972361884380941505814183415684396346585981290307807781914819827215596870980292395831032450591881550741841366306969658719705762586594488246107142048465059575363354739038678937243221439650492621867891900065004833083913177236125077912685535889456314959590265802627451212218494654748212009779210131566236214313916501156412136317012062793641784811584872710336989238238034918451613689502987502933851175805522054407500076423755878697920876914639224371401767481200250729460119778970889159319448122966845032158370831466724499337604032661381573927054479653980894382026139653377096369178741777524364549123373132922344590643097187597864612656644935572954391350502407798507591615981248521174079973427041938834635941169658093492746448854252263225019773007834571004834463569903949223180847379443953557384478298626744845995516764687139097118153410936587161188069061005155715467095231404920618544635944231800531369126906649306980669443151760832675219419306614955242054139652543657149818348484355028103276976731723740575628966761002041988353702799468417542924707919517248200069998458992233591086492346218262756153508837598389133628290656888290963826791203132249344185105297991202166515110202479424547873353982406062312214989504616430405564460344554943495990091395351700173463220122163710290168447349334597885428585113747067077840552591574278201178362631394147014452671614324547920368318701451818099454073009138169501526880900755787548552739587595572890987866640943167015265203880793952295175979371016743644597185535956890383837596368910576657666290598891417806808020730799348625321594949485295906675752788358702343110841240232191473213475255035260143878407167570353059979790591126420709121364055318416310958673787416142374765465116164948921333114132669806101591558362128896324081662435178639879544175859395001424418667228759454313118621839858795125506583357493590040885312179561853422093728557537985578363844097261334855765141191246923997501927511190251355194702179604469365797676828096736062022852879609233997531433299689352612459376298005427784595077145920949599525955543400898942660037003785457582189981240794685814389315433895298819647469282783155343041462408882301281297520810157847482770080911387629590897602318766005241585276833075983015761978747934956975990870575798965525733893305394952091662293559734237120588658596652594497455216110903503323171348753225848302537214344376505097653104919092299461733079822819399077767413931378214430136703244556494603641046912884237033086282217094511441501667774694539762985177242808957367864278594034464226854206008353390427525206251350496555686233239352740390125012067141923244085979285843508323977253342950781111669363031187055859753979013810472600692600081271193792799486862647329566147524268273507267236522980876256067386572742458177536913932461135782756662559984707939079148329170649890691853991608735009623542864080522288175647035715951467382580383672889520406483080521314899977871685912790637222012426734534611316321574712781805570274353716909043235226175318653652600925422950577619705833760854854558318776242890313464885630976682473535903238091890762855989122988732486780022269284078431197149217231635556995855804374451401100503384483691521837150547354988458963113940550869692457081121219818347789571381868198788548210175122274812673022719232723922546597429340766598160386974113942420353949588110205528265890660933500349196176545869784528755012901812397582702112396358934633291809151708976978407372175893564933430946188306782703352441487286114682305860941085250936398629403501798928981422748353214968593485771887290928318368809000891681546353393500257321164256520528069931493410542575211835740586637371999389573110537252314039333397553613163641723487040210421965011862767180274573601853270419471758221706146940888187183118352172694972247423077160051299827209198911645335774725603399896056637335147297397347716051353876900817690151940759885419068561155549650157805807563513880512382754638093891106565835857333779669524831836869981924311244912308888407100774668950240904263722317034016642892071550708364142510508156372234515243965292368118813230900048247788731809091565580092428946988424735213847769870191772500178326399733539870138068686483165206336153013329582261361489084656325382164688988571650447142260383722928351331157657154723197015642963165399092841485560103575076734813729315398583341613478326942313561450522803688141257685602472896237916176108381529597651545708749784537120656474394557982422964472408205852224017791340451884984799540260548551846076259099712936829848049066821990242757860449103017066761788417163579090851580074864713876917587160812464956605488379533778130013625513048842493180600539822586391860323399415077167791429539190219001383538942378996331657199493731545242654422642498216095820387769828981530392426805325565884218278845415920550556257130044968382941282788012022739391787852583876217689056261682241221957119215012843843293023952763464250580868029569080324935193676763815261318441347245007343190834008532471247757774482189591256436788131951035538181111002788153781676496750037447329733264287478217406262809483911146377639456417487670493174785233272149918681541600861998776685226508407940148690174511293576590329508661449658967193466435116358980744318799057630656666428636606717159935714300455079761086547478557266666830213012910559487268008498857001633507290772466361397792581856872097121887269974600844909390394652260369239862778407082714671886782231025407212437956417757900180026758622584576318388422791885631638425253970641252858229039901223817858818524122858296133782844450594089340649109328987382787191064708505099666985334111286246562960960002650167471687230522197708908989209331373714669027145354989171186492329747840523363870457421008869717434849401240125386354227058174829660579095143901250123105922881595672706971803306574012336734419624659192406850568925221297378860401176770637271128387887009273524210922898932753018737113296113119799587578676218173992032549925511918910815857728776081431692689697194395434256108665697926136193716574199048144715140073516454250463183583821061493673324864181386786066560983350052585377810140518641924765523372505494344517298178491932717161610351901393749483062766932543157319884818324791473311847706794377389830235441266964685100122274960585159822952490489949424519055953462248918498191687246717509936715125877468853140661001702594594755064422345650080016093011182669833496277477195647201641501888829978652281039368855956261341075021204369926798946212381796733085795360272158386165384195844426838055792843111880612631115873740487951661548947386114344410314335220969738319167334046742536386349381976782547333566418213718134366934910741015319419045077022883740506866431815993586901148076509965966706860965557186872494188568514852710508932611013272132332163149971113832263713227386388187826056478568134430318200737844516228454934625851690547828613296433283625976574838200673687072568582725506361379831653224024943499107574802907169208945073487181641173627960968412596177858960187941645104086724858036938413533391267739750006354571265104537814023369686902704572468859245209530453017652486246896989748922248100557583905660238065554070854447398787523803806470526796434098875347751618162194300545757077975808942766455776882906323124808161499809095577287585825019736088572066547804703075672628941749066461477986102476429907376799294167074296397637762131396750838238339037739241083510448388848730825837190212821636263167688056778551401723207438544460199920553133998529697338789830305002541186716931020495065646576637160676535336154855895553576630907276211030106413074674537877329637594301288969487340478949094245843992038358984445484680997712901762964417019629176151740824399101125082190541083819166585552645969538045094416162410944060400203357479369312783328046942827699539738175192868524271509336796141664683062105646194318472474210635495647646380126720298694555065870604452627712118209926111096742635831680897637362225448953631464062771114483413435710457211952360838134878629064438269029413293837778765943865249178466962581243715175307541078557152509269013689784373175072079690362682992562135652489535170722005116203334467517749797455179183855181180186827759884642540985951797092213065260974911479408005297201518000935836861164884886224393072558313581234164004139452875232559993088201525757331888756164601870050108474341333436307460956504775403733761512778588709792351271034659061711790194039503432878645901739291982113348123584343328985489634287863533534904519810640120574328394865831258890993747548862541500271071207340862665674365037439230488171748157231434061533552841579101451331235561493262875318720056712466028814587908684925095904819307335145127943322150582571568863950837562179840158563728774595662201765882495841046205481023143440030190017120167829361797432471477505987372058672755277296385057237109801417146682964953812063523322752211317875953024826613772468383035412586284444982328016786524230040853736386869341587864174557644216514943394466064384263465839128477939952849174822063964464101286272578193179634524795004510932408029076473889643356925771253364323614402017180121221411888424992790797658173822417842835495810836557965463658775107342707860399547529383067904972572539203457526082449203406246130921937137203470796118694754426938675479489053323175377466475906305830107720461809862446919599962054652914193630240590207051374740772902975305919669126581790690094329444439410794702880124452918555829531106166241194962017959595971427467876455004231461388800760735141061801265505458246310135731491885238476558482337264298166288981293594945442610087015563952901277577884216219796283659741069342881126420315323734809151982763233857177426044907243433047222610561686277430432055878996963814717075265461481074946801860042837795916167662445828423575744782282811564037742904506571785701482584278299686882748357039489991795442654131495983439915113318766579683546449886366480245068171358612323931814792046270396920990801716547958806890579550107235105409144634123704017350959050740477823127990966579259022924059821626929657745298157915570558082811035416807606656571997615387716253733597447391782709937427583947815388214217711641520473592996952087992970133982861531969897964504241356796065918355501832469323100120816941763456857572872593617621202559665097574328873510444889859560502438824846579662659653025782111195472530133652632818877500289086864384647515689746790410969731516893265985127999376115447656354481834340939281281579993929121006759580932683492166050575576602495240034224312551789870174621561428664341083375102664834477599469866024860919194786270346551408192809489063283551712023373041242929705168767167353367775134685113997909737725356836199815614096384540233952480819261884696381933445466614792156526127882481159106149947033551012439972115954102643485137208328850950495486669189706506296134015279662453476671625927829250828885207805214396943387291390559036237124630315470297218741337689917394612273853792262015127201377607361698611640869412100151626865229771369541742578347282853717400743138806501000530914272148747374659807781810992981940738659306199436461957771218078346759255812799972282578957585560510422092536171268525163189795530340177003436395400909329879327978884992183346347443671174899123306173840765982258042041145290796333768776369993444670411286020697408407066379798427876379821985649685557106582241164380431979008263770277326745697848951948681554073145539129857450712209890388716526202854406763870408367783584106455565363949685469951517902486469107037653202850897833279564619102617732819907777718735303286104549303197650114485599940801351737999174296709589121284510343001802246087105973399967459240796592397479413116431026638321797899294953770976322678318985990574979315299571847381146051896667441628657942096309736621122666865316385826518212698005002926850562922806955305642408714060851063004062322616456659223597543554878581262035450603714737012371975513140698044017307935962010314376563014309956069989175634059519439364150086147255882931347730827173815869864916462206212900342943880432167621468704795014480256120266529371896740635542119410789258171297988367696019033198011413308743881158040798628041660191882024223172611224887647744616923600494806603795338000777025759630141882884391803710011272685555176827522109734193740243545715902783225759161436235090801609963570986832614139020743070757469945403579282314759301540215522252647155497726586830378229602648446015401562815371469742469704269621126263978539986847919882286820192403476721138814695564564621112528675696609659896733419615899349609243690128314271560220755740312089354971839352015563784251145310169444716628236791667888473589218087804247752347172840529286569475534800860732271251210961541846446214604254067151733009386633171835075798544807672045930081179336180721725471686595615420786770373413643061660056480838824244229957623286758663623652816902028395327550792960332084939426284215569288680048277344581750311169316342179729551288050031448051319064814155567642426043479720000705999848313564828392988733145173424628447723461309791375377625174311276250598481639516348384097388590728248163746960873474764309817761128140717573887363480790769153144223023078560592361366953510019826273997713420656794312434048935809339329583037883565344383206621351309692064514145590028615933340884936735930737395215884730127952511089690919871412684022138835636711118142568221462945426799720808421263788719940025400254657020811973857715133476991822735688067993952150975508553157818969152266275703016068377315422467911459500635906738134728085324198315929138185088476928362139317171566227323905842993394902338367066796275656685674683540242693284486672089038159599855476466008407462131530936967001339400420394668852610571956761551917865004668292899869445364392569608783034722919048761271929234623856241500665502526143495299704682164904756171425713224098142398216530189048902214040303836146102423989489905038991942768591251217095344615196662672198031245666609120126919003931616475221616268182970928354538562867068586176487100270944441809130762404625253754872546559502871624256006795190480616062624777467869214120046615937019110813113325285261880789027346455913246994269229920564287119898652400191164644230037214879365651072032855146565653727409786259559071501362976278734717808380420807025806564146858375831897974504933987646910103138087604554397256583316826004835125170817146573837969006714359869690739958213078576451354403350722281361295966438168451443782178397698932064776792166255879244536244612611886312229217667802397160088046430473126315112604950761658432730780045962074003036585071007576039160018452818646566684132280546899160436600084732608521333874499679083228300422664558524613470344185830984304699937203289445424424963322688255267848811300727471813125358104862158575307879427583935368067750187662405910841811470948562391215057822948839730919742201937289081960052026370980334971365867759913680601453587297338476588579664424488665834483436503865834140494486283711130753625423819995898859385150068378433399165731013403000080751401909174050317171321514854308222452813835158612271011379015525183968454100070990149110894006183275283342859888995337201055808721885261451861939655567409989497439880694661056207035795417428949290127704464186058435287339396572799297417289936461316669146910595474136691431585503085705140177544468831502606612227721697918179611814261988992709660333230081371363929963788404083335012922014550533192599626090512734078038302604889585775451703745829851649735912290155288933059901176620337724430547945991937413898138786371410260109690768495377970342071343113362201515952715325653579745691501033873213111214497851793579656485275321952360695823656079364991565301797207152014555376715964345895827622522753564719082990247286838678746457390577373894313123865701688207651198246848401054525961550873648973053352289981300436906932854909982257210229959599485426207593264985722289629248273021121011528410299242901776252346981497842638222260785589206420385446892481548668148630686559002991573095249117393316628448704001116422844365304808895980507230178768748995236333910142712209710716713254706281990451361699532492171724099131731836149892721959505057719123701864557785282609629769270086459364535824133117028158182634240226939011298657062130097644563544557089932415147337052603675043951647517740914734872882452197450294229278096716674207565579078594511587599128359303648409561620525021550914079463649188559659757245468535598111257295123061926910369439053469867768901492160201526354940027615897723971260803817839423434244350820143615951101856666970168486823089432668726645695417159497211869760520219271916729685043036189947158430826355813417200453780159656973910732731593259826004849658290254512121642927940329337224460312254804153210107500520570303313742484062049980348472407148224430198089286078289536570882049047965998766813036100671354480972127294859476405045462711472703694434736549696334197574103307081664416404884323401114942441124152650670830061148370847682012663663157429640574977458692236840457066858109454766844639475948691889248469131810388398646095915033287667296416182323630942050877569332430369111579634716418955267224580663684537363233148239032031199767429945613714687994151055530131083986185533044199228887798950177454278905652623358414482501324525619496704048302698737191513715440601533094113368248294461837197182053536603144891323105760054997657914005998169474255389446603255241047828939821987555069279857163092106217230615884228532575037407736877381258104379739558997680125194116898474167740478713093011896145973944913138882250283412682055572658304364512086864365910223248200707542388590830724859607522755185475148185846987642335113749453037449647370453904286574812799422948765651609881973993407490016926607845593593329055188468676398101306195576297696636070108380207245386939741109955451417442221997059139037689500868561520679036467478214779000926007878721479178111665789586855458154942982937503881450669016373415415750971649117890647108807583733644496997583448979734976246123506636652713627806908197221925759676578891898876310770267162124056705899115031708028325951248623910187229384285141366551713791158194794561939280097396613004426876333189807632882643043815926744176489969826827719292134125077615655110822773597339607620226926573991348427006702316798558690820173941254681580847206762592804334226520795459667165302813415905926347188969624550517007361716100570652662625168983639378638636430080584722473325187504960712691156913733468651301095143530845246633043728813880917678276087341944672390235241978047386416217175694612950064458501809912054845908201391637943025330511038853119418727001174211998014826295356820790324011727496655618690794220521193715657112350662131304655216720742400816267884076287736061564527596994400328657960443462794239341704772784856282640326266589086827255331410720505393291432753756410621794168940746651202456428844880846706127773070078464028291598576569207162454417184301134386489272580323968064215371211203250353856384762471131826722591106236909447169029408122769190343825537040748037978636822123090249836267736749734845732397819362239641812673269042544292417209717334450396756972734329743703431948380721184387128098620371285467702787898725183193047197822028163421507329542970361826306090800446354402055894684422603168679535030392985135158383150332733733849025774522091226484234838426730631457472215424966144612082478052008196781023440375102239715868986760366379864542309374292161841964811540050705918730403487921580460151780359727520660521391820026861785800045907669681144852368196232780196474912299515923805771362777333523073350061174519200623734911629994236754671527036723330733702824044984620139570664735693333908066031603266013940862700774002798481343149188993335183902152205113765750688184552685148482244612404668915690946253221004815360594558618859314774508041569681423001920681420935876700877448173042627363911549393816776827347095036504862163945496147174713883444134846934299270678225571280620120603986773917250923973798914874071761049299303525399052756435882273427414803826538243998835523638402491448613013265422277548127271095092405817213883451457841283750345041646890776055115635565769609541227183435320451157294482488223452838022905918198297028105461925741689741516539024194215925090586079262878831882119089301972256296189413789086398063058410240715338338863687347080650802354481695289768648743115205444779802194648262497856242149781404869241929069385457711577591519902361196600276420958375651146460410251144871065453104616677901424920548256944964819188487695803451840561391588277956657476472225575363836750577468908556356447758563297709169582373831585278864488677094377087305788765616192780788863019673864331055939967696955405302296465993301781918798702449373989921431473955597047954100208216715959692046830631852026030352532175544489229213299775936650680731346864043133802115939285841925802607721693352746315532925449095362870748307774066369051162236250613825361971494409895143055992774936688500786376114562908521525859102236032006128123940782332524692686508924571913205694727301976084570962097260219889799000589940484400505289337929987129045432736108271632711870014691609704184516254714619415154272988701456437040211130832494616362303300471289874606347930359594157820282346164726599710430530754039106957187728912832834464961621195557542356773357633530513029228340051063572038626431213572051338778067036318738394887450812917403886161512038938706284431643383515758074736991984512533794145270714599072402538126120707934703595789517873773228702242932159636706304511630894325521211849214789445065855672586104187436787454325244866103321745696620129434910758121199859455168697205327725339853231568600352886826356777376566982318193089313203182085289993353090771002112752719821069024572602408149569345898947375289707876598825788860838266662067035847309479915744120357478727044866873166688934098988716797299752271473087714292172611822927604973671431034609744751589147571600339833847595850625618180367617931539580772250267974452121460100478578794895045224685604839295048647858270526586707716387787072830065308343730574086376064801171249374718551260170283212077172576277884841162228959169093218770151336789313189731028234015353246192623985505958628829510174809335905081897433944834198783137038626653799233923941968530535883641356602158936399992624459013517413004371354078082057850064845407998829412259932451032509972362652526723324644691964114793522371190291995167290973168925324647425717890318146345938310423549621221489049314423870047933737856288606255943207238590529408130818575636852482590133531402522166497402229031840602734720032214940019127564902447610679910584046431961568041581790433142466343078643655296741130647687802854255529256697790260394497499426058795885075892576068089173938569339126218182809096695029008731134916704471436331154121689610602257203838737203035636612129086990829160091022627128823851486031633996335255593943129307117541902689891790826229431403198370563542848035717953500621955184413301008229869850970408655189709887631484451235786293859866075659022973153789456632191637637731658250721947557162274345866583696746962438770628018422148642411846297968350964664562206945723534190477924330920151134229419429616742608100096248334994724812154955801368883533851211033818010829269731915102649294562259784182060269496032409268945773583253563543770853437850926704602704600122858520457009292969784168360526059805310032697799225445115244192384929120061887940948613334203579220327917413880241658181174265286866262186071087123918602635724342266227550738572517936597179018081896712977054520188079710861338902170782237424349790805929811674064298355654488162752808243724305086933198373545716750318451612277939867626926828690373569925218647549700844856891221676107609994226009771018372434864030930975795814994804085903646165684800578248122884986311889128607955199943648334775751452401686395327865975041710221683689476607748975027897484206930446064384926717832024523470962128461246631880490634441251614842546403239297322775517858777906801498004235887477338269580493071084508191481198565964880658772529471672564435990524495455405299493917301818255230390195334668224642533528371504611810744278205215175037253720588149397105244444977803078361769936674746240628926580170186246051457723226411447572844267185020972772430703996865017616439745827361529869304757053042957484796496974403559468528897887726218816508582539591799302073674404629000975192415102011037660730810170001251185411044075403329125544539753395340602020237318462623089721236784671105322154455789741455300894242267959578337852173346222977677646686018185244421656035708518839332158826190525290129703607035756271210690439104776066634764277701787755815130575601795581021264572034153991140897852324129515198351396439747441915317665374114695994075548648442903915153371713003144709038460342962237672149395142952684620723462250175296002818174517182589447849764079962759286272002062750538741685850243261781910858333632966119377609618198522595952801419268742187016638764501809395920621445400835016202098117452516020233867067380239862358254460366274425780744408672805587462445694598546569084724923924026380444149171484836393569675338366392450533128132131796875643302269323081916239221720107682166173025490580199351014152675933901439627605989211938476535704367587065935540448741545021069647600104074150304415535745848457485006104887934682654456359907831596966118299835970963473009658391366946897992445126302292586553106224310305956065518888467233308470040691526070715304163602968596930175325142678914036290877130646753341594059701993538979738713641443835521768933646251401090448316635082599618415152291143984565329381582834874185048252502643440697298979956050180819354168002554760771488851930739157160076411079645850091970657091886181032532971509280623894856331289465005439350193904745919961470710414816800814084003559895691507517307674712209578738060214677323767041130512251342052922816937353962382200822264601194733608760041374447446096803404406120520730154202234846161595308854194767371205539173378194831816719106526574970345648158037715199377364695408574908830463971513227014368454079053425513599525293906246884152373059526729584944181860342514958454339686185252515220151472329479705079660574210222149890783369833758328576107768742028387998604792744778218844356830996603481178340401999988050389414100183510877743926854242975076909342209572599854837178241370599047655674663195443400852597396000032519084568945983554058676718685169975495309523118084889030283704006536871320861082105033541017572149391049060808037994920453290248601140553431417116414875652516688762295276960885340603102317571563932409630769478757895841252293614386650568007603304982984521048531540662676801573148015599187012478611383310333292540162485954102940513892363721521112752955764068387323512004887172420605998935791132790633677484080651617052398875925475017649863607567582263792190750148864505304769424031319442371458890014386590234679932998249341968687045899259922576257861317333055744472575232261210585474650221236468402595234109125118097156039750687873014682132380200216035484649912440430036581380132236443300433711947266941684377042363221169151115015482754679209110228453372379173997460834798871331352089707978568106845231671846621051772748560865709115903374785581883535416205864238312352996546347831236900365893562614950983700208163868385807468369128799251117588381644192861041735460619608485725267866957311647515168499615672194706240132663488805148365186434805169302133023132361180251799455328673927895070881206723800330987632589407444555308866740460012356164016944799161308267095976367668135102597009646900116964526999107266897696144701601269136270608728984441218980946051274269763468172008031439469551696193685537303417464163797039650115166391383822297367648308781481486218086731212952558668332668626899833376038132600426387972016331540733098111347823570573549590338973858113979527697895658929551719134186082804189696137960467947949561890502478072837215093890534869698056728606722518532602236483700852082776727586564271423349051088934391937111695504275799539022236308379694371735117304489250357816957704392012839998622523241686149586545107450301717743159781186739503242007315286414397153664649522072228695873743113288144964058115493300921475815458246409619739492501274234159117065600711942278052544770984367307552082140087746998250673249084280360870027649915891588247650610796246892642505426457620665868689635618532772972268428755921748093382518456003795795868407852560430958027932870991692304200113751922358076548850880415554217928103651843995357785665461723519074346111156317902336137709006995655284235429324740578920964390011565562184783681573085352342428339489920568733823198945715160389418333878403489187869080111398691957228305000251667204663059491748993783806784552838160991598347898094512384710552487295811960376027723321011491995146577575206955609689208025315977162011134834031023793171175770931134611707137886956837658287034225970949252274536935259509291000456541275823364509074359021992089710835496541022461069695963047035698719255978485021389071715089593295671702631509007727111778299701710259545395974675051691637946158509803996569976617240886229622183654589164191215656143992495214517277724855176885582365043944571322713199031115965516870959511475348234452823907190837967657310644035080953716720945631166365763605823370957433388778424530286110736396608900427576534697256587203306900617154925478150991610093602951507247497054863969169905276784481935994576122653876529117837594729947383040458998769938227226929990212767986002923991983780680411223920574458725861307231359261410300077004948875611288942187697045093854495468800224638851637489278340560882544804458812547461401484501606681623268686196508333269452207123148272595725856897788072249871326441469459507801158637175965247334292205862054963812140114716971761156428297693808977364767672512742830098353200934099151950693149404226410912485072091823273813903788224755093361275771916410108993187777480210258583316879084355237674149957616615205972148554429746949763272199568984457592272892165653426929234963978721160035082395021687268811662435029829141570565519984885769639550309920746471148218675431409537310156586944718784074513193352728261098814945455487633552319920958086837269442723254065899764427492233025320507884256297222787603046039780498577425460295941841201475298549681033154670533969829906936046412909539412080132300705175688210200198197697922588742528611032503482934864868343014985285490911864989521943104708192997323683214514543408210406479672490560953121197073767899080890704919138723233848393018702345259732279774007896075272734784450769783561808371667156284405343547381070565119625696219429887505385136990755565988411311474732510002619470355357648955813067623366528907339108914694346770315278904173240266957273942107367291166316253669595507185891196999795625271147449143637435569515956280546489103985670927342601342283886945825299310461270763433675560241827174747156205742739240059063214880206525261841127373790241291859947406162574875875518346942068539952825440984657271999772571082885996425343477573317911503375434320773167552716341396988152935801252312461366900110086256407900858851913979976914842399125646587882793233327276703958845086853633021841694532558318430563258833594372409189700757593320234390399920852088391722504829953214714500911452058080622096902476191048407910569822163227396172248476191918011123981571655055239671063744229134033040580009543156134481655626698496639076273960084793911477555539542571669577463078239460169580101173171098078528879133516012601944184321259768186701335423040761842940827483981594709455792066307297598330276878785151107979156347852395121812356465683816000901831180738334650992653495185572281318504835646677905411831588297627371106567704347878123434884377831159223087466825353247116925485629594041367321149733918743048277146534667876164961600159591530636602594468468943899907937498414250305397685230488185468293123192461978205676613329587988298899536039590530225832206259592760041742682970092675293403600028331177722236330439638603502766345211948795985559602527196670007603445248151292309705861387251722019938979261136835692745660873632219434873438455532621224357838428504888023612266247235293390199604337721221539591631416971735470545794041322675275404202187066213143268387322672308604571616154023179417416029567885359715749288854200149064437255056363654658854772909208530133429872405608317546225377943193045715988602638049112518701618830777605328119185994705532763399433253153675516566651814215780101735570023566317903648381138654192050008410992675056927418381122135516981949032203694964931197518694292573306933338533349003041748730905898053235785637626124529548427981666593159871464833537680342647789804826243996132202425414116213486641498065237534188650167246467163356387722409789309421101992409235488103209505012530210031394260429864450148022555526668879919815516410414249487790993755333528469552121068743318785716854784121143097597082172344226863632436737933750088608907663673734839000203259433164141610770562947681574881215829763437050765321959055244105024383559030474427103429692880222608997354893329608552213693606253846402065242517561839951313104775655222258067392146123061866837476217739380766895679895174088406590686780362933672909803741331165197202155716833378907689346961307439521312660858800778155707760524869706490260782377330416132112381781639073488664539054965485372952956925287265157611835651415462738644312211687991685611321091461946176994289736165701213217090877194143083740596346608825342778829396211445597257528030356251477946546142078844054543301518731211260967865625845537728230063232114110934527400163913341088462771603400297652210804781128083710854334214185723356870654986694691144008620192799729808998434875325685648684450539780514180970510481700708835072401026835320600383515990520217896991788791428340198405374447402323569764903739819535071468765632261670417343701345059895932145093233060828747091039277470908638344053364737496590288997747566659325614616053281149941784774156200544303892670635320397116513417735772123044178834932547266392534243399818398126728411470721956415593183640451306255237112924523431005540760987638823713370196715722583836596883527996594947236052733833774895864909453061615625259190196438729078293340237380722463373235812680826067719811896211759350105442520208752863682415562583309151786811461191501808197604678824061676253935019524214306696665584953839682755580057890875599964707582488941902160294018385079916518552961009247934136083179680788015278976926850535996515881095457130684680904746542352428777615804897475969410761426005515851735551156164803419129271568246417443256585907796349133764217617934844960734367706608367885941979249449117928470698633515115008436599207425310832006414666020885323128730676653038896127651351666511698731689861881278827806470719913091478671636976685876259553831061852766615022755128309725641222855048427013257566139866975109846726962365477014714897503432181715075232146047522246943025671012586687780960608854398652605829917464551955433602419224751319243260226658384651371898191303272882890875000155178455812895087896249496564832349066379807759235000234768297330494774347624739802553217237067805432167811368257947416372900410186210697612944275859835054543423967798811152953783218466674515426635906150937615032472297570084779430131653985484903224150057715295523959406248095463927349321134441318536324860084148295900245646891552642273300350891709508684702338349498304265630510527679256158499353314660947074933736672473846835760066016557604451155358446278339684567195116519402453083648811942529211001561426879767707271679703638587924553365915272946103088013426889342191738546015298264972900085664175198312895924576929186337842801962647994119311066116961373747556202569098770243125472159536015414973224325590972850733267454715164540837599388734972206755544433335154802610070575464048662505832732500268289375523084323105373588621145335512598745569993281674395380894866854375367026799619075053426577956517521608262695204976137135072649374257308494793758024823415961457358099404917808573468297525567043117554557347566494041707539762331366247689765823511130926972365733609235934689225466920227055930322902593728903046813778076786853794187492991884181778821500626043008601411917272219058812183408073670411115340325632975785068519007694069017385591909523835708004345196983063222194146853496980052315342843218723088157544586366353878844231247672733391596657085622628640196313682254162762283858231351454367953893699220788680134839331054483371745239181707747514296260730191603003150891082583697527420131048104838031290160630494944848611305731368295953718639283176058612836346800389211007647319038447919640158315571116984375802982968444820477507608797145710192468261758032992967894241693131927740131526388989938262127741255008208056330405670033783382949982286940514068048850576115433511736225598831932393850211013282573717705513027581142145334229180696468620647706445936340574363874634387128378716105086146659465681194860248496174784476270028525718516912374595123832440435661850746965101271073022104371093644012983047429736599386072221812808289813794937466841721580929337217461040582548115462157113945021454132726276026795529100389065882841514481551439486184766796462993945067726324800920223165862959356476898278608214803965150166601332722111165913757466131937938984932740499874007254915620222060219739156372686238848860512554234746462778284358564825336950816753911609643863263027310860591781698254985489926540561077959709196429422165362586248012022109121588270923225146674145151710564931093505258246761448776961926802931063563374265304937309640372490909870040391272422475749076699083021236686702338455768108218864860608982613943339801074484598443051519916360632613828881336624850520961843776532735802940818090418769002463590428558367844978981694327576770184946885609627855613475935332652329201636890990328014001232015936620910717348248725214866560213610114084444294612215609418645451095948236160203586166871696290981705928415818285844698426577597283569443622575320836282326730465737120442857254946406831315924973081185065687991027713464413607577449827366928945248132311026088904452408001861955264260539507011505494223916398339314448182434056125529964368670665922831049404357659144418434935320715537269684662861484047016207743146141674328969820094989315259256272577632760600060619867656331446297913976118723792106542361730500707661474296365950468765688965159392024127283535354568034586284454523600143479503291351558637165764328416052107195685623532587391591015710527611258861308912059368186498838012277345065660930257460020450184488428212269374970804848154729774744766178125729968816368695526470712557544983837504853525195810425530569345085050814152376529514127568225155757060286281588271344548859785937760426246478992655448493257060258850576424139048080031496393212472169535654464683611672842568067593466295221064415708721909599754420907719715620947164844319372312087513513608746324649115886495843902479469943847564979344822268380912079829845232564147289920617401608408591810488052039090082960537623386470652557691978175389291482330302603780350809583242562079649240227228913043103645187040040572966389825380792668084231831551418057347341728651589419848335588251864838010197860841819230691990608300187653922587148193386355163630977709430449608461401693966020741183737904333806868822478504102013691002708780500379378495509938388422935000876693348112228011369028058537725692219535857363250785170702758122352817475210512188978610275906728406728815686230675252071359661261719383750030171007027408840426528105381982304762028406936279724733145935330314154311547126230219020126091481327976480453265663587117566005616801663404048476850573439003939850188951846054944294424216125148239767401261132260268464779366936212526584453162050569254206631278569469305953572643169745268268994549510437233118709114646388247426780953791263109499697158897062902112704282358820649216499636537249876128447830777189149898036934976934318708362813774986904100270392850518998253866506819572112410210662750265706195332793174255280120991231976264033760478235784945099789851034351026257325924342487791908483156501176418981063133786391554032793921773003677378595926583682588909815563493731142879644615811686600422125889251011870261971742878321151082013742468126954501187111399879762083973209976044010836791363770260520931819698561061033993106156872868612908187580159045313956704246254939624507519816721925883978006686284908292383355547783149934980939064227085444961464797408462593460671299602345321657140840753813925199485338318218205348891903657893848526801141651862203158252000036211479359399382455564429515695252899529772044970599784473647119449812240641057977571919308447218519183687673639334432600824164357749093594358681535937714192058585715521464349811067693624754003232321635160937745173752269230756334941909748325818715376829454355049344866865608293895916700387709859804558086958960592252279322552652660985357524958402009348532040237475879806841031791991082563517328970177251274011744731903960626827793055287712129093797685385697742101973621480604911786616352543633515781099808135909200803788877138283150090106092593050618376997153673925820706280371286020478731473019054038586138509906625320308172274963918458792267484426785543591914918080986019766122374931979334016834299038493315752717090405821744781602488078685288639626340781382186811255874260740895036078724253990345579213559411969764080105301031797607737721806062618484147786767865493163261698737954203547323790269652952091585232502247343081591232516353260959411150116530651862007830925496910784493701560057100619955562610973929305391047284882357924051702530533742157137787577267384967254834834603568699483113229973416536970445775759048862541989732434535699029190609560496216710389453028286634362160654015470982356766819401963962132051169625814477633611395575567880605029147251396380974794289764794965990278206011958004913905313300813253733552468862480301215363497007033570169408178259503093249234860721575841425878667218340201818906732807251421420282184944484833255732400126336327709204419040040696642123118085382173248266440868367140393908154025362306577442619868507398028350965439994267072168745878845700120916595558566771907672216039977593208304273201317259397375799510539320353912845911173533327681313117840353741906457636235935590461686961762072830981968929696951014564520439804600662890709233923977853949547510773993191911365947517589578785118622449092315667270566174470349263168140360971770200671268660002998194388426645077666295446527022913439979392295994926870495198459691005844314729880454152992041185492193478043342954053102093560061611607454527193652867179667082353349908580980711745927449261045263693539358891069683249065162180297023163998927140536735979229643527486254768779857467118662086913305189816697520799359762786844053432392970550036667627538751060379782029379769248150441174553858072383663818792692399974846321789270250945959056745948375209550917839360447571235055573202852933535534915213347618279273050584542628074719482411721672873384964953319501580989151934364639559769032209200071269447351434462042079873266196112233237129570696592180154378352850288538024072779387305272059657407780886327292053721213413955683635738349976614373620150622620719674547538904120483692822457276203969443227655676102946418550373371597941989925444745077381718731691478736769596094596616583744159278382769371273944961684531190360222741310785292323890684730439896289231426011619706217417859423341086850415820027765961958165657702605821552028776433349676294341317124237144710168818522626842419200979056167382198556064039604485137124729179943340342912664843470014540447436702107651670727091447798324090183070430558743119199948947092015472161393719395274583120419638285245826149477768027882404831799445014475340182886338475334794878998642490454737605071039350468268323926551411607835613655490053850798245573570278546843597526527599951192857875030787730002058398362102187760770214808001089958059822000131887829796260613909825863866519201347732177283279969934404126206942229850964302591850277551850561586648022439208777500823643240737964452930525468759932468336034502071149747206580716521371245746767720382447658169124759237997577778929786728657933290441387181534772952857634972740533247252465812391107519739129259538335378751498365110507152988636052235601828004978867754443767664230896843544013132116011960786252543544956822861148979966821277984343051295146603752576967029608899999204691531041697222401537224833241335221389896296501201609332278350395271013711846825722950304613122268863323477200891396806477346655571845357446085803427081959063722742394482145741678072297576496602728854583363566379470156589465305162310220156767338150081340834449612800326204974649961603532238448531224468738556758467152063566607889756615807601686152923240634888982019531132145251171601194246718855778861246302888329002651902185547845344969897645694981065195987481191091411360497376646910178083244916947780867050723770529423962259379333606197361353687606828388186769944111835004887408443005368086354095119128955768094409862790254265868388972176163380357166674294423119901423150494244740861797239615437306309524633918032608868870285223362345450167933656988054619396838758689788256036315546139693642479075541037837070782383552897436706415609441737109264675088705554779766593965043622379968742299390440775721993531505010616809311972107557143850324300729424555915200861694659123894742320459100724522970143578993480537212920799220687695817076696821430529948999953677398115133029578916273536811219802417814795275994213411041961488107000866792036626066760886323193743555168969194573412273900065279542898484295886742704962346111123210140182707738590455488883818831723033468881128741492646160860948539741735937408329616671982948160904627967327478236110388056831143081045783902690021322103260082777068382029193933425713513507060767122947379482460322572329226811274050434720767325593877548436334110344087255042402782825068952578881051020532205418009089171507423103164173148111026945762320525101660204615423890190184843156649035405812024755655856015365607553677516990618255276264914558483926838965635146389398903987787808798819060284459923041422710755829671582799179551207885818954441460494864802178296409575079850852539792788496409898591003365110733476988246528557804706965987284950937978427672905711027233720654833672250027281845905463587255333946172319450545970398224534780569528688850867724307304792770003055922843046553014338169624448749098228727712084829843939033179744590937824408936611669592849881591862479190657336181195315908664574415293375566075494239158810907353476460904056423946349173848519891317955788103704793693367585053560964098124688954927396549280685326111231431298876523358275343688055266539064045855734848887893028264454945858853628196303444118640366067591454673480218150036516817846805463130657791545851809387226268676281904791321406714499158741235097189352121527585499486327829990108388619512795817694024391784596110389357186801599295766913096868926605508284871290038975145565226433339338105087627320871935207498478272573091164847752413468930947315423636739403326490527541825076017461772957310339491507852135841544272235809692697521700383067815672911078264762431936936662566030620622432707874088127021469265972122584978903582104497719177944168987026472138435603089816829159536370909750182467321256485734225923173825586181758072161362734102068784411007341258353527491584250300799023889714149662729793959355856615602654564737771569137910523522055408645469496466351935849976084575051514371178934971547924622816036393214306182778892389184426092169568483458994634686699317969026874121290238854583918960641897304521117933028342052562562207109508004986042844569159556295477203709619381287957379237812963782761891307031879055413861607532746109677061212016204668316082842327532293862422187208264431792488853739145323377238228790387007614196424281420491937844821069298712320217520259270449078058901728713375770787695790206912295644705606947946363289452925441027778733064725782434276420150517039635053662024915536766812740986790432606930379100783820542734039344169756871767579868993024114601303788369839583984013770271824006520410902136521214338657596269026533324277627514621271121197125744760922837015487430963559190897772654495654325070890623004290424068147335171240151874303145322036602606749803766515422298637446604808184574565982791207682663213477440763618155154031278782760014606779092194647560661999475128823836573035326357353381947152832548358232711064130792307718051396927198729914957243326845265564869273847845008615421704971644210606253522818215373103839579042891425660030020899847673690208251920909591744507652850814124955380565788335834864752819765497437845696246987901133861876912785382192115624955356835349221938439173765907003209556427767344819710665965533250217551287400715388725315305062609741190354616035758149848624189523883335354322638762714410641614920103405472726615109445292827683598948357260774300212266337192042380231853632904875059704693365350522265880217240166963455139167466409785285776598114922444451509806717033611459386091198445119702662123201414263507090867441518964010933140558735301628661140538136362283593033811944306522392389165952842941495095902371572260289984165712454762209584722135033667259805357977919844122239595798201787730622298440676239118158517072139115058925028424262512849687400491435162001559252125106478331784577354229697395405908538411502831447302872331407964181444656399266238170202445621328177264049855438997464716937122640252864151232385739426741441691735981025005958236533443793972272104175945879832371766342980462085597819924746092629639688710861706006795823692951381581648033746232328997837967083001245305511617435340788622967608110114487707025737494103956419468482082465791571412581561758766962263451139036980044669504855813593392521710433272683276309037200763419189929396368949424361788627304200160342744165926761458487317688194323049567119915493601955069698854298743636139835746229268898145920625773208786237223115728935938497623817315217234392793531950122994817623838104198954284157923884153505060607652924116534066876798578688648703714976135753856350411223418050294714459544157592911095752704203367228704024408664291479070686491682091867961838198697399521428834831300167725773946740751081239265733469007956504485867875051689314865135852478103478395521069121451783017134988713540469314782109632939550028488288790342518985517303013265440774260800225496619479255360701563092637739213015491943762607689808875444035268659391243793577828885283988131658563567514841086756965752173203094218750065488779025971733041479846037339030822831337918024585265250678599904253712817298707732602947825530507534068439236842135914067075006503512896474765160094425529202761122995216875114381659838308646416755288697638608427552058955887546490496597837570513719407788655674105967459808088494953683887133884584289313847730492599617897005251028518890840308937975041976427147435624704186067681095502418549216205307168999218513913778424377358055478084862202210452350354785883480895812276234596923302415251724966986564735801415522668148302702909081891434793701361321749290904972867407162406499699221577480890026256543857721544823808424982227512067457301144883836309890130862384388274737386304517519840881649272782640949412562450415567125357174406254278443193688324208315335656026366376440410152148015428500661975707331298076471622295541276372749530897756614539926215788441329857214829741457440995974805221402550934595165900655425440744698180445922027570039308508586552550343661809305762429894653771393919814508448703559604970955075847924217879331871676055262723213513362429302486752933311585841632213032655342249035969790119742476525026400377688653138875760753473234835186479024221040053411987498390973942066115878416200319513337457083894688139637388022420143870167074330406007347854617139047444506824951971648117707591444494575356330088739191944110063229802836525322324342118636663082267291444428168199437646609387028483360354875499727496858548438858104116555579018750452840210119488404719806997537802616060189861881587137218544713855736049213914232517303948754049782735715521109755728741171491433909013980657482949474054501564401543472877666819000982102191268673701405088109441893609625246979787650711811607364015598239727592625331863226748835153782489891377003716559560274268474152261109082734776109039847625067660241202540756898262991394330244192058235422988139423094172080378409770183105166326135049605208062206293965446894603992682488966322886449042659143515809015032264852858669685632519013171757692185898755416956877176508479034593299564652430923624621524881029016118967115272497555380833817714147164285037894738396524384261710401307742354355564006090431264503865809535942450751421409373606697413604386077696912726877619100916806350909700088250807713774026019707783959860013841508134037637528405797125457489655134042626255006391460248066610078429352512409892324329136838314689863639751983398732995007882978450093513877225498715338476543197271325820610053316704391122723557023804903572329180488458017124453530158906454718891284832977372740937777294783774870060720524446048091234766788097963401537333938899934377783686940200036841086265015820215898122607815773285346024201573444675776227603846725652937604584017422588434683123196076035269481047659333831124566113844725744054403060781220521636414754420501321125812391077516801673882439104743622668634051071408526096782086817316396321638103632344056368207557752776028843415091508473571954660593015770366644097623136216487734023604133399377282516390075360797770761443584412578405225910772527897818034345347981883741069307266284736639448030515585435291938427778608032033158624594783328885743455320800089144516152059134687950484440929310204905653706117611597810690387670185893650228377542089232546713451820301025325199202537117536627343506043963264459149736422356544936603622842272626817346931663669010751327633484185497323599240777515525347568062307953552750981846105983082972529740436792671557053476921993728324465884477083936391047596204144285196122529701637179444685503874536488881578613520102248362024454075255204376971220391485235820522424954966083810099354205448590927492276852830491404939833142171423499327561943742128373056992858905198475980440182718412095258345010955168640449376797678461287965358629096871107427235184113408492492359310746142378511641020242124196022011418220087032822899370210231530057465799950068151901288553975887684178129858428031778569675902584612546279153540114913814538365634762592646878515071923505923465068234694588229521133154103239698490711866648895703730991378225912569371068002552800955379081600860077713765136719260701120087340563285580826247222264583958006672928866303367647992570871575231096139541229649359077084433871159779242462408692688126544593953696307955251031137464173208846562392345148810834581154637749879169677031724426491505336563682515716357961414890955272326047251672734627552673023262704396342452719027395059581332335992525589764486989270346637963634979982498180344313063383691560685348286989150788195427824685967028437220979503461278727319726298239611351615589344714020136474773360430065130424781768754571968922403332299550704256573352365751430604927100898438328443287857759087727550411489398459443556961132837779510755875492212899001550238949540262117784324734819917991418356138540735462750452067192320450949364989286718847969194295105221889575734581540107803132691222243175523791245994223544334005417383363748420427443190593059509456013628842319239489489723630783718678295103751027961294213799146989378327455350677302808784537156585701993530790957867867285933455169795250834600221772753543607625780925115381104375478495435423854487247905589658773715675416685297902763350692107181464027387910972378068098349197887618080573204997236747436548735128114926887696017894195453780379549639037317287527493049335674473033681292655497848608551281717235287855199423365715599673051067964079372027158613833840251609565070366134428842758952723765573228238032361031862575104556615566022883718409125767229603717113383818794436561790579837127822211528563829990969272190721922683107640986290617413976051484999030251650437990049939987952428967604157491476199785708798508346121946779906441059404979829915320112202999805670748234568581511229941886860268096929147451638318559715336195865683277503966495203007609597836174716466553825048575124923871723666704624889011379833903811542363454380832435601607997341146375045491226383584245546552091787488787863341310885242509802007578133788824156362336715009819622117424635497157455693333750865920142738049979027030653907540395597785534090361258411080671201354515414970363578587770919892310250493633034242488650574853894622663512232229461766226275905992877993840039950553760116765201459615224200368320618724311375439760189803347345236442869339555001250398569162484084105232560991341684562085498911533006995552088378408629741430958795922849200661587887210333523889472300779861925204902491884227806147059728662337258376947910814987805270949274230142648139586148261456195710765076016754063571688744341976558450215615200646103682472098546376353128398700358140726578746400583369157606073828145382370810866256363881229093577331621500729499367744597505630386920784155607375700721001822306077672704821516428211879687907552933123829048945684025053552658456885293596571034773672109307665916767630380918459655904118952230791104341224120777581059155993172504417725951978700360414152731340085742620451620905920875473993773470998704592787450550632106343137274678124284685406499220985074457442202405314075570741105171545218647042728422159945992680116064605500698640838119263964781727423290565292464395642024259841326978275459464894288672156905253623791699886353143435407997853953409952953802354941914132599903075454138710589883976125371810831512772274378907659572126415583458723321730869469698264640464298269862362538097564025544188763718645556821600249503285965023084972344804815714494079104449046247618644003949975736995924524768638826298928481813954440428952076044475477118535408836445829534997043260317339972849448376122320571013963988998448341038148990293332173929811345989119766134176734639984098241986519162661646717799131310972606373562770440626689267430859762135905344753292545965450936704413271728615120558440932382658224625960772813389789669505254531487469199793681997334803618641362663276910610228547702362847106662993024105449663019870471800879009466098730028001377718170641087598848778984096491543384948422892913157250651249540528639166775838783830666725292043841697103286779173199270722095394274770849471583260722237219660384548362942126855275432115901071807210046558007344587935402622818441585502175497315476750820850779536109673680423429406534476086795810080500233649020480951909501217129337316869814602936574070171458068513082474589910549633793130789776840784408657423602955458415746051949913357303495019725890764428976581841446905516242378879980277292548210256380585884847999147015566907332936004785959889757135444088027251471999623367971488552929606198765549400373133818513139416917866590221321881983162045675586332881337712351690681227177597496911663714866141812692840984557111018303031060110947898731691473905781636635362501824607975854200601581856570967477375479626751851552519967309472041650565168658949624436193489734417015699258614859713822637681630191358372091131933980198259316708556200283838506179135895914927385020719352431031730872195359497343470552146428279054345169363331241893413656111330184577225256485936140206907733661109739514760043571915196641141350660808508539447023782498503681901811096449717270076165482385730634105469553521888163024915496542871608452971753022646993403751602854474498720687111723357995334447946288876006126781918598527261684736504465158350613111334392779333565628683483390255158337533434262116235574547312931960972367992700704049662926790785738877306467881615374773921879497498282961664978488789338094180887055811487223556258588778195925363405215477911916415436502337598660648084512101991563785755809509080200326720100585989734654828491999804049016729783270387763086475699829726836614429650293079889615630870399764664348971870518344543203698288127217542280606217136880780320727998048550071855839267780096218719686799172923003775335502189375354226300604846802442690189408383528053280827633816709302759335518061678643744700560957277375575391297384291928356213866738740188265699376164243524616222050719776076911002558039140771449092538654293042194024858689047871354054601356166980701387493895627575031700286374257803736597443545775366447431122507121271149098587146532338257680552181420787572019890985047821926440579634920593049387592902258614933239028156513466763361583622418484058367592966788390018837985461071533411739982134540722780806250233999685177937009456114848631327193700588442082330555167306077830181339212936768147223881586637902151468184532788974068151519302799093199701289109743318489153609434593103072831275224070156821108482311951001524900469964331546422853353394573328081560549685544502356706449904747031533912666850596053944781444081069522806624694490568130897097661341017801053823710621138477620887884000806754384254767063644419690423025870739005204293826295971999330402638739563272581528025250801192946057803951533934306923824860635841371756305287665337508267059880649762519059491084829637497335367499183507867078294296031359686631259930944327091026637636536006627355757607622040091357384967635923245888787400909490105039773540790861272471081434133026543176237586539000245703426066607363918137668741458681026437951604043963127439691752878277029538791935657467426053810770502621408714781274092036592289301559310876025137954935188985963188841610354965218738880177981884798367194535942426670640964517661917129502113136555104733904732319596747975786114841427454323767341108351998018038227614754294228119709158377646538913422064249030043439252019124332713479052881822623877629498346383557208390977921917271982418206686731762280430825667135001548363415185700685102148459002757030020897513927805947452465500162988110973439587919414452601395745128642163893004379317517153844637144701222897085046242013061881906800606571361962579391632413541836392753190615019976244854911119910650249219868956778190531527562196081769330301890624704959846311509441010627246275805598829266937504296209693496589297687216556556959007629954759748408795636388768378458413566121154092581724032435209540403045731017392114306332776237810241734377571954838472975063701426139694439630516662947246401099616059336690704181240247938962590517082945836078154569690383083575496436260589554251996888928185232435685427080492295487755610595997519601795300795615383272441217937943322715347792607693440981735069175454683145269587172443099287899799376796404700621277973150626126113767356983494971388668511947608944950572455576118931733951206632828943295532221097906205336417481467383205883082312486919737632346064099326743753303993061396270259070968342462903578882557033660799909138555364556644218241273714170571602384556817129107890498172431410028026298073404401055025252027841863416411475777274224928632046062796345537102020071922100206218752413501790506343730132925367161311664406891622056219376644152595045839506509477541024209642546182469916251969763605445040797072418071377454190214311902039067631207939918835990062205660346309149315609707230357479998864827744448722307407260355456913254169595188293186373273298723620426281285205261658369824546779688181053263030179253325420062298947925614748932303660116081299225842553131809801290771448695976630694214364671122209109529864931038457138073909424279253241487559506382002368669572694934557596237024037606502010384476035814237038626712384776445781412802510948702326120222983674139795214303265260927590943294188907933416407204391284593341993486514395548249452999547861865504789601840882209611547747808580354428022868397392531814059649626560016779547823133303860459738050897565988554774366223660664233952367256089129159037928662006799522412664497798666180212723522736290600081584910147453108095572858717086226770720579851731670785227147482506515162379321553629824834682751311283866632357865461547290132694768026267185551342820356123061589403010172011107955227779091795971806890545957032807764833006377267460387398519811314715728391660927712492952359904909557298964797833250101689853395788795631312635238862940381328850680690645734794734963786983575131495863843356156184799726934303345420655283565582906601407113953350840419519804644854123143237704749331539415818836103336529002661982112225116121720387211003259084143349916899115645852892717316295104753807658748631915712403602184526496449558041922860131276196328334300489658218060282914144324396000825712028054181818505380963913857078152591083246624978237567537627582606795231893234174047521011696033928399566214929928559146024937704260476763163313904081067995617265338391245697446325071159575192851858997803150221250506788769987692875094382017654004972079801541154003312424866557243776472018081974669419855604556904913955100114641343643641875311713354070549748297688867699397086977972568786375840240771819205329157302847435985427253220029025696991295305499288721430412891559490506171691860360380118267738504826299270520104958766148244169925596468713072503092230753015115343716673640263866843679746283919099157678826823287309248262166171234608119718911504062014548671522497184997041112678698289653849938588372516222955480143121903676369834678824636839267796571765707539124897969183277093716666781991113133784241895229059102466806890896041165330530155927642794186477147019486018361460377174735326378811532687485484184869843922777502517705031319357407774038750620519417571483797008965842160893131677094045420833423169356984861625224021629942066121209281071713337288873739024210920873546669732563362923950009588929951378840885487989757697621173292884369192288178924572272215688973950197789772292750883361663647300096894851702545738960602696788775250102166663715773642764655502106371890259010078779776554121678062013703721874022820333034890183663498209911568570406094663751543635262916347112150728572991569321680147839102053953069788496409250024378695848607176332441187933229582372043404291288004604710183137493236401250368305060393107669068542415634378266696944174130672928230137402244184228326675650450270828411840803836774767478349381390253854717304913811122672516163095884795991198294960082543529451751083765618953350837203526639631258688925207135884016856817611675321472496267110697157458034752670171454714921540589576365334863968128231188527165910026718263795522403978968421240660431933008471193976776922164069354861767729238819151652520056189129377828717422304143593856306380057478035059108419278766360598700087530272175935660498114314073411380440754032000660382987092852252734466605260011908481369934794440401244619603036051299392221489497487757714205832733377220910081366402604810017370531258446743253508513508204493483409726252052641659777259595118090956012928168382261093122232792510902220508776994704778787512269918948122720146767991220641159500051997386749580109346337115623641866452704160943405087460856588636750910397499873651639390954418864315170995013101606603645027884991294426997940173110032396610074092794405097046354732600600574992987584325978974850406006661374661886327608456023277287653065826396738362773327750795504914035376151816245001251575960971570954712259426503094997036017481037805772269836250954429262959278229959914794723702164956450054932809911288115180836007497834013581193072929097286179186216645891033475402076510416149655565491944338905055581116717090476095597552087181263999226384822978241574923113653161862416232894550121927006277641887083895930770664293678851599388747173279890569169352359141129770230288259662252770760257699113306938766820205601759206796925047786196568979977343939373676976556729447436606030860728984583366651023364878065772201892216937902594458832665033521060292776954609809829961456581085287166270974738763936348784819381134156621181730812618068095041882508342684222793518831062412566166534449547349734677501468904047452719900486220733611994686818669985891967030877836782014981531337201245169435861731848714441451472349555762859881353959565479858900755437064476857702944156845677553131427853464666412290936745399776067896392720700115288286286580510012881584706842618031148091852192582803470067636949061992740140852248817016964170539182865378474976049077001640868709207108788742936790241835847918621888335777272527999183245703784278321923124464996570405016490900165905780562254367703531301878823022857166873237119534145894449378693960834021653198205549293567016586476573755127377328567885829654386271070374650742897919225318011597467549029036622690834077082650491691308766222791422517715927457514359484792942361917363091957895793911753781652217989774671839125453872455571254691417710531948392869430150058027991899706187073732756623618288499462734758560428146697892747896728868077871548369225632966708915194245663937660701422862543254649904840087498631905279782670685316778795961444167147127490946372475440961362848741137588619236884817018884499944940619469322343424693155552635159408827572765372786747926771778974257692503185001438802250214959762575684724853751371596023322030896775629729846750758962665410931244537541154365400206865079724671918788092410832088106122892613202541848363071235565976684767345714596480719352736926271968348594631824163998566343860229849767813560571913682858139375786551751273510922218980851305139713418164933443538226434898280859049968975068587411423994635572536425367116753188066751961426284661953971518485867082832598320618707504644196633329005392590152251155858373278913640412671836559310009826048977123330492415348341561625447949894844502074429236050594082705335240020273195025768635160707064407950963318734403282223312361683273786200910043383395384925300148232360603024309226835169930297073647723012234060500362000680912222405703609164988807860087552402303696044892983945744696477179475779594862400479600764676258525346161393230294159238796867642025948764927110108927227973073925144458751752093862350653488436939638854011842658946485671267886081321524302661821593649557006827263159148163564725985338841630177997075750316919496084810856887866082670189622307839553049538483891211419846719813906565292632024579945869337181517330546953012063662367889949520226935088151037764887389002700825963487574327521335514934206320437567003910051526720204293299112142171536305155436520231061051847825169975895226343040728406927853100349360969052013454300775074632222253037133203666784175023470517629563949989266321396604849790367928361283216346294330937800275736288216727965093873150839802880405942047803663317880714002986243043922862857427280583495979547240308145233705898581764523642259083324864759394694973752670244963986006329647159846508586503133755506194715324732595809102131026861515706767293172655415188796139533670181636628352161960770155688046607456329680811721567635310654895751641574648516838049248381432316922579467810535574117317492312801405299544351714462329492599861258590783008311586486621916372522357708112214255440566933484843675341121998662894583501583780466554668224239691146758975775559817316687951526376322180425697119317164176810831122760796595690040824926621749639774198243193197343135527757887627150387905736222949635809127285861865167423748636314581595228027995236366399040295951205271751793239617401881840057258326403955560216531883618849948811306564187971487758885849975553742122743771703524184905828726878604108377762173620985699618927787241521885971455429820786787208324448759614809082275955850053943707038093331861222092708705772048882642692481289143569305384827907229797044238500498542975759489292054088882450290458628075302204842932028035941887762968387426713351202923293652198171762477678889328611763554493807731005400423306917511367070745698121382353804186046595565265773619232386485367888489934251395673236141751837143115964502194410475270233769807972654430403469338193124005496298768308159984540044871951622884494249587995495687540355576058068319829448344743137608656226165592151374232585210166231965202887188403789583262850896473777569532402754857590431153258616577875385395057521000502819807457291733439519693107309859699799944435008316987845913222623286829400722081111942828602278479259134998373428599775081566817775797187535220459169024682277255689280996606987883448296078341753162560979356242241097781756765147306836559480460087824830475901400405155928720094542923247138121151307108034906651398175274476806647661983762302941038439219328751341693548926778887122655139294608592700367091256547985019670133664671356458778003872008101479137048111290375863057370537740629879192285684796922264699295297416219601567581686009077521288854652817630268012770935565386502584487496083043161281403128894832516149199138115856111802357224020949406966404089657763899086152663422862298177657415055862721028033222256609812148260525606538045402008574002450384587187084988314644729896963476143215870609077537996901037932335387885028580196327661253323227140036763814424171856485698043317411169918942209027180645297455907671081585128558413097677565323862548076197780063001421297571148166910753390619032183150769869206572894827996122508042710656468635629000371654489447746561478948780598698643691024716954817247073178606763057806705026034726516084830099450195817072144082402928276926494316035256392458326269221988849579414095233862951263806380875781392465935301697066298553777914669042703543248182248716163894868301536983318615212238221299379247456144818167899486097297093365673647485091713673663245482125507100983965952617938291237745089166308320715750222272146791016983079580366168126120970765347927759436936263500260719808667551493347114405209614479989407740273298694701473523027452824893043935790108484754307434648682388118207223278200795706981203146054201768868015707424570231302881954403369559025633969937773396224131579308214332981513926974156351184840393501918132315359993434305596603464813637273718588170518371382227669025902115589248691677652457959111788879819077671445699307472149438997664385079688344380421111139002763891099207108513628062677794290197588554891853420284453966444960125865164882058803922060653720651065189902659732555692956930244282998334548038040475921578952426768309133694543665934758402020011769123424426189752047361557978332018714660824077612000959568594634800087182155097523299165573313189200882865568855102405298856487012433013277411300325700846077282428755718548790427276538398625065327345237945240677394047898942537146340525513995083705627222783259213029866866396618362722415244958465822074251541239504811291066197367683332148968279807856086320161647332404226522813147198005730511033922512549408356885337541356327722163212716559224351392206114483128653381856354136128098109873233765363082029140617814904939867772936406865622046502420971161429803777533489304009107359714041512822940829206150350702590641648559982810981051047736255956703132424183944760629395897689168169851952402588861506771540740694248903373074306608586356497780746080757767617111511972183730103427946510476898077594395094816891615349743861259930690203187894767735428043712230582645166798475209507457247960917366921367649573684359667087744339382940586929579164016875748354136865574263283325344701572717155843878287584393989587159610314484534839373680545980549527511877073096441675251465871844447558420013787697536267550996409956853788019572314025062005621917772245123106954002883680452131493668793413231679757598317945272669838103530856153596855518121640128758611963018437731645490913658773584802678268701017526018976278186626614467874475737500867550254549370451194271716025245541882215945605463737816157876494740893574728027283888784449086414079243708022597950903128480866164331636582540452169964208941439941433702937204185652896191799511513563621767843354018766207601258478828543702153250168625303987093604253990839607882537829513674973215363353226831490096673193516179960839684028603719523390611703158107613098429506197824760932575037954151236037143505633963529167899780873570267608927795016160983267004902009552257969979725623689025861610091052522749604468830480564049836974262998701929659427534152933913318695149389020180380166666450884421213919614207259112902721701082452644896126617843204214949438127753926756369623570840759910045339707568943116744238281950157399391820186517308261218885401201188059772662783362080836899447382415109959081222228792757769540952124552682362919709522419888669475363342557839488603775632102417066007052424152864634254362634069339455086237978948184759886492339020269345305536823626129037989789588255650841798071078670563603536497266840660744429590249418565923176980172318878583098562992029642228814763658234633107061421037277568851763268279865667098531664067265928820543266546000135321122013236315661767071021409497536621960888051105088557857447187589395794488240211684806659954260113890304882641214654568403080319729680982888198808996295677381586463735454195875238671403771926423480081286439537633426357091901173005236802998339145142431078692231733798632119407068025998813256154561175519215348393704518084490594119826738784276960546802523082517403594959140342194315204007420941525560488261927642893954275688514873194987057366320369982211189124872479052206714113697597423536918126693384779406928936683785437875867618840942389220306683428180154670998159276464130478199632936312649768427759904579181631389622598526514216388073083466691788175611663419009951481406212032362982449579448619654332423396143702202271258344691704257465111497060814257624524038133092741997747354395119209198982957094222256993533504071448427539278988029196939837196328843071652897113761056750761516855695806457205937133939174411071983186133436536309631693486614067936427449537281395907023344650165597588417145203336869998344579282866180620970564383720187504915587421221730473342416405971900219836457753656992800005448075301756669376011640962118136845144758871142527068827840681379640914887396626210173668557383252416131314182908282133768243105985720058703609735113187201032468674219909194014135863190597832440971079387330415022373337857027016333140406639017605880012172501495391725972839091802507667390751129979320911380277145397213104893559265270339289434843403052572670388180683169305208006064718269198016678361521077535032420440562053603277510513553619726114563951191288270724606510279865826848762210056220271100491552249447615916285037831519226946413988200964193600788454715327108638700043747913918625711811616358140961813596051082654496970889759104073056371061037669921994668521050409178383977369361749359224122268490620633098390456292937559343206166077687171021524718269472312339622678703710307268523911098205505794763279612478679387163447034570235260566093906532240831518003028265367967683548704632829453098973845106802902452351750604376109160253684684482152171755423334618686249789813835398538784669086149934448126858758113888737714502956344947842283818969389789005334111878970042430868885339862161687455188679285995222759320408802661253369576232563638365940551279430666740096683360071965954472600077509235367216042987696185020948595682748615016807703857986625565060732157130001337670531030927702960446667333162986395427797246414896388275392978095217113568690893419182707116392764616723576286941476440988011549256060810842731765299977214179196813918177867470254738462916706262169930841469931325669794116578057589782233896671217671941341774861081146103803398306480060575834576268219679475121115150280934095179769111923833039785667266766300807141710405872929239196308684200462947823578109376100521038984040368480417842655119419702850584473860464604815608882231106122029553093218482348445886035613221720118928461893579555592533069018684758295056836040219312329925202737947300465928664968267862616041192781809696973097291274334277698970031822414590482636845710339023328683930790076130368340232548156323603028245213081648170802526274115434659428886923546136310507323923427738997743117170657423528796988004730707213723973513435080427773329606142752003543561348898678135225961423352715195483030912022178903305100569943663137602523746570524846081329351974360338035073813708886782684180488824659606734584510279127185377618256703168774165026860149763098374394394252894864451130554377165427505971501911353240440401216817719896224339891245926673745001987262391976313930335068355205764866667682327605074151526020056434613362067923103261689858436725987262839972711604733656510720071381152853416486553757100008059927097378179187546961605737394538131352969620220097142467611594496599242481153255355685402972716267595036446183963879621966199222919948957869646888403012532362514913306084897296154888824240721482489987800860861037446090774868917674105023076245648774836743158747151749905918971194156448255391541453245244091998660271873238275200876945300450233695772200983791405721910317348548822761830894175378091658271939105565593341516018318912671058100301605016863634592376935863339044772183720872025668405581140642562917253501610871233688913439334284265049363144508416374167463638608089807440077312136674795074152888055094631291880602805722356536661377557357423428431875648286761361427375500078120502898357820883250525790585529338673295760241388836406451125085266024327126641490030668293515738211277086045281176043484513296232622139182175393663764859519649207337608869504483077015366495229823429224598918603549162364322814816871452121969158923330409778647460757440805980140126375861835087362186515935960798930418842312902769096489302028947254754126569370274913218316143500250113922320392531887900961515018569001630065756007646519483356198695124733312497801015841423260571000882382376100227732118744248291265633853119743167567924410706712540418203662016663040914759217464143364960650314601621348339174123652909247698550955085730380888142360332849463684366453089923506290628515425583526613070484269969654742882218494016708637121465661584331680246657227699739556101248587839950555434511938659028071806800218055519891749598403778362015680331809139517312188538240641419800556882557448785324768171165219303923274317818207883469454356100124046428575714387672315042562906773860216318410806970444794661502959244408872975795229090280770689402103900555065667775919388365104210630228640424944763117099922379003901076927458124502956078696424326406033209996821231660362395209565855796956472930898652220107597072960208998910415528789515810989393994638295812858381706669160567474889822928638971416772566966551847888709779879285703858550751454512837473315282141706898593855511085304803724354721973590750410908856538182439953229405637339940571670954595830896458996065553572605719229907326145962924799264325721768545799632145158569104305566015329487863510027779658463673546395936099139315991662318256177656086456255299880649642373341107227378266183781582842413053088837378646140017516771847733674125505134885155464750565534091156112068654530049469086431784389884476609479869822403343772897470182766377695729853575357200590345158360835803150345323145922883928992171863808813187331404041490330342421682875677034746103509441086706603128045391901671395977588386286470709576173085724965649400771116959067646581285892387179945417489718660409738698613655608898286806660185802731169560695666341247550373188288620699653807160070185490236820072248089387134618571681640691506477441655416950059538992145350624244318034068233063471099530890592697963336093750151094494000501417485474626182113020765888354538668474529906913806996651038271980381373207444283844778393616973185219114724497598848538394240147469540301664692342390543377968622392511028971390932041119343529989869239187846880147018211799997152702480159142605415246391199189807066110174015195302114962308869740948871181354749759625407946649207119571108851524956661941757291579243043646312449029371712973552867902256304252808807180577983754041831155479309574295951755880150425979806027407550368453507673817441796394778873401124163338203851622770066865634486175904906277596310388133339493189340657313546269366529279640000715678284104562766281958642143047710675327366578739500028419186966114995011698895813762385327058165825277118262514797042046967896608010701416247407537115339424490504693247517026812397201971461791026370406885652140293694336196493922614378506521443366335998555633335979263635768058869898550812870464078590554383801622545694427481315116111156048908336037112565332252698716469073107494706776203517867437713092968623626268477134969118897367649194979064005582865932219006109252062749356422331204273780048366674454527492910544643322866207009758114873316369503524321309129560020275388220028581813112786628526941929404308223037521121334360206261689619990507133093636411980251114041621965614194487039248557696112687332303887349493160439211117004406441670499988983722640330454343184394246858753163354381547538718199870478133997364943911123452468993494444527206212126110904908753117077371155163599766736144053317132591311873797136566618850174919501531624141777272941603361926388265518986352876330412145683461617277229367070411801709139141209758256076965768607165345786278019689779236144310023373040029619369318204133476621056439963360149617085677158578121613355017552818687208668664791216730634885987602767386879264692742276643670200943679234625722676475888374356107428645334835379805029711377873915364241771996084847152951125308102012101775310957322667908356539315488252839276201809771842770979774084637218112267864958879028319220629815171017656276887427383002801131096260717526558008752995000514589879122377533469869567091170140266154991429386486811999840835379012002005253470005102269724685708533487278629809043712251318558981828522706402547321830526635820555441676304868484823216376367992100614889896737558578688401341361468772859153976081104120698740932756056577499302034152312111730310671475194902743595943075374723994205998205017440564278267617152988165888512991650569291854070647687286415178138285284230448668401044502138098050966527581615231573786503820075059916160020914864375313637113056096999983554599383107228167459742983165705486031866235880581756119487539597873048003372119205430789136894712652226282402191165979800103563751650198269735092614993487318076973957610474672149050170622517638615046959799410900968503653835106953655921209283683974053645589494347342502699520696346253734121385582589614351401590268245504201221100548453897071542503085141885438774734683522152254161669224433687559950409561767018700532559870378657426575876793710796433263370634275094383134426857942767922271624260479453693831861347569608247774665652231958763014125109909394350172812860517321531880276043654085967514941068592152664319451766973835777944755053334631426991415137450315292307996108687403755115145916286642065357385894372302883752168523296953756438854990023557913282311218097278235053441201613224693810688782481900650263354575206558433925393165533698574288289085832799116931006481310667838277312836524600764532633267761462371035907238468523207997425858270578641139515897283421300796347232703423793573548883381925004572219358556747217049484328747083995425229777731134731500277784029301163707311421359207300519168971424550072346242630157448803842389594841235429899646761871533895375757360147805318490774527645387186798207127208264688197079638196766467104031678234301731556158227634216597459885299998404932554532820930089837389866380701971126870594648820176597829043062378121548694433443146555340740386757072447181294441513403224432107207643052880251282223593587766998276929553602898705786782879049282738747934293621586766886502497201623896743475195869097391419411036212120928404964281140809815807853116634154162896041943953616023417201571724552145483738237742168339684639903711651729853816009315863375324752776930261598941797556182539996527263108897191189932029310274229365604202896380157689980059050708547738779789037682143541058163892201526394443189514699860721597174918359644967925184920918238161655158521188566108427251801552257716409345780011199042857265914274067345550443400150835945979765018970525032296936211846880832942407150490989149225799092097774504609992928855614582152735048288266130807861753161551658041135776435888299941871565695922843593390870593208186089929990555713386929416615738904569695717446815970087270618424742703936872093161337383566400380062119680019674054274094276723177600723264238421512383872095806016321569068618231439173492865157595907346186525396775996399131501201810963423428129885725734054862349430809092251812904079928783204119722812723430805860085648664406046549341081305601263566468756378226658927996413848594136612337879500077453874369252984615856371484046608993855986129249858591534050798863553474499646473197444691637786831120506892241928693266734385617664622027161723607767849994038573865054905904317019331433787761605747745050380348268335856237968946331083846923736464083524306003456023505669497705614257508526714112213874968641025907446736052737025530760968865045836517403153400840699159345187215082453629744988630175653483009410595959544274257403818509068064142760762465766428724211053333464631457615477782655639262462264995038792198139218493135857566348745993681374101361691769787030753147723597170782947922563580128008186920215024505688796496348760002825727255142008814022459968524133039090944526708923592916927640198648105974105550206920844845407827798652228835110284017220816605599485559558614253476913894997862223284605069141459841325199354209043030869317510827742811854705587762357223819882277474586908707361668939940377861095830972781978692857970648034001384333534695046571428650468022968987824905861763065997533294456977078422788455125147014898808319284994960419400737053041058042916460464406168939426995005081001368918713253297685366780570537991539345248647571633460296410543053796744729923390452441351992753239567483417321424329120169457537344670401587577121410084432756070329137755970849025339692953579203346447190582955822362610115946105369950118955059789008514201503909365953749206905815962172141691222854804712699352015321839564001966862008579815202737049635993010883075296744042908099850467603024262348359902430941061201204680779220616061467010375183102671798886000991016295124681922915290993734307321934175202034049439357393950805252350346400038478512909895174020978458525516506301759125959022574734529034455605831778705986859316169537673792018430824616473733470229417551691005993499192455719172170419783855471049676236756262320120855649397023883551529251925603206966090039213213793342376274271934541167781392589686899678629666679018183527862619334113654194009077986914903849468288602849163259255903951407422032900663284590463520269725786502804113653511755277074996716194422991731018013224251355061674385846840826233249097467229564920145244139685989833285258977822624923067839244331756514158011385315162957185990593124908928262810466307126129798508728274721087225777074602496968105040774621797088351355930941394701785490236364535192362033414223337579712372589704001330302994463857983393891243880376125215382904702095239190884552006082215077176178921026770260163177326808828886240121507098824448506779738824979555624828178965091845823863602414195552803101133327828479709848630607716708544269940054246177369908610098343515598085278721675902790028154502308510450739076474233981173047419514753869810233624330615431829291520537868077763970411753737968958867238778148235404968263938272442272315739312535865144807050069048356661882623835510116114661481506307917898715478660642286237049831849719040799870001628763023214863692341314451529342228603083538170688358519771644421196764071072033974314076326212817893067240701945952647624864162002325036731304045931206617823673093680898727796437922836434711021104409520283405215669907065920199318823002772473977189288371428287629000359358539530794985328186400762661663326877120921768612625976508741997223833957884454841054536218869669127294736442746558081094674757548590703000930865768303626763153631367859747287130456055306612212120463616230023680698202824843170486268650091487911653949518338615210531077996211217005833880918148912810718099218952281340689103189759582587689389685759648344630896681532097600295678258003844627283178338363304642987531917571834005068497024857263864182963749687889176408324005174094934230441787041975660496459792369728324356447270552712095609506549173492460354070760747467228384144313722602297599183980633092976993831848087437181301888056289928099476743388027294652486629871156487285387455360938851139628392788285808070170958233801340594273637296639863098256943241703672469422201187747333789672514883741982921686717195113720565600310185791433752702590492401087061024637376213738191115095955281307981143556559685658187241016213535762614908707010042252411503283181698049135431268843142051904518752818394980082791354186348858566254135200841531121493613135869011676517600351174213085934727265660406530981901194900036061352401621864459252777297580240366321802929898446392602360071035665893935785089921810314266404203861734062493991894637575827172462762692842623034248721946493949878015105030253326131482224018341922503605357415981936994679246597141347783960838353836726051472663002195583749928418005182561103213241968758254636778567803979668643487563677321620795455544651410559649490155953331826692725264168944165139026937352011741354733860579211927423031276609154506685164314445900920943323683151101560267143430889640699876375723797478876204951598306536088578053457167266059922123403250572476798547354523085049591276665058310814036484412850585420154532693535875779424072658717275172037188536758010041322041629167539391829439626395139359782721309284664396759129997254130321160430454750632549435018000952545108680293458305762031872131919878527545901605916574985391895503854037239883543333666988604628768010214921411375450673541307567177039236276098219499259310532640577435006418259743846068067840931589179029825420694213336963449721448051631301822095740432527600064697125090344971851620227557457340515058063784422827909350580166583837357491947818046258354248179891668687887533998338298533960957323064872828821565265304145146763295514755789389819545271344394027761348654085897482026106322503067830780464177279267088917797717149404602088672403609709223531854412741693409752620445751649427443661445131005538874829485678004917447392249469382361092827152222820572474579711483311269549625645547914401724813719027322707757394968224575699806456275597165882058382531904949675608384025846529004670361756884387178476578219145302335329504829411982367508609404874563035336854353209563792052879631916160645265750465677512665657607101278261754487845868597091205849883052390951838061951068210390844786749646891836800372727486766646061806981955242973014371638936160372957186879966386336820061361587504982810621196737165283313924949379688449221808037653432762101670832547696434924078362457802804382691691094199681165467200281615502015447353352448106820834480713373563303692787235645543997375624453218036070523193980068459964994804584160195906374858045554364129647185518872441020369764133525003269771710774471550857660667902946313583773992343359931209973840925479369539348284197718330246211250143460271418481919324694967963009677096077166699750602810207500007315047304188768659706427097185130320718739153374610049383432098199810726119177542219499136168367860813993185821513812527258288212223659244140364456326510288190419613436819502079066016391963338865699068421316968999417717231158093608055286332602538744216475547109973966574293168665406188242303677006854276346033698943776435641802873112126766550298823756591651701485525318572593513819570418682824630805967105450514631365850357908951986256820510725258178985802734476621251727516544103625735419054739107212308453876091901209973951309451550188977540235096087769201510598197049688509307947907629423765644873972743315578863848937728614052717750641521183997858573868274518849559651241051218710367819547814757488297430562713471822786757067389899063043805868311101684866585846922830602358684021242818782928354591295934181521213461513395027871549383165417301074816278458312295241691871471621169942986486035060977144303651792723174657950720667999181289383594257916372167557322219114051101243677122982576950117999058510202348470778380244688721767888097709867394612158800951219813536820739087343049279803473161230573861036035969773630587216569491911909038072584150917410977921890906732349173447297755519083041520337535242904577358094420504482400205861817476014044827645645013580791482476480514651843819622538713037765552867038828875144451416827041471758460462364543150231176474739204329256797709578080859113608672115301429005957602316500778448053587258114792259187064116366416612042347448131549429646772354386424284189298436480779071073660269336492183435034871599059352774317544309715739888825893237881827871898277363435186905971759104535622620468538034762478037504469898348762055551809216285775960553739797980234640759735028484207662317643623585661176272056351407074051490636624178794260863984242074989682877072994561618954051273667285192632811248551666080117289518368959891373480402884796093034938366782618225489396444334977300987899992819794649174689262781182814003360358027086797617143706288572054054560132945610764377680757411765205884668483484353996075652489809095061967503126644781173711210755314014148877960816218038403756469052796158853400343969274673656106442826338588905555035019006429125313685126511243933918778719973193140513660412794158391546373328559406303641343968238696430978011720762575789744040654901538636161282717322446888156487073894474371088411153433675455210924468633821039893963121601008565527661824803181584186410468693161398506921806395061053897447671440180079398257322274198753635734056392756763800184218862606059484769386782823906865788527228467111091778685499595907323764730487145219193602494170557518268896169559781794433541389610527819683182840264400093837246783537179959577555526449094821426696169769629383998441648701619128710756749696740142823543353338034921661845799192136853570184932577624018947144302074922657643568428945151553043453761006332137300790142782587490918449775679328103327632686020092976320620603552583915638310770681391433388940538079209190302287740581901327620043351570304156897524486296646821948730580800599371937327875401973902862716099588844759104764830603849570598714171319439346095510572151855957363129263127819115630036815122412468844554631586825246697079237350546195558030554019677202252175284773595998415997298357708472533116352689759168380960222593617591587711721042135057980345381955706845796346135942608530964548599135002333686043218252546328901758750370622218855051558149221728716916075281958519123289590445181746521666730233374384835209114300369089444279143313206385266715278957847965412459078071834629368109711100773003915370458022829849536088809206411271106066573178620720050007008624950413775446123397355740799206675369641416646495061744753425255873579560528692776181750121709703898292124894790698279465610334921690748407831381810343000544044936654281977192855700461598375508588985810850719354418162009856776373953425950046787345455238535792276647964222859163597539042105440459117073286988694616947441818055035072336595297227383181307155427606794819869117375603109673852235181278989292527613856207293063091694339689526557497625734792632608605099133614566477982929582837240442718220187462508037903272692658851144503035342739825608520374472847146602959889804405494298897564894449925370930691569227655742976105708046354918019274378491256684655105655705945487827509030418344629551656518449064108985004159799631315265292992810303331514908377187567120357147591695448374705142592561371773565595733730932414158821380737319346134830566708834597415690033845822820023175459093502037292830662365598935552326090643548481113140345747495979440209642121570874997771600238146236070563266871985297624134911491835613030785881240203237767531407133411523712338799834728229439223522162279368221681579561677935533839209533334068085315307786280074902151632760705496217100593488457516491902262526165326289006517078496716725797895330697558297700711873956205236262434311295803933334474616031584808603875872063354881152519401599864800421662553236801294496311068493481901629706066876497093011545081346339440383238519786947999233218983593812195990860567246169785017740082173633056051581733755998041839417302173823596739190059232641917929142775652170249439326148746747342136172741309549229543554262725736411497424409847758846784128424198370186187421389336011159696687341413553144820061750524864478479929563477252970378460301008587250425261501753905867823859724885375323723457831056574561884237936722468368261270436157658200797257436239416011380445951126038334364011943276343689224542767571792778426642967650684834257213768520757466776218374469667512002096136334035598471525630854173761107916249218432886658279122563132818756716009219433866708506045526355425504485693365123265164838567454978061303099424651967129427885219085743499847945947704831637999125680997728574131828216304774335003750862026390988845706995268508995304429976453107694192834371846186160948803512311049418595168289350273615182851558864634744696590786554020787199887479629202886840296356803288577584707670312551169052116786289158454114202700748990550238620005068425529163300509979981994886583805666401012015776125090343095113734802781072262577298801336782873061397710023531754898448455316796250374372135064765587708751294054314602384150983472671479888033044056373843485944309210199749530145955174488760221780587565417405416875005295476673856703386952601702727048042073038414727483700230182567836636186856297372078136433367781388913158656223168381982262965292884454591385776467754334653825986219920148560440378661691618381606394509230247807920225440243727998480022315894842991735356608426903584724540235751690406488802731180871473370247080614488347308896712217370438023888513151576114520442187841427510097657742278980454631572766325158812349927897967380966184285103443720062358357802528505759262971428510040101393910402728662662422552936016367041662981757429505511013052595991761622656913197788729150414935574977358092085691085447848380439156582299181322052345728910175880932031046355845041139516719564785511159338454349976555113839008452298825420531511704610805022567805898118499234354881401117037521551022717392650462143247189718866911815749841763394218855202441864809012130751231847269763158104205101500196294935425549137579207897847261120271431205128262722498357354946987965863420401814622158169594160589887751283431312171176707307050382189805930194117273570416387720304351823438651171274637613330119089612185783368511004507589610958723744025340657976869636009466147488681468385648378034703719709966902772032954851635688017437255161855655402821050504385615424295770704723448769520477840428203288936327944696413966966769083050623880372837295434556227736742631814486743403911789544278540383525957825612204602524333035861266999849344671185964064584062705221334978141065147463612945784989049378233326290304008514317578898358320493888003731343048192803964736503169585331776028433257533731647471117194606506425620875328587312475198913580413316232709078714452108970960691530698175533504370281274608100981269190097120631416817702713913620268247059404959714118946465652360757271968916603500582050461479005847259336151828787566461327938975129565517617121246192954220455455521701019361674812790061252387086739256978792720642470504018822384801931662182936079436671349797130118952482681606285922095997958952188651192643556971194076557074931241790634994078689076082655345638930632072237427450256084533830852982610603574022159028898787342740095459703480175281206218596348186888749721435737773622904707005937150220524206889483138954661074661819159189953440472323319316833358842582832437880021242102603481352313693794735549658589379712104425065390774307946172528557831596855678143933403340830850731667773643390000178512953513986816235527597185050648657261903973943631431533837166329536625959648097381377538879153100587446613762409767821989196447793446413150630812567931452372589907664758230738890115711810244332926431961919649470625401592991306213706913982216926195096708590705318407660098898759783226179838362315401617743675113037213986996913639593198292920407498902795912918680419228895523255095774024584076686923091771093118679244879669982345365081047270899943452921324170540721039570603906306269939104095213804113479375499273788075973953150725910535989121257659792546968940729507491090551073693059502610653767096707731609856009989936055504340244107250936267108935989685399492093164809568169586825893225809266219173529772629391622515531289944808840877211921013996242886284492725061665521106498691905348242016809492397783162221170640210757964649604224529932230765504790132523133669880469613513960871327484288943041456445561360804324621696609484886482855084450575938311063267576368617223961862805540899953031648033696894699578860116124519150742032761345975221381780301492425626994544682801921705517359051063681730004636750531628598410555610630332654726980796200217461243465250177634092773651904820931423897099050040444868400700221800936444109524542880171161408367376642865521471851346534862860819347033902760486941583986376316415433344001974086707221765376857295115147037766271210671422946392812963670399515760436490717494966985758813070221081174469012745711953972267435206886388311782916419056371517752693684391189654748345213832970590453458214663382166932069950169988840045450136021294887105816407745823745391264130156293212564281548860686797272250683328642891561765144692503104047977858936555252247765853045128747868933302316527293379201822571584001618417884903423774932001907339956770241379763346866262463659413781647023003362809210412187547992511644680475609750030387039852228184083726103538444357378172439561199999217539667175213274467191613606492188428518285950774958133393561939417275252992490131320521727863500962752915601547733383348455031132676199867165849955003347505040170320426902611794497092108159580598088058572695327581947357691314747126709469521953465537874191704839082599304248390646756017143328001519652583278944208819353537708185433216783622486772392458499762670996104397512946603500863920560248013472897936485110746010122611816616602011161809943933273188950554340997038771942717495715883437571576159557004814453392090608869945172289039638732351544427492233526279713114369682417359772160061049408292191208629081332987485583463053379119175605107192420992454821168238491213631118492664690414195819503331952530731606066188806230339534556230350410472544606331085626134871044150739264792516214640954483737648355751744692624242561360823333954604377537157572672161899120520622798841513267253535989370886897160877189262168789879519273432958430714262240081986320549307736097855980098308134287842587208622568386895790535525306482367365221901453018161821367010644556148764799472047028561004289485778493099056418883685599288584627522377015187569319859339257597891033320653479173670545478272504004481911352611985636167059793343720553007300481645016310939500062326008130843148522660030815359392384581946367901848411466129534827582447946766491015482951474769702009938565590954429183154625348390334766441085083641483304541036507507215572305901123398022377305044030382651174996093026689087067554888334366903689463479726342832153687892231885035234867633478457085362618479628816221656741483120061906943255025498746521875355412606311587277206889400590431872098203625585250366327600908821579372697685524970202341527246942295081829094190753088750850720361687541968332183661094151962541544081966612850332507161740374735359593486194662642519728987438148906530214531806245772554356902845578434583360505123813355734109449912996054223816152001613012111625963448187633719041518215434916787374371862299761412315562783425355088339415885263847667822226551250205528696430099232569855929110283567263664208433214667297939042366834375442351413646838053326714615133710475630712653898547233752265081471442840879290797533593233552769573371479934257180315858646762368572741524277436793436795227343519606634346179772319626878249962727426512731117932024876007966999994896267106758509921462122828785061453235889907674620636403644912857318970121471398513452314145955373684121397473847709801138227345105199340643764760535227200949184880984765012030334176343002470867541093043715000840235347080243990243340160990624478241338465616514713530016324901076045758542598578857237374998930232772858402004009493663573792648799413205708706998130570925259015280845368413390660495321504296487903377648518031766144777247097008438386300823315193124848865626407310203240903341802289420494594088753002591217547065498297818036526781424683735822463014605894847720604430431124745728153648462038149036389011072582893648881672559429721262306097054961517091738192016705123127197096685230656807178458927399140100820233384002261863859569453473536080260814927470392757092912089555969988635722626708614347817100194147028096117595139446310271576424127166000683124407348699188695346704992005790431869881351905646495771260569038925309059852051146074535927147240179605621166922019140301102000684744882309141767775457326176162750474237794567889470955899335833894804868829608468123415930481358428576002564347146871695679369727903337369420559429975619960177948015801837374162418318771328080835767861056135365988606216662360859038501033509818043854071665838751611997095346019862635043016618826580495738208749644698788332260982661214220986842284514286221830242233368874669764166023872683887557021256922868199087175795035083672500484273126861563747875596570419245457453614317143881433587642653212203711831456987173180060994127756088673676982201840402066181017657349501149294023779088585952589580683124865073193831940585310825810264816452701406482794188640685418287205751383379180005980462463070100673694916343582025152692287209910143578431961215069132385979070691503724465902686751193623891432917244940900266534416489524613274862446905047820522736683766327028427803428231541089114522527309418933247424648177826883255664676718696214225753568916153539532350427196950125399655841463108750165507832993798491469192500136220139130720209919365599123652525581067881414788894288690955608901068949172458131772364492049649129879015973539420424505212979321114557021455312449069592825007295331263284881636505929717303408339809594567942374307157631348991185649035028527361696165437360994091403376570846274224400975769130132969516858877048348825440968867417704145385057541376376832088458467522210616787961311875768551354794120981721312358233054986592074299580954296076461741882149346612267014919025918967982193606938255418386831574041775190860903135083908774177381808905586018226570811492904168590903736234724035487854740041558907101443763847458300641185684071306843416162921158201886122016914794326450615207542338419515419823062247898616197272800556949779560822979213035926167609473960248702763050316891186100895066392675751334146331135771635717545641165292443998788056389472734128754165501564476452461326142423744479167170340858457109593563778761705066237371018136535804655507916150458359397871950903381553233295878407980629868571377634987816523704850261314689224760016919221055614471531194437280543778720424570298883523447066412926537083047423225084803222385709662237769896068486588198668307684878597278857437858313181601648153113182263714058778910813411617882645364855806568496210937658848904707180056295812117260291362024147279001057715080015439151653521460328545608882985332912613348161286477854235897620741222462825581381777455570976290168220211744919817414793594541231519781924967117565863248443006728253589755845984014377068626437822494387001785543412652786828509878538686046104715027452869559610792507452532805305215783314399463956521312995547352634353096019868695988139891867828846096920142538168192694780387804673658189534153980775397362618921976225044598234653341990475272394765878962934753125499143712532649005942452126819246798337440299722207237327128472183864673618521733798082878401301570728749541054208372122362458444972630028344659255207614570983141973824228229111105903872082478971351976450856244763825414149413439189746525719909211801232660482162064814411471295957437685277856750923160889601202346450058431908558105604984575151203490284062459025313915047888303473925103157535020986658283068884128515329435156831331771235926805825140998372255492469919019448702280480684452129518769562154960676903318012090258713722390923800579669954208650908820359535513887909773671473824540376960662101399535036723758650348548715881669093885494807654137922363152319209199320890300434923468466260772499253156404181500084272156964131632469273210922734827355484186583020680149260683118651500675880353528242079168175453731986035935564148743589650241014093047807681711618335993338152847469936878242963891106269195327595317924991657096276805146886466585774258892793143778853662827345442916934422911584270416464454948895745451645295664362978812245807804110738282707121326785295643646873265818582954504075176863925430904372475175494297352910316585543031491312737840431565327141447989272894605524195319627209205345825254181926997931582007154397196982232302308656686473354066621083028545833778244056514296372238811591443333890146001149209410404939820420469079879936573095514452636556416681903739151510258644781448627967340826499584213105895128119705196620253735917679468530615346535184424366321107503713919927329831836058818121436382245682780436327384641271792719408366435406335992296178705910494076941412784651576151592641605719580461024043199734736494328451242097924062483656342978235232930087710474942394822005028183158395218930735617509827849126478375320648651786559917861030199191634849050295857554012549422699503638192701781097719698546731274621775022084951235165017309380736620820836737520651378007780335049885967693696995558202797655670533631881333391538381582625974937064158753602684078566928155843996149832154227384632238933494850764608037061805543025739430343110685784596131182133661024258725623816982436623318696681045398262531064372988845000552211791272927230588213181600036483010043928113554080551905957183854697142673848645942727526463345462832889753333421060886287396435382841076381471090510226829898736489139124328491761509471133810847031944631788882124125518564424149483775312547219094020445209609691852784712370292671748987503714647319142370154554001340395981068927088295573013152824758686424457644181278906928770516857689440403080546710616116706562941837614651968239432114163745114221846962433279923178269898020123846609486829591582041391247619545710940100849963562552687628079603904177388882633824457821584742754058974876145199957181350687122194250957323346497739816514951815548045499413577180691081263183369313925828043095173936182492725346441097573592184191201109670296938517132585392398350407753398612536011189408066812406590595778707869894468774369489837546024463645554938880894821356779674943893459030162940234172578223484868024608428911532244195506462562382164177180109342363669237608674513042014012522489201769667974908397171369128843383656350450684649285216257783115310681393753203589230866508916670442574798331496531001320850678823519536583839917543784723796711012107269082299887640985828099034595683564252654477647158383820593432731808452176267877646071558245539367312827354721764075061431796280837283890223117770026779861882157512391583551397657242192701756005465124674050310203607612129558924539193595965044828665791437986593681273481175102783648781189530853406131342604228078071297329362617446620396868836495026158001873401437174448347723997201691067954131594879868880617578768955996117999981754886616068513402347158142184465723212854522283714998706519964646883090168253174990291875539277313428225867886438993981382959858667169165295048695065363672400605971952059481578215237745799484984807391216407082398974742062592983094394042102899905371010562226860725713236151422547081458473634066631521619776286870720543440144685680700744663829948500313946171893923830274330264099727538870394259470307820289973219382233540507555892833727570116471821218873131703467219704616821686658689367186714754014119584510545399140527232508341428050605545199575444525759919895238170597829143349035334945549284351695520925872313099129371473904931998450832940200975188565332525423513529427363390417702542913774127990613333823423790940707383375780230670797515289314745275510722581538160249878022092469316893289269447643485410276133937934116901300634687634134438818815984792035742058471179614363620805399816746315146990798263600888290156129815110197721614455210010526420546297921832477181576348694796849792941880666956565919915613038349842219647568167714641970193183640824523599102353274064620418450983583431671315745877937923767088443350315058589245700300897467935694949316929793373616279162523799385876352072960413597659144192160773106465653724593345334606971434115905009993803561939430326408058111625696260280223097940416451330236866743258151247062028655276348370933795591597646848211605299303359837504187071383069548952767344918945819145660902331138244287809327862704031694457475506776684605133281651809783146078432813371322319434360619329359676146550967682899039251492533321884890214693577768285108221480606691341172988334343734169412681633614432178621216658483465209244976529603767259491526439571596686184930484218026174984628434176049774917200882996457467435780711922855113918165468106738840129558146189868705509425562141124367210147698917197310646163586260446453767270033100740695243309891366798479500040189129459281792772137477085575688719534820544850708522449762297813636749970363120874886430236109588741244239767728655517333505016698069618591879715514352556475288103011339045523399953381825663877832596570957218785081221918553775106319215981399748504119416961931894751735136299391984379547995667933420094143992357488488590309155353047022806792674710635088221491167535943848529252534224174343264401458428709308309096248491251660904346470401349215275984294577239516853906437678586710664645318386555015989654301521414363907967375464788354261594556696217693672588211183859638492338587841286736322560164042227218208565901588790354344423620478945003842924559261424356267937766418967460708791797159944361254639692319456330670004916934507621572056079706441803936334637305436016497044076757740120695334552474947930459432740353684487310454375992364124231968981318449592155147602162413618223269255525614345053666126952266872855388446584368314325147645383231472008880505858751044762697327155239138604028102064706917091839617492286843925063895790289419784488004045659507497883782733649535299757931290685165584186536251819991960696455261586135093992186204106275689324792523916710463721760732034875158944780516835745728797579015282844313228303013062973924433165234231758139979229141230967659827342298716882811198412753938673662356749354942490681740985103180450959021533600158025337400824571182055913376844005284586686454315129109091435909086067287359243171181935982870890650899812760151574570263482019307203879699294961072268974879726561286822966490221894580844494625899697011128621467752672598872955049526359866830660285879702723105051429805825970467837859171731225244136364483138702027357195427570835844325570933601237982257427957004254268984350144992932033905325341900219081839978646571355964891523863571110918385225466329992042558089801409075027080862956628243131181004066135130414410745441876888178727818005445751306664021111965514195962114726824039168840258570529308544524228447433022908830378637716531288537845144884723414251874886899094910174684566618502772832548993918776336828651607433364600692215402027389953799824889265116062660873128107066514651603587036002104923043102233265948718326323633053156364086045597219186499391475160898555546833060711063607655757459669440948436713705320450111645636222652319834973194833020207828425879020131037853548068281213750418690722416781536923766908125850736156347180868887449458281727629612891430899848256298501023272437067255179377552039931884792366705921680942640967218464348650039258583625542283427838610198834487297108631396994471580016989723478631545935222116696374166179595513497535027709353945579082289146435848588788364889751332328191897486549703002214440348357467560369790949664069094516701242499788454718057780886044221769513717794829550531532554524873972400353835744207921257887960517693917259176891793612917551381893952795126701487202038510553905204946216200605291174873462328454857921799775523475041081126275043145021100817626735003568232460271657139377017764439293800290172082864145983180403345947644581493382224912736404992886460812501565208417143665841359015173029731099938257226033099584880621630564608512769616308456546995873088166334466572838898216021422339983632463380078017551036877347303097248887073046304162306277988485071718102291684707832192140387729859116860620666497870727343772594899134436764998384683881532112417999805531644322029814216635591705799024072475627647159511949189676591181515710172726342793125133289742933580206516796755139755359864792458874170793308641263658710636351759216459190891656231072261035467530263156766730423586046334543780899586505096258107890750738776394726730358894032674511479721743916257951054853970964385674623434318196740505028736300151659142189295079604872970421686222887560967008512319357487166491832991508158130700085595802581966848189472967817472462302839560346741217335233552905504933945057745208180394475682094099187187134348346451590505499791554100153517431206081026066904629565395265232197206557322594258168340442552411588944550311771411153038062779364896219431035252871407298866469649247315267891761646996319100955834173202456809797998698858136065661175115493908314926747140073450166360257195490002858515822885171603199993696158925680768845999784332482244260275820210262349054690266725050365767583132737725738967063734034639189027288550239786893290476757288252621416566997585380740129041673069815430927885215851254434115082417014498626213936643772545878792047664827257932878667476444401651926766757606073321117243939731822811829413530088639951943043820695031029904296964188023790446926862815388389271780178811700560282371592100055079192432958407469704292812059315177764644635718368940335404148856757806838042178642241224626615787629412138767750523589728501828339358439762669739377809353627860073419832667811631115468685355851550849147520577353821640465007963905420562076134184174968092297663395142465410824977226779428963225640181704144988871595935783698147385140651490241989801907298575692390524218526461909143409632670395103774756839545436942584418879141492754683225716003426080202163406042528553702550415547608195639476039155794288116572028948215971675693338451420221357910653446805842963701555910396420642043001690294895370824696830883022976892627462104122627864301686457030300757845708829949368410785868261065130390349357919861022442371139655686033884305753674903445675190977203714766527386637814775803125080848496453622092349638868685537784906000753169675726054227571278327504799736358169696705462197741048168187325393887725748416144493715580688076905262916821902611430109143929629955221431955906772405728813372507438997645951535455650575685358612360326555624652042206005787067667963335857223440039778053341570107740617919740737926371796389459189016882876752512901016181115296411782886500496167260079371089379893406932648725805749510239416940292754143291408658134094102155227572867177554124585463193468519154003332491315911853837821236553584771558368846115143910308728535228552073535105153854226604204527120037860846607468968639602518527468526151220210305269634986778259875485508670290682587439385736000317002888689220344896067722134091048609019294586171531749804901801714617995779619476672594411532595973740186425365781770140914251676419244116608853418112617057043470611748330252014383458428896722114783622471647254996909936905382354403837441661140684117237083204296280724940647257983053695619434345745540733088658649710864667984802534026765753445664121154906304608468235467266670042792787644639212482772181049622241856746931083529995353129396713150920471014123434143326474640885238302418598374490707232852325458242206766395180511461682077197523085006341569937534448612080039176260774137442060023971210227522796118778179633990729133365466721888497688080382684838994140799629403469236181768418138213851805291221155419830557680297232810672619206272044228316954628179216101218028524019030542435805883590232200505505112440936878463098125478146934867437543581696897614763276971728921095270895798741329544379806826649799866919718083252315547866034179823867712955559715867999409576673949267986371559561609202849878075752955199443774964385479167572108795123589076481603911878453779397190739320505052663685827181618930847399632091321723759151236525615603488426739843259816747962818536630140989345962427892621890875390626572388483400197645912454550756879001849716689570125947609032164355938830777845451917318090727889930585700378085444339779748916025535970180455906576405453977734400433222097807794441140728099651239062534843036857027469860828534150955098612421413170390838430939381387477617212160957417869208853829911303142078382674015173184397153749882311956239371960622865546727193182542804261739117514254913895331679826580164193776450288272768567329816064021133783189151528153468539014415667971147366048965821581908601186682151146625229398121053964538425798130220775192263501610679968571927499367658571667163951666580994772158248162499197327567879893952719405469940654942193544957867310791298196981861521530256825975281170027101232757856832597087414100536172675883265207061259436361587992684981787547102397531761774310148031607098402172425025247215836645744654201903621499060380839626519248242281141396700545211361377218593187740482514831425379940747739498957829830561938104415887402050210473331517694953477987990682219037982796078420582736398559927218475966768759421966797507279243977913787705493352979537785192052478123830607976610546146480433667908479747842963533214393599577145481714593373381335346163439383764940845676595966441965111950721129417678144000379965498071927738885662526815334332552335445691465040496669543970196957683711914511540826621903277788374836582676637362371807074360803418065371153247961258106556561436662203433685021598127207000045147384319316926996560083750410064837864318125628387314087419781523998241788948153625482930916383385529635346158158444169120579508582472904085498771065859394925703495272703379344337935318063500884233280367094258276467614769756427270000096868029014743399553726061297092600568084558337915564448295168108561012947938765127148697945476588605960583925737387833488821309127514381813251552280511480903976826009246601254120432726763626789350115190248735293335386580742987559616306212567015813011815917094681699710831983585195489828047988640331831910853722108035394756356678842186864283471431632592444775882278251163707027959741902110517680488085216223187287165706481166956247679678180418533927995302160788785714977839253344805534600400983192262569468785868299874821440331542257824067602295416585570922658907799119619060815808917353329066139808333488715440923689216863703053075412758919462905076675932352290750523634188892837041487692710480025377498705372707696208368433348923448776519314017523481125161678117471863732078379014804748673093643801256439495295466886415386288440566218211527039810938322814739076942351188160297633539802130518825298746409122876484727629691189011285462900557858797230909629997406604894786769126733218049206766176698064715873096050684984349869665115400257513688109894245959545552666098300365867425964469433986847219936867709243523862710688976430430081465780039825909140023472658748045971621788306764399295835052149949129458789922180031654907763805699240297820915140613376512917922534802990932385381237971543300204858750143971390519757080168491912483284964857043071849936302988468591473381824787995162923189756810516834916099971651198173040908195284131214988136095377493875484658121373188469884578576850523579841591708015925757026693348007012933460092762255903646210496061380229078590763480701061581402145104172921665007992156798288240081741557845991022452493037636228623740101245772254303620394043780125398379381849712985431845790889779436968158729798934117770405585190173438366137043087228899958802744168575820471922803048397976458733322680601069765365890132287998039505339954790359705806172818641773183547507113710963560633578975516430200366455898493893615958450845993517502838143216548377681683247223162401218715820911121295050584012676162026321357077595255448821143421219118069362046084069840811946458265823592222715260203238500921231270836772538448252752421261646703784451889999457075170619916245998184978506687683638008856434688820292476714719970190289152536583038214866765132877182491441439030519248288229489212717245251466962774374544929528273325040058167029485577041465214713405524701889073844968447618531690126701607832768260128073045031368018741256604254498792047263933153936272247600295165596299113658678104578090293154964711740258706283126266865091473161828475155079786320632296845144093955704036279836437387741797425131397530109273476278743815216288548646155189078941392554767755420061726421821522546434249211766480629255789148176645103212725747883938070714242621888650239738491813682406871278992379977811227866372178406078301280904794560229390138296559586413460871990009137810068045427234967205204632215848197996938091248081125400045801941526232578415638945377967290302347659676414213926816940818725726374820436352050029438982955982916209774431702747510896595942902564945993942698302207346606663507985652132684592356927670554437699098394713857127179215073814896737556237308455316427462698971744939450639009455941814190815277820383846253656272198536037587126280932223164763628922956394215370067963249371023685926418580666649112012235260028770308085175578263948553438346252651102488049703879118510657607363865590192560806457040693250845192422671891403677500904027238621201914910804141034248210762311627742158372947525013319212061536947690140502673627328941770892641347148747365542588683964103281707912599201982755220368987108262576010382468005882369915016512540068707182837670361579178707986927746080731658261371223062546672227683288957272817212792628793250957435081324206712786497733735214922636622992842632629226081080077858912718809640251929704364296071285953248549789078508201774791897374395919360918810900211929502874575739515610029404988808512974043618695630426764786876288644576185084581953362542792193316945525607893102244980324912040146867951701135897857989516201961712686948987759109437892546643720951559176943717230500723112348629609739994578183920168675346310749434029270386922260918158016986010922385379525902671848802229037237711863752347554401136346746628762444904165606767572371774237148746652713270298575145415224058558235270677196626628351379484056780998782561249482610929295637224921969506428285503798726531186716063866297675928783281276553257811698578125190854352878228524443521747338639736402927101634962272388873844265055614123414244119438712922666472396687495835386991417658868402620514198615390316339105062900476225866493712887666193099216181707754025862438199943719285696217218879768069020456145371639820861948170899448265722667954760198675086749166261351143069970649531734219621021303602376799596787622741109059162528747800379942014073706851749276079737617989444926704024509396287657069600258741926346544084375407124557362455627568227200473987608075863886248882313585578424626101990933950368068393373947571285416432423207404549530615549762922811220879779640199732554494395385747595606953218505230800417338104070154181739602001008268373487920000733182438715729576891061689615911441083286068837066167954217123723786196641142193768547382832766648630004983630076429126486152770692599430267476911948580046817441878807169974336789496621496574361836535475623064297002675233434266718465416051462323923981969415520815414266984570310001367019956662932249261785479482499772272158349648274568317455057548098917830216306119304858236053103304092178838566093721844597628316058282724341915390537539615534265748460594443669315706361088091450070619303598917195043043323740473553227382590376665245356668326373835233434758742428908153624421138127207810564035016536914751588561446482479178081094515516633658937975918680812402901099979118919503405390558309954994530792320129037730513217815141876275747396796338458548588222322647688911168745081918724883924579930850191660431061416462884361955877617007336746457424580718841781390025789625368272431578865502458890433446185421489022972645003163278747720925299558208683889657025894511780801396318430350609252838084482727205425929979700231004145777602935156688025060329097957023040733911339217356486048740114024009065060287208143141388754289281812671768861338897033265238204520200616222183172275535656645037599077958854788462886565705625822018911739146166731563337001958572248175318618861408568720061103668651801391493153014426164795917812832275150427039867368284942524545861596632325288546844732441965829950903895776834176785242687080445665640987104842563309750055288717951361042432687392106239293646961721614411388306693666014655622081361786879225859586828257954194747614601277719229030700634399106852136318551657146079527521733038718231985765405748918651277328977495130343737020803302843981429314755291942806555921829225933852051143748236792612334937072486240785253669383918562849845486262972299019701139844668752971793707501920335318906727471483491002814227081014149364919115799841455628929185495656405217358473377440323823867164992712074552011971570143364792146253126719671136001483442720745030660741386958767719563745034741346358855591538107013618644616304461937147529294119316072084780741775688066914342671012395504040370629729822701051507381386013610328980311627220582787568001218014345522310548145305781123361372323522517466560006637785075687011176588276825936208997958279855764748500922025379688025413766372185623067752033357203094949007843556467643675340011078917670958688678692060259765375309716461650365394606751149741651532266050585578379731446615252736961745404769394955687756766639274161677234204548650802408581154040236568334104262445633658050423562795166259431441087269573675728741192848269615337170335746299768055733776587642612158817957940562778784009988252958151216495582484274908975952523022152206887300186968587654927135325989966750381740144271869394226121370158887049059412073767601924146043352974808005280944488640651358212046154488541256432742525712566068498567678992848431416065235146623070109248214267715593500831629986237760372090649477171247672235868826809283765770211427733634201167529303013892366936017679783230873987346435021611445582311541181019509175921829721442585399479904780838497083600918327587741649464210317510290830870783780953409577129160185624736212088590019836821674595067751943703941335354720578124052713122121868427246993462454186271066995295879751600489052108555242124467112685255606411130763811815836331736874844842228656925750836340460053349576617364708019619920240263343142061888350458822125819071179480660849517151266125337310907923885374354491655675557881184949744661460758159056873556841909355440406824614757227268751160550047187699329625168214965425226676558727246794063047472335770437720696947640527707233868932187491224162997772251063088783885099188310545695685903044254695323024816669735961507261869667934425055099764885660621975779617776074599688445007998091810722157123068303146164498808328512625234055404589106729583583842796648644022983212195693539492849679324400162492350342626028715006676418802222980304434911402524120781404206949496727813567016840421853368943781096886341627366235238132163189534697019297737557365248390545962635201677629985586127302917119959452442796735771637266825826031720517876655568904213889142039902055807441109257232906863194715177222288663012075712053499472673091417332758345842499965555767168713182243178345612785915193255587957447047834194764053541164981286456662782633014975563760070962509886703135411517979218806896291023256948206209149497892476693775397710795031287886905521695290227747262249162271720577510694526753161268253352344144465312472500633221713494630310420775507316689809730663940094097358097583441109115323460110358305080390987628118937803783329996281734228702494126069631297497660707073250688711468622888656149263643803740086364489653842144018657045431610272384270810877563935253264277746923843415238091615161500878317011469352614873288959500906363181681147237979750718359229242554160339319480448500454013421646488234687983386058150667181612192055130419041732860595314794615888082778427837862149331731754185061082963718439053600974820541972127887109935661250408193544259642817911810815955364105040655531845249736876187132378605634589209520619498789442194507390678255193110413163959920367923219057522404151879322259807464842101616333392754892391210604964595469628813522959980777287338179054650425065393765095324875411623443240256024767971311755614884200187481373156046738937855533072913036676702385429649056436435766560469231685638734617059603517178885582362068125073390711927561208041065518137159690916987469873535590687410980372552711887197541598096050206507108409278748320654101156236216218629792432717927572926347214868656715007519682858082226274147266377172888194606019943256060769705791634626997295699333750023049350782286338465643160787753980571898881816688948829150182574542662849343579467958271180936720946935520408208977971892410444825973471622955245394434799661358384950505155051205829384434970056554299742659636505244489574883425622502740981290119729361205368275098188088223702388991881473603304051842060444900227430929817923446685839427987455275910224399522683322097974910996501648324159800395031251640473061497639383908043372734941914688562057938811990181979452734147738117264268811463359857216781156289004324334233474721316622751168176250388438602845392422922364556704094208935094746420386312428951941163466641944829250508203403778195487696670256292600085373189036616630255279194971036047554455362228911789496648992503379261857799011057102669756493677499230247999075783307039378329105437884802127132605979005721721480121319684417225873666552661338844606001175678887060495556524107693002943316777808032139976378634920263964244762200784774240353083314874760099273734553074859959736502218049553151956784971697772152251535531560255482926342735296320808246107750074306004572506425967632140063356031141955554407529851933994364048922188724684620544513682690468786618432875940240556321540788677165459185788918366601899205864584035006230943909543766050982309804664105865118822181990844265352598126775842128955794410314221143738908816813262925663982740214847659301769565184411072396266178581420128682265743309757689694245681787959412123673498277573268542987696739170656787263710900609443164625991264184556451257750823572617714848930001036282393901027473129550522647315475726025967060948883425934438470632180090740565361370636136240037691256316348476731966663084464770824724720792234650995386342027627627293444500874666468185648823995083327184309296848209994619285828567392232796726662059602514561903646540586486012576121556213807583141911695402097849557438655692790177730008582573578136929379155787628981322077135261537309614107008041196052692140894461144875711923768270499869264083491783079265792204280358891028290831528019124208511718271142743952044026154387399029096541729348178374950733337679161033345008265310053683017704512553717573801630315783521661459270005457013550399197112034796572446160728151377410060962279523840138376177742001343130083357248073730904577753929294168158611528320531117415768778225123471664100479517975737541740318228575106687985627865598349979366857429139345208515684308175643087893366987183813206932627486101711034561366330530591690134032588410257883017198960673899165560859167116696469734545179722083379485624775464164947789951182056232481230901060801731629821637286316342076697154325673838191746047690915967064154797895286842360772081188448959452642379706573149442114387320454732702307436907243588777436325433611381599242524547808300077897929341614221256646179011710689705813798361612007011492491919461773897909954275796010888686758368225083959698692490109447738003571422858656179510930533467593402933773619081754033158307186092637507287171191174154872705253473387916764331556080910927490964387312690035204372035334184248326693070834792750764194238931582916852448655865071584552327641209093118512786210514615228262903917430297765770792187496979588152221398268394389692248839982143363367204016260655817559994026034411128216867954792670800179218772310108111007625555338658034414177079796219192640919387608151409124283049011621119159251651537284244724235265097794645554057978306439996191806367886633754823972108025102566500400325025098905696353964148499438176618688229606759789428317085596033025936255105696477207637619972940009130262224617556140246444133633475680226394555854152840203671947744890575669748989734130284803303923850936584648286573024962231440599401782241947874345044332855223090938748512645622002330654598846953793378339811269136707233097804517584849794277851008517455318240827164373548921400500336802903849530957977662773176649622752974075292009774831046660790429377855323846262828378595501374037648243947032443386410811925490885738085900249418537181489340793192460949003869597141948772558097243484732139375691151580595999179884464362516310306085331886860128691020915611367372020917798249861035755160898153243303204850724911132539354162983575413378982668913192550102546937492729443395459778085488643726371483629746400337493033828418747842219861532538205792995628308936966905622909924899738845275412979528158807999761699560029677905420099874501200671844284928265185887801787765474121892875711089792540784388320381074622490830671671763716770513048430504691329354056531202735186072711896202129318519845748494406290170404971337189070435633888789834294786049073164530880543852603202029044540320155686036215031950484407957789232052222013449159060114682359212388568543865342217362870131797715266399381453404575119182118822517434345257918233657851370656119331540911479475927979895922379073457518014377276159497508616559732102339629152484491429706991127346633433677703008114811514313503086940031335091618780433867564709827939767215735691909655786053592254748858992431930445421533077271181040527101997405622239857272185404685279258461716139109179550223002085169738901671585850054705767776389406941878333616922635525061986939489022181691239249157439291828230555856105101641680361428772850119714426041632132012836951502823612069371404153065339293329294344445987043003004364320810288543658430566655806385747389060510987853612821139932413556996616605053345205511153725653058633553261283021384434878317151648099905510845425743262155480575973228480834503244516949618117863939611483268382500125657115950477821728259264400673321803827327481537894149918428849264796892822473119275360109385436198795125360217224250976519134216132326476136153584538341580978892183276886998844554326098093993951618818022504825118163148070516306190500068719449173473064461489634814437361149842733684736567484295968710073102813521243379052064540460485756586953738381229541805317134741763471662145268890496666292174963972224715841951498163298196545366320874442901493835869199897130620617887765906570556890230617560171460378041170924474939176175781137772424220741227952105608191565256370533336109241510344233773115156846203998971617141987026161210169322980732353449007217494114622840375940022756355168987553134017379434460496561771128129697497012219913166379649991518966828883776176792667323448042780833736645273493965910566777078837739716731636724520918626701068362481992248203853964692190057466478239976223379624899632394959300433192793781459755081854377489147682410039539690611130294046583493592001195853064702950283674394067230652181417091387043277544478558749214030505976158130355797022751214962583866217575424561231075023621210471257862094874396000940990272929338006518070537624012919020788484765451501437757232854355644614821466574393484784930016918731681521557465303297670424762831744268137629749507631211837376740411631562925683650227700249481873390793295708806842716813720020043791812534336255951671579628766666229516062401171808805796160200733859815778680913334632377376671150983544684088085544544054463401690886308185796993450393056428734762793195711743112935717648831103600288424110095313703377533905645412040286247102845485813781344094079253672790437536292608416196271228847305156591370995190028758290090375714362896327535088456945431859073525700401885535482126007077344120629911136699778938567041428408901320062195398500223697648592296796405266480535954224330972771389764416806246552276565877309147197448148316711829446805205630776577146539449970151232352923312959249633301502003668856023564193038987093966144865571577042633541996055731301834990072099578383643014438361171486486919896671296735994781844245372280269164179259221691214490733424364022767258786377340963706811357308748804540076563332267047826461823348496737496439565046904312628336680160730502905852483354601825872456151002746087604191891528217919631251407285277811497238747921687426238381128336766608272216427134168736644882337470529837512104739432522932143786908564800870910260310944220833529835346661283039480272992233941548272432937362562152617796924730334658128337906084196342279734951347968016933203224593469205360886499758834095551549998627036711515943487353440745870753575856832515736800959262148046742325132239374376025515183345484135327452329511134842173098052101562779423498930890043936523418928425607306874330434652495615053270324822111723854961017155429224678667477296017173972113489350984250893544200791318087448175582459431477069091817660907143377426372919823498203502336847798247813212139630950454191117437346324036323528257181135291677333653462798037964608573193080770024215196849404922544117355954620387761346873257062084383510447477758510056141236632599969079288266135019204336868015417940860532140695371174267294588017163723761525850684901188827808735128349479766731530977065132269108336761546625400721324390356109665135835435679619073522969732203398204297213840528827307173231516266421849194937164582582857241661194345969043015278804752696714010143010173071608740478995443583313429029516630039892712199093831064209934919591248519846849977543092824152203136554248119437059032693769436574994924508901847714603752104161847350295953622816686086850526301384975241824257108216902818132400135513209054671777909445359087976096651284574518473037709547410623663004763465669629267668875686182147727165749567097986819898992620279987125351539211303079919041986209356100676868154621807779799699147000126459876649126794202948455298223876015446753018729285923759945985125566014192834115488271839249513497305509480179650302236329171061365887027343091619788823932512301321137305527269194722120061435505854594124642266456074407870985330611181255991157146512745932341801043792059804449317355785619369325720439280736828136748639680771263303375885829211860410511837124756445133515737842284825537786363791695741927327167155220173724545096792348350939189692182091713763047611019899770966345465444161116600445827943417667074837056872036568886444078620612615968621898687414910594168558419328653479024997403781165990853217402298698784178469111647471246147205651606214095201215155875556596695919758378832111401024324277390061618349896716297452034340872655684581474489426644996143130736506791619611074500364220668393445312938700152868420132568088466291594682835759877808567530920628345061743632455492457485548705479770963797250386262779961290098519961809962955874552553311284799441373530437668462958080528791267896319637144849065709052185537596285428245098694040375342014231288451216534211550416066547416696705900651279171477185498348108221242216913431882601004837132502767898667092169038300429652702872244217648226432520223190358333437014701863925093789214117993287013329983316319090702935633762945263536622187916640736373627380770475610495634789511095014583953364463779448571512979697899307126322991636462352092966113193922327485560640564813182413566394370996553749831015961354171623298408167085937042706784241441006497358249299719757641025661742939600070402555323930271037995065513862466322019557993560090201742303834226077852608772452496692716035602938145140992990610344087356954565153547556523755618027733939524656724009362087481332367720014707519979999729069133301412763376896674305074414445067233930419206133956993696223877728955759351737444640569356773837250521392907063222226369201446018203920226742108984442033853556262021800085983333743056515714802560015136299222852368719428412501149623140283605209481711777288569095523007091043512436582527909950376985293228091226662444066536803068617860868096540094209232351502197148029753039449743337114995839248651943783659284601511612541045964417724502003868699330737736073341764307657259763095177610583984812467865777125748848467023978225224132866940790950149230289386287354429096897271413371530034699024655393208657637110333026657333312517554133701512683319048098496169774878779359122701150859385627950215907898651772864721006025865923293444377335179941193380336051672722720337652667824096687006890327468586256322075560055571009365180285391204588908684891478621421024090476618967756814203557851879688978522294472208045103130085276851474330893547107654209285354578304431165921768166109435619920238903973564326329588320797327763077339510712797480632725469704949420325633481222340087198180932566775397601811802783683658186444987273632591042851698003926529473747550911235379604046540020443975462444485704491391766948716756325978697669864725584202264005659232844956284334272064828893851021052437522731423115957263157091414666576580682488832412354992847482908104700575777619477759227218376870959938517061437251651047484449228311014777413455740039971572095810046917572539527256723937066032656209348714963246187069553957443598900086173516022974509628702291951172850173777084182955509653542199452801787309990215096407339982001561857596218816020242825610740216111720760605292683985695562246672551312876828748025136087474760534598107283487475912606372403474942213467985956095734607322198983050922807553057766303046269611443754469960676145103851691025324888622784014877885102805285870163368898694845569561668758809090404293626648965898290372270286161917919596608744639918380247162651316187495194264956127934399128467255651837152567652866388181306697704116632044971154900212220720206119667519137493303931509726411085113510118450781646341594929248245567871654790229984679006090852016294705932058224685500383080133369106419279155471591179246166282558966080346671592653369691664921837755352499252159897379652706422352872738294732498710850484474564250128369702072118322158348573288144292573324228438023272488740810379660199666231294642443359232245916330469702346380401265007643026594255939356746279512110667701105863481639086050582678728988213606993342155680137776003915156608484770122024672369779016409381604167595318282801974532248381772620727564788169051059317521951574498812430986027317484430977165107943920171416869959750486545422023344538429403275393193873141149834923734457809347066005363027957961675055117195741236342089180137447243738955350630595697767965414934939142125849910618990278730714966558745554813467359548559625277189212294141672419193516026795406821978001978747813348134257029447860208279132589785389237161773585928605420447720361809276882559928598047669705785687819370598544970406448598077340496662187216850547601437504377327643987002129708876643181057506435809187280685925937568106686539424799532874613046831891718883151036914191153614665577022024264491182747965841720978210061889719697860870318349184426576771970894749636160188360062509932506211830823752378801862532369689622639505409918014976549955525699231729504130908082328821297780120269451663470430584602841111725540220858480983890283838748952531124947550093118801352964800285379767553336455954704939923550388807253877183404031386460280911367266328518315899385960449675430272931641533758861413989322800361401963599770758786070409926285409034236065909321291179328317031942151787910204029468926104698406101875066635019162409605491385415806067915676086360360058746362714396941121847406121932617776959107482389135089998578943409916314810691505822633945288764740387714882454714838873832881731984115475793447862376984168876835722924817842695326377803668292137021834220880216379087591142675560768912989651912923668149399055455508101691953168338556065742352358098669870477447433949665775135782207731399623549425692222255361203161895872062657553364970569814569988847418811208807416752191916048881459736884797509915446395169950941888435731898291930417256334462001556919985994287900065734543823438264713041728221555589514725382408941364101996775876095829186728259776786111073470685692231558493603497573110570117399191368885250889519055804686786450057782297900942238853211858062744419940804701894748358643839568495600010099576190181380693033324718669976295201868970327111403471060559688220447887028124177814244314251508033061386463136534560971944976334893157853072041140526041058432012786638048596790802464507744328005403167505224354258296322085228913401502840044181646798324210763491181266668618831660906915318129136442778110290695296829582970992311255316541402353182085183749645829480258051473950904349166828944874859668262793006576083931473405203119264950931057745456226873705641256524647666614016187803786519344387274245738002305280198185521043263547451713280726096881768032975681521062727843055679446947357212584144856578962247396245697884441105756622769236817437719988444750118371227313151231144844386139446115462983978043823212538997523764033587487500865411503247563660760314229571159873243192094113228954284796005710294947674177219563055602320020188139132901349654672260329403377280611755560286300276031249852849795856435757686279640559904652576026203073435335113108869437132035124346292137184709898738348839078627235355948077649642355807438579741045587905612046865386883042918306367641315960552721814327044806928160525138663661053664693703464773899237425012798294826723840865248381028188276135360373125965397987863355930246310909366462022590182197742794710844866834732927281466863004374409737582247930521437045930740759828201498739465855549804259651152036737714572230946506558029932275887546908100751190217547236933291598950950028992305414364971715098106731019671194583448609628853430829133226334845535827611136582858480144295786600898569937979400964145664458856753111179704830837722806220427720361834555793943635419114415976563693368592146102610918033912530207523931958452844616272639921451539706712414242400076847033069366393482677059540178327719763408833243021086997539547884565773272335644147414413619911796234106856965821901317134333486092684072199795633608153175257051989786294142044918414610151325224683527852460672852957722327284425333116476871614684322035094074499073702821365242976607420672036125536760639140569410531859858297284579195297700375591019784275801951223186285333288029378654303645399848894703031156690970921613086585844370382189598343433635449473204134762638674504199774450834574917417175511408255649636069263303611883985700308522708419468095641946287139290603971826488129710411394751119407238815920849130623553965987696364945170640705525668113499719562050897684007704486510651763059685782484163071928540256824579775984191062694681356857302536761368519759558974552646406611749885873455358270862889613208022801685714448028449475147050473670196660744634970957048982291477503125537106538392121004293491350036818264607625654304258749968257729309666750450361828286967396242219044835953114549293037628545391063545161751847194101597097183515273776892993253326199048500708899664289210159389403797506007178545521964110983189906614811105252183384542210093107615758574832201168862352635351625396361250714127149428303268734433127735685631038698382592019312453296396678910377450124677553288264854775656139205194694028058271830674775671455341944981678143853256532125017854449815026173575246775858997376652201994297103531330731414033984372855006431739622948896842566743125137972364758361577958163298156067997520475224519651206012864921401194062615451545490817351812534767442594176184005999659339146887934291375572357507946996080938231752850894876268268109252910556581345967014253158781305543520353281003712480470373352881126966492982318472301613164734199512280724268925633005506186365922894994359110520340987366630163817869166458630766304093363352468897491604884325937555188751615686710903621901861245103604562769327631123375981553941124369697868640983493436144076819387309512839781617916562066347576489192419877714229416070110511188523305337365797581080811753957281061986908114709659735506951006259452215099718866492865385491262148537214325718674858988380905844842910390044875977564480449512933321543706907762425252783224261313532517517639430062722489663831871553850337468389881284062718656084943466724810381113533604958919801787313768559814852303580136024183718198497357964473233479599983930930029991098646686145375586584726979230405696782200352249304527952856158482753514195582834114357147486532037730100899175674978220065794882170846454148745166012080232095524961923112216781804778627990406577528436032933753284156024968895470079427275537688732293875753493954162810471473685802694718408741551422675895520551388796361776214625896168072008805425755631857252759545338865719020902950134342475128858536457175825809388004656613269168489563659948381568429421905153044507695367028691772910904313869260351952779321390838478760525463232923781568248131831026329215038493113486689188199612216598421258793341291462744990141047566977216154122673513768957945410517474292558773219320824218516200334113204800875462768269309885473058681415869536900505010326393124284514202505929847030056233971853428252443125316299929973473433870323838430659015319201955380583450153135406659411591044654490493309536075383798576390559046052418319483324953124347334400298790467327525605894522059431274670086198716395999973191598183004910096366714102635076819082196531417467146092832690456640921055668905119021094586334334787911778442913411608091036520057554419244527894780395058190154472775271936156364717471558314709482063996954031849294479728701906747692893595755294337111134967726843345057888031950011455818467240143572445948870449090173273326114674352414429915324419825334674784143316539577413816244013462587857930930327969347078213805896123795180417100536919887040131380457447594686385524747071590204955172791891359343006518934269250782344626459659889297018961758345641675127932199057660166443552655445022708090338035561215083492411379139338270900739473919646618444970841792139017171358002572750749796334637708684227382376879245027542151793070239623315576367348301628035567687545999600562357444868784886947117696555799071728459817016736959191266272865929196709229758421430003837732318440378318333356917740549907056670785869584798157806887364881957532387420571302560043245617426032965630442482593176124526583878611070957480603303053498911820447616970786332811293352410138980904077584640276460300965723237272682905244610682934666767708010659700346362644597455435258881299750860163406820953526605887699400469955105169013473407865335584698602745765992602001038979504063574400968144609188060283509661722108710957747653289250414278281792185424983236319912562695378486559905943584825378665299465470309540326380831809824986607882194687463260049946264356599077899598134471341656262348521720017404364513221116508248670960292656395386780107426346434633226668012081890390394137361255910399907989236463218271619930912828467487020029149739680083938561390924162924835547665192653167341128890257483510807997587067506370329631678436075809798016930457697647985171510057254778507316847710412740727306445072151112433673858831975092107855894149539877245848078232871723430994020192799392410395030803678670219055873804580701424422667161719305910987665498204442971336830185857214821425892426548047429184412079796942885295998671795699085339985260109531798870117521487408275180629762555300059576829556259288938872314067947527820402640637840365027982046946602664416028613642988507957023088570230417682673312934294013532820054024261439573035559012930044031190742214874180125468758105678344520461732305847029215230518527314395618662802342721707120444854732638917700482398342830341941148898884338376027955756468513770128760930795217782859635346883798836254059135621236016852783000355815790419111150993819813757341131229866105045883073475248725501278220346264618370050225352312230678606540219159519293051248826902793413768824112252614972445302595577127298255612960328215336906467389286241749229925524511227993926699330905007755143184302277565185628501431602373467558349904951515874187200251242854303256702616726353278586885681119447552230807440950164113427937417776339057301356139554702592621245848165530823707607469291612701811730639605998014259938889858973091832481819074800251135149757782533397180780528096749922896891422043841665317049074594084142322807084984953810146209490940616289872535466989500423139554434034947512259566046386926350634128398231625306939064500153638190617078661779284710079856933028538586718783870135803764020830969179115225669157514114117051271899646819547602226648484584248728595833594631251215908870649996279021884243014228271130531068179452189957287059113947941140195003394910513112770993298953605690326902079828644025096831981220409835146786497357340486661626538167132265024316128106258994466401245012242203925197766356549168722944816521897856155966700868672361635574895479521705906023136218784137711594668357493139613302039054822832232380664202274471948389916401275484576039721631478468910151135148559262644314405912259363912458848385319069946080021515274386927817539681381709590921747766362377066067664046178348086373987963248703496784947707408278860130864331982056721321777095476357200996183213586025795429516041129807279979775442824136789770039870202398777442454563909526136607327898261537214922831641677104701470035434721498425187199665900670518083379046282501333675354043723360350760107100444400568528361487001434912169375637870030264371419873376636420489348389804826573256956246045893879001532339993538266834926075633442238691309394331770603272038417929340127230433668306870398302185107740938283324093632636020566575852652769862925256208963487811069107469481487766862543566290165745361803342693171631564900711195483528674755954931895946753476596758962486109240761180480197715623636536136897939785291473688390479311635853601775812471878938183773985448239765604968297661190595630808294500489915312171931017201770639748887015999964519285802304448295697202693985271000764065911871007375118371899548782738108115256740597424603652078351361563218163109697736250508903071337074970993056343930825639349323015219461800215249590216977281215274574879028624768690614654768990242164398295489643251855463818571931637162094799232558660901768970368393147078419208567632360937743288836680138628066989705034438439794225851494529900266412993006813706465456920440790418704133809814771328723755682711681104162459756862376288465442261020733126942045685803162749793356285189405900347166935024994802417858121545227312867345832967160023987643474828315731618213026065535076557574910474467225229884506740432883247230874711404415517512762094968588082899994470535542287870562533146482363193249334915734726439916440268424021273285743015577346533571270386246201368832289067142189341041845306604059124324280645656797916999526424047019326391098097464217264740790127387463835639938013459842038710435152662552314324463294752827207349021336562363649456087355492672009960183715894658447132233263364953224230143291376891931602375769880572698237114088553219819167417575232565889807637669171772119517805067647961245080785006870938667465696430950233574171992716498053864345088208879257116757250860257650424823481487862947309201546077931788971425252150475275215468755840571012725273004836497664787444935701765955138986535434631585641163875718688592701562904251775082579916716398277413982801452424206279785427856550845256269097306396102992886554353929193495647329013794760195107257982808298977833732049660541865462661337903487084288993991376255682835795771958255404461776570366752851090610809383482254839631904056846956750443244269258045942978982766611773283838606180867673532958710311141854539972016329085677214732838660920083649130259580501574389441308716011789448888456424588640823483319367357478454890501174568710901247214218912054834196075102227716340786774798514191529660661488445367566211411723100388501015939031879789356939832776317226281801267371910553877215549657373638094666908361823781171431428577234591685298011356594657178560066762265173265862093127785376339109611356398603217383023236015690906615793054726002658867080273012823295682291371085201708604856883462723939142817670280495498691786357084491024656571656206067547603716652065789667644778351277838107349737635409007448053683469043188739219722707467646929086912115865525012301389044314251342990467048461355150818535094407060188250400567749967175747123315829688194113567443892690731267636666227119920361508110433893384963136762822810942802813197227669175255426586777506629573387200712228733278918095051392409225682731981216221736929473326187731729514088767468597891978676783134159366957422176434963669983239739557288794432668366154292484096013048591487766685112903652350118668908083972500141085395587303035580647539806203835253201458566013345907825567050378365197824115057371190400526362438232892437756639957992111482307116418904877603281662173587760310655574388194713525810127976003223537742156724315836209500838148661119685312555396767246528536477430117306254595406387673840450714850422104540256584769030042230539660665555763853407027989015014721518847961029219617132436056935856870313771422689588992848426925401408169510187199542120355081282929464463985579567072886583742122776760897197784796255339074175962928737127065859079888386731771855555241561302218886209146134286222504521530482553168466052440536261933987275047425893607059945632368461346584181853218702132940513339341780892401679616488658483048786673274523910504321830526914500055722303940161087905127615145253117585921703971028957344330515064192248337424555010115381979665730792618786227871453443173460922356443030357909982229188865531583881081353152610225850937007411099484235794293366647567117710883023671556977948487312926253160944445759218768703156691329062996044558136926112813507927218453669325988988356611989618168310979629309785851942790532261817797105093583262910512317559339370763521982835440955487569548480032787979165724102754131944969510992622910215152331362599401359837191146428517852957731409126608582110616494854470484592705076978912241490045499257949219105010472917980072329120169420639843759229897108025752512856422982996740639817802077162706195992387419606267533409471942515290662842366385594536961677388503756906434360980941899583244695675196651409637543138146252892315478661993230271866060340456718666041044910013420130980847054289889477631245671366010237585006702743451357617714111846697927809986194982198016782977874217753995999945603999529138340837644324184499569564858871337149178217040898860069711938538789392550975751042087047142047759145973127369587907668040573799248835823615478225918638988283464368011289497063723465152800481198803379760074154890690375919827019453685444927741004869489196587686650057518955157117881403708641303141132382265789518652248898806770193526991037810215767958597918175214638908737202561105853712110317797943303711109454461889883519929234071061276202160725115142333002584669119986705918427849160000871984771564073915238186170708403815605822012949341446421962170999510129427691992581204323972416003293102189441050012757908678901779515353200559760174949308369059064858477753554281500875552636464704710275846213459113669766315983137749404638049497071017237256910247391532480149384202638570274889869906693566028842034988019122397907570877826151513590008904812923340304247620888433893746416042013217737834907733945105792591937361550094357246383378583387881783710909525453506205841726130695817287138139932795632376873339001882987718946593761144229572992009879532351822478082621622302782064743403113278225824681592144486567006055899372050873265392565990328056873725952870596319570337861523149507658340835914506109248447299619458349782861022760707213495191351386883753309629207180659834735774813575085620155673842667121917424781219535671640214538791601487270201163837331649349326043104048110482171107608881734553707419032897272689133413717547951397370278585630907845270959293037100545894893508241264922740693259537652259861536112538435370673605746490193575166488805683889234778440450423183213738133904248331405290648894136708594110396463148762235313680302639770896907645217928314428018454657897066634738351262681004451111186558655981990010208259410201286122234592135979749753523017217998950207066430121117192537635001421252956091934481464337119365420543689519010484528835940411690909555778210060903010024817633619022747675269513658633168828338195962701018839099480650188675347857554029779484347664340708839067718729516354969116890402585155906390017818566288138202644929090449872485589992722090216682465995086770975870049465726099253347595871093070038088403427047405098121630458466686793811261726157341647482313360912068759077007333865337423117987690595866254467729137530918587358436496395029658866879386710200654103131900938396478893827889776200927995664919237971324844732996545898646988684103927029288760610662433079833571226163610158763645375326788988124265975720803100517023553375439209597104197036639688808170000714462416424988876253683438618738680712022289585001395165678766287999245438979037047074312608113183723468092032986922167755426925200641660264187191370970245610684431158139806638330886642549437304742994601301211303488561504075611818727937588323284843145932065843475505938230912808555239490602241625205651938541065805935517223501780076991412508459674024858834604952985852014639119092000868937764294218202648738444977685453567475353229643521648965225249237583428399071237053938857870047556328354829614866307385748407883731401802576192477520876756030389212964464427710405551856050414057679395606902176797195368630383699429424634670414925626260394243085593899215164475368883730177953870503605233319697503614998184622411538942916040996300660892823103174215481007944195522962915929803019238920309583583498438055118323299045425341168925874017988655531851646762055860065532889195026358193950838867964424811076563771563597127565196222972177389153535459192297388212350067807251755091238382596133166235131589308106119058930587218756163696143503547936694637550106443170865488665239339907879225547572226091477973520491263059823214548669022803251582375245850938755891546135752863105346982452975995816907715506233550202348340850185214626914073562306660245882886800235806784549318770500087602500268222527542437488790722201699893775352315887122311066502970781278641544486296473445327769771352709960349186669987197662700450511815424850907258963796924021952608915446044561989158877102044036135017287339752777720791928846180361069035131410470100148358409178626305064625979619998099030924965981336910558008240021545943687290380385886921893691277199593341984512449297392741361485136917636461376174991287729362929481597702349703660077113483463980386268155658204168144554600657620385345662001132336236592989961816901930434450571028964165726861863191018251329867744704002835922796498990486967838410974158102359932213695431881191051185410359811778322362007373538486582524602190977181043073994363246001264278070458547613120952133709921461111628885132834115136088942164164762786645666147650947166612047526211181995546140715963091169587989892226469597588449940731950854009171197445316721509815741678091996066127802867535700621871550066939026301860836233672218909397283070654183484545745551362595053668032004605871027402223746176859067958164418586860345082324334080348261662935809932041681351377580341964887208900668715264456758733767510498300787099016128837161766253302382561246735917225555380647105513617892681322112640805361350011336654317113115983689314795487511552353891195676017274982376649780084191198275111635246121225909650532428089363289150468216768936206500146534974978393487248006916301909857533398290408878654177151410170858298062178869512271459328765096241952930158471366151750008715218969454317831733354051744182873780611817179907174645960735394464180802530208244648285915755098952422048791320055510690935163172344091657716508657422650594290644734026742898239166761281978965156573953438091823743390756617993298021655789046152148039918310069556326681250797314325908743387456287912599351945798698854307434356102930921485585671625827003475090036430836349602466305410938578746072200887724495954890121441693830936993203291659807163991774767701873982864078463665719772965115428085264721056180585959365427446065446107388880087559319921796057490226434134373946042813725952789009802369407596335590702467489236841235999656690487002886821486690456834354403436467327340108731345996037441259977210718222405445302213150025112047151612998921416095100787271019057000360838417416546238937917557133368588194210962007638414496690522103652346507701933970512498404632655869777879964598319708934665767195194453261880515681043864608353873090368939875792341739973337330650521254046126731713389249322594311573754604214221879948344239808545800862616111616594395665066609801266543099432594616359424746749148192955281810468237027311142346073189594168205734953042383341430774452809015167551162089277897926761208168841079590568097510462294683428854928850535737420130104280636173652854107542855493563654715631899099710197774710473898416317707044342906910957669179902062549010276768783855599043955320221146372027574538713952918789831899630532813539809182675431614947010443103430136687213704266696354843697269401368046740532203683850954695576601812805567832311936111187270412129757320588248081021409190322916935955819894395577946592444514557460691587344038665683959829177483572446721637612435050622120586928177968390771734847053292776611681874997676194922354997681711497361587416406703426733483116482482638504915668001993388761931277231858823756947524906116114500393996109366610356402869494702851325016297020906222992982267218598849518904938811178839949632934760355256071082880156393184516559329983405388841312854512851531212794582128424838854229727386061888548877078713210630421798487063112993032309683623241351346050708875662172415918470023063857094966874046085525967941185916727096110454756893764431382892556963000725938380091405515860537653739699383060450921002869544832269183654148647622065781837676443929205873224136005652938882033299513292024886664214203245605609290999607398860494429251126133623862495933447789649228994592397938986620609116314632249490014902435641707051671258239637299029639735276782687724097187897589634336401708742651996005159264510894336220431125763695817681360109884726788326589287291267714848961602676549548509334699269112006009162311771506255804186016799059160339044661655582055512910340316432964805582203394115418303226548607517999473145590961108917301945616656430390680689685414156165026882026755657610904935725183334585384913590116991131396523102712530646285020673636289905152245545296156232408657429834277793904998982639774795960145004315732554947511436162748691891512186864141057482586824341085195399187579831168168471942348219559402925589909729344568334742443168017046791225153523448797160886612190947892577825773593586840311597508150577724098132445497547614751746403565719681496172602102400504899847529038266521258929051322630543577401044815332657737428789930714370779355312304405133378731130138835056042314344187583056337351971368030749672649513421384259551780518759112397443690883404891176128813156695674926122166542854520742890063211759774659740386224594076762317308850840599279954828511076295180771927545428645981813507069344111642071944410840625750333895410216421534288263376371857287241835363784029616035901405460856036935565670284995738557075670419581795845157580691489563907495236047886191128980973490102479042076510688502375329661825595002890516611374525352898745994007211980617906866096917455946386902638236014063904515461551800587097271867618670077289694570835256832542951679680082674173513178757263097556118401946001998799637779735468696192903179024329159195838644995328477508247028193073540797436874958810732746186360490449826800849909997547633169267718005671089342625949152013906259469250276580200043240333098141025371710680866620621253404995436735677449472754020843685155493379323215104829632920890021264073067155058544021623025305704267073631558585198100797394067787643419136730727064851536864862403355284812891365547617410968295764898032144357029799657437969713202283806433292502529735263320764555172421852351440798329970392417143096440052621203604526334602053621850101442211208123842576455587737339122748698628941436843424379746534759187507037199930702479176980261181203815468840641787413182684543158634754562004738288725218435959317172004757543580099167066431412447761866814083240816889444078380468389417260310096750339870830710886585871967793272406263569306495851809545071968942233784906177841879054568541550221268209485123837811031853599843951009711793365900787189873913476506375141048694281741549123305007058532460321609430602719528048784171609156435449425777499883330788561207711622770619237284051530450719540115680759041453888750006167526889922999756823808781983650245747859091561730501381381978604268145692418472741081046780481471971712890834731763089355852625445518860203246291468246891832983253896356026769591250022058791506414538835252282980320646245018395342303042062274014159557376706454582891856755354227619852276765671027150733304349740639855063154733644683594638625243213075928928191914681961227821658206667195196576387213937550582845941902546215232381977392432177190725637311682683350459138738710088557993125944970097149441953138124707621111749036321222047745968077665429085360126110163747181020299401941849307799148780479712019297445537354088259645370320503615311755570718944696951862389154029930795877048701873225249599218333187369587230992373608917829842019146388732757554381317104650681274957537720219896714624439510085129618687139518716360157663604291760767762293140317394544293560718423203092748236498336007359887946312127765689271406903705121460952823970741309676675647910700333996658712550162966013344619307655368625713225350832151531027098292302188603466015665365497968512253453432470758068510121023743895955104766463279274826885011546857812044500662299620321971748929900899735962946823183514261120302414688125610959737322653750749309151066318132430534444857314835168643709425371255433662576461826629490729961490683854888151227610945892905509491268482030107952607348795656044058424505219106288048961789636599169175283792522320396244951867111376450352613056776559748194318399944915265019720423699439161598887757532604450538838573703800509573354983594160191495958900339582703618867101683494534858737855128155341505170329295078548044852618064208356511301685609313638030337393243249685564978466061805218491436804948105415483723064273512239699431544825138514199060262078926492657218443542792301077673479868121742369532635861004340644928860180557409972546809215672992921479932090980918699818907811752932585768905184781264631018155443947172058961259277856301723812439613502062493181401857524823776389351401949907285947758607578269925956751820593645720972639448347359403213999761215946147556819632897799265047559643373257757441946026277370940424625659725424550292455696820349395546406165225273306022747647825952549488869082859432646761764971616612471869434953787866972385925493776201127985208008156001358581534496203999214055490432643030247941347434937675920522833295017496938824040367707870825014192189194766686022139660794269783955695991000712823376874340714978885114194913151226629959149139817005398284249807980481869126704729122133249324989395914285513471364788689878759349613745523650915232459184146283526943629518041569674626752276733533127146090232555027256311142036708662829842120485793343508820888927239311197745524194119386691927924358215200297367082456681495492191107597423894810997253770702683069869099398532972128730316370067273444118583344340133229654530558643833770056942256489217208337299249383216473977100196781844360796171954358363267896692730658899824002786540997196446974583611329324639900296236225565238576031419060532247196719945837662366083756277205741175774613460859898446669831493877583242057229337876525574761855970955263096267078024541118189181590385507884513581239616492442973378982157409257504563650624994423580479749412618146111940268455733754417973829474650759138330133627243676369291993340725699527795044552640365557857276855872181526373204377289987018118251446112923860688039288219643405696114537565659249530718602926240296473575512790649403408138554396076974029641159414910287094994596431865882468530821419095997942509199141204236316706324808986266859689611043518110511018620385061935088654847271735341705392173756453521189980684687237139805065031907722399922992025370743851218404899336105306585610969492707544300238598043751041113904604649563735437589256781402269231610232128752734917236579908818398150205783567256172947902892084983144781616617818913632410604520969710984180106306018530184333847319068130759301599258604530591412024865464777981074242640232874213083848632357428401549580399252517586753455707783851595621371851047393053486835072035180882096819633517385412054609105018626510193275496718124007362280134585051481605485038364548906919044233134998829002855199683247069703714718498878047292106414391244034481632260500983035339953252450000215453110225986529214569799983512042012087415375286494985984975213896527163530164130204240867421364259487925057296233744997915972450559038171478585186672804283259379597999809772508046776573679155262755020751223346095270504943226788996810204743919624810803445193758680313231757651928846784902983180608189154260931703151326448569059758852347139613362487039953165594695338074054543761968817808374979185328593764635824406056381658031820628401214115707083970973874211728003434289878873043973158701309831184565077737048619388764095626971748641018306819609726522904466725115287910079899658499931819065421682853353845805458809609845214470047122465962793773485766321357419658101097555641577020645169401952742648883444199090084179348192620522362498038084446656633753644190534108479414474770005953754327122718467798822918871147878714743481646295359914802504717040699630191669844230321068258826270368680875268025016646382490224725481310574153876057795192440153309172770858501489213211742679628649065689640438653330581202706540672921861721452707174406426599238272116374363855867025072777737965732741765804267257481085515574580526976957678167925038699353280924887942433852478551787332077541654218025946411367534079918429970409210166166843397362879218657633993878981258326169747013032994379227293036087044311159293030192809029090940269209343705717243689585256919799427890630778060231851229112900240890600441937921182792009036427977519020633214713323992023679173757094946723173464207505908131997528713868766906291373303807406882042778566040959750585361370435176699966655025827308981056052708195863569577685057915454401694553521975460296058778037274058276125309996872018642713121060067700097748032829995680707048905035535457179002147265744390121812976421994209891079280639453722465355377415013959555028925988429208698189596664135763894354454349023537785821609035843992835723310412464725834358303801590418596845554791576769765039896652362572846583890588248384334591165462790754355848623647428001283487922308509626647388133620901961447286131494081187037476727169462125368300045747190221495229384437150774292935944214067021425327468737611652623405113629629131508583873219513765315335791235762926815049466146739860471975089688387102161291522101755793935844137242558971314334331309195207765458525862707813471594348504690142329374599239399135819005913881332886296678506451267454592516335051098563774752608337991770077941118295827706395537679864939994907965101680838443933624742875626554987165257701038340239353843803062731386201028594429342570182677197125632424713970740606198441450002964280820609672981105203062565951442366566592203430790619391733668345296216749361336941273924747207940887907098237223517988348319595903192711042603412305602875172518798850537408244455307176881549277599987594056215915606632397718750867412330229927324439539403599907343004886609709290011874296220049165786569426728156022210643023202753177300398491127615896521635678755123957299425220441422112201730694560322936944077237761880262168730666151158617313753662620658880536419079475973581228100927378620738567133258859493519683699635071621297619206629872037326751888184060275445242830284301080607662829901002515306288833758521495259652526680235689387662558517022560639300977934939309131212304155129045705758565513414412979900696617428962773486041084697874085927736530942852484745090666520032058685323926403357574444811694361076561587318179647022836537817172091654842692340982900485871936542813230631601495568231466289374324495919717877821307617601347205992337238134751609346093779502852879977269996399287858497723836015245591666223458008341716560802638080728205547613259350595907708471517724776745205001183633990120184889460768315770636137017090091815252296441565440338525800109298699884146063892818501734069623245621473521021720314329613050614629973814740118028928576235815199094271988148777704208455278375320884365447283760790377649386390533341707744185649664766227443971995392175492909447298398761007407306557629757464223972649975405491550029267111236892740179124726853445607211072662529430373327089251297414847902296695788741653944195523587165530647005625038875922756654662849573829931106133822664114251541597463638653045176427140224600872627879796395236577388991742518369119417774354942963773371667549241937970782750133880081099558693589128638784496903017292181621104629364027596352920934161869544816864807085497205350929148797233979468664187413358712147191175516602846551525832693791684695823815948926640457181382612357896342565147961277512929352884672561562058979771615145288318183800943165190968837068155833011822354965631400435649688717294224062404208691597423548520993270358373697422447701505815102672452201309275964591315975414388894648983157015346928199146085548617570380257738488572006956364242825763925763093319484722717531089423021883421612873962177690212802737640880367211404268670459233049334358151542655421405088676478435746392303534713323326791762342477409603093962918011774084236207407489973036439935144324114010441299944205849877178934139096175850714269190415860235202982146638812921212341143212825714472390985443101961553691315497044679428176260149442150863852456387969134153778796162157387664052318226405503778760542382240110173649983326959291336299598377716060731597835614975443078376323152361253056976734596074408393803909107760480069524985072213757942881584700803109573860356472924129876895626908204427126028999279765269287110239869626061010066397359690360704379321905383219484408088694977764132870854437087614061782198249298971878419864690677830447066966820002489658794119524887481567813023990678290390328834017822276037228210534664026462727860399348557703153716494247150192080500086672572036310640111419826230461014596979246440720121498283827582325638316817885447795572708241107674374823544658860402738694457692151807616741960611719241998810415466496855179709926329036792429119894938500147620175884688434924268565701916694161729512796255222125271583030685178265056142932563871480183572632178847255602019191003489404066552889628323739998106695335399549758346485334260127724507867239675983895850654773706327806283691925313093688079895980946272765007190046728992566396092336837641877533859301388356192221605908805049785169735988108876206825083282448619946453123030434249469083235396843722797649643297331862159720072062632568042015641386619936161589185679069651483274989689597594009625706887420978871379895348486334120526544748369477070374214846541273267230034762937932161680583190249931735379786334766720366586536020449616930867640376194238660346677865016199045686376768378363178410331213713684238379951180545540053771970888073223429074486618368838904426891934203891225349453320135124166580146196673575121909166674029944175214583139934540819968802415356306403433118988551492780191837321916373450897381308321941642674668083942117153140192475417429202048517424636874727331836971642052529276826617689881010031699301423460047478050405776187224347993692695071820947213926898212897249826889461536758571629634567906186808084065278261795554657468058230763103637533708663697541914796854576156438303455466018460820196188244556183798399197812412566480658488139313986552010836915799929337012498416515855158569659388131676518364135872963664145621642895872882085489521999467322489931770247183198426925651726282471525525808227945666577997720939978445808867965630969285642659145065226292019964167772589456740109624840729315098699372233372133994029710098247019209788394039418050015405124365344933557379956936972198594533494734382912236464271854634229636240770549113300347516758131244872523024184391824949069007658609784954500936968117001023925811683760438885008457723439879445533741908891221394488519717557210218810347174790632572080112043671422752140319363140290332729685658909865302792715494636882886933092311733034526285938485907246034360184318407447612856724464878890415882670164700248576869367438133963258343845966302261466412356795338449086330067212157802925310129881110068632587082949001859758451414809129963328517501858835149620966741980006210320843779750518773771429335641225357940615886893415056225265745771799303504857179626903988874595342272657978322753170587598981791804269876679375629737790980123348409594957564491100581521236725966339698995397240180182896759418053258708133778914573645516467707504727075241791729817919197217906440151752154855584906817868324220618855345833995858886685688210246545353712658292264346404719557792802420141821992149974302572911696807189376899478647109649365618998260393588786191320259381485680424656258175914788927484143822676880575284378113184800373645961751130869644814429882295936471674863289402420110087707131140058192632730607761182262852241944796063263427193171633601965885069070130312109343059445082438520791900433116715345569671388119081183007428401251619079273543844106784338269607692372442673945877737059949446855913921672136101583457475755339409874142687470864484317245333795411481934442125759771275735261401341918466795096763471010657827853871196506887431798190367284568443832435967741994748973027772786699026090994316181128122390713272624704094628771700075874236614521630971255880544064916550343440420553288399907445259750709586802823108331723853638875794158567170906467373003329235138038734908849689372508929717710625969411607745360564370640370534439400638466730599871763008772530377348616003258437568335044988746970516782693513047369527145396277236808287639383848863061475849357231570578767529257451803712252584596408326404216019095745041384536857596328411443173424360859259361239462751824185670742385735896184890956136154519837713564372407018931828571880216439095582746418684260233121025194594207136273650004375684562054310413737188062479093472607932037866374986890446636941854682205097450300406349229240424649151771640202035584623861880918835335091433847909415085800122629850533196618223411116512000651086637396701821702743011411044530688513962394148861546592490138561715765327504249423240055009149661226710557072579071398310469065835584776294845014862207966491576215568023278637407053865207604999649720343637252011617649095428580344033492181658777257550886119497295613518290451509731954917392201739664281468544828809642332808334817906036810375866661036984280963883680352236539815774774404311547785640403999274953193178580166707146202261188598400833743055348716059735182639407216868014573293995523538406774954683374689821962500709750788304986955999403525733418442951989732529860564168423920213095422167519498997947294108288641369886756656411552184616498390558048126071340126069784158187341440310903845705483229431536855748104734930678468069239792366236859587333456943591428903819897247760599815335066389647741853194191456580760759814188803260330074874460957222620347856380001305163398055667960136249118153590141787846105647154737633082885355575967797346104915127366651431345003600746141450285299875444312407604663580909905146592811226972649069069528763218085652545732883908088818008847037161668861046190620296605669692638685683245750897630137612070342505113728428526825938779540127296295257692210186725940233436941775570033435389201021822931005842275911805509047559974582744470077981760579680108037743635521605378425705676190629811247903022549164415550188065129242531931941541000555838979986726190946172748006904379671020770066768362414569142138642546705471922887164926968935292508003163050524603009581882823356769767519688689687468936334458100800273869905643575599533219806084791848312604254235791116526236795741409705643911852228835274133672312391582572157134867014302938081021919999385726730516569635874691591846772882449156329399085965344787921821714326697977321146228596066961264513254993186309171607086836615590356744004102170705613741887634973176163454526066939009840325104042436954890020546874775026166098325274710205023174406773103524748662002868243169342984491667950057498135764577421747968731653930638680884854966481202802537766767543702447338369985821612768221639989735206126539792822929863700480604007089725534613099806846721329866802989489743600750096441651632649863714182789449993426741688648134316186624561644165897023976190319520184348226926503819724691442217876465637837699205933385561312074030674908676559075248552380452502546340708950908602325849959635041357599714919441932217538162447621206166079843857833658229228317135223394719941085153497028508203667438574305021228921181273567203503438247233122394334154572679581752451291446221458201783865098230099068539250896105559802561831942179728604523165326667554799039620041963314524643416487649675375266792644753294888283804728102546515116703786605766159754051580982371785546823611112384597567123089741070393940944654800411160153970605420174627699998745999762635903498938280213694630395645400556607550383625743733209305392491284913885525515323936108217244813379827197755416210940782794808089943705000190037996407172658981661089872052613938938493626492496846284931924061521678479223270363723577990231972660915012402395625088484461673499264183897829899120249008550614009034795818856684389740322863432971204940501651874871268475171255084022016637097244891174211545627017097073291934963977865479042847235670077951061456856823830096096692839203673474707412134984262273285999030773443863838231692119626016088156217333044065155501984064407064821022935115583902968483348187315637445925739123947859433113128697321445330428468241418449284234878166140959097874942998986756528841440635676047875337799725268434430809109719596883688915674568482678659514777017570706338016183196127878171478421307538402560123088183648716958392740853126387205300022010397082145531061992785501378224979790085104537885021022266308721669724188546485261855367837683341759087330692185034487760452345286138471501651241302663137544728017823505558698779804879819740759416019945248482329152619947141946420488539688907831943016539488485588199922042429643056661199936982475340804669276620454282024237811698672358196128673664630057327508543236679520019626034047778150784713241563470968220579126421522969916429834960360126497941968346090458967776021661394090369891311954460945102640851949592790824216923656495415724333904941540859657503684701091624465590396797658902229246064025535570276503475733685726713795305943379568260627985167014507584478673934314234885590888416976693116498599974714419877474738117559265436828697868747466037384926297418194518038208442445807085197820226044295990763682539423333086705274173257037606068953607272648558775534167306164195475179801009490043570897231447528371853806353952922212096521788193018044641498958762288217647538940060009376918820595439315754595339487653791652081211093652957647172226847451465235993573955346151419544363676114018905267267768036872056859641183591313611514123160815430706857822937236021593392745328143873923083436479105373168436015110570788364479797961735550830503355601949403499138177815319092453822111905345619503285376590020860412702586082856784948885441341778754180129441961440978342481698970230041188146347298772624265794723746581347676187736181570700213932415924870601576016769298022054169439054277325755967327661492744096680153619034431779580784259513803843119030188112064299161870677647487402565544851881322948683804321658020218454725786210434026025251745072857767934679641788386197741600429861427341308625619119176706886014410346618928498788046491611260105863836239646215200123118879734567308386870142869978275276498769574115159812425198188130696326553754452978200224609454877950835664541638563699028904245311327621716928994538925710854871813447552949299248411823567144084699559138254734506010974265838440422696130222139804965085491727012415514218826937835766389405079911307172026437341222426117836616414119111210195546575538484104864068997364738396274924994178234358630737224095593801880618677771596157092560905499570839609066693841659678347024482725109106921116866102897828025337509974688825877083494598426635102451208898802994903402281644697468079620683212074463466798639501129403001227375557508522663861708559205216702129112541523983740668247365852157549764219286525078712932496417099679466060968341327249564183902656741046304617342416403691040240495088972566209581906830806496507832642279638749535037106033866115917209038654137155410415501149513130672667412027840198248007802016352319600782635379176578825281698460461559272386825034480497439051192128298386880309837356509511069438062699223698857462318355433505826513537519004893810008147333454765340431416104737150307615408854234799973221808132243479949750635178881205824474518529996949303526864034785010561158725591431937318327418691546783101037817266132969058987604010235814803715709778262581817760709488689603128377133972098358238011024874397855777805064997071825941531902603569952691866593312939202138657254002813659103798139758363361050725076285850047361486107605340826220546767001653942874358069176739519185988927169761099388512492982775234685535788232511772797692895390119067475869321127077180083431435442717103759113797316988251444086940995201315608083232704949101763867646972084923038325182953980550896034491533770927088431374434836909280503893378653056723477336127887886229027735639425219116770281371056504313659351855894952140431131911048433424624029452794419918685517305674589389907318394254422608997462637450794779922260576336390871735113812511938128877422758458978749919974012245419283344374547077551528633667217255596686965003759315090267404503132513211154053727521853880314646397250902357974707265199757382294730621626941483206780104132558153202891912035153981432458747464319734906320426207873517576213773060272701551055035741729516651276311903998656010645997957184040639929744277117200282629447005749637248631413217079013766941960340208356483717169243774550815039238572188742089330601083856201600668220545866395739876207170872212545112657793754834126850600961270936690135584138018974198269865128743922100417232283496336451560160623365325347966493408667400201974143014236535741893773359133325638420198712221254095956693830776989925975444471385565657251244093683402308366316274676819221705008554636395008853681769443775527057405973795523578130621839801095530078000253303130305784658482184850831336685993696309112919987236355351266562922430788220580461699571519688023778243584699234257059284816519366774153101426407132470712880120850911637517710260513062017996470885888097943863613419742256087197417088294118484964410706970028647667016662331192256334876125379502551984698587896437668664961399378463560906845433467851827731767101052356461702505833267725616965989790928956182951398844021783693601159831051584222340592492289515197330643414950212834366878583646954360506693820995306981300925106156754698236181442787755482104544207913830410468703453594481402141728399478895050530878235610012033739023160935376097522051330873419778244359305506016557632950571589941188939269099167198370784894682477143749140522472110752307319530670069693322111320572179474174326473854430149173690100170820068947123350789476404898529608897032785762287729187633184686212721353103895743392203351574693302030102100484038543693221852807766015144232539779044375619408973366442176577404855331771700499052888419052210621028472306934020785889925950802569823558696575599919926425242790058652713104314061153808139188303200971251762808026391510870092360019823363774488696440148646648998060448724530683503186669852525417587200929222130624875703645447403311596279297467163384456200138064750288734038558175063995597462960002150005111649193515726046658166135902991001026251408958570037092833888183720585232932883771302757572158588422216635724456503730956419961984805439947033231033525031646454803054223306630632984689463953910541925406256482033249007072868257178384042910751073271754652915045343855163141993527043683945059394006430836521496976954025395482617220544770185120523646147941161751862355409837228228224414926921658146676555963409863011430461479318803770192546826408119327197979223420184877733470511382287797402365570640578339109416038021729117738825980455301782583524188069260230062292340104930886785719482664355375969023085546009489633222356337168703078711640995669389215898518799649436983987160011409143443605885804980958618448419713378358316406017237514556459999343433473084009745029159705038043507444978534550289848861950106188612046035372706826369890938003323245512508874695760097072655466093023079160075200802454998736008775996010475843588369236555263209183202049724409897426888880656565926810291643452543012002838255428318179934138080495533293110628424573055590662314796498804285610314378282555863059600337855790279608140198513129793202419146626554274789058760498938518060066656755410527963837984279614553356892043428927492305723347485968477671725246748558146058258425570389229718153677102427062969226274419996990256838685549227298398276766248092774142014535185274354746328424477923273243540116766612612984253053679856819660691206765235107993898608255868486727715136334259809118281470965738948542869076680263527094311701671844503484017112469709168050781833768473875309003697176427104272881080034843160206983381236247794157431576484723576678982627170150752602941506812321948243070187899265622117492447943721613185097163075269780292474386619001054659824592423683739467189864363861582501135948215130994967951317236788896604561467414232259992710888640440270675967416270109809234381844513893292559381660732864799352159016549650728929337707114789586429763457188134063582181505028091377646820616604535499173363297995662553462090993467499855525022226513730842075629514900116624327814882657074559508605991140697454603054498634472355584455043693255520732104043357132539819950319012521659835144673532669453759995510615131507302477495250620459093431031503696944542182959308979361135183831841497036276802391233600810831284327016873549970949742234830803877990213624032328527738203599904566347311228694187271890317678778689445724299316016300968760873444465220419684494317471220478439402095278682572496879757477033026188266833948423052850726105731321706660761597072181502260280327339859766678824605836086660868658211336229251921360375446215499107994432796988954776087709281372075552947886181755799618037429410010436009558961920628499536275519974327760713895324364811071560146443180638670578480613364150427388698829391851844468456224159790232108657832057027769994390610236244805966478640572394638041311084462489746066922241767552882509158955217783474401223032370415513251513086461805847710353118307408774608937502204317460802847836413942086511710267250551842786928237172193213541602189290374775049071683834099331705972392327413140158822618854508754575355195583290406100503185257536217854952911744257017289216754491163131840166494167566955332258619873067899745709287051372437584031277557652505170909391932885032953280732272594755585705804413275500052929958748156833040173523997120800773599489056378730386335863950461149739042287392456886033071037588029728563546027419862199062385604289081494960745503449470626488841616762777865063007422581316949554477047456759059001672299203464676348079485468016659651228589554280415726782770903124393945388465208845505432497222713975836675399831390415460459747444153743255113586051450494503211565058515223083685024796897370353128285154435681076037066673205327905106245109163983174743076782973318537038098874671405872955011041407013106150870128876348107006389295012306541113253794992706915419834542984250371007060637457121649663230177109188792474166690979183741117453930787562551897255170657286801404943679843886344844232614852391771228805193325607344634899095360261314245732452947847930671119438918694960980276733049803597775703394867434827376943027184912573170996082279822001995253592994793552915473781317442579851988585821870393171123498760052568051410955269186277581455118947567323243275897278117561459971453733129857197708736529613532698004609159182168571611551296877741903017224764292152935724307240227758130206353903378691089351416700542156568785101725181664697560728380385648305005023517757789832732537584549786026779411492058642354908433372870326178868497611596842665579835334317800053914647360053052293640658281965720117494168247710576362151932518156213951995219817474614501201988479009949748813035806292919947328808584764722540963803269761517873052010278986835494546530804490884982584892588828743196144138276039439604955110107780762005806754535789680418668039499659274162656246601734139312810414851424555547569362919997414172571701856035184550463611983119682908101882799962910009314627015071406478752577231585318062245079305043790394431382128916009169350074597832323406870302068342351898396893424280588125649788185395370694696366184680510447675524506473352813145466355538782354936752333633330646337591408306803147375981275195512468751175538363056770324923723933029524441399075676298606219217339147818552917705631105098251699402257753308547136873210256140894311257726096278375880402986078763183053771851529359599793605409902351287428050031173115182442018910562756492933570110824549117252489416921888973439857016812857491852202670020068810451469109244987836869164653501577053626964835114837460422988192141527068428329260491213912152758950118199213525913318413430705423810351533546951913492312114761568354942935726560085057895897366931297954721327696459049041855393025464226129195421266147373716012005005313758243335806080731463790427183851947603416169944401000574271282806053341577891484260339459408056132224437796241459672270364154561470662073494091772085469181168026519640205283956325537911609332554453836810079444253851182517359061998447378432056891255070219654268847371590794720620398839690740226701518804862062153226982801112400097851278193835779261707193124002931529595003553319849269940032650308489826885089654012198265419204847214448962104013041255239009711329623898661702257236650943101897060228178180389300360645182729790737874429473524818759468349611461927103549323948000650342888007898887711943691904616035146985541952707995278587310734537972980292736169601444021550598822762837969998998697366950524147333706668652141067733653952283844765179731257136137421878359839828241829774676988783604646598078016382114387232208890949004339501975387374366359186003772396913180956112349519109749849547625991792916648688589478734918143795715005135200875030292803122545396566098710722515928716607716320859128311207648248518956804547226225410434648511615946634158700018862727855707185329517310939765833013186143102502567372031425707809963347684220458964303765094922005464318411244232777618824162704316209383000832671202383600298290948438579417379581700132352167348630454083124774760421850659967255166941191516041656197950007577169312239479374306847659300284829534755395743405904477758976614985765620579952371872298230396349783057313885003421196954469053617168388492978028790237859295457565523693258098113390521115555961177807872504511460470048652687621734105159307575430434933635020445450818352914526661651136882876884199069711191705952188874824629982117252056911694958891547398673745553263995918522179216412280615757790266979315062679947646016655433244666793026750535775460630832104499607914970212248194528855215619315428293821211567009701213857314677923314775896606420614103525144470378878784701171147776097047682295082598918500799123759942601743835503439051480251408879340014861138304495507600185528764489146889761515631776210481975459728603581327334275547214511882762334497612462520243375899309937260767789665287292710068838129426610735597295137316830937253983079818668034977348731844495059852153477673486851565562048469076911840857392316902651216776689951189551414045512782594728305253818561914789452646053618962499437653161558867442670294065192768992020104073222882266796499988918801397707585154933035670830410202625553906942715986397594025286667873084858503364270163413064129410073735845029500366582018360372736620385590434025560799733595651030252626574770238377525767022310427695511473855273336343527207301854956136250878222897118042505781968619307361172448121298442389277432579884311610130000695992813990046027550690591197342255639121354719511654536190309763886989496747649610911485008901611214377990602166367170842309533090853550045354845205723048170019696999108667129287911021098009864012999459094566947650743863601386727861898537899418840989402283478304405255480023381569729722492036739633738696137705046031737818490931750412667866658907861142604040396134635795113141381264680297162032792131054419286943458152810779594405511416207588959246135510640268802892995567649390479623279110556641091279808864848833724269662802804613326525522317106943114523553759140839865199250525493591482191786316234060377023143731392038855663091878040843901402369427535003793305313433769951663004992298857234139860639247049877200484555112043653476287911295657497388416622087992400542038895811023889890737625768227797072409574557870014284768971334618100283097824917971614214211653173691766560593095409731016913087934793848442501406318605349590083633300644613040731528123022828889912030789488135487376265241979330583482985294824805312055863422332608448698315003490020762910533866842746080698863459974497135293468337071936147105104536909874835665359971517670334664633464041816899502833399131250374192510686264127653119074216200244662514258533276862425220490737185850025229819596815139225425391915100764412331749241992637827069545174992389885414337201948895292939410431383096148596165992307311888266321467136307835694863880039400382651705770960312375605419209786893649673120917646652618834792264644111251877200912044957022770384221020848954662265149039865104806043197567694090384595282689968126311132908872580979516361093330679759509230371570551802017283523811907077401498404876307056942524020222054874741833417104762924914607681358439827229983934847097505275567234572261095746140241506173120069543462746397752487585801600811547767099970865299675941715559115392428840661902406160201941147265752241063259523440996850154912524663259179186729776691460614354006309618800552293866970962610604091690182541526597598195198556804152424921328621706943366845033541654731946857869118426551172243443528753100914781499048872012684450407793038351898064111823539443331340156448001817195031256123455075516367252140994031566186373230201995613892974732799191506908383890372980366164909028823467700667911118892144206750614588800718228999104722446636342532772114913003938499782883811718231491488333574970962788077052758753429644172047754976033617017425960997232364650698361228282016718146309877380610139222886339219705130672266011824685969848798208026833021889291475765790580243857074710574506456641335259981248140046132274852054707755117615772226513586853021003300698132393357735981622445743119804150733557524169174281109395055625141886267617049170178774321293986447514700372232709192835823237513112250769161575425664006317498147538520181796881529061875745626737807496852424984299154308008584864051358644396401184795536474846130107477686728030955449473301866569354518436870611512728247288501487738862335312142143000005381066324732328622210293914864103200242471016081982111408420396319903835857324620960694521125229075419940276635803214579238211104394013254801316985782547880375158826612812775760893179322993312944993841531827002543248566456754558666472088795787829913532319797454538749578015113757023245960264032007726349481052782706311965142453675987940823217952703126785245474335422402536509572449980907854135979148378907696695196158649093394505258812175958725888488503516387319885471025433320844140811417659029667765757817025511562839417218853579336120991640187176417302282895296868293782534592222305087600436074476650227453856068354156855502699205497269186344770572308262793003985415745238277736531496761016285743702704690713348017930617610539210029372773134203379281857104767054795219443052508866684103375244977490173547758334481607854625790755270464667208387031929839738608732714559782278824964086831466217590992203861947031467561065248393181485967942471627297482457134222330712434795259976350535659400243706441248791970290372041711832757268794951199464322601314129723115139606454477175331499081249098910558724413464403580053772437487068458465408863790118405302532413405689868327033065605259797780873067176294861283410835885207452276221492678246088504801064140801658886939191048565629309551596332684174822297296091159536905677920921255167877911807025086419814742685867192181111592677327257229059031810400076586729130206929011849768453379459408363477756676362826847597024086013369339396216452819019240220051374154719820808691572062579716953617234612976737500974686669649893598278442774810643585823438305199901492579269175846431743094807747475133184223341613299223092954203830146889686804273653909129415145604130168146663377095467037537169736597976036617597645996933111364434676966232564449702812575568457496391294478090472183995239526624046902574851899658813577000201628802593352037333128577639347816983606324520904770518464902510591468550140099399215835128217233527651010456986505455839900792186647031976885652196461867104438701659100249892454319831955007328352352607123910976957206855800231599721064936829305802704173322719336918578398252886587942773524629803465849492310941287431663888108841395819761796114465511852848213839039734763790277869826414603855034712213410002902548073219697444717344032802744852282630997822105248483395299301918941349994137067691495882675236846966320951263721004458900365442034150619980904119827973584735553767078259268999078936955298790329368333775954806482201586845526030216276830836904746505921526552302062348464834595114478159959294734754381418894502863482112379801108539001211617750760579056725608648977632992964282688122368682350247702318413485661401055284415682631534457900654395848672435749039631509318500720161090794933025578685330426262504601298202937137659968944213956601869293624132989663190629565025284079785126416138007175633583059614431229623374429582334213571821069482723111424147582659886836711630989011180068681509483346655198440175988129900338568900055886269478612280561931557624309265490830496043504022226106936707770143649394200415828587988077668167352454650425831156156617879895164753766070346429300946870426357401526890621661425049393876693423830599234619825691308160966374009475251407485081622122943167296888845236978389351125474002987118633483784018395210240734858168522258290714457320570758576854589135092255451140902474485402354941439592335499574523791787154134765214900249922629961934115681766925685092242377758755607288261524735597368957861013434276216876391350569355613495271427680054367063565556107115085700447908764324020683226586635374891869338680845221270219490627671312098971160782315753979379211234317864735942289731857312102050600995946445890587337318739052004355036011562305676451079107420729058294191284778276264430599224658952504427966083064459795782281928063465803786458561515421925539774190659627240392402045499370341273745614806022287495243803039613163120025671114858714039981905022535991622500161740853131035359958795232060195517504081955186085670546782760241966133365153258062157257915928399845784711497218472269058377194895853169451980658724944382280962917545854534088994511517217850569258015163309821108035220426115181414769190276057598942103934186535957422478922141103938232700816422414428021027697007359338440964257540675870916696000115755858301873940813975463354533719679237968038416188797162363982690179777779247984797653297709371095163452916881723130250875766726943515778979977802453796462411156368572726492236271424374572556790074634381842891497984061215801183163656670264204834054063411775511000198621634241271831599052111157958309287324233824770400222253664258863299413234957604013272461688802449445961978526419005894809477806449470716737552733136265708637234901018418579921123339930029781102711552592871162152862036537891074941194876380886439842542116665863511180329663501795941638341851972291089432054916108525817141410500446406678646176389108161296207796427116037821042089462951935658551932659099518138985486285965507947048230195852514087741368172906997054417000958442171675454516908528689334720948824008546440441305458560418165321309587733807565197637942805499586814723916617557201166529840224891465786148291933566760643017703524975488764454337013750646134989222744459647311115430272866302645079364050232441246290230515058858377481001694030568437489347533733896033645773790600053540418129736431530714911750872631065519193219516947624787585177769518855934538722329905581416940285048344826621599908022643969358291765826834969499152749800570136211423045948294932630785452164943652763945385374264194904193367412409448573045949829743783742812587555907770293791879064965765044592017991583744420436504350272269092832148573198998306045699992462119451201409404809719412457050344877429943758805577603132254505060230780791724490830076822742125537780100143595247942289587967407266108500260539116902063022659734132792972511359278044477324238676429687587350561838597117420242376313567849932940170150499438295494672112837264735968454425937548956348364663587097856776473246958778187068326802347142574588570904524486039271836690421162531131658201997602600047262449391235465653067556627778610317497968867264604309827509497141959265999846131641858856458237348566733055816049127254574723510217808461985620109230364363941939528663429513346250260340644699764620708836838449419628439451959372474941613929594578803967334914453451567368645153323376418016158596578799484565469845742501122416166525973885713867169003492536722508124192005773246671850212425689597546304301874534385314492132436605928093047810038940474450763674496551603404357750426537066699063323588307445275808860995383540679435212957586702254604702138989203711611335240758788600408937363420014199987328759411988892987057584135123392474802989302428175558274351430052399062593905527749300176406777622783545457845273387021878850553637591250558433267641966006503770913270860052254649019017056999558582806445349412323421852352477720850738064388676888538414312393931611784404749990295851388606178753096250196399203831242164855361414502889046417858704988373716131196032458463019743913748721938045168236885435238735099146763146854737167015286649905078479555515632213308042135726703362226311248936335174402664249320758570185018127979120255077765575376414955556187019055651610509493781265393428792468100107165179697918816739039847853435401967988643711713980301515042380562648036110084391470437600095779155205745217792201115069476863837194618447229481514972650095569810196168172765337721853955923409845019922022848608967285285339807365901083982124786065638281945516547822336303262742516047518175946692206588228425452068689503082033289651595768232843572226824993651161152518196026332609713935144248609089747175987643968306394822189021517197252685558157226327835091344319013414703595140014866830688837537423075566754925599771990944237844846842646675605563110582486110492955323598647373700593772881674036163487711040874793704948824400547058244233711950472520350496530221027865158013368116145952086104019917271533332820525378345785968240386873811102721701446731203702243149742417105416107361064243609547342055133105900801940392821963370556820067459134354403332634425523824004966018718457350212851847132483549808123176182445999280649604596425961962236161434780999194942665820935910315220732672569955007297079883085076584349169219637473355918712554255705883030066542908144245386092092453975522371807458526067841388810012175595335640310742199141775348032496929871699122080984665863186616501925085440846944514541831346966203438054256173629386863382302167032538202876993314609150359652030744907604243625560160591006946075997162791037891642264497901240669554756047028070949260677724440407590472091903742247607875288277978540408089874686999564931860762255156167327085464579591325618422582680774779271406647093133614877260990088771158515318237419023087176717229369367707178062064474603450498302972061483896595038891815348002742852313134604059499610599566375005171965612355400471546075479874288973522730924253824282174209773801461368396839216817159148723332563399523416942149959993843054330424556334082665311822428539713192203703311712179317793994352238637878094502183777598929332324814012047377636135321626635789184429578647943547451351377359925435645212316612892004324906147980592735974868662955039860256418966022442682532104565399576020685170060760836403745123309983480425277955800727218935771664291233842291612152539212171128155190818224212565933897461246493931630156632228798686810706857749284369467176684901344180256171268685047352213608948614883364730860183936661929964005117178909884870727775472969982580260970639547031489825721539666260968075875458216233319324898012592333529699175382919063078726807144715344561044063367731251002742038884760657029996352059071002597565963181995175518816927335085483290876354304399809421918876143970491446420536885316801184296163040667495409386414468469908317145784150191170086451876871768908933940000672340454232361423119448471262263708935592127115494814580411114090550314438357844336088073335779617371190429607298657538454769614972081367708548052116190184953214619312545225825248335521309413367699794416125918473935347311108780862925231851139856626424956045747015993990108470011309402626911267740989697189230652390885493329553821839090704259509647815626880842254993408278033480763930957096966314363357724483874668366330313326608230660143205378747070149212813324021352051448820930247257960674016557052631398669454955413996336992028906160194511425031061361648328374210676551248184714836647683334793454093049855152459545962105772846717881612445377393894032377606809093131667692795265213753200480938001023822246269320693378626274882506819369372633789640772821336806886225495452916301087033226707126241580563317389802954310007095953252588078649141287036287076218016301677335427120762232690151841695193846932550658233603732892201290884540567785953704249401505444366082660102125624551957328100338321345367402401713130167504974725689664004598190140876249744661549747151915675544089259405518585059561234157259482514258922139608931521150255254208903854087423212235475650707738461015629728313707202976931454742378944018087758457287455595112119454077461277562735293168891216805355324250404056581917484315361566666328627079580288026053297734648682649171058359414408111972048431236140002923998611831809659808151050097456362581548887122755297065973386711362013129292531834114584339606452042512398542831144752879382853807203853780284777391352018297022988275781839563776214468553186367250575997590104972861618816219363378408288192475349645033435037868151698875586284984458444238835724381293588969211786408326467465966092732635180731735766570144966646590609348942949940497975204788422415513416905535041661840920532754187609595126983758296344955287566634718736066627843808270491244087051425883251481624828228775913079717512555227678581444055677509139416472141756489911370679328124494549634979697021049627984675932863206409695632405065740756156722316728497382473244181179251972166839709708263761606897366571417301676116459145455388719761655676560838607744552283116458691161192081939352319550190117657131679542990824299686292302003671408138932835322122058970864784568539421336973791788096427297755091086443387318287032641198812744429143131398623625067190447440796231910732825249189859071626866321930014928999849509493434585540950094254389650874240040560717180138694289878566573322130143732350428080154472836002569856153209451737674565412840305558106025801139589265987035695616670597626342738738501238648056370296658549427169854807386936460204975267805438978624138439797311556965279615851259998297594293852425200512701540843013705974413929442657009323768046403439655544338148996347209243318455968529194281160669814459599480949536319775352429944818355705955906487008544356573328366455976485894430229839270711608151258279908849058618326309785499237535961350123454338214281856482248633358577660251455605173388593716176793715495134515026785054059466318529804345222727467187997393283466554597407651242622611449987987268483796975016198791935240266543770157088343801184970489936977492068212820684335665073610611573032908719283036903214167779965432159588313297160805922157502782884005996704270141399814755891234490477106305932858910563594105205030118034014521361925527256934594226562233751245222680317403076725599117999534166385608244113169667233095633373317830852084103930002611184689023122790407498536763908129724318367766949993432126269989307030100056093898706101384742949246343019172602547451180700238407431804829235599223801461791228599847898224801918225488391724346548369471043625631505427784482783617508066365143671305459718363383528653368701338060615548968944247780403099312694739769177617711348731058697265914067560858453050030089161970058268252872418330732098433140390562359630964578166795027533535675203178407686202602906235555362840365968243437456611161912363417022807087236625377903489399251033595108160002383119892846821049505423766908228912989097114775822078628346085304706557734710122080831116101929910562466522330733434989634189328043770203206878604569806956462787239375559549882730648670242402087503485396244255673275383770531847554189200055365395818244200447356671636785324930190014534124313082704885132464246523620360172018942875788684138441510198445432258955725893235755026414503108389233765543648261761123369790176608436917930011284152485565279132906307896091263649215960220070369068789081335489210808869130305085834025299736667903720643010578179231788087293391133180397296057414903466760908789416673928449140116959331819894137999102208720374222407696459020517823262688039285566732402678248662165253949310205178335024969474394600708290653109329769784879393080768202672203925384564542013515308728925103465268158773965073569550233988794447075760536399679560304464123998664226685644402694090573982928045607909519335488487315992132359814249591606269132362032977906129684561887029353974874469307627249727329301348750522886069038513145257389201323774538726998873801123895009437406343469967648396732407833714045614453382034608185484935315123113560542506682100507042204583757548426391353682915677866692944728389015705062680318216688417895260675685250982046133973171006194368920266696445227735626610316869953191051647766860039805226296169478772306177292740796798484396806658460152988136868656301056566330445898793434709884179302955604908952304846675467506844831130739604437132336389690487856657976082136222740432393360555740374531167045242870411066714468254514531091319608108001137253516051965100769808579009850178547486346913081092779875175751839568492314105744639991050623874581697626182085362098903190490140187485717506895901952799222733153842432799247302517718587769825920941482346030382088607305297766616904500761383848035307408328254209396828787789251094387270955550295456908671422314362119888469749346506697237578445777540126032577009619872440333920954591875631513154242172899624260674959950294999094263972758950322575055464562665235065217398359475863451251855868589247411717753316429912963632134791659102011508252909606208968714188299328905161179555980491363314949052566929538356517328908143820541291047902100540950150727032239242196520577583347374477474875737888471003391606633799937823086603483102296115660119997163670745964283481203241847359142113212798118739920919567220989736152961423146799203487256036099533626966818428060183483079247606701237436701927807206387184173719847881965741222759151439226249226975852934584001504802574176033419395069288079189589318463621357127164078147291100798736474261381295837387897633452215729121616396031451239359717560791527850905452304688299832499909292359916341652217669113910532798696159161657246531650511557469417857258470263706464858102395668303542050504470333943902732208162364369824382172935231156436896716309807083839677341897813902966979895020025083029610173123862261022427623327445433038824854197145130559793718129350661112380814605864221285506916470081851892624706383762470857908645909310148924496143303215035338679703071827909514719707791232839772551428851134839183962476041314096342859812192072965237220809064656581491767211771942835220749087051336210653563776362436965288205035022978060822503924988656624811055776856407716684295635509784994697812275723789448841227146398386671622613928241852417261425362005767154341456692204654142255090153957563470346186543801380493017771986508938452648705182321062585550097281083998371725508594049734123173810961778339991361060000672498907879050398325373240720743842179766489238640320646467660843157663993736696850896642490649590206006200256566576634332359737995927767391223232022034574030889166156720388094677862478934402119284723251180944868281654809579337001797052600345979770004925541703089138797355694412581313422818406232723102138653550545881306708237226737230801025476082669228204105640144033957857585611587355604614279413235382503737641316999718822024698625808754015727681880298577630132476739766053317988518764491563779642261333111312970788796603212624631246115560940474672070566450902024188507026030227248641080501802836958400880870573422769810773690075862719346736103845746010192440936544273594816144382320829834921023189664451499375025033519488371566692397119196286818447971776121218933547065957672407464098087631550026923169348732345586562314020489178508231838679812488889752027459893244771227858686898423570209891153226458297087237520608677121222524956971724063616425224533694857950699540247685729277270173081181831887115207347321362602860773391320900062690529008481418522823536884826162358339034422044424383406214796931289385003844416339157374252697441563535155640571389438345515301135389596262632879966507972642844462008769900635314063172632137951818385658843184887969059722925482476633520330779141908855225760852567357035684476606730096569112220424833554422341090434310731423923305925973021973098248394692795929750188852503783273498104854717408745881554873614173651361379988128535613140453256771513853271357315246208014812232895560319938810443844771229582426238230265360705429112772999986421749682996394163976286888972332465476562776946148794988332443568991441803106204033563413579999443329593374768310846947031059457989671958105977891477853507115170610991983204244285064092366118253081781076216107104875341485081952691117294425048116446981343752054906108598018890515696490310540227007441784071407409432454500434472411690498530046427541653387657595464393502048921420136996425386256733401481510422618986580061701963787290418006804493881457898303923190953237718736259991530736977110660843921479003922958025105425945624376589167985710729537664504905501420082047310131808617156290298009862259046289154322096672465450234630314640066627484287105633909247497382809319852467357206211224297465012517540711798931571745369953819714413703952237525152451685870270818739818067910026376768587836072511606927240656270429899920458446476640661742433431774323044792014106990088043164318511186383266737582557958278563064199414929695333832548250333098074009813949528174138274143300362446815821424215791301551090876374439380135086356226759758646999393435357283711895144129179174704164603571921540469721537244774339277625533382272190764840554022525079160607222764374278090357169207379465878247938666671468141931966412503599659456020162440929198378508947611799766156744434641128463048413637999226087709880056805585015239284029414440299759718237655070103683231477794409516346948424978403944425113595091754753530743264997372483677646481042339091132591433686048813247347387690987740007439032300525132467408205114121145299819619830129480178121491031942220192541721337496647886645148008741455537009788199512138174241569048881148429370025582688257250781957059838857957534635832551382358670407420786126897945580832725522202884229915097767434669247550212167140125125707101548830874927246126060996809927389263613547305636624620436064521131705994859683816145285430507924650540316577356666612963038812977835918333648321296978672848908073389820583627430125048807710207553050309490549890652474497370402568284282833656922806926515531612092924233178079036650508519004268097846075938823241976595481351350573788362988650633435127103796297977091842046792273546825133867897399440849161395587827599644429175121804460537681121934581691269067025215145154789217761469638483220432791682135767897766807869788460549278527232570604807413767111920120679214197599450158379316915334364318197022779943484592087252082055566864486060631202163380945560297805198981022799764517409666866921393366511312691011273914135580166822628532901033462435634738483866890748795298985982994356616692939825671188660023311918254666701962556695153830397495318994483191758131083051911197401029265037173702573586127975053112460915474192473872559470782574403297705113722021338355440071697185685483328423532783878500608991929606669048871854843753560466416157455542641040488834579288573067838009772009164166787411159961163524130705583954397032076156167488246971766152143413037523189104735208228455483477513446205626639292409740785583696870415878781591251460691284384846422039780335324411790989987655331233143770381752664053213144464949040623760570737257559572315502504464535268098294693539113974644702819706078218232710622274057991847139718286231409914624927966954106580708526129029102221744901698091079709701839555112545021017243828949441863779563202024034284972912761428694582289159665479634650331953538872616860445191546643316632233568495549373366543260750672141898237470859592963189273004569422269489035874153866193480071711337576938255363033847055924375587239858054658957097079506945463845280891612359702805588766938093564576058315381866033274280068718617847773132104029122892081243057699157819804127470438585847224305985060278114026004953732084674806231428133454582914415464005887063923832924663057299711556317057321870106865168307945967613812240923399456921660027385345194288302562674021665101294969787074914469313911886777275490866276377345327444758307355049680538525681470619312201110285560817295787712019998092362163467024080503772403469088438297748233661397222764515790193817137057327349176798867112502452825441096593540677780846136160364098813432414339194963405108828360600813849306743228700549871560719109710909832197672932342805704958194288555317321289309614716107729754651558680087656769292783153099189654804637472471211461202307650303537537789983191622580412717935241525579675226776390747122279367600536501951387793540560113689968560196116389988573256910273141017571604663033256145132344470779026255204677672043123197894274325087590386134038551189082918741834609203817815702989536035589269877367898485868608399218772260989835862833455751635302398075436859911976481479662388554130436043823204587265977827585868377229354738828493260060856428303352863197909126386622535933853752262925960742553331506315953628488830552502141748516897944460105313099676731618577464559680903325755703612983086450838167326701219869938681720034034551472419439248419558552636863336333735997667704158030334101081893756363087476453229657375274796650034101621049939866739810722555586078491225703713121992790941504881429715186249987915409239275204831991744941492707404105428142198191280446766707509102874407942762986466446675850948684102393189143661925819889977966513330070344128527019871063972771179309366799147138899607905342023155435149380969192875819461435860567859549052548626656311373581906311784995713198014022159136431231621493327422410155977544336896670100513218822011507702800032924516455600650412483713980618861631118298109017126259704466219784106197923800121787065384960221584600568103919869449066217596466435672837747629910542294857973064464070889807775304606728495749604151197152119686996891581450206156225193186002695487358543404232065078955455345088161481342759730770958026559405509766520342267701323746613217997695221761492740969160417790763672083154383768437132242957553241083494619496251224789453815505136886036213592575943548981207699114069069372841678303335613213719657794484269763943609070412198103597099846387008142472523299847830559824832041339118216802153716266777870457670124655616468857965575930839878014124511893598742525988808736806716670533944739047984163317919058861237253479249294188049268263118244108155877682975223718553876055535455315627469171568896991116295334869048423844483009249659535494820266468785283340473701552574299344207000486798783050184320808097486502217706788707412599903733645546130801891121300417976955118199640679743500461729256799074299307674259790999594045618619295978370001949515990893546690059066568677993673582176935603835795323320311264001110209673884498538553256827355952181188464597936628857485874349677398378163400219789307013015066457898830454104262389358941051789808765910154890047792693545754975471801291954975993516553538480817297271595565883653044780044559668972877956065846284148609701322146424319646023530968630021283907911135554380177305346374353108782975541069466921048098088698161614410478833498516746544231055707034523630895338176104583243164820747167604712637621196019064307199072628453433171944337717502949159335874556790955059741324166934954568713716417696878458598756686044092993980792564476928093290664061920609887253984981447831661823563279613617361699691396239226883757144737031431072579204363817667547996066580189524698670751544263608928078708518373359570317226909042569902655931578248338393127151049995374346517691457464338394298268795854632750998532027881225793916316513730073544324290709924656279719160039455038749010624214353791031468701799647604281557320432461415314340128238414913959248825621549062627303049595988181714002221379335275212812430670954533153076758378751271324590349410011376374347055462296077546095065435262160164035499695125803469879194384866603902539231880673503666060944096322984134783253663599686411250738325413838654537696357580646370293877117696986379675408569909710222984447330067510437529444670884801140103402551429961333266803667409643841510856617776311436581833381092754329154033947790557709008776865800717192291010740446893548381694895402048131787056698432416135908540596549587813677077336329886252844167727147485443064466600675742505976889577402136536617275760794103130232249983999148879261557872040369582340168049894196558392662768049474874160173191137223154930374985419645719329122614503070728069324396693560817967935838825303589624484054065685928017805246443926184964418051909329091696973588102583364787635523256769217071920798244768141911541844481376182415397264360292527830860854702970309695117208136842093023052632831329034178109671411652913795685582928569757480434988343974096464194355216475258899298872287006889251683240358894290934944753409112627604524172332000766257608509238459947717413300364876629661210570748584617937246425455207650939931458079406842936359869841100255813631512421155042043427532661647176311123617301708320359137966846278328198058633574279125973696255574880078517484762977321412183367642878027047046286369721958463516037575230161690593296476258843965888036809454204256692841359828094523896100046631743219138166055969200539837536448582550908714268162522041144744899641350149296643658426990828787606609461612325778321511245838745441485391237593739150745275760967574729533704894644614986909037615345968702268355453020027664796512323049591510490055722387361243867804006634562509962325413822401066813015790663759631631951318426502120916283883482216437697979458205299104056348890802822764834937962898531919542720147444792659599540101438462133624530208215987408414783647248868059995765088600591299721961862229230910387322359499966248481203189842851254243903507362942379385807390498178138730142671230729253986122495689765042575951338040018375158902083193640508604308969005725347964596947063960461692868423347980925138456748804317116512745125803001533603089567325868717827173853269524972530026826338365226538750093575500627940753419843597254412947749755145115149368943236701860839536196727870844739740153916660136742642505093206827331723631929021023167646485818811830349106239639324695142799326732901866687218639054821935198911508728888409383813235311035247430121830395975339853994049021797219418651228547575263549800466223658075870033118545831571961372352917639606706992757035100137981284760374320248003522846470698192575968218059763026990854929486472857304734528046671650717208031558721526187765016613661609529747013719568367991362083100697024565416254863582465291038045769299329829781689406822267501238154189592001407707332871640608219355170808403384912720358384624460805429271071332781700744032455331321932082457645333336870307256449055975510860393005721140325139898988600985282498783154980516005773947990378614971201307336286658411171940197796914421913533616396302870250615410657843353922414562545258514522085887949675834075703600716568337229367409706034291121528807416901219833493903042949139173081364518663203039530138968027495399893241649194029004362921208907778266346505314289872508180360156916934370129059112693120545382589864595342798164114352900056700553039178342424017766937461666559934433539120675871860001508134279631827333816907813238229044071639340970563312854171174760330058578049073881134420098379313806293361556687266856475066098739828515561661310522050501610912635298083345414223404288215964030528083340510212727679013253601446096786558838157893182095630798070452949207731597057356920684307712113021410547646836372304576739506081468377316423594274558426568403177630007589545656040644893753592474055671363086385280062727922778523992734919597051804154333919926747888529599927287780582112709845545234720038723655281586891640293750814343618313294593302506900843195986987267646833057568208912586573714911766077446834084121775885626667791365738521281081652485927789721962213123713565417329746571341952929259174228149041156544332066650116598194350714398273543345069856486173765936252307185151357263126394616068650270502966242301160590403207656392496127894511287936298755298173052916283079963798935038184609553262841688564367403830893039952771687941044455680735952110663600097703634214413918514839858612643383577224110388273255928157328920084421752065701622370056776023344110936991358517336594013139528387402600963774949124008432191119201235482342963132568326077291758284813311587798148783832196798884042129905412789956174729544742933955462349550119617720129592246939453386662599973127558250166853726444551630556239833279980057891953628281700133239214853657228419424848417090532875104473614782358320393591594524797185549154267846366707902880286680628990616189396111435008565528338542695057997153017451472791558598274514671639429671584578543466391035941100494324695733675819769167517841493857484118841745758864936448817050894611387928609269818899696223636573861144685131949843562055904283389468482084706043778989416542842282267313514892765264091072796857331194316647712273100895578701551832493609794359161136948905162382923729856725148149586107160174325113501331133676433088466247408659184131180003741048555552197641526733553564455624701950391023611339196345750680666980138032382576573682729935297624075510043802222942752210033644008990774159410857369328197586124650722379238053934623221769880310363054164925412950466352381992009624209669696211431610315077868674781854907801578396269218392140320957406957254297978708039412659693842516028512986028400434491193828925875160238934581019305568199634679225310347116928816045159236329803511723022525390997544919621761923706079822308005479564531676176730183498826451988940746293365570336908348309539081526850348441797653933185835296879508422797746950054869475863606179345769318754096025099066533384881797780952367014450884524824289220412389627080005321324479402097942622372891679292055177602421937948666026528486741241333029371768828233496056514401251473639051969173511989335439021399416469353522627449434684507697196494299200597880988215880280441461251387007567903713789272062460229126818089508108137794767826764546194614427624652206939299727741167772915795952345078375052827062604563548546887436694239960838066876600800560054585706819680140277001504263648093241531582157123635334011561374438193538923889896823344893946383375453170702359852787183759573410925767055909430071912591497429420286155562408709352026777466598321783988548237685673758698677061363509756427422531836919772341636470720763761705743678374389017400194219537510747384379934544165808804378903851060083019820638499217628000496293281133021169384419457351291303986724058594152558361927134009183429859984517820937100146841395767727339602149681978363016017169289231555240876568847222887379671071557885107063014797912307581019379254650294448911949623760212301423848616950155455982700970472856069075864269903777891301015757042908895805223928230037872482409401167866881669178510789370563155781359739835514057127388862877801784613756262368549746976811581935211058405969656986696361993004036296752937171292477732473302266146615942662639365572077406858092051981450237047864097886988499730463292230895904008069862245069107431166831917038530619523898069591914209263697039976892011463548265523844228966942697508507312880780896512795650819112381392167217298364020217863132361958046806367157289798833367468664113631309448802255307327942531544873981539653673728038191644414655066443386230989386816176167592625791300457290553634208297261456841839860687964403248001580801413870819599931819750843186596220608071402874122649707417964930760732625419271081178810033517756605317681850348002076092481317955283953483685417431802484528268935201770556132988575625188412217569689936403344705317470913587387799366622762103798064184202730007784682597759779988502688222535719563338250291535049257296559584483751817577951067398676546124222413995014451653811281075635889895382815558101043241944636074946363051716261253150381679671067739452327305732953387040683493535625713122338699239654484640431745915501851735142164338941609360492199342302235026079338955752186227063418523200974970645208761661955082158555740417127424034010991560166234160848171818856938907762537481238765806656969153401899386383513277695923652363940416449040298253027442293136168662979090774757926503527993345499151271258414636763913610871864248020224002746760541657983023613660899493334706157124309916963529255200946004395873621247178485656682724485089370944283314350559411870959666610101498195407484148350225640723994062400707167023914596685751158803222282918502042213114101378763788467851707813755915481185019225558315396195915847793642160229140081647362273071731170700084517692664449852936747442781412152022908918951312997431980426342482781829119580235083303379553974552312860176702325137606369612158663777171577775421830680229977735929297488546186677532776945237845516591177982549882053967556495453919220716916773665158417526185650452765761776859825901148832504338326865708064369936700179075494249396445795003685223284221638429192958521911317543199291718986005608031573391149093355317167927312875516422127319284424447098339352910797862065827162901205519883137365579003042423883295331944226427390404576917757887472006676983982417761031873342523023470704377855967271479120135852134138193993224692431843649362842874992113786073092072391746540731055693432990583744808542613074525685122177961808909574790333436634744098111886823194067420293081520318661364426273359878817050733450691284458508376037633786889088241029204682207601751210829462210906896627190275391577689475908215788907042521699265713864538210660098396582019380754285570213577365159137497559616410608092521955108241100702722865110206892679211151630454373864452265637919550430383255196908623008469184398519748326797328578530328002488725651968381945353311108927597544644860545120335830594179531246834314740546395177967160495978790238215840979866741143963048863239097843184091458930322223531723953224194630439159480221101581922156081818543985664063898937052336178519031508130016418413225611395836087378166735109408582590357601371043814864658868637686299476561142546992174276164929592165391497202044816831538715933248468750654318957095557040292392777764154685041324960100676480164503190997179194535242820595943464705348786075492347126881107928875562792992613968978372399789117710845518767996744467300914887823380913169895996804488366296246285723562726087924506927104055776049625055401436489212446518768471483092864247508666162900816928697536740560376542234088185536626182315126766221386642607555057829250136285370733987026975553257243241654646529876800480263072044083972494272806789281166240841895673862550545268341641819126159233809086529398997715268032782854154819676146471604848574337108211837901170280835178289403670086675007662734507191987776859130046708435363535928422247686258439675222449177758671088541988935122072174541051628656155402905604114464030319079657870379366566790751713932001731869193514178513802718728740287904868735527162904521242825406230611086633145390986449493517050157363704310754494599175359059942498876844259726358121905320747113737130909645262253761624883090061004297394511274394349319360218693092262635084344889781589272045515725346539298232351247569080574173892143020794996655420945491203628079502259368718838268268039342057548091528472583892949510581377003157135286232587246698687228327381002670523606891013042710661526908614107539448097387744500892474620647553385094432977900445568792343576640613541933116301616156850286779966709802094520514741535128856933042574480576293072463587443375331526119520458220219817400525161546434054786243276538518785847071217499941178556967470197601316508293639650498443506965285464554103136423754625004834716778164961418417994513933496369216284181914040268591587907543710439812055969984578520010939409178893971848380398558055362554625484352741459320244354567246327877244493056341157668720287527174088118510733738020245926180091809328981792903441804961512128682665586777889561186818819036985222981698677469100932978404728376196907568362089995229731139089760832528591695963109203749644163413868134882857202918014063775379845087827944212828480645575745994736077922769440908659245324821420064401585590737713161544297752621661223438474412199808220851328278107452973453676158686408494836008158490071834558571905102638275396957756518925292443409056274777687237850640095508069623214328379713196398764325660349099016514884674721466222450624960433075252696757281121005821121501187527997092099727107421550118358355574413414997619619414896364076741245543178820624343535860968625335311381581667041071302379034904230315150745331770896693954202467300627837419173338366867519332845919120189477812161886459938662971727296859221483541310022499520366250096333436239524361282274827052067826329045380238853503994873641865321961218238598362728495001919781853154792537272155799933484063404432925456309528947955894810630548728727114615840959354979843120767147241617887059232580095765639610478578302146123937594552541951257841466077458537414920725609339097332817682072006450468464649216450083633137344575277025371557181893345763830381527746907685824886940245264354047791647776073921923154182239101101817975826198168088271706787532975651863462742472352104860395574727927371098093391267990899704649756659132082506473050437998616950842449930396433699767973157519309343022000393078652562592138131148865411321579269454030212730759940312916690911523082725642143132326971284579378891475797039877253353264311816451096531984788268230396287854943667606090679694967577350713151162791889670164616301427627444902328119987625747153754438308445663670888402050971775928228575458102909608290828536841440804685748796456764620129270036751163047289940834594154949121332838545304546142496803190454295981173102079235973623057446347368855098825543228224493262436182171842860553921977883964565259606656329286848725495492786469475087681860631674632704095776064340425857573375912648699309732747005430251016344514151128181714499928486368736685646814296338675689840913711544017850502355914164966530009211229442198649989510099379340243746424777202209426515343476034149027119464078547710554392671922927301633940997764887472456935866384127543827681084903049778196473117959255822349782767335248321904210685276919555467292522068071441909706558682377363582090394508048817422713781385923120035536965299161799060591482130032541820537611977183733991519862864014384988936753145747671316303222946944409251667284178051175084009927834276597525753183520815418521507174373541166892507476472851590212101043942850907553828236631187163180317716377579399075821865040971265814858940557653026691181231306105546575275593953127683791727493513212360273857871363915226852810518060100955188353288958540044958859633300362265916842302614279295610445458301861161013504706829487631248886918610844355089349246204239600866955193335357929870131196967586979457604668243742910827554074315435857227119253741972787327046568376536647227245601969555621040378829740859054085945716642055769380007013493560741783205797669122782475319840962867895061215882279935606595011981474738181170238495361852261126525596711729584829459589647908977490327656696469031874427968574147177182865780966152176772489427513469512651627542207736743919256023563527961279696747749787735616713011266126318592643249188641274288895450194111170510701005560305979937419411635444927235069971244995632422015069641578277176693100805305319183651159708146019905840279565085002520074207880509485290070644506811529881922945919147177216646943560263127462592940229333370893499063393371241195605042135710530652259701551435560915282514579114733060983556335747295895318823671364587737157648245257932188083109001909042575481141317458382818820792743313692911225815959497620980401204271956902499721064783585572873758020176536087945962193606363392958711704859418017114785235355555381379916101830043498078915041955863519459397881486852412523423740694282557146811050014052612154172882958490227052077182442157524573281874902961901835807551113456092389096064537658578792837872179944295232693803698797264255245734987281865587282734077352648762745904510654241910504753671840276919472217302274599197477095803155394547925696096913527273112303320467377709173377583618173161501759776469203801417400488008007612219398579448178555677320470564784736559432816003293897059265391936828458581964367924032761152509236429363848575981885734389178518817430104872370094584809814558288947091262728180237277332766577969519569876029934635939748123178401576880958371579657163465223591632843056311414300577068253787735734780361580755476681733435125646458035994362470254590868683851036987535641455040650302407666170250702263958096666498547125406547576616434013768563558649364982683993255975778342100814771679450978359919300252680264016391072055684607871180232977660889934031191835748344216962416920731498060783986791698553214598472585365066101819654786906024579087006528957333335200755177485673536433231843832734894096439268975758708365091152348414936667487597553056162347540415919698222191742835868735551240403180565876814024415749362423004643764594528850889984700571496381248600389939079351671613628122649967791502898323826195288854352986505394229558460065101585596645594757707349564372529224070274693656940617159833820598123268594969634143652904198400550415507047019366568452245019407022629568196734564277571590557235880940648658229214680457869461600793874426412665816759813250253712731208437349025854169494468186763671549904211953080052115892534463117194399836895747281534035714469523872066672153997573046464797813705975920023864537304969793344497284838030362969252129529196955358490874676860863407619060721207529090817035986405392780178958328403067844315884071862495861201501289677525416720325036082029312498414656803396497807504712853997588956418133821483921379689836495870979884844285711920358515157974474481516406542675945777780046532148539595380806827826551860365960896263321827657581889759553506957071201047888601897906506730399886655180487348826578240251675640762472533975510374344202320804601637792513666529720661248990449018185237449716716870650660488919128388003226279945976569833461473662885590329072766992796299044520564430286365582808705367464256357576125526360822281332904318451666801669758736599832715410722783436680960676346182334348303752975107780799725947449867717318029572050845557397548982233797994759842130157556384993009550905298660969772779761891319427998676264903308066098410951824276967397298168402736119732416963551033614314546518570941494015153843224493994279813436870107874997327547293451441404546338589954768920997626366829850741054491091207661110404504478545666651610629543278491933484966382148512328517687538903401775241022380893245511702164498760828747689090331789220888443097293235014846764998585029746364362951264658501035775139692527252275234024002748999388511775542251573443507833857920375529538173623542695603162078071121739180174575502953081008140005005550460638025971028333993861262061238322110097450092940041818965672917865901344389201920342402738200982440974860565750843736832519440150313982798305813229724844034668459936318512254889985977215329302383156549336054038901531939146324424268299186426932751213893303488137433956114072224508393446649641349387327050746148839572720882906148759817631757764638429930218923122569763851398000452355929802467381787856377634317407823276325781567020636389413126933361159131133205622423763831688246511462867023180103068020635443475475083313687303467153828766646873264173411876579866376703835890728920364675566005155908558452733940091403986068052466634448579190235165994088044462481358023389823810907371923783814183294880554147059807281932088406829259230635188934094116540717700939129723411445786418273082119321141936324475481568973955102716919677713928218314217695591799319627771033196385587289672136990365594328186383064460273925262118934719005512390809496970106224560785704572041583769203038884314409073824920855004943602913749578446157402494042101680280741228696011101172863938007430463682304019085602287321549448883981311712082787948839674235603369279787221067043996518972688945432564048758155261269041820599845118604811392588266938039252738176988105775681606254470290148365204278553910854599219493905857606479671190779888242520005525670771431532745427289966451805959454438466053240590325985553343853330342061033808178739574298836183409852429086389507765577975599954804917002070833077168466093994240925445417909341120144483143337445996848159814306818527960081501105316214069688648670308278944424108686326688669662023169022652186470879101064797102724720574346079264526659118822875792198047276829236686165137881990624777433488479364967735328984953023635355585987099490878260860525526282687452312173581052932175280831321613054653590247341364855384210991618262864985071566160739113971270458648546139194480806340298216432765446171980165905743215614585382973585073783164107713527753209297256682691416250871735038440480264656738189135695700497060436756129446806092583316297516212004414626706488612157277912729374711180927309586494751962651776264710958807655509041267401684580053753353145804740024915644543171211166948310672580339494681280400059669290422707026709878289171569880397896707531476656221412748789846945997151953181443191848259861208604122617461629780189406300565916037814264730390338729306847580278714923017097293375140874589927196262074655295372342583189881562570622952316513203697246099272907499537393672699225626774281548291510682877872341084437902612113092981121425232957054668919013281220037614605202556950041815046669138783220854511480290257340920897472370297658106855881488593887041689627655012904275496464406532939655806238654588153770707622618169287387192070449312173122889275221043800273458312657997000749893200414677640090809123004590749718437816844486272780850117211826381307306406647723413797356186726278117649329268562411145339165416876300331658936878610432100531779226045765510365197557370549723838376267257910843090330841561509692241614394557504908453320109366268983016083661666670130134749589998139987424354245386688276830085643532998818956634893304395483339067964648883080443456444954678751472482735043567639708625301877695352894633674572352627127728733224932834435190556307550333922919825122374377199727009032224901752706755749831217599379058917523632198618450651660378227750502899011998589676622718820697686726666199314575971318031531937240423600432565284615261858669319446699057679756099005980594320822614611196038682360758799664108848828922775921479881883787175020072821951106424222693025336269462664289264850542567736310134296461220172112546922743939071594204315898620208327557340811446490224868350084895522042199960233992960637361855118256715587932561539070215043373859372128277314515870112380238226047796800036576491498130481564859326349451191599009350776925716315673203832878092754793162809453469587938638931228697535005995945883279028414236615980143643269618206327034740952061721316621290657118388535387785962498944322547654943289337923173887082490656482425893042225235526109273174274335770607637286418280927142050079887356346582690733631931241963085855719476867200169259945261236792785179674641800325694961027146211710865868536082852296000059940691874763061856186528844528751782851650603683984752755034193736138144791660328877636374685848410866874880427089449764989832281032101006922740740653200200861601972721497798544369378017534116045700428769731957497569664475474336823414442216032938363597810493326254429157031963682241305657693928551689797855699902252969801129681511304743514783538203238857214964206308983254355179968329592470470965145456945263072916250510566499405879669512271753670456596461861068599956751569636865619779600718261319405979889977842278584348906842433365259120370166439453279865537918535756606860434854861849293139996629710731667002417567707399872292443943896814054660549482654820693814924314289926360785835125072911928035184386984270666808253637972552193334002594249795859623663827572945672933261283397336967901765546623413000331814786300940461396700996982946166700221741382606977069012148489273834938789528742995807284836752990216725428058617006994654430516412210047595419723552355994599658592718388139534240668370925150646011084042512005064379048815858617823065048280558862633078843390274401645263274267873545251933337564941719341828991747222599064441306241243094950772511201135673131582233031296215665769888766029744013062020909152702792551160342568234591284462966344670832361751915686419539611261093465187938746410434097709058947053751531770581225390610969124182590640999418837796973251523996313263897607510317357505025295043518754345996934923698171034269499291971623723545424300059944343342404902848511348318386995810899095878180036599777361757333528051076393273299270604143748477270836801604784598946945859542054942004940917610298080555793550604006499379203792530536630800890483873115771123076232790491442989230640549682278398367083303603771635624311330040268797020601201167585479790534332367275072160161817738784100368670151951407474230071386916285262762890113608081257174639703725607021531139071117592461893177163016823005721704477291490760445522817168045285684085923144896003646587515732514114356687090869648867491381566807641488739784283231172859605992816867513064059868555909017758663888266322696592180463301173214943645717249524683178199257391132399157009007851307573786364487904002011214792892003529614422460186945526397769710452965075947493989490450735920534918151503576815244670017175369269438879739266034215283494120844181284359098183594429918523627463856868602574079343497816201592234626941358992158140665186284834874166506966106794418706007866828365246573940555868262154820916476783015570822312166153459437325868324067727754782395596768894315240081969832165213294145758443558816742626176916528173114770740221696052040566070751865275473120041806121278788263796295212584256366632718340953775561762482751424846060259764207322376718465711744054416154372812980774521386510461486993586653016277461964514481860332461743775104576515037623523742526108424631288483626209210376369555289586050460807165016442146380303306454854305742372533158494440908584533232438931045431740071813475369291322581803181404124801230923763229307035508377277652237823681997989453678215563991520870293685568184684998535093928894639717103765770916583937747972262023751209514864016316661095568991312898774013245832300547293585577599807603408920104268019198388434688972688001094687279773226831218829129587786791902877161847101366605131695911118111445033031206819581250209247067704951942630499284585163067017183082882897375845690745011162215609168635568418009654450509604047000778078039939553616905201335720997351127698778046818154173256080275862958430379111057324582435673251274526575243025298127725065117738352889597179564529575856241284912468958131998961564208695500934352412330435914203949075892823952174506067301304294646864047561646314050940281151235900596720203779217187629267438415656337038422687351796459383745123832435387203178975325515865075869902520130273412258089416331088144823061124073611319604893258551705914409288462863889377881676055847225828867539797215720369729421893282318419664526495723070554090803878204264237347434580297951947391596520334610432276431390432611065940722441939608285048645846357237608505238287088734163663632810327418247592317549941611735183698582991198618436404035362526696242513171240646555952734515483625534860441028101051927116994881805559455802672882533777321954543005578960474589588412331603580908179745250565952143451394382959919065807177355529469777619978053430146292307912795023825042250589393607713944072068174828076490473005194370448051405452086936360298527341856750774584632038486048354980556551759237850468823116487601697699516719265642746088205265184530775978222891397605681764728986247838717231188217167872295753852259044979002804094408611481886318337985447285267565998893532293797657357772254930203370962203029008103418423587729640066217425445113732660607048808727060310981888956859740053041594370233127535352994387344966257643870067995006762026358367049028210398311748510199940717491901749141556388815272071855771846448119497905411498668767324269152321848950774430421833684970104756060730483552038993558818694387268163744910737840065344497462646076044635032302423140464135547732615282740200594177241855708084223220261884591527308098842461684165043753582446230430403324766634382391727282922476014325730588070007632425278470291336617389016582071900405787131470081771492006538761063097561657797774262888432666525751064799953109167103621705906895790903893331898877762697920347289611425649187340403937536653478672506446173115027541987850921918110635356674120042198034752786447072090258739047465617775624718683863424029933229425537834517795606258068807109232338839031116552169524655103825476838048599457286247208109830438300227646111186663669625895885298427411835195145201864409170456898311522095328683733963904649912492093030399473276560809217891866776464988859427010533693561130207799402808550663070017507074452405569366886826502688498258980053939716321623790423511249092822534915721825759024611798479521406589554868649485082987804423984270334064078910580901239588962881021575381492852168330907371376182536618820606981486926212402082470824156630138573637816849896582347017982389082833055946792892492543236328840132881675475385756383742347124739481412838050650023026886663120069391181926120900553208572230574123929894335570112927588745207873898626321081858002376597763884441268667144203590890316968067294231341088118766914111532198372412633492184439962320932038850933853641337581757005660271984308069375446634984313671767838787646581517944935252822328668329736860606483077144557302350048538950658713147759283654149438041327185780820449086002571915034879312638065396087533823433325229625070469184690574142485577908381068983985072292944725430628824872734315253928250419789723250186902769495136218596036847766364920098113028633705453755713650910555166262605672028298202384847129065063056609203876569612294038814586595252257079417086906835344135652982047525206515106925147592043630004058914797580418232998431666187649408538871504293098231575097722064752472911057103741652083951188217652908033202290819503731258310247389052849640257151597018261153057996099215092052465877670861312973145754252695131625529742054740291471141369731490135682423639004116206728854338847990746930092855691302687311755644512699635708841744265552242347809045585993679354115577138014490957375144258513519399564337488136168345425578695157143996476290184398452522893072267273397621990652641758607409477701461276728604076540161414553419756335066262816287855476086954052172918937279529291483030844778922997091055067486313503409173346038607165526960476590389455159949975362813176115987258133677890552876840666257769148248345312427682155781931044649271713203482632490969495566377922936545033399251801315712640961609330248171827221911639760709115546585499585622255896608765849373992930903705643525808526662813078232336329729262439945019475909907637810118143182400800627094053839356499839625146521009189977419911479701825630634547037070203320136040475818541902527381454885925160015158085303109952229524385129918181774539449121716402033321949156066574535616231869559101356261784797071624079895189799407832211259785711371888086470145767236771211599867515443859692800004606711849363970097415016239272846492816064180052621169166097267123441834165955447684963467382508603633182415695518942728500364608987556311292380166360838497946190618010957783304303087363979445661512295533815449810169477008206319842659311806995976894209924497669500590996721317411440369659301843927871373754197579855679002633698660538633039916667787602377019894237494068032279095132915031784108794910409448319858384510422371646261074984051053483971888244719939888374269780262892511929431283531536770758679990632728409924207088696229851078995143731194422012649745260662884673384821775015908971150984512092101858371565931603913656708392863524882027615262051833855533729002181675323642210278067577692298941032731721363000821444600472333424372294419573030973975894585365767840228819381803771723867037250313940571215768749606430564935247334449888383579984247230626941510384293693541065206302562748306898694965638182552500983610630929189860893319260445209527595810625607036440431569730518142101067103829580723189810730830738809759990195731782747620314119430741469661947027454034928627239995646799705331293472676057430213095478705390478723568764991420471604233362173229462262483095221046347027391201803172874631892418342250668853234928300990312897026985925132615327043491204519559569138216176900882047935111046320064852665444340580662731295516269886302241583729502041388222716734284077131421903683100676695970637528798861036101874925350844360098700188244623568022431415011080497298130933878803099583817264457371311368801752577525591203997004428792128971269116276249483087275521922763189431339130234447848825421334931803673076205028623791416266976089975125028796850572388639116441248420921716951948482092597199577450834946572322042232532399878806688240506264002330279909442746511196655381091384515242739725192955825715573215957712841751809915752926053612164873826553972362679783277080520391842626361797409928735450229778650241210118894823086338796630294438046162493197679535937124938194699852527610291357421574728495609952358236537408026285641743062313423114777990560994047998737260186449241517193520814765119595067941688615743356181709261073223031305814234808744287478853339926281770966682194713053357438700893104715813788134212810093137807669006896437284963801284703693455091266618519479337007431768065893628252867337018655548132172145207107337978596688401030464396633791929265613664467455135722536472640269540576721605107486404737409513582980200446731441694028056324691239871084545669873647353131565237810796660305082889511025971079317663591919913482616217337039272333737707916626550588282577837742229276576313975675834448260220703980676847672074640086273211310002312025983626405993227835731830807679503719266404788210501815303925516701452956510673461512102069774851855664666106027313561506850824784075110375034198858290342635867792175383682932986952026256861911673556836651808722550721685297860252296772188467524537188787826661184845287853285323629612279599321715819489375761835937726230076492668735597590885569476820751172509459405925259750930915022714493865972124905974127365037056056304842113208239990956305857558859179707368097925441485855460317653719498217379132308677698255480691648607795173998839844626846508518896353778506477184204620568347358683498250868160783555467594839735727191993812366837257574380632449149543528129223319954232976082982939497390356180912101803167351968234684672443465621716937750621212549908079441930963113223658135301373236023629455613101233670033456701647482711985172279158712772327962687827068881488167766013820130556469342728168616148186306195764857662302570536737192303638447885062127469436710274320741590921887668898155279330353974028623987309042381287171244183849133303126103017217745701733413346769055738782868704908124542908511211579899375152134796047249988064983437924454014830518560106873442939845463210272488928981595781916772951688346984714810411757772033939168643871416537597857642817810427092012558777504599934718904875702833761331021569997069616755072343663979357815521163919192399492078045800481668189083079173633751407727968514680301317305135370395153219870710880729211734136770454137392839779184628045097619789104862852721540780287308514550663188092644392178428965311432077627861525552049362073690119354551537121951305300084090496006992076340938471847867110253606672581976908849300423333125640825403307125735597521100212499289131508297073508311597856555751310688742198169669565562456846330593885184875310632293245373208053878157124516847394877210678639445159623904264529388555299977331658384938369868430998212315412428079937964983344446266036870804863057553292266994324259846549117272869756725767316322819720864178099763452390143196095668656574331632060039423051523219650279308334655631942704052045695784888182128021539779550757439643498257189420148312329289057391256144426994772970954710718702598107466280389446747935948303092132225826904942539683389066568725116739839474331371164486096198138925816487225806436468571034360584564124105281453928988509172807823302860738836757748728416676441558131220145915676340276924594503636866959010288393729299341452409801818335288484003773865745778339782591348323068013885286613760664034361128738895755772423186532092792530117531271086646335855426163700050021175004774312039328321320158775936762386363856012706508135036873327529059884388318607156483668826123399790028834319576379503151372849429465780938067750601463035275121360913466491099597854527084665206157907506684356816601242285388679253436482247138061892463995293595106757864741493971209378924886215409634292519889732209341481431541379286647462940422503762175090570908390667383359691989881193109730117967393260662066895967914465031755709599400612826202344756643168250082290046337743996330288165340591812120949936624310373049507899817469866105193087536462805093750532443903829240500962963320015557147956130689825848178108129750934425800745716275588075673693753671128367222300587226236213988993365961645644696250767395413008397503878611510281859916443812718106026569242071488959659936048606668863716886814938722493000615901844447090187742837871392702822262452052829304199425821556757079991892289210306708397984921269212917624636851634488000402512104833449736768962272581266895275289279783090442846345372946404936518372553040855765705831128717624294642841706729424862817020763390660918108132198890579617819283773187902769364229871143819280456394771887632097321302207220416175071738913707161918017319322815953390337355452781419815729299242625407443255799884718253171188737538579450412303970429691417365977603616707778719641037955056724520120922847249284163827290457391584373767779478170548791073460788746723092418975146490891422648308153089087321663486595479900724403175490887075643149154373912571883386875418615585162691780208056752179540716922532741376435747164821207449974442911258145727433614064145992820102523009982194857662147797556455748588861439499799930016006582675564366696516051520533677079257711173096975151368481294979262300434965932263125236856602721940203511612596437676618555744724231803421234338012356438154921956393107759189819925683899130844115988972786512240966640498189402348465974977452735352087280923023493175415130225214347740059019934837888162955424420926942157416218831315445652420658467004195491020501184253923246365309744224524147550529922183741290968052074166856978203036973719092876407224160895781966576078656906816629859119182986795625379588290238415119537544128350758447364821457550781321812531604678991722771163166374062563914390549857053791259526361258916314232488085116259499823135442122719867338319381971697581208689180481785350893280830550993050191494118503108571290520924157587407412767595541113064692311135486358166290751780305017957212539195658544573539832764442510272681648413363810015456426553054241690088651862378140670040393636515547123374893332655637606680834207899761618312137232752848923150475163640998471518222422603327819125487301081086688246190834654687803173437691815490466609456913396310707501310063315646683326453279904171824204771672473878620199330977051970391308392598016004433080210364016954683102304790412227097835196723261470727442616783166624584021744571735025257714266009219520734746035791710548326067218816890303942520575300130338142390813188031155301609246209020203813286484483644540308899944399670321750370833591946662740916614467787895511773506345895155972397164692982544902044751015046248235746221876968818047598500898228585338434242142090943395729335104091768336574687325211033238429812833945026415657985684291283860093272018164700835874664554046991225335631400727014622248073849511839969788340375100959818834384142347964529393748845218261449252136964306813001748692849571779423160970686427851769840731160072462137104627734786789932139860200811321176468329290386474666563840810366624789666210862821058354262086195236746791523270950534421005358724090892594580033493400844460998906034686473463574459467144318240394129819463472747000535491082113861193630672670979316686388136011545369466424554853574041998892805396190743513713082783223433497769691704351176911494137370964638706001108071351390826236717145655281354162728692745187037008077969604171374866871799014156435323169524202836160923372673497247927442364610513468347852905819833719898660720495006676071498146854740273599381833248455626390873748665604323962513396077239427279688126940720166635875037198782198884012588348625055466246690615800599009915449493765699692861133419825294373030684191356855867099612921692308555102847831291044411914151757649471596284706162038045753887895628608742382515326053438983207866885031477200499989388607690343802111322696516855263578972675608702356954852342406748540460523469282736597899765593494957515355409884627989781531925119703887340825351087812438278296119655733897864297958945196112080810862364128341009462260761870433169616440373982915932514052973413063815739933109725270394463301968978720439397134572733868021881036374213516639119355613108091779019575875433488520390600927445562308221363652929929927493381436814185341340202559989823491491353631983362885723178974350746488262736397733614241824182839432887813359701637594866399899675633706139222965640988208405501293866226616146561677995549835157564222290210864653253340614709164440404158521911327932127652426707077981583208116521484699059697345262050087631809095399473924940915773210655516543980550165153117993763482902128631473776922310864662696941503338929199238328651167103025456231534488377260236079026405870268169489158239137462450120370191958929543549961672129855877585017737544149872471714937622683187280301391354311659435943929655850175432371297227862402572484750287632908331269838391458151704915291308382796332742218791942482342289538703774544833226483999290896765065588185173583483469216554154165283778849296277389763388432947090620713039049944306844404476558204295828370078545383072622561854337666950683880751433349706952275604205703285807555192763961265112613597892250199947065847680353589899916317275625938702462450597501190849858759860410356508821600926651788755012702051776380774000110707460361741655104975860089572909133222149074113405260644016610598851035508595430715926227300248173713081718260043012939789245704511162047581124281398680551880773634489370924670640409613363167725648127438277910865567292143411438138174132854074083475169226434774493269176002418320818770919921761488602103632310134359981290389479010321095857128459859230399303643789843308412316485471467625930706787056195149241243028703633916601696125010419140337751042122943789490584189967775677560144313721178537577111233263312853419721228338881922689548523220274234968455678455164720653788966516419410783099998725388702976558262955928219320422356870723523467874675889045966212761475161928190563934324292445684494903828594209863009043865030685578354416162463132862444604513506197177736225943407400536231734287276623142363176664278732344031191576128683696047521865307414157524904291835497030957007315737042891970498465029381955221076560581347791356927619378524143701985478477235243368687404604616457921013782089699951679486073713071310350989271747015909805044930260371468606692206715553207923792997097761455803560827240056651878952651030483674991669939436626381379740686787628358990003924864010832050465826388887250231854006015571755876634821362168383437836463592687277869190000910680952572572134496462432642102265042072041860246796882099911703813016786278207261080511862662190373143130173922189643153981929396438283106987912802573133465594935426314105446857422845201675063900151945365624484774643993699254362527808496816928025981734185156861534468176731983788993189538451064683157868581314023236716558343203770581923782560435431414740086746887040992286567780800546344359497539202068280341405585865824241344941449580664987806692213500208936161050251481306820627226005676760213357370176976587875208669644876054860160517616857726672382540358546183863060699621710273888385078222956150718038185486788720475816678389001372127032197282208270377190371138787083179639998422606779964901619934392715894158270958582233632148045991141000323541352706655694657340929881093491977001672614338905625471975722936036159575517932356209856596952823309420125842283893854998739933767992795732063478238547661667629695099199859619259513794106712195792484390775316186461851549682161358088517100398788688395689880106143088158839084553932565276161515080948832274254525001031830217531520937249885629507235275555034836878518409953942635206368687007113556287357112566043699629448322847745839156234770079021002224906859813441792944425166958932732573215672230486797013788513651932208225913125098839380628309550511188885115276801836873759870216549997476656456718803571593542873653552139278427381699192153313379689250776864930707545059521347130957368457629129860552839802961489271179975868156777527542338045224073609566700828450618073899382509783312554768856324463260292705989194790868111159725694004372775985791262263997604485958576645868238119058975518491828967067685895036765570374366841259787032897484627308363952289869983449492726512723712059776066599568174174151047186697929202572743691401087153047972032881218157396305571252732132883272027310265689202845213516373908449625380899040959399964243146088681782403421539118808376188226814971469325451421129427018303894442180906777608231637299926218045098470969067590852204315278421461877591568753809129807319522925034400581031070355035021959769932926144743714321352400653829663345477583307656550428471262891452198729872567845436592905284777445860765969666800284658092554680103340001273589141940303831727206934616192660460928748099869623848799134564035379351116442000395188745103624816979725921935873132939964450297014646409458989940082205568148809653308427357996448100579873973440693123451604541059148975672013615512304645128021665735918044796039458903725689109062244934212778237463278876281959396204135227911560945439280239650047724857879137643124941872057715765356006985802443814832411286287441224554707962310385319054899261320969997917904292774438375188871101548258584721874301155668221763939467249033811427073159037844848173779909437245965042728416217909575069811139207957400236166137742550592957325851219636437929880539562744166458979221351009177943992751240680497762740338309105682271004146477006727853355640294020970626149826179420918486290978360457706120601764720034128490584641313971774418068855522452574689069185947136582215870463330621995473733089429513594820355084977742386313149271490931435125806272923202462556433047361651055311334859637810483902286935688213150039185294219089228110475811573483516949570807082997691582008150511811377123451504023873203477164356713885447471303777610563372817926775760869808085737053400761555314155218170869751646950234298136284650115190324211486137221300670509272602470263137964509394679226985392843782311870640058708336562964524939147845452555568720655859888386256005432164736379605443403668323446066034816940961887822909482610245580759059171461642603986675975859764177356249723131781487181338867039949953891254097001268277950497694633083859096282790496991464507528432665818536281931031956128686436949840289502796833126681930933848530230263597103950951536317043904072744094301593528720877041998891584632526555369196844465167659161668262367409992474277992788573056356086295982451010937716189510770829275000650610712949587552598641098325291940965364191659796473525562165969617849263753055646459787061002774133543503555543088234096322702299833299240892186951603776044816612240113865885050483239781455447656223170196343210109157537908287799250226596743577399558883152482006810288334297266770038820074743533559443344248016380697084211173222191848040742070701351089718818616605827451616315714154721689603798821383039545583110222805345567537824188610924531452907149456515586403301414684015924370413644848849858247287088600345704175588650528600826337388756154019747009200526531772547252141339822247904952756434555029894546779015338784927786212480843713990601006472378155836181416458658821153061694303478849456703078014934683181947978416556244590022259347662421498016919377962068261536457043380346657032445270310824219833940711014781493723836229478459240123998087570268647349979029032272902968688164111541275600292034549444475530431552522674518190828652910948565604099722440068645026873546804234255247277385808192741056213563906408196827603298000300320932143127241567296217460074118259465856972314791713264844298035702181607892745889689038637069205979398766838114636386496824483485233429802291616473802069184974402412338647040545538605149089000004443665437767745070953364608161962776352442674719381118407043563528853237515862874600099305888077686811277818097877966102672188270777568603874483567022831654275641466233152458303991952301337201988245690887140677654969163696545790303013004331981892498494817952420591923988638540612034589961537825220631855773914636212297686022677677574647609936979703854748650392647326812562612056165219572940299320107885287368202408994694026080729727571704343994114769990795879227891485297636590142627009871681239190032183584361512418656982022279481477035224563960342164832105005663133777028101942236714318745794041945118768074426831765810506212006517755998224302638497154072525583917262101954418534488400804103354004622380803674389670181777174936819308365067399310301651928255259793131347130438185963121253979533394764227505502192111504557953703467435712240421284061423179399713562807706694006728582300751161751460795790456645252540678097944650610334990380338961375120419912463022846293125058866903759331526289833737920007110603966511011408767027951531419732318028301360241913632788617215082005864196946286131217825340098619430477724007391129729384798293179863909167574590746520609450667723551486141869873576637883135368499478121253512380217257132701787380422132549767177718552634370530277779869716987917502621578717941854304014700316147555270872291741433681893595326222458969522866380835001037580775498109066310483401120909096040091414421219039274868030449494453627806136026899177933066064021652463443248182580839126526944426913696987730285106341695101894173442412261011619409116269725381122751982214727199428579129465286756844533238836360223545044287308637260083678934010781857691529411693122976228262585883078990540782931995826840970746033789019959773970415053366270687188292649672608026374143415119734427197979951859772066219192088989901814404099888583272479049371256877399736899417791502581503386718856297046814190000160612079853341115101256724687955916312776923684528175828373542216335518378383625821441664048799368063123005654779837652586040998848349247147721930748426670293632363349877515700553509657683046229682763025139399807130576688558225112795482734960686178833337227941519180302137974204379452810099296057234604199415426639222253412654942421881525173875047090658496898398732081126660507723961939029575965625435699363531273274147844727142422549549930429737652380664914233362239666247488606316837346661437718598801807044390431662550593006365534034881909574417412023275812565705833954885855413559686761951154008667937573236828575288929038070130984250768685134012553101908097823216106698590049007751429249682218272840206116373354215570066627284154566929421585463149231344976217997843727443335576313817567122831402204717376668153609303956071994326563454940828193746058464223027486524575002042697513287426360614223360717482186113562299000747936741282630151281442284199288362138640421419036467011894492191306433083047058368091664539094059898098001540479781824133122192344136557418362167414002837057323611402512786711861795149148789841699216228842349905934090166524618504832194957683233297881006734278702343295386343521652344744674146689921959790522891000956982903875973910142112740295078906756242109473203171699866563362413593602066215804768821521584124771142495505136133255978332232852922190528231124309249787448279185959503518983393670057803697075131531888797125011287699915797368849624574171950088274591479531729309478198750002342400133080705570736932019401208531354251336352001148672315255819046083993768365215955825566880658317247211832200005079181754011839221040347873202590072217056733344903314123221320906536275114864620779275219537000040219640962358398061447574410641320907053327092479884262567916817949462278578315925165387902757884016153694468260605674289130586036864919972865494423355071110385160154066475145667685924254451698286821776643191147210714285126747178248975217107107495613671796910289284388029979926243136669573655617434084054904079048948922249958067178618206634119126620767043573884074311236747161648084514624107970702277884979227129602082303280657516726049877322794048543110125823613755311744237582844850831488858402379944220358806270623800473350275554666888808402043572721248321147069485889013698385330722813524237545429617444419538837762003241626239913033894242409378342508765589656099319261569678352804501202038824594419009853318831699753947514251837356053281725496019853220843388995507292542736493931045196411811836234049184940377963171241270289016673506894637939931108159158810664879350408531527002941871206001267114872855892837047624100502651717381721544038377556837158350833313034683329299568552504975181349678622835071357011368614341865434270966942848348567312449147786691719442832636246002286090064804481064176551668433935219294264474010917401091462882702464247336326264342576622831489952823921542437281286381015213224084980430442840550997928910417000222213908591423313162384862977948545380967947533557264018562080956312975705661349138278798141366653757096137311076676352612408215359187115027228016013135855563305516380889186129074014000185242494800782145440391882371892092215317007118657819859209507607756499422586761632805816976412208912891364391574226725564113636076075235384959279193725177604443012432206180473753047098884873109533011822541282132754821697125878794385992173216459402252557141738028364321484819587551606944840299843879577606805849700935136347220106692124764595114635520281718673567484664920762589877164500529665192971763751985510620734115737073571478567097631906147015459624833067377556356029680625715524893137163898058132706713598237712496328304756436406623117425318744038302570786603444657421948536637653946428535568103660588263259156226430918782274749097700300358436458678730491263009413658790592579658871759293509152695118918386844238172209236755648055669472972785646634424912098612169955590558352251171620886676109854336761307058522838679264741503328881616911115989442538925376885921924838252910261330778969989776101879729263363039875482543976831474761201923229166153978295023719298235548443283525023883825118969708184910404414925507061908530987393739251821986915904152363237793327466453519857798933649102110328203882558840435909029184747849780985584048370897368855382329711603653220977077004616772811471834401030207102728250480954220341993651379370229251762026722043546948514881886344588577075786053983972812873989489150484269663203289573260893623371240823905958586160642345534794657050740110005639025372453008594156183917419916193275158926972611215550511337773701435586538545448698998370193353579043245414067821685511001541639093458131123030882680544476429135826251618985216629365478522233241447221918561110174860954624657991143302274594173793785762530478904106921537022363947278066078086681085509649412677870299093153434511440373524927980862745165426424847517755431362951136980319906452192324702039512923449935238552744344607667024224296199674019655656466735343395253364776310782987478899715675479265068173488489942769215603912596780158209869466371610642567613559269888595141663351073263861696656917931368566133071659785367254694861263918463896941988992999483605456668515724501703801145868698350102762419259110746125823873559815143249070076529631164682761212754659999078177235223454548477462933383012070220869604272733618391268174011395819492925012399889094742840060605426697956756644812613429004071464684652097247786043344602084743206600457680638647595726525469982303684321040728845577016362126623307229268035268770280669654451405560328530845948832655474309673400672185910806202794464332958298923609794167854529517413163390759277640493530685652405962831165019889998547343491187073442472873061747529597119219160762444129913877798006296854901590656606925179361652855603245629617765402197291788985429385909681643436866983134197522082074070364691547547368950022602478786661708260753037488247936961602872290740537106020974083185683511053515245685946554443543236045513092801532920590940145840511094674537881312931369480371933190612783855177934951487372563291346962695598367526208116622978402861072504455854050826111710384906986943762848604822077382910291708554653856347934005573587493263197685786981063853873884395119639912702599673551813624841049028009264538727568738042967735969833612339449591990754318328073786725565740131284357321748310829411822737863275951352663378647036202230562616003522218874312340086928061925336036308667522255235894427544575132018321999129481890609248414258433598264808926027523618396888372842489034504664948169972708442978825742424157731846336682488665691894078728603763013662989635295948012789247982364420125368806723552034317532181394820971965084078946912482324756949469890432700582301445368082992719357199008838212127608483582734147350600691550093520760598348796904142201315658562441180058983129825849203941715841818314696746086133055383978668338168999016064906217532947221547195393343393331513303852744345246047686529737182756821288091954689071165708671740426547501466287086143492415855477657075843156292482274755005607712714906413283821766524143589860390344856483134564849395490233013644806782924403433579072489422528207570123881277356817005485166322330412586213060207782418420845058295245879939790119289619321234252808162083269855791404868591845397600880796899929659756256904929673583365923298290257773221814121600890395752201233583147558344669086616304101728309346223429602185499962139037740442904449438466541807025359556348050396705304639559703564405115318638314595336954956779342353274211153489055545901147763074249660743721819797835482970701476136904293652194196623865697716789675051287705755604097496954518817352959817660761034783684622628546079324519209628007708677204034804075141677875167366539917265886938232368053886178900344530412397134120603046569750668978486345180168444867781688732962405276839308430859978036312440779951036207471916953311011303824631800768942782702562955690790270109897864778295456704043812148363589419613629235172088283679527554755971471392813822802960460515045345120816155863723532853375186450871609656381253249578107953867764351534572648490589940565702154962537980354854668525106542402109625389600896171051117227782168763084370997425042786940161560669864009288428972208045560323990938728973746793937358980297645649121557272988556120792114814696142341974251447551637592870324517103762827174627066638252375822464398754792774309994035631418946404840472745352127612646720986287182629046244496799162412078724100055743296143736967005765943261652729165679191041210050515671533985761000845595921885941554352745470563783717692351848777250684932940285485141477021977914748464795987445447565540370403986320644772439911192683090635453616055948461782939383039041657586421184627365656715186802638658397799938347175412420556954168321765305941664191850520587101200305157178278001020062071444844249347670837792095740968271998032964727581369351161843302434472998172329544968538864901330391595910876922761223487446721860604200550202633714647108093801163822101182682484434287079548847151185096523013124752652007068593494899865646881498387510470163476575830996563000515201255691832946255423626963978181563408207830285177518636332872115741858293815884016451147117706568979481719247544376981761349145534398941775051326648504315198424641658136192415540178999812205704948065909649770971258890118358871060008298680570799691133056360417155486341625863324418293387201339425490954403204746703696172163454570106274846996656897415564332261201255680236498840678113435530059029091783813362388847584352441118242912088845041551066984013671649970623074144849990465243541419757412452565319603166136937710950125749352083877703449585991362281772299118956140126219229147077738172774317168239670411533343851034725399236352013643406632713041766875849934375085154931917284037852014848028295130474386918575378093275432741522703007102298245190016526224635075140339851905162027578330031905629518196644040400872331435447179201999156774107810821031419255481199361207958900004804048877447284315705983804745143458698128132393758778778765066425971781829799126486221975602284493648312362179792960251796490515597782645981210171068225734000328721923725692572934101272885181253368849570853423213683452035238124553586845403945323582250501776768780966384127211165783871630725168714646229814275336926304394793642434778782533278943325580188018401575405060064795449354748193238720825511218435278276907600217102228356947068308291962045017177379367229091656833375533842028009349420560679206356057036304878632258610806914283677749378061597221314322126615099461854036426473927884117760584980533698987971155636156307925676132090546933436821042009923724165833511881944554335266313335824546394769558122972275475021103920494995161058906070374120534598287393755253012647969082168267367708827273604239287505126971967396160354433726076127638872646641337737777233427262571112661555786639253686456111169148918769402729823560873997783631567431986942841022931960952359284656625125527349620555869356490355288911140322333902899867617801759705631044000856770168963863731066514299636103580149921883377497195892930250706488282523556533740438765218547203110054720584956071696656007355186394194820922595713080832922687471420787427445526710431398477844675421324826448745310658743643577020762017514526289967098145598085101177383559083440118766817407092399838745882313845094520621029796723612358074911609355134501253539975778643250397377535459638052351259866632462182787780693341641512905866809734279978992380888212112287102795875871877301240548042257527257486197625709138407645173154402706256970582787842702304407629121111735606651948647151816253122061231667206730975088766814250762576229766800702134225561934206549315178907653434891126231986940937678055675468575887538800327782976748070176386257127122466812606428993849673184683942164970316797916229048603390387266466117721833587637160448145457313880588724905934473631086286462444055930746552532522549335595875251283526003896471598321730048090073596184254005512021634061239739185597532048390015405028648023594143955894388520262474548808371551094344396956196489085844197492246531316048147615632394698692915784508143827615250335012015417712567141354923411169475840517830597876048533287467281444266361628231504288015277695815496399317256795360665103742705450242780385312648546371151606768774733223660418341015728314738419448367766789251629995580001636735018157391688434554626842897617018629844763924454437748609963691186634483106352231251140576827079888152643644264735179059524202814079284368704540736714463285996816097311760093911856746853660060827426160769118485712245466310745742821905222758216317710162944091996966859352807814736960263386251176829541085780278375824286289597105059839682709654971170494237246445249254936125263381085212065364301990023665721426392987658913232119776702199965023226710083668876747682049581500624204529892545670276970046612381184210745641391150782650287242006342576926814202098967578124247421644652565532382529624397772173353127664606242288563352904317509333066288222138722510048442052693957802950931609609252293183272353600158847292790452367905005345487081502816492916534516011556315900397177198691460664960308681429416680023026027730321617325287559036200515141252981214958783350302460602692859771833174134779068319071282407447328621796396347986701290243812220182699393864546092509476297059134753579254401363906785485224342230559562329284121806716300915451161683078177293243110579686866704670417405669228724072106498789169878484519174570548790329917100166451724207149104228950308192968568871990022743346648615524165064754253654391854642484313903555827920210516503684870662120091182462698920328189413013179218099273745820006285935485421607380698717747133773218013208015223939888797519793747258121428329753360588358069868152506085417130985417219730553364210835095983994506402048968452298648645028091301474124119362017900519991754822916232519326918984534895615285169359530499037773046462008088803367513310654832694668594273783372370005316084953001275302056782930276132232554399904047330919474308990106075368474613158587650658807763974065938523981166011064038138753188408248769235898426461528455357037528515803173878999752316740153973953296209512004985985550495322756891012892537635518165159149571770475566930929370883098795163206511956559133186233440362745746231000356889501743389296602404124242181693376816599559319612699498085976898987179271332692133250779139449982730617461648321724292740891646736460314742240080234082427581803928469656781863916001924796817053036882057867877948408144688380879989523810567517726654609617202214960829676877071343166907050493690752929392634242489978935405537423762165402533638532135756701636008215037676366920863184181864057454235639382429639610150718552540880138290609878962874042156902675206599010155502710594653088817306190341890964415713819056500537519587661189655669323834883344550908618948152928084832794940719687774562429451637379874798777673004620681995241161084452345471717894657270678393305099828654497656637378953704094747839896017257247524680104432307091367650939996053802764659999889851493996455662794009840922717217523007303928700584541959048256038740391535344286845020181475398740544791557852737479563370837601889360276911567387899559197494514397697658430604475883696383758519228396921591223189880902604830661789614346898768860042439936486829376658771349562487373916712653288201666788561735483428108889346048684747254872884700402264087206699336818193458687287702644747807293250647659256728867147432061269373375805674569468791226338015761648044107599615274422784013822186110393153708683120490780578543266742434542451583391042090005728308681367264678370650659552052522261906138943194153821035993519174002004621711794587032486432389071397666959065888611513204996110595102588902892699701317667201787808396842124052591931966158108466165005615901981818594275662974274641876103832763557200001201356686994696436470386643442592454742291292041210469970197971765672075442326762599776000362610136766863889705361729236296630489861389344060160709706044510628742742618378715505299019860155323542236694687564060774371876395673751583689024158538605959404624941001026006685941736833128812597677754258748763158779634749556999362133920494389381738386253692423740490154383675789393215123377925483978019461471157923463154537450084248774866468018937700693528709212598208434322837024686694415768756460918624211259900096396475256449589356200525480254546413636437273830723752627317077216234144874563649215040265448525439184301943491116117486470143578547963456480549935272907087214756702557273228171811575083163122603592035219314222587035192060508951688346240169572197187463762751527400592047363255611791083688994112828346765022042059976157281662104137195412705853211350881469989021435617014918542160751152585551065250252228463921297601473648350438445603896337056189532063797248134424226100272374621645993396279745876267735058692061904860717410299116445999287271413701081139729436450761548864250970266406386388336532666670471069592537535133376577519481441485838441895108242076973283620124014518770701576222014489376156613625581577238271736801173868587731115195301889656163049579227857379061777267131516054562275815118536406060673723378366659070650794576284647885701897452932951044967589421143244685055635307613897041382170184959693621331793826248182589607742766454116697453486571911132624145485399679279779735604704731765233035612869803179633495030191961700149258440003978844074695197727294603185366696704261585120378412522325149409962436555022834070441553545126501418779688955327766278785819495296926751073797256379191714821715158029498893844537283035345169236419362907918321866939198073483872355582944663474243725689575090321342029317772648931209785432913866224780851126921879387890535725247494486963729908369120933706072898491648426172961980679396844865684019426518353242895800068005977982731297807819189735124951950599140563074928083661429606828654474286147686754741435703693552412175280375670356860334176302595269253555084319491071101227095129152879246892012411500480217811726891645096216060369015842583706724938408701717373013902999669019360138695937073806033751903808693239326494355760551229082503507047942960199770295813617095313883407380194696728761145862422511151271860196427125831172408798283707025414673667658973438837365027540813157299193891939907004779477658254835768552053525613947526709280832619917415826895651206511876172776852566558928257607361828698579115342832731582233669514873995661973332122560452220626341362416048051653242673385819198330166831264231109777338825765724449562480551036940353677154978179477484587532838964118966437260690565790542238797118025133052419139297667481315906774808455092252728562617792516704110344620444259231393835419040179180108746069878800456471368463948619740457232923327778386507877694462268731524856551823155910774438907823674767065300311761287608542847614663189041570604118362222732790816061848641760871261200073976668053677309956720294079275295925743372349232759800909503031733724502256085625833378581834940899300524059227980450582227787407037697573585607207499864001102919462591727161238114526298515589134389469542321650151021381546951469145097715511865522558350815616375731027528721367151357125205755377969002329964244876109632075356289964959942816818477943119863229609557122702207812583656373365522228394633201770024773883705402809316683772409695640152290582287074554709977938682379812967013837720761978512419846066273465829288954824592027714877235947205935167644179510590739866030213920154191293973238189706127428651122752241328296857610399642513315626827411726707852907267148429305200886895583334764483128162429077580166547447191487105887666295678799694091184672290863133127491930797521807617549381138394081096057339090063104622017442262854825824485388523020273805851043931226495361228668894895666451535356676893120091127769651853878951966362967845489901964089419104870495912163898244535565344646352529039920978438817943684506371512883233111643224569903622621328203283766016400325523605629787387573495763319628910937873878273484526538239356990555841140006249771106073689296201093732030134705542282684804458177791096309056800398656567008200561233684243035915269826297557360007056615849564649082474775345316424892136563771595944538722414753934265217703013620190280911078790861031243647557245541811203987025807710007505786053689184633298166225190129348489753547100989502295558200813562122434800548374087392650182794155544449689589079418033364794408682820982819509364290413298554381532052059826114403972500716282625359872670615329906812166597466733402116178893272558826854828953078165262882396504471974100754337767539969674265402732574461867291611983326761160111748160327590209072295843507177325041557685491586440479272296740650928849970589175043301519595655733427962294332216190530150860135127150862463765775456662008976861469093203579070898888747161464250092121222782960922945142267899793603967387199069804556199138355609043837286060945091505133525399736042978248915532965491327617078472722848633072942468849787186823139730480290872069360785070190385779651268544588311116599939649415553669156516414088407169600607688672394695351356258212705906845418520503148605715679922494377713275459099526354424600199445847697131203583495130521000239456387114536246317587843872057469014535666350795558361823611196955058113671240643949386802642685878774728987169098150726023863891249569952686626500670152928490042259268690174707208672657154499871199057927986971102207924329581567207821772174971211003672325520493166182494181784064672957961799712203313369461948678162964428748392164735732321756396472867366353694764209166050540547411644025885992542333096789285191137258645829627447715249095854693152431348025651330316508860799360326380185489007941328340034387493843550731434005249264542108294579436536452426993023947886492369089618754434881303790070239676601053673103539055270778966847708610607459994157985108193110647523902749527279944873326745275687545448695512139205932301875550377582244128240185657489343259330471927390130708547336596820105468468228444768407792920232583588962354857689243069030230698500232334454576461554526311055567870804318774838290549830819461509328610810589391407419081240126783314842732645116562592595389514888324057066666013361436357105988038485170992095047243570703075163182011498646670746082313914039035743411021596658566059590925292599948627296934419288181997335764613924913006227340021373166199103734742483304632978069906243910181202851710085423454870281694928422485967648910847532932660606936307887355636446114368102522214341788526378681453464194733105157946042366066106888950017017520288518611883286746330033169751818375303938527091824348492175677891498432668554700604364760778580272521023501645614314007656273756843666048618551665795929017710942634940569544750246822899402586971724943071324679406686760160692524263663628191259078559547642497666826107814593665759849965406284389805668261330542662045969272134590324349732835142446374192402056573942376330854025367578616693103542497868482664562383800531620440684255931162547570620658341722041587311606054461517676644767270508876267668157194831868753641458344270289585307233688415135073358559665828180454788056289305650767413212485847890543076557223012169788946819730145450963660341610594440473578198882267025489027777760191635954789681342928321112900830073686417259204073441597681748019024544757785570392015613574069073408464877026379355961377622953382543987418870425396035240272341483273278011429101714603566224169239976698009702796934218141717933449684334919944053733492808448402432536708941986802078169943987386439691335923165067146498357210032037719009456378747623062579639280491673288861723722665248278737518776874951637480371347090961716676860342074988854481690277909242384203027146884445650783194916847534109238761214378131504320874038265998311112169753400705855168616038007781406185497477291850877560942504148988476249715644378324692052737902327541442180656460435293343728420371829334402472395467789613780655891947634420447882233151904406095342585930355958694142861269595472890418868540861450476052589749076546917159382657008326018698224974985596090472425014450674687935982156590288942397264903204657689052614554711784582033027978884111062381755049585572204776590990406830549538377534295298428101508726188100953525583857439371937071074189735808167390962850459557733463119100324374053718362019642760730284091818929533969752347821608824822337858710687344977194375618607157026092933697461713382717573817809357927203442877202519614150205680225071562318445588719808282213724046751580078866317355214231817448325446596899099951899698038752512823831609344528913133092745983287074294030816638923704344942841605714300735971712115189397768386869212282155741338280571761846466485484862089232658809007368233965052797812125315848811013952907609394100431395060153200886792149782953867106938826947430793217183230262019310034413133762500792279866177041067342374927119134955143043440323367340556222862652186109008448224070244082467859560268399497987349493287308445846620694908388743182545988748426492028365398658555061446536010885082606297830129072977629059279706728232378948958608322908141958632444510268906478266399933023558972051882920778558537187119182912164597805592860524906961674976280642775438818170500696428917010599558222605173134157812970680254054828482839512404895042482579297623518259326709876264440491686108041877921671694130640876449340141411804901232315257955581791673122450598496986207152221453680705105322526129353317164514906506221005078987687629818277885230155470988078313471040338194395146379424927969255490351596531969079543955357145147370935813305439690197474093519965982307948788050090892191224321440188947234882353077491632495218016340923355928072171394090924395713655150517595510271711264824491833197906148832964285709290669471843427088603386565280770651138767487764334195753982523866658179363298656552180774594255173979222590444795437539321480078291423885206327218349237353999193872176488483890142898554232997624886815118501392001148182306315428006287546601651501097467134701137194504571678842188141123903672051178667351740654338965749802814369908424711275785666761989639714793441258626708878087552213389793084968727357532283068889962604114404898143311835222623642558947945166673363648199476047152337598974318996787404928065168323222309696316883636552751734647316526327882848039754234536095662729355734000005514043492407716351955050627548835975928467773449516831267623516091866903108748157856388799280980311352546965181865164460853901945475389034340445882246628529909911410428303993619311556760733609081219917636036811155423782723289938433535048195911354048981619418978211581437255578163261885011291342183058428281990974875949137307022465197445039871546939081403420751210176264282130906414092208657619680209577592183097229807062091702506895106564701254721639782303509175447031768141211616969837428528554509977757612876977560635067002447427865466549069497594492301936644523716532295686625842822934506480444856273033817824326680269293707509863663154992570148684613128708464862902952102811054150698614606079889486941321291794173032553842233383322871067759668832118360323759221686814535749056756949979586794713766935488404772398557120325393116387793992318637011589497603243145719513690300069092459812664259742129181951132625453489233452075898396144049200368575287198315193511568119111672715355902695164042508429318556039661209491989982774363931980584607008058951029578995773259201470566073271697282424183800795261260998331209469209497847587960504700647212188884271505478444706186621972275037466226398997066940432096042962623046775841142636146646314397538537949589982642920739871899342331632931164393538818365627650223743412832203977902204304990495277241958474147060058649226089002133719559321128118368340656789566120238602511183832628061615297507166790288895040180809809144717291350067556593345109509784447327003428328400781570962425849303769980995482600926412851456996477897117226740303301802960930760105511815649721790034228824692214287210072026506553223724786076432487991082652836242034182100400813856887929446051598849353675431616900310298804516998450501100526496544429991769065465788572614196518429588684542125895969195176403508650853525420664597029333100533041895915502824768451226635159435694620685784592409793566294968303398340569480802681979278064177986373203848270991892640619466109863475911290321029123821891318298404568201848483768759750466734891193838011766071164424473549849878080654696378989026968628906420984154407155034427948429110614288904515912505957419980457089988832262177150976448444127937685776788551882391941714973374987108029256409319219081019887672760379801450775075712064628760566946265176871317904023700887968269605534892948246420537468631177868773801404112866469576723180221239907766285451251723898655892056316654814870404647726109021207930261949900589379737859717751601364961985928821661580558942317982774915393192045716723010341910510891930301995035527130877489800274818052536078738656538208751584973945726008735032192133886740289728152133000394082494669154956349269095097314551832880893387786666133948332842610288204116622607484701695860268897798254603224810631775889094534604961702415543874122082820107699710690125429676403916447500170458543214633441819575433939470904485448853018258553345792277779607923231892882314528403629622680972118077543074521887978740584871204392298120552409316111223795490908000381180234547056817037417669868892924512643797770177795815491924899751977920624889300619686541257369195051997209597428230378192000952762073134424433439469307506284276802901290638307731887480724983135317420321177484610168132800084872953623667699472580632773567971432899900833684073967960161315259720078076900654569882665713608738109773133746887811968599151140497873441874995115547678288372121472569838277145067315557484064570224357084042254023540056532299518328028580418719132277687225563812354332888668016422300960093483549507811730748906202189928269435166265074104238298495160610643469779424990195716738019070043849387862659204078056752585368321730058713742377006792143948928068975956573064574967636840398152183769711101479140573841769423589924403968557826005740141204805460599039974558707103678639136629089914895377560875455125166832501256228088847440949682203806574666049960408828313092926065789863713956032860956706614427369630960973082088671612927941483815702054606246896407186405273950163299612216599556478247331213718570330929581153193169490083566120445514312466682336658573681837332482682084353213096340881768917734812975049409699250580305079993149175177724826662556431400596718206706909043343396209608639489026801474626089251897314182485297734877523808008554932724561546061021669673577534672272814632997709732903118249610261755319438344869713322760115557124839756885032954233620362343299112546999964270974853872875861599289586480991316008450608672474437620566803585310810330348539350110316071700021113492669573707577342599823002519469203412999636274449410434299449877099701298745938791256936649856207552293447756586393776158375607419068538118453929360116889871981813705125224279609115208959016895283066087148676385427081195774130676807342252667438573160186314125242129462078547111971996295108222651139304504959733406038236211064569964258682387914138920666434214558958464554835191989031955242979448461127074104160420226067643891476535029397536238865304741486222584126166146768940709877685340057338858596500376093047700706686904103401105543446833863049469127623385867881564885882674526569807265913141937173079743003426724215236492267643355878144979185942175946577094255460749547441176897624651890314276308925662862087189431229695210353223200004233890404730829073850160841305887745076251221074133263431080081351539942947211098110225585019566974714929595148948595503045043668009648046796564025885455374421740330612192830607772767536037448649053535355034104312172767428068174673213126729182809658736590935373754883412411726636912769004029718774663899171560854627708920900307612233071618877653217701211709499617849284271156450340726821233467936697717970073483055910586328086448524600366064582605533525843398860352489597233056143420720258351817278233588598472228565380201901293682513706546189081028218696496386270458504699806507121310316455760887044622011559523201936201226974500283363336904681735537363312842179335726595257220542610679842878646475732836297198892356964760995011450571001425779317893286519528035109945799706340971490014680157469858501923073852282861341718385961196884779684250970129550288061809190996071547002994120676830085210020753396463157505771244970618778916740116312034889089315011603728732917328087308277538648533851771419262384422923683615642783301159096412012688257259065428530069898742714321808332572688136839338720161980502614814839503515444454798947149348805202927565410920224861120269975280950769477510609447090938445107563631628215758560065215646676882040742302487356999528746283119345139552062605684042370087353689186355881464789768893976690760055488618528728217820314187010973821365113125353261149247601077362640365628916673881955338270647088687266173596904298424244656191380467333627091178076525938355301306034114613047497770966689902306601757258259921497044965996323985887557031434828586482351028023781033269306194131535301133298636163060954924242783878780907592068130300944559617317016089359788272869091453049792613867781203245592727889658689311875797095800649496382519789714147806166130897437940904772120797929063105899913519802421890817970289103484059138428005840066702864110620209809081117586978203542121098975906831118211814164385892308439263642223956082832935722801163364343794136662732505487468827585701205765783107996046380249033458439739821098291343557001667056061357747038138341419047323862413528252200621280936022355524416446202652904263858036939880919290328710841191686152360593047948988100981319416948079625085692285568298176319376296954150908497716002004418766002049565212518508152878528399161999620010649894451914552587913168744834767966807049850097971781264922015477832438601711705562531837745074570343325951720203453882108137306883446742096826353389977458590036856246931036136339117049951992631423150475631119990397681755710434246915486179901907699432609376624461024292354334976636472486626628633097264871303096501357470966731369673796345275048781404749497879981358996013098370348808719026308141295023134964841499714358375060289984783926282964070688888530244462413638089505672715163035319044017669300806965622718263004337924615687869451246965275705692913915397004513308768636689063594633642794216359067661031381068491089639626826963975395406438854789473323325208126117172961126708605920112171504800635276212263562115755298066881483137708222228922064744251788788186332881567085829344092456666850771725369603630052022414303173228846956096323198365272249562198134102853787220878191609518320114912830835532366731651375711607134232820004968204078346591804100174608570946911606618565805638554511271243639786479292778671413130889568680324481699397879899723534665715667731558675848997026551509083337971102984355907091279402772944786799314365279277958794736496712607231290532249135936220397347430730350982443177451126722484198963779859625497472024166288043229538532427927235584780273086040644244375818952122787942980862400194771137727121796352118495850922793418274112156355201113503439944057408187719225751061918978616559557444146286655382845139378021902636545132808179157160521081146693149106407400406562457693187944348412698598183805543874453075475438439285237025990470613074450176160788289713017977675094355370813564213364716053022688763684498112313573144769504377173266135316633091411082570344652507745961695471758058980975822243978781170238848008213116305892258467755641224320904040028847586598968758698657551586015723839794782065984786925748023456531885043189418742948652055044176532676243003128232646292527244949671358557462194929880856457927677986663873469692301901054047741110132093641097563132336388333543678709857996792639388055371590332924283286914984518121077204720093573646470547854537471871355840255220935076006191909633511688465190917011128108805351275690304833046452263971477542656748731323862799489035176383439076148203605637394789231089090680479194481953406111633082356171306349912810321438519209583043695364711379020874151062044447200078099961315814575142206894645343389325151152973640918975756190163243318555931297405136674129681430646202050058235411949844184254042334502192465367403471389539459940288586913848862468254478952318015064534370548830114407258871145335370404491781106207236132223002922023647818305586243206983840837034790621215997498693512851072299713344372408575339537064611659851702273326330455278029149534548429047156100794534868831883116533058348089448592040269697968810188902380912841922430668479912893988168898377035173402387844654191834444152181662639457792205410519263417367700965740347008233596930756837761097368574913085187828270743708968858876136096857990062106227839356804525540771530912039457015589489315813206838708348630632125096249432162571811123932364116468472203774877749824581257028048312348558743320336318487919354437438951743987427101221133307610541229720675172385330061034685961884937481957830814365104588722056987817505592876162763661712099714106813809815585105297588252444554963819751358601981101988630741794177501953229736398671001545548846913398955788825127433957057879571785101397141990780761455453185230840864810370179100622147459062061477722361839488452452903683944617637896327833625644512656598933986190483434761403668963796915285040462149830262611919670542466134621565918817719413629212791685370017226897535276846838652320721973119229879093917606399592111253404714844564728333908406524401499260323438753873572050432985381566291771917470652252558919700183003189734721669875372927642429650676098636203721356997383601955829898849810065133636278392547488259027847838314369134457823450061320276028339239451014446352673384927773266774773310894223989930932159463395586269174048770379946672514130356398879546848550849028528016665151792683833957964203287306316028033516794548930809895105620640597261766375469388483401334762574443499479123391108030644463083074796593779874062387309480731482283614038087395458010253898112431533187838089304109401705757185172034607409145489458624085725730556708097694538025363274839256838555094179303506594936231487015052887216227935533841830179481908336627079300820945125327314081620057234067018657217167791879890152140401762063293773738737306684347626321621368007334364719643696887237221500007001840663571700341786412917308196415821286841148965422242261941394223788161787973726349964151162825085722268923362624866266504829027871927680972290712877714362189853217314690717065456532115369612003382448759765654474064452834153324948867930062751289739224740405165638465805830248139120421276777565221820404943066095540811183878603325875590034902298872226530042728376213157793337898345894525541921057915000644303940542252427433080794585125157164114843351859506274898387597414722042714917334169165488148498389292590743603293367743523957573259468381618880946168885810909522113128936537272099818067287892110213392773901166511798477330062178466001227468764533017605338737272471279797396082095694890094278430661214515204232251219331170850462505281018717278654690885785412874126588689939421049187355482767202980733298520860546155334478088213092947009948779608374979558835690486985261970728596002645506599548332808417707865240374164239695654567480231770363124722431293554115689863901972298289956329146239895373271982305409929217784703084882514584745371809363209229123310683185471632230278015715440563676939865080843967152922929531942049874243525528655091929398630771367710061094448500160501474308010218149834191068675068591807129663838138228419762524666185772005549660557734455047113550742079790893439353045704880449302929084317709694325190211306401369802226435195377659155727841437603328553785875255442357457434836906267661438834009905956755519905052005015149058574685207875277095293264255201273072500452630009113060369820024315852233641606530946210214865500514343003028673128772249885430798654929859546712325800937673567368745211680588639847244855101780157610327819320751732749772948716384642378653308999798730970964832113360746957799586104029385826556352128106396715048547771291130405462376300896569627621833678285812604091579780320560245020387195307108705134173794041576716320865872652686170570465021397408547683125234217210843898257991405531299783146158533868873206289141021219946779672095658813653137631387846000399207399120405181642936067653247981652177589039617700616500407595901300635577009699279326058593920771327296673477968907385381035753723335339703546584734994915402584604206224330149312812030013416194093553796812471593568796120061436099980446608512874445316767190808833363148822559609983652575543937451290947386242380652732185338886750962277375253475223205648545889283203127186032668895827845063502035108123784459924781494323574648218259803977446728553837805261657432655133014982118265779810299500424291417795299693370438283286063401831519218395832639872730511519620611999934360367403321666060638135416526437570242101760615813252211046447388671135817183479036940098912635073703634113577996171889365810753526637752464938748849680997975138867221513512623164097187149347606658972443287206730737049499564991297990391092906727979502491813326530020852508814654823387904218210753958200503394354643468801163241501010196086734287137042104155626182674422332440299756005590126729114378829448200900380355933308829181274295435532998173904144085834982622443184968585796902204127585295440494765101179311962643821522928058574121276581322401206784209859115936717988844746723628846536529090306256405603292156576037501053376530978556819017360248382386504646817903119604113246384313600804835997797847949863583296205971520424059111825678880084864976950144200184091147447114269254353769964310208348704129245790790431956875685627709570025038394239878237243848568833596249652381812502570065024571345547450286468581926943652866677982357899108110526140888785893459402840816312379452682312204051893440262364291933253148924261038689468803178300229679049190638866631535552989504820076554713646862520925878992755904460709467977441249013623208372749619445115698053218287822905144948240921555084249709396725464010659723233060613060256146731964985267267701493216531701913759277658544565493425649649843176203807509354794302267606777977471696345370040011472979689182683646978500739462491082636717149164034677438943920005423993313787591204310755441820174113923610166447763925036250475243275923226699177410863613927858591709078691935496335175600960315027526452643507392896814712682147627941926356841928931831218749836930821996416223737530717552437590079559986166939903529003275933467458479286158204077432896408282856184346661227860369401392898424474855220013939072278807214710388032226650950333166632445035687603544308543980049427891375746259546229977124504878835640798492328556900694329713687480261070104953199902587492086469399410541275893674188504905977603022783056310347678528336833977866291018037995812416245636301424442248094756570583167840434994748545090369285994121355257606867055846713863156235081655234687620984613656020534784435582355538744832953247982503415657204862949204939110016776995656627502239967302449897428617460728580640768276134069260896993859226855670816543005687214830220090986104161815676094567053590598510779437658139142963195736527368230037157216464602393986793338115023877122815928749447533766618491985970015584066353804055733411274764604109836157568098334674811640519949949654447174984938855466458807017171236006664413403099574348242138565840423967885454589303596963226733368834258496433946106330082893106213268348881899113525318497919668123760539456825111046830624386403507935770662317652661568637720258812752553400775600743223233213123576090936013815768651959480308620922710931371424657231305339176607088347422230438823270754204171825443366325799921746250922491005148054010432482018265572646829035212772324370889833714676839966454557663474387049079211241398042264361903652649510704041502828808994048316435433879775510108344028503021971048452024201750246962543996677901837063734592966232906732450812082339930697755555028094858125401777357141113464737765507577315338525307550204180132703742644683978983468029660278101325203491855229367670812580605094543340459456403012918354480261506434274345599562589968951091763672159364760061958474691447964312034528693354066706627124768904552331608583469668733682305127186617145697501101751311604834213158404395552864061650027660320298040091233048292187229130129174447312111165945569423767542322487993187369317508395211611242868169984627597900343722282078065194587868896782635836576234528535889077769952222841430682165307266706449011644676319522338326682596643759811197812272125765949947879877672018888530943954705775010697250851347112240156674050415560769909596143374157303296549251251374787853240474635214497236148030038723317054503320646695962447960631561710146827154866950379022903594227514253108068472847348021116076503513258135765279528882185026641074442035001317046613631698134596142101817036221975591140547732542525692570015782970578574210149912096840271865744273454245669534347290716555954551103422723001889923452807637091334402122161540921547397460850694497405227290035519928602161789994231170781766093797282860146776621153755679558035626434087388350839730762742521326598948634752524611401359754794521001530542302504772283146517212802261669445151203879667535518188193676935118015010851812519536066872472678853549214124096684747728342660648825732737051117130461788157892978926846275641731221824354647291477245617713480356036253799705637187290894256844950252231017056361390494686144076049696070956175468614933048320038739350779853224218674595946873408952191216075240583007490961849395322433070244451962894207308911776349313299343726328415973974957929215246933598543199747415339303753514205880019757856692228480247576193921926211713068979387692100145781972746066854840718654493225264287743876262564714765806326652111859651492475499152641837138134104605174634454748895014612335394550313585071396007465001353209555647791461667813083223891691891414417989687849153458437935283771460064935240467578021462564353234239368787391312909360346004085692145098625100291453720149776343394931598666018462001620631293951746018430749025944328427402039529094519130778335811753307646774762316071166408398016526953421120350916563562017478520535455054339069572693782165073139530300209739847915581725043207946481980287476147576891226046068827666240483531319861205388004936357667439956484883877020114063567289055700844245956916699467727223869975049564577410918330314275452236336603045758840765302525257889043678365488856752920684816995131828407322134571759896936148223935602757595320190149405727789869219600915409114354651553776052157764753516313367546207959219939592016343058046194412938741068113921632262897133206769465862083049482874001287776178895265053687017577028266445532664404158300467634378016028574076337186987876097164859814375603484010241010748816430069067412288798301405320483088713028921099330015431577746025964361362221061910170029193110562318451459423093935162704804366924897523514513089335169893690387812171567339356809145997029143917793550945557780709700889768523062253043208358258578181237105481665604221810091301221731951497970056182789790135489842799062467398948015246743601819144175675638430352543440099005839615990419672592957365431024893182772410762095731002225501875985851805710192179544882381660837985350247154112392691160474714317238359750533971190067896893700469788790332886410360379158687492813427976255762267531612411612560406581554477347734645992711999008816665260216437409263750017359600419064684687342549720719788794562105154492762350389337040537825823630390986731028259231238789474315053824753202304004032874718587945056927464272857058642371878417895451744783035610816167750204881347103067132651684322203587957788602103624756962669614959215911311363064373156211688045834643226312685693217894992655994068459397418749363178837968589737507308549364911190355357382556436959823511382038638200752861822146818302545480602310247253554958379746539725031638854868589935949543556226403019487413579088693464489629206000500225144011314141683084002632479180467688526383624451932497731292478681054925281270194397561036013938410111366640016183451159091174219258856925666165285150691475195043733970075000943196411516165652604441840760847726900527803937186573139632724292913319387148214395813416110200302909020028054781439156039236439478590412924802766183996270036450195243425193405607216619243623668440780696546750446218352643594907097616200590951456240067722752916283361085724529606548897881132373378458725514032690440683257601079235894370030384376133701272755962343447781941850858855976226071265863868230807561099121071311975339213451309385212106925627396515608250626028754885103935238603683542905983756034594783050842770032045862289696208640532873593114662071907197451363508075133542607038366160140858059128565646793028778256266659016172987548168170347862430171952994909974145602033775270579263895795273658007705836044758063640891042513855267566054945502227618565707704679876696851671618500739322955250255933595213985145801625095005960472468038643689037624289121544608452175575833769864162881130341875602854904770761674319959571567394807650056025655764769355522490460698687955907514667343158806704622518412618661553070823571722119108525471022496701643084374387627209776672291388860665690608059038779106499707299031348687526040076828222796227117122436933691454668084246134949658920190319013198216198338202214205352085052286151541918646813687433512985064910617153363186935554632822310911334143428487711653972193204923702406031072899987963077951297180941295409206343147205361748153841728808514639145362422501500239391345048290499715508515063262106118924435741419027074372068770404260025760671980593472499629638231563265549449544901460404407189528635331181614352741676096031121892173792728244325815409757401235225818025813790235524109056204202095450026737119910698101548824309542407784545866041856807291194911281043953918175442020001707999240363217887059565442046745072186761830704096467019930633723242483793096934643668152324980055015063901213886994201086536459560000971082326005025312480410305450473179951537157741665440560920552615389189393692468106492636201136403407246786333651452576933686926129467162252820576848706992066271625991233241670737703805089944115199046610583608397357096388461953245346099394409156485164584879545806959673544461241795761589625116014633274535938577092839748318660231909479771297861299194298586640631218393421068244772428154051203351149140765304340461863650123732664883502755119201267278795313427082938230492017987013347442319854807841749541316853763691735670765936064642859474939465031809949346735464449949016178074838872394274182257429092999268328915361777025355653931288248221047622596087664902049380590640537376573169366546812798946529885403243263976526692025963885017160342368288000182502355334429228153226264729833514263004422403740513289120837401720472835041331076134548085942569299752427769417278298695761800576515787877675916358182253352378415191765112833666118678998781609590168390379202386704138879737818281288149046003396396920460452665214518397104954193488744335739296352945005330692687407539885586941783118572480137414346358914103580229451005703982049798035607718615272469634347934690770854820282969322668855708285758891280622564897521226344116131742824231778157566626783806371607301100610643557200673475598374336693737011059145021567079444381909030450776412458656750419031927316670457906937456120310295786403074943865870324563088020052272564575756265156160213459386455427851595103479812734767817973953149831636551976644504819333141837808551957166475332364617492342889096079602998895040940301035666949604628441079329989047109018513827413666597245082578035527305785969774636727067027796283911146822296495161607562064143964719601971427263940833412954045267664776428128888446739088267208762815303084188695203425263842664917371462883633988383249591399214217765733118188978191967224031177719781088768988107670721933371870496986158747351604498823469183686047059874744684064849811145706493002361318899725674737234374023621641286349835999299554399958568046500702136095123829107778792969410304166815037853808041309281852969762035275340530156709401701701433306331765113613579054834156917248223011212596843273018902452251842601336558072097443472182007349894330761809254700082038091143483146672236707617302391450697903643448537134669419225609686780975676409388333453949106135539167645365908710014435498823284517952344134516238026391793358483205782294749170135558360863368316573653559882317114026262885600450025918897676207534550624870605172661247431142852153196924419107192106445346199778327711985820026445177275237317528753863742890052705426898452896942809290433148608855799510425027836102443272375123215367202088962344178205398537803893833795244643594878728983785007954670291496954674657999705088185131097010603568426738973530785190638933611981143863589566099993155348520692381640934659406682312358161109453853364320278067022230764254429824308675345249219605982852297802950012772593652610128532280606932111625095964097011738161527323304311482467961799404296645508288505256312549063609581965044617840135216576958054641752191515406526264212260583382648996352946582800579845810613271695204627632059462449809423468760867902805466649258175535933224355310979148588790030451001291772105732023098284596712347764325535209175482392378827136968544939717405030476406884547737979874593271859485551481245737226290760129597701722234377305321265080297529604956608029077742237525953156156474916625919435412193983724872805859110308618010174434527414634109953089303652105137415531874365999691279440011429174408166495532672773631352507534648216308650392340797667832151729509157700537300506869860391076744166952991174077231092098709992832234118279142179375316477743783237445897275914553896428911454125112642010159367286166181419073580212286798217633464797772976341187722438327085323126993563047032077066288137851617419493192456647452845342069163838725244610361413385428681749339115254979235590861607798930850151852114320816143248746581484007364823270365131360650237684226781042869106925978640860896152231060681477103130874200387825461482782045307332242430511443311781379617168921645808052565198732882254658795108421442776511474878286433271430218400123006462618326868437117474270021097928972667331128775605143868646022361853246874010537200463311774232850496410939831944308746146091886380300941730279999277865338295340620515210664424937774580348072059149021116235854766262720821972481841020041497880620108836885898659183148678481204251142150228961881174422476117581276783125342635894797494502558380427890510571410243068687109481503538422781193342154306598184036740437113588301587113686108592349053350060017977854427360391394036309707322320283191516665987599107742582076622054380216304660841641773081142277871043996718139888988385175953620040488997219257939683055622166901229610448694976320642806155374277075485422445104481994022486523764690958214056430533312643582048111675653052314213980728930627420522972838274806455623975730472598819222311207873883914534542382935301062701848438310892726721074382861475316692792645891245496428515864243536273030240051550486912320952267875935357337503458099273152698273545791727387399728663251243074697003752336062036577006699188116443334776271951063694452106444283429806177431158352542377581615637599947945263706073470024903239731743413582220402911643145705058870848385307658105374442138222008987362186932839313320430519970298406319158266561237308623443974745844700863213089292882366210988206145568851383304832884224292138201759129819329559190987502770420886117298207495928136911164003306586457135152075597811711712547006826263856246704896020722806430342375497586673778350373041344813906727547203044996991864900475305762130027245526489836706639921578998544400785402077842657533752274704002180320012924934435936906139106479480206463717909944732272564683529417574469834351775687756589728715300558832631336533885907020456540742557354450872547259460767685165232505565533514880071001787731660484620387189830720224275512474167212835911624540084747568901430476436525971130657195176727161458971799216482071571645031457467485372998344791385738565511301658957276052802867128262755426275314451467744466309262473683916070443119379908413371649153945250365209880299740861925805921099695792190494093176689713094575998596072463044913682328706543447968520844253202109618457024126522903341277412068587030745254916050931078597911781564117548791072442588030910478891776667463313552063885789831412109071218577008506783824589528665960521656765811529710673628986437156463007855508219326025510746962616968874699485946772203127833972633297267722576966989180100580363511971552367346437663626940476070654781869281363148724649684746344403872230624424721332321468185608012418815893410894454268431715990447199511195660092347765737205615978564644520971289337175415322697844680369117447295289431079843919360352498188107411812183944489002572938033974334306723440255799657186070556215996558310254050237398116391220116863414414616586299439078986913671255730161227785330990036165080437051743398723702007395032086408316780996241384445811186228896458076405134599252366597653458524572255624771672814924414947145501424886696713029337208542433267438195918973787097061457185045508087154973667942268512627691516768092047572561746809232871215517262092316675354327079722701401567199939423640988151011678732659212630281664660325604455601566316150607344505298109456348867604134338709975459442710534320310279306615491559753475675368771492903297581245094912639762898785537755669814369211681015157249077901483068467092828441537285868756348901994161879469264421292091577448646221000985934188241773850580665816919237890543447743046650598449094337797874882910872851886214945184981692311928161428048606865217888011524654524474606641700815503177119003285167225337261653358524606995324240221738616692896436436329481792948658002981805667683124302354963365725885141072636294241667225454376822060819262504494192506498423320138179115645224246765969835035143994627251046136639830972064800817064990376003955422777145326766830101428714455648019323959809856443013884169559103605890067438280157151033501541964220784763251073419899038887772236241575006048711883993851220458982708037446238831204310388963061921504016967776976349892939014340152306714779187849480982689466946001056774772387146891907177199650212139335814529879208415567467814483333542581448114148641125849819240922633393452381036267996644758979321810853225592458203010914872120317481346738723880149028946968860491636711311484300046551884016396182944122778359726345903017711936922927243383520310304984777450742042241295926956651814538043026678832363964507886175226520850642464141348470839323489425649047150015790519413149839669078509173033520272069381943387269194946539480449822269110368039899861308244813494534522957748074068802630846048564526545019425120685073610486821538906441083746095234631865783380101403448409741217124348302344708591598167542818407930210728424127320483224105631762596614193775024401721202919872954999196613413976301441991401016670021276448691728494091039862730585290585171897745202720042987314143818981214294882331840490348553429926530070193032722651327799725304994936364714528717869981699410176492981486770848154841314827263263774062572600726942833128942797690931394916889258125374600258998453401551687556905540811507245357163971137051758511526803362377630017773940748147946187227422980214667930758322713087095569407062006772724668823541423741733340590353125297845174426580840339424322584532410017287654419847301163105795282954056295623003293967446266645239549423852218595321693665142305370762786842883868236952897657026963082927611021623562531642507671604894632799565185478207348138422386968789155259112863982155388553357159935369552133187165820999091202203253751931360926640302355758838295237471724226930331260799748819758546841031646749025808119019356848992275902617156748358253379579285179642929521342518928493536086521784033518153521660383570275189390464766512141107237353985888660668220601521169211007554910475376522794995891065421246876546900243658736842915642152230668065753145258674596406130235956343393098473411486317863521067941890052207281417074668139156233031293806467206772950632690202705029520869165206686307113413568613794849765218770378088632826637618394508744365522679726615637303740731709421173071369509754347827156572405237220873727572817288851038275031504997738739213859808228439050780148091510607799255811043742160230967204179049870061894645265974899716216605247422038852685148894213381331036817942193191498133253435292265653268042808898850703170692952006008585756576401698235619331959380833710042578607141216058073972050621963863097433314714854730413421473594685628027742685173586364464374985756610351905353334067363908926651709098437403626203685532184903888498622243417023669591502688627632220929009520407435200608001879917754253073688941561769480583871882779460845471308678671641453728664623128534426219592173110557663024229577569719242636254820667410804285404235094643320556869263748376527284240317808771788097321242903776472378540327833679407438065853156709878495478082021441788123972592815508908940570639160746963857125307918835670865440722230359034660216137393828462427095431145374891115197275350894408182573691256094334586723855156728768180316918201218060773271660662686782513002249620575421122640483063672969387101574056962411467382516769621015313193684568591423221260813069067184915942284178377326418584612883968091656567285011186054780530465062193309187634725632434138580278271506751781480635723080337521200176502188566371353338724949166212791436318791814383700405365239392628809621484605270918166894693988578498426408113276497031372438332791283424764212042906863942653374573753276372534513741860895605944117525565773114932744035980546529166899568378158283736140787711050376298783755455114266967315434557939540980807562611162350003859528835610116487460437399715343729366843590896861098770002061809655606003740599975505896656797774028626779986238350337766026766505913157377849072946023054922828391138466816417581901236605953484012381859414404853620119593057668249434492634599113738322023513959474068313955387289013000193908457515297500183279597609766141263168433319782160146729146847323227078486315623957791081782434970120336963056146999737581598094727755326303214391462926887117562372443632386467857617846905876092396603745101887472698859518357600286587426757406434875193092525132518827505908644472528785855007018404065039673856285173061717629830983519244141193620775876669564927703052455760081290979456310316041678958031863203568540925538922158361428319465223550045661294160014643994024064631526260672641672775701675015182239291721224610879869204361718854648304497009886005702013036169610819429690488241534971189693474831161754856882260670735692646068252640623346174947391242779196363476935895341533483770875911908429090056611017823866755563440595537770999670974069593734196676147630690866748109082951201795226044745128787281966616355958223308274495853665613445831117888626198818807795347496799084776165356958647606054567008834846281637437320842447824147296666468346919322734682575397215826410549985971783438314838846096720941512353221700684144026642689044078803032689042738031270273066521239178087766671425177209864182176720106621214275532061178420470833941875519211650508177987356194064785659819427200341342274148230403614059451315183885637129761570347774793631475351200474479642112989087135868379401036411032375402923216751557077301289783839445051177898039619239129714102857076810842839878323613824042535150011879217901247617291692746844160681152614664995226832067068419706034977540519995497512687000904857990900807226809987331112024381111570387913091384542415294276040669300558537944678675627580960732768919528778531057063009975580320383294819335079526255444392542889600082744402099644029428124355772082775712464108248960211219854715947175706048015940445583389788427089904316135161008710088355770072465660357589552498023438138943580719473923532209552946836172564319095042849457163664559977116934298360680131343607216570874974503047231630214784122619335840222186946432620464199476060022054455182937197203007524020281388342466955871754482189384237230249487687171709912677381228144138202026965678586669185234581945124846508430873763518758338406766820327301025148671349863690532134591769295572458746934209178062208540028751411678691078221651185899430022147070545204675082522171052024104148025029860273912675545510234968225764618031950514439965157958768371916070198802783675826561547471588638835231262745782691762467657750433897606453348079654181823109405702344883782188732430331416945709294965782116455958701933083238031222479703505679531671342092007027626422829581412526439775410726025035102405558543069623080661220553094063937736058034585453373630441888898793418912160147397850279648165210974716990630834800413828600756872789175519812069544586298244272656609720246886300973890614694073529669564451145273114670594756059966234277717732806026222839064624989185758744619141094528531716476035129301919735504788102224357223968360337283989025756715942692038090034587671573257745388373422418238132165318080036619152463606271808638752010792465324109794416473480564580355864555317472005385324491738908186004145466941940672190859961064168633162953173877451080986037886906672484777298245913128580621467360877518354543543777336329440607139304443971515314280350720680350554625547245558276638221405519979681929424131909033619562015959605409722168293804287571074494612238584187645670621056706253528272499060732352402663405185467052967946297948239773825781645820348355178715430339865492459095510761395708073406979174854049393713734616004772013372989655140456264420042130725163205719318013695289104375668865214444323899607861662611425478094282911518826920696902047393251305598477159692273710642195820040429858261668459470715918765939347520766560114145453043190505496333254835420405598301550651650288841639833622953002667130705965343848587686559272321486065216703921410281972219171009059060534163013099531735969101195819999372769376370071289844387659100341832109891082328213835755228792853328252961901131981375857388532736158866292364603099158107361803634986477819299314925424361240735278413747642992756129553735909141739819587342735237762684737857760383703697831147887733529473144014260342952548931392241944427142230384361065939388736661783671057835311204163425181455529638630502980065066980961638986499207428165400372113800723318093816983924942543286241802266923631921788223877970690079516305059607864932823729188703157606310656846017400035297745821509673718215246783451377359536778333123849658463632210539872669316315171601484738978474396548217916420775999734508836940627148383917378008391218356645791953754582398410534775684179309040976112264312339182663531869692336089807983723039434860330077602153088700581116408709896197928755539390526636769677764729867861934395395260959685692858811611309778603217553128387686192887724303553012294795625415694008481260723601184338498100948326055507013218896444124787364067097553215089597547954303020205274887803448248923307313449521160492918795871235024385406173258218711052154287869836293715877203160854055213305990030988336822210963438925900446538155689391960976859008391808060781662268280400403850128706939753505314811463532563514260569843425137568120691042381738466008969715918893376861674086228637491677381313651439190548793401330209228250640770309767490044205967340595667346932514510318623948271828962623136865880899928400636572903977406370012412281396082363228967852812307405415704220981738567805761338270122808748323667299211860903982873381602467548749323831572840163795515180648519557764023471688654677936344279793421589256958747010900171193239326446812585730508340321985960704463072265016028986569815728909973813651409350187212161047373512124990648516287693800062315823373029766146998043452216252971868813778956452939645103390650626856214511378792986446382324952834585729719935944595046015410042619134954495296645782453101979078284130359704265006922534966645611329156686462418806450461901534756018819740693308505704439442304902394607855813844091128157802626899110888931824851927805110418627218906404386751999375033450346760018543536319865439363983010818719485648522179278315678612271361651364950110551875253370243247368827972414134329176524439041887861182758960590426629201044897596141072406329810080982350031446513268046818849382751438199218425354633786340330641293651502418122812955659757924875556235779486421827406289749596884936826216721955692606393772834038691318221373323441458146013893918991204733573314197283735210456118055244512501482910682900870679782684658188817208619675462017187652597985157952681295116850396255640478668430541308763445472104855411015703798012810196668341073020704933504201936737147934699082414693479125959745886786176225513912379300424936601180812383464791352714212288832669218314755704411475081889112950295418158068146046128415607018169889506780035907448631053324717284812256622599548320846391886589620457677206281702033745382388316993874800035627336693063919908582555185832140316749369260060550611423515581209929121668920952312080707107479669575733756822138836990635525785227583560889771084408849241637527132426043663003087363120245657231093130501767740336386937444012458137988423734978879944707672548291208386364069785328383659591656737332904963853947571755363318132745470495510498673948071921642724053343566225154194319184322615153986007080636125064553090098056952737270335817208265944159251535797630109311975707486096806149293061370637059292312175501421860418875380058159317540001192938581401594602548279964412816204272464016253633303911260071787512300585778815582196589280774490924045705643988135993648308125751033442332152854001252226217557763648735437233146767477360549873162422192618855532078503232769364722120418344353529841244363547079852325169018066752844051035770129731020287108696566126786714765437134184968274926553539672094169705475780724326153800700331640336544769923272173886658705136609273228834037690483781382153226175974015353435861333311798041408059399105551883624650162337168186784467145108293483177068728064412538580137042774201305357170490654100522799002460896638557298919043644848307278659901105211938538008511889279447266533881838092387792755084687324096443390585110289072988813498066003940767322856742764630830813568201565362994999755739035204152608948021334293471581479027146235969095443127227578849527846033443268297715321435326866516140701329944151320097199524977057605460402699167081002965548235283137322606905137471249014842561270040411571286377955214040281536375796794794580358084386778695275753386081175608341603076197913221955825043606336773604183029413266238722951170468371872222687777101449903160644398361590761106057156698115471623402066011211986595762753291218744295492383080300608778800185931996702141442143220426215549029010630259752122446797440938647580472941611574854295988627321764660375576407687624135410569375911630919474549147853757599140346780852290167624719100940411126990654677310463464241704135301329311792433861632088397265438602346437161782159260140449469972902793741571068438434625903550330226341221496906798095068584793387578911920949404485267472607109496975553334171753888824052786449617790570394026601655266984524283328564232942217926111178733150752955504850943952172828964276982374337498789902994430895473920225010986691442593661180043503679918212178788104240003832534341513058435120322244269297818530302447073576261389436390017853254398408640113367773193094741522374492782361591711823761251735212606270473711332603622601802217813499103033940614714502053701689119381564226965598083853006731522651224876528145979152465403601621699571211645798733768775098591244059024175328231651265994710889877269590249016726731850066530226129041079326942419757525614046620550625907786391426029400065189378291938937951297572821003257071700001914270148509478168070548822013570979776438669368791379056570167163269987623481528917881884373719448703435711318781743244252190338824853972719227729738754614935757455237704896796415848202885768621896962216874126175714836811334427220051882232860961120632207454587556909232114323165318774498776135887589260186157510514996778303658420155964607026411850292098261878842426712722518340202317097125456206585115939238093025637583342114718271696965161743585261623703789785897335317372055570152536084760727592034383729725562821207999370643686827129195013858953924888237770363023349317455999719769292945543626712858967229581940779153998941766098990418075993846501926394943147589518060383187286226865612534849161973093986167270151398150435619476831603603008301489902348336225701179068525229794479405462049701104909601153319829157871603221383318389822261097563429586859200465503966649845287787013131602914053280878300970540173814315422833148147422718749388447110308787567002690922255393501426791363345571710772686051749951265682680938544563848060004893748773106673706385332297113597968150315219172779727440604802404686480031607994556885541607240933942010141593740487417787649963871439635083551974315047586414238644789058315221444138258041995881703858172417458583289268263437724377174627640357682631476428777937913391416376386510612514619984009385348400006465060055925034965696981688156180201612272969930231631680651888826090751818024915372982177189452127812818979021905165653096917081722727703423933727235570605015178655038675962136731487615601877977531931478952154064051476340685010464608454421368709442610457552651729874921925306093931969128996174105082724668376241232977372683587047361685960103026452017799837776446535435819231726390906789190408128657499807990505409016286400465602165289735034086448484758141146277941825912385446883718033783890116706197530365884925072735390284002478669606614685156076491467082266301923707459819256024587928691884098666778939282633149540438149621708768129380170545321936260885939872005674812366428121632223612060768662763964537697542005450689812846349882415150496232601150557304582489133402298312728148985235960965673977738877342686653617526319670206126189558629938352569937910026370077024070500532216525463889976550431623787672325290917682277143976146826133996404160861883542316780070980936406316396369829382492585192513159466197701561984490330599425660806577575241133309456836972584215330830464461903714578994573454102590980748654289413605953446263891338978539873427161050574771696194523739859875714961384787585730907756448476291222964681079900971647005695354933103533852190443771783926626455289635692138975208961870705799491934490871484834385764963552084706707919355555125504471754141029106523878576274679109484698580061529009111267028763916333171280638878978243132584174330243415637543172053588225468628635064873865407267300399887100645931412351097553214472569233708536630431039582084879108227582648719817010369822983453880136519936262772828311122471924128068009816348652112010715766135805776702368218590117364823264835859607116421894262935523589533964753475055027077582079760332439616637519275305056568364858215117723667139495240516180099197382355841559921776152853604904096870260359137627131219935062295224784217224751508737155409554587232590029507717911858505093924905844422222616685598098916066315581836873253034916970788468700638401608759055327979393278731912771295020074460530882454105715997211798862470536351584210352258682260978647613464569716916712128007801810523629228552098088676980317928872050090494254508163154973205866280053180015434498658346042529336025828804079782505396715000529428534781531552224934470013446374721632426452059671870614852000613792844879193889975210828527575247205164413837286640994644782558872168540904894904766954613039225017669273323500825241225508018816979149519474689179007866953259506336924710828162345156704300077182046672646419485255545331482807151495752872695772397183592849067827683743398107490255808138625562807372125905519018538543687529548481594559040693329727940890154850645323828129615851678523232037475921618367416960178352304435379196611529086524066791262503153556662985479598647755432510800739476443850258633787005498983864523079992694379899201029888283033125308236769564650841888723819944640902839761886840885426158519585578860727779392309601196903029152992844272583302063101727706733360182636907969457162120196422069583606716807719528170766172152060070349752855608670437210935255918140701701127850671461789673727687560509791152611220136021390094528106549896687359090964346712902403541750802817251373736439239144072460194914441796040886005437636939446905418013748090204480072523594619887474819153153868214511916669696768116914446150016845509429993483489308207369513764713344859238969346757056124866694215870812234413523877793386125754873364716036632710048650260484857212543179409800000091144660717382245072601873855686693952662443631437599978807545193964003819525218976469048622437033141555298280615054868842617344674648110671300077802366554887782072055603740667071062716983583525394333199356402995638433807549335980502740915176950456873596600342285751525127980219081672402029639497144259102867217034243434981051769598272091796639904498553899315818181549563323878742161470986869226241304579151376186412564090938080109599555407459928704187648962011540844501216614006808229570256183507943565268523467405263500190633493130813537237940411968033773153125056065855761000655582534544840113275729804899382311587616381169263353769615144153215185275774790627591737559024690315304285500875388348290922567042163538677080230216712532061368867354248790277384414769904558822541859791371917282538426773314054052162084317725868413334830277066217420980025905551263434694764737673390791446689313562566218792648087116291250828462410871928341477938420374705004001626796842565368992879876923948969158379682845846802450168448700372565101971822941068689172348585625435709932394349933063595629828204079379789325121615872647065997613726440418197211072314821765771495977953429625193651804923979872920315637708426841982224115705059439076397244000061856200441435913057734603057150802973428173145485884718690111282028130266998899846482824440233462361038046053653267362928659718079802574687512915436512154364485105669791828853473207532291197616192064723902284578135857113724910283278865889532140838596961934757962874799468369874633957874340227729707146391930399114019685664072191203179810932620809531479828018327640299445246069593514883535521588897663246492648945890949435573104948565058284275531205035083580018145769813971685727768974392027704504056078836773921414209051374130173789157597478954103732608875368726750865779693369034146833075394992463623008791845483945634311337780220648824085257756793922277540957609900543929050881311315663773390201221220754656593520118331516975478684543779552503016253342053688113204957848591144955868826468467589757530371994643877000134156003575530826605528199150324532785738872635202281679119088689464589496883269253221395312894219463124185276219696581014183976605756929230311415352014312540688510088905712015458953387125271124272721030743315518575251292832984325843458073896789453130134760028569738986525963986342564424079173070740850963058149365862503482017267489183887947992836096455908368728131231063629574594796168952149999249491690797045285135632873108138902851706675131457906016892890069873037845098791335162156959117744806681547992656027784731904501461590928537675085205064712534426960567801419861539738713585993723514472091236376208526366878054126570037752256142731563176109698779264394698900169058266895056151252449392548174934440292987761274349948354673280743167522374071007901233156507248455829093150182769715521016361118118030585640539998324676794623870851082883453674278201978847961636558711811074175597555391965388599671936219061150802141823321045612548689966494288094156093267346067960268227902433362833226521963810442964742349391280516342766391890442846381729677965843184455056989103571342070997412456906010940341928428079210283175607307592815970340513586956764592209119938434857196534719672261750445543265186759326049143896157439727371281502513501278441832278901365346672522117770154046855218437039578909570560059449400752605547257909598667863832040012415386340387386438866391169945030311658902438748687238615863303942230397831598470297824627628563379614514147281332476907934795339337645779374537057625727752931616702462830748930493270022531592811870869125170531431444166149053269954552386758145425678352829624588762440983732265138284361237744836563897491828652059647373328595000475091799992771851151352234135521908943830783073506461852274557901744179437922247189452881674472424828941095488301310171033971102575305100934493090984224307136520008830591883007222707661652843069804702023600964173347691694966341597321302060218725973589117659770869634752807624358968832104620125323978579885818740445310046109367668971184514927192444171377131781696003703417244421539145752057539157473280143790418623129360569417029517661079378598450852205468187479372604190222907551960536508052821901208535992859395048738174116623271308164450419044420090277732977391222307289725028882459862419807206801492050444081503106456444560298146493681131981423530741902732096786799612580490733700673148897215674575893406061685331670675103744664764445326613832672940313482875337836782689343730860796819079322063441084589651062080204805215466241518388506795961366867938042836181212968397018068178419768669068636781079311025817162085760606416490032650582811098588249577220072243064793698549794302721874547172759083757651917742495856483203379513903484356326445241405594780443840011488412972293222310736002014217704785377864332344915702277205882884315953604304330484053818882268590249643139702345898109215536332727432017094451464752876933097192340381695756981730086496132701939553705244267716257340208665637917804557589502522561353941472755024067490878599441062078649421413020307197407885691155000491020805795072272933877842186454845351257634806841354491116845579633533777188957738942872690890467850899823981562020095736525974162429228794285274343135914264622591220759589906876337782117732249498634144763416159144216730699646827471756134200302553765930214494997884476667760254092110366691465605565590658750230631023368894696821391414766001464992974023288572740618726508314355738196032789568034735083281360716265485247183542317456521840005523055931572266868084203860367344880613573800452102516391490374833767705290834452773790984665406940343855586451029091513855119600894176924394959352769603961015505109085051700453978771098562788020164271586056183539070082160144085278989387012978222388117637786994321862230675496096508936759628763943091410885709146726844025897970223120967810779124682754691136992514957029764544562749021493698835527862049473456106311084823833533959978677474467119066998813191772030522768280502902030068345551921787159217812540273597466837668856240756334398204535121244579401589982770787223395875602654305107735241497618320524050144616383234388339870121033096364980118533797290598171654688459975639266988190995094930781898677908208064005727885874576435843493433531735937626963223026214825633810765455036253532515921244625086628036502922598688977529737239194047054303363913291670830857968764506935643968103986784160889323529268401598200950347376014385073789649364378132675522376644660050641029056618953363187895381870954009585112941158920515513039698909293689540303014296398909815445440972101889426726635676124002142995199736939887800311296641808962726145523437627294941238813139123765783495760065222241362229893144880741052576545806909598883607996768810388205453375486224881586131353034187845759795562426037743694816867656675633258364736536991879245890497319118333989988333976713461550960264968175070516146184491082404802359151518167674118599857325063739397665774501481473461133185884969125905027435942315009012927323107406409648701080545292144941346072005835441512890240717560088086620206699302993653518019917346362069195469890621361117041254398282239741658231963733206895835559825155404292445688127890611792539104558941581179512737305622721020615181574046476023941700954412970203133076444892016547101899699960418731489467615117322020230172238031800759312296818823029101640728078121446886767515273109772123612736463179669249901539890861618745591875816398032236653773196251998311885265190800654846401280965395574306413001206482798279977280358915679287962554127215682846608345547451321885563369348180857081976411264856703896108318228429418454194870310625708890498084688549784112426028680077978412322774119351022269990730231907225687226593472176198611962066545225399716484935906778611446923155355463991541343687146231882498384520722468013571426915508393972402770318886546648719806069733551586311523527539247528604393856142318948516909931229786539949499887123337573085343953033937861497995158850543713388693586879929366334242887024041932404675559391572892742708590006733090115644304751774484082424045512607787328560235539766872200062927727591719960652844607494034781438850377622357787900026973934259256327485434897637271720081643949255884477018768082580513842062550505434807783189691912203359357655977302917757302346225145604189768684247447392368059641456691516570878707338513855554338058148874963129277606966791287242580076343875735797377478763915968202252295998019964141055654420900563717954087762690151963757426445124003782385865739198541623407540143412855174716620086612448264028826845782465453879782296369155387688594354876642709750818018594724990377465877312914855123269170926240942167097731524484774802885813644710924328832246960129378313167561461927905135956105926868986512159941315570183940822668969242472742551756511433192156705194640780058709190055644101084444970425650015268817253027226003525441788866367993514117746368659675740609006666964085710196698836674356505844736000958292848892284909721081414589826906709197481808650874397380658045738034544226819786784452885410748571615748344394208767956240436725898850671351107686713871519714788017969775130890096089780291526316079564792678358168533505882266687376203475671707167933010569976448370111206620070490372055632436442301698000230637921327995893858924566066282244590682221482244047689615847718382126311567562127217385406921041071347023467304954426346638546818764871391604904775738130383625017452345731710823146020508200256518704531416848388330809146060058603580608810941512918230023075768201232588023033404309537045483715539530579453996446997583925733987468268324010061091036046705840785048092123116829114861682928137784540442314181907894712656406881294086213964692344586587216208961134621440096527888271633132406220434488859148760018239172103287152409511783776773045065103285238902029346142233772741000799507062740268662827449535230425896991922318864092284601029534054758267613398015298764907648385526551904927731260287106396123431194399950843570901505855480263070034050247481400305035257503525968888653377645210849546946120396656734623903961386364616878053808414890329606109377185490185513116303701360513487518695463346039995123103419193297218552928053181490323950637913701461711845899298412731092118739369484789254050554170018987414142176201374591050407937451788001375621783577783878419547351404875839618382848290480549189838781526328682778595169205413306863188885751521079827269667025472682534115097397265138427519406181911009188321502649481348895469971939463076448919713651428314314575419924375835145130794489992911269144971388782363849032408457847725984067398302167368347160271828323262556404597566153874527945420306513568988616181428366803927522517725521731191450023586259882193222915369115896282876915233104826967186376305688608695809820697804150832508407779429277426727500645725647925838828359857367145515342037851227249388751600178189628706213200658122146235976828429420470640713229540113233294609702234038948808660033316891406603061725192677375989972870672824371331131090819716754411001535594171539232668001084407143863281991413109396875047614293109013754188295806029036663202154000104192634432986322606225548873336681627768198311957288351379675563572353173135436970046847432467903931001925462273083269357154082694298139745512930974588751085148484860183378834893532613493977497075679193277153205371100321426127453950939719437231377143696470769159022816059269178044779298169720399332778475974446644677966830593478188489202546883205283142628923585039230307434241007263138754299804421374828045540578665422007295743927291305756163440281141980684491017709788983536478909880660289070300198841936256580920207952020450313475547828611759681062973096616492025530774832817616373863773106615367912581954030809979874444199852307941320208658137745297451478029343952373538028789368607502772683750707763099317848637464334114649495268070536980976024457928386170584716280260608818067891900307579750081567509843423790405681184186514493791831669628586609743227383953561486050118096071147424311723975708805496187276566716173314256444638698526237035498115926367087523647182830309640825656724764974528482910763328761545348783436336045978271915112286258171184046383800515109327818510049618118702280478250941283363936555387423858844953820261287668062319820640803460078794454413427485432941808104102499128289253091838802447886921498226662873690391168732457299564496116178359187157646694880904963931050472347692594014228617095889043636789580181828825358807141105301367747289598184359919580945983582233074559285819963949398319878513944531113104164120459094596896129225686394667727987745801168075472731068376544969517650351903696075151299880026195277670301135742017728071717446551992181262066416000911364030439131298423022062917370678145415733491963534871289312303664527398397421808853429143507114695175658711275800686704215375049942215435202189802176327618771803893900005078568581704469243942333139479107704549942295050426553589706766604692159598462565974834644490700325437236099369285332236106603075986163496354781491624200424652154291577921663464113500994635829306858321709718294485849529292341297549131026964142308978233414550310458297918262291209644838099669434855862407170431009094830262319830467497444187623774861774755879369220524704755709330064682672468163400168312123890548815176491245197352573402486341131781572018585356473741764443857214049901786339546775923568104628569916312449594903426132386357685775387180773154952990899190050066957272058420012200980535865975202418465691405163946141086829018406486394121136618317656439510584312159406011169462909523456532966727497714264113358363706361273837234689454939312825595568095641142407380952358696633575830473874383045817377787264270335284946648940788726525488672738710300173553054974496647832380456631610338658616555662150805250544210298115680628386920644467303767849049354154437660344376807323959153155206433820837821134624674170268698231337106323914317412679086684630833675345585768825300961736600253929663894350751599218209251417542028798950069037808502757029843427928147058303115217826683809348198319501995884779604223701462492385173193630073606515394599405988843419516677122213069348247956673502869571429773690682522032318415116038828048122618436132899596575419475573305487060586173500413514892599195611169829359299977841576763830183645934144142335682532450305261029701356854240093908751022847788284190040680757674409881034397161090194258676760822511998355218866779324252976034221007867893507110749448903351632246513570218620495294247859042860636054192350907851028350726897763874525172091722155872528236265550134391240771029377585854615055826661939903703482212773103311392974685620319488940397393526176543627115623952888263626962917097491762545784171233192881579959375050801557516577148666014021808472619550898308830677939849121883806525836332824495453831934042795818121913201278503605036739221862398585105726851745033084806560610587202663451470175293288622762034983298000198644122699687268990768089287954813241076526567208761480611038027681734249391755097320200338378581674901645562801988478283979383361174910155556298103734410836406584981613702160288934032188196969675250796241810899980144397805567246701208975378845809506120726609333272568655266463916141250329177098176907647646238140818381078321479110785780623415061193643304776891602498642871565901312098306204586929431090154002151001205183738355285767902127273679996959074085867270893165359990790427054530778281725061510082385318603933371815060648591442021447033853673873023004815801731550268417742878145329146947921345804558242188389080547871385680559751929821157158713058662942617406889944299504401184538852851278298302511713131856080876083829163443235237132765440554715822409320966587568084725874800347184573046340693527465522407974896048402162914432274345835729977769190068174798044739501572066216859617268353152615635375777159401223839703405995645340749494142889073879650300925429569182659240744543921624335084890519276758877275733091737775353427113137919455384360812396885510793334140615939358506827117814308660349601556154340791649531861485049863593155028241706582479263354941825858303815472310626893208782064142591036529762696850348799693767331827228482697000584885505916816329187721258258150762175276349005117518511735737879748310637372612378588283220430175558833285104919740573477586837220260144671779539457879990953970592336582592632796068520245158150696607981594583696517698550800389787643451171920866348156749362538084313644321282643380817924408748692086840684428657917839610898907206163647123427156331336189166898984294847711276506676209635863907407066519443835039802276506662080891343879552547590380459283427599196581487278923952358511278855788743430032682045872048000110687229300773108571296816274145925736287570397964816147096251298755768518051611471295049802215201051776990323771448165802022302329473616624449443311477012404170948096138414305646084724452411572843915424127848040776899600899673672698980007862920662790662379602712776582798070835075581268559435723491343123477284255188452052444544707119674068643338698698337615443750078715297208248416473814587764849116584380395540132674264519978491156257716116549333044685693437134879432551340911397406592446812406068296597623258577736949014906279374602873616343591644553359985790732742443891280686537438422858532760869221544321242495854751065852389132708964923472751578033462798861701428650182410671681297714367628411945033756328656330601360751890934834977753556065326997517802281467669773784316085429225125252128172555100350311591675227745418059734766958713774528958202841829687245033351749895598694269455306847329134698740165260812894529252746645106924416897609923054834428940174413117298938056191464457355530578746475379594974418661944336525758753875625457912776464038281555426643006719211660184292797282717359187504263182105138999311464912121890770174745930047932906340034842588178766812478335047089578834747544787415971931862358021553922936771037431988612846995118886819924084900299065843547912821143633020861352848516458379452971442822599663859648102700210843664082414920291651091133482151631357775234454288784883198446558702518555990424078529983423214380736355784032745270619451592946449065743945604701654380402989056219119031784654677639878821493476768942355142199527360921819672993430105763777744646776207534787863318792655107873456092675188289954715512920028468105664732487552377573130550493163192385324519457512857158710711640602222506174111316391849839410801571232809264971796544956610221470054986318721054727167695907776699792165999317712297663017404382254752793958346119546085407747305974643840932977270518601640486175058172606754742087308756530029803517613679313268404649865203059739941219493728614515390870086014432469558123579300382966464375164175147923875628329443072492491442317147632634593575362018373615029046201669619489555158534136613575133679933078996470721279435719579317514626081793362870821326826819315930113880269110976744405459351183332553611484982617577613107659241762601954185584273620847218275161278308874262462918164270730365629751867629429708145439266607597655504380306189432914748917707333551743757304480960660758215282538258660587163955483645045012051887315781093388783081148057560070470435072315634727365977109254485371109568681785936080709075898307525975003496516281946955277262497338601801138340860287778586157872617131261219151175412625997528688768026046543264795715564114822491673058241501521925057236873207311509851182974173676793210705356416553763873775365093301498505645992798112586023641873116812889405986161188794656420988344101898773457116013127156665228863478163155456146487000173184803327818304909114191407180919752746483934052391357106541930765879842091026375625983091217646863387662594019903992141346906596076924718966731268859643952198672836561022786366641820128985205154225266119079038546123562553017785218231786832085373590461353068466452030551992146819726863513035625260075278457356544316503906948215845211143151154012042485550082069698034798717660153779672533950362069757693975614375706033853212427170636815672166357901748647998639417277187946521704284141994947814635338987609935774102267990996577755086377797935270518164332392106214571714393939678450999654060062095909291651960754205996572078435163267713612021795080151743250967801452232934810946588956045872729554679857150883952866332108559035442111385827080432346298620757158068037955947839043760183066701002839701761540858967509057784964395640912686069217850153270264725456938119765747993720941310027666046588171571615903005226636828427292789962009669060794698172839475604269060025264750031419640763665754859053302829673332554185555517730839543610180662897773797132424667583504093796243579992767291395792164100132778533097455136679553492697706487689557499526825521290421560372631908442919034893512332541588190320653048925582439431613534553909021286493396834249174005645799374609606075591727580584423685552545099689972169686844583633017515719043241159338469163920824126241335639595474879912626255332060242132841547446509299465229914723015443538695684232812645997648620953746450767082958626816073394717554667819592922525799117512365221593751134183099750147216652821383853915704454722545821680234901753818962278912243002650590244764664280416002646977315276021297493075529398697046491182995055796002630126099917712257514166506318636128166746768370430783583657645100264278316045487838226108859623084935066679858798648966550517936612827529025686567422427596117416836439481016845634948679982768298733574539957657554011393389620664899562061052402812716885399278533404597911213421185949008310466778652425352336770625948898283096559221598258588732122909653319333478565581224964768536871140707978674153619218263587557123085640130758900439477461597702207965754823107355243221562609374084881631478039603866614845333957995034011766283748385050981325860199784551310493734919838159817212112169662097127897639666602199057379022059051610438459115609648503371946057959880212168577966099537650473580420491771798518209966279013424246555502876762321522538404612558471186394682986220645570187779135402747814993181795869125124961244535726306284262459269287875037239542823882344384688552946851258552966177800323223020785968399206289683064447195104303911393207387439817968463079123264311825920769467185557905033427616171623243693849538494865978486497744906582820786322978036100007477524922062832877144666819977654039923672897591512848504577437702689715556000483362733866306685467933372450979999811019415840816197567166526977754396681346296386671737464695088021491410971885047243703459058373738380781152064641113155109283439484238876749994011811191673886653424562153053395010231252378428362252832399354854380378962587350052390003427975004813165213706958800595340486058702465386009487393925908454882956413564384384817133506315248508618079210667268476393357337266418092363610538700488172365274347777117540922114312627507325115214212712570709407984967623646946628474134312191573124240317204400898217598897123429358208081826241988012455122592162876633950645979351274854232440851257992828906023340531178248063254935964629102151753386437737113775508189599059506871775344410970670578766556756705617105912302009754551234475120869854824138274772277516599991531818875510280824386178377644784134188865615903483008183169537055343458121749142647092312183779571035570567949705736730495597803303153825236392056331903050842944875995204178135438463731588619653501058753756992357640169867503737057668476029959229668248110163634640825823895759865551679247113047482314678046575205942419029154050780939120105145371765089786395068343666121848656678444427826460273388874014552584342187208519149371045361030348930504386647454442710568377183072363002004826984548439917649418689604209310672342944021658796429364858667626216046428301958670465781900668938497482409346718756112630784505954725217320163205593627419335648331668113801860755376990553879955901249750439736858969459820764562705002336941778616603001570905131365611040890839372324924899224975186522711735420879808002321237650575602435847629695804792797220107782596275778088574721862674130748368757195159202882779875474405566740558089812963859398398937495076294134955944350032885979952549956321929988956166203612290204740521855476781846344310380997719865205044631786358019520435208053119243552969949420781378874140495755365686726060035346594780990528872736763560151950659115721175756455219892793154885543569476175425102557489248545266049044378009172643190650764398720527148991663272385093452682508311219083757351280174707747582571052485621086907228488619869080310954671379777496206471044798223889624889967186711862444069542123354888345012942778711971874903488858000594127831980646659387432111028558337043013778049980611337625546511702951985127701968218649449278493504993970933380172828565915271969003675308030791544548077989948845991558935603131436475915233399857366634480315029672586914945650632239102998116708746433087666815061462622726307113700011602634310786628638225169461546097378511508332042621417768152844835933136011325892678234231500393992843635962170693761582737473980267962089324657174124851299833522934706347538224442432624289770934089923335250943793005775719905593824707074395112037421586217383392362065414562037661037126146916348001615719955742663945315718699671626559756762773806690230507379160108190137798266862156431806163286865269414324147553819718706929035644691438879363023699743063971955189529984551476181715327651595771474641133685094241542255770327524949511003436001737001692534680347033335344613854868546059237853688081297473371307210246568146715652941403022080381010988794945461162022557909576911456765611332498986840726577554415536458113566957012605377841424598665993815822061031847924043577250417992095112727892889885723524341087527496726117621481850968887358166314975514974415053767173595955423088367840835348086163302694438176861924317152410186643855903321285673612620425904721109608147533066088694979294202519248336657846438668090265029729683034044219004797126825707352269351857593635188939692362601819921098740543600215495016181682040207315133671625203433184009965434312335157520274925111024565051177238008474183562955827818799160950281742500886098413648104582793887543712777500361737809354299132647217753659572008002573815599696611132308865935792269529577076012357567974202068237164358991335109146585622491730585345660722814096423891156677301781171197702406720797682670981806090248904947485080369756126659873898142530392210060988063623816824937323310920348475888173009750438439422738094058978303746134041849493808861527152417100844624939923014895063476472713828490729580825574868917485630318986693145362343980447426573412377515090591364603958467983247055401017572108431028956551660640145611120239291905633145077518130839858544202180557072053083500759806151134978280765859204638327824667798406205986063269101955456067627821929157297734376800380611686846126607273589019285152930560354919602535198101980144401862011359036476492575523773004372432541496057198862837043748503731235477146277594479581738492318441429964600555278428315723490304293248994782625106580596951287211988573777122248748078932596644765020811279183887980977287825031912000659393872469272402467508008208103115674830109545040496912001695380897330582982312131506379015061141687888544385338208567292678568098701684598172975838983631880147462742179721387845962698020623718530369806481622938617295738706548337256185228008497952164807131051085742020101832491338971808131994835581985241421766514700954868630628004910410456349552294208263618430118505482368110943697940247804569227407238175253883489627451441812314040400822970909130853083224011670119628840318660658644972266343561359445833173498264206414651161217122699104851960400226548560869105505110384680577122608161313784522823866137232208602605649286975846506274859173626731605040490037296637028796527347764890128701149427210926811737216885835050624430755882731796727839222203830318253290366059975412215644616586815404737568990122686836517981500153565536880046886707502670519364158124912983683679466065058233478193175534428758507597047625559781455396079933916408890482143887097691349216324552553060913239987039235131536398280381771583804788311708831867627942574259763648855748636603117042769828345335388725988667324581590963254422105203040855061268285054398190464081652052693954443247310394118052939578656814983099468460503670530624594358801449190690792362425586562309923033183995006859707034479497316991340547978285105632804568747164797538672306862073940108138254954838737770558281572922875415210982650773476818674254340709405389650840582334474106179284374004291835378557511608564221000011289964713203257445476576908796283793065988618847309882861867358384838599513281994415122254442169415928811214045640375383994148713065053516323802899992223971751995436103531115021764174525082283410875078799085228830000762955924005584287494867054660294166662204442160156509713014081702827416696337131357422259046695230788041324888196671930050708109385408510916308964014860923709089677017892734707592539638947467736737269032412207209217169546185893692867886453690600689993624887184684199984264945524782491636618599572195974069301217367260128011292379448599821785848416356888498203521781506685908080860578295910784069346748300732886082629794265055600150496230402648910354722869098482543575329639399848560176476408350681015823438624541103697794299742998939291608170098077276371388377265215248980614880708295796647996369059803217893916827107755973084614640057766710167802533555350068523142537106989676042337442375779415662213833098692469438755478242240144811263310255298871418917853650359424217368080747224558368489597817381832740211317586839205661263220772770980336277321340965858288196504904896216948310953259312929980272687061713199810621199268747458714363830380868598054063857736020060214783669566866491890382461183402314748329767635108209131434976324524317166978314444367289898132830801546419502079396321378129458857333628158966584371359595170933392288892460537913191181958833138305809712291554238147215594227902442999335152905970538327643819948391843054303856915882940066588629605924800926874489653984307193767547985195186349811729812157295001506270448263279449066980129060717187529123431200573834646418563809468682933591405695156923134790563927318140992116412226444768654789818194116199306667522834075133456449325759806080772190841673531858178996262848027524270994964247908932170260610620232472403618370390373798637347274293189785964190978736956663218858877442472640077513388008613987312862830283519657656177655518340223821537102130042362002156187497992242510960133447977597883537471017027647833256627672919687956127347942539101930510241161692173204336939855903998404866100981522650143160907383224969064537512223160959649713997743413243857808310395404994356322499431430807766521719163963912176417480617670500186898997814827604926036199403193294270827024400343614669251039624402987683867981595919598638739904603848887874753227977127728096652655560986289029260316281267568076796369582786082799472383028735930193360339765341508741794000704670074630134312230817225589484574165030445943980699719109708133913659287920327552077401228853048476837644960073497064760232804906985862209732779045014184531225099525963183980386534259019549886948806498361187338823024964879009904223915291513775198574728886719588080647330675201092812567921543133572803545404002545149379214130184520306950735391308398795630634391653849059584999227330185729886428394516357877426249952563931349444595629137096609291852371138763709816574207701102525207892447325890196137001767377904508576643556701860048938690870218895190505349283455713997446700556436775294782856511279727817807937732981607855475081073392375812736167233625090734715874168460703252703620893937370251750820047443081788342174477310767068756687476974569414783781461333458689043500174689216504333392849348784075600442511065867520378606293411232777195649458659197011656579607122139609756020876096206664271206010425833516065357940301310972225857104170548767572066978637332582028786094130310009006637899767850280270994993388658607681583943551916049363740480949461081021038377280459162246288555153306244874327175436782164905981980096234350115646257062979203766972278593813488620206584418701263890411431379113822689873195546394014458639029481433714355711290107185789586509323635873690881163475361871029296850092916040136292174531796456231064255649772908396570714183110652712070382231212972146790692692227000014081661579440517065241151170229319053358560436365165740447664686304733490132571095884653635728592966192345017358793644395754497558278889379612055179922229323860262510001317357607568898868108114395446737600145286686807414380646205798701681409504654063704071393119220714021753713249813134789616619250577353954959901653782562606624469745495108661203050687422984541028667286963138089437414021576341159504656793533916243412057942488395556807707990630337776940640602686836397676263660941862447146282446836716145296583603760843373175781342477761236328161436583720683144140077294776022524296196509755756261133093802708784470718533537119758047985890020575488669601356846042137754251002938295538385522303206882455513423296098114020801320231979452997470149596065568261837440125253383693920264295077300975867885071974405656716859044795748659504820482863666388008443727880877608067307121900892463538182403666250204046216980280063724034182334996139812224841907451670356642134168852505531913430326339932289275035631252198537923265015859545824992767028419870041915467065840174668294862241468760191097249759885326206727528233901604278298551987737301761349182695381037686965879520094996524418933417780722135973614450051276600993068429622575655741605068295898657346833402580307331844358287689429107492266907051012455475108352468668608945104460901985581374621055987193662032881677032623287956811807716828596322628251062572881668776133071495053314595318623522762901919801665802564969963138327987877977007941077053516297550246326646935736175795208629779147827916410162131113554559077165768093520877000168515325125798591280615431989069661831512206730959857170261028763557181580810919240705680375476938423294575780222334800354291812534946371633589164888304216807855835484669466491531337402244003364166529456976163252006544424062015858462719977720815777780220455294350088996562808976299359943279744360402533456897691545013608177250964599057536016406842733697815775019900262950039599845467226776920305557699685350751678124150129416238973351990246953317582834610190132117751046258936284493010138463494726190656875159509672521175551165243342576748838810781275833388059465482447548086421679681606864166324833134940386280130738051183950349823896710852416756340042862526279151260778659355147267546429936750436307557071175216773319737241899608211464809699299631420318887163849975875581664741958627947529194499860338716836278418552127022915685573534969876126007969173618135051372511995181298216783069966478635113761145240857192525981414944950487716581891541055107321141480943010551063400701913506612880381616900674743078222319105727777999282618424475756444137947561981909355354290927166947026772539021423992937842330550228849028495286013326214917070351364476079781486846163080320337294938640518828015563346555884100718859213492037088866609148355761354636158453703446690391701709492356563325550460536469361766152080600249756308166042927988228539273320207257224816711534667213121600375203853845316901049183057496636703313857893525050928563339318519922419955572621486758452696997920171683191263204107439512250327878724089531563051431922919563873852623622837251104351756465254137399331835240350272001935043408308189913730511934023630079439122644390280844413729872691430355723185553151863027869345591009570184396722325528550907901610547348710190747370273261051334977516775701113281572122607886722026236227111499097643998325526640093815703814104063108850727891150112430711990180290023025492021646256183553157845525746021547292856125003922524275303124568468103914231895015078182008947700753092287288703021555642743070960132726890233587748068519528566444408063109826478837013263518579303717720706315422015751766291341388215364616846563657727017825739241168716885133851972732286235421547033415846340063540435217952873778247101744846232065929921921631383364840742805618573964945759353918472000575536530152070728238482654460734214152551075186866421442069572116549966364947250894165120026722533803236410900661579437701432596907652919678133719037149699329516805410945717293790956368747031984574028412359643116960143007964541594002489709624686141110806827001176127124604422663623719897450220477548477693567183188008295142085790783710117808736258574261377227031514814729578081594152325145875735148756250458577180558351031645849100976783057727672910466024301000124100730841887209922376363754059961454397606439150216338683451650411029736719021306463597291810153822287307068090973975993794267206954981681755659034126766691779048878637950133416098748537138716164147252406584946666777761940764477571144345822889993871057080530578044888316109439026302505341681564148958034215554210613471307178686151453456824619918026371712015414344427439131333031450827591352661314540174861988237297058381401781012704781176797624540889115330244291178019485460191816325962140409863418213259613907482300433254300580662234740715325047033324513216194374363996154183591035128709718034633747493253953495819664203555851758047653729308076835690442978587401340652674444574958732961256909458254509170151198919762444994933857348262651525290496800914794013554950732247539025631534051735615480030190857808662614161522777768975239262323274589134072846950891736178781290588733737000327052643572650889778910137492661874973297659193194873721664319256260715898989523186809060899678608547221088065379618804731465327471371212402727549874578332226100259232659105080618746015867954309665905046029501112576702548602980719623389730002566699313310990323936096554992373866947826020090726375432946701516157110120489350441966438259097686315419086239865819701967876046950672631396227629182260792803310885497444279118875005288456718019878108478428736002066420901347506736916607263452062603875209609338464204861264474342441203774912764867211216657260449126925437170324669633340286360896988749327787232828988736913150555484433366726289827173643413194302364257013725823224989498325988357977489638217507344335286808230718522188701672811718030778626698813536952125875228070826258948656291078178647608417267542652251818322626517945494082236705087586016530487139555099437524033097955803957626550917888423568217955332678037565354754007886119685192856396732626796206316984385110565276251169741395635625226499158217336571653521825714925653475986639563236703717632388022449501446521370599748676612235670461271049603940373596121302089149402683721708965706648931274101312638214093197359836110794577219631060957827986255349808475912269064410777042375664421928719574950854434927778338272346356130157945232346836151638245753809965766807815704425205013682852306935468420625294130716959564084439188217075384099425400505354093487543076160966237567182779433517436104029416417406019760246583291096960057640668995451769377761113396580726156270809167109348804559252301982074198882235921914596891736592795798067934049326664564026055215108558966713779665404895897704049569324971703370339063686802253291016563390452304014569809912687503509487253989695354522194483596155007540123936832843867381856337270397024815833145060013553535113617859906979651289885254982057792533865245070217185150705277229911112836510627340844418413185760352482197437904681386149610316760880599301466902767209043473306955563661383301105474157226904074359767386213897111173660100597497081332402288247580428257388124343970652738403545115308905969923555488803686750943443732424261467666739152592920976423117223412959423398924568979566915364361406276729453777483737057729303259219938291841328434269872334420516222168957088648076145439033164534299819779178060764651179547759905728248746722843944298213336748728560184714746581858164928589109064670671977534133446662766144817306302811177373865408236979682399392198617133379769165900790723398802957851256806921916602071257486232856450348363183313101910362226183249206766837824765564477080086441614110119691786558266500378154105395454586455790127265623658213875692132063361999322550006472131983191912914845185535484496636703214120199109780426327693876883375924658405393355841104145989704424266009567455019073003557032454247294369547159666099981591856370804838979696218927662540753326900480825411714346591292052897560198451747668083888746891244254872428913967099058572833657580639193432742405971112075462580669894598708500371842298407158178030885148170602806437182240706323860683215322168694027141951164452755863309103449914562426426339973501714010139876740175065793497929589615612013588148285288406208891124772071301002016944574398074126746364902820744216288988665455357490890360171252655767006443983267743458399248123356702989902698032393216998160724232936185309545969552324916537389610603159428850024989163631285264629569839429512844548339734046266733436764316046370013684979226351986928890622186737301707052482306613576742585648717719268049272513839821977464900761503721615992055514535167912138302581169223796613928547306897782716217454742789914739682006499437967858564388915360089139131480351250356651281625235236946791619662325118570264406688023779410822640344090536593113018024125164908637666827152734834970338097735592100703491197246158900654739546185992170485752848841804450070803997250297894037410223073431216880998500764771445239888014967767296537942244590218177187806487908021424652164880486913054613367660480864522840912125511902182543849703467604083299834718102423132654659846945863992663039087555524899813592976373509339506023062160776390869998579215579497017427280666498337191957106495853457550483780672708056684714574215924616116332345369896396894743962343230611715618775139214020414491296521634876095552763571496607943850462054022090764568180764837041861508044267331821135466794637741709644087238888081682050175047957948091210203872392022400791579619251056676320749035057268772837916940098020453419547696557376813427976601250276262875808587961434211142846259339510043641093418304748050867600057713240060735075119411211632891938514860661424824281339097606189814219346467523020128979872210330443229451246853833161497237662863735105191953111611271722031222311917455762794189275871371358361146025469483285782531674059598551579266705559367204786240470453366882339130653286107088367113394323750278033375561273875307662670352466089772930648730718764720312950702790205306931636424927466876160843914403198021653869178905725376539098971780433733517932306175003319888510470988050522785965473328870162178868785855901619764595447627929250177288429229608548129129579457968190492201511509901784506878614670816278651415526406534223199342508912081367092231747657892858965721101897028478230432895597595095918740449742293177971939466272377895716044456868957690850879402824971841633409058988980479019640460354089204111035140285332344218733626128331069486922105834298247417540436525818997952861926440327854293751025155475384978817396586210690050792450441256597998335669938242417907432833574601552303185523861506058217939706753240289529547477401206535818656540786084490852531773034465704208567921944370774574012671936622614493747550733644304781772098244891340221367469217599235528883610271984116723512179869717275831894818659544224853624351528346275465971446269441783584367592298202627685769731974338780523787445699650829429896824738829911546365901906785776755037159526758230462035790581155436925824989884622218628917551482967925645166833485256718817786894194714503205286965555709071098493527365146390364608276430788893324934544277734764849634630093081546696047211209626628619081324719105962573997321978983929876987867221810095057577357542337760602627185265890816879840614575286679237270539746109563162895776708296963225155380183158192060848978021505070231775725774332630183611732730574797334446802041484261175047273395941535803431230659421748390581902281026799758263682600612103746649594672380641720765921172639931778631731310514550371168478997794830984709166919269465070455545692929627536828831941924387281657408578171968102136348085918115143418717856128095241156040126607126275190843216656012684462394550940796808504954255650193889439231122996205462994561830722744671680130499981879292835381540909793751347477361763781251028672795715505401352605017989051604074829398669713435818860338476934371899215998709585913481264383896972325386251386658940404122509976345534503095663468912949232352111309147610140930161733750806375453288704013378526283536303298823945313035447294126478330820768921389015851475834691164429241939170590028559809422130474297949464778378251631146233385339390424248005877620669173013743707086439844253224969331340485337986416927239528942476337636423568148312679974876921186237483270830071315446616895524250467809801938964522955857574435663276528184489281606575466462787024597540082148168266516153904906631478760065405499946244813629383315674500959173235504125973914994738684659203747353777247336373432204454154400160800255182368828318794860474855948342936952018658599289164986497485151468349170599944204385959658982769737094929325383212433355320936770110344182417269034386950960014665566088704638184145477984454388528966835202291049123299829475694181174116809988616898243772290211600905542326304964371477589388269502581248910082582500599695580456677333338041188150373803005843859741309277523338594066710878144717680920340121219581695140602781510116626090771723212255803133876206118020044575021484816782292844352562047921525135060026321351687800179295400413144171098320114668857845091847147394368729499861261272586472864070355293192169282648040615899204200382781430639308984049024444398571202370286115465646777928315423144234383502389310641127617057996142097607866966692047997272749073556276932404277953036590103855087567066706227283821508620327363872393187740551514475229097296025647208029135295875790534885151270358991549888494088362753138477074459645154908853442858883195290003140014695697831458164559322166934007407527991598798089876987499066912909395745059384126138361778783467665433997087477626529226073730515107577606577060277318304798798570488582598436287584333368453273512027285499308084941723768237971334411962404814168711537555054636308135902339747455586995179366629696744795606315326111681509096328965760429244656343694944544944497572726202891548381924057638074670790850209845780953951917151374042261875309503231125918104863529752698303302045716629346603724926442783436603429856032264576117146716043996060385491422591035001100466907448602818084494995025985067395378540672854972646186566654962589390325775798779161386971043790193245008030104342339744599447753146339413357788391089483119828951928180742057714121892722489840254387125758358089082857440285099401530462477773551661478751479674733316429039619261232581594536049634293328469399668945304960799266135904132597808694060541369675861684677682234301353346847888754327018180014403891844333941342297425937107892121764452190823778973291416262328795558882086639771922956045440975755601192982917693878058896925857274228012300524928873956064138562336679384783836832273243272707955767977499463469502159356185751488540443278420330259473304596743020402982698719269957122400497776659686961875733133497461780628721943208208197903974357389018085795416691671571174656748785191006342378786105223522158188019551865280084832975820115439109920928517052533391042290384698596506176733608761473050964761248458665315784871561135544305370143401770292784535777850495407854637168868116394396090919686326475393183437070280726015229987869989438737073765195360786957819400434753029137490298990721754354819268162254834115021809446415449553821285463701628045985380471922163454612188035598162735720665588588899275869265426586566400010846644854000671580098685492420973861305373468341745198882566579663200035234840786092311978539517059158458205664746394920722306493790205417224504289270509474110885520143360343591825038193905409677393067366352847205239355713144382000988454598529248301415980655671510079311976590874092723486532002731057978343604710496725662046795946281328228121575223765418072125796650953439654922349467541521968037170843297793583329807683668056816447405064762818692031945872234347080609671669101152950335434206527748949093610019509919275450078966809884955477160398218378257256770478392324185175281607557865199972384022578565763248961429248752764269704491674640362234826212284274043170707708257918159367547555214757841663640177319035209911905191275152719640308180704005336073005930573219008562083043053911057628676129806817482397614605918411642207001602488863899838025932910817945897454319237889871815510435575889425243793876506209070246682621811091124990991343408853366025516079530193414788081759477541856388532937781591956467283792004686943795999361774460193350567869331687704691655885231180352277350388627891955736772498402124168843651028872618245543884324768085302601810865295530325325404250918853733971964036559725021751738181500280648030990583248922462344653775446991149392667902655725543299111370375398824284749040771175508823108148568749950478290829409370671087901388315464061422127375795995475593312652428479387035553341759264539908331532708939460028712100785932511190635754452564165337518388074787100601629878056311029507248717065188188272760715623508142701942577471330098509463876200002202463901039985228776237827809194148381332525346178679274261968713298200648303420163768400089633205009165430940118102279087667928098019852044440906058219564117323247621201332963204541243650600711999587566689299696442201102775989976141108921249427264440564859518239863418297459161151762883576072449683869495771021179927531917322501076006123496993637218629819975455406884115850891409134308572922164198563199426389453284061430965363515063101741708937380917166318781717955007410044470944637326309420398673672029115502483334480779132740181401061490966839962915488312549417547188244871039628551536404524766592605086384561297930094802361735736792029311240363827781662665550212668735362437752082313682910605345464335783194028882527602292988077108131837751217169143948793923986282001772999724323720325906857350377593549510533674575463087657273153288525949729316389142204952650828250287894513016659356096205262674332314286326208720813080065872511425269856727707741545906509470322347775908300350628610614237316409571007874462000168189525671835819618552427827934330786672945943502793062885811002636839777818785863228505153324348654675066375543392467685067047011251486748423496672181111180713428816451623398911688477367212291307957590305255485874675060050357833356423528912148889808597953814855469030604000129143320045775014060370376495726101449582821953146678493895065369182543079105159096842475680797749146779042075849039310723769368247714388622194854070595283008009103625327718279715174869138419719551690955569778255931939116859879137192942774475239886358441471928350739033795915996478586079749141838944082114834178945308131805127070692482156956518114211831576825360444283336969203537601521568320567344889434328924379171094918638489687519922545963915291449352205718214640887443296556431927198318507861851534074206194135161852909078127229008025939144588179623548586851506805641092065229583162952348575028049164146459171544321818556005196400665252958203039967120237908613624391280070596538162029549149606352608441698412318347740402564081310347272722819356339858251562241217678801926160686420292818810133403611841246209679736062389683057262422341143711541651039582618208825921957246707388937063699531435537023624187605231159610447945371836267958774180470518180447925766898603580167008073997076991463806519378853330750845131189790870020662084646067943781412733808499050319724768611686662173339598581037305631741517619898001813807128825351816786719392924818335233792914055534991934364274098678282112295789235288306016105221544302327231736262260671255987740029284705017154399624371510227766913904207668333156423468994576728418113748229158024439719321979177615476474509261314996515539549824893272253031358333182347645313669275446511111069100189573209235748714795939883486722031646524306936939845724915164722317509285540206924761626801864240675584605892328763686863188798904645276052273978028931003173402997160125089842517934826082419545727655437103813959426733561650367068502427989879514364229463469309436929544861874273885099255103964279556418065556158961958815645686358723362582010345627993879852189408213422336164979517042403397550614119426159317201826456939830350287979864702009221760719339451461553456522257795476896388348497368784094042658442515290597882354813922513135885049970114884677875647839406307132438369474250557542940545491250116965963667469204530724427917948912971235033020160251006231388400728488473617535492427163199278835346783861765411724262370135171321603488060713588178160497840401821952559134217441139159788914521094412967615033551546676521585764977389350821156161578734609432488598948951304167455894060178553746699670961608622030066121257773836270270907961389850690369444177478624037703877915109259161620250689052362396289732250113599635508542785241449482168220254570248561228091824597622711732210987867305386155438366609776197534978195492695202437077758006775007279923337219500705113255894472445803726779734190259913813440138804836003622244753932701742530082575460069636306777985668799773807890208093808412592886247224519452964523206789116236201375538715203873891214164976871364654189643870698241639307740616598427838328505366524765842861534071310495695567575940197777236393388832054828653251835217989184050866982037006837754958762752612083993048038925856925627016806961386357707900772218694654205031093470985027703030061241173483174813280185128237127988444450918429762902674839978293553801899547388622615546779224326283058338022935390677811224566675101758321735620547018890867573344874765001308211910823939593015057962418586751451251575973522492655023746954122776701492434714337990062573408224199169487553397389962575920530083735931157296401018202272036678828264140594028350576927028714426338269393549822997307145719805451402565973061157870513960972581816791345222764304695321012235352648079627358414652583202320792064954170427843569108359294528086793405368273233415707983781980676649674622482725942486968693391354541750116255805002034214486925161870039518266187429842206470874840496600517577332123648205018541207189074502881890661752636046335101692111716965141432355578574785913490268065517634212813660289143968933422665671407407170509899188445525270574895326437008882232316908987057046591777085542745218219337913514489069187608842543904505799217765218854344716262633539447365409902010260030060017691832713446618658468233019921180774315532592441073128271702928556117287441717308529958944988347283512626508803275347108060629065797394148786361261211789254443694272159530049168985026272964849975850137989594466195821454008643934284216274049979558279016552781351741909456640565242353752908422793503562471841558282863264877856063233801869137299311943666112715910321299193661475899328839953557384923990274802324017673738841876826640759501309175163155447318451824264850731616394763226492497195263587066051086354629340411812320234141756821091735994130803863592826974555967399593361949283601824682804480739045495192153583392834329722474628113463772128751875807991489068860729851429788085230019649435500064709940158883001733533381914034981336893391879002388286832021047849590637420303625644799097778513861443976233803098288699604207557123010649003402723315375104188729305434774292279863276372729274237661784137440032383230811684654590433593169849830479928744318732120446650690551614342984870795734469168685213672724505060945214739184242382191297698878353397495537194841476858557653253215874364020906104440522181720457402937065746734371138546870084273100116193147669946174845673260330267918438237095457287243541275992359851563604243734073859409773495527343772097095198978157691791336970391281191304535311945511426221358833304703614940470303231244879485693077194157811913129904519470176428214881024774070573981685851169346118348281302855514222347860268814965893335760696835273569121172185382198865768629898973924896234132651252442137673934701620539218095665091180634329545085228209406611195932109580367762054118084315017507478763694736025130187950383607057059524337294032080140975592416224166239373660416296595459850578565733365810722722886219502281292008315753793713814003096177323679119671968370787665468642123192229752481695899404807937424464889659255525252931973838591164342334211273249261445703210824330234145646174866170014417544411531202173939661130663137136539466250477405688626888878808922197670280381298950942231408589828968138883164980187053624182830446725395505608108112196978326123516269842678201812915310531842763272885433249885440121318599459044648355135505764005972992642044950670785693768635700045601079350328568204346388464149199648007208002203690436835921824140905169317488277595202678455211430878265136791125079986077795522516318356926395629200774149627108193535156243526333693416830997681829529656558365842097873563231717462773494379731841988739830647734674660298534496154165614401458867388928337844711827168468989119139740616541796539323461929336515905497878471607651241121799942329534723782384731912717115392344978796424304185741966675069935439794733422365402003469567687297735027867838616238997526273470269380948748348678618661355794698131937310123384865084860420837281181211199575405072225724496369706265195315093013284779560906779589658782451900693194825396396074367843220224744516114399675079570110935199441814794168827190940244678759344889036199291562059658658895268087929935097764404174788327920919637714508964368850234853102484491694974024366286758626477564924620657026995396081120242628939266822903655086322652379568557616935855889171851549817542189312333809969986936242948963231684524295211899324538854970664300888669904492217505204462558257192272815071112681370620651072746061932662319868007878181458343272696326930087474979490713960133392721491571001199424672562477061554928486222496367688197200298706975184008790946361647795840392616814066697190433324789992995990086786384542093362924770582832816475480970134576359972613816709456454619592916453801455170247949150269270463281100508674150655309092344059883579670836977365837382349130413855802103700072382079183585412731849178762467856657400535761907403242914321793258485748825153449066971409594925163152332319697326267267572260254216333702375632460373527899010419904595470302224434119190508600641996830253697156719278481000757364193448420739926015220582266801339233512027768618190729900039031789932463854424806996674278494456834386700453530699886268021302186247061442883870314991613171871406887081904517015751319985556700376468705823761781552365433235037847693456173923973986690072610146326967176213459334612219607854948763725210696183916133600127905346689499263147142857559261043769250762244681490504725753941477031431621383685521394725564532204079802241840255134269286425152608238011215265767841103168305950172756224219227617559859583828796161171915379297390510733650979529748924000842826698094106846212130274537279954215062495155777821672566613671249261170877729371226199518866884218997874214710777142756006802766302174235065502553154760809406405088625299974247398835541417323518033589559043853045827181292507652006901477027155749202715795414142498817106775376526298761217324936620702233245802599634980221304946701235580290948754674579631935168480488610145323768408472626194989717679686183410467049988271638359102979908632362240113952682834602214181946372842236870174201123542629674171548650017739508155052799332019121500037394029826506307936227106192287457268617323737656459903595317597518519253581155551554242566566436581278135340740052722906291379737583707190309072902700350431705745057245205345071069441524004285611026963115531535418485436449372620377807470732159487272766300682804454982487617056969046273114718047238743795981996658349299245889278588640176732047560104209163058573268577389940248715930568162911968992801255539743625392769001864433017738341041461751492837213413987969777702862012277310469089000963443204049745246832517316093132207684012244077850763885398109468616658005036079865052565138966580196205208448823682394909859292212860013682567734337315050573669591247868859000723240220947944451352965679824038253711930437976858624434460582641454733344334313959382859668607813156334660175865404070424712002343380011049054493497235360034447135870054939137812470954025580564700259890006159228269096289692749408465007003338640160462719687679762947315224945802609987213964801557531212045449987891031722223785541236712483521961044148031483620844576241507495140413433238270333112440430152241920994368861774826902268551541152971536379302445476853783928715266790051562019546811341917278201987333253341551483953378975902357148559129386104051891585219809258079208310725349822743952917980153709510955342533166011520599373190534653966352597690598711999234334997196549744917215209433673814627785174620493248873463084764758656391334245876865104384091336815019230828474126779177064152539242423242606504733488068074982943925818680490724406092886450725380875405952141990276544992405780545972420072936134391376401290328953970604678191679571992588947232709480551105164892773650694255816130258793207897971625323772149559668846889087767783637245719063082281251168619819626962729388875740789652290398262338612218738594898506048005440513927359836852083297227759496619185964837573435408871540634118792244330873596249058820618766740376532937071501926584957920361325763688317584834635420178918406498372992526016366319980495213544856293532402971071717341293724732277800417673764949317633476063803812228299593972493242598935798466461915633276360884039396735008728377241564083686310363698999045350694663088408821872961309057185381628699758936859161468827863188461943062050239840970251853129271223897197114355381499841942671558029642639185725381804066713706648053381439283952962353097704600234438644468185657592522419760036440891132570541936124749780598697725247398128088261246152688972123143023623413921808427052870028696070866170554297969481821999751486659671821351592313276713359347394220289268420125460125100110694247916822196859450803767102885455162456942460355243974043877980631364028320907901066250761336631898616263448171271640683407022802852953519208759358827117268222610971785136578812308008217949681316439772109961217431837723912208713811056678712516668788690852788694253024780048125979923286314121612939930231784891087774527687617227825369442764411234110727622138101045327786550628481132994407931943763611032657373349860852047889719422987565685396598953530025334691681714643834253492559445497753195421221595631254575133214029673854745738514081566169264533741639986147468954735888943462936444542220360271276059837619281188376458261647028240256342468162925320329573590546541942231280812558959559619449129852721883550997331685968773424618245780398227642522129186574232744719319325999445901062680282170655065353780279706922477212179871734260363625919595852383480839617952963838534476871708001518488065563687825134399526623875321052158619257945573116839189820537696414560953550948667381482265184504147346592301031979534403124479055215013788329639845796393919772604070526313039606958939620328536407842089364152171447445940729985044651545511375232622162925004125716018456245933166744055143613534899532775073951739309060655683324060422641460480576441178692059109049524345726470948895021700350401251295025572472234596123892001745501124845272315789753368721790623511772352953091783001360139635029548889397125494176558983287078653971121031145883852945625206749717382195461238915563836830980778483488665751496323408546725272084259329509507274006391873517441116330320984225932754072349457127783020121468601875462457382494472770574004290990168406563361641113738278283195821599693125438714199230590273223135151692081062883088940142707118550012211943467707385855313508442180461207361770661007502856576006084382785530326226169625736134352510005116195494253618710413578272705914011643962661786145389220804817796492556542811637535953532929780741897720286733001111635679783209524896599793910363996792212244413291204964311882156778394814821624671970348356957791661888309770850497522972245223869086375832212203099099829717321384746450822135333397981724633193959071737601283963567602022745558726402739731333188348818253766535083578620691358425110849867685353800165739302493111133993125215058724962703326646850951272706706727878223552503798520052034692419532192769416955870459616478096150102506553614942715038972977224821787264640243769753791986653169464695827023222926596695662248114618387486646901068738750285799259214749601542830766019235872424503302457270432452952644719893313910662976107310066957663484511378411684057183319709607194442058654919421052986291740779368116653090248061699028024248907546225051843060269207664143157604737311407345572129951227565081486860800621074443615966690787060825157121380591005642182561773171309253040732058676734955136877819517762593659430829806096812083078127154540979465596636601644171648532520063662245580917479474642435851367709352208246940550031744521853440406218547140810252512217211224251559947356749392333173472696805209085593946268161277671502460467054265481385108984546034286853729588884850279750179091334632547088229962360142050806165764415416835236675127436055312301270745802507280594736813593247292859317961801862142874373526565480003990884453464583752629945666407617378329307330430254435232995584516907830340132821274788818387106896561436258788945095698159501613793705333443452358262764446860069950543401782164866859076309374918594035819117720131929856944746705111209715387184207256961374979484717903900902782294690159928798260419878915158169353550867048670094547688840761208322962721182583670696044544427221706877977520350238172548910546829838337073305471758905681661254630028306251603248195740875422112114308067138639984170795080674345614329924045601113611384864014522074178636154568168976728866594119527600629192284672101232064778625816687421557959029115568462172458778133188953791933537815072369133408046891531859981343673366195011868901357427681680989302825612330713993611968757126393337532270841861498080790377374207444453545716157253551355387247961183577822965570060769052805296010381611029917068439602234760594333599632553411900091133022242664968422716010232941551097771990157258276457181902192456641895107178001132511885762204976462743358623159511053299738166775287613702550376469061974133196828586106441147479411843134747371436514169462723734826314610617362215823844387765742670775578716788128195028249229964145568109863633693151949829101295167276207880483757729839033195901206995502631049096278354090534608617131729233130926384120779405867434084646017718126571528138571084608142191169277988127623540802961939836608409589106179239919044101629886311383479040095781940408194842778153176611925517081595270872728769550314331545496816249944899411057363771716300723910625901342399708887370968242708511582997845988683482637636402252850281405013556995610558888112018298500061654865983350276568732195898686604868423665283836760806560399091433273966197383440394628508969143880977753164135314257317884986700027984767715917890696984534906352055561139787829470562513513148066071962235141665758828396606458331531584157939195194045129722903447421089384612282869683736391777118702495754186551790341578296972899851720088852513145362208016413294144958207302223709266202927471556992661872206995233027360961553655463610989709159520370622619501685590455697939702586026171540897782053281266264754171745049260029588289755680581317884929248671842808478471767929353279318727220899941098361476034210092013522125799420818863557264697170396965882085409224797807904953844131417890718647173204584108036815672542610782389405043257296030327802608897357123647605994602925282977886918836840415498190482648389547171562100299417651194001298112106201293708900074731649416639613035807344546676640016173709549897363576936045893844343888751729128294213177666016820115697045133621181842151021272714851024956953683188670599937632880397312128105744671932024569092463608026948154620426471981660639161457741348275149500444528523800322380051600133081491467679044707010283999151905295221300254851526275803431232538866103538496408015110402781478414688629044641768779594674164375908579913432844432142135825126535015523207917291308318045076783049937410799930884727546469065644249461988802378340052220608076789627357371515012770721638588658106293046259460178949623778783332122180224702235291183053281154706530540694255387598747831721846893420324100179441330434436942528004652869688597366661302013054790840829916509494733723755227714727197361954366180593164932460315409892142439658878907681984446575807860841012227052481558831432026755891685348750588411633369679542533069613302676632863278164072029474520423261828276380183231810582130689080122131936431801859379669833196455610279518805712343644544264141377480444183639780633398477294783817243133095131171295786693160001852900752330286325582886230050314863852479639042120878653695824346763443515902348837336886702010443360787635576795647809625407922298771066433989670459608158851445636271581233450071886064399228746034711698988608457590370846897144821813553362201532377027390354743021033963025414493648901940126875863164211255787323134865711632754049031949530225708512479101079445242780437730568162082628269265321062561945263174009833251607603362954474784790042004970968299049330509997393780801753820794773056297423230867069582224234046916073452909352204886958600320346843388249437344373177403001470666807887070492350756927723879329709172709706726329345001279249007600605125764173954492240804779091599464539722505290968435004380872451956969815143807663404309046650468653938500062987716581740024727892772658934585084129980014158612265601520250054061678615344313108099406981429047703368355427114582398203705976070711317019991753921395929171316616952951324456746885119547025584828782212019032831004005738994355635710560604505574172708646573260131257672602762982899285456282170030427016899268125091479326934141241147433984564499512960361515756072981319874730722161209409590003636814321431961235084329365121393950009245056867095696837149700050736640950460650130567898869416489492314692396827565697587758420024045719501096688902981450168198697443361352099841175588164807820010020627281517897638201451196631978934813430432740498799047454650895046819437444815595463724859992035269175897342339813282177780863488594517791918069454838159699992845483880485655052603470120720084759251909097033725479030623184806155303416278970831149224336945547828236087366025386012703354565902203183112460668472929791508117902489114428973389527391256947406611121760733766065558365014385407244912313694302141249257449057417022868427226668904844392137502728280096616482993747307829992516632165337016788995738888093821370283883476959010901867387358609925731510257537280427920557414551516984441298964718228379418424556592912920439282533750427677399748545954486184361975318557791163644709017205673566867434727465306732625802429960511241992976806027605182845274780826248835065064480327208914422614625823123234823592772992930975868326616436682070497464744281756874236398482635511149929206719960668719304033317172203725696231201982885178903234170124270153540066800452818626313521534196969022539588651700829043703037223500516223644101713337134328435998115950828548204286322692488991468380587482669146650126345468525844796578302750095533727352466106541523259049780029488237730702203376117488248641431811637117465007862545449158480857585906381832223152708170775632590985172253836004507643854932254428583495600049136229900789951958512833566947821228404860041646848167379567731798049741541868422686748623106942163596077225090270649265614116380194274130128774493249266705671835171475714154681410431076417449665511176528962329297595277672686883680622443005066855392908325863328918969184345272651495196046337768777495001054889086519859517536066566253538950486432192621138603677555448742121684543573362381107915658526110533919121619462494588449064049159234483779345312337403342176802594706601573728543875758057948709177222551301137794573110410821307348984386508570646674559292671320928805392272865486501520412884146706823826561216462685235133594080220824888553183336657708611372871634499381573378777310467670357662453552351251955428579301899694488829216798980846714495744660963549892571698421068044941729550803047342626190256569066212215440970832733373862214342846177865450174051755933200392522916918645672205136223223849314820598185021849740275604622260563152697123921250455569049102416491208840050694143088796061735628705370690698212739023467631691225051391938097492540819868315073897558584467312087775578009470606615810656740764501520029120823026672933624158698241574425709716017728129782769954169626381939973503740657403290005947663479461267187389660528392340127054979835166456704142995186562873449894507362520331328913591721101634632974241873478047267172683911645579012589610305436791125982102614477963337008443003258861576813815532170672531052569404966011107729026167046670652252664556770885564853296264557066659786187270809162607222004256787290553878210972392941454772501661620039401575255525095456979197928172587264399475751850815097976633212532176148541268577284106984521185565945661744814729570869078791132505247019600065063372831483160898389021990262271111824099428401922229454851187686146096158586527961631173743605506636536084284241809987289305103685210105925760360539716789839903619452405545361888229890420962392576722472414395346525615651866035613987216138929791533759890550303215726604483296767589719551866328156067538138206858496088485962655458759383744182712866932777362374826058409655757332172010509599350717428568456087483461134999193914624798760467311907152613145496019869356816783878523239553317703775045169696882994135027058045305016408731495802276091597066926663786699117703347356690617238525314455977011500913894679588538818679641886475760115598074099354134559724458156638491056680448331305908408507405304519759169899161400988429167049586742211271272020491732492830024438203890725798373783785718605366740986811175030929836968870667634111410306902744075871153191824763081682363404814725980508940551228970900635185623878636066934141319560021475458919134821919842058831417712325047122060739735741346732848184075263087637567478777173672737762431181450216321193161420608823635420013244630783338476126588910566637517749527739903020258979183315926573574251796568645945980723419558039778829712209161032986764933426678961288814582203993077920574368756924106428497758585714944130706965650501699950702318171743508511654044714279054895979290894455843914006025799412635052109719167780425187454129786179837921204489169982200337591886107790965500395877698091652889832075397736491450350561580833182869055581217196650831220670092854653752433576018459010158928041695098037614475361755316668425060425050331303482296934509344705522235828356322329547904853926724296452442579129014835105319435286328408968180704657749060614570926061977739621971257520382424838701696089395611032245004394009891019985612595264185433639587693367458522490324134326207957985473056354692642361588767929333235457527753245917924493422180788303484507358819345287930650301193753067947779005322831677830158889355985512526461660336353911251064975354817984767258141368213020894084955258961384272246307304059458099147886120879266759053265668961802866891268735251611196916046457903782388843708119570689524194818640849290109299198871169196319207779809445405452831982541776589048307413110505490273063239379839934492991866169939263445558146875499381543993159422459048628815561910688327048877549275644579482523966227700820194997620629751290655500087888676972192888180842806220175375810320162745257618786902738583455509044242071714025811289764103414990582862478516025623144207082270726109589377782763339569324510806296711728452321041969925642060713552175225116998182314818735045589665290671882933933628040592839829704001370866275140055685697056146579629314020078995068294306462800622656361491893189493173823279119202193638384174324907526717729561381213956072546227195991629031355668241705160853309574560639883213129184807420691340754830777857558831183899117918245399543820003034893170188560751276078951570598872165582125584268203388160862798566901018488952599380340243940086571871995743946313038936619221858179626175758081816186027079134869198529252165894020148300908206294044798076107705599665834411185618265960616738859884943219816398608049412748536388129875917614799420139539154407447347221720635729369384032231481258451806491140684155007363049727431433606297696053752672747797003086598688234098791602868163790658477763767136974259976081648778895377462304569062826092492387399962658331192714016442442678385173568531598077761079824108457963624958962384276080932364753182419968576235895801838315303037595139035915778401036208172355332876794103502847038832025905073065401647493631300118820515811913632725258774995458037462169778023384875248182872020373314643731142016787841257980654799036482059536062981864570839766152360704945913767334644289190184531756185188751939667380536710985549746559316984209867150869045816115541498492018494867932197759005758888576759878759867560233490488204990011967069534302527149733338048320175149806780849024725240982130413799671601625191126322348276807736431347181489713517922328017384014186040610866846745385137340916439400572573111966839104277803298163405142891166984939367991394499861756619081635349796511764148074747404492361723654046230693151824128432891469807739031091705599634948616208719271095782079172220683605658355198702052127886853414153455757983074024139933952634562865119121467461021331394089109206122260854517459891443608449722606754003977039449445736465885255359721641521657093366871658578636237995188644172642426727446839800484961074035057568580951998852662995749793594457700071746720258791968167773000751987319914625481428214320312090824679801829420875167337107745667949358737006496370545692051940122492222441729017239552507786483743387225324506039297922674525280061766346908476400754661596325044401105870935574556902984494996257352547270223772261179263470702276915045311393210057558472302238227642747825200049864453675992677212905262083449783979162929237304733564607069511798680079738284511949548607245124897999171454401059404992909332387517384457210396254864202477156274440918717290139976234547834864701731389273395078255261569486374545709206225248067153724082871977533499925901725427913287088831274246335418420276542328312425087684795772037151682364791883480812061146352770838947792279993583419681038381754499853461625983038445726570594431769279218370343201331012766816093922355707188071233731503481177419169079459515175676429479676256794354733277482063684396882730964955737545404347030074657424318544178365998416202347132135792874166929931210584451468998522537222762114791201318439404004357222590226038910927433145800260053752137061375930370302522799311462104428806166977339256824133125195809692466729214713064996238818920307267865666668640455083698642989333944743679863091678404961629625390487839577469444066571152614958941024564010905690379467911184752648464938618926325023423274012325156850986380446542467482026591458916275479693816915908757542071155708772246578448253554913205893478689516508250619622762519159834900183440006012883131435741265594752619314650744762991282366941537177934092668205985780234276129386842653721933813544919299397959114340520682175413995675852711018304156057772749942635818572534614491588814361112693455350852741807152776307524535255297619350150260306583371112952889280622758964441452762189223416491482050859991729507762092281385270613511611796259631836654748804288733036786196201534490716264118447113171632239666071211070326717686902236519844218062895586821518195696432336912163799252170741398796677043215479348288445338103824740667571131650112116818455374868388085909495409285706098718593573736882939961019969429485456569872818870207224125880710720540971987690760059617613774714314509965054671824912176496816812426312838019874832479639404559675771118426593893704017217487890171623330974042461016863726981062681608232204969161013132810134828331353339358384563808369225869440187759273611061920270859803141428643806352755317259139626567047552028703136822340811999469146800519511814841933345664545577106610085025874284033315214852104664402507916836579316823357102833441215484645186719918340509089077400993310240661131672128582637050384907015787558606634833103663162769850153918767773786726057103347154592441397048239226349643520307324565071791266705698913162047253328245434488055681843945544562110258150741716524929347545426305770922844086548259110470588947883628374254452781227282129240451302239261634636906514349397968153012214369291881572304923156030559019732690411276829605678844408684002438860908836674469567717348922092086398880623163053302601462133602136120732488830437474457374049426002536095734289678160798880059571568134197903994482443577376734234136023413127290308791923104515680051241783224099328057002552192391210659631409005487363834184403064241689151928036616979288985190093212158677901184387097761217593721342427946123278528224052655515770655225233149046918127982945368215694263510918011378298826620512363341831018796101398816991399787593944514433015491001822309091237170933793459384770887530795903629174648266339311572424054489936015554627443423016807648749550069095756238309856315503624692765999156427143926001495200680541106508763985262235674224725421721986500363499416764597291915441074956155836697348691455403142647827473713288130728039113512822029572600265067841030498599599100105484508788469291496818010143566245188240229620617752193305443131488741017222178879654451323226058229036915828750289094690636355450490080617879097012289645408032361516069773167079663429642113483488627247595109971745873759501640038985676475251931205116430976790469476993198463819772222893577816563554252521150877259040273321373928150104389085069986337046921035032449605520802575838961771031656059316059546477547929283229563147023408890531807156554549671154634376337801734472059131557756459723318432071645127573043670268529523642814827147179095037560849299743397914211212899631177660321453567436572505380874064978619774299918584699909504644055971325040467500708629028808261310289547995392317614056884157366288814776670644811601153293532105924016030442286740709340726204085513148115507928588644408356371975200642454095332756337347236207268601349267433112006562926701441395842247319286112564871819481619034222164505528662812975463288509576626849487453561601743525791559891967736350977027385857733525141405421389316561432149186583364670053077931297667532062146006229018341835134274233380519947079082515804729990547169128622593169465668732117124347874617292932223913259199448766452885525627284443703134925474387384428272417422865967583728546028527141141651789694596498981388476072198500519894081453423675844365982441960382004654342366479250807480650349289295545008962034569702083613789027142615480704412747185397144395697253611717201555414264012483288050142194750015636962187353999140534209155037227730074560373651372346905028989415526965298795304491709704648945499701126970586688218450858419635743832818627358150053932239371217899508466888962408086161710663316260433982226763247343635351349299377183395484789973334263032923591818122126549734220491900196276884942408890238464286632973145102323844996688292814412542744581286661079069459006578504622188355860670723302432251667886237995091912008993761352373131349854569808073451175534370366251096994849822277921818686945042758426866920967224131717162265867573276191134402549279169994426446594566640583714539774615833668929383376692749911690497677859091416709198237696614515823790920269226361624902564227119839455423995518182172995105800808235008547909517577358892862124848802282319571184215843243149520867592643380191366149704573313705954914297826045579426797561411919578551095245646732908370491247234471077391830150107413732995264014791002308718170685692905611086112659651415530157615376737733170269945302372851013172661388324344496231411714591504945694297635627458244521369754898025313490020562192020745425150753398700096875457374788914185681255100586479309352569972595259550256429199529971632797776837381787637118313572280939676056265611768218717550285307142809738937329478858608904110134444127131258591461637582359626584421300926591582194656139646381275530000375637931856770105559807848829896042237986615512416058616345022776201000693166834788555013259990250435140482729848085133110758309473198652187206052192314950285694546766230304200060357744553675463217961981174366741545425379811799005078559139498946444487202325319371468903287086499841127208909144491542366092968193641536378768169889530741209688912840029192773396890202415281316472249336596305733108826240801863765730189498703224481759575684918743742591724681283323683185036386149647731231630475189304486636455504223443248842754118777584351339338888346001281710808275685595651638728343811675935924506980647468894102815398676110382445167768093794879510386752228085372768020067847272608010473422199718012525322651809337780630910675556917731158599811325979154529834106900946484630542674334785756495164030078037093469617830590417933866642130590647810491064837289991462196032208055468794413244989240428975006056686430308578319603734908294207727292366915448286549262410907525585964695036748107004839345996389259819319559586824749412378047718872845623154160450344112066610359203295116981168351427505673504793534952799679068278614925780385215685797722202837037150106044324497846857679348245283895866536407221406070464594575163662577008097938542959673612072931800291556342633764128833377314695050260689993986733608895798053135480652459758114268298726052069137602812028556655930820559787944999184921554489986819613935438915590353920906334608250657097142944967878085526004801692274694280462465013635518651213985182818563727546393875894685540360648923527672595090147438411781024804153516806274544384277129835310637281172054333519625144689539548333408937077066697285557512352741901253595530755920662471165951841948412388140435223366991184296478749042704139738346501168420202413762136775135476426377527857437647880967402811898975069447820768723920159634587677353674555062341710354908048106341674352547261624718642816878921885725957687831870705232762180952500161216501388647200554999408412128911116810100563331726363289746924945286305375171414049418279399004760462950327036729644020280830715106733103342619058892403127622330606967326421639569780866443686764625456325364022257071816962691792353884316808135946078239260214826817614251392586440673776552175105427648078730017510745576453240935518594307624360136090320995757397114371881611463335281824308045383015230413766228049463296390339132269882102460394278857793530274801296792440553992092481558322993278201707225683878609538811538934668160513091763738161437905546419960952339952135350942205680158871012616017686621321786677765701169115457981935394565516583038841875246889205788909810361693913010672729070202380032647268742638617064620614781589625798037905745787878250343653127835808578257197596443977958928667099639067845298795420951370191531149431983418182899881879093244599037586741217376722268813267040894453647519313048630733440298470708698962959907355516299443363636022776995550456632773828434514890112560302091409765578685950126126951369941617734817665453169768551925705173946998909924214299959082792851793199285788261831366735114824967415298057944891795839111622034856686267852306466852424178231060820421919000810098740930111070698954900214978323235885123671999135269272941463510657823198674625174214238651151517307944597140534560192950439892137033905829606593908970323972513285242307110621594138955018592179787383261385229550582259111416779537664054743385174751881290318440507631634160182347346240225482797346112835207092354980660692156492316292783327751862436737628245938875183321624208017691859986118355615497909492175632035027133681175451090728299449598390268437013122115701584751037244961902913518213511157675343371990851923750478544271882280213295696941869021126211376810468668860879940399369822226470295345674465542015765443006011529215309216273620352895712470576334498969171960240953869230811744701654822299435759391448365528786057835476087381012979492816584978982849282896354881171789159414781759952424191593449407425957928440149128594858854188387637461026141492546501297096295084790131076655800363018417141877479766590842630716662937920977760482123189743218714708881586700426080714115459969286087699622975742235790460093999856504059675122245032136339522217368292307138859757200853377682044234918229125647161197528811253269876312729164159048809004915216736846390217425435966822109971419215986591722656281048950206609427459835184466214866434798747558119234879489279087844132239202509555238783000910269760738146727754295815086250752811242842658012729902279410786520937714623046552933719474055630963202851393292672936761188838654457472208474250754822372431950817382732351581923290234994113478199787153149981657516208474552489769427383695551019775380792368408326917388355068247756463142826538003891331301003032123959149878478757063827104655821334180918598456807961025229801144207822022958938815630098228590612604080871671837566212293359522203779811670581850083230029108508820611940769631270822247052189799714535739481055177813654627741198328524277029763498678398312344647637412303717043445893509440196641592854597122229885806534713524613587778749370017996296088018765422183184952842439466024309572002205416089154602861554156054422158097854355591120399252943605362899707348217422669376225762211943344085712096972149116687287878484462464986384485167188219469171186339345571969173048718601917079343924456681841867153227668485369280530219706128119085558501678133223278233184286052511006272677668614960766466701180317328099830548381192419638419959528911671092733841572506598039509133344857209463539094131456286998841692680127692067100999604593604499326148112025238280486138033612575579386945994458074128552234718483143315509091384250450391661213401483465882430573623435041850098285332792901746227844319889977029402832757709020373498825962283768903774372652202358103713941780388169415111400209692952159525180689113257274903694393713582907232273811508733444361341505141996605709071599395713876465766248083160870347086329240524569927335322332621652044673976504344168925037900427440761903321042617750814114603496591709497378036868187182640395856713772288604623973072862460832594457746016218580595248998156895960190516206030581361590420722359045490860248306099418058739952749392433706898110798195238678981844533122130057251043238066648082922653188361518092884132690613312235350332473388847979162857962986992742400220994627122370608215687425299048582384332027634836132993616818674699418217740514504882694719353946454547296813574113484160651398876097562542668543990047432579329066684085002200557641272903168500219956664440769412776510263002882321782211852357157325589997397341923290070617562632529804057318121012369874010991743347854549891335105550690922211205209261129978055605947711920175856973256168457739915394005936878399089221559969473997123193247563461921263221949493517844774016992129156921302819680739515915212016701146777500944010714685955008039496009232497205837093896818683587044839938935049282338042350435655430068340006307294552230200607513768174024545828642900320455042267548638101897596741589318439493910571128123598191012786551591660554654352561566294016207927544064648868957978681446090442870743262280580125208655938767514787241338059762903009833911024173483896055945178772231101357908580572874662026030392277088162885072899962715683616003162335826955390237589744262783379250370605854444665951123722118288348268904350016198468036108933766455676533335232169301422639406425437058046180080876666015871500564073331961936580972204757279584788395328112845871671031664846637519037028417721336077971948343798356186840611281636146553466033233420372622749258851606126472640864443358206952025068107468391078959536773750730126781705245756285797482013798504975651226922434930869445099455959430604644896547660019040080965569426426217587887889672027940994328004615142046476267893890446300929061731068611463779092954202888730194478306882541153288023639887666441383959556429362164556257895833775707998592847368212212176422622471048185121949365339900434328040686647693075367897122433062704948563304155326561410466567298695434447600688040812163854078635700856782227032488689923262030978555656502431279982460278801939825374197313603625129968427931125328343136688879916855625892492474357766892775011663130083525077178510690249846952590733036312650754867157079129639137098423494184313106299469506988788881208272803792024003137925951707092603034823189077129523070575046714446383919785183265452444859064795145713968403332050991675922917473215563949940769493956450949488824371186337602671155489624906523399751770381348577651351330654818232870612884887437436844035202576857680549249256356032627433884501858253423222684184056282518270137923929093699404180435965130854885718790081406923632150721217522563377526019465832082931524857181491362103057770125589452462834120542149945495512563732291452696356086471211495630701239213716930580562994625296641580740294166057859092224908598503881142194551494697046845729410580947664859664582790643680827119293015794117402945780853494919579144631323502997714486072538381153860672103671028287562855078489128727878865907033106602062613958498584741934932951708460600598096901644196691311707568131812109049003704853192280241410216937310878937391660317478762101742336523202944323987460914071444836605757165754434758566975846089747651362821634081109629767730990018147225693096132332766638186229712923512131349227475531793843936374092959201736971541620125023123579292369230239835726823705412362982799590283711077604203520873404446162638902024031968540357002407795050316057749197455725226083745036980083965985899463496315882985945269988891671530068988151117526634109921838814525542554784768845657550135829691125993879367820354127819395691799643618834268487628197139709480451373203751773401176019568580723025034394512967765672595496116287144966854398610520623602623585697545838978778556063535009390579458007788654076044948768568592976428618027932240791803829178074974215918242932364301639851207109992604138363513271042071892591549446264715296084940735003487191880887710100219676629626272172653272107676557101240270046086408930066717122670750562142278267868394156650729351687898119506489949009285429086622932202285867423942384324839863596903715242829937051284256669709106899530571667239875232344343122725867759121250876894258639078308807814917777038681232651435838862393758858746743944378504514591644728146427940183675777495321495639844316626878190030336209705321494146624052623511530367067632541439560037314164778929732148511162659021091128197802860164542758872564798655916815292110396133572076085756127736786981117260668889036400901002048973946580895995351655393214940552785247267436129081623467986419695583454087080758505573838865910680054436455869649377042195197607199941971791804983863986254836826207619456212238559783288683237556835379122112766426323012514837367074272700255507700847551483973967106595421379805466461814147698632890763823956637375406409574246576208837209051223824774569800560611413909398809931119599699155444358489986611420503038415842046162276544650096171777298991989933162119215368980281931471506775548974510746203932406801975005940154213971588392911679151606875390225068195878414045702828255261955028172138943822994335854311546715762825196848027640373643620279992343375915339320310272693548099957862450430043765702307723102153676833356364186985534950490423906476334632452928114232900736557670001684072190845437113515912947197382507954996050601017420997369313404074135624210725832412388834043430510697521027840412999470731374750863357472835069346953949252011887402515601347822094283238340365006715684478538883261388329958702311420861024572160940485595448369155930210453420047728241369016310374799227027332143457579513411511730067511020220864715191973792634039711478730489587803847942079825014787622528219437865280770294126837692167181781916330246621234805113585250137661728672303544111720647191985234778165358091336900525178584833781554544769886826355628801542329771028313581448542590182651363121305249358483128665218227587820952859478023706367587675934361578365243168213811733936710652112809345540114024735176261013272968619138022715293265166064240208149796281515471554441694472806735376284053921026965512766231770577577068741260123408517981262173174060928489632268937283551543563414099932982664505015340757372451187516029552872600395080450653624551224422822722120381693127527461858646050987120896298056014255501469211115448252610665799286838981372480671329358374715086101435721828237773257843525307282331551132654870481768809574071985676102577111393697831864603472880310066729194265488399418639146591850476419909097203814923457669195266849374366140911730765886548003309037753522967217454441085362715474085611825937764589847801369125820924500883615785867296422564439482306626381067853481318555155996907463842393600355298330585408167444795908506398104066490262217302554807892240956152404656876213499843877120058261091215094592723467594345662551603573867083893731762833869600245752361758111297431277353814174979239537548440168261049105284558420091038686735988978333189223842795460464766129411453660591841255199466059177733261198163836108400708261072830730426906646375338807534398274250247120024839520662074197137312830735618894361230000824090977200424654701466968187267004200886716272518418842519999107389889333793799287665615799936700258861546950909659793760586614027897307367900467518710493103011943457368373649088414446021415867414834812777685554129301271357402152646365759560344799804326617781409566566899426434952513214125540964511391006530731670343723400562929171923698566322425896663241551311407077969449915907013417295945151822695624447524244022457007160563996155262194199091471204450715532329066047244369318057915575822850575940762730257226038994006718174586588127442980889845096319338118115112303302942687687521052759095679150711843039010616210571810059682868049500840218472323708216302849929122578848370391133878377127534864596708598693154691246081650924955370215891690634827665109468277817478351149109218347454789188341582691347592348026634322738580362287974606070483786957770633653458159648526948122618327805768288165329642866935451814956029175213838598547094324942699324737519472890127328975767074706429221178350164568953990050528662012999887634842062461318121689767462560583901212473743678459761123472769125519322402806634064852788679133199950977544509068709300389781206377141170935022018928721581630488285864565008166954932800306447498208672577544500551534756788553327628464332413710729316716016360563066019898836452810941234470549139294949964154611588060799150270105146403470114923178703492388463230590053985170695841024961406099690912864324704556724894344619886573757530403911186238650497188171910297021019009497759021983921634793385832175993847367328353526504200045128724447606275953611621238288541587493612079173259706223766263623712016551764660164929703232800204588194809061720788461606266781955097729220103917862589916781338539297562719698569612426246647534652312907558635730697640502056286726819638026332858568822329585365918110187256294237773463210598881985682209526730366893002534957036053371089821419664593769563894596320555254309234912010833089411323478515529255714904667750986349635671189970141316867462618088357241227978416227475931344390029386465787744608348423525638225343666230270289958671931697562736316038321751475153393761000994520189147385366463117247818575543669464262166587875504679224983509842518979295370690428374891074558925146257467258577629121280939587815053251267485215548060312469229266199778227546865261815194149842021267410001053447802258679122567896667365982068927679849925586079598151936518819951119149082465304240329453908290593470382044039510748685235396954762843395303795005905963100880698845429885241591848446322389250643392301599842932973207868866426346928921573601835668894240916407048152732835864843833819327999635929767858692981392047779587707260146860442428953334868193828899260447359592990198013493991819331613401098638424764932919778905639695028383299219566177453115489097589211115324974969904434841600422753112751802051213639121818416194480140344570441000201034650470979131707862172506483857021756423859802362663532106333256338766903275798435845609619567703264199427995881545359056995667614280387168118682264221778893584200343324397014058275118562559132987452479811780955340130169154860524323569720805752740426861710734519628190468877408227865241633618114517120688749039900014063476433870304656942621883997313930149694297363264398697265602011928709239062200964573372288242934302055310989376749026435733134395403985395953956924501474706311257516581616088101945829290065948360059554230037898958005936659759697343856914512396991675917526494558936224540132034557616152307945473234350165783986600906926210158582351897731241781860932461295487183147192066845113506637737812667534762333923026602665252019135839979095664016613614744892390100791544378453956457780928880448769141292361662321825575321335337903977634690481900427561098203130503001187193012050484517219147124153067947160290671975103545104587920860876965499578715457271059461702837334154535036775423830099986677302006300368161293411836222332302974952988266845025147914982964497908561087203209140380504733554357769277597582357590549878810537153542141417109096992315383721879925702980088917434190687458203848051868621234061635214239243654237016934136440528500082828123979538922219752645751034096978243053862473685197751901036454867475796992622642865496494937022290645351890613244273347280562873366042053664640695266421861954557199556375773047310651762464540603392946996212974435285474354048606015560381322677433858900284904890531479309412049450717646705251133808923243101167042096794347875732619785816299118383743574439811503192094384536969619955507120204114199530773021009228524401356165406353826037939910471218780945743165186920675224877781606094597079628712160595569601975857101179741087503089063897487100942902515909400153041855534100702069352326145199847443153098317963004720306530252784909094895757320986103757611033601525827810211597555473537489866940693337131444590738537245983750151736966240840617903227519203971723214865817434090660556585952069114818465676132537376047704043435509347606163200149847532722645755349445234423258406074484803251971041011185157511074042269859119208017188335834057199124904050620895689940324747834606892994136465845383610977882295153282409457063520436674261721845232925946785111384280253977046458723329784010137212720013819594321311910728071530362857201207132308015527006993653579176604824281755056489837456234625537255123394167432091677507453125936993111503782496950364607776474556959200145517140625749897941873677153499590741044245847299953216512422939201787435272709221863143636237713403086402887596032864155360480481854356129681853434399569818784116342488890689971169922182857327133362743010922843927019015842227519798845528616066557873268784348911373045625875049296670891262701625771910086208305862042189262535824410286564812348980025294812538443217584376119694829749367160107438591466457888984649826240001843834741077704708373060396593140014600674281551756589741587118277409099926078179322123099503154114748517213567020661579876803346002557798430769615472224063925420155249020511399286145897920619150927595350861775858772936631346663464987221972050801539830173268910067172616415534945714821767737824954569176694724790207171744194591353838714039921547283493758396838933429254837614021980626017815776306877089306841746446674950374944292117315838143435308841667907514309634886258095417106160796613475528591758364609334396215052019905856875854553959018819592172214241870500817556700130404819903149895029413733628458472559115882708080999582431908810671657335264294615623555160176067683228522525460515035330856489914953125846620570475372748563714199830528939100816635026704442177624725486171575031324438468690825319051589666689729495464470978846472755570435405187844537591028750939427795599231965541423583476741506892859597900513684762192754633820160143245044473441777023335654741921202584093467905499366874705885997819344689816420125864005569608925107416478961492259304591851346981884760340705445257750486900075320916989971752598581172720505637621092723168885009525460421212967626440058093765529687987691925080888171514725863325694624375310516436525412630760386126523006794664841182740714818281825930169910409979401255183756393713871643472219454600130271653979267644349855305558439315368011588551498468255694957786035962014985979686686269628351784901198251376700076882305658526916633042259312161945441443672108114861286936210780184828065973667588822918441541235455091577051162584861655477454378891809833825990937079069818157114147209397003842006394226993911883104431067262729089740689664165870192045068928428127301814419314650868863202368692526907593295659761918465682494982600576000023251132941834978296356491732777394646598317538230244267251244875528070328325781741110215006166464658918141558954781676123628681654545574111226229705438548266985290326424259167529140632637070264744558830445969318333063373743711999234763962917056766784528224831024713962933715196977722980832899775275568197295637259631641644030726704856172986579597216890605113063622113616654523158567364346164117486202336429941626126522189567905518309822623049498094122268588734529808452333320267571152407686800838088050746793318442007412729011317840468815432043939230685537984616849245856355445109877578301373773394000967569953428366032670617533277352792674092220764668805526398569601452078106589779635712833981823904099328561734688650156166960992060475093054318363646662395538969448732463197602079426326821864061473882815480741060816207196801679207830643796961897157177381149934713388797099281638350536565233757066534578071382383484068663602586829832819567714357629194705724825628904838862543029454752875384138848155196374922007297215669959327851748497707381067221293166828505276022595866366184364337400418122394780003854514025662856158832059169047975507582835721636363252776799230073200597329715715110875631259946962034331550746596541086147317267033408819583058816369103065065245453884489421962545864219405356747264652876579663805340711482514047387347281670414823259985054056777325033869486194838271627042237326242796497807384863676051133542987949756619336563678575659006914301864398400791586038303128618390109625283501256281697352377711587029197436538001146293509506254059758874037554336538615820328787520844053393541188349731463245434599674354844009417864483509448401855857473181004682442048204080618390731452692160870058771235161868552321125831881034606794306165194002828312908898935751630347700410565051926028218616795382086670758465030661263156728876753023690271239191552557708820645770965753359017396265986631742424727299835642141792862424567570586556429174604335424796846001659696864884188317987057772475036313436552468495579393141295666498155084452243337921218076946326950710497140903508715029325630529331279640012534033103319235213186939997025306853959498855961195688818209666581305323233097375120533365033216895582390950674040052313066543688946071062899970352250478113637894965292530114746016266382391683570093262325740276957937473590029239873480252867147475163382810850807016631552943078896623404273976712554034372243986555601644230946348738906304172978567709781577668634348916922507069677096263080587015364558767174842298991564823813724210366854412026195015536479905379040230284985068441978451769532385203756118328440375491712272291234033369210823364872518785956634163246273520006898286489988227675307362724495593701227611177507724632264081291854730552008252009160410539329120131282425598348825768405666896045494573174088115631282659140771310658195892497149789276619885696382032411677879714908264236968455249252734001467857912911066919371831766129001128653152756924591273178634581434146401463690718636397110741212285231502735226736484411661803082120730470328975424444798323609572500340510898435948948545062396906151345457296346408499264348917986150851227228060604639638149970783573892706840138091621580516029097521035576872899634449331850425364525480028820227158430358718317845033064299130191885175608847340591074183532687175219768192630540485836188687975686228711189883303866289646332503445338034369118869410576593655628514077188823012001236754746544346901716634077797929950253047887440197676235565639865134684561471777876086363632968561313301075912906286953762152048361695582059812216237837564478549151723600586625179968358027622228953335304898150588057178532625108330591614997784474970863836130758261038107513733582639706336825859723573451793154408586391412960897640350340024074460431027462698882021039157533449625788945523268584806289851831052328298305407183612564177725195138653097634580022757098711434425512612069613246093037894647826014333610981114139853710962700770892043726990489819385085489714063744452341531784394640334216334571061552328948517682701680274090346271458780107176180164560051265577426045580022625817645329135781181926582486198977329956264711982167856095890595164005755831122012253157083531385067766618358365996042730578649185063539644652029777884033833115664458735564860296313815161609153334267884758159277802987479133582103966610235252053749706733149253320371936636307720669787001058379105315396359476247491429604721868420991266416114209754302507038971167428194441318822113875835943150744245685940032134303320014792986382276851497718696264152520215485596158869122057632428846957383715620376010086068980887571353820556768672514277756279763642302727649523416920953451107356784840542474790084063600162921273308747221963212790955784991983867277252750067198917661316171077878780813426175384459082020026917173824432530967015322921342872019058651143163214252996440100159175214902680001913334955645263311197412421303284967035945955689408378518721902855877316897719150181495444503277916809467868001576177908826925600546934690472353968006326934471481418006040423906365008853020096044688866369706314465966756102198631139387759759403320113546005422971851584389781791135808562375066023020781365907490492568719518200098594977347698795114992511324301163450987701374230973636550290817543541887577586058332981999949376450241114543157672728816604642669214745800083976846697369751217826498718040070298319710108500406055909309627112481569881372130174001853284952985871481027241527296700259992396506892651637254969572702310372172285043582797611538791205916049766823326289582231519274628612661469212488710360765654549983410166728543814258010326013316061133052347902552111034487612114381081377984975192348484003981731184772457812474482223584173663192519524631388265594622411328237525643145369600398727474035255825038450925396570560895880973325836357060736500256392809006181606113034587541795750838908738918488724227653749868431023027473622490174293633596784739451173932583492318035373595912768931513019654069382869193633286556213611607450807879487932690277319208993102476233858956229446182762933433514941347399388482527251292797664454459515582094326462840193736826777306792029477502992570528648990677374765586737489741398576358352933970358406297651305924350636339127570926858668439996448825658436005767110568415617809081193136446544567306627757086066920075474071779775573169657460394918900157478648729151638387807281681531954063710933151813613253679762526448575544888096807262077590161505199288487281147641766136360032497332838014705561869070547808203235799096826811424610369034351395560383362966032397621169600794032970820876525907948979303418682884309926886295343357154448467851366229374593843118517525172643756128243382446049659154160060475281589611871030301050927066786049176668143437719987972873287940471766402686589878480993351150050975337432915879891791239299360178344179423160152264553504141412469179927401376087414295459903015747520856874373249548475206378098996622339568687000253861007450084023796311546186351681603485398249486343603715573786145153461227246209381858727889364247895594860254494878068790600212020671915947801793522224729380616991094421509100921810396220733417143260274708171666604975557722468404358920869079139289506794165468153863169031858881790038745484078773238334671410981977544401915078770581016110333859802112378272116691470216570991745138429503324210461183132531328270167878379798928042147090438357251983343217786653280147113325267875748614237729213003558236261290254967570174865206759440726337070852133098888940713952984278463064892417672471737538415559457422236679483774099865851417867059624775774899779623560766476722217528187330381416648373601049306770222602995441524362362103221346272655710725966731674810400210314933962082495121554245293308839886880071469049802107488614318307222976252508988094088138078801782767788089639726504385302455252990015805022903260313340451010093476015584858688412216335630927539183926690999191188842497053589995643563601294128563174649865573873286187078084326854139209393973089222723224970551969079824663184323832815553162161292526926015319286253249981544994037623205575627614524035187015198204903395951488087639430733125269109017521169501079369540169487922168599486980081407673962988586495544674774971370151041883795347818648290460366654898205673263602133836888243641925620447469281496472890539887481737135943417169345936016093920171256940890531632496883818152183434107231372099175825206889237070819549038560737131643281187882833712509819417683048065537793126916635433935453571811774198017645518396578133627905158610471669702928880924589739197326263945569884628795234983303307288341545550229947268171460008712093592100623008118266677032826269188060156014133269084099956172672068418908590519485686313285493426884345558070335596685212841006378605027985541818582338518603634984487373479908485420108208660372177178032906937505613174078729668704365134233941717951875857102849739163895442436135935575287822072257985638509498368466459047566266932999002841644714821849470085631930145172813963068889910163144152688977277209265298113165542568403353830479270152853511181550364173868201955739669697515037240762033557126484225413770539692332205135601953971009147524030954190836833918988957761048521996668468975205622712159184249757064984969575175732315093299903138369802724325304177913261795367079361292625174970645950400202049363099312368874365030010457795548641778836266602101983822148577815922724135529377877853119945899652214445237817813182120573354778013368023986367760474718397740069384474961582733640910631816700757840962912014846267557437332377152400051245656868993655446441463808125351622255390692346829349821055280170155952518597613419409717369489045278193279568474319789300703788910368155630845326523948365504211800484493997100868411358561205837424294569852897427182784855074490944520131498332415651287684474213094912149023332628633792021048491244983660437814787502849270982868176712521427130169817628912660371332996471352040920013343327796203687452320596231658621195839226419349222422248299615566171957682142650055015330885955020415381579742018022176038920021806134571388056647686989475331919661688704955289892299010816075053378070273547203365421293693519524381427943031109075450182398742155301342974652661843961143206897972598110241771511128714546424436098615810097867296695745497490944523371621007355008410319374969447117970451536063812226227230550135355590560039087001414056257148466056030229592853960812573768837660622234987139448728911651654640423082405610184187968600568625586051368322033352657686329147907092692921112289734379245067849569894230819309538756198329120136753415481227119288716680014281141872460190757729238293876030421105720809206410068358563490361339947404326398542785040391299007342558531953581853698728523065409915557726295947208728155100350097801594460993809032546284754016191360061493632230927931149670804380518122869548544180214432570758844742398271651614781591726647148725804900987495716336403526214025569685066235082343203138176144669437025174945506374692353999183889706677086122570918708147752948504179629098614027007176936294872981235785854172233036173590342426255187405342943853674283962682092845216060878650500173274697567971558866691220643370768436297100848962530599869742025686687816459631505766314680448620028937868706807839820759025818255013095325015501288010989453036055666323372777654343036880510288956820378739875986981074365208807017159384826586974415366779677333052840085476891909195821906060782776143081557917409496968827089146326717539417926392839196601238770190871868874828558679367140090673046400527002524969610629982638509389386698776340805648853521430431444763550705410813297888438624468061033119324263635769112789868704742381667830241491528397677120029146161782800301704179495921701536921839499650844353771600031603312247532001062748927906228490530112847227670941678366695990014355903686680172126865478682384464932121632574429706349247112362609342283331365469426887164353083493905689574890098257009806970308190632180435353738994368905715688563250947258469278694179503434212410971998516302632470305728333067802413714538490175405158078972198694844167770117601105299679594940720282251683120993596808849630919273202544957197788043551561499998210199334175210923135187240344086107507203533579947729044065783869849352469661189753497274866297379707854107839884999152801006017716637815269613849289843803952322977257733815039535499205457842869585483105270573018548164165285385307684484318288260193965036183456081409840668002247451738330048686368955995763736760374273963088544197852484437930397863533270423548913374146071945561110647898225090213418719498775155064102903559499915999034404259127034241527101448261214563688889272978453949885359964616415916263983646679867909067809216124414190360823197357759653648976924163943813191222235025942993346346227291214472058216077002114034897526962398701341915095966805310956447857966320982153994565867469158509000450603857334743377805630242667196040530602008873728854402124768653324026422084568739816345340186044465316727728032095461172616282918788388135301579324465994810757879130421402706931441116256262771410747386101261790928060588559611950129604037934562237229216999016343915874412680880329272759340468384882000766593079354080519430372990689282327742635792921490085539129791614132707837413119186045222381522474801771503282110765114500797949413034708569404504741111954963896560757604142418367860364461747684135596517570890187010439900367922852928135628376901100441044622509635988823993548337543713610165774188874042122978786240666800760781907163565261175442308218321887226834492463757465185899204918409952565454432022182179495194284138752362296400114201503948962102079773843727484246586911150281240175870714575530369268831841601203315309195595657184528745927494551330163051165405927811242627714900456254029707052255464396680336872705515627938766457931124567054322402407494003187330590836621303198665318814282031435628646094596970653464418629008225431269470770413205739848267874417413747487604865884817573845938467493610514171779006648891255810687859167450326231679701843737550612122152468212395439490308277610783200497615706415789867865309952841107890135368284903765087082801214135375311549558287958905152746826758719564752376690355673649339208745109834817154586442650238484223465047636476726182414465562418079230773194669124929562030306604787004087088947949817972270233991159292687205053702563157762837122143485248560780039197027112271409898349343504599245393659012418375267422078554348714216283063113915441142922384655764956145362573465778679087381924369298662029142315687456047675147851053611182653194234459693391357446815163074777482110343651723005118188429585482732298204241633131077960540518092411167902420111977010818152465773328422686174158630310090595325044581422863071253132002331834433713259340985480192190900921789387559467096225747304623858152370731174929627577919660508594597452785913426608756497121634232938809161123702439873501382175279595764300175966514843843580481515475468480670300898636895171044488249662059147088474253181707592505795690581779913683182695280912467631749695889276709249961399525821236450623873232861550278305060217789386062245547486860547380520505366759156846172505769685191261511034037539060701633637280788408676560805344793516481260919360507810284305090197275835420129051687902042794021516479061378570304977236805121710776040613065328018492606976123164044820517753531117787987354906987747109551541613171169925275175796505148858031776855788995857386462152031171488740441733751462301354511462779906442094942653402034339869663239442091981715848059005513144548940089046707112942149559768189762399857836018397317681046579903575284375340603731532442450621063454805023342127778560901704658973620904122885598101855758926364148345568791788300629685778772546338270131393254699403705433128880524617448534262243289830350651689018008654894683503309832597021929691822983252872072181945495983803593663629256219254374487216880806033119289677662280383332558270187728274188249056426976299990591237609091625321035072257074676961825961379506786240240249271377178612800321748325831896136933961805254963698293022077798173494363054197055702238534394929286860540993870094515709545088911564928825685608188788229800044348905276778379653172295675005466872491839384549155726565752279587339243554640422686835166186226495682697203586508223592596074308080056387026834334315782671690228860847033416720613037997272472959668204060095525506737215526273552825966793602339170430824303167897711220577926351925064889632768700478928292074965863525754784361579694050406922122250637921772494746858560584647902917843020665005975270357703820571696311582713242856010316624781429523442382379129277313954640535193685888383658599157908178405428428851883942149738676036776117811132109320628842226952753909454817375138044432304021581828482324301730988922132303335737809976851151077165313885405626057556238160506557651341981998913340480722523631559676437333827074594589772013421699293396590356235483726331011114946683807277971366439965311200813075034987403165237833561158430635809215094501586182475614063992595517575829847290379522040158677046900466231793903412415992182081113091189595596371119667371730245484999861130516440748802227131508851075975268894134048991494265711562357267133327805107759333492426705320269088928027346071935982808539896820919886419046102784176517243408581097974786863162159048324814749879594657813669633002729209747309196437908702159080526565697109381626094690676617721907692272816326593846975123098367309846002756573286404113035426304073029240015337257498816463081914322223669000437470125285186334387714909666679612080996042134608400556585095115880479969350258990588601902541905994724868368017366901724564175070513649386132933950304983809652791897564123829242386235524843743560824533509663073790578649635659558193524058908017707157343696696501627107119771547118394211763842780311538590098800065345146962478639261559945605194669237091924196242870202199057286418600675319486665142832865936354472125430897893917747550594978693342161707131902502808878694895140591072978647896532348927570970262604376838267401850800758065578445716460164154810912625340969215818512692675721655939872550466421559651560331506777649233286435842217620369356646187293877015869496117924228486829853537330803465284359442674930256940363926895485945184898182772528009086623154921304486674212015512647359427188223064165235083628159409728470235169490049472220625974238068605727967090639413236697168228486859840862126264865675547402750423988659525278939711552834897663680073910983829870518204142531533087614587729923671972058635756891115430354919364966392019447790024898362163299633974487724498563777652934430063681592907889867049806496359869496345651313915295650849471929369069558799296860547829778506883658850508200606985364393290793631786466631032106640416562446460319405396097358771409172954100510042776219737637232934273073296411702032277664482201962958020989603254325440731211028141731243937286290719686492722874047524736921910716314628465825506054540296277345430695347671571936789429870859744366184363222201626861995726851877875442353175669722225012375509064988738868623075608954360909509656974289863287193574361557698352445849061414448263171631584106764935944963873574889175368215685965618441011438354380120463111117180844572383492889665157086935134508937881683924545401201145088861997396803457809492011685994758733390303313790758237271256878556621870692385004413861247121300219469031545848459485797468925195145783808733898530331409593705842075323223935749030924141800167652176156408477405225849557726772335436547135277900210186385532606486738426150071961878016251203909399689694757572001825180041254880118261804809116633252567569255592477546113776565016996474169188958200095965602910944694509604467357758174103056839931828662589329933026868285479712431386866599303554993788418445345156762733207797234583644457991860365236473378661467576458137320246932035168564444443125395977438207331194304987021921622174145433769949084204729671829508513424710853861311870425403273297112694473575051280614321124302123610083579103549733604506131146859765442791441858243464597069980820823027260925834820979413796645906207087485073988272769405151843172085675614272567291780041833731956945782237518545167871110501481470857212918723988054068413911876787015529954494315538862961664752806677794050831126976000955202475528977415046749612312707056022500566378197185125062183688890330722196556457625801202604325567110331091612147831194211895543022421851014837854115435813042931088662335884643124719756992913281354936667400571058962846964423726327105963636142120796555565401120250071746268148874332947340179435427105610994271475954356169572092372890116245955438088488953277315396924045537009079925511053338698125246675489320966519313656883917618261609424379594563813027761676550503181086726920268080542840466894748015110405809973881469700415014479767670464657865367588951288013389479386590909030188716987367860481492894958161171498548589591370520094488360420713546938735341581489575255380512025023293161335486928889144424222437081846491523137069062253578160861460804470864304850483519519101943484885463984579944965480476333188912217525816897432742450955185206042314684365354764045292602563722937577931200862132139639070444182874769471204619516793428834108682609482946188008083876859706593755217786913632619392790417543228925396900922429325807485747536909653617875300997826898026478379696468740338605793119737361203827122778902991094687010701918839548399862107989510336397942938264222642645609624751352590528085025835142164024490585332335568120973222473807193699821131236128962522661014344985365767912697797427650573881071578545403021140259280199221015280623992584715898976658735587380292656122794257485042757020557715283699508292845722330503447679602576582787815053634575387398861757362621117676555180872521492302588805251930530216229187398017504990829918669527928688734217870945990093726431392081654918078203848256855246501818812457740146761428513068554834643996543203783983077172239214273863238745354749557520130192109117571893396004936746749215425849995550058058170659531689056333020296975970706449582982410684694168808655227513905402635185451407270069537790355532279766408799572725847511928964365351293015794405755109176049840286891167746854944612517496911054488661148815781884730617194378979028424773995114395905129530244419735193535855471054447132746787117903764954252732429973920543797850545602705583628792066379432403977940394157589391865471033541688364055384031537543336288612932217563340677446015815541376803416507671746340908879747599580297217889081979345634189773653157328032061425137154666428037021041216229500970473947679550199900928102013167252751909278622951561238102888704539849498132690247605987717316954543126428663880116417494582570961460822441475721161168158585868775100156865508318454421901834560404047173473306725743104884047162669223890350965018911637360353414552068045970493037376900494004599855249313143029963124455797454753442269892142540585235747515023718500129550760412454763560703541139406643197019809566852564089573195855748783786810200226464099409684464479650486601925864975590093726214960181076212233560090390706877223473635127053238371022309478275296139134808254018343393646141739303645903261395370547655208979449919787874426330966357419619096504932019433003619091210312522760671292060892539068569943973988682759477821084076951917018009463474348760952522804072965310616655613700609797143429196260371331385472100591493496760841501667728029987949676340091369035363864545598966609243463822165628188553011282994484793332499701541963744854052091615418789642553842696073863141629342457716536490153569288934041195103072975988236871855828104593495797127449641031767126860562136998026749945464160960374317751712356923249536337910695439413578321974002746418378886206506123010806684051833499603583804909243701509137377198368879930463989818325636285913649754225076064085127289947975512055182782529217104640417789710307509566806074378599048262200246610279711201388572918450007875289258331346701023417338755986429332677424282426754563314287108051674541210739321005287943315891263827285328520517212198119659266202590424827484882204276960406746288384548245918226167000030919343774974534423711464858595476243615400084085702896111526828274381476148175853360705579079906521350912539280607596678300439401881904030840664128091927137531046408656053989055528436782470466933219021094015083215198653618236882828676825144294336490583048738108271979412549344477525844583019382906815855631698364404327576669706269670957371986413663242020085604375678605623400265043680682095407138246864836296336775025363648993363786772810035230767537001026649879989767868071347478946989239515044228472740477913326048240920988365782471765344894506602858240596706327773042077929746198144142807476342378826111214128240129898449053116527394350454894007627152341517088635350162765726475351544567695447970050692432901163960549175096762692580661291884771822273169549870485048665441365172584734306978520386053998484823617390483373307245580753446949969866264227159582092273935937544345873617348830422915296630810065066439461830745961526964231487288158919848886471916145340423857801474349727812962942876450958278637692102276767562644505399473508236367037306776732656044935906344588469141724115735457102345663613738446922966179513523634528828282779214341729139807246631606971553589875253501829050964820517790343855525549423787437056228610834554944990479840986276333244683267155476168957828035476663558298567013837610250171093591205215214387397689015973049929851962231799184964025794301301492335200065774661113502132944988164765748811580833749988327280033067731306479980129486615287729048054667812193877519300197794457948336500316106572433383301177134507923215515924813653501792014187322591790418694378120717889015691950267171264890125117436364405927928670350179891894846102924363979784029772825151268649846625570295931615460255356267329392699527177126905297041146097545266567987469532075511137118084276476349137417472095570328040775280316391426304006670669180907020568539612362413435580816833682669069472001943022005304416991798523733363865313873495269113561408502106569524027414975559340273423371183366095527265862169430360175309874559963841420657652557521025666614835637262633384820219473234802035767747133331780373194693732351605448286039367473412323425128941439567028358777274580645530065985444401297124902011354094781465668017626015670314734895694173314483058918543111703092657944768348938747701203880041595642982486787428955297974981838705450758777180707662704039839724698327732375168151461860287586142285630669459255854948349403766081629813753143808498209890007239241672729111035582906160267579404163012407899864404437274311398919251156882355068248981868685361427682240554683863958931347569789549457731376323497232035626099157499312566339194482273621788517760680858340295382145986678824946898033401796119391188857476299821106587180582681676936908343009198652635338097307850893010303678800473024523254536735413317714616432837207456627683454801881086032836785547732567674219167936284193992806651209477432150577985305829948763658077466284962212755073855813740510267596994975461758898876273867489671778665679310022281003659901914654282902758572001035111283391993155840870643796291445425955949256741113984529152174742700345524104063126771079280699191097740246324816388830690957503859487992322448870771083968647784580928840758364717063691008789745763801964217291895205772218732760749546907385498001687181987787341992884141332594046792912845860554551162950177354325493201645093727601350824249662780404803678532181562579093303544202522051322768317315610877309809637668334363362481112599143959496934396340104896365917968142200378897875689037427627749721028696456299530592038254410574743662393482455160248641523668251074519044947765734485210385208192962439987452824532144932506350932107108292164528932825879747892751428974249305853697432093647291218789178500716160042213735881837199499691097648720128449805065516450328715533347615420815086372904363311304279160222043803493777394012378700774084534993623357347955908833927167115068993808092331476607377528722593595516060982570463823460123837647839251351395002500183859546410484899223601639641117757683854620679034445592788040252682562644717269214427494010717877895155294627756486991447611634721507523892956165307047670642380871693441533812605802953143532698830937920874256997824510081152381332351113442661683654280214351137921340795550201465780320763397067680134543864735249433414690419703710614183472007089955254220132972717685204624044415361609113541400555295062187399077720052380049773940266310221357399344805122404455837742935088555517660863608248631569593254152676936865801499307663449948094239963376623140378618353439286356271925931796520074425122835969922445356085611958153874599480201322057256720115542361669373786624188977161783950892458883265617549484780006590746214179571237907056449903085621521551341548999918529834573411738306387516779657227881833984766637037391999560123550068982603622914976841710244836864667663976595799217656336733792496558930183256603743117935368523432687286208586491057042041354867256801313250997234832640040801569406582411039821460163735688130846960966267526381084451377618256063542008278975199663126948954066263221900662055246142941982345891676650289335842181609694847214768082576056129739911495729362412015382517223872524474489884928266993467835354773875928784830003956414839965846536668340590382059430576867500136271666968497635466646474822513793881801456497015113700213084747626217035235322631193165569184078323250549864630565387516145512830737440696351053597166146676418926729935245972765075959305815321837312252971373703028924465769978891377182216432912785753149907085794308235929357863614572370165798720908008713452258027413974998826776964564029852164957333741796306637850999400419988480158946402653156661434312141462253267397360978380253371043902540632018919485759315511996566323146580143716974848322333170176425773432317164816121991283926978402534305852685066148739795214757804445600078209503561420272966295300019635442527249867917235710708764421871549413258935878147189075598697425626608759222776733242014107515255462505148170632572290074888094864293231409598689962881109401738500755934416036380352137185527603074708929131758536100889256956414100955011354836402317680719859809975464848716937632389562088697615574815058077709352990056393918514557512589664185635913688867463296906311645985113185015756868431214073029789119100353489034468102918483760616303781803870862418266885723856271911535553282271511126279217918113427786292318085292075510309568216288644959357824215851621606056625741479785976726588975350667189458528521392397344058573807593179309734631697024868838256913813929159280907368495738303728110885123991022890604922221218557522068075313917328929784058531295282224024266537859608948524681549284699870720331711996956820687102491627986987648328270975920642839167953760582738090118093159734953930684432397235967681747419632559208379465332324094056117941226421917385891104219434061648937153754029446944089039675258589385313388465400925680840951266909120674269186580040685167020725546078053064637885269172010994831420172752908935366188700269677767890831183121680917912585257775122104121028511077466659357254361705738087185313664214590835069967330875204065448153372268440987387331083224014697868731990674617994560688359738464901934243342866904505768080924004115846858846120833238538697100570147402991963242286975091302935652143626033757222109340157656327348813466776085987451623363193556385189963436725532785143172842308025954628989974538089663489754677508485889382522096067623862703095435120999693544572499367737491598839508739206672522040574109188573332013478216226489417507450625156763009221591581509093166968502212535944072551063651670920390737019412333577156486042707127639754613679801622015940604331089608524369083999425180189245184130540509140049558404909785033135546044606243221009101884044546744129980725179324803609573487777348459598564966891819737017356164984280615657901001663745617407949657324101980171583720528319631522994377812988910696892514264770968701156235156085072541577050842858449746712849098201242588680943895325094004386990692629673952432869665728133926288526062783555235287309403549498125706757997509109479808207959042774039436821851211788093602038946297656896864957729597956765730893867061656530027441631780848019616623174399355852428738883271979805977862261166639077983657301244010862965310331598513101184892480675351398000768171608813429767405104975383283590633741283625644816087554468776764798745211941496178865846677961267189541752889933186290504339189305728830208999390801223788994832780780199156546449907485080346763466156893811739298680047876682935125581869844721719697876743715764356422113417438576526708256558155350026299819723424149798306941710133808575908478547706118912435961166532437849040191169947327477379383218461140861624643564307363933531051577841641635631445247277337083603720024349609031367212752340673081167796557464502358183253555171068560359618968077441925416676167077671354801554363414737352372564947389540335381741362056111097596258388091536442548977725789927738105797858979577563402042398660644947489644663068975204476872175207784773005435305650000935970284235406666948003658836750173186861551512481602462387902225808251868283370591138503552318368975200441251960142045399359419589596907871185381280066292107338402733513653754048242452995092425430346025932301203111806951846205728662278042973099833586641987283285078787221501041457486848433145742060304878001722698528745579014868389825048621019021041601113977951211063185774189710059545008480949871705837858890959603504046799167155523470030318760545292709263425338137880549908733505592806449462445376334117817843193767427969081475544134137085924779270717619337351065265792028084788951580372295570923983844380531766472401796421352631100383061171267507734944475318727908485731003920728924757287843445229325807638734456316552178866239024067912934577657625863159775984122719252677465486874915737275990111543832343009556900645694509946233484462943432599265479864108220844782591798691614984890966463524213623942530140058740052346351230507833579695115617879006268333217925989499297206872457282030648855433730010572549171037755768659994291423635070632923068083124611206272649152580248370052208848179680999965498938118264088823531833328065592876245186298732094315757218466362191189351614362664189075817868755209050819159005301781149163074666448488478351534078539684989314077664763003509615878267281711967383618765748288202638925285962445553511087814792120172789755121456047911547507783416638436806021273214063311061918814237098352033138779714753267244132905924407544727626411096206910054797904840677576917150681990004868614890037395519442402735169129279411079089478881188824176940275213815535739494947924162285624472840622089117235411742556204319558216178371559562356202372120332664985036966956600833490349494952598801470242692811994914939221887983452668165697591468033149374144865759825554565943030062713648937015496831683198756212313295306771646096987777886117839628550068393836755390152998629503492534834751549699461954657672680301995315669479879622213005889145797805465816829297004249031866633923525090324925560231202984059859821352808878095918544593805024421361876474474813778135534757052803634357144112987150073897908732290167942996827342790848413022496846598024453428746811161590488071157050606639615191932519972211621899950118315437094938273887574554529762695243832719747759906298509312218257853010391413686648535596264597215315609819110974278718633354142722637468982320936069140240303139807442522459159865367946733650192450547625470483662497905291900104236949996054572623347584827763374669681151226027227925429204168330554558937657936456058764258092554865272742418957784455545986504315514862752429291221370127114480346828124628626042210620377759283123848016436246161654915948799882341127450283189268021310082659193305167216684681658771210749174112116852681504548925546151664758279961450738634688216881452264608913388197225434428863544904624925210585418498051318670087784242503920109090855865113583924280998394607658193548513575255223971975559577152167947305495808075966951582743002351544679566477276305440312029251802628935250702477501561284290296933197085894945951245256338842563872051892412370392842261368576788861479178774916368571578421836401175275050992045937781496297031810892211842095276377072574361689126467546531684428602480399855361556125334902747837938689147477504619218571246160153440575504872932059122088156974449933646414017270509118435793375377519941303084341053243533908572630064360721892197403181310827477880377967892296547886291828725722257647932348522053420297251158495399199264747824025071575137365512971232678556432631050734771454223744599613870704037936881088784145795557522570182866735391532071450967665254707207384122788110327719964259136650666193126589990379777406522318950554748901633438540508658915847384624894903108449962749262375639083704277526104352147722900162916655062133278986159664403438628341590211069094236805239486646650099037672323644306365948397584536960243119024669066194495416273453369397095555643075950373876899281917064723280533971173945589782649279864012608546064395341394864299730146348101942222019108146400102086255466866179698131791506985149193738760141079670056418095593800971394495971370044099707809106395145761082837710489025474099387678059704314824573649314250518693228035725391726874700582015471790431719230012699434895700188760919767761953247906353806413236528372991863120839172576063031446212432268844611145661531853559794055027548000772903004489009159174290418686420983040589868895733928398026169069374301388721090755778009399881301843053773933895063340608486965091252164298875038953820388104677602435349045498775573352811809117857160802319929400227782823199595038449691571624487696532610120493802256706666446841213547639628886105521514085584968848393441031100626982473543435658201218527369212869953300506162652051631779272732591029277851902706207596996090875053657693691331902819131273468543315401071174330845468843726614395608404115297348242041601015456512528811222762329735663163601945121054484803055488781857005691052287505479425881708995718290706034669633392683563755131140476809347612908079691184087141982644361638432783007997432245634362476456011352519131187798694213907341393165052100377799734171825187615357141423364664544954199040727351700557576958520173444635521011057969388738826077092145969663287543031730581820345234837599924777915952776092468707485476996020740299745113684219776532883908227236195171528473116875400653802280478948682803813137528655664510144120808020401574491727067964612716196494856505402328469297338024492428101203014950568446052985320431953213381227563919138770211744228625471511095609155962230276668509445917149288568733357248874848078028339331829658932914073643532093851958569667512586408392318828252753888623009338364079733177229867501425280120454172951777746918350984013111691369588899642627541000465640828216165586302649033181021296176742568228325487364116494910568734985516629086609717763410169080633156515825683061645612968766186584242924340540333991523650731790154550538545155393530122212309897526702715332333711568354544928395717565975091798142758385809999815909357843645974113288776528137293035621933072067700013118184758483340760305510684003337333616871688558187954347519096609153796651377207906920810215915438136572056781318771447143811100906836916092418729979455144653277478583982883633656560979199685676186265666233179048058495448044186798331096363452516657902412632833256607071993802813631907679084098148035819323630920925534953423866108719140454496845371938713936081300632086665884374274497060796541664061074662127625913207172973039221109890291986906529073624174560465517021616272324044070951791538956205217930922194305005809087300327862954076515822345980909318540563489854496496262481737196298515526602882908440361366194733003791748192170646981983025485375623172279165710152148620297720205911236337623710550489814012906687238268634358909298234249121534592569921875574965865548999665345801570791256834890646959453535657117371590528487988348998626368810288054297686427108413043474925954034448434557888978306652796607613541034786137621938379522125821434347829434276995548393962935611236818398135479842702088128647724793172422777443556730294357434420901989372746021877230972068911499275676839747626440684268896761574515849202513702510256196383313673806480315475183276939384611793508426395537409506513626935110513797878916626820896248437932186686305376339009178538719584551131525454034757605604800252625175838668727690509900936268252221497078130476506712820934734301684963994890720808701880566956421779549284899572369832524330755971886788980383227724378270091540188836859104531931515699874959842445068248143668812017770337931587432759993174617528061354852298287403361810869092949192176387665985503447283873731550617522504073659630898341570834359809765338600499598822231815897234993096344683741951897974952343159092847047396636117850773477767241646962754799824618241379972513984732110566842155100113770436259712148414004958907973897587560960795831041671105759682267946732895554080657210413917805522273410352608877727263110449794124756067391288004465452773448780750285276367594978379919051782043555920122287062622310962056793907352505817337895317512248628199027076732068345377176466034292584922741999534762585950162089459053339945340791864462090038190568577185889244807825931838126116333706815647992487611382126762620421011196202591275249246675256263451733143628648222081926195990304830801145157538000875134647293728372179933804714783156996367564112136742940700984636645153784442878887721399963043371954407104452645475252944560670891850522674025234549789536537385722221499560774824791470325547793285392630422792845429187879882169929954126577490745930466349860311127003551173712757764495741469637659553045933663741983511349103655420804499648700382157708605810628545048168630630777660549343684457427425226592042673325773413719137317049785763829506631875924898451074553588186602683243809282970671554629334149434817377279282596384565329944989694605050965031722514158985197427147653822449996090797288545072829246358493045961819235621225324971914569353141880546530056684448203210455283087079870078322370756229578685351680560484838794135001735082245016142623149736849961309717313607848320598564417131038081154784940950481204259485310491587735210673137923822904432026442923389565313151074474417415922850397813379311810576943868361131459950369187559321983830717050071733724523960238288920536735764658462756527557052997510345246850284673989570422849957062841456087989026193687769614853685421336303305604935306559897596085106829051965021025064858104224590330917976475521061707319536384056492395337534435672499142739316374388984630957267328530553806936901945979349714376387050835405742592535447870745658153517278749186008237461311058701932666184031061417338721083394444723826017100755191175965171441275656856948051727316341266425071652329232090770563267128005319783155393588807210233180886705332280668029570182711514932054689418030578523126136450067932803870595169924460319630970643387214080045605224710606013808714117363719395547519254554322728712892253706453350111807844257508067505752950757957729985187558111897714110387245908440945889559244403295033942032747989030535283296856924068967462450855673607177668879977718275091034945137676673546606106495824739821957400993055764488112969746780815466304246814654004099559712537942017456675746724837573755889491256367297372251840712977429502550870676927248208773664031939204000505976004075961757228745559766211339395856424649864271217732016491052908720389961058470184585067978385603474986571580366091242228450349167044480555285657491580797056908982789957790769471980654639332067300570268283488601097401788812299672679488902715831846357650324193941472746962182111148250649384853647190083235487332502683510858793416284381042909656770001268487661491387463396598896246272699960076482079917739790847870900498703440392126199639742718341937855401943015433889799499348114200210540001853723872514020697939372636021922157377063531246817375890809997422237119980032206105003420556029628329793526251583600908351572685652760561025264371928081466439089045256085998684300216794331586067548928775032833687111434130469483818619315604156835429175732562684750600818262664057704314504445190647482795443132690610647466721886474637618987063424216696755331460009620819610494752004960983191819717814222492041980177734025504450762677758908073833944828621655077099921931141260229443845683657083636747236942637440113322154335500296360077254709359181364820656441762869970627117538784141593333051141884621108571805375146679691660081655376295914849462541127859725826160540549725488325852856083368521445444563332890761657634430277742718419039211492970447300780330650083897755754438639903282416178856086237270764534746331476381188065535245506951879349599952747589180198288043587862293731993815911888212989329882201583672218691982470113617281084953071180284124399441843766850107268047909463022196885291217948555253126142427568067092731877030647272672110889232716997065562763723566412360485363002803385792610168425336448785130922942944702227603020503615968372650872094807026191658160074998318487324586940282904857758814276436838971555001298484954065466597347944541647170186220068903527800616579060093336535306723854413183821511463545798578608131818545219586918955614830254593192096080820197462120256773311947916355815870355647359146087653309896829188698797151275336122722561814238234522173548941093882070454341181349682973328829922200581641969225777175546846366502405903348029214022672632940842596748176335602340292232495771953627576201697269170548013344113441268049634056290211912268766863004672660144489667234132617488325447687697095458321209946201937600988146511018113979486065886688672024738049889078313913286469873434173674132629602132836430154874705665420741052379648384675701732112398878894567929146588895118425963850879541203892816692324386084969159809221519493481596837859063188524833918669369734988520438300088437476541198496733922937295479563520658330618343689076449476600024188660155462304815359132849128961477451266208476609026705763433220638497356139856117131598557803655421591295003879360567383679956693562527649304950245618706441263466330772825242272742460276235910515502654986570270078260184287517818112861178362784104998107711335574888168366003114826890347736130332405598326899941965203685103453575755154105167423477214398582576975340246092973318238211238430864517313888888050714649081885832086307163841043845457586101307958378951017431729179090546543223372414460264710150188115643371809072081830912843854069584383747968026151398128046166496279748480160269967797575444749793925505384085233187404477351050656615842638392350676263359049174145611455190376781832360562807896847929059036983650904014436356633828087718074712286197124588285742738635230309397957791541652195723035485568825890672558449216704562294090373430715129501805700696324007479867299626989626362392462768055253191481023796522262475597189490109020045285625882614510078347695752123671110800146726489210620307528955714341745302290181091983654036320329908900481655071547938193367941905898028633750001630628346171213679120485094782753923865099424573881357466893001532639378153376834656536170660994365707929364713192459763665164203016238620451877662801657452213890382411439437852507646161295188717298258339771838449350548969594371015484811369523093568652198790867614318542270396979042806039949262350670887341544039431834061234343733251530814679370340666611974528790936876229829697836855884651630276668011528552631098987428371114104544463067151339527528782409038540086724317306614187545495486196151698387932510283592788941097499892576031323010838029554869543511801098603080731429779688924395520428020472492792282885188214111863185242152310925269596170425025487110054307595937704704647922663233565744715845673317563814289231318880485616916929352872648852988832036465400355859551321207334170846160640546219179571450267593475238796660794318454761992854738627150998966719929327150719184059883066170529086693622356027759282930487763719009774073745955545396114032394486210374770091562368134962295965001845502068561325519070608323106862843081908851175079186481272619476877446753699126891587743093170950212812192787690272425751053462212914574680963278847126216098206025696460972723182518222873879062836883849429437472828634559629521909316989500325265842722207686788074434620471466825485866784910532090766224569409170813982127665706854768819869026376235970667454618141892547422264530970698867386625033271978822861413603074576682836389929374910276627428540293023604004660222427834552794727703298181647992675249045190940405676195869187717213576634272449113163093096671181529356888084572630378825456964138213659978005427804450686375053147241793228924476184669258644076178200632611325896633622331817323753357924470002062829618192795151723204950814259803833258430021446292762496047159343819498169818680003140502673653908486531273811954048346663128106931641457510237880837183010457873095447565405214039481844860103681996400183846955927408556076577082222777794454206025123131311588385554992188372980932752077537927824270431646827705300317816755402104804227511366967534773019750173046857323028769482862658686044157205571089133663975888212863511971750816053910695586961655380614621004022176145516975991846931876027807249948348149643173253132321603222517533080644604920556535739583570671251542515315907194734312087402823026305040159569937767780552039159849130052022356567507374486911201048203086854282317403607892801173356467184384252289340285618762483358076999639065737531995474224424186267929764114834182725441224485610798490930565448571727393406130632945883043552802133679475577773307013124247966189074215400874540027571755146419634163179967178329208057923856087603195534326833150021254284994259873292100226702876845342633343882092242596392466305257566819357167098456436801009118133174750827860910198560901376584880538504900465844711523803591827753696750452418029049685704339414957621464105905262587788419644370478568084360482470579613833247868985328557776123450629888524342854592274536119807555312219233516802164990204519517727611781758486062709051606677303606606729048346027624770856740142709630278587259898360559531579331879891860188808454596271686773418378056641381402943809439640356835850454035048522281123611711418734345143142311099814137542766233168977537381538701441617790952067396398851009631461552850870204458828792304278913675279288308170358192044013503596002476277383216464874731920257131231642075288541158954043110985596407531555360541055326511550410833298718368608954355778449005010153157453409906990732340738212059410462492342689419527666008683114203532414189904137383109158770894331784270291386170133298590402888123801178409396095956040007076909144292543108553999958424812241898050458111784878237902912127157377749827514103773992690080175538393959276223637323391626155847670194753581205626468532319097864526580998315760260249999245101202998822854753010060815595687229661547074786588408643462776818741666503365979489270638474134855543337889824594341396421621013690571698305778261827924442274696164498210437693203015534159043271923394655483055015048443667636087307803172384994416782899266188260073282273918458399805071642846384264376461544886215306428146871151418403218273318285023408449544987062089166242911950873631230495962576231656257096694644970344731455503112731156153780538593922324031767797273103541251680663762194172251157210681955536503966814487014668761354638875276099394260920939568243841748109200485673204264271108361542626341320120986534460904801713602085534321653832015426605723102889690988527832586975982755039377505513220924787385296022651981800405473547456278520659165298514237705391861035701667373276470801173388259211725771601014582130085507659449421339922778485435854408202552346160443887182189377396893390199707694012395489833679268901067251174090003821673237407970017948881869646275182014114069028874417891177532419289338872059021019674889681529582105989896085932343593694242441970342792629605197344569189785235594476426598771079263829227906191980841947362327776270829503799976547680882874954693130815367612744972687602045389448661693099743277825374134010322292650262433701917265508307574092811618895973036802373616411055345369241409226288126438225129729213524043035348193456278537163940388146333157085045614488763246594964262489813993737222314802207407631748856653631691387723519587474727872059258031203708577786396311212257437987773849430576270816133501007114496461077100382630801993284050008964499325441755339649769651101615142613249939091781685513804714818037499241992088573984602716221957483323454069183049445754186057783175300558877198146156349211972580470528217574857893227628435658748878360513947675503006624462731947121993237872418955691722720652825819019327629118540123680568771514621839383526470487830447966881936253252956124941666814096688131370536341865974951919705346109749865248737715793235870646410450932469243373210806069295267704747357453977784805741754353981139360609502393608523256123891020100715709622234272225186196519807891340804418633016855054049030179582154847465897236120505532135365635802678950938275495828670747057508386716346714525139595932696941905686853751154276356239497112652707239599666892941246608374935290461250221873894792181230379743509998303902485679117244435609171895147161015130906493045454335655796922783849320073394970921880202325623188536294261574773962497775902823433505166364763539281818953729581525989915528871792592535053345141582948125610179803166523005915131041711563848672463657801688583458741955601069158914826362927494282533786805385237186840068065423027135665989715777004190385432469223984745416968324547017032374377223520795393695507639882061847206119959702244347480240329676705553821187115325172071353000929894186560541997634617602822668075888767159458092813404802177823473945397546079736515743015843748000159336045043797767664965696500716045163425956532718234080033260190320094194710634231063492038296169820553337691950279989671314002339064435627932745944210482964647962701773652117354181282009041833352021092539201655287748198629753122062992741215227777464313902747376977753050690758466145712412319760072833892169783337524711585453848001104695895539869600803647078293491304888159909372538433224271650425576666151996916453146590562076239959297018767787857227752135380644398064325750536056165245006638819285954943617875053816450161108891258189793493466641652980333565174295333722172692585784437515791844135160646274443910227667552134914042737433549156222718408658589263379159697339188483380416613805466125038398516654234445648313645359547884585166148447033523482192031862589438196925644562459466322709313047278940011205390045873833001819316702519181110721335929174164563901279370705759245627427494769027838406920739476595408964450657871493727371198305928184293267531937096907276424130830678889116078158442156819517232382841278698130362981834224935139385328922050924538444785681666859545972719320173823800398128847459551100384414054066981731278760019549090971673152816386547084610290749477383755825178743967074950075494096905689843516496487521918099958457111791910012004928081682879363785105601781718829827063617269758829311530870519480100679563027209168755927675172291251369333618555360739166215440272404116626897976289800130721457973887908295960054869250269275212919147793560115725271784475950241975673147745953819436486200990538438590585998861776124104134771880579690901857364425593557338659475040206925658428302039126624763014093595412212179877911958608295780204285656634518775881534586660789229178002772226670831294457941898853364850431653305742004753515704045643824264264300328781543588758301117395989051872548375578868335603355651282760048652418313810906461051001719093929717200477530662633389506881200901340619323555338128755869800856765140818267289645418971836892819259437791236179093485995620863615469482638172956656512317052932320693380628573745671377507832447308133210002218614890799666082641208247166729436536686182196810640181248688861185184812443189195880425806583030340994650181666054754221020229726781177190502850336798161376251492557972822436877142715630568374828034929866920756766284494993279792150155396200539309322612183470526588962124727561262768059604994497539728118750374184682362979163867340866970037396580894067380335634801307663432995205614365950182749435705059498930315756796878468557900127833080161408928279638175758061311850499341446559875198436454917197549603069100020390528147860220776166577613771857994464483919905445052899501310551418983400296031996273235432679319086103870759245656538248114541338211743197238754016634193093169749876741712956998617902072634085316105643496569362952120887537937143682070420565089503946869244118801305677348876376097847087795514978410178911792468345954993661330622000491490349378428701572795942697114037815043754370022917307320237302353041667875891912117019480106333660969621538736284748886412421324544367455446013717322191023037382355830589644564685321739171755310530337503665579026519090226024612564908032288722976963994888010836780387335298074112094151907247614715417586066035010312592313312320154169431790911994392464332606114787604088310519509881114162727400024671161214147279432763791402433916651821221446655478313626134961987158251297641808543511572262781506788508882563054880267796982210116799969495459285324468510970813047356487224113977428662192222475507992815318781822835561269310127052187462058230148525851949453517544041505275542132722101767739870320327409495898899043101728840365018733318766459958666269142425863855624452410888295814746952932736520898916216051176652839130446798187747551047127927166571933690137567759238163073760861272270704744417035619007143726111580572882556584589345432819464628307441329727650177216337457170058184907866441473419680989466952115096108241588874319615100645226972108954766979552471001579800413090594648372752161053798031370274712902304270512437025672347521992307932674561056681623432362685997218615098432131921443933671588064767652282341242245974966060906964887923745847358140697518661611120079147884978479958742657362717721648892104876002319416089369259185648688802023066064795750702287089182709710072715151901134085996151786502459261627439781136928300695612811801370607778077362976026425593030924360036052573930220199150450807166499559454250063718675545603295177133176811811737366837714022934018775899387619422432792354428582270377117476473202524323909275385318636699280239041101911157693247401670065721661649183376536532473726434330969306211007907240288784570949918714322598729494625388044075301379926933757352824705339362925360825972494104957228850408479417983811245095004949797865952400525732183372727983564283355350501427562041890593492815213521677907158049298708300236218744591917106397573263994429465962872609332828538667267861996252145922570397088233116651961680603321042862560390607610027798073973462616283145621608863785377216708584681003620124716864154288927068643855159849185767377354923063071791204948692179568081188658278882582755711145603802929820814089515276780264727121857973813523110658125480896176070194982220711145516100043091646905422914068228557880563757088817295689919415929168035321654395317010125798851107776229162600901340892896221419621604247891320828196741234489270064533155769861259918297857684125260657677436432414622299174008870138984178555623942927829295806549188347480337244396200752168633980008576915585222789218409348158012247151567317487586015725189516771085633785016800228782693517084557108007981242151157815424493782410409029170461372266728048550267583447264954119061713685877809391942931248865030783822274322027487722750538678529970254272810206428503882211832591247117710516559543876322891675500837877287670321255049602650704792747702849881961393817293575362311640911318947192508398338336635671722995314183041589026714558359026141306550864841956556894881876046895302058046107691330683726060984613275133792144703011255905557746788174464959011369782419684550202533154141390126353696308629952088035796734062979828610482792484045068645849194828947554837384541815147448115097013885953128735138103992380502702289463105787879759120265232982380480452607009903662003531820266307194273112812575064248476264814058057066497057514402165352249817262514377356546248731116141744817856184129565620729546914799078901991948955542052970948361143195617109230160677533347839495383821763148992040858519719944872074414683970167872303203836902796754943360847325787267720110178797198409090526267732873618593208162711768094745366670744279692347825413779389736737563719064187238090903811639928964626658076707402555599621743938314347661465863618339490000640286855810389828102695946233545625627701151713629400857116436704824497660032306615222420244913973229674566600296627123901752721049821040561546446317921190869145026024555010528514889462359268155217580577459551744297266094174713467139788767724889413685553390043597774218739116531615331223781238287273906819892372513409562286763367786275275416596902453701134728854527551052120889496655784069158709084496994279514285434509291290446477504035611280148848304236028562159099359788295537804366550191515727059573015541741093728433430158318517940710725693879455783800961032680732856195281323766280331396891367108451664432999719244374362515605768117483088367391258219047034077343483983504895934381709910240552421619192697679732326659076378606707576167862770261860073132579470527408025723395899665411858509535355033713555282779980369734571558342663951955050244211519071672968969473706459573135494699845021179990776779357889483542795914807455776873741719141034623779019380583918701618995459242147919016815180697490204009568299179293101336788052007843270605534605853770883809559793940272767897599547236642630650285914741050447057593684091039358052484295261775839552267877254576456206765721441572624343435311394770404980433057825933657920848601114787013757065468133292765287001332931711990949354717219964873099068206659036478729495097596406827879496193842772878101115393024850865884108037128662333793712374789035387433050439560419760865711693725888508594842697070012968733621942470493141315272424508969890017587279210026015046097809431181200738710485203838975592797879522252318212538935369402062372101677340090270437058828279120282034964797605790873034263561260761677369939228365410434491386049576344997902706379796148238249187274291790309894811919030720445536116038552902816238929410882281376416907831313725535746770076642993765398373379977399379720487795041737591904009686151003431852334040196964580156433561595427254216930226287503833766417178219511216007190655143241902883593307931892693475096451786478917924478613092310755064281756577209022809974864482003919279234306251811380643905411534584596956420729507314878607765156073459806081477765853245784365905932739018583298801400066931741788075774906686219982752299552823976617885035692722004756659037630015657126747851337635882785455204935594397058776178491434273312611308469301320273192445036796217728390610762710450553526169710829579199053318625111750962614872492589871898029355530811392267998015541014865982939094800185898690580260929986890392349338592444184766241719972663068055851119168028034489607748432504784337835565098574365361784988714635136087688324654691113078687325762403975032001234028352219467486716700371470928610231063634155345716584223206921248440736015157142911386718792200325253326581701640081706939444147526760833039420171389167196139328470789498694367354600765834580820127636558099278391079374553521110124056980862561580439899938324971639518894572321294890491979139255853505012943774045240357012156616147559734727154817631902478628654918362494612755650487139279202469251418089297036674360485475519692341388353086892539509140865767219635364890711781808731925156501572680391664367141196850301588097133793036797667106047848968305978204551296116893931640742097499532312740852942335027419101188206923822622304719209500818250767378445227937012402196106714295209935401457159674169084749304191816531089383101835101790476794025091966381845426894421000025931245448222075455697061786948272497787685554616517636815301375055662816652153405361193678211711474243249457014142252099847102911061672412223482716015532302557754606367560562266769011161104379687783595565062360591958133846819494071954188604587223847116574747691332090510652484575419779733439339979363673137989040299200642553294004287897540161525956315169862849970296501311624269642384592525696020147566199297665240995991388917849981741010601716719219767082878584191487664890585574233087329058829777079710292436462293433383289379142571442133195577424029155546703962237631885742542607918997198351084524382636595570858348351817960423801367924244609910324181362284865412949137738613250527836509393845251794770046343864751220298963546336184212716490063668573714716854989437761193088557213124340236818549823972295610947354015244568509568864718661310005354393397541114348461376343618168816786216580027319504534119045542411124876246801117923411415086323959014739257136291339055010659130015524932243108254008922722896687443894160341720008606533383315142679841301023576971989015756943615758292743250158009325378103138661544681887805317681984192442827528320053468477990618969177994615865296501401715492255304292354400202135705655053427024592606461833031578174475676139705487818452480508384210620664797661172944011643389932911265114350950577919494768056374467181885328819202647331245314348295652203450969584425292467832929839207003893087474017227019600232713513210559553084607813354090747244921410024826134756312269523829876742484874023070072781124995338955675838133764291055460875324831185191790549558609736508908643026623464497207969736653942139057838923465835156550366340779339047620403643197409600457424043376912716816075554292237501883798300935937246540047423453385910390777491592844790980721166399500846712134183609732917995013952174647744995890295448711773666609557244771258896911038967795701211528777164757667575896341004843981898260079663354150121655382314418903535464770693025030726236354023779917961479693422127456415934293722050140173750181089341090295636952410375089800185653463704275875029798957833628625590431733246015788701884740862193110473907983964144801937863071729273101670336908207416406249905541915445109753203378694768347480057002666801823617871328858845178582132249795193021850362151293974817919323219744709754302035235878899313961505470815596033249440441764824485416984299974469585156906437160787017393865213885742108706610622764283693354843478035278350033494068997709480824120965041561428608518377293201680825716537807448173902731002359017228150275249432871764120445894204959303173042486317651685985746364304573375050413614915168034070142382940136143096138861083064395378082060386757061443821346479982987101200947980185446078561662025899928231938823647961638042778459095701608395191981573831234209936236176488682221343899573848940253179463296071623196845465000331349825699021033877167225484245489324251969469728792435730093796231813509982152193928767322303487333709694151259828375003377050062390686734166193947889465810286137670156862274821014311260906639383174588658734650769749823740076771914622006894519701725689577998365480650727943851511391648619045574556975461517107755083920017835754120838563772938848807677446431265026158961091438276419818779514220802469402132724552204046445502330256220642494594323832397094577527063288175472915013298451127493974233785134601529044828153764453770375970161376390474102371015048337625285787200802846095468652934446405348759161913588847764546311080617015325534561083009965022630770776544059638316016553006524735100953271835270549793149951191824445292386404488537991328390447594677072013780848203521314106333458416807304012365474354088337808926564471478986512583017501082020501795744515417049149150686179649291100093380523364545070614169689990784789523641999636834976281121483485859346607726237861875946676492425284882468252479184726161330713451396450252210583351835610335215752127917015497053658514029956810069008222725066625123299671655200795600506040227032858190223469689878531536985939889132052968508453071758804539636923862973575427508928107759887810843969387277353862529694374424656508102180342231171563776582539553649745669329378836707838016013392544392052005674279459191881083582278182111517195073851751334402583530530296678880210412182457167470796446563954252377154711213276502066855829905349695504464531784693974055330354545528499236942536546098578211150167227369644609414940748103929271522169422991131183280072145496050034567636512396359619938679627240034513243495401425450525204744623250008990096406943795887812728880512695198246606975254331394728769256942964435498095941383679399319153877164546061790257703791896675940691794372022802284511199706850147991785540545285238430265934312021517964091006706288675316276410413133208997747711711326719834215214208080840950463769268510647802134578806627830980765434536032553343004377428799472094556764035917257285167076337943821402264961100804573291434345759373872841310081608482187221352256200635237351261259241245420371430770450368253260237069225308548500535296858001776950213365014215154115759214118216931636108169185047372963385190885512977661492780868108225244125957102472880045880421876218341750263231289028130941763962795929800955262572502941578512120908138588367604303990250033097770938674076690188079345819339292644071860088781410991764073561067405740799344403132971046026426167693256376983429966840256571503822077085327964022997549367485996079721744494914228198486501420168246719812844336794170839697198833772161141881140753781299412233341440136665414508485966091511565535608769449895580206510383318691320644926002103689144635802009856802754762971725752350268055599296459457456666544521179056350645987660759457026441993275297890757348844993695052285827824582243546628944177789232704295332989209959484146739361567248809373423847652439777454493417260838686747009670166112560192380065957333245030243538786506819136338168731242666446313093489096150114303537523622476247843011141658198536665486527000374449883971056167021131582560364077956108746262621091864198214766826059932951591069912527901715019912713547700457666819421066268754504486507426441614158070740765294022019163015656677852674406124450793724930961643866103262084568672523144480459053702088298975260683991904344026036741303811304497392808208056616593216923098765309662356316811060175545314567902284362120889475234458126996298079921176098509359375235356695607290155481713085065944865840508188229065831693847484629638550778038460816685048010844335981044387146859850834086998978722257201930783978998738732841794532677105473635255773377084649877515067391620058283599348982588224997744506510328112054110088387105958349053532082358900148996124564670470850783012112750732047896462176458343245075361536607824194209268205468769736867508694432330064912696011350031037569426332963886826179078247702396770205919822078356481764387066720117199758432042908167103452986033730686533630220692707212106082410111166688787664187616149266319143238360102116536891667355935300076685967816033601288076987673192854367345726449369621473282532569432590685409806025084574441666898628181264651981585387613270957658106647428169450695175467016670453687313500821993308242282840540409029043440783983143766960235169070106014497708439778638789021872710847064744878523661179236770516394391676717042349324997017922162654716552339276553253373102984548156179812406897735050999457005216448595613229586674513297790919319967558865872145958760840266538423367063597826827861524259485998292210250071536275518156596716569605451702807386024462658896212657613919856867338887239279934171090401152780833986028111531307977358960260612092719169586589024798637262292182555714709116040302949176349290773979460529427884493244086860205443521200591273458089545893915957603023266719898105612711508950199422313046855153847921316107691314592209185142389900766730236958658981812081063890460998029676888626309498458949635375727116560301762484055267784416046422660343248240445336584107006726362831676640795857999859184489717757621874461129238280167718094876004534826092007548581182906030852330557294979943407638081015753573649637875842762803793215195443026887760928793351289709645179161306716360714730297189694893799044440215740045906761265995452834196903026216181493562657622689812194179109447188047349403168605980921190103195674035885294541272006576912149429380854184361995485641408725534459520821990766226353992272118221118420096436187802394880393651570785652516765601976421389235686951419056206062219169774442471532357786038222423654316760739810700751318992010048708087755098450844380213706691369582221249895316453355368578547030429189620017129413164774414192375749899755357199070504856992660467089654202242707999658321796768836814843656372186514703336288245754186175191660588535684600429717819540122193021382508904506270996165759288332316825543267661363259699821216803010841352173493982047637367538518690050173425656339070732643456838421050469505497082320974756556976799285325341252630768685490514697688316393312138132682029841125390539864697110743700086216223702332922253106424985052161844886250053256512092904233912460984804187079911870666593919976537672616669437135278087585969648540916376526207345661347206178888384987436724916433142119872707292525954405336164556357782423134872989501872877192049289142616829259762791076339859103641192231425082855414058933290645689165374041669286422834461393943433743779147505800019955808848483914170836192008225670187746126021601085471807313846899816165512799651834267666219556085025453307281410778036833481388352051810120782009292114626848577724728711259496615129383639468034122620685133819352266447327576381056052854000191844428784219476468874943919197716364707940780219770809570697390126370159295599865093556029014182989548266266120829330749447340042908251008905773681477031055937924826896841733642782892640284212373367974258992143322702486951182964028488626244965767034023276437888137138123908294031311769657883604000631289891602689392753515256967978102784077424692874588800485814489893823075975181031775398937272691124324907346350995254659974768106011124675935367760553817817720991718063531383888986113555270255477847111158158793268851898976950968202005114663159750804988803079555408980088615197402685835939004147000246141358565585216274844950698623451120521447907955653171628783929232915828082175217942988804650363238887519345705063995705582206864650951030654778251409142583306062929675473347979052679356088542750579660484372511190373506768185761384540589342662412738302318518361263828819057357860409328978713284238223309031147692788299076855330090052586989670439336402072591560559916286736064999052704942448451298013347805132245051736907349306407103037810315884329880940023474041290517553804815200738106303660896302516346500230269123956639643560899415291321049006293807388595200521169956152222893975873308988981171362958852675269018152122352458221057378558261946821027255780129714579868085875187711982686641361419372826321616116080101412986699800344037381924120075449564841357598237421994127286337234282622013912575150633587597831827146669905516677098422279202164398907967726791687106574790628866226478667225315843835326793657567850508747220556342752699626891048699687987561806292303408506031971040003427308233414589490200187948923066557800832245066004941278848313664602621025457346271668337421296956703532331559921637116551651597581540743038995164457944957597293665908269627879063976253524569611490556913083188568621628456817996974347440346704222169061814559164642010310767705282090241494400176526056447489807921136030698764847780730638163667313297920949670673671972362487496092081175309596254093124058060058483473123307909481678834619775377101663083828147036092461865887216125723965771675155296218904427322018150622712511820305550050618793428267148260280764480068506621418830141111738543050420930967273087658513958569683235076381889908307727527825591652873102302108190289395715350412466183052137659722352685189195599008605570377607102244240887601239680680727558381142713076962248127786144047717741516865946850633582124901530149839338687875429978242845394873804412010298898033878232757915157194739401217131954104353151673228767895670412127495233335999830318629452212996556281770007133223039556183957618273449461037411501083454908949796055774830393638884739943410794770167479193978173747295768522990697051658560768724730670022898227951444140238543193418791628922694385588825293734848618939456297074970649958400879549499264493372900588176355567224199237486523897181687722981802734198378699546624080043130814872373429196378923016574150944146413789045104001412408481681398939347427413278262646002281954176724165042264446597184795124759729366162304685449966187465323557367468447266303159689056481467737940004045524923627847338886695741686435805659716894434156151854228383193802714232478098850606142866634881779938637195902543105480421416873720689393865484849150958042449222459269919166420813749529648830938825202901354399020255686154112712532317679910741907536651574058137469631941116802665458336402416915428563273156332407813624606778608521771407416828524306218368139389095395112144672979371401393980364713340172687928856232318255677980984581928920091575992925603200586157509402635911315300876305097420804161580552476534817415304554691515133797908621629067324834068300132792447359118350835290212347094453586286474030515589092649522618628503748860590005371663136094000722254042492625875802818720423857011257284275405548506973561264038495435915381533900650697867765994109859849851814054040199714782495647651131964061526275518929959595999529114908855056588567232373099712026167439509638761285678681520651993746446181043522589831359616703921467594310312468206973226287641193812783456034715001220734227828996520537557052888319211857796847832455466721916705892265635437474053466326985616096670556849357620824143032605587499014479123276538020003381078961408020682687582509385839808714764741976682391317990937760210056642755056341130992467519640668369858581729433148189098640951839848949459612342904053755806401682022739276039397580642459545386421374150783162222590901072637867113620527785007444318833377774784722492339488581058891195480919210535902711394405590082799608333235277758536529438021077847068903748163585329162754335552679914692816416884805483753538235149359316935176556807432080372220363585042913981401739634323568578008983600670431278329701876792271572053176802142593155299956472322938747036303803475375237535238574442059971919189408319811366229611735678540071007106550265041902811651023160522721309090469939332701092646698169499034340924413358235489127676236179361887541380979072292000261153383018705351788744306852010277781387927839499480894648946520046447452861477154109547802558327887960849278542841440313860994248387197518579785362790398229900955566867095455395331011171675936041039861089864967875475408102796457544558537351425928959693581684044029804524959573536107959958945617476172234387816991067480985818123632932601325495020846267435214826330528909840360607349196666735801582800661536247471687478648493335893673026649459095819201721377727074017006350835272767796327942505401489703302205737373078106233651715531957450206077687529064226217184634325757305102649731272908283831750229904977786576238748204736620388807491572891851220946586167074562686190118547451214449433228878372903490516326511626442457019234228769864230992420146655485803675476905190724514973199544771522969439963096099633602307284180271323108656157748966042980378311899604786148296312964992507115924741046905526303876564265583440288047632027700238070953048979120921892381873162236006078220575853193177965221977513316107239851314886142224494037476835106081038565582123590447642948632010704231291773273548716933699750700304860518322207952372364456143983822281822277909957829275753142127086303013985706539963159792852096049945285020943471452951027574610589625865739509335877576380705357413228095497827126151649799190409848850657802725700029799955146301339363749690724490258307731247412318550075032413076734289621237703417463405863416370637970109593610464101665174775051281472023149350650125585522279115097369111596000761917879102880501388895727909860136000606043210967145729189733242063061098228168628029505745793311936680649166856373020321971474871759757471395381630272290488345781946446523915591228809765013825568969715151299722103624356331236378812626857977312801848523224645817058575141118335910147253855693716525656750807446643038410720684806042536882844846809411030424768887372772424820326191358288695198051748094810780632304975525760512692532972821597652250403657964159098782829199498283203478355621550040538581419974886789385909997687012396966839759219139793061608693210654282331388038268030885196129260941315559182868218048832892175877097946371303015528229162140000790924565867361810961613120056546166235915047990018703273948439140425394520595126532848085260963056293252048259856844385961415458802465363687579837920139765123707067773445918496601392782321177658878590250052009035452583002077721979421147310459070243878865378474696760430067291612304419860030948365617858778951768504911221577060814490445091526054359566503085553424075285373269465684503921644088749147418427030090124573590044312150033474188764532505794024712425309959340384418542994776273425259739296438143782577213333297078559913395317515955864510149954259935443532548980744394422553739859177920303800833400723294621883491326259514101155502172977502831855906346916538422377011660640174507698552585642229336809268228550645919176313498408194746029044451731904649950942699299929100114482911274721452385620521337229207717231507816206443655266485236905842351050852999331598894737132343274208543312924346250386026413610659959873610688296477119431851752482451838063164396302397597255302131864851164232706387954299899295250288833832243653790075142803245563129114754510306108329806069540554689979619973045404263247781007783055795977496455962885569747199381583499354922882292010050455539358635376293407041038997193831624341872376995206636603396045989190063441107407233901429574206557868956489024004165466001007931249544174572548751765920807215441236697173643138455969017972970841455015094504136575878563747021950098830132307769232232894970441099073109243935195222292011984683505282910799441064558031409222147450787925664663622424912464378561418467456321300857642060916277243328304253156831103205636968028723944836026187918898679320585769170905451455058999074755891941613457024523195242205589714986906621249808185514181120221129794046067195051985547631036104389039801219971090392640285917051452151551853215100554785148268425392438048250064509496572902149221455625723695654077487098419804009776976097734616112968535270228671516999028223682645195461973369745893746632082128856304098150495575974261668868451902981722971394164899979423099255275333472122826925312226259235979870612383464357089772359736436544476469578321296785770829703617338672128586109775729076359642919457482998983252185372736074402466206424033785631126010602234697125496145202101680271506125469870598274719769855898904774718830706958587101473401431086993297323785178430703760966848038854985956542802157825158233701463026546424513369776428022998348104141710635185971227391635269033367424201243162039185282609565567603228979605257715052014161215821375033175594640696814218235726485016467490330294468532920662020558984244938831291594721676816030036137311897021833240205831051989786749565203749927893302903078353516535718249077122343607790519753257011540786191256022256449482889780213010241170768781895674659044578853744333034180100002113932869233819523378918536516382677138225103662651260036342855095967707078619741862560040687435432683653764707425266388945275490646634055909382204551900760271084942537014754315744018745264106425079280452490756661136720517996798591367609913388526436684387029287441453281883718578161965495993558670009114153480613595026996005115490336564838637625507344638888492306238331770963703871211611661515833940182469001320282682223887329449089233595906408728421223608050206536797680860390231171206569540902029739805408968741175171019251836623889711042949249122781515994187148381008915246907813408266876807672500801849563791928186137424270368936437255837114926290855278248874958299641109195023114919610973285148409544240892280812713396930156263708239625560376709990031829026908714029068633978617100953100855314329616089455418100680368507151518920832858924061301843550882821102274769807150008502166525615412908825643858138806143624988953322885295003169407878391562734116334596103606856788438648260977285070723244754015527708660648166739675125050225801986266333584249813462171008822504521291472485423125756343057661877282631296721819457048559123126608602315824273782608784803770183048612329425499494608130008314574928176461973928377750165239481453872612729358754949369692923651191809274764995065931831723054389094342969191851325798428062616421527335336054250685575981648531432442197342384329871681763323191555420352851793505772100091946902431075352621446015552685068737816587238940707323715815338150483258032492101647667909475177145674356828323564311082117300183159652344055220714003349545006390859427643455121120720922669229057751778632295181310254206728847038853943518838818904843942327520025751717733213343330595527073999371209837112398961215965094989280940089478053523863960517098004702942884394219850625178110258186195705919720199915691428541398997565614278357762976439540946092817707640649048558369645329195325476655712431721639749295287073603043870441152894491950207046358405230062062420634410798180649122326537423232224617460115423595614342301859309435105192299377630597059618486299470426007382318191768755422725087987411086008349916472316053593348045782501175474364515847459714573473108469051247959694923154202226777010675601346278969660877640262250693435884422955783612573565515387314474414244743016351541901398144321688418116935652845242630904836444009749105672912585806236466219113530747779240529352047676885669547457789710118527964548915768521424649264144695774084915157949400918260310085869774806677166794134977000261668316300389614024774593608788564760929268230091109983899692074238541029650742319460797517313993587980422237574054221480736058156827864357481986014121414530683078874361109550941103701550477846392140147743767404587932377535330751625567299970145087314615576362162877339384456940352188919626221527102190654638593399596730442647601545959928080848085100578678217082893279142992864312793633467218385988915315007001249138433618528489571715765368812419717636346611730924102872464962638892999024055135232368294319816835332851498292400218715404184178049291232355798913298113813003728339430982507397338362718134480083696558048268182641227232292941908718793108323893287735775132417278536186519800143284663944508159033360164851877681883579410409451404384514052068235170041530117503362716025252444837282916827541281471663839226790297124181306486018300589599997361091461143710939468952936920985989940789208879232924420966348394746658888157582740201260793507016235691677589825057490091757387515315176183825970891016768031803355680343336498220065189670825102326254421377509536212721591474382530764467008625434292960622617021302759756763258305595261725979319393857707866422448749102153618367271980344905947587697895419988408668661143143941738084651564575408647039061001418255697444558097556157299509125481025524256521140342890137947495474319330071064336456634914648173449354692231009048620539658897974079333577811636890229633688301964474884948170931215518035115315799651383293713897597984046696679903868154030456008019656248222100772188117928633788523355757767272146858312438455320009547373576241987169748343870573707330708908791476467895324034056297818184128192732593066875964467845056920262904705665518712347649020994229746447637880077631409448565580937041370899037484278747461017787811807941269417609768164618726582993547649820631088647009688154209096685416511574436459230400574225285906595740157589982576769508210499577615832266751457629813413417655601969243534478878938211997419225511258657367473109917586950755817576176514164473916765164349505634109304717563282134032133817379026037740535223634344067472269698156267674413260963774790067322069083976235824641999759874753417301329810012085870702983431767401009074066408523176674463406311191194431437979313461614837230794485120671342516149119601061628723325442793531778619872399495447902642467602344032502251967525082377095304273573030158147226839654350706481642740440199803145309078443468143880173408216690403559907873962912114782493763966376923870795881800338785181580568017936646505386713390606603521947363877420043990764099894582318904055247243844476132483990100933558919296043568712845535899313270476680537362070941744637571725577640466498727118933442747132925197887237471742652162381336823947116224103728871785960844488576522503132448836806286444634264301051896283954563298169360630082364943628364350797421343823386267250542816756442950575058947870728020874696305678888251111746117811125289257436153151493836897851379726795757287045486142417839315907036361043476875763934065221946746786298818920054703796087226919956595884206990745404890767468294269205894583613217041640944196884710738765690782546448942523497534831373609141024782848133729987612408633771306367325381039112676072833889559522797145271372970994419945367479817115687773921006804218949442444171246425787212061755164436346011776442286199599687994832819424391666791284782180400249400858915999122027328879797825672713792910854792649168174024603186837558978935394854698012198160235924827901471201010050889511206464220920580555787895766172024314827720585009355983448308912357363212895269299638815980997649938394486392814478549577459189991654617315043348939890314808905618102642118572478869409410220759242021134867495003171378841879441801570501325687127480401550650004298239690332441367410813662921917077481407533225800528670264297712334254610660674703521828490152621175430490044223138940504514254101579796899510903343127295070577587356904662749826826079581726321678468357209465774536874391847180911941063619090231680990135076329133944904596812015242309103573037715362726551311045165182465336651267868325670125414967764666663557129100512275099447525046444574491414862237654540632077329286316112722618877814199337153814305505159326945774627149943244218283639945613435152859936119720895478837224377749749133271406192548510758615697199865354301642876549775840231636965159588951296476695044177985685065480751718940158308554488072415878829207111128883740269072095513644351970058555411449114714391829204197926427585486302984774898312302461822145557243696518542621372991280853098340507463946507948899347021330993428279066429064250612389551520446863889403656290330595505675871185699328490791906890029446971086723746069465784219884952016148999950263811626700133380543978160245339439802280543886932540731821368390689013675961709207998576655674014888640654440283954326768909457259478212601650768402294884773799447346436450807216444711718325563155635059172064678288848830438788921891031494571651482807068759875443930109484369517817495999687652374961770233741684914934957597932974454829111354954774274072488956350694392484046671934325186843708433377564260087506745172348761725720548963524233576416335599776530827441482054784999791862322528551403143636256547165386404291350159800895229842343287899168047464137630026995476502685775522478264374955079771090089642562698364193106647641998311973270499796841991950864670780050682059034384713902078520667923070873992608403164713210908391637756263211613526807149118060375832094275121504682850846142786056162739362464435359750831882703395098271086604155692710094107284310350129007081883433655388399492404032436222318112901351199536115984532158915128532784519613963436702312560214395036859053840347030255445133997031834350415714247916706468424686813266479610500805325169947024643588309361139535862949520735158877628232677910028110763654873509069030856025612522164852424332466976094163347468345441697830133446024081290471050361988312431623427341930986917677995484371147078399848522750494356421612452528269075297799001419643569398087056819957268551710302509808766276936509126280325553463487451698354384488290144153309467394471922447443362534304813400999840391019794308708133893749490396795942133661424676147863342838483133465649726351741938200244448741831625741247249229405628378382249572963362770639675716225491678635014668434851931708129168518842551805054683681157372161817864148928246919092557854584565059757216167633247850944332545499501139124020664650148193873186278867330367040290360016813563063954526558753606190209560873275596898338761201564324696744789624055114951370914687125029884832348896841476256548120318615860802576367624700103006409464832696034481873204254768532483406767138249229372100205200152382824771295819558166885826757352078486548498529985212893772894227902333380210988678879283771255706791795953707099481733621183524439726503764198808133758375401705393438239585516957431761787967032877832024395374659904085043496941416251002040549419598006736900578835898031996636210451241253086110018510745172654679691920388903269866176754105488629321273316478246126334242308608707931718071610468232467924265893058316548601438927934268881257754641604957284938813072632651212646926599583120698078882581598265161555149814116984044559224819649627875729176652091166647861074222205965183923448011956992966180642117504436839596744585036040285926994787740106882206150380476805940012892327367230602702498286032987095035130455957394387481671772112017312599066262167135956380362377072797486176659191356915212159536714390205204407295141431344004087091768059820773470771202036940328979221619215963100452504624025700038239125174915107107560265206152237228875685545058107627264669759264490864698964981189660583621498147281056118881586536864905347109506294127966865279201049346965242878994018505387938563652569698267634680373566792311082629988199990306699107321581667887722943029621626604415390447370631370552918734257770166737250715851330107790004088222038516067345544590816724261136550124228504660680349024711439843450049925075493974260049966301730530584761928073572789877644338180959351409163985616528357246082963403320904243220872687401373876883066284570153989610081864902939884554394286847267194668579166648380158349272177887948267502284329581418277000475282553713442516279468351880849981310421810870039811379979327848404599329239870569620610021227136463669007597350579700237426975879692889195066434980501145011520978384735177771276598313900123079861758028622454583627911083597916853774898881612413450695495836264350081415448579823693498372644892317140419900083654543116906350258056348115112297055110966383695272096943716322235171460124901379571614726076087246982066375996870638073859342242766322383596728522986240454691603248103819342444478471213833396682687621365149324995219940957509151310249854179200918639457333086438960375540252102752272345242845626190048129572510557793865412733296386195765253233573113457197922226975399200548319244141137162207941052677135313656413795809921547590945539767495522854056847353528093401289352863863742781192961366941316337374732982949499479241294403159846930281888103466262304591141938983860625372759185668394130844492423419471205187147400561985197548269045882683892449743121504310845026316861859915463673115392309028863879029885663376150603256092185780104654384989917373864840137268654182495893791023338495089802871260466328425255944146150625040623558728273229627471351578359940930630702818896089241533156118502014360313298193052478755318003404606754496140606596195451516212537132425985074626331173603030221259293440239310319891803648742171093149512469168148860818643177529114997812027923589822072048360053594392764792374828628753028757173524670930005993390943512803486754451241916119155811180590061442712305901441044096058741069984642413665414257219434699513340959402348425997820720289539394821010086309602294407479055615597239827990129520882546247552119078406158406568443219546982516596492587026946062374918490570183671603425664774551805399083321321119280890850292645316534922776247535299437505734595223477458209310504078890950973112057254190192592199391743026369396339830439572454592294815610646586846854917747495869626874936089633368583033851550867926974814243749696040548942425448547887951353538977278387275186398995674130396970905127809131812057350230294568783892123489791862200860749456317788128648992213217759610234681562261192541092997331871240770759127626566074766436214816858425755204582548883606180573579536862423467457557056965509303526124346372762135645419835554908656607306736022777301376359727260801527172108621036426578645401240282709187013780288611840906161563009149196819330494317704208687614575864266925087441925403799169764079905953213513685985627951368447967774904071385236813055731245939712209621300870819540528363708117039549165149751860334947913196765583776379059486581846342859781947037351317834075231430719601733750882183590359380067716919247326402915742247722151586359299291853778685779244585296314383316790288948177611617518132537240315797994794099087651808537555994753807944664214288961353656850322397916238631795084825766712436130892829707256290152227358447141433728171476065649814240582515645960434955539540551323893450897415431376146094368425507315592437138144930828823421004505210701350413350107693289889276855020447283864458312305892532654926187029867606171649702924406214326238430156399774464548949213616576164407188280349270973243864780950454414063934348326027076579243549195934630614090442770361445338457538796444952796871938513033638985095124681738376786178675490306070061434462556577780715638605781684811752204472549864251402814659629940559390655451832390287612937703140332374489261616673770931611231189938492717095960920735452504053658765101734008695282186197698846518013471751999581460431874375329042084086150501400309774407594593174254218904928645370101014609441367990729138512810768276743625950555627133673545395605299696947838980077731632486366487475765393453728102088472435014073416416600789185757978986585658013966169471371915040475273565262389189715626761297571669637342712891704988544394389148955241510447920053099637636178738970886352321055349489727268977175980521399675086775545473587620792394729356477111947848004172366655973169975963061556125650595329050628146320415670415437685608193528097015050469910833163387999712586655001538929402823407208737024896282112263694628738187848738255396599395108761607586947295797729233733637550239890163544401463088396428399617280645580398092885626087424110155597129251942349424809490900401684852636959827475591260212364188351567285573145525859590322953890796823019573823454802794710461026331130443155679418329215141899522205778526362799263864096814954053390709038754570171024516806947517553983696024740526293176528374113814320168832911389374735400121911411323049482400438446077697341623004195481613627469451930494610075829701858080572809057354077272408313413227115977148390287984387346165244717608894507800165307514433575846870388992662322122710415479239667344766526242212319696345009686569555552610875620175541742501692672811629123730545879742926915214102943487504781063494230488857110869804524755673705821288595134340930533117644563647731058362755997246965507336689360341827602199347941925127309996334337219347259614870898897477375485150911442795571579405269740497293093963058835654933831825644996644861834003336230388977962236858495101505514607104357394727600364477478749057798746450436707274106840806127621059370529832422945689745298368532325238089590475130651882946823785481965664098157873591820060727681047776435481957028237449242163435265411951081542301797026271269291270165681236726605630223486036993125961733769350199519923763233462807968440778398189970843313298706402491253963109529816670308038871831704295529569949368288198238804540135821745050921156835374495548981154945090599808339381286669089880956422440873426895039003457243795891238936490511922995504030826285721489245371718042335569810785875245080891530645275481102946380659988605482649026265754101453024639966872723243513483453826265057147711220329078857175492370130697448178248521812726401139014833045669788142010655042128105839444144226152384381281200969755098332326381047870975995914040418444484911361089424449585206220527135847734923894928307164956023767276297489265639220728940432047497383618576827859351441038681676994364434646690062525288393659019144445009771855521339216344470963732951586304977386285297537529173274287175917994154996385272485886754186692798119099630133288265158844357235978058137836081793371054008065823249964330869429301462644347634397558323889634320186342860230717955602545077322637174672785275131621258628258272967306323522732888734463906628104687886053600915839209055279817657575322622758436251705054701916067636000907183024713772204248495730029887672232460666803209943907060653537456403034720197697194172995439062613810888819776663307122864205365706150572351795504335143944376563809433785646886935250666987152401407465387971432779056439915392414878941547346351059557276711094212463716795674879506210524781033880663724954166692197063434816910338131829730675191681475362013548276599662476412523022481459609211763439736564368510125814954990939564389010589022661292885404300646307659871892379003942860064936211470177177242395569178327439445419334434828334219269796612925915579782915342873697793297555423983772402444916004400372216564063237838121585542921582488688019964062674051685949329780660939064092147252965680533118774929150838061557477133525343340996204471554293126585533444942589896146034492482488183042589930876547206112078713650783909121079145746541067566490887947522702455777472715142825229154836410943504391502028930229863651817569227724253977753821021955689456174361234075037047929115826868419886000208504159649811639765854742058286707361398117453476789054195428440425965286578490611353312812774177526586504033761816333136369912690119153237367943041652865013872158976659961774500118595235284513202941247067975885129730172942129417338614102561864240066250968050648037682072557175550234893903211682704633011820691410109254725257281280153472743597761073215189616250173341797712395115020480893814726999132603683750065846141157890591990375835115997486487914237504296595447565131931185101226685948964118989121422510739111631252545262909891599758185594419355647547897326898932262364379772474124000333755504002365339161774827615888607858610759634501987933502498928399654071646886501181798736154592107403539755169232958330745540437814905077811750333159342199185413089096404599248336450375061307009262138817395220654540631923505209857378085494488781831648915671140699285019230571655546720538038458501708141275366147298033994107851075994132936787228231188807141683620766279711969053273501801497388045150985660485440514097441833963102333652437907416745257200657098118792946906168036913432370696623333521941896168708307444151292863532460745530252499478721596058203818529900084909659125082654546280169828209695593065100520102963430941190233062605277824194224621058292217923309439288591634711618354727756560587029756261417682874196527446386152258929927478457395548710249138947936731008091242064367501045604269342542690362073998690199281174922770253031260946277673195126182507061718954913338766323289549868551783364062074772985966463110806978878243550563083009222506475332041481277850425945140751206742552762948360733161752496142207996073920934863702044327287470165641501410504460767087967589243171763940817209141193789033229738819606903263281827709622723198169082630071867774489893330048962673887348751780375672149007736701186850951184181389890685436140120912812963937491987418513182805097500526341185478675259968298494009779142556857500749339305272731285353965276548363880216449007632921630699031326818263678881288914558504745041966639481373590232995184510772613567862822846109975005966947087196511515275190890226369755287808597861596366287963398262052237288497477139860149898519654949291271950181987791280729097132257403981249042017962301660260649156582330302171851990535393291034651456321510193827549973934619319781411233337702172274118905703085095095050599884334134893285807148435707485138081584782957778882627798836381042339175747386601029903390063106142360561820961880352445843926156228001977259515499860739490471411015444058496554544951454492882215272930180879839194325084414896128303962983188433360709005900844167996616932909972196841468913809739982377357032916569228586775953906262093500122264401568947432853943807107277054044254088747856019224761244223730499283091280231144997161936713269526755403260553328169502325412303619614796497768918109860832995109738386252318380734515545604340734855910097026231547107981487647242598372601686534976291538749406484362255739573641798029475303068980996535993672482878343905291324288080116834145130409897899705896195954143363127650548226525123235664449626277156568210441256917682853123403004742309296239543919709367315896807969505942548037109610488989067864938851815768381298765062633200283565437056391532393518606580698340880051058879061813127757273875326986611478678156566821682367536503499432281482075896153914053623939149139587643651025979782169462137579717394506042429723055488598230968884090096886357846602681388387751749818037166356958505403354087573743326326453400544600825089793797617387088551371948986266584439901951533904817798801844568957073451378644051292154422964968867645720469194922667962235594831040040532718244608344007046020157483679385267365501193082661300539070158907190639404847802845458082005834235022231666912432020439995393908464430287610148635980617178601271086422774550536229546994851504366354324220464441997021873952664988424346306803331328676515801152449109707130962446714361192241024031721396794968045213720873714837244696792968809749281142704798546848443440353807385626103292136535613209756135713788334661430785042835426735967783018552448840385547037332383327808865904659559054650011953121053832911512231447029795644714861404227476041187458684731114648990510363279984223989362608820411916532070667213940678258177157171113324626461836916489796956552796508434133516190955718939162503511910397603377058619008388945218739261204350097192306606398982966598541522858266959398405329013407151301495264683920442709576691137776379274644245612839732646294238167036418336597493326759542676329806596595645429613456942047366402276108180215103571483481659323912437353979821797772188394548888042014921874856053975774224600603232709114078531483205346432383398347415347266555122257512096155031324604936240564075213981500733025951587809315618350520231922068139123277699832003493447208965885766198237782611979555659164169213250052612393968663746798373530729391655759345565005424860458473375555918206478321957208166296915037050743552443254727978343665268861576143133897740106661583313676665152934052471294833116426552036789761903959094677609276096527300498275081329592294863292982742007798032087560647157820638649394464877534485430300380251141410028767642323676543975985025892919997924875592201795755036521162242209126342079974273789747129430798269373953819106545164087778246194912463913088671066352144045449908954393891103014454730370021596287343096860668469686518304804259872427893931023934007904493354543418478863891631143701516746733658212527929157830529126569564148307737840653699075593196667210596144963445364125673092961398422519850223032493136115668236676514987639500751209609801141725166666623450334384855586364834117120359873052298696186924816727111476568292155969505569738236439312861965656549391321813311570333830147613001580951482571265182038761787687881848625103199039995320501431123672837018109949996275852154933625897078581589105588296459989758929171170768130167349872430292930670258132406953939846660231574403253972797436490303670770678274998675783784257878747308606937902447747471039552819609754567759908786390831672896199228327462462018172785080790935812630202296085916178619283561556457215027307839744851517056992014813379827417848723957868678525356134279129714613647754471372368085436886010256602589752680170435808876276624821029030967856005332360974698666705368433926427425252549341980473352509903536969371327704482916919823770162892293186900117473087861622443017972219459413151159171041152523955501022649638273031674194375154764357567479052674457493631290929810989351188511626714255936517464646470460489494166483332987121311195366003119003652637464841396151026662026970814589139100815627366824390401199376816292157570472793280799501044465868807873320046737162139864006390846259407162404864403336364058938469553154432682586196740406834235178487507288033026910266360561442702032582780276910105319439727959634302659308397463821236724608823023178317502016718727122005816266438189131112797161709170635827599927560974613759972957276711485284324033492891014893664397519467424081652271814139742007304558031592321091125807569600202710376234360073707512319712742554981032719491865957179943501474143999986595422096385840805925177928592214983916479003198805300629836018217325947738007629830949108397609191580988796684344548896348384215199616820001800149816308184205813338999994665984013076139240411753609294421341734931706423556987512216068623510632158637782159504541846213042996827415481226168872863152313139557289757397703763141055388644519037745141570870223536958386930631814441797951892917035184941749142210438293683274087467262579881875962868607711306011027780694440619513756328184349848647868159026098374101128321863476410788344469323540572932925905150775531248436638187864108752589624797264171906561436297374853839651246805225790383989747070123067445197166801681049632530664757854141978500899374184362551403807861897922995878102633742757840047155825496573686968517182764675402573000653107892437937217732055302362469624729505235001315417181035911923361389678758576756693548971809324688900920327733463858115663295754786933161356606909805333152984846730804154098385690388654306732258797993497006892872088794463988171776688972387691074243727681728180357444259091991406949813228424587162745227364395284483781243595869868876033946410912986259302164584746790411833536084485539367256923462829386814826398238670978666176035756342389253338227016971402860163571911524723460163454788935161798131550084884385406310128941035842150771208344981430424312503020956951347290490269406788009780923648186556740996793499807754889163475213311127141743853619038468435288721508033160795161738451575399614574889016231109326197853731820928771912394486365333473657054671619147975123696867932211822289696230503744960517421293766863281995115290628062847560478032565684031632415404653821618293781049371551515001593246401210969205470435847007228988776006981230718065231213547057422397641855662913588764652699806846429925767935316027128847668495541083589033120443668233691385114683531271233544266684684046897704652553693998848558197229482854593475645091798493456056217580221133370684035856316681625152729533776910845832406101688543223008653588720196709794511183543749263250497865208175456058518981793483228836404745302198088579962016701056782147487409628742216371103930504221201623616629450717057849597615490236712451571315002109412673856175547118019732399137046702035121809011124560208813114767524927848593322746615490226430875359149687172801572395583876211557344742260552596530310876588048025681877816114208213913388635755319750768037914155813287252689371531969751685674985034894939160445713934713444964208088286976720898843030093855637109909998760544195698782599502101847265316108390568502037035075889630294712042731961326690298475603748067265051766477082870650943656654522065759848047710860646052995206913264911138232091853456705510619824160334508810353476500038275493196035897859954863839216348524566278660969213012102697889867862880617000389579186144251575396638396227862934986890112921555898399607426749810903432376399953848232354913020929564956008484606982801178108723314653196114101367271677888820381066271724421762897777572595495210396807951338507591417368067638118030983651558889142611974075681871149097047852166748251286888373392872463615665974609314549997820963132744981768479961664455791551303134972730285179652213955596822973724562112811850117343563473721526455569237781548144588648694029606714837687321095055693464620849362008953958333739681730793069116423614084390842052191529803490465282458542427939009779242180547514743262197138602044773316670295786861882624599372274983322927047850047444665096964120370473676552339744775793787858844209869258925085783056329252725239267801743061109518958914137512875474534302924524786045914732942706803776710421802303659267575574523199749270008520209258966584099687891907884102234127089786331122973854288645862200900092067131634848670475163234200503461685647911586977537216978364449114071962717472695653530920791408391580538936299009790102788181035587617671788718206314241427783768115207335975901036941738906085516867421896313913956517014921027265457927437595254086609359317902437114368868952997740087469528004497024285199677773516454653885988802065091585278514839066271589335047503315423782007377807039225673249629797564325936456244767135669604828150551954285653216960738348638992619980984922254309379189164577960818607467593061007032286546536891954885026162557848801168606290662610538980434645176993936622156585821504865582910911851454124748857907258013837127859473844756682327628740743453060428889851367937040096381957103489565989859348749272498004136342687238907172129190544302811117957559355893811453596417979351313951783576427936646799754302719632269271892698936297339065157676799226267076626534298113868542120506760086249578451082266367249867646746291228744585914236342697352001935472613717067475441840920779455745710879526530796685076938255331396190305475519661409499258699375937831199842370062126009540299616769046351079565591066648083069626486264834575611243248054837984052637516727664503097614466158371783824930027675645954051572851035105045192395459275264606640748436905751217434439757383295609895201713235255449514834182026991963665971260060235346067710624234518044514423229887083092119988745794801433532400061904749610710871573442708591995819652622530341350151728744710784843976054082776034781987443698973138160889295055971834594279422485469360071241426998745984890162704621573883075367315311167040614819176931348919665172314722720250485390865405716497183491654896371334569008000001681708535255964177152440351642026383733413173368303107846381860525125189324015908247062844775596938029467352808437048243663326103181451996610741987886019270220827059015431426080425459661952489196535968998462181998242795981559006779737993908303281002014045607158257914320771844204658056371206726281235019575744763912893625989414375546629729878796021017649744472196625167315936209942632526324920468696786499259502613517954386479888451113512585856792270089790951593011163145619657246485554167828632280607732420154468326355043838039107607169284614415025694006379883793809715247556550916825911002475506709496124066731844601534885578538120742362376129233143001805871638726165717782648634376895166955056367155199571478694363235935084521518516972516900976505831821995967345230255083642022228674571970243366280774372615828476694399235303607463712240501405291103257693464898218275497854688278630167994568880039832177187566417951471317035208142764426463928960654967470723973155783971117020686093370324187631031580152470811267420189916659054527898019687147307367014615915469824127605086543688803433303315067625386827462319869774370514515824397597292922911498741073526466730852034115112136821560383465878298378423881879329093612410723547826289088470613249763672491255031151735484196397772781643231732723514066055223024236099517861520665796225522730782455146140745868503754734652888397751687380855117095950330047257897058752628587041400217237655235087642820827590651657990412356215679347601365239330503936217699600392803707554215996901853754987100754760108996783995271752302959431579789475118153505926012697552416974154069394755529090356728410646579357151761693072847805603754228893454737267354612339282569339489722556396968948154374940234453935058922765042729314871401895627526708726279758802834900978231788205302938296962089696848125035953873597534239959247141156934383098656590153157862002539072133185809238885405917638791392763932837145292705857177015403688256216790828302680896966736884187675744547271954789092551869585233649502817628890733017386312279978847788298735949115521590371078183440657874261336894604624401131279183001533778086401820812378291858984798515213229690210959005890788906797376937815493024686373958460834861262870123082012846477426820412617815841838116698250114869588229664154386172545116905996987813211141992322346846730146236699869636586352610862711908749562488076130463295740741216990519156627864036629803850212014560633532625530352702421288429131938460479708630829986821766037257849419053034860777968014060710404948648931906165271302941890948467810626350354102158517631891366870508398400310693500135839014418778399632932176853349174856693519969315669521253281764798352695308953816169237695577145137623513340872959927711001727835066130555790908968438485722512898000295568512616963269490770589602102519977020394285325154512614760331354690808733319776989972874643565114158573842091867945398368025756946606413621060706788533866420369949557621466163454912643030180450587348741659005990608734393698050115895145906445206188062170978211894587874872408506292071759392817362292293502899455010905763268634739360055273006341364977909411860492122505250291133625601115971430392244826974209044193832084987127938348713563399686472144300460599807524597723961704743803860174140086541809494835061389267430950584978364432029086014043044372992592581287027964891491496955038052145839207799890094556256282506062475443833355446636915828722348050658498635740210434559671156367915405598601384659257872824242956610350837146678725830033985648787921267980257395997351569751021285868347230149407156355231089109101466927437271346736417587084537448919115656217435585709712512820354604354728296041199377227681542606503633543836774302062147448677861526986192827303450632661089386703291875711342495750433210003312348363030616767181146575318781991485469894849979762860105681360800634017653415521255137478112002376263464071288285346085667400641477205094854513177519103804727846700136749272347840358654818809315222912103877364859982859614603851999189923336442365704934162537255326943784055810097375398598857868947182271127347847286802074727087190063296341286518360058979814361884818654563201301745219876155429765888618637125436683762732349639990665494674374249232639977885155348671016782873484061453623164111216577551345780679452198943409928977374557368582993779931996478344428973052490905195096666180511289739171171050842680276069176522869754075255436448507035966227199702435596987788997003685309146026799797731326611298498430862673657325406920913205091877939694989707227074244718453432571543213620534020357282122489145594392274124694859674622238964131012068508100546734442457438125041360695100927649539348044007701031062066921207696019313163915372803342259315605794837177348091184143351024086424917904825139560042090930078489918969215130670703577190121557414541026805978428401438295922034920184242917015152042258150464982056751840242673554882362323098264955199564234499428217531287485337328129346972790873005068203793350883183430234878406867578627775508072911510835285372587622228691861081767945029846594394250005821175836377360663214314715937737999893879921743240996531337023239175382674190372400705096757729930543911783314344539459619070638905884550423631702925300827986462066619012697581075200264401177933270485837861859663313309544839180808714175422767036122788806766547214749570998153104678041498105552045733860006700296716431367322842902967838367060355535774798086406874337590073329824428917018573308007392514273443055709298123773213428475577906230975619299160985672577533194162167749167714280454753551770275481360960444580920147412420253067238224735786503326994151705774542097368298668579748971844078924241415440445233511350017614006705104690913250449901579589129694498929156854078427920266926005896254994556295469261007988145811747923452783307515353844872434737900685276589978650490968822530034017151351028730280942062298835019935289106088736932984575861060507815888379995763349038115657573193256657483775723523092995990197807426320811703415407187232699613425338339006769205707045792546355875688075207087320011297096001954609701856176018489976755141821620331282381199083593520997114821789548369002383698717360606041856363755025020292446260589230932197619720657241760957430973118388115336441885039498330976040244746426586437771508537510899589419789664942848217844622057211102647453533341960409999484984800641327970977634620032022921537274557902740883656764324857985768984728949496485806738503486910026955382885740746241943451453042197886346894963584726272212428306101540606447795391519740124409798585225503153137349137168317503013238815946657655827949013502563585830021282756871144209138830269637886031840015637038571564950790454481551045486019643504062848819436381563593276884463717147407581693067229345841656930295249729860524236996704334235372542357062927850177149885269043472943670169271271308097559408136628173189220486338592294546005280637322269495105792473672893476808126486558473853359704972277067660826683362133146634985793895355483430012320181298790886148394916828487232450761872808365857424364253737271072567894564205633049417430225370795808875254469740613199719931469907081675761226795145706588262741377578102866489511698069154042460074846409927783237082824306043216605884654308866974790184113319929231743869658002547773844021450228630011653513259603718782351650274501551201518674589675471055872430488035927469042881427110967466621806732929297940689090158794956409702538985151365550297161104858832886263585875324446121940919467863303837027704885356203444086968352079466509467348403634634234948872248971905656260627661157303977300877835076153416017368757116513588556729796014878238933859901886145110105492586913842345857095511561504759129432308855056895845830208838816278112717938994318328814489364051975424683992684369728971838588535214917187434623531779483459073824833818945769197969223431833250686649372328005075819771194157201902603349746150580492605416095710631455502958276235983974870699790818782395957396597875912506744092510809607190884574622110172491599010315101858063864317018639265026252270487388502870627999880965044616499316814926183924224750397673704293790268700171207557299549579978073129808203505935653554119443238181625637790932302137676315606623522138534228020109939619942037512480564709209337280583252279842575720401137688340903532101246851598264068783021240151784989171842785709726254740677222272824511128241060072450095052516897615639313594016750050216818989903137360699322324792865730246390004892909326705433597996965052770404945179580706328427788907308619448395679037160774847715635204308809952464297622701658221796871148171509502748734610628923543029318158698197296293407962566342002106462700761355712931371675992705294100923213560059749182722318359898260555405223809536678296352246566050370071967731248956855007349841758676518040356526038743693355324400298069833247336112562699442564006322163312519547891850107150960539456519131247583632528116659884960162768063684934710948543804180677596533177855224966955499521998623291129857792326028368197216088441575117482009329641025948175803675507635987059010474587861328473913007207130145741486190041996632993820764533918696495861301174390069802391654162247469521361121589177264562237339283210293081234298309213687208280988592611447511059971097125395104857930453416406743853370392865608296336199521721409034398724890286211738836256309571897599729567981386146875285969348973823126814443032181307855111337427779678861218460013903325450406535073338062863719550747870686349728727169928169674393060602016239218132477130216177969074462505258000050944357061686058588457752788212278386241250645122624560406178802641395358681742413643866532923519812348546186932294028217416523317384329650072675587715856740521424612666116833181352605424160648323798335779101482543893014932424613138566288622524661463413773434730949944777519248379089223839068571213829162301972845267843955989907879898580034994176344379119501269240958363842072192462968912416660998451720689980133134363335515683396978583690393436739579762566037133278680461022998835846052878635929638717088816033666057785555687955441248309000192047564719220195448962186942781599947850245792151913106841631240861945975431206457071990583885804285211814324056148724325991361551290352684704290362773406384579343266974245246261722130223417702381321403566933332717423252133623132142535471886230308433118627240701286905805354249011925410883399462967660488299431890997119753767674876264747074452180262457636527475905608693880677883122795096713207028831226554297902292291432112181598074429300037951344082915536394084597754791125986178641104822912800145948759127432689077433242748506409733762872394568212159704984049976430663975577509330812902133427222795205739836680316097023616841934285037561657216588327623316500799680119480897359420252147772681694463474617427514855277638324453780276869820088206520055647114262579050843551577116820538180050869507942321243402599129169264222817606646141758216397526627514603504752499950254225928797942112230468333057432745728064109200857471955593552484669316892861596478882682268630814974178085518865866049920913610737268644571340946272644947527732499240427532355199723235448813034864831846014419315019600966696877495292185959606979984580373736484266726348709200566169741267700492963549000034729077814543965705248490624272774198134150895355705460948261905441393548825803896513292343106325697487670515611821148462847060868387510482857938500786187162420431315339517840998056270077907193733935908698494803749506257460950801551747886595722154104391357130682435919815364147795279914593337440611177205951385306978804857585783051067849341189012653705709933642133671397144743418698651366952924865455282906074940076116673700279033107552983537001138577938775506394974751961375268166132783671854015364969173115269250728290860826399430472907238233797712164718741954856778808540286911230312838035344421485425453473933156531919378545966700876068419771379341093224979957563598169839696197726707693143121774421984740495371602144254649141164873677407942598589300040382884572995350152790213627175913354080528577546341366025730445384940014330734254521449803229883030967705143634598860182768479814340587855729214680542305190879768099558921712227942102406825555652894085308715728123180052804396798930309874148014699958090252746381413631499019972766109716901544209857850124889298013474672167371684454420231504890153925837266544567060945640675626566071212147122534148392903841013139052759269677902080067817085066444152916126065581139713840267020947931153539257249570238008834156904004843924888393835655835152683448856588235797197478177946170315382565440379080553523718892137684565004972915555053525294542720757134832528532775610373112663330005563502788875313380435335127694256536284460530797295184380810959888285649122416713594307591179228512284296123231757262319115457675411474717854413881338648883883329799078663728150755352995930705078031559120064668409838933275874601801263443174342109751267929310664396052092275980875597509505790645574752771788187700243176978389162333571662716255695358032389691275222462780608505647666760581779908440236871986825573376732391136595777627234704085181972967326436411731076902524659712956846631118008855112729535666381693461783446467382371494000380440315796381372070233949141678151294163084448413569523783934476983532291653892277704769693741015295567186334930126190503023962660826326131548476239005327660321149366997810179431329074320915611533717785010355173858563413278098129962123783153276980578563832858160312778327030255721615753318506955857775371335024921972006203401765282412688805284704493077111275842921380421180780722552216793883957352995934921214512249821646297585074809639006074079095867064980818894135513933093985201792047433851805762132063460708052055632675732308278629970694231630220750395977440329746656208478383571449414122617442372623901058008216438893545883857280464456670181561870300025936550408732849326922271382600399407240091460743482128968757372625263807981821763862830554822656275984783483854486567378853360047914869128993176932138818608895008802238583033262282627099832794213554230142649138432865590252916147222499970452662391651570177437206695499814511179480810023823540555807040470352518273947439962837478685410124620928246860236916967735499338743869740443973084051477042240088560560124514013214417857564856082859865128778094305623650483402462248157497867416021919055581563880342660455858301724027112523804679552088276770881404939382371124047692682429538175630359217218828091280590922262333636087255343944028083600735348377359801823701555008562365559885199447848003027429237218489413859372728267157728355834434112912561249024762836150325433709784538529162859778676088983987200643867878473730011923800636435312547476445791440849810834529830628401342738646758297976737916182859259149108237005326228560464313371361420641581683980483095840511509860322677673556893905052380045441815452262936137533370036206815901758685474738610618307834302223425057767095193905288496919964291170046503878758375958827956901087622357878515867540308394661586482704311916572800191780943909796544190206828151496111880262131014310335243187308389024826978083840845263938012538725163252770932743658942727190844402537154580166231488675630940115310525590124024590076402174625650616679586910980876993151661128359997232476924406656391899760431933031040971693887385156026754046559493571316526027499710249309880641875694632290424597019623379258224990244079728548359761807458833686388403146886690149246582158080614231407356078024876393630677487310334762433630405222704685727215847565176296308044874417543726924181916599011096895381773322211857200503992926036006358837820928203350570979457867326559343665607829596121043923797871945214826565622648401750517064826080901746889986856784229330631784181058462500311634361461280903355283901661119859582773876346716500483198553639293058191898051557936970260133220491010153074597596066066960713129570906690595461463791498873128396949977479755014954622820419842642537540087806289831357419779007560203689110863285747955470154426930435823180544332188147706405806188400056280907057967925022005628426196320438877832891238816952874940382077042776436656390007007373206810593991934277029837659351324174076023082793764304003776442000481225846652569123753069919315684004127230137057664016251074706183192996980751141776792787616477756861473716030630030446574833511041423209574213307138347702892673122740619460317386531571524031263408488025082176682387573837155001548688684574415314374095242266519070462655683156983050062446784145347678167788057252674604590669292362887736048733597412656282904389152335916459359075386428442462218515019885809504936776871872651857812361531499804427367870985287987890637785567136485867589439079797738544593752441249260037742759432257270943182627680890092395474687512906898763231032564932932882551658079980456481146977337967018120611251386271090467781403921770410463983022633182599023555863365475029102896782208238985284230820414888770791503119281737707140933989086316644641456118862156142180368763382548361982802402244493898303131971283671426638563757471367564347091050720427831401891082794735445804187039344916774532125736787230896287593762905198016557367422650961778335370586749482189779547563569504045056945305199165946696165490195322785128335399551726999843171455039948516878827468490768112972446979499900719762920206923447976611056500866516725150183989836954821068717924688178432073861072505620916154405836766576077855886650624566167662739304454315644267643209976078427099135313378591040789166880759339362824655201272153178936007730680935474856038939091713968819345261162428786296990040726057061337624735123697641989026774543515333501734643643679430750422238302603216431956687301320377337612574631693665552517636475542090479961017149058534507735397185411389599124702608134610697432299964259212097178327120927731799126197759605186499025774485437139639765219098713217419278902183424117360556839753968478722516486190008210244035235677040336618921943190259748133070758235694942709868807602430441802841739928891686760839447173669768948173005585222999642572515830452075506914032399582143846997659029940617682990612100914697588723499612868246539594895208250827921268990918932931058632793748050485708258351765001330635058684769420008939569520732558795835660864509364694890078714188003909598786065479010287045561312630145710542832882652807587418336450366466229452723867566775173741296800022543814482415050833052848100527022245489705156684641655301754843147209176252429690961454622153484527638642067889831665622227543396205529218023318408256274016715424871024782105033639977099887218537935590773600439115863001029960825436874974005501137878856404574378931465767351753598922366103217713179610516347680900854721408228497568905562958013655636515571068496651220982730038613107727599929775160521005880170622748200850374981681588454400135405736625004096327796989110815121711620522287465147511040493497286666698627951768063273882573425534920561466556931440515149155870361543463148255450195302683796108017134878947389722011597705217807347876423768125916319812851654955170590053971724447534527753113930223128101065958308547010528089812377522481810935934501728523101018068026968593976064490169610685688083001739825587961479946062951227441122958999000094848855663642975542137847881503096694683192153404249420201491575809784842603363762600081313112172410493881247873336966203125035584509935466521433392759335937821020419446387976164768818742581735248529338874830023203241351743991510514929532553850318473881505088886041253366474618777076866526980992134778111464362167338309421599782440141014334597216584669750319773279026285409707619345751583464988728455107165738036623519686854329752405593563792792949506732214283867095857942501626960244868886378532388289632330006034297074142260121706552344204217271480702772360856541477284881757187987195665673417450392568988798425724018440285532304719759584663921154039663691463738941895370934491824876975509591805523662134066530980389459257877768352796431617838787439168098339167911673049251285471358010618877841989450452241624023747169842567501898068299058058656914716111921298412791923549391586851838968571448558789718218548303333613816544854046354225066275479012714847376064191410023204220669827438411529525397212348339396440695186453406444918916762330168926234455182344967075812224307782083778890005805529319182681367877415236303683305415124581622758193471852673586100732512584208603183492484822470439355115372213472663247856723544250466990532656731003977465533476764114925749908592247003218637503682547735340376463921992244594254731382281310345400686363894922863586852579966214656758109934710555865079784009065851528130997648153861399641145230637125568207472139195239796693410875676309825523075414823133876278003945407661058072659961015322971121666536863632768273127227300696410601227576325278647202871405151577586117958658529327014520857271841563440345370159654984061955530005883323610036505624657418631698042304836115736579593268176482201088876377241171944913512265086155829902791496070585154799455361060144103211257381357973709496710522718662386519473637047826545062243371153505007818078613625348736609750426160867697246610904508512571154612740039267524148796886458708924400281205132262883628517916740188691793799948645498083465130519254182384344241634676762001887496724108327986242259329683547888840398768449265199285749004346833883472422579776222840753636890805754630074931150775948212459756404005612089864172615857326234590371222954337152918116195300760570841638811687708995927741270798879901929667824767779877439904066400343093994176101142078879479103460859077597207097666000123279666205791209231387472470183406067837186730395857663460014700798904584910248213754050024018741637751484837257432768698706184771998581357584316054511198268479246227586220057035127719034909213037463351884782236444184042889828088475916165084301924070978742788680595893415212982291217143319034306592141856646399796356388888984287101473527012395009269949412674913079828277823604554106191629961268793318113253057923580608608181888937199979169143198882172754819569879241502437903618859437335370480108568733425828477638633587555225117253824542491669605259421430284805414254906443232320792803316970617162286413724630515696064324294930119088372687596848851028520343076708851588482508331736643682545096971892465081084629173582805181154523829198642650457131782386976659253706744184737767992137356300535425283530894645591551852799616485068521554291041575841483675124664971564667350394479641349778469940851476847132692220326828216935075271106999029466433797029507828509720776468347213592325570949530506970800374474543699681610488851884387674277697975928979528969139063957125279921314918020680405824059963704476727772487407993855713340672027188737766799732592453520814938122601782809600607874808107991654954559138242342899890318313682127214744638510124438220709606009338150425178949568190289361865389151952055065855934718353135202330182505123639231653506503548432672073987286245490452690553254953798333405847596259811732992942500774793455897283934757271643932329338552885297428916659481718897137241379202777751600881165973274313612728306395865470826507796316117849429496085997234270054921013338129783230193720246736523178633637568578276416318387814559270709537279852552914612197519934047141556923496130512445644740555035306782709758068038400543983417472158266704675664115773873971633125439933420492937579890773696818557103004597312973127555118016655199330059129603685543137444801677385814132207254550081925936604393285348314797921518885675198539347724874365838975584679000917027610035346339979005475032135432615971573752995595421117819542890039101095116542844707637426858107378071653014504400750278027800919489013241347566250672472639964563696202244849729203280020068779904090649894605700211701890374073197399886901016186817712576473901753525909792791203893018483634626802347110535031256836932033608924362869252338316583725597776583558859301613262932696939981516253439534890543564496096431236373330920778030853345280602424592122844712200633362688292523748452281793679520884628098270986709784456174905255361532264107705072696144212526446457601311652650940104257996070492347339181162925976421918415444593996100693457123882878061879089177125220519746830213189193114372178257529653066910389037256140630329743819101297772497197836869182804543636283286404245538569227821624743826994800999064494848548596063553311006516983809699853431959679844648447374935021278001381978563513508806641235032102981010242063848434850685427890935491495261412237853884048026850068746163493897504810073007299679241078530785471448730782627286256095421320637725597378889993050245181011212743931233928954598038725075898998682149636704092831945735217667038372700627637145433018874255845593655390928620523007518275213661470063360337681175859641820296332412714401082981016857055481171125624155894156906016679811120318568748458537762934235631560198518234290771774913901968143765615425701437272385014700787282023171555099175933782103941886193127065926412551256730796287359180403396226056832661297355811860536483739696980498651291168998584663006224998421673115823311305939310656864585045183900774576102527770707515721283594791884459309988197542283108048409853221356868627796304959981959650022662489968979174629515718927406595017192130801773895093953294456430472830553594282801824325976805461241219068136258616817001268496662928932329992241106413536007731312097031717620103704559980739578800329988044340907156324886439124643893830250277561531551877442608806280114717605120774547513779706340797394114086680899530037954435738599253528237790543257935744370073026228392106509015553268007616990842454857408113203453652289655569769980756861226994809697333776512308182541920985368506391453567572547229589024999143456199027987531670888739641102972972393350164184813048965403742030765221919824749491619341345716685245276772034336190879190539102944000367289959029901098482248354976740365194989562570146862420304595588292979948847646429263583169415960824724210936086177430738560837395588457798956451578004958729896357054565054732333466034802753577770887847418622217678062897067764918648919236061101204696245726793322810187015314394122958069903918493922317783831558865277319425533102553399147981039952255195344816048275145036399651054806905419848045191450871895617852877213721968457547248810557226562937254204734346218026643880150327672185884115513981697049285301408616934233649745020301802055137539590473063923539672916512067883898700728329992551568561761099489366566811145623225320224753878659192495349309291336222846253774398704856682468160818360000547351795347939343103577353388573552654079155898543838026200913292952958797143786049477211014392986853608027312834788901681019105614387204381766548506374043981936912288266764206884839338737748496839993495743735399697144667190123858563217586713258295139292740320041522512408457583070305514694320624961314796372092289045599213374977406932481275271891415306725533692863315662948903132780069278168667308751229032218748197886299498189563609983674339130146661773728979974818383825599811594976733378412838452688848308367994417464665594571547401139272500319500842975706573548597939375215095112281345589944309130332981199689160727427397961386375399657412155995458052962195123769720717333976693379843322168312554310355256611215262685718741336835179035914474209647943281419114297984156794935956342397652443045118091088215510794276803774117294916483386251374862189977711479415060551377597618059579632075582966813399483009363519296243301853347290673244162024037096703099269125737732083772131941551682278697851449102738363515194300629698435968242870969361317322326790434306089663041167049339293818805346318549922275991473321448769354506664271638302798853830542187676622370361934942048975281409820978343535088435880846860637339733493382082709251641775962346051557301567832121289987970322368758871001291979481515516590363445291490950987485679761668256329708381290426499901155787631795027980421922511132891612250820505502378724134234196824486325880999738296340883204014192571614838924994197622466733534161156130306006466674790712944949727956895510921555638057207310806555006605899973787865897925115119042495828498804910342968782695482889498125532406980056041693911527257290635088901852031740793216351737046948320221412914545057212805463135342846149840034345743066775042300143727455672581344677790888756274267954263893256959168704040895527877397927624734016275093920552540134207093763657615532638466243731940167775003810323357394380315225246605246175214091514463664315350252575485320469466516730181631819993463015383064925561506533792406209428556507481453807182000660150998708599390966840207348722199904943343888356421862828539871833578599917703533504562698873051917955642597515143316720136001237743308854020311308213701863096719523759376762878307920610395895608172283529461168992867560344979949752741491185099903625808492879993356511973477530574937873246588054069263193239690480621268783380332825634556514593526708367103898645250290159177886838706728144516956206606473498813412709223191315272140201578124333310976893156645846895057488504607726421211763643832549167561541613442970616541416182106792011593225133539407884333071012182112670771565406271467801296475913820203043313504341416942082655949225632082404966248746335471645573313575772925455451798676980901959190633940648696740729547571188919163124680749368895149834283515808282440693144127025358226170164240970124766820923982630834269309905677108162053578346332658847789473470583588478835032047066380935960983532903587408748984194577738671166661646640641514960979966348047283521730852252760314179212740761347936490985947144800811002503021961427131033179079491590454681439946410231388912466942361009130372639405779806099256082732403360958281556354326556326414960687351620949653221788691534190907274624714845414741153223405108084683791141107360495546165206268439954185781225918722445508673585528271516858407650066547316069218756357007756467553632596630304861806699063201966068110430269261396499285167245167766597248055911924142127428052814739928483171334970065614598788994231443391071448495740866190182492703099709028364320545698977462397657839305331358475920001682074735596592781121272316317096810471590978385403777856670295508782173414699895573072527436184756623558260835394914385611364309916932698509337446042933168935812913004305887056339943742008019585263376422740477086039278012494237674550157389505571969524018640427636070822244022992425564617371777321948137162066520602005745051335214212000280606224886508563015788991820995511771674131075310939173265910841771731609529993952459151315261475164145147558381603049479337209398406676511050261552440370314052728850473429096036933600999973239304982041481038113970622684826528012933784545134448685112833178313247510568588705213896770780292553383919663908465572373491735673760339192293659918718519263762975577939851817122893196240365640804042448997519142874420707810940286376582483382987015630597242409490032115910743180764626355166303899284786093383269217815274304643342485737203234808379871763414148490267651652370636275578155376660714790528906043408521881727269162637275956080843381964137783471771806743656922217758906810776311277754185003392695910135059791570967339299559914519508659143863160744427609284587220714196169932510369199056645976416906311875149831298944715604828052532090399495437549672108101839028520404305737059906329974613218178409111221911190066966350732640916662324839837698304564183652325598550414064291735420692846246300063980023215876083763719304308663352569078682324774137405277142454240067810486250387996742668203959835131629291895036652395533732911783563165360956725506732732462728387403459664907190894733735268569933674414064622763679370771668481223292591448253522732723873198713419658111984968362416268616112483711178486429068613723072713739038869234490139086864592329494659478646799762271064267396019543221234464489465096807686322262149729458737384077750633586254958873658445511228554048530294388447026254789272517630239208967599034413565359114659832310627345460946933239259336580211244848334196201151353845552583164824353893614509233120368895405061591691064420127914140857187673049436938970911133843880698446862680596247082298500395266427080812566619892518713437359153736762580642202629931050577512444620385357624086495577812488585486030952383796052008442085621373588834300279566096224364076836922827157950606498130294733609387392571779417267636486518536186011991863636534655374057518780427544576170261619702696886218981111194284462764279225343722099449886276346414892073597433192394802650770401882042169672410884556411190465511217753296233845159863156731969740066380403539083064540932487544711542663267924981399280037404036355126282309809866041969684991945398961841287894787089952822026192372287881884488906740323921127208266601686602151443834625045489547541584316064689983304485818829006232395190449612506406201998832645384511206585333470322263138730683202894300900879681008611206953420024442202570245733242827460563992689405994620815395278551064592024866495666712458503841208512949032801612765756629679275216631924409414183118842044016465943386192475839847484459501641294917820144312057393865558940972154464697983246562790039474680728616190494774565694374731164934787548261124934027815082994351757102331527994101558374369764292061075159017067880198987850181425711060237017449656213873121408352751522749757807953528139871868142384041400824105205269328954344835841433586050199795367980149113054211515150165086629261919459880454900925960563741766231100182962701101116370657368954421863597623221966290749210306223807443041961386290840938426950043503672965979358429605560442274113532620239231231288771431135631632693578391462604680035828543279110711113553554400977580239265155066941809157146034891136500728652002194104159060613574395911609794594623691415199555331612613431323931079022239156006323738552623171448078918485012761785929645580663329531269093644373432179500035696256803498657809458448738572924263132324535426383599531462459511912926058771114755482880549319826790001806762466379609109682669432303708721150814589932463008944916162055387947945821584515221004590610255501567671680946514068028691441788551592195094495426430252698187829106158553899366523693252256265712479091724540145401768126118700746820011466461579927983690602797808142040853931724892247876411641906909513799569649526015552885957489788383995097236194168034945168537696474359386548999016838036357064504420415311896609120181008435817049140096188263406179533650314372719194385898727505179999317884307115956479882098319208392261554831460776180748395777016703264519461179181155905511394869443539141446429417258303281601806564707299126094408846986661505124922601377381404395446292553257584174149958162148244379164552115054707416220994834672285538692076235168815643724008296983933497764363427727365560627046730796480957957217025611477484809999983596536897268129571571285004609003091182710938475282483597991469557188782215249485065430659430791037421452111432784942428108823856851127937800418068401234059782580776554112762528296763694129313653536858777865868478853070357482371796083747248298356108833088972366005677600190047460770825798191931519153613403844202433000932127164604376289122745165897176170962322554376103913865858661887342461834604689039517696294349752087665044566438752280546724190769821058261328058299567131890435918617733448707540443419472211102638675862980877708694355324315560313250471351872426380621005881637829956622815155948415971519982231022754630181546845924123829388242356926590563625903019368947408743962846709140049301655770156204116680914378761931998125444444871056383705963249641930140861529623790966049805742270194345012123686012919792628316043922240659495623632607323800168951721488154778033288602742977294140047972111691306761074832885244075387233942681181801166381105073508601996381498969756156459329547359426221509428356275294080750428373424333255508387493318310785348786273443115420490185032378359024685521133345800119697523120363579735501832781648183766103991714198671556793558722843185730239492424552642398558794389276557457565517687697221716237690074655734469469456415467739214373116383017012897741398568700457059666081398128250130640853370868149189180687856316151145249809001235946869902005077358801934346174765697073537380999713716211734271722274628756326233147535666924217830858813259846519258395919611751073301837009420962849419773439598303967355104804029424361459708869472682586018430771140235899508959536552979159936521634803187662380186125590729109667819609411641534438230648171786408694864337095896198785814668608340011213722972888659543951925407939904197494337642287785319681633403086586201822019224737249388231265063533468814668557833751436417589382611139059124697832388504208852311261336170851335404223554947349545047273379280451984080790839128552912211902025899778424186502238046641097919490323075900294777984870090331652616724351538957545594556479624984610540603849837211257646794503665988490555267707244125735003788506835520657996253374465251235616600847681800832151874087011346683470630657334099751316629282845825786069078740138828721039286005306237401325865499134221539504531014088202704207148874444243422218297504472627409017639789495364320589577295797330227090100838178004349387004174681903312636204966637640761453208136168735606989638074332456730360104958087915327951840062758878201100476845437415351623491819560640003094726812180806057842149213709817530984993525923965023548240981226951409488069434341194732585972081510747090885725250537898710109126489935254107441125583826960768249406279795648538160123755323543500154283071701464297397942848633051609581438442704838871962932955371188336662757858625464387292372207295088925417061178332197679245036317983589669912573775356712633655011680432503659003372181448869623788859139486632025771566287365196389180074079973171180446628289528123847005318897529820094500762999738807297233209127973298611429584495891204695354585526599497039214934690215128029880894127520500672543989349987836120491029201808940616518819574447003940119683079758015432080071506708460538161952338819767289711977740922966921032307762464635389698281957267882684282870902796239882806111064549697704185575046650417980828199761186059966318339148560576677560755980383745052436814873164469057227964792491944432198945015599064251321735029842264524554079930741395966177403723761276289660926620966044174583731761328791535163031784496262951588347938487700960965230197175808732036346021561805057563958198702096445233358773886294455893480454688389844898986400206906159779463574034902683313392696880983902708772005572158757020452804068948560221476399901758209309086857751726498266283532205308731182502607326884038138265943033850083586130544919281034432148227154940253198220590575990181650418221334860616079344122775534259876581082601087938510742503907824293383252891248603611105672203404343527995986328131107330444813042449302279958503011132916035493551941085278234384220680460138436776232113004239599989123788243580255275659682244481493648197564648343638578293503610286237868003920247418526387529468912017657395269406506941903410170963785692483210725054805027929061166843911856824679171829527776621542519413553664456843564541432238412213602540200202741789389783310691270388018313874590913202227465446473779956678023618909693458375431531044420810020174457982868410058900250985521437233577452408730970869263927662829453990289127529057048814354805210383000951006951208199146080113243050226544899883718179049751003425982286199918722590723383932214283926671755266533383061367756606920732819775471026287780201751451370319114130003481596602408289981803117119615393601878322613846404890115847510962090279755397987996290533612608098666030226060070968013093183524462379578600285656930405191617460432643244067511892845753708968254958878797147985511400270861034726157002853365307494278173468636964591756017682260583371952148272285807948927045262125333414200362285842531459692875648995212359104635363815267355406004717988194479031190403686406488469438293080480968682120877455329257655708072012608295291105162886597907634466835966275531213039093006802502001319224898846669739524671058503952713358565819373358944153507261681121377101612456229011502844791275678717005470505793924496733023883503933522670098625937828364747827695291675599502405234961532068993968008079065252608289951433094215319608722781561760453911933621336794931773325482699289290130099663861836104048504678087577193851780035511841470003016608846899012814366656608462786000104566685220795432367549269774103486582522957973925301573065618480567678531507025334491490045701185000134018263406465550306060080894139404315833011067305748835405985606477905071615257959503564259146499210646857403066316798438055135657639548587940026028345575158890002822224875425021871365224088679060172197443455537956726212311792112108009998983605915208886584851275680528573778639048263649939998928279578712526469544518660551012091094702897368158973834613052633020508117904940267343531130266451263174346808263011642028768613219040671544362699976213325545783438224900512556822927657921967042470402763729763406069475240836293673967271417161149969032968653657351732853882286424788062808156352440614121563330872655452885492323644016975725341042396746914794905387480747466549732256362698337647116408967456452835393013262129603353635262441264925697824226057555918204498258986139708040415135469286472345290975874991572189756416931635407712697527849019090448862627781002656289035808892398188464467296007012998670514578696830413752187019232768473808672135401573258679261199830640431369333390362239342864973373906963612916580770231150243186002492032524985405037765152040557391914366932932036507940634915953027567931562017186221118469757028812143632819195996512690269848115756265764464114779043906778707659876161104089474719463123801428543342579110688047514530684247842779081197565501211743429380141413420169054520007256109878703016182935173028579873410075689591955292963356132269824257571503404821383973362300239288375832217591742435272347523377579483461610687758949798735508683219821699487865741983949120462056139728100581119531792504582697971373331348640191412320452806466932979009184431122074692935406075591187279053417893659313842496092238860432377902623915849758724314224763664611630385210098624909236133016726998407037718514005813752428496334105397456792991846855340697362810868838496587857609565228515826710185892554475062834609357757929281529933522300591171044402884309003851471152359781490292513801023340554958826592450271316709916756226776720335151828437696302322194175964538863916570332019762828889692574503083112712422602659625213795248399067894194877344197899310524102858572196405772525002072499729341288981121161267095157672509637198476492163792196409666885997054445555780438723082873236024039551289914829680882767458459479284571673813334931699642069805805422716873328257555578646780461659588079585777733492262422202987799863169526436963627710920659427984266753777319498750283719809019216191900780795087872920404668230472239974723213015400564262266857924196995075400294780411357166768989149036453847102308297908264391676943210490982621904890244867596056203338228683040615792610721017813477747952516274173873676319686381901864771545340625190283390157187465425169928349608592318388361371849254135136543093575343218036007017249629351981101851188624461112894180601305814965783296020742931647181155773364001088171888106786110667562550940223791088476549901178524433402745875724901384718016492928351398446887210285277037612658774578745699730684919064193359717330154786063172243834313833077046976502499226737503422873860370449302643867654174576037826839863971333149886990110345179077387731430451175038293445127592825248209678133584661527216749849867897447615322521069911042166041669371103330222962386950789367465372885127794769527108680795825627445605604044237360244267418999883736061909798899852070906422920528585560844371054443494783347624685276166060926568369478846891563728626343524048438266233696981075668578680782757946922718613412880098997744101815879234783706768771774861200473992836473226026250564163583332675690315464761083369045336518487285824750283853345524773907823072387737739807046486177639993018406233763807659751395907818724973874390578535464859672618709565160468892368378204929906018355721179015697442194293552597627669994628562936335672740643742235604875958239098238131339063297665171130552168234235136465278082010646628359252521126703284685522772142032223797366355692742369610435939272958549658143888956750569851763967949399526578555056764661684860319542783238878038653934647273205947420393657609528717339871437718981627923102672456874830101773599047749442269750639927807654907393444746819332273113157798325877272452282151393075532020005059679688941129717553204024352523683509488448029531405244589436639294144466147173442467045942182259015749779129180370404563954659263733692946394961789661202379629276723131790282563936129022091824847087534807441140791994908065433273221943157981943439495550563607593396255244806591494315140461053374880930954387714618125352889542641736603147813246515080930209445409276017767249590194398367072985756484703848491119191549013241201882636885720733338296562929226313328276570864998920390386092049633022202921943541315896036952581162467084014858859237167394356727364156197999182876494954568905206329978424944723543483587342873052738766774860826046039574341610804047122887014414857591833362069208990796470321642507432513603105390519883232294394843580637532992243340917076663069734933040464283435503003590978785634875460523446432345458526638848149248306900725737837630774344921358649833790288379353474325566045627101008566741989989584807723615558611000389660541908327505827384004568676636829167420575680036136339688213127459056690457949284882532880368202144345869834027262054329332007598191896683685028411126340320715036783953827769832372474933573670143061945761711414901227208336341158020708063238012260659385475484423264336588685337935228379904964855058194264973154880192214551997136200451761827914619800729722430463814406264881302052480406497602453196278839031861477270041386379669136312476303903711200025690862967933197589885385954415505730853815697903781726568625722405761941673818049551999427255637869207145762432794524537554059974816681663822482698437968579416112169488459946383628015634817762578817020631672934327911669690734478875335646050620516225026009321423523755406768744974299918717909045098621705018895199592513429723788960702406825392830723478940139090920635618702826091748012134257797634348365582152750266847995045092437216887731599655368315303082241399849025162462441541708679101118985883970906080729975144224395082533372244800730485748079075435771556916411790755770192489572192236035313353934270527206914411277669134747240022711903837968857480348582789724585454612725026609615787613030296258213721222440056417196441617228997392591010545889473939934352702877611094536849557552694848055356345662531290424969444755893893984277185136831098886043551694617450626804848253716599065129531665717928275247247191262251439703214061222665643498668155968212162539107910072313264352007057819991879252784251703712336069993368906239682796316217799779119468980163288190467129860457338934336332536555264415360284090589411791965585918595633859813244210841263665301874682793449583088948464575863579781838728409407986387397520334206833607361025559327513908961869461475457710196270517184688237426473459644367196967814931228697851471183948281116336468159840255276795411550562180078112116874185944425067552571943312253326890219970391726847837258409028493216768973226840273194884288192931752678967412120832368433192496268419602356393134929326004815759657886667212884818949035709561352849282435903227862835592404159793749729317112597065883058509853435066790118748879680271670486145297503710977250953643177826490775974262478483443688528108431825190720664964399342656790033476068826085957340039078481801492779595815300085876739639850106649310334962794339335014800983436004917974450674217855931636757897464767489213294077039733146293828735624273250858022428165147882911832195149297295858055865685908698318043599394264531750723665788875392793178258276785483756222091807802843879889665573357921615258903762951764332517300636579188102823180571434967294900821527389059947081260589004062668843761248903984846498950359981602625739517198716610795203215250882070513272542734606421632238513984510375053050678416852091210467986916382406819121506105510335517774762608765482879930152900826845996312128138447350014769659633531295494166191690142109515664360353565396304091511399064688914090176023238194730822523927249199227829714157995140969732375899949976794466425433566866973971050372717161337594903350807344565860730268285564296293310898124004061832044909754307732234953653344878130965160362265011401661451064272761754202735989384719361916148518350379642405547899327327271344882225075339487660719814471769754183064431141253992315992510210759631133571027708151218383983866207391130779616375037084366546932515391965258746630771989884071286399370057195260652323968436947083561162915523958050569184539446354099514511068644917884581587126916967325956161116643543405484832370266283724083662619053431245055415160597911327002216656642030894309958191203481619465478410041388364593227956398485745243102260640583370179140993859102582765020805602419399598450076697430726737758348459558554174721978637186545478455566791187887466306568880668506287896553321180640618300126740519451262664063160525543624748976307153953498093824083443125378567354604465398010878696028139015643287178069220727550824018311019908403236898161460759363405493098844443038984174755415837222035082708290965068298827539870177269057989399192476679094896597270908729931389649548517874922641130410873592917553906333790550411822909894806395491298502834146150736320361031610510885650521043798332363789451234882156956969065888427355842586851218063440586760818170688244116630279290879835162544299379134050426058095403598484844971256436435567578036325117554020671794653954711322269651705571797460084984370924573882130650946405046837870158645477907904340136348088742801779490104126364652672253492973823592017194359321685163518339669739426833555622023402961137373236915163250065977754627777091745967845279595784711973772824007223492458410109683918290060124353752618344619597372101922095147221445666036009906001842102705118114069405356550179447974387750865976268368027437582832432861393829472297262326172931017512995402908432318212728922403378352268410853206117236083880045438132749657444437439619288800150952327629515124809216702680191399649533335834281650900722611295120621991616585293470373177348794327359583955995007084420726831822833405003487012242012263791731058212535613061898875331831929145999026309422664826143443022260098278773571932375680276974974200563221662374347187548560745686063332132607884208979667424277741056595740456154178770334697589276791267188813179510726938469089228008312902318911691887168088310332293846726303706106505744371339182989101083008024678648869039583436478229946263995708402313725980733814928254209476907520936597071020648560628840287827960569409616870367208378187004086758665835562576658996648474063200592524328899021272455717572379102847429807212532848372761469117222866015774552973276053914925932196387305972683134043226983818464194515983397044137687085860832255092532287497653360582356847132341436844597238965198406447603605659253205497819894481815086629702442316822299988559700461574539945584349589091364919464341694353641253501391196603092622277554904290011818992957255173782137899522049229374992821414294361965513714643843970647366324996328770925994655626149458348119084661457006511314722165549156368439770291151911838013739555676211723808424723997887935517959017237620884071820690738053027187949195474366894994123865285677091294959207730507572962999697866100219175707190049751678081375108324927274417643012188643160062478086129268725490955739144842660796260017334594044091253403323530778276505628417167686876208657841228051105272915618533244972716940970388492213250468450137120179070600957143989731253902980138700501450014720489651556586651623381405014846700880669011413858555389621573848397904043257386179084930616909571948692054377434076570271363870365928150719335938680635662419753803853376661654426270777266955310531829822639391511356443376894152582870936311656214078120231681291848548454358919509913358792818706345654733208008087556491540348207832091246373135492865321253346185031661493628447545348025455249131890522470465778466099664194783419763976317149920936246586003696804541229017669688797313669437990372524338386570156579017922573472969889667639412156816551532450508848948206479997300346395081390856239641338612732270153973789120067488748701012012751220102067426230245035037338638152472920823130180355092609027863433012007105879391774909461845354390226479837776791577814642364375955439424980257261346549087103764516984538328691659867698346011804872040500588473872384947847464742872549015219733443206036529847843648852670750484612122155825159176405974753679178004474776898809146410110738124100123335251704755391554700732672087899326350968725951086620033234926866820611603154560668425530117759645602216426399460742978467119712728284048933419299588748994846218583051501391551168378006828406603098624385093970658367478486914886300335498043533327947596444463996677963375104336204803713492416187314986047424665335197952499181280433261821353679562594357749605284306883404712350672062379342192849793019910670134408440250654956527946000801740936742764504310520960042618504489581029044534759154149061471816356277881489378729821380274749535956422545356322771786856746339716248039007945348266676170242494615277416991573904991738980701217653297389285814266284648514744746309897043119500617654799895006584446024449290501489095341256926582951692151111118746001148214084678955176074714528452915929371910579276819383622911714833500126633695747516588931994954123669085748816677909475727046473879328873476896550686037707973293985354689630943027849732237802568110701062103321307236095828777596216635613663468431022825594129837286157697389393850025730427515319686863057818515635961520294239922997855114673253994665549489963203786987862330825821772598528161541807205531186273361185764644774703736261521169839820686227995107908622588408150521228185465379686229849523552514907969201854738569988592897315458925099162986063277704709027983628478500545356173187844268435552297725435978188610286389419456169931360961123514813429103198679498781991133328708625072255318278648695096308052396447117514846981779866698207743583746152472933544116375903959752739330324510443396214423825089338155363710666497642278871483758083941855963250547223566984738597567540805611695971621944019167496866836503404737341725145913588077108690988349542077059790959153871524820994613920526937969687198717534455537950547151951645020718981378995187250736975770142975703865860312568948269196755150551626663637057623290450757238219553757923970202383050089597047441179545487275231466381523791251551083182399978407533296931230442242927286212847696737582230826182977553593722301460318726266065925360069866446800002591275613299037119113904591580480333182963903217892229302183009742675860041006811112249173901480887316947077222773900378063600141935253235933634993280546589974861900026048188125298558637409330614226684759774595592351665853598894560536422998833500041924426386896807805130897425561198825530645219703925155762851608791903047684608782717398353246335732901766522329377357950555667340448225796359991398842900692526171063710851933371586153226493248970945607578620090852952269348943400777656127016293220690478612553146679061518931035504208729526682002886208578827730237176385395559002414319283540995850388051354251669787345195572772709985417291164497331818156418797910024996591153847636566898408630976448816946111754817401006984837196637043668764648104482956806105577352295827510957164701053084068511823606616880259210745278119352616094605681390523599799585337591310607456773228909835312573316065417768639932051466751904911257335653513800750074160201932700644687053608487017092454446438061418930352721558974654691044428432319299690553468441701590144315102412940960053479592453601052151193227081542391156402433197653034797366057180762180356164865606734943899658781684470502009734177687655537718180730829983655790810650156038686288268594230487043133704782678868837410778302596503924729185031019815646664361910454852727252354753607862072930996378967367227892991158748965431673766410903203133954877955269103623157958737434676266256770465739946324863832562778829230943811381004648071450302032049799369110858161728500946036558078788265670862936309531198129319718264191792528286089463506353873022764329550888139866531798887099729219962314682798026743290112203753135637362644788822726010816441643835960611017019393844017984551535113682425096624454939615142076203653854206747096776250488751182345390568511749622289393866255838643169801869813851247975386980206396860597918739038917443923097447757374041289425935547739492007739588986591227242519759446206394077521631768491697316407962049301001333368611903453920089355305248211276712800373123371499629118364288308298856840882460013968674724589719597570444804450052760722717570920593350454309691220527904700669511525038011964248332605135888724459355686395227814608463656678416292079947780603639268942377682085028000845948629127017161373485300675790444861476325117290763988494504233209530063698862825548793945348993816547248512590106966540043585307491884279219922053505242688444368218873754893039962559916302305192638162213666635280617156552304579414007315037939079012839161446413889625034509261699500142849835233881784863379765113671302906060291116365180922043702483092968324034532916052208540597613963433218542954716803047455768844314012464396865984570247845002010138781203190867846437552424555806805522588589324104023633967016095235594931454954197378833827454578353875024683460440360068437822548742106890598544646151056134650400719130847242058407107090703658135337831403134085023732885899549236855225504012137773587233647606959090905502409328579584811774015045623059810909993694782087175589718194823047799749427161759384170646651177572574280246982671442741244740408376758947008657045899363832135482884174142883138423285386261253484970066058738492822735317664291100725697903411655974834415705437214151799647611334142842783053548636650494171726179524364446029317558021175164630770304248631866109329131546265576379475776704229366658654268960648245651900119048911531700247788818369021690415374505303044860956185713330907842020005336575606099859055845886911977751102769730069913850250415512171987661402424795911739704777900648980032162588875728155064868841875620657727470221809659134726335255956156576961822698316497357111489049082289592790604455279106770431436018399608553353608948330576089985683135061622238653025014433784506478939013503121081714179691945437388362455491775152105476145355472952242183815076747060320195424903739152709310948759130833069979891190678486967850876249604299466120551755623653785756363122391620228597407113328915253208204939238564364886863948505990309642387257533987373060342774484401008469263612229919501653724998835310442393706399159465834454047925503863758051302565489501895857545662145940713885780266752976997387723972152022930264579200222474191227430374727643559707570943333055527084239235791100282700040925816059758783223803310632389577444074437869094347983765203607737898990189810172780158263347841317121408064806264353159741908466735397550027253169270214321756123236150930585410385326639753697002945831715690524430291968882242835270070261313907743925842750161871336872376432322920333310290266013182635231094792719888473908997788021502572730629270292957511166207494290530334539370406278507071651095421543625607920733035748930549279415204580389443843598817081653029103477609790889457269895072664181453145844511461015875946173332448822593302342927387989211868021284181938584496777498857777423703423587419975362487269727982138660379033399943465476738534542172445184750004426449462787325190331378699873806482615161662526472897286464209267476591855470369258389657402031885679486463740417418065231554795421809440828938329280749801849883621856684651408450558127382694217184288457173869483873006155019928549811712194335447948646937771239050761939000032281424243970473822552018727423954204745492029027025070550190358274014231388582187428032639408420254130283503403258799943477716553919708114530585805282710253448618689520306237720631844178281537662438587776555379232817302941173283258282737575085467052487595616570070274150220063468446994240228552427170993312109185320180417538572108343659018967705222999591196747472992442272364640328576157443788201453686884064997040173933796478284858177971254726488346054304581112341605753713492231933395443192233154611911303365630309506868785160175677348252912315885880565878993478428063178482706531186460474918380604422925303774179867760696101329426795166824197795439035303099306380249569575400313710997767853135592163822812136166074592547309474580200780333661998872845821579449272209811023348906026327712040375385838341002693019487371201277073067005084127857925580061898626173265264379108011391430706009899082474027154459484927150020345503627945228562197375319500590276868147069385923290931329831304306944422875579136946159804447816518105944056333079809787617425310566038921857515433347365389064830197718986795908970472513613758384079144540370724915954614334203195450800736561369208588656507319461732365906796958741977785825879951406985294459863970704960684882823694501101876831717781419565894705825589690095023857803898618933720307493989709801064255340432496483061881281514855621972725014060307327027265024634927489468349528221416314535885026704119788075324375597559068052580831820630120452896125099013354284479879088058784612807898736267100967912544991656911584050868265306334513665632809365581179760546472054770768658266098504028779414373501387363936493911833195619497998825469056515483305501863820372656052713636706345491221403071806967905819724923278311150385071796411499589838129334828153048043816191728587686503669032074302056911269836007150263347124028078300856146393670576193731493900467699031503480847154095535722043561972250740347510326771028830280094423358867859738613127264250151047534648664136379543112015229392125378615960847965200342821492818388701149703233553142907332159974881852233958718640827586263772902498254667402553839185618955562146482140020725529840995748726279424904263503215179895983801605660248216226648539802974807041477966307056623510931133845885093432148267034255684114789400058996684406191005978039793393474400676181574827370795791886215015111643082602285044793665535203865654733333366189951606501930263248874117206615401278284455109895522344173549796739683994463913542604427413507305979826022670256296416030161053902437519803542014610541403515289319052240822238446373685018803016026077919102940602476984554035975350133572096003074795914868022117651202294259398395158995457151433361384028846557210156154450495284006901908512305993526369176814455150622036077683679482152927957788020486544200997081335997019083887408149093901737926508479645549997452016699147168838571249405298688227194658936336581040858902994514744620585724898361147690351320620754315911764003770169324163139987152486731355270324251880042459071825094941962624506911367327343231405880045271630905800473951187809544217789120100700626420361921689647436280779083776194456819454263378082911585451520537130792765547238981430293614626691195362810920670506317503698222978591416457606462608696894093817170230142964874909372055679533310979781184759594615397678799687638358684429948873810832557039713409806887237059523963769833322972210854558391311808371368906015040752220522883088232304493452248648280677259412792739156358902499701092401142200637271139083540206923727249370623340703944672329287913071496678083352527101669763140643941775676103666922672775930377379455569442651409304955070887395201170065768560363875330077101548557126934673950765601652174780592453938189242328315006347693448214785154582144753580572273550331706957056021367771302062797928972706986880503533663648372086532199449149730917760782275082570554225371900285594184554341867547427377749882703879148990055416270455505982008527185945104384759216536076484216702419280828271354149759204962062175418213485959717931073445849962968577637383582913652199927179351452196504334440145783931090023248398272919317458566008652279003537683401868416910878212861247970459622121089533538020429760755468001185353300339197263853542449412207140825456893317789030143438587715921329100297477889604053723206232475896828815824781268202807483746439219133348862145903677699380582039140213429221068900675593975546283122702965588529272800253987385071081170530793925041636760526465377076240892019386962655747459276817678317230278175291997077124741373672309126876336587919021412072491775093334515225966531159755604435990177090846225824830041461372060409493461143671956054671878330184110709589296683821267621495801182258650055508126609543111261551209750285426022489716227243118616425039957560895704846943327517640843620835178642143014308298053992037547886937895221875521737834477023913888395861484753727080840196542477938059629832272342699464010843602786243586461176478161717520562420125016627142226434599491532569119615380030558150483236730240786945234515958681226938173116144045049429134392745812595339804354377648057934617482535640750345819176704502481072999897392143226122506492788273936629912685193486476666665862870275702917258184013153968380465993262904708866139983151502465800709041627164617006706319897861566576618564899864171831516769282830539013596690684085514313129501615415196125230812307220796599350906550451431992386710651113446948709808774307024903553987247168352860609160366599999524220179676498716898671663696702613918161598913951477464122141731460001288215282273852305721462786297997172752484848118502713957595462576149318644127177672534454407518185134624183928768024087901500255367491830669577077394991722060807879030298544471643446596180351174904464237215134241358833696752146686962042341789568946290315122538205155961730681819321777720463599643083357274763169021084146003648175215598119511272226258264775296825836490268558898452394993152058704672266304845114455547329064997961787244892136995430506010638375430308689918698116990108725100951980633967317547997123970283450153265937765400197691145276275315395782722227983764290556648459240134328362419129926133279490940965257098202822425402666054347046271944426828325652734075000271119709442709844018051177085284629815475231056559495646691123144185776207592180988433324923563332576469568357382642677322552824365670981998918816528112200853541545804956383189128734289260157893390532754211108883958052398238145759048043004451314810108449003853108457075798284493287807728771957786089897803540546088005300075681150113648577852267399744075891256309497920943841849565334504129351962833166477110194110721402142955907718110008519003784874815983120946719879043922946724445618300709193621847468511097170276000431468894072015348326948460148110627488125018094858585219049867952557870336100949106313365424400889598532408417461722742503529681273323950348547425051770530639740689839029758758486378206885937789897741192460281449637704761005175346086484278437740110365028731012826561245856242770911789406402041194423898572256335521243184644690993002638231092369814792620100128187349870775955364629940207322516620822576907406346896634265210044785574435881468188793932941878018113286148383758569599542209861786900499019284322619278783487537578425743784905862867269869752301715825478122274828560159661518382724818468019939503076469718328555540942391331952558537903384168753978083290968593781791809188610989063258663366542208119449140475937930774337437703920066745076316546782780209313293699760225661267608222212605426933908801843695871783993908977239521685888366909227857040534565410864024777772539830817763192266763758395698793692639520628302084922585514530148986057255419534503425191367923929188505604342988844557291193609270590426010655405522133506347029935456119215084987627528453611411195974431524007048297745795516977059890139590950783510474394181743158904126114330054531259588789459436074013276384655846321584043841497284361821859155251502973432443778773297824920512959255358449781000668731196244684564031704930901712179423266738250708294280690990549176944650322910397741909203292970104507140368096131181606116847303293058239995052678063986819120787558976417991630425613163683211313511376274901036089426831837219008522336151662620744906964946407245819317834314893109835713440370342411534591661725446012348399664684122696665750705141601932816898864804220840024481364741409637772923490800114323058140758651172451645054424859351396582391517850662207510922566897552639470728387801951986651215815237264405037514343968512299119146935590797263355812971058579811887985929128525370805954353225012342264864453412040340076378362065422939827231440531885228262077799504252907337811216843530015442668691842030645744890981410546367795417516821439092654709138634414909967732203249791648350487498250165077427957964746436537947303941018975354774678558046738345399480186185341454418949138569006660234607828956614760409665241273371329365263548592569909056899963738985294323191664711451714754779027317621200174417558091125589121823560262207616586423170124133094404355568139458897485053609789200153720991356327070636653570048559208090629122747402521763920194598357986827822711364402187162430492389705068572937310064212560960470508472307166376663254362438623919098839674200147451070893925897754630216569111093600477672797194747604140509349738744186446780605274543655775545826691156847740241787124494236911628001236450663859598363090101999199015923431330261163717757500579423930492610504578649157893736251475494526459921057725721079524776452613010402056219487163839131118495045395353408723470090676193660886826893342250049127843994764588545809138618041348964699952935292717345670768925276576590913467201302723476967820815489614703710455416577187235068487702514409267513221737959092144878674782157652982022365685629412831085844423094075330724173167216542752341809925849499026085883468482945598598571409672667741970115422510551324343564919412523876066527049606536146644034510004931099020560971385031275395267844096270053148550358292200688606480341870804691201146606664155382024516536322694504621289908527036156558654793627976999562986899342544105732239769829410170486918299834822144164790160831726355526531695361475350589980404549374877265394424312229259536199596319083489802074949788982576283440564890375987099347722816173086854589167088628229929601725869649100110562916543590936361405344503827173497759693448817341860622522121778476727089350339003993092222796277729336318462658664609523017540456493443747730562813699515728565744300524096304306537999423763797729384937024752592870173708798812308606030498509102116132818996772702537993903307125943570208147907666810435378567560650708053715298177197693101262697779424334611350553564067059688825363343414007321204900951845957580147921069031646657936791359709651818367836867346944372037388274925746262912134551060223310920009292873503133045616682300780583375915070046320907513345005363636603203455421778904175848582754769567227826501554913815311979985636667684140686580700197067277440915863612496564612305373110636047724237675160805928847909958887229144126045135685293811425832950877689838040112654957414880772808834895700523077169630334295460769654927432349454484880649059621651706838139218741685222284989912971187146585710703453847607146630434048062728696312381546661918412334137559633935157056367873381401570318521880786841861362366759380659525669823623692747418028194491045317286424623570712088681437493535358123711550960833042788997433727087441115947175260446431047019482831843673207969676500234761259416955247453376728978338820105408256722890008470282774200779371272175571689897404911504699621924466845961183559761348453534058498400393848295070724504419609525968351689982859413839016935504512003421321859292319328547736778326269681568830075427548028317359813110385588303297357588740973994371764011997936304407972511236323046284400020158417035861279229613121959164379682595064916077280135421737630864305111756261037240842646987703728442317062691169967512437666819091913526582138315906965760145478403142693988341357228794462274128527700532986841959881900066420873802983820804385702605876248546060548844190124630313200627979809847448130627965384300766173919701605804969709941735085119042710969540944311184113659105495313899757344297874806236124195406670618916288382677288421996121330234568023317067549603263132312411892040346235948418407182516193403119130560293600647614069441706535903650228548258444326346039061786571287705594667183022555330117055035315201398429500134809699914207160421963762408160287297061637290693656922425392494488832005341214823246191586029182405574267530763844894686536975462084926694021851577641475097970555992301741496308310743198589166081251116071323734104525284385671849479720975200931854785353687781511450244943796631490273008085711574013739029595425168971998438942796260554632011269757490031305535770338446117100671844769915732183797235965591866441127695923418064744680224607239602393471843215053275101079102994084155544598535783340785224060450376822761147183087164018572998291284833836899021178548259689373312922607271044754104645806501488297362682600619716032767362891683192585247754710167504360064103855322450236503666646292390703315133197228229390672568085440577812904206182078359141247727330132127465917048212111310994962279253440088885426063195654700470331775193982913038499722115951335577396171316604933629839086924985805001722462283576914903752009747020276092887936325142961611436841108707311070369917218239691583443198182585981167881825767105322718660277134783751060234320988810580065683085147282249539954890026461177994728279681917141168281042482756301561882945958405814211725598930899254954501061946868243647743459313019084323972714653420574470226932221794910760467644800263197839087878287533266837508328100734040930954043084309794420038407536074230708536517228016201892803106220752345760335953524119693999039383307115206289523282634149147067223703387285108236912538653104323080664557327895179130979202401998921535881054121780590886603146125170023953816325890448733054824405096396456560273487200694997279508801355399060812137249217665920714980550028677936574799393119372075173357080745633191337894383601102633559943772558266042725475251392045174537587602059323486438779276662344678090536887290339040798229532879040665479086800512101184503809500368489402775378851655234467483889564918924599846112199202106603431412132899111916066721366441028943286947549236731994739564224813554820341777198205851234335158557759272237581650944891684177504193670167958443621245765319924374221036140837619656435830083476115990429481869442623252080942098503043032551653108174291932641334884915660988209482274242103104896564995718139668107404465372675544363010313827773219393075345881142239785468457100113408239432671499129686062505608408409423597841981145496458604045680928962955948841509103033731078149094501679477720230193431179407740378075030096239243973743560731985416222712769310921589244843260811788888581859453238234698073865927669666397385051317022418364452000323738518549068308059730073759518616191827037798229448617386128125711412993517533824927728308336682071427797042715256718122893566366802417837015691563174535056624443416568492541011859558767729667543875552619012403297515666812094992437132503200335477655711816516348676077406539517863132744431241189828129695568344795272950082098179376627141455712450270057911454437652124695482659045688277726633319949364320055447214237328573398100109284628585054949123066428861738956191112867086065199010772762639454802247392379068627941055198752064858373845528163496622795790494907689385515289888917190724550606334649776952575291468915766143123960992395259352950403667399019590094114936281332322685739606850998789774201374990732297346496891537306873631076811850289556141722595009177059881231145920194613938289010741210024510298357271231626615187057327641017103665678606333050964258014525312615568924162010860521723598746528626842162601649445245941961126730688712069299559154893086479336816205879270720764230735736789788600920851543235786390057617375952839951972350890044815002462912221723649189693091156394089875897961965958591100435700189746706962084971740529427380677444969697432917435631092536414792873530996474440716325783728817259798045205137739135390187385767301795731881097624947060544560106312657506289902841917898634875575784280635337148239339054682756331971405236164250872593932065324936682690637487217063266254034907793585270280695637892619162352634586974611094764983591340536193714238540545180770599489969770601195970139272293614271462534611238032731601959316131009222716809209708423962701027035949399684154615893635518026127059449599141315216238907273538260577917804619007656900333580487439419929448928493554552345656876810061511183185758774532545243430382393473879976882784548453512239868522880179874446478644598296462332424291907421547443571280405398028515501586019169181307293488903209513540233925974480037342823427728522355661181166137329842393668659911206876934095237194915348640992970459301580640682337009345279900581613046913047167923405715307602590491256157266299453390400788093364970050315954596358962724760239269669474372838077381867271802439296825215384868122950485312343652135678972247369349860492421971498828037192679255247595391873288861348430392159903724077130933268711132671056220160678330421216489531500884269186885146696867361786301292251928247178715452583229500342620812248026650101813861549178625494495155760884776156359190492733576057207639132532247817591626820594974415483934476941756134340896305872192143070783494924394067852180328031542292604869454679112176509068187662095996383160158703913874312376194808500400335229030695936712757260807463357746257305817431956788386305019042748230771226849389260695398201500668977384675140998414640895231302800072292715573280089127974467730037957514183479681942325270309252114354535232938263675938256390985266761561733969942538113799774624080454623106019263421956127680103548389294029189438531047092369499332639957333047220966925021651877696543978853909433377753510769435385009143089545948916253368476449638466020648197217690808753644843586659559571744229944539226289786811532255300431144143450899294018006536105109380702754401988055138947108733241713637404905442486132664105861100415716806708318947144126643807454937455777369975885518143603203437949810534973311599767598544164628937734042579072100705247674276640698112396220647958838166251814353388755680659729814440764614039213692207551356151195187146718429020722075820774262840715884365574345551791439783255551758180152933146563408364270469311110076610265008827035393074403294905944773148100978120765487955538520325308436925391510346608505990792340082179488850018489328908570105570982877699709387600948282514346319711761425918538633829211128811817288208707382308737997446006719942024594032612351446389241349241415387380231556435809171496035822059257705622813704071569898239919668500366772185816315994447182065705271506205579025235012857263454591104635038579677069577848642977621910795738721153612258372788811529908137658418333475411827798647103942650319636319257845397455138464135536423752099073758284523579108339489605997269571664348939814783804167706683822757374491569475801814382625365277788412829570387129002067263690717441857547525886457146105712871725452646304441865992840976949320243933512057259470381654400493920662429266480862245198600301926141432000641167074510751118489706016242173513191704171288898757253699290900868306177712574981989792606653650771172083687208729898339356692257242960766045245027393771890921286566528897315385611100069179803290542961949549239876842254234620565964652404971724164794505457897184220298423420998247553193216913389745209328028648304793380705320338864482274115076435677925082337732581110983956640009699616335222665705287072749389298311641292185377851507460069970926249587104762341743132818695156851927095428182825642500499091925263970083682345677201999777294138214452220916602038931277098544766661487397374074975104025273392660694720316691683773659420725538680432086507731691428511384682993359634438302038290183926350765320507195315050601819798978967784587602812659733872804974528212311233834939241010744961694912750854914956368416568703076839981800325708899185132973625415678373844514424714690809415454378305792544096638022336334829423638029395833513286854876198338813984977211619484149904199591196711747838690307466402833943575871980564112449512825012345266221593757834319412457228532829902665405666491192189979318789893348174756575956800485156197339602542598462017547842755397091858423471361551188128718318014654956906959115600172754093974888835775869980159718586002343629923538579319290118379248072328966810023734749802557815472457557143275349572137553596205090734764760003120231240252371080201743929161539786141452727237523770404490642661209110337555580000432500577557543501570541686947530405558738475582515449856702854555831889537488457365769779411112032115229379508019626615578914477303942303358092910237871367320953093963018336953795472738684753776586018234282132146092909535522684239759228620500656945998618946039825484053667996947722000682322287361400901572960153309738938064055948013270327216996900644974979950824691210675936280214028097136650880728978613526048235516089635096987195085628800333173483062659787484979509129817511881952272518194548835118843462632767525941637392165750051215012884850563904007743397748493505206202127321545797691088068783902175017657755310900852653966511197399022455374217190569977159996415136260383497385766713370534953460644818873523430593991576630738372445498511583421085065654960858591430386214181955111403370390924585359490708874038002529805096417339250449810779989110622114674530001980614833159409865855871033701065605222522470994095829777017272794609668935205029483470318916857766482706974284510452453639609057968898169159659221281686783235331408430109874912999915523829639261543398942844356092273889446378769070612629051377959062898222441939188059632344263777961414027359497659597091151796868801559430113368326106012267705104127686232070572544425641303359833349420491350054473884744740671327311443618409238618843934861519446718356638485900857212982565332513956158015266636355286824701210898754297229633433089134527185279479730140572620063697960133898018076532315431291072821071591507003342338634902806851453996449955573920203965581987838734410428096858304125363226737120005846457306774796198746543586491588315033867136904591218968143664439565258257121141182041608701197622357255577080479278051694269650958336025154376069775122446923697268103115212531436185274902476814520009655981124449813653517846391092189299697439174035694233879041446508258912050314760495102103442918318810089157267070796529792411738900635380260036494381849802986522179298769034164044402280867406459279196895195221814039548730329602533153863173331706057302643378574493577337891537672040646878176118462312553554768320242909088029887646320226021205767888814156081924356861190092591733041109771584491188552467719457543944645727277670640650113239107925920338615960764695613530622222590851742449799813976195635331542161079401845724695655986505695205338172026426621388694204217148153897954642218666337573387988509381452883099746751938854627357681040103594132293639416304063179620024715041208433524818800347387674750015797763944090965964945235269611778406927744289175085710898718354448489467042900912558929982277586814667657017737405218663798128881523454120479470313322766801943855351879340658318056361986128374430533687537364629986612134465990438087357521074802238808982787702995179113378940404362347194312698533318517707971212098375854397468419737197107248645698022476272780681362177370780865721725862015294182310912764850771225658318932127649385115684182688908131701146819874051298163896373730102515360638475420911068876487268690361910114168019276217333005637527320447492185154551864708703900198448867226976819357832922725726379294639098418433471506344785444907992670373573083035463359568147691478472988879941801232474088884781085106240734371374221117861676272758686805425825122175081800942258848345476876069471327582500615849223934718625411967856157459257775791503701294168537941988962384082899764396341706733269524935050002827816273288077553550189574225688819536065942232751428514582231958487555024693567040158101646490521553820872546775385944395132953599953464389835105612952598506537443881501412261456031415782162902173412232730668693564930519713985538051970057969355756046815201869820449952675514848298886833287426703055447214895051519516112919513924202217605953242466023646113240622810454713289817349243764845532347041729848995299733097982101829750341580211364723533203074696622178765323187486042903812092798936152334774591188134920939714559822567207718361660181329299548498296815793130506148339620513067777779604310032843486003222302309624208707572145562879279625391739129409139372089473651063919508464506862012881441622718438124092222063780749149848093714000951392730950200354530206318359958879317311599097502539259663137538978748069714187316831377247560904172227186460923658080690525826551165604133157980422947392516685270796245652376059382290928415360069716368284524132723504536788912108149665202324774983997230798307938757369647699705500997471649548362421390671493664609872532626399376680825605605614440416213838354415555633203874603985679383386711551628180569392883756050038722389046999051441875245973220198124411538540447114717148546387920324542715051660693511737348681566198348358180599170449174869011462367684675615606616347618765395088939314532601285431647573396518995510969439267350901957237533745038394461273345056462717524825858298940703836571245241699023328910082654853967950098061127190944171312190551955930522820158762709198667411317409401004689608894505334506525085442261724945093541021051471008981888244690593722111371530134378377316832143061603724425148185962525678487150602153025035496314678147656182902533520807087683773092472715793765996386754555432677043169452681701276748521005270302069849599012557121350337539680921092397811619076938131647927061783701016477413196979076394565570259787105808475755609743727202267164952656242459076632779434175724020838302165634367045610307981221198397571001653986167725760955905073098154729547286052183586811559430019016518483792501901498483398520451409096484119366702630649669731638470781322328260312901356563520507767357203347374964241001209185794626834080693765395782669806867974400355743315746020007983862724234340885261416911112524447228098285185154960863067233022873593555325209577928028559569252038094747511577693219336288173080723171427975885063666350138053280316872662930663496181081686092624123960215103094279936214248564852585020445107203106626872913017404006312411848146685661909286689505091332962167538544191327576209630482342554400182128520083359107863434364459987288158959366694693021845483650461507714928333430181342703477025447007357670920947593165582101138256672900827384823566426415357395965679188277169072459495577575876364616998745918521467803507538409744309898582695358985100705765141239396025337336467877064987715138391577127220458401447232878593973857945002338837875317167163904951233498659076019462706423297547731742173361234618566459683521439604411568174143966968869141421945239755689039975657932412316569883078208794017387932101521466797482607557431120902007995539404387199283183194042497449553238771706837935227636562650159066410953746416951166759525422957162294623047085853959990740200241910031015502136412460746903435376023341655063466730511095122931853176509718388011849744156580018548706133549570673958008307643981993141924129432665131299729466624917677748510356885889586354964847604343442625187169266561541666652617552872519001203453752624686713186625117684854461318856790697352217837093896898193341552602374207145386119083034243878741595796074668430953198776901668982899825290499119857875687154589497901615775731100025518787272379152408711749912988608372066535280861841457818073055407849176027929660062568451588230979282652354808344847368464997038102829240022199990315907510971079732200810468582431867889277040439962013878865891977324912694475967065993860790914927357901263365136507992288851935933301412569367488979556149847460117720527023345917846070122867571421881517228871761558306324676725939946752065132545939802368653792241280354321727591274915182054956883859807499423307787274537571144217240812327313757380951676183882119085113269680950962391708547720232290216712386839898853736768088340097442826400544222526550394015883060346249283899188126605032387315681528667849209547234377700406094892991667447139784576823245195609924060737739400218713258708596550408327610455219024941853022968741069926125332542613250445204337556674765898634010898997082202071605045436231410133150432808353008849959852659476242497121112575529496014431217914879136868893659852707080785352961735746011341111225559168522523037111177198314783015099207284317787482167965553443666904755543312269709549832807809866551809323480980331599683201227344191073984001579742435867162232446974013074976363442179015491745553893414256485994370781664459715501339732675204404257423885202072265865195136375240922760466760257382885272231935659679879075357968262554188711046801513395157825417146196931263759411994557809882426575965875574095368235257149222708289341742588252420063352795085610601031309254654751543436409060207537378567991902139518339930684242268603391630941876811206108791736644043212136400358619522484976943098084036240042005974424357641995280647844001973256041481984880243595779545139380261527156565147475982020628968058087323614225707291750434078111739867109691804200358981744987848257147168162350736900944975601761808849666610628459538825307664186364641778142111105194233455467537009723636563563198600515578517991667662923401451055834441915944993438733568418166463586889802308246821286273336646746489464813743587472989246963944992085843066350911625797874003535400773504306703698893314531095818353157259004135339208585493191003686295048797470987265987367502738349655883218831547698046754092298990255839805285518822468361231891374593606171570482405385717500748117261518406542807673022821767488270414865656647988772053028876363057248160815134291606472164972259527491508393911510291878819116520301092707740916341278111724414916866696762409073968409816352689132388435073129598015622275223025864459484498643027966936924564703316013022069382543254504688156457667194296460225456212990255549914524712816055362940013622157914403721904904905893105665932970390049571321992788979806214178621180909164263745801419386941585659516467927378144807642092381006086342397483279985389425838039044825779084849286584544397675490482315685974899704790707770279620008785503782089965366302957465346612036308843378508899944178828108200280398264523758761699310187783833963072072001339845135402218458324099309784724730793051240659379211707709728625769880097157091333315777882590062010129056893633445818702666667236552214169516823758545676187451077352113869869437978975067401933602093871405055729914468690233994951195684507278886078253653283941259183889571871031359611063898529190148112779461881346382305770791542587032765623330845391755298394363306790057799209305362973223578096058740642574779298006096356950791462413786777876351305696192801118419976164998927115700930248249318672072627679716394538763477021068715514809377887358859223374994651011448527261897565484040099459888215673097360503229137201387017306754918175134131724871432663492181384771553166751799681357206070673527822925966459697466383856868862002373449208172382775549484944405980871279168671265130944958764052442514853210915284635461039566722383711341349194779456298928394759545999032138070671631456990731345308148327555962281001067593893711683544991681638378509081100206355609667217242702390089808648869549110830482002534018046500430025539151800567093137433326235620588682781470610799958656322851738016336743992252649547052812600969904393020361894713727655796626143530548447486052710195388540981058060557500590594798607721291816397295309624711781043477813797375211348508509755467696612058737644903946856950424026563371288226384737932161448027010213084647106006582206485073671978577243985321541469193567987326200385521751782033528316781896653768920680631520885359148138655178768415942579800558477847073224459893078231366713922364842590248493616436055382953590731169907771517570054027320325512913967688881758404296442991856064921891754874258555768335449668293326295652788511156698361958906750974320701730567867856366428259409314490535866866270345215800866993773619172513237927457929986045019320004905617221182643621519922126882494960368819562490188908504558265799407936856898035809787732561688070999594993533387209667977191325618885482303131079793941625346394567105831696020522160497622853504372578691732477674369060475662341773592124144760038792936324726967387308695833287057845157078276679120484320645351684106794271166420774023396410660441593435854319606285855889613613779443861911939459669116115696064224750185320606331978621520925856376728117683876002926580074212101595925946608117844597085910506339912288208455173038257933916833052484855349569437322030857832030463620710568999559389748578880921330004804709374209710687152732369539523197339784600979392579741485079971420780672379533919557864351254404174854781658423277671693271738303388861591010920193671181002771184262612120300478413502213034992415833457936998503046044589660807321896558904122942407820789333544989032741237120936231006685333996635453564888489730365017262828675578202551749438353281562515249754101416751788076518717630164143106153675670083026081978116813589240607724180172057110922855400049794787940967589670125642193524682055454866488195072552438320451098314992781163594775688492484876376623925438666272553630235457516265386225688691418598113081254103025578431503391403707874563961134477094130711097876018060343033292386612909037617035700238265566060091215361797800750170016150228137749354573352111628707196211104939959434467062238723863735213682585812161917953630822564404440393517626242457331505391421762459768765371134788669163622819022044897915262896418463372369211909200475434574091725040505673501924048960074658978756506965774824845255363124391105068988820671040446105720617617110010032075125504648257770985051264888510608255136196026158704703107245869136393419072269283814506200177488476996772087782870605400798086247119051897318959873408496907572116329704846895106692421279944014543794479162977707467233137077620098593440699130146239479607717902219939115731775432901865782471171230824667429141690334359838091711006156217173476681978316679515572282328278832927652444187067631209467983027189399561874879479285676551910798488294993422831411864266310095176529839914200870443683729278572505329687915519612422843487386742478107672254326787994240041700500942565703828753724476032532709480564373460121009408632471649579916085267042820456800583827255979825041748010473681710113485237715957911789040818449951095111568875615983155085816891174346066437065280103703022936470053767712924497293510561703035238551705825568982491353230838642116681499371057936296169585422976562486757741140544616110622770144869840410709417265245223994207978254151472924511376459725547972440726850259208780424332404501107679162309757967896713238230701490662613160069769441193313242993405595515328151926534125028810846507604438211180747481448098267818297725899720727115857214671097568909223403196471951982877204684251115370935633911541763155390104449781259210724196314672346795384534191717071443341899346331465549835622194918660168988012619353446601053938932624142625207807225548822011228618480020968825436957462855559487100074614881800485346802170751936920077273321578746754379500566253704048053915303741948965721341364844096165885284955727803133725009597137206846703625022171417650700800271253255671238799049757323142471757873862053013812596972861407967335700371449845095465136450569192012978869306407437319091404503642250179084352796710222636199455018805147754180780692416082540303643973295624362485354316185556337787653148366929757387914276929006810163016876566373987134845740837771117380564650445871639272271008545116892104659966566998407800111794067227653707393435052822816241667034325824199795848077480337841448581923052142283143989724831252925711429864349306261021970090821648055461982786023410434110209543060910834848262741229341793775888647322733861162271015548166302594177989504853135381783077403626996715281842381986664664636393974584468500159500581778456287191555710565598511394394869068138011740030830162266831911770369126943459849536275357205817053756728740884234293716449810456980371622277850465025733753199860146205504681027305646773271759215679745070993484854431570771929218585060697831397087271707973920519804218813822113222374775677593712353952776375025331072454359816818403505507557625698687400137589015547247992141637708192583576034842773746082542102636447014650519254232547213950908892181564789714430783894584526580183440042489922664173191634672470161029060589428217149799586213528449327858303742656143394149254722984685956477388196035779219154738467472772501530722621328217026578440847214931899405897514430810496234124099052326549497999533776152084276461482116171634252755277974350594775930507179412314452186995451694459869753980223061136647742463033456411448774726491308002199981759852226899852326339583777579458438335665056063841957462016840347791576700983309350709906977627817127570363992174095190668132427487019111795136367192532444437744493582880172400387189535495426786274534102998672498246955778409438108980321790631602613013978549336926687613852134577921177015751110314337105577228013554594656543837150446440004933653689080656029007294446584480921167832601338556935968817018299197361801541165112900948100692625829110791996844117251561991114655683721588978146229001176622601242289881438973266605360268692029629323320725240033158872898818186246924022477074666387273360653513165781856274297298163223138150667064256143641270857479569877059101870684545352898141286610833055009947978877925814564766306865781537540274358424631318751974072136473737290286615056674710526461531261325556461638714867568402376899409551421109073922301051807660408653988444767817928968838731664525937273271744395146939345388136605824908488009457831606318090059940403392229204540273986619241278231637353263746926597239286989500880940612634568643796028894670903234521125133739903639731848400906372012123205963289863288065177862047099181205660518871492040722880973207900249211605792318274024884719981505950004419855283543872841011617637098764924176488107687892229641831710139212371120342516302745674897448923657209749299503557745971788191751460637473672836516536386441149682428803117282781006082962334814746547406018349045097842348299912989772495114117814689736831344984131925511933130067287843913381989363770293292215238462942867996210142740731043346632251214372095193146230114805140592717552920363064886705141674498743411561019670850035288089819578595039914369417307099740232287754677950563292526410367737539837060110798040815786829673346104658464294881881976369513457639061539987812575083041266522031109056691976948868112914212906731847823019622930515958287862093036489749913034095079413999465169628598440385427376930400184607548550314367281089971847583480426654022194906304520039295699697233186630350250095115529355723552513566979816224729527010377991143373391298540397890169094719423789750233629267983650389670627685034384641534484011781183827365867419174649835348046357489186945474339138363674163937889489015794222438541786934302715282697671645867656009647641006698998363668451627811804445438776642944457472628206258089384560158775968126140283360614674574118325413417671339902927121327771142936504562045577872316983908039639519626783376736462530295958095709340720061618422106523927812643469623893293365588370286068245514827367426864637298006393283814656161790361934911146183821761959478850582600324817909512078620846123052596540921626311192201016524325034083178764346045870226163465373233059549744842381532952087506827702080449630303990545232872643830874069041010337690341288500517307123221674359396171496575271808803866126586322516239470160885363250109318989892142113034897671511964682204715721113627018474569309186012543256794274411390713882110044855638383565922935705714979056041090442690614181280387747502366586468268395425859396188416017475476039579450313610137943675983658766688204161621984286101868967119047223303902978507847780731018369916711607876455181825598637588432249962587807083047225857596703833553021019747354965793012430034260978295980535734224970913098976807941783943704955327651987843742887413372938479935752991291666890052332561099748573746054565102446763421318734126171494142315969752645235361736318063818386977866848520856595312890993530934975291112062395525682953031514388020095955864882736178210193260623635266588756161892248589402241729089118065277708835696165410925187122560928258754299777556237255326850587713939182519108980972142704882457197256474970875421517278327891183692482206455027468510772391995030746763216873395949004720352420414098551628226670999756076227699082051018095737809626091564682498843007604814094203237366378923878319953204165877956437895456702604217267876488866117912201815752096886742395245078241004169581215581751630077093622738636494341554597983778540097179448860262698819494055535030270037323794313113000558506406206425748932291816791426783586983969150827183311850930454384959346646404073497923384137909684201905719732193798867774305625727594765280773506969211200705101747424750080763526996204686939688340582627352175588257530908747232360444931842554315074867035866093652408750792649364973806900226703795691893510332754805798547021358840537159794806731887338206172339793509498143141556503660688609779369176353595196147336353054297281808643876123796926509114369841882319424259432415961675988546656587838477632978335570975052493984083281390949855539726319320550598269319682314515833417609967204950995274273987503276399966940347205167358504829373606248093555583587432512203140070821649851504058789018563857769869501909373910019040579888152883536444509806492788895255340072658628451022427748921594694959666735099210050111490830610323278606529724069300202139118670242998798872726876432730464237872246215113579624399401409754394720561587267247775243544857507373696504316583373234347993951302753029604995571297649021915532228094305455648763776881067026301682622632743299328270685264884945683558964366474832953609875437846201718162886819304314603422500788242787042609515492955771924363641111768906784979689797526053445522719515309468019545651499319250663048728870493555221478251183275908990974238840275884158695530511884656156717481698905757856413550501743275955002699314459725925019730452305878156809451209514288683975155960687046449720975379896330029067743723992213689746066213131111606781750097681442096654151806879569313931870251927051066857324065570514383274997401240135265017964915499428998701093313921095203353390907808689739828763176089627983547844391398531035533349536896709600217573513238830518563313764371028660940942086426496659541132107928183702142894071014103480167364110103426405503673896648642346540757764777340701982781315034721258678242053715739552770037531951968147685996166397033107733747101531345627387257222576552799066137592723877117723720108021130765964930256622013099919520505857103906277376728945563559476351484596563614011943476398189053678700219057808782010192373215594868945641771752386383868153572530180696638771668510906363945677406225224656297789741147361948845149015067177648737510491280810159582797136033492717422788642980855735450442337156069790826410957017583019522166395606095308508912249437298015267830525394547610079777639983197156659517409992551968115649248741024397818538557820211456157977166928179216113359706446235306929044756166422702287671688407870384681948228455823641457912546099301840517877367711592834948530264556193635022643754066632978804540850659614950732373130395619715001729935183127343952850146048994953933991401167095378022601190153780032635388904364440217066054976262148287959414239029591463074285393881532695819578413378350203498792325900567327425918306736178309759655501690926585292501974440908089632516356986348880472132981854677154769402390299431226352277162553232618302426174170829267014781664243009933551761054812165057752511428533986714789946866925118471942157829930289442430425417504606431093362969809980286767352380640309843489859514065129893967930232702391282783826055305001569868131798282137649552854928917212597850372168782837304115538618822990363007042649772379419009775505854020715757351464223379014081691654608108594180394572627819203826240253823591358963630514771688039026861080027100710227700053424288480357406926098783498511827030114678008151940890705187831049571201829341846004110111038005779615180672437929802739075639041506827271491415406633981590335754094871005175176700317718140755471880867972077449127950335592132982124133030201908178798677317789656338221117725711909436219852137940556363220208739734444463376555192168592480505012914442725251657506370907763925797528137042039235012633086184630442658725323785633426025723130129967438986598052416443427038017626006933011663480025167467636461661347598143913385996442027695808811928379423005104681042114251959534181626039439335355242027197454094722103858337780675216037309661449906907012311597584401600470719095885200773058192446267853700822160372792780266277663641883293540522186506470404833970632174697898206389475881546837213263870741035876513605038361080818508920332006396958821717470053289365652305135868807195746546145515449371807278804142786008785464627703776064821129276664765595023719986657536401853154467708147059803668944858126850364233543643334120750923138882168367251203503400542916138822886299162334096588744042782738668889510600917439064332886225436544800014792029684545391669994271134901321555760301175458668832503051081492337034665459251754152162565719834711990303805528683114536142398851215868069851630218491780957400553531085379935264588327297988997754003548550151002679869995058386071209326843119203463842774693698261714420624939605180160702086329954862802219813527284071501996749960869993209025599649661654951186144386410583328021149907018305303379778919733838990374849533809351580707366404188458300282368517360065208887843133754950624990282675369199357657616512653147542586759726669703035443707896424142314078795957508687190904005521145551102581909073832981038320879837813758310215833674046759523444832541600541648333617341450762327472526741139562529758013803369426659019767629029385094028582961980880959527576406494603591182732428393731420506848117686675726878882232644531964253977617525198652288721517512283834033881393691712907934222142779009822551178502018071683453098690497403071209371544428524915656300855326103589666114479683172255292992132452671287025027221901915879608671916718820127086923129778211288529539439183540960156392981354767345977405394552148795178543701583822539533781518802927104499074015914679576329398342229263435939938513905871774332059983861356950827832789842464306018626416803612476343467398926940844622566367237458542529052314952195815777208088404704944302455829037221669917911048067267283319324028306300127689791843079209148484520115491409692777193165158673493749990409521686316407832724513063205612448444130856903229289132695789553695029987513513770720250825568125012282087007766482711501070298650864093619991070345786371259185644512715139151040195334226700135887079929845313831637846432381005974193769329901268857725814167854918368920396709658123549337275288098710404067639633164969291641695975758758891432143968165814052658215385573654991876009293954341769945112801616645552337492521140053469505197709411087469461686175920708926266186344054493482131532920934239528666244426073308802689608116571913593109446820171769769650168009804246421764119352710732199257050700305173533686449964522732805790661259324469695764626897180297545408470128045577704570535734472215439725972677762459350674317131839402481102083438751962830464571044307422678652789430238531290042256628305197368482134476899255792104655269848260382858684560000394662048189638032826030897284216216079173989069659026622979890642310433786269404958520008008989916168682588002247434907233988653138052022675201138954759315017594382596878919746074449723244058949381914248328311714739689957765722215467625048525332279315560730769592844870074514201831085181468317303185601955808233318967410272636485737880151992135719377546033218073816668222120142529875033954625975002799815542977631203453797252208778125396275087592830722588182292887142053756310134866027607041256547179246479248995735307574803720681034844194766093708910417478750453232320923543215059644739994596064536848768187583680200650900965196700603858761990586128594866433665834589609622152134285576380245524170286756140706720663192359579790581234016221534496794145429939486293124670215920658767911301343979628723005554481917942585646932182501984430165397962335563147282575432489577516649081947265422684743072487341417496899658491729002426628990643451978757316256390224998008914474593847831349781359650425780400561325289133825123010022193971590979416413148811870490949567753226590123731599414661634566711919383686598673709312469401302950419658161344461642950598248721929763034311164576308137342781765927449087743918956545992580625805246468918322393650466465443554401260968427101637423452961543237775422454782213255820518281480872150831448178435445717907627549652343503134938566168427900162623426014969598251866708800338198584991457689462647275695386581534596448779370380840660793205128658040346311605723895591330308012691333066424311462533993856950041945242968471886315910539164581555378982256413036210403994151086734575158544550179982463202199539644159222460358905419126164984498374032686248615891385840435463627203716613630736854015494096945853344820718318383082346365404997483779295915968440687788639220561335448426790704871005571402254861154440795094148241049446204639099706292423660740494218589995040794544413466178301599169917368062935498911400256631055400155744280435107197392556285074642887148453303214792047348688605306747995750673954314921768847693360177727583442960562635190594354883204603413388239943034370938374491652239140543611146947506596522479615370377184825552117902405257335357013749053302548010483824151962807567646973783178074661811274798288312557124351387425238241002016543583856603498606959562280353112390031633706499499167569277178990499020773616727063545452946856578524280488836676518565943338792696238233041284440710783962864705673200369971848561944298424706092243787631493054281101586781605344815826788772777019068440275570757576871359376092978064184495566639143376219017951119507455261977787235533097043307214972978185663618515697695238402407529253927956148199020853089234815063849062270050495596561454726371666200376078080146022489604436598537702157569095599949867772166286839273544631885512906253784263725994586652740945818231533900285303172625123716672006970581731887460525832062006419581320812325173166093624673707911139411595243662125858905440431121280924411599289170636790330339928299108881410781042200288953874557473374704669456658194408579370613168122897473987377903088505008244301467976479168951326532169234443555789028704519037474885768884977671645020955268161655252387608935013914906747109677291134634819028240411384567674159845865290987685927895625487474807104379122127051885116983133906369873896424893001493434619810308812512224804611591851931118667116850052793411263220260770818347800653180246585365046588747410280366140159458357718021481416553688489979322280626785529176258399727955452778152892598719328144015632937978244574883518847112512047858057646600135221656049603698905695512881395069042767589037410924175972642349334010056192778759636843398279436975559340581197380667265353362723084785053238582405027784745135008451877303059683995074598355920108090416532855348392184190688994362379384385831521202065791242369272730115152629610186146762273471093739633767862292187096773549433341900670938230501695639856732631442755506808984627583417682253356359696719560347278813084812131727048307926007279445176515958003273333155752716945870154236416935535120716874522059034736036916267440860840753140284137611219885096391827326657656849901424541628338707006555813174480005847895613349201084778252636389174856613176406277696985090852319116192906149998590772205754770418077668143614242259621761966619570388588594114763537221902737331564600095121354664728919498868556034281481243557992063700412409498920901217548506716418194923462107424252884358731855482742776435741240590839493990202321795777351699510304092639144469009859103107459561882969643204464540851285887038280315461390983126112507719882265386858235802656856062883944981920388712607043882180975869097525664369822665196739457126133357873305307848604479756550751623185075466749823253821926281677988140464472166179799045064005915863690081612324285751751731517517701134247167577755512233567460604098819473382452819059972045687806681717728485539753339433003699388334709926001085695113358913377281035877844200194977131111188215830714614236843305228037786001813843514856344781941139021262612184579218854486238900347504622006322599068141725988445105562197884016522693751829122058439668908214001788292027460778386475161631891412554082231785597543237820733405782362889980646809398244221068595804575919198270047649457051187522353533764193074215464607230451983214628540839065723640634003275092207210034495795509629530382848504233677526030541566152498787006064239241597297831692575174858447800150436587489828487238929595641589282768088037149437983659183526832499698643066239733255862196946867435197283658307457593072254795817704616400434338352860387176027910893708278059182269039963215996939810452444433328047227507796736167396452580052076259477973228278068460103765588886762741142215963668237945572261488461169948930271394392516435466573756844237443421769651534667404279429524273102073123842779120276743207912387384358962145236509685620482562654713316806675665065135432073408878122652746303843270112105369651974580321667152468713894750217749949521292298425551164779691608661554877849288795515181155271843006125985842323347601703666951076343841373108922862014180971320194767884526909575239571237762065000642952893862400017069696775536092285853905367806717150681842569107030009291378191877337997994425900899507462487922910190247970796282380863773462431704746899190605207493644319600749733805191532123779671138211205309099973173982931537575092294292056844442685225352227392882465287088060027051773859984013057048357050061610417273406549014774353661315941590028487470906592531188710457215876537383821879050990634513589323476592417675907611776434150925411091860520161943117170496437979147522988803200267690944102885103027852117937370295224391873633916098522980479164137564555369042412447070723046920896286382270022423055887972919946028079266716850191594134243581508382202497358261517085594951456288809185527999386114975272841327802667514400524223414648808644418379495071361429730494383922204561782686393836026245757032119571148467337136672666491208511526449005332708599006922252933552219718362886058418603434300886571555561225881826203422866236352506690713333854456128599979942479146998573473432571805867360877045311799048209402798752764724554754908657878360623825124298994283181863790643338053621090554730507795967657545368837832358388312177501749884621457714417107942333886563898166403039507688600295071137475144899493074984645102307739862192932553692887055730403720269093671522592131311322554531041659717557436394565034041827499710554802888458058275624178357094142719156597818015953453658757747380973695125225350772458776827401120465052871066812467776701494441727178209388144433876251791806501019710555611424195353283875140670641624755663314983314772605783609394705379066075083543984202502542215070932997736293443598437596771314781020242693696840364548666791057427587980440938943112948606726062995094885397878475517562142717706684911425969420754351195805984190306690372703779059242063211005339475810042219278817764139688671832474217425737362950903895601439445413067608383604325709180657940786929191133873794517438201370085200087445271156237939030570371211674349981200747418030569125499174611405228771654307248397347000292781086303975834028325692127626210635612222881747407403997666013415023210867900415166913670228215369440608370437813920469557214179957872131432521964283482179864861422263022397467180754403580390423752431898365714257267128225164754090521294569216997950490605542917368979410680543006766960486297637011881474834588062954116729313052064425667211848487706114392819057198748059525008932003770128829123619814908938648784066571881189663264344472857628750559004651380537917662180053337663071960312899959050271660929137700399137699408771178084913821540931646977989678103177488910036493756603549997730911730023913485330410484675752403610944687357009152113098618785600473471265441866692994478653968080696566978551480524630107456218890002345721252574081615209720292749058753223390308096981902795150776912326475699287997369834938024933566663051298871074550190044758340544326244076648528865318425947467328061482746833365336754854318869133207454328055528743307580055515328135289950266839175123019380251828713613775174877584355254290102946885057279874163446836753974519121927359166154380049760398073619169205333294139025835165121062440538964986058386542553646090257561690615770201478653298010302227127800170870432012597188418618090025019786297624768020883175947458551373826461372894143011718185005994078496108603001230275455352219637525592128126147393176722867499295961944240917211184494955338406195768804544315338735967824261765655023052408471908220398123672958069615899272732655575756351994640471390037800467412236958683876311291314093914017914841801500066200349404646601110586841141141793336212148727816912801271606388777561217361389702018830021924456573679670597889071260784888962644007523915440064976593747974261057781397916185084595876271592932930441760886945605869190649334610438433544269414151528797157213133021332297842491412216909457862466938852243985225490136901614249244162438207262297515507621207703964038247213887608466032383294691138188212536874779123155493635249703667398006745105506719993318891787649263283767402130074360699815552057867939126669420700778320618935655567978865397320165264847326271364445167369851145491832700063677301903273865072178262136656608622036793816132929423078521026493820073131997846357261048310737432101816077729536362425639596141255231886575108030705957533784998068356924443732296080316254611699635788216382636449327267670825858105910767535023810520165396249183744249900765465092228029883878220424307214728428482296608191349589576545952353827972067512964048981967769213937855383175855623912481798717141685333640033563132716908750127936077387585160090645758132808859780044340550762622286642902953281605301635573102949201655283067633831401531046626986012381567269794791831881779986933327369265551375816495310254994916556899975876185755145519012112606546298344195897680991408466871310258039825619987994670384301532527545076427934894141342530928186707120241920300297054453497104215043730160229337656404677417628594068960293626090057082529788899651861341570031978003427409390344271705659389472930601201018460843898490143854208650854569522815618516753460135887040601148066504244382549796273150530936170470257919537869831306194337052576078083679025525983865444883555779052685613794134348897926654842118117481403814916217655293796477699346447505678992678136644434932682786683380345449156842077552541673589872171229876094973857978579491138572589949656942374503001524478465194338725538875042658684517739927232113674994276652569399384700799705478682189712443724793632756254879460281742294053447607201462394267845826072626401722537534365544454180162336465626337340263175252529514458039551959476008781306561279055627736022859298222081340997105594127198124157777142068508337303196173139820340585331467490230971943509044177311148967627137819357198701333028273205723926031795487760096515057205979113587563077405820312303901591411951418823039760834046732211879178944165087321658752282363700204668539902348732119668184880682668124339172636921414154923653254985877512094155348903060265506426320608218816272320478174665550010683365783909955506847515593314092734588516637105041543050987421172663227444961469181051047375591578448182596737742918058108122940462566554420314138927222098645240411937607125543922427982476030597806970894554717008798340137058975823778872040012865920665021108044826111967985810002324354179835346280938516701170307607923005119289860863461456125849919457132274636453311201808549118027041720576889674749683665994567930391059413854084655204307064386595389237676512260802923297510812565929620182823678705271979427384260269500190273607039709323676317233941341908623348443964729272977912482399738883743292541085143404282985585844972313530776557478043681333079309749761316342786044390528079818103741663594307378991307154584938124244288035120616704514455207858658259549758178593173432025606752359410755157882334854847886707045452567890583918522109801902374661174728752865334068085197948408473030161896457019148081428678389580407109167845302669738792281130488870663178262798242940116009337798031808999774793312137654908157221124186369872100368212482195757054096464231821500136426862916869609369791879583612426737163431399949365328645023746306237730069702779417863552655468315846873455257264264257591887324557636031726168053372338617585494326664202648201822694001135676135031068934929711296447499537288415491479985565348391617135193248811350716715331935761039578415562017537754434683292992735080107418829340854752551358991193417007963608931832283645251839154111378821455525781268810150851038858622092497625746092503886457212943185770756399701607765226850430790819203322179790228232227373385670287530125225513424656017575471125641104608022239234472231921952956046888425178614010060152142060965854616194903291845554464921045981921942837757201156954092154126747770633631621217821492931765419925243901740332498780366569806589054323323032598415172572494090972433289164406938458073388363770456339849923436826026449208778941710117742496911586014352886193673652427333197181300211498564452705919220409936781676205663903177276843202877221984441907412265055177846268005366686508115290466631270984538138601134199676075207466280530483800321925363316368274661557391693512144391874034882227718415748024311286997270811144196663769976845180888321340453465353178268267210127723969503966981931509136783008868174657313713246914441846497107771845504059325389370720858050854993000875945837364000719663810586856732196475076247279243192650332094441330895502571920623371577614691662416312967816758548642694799208072088769274555893099389285677574835731692357388627343122309172585506360885461772357482551045444426869053097645679786102201932593530851534508646586621875424654694326396968381999023699316248412101608964912877582306784198272112742192977367056215423694687503276637253454955209922189479728596967965595418262512501206811179187410897484331552802843235969512447414495918910316004451824780048326799934221865013553652589951894575494836740672753292093325014188567074078127729024370009919111981326285040135343181322357564261810640843202080140498441044281218455569656366554333134840290861344595077937607340068114328061943053483558359231676649805841372240244515472999861236068790172413688983153419122499418207752481188156380458138033275486886472741050840357074369014589975608884547687337316893923676213988337033148263731820766784532295051726335454491517102033448628940889444115196030179819402973452687595332662123467218044182920369643125668166247452862201777097145165071762945848455062931055462582835641865850089221587869573926121700942752646604802643798561351043230303073649880387112015691401616909539140417858739400239331563104533700382781988309569713170690264501308543126950253925035657454725075782667353645638176437643630354279319440638026164520284410969459519957566373469575955100790680235575917225741140300106657095220623627442803437056165764200251453928263998726795084714203624087208869873457179444149515096318859921981522366525051704919152742242042341902029315269957920440299027738525386733477536199663956466852569711403787766842760165885492480300720765069872617649369335283419800545366336218192385195952206155080941842021091663715377531984167950947700073500256497361882115756432126456755627396851890064064219171975301705425876707031916814062740448770906833748939168356685473198855882318069145011637807883340753137523104443640268877531400847859354387964456785609637376749729077928230929625740111841644444264302555031842598789019006676847002562023582024665238647376220301476040628033063536902510137705805307408100120221597466100737990401781797237364792107590281964245710592813840674925863722205619190079459048274165024167143627239301256763639476644109214310251305229971755807420951891751310977450918736447625572687780308964791707388653676869104931273789930030307613386658602996100118538471553761735227354897174536166014158637710794806997112383886040659050590543899469692236968124241436516015240454549656375068421431390280747525578674986762052801776051025333657902804723490849516491062075857904480956182395695188874783564867976513238017400162225202106323089011407636035419672391812082717759675141750402519990468372858569721891293799906759196652736571612672144837477303558513495648031920488544592130552054079165644609698834276853274942342887806402251040161792510999283412578407729425965445047127806965239967049651615563746473273594515980243847102403991158809628303631627825726098251040876298845571944929070801281939630375899351388772124168316869375245384652495583982306319753729964209084583375025615684316806473716208999611908306320344493119510101252689861410727795755653714837719334237022966531289255580373562420023901494114405781516126827416773842523540454933332641905304764856534588465555113286496585358509744550416264643523790840564890271491340789724592094251603044624717097426083569348949485605480749666154438791830486080316379373644485467401349368319305531895841296135820249243312580796425972694054307650523674383374310397191079175806171404559983555720154903257294747459175155478418530189289418595492290018219936718176898983645120155763261465018046135651338572947585432174306451559779096210130213973643330394953672459606691532680592017966861385985573202383129334380157563806527239155936873469055895682759927197101260196075122294232777055365624171653108008056110722155179980403030462120203918189820108914051708693085403473521581558348828830738662954953635341999926527562647145937516435509647171341379216756086585773994091941614199686285793682663236022202578641658773957618951452784355944699112724227049721931720676838050132674468720800871211830101006017495413267608425075506888856905355936206755335566962450867566841643788240036158139280709272931423639615491509940438637854308540706355304599297628092221787423837755466427980520550987988355274656780263313172581691747524120681875423007525300023456840708949491612289369018987743866845318342966576659584761825447888365385250519901086572841427777339013842463829675517004394733315057292786720459510578025726672487314715543799583149029719566688714311333836760794507655930770780186688683762288730852454711371321978858977659387651762890862249642358713430749928164462985352563446487993304557430770848167690459840299502870224669703323536349225625604119654312668903284489464271222873000226649980472795234761182939954367457714372415347195622289660660409758758455564917032709529774311543747839827012130472478497405532855143524762312520298588090516356964989315725124812799683721818790496479006342320790237273398953651442815976924320317449317571944697033669298537976135704482716110207620232677285304560847922862508788380514085109745483252487953495820320669497155452206338279835651936171482636848220269311393863227041643517929878302620604469354245294769351233861897916703631674274846948024341500877548591033878819270510429587835380538588012732130036971957510735533764218304537169947671094649931512489197490364695661683777284427822394228978672026555538075092790909137845665750721671571679410675163830352044884265804449966013184602207052445144969266595361243774798307945790775426451061128294836011498455582800603879672642721786788234569267499414804775064584779215110860756272427171264722856666405883813053501540671310647885565918290140660246501547165746585173963318228575055595316455909703978001408983164311317073226633418488024877319650757610971593246275454164449414805147498535418220001720177252994129565855549200842476426776404241734710132456086330800798442294874247454228461394529918842110416189117954864149966533953837736512607638983023419227857313543618109586287301439501063097643185888034711884245492989686843047539419764484586511362487059454096362730226005270947230571689318693523821914788368086923986268266974695693743883495443760053938013616919060435929355146239675402840588310417698658264904270590529125198778581520462475917602172020045205142390458560244925933289760152125817137616634442487848434181137386961307277106812313917521499702891008598453483213032681452500099995529789162472338279459917146952939581539068707363778672743724568011927492104689846677873084873141353794940374508103050999012408845183569021569432094464147002451547855591815227318969643887361337468211367795101389987704701432798087189889070988387371809006328981391258859754613903483703743193875613138179813141959818463201567694962676050860313608442123348720736228083905028842624120696559484507286572659928689084415081140715935851801159765704903600704057241518745571365791468678675770718939207186498075901670849491235094280941458596973936301194826431411806089030237152484986961550276447134318508762660660184326755559749058918587012985791866210150560651919942335977941261905813658094296398863367336160084840449594914716828536095657817587681876681466050491814335145784836531801721560140248976985489697384753163297506545292169693639528207197893086064498409232285794994195997132699082738571265725798728593115745123488837543194642836720386196721769461684077905836608303370016916658509264545152847447237038716283515948864431491108750836288922565921135059930021708025330103100817901956291571766705867169902839476301066768322161120297705192340339256682245256977756415976590565377898521684717191994354858649081806273943563341634448671909743804122357265217116768680008855138337303578514729068997574116996210142421102888093151291594839700935462832153510735505467726344841152500998512693192138710984579832655173676874081843788153189642920701246469080812255000912591354239550553768445275218853984813841761867816424997825651826677233219066044250520077169843978120966245957439877964885643612710354509382160951758522685743176438691793856563955484536670372287375463701319761552345351145301302950096564832225763293128743983626312806064273821357997829014352607760617701174296046516317766616616837078588067064397382163064946865977562850895481203235141096233069026433856909160997332343199444635449799048153307284326657795562088070046106179099954217453211885219222796721742157422008453215695951880186486550819828120091219433335169345184554041007805907771257581162934619896706657102875348149676807194782221265866172292084210429448402171339664913898674481757331026174217990431856827563452760024097657060823728240981993467677590173899221928977123703406555639122191338021037036386805448827819664055347182090396709547340238192906708096149799759277363838037916238393808313702402013502118896368329520379480391925744365633184436264616964437339087393244087796514104220518837482128961696513598873201972617381129906377319790452219460620111392073826887729526124599619810726467813035674010823630276118420928501453926868667383872657226810249905516573670655742921451983926152781267199961766821899399822989153261253725280909744301891220409191579370892386078649424138839726321608249484924350104593666789111381844048400494981257961509621317241443404328122855908054359683889472799051872552415563892512850853110911438081724320233710488345345108015515187628429510587732667025400322852135459868529357632167149997924265768083491949659390977603123567348755674997205029296618623500738642176415362395496350742069725823631483252631982194220664973761587921846850759835185537949965381152631002352740560138912716349264078215031647138791381052047380120498240732408248029641177412965411743319658348624102519082011488240591976452117107653458347009270101342839080841444861177411626356704844809647335346327959000918834880421136555673208481599603747831509283093007256097370768005524262555359192837302733550861830616795304734040882126107136196551201439374636930770409250798801008858737439488967863835258523191385974034968246941191981009316315249916923929715322830938316820682920369945438984909460215373988911275193603655057227264248046733802775380363458159312789310509460893782352964565529462419098680636083297905612992075010371769370987822618255158301535782621998301146129330755590985569770788422394555809918310201684176906679567770717741005204031251389498688140759901717051659783864488827863433224117887498572240168210476619984826939099553112758720326130660087056011283673920473998706418131250917073117863336537292865942085259370420662018998512713563929072012253030507403021087769039365196530580274571511997521354212916638990884390825729317966372947953111620171186719753598384251162204568744485784294952617595335017754252241626751234083545636068336246773154085866989855068588379307141874160318636051559768525403825707500678565256201169632363783235145789127516280331742126014228601371595705156830434961503759889893789410915753205340649622649343603387075632156560487624197744197272635945238605917779547867017910406922157698708258258674008891294844901379620323847748749644786779836952366614999051869949340733544309107379383727662676061199639950292224715734909105449082477308542881286787657793785461730005874933389662994280903753542749928065744407956401207852042826894541244558346263064376749845779683286638992710387029190383931844139871870713773499661244439317880553147508881798060166420399603497165698880656471933437333772981497608373497671018609887116089731411165961167762836626586232056382816076527317938818901897729020049550311876601853513796935901478795557593157565805685368582105233170923746408966614068710039305308061579371779804977914657428636334333091228087088029737172531855307545339292036246328494844794748033911296612073931251291366734029438180851297912621861741818251458539413064958225121490287250231305163156083161718124893670189307552238865881770242752579034910806849166241724611650422268700536770279842482709042038637989249873317801692574005283652341598034017676527436385649518428195153262378363559487161788148813188614403287752581601836356571972927654671308929886175119995382971645115761512079373953761409076293595391595735970904213528176279197466615530078124582556649615512854796627150983176500623337190659416079770632622313871734579395655560472391895730977815553121599435259867631996254864405483066464772438374349408277872541951012383581055865461082886344957275445835045582605004124637345403819434970419766907351158934654864305381983146865369896798515879244262396772214157050196155798336754091072450835421002211239359032995293237175444263191156181806312365738714968526143255750049491813478918743455247736535067113971836085429023028864289635364312170576334620351576174559086103114391980825899551955159173872263717187152248863149018554233887867757407211693086699149967483663799989532073225562144964814999318078559708248913795438529655973202382945387728710824565011870604153631262618228003628818271470262066582495191226822890570762337902398477892195222705833867002415265835933692514536188099846048648080850068173393433316398885453201486184205131829654315717148091012078969850225663947569333576897842311706087139429212634990286099881053321539868687985994753324959931391296236214505748914592705923204709316602274069518186615229035490368459846319256784381804206850721478698361360567955853723396019550651798529543678086703610051210243025366098803997388242349318784963905573320088624488678948312422357408615894512741152927464189249346884321316609975436202252702872517194291333903693178795303093546688543829588509943865487436901234453732772237824394742319298846579615287899129171028491717661368993277846789026576082937542159182280369655640602448556072413041164676462880216959637466636848840707924950970882271971151686575384779444187441935094996799333833226396545015762936023835576313162208797943922369622849819744826179805674130044702021185805949787881398073984554136801946094776319150898175166497961421704161074664082768333576552672238659628123352317968024755012583913215405664406604759052752565500648316795243813280603100539487429971987658272197751749056688764697981240435653044268495911757139168908010213026318962431264365795544518042497966181397797547007799712570544059618391732787044860210585635789954713458861961740179532819019744163287408194393240218813867457555563617235920407920505986162583227364193252247430578929319869966924116251755286583754625343092736371572385636856134946830982832479626103075012085180901957897477021951725897826203809630422198347085905670266926583754530624280226030524797536500376581100079784754206988450639555299988754683483036143260938945523445861281474966891294274824997571047906210869109576365441830475712902326993204478252220646350355425438078044364418013159912593466518954907599407670653377637771893753740846976914726522468638534479473785866814913346696628511873310241207928613706169092733048290018012796669442221004927559192609438885116674111156930290770067229064350949117026572773061211760488830880595521921679779524961228824074628469690662873139739217628177790992190609146702440809187888138529210629706225006780522030172250307986842057152679705392815125566696456997482305676718089358229494887469244318252520891347118964137578096752218594846629398364025435566068875847657052349143953242070142808775890292503413124561937386426151674729314719410586264867406934331110736401010303739439359874649436783331424833471551214300651662781760328128069331978163349127847047759147245338506655937811710242481805247499575715712858130813456887186989360343798583442433547736066743385718836953092965248029586902164108683831217318232124154712753936553361291722390307872305726891907964561612580677282404345738036240379584880322280304997214104626109355750705111709801740258639841492991062755752723662871373388564032475946837849287740041517593234119926938870579525110456130709711026655968236890165508041032895628657227216067896752409702614691579799930314362764444776789593997215794959385225074909768960958906390581985888958636469626059763385855171991942774816941078716223006191937206473792414571666464681247214913328841224461664460891868638692719632564222731273784462334147045212655342141549766850873210945086443080625785130080867622832489202974998747144042704418470634638138998831286850820703116559166563247499034238417871738307963081134770774426135515652864954751307228961357647785783902735058011411655263227017986384834115277288666612185204403927368247821881207844949136598020947397847056356124054429676141035987631657850622309070622746703257008071401332114503027383633835552617038918110052587230427716078754335090780526619318034451982158560386436855244052345796188006437893907157826635393257906510413130355144941678107918311294608793666252142022644634995513830849897822667692396058572264778165356270577447256326346377723912420104510108063307645192339822227077508370494423176854399702786254137604611677982177681519997664294574764618661841956868482063287080963019432216859164527073124880553916176457452745609738070601345772042749333581254761587099423921606888409837375502383747819152222041865020721294108448177747170563213679378071140597091190541893867635897794195690600243844716651651274586656415121390075416833916290389212147044600058783056977695137316635133165988119693088180740737098539763988362853366556627643448476170365245941053224999303642261039814398961855378184124451122556972825854872720508784151187364773101800117370237605059105538103769418541429519595223517080222308017636607933161355048875776739420356894027885722343808728208423081802584593112734362417751407132453677594797360086981197191021411549564809308126203888156402020834538417482740615042598496152364896529638727182575703917941639903412916975358480521077687185078221349186759512354136739905069920133215481983737234497426906925199631435997779418082174731778475212694496146896714925413392447124724613713294528427053902209497012434123312235977151370162390172433322938840282987951325120544470939202952666234828799338966786674985426194475463240709604309345694018518467010029556545766129312853355084089827179440186430479209805720947022933119677831764517702654486900943874112354495252482794405509097295640370323987512246914904648204747049229032953337087461105760798022853217436588145764639061568349254787694663641135071055347923951284676745177747102228503390053354928792122012297425793498209048210972077087336723793896941704018668195166615393658255762682449268159320302401001835013913455746391651453197509374483455727340932641930182995985708286549169105109875940707234338146286141019524519360766283732255360705679327846790080458026122949580544171519176785342329407806463909453225731328064976762592292287180073652449721886802343028355916274970203850305985205170834370620521436612171815013262517165332753655685782702390260553309692820341653478344204197933861896543058724838312206191528239227443569229105873958668091093473440982590934567217572128007294218159258323934424406075680037983912947697269576251948724704457860787081811907362904059227578035650588036002097876548830966339138375327815916722532869404155425668956090403789358455533890263389210774558105363331103671709701913594917330799152848739716644535385104002791518776302583369655650021297551581687706960406443901652237954351235012187785129396664373514538785557103067474526350119483244877169671047460063244095521710799879393661763124788791784501468811027978632312181235807148484320971766723432191921926216676251092454689417274945036416422459862258143572055018617617271023985010295079013731757096230648922036718277520419229292648999653460463316154268169831810010092595181532277214753759211307099833281402970388613959137836542178215179853653271232892888420601855095631297118195333378368861516688404007396896944123364447290031035646273974490271687789405976728720093791121283207269200970066929005769303898961096047784777556601253750602720496734123674035504139072848149308482291756533518931402974105292991651352152335753417154553878884363205246931650777175989217775501256708994329415969551456164919202679301380430967152917388787900718697324217815606978248221374042676303870762786173121484678091341963097436588520187934986710485599581732895929669539776529759149665884512492298566566176337418510919324441966239767839060289208729810060353074541690664273331426452689961759396553401012587847540809538282810803227205938354855870488425485276483046710828752110411655002443087578591329918997496993563085899316236154502741892400660397533670333925039184813092395918764707778972902416386616052176347201253885857767440852388148312597699203816400227873782400819237175571491539628798197823257432058294854393155277583722520059475148556370591016029398318844030882627609506883315797495357836794492940594078450301906762929635045481546878753320809389439120211379831527376282549297050497601432328559165476547031307936253098669253604326560332308780186701832947827245027158621247806579484422567210009521014221629794094177566599675686021684991055116061390960491618970582368344258713576758597089487629218210095012549324659975438094791030667681440454970135992468498504847912534631194591713947169888825522848627516529950389764640430183422725893069712606720163053686590532417866116454523010885921171932097227690937082473691003786325661951761100681628477586244867643947422108402767925845159458994187793055149013838902427937206596776201507082623406184772969915657301553692439017225339050097078461140605369256284615109236296944243846189727758126653367202137608768350300635075523175323311652622706983037140224088633249771575413059858188069316862572757414879139177412433259714898111557895060705521332696723225982832420827739885450546500454874046230367727647195659726400126679929001169368225260891050181879676752184474081428559812790411120034931063521093249695174669629346278533671081233253927855850459595416620716810378636181497275506544361116384822352502568652727223990427767871645223878839577847730916239145031517843963609089306223195897218470258734394146916244154808505457510404154048710647498653109169713408326337753416452063200696837460591524168821867498668725709584469218357585265743244328511360138649259810969138104425969352370490161230644617118332457130977436610220246879579008185654543858935134410125534395342074874767388066602193744744222321805477032780606170789533340878389598809077307431972636605709515794751862572916529666358141692885408883946000693635764815514092392994482719221368703631328875976174711466871520711310935066468291527138962428617026346693626100119902891526342425833270992664143872581517713591815160936247533040936470491541208683565249255757333316223580693801844074200274282837717899226225718980543103267613620057196312506434642862712757733815557145476474015868973273242483951652961592593339056067482924707758863511033714810301691579582447885105038845530821113045545144268742520823926571919562692995905907114622384840434329040230028161683122028941808997798813648896940378571162710399663921928401179013271676590880292771976386964799328592425571855055157326765492640654637302944503030004876032020890312494409820502308826609733358788137972845657914518857336870557035507187321270534343700542165449485172443189028162519396809484312821875653705464255602271390065945484325538364550719914045200864171195506135321046020372550070450464520736816517358927276877148242403610090795395990867483601174524690558128893523187865375546799705555355587106943116916986036156866145204608859853104160509226716043316143108581719286291454187319566823213684239993767341833989881407090208875948871957960261014966325401107890480120471721152017253146478752859274210592049186426914606390784397976476151868606565321155275838424194016350618802025429726168795821999401629765770913892921617024794948096637231611089691152347127948768671667114053378389183529409718286197455405541788994774967641364041379770532650857840353951716078565764362390880292287579215877867163636175761390672705932923700399983880176082642516059729891710241084789147516191877378696847011986952369460736892233659587193175451239803220706162932066980470844406391377037885477169461515284218774963635752981525899337680352566189653221571051668254579332265209376705364913118020671210387260815631110684760900091411132250773328194450909068531760817038501246360061871907264568695975452212302915034939526138060078839419085346121333313041483046495751500393458139192901892933924468828974401093491169227578859643063964822863816029014832707290158921527516681327578517779728061642401572507476598559665504802879204225999105551945805301266382212654448795823260861624954691989623987765214326935469831440393472547434761418374856892849911780505493164392860519981104240967775911573623077569069310990425505263613328589700529462231470403827497251543476675362496846199768482843543840192030085970995176288377817367757153300982878699453115512470330096337243711051127432666918895628665762482610191694603882745330283020338839607713935603990673419585642169933930202782169141761082585769830428907902695771509681702683935389109798093713288749982492172322004998648654890432338703846158319426070212125113624190824047010222025460883930497104085180437536815565310094169406874720834799284035365200986530781385811605930684532855240479813528411107271016995831803869326092163785980435168825747749510242815522559492741013394099178012404871051442622316417351832112788234646153794264824569294002183956621833653365459213018681405960190983823409323336673645142410989456372219826398185746360180394623418857347061448004020491436400266449883463584832773801905853888696814652565111568498964712713573652846758528941700929694018367319821350030480585785424988300614157650646416666931638744013655905285816315439175721236764171242886268932875254960525837629114969375306347476279707760544834969124330559217539166432187865171768346469359273828173945868390795974277905250300117486245925177089384849926454693251386711812787305550402303615841288977983142233901496517151678066564481512272794983104810883614755764225503835645218888481227344389474646280456156243719180608109131361103487900194944862851737901063480897546461123140904108595272942636376152387572205847779180909512121118757980186318015625300783030654695486651171085366593734261053195693345889682547270182622123870963081206809828470619667735683476811502080450824713914902141822352129546122493297375983451346691678479277610033456026362827613825685726247336791512070065010453901140042515916923373178116878335607088278015739715679574976683057323056229874245977583088512047338774672901022436325011086812237564630419700212176028760712227227314046242344262552046021698831624731773889080797223760142787811148853870640524710883315728910067623961928455137462486939765753297132237035893615406603031313247352693516160152822321844598271392004071016499871490843419065751108205196446595535013291418000359601630126598148696537326814561678125468976727179180973842746437628072641111710547023562547649756681056333126447293353664814091577300333539860394606620474881766231354995624756622725072817672632223209663767682438111523766839221800912040787330129545364695800958213581568069523382126358387725983312629191644008283546318399885070684365630425300979549975657858471156281894256656249859249624250484049501146481151427829282036520441776868500676450094304302827236302980648018226442108179676244002015660895787816340953463726296595631635667683226144546722735451173127854631064155193427925947121603263207470019598916138021459367566186697268148739232403904547851568935437608742425565591602593695731063730788642412953359145965018120700525517551041236729975316906747482080600206616856510093893927328403420955070833853961228032910534043394118908540507865666926453399257744920742337927690148355844101711868786445124822034334450229351216688808431871858023386315751427432361439487798173859671337935776066586447739609391331928640687010060756383732785577384982205828527486227457171592108231164994470730287994532249439363597199955953233884741082722607069983456770236515784717844717727272744035079416038226956185736100161310390265460351096556378535203942527048982120580087983759644016998510930600754088402832165611074678854888586947753981205157238429734879128531427066948255834287371895615492260769804262831009358146170585551502631175377912624842366903320460865827106295478233826795622443169058032311142458595585488946032364785416643697307872198794407938937392211997572302022426882687568370892031203926591151639617186006349943952012394466362598040334351082043539896057512948812056094094075917571223786644426412573265700916318957656584498907174402291465286943069078347960262389880602555170526037150564607385401848398957496254048856841350375770324915243934673496331008089593450688219957540168968433863721464014061778473906787529656626595176173047015283353525758152435109474019187262055676261943020720562464680645593272679644786666335638260000898252413996038101025836859075370257510452795044099210167637438271279156653216238116269207892154103602492978819239619700241591401506459494089795036479913244096361192174976924817533464390241380516652789473366899422650036908121686453672799921709380637283831645154982911185460791652744845462512097275577908418957646558137262217775282510579735826727630888722777909699876183933312804613207674246027053241779339217678678961580531609119700366523109065348086673675083044302561994625757352726253401604018477549645774075460701962469249147805306259375392177053716045690800694305344284329599359871624148761823170970953146656626732948972476944549047598439238824079152445592329855591649522620142105447412314852320693081970390833533140769907817722476262275802830191509561688787354306962402267001280687781364341979366424624067162804418627580485903879288583970595364358013035056710057019490183888347022176032586079083332508590314424531150047878825159879467556079938888327450269523322222418437428845643123158962511430793597168441703734971297106111334239500195243742281698943211149147848414068739683953785763526393532210291267022824061114049225555451307534186700216348897230282177896148261942523744841001825098251580250748052847491125683115618217250977149626339074702072904108460857734238376806102826928696091742685207127680307565206469261180143182134569061122826639318271916105731376373865944301281398950767294105894603493761365452312965774186701557495461623454889947107681714076148126638774695622885119517773843873273062237236071091587721511029345183472803642005156279476789366893167225746051024657153834437456615289514549448423479096197004305256664558920765368588722085450817568585653164579840299017157445666520643127988072568203045691013806759284182449674051196268426169355282711898791634454481632020196975773919394534151336465558646706447923784756767174917569673471909018391571862251500098472652063709392655848844381242128078230670507374444288879503092740756671239625552943498060817477542944579794786960565560183656259583067717669799153901286645297073655805134024999351033441499496149087850516594080402875980900153199095953738876661760431235020938393774138402928412223174416532726284187813370485327484278601487382085828184141985176055897425546936018250155949281411381738317355525662916281876406281597015111507380554960367576702113702520001725007690036530029773802215551269006590078091162882869830261058213227207593436788149820918975187773566734188112516974151559396701132166551843160398331393791034202688859061186283304125915902744524843803247036727845488104271103684921837686349475791036469736001250898989060090662459446956304173093059693887125791574973413240362649627386235165724212740834531319523780136200122806315506609720870699301243159958715025028882201886787199350708830712441136092559348725528496960929700838997707244001937276371656684733041683212208485027338032771547251974572278397869920544547402640371211407087019701129518622290665717809528624027569103317866737016354369406522917581098275122323941192510718928378564346727719365964894979443394777696997484992646705399764097654330518600790595798979686723381346235620900766288343753838055435090571032682086261480728413071351411297624719008202192278418411442199263161159655212621899892311321259140753469724410873688037892432926133423755917152319407537676907233072453211117877425380395564917247742142088622300764141325471872825495364964670006793777416528460554571692530822681568196138006550222847729019654698287018642083666042797379527412027600929722487492516699616525477229477012531916153488028864304692699369410106106667989514916652354109340555996007685289099629143170488327205732031582909855629446364913646590009490671451370333916702288204526074030388608872622891369614553247274511084314068659957905358630199353845934817053840457505857123802806344312456413011858195342853769910102503270442436923680834025326779713895397925404085201696537818013619522005212124328755446392406187449918131501700315951091340422955080552706445249659562147176352393130217285619728006050257407486085813862796012252979172667188883422889984821424789441726851034055146290312036611277899518167227522517206502127287426364053512995790199400930835613576672809337163527253384541021574768161940711155484145195642297505722624616407243505362916218487191370201280684952110151567908994689775599181319085923921345885264855394473515709249220409790027806307955346912390945091606310525086024885225606148827660921180051226929088946837272341332929918423694603917194844130813391253065120955174204959628485335417820537726152864269648440810558737759238060533754800133381918403508723037784736784780761364146112135083435216051447056508424086068673350713327526786855659843856396952115506051620323093547295388855433034692117903502169463399251871685466832103701049894380391546802451272787957466756504752438546039273148840758663812914429955255363764509304081047619667165245006420467084382045799996848757143359586063017427824206583826969702984829257800067811959735718882056571282235318989606261833683100945102260394959954034295012700723232820303880137982447287531238387368733236650193122937002232007010105379863330603029857404420334585127671408028766695022223905623749496644981075181232412639479863674273545670626531972033431270191096422634952689083362238898654315614061645069606838589341214726245581408824289837840992548155299703379411111126280287650805292722448487900649951619449476101881640417051221014781514974082109787405519317795529851006048223061391977161069789625014686040884756865359702759038512598511671481943566026902161173346319360802123346593471000696735842051620845595136657421129920877806974649274354857715147305160491796389106238634101007972002388037040937841517805183358839404381721737314838137971003153564790953540693259682292190799759623851084369670648028492878766599500496017256739830139296069652525933245944899997131988278845887247053369350229478399596429426413406764979658645281043209246187676861319057944169393269164180230778443288422174238537390728029712002533537381928446011614392894968238912446329413536394972925532664638804429982335471689180741449263274671141977456407693979867864876326859390485592191045620244925508623629184202966527397836991114521843828944409793356692553377898989819122347537446908219445070573577751343596579012857602824669466944864690688788621915482153045237894195576644427758455043786808598525744883719567445591600888351741574466319037830434534505000654507835824826015568297212544683959028022301480900684909907429096379688276306143920953818119747880478219103869034401553745293123487682227412188101791187692217294784946529605671041732264534140854931459297624150129675806692217361513511787842029097862529785504692349218008410658121334652027633774917928180870348617115548866665651230014959752801276522195700463011850248634038718386042575525291899026764589023097149289256600756379382655681566327080692911520918319324946560245930184091396306782169778632388382701824238420624109008490756915571643435285491125840535804423622110459742118587101223777706845732477210835443102577854228780648053692572729739187639679970174621344357596082029031132620225896100197127003511835598925977322648105132465852847240582683278801360670299914498018414719280203610338715631513685302979596579657000804790365249339476989429907222778361036280201043369203279316280521020820947786973850876259119224630807654367757709578450641162988446853092854474406379732307631974474590772025996180299557643696070833086392584636592413894605681001169238000872813567458679260552345004824400102574225755777458608282392811528842573804703855658718570840579172532962202977103654911017079342178375172301793889564994115013803382233391315790808233899716127217893462676656480303800911617020691077035055389027131257454349412333146100785727697340680912275117016766041808757311549493705601212250700610266311373455120621201799020536742281227925060617629714937925735206102901970411247590628394353855859939383437880088800484209144707000506374663014438431403951507389627733991666125410484832300736982219133943737938911095399310668456420174150147091932477851603270934754657050563422127649708852125655955847262040057561174800461480024727941418743243840079163907380186832009937584238437996211921977113092677684548914394357330834859642821073471038126749508228388130032722308148935590437617308734199463159446050160830616804793832904727969339886514899819040196717101942613440342494727417934167119497056109599075666183486022666687561652098738921324215228781910829678126110431071364572046385245865807280268494275263249109674030470224142246653899338766268327459162968654666314988210822062262696517648489542285229265177195315590706168795244629734639647902468302049281657224449574650488996969760616572511912128349601528162426956935931138978369044079022444458353606410338794698798783677290251603814575999523917197906749976020069874266711184682905640017242975523468328174467633391964129477770300760036801973820193911536955172409024137193538818947402949783128824720520307099660551819888995656466961509846749942244212576218003096074782150283558030903949080753881406165448494514460680271925170831433815771914578667098409681244902905856023015508153086257558979220536691798076996537888995951825854587038069210241482544714284508998430655153930355569759343049607876637725000374986877103337178198129801334914471335637233402457827146617124754454355732468380126778075060780721926776923519860358261159288017604639864769992377385413158295755314137214017459161251740788676118442885520904166956187531325069314401273859584197187569589913245322941986411477609049659171897429191279187189003196936773219643078141379492162911695682763074103704231699138222370699827286845167244326978161449271527334586437762144028456711254024643536435931977885321936651717072644515051429276452474517279991338657952653373112796948944572011922098273342268477994287468877889049811383388832866499985562968992346784344052628926030599562881249406018143711127745175367183519309645926551689139004858350741289020260581592329779988255659528374918712425022539369031222275445351461991613385798309138455665478324772256519321080003861447046952555159478781988590942404184660338434539926477015335512214813219505979536510678651882800702968295904178724197764856083824941803096398443054435504904440166352162273258561173917339132246055024123710465303125609738985348262950668501057034519313079003033740693774845233547268281031888457353162824932472279839120450111106808468725001784929959063071267632536311613771515101120634353878381573018445734115753407873924575855872486208247942301561410579258789754056692956205202945365200202164587948515338490641208947344652186102672936502843930294141728622483524575312424328776495775645006895452564246028118096774973757913613095506351591682108697941815436777057593388018189006791202391119920369053395552305710063920017973407623519890852983361250487647142929798191518015073160610982937995564159185087927353118374018935286566238026662276219969089191420620320588614204983812658885645729931874567158586050973152237788671748312782298080686184084198438504777480458143769973827416075590341659149839843741183187331283894418494465370270157285356715723370039213858001952267694967224215023589544962097760778782051320703332792599050773734635241567938834765996086739771828305123159876028859473221029344161732581384035962417075285812777598765956092839013850491470650930727473439244996381255100857455055729475023035185889516496230393306549563916927260253789421233732852855549942662820006637150728304163442065764867011993291982896478824805631287704083671154137966535331819819539747149375848992056082058841180932970200028092272004849817524871894821022628421449677661837397568850797374244365418870620323355001813508719263383743151523653653688519647161196099000888434389943361578565938660827588844985176006359339520642578283713749492616620193219702446736575037500670336257306327765607338213967455068212136868520952843257780926399736588449095398385171753414714223792314834002233946213145968455800547944909978374145688584424368710563558288206017378443702558308323404889793359424569879691124481158995479212328300047752036662333889533772005357780914340840791177462498579498667360700926610830752952989167528340939542203188048003061735180866008253013622866157185897018992029266919666671356653453098939449221513094041180294221022227995112865673745315244951899927536198900692203187297140705435734693900788314955854697665068657836989537878395924935723849463959506897092874750646453924252231951102917582952168844785099769806443612997740162637981575807616668220584492731474022491973274238710285988618567550567124242983776774045777528194609040329262940035851644033882487646907695761860477476922616338519094231252048613024495057414709118713615934303600762095852650590967571192124308437152389148726622375416811508846063827860171410302679634743337609480623651796894824050404638397368736658348562960760379764220571127673291578159073531886175560210965959365745766136395523750228847753853874103257465213175623059300165076613341327955825344966303013575673606038781399916727208440634471291208169924281908915410388422727415922500220696162837110610468755451199882383162703448066388334603684911715501062595140384100253406310634663824131454941566210740882796340088928779796061583405469302030866929516552865177900586885404815219711764013964929508198043573582010178761039846258706243655775829169186480691275260984216303169870846576459066815336197563576060662381926943051105304871529429096929248501377518886936568821424493244957187184035777214118701832664046212221189514690784994023311304694993200769221269168255444743057252345457612066896613376582808315173853797947431090775532181820906913640952172147518194384659281927898573021842764233202776073611510223877336675180141848282431238210995051749072611786369970245633357348740441340230198731859764282573711176229202787883861223440035482589452928663490241152776536689492138134126486909628464675266016856686115075524810145629223243388524462388618963210195485105283725177540809771779969228060053215616878104401318191111789851963727849319189140830187397240934196360632757154940662861832837400486186496725215045364048316905721086751684249283198569666774414549913388296178570690156412835680506606390959301786632876732436563023473009692037663414946007019967463163219131264373298302213981805935268326187653802248782540051009270259102133469020900561843385200266943656648412710261201598297228641949277000875326357896649673689092978689520950742856046475392615838832483855676797061621775982986607140528174774276238750742884679688930435926927504628920043255803433001887431067512110362964661789489772871614946298790075664191686033326527276931010091565268954691781916052379354684810872138867640036554726341287982209149977934477861948571956314772852147904536723193036214621987654601914547720667902203145882288006501418540209593857077254440145562539645953289947458833372818084917045009701861940780965345543816056531616725226879349683387875980025991166065825579561624996223471670599990818912670409842861602276250288200414233554233493128019858131147607260658375638287123503261656545309268063886626770260021822277187019164349720125309617841550890248425826972511162216257282371384485742376126129024276430713071215603521834843521298831717382458458950081196879579081514530574164636968485971336611276539680623037695523086503463216935049169982677457108756925361964366459571107226485794106214746798128190269713327797184291833801134754358633713978565655451641247046741665334874805719054526748406368016892769275148578318574806793087076991481145627266674969838274640215626899930172332665371593895927290166935534668567509222744868821706378617554257212147919696698892526205418337677132611509226573179490325055561230117147716565871048093354876441115870496347242095570891169312970759139309705049836387317831952485937196083853744680077845808312190061350920685479740799558679521932057393456194568367021771443931079196446606600755468326412966621365076138479363631313864854689967320386648181454054543370308789255961786602942253830333062336527497260462307901767936632698008282647224572885142587986218140289831785265317621230672618239634487966728930710506478157711737215643169974975195595838147474706559600527281598451204297839281145025886402991577352981042561429353023404983198300498680095791885483097367568513602850914344146776849114826255990108325791993697614121443255379782271880985361293588725408617282681513769508533049478029704981893602423855540633529421528605184148701186826713868917364919405619199709939753491381965375193189366159172616987680172118101889115133597070995662686418531655843048910808142083277907630042656885223001784026844661661511285088547057952460954648142020678215664824221565014682930581478741645534574915209069122897916812183093821864362886541091317839033250895263606400457536645234502907309035093634129498760837630465535912704720881446734441792666608201338329623481151001026461334649913688837601405873619561456872849934310072276643165821651835825677316465219482860726757155341807131729447904267501720454650330637313586781525949655398022007066180489326433947576101752715227853348791861194862256925659965363295122104365098101462421488889064004706326274962484291560918375707756211373077538579739183606791877735578605174809381113796550657452939232208078123597114643779289450624980532432720897068545986983639664837873701279407344414664434234343726128704630539261052747937011334770555568656783055798864831535130795361077451457229193523928743574617498901835323775154086725858391283239265842426543470449592198877056659626874735704638111504846228043745213030636823873937966125514050311080282709433623327014110985869541333172420679407582105339578994571055245103967253939809534761533854413591012385233276627634448490149708535476023741741721294646945463845033455151682631330783252147061670370602492197880010983807527308015799972027143337040420178609860088592166884730805712042439591605835544057988267037896108169435912972594669565972151073494281987568427154033852056934857816685308063387393922191388823301262531022977333628302883713980833671837632546185093657687222941823605269987058319477827725851685242181505695092545517134874303239610523233842604382290241275133112030446240709807827951575170482436628704602316450128285815947261653238070810579181812325200764478507934000866924743131829471711170966230738445345906668463867386527211009984312895332132627260513255534905405375305991563685352019033064659279246702487930504886474566764449075655958983638947708314018119989366064451436053206300305387445373141508849651299310594214016144814054249882718740959797859606325976643742201854417959760279109177505055530206688286933873825406881117361651957885102916902482520892476575946560277462146937160789655640291785318948124000723068203611195828904684201374687545040754016839482082846274662363947147667520062531184102225702602255595144409429520466786581435874258869380352222900819986121062070442365540954621977851992329031240492518566378504511371687779069449714561179451034915001293508913824571324703653160795537775619897973550200383257588429064221930073862481400794865051455935067785124466413887205531557532681756449839309213680709622200962185296765243221171025130109952548572410299344108782599369980098295695919075563586686778746255471024511005911696303764530712015469380481247386780153405659537969465850159453848648375978761841470715448972340669732368561753264035847296779519240835199788757902587709868247181157536949058576006398803843676193305092107895629198482727804789223548806899815659459497394729502142093804350066441879952643013055459888508785585527713222906960739403404642990529071623685958941819364151487396161292881890705120634139198281300972142259822056024640098498888255927390706905713055058466509033555314492585289681438299479227942408102961754038674261035203200176083681495872453252445440413849129016525418010931589917106107882318481650571906610136860968352127816211201078364892413619199974452970932717516688688943272116109796448794417000299643863560183421469937962372788777991443435206753124007890710040476270643914535625323533384978505578243946360582585671281873976807940322289248359496850727026223994727645935904254224723278332249667295801962356604916691929974871688944606732278554117736194297515327828740635103571729347045181822816878198757943577961141573824666999299984853812894829242648189970019120378241465920928957696460426474413734294474191173762050126142622744518092944998050166960784073944227427557520183798586855043209061196621017205022150339110019361147661365036977446867094160497213428891461892581061395282843416061777675138253340954668243050120921056527451087493468469165783325601892887270126275300549522797822213083711112252408158617824036018782726297025914935164039104131541537492399976555382276530420351352530339986162621952190481130017831006433354492512889249163810911897225381443671120288590693167767193564831021730619910887902998365630393313083994407117462162623825004006100568592496314817018247257927613198914111157275314478588920349319301073946606206660739701234561844626429121729809870121781283178822049550841953163043915283262224518200530077073608070754558458022871563137475342538457829867041125133067469734120945653413008104848182581526289386023975311392571988757406024770348765448836025851469238792429361719762835156586195222452676482800033733572394475930239880331815763817993646793566171336635604499760778612860974954700064530864678117061304503376485070568021377334830037834374393566685147813929696035079334473759291798923264565016370337983456910531963451652100539388622398949393273743020352439306434892450843423530187313662534823347058794376930644594235119572208652053953858207192420255503375003439046217633162809549199442170296794785551650021990826299860633565453891684038860406807082486781310025453425323541019790352851947850570726114861684827856026846057463037494632885762274957834953653844742489318375071155918284817726918934942600367945084531826655698468967465584654409961472523817525329986308888656711455836915571331591754699907136375906169499912987922894242078344285341726651632825213509890537538570414933170144132697041031485747981951082311684309338247115720502947608898986403371712409165490603474027286762511272626015617826495406883889864239832441731027190558167402790041994435520759300523549867405009529477525799515302421292583875323560834341684972262714162596484668672871691069224732013941300742171901596543794851493579330170358952186316932518261633560587738512479025332748076651360376486550014983320428791754449576599234536051173978049296748744647114824352786658199523811861994339907964871200537365343615356505279221900058122548290685608835610259045191150626064045851550454125117383777163934455246361548453810987546479742841513559681390595963305601436749498854572197746106873956535716293939100418498191202721108269060251049255765250236416748128474722420273349091936643675361078635097252873892050279312609610149501876138650212325860944101695817190094374336219727246438247275744200410574678720865230119701468796734061676104156116738567701550553608707732262117987022100869333664787753216981388374187055949696170853632060294895203416692428998498106747535031291716820118383784578957706451154144459332177527484760326852316051662735744682415730042931456956429284771658085321669124379625752555980602365299158199550104047932789370088668028009764882502660878096873011361690909006536580704398214419003274769338490324450700254651459489455202354918738131717394268694916114122073790553880454732887487300058134741894838315056385874770114861766350928038294869642689901716503151132594416764383195301774379639204527170231025014558884432525444549862455477028787323938034331061256426979272003220561230653467215238197647443227769586131435444098720228975067600083569057288138604251069394416578140906663179324264084968279652838444300056196665383190253221108940204963899680160031305861434481510003161594459037132708545782924251679040799126908959389833674891931348858646921577997395914299509794754302392143962594079695156944654548099293143307549670924832870022146479427708540268640613112895090629265726855308849797953088321114195927698486692547179557064308397788289869527698086035591109283256858458420251830742824531073642845795374709172401760642050143264435287973050342217585978627838374187689239872678199371125593478762073478315501709244513046486786577628193072711521198277469547837726381997596920047306033573612530031531395372135661174072853405928263343114332950542678965396690310166400428944420825620536195429005113673303126006340310184277464250699226754319977872938590734547047051042113261028419273312317665290712945893033157904829130136299619967090905438564844709510026189271350630126036311502749104273936662045122104566520651450237544186261789755678095525273064233196415137288551333195493222001223952418931992575680562585703844397598416830433333362110832041985962618091700568700611387708887955615624144862133113242691098629717606609484177975009988717599789404568126173824759703336493658439553633536144363884686297171135671694553372530592951378291294340521319141089494412674155855208040831990913409495973487466366512268275890751721552484501576183656326074849740965149485331242306552046545611404746234576363656533217518019388922289236921717861511110533165108383569850390932073453212264236413411637107069790763913560707335521532570202718964906706927257193658562534507864928677392325753517574795144179287803199781686590823498403336407480113960258215910449655559013598785100778452398850569683138300209800991494693573561907074027925489637253263629841371254593121926180392871507567137290972034324384258990212911106599780832600272363759888396101782274671758737323719426785155415039825520078307186496779653566290022688574779943933525850872466840543985540236838459387053645423748228754919481638517928564031623706932345310287801473163608793843780952482269251581974598769506480669895942326240794245599121666091150039400234344874811148775160032532388809848215226284865655581339453052459693275275954409140492121880078136579662518130950503231758925564736523930592386942798110951298807157558588182030938121741582675896294811116221078813885641421372904225333425795882863405446901531170105067398729886815340468657657873753570117460686244225934375931083534633804926128101113906317885895254050582997238538743646285975179102755369367631479905063199961848030830612755210258492702352638133313159568763964352637217908568201484047563784126004752082001293064896455627919372007943451149931702022660659400845015358559703625060470900129308229890008539384094460803143957292287358722740727592604821193223873250683418556999158022569507443557508165540352648836935526394487558006472734076694502824437652984568752965669507099300419993843781806566895752940900526575077332944432024543670140923350545454122114651744789068512919272484677075740740976967621750808179705395490052733053832854963647992079337862601369306036076091366276671281216270673869915874375925048445352079823033298480728721806305702015572714066691235190622909530233255797403348151605416587939147438240013607061555159895634946062635036348827755464623901917401361194006431974052636257682716817457303034435360476955112438649248021430676484398267553334486648536333320318894028121455168150547627907235933171843133857715716368914823147337214106919312651102907625553140812323829961750837289693982888419113289170641657001181682948568407431364226875487048312237752788343839647953123425648753713915126122809647273062699569009472813507057621765363518197606374850298538616480527493333308610095414331271139987927484888665836850496779166519446438364132328358119726714000730216083348972870507199175262467392509818312664583647319872447679943886349548208928479665568771446044730728601732429672439795670940637964650691873123270034837949647799826908031144334954841676893789924678512324534269416546220457787652731737829198208074821122010667525532869456714249504921465317740324622970604237792814703269409096038619327673655730529396891760375387034928016043197745104461911004121911155318500381151914084382686187455559433933615342509905056968857860388234996866351578386639592827778271140725021370640551960015925268994220630312730870463887757539670030597851576393478801679127023550804530022025827715063455986401042583134065226365199861745911320334931492759647661276812238136072495686878719982365611742442677741015912162564189511798480041516646795583369253593577093746700846570679664651477834416415958478489802715872023124016895372227878661841227004987511988262501939364165948931074011026037267513138515011852742476649921447737070408339734482655432366554280208114397832470841484280841672888498409668298097282350621004050770404819974410111418993273910372002192261782716250893391907379008023359121230054536224776804025363577205894995331931800701295806432728743539076772827201168286627132040050082328029429592712938329273184098102567110964536754965931602501204535976042317666504473540391142175379419780375330977823578741897070463366531711558834603469990500107502712002912991564867005519510208204399047302222948030073240758289714273373139877259796438105248113088721598139456466944314317564421113005949280421361267528537439894147694677978208017670815128074381735377958310472062938771322249805782378093598048957149715159441600496601601120101927601581045375208187082464060276337844109254221126146210493420360440600472608792909336818333390986618111384224583890869873820647357280077978004674750317289807104635039538868113759583927990175039064976530384133220963131295824539942632063456757061117543510407642883440635471784030169556395537370714659388058170471833038717446591034689976395032922079629745612352789787454927397374865241320255818251276060603166542846740255486851223257001023194245097638793191789818397745730670442745331405695236360558332946240918601266380604949628190824242173377837166084092107988980901610282144671616399100868872491951435643575633640108879677861650968756154293553455829352763021537865998550842747524850317652710844080753000785202494805933514112330002354260725422995362560906134858246296032163531394276338794307182705368979341468108056255531052070527707926620421278067440315113413048506707720571752216627922906751048911846973507882999229865964992480735646797989028146334968680158621758396272951345604351584768968079233975365476144004756570000002593976237898957019943930514088970801412188945312651367425089686484234967470922475031331287891241109122026495683166334520667881351845805699012934077560612812558320590214992586051368675169008572256749741685385424426035295227287429319729631986850382690349276398740428368395086626817411379451683187926902572836282430464844124624535064082299142478065177607961175833310439596757792810742523564269840619362984816120195674812651593248518831735311012485661046359781504089762764385755109623087719114660677497692571899014462398935442464619619057165718482928163940916088599265666727698897554826165994656152327902277951010234365194315510282525320868747306866911649147077335107086301530996297575010349010045641252130906511580555547769183784838137880868640504004411155973817967080016426703943772115906921775194633900159391859883488998731587860400310187082834327589166827505907475087004210948013089947109970522471273941780782575269171616811174658409965579147436712768817908105602888724624353386030525295961250429205492396504069263543138656204481509502566440176446914680955991492157647349296708243481220470510193987974806896894362354055946634240259426814012816520883428055702529635844358650334886094199598711511015520996008998616831531798520222820254890316685288939732764052135408652677330298597188835940439760436686121984072580459446600165280277468882383946132260895132720777197054737055019998864311554741706956545590794952927963133914537305934360157945748019734235504073225775980395591695993133614810465676728082286371341137925158767697787685439251422026229391191528309324512003200424434688079879015863077536228960435892176807121530766148136436173118997932181449062195189492757513352987894490801963582852913030918342942695215303172973990483674892620263732637711763635189229836572828305888703347352868552502568001419230841423810620963003978248051395189199914234644411747781350822024140767640345100605706519398782286828100533026095893606418012852552013731548900257759553483935770274657601072336013680273671857562396155029416307312211482088340975087608228972974809703369247968790853164306366853915041347654198398594103589317916135727467948039288673897885096236770691907062197465950865118983550848346523980032742002020290338259199577874687570035763161995653581894316034949709372217668991926716300617208193661967009954345715631017355164185532518469227142050276164502498127831784440134347879605305998830779849445286067973899714407317003890661632748446404196026828389889707542856511152978007024843805615145059552936211403677936079632784303638014866953669201730962024030625289260553324205223253797085158928843796698549148925468507873755525283574671638540210254542308616279842175856408530751750002989799859419067976889008840564999501886220575235901021094420783339053024492932103555648618442300801790322184925633211063888232500948525981335675881904227162947233973446882848941968720738568787205811827800530195549796482796502220426830577155573667395051109688143562108104609508886915468917138302320227179696736638701344292004483699558988672612565071599663075179240388708555467619127937285935698909395214846834756973102286758996335102296320672626668719111410838920819577597052412338601553605952898520571400476925890583101425807548775575287288395454886600769914584946045784641962221776008760355264903871834394105316126367029172420000317106556967100868250874398531967572210220458601911144884055488850961054873931821744002492156316366690147462512648351261576189263835571291077989964347849157015686511546197273859684626327880911151841236818676968234888956649425666154227218362186061393313845283117490191652869285496043540876509664992588850214016136955320776131372386565414357014848303439698414320100114566564110666453703443213460143244610793697309736454888362783158555299268830852795386660446404659383109867332784448579060017465430530640975145606484664542961738328619765835845488665276922358700516104268403208692709494850013548103441180215390142359857545677520974494511122901244338668026571355509407524374460205828516917232648255267904485774403733917360058112806687273185002107414117066531617060068141400639246158295345509477123634381860457318931028043352679532253893409117856528652787966468555961125831061261529181992299850905866377256059403950029115465672468303704238422709279603393147204441727279183834777645849530286514880576825862621671123213427624263561233505928671950971264409059742400054990111986480060625668510156950521382093482664415419452751718329728708367343935506877760202106612841287443154447824821019143965718437571610980954557587049356139966840094318120768199458698044598557094172108692113187326103008588317031241424696535807164396962292786328168349802834840530831797273569766559030617783329290071626575463660614428439317479147976423426043199779370184205106882802875131151732550933329421620524941453491439444945104650857009759148849676335163077404999914648569032611127912544699374272325513402943045639203940415381100058921794890120883210472845473388750500833187767535598525245161702129111433825507934362089619698299940947900033493926366009699218988541502641222148747294801781197533787146682634536185615287444802004631734722219068996821260619916190414616649545906464514841962022955251330748909269810538843414071249961712164389557239005851942538430642094609523536275092827910087223510845389492651292677410947473365661938949633342447152956481338058484405253282842326718239382040308895203800680457137122067627214361161139046318892737767138496680020688321503838472786390319863458294898206613755990475975777791007805078163258627690901515398026761445733855611447399068230892839475454060035619240164396480237053513352077199497857201453453077464962069329795565459417395722642948381167031866375174765197727185722079165460740521292817500656664569617240585498855590153468429922333025564416469379640569118074162994624717862361882175133312625789621008284674335709917029843183844799248731376612360503551461832904651070341732149523730372910657453695158022101209544027014299469437932683470991214114169831218952212330407255282469357567299278320884371686725332789089327280515489038576110489259347023616873406616447792926314574180180185802765790046294729302358127321674812794647191812894342983928861257653799392469084008100980458044403263605572390193173795742482152291579250149386385151624120509980119957283944598356379299413868607097518809822962321898816143628658027542162665865907192155683012562725395185622817441752313379166029580107248626998932527455125244506624826632250179273788159802751999754147721352752923847487059565170332093850092204191692675446975156563733146419408422976448061185378265070638315602122520201077296303426326318657314340636938113305996585857867740551046123444948587581807955592013204048494118517855412635293522250551647978216596356152432879358429759762663555653548691295781464221259949075772755573559307258366052844393448078390210521820081172247687464765615016279968352349333058554543753597330210817204375750947156117636555384934114681742896182454591152388236767929240043752520341684556216930848091745938590805044323917219905907900692201736480725862656312787910209316929942821194234970195148951396823351067085962657647560739538381705667305915259979544477584407497560516409142228441975487966667977681201428049628813463642929774369506317988549866741397392547264056412662382759445337376155855565549289144246849496281251200736702553123302756962443073095730566248505847641032436389521507789285992649429390387480210654719414134470909092669307946387300816602331782974643063619359287268066058750533916544004786284038045302448832666445711853432129131589624558682496457819722189027120095362922550768700824972723334933304357080962752641875283733404706636574628370497717699527478737723902077418814838887502790754537935533360126187017680605485116171492437791576968411063057654596562677571809072199065025296162700196088895084661853013258761726179195003898068672670065092473638021008827762341901737742999053576374995132461302976952766620754652352760334475550142382323019373565826994948256779074997921707140328295517079728575216466426287700171611517804578069245124457683208333092118599930938455315300536270426347567478688620301325125984797282696803778792450675612512366360542443197362142041720511722818250120067586085537698280970303731859305855429163603763170634260560869920101138746371667111705661898235065819633985663099289249787943989599971479811464963734788876495246599408393476436041777209694061586680609037385856684709432306403819710443522629034993336035251662071596482450843338834603258899945186076563751291656365078518966060107600995333373087742768250374238445461767781504685412153173358247509089719659782297160420245659070793663848948503727020647253938855444894181072137857565804323933213235547690162348890423399395365913102587477902717094615440889474324523973505117632350157131294719991711438210272122382336298608740017888481414821970775182843303777552611975621472886769641714775987724904263360133955712317442416831181539326802736434571781563944196331567440264633648767379083820259822737356057352932797831473912249406373155498797779985954270959628693613221502812312535492779983107920400411110680414532149119812464797454453951058514359667284860953135777867730181825859299324951088176024094819345516100833311451907102104429225480345360127616063238487853800418119762614498328642422924830092491413542851339735584542208705772274028287240910233309746533089091603386539913872720360365303676424831111004279503387108223674673737557214046519674442598465500414532807312082889012309284055297937675782173269603245418603582226917651336866184857648043894004617386487774354220884273627494657713975289056187449294261830072081002669668434750249895598622880913147092627369117019741020110675041900331758394495113168073906376798427819126791884440074601432138440904228293658582175688949174498981997720932687815609543762288519418972906341226589172958937025734871416342444876959702322743466390481034717343234507690729273107255219294107206604437157803731066359537558661878750457159190229558909948705393433783455185919055622391302672462218222206350167952126357324201626574465226711110261628098255095987707824884690898606778274017636712761253922163913267723031463011420370326815133330387775692510698306558001970284596883116447157463219675607905776901424142805136272961906924226573400683003244613516440162821839691782684248616722499285296858567146186545364983973182687951136819149002310454194408146862444033218959690620693238744971148850153357924725775367143767256004136605500013351242496520830993887257613974351525919952540035834685940368394953142947930650153399978609584916053702746825169094645687514859001222341475423479533129046431792291199090259128656098198824564609302347384240122176892793668909952067513663081516846650473824253539816439492845013176840929997482812197980419237595827405413397150431487123679531433915870344963639733376650841719582942700927443792909976421678643745723133207096564545580593275203035683024529653748950713423684846133449281399716114664846963004953857468431298403919370002464842030010205851743207234128112356572281484449396879346208975540958884465510418539904753404465027701328706030657318908758760872767165339690603955651362311691554167070600945056049467275368894152564848668603068127550462840732975319013959802915863634007610641143459197492768389965030000181110605752491100763480737900285537206938817701349527909916099315080509629669089719437882276111865518271845155282817837772137610240754046031342242583734169695162532069225980865803918042868069866950851413784312833008379677885512159656595360410621577467258025395117921358379140941255532376381840309311894425293952635213501873702373449792026440650619832066424338420075812278957196196956833712519569449655501059975756885623464438672716425221029651827698745287847302507401432451231473071658261401032805231975830266222815304719711287580887169401099884649066477983288109868177271754223638779465271743440995985835332197915916499703417866106876855678638179818751409476175894920347335936698494651931561252334118675593612300829229816209589981178245132806192814970337341274056088292941094258283657712785628543763032735738805024054846580596581730456456954304482932501688286860278275442557794143963790356196277601366236677873484179900448421538187823292807256557051934017502947037163867928939090000099778066589183113060199582518602559979961422497705006772803716099664700073629118901644218603198991687584828370601794376913981745428228173007328290439782916210518556048434784887140012213490062020765556179747933427600787165800676864428364642934201974638946810854020360049357580199091908368700957837530877057024787634739269399517822153614824658038199169772320826202426387975635943649040998601056612657447519572464801100383591209194274301684692392441803948433459336561489233964166801262925150329358151799533845470391810823406171571875637560814815712015596450892523212808169538301773357359577477096718844984085994703635783109527458745812937303277551102072681947735632988571916606143611672395509651739557992758663506056413398280822360472681084351286200362404468795171604012705468552720371011495062259519824375807806332262070796953938305725115843286500297684156415498933824358278681240573885408918869105201655906145211608082236486960062019883538038308336879085522140043897391978633926881505792894053054987171630059421351342912498740542942731863399536320943826945698882176315621987170412226521195173809245772622691374876840974940810453769955940604738603298704133802632275127183197342684478520006924426369791735590075943611437590867325459113721475486717468237161029455532068057608268771777700991523116582709412131385672726681164127527830717424441045903117626509543472521935002677269074730355473008187908498639951778360662362575648932725785838622215761449231856400238037571776202359525166220360620190251378500900666139179652476070379532256157732629403016357012460254465868854574083850639268505535146991188491502679427037548719669793232579589493885527749407080974480304087457510827431803846810810683523858786350484922463372868752053014380179847361998293271439441994460488676653768885055258899142380694637300560169469938193453795257928439851168433302394750326296513536130224755931347368129844621368073410000508980191091401608778095471417769493629508124643762254844247927460619892864094373364469781245853537809006908173554483346654965987601982288812580064719839071354173903424254047427635249522543223525873849592597896114699307998791248277204376346129275965449655795975744545789832362382677251623298516445221018215689933343050727024705455503990978703422869847220623289518137978021683379382102325570965622811221891640237194437299786980071176178016360161054978885820731147043459846924313034681455865869561493485116678468184415157218520694767392501198921766001943502020917457386830897288031331842511743185336264262138605544013673687090166348193190408254989434020546704605154633984013522476960834391378156265261974274374767391943100966804551122828696612065072756712105283612026847430848181493749523856356129417446960126118424799855255705525028049438918166969152138883750224248303718679972675403033487085896217081077365959000468556828001726714295738283405177863998852703707040681282735083061906309320859594054528905577991084972905694246454424514673232656276502814991531512110025325646878616477258557156478370255092442290927704955614367593936025217254667508747915635485240090008604314440893888774319780987361491751664600516092164780146048603614457516987279450698094725190236746282690897738472793794067595892789981085976803062956034098790314811018649113981955290650756003950570741106571900983048008320932999604995738698338296912287333549219632599066370202774553708302746540496471564186621560993122477617652476874646577754131649064075603663771534282331439252457554380361365150932298862645562023007521231844421596865840832350876445489715535163913477117600593320589381354941739240096516661224337707020922220838128138473440265230433746474644339946387222419248868690325073880284447698578740091864172366157714679430119541321827078301559169331303441373455556928730540421389111386200892935277856137939634122430981061488145158842449014001094539844726915949982648580696458354660292304003581954370091448566130104426622770817746286078506327339196520868435140933748605806166106451522451125928057144733597963567128425887959673881070594047872213545310046591873789211912723341112347369434670767092395114372153571833168705410314546514261090629220062522389991254287128352957937850253117628407884283383800963053778706604364796173820654803178687566200943810665477062835079327411589413266682326936344695087887059844095954843655509496948125284958787696375815795149414611566288837935693583671438558099077237419433296147546570263737644457075346589980599996990458039020410965936352026583263937434283695911721535190521057550345083790617746306119862176503759713101929504413481190211025240479814494897334519121477256245197195536525187766377760774080219657237526937117637965812705309576592812199191795532936128734332994534420961713899978907406280454190395285901534715481842965434376764330065874008506749877604671100223248008920910890235608256929593284884964911623404243188202168565463392149673730005708201071993197485982847465909725718300623213364196139750667638977328496218468442952286457724920526369191551156666693760839105147845520624559221146955320041475083410160018160123682454947446200981482048808424399148533445155300505375254527022785068698331485744929834462664028679817051678849559142419313061351561419739646856671235396779386153550076681088290277206917938458066759102057529236517744686275036680485158264340688028618977090593812406721071019125059609809724388175204634848855139345008027062935541738832273362743510555845198093339396913951942262525722390806646723997312347149795934546285220940163314165820611254230717322068960705494074012421897345317454751957457799068482981433005927440138731011223004785039472255323352769450584609956867330929578517139259933605017749861001050998344708425293072189710756143241280762711737375142888217502069563867632336855443999352922978890123245562476838867126939485174940666863157164370917860950627851542574489732064331777399663008148037565232303099412740092006875257162211741701377664640794287028829918313994198568354031202828877661550563654895470379002606732133393667051489740455920897745171619533926383915658989912111414782880262923203807661136088447283202282698351657427567205198852473104543471279303903638054457422572088777581454014781644935463457014529016538617679053722706698912337759185786958642474441369366426704520673784121638752836253583456515160072759278353207662540923182076743781870834493674085090030488746037095669972006231717684769460499060702100324270217284734647211153088159360965201212423055581677047226392658303031509897882609668730959551666032562096467373433325995021177168860257380720433401401375929454266727826014652083354747497980371485535382055976265323765471127777154404547208442580278006982924729984053848852424697281258949244779109971687036484819254206079103883992556076249954382459789359749049983980371023945045051983144777648211600889410619032923216570187791003456594246464956477662120060634672072747194648251934022721202420556395778405212520605321950897902056280832664141854659221157095748887250057299047550298581386681482996560912677049266624811843363160201851643598900440979011932099132050015473836237966760049278735852880780471000582261262933083689235116239982429574912084265390682619675980503544510530586802434561570879121626910177947845216382415071264836232343880448213946494391154049150441952929449358694146248803410896789270357088491601495744835419424713138845281098429046297208587448694718934454320664260054976305516291572202575247044060694047764049112160123409821620372117332404038127851728759732505996397700372840118240585075096750905709802967920835211984515387570436801826071973425754888748586440570827378367761897858918253909417992293592549544651930768264408585210047832217048540133245992891288853369099714023841434325992881565301688986604497640029503194926198664883861351406061267471979743182653515014546439532694121754495588102410959408187864815460838812302206176737674828344499614575787200913727304296180938865363169425018501758632610864189525802636522762321003937638424346502050727464358130948837458368318835866352941685333582591880231599878310539802853387425656124111820478106076039673579321616772544342423092462012349787052407999599742500949318668074298465832483732902545913866110046642002798600518342985727936091168463227402129942268854304765162022440551609223727171097075855241609614727825531817424645576972121678545695849477288351786038868849983942682074463499917403525375262010047664808324870676049940980783356452631418378283783901441539748607890424300364149154557703765762980053773724881742419890562490747500743199963581954637221704156740481472813434306679056945327470449297094197619667078581377756257077418453272814435747577127308841973745549673199734525418194813859921345520622587663681818685555273002578705289266258712230267015136069210416475260637840785443531798211235876570149302055338858036330119904748425662735018069801073557118857333003037345341045580346608378867007687247849696760579368464471031642849701031046705196870912787518740719351471854839358932617339075349712711661955889997658637448630176486923603845376220205455436198947982345595508735465824755742406421147910109439282813556687295817063434310654560503059790412162414101007925786434519367921321976392218645524170266586443458186637934144271312853338510949274357790836567850580272933978832727990765419458938159045644267408025781281306794069406455113557297277275999054144047317594429326407997182633952664968849184787698318029334722081340034926052123788471196211339826911526118540958136904481298623348743772109414985799136991081277372515130138627543795358327476902239163402634135667895728370586445312454933642914479652103649840995728950704550637959763731972605538524592841158142902643702558812921137532870575183755368587311274408429267271872476140438996505851477257842324517981792549983676163174273082457167239102003411649306509858348402139386894060733574755134375026651536598619774646003367359948422272335408095013872542260609261802625051141915981157144528725165734864388180654787120778456160370171868229182701459101080496585011705758221013434694506298900623321077471082453883434051204107943594442783013386601674921264650070983718387958824829630825876752143533841285429590360183337759381817231976704462338400765385790043991733162165594217857856852463262149542358400420199196530369955013349300039310803464901598136959811551113259021364173880260064987934191982983321894697404723187226669279112544265735359746134856357525791658738199205280062749741073253458696389830393823980867429742303750424041423516498976545466029041858476596267612451176902485380705851000917218998526057885329028803214193218117617808251222705675697723124986422329439914023976715126610543349350471815170496170981628945895896795274677605525344762993783015656487141685526447755740316837586049527347586937557321189449106841150367766688149626575793963864090779781741432552886221397596260548190164889522306283794224376581772840406010907178016107157704206069050782654138042936031148472073837225118748669756564582739411579281412286900785661930278541606582290972283287571798965264411952259641638596255120128806866999908544690458756096106932781224265028189327123922663649537157052042189743115746876016597569448345838549160376865517048889447111157420534872332991726302464560191808874840208209236113724054123410433618503663545726851467407990168715041205679147713486911213725735740484899971391958413124475749939868347212186454310182749926429926437552788693871942897623913667330549937694014879751005194474203309776036358038967850419734065838272794869956893562442938726854251108715389325388304361194828564077209870054548021151295028429682952337807517187994321959028773435046842583510330647308710642846529472822403431184086675753049495503677499042040109281609669429647836868262640684107823803068559414250566977505856383165657372087350982078965126439724553515101185299950873408413836929592357266943695009848882967917309407722760444453892075008954339960112650875146542105216761365255420031428644369627060957592454044837445782434213669837475443845577259912978224006861302151663507362523208235100020858848796235435101564186946025777383596069794258688106640551703413231188596114715178179858442278988507889784445930209771455421437069735034628339878823256734143018074534070272581496772440447695207352849352226811448495261671607553914544865109191060419521568234044158310649417230135440291512552501968876151429637575370018168416112288906580427981913411710262138116443574330359610669855737801556564554149232960554453946021753655959877446033737690922575548239353673456026098263110385042097030309316786370272385397587489575315577559846496001295471653853319468632089202760634478439360806817388900194975087511927125398215125818706352798685940069496195336074917017255291015616043130494909999570074359487654792721382100379620691542261500606798143131175501165793871506356965242928154989907481984306451666477708546366604791097387605408917878443264950457021115205550967513544198251205675865098693867266770847210747389780715752374519083446817273556778593538771060567414675373438238551832182381391030283303001347631839415179002829203313603186622133653035414779411915325247410079818903970229953248781777947132046673339675936764484647562977593944576621658257546701988034111503763284671053655169367549114683406906950548801419057964759343513325501762246426927389774989678447995313243492584472220827482977355852554460806329770979430415669941020726623027458206659493770351338433661305596700150736748491195869137331183948026269195064196254229420461430763424676072706477538136370163277006750393632042326821340340483771922442856448888237354516159449764452480682536562088692846999953483480032257663258873541793171413438681964080574580442806596664469003792961061073253107253530930182131679398033907302201508853772959878616428273049279267612815515442649583168242418465896866847507977309427380058180528713855579620066886132835905800973313968927027654584540058730660820736388589152200789208909683668326079582504309599277058723126290328549228577367857429245280844392684294531298923570653877130861146637740059478063133520273046249613458028595476938764061953652870064265361175213411930334836843831907179062252309193671992037589226987568881373243552238258510806662107991156432156501048453757434773395430454381230172601535423665681320033566837266178857428012005481840897780591915897077837904512492346846288709788386358060616917759549771053310001848254400630922408492064935552008485329740788679858303720212416991526923432579399942756846535615791205048045972944990893981800896395851340814008683253849867479838972699117369823889345591288053630202781847025319996812814807332495388357802360270276346353956589065291417641048620551195645750197905725639668067622307625908067242400134319569466464938811598682777823440536069493114672710331357698703749885808683354387506779046937262478813392174749591369475411800744529668656578623922526137626229192267925089939216851940227676476597731881394184457238290707575219251910692558039261892653896911572499134639914926774746511598467239572721557006286632229843817251353363402832942754438059062706681377470524571386976632799819302890951438615057373581447677956169895064119247828293065583180821916840132058445110280233715211930397610946128384578762946786582651065138706338323171150318508700657936659765309136070284763563353621643898257815689748479257440849262878771008247408144364116635613322285059543542139215377653015473937166093835246395553325768949569002713833874389968447334860306743443282588120038495754562891561016190175297360023156275637472581841649620822092481695651275264730579679410266129765197941817704363389263389095965283162435989356339021473160775374715352184891759265766029414058297563818526638736121522825518801906413149461186342511048951509693236451065542582925647078116067598905190443232757814585372665277851830488018081698708326495487002402969405743307438742057560272397198943515072501899647771502865360210433712969235639925173130338625447986980160210174617500814060435525268682779678839044045128287803547804055965932731901077826724911678478214812593889022999569052138203567126725661183127832294873115045614549141709475349275507336063060861695846901558494961215118626908730945582986559061987783940275054232371774094919353529874264576292561394682147865525820576857089647892052989430731564730620703843853259306312276752562251628953987439289854197003859478349902111147490129707676235386189931649767453240351810298230417834034189288181745232630574676860969542004750615080785850284200456003343084650807053464098401918385987135097644178425877564149207418315906699116045061632068900741334573172242900688657389280947588221166627238180714067720734576264245295218955757496572630509580403502682363056311313445776421478615255308546205248606419746559206205782340109554082276556627285789954974943252655959694722145438350370976538555851322742217814188408764559128933039703041755130772453093051412005919525699103240392969960817677265102270807387402229401101598940116439003879271686536264419845971601102911008850873282205990115422469895786971895480568567452316803272099960360608022706457726828538160373467897289183545507602234491040585021187091529859019775730850510584233837627445814148306994585087782307667713782162998046882568207046737630871451504239541765146300854962028774132871111117036253147453039401214757484360287511537728619691539715935336116621277160086690560043539602174117633147301558317894815388513560977367031619649528075224408712736245307295493326323062232461392522027798154016715651508423330814530579650732659742105234227823841542402252951519574504100053637880175548491708216588520831818771848794042367176664138654338506623322845234607645580368936215224066988253050609440781767886076186735505263154395423830722084768421005171332186356204601651911684901006252732603012162600114664217122095168491445710460243030579248714331836482900447900038315225886163394360662929466158892088995998395602905144040674944409463650697903866401699485631585237009140630285057163782723230360038526044367316910538772920356043887027897395370285761607153168351873445501807940814006332723264919032454409546365588664404225942536852557832831703032246609606378051263328859464219437806682163822313362281258533738377794233835522149672075749887500163793016347073219972400807692031384486906569067045767238802897233157022202438137146543304693872851223345203235596595726273071706093747337321406253460860063279206508543648694484551748382365599979359781929678188253487287972872232071926851150208991917860485205767750753229751376920269514196815578282288154492567098748345265113717898534501546681467334948369464050381802361779891083809469842707424524457150888518369412322610140638533912042415261156493453755267042948786764518108587745674210800812931156911325076167855596935477638583531176578742872048449401988594565799191275921802287385055376430416345167535865032065475361043362909284251423170171260136244675273581707601648566614318273015951571039655408164641472215407927092472668552778440705965333412998495726816009725067606967537879206223926537882816494399049159884232475731708516521755132113514607639598554423552766322247820677520781041494969629536738983203087092865310577121341070021149008222679626100385566435592458474938998250495617738149742332626538633824126082047026550231420989285385365648608005383785032444982030779518308335644769766443161899024173777654249536813177452605851380448097798746419761818440305180773407816098835022901718619525226493922309554257216033786513512754382716264212040631480184880952723601850276844655595948352205885485149815947159382835044342443733947607065085937351392659625363729728048362725437828243385379623732537516038175453918781433436045399843967394167797153011472139650863271660150721987770399714664122535309136203527640840155838752845581492698329576062262306901673714232008297426733276721895879881717288578008170499035216878567356936814199979926517658601485941265698151761444485220714894431074685635343359455441067095442026653719959926037037637241399925941858513304326391221278353767299373036974658112566232158472086747945262961499571619443004822929154849189312117018658522946830121516431997035105320482947831969968156980451531544504231350090949158256779348268357036351599931525302946344535691683623971117442244952585918967720741076922725182734256401039198122834735472192871498516986722712692095874655338245755577552627147145662417533711420844021672826123831847701403541227558118370952758393015063135698260965964154044235175214878882466866261464808053385601049861488714158682806109138162634368483588276625169771947397010402597222558033749398165815237731841382567920885235394029996624507735722122681381223447241293760006338393369197351601323569935840785802474118132411288480626376059780016642361427051320192394866155527046838529359898584160666205104411226355688053327424967424971894970001901392353420755463892078034617323029386609143771622740313360255687302948945462018125481832010013227399272294960379056212658119960026463276345651814020161183169117428315267098110778575896496795736105769339990624784338004856620194314463222846265492290750197336781025397327969141188252794005457042357415182380087715348976589557330264352422751850440639318115868500317740308228582743147626432174517729795981767080140586940085956238650375413363102428492191808918689657633624999184223493092731656428245464401911398918385351471570705032040190902105709885464024763797185496475212969209529199706624373484312781080972639719725550527246921675796269444558688483725920877251977781111143677866204364742476776795408335756316125324275252787407606140185763872049095292289664482502517211987084114418435033982671584898327535480956506589137378369073192922280377930001168021215126274795787099299269951110805115787647668625808660541898275583311932805082880741807202951021090137234724253049484388783025990169870788493569805571618885959877795212297208865369455613030951188464783224456971997726748627493885940819374539805328779188563266750410269034230280191109218539505153482381466786739258831789239678678957790387267091561728743299228224416735470060346441142806447400537850591963589005730408280555572737717721664675694012182536643339210170285508897385911469533314964697821601661579060820138416471789453901784835935307694578186759639872734825440055481018179562702569171431499687325815716617651812265288561122806795367233855257539943777946628991211185114673315332237665144141656863088468725200749077326301571315556573278206848179184963565532719349814989741304135974092896453960633273358088804139541422795656715363588885839540247483781897174773860116386607400478697678392542527624629984745806806120624789409243958431616323899175937988879057414586781046973372171702150226435318473911098976408532780416083137883574124539573906909531208133323683768149119824177037089257203411154701195377095815468672510565862095118739218720064916744961798799469782316833368448069725646838679027099043021149496259256185009684999075417448117367382480583826468617502622690945130691924064693687116197433721926793360050275176141402776888679050016340733547358890001476991735798096735722376043150674336641355008063448482721195701511428490845466781719861732905221053508350820284723731527774101549535951059575632861998420813066532732508993605251426714294487476616243232604551321503153798946883811951184968592219482097241983133811414469569699745022130085719752208988009853298969600092232976890924407758753672512523389581451591590292662622821580266437290194169086429447547510824773206407999393972370206220760497855260034358721750714194233384936713090135286462561982440054296327970557842188902493374185372237663074398500258058380871389506265179032586400543331071440106485909124273373638161496868506518404569821113862078304700274437225543537229177314415430126714096687835980198372318905563926920270546636790936781054972000398423635105562090990326714920721691847111562643163229996684779878817376392186330619540727411120652332120483062043250597630975148774928325511325197058296507356082487424231909414253512003907892305637870681474314049667393265202097673460676073743474462230497989178050723445641040029216980633098994349245076223305853643863297779487973529197100156030239557077924601083361094847549890723000698794762163029679511356319029057668176107839709327408232783935865070316974795504298239848108931641374083554555613912726385251771834607194681732134557970511497706165073372761666758697940534761588473134663098666264641045562672139392128449031569597553591928135874240586500835460475382619009635411654905297363633879841932339554679821667870651204175195006445057814612888992425214735019771137584398687698996417071963550740974333155239733261918641696695212041419244530528957599859295389725324224029693921735206761729979243771176473893033457739107415711446923545523779774593919871940757886258865487411194719381485998481688617766766280928985014306943953625315230317060169215399434383487376474549538510569514009112286039056575703457288856021341367696640579547926015704114907737591964145795146080561338349239391829175006285095585131213690257773863066393509733054191059211968943020665953284842146650751205571746826833033213203440401353546538705308302394899522231356591025360156207532846455115227651408893175567782928107651834009590725238175709377255502068800781072063304734164764731396290021738067297872598277921840390056875383552398453584952203002703437579057131800928394313667772259020347396911399393442469580312522390617471380308352961344893887182283119901331060335649447842218223703094854603068547075870274993368185795755708394356313017047623100447101341893581588182968316510721275406987834487525049803118406368422362663623941351832907777818704741764399401469498292943467944736083532072508283096745620332788284972239587108690304291148551118037784003968938523395701419648841173374061316254120123972012880263628421206233827811382938584812466333554146097159948849901794931662187847134072182767560009645385248926098691380971724201384875262311963680859186504552146180816974681201696476753086266696419936694434118323245226811677527185541581724223617832401255507715263293953114793251606657933829525817142392224886212921741287154178455611219357704366627912747440346901096944250448967097016736254341615239766865895461492278893554644480379042231105189769953545644020489038649147764479471456573115636601343954446688008569345596275140305973250137349484355667325781258515122722673653829384421931712047575394414068464645223615428343563879745166720534525412475973423348807035494594098295730773609390576144139911110197467939812510360483158991273568008122887313606063856932029057106228524805215856598812375577154969679117655871916169639897895880259660717063183209874281350732892361946823156041188713810272095939374806424881687366319596168720033603069346392397509483911733125331690854843243211273283059272360877895577220379937959771577856661545364836892257587402975538895264256550189869136217797687063923708060551626780414971409190645453030673261759816099365086197013200495791310303806896411014626207787403955872892341144450503842089908490819825207395122221830679951364409530245880087829550952959197328859464463266412415395554782542450226064826976802551527238602615202869967972197796876367379918711057560207474287423445394865810764343444510157639525206746491399715660642838160210804158579987344833608739869224599825904204690706494990015239029429671858497567881878015727078315240230021463559389750912666822387422848165006358602797905660784156731346027659271788702737182517286484867991591495728438622926540245810175992720406386616506319951744790414413418374103890478144713241098920529320240350941753194840233342077353983993133615745272192201580571009699237464480961803897107994712631265559561109788425202713231921213799502368323690827913927225657561260392129446787266333446826919086422045502685650627599049311175372280328145958809520571806490250228409913164289963242852737023902866733142447798154117165200787006310025627869379090708716513788606016334208850499046658955690525666823383982860488723078319878875686859361337452336338270602441428582559028314019377846117991671330605878346811620055303035896476169648853818472160179048108508899912343203943520352276663727119752539860907527170242754849649707668714117779437331255603837869931482911608749160090768846351688988017687203160852299026202128937263464571089047189321971841508588780199843200718124562249775573744039604042319292885839129349483441421296058957092406592712778353646693616519811649537932371750715047034346209060999879877611176241051333941691272164882521165997260805352020819740362423132432893476296966502457657499047932971093997594981642405961999295859296216504585843601506234878640675695202521629867564680157637309254567578627239062429234608320648645444971808204615500471769092464535171223831370202092367503724049272857873279029545159703290223638231113845279251662913121404228133599385033261885971050892673826314823245551245608106779953729938728830517028238846256211148856334320921191422789776567045784171102537341642805198866698928466282241726856585291237394817514122048068048204427139847306387287509649265157962644208764066343458614569980194446382333922625192505013542498635096880359714948449005962687823764775006360663195169155390044615106074949479721444408951104118984485570359279004782103902865058787441970336287566289353419223315647985322265847904779975260239677619463597714148641702047733480425301877100327074816972893543694629847972879670189954630510343793707856394976898214696331643994771222992730974526237563086680555234064287791781090182239905484806021096908006412967363740599843636663204096599102271832191104492401055114410581235223855499505348279150565146911178158651369088191052355011033204756766818939928522239569133333819608785808896307114220902538930058963864409148121532064059759668736489460302882549337152385209601451502334439585690731312041047840361306855607543455260484392347561955395144227706292918625913434068605309914426727530834023054125966881041473496689572735320256252899432786174258726188162072529045339379455807894566986615318871893167130368750954668002357202827889176751689894561542884983722815372987986632630988685735221048998465499397076758977946187318801140717616533000920028575418136332560527827740028671248030082272456416925094646099724335960389598062757813882270175137647716609308219064150255664251416740002224657705603960499775290922053790304854852618695499966207930724605050433540957207281334780031716032845575686894830592586944668815188048644035141730271759593923216219548101972598598072615107264053375350252816128622428057737354792413498290250161735370930334831020721436960827031406199284693012308138408163541059106570795625287044661192174949206460684310301952550655406102565671247024409132710593795011246707532114474097645709724266603421498183352224185847325100400986268140696441867906309127329588198629433192088221292557998493242381932918631218469413647606992790630280705832266652795007520883989073760017848239058227916287067409794286108835779675319532031716883050825795916686808425294650727112509403886417940423036740371740681628780939939256251458927717873075748339013641470404278794095555174030228151615645359638884366618960053909058594303286863259312200118288386546979118605178273566155393302793589389496556942750337374663114104789546629679419726679904584886044584293324784524100239493268120182420444758258108421775678613255905631233138648752241532612686279842268404876076559488921664551013340750632312243422461939489298240927089882692042747725287682408814931020667944635413960427870252687334717035681063163252513692686092186342711678775218358870186664989573380753784042084109445064744127731948899898560805320264030715032326236037411125759069874334526495095041340526590977626640143166597576176087839441001697072731417334460189349840378057279704098676082887383210004748097422656571907933606582836609389112142560178041662286908296532050989668916663780090773230201477843286826622960567178888011101928268227662402975471656975678600872169798538124516408274255347082095094402795543139684436043138837899990711487798521278070952157179080404162080366012512620740377089552338920759789136541300586368078804282301040235819170980651949894008009668181241253877348461862150680445261385849658153090141409935272762360617018466687031812333940950641461053946709932855198541006731735242353674879437575681565868226554661409757243122590241343521160154903131879372707729128230278633097059907621595051437224868257773397483261809022578548841700674991038096425691558498902747643410849996992907186493811397089278909990723540162042541872831401764303137842706890483447329750960087917724550438932346726564566062466985502701685539936070645241475743731898766933415772743720136277625957248060070140862489390806578699241991275933048678036846803417875541434894650908911810401830567082115118218999781533390378332456196569588344123130498912889890515375474615837023922731679220488744218576952453137739534552876486395531370657663077320359436768682471111743521309070456698675200196945156789700739122332590606227029175051520952426845299769846645624338468237236143082439546210046699839811111225500011204660345640973336019891384846326978020516377285286193227921202506835901688176280712253179955464404839494942850251369917589353846780106709214542135507792654911596728607585259333537853072494506016911297872700024626445630481033699992976017452525027166459315129139031084427947554533232201743786297037482320216726971899834367405078207302599152123407184136439685443370870785947886751792374744749548086793346244096088386870237516214316594751395989206863814631597847922856035861740563926937362942138935811379398914466964306061288138023660132876753173623390914097057091091116201133327084454407002173577751742792317524467154609240785708643289869202658483502609810845845979083012920953132768864756637073268632041729669078278225183449839755927899001157587283945631394460273642924099920936847151410552307836539868318355669843702817915260333636096037274807812727332038574112225819919000180869893711763548399083451874231219844319199284919717776361527693267377273100462828926076935002985227074436850413127851751647682741420974115307199128709028084984008017711091131784862807418970365120480166631530992822273409529440419865003184651957393925404063217611711323439054598374855448221320422142815642622705870083108013642100530948703067267779370688610754930043577439079482722541467383715087791700885035049229853789103937213639499201504108927003167268767143751330235039414092695056333920760041482502582432160752816964859156342444916898975638073771541746525697917781958285030338159504520399101646901046822209133919633205778272373394569900371834432114653529562614848551032254889238675638024535285947750861624195142745100191774233229116904638868871169953026467580616882830900562972418287515991915307238823014546232504072344636041088431035413510734236432458158422102188941907017742529306629235834095854863084748249707024455799678512041074975835465769162748950720134441599270729933045779079735726781061831022252608018283003247030108118391747283629067924863614043256836286348308964884951061744500147647265242939299485905832153022050820805624925581100081769110625638661546107286775904264332481631514993120464237887012512956486666144814814863980009664777890870628813487934082825780780588768285487885702564668690583902257890558212284290750474375611597005444798410043322661264566663092336982037587699589813515878649958231791174564244561484815572861567051331438904265191090092484869615502844182780263807497717867399316914239131310285111679888314601764220833659129226920120390720601211536187289385784132561608676106081459580951039124740888662512359259618547260738309857092321813261786702422185335032829656517049373501400224818576783158014105966350975872870747912344222852405315876704008552849858923614649255894427241873851513655803786072065695691379421059998781671865171479964311084911827976830992120250864923948464450513042034429466665141091081965029208634449219012563415884184980660515888773410509982301064196035349969549070616093296507003761051844754196822841125982494562865908322320778802017148909911917349068228518357278143396692715016224492786363974333236943834093821799778339292950961766855383818596195519710433248607367392737208375999307941487273975212813428250439971892222533887353472707829306614767587935280998229645566348882681250705411854135688716766502249061573325054864221618978151957636343369244018887295718042527271091182585341335775225069028153168634635552139476261658116578356746419917603817789936712636056416869925205053256860675585216535185206261853454020854546147475622536753279498347981679748717162467459736126188005505597148264509019201672693706675827227534577120939936235628660345586856406124771170861564794640221994620803441507557399383452469770709857354954167175744358378465906316529877569282015662868437609491051605390219804906991244420583346711671909850903219418204819990081666420391537759057210220958786425143221577290260772981638059051966720537326962372844228388468467209669391287230444924659963538263604390648311311544667103577927489414375822029629361506991363099685281988556911597682169387800173629667966004627875686191895439174001871146333488986894247083705234960510926768207498631234898413583140233318654753500843131087242596953901604615142870720888371725483531322330970340117612599662706556661063330712485179527829591147635927951189424493895557053995810749685258173111995252155592286687264356345650169024145619888202590277526921416499119854314179186236307416743896707270103449924131167881342275493589026253729564208561405861780607538393077722157686803313214154964621735725228170173596265502694690006442841024982585987802086751891713082738550642195983056446555157892166030204418878082583164955729166227735001272268051538716822952244608482212980907765545050461860811325536445782722116682410237385136520530298937571365036587412824843380454873063561801784028460836640764767279278144679519015974672966954160037416517794544853972799895468483248218419075670327658297487295726882584898944473976302069271467123396488578116958456570880250753518822367600490484574395162215333795952301243761048614229685401823208038002812873415538181057136908203334743160525168623415162782993828423302664598179001176185229843048555094675206335874407442337174880912664585571268257853192805162551806501701594476123950990105048466226353126644804692376738392979591221236242596319960057419780754649959903884846969270093092692384587691551972191583356494573775624203433059412470157576131684329795000531676329854101309708714125250944237712955861823761295415944781472157559097814780092228661304438642104697055387698562139088365429659236687699974277446611666608997767784506332664004368300564998765051159224330767403621918633275013221697601486739994026775308490840478024356243531025582040373874269452397815541887653749475399385234562606130288045479285396206010920212173310365296777298498208036740328187198459968247514162329500091354255466995015827318543945441302183449190361274464463675163117551561672649854266906654184400901923458247348536532454191610969264701056077549853018366184983477905600321011489019763452245842174128545397459018843557467383127547378864904543206088845387625617956851162608446881743074915983359865122886766478683267119938185617752664374168278217457597751191012041520060210103545114496037016827856130153813819730328203199179952141487698765107665384788706555858018928675355299029562377550720811483434680105676681551492800832417075227225456925525137819866155383966297786408595633523537307584853053075679279777454234924324391476304120278530135433799235997826539806449577669776035621627102931032795471971249767380892815228076195724395167354300845577772427439510451617860406416001377630651057101382672893875374229453435157051848778678268889763929468898718256746710283755434424354746704559802154193513942725425766327563017629075419635104622218932640298294114116709375767805753621631518672077524946498411788307621646788403126659042481395646662411412713234224332183659510210916733135231001632022848195319417431525060857754185860664936057754561751707434049203671247919409362740993173859084948493991051098093103634557692696924701957115926861024393682178775525987911589141494863540369826055959809772203490900283913078539995979785218368945224667767854636268685318649182647445624840984268617475360376844309831376761330517189032734274542116995221957589982750958721875088538011431832565560058710288754678835171117000787139266508723141661394400701751158754161252358639212491791733744242261687937831583318877884653213687570660045010950612877335348317207273078752652050647612868769828187421448482076516615864862378256245326226608610559723131195307651513959421739791261629217704094417908136752494610780682961118851692311472887053008718941112905834639028565977829229688203322553235129034823803089821997355224427915291944520466865498378788211292889823164116998882311054958122804289548392919176870557106038865163002481461041819927366513387522474493809275119904553531862614244247993952025788710405169415363161507743067609797621783292716695314770084339433027631528585211117276131446773412588504991372616199379064380818029947962203952852020329811412326377199756637377481235974529036835015190142088005703716554141936439758423040526493006723880254304235149083232043670854589174370302646226144092295577087558598800721180985293201304385417113861762305719587547670537580491066110603645118630686633213513705018499055550548959145252997560042405699821955090068507514509642686639865206436052679413354464140061700381370967723102539542666910695125576777618436025335748117087684173819333863275741246725667561975305881578596775076712818220447716457028812766970060659350213815716056509284291783067589722558153382280258757352509050118888694418054876293289629640482091020075701385138039639789469280120349277649251192955818599541635238706147062377998354118083941393586633996901891769530078334624807215131476828714977040604358968958478425867480781743574098762588960118394899449357793325611039870564493608047000943645814000400748702615893712042195340475113984327018353018643465882182582057953232526354743646472684657464591168432870399378547909960888464521925690135119819414613092272675728757164521222430738310401844099055137852763061544238809239829185736745999993485298301580777983101945215176335108499993222116940040949284610628754230782502882120438044467249181514366186678515408302678285611343785812291335684516329794753634061436097005323480984573970043916252951335982582706848614790861415811952260189575252726183156014931263429852250903217332494380608381162014508089096543818668652479762260698864066629047499071271320554263094050296518616110316217732537865540281073319704854462482237396918102596283766507705181369013865037333993506395360532425336683316828549324643595080517167043721616914709291176682884827301904235218947434677084397084604820032045404010132736704320004564979302689608134752709003774068578460363300535216416805374102730827121962247088143973577346679792893666796844533282977351564828064032308327421422718238723944402576443772074108706037535711632636305674816881400086906686690042995021868821018193424373725743576076267600250290339565435623469912600344585657227184096029784745164626101141397683292267186537770337910704309712300078935253623704356419166248360883388057997982764176267824366795100932565356164256976321098332078101422975421312904766759953050174734488082679518619333681671255636260654498291942305745855180070979842061240924139120918679375401912281573733687934072383996567110753328948091924749051549330987726168273825017962741869876560099299800947463187158806931642828154986140031583373769837612025244788739008910594720545103166861988638462832446259325107243774798092420650526251873502536434947123960085370297129383875193888718173341224427257418916120669844625223788259208189155859417994354125356274699495280999232366260818148155678893814541838415317856138489328430469198817267178010494137351906250517176409786266309163240440975188200292457540936081777234948511903971973767250756891760957950376591050148584850871564877123355112056406001626560641537211354275539781174336836100055848635809483277969573691378576138743139652561346316731158529768629130609139644423724321926415297043470492292009819271139809518402008173434570446618789953287002165537147050635395936547822631313690676775531187128479444879355215834962570452249850639580332501457585274167806325676523634917572240429507914941253957498136802150028712538902345580958474979155424136706238570374864380619571083789809698416264492733543307998933270572076966985068648490996117217797065201386708277156867615583727571771393404530783762418907871596787922646799536515828951052122837035613222998192045037103508585332419791162690181834967704959983485022953447065061537046881149822795103131690823810854049451398897575906403189113702083467920592225435980289332687977182699145563105254050560687477356904540653593836029980062150790848641560262154806190163807782154095913328504255085980044730823707019552582809841923397166531832474110047054352944604204619946265135548372874108314774043629940243187643395220993820835971491487122717438675455827510634162054916811940668892280865800583629746098684084131529713477253638007553135633462479111375013004633962328564483498184897784027870777086796036002568385964813313168358091389267426310532288171341011592264330328163668660629399762551450634133821484989665215012579090282223041458283595729434684965306471052569336543963380016049075469426957508733234204212243754490453991770319500123619440697895157790848268207349099422432868256649728619756078768860717469360872965938126877516675932508298032677576069140801845376312279199912328245138291507260267039129005149387633204561362328083727329519023692824354003699116237343123964772191477436268950807112094340960772734081168260575353206796457832290217473928764109108000745396312387611051116415479217182366709450127290742693473817162824121239434920300947950107666607179254371924840686181290924804857801129338469688826507136388734370628720375422964700850652703123781447957858550296964871795558467289367080412665762019097886674487417817371348473329591044799945450216567787099937947472208946456672651657442801552082897420673360542416141909964966269641569471559042355245897178480445972971555804655506765576655444642756581258803083861527129332404273427904450225768092972008732425224587602692692641775208345728850466942434611216244648002683242344902507572710826889153809635839080970167664641027949947419362630910238672805270733307168096860247202257229167648369892737514460628428887016675637352937630497928604874037030141271849357118136376474054074116931145232454429934896289389327562268070560493534116060591589514130233880282291976018078934702714060232666390001314630917263508985527381900204824670484423223930499538439774124523559936890010667863023286101530459742121265064253934219475150347281492091729915474128481375691382851999624606540396021113112486186359195815892909365155925003985643696292433685461052138891842703049183154561631755576713357133078969076783887500072867847749396000731034832451082627196833434763927553738058065739545904351454615975976447471320593493596029218705011498034773635315601466224254740351764555114441050163930964179398895401616777450955229691783564734415547833802645389106516969319429378394293471413576016759515327259595089509278547783989141445422853489880710645171339379573266364685293738418123769297872227302314078272343379233819216988632886929389651002128345323156959100384567619707505510964777836930069024259644632049208698758484058485765352330708235545228189704205695665973254813790175304776661124839877965130291876179483701337040826251779954303614291638782430079763875224901559526637337695855265351892797853425048081877675773955794646596164745884328543530373961541495651147729216763498683300725192907295188150916751013679950290224200508016818268045387793275977950086286844642003623576568310024041874310808193552746516556379501132537001692904459974674579840330423519675686945410385514566117206930893396114163918319634784321521018790275998152395862526273827950315997924552630640119657155205929725056892608051608556712713126624367321418682384882585599073423923386256472426914449352140458168201836510058040185186540890809390520285919154419662365553532494425680575046360338291441193120248893986093714747687208945558883588855465308228752487536228144010230950731751371010621277981797988512329840765296514654317510411662336811656752987952709049256045066320653350882255603006898233000575743756136085894879773935958388500897741400593208656395955383239525139937182691518775966532904802334459263024203102946972497506749172467337404203229968025237937083266167539764159912433364172196165962133163641205048203294897664147488589961640635290015155686997136238960399947875199713386913215973808655812715460838450052442394291706502903018812505151855569300932050059171949114789775595827788059092092859309966460100366325658189960226693535288344179368342013441670308174346384780817726902943876231211006151264558140209470585427171852434056555866222649185238318237281241070187004498962247964082211016208475488347292928896178074827921120339853557640088868724074794844887351218902049254847753414263728359852383522590956217322256048697988800444917632675306194042771778990412924843634761403828337688397927108295084881155357988877751874298004844086342314138529566144889015855653428441622209933148445625054393810088335414560741743045942002230305741989656470307680402151297725451188888263101213266941254430570278480284225752884715419913888329809408422343234582941814817470715399116716128747125287212392623692284361087450976090613971856913980521071188266708017470115056262412184571326520495104516662322771287553658527347591872222413976550182696128945324429340031725643535070922980634105442542402426577216660914235813099550146289168844076161841038677194703927026299616552439306121197308419634710920080229925547909271869163727216480170731712803912901025977857289931738958695574669285973315693814514096456624084670354311674589686988104077374288252226867850500168233155681535651572922629911454103034851765073239047756098413518196853312167088550935636572817340363846305945635956737659490495522892079829889680397331338747194330990748477872059114685336566323816430363795956245560351669749027860867445740494308464655293806075393058668507621196650626958097646080688453967349461906462833201099620220498158348547437395656414264536798208842428881474512520509097268537853198484541962370874350193847132194580840064352990585032881242365488475736190983689119671009570107828100036617651740430620884466578148742441113408679316781177100150398191950703506684413113449412556142238844652621612030323407493293474159242415037026918967191365484285385215501290287813229819989098471930736103053667944125800872979820740669563315191780798308560740902979187560664420572003685960649074363644029648944851665962791641011720109080029595081007345055573831146373692151292429708886079160781182468630720717950773731137123117355575402796331461054706138185770548674330403045488376947310922148115561492521661864941756773462307424887090348835258865617545279520942389993336376814070040395285226724522802184953187636202992407089425098826959753784523027305669664871120607186077963317971226826733018324156878077882543649098683702792694042469733908748428959091705524496082422388917666092300930073262769675053141739747175907859070978064719171208116237813358215053534449261956756636448418306457035540745257217224674514744877228020150656696371114373742984724995562889409428847215140032583473079266370594160457155802864707944746636407248478548612682916885555107049331494489205120173315856983111438375795217176304469932883461847088122269925701321978045557821425760454852911744223099350205231436082951675776677138440982372458521450969347372821392772015228362101966097507250516214856084975112305530142048149749031271113347907578756213756113781166662768203933238972638261056377054368650321294046787097975018539635721825118616521301119838024877185022850429485891407650778215793077559879472023580476966522803538271781671505583225434655275685611589470239451455892397399232297789023544643680998408385340749101371789623211642736986964211873234218949971627061115289370408028540901514335972870658966136346390063263504975718812722242456014898427711376108959398121297001991409069962862510799022699081998749618598045552395351991145856428898253205574335347023914244752638734559440658339841962333214848953079076290482851353155129598101416803060898579414434401619442591789045557111920545240717327686600572362792274590976453940973079962223392099335494883884905412220716394565001641167912685949012399967443715634342656093630609244921718671474290843341162194953049194266535028265279820667164360593730458584779840434808079378675487252080304308452887431778472571949934993571004327061200054147630877423157149071078081069725955849083430587513262066164639210802218617396665970332679096699631797407864804433932246720519499608920977397430543206455448714647154201235348008944144365414841946940979583148568059406117304283045068402534302169964397381546266239067957203164972425506128544629665332630393156730938405157131563128001228539874588005880085858248628546439841559776665369313835627792914394216668134870078611120221201250694887574410732229455220018859825132022159825699360122070223153610914597496071886825403742151660012572203053599571731867479459775624459418359872710792943827131511279655044605422533123109420574132456603308109473886952664640046112290189713284145119942943550005985548733056553913465454879235184528658047184424802902992318855360173634784132371267604526894135644514319912795360133334695583387100467833916627975992493403791820665122734757518625732471699014369206213022820333649704571020899889482563310058333764183237869829612747559668708019528644021578986747630941947116769318790218868959381655462154593107769328501856159761493829936767714135351895336414520011145228801404337508886805240811464081708178464045514370122981386566563578201654851260314915746288842277924752236726181677197401037069143269200970034791385876046563870345462268698269602397153700101055557412184236417719399525555767252008182113582868049593406982525204861533590918491005710492571289387840984721666334837712490069038650439209898705877398796953091795591296498919945415898079419619913217167461995915373701333292552168282247248071026954593239518308625831747479162293247469261767926713920998820991058093780816010353737900035459498047304396001835620830834990543131612530511767903002786845589734418419753146056937955009549571323403601003804577803112098978934357759001121566916744551434257874593010984840853010848927887333338380143708319305393726069035522136170711855248939745900062134001710276516082185569955436963887140345741291796303093968216114587204747189809766373175624523996577306244411154362628009230435864840632219846360630982421415046707864448509294738376906482817372026861346825573468876366106024002137138530270658423013755532003568885777875457831450079579991467716906171398346531547095217509464652693698293956265483676596546108709795189477040122572302438778290086540461501974523130128505259423741363213372767658767713768521344266756811406462630970342204416093183709414361295780536393171740403011638184640083130442364225087167528381219074132821572485398189233367289827249319011274219430561633262288045169505529681270148807981807084399923283837157045983245518674689504211387334565527232352888418022989394622909271058637986815112745127296807085554159298336805574323486283179323232291232456731515257750240656185846211648951254914835228995838182116368521832758896404369083166087571306735819364205005366322652835014888521990624686949702924244735835843384907257893215743671596208386669368044813882254319804191280459234539698799860369476379432289546816156573391644734037847095643127960451117912335275177738610828248627778502489727852758578286368283574122738079049683025674699420336252083057695177502389087475684984290424546999446201338789878040746639318554967638965131712651838505040704438321292397803399039329508705437130913517905080536048460397274111172694309603770231963219446515910105275941647714056674057576814684856759664541592356188267661937762173641249891357424696764869490714395856462548291605693689820226238012341416833553584439846923271812914803712552318521515538584616854059216784393728226149287893873573501761908766134675304754322866076546217441100075182921071998585773465782141832825780324190664700349679099184925417227001088530665126979367095973428041987595778297024502084579259945086140162122823091514389854976164188627394212948957191917196856891410784200192532174350929604710050104623269287530268488696036695410147365636940369524849513577599414040478721659988835317557454637570531637980310763418863665028595162571302393247773302485333111873857079561602925597519229657059533764302986723163244549522427954790175520092122227093419515566592523418859983615646106075491612127665389216460235152081481176386818418451019666682674328845272863580170225651930434766070668481577885077149801506215954516495386920437629377451708273330465597759243092848119154457610808327941385834536183035887237968939086816131141319312687608147431808307619076818896372376052910068788103067049329346671777164886428049968388842474342427095077320139394323318585440332245996333299663654928471314408940712649518408931710740364191255134740296186234897470232947582661247932733724040680842773045034263341982839104833767842527790159965742587006479992069573878880644329569053049027212311079404574296363318386403704555401225078238289297133539343801342200680959316985464918977892970248371495182810771356334469432133477356367108561167267992321220806077813417464919812647689148868473384908775464701787361729337421440547764880537465481082212018462062603683871871018559444902136565603261477437019061276901034866039219479701505769732859813803414623738550590393577043435431830825387789127769303158443534097702123930571911137968338695256201068467446215557514096845818741664981568474449237517940209050503271766315355945022545930289057055563974492506943990713790270679146236878105751930345906484128066770842249087178258296799688199451361939724566828477073595447540948576879975713303997619307972612454866383584418965355704542876964967358049287167267106551807136034389170467864815449769250768632966860645791669537521280045197248133108335783681301838321966182609555081598205625854404875001202952551520764373526816580730666761769984769189834766041159213404835836877135606760452844309250464425950530161297404008197914045805223000873052208061026797875148621561409395299127349933275991064494388459450726262578486196074082648387425381249008640247322918989127512661641360026822194281652916164916157959169218836564065079314499385181376742645385466195507578374447161297206452965545038443442327454828561183712654099362905188430004756555459456901484877877974601211370490383330759041465091497767226121102623768646256924979652039938278574782165434725149303209620357922979840152038573207024667631932636292294043513544406612247542090690044622588629834799920548914445258824901575625519002028821872765020442355220458946949442130051924174687484923205578487389374490314643950390095648890481975079510836299564049663697830616462009312884378513788582250318772067708536287074937080491618516941040694838855871194294215088213752185197206491832596358918916131746967184716208550402844342804420568184861629956417946847371064743361451113356429437179841261549461410557471847197205607962397502198747805805695993216679220938850953851478966057286280093442613396992527151221168118748262436838076148698525716176311750650265963522674362619416249897864325398944707338871552595701270343094423545331252497459565419508400948170429514429777798131622709939685935780732494628596618497394637974029503607413728286283147615862369375881628314351294844447939984224205023901999042320160739666190952016309379200965574629006123939628386115821693647015623726459433105787738881954730835757321090517649646938871891760452755798009596691331456062518116009253755708005008657482734858135337574967148306258370094875189397318700369935961023069936181679852273045740857579762378552367542820574654205437929021560703004351306557073063090448451909105283815172657530042325519001746728157737649529692839344632029151502228364886161461559651549475683204615256759644323690981092718154173491629719402589037760666300504729546228880141482372142806074041476181808227907537002873027102002575410819089729694099327824422166237681656216862340859010697050055994959693439558886802241943373630846777904721660297418250035256977849594074550860887726189579320868557236606273713201018824254335769838659504474652394575132027873238036206417397172282510490850072706173013749854916767371962797232487376958445347578637582804780650097429139241344772913212371973048410666857663390391998290737675683131791016239495938138380443756908916870481049090355780288649045002934463770621895333119993637300368242254121451804748546316082663599168596032693045767688147690674448616968843274583663793208857231173442901983104711266976920710884949528516579917252772359621040554930592985229168122221950962738920223411565111022916201575920057253354526539846961602223071924618122356612060914219215019821666437276496455786145261498330867966410744734427199120224725574503496760625940901874071942121400176766874711183964103346077045981899103345913930968464124648019762668297541181767320855160987060362659542567335439314192428460635411913901368602023856129477645442002523054530222974123807301726941657812045963687429172437899766973731515707267669009144709617807257460662691937041996516779504847661568173397429994943375282582423560421435836672974782301270620158591627075039233270826730895841736073780324325155998430715514863341820880626956778662341268106285233437787045880580058870042705297126793321240087679014029822407342345137229394808083821937844619213843028430729893332601392353401821940441186384934794154181596041296842491850070195624325026987239061502547591135820302498189708176349164821588357612689879177315340845948372101525136763513905497873579810246340792645868546568352946864036910963317265956416132787302836376106564727489083960840192601375215923035652634553811903439146385647454125235728725215073131091467684572309373683849620280280781556587464244202934094363444792562395669770766944655324678576393083203909327287704197123256203226282004466053733599257797842377003664273899930803409348555194733479029822345687246121446465093708665450472997603821794136194072527906612461873289940257881675423569658189652020646546712608227422109986766290404312620073453986966232653707712458211046968385275683595881336217014333447028716862851269602290786350533393359833951713470340165790783171883502280587633564984398208764093617410280023158985214646896268238986626411511604099136616902724582436037039148470875017170894232157840354411534234871501701995918532592562705012014291078334307314416278392369029528840737692158568927676993605746143838738792881246266057706151766101783400637150357297803703503845017475082851517453678904896860676680018539593525183129808172571200440206774685712642396573576445920984097150769416912850457378195793906436202800573787997954580874078446352498069372008824641654601122720833214889230036740207403726827029038951866013809940484900534883960653542814086804446799174510197474814228290316552109770235847171277604194291507917191864844161381541816916851539859407622912380194643265134676432913841560524227925772409628485065076085604539236458899434047236886029232191093049587867596019788846945094292108627461526001027400225620202382405603439041024077370170647816553310790566544280383371432602753395139665760264647811731771274621803457357507380333655149578263774743463855108786307588392266617983481009122699435423338882659891733236084474413598119338444805362743654209374223616053189664792912859855855431497142001430401443005740690049331839084063824610023027341957435485830159230574819852641259201150821328667503372663058694975717934333751907111721314957814451250377238719917111115120835309973254916900148729566950450940306405684456445572221141561045837385726844978310544685943670147278994234422390108034039827936449246744059891775493855700976861416921551202317587574131712314127573534614221979133057262900144397429275933795836823572643179303473262531624298566373998450109210216129899145758084946513110784056626808732279495485964379088153297564983916144178404649478252126521215188718962285911649532029425850871794878853264559626311113877230213319200905577089180140784806074511160023469387905651938744310268677605210970115560419141480580344631539614964770770900562260905308911015902532559388472403247664024440454286726627540036300052895254713718127713793373631568744313965847799072973105958952138107372913735800692924390581678785066313831619301077619795924086054950624196128014808007534518512100890190552372861914920323880158071057068162152854542981329048949625896505258690829155938925632324323127782904192816045765413654817379578481087009022040082988797991370763686755756296861592194858507185315389549344665951877295695239209879498740626185014284466797445195920521061882254542904385680493152472587530840059230684829338928901925731544184183733120469209299562708332252260616627677533156907826716036547304658825827287711426735903416400483971989431706834612488117649490329061555187816523710676371269021406749093576065186328443583926764493016337934244784134148464421620264054319343055542572185149091145439369110199472577802889609755707740973592244556565695621761752179441581630608700820646332635275437163154074501158472668436156775941979277318815337200013648674322367443085615161539496595323205339107907992041138815956761965213662849433791208883278895824327423494973248763908830422772284131351632211735846293187426503633824047046542772726250150267110238557620024587435595988918159318348282440575272835619244974536662767023169687649136503317366104912272420150602742279322949968207052416796410698089826335995655378754846136907546263500603728401972296031384482970053540515703632302214508926224376333299847207062137010401175784675081358523454122316684984806588572329880991496708800729435768952990244623623775612136886019905666507477354492430740379070258956822180473726159223769989493736557604725951756815098785410246640995142806582120162790006833993884082450491286957822054651215374938979470208665531764644203797241710309074506074599362230373701305343599559062602383360336474456705430537932532127559743611871643408870623735712409849235453175148794256536213757261211438725449048428969224569449692495368685500174226502573824386608448187070263483328802663271711252396693339417058543486879384147219271611602468589425219702733461860973050291483451406911235182282863053799594603800398017567055285044613334593968988780553427223242719067795815178848084605093215064505718686746309773417860127486945047263807327888699577261317221949699366394667739375795385138221997956170935338929653251414619283422600153203372044037877153034904980917275023582819479965257325000754952390913878939071433848738766110031075778270047703341186414796022597686671633366805468558044049688249582631506962922306535588684623822272623782113455051454020028962207627018709055300629383537853087905958654028970928919231658983917545731890764833982517297467381121390429469994979528563724975099732429819320182357793546945590938113078411543644378905052652013425074324029428700290304596528727521648574668171526655324363979810441595682775424872444086212381383808970773126835145927723869099219969302899693673169274837870381707264632286713691156495783623106261229689302562204109676009099105162907419967449763953654329743271681408135698978586089635718058094764200813632445989020125264688553875249605775325423102188162809147090769817151129874581989950993059468507374208444087517286731336255211536947691175169139028742909168921235290646868284328762519793463569232901366178468577987377299927051365404466061107938076812335142079092524561755836872074887313188661015648173083530496787328810509448701699961064676481521387550816412931421422876233305159780386559631993975447256559704503535313848453834572700054630941732152676095981303869877459485687880659656054901044118411038591417101051149897040863932682179552918159251457952593696566019978871256214554749609419750196895831295918371747109997755282332100000419549039460365140762680844807130319499215806647251663774328851031781073221519603785723202342947868154894659119186566997160133878752012964798230623334446465388615204568297393534547440776411258883545108541005089805591233271245385999405579614371928142224107857263320284285929326657813990085152661305049159913455103137350203013286513663234820744127118571307868520917454950172551738249875749554821168315629704307898596094904192631429302881654785109183769173241365357351103950374334671501796060479985041171456270337467095984826887630769575567846984724890122981295339487654619793884098432897534484933919138548831276417381012959986343810532222568313891355640504099405187281492873745760481676530015619727865951395516327123078766774020519213657817406926029286953200862905392068344849288778614280082962311395767275083003512442110783897517142292494213436416158902569923189180072089900991275666433981621675349230554520764106478215100435465773300792309245125868049925679744278747577840150066279025348348519158848801699143518985654742425670340047686572240513924381260903002945405989448009894463197264251585661033128002174221766308477169398241890246321338650867043195692180247289497755876464705644191603372683670307142998271072461611200298726672925093885444713552905255932035232556600930807050203862660810619289628338512468132412566653032167722087121049856433441739110895808771004028403769466868246535658128405800429062628309246972783103577343167148977299693427976859543284122368131328912567450696953473137616305424227044806785930198028019913993179091546427598394049504864152124672917705021299689823360606966661312735259413648450255838637277766747518651727358871369343855290843015757669546292428974135530360159545395924216207059158628450950601454619103489441231293402913349810601947802825361334677285493704083864971954336700765863901460481513611995068527602546028807607918335383345694277532047025872510243140524017503083620910225810998604623169982585095843654377321357570666411082607790473800554334238714869831583544349135235166685439312475457121843958186672486114951081180378308060674336942231212362613102952201379065400471354381498507406959295775651568596232772049168133147811627105235392892797570081741408726971878889619987134162416312343586332557609125649846465776597444243111625235164005557688291618099508233171502010914549404700078077125288123412512679795857807790298876184870905679797679979185404927427203059606332921239090524317484366140287449184924806365244901375892552938801660744472539192001487073195675799332758338807022020479097161912160473741315386200986877601106598866524325827765780607762022636687988826829007899719101258420352316872711905923008157625018882394484822065412685069199215395245174107209117051739016470733486664683447819281900717006331935185839299193840457232209711657209482715210465681056412153151803792947300557567342355485453308240489408781978062812099305892501729374153110128527933682249544983728769920234744110159106238234093046190200700809421914117350255218758834867445395814858830006817270501682626840794979120067199484932709960130677986455774194982201831453326720265329423531232856516441301700907895702901272005476307676815410863534587788623589251881248635613920109218541710853290651095235810617137560289877763346677155054062166812932596768537250434444699629206961059085111783761170117887976532407370869575492055310425549715333687661934838013886551951257503332729293561570284554008872117821436801058141740014362628360829057020224692771863681857114925174616937917901797822192060108952078122643131433777257437100324039926893947250703953225739241729719976752051636766214813398951630514033606853499614558170996124594294415444491162157430891680608866690850499307997929884774311374638857452497686734135535952136376031005620850210511842519853358329427940251005974736349254009911805531872130927217587695984023791989396788625913526485246190187719255657637646396923040825526930579688135902689626150397292431878415139796436179070429885399531084914807900497402601178851567626256761214915211155050965863462626679964675281258030896436604783744834348668046564176115276852872694202982830846159006434994377579898764147779475678753447812610745124831556561755639977894196080250979344249796793382787873179394359523953370896993597715955683231060135544745970694984253308677004693340261135817762272357674191775828936420466204040256031617921804135909699518806176606308126116825452528927572275177114891502800336895406583065121037133823242516308361740555505149485319794629344394046208571546044266912998987555295778561684493297802744007035486449125372804526399066849923197811603404466131668030883923129043544201875950338698257063897958834637986912699186125467387941638714867448124146075255857362069979614115352896524599026405915826947200706765507551707321485159920264923055082463573690683030030518592755857888600945635389946298705290726523943002792315210430182505370540080430643634673255194521344268909216575223635864894121157326650041328651525652567296503938721430829074434648122443032879406465607717492891033298030197885333501581060121678575446156548666770474921752004496258891820712705510844647447975052257299663658594360630248215356167498250836865866707729244686741768809130923994213502977849106752206321694716201806847449487462990189522587991024680051056227591739279658064388871991320116476393298672767648220603063669731719236168393022059412104797607473827369718123434666799135655637208778732606991391677735643606825761430938635478689461762274409254447363989944390984904267620053580049496490576055013500022364924115151106119421855257482218269353773869048475144625002911357519477561179736888776678610830039668967617970243982030911336058782067550405302610754655259315802183452761982147038447122771263688518201019068263265011343439656041604446719039400000391052151739829447834386929799886287217997661351888731797316803707019947780190599421734945961422527352329236234168296922461303704967416455155823318876570143546328582266952176472818024047069278223523130288600535112561022321936664272264471734757800071284039688394948693265691015869252940099974262824098653402092359717017998628993171883361505159079438176460528003958996677538967153961622168043704207601728521417196531571856745511503787231110483197181963474050680728724432322093714832341667857849113429839007536218642916152974694663813723148932946612180019185113620181989042887106827360323335272840935312759078826749075878292606740536590399871795453575430502942019402628557476672375837492757564200233727764747377397214510002033160339929111068047160370261588519621506240728287597863066340759124678491444350572090418017943334576975973810319294282958051917862548991209496466556481541141322099110382912348112219383040312493395635362181917302823192818625841947961536343920750308441538273575792196027605483501710501063922972888958352691830154440883695957413916865535270194243253585405981806313483020246488265664298538693874100615759139036550713968393333094301734634480007524795564498608012472814069617252150502815939942058454034636557549112022870509402496623591092893410012044732458086998223696935422781618968898346955509040441704016186277885328924470833022710446427524364281569647739788535781411935330049964399819779418649284529919638726230469889135303992938580519450665306914960249892758829409114407255595356064607218423683556053722876002599907814098522240959089787211289469515002428704812263156014064418973956892632811530853255714750153237634215053378644847173476349601727098522513862234905282140585243190171535545200265544816801022492390350792042583951039873459345886337190465179887657605772346083458456834214784520805368356010880761886234655389470342951247990192157104504678789069907187561053563610752931680965737776399645705051867178597388283066568594705391948174436706764830925091026714069717418955941093923844314730277144460983470159999626372459541615680715314282517299935319314236871200621562153615243488146070416124372450066124442422460819069531961303657792244576791439337538187671239519601067921515129405266365930610912457738464298609790209142550927997046658711771056963859950117510858241042124494955077366680617672614960715334562553389247052828354736233137986945816693918592652399127221936235205063007170689407071550435346499198260004604864439438025601359357081448286786841036917923171796966164091638980001093468063415745117055464306098401770306727958940121990350779385853346734984592723259775778559334219136172560210153108323730016808636721171154209272322396428294510760803531967955307829666694897768880746022752982918789666451763902503301268017182724103270297797813744753193802845394069458458258245717431533573179491320856192636216776753371245946710276660285387836248169468591154671346464624744139595482368961169977497767008222653146728426773211705003103542545584595264331849679320277914967684753512171320326630219059627528596132676412318177874955807624444979298000937073128963934118551935290675530230711569159739530117634375854974260283435249008605502613068447874673612125807419732059551674432903696790624821368098938950298174416885998973713930432352822257461447407851014936292807803430699129715891009138251088196419161239209643967752539954257803751821890196372669988794581952852378553979702313227747776200750055192831283186041809514259217248672866853030431537047335353004481032822287761663017028272120864768637819448299281527265976902124395454776707943085247140564008510238080300329445060979030043559904369882145293252259100116728800961549553799276526386741832784918969585451731178293761173597869018002038321217558032212662343722597571642043684927070129684431482743816824856344286360884121404707184812769328773149778176676621127394809357722078174239261914651480394032213086635169576619472666783890631470133016268925414122289784066572412149839250541856146606270782302715164249770164810022128265098405268471324136467618630345941145447137075972964757163302150782315552630862491295504521299628212011162104974469438107680348468476599967807976186031213458583613641174925887726314520716738998411628747700068530420256383136480343027954477773674941253238164417096976550941657512458091631750627653490911609468761256065219485704396701831566941029704444604534147196788159484057151111828995454833655900006490075282604734235288782387374654017328579924986605156494993975435687459982469462517430617889727789532877394423415698776728449159810063297461332596669912446231883366370746316420748127833188817420875427022715523252847808212103345339439867731173387333164318152561249692516199980945663560393047299933180158798438936805953510031693154217954762025897895775711252984579521417179419570352644801835080252421396534691502060131112636273987473577965274252319354487398382010945895396368767951009346297210384367954105379634037867746325718090826743116613732905770861527521673195506715394546648146619472091273563476173295176691445937926829740016406767746929748151256384746724241648128415989431762114656126204673236890099485689182037553104258979180391778451761308161655986064844406375431076184720807649811725288436968426377845371778659023481709986913967554026982696059209108732156372625363471635722699678955140707887238283999249816979883781843792115158646700380409456674948850945714069103702434936106407865985183035272289229826871743339944321782498203271995973463128240732154047271892539456910030769662002381257521874809712212300690512336906436494295908803322887188986850136906194092366646609818373317586725094155948131065519768520860404810258348846054514152619186010764361450483353857988112213525221165877936838068111086236630650737722894665513760063681673390848799009250943866831846702934589159422601145036578019511820527617151295368216989297759591289127030231577435464554422393446661535362310377144966002617261673965240314349897039542565174058877466902646428580261491458690772725229218135396541499219563570714154074629643308987945077228639556272458415827254929257611721582412353507978318924579036110503971124882863543074722089275175394603209783725178831388234929378009618659581211660055510761212842512737659071134307641128944147804577932302261548668114185604778724559459938846127032376706067875830297585387932011357405251186544010624596698682251748081058841884079702115920961645591430106156933522353008310370901315199839683188423495782786390383484006525999479859750413133840482688247440331696373734627643236341602018553000332789413783007810594830577504067775538774285686534023932588246112724462371332903614334976854323934704595467854763133142709061587746631780269666601679233995584271849040830924802269895650177740732350121705652088336110680596262443970762763399626117516859428739090882844188472905718144168327873669276925349515395948672998846321681413109327856003376357845838085549204501947964452766763111528839749052110065296359611059867858926528792809458010766725426859679443857899858132455955604707870594253403950610652748806170795054238488974246482159620098786169231382391512326580063562276214672971293225223985604053511032411245378636499172941709403778969075799061470065273721184229465444039130521852776984614449886480716209884333923464160967021501392903534186557241359337420102328688473800468733037143877686574820417901444807221785293478130629085520551113893840180513489233854904994727688233185120361188286860772357664838273452728021649149422267653050713104544009791799866877198346431170543555622680509562113197049639944671685261249322129516224702542090248853644612281607894644100160938763948892997219944607775882072027130029739080722573923078700632625103946447087220287366622223226034723437174144806157002100418731790735748474439503581189579684001711178482827795004971434488892226067098067610808489502247187067491059678696609538470848275788199692595947577371190747615482564611759962051286718486817240791462322888198311299585260883222681497051997756511957206797002034614004904939335100547383269832608452482465322338474469062789997777886777102602625461930821361678396267054148999562636403897788311636048374997574465970716658051311530367273938700487207306300193189789825696027054040771565202741729303522388821180703078191937699489077932397238337155717410723402739429239860145028681191091776726319274381669756418759016662512874196557105228385965853218217883469361671173702640200340674207824418554394312132600822631216915969358337960074882389304154352497444071308067554012100079806506195723620389381100576361105552677290496631372434621314166180345658911051076830284361279604517727961809745764533177815850037635849072508947214662999590500741822712508296417519856865023618339602506888790983075425322258348430078808180295155632756562604199691375854435829254332326414322388135826943450929035259816373401415941914540293127332979532109549915978156400655692816197828333367666798442376417092592503319930394523359613237694902872055021422566510219440688438958778577031713726909381467156641636719921889004729275344808649090539885251111275417177635520757702716413230402729917545992275100880134709524985410631019225756883839935173340843694397800841480540618785376379752869440886844140859586306843008657819655115837291617824561281007703384690781695677886985851841587575158592581890949407904686602684143159176610543143329677884392135615741005189035030834121117986107257768026583331526118781228770739055922871761328090732091113053998312865181413823068999051222746387017281376000109385942043551314718173659112424827084110676583869693191304989874066229607521315136490000273159887405790617937820898711674385755508701870281027795728725800648823770525266421567347522205490035383264680910598664153541249118121537106934672250570282887694323767084410696359705887740785598275175122955514605013679654073950916386439861971376998629497144894335188597442376983709846183344432376507686812428385072423480441523183919040081886593510760899532336569208299991234352598251131469418508181455471140407008979677122829403286683531310974357815462346551470921919829285228731398997866979010043841515714685693945339131463391620760152584749671929195826209850549087024650863578804855882473065438399275020816324490071474213609557182550794958250791125214703364080922571925075420588478735777860522411693320446983633044570684942913208342363947266051312886935481230910606362052227219993422238886524295762572363684160518701633047026797834740922650905377191056925364825285477149435666192930133889381460671459405873772413817255323285461114208800833922349454835936757419342274639050491108925567113951119202906861771461146359401064550125368989310294992739399457399186314393828752080890327262033402598085890563156380607425294791218213147374735913817461623582801000077045702113481593215479549507302084033711299880968671404246098135428729423792508311835058292708527690929327661574474683761984051107282595152327889168825555224655472317543035824798650215656174614080791216337333222236783124281752255076975608900447720663591951746556181260806946689154378734104402033177400367975868096377274495861266267591717709044843833021712256525386765798028219340881879796974306076477339716941589496366497687602084346148493204234497589793047780002307067273317700096936286103940747119431777910959626899067862298740140081518867775369344324104675653375621265971577173856971860831983712228759893359377403620716427480705804844344061236732939941853812846873692476898827278725592081791389362398095336071857153396015527523150231455724366671653777162106434280300429880553321476500731833444248474741768678092708017368317689600657773468996249735479660408393250928683281831056442945212803174644213672106275792349919711488283082658200056580269122680281003345686313987903318109567507570116451591304235830970231572919119530922204758614673085339981107022010657255590219893080070654453041839363538770759165029374596352678764189823464654420395580067515623869907688401837489241483389669050786560180464598221643632383786125876479006078779569863284433017971257467896475454110173753432747816121560221393705135834074769421517472393471899364298380187939828266230095853968044004066311615203443040558359247153364674539859726834958559849436225747795706302902171783702698669127383301077001325954802176694304514022512552505686821506740064196303170860506066681834708801815052325267168765300505868584701735689047457527129013793256493430553935227179912763878566151483795587416672418601100599037810299151320164526038121313863068612177944075603282579475386877524790414885217931656561524864012913681991211672353808286679245331880724017150963255769282818094259593144087140967775556345229047803633671076578767789837938727189734847828766483254774213730737366867051705097899827394944391254956582174427537087224597689309877189895346245588176768723357488101857223373911332738981595554900721651010218828322694951566597011229342805076504481276091001459106157449893244063082100088296298948570235356562833597458102402371469043054815151231770539425168439279607476521225335464823063030359530738342007910494114889696405154556750329744255088887499950407045745621527190736660628940074962911007298169308050357460849727629912929549438523117012568039158861486876484516078999572252285005723572934453366976454792750472247400509441024928249021475513412368852951561708550952355503388415652528092675005863030348945645685270578325878003927906655324090499278050569217842296660461642121107497915644401411291224005945810253984833568703356990808130731215730945343220086312878057058781677508872970299540075159102215062630839515713620383154450500912177137818982637295475086951267294746298914282419058598284731389366126759757457250406220099647690434404846644415742371474058954936518176335965689257680715439957918202350696564825372370875061494895335909408101649454870780495796680130129977667851473302958057734478921968502779133919995856590854119108539748773568073866774113885847394994069866944571293041621691486733399110203030028686438067765125459379077716731990297687915421558264698572216145395313017913845996419771067200248766901871303623360338301549469122926288500370377492911540092103002631478161953266790318258312350116627162238302378411693409518792391713708540500734992744764130065354665590704187994243763065233677410406418828526110463872103440049666958045431045561479137262939861986700068527482166000565422834193629832067459014885071419394147247854181522425868594238284785570934654678866806819732974041865048130393541355494837330187584075156584618125424940940236486484757625604588076299595886734303557838150656071921482225885471660892420175943197574160931119706114243353152541175600747701237380378429967295058819748444704988192120833698885845255893036499673185809659605015088896214708867521694880855320742442053547087020592426711719992584885692359405787750867339961701812038038205772135894396866321507308261032106294616498287278389770559242679074013274855617981357068532809679298385082757755065433860188097452273715535672175873230293560134278384956345411046307988533919112434454322731501072196813730703214584365650177651915782146850666514905175935141962450008328574665239902073615457665897657082809796263881824670859722116150167401666777272198704044860091400527790316458389011405332772737630667742019167291094216375145396292803707857412874127248037151475004161290183213550315137348264843677634734078180311765871904384731096136057184585733464089600826820951237007861497647670338991726646606736706977503816880144099127604365100971238865457044960180953348475692883239548616925244531132238365690507013079660480989231854990426770344632816918037707644426675730590202493465231177704540724489896039268036814950617957140750948010131989663769266614779715465973624014008568868525820096433598814277023610722266767615844481797783300906605460265442976979409324668964598510697493366483740191569462216208488282909599046643069214335019795043791177658217284768194121995125495573188860388814623286303213295618252129790239238925668787572037804684360968168218749440317154394984384889304165247697601989998988310470646776760344757676885833779224540834577338049485060766617713172794847227023732373421719751801500262038956207779660348671808206165576378401265868550428094940184596144944917597124856948772868017979738586341944189088777965552857352542747125265388413904909891061116608125900969061739968454854509840981151142006321582138784063592904991920695726765876603799051866043426820195447328310805058753772173575292458922391659070496040771657727475792006776374712392395098927897723048660188866815867969760934005101430104881342152644178559922984969655618096206402148523236334240493020609892581496443537870927583948476440269937534057647824456908315115489915297494793757630126578926987295139218231851634172042650115616690714306127062208358478076923736090242506154383698569670735876628026169536176595062596828465659273936586029828307301219631067338934789101690614941020409453085076992204222713426931233258738197413264770741622692909698440512141958337472705571113083689776640959646275548157159432871360401804472702244659678363187712620203249174839275828318148661970199112451438284281245203758373854502976389482762808215654316457339284264651921274449885734842008889746228719441526846722856381193206774725952592225105543831117611822590625090367067126421817855547589989864765948331673116820890019600151993905715596611063313251226038786566353782350020757829551153504016959737874356097660783263568899845935326807569174642355676285630348134365188351941552995080746597839950921267672907285564288627571605567597593308243815804670865098538298059809868125163465919359725332179706895179576548547522305385276799102823428078154023916287005676924650588414357137027390629799095522651003919588168336339548616502859660570203130914731414813778186028669111858215204873287366238610334616899446690777632090274131480499886117319128221361890357357514205783295092876015726172220117407679769085032936295096143934200314824423760568732067599506485009866253972423165342679885603129473780763099872886670729415540606516401146317938581028719316831426544071332528511366873678104549010307822120095343657970111815523269101442538273270503857433787488500864647319033072997822098001653990575198126735991555557147369092661263115575326484131059167669971878051555798471803735751094525722281784166321244750983364923089337170262130612210072005511200702801968550340708805204585516124629877726081238985552111009803848183792969930906418652355358387008630402475895730712144117801203540194637407978016170446279963485053192476781969290748834246859366265329307697355021830633034057629830450222054783240513606176471069139692807905688134451515199578668826740388943942230723432279668831622527953049532148461265017757533950964713249874281858475739229347202912292664314268712958103391249142923411447856059739700360602457859871975215659359137357804690029997575247363021406675291256990465677179027023317625234517563539212345158022330497855324804086322046894343630555030158411855216209870293783072602032633916741883442926169129304678539001239338346281000390121842925810221766966253872028368104180309587991733028400058635733958607654839060941974904505467248258527640964605916312746952514327171837397797157970188120875470277528387155839854950859522344394579327207436590831947864546963733512142509825456642747193364933417507484174530088105455208220122376446109730406804563266846446519430041032842941901493798888440863416935536646941275194917864287964512267251048943273166033478750149406213618697201685512571119723879332558126522381938317335259014117031813580363958121690812154465852896722665255454355565034521465296434814120138084189950698913459437704146968308346436607882712046506836352811536720025139473673481297501488945291465578066925658875462967562277534589183020138055828298787243366979481941657147615053061864227273318690875542851130485815018693968361671456621864123258899737769205292029900509260651443188040265127326363237991458935788446627087158258871338055840141542261953736452763832651525151274489278621627207531817607141136003676907482408450721040415644951393918315095425340516933939652934640355056919278246429790021017594580106531765022195333284125112317569823855091069096990613210826881097830966196192215492008017366077723723266189230369292905242897963227661518083386452885768896325181597592000808034169775822270552927640843492395811597787971264175720657639726595701933410814739789056186170617125373193143238780631508018446899811866345922900383140932884529614793719369835746819105176817360404482212470522480851472753736582550852733131299614389000380420462807953403722180698075949765959583746451745113024568880632304665265219986101445675013187601599093174238511767016116295671542634357806601451174760494270806135623224083358558128939541622306442604540228810315243210132099000565852445973876416541436964106399654666442656869667025196770213305545192398921484822173753748639308524334419205913990872099247123498907993121824783847224930379962113737175397949115588177047452075750301914626631494330595074426325014088049385539397196018894054224443936611849678791482027203539030123242320369918486635651745448966892386442542369282828838494856635634629646386675776341021469155505000705433859074543808015564106873052140460761082381627202081893468020013881485414802449378271006042044466858155449871655103980417071069576596545041937333346781921553310854196755198370783023791554998124228789617507576793189624192154849099825962651628276704882437386446349568202299529462976946494809255638111346484025753582440468615236589705011281523420302944756491561643408805717637469129086824028040136559639217124020477146297884879889596049234791447507827894185690817036632908452252506304201710995066764789349198821170942140943727066770067548778035902418504821296580344859377016446630057057461351663398877004270768053135946985435497112049853399156793833289149903213080241380819875756307694533808616405595013262244446341818507013197520647469439898605543918624477917493094886880993367161562483127830657229845294929488998765719070879338507075883036304409796976139590752096736481318885429535539049620752969175848173131113010023695330377211630612745521814776108334812327076229215866557709196677991263385144135915144930752851410113454775698763002537512501658266249132737193622261579925641806652520449931877031971575462437797720869719521856574132013784763762599894126599490026288811510523594397409836931868312343772285403070119733799118642972417126040885825079017619758886708330105264966134731410527913957919630049360617903721272573903836642945418651687117119859378511916767169442613713431654078319765513607725552987439124941675253401943019962183835555126589022233438232410230212943149563433796958912152366261582377576764523513359207308906092984675536220050216935657244303349414810700294466539688841099970298729860456303593069612119820835152844041903924377808387056242423699865962477632571429451366875757630095932584185609026744606712697544833294965678357241859305157335837038254669240199111901039131365552396621156111933973976700333687739299286756358228288481919516146941765723934016455122458688040479554477484889830991224950068027502880452875297750524257717281489271484604986981325178126147698249560109863705983146019564123862173598742973956920321186515654639223873018562279373712214969561488326544694881670995843485166314035579634110152299304610391312406441116854483399632125771483117538695577332666069544952100982674960567349230873163765804130634598816128020403375010073784868620397407212404558911393343615390951784492169697702246894787943901317303465954171695102121633366702729958406248109735695525751097795951454748294017413809218036117295686581338133891041555637450256869706991050449007337229759352837476113431515854241369685648507300219304778900945939456096710666028161358778615119080892827412368405577884660040160999905788486943617561945128485117246028497249079096787181281851447323837679061862415392815591359423760987249460819144209897067531928894529537417269803069686457791760664829941969748742984899491861975130768633062434236871350510620089427330336393062340441163541464016764286348452538372153189032410421900096098559908731010278786201847105568611929763593982517549189786947501734477924597054244389779672500774975489526065717868961916496661819814286965906951415186919326107669171633815489392842108913677744019070551120397447625630631243317741030271096626294850788402261455939938383906346144877349385974686145417285629700461979061587409866526864487692978731263110937900078770836827645739993688813330105055932034090282908097055201795881183376033163394858500090491388981182711773660358989586824501016781946018806985924650362229528282119724773166108497257873677527031514622605067976322239328732699912351866655624058337879697438565018786731995770597328117639229816433399941709365496057673841458155330272925746309230136157399674221795118026763395242007869664399331944737568725992341810674552623709621210182693789105485396867647594933565461828762803443156064790357032470788920050275151234019113342503072473628737315431600325136019460883378750553435431797212039283512320335952052144448129169784860755030885351052353594796348531289775225433136482558757660010736863192831046521418162912088704836157776653192917554052250666127883491765577080940035967931730471882914759184809282422758718407315953123442367516916865292191704493485938614279324218370085926315098639550544699178160259487993375329776739811236620409038966990378203998498928191781145169142232867295757382118980276628206945626034790455429873773887298538076106248047215431299926573749390495702159345614955353764781708331076820392871359737902228503393366820154809620878735103138195630062977607697312531905162372272747858423477726616667918654898648915270015248671734012104788313151927077951850381957296445850146922383241313852667742404104299328634583007496047661220682492422448965021242277387281516022921785517400738755805320137826779612392828096718547259764490393256875763329449696644828188401922993099789291628407212859445169475398710154247103100498114039679383628395849142768826251625424521269497869772834307599274903879846383426705572080095519940923356501721722922156243079032130715627869155125627350750325585109603509554029664653935536337759770618102486865448281605660746087339361324064233187994985481617257434644791404840867916041760501647359044700026931971467647582894927987137168763838753173817197557120418116528612723918038736317959016757216162285219412305914572795752539013590699608294280381122041564634386365304399569909611236602393928836693157569617941811881838044201479948088025835392762463678831591758683164972400999561702577108963919378370244070701628791212756635134708612668635270490053107015876728161409964547300102854202941206167754457054460808143465577892660711654117442942649399551336292045074649659967253947943382402956945632641592742452055320299293934294097325255726926301322111844594193499937944101668250888791125902365955220444773388719834234836481328645312263910295549613838015499830874506799097542127118861008296555312545792432803799739513153984309161800896696403707869876245102120393696968526319845520268032137772419293531020846358579900696378196416966207007686197535409964332642020079322166003744844246191296297668318416788921736547318375877466965991276759055689281922325079469723390181228501123034392384538659537401244800090330416558238120744164552124574891212363364925363435493248474431052713657876620184178476257104361614153548089564905325289982932055117441247814163223842254445782628036722187557318780475588031043439094121000215788378553083794807712710311300751578197478824341608033456466243466861996721774367374931719819891228000662854115243173001031287040578029823844277671978412492185026393141823126508696846680706099940557125052871745927617150154190973714861169878609760106692778733603688610671731005233012808811786309196649081616119116964012594674635832913235648792424686081538305808174717782309397020636658625039034533926937588379519662798948373465926243088423221187884736653368591881516262248470732400555686890051836728612191926289484692516369595008764681181922675385333773434652903102333014002913456513109869514208811188622112764368661413528152399590241041131378531159167105875534477849254932514130383659852878080607694087698441815196687732387355314148899399152017391011328986235586921141806609332760672378316595270469124506544157516876702423447754819400333042119231280064738534041496665175012510631165732500264481595851333537598502929918207084829943244153417589067923289080923716882415941359618690053807170090909868806404625315983911892827674757111179762914623942854076737531328657671091803484867528283110008641748131019328540537034874315644725025665446260818126247140901622339994845190013984624206020783987181290046399256279592573292147095291919690346997083362560145833997723313957321518020578062630130732679214847712890093612660807207690380850857634518976223516422682697583527368704794500211296405184223901180728906531186267225970975525671397862364436422139250499177922943921807469572626440598381052979358581751567232549120378212754315835593933188645330944883938154599684168849759645711409274668889891855554849407844075283141709138070401478367341574665375959090720258706679854494643047713326392519998946208691072447330872633900890400708431641375715089449480812327160205276494487585728423034958129726919156779320047520731185719150624086807768637610748260194039726312283482373632623115493624638495101277737871539975870162293070106207466937811656233069719919934415704078927412759393590008242401514520597000556463848246846191069159910844787774691732120852309722710106255614690367259382245497300222384988641713382782234165029508728293152890674458568913835607865138008335026132959429581852062897495319093777071200825629472154133664153801876442531833634164422741378681269312818832444036315105918936223720543470321376779672272937745975759384923118866479685215662637518659051402937770681127067236237810671479994609079416614177796942251683501672908791261831061764616483580912951311164903162235149093398120343937694291359651018985883147342754346759968284947417100234958996641898297857289314022922357074578980046323759367269517368336783605240929115120023537588268380699580222795885465334242886046066191585505697293768385271445931181200393893581238400535650885322595643478019375893723336379638534485968672548273265279050810564435923852614737546311858795642196202462508958258784068917998345435660583704357992099744247172935590163642247846096822226628381309001515340521835108938092792661891627543727929466047402210982873542407829564905851192927892187923229730644866844168858476535314277718134447936162768424717787845145339234898745540564473386466117832615430164037088537577593579570351317507175712161925368990540413683443116030994500813052720292548497160274784667630772918215726066155575925966198284025352647868862221709608620672615968874109247160386988003521564383072335648180309774549777673607115227624314181812775300690190846923334196885636783325129304621019036906177753311865118604020452649210952430473313158237698354845443520855917915358206942064421411376669867756145361866849471554409256311162688172123201750187619112596235283630910357706196915820099329289822486716846231337896952065215318053280720006244190081465378223713818346004833671993324482852597543994693543264990867214690254584580072672023844916781243906889555558017388036546727838020450705839884295082624129907868100853967881194494216870411045864875438819939601172630432291113974811779227081982260300231988417925413110990690410982513501486675666474513951068260328683612914962759151898153368351453252092580249316778075506175188755615407123012042661030893879877189062288514450851089695420978855851469955168589031631027134678520105634626870176655532744875632639793696962409039789320203178705564504723658077917460545293685910636847234381400893849910783944891463100997679690889808859295254206780451042889316252957636807462073363514460471669613953240446769260452970490532438721423439743319221741343683754364674433390584323421162036684630169051828372870925238047129904307463966879245901927456658116756553477453419910103277199580741628132596281293610148808710069278679217809977515219922783198801840212490152346601468552985616202738448426690773764228752678265564634681761144334267656345165648680105988225301306590760337312335719475960113839077961096293377913448522232239352215756840538296246196194847915832648775271653230482587723399988388644176926154916433312477383780953600788645289663459000928444742176675158858198366551318786925632976781662991622311243537894204857112432073273298873063259704206011658517579103519906194412498168605139064545722640362664829799357083003470613157859598353987841521958010192345935060650705983465760755401145958138978237307946886224330177339954164430386322930376189467175189588288466490453507599100984959657118860312103806570977337763490109352320980155027173509168234234157462001236408523606027930278936339884794640640666966769804968916754738212901510119071579627208434858410169286112765101632444208890009730601580504684091193988861774425963586986917247529291099085366191724189368709534117680569393240609452237858431860830880177453840133629478864667789163714511608234004724356860068943150138549093671777292993368268144695310979306479721440650600474584379538358885927712715069379066213904349997374463974164535372026410132327877671114578271553605211344825989430794416526862257848608998933831935177046765279016685213162751947898332330414239853062073646476801931496328579055674704010934587771242525047279564370450477286754936487663075572769450355469845311478349544584802716971137306798577486143039094977852717052447324780315981920621035215428664599916059236304325188451477580515379633476592737146108682345121874516607388075779183823230842396495347191677123946663272371556031821698012233052142044249510248934811421175477057273702284085084478248663739265647511561874396341232295776140070919087516640299855228283003312691252282792150013987584599485354630056210343037587459983227270093833005082993408432151556938548140242064334364401041338969350995012045333643577441517655803825357997506347203470301065267018187276359729907408662154314220956957100398231030582803997465748547570298067603128848840946120365573222068815006275193588086288251198068693705295282300698961867253046808388359734781847822217361534711707641055490972425266224315292779754143782987249401035935077447333714597577038732392360181275963850821242194694139069794931755258456430398019711377058416835930468589185889853699640612475653061320961913502724977432972459274776558295739799941859351384193701354951737389297307679400791893381572687113027955223538145582097331375505985228744531114789438893792924413386073595362954804567444227222221727572856213763780444001749316094238821126649196670364254665009339751746293841101083319723414122074409464486288932350292802244359698234038266549691214480419923977569210731909031253200291880874278927376321600848978577925043140433672534518055910026349380126671635543706878763532427329791647974165527809265635615258182195920427390151764851816651154766338918730733543077026749810283845607684120185446821624746153465614284413053482341944700183670691897594239224664915078865340628159763512060112564559552725709857666228740032944715213089261880116086071669589258223026374893295296655559127762192225123570119382607610722383328124728174148344721917330038968368747578893116336009541673247626787042498227938108316983281868892193667171333672722411641076975876603434792076087509774768986871628653857047262742400467977975373749586544393331449485006099129469483256572836014850099709259462830366946855366434209319782479550031557145243196256583891282946502701665216890018246901172358129968333196620394658398105658891489022204201344250168919865227207900849574068245988420111644043541579755807201961866934962322602123178909967984162033724771548770017977439848534156207681727701153534748162297714851997436795334058460630425776840266732653306778576068555626244849626051860231438614822087782573056590277875023176394120398812165242422521563560296355919555128630935382003400122580098388535063276729643276434608449374173076846218920208020750171558236987905990627092735927021553099668111594903894229513804710050752761857155073878022727126473368314899714895781876407924366756607794084799227026875071224591810707286011856298640902549889726336028025047638000684220925055066430931159351262520661741762637659406976552228448805567641116267045689226588922337054516737940485991274543224779751342642200552997525712028809798981853162254386336881919175389143162234091983138788080489820144964743427881626823238781477278678907704861930861696403143584404537832194349752358181878860581230133439219877839636371523238456538066478936086675014919331658079382612747416356916889381500664259401137039894557190027454663235769500408153215706330120168257297997496656196212967577700364734839657608680241936934456112846988727377395585252635169784352519884678773631369059278241694079396240841305340860680231551484367438607720901296310461706864204980151603416747003877609118108812853373565061196611127982920192965459842350489445937178450440079900759368274355974569939187167920350162816992280505043609005923100934353368369322447520023069905316030964463425001373428428088958351493960882999751104632880454642096068222345321283871829575277667404359352696886137125896662740353831118835765730342844043591108045489295980056289671616822863933428791656877956426111378541571076602214499711369459573127806613066560527059400015839503596551670062641743895846540529626465268597983678569503453528060351234521880433564440500277950453274072305148484488917929491940056300399758833267640618021114230681880380526095342275857496384582544216590201323635041914004299726755576463795805408356034974230576489259939561903521540354010472056920879521968006775422612021711075104614106086555381901133924411040169732843171123307146841251299624656518707781638958196450268279483652526257082703673551010681334877238547681780137245706854391256189754989348681162258585053655269367995691215630371184250211904945443997188539261007474948516880434408248087469935235631341656577380752221995410130853930577030964216397477857122079979835985650540171400947000629779770965870961497859599766852388562886606871773429451870605714991165937326520450498095570348136854781057764812046095451628368818099423174762510016961411973402013982266931741413799193456181084138028298025150223097075680522977163208983176805656862622322756222729027502640588912670609161493099873775383602056455420613369701493747963125783700988949034669091581500374812644190127430783125576920853661635658878562360280828981009613259568125498306587651770939197607027416587253522275389174797442693079491317959850973129619386490572065008355077314356238370374519015332667178252862974181484469286181563629206639538064137220722108294313964003325896182591503765437094715364788616024828092757526640211116426007961378647594891538846987253110238117668808828459425234687923625307214465079411883512788186976463295512433340990107846896573461822253398123553681980839082001235651862835891456009709064476070992080088793692884562148839166834315198408852161622962916129864541870323100329399615964861993912473835156283225630740834765311727648638445153013797673273068642343744573824127548741750938827039359702639550214671259102046785071998842920454569978734731657282122576798581176875174249134396199769085336094769373755792379069510158037060946934640699556319939575532243144511764816256100173401257931425844606084702144538073994673642961841063514603502025374898148461438626752451109579840685531915326804346659813832632465758643122377369347760446697166941036540404270043261660778002558705003352835996351422755594953539209764427053701330671839441989762379102571999373586076783233220700404311722532827325625964007355317526451737341811676506437948461821709170286710947359494311778046096626975239728282146221233573263861433834212996689559326051169374457274474026831294918916221372606570190158403057441727495467124586157565426020430506586087391654665047382305284989007560456198503293437885574068158673272254633693972441818103426573008079831150887507843041952594684522546991317411218689561046028004589386458476245877323056459471855623540865127886689658393167281730179768395095628222891708806706454155250507277927080380185279209887445625938950277680372448705520414440684048462413371839552134562253810810924027350306452587265809843627841314556025897700898539627815450192825926797850532487719602261212937422720496543989029681032743059593779936802215195862716342696978531129659929995573736066747369844371801265434438711388725647766364385427385640855630237674449647537651666497298278978596910721411639066686322330368496164798024892172629923977014790706878204443606712885311349985718812673331744864280355038953853334686543812715124177177864710316401079709188331051492461498921094799157726439790428215727088544058895965848789569987844789482036777706430131006229328913646860999527187918404010763527331521799454250965756469488707955389921299763259954356990742021191126236718643719794535038830574992220889676706859867419200286665132415934964008500383432950256800564745626396590758560998476021377152194096046466629041488260853624069047656281934087557220462971563957335254715391311618138650711747075456169868692169711529178710081798265312079951365263228440095100736311353945736850883090111932183590605698135371168917087639138136971565957515605118554005341357946266768003644236167733564861821537473066876008995723195969084266530401268661080039176159761256959213417133330723429181739457977439702929992550058497437363801868198189095839538127753412327956977427125301679256896003547764473660320313503630102610311328329636609535055192852200104524176739779738964633389798429291583094431635509759785212629488458077649828958437042165151573987612554406889091558782048513334318393104172842009047834270478079344412476678822180294009664963260836091017475223522046108462336569432342911244428698296462229762818823136301487235561653929579822612632066136411930709022118032414484475249647570281331216879696962587550588527542211713723663452250584223452628929755331125669415365829513614587246206536236689478651751034748166718800567660839121786138508794198382429739155771755586236403271077610711866237062719017006839145810816646584700580143057860136032597872166683984818646818430276027864869947457710360960672769062505788777389302439682846088413486618551540026408110845055357053492175456480285444499412887666141252628875742555632692284462407618858409888448317698990289770890417026300202118018236647153547400591357736483137364634224374355478350345995440149438799268442409524050063297238196607636539710295737918753174617579768012847437586727232709920075210505670769805721768117385210921489688512949336885971275345318676320459928561282902123644899167609666716046730420291342082239827579119017380215317111885658902520383906488009450733450581572207901439057590260544213718031216779606159991420648268735781128054079222385395145092240877646446575482005536616740524103281050199261807355839177726014188367030092866839259972513791388806663747256754998177450443291507718562891700365725446349808289347714660064367914988125980222505864008764693041549632796405688871056868323017852683520545181299508728247972402143626436797873304148074080544715438390976301475400778200843339621135343340716461412617807853101235569345025720005248810859595107885386803797007307911601936110982633462374103614427082000618728565811607383189659856644038192725097903582909795884747819777768252979310629245841933463254328033403751345204183463436867046558318516499921720533657427084504269163933190089996622709454855232546901890879182728039066897735696857646236368204128213848795791273249333188792477274386822307561243866898116242117039355777967649751168381019211663906808843434242376449968718656830733699775001367659894930222600412518607847656741910945812897648808317498280750850138823839116616409727675162926953151179535601928082064709103456377774532556011654291454665325919812728605017456741555930744803029464621713206091702032728081806331138041086473500054005279956489833191832722883682059300442989633293629033203932005170263196153155412018319748342259289630338045853188000812114988192148635449446279469360787660116587275140566789692558649355399533667691970426491176591801136421878558705386619237046485250389339918525651858575384888610615306278756763973616148921311712455469426091441158925703433403173246160666605035757473781589917616049477303381896182699381257323104886645014983024273917472701361486638067336406727011363819732015753284209374707113596805482317476443181534270741906827257075611282848910562499551955718931404795125383763034802046327852493973913263903966125617014902163582863421488465896120374985626614303256780095504065303087097503572537807626697918289861246119710512568795385250982334297143435587993064059950139333629173862706700633576791949873969818382699668552382500932862120918138535610259678229238885364035303510785899652777438523820334405296886857311367336761215403237566064033112062553413599107701664459381695744880280281790216444418496739983934764262672094235713069343649171937911188395934053718973249271252555493524199557940379601033310173596744356335464224801966663062742858875896200174478015729000178617054983112620183183781311074283573123857756601326283516765784280145222559931610929273899121402889734782604737080361380342341178816731172128074912170344195892116083673284467493744133890405357287107963180843409201479566260844147129300084487028465734237124407621101663144039082151236174370958690775368829871275241297373064362682548668158322911011477350862814218993750900016737925730748282918920534842942412777560086530501932387805731063357247090004522948192256219833844521718109842518665763591506253251068138923324726691438077809608037628122499317768193846570417098175627158952973139396929650302479569518311065183324886463693727208715911125943212455510163754434932913122213518487956253318747054567354168911779652998863906804840558842253285266616762033038446546144075512740029355611931333988058792630494448515081586877539612561458145289644628880905534926750155735899835641647956572432056266667329402480521588128124181045794843049867657905577238948190813438498562241933409688154543274741456396466740913576332802196353097788451965603119496963573322857295393522217428231150508465466112781160808725017026219319742230894026846758321249587857564645196830591044267078655267182132864260648215283286500878303218842989093536757319434010128644662910639395192390092064779069287664777987850254983805588793667083879464701307773427098915058831680089720687695824803559540727971489635463475917560102375560215520764962634942049437354825207599581186730375172386239826575824389638501152046811892486627256967277623313137400272621335112768687373811282187244455570960025180639585030781278044401466571828346322714833453472147905942340896613047396684344594626930447036388284262540216496792709806802337098663082826045119513284084717977598228061999019886051120429571788268144642675430248983843834553017367552140832119786470801439617012662527687112491464629063934503958211258367284503197152920120742799120225771894572705643386984850612818681919102377836724002422860249965323690569191464058174001820999212450509107927456265559912000789728375705718821798552177039702526980079121090307654453852552135380131162860761265258770377886730448838623588705809543366048316497981889109874717386688785572410005001237261273806749008540734126485952764965549902771690162832082496344047217195048869869509074065003990195333767291489827260781020124100149259943507546505699851239216599485095318241821436233946138146904498627511876218164267481157585931864980572019042116649529868609395560815708905195242953317777822101308612544174887371968922014414291582924453025734229453104688953029190328050963106537533978342669151987913032028056555975828974372737416747293186737351595984706215984252032074237709521184797630745354609546565446170084955020842651578725040747662426634995260553526183561316152472914502003042212765414664039398505399176976153418072772878319788839046387797892028943326904725837772111816622396678518887689151859682778812453906986052652991061199457817096345477133752695524215359331902216761087148828370481848177948301980108625717885317518509930042837790379724743177459102300332636818733696663574448320967109426505844201550067048490809789931353708688504000175671573932002892001299668087147323367171535295161725279582121024300247588533145275392819649514317552935535520711995504089408533305245752686499836170473750121646638873628363001594710629081025257153708952422530203446547354501866058959087664107298211857975847262581225334759822989289717498535213398995302516423874890514371182370456469399345452963471204777506444011247898514905324742346032496266818114859763841808813264472610254394162922057504509263227560976561817714837209770460518715695312060163711042183040844527086917282515222536951538189071837391492364952189306481103005368557712049366708053250479007743719755883751869577260720420660992355789371847725878129563148123870809796558721106892746281279940645245437244196413814320320676350959748518138377212016577845614311417803435617737850542166710301077559347951741064069044245192442622484626321771424731336156846944376504593900358444272661645405323509830763598506733556901398333106382479284931064967512805178809076037707946538145715379208406350459350626732489872042668706123091694500857184496806496909817875620661575985484209084050079602807575167494203416479695260872295007181500192635810833213494844667738591269647641537041629970906809009847942684015435950770720298763560364157380922409479787128933599681504575987038992566641573354957238272817789918534497255692356224683389120524781443423628216797903905128076649313131429258629650307990194071405144052360815423691480893261317043776435935885694696319883996502251834924578987969383118276737818914105942066249354491489663700604338263446096743755114750398317695661696315459891772615084345923249648086406097738869200647040403174552535248617972823617999920730566027830352620445350741980099299214120291982125630844527737278282512861793726983246657458860852805880328454146416120551028978395949573264810203031361950918034597624689731185823152913754752542277212375815951147680384296303589103953834636893360643586015072938750322479912713050727995857876906160020036720741208014840691582172041558820641044967267338516937409358666805244717979167847621610989439302106829817371015779291529350350816176326881526638798871645409968775654436725670998389465939296630079479265585943201138154341926075191833864705018699299867837770599538535884304444094051123153836160414454697732626316131353277192718747934638002470205085785678651404835967004011831373082983553486498948510602414133352709429526268000548439816654470603880447089891032545994707721860634254638165170313868133663157090836729070709206114014128375970906968176010679955968100334179994485039703055135586182872199328857469100300207456239115993610377763689128223981716499941669820334740092022531878300316457797973198402623574670837340239538985457491778374172515448278138607182556852294040114911946976384055503983685232587390149830861229907210844204153396583478890387674269252110089440742482351000151419945703638357363996587744732448128241097462761571395433775717585268222620407570163039027472564754623247012242367542633769824811745410469378882415456350599117482036191674049950895992304584740488881048009836570164587449682608862565074364184209229156265613363889756558090229662776947521990409968996267059630757068801374733961892398819722259997980662429749835347756722650316846427792236628412825901233000052363600966942867281387692482539368185396488250838151597774327044935504445287255721215524718956370401486601456808621369118457730160848610910965286856520350627910340107624518553315528389151652785253002071226839277736928281386500051174279629546385702494600757451007532084389796459715573472764014901327842641908391903046522532430837862523538803833579725199961972669413083480825092495831148742249371635407748815633556305818463405906508201919518741879558430110456105045665741541229714176814193150783977504794784734364857589766434196235842046244711575297250501203929059822053202945131647190188744465747984440295054708144687789718915438138867681799317004042018586350267673813701261047039177491655490927258064510700716364191320723658710798448049276399307527858482785481260803712910989108931681756366112924968824790548676198513462237907635382596342564157204486641056595292598159749273496343359332515433597752584378944088953189446078968898402144591226311081175613571920175152588742938645753923362055750562077860153120828523811554575032512841092196605629862642837824622088971122600759673089023102910298740847701521109839839481097765585092466938316396742404087209250418622315864600402295483663366013520770212452869439263649448143541670698995958787277115016095362842314617814376744054757606720683903154220961261051457033369661863249147187195154981322259880444683468040489279210559569518115522819996673308600090574296458330437822183185181367295185496300480547281221859465029903097076415087321945678100182943007593625708334922200786038150989341648110495582346386324397995403629404142398624260252549801776053077412664887239584215089483185352719865243606363606744151187054984432708163323261325568941316770254340327533327362670641314959907194243215075476760528361972458126254165656565385816295794907849792897146425448639699939810038816059448183493024794907259619704813693088650666359051966302095021016656480287146871573936084136562936101814989916810111559187601778692842990263491554189409763286449878501861313601583721652027453604294563400840567238145135414597789934671879931708255469475310822371013929952127519494854565451886904073092962253334739227455987804454343359013721482934575044544463181337362359425415457003300808199283493625647441042711365500657355636669265560943466081070735255386196729025742227278829685729552299074448939139238084905113771693608191772677965237922025208814238423771051795201415689902275420977548876947054512377504866631153785568806842789489771119733871947557070757815084243420011390750385618200314393773794873715352129047417050000817818743907234311382504135240660356672935358946372745413356645533623274738511006885948324893413578200877321155859845770394014296277096623294406773996361312307437718287077041751483728661668748275356608856159470784988322967603300654238663832584654480765141498619043581179400881094827208768355274305490784311458468794009521975850869567786710145298809035408970520405091680354812051504637468064276682576516950388053363866022410026699760979362861779357794520313968830310436964885931224927273735668477952425528037228987115789351262834299771118143458004538504794295040265849186293508761609372206896636677789623091598273016659486091322574028294271050497153380905131286204083425439615425551140821210314538424762721966307739180105857741955173354151808707572650538336218416341350013457289657200102182175154109759076943396607459158981508199602674359777381002735091697363222932387920386230511026657525639642065963554724517490964683195154116824689199599059801572829747566020937367746854653826518030747005299752204405172849875277769970491073373787767762123182035743669539430903525133543808734951297905496358673633630153962807593503972948282787015344046886957190156122604173206305917322941448942853023391074540319093419425994411056481183476519094739395289654896363058323281714210097986221002105824675905392274290476588824791109738379754323677673491681980042881236147672194811876242641634233046959206521141325469761586001145002806439597942573361250242897581155285961945489305514240573693481045121036364577038429502099262384490868483620424002855424951964375195472920858769018066281983444675012243216796854645000434384149930459541149110635258410364755755955639953522783007245994578784549131518087490371514254790588073345642580682538828289448064596855278484174987539956648288278778575009212757508638353153616052286810989645716340773611717817299717758602354142975702670681636918386926106411097851784305120778975106561082160161411957671343101028897309071590161048862568906788928444199662144451080390576899605386447384463109080680036888246696992962447282527441474695337055328305179236126333748366100961230936879570123187416712843385790321330696741842223218627730422508303014967674562641714990498114412481575186150644870684570802111510353459747055496641394952519387107206565431563727280251232291989699849860433451952773049281097390942875625034149646651874646751820154992413406229798286178676961748511396864199608788593974115064778091967567666157282101508873372272781560734438126100204555538386020295005177989465596204925273714701381644301935704413965460088560486559232967344530897828496613460170256834506682826433175964125959238400915616945001492381956701601313857673783238616193578287007221236186219929424984937486666609027325021608296077249805487220860706130934067479279000387373210068822363010533307418545103518701979511413773020985004774483640544365508614517685488504390044985716674898300341723273107216219050913640279676171097941881066694450263881599331225393968114977183883059183774574142937195082630261719726639158321857153521609593708443001518612008823865707308364546139552277056888261169216042146228464884543336615731677321961789531823802318690008172984977149786254864696629507241728321725754762103732205057655445469136920997254634152036834200575679638609921428048648370884394477945557196809301569888639280636890216005140543375461139787686716201109014339580472407188254178030819902206496327369267499770391817160396429751153874115558513382292359728471119030417211279956392699272375680676542959123302948216806986431437765540380187051111200423542062826624082293779761906718658664895149914361024431811952607308109929782472897921804252117486721346020295903133574737229300191605100117084598834881497503028153924364307981700437886730503771931632146894249211188640263911180490065709579421608669293843584240533395522361303297533431748198416725832780802377652509367748952808373987245841646020601207465711384806312423050616022707689810920789214503442627139495161579944780247654879541506061185243680979886381502529486899215688407040379183344705889473526022254141712680965029260003393061567994836724712259396242640003928530897542852447674193987614965724637009396870835520464707338367029402141515694453958284773801800422059746479303631966743698984935614366901977283152941544695791393402455366207306011476750586496689055861016326443214795352397106285081102660676779349281806283995859353780499106172731290583141603147115465230161015675733674880254489745099364298964169173982211676194756306599201086175329243401250070480589802563223256256677607499856882550517673941245559032916656456010846565985738085437706265452487754555470742276203243720362912700325996729964336975536405134488149953273153793525599264340893670394965966648646557851635863110451367833994962417313424566871567144094860231398190147167889417791685552589816037228444161079101932955236913344813825262723149901183755468954368386670791987710515520076889041013620951766268410423871169381508259525716914109741756924980451220388583701228295938185092873683111918711306382100227839285201910201998144194746754020431842973816280319597191656327823939359308627604257359558687792945614846798938582773074005909307017753817491849183481938559643419459012344520673087449752579880836817876472239722535398803481602039883060972276768929127416522293589511781045821068568566713110157650391655494815218697784747176674902897797244996557357486317688371144327530261671428122608184364616227546241511669615298568998427008730643019444925170249880443858503894298511624148801572205142428878507624978379306463789843048133398240815715508793615400757297626325091305423317396749074116047633197017223115190842985846966918961696650781628224952296034090732093389898039163539731645341616157815562207324353555477397567094093817566499273886770052008301799091682109404604114013889283245316072829763935354997600132758147105393847422696256867839319888197445702224022373966510086795335662500954263585387291539789378186248773429881888875182019366865335266057308849979750871966437448826443597349995215985068377188267911561440402568135712688721663173868953120396424926699193019700107806920185568223812467109386540168121894914143059885524457266365453275404876736825744229796848616242360407979452150039216951948860821510359685981404435105198868786936104265718963136152464903880183009642315391727875440202360671900733532801417553847023379077436725603439824794910810162600739633272946562180960352191817483407571824388483773566223923210558593302334334473638719861843602935620905515798295078733572322492801924451685037536675976292494331884364351498301552991840274135712469224390042547513595938784895462971795034348412992250592860766962312004820017370183884387120526862834264972284111241922225023896679423911303029189535869574842891593952473633395201925786980030692781888933648090959613929879356057717165954998384772984472825903687144786733930412955830268448678495077056511726537819097617134260808252803032741461618314830459109811709764454205266764785469649252921845742635074361293600699782163058994400242234043290103041838536659576969148680133592398442362415058346320189562867589125266256378014794136145769370768408681670818813910697392987057493256088161787949149084761836716950813939166555963136977444495600674502051456032419255814470949088163971505437967515044071779538460738356750721098489232662623603301963141955288963977163997307780218212698255787605178006779391700755663034589223519071053543819956788386037684665736531203363360265021885772132117082131860925700289015808672464267716130259923902552202583863707439969975011242658280019356008560209298091754614149911417399511376039187447486109244913855949416100883565299018667671912616779897171737224896960745615213105495648408679727192492398315554956049655216689207802090892532201295577942197960114510096162023564432993952423812986070195131862268938668156139564275216010178280252643696712527758076433985079502953837173675643130529721065287053512751120248812030973204819144200904421616820965334306585859100457516218261137551696012416018952238606396300856157144987518876607745125480374252311579553488704646014189858608583218094749636204613468607747580085722982876439113656699578158499042113318462724276144222035773422513950270697627016884338483879365956223504013832414045397613778261387815570284969035268828748469173651300253156072063867303417978379393109140125993711684943209738646233315469305486800928466026226946357146286623240087934818867275012679164044726046679911656427089233918273421550976566688886446865085241280935528312412215165533805690377963862567673382475859304735131673127633094424752835491625556862574608346621670504500541458038836815940093857489412171343841908863950290610979724756683065402837100308969732321094974463900659976145257203017606513237210021580310466220321545468460590784983492056432336258125515760168920605961936867095716844374080270823322235952338870201444470862892206500573333565397837532383528316492364631020856705445808676788333460975009385736074260308892023492912603805319111655906779264160400764871699773089106446645422440068855627239583858888016381499243455130091031297418747373615194669007566952860475707569388168464535867080415480046347735979600107180550804442335657539525910028383973022092340225187891616224924921827701105508352587591756043835174137299812173460648307546875138347930471908475294269991014487339680042345373601009318714799362126584986069766560317973217455246282760162964485608118526658244845228336894012731927803758942932943926465459867149729657307995261899692212295597876325109579849272025440412151947739928415493702545877866680706580353313777438282162003985933585335089821510506133097483444186434754329142681506804054762268492511557201863252934179393294926885238480608417942039763689166508036661033613461026603545151065784906713308285288560706980063900678455577767703429766068435579648793828590914227357483396441912489839967608003309633801928055182703455824763269676051031292338026987881180110463518347918854424817244929778076798942845358920470491812893338604778074153347122983207882611879384026475676858482104082879205180794914214911343208790416450379273653486577452943655920284120705087605312047547897132017140312974118907352387754647023299734781092489855151574218803101243425254530084768315296768390214668231843340342052655032749193144675483103532257047510572057371029278516646937581157643612886979110379633845417885073166035556991514220642808493873541844223478809308345626740379181032871457525738011968521296527858192601283610043344326096247941225120290258787881123097354099372209602808957753824010515562675455314404475732397074382854103524123991646960712943785933797200974773032544487767675909289946754609532070554811108007180700665571223244467476399702425974957065603673749174258434787390386244886077582346260726143923823959331004496857022976310312490767273201152117349736844268494522904353643318819237070759825166408617010942653391449790910706587251937691154154093626701855735463255743025122597042411701235348987373550590743265948213312459578333035345411325107008721175517092362425862631051687903506734182609920811494105193085720395850357676456380661389481014480554802319147369691549892974253190113157271624007155463713209756615245188002158082318474653489923564608290194880146513236211588357501766699955676103239602569822751785439704167092642626141905405479828852657100238841952602229476926002585194987109079176588172912249995897523102520293699035584439027162337925312616466289769944248357221945653883072618385455824333554886831705371983860528526576646822079637649166820260114197619576402741107606106767653764718805576254281792878735297827444682021159188377474236204735492072028853291327956638637966043163124518507791059712399011409042968480855080986302288133318050523713939189423682746281778450198898005424485057336566038368529017396662378580123368143433118003756143435762292068422464693498415112486415783414708966415037028050031034060675470736029043039704935284921275651186481874548539744852271056413604539282214347654912370404788354557782055239535474209847640493193359223689188181812621348664278901042519610521757511759587585878859480328549703912955383046478525305174997436285118024352290134441893861628324008534901451948914957907595318527523944663900813554722555443155345588422109938564160042887281478198160306513043689059785466041238098854376577173237016953583958776911453777212377739763298168533088755377428443846143864304462076738980415067800574980872265134215258089735165433458456537739957658266426504696987377333799095635755387153643948611046257430782620526261175304651608643435167076544965457413161854498243069871627111473397352541642730929398066743657080920770768571302265747989632859732617630361764735892345167098503521582905287684428631778341688931766771809374595610662329825470572588429764753441905412761210104755093827287360587644530263838371326600408537831519385146796727586657853202263437151529157144477564173529711119662613227701315360569948798523143280914241716325152638481664868039029291778128523228425618527949640453845710020004359392735275748633328644566395929794034463223741032536057639420205623505828974514075075158473939063094918485610337838885935664808364786991658321991782375334551990296950127103987220110805815138458723442828650957018204923370657423861863074120758780145558641444747031881698676983741014138809082402343965322845336859055569854951902312609846862894899098758172107990734005939514356103690798315327384411020585157372950919800758080525739132898311120755923998095551945747726582902398776630866382330779882922024847298891226803813456007810075049884639318168281750596287552691055561130644090966893468856060573733699471071049097058010406526892712095530703768977694510792770915828632036248202682204738801248291513910184819297717705808841486828324131527182655281611223071713954809335937540838084162706025193063545760959284571843778944336668035497270155395555277019585439496779412127864382495518946031837954033635873424937052353578606260432207300029945193520785451459278182990239439250635059036670354720220150879237691254487067710232637031844125628319749260886214617296118689719624256897523212853683442689544957315358272038119698442387290904079106045400588665820011158439101891874076988648668323574242533556350968849431152534369792681865022365284211239161994042554574299600128334158189338763184743725579565824135166803673729579603962276932155501931064397101745636636712252639000347569297770184698042872615257074796677170013737834228475309013668760893836855692539207640926913911716941596069843777402909065431420423062014377092634623852389574179216272826787961491376488451088478048463847168040930863299943998106497374257040123065802563512271942467957554681182297572567806125208562715851811524948516560907130105808905354683028059445138899999514396004484694119837329577025535362713571329015894561799249828939780227872429736508469664965613649347513022425301935363856926621131731194999688886733047628403162937166608768957679628041635530787124191144011611905890569437965750959144389127280562509078232875171713062785434947373938335074329248258982160234540048633034729033833899438556804481899884031213581643556912763534697602517737311442345544337821319403901715731229526797446127661169236886212505660740433468186434285527630543415668870970366318097905359581624902712554403637166392307641907313415238077056549850465761477860068970330884886111936445505851364834706578600820684607430827532102520838067990607162880859104928233480003355414234829492622908374191082811195763692274362865493557156995179849395693009232246561086580517572573499476105594557687154454112490399397895401187671682169230937522094043885380147800927883063851201024616589424243830860541050934977997819770491012750065627764427159078029123918790510042141960511139568685449746894951943976811434207353902472912803050865392100413866080220851559550552726510157836870792523434967901337456764360727859972244011524078393946320750624195551643308514990138076715295024465209615461655789395916355699674973256067556602804466915649787969651993510301463109017090964724067990076032489922651162270130362737676174383443673861114817765098022427089416252040158508730158145096402508575047572932536238838567918092536932846839296910975261762678064125826767044212180246309655299777686360081001013993943144053431241634615735495878711313973827785081329450670147704158097475259384063210585643235575473642526443551651757782611009558217226086713328779843866489564373324624817417584303543791778571056847886363904195286652400124366083280413575452928433874951522534455341842939864441243579736140004327925576574260007721687848060730772010172351524614409452875251139960499696932015425349863366568106915229468285187825858812048768022868600782651051542004980083811981497343404457543393241054522719669479965961394735486172749269969966491333958626449820439180381211523522499775124881508902021876629347645583360674288593875595885231367035763760377094630999129576089740986260987401634784931408328341591988847521404546838027500877978914374558505972579009140505624897898458937258216919035732503608300952006865663208113868004301663706208483817937479814668156788719149561558521858292494584618953459978130529767303203962145381825108155573050169591829982419453131492943851874978502644697745272125640991340433482775841042024517754052927626548281843960049587799263008415696084026284753732671367797542944670020275199732546024155040454297579121324064034868700749518242451573128356462730658068407947489011826278663409709970244392652247599187033563648182455501240058260612796174500856133781948843900185529057821295530868800651439652158374148282630195545623393624639604922006174668913163942394690186984998449617065463733111148023735700126802503610625760333280727316644157386484173717084170640273732384573663306829846222706917613033795746171833558855872494722060233371665889047125365187962294557489864438951520581694030833983459371876227913953678017976926551282689718638985272320111450407639765786924818372928608135397144699858969811759408319250358286453795567202375810456025951432465285109170179017516090314967570398447733522098777247218847236258841171714711351796485267423971334426506681450609504300086497246912601233974979281329497404360114025715497980528144517706693434192435139530446757169945259780579069163831116859354496094337772523872238000672263109854796144840415546001101326475110021030193229371032112032099633611320233815914864780286949005360517294286961292841608122791840192008718546077193183459564277172601470286568373814406222211692613119209273109986264464403016622918187641734746673614728284044004952826394743622498866629173422501614365324025763321856398655957187540534680131819171698230205103061482321408465322268966013108430287882511922269453973930216253306491404833958034626525803416200339076456079456374561781693293532460927833603747881762801953124265768600130727014057480314593548715253786703284311067354785413621674161612893653826153776380556961781012330634256594348658962666879416933579458195748239798678605203918382253237231207956409732646069435661416566247449272874485513297403500724712563125094311353055200753872291170548089270959618994773163287093186029170725208751628368024912828694248964871007459885134915898958295519376291501778023638771593754949694888153563624403454897689472022913259048033231362707782795761221389717180515981755207556074507928643945991518989713359816250867884936668600501505684070171837384734650445399675699804276067249875418506801961930834247187569101547178146444265278012670968974448341506223415798671540088582751353866198812197299757737622419688607790934742068676022940373738022023564359527679879864955270853661494819294544782437855714809656544113830053594991650241614442964718234993836560923301289301114996076476995499607300332097433861519934726687586976415713754365309295402601638257989061484766336539580878830586567890581840704858331872335656259778445296463379714465686941381617187325470078190461642676014957716266758447901332311249736477672607952208694582641287384178755751407415610593181127228730768526277610026954437532939074151898385899434772504931019577870946073406846065297785730033079722890822043407515297292671048111229989269264570497466456668805830780388520605726021797705538456302055362718787129389152058476414996914538953050512875859445263031127003117333907900213768029183683329480215748751215478996918314048388395119382339520366543370006129013108501713273533159971855507719586707787205077245754479300479314817697734252677639636973890696383291940411227777653924283491673138685119292038411745523801707654726543022001462657956821791067952148776054246993641397505561169633670519395225801851676135961562998317749227735250959188526947232369784366772683737621141282623098611039924619729277848616815332205564919668010274406933805488434075122619739537021302388499693528337623217036803701257479523578467310437729545186953500430841994013379785636864229890210184472607735302421207929375757686765283538188936645770340067572366097427173739840526027570172582928867893047477841625297624066696545614696079854208463356366246821180243762261356675916954542728272763581858650033685266427099510532386929858006488586350408898269530080416481079895836255650953550391159121107818452149275817914341257882498125142969941724251268908325230329722084320908179704419644716041008145067282922263583190411757939311233488236205977317241059205206747915144848576132445587983114574730255462782333664730366078227265191087601402179272239058462364630204736395049043297260871140461813807185312282558575505013655862901958971514378852517389146489190917414564910686251766566488195563337313651597897814598842854193997491845174360574277084129478495560835539865828142443452738153187348771809312982031393337029981741941163886320011262069909517789283598577680918487474552545915082709328410281254827447484882142705260897185257481681915638997141551730254559575686836135538568114003170699734425178656809034074339173216910449350123766980820920159094626891373743401307970372389653909473398268822542986943708615117998816329371030025288595911190202410689172776358230096369545794098321599148944387856299062501742881746728037487706927217312118105789107881663082486149577846194733138121950348694032133292130385408667278887054943069692492179891375277511528279051008970145969090887475383575624737144576806521490524514684289808766866505733478794359118849203168207847375638419924139552256475587089105723053053835550924526205074762091561805793681364747775666473184713781419311525717986679033572855276813285193011184201873773715014358026961998122573776679284022827385817068841122535528670017743924713514522602509827549250972904631463231212446167420792823936803021226881962326731330239822598236035088140703047282913905703362053826277969254962464991612522807415765779065340947426410451101250733919396494437208193274937673229562305571283228687260243475670393869670975924127813926881025625555515125075238701181370454872050756637902528631300658101651276262900146763799087630847536405431522818548301443371454273599057884824362492310971410475154400526793670227927078863625169058361608629359000200822154348346455513957069876220114960233994471408851899938972179840452841887415724774693743854317920938183663519856577737345044383745757588958505618313479268495306250441637189675456863662717239038904423620623410894086233816675065046277118561733936056516786995619941320673485924754141529696090202073880540804675575449885442508715383841842960726527234810934980195405945786937583337371439924482580690757743443169354208011823009689545952975771509654169950395812082065748506020241689333781493792719322529883936531663137473052352499667797789991775457345328904981692499923819410364751483725645341043126322395661445367473276507244941064892280288450920957697417772593780720707244130694577365513326665096560022545404118452969755544377465111389866567513390959738243256958425272399470407502391263202184827796295353804881760354103328271260165620908033224850276544369543990791006132641448568828280239145029560127812223445654764724845871279954102768605249884063823791625517994322392439648362649255580484120350304081116133134847415311116673194603623985949890598249682605341410241351879127315964246525224853128427709323199120303805762838283521191998344030849519488651281748893853804097842234896831125372659712026797911211807505997062897504808475391367500783799463470544217647986637993429915231635083116986372403600071381211389148709712264218891317672044997617670367800737145334841490678512182625183700489934168628059938214644216917021413361086791545516538199370819706427044842695059582771942372573556916661766681212498564346712450048164192430865950199704698839092464132502053010980445537340288798313685874284036633418366680568983345812251037438997182623738749165639321515638698142829883413629959326880562245572984563885101925310925394580984510141611639459911081629931827019827469074749260983815724361949022643470441537082618907252484622780612969938595965676482788381357667887301743567850920952056892671069672355124774030698757853509234969054573097697297995976409518182480984266499624557413589525135284996107201557067866096316928278837590728316350658780482691980104470039118628341253023750686851046618818939003788520959939300928468096500816559625947542792089016221298741390544104917487455214697500847593688320223425950863487901049528928534568795529917228623950563449755046617021688048307503423914655619466571109052947207614042040988967230705357563484312938075791429950287188499203566803424632158783428938860300069281872221554762058849437450984441495893066191260295786374163487503102980134251989995711177822143791515532668903233023520077036070119670017056329134583208282507330570001885343732394345114355840503075411130144450338221509801246855391111249971579227812230281784410102965684586742701549560090242038291812501319436933519775582822382872912480217746561864105315147558469252926115448059850429069367388795256379312468361012105088994771017677126805775170188984763870904011468866345815485480397259331498044047668843905084607993910652394887528912858809820658067795785503972851722351052985147376818887522171964974684150594656602203656618961003395293588751603839874122644748545786485578182918066637378370754434187471883593711538270970319211463655646380211123607840125285973003634849268096948710786295806502628325557647291190289308399308834691125127421855747371159560244673943222202297483229803004767382613252712797122700793769460312901591568641251604735793086898362614731777442734762656785956048311765277571597173319408971042719931182927199212900644870651453932234757421118880098658253497772041961761254013305676442310908822421185408383197934401792814982141810817270932527912521505410355778757977401128697025249404492064959330828062198545803668319817568867352714080688994682692078309862245690177102491000461966255925991356078823006172137530677002688782933868347845244304071777248328529592767423606761637750511313372749030079951710685990223372997128609478455443736597220869671370532006644284880455710779266000148781306400756788206951314592622190034057963730420525699061202635952771493378182567119222715400247190324270749537346835541352502782693482032787764984958453068479444779667513693816473470747933332807096415829020308542321581443028304399179290256234030036928688905720935464821487012693231692362517225872832758358430626939798845184513673316296486495117158172237614269044161500097985420825003001314656812340561202553686036927447057135747604452092575958555779896448618348378287343780270074677060652919034409982943268209293068678679280156480787455160240350369885176247430963920333630675143692047047403104235647453186027387916530016422715932896074258312359646424955160007339239128497087120411755827259239572382355502884543517639201164550095342658777871646111440974407357281227392738373710038588202012128205786041472295625898607929477594145702316857946643309170101952319188820093125827053977453559721407493030566632716846655112222423907670931806716177257832159757218648034541841425504334106740898549011543538359175580869687060750103856577619342142821361275102991334080600881569040977119505307471218120644492618064904372214372910914978313398839225616739137031464361549451110310913942735297169041620275914357976491046201808724545114540173575265343041350850428519041894379506591864999271364840093716932078450659321580337085396495311630814161369654309489162282273567994226863306108869237906672904782842427739359088730064268579266854199349319086759186171220292817038515199029046579657119930246201381795511777478301078361229122046070807768179346109344555232826173279596518695737132002023200535725433807809980228642304022653227077385692958455309953481437016759708742384206605314101650176351012885692056248792516036963512942543758929680581847934126393650179485881368864081062787393311559016089740578728173253238604739270179076116604079740531529229389478590752736493526560927118443236820901748599420263569013150534805731663481978022294155943193494130070439104083064637218111829159331221784597181120327055999938762271073486650934268343781112595325381357336990843946020231685256829259619168731300209464275519957268670558169084735858105742211420538616439605244105679443086135341672080074317656343841433745251619775785746578162914848772416385334633375017922558209828559534765233688891271320275222481265267691069625960619684366829474893702050468702137636175141217175617498042878475087982294062812730920217082253609044397603733460630735431386997373267929492632575007101839497074077033405643139628507268662064173268842511377078986418323911181161321606068724637928462800316554194329272397400279529370469054875393202385682114221531831142047022267709277204688614699245704934023540520213269632330921108248264492382073804809492060114427650459694736022528360874634465201444226544644955894582995485607778373388898495567310775196686779261894863798748706323423217248702338066412675447153668856568010008261287181678760901304577144895497813854486287413706003250572945515249317760190989001741518264617298572086323503634960090390691413090281788143411247514539997007805378786263578056711107069921209283337509916423829773432865412783657117601642648034001733350479786982388023966009704366725406044568198382965893304373463272990317551668985827013451409117284228017997184311630246520546237277622583878589810220548016344372497104183634645016695448895279353447305943585828345781893869339301969292229334517247102352810809758423448759815353647757134552293677195920177928135020721828075514417910660382352521509666362461751936309746331455674626869513583713086015132354198568607480073925556412317608961622262957861708829553509732735677305853864907023445919174672404979423555004507783618465813528356629097827649854856417062737440016163923050434506048480314161707113448141911989509762704017303099736045171004771227274148423048895008906662550470519206087271840047882212102644493371472018730797701744581987129047134515375910390556569641713777517450651677995539092551122396922539242768883660377366349377795035120249538967953506175281711786685523455472644779310913161436129507973054290504287819912556537068107307959439888757057235033716593630031038551996118360507770869656605358892727039695425104356217188847789205574234988323449499663584649717496110225112712329571667410332308262011959790461752502537161036733570147610766144177050778638945401956444199844429548531026440054644270976369747129826806689098976983652243192724788645997294920373732829934729310461314984799639458356706224845901061592524774033705360367059331935474184686878832227217861769116942026575326695365889416994013156365490988015443228513700833720897917624124683842312000165635826121330935010715503391944046872203115770101237868598307252836932860108096498187488613819064052641802464909743630586474064690304890829875264406562369362282203787875775350011025249372266633102534700488961205482211061489008257110855466525243494891046871993919764617406562620670626222387013088421275737356992606137856538728128817031349510665570377690010055733530130270553663969730822305552962682201520631728653341086862565780324697897293215746613217182701176998524623900470950523279586930237005604847732999751626648908449185032026652122752257771585824989468410113488334527192145896874785915639695520906597769965314199363791271521259677760288413913402660909397701218437283563200409179747156878009990916234104910307336185660307195994342536141298166941448442413567054611111615566641357750210846750596805860231778208477670154009623180505683187338746899401302425395445114254198765878859665441744899276946312446752058944888403130517605214807988964471215671568688126606522521089581352037947462189982463069703220953365770816964007725727384886230623127721378972501975667435567239944982264279475857834084447740136149863264589136490536275223407625910888186656662057783557629290607289704612032194913318925741854138422839555851726927186580374209754341847223204014459802722870436865496897641995394497612027162797643449327041572393364865912397358284125923986282602521385741545247827682513576677438344781326358847010487775511156036046472320099263464564966857297549228351338443556325408738979092798671831105940927772652870521837756466020164931307901769478038823165385202802187592583271563261945544953836873071562605062734058453329991739828053827773426578722571079465587949104374948349010306687761044907006392035099687446917296669168082572604047968115824152555331433179602455052145415923649219111722938186486133573573155752630170519550630605552635622588748751556722439563716890927201442169048214301181613267799844084634203871788149476136447633112163123011866369160844921914380325062075666189974738970959349741080324799395854859184477143441503193326502035775978273417309974035356901158802852001010815198115567677745123258269183678622909803148083838274744141669077133047502301273426805317229062685425001934493335938967576499253988995148873366873234620016944618670115159638397074835005961189944258445613727239402982550370204396932382787560032528424312250675609826072480631074731136062341067210397518972762245447278661055872953618259589217249886900993097072879673698310506154483734593362086428455719952043422398891716340911005082739435543918302540331561237163157640766341659472226284134212513366545393521165802744982332089301568034920677594086146976372379728259835990033583309516436317096145772478211559648154660082406035430888869092057906659765919174166414733202269991365999193300437521050112975752773908186057217639569221120472170447625128419146783755842968396559730638193359607372221992352403368504078481752164713672648017428938233504407210399573768423131861940580077047342823707261717632055298335914136043764835936101700800353554051216838904489582898960961557535470144689217737635089935030296907126511206874682197340029233550484298222042872328052218431232251812241516627311890119365709982534033266922491565826784349843083242946717737341070739036460228442934107675127667521120177098665963067898724904069522463040551701021529564332574963927771367898779537513082680205710908953899996398435440335157791334487393507240181553306616495223298119609084516227965000139050175894430833405375879188431851373464516014743148418886353887526453137467752305846738628296976221217075864813555216078028106030720962623004214531220446173712865768571608631984408952993279797957315427168202466638281595805669654894786319212335381972516448435897523350091026839370474303906979397504474760431354009681724113025462455177655348737487245174571401077629164692134299809768950817844307832527015475485591604751405219095692464942147945386238976561705269302315318648258155197597791562024691893536314817563424504135633796474300123894404013169030607282562473382666880858853742074957622959749287987568955543688987483539352832375419395201546698849994848766215392323114912465242189014203333219384461205474179789665755846542024701870143151902440710495981830901134129136585604332883585781077167226421485159080052922935693849144410392630195148981328672546952164897800376116488420506449382896176571157917505134507810355268167606816594519401578227279549850496751878092732497903566845460412814152248092997184130209257070739019229989984683245613216487471682260636227731852449951170857276295994172081941388958415853577641984331058074359442697703341218963000417371473122801723893168836101927235828924951980305464549363279695813940019028114107819227956180877404563298981209923240527224133757850642065264856285077191080623994058707273808993760482554044862843484606017271138733432718789497393461745062471832299914127766542513340122758554796753863507752867963368412343532739265951001436014461529583336502741864362875558311677743973185165470978410258155702637741373680249453307613779828157351416999075269388152845662044470065521604380486714419650986032901083200882100792871758950960526624207923020018715704238761013495926628270908695477775993715826530909432778643035607635026081943385789984993564142445502957276037247418376894467267711462778964499257383567111273428730159450981154648556257594734904341390512464416923581995822376674990853432779739496921188662517093328529369658029362437302829792068234790438225860133378591799085403393654322023242439196029142870528195413289261470162041710498033430048455392430530333461010372603341174819877361483835158310323458432467265866597003105338701810034713349612597796949260279452101216753134591059986929737638824309242948382547701095456860420353150590741903629281114792820985207009891515317583300149425979506808764561731145005196017550812831611499113954493852438211640363005855946645178883410063533268845856271377935848407730902023699714234985860706017965914434588179191136741172017491111590480323191819579524566760521142038215821796226129918370540096052185239287931991268148218320577459316738381526508930560157926083417319334860375090942141777149016628273746557982516219854153155687978713714567201556553854388653583652958863498484622477996710892050727384649019380020303595488282480699328060257960173919929364622013329588267643289927746454890923876062618962271292514157094906731061880336057511098106654284572180961367649447974541439924846083434748009528378888610699942797102688630843943849912619519263342208945191405536035665212428328399097120897038402712311351661385584163278395519222864229423370587437326269411050904369040086489851514934220548742064764355356581351508888834816682107434963356988630818861250325830729520321501424835329373116491798015370919796933888034683628689849639893585481324141453127630419302733767147445310875917686849940865102105362322349278987218729991430681475074693238198238036924225547681490543281321558008183767538304944758777022700245928285304772238102377700315162411104435628666114517397410777605397207076362130871820704280352273309800132547055730798748778956921384151029721308421377271238778889283603239638840552495585757066206979068443709088811689927688776874783595304088154884121775969842888284240666162199913310525223247739990672285946347098941820629667616072661249305829305335651523387041687241221068693187134196438075446651284901021111064615616057673276771447407657418021978266631693590497805515412099489875123075274661522283969628046607145694692080629758542577102094088888166367090140149487819007898871470713504500380842785061779738126945832857922061615256975525605783531185273180970739044934667028725814808344157456594652330365092843692590598114913779542112431871761842036683085995677251089937688596541107311875159976450437437051988462510609238052266641601975519977769627146353044572036014525098869669487390321441053934925428805570864299975422802818854888962506934019259709980554971266338941289985076260616827487510722407276728274799017458514003358385303592413153484050109427993763918181323790971609929440181092732295324835096138032044120017787643983824999897893649799057230100397296242843054863869182717721006073855257322508534502859522779724046538565851974915612038809652960340869109123271709571819044903600513706852998459010202766217181135266339278905590489488868086501837876146383321495814775726819700847229380241747073663856242975939295731053039904889624138926723457094038905652063171275260953255307499379325908446919790458797347495257124051125141416078861096576130610596633154526528551746835229288192905086386383689511559753458818948666151410936546792785853607041357621201913475859969936223672100246368977066415503628182473114595016211484772495962835544117457487116326353608621257764259907211977509700482847830172170155236560433751142860331373690082467672691230703462563080187251271746526762820212483303340270698886485698942382130480164913140256111715281890751522537167063725494826376179557395833457273338531861074193362092106194567334923937675137134533081885869160254749557064442641170210950074654870706614007649683827954005354131384005021288243259391191301171976856150799171851354145755565246695905155645870317408233181289768936669374293910299265567036258915239898950118764023602050552622501405044567838979936189435632369895302911052527224108131951005433707093795046934818974339338609842149346149874424258756966373591801518268884676751842624809793166538161681345945281292639128937047789838622823928765676186093574000914086934327552453351388603385791830270117942036657229554599030347531614858256641341180907174462358109074079535466591096896357961056842420893171663226866287784113245856132318800996891903394067338097302188027957784657816268914540747071403330744521747223844865878825591506142577065702344332376906415205312695008603578987546347391783677275415312906978658388064721846134611839094276674835980867846694135429450193187916935753434391602572053377335677406216247163764119309617085432179652759702927574133927148741032123918327691026084325239117587568381054174839462785074100813411098427746023016986549562135705082867601037405948118961514138203047564763609350262930924235454244298604222232481399080612788119130601330663218115360097675328028072335212860617023367735430717374695426629956107520527597153280133924363657499389008026540259775144733991203628469058749184130431980404073550860206804629930653708396299403631147789096959563124408155487344125045902514752946901192054421446322044461761452557792684847650780970870122425606025751763800830550238976368276779987271557316031631985357421482327077438577298837366288896006367404547575690989481949212066170310283888875341453769895449232989346869851609949782846598432790579611630473510170978549406220100138035532984635627104244031027530094633556011022351781994382021384823621457741454358959718529177311554243732283936500172624685311448898723950275686324115298479862707190838142054102211288848977382981223108376148023610845650337363617335261041105922689876473181373368962424603291957124243113390761351020784153492789271676121156283960559144074346431376630389745248678315105632045801871709456866273651390581494426561055928731263360091872063896524363283595921542752467162652451717509542426306607814953563306645899375984922792634462434841306156955543096453591685128443434271977502151581069891009328829738977298828442928102459942908679547189062016066991881722201549289402493522946338580304353878844826375071954592300945639860153747635952173685388983358964422014401835474325533086774360501912066913959732705000496833028248687465232542884886272908410672322587336227219834943689524777058390492051212158637358112115796008498642552231147106611181687075636521805594810818160728422143818022606974248918108040902375147030050415352586784586146296007357840338760975327411049485209136762454552295010053617530780934141061558838619793615128865465739374171779554854122707740045049097963004340297431827555260295801600796025455991350567639382745082007023942897711805346129603633352832883448865973929711081170147212697737754664636576247647637674386110864295406768937879141502749660736012661376542490732603172672509202328435915634332673293497166551846284274592490203954626602569144557842613037622525101903785114982679232873736461028424428217337786415799683125075389235541676601686916572066715520995579644919998406400649980580404553221913040931190565676082462366346862354094581351183228467481377759680070579235324644027762363333137800367365359609808890837290044691048638686911019519133103689694518252538149869355816127960602777503469571633131902601394032691987395615977623215845339071756846176218240350804598263890415084762664135584030482395998339516798414347551619444094268559619042887897627984460272447511084475925184880283342353553453474788976234813620194410190421132973502288968374767410932435263923073113293784340013285800974616616381511435500418988920100848566826149709402828464077528722176268892500159340237464188328819576749014643639766112430635495392098372193781049630564794691729523637488398008145833612805579717606322140707668054406867512384495044824166934878651308056208486156160048889398994943490210281139407875085265402183091646138861068116325763470425399309518783591546155539388720363501480343274907365219547675359058081535489328065376982347233425907913481172903852400382578777625936704990920560790616539130833079673255628521603111058654225110385517645001097240988827709357358981326079112501696235932445489359773846987363992059466835770676282329038088506351253210208654033960581414724708138129956281993015714116831797994834431367786723067015129377185678687972814859428304052163565307308061997106183000268385095710617529186407986235408594378593906354091993398777900751115458217102831479941390738059070508518511107231182718253705741656176381148905791574360871866831986100592343989723727487221294272732415181036734533524430136517628643853598072144335272708280486458692517284944751734542658632645084142738940299857110618625240750179222271575916302348266279587123402040042087167450887203271292060463716559189872811668068459019652748004984895320382372937115606761971846276672619572389098039503842440064942210377980524171441641666145786381893429962173407203454336955220268998402463768153217924857452304942757935848667094368407484803906379318316887604818899284192648821390366581857946803795241550054363826900641365320343845803163672549234380942262603724889864972274303178529634867516343432711680575994404132587577481699554023064708259557716590047316432257284076338574141486569936717648860867225529502389610953031014199854997991540876893255671147311271771229386005552974642545474443612862948212811792343542893149503640387530390393519847575316212464455806312977183189615496347776587479253165449480372280166186849605929852840046818560051429627261556596281472053480852270369465628704434932134533052126978295393858264697996240443795458827762155312445883672068987355836754522772720904419898415638192175294622905295663671151554690238023291358249118738155237980119459554190449025228564516818527990181716731673207473428790611650855011433815845506399688924669945472070771204250026617145765412573932772884098615176626198616010446749178446553443536851680732943015652776965548801390937265341531066704249637216281952604785788559537615205237792586685861401897050730954169808879491532432115736439292163684316410926215792777377508370046411268976860701448155201459244299036544009106217215189613454298540612316433160723678651296941269798811599226608906894323515138450767742269241421672755198803694358884314730909218727668300967394722124592013559767839365433658337050629433832458314893112766254369452478444332072438914412107545576671114410782820380164238545630940605979128016804968751725852377118989622810338424140095927577070810471194404601486292686378663263747394116635329069502200029979095909463029759974404430459695454261344853859908956066567327969285996118921246625514445125032394486949044026893619137222903722096499005824730984654946352709101163575498806790735754584758679713111348343056991349734239452715052776738375682734040358980867949118234794298955793255886385300035051155110621603708898533370411352790835408709417991894147218201987504366642419607335887552507906559673158909341221959646492794610737175571489432168786974944967531541457218856191255770603210617862052082144369922061040055397190467219995399940997658639465519851611121363607153154629470935322060157256002426688981327202918604061635888842376916687721334195883003547706631272785758211570866680978142415729328799590265613643893964881037334691762873876225402168384887873779712900717754101326327484682689102137980750781331265404577130263900670173184495652841109959455984287196776390912125402291764298373201568242654652118030375676249522981324113361591398076629844617209398874778691887213545492673764881198655614622361404609099382621878289557873397648422797122897442650179327582748460412355481660393483133746522067768965367773060885002792306162544522056251189957139296321362453309007108795319474037672462351798817822878140455914884429249883119227439004286862958246848332479538657933639633074926074097927176599908139065581830804773763757005445100780358338885676216290016789062321773271794035315782863884085609956771035967369521626884117389627425896846795746305439111005533513048901998011802042119180021998207996239438943744695772940029403043189787344726519665862162379276829643554635702076145264555866519138240468510403093230398820745450086025364017392400566080264940301091895442842469452346680964810032448052439503274074197486737656014667206408394285059515839148133266573616151945632231112498933850997287373886829351617096013474485828927230043683988305911971763434242621427258057206465434986788534242378301548111660420629976591012425959401400171186508381348333147637765535581789653869672799853940523145669433965509857768351891888248450811956135973037616150444372543633600696964926232159649897134630326638405422144450833703044583543755063478964513379912411881309444594472085632336496310676193418265891468162183006358546348403243855003844485653123689595482728733231335148080444582323152954860654620584418797134524548768087543524097746323002734271524970402922919313835337579114338004457449837683496601748161130179065583880439758120058163573328233505335659481000939907548790966147944511203342532751561492565500979540971187092400654924616347459029389349826186727680170240007069067007134614167089254687714051608271794123853885153446461477377446455720739977545879048085581784587443214006974083185698960655739863587078757952032392428536061351739864407093943541464860140609390819458530254956837382256768051637576320836721130153046495713374292457178475768726276629042098970715818539549816673007633939397242908006519986289762980029820581437907925753609036536563585058396630781857638360708078509221025353879000852584477278950121921001047466507433680012930241764028858884223429391909873448497351523550610738230795708702840130412701578754239155165214137840590239314854267082616705455044257434654051325293252555654000325877491759610086867598867894818771078616406756297439994949890825169812199140302970739759640780423077502007869096744372536291792410716672866500942320134089392518520357619394034285688079717271386006551871829462330108077101007640056978145906492956858045590595724629792448839902121133949929058256546918625917632142622780110224494618591727073377722398059182396395313364953924719268679449588895031012799351722373429015079042829674653185360931356496986476244688935342060424639803016271501800463747725036342136458830396129774036052483828804364469122047447571887069659903988815689868955413372860802670874692628405813539311115319526913708436585557206625147215164250605205797960651944530463925190986444993339188292472922614110957493748313657269744512042119173905716035033872529905934309424914613082015934891686657619713668670789555292201877527356758530112894094667673397102606148778471041141077998408409319162348082129959177937573745953521295531345593144266741200411275588882013394161911228530276115263645147625733360089991959477364774925451653737096447290147344055511892060098303323094690601424755279879468908321009164590283264612463059551258587181145414577248953709769673475275307034985405136770155092945553733845891858178977152384115372625371378147537571810783350950365343654530285690558021601573945294002969439240650731235063477660954954420777671422896424238355109776793458261153932151586496608164710049720492886314004962003956337409925984758039518994914502608780339888243607945505864174090420659127936508606418851019189497230603722744043123511225191903928115209404412296145972942321220464804810507956532139863414126328737627428856940212068315279508790212820890395150429152750798564059781705248650016523535173999189528136420614184211741750105528066363081661082836846244204847572298037640382796291472512105360068867166006343509994895558318924044932823166812720968264841854731783262386016032834316860340793888382827422503976949226262386827171439050039331289175137097623418296525730632624102857301493680727014581500669414311003169026131595564038468731350312359837823030950791493008009524390446042477468508143779233196063348824581087080979854273197174307025723319731800165962527755855541330001164965290737195652701970844111350529238954174501802757624827329441862723228933260374281308403229504355887584019834976446271172330049616805451442851823238411130656271843488184951725465295370811675991383426844722469413707461142888633415581192735290118744101729186013624879640082937669412601159907673318895620631131203872339617413119014281608938231635682294341020241531166007085999011754734072971084022396489605092674509626413686057333421351502189693935797365498381535887778008034059457854043073315691890336704777782885244180247268705329108917351463753239930061241752669580654197784838343579931725467895724574029267240841428900576389599320440953161919750851120193742258093559182437533815179544174130455306993247560927167574250218181841384455491721565005206798191897172957687023724636412580984808342454461675800903186615241394862321010893723290665708250197517403415482755150811730741175418495936667133806871912214362501300922887462637485535492709140418950382250106775395729594042837314578686091123112568877558377946962688793804535515963041320533635569902264926838936366478341763025848408191087642518301010106470487091522422633053727583522330687520904038349297884808200026711662688313583928462776751204460077441211278131393301485000855476692280740726306268863664964693328032088321827651860761378589242686792452455890860652043431207195775294446668745785294479955958798245587651424410725771612357386519555699572431179374027898213266512672804883714453475820132032559056202265895519922864345778633264249337866672382421771807910938463596201829252659549174227930440490868817109423334164713138090763712386065730997288431998712255773895244254952105042629673424388179503313166164259145110559704271305466685322148796644550251218079268758523074642607811435004617698530753018727153216814073599324637559358249907417673172879200704534030483262380832423560393527729432087984995766626854756843891928337835623496761078031415840607228050686955642269456106250603425456065457791944555219385299088853375544588445039449730718224247355542311088569120516709883380938172697851936339544630764976492186243639219471063643458267064405432804388060275772300808121384957255896814718948741916882068555634568599342099425229422167835524209250955249171582810405655168344093492346344978713619970770904200592666653075598902567958118273518831393532332790886359001189077020582142833831264606431487136843503054801184826583503573817307835481063171276574328799976852944084450797514066609545414633239558866303460559716660160637672788840231435957380790382896963340439085140724127850678403166429468340752296868874238228961162585696431692098598274133444919849195068604054417225136001513215391201013551617772770429151552563781999391445902339345587196114361488398148992446717029115223745529423041950657565910858021651014962496594567848201787553982820496491276242941551486149802092467491570702668379124218231306531799025115380764398296462338925394227845308612165703209539726328701285668952135626062612804766628159864482587456882946025948027472403349785562633919779984430695565949747542740883101431898798084884475879707702118597770891287713858609268359875464479420078939507467488900610063408311810699141363145484544494946892947038339044383969794627090278296023420128293509759805075205259034452340630476088823658736889492927302660167858224642055715367993737897816843973003122430441197756437883776309860202443630630692369943817183619914921575313220325323836706663610154182997679455574391604867109020633117825641456679998097807350519149547789921317243704549500599953600482255668759943826639422664758354678223552026539515434797684024585449691867142237408583163311398008111609960660600718601526569815117968587010443005576745632160025896501987182800921583896995549434560840234572956018976623252713491759050972866866449008474775816801825734267040708222978225967323101339596511921965856318066473321671748835567574973496525709991814318542576402087466573107409920766642326307221018579353372218327231419996744737201730037748885970522748507710860292439507595794852730518111874629154318023482474861308461711933310518768255582447274386086821594555142385789184697940278160424581805802281433898787534386920969616304235057106819394435724931569760527047926994096381164818281333381622645091208918119700344201682189760505389759948385793258604260015534465125891218058974535664188617935353019158710519330254547224229970407476334658842856108747803971716549297152469943147215510038969821603976067732466101585609043555238111412523995975364870336244091246693390721752550515028076833848465468615906399829321229655062913495830527485245468323184826777801699084667060415027086173360871203166994311322778239219968471041421184009647053839583799328396825009536798506742800504504495909057515445168775731606793775680623174468706188311027620089715921361860692550761600702833830960646054025770799811185316114935374194526851223479989850343205770031280094732603390174287290825407984498220792774431660544306359636664986782197693710085541356587271963459171599899355720307714908951139518249447723337421753709958576719655103535312646558661151355602741480470857013636073458305084880448752145893699162494147043367261194705658663988881475167695622245325441059933270066195772865153491508738637119357918662907257466894958210805166108975358670134366914694497248856421032474830514953923652935360543880531484872765381783640194801471731176551289656092482093194484635669746805483300618125301381740297936811983670855777707566130387013652924692129029422977331331164504376189389175450546241649641690755463380208366016729685099670806506712210553746088495377943540320235772694804781315504183893010264251945950736729336481134819941960124812879985016508534069608363579231412682154085918828661994185814664181741698455571375273713484317721573403717282244456693960762604892137392385416921771910428591268169780085831159046849883116849829758968551609015224015577369932426953771316637873629099513249626416329639145739344304432259847317739597264791038504501298386898103816019560610451217564934495060486768664089075873944889361762939313055536380514503632486800183180540495226111435687528384278393926975986858161303678566921699994645571770373489065405958191143319784587112758067113974104537904277145588295737263045621124031836448673847443801875006720672211528092218922219676356471699782094524048173604582023862068349063455418639336068925346730900410737098246216561062653107814170469259915748875630004155376670761944528825472332269153737814477678458660560736834811312175262324985223306791459317621162582000327810593129345950793043546336553100906038121147284134422637992721637870607911061583574225712157594682929480093916015422132376148674154209105558608366709375557016404415627427408575654541839199330129075161341663995986298743581177441551406769511293567257667438642376873675204527342096497150816279878588089524717314516146605015472387618539150233311711770978965279035000495789889537591379355408100883009279244402088163620556783886007563205661473473522117395771619330174114588220154449442246844561030231693294430477762975648823447801013750960725727664693988086350832801853235029179175502447681079062816048467199551715531142319669781904311744289573191566935821366265848487921117801623914254703298946763176449847438279264555938580027605587554955020623158873883346262496558482193086748445506957275074660849643610671285602377309771607329035694148265383594255372386131524018928754104479320652385184388207242417257148670882495412027401098130185039727301247506418603177874901426920404322784406833006861528360655313476719159851179590016772137939448785180538436316181173435606448349670350583553078337681898035525618034223217340042522526475666402522379110027208229587593616537022202513152327872200279141836974799670359007598338426711151977573799639719525459126070005047259249478392605795516370157746186595745846491116662454860896037430199010789634879089894229160403764980738795678488879143294515075145250444064682450457148121332630035783545411488764679215827618498601263071882918229505755908224898639642971244594241890202614459710020050874736538232192632571905882368038498791913433389911379564435309941378831774818634895644833786495223001918957917048476001004592811380060473798178752916259239899105293589506016142252413044866867590850383010640293337489662937976195045078145963507977254979903956454727203437381508912837020841885721778397623539445191613312311053649335444774802327273295378359201593786947219776467815715359514884824966105277848636860456730603644342335077019531067090257440704973201187511220102658148267489158378949478302815709091063220131943369915822414260870689855490169477715683761338538851374540710429439087136852893595579177350608326547144851720686875563384291548451964713083275293874945873922493615672459045252547973861370682572472747111679693995401537564275922465210613087826095510837973166652601220201638556561514536780333957983496225600890351143505203852932524851704279416642945689335517783556698472008195970469992377611516585764620725790644209829858197033058273071056567058656809920933285599736003590244519221063057335092845900374905177865959264675628245358478181145493851609682869045189345877809075164308924811768081114932302816810319514775263811990603112026821236090271128414920533641898303591921596265656592018903236188303849047481183631253240658690297960278848907565154785604660361127989963285375515521533372683868401035594791860814718025504746265409737874261922299451400409634264423059987216375514717719913964164796520267042549925040167697921046503133916592167774096328593733436659152318040427443937641925753677425321393706125157054514842502210659442814057401692286542018126313650256507976731688591360482833976736145805254043290021553025140897747611555329427240556438803871478047587007209777801069159842321755649320881442134239257546603129548033243414471798004498176398388690798874987288962318897677814683739819749606259675097368572318808463328938633274506281962000005128130478341923930807703046972267435163169267307799781628606346164932719020622671509548134448850985536551684693601176512961203339705897366510531317864130272065022416538007336729239988558048535637580857531147555537891193269062936820648278362431543752054298187589506273459161509447259601174496596549081694264942269043216166890542562323361234026506798323326183537252614703478103670096382674528210119017328934787109801799918524398407161034785010551343908059564725198437851450844021845444738279426552049053445244110390873711228387656478321409587418902281669052907546623652536390864320983695577545548138057154139196044588846388408048521419567661550574626161561858747996996502927883124031837529148977581047624609590452207642079803178672620785884812424781185462329813263088759720652038411636345071726909435014966929468351189732529926807367370962975781442024834768563990124624529614489239560590820119336025713492284514434866821815796194308294267314520175779910596134343866848665608205418990054823543116962052895865809549588213057574018337576133642439810861216229465350139985336422336113698080516553850498997382860675714435988718595066984177905231217594682630006338759927919429223720967663268889352448810900911669142561055673148553634027944502089478587302229753666739334015076182630057104082647089536019922066461812660185784940377580162497185436194610705158993341929774550639113702006383761662940450472320859287236970435369132843233927221568084234777250327345099053923935417865524342174695399651295056881025865421117363973407440547904461143619605581590491697187001759677817875793484315884103701318212899216899876304580756927018779300791331356843253382488320677352878769379435536834961310349628411489146848978970644279078000265913280677556945931764352028627443831620981313663566567546478915483724973014424621600447786750363313740676895558188975469036354784624779826096927287796523403416746075334634893472681625401030490956081532215267311633475198587708333741993658178408872105015244336838559109419254446287733980006680537811829911909247638884343341487893992226015341215516213375522068037387049846023983167826843046879819706144719939943169363574575513628478718567977159877562433912968309046125912228822331022898219338121974514929308608232894452466177724506221626376274406080330373184602238490835036031928150124482409964474537771559273151995574438692896184470498995585975307701906964700799423469508166226573826102461754606192171777980792464886582502873962452445421460230416973124383106640430164540424638324079108512634344740081325306335233082642719772831903136829517280767145681982712767659768532020104469611524130787938047463065120483683998407767485288605861269079934557697153250132977808481404286056774849645243010816028224513061063811262773518072744932820348198878891931877071284056899544231794754452243046304845702997105249104084527127589249745934701233871871937365194112432828718399478386652644148374038389335900407060831419940437614502096658966710178823458590327739409464870295404138988951377020115916800263855991284815789233485096569137674482617124790452370440246502878388516553943958994729745559648293732845132052704538425161235954517571557976662395303990234338097831373184326752186621926380235911216892102139068526071948121758062784531237634626885431571538064313746413436982022818814620344450154876142618293441293664551839202372572534934621740033695483568814400590300783223658364152246163424494625921111386275387001913768318469268975331728449964110100144154204874300796648095442327838063915792217174093169884555579372199185998979432360049575239067631068153528982196432769433418207029209133133869881451715975167078236291367651727892047560747739768418636454612095601106028069546376677594994512691940227296176129289887289053789725358904102763664000396774881588646496626740258286154738745924509094599549845128270072606091032082062047840934280050561583428576330410398005923934508154196405161131627722426494765897383676744173175359478604919236798840576656677263874506519405619121599902446303349989234716353874191740295344108675565258447503777617747504202369980297982988099279848319321662278839913347792664829576285773667673222457852698214556176836344125101397985223945819871680345671247005522034928829709676749185488337842245736933461420340302360355041214063095437710094353960498966901139843885709536648321908413813361514270284872680162995246063905360127272702244905763836190973228144708340248684752304546067092005850064742869617079785519502891057513973853016093981570780185550060301991346125738376359779556474110244018383286096973990124200510637372669982156884910132277940572761668783163036826625478735356199974481158979827926643057513588266730272954357874505115147885855976677130921620023593653829212061895174352238284069256709242649984271550556042096647510144440378649966779565173028976216741556707748611271371423362961178413873204054873535233571640202074863369695740819879638138881454954894383037321937198525640318424732090092634884824998465622643068817347816929477117828597202865725433899797403423482704206291788728811226077694763171937146343619914339568474978878762304013422576591281922325781530111469471785662270668868954187553285602599165284578276407454489001560513259687285229976770778256209966573033724240721228934853800592786975952627918672909351057358755077653780355192944531333347151468791885816721862113192619635512963653533682493883204244860012836714135323126655110287432636125791466756465348880669185044718350584775387575883322428806163778951988688926519537465401933008560057196791826791747075147424660048730846210887332612919101327152864850774469381617847601588289502593520413259845251112242741267407534293492456860404427826479260210143968875208645336244867341512804374437752659891245987417904053301290667400796960137136512185628597203977849282529029387573926783428774165299088818525614292537617958338333857664318804074859315184401118282304281595579097497864613294659879384994472823650179719548102890145272345322238566786391140040082058271519199176126594485801954048953915163386169392808461170573858835765633859062453687313525491327329731440779655800486254269693880656104985306335965215162010808157181756216542153544346956418202790071683944280268419204133025467360080001958302730722892923289126636641835553275917754180806116340290064866238666623193127103832503335090533370106635595322844310442880644761297393967232909219859190942114355490588573180490133754637510691180852394525012331847388839434419455064703286118687612500013163975267693137185442713756055619861998418029964254197979648736874084386603454822238229305366197201971850863726968644726418941715637389127683557406404889968310733425561871928045484854718908552478757720137476148175643052883761783994854761116400662653689248603423774434479953554573042086368460434571394162564691533180770392414494426413132319406659929536210853080947369268935880325965178463031687375918112404991496489392891366388271324516965826520995829772035437982920013844441574325052630802562529376698615998008799878394970049447138547076979785718371043788822292201985189310200392588029464079056087194458953169430216693159031667437251059471833035811424489182099798041363050412495767747014638946483558074192613428684527987900053204148695839917541457398988597544754453115606071328648384856611098337437490209758853027392210381903884054852333982609088375224611432917391553554655404380145246765424112030923755264428470787641608066703552372738037544165408922877570168444160048812329514020053753839606577181926665417981268719107154408790170577567645620122745943295612561810817382985732782947227637169019338101859680953035826254029566896412260382880404889873570933183606619893546663513296089598407852719839533912218248322199646149756518537057334227889555348547254079495500781854385524394569527703594424363800978537175198614647124667583653151881013933900736410779148652793075303904549667949842639747297866435368886807266278620022325127196005396270693120346609928471171551494904508805432752325710992651179032792481494857185842668036276850208365523791976633399110843296276089489203295892529812026858413994202868227212033376275597371674066200264031976518304813991461579261477240963271007947521263961851474704517123817067751773674094185819735029249358164384387576137017291636931081242807035788773105294490602637805072673814005571906372979473380087947837038598111976983124758331375384327997511286488016370161690878589305348930633029321758828423503369636493432356202831323009144546801130315445635480959898339389019105821244184116387064561776419773729200873046657162363923195988769596842760395680478960683828930758958581224949620711852621644527131455530695703662784019960923317914458019320476717303066828331420338216734333274752620104299178234853362778654811584589369105249423540788209946143120051760591328558471079456625229339364928935865577295491174185217102139873964411118007378713451877679873093473433399698114098830366344014422244428833620358947190911672449569503924274539204540216145808446838466336344374346895439352525499944993241450939237289271035592108473195351846884434444954865812360577679948858283700071266255832683687465669437182725233060594451076124352512663468341265744920388535474074390142760339134329334879227463988184289227768258457415145140246276963413953929515096377600135882820220187284227298920037872138105957750024167809091697725952594824001458834812325651267357537791762084786767788896433156782507837594939061218185985948851283761920459935946332135282408297337545094369803479353727380297011297439609567196597155735969590860636480155189978282833386183731605663274285542468967041123767939909624964130677903094804038476158679870361497023386300972759968902227850403371826422998532123321800307848885932021534036863377556962963371409198249458141919442339891843119659423307017566148163944087556741325751232182030654894331223527217808054442512256906510893636190303856199486734051899224635032252443028484674414514431153839667727767374751176115925746925169111190022879636413766633894994732816298124148086562747931719786849711276609654464212667261708309281128756682477183337271165445620275161703298452621955467077712781088341399776866666977191757190177386688103373559647723961200203824271807332018585416511878878429342593192387040668424607160411988709374831743089984908709382347427729151660702705027536591701701390796705947006791721905601870229969225679056884882434246292255293144662040303163975793196456164508283800753033123967792957312794606229768198359621410592881151148447065530699828429629398009043814878811519764631672641290207818294446852268987592043514015352832405299364449916061608636546985703834652951276074934907518947139994114306446618912542754860672648222614609943572082796261947391312312663095046325814711269460130743123012576011456413208198324623563431621575816980097316396395902580694418464785380933207027909651423579717171161982250538595110016384268018809397827825966796700495722409095368560493888462858118162538294822929597356486115563440827798230014600664423480521177155677527136686364309960235182703752790124816069232267228500418304319023095094189500513677635718064839885738046719294552916230140369169070744410508146256519578526441568478582171399517744873754943691538245630662921882328335694218912404564070847677694832970961549580498607785629603026258602156215479928910296391292435478398965734622289310697107182712684096330181366072078890581945998107338819540027445444250252784485593070985155836255730643091671709196894803767096807217723075227385083679433653315546561197523376103736284191361307444009356573174902079691511130871835300059466351300383736849458613995126005370153019433488001868195900035687708710641215566944789048057859329661331360774733496636117023785694261556067008257858321486954378526815841254527062643294262721258539243746757518214213777713299871911426573600579582415227919742682334160000782690573604685003645868326591143994631052083501828217362321628871584467064017584187023036946193532545113057559893158971900586200941845018288960569636199008715722838037171786176402412879434328233985875875652182725619055887123902245282718304353366688284407116655219873625131342390093749445756785912251002108121092763603770862673791543692733004066954146658032858596831751066308489049359875172069141085416296443655496969459893171469033660516904511173565797102299107901997490212407891717346727513241925634204529675948240972792628239723308123649758016824141084275102114232863490736030383294371072902339310692293465015746651170584779026913490930637421729089283515778075517350690792417656296629933575181795936258430629462974136997931227170606574821743314767597608785520960397622710554008955723372543758911940013270222258421199479858350908170511864356962128042627751543737094722642830690723953214182590392955586704256230040585293601135247319670674184700301496446144150169697206277062161413603303760312528106293185506616897777114997738710249119104353248013448800855840539684412943847924920081388373816617622308419216628372203478787450596722969711024209871510111806154241508327082980249721097400256461313955863329520084407412581049485046960545055593182226482962806377037208296919488662563045199219001919409615427958159370209012266804851248004762313553556657989466813636628301548728064504255737852317383315206839765762764421429998671267409266929434213651557708148998627911826224406035463797704880756794811449950245247328213306604701152219927112259128006929929609572569421338954816650466442436696577870356009712953800900127395646710606220661665040905147644084129800471353428296617106316627584162911394291723666834883912356002865556404720937933304785127136841623938644636770944518531638469646720648922612279455460193348310579428760814498620676911169388152157957020097101372048249647371533416627239316507635419029116226636254037848487285386526307257110321202440799542153155933169668070222324397713393322065360100923852178395600845807475528781143925404031419422444201363457453301681496924453786074869589829770120228055621212409127366908286241316680084265579706993704511159051374948745709442408477409131043361469687957784561877182195450534048624865006112022563079612770707547390260305120414867789985467877708614689490070062369414555688260946115659197585875467455946031688243382570856702742377942788790368456398831947611629044700105192618030856921822180835429620093362406607815607198935435310432873448602407263857130140989165792291492778647489265013108202463705132745784093096724195802654290232544825250598785278029468878008502957137467770542227359121492870387078002048570684664616381283239259601063707193834250385415368043046955957045926122646047544118824547448021585292534137220565444895864729147335532318074670239935330818682294474707303293256988451995667700303962086937809704863034839150621276325609642584232145390732680278876929257067223773352188360098348880722771142110308921109885801670112477173624395285770844718166460863244986901454424164742758754306916038434151898961452156928355320145479673871932913179195066659749971304524131699171540032698929298347387060348683773818526019383579117316063347408973007009466195464623096922057777169219084843864994712790660015057132824271679883765532364277784455138833646553504873276959218719912135444255218089733698498156651323001563936479778132542092216790594258570494206594288580950608803145053464059806815133475823181923099344874253888243071682383912458296937608862921312491877963134856177995110016167370543904009014506354774105981677845189732761145257631029302500288865944654967896197509747134116957983785859439333163825013743533447748672295942216914896927672208658156785774538049405775829043118756724204498874222973426691754152163017889893362710551612315622992334139790762059235413326549925627441060999589399479288010812320108272550645812622306311171811436806234526961114725786660892396761627294974082105764198065879543571931292203983040939624227290117079616405566343371278191901323252435470663542331526296112398964599930632551320185636152379460513663108869039816236103984254859478298062644163697512620328281564414674718883598657110390207043856563142728768213012904403182719085177423925996796133934148551584393014399907094379403932983446892597050671808554582584064112309759209290440206536378956830155169782073272053439376381577433849822017597905119207253243991792606529858694346886857724868659036983108205943191312621806116572253962006579042375237732940787300647954735357841306123765534917813491999727351729237502973893612010440212991354668224138182523798111183858262715547324930601746877954737242837351165317795727494938523758336469829751067224562649898341638216240602680269587494985046591438307450336194012073663532542912377733651602869999365687189169978929736084251107266714862873856755924572501498771610556604487654113810551258173231326851346428988399301012661043482658729463464037846290111196166471320485021540623505374919575865136253053742010567250508876859127508269056961224201630208982155993977929526890306182221084499321406820547374343622443248613333624850281122441458384056574861555306963623965091355276287523829937873280876155486312187764014800694309050150652793515875733335186941808163427113786030436355275994422699453331385535054602586779871666046357410778893097920927902990445037909309506470733821861810902318829336198534732151206903980655173099818109104967025659934488879588654239969855589360567405989619980668100667546770690672228380421163466837610520937159386309604114058933654090162491985739921028576643838146854911633527389832552859239131018529559137771098364790917791334873043492697797688588017833988838349446146795642383392232569746170116400713320111614506416657467106839510699641741352374874199540507210715792296415170797873271835720919838413002263250014330008947476474867380704641681627875789742128714956637281133085930822273831079871034286003709188348277115107961044880844954449969947420172824075004552918048688895656679957962983706471803862459101066785633697298629182548636055306196083238220205355142753587506438357386633036878217421557961443507909590987484891815435222331947444944880150153758547444258353804177248373843146309208545198247879342282776024252486479565902857001792821534560887362586819832467422090320366129295203740196260851891787272075958741145750886708437918602577642873813896156532919875047629603709457966058434985901686926467050152219443215133598512970438000183291652446964625739455019695438365489403311279171566933094437839981754557789782834637040283968082494141268619939411095441079346495988761781648575658575309658502907072195633018948826914527800277759915370749774685096052336062035519425905628733094622954724388187424253888837074405341564924910318052846978905535777414448904701892268948883675758059614060717914384022749529942058340716876729045807053128713052578923263593507986379605363103674568138779546999612174068163897152303225706244299645505702779204900096237117555579099891800230120871523753183251622522043877529068943541550043692864542981300521175639598666865782435959894802269776467170584130687277991742284569507634503708331326088433715771647516044971870116255851872438277331541024729823452248716295388824496703377626783800401163597598123623266676337559602664054374738652304973830309790031537195313422372002566228201679234080030848829586216566072089712633440426793003229699174018813381927731081481960762452911417820644147164697753998498039449888716476611595338293553015990542647171055371993245141585267235078143491098742667256655519865927226767356482306172794138382116729223718576125035741413737659609917322360687757253792644359920908074286948807628860923246947181922592196388418713757959083495503191764329780036271801414575447177800137146314078507980159128312627733140079112263557090538559078823539328779398120645664214255237576599357065678550365285089579752995992501913828751539343478048689327150750553106174751882821457450506960664509855968156261153149124592568826497616812639145382374313306649052488408937666790839982279267565096450972910810920590226800783295446948760916065322431057044035038055632104629860699133092968069629359266884530467095581264697437759893014785070635276387665314599476277427966966929673707039278965902692007239743783528628182287215117137159534233214205671920425156050140373407391022785346618372687765317101993408714371236630228003217800677515331464805966451951519711168825725326060081389813048828284513400434358522794412295347311891033695436136808910135212399667426415784943702066969502842743181704853350283861729359840798314175503871765945735233352808335306496070048259163214831918377898547650399653602318644662664022865793130026145347566692432447862939680829387581434418815110455711629787669457976240133036577637163060424009615436771181242393680390332985822837764591421221661814678892265009390130729903183296102702333865225137492197396098697214320213689530973880609136939876802050812768449512579040481300676028406617346992862261906450636881775783874605598143024404571260535641983372972641303010712064839404750376366071235530236960488480256374292326819875132762452084399644141613210764063019110151685323886972249530366109419868892193783463579968601498395400730283653513699937019300083594272127534247098360997029670914796264143828014314342532069814939393414619380692896385561404047275138348172805611273300314704235281146020989893828914645549286977068007261209413090780527209830760739999108679011291804120371104414800371106373728290749352416324992101586917730363550956071732812378695492376166550689040235479003375521299729830982115417009783250538945195483924636702315704897169804253407982712728755699313159244783785121182590565681915732400106253937225483058848901007814704530158072390681655285576617215664749729361656733495296930122344947187583703151473311091270762258286180729107822979813815093203764039509554758566801530515074763435308760500053408645843465900729313588116731643931154433310703250516845492780856085489434124287638894308558874085885743511767672219813474401814334376821739916395940349776949066767105516596309880070254914205674474062370700413819664028670684040752382065089800075540947270027877473936458830548372855941406279133550882008934446444077097534923659705556554429560736492847527179504813579724205512857358392451064463913987562930589900109527193489563805773370754114013513013164621003825167462826864630412741307588688161155255200609758605240926239048429141513494315272685481831896744941875469089528340543784852227413108027052960796601872751703370634194211734051543318291250647094047032814185346840007687059699001336556375054398561775729730490294309571456408277820738796793846053070117642641073338502130058202515276771304664547169412172791070231253417463641467406195332039115891765492255592112844959777315625527335420926885760552839649976265947046050527282292365849492017103885653113015979485174850556372855088352066955747827454322455957291399289909978434581387301793595361478075913640612143428568635977259225668364409986373664445565168886490656843049107960262613494566402202396711789811556906859858065629350287404718938709714841546666458052414787921553141790365826057748652947111347028893063678373947184389799349428750407633636069266893773589991311775287396322367306657057712246752882500266137812941945434700026578354268399595067994312863193846135739237803884652921805732476296515438243807568686533641208197656659082342026587155137302178069626578180616632298462405181234257022692914138660468882722993377877650893777175324650706506319795009420047668786756314801888953022228687873253674441447766057869193801493397458814256839840875964922658026993966480080480162834846172793015294311536156328553576497076235653859966636677480399913479499241991943517176060469725379394040766039082061738021149219079076255234030842084438017035089722132378091854583056756304115561980482610725556872876016533873698754538776748728414830216058978667087673237580887953947906126774777935354512145951371664519697889237645394535193208964630870092140622029909839846288492951184744849773708624473916433927080810267453504070997761004343717875099346851800471925962110383387843241752464880735923984913403875824292682224475470438646940135660721824537423977410310297461096129589608926934874066999971314299246939821514339274952190952533267432150835645697053095036481475134675712471883486788430426898687386532947645344263464043977987674495829696941363175416045971560309781194005839054249417779153818621029756866731012310934784217971356784576601481452737410778346944658373116887689370019911502120771623564747493409409663759197561323348816589241105384149157805392845779505507571713498517697344921637357725381576672896778590328577973337789362709405876124893343136923754208860492591459793632817507470892650315294107720893710244099790340158251449839986402349820858041258547527183786718847372228421985788357006025948169727685187425507002178728568803916244253873710941950867992528130641320813537123985464460721225622087570855776238932252181709704736924964424453330582297888456255808753508393766634469578380987019091090698893443730083000896906563073901253151683266212632547175983755482215771912061743154004063840692135640134176218608217026468900230019358405881651759372717100605351619191158744629090191743761541080532445138296854662933946256129760624827165606867268398181434954017807329250912330405567592249854428809720286964359230189106900108102775796219851620184707904675804218456479785066604539342407097054352922050102562101652635612775841489953684893467030463673102711969078144753664524733797339635274161291865089950622231348539571620962069594041496062985790640801310265283721054753640083212438012070219198031249196187326832189087288013147656899843853829611819045215582429400130343780027739923195167256874400274260195116197845731894954404944016633198776822092475159798401943255742652229421562302728975022245260446588358609843090697170812144637201487559714508241368646233683589941818279077550782877527559254761548727789121784051157228437152858506234498737490806323647911932747113696112429559154496144210808825386226714770555329460714763423555963814815389058266321156598730673247531937910222448733214373000662963763921055605727384991633042658300528170215424882559440258678917613644249767358467061983714407198883889384867541151407151775825426282543268635439927564226238911324605167479210004092984195418393301629910147961138605280268769244866294888735978515651595206279215376119113241731940000678022382322801909635128596803865192249839063800019303912404836809538232781377003382723510983750410206153080858322660133971757763120055663983943405192855421240646271845142874368737536863585646473472586924364323917526902210622375627841930427274591979529288431628381725900450977333732429461497554134026113957381065849437255039184894311110552369613626583030408271746034735361926936326581919376213633334298814037351951869936593237669827711578808817993685924570197822583296719969959236495276174885642055799686741478091524392296912639272381527289852472132753482210486392984183142058717694362642592618875477611229471335227714954314556020742521826341323708434026918927809276561279809784389554158340801650716682136375755239279939501783030040380079308335419998997566919092476990586689571784618722136018426549561448229686265797849153390078791548334147370094130065677339796283757164485313283602729321837279069743226169460739821195912308647849967340061929903952963227443412648817195858155029973997912751050617105305492765662955603841839794783944826589527196796154947399038533405484751412780431450151053619658414591229161421451223210368678312440281753992955460744890894778430217195162088495894867654676839100964197652789254054065894511005449731263747458697249581419842716490826855241272709666587666345605739699055030541597046238607834625494287740332852771532440057108833770409932178054818720690526337735634397144435065677532420506809143182375104402039045076747261174322401249219384295423902136229359015399527152891306325452080807220130546109391885526471884304911017212690320087825556331499171619381059631392776039318711671266759752125641259835884113748182725668507547318591982039738305203418290035863564089380682381049020880749162522637917351816965046193846881991930637721385869362145393069726391326294333383185450991450284699382024555992248888563828431706090602342451592944822255486999720768453998911399838176441010029803593002608289310087910357286293097187562112639729833066408580115797863479957180317767891931729500677113478960713165422215834288193684207172365563114793512580670908735840751991223026882919138385181288407482612935492342697786033304607998844868376919398271089793493720158330229672673484659170752392093758093569060478550970898675632245662997331208799793448616574740925061159331267516056523492345428561233780047262293704850706985908830325696419151404992543965992313572219633579252557204751494260948727853101548275349114324941321493910464360807838029240305912555499076544675159106596099670999197640062373456126576108777013375007075628760294727990707587832273712983829355305838438522331582717753323385001921906163009808633123868799413129219635489359879815872131111307855321575686294841855980803742437510924850498318926667296095566899923906875638077967118785258287155465360887064009667454854496593676705027350959162939264559855608030743675523147689115286573863227766780419553703510771671483985613479356251654432406084525069522858222883498834180230150939831570745400740224712953980594168086080303130831555627717581375458611015674743428089152889868666570873460626663277088392910165794721610502250413144274152228837446984702005755193447691364539108846596519218660829380493363995822739731709784787650787601922773838051986633992351013253730711575989396539899186371691165553764925282926058866572037647328191470019633381643308264631371667563144131969068898138151676516022323080333000734633691344941382991186115543944828095227699243026295192031629357802288504371906027487575469671607204453384002452125055407198283732193118745098629538764194110570229734874418180224937556603726386433783847415961218711131691505794542792591698648112947132181647306967009095235462099075255218429561459742324453188696981796108928118158771024092312596685257856992082056623658316019990919527825930636667964553686525530802614970756198346854950725915481351492595889995136166791920111420159792536777304771804130921138465382754068756260388106796948900310510781067001775573878778924847282998311924119492936155017864648042107257591715577381706895485997199431310495265225390830170355018873850780682384925324100472886577198671150049376520873434865495293814745244568999035143236989223989758915712540150844297047052477101155020146543488917600834446397368634073027757093364665962104086247907754985507571685405856573526131937308681584885413556598061424498254109667976889195080746199836117896867977858127774264948496001579264099440041750929190520059936580920279600657039129131100844840633976722095611604318232485004745729811350797501936709100406727816208133975291654149674889385774303027948396212096897605605658378125395964760341684481491422307776039313422043156681205906806387866237497784043939133628176212090341934939100651179747430718220666694391046374716210729114601883846934212555004169081671856295493572257742116254880979147938177031492389799484545966361093109144123591792581604337853473263299547648665670070191594442655729784219489850167421122077603692722606018394098276504339458565601483704755049463872011708397166616940936025926928339022404769299362483681379698430869554682892972880557105504470898084376370673680799190125197564860539251997432240970816059235515673682191557137326181673650370938320330655988405114019770680510460339332906112473357062288323479362860286517798229978909834432093454661194049878064486292977989490741852032394289424985495452921135524392338449959774832091045457451312881568664083547248508310164846180595793866180815451735833500211827280037404988119458651223340865569350702137356932216695372553249801525569854525629141443164106156035551049116324341240760053616586414449083023267154755552737521797145037937174514121725310074907705993990519113859296611163638901478083781339926602751431795416067313459061233651004728209802929262832417722955215075999135281201059394441437221792042229791368319039492340587755040686554550450774575266304822915190791213903584174985182408691246706713226201815564593909660364335549251580565342035988954734107300829433877695887962149703445392647880794190277359380339369840486370900374145051703320975450145405067463414024098667190139109534957248771849418356347987013697608751544790680056698487285332713492606787491973123349694928667629211313784948518300304263025084149502520074044054097062788231348677626107950463912939370765327961833261591977565316457617135976579910814324418675028621579486036054515949756622094147026996462484530071390600119664187239155501595479841534868164984040012048152290350496234963922731988274538717607002220626612264609503062166095708457228647896365194466087421594926410187531437168074526571335903008354928195553669650308795688833519215946710415592213247938574097347421021481941562209008579255242586564175898067350836506129112669133484899136022572297102727896046571028027428216486445688968793983873079908775897159412724219618724389098130318205924883011284858198791619838372130567385452094887790265060893705692146504321435864678636358680384359897190197579407385760080268696632433149680069323262586839344905787322674799438907095652866971272671978748649100858883924995266254425787992299620762003285526213883128392521600380163921260411205344314752486208012606877375273756423812135582533097898313752473061305558208729579839069051388493669502260418943178941791774111145611487270073759880270583320364654557314818955179049440262074493430671337158547631965220440253825950481869922395871519927400866336591308897164802559351957469739919839989973015124865977388983727575845817634935526878205321002753483203084962341219240046945957483983896694846491616856163368563474083058454787089675121791688069348352569271469099699286284086939516062250387865882046507281088766672682019771862775396278693760373468177914133272012746265683878440372819366438352532980322974743008071244298755694401750447246421111188340113575534833513296155869895360874607377760222814296994216380909837556668740716836888943767627288861549859057546184637043466255597744635278753578006076738616159461788067548813595209818029829025388335535292831137267831174165392652983213300011180385419460658507205020294133945231244308653277284683037156131632798393239584868020381186772948615507530175537342227455096526082894713525697605382537447395474838626722236608970354795080175152041774878066286337096631214878304265513048719621512264196572625059198887941389636568582704966131375810768465365395492530644677278512825837889371977414186746458445200845278657356744013146793439628377086796345233882584989797322809446289731811672133527881410901388701348564878735565162784157528493768639707734726756354253636827952112924817382451939596593555789199743620724702719749298942959033279880402133116510162802074315168584506363298285220572090045946553257447283353886446765375114708580691595789297927490891264617572316385074049218918125581547303430085435218338855009098515056654997565809346340038790113398732410673392313381303029660989255092879150851227991124116929179612955469058771715573807744944800309781996674100815966776009437616885926272987367244807866207160652773963734868826670272260358076857475355670111234997336813704702845514786991890870300586698446043640640881602436640842848255778424129570141881163954242231491990042332970206801919028697482945374386660438557683686302318461676987810462244104427765443623537964282709903763431652703869341889410092217416311620529264363639465886169472670181371704541286444213479667860358838544288309804190108441109127536387818245560979463415739344665566843546899120395315422206962568128363307468896237974427972421969044105724494439193006254129676467295343812268682904283853168817221222914637330507406235226405360842567957203531406709161808463908220531163146419889449105465039861852085404138785719726982206356742609613341563381698924188551578827027435828509910199036433273110854670880468006473938366321536881511541816850802660403824876855347683322141788390323935888526674484412505663194781778576307437742098785617631753161102391135677641467449159713043270283998967387253064595157090650928119803946529977687544691601146966537842061900623400217026951949431870468782085137534619308295954808945253264770493654984334306334858146190541762010394471720189041723760862598997788335523534068567898223710397133833951217392159422934790922505592786444960894707327753110115638272294233054916342505951939314689652395631335072516148043588464066116140168130772944470522012407167570062490386896837372824939441610448212893560751926356458027932973601518724526602311989717965702244441701532926457872888325876388362061072479437858112387314390276635068134465192983421247340431139388341698813025473247461649714099408742928980137964947649349783900600447336077792194904821492142925417497480926238160923935992997595345459412999313169164115927520154051656774059980389193548637308321713725534433903874867218422619124230038154663943901673570426309389710631164728597002611870175645590278894697577896112845386335929180584000224218495229645354381456080758926587009452629457415205938105019960281982296418346790634414873922282812017792340036904784639660704519563039088731926391747006993989002966805650160525854848752194229652309163112646887074683774618245525195319368377546491089961188091864226387620666005036640664968361602820652109122453586157016298333179620150515359151485048088835869474835315273719393205871426002720422869799621612132282585866362445584477720739842671582677242936524607006886593064367485302938361989846896567576568632096425697558775745337541247300870526338504641793797921212898238862836751021818282251195996379055496735390721355776233708360909441245146270764987317802206029450910544045675906427121134048611893762973507368856624924269555631806747017321601978960167670248543699435420962195635550267114427567434385825231125053235510973689442080701308843059855506301285500449056820466260662345618055285534481632385297820379897790495429891091340324863874713286654308128703825953517691656306960298956655619357293316395171148843224317081774964845468723485610160271889390518614760133281218446493468114509099934871494498079461589677403942136774496702680809160430346804805432566821935809693622072952499750779295708346049048756995826669599076827761578571360431291946089903399325211458899919032534316145763747237019404899639594022801023903570368223015619839258514279906779480280364900186276655946582884149705156948575663445227611121105988436046564063355761561648005648419106618659152579265375556798023286004334340933447191683917885236064366411882791985498819372291107579126067753246199310500887815786793566980601556962235423286681457578715904368829529730717551192778283893690043434375791266625993324741006379946132518751316166231333969157895027360157856075895086775239536099073155652346648469304527165759731381932250010658161891694195616138466741242215659401696826068795837917358358333620164788416772014992126269406436250722539521018010857201866457522714005800501183297233928498567718118091537379334403497054906527714723642064095866474275884139260366125246991100022791857966794001083021168059753738039074269739985706948906175101346811549594462197899864425628990086682923371304804970645549632214129999436250047952013279739519065640580103446962024884667461083503964622885122707000993406928879531747939752369423085427850116800589423374401936517895264388865871172888812350595667992626493180052602446103029419054304774681481281036024585680375641836621590122149353445612989427448615088958875749795018042477701271576871638322669227211104940673726444145067190225895067870946110400701127401271474596652417172114695170837905152066022383696938725650847185616022361197099540303130055413707960667542108092082876249906721414197475581009178575400142921303499627782686713496257827909778160138602878804861387719041816220391284862093826871201449046882366215090646211305857667410824263691817629040888163984970913656676367149696209578288952547033886432397457470229224297387255447069224310667398613587706079943786699565816700254232232568236473497526038258713356756516324224455895821693458133881203099573229732457836921457213527179489699308589678364310950259447780222781348631746131015145160721650305670926931730262669741561164942315951925824398876544940265460258815788073274512147901991874933789628636413265210577001314502227956904860530362018693052959370711647155953666890923707564442677036783032465279111460939703351029310888658130406552755254633740713365519418875947759350851454564232215919676790797765205976058231883590246915157215492979251903290157658407635402756296492011941073611513247711566767029923016918038084929207821617404707032246732752233131707856518305463586822232705758238477958556940974756061644211181759831513973182503785549015063265860819449021943350100774149665481131928457988253087327003501190189365022128276098390535158086721145095972234974104796619327229927474968111537002752057435579332644487117817136693678720669356535136193418934800971140149538832061536541967491056312020133544032948195502181420522041551657637860943587710762278117016084371322723794618845012838176240723696949422383369136530151099186844008231355999198568064811743190005123389844336270602534500352381634502556163292695403847207968449493728799722595728856967230978804727251957929333297846610118701226094419717973645361745029218438772364482701730960621835458020775094187920337889537232504809864277859799017924030667288768367420761749245394629431511676515847304313042579166878099244134065942295162175031589910337831046744734958587460344008192204827317875377010175914499785072345757068332164232272373357145603083946700906940257241016509796058945576551386673938397415392545880023029948961485574738058490538847117755465149747694753819309611549293413677149333573730256697791507771972910087390568077155655872713951763890851138566187051635136776891702407686038986567563978913129960919206367903629783691353128117673627916142892325326963520359253693406775179130466157676662998643609407554781681631431674285292450174596923650052928403202880258628382684561160529747330279370632729590199675181072627158449731618343157437250634660595323808365871318851517910154122068132786242513481611955333887745385593705006579297867656506351982921426666924324146426223831953239336224787764040218621593040605502711812079824933875122863467880714129734433620473937731322224814387968647684833653163406870548348198499953858967234253228474657279329270096001188744243619784423305625775364983904509060355811867549475424590374164563792304495878492356175085388040493831599263291374287383891595582623687463592813293272496004697713922773825094376107944659753211001366123100372831740733155101625427145268718074284700192787261530104466376490340478440044623651151390147188355531201998489665324715995121523022345630917846852934346610538705333687396427871908294622083310007775247448807686473259458718117812435846837207622900229102464921193870645254727007245629499313882985863009329224590328008690810549421421014047780923413619621107130588324347472301488393968603553780253681662221143261068459608601452227106360356466040439129116166014506535509806332845456062973255048666532083208117472814893270501504593561705109702156094762054785270655947820163728350653758379151370134444329210537058440011274433396508737217679221044818456336149400098719297035787223684451627103916127017508163029168977069509590648904125889892528955278769074012680074704534316867454643674065041961086939807291471478189462620707110922899219711355589579232214544858394442267749029956531853502454071763988042626241000958985904523950609876476498152979036761182293922663764352038933970939586492030870223899811821246214593923782024171683781719275087261599650964512686175489706326818728841116708912924241053550584492694501802528486397039075411994325647203250358057757406171878687765426516567804128910585460096540583979932723951629258218228888344400668942076003857329910470341201250901451411054581450220258676394164193020329711551327150798906869772137745420779453336861320327441454257917446778446994381093028641299466321335567425270136460112896248518949649192899345200798052474059392632488262446972733312906204495191218935051500546335134539014523273093224082992885028183869179053967892037454513568618209526412316819781976923763860394446714173518289814096727421448266816265645087094740616193701051449478222672173402932212157749484305654864554961936360995320440897606465596013137108593808456083588110469773826930098083807825443109552788276446740615318732651759904966211461616473841104649919405217287248435354793188742715384813555839206771892553247176415690828409634175252763025286612805768515919229127114142759920477917404179025646552740279892710007235355022521573042325258272034560285220008612799005315064032119951663467138129176422411189562848493592973413276951402819763434761737915885308161125845524236036277209389822654139226680303242212795142205707960184964800980734604933139664743267400822180865857932363182346570995079756743552454482993127922767425621269880133567912538239843293873613484702435625860126932399929725894969485909404535134879246741984381007287339437698448196798923136325398554908556330323145391436369146309526237955407852223686387099801682237247505276956110669483614283021367449560775893917318883631742093907284393543357603531930836444482064118999518276047520241647938342756899360718699569165238314627583555210347398112335926709132625965769419257298419861905774542994181048165152547512659175906351493475022104026754903219520926473902847460433520783750559800576216835851569668577298395718209768226728879177840817729674103216981559896399784991805593793666346037532735651878565487119687011167485451554660997042151230176525661226713098130432638350634361074465365484710699805772669249734661957742681511409562399136194702222344126803369819421943602244043667102278055956944202242824990460970031481863710336285747849334843495329884273344881270249821893085637913357591383948240241906611133510630441840539535151963010027105087898197817619819120620594781861313154939452443843061042609220662118616894916375043816416889764884113874263922334554086310729226611778273498550807264305172430207239044128685641302176386541693343188999041096201897757470392528808884253003870059240653709372252019080035493600140253974702270912347902109772162982031753082889284641077711160885122923377103867140251259516872178772143821687543620195517413747228236533708486206418557399959514304885093818515623412676149894043840780459669664706036533205962003810204017025779621170888762263174770065485743804964407984877822130628911192940581940017002430749609070427507410527874152724003699912244371051623022110000030441828289631995230913714082870843259269068130060326151323407674980986801228264265981399784417773241169398399090333342355043081832589035951115211326035401213522608532402147620116613413766668347007519427054005408269011908813844636668380080703936197319233540640879588092080386976738407833254957237152250051124146964916119569640868589480634474585324309997674044345223748284987254501418067895785097160958207278626238775427786727912405240334134456727195671116957955309476258233030162954030313678104529109556552796975123871337375965971821750149773637028874762249245712576864563183605582715807770905312350782258219567696034607440832048863362517402083474346321316468597303757626961122281800170349834030348999932361079591190181375551430156910473120791533298974232068350674146264061982241508782283748655745633471255048829693022634452059229397707615785718884448652654446700176812184529252691279619315578609578229144526559657811469092534246692184570894310193361941629471892863273071174388300882825831901625773952484064713540121513139802032887154581343397585048174334763044118342233148197056170168345303757019318137505531549989290687283315533428477401759217559548304494368244131073864660835650472315436212496865132335910080939075234638357899933778069635477276066395403536567363256004265195922777945039540284350658744866309434637443335453268746708524364073767956841257025501216374455097398830430161703766423584331119178085206476894236506157710338214301428372978720929198252542213334796742217062737036811372490700423663712827072244478531477968215424727577433605640412468879856401256638364383978033818750929296600017095585925535135920311395544470339778738788431902189156753681609203960256873975015243326333019046680885466814882660472337714332541343137456845696145826118687255650223935742020266663221014340625519466264177247356322564338211292044736488383800729335364088841219830427000909889118233013323499560562686303319002215539068582253775322687741400268313883185656980341821541344973860811396789087429056262932469465730180953277869784975879694585314138517703682743838711968152943171565610161840262043796902258084893600802471524618230083946298499561119707462920089025402283067614421298697046014651441952594305377649377310351832212639006887908782640389105555493067633605168040975038779971690960991359341995506032234631443410158639582915878173773492138221199119622564820478840751623964499132368511411974323222579052261880670987448951128535692901913148734432721685179127489472669202682119947771318283274740194039824781448419758623660573277758593591516920487996413834054013827768985454957530187360007600499193112691609469688822828631692843417445092434944185513159888657281763203555323012256602353258742951422684125367359145215343023712495876894740429347918954886879000125563747746805920087761054416690884558856671190123138347087944982690048141062006234977615438037603206584248283956878030000015728455719703053804442912068967402433658161997087899116322901778781845556294605126261122005388275443619293344171590665190893882886798578906523347554313401309369044398653722278535527928875154823529527140126551400463165011028373304814944972061012070137980600035601416138057190674076917966304891725026327145726105073209098958966617666512308754579989822160137061927943373757277108466551532712421104002949536572065554732564612943789984670483783362885548228397125243364211319692862355886129846399618696969594167381021282138109474584097450926565734410906026531823593133300651368338893393112686752242080877809469590238014917997166549495828025696289254978363166126902877730367298969720948491993606201375581040183597597924355458238963971261152783481456956431707824213958251733522868719788185771594613852037795118987235937350677190871370466878293300867973290827333218562654530486440211192690663894627963423768379071659227000644748855198538066130195691394900225858138137833127090534333176680154440870447951189522801693436610329622468834729679685435394365840976228919616889865076297664992752699289186252604245932940217820673812078716711190597124293723942290897460026199066477631076445158647437264715650638367508828650368460313943708789323411922036358449009132317048216020333735841891105723468799304746800259473130587296651941605403084984989322114145742699411168404914949823963356892733617158754732034610271745441106571923904097618675659222423127605455771743390975676908615745713797363806252690346660897380771732979652053867792023697967526973923329085341468847108943661709854537347690301162006556164966508754972092623601640857426624091291495308067407394926032881361684082379395512937315146482567691298585827694971942216538153005237861380760647275558735386641893695693292505316446518549438141495124437173352617869013814411935785214946066956285367281695539281377399049481338604569171537769038973663545687264210769750461334470635670303070824108520145044943274102494078099719943389256691089089212998044979748559673449001634103077675034649599982318799291712753958667601153595899272979075649333901763086374936172520140592631736642735546207578176910136861388837233381052956942731499159684990612156383115088051976704852472541692141673912960347453795946283664152814431394524006453464600816280357031731369063973621508215102667729189509298175397847377135023319966072861331218100751349135159243984884879576644646037928600095987327413592083649676995429782629065233173046674732553455326664479941717687951122407772370982882254869592297976594620520137758027670989528763944589409675455670682259255741764351612245324576039237392888296698778574788052434650984420388132085274844485373643955977083281683316533140907522624891120572557188967878753550761010560332650374924792728760087685912291126873003707866947933100274695514734439300975634416283797997206489374759721976804358935955056667244618007112842745534372158512970093094919395226549493558086700494719594516507135324131184450610545882049278787956838109443814469957814122447428541003129989878888918016781676399043914927124085405686246374162009988834188426582788978805714710287725998894488518873988486183188947516757615932048190465776925665941258039872311032954683732536227782230004793639590323321831261885171868408228309661497623453550723661898405309584071823727143372607042037226419268879354887394424133421637177792471453909659884268451412841784950093419399784509593381746900832493787868080171364906265379033295692134108896880110947290843699875416849002315741182055823937232708767729085888458006992637987198605307590800339173462756857737302493435336233057566283187638470663848736461064522111492562870059839975435587411963765485981578907831774260243591814212491015116056126441355765159108000859216011722617808100715884138579474050475618413157011268889240039713145428571341989571754066626325149155309033122612193554243394635069349810227216609409217053283535322985206430678394493361213707472522647105794119386300682571008439854226395117002788784366911285199723016843420243505545399433412608783759914722490086740831388581807363909364812370001573943291619035210078682687529027582006189942687436687814634260306489628335847529946172641311392155420370997538464913652468320009030272757698578428833256015367038988490421011137921056027921105561858136967484799565688608045590278147564499485557490191088799715166204480441653171566603893759150236285747746933967200724253604426418209730751917453457403208640201421691105841491244763645458430337226912034098019276416306629809694121897144578497460253736841622948219884816297052259429154137957929646994186249206657281102206956428947915310321225035140422346987270938739765351138539078289373740142055449441550334464972880276200497847691628820524310159077792665499588565265160483819162311198584300635152404147504456786672633631238220195952148406149708197679683898603739776430835627727772160204024880794699383982195168563874167787105671147509223401808786866157152791317802477179218854221021542292440638665665000260817071501877503535256093815104925450073772950405070526524151139380072563338415975573557317207484425892029958725970433318795456709790959459986956104949225556792301985357301596469552441355974781872853172016804834987329338726849700403156097667983246602080438415929437008269214814141353523824542418856420658106992204528555695724954322739607551484847901606352498281779995490403033227525313082829554773648298688630016352882737506577612106565031535689547185138379203846799633077757825057261217451465333280591195504662972233186318552960827399541829874350749059627398208976584529874462131380077191734509030042667018252032126249402342438115889481941556452262592729070108863328744209427083894374326241026019587632128444159490793622024748480754127147234721587750975416655969181327547134122043555400663773132229599673074307181980114093887988599954834843872567828710523599337403278743390142808776313581971379326970419608634152855551414566584455239272433207651908057199756857045053133402724552559665598016398006660468483077337810777542381261021205444003823591265571498212552868049400545700755234256934828660440691950958226384228402889782757082167332352594293960805906061559257517372709342691968145462134762247509463699449782237275905254652430139686560852387615711514760399812179893841552729428484166626875094464635216294564328967792330161912648420716579965522197652012713588948720021306689516003874369160953492786882094152567698743043100965564565608418744912863754626380691404195238918997377883594446992810159516267245944530736059991472444891504796580027828434527298458236142619521065744193656788630422968074522932947421727932567285134173350067362431551568346738741922706299791381225224002205455474570878394432989652135645023470651642746998893206447063819580036175706752070894178249473997056218724048018488791526746814884440179686152826698832154120218655827759262384830905723787867292215719522424888371981296920850301564019707856362634680303827476624259622459019836085949239907057083960986200615231673732746471630693731309752157769057939884631433827992071946732121819485108556383769855154732404772273259533602149043772210374019792230548780036335867702884615833859476375249492277658838907707940571112326922390401193345715983251697448442637964845378032399148023042735726374698092374405421634669913360715492689318035674078660062279500068496520347345894832885213467289272516982140925930978204857141645214093234529580666140764880068442246416529031575304568574630095523397261191180813125348590149247218039084774390713452630989900325166892149514594460149686656930663953517328449559386793714540816339516948492897151425072804825223984763278521703095846616702061883774124292874139581647026510041552793717564855659132712982843711713322673128725476250796564940367650626990288957435725190148282667915936913072689467293878431445573359308915521381178061453140948264418886195739001365448159932279511789000930673290109951632461036135320884395519542474164596986793519397016062089518233046935970197984049642002464031887700131352106115456429630050076467714909804365972552676360718429409363259459223717360017123441061148794899442855087480141939858562683978175119959883836240030877737388115123310797909963568378699651648726674299525819271638738357999592264697637502951882629755048870176016959272889786056006718635636196761719241382607673121092393484270447233187011438987301708464067506066224991395184500292576348910138363689968357634592833239781789326562021174296360720606041523541670270773173633100168181113989117534244667586961715551129370635176491348931121006897927813901789197239418099650047985664919595779825496511592534983408126815870177840607632200581957127492113206968466014646590231180767269756167427863792976835322536181697690967826497471791491858216176096687200495645257956174460571436540260251153630927700682691746577378639730020736261107863254652923901262603667744193629598362717911375415141458722123417920644950305196378828425320052721197120127860501611882920393410368615915185377017949903666188703664859285109796704385420935086743583373673843789844903737169487004468108796964362005133163330019749966597136658644159994884060854033101631180645941651416062869951464633856041222341883955540669140446085123814184801389435321370148028334621330284349272767540936395420490835931887325967581605564063058223906758519123901231055294681366010075218179409293327912999233466365418936626614497656006885156013514018983258472702277355953774049871549146932100123228350398771807787052654867734642108484362939720060883900796756441107131255513867991428143693134784325122746347097705436378060222807260867024545555333066704450849211994470195492243620392583087232369383576667371153056853393567616052823687628284923396430558876764086908309392562532723594842092753846849865481201754081736023698336329174355048504358505295619331991240094614659178861929158223332314142282471045462574121789225053349181119708526085216109275623425256223352024864215729982177687622537225829861670685424824092711707061375264447748141080493670140257635049761214661473895531675224757170531901519313666444591087501512959946327694200119313454645552428559397066545021162337979900171621725825901111052095399432209718451222083892380547171397355622848641214044388039485821869762224934562045395048145561016197490017499547702316771207595657520953577208572702015067375242581669015558727536026935628492393847399461479535229628650618239098744526758411135062641634241463426723720952151826228307847637763121433324097502171120825017331393404493710440367743168961302037622665489507323666597424866515431500864993776708880976864146603392190877227809317009512577251949578259449262294890175793383513176551023111618815830310218402346747082834239767828838419037533234710889690892623754845666387128744337934878484469384907234479016504770435920462072670210925487947990825428775387552947552155273548424023620790630678489333437511232494783145882293429749883861838317507971784121133852831901371545421543944566665679500479193749542549455174274131523825252696093737462361552951737948675732500696035917660439461784924550994325417504025826013109559559029966561754095357595617916878913920419723479976152618644596926262253586862268901482035316139326851065877297683004566459057856032403567949857607088547966467516030603639292782371970060421052147746765545179462033992201441698729863834128838549043017504280207863554034670068964044095785194381860389919440257736317384010692048602947996706935547401554141495458750422080227318290595084101720202035637432355144276186013716679377227155011846319170180762683035497986954301007552763250460495947378382280778896445521953927752537618851381116070515155017188094249487478049567311708510059609288419649813414686271497423457311194587427464769462603898261684599347954174249329746432601176390472491446642221702690022096687889584360938277635850932520742667391465495577207650524668481403537319985142302756152527671721992256962838128286886576729856341608284328561592528470129973070240854464048221480886405010186633088112116993036588722230452366747690108990479928314459119469658226968024269540876422307548332775966735719029061314814350638332545456909907101731688432758405720968712765394267798324547067167769299243889958477412965626949081221350739732579357080020790108014889344698820624748284891714401108688703511280810804444779518435392678854042655013308220112015450269755719255750578199935688781375587094340365765203706195369882727916466138369179086020725161146333253155487279444030893268925852024253213604489349724426280002707297325490470695350715228679774092504950028824154811036870393922878373354076345582839221863109668649179279999654833640456356909369102060689741356940335917113561331759653605877091863423487091984274657126155924349992975027918243350288316500026704011298009191965482742092432066169313624873127433448296199423629955779917278951496357174471003482237873900469498866178859171018753489472805245101577557938488822856436713949245068948323990431269126745909879793259749010902789786912466245509139590116797026906324651142606482845631278362419864816901462055791286960801133622411215820552266570543438621258574828757133231055301249356091456591692132089073255254464132480988449069920210655170773776385334435592250326231298174413560056264487096499153705539997960626956894202700591498139730839490469072874096615464072520961137638684308133865139178949118986868894584895007652645832147127187264653194440362497667325549988946576033678665841835605732826750331255433074731107858209732866821913650436422875204675980241754039595296851971276391205646737168764483863365046815331454461475146761782193490457354931422088601089288951605997692169457148686185406638433104306535569000815521062867826630355361265583797012855717628983571053233859617106911501654653902168801398479902945675389711560887178596851992454461882294008153287921187240934378621869319810821690302938322972503413346778865976908426814777341859762298235712907351893417737427466835969036149309063521974323081720205066093385779236198121885033367250393651223519317974079722237804561715676455016217608886244789105546125213514671487836565365395443401992587611708104239346928772691080478378912227239192216075781975035255949950093520309706177668492574095838664330235328522508542441476635626186857208363721496312563091804388621203535184421048933167529449400884349684695904794764606005144383136153612401865143585380999306512046820377866784983474112574949042606768714739535339802213874490942366845080759912048606723092308136146052010823308119206968800887348485802378682791114691022445622291660228737580195387080036311590720040786033493394384609959836206215279643302037749749530515881880006091164885180522605847142108197078418943681849181055951689731009485303846147519765274180101585325875670020094092074336726416080469678692142153712736766438590699801005890583633271724650135113422720925045104942643420423379816248285302024695489497598022592754724098080267640721576093293384253291989097799350357102345270682979053160899172121303239342040945135462548116480232776064147151829579497027685831539907128356589769278310363063865893821791064796349986663944076916991704138206275852237634748030826450444422307974920884934948965037687287924626797331899945049266764378672971572954629877477721274499292758532486199755090630115094794160029126306957776285525814221877781089232953666724078475310375265209033524359576531822522117367320886047949317872800482221133461314425713696973995289398600643817825405851967297817824864928037494601682933318476686249680563001572212036623078397244308135993067694826172281911651656631086808002972596474403126669002781038973707798689472812711129679271573288526173299347123978606912482977540374062089436386353311315707876697696616267489778371093257448162323380496863738214187099272024132473886578312087687780361495697943239028159310666305674642547011023229492360026063044324841148360271777433709358597884287022360756118047212967358817856026294082897813501474347375156506945377018768847900333394197941950669725175858452942805455543333324737865694893443450192324494945504558052220140901595747229477971148644871851514044161732849510738038629226236131639245478841400792692725817170534896712910743974058113983850557121986054458237512674420413227018554879759227760721311643850162367285608175826479130180185748282198701941446207538610286685942325982490092875178186339088090555683714424011662589144251220752131497496580844960979224809495959672172147107375209335383260870900633040226611865247476924071188870075648063189628308801926486847667425494725072542364568007055229040038084069054723784457572189834595613184994810205688192979819793056158139765642330909326144714085474449824019035436210705049756969031926335320379181050670069965637497250273262685917927621119860079840548222975300820348761040857341245830815309585297042713520192842515735403799702662504998445720043257952943165555015992426005123379699865098609784194821399453502358354870209825937260031565834904971313566244460393082474879231692554737556005950499083987661015200586725155729459264845613962184077983068636711070254394219951927478067972394465012762398652396570650723295961606397148818788719763333612787505781121621538109922981311948622244034066800922670558878613212759769975140011743601554420613835436925941608532898087507790750507458065206578902371325159072625874363787390607825115084066850536544676672081501831621756852996950263733406020525952897251005441512303998363096976494797746392671439756023295825793439227143178970223082542172339089642218443427295555735898522151438570440279618262385871828792039188531155745089121316415356454973020918804854782447966400695797012184895488718552524511235847944302797246096632655067253696541336662390010089235064131576006367614211703587732708633392138573313833196585661143166804064715529389658113355141991322267984452846147411455101937452782780030365812535972093816154271344315616644716585927534484892199040149256184739435577714935410439243086747453682813025384401068759948903958270808311181782699584939457450000151547536712067367025903326508749619117077564235774671561047335276118692894920938567024932497396883656449516151555996350989669886848883746042958288695846695715549406476750121968997576328023872964369542121319121031569756777042638019821810722444117763559703485147791611161629373405931730316212036358137950542868267850936554065658097169886427948198960491280509733853272985060080045167116024577381135000023123568308225174716848059218650590901880434317403896328849074093100676992843703557987580410837798768151781674375473114984132164903603733849999388166509115897849739642213473795219702344037438069963828120783247590019797017484389776809714112563923453340612239934006063366508033052331230915154396457529138872827163158347989080529900170110962623156490072775189692449131659964663486973002120620491573910946394607078868975883680645160734987849522763791718276172885006322708209248355536218136659168723169676043334966004518415708439950259120883003174246807724754448598469388535962994173646308858343376657330736985105872970311311283970231659341051730745361603485090581928013125585396835695947052370639413537033247683389060293064781733834468078651903351030655511877527070324127110302851533326657495211833017655071657171159889443797851940798259639605006697952181368245760699006120941674014325947664624732472006757050074301289559290003064650697262810425189609779100142352216804838492728261119731490092287674621244133585831368731689946059205534597066369052551000290043149978856391438565399797955026826603406424810508211365009397507883415381594427673171749485069498416389429755954021765564958773341347786236456458127222081956214725062616671651892997369760721903479126725414623440092627399822342987376359882685947535209214650159499032131163639763520871094556944378963318043094054038357834152985196787600983772927651000643496628645357055762080012599329673246114382635617078428207859358761521564035405543444541123699589882239665987743885622514267149823693307207040272134180844727221217031453268503873009020706654010593332356863059093229129229711945293322603280497259737638577241039196599142958402391738584300461227668212543336012792540289655721653312772529719186270688016970379838075077281667524964493976831182688422450063105527568794111978342378525269537859919249558459092726978299913563007644194954539647662571395908853578244662155350293818154142713861114300010981079547172813665794545908860619725050547487641942910077933573764936908499900879951113559642156709981022389146842007045044584996827046211650622551796599282364235040369351319489446685647849301909709861515300489054820610879310648742553157652197985852687414062698108662124672037378231136923709290349330376255637343815902813510899660895742902523336568703352130121905966484419812128178162954122585502949415534898121669896729306632699641458534980821410112530326251805627124031541537191285320005678057176366925609356788780423874780087560600064861937860139278670730075857842828269822455886316417118033572434525621711097756966368974188117279397371956035625373983577571611625279309150093365064526331049761193839001892559405801816360582718831915547560279184462154933419265543463445833580253123849017848646027686670804305938437630017740080289121183687714939915716082440523415167233573754192113960574522054702940257654918017517382649193519339170535154805981290118213050888592876634105175085657049202287223748291853366993876560389752030979450138023382829153497920332188926983340940817009591664936892394575676121946074129266713028368793797486467784465144967998521188394903740885838883779624519473536464127281041476492205642840647282380047272041618423861003710508574615791118633015013399520380333730127032170175762440335911579782360418690105820804945430263921601497257907625135174124043146632096138387397711745369966998154178676545085132094516687503274652667930443137773812154829644003046214619847153908802322257372964532483095314069289901767576709462135948482725032268441557409304227753609530746325395289858140290171135276101879989231166078003726662351851842352749417001663737482146851253703857532451300928636885481693767811810528922317369420944381822489142193784923303106994483328454147797175751643775797932261871866268268190503064270410597849784434175560124996579502238167993608336197768151636895405904078977554500997137072034315468442882640841559787135426815569135241177580448965487383334542445489620397870287959735126108212484320525363262728997324883330122424747794345570732475971405995686018358231760278298063461081932682466875978660314604387099574488895721553137710811793776900758530140632361161507529568190556058702430826199274879194718305583590280425523685327996890563577561423222471537080429952636817550071675448290436277360292024021310653782623106192912018733510442841185791848225122691710982474806274450957220623195584919990039142451982797056696679360952322797564810298206342061830237937005583035511483639605825520407606206417624045299549314023595970936956445940925707365012839551522153882690089854872513603684375289318684703750456968298983867635010188512667152237121043771496582542474487579498657179025153119801959534010253987656472742375376829640040485602242203719365152501013521630127298326224113346291548354811972143095508671644731968042826548351380850902532891137019915572880570297584482076365580634261841687920526039839047889598733643855907608740936926190497367813518565432398153565977809232671599538239911309918032983372232423636089454113246762922697509468058500888902245937409366974556190931432910262710792911047370981263651001913476896096415069905597466981494772117155461202290194594298301498922638796047051544157723136855918041949519513264575293964061281674064793648129668977498748807313429706272160669187133874719753938019574058564586066880014146117129420769020919664742000748946792825402984611515496705534542442304139648600491736778727121997183009645423378397385367046396786524536832823954495083322919365192272142668871431454520073766582462466378080978556568986411478710967814632006673390207819429049066044498776220857849201105737236144657114067132630688689404672827125850839525455938402129179779301867603889238876566506215051848987881361672566274229736692203324338816765775438776143945639446575108215487850975488394935272623636201918299428906773567135428397014759602154725476809315470350511517502632946390342385310639751705574316520716191652318807208584650410036300756688054055228554793396718069207791030862234946707029470361422864254384661107817846427841141737418343795126651122840247952812456483520787158044391293001539022765191384441568849144716806221401078706914443088810146269947320845413322113950126264742221803084390864094329052985901427523561256693177226560681953290999542997488396068668932361570427727178388474521702052491817213124125284151098636673303102692048788153378988427121662511420436502876879574797909022470023629774790737424027399843299838337209952431502714350795567522160424463545816113305203341318786499642448748368702977673500409986822771900171701229950043971596061045695244803621379363967421672664201963892347135957618005056498733434130469910306258284276921069899648922712335063912667831489359877849676461692776043161031080741546657331257147802596970308113224170865634228115879553510187571656770132712575699588392831289524902231607605882834180199542022090212125125779509658229777235290995640263844980328341772200097820325570263508013683529159347969831757676836220525837818901290404256305541560132859716461741902231250226501889626261341509292547101111955717420083342917901186243340419098164261211145557238904964656668184841640921332233894920286595311735392432662419843112721345194371284849059646713204180507007036839017788579976542780566237040108939619504619990863092622581967715756647934541157876799436580261981281195445525761269938350232167624277214042965678201098080700185053360391718724350955577011742868605244503721914519174205299700931295867011656921320176466611224255689419385225434765120682502353579975181333815354733524081669895360755752662317250969845050883390291579867855684734561863595531677829035649663875934249753341904820936808779217378689592204281798593314170856901755017876730853629957271322863568131529715742349362665274658538954075992439781874932796211232101654016758788551445801755326013135024296783970055647434761259803480454778764719974061877121187611673469360927711826192727610899306817676750491633773806598860024972594027239698635804430887376082090940027367138135317282058108710031060693289573014090838051557251502867413421818568498861701195532003474316640751046385956479740728307603370343095372265727490449914732512402631931691814023709553767664286406738592583154887572442444659132705958305205212634559668954318701527865124610044321663899788436409905656096524667554053969920116844690149371358580717188146921808478977905879744998642956368564101438923144888787293092187590522700549849730846878109437593172383008438267760678095013316849523256299089613452580836344438268852563249901368452156774477159026866811434393538544939265958533665768663779310368607117556589982041359153245192181624476738820748561220371088952519123227344304340600483139517924777086264239022120485519931754564904890797759359928224484404956384389833491764540723966895071640528712620601108751103023968953515019699709597754912036036981932082093125572443945802776480520916355168451822256041875268998336621506444671455800656535716020090942739787288669078254726914222986797704816925188989644159473013304534145091605960781770006497436510767266503772436850685009016907372797742572001141358431738764377991646068257382807666032551607281338756921639617594176271383492545865057418153138520722638263541036720453995905169336443531261657396002253862185691649406363714620161612222736584221847725759683539937459963261398622483234623513182810710673859004584132251245998142344469204679182289938734695540316270634659669818809324299278619407345889880123538271903895090447520769012326400575867037510921695448846837927109086763236086544360123131563462358159935910021408335333259141030336576109653484858279945221424247287825315887308112735481999093443141674426836940602515867122808464023537390322674466835199959206218359818782595190828729724171497352108640834569482571602437048975925267846190887178654873293571091015787724376298103316861020641162806697663206180354487111894811963129253755766202679728207507461685170659531080247191328772173294974198461483577533363982576421380999287831887541587284392796097701637039407685256480806384730899079182999276883650077087727359916055149027609796276993343602767496995124105315040976939433969400130837508235154146433457502092358377177419484005285602514415374242713984221300147222928895229698043501912347650761081527478703207651269923167291283907417286848440693970080635036683253459603478902846598815188345021447810264445001026584018266886102038308660590488279429165583473529941769778828628677124541106520435730192889002645435019822722003271357657953243191251565388059234403053443689832558767150524243951187891882940066710569039823691431339289719242573149138850864422517815612370249930637114702503305614017426313719692030660462421477382419810801673015475405136336095211425942509755475976167179892831207508990400224507543375622942023919481237071666297396435805813842108309136085429115932450818899189413373147135280450768732281490276078363039719740620157281027661092006855276270470076756939616939114775237728874362081824495027706952478388715937174685867319732805002206000094679713773967732524355093488289155144190394809659877185095390268725247491170948575076167035725744288949155776050867449227194286904989979674979937842252245279275338606831950943325544954861495981393546679543571111751134699765533063362969021446250485342527941931229798699562688940024722447569597373205868606586251798223037569401158539071500865080256768177628498225390788090744849045264978404546421246053929440401457999776931559754758108570498609385882150110817781058019966139307908930993110589123383989139297161954638180416403567180585994758281220509324884208968836642912211002272724684235295867071331012379588913766061946097231591693672023056707562910873108826238536826181696578793843237680672854735943258672162680447220821648246588567419586169161967053577020127071596121408154738947142021769786622461152205535263984434907496183134270415557671703527640007142803103665079256520952931071617549838483433396294691722278943368157087712330244042686298067151845296310010700315048202291420178776644257809961641625882520475355941592086697620894405807960105740295124854918348912255609219822890847492103723956427644839590122400615537393179651111882953826292827441306688530612955700663116408032045626466899958590857839121616827094473953961465099358596958801410955232787176996278280465179232544322193955724559560027697471167116652582472994668931989633128737551038299502910169452900947242543174743319594160505681188100488571710512136416893971444622627705842417660236146534552985376337000412433634085616224535122578048169910248329141535234507970995107680120185602327652399812400215281372823937404442780074386651853214595771513270206019009823285213770295834287823282237270037471329734721745457541289921070809692439741081950580595373890426038460276360981458611618021885277273313756923059807872609742181239102288022362011174676571827944968737369563077697352278521327653442636555566247822282583727139483943479408200593839241075448047955905283558590416603473483661649749816526284759341336413529352163465711403835114131224889634932251166313327825568956696260291035852416883397990556283920577525112929196571886241084048682283142404781474452143564620515977677126790716289526949123292754729071617672738374213812191906856966955928679059456694361572619973793671065583238121373278655086042965197596572972770332949093124969622241914974088139675121953735289062957085759443258580413264895097311526752164088723749471757366951000540443395192759124993260422858039168070589437457082058741110747981133895651936607566713803830238064207226611342122933055082517080920690661041598141631014791117795728859907332027187259120965043942752558634241270405443304634467177120421579914420837886977128736965774598034093750722835549456296245697830216192694931074521755537064926004005512397148504201812318322064918383475368776608035811136161368498219869271051726177532293826671148436580521404318481548460029070374781756952395750372105399626697119991982248862601450280855996113466421675368433725228337381673215477671115851168957889062520000589938155234453690904078039094252502506326271746675323569797815539290241635831664965133162339110931364393533307233363959369292251476747117613928117146124267293348600814818725592427898969970811262947609919372224743411666781093989946137666822849847720530815038645406275186048126662641744070992575155681022294554442342702259470827058476408576246757792054974892174918300265629104335226526116343964418349032734275599133598563783574743589984331365199786002538815982007450744271347953120657732422376337836126591929998181743646577593155135495266795022416432966184804011385385497820034897770737951384494140159431725517987671507644015564532629017726503357993944516656889163630871942234764737872928613557267302259944906604295031238248051069486765803434309177016029828572020247397808909353526506411920483570828043547253775237376213885663746833009129251786075119491765777138141094226895382329396691453087830949556564814820831205214700819953385632593464112267259863908352954937750640310259759298248913330289057763257365242500323880801480364927605327463798367246274323675798063376767958865883566623042565430717016563463349960140007843490714118379398791475647505976047203487505207774679747731767878197478477900974771343112172459442510918386801160241720138331358185820608903424904538176969044100558216741583480406081338856174343597778758938402546040936436489850517415779301640148984046487947708962408679300179537507838628018469299436765908779764914628349097455175261381143613633707367653966123354023214990717536311512329102483093435093599410470352100528606629176005018049041797739672788671520932621867967314743345763265134085606200078887074070055088098495151611834819544636077293194911386444567928108989086203168344782213023866201906300018060944154333913162529495328565452979060118525835367407386298049646369277335845848255546310444470272382801426176052105340752267335643216970759914785289817431947822988514529964728864943372519807995843829641843726667184668539118974884899971848982525100603867256909173881999005839098271047162665517750161822622722371594263106682764751516814874593518333887849062132534852026052701260477149254848820267157277520221156725832134232391207476615062566429331873613873389962736607421655795052275177558360513959524747119212715934696648573865208506954873075182175202303429752688066206293059476257874446420368607956713785185782668434737658682596595886553948817654057935893664492208877568134355819202889874637085867979092124945776867834111901909663137544695494938102261652856713293033514317469287297232155157477458091312603208107077934022019254437844702606781293847432059480795510918977944429792598445260919214943608374465215593299915407449044796302547247528582531716939875368640465198223625198516061487338182492533189025850248562901906760587180363432608457057714009421816734600529641167875747613574421396880245898311485289133084624312939406195453746254407015312150613798647796222384736154269746117795420855235593231556368157023608876616673449535503429802953272866362006482238794583257944982034723533445683232273311560781408385820306592983873934293276412692732521395975663811107843651037610549907968139215111960934776324539380198231990374214699540073437063328464039462776683630071945026853253294571182272727178850254498416546800591259785353523237387047808128213397652723966091162642587459421902610995435281376673720430891832298562213058268034894002182663142860729732496242619700350692081340865985458158788258790375320206588021917182371733868746578235023432315214509832731135213152850887766073067573330030269858825193515881424488941981822929690352713289165316288043149095293747435390070711894994955304022284228293651448201818185670212148800880691951590299860679805567991682744202920266741491926666338361538279625253536516281129632638727331174812345046833674237975791014643293535365059150378472900982492605948925666729687166213357490546144273665357345661614892799796360306238370574214757606201800797152011711846170237861611687137646563187916407807636953431022254704441484726423744707769481912518447891000786421451936996040742220219929466653661016087897096411808212128330831978902563408542341075296588089727719324629144635714618844974795877652268080021252583098750855087225958084938541901781808796727328653910384345788964100129795498920179131365477195770095291760292872308363471995903818430519241371359294424302311211155994036276933180522814599236670723210360299425399150066289104425981201771666068643568462169986845877014959702613278775274226019855062475429041787077747773325684296333693891262024582796627361661174222277751150479005044978739828270623923711693398946314526566291922097213711392394732737746107329380627784413999319296365180429179641855339672990138134556134137990516598081526264980902751887684655909347031545837031370616592438387560430270646838922194096398249195130992529333508655896662780046110890783788723499285371447622834621975668282646983340035170579432216818219200825319834224539216408626819777984364734297072704644255634445831193132832678267398997578974077562821000258996576832625286586174770948155283966483161438134597579115215627500916488641354711433141485493232774525557584419580409500163888497049710609987702432980468735055617647705105137506422360913487317553307998218377301817148023323589746953275802600639002197246192061040486488420531322094865304360882589445638005232413851352350587590211144081227620269893928442786512073806052726935406319943572106994475569735596914225946315276231937604333604476381275468141560014118604784908739275460150975647391464758672820504063342055459814911243833819199278665013482086569652221129297404604043649425937775149210645959996601712380547985672536251254970791998028580040892466394632240274824633159692228592590552328187455141884332462872811768261235974580482521981303223908713981701372822406071171140716920479385097863265506435244405472838684798088668286100654698379879744094871760886797924901646614022057077982343338099506706386763532624704439101517082507302847080785660794712351024816808170260623146265921934864525137414785461406856141313701979348064913031944426224503022277000421084960152682992679846869782992411275399533194567148242345586606038830371595349803839403345184179133369015977614639166821012197063893511845880382198035623420394372881948801463299615783442368633266962294755441886273308967922012139266176287622210884517441584297753181007501594240871093622006889227546486684295710870298985235412287883483528755062776264154299527800672725198915835802609484111602808372024809258293854370557409167298359737863496581870800997007495900907771845904384111846756907860051098167559259502296630385234721671610104451332381772985314806340594312722527739641585295293003564715214522140690404912801736276492744367050834766129615538528312021436365940652110003511998904171572566485016714002896695798754874669948766416781552303645632872115616215410434474152730135809403807763151855395528112660408581005122605821498831112928463600334922621030212142504754799951340095894333657171379954468748012015248310557516716461691182912064647100899688020256146829934712308908023740882224495943382825293225266444788958937249153463751022520493544011019164706837047012267742746498592884202893028335060472954871112409006057619963716659718761582888781357565777758771825314138964951992994133980732960405231977662202402804086582021859659863575534654320624912998837777417317592905232279192575340101932259965179298500975911669320413348997752498452128412719602120861551022225696606496167613314597535514454717080291012281548276097300528754693020206663422642654859489487842190589367079987006144255439974349343418844847693496315915416485312457497113521097201356760525300813087445912071397541784927910727749964984952510765839864951484138892742245511745882617825979781066863761936250010432012437027826660403346874951504950034723995992861577428960202847982100967116126724442704929154295786021528287853587256379425814989711898422046416939249044067962039281467494368501786463772256033052795187049333231479026157691080460924484739373229206899244003453024034717684027676129042953917188793589406607340983585827682565365071745597356746746051665446085617335882573862199042453280823497137432372880924019481381439716661745149579088080101419960012508717451954153163765554224504258893230025766077012827556071393124351922581525332951725085672436493291885344765581895914650504186600119393453091172912518060516749886435175927834731828967995850034131745204418866329368418537516445476853404434713985432936506882511388203423039713700899981267745697230461391699467419135177602424027149943746624705923702654509168631593099702897811113307545759708991683535855713678126569659296493233410187852650161025519335253486054878438206372747825933747830278089032048921542318770002374478870388148475800183492506198238490430047441335765303952322656369199624985508890331113375779179903946102165121516158262665709713390629479331743449778126102628755425755720785288626445461681177945019292115388881339026995546599618597334270583712347544988305737407574705109941007556934378330320068609252066260568672278211097693700151658443489485185192286109759256364893969228166985437315164709899002325615139326010818416192611375610379450389797652569978077250984541644822356765621157295034113797499961348424632873964037470356976835408439584104909772499128283719858159646348319109905806091848388667297940045553603929230653333148851061035811739343657646839671875875370976933309021824880459375352656899740775444154977598139398144212776031738836746642013534576806511274573968352445731240592906870872271046293495774810922369637856086727996437713388700373049298019733966710114155569506423147613006607679146768910079358822327322070867453021539279210897699217721731540337841682108874882648487885278785721932572125647526149662882162617776244690987947903107288071628643406167273866234972944351791987763957757393997534149206530599614605598437571208262673140235255573487099133483034689714055141632308153065111175980547943210318801543188228169871319192632053558022698221040565159442791557324955676420949025450854456066918818285516865474613098823770670368468225908593192511524745041051973918255783313801358304518910631944654451814952093812105138930342640559170344408605493684995423895630733253719960428514253584103189963337048313429280861323558844286220001724282580434940100854497322609953707611918064652862123087938949543470495543671414993184104700184602960304628835928720749362881323641846638186047749899719963572634455090225555268537375591403864972816230978813695175003173703745423320473932736470609309585016126290643063707050941627172750274639270205042204859153487630564644233466468862068045701934510555320909493520669383391970694287626024244710825308958098175207385595829790625574359488596409143167041810821720429385444176132159006427693206490821415194719464983687487725316256238563485475799739134126375633509013654487330432839145539532197334516540998945753670849698776611558110782135567069160276212360421097108943547767560283687132546651723244876984063768880077472381119012345645530130162343161779185209580427382762080939281220602270333673217783444351545268848516932578342058993565785910101522818745404474694839540257191386842370471235207769981395710774257077533945928983725034560962071154944276628609533657324736507698920494893511290871685812186172446910031808057224016419282780587952845874983334144476804294379804640625169623664379259411503259356091071717745234140004381341602257335688866756041115489809384073762165715538675863577041042597558955329980156083824181030437205566687276686886668306397639228613665617320517664173906131013740718340851796916916523504616032526746613596177243548804690268794305389496824738051184644948510567995923262683776369034275063596772100707823524609374344956365913211888004628536242096768458140527636549045486422701570562318969105303749757768929787891734053492161838316450928832738303265593012581721538062438388708347577726244605506658573113096134888827258825221995841975487615332699594715529857186302557749642034566907806499152208678118110052641090860218662828386045215457512037317945370032428711285080591215519121863854970823165198033518857178548017324017250901867612712088007783443987670192239571289090749343420415698751388002024127319584830643771033019248397099940498127430116230910799901342816316056176121649935009144518323247677850016922573574154976390709411193172101917216351037858990401195358788820330013476665707436859926465165353425252393484314175819383445422652792400459063720198050508149246755402111236705904553440287005862211283215774443455803340667384980874999890812921937355405591299586619650666483443274400003105509863355321642380200353237004252709126914162966034932175456379809514811678316667887118706072859093275067974106932454852757758937893202323382368458997786033083491913642462137405527329329992328476486823238929383182276620059905164423623597796401090628972285638895869660160464335172663383677204316313548057695624695228844355588860558087837228203924005286494644959486108781600509260162968667579882375751994631142652507709456713886732135160789047188805329945854841620510249038123944304319222246527969764051155225227753470137736706227395135535799704236216825580156216253413998517791033485378083103123985854701642829730870640266363344286658136235484725809411245029615727482170764850542825587527037133048419938475113012581565616662444567117665796946250757251437371420023698780649068053853099280322363885403089327247023723127873630244157139971621982686865610001233044898728310916661013455659663848969541192523510768213386411763841853697078937605506991113738617962667144202817112218500338815161192232850592199171567602066629981365600958353550638604939272583353609556673298238332695378896175950147732098682618470701472651135313019687306883209958576406010661837426743246063463164558905304179212410037783484341935561402094699846803636466663809452189457855514101623646130367804035275010288030965973767084261594868697360375372759514707808043061595826413514351990748681522471131874001646999525527255682415812166429207191195310494586414101086572832683867079781962492586855212710495698340400640403634516873284049516685249380427976163266547832228107624842707456365565737180033232743852721184197209557813551751197497120968669231921852520183318406662275985171780603602155389862940611433818611848237875142182133213329656645997109775536737435933826662944920008909710749916972104335020504038127618306398222026751967007155262002473763173607828196066596357290829051724215337344112464055801717141594283212693782061741794026349519314974941748823727754702164230655133447041521247161249915061081352391007635443852265949928858820043398018411928171676623038951551884169563921960577937284933693763149342678200201338262057318790051484331970979756715228275618452343005783899173973489749851933390777615846240257725092312597042155731006798690667820918764786209070583971616849441268326789729914818887240190536449574003998142609969586337777649666497476881045922294557696506875343054347048889242993242862462064160498318176416548184997274624685431640412744931752823481730080443748434461002838312962556438681092127439670231949720785992261778026403335365912939572248001343655907412781804600760863767160309234599315100783663994757003851815981835585016008864373838404856434900058443350813781745189909778652084214501231534643524869053776144137841239285744482469622739721524227290454891058697859638196578377079441066638016857132472460148210883332594396159403399837155123308793072319378022056899217044761899806150010224823131673401022781190802724673201385499316028244007782695764106840696428261696266177317219769582899329743599301835591767378578889144543591945028430875875362839529245481897026255064154437504330145175612042048948214585903765317023900333585379325828993549168007531408267778818575066733274920732760413774461921540090694038300993256868251268924951139663827044971406382468933127633671642804912863878199353966282940300051257549550754759407660911288843124269413461169447420126736495960642496893190323754960528166051181937848342546934159407241368992605908182138357885317645903706235132791740956289769537414298046999967680692027108091021817270765979332574623289780590169233906563396119621327339064536539082123429406991207865652450089599323440945467585855775239923938070359629156642497409835744012385846006746937469848396626380881251784250258815194562560763942834916624273352006013368271012916700449344150345894314150763424863301605141354138744395516116773991543642575325437623432135489883252430914321547678911146350598644175423676062989514305287087759604950883907695204001989508598190425118271969155867198280845940195061525873169067248454218013921066753677967285410005274259634042245230292215014778809533150297864631863787620818766298040086875393770068397294094883478158731264484913096115876901752750180200531063679230202153882637509087717342190766384928462212604064093142533108462974259866397024266661790154948241302886524033742115891776734525760406942385825925157713330545078545596766574994921547662104602406637094398689645671115975265175165650595476623458458858216756366256080386770122103565826220047377023496991831681231914047825942466693156789831596783915085789322697634338415932639155134726256920115516113057906654367098761805608084582349331018008916863018755479558896611314880803149615107268990253330273016198451711269253068886697737583219098875814011073036094076994454433613152408170859339299094629056224906861794580848601249899508437956491285345661853794508458104787594522398133543397377579341928305844429684549579829113959029445221691382278472275864131270417973565542540223175469770208140534449691706948337963166349964162879998376733734152886606423328737550621700922663223013558269814054703580671463995789873428830126782876395575685392040983579233536884443216345279654471712504838016491560863937848503326159316211058484996514035642870270503369268926890560635252974743892187138495005011711201436674623353538486037755737604164016533841404212840112068290618244255920829602900513001092246737111517558307245728635547536364968388404911468875495475643645029712181815440662939041285530237494866713599303856289726989391054529598388048172996779291506122392346305204420736660230976380486683469808604580243365325647425136006317244514214563377084228196780560901790448124963201662409516590119671153282290955608598087321696208713985334624726837543313377682713169715281849800095847565045699619604952660290655079840146431172398683709154802134142072736449951757261305967837071624414182739882646373214192207336531334187171328134583468516988807360530903452045059337941998482682220185560327955211603051317911135227296031290209921890093906524423522613957411648502434447979588447691615963076911620807793653009969297085427516141717223651763066247904323029031079924872973664223941947642430677156655993640627718188275010818865605543690969192657814709690417189789268841398691668372490235920264668858810742268339675515897566571058110286384567560124558156385984051520050518298164189574315650760389784188367038286461399968228371249216775201083617506723983225058077687597182775097233530180572483735606664865143470379012288594742788428902637676976875154675032020702626309270583288388514749487662838713656778892667311967127604468070495617946642362142540159559082582077976078963647997730245560338390878468803483440228660147139571242019450095797342128904903725798641951219661590362351977470877866757016431845265027321578690044953168301674845957637172538240930158022786803323370566359596041508414754074782359988925158030252742793290976282886910269801975002151721922372810197457541968259309058422892716487939397529973556996734229873169660637222093779598407860658648951604470519150457436046739495405280795822978871609435898238102842066226476773816440219582659016910201257434015547892227839924214062031566669356532387711456114619015654751192139326339487667714981969728317967134745483690394319952876910061367526072149782865806033362467222237413454034184794931866097649265759442658774621030706563499804816820797620252403600592711089169556855403586932997830499113017972458652016461635366327866848902492517055635542422104130430729908710859411620424345191415925756064820662681142701984242844478637639125711178118559223742270000327520160129241903110115388402798795910351459487771767393915463957829775099467121287344491287073792714737418485527226195186220938093915300866865990777280086036313991654326195451525546582106284872227401309152248101213121335272700583398153376704359211098056904381753187190969838630847994787998027027087252018593814206801749634990901831369524136424334963604829965546674144153362573883497089198901741072370108528977751209073705808710688915746059084035227290459826381626342631566895236494060855367009683266176157262977429410755446602146721950390174655761833784259243284551891538569955173456628705325584855741878458348536003080099734147055286115867571587686406388619569162812463611946303640693081917276826240224776632494439435820938703743196227678873179907309723690634290081085330007503028059886484321871661654142737546001807900746405837939938575051247997616559074218885599045970691993741824407281773220172934440421651307467476246359123415408644818141006144729393413276815609920516517948768360977793716067378748267696703884327874214472180348367787968011336927399954189019351934785388824284721313577713257473207955871459052050270412025410664762469893424306359223033780818436202045557396104028107831673251696740272370011407171891764671361387330624041660134936989706970884330677489841586479048368006262422033705471865933004736582284148523771318617130662374045417530428202006757594277725884971746396026515947735315330501612608082979227818207079067409998948425004859236681756700987939730732950593427998822095502244398497694737716462075720078552571722053731750339346774564545605817371309322917977494724569803166583830387860027405447261393936745320140712303870971227994209318856416674533907352816697805804220487055477744633947313431923004442926896064620799920919072370146677316517056104751133643527904181559005570819089093629975182467757650973959155893319931082099931396322552965020412620630320915455940696562377224437874286840436562413325792766815793576531930348360172426813545861790477884132742876678370492183237105831008589933098835521813990535571625968884449646338542494599957364214360674772085984992999718916037542480880828697689696034561614917776545275807109539185512155162701059818928356366923404331885673229621383502329884603470465851541630664632085097303753344335600382548303785476678704354077056763114757770826557763811849801556715854246155405255639283959479910456515680829786728846323995646359879829398105505264815413755824135381128273234567279612267418305071468759213517500543937244570809342044106548450441863834452248638460508710002680922837770772147124030489801049988819542546850369694944454914278020279887596563312274460937518493430197283564821602201121671898982528590800555772687144100820748688161513524503532380226426162889795398108567315474471682556496955344090000157618938669271337072740968466163587351431175424528724127071677949383323112834567843351382329019223975313684932007750640727951429733385323020628107486864682542206180608022759743374847432499360803585426767765761287692482454589401520495407472775450439454906519068008731932621840082353635546541322777484175455069609954716445048853112727569653398601397005502158704706790451164774970597470694114726030854873183015651281136155254989268484381563744650957365354892683926170768763052615644527442917561681594812065997999222509846927896500144264876928380000645294208616054335241007423131649959494050115901588637929689845326402453646948105847639138218716604361652194254178539159175498059517840942322481539258274598419059540868480526816805801435509535910522009117000010683467215454052823248350718592411421997761129959811456238412773647948605557204432863659032153054692503636567134648010309701300186539058868689057401762940598019258317148860013107651002137016903852034341237417580963885317670884853221643691145700892497088789940357369003990139295602517784748383047660926508673855521004027120970838005791132334665242733857596867752912878567251850114026261993202279217601520218604226779796038759793398368814433281573828087991681190598903164721850949021990488112601573859947576199880487298643133959719462204160144932066530740976713210417318068860399813951021440102186012861446503318130595563459961647496451160920724857238223610835730812299018308160852676838811604184137317009573412381166533445108533472007172513431156547659973458946155052157581338923628354491824713236452172054952531669062055378424544276200054818959283701378103251825640855001617000022962168613792745511684494682472981770212419524192028995660411672185648694984826966034856624709318004885392899332713532656042663802960026302807137809302396087534256094577778694033373356841000146250859858112357996129646264312899306529827693293640136688520798465710703912466988989580865447555986492735246861485007321204427258567628543554291051424651976294947362251330150627723575658072920300351244577484806210519707162665965940010902224964444567845928511232956645701739044017762434622777045050009202403340141685502864292432497232864170128449881413560672116792944808657716889095548023865623736655341575242481473333179074742957290324356235365961709262097950359675505111921962244574612737381792770482920376721653556046413968131825969548763522153543999758865316525410211555121734521110493437076280159133645125745168012195759297529214087764396027666418853545353226185378286392318535740387265870414653922365353739241084508861741317756390168336627515795712105821868479310107113425278254183035930102576603068966365932430919612860933736469664503221099937235781107433209092619879839105063382437193347542428291582178268112919139751399997715255951928950133986029529530313180869704184049499500052756008181372981095510396853618176622960827305885881081148068184549879966260414805741679838951768272239956702600662021705371323783907517406333927121596536266732137129625660110305489396014192204650366847964887363523530129339287061572073276989149245473137623351859518755134483173317286318192412510234065090128990854243287939105307746434914289307693163935980759141846543722215733789573028500449139080033509049784421531559245310865441851559335864280354076129158458488679586047482087024901182368221522641453687772313979961522498120964574481175353494565098033799125068214989114589239232543396667954250713770622780880495617502198762037922263215366454675936215864636721811495187688204004349291847667280264269752799334330469762614707380001318132102573309887659228538618166988039782212487841208567022177279388427910467867981566333117635388410545342082374512688556564383568661638348844747702910810398124128371696984911141037232195466705382798741472233014433602160022634034939889887785217989911361458486616248405459896919002910325046095125262483700165315777399678300002876330586715035627244932245945024220330486679702274033989605169280671352151337556892049005224396523913567434890145046380075200059584568716307358379450177875686321385277354626751657024784220244601037262404514390286769758507852186559353707630473673140166206744129884301117796496232221380089017583246701272190463841432385845698421845519576761951044590427812991985300741781489649848156618580143199341845827477030665095023203077677449936024431547540993401802473897247844448908054808014088009407309436135851470650226081199613157604608643724439360961094995365906941745637153126245222720775886630690462225698690004427309412265398967998783229071912026251263046020732191359226022427952802362695314788560217276106463722614524418282088235614636285671033958882399848940846439149589400534667892367973213817141297939198608515656419718450489547608658575202522857009698501238184671639967668386844460214887213896391024348032317632153055193327538305994837021767135427702177642884963697308066914636654819845441081681004659569198473834272801117147303329187519985976573704020747859406023828289599416060576599218192830162634978768647227560780319611878524537053693235567621756569813225854228862279563436463675376171755817382457510198613134851276198064847894518892525925126631485274590761816147155873700681229104231376934596406275824282404802809414213824541304224404722545849658377009184839165841695746320422718433055953562850822887771544605073707775112471068873830502201119551413309464191248072718867046785209917312017158012980764214070480804888467143089149592625171359574912027091505641943514181749834873184301845768365171538611545768386497296253971069750813374025883070341414698474169963817072602586774152116260616510869850454088630740792529060671784514854963766993687127857003057391616985284314027886654099894538574742404403367006442309094833698051116600129883238315272271449985066106703377947207976198945740859264139443489317577346248982112475538426849066268449711625139433677314404677906430934766534463421557268949753640147849562515068139849446021753503987107533985339955618822618188296553065129587658647717578306088716400388179425679118213970886006749073907965397399522615265361873451802181720044130731322320094482293264773131173718332777323021246674509934950452891504233760622550334501164916332928941122237918712634668118832458474041521739036911527574911045734817873356374868143238843871308786168023039418163322604697452361645663277212542003807298913378678680542299369170868231817016942954890259419706445428782685479273428664615449702029563876677726666009340248023067391609349214702101021630216960899674389460369096435671190877227825936256454086163206873374261773204188169810119200135301640906423369655315105055141513087689932217305509479711526700415428688033504087757768703926998954403109285682719404797938606144264280796655990010714193325723925249465900337496573872425344378958102790134466204535785873431775262923059374410508352340279865512938218705883549515275527194061049961654851885772520128492011036969918685221710312194251830445183090324650613457262660323361460362470501656064343667624510440142956102099156197019310100003288382668432402866297746450918455747785765781565653072949954767875110233314704461537149772465149050429258999584658385316653821326524095128998240430493147265461473027800626548419955984153227830776464398507270766458578820250721952346927651703316284256475832243010194987139153022971244931840304691723157012562514259345669950966804106449258040740398260964662503841489520040674082838635285248379794528517612905122183258774139084343834543394877869356668226108511169072291256755366930854744112366562370657164334375675221367354290113116574973154371604454054640661159260889897385483731882640927283429606890468627143451620748383161349941429778661124347490488431777249625884902715212032275521406299781580385610297038896931432166984096527379175149148401613393624643230846509173910916178563916734648207674547388326342579563515129268959768880477545637280518695460899155634819101351162389473239542206734325007351069965975643602275076183814931083764603183746657121336126746197558146884987913424818077313288569123663382801344095278622847138729641777892744915779710123836744019049316112169770665047971393994432747958956161964661666335920258647871518355472181346759427710263098852053959441860718833391298964066737152947538936482875030988548673774583245175664358010169476257791840962496928618672819580866202446338728104431834911236227481656128326494891838945957052704818870481515514323439728697142422317856659080481655857873607407597315879564535387551282095209247925678521703480345560456681513976797530552200952153207450583898152458972228764166254163548059337322564215148735036533134467214212024237932997430807847920724363858171811102772020408980298291415060535203756672511430229454021580238397741343691122727635398429464097234305940298041667047425773668452994258803509697207404266707107157383312355145619299037158599311826900789402267991477424681096487405602122673971600564513251954760562082127605034552735372051293895377283984594722240134629448706975644314539823472033462571000935766626971743236528619993532994731835228898588287188531281849543707578750974334057721488722704997692921272531529021901951884616827094583253741595178752428045041830455887917351788768959114401507278678610449269556938101650529873268180733990473456695434158148020371115059746547993620931531359034312244206141235000584977833332337076143143415642043911323203534756818567105470350908247479017765553023326263953134882794207923645319958201258075700149979366771863223333567701680759761559398310239571726520847505160722295255434930963529656538916767372916227616397538373187930107290552189823610868621139485103837592841879965367144464186483065177545528137939834229626741881990970699083625783510963920958781796097597418194760439564232309013344889722573633272115229438079559678293195508970656825206332426441595424482400386260364978244642827622272093596934059526203073511607237283736583092287712630338425168041725959388637227973168772073311060961312930356165658201233533396766939835725028065426151262659292610125734094722409922459052569313403035490517924819219954884669189133366720821198366591116460839711731969522737798567881442153108443950294168239276734701658893475285518692649306703365855686167091523833973910980599167870632758100279316652194972475896441016420537405633785064525650143190737529804351407492670622123733814209851303294356823958767565416809025053870760943346288321814665288441754333799437788136269644377815983185265539717477593208599379698837188230362057157562357283587098046315380433082959280104082404344587506671469114905793694263902309483830907501445359980403302231085126301420757171161806870013106005332893211321194099670346242535127676500226851562722689065044362489612400224203016057870752553131861234187249474267667906858123304011352188769989495596138607854572803593151678568629013898314860569823761113970946541918901586460461055037655114383245841609320192450828167890423074687852949214726967439737247651437860501555444350072062623225330647590083113222143801382739880698500162197590849104164959693484301079209896676110486066245282695173648322986041082237720078902406352197348464646679334266800755535351823621504305238023833324431608590132433673135190724749082971615451829619069470213062292652178469169347628354422228009604944486648417229512748468824359497152012770701500877196200667233355640988637962610442994553917148168877563968250973014553343601176923320219149272578971566094980342185216346181474480578988990104695720433163309713470533329187798112392494228771709539984594277783579801341405854533451165316585394436577085938040099412999973917354988007103729298216921686670291353508821081371197507474737813040382247646194958562408477959719355125581228744730890350601321517352760661307365616352099441388144194828766430411398811863578004513781172193921702208128737492446087028545066048313034285267932998630091518621506316569994629270883275059173979803949196580360799535303451141408058099167958738619651032175833138498553036972445170452319620982208617461108411180195340321340026332708081930785931376845748032211070786120933373733317850625111075471404599279060127980930982645943298730080694065952753024296093240283777423778657823164970059751464934449744851497300466006898399394472316404631165211260502210143405258166071350129802212421266675381905753823134246584612259833343731174158354492706564150956583236519968918821816142226853693453200743563177367260094577032196806405602109310784882751038267017819369593733349599857192209936592369819638249391198392781542312655290324803648634254214253364693765929452291857027227366435217281301980081853596095270069349188303349398042890911260441442453419872242457051195449483874954624783945085597184775761134996598666823929212553004320010118943311150760592345978338981284956631385657860902301040811684166430389801566080954386460516555180347647066193332567419501591372575993726869142640332797347701354628848197295885828638762842869629329162210381442035939608317864536485540183448586710755367666368396226411229813514679723172436562295252067724607063372791560969878611162104397955739714970987445845031685877277137418297940782559818394061188694467356588596331784098403073966441121791606375229096174388219814590382476758841030216591710568598479612161246675973627006134836812506807033714865461811838274760558609802758073944487252585328833008840237822325110714917960817671147974222530362788788814687763181189330969859945078397424442563554574343606256639445152323748959861266656027821406005911063277895696212414219175826524104057213277291510247133740896224610330943101179341830410780513562974192568078592566292320415796498085707693248151618671541436640851323337955764860985216752906934279259005522408133658396007929152807993639042319376255416573172808864005888850086532559211445757945090812273096565831994709387449695546112651600332297885617012431659186595230747934351512390231570259395070994838693568040877310720719290546633831113167628515855120453007500979826038268631385053482384897029088743046747729094237977311098736430788008445930406465343583104518565920760181584870347664230568314054832389004482460914590805657928739908376075602533648755417851531623493643987350214442350610672190341074453032225165400506668100566132972485794252042009136003546009782727075432986688044575674533722007660145067352899420890376653562300181006215817811407771840537458486643282823093058610923673274496472858071789939247812511615906203577485993930716983832604823913401512051523836965770274516166151391616850002586780672293305922978479930724279109538770645397639755350686809565071909638149811546093152697854424154153284981104771329508121679257303922920773980062120293180446884011176161461005633422616802247156859925616850746401195132531147099233379666314626538024510669454631404523110136493727668918576286453631634465523898205493988033052042170379523560231794370903124242904429116847715572979713565382077257215450939230878166298043900526483232248142667461062773544509032343411335372116592281103490159069731526747566403766831008601131930671640097985424543748900317548698772644260384936258385840126835475233066648126784252518366253525117860720388243863113451940310194647702095653336603675042597724838584277563113567993988998620156393421121707280353675007313032043256317866111442467415473961727799229434978793497755127538780192031763936119665639326984867652941959669536564130620276241136790887687773917074791065225642120061904668879899609585086318340799038449066505975904789417711034285423727065383301069472062491781668079942624433861025603625024752208574188620517172011602517635687285142308379562157301483684976310320017609637703305121885990395986181862717909811099158685257624520947622431941137995140377237587703699622642473265173246539259855036069100215026844299661193596848321188295425720841007700548828367273957545051886852075095494259255085950158006702228264745153366502587946189236473350603244731873123951540043957438293444425979984938334102123419879762954266888901583948058039634035264286631450571442190117633205127827685847480830820406945248981606061578612040205476555376860547455125288066027703166545381049082062181884977706256352911131994616637603354716469489708753856952973498607744650647398061922205011104595227332977122057974427088360146285804915893283058053558936992480113663450083788021039512532402068868742137007857341118292100903507190760955135721116975371461887400364790131128711556282060408191259122288122340103164082759967317239961124688626086320213326406819360383963702297778026378192439110726804899906995815911277062950904378461488024711196603788856944954859485343965613945694944147180842002514519956740985097791835944889843782817368611747469151701950591849899218393190056233680527010361111105562958888380556221369530166701307420848179773367295233077087889497812899680519204641666301563914009057745428643628419199420856748459585620425114422273499221868585541201259963750116379162621362169690845038081709897400259809529923296112920012959914405748664595270419788230279355910257719776218662237886703322216947398371570953590672256231019299858989088994728505100258191512336462647004876755841490996056072042472899663758592692862954371632539178363215989925110385261143347179609780528726031056870965253328837932950976872746816235425946981741491301117234677767647736199095342434741542808005997193294904966801901760301596544889220401865243678900177898374309796661271503495286571157912123489397971413120661408990247178678400873299140119329215119021877673416801204246519974829437884154264571431325560627892197902389470125911930240381040325573830932733133958657224473575376779324463000664603177065119631397949977328641660317817926074941736584531315846937961481802818171732070497728944375911438143223484608580997177274393687588694362107545688161636066342820597955881131184948228583976406939393802168140579529430296153616979983419972485146724188153100836060325616423504735382187816706431281578538577829959666014874131948223837458349469989291280073633683663265004090686888972779465912730186012613497075489612301134559037061284278751095353397740899172204400243797180962633398701002504635323827641752750460018562941016485303148457307915410449226938480379845497282612279123891112168941779935253629010661697277345511219925717855611395753385384921434627621643136499491667468385594793530356513085261965278016137901645916094263564642785061933195828839725977368449023475369946069433162730511461613636872730176089007066039059443546291103114601502100938953333189958317734333912569349179086333647384214936799531699898297114814287562876071557160375087413871739547344136756603244630569392769902411067740993345830335344144096070173909292708472467386646565967422902871865226497660331482341357700661056582750680673154965033293936408386882985460741771622489600374508324002372834679971201747100927576932238796357871217863723047869716714307813416775330100176007410620279826308869612785224347488935806508762905680801580528329336170811258385838997429014322667173953449526984469521142646136638603860874435382677377971612765152275691464655851573435832696117809406516820328432485462463615539211278903806821551751759760545433152243986372558894122148088873740265666629423519953842133807264883208171045264506586311170199661970952634910440975791598178149416225196186180194578262211257950587043270592051059480076223096271516697283634171465627884759109562414505552208392736564954433958150157239152493828228148756778039731508877188173578268849706707005643745845908366532320719041477617357122366527893374211693081913320863064466081189997738974701739219326527972849160315997841083398711935476566851770410383687022193809828562833676786051356154031867777029199429552868440761824730806049977448173003251163661647382530349722806695043862933263677685659717381341161631661625879250244879535150529126162396675563900311151058983358551384138613409769067645611198241022981097402124071172494378093604535956688336743277054997097887707026455671644581067642508235579723144627473414489533589878929330265422173326543208903343789058909528345733658848024336448742679322793796152706349787229817869585158233351771811607751629919278070849041007826756083711444367759970331608951138025506307729007745547383707271267272290544168284015823300509742105270494394685707673865359963430977183157890358883137242144498757269127759884484251404865008072435153425409573952179213752858384758266321029570879776476260111329553102284710822276890507853999356327237881791390731042352337938889366460387515011549929349691799267900605307462618579102421566395321790227166601332905070547045010967860009411346743038233096226906541429233487942703858052852689690519465530368819807938818432461188729790775708849101209950310773577222752206142165009023421759272530439809972682159850571546731919447558850102599304657357419062299217832117536317616353369317099460680856414543819454879749596377084161691171910826369075752004175892078441261641779227827103159447592161749273003285684301436798076196344640987847045443988958215252990632269031241652000180230225585761461533553798766482880682603316184394457274004769318747129882806486226858400260024074227978703985111680699127788642381005088792643381912728846503190705627977505375668925292693606274444681156091804586039121281536820057705458093077228590490357001610715071491430028457583207837730567339427541555935290540786377619888596368376184747131191554779623141195601914875273820368205160763665229910448738981761029568419513293820978262274293901762390706880004138163731390982284142651709375875604559068724088299049981967203500974433741782887928526997754115833728305225045011041174233272079723633648085810690364420261672177943995126530516619239865076711292423972322865475065164052506004036064086994725975854870072073793392868007375037008143111112493710960269641171092596554294708422337422764318304251324522096151197574721574777019313846378287481882075090131318715228780577845573109337293920775886656479890331292391723180338704245627895662506132493326203438458669364511594423549418613366253597510135654818193016167126581626211319268703100301607662959544176663837541899620941965192713538539221307181943099749758323330828185152542833180932951856726189518372669863347363801708124673207739844186606742207549266868630623718547033386779444356663731538625273361322580065169257857944765244345045422539479079374607626003303033125694163634383742179125174145566210727056374883252285139804508833742505480806175634904209562279082191159018146609942085273658890584850197812265319677260716982236277692556758865808343186344401789697521894778554550066535588460369750308346130305501932863760569436863474717595860983498647808255114642486094784587702351128859070056604617820064427515803833717904271732889174936238694070652979032195268280239775448278094342129784364358576538884503878147488058660385458953780737565418649347221587950161794261524404078465025971362828886831002600384370778844229142194928906236789697642554037462002197677560869093089450432836057364107741017328593510200966347110360563982134291497474404453426991347396363479969677856475475758188052256139901024918089421587000465320530538454393968952179194653104531647023835453355712964203545077558914182920358300942298436580174309876641702603293266857660072308336276976069523251041691011050324082254870988371017329344667161628711461372956374571879361672996612453957167396787255714103738691770068387731439512230485138274547666808633981605771044511626930152443335563266657877502252528472901586559740460605166065620722702404692539189980083560644314658572003076714487172090730244792061224054847226696990465463941148813599573754880421613394498230581017993099054431531213603690447466584393242255315929836065779233047546192823605272553036974942352791735944889065807550275141960418211360078014853445369875460812227275530265054960387770742515033341127116467581754186846463661565760972877477683966152171723028352056164663416262255387515727914263270790157170522176784125739548723082430448646302213220799308375637129826651724893269301488013516738597228141227883883241551592885294113430934571281363208061079044192537752281376734802203317998718960480181399998322236031704458764791200671288636195264636299691449972549115043203177302778897582648825851590489571430056794074963934543649520447035299937971694997880237061943660346195604408015624562525426552842776259912181918154896646512219050015182070198590584722662178909143834039562729460372258032997761049741188215527452122614260616196403495419343682034710779729483972879180474929933659055754055076113127533920228404106449327119003376256691934770107381750975313969028301465540790048634482327325655525620833532774594134063092246890239780740925077352191712255471003448569971132734123081914277169713238205671669941300389227206323597441521584622464297146733095268733529579785960618148367351493895493909956955765131799818745668210623297296782343574337142075845396256918922223412444631811437632151519032817816555291278886994324826246531203321776987224085386627431163107961274036882931291278928113067250510720456875846130066336671846841280448390312090951205170205118518381468428914380426974065243629448710825084361444931528434613748030901276087784636273372440381347253910597466339701530492570133607482640581643450233428043992146218637819156175566945772323908140482381656399979962573533911704496647409155816218032564852981953728957329015054517923907990462277485613086670978340538954534942868774905134744791166258742969875791300683480726251496232523641671422726905476729777236883695401200057250579045076622449817632196036737439363461401315622807724523455176227784761826616205233862908914225823601492084972062541658578814829730776671656174339153204009906759064307443249328276600826495311967804727551536505194036755270752440762593461105352880382994191860668228662620163779604605118550062878914025141163553573569273759663382778394015724323911595513897232441610963229598976073806209045142208048676715583812629374391180454341939949994817663100706350518090951098592681544742342044099941623139665113256995373772046760506987799605420969422068438930560774612762708096604718762552442120994678225946936700622371609658144418459743547765023785665837984373272375900478284998080688358589074434612650039942822783263755793757115168756512254140531333075308396238829789119747361011877052770387588958416692617481551006648984656925226328664915905241243056669669136817340223701935164234767877576723315410062429672039727830861597747893136145759816262477686973523155018805397984422045734093557124533674638945959575693862621601344502413510207195496148364786290855864300582194804576665898690884844936902091579940576858542643034356283547209166960383264919818218414264084164448676071016961824017081832114041462949389570695014413743325485177250291245733492785975326470030491009385244135650662411826500840947621590344598559948354534940433576449443672916588840165727766912854133297910441825695103371757127307549137036848660340131339591168983596351643832514657536822250513837563589292211345807845051870610037110693106836807398365534627837074630056851099696445936215856515534306266705712061084361589600452779130126963452085956071289976672557834192369193723037034579894943743142304844602665215060501244927925914536729383666031361575112214403845014622564481322210168224273961164472361535212482585733918928362202981691709661261709461156405776386986859735972866723146290513594623175755211880314414044768541154645344749921749732817013142348407233283104838833384366777742034536141989463050608865111832377269601752729028559982781451149740315364903847656191553695992219053236390301464173916444403270463256215340753985993197913395291565907630014684387513039046743524596898466320994513086522947671893837093780670631200462265258538020494640999554592886215961006284868266343494633336554037324970831710760332281705400029464800659706126315623020975629324443152667852196402597425983652185510096774996011983005871143013011382957777789664667797119684101080600283609932361493425550257800162863724086223630129586213052379189970516865441286254199831993156060148549887394798379405418698829217311698704595167027970819226646053352741177230299635861195667128365974922495011215252406394974893232513906035080803728292158750157195512399507414550788485261639892013614714866677002797282827548130634773021829933574841519313827155091820360648010821307946164218721554220249566472630420226607282215197050417607064260065968971198970942492853579885535509629846579775854266419464644935173512586761872502798523634535755025709983130752178011407850293427489611206468535754247704491101400765235486173279090136166776177361350697915183931746347184712590140600607270279762886775643051886296675427696777799357068152111666548146312660288697631316019265576767181764411581863459487827394080563381636321618575146280446949019157041781349678499891785350128638803861586377811020852641415751061870278855163557317661264790151133419806468601261312301193330703731638243222374260136164976229300823501727311405384784632940941982606550545083150700798967039339358789272312160068304001438071748156674709041138002208514642753246282843911427112674177230466524938971609329857222859001201690953877128509556947864106456654908680873099652162081410610610583320775116771587466561443695667284851240737134430354073622953578170847749815510324748670876419596195823327211868998708013827019973156478537044852851377939801286496044515235904263980354439987347878694390480438006025490869745658040811367891187542618026357983459417581909389832778956737452795371489336409614363270552255233367151560263250844640226641651654980907979449929800712765168512090223402890238764097402944450969768311428671843505281014459590322709696656907141531544478792653566811792281676177176875306754433690288426648336461379902053695310410005107768080136342851314449372975419718899320199453027060462095193481069963750337272836473808467362813519585956787624439158659812434120416143106749750054055440980927440479519026376716536026798901832901423834209389051996954934050783836600814061360750765436442709745397049436102061437366804835369842463224492632479176115634645136723704655307304360599719056150040252836891414028326673137471751536823640845296467090208657739840425102582637879904957203027993725893059039543024016379100130537608185814291700550151283945410669583386451794770602787543667415132289050276793875683186614078934564635788531930450103106474610282525505602611789308708225464754038568330331899120973778404268322689380673379596561474089859308980178967615727482671069297832054119287474869442893202225182762571540823426156464783366170346828220672081213076644176171178923537475666463478755351215823316922678143407969925899338985878390607406150774324776590669086816807589328066701267940690987708042130146148699538017537473888506027781246253092529591788607773889383150416785335256205315771419950551981859111406709109025164697883220091568707136281154960104767625576118350754148972993283433619838822891227101360824570811443146680522341779099367671966475765465029882650122414285980539093384389367999421002919405751026321444538083849777579862909051501024428588121421670888002951203847594591421744735127525055705180595287692122007266815370095154772361555267221820305949050400919151357679102676712287160489080254133559071859926686678498542749711986735520145794276350480546224476831575752774963542823873129435712490821886949066516330900561667410586519106865157198352791933192972939997484251115293507785746266045517713581488027505071625913267328042741848451148380185261123815469702319171154007778650571212445121084801009028089675461411114178691329182036047928029076950025840067310235994945130400344736196100218508144066816515976638344516000914598967986849100042897113464461168562770685637055668412399378225492610792479416620873632999136826037503310561868912200089667702368131512596424856237133051033810108761426765515536824298105417148035775478595302921241304608980771659731232439122323666510359852198112993969333048605970131703125713649454552928759159767881683643129880625659415626289005299861914377325234762800284809274044216828696265223892741031864572387469868859566512330358064595458776335470044255650780498066214641157826550162372486198121892357515758446525120809150606320051440443239892146452230714125370296256801880276808489478311282400289335400304315424004322961321669133816445875282650278865709206112021958644862327443337387226698590413993292462277585129254623575835450612704493367044373398052560648420855792475683107894958991415804253260430026573990406242773146742966227084609308361255564692220210052778573053767147754847530202621018935916752237630003378158084486343804501815989171830433460069804129663978412156086062810819933528506708578969468024993362996643379367976632643486866052931488384645249975401441480142613994752803100683830367537756197522351619727101244251023336132961709644803413185451974198658351804092597587269664058820266735628013332838427620622361609427085266003549607937425590719962147968056457583462549077459697000472094687732982184689743980070014308799165619002997704326614789315118572757578768386453434028513242065183092543840004409975962521701546818155273309063021331947649445587791286360156025429735366120833230078131002264784217358246996200180158834738515894562877300607124897000130689625153699291530668609904257319447681291028317576015191455048522996640189990663111896645222361346549914046408043293827280473515564876829145478061786573485783716516178864640250782689278001606821143809932226331012253478378545552066321741029475889090649037391168715400559186457335996333474552261982036290765306020559419190115765155625339502757535977685246263370583674140450213560199444945476633124671630742153225429634332853844564752046141538896906932506162903005781077784694258638595884778105273726680627475619781185023480858743141673173745906370410866439751222465248459480371519302260874763155177337079160271051210726250045473783611955372857876710815711386615563599897571579570032031143438775223081468984629520633380076840660350853225724720070401855986224741752515275523857926984629944699347883233501348123245072517055687142338235251636025981415964569640572508223584356827764325388035658960300241540552304800550503226288725987716067696790408562920332424633325700399527309300191061709888607376259025887050108356713603645737531450364956523906080756854918646887063914236719865420145705431829489881049210529152199816268627531602909121058802571160627055718113449445170886058999722395139694494265656020856257339345299515972234625263495391346704360881241181818981304635070341626236345740246839437696328947338793005226313197359316564670626165322949246500995465241387478539164294273923059178235037293001040049825339079821829340046364445456452347900736497379479493595988799899217932207540246710405894329774419980450770380300449062698080832280412413150515998663686893470278161860146524430673217152692609844134951642595817779144409197839867779641507938536368117694157146788294522024496009670534183666533123893624126524838029343207648631323167786108823391636704984429500657244822057854391528119284919242156881099836004175029949305726698469937517992991908328699483265791422382460459773991927766859918735191507676392295729932158403707692087413200303235687833431884083859314342319471120667876476102824727761796823376914490491290322236580123839421915856242469490049712100959939417173050376803665926832182386511557672147803845171891008995242560781904946330509912962180221971931386723662585960861688913183365081037649250542347431101812788409181660809472282762625772926914658902169177108246868152751075219807440769820889481732577980871203723710949407254750761422585379393376882347674231025173891314284517037023223306514163121945414717298630150545461443868866189942933392186685212344433638614281807153511002316203167766370726632701271520411859412728210297409045094995997154249370556060531198049793218073486795189724335247973273291370022557748841014117526406327539990838076304426683316193783943144194002715843605698219465899528869493049924239423187043428782959110338963756580140027166668526064080365791284126275181636975020813139599260450305860827987276844556769305891593181555823160784317315304600518833256519227775257913227022136791557770471426241642165087796607272142789159588936035351113978312377007950708064703536525330743395890525533236529239174741771924727238431074613941510361921024732673036152052877519412626089110242878537410875785646036916718649441633279182610985795790097689760979053782927882817902147893704011916289235171487846883041389267373213328674367785874435673559445644951176253192741650964139035179875394569878124609712086930307520811277699234019208042864148174025348468026336078262260248788177536491059975890754928024377082024542328889890353078695095427873167263137940241536610124877656329830698277665325452401592250871457532352779564308857664417172165971744584793475089907923659467758681405586240844480905217757920712569469693774746285447643082299381339571394036547981070482425329222327091270497736512581043193545997696762304318835820563731000904205610949512301418651340285003013606975511446117398880617616118941736354493241700853023931675768896624945826399086442028499372322032355968043856162856817474013694267877404401851753011558607469556198398631888832296852213361449843434885918901924437986609813457566625418671973890801060386726649151393425730851947834389534769867296868883224226997258062099533637428181963790869830491226319784016906485212206652756812593539319605736278760028144785421636149927840948640164424604700257710426336516772164612510713355568177990343577363663130553949859917008554178889995555929108830561193838532420943617666714066867324107944548657045902555256799601501632475729913643884416421652306887488748277617420943649281841213159044230016221732917024141238105242715362815698843832758896641387853978910050083599772636447938907927972704032560111131631802219196980515145147187349946296495942332725933566214451538394804887251621140698674819017827507912685406480242679109747655755280826397409406623081523162202495637972206502846525595844866238258291583768974680758950309143375199379463770707384549505361993653135773071451164687824860085839661525992898960823615214668316137281903078858211973676040160002446738595997415260094684136035140943779894462597584361057527722596838615817957797228596445450313124413536105460650008399667513875408033419681933546253841901752224592375671654517091721393788077017351311552661594179484783282612027151014916635087655163140847201751891277717133371166419736975515302431738060923788075908620444230320772092747830994388822861499806480998444430315705827487785348775697399983325918597204059240994411134547775381563135742947285373321523527668612051387713680648623535597379672312593001345342869764545789045961220586153624017862349009570994945432674322045505306687688137031169452188403082185956577830096530525125155651214436403440449827875424490035436216135487281358779413657354487610228735070156112213476470359129407146376957200062051875531731445974769664354743162075171665062484090426363990492854206279296526051245667295813360020118785262210478917238243051354397493852277691727305164434692371971964453641599189867537580567152697594664579922896652581267903026823955061271664088464396788885936075110705660801336702256572334843732546644954193264363706220439036027849227143105528962442068089455044348616365995865638755867433510068467470120685102585693018003870533868786509792302714482591853492072476620622080833210705851279811251910360682449223371513625283271387996250217458775126733434965061512098984172204602857536515004626481343426158391994127505418733991560399841239436186233104970042850111263563851439047350205237086782755288809378502259237787634305174400528785216413321670314102825983326815759080148602774472705592355752867086768631160721334265887081915656635382119558435033065875871516491631278491869017411687709812260679708282763295923995619070782810793702194728100253781766225419227380058456182961568612488589349026463250537798253486536988303073740446050781637034207449524635867775416353587724906323042495298009879809932893197143243980936550934777783970313917967720528105966637413528156076960631075523259028131511379183530631582479969562853881447853596572203370012202190173143999812284028980309437750187425864497078870067327313393838410243812994258519942099392386857385044029684928141379495876205292013522156469466055145331629412228792126241753214486242436345086451888118829669556701775702307607346193767852528344946041424860192881968109071782946816267465265234598447436274966265765367164778806466664970662048946423457644092481714898068854145101051848464053763364494744260107072734917896035329609822281321703641082290483646106297009437744703165801375721598106026955151367618506035223889797286179197155964850936465573742631531941837693444351546438459071251830931296891770912605053661512640287152041292773200706653042413202770812092217403272246478626720996770700536703634443133110327730932052572858948421062307264917105586545597874987515982227334916199550054681635897477974106076638593679645853631797606604779018261893732972904261926840601556324012363934193865049753418190772182602531484974789676282651598496536127670210395438959136414508238383698173730278708327794063906338896646385630598531660201145326867883467013634419687347318164787744863996116082821923931205672865825241139946517715979130599242708392722943914490026070943452570252921859390047590858487173396027876928887171931872612106127813260040547677573672063990112355734627285095406691210452617392864786939045514335928479826527357027526770560854824003482321305091595791957449591618180238076532227996218906710371505856057260382414381307521169940463590965592140106902920295633440956312911652952259604226373452648195453255655290292575018955686137580385548683916879775298763594170714994658152943399051168294642301036664395840895877378181324500634900209362117310815325131964873898347682201428255658279122968842409669119987016747910460985182577944748583972478120676877611308472575495201471110401479796004709146646913484230226208744671974651702932521351920762267963122599919161015865628821913691178851766339447654237163943828548494044632146297844702262961296965374918286504804737790860625800722003989108001665681885554758156386546658531964803867535716687820402585188237252611383657299211130947315995630699241865762057275062155019538951654563918701598601253054049591953007745547533323859204765649622349096117262155206073846626425215635651140651501974257338991895359092654924706488490883034818730926599112580224526273668601851953566448188749939225482807221470021243422584242532446669436176223457391158721559487086493762523597678362793676093288897090224316397732229335406221212201280428102578944851367675955024654829235525396335357344087650722485678827835554331520233129485750673834782204187750899999878880261808282888285427673778231576450072167479555393666251604566263217666481821633474617269382864674772869746571194668164551905803253835068340216606850871571727851349055110361919826547792294580739185096269445781499577120049245947743670634820987915824955822743059370737528435449325422106985611839447161405375550421756851306207019263179345514782203225581702163854445388307181769808181649547832771755586221317644871888437818784098437450212677451688715211949714440831892817336814555631906834760329154100628919850736600264201605757870481622258088671394106360886410442378598532095332368653293646195326081710303383771914462609784386886924966260005193350939281726417847647046373455896134537409734186614100896506374436464115565109360032847429988885582806384807959475509548867722433442144664210416569155944777197433863477806893485379885165869999155491969043218500318397100587871105616858207982423235711720564498715002113544600657321922740874848935572849022621499798740966483710231707949693497613502145219367603297203704097646614439071632987480324708332674122980985572438142685826492326096578975238632825708790240764860715311051056784471665433382825417334727848412074788627104256476249472755142345498637638566410356644771082677335559395349748911053087928243985228583422073494064818878510273895258504996597999955808361189863869495409467038546264780061560195814439618405482751842171809173439297851687142338335172136768400411571819652518316131571664841512711906765535801208258541523748604381474206911736853423118212862116181503128550089816834408725364889318330337435600695155704269173317547204363835859040775420478354109028774547479821875530762521634247843486269731073400401265243018677000959757682080959251075546992043221166322572104282037790204486640050284053070790745333395521506015006460099162922317083214741539142018878468033263716712136533884306095089883141498519822881177796258269062438397782892359954232225386403593269642524900091030952025167572668664247455539620873064902814979692773713488328591621036334134082242141979419361463072498735602825121369932432354743642959144579607441509516181657109784610825478344767440962594630193778841818837793448780380632244529783417857367234840508608848788998410051981406061967544854630404039680167684195581796475098635521060676781094079222920110527857272751139424128402298554607238132868399407035892740155070467453925527560508973373086923853449065287472569670482662546762553978336603061036178832360648856786015781979445246059390534311617831423463693517833650670256400924741102957809390837027687235333243754543942931848206060380053188192871087558554261640095865290786988052733527001821273188659107419114629892412701382813989271486289113758518727975473702103829551234292968924644794856222394527643915370230992107455003301221685393418729268242075557831862614947536302374326076901587408006443982269741129355996924927097308235890411395885378224568120292510815717370101086253352654428492958885935246387149140130616605672929257781828297515676621859131264069634293022977178341385799452250925328672250539726206286129416080372895371126604100389202891178888740547206411993224490514095597326869840571036111453426611892024195023744025145452055587574355799161898062369986885318818424777973028195961449980771302282715311315514652144959322995984465395477385123509574888750593702749542949222652656168893215280452565321058278683172871583490832721273975581096035360269195998956408636941128916177100952496160121115089915538924869476307009061833887357925332644321069768253005304596012482381256258339684550205746732463326484881308336945565517446419733585896122111845631988876841944603183829332321343063094634071099628551447100035290430610746174488021952134832381016982593462613384643080470693570450842781903906042736580296970649357388440470930647612403240928987708991493623377549919824695910546532568705512327554759971255351105603290498299146433410413282902663134192222434226680174541441099781781949183975245278591459581999737191815210424070254257944960591756363290245613091096711654269057348640239741059867179823394801541469777210798375022302796868099786659435570896438138504904019247155179522798823791061664962097761325422564335661048729527588758274875790302150653599309757630676154148719565191233232772823145500803357792884139777451985686938841108916052312815259099889318650490246719275083264319142589279531920826018588285210410312619341189033597810222238595198476162558262355991575285210404360094215325586842700878860401937727357213258733864884663888924610502596390567425207391532558324577985104079428113880421564904790091364895740817932506699802176266376591837355806409801943648317179342224051335290568398969335489666228237134253336883354329920542074927626036550756560243166177177504757245450130814361742337690690165072343954023996432495743071385030564651576392535753765950380774536334783095297650040185863131868659495014693344956196128657804292286782451948080155750549075911974691001985768655919376509987490862305402232733269971480306843401846514327716789301698648103726644968190709258351191440274794302072482110482124739272945283995055018539013187945289051287826878108125702218415786905334375029715122769793025741184294043412934455526744442549053200543405892338421590270066000058929710908768142214695572525369677416618076805265411771147040618363299982698118480019842043733323576100845004776933049897986350052496999545809597453584699597641485875680176916467294034548904824157066009893388358435116231153169889163805145011984186448518625880539868887341605532765775603911750467669946227661763040369878047951449043193525518120675417891009727579322129851268237084004667292302196673723400076344389618093581732782571513682242687262894481762082547950771261348195445908206335254024727650807211997578870331775551180522859130288174733172365511841735150044266051413911174248669029092945594838767277286697678551620318400991624345557986763999675358933878540664976558552674978144938840751064041389315071811749571900213997357386055443153428017143870034858542259953490390831772013636666620093983243665079128388389379034804739660281203212771408800216642021135541460855887332434682181135674693156297860325595146891952354999120283539157797217288710285651439465938698209403894778281034458520841237338651284690977688282937127349604135120298910673339720613044858333668320316861073976746776042746600825910095767081901598461936523981478223349831512593627242764103977358873750633104964660637230692314340675305098301121481281504194798870545978081752474884549769565276116211603812936256139569399024432007827128744590518027261369126736834711683628368655103973199765473672287704248296390507368066542497649354743931010736802699333837831720020286473030899233943331848081418289117287617662150322562904671645853064169011165673767804422927533826872153487950489018128127635948898880628732626994190215909935557223081263289449961341321353723401808461282067983706299524408790967123856521201375174456235721095400430146975791599095927840944798615781841386675811410315214664026063742099368398307830459830080791006986858267492965586582667934855281600805373899592668977564574340794758951050015360576531192260441647576129308319879781228483476234102530283008908021554471819947588983655364538196511454376659985377218655202133732880053151078199296839722195578816654526762537482740320278992748478970508474079606168639663529171490547655388506997970800398742230311800642605872698491069385282287087113778634048007163692087566163187936833040290079758399830803737552162123610470631314900450712397959375167415546839836058865592634317954899541293321595109765208086741685429317903086529980685835349597242930684772775493656931436509171413470212165962240858734031055349809862843443028410114230584572192631901463343748219599957965771819468254689487366419450527572093836800848333063327810335274266314927996568648292793992009983439472720772999778463928555947178711428271065518938155778444580957535018464820029597858380030382800349616266524707160428625936758545751801212201552349693191082425948334305837220260181822869814819183063126974750805740275227967802613611842819614082610522143832107186735404030887955735525914945044961302167964933457659730531441672930452255400004451297508810145729240261021643445855039230624503289435821878577136629094732908592380286088792711246922767235121057800967398426125971612522357370231272207238704527571905353782343499446920597666502281569925928348997803625012418236456536018192710447497274770690726133482758716404402046977927387645336385756329605114948604974031848295781435358681752801787151453078979464173313304985367064233258473462280166342468118473471712334737856362518351989367389467263475227922920051492445053533192202559153553067889690587172915620425630488302302942988072674611192441725654521587699176242122097176650749819962595793413798867917605661533243348281910875808985625593404466559706312526606998579660637685196830322560128025877960305132667508092721962800606063741581219127715533193685773674700127696366874924158712649008638707125659600213017886914891493154076743375190674965952432250958753893346677850003562227209307491113337659473200486274426141258662415556363913757553379522527676514541501952102668829913283796796519646131692451166328419429121143247859085713920692466802890538876357090652651012193326042172123138261598973283381304506469731396204031862977710463164604940618206113320160303895770689773026060343282515874731325995366990245425491332291386131614581780057712399207887311492887082356808608765358170576817236774413275536043953908600152240853422403215517142519238379485774108456191380153357260186647726835466392309815642904509615816592727073058105280086889990496240742658813545393248871069684761583529241486451110149663075794902226147504172083013091060671774988931850976855781074124820391316448888771213140619668383955187151759196256095841297561205048203489804117080204169827796061169494601163477778228749253552439193897921821110879852516915589619768770716908377662643437252796424438181590902180003835655501400002902057921511919904914161514050702425014767174828833880505795939493352965805669216318085308974315794444697498591490425706103503283039039115785014272087227975053911614602204120430329341492955764759182787189044004652209765219041971945093867964738817669117527705183042495968825109107151795953133033209777931586624950323100146339635697010223290627974800682380732431959704177243671162500889121303513004254044777203502791024702599319571597999796076953516370721669007079230229408625563571552108471756224280235877479721443740333263279377702469601169425070199229059524531681294572764811098326306861240877482188796804720106271131399197322433743193293251866546618963354363743079013752314590551970143367089567104824108420641085279809569858450005465360658188999746467633122365953982028997019585197143745925480844420744340487580480245697592068189955943124635779823509425566893285393292888825689047497793773754483575195801993159801232900709156248521347416796624909114916239810104783434414214127507359710222652682738465730513082971575548492949120662007298816073909101552515713102699348185911790537170373185936557922385770936490708875891446298029904108580037063365197965381511860012901450628750031053715886479952447460075388150818642148085269111669327251167718663199493159867528518961955270899163788243396507145136007407523692270170360088150583970682602330808033190674978774103329045129540043253499029146841068504528291045167804415053604242509476737417911679026887701648974277251230056419886392516128894516308105324607052732232670696796989511896982898896990404097814761380022786812005765899717418253612108920870276599703836994646909371699383728406618295702977165624003191615026775650136550232647530959565881724518368171113324402903841222344683729620698957687568441978195098485626093540585694073675797913789173003727334364757234477916698791559139219327085363738497256198801070710862595132871071521665417162650839845007429202212774524170293498767670571660399539786362524787805435669077024223600815122867103966779048980054141412251050384911878521877466241228035698701894585168584257877310890164815695447089981714263756137499726259956750195504137567507683921242874692742471846744464727072935221973731130265198393152937860669617814960014133330098140671356124541681396602811202227861885531952199807440712223980682826875178627845628723322997459945219086017725325304889473522857077706301014969977688263485533083583587469729669856594932582964144393469873330244157776405207393288699506154061792875541522413116568806364506673753800974161891704626142891959487874756513634861732790108175707615393782129263835728366291613986221238651917073887246206789807709910876200761130096984676259871110764933321393183583685156106159070429185825798632731823421373205681353816125621106323631772741733673277045397026896775409778850703611267212996908929129530362810969168649193818971718180438532326680886951430160792787289812539007742425932467155053905041923551896378246124850791974486500576035597102390410215035098801830885215893693540730690338966524950958356808456369363426592090139129165886121316399431793396440240199351519212543218115567837502446591890620983083267300074372966779447102860940359209097187847356567327424139612811034539973713388069796556796563407859161001575383708501467630202849140473310705859095711735133016581009816122002231149636686218672271614776908797043173031015215082736297196559065838353901101366958834450234848767784610416977446500353793387235577771922980643691007806687167501856256156932221066210483559032764186286406579520793483127545709950620227864590990932545410065848382067668511988704797500608202016930374508029954856850674527059136885865194688338228990945557765816131579318191693791891171820843156974706623445692155056463204819695904512634426797217320966216202310877967436238965180451108140049306978371168590524458026092112730160119809491851682004812963930213945629085385033340428045904244799145520223426202108375626095594599682395851032741982454989201993810269813435753625736837919794711867659949284613377444234424491679319079526126536937516735280042236767389506012761523232086239016961392279794185047533558703425435116309291109041131841183977604789172701241040668241579880838626807064179040059049044312854663673862598191355190663107636775337122059001004135530048815926598162225970545825343275216191509525792916892099392718265463244138371769932388464004923060860812018120303252578118188636754288906005577908485636484527602749073924950099098393000726118618967999473284210905267446031487845395700956979906114662002675315974316882055971600810816422961683967797896835398999775311240435669709747906322989371737025125549772759992749970242261651671182329266491781544506812381048658936439412570757383508360433380459551603817123107621734990681251341453059010321693242905092369062482678887691071488020689926000922481956665648040142761744542715028183301050623870700204165067048760812675329291991868438041489742008294324952587430429324014086408108093169841745930232311932502998351698197781760866552267761960781264251380287540101514244587382590529198602479342003546585052850754661939559181859018892284058637234192166831277205338974668625591236156279425712717573952736297322562547034143431847138417424714262655399048311785659165769102067541379064248235104907772446728579727771617602286517043121875389788131342796373612051327366275437837013953788132374863167615234099568441577657145215320277581830531413369911525982272543726602761452994579349924019782357712870478018796533411918313861091618937396907739450305801365967632978423909011033317420295611597580389034129180063283610238257382678469721775994849785395581969592380969211363129206733141663363540819507732216976053706171985413565605918538197700335860367381812175262483585354903866062161502212945504791239909097977222260837168079761793868447775385235492340625959079559228608741272013493505840832355959500488625932609983243170348928440507792790852361544383849802579500938320027236646782808102767349998138389881985982789200372722458334018972062187833237253759260720960304343154215492951230607471546424056071821934427193451858605756413678355220681362841540440942875745149804150531715329301075813016668518616006031816249064100080583220090619247633303619481906013656288661493273653732058509174380867186628880744393825083840571057582327423226626561705558271624736304213803266615157719524323791379651160934621901176685968746998503885513143068798065950543466647103166932725552645129735646934589790595264757299319560220181015353152046266850934132010264305844087165267771120324549082723398888517614251951174801913274893525701935643416412636432583727343204508878579783556646026366830695816661141732664030051875135881354024896179674073859092407970207457820035421477388708856428419718643697486776860506659151652941818407570315708867835108299990473401912094529841155440630285130149363602560160991668720823689532254072073807649646170204271229838448466154008709925992948067909959826277671278555219160174325248141204739666822944966705050110235981031792280646343527247532837802112748373214005528155478782677285580325278961528850879641653889237375287493680917288148280149338074354221912947706034002516541546302214711805266943962250723570644079640632860175011447519435122708197228306792718550933865384507961550392650579866251011559788961529407001734927236324784458108564660421355603062068200648649713171989860462839210929497447093825555276648498536235978400914844775787124689130940071562342982136515279560377824710231215421030602109297917352433996718557756897373201760983602876859606870367389659371352716031956734931356509428212666972997347664048072728772005196731145087769023639621777991109758404762333312526191090202905561479071506988240170000588608996245577033340588573334997587650293137332854951150005503990117318980466494967161035576664071565483788705501877385317186502710050052840467582504150055959632654317467791647227705290043820338701325710404675628297020183825804697804742314281937591016293984198298125061753114694914805994844151835648955670552715276615381557798583563319859953600846308659720091730674963607112777299414978553964656798380869878683833748281557538609000097767588241152105446785665539552022849284928582712932610087017254875112837093612908199506538935234567503073310378220023730001615113884406348072416149936638105348404277442121270615794301994556035763487552341056511077011185304579687177083414600746360062296629602886144255684595306960329271334893558060913427703185305681018205779961828072650993671656750334528625359430488878019484802336813690653265930438261774043188320719969706562183332031659992247100679938326349674122677668938347596138155163752188587115810750709092993649499255319223409146554850776547316547648839822441357126909343794985901766117685248108295337374633698211374810946703211687372250841361372907355563605256570035511155608770416003696655336302841852915139940837306442655512156776154534050990271351518045826647631262098441272575087181095050706999692332102383137393534446483403715079918420014427953967952838776588926539965710918512850750228314684998997406223649300815838294875918899658130272497382286993691943179950749717327390712794823004338417872595183528412358249561337581201950243591047699313888199613264298631583831624922401424579936418342363080157015858488170039047835608411026070962612473473253016212431070569750677989960715601804091819154014540280957969016004626762753540034572593740687194559948252742836796609207010062609538651160837444410635729630518915470118027660708009195270181845839309517729534022380839214993521259816952267032116542936474711551830026737570312412313844195986121625729644039802509241958853211901349669841573068161207258362678349429451368985587498696887428622490939752249994864930625646507422790032203659912746918998824534170671490022474837485304216197581521325632895510972336807016953597556859121081198905315923577416285782598262700664585777580784296719194554844385040818791822339416155038196670632000372714779630379157759762746213010488780871023602196558722978047910054039194643171835814336808870201933665462942242904518008712605193007634457079744656147945888069629648950234011054716602793511652388725585211912120554962022937403001446555553491746578368876044287623095597124535383166368560586759525763791679513339363057943085790667160730302754411419446357812111010389758613697026407370411916453840086802697379499719364376062269873308840113840183932560699320548798174965031484468980081611775045709931140394709506374700001556634341493027449732723959179722126259645322783024576117972567471968549065775157365972454756659216122027806705582477639567903815987619250687578646921860848089951352779039165682526521702514969318661852894555631784880239115731308660993607768928809551566579162223482959131231429638054788260071855003098885899329763469010794680041782445706953507040548542930475936025068081615148090360050549626585311672913560590087380045145050082546886471040348319750155162439772346367134248987271153790370492141303382695688732555416632496473454550205654410045049823629190736306881450593341782599873715098684093545117447523770988363278552109087365953211115906415770159307001488407809129946899818688395995442024626466263438779189924065512674030180724948348748511306549003098956954614884419206798270806719777219807806863297727369696212786923559563151104546688460319351996670745758381681814889216903298568298082019138713351052121212057874889134071327818385106268388797920580614669556209865466728989979537964815926325634259386379336629264752383712106727937132582432870387189258445489394231446658971381403534251949340790235476045480413680061515618088378646062190663421448759134897355577939695063069136717179236758504757686851135789659010174283309975343458000397240151159537220404565959933375579152583372305340382536281807923674815796837049466525378295547102823684041775134375410840367078921568830609609909613932767067316264271449372376913270186290274541169122436043076696917711720247394246769342909901985269060273025914823340604453699430094346252087579662954480347151707149247498790857658182935145194168920498833505281701869804835606391963605733545692179271775548243279888993492912661402145635055090550803048989948993006420161655974682380596367019505810801859710939100242058919142760785105456138596934055742266582467006529874749763367030879240927040669829246947451003709348779000570235377824493080826416107036303171605620080447184248265700507677752277144811092041163606373703988850420352255611872308010744012854685707691401927180741039867170446465278329416733654212269579030441906591382690593510652270033099055482579459327685398308565840544457670489075413083296579157797814722661605473792026825516680279765941645512970232180757162174529956705172582349565131144496090878748648904409684473684453778490617012084855988116406760188633451355349107508986173432119088399213052639850793813658351684222629900702311757866153571940652063339715647977211002004766768020951143448386407193437725762020559816350371528744482748097472337941841745888839702278351385402343524460785994391991719123957276929943436952509913610852741533040210304397471844993659954819395071049684609723845688877209548072373176930121636542205545006368715413760513301760371941002934371515852853400330418053439141256191105347007059127963640723875657520711474605085623479694493899083396347183289523815580334095388986604373742093298935092891085435890343323974275365500003272683251590744673217132834510099584197780404591242908640935570111495453406684220327046210781330140106600357472381062829763742972599887995004135285509406568161081945546339140265383737326689709934035982219184847997134007699089197446871302527058405724034147545571225302952882044431901712548517014708883794743661198217660269376615660991126123034949360284667928852323622168230734029332148425045822249057609054448226062038436598427383140490901448519486888517557781990646347707467336713394399977553787760332368481677413808977093124739321699082685766902108410508757361528506153916698051913424389041388162423991440275615232794824156712256750043324657701287268155683829980155230346721074660269978366779794520846035136674643552408683343136886163165808698210759006635517909187484372141995111121201987356700743938296079976858572134955954559013580339988878770287224684876784879591595199235084520907227593423993621311477221121580260097740567537859929604367913153518942256282907169516112070646183381096915853480222069240852039382070151754802634374173046836124354086100611662781011008521567325784458616548190802777331978410718008064398884101165736017527166069583313702759359523366652596320022364690989416148698711186364426018638584337091951630170208974955605672780819074624503621346074894786441596142301745916322473522279577064683429825135848229950666543114979368796332330778083220776514277587555923410484743803803476977627344094411486568722096126965083463069066394545662726475922600016842674008919885856717800472300835621283221662729368064214661791136662455899038638758055854688730632892407245281216949284168471710319406362254567714965430025102104621183346272547416803609437337311708274448379477825939377854672038247731597993553913680148094877293575597796956534994487407318305334030186016981172394198161810582989936136230759107074734001260159941577051871051278400625810397978404441145181757756683094706263283845311852943228724102517056264031688909010151471121135570947014911616863468204028584593778427800852470860648409887410971339471639467397656919137747396606864858428417042667467384808841166064416468629205603441407246118098194383447136187467629614142701116839699508730923360057769335501748693397586397497973975239614523126814495775592095576428145962707925792299942442354032566705786146550632605999091365205502484161170366160743340334335085790093299333126617399676886667527605683666277650475882486314160389372714625304565066540078923002192521878406927347075928479856054837822604499167204757464038367919017186859173031937149183794162433378748294625390459452714351545731648828254470333743864072878468191974262997151625924661980719895473808211972176132535155067013826902592070065998834019464732290842978128049349878292097452848538027310334292216587230274653871331037415852448340629658428979635297725695717108272606889153445836141218330570462604202797773442753966205784179820733676739743606372908012742907391059922485173654793907636307438125814567566480344319581971214195080217320378524691008853474909506057558708102681599664921214634472906441292482546332792413923921502563969419616549321295503213902853050793013779627913551122048607683686063779719384571097779015014638692541683850604492241871205212704272782753383447417853427578083334394503907561746686973456439698495812855741122130022923542365340686854962279351955713882345969694357025056261212644039083815657908998130662624223796702768724914862756801745174717544921483862360541989564042744306065124276557637293832437777934121294973220236279863205026168726669324369209016121670950324011112343765159982699375060727023523599579372155751679058963359799262939781304013489421546395055630997040986420298232443771892308862102726985675039644743414731053507938940835762049104297175745220732401803513006468052318398346304517860525809260726997125502751505234180068596485638727614647735236393980678933728482640034360703660695593178521264957256322188632634017079326570901213516792435152785991694604671106236380759715843281185247545853335000692699444624526986502963372253607868449369351122246353089550844008248248443470247526000657932619359968572101787179629047702798933217505265507859495309971125964020459288265449807606162383832631995803876620851251049575496910480197839848051655055782404242711470908857144242326564445197297585946242772648117984055488281089819928210773441860834500158094533204316104365462064063977552989555392040402678401271259426390492686961378097817364415688441004946913204316227082223324029416209838921350939088261020420952854797110405863485748300955434868093968522209081433626366942671894789590917830085926392460937593253043213433103395687823543581905460425630830120102030586626389728490951338536839059061936455622362516613827361682186149725819173807194670450249739541321104242721822074766761612419635966603768101080571784972260614353156986505810205864624150079261456934344738666227877350016601448526131795188025344403926127392985065874810907717529655358988350080358132823774731030849978708498688165202073176774202881097232048146563691378150847041481940607112433068134010651872887648102979499263579263772771088877446358145048948351457151848430871180127817883005512628144827768088319549935165614061135124225562325033845524672712075738963978626963205522127598639382950367443016100922146173834556301958294913530315644442497457651220929789296234149978831661108448919405208817920635934463550066855738577981975929557776137517919429883623876265974792732828994092627695518524399450571618011232889591025647276800168640333300268649760945100409858946195629702395246622904543463218326314455509002076878773965331733340953161856903333458915862256810792696844231715831583828341136274244875886457484654476971738257779348323617621562841809252148714880376031963906455314137569620329692050889391699793335453580636984784572450263829929973362721155146401263001016736376009929213030436649873127038522354373199994109905788198828282283811141889682828548604115597635356487095041652952288784526236754205876908537725077546703435672845396184050049385792166536789280274155199428446703066765537328617012316754301631804828868750821727359363906693615865645385687763248401976687535395599937547814393048290124286005791101791334259676228428251471611060968920042100548457934098573616850784455790157129748066239892733006619120037911061410887711306911352211497234236158434497818701269308129868201722210778576639289536890438935460062821977441474321116478278627209925811443075115890629331421924054969409538975055313707626333434761413202975637827311840990855655490695691308242169655751111265735067788339747564414121713576123828628627888012027456297618053973641057793416475366889671570058821548563330320138329385165477596337671694131686262569559112417809456816646797565660413671567414202986317711855960942831735618694064653242057831185684035478315064126909430954274866938302238777958219164910316845757196328251259446440054788937992944835366763228223459575203864688815885904272609028403685677597896958097078026823790564170480913828323931206324362619394478132032976807375662495864950469516608036328232196371459058365864955099897347738114232278557667522898705759414255608029346334051080758573190260298928842803881609235142145245392861623889930220376140748981930426157467523959611245444667461584018044529640418793104270978608263206776021253317097253801392026905467272728780580285061621135347624888758937195192977703866546270496531096317816179359803068633446820945057970243300685593132514980006381144555474601861140077140049239361773391148352792392178242967282152843599035451805082061255964561322761216117575333661474596600323975894556662804148471079857901999130057598787612377938973284990960858801234220420085496964894676897707695256778539504722602273671852818982588939577862156167715642712397936753440629594973678956958101294157641754418229309386408443927147090901210842911806835196035662877090801825046460922734735605868618155229272844640833804610555329156080786549718457026395631244920707791179719986338007744357254025547088683286634942057032517540688415879717097815990707256883644065612107818341512614459949206749415875909154473107231490407463097931813575467612336108326015516209994143706143274960328575868910709950907363862221788787524245196990992809198854795480508692549903908685876284348802126964869676984852790198254212895393303456459112792972695552238779459377017393843014845660162842656261232378104417049794717527867234319908243233660477790771558025939366336651628802979495261872016267134560137455474111030728635109337451926046246253427100999466865755965747141217262980749318382683195995292346194197999738385282030768942470819093003628521525384654066186628496063316024240533584629111980711683414598688086460644143666169840458145312316973928704731813165674325331972675262356086299781458728476263187540095467688185114021971219574659915074880436220974483775878391580369581808666062862686381058920604685088464344281946969770243056961272743901399037348510193299174170517338453558080413863491471659505686460179831407192761464613174760459501328352643486902410468592025650025577870470538456849822234347715868711969766800582727110982568114427518819257851570139002734288609784835529784585489311006586181692338660201825660800355859178039384423520001406339080481248392483260091717380810637137125319988988178377322625655360780018963940622038996362886033394444788455761445522493264385771256117147184987892318344970325642725947770568011848995465091283344500206435368261677097326329310590610046689363212092397472458939907653394527328736702420029159647319793664590779028020539614150866049002799641132686081970095746825579395928113825789247117994109377444548655305112187569045159110165365881856699117267625008361716904301494803538060607495059900650345732202759253871554496798317307920528487380764761466709208338464207613127771353451609229765543955284160242667746896744258861279955429700712869332017778235783804175853755017027649820111449148500464148127000192290417587638692518326118943756200398552795146336346311775008868836819193073732678547391041416778064310891641470926406218790540608768026965984163073577580689789630818790615592014067227120290937392537439203354724939993904683543273504603331284393495337555377705156524723783507450014820790047213277504156788105887556515077289195980279428208032160561789557042996477889259010348738055437891083959512969829327888515472713145622064701628142704302000509649761808355260888856079979576280764415755017634725769649296710376503597128840885872804606511089205838872228734877486946328647594468987965940292340417334636689410698908362998960911552682522670997453380453819654364092847996671141848529805851885188555718070567800543653485582229358560678704154970380773265836239666458650148916459477828019198376065569846248959315515679413462548471756425101248893917984958834931877603801511221128660096446444127076191169673399144118925549711837054048951632122050544308117289555699219267906892646703872638643217146865172653076505257760035879218209581330813712666948793631820993780994067546728193389243618815480160963338932318668152765747274764534141819227826945565816556345052215793994028517040962957904052371426035746490339416046916611651941331256193279467439503763476928591436704833802544647410867348283016473778711867206612924589710716025891110143329201603963774955567455347858949504218876296230328727759168853036883248201150411727459087228065591944118384411520498756943417931750195337165463379983542831928810264009218898313966265587861084527554909500037424125386863270540789501894487280529356773877981245959246949308075176582557501025008445328696207412597183957609407747338293059610538683215546688102892886571823829629637252133154116656606738021753217721533327764522809889008259307803306641051751188685927594739263798510405566776064617723971871787736552671433452613258292067269749479272649943214809051942253336854542724804825883853940292393875026703411551030295905896917230363336425495414451317557145408043885886925177653660644627155180264651669610401873524883657353282206514620642952769394748928443270771697183684173805975486383784542906897502028135571342950629060219857228109989482500745063997033123384488107060587204959429528991026213222168245858934857395159233538330497350626886643438980080337148223329716720005561728232546110459212755514380015785859735116472651090703963068061824672303103628991784082134686785118924606131371498251859543872995703471280311400816730953990144395896239174039713297967764747347458676899074683622404837561624654395615958652621412050412082217589555046159429622877270115265257438315618418501564619475615388029351255852492058888564531929761667340983632570843698768176875329271415302697093204237623095104721275385299515381688278943609043872956858591832325197108834937912426262459588753178421086366160452607279734499211570088976605745918489557622868034329768473522055665617485279811265427006011703194567184279082181839253441594782136632439273381397431373954134497125761342462235176126338135158508799963823154877999444428119618605331906584250893303541613362075981683882818850481290188724834952899011341834762714323037999642298290014461449479676413835546393699513029683219224044675700285545762062120032124726783963151947559972220412364966282889201837950392685237637430170032854545684533092761231136690493267297587521006571257495942986212779413798478242631075783246027105569681887612215686876795085445446885843250045333775552923747656791399141194769947313460695602992594342982314743279748546379440963185753376392349599334874921179017727661554658186333163532751948144945167156684546040634558912129121064336668595692079943697981064396138547631244085377229427666489624068008769443434864258658076737916653998083620454972503208497995826432794702987994635378832163510519814619583730015963905097160495339408063252225149900626164475696402330948566142372121304963873306068749304691615401168603625426813746194516712249276456228883938964425079675331675865105805922208211069064811743209129815696486859885890306603592917532497613016963886853382662090586903489972546983521675591050301672991470244337892216784713061578374990542073057337728437147753905707624070434174218650039028080845055002990581687500912735898369662550281734697098838473268440948249220288352336737594323280933917179652092410616613290479022029227018815611675133203617003409861959679281906355848472540043172234732714721294893950208141127848619420505120004192323862759188149667618165410046163798707452425478764555981633401293325686364852328195998199228232919122615285775659281072426501662337922361674811968869230667524076767083223830525897989109836085409871282336821170676150416646549888442523975560309201399006316480038491369002762287641598778889573406338788269972954859663009749584138606859122308689982405010951340892126891518150849678795970160088819373314952722352873143547953493746947011972810553327229583328128583468921766105811471853873390102015047596058306698601008220575177778678778731397367730577748495994699817701734320487883736426051830421036181817791189854369234681439326484818148639911319729266185416283548500028065562719993988805390227723410905153137229696683534804965087226513620327430222435827630193705400041670315821382151348189785899661529174005896567697983868423824883933666739081811491892935382516803284936492975880520342949132566786683683272048352174848233278070870745511431572174432211928824027285993124675784559105294422068596000349846838017740374484376918598535185328942297054879696714598086523004066082131952637769271011658619270148896162504773778908200535645614523081770603095715269982119730179966867525387683056432028651305745584648447452781206524492091646555371159597486295813169855961769568707835139445706493611150969557527774869330874979331835123937705025736548697886867104301773321417965960955588227835613754078949327379789803894316307537037758834300731134348138282396720058166417920160987347554693830567331539041946942916798200872954391449663253192559204854979665419778118626693083280469607565127292102007605617236605571518760716704490088843666302254787504891873832832555624121948124346437326081766404929417914672205859128943690238309440388557862502092841274089033927591269419605172762640808441929845050059212074828649599760855663686391638141185880103205853964998428581268297684679694121740481452484229146731552611562600718993106929587150310462932562131299015816537013056978244466358626405981407145936979002340189449165143831895248520910190457865696004525599632361854432456713287632189969501124633398397778478411129720661281266028680059863348191175733881606110642777817405422969277451074677430682019377884382680607211978475278316806652609071036329690746944558135434483874522258285542568603017116286657889983159446854272928276881708601178321729275423261409471246759652722188465420744706231388301563410282601045608587002796319022236836630906389940332713246858529959484759416856605979695110101281447845106540945067031184005951582635672652990124575347979891579464660439345978630634561662741371581992485272804004807506917897860721053426250102275629478565169106800313563584328764105555935992253613866944595980025576931977040047341158822276596729781460641945124511061706100928916927516409158623757131712098006814247983605371632742393804723837980581147481952198635159399940753732335217094886910149452859453300964688845220361438782571970505746336612987680534536808676544805792636199128141271712618154388597265974647664163226044820083764679362697602207486747345066369128800379523865190220132820680985988034121847648042302172286643820259082521088834276076088600655339043048972158886689666654329951177506659089647972520699254164065223399636906568797115497375890777148273416728541023457664315860077967461646373940200735174225783436874826298509781859164687545652628587528005537989064415301819069770610007061249776627989114093000840274472174019181492206675460041541721227177939613476731396422763084015861364081494348322870951119808786296246494526198276414265054349955932000728958133424403652546450956391555705422755123164703562650862897750610522434520539323278376118051826908504122745313191898940124625016443983699299229632952583844214918050052061770763455925754142150918406196578376156466773736560009016881022971564559325458406490951552555435120330777195567984972929460798108511661899533955370377544383388584692198335099148212757335241612140346560193394872681011121202338231317261117126322772753675679296194059640597320732359053670309229562899948794955940946092700167285914130977643308162394371413641181107781184719514739454378611899239496908273672481371454537259745809709593712763462620858082546541542613872705555034939730925104414955269342641084546916406552681073632247570198965480798331282366674147914121257343326450016551024110555034928374753960080020753760780901278601943343248674568663229752434920774241198754974500784362232876887812179697505704151367550989228939969298935702229988110867189666781916175105000276063694839162926071850257495848940458094058811024101289480537705319528595563500925984558813368457290428313583277099598762185133633354453581977558019190196039785584668293257693701990893122727583621870277457591051161642083825668960932508646258162610894004493035290662326936172308978023915128912867764111004940058626804665305136485734303446864388222502581137591756675224317868721270568478443005225710176102158142237942325826966203395631068507226609785640778313377483572029738569513855973619024179277473414683943145952392075498765097177047097279378009731312571591886423056869114770609824640627395948603558019045260849580017600406843157689814140929285998338778293033665255638833983339019641251088038055483632132710832138798994775280427924328517231550918238822763402141453390181268437483304300992584844035267852006730074734096545863517495152606816626884403594385235145928711111390474235909609843158018939515825139659061501456624603206694386746002717202438235611748098874715363505175290931085738069116282953615922051790009194527490417923341546399355368270898955144893632497757372240643979188521592703205786850203990282898869619718166432680953699062225787260221706450544226409942972607248187426669154531808627329814740702930828471567058826382641083930153368248668704721378804164660064618170755478676205775471834389692703912431269703204970439425042134750063586882179542503173701582871192141736336778023064398456820353992703146652556480076166616276711208191154930637794378444099502761520382346589709459684229371439196711177838021680899684270026156468960727728051232798454045220751449697012067369100822399825501113910420678917970316776440382859382522543458893735960208001065503894584710102656066269656025297221497205042714770033407254521938306237772837235714752003561880419528295069986494418172009787035989258927509182433024483172527379773625124734910129105704627549154213667509141925151002348388546129051960130756265596590909128434305860646943493160397971269688771360996460326382528355742948282469622855490968735833218742906264258971194807500471913328429196750759047534415467015186129440443012818003081686175246793264554793187836708479240537840453055399709546180701807758427069746323366406433869079035956309608106473011675674502637486848608245461701556923383348881596568036128827866654272598268801316961404261041613751790830418842946729560816062762349445240602282100733854066953546826741503179179945578378689517810527464224882190256605223995504831074055881862032623982648482286094864213409504449480554708000631053912912172466387938280870288965640402844319523274526333695668300212044321972444618699945377640444507306206880344516062655965672290146982076397035637201842490650021730112222890938985179822651357309151909714039286238364363679805532505099456430442378930528093526067500411810638501368394152196476099043080915743340009925862355982409968039294946311560498459138854763792015920994693986203309032568130511468973353252768734681064235230670771081531308558951009513210637013058429326715008305654362196601910582176617330999863946932809550622019315864704785660967314139732569511729042191008713982252482099651456246684247697645015390027687049682112945699823086114982266767175267841402456872992796110602360687987892720430320421596649224935455737906966082172096181993346824079949505058056272258450277692787033028392222095011189665087130603333606677549639527021217638094398632119334180532195945036487520865658650075797695190881406529174471529556486060326444530326360385202628782619045434096075016922328150293765581064394593089711687875185588492077003953082268401573426754947840105605469023790313653615988666189306963482057197626124519421524911054372172933504751504078983259542051824110272155655442199876963825057083288417548797763992100603101599551077232510832333726588215915949292202183635795627366318817460833123225330868007485008359511033831599713157844431748809978492300791232518788551126169837728401255265492291526407103318720046406635950309156360518076111059225142586153221839136395280321809449880473841084676844021083748532928284512799550247023968504924587713492005633194019159676767375575340853578410108136341958820947373968948799373795679055666837248986918218840561687169546035304683563262906773451015755553181719954958633321773170191844280426740235849878424487997450854325341657880456459621657303109605454829944699109151278713270341979670504518012792741236488205774116234530519730930041674895231533248661027584224983731439181087596388414370818205755199336046510952161385484171144593069030034909252814731023291823509114240930432472943636245031082666199429699095153323065955402784400698048191514386771827756859627147949762585534101354896513306580853521141284676981668029411338462305494802615032176012238987557426776908796803750465626555796909321311832405297657705086779712864374121705207156401042655466113029631544927298487928749571080356994160285829590910699898643788136440343854343436832673269239530567640693175211670833373000094716782928100445942824248128274814832934838932903532033285718015124113505133427906768765042791470654539674973867526176443359838799609711321753679640821122109506166231854340980831173195424506183055715940806165574970409616157711665668131476649496545570918139100736396396430584222134038204166732299682635328438542058710807074818239269560554585302861432638091159420885893302215672473232017406949415710045073556349262022891368041921616697560756332776684760257727380694632594241558447970031080139803147877277529344489919928798139783375029839878089224468786610722130948584677494321465807391276654029102170931368464221220381471962517122388356318343723636703175414238958580302384317779776798607247329431974694180043920433951084675272456862731049480610045322645341784504204086744096681851751572593874788765395246256090004296188206870609926377163421524657004767443515325006419583934168746322316849254927565493619827037473937957552197257785683662638862518960402771331826551284352739071847903724382308741349513437069668273670759874989303571215415594325221389319159962642087571363778005433150665704715854057152795126603669536949756345549603402648108341622138555909703834393743602681643873636589789815999556257785862635243450162953748250610387735802187175747243140111256048005789491478439133925770249595233011069468261278158156915490924335827393941323012628163729419467124386733784478418090633751082343057257571641817744880242336714695198097756516975339983252719218079277880417838430785889376042286718377687773568677780568224151540810294447292370195491341698280738102365050320559670828407930122215561720908059764939594718478314842227576865710824807686485792771085214806508476679567635054111722423264881239743742548000175385528980918295386980259185289882946453189956942317793077055673158254453351428215725058643208584705756369183908117565484497091745980495358664561799897372376006967712893685235931056698443145825772039639881909799057198758925344611415485120383444009134020491825493634105884893689226303020009238758728086380755130214109546324679412276228285611493912190251294692608313304641958150572340539990103327131106686739146178243765603221705482331407599654347980115364434967676710913810273150887182990074137598601964326382994027169967841834069444267929761166372506260940546886321571595250129101833775865834508990056330886705236635247208885578711914326048501728709806207488080000630012269532140262711639190075086000229100726244487623228077062703159528732661561118670465413110691127985688261085142985536174200302968076677560172065642411564514383414637573441116512195248833607157387619814555496650667971842327040087915626999625015019599816682775943602745032441269019468352622682415814694976954805364341433669108906414061758677010832349682125990423329598858675516181422334102046284410439386270986658951670380604870833205099335762960032262038534480747213113062771401696170723402031432393458694900738600743697509353936690143657995503609937089408094196551226226973406058541435791087765745292848947654589664971577092837476956317178270249495644667956023382471517324104762211822159355837411319621951491183423172597316091523273073528680908417458277685850509289580704522404851307341082857219337419281611477651470641306487017999802992423273971690968238600470780992924163457826561376486452847886627927069457014084714967481105320961660109775545614223617064685791735377203493141818556353964081842551922834587106648762099954129085059192631713267722194969786858218745272525839841861675054181706944392683868127493431587571858901012376062884742313555641109475109284958649808534573944415951918673267653585090640630800049289541717943568978018124785947271976059959122706981514872256744679254823930071504964653493894500802344133395263880506651384937953159867185857262130868743148690161982798589015626435061536894539557000551875196879843058698488690877349991854545826087332040506883156005097236648334532812882606131406891850945527314850970400991421706052218027486814305396731941897860861771935255587874315425112033250669725573321480457160970109148652024644862430712975518920916245827085682283887239076823665376391403347698506135618191665108196412210147370387112976950171558044507539465842053769041193945407795371627347404719423208889272190141618172573069153059188950550815176023968937940704138893611154435229216891688656082536577815877232833522034862497054462010888231243969521301049035843943783352614847420969649886822729621909089270695839092268908908012401451762348541289640348512726909054213546720058406294379965332068656881135411426921133946159705782387431186116333290847045757430489039739902981759151123331791727588157937852274453353692264030962576424035525647282882119565374352844306231085432492899171785820155347748153424752231509666433658306452080515395925505658082479868416954201496430602043500132470904615229785366343268081609709653462298166487086800740026518443759364644884546916451386053141036160733692284435379883069402726324079807094081776242773987234555883832182697474816042927565427786424453493669382908023020311278084622040713686357821180897039857305817081419076566873206843103721692428076102648298260469631611818119182902546843021976586142161223735551565076664182673956474874289045784299731668806315009246751876027659499145596208943530270164827905343315889446016478872118518475467228945643956383283949213778862207158701519925704830269466767028465266504431793786393235233313479417590843342607129561098478063680229307491991391166568964435501744558368333676377330456449185158222482317687402367737081302790756312779776272394344694736778187723630754358952300097233502409166021184124931872712369924628417332209629438616020492345730627449528720164756561752868668524371532879392971939858420254860287768237537392766516842480308849335921368280279957984536508490868514087908491777017965638681426859935826393525899386682895529917442778620050595487402232758898952158876804718524250000184559299790163476196721023864325505878888570838581677037732846953526637581712261288770343101611039905742700424446347379336053494373889051064817451432734165539393170906595315973914124217343663927098710704327281005699011532219881984253016217383214466491526417306863373347460353566310218096383992492120468827795998643106257985243721033396001239406797088358775948985041830260445793654845209739714587432695207221402751451176915927843642707980109569704061815888866926305220899677120299884101236968882596435749362547579798231075019917294572657406503970066808390496077146976158967272211069520190336524809397977316512156248297494685767753034106686899886362439916233627751723490552950057775050944089717642354871127023304881749025584360295482404350670373216152481226355499235156047390130484095845498766905451161942200760736175793227871359746585646353662309388900144961258341384071523067745232087220984558572410545831511052868279419645415640774401433850502589551503561203309478364371271662609629694142277504680834254816106461201540318997617341935261719643957761038809345532200120849200989604081300614314737104336478519368527918033542590457032595273344425850918672334837860407036132515113197244706174755577586443966380456816938737081498704403995796594637515939124632385346547728959293950505825446625191944435638984823586813451811269968640668953616041634939975078116419893786679172766354838194646598885070148141312313331160962893935518906979637179250705701275390430208634375244609686437330911704075846019168464262429098199798066767409172329480001005291366446674424001197562523741152964757893719335777142561192745312536156291781177280259750231402963069979910178415737876263190263025387249539221956366936206263934054145496485846133048046435444802872570758758423821745190099985704737283962770485406051736140675778174757277187211267125527201241011516623279447396436819989952970576287489833850576657345817817504064322429570022576408503639598903217835517780341056315750227558655258911234744336119634184710798037427337022862287468293296535786113235617287487024167719522376264655668354495903213258725309334980734433948456450862354935418487559098930433172476445987371549832237298260667323785235372678049505820242428460173468376480413244080346643968110596283666046292561764696930596516159306817361233054389570000546228153479587763647323869721472502545027818409658130204435636934546719599305209099028523246002880861671147543312397783511182043179263768766992196133216940220231358101640715787054077883392663534020082395679607876092112137625867021465097860960880402251667495284396350746414460986472731173529841816591510468650001223739332966610578413155546450661821106624798551085486110161823912191159350885780455413786062811611787750770443919681457807107093484039863983469156321476476314031273328686551392134335518085080976252559439181343637702122098577434514170002527555601439413168572413850326331590261870049526062355285466192653805768261745577982269115722178517988771488787038056030372638785329731073497724401006307376012382845416530523897736869884010089775619413409606474342806499635993263427519090284279467033672749303194301313002936389243475134181408699588526034915428278335984517692740178349276244699261591594731348088326671471749844118222117248176064127692579179777975208381594881810085289053546560430362038779157689570201148340588811684213813544054318382031262227961184809180434476945243600321650453555450117427923031744267606893447525111486621837832107842608947517562304900504674732146334376650275177978405398948990631475306728961500456328265461012438516963621988528281660876223951970674763483938642911641317311190849825397096677802038917377976309382963271931558816816524393384023117306463805968513812997586853846855683914927638750402557687381640821855700657547649481961446196431836206675042148007540256436606455505829113208013752949014282623797652552155182638851872820361376981665488063016451290970954529378522143048693193400386629577158070204047121027921563065269841715377752819377985272742694088256531382019152379014837849833993283863544686814725370211833146451253367663878156630673389988730793421358122467546933732212788067052978389739831625441363500051862628196024035711396586207232112874076455382535915618285526264054284732002370624684617728249635053957873714689838358193680454039599289105241507127589632724433312031629057015565145761220319685224806865330942672283188984097621822807981280554584518663136108207351124074717456290812291665463024026067628523172696784734637512276461265541120503669270404173736742139892992383007904978102567739329613966194707296830196857048964579441633716604181874583413024458628636018374018983328288561157949656093764601509451908215216684353769220525337562635377858442074308826216277796896194349129991166829993584439526616943973250499027716748630029688988708609909068885790958379047539010005371997865106510649291001654627828489625196190046361265859177336605322586541151238744045419990391953104434452132772649683005737952426902572111144599559349700535346675293062205550148973969883829389753789000601230471506670298697022298224482137996120230209798797716578441506688509573412930232803398027379246621582786898506123976458955895754182980316901228552976219326918488273507606291990249814054081478527117426533854955685294530470030217169019876634302969015767006518347008766406385925423627252533619226736212550832901106835944790152790988460185887264368681029440988161006270059702720420595313593196773156042879171245601683318846629654978653503653658506023550353814859221914657044568421780539521458669067796255830499169461732695274015807621375919386712411146221619817565849495388101238554230349537327924135576132810121472136452946953372743122068167380050339412517084860485532920953054372803009438097751688997852792229065755879375876408287837662790807973721968274916267988155824148789817707982157935407575766758661908962377824701002599944567370629425565144999312746258729328470967786537347504529063393792406198345485218750870393200109633561809419481725283727230113970343253114699689743614613479112458917229886581167549328674127695569624109663411003657732197158788971183932427615057364524297827344570640988702255421170543798044466575836512428128698683505913654635705609195298636316223370790945895359908031376737780524720215776411970251685228719374496288261350162462822796202261294934706044498060385421173282456906134123460963608704787195463349728416639018351101896885105213407513995717549380151900160744096305367232866622843050742244863988696424886160777462302262991327328115950739480496619674847480780843041243233843053986613235819578606557242627725977008063332693534058179190839992295702179710278721700729270329892876495492725315143020807521021314426877589337059911358820204617680926508676608387773528311377124321207499116609998043246770250905674139241962283439974819842530868392896977515236950889388962928836824101678137835887707825976540946377665926425051463720793988535885269108935197952694688618973122530948808940726974944037197251185765121862879521030069964472054941827238614927493348172169690138397322111377496437158666251094606619332278871459309251521749813039059997530694121205374205533922650111879571597255534060873374584680824608321279046627912947983275787093245934942744382716216253842407034165095605448041315424561200198041598997221568186196690733417441585726794188995668705816097805670109077392455125950972571584036219588673444615425340255740898838448177147438600907591285610567654629818979753698344327329574078098582967342060519432720764273909846732526835977954606131859172474466427124388567488957743838401638605420839561214374289912769082271980340767435827249193734333729330813701217370910241337074104958290629843661132893203093352889885468425007177271603090164399798580036892819607825696441872219580270145808541918039631905817908683882020926297072334341776683965742266624856374490306503270475889417492542658985836378677120437512993839502052620405120386527756509624356223914981663386919095324980791031419109324740482995625520050356546262792478645522630869235917369283875989172269101135714944040892086728343764058491914115194883538014952274707907464636938283366013694934879074174782860338420917819062533623771267142198946652095304934566865237024577829069114420984193271204594003524450448642348196389250744999890871913173399803612631645409161316442972806695060784670114603169908750283237536567023557080653552745882151646446842486855737640060297709724514647051029954481991645045666028354780898726054042224152014756238290056405218109949044521121482726379392059872204041793435365717991478394658047820149613814980767834116442757652230072619198487244120639708926787435909224115901891042827824869815211856049340811157565047263264151073485140913839468827617275370269338179211984168417356408668821138269601143806681168650983158597385488256022677150862213071278827885965393149855267288884499082824672852402911286276633875003039281640603122243320463371508814886182848800678858285511298901598730535631715730838659438472029582386770812190681558776963382123217197944736484493169223099624257692222907729595846560665150341974277390868253428439289018419319429268264390765377767287851900409662427129007108016645191311171136817521781764686303788899184388202241293467357151371887781306328730527748852479602610265776908464869986762056617806997661107116305976370497169905720354858182908597896025771814968791857581207370581969034226375817742637141945112828897561139966988422866796469607150336242547073344952519824797974845664375147967516238461978830702125510941456866025308905082060578110330714918761478008164544091397331154378411321554740261185639044650398816163713202956129161728379644115210402747509088619452681238317384892572089010473195700100923680386297664811611987184773494464755884183875095899678044727712091338457413856695015336113543092777135680067188113133671777274777488475153997904552932363099141047855950140071692670356613593476593482559279299947592035807305778614084102870393340852957796354642060711537093655725755377326624753507898669786103293021971447906308458529467268242067893134252078218923157951166214483163163607867643922121235907047155970926971221547049692267165315627226987326160943899537498133498623294012471307341724633727147348411965922622274446496437185381094179952617955238335734739770392396718382449796554382033653045821499954013371897666155661601501114469247078714026650686966883339664676566200820243742950192561940888573229167508303921057589496312715451642377085508503294117893282353237040473232017808135499206822196726703839469686523552644183295640869276837977519744129839596307766806510984603840735444687992352911577129965361004181069944345118240020546952186392582256509274353852663485208707009790130738376867400659946172619855899806711331897065443677352225161387427608294914486828530186126139040518825054734396881012671475813548751655714152970393153885879448210787907571245416396578947767186105835263679755568778621713663222234489578586381117137130029242894331384155714864458936401589665078522712786509000290720510313679425731968398694480943924461068233754264094994793989063949330906588448931347707083455451327822160384098533648356902132721256669923587218453665837786801394592118600219020718915124442239883126451329822973720389906751556363277614400597732226491665986778665464638197640753819580726990841706680884790982821853842915897400535101283294693151571410606074609322509808599634950249903097106303714789471703135961319535237026435846711579395869477288686110818523030242256844596854192412016458782696749506208880822271158753953661376518150867513683728807783926699607204330589534426489434883433879327319638586897212970797043970786258962273620196133393998205571998282570137138775107125386961419107523426448891471947920973352793272444982477122501954869635099057810750428449560676745447258486992621848971570764342758323412014470696573945306665378105861031274699718975385908651026668629917951327417247950922419066018141991111497205706649591652878361062750605298823389663581642190727862104391045974159909358344521523306599097616251816083332697945562296161723851093908103635508969483083824462177650283143086485013909927446308232557454098524673256359359974085530078193841390663093101089637859582711457616251156443358385375722287604521592117179897137645057712943076733182184108316504543501210876539284722677792939602209312941299700058556412774659453918053337105743387685967433921028684821077418086182539289780234739581459385842300605917475594832384132449667655980598907306366348490060322887423834549043699712035022437050352672609296217442492205116050531621665294970770762269016920357303222464524792328455779989239275332694943001105570753783357364973102612539528621680630952111879963701880317555022856921533114551836393963952159252753495371838365150747672040717183039006493146447985045978566583219154277522584431247274902779566290004566142112089693744831485600525932902940487692649815649009583659492048276765637024377331835218954784287634456612213861950032026860668415141394705852014675463397070469478410590862879859749951894658628711176768741349745525348163083527280597100567708749263344617838866579110724074219353463500399724271384878136319188757142331769776479510966489638560253201760388145132715251658139013637450699422672714964278567459635372078242235057931873215166254325840733560792603646047941899569218422413480141908073484574250144999685960505606311167149040426555250406568376066156553436783658203573454313357239381008780425816394997097530192120621210178038385397671274252424893765891906607377593577871993300322780503224742190239308036364912442730398984287317930622980262547086529013817653812713775743250111551202353927600884006836120997886356136345514442329832368011565636561352396476947704555617664543453578364315931683675404539309747674480088172784158130895799645031608410053885401726065701595348108408231820655004412069377517687609656629592040476413347206952726940369328358925577464978165345365836875794727009649628708559035027172706462916697859108378986525558687202241224902997419768325096281683928089587289629973021274074311944328035296634287644991107576578188943533352013435650308253410531116672602450225854451692344846089631081076986042859863085534922790574116754578276295309641806097178002789655746478042728732090921520926789520995356672472084522204197595224710694574385252770552633120371698041683200635769132832319853799475466065288563314408703772131216954078029796772262669939739127308083330535192761297667941164287757318571459849213635653741725608651937300038180937643302017119627867607345453379774901966417283366403853403905471769720564529321920562791356612890482567391540943792988745283623881876230754009236880471124371892976269971474682756228351253588040427217882694548771947080175487055699220702107359812948874679546279165893042096507788897721663908222232522617240645176697660382783707513241071559345777543023800876844977488381410763289964406857849014128601799272903873910824585626854238941185085272808341863253062532536068720122961601845077131033747798694838196503659969435269172845232231344594409413011375225667982825376306661275939913387002533147957137787826507393214010559287905550267763091868716403514822228036722507150255893996529730293605768816681897912344258618241115260518515574747305573449067917106595648824120864828529744390284650094709139557587089033687476621561299540459573162713951029968444760742679717327623823454442020102552135865860996776616587761462851194581892952055186774241448184075285389527818818255069147443517298832137602174304568278462518815129759964905821649617693923845921832255912050763138267672285228912016016097470947212632307724280592435043470665624114259507160969286524867925944334579265307856813606883578018341821636253453858822494785629915524554350263432472267314378173957769508144560895517933496924867269355706113023874790852566049076839713131004345082899641318457096104920645595879975546336175289705812079181000526000856447704705557053432669311350894322071707543909795552089096163397814420560390796614404379862475536112955633174878166310059894542068953494914823140884783629728480089097928932082119409280290919929751474699909710116083237734075999717322917384617093932503123742793251023466686897143707969530505479379579705399094651856998106239865524133504699812275173016766594152056343228312685764141473228492405549391520705903588075568297775526885143788488192135889792737741505950779118359694220303956262045021325818475034857797035263771839404619897901795046962024043934670040430458360817237523847789980693761909447815713747146891564368823439259771104939168921268883665059270175571732221239811498095962690500209321517941248819681535164329224496161469572510731090810069116306309539367705525383949187192817595627735587317070347026212857848303737258443037981007139129296384785240361829883982104375731264646070798491927974731337028957100372977778949812176630737365023490540179733967515700605997052297190168309988868237608412177786903574619615950508293832472899147520323091306557812476303836866129236955962642230280081349975457764599070108691052980556273798269557894306394626378325346899779359406938197226703752944938655144946467504031715935444404870935206459608608285217848669315823208539392339023047487338788313888083456189518800777335049719673131220719124095927863021061911119386434512493049684489588317860320012687318622100372899718467464481736074965603175753088293253992291071756456038491420769252078237731136679054973960347601079759473104749322834688395100575739156560603539056487471083566303889279121696523673609088557912343135384755910428652739263804707863256084904197033859273809163917278378152548235451060069446089338816906312947440537788594898344697940994155064453702033516507590114355542087729118096409713477889075659746358012669184276719966859007743096642138970883124659633822605441893206484423526321337687947983151436953970306860344343607690416724303786074121615317128719936302578007935320200910562865487633827721356457636037198570961663988273828016401454808700016565036804374604305442300042441933287793857320360834154893330358534937807548432156895329205112685792591254410640004949798893063832233635443750831587547590397317174576997408787748131479841939913752022299931049231491330959828301951896284119671261530538935096223028550841847171731663497089806977800905122235951225179712642979242601922607402752989045963098111453305775483620220656070369961800689368675708076971615087337476596990251872949294939159338384360623815909293338975223216161841099084527178924376463847630390414781658771000594263089511771768409458996975657198258043287090324404262440197660013140319373966542061003544680451641258166153416312937305289339062716724600516544334837726076195434408855943008610155468971717501640521400298918542998445855778816716348194851300035867413312260025031069730309578464908636179688999379374750854700019886748755898891180860571114314593626534108365464171396709001699881730545632499311129879695506174042717700062117482626399781331909228565027821501106525439872843710453813950508285139604776921983971280356875256624862433004752734562253831021150272883474561051185113111685055072359977731229103608154734437487088873242081488715498465634212007170693250251901956196818302739371847787512459402079629466733655305990046209939096581880193728044882267190751655498502521727169764686049770691985523012065784938659981900195975218649784409890683751625213422226619954045610888853722859586814379449392343882498022671863701213041927983384362585366405130867735065186603007835957309806630809565587715284845459090744370917467887772317361410362181244529770067557707060170762013287715365151357053832725519237343284987565620469350508254994300155106964030455193351855413402791490448217521666557920177230203026696703630754416593460668312509548274834336824761372351403200286840517054840959594429877397596778163639616526556614779671610823394437276326512026511885766840086070315262188152977434227264286393094267031677656418191358129140472753566630688478546869106245021892076993022738340323718843356887142758469930493453911875611567565981602806796695463955177825640354618866814838082376922025894903705235310243047883580787976304267550416894924746150220647227231371691788913743120438373003117312129120041826316093721520433057499856549494502334245614802639891512432272725899738245054357464090827295157365428229220896489912284896555722105464932503771804228540947498460488171844346631776382805743996891442497810361123216793340486119183882602276713758720156041730518150947157348647055445466107707923646666343765557614308565776210029183988194396538928877139031249910974615790515351635017822985072053289167509018374261881278248408398981247063586736762777792572316481183097232129140798357324496713258973148609836592697872301537490693605829946761150394596206013015535914773661653104697143505341592584672388393379243779662092549629656910702759020373244094996527000528372440525318330323698049166787332341358540107754083620661844107231539237063317423639076600434249965454072505274212699018883789605147392242442278229232786165642810804078133815006758562062828323902644621139827199400196959752263376910988239353870049992696516242243118721502672976483132999245074760478270703713092622451990275277500284235414072398167883136330178154238635589860430358935271587623329837910149264464744803398803757523586968304037850382741506140032024744654060272630525569129459978069569355291577348382838333778313251289583476955992134848820230591556394732754605916153032527935059791603620634535469468919927840034104845515981572039312747144793944164277297968241955047972985319870588114061215167586386818400455825841913329252615176664873808279093162962162426765841847169719612490166342659043093502441823172891895025409205810089831810728813093362753923270322459849412427088325690574901515338554399437389407932316963420818385093250344699566284300706710917154076778921020510062508897245684600233841339641191160376713867018329155061354342505484638852748152216487768704326933544470344888558264934338666593299474284288133224704000641773659449460603101057965571098086708194907099281506536739595459119483000093151903834271594531886894941952632242167293875082748698841609181515411472692398654663804152979743763726495416851079245238068467469566462122263397233734783880067380506620928377358477506115559992713329185881166757542564332904298544648444488985216204744402965345477602818094277116458482645640469888243133814172718298591050372424232275362776481498380492617773889792664739793713467375681870513366461930095866064793967404730595867807251329267586726081499490085213064678619339729821121857460478823136624655818132097032899406059902183744899076728744822595574655439819513060892512072093104862892167796926702578995200990977051813625118217750478363997271707997553895999338930562777562784666162536408694252266457226724185785854889706141262500150829998237464035165931368094405872443783259155827668922843621528451205264979927326460225264741783726163703711071099928585227940438995428853405691871613979985319442457102170624183957847864597561863031306067278538702286281868329604212341091536256837069118593864243609177848467888932073819232161058103933832086345779795628302707219564842612937682953984199021672461768739336584494188781166510739890036189486295979607411497235760769916420941468267408866394341535410868358624716768610493733258539602466693715388712812171634280590036782020323954773441912630385793013580378336516547913493361651917448539298374229174557828172615938004809581167869808817677311335736937190501048149794047807217211443203607315283294367737431747276244747051991386789175828812112770137101636314826523125006587138963885806501741614434469066411898997117614554235984009137035348691075716236354254071365866308209157178675328737840833038342775586897006512448934225723239490460835142223510135778774514681305234186667764942429392509543648494516652792452286482429496786876821974718212516153955019181257179774214842649224998464059033570732596935932850959073614338602581299026879159822471899968702006819143867996177987988974449661428448576923527662797519776134728841144811555123043376338709798725286012921574796328846040807087810845543310833768539039705196550491075023344973126352132299560062073203893932180708387277214711635442208350964101842706803810844770652129612206629963086803080796507841521656654925948687006533376724569875972192967669691696878185398566601007451382788184769629328666901525037247208665988571271897661066822575148537182540048001040955096101483842292376853355758064976256497412048281397795411777427423424532212858964126406918584004704739706048676398490375086699837638746651766807468982832674178238964789129749781675497537916892964842015683162249402578131843352980091236430869457482391856420901549135802634880941804580929774398742272574123084677671578644801400035279220594622556244623436069121370891086738583879006361770169466130039614234421763860355334826953572661442640470520897084757406360457956992717155880602886012323718956043849497009432101040027076251354245494201871939636145581304374691496177328037809253939421681661848807270935595819440315927501236906477487249932019235355257443595160170340247302300606577588168776416641349315730728285663544918381302910108947331384951183490397506428145971940412896816579573211595336555187465813017521892462430556788128911009121770138260548703525505568508234941184846591745783882491803658688877028821058079898002677407024038195221004067390827187765494852409028545032101692672623094341531268018180092406455421212896154965552274833867079174776278919838297686997748670360592113527200937241147706072276465812585665549018674697579126109630789164414000509247434877639533119697462541697740894715563396248313184223318741927820325984635599920671951398641213864513300316533171221813870659063229293109790071532295447936774569035852009579864114130568286040531651173007962565641184219119838058261945531604215666343098009000678171859246188979182026619600519476459846379394711428897000734553227437253631244328033830942963447495208323478491992799114496268200998885673237660740696633649296826972739610348772272026490688509049041183490845320969751728646267491447041933752461440522653774445936165153561727906639713902221072179629171049565040848899744812723266291019267149384757569811844619278366543944465768827040409860031902382416133071631385596631108530385654618291564990292401266341261573567130746235572638442088900436028684546739119158973861599093989531198779767153279910229492074037846372118508516128582753958897696958072187594573222149438648956803572793757197019559797399409669587867612852051951943990762374386658824643443274430370055006562520857027187659540334618764352364754475110578411648146750916672497328039332846109917829883400864034009922731390993304851871906115937023948676225878305352309803813510970737432303692387474709696873683337815559149289726098536001367379491419184944469989148671138122586250818955121869671899184581013950455910677283429249004732299834493704582312537463889507736929127701615886758055702371988656028816972769656195911497452778305538615707380677345571760490969537552815531662057054544093527028396374189101452535069340280413495662090013705291711628460446573469787363930804191840160358095369171199423723519289454159460087969025250634133634151663099487075800099636246157683427639131607270685365743556516816626433063027183185015828026371265457970475874734618027832967211697799086510154554293633870951620776960944545804912628786794203256092295627443139583960457824874008841359419002633391592509327549020486493585609915477751368176565920907383782066016144217678117516312482528424384400454187889455157023462729190840543102499147859321567314755248918688649160261023682907684538497276456390448621558296651130831874034221464132136468209286517522198767518881313748213856646514041318990280515617587755228654789373969744319731833110342169313870215908247740487625687800022411965084446893558952522275000996710436185625466001077632895658358215398136000188638795957576696948765530461500028754704377836581597763391132624823116240959701044779917971297283290054091180597206352506915812603611712063267959478667929371047062334023647299396189242688513332464708998557355851148594894693322018421546047712827448374104496557508506488108186856719685394138824509579935456105000426479696728295217301259874022754435401755093168354550773580868236215281402343422306134705248873666318251784912400935768871059609873800932886986274810507333793633571986541468487412297916059398877581114723619754154972934196954443507095852865378111382113871814516374394485160423494256168435780502885896794018999434369852184254127485127360057326574559922447412014680772953400922489085722052497378432529517735026719806513134991969488833405118459557198732850285766888261919599452269491404037196955472649063020468814751089494592281674658487774508634094237131068705675591560022103489826135694203044931748451406907584149426977588363962252178770691171070480272601478176942950628734869802256347853215981880716065661579580135908243997568086715190409638534772303986445195767853374939221679347072633279046469342917965783775571038983769930754846534394945206716404372200217616164946491223537998374785980679994253034651027822426250385672789609294736368201400232259702425522890996867981613230396200257931062785126026814650032850311803052571738441778422657611144295247756343498814534428849665466306970603858421366784924167050139528166577207553241525123227987899335626201559269297746777392953567809341608217367201184946277032618112572480633340440551094283614644516150834159380620170892287957490633987580849948526295355989642164720292221064574378131996049155157371066481149406346774634829111579350657295992475706932084399754351261412114119996926261859462480544125641490326070816709094495511704453810096429337974257790814269388322392341173338346032455333584042316192840780758607653384903391893125828094533679726670709528620452587078983713277732133087966596869647133155129541751949744946458067432917782308559810637115924123873845127043511121602768685575179509912328544995286830076730140935576784312619521293607516156586792865366445913986061703015700205595533790814210636878687390714199449636440351292913007706921086662009390986888591002598753200359470967971399472750190759220878173960228216295746449272115415349615435053364788515728654571888750588047876305819500042884565822804645560837996163504954761252145324800530862919873134532639840393283731877089252190368478826546075992770988649581604022382074850276177544625016539780256786353732422528822360404877813428244709496695101960658753223211478737184267318432545012767869590289514073515387506112569963244889552591590291332400356725432657945419485667119080452775670991281955691397400550377561746863010090422097458843155922730447237363562731748666508586760965645414134542027450534831200702424155506404685682629107214281727252990306986863559530597241196989068954486393358001791302545923550593661049552923520902159151963217657248469927920636244016014116724244050194921898330317765732080289505348638552716943557144031871023287543573184810382392453297768726547086748556438460265341767811749649791198716097028327893057647489476241113164637148544485704568827834436226328518386482645504466621939408591992701889668417184983902862114552042910346500339349741629486275990291903253655428345833961196340901726093856463553307100168656755665120313774536780636545669098420818693215466588731943457267057882707550264353649398994955104542362301360928175006604224953129618349109385189564148101324020189328003400445165027107600489044151875699258185466381223897373479734628538357249250399772344110510304230524083654382965695065200592209621476292049104049839832391348513478753726565895238891966028614901264826387575393514025632272391536186369156275009204887717681023941530255712622102780215623181980807681528092820180231774436534806209502013064472463425188807347994357308296653883857789221676973606743664317667340727125050451457009096187839605967292798532888983611069757464577593903796933908249939350927037085678797923440632059897347159018904920599224356205445383534913601277831817810373253635816808271033897126820554018963591886435699113497915207122045425818271948911982278716740225041950194493183526513794521176831480524205343759399713045874661766963377693518082356580263240608309927330613395459090419541042987816720096240187802534964059127283083339980448432116405564957878356942865889927597662298677048640449038272093369145918196028941910147288906699074052403356385925625402879097502044300402784423217773369916377914466953888246699384723546847538327002714985440458332864841331528676889323000393319973063258163430432595688259752050593099186452616889036515706527638158730502304754030540203226103923154615353011491316343270067353143240284265205103513287294068641851953130919724648809521814999279793683543382368655891542120135522114039269659575914717689396648693615710602576976010425551711824952148385404270155810012586396745877583498259330275456422107046523015891092268414299529523228234447268032514067329562723639661448502127057392894285300617756733290269148962557125260044054695595507557854096261807969362543062351814342947598374685315925781417263038411512206199737240713598561590100059210871675257734799315924233255277691509893332605661225349313858538330504938456770427267023510896178669479104182661898005039646240448411630350510076102607907898938242825396574107622735871832228736753520496567276519036766585524661751625546972560867905410815841318600632182420257953543188971298272910510063778071173258482150516217645282974823658633177597856131091902607786960248665295215537375828515732494880990690130471526993486318205226042486052603058672488281542050732757930486927463707484890401601943602668855627412347412072200917828160910398998804779595378118383598962316782334384763829675319075002139041426596570848877287438022557095313303012109969805102050592094936554737171252567887058316469810364008132152823774989552838875245141120391709114414229148204751239444728140737711063524694116499918960875772788059330052174392577895462550018141323812899541299200906380927944105817277988083807016464605131439176248119550849859604278340717855885998854448799251488857731652792323267669299067382495545155025624453733862047421112326408618834871904843027177016124439884952441762212128387075458085216596819439562636675107332614648939943832164086638567128096668215045015294056572996551597235861068210871859083217353767349447325996013932553679124700416126458373270834816510895551745928513767161116379410588748854117718848421773321406526437473138515679992206496032118388098303870678075270686447879628470131170979488154140599630722005651463810359565072889593811258166619181185071994531565346058448249572778429770353364046938325915845437918382162633121502903294017727436221231305350536650265926209681106202602436805602218151093644370695656457409729708508449408439155520534176817299464907760327454566365162985797971122777427281936785846670498740809642848942360461705729880441335076920775115518894930251753422876531348234837208825914669078622307158886552582433164953865604259563324169884469452726027186883528156494018504450224470009754264692666186488099085372684514370983241000073845722748335011745932634316783386976332984553428610307501164006384558535909549004911009097995058226604676974560768782953514995306228949877121940716085640034351625542547521464038094979464722768648418491450729269462974910103121010647479250722649653642753235582196870276121287160675543093485905109235644329666880192094257031194193293876169199383576146336457339293391282893400448146084210004704762483489360283725757668802833405695983749690539574354468921223492441867082966536683340228210287456821212444241324033205564034067923282305441270208334650487633087584592872658959963605693983297980003855540053269943481529741818627979743883149933416531615046698997279244292519371546474153442343846517707750716315844207222323200058578802604298407340252967399238648812833311353589831221977558467597534028717188474392127775675820757449544322716729799013643137934352732554778132338798367230930806328052095652358521258815027978090452361383279844039659519805901454883162623726302710863464540349089118665239798686828197397874806458260515939993564626208159730896832292784870244969731016581314552291794670416677932656279841317339029934818925953726046290098939723998477905980649634273592390942433951082013261674420202257358835780585506671490157929696568580875700847743679754588112749616683706772904539235791933668740726088786796042025046103596855164893860085572449721136860633172662642475198243811965023733222225331836389068167810634857305426183483030205987502372542327679191493681232304963903623524770601376292179090861562542204525620292581864568040838243588992792899757054678946680191920401447706354625445690683564246758038488155645654862658442486840773240219491019227295091530104582519053219739458097844570926289892246537465201242580812995079932049851691505353380810742111536976828409106918433438850304533167151742985086998302414187813770387209393855497267011447350704395874735030095599850216980052686189215286127198206878215263464365397268502775433651714311333487657890053014822837292106285140050753656958662614004124710429175095105743567308894152478227508238323666886894711628392319383093447335250008262108504193821320007417780025183147147344516199254368405378585497516666115510191417451048444274810567944052198480859855922940419943918561253595765078469941810034848503863794767385072931166772352111260506778110973815104258410032498385446384490895370392476556205022745194045463671846698433837381042827899460473370000496175485622493326991620150448007223993870573406217585920248275238855222273372550658229052993233583657237646723846065498758282621123294424442719765693034637273851386232203533366418721907220134180749702081318517002274760087807495253734189668519733346801143061452381651846730004175931960088234949964939021272195998629577628632977999441303158843604390208778317468391258540032627710710088628526265951823638590307884789363585562633163538647152473844859441771174736662156425496474866060223106089052382460508001585135903575910143464635750203023863959491383163479353959365560566058663079211921145173775302815170819654640929879303660463596128492385805613165905260903878356783687087138825757873040684072979921530154797282105004208955384636552872211253551249025471984991805900053347572802203183566864958406455513795950203532753146569491857419422960082598223371785017068960617903192928944780825781398968447871994223198562323156690326258234218631468551179705881936019630945801709519973725435320760572986853359811028834815040442824707851556447342895157108351982863695524882686977390467472770025873315054059433946670230190123066326326498041417106152732485577600569829641283360237751954266071726951422201577944133714202638018345072091517736597393220778508924153933524309161124528276866637728128697146718578738043704476925660506550339925254016860955607289175060374919113832089823479190860723271247106815682534802836735858562530513882808998939227215755894213891916933950171515998458670430120178187819498256461962337952800377499811535521820152239144795794305456934462677165134341554084664912546875779520048706368821392110522967840596214281527199215409702366491081378950189516596613205128567886953083129038860363774942546160646961423726783008979824109435442952753164685162319580684109338490989811691942912909226260929278752106320224629703510373371502879650805662972555064014033575784031378979856338667090482907379205505699337234278445214474302260098166116067376909666024832794889913602619364046089433433336473866871158398943296277942597995367956547822624456252627515062804911256959981410263218321304633904746758165703451917192934896390479262317547932142512567530299761283717901444245709532838901333925319018573384536457527144293738317420468811199806253822477516030738099997323209999844442000225020390760888310705693536128951499430702032818890187580904988108864966687982300258623416159441703958443271398596145041065872072647800334376686098854648228943769941297058514372187965718118044971643381889378346560899328883242214412945025948272378743622418757540894381210297327732373589962414469791959512569474811174464037677939613271930312959583651477250801833885222839929369063499083955501784664892956017010703663297611851382831656310792058754270040175562710548310489584212255606298110454178000948224520670390483349909334507161466731657262887686431789896546414045818784633692170016252599776881033234884614483072125911515224740794301902904791617369861991861535282786792168691425944127986163687582550283449501025266581195332765456188753837717958575994967563626069363320324107824380960214788426066177847440367801250309855902215931928418036524456389352233082988820391344715953125122839191541978256978296246683914956868794879238910587218098967913275967918370462105944756235460593873191938984795643543554040416726128046502689464519459546868371517018284715643516457445012525583862908958855510004538226513096906122258696266700836305089422628790527485683939261129346281997650332230249586691462634418798648155466914510473385362310124585589195514744558028747502275624809747065312716147642365734736238867382810908335270131480628058707537537034530084081887540438717999408455357564488351734410846086402657596542242097256292927300261317654858369286029698156283008935670963042124144190939705551896554012129181745605484784140426772139868607377899710263185857578112685613336764863220584325891208104153128143003293570360252734974851308828207792313485240786285968410228875468084181750471051958746156068701529018755906474585070773100808121738999151759217520403677284524593782030490140137466538951559879868010364666854543330371209474286921138772647668354636230448430813755432508027399498177281720297860393984879523087008204657693789570083305192629368154049311711193077220411047143074755831114177045542324126055255689954145684738653860995995576371459296873629118757908667141548748747640155752890464307918920592398321178580872521894275050200389868280990705391406496414534672361861126623247212438339066936402784401808522905484309719565849309925520480154536979909002682573417687507674908470114807125322707581373507770111957913748953026546720070400745014725524153676977746017881288904731742175420995052095900231689380626103023040882581198770783955984255714039886263095680330034538717829805394321765616348757769525170886819551667092811450885760326907133484428928596327584611055116671836704654847211576862729749136250197114135978259161734039249848928476896516123858898375053895886075410695907182455691661375427951667846635823308511876186598779128531598355095434723899695173727697205738658466282054722754002911841193818437285300164779731034201112566970880484063297815888013698408410318075423419698877731864376154541710254711936049041607481040466939904960510356175676277001637021491014971476323389597267786504095023793191566336919768616652803136404974254553745549049969563997489350125142856017006650916981858729380105276934758947262612608459004880143035144635005275864023622972545966147982212274936071623535992540107207687908910761185466357761841761908380053412400455997479137305177674229980127434267746698392962906111725090992134539969841646159226004141595016192311548306476425161449233479350729158937807181494585460667551450324036344793691633008388567368100010176401512818126213225592306512482418027476087077266672713918187638509791081962664944826276549917970331170530515592505937040523235198940126935200596039031472232504479916038282104818343686427854896184365598070846522545230853945592788443543888207188972181998768022960307662751921124084787414531774783914006266130180506332449658564419755836413973994545738587986519249878631350811568345146598736621723577487377898617488270144485569984880367659771103391472091389727745006764552520698646465700342479653476873810752847494592065456014657925409347096137860499555341066918738153770921169669869868188576503471112918174925832188386259738275322881489899216841739806550346766466450124389595391108189605934614484230154777018304803858001574931040857232950249826601727334945349857848051704060753822802916689813614275789186959097405531067972735871647498845023016214701716792820901161970165933394264667613179394380844980678110993581596077168309103756884211614796325181688441446411775060345627798856455861384768607593164545495725550612531352487285412192247895047469778183074263443467061706170981161857323901237064384705842564319092470911916734109282794128591296855452488046633076162778982615527991907830561298836393652333190374102916598798431412978249589861851929152149066753209578003734106549267877487739448509743464855479749800843529465843377748250024962244126534948717156461171182363901937448963633276732133049931230283185491644645026098005192632632115929587386655844892171255717271350869992865787636232905609303551787413947777984274740365504723962752974191686798063969680413339101978195715503877506623321981233331537472426640519434048423346756588466767283582848701954073905044388168642592846648350306652258512764668770003963467092370482491265900645768168308303398613419530295870768043593499562485855259499500635370992934837391595371675113252285885488524861372094320960551862708133272905041813136804585837452347483176455656194123236269257630545846276157537244817529573839419142399767754585447401055139013494226055121416048570548218858107932335659097389707946771621421723049280328359411203972422487192132438835693209101568019685383552412316648752785975462988289627521832658396385016653413334251060483059823353643242118836399214665424336616676436909359168199905123252915841188000356439275402857320114561279811967427280040490438200641483186815210885964823991180759444000738291569995434496645886569315399157794785265822527901395130655886432922911522524662709584200756949328883726567214855333359509976152410787402540527565769116993994895659473189834526249776526825251301212441731410673471827079983217631854130621007016336886914091884196093565019316954240118229481359558747465063593012519735941381401502076373295210116858467454361488404663613599561984637375831372968183375433058842393392194989437599520504006112870702551282465689035081985790088141827965077369765068158272068410002038973308488656636399294922982909001923510269995569502376076765798299219406227338600765836157721717579747769096066420135985905462896287542097930066005450986067563341259958075843871462570475543583357541059084300670724936811956986132496703302940417366353055481170465603255736795005945890800450855870449496283430277170684084201001044095757852928459041260471127837770741115485513854763301719298227067970107190271555540175952154188191598498117563733814561558273605100750511737151713962802891599241927078855050337660030211455170051777334374836880268355905189040159394048706453439735619553560348502801502197496575736375333755463887809722554824468942912625100535813076758516861261905429628985561337672875605248574107129834784008595232073173744827547622963055708498728078413687919346933442364257700721454881569070121291630761925698496274007516822373897932160495319952024848578831195278267914995211696247267823147271599000479023242244191130643431766202951189674004788860190488519706509648477365299252023426232979061017514526514080540544788059599146652012958859872388928349453267154555108013588729609822590630330188014952625931427004200340644984311465561887368600920691585597020883301623540740141249311122154470690871138560555111735933823116587548767224011354450840747304311387416463663236290985382474144121605754797712765579248422480878732751902409204813081315899809097940394597555770849008891865427745057295211512925765163841544202068817891792337678813536084321485563313594204987990040098093906826609891456455757058197879681449003496443022193964825461036774496988400075707308192605295596979217617565158704652200047181568167403399965611633514042184548724222607186459651717262658940401410149867020759616881303380362200203944417246809495013441143773444166924831668155946586898129854050988469648578238081625115307120952624190174544669433789842596848234659043245081476633495735495508823173697475655848791026785941154606505025431511754129121896922991892418466185405127931403335336127208400135411466203335094876566472830297010190112396247107591417643466310115646474964979833706673038587807355358331756485190939743068401534220984100350563794850063205389209886496334196578772142378060086061270440836692972993327241850873404315138657040519958295975528395415695018631679604223349413151838145388931558876366750866242348369648186921266377402266388167239534384961612479571540302915743876486514065879205376856992006935568978019457341130146111676273057392241620865210345738207238032450246835357617221495186368132453413034247839560989161784434125080521097349887483455733026008799599107874094255490236021932053713135765247593304493377780897455963246396482501621285782732921140691966655751720370877444791113459588187566275621203216448251253421323849062398851809604295878864306611043991244726346939122456531826710862577562579473666390119540043781184555477079798447603238916529918887848913355027917814368123748208000168307851324700960839473335322263976787830973746307770492446088442393240929691400806554656621268304059752738549956429460193278106765351108674176221143620723999204808421729221994307598591505206232592562541960259449493089867645433762382038816700534831264782511250307243597201715288199194930574578670819851726640535190575724477781284489348938029493884232128053027375331837170251998179056542999050714716978315049565635355373906869485155278719091678927170897700938866632175470712492898141051696568894457289755164486812351280714040205881030973631687006966298449166242736598091478561266381283639465891351177822441306230925232730271320508525282008044162940436951980944882071745198120195705212750229863865155116072271328898520610826000262475708102523589575106042187258976513214662768080311431322993980178718739753660590714081174883939052242653619351972432165970881679244452390218161986238063099963961217224693443677991191224054786902315745163655020104222882604686361815033722230044492037794799228127150806127687926654205615382580901651512927689501260807356084474605462192570562687770445034497481531934633187610755469233425897453359718635886769126722679198512726896093344114775543135970019486637783181199484648216159863949510345393903122528935561853973557706658623111866299777227868567697203408223531265640232239929975845879091918204283264784099591323523169056716410709152212712836030916327554190203405335656407629391305717738821341807919281036576719699531026724225929143116559908474704503875466027272079566487616315882122925574020505049575887071356376042913710297713465876583195415888632270884871763102540434924825223289274263790579693348610145479205147819011773942711608803678008402138881134890305255206299537963488785167586615363482279333318512691957858439620880449221520064730170764521113046789152290472296933981511002436932785490821803969747115283180301499357368724530460330274262255433319727168361378453131391760130664614016146206931488969958069980750369714726886473967030287414289106144528341291411409602063415060449551023372335374547563839448189776579137439211999935847183223036048684670848796551306212725004717957116402667753127252865334378053273393462942664931372396621546247711301371542347929708160055001779014732546764193042968182363237125229910439714293505128844738784458763146513449995336515509399484589216724730435862588202547334887154002767766253554062058366050206893813508039934377443777387408835047802503281733467857483981050443549584002397195982483053270078865810601923353348385973712838973073084025738903182539759803259530851619624632240080246954001641731967558446025183251640001859321494434583173134578451749615445016933107515965964246685476659615707717741755089073726874368146673440032722254239611739784721745552188400391327039889691986346748566306932017464252054672139923075711926034920738943441842859410824957378183077247918937733783037277234598664747257679357945252719952935803627305079602317614184439498437130326552701621513815273440677779350746067356006021824496191083978835851746006972051196431663302210676961617203193792765301005791284987653886889970701466614693467411110669409861615598949874585475836546941251087675692902774457557465505038324340393485183322163707558353391065043646484814525852775433537607378405881664838810098006519718228777924114115177495901332909364811532079287595397433521353599637970868886021406948560764351447102296145267832527332488759529747790145697978458351907422534448616853234583768030954801595254181634200446332118957846180397837062600088829959931077710045994641243124541363078452499530560888405069687378939116655256019125492795291391953936586679668832553418837099935229909558827593828660556430984052095800684928972573105159970798068571630635640319216519590859417363353557787768411024540808279506263097768687209805104462273129467010202490353337095587984222501580619836282560111791692282668042985133160424114496547142784378599013848098613756487003986581330661018918609705882672525669746105985379880481527076309431398679567741123580928405838472924438026784500380215918049900868265072111215129544980754023336312038332783727915256657781266985924662906966590637759087024339062734291924569836609267993818798147634021757491947633277777259048465071564117703168466257246780540775604660375206444974593160299597842453713089303842644756391690837652982130205609720130627096405393791878299723879099920753298066701626360422176158222784863491738075015932986521746177856312097178209355715588104410119454508511316602998104459080281519303860656215987443659383386685934531918893580318920772007291447236439988583238770209349919919513018964853915005086348786018078272887890419598939671555077867533524818143537534958143301256937944168896932488113578544344236381444310643141942691403358426070057592072893692350022447492925833040751875696159576574378873418044938339424927857435013059141584940007774857711866275702830871492070178988249728713109046389364960198316098986634852586953219862224247672431867015464953318883823437678001082335273583300251799860349756242061224364803862419829626637303255561562008911385670608539173244187015107540430268212070465341515902114847953736360040782906820162339774819674335656024641581962480269176672925370448682340657839652513765373536796263311874932033328916591177524659827925736642283495050519984425575783589350795939595396584759306236266780881176123446504384485054059866017083334609021325364264396549142506316476487474265119086456282840205080612043660773557299554900150701461550489602179307652880993754540833978755558884985003367560100305436763909796087822998935008670693316720340254446973553966944187525600903940446726412763860317275478387339939398924088728809887183282882984389174306578874494564791213797342773929619403804067268857606290473429115784232866361791302528134564341910441150080458620896340970994021291104246754620749279685955015753427767488791780169155941685238857536248908223438722952789324884928291247994689452752957113530076278040230168002785122078038616745610831684089046617720316291646053110195317914046723249468104134577397083272061926170096497725730673542333498147073682845980840276315785013287851703742122123541456405714073440860602994973361244902290222165375688698354555140096954935329467545985186687031908107107187375365175914242224729279101161757985050989562653198395432178691731978329631285609620086531988909159612707582708863560813540979200565488455448494217219068222034165099303362965976590746087152825383492925048052136517417216395303724187929315764408651868648092615697716331976613502768700567454202315764825821723037106632906306459923440080427488819948152559551971570987733274385925495812095001273610374597698725447223259388432575069416919659839257347943852805976015473474456046591362293016803778315443221291685976258591387292258444294945101677485415700972639113188581953207953316263169741652401414202825985755372829583771986323681214324829798945261723618003470020776047210141352342786887795102831061580713635213221507438780725062141110542790822720747529385117515973615678019034879798660001821671193003264813384365117943923759241355159812283796313791557904528990964059579561361771051844336298870658553529479906609233755265133129375671630637112616101282935582708795332962712282323497682511576132136190716636272349470734678964704801685802272216763744354487189963199781736339380551260775875388578320325148011001002675522961437153585852607613516826890437980329178311763239470645114804385931030213083697281341453364372087954049722638662473083115225723137566468689469065138014925865810955475641002510057464280566675964371948174295228509454543587965854874023168373609923784414586353628985842476532203523837173506702158483661164704165274437766950992238221160733206397899064523465420785800398595738227938774282831415667910697458646952109724768948255549731436570277378784332077597065714969079495535237280346280674684321103036931267627370193998102476067142539846392923859061716814996653191708030817578408388396342046671932353006353998218185419270550694820121240926624553918753940445494362703845042053385880717170056347463830877232650584721568315644433730585306155454904248641938300307800072149310847742147477821916694773109117083266972285073689147236827687453153797490714989188964652381429708649413912333528383601833525811442634310742401406885825784528750779448920934527438821696459654114053351795482423656334009294548662036221746021725562232225887945358096844794337534781470741546005193644688840318750035593126756476676619556779683096922677389410422106700143580278146246933652525381399024191227426331074345847839335101675577053426508217999974917476806833489208774898597036898693645580413564820453644237060018724931357386341987687580989247976606014422561559927102392811781225886218130075457672039190338034195616222292459424073768124547037632658978086557010370001763972969433336750201762124367548821953802498638341415809530063384601314950213761527888606424695303597037051848716798160179559628437517297513034281288593443881194646222868656074762491894214507123605647998829596845090416552093798587371468038004321931924168184284019190009306906461806861147345988814978149871538369600082428793641726707634329620864681703893132844192470944199863798076796042494067999266707488496906387786483596783398078724976194365256768678071188267107180373246845484312795589594776090297230973070226851124968368233352379743415618365488687866998005241427633929241251921381085451315450787624028068555757140936593480126806856040923055087937407736879424679495969284762702754268130024799063472720966854147573627670101902797169309720625985633751797715310499478619543868549440436299400285320644920878960730757992273171086786237662289744592937782837829730788510042003770360599720944246203319444623446281855433733346881149848922502655864838601075998552106700067689210414403216614971477328305733797874341003867001216616333540266188288764702729640057858594729636124319685854745476070905944737645883643079165853027056790880464725681262425961574842290090908907560754153229833078454377369911886485266385890992082044541945246011791207294023808368979578688800666116917012747725382077162556727852677110885622990303629306131033930415726128479823759952906117090562981125683247095434100630316586451866195087150952681093807345124844133545365599796465490303416148868755868098645158657187044552587610943884981396719511768723383830307437192591693940816811301764614262012653488771013812161802421677068972433054700657953774107899544690674888234046778020381426621359712326892983739027796915845097445799956349146135392891383184746727308689288473334890844536978776221406454110335682184351204734472078515751890905222495492020753580214755895004381635268307009737699520416141608391849828521259872968580094499178049537461625413046201727950620452096978385060809061551429603835327545262404760843325575832328245170952776875065721320102933267342705141209489512818784102552126803544171215285652799228868082897156305392276351139972060965268497745902552504131391349535263896699030290159719663085139985800785240149474297320874938735299677397058922159813283854723984034031173150562144472542926411677181385641101569391137446450713251461551886370221813285135377931150819109881291217130545733049314460943024325563622518686032353983113672847324971645919870402551418965014177121435219623600953555916414762680101765528340411040933592289731798155100846200845901937324035663605529247902650025582233588684494150309673733028467419804639133438508133060494850933041293841555411234116674549281523963884421254597691691886006930786860320904967714752454646254626444867816162018590475497217183332939605379258728778244848867257708732809191962194300184829272561457294538032142712813020842175999945693531821530534089835922109046319990689570621384293903128426889530898323897822721473521822284561966500741748638345308087708983446313273191012799696990032526862364770718128410477226872447146277267192685584370647674753131790435090160747826892565308036183680005723958533831993122672073594198167366453172947529125611896751068446716484508711832082681203569292494637754342353315255713469807110525909135935600802515419279747637099185856575534463181823951675856038473250873408556057262710752225925439677051091239029416185497857324840317849467740906503988947582393249758207422908723917518888564593599243082716464374217316324878433106293021778272988694603504608244918298202185337117650713673010471383812939433850681662782896452683945897099743814365633803357073195213655689613497064558649107906029997158756191201260903540658193749633251516813971422344167226731248130070754378459665430808190350918885146402767702200234428113760429755558597704929291838315321685683584911443307846688128442398011216575671947820442615881060097792309563764567989313282554791051199602105123821722855302182443342357735611998042232677488900570592207018309760086377548879413558758653727002821945235883751009858700664927316998527503276490500189030917882673764558361592921064374696471070217197327132414982163344238818995340832076120237739183723354427451913367914609069550760861488874618583087130241177729686513094294225808809128830224671039308860763486598060193281321677308829636932030201190227322998164394858260366745597138695126121185364225168093435160675964548086535384118665216780391117319491976564554746097320629436256738209107401805414297252333636469065159001089559651695027408153565576886026069977067971879496915214112642745218185138857574441682322848586619549893516304066697067635357721629115756575529009640859521424218245795437262990232388865365949805304480463984707772035847028501192825754940313321205160575119885049753616876777116910420785033955253194129246227582428413509985424311668230151516111516612886920120446814670810710140483749645566109598775383983712462037714068669182809106798707149213698103339291976611671474000405118049494596730835905669065201096666394858810958692527206594994481277829624132832110724235284593268723516712940007092873516795753598802688987356815776023999834623803208689981250528470922258641668137030967122661063612877361117629892460654708769071142346892673792646182398811961443997509419439475841441481609909582702837797299004949079358588756525342022230411244687622806897736738384839700165403513522993240175417565474222993511208688405051706698611585127905664044872908489417197378976840644418953529423592975473696215994151587277162067622200980885922343498026043854176535904242054434388361894555444225552557975748966239179545596022337991707872203659360807899452893298815821674988481865369930785343930951190569360615152106486541356343720808574763214881308479381679644333964343119107936105682633434362699470645224416122471064748467594415845505055096951138413217286368528697496879547221137456939801697094204548867382560315075671025483162298344970635618809045082548879510886425250722939306938508858585504415764737317492972982684378168153481867373666923045198020128981168618470849161205167304716906541562832434874288566853537366030233981684396231251903439807011536524732334009948926500831076245487404096611087025326911851715948771639488082966895371264597293600086797780190774706318258120028415987925456778543045111423384555553342558125181479218199383225275390768289653646932602739044114929767989256629883812705981647787089062351498414734502566220220595226373243075967612408479542259968845233683266291624964501516507253743714586890417627644640953365899502023063523691726770669021486086825238009486854979855711886267670204533136671768776374505268221279897457080320968458717531127939645544247358338435084765448216945675202244334148787398411592738593994532156424276093763475796819257151479107577889023157858702356354588639020288621177909847428677853403709810242813499560701261540156714512646438267219274954138898302957770631674667397821977623188295765015363532242360487229341997363197146907691727134068561581953554005139676592963962894096189751823921132432564290086306496661313438262982306021450156956527777186385661217156569591314180884361022552812930218838151960779280294186465899046984568001674771296316448707941183633357482043356535503705908980532577938594336460169187765546402448150884375157248353336173155124975820638215507170786935182419745189575477314179356519707748332056629709256549558712660360733862771073745114096013540047941424011185747883913656263925449211017306624303255176858598601920291276972903051686382110215595682890639724346466437120950296096807257796095847113636194627231285801669886922689994097737118845112600828173923284928884687319491811740560719740898116105795600892150846509005084737049878616794334525840737734877357611585602075730002136040446644865652440287893759425482375070614435612419092831862108911355286667193875017873584687416216963790006856627485333416765097736673493568687912938639792740474737137519277816672711054379843954005916243352104653791517128501425487358282450933202808906159469651522676510800406466927177600369093205698247943899196385046572622363734677121567065558001903430870758739787377561279995828972936217271612152298944373116446382397991579392761512343128448094989370479637901296534788647032894559280380407234277156952961680968295821037338410188773513651045230505917498657641089141780928802730261158166253737399259330941630840284800531709691458015875988204877208396088734311192371889119647095190075535662981368190718416136709975537701024753099614417955358728879932498331209040156511607364008359418850566092939690840847497955541323443790190201781956194496271988143228740720928355665152155297736998766134442723643621639517410482230641623710442608953208917018655008078235040267543858447784515274497944157861410710368311948287943733183840888957722377513493412382770720454943514439780491425178219302839111210036759729860951985053927053535621259834133950505175289764815839913453975003217005601206444986947637690448737949422202587046795789650732500989041634131727577020349549870271151540864163783572792464741435284764829960359256013615268065341454758811356944995797799413647231042543169348157304264794510547457047547322827034634686948279631031605947285969286955589957447133883582078958652836484087253076111759400008499360493977572676592571906186052775961412290929881302499624795659479655413502484168639468874951818078596778240868423684793630695293424805688124528880265592388574608260520920399749350473998607072538378687711670145862228893617011563721615492424942541910931604475120556061892136665469637916909829378419043474713005621185417280731946639459873117419163120619343000893568093153747650301349699144681756829969036855311306729828732510972333532267175002165264503653170275297065796239188116124451858685732119490012087498673760554276057414347804526802697805911980639798902847892227678087907113471371760588778301433975078009605468171369033045843976209637810720129724784747731410220496887371094843166540127105880684669457328613887004473298080509833021506546761106834414646434460478702794547517820890328618738028231467241559337963151167155843171997681907903121080919548056220423664833841197785624168633080781374288410272152092890227914180484612754014559660788802384668679156867046435592877906166294269077863516772333955833857922047498565832725437963781725940649951440650832682089447969295304242616758611888384197769204331552460437315370410447923905488792466519484122814246298394900232447191426145403936748434874472617334606624161308833648354449409732155872983411317389651223373799311366560678854763435285960671444327951388495649711256315228858387554143783839451375189282232276156214908149856559705924988558147825435037673403436435058565172961558863891633802445905817383576721617373496146636210107494849200058416159678373766684463183326652154977649614862623183324310817634425064340749395080314949662460661145434806917034661979048309667715745779998725124815728874696730947936271421318054368067659009391230825787129562814984124776647572293906035979139060951486737816488052288702986322487874424234957720679267674404158194348402127749252052291037865056217402716726472340007863406742077373905578970184675237327992693977167608464523433653131955709741763122049979408439649057160287725406451261532450582706605622220264459028875446993925270679588844497818742499945364527063076169692800096099680414266392579200966051244936621491772332579194942464390305970943950829522798896960329016090709282673005938573111656584519680146211853644700759254925611832674197922929018116684070411465051743073805975460923126416484391908154087990509198911181094417553719940588655594630145392231921853678544548278976901493761058939418434999951502785285834076288173639809805879669981196467159324467179449204671441393237800444628627984486376885446255760588938556938991400553976016776841465555482507713914603687844777928398747541667356265808278124955127581126025684028286788843082775907769504247064940536694306085622324570006044084808905790679368838888057748537192987093675263160727155402926721541018876229212208613579327209211952754040889802317258588653994991446716085196628812939137120617925771038147768011418747529371566950272912909531504688550911220750271451230670370518719993666684271567747625445740385845397435229780746335965756197906084949907471218492826843928172395255028095011557593822288370218852042236866139990089754138481489515665317277808212158695531267764600233488138476803807977386215991996108473864895556869075113560534222601014712456453085695310620949341990390045142791797769951505754773762708961203902177999128030663298798192117380102852945094733618965999958476939802624994356015646572534911625830430617936571323330489912972726861832292662102775667388130620337608753115587348455149123289676516479081177148628646794952621724678741739709582348367671109576190019993495745967466209380354428961415425705778021104826194148256697091004436831320215425342883706836963103158536862223017592197279005115684916241923678163159995048601338614801976896760192275160824504533908352807923135157947880976388677170347184292971482685612172258135094799315155599092959039995859405834994042186267439363176820771687241571174829293187181006554294850341569616714582920202630315290657193589539971075249174864647242561328106546532138079856300138367987422294435294440488486718809371426081835450165782964741041984025081153755747069426280406549562421400538355229468733119387879483084675304198865574692126896430838646851950216676280497564095747927303512932948368895918528183231926525390002728912988844419876163180874982681319598966672398852364586807276498365555121978875309462140627021106773311227518197291651076033262556229311884284501694394239505042226863693529255886273904845221568325780647937132750688082033187250171265751519782719195940214261072489933411263302705986028497470676924703529101111311190557474362794965462350811840856513165940816953623703555944597332746614003582209852963373003814015997202670762106600030252006202525398900338625596554160569766896539044218958909731700790239302362936641910069525487615510158518924213747526925285118148550327173339210321270302269386374819906177048378483516081943118333799259134512977017742330062926388293326177278919462097931621331218606418059939033580770775242470559112395023489510041599338390396973025223043418902893149760066078360922412441983515623449608273011074065752565243838768475732796963800629678732200947334385113403780364303133147249031000783414702045908332034050620186132443751177378295838068336101771531271051434970701819053378201612014709978012797124912072810669764040585894497470833903642038851287810961820943484434753210032930066490926568595404422208957194088348712798879140483533153538887519167839480957868271763003086150943907879627277849851485035949876515206014515092823009821626981908233029186787662928650686411223737502393486166497252055409886740633388929524801155900082418854260647150870161399133688440274275568680953813171978129847517953325128818883793339127724436032254925258826482753984793540996018184545901937649769030244754181553787897320403474919656255071347315938978438819714367987278897357464815926580758109225799302773136261803885242361204906416620070663453828977378289461345654286506288645580047488106740871903317926497774388368179905340709564228554335942628878789236555151364709038676081953611202996074868895282875312426474614400006607106702629527707850849219548730255239882459667554722110289635716705206708601702230461804364165889019200848689708418199587024604996269333964423707952953028698829475559298221823518089674680871093396537024321421572795911357619650642657763122073064116069269623650389102942001144915577002621524013642994032741259616848730394257451822022889285690768707720480514404508874781033327193112044033527692104662119909149741607539057852829966537444755184496434357666687848089003207033961450564500106991262955084677839276343303645023014514678933727186752523114768803389649006681714364362408406184295897987214834060501946917435539078976131160999298109942095977090484590458556941973144108929864333722000863131891963720371914061889183247221276039327266346313040774907072664123347071098214090970626510136548313340384458945127622817111682313304500137981448391535431987497133106966893140464117173419105299228022916715158430392722978652794724817257701909421173769330367791431555554880433501287072486347585638528657778498434477844704804960427034980916902299025452348192034944975314847381383323571686056042162057192700201894236103118686028693101237651904408502259911262093562332765340314107862313630517301699140058530967105003430057943214903984186718098116660783638083356097003193709266883473375136110628707294354741416132413609110316974217458480879369108189481803378638472858190328614384669374754065004658684246779596537557511649110830583980531180436523549684528800618883674150362360543674817680855065400562285763670731420514402573640779267847760169940499187917527773157112779738371029415082792824420626680245980360279264567636737128474461912810330925444556307770878502404415729014142710516823123032033674212125118628571275332467166609016630121238545854725932790507365692450239847827524909404476219812535663353865845761517021242244646102372985404586409713783234051183269493600575358271484030704659823715131704414160999777650002295850301840940140998269933184076775051448707948161419253142947935881416243346872707703535569804181321491662717309202025494287897060562032619240517976430657311648406295012278260522701061153714872866598278844877527043102450873992425871441401593854962113421700169964284077563408854737773378788299510433696222781084355366231168912627078869340197735952316291415548851957286471745638326238742135815774811907094600147082551721532121601285621919674801978035978734384310553785539475195818266044478359695179164184701775341926889285576327493922834203116634841462468362781890748814008302634494861220623333428652479508259251021079567756489557701808850931509114359512845017808550358786531183056660551995541694271522165136910968224557099703017711881613029193405433346050462269455750409106154786424228303384963968779006286175094164194641603995385474982128857574906939117918050491054222983954934364660216354538727095947823972709361805246309188108587373618645756869010373092400067634487932225986531994420786530092920235035259572636272791931064430319028841208603648724919720105116970680704124937826863906448782216501919025195088343374639023967823898743159633314561250725632800235619573172258811568611863316669122552688153130964107301185834411795483151093779585893452853156217433417322927769023673064491956478681293875345294696520873561648230063647687700924018993953104482934098123441939040902968170102045271347073391202134826935233204540610263638262929260712335902625505759368842577978044730071870081790293913883954713324701214824009837391972476937671055940662298483967731093704023971715317472726260141150108298352889034908307539664359574078719975273497700311926286684588140708172321043008498218847997018458124192786993792943037299054892725988795422194550533805521800391022091069634613303856656968817811619296741818465302120818213500551452251627184156727792178617001936828983948901746782292237725767587618832616034856414127104536251721651056079138753632099046570822476931086605040476790993853064856417590093230758952216582587727786790462776633502785707317363705720125819345492758189586932371975017547624598715344988482637704539726801862911137324200146341626465385608865687907779664480943070780473154117365095082500572357037751401787039033682369737657253926761615783815441078281907993024658613198555529558446062992861401875690930902525907876620942089201912253616484881087809958980526441894847663785259495967941433830025970040464467197617058699667017602016341243123560585623514450652700463479655265887465795261990117992830513901150426146212755205149497771721792101663583033601572429748503364864592454080354137779816447979849161739887995633406021609454046198990712562952625053143873274970266140504507929910064229565836487890262800343759130079473863790558258847521051710979575074093893809086145851625346181532838619802323390047529447788543439683998678400563040444259066663843739917241084123121947813738018229981215004101406178608189554697928406473001574970839534431181871301489688874106389509575548588977716568464715112594656845620830176305861148195076280568349517327921390873248329555050751905459881963953257475649668018660656539735730760381459683964425322279969394183892200955309574650098166592118843065588195736330217802738754152742581780465180720946808174498587262436291017227798521731945812236466245167271870576413474289187550112781366048556116466339562372573769457425412174989191129926925435959392212708087691499753141274492781112296044149969070763791443953337523548291056661833386935485885915814890242498847652307287244102219654643246056961800258412077121803958430858147572615549996931554224369836791963601389203164773955243120370308729227081243903709215130055795405300668366589994324561476114089724841619595327827120705064918542605260114746726119381162821571140341711930623300530877355550975164865354001774121313873209091007472867937442259232794102225458025739245753664029560420503232543325902498452474589030755167117386983166642273334120787613118803288713690455697152749230357226831777794055740984934071764077155773898703393718675252336759986613311813300228305338880310877329419907135212816274196484454520773125595363807623409686263480534937139413953410172343488718576176791905493700605901695003460880431085247757657448597422721200845324412670180392776231294866816705988009147842838670527880749738346076151212962260446908941581906493400423473466196051990006437094632945278446213894743300884261175798270199625464817569485584463502364274984379073611457569623743365504468663462646760439564460329690616312887309036518562017461958323244453992923241943724835526006756464419071595281114337230312086279666564538376872256754792328217817425881146346614640448221794487464953475427729621161353242781026139050952412767416735663269485047138811711946567039926423548284658478004673440813608475420934021883516476053784944589974937579826472014417635442753917040662697534670320978268098307037131714523590083446328576949960496485195924080789934036826726023720032516977408533389433909933232510076178206780798246819223313689701972835745518065113551672920909858281226336088067551927414312881796611971699595173285996256267606378512113249219501787862532011149583290495014699285667543985404981006404062573691588370410760832600515470152643312815785837981556993754244513549572142571302300953217980963980644756805679440569227973831071322070249253752793130367136326058657002512613990286384975808208658898098282380345871716012357751346435429659007556018307150089473258206457732073774224830224065140103744803639955091775710478098242034008720600535343633871206915926507117414111107884661613332590099915102168898298885445854801216244048062536106226871314412912900601696203339745980310986503008409442079768064729691283866725397198386396717694661430544823843132166123481758094415217982901930530180259193596283436363651778729490088561033316246238005690556165966588898087460091413159818900175095789207114632907634563610586844595303835756679180421561508905863292390440500087329644352831118680236546071685780022422330406725163222239263073416247785633140120839685293020501116902500858656616328917661142057404747022919921978725623688775068619009999477476297211092884610620251715119464641715978113497206006954510563440318245886505098577492848023989338192331347172631255916201516966718431131456205868920665397626668996721781934985129922472965343946889854896398866221417335593103797228394025168856221349832557802602234228812901472981557245044892901721605050071580593254707776214353313090745447702220091099951657176047787034328329415236957243968117562177798867730978814346958513603725688302142727901656652785280929642890607828731309766286537011225867250331640724793498032306428130532003346572091775750361191313682122858351411884631755846021541907217798291047034348039849503402178261161335563512080514938507387232556081946825420047719779566093995585584506677772859334717106087540507605701781741035399778048340519398380096383360523132433433973812296309758828036000697709245390403630869293089409588561050310845652608369571694155578120566130053048602250726137149325236361416370740408220019606425474642280335600829529565348401205398903745353756132421788343118064477194723602821717249564869153238597550530220269307706780746104400412973406703690303617143447841061879706996791638592118785412557933482461895895072916720687063509795332707715402099723870910848649765503045890203685815246915469927709849814476248619592793406257613080423050003173575158524057975419080762014495667997465617952689769699552176416929067758029200747377940400058788216094283552418547708540285617459033473276205858978118514256208121685411994799244151420392647245442702698545330587722522063425134102444402939555114510472204403860177737404307935000154344225890257307434145667311198692159658499068057760360878303446962847660771033605722411473619730208266052295694718622601266981276030520604106985541173761701664368144912714644451660824335731312042154991708917452150222531655921669242295709011507905411298817628165791794627381582203120046767561501361125582810156294181832178747960052651758759079001922949070245539066721229979178811047683633841421760636270456700786231882211346078523018082688087725442337734829110714533942907545939753023762435035730246768780208873089298124441181696420802942132001218914468075659706976279808036947831435963091948117258666028887047281132855278412678593324286951787733859466412083615124396817540791015600972798057351285909785200044546097047019953985734268777106391022484367923128969865185241329339644661675922282927326193757223575857206579903489419284844874368148265441107533472168680773009568934679104589114215791353419791964358641483732002143914428707020837415293717826585961875247142601398723895170388122667330414589637059194216532582282882858296594882539378394453549718197640463590652065650670969220654222092881067230666660757809085195307770089695887407610865011075463237236279749777326463167689867776157413836768475172242310763327812998879932791155280614260069146114024723776766498241096945153837441921218632991166585868230602901156191567995693568942655819000099509337570193853492703375811660853061479218385109570891488412151682000317745923611027447006049661803851712960377492079304716700873428927298145775264106185951695223409104288718728912145331578706188066715869435462243373824992604210639150799635776413381757899260072143101453294136577636573410682924698152824626568420505038308469717514912050507990372282878977222942284853860692788387296970634712722013741160585741820797767981840547155334834792450660374879513889824486189193204843395814208173115087335141046917357046132044725838202511863230000412862120461884128691038381315555793762732600145123658095335521512265468259399842648658352656744303616888142072538812232826948608140961357605441970341237153756635444802097542469527151676307863076246428633881974640433540916030782385872669156987222771005646590323621910670221480171660997074555516212850983865553710535518716280078631572050909147043460338108309676992871310519395173842438165374063318538529143174223480267783770528262188370957541416086229858110765014361742058208921975169096466534856923351465724063246857467767958164862060124404434088021819140326087497109681513252165392559708012363105937927014082386022200075234245073510452780181519800914362446161202971569274889813588568873701764490038021502774362566062757910179530431092004088739653947287858285768089792338251185026396414741392405420131559927121202429411579890618831068209569286895972247843387625413589403955468934886233304146748960831281151203171742350036503058275257986770324514390473156221260803122698961096345603675757457068987849899821311221460948214305686719151734328871731868099305670856710500564095036955593762786274518170657361463284716628790455251806269116092853138059774844983449608758675553067715415606407578418853459841325031188494037282376685063343906600613564593392722187740117526424896227546882170449795186901319598899428449527885175499312844723581537461086370848739970330945454209319797113072613493031734128976538353475666226812219331136551791519445714687709394676230541875344916969863462547867010540633547120821720128142161925211419757152056701412315324632092455006379079833340289496676686767913619885226732047336280758117489254270682875708299212862297656704992438667328705214366228488668791453156302464811804120229804928822249220445498726222724839015979803261367056167113938309942262409964692678075048715088937932753004621392307081841603325376677841613838641765640676574098771635568231953165025217236700164492546057031673551745304051624517687461086326308983872241672182876857304476105677932198129935447053768033356707460015494568944139414110745949016777406814233041223606039319659106581679869881593163591483037823553892949107079594056644534002933426736159027415127509014005162660125970781552137713135653856701976719567102711011541176725162737580416925696151964840406398006064758455917271627362192610106059316247713951159563759383745533540639314339742958080078278572782586869349993529831436187896024032569827575480202255985946865921279870833693678551053420507594820549999686770375671266956011753273912538612661114034374583329073809995790385048317939174659354450211793678648618816178988252663679952400072727067320064124852616839390075482598885961274339591425652663520105045568215931618884847069080718713496658016230334006946890969438494430726056286483025456662240535178967809843190881560676426454119740550927819583200920171785255742093001113991103156643376242447355549805324306944478591634638857526206855602819585994827711213964158993873678113517412755818294070584915492872574679744564609695754310566981668247718633274022131812475064102021090714446964793969683915037780304868551200123894931997604020776892745891204110065343570698804349910878239492968373951125199603510213342676619509447846942836572388263012346367253278089909234928152906499624679600408892740805667743248433235819662848217163790376919482436977149658400044633792109737251759519062944238885471101957181733597879739450122648883662232485866522177069428478961433830185860032361675378363600208826131822793283461739715023044807457585823349353773153820063113043066447776365823046911794698713155378701653787928767927703274215963593071853055917050588022284997088710021579408311390209949131817377453847254596165449513425253510682322022889185264142181940712333734106351755183615957802132666608920263438711173800382844941466320665084740056081579697701495499471731003755078289586708250232038726429967600861406636772715940298634102703823214814459095663848333484817985926989929173405999107982971552867996272376313223721444217599117888350532749391444017817704943637059903602238082009731849059647192597171562337203987509966190456861530841503753085742928635302046300662037711919221398193742218753390184707828435414748800170065358939764890118437301963127654575415506066509217529289078632420895980798402985957905258659051102779454417365145414869586907688276425261895564951429347557080391894986022564718356208619766188518065643724928899235783175589953776347677259194966742397811205477330172611933389071980059709577953183202557065780394909581036881727438223454477087800625882254968699432299159645301441790429590978227243939477280820263512068353458702105770136003084482256577764751729381799339418000247357867874808775380995913565273479520439682561570112497604014285543497391809306019570013633923916355855787779988571096836875620346654238016718598230872519599274834694392049928652297874876836973452142733402583321939102587015797006671416962679341459518281402506126640069029377936532167973412448572459990935515844613860078253695505714841002281973884997140209570193126919470182523762538642099872879280490105238170257512113884960399226109264155164764366823993567049080618067956945925028353476559172359208961178184569060681450374219159410205490501715979445669796144656335335263904245589411360512584337182150780870680058451389398249258559741643788479806980569871916574071137827149079195563650120434590705762536839360548498702190356505112792947627913395813992822940788319906151397120291302817991228568446339894049983101917513682892885842732461761483706668227903703976432757579045596142369313782642469914903466430370397375440364194764761139810993084488746090668845390144671284313505530143425007290860347987687281442071710396226357731818876097135193513585152127618486652665602739300031891078038342796788690250644624753920286262581731394655483050946920038983587089989543741902959086921883357455611162278609604399461351429088213924859043117169458935606701179188342942597109063406948230849111296659490138284302697000391956749504515476211499380492481164655457723376528876660200729558632369506382185874483135928248983849822899922690238680374547519758404631126926976112645585267637067606220126113901553356137983780355624314508671738053250472489324148671731246290843828059107739083259510425078377201709462238565013706388049140053996918777974398383178578150251847750808732151027241525545515549190661675618614121976603218580051387947093495782838377662783832647309761398466416278977696417076141044927427241917204005967489426039633770569658488126704116149157672267758110680326340068912165015219514940006257934945017114863866001335797749786009496066385577065617992872122044005459044583997637758449157575075671866986769997874652932939337074414334185214034958051253716023982291948630435806869751494694119656507773148935128140538116533604125639739707925676358060081737324169290368774657009506337195974738347175430691742880217452608286822177682056954649904204745975015166233867053115172849275843662779526791995502559193982705711197584790820621044056934266185303382692157304737044880429656299580738037055841133944667907293111485934660233903854526363309079792395758680208391100136455893872263327368172275391656467108607717458403119696128510418431918338894593721968124857015859374971320286099700593066941429891786349604020571002797610359886938084132450525083139672316235451499560241284683169620642826267332743435719044851979143895352089114302787510463111352165292387108074365699534641048208432910711892297988383285831175949862743235784999854891753052635375635582301222100562636376486388633528761517352016077739379918333607168944911482395258092548669263730389737212515782408892690388785337856618882061307210391544108434455857986826914588850609282030743814569279738990478693884001930505986443591099683730733031928954340328412016008603339000482526474894430628077046245195789479685775474993649797403734228678077850443944419066418210942099944655563905804922564813756972615263855837206945922057805935635333287975152785778682683856889457143603784889746361700090312051585526959704707687105164391055750148345681663120623793427215085034734227303704880970042346462307877315600754485170864495950516079638730790682332199682224702935358746947936111944672698453884246755794492762062545221517493455032456663161619333601222957877899935692903498367796240352340166711847768792228573698478598141153531354163567357900901827578203518640006355871884470241568348554199930669102101635719255094143359305038020410884992692105610518848326532132771254426337982322841911308056092822560828236989338851317390963388962700861468376498882822871189485880680265473895126992981800096399530870452056764320175089086689848553274669051538997995879172069960767912470977542730207087031336652818976430959065882878806669372115394774061976675428970719062694488757235029311292152890314255193772747922228202556025401491636731355494971434778012577166909105170920225936389487072196480499399431560274789667415342888896493113513840233478160514373897450275388443853759545495230828550836048835982869792453991389203964636034424164950015477389977127872646657843333378454465028092506600346936581733017934555318189321721524118441800590366441939923433749241425967086542130491906342212627736883752184270765721760453734956935626231998304711426003523764403210991597330240845059157449740733887534325784591483724388913195744560727650319209764865002040856417538039029542903438279967458669274824385780573767041488027271009236381115157260168154654867912697846572171989050458871557618891112890444210168616457050832442226647963138721422442499100043254797767571185520517273660877403657581534325421196228146169394095467295833416103102947989916508532637613859165248739991165131910059932650111186709026195783602788501015051159247719210258439336107779546409594125131907997888688619222399524149347493224169184866118336188982747316626975625550035680011160276145713169446330493645253941136218533902039025380096875963081477653602969574159809781176019829397011925915824090176691641066786839159368224595838927980752269243897261607759119067500968583925760235553394402966579003428910035444349638171691951360767066280424507822258162330208153485109721483786861214431208522960081542831146388519401713366742961882687509487462370568641511441084585654108209502380379056186849799783643397709190031519572294300568779222491532231272622617007895448906402531395732335844335117869331714763706219614365255527649442571411621492802586469825023125521741313339961226844400957094062929957207098765470419693484475998827782266581074415219789564880875528490870990688605324216658814535664505110860434604106469575547760258336990047246504140673683134307789701138556438851661596165813749020767747571702478159224445080808263947660870862430822618690591667378430294521183383499192435093645931340525704455825429670716485156282409035216758481926064908209903412899357220030108330346862252486325699653143602225504657350643804326389885497278964779347504371963095798184154245506829178140145443329557620204886314918805997996776607834591584333422583887929916752761581783566261175155502909830230184998291555913186047865805209627495991712573934450400814468987270166488629195066283382823278916813308101079910221110748058506524492361621192384369310634613246851568313305144778186086600257272072708812385910181610007666725963667085043606654000817728631644994787889474423217990147484878649216694445814941124633053815799814029301781641608187915630439963975678086069603566650941761762650819771600181897275761826523836175191036089265773704224504484536605349050625967580057157613847694571574974404069135170896477494334781046233788308664317119058132304200851528609630547362130864214672615679987756552680561436401393164402273412194627029054138131546935906549639643363972669058843078464365226515303970453267314551252425254969113352424124413074746405181775905370342819011913270030447567473100117397723265015910555680275894977426797360921835524956009648287061413958170470788803882875937088798832360861415412630056931253784803289908214092629090025775474630340855330942183751230145841151279656410110911195466076783088909053542681833406064792659338046071344089957117874875204397774125736681809553550918524600080276782987077931343848377407539459818597256963893057541405443385440113688791981578665480160825713282386238147397626312976022043426513182693229223008027938513510949858143399703317204242829343194382844041911442783406447439389539376456129491803819111878334476999395055515465098573648516751827645982431449984139498804139091628258671127944276009986950121240802321833204780467614336049939432593967159798878906095054391940122733178468732720729774037617480384099705718110222160062303389582712425502037510463788936628435658085459499682785243311747738256046444766366647919044846216997683046276578661474656192121666053804433145733386212475228681151180303435296764342913643176540034364700757631469100744201584622593083496728827295913202630247041168996725523198098642317307785311566721183509846535747110769479588994863900552478876551537847867520717531081945521366086519649401109070702928772757832009408449057843488835193747842326890736293260217925933296305436420516422138378317754319234566534866783129482137526094593971789021277419024324167089753211800798487628151505521152796588828883772663367593937240986023185880973815327098652064631173761847442201002497380883980717916375811774100176443104220642433089962298202707140004063656390296831413758584678535839650440829529139039202408644405497890600393966188779184564099257023989152198897214925885286955023812879322943783264576683366197138693420659523596943208117279595056665742981375766290146943269149105616199773506427498835116558203515693105758124019298174039761846456404672061456551460627672674288437970446649498142813553385674666576402756402745646044085542963931341538882245425384683303301454127622698803780489393647512750169352155801481726254880765848070465579560108038520750939690665145263163697738053315033880270221638110056704917374296542929796344690336658353279222913873401265053288689754920003696486211423353222273569348173096851073432691583252303347486278975790012724404090022441839518174796421463304372262922112538668402777146784312568604737758024390032219154004137539238673697144128997580268106179353722555304288149260598640390817484718222979304944683228566034122278278381956881478633136983832711953755773959102375980561569326527802516846166711451133108506878564580450682619815924189499734405086917828618399709494927349438902938966299916775644148624900475890438664695557410414980376426904227940256797834220563246484166689322227968184921268646653079639217539705472332018299272336497699071979515747640481712319632160216166692565207952118538578334271459618571749312551345856706319368135348181778540505143077240550800954871916475995465322723952628443184100647686773994216399629337864596730825154313320362097046893984537801567702028196647714930236854063100517249192799636726547005652015710403672451426839644767107516616832353813890923575386257370959362467817262590774869478502213623372344980870933434433766978306240188421637127642601914702686243874735581276120071474102374973846239465885747492296285349284124624984414151666826804575166696143049898522966450331177093490087476652952064513474091047047102874949335462115878135781221368103745862934403041772701428315123723760919378345325168782928766066823648429112543070947620294999348350458561135651815933562831592712641255084845736137071575264471414896525937030607355916316050510655509809546832144882575785819748905943414417215575004970403316174778536797764016350497452423149383065052720608235745864243745246077415556481499821356608973099617307916750267728789906227292861714393864010238736891361532505261827659696159864059577724445295717884168263403187232074126116034309722120037219234210858832303735698361612218164009254326306533730565521070991288130532507249531531085126959113962493945665694464423672990497049687955287569205860211562721900890186894210159815362154497551508224056890240225886126525636679579611163355152553082792468873405529317555507617896237915937452310918171862860345328873804398864445026918628074079601842989101799192709832490525210829980539279762637783625914673567242668905232957900902373277276521120762315592681628634495377543686615441681465004941672209624074063465103476379045484059976528490741328988301007137527796648414939120750766475019251656906001388690419131956169203214809461573503200221528734889046636038415504997032901022017890217407055718390312240233051939490429037136042547587814424842060107996459135914697886532096834620530113059533550855232969227585368544242411231361043028342724833589175919131574045946088373016128212968778272269203434425325068670404707002514531408621499251677108965889876453204449764547852313404509173468617739906065175724548431924072719657483460375522380038977162741367450888540374126531285385647771596283757914290192539023266883173273921708864041661542292107597544624340562416260700116273974199837103366376941331941636190796244333431482173632458989885046504100088870602185637045105992161089640481980724654398444382606474769291095588534835718320302710150634437725992519196691485067618841012849025762604707595347794978475104376068701106698241525734212302959287221757460960481836702632197634992265084843914008105565826359982577187417827033687053722564388648188856892738071850251696725518345308706862071684604708561548473034310307108938330487553862025247091135596243690616443581367627134087433849759248511101448128497604210518017638838078562007756441489152620836507903288342029530909898420019050574750745803470937857501499499850579730479195322611305286625965495047681581413208437778364933256066400245838080498676659137974207103346633480096504630397208299596979545965374213334391007173531277516917363802950432706924895465619638543467345308484507992338829631674937659327222498040032334645244961423399750095208905440110566559413893735420679988223920687751513698384168290772098290139444321639321935704525027016849550170879172240059491576608184655590359934663909925142737168071531243656564643121009147655134383348714487813243258030876061070562660266002289194064441956544503617353781995876560216478942483680269182641560853722276746667025310222815927781290367714290191370143294290421246542887357885334768945865133600871343646072420301958441673374691965082673708767173769033780102100283117865917534454566666142079523024469711093798439054025161019682084581767187379037748592634260233837072928921754014937590369627536074243961731347119795889174780925248025294908887032313793443426102647483375589430278127500220493371358012944878789201301094815735971939677275189044219689614188497051837895270095053503462615026850866980540779489117625674264585730606137406860106643605079061037950454264508441891409963346177100927654012931579963845562030765957752504282320766862743034867600652416850728040026655562655224270188306781890113690235052127717040754271970373543533183389378772594250824305075174226214400333522388675180039644240160682867687633034554037615129335144322236825864587910463521323013609942689789149737441625173955871884397198744032216727713313646135242072107292198060465059136796719245103740741968088838612225438049538731200243863211683801390805679574669135086893196596076872115362936910891192502153725053976825008465507134426516957621265751572341531196314661581690766061654418806745518882956701052221175812408002542225398389970354838055890245471606178942361147671284156396515707112813596124518829543795898507467564611145079500669810802052565956558197327456634152781205545153106458441383537104294817714358252050004421092855221654791602152962236584430683510371363304029883211628312111656272313877670666406673955361364190891909166599278470886568143037799299994198786520872509963281924048916822630250669352418584172981049404138322168694401001543403177572626139352512038554117033877532013950330113285580239292236617356507269607251170638998866103811177245649072787259640320372167073915484544110602585234534893983222585620558521902849619971725023195302103912655273621442907227410812813981672769290627922730158996554052051288248534671315629121946209161192977252243898775660883143253860472313065243733291733556794368569849238199184271958122251679347052414883243126213646424246811494300321917982771018735861965221648599830009140110158312185599359042713215224054142661153823589649726986114008089766641722522715654003722089150876940868852580362528967922298508062796978887248541756699029187027618529376210666123352041100712729588134867098396004460827846256666981672647083142098874543011164284737640000637955473962374807210139814321865546002742244931337921911868688131381920758438758331031499087108873218726460314508874454580256439897395777987302665863281952960511623910285666182813813537605117576248587784795013493801527276526996839613908264016404501418440059794058562476829966555791561589412234048088104256282729840863693289107328233459074234851198950931856788514200549163134839720956402115926510038771294812780414939414461605019014030707113560359418093377931331936783713414425327796284766622513673559215510212146628426820816779035688316857171558414461935939329904816650891950049758213251853454743569323913640435846269942427446614081064190555307106468355856703814298878597929280567985343871799363467194851161735641782995270181665448060412083285034511942738083538525712297421778209552916999502622883654425487896118209013814842930075907275190250304759463621097385310751870409193144299820352373110659242888368841203405302114877466245112733371524542165230786522656607503152954025769764756083699745359665776923594391762414619999613389761478006688623210215363460786788024207411845162450020017041000905530409171569965422840699199025167998753155901809350395705453867889238435609776620072033743748046440296892728230877468406673951801235516709072788278452965018042575480061256686928821286095625602938849795622053366533931109527077274866143734430902909231333207070330634486727457590279230962490326090514609065105808749258456160922824849181211562059041256773249537269877239859853623927639617978155344698929542054927389272489157135203563164379949896645859584222220269460124597597274293272879452014731268837925896611656450862348435354669162598545685071452160607972711122921198513828446326748969199669591512070239942513629983005131595717714071916067365534571764279289517180390225985771299819576459773507769626158738030435608932414425066827851246152425850159015120257131948774816013186330651671471789453437591630743941949710511470360322056793982836751715472284854312891959700016918767678470994216127018263332940529126367917212504744356598760212735669297380912568965126926115715870524307327781874742734722956969836404237630157274613305197284816534946332115606556649472980810387516015732035194957078458378923058638683247670461578522530195556779071254551796378239469553379154330428156092483113869871274331342758858556824019296810715310329775289790296561365468609550379261073017866643446783212492374529156443765811577911299760386183310475049421969583121215406031693838990237363208800311528520964898824061803510660875841658855235148283124558781611159564518587578757903374238583666605402437980115802739095117479691516809849294301923130676215375694709906697465470951168748519148444954123608642328313844743160389274767391054338314097776385557254212519919522778690774009732454696912087327272063423325204903062206654705960856918558023669658124234591933422490844399943401057418309479326445807719914405992370820902923007724888405467995486174489858177333581899922440462544215467734999910337150494931782065773089434648049477633767994520815751584042949318942775778092176193220729432468571136850144406280758819442446064232378483313028567637491875519651114631798305325802952017178643356441930460587272222536089107655208435706904490146399689488341855948277875232135721121817463262511472290701043579004057492109888681787591396869296788813458081734076429931647775769014232600517531868682655623387185018578653890446255797937315605168222737616303310076968910672644320874678553597731013055071165236784724022507663159019913894840191121534590689078064083561945856145628702560955591387438223643700255849509619246193773256686993705920648433686287329719572065563538009467550027202930542291142092380326032936261178637705838442905369769281595023424909113485226430928988468080435461730996828191637838769871434610838878755928943073421598481101832271652405254675506358780352004829001730636531910313588387009581561371256864777978038741993985820004406392482340684186164227678023545007543281528080338092657051838185391892969498696986637136966078159078751425496305340275271470790118107040767259352799914815671463309330862791082822055469576120307964511023043544935254065244102709693561027133253714645440372314581152837765371595953510703825888648002853592101926194458155438508688958547768430648989929956016608029754987291984225739021178500148728278125579712095145547161184207107242681179789611757477274320688229895443329425124940122843399837390334712857430365611626670296634176877149042884874268529662022777375418496782175118237588367660583389192727625722195031057652390241503940323418450563684357259109122908401284274937687548177720765846384147499221374863891476562444371345156651377697285180946057949343427919257648229600571028662351845187581247656344472424112687668849911914254472208433328365118313949192141326330246827034634484768919610588159108679569762312606491051343896579195797774488298051347930977980002952520911524230182776720478757490803759650783037980320298132904907563010391285412688176340556784173813628029012549354990670667531890659630962808546529516721198650634764537302664514777801526062993149191491302229910111988678173294303913293775518090976236375704410007663099847668561072080898343548915024264490720482130314128101229854346756422968484259073072094815476390881762323415438139799142689320780772718624323604242868160978135590125826471726908760369564689750227800424949910196211415302095144975718116768596249836228884972244041869777905877929686321398447726622656566131008967403661937649258686904984398348534421972822802017797374881704331777819130062406106160918225961689876339353097773326407089578732290364520630566357423608707087786790229150792017032569236593504629286980133509534949987697160580582635524770198086114932371519658119225664719126694036611585223094066666489255628788092496278695713524207105463861336838656769709908769684350922855210121273750505630533062055131340451861558509527931923882758889880635884977283383014520934680017357741113258854850721925353458170933919752577953056407810717593709037425057082126922713828136050658527760445515160721731672150198181778567949277627614738423098085698252506470262838837673266432829539865931385443938388948000644894790461629207135739650334961047232816148396350509143783756137535698260586844054321434697860525359440936777185821376019928805404640985161709408763459433784204246243397432073179648437987294173445841876067564336395729446472799949721414773455548391995494921844599164061286720811918676401914304216905261504067673388314419868399316486907308248002804170527656809487795684993218135308702973838341938677677001432487156101235888391174370271848525611008617160255176857560544883387269936845994644714280006373834349151502110645663675088163713540666689107516735413739883058915566976063059660065583965291808123761280002964642808273626157964712173785290309805588249846299338328906009682881934468274478171453867026744182930568160849624964990138854293834934791919189953894259412026266332577796585896393929720227435546333987367111581657485965298639148746812451307656144293042385695670190947995528348361980843052685612607909863304731712961340833819671577051915573668821344577934046519983063331965891694576807763064274264611021326685109977090114869482085329056458044094558295159298214068859692339106929398640763103949204126031631693281137843448402342920111883358559987647021789240979329523755176255896558747383072811778788592609605790915794135318384122056231580524394856240224045744988260306813530625395236376125459047184132972256879426698601314248302132076320659522633556978133296764101620133128475453766325071246973767671804649100730328534652779344320022442576515338224092965271647273108724810854848282762244491967149218518544169375111043378161322161384379163934979154199921274439676814150598870224456426259989470358519303915775649446924186949759123113447569948328390107531200103782089813785537134550319754473805030750863707032253428628684800191822066310671797392002431873809833005441971158905292906960017853209368739702337898058516958001629783903986853804723209916131464007621547755291144719280718817121418833122278035537952598502923996155676493786876386187271233783036858339722362633119577322445010694826484669689709853541386454564176778497824629660484572399911985597301636197724628776711901001546288216904180598940194134452706772509299185998047332160237385068742733348625066296717031464737327120589092145467055856391758287403546137392589418960624657395554860149556933426549143902665905570743327399534050530681495393018271308258016973649753483929900971681850876740605762416845119715090869311062879520250953156330459632301950456973522145700649242610122345779517574047526611202797180348109826085652409422449429794176282845532136715726756950621918571593971266199851032826470833581834339439842744543443902270494834663368856233644646589632770682359151278804380626413428682413555133839359453606963150822050431691052845868264079977333413670326366567706473876570550752064111674900509944573524821988896239890641476175642119874280879072072838531430842784304912022646996156581821153151537868296997518232897422916417830924724589992767508993554131799430377485924747162681340141340881591005426391837872082845029855637974589479406842292423450121055903421698255605209060129976850852942800224832530134161067377250449585331021618449357115715009766964881712291653789772845486276975644883848209418835847947361682129078717454740167646666098280859415097486354452392586980089619701282973556779319331083919472806027511283179567706630820644844724645827966135966849548842299437540949198257903166242679318774847289788990019291317883312141770504532255626634950187106449035118603189889474036221401608514257643617906629071551364618325514734426567028291230746329526162435311449790374239394909909293887918037524391821291133509962861469799502562851312396025820262976132443887384627012433123233105329941268468868399230063664280768177897534862094712221373875232665803503194697434096903966117257410574777265840395192533835507953817620204617881013829700598914309072035278973863006394236804541181424797124362825426532892555291097386416655176437586226803595633226179421421720989636697291459194643474073944896991159776843186228638005734506077075272877603206047639126139387525527205617377648785571805734795731041103359214898742019401658521431929993043154676063589960592517109053200685137137511713804862224779246732954664828996468755672779312987274336238195815281169506525515478443276603120675077676861978140688087272578927718268363391201975343456759000479479641417231616670317165161092583252141689315987613125357218052710628715892236225513519712031774268099631313840090619227676830632900582605507563491406546536939061371665250326277737885548264372963767405927233348064908237652496221758858088455557530333369248677992709119782356456347828640887338224916673937058001063205005212925334291765949985375970543365394630208432349255009573279484045840625408078155684352493891755029791858702656818063538308850217152823691221490188708653950016744839047807242797995351539964996158130928801820791218191092693142299397145525897217569394295903514492760456528146267102969593993109852666153699803332564090488076306974437556710255207018924804918997400405743841821018672612639187528641585749615668020169429201513877565365594147626474601114223870654112415554951611409382163541698472815197502637062114357317268636777752658557080767357329961239956163259264104340688692924110220719585268053507807514421713428509854378742231838750610755584591144658451324502339517226874122134831078531339661486027927682992006667632174119268565309218004462356500156899943353922293960060284463313013885038678262905560710369196011958508007804692889708364665185375239960155446295643022443710262390777330334947203373968660059307657846502505380069659371489011233746645852138090953491207205486155169347780165013992088892968295156287892817661855229736678513638211567684330208328242247651666878787065238947423921153469553657350885827839184660805681734759157001147572752652232373966114300974469155509389679976510951328716044236000422025199353334166173046231079748660718253928054975502233873990106664940158853310155170029090533745474116715925293056064084868737257034631490258341986986531017029778702062406434663698593730273960581158585629727993149832582947199338348504569180546132627348502795179935112063314363587174028569525538727258461381776202428658474947112967521057397725321212945723951610342609716336831879116730257258830763117301385252730295042880607712645589768810852667414440764963561456553234303510148296465492231619782934981768042824608194353893860330054937647125284177842564230909958539714495549278776801405848554549894629790736263864679185786704685379151255958393927931061916967676983268198740931482959654702826215006087293740945119324270843024854991344261865722025005695463365119845624303424412348995323198655368410030839945006259589251223592798323017241894532321696599767584198007202910331387415566606848430835109494409831417539995001323209916097168063234654634386221741149987308963106385853639351177863697505174019408618953607893311463255703188592908333576293985897628683678782134816944123600175191381046267356990544128402091839928549246982070590503417651448542831065114974305260405257708124576083172821340309506482608442172228408626477180973225452350332713305203925530899774307456540762036381708850732428499171674101741887499663796958690448092179496030949851722512219210740901840370030835451352444395670312214853664730168473886334664009229726168017118573521300902543596750607785406692928296009585928652208248373752893316027397454626401819309572599816482127549827453926250495478675363994535279402789559303789059070693022528944083528836418004456266405965529884221974938617801404551643139078587195455086146141183825009933962612209923442814064149658426146233467859876313507359382813042424934792891047565357232547780268492021267679140345617351148185584657989325083092184686233789539584790464859446965055530434623632900856930799956613606849477199421954820398189799147175941697062804755482468885652479030670838212842846447585781932641129020340143434773542836999687294209515840743999330820598403314409313879683437271735469152654073074985383779884063398306781401657606547824914234271960104988539151773041207334225482141796653087713714032849224094641704967062131519688351734338456995085730917533970367861817368158703412911416889891710770518939711369873085311813895300019172959688293309400420945735733484618285124775151654681024873354272097837518518274529272600779392878176120083222178190813845341727220460810957839706319983162006334274658948777626347915906670861349364131587718761681757318814245081930380043529023200243080211376234800399998563886651070910107046251421722552324795110709594973589565758085974898994103357303033112531014463651054153755946621025199821177814316516071503895179145043132668561191800098026256205926630691993002726336238614300038121749326354586295867919428164501547872897180474291018670388837505857447153795927374342357692056668499212785575859474747331311114705816283978691543891229245563374598502981645777468354208666830632476398891953318331318544184176362712937909653594355413051994851173149443518681961885287241571034566957541561596109033153364826993496734867117969851843231729769249604055638959290276635253367739486104945221495774990622818087503007120033871652489404404216840246413696018208346643073830650800118353719390284099659925887535395603402283896062137446560071789348067973564695238477433084554919541379789553164895452695714313710750845031748455448081615597477549516714167103592799110745791678902731701175105371557219238021753201890058624549036001126436204822930448614775526981224480053309930515615836780033577047827326052326401770854218007488889181877274797484938525579194636178468676515900065935005332349755743073002194807622443503605331387196179271761065126235882344176273395192280605805586699042493187307666104275905310912628292053821492279715682065788097909362408310204952537359277631396217136065010469466295063435254650375313527158111705880157529362624194927601715072264899006395120295481148359122127953997867864404402603051108791348023985180009945781394761738001978436894367418262715189780019600359575450583028263738971510204232128865089162244714431543529534388334728781478558642400420178033531406943062474963449820933562942027572352107014171956686858737969543295941210945003559433349525021072238968807919329204586741263366285466504980006686113250212973588985951023151179049458145483880063103482117741192337574368988645222554980974369596092594826313305998819113939728584875526779583259315385381739209245756719832433066612870193819991622015287003458916699690604276658661454490512816836567564861411838773353104330896573604660758346751887663703761856755318065834243796816130695695185654982633995715600104092783905317255119304154731755831124190579972153716383401414973432127952782867475136954917464888720789284597455113019448644972859233549824498564057993907810908785116391686822190510750109184279081184124870579858123652607875810398868986905605201977189648251967093304642244701787365141314760681201405241709382697149549718955750995429183686567272258184002370050484246935789964523174351869020690096108126053306073812936744377126895881136049039725523683055896525410736758607284757959869736458515910353202920303493298880313737834838777758215407075864996952617576941841028722169313185233908778810712983918944168401934132042816645593199436244254591969101852183561266195758511960171813404572261535986661020378706521344970114078438738855453783556573491377866811228135366203341117085438075408113123705033309410357913664267787773021159325477655344174039952931620671014049319341238187983973788505489304558634041489011059580460248038220176230751701801733000481967143465016388983701538377614303663573525536768263638221859723754056572882448686938528596631339359161678925161781466455146018410815805629148615731005865845552342423547352502610306939835754744808600892879379776909126440927100748913693743877265899628170392923789035009850670363106174010313667265587958287205968556783972886765790876086893439977565424375360200956381296459133734641561050061750946052390785732017266256313442925956697734161118571274697835718416439962367834304678784134829511454614445765016363267821163996622420552895704822056571334075245484762103744188922677765020276881967908803474162998511639068655124077986183675297860392504719673636754287235838683992869892471483695550138587887227056574544349532695761322717502508200573978961046208748271791368393970219464050551582691005550400164302472146135119565293372261113807104766631923342011030790919883310938326502864343640042257434564356424077973203266409368837656145205071886800871784324304364730406369469280395226897168563647272850651387245123635993009734512447319032653116216544398693499261373630170407220923536130821070126779832566414481315864931190252539868045259480659145467982908315619821767342684956581245832461618748364014657990727305973964476218432413259515036315212537400010467912503401590993345275175150181316385681665203709055486330081555718284120311477299993170047654508000903785707343362977386951410662384769874859310039522392681194348617868628436640426552586826483530431572765870916553358120472413693617053559122911007288084765064792773965919752279546085803688103727479229161852644516477380279752435917913228775070606905497081424758539474557563699057111014003559424616491344019621929758265923477588408160097864082975717224808021797112240723988917025564391586111298585526063378177495306171480458725275575066833077467761434741036977687628745069879642065280935449159582480330566857190004014649000563185817401959362855098596756213609364064006449098582847139321272743285873020519668927154451714206225510290921750295630008603170706972096403300156237729587324847083709642088442326165046785851355572194856510168738240439457125526790933539065442427300877456501391745573974473126669549892437496777467856962586359109513499588786587383735070751385437753794244979632584128114725899535487834992900587015444816989718009645521981445992992834121497659881749870142625336287944944903814607218023145853060216266683825603847532675595023601204536328701797921032655051879646168442845301330600186559149124692424047093592647635930765214234278200056882167999088475427909760810814136999573981998946164312140016299350589647498959962197062390198353256312105784395539298925375787212914683472060570722312297908933522663848107592960637406138032842812613310909873948892606020483812788521689896173404671217515121042810287570854575914473565235071173186680485210349848536200345422949673501346714301883438607350006832474327660622385611665301079986396222475283169450229848265424593905959938085854930488428148796318330661449050081233105628509326342816952255234925891602160396572418457086765020073318419123104539787928781181688548963727594899920402159302857510772434937110823992516407365083058290476625284179755649043724675892797614692538705753494726980438762750920072698077295293144800789855121541602346679105793344527434400139896862865355917809064934229796951729300991944151956594665847223932398009118069838220819384517625971274260164050711232968482078844831786860668466018336567566019025828962704490400448136759453938090133837276878858529809153544601290724972475276642844647668367170591978633494643740614561905063073637710555062954434849775649223607874834119008530269945854593377609954093039212463292586679754654549538793444455652526100498757516820451250824254230634896510088534262641092650638743241720986982138770515133422514267270320560868756838568602451002748018190673722165294838968433334522877256643784337313799515310113372565776608081920085222002668043122279853345510812438371565448415889200826913415325447078107217504479432728941618383739343770237897941306636781107744424884229949910497593663036237876729378101637489522532568011985746821145658394016692510321868203618007689019746150703603731211436003025940651152257465949732956871552582913351672349039165799737754670394386441293201364639253813501110647175672895642373644924360748936097579109407767097065077245644133562527350505541411819759817083715764353246896149653220001198952617056330592023358084678256036388800112730286658656716913453642233725911367101735256787054421153403744143196055959011793195997630397734937985676832088959401979405292175581114954082796332009062462896136611616460448865465598520174622597191464697180553107475418563905329177569214494333976924896961475842134444844251012145353887156213408934717902713028308112126603086839417418197035118065945188564689910329695666667416270749344734149756060630475866890270525141672816554569509696671430998539864789622581372503250341829918415112995096082692977784374644319459041803033237302764099664837696557725345842474295646510814782797779288138236218345997366101970399611611557455136252728140456132148025014472715583190161402045302684745176687081634485458954678407757173992602990533956376914810628495387199709746911468534581150165569780592544273851868960246593130396190554315439997505713024057152504316682648019444587735316097963851478334022829571582907767991201510259307635551020627114218108907449096068726090947138638344818931782020904377290122631644610732461401316524595011051201094968813896757028353888301357535395393807317024530137518678941023057529072236570367247111696262344092534584635519922405775541700716069854241074436757277355515466910946014576726693280897060767631422319094802034433318322134401540931292139527592769230690654034703269918628399082245188764613886438901432805314865932089090572443218300233955486425011924585866196333015865317356940482228894810306705256751685967884586028023464345562919248823030084428005653196804447974357350495285397912007642448061982598014166774988261635817557436675691784540854819785850306772317173670792595163771795957850583625860271232754587841256121826790965936250104978032541553126194154336486829688668185257508098470914802450291739431792267679137233159428056022032180793589789044265261718652631927114204230106044385744893316943448740389906594487699451867878021235180841045963469199144469552715661093533779687860643053937819245986586894820577277508911679576488243675938640337730110948054915462985343128618930211568220847003806560462595397813292867741385512149722601757581564276082325844077481184175955396161464237147706471698720696372173533681440486516678975012358515690567068874182682827150259804682253490661965118372677386474047662522908465556449849317164804252717503204405699433356407493097415483535434804346401476003301315735960361658478410560585612547668518601817579931835501658582257101860521329661147083746975357858352915062222486673345836679159532104497231896986887795642844269766832431421204794937665550328509148386425195062834727540385734416229300203940740081403180789207992600117985686683107611788251972676559852954295079864703554641095894038968285523464404243106558214595681650463600941866728051180006004088107618343703225062095527982685783598888694295618414287682836445324430810657503686729995756920219849382274355266571270069428924915489451157418831356746799175385362939410128759612846978647572460702431508598900828405455664104308074890816687500134144174817996518868703320667810606691775230178944155826141121526022639254649542263605537981778930129916064879203124460133436328338690206269531843195242166789220598823198990588367035935998398620338688010399010969280930044827069589723057985594677488586443895557073012075745026361027794109865646330173583664002312086840557991727808261910262746243649725472948769537008417768777150157645222731207956990650713724031755952031864255620626043493171455328910659840152336968393298822353301175766292567828764541099001765433118928409616099800338375239692654082368644207462021660642559674490374588362956813975112748944357226441692150592821489802971393664589485711003771547460129086065630894654857728592549231533691775230660986153739660688920626902275631443884823800095261000667046470416388486776589908200520177702994504444736909146246553136592264564285400707099132254713482951748665587239042871892838658094177521530162279540018491870183451993753029250948258740753349074624587368684790948636739882503762757773002286526588314103532463777669579262374951346554280802650742712711905871299991451759731240547678067963297562699534419058017501298045610108109047883326784962645305389571067719329186521121245927379549020013004463210637081379033575745109333376684121019323788552580098842710663294430893061731398086798827780115338153361079829896238423874546017141880948911809310940894052138410713794807103876461826085777672566274089657730644142378210626548857493950070093515471724519049085081279065293614341924542384133201832208280842342037863808488568804059363302445079422803279527537166294241534145136633690064608490919181764855672425853050748720168466832215970248326515268017080848214546921749551578016546822512025757528843213703062168255916446565536198940273832320519119382501318233336159141672738453445318404914490527365544949852884799650949116392645180502650466736752295823567859003797351823655467478147672535937774479201088963592997142227451112463701678565268104404631419205804419021741790249778894023224496300337789659205603505894749154321908087925982958429637010649436216886020861073637928777814817014569127844380793379972731115964440057687806343806836407580328658281454777294408708967610270700202754793083371507850492957104622019867294450343070979209447953351812709599473568434873679981968869298377751872286959793783001531234353300258590819004766635767736099409596810154787393033336813255638208587217621023397400308564528098552786758464212838729327991445980581631687077747064746752880564368386624359909162539534246642023839152233209756955277133182243138026095631973843265167198368005359664020388241019651867728012319696874704025286557765811780329989979578462795962731424438420268669572470226818932091161836084197592710650829027642741489197348766629211973415265310486438771148305201364203681354723195531787953430669047582450367920631111541942205265960036512478715256130405782878073138854657646459860633888322303368513025174370214074112863417944947043831153980690586400290236194017104444398170573956854975109634518136269651362651810190004332361908373783701389614237012251129379307645126268101845426095466816212763063269465419871521977999188377826016919315296564881218331092454961440706428840644627370430554744565131441396541529276462822001471714486887926036808647495249897725240040060887182304195803178385967783444994852194511650237979096723900866091125390450388354297027999471262210958470028459731901491336451093131923102302327020174642335067405825222298243628774537350233024750422090665588213056075944961449691912587513741027690077973738192120303783113486538054536871560240744584557582736236164299170078342754736685649961229780550951922153182926448236451101817095281415811796509731867762210614413322056143211940977442832676872220134563944355523116600650196131973224891939953750838170239335279939510759994363760971273705282221314306675806990301197976630195529922075132441727168722420578409841016307293837427607528837125611097494438632524844549448151193784035572221358888835400991085431050980632076725496425694926748472530793175656751926513259610992387451135861309617794034723361901650380827392941617698326689260212419701567161526280957631203590514782801615414307147721721375491268449677036655996098721559754809035381806997710071538827838886128993684817311454326546389304303381906459135617338959451729493821609945853551701322077660102246818240283049782587062076732964871615005026189327500329964021211198875584377371964879071757871684580778540680617217016810519573912051459051152205160363323275206220444216202009977276432249686330028699410430297052880437118706193650654739603007586338438172723165715358782505697021600811046191695008208690043968371343445715516932564273234103655095193760476441638653672894095563921214711121563997288798988349320963582583993748015418361584657002636743593422377329837581622182875909494809210779556241535148697636079351580627581443460532902439523587033140953454848703652614345416826779501981178461734433163568714678603941677777488188596251751890647403684388686856026078684908579102025690374014017645803714975515288321504140523788008988072006887606832215229308151727985054918824436118531575092495065050318035448510197220121629254101320841127808341029345233265898522075214633287258835070128397467796053073174434751789271107407150824729820668259520686816053568179208787835001384587923606352924212639921893915142461213822272497613363851491009335961612956950934583567084173091437160106746407241255225777600987505527113310235570709173300272230150387441645897491854229897511083823380624776094935830206276831983658398943200739027643145065885393443996280778861222615828480314415944779667966032841380150768748113885106795178933263344303372053831074827406298732985491787976149621636451593461594161850328235669360304447306650476098930618320852474689014532086415823174475587484394427765327256781180023419606464371718863349949724022516107513063464235678656337993023524751075357199557218977103492789050350758677215407671039383417504881024255302760062900798906499208891604576591114304455837637591107444233485247369541600887423943171651270275222622910432571956164887322750156973213637140225436410101062735391669419324897976784267582669926232673716793111532296304012630664586437199552428207485895117314034311390203265854064710338345344297583311914796206392549667004934664345158111454245576567519082503086388505150528075998176885810952469063130838664558113960648850111817307278317287238624186534948988736471132104332762697871125484390359182308173682978814144939480050449808953332299575618967060442232086524787145213051647520354125942628360793466662613417681833561853941482081587639307785494511383243017479185790088099084359242955626359590601173427617206960680157558676182585075745009079037566510947724456290550315184948142411287207330508705959675496781230201642658878985823730832201327466077657147816045927206953635510767101822874529869514116020719344203606610908117227812737443352214355709841823899157715435481324118232132201040677703402821925137725857709465239565866679680886192275438969665656771411398582341717910264737085448709662233716191259406986404156245644737242610954780531699329400454362474633486938147379977664636334017126602944172220064690406144335633367499940679641414840674362928222935239437734625634192578078285762162398621436408877537692173405349811983147151253080888438957046310378808325253833464257160271303788335994034247199002745974066807579009436847784906064028910180568067212165141628796304458814399354016401302285310499486962214728763306560965316051831410197741788052631306483503070775706932832912848847813064018892734553983723256819573138933883849755792147222658788123573926077089862973815636734578356632321155584216028748442209583023063396833335799642765276982868744027236258351423484245297896459134280230565985312267029443081671381077655271445676791691953738188449930965218315555363119121788193454698261627938006483240035263513658446874909457805960641242935870568172681362696810751468005782831570519833043493896997619669797709911355943450622091226527439531643971431717220179824494872885942108883049822588509193951385720138092741789590269616375192169474737763109137970070263826918766464752815465131996820359571744877630089180781458303470221763850587016909647479047147929932203911846757439824294876932649500630510436308491175946152618496787843956524228881287780657039709317304249119698923889632499628759675452050361693236094812910840571472240331104988220741999573108869936587944678398619048345342996505298480739614707235997976195891152902205707825241211593531683788201050919737655329579274164789794169095273905669617972774395714663563777233313942749809081653454408714078737426134244610534826379910616984799960129933495751152974000287293260224970788918991182982971206641170847799007355700920507722860977444065049479049975533498494782166265320807879388129954443318712770243611062822775263339236305158117337196271067995840809487657828571033136136271683917935725034624387427872150871469129686700049883227887167149138968426942896500429037381343541633227007075092359415678995057132552176195463619215658196925951292895505141065140999790348196762015810196111348392031600945893534180734786824965458865579895752193129639227351303648807799371280687754051304230720292572879874633234332366108876829698661561690274702954473244802455010088095217240363401453268007211828394547119985357884634204554514708326655755280585535676064956229442264276801316144280976245708076801365510385412702529877357256864492455635453647195766106855994009502421345263248045234117729455966332846672128566628906267171296305815680184158010343652944237169854123923407663396909345467696992733926234677599507882436661746223929006879623989994163404761193793481456039450192392655958149394779731075183083278601751185124188779388858527514077332676486846244083009865720172155790127455498146368292439189631609468015524418664029209152280589141638796947299413129792025768685805283800876211837557542123087748174305534854718228511514712828782099598137508235627842113223319963151606149649132236285923156947341732437976863002457569095875926424761019124249965182802790861776315860106645865314486236889170838454522738175084636364611179895022967233228543660804767016740267855486756237047734479712556678439660446410644114010269581086464880696030101590010787946714200764251288381341018754045377207996312229727076316286381576462885158733771771910056256117932830987217098251647176916245196308652548578907452889823038602874478515523060519134822402445587962301016265270297825628334723605394482430360568628426971227782659789410663796722673316660421336041832432425233150440293315529567058768470247249731430333357525933301133253068297011279381278430044672762652429263442888036128157734492640584327022170177680917545152018007458705914691973976673109031871313864817107313592289397086431831567723516058367435360370398161761114340444149871129251805420752177020031329790023784853424619609578543845416103198038300396608617453333060975134672763823724107068183076603728482220957013229939214092496599903890786529637142804524272980285155436014457723520215315528138558032397528764805923880500284204605798667933376737677589398025084847312041879114882417659482329082881725063132607168632983168377587538115854160562899421209864125864666902836200012521018390575557694923733776123409705371720379131339784482699480550574034948272691431272361345589392942061298702192542194418885368654813903577262017943826122154240224342495315182027800218340559813335588953231073106278727014344371728925896970907647625966336904101276708030921031171275697274933175847629912691190984099167783454840897029761446775778022837424698007092682639675063733548074747435320258408072885950915919349859058153891844509098927005967897266628627383001565329029347700934030654992445950512001146151323613507218870361511569203722045331409861778649692909167619805045131615229800831719622965372920123877473108039314957132459126101395075234761156764163019078310227403325247595578409098048723532985714928064379301282589909137747110434595601768020821903773531343846514958542275983193818084121948908407680920302562480492800737161071035772261825260316079968119943978721461399764862504918908267372753558069340827678410985275989205332555965612887636496604287810175434113523245575038786216597451481316831014618012028228921771305982366710055588271431544667743221805518357805886652207371235023608999587858250195806241959615319509065051535360205082831004615845303001012715889147598178333098559654240968563213681933984517402102393926155074086440577339877721747736722470923680274323437157683454927923646975545248767786629129044497993675329526594548404103968511511108668492812663561308850514833307350092326168193682988354993211532766223695763082087552723174179376135192069279130334297107353777599678971769239738204269179617372354583235143656058210090736083176630626630406309132983892825499238732280614170888558787593140671438342725448576727296043517779010021822710491647381358060389259995291262487480491209142090743881418124063583491766803386623253662880272971219045303934724329532962154689093818945783590936464667377110801941600628633430312575177475696760536589446336576401709326195389508165418930802054811814172704120719568675102489967137249286665634755036900068376060734478096506407474102116059531192842407648499388510228873839849366229359187568620015947263118924558183468560340779421822607319925022908119538788442567172642900015076733284212536918174779460399329605352211124037710886433283667386140636195424887203809265995433743157722664879773969729149294518253863991186962215916983644056792117190667628844232870246007509848424032295315486214604250918972066123821128710519589947740398522476458695417978833956481891557119637130940636307689318909036139230324936152541266969905773483801177410601071211437254342347205337651718212749990232049172945326760461732074796342573221982121408585432152120320228838008131781756858073173360567135039929349835830525523306059175693665596061423807333371477126024290202729366945838657242249628971864596017177746966056344081885926920417830509566731804218881357360948301454095090755436216018987352694813321519464264787702337755471010459372071842907694525384425482172214178741035320636181976962353919880461969646817774927650111236580949139943450357932529092820602677375250661788732726073200287612111889485455348211609257415240157874647400091127857982924281955130737745525335557684770367777854406394781650293925924618848223864910303710379110105277765662005057702061697363793741401350440846202573842879538568959745093456205345989885642901151129607405882226164193464188144644533838632756260688427970256684792845768318583389404049136670428750234474162232012571738901592372602906795730741370352993538734402949527239402478882003180815965786444285539375652665439528608737463727398325077610110073091456311582767418536966873220978082458354758972691910350758286118734249610398711620473167097985382390119339359243989129427904197586218449487650292327874582635847606605007925176024009572012481196513070303926485701764888266697127148471221072726042348350638161911443247852260967889019359893299351412223570417574121224344517256782772517923662247264583832259660691772458006273867713579978955374751983387869060925578989717428335238684706352841697324305723570549049747117538899354928509907463990249517996253559891650753108039834254200660978483938432852511057318643273056666451869436245559299063087476476383028377660664188665437927969017715788904621858061514490560930500100411366258005218667064250858123196650886522579895915204769247875819985920294328928078548168886787433885579005459115774077555145528074768298602816916691741303976839446884979098229433178214032204318185369580810379236075709312465115815943203885188903315264690669752461404443129045619827335152075020746799784495276506840763428782976370945848127802338858783463820550980699946299335191865839060242566210760844934746961543706014284691051280891561403424628967974255788201367905283481735284810385245226473858860772975603991009461850752700032361015018632482302072472138678634296059703476747310467669982161432984854431791970065694237296434729516559248599748407778188629364371081550469989049259355263750414251798338002660334874597447078362971481949219810712906491647790778687314586160899343409659126752715611888963920791695498072641803281236831461005159907849378762916323261577271822988066406061403077415365316074224139489538303286973331334648448999860997161023476004925128797748190927213598160902943490820287967551284643389972363520121727370596622610807215602788787587284696215391007459223194568418157548387769084084650186037434770402705841503139863046279421701020005027798622318581874839636429385659999238872800935301573715204247695526976888210946550238594267252241568478104036972376031028371218725702819695658733857433222544948064991296174608264782738473281808869799574353381659080065392280551791207569573658221706906783764689389267459147999018464257519011157604062942622923561902521772620504845715647074118198424574711586450690080928134873846883056626750493644629796667342336127701149066518408124364123067402527620987045748652570169403513116372511147969996373627382651120387127220771434809570224482134328118133037353335209429786214241907157368386955211306321047522385819073382589616674150448606139662435736609702167924213980389897366213868122123476796845974166410949826405482431260877879974653977160719939257136333408696371445944460323811093674347592518870489318329701470502814594737616925477824623317232204273513321438422648554069256470591185881796393087997603118875658772185291310300989475857770504223390339122171522469655322768777667131372738223294141050864073799932461361251028437943520127789903382345831650055317823786686707411621817347285672253489264350122654843058305665424081904842443757132856144429553350260889942823359703074749203167761202714895563283720493052507633016923034608554238342180927468377429597305717524214069493757315324517070137935684236167747950375367996993967682636293621609709832153596031081583002768882217383055713276796703664558393084390710838602922291648255262623520697748201179253359193124432337605992172607364169075666316427496315288305425800323901668574163847748872841388078926320336342695172670939689998890210812726682271570298652478908613595753480606325488240949382966707138536146977092180619804845369823193523745313608254697222034169944675486539638383135901112291638204000199962562908439249590857689604602277062738411349916203301113375096770450172790447869128898650923957556125622582721545749791891521568056079556870402348424688965632919546293321853415319684761893612694672997151474707301922607940981454892091282348966085615555633089581983386782907130209076243564857010087394328464324776654565237494453888788677317657614539137684713715842979566931856796434820124576871405099297479947288995071259115569655450861004392658225117295360707881412328630260428395868972651087108510218815664532710935409148489542956847195082382043260294457671838766890324184478683834913066649851647346003173525826175442383732731291935200691410053933834597263213923177085586880075034842442459369137967637157229708383541326874156598823059941440902322797136124365153956157097225876779243307757097966463860959354220861850786828663976456168588169864510052003193284858722094558188045542192458290817485781870459089394171580245996800946206768272286880637998202830044674949842156362563363342990233621827908637180680648991690250276392582305987893195266994222012576596547865220220883140857813280570224972398029930459749925456923537844260602195937332026295997581410034944690657369601816596921181619668638719950225009268329021398067018662738007692608925560940948693536260288581648587883193444274900529125826696488131381638292063844846212720104816406298275421042754014549746353375520873982812520389829630229617627627595783042834928927098010842517892087225201727538760141351117730662836253598455089181349107977015980819884184601163207839554411048136333049280852950574495564678624693622050853973267245165316130480687794857036272027135286210738129783761179933769777793542239336065678297699969394755469587075198175051640390314480211317805125851615759434392612266127065081767551574726362440961722710893098567270393878434380791584095534954818750624408001155279935077656230693213285075798865259926648391066005273544493458354410549555176239428598731204521207458811445992214154859026963569284744698433203087177409148048365874786706901645155746566920272383938377405783866145220164509430646903577160716059545190221037336146272600559783663871275460911169872120743304099712520596423622713245635655480276590834862927518540564664398282372549840767795587500505374142325973285797952324003895125211821859923415648293205354753244229665025074751444334849421515733317313049102459646710388977884263424331925762400556621113429883629449728624107973898564708521870829152132115394663193881317796810231075328390496984444474308583149037700487935088539064649740340141013094665116128250461217640992162549055411969915440608134670996801961451136328624421240810364624889313754314197417253905420633146334842579897732214330958317914504739394519843926471413216567744602371405316888385144815057018379490831001026216885922957544535797790295733944582872331197442508382420423920356212066652948393555105060111114037127659645263069687495084258424007006199646760168390156330192346873051453891056966737841766169036913885151152533614059892087228951331464290385943299379385097509562509014427483832895450833081944797906679144596817447560917991128623535578194757042478372519736835914193957651496234519375474478288607493246340269781923358698501371139631088100015828331988950989660191112470722348310719883827321053538289661290763763309325396649250170846666915131474585916845905974811103057055541277003926184866103668119076793250937847487683707533411657051182522792998877750622589492314277334134202587885785542011810841552374486980707416318795353984758766013203507078815847334410312207274387606209023378697067633969796919789060701452606484493889230023726818461601555694114161362068395986173917057520620062157931039371488636151877250183510068083247198865064600570113212632932491448774828906428249089266633445008980354657587499930103615666087337475572289407443681205963188835263861394396187485990749833300733047929841525511070439457909732481357325483954402980540818884657006253929636966373534532107840923919856940806397384588159176384940506801568939851031580527071458584755266408020397456179361183893772654068911070940813802769416784554587225336687277231713119929138752781572010469354065186835466508045935911229720639446140116444115557654896015837699886036839808310319760304587437772961540022367342310891565922170113893067348829065436228264912514625459957815192480298609832105181053687262951099182190432783109748274411907849184113146050288462279195262225824589947136266017495367486777761687938780547618452078138226115681872039876665037302383031659122834367341648948186053609428942133327077445305742299249018104863601174957244925751367319265635000316739225100384846153798472302380537546259350219073257352556334134947828573515466256617825272199223638814565216727594741211364376020809229121688908306860603218910991259490657850734961183406973171349692584711869407927491693884118290073806969569862249922625529264193383673046042313201970018021396027069096281985699383293973684950443098762478845899789756529929860480995394479174618644792231056771369183139842368339338012603203116838659358699119797695137712837934457095078905057432802669905588802920564084466526606232364054376502483436498334236678322858058961499224410828346943436907580555592958139147885402737171293081705456713973574216463142341569330198637715657932187651950106056175368395335726567629499532790795485882274976368704750556625747718726468249848554406203260902178803474678130702581241991644046937176109192207009408880652695521330955986299998571978284023007002864472936663526521557965104383705429511697086610729418855195224220099826213994211592736574965927942057735558583381680558326944154697282037526669970838647808069923014446450219043529948376259664321245941349503316984612609643810518154087294959467109929600389797757051867057990208284225326738102873682611782334665057031729543746467082750694520384200311128291823427275633767174128156854359753055708105714424782290952579993862212222663862892631655895056766653350364967496742843449395187189475446060400436807396157620561262344043063286245420274395174630967022104678311622794222969323780674387867977320681068806994297701330389540131922135721454370087102860535821668295731139172790939931714979607415384387776153107078832500707528808289082047072076121672573328514492091348252301418425521408561156555725979287553500584548151660072951141362209034272856351687340170931021047451875780191283553010620237450741913157471138683099401230268242862237636470817489730554608138080678264260084763922673119091929818082326996067956133841119362742851970641436822219520148279785591636740265413155196005049331799814079817221894072985510066660521518766571828419046932983497303600857064365404996474357082851586876358666748259862209679061222080879099861701566520670913108415586438665202036982670234749227705573055101104869512505806292918346062860385295896250037066683452574141826034368323954437349483725851244312217103110635064343772990647697424791500630761664204262614958990362021821668788902273941886198915279519933990226444783287467705870923332530415026683287604317298363431408910096320104548575765322588646209852947327737164408246545896205515412928793038172530753213924684217433328768921239858377439919759272065457321247164150346629370143202587940750187924101785097806302417652874583972768389080701212551625464967007129291248039943463185028161006585883503450961107819448707112250938165479447286099940603712053104641106859890038182182629543256048373814172955411678329432565342616484425322146077387771664733930999260390586013560711303683699581453291999086955261961927753414644857972014080286358293641378001303464899015365483449912140552318157847533623680237604584095243551089997946936871441209696297302285811385752979358390042497302610187203314448508759110223706355337260069734713612889569273751295123925470477626294608165363004778833300109689153448988430227555534459042393960516888352106235561265553833524108770880809918534047853450038495161879388997459552896751025199437243159546131271023367434578421688681866430144070438091758514476514403315832168626447164599939869630939632811352875394806936592241990980477268288741434620871163593461639617984041305522966522948147506366300359521801374113901813322551348688243289529607933343650652450651903401775998730724024452761446618835450131554820026448789976146415611889108764426801857299524851059625755529150827283460016813145536001451339845973548258726277421937652473873191464481288096473248393622632120180757062459043402650205233629459771166161817448295255329704575943318952156444356185055242358764145055085017030862628445413881162734090769979684807529323137311424712527466406346538512397520119456269533240046272003769652968789626390041078040247325445789147108748625335220616228771741911500712306278590947741120401558297860146451080659364854620284970027551603288041645475727228800301339857440698126051337788779612755085665896749847521133072276138834933192129568299333204518720620891037051573637845691372139424769659750045648189397268232273315414903773163663755288492447952682308206968210669499179628067134326175303189453406586742206706650448022463685220056656899485412349467078183274673105388298455682403690924286327433672610766643597980831957898415634422110520400680171819791612543295753529614071464904643336852802559819540405388953531320891623675970094693565910443557371950928784330201102292742750701002696412119573828897668475166944559054711047933895938738684469955268866524766831563716021490474026903517782597484320375901342560430841721288240546590583440071401279944092558954813890946870451790515999872076424837329191823028191325153370191172088464468780586191287010482128004209485082912985613486428668294591926020230422306046707671356040462979502083845995062413215952784899538763028464998970717426964739929404475594227802072538439273017059566075879797516122436903738449882740657751891447502797659388728716885291400234502018042914905186149460273116398005867945753802070016194592156816349881802927201696782877646331098372588442067080265827360346849507303062379536633862222482088494241287105462743815107603515908525949404097162061183949409904757037197980638654440308125722175436003295757471404547944878098414501961878033782411532215688591326560526884223625362041859974100589031086222902880165441963152448438597546274379817274902340815926246364294995111478821347136162973431410724785070006491247552350609093046368992387941703929408095191384356990482064609760858655879201951785840095895514746795939421743972388226406929032831777432502110294708588941769643089727782202991703162766166503210949015704081288562207583895681273144794840405956534822419429213258776519652357882280517814406452464542824793336623250869899757561438869109147891224538972254079050086626941312315063625897260544691948999916875170956959471680957813139497598703100717956390904279262447145181825627010786714692203327103375462656662670329477690294773779211570696952531243449117996356243928576690702075960261568976300367587999917751595523640241101397249501091861307785956938124185454630274613238367800360415210929668579825663389367812545364536275858019052346197567011866614448046249204152563629555520866848179089930842899643051454813586051656972172596163603423737765091405104871487688969430465074260975894750341173747639781216474017883725970907459057720533370258248279494309894504851839848731343238642218325553582110395585190879863914027792464148372067150684945422718530919282420294758684771037681982873966098792853389663034731631087275756173045698913064245067518253989795968338112012361638776218175407319660244038282886613801288607316591566656892465322912786040729043879747507644557040935415959003941962164900725158679711080037682850627298199504339681707303413301612144804406188228114275784777899398647363215787259891973154377365422160975841632190653666801262365137112593945687862308766415343041976187275592941504371111798310993739760708585610996866429332635748506038382784584478846709522634543918397573392084054588139077841333082429001966262849833258258510844896056601535489462953168390295126526315011392862021480423915923185865498239398336515351399359472893128106904552406633865589957153642766400149313845887668601734842522075159468407720936280842213748681885960768936235351010321968052962265949591949815025780421899692904544544626278221262676708550739436847575573995673748690872552228718814118379373365115396847287287095088475033036769294570449299139768486229609354322067826619004059269280979888871547444019760066419465401695844642996559304127058287318472189581081408626330773054420050850761686391494202139039289151413791762756839955144678795967424891367322358372636099119832673946057452861600841109484475541191055416044210579322153261667824916501590591157927696444056992021857051988911809618835168107755099766866341621951179132072851410552612549494756521610118371034096900754787825797549711390409151336164474066328019704419463016004731698550612808732277722015072608576544328880887760211598042218215179568986530651960988233720463523183256969665687010818136692927018321269320087883227471782482611354859166992551297499257809977496263287578647962324666540353242571059030042664173696152759218774015481027818403871085878165293835610487652051487855062816509492520990167626718675573644154551592340417959648063477819758982051097900919883327236839172181956832167641861448484954717130021229439492120192363001443170299059396209762287050189569658539048937991282173631519750051172848352710627782661062753840920660711322754141250805160058085964377860425326947837047626342185087969059059604099320157944048466449340194319079598814607363340166467456455917086492522836623546350774124692451114954033647536664789594573713540193266227669596305475376384651832760276076355811522869423409515645226294648279435135214200399234944874916598587685777500420385518663478881916200822412797503951683062721879879650762349924137714223027890904606993291560873569722703137539850755081850702044037830387081044841046542324187560588801147084135234396988333796796838294965808987670958182799388354837267531175909578778288726572448274124841501035401969786976392369080784828727341568361561722847374266547507916122575766756047541676284171610792837186852063647675920301149820917925777302443215367316258275202956252912987707418751945675855544250955848274647594460296607028998510082143578346128990148031446516119572231490486960507465260428042191211740832117210520892658158447541448472841372921914610135444401560369985763977729382005143826609466552781360161520564260423072066901700392690396437954133729992394044231808942603352337089707980236967229679082938718154159569750364176506669454548650303352227935718287132772949239742625680443367732519272533616835019066140643933448729678356676082583232011187641453787493515234506317750331596969816851078021495058102113475523145237979738984995332607318534146535245781537380730359971303764774867522314207245707172646460993102189489623434050141641185155149930594496072374654342332592229364185093652847941577684427557862300888281035897146627716563268566340179296974396013570348774602746420840779628152174330564237167272211518937069101990560135675944136258268238670643148644947493271986168024847263461948478853087382454225233277206996206015240519549131817365599613090506660060797844563391775298269856443661024599247734884214465882845101803530856845036070514902463173724476731054166231337566901114575287952904367147270770196579334219625933536212549663088496264468105551981009652807390812613280472562092482650888383640457328747997719428964482099361524660165123527226085944858481590181214538728803365258536149731645502568998867449508830031363644824700766249510677285985121351505035825428423947668257171598251904722627257778937249793295299211222088130148360876223566879522421505302545208835954753497515937829288455220550447740787703071001125718985099325111743528616096660265296373154146513374387912646382585791673189107081686850090558027995095251009745545515398945590450745187482902088979434831417861062208181612254469113895040108975360449413147787962187579373625275252882037721833502722801086725096857045471578056122018174614558774672602248264378431972365774766712917027799116413750700159366008107678032674809970911648098887549382658724345050057796461719646139231491511595708726231300748725599538656769698387033600166935858315262944617245666450106157625584617505055550753880474530993187170545058749245990551357196977201598578620161401452062517255178075021198840941544587888274351246166367989335684225060042471160328036071199655986962866810339349868908742644586587052262345644494201837993240976414076551550103133620521538561755899913873763672452686498904239726382998236182785163993901986222479130723958507214998436273622718049868413535937723804679544248384994164837246178624912130795954322043369479892062511886896702437140429943277194861453126879515412324281255341197122626351448898586091286982599358257571346498499769665070661699792954971739819576165835339136098362690115299077846323224818811509872772467264462715719222185639308044833033134904899412384988294129659881598073232108484122790005553745913942984539878262974518848612651942748645126749734269771629827100277938191058315632088445224565084447065354962752617954955764250031809784053364736996726655906547457789476337480077751498050885149338860227957601256461337264750472477893474258014016690996603686332035616752996113852251991311453971494282854016772386012072290121762120685644229978282758394533529160073344329115636467027155469218940700003537391751014443782648493544140901712502375067109515001804956621797384315186208288378064218158006716662807436210523277519125586370354487133960370285536632444827059604620479392469984788148510023502259808599144465893832889515655866155084111485992291463534928248535086601059449221190677706937470442890310329475090615558974668173233684175989750963877974735845981974420917570351893303291769340628150779723598131649061092394695441290763948516930892346178833692687820338356476061150596371559094515096273125214455395591392849457383452646742001124971848544574829567955775614858925437849509569983889244093890794711491342019788131354810182790595886322277348614956086244214559344376917799447571873331762825880529421434312051427904108910682503567780053492805350389271192473029896380105092908511661836714115318182313217219783853472255095471248430278528081212607358676361970377199115586880822842444955102673370180745780347611546595262503328921314433371695089569742052281050822576280860710208112964089439719818242071575240424920722156097793047773844216262479326060039861521028662827863851997276193663065121422589069929572363866707440587945311770324765075372908662094929568099658452953298020612986930158325112508489541601335535510183037825747506928872628492268614451047255607781259700326153454422691916961564231584414493481095112364966252892209996818707757433569025917991178231414715627390954728567473985251720774784092860151853683648213941041529018320718758236940812681961723324814755093952683283104083060822974150414689970911819307491283174675065520477744377771084691941557740403054825706943762412095052580998449716063107959052140812342561378315555056719668070595134984344621427569710565731647093353456297155999577333174554042347916199889339163776126809547121898189684587706363989936365314336733502932317540252656503815084607989070116569642110856958967607548321405391381354996266027418429722038312768601927989448428538984979126945148195875943702547587617816562043776499970754878692873072210145570094810300385355371418630574188015582276657757520905850852805614014312104744354681584752962739368455323106094150934101845521128436396750272306573229482188398996748898030773507429131995162800485214131276868957331961344503608257840345069836965075653333263736556121580061525970762884928693191175148972916256701773273677553447687120100262751967667781840564923601838012070753027497947432631960674308809052405458591536560081009142833430296131475248487863024404985474240377039919149506568919857142237923185171402023198203065120040821410211807706213955362108338422600110298979691579449167797457126033862932635172205990138471664414865653794557932079411641485846195298941865524848550442896530732241053700733260448065036189190348636628545174366697678427650855340763393413962678564757664228219754278106873580531216166303642584344223305998594011838034891539202123408903526298563330030183923179555682813115062586054085944393659311562591737812703971220980398430365982612992742463267854900561892322404031511205646966498514374665563592923674726728045990596035698514689644509619962758124313677069765414462362493305570662306978448995208520279578157692333787050925146424146696714617287308064811584031627031806374353295269295779410888778925149971164659382426803345245704478545511154745223593146672377135000202405124445184967432035462695467614944514938020854378429380080754084366588579531934110416344293238665975795546816191193323388579507235660910211415788757053913782636273497550870202787711896560646072762912813882188677540402037789706940182906112315120188054032483296270168474572872793692073184004943993657117617699099018526424861582722598335536085489504688382692628701034021164286414257687250008617362144358308762040018349213795187833633633062652198766748847888014030711206688811755229493008044198705692112232639659372439180479612605191229957811820791555652997145472764813615072609098467289826924954885971210370182398030406759929377173480886515713245651728170963090635743882135153226900561723546452808686620134545019022524694688406839486245806464355382495823238186121797294181533654109423112431248817748029750131689836952514628209950008897742170588851317446821518017734851254038836714216341171403933367997832664145314093561772606865350175460759380930933651091633024670968382143710929070731785065482923261685537116868119996365349469391661128658631071717149386855599799797583142839478043712484681399136102234179610475359674390630714379378783264123173298002326921230590541797573667052221169989633503938501323955694754055506460821511138221337812869032929739852515999704588732656817518652362853489531830876777119517580153793308629108427392543693301008929688651784420188541021799964762567383235777336192822874918059736013913546309087237443563289281836786226308867081484918866407162944999778290680026876395772329349830348813473283474811933663466429321407274752473242441446553514837857349888109433484912479404478682293906777930629153162492154756308462153731304815183601915788976517025456133141463690439312935570325949087914866664274722549865284441815848195212941815409938624307283817765669260241912043513745520104663962426369668381313681834207056017359390149726540069512544677747272929585557495815188440255844064876552205359237709677102544573118767334891704851691664752341572455347084629215825515608223515723683867659354368214872713363583418718512027816382365873561189815844757093062435197735389748316732945057021981475106758151444141801805203728491421836605723105328642327740177960910340473450390771170331261197250387210488465246942512938341347866116399201434129905977980991001369243885850330808443343287087896766773833579738765658440574668160840447268066040720704677207804376774499056684896371735226776350076812362238559086783316843378084790332068707893428064859780153439946565448529837666627196492296967688840592079730583315567703378801523151873245398176375585538977539643943684145607327328080028950425477956791427085573485110281514666996789844993109230857695252515686588885318749645886508086289610812445503542679186825790791899043884070371508140051068961082109862188061006694702509223686591260714902293340732471419854862540067555989052908647372768487361273737350738832046758709617936809342311544747068244519105670516785972149827729175497043772058592904708898708142406209275716152945617029430953600401713167916338213119419487721041299523188326385213079938750079579060283076702783996345433135536739563100418383489295765456342160665317995043188210607392618300170947427229458392433264300673647904074077767864246964070705682064858523978610921483849964405544001038516311295740561223630576092823642713363220099756176598426230638155728573075601188375685932991428274280471980847450257500690069651512846402565886784913057924589604083430126190897194659694590971440707841190710131799807607608359683205431676226244577941287513447398607273447353887247727075601358453228365310593297107313715748434066618975043402467296218882649302083467965011579892452422999833219748622333724818046931351237518724285060290166774808314572070917267741218940486200298797174381933793231370236146565189355993273185652239316624490344098798039086301373420853869599003541959392820770647790909005542231354344505402997956949658106797944960671322207124593488304715611432232645316581529638282222403792041379380270295158720071749350484474885291240100764227108425184846482130569417634205041276102218499177181245805285734835071392413587756624575446245989851884830922862748033135535486936165698130848016542663008250491985201747958500835012450714527882784753376263771054477616393508865566795073385143965742240074748084662348323759021571880651746256835395788181106267317844524276540008763416509508589756720811697908243141950851354842379664602763513140077107628910885699281215877080203215826946048742897337432769681163848103170673073322356841150622496357491793530616429558454554350071527010486843592700373709465775898211385543423748834207705876724272397719290607043554867460007431736845535388280936630857514004032579891353361790323407073806194603609517655465186813213274413420560908700776679905674679204805374896293354575338042536445894544539427547503149958332887883043923520234121994751441901338877490926739737609763039729179547870046529349303644369687150103425552134536448577063512013351721513701940697174509435308133542654462250111619342078919415851315155841468381506633892399781333815714595864029787464557482070935528400292959208570228527811061630526788171716481963253382226242436870750538557454571856242445333700667435664465695321338594279965322054479910531608048844543312023624828290955206184565034632116209599506500709433592345390141292708392146678021197157667894835982778312501582479060075317147605349069991302303644970971569870195561528561815314343692184793997434417811352408385115912637708236073246847872675037208122280488379207297855337050441206626418139461044046523910429633606267529007251195217290312318600640894969799714160695961628087145157676130202321356947438124891707010319179527560188418642364123713668660144302750453508678351405649317931179938802783642396862984158478187523418064618736429928884657945261751268336258833948490811784534674054195239089556254940770129663852849682432817161129039104956589914196754762885413474886039426186592905993307983224018771907718805657517509945291809294560687294831811490038164132309653029994598282944692244352386246025275871616732798490819628686840193350293934106933684407649739412328667588337001585764116771561018512890550793628627008694071111420731753953790818289190076134166334372297382306310770265272110467782790269876487798246257773512356986933251872738543145826806694391807964050335794460817416778387665333225362234280985943083568744564812906450415519344727461748081640502170414052805309189599954500354395152176669069443502722158296842970791583413493050670778135360825440618653982459065911773036893898024860612800001193660878642410906725096935494898108610716169694432862854447290698087906358795033550891787508653906416370513349733767831197997966743482409129855730896681931458894376574842016548589806482485690796398031621487140609304970990073549502405575229320393744181813167701806283916313096826805721521022475053150556722020742007758194911410480897117908232195789921414203082384677492508264500980502152575032702942962116097998337260532552009533514129889086921148383417215048173395102306203842250894278545825423628251347638764345809344156177131911396516489533724621145598878395764903664557586517558051193852256006923843430004493861198900300963571878800157048439686502382826097199881659986644736695924149950693781206569735193820771437220018402745556658616582651428643456656029404920531625297771188780563827667215716899279757997424458986507715385446631794179043621559190388097091246321451940445275656854442630809048156912816272726910608514460619915633178702200317747999581732095355096742250647947930647001880814936002575677628258168999889231890136974226504846060076182669998229559117628953917221630093921817374823069142667003402833346785269325623017876614196432385391802193986945437096076343443724703992362029957183088930939037555254316607969715360596089340668476768770030094894766699401425727747827140454000176915379842720306750635107678354934980001806938539477680726397124065128059843788967485890675547746308350511480842693804346695621506465754422479195202215224338848548203505644445274465131925214542111755197053746862044402385108453510634670179575510244401791376522011433096923911708996572222079709290664835544523473850805517545129403231114055915341851557470666679190559587705916174457054612238279983235291397194052076161291021973685973510546781291540567231742801157231476425746724908331959181791151714164240078613352747312260272958390707135111835118333598910977024518257174829982722216123100052498690924829408505275987348460446070420883246306628064544793673759566890701255789144062683274868392117200156141435250246902379663791732187025062921301332951317103019424697962656715853635741714223780026062395463019159378910992916980169086681352309680870670287278103869148626294399819268937771717819114648789878517122190051280425769844702035396955245109587312014196468006587324778238847919380669078153291926917919273968459196584481682370137268525647615604679817235414862059446214145528996518029096680538035258198893492158691314596193086967568040892341533863735119605694374275313331139526742536529919828672707801001279629760750541301579327061034292554960787616985697630597417729035360553858251206982812524784191391763118827608433114402858425323019288799862703339674714906030191707402815510822384207649560192176993517472517385254515432317565771699956343543887597787296824656733806067197434820304505067683628065534126064161578812017954892091552236135598271455753632472945671380585448524525509671533471697219665357619063692733988794354743850341427179112933221982493473823967676983900826933175487517657341319675454111333263587720566635915279023420488515340276579189078558879095644796211716262156257835984004955393549527993641220289781600623503184091890383166912287186945091116936634010434385838526764794372311987783207525948896942654470181527293033350635900926630681500616012780108704239227680319442050416786875448562175993432339706659924843129622681919966959611395943551613333990249677348275384200554971240617978132976391181615432909144099967618023797156003639067897454077193038472878047693000628286179603779961094682111723277086039776113888354937393135793527956510121693461883578425778685478983569658851736447531955143304013313305518516191112184090280624796796676183602927455002241492541337407101348386490647339306441016765835795009143249114887221512601310085071944710743680278812496563820631655288290511605193743263514289773901046569706293532338188986306359350941317086800161977134494348214089603394117995239373899930063156945917510598684767920899906775826142313547979081927547585578016208558788133346212543489532330411964888135684356164640459224208840706271512880493224643627559045783556364156203680296199130651887513209250675922499320420637233803280866389765274113482978135175688388202421778306902039025762696785106836125232027214338211296667148053798982532519642209528488410654684880886890682863387450888488170855579240967650396094870534942737843523708472867926891643378425038628538982080011510862169291662718422020303135577194782823543377056502172659313423879617162935383564918827355774452650289852881359412405546472157902899289419607620808164169751769423351751400266577246393486670978402327296688232155200642125098406561900672546301334865647067901305304695481310245963540438268812030212533544038076268561579614439949306592332444821379310816140517920071898868861487484828034965817875846800689364071034002211814251461065320553644225272489166424315975003813573060064765727293315842784516617543366882102657861183481960693674344017883513833400331401903835812727619624459025298346296802689118311195011435115122019457677997556456174501361588683262720422647616127453471328471593919077796134185080178448214936895361175711101182836614956318518911467946344163108172015052061562382775038140182633138218381621361784653534240239589165653390379427008904053134763542470299986961838994254351369453662440550744760180731395540447985801090403532698356548386740057783327440451889521151345189999549955807041391211837978207140171997759691607289087267516074141239737931350101068500010827901933748841624041034045064565607728509507165393375074180094568188642661081562879434099087595950819029248302235668646765932276547678272911610729821945202244344745785189709737431376884402063739025987820134569238117099311170780439726678625147805062087616260189896143529935877899893249841874713589768659477598372984617651473373130721015198432522712232647246438423525492670704214390728204224413854838429252461377734363588240700207577221944721059178735495913894496717993260952583058153460132013769267216347656751801745395476659248895254168418407523203144921513131677505659514649923787006337864596188687457658072554319342486772473304103186544180076754322303356458073518871085770369375187303270757082940368151241935131734715729530393584976849377461551403602598213582569776470198894330936841973581644849686343862045243864578394245370709394230641091739524391313112726180348452902172582320810631590599658861299012480215086083726845416287935481318183550435849140994625452086147501175797878836235426547994620533436323598031771000373802123466130418231610566718673891358490673788553274895981591811295771368480114270722883486206276710256367342806249675789379668559352145949259797718209108616301343717707195721711666323691826537786329030643062545160192918404157393347734806015826953870172805848454824497600342541675353468022337066226572796287626110337239887014590825016265993964104715452385793160690189871156761596622839339552702446586012307465666965181703627625319643194593874627566071635646701482109385271645080444844532209882418338301095521967578865584501673482391320170872932035837362855145563195196657049823509867789008368636415169412153033888240358057132949345084817190827831229149028198827755855362361343454820340003495966351355506325594271529138409060832149151529645334906230337852946172662178157326810276206213169382905777543571449368136706841090615406880963402444324393219930097013521576261291902174784111449155497785107069611797715799672123034461592091170693313731629206502047673507615258266750301704921162544066057374269290059307927680138524155945238436984706881268237928408461296552097206218555779561947317757829547713814269074182346987433918278191647623199292368028910302129593593745434301452453570752167371362863958632966946844726777752056224064946785884992475660161301635200651517424200430393902427631030744305500649417631859408577977962944344711142747645481004211424470200127536421322064185743513677545221424550615509781120428971239931639740083716670240889732262280702582487938384411586978660743140883794435881636399605295210485102428823542716931040199789895820604841348813637906823517576723204999346837415085603646472310020301073925925752173064376325821040368716623383783255887966899850611496504831446433279620148662339012587246556254320658975310646641881518365895740533717632434399388431593316416113992990546514207601848847746384424390647225097714667671600979830255520659197091756273783687630615294245059604449026526727638856592610744018368248451400003946349047245616399016983081358904773748604824546566108786615716709154656553766091270802562600255026081818165491852882314236123216679067007622561682503847523008093787990419023896826678793157860316463351262573832839919835149429807045877909647370321298092226280423866643799862090473298359354314321535595047239004052404561646308035881326152973485731466366733439587130651680470845651585740427468111955728110500961042004234098170815021428852941196373816918080335949878772077708115421963285800509247394212212046293114906489178621901515090416417831010206380913647861603734135422759671807895300940557185415539194166221770267036920439878146041171414752816617841958831876376917231828404595209823043975153743731793404123750526314702527215748953650076757883755418967459254052458933454897721299231235298907462839925553388384109441392671165190610758373747773647067356039631776340683916822971561532373001495832815014853009635118552713821031156313408191507117101896602522773518258975944426740881975286984127803108927455442885544769341455440287325781041331649925883486434403432260482008900757135697251790022045428933071712049647969563032430291136064073680395344848327779131303530094477643095390130856127131711779511696133702917110174766300353742329524908444954210845234682321858040373560143898659946368916459256721307444801546420561588843176388557217500992993514764846663231417599166606514692080491586318149908172057499734168399777336644263546011084272344437498891942680015939649582067555500448943281671258464919641155753224702469440635419960160096550864050600225196336858550406566061941177908940501951265227256358602387086624941611555483333718226255231807539751207592643067006868105962297564086046674395268284481091250950299148352493274485785833304649784622615263909984918058353737146754108463692445116762550118721369196507785588309034969638513563758780061298466305256911603257594740272352889012408602306374535769348411764435788931472002607905821867998766335083181524504564097470416990608491305603000338625612909337683022138108357998364652657256702915535159060310332389478979710632669989934160840508021917859793384403451236760151582729317731522501145475829264094336732918335466596002546553944583693145695049751095785203615108848520357903742831452609199053708056028847689954436034744593941158987901610899314400155959885919469409617111997027316816395899808759000956852926774530055891214909823231821627596986965213047376443021766309501454491366053906366967693624422702884077090194866767968655516279651077274259550592660847131653538386881220794019779455850603781192413650146682031446277509277841148052488980199766733546931438633302212061563263248457590728858293760941614633793019436838608790152745678872160655504153055750575308231719574992743003707995906854508910778500979950696541439598484029998332974517530090314481352023434065613229133347388160435504091514530166121801598102479722664212428109694522119232702854359358108052664746827084964853425795479064306193195845018499842973757655629133284573376896409851258704178991894669992283960570263311466087216489957836918355993566242131568401676396167457915667075431238195599260980627437657325831911653640665057432675559909137475830949840297283791770571127961471381370600238884655854607791848017456997433806325613657351016984760450338452814224878960338888541046210232046736809130086784554956692075809261513796099201851837828503908451939894155656311083684948345797011536948437465805978263494224262452074769521222628998270407273388227146612343581717330131462857773197217488833139522825934438197030613269159478573314847361085943249054820348572823896878658773944880065817172245792318067393425141065225194100986329142945080036958145348658235474505970438362209280261522428468163803796820514529245786343008384083294926684046988231496018871592703421847016235937648732336446197428700283746518911645630823054790596923133438188991954771125001890731085213772503784807579373125005024361042789914711721218531273390493705323149495640066187048218399412735283098355675714179769776032728099711371985507864008789917442265894922646164355249952270463635959687675605003051157812278089424730386280516889636516848901741756994894493828257014820709932602599247183853914177901363233319729755711215018257361712471498140185381553846542168286199092362915735340749721881590078582587302558149159089281090802085712290302708946040777657974018029931486381079876077493928614489931740448299291842174245684150112609639293386559418143891290452650127619940694964548620155434807443495804177265010409970708044013744875124586606342481451531763577715098607513882887626096055909350516368031985863159321375048254219141096979918941192038224479060689400458795150842659019199050130712853035616708535245780955003576499463854925527937488364557468914527178740104829379076100508891779058368097647588504779124146760352734332686308240919619032927989097501755841753167674524033767348155120200175007857478224923798233480663772826411547501133309378449522861490348514598654439615329665361717085980784267907548153608909109684740179091119664796035953416923357455979945410792693992978570827310337872796841296581990884469013370626279384934058404419951644517139792027213554193052798282353075231677294405144522282537696481803770119320119072157431056250895010814033719345276043541598999828369425248981697957271747676247224412206879083398882569317435235518106816570794221379868472478829191982696531355474521401520179549000596049584543493318616431345453058223491539619186883189173594564154638903636455991250625119663012334683104022158220960021110245844880653269295790732988267288571389833784003458025277554581283590146208466822523273361689077464507202552674364979895056329193014456291138879970992652225915671409247666382397090031153513510908196800805981838813664687551566834991133925876100880733916433795554102085674537002963574020077928729658077243747061874147573072570273646883267754656296264959952983734836841739859515135830065088593989681124048315254773863742904954545966711407221664646016474062936367599398587331992396443117054567023074270315434137308140673835239720650794164324166156940435321432336617019881960876319923258595844613672435940750360324576916788485472841382491262049552502931702607060834311743037063536603797633879565538370417629028307853593176889640502980183480217531674704711118875654098187584178776475415395234194000292839946851300620065300823732746852409959481232400856555322867945719485202781533013092872248981650828508889696956086839535502127473215131009438741493479125728116659015975295958365904277694866803186827346587458682397054832028443937148072753337437178268265542649035705708076145680276793550611806293826976330907750927932836007811953548665803694766124691796261008108826912850838760357867423902542842709832031702156897181443893664654737306054223907502371107146531046894170026596184252212862264395200481192077608880457381917392380748618541805880270778313190487946701244500697740089318515586927822206155566951999309786599505499472891673644018384588839635816314330132449190855316385858259410870096461121791029294532256353572241810552704902333569589136786772455716955036733907256710995395938075682011654349726059503557343145561510898344653364483844424600169654236784979278900556870197488701701771300361021991767467130205933116029342370694501065511518776182903350889299895794212179841976174306033811914328534201554360896029273040433766679106719126687788868571672609720299709489058002522861140763989463446145809543357778550005865022612402790890414990265312432430252933532828349529731740889816297301312484788251726840997971262701593200364923573984708176011079564487409986005232621273152468432697143380567960352026333130469647506530659137868492508031692335896506405808596104233330322366351557665770421904706205043865209264131077682697403642815409533862345436305203411690036011232976858183609237084739968342748709588642592919154692256211644505374568669091405626304715660179705704171683238627625832681442662039206175183047381323041762129505481751534807355144126226296841113675051839775988172975975874169514597975666652877422952131838172972728615632059848989479750645914019281434302896690487798631754088004694352535466619311921856118120472271313161817177369016399216549925926257293353499451378668617048472748301922058836337798305440545699559003859542901990466337425422168087273731657060901787246861832271737527792329243340478575698070151359637047774842292576004719956489584300008719892005802168744197998184604619782701780702619971377716801944548515697001986213453958645104201031232636116293631620060921806648754503101684576750525645118755300262979923400383596181239447534950716563984482608640754110563436751040304557980718261829510221833631150917076207105836882148325694018038491541086071700956357616994103599800715192800843575427806632565894447718238047494723030026273166592367783887355366892346670833188549297461873589890908870131953681099166531978843368064799954887526367238222212887264542527042506085221105258360799061643874242622193994818504497008413865890927499076843016706010576885255415145055766009229502074878427379588282558040203499095078907797315540464298132400440677843772543550145409761262908691143590185569945093271181765470055029269245108935325472284197290971170504398220839188886389977942267136546304244431478296592461471022034549984569676177843393986066488729772136647036592665463277203948959024855509413440018191779328579578951416114012358155868032120386106405452952889491391063787920953442585329852736770263234371622483865084780493202118032641869864828798997963956722900768973677027542916484150589300676769940322150203291558671708306044532827980755402553557208033359747786305915894855382880354310931766048110816265658892060247493094424839267070918364365827690571886905092768960796242361421005975718920721468443499317633201598244304521849403846308130322664946116686775268959433502876733554294566150123550321359096396802962695642768287597426047476944224276243600179637535829887875512308014843410033594758954096892731672103124863011796187235711112482591708934149278968026319699555715501772754412720960918212421805216953853635930201430049902596912591991262593234993558469898526110916388331468871503449556945636170565517936394635063741633355467479633319432083110172997760957913173095268196696742041567663664239329888548548456799332015612575292142826176672012331310552835992356847078592916823157699754981837482071372734977305587350716107956413441500751176912838737213003529589022094279817123481129918671918990581545825733383448201172668364092983368477008856019875463895733826608245498115734846538530102408649552736153095112474570617864894300135696889180351896943169179988211319473894210038516343238212998806235645088239868926664814781874290171664845704832583451201862165642918959810927616199329096751451485333084871103326533282751539358743557323199086561174440074823475903135423110386117629245306493076022526616154735298245950667387333992307931865771984574386166230883516682009781103230676959672116771210781484167142902313944688154554298737381208168650401356531646488136029017775503879893660100270617820358661980238308441337753680749056781690829773081177693396806693822749690802071975275188432883071280962596028039423624404789078615588828067402226045778304283620919368094681623243551842019117553751395307781878960970567584595049255960381371416574578140708440717688251606894214562387976359278230927926637602813760242715660421461569906975106017814222051019761731630014103774088345319118489076090494356263952712741661116681329202453971068181882845214103805658767033658417583132024611549683070684139766209646148461413385020878765104062026430773555567912592552006170001137180237670743795629448417833007398410287737281859420659444046346697273315082085236701759547264257966341366083756380389978696665629149420639723583192372369139762205398587227157295040304225042761709336116800334171537977495612079386671289749714932405734690260818203262813621230097735129415018227232289630118630502442021304997704447166571318112593912513602325054776870200058407719360689603082464146431078695948086751499592437838664087663672214937780264518480365887721374917377579823126572594330269647529977431132919189818490576273395885573456943088157705668333131037151938060507430381005729167662199267557919667795809255027895551431381257741307929921157367311095494371351279079819792359193435274890935278663667683480399560062424602116658608631547590150929018969147159855291133622008487022341421916210370123671134986859380811156056899996087962053636007380394683561232789928580266384147716813739036825671248420527007321522586050915283349626682525858540114971851607275849258418983490165883017252474194143641262052524182391238259274376503614273779291441531679528693394282077070111809666793398940205990641673756535817855713184725024651609696365561602686329581506232945832015296766695903146490453822304353216698391799735880898380133940343541698226428469595823420448504432191588121161931079159182918415758817564048183922954859832298913413700834167299948799222712238417420190388563026612520848243064646372424603298487026154866776591947029715874309511300870218691762324705323778937918566175108671315106362133961165525057493209162111090173665557745311615255136055720688361809623049578325413700757676323428236997038251460123125633125269397358533981236775901931319381562991392638875500339013692679002603029107468974417215935831278590996898453850962491923390967069859633434881677646480748374615197727809846559434127921003074741386944166495988679598134275147722801057253148094533043700794291403054376286247432968632959432541505034105563188094788340064614821914265404459562521353166754592920305474873160574824598946695643516456883430982721907928111378128701581787133146201233649526941463272559774592379773260903709898912861302963978133138135946578811849362644022243891743240332848987322551811675052207839358544302681216218767653796423768653842566925095251767219910192765580474448114686233770682078686281502987770857696494062895794004671602516214068839577809065524279453358455653761715882867286762605942524794681311250513792838810504688669925579528020213366320726937460719367335454011322318771186664284410905316073978124435529273931862364724532228016194939470927737458759276472892274742913118488142314333978673806868703976899936989196948139199188709174480365225456671646258650211530974647181115626356792906390552314849533185348229690648242609777168513314636350378247886211404094952638255911332931403836442100705741502533212010573102659279588270949212803841900814143820519744332676174247007689449181066126988167078172427814240385905105572700350408375991443817248181453412551933595480038152904763443538587420026556204099262675766299067267234081726987810083723928482811981614077930897865970131499263579805493310655516128514005787869064929273192065859064213221116739906191534000232716278708236165904502314620610400449140306968409810729057234795235924024291939021032426878148581749457940908070409080985360042350307756973151716629740243973307823381148731455060639234525451744013848958096321554206009514905861610897518760421761071680631766363417703583309051332128462580915957078112044775209177682136844777049423495823280884542244511208732153109186784383864196143694746819831978937497651346683047448984711567938886671153174712894278547765817490873874022305661271737058809310159146032670495993996282885732623916425197758817143270740622546079510570312255962688896958357696203772873824883261937540970713677376829737963428681924073738153173184086314683900394934770538916037841886504191070177635549756822753909406179545091480959096293072748494492174299463507446761166239626967940378096074565383542657632865707790085020740263925306584183460221629135583837925478637224421724409441097047424993714901122013253348008208415289052205691233542557880296327608540208588028583415505775434276107041303417170189979901143996933089752807016631504314182303387241895846595424187470693757904584113720152601376901290395295964796244827780041882032016700403069743810311225387089787987049362796360619030012289841694749798220353603644791689598038473212348802267158442604763071548052145561712198117551216677534828472270480825708598057088726110041853075463042832007097436068106756351723208710661389556319726732952554612722953255091358636936647058450993272192909020542207743659628439637857307728747689580662891017382527712861627831742630640995031119787762303535907111678406494700025663003880963693246809601139917162102150899865074084817767881080987810064099350657477516907865245235276112395189525245831956731124499244634053825066729275035548353645428779949008729455866251274830714367147162968884512944364764525454605907468795585028735712745058490879633602494253117641180343391915206854814644749554104683911017089741683429287003883056534937042136092733073989039662674229841588578574793693383247648960632695585446836382420212276689228039830829699396145487576435198054819922925518775748389861935051760052841199090428395977700335069417568656134231535582014954699495583226581844417176252364363738991681651287065954138058414161371367986458648999102003169459138611364493806482679418714890679253883533656845344041623535524986975735978033929944505897593144818981155837591064552998576787741928819886958623049119711528117547866899974703715376587097685510666066658232925507946331739476965388502469194541596621301528604168433260394664696901845843760995900691187561999050583961431929390248819760125290619454065119022086512949993870237836426012621193752165221674399154482893389598457430852382466391056149587042562405850315205207284889124485046491444728893872274076529721513913519374079283488022836978442001780577541602927019444849179492369384897251252123199335961969469920589641137459632279109060595517607324826407348302837343660661916578797635367425848217960285729249218467830181951470288338994029824849921218676447273292959101518490381007656244472180597394039723626083000258143003976789088504991590996158746248338223225729860548971996658780831572318003359919755511303957702380630004025550135398696756154280532246841419570441633598238575050623237465229377703280357101963544745995668534048354427003657209091794211678671589408888112172847389489507663651798697531123608115121715051898502212672446607030159857238897386737969449828660900350600204668099070621387602500817258224940364180372156164130518139067038378940326619024511398159223376768281345933789345564930932635137823442729061423211690762807095944317391497129405041948023121679533495855860704030936856012485780336076378390976609560181934094395438968167256248356064645718090803030356898315794478414914658738899374234268583687653420811149699092438191027668327977283898042297136604735663470985119412673027177004115329873951530993796083980936220967103981372862527705707670436369880123733465112730583227082614389350628784661873083921231271677860889122026440591281919423607919799011787508631266055870859741243710245418828455478742604026850897145277173975114255330611431652608702339536907142619511679791338132591507042775955110838484304919947116107191142075656781167984459916012422762345772005378626197162315504304254121645130549649681258529925846868240970616237991490957247546960222038663782120784205215584635340912476560126218358006429614890339492557552844140958984356665877187107654800450914258214066744774790600926101479524802224916479619023214821477604164531790591733557143857430611443495002460442246635830149752133940000173740689099729549223154879477605192782082323529587575100125895197482811725212520100748606586038336364558651885451778455012003684471799392534885483381690298190634031220346357565536000654218840535990691322446239500765794870164013307893500930031935389463089840765203968852330354088422403176250338075180793691323116528654632224651591519932793332862045412714606734482822874068283567244997012557366752039450326637650721752192110194662297079584577468305377571448390011363970915284382269229213142457263360832359956855785537860697882068187857852500617507696336746044395284784761004954685103155418238397631874616745148186547256307094897787122490954111553534260278530661465465916428767669160122265481903576878056447671929701742951193224654396902236413646326837465973004601628238289347897580241632362206472953149101217693396627815738245510068395927729451111621764844354362057971368013368544330903282501213603127688967686406027614880601570235243301972691638279457744250858835987515270379119176423469160011574850437366537486303268892814268173694652372382070052006400883233869952190063600483490144833978439337622368079517439942098601712753638933738003644800241769265824495979569247898115927913904546266347663300113400252565538236713629809499644553710370381361364673282453587933578870022453822001284397627851871595085838415396787702190020825408789595841975803541904609461382045188104554972904864195531410862955369065160107086681740825594648247020149816627614054347170856475817240996825112111115158454400499432139916517247623316552466401974438479203229594056058541699900625703683299467990193297256956944734688157730779329513411126756808714644636886864220159355315725918161263198763263054836115987485607595092866532560558623049160553909386587708409878617184180887955563632762185738884849476878912262653609374541071567314066856296085454508884413933353327993433025831108353114924278107277625615785408154318867573465634391259771676578899452279968193562795443616792793463070751348018458576943634523053958984392304530130056842707820976831750203920973330656450847646729806843872225048145098664880894141090264554099173511916656718107515600688409231861388750119391505357907806706147511235210597446537847313618388419760895187054346253329577079179728699373769432010248382733624672433716738461671811302209798305208166791488823522487352094597269032626332672880400000151344902120341749914205853156399727778133236859859437819241091122831115862086694869480987386963928908607696970012712633541642189168937747735921358218972451682916923358953787651848033501538203336192527011694762572144334826945498646405863072067315510991178454770513473445741759409999250163634649401830512981664648998347113767078576609417783532553533480390544151242155124261027257913614017114915896624400963195103994851590689240266197990980065950022353586779480213366687422325754054983909499612796299073636481368808017363256515077373126394336160305407956427393818362229227792411715877302093707453257871864111572770726546173279549934513357567938799392583767402740149499689174688789326969782818318562038297092520932610541367721905717539392883352209459243494866622551165173310585164528247933860661357996606790764429508570283528012781414407925475172525253759596928071798785142937226545943635381571553172250436489190249977552431942322296485577277085105059349182352270351646109668432726911094988775171663742878225529769415540624988358839443538602455867919959148734215401892006768198554148242668886670955300246470952327120553833139710249749729792187120231791138721665968822558425666804271195040863925835541708771187773767056397960735328734975813895328098219050208916828056644321213022177146802640611881503416019694352837822495718978648388098892855383058412311874737661407527400908699463920377745454584326087711203676404111532759663979073685688085454818852623466088192610866361516197502146809437949068891425975002675165674132232171781648072865208933582752162108145912433608554985659375006301616418762572862542989469466084619953072191104817411558819917751879039379564666704588172187887674191854568448685386835312016918049434139689395268452130698509446068211538049118485844522051986298269050042535810878575430832292921345578550380710272833180522374102253254056141909567104951703545598625979288403140483052890369191548141999435227642916035412454946958980826137973108922991295733699336191148514831457286661853974823109351014031682302847359882202753333468470428668194092336235338925165303772509040481423721610505571058069002703194733882199566998102283364740436583535138455432779370089733360938950519873390509880661643677339131869667875983775263601129740645429632203981409374865739724681637060279142998038877326468634298314399502839895674743194336426536633913744406830121074202799905044039647050598969301322583836208249705695886187061716395889093754932235497760475868744134502557863956322079371060072736516445174186868265874992190218297935697322549551153212173326763418719305719633643227695116846220386192455679313827705484765373645386058196993894857494936849928958394661742753639331596921039371803714390670008902557477717176582601908301067328828333392710574600875565672490255530624808998170026565786289396522775522655922328852269507484482193229632909726466207371150189005792122961054385802352454508579746204977049948512011525141130731438928971345256072156958055498980151302619393913535524672597059946204642906212601728226967892210478713677605177593150819859258012430681600722331757705472835055284176305242178701005963387878561739921596373751298535171827951648000883844643252010548607263705988833307869580467881955351992865016130217702759953596591262605207403567836430597677977448470445923246083416963644710247052116459034767253198079000413618414239936626853253218756178540568593144450429943079695168672611649356541054161196871756426310330820326078597766588812262118950199383631117779180750831892757475895320758930052450825125056630578957994504977988395407487950170356223463535204910107386417513510428834175804142275351006685553090281180252310931970542897617096067875624063369736088389926623403718311325394377128262215559394641481762910030178927237523343921404343118036981964889921643672386051259783695988714716264237626885032653323325094371997696356232573678203881092033563733840087585149437895773279650494062913870539834263690104881719961898090130666103444136569414905714103012365349915717091054365365579648509147904056697997919889423480160625454571988671378366077001658163926664398667381503590847791515746535772953675707200128538282176332876472081624796749537199705509709825176454626624793403437206326378575674390215264064579114929576993251314206658489349561899688635893137141184961654068061807033089040882550781184297420670093409605091064153662037346133893865040619380630672028862959062141694133106161303129325301953339503128361308043294325712440366533292159755300971349073962967633258504489060832741404249813131636053313432290064513053686131016404336907510141596478781850756253365187489209578111494895585853125623742568394410243133155683404786277205810568879689599263935607169776863716850934203309516944980380595800344372921184899803252974175235690531262538242769135495577498476646775947841681818104813374709741436303505511836535608508556045998425246205247728044093337738845751958017393275614248287268508592982859076725697386022459904325558840580938960570090850086940526839312468595463381446681122584160868325869168869989719924759381399804127963690750419044680379990513921101705649216181810197318461347092415839393420256659916672081372891443176464136346838046892662426941582512591949273534427811642742812699581406998101996555886014428903018074198554498130778374732955726667049628806132542332399987640533022231556248453043825459219162034608632995513995327542056507333773331578619612514748672716540638509149016460645821205150451259359606636719235580890662359576622319767286560472476155459483877053337917263976906657630933055870329955712161282489504743465810768911661656588742304150979115925717239700376208171764683177637844950815671194645486997198913387313192955170925994121164947446383901204754335673853751565172410811429619242744723885816869796168997570045909904646806893100919317706425424170259527714745884467161938553784752089368285937088252382968598649023196660625144741265911574666621285797422855761715312001108557330767331747741644060804027700216457673723019689499794386820946681624398288161938428222050020308862439331222907445659990113230160498766202828850092904470076523217802030776543556268870682558075573594135112397888660604754112744922865961088589862917997411335108490238170082864428248198023463291025196086348769614817279167612063956787933029148668766487886216758831551607778659234930420912982950582378044260559267572340839648892251486442651157407689275677404715787028671316509837970545789007357558686531297912099961415582155084794925558537433406023141790512844588770244467404113356578147111842835358908275169192396792936901698622371757921803110963347123170084276687405773396854173108014988500588002917410710900975007156603295061252152263150895931608389088582389079031488228667519428800814222185447916295260837716602503388361313466354982821878078119454040895205164491043947108104642822217405686661013902612754189685203835356613950053745376371212452200525889808024164287315601102087529796006932066582670879027419173514896628767144720612510246690254528757126672790436922985601796302995243117500915593126875868546950035743048214995777638406715445047853614169244419661825446977658139203676984444446092474196090148680635430649500851155734360069702307714757607226875955115108629549311836950859787129450603597672457210373746561282511849711677056308245376349412372653068084159012107406898519415586205741062667905311046498634275503641659725165374307015819448832807047935345208658817422267275442998586900527897041913587198611238193994396350973826832413477881309464630084011066422882625486430499286108961410721230243597736495176774272878434381163524787352717482026212097843839910473305125997361845286021948606504323936076993523589848153326434605748742735527022409357257302228736975141241103651212343296758095853439521468637523198297679341492464492254328627092616576410470941788084842233622109339112083779259286381507754354648777226988805282665817916199052925922538774663696053759280516957417374850823432369774995701934028220389871501192399993563519652366610462525799904369140414197401884221336686852311520891053636646691594793623051907499687238545121629741031851600898285082459098779115148517088383806100609810397455280493895457155088980265216339351533928220446800399227956297201448844505689893822748974101485167622017105575795913258967097345741666790768320776034865709068810191509421087143754247697067363613930053418703799184547922739111197320613117327053125988759772499359289524138647163277523015046829582160012281271715051367939471495364524856124418015360822318248658251370590825693510175736961361621840545849375457620785551960342945299042309027125831015769875856259500739300496515043272781845173749167929000504992442220000331520952321964182884131623377591647148163302069560322465884314690944647431044539964702444567963652112484425708812423932962086901556601521355490046747441080424338488153634992566366126344502805553151876191977548025863615713684628032029207692643574611827848488391178376158725361353883747499822025113845668076675013785186533624518655519153410398159703063119123655533982802972932139700013393115768307408869014163709503955939741247209002092565619151958269828038091214758450207552782541970312319714293626112255583796426797808527011753795789285193837302329522822744618079704029943039940580359416994764735402777311743636581482529832166071368728717870841296243611470604578679534015650703446313632247240331916390666356488479892480709648006246859289764560579514218623591874793999360726398541480660103689577667373564855479821346722498329998445379904436292720615780838129830907279695624828692937715161642088219610205383916022168568023773394479479526330577225267674794416348777360520111472014636695082922269529685460990989739620597581569936970477091398204038096035320738404325074663693961379969533208286053779833091181455719211445345855651828685581151822750858216230401458723236059801067929022755884395607401989664148025238868924053354899766229188360803385527031525701126481344336544929156348497114090773890211672579537180701231304498823422149471570992221168108626601414900369800490272698994344557172711784653334070841749805752378728332430779571087880657343501497205749060613962148612154446316681379788465421225484687382624907939978418800467344055825156984840844020120216295780776674465216524376531925863624843293908483231765168964315857382275582561908405949997466435521116887482496338849651019830199766027296129872015591679486298986663975078866339683174481747483161181001566224480270145153722838987690590578135588067152497025440579502541452819506356082710573570464940046929091234859178671086397947423048329243462565625121254589139624942002973867814635941387527805000763387504939372771275592190980832758465728663869221315317671149234306082737584259215806786862050616761103895011104772053489511391046629721231276730557188624590576007535406937103955238563471368900816638525434958120940114150887154860145668165336765495491984086887488088807741501453803655615216435438265191880177257861581064536205697467021672339177434827264376813104497298334883093364911831085974984998422175892792382470931915539573189773324577143776829577074587662953188732602398744566153197673370364548321069721445194813091865987890894620155550577728337994864424124423944773557850783647352701765182264330426353498641061948634558948273638113497373477987460573457428608818301762233842356927976032318312200621461575693269736646256590868867763004558824525049618193480340934931076868130112102856705937747086035634755112876828007598072826580466926174249578503965897448143988980307069812296322692603180544008176461220556199767668763555825138159709076644052045325446442038166069052750909423459235830208304504215336260317111799017782008064865287922517297448908084950022434770800222100389809616226329168546896084338414132801464107125163076696013712415045914783257707158169445011654427799191720819590604434093818608109535848430195229559863893200693365155297815583544432234184927568038856423945571475480143778851193562228540138463669587231890078498216692916837098044499102171700227071893710594437094194815477527744139389620417077863866212737219719230693643041214996372186537895117629605085142033652536312534984945888740310761376289701666262083674988247248395269122071186146682813313158140075979275810710363196906459971961201388496179446772245225350329947473453586403764481240432882770672204295645142397975898627424145884278466167887170292587444637350982874732701317614634668819420036387707136146877668441396984438546226356855747026916389346267384303682588032931944455453611023391287498243620139619671335996009428670181238816564182027137900557663273832372629106487083685278863140119098755093061457233994641332329094710147692147002027728243865119546902999182825921707052478607059811864009534804139741396442892623375330534291765837402634062193613040897104512415733579828946437917430581018630342901294057971667193760715979893343741096755430045753731283307465022866652949183207202189540881866356879918246210110614709649457564179852333417197515319712204988954693598465478945537209761708136916864895704119633082107579989113474925599970921580934110085568397468341588456708983773416627786677285610078801017000016598326951515934940579501482238546590845559027002298993338745445222885282859035034533049064970102360291587239502713547957434805597187001805472651034882989968410602532215619949837617870893819124737116052075945507021076294046465348111852903426587845027726944874240932318306195465358565803346788568267621552897715052897403361236954305861474016991361707774430649007683612724847321241326701022497997137413013627135082004061391853982180764425737275850197217830676517936814841550862323680551535571710612598708343816853422013671227962454211268078341904743851238187414953384329347084908703555695120624025943631101281623769681225516162620140256372384001113952206763964868360758526983094861054875018480744871653274984256805566087022124860070236758047168656881189680778797644945134000591683420885537135263075822730049113438945817543294650121409233117851066203355699950662466770577716597148747957525544445320717350272976748134209109293707459868493972536369599965420097635032716136227255354875309811993373862266874690695738520539261774555108693027027556779254060719163338280945116640312967571679404528186598081105236608803364012136171788289718588476314467208669267389031285799792230633915775332107478183004641811958710015292297804836342031253478237556155238429659300151322118881560972449602351941450213423877065381810561026419099970801959655940338921237498844483284065962509234173744403966003494205678201236540831572936904234562998679882919364332210850400916480281103480652145448645360394236379005361253378636250785814802592413348012587598016453893921998217259438930043242714277658949477317745636895356158772959686497712579986829096968594663550243112038596854679674748072263947922224839887964473473481617377795626540379435550728046606982847821094167905131625588051285258307670351690932085948526999166937501978039378632992186862024538866370912149117985780083594800156755780418044202447726355169500675956118949874554198240556631299089308621614709342459858148998179990452830932667914696615013246586653003063363905181484289843838026863367280187913418097185338478420568684815583292443865084589484812697013292990263347890696353365086866298140567049583767818566968425401730973744107412105553411711860350220090193305344963826494888681478445026116468030660001628172140341292736705286637454209915389221660237259508749800778338392832375062931570300858554343357224054241256509355597123290120534894670540343131178551429219754927465035036867046428421217660270723320716142424346167475190000541282023622310265201931190929093469800658813217462113670789162119331029678117356942464608146607710869854487386121377704944156080097320328427880804429756239775848001635487388983653693772635504914163363957846539520087616533097346308863393012705996214263012377149769258776625110912164724650573981168784937502182269628537563139478385774089949490383364240769083666594748939959941950306667809518080542122540216113604172503054233148571023471526084640273112315901149008722147260736170304997741369141567561998700318697756400383269813682540162523248462054090762810272998790153101001910508738129394194434869415617222103214261324977841448512056074701896075216891173143413797485855539266434398914593287406919346747217816990387015928710640058876143999136675676619521453679898151459423064657727177642664027539174486515370068288738844669328522125399294539683849183802127230354058819464267051573434684165032383204505253425855829481677503617762205127574354633425480267397743476073354358668599488093313447818015938198570382485509025134286577793862066890385612820628562097025746983789964969267177701466308489180983318326156192566774961674503855841970737679568618566525037851228357127968235663514129663647995676808805134857425963560415135225763317562053153331649557466291864916026333819240680998193839309451369629456681937005654004873731390554659827712035455846060586569684110226642323934904826723637506913516420112309966721665929036611482563053671540767785381562907951184525413766540151892335618029529417717897298094994544277705045427344062235735618879079949790657586342683217542418214091440612252650116403616956919904193227786649652808222856914413144212556326423419056660422341258239514243851168745797704502252642981088833127219759945413126119840492649969052917653649886460468296119445343250687313959690876597013735583658847951051550276643693616970021260021919506707291108073472790029003461047608344354147479268595367375762666880345529294943816977132578023965251518992549517854601989711637875449448779305192801436507732213292845820267194316994806907510385908607804004432527523357474843762043382776121158928383918732674578314437880826568210504446968986394469147041666484647403156704807779680327249682584819714127123913769727646155760749278243097077394970004501296041386715111436384671825067760901640775574740936880707442125959719815838573909394749233833277946812851266542684696236804817638884748540707420493389042327751945830889110520721389493048779783253655794954369941975790699019459198463864011167360839451184905748426382387553129715250894592104738600542341405565149824396753600100806803033601897820705266442720645767825474535222440742575845265306700317555255230329548368919607656967344252894760490231901563423458905788844199954874123025151041288042391676100310753187239351683116519080379493607692197368436614258016394971717627038052110173692814305997261553044059880138651835748661897804671177326908910396931641457362800761098918455394121631601809583795519399681472653147188061613872090760877997491259680380855311924730010334011418113066741407071988622213462357181643768811424572940378462134054967400299073532334660690467532517954010439051544638946304872786780039136745356263647545244217476305810195510577314966470369825601862126138299307036345618721331353848858091026371496295844022269600171310046256966513836757621392512497775395323552792779038437035029141368728397099108266582964753706689270927480960393138000297463028172789348946981494424753582081757944331882577400612671618413364635857002325710263609144633367138716356601403456628761801508727951582777763316922384947820913270375486905308650147694005591717912235072756686688332461737598666021005712203624979797386840337866618363265716559613499321972732393542389682788843323111239880665897173082676041208766157079745873579174650219022712234237218791440455840463235730994416278692783460276974884207045344423173015713440068117566115668821314347799498323546815880632201508716968556256378296629766998887669926904859314596500405960531405383361129982591029750880446386456496810922427433003949316964846837777494070204180888300203669249666213970833992778385063319363905867615319330331441741023696956950063988427379965998524491482016440129362437265929555900372329443745937179703000496178886356247519864516124864872359073841646275124826094746658921903773985698255952809608459759712721255162504720213581045026934071663412013242058857781861623465206295223468869897049240612193225848518012892971368066325207725894210372657476692668427652025111589389827380484604128122580384337304340191313121692402669964621804219243820886621417975639939625863161098961911306353575710969511782279571723800555556513047775024071756795027060965586943921902482914977211535079057132482753754054434896892184756282497473873618928317125123207889935918893604658558305726393597808773206938046701504205683441812334969637880623137086783182652305162872419705938080309382098317592882377229255953758834998992804615024396453649764338705546168618784753343228956581696545733369769155414066630510432847537899787744626226516369443018025872763918458254246855330920911628268659436641867712242692874357039915148291998036946089896007675240514474358757908327090045563715562549917699560610276354191521344343216987927341839005328230911546094299815059362004258234699161687193444119450131725334743773126813995138375915956731647925134737410639500047913106962034753917303420440574645576934237732939367153881920961228851467259244361442674361548933468219831869567287685962069279966604960938239954868497507017369458616178575325711869293901063212859445613371213146720083502209729065890017142715895288299743499723164301145019068387591632987642230225379620146812233070713817970929675529484230064958422691219040117852878968955334417326692150467542912838787950797201941381915502969360859960544137300448415066701070160794227228768563944964834754988886075585097877038385730063723995567066520643242288402941360124765072320760954186693007884813230633644950467577506258939640341816012854884613668462578983969426786446176583083032396418117017332830524393933181823554238317341057300315463273620695739412449827432724940060368852015476019200287376259179519433414401111775632253308866050256698915885386102434146634709983232579956454033040152748818483527410217045413766170141824627228234113805020480567957060196782241558936399427797863835161463691120003514580248131234365982451343791795882697890165871997431330871860611227343191609114998895246254486631573944763552649210288075149147586471149931936924451102367485163086248827265386482007429027921589518182093939315345641056853935034385216112805330613923095470434218482608133227204981759785513927076066365698322489598790246159233013286976335583052974838604665905748230511197580684373373455797531552711402572601508713599567674694107686438553719684201877539374377437227511422817237809261150545672150179542842909973983756523254918755837341488603995045116281584399629548527577250162513100935014241491205575093815222216394508083373487792986595299823771542426707404799798108766614687545430989485975629587938021682403616031902121096408776248016762443089337581806478835854776440279817465798853708170767170095054713773216185549008068206038255163891988747057209111823922366420043497265292329218184904945108047706750738145954427891261316169735625445543752876805349719213802353656096487290976353334776416519994582072134502010335449615377705635209809363357184029503893323128859467492170626494919544169493165546864808060650622623141606308228973752219297293294307520146594355616737290222866008895195621300252983158132472860547527971031786461294317292356520244609619693652496273689398528694420009025802921427443066229071741959367658292891800979705972311219265066643529483432671938121537385230502426027183903753342019855535909707355755530648069693216968599814993032887994332228132502196407308701496132505365432760338967012316694136411530345526816927547772055789132622997118126386353935241040107949264751843080685582282887254980746891381592087863158767058247493090029354346083551388324227269092533749069860912718064850342232957771694809994756131577648196998698137233394348097651878855227823200049563984880819218747760363829426847975314548140138195491376499137692867709105285292888507290766669524149547639322976351900747259861300375919109748718209681049343193506126375619162331605606627199729075508178393556663579782955498962016482386674900307342218890248791223284286343951014039437496864645033825554824284577951235072079152469765314216155653350004916274567968901334857273890234518659374769491133219492950661413644753469954193683812196444971465881115437376043409338207581437281917958198631841297244248522006240964754612250813177075028990552873402546640618749553098204692075977187983171295329563235936721152198544395941298118004015511081082608458422694224681661714265211106149019111874251989043252325256951133410157469960220913132345589270685034419233001757965929292287884921499136370039151157012774345571364498166178571526731806784299847137811049490454653870322551888265529293425670758751420585135461675679398489269314121822419310837137810445895747895454038270402350246275885617872540186133602959749503146291709665028585274331103313943899242938069720708908750939584117773353289488191742640350593043216773362106834579112610029354944410519130124781042876189114687137447519267353688248111311403821587789705074433371751408387808577033170662440871553043676629145207641456085535592385019190557159541706392574803888350393704604641926192994852836309872831147863643290666141655961093194867956932665624294075450934681239207480200453791053033154535202271991381434668882429799376419312813769344805950186072595199510869886432442185840174888083790685107730084071543671358697964703916118359714093183445398514228248651451799182519302370000649007250616314156425918738222977475252249596648273881227580114558341963432730610423429964375834484920581644477591381283362891505972325291479377930684509425041769705054311544794129366567986335481259179620984943835677967670923275193596106771497022914073033285576959190868471727028570022887655099079260767482475271241815851305433561464221027233042313286696340854827496833099072773054348958019199111969315013521182863813726073617644579258304306867072342928517256159331027335520281128900803330873618542273759481110347927011230156008778975335304239736401952719597911138455073776642388547125404086386952344795283107269188459688557937175069243930819383368293270096541167054128182546108083189323235211016736409886143710113768972829739235031556511498351236197526342645130059160628752763013639325837061729485480950412648143988660070883672454730334647661853864114257241198361187760328147363758309647266528837059443407854404891505701913444183935562859774805462106510450928791344844129525408526006104652412226064080031640654778127325422483380591306485622209278408453891285655450069138407452752152722327286975083330915108666673818653094789293078624614151657354362398273219857372412563915428270836306137004619822315589477343018016509284856768760855198576170153914256646268519612176144717657344483573462626990181875753223896676213335396378986700472028376156026224522823763082259460427029485576335457041677257448829245685983875511009997037217369301840453787275332539792691001690789714685102365679435589936074082977658612221351581231566927967842572034326071218306663261300036436757110849211857283111174869282487643356884400354690347744016626420935997911282321739386127053945264302128560785430398553838944545975035692741280313501304850569752905270549688206405898698585699603279572076126482729150947330794112377119006507191421391711086689086136057557669929469395701198071085570513398504166768180311106311454382475790487060665678802940561567572039189978385692711610761281737737055431773613150397841262037522886352255864920502083704264729217960512308198483424462251314926685276415675989131081154888648189243486145095911744336545255840461188067043034652562987631636430465374169784445219580889304631549704175518896456626935770028705551982882908548938071695866686648863458774940871297068616748102920108683410962934151047678175554808963454393288165275448761663200137567164815020989455951478638708159822055099712645739764410810906225615383547500551009747731911181944586460856632644312213214134328127484470297078674425264870803227815162119480523692528344928578709970852383584796311932741745753794861797044908721021403555765979022821468296320986152470852778823332882840695950067631904176347299889615574095945465152436124940635761952783733215238240770790325080204726334969069077520331059681681431119732845157403112404835660293626471087127904756321507606730827577806720812942632544243552095295133140239116560417308415770425101964202215466699207743389192471079502750041841925914616514627667139743851371028293817825509366433304117957942166829133979369919529767813521755867386841341777894261344882605530261756621045207545694872314046944386304168458663227014044228867208296100337051881372857005048774170352612233525667673207585268038110030720656339514698620135032329077682672722931799706424249493407231134716532796781667498899116699332478235133994465773313816839099213124389544245299048856006570432252214822577932562992403717681717302056950777021794985490449896265868993565249687444333593464804363578468679272125348420144643472205728448030246914533692257039645595930689534347225869108768580253999655442786465657885539872844479626245407777648151383272234432029578624102139447441952522039085115784599127558523246324159850274872261368904780288553664050846005112318670311811346851176979406891984480954844017967713051518676035552172289447913489990065475281768965015625065691998998708349211252631749002488475023835965458492220935673185899553623203242290934984085655934597890894354793785900628585541309766867316234644843364447568296966011092597728610490547943672641819788828302306149302478758958764551753456298416544280791616033161753371461575155571929019197026278241985431014211687453453879907429718169174401986787994384618743279681161516302515151828301740430013245408039003997119366212635618700745598374695440252900628461611903943418189363191252299949240888229942438274205987544007891357032039266340405169536569623674101329138228796591782481066526915117031266081310955079044331592235823288549953936401205937182490743700557920670485744355595152198445111991026417977603627342521568161928502524475074796080590587090859993756944059747020692715513586418780622804874098224523711220999519687538934877410982511392820168451475804259107096511916049698335447773152479011318386717467993628348263863387142801260956435593162537591639023397744269414686223483518406826959644147137370462110612336977023626307966984790283428291608768948612166186093192561431117707400290334087689280301326041521076126876181824998329024418833788048533263897569129762801967190478119867687828392576009567110787160675308362347613934023455975826811708433116956195841785537014434094701625364805080456965695877552341313146705435104739392624330966995440127259806583426899964588581887569168685285384344951409246203842647029257287489357695149181762917263756185076718747806713683449632934853560003346062691459664309310525634785156011818895373740935785882887384331560048954771023728612104607483866940251699216587744732921984627284522119087432758056275738549464837542494315760584946814434456656971363672501079198628574996763144395213965369109722087228162035447451682501991277258737367034405018115803926355017109755670060741636813866152649009477068133309666203346135645020104965870977103936400361890814817276028446125675314818166477600133564781604438979098039106062245705294980639562560398274053437291924297022357192660657044926175211393933984769662929652703381033773895354132070038303156502663809480146690080920596154968330749489495001403890777795021507327115113444069864379236903786736920931147644939904196649678089643655575610929853086935357771911962234610153745198231263998127164118176556530543696396407879647891430464871194262103502033837151008207644952518969057482670610358974790064090085457547128903298631223538748823179714394060113980770467728801471559820287604128349626890149444429140164426645411101490810424075002479455296193901330731964328681324474881472479347593370117105068767586745733281822531253069142490362489342063088639554413379777294343852592213447355078224247490278658328102839852782770015063112325132615457456862054595837354362514395872401607221054308246558531392527134954155536939185706736882544782349397918702838070930987849718974394938677845412280780950083142160158782040699473422630869435987394249827250507894455166212271196362547815630454769210583040958818242067645809162214102248054789336836180130595327683980125809527226027203302305662043354314448915729210060517588928490461536499827754092742409610714433995011912491865992341641331300826583971423612258053220029359642361681424773166638794411973346958028188285599892425751406763555040047847772557246991848471781486365938244048527566170954301226906569036372012509923182706694103083133739138930125005535835726718602476509596665261587988323983742079305730509290257603851881649460450367230258834705447337258201597334489360751697973477535501829872345453299392895419661128015841594833124081350419253759756735184210737900182725599603131733063173571619573029401453276329668568907857876433941463912996697285051551681024269431460361626744719135481156390033132637723207237437611839296734283085803325817082160675049065266917831030048771285116521989571984509260587105777305577589390135403328151749724071020732615601210025262395621663895818818887900302779209258571462985361437984995212000098682280934636849144269976647476729580074872197803873847251972474936296665188356399023303011890850178538670031188740240030573885491359568489432102489166977095872825107124528999885489300810672933767319254801151117600137384649192038015120820609622702323463271384407034446303460572989954860708914478453708118822829364791517685067009481650838533368922664389550920884410896397038655485014467326593392697221837413447298496294290952020200482260779692338160682992935616475460765600765065732630920465137306910843868650174037325053960411640445372243200650465059444533863676122316455698061515081716207596410383888583395812787149430021147153812537375018283748378230651817970118924724748762598420297305751982735500502978641146269384493529881822209001248120191306831306222282696902764977913935397017972406219270020854195291863020514072401441166005148122142164908866732688480413666229099505604799547842311598164250085807155645140719764852871431904686439135556677021371869947153862110790334390460037985624283886354720930676607769987502470798737751471054260904592973710774637907543885718974125329628419462716487793319947368513898931798521203863470853310015938055648643620521429320161608879990258392611936201681642116958732929069122624179813748218563596872666863383314850509403811713970306352360147473698690394798881798622785019863470831209856719743476129044782030355322756743688003902530063504493959351963449766822456554958675083986135689521258256749301282826340432409979457822926979227216925113216014591182327371688972515891797995071989624070828402330614204401616609613382806384172435339216300086509568772516441829995367258010256279503823358798170375060899722315360385341847252363777896688058108298676084220735024201816185003116644389683760774527521809696002266212347084981181168716019334755422469308808339907220266570686575889130881292882471396373215220053787982515629207263947839148949623134849901990982900151052533887166950632523635061017645491823899402290083787076657336886340441309888060885682184859702923338310004519756120324998825678438059001434043737064535185535836989193082614608469030486021104015371463913334604431257667604298395478199023856142855611641873696560683424481260152506467990732914074488202610930973120366636249554169338376807454048245687794463521638994566008731282923955347590785069598570210715027827628247347740664747712555949963429973630288096534218427897435825413173482802771709430933017899976964495163475183589027473197764309738480862950127651261688473473269383333195903142946829688037479342642804251551608246113252041148019856547115424358407732015320885501395190338025250148661507932153123639979708647488408169534235566746399934387059774626694850108967451450869654836096013022107053130755777683803684211598675570674793746898280403699379778249177498491565197379453815289790795435942189950724632953507176959834071846364796660084238020321228843915328803119973793342171043992867473898227693350222919115039717311556461681914496523230400825037102073923342062306642339450089230220634002128850078950886480321373987783124810551765405474576547945821820486102229381435131440935352180883807438926367356152540930454530114598074507208742040987031978613400832514074105829642983188414859982807155333111121257308697268252399756936702404105525795673084286920363044257984664376801286452185851087770723257949121247303059925194919281268573903377958744428934403339274597744862883240095598881211326530580160913757167239662543577353607754228455065102966825302863666077719310407625236040739304887303057315452272337106679906371127938051175031121888968869369654861551940742009579312056875069213218499857045935880983969867780815049217194153135819416587624122567902903858641411430029402641260369026090206645684135341578165940121556088609273424798260671677915193123132213017336171274768663252220411295112839650110740359002441728468024532239430636406750496182056957168252842860606663003208874920826589569413626419521068761183736123033490155294108878666993884825757383187491165161483273516108051184318931712024258516984898228796340336528284662763560629089839130976928522619624897658577799540221671276502641009663396125794203065556234234109604402495439645649622621659248790668801081010056169528292029825301521065111640357415530136285157740922081922429289939282045116038876276327758081012122370209911078137417009970005750059216420965513515651367587063060921466800652989696073542005210127147275226270137827863313296187681245521679630193113343875626801422983865671574372601534292226501718644237848077578522034227070902205806344199474401440484328725977754681705637084768147058351642776870595588718151001426411140130414779349101311721471820170878356010658259828806100839962570085015117577341628703721019518821558324160701989769527486458719919184535035551677289962924408159974854149797169622520618328519703188041368759121585908422483851000078233913777443517697293300220580926105111489018122319016811922631809107424849458218609880513195029283848320740400266825757272958849042147732093161475514598748391949231038952316923472385225834429018995216141309994392856567823733773370549815365046627756077153413246534977540901840518319954017915333495791465028883386727738621461090977535852112773463597139454547967103588965419933909554368311437570796376449988270911777019625412869054833063251201936684424460736851295095825633359758137225509936427658037142211458589104476409947411677303790580005619818835347908833177444575859087659516555055177459584736484640767724127693296604480266017374071026697915290079286402503325857328185308613498282454588343505842432101553142194716249266842086856690411473861587036742902068496414322252128849916233782284882107119662584021121194907616384693041298174215633683069810337191289235530523933914866354048074253025338434501832839655182661286939440528526434059781298973795088740045175282442411352872246242722617427923324531149365793792086478437542814582651165711470012299430883557415636524472438013140933659109657961475691355273116944043297386711970573269388914802701286253362724470603750689802144378394803474047660657720094111029614540340861584521008663901886984016231032836635045220419173100401304117820908141681126180433244111480593583580352343203481999303569524202993510038635914261509290020343827002027334336125907877600220065605192178210460544956712284744554221306151847545444388630228175836339150743569875615948716019320517832166618460523349523671135956049198803597048361361807314834864424849104517754603173274639816403817193377130371301395184364756461567122359334918046740770761210515656792793288313859444510352318702297193638412304894594035975316632161302240430172428848686119812880170954913312302871322665325515975057589992173451648194840257004099711548393880568415423676542336137849833525927693972596399121163157084086838719788585730513644578505269290499074016813398753449693439437781539931152066116748871256594961698693201815926423140270354894176977623151626515782134677212938249686723589802836305265759769777950494279295010758880268882724819108728271912874498637446374685613906709963997845934984101042340536275462194439657413183525053596138656578011187978234492730374240816034869726788663510267308090657209818646578930237699403479885839220392425196556522914609911070605926996916964454251691995611579269811329000977673061812096689950838383840237604695249071692355285787631649812203760171380573287926079965816941913419508527196340552935343149550610518055252141218685284235494200133106267574430754062696896147109401875528028504412118534190118591451281623753925050289701908475938950023773952743642652436155676873375111613942670721901119486680598726948711982216993877496656905714127810601281755727219395362129259582754020417909364064695784225115546375387921837293600531228274048901082588128125821508408503695146938042738490593960227141513256247212000946330720724593259601455417284290275442318327300196998107089359730617026314790201029672529848601004824098253650200851560794127125581434924458594774337794074564558292792007821580436490658917807115875664274549200580807413955442734351380574571345389927387567018103881928250522734857393079217462430997214925830296542879097409405145001958789304406220794180768388642051655991357279133387491351773018689412805733903128370511362805561275879921372939139486670689888903663487748343974820542487004684529791530317707553573862662507344743818642607601593827000388466104714378324479229709011304788452909941450171431807487362454270196015322489049636218962421042696957812066403881899191232774525600084162121563368757556761637312995540204302122838630473387333091690848240425260874179609923491084461109299550754014595177509039725203722187877979508634271330040691105263262669902522620458197162094215995756320705356469602542216691645091416175114683390010410162953360689266854641608538610070832276991837710908480040890946873762553106689949045337451028143927302159008635721963757800253005751824500585530895228582595461703494967516122599816332296882081292690467330462458017194524760301836552985736945897278142065898477157821799353670413160167077457430502663960832251424746322005661531758012450690742048438318287426343457898784544330537371704729833756863646511512951961343970649203707012256649812080026540966164004218050569304716941456184339537175270463779337017418211953435208812663271920473481882739218870329381745179223502895024957900963701290356232308707488787945022112391498536747210064085843272104246447068406591243426347825779213881602949989436207725256781089790403954529933994656804399073887916028240867090070547227623091909526541398380137629465551813350023627448136387616447986984881396968761806684367397173998284607587201925591335640859598903564998902250427973732476223751744888790240554267869025932623699026439844637811856416585925664215143964445467537276778555633832725118894474747423436401992967149905169122629875411394326071515631461406134420089721131001263109730148447134382342825224631867076108304375480435019105288041877966701770737494814319135563035778493165765720859591791936622887835403410745240635942764377028278243437356161220934631638519344098528923245071150191661735125730690127102130592324767921371817113731042375982827814109658925484202318961745448600377844469031876353654367617311743258221429781074601054853202088634370772121296599390745094526214129129439849038065473138682879805160642905381097497024496899023873586634159040822651155749065826183539132729940618341398064742318152114590341634558229992164739291374533092722761414709751645451467837184476745491819060219829867630738670618555956810901766766840924881554066470341760110238014310237034799675261695257650597220736439980826881068926667160859208786385352203087013274733499520707751249208395668399726076999607843529640290802523446383034031459641902102456090553834080039696369215048704450650985869787861276940895782751143803622669627004811545292441452820133362005864318425165476411282108960515758166652826459565084552862025162232604969300267019918773456045707512869874638486227772697576285062221639913218066705835242553158446815405528693600696891704472383833865426068875523473166371467549497595130932554325034771863703840414400782738607724077464590265710100736833301549297217807198116355423202269848353363687345403377568407372056707610694083777844000824950787829653254008431539757240062569797401402781419382598938714317657407085217787410175040570298466273179141666511044690105517255103019092976346295331270744749028405828327423231552377482377989853273128771072347040303932468154671733326819267442706480485997139603194628111535383115563892957018871868230136139464184482757017894991338130441824639269411018291573761156331752135680067323853854734697207404385912721303438965217077569567247905059189000926340006630602121437009878540967379681444794588250961039858324099303074723719148845459871987276481650622144445495437019058254555821972501611808734802516682746147337300680939072379210793461899933351031208256826809076671904233531600402279490826801634692551366276938073181185647855101133180806014816479451510699441943418808105655145521289307083785233289673925191595448851978263686541862212048418132710532441081569760417231027861361956240960344747068689813383530136265119816741145049491652051597654042310019309497091478129534435785007273865936950528262100799552273260087130172437110067620218863043120646245701827592339861410391787668260933679453876916602630811399479002482746582889830636668972030019388004486474644170967115360572973099847495983081448696855698870698552173159106615653746579816811676110774955013147131848919185972385890633543403120835631573348685303047474489108948398900207789474252883161002843481586782472170598759484656272722653451538439816204127972830438104218476605775484859195746531757893460407735753784542977460579290556557400866525800674534549681862905658941546321976651580354920292599018558962491723967531483203749747503321694523763539118371184832325073598166245716198533516751151182015986560080036808891132953645612307412823583543287179824060500118150938260561608432541762520802745491811651535403762443677343499841121467992687477836718464923864607387308743960568546662758015831706530375594878457316773942778301464503945077533518319087987649269920982416777011014231660934799305772099446181933306409092765052702440788723012598963387015058807019595477552940073646494322680444616811768790679087323486639128091751282621692548431136367747211375276348745678050797813241920889341563170715672543425462685065937843009476874904041277750675481900936326124819398779461750383260070263734503006608800822882404849157283965662121256098568683137183605862824553398044256650861079854339253255760964093961479271237717861454854018444593316194486106614083654778073288131115832071045862066075870807296023345840303725353300878671726881048379475718077063834594291139590598001967440020789828708532011158503173176274645163679428010763317232236872059982849662926355282894174537367186878448287323168515189174611552899767642565531967609706949768906741707337749974920773155597904350773539879864011960505056085073061956689804453864176000288298320467001092251360552535519583447026021712237353055728512463991608281912700655673067604710250296317311324477637907561486831160650805887336941027628106251748101648681942921358418053715377995971600755308371044242749392564596202979964046042551950785004217964018922576532905215769150368138895927996604967058216813368788054227489423763627606192325740305183836153750532229834043546172726558602509161258091135776627547104271873044905663518193372432364475564223140204477752840033606088798623505599477105976911877045683355170813054679536650109291633684845924462524813245633732278751405231484894453279784222120933049736368218092416218556903090847966334072248376489674309445621424384816803217367952922709633290679400785248246473056652398294635460329702226614884180027110031847041539105647954475745429582241738700863553330677693472804725138447703395857227550077950526540106241525898384636362952212574891320198246978182217098139571630531974978477263394651267495836845421207390144297735269405236764000253446729539671668491182267966791939739695764136827300804807302979609304334552911642452564290963809530349679671951580369180305738579626703363451326978628213803357144909956749486532386767325045349602344267050177723908189577743006597867933982257116722925629528805275986892424349295845948835318620415502371709108654414313404786415268118330384068862310368246113525263830383807461359978334368973360524975528142781088186723380774580088327943943546809260526273748720365656798464787675093006345146858631663196458518236001899785233377628248359920257113243138523662951015049529344392176176156784949740145185641270743840028849159401807673850513203190518415309880064353476853812543828920931204060576258743917331423509385816615670393594249332618200034343272682725870811878222359853777559321663092056513089976618125974395955984535958099609027148369171804626351131391139047309910241288305681838103400655474714486102428835136371850039856019981112291290780532151403417120620463125165450567638823667623067805139334709090213942770119485021027196141928424639994167775437022945440576561459458331474723519786760233040021512632077103120743948352034145843875927636003662824701075784247795378566883158317281873615358731652119521218137891251369152417140749629204528478654273514849825363545828205057818888581467655246603330158100777065605747304823073148543279062616108566561943278991532189874156993190234552421335802044161188908453268884022751785293371096757207920616299003813657780968503450642137676073672720523367984453326144909612975364297916372216198746729886375802392820023228540055454230997736043590191182138739620078870217386402541243246977175295473458264145119339778786418724960196557357230241360644284817879832499148085288287246300580522823224681558423653546944912804088677323911707245892918239414852390095073676584317933853180328961713962441390722772692582863135644945182033278872888087429509313335464756170676549745488152049075728267680751273085837390508673211015115128769211262622550242749293507327020579779159555322210386259188654923232304127590086150655325416539855362628684706606642526585179563793880580941367009486030123006132020119646839605538407094991608651972991301619907448052789684571380350346301845012912743908655595495994874033184019888439613052209201012193311076074318274782752484538807298673694659901931249839211661757715561082160449598570492547023819718725327248172201396582308728425283211328806793568665882864298193802011142923508634514797829697227200849241112346751672354246155216194410670145774577037286677279782958852654805834837991869287982683002874762830356071734546902048072112619729884978846787363557441386373351367806237998301924444452632354590339386245127054634878318387021790370183576371924612710472860091294036310603574802870481037412155381839408462444340353285658071931438560788221028549652134074729203756007007788575003097038009257871116874075792201716952345486838320847355638250674470327175088983781739543055635240444463263790925594904670356968184212422258829631697830496997742098620044575589081425447100221211640968533616972083302411604883751039312109457313265744936788102848081404775468594146160568142299209643906676455022197196554908136902806013888787983604872448350683596054070058888267768181164316674371028010635932838434530959557164881284575181012656927990848165111071092705545934950943618109471297222991383772391516442966006139999373431280503221958953187092018863378585812183371156879008232671053642211722150633231088471834028717887666873586072903102003007624961078550441392713755325986022380278138351037800830733397252150408310781420790786665046540888774515500907046416566989597423071149863812070858688500632673361160496836009640284960172142477864626947527680883061368666074183463264040442795250899148801601645767360483214230363917364107295513013620067512935140380711757605000533380083261177017309768088036644524320210722573658092295557642147900293403396646635866674135079814758490175345883940248779951113445775621723728264474055936025318869134893270482645260404930544275065110172502275875787283040881743721753230121504664986492447313397341682332559031617947195713520610190703902925806010326520192680907262933968355970244395336247909235096818213838447386258691188388662990255477112641279028587057802348155431660959532906938620383576356411422418427115761607277023390530635877113955130503793267610329125708859102185488820063057934512970470762199437672519467236518858238442667918834968545824301521589767352451568803226785079417902321767850159640206283035041523278411792151077487036535994379310708977385195883915170832645107677632964670810264486767952976564265755271817306993913603134901719742637247232690638334815327784411919407124729367344592375929331955351709448935434740222284827831978631977294353809983773590315394231060495312335394959176327995297437334541552184923215799371209799546582526504400467694726790937438148574622937410528246802253483818451037284270638860340084798267816572044608255460425700088153059452777460852213772243485263761486943168119604315324905591068020822019095719013408460630496576484912698597998409129821597248028535609268345197005684374950260532852581064284328728407025881355206557431533602957464403985449770895620013530842434689206891547009967760366971968206067650850617343684487322151306014671234393804986721375970393975766042668956302832500720414854041110887905634955496865275499630581382008524912765521429444023907541672725385208815689672085069188067450313354557171238277081157812470952327397778445849512829204390873353931998788045899706687419718376071911009182120438777687326525926071640864584467732102632228851067121010068350943189261101822781409534215622747694768910267228273837697764994227441703052454626578825417510098913037913699330000109900865672488670475138192891613173943358737211335419871871206733333371739169472278880861364342171445061594409738369149077315743812834346490150031149165065085079663171583085479093706865296528412178348381943934135456947276845921792505876024089308966387558240803480068584777096654199865731361459276123870173840379730511044568500968062864704955642038366025194631470026672015266027363692090042889738616087967741854594367903449824186402787481087775593110865082270484219467219892364802662676171529492841183111496604309166855459707042051524173850009315647804742304429690976119010723416940264731050865372144327444081900226670123059176658196582424572325499282250961274196712629036089576459338804038047548194408219990953160118804427698582057626489957048587741658103683523703572338888382494034128546623542599243016597759845233801098388991125183041561241402653854009175536451391912883012913950835775692682113193505548587231984657176793915726218524051769034995161255828000626039244643708037043180695776344755209288533759933432593276674301793192276882409909331980797387297276665188358074790881483629225213069611417556170482317256199996649185775311926022993273288495958837588583691073639741773022419616540856738067680778249172410751870200888559427579839430732761532536032453306466796712624613311777576839402936399493539446151773579653259348484429851449039242036845315438392457790137834238392321330240880907242654211338284356594523477934168805286509160637540928906897388685291374080842234105552462398775331347490517997790170637865802238621906448995621106437068581558413049504577910779624134605045613245014163183467309651184164551798759035644143365410127189919626376002374011636862805169314021899284361447031694888525160773608982766682866016893941708851953954278941543441096701986630359436440722373037667257948102907545947382923514730965952590825332792024120376870722189590127042044860279345762388184471202937452465470889622284229585280733272556878566071159638338765937938494103056425895311057604968795395256781178867858095210767836617102219739994910347664062542799154155258598299916090195855624344233801359991131072031231650255418114678033060195906591313403618291314144547937314036296236651334760798262519493118446305511881855433997982941106708296241244500408074758107525878785678046332215143611233106784986320440100486708635148724370464585480581532241420419508632223550644169862230047014666194977891005834773428921430520570735802579000246395376728971303686164800504540263875027125671079770927828932753362998400519125666485049660796088287313965980993815562796896267025911513776613391842500965023837723799026350350336208703569224832724681730583908179307120588391079500783110238319663432577866363968045020740266340286415645021323116866075328628186341596630078746588187827183618663706606539153434572898127583159084004310831227578193154361562880845004227333745832820274337343433066754933493446716958326255970549150342959901205561323740027275259167569876696214258916065619149130983132592973667295327143072175717575620149660739459691976368768105840663469773478717718360697938001868970792354992331256050441719127592531365094843364528695732623154510568376215298079535739758074371211562881359228120532039905272001312136325469922519618791517651755176285329186269288160498570657974988848633451446380123724612740719829701471051656576051958976818972555926176574837491337775963144172142594003388361398914871066454590495036881492637828317665860531963138245187106122025380494954472436546231899516696219837602168650878950475120102099319364836654849358143295668405897058973207131366965151591899642852073955491162067594701595067811993777789384658537338079763341663913968821898760915685439754189800183095619809570129471002227938715689381417334728751828082307596282047397905978414160216779265689698596808316230479866910735831444559938645441690625797490212190009454495105249943178164374291666699409337384765129571518828443193682075691292485200291171662631201877198528939981561285265162129329233373320426799563356227493018632093336658171648254062404232781432136782528341927825456234302231994676867845188298839858681431147524043071956232992311736325640612239255075342030189085166915655615965153549065046945327041444655136348023662877329577122537043026687238738530464480604830352197935924082255816533141538207169005793814609097422808262082423077959371365839761669065056474630368610017761411636022387656505749841032121447144654242447795071175701726632024572095474842045613541096969812009566804475567243284810540054095588367597699129798994392621541640861452714376460987708487513420572405055421808372781365627277334066381063829725116227015164327698927632074787010846256615698522376167712631703123222757058319110472254267048269231663168166834235101848528975341054981958050432657787492065158643104333614302586624237945652562843636795410155880699734692079521664020252656132176968171022983919290333859317065015855232288588060825420099713710324471600891571947558173535816137823756090505298615311551071897012011394036838824244696539972174206370834238308285377682302029489245537434287970050395452515595949417121150355700778984855768028021746216586801701571089955605035657176235141377760963505244025523446074639851316242915136596180677195264953315903649186085022045480551643776032234926901827577459905657860641009581558433966185426435383422409834622565344610143633836601953863244424175300815328116512638233261525170416315582756254842453818958982826723295334194720379700173358045569098310150697118832784876367191423341868748666094547391981270015294799035088127350738209994414061785610951148196589415192683073497096833212485934579392444996417984767485822195119372861028253106349372828205322360129906557643781157915714358761339339141097383682901139153507809962190891903985562822670793035119218087408336635030571998843733793772746992476986577406836026680847557777102332290022500712460703448523634369296771180684224390757613330784900741878277483358722726548729366796153201602324952024136904350664238840500552705115400183685000302979430284095216548916965748101216756666463025369483620742684412246955696509220550932639687441680513950885926610259589173816091753311629365917406364714059323501121883534967143892555873055333501664187843742705616652873789156899139904158489018355330326268994911657223745535283343653010871553081962838522229440085516143791053231873280245604924947827944739358774353918763802373157767269895875415875366438451573624331396180882123332790860240225397247594898690453087707919462699138907055076435071720158118552169752145810031811554689674552922753409954062935862614172056343229434710278775612140544504590344583997656451274806385008099954177614974538457524308925987809339730972902897421768486340913827762495039949172240188362105900743216754638609007395689939397775661689424751482785495118659861182066131801551638688629813425934071528386957604435787476279544206511559809949458835807431066396908453049192102656849964434803767888454528754614740759987067322305605385253014640134034046198206677795999126057491015131412936811962081756148701770490805502169414512359751751671890503158792427785837611042516212391707035052530858404988146741278295965675735437177592980878593871415283332775521258649196285978411789649797846067888334635727709436131289612906095002022185723416096004706092188137415031356256290503875867897425016245117269453312941775239783325675292051654283837657770735721058854844131453629488638921243947055503639989971019403033508566481045202254689124032422063051668245926630438168634951412255155965571170492156805876897304763647615191187165461140886888581819123674131406680943511219656248058392806845641326792807157437868329608797637950825139844950958535004556888900092754631324286686263034174692191020767874419072705483205768606498327494909009781099749859030617642250948514491809970321894024722594681008584404189039168236064634496156871101624456510151041649219074322202580287522938139463881194352016454165933101314222251371392477815172111629435115593733776713737309035670699782769979846813067049954390385682063274987258008154814165357689877550734624533308076334818384779262893536864650466806568845289892011780414473681805578979348103214822846262206501233496314322857553363690140489189020635214715772674295449089877547461332575016142547527430712807977213023705532802539122963921422916999532683934123664551987237432996857177285993431552243938389854726192282693929622045477443970819453973975129950738289651028645708645879394379189502488401877430401508855565473854776555591523727328149921429554515997445945686863813005684529312299606861964665608307734387397045483838551108972270247586507540210147081806962871156561707393254383437329616447076830896478332453375266716280855355004209488188320973794314491543264263940363299266459669113931051730519164037946970685002299172556142984957866606052489660628495814411729304945762253132567716057745439502878269780098926542886002155891437686488100437112964863270231242312841906364602203821186501705475236323735093140110986817965355390937723715353825089953141380713647068015805638471797876246960501892882005160341765669325283575969527522182823773525823010237995629233208044085507855100710489766710136019037349363619438980823908558487648079068160943545733722863836802052356562849462472149986291933941851932065675569509320577508718454412080564198230963570895455627392148019479894593480598122216771818582553093080643819656532067226707165521081773315120495787804111770251805966216959656550114597967775245194618744329277650704549868235251249357304465762331250457864351206039128381694613978101566595163272171013233401311696722486119568797438808936320226262305191533986907639237052815741700392446963050956058125396915972110437573842130815248144146205467098144959439247715932788053996286502473655002476360532988272852706929856893360958090465044073159085803808326637257041595424256946384947661304396112082856781958862136938492027070138135239582462520724419045939636799648056739041059372609307178066345341408040560121144600944812816679452152448335246313271260905388489915903087499730517236402065567237543695163764705389875676005363835648764332252837828319392723773243288614432271080114969232734520008234399795864405208291860102940000488118616500257480447651094644683072067434285438454612268421330702616590893471765372664327211166887000675959872285309018223780018808189652610979788865715092096497730343371086340169277371875957682663002457556735150149700852765275321627756634373974137615286232986674547145684167659381215168510350271915759103265671325347205209891878982584639457911340986748094732798277680117387853559471860372360822080710561823137978440870743849245502366969542954112071691074707848883132015844012164851030123775042783317435541925166105351953659854823814762522272028621646823208942980876360405356722806428651192959707784127610888075095858115165676747654104062881443508634321848375436843819699147768873818208998949359335953882713570630479384860199246386328962112258103829343651154403462598236063898050439167448504480956078053867551855229653026569864427837462439106150601978142076357775585118448198190173205991202315165336922508523589030268522161345896003362178391872314274850702238384629649919696487739440640953679183755215100112945480760927004846720167599671777528109516001096230843413249704898732777692128676075135918540594741400301378030613275191705711472273695658326456861520524939944299717335270235372961989095112251091388289437368596484247997852616029368935006107737076081843103914011873706251678772402878241326845338405845240247971987597661186897668852307444664850440770111469468505679042337889456778374571753193582724400701796947541880161413267334066918396366301181985559914019577744572662655737509680491368320849025761441358594394236876091076772334715270321270730146410905078123382760923413808460190852880056908570510840324891282697104629052277016637876643611028609178788165329240501202437961088515601910678589082544859450716597189411330209955442555384050198674005329690822741782152163942071842000853532361745504989171067499698064187786062374158124718020853678296372249676044157147520057916373312724733082216123964732626151393128983045092833811312398641473457176987363622412792394557054248452881490659040434441580287528350714336312041467936250068452567669497177236929512816327305614831625141804715939385363981783549635852374839147252023684692921821373443711372079284991624523878807879540254166301032948403530130540103946703529018245065509801262345177683954976233655931976587248007464295682179500105732761638585223384598910766213493169556128796516701695052437849703712834076331829337135848661820827709856215427220707988265288262819074819984385840590089128183231578933194973855874421512715840652636505067805175713490307014193977014529001861824240775145745608727791005301916776910508008164982550124977804355658054918332667184154931290726592403084436279762196198829473644158108826471542339847226500768102486408749147944978908038627705727316973529394038955709807886586409498552465515220054370713885127359466067958650863545309208628437817187300141704254054183295466532827128421256955227138633181517217998331052485823939829024276553547194644415054194179725081691810533131642182785711740786812828119214946749376428413021663918795607530105105510045251835042133117647646865171481432716859261860214678772410157384233056389493317724004219171811147206068316418036960875467301979398169533133146780888126473141335588845015163311453534584909320001065455516081503911534352610444755375266802107722886567499348470346211720754000570541129531922717760587260759010463525655985942234753253230861602987828019439001176351680298745300359381882393044594454703614805579466395977801612593732164107340397180247321294712335034332350705397751579868818808986749017974665905849756552898220739869775524809875969036873663561454449445159368511653721461560018055109759149511863916617340058471653889855332757833017067002302463445089744708464214727238229681951341851223222216346401709124958510790387401020794626420128454251880227420920037213434132649822902300126247366776287586153531742095228900658687206657597338516873309773511093359190347980630025475219269170434560792254310496980873340544404471772293354091553179992578744459342197570745485028736809654621559842723220712569018044137259550812544656882984897760038932596883566690048936981260054727281467420668033821672399311053023073504353064880642800027472891598886043878210273511501427421756262330398809673603760776246207250301306758267831694597566849185792429061022197032035785446191029824721730306438788755305811309242945195552042531498119257041556718908935005391402156853131483555736777514586591123472542572170493568819862664933405851265917050272777145574638620987016912545313594085250899960611024720335912896472049970549365387504013281316160283017064841336485041857114693253753357340383162597245251259039187673351899753874887655403480219187232737893198152289991064182190102059901142465055382880332221070672210137080851412108358705038135229745735380980157404188501660678066289813523503593811883833489786802600655200164193676870683100190597393081744800640708441709250532073702858541405817465176352759791891967972676658178668289352207610703406937089488493945885625272737052648421956257603216463817245288794613209640572276562508347429689060797276863030290282433301829993577998962227387861765304406035149123075416395732766824773883256681140724857476945897818587859877292119775601656879964276531297662736553196623846026432294277891412967421642337718661880197562351257195444436126611476343354722041274977691520547007184409607788033980620146015584926974915299874793173266984091994635951186948275537040448381000371788974356713760270635575164547478211343419991134942466817488382621075637460843029072829680687667515553909124209548958196112086674613032213415929226534664212063077684503865281384487784884632370100200470944643516565842320477147421584801569647413823371005184396331888977940321791109567063848688088448618646865272127244225498020903351471228252117724129532627691544204500086595796775535835630232282792552607504696926979693712078358251828651995935166642470351447740958614748996796118234891735223185505359073592995169534738070672897776529090410472524705043885949484380744531086087017257129656815085533277928067856381885606680652237944951601622701010417349182561937338747556400334975321774943083727854924538652454129090773465031231356208131779152964557040730562819580675319005455178901388386385651787082444551559621759113215838211211769480777126449594845845232538427653435056603984751162273636294970985685487389869545528631027332733081446175941804858739839402663796881565476486817784811654336296259922233075725554765524856405322783634593803399237817245131234535222540337632616470371727061204805690448836266122719727488130290874093685757316826939050960724848136861243410512777474928989762427091016326921796532285694583397784200778246621102791160355661147575447503154483936990548993257935345254392129365821725379505535497535787268910633468313119417558091017629528210313108708465754264234174726399260596258393375442409848051600099069973739850473551397302606088504883609651628739286366481882272757862719526212307603210577712106862076395855297377600139458888846968563164223147722677909202662365802478501130592621182606745872997008895292352106163929110904291621139854859913919234651344250636383065917952293973505584559330544503162363588029082489953289120204942753470998166351598699788025674869308602578265070117090536301541704877544450395171782088123684960665113111642668954079525442669185750671576890953158568283140477554379948478976021300789743537807098792136244349155074134701241247656185659434431830398776800027129431329625924803829075692331854476119560555586746185706418467286447575603652598226035825899525405855759205526671243149593235247435713927186684220593254925655672225436045926563566212340867060814163956441397729514756934608653806615392436831707430152663774030961508865499333511947726654821560701188625785410792168621101893732877430638518834463033521930422211718015492167575849297767071556161582483234027346930050950114444956967864296518855121872690714796706827399400838087480489219547308017889343889505238338110251911664608943747912927023145434180437656513081040928708528130311733855579040986714785357891568041399653237649410941611507684772760278219357582557620645263847011536871227745002852791077382205855028540189659464247398710174767041413662891031385964992680309548510811930278564415178120775700316604069513265395851898569671459572290342175119831285967900251682498999590044892605135488870660606041541099111417247447122945861874573582247020932777028637191757044960006340902509519236533425328358627618762541574902275351719751499867901337854061317154837707222353173659123668142621650538181500942534730637389826255865030489951907803035826747150380721956443000201563932508092404414905897567618849124049046983371349272256381542632808403717131218487973453734368303242435542068068757897166691199584574530263592296947697128806862824728219153909690820801761673276711970145966132880599608943518518161988446179125454865798168099461908228489405451225566999308294775359147280270486090015557276135422820812781937150289771523487343097183213913484174582226034824147475123105927277636885391566891115573153356249651641694217422740305453660439376979286722908537216412967460506740856620799164464862607114865068678619960891594340462410764698041603438144123000529331486841924180904085986098268559533156556504226468869254214334969273911128829539756734974842047902930478991744828166063102107694531211566040200963442387463656824769958743621685777788877018558252672812898985043671889402100188222351824386357087707882710033214401366079153765556847385417809086538118533814871839123894115843526750358734024492371058682080277279198088916740459262628561408035084960806653879208960921287614943873301014079597513810687331436493500484518310600389335346117505593214858501751353527226923381018918004146215499715285480829873626731446708971402400051533526499284689774681642394099531947242205151936023167307497982206420117323687348669573182935814894387221778151541076244910735569527747377491615266373336849930983196580858125019771183692345590997480765312528405248870466832014054151689148089307930656551447074944162281355962460548603590261225044733387928969565592581322419654737674820196855565489501279851165748768387191892298265890839305505825331363648349167449955112274413204689798699835417285140944835078034330931245156708326945826015727565883682261378958560117316641795787445648917963968967651250548198447347241407103719501522501016176531932534942114393188283511919409369320833189953626799125965208155131173260833627288017264987158518950669415263025863425328969524660101841052933815989457123098252735249672529172842017771696626953772339754790225745586143945741723175214146660365585822225927604892002616246467244180525550525521498326235356725981447387122736432528122808086946868265157410478955196785663166311547331489508852025844154745074439226518256771625308480628684657520068831696681650270175006745728382191057619389264547180511402992159578680951026691291049777367590177338624604706607797223901268612124333381286934878654394648948405373988178474321218547286562960855854164995999696455565945961174924718249522785803440027307550846895577658628919550370539696622844144631017211567362770491432494786036155096738782952516577313635729595496992844886880174040774634924864258051833544798848664694886940274427554794882556781367836683017566201439145597286461118198715215350340691309632758098644833690970817040788510518566985560514307912247277767272053026559826767314858504792850900509276663520810199229638939044132385353426258034506221384563114399327359068323591491353668951286314455933434903154399680244517676086009748325266299841554116072154425697160670844321608884402040884634567737851349247844477828662837244995639561516795001780876576496982342470709478306036641863002450448984757278754598091169150406235266034534839500024883543913282370495872425269340237996922499179146840411166768752541305157662984871411261654235534127025728775003504334060237502147440696488705770370107738031073735220433557208745950612727060124160718665478196541923428440514240251719635223825982009137626142080306905760637123558196302938501506207868422537565185194103878001664269910166295608748909323677656449416882826588357481269698023353667163525895676157653692503337977603485332496699522633321407486562461130057075910645457032166808783861195731328492643018351635858210115440939718072372773193183131682765876354425090453304940541587230130634274678030263350434749119692340709620043477886363085490872053031604905419247513062883799959705739588839439266511006170562991007636108883804683401279962618401745997136274029779827450896223860623584269955257859473403340453633017909722270198651515362160071868559832044352449648826841456735166106562118521006193691741489454190293091937272515398008279425839957932427760853605884849494493277769802310346802003306776996472701243754936583277569525190169688775812782787794060451422211895553118695238546870506487552268063720831640120215052297180106906605186537428038864920140987860703357608863967244947636573793240157995584673529900813369596257663562219862337268246923119390084904752155771396649366509370765326233712922077445899789205727391712230917269698734744383304407210753014089187269623728608113412030833122031804828360832924729252848866901048003011755978176946480753766602800461616304222654155541453452250355681789833165191448616754366925609311579750164769023696129084866777056677701487791651168554621629439849152628522400137749581367485389969141916579095922961282014061915939414314117798626289895722229762028264158607298387555946995024930217672651248960371418220003139087207049104420067535318110388133168414132468396520305347437061645796614394108303132074692700706603444070993983497075650228721472856890897954846310310956378781336224664847507373897470595177844677236760372351593918537337262575095030537920973177341291245602080940145835919749322130746168192478155309516789957460853041696897479370802281029779983831479025869452579600924010452949329201148957779522879468171633471439095802634733966992220946710706524829175529271247956727604276294434295637103488365284058995590116183349800225370875406004132960533323024701286143136927375835734231532491758333478560398980100687585198153925928439014199430610336712510837044255857809382152397336442782721436736441774694718301076109502860727666379582959860655252478681684037809509156877427697923592540108856932707642795499414206548216470035586992834083844162563192841201116575401381980310015585303206057253835193987517451539248953659099861739891458572261743456750097604776525696874459022122313306609308967457044431208297504781228264315805205814505288959060428618372925796429459296162319378484605030041148605732099380551435439874646931619371161874373881074848659361071789682733114943393373299875352590494186513925727247720126811359754384048683690032493642722746654200688580596582047408876393060232074694799634633716986800136780485653150918673425328213230876355648296485484961446799613638074405479304807790893674388969028539458552294057424931372816356403879868845631259981896811619688254571587122982850786730837658560210208125800572566060767007043324364344217421464000952592654457212431082084887828718226112699742437126358260190994932779225713746784100658090395750754714450337393036314627441416784452033138472592769775455048191292994582480364333710961002038221709060945350011404046828370540279265042540749235493136018146265463861366258909492342479678533577449237031845105555025489046363077991741272875078964335250000769185607080991295920057239401283302579114228032078664279174652660771295928078162223499307880648355908618133978574547509723800976860864176003379558395857294834800760409028724196381278190063924843704287580997129419176871991410575870384997614174495407873013246244390634997008534382259702747619100144666662349867408028931904363763555331443726169591150833625088120801633838565952379050914513836508638470967119705561208312783558759600571410845036139113743655629544741807801784751873879590976166410434145501253195748974020489868992335835529397691012501377633262673246065106782687938350921978695641092214321478331952743727835288329997687165292809220589167202701712008606072939592061402463426229784554303016655683231489573592694375796133133086380242480733691850445582922753593744682230304936359832224929591521968194487319369962750285954495113390636787901590945092455779897127032064996525716708773499518209691221154535687407051404237520321256644284737509490330682740066705655712993904652507203988822074096070385512353292471898715133169291915385116347654998025138244589609882618170241979680331933639886694433828782299976108647346085211334309086397694658680162385157068161409710527205933550903526020298280180128102243243208348649132893179637444315465223130121799854059347818999745647107863095306900335037687193477214259409588803843140439953019604229932421017225337801854023337209929932836423768394700917668441846615787822039530440486203191721906585258402042993001652505129492933185843961904419018077922095894722159109056000235813716814504338289828401930322043835769109147459626652167295358308706344667802491026798767032175804677247356508501040313014231114002085123905565245091489751206642417679190142757309516648341300695872277366137520678608048690358519651288588828861560246374741772390750848123736568341362517769580803740413081886486425627641321658445022586097229288367222995262342642252011375074395607844790533365567394516088194103699808941952169555081021713031403029433163981502935422005683243020718459773132210156436505725556926641386503343781161579000549347449169917779855152238998142893353467891355224921926949629824846454214427185231307684202351884873969233295866081156344137147134530355916830534781345965928505550867989139534848182393105212786270910108273232173865149614630031554616918544848127891271256236746424180735730238759624822380523447316955544571446668114938281947406968731857489506230251361610063967150238982156392285037938369105642909483054390879483352229213314516976745662896872746045868748707562767654264993242111017409231796850107329473420467584190914082014989877452772282314095415254078446521292362157906781049553505623558811900201012239821710358151230808368760086083640961671483063128642392009840547776216661070218584738008431286933709293861691987377949865912147452807896660528735413270849723033257594769932980516721972549285257747677225676843387446838328259848677591812026942735603872051184401871295655325315348510534167602054091240644913725116384294297590738182726515933452127234580723001988657190225430921099984580832028753532679552210827863199132729333115131657802668857395989154808766436785660745484244959001552476893398758886719235445441979747801629431560179132279094801964189458617821019439935233245704354810984089089901846014767493110594025789685303075532212052641386115015133490895631717077462410111734832510244863441050066297879018186860971429471149834413888191417536264313954546940854392966154087126507293611517374106018220054877594446835751054691182216392104823987538278594515260027970775193118358228797852194718729196491585785234692071030625888016299960904642821713641227682489538771072406210030958508788359553802104114787379686445999710659878386006381184570101675782288744234603595198868480175232290882073638036173591549675184147886237477785829747603490218781632338826640792316148938984199735030149757137106872380673477054423121821918615275511778032671662572693863790716355768919593336227736011748358802859999706485291831710530593202198147498213970119254847870104330994816722271833762324176597978892230748709253677535008225410195126196647932261617100236108889165937832205622091547633045814006852379158910179704786523333983699172609430840185856088940252672314844011592539564133289684399896976141063035075172960071946733442767557765815647806017216525670265012044557481673966085856992961584092053345066392156200425116258324058147390722912772799160388411105965303369540670051827470812364687872227205622754604795310085385122651238670868421497880590223578316271743716686917114723732708555538703860723687885294154652434072423104371028854145178916686256805149537817699447340340686314304790440123989522173862059729987943180677781355935223326874804675302640468490207817364274729938564983288493196144916367606857375661751701966138065949773064421026188138457285313951848062392930489545444580650379547092942379245461790923131149217846078087802632366595823535612561111887683610223592159857145025541402967862983325874599663172364055275980799082301665703658293748626309759588930552024759614664096366029925579801242490238330398576295603716590219707684059687581605497785204201867966548228472510349124203329362626010738616283775269067180294560445827284671810340836983692706486073832780455902016387280342983945880154502941703426768773880091837941940162891309614475206203426238277270617763546322040091692532948461496959359853853428351153907931709126040447930410148419970762049282984163551855463335886338369781964037699890876586145802283315593243120298595418615578597911262497179778970250956991664302051368718933715005716922226615347823207328100267111173487861012193361027850479184238855221491391557020099923724757780677524222536863415734837608269036750178815835621046437360884051242752491383431026409396392533899562070585762173180964602530974158292766177165351992404360139910371108217212483292615055250621614664037927767235034293033410171298273973115207462334101665624298778834682486582300263190589590264219718210295198768716542337835915329820540557645837380660704135372272060719442570739750839060578723118853249059747486890960888543754102950876036019033505023969402673607110379325663504572645075672091472045065912570077533411110444529244726011861064243694410117684241160888854623051254993249634173693085399940568091769654402537416058578345382100020759581959737222649025023367189913205578399823804192142515340408735150508078851584326308278115146793665562846134054273206527997145128800745266055680528311037369407158620183163029289685014235768925339346678368537184073637441752476950668220537034854866790955272611117905853159274872134296500874534559546311297523824183839680045695872278707456098897331948242634579408332544093168495466761179730141570129747221055258938841052087147279438200683273222233222894254580118245333611792576689966873186068372310705020829549753176438295962267301684728511067032015023133711808927489961235602888239208914074720915143588638060255719145890769411340963207416456811601986889118235804763601978339891680661677371596123101354441972151665494156378162547508792602148611640874200653524662743500064436959516000116207553114326373644166484294993447373168562360176330181526612899263490291298746296734707841719432328954111813284213613341617338691330756656983943564484618981861942005664121847006625749405038476000222593444453036871750176401563627929484471428634348719035433208892778222265731518481511064472817611667324870280383846249295669615302538086168270334922208571178202629776753804455710695309066739273573465413719750160823272664743876416583474081743433405695343241936709184360172791369130388759380264232065820837640946216212207195439428702859702993563247590260440455648877324908951026686691078938692547492470021373365829091870380239453020240689334882481168521713815294469087239902052029274949295193287708740572213209488542032356748763965611030148921507221545379037424283933407094862335948919035148929067828404357909252132745297635428067837833002911794384405446875204221557775691469903690582924463758416007868641859393992308326130285872131940681451044620882921870864183841495431470923877324285206654696043535249800008319460138300120766379222654327719250301027315729380538255429061142216516457924861423347486615357374152629838643354598897373122961779465713715759765374688862401437460811679352918301454945296096824046109466733372738869594854796133046451828738027569037667207395298967628654393600708341568955449392592089540778799455163456815181994719998753792397155725531464252595571630762218943500933793508272376563051017301796068958456156463949150999458338423069894301547802775845777899288700206868855400506738892238865854578451185361408575081953659376041733312984053065105093184121448615059290221287243862164552236859468726181505734382694322989963106599522057339764419158289343901459987428535324879304961063210760303599189490138050053063269914834964897420978146662705579254446277885690200639400668613323787007833135590035633310305137365508611361158755937686353582871290931212138586651682048815855383950167902687905453163515237144023559919559347586499492000865962729873788247849030202533774212866688503737573720044249798196221722324954971199932696808033360219377045682010244657353692922406054500155203904823858433300822556057408786128686707929783128090026241952981522787971481192353946254016559909188939418186727111573323414627813919526989485653966222752692847073725549827882013740388637942343005738376794573888688121633149665610751273260582716500443171605950520778827494335549179971003549383868600810385664615463499193478932727062607330070666194003639765265406583440609863616586122525293926599313416873812451434117426468659836926953057934342865723766159905144320425861846087844980565052076838695981328112379028001700518112447571095793695269229605108866393587637858693842143052572759300216972694209676727120308203719463262171604206365085385926793996241643504288588376288550566132736640191016545050347460227488215002694782808617422108269387205256322581892234247282553264769699731065674056097580943169112786819491450084347855338481904773768430803278894460638233539889155815155180121302752979393815883328466949276816002706965400150961223203312077654043869049237704322483163744951838598220744510441758243512754208213109679934154760583361155818216304459650310880515552438025073028814614307941220789313960202867429396555150564838732935222305034252893424193142756108096474421715493674436214893437736937813320293396744142439615142280147795416987312666380396075293815358241547706727180960583737704873346269559208750999308260694725392244202784430226264981708982091605486953912845585434310102384601342417624715362840131461054108975841836970256993002203568114605403403881613218097141452153785756123304312711287255492775863662232049490671150380455393153550442070749571697205555354781052593336474927784667768392811081780549855057634367551768844095933608669196813046496631202371681228501494397108828809744263811399731911779643150191245789391176229222469306427519592322659690759233245415222579828268385174515673096062603598552391754684268749554558864022659924271789228241647599843796483554037559753044499020709235186742817143808277410862947034621452400778874888186774362278082151749899743099534399094397687950760159233758600993877085656204532206001433568726335914706593095805132383850626143523085308687787672429833979525220185796635432957241550556461738660122865138107916940189117506695186880800193523336922215688925612087033865250277392659704346358360170368585645811444532781021447704273811140567908633547365025838430322779589341336683480189715765637212212886786769252382340281746010449471434377559440415942235003868581996184779268714952071108769532349442941902471778893434543621026524543340050831371842094425338705288749300068919452896603973482158524160224860465017024389897370360631667027647761432776934468219565889346311523345720318664588336704862554072537107492183491678297522806197892683313144180346836032055222726857619149571358044174820319569231767228728798137077624837172658793396599483823735066184102357248449547028491981258236788724054991976020425464108592000276222268057330764665605848220298911338819935680377138089739603829462983684737556280541058802213263003584188094935549890203052094964423072102711155086039446609331329518154151677950314969196867457252723988525182910726109025478405748561964470750769987070372314642007617250794881910600481207373017584932541340353898784052867642916746267770291578574615528327285271907839389500148177450432464868619443597651430740610844670135241028077636546900748840478700144937511163213841922595757806680519215910138718871605766185166145177138617522642834209527938492427700013351780288155425329415790400839239107168518238662044293288250992057843120355853736746325473417786906459569978049989354613501239106434079588579264973405506361554845567315246996756251131336551707486624638390837297112434868271965842043826908219465867697573417700261326852996860294282891438806727820103154949146909044371941201621652475484092215029740318505681692786208187443235586286355899689645445904685990367493944304208514735410128903797839223297944958496753988546395636809937302569788251786594768878350877245756549475607890688235834775064049052109035522319971023250498080365977765102033688954463479347735858347651490213200592204543721950744984934517644553621061210320336450043068009103279833703267898806852270799400325211698029115018196115862366270952071423913098111127604956686054149563034290499800756236397143175838810707138971204473945978312913589751621216600603310003374741286936023888146054947575647837434362811431732929852849827776020534610265019632764127159980868244788734498185586232952247349263674799891975838737847804765203799592092636992104249115499026914509158688054198599183539977898054883564265237130790829064175691302892223260094381072208863340149944186093175738638312157239949017404282470600584905953018519106245460304903098340501842236620832967568157120197706287765031200487656828946281725824015653827316793485296168672230328685740803823136158851775899696996319982120842549126319311714306349086277685651116416938487784969479595772894167872471961076535177324265325906055623043722854970764206136259201363293606810294473574385121291668349639980000408220169323437432208572610860936283166657922343973023798456702941619935592716908919247727271780295697895156845078548829197723195170346658413275745091827888347261865474885482724001157721745493562402145882975135414754263483384851138017306973261463965695948734684743375375382722362873693090592491760838783640039953173101768740160807719115211159309810223789521557055333223134477342598160093714989627871558086356025547488273465920736797395509236660450639889749748551416848613546527055148105855487087375265358269166100296355098995975978210145686954285341652335344728861901950517786609975374421004438691493309290142542981675895440891801478374332549836915648453589938992789548725613937163482921354712248313665956861405956730876549376494401999529148115706576490182816842783593831188822239477820931952918215020543843883610072122574548832591262189257195281395291036141541313966258421846547929662405099373668804879742647872737849482777453013392294651482582291959318865262599751483352212511193840744932104676919961215821827445861386709138712445591161102801154321858314863026645443092143279840326724819190431046966106019390387412052119469091894596818873054055482585592618873258152996494196415148559536266690181879436135828447796755021233493358771293167860410265084875685749733845017257930950176083325185778104500087622458477619540646909372596334858263032636341280289513671232425171925496034081289494657846746432622443815198888140229928907146472525402862162659819325131561104159891389233203274591650374405328260886367739743655175527328094304642298066660314121297981579733865310198327560200985794258057598151677219518666976810014866034706798660659634212949008985846137256925940601056352907893960958152883119336324462595363613260298686394452807733829384866459963249677930789611812961438478437092549481820121007920476240924810698678560883456694544470879768985915027730293401902197942115764667563771643563480559268492547268600803537629510581018292451541993280645089071054600695298457559529882910303569677097735526209823268058187500433223750533530820879141128950496700481548550567843691605886370977334916755326817786422648383560591230566989924256165866711526805629398058524342106509745040602054268941437769749565418317768597803921782620103979965985312931892182575494695284542139440721506714779660700844593903782882539210020403796318607774862219025887824811465268288031904091984456958845289047859315218988884431167518980767069233537790718884536154296456959288685185912062642718485601479700399443438717053931687666723007454033708613400168398723761775247661087564576267612125681226007950909644542944412716517001603407020661232873736724922583103376490838084045804876720436080104319493412058735349850782919475094390434469436677618473163669528622132743575688531536028362741037080180754165696018401636734482452489822695004964975244638260377575404698466625721322254100193077229980132425787888587309966835985289015470014465359553200110339003035128263724303723549641388596675375518532146935444572290366421844489119213391512144235731595501809583889671284183274290002840444414062436171908004497325389299842123973746405917343444419883278865742359551988688826893034767646492019357412515937612618439858806854418262734005334543060063056081165977042629198389068595232178553659702578928224749195571872217739874300564417639619002329883391195460492384259656000696624523813100265808870218118310653535203455728899068847389509550542239018756413332501797747998644904069284929873793756679071646220283927778125962964146738953394967968708309756859400720667771660807685343218653484596765655965918802540706192518077384857646195980283027713704303590198765592941573440430043597426045587626356642209588203937954246854525866701622055393878451499359178657190645898158903505579985985740583707780492942928943815283713666101955553995835099695153634511056054255057209764403223458998253354279247780155700697763989377129570969142430249809640480882118693625403974611742141186093522620332518126363852902681113736754023956078754284341323898663403278611940415242554577357628416940503048107787399495466306062282435307880875287846345834368107526209599139285545276307166875024496098850553704130160510770129554852924835593844204123077966095193918812608046610487248750103230003444986964682061228964570922456299540532774108905909134237203995067369007574569400235078064598073719951040799990394165554935549125525178426343592936460764903074644716674366411365197265765203996910047162984188396969703930931802929533232658664047904644765089073279330075319837895411253989950949076261041742262694162174104611970687152460335919877523830673079836126688466867199908572253017986280601428430943883277803371955521739283302832071915028884318517380601808684717618113189674014690168672695949445644735662712509362526085782276222662826834292047462561812390315298925928031828615681241470863301012857611986950000384062210877293894519379017019400665121470262579385996753931620992539646619025676868076129827799186660541969224023876669599680065653843450462687287482961874833901326986937497913534122457437247092961296959260811113689204233010003436353573916740675800458535528118682401610883404188009573644542799222726509571326511695443360098522558676770855626303000151002501757817132119705573183480068098629828383092168539543685708457439181091077624717380770260850030392656062476452368433211631578092831724075316992337790073787588909980912904086614310427045723644119990929470562740381110802020786621160866422559134180810453372616724724647308801719024861704701681841188884965268063185415213070271371340261934107230888352802743868748530329484610648745360748730884652769040787643264828004202446966586424672917759745170664489371147935614501468558201099312669469541504113338569436434247785961112361715073517225052139940554839523526637371212072842965298937392020270683695629392072577642668426374217635515317924120733269265562773030141223435803655326083678426289845794658107104778248885894244513288534391665097416934240114794041093023763685650330883315135185993041680652056326847570014799805590739304032804863296324473741911017809757127936637704237519966605282862185301830190699747454633519656178991198321816124261630710789282133325080750204588888010670877380466559198650259523912329370475667572647422799889190893548691386838459366855673038481392639503567168282898369642176879667363446234080065724145091813807864657928579677183918423162901170412382401764483355904429050672823810550189345870497463250981761977851913964195940742992774218591990463910786413672811454471775137285489029843536628657430572958802999501195768827085574301446269217513870114231712144587595540062936341028770293512337379475154544946034862485120098668102705323393817340574870073276021789907734827985391098616545137977352928310225430316965936270178852512205307915267209531510808921575218913384150979318911139901054449086285257933198394241793725146115757558793914415202278580641970397839341082167078825372805433051163636330994739216401771836992867988705750884483191437000108232737758471010151163742761710490095689730837807893816946709119607874965712188561756630201924485575883864852238184493688594478665219639324765544377472649711093472022022174114488394780970423200346226520004334277053167771620047428991173758895320033052416350438626832117833181387358396749812441362440183592825311093157849047239570485086920445890531829446644800757023191547583316751772001990001070602530557204353966904422039137382247402548589296817271415816656041611711642120662969216126118354867219547262981664150027566191647896777412251061372078807315537960303033943994659750212733415481291604817902601392136498920203157242051277950790656841417235177819382669549465351373515666634163050098825878754933856370785670006458477316945927025986824947242043025609305405332269907856662195135620824514727579028406136526400640630472236833191605183779229022751943434633528794675151495194266093297743803487567568865165344031560849668093544337230165476909618799478998552316728718053920093707259667049887444649648135837736486107287581897175796464223926015678446965836421988906631036059567547652344554151083997270089227613654976170695356736441037103435213554682534810957020913872260919919185338781396597132955032638656578917507901669863297399949902556713441070844652690416762042965906350521889795610152016571688265068077455436309417131557032511929335117068985898494179116340732336477483759341794177606260452483131319352245879778587271805797759736217654679756395226586717489741900125871705105022217333588422523988698338386962902604386489074159338413426077706202628015926614239673201515301689974055637748448961220474942974669952192512894498123562535048649516553695135566038450202810603644361639435299659748918530225089514532857153146589149775329220895218673004142666268730414826082076120770159930151751580305966673562110174126991722149168697034121664094760528784286267603051397319284304313049808639325261659162421620492019297573592253731523099010381659548630283912759658906564206727158884486711122662886132287003694827893438741931925497037371180110438797450409085717821904064964546015523502194052649820266260833975843325493007362892472691938180137741592082235868495204411670892465136474230578904637614009433159671804892623664691059917070865432670171242983195995548033314568797452961746888746115197166244465586001043407475007484853585929701111815623466883058843726196427643610292473861509831390901324554766418593023021180217921467262732645920306199412040480633036184516052097325158274737799922148351138066232058586273469719141289905736159633431282706912384865808713969246245469009114266604482409672003718159373589759770704359548483407725225707837967988946565689261365036909034218969325845843421917951698323290319647899900953809699672674897038330458096259582395179254104776320440626316376540511539636091384537646567548983762364683380044707474802974546723821023622532304884323463860767361748167205268484233647299804461005554283075801894855793101683091781594605754282003573259531953551600424197240456216926525063097819222167140329859705186540731567808355947554314325496054213169788606276740530211463861807061292972873401517807925569195170822999121994315503424382489702860623636805464723572815194367919930141749639807890220745172729419686378375985774676089199025247012650643464323165637132891565509159488071072560036891918386941186924392663345503080881984936586224671849050032670269393607694355069338422526477289209778880021321486385352785288282650439651494357239407138814157432156201895298883589192551450404710596710519527104482110457961209022445297010492543357027719475756859579990996120766656815979357848599624220249179716944836619993967587190055869708089781239312185865452089537773522857651174343004173457995290261792893450758893180814887897874722030823878583000947816532403864208615191382815408756470209335099829441631935888239441577922162399121297887452727644875678785914157321476393181429460757702852352137184776416290221321349491916860537942942638733871749197853863739755240648616018604171860842685675373154378894061294838269907055376855391914780676887485883131749502142874341138711089899449551571550622607157052627112743811775276339909725576309366598984664463892100899031333452184724189457647669253933593128574264093628424287498763325196515996842322768319546896682980423184119665311461057444568657730370957649548474560053301746020346028017839967866799076127812982554281172306182121046719753689060916953170387293993930799080473996165025103710991674734636486456571472029043130121012293052366754678589641906974265839010364113870938463537038548110561723322362872775678367510345589745130542710419557358198466645561248809864773502584579071320600718130645119374846216325062449926899602391623881813508281302235979968570374448856374993648556609886297114313115395627229559669897846632946251150546790754331268449773225989058286643008982992461434431189120324731984810021875354665826916396042928205263488223778480386505582487868769949124801640050030296196777833571480270221450019004057173326476138225255712827493284959868570682294244137485369210456021603431094743736108774859864884734255430957921364388619516822494418308458925163003115513402616905480677634104774862202300499792084606470340813644554886975975661318385761933018582552372383777915700371040138237417705328452826177953844320172213065680424128661439629275682140192878429579115813559961535194132269733301826596317362565164223897098421197769516109745407628525007889231746079877584780151014815946227678413147848772673777076517414817053403046036425553109748238248751141982750239421682403603386924290330396917278199711158428815769301472961283707010887339121235788189637014697132552122616230395976585893492406048948287739134901840621547327426190100170184226977556664060976195819307274575878360678974269294223479408196691454983730129567447413446795637105840394669896936097370068565689049601208942042642221660576747717725486050500324004247434337415831080914795051245918803181573186961484434530447209931990439276909613557074750942228505475133020647276195506697961682766954112065540136346081049022883203206590323475750122968514077400550157237607081189997937270666383807566148755439013613823414418843186327027825827794773338575688807674098086888286241319841357620328534432231570104744043887041235676613469150261960093026297850564231652534508402635809318886047951960082924077594619944083510279790901132713112312026130390834049642017882179847717238632784857922957954787756538527305476735295466661930961766291644165435975564827856807786377530476893341721531655659349768936155896294152082968506947664747856165019566291236237138073330029842691484584483529846476079115706624557832018520268105983636519868514554458635019187095386221037998263041741389865473140726972094212268503190301239986906215366500314760604631472273068342270967475183291429600637633460786581102244176630322359207702596072375216360404441806288898640442864794496858079981261663235432190160527983271473048895698469308884453087916589321317276441974576310263170527534746185426995168228898422139336327565607554034544874318627503789895415844934739845588688255655217441455623670990988244045054067918642656578698110213104017150975085153536735264884743533090400977197838397906471128034522320935580943783832884315050624708035329372101214772801126360843313513089391719323298547173236517109347747122681820491457729856593201414837751659177840391166035260782263458530937598998123173732655604256176295875996069805771104899871463553903553779361241190454124775049398648768797775641744955938131071278903986815775483352404333813796828225373566877697517284451194105949025749355216061040626709695052800773710875530039809558384175641003945984644023121226438933202859114385500251490568849982335444342694204789425607544823549076624597990357185740119251082591904524907601301375635669820947264357226864530853746337588280091018047856560659198655843971917030503553292882825877726316511448257214915588178495243438562846895045922229061729383847350658357556191503575817689988378879481076676087388219079568049839603072898272958688516174723031900198145175196154082038140727821385969593553019169599823154467656163047002498744180310145564189147474479920635129261953507098764378756448710876716623711671604155838805099455736746208209018000203731195784390625579450082204187744138863255080733254424012734579645799756553146427852834014092179785135611749867917095527359495878147425057485582072222055049785775822118186147983894931347508078243131261238909243058252960251533078680021988547393149139046048497990383559833804618250648542148585419348820417675676719949856858906705692180846815882728917453630721729641474021090156394414386594358720031945728185778509509019752856647772690797295405587381804517978891070911693949098956205609737564854029934655014120881002596164967867967250353622139671265900888775081615661970808508607525496874982385342012439787985348141200148928358577951309725507164584466980882217149358631882000253731795981533297844535869012583445795332126391023753670891896178451052111769295343171195233536601231259990376970969912541359864024715346447186632621050864676532817174268419970569205785119000178967409217214373424682932605509794670576874455997509023754271219258093931262837299712676963110375578468358777034998344300086783413664475405375824958457537298520163632299389167934066104043771702153761756912605532498410878288778030777524845861116115528729812733593230291322266339464262423702316389222547563661710853532374870713858754541225186269255791427488537491453704541202753854986959984718270285373394335770960100543873987463963694464180227191179438695875006262656863199609546450915053299414529656658821116706406836316198549996322770385844857709391985520810586704091056520434345316616456769281297539889621882323144801752607052375963150858886397422496396144778571790270744191482223476628371964006593346911979706302648644867424244101217523727745908353631024065121745986547760240942194079651915998424433056917890984157301097296020223735171685883267822889570051814091808852768113983727686318475272811492306028957004353734399478026925269628215786086522019255179478607103347585832443566303170097140912941508346321529313641431220550909584950488225448005340502017102617211703429656080958637120293214653339605729679632067718836141315712759432220894228073289158366938701573835300303155129028861217063579527650897889560477206455385888399103652237042322858508654832028640333971009708723889168172640916370722278095203864216111382484333533054489089307756294808945829748698178345599474711698014024653186181412797560223630260037940059830815563171405441300086696079833189359434054042896802755256931849728381645286930599098032060141934993282506251327237185992757303101941742514314679902582453283353302257087926156448923641413699598541727413374389018805071132695254835146241619636925773004079138993707937518620267772584796665972312573000943567117328291202092306613749477635779260002600503048843140693328553856830295682838062889331892039074881531958428664504602423705247176213358101217889459916783995410291216081878189714617511709887326932680135330707725050911431877672841293054322536213125708186580369938306782070955611710660762209547787231648156178943434967896082531875338497806635137450324671925807896138648766252401044446678666004197435425015131639829373798862580588168294267988142945229612991144940151113578173025619342740231275578521885979620578737833134150710302607630234706502447371168050802079830131553515109596540994288455414166250923722705945118010024752383106899965997549277792786409685147945341392700660029632806605077036959936060049752788441951144880664107533466749866912241619121783571947757251091138812071611229752270673479373562130509556678314728749465856385016369851485293637483664587194682994740053608600468103496951231683553412447368604667136109991937588744141667104577924073499084941722808275974821700829827956321018061707792490746084733133168895596576218217951648262621055617457707360378685213443093036645702852410522311267056767737801729126478527727119283115182410413209002778236945326936939948412985559984352831240078348633338865625937671566535044790500198335405517511536269941613486613945331815947780844882582883739714883852044246656270245422562272527333659664210958543002049269231048236283448492638564090556719495383685337821180451533902748972538065351475034025828527270835930585561108535068201069177685422366280828428612813103124334923710106035437202768895698554503443600817079849804061432297009777929763249206320054160856906720425047874440870242023146184429895320531232386287856863727279901493348162419013744588978821364417215482819082134526103376853040848585519331695453805322829010437586111616624209415947744483102943944593272773163501102776735843863857188937161849447880056873366220229568966710000833861565337226763186822944180559375873690349935078601633490568520143950321257618679086817305950929877889980027115113476427096777997565076784697012061681783550964940145050920210841874620741827002004362620016773004002793060369199195786659856646371343811540141539983157752581553561120897862617527854935652267403829691551447038724609039874080904487503329486257713620183684540671312265105546019287481783038996190378421366546067992952380311464244399732947194972070905021705246825813577038549898160970434924329590297977385517756421609313223266997275304920586229678078073189216536855374453476468526785260707067736345210138112331000638197450930168596955924935933820429854055633369780143844051600311843538438013320977832391964167514576545370850817630927573684489942295093734660560861388164750137210516136870334549318507259382023880971980513992481887183478684024548174450973219245155305444272273660359193324302214166913725612490339832298999770192865147249088422727077297560705663632425506101041569472452129364502707448675817180249022219830477548655150105370651242045182276616216626249989641847658546929139743649842162588329493933865826675509720139323518672376669581684412849045785975822299745041655190333576210851370928922976289021302441837411697543320583375949328656542840145519055208087660057984371053209108615588805028017625111309937013191388757966015096973864302269957758676875396064414653650731564553465292751490772972163608747746142090610273920968041894559362146625335039447188571107475399445905578664750498921673834808292382615031526090195760171930079361677700482889416150920665835344430096413833356019589287587794337129319778626607714469862314047480474950745252400237534520677264800137559313545250188673158292124204779953404512656962544901441246163848812925518198557056024936927656203921201721284203783252727892097315277664017483800435293831571152426989703910498604620793298525230871268172453902110987073438094417442132024780128755236853706169430377168486741851728310615008086833322236757953018941836880648710007367305725881223866751407432201209582891592998732935171854843936967521526062696642770717207522890939702757531390069713806885094741768614458790515979942537718394062867077749860081648412303294974206850446450418007275826945690709909696453950718686713538468239867390519499236740964414017667923249184129192258621701358053294614092474765515444458577961140434996605131799079271272590678641522027390754688623728981100667185206383724547566533098803849610780699856952684149456142082209435876447074218653193269172192702474729676440152408705277595027951485691266670716148117596616191065341073304578229756933046813300164489892183465774374449652829451154210480131291836294723142171845529679293366789434575561029152392702489727849314790364300847004106560544013570353318146190673769402853648995396054234019959746277045691131880130536285452035539188707854282041937331309159327968031530279891352735257832327730819363148556128829005494496959697585481688206221108014567788367949099079770377986067965668153052216034503706401768041092214381324923624037940094913187878208762551578149723668766056889390977352986745042864222155522259016426530954982430216328714239516071237542968628846257064639578907036725124203167112088694645235805510350382616009512729582432093378584175834167134863173524421738923361643043105215131219744602073763641982935645708611826770713195471026234421721027440156200570709932271827772730520117186520556090223587629034786673921261147211536205041143056362842862750161595724147987138919945466246473554936869445212043318388025683592064443693578928166943521591718484935565304286061042270697740787543621037647767336281939986972916314632331524460497413915471706587548791969423964598769344896358933488799301880834144022715632113038775511451302733710593871611171137305007234725465781870591765075508102032485001866590111557726467600418194027287967000568692878352748534427034327410812804361200708482740281789317366671809850962421468831907941438738963777819802322775346082492348645456678383089372565172146507718268634419228339100175312228650503253469473943951538234187193029544605918747426142950305915062508105280782375881893347418120692627304584759507205737048698234413290181180287156801266277586447655668375207202048029836726514153106287162469322486889642912604069372687450051296599652380481361148453594873083035390450917242511206929519726487946214174580889402025855469911564633176181414817816652250419016520069160152054707350379477713652229094561796006167151452169116158733875277850297697625004877434420140085250173983840233315830355685473227730129764033228795334098826658194688293786266863848146661330694981210556529884239777996794218484928020331409413935918906179850052172424938776144645821378597190428738052669742217386803646426738882831404429400049396624159764177488510460796506543220414531714356293227506003051180663912728589962280905349102401675763455078771190545461450406725775438388280457111096486872245315449409789292060935389625481897954524905968096853084009417904689154231144798473826144651416474863344867931084884428857483201911877521285031398535136203498636861481711235668026702288497249182658800555655037291799942257709843974046412292838578787372073958580252440477867803251860660618177875881791053150338867485608271148497897506284669134265528932580047674079973899843525687178509273865751759607682931048257993099037083139775891509163211973899880372877930927873011637927187131533543945209858758312483220278545117667449351745125323908443300721511483538913970966402698332357731173491370582738892697236689082133525616746256399946495016349489868826617735312710516540198367457658581860718656983724135943502697795284019955141461588067705866050143824316500971914081778968928529345409551740620830698284742977311082378481943595394933566793435756482747091550726117380235346679337201401567357486200394384618550357124602672793151532549298047565856700020104020928241760870333664599420747310135896299150947078437113920948238576304195455900324856232852927407864503792563113589250141507934387558157421353102246639843975420610482259837162889201615537532955324905207214794414572816787988613392640612566772416021444215230977904569765953313106941658608794971234696373995548165187457692409365155550193576330024773300765800180264941387252247802103404416856753369419723713037727294341591129785342635926547691324971366536582160421335612901245120420733746877802857018705988450734151020156530913035658031315323523685422304168969792233554035619055572283668073778909148789465507949900461991017290133672879229776936216812694624394800855698931815404213049498254728525969769972525317419637442200993904890144299398598631156617751249478371269880999547927657291311300504393208226478945232414065707101467470592961258282685438435489587965065285466128375334970282477003355444294886713640169611326878861689676401422511900012893850859864138601952301848428274802561746681614536060062573169683032050283983008235496159196698033576085347233674159015780219666938924668588363182544498992240277420368972185409491670221213219941551782952204528028756134136754184301407352256209908643500875909952648739909064103754527113364870509133107897986614350184112773820184602264574518218871664712331073432982379647820331394333539108494192629058431187699174323758933918029941889441244222742454321058784794842834666395264967831259349380331726662910853395553706719010521485369847025466368443265432268448240389725005520441791409472215664560165986128141545022571257093727784566183306348790796746829452710442272503989767556089304350023750651262830430484774593877188581762672724369866327580171314723609357157005064238577171367541658436967338865705845791274990703861450085927720446729906309798014726085138163831687595486562451206116604946630435490059231300818518527786010372365333070472968535869258636189004784303106787516240956862958081299056554155322927774336249945249729842279600274066905687993705184451258307258017315324493917104304740323773708858340479471431369783028026362764053476952271176267361069012782697291476874193704183781384975165011473175875584275698202310181200492905006846859875874512364730338657658678933789243239755079089078493350502594029110997935261737267869738645610720217244750758718836578932041503208000480510832657472416686708269367967132506793601008190247554018833252761793880996386486984246115192126825812477548030292143864882615511202214732308056052358721017080190419621032561097111899459139353467108642746721040830026313282918263092541025183087953324037948429370915042581521551212200625061500649259599367055570413055299397811840910398113542946966657535215301879139770099325550048025001210668639802484160105262168629726009592164425053088662830831245691494840203878949887367951741372961754759123368527249281816044511451434298607795264652359439276547282979430876789936478499884783141804630597198980992049978248540146694712999799147669294758566496333205949661841830362186122984787247897243575963702855896779455380259588428132226271541950480932074563906731638942249011538285140352729081437496312435324096570236359619853484772347062238670229635509015171238748261516998894644047642302733278265048217473681689056107108234340802518104770445361487985767752498612469306753015282954359482219731197677241587652173019538349215043573190865417206351521522025672909884572989209975139151225446155565419854582739163461939828072307830583364137339517020890870516981798683460197137768842482302305395874649645056048563824290572528847447660640731812697693223865418337693135924754256866019405513930959240987254402653921486117273219669181742170664937509145088193356644670454895600422759401905649536882013155022178116263300958117738708743071685843357592451088695540355679560289344742152347415671659263231947116701008868320818243582792678694286393976154877430990907571797881480656529127109870733140364699808810732453581136718974715137329883985715236109865697819927159880374830717078646633187572723600657549063381128256986392357002405634262184806425774160081649287553906805984809222082866364943167002491379927483906590978282493486003366128228532470771796617062759834867021026346684415178536516742632308038315993568718502431682130906618187485164155174017931363223775112088357304450541824696783808638971157290250338232186694410615545816253230549764185229904124673205099532382388816327708460236992577645107766341620830866001160884513913000049237071999061950672881286404935533208922499567961823397648026828858005269439626872188904768422301706457655525796752802675498656947683846090956244973668580544696469983777303713610893171382073383491613317075023077733871725475038042364451735616562135945312514301742406827732654263899443806140464499862191646674036314855118648851544373955642639923491583680329838160646775520580325051522812669254983915728668113113343464058436446098831266812642081752988325340802999393561185912511680041954140557744868081121107587428139331040511656448763467225825226041437629742941151576662216632804076163626037327886584349613426499283625102125817650283966698465745265681419798622979465080374266700093530916328363078476247770316058445361828237409446401226771643036891077702581972735301186627199876074175332722167220437265118260292532189600072885007647687651265141076819196871053347893675208763025936668211327480431901772909646235748261338640934517341471139268345288870384376685715389486869992041670575507806069036451350825916910624431561268485944782929426446929026852498239839252108110323368694033036552382257064415548804691732016940883152999404286452447566991107773299407051863229624898997776497005542876825238256191408185999024632619915997436753482246333299331312339806304065151697136345374581283703725462794238467132047819385082101946952481121349503868886448688172025898351427659982688139007462830123751821364810099827346071407876421595261572434417693963113161400137960326099662899942426745046070718930881214436926105401402625894527749680580908009977560192658529899543801317922191256367069170982710713795582126809087386004857319597158634222467596568827494745892156625895822067466066383148399206877575005254150642621983704648926861219360058977596894081863307197587912212994441615634336824560918022448271187459224489930371191403391521897082778771488734030029281106837382400948953659298941934530197733425729972589527772258892401763390308100265620526376876196996990853317678114908168533761746759435004192739063260691635276416697457301541841540425858633471435910053819009746483364632144916630351338242347877053015992115247973068470931195349351651020097642656334464144299540205777128870010394694558464823001579156578264197465508392737225365155047966293695541299365783818634565667359792041420513883303621669815496249633070977646000816545627331948660543307888640252958064502174623123413630898480306544138152876780822530475131633889439273073748627700492239563549146671796350317143882078578295993271909617662509841419820428858576595985613575305545935615832430055443405615083928631678147255003189193423566492599908657463387863489937440336395274336383482955777830690090658795401352100068616990557801600968847373740852150024485408150257442903675119788859263318756535043702104186656483077486837058996376252086650746985353629614645228772854252333938963099286103043758508397027678633701830217081686854450758470689830670350664358510206818731118508082485942631557849681831193417785225469437244817100833488117767690416695203885810645212161532661314390782482044328300857468842476960150452178915986888557286165279939222244466318794037908767045358769292141172488118200672926491960116650921762098267485391280409416529153535375247138130665095909278482341202833750749355801261377703642731162134532876720334142626273944368909844079984809635242857952876081752603334851803438194779832849733720189128503683857217977296898432400797575730104739037032521499561912590672531083625000211645680417486488757148695759496479573969119698447220129936214293753704411297791372212972711288518462911736771097531962626177224980981795887313960732732683439275843255535454313171163875082683126075432941471729912525218970429415205866863620857473917401639218884659210822230488892281054528758205018991921160279901515635402192386495816738157511588473265222348158422501715041041075267010012490733567005422207759476679560338767099617230555795898914853950594926158852457580342205998166427068830760421943955793969455769416610166566354052134231474584789997684606243106814530505245917804483210824080344711134002290951363008736792433816617552902773988402082067689053361445938461690373024839965888854355068029554564225846485646472135889766241453948944858830246471048298282267573072071319556194674943873834773633902388173688348822564726013043418003952148263041215113943722580886361341947807318016699973621339932961765212157919831346974808476627927369837179297746672392319423642522852801864955590955953972982386727101264601266732046652793006896772063112712874934357823165349026698745053200268813617878069708050007484963539675738416857938177881933175534866032869396617004134299743405884151956755829288948013840626654889863925852063306434762729436733133221001586827319860229687785649363302552031411888305896337153771548158602013161400491093532671627456196452855884565531435361732949091678020450742995574731220874280652288896530180569350080298413576527849318990880161686079267828283928195999482643100824130577537716172847922047149015714466549626713083382060032834048790919055127409997092094372705443337627512480323652548658133749083683194939558472188105685584308451750935578351240289829866762482929654769161477972058966600032242093535097735718224798019345262099729838746330036420943573583306074487245511644931367586626745949811550622248270872762108505522963420765520727702808641327176738059002914963495805599112215404765132817324747992179800170975725487842582679373218403673100899517206764375469823055577661471763293306176377006159215711619083670784649118673454268843366655012306167351681424104514900174171237363759747700194198491827707560427158545230038514559351152984011057749499289274448103384613277239898659035518059915016163744674466324083820105210156291419676594142858505025011469407098746392065768221209912069571406606145121081905024667146696047929674520364525420735475206044192807574613931419604377844182794404184832138676576366200043641387905951129416626420559257116144060056496223401187419575514695647819258629538089845253420411158691522797159439929896138885870168214036387767291294437240066402445374470168461222944922334545800473573354263121539749025628171195633693199796083101498620560738007143475656774913048582011465516743527206226476801341106401402647362165462745955067172487261315829868038848760299582703767840156639193345664967870310055962096596484269744047270998341747360620073667001726503435439941865690947078042282831158430303957943276908710782321386360509503489738663184627864420429593533316386622994738047991491593233457575512690728938077630574883615216559348207494733250060228477566181168008302518620198622188799001766193756043237598370466880912627047467367318803404660934178930651635700541571026235424968063460028761965000441608791046523422776083481202708457406218797387452212917298852350285870571865168475853606004102919057896817611011382571764519071759489207434958027631282073754754459388118559143725795268199019768989474909449280404192009893857829780849634619933349603490861965728308864170960597382861249262558441043523404403881553769748399195263692239892095034196057449520863967310047283618219246100588355236411510343110672303687327089901696900746748284020460252646837392459010765252430184708721371212615463245869576365636902830003140081166037680308350419178539005113388215241602026429839339195986352102210462324282051022552749512382706264744855932026893877143033117610051490333965253902883024189813816761294591380263567280961859819077616672221304171416959750534029946898344342678315610160009104839291712924120926764468714334162589945160484565536196278958070493835841514567059456240200945784229686874539516101116034434348457070185165621022202876765992894646587519723930549170364095899478160620438041609998914471796681739603723890069427017583798364270282055191103188215236066602926774865400408503162724121038402344310190551881246707428894087848619129202807012442730453955720669420963326409646179184852996020397229557088265206073433440198696022643807557548592650714041849442191612952503759106983324160691484954641387502065646838556209648894128526438709776956374027248972944492062944328480977342181740869485198487655032559506420499823148252121728779289439262272276276278688803224029200477634093702989436326594044768642204200556178928578740731878846919895041458779734959782800261915777403677482760468675995331267185606943508589573204071864492428891085411807175900027127411388159500828864077768865101000170478246580430516178838754634080831440983640435989239479029550104647407346278968207913116024835778734556101164808841239312128922847235469420160441294085041761438201934880562785411762036033871849901670099182219336080267390662813213833662459756970793851576614104290001399632650958438139248021684279886926889399145529086267698264533239706961037738699425947560898383047096529350366221949843747235811288312624094274081457941331834209574885863069585055641427136877600752434849540261165049831384613940032480151016969709122885472090622308916421863631739794301522547877771308349662532661354377610200067474295468185295685009984461315499504380807295152841740405397547926986478370853895210785045339563032384774523942098142182089002281802115859373466098353569009933171182535010857441256276658898263258999481362719820222971914654144228117090460610511049037083023568305157003004884017152182470721398436661851193645975670155540584948751184408257940794654438641124565553518817529688399173797218514504016840741557856511453783283944846511664456520847717278452210694139925743666110657892804248872324887601094519948039303261190678806080231232352255425047636538367849052933653148582622157220508156292318788649238387223995974214501333254785332566447698437463458503927297285509362445025025938371330385469817886446376933696113989040193192965431679921202299546268578847064220524542275203985089206671425654307364896996769281156976875083110100844827525592903968997712880960309996266078123547730964457763574455900846268551494220169648745458711366019900546451282532152381330112643839193008077622207772270584477463054215497026833976069983103049292991133860252102096362744122667436943222173137003460714954604634136511158101227413111162651449445965335858270454159826932768407898362381665164723868878247824221150723627762340833849602206733032160618096853273062397662594966228136132780663136655026612750355604249257234396994564736454209120673836030942667770756930023815161293856354056193723516068029388338172287861764609564600090957026081217020077851209053744678977689749799264479157227410410543791173669364124804533533638791795939630829197099342222122124028950248729163114012329982791392584399787825073542967664712826219580742109476778231379474481569005137101500664723666330196580265227633751089703146111823307949571919701584507493172643831736601870663780408740116107269954257654159113201372677670028601285663043351549564781011007617990542265323276390622567345100454184969266403618504848217271909195948528832471262567858572187524781261214332794971329289122748870909965913002577285563846633590594834460804021373443703003744613245838002141951278787304338877276138434917379378709864808527803665579595095861445721747578394161142416663691166135760966312358623950003687383058411439940821042566312381643384757792976032516321522640485105323114703793747344615560582762155255729429023403224102893600433527259216994851816193148156905740857080653257883546590438197045626860239072633744211441125121046964513202585031491997103240633334721580561923848512271035097425317892099831712635010482455288181965146584705905929758992284656255600649201697363821689241471147387982854315757426198857765459382091210095122018087767853926316584251192125434361532460669771543758681367018244468436615044616227292711668747756222741340632581496013584072373162694621830261146905334107014669752282785610077534937901906415135883722238273351618358798751668364121722255519342370302263780844030340219279466179218912479953415036348559321253837985319067111448450489737085529487204680419487191336022943805403150797522200777685536065341250016337100503619529640437215824478838088816742352801807071421916985784544819743095916540828110696557193388629778933913197138477250404361245395222691360518877101392824830362899336204509584350692387730918444147934597135280223047227673336001474066306727281959218173438865665522852012349625911267033214631540606098995477103903523158424593696718155622117364371283404863973494573867136953206579134151362176137558781865109969762499766298509308674413183959404070993622761034218854240277077286613751762497739517068169306490284268682288146223511601299891681349359729210610098684621300364338644088660645512652626787966851401318139539979279840029382680946748306593605600049318359257146158603609751708232600390728988106695411093839377474466043834188722387132785822979054477070219390327901661867450149997635775827148051389592096286232143484969331651306015113536972286503972582582819465511865490029255292591453773240520389879390572964851287797724667790601047690068746373325867076652115552756996134460113019567217824972716462593250305530338676581050678163212989716767962038347632502752125612587196289865158583262000662724161026562058282846852641857787784883789790356473692933200772563481963812390291713090704104674059567111430186347446767497517065748589837890324645200142406049499386660102533533413700419919477118171237722467402149052481495482097436487084221056220489074144537152771713636373298228286570140614994825927211618436293116499447085663946755936889458906075132138110427282639544401721488894422056969428753812324757872573363169010547079909289472622733020709926317984953942834432203204938625688211854518200587206396403168639071191231947317926971534393686981402147371661406800485011648248536510993883039713197541611355854290853469849477341522043900311287414852430520409217603288310379513643275599175121222945893199595813043395934897100583093549815675045863343840569629693312951381165806952133754884980906949060957961204740936138910125992428717090363171420007113978346409190800088453502034795287108142577089869541984690966266385802994864885906059137517089655938126600441296175548984900208580689002708312123202266974837318872320323111670810023223361909993098743687409707748896394360416535970628158992517688779777252142893582292667065721239881232964446886428899550455283222958829437329821380645910531110493774437157309997465845385500904134670684960600220647051619165818715610122662197190887317541111893743334864336405113693168226900620988289109815205990537967081262401514084827871674802903425901105123913270221856526256567841765503518749330253251752971391266477795724742891248660426276487340643515725039442884975238852731750217447368726253478296534467735636920061900771699944717900567511079421269615794832542380105517427309043396732292989582661901742661301928964732652689937663701998749840048017107243398586240965100442863826813055962827194696994433884956250983872220479436352067096530715800048875101507777624857792244871340412968201237240640723681323343493458342613369059754341089144538025119068151917307279196680044829933484183198225725445221722213008244124668510945559463367674963547799992266359694757612909126007214128395087740794213602594133856867863004966730055010805696549562114648071100636953802579783095407376411441006562377152304063883173501237092736412201749645960686722242016951872812589993702114961169595435851676626016590737484961883139433334955547827274495643868381794348809198648005706911442605416286081875814400282873785055966969537396849076057366330352022338269478613430278050151493625586078056987440259700632205564683566962279146622191254096072642902148427262871021255792818262398763521580168372304652102400189337864933119323077117520708414381183752411549976803285155557266745299545084281494112507785048739243317366751680434394983096600691597985565584108661412440020189053172496908243777509025998845645918156124149881485808344494484656571504351891391570501582982756314071752097156057264400331854799281373398527046994279843876467682394149896364827876069718414994476308323753862525242776171978510547102748872442708428866976145449547179262635023599183747105111685669940712305297523655552118000148195899682411082913260089714479918256791841971842716418014010070454673179314257758732114609680840398987614779252441256712142603449119852702432281017418642961085930706405317303009883196056239900823284820783876052014233949916879999471962769322769521692992805947513381770228846250362823388379148192294319985238482010778272953670210230120173795624809945522332114702454889169327907257858069442544646732824304694976700376873463519536654719797675113309968182777000568110865281631402824625403041562879711798271796953561201366167497841566360670268194854662177242633886375037312881371940099847337167123849312673540627803211243490718347318088983676512865925598813051873960706418489641021192466029700741662264856630441482786126793091398031111201434198293573362912329019615576806634545953775909966717294399573826413280555549364542983573770428115869542019367359103271336415427118878355124460515141820097932563296796712609298216779127682050777248950515659555720528762710876705550138556634283100498376221839549694467733933590311454596593045102372862410506995962967285557033311425634288943474767685563938569577510266731258255341325734676688772724464824638780566245958256101473455675783663090211521400433387521507982005218604569319789617531334040254614059799700585003260871640343706321207583734434153420800523616340021965301391379926151543903151349913558392827728686322349965012749049382171498268579560088808728662382673485968546809165120826580689650814873685290867173996065916805453170415836170806953032201838295403572998473988255826119719378888151386222025398137089776373493233011937772423707236331574354904127671504045463913104543301496484134653163001585678376868205218451746230628696080539892724514632860709923192286442230224708120032141064826141126856728701448105650541437101192601033541299644221909115413750854924075801139543746238417227322415718970289579484069218656797219751517957370152526184603802673066272719439572414845416368971915327010851552333394866266777198162467026267467369295162143991400113198733542414325523069636826116901567493412163775260539063572448424238911494133504782542093433754581473982537998153468204759229628964249172890930469860759928738799376538701562863205839750335614435086052856593937846124443203208405837461805604339128977913701739334291346127395348640501702213653638853621599482004057526334555067146097242745691972100735816928515635132553349027259872586077883611631253282165551992446103504746620462883898480480785602323254010253165268089536550252859460187081715000281111162770422012364154733555028498264046984684022829965895594491278334994418845658053961408305039182468628569948109519271925774477576093383368429540770766598004886040995501387869163381658612698705234672316335717913358266477110876141807667019673223289979170236105271238545053062555453591612173001046663580845339398897149852828586495822977185818328649865574354120972689707835380269198943681589695355902312334193840708951979571212657860801817415648007196862262346922642570150521174046730807060557136725677019584126383563775806495533168953224102472318299183789784502620431123993371183755486734100691635993245831411503744127521601451918088126419738766994819707919117448618106214057193343248874699263395569246597030405963313279494739805004882662952550539621609667513143639086202127836587026821436909420604794465087310398176651576422659977096290978790829919168946576859428156950297589159401493312963154382168110198428734500309298044341542283463229866886719008465098657543792945690929095064852979744218846193167863813729670001905252704248493556369689801761353061667842726154806709915873645325763906356796375328190786298140622068604102524584271108569971341771772884320700407612287411505362663575364853852098642572055733188994187630284359523874187337693487939931149494334776233457370419476842412022894429275896684468463735801935881483084495933794195894739209092525322770910438249565213116781400905564034577356341779136362205238186766723654999650094941616082713769022056800312601232790779861625509942562742277832233751047659344844263985428823843915307362442621045188818115590713962391396391189660243411111727842106617966484250385520562614342657004582648751905584764508329044005704340826026981365412079436303260707300343967782986071401052389858066701704450445597209442962253058758300809480065029609708059066413838156141570130500925074873172720503454930958318214135664140806837699777310021394564573528591430961608632098615363492169134274242496785046316000456336003595515775708820735356436417041657393965080133545017522920997255769466414253796542028071586878623118623474014115562892590847537090228187454620188075769830893713921112810890983376343074875975574917131337517668122995654489085314276223364046057172201693141539913934724869447847987997199279414506311207832515752235674055769163307932322150034382199235890064968440011880330956227539688260926862943335150148829663189122468572286348360622627203638453430139861914300541947869573221737687035747723715889984543698293541522166573665960208298906762035089959599504421417076176470439541853422372897804084309789694418656345437397598446655644882056625685480131733842591172971106645722339986548484815578450588052368287974069308137314555903582663458924552721506931981352087709969910019844478485215365205972375334750750196654246141737404952557662789384016306192433564224123186723905340357156114245731721759374233326608292349310282515721922056248622581135434236007217293548213280017139532330648231731695911963150490212525693485588807093714436466394807560790794297072287181245896303801382269851277894862408304321547701277692538098210041256933949084282108819331992591237433154483117679493953596310634433515247767653403472434275184930782630395092080039967341976271334708775564594001583276629773776196164879369924473284310810820377895616577634218618199797567007061840774328927748726361489684167552868918450835626327788020243234503506366797390194170742520948282408786036882059794995483075329137825755739921330255514714616713602221723674258003196849210414052722431518567489183383212319116876686069197900312396948329873459751324317935849040447277143789947964680477528605398606500963290468504381049902696111105826719167267810911122702781124958881295826231585749699903454398530960676789047236596754652141467553288074721979142220957113493660829750714013896849960263750521520332244731968342126149939254778940142663980538089292243638134207273637967687211397474885852881637496172588205723288062953344300018279382318331346541193835441436572906495886388464119220119715067524558585377154913830611603347216922634274141026431460049508626673333007763430640431436124263082388054467257546855897051975731978389489772257535065428084768176868963494923631188387602538998507460759955753309715534521654836663995310484231314682802197360439648333755666234308758220035447631730327927594120716175293440205912045277083303227970945189138956719684504518980017346742236177047098120117581046540032084524974654871146577432772216856690855798223504019127636240329323587291843009093717375064009764794494664144182895892173432897823624161930690977029308869835947417333908128509631984720684684452501023008011664920154177700024122731317227272247704590401958849915617690950863104472467612901269390101640594349633368274737973851515165587113035402872820031640086715371446891495639952306273359336453108413913142032263822906411467324455833379500766705349876106790468832924883522110733043991139562238483047333267103393231286707120357562725716192704633285472514760075480903069793837928516017070290361459799010764774892938404436116094468668375539532371539343568945272975872802644012857925410702662717283654824461128621327594056644779319275507091029141356966296911721277342892786812150844906983334241662042657314545926445420838334573028057575797210458106427661783518753422606113102521121684226447905206770185084005727182638801300100955435290858888314316682793960738823675885125025869343893901742443714322411819195262181895607624136891891881969243015729236389058271074277730383102039070879744770582696628955103113205579388000476240914106002748409318241323050965155376901557141115122897819098140640937225329638385751083693825861629033345519041115240163860439275678082065866799692473620114950704924018129802816136490135510297171972678866457298272765227708727270729811476674904932699138742627114976396569787039723676582984734290428067741448385475533405782134803284010063251917806811266108355599576266433377867463684651065268849274139131263360563041747049952180767951636603414698149996181242643636409550137363650989955506187923140043185524008556795906203683911702532546569080823666319057558138954895851042208768921065074512435687422203279566734392382984429584438486320006402804454233541367921135272500262940645168586083862525223304405850137445947370083974760922017623228227085465311969716419340690823664261995205631477972665290788209169118269175771812509108758393334415037368367920165741642310692114712178708958129130670805415690120032222647698879951185409185332681818986782730149716719653008731475251844564743408190398658114321903704955463269960749873476123570479121711079391733521323368935774652598056892989047844136249188853231035886438462007527469925230855868310034552291313428630116600557581084125860617803364358490603952409931457586724557235743918287716606274944598965574145678653802582699063082323073261268986747568043233729756636259098814620153625452787201347367253092341059744949760961230863910262909688996115069571163766704968849626776216615313005260978794402419879041575533087429026698273490515945149774158601916637951620975655199686825121218732281323649722406099977366628990632825677783993170140244871632201649328741028570802685351003105166163076311523243168449871740060406697640967865296119957358355167863890480260458161965833950989129972929734168256572006364384165996757663609911737783307075105810364782802131579927347433786870447223814572695655106917468934691440443677943110905884354870062897376420310108076060732828012640724227618106512594430478023746785789234204825480985521218122066328086320283675331840335718401760599054231119775271172478879843444919728672337969837420344291609976439871784443634467621507248065183111820771320556529446627449681337946096428663744479865829446904923826935763334558183577879709047770384832247679392941910849528334638435294167149033258785581572168148644410392341587429472538304060612894947135389244224094669382437458423389549046418012539805479280021846986793227392562487416852186665075423459384429524172589526167636007479348671966903276009069475769065188511052104585276214278253718075648242272645811130999171364001036927337294739722264839270138045498715609150826852794471340663222169172358198113808408417128440053122549994429420109637633655382812937563415553156702189348847298433711733740462547959237437117368649686210421421073149521906610326172934855540205013072699348106048853265942802788254791951229435331066845892133621736175343621298420477025776518075110672977157106752607816850322860230784729706844030733092551647884872977670190894419430965106817724515483567285661272529089324121382172455396543035064574873215344354985797322590340724051386747189639623999387560313064856470927558609762172362780231871765056289937858909488022221443512249091689865046442670203498524259972811423500515598723395049905616665637674208640253561825710932702462374815772208979366361069816962374187014732453780575069549198401879707086416864146033297811089748770054619379886897393022161260463730230904167704210935283387874413085685923902771901417532409620878468247656426667838015060275934454420750921571353259891148943549318128692912181282765691600457368469161457440853997484283357666632267548634552411858591381594815359638768024925600358299358407157809015773036147987170827896351362700268666988093280824652774610955924557374673104741076883518499218399412172274278412670806781377593887452621580288483418413169393004531011465214776930705374914777502817805820766074228578030084350068335656441974576556712089108662064349374924558755624730590383726558108421475370272910903308359323104112264273026763864734059011558090898482600228019272327948586479198772499451291760938429024951432912126186104153681940193672720731507094960069838412722745202841751722102174774526999466282302180531713029004923796925380247474587577461902026763007126949148731339806344895691242474437803912512254033091327175267653794011577607526427917395771314685392282130197698522860391944292807789121722811895324514490867870924383576699324734638054413921041066728513371095991281825030971090965633273517827968489405783178520204940016587662437544757977831379266138537973057744008309908522343311460651324682199929001515611436411206434083091096801566815779048570606534154174079785624193899358993091962969209296214595732136124005787142808108230526634846313084765215740115876457811482237360167522301231843651546476607650320291926910017830644734083270247507380880787312048474693624479755305872402001288891244618222828926198131359269344137980993536756796134625040268963467980106929878882987829085186097290937356487304301770853820934232516446095687291010994483136815008469337601966850610716781112833787886777512991331892444581032106886595649152749128947451476383999117085162745603409796055588917787035721284547255656772363960017731205234503148265840350561090966727494249441947335312799474477037386384105303242879544898701756474837136060290785774774859672502879484290724667289885593304541096241263294814467273191835817476048901085045879079359677253985436594177893567886545334352476624583816979784660679170222498382008355746651925422021843444859356895629353405347392056267561460382111004890975545697591716162497690898023342539642294882996220221844843263935394728575951612719779334895085584162857251217253497479043957177432655770082767667955363861665774035735400437588042281939314511943813756807047452316598734716036225868886580137261135046309857705812609250548669167688262172605128991737740998744546687690853354599608759563897215578721163917565127642168361058396280576835528698572125259158845338065628376428153724565115891290709554200237078256123869778972861660125345507371384194833945004048254037793782086154877715178501375960388077804780988367865257810572882454359225081414943380318274468623061134102131968326045185322983120741255458004701504026847307201566536418188220537465620485792101526855161218915442501299629894071064746625892796088161712620580005221549284830647159316840446475509769382087853784186844499850968365098878588656435315624134649226820377425137534395315791481064466036428567164212955752897047819860455355781420618893984294082155937605866574772943496405014085518151059334735246848048037262948743073380335687976710095471972407598338361272577566627911022502585703345269993194170771497947190524241128963680039887348934813326477379619549808672686020551020024213671661423283040558155963470694512667011029863763155433272474422834034397894960806097175206043882840749895435131448562900627053169150370814812611266895458268755016351751126934199485260470994642342810825968417875599598789562585724620852152815297849377497387659199118240135566444436339316298847503261598344780603847927649458415707519663830878348758669788437503847905019540531165132920061240748576431273437775293770536049543121504917510379649485417662789152180743980829155429113191039560631785974255289778539804213317650292728174464283647878147976594790201898122889774228695688630071993996149267715635084098194463722764475700366155806124416905142564214779879710169825668392534281773306708573460622546491170152068287269994751484556984535321951001246007807541937768909755469004269033342933161811167857944975267679749459034069095255289211802853857466110108494501404172806237751665115051792335472668234940603406174128241901826763196290182203438823249238973883932322295476920704700590626559659635639764619327829676370237937936477857315493600020524313466139677286264310133261759600182346369837605068675383973781178033629274114061467962064884113801951256233717338358522015247706977713399903729349556479111508049204551918957692127767831851841465879404895592336905078173252354844952847122382872175422122850361277551621686987617936287202326928781219025425336974226241719663946545948740185792653676804361442716699929509704528188347996968664823693829778004360024280007938244130376939081954518462764615081069885112341396231615165452632379123192813622228478065288801815309242972258848720981024509291571406557233722820511024615249148507281460296297750191379937483866889815472747914772142403655881334868486874152342692961449864309412156974909258266142783172269322161547485300511846659687628342884973977103891316962521342528105736602899501036424883963088252062122259828433146898282490970831503684975059009925192117340995396598112328558459049151383665086369196932021031901339306194426758609862570219146289778929600509093307209796732302151156243444524808814385159705823320505664263133019572873848778693402412367772994432897708877347195825087617656958775651879826992536415290556380684357851603666417267549616984396838600659053473184007578799843470699212408541774958457942202106133229623678108943856966706642614076342938499733198293585932148391232089076119261426813977392380213013492012768967012092369232260827498771994046007725828636094061609034210696698141544733189075854764038530979881028020576527013697662727941487811457526520630578805717942928790023659476352805806257761985327693397181349263322515610175679452960022504652398175006908511745948312359109988382662460909002898409199351015815370065558195778380243756405052974539573862096181689308193903302150364883259456620041693140269520255599786832008104216280793177158562998257643036284422333418739168003093843980470832612951642283773845503876287723090235362472796701447861729756765624980002041628097747858677745513340409639520409109761532664315074472962783859346183123475390970490709103676829229424633251704417913592671599618532126599146280205413917668857711353012966846797315371040414981928353975281384974027964762863427900019599141200888723983631786321217153426744755824119778455671588911832629522479865646261772513335109591148466220685628390382901587168515804789610271191871307059568174398736521775275069093688471101970113538540424407001309457535124924193757620673865792103401884410971413240937872628617213118587070201467691359567645550385905456333519513202932949557073322990777685329441354824808310427328261059450445918107181328382268641942432641259053041126504906156301020004295716315270640203049290731131332042618778022829275646229198272342018407734495476825929430603050460190080772677944763004266575248726715594945788567747137734582194672134680965774676985651100570792302782145847359231631424207158382534380683982270241469349353926545981239819515830992271215890088002255806871044443886797758199498975710836389938759622932797567641370737950136327080993400162358046731987561821650071223550333650474633493041240630158754601576836514056978663385903796874592517833924925986580665394987994418145687987522489790106288709913264745713686879034053743525783874809580871172074406200005045078299453074778214327369131466079402303062212865482465013109141599673887018905823494311384730111687139329358855938868961690356595988324148986103837498611012980020481734890591177428316840645120166361150301511079528389026828331985840491773949869941551982209693521673472263595445713138044433208745845842138505015126174223269687035999324874923568980105392621126856313447901108351747621685382834342643683861022149870687148101843095076892397714573798905593582717826502827480387684808048735628550700971952602302726393166377119467117103955076935398485290936532625458883040905576553452413582648384474166148263455317248737293098255095302954906582579860559625202245988367201330241379259180956122093399091723467446568833457395671053942923075540216221132757278043124141655360843879034782571923181748482067961000440895672656984654785330508169946944000020456701995201406294243732693603597002642436874126618265271871617421280478620603838129532968909313628377453879454244097168906429342176802738104758112609846052272312395304692966960103032086902201125590966234738609208403415206803236895130404562473398987933762694659507841729556890450590420245476272357376489816464202645069719398172658245853422139967505114957348051853148524099780804560133376793539575029511504829219764248413124529646698366665405384976616409769489139601444190804446249985881464395720744313695763720158713827900551834728990420474676936443030474946450825499594349887635985066230067601033120610275882886888606383815381623091003455152212019679043998579734425287068107746456423756508007301745983088802339481401799079189749504045709309190259107498158378402822245204631151891805417682357659845916106129129453237561923762530926311667560951638404672304375845673822464569059641277509131796846917765223479627408843844998691214577046165807470504472334084192683774455889593104156062611263407655440269948882944997412397937287169819665473224751858490603938671718108702875060267744973767845158402673860483971111446769483877841375850475873267978173940374714260311861257086504501945355501768511699310195773124120884218584154555782600016404807220308592925322752841449232478388764515241047283815384340705265029995884259852361143451731153987463353904480884872431068640698344965197130477696001469919752140773613609102178090008244954044759671326825385813590504381604272068118110863185634078325000032329304756732068160806507187363289084719614475709571350381750007519264501543081316529900495696471943710000305890593926879918824831906301831016158928144458414496895643679306403244222626610903816539974961214640035977300340266687607584560869296580248995464274335701743711128433869899474446569831000136297977909027656122482266274037949187378404579686187167595493625383652293422860592832355246794556210057859806294753555966745986917503198114383642703499918184365584513058283565788324863899473406309121457145659379762811799341771324212362214160312020216314619609413734823237824513037089060883070467532660346844226920396604553955180067067571490408792077556243459713201869885093724790605400088703751971420292823255755662361396468790202090974319983917970827101080081051704340166304171539028986362375120140194817958026093858815780220452572703638034133592930919236575018628394302079626652103518483464202703436809976215636235003586134074485849829294478028051293337586673571758921025274793476806097100129663200931651126334375415447621064237159472638679194891526922042265120348109133656585352492376498055774140219773458108621268291889260421486804363927850939213683091878243374702497342679369573003201514970261997825830589399355259446179554487941851853586412659236827331633871133686446367627479005466812979975086597912913139437395565490551574102589222269705822794747445348165882998362264760072711844679391290228851677188800602200757514395891443954084207969688254399911584130631271112839700631150068288683805412990083787219622226346402783598111682529229491404935235367673495370910579693006298257709546212972073968871879747073431015654334571090157307919937503651647400670409696255320827446018419579946560520433591203565090778735286449470002303458206803068870500182049931447427845977625093104928320528794737346304683908501919983659396973141515647995477377707530567291875592330610390802254100189319402669559521507003671852359009505577695835831052766468994581587149686340744580343019340858302496209520820531230979719487674209282393437769115310757829732499706099830337099232276693464173406942584720436964324215422439665188939822327329152673269909750926746865865948215351693286914069308983056814963011518544910467756932937064085795759875928957539270479759584036668344603501243971750666261526226607090334538003675046913370514825716894416732720225761101454659407934656331451393901272601405808392459230988410159296614525595013568699608051073858907391947847111224921775409139508824013566250237555232204084397110907030046620311263607063620362676310982284984517489446048856258428435054358493005090388200048176049175452794936833482078744777638360674381493890002178292717310132381205653832698328433848608677254686074019614689977351095809789565550014647289832842865469460090261167854116839813770449901386256815825106441795050742204006649431322284486533098005471980339759717581910324137918909787812858816565039288954269915071857105437497040838782809763683261107622195999047397982329813152926356855029685860669662348238905957719288109663454226842116451119283864159893949242528180223725605033429846132621775524153861291254188846220672979635926894895956076800821952248553068451416633269349035232111027477237944285008642760071815583545057914357298991289425860768440899905591943091331526199989567743190971599289150206322529666524479781317553920386731821418219240579823657876234424031275921063026149290802517743106145446560476813082241810551850328333640903002554938694601066602635772266650406472501689177694829951252229368918039493856427033496787697211810469763934331340770174568640981676306490333963727169316304851058841915408550233288731670088973258607261645156770142145465756199204648440466910552359981118806678480542272748016758587488144778994596828088741179671547796955150759652513644578269049471032501623586089320737696452720914716249386427480240289359791897695098724337781692034060035874507288491812963769465903991547501416941229939976826687533962790992683008969043050493498448213739876417895790788395793725792252275905687227671128376191016646247031683708660542049564758221642130274595896830002142342689078708272439758045066154984219455064714929816343335046437466250001346098402654385323830107393040864298105307839175308538208938086367849356428618319545841831573899089725244298865951846706531876122725643428853810849314231212327565573982702476384307641588182303262960167484988106798025553216179325347573775792786135870909639644994530425620533882987411871825972896010211106088291658205874792931375391934576609898592085508500814516890914849894417293129086480226264806544009121396650468426938740724588940469012573978346493357760913079149351873386339231630643836349610719108991032571471210544181238333136541200298440641793833136542480370349864266089927324696206885955323182055295777210103735427168853581731816506638010230793717505379398024951254044039870867143753542273064218302329220416624224141649914787214947435273433394853208309715898537200535401341720515884570412364967803681089568994058748684360076403395025183463056518607074277528431189824161477503801977643475365659972383205253196505289013856036636834309078722014285449115140927280171446545894353064533098829743471998157952229863295746739788545381600372745681861213492213850074136727233207858999111022818907836853942630742526250696152203569460606631286052883923664790865824388248888399867425597036658791939102368438343366600131576242956250493616785032319137355621277112639779277062407350892971346877238613308262688191442339237842469928408018604498304219118588114752269405573916607775756436939699189245030085835063064534317734614520861376815569318244989908768062811919703661288991829835850609693611153164182214353655216776251344229609765931223303109309961407067294750684699403523177709966273402692595624944710623549187311180262477936728931896855902897932236995281900385771981979747871087472016404278680095236567711771421454192296257936481412338908805746143718162954008613643807873576329747914848993031240123027903607032522759730662452895859123575406229075246314247158883098398246882030947125885207217508699065917054999200183665550272808290268472488729540880974740147172293924885475526579250719637039844048744911850915409642832652278622215090514609047568498900129935271098191995656714781959422084106476894225264337904436126436337087946692043272038086699799623223073693743421171703761914213451521498677141115178762322445353847065281018376668505419406063664050199275854230034025775984406568827905031740384829618711998880868128701021842999027083487212274690339929437471026057021704618534414401266645085989869289286150067244222338863461951028660615578340147590437012687182373715870598497023430495360058727034665443043691468792913267374372077658740198855954350968814567489222962905949858459313738109347713869218592705430187443290951714641452246237306885151722496683780722093205735346606307674753900500190598696339169467116697349400527482608695445127677438245016493250255381255392731489408782482692230981444460140934586368063943485092067208624121422862130575906616929799695428964604246969425342618922416039501901738557654233686826756859712543080531630751877608490567441383294843964373445807863722149707520480161023274789347929678785733439003344461550336809953053788910239537925899707864167288521069367119176342825108601691145233083316596846045998180647427680868960287717785582950460471734402109578872149347934820710533457615566153388543008856729236568821379408782749672363781133635921119624584078627085646705158785778114442643391912429210713312038328303008817761841660475957060463942750274213214523691492230638206640264678700056995436805924826157163103825515247447449150553778391652983953601491412391176687272852291195675033808128661890674883760814827057800400989831142038276472441997942608195621726725929779136166208207089718445152103692524136397984260200939945452951491281943121158226509018977146225068756131139983783716492670725287752085482965718243143930510685938808049044698562549448409267706512786291911645274851491237604346299112560380847278881693356860276553351664563160592693792129810458699252338690575504010661347218378223675342422666353603740058140421175721021850908481159118034345629545310820600146812077380505274422504622735213782886272984041254877728381142057699293521429029686066468000860466321652135272463600406269663837883838431124383553171564964504288404314952697116549821323740743480833455319506699309787602693663057696478578987410225701961204327419559176510875146474978325226716491393695633861053044430267005922258808235643294750848754881765162443512680195806917275210289149276504691995052995646344087262541141825430975328200582279213497785785301866890247365071017729018737905609610249732079224454858490632405790732094595849861544537004021882365063721561192843029979877341585110939625633148501975005236447512950477456587476740556916336818646787821304673797020815062010535472839202577995030577295081271144579065471858401081097475255829809786003294991420410375481185572142846051279635738693998647948332941290287475396106526126935219927824126890073316406149061628239124228955064827836206515089563930890468581362010442269689264005670216094533594495303348135568650984532769821394434214710231092470247056549893168195956667176098397794729989182609897182715597361054361896037870923606252206018316526860019074470750207222782627045851878086737249757651848634348893865365929004392520476076950208189178789647629662901732071561444186429894609718855448475621132272703815916713862610641052976583160871402209829693674910010952831143056292525606981699561265604585968554185611686262865386484389899282349378781614282505625052055954763531923643167388054203067245446288952160647461630732920228920671988577466164880335284401358010836762494455390384593060778316005258655470770532730154710962137398625587095139656593422538527651524527593759199695273037757634948433093624698217081093555986770403368762651006504566097274974379217027089899623058963595735194551715146677528126905343936692247423414608326676333444045670785843556631342808281053475432613534792137557870041433803812136603071397721896276898458110385622911104337153259192320643158801178445869443964666813870254482227154396184499484178567732495708197316367779852206161609875898984776327308597419256227426286353402340308154579653016206745923180832465233228661992764968191189357465818603074231430629273458021428001494745952325551383656743416544612550273998855083856155228080042922215101044655106331460332490423384729876032390995619152370328476297507387126553104483847632854495824895836388474768878163713314991686317649139272887913551565686200497144647787475138190854490367352324154722065185497399108427627059424180164550594711532904206891736154769176225983654747309941236353738181534576086711877548824903874151823326887711072481275909638222414210905695442995240095619681938161309475483496858229493228380351616452539294036956137894379772922478388790822134545368266358240371632341697271365418873412242547812287422184591633826127620599577986878759715728055905408088361814264787544445703066877167453521771677167214014435930402038631277654782692211407121801068411061879494583849099065567827798109733505937159455138447689520116213607123652200569647460033730046441370764420583636749708048749963475518197922918147679718122656232215614576657445683025694410149424074631949779046178566791078750510458818773919526842362757867056985334941249622516176913909179315740309150994872984389237813595171034250191576661473680770611640570777892590462145594637768471514876118928225228820378966481539798139656613895248430404568320221171108606263139278556231600926659469785348954191130605572007430119990116814747290833046300281239278094224875678022036491190756224514636315074864150430984278877044983453328565122979507724171693845691940981015048713553791282689742231637030335209527803561938438160987893137113761876107317056755100927964330307841796950275680054948383147113323348879378758220563463593948597137727131401685376433060913475978188183416703298180510395143719140152223861521541827512192957736584166860620810763607055909249730336844407363109272556697040864168861298935308710844310320562726497338264761430498415846995305492115818300106167313807765956434788305894040768472460972914998908280199503806344165012842120368754391559767755140958057308119973573008478637256467494304138487640670643207328312981419586309548314145888466839286603054326634259378938987281355292045045315952026501295250020905355108192149149883160913165925875637608419897141858770828457969909348328561464816905366235431926212225891592168862162295668878707802654319926366744806305708829641989169428483424671549424183552728682534229899320830998053211209496930367311271569570355669843059110452236235898489700784973035170432581176668616379200967475082204282888378534869258862402696798053142350615735174573024755882041873274720382134421812462332473548605469339987544387310622138616201162036814682114247274511240566629918553475056956860221813373723585055318525723657186087327197178147017739290132229931082780729192136868702999353584082529697197542928354924531419563861994567549879651233434644161102976144991396334203552993741231672815276906269042439049454961512570624101744663485583857158185644909147573993190347524660742796579292154626709208551493523373721053915346040961232740276323593138679856266570255535749119893847011762544649815933965465669049769369083766164195963223009726303890383437060860037596857665058853696943913834188005436198669377870431899724178797622993538651384627120077811898819579898891676507123045463506331847596371398356068230683005889072142335500096710464549752438518326118177231601185784342199434977814774694145652711700256361067195411650958583253336599460569661046415468659290167100112830853057263219375605480309487919850064068024943696129867975658067439318381379294588255687224974235171285113041628865489404603302284596704060898576817631584690697874982922416994366758196124862411269553378570666219701890785036335043710183011405770798688579867054248112479442488765490246944736093643990515902714656188302304914931763338491457596627709507468855591840450530716588732713854631252913412507180336282365270339884405330231293682856911388232264417530017642962158076142973149607608472344358920069490938224305386442306203442921342923632379792224682491827795383719837401881219033940955181251828220974322035138124131728468577844009769780885669697499185408303762416001794518396461593769651541944660431251017938950240863492699842733060430850785099946018046595240343888783965858430381681581735475328699845765093689153786982180346575614234376205391178043628437120994372627584887828301043299444165490720450045796807492729223498332190460313688166074179121036736856056980711416362952554653110540315019602685726350475764210485963300367250296439021507000492092347445764397884379958100851955830508551318391003113210935991739687049388318293091727497723964410726552127382500430615526389410597677793041103417014047668586791976205939448452313955236974990913406306025486255250671449219345145163089172154215096372732746464927776766085883208230039376548320913064809075312473843964267669913545474800930255305674473226616378510983092124916162471901454255496984406316229004671886973072270462549236020459763685763559782199660904235345111396164729174441626110911932232983497316219414320617426655143898875671275229246400499224155604716292200817577902250064471228969309508461162281861015720003728235906263049761228441973623675648128109500962404749506920984328897553335889616084574524870734243898171151694990356674389664805778958005055717629086633478356407033363029086997545519114466599702519632886694968189240093398102118535573896593522144022544480909926215761150990937329301874520677210377688571998213800586959897789907679400321935104165125564659836799039296005053039547063073936212588400208451390148957556113918038950170099896872271577942032726502169152103333181104838009151428010167940915499326420248595072938915934283594691023151800832961637660942676963163243156546034985276169493059231886509028996895954721859443686565282519629336652603219536269618901981472376303440109950307366700126426687795019462570160129748250855408040396721014557344968552994846183790421146812848018940006615840345896042346856911943872096456188065912601088109154312911517758586811569081106954320197437573054955960984250994298425878426174427499136685287509105908166262220407767514313534078290417615248284228674220366698242545854875955321815844545124301319705975475945969582591248001507349477134250973029424363522705198131424703111075005859060643721409561608135446056613065582800390558798649055934849264351442665617706651259785632759998900413984898001168307619509739716721986308348209127314408514996102037132732264372427372778681216627397370904563892599892219474440783607594030946065309473677433215036562190759574094180651631245910123918444050851686351561988382963620376561385084831948791060637445152727881402373999441264483036149306590774180098199490921752113415396854992294740922163211800636691851641755671154732167612413412513967529663877163301377760151026292428647797960768434452918324798996344663052968547666156585460374851261802339678403479022035017884736048509532774723290471261882085226120774401496155457666664908327742854965149588948820972746141413806392266698225058545312126854692992349342899022142192267753515244720065751250825633208897953413396673658095945521519331717626640443358156557876587100307888760287293662208124889456192771041945969616843605971703970226112619143585561993862811950096239005810215228466594694847546160187206933002908356322503646902207179083577314839940329574275701490110411257576910507232588885692019151124405123894762271385377445748807038372562804833302320543463227901765828322053954120478930104342989215062143672514560761444341919869367657596280472627728059171126808603937545012641372861244211275921430151186325741063488295359999720869229227647918822961735659035752420301918250719753063680675434075006758258942300438833513453610268296888061590759684086548419601843556298835331139708894880658110809113564859027999929632935479756524359849129842264096067925117523300878228886357458622366377398571314049040426523558567305672337863313072279536894395287087558271295512612323730519115785660488636258185145206317095926313703305290134260094442164106643984036285310933449312511058172446742521105864813860393996235802114641006603337876814581884997836611169959152977565504257547463429937017286744425918355464051346793993888734172806842798332925153817482361175277976331026712759093574987359655448017252821673655603764734464642370347899677846361381042527246713856296092745488183727537687730665698866788304042619871377661912270250218763728139628127913277657996724609958416758824084750549013672358572671977943914738897772614140940833766606500086601653336971906165516798794778101222377343689914234742062648878154810359975342532291568183798043459478974392154384395913467939270422163621045787342523436010791460749383591353306517061079605070764324101398995439374097082141304386622885015416735696664677459257104382944218221261415063099802510680975897148054369473568263197072973553101146492307190550034740764642635995233304388090027732630214009417933352371685151636346177405256893499228024799100857174074803384735058581059477900964341118257759630047037469740633512563254788404349237482201455229061572941492175142430658569238424679712247046986939931063121295079252721203480681127710028767551220577246250219868911389082309653412685501330022313226918360171246936280892770167095531581002092432102888636154886490570511237871874041926854931883606874592079377400588353746571320555712334211203290149230313271976261628153080812038019174135075042595655015648412959690981836372544711753490179621117398672689582105834632380079313956085542251428952507866992030452772704786383217394968910818391306737642569338024611177970391028773487799614408295141094626401643207415393410504186102391259824020268020944025927524609820933632016746907697572400917399782148119324355871728504870709478924913334575005083988548123013941268559402548603775225096133492157046438651275288269719427301403502772272018174429158406906073126138512365712941943465684983855395597709828979151264015388626311779109801620395344172276065064768234635681560778763258742947411381039644733971279622718630607672548081532866784898497024754181464853630902269628365798405308981364663878535166867559479805171470230689897696945082244046534340473962422688795870790892956236537593692533218056876006140919707732262885247240198969480318937772940109697969973039890915569211064553003027800615673345938759473173655617005726478554529399110365002903320215378894920870412586141631103126206917070090588980175065398868097396343815740971557666332693290266055912203531169845434942072227365217962565484958469743461124044103647481755490225475708411338703247293215847781314956699671115016285249841426887335150562351914533725775625704115172214096089617662239814887252102668848305338905878616088416699778003361301271937869938838644537930138264930518569124369135440164358908689111038669453759417626503644057275277957684221154849997328795686583599224826400558534588164890988154757980566101567677638008631536703379519242142974393989186232453864203750482383643563971665803985529253406149464912128190589888355262793261102877218321748667632996111009444770373156025543734754259144879431523905712518362581887502782492102989315802345473800329935314020127680540033040397213597046612730010909402509810873991956695977602679851808265307831860319840551235824459942754374683869149812947018900058284044153880691864157051926358444901132771669535064375958398167217027628760018568675774197580371230998805035340008746739325503731656824286864238956147899906277181997186813131843453780041093524775224349472776758385328391611274845486105294014963445703391354397229069807064064898900331686371557901501495415138647692583228609379051525638188503999433087669114924644755933932164939774602939753998158489868915275303944470012445200420444725625261167222257813622434643999694091880461291003019864177886760945311445208229252781549827216455264212421006145740405242388892359545805613577684527942732303893388890327035213104773741801858047578002958150575772987022559894149726520410306684522322988918952237939145079800548503912084618879199026915872126288370110622695203930043374803987843944881374067512163499438142044583447361762201521372405075544595220802122834509536219962029501884411732711568349443192782764384790434733759277266392056445220996502437848389735595576991338000326160965013896980568168651131367337213895124679717267346726937097945917226928687786573980585955943043374160698992838482569008711026374538458652873638383664984929318153892115937653323201522344398343616552498647344422969814214657019025412337304732966925814374400048755085738585810861723989099191256310580999846147171144341136362145694275156953632178078489912367560930341987351128480211728791298921842775819163766187855014765420216556043839087983754350738841937355519653384496309474859005957660351413228167019216131724398270779113245311005175810886561115036681283407286393550091544652647743780953446106612510122959748134068790699397990158802499629245065066193491120517911253032535397224570481018253422907523546016157807747609013348368943980271285437365928108890563467252931734209487724362091273745918960846136116608487733423678798305970026066762770372804478332853752919400487083381890281281722890470011324988017475830051743337270935753600700413104565228579703587596616644029030658410000420852096503084815174561242326851402015414776138023753624070443514900412243664792943505317448073503629990060535913791189738539816835941509998664789134170522019283246615546594880891038824869929599745890185775772317023221385847156940661680154064410501415969046791240866429952526777799465362832976620512787978283569343863410576862173075740466366565990122985253040838478975160869404082292378127444463407334117132058708654950533237048504366734554479225906850728013967909154422195455662283566443091976182521851637821503419512604891151350788237200507073198012657428383799812973953160750489489757449961173365101959553212203621118355127116132684349523733746486629965949450459949559948095887834861210988072596492486449174919758172856533156683948998844595745441767551076943532627327184387983079463419673977516358753468944899806888432163502623861932944354648820620011604641807178851911688790799240285249497886528744908048835258323318237455073591373791220381741134890433275360713470159315473229375315188764310077639348861651783063141394360567436541519919908033784947914255811097951371469802034446559066649748048256524095540225032355149774374740011153849736452937371374234603884101408913582248339479548135573308808053461283377817283911104372337999441234328985987267495563042836280793481884678099873385940586375372126568343189406742780538286989275765995397258749088920134791061351392063892681401474927129171523816977027274073830234802518323826449396656938105828463648923076828653485226466177375400286145730446881399371609756886784371408655086522763652152732041488068435160576493796824454929179861597354397569639026818499524556889869903932801917686369159124361317978391377837142128000658618774176205468215177685008089537078112121156235280810815390265628265952024511104999666100670360434297537223976453666600685220981359500335887282991541877130038630438355206160387515882749600958527988618798283356440423674735696311392019930327475535079524592389307790347853304866859128818885710404855143382389445897415547214672268607674522580666905593102340650254175986666466711108932416020690704798342450641521444980651883435087680220041914579327281431583796773240929076907342800503717047900341579539288297401916107778144344157858884998077820198415559198324497345994667650452100822113875954208969504137957264614743235446061454433893918425027827994907918244589608061592791346686581089108333040456445759578148600655870192502764029678991582841774213198019184535995354936943466202593609510980381726647850525870995957538695726410141130592481154736390235842465760869399331672603453234224041784845290639427707777252268689908231613353304733194361648135919353691904734134984975218429597839584472474107703291242806737202562054589068735310231535060209418002611236417671333502309722149502793339787843527933180472692826563729261428003879604261927305758051745024555227186533689014378680619312008345752812588484895111147072183772399900142859540327015397875129018739566431814160929819612110285914759725136494001659039009049523459089930870721805624779223671773054010014429422879643678949129449263948433216587992792714181843971380406485112066593954332274710845518336393391359839820201349175081032486892401850277911447074019052277118696947826246492046445677691088781922087817719263194828382192807269039497911299028353495914594908117986739820907618370958407303063648360850616305292008602889638333882364796091620416180850678619337213196679066008766666617797124193321947075287603414685887587236669052996401551941354766834105725908628955229894518563733503892688608902222400934795912578659273427096732990400399348284907644740134857781987255584135669290715715641702510793307330131013010171942834756182867585697795533092299688447765448386239084942263039310138035763298005063692705599699004228938326065249718510589732387765447541425107365282886414140576399285630112019190615342597683017043096856288162653294722854197900928215639817500238154900315117827689021121148728480745472439021287631583752361512105457727475991143749277315522774882204806899441802278512470844789054447554264324232191485568751561359661526299477936593409996140484515787253313720539179861981003180734820778512543760752755797092930108399835423190011646364259563622137356696561613562313892037732886501532388348095896465848869861873595380103913361231877686415890005401699608559213967281011940036143104289759832149465637769222596759020950219864018363781595973089758676442572408998771716381653009437169875368500590140817284935462031853669503456415357743611018582575426549301147563603716491128953476817592252596977647133767515088182556815374435147764813056640879792029729151788103264631191998702075805400146087228409576006448642199774956900232062052399676345714861238850611417649741229418202194633151590215013600257358980663115795487103651373506933044377658564385980635199657421437744834292788789160721935450747662278880622264879393911083567245358333752168966453252907133228335160970132551028933602904048169531438078638148961577835176810473698942618114937439602910641137409819375550240951305031459039110710127284496014371772574436296666330801691747381844063526896366821934140798084717347552956008170787606720725361441238266898701001724327885881106709344586131254416762965994885153211104078386833548813309356725310571941811415890725973536581858289318509277895658830086384849943369937875659474635771521142014293927174402366841400411336607142043819429248970833761529858506771697768555430765786327271400373494789413402600525653420127411993245123217951057328363796038936271743722512394509077583632529941204347341035919773768655585669828867858251308026703740789220561061714914846069573638183216097670604967228789201109733742547293011796782758384495762374358364901728189168718677803548405793884702020484674975469151782167623432570186039468845320526671323601227435993558118836840037898405845137657375583542884170806301311979593945760905888267692583017708681013286632557009871673690807999616080122616979576246379388376851168664621888552858568988319979678226864823217754305868023245322962796069795441990328465227963323092149498240540827488247258086204074254301675539030361267047416608250630856617592793270055497737181162698637449248646340312587594998635400369244711465469139141741770839222540258417770215147457689435443457966587359728374691597388695614370181769821858507609358078739880525170771566209394251020709118077657840844591775668182222286612338792124818234992670516980257171970827709587375126149178158172939523637610876337247522516625194060374379650623272271586679662201383070415842192989675181205353123360962075470724668246070484549814196644485106510368697428375611202193286549316545292942519292728229075930823307192038475092442108095353194825774757755550746101183349818960524094380974507767508541402605004087918470547539837523060754237591156735042599946654642675998907178735027951549946174150380661245687783185900594903957125588590300216316700072880053030860033049238524891946118226301281144312588541216751260482212247640473720083680234314561227087474785606859443043120005059183590017613457731654842837464117832701796615234952429254251240436983925577190833148695742268493013043365885345312056700025428598598162870013754745843496115358437616474294114946737657068551053808153009604740163139058060451003976318222653604689079720443642170345619001352524011132864803223687945385315631723443692726894647593134656895720641295508166844034833600895890294632930950693425790316389193790585307069596698580944043458672602500714741088597504897960553491695261591624768440868477373163103533394451404184783051552143903367697425820694243266480490018483152254324878884054931030059207220395831187261197466809755918762828735415941760274153960068897271677134344441761500950806467912857810483014076446236478558691502434617340259342616516002881192126348486380531281489138152102944362273257507115074550893357293441210850928951093287159930802374609704116749151499743516608228184695325677673284918924687378638590876000297002424650032995600812209594086215114093902377027087585511050725165543405017337973782788076676580612699968229404126919358475761704939136828621881364512697950552705212149530590278207960360202270108598799313609922110526647701909864021061164559599552084014418660840498189293258132297810292914512632142136235495825899355959298790019081510733742605247140269492153073221751550040194346436280615878812083341805683030567992873442583920925491934511140084694124359541259390067285605047093194150322873544650975927094882259817970724463223315748215585334760460344256418893261112592634211032808330167953525287927300198751817459538212647335705513324995326830002125397404874196201471223031578630077652982170545614342434633032316324939502711073309931943847286292635976481309631449283169546908285083548380779784199493830036136648668931119604208113361726141769892188903611287373546315271333579965891170140694657096863713680621924026525124767043864584303950022359296679582692697030349403938028044848117517370930594786874606180545861278214369518508337618450050899219989417390996624048502919767365834739005280425391630399191975511075652901035694950892998592470309100321446067658931660563173045678576126052294541880278222405381911387981607262310957477711684947123262005732232766689851431668390134400944174127525444411645829387593938535920604839738437514122079683622159891457150607141138608790409337337673954989061359161908114184332712079542267940358764773161530015394991522349635471177598273143638614473932233655711399990574373920833882777308906881407591259505976052257621071041467400472235676324371165185948178064195276846380189932024838957746770006406994085407374180401594333822805721546698379645094168705269620879837887536693369761854827203197781836550316163301732051802356314042553964666798090094083442353295913039945641188191945477957078241304397389013841999245343207424570232999581011406676707075533835283073025607661514342462382076893220054831935559747706690977153981593608334112321091425887793057581594922713599076296318674197420502831523233566242917707704875861215347660737377946424907157031661958823517624296240023340046997740866865663851142505007076097419894945599501262578497312316873315049389846789112723945599218811927648198938752481418786743175176586965571143891810818096803106645438884635750342567141371048953915596453418122863824301576330776273815422261521702431108213754034353617325331118157866061492604232623110135263372281197721051563973969316931126762580224917278596501083143062567081601784534181045961331859306344473333670859528030594574456233812667532362293770599967291020564281991858230983235162403263926111832994532278281258573755562495752408090723299990603982823408540831534368340696129841352565176321310841903121619359674248116228790339937644602171514099816102685072650244086437229602436255286366842802003961056758922324189470268802708257517612745499990606026556995887059728366034662685481938559986829322413902960075744029280630554456337624211079330275981418612285309315786425414641827242637268408189712032092867277494910595300394336548574475334720000677715752815389959747169356071907465254811643760251535547070093804819228515342812979882961234285462102703648351280845556562068980121562628565692990413243014173699666641263902534010362189286631012512906101715770157944508072125206995294980103838630593264813685238705240950813448112398190775518575823736324958530857679257509707147136228770159058595549137755248217042030078385098933198667625332022218011165701381519538973076005799543960952351376743833364173455761701546503987066759424509687625957363654651851495606010352782765561394075835443365838226970744701587843233016141828026348592928525841294974944229507553381513839487342596136526683602629767661105973782965442914076439171812255027027375646073248280591900497824262289775098884774788625406270130765759860846294840636079224055595176217686025821316288243322439325828844822431035102518133340617424218226688411108795437347949843975301081766088148454773446404776062031887568927456360937936699572748019664764690623734287158421272019338741265592776589332299006805212000616033545631519841807001235238397122586681780610286028069245823990322590068004328460348548636432136864329440828188300162905900020928603010634950272180773474580583076827395726391748014463794872222223399919667054881582219364080821479178727595311528933284109578709222533725756088059879167979450375138461261022556502171753846634997258588914221465485826237968984011980142023702858465829092105682725247029554124550624692299898325925147377414821254355670054588879304103390231835165045538703227586974885626645431950439742493952577963228046375141134555919412368282043923552643418294138465542824070309301824484601317981242706011269079853692115976107462134631693604726468685238172719669344843477850733714455551992931220656233806974769140707582537412300940713558856214857933927118307731840530880652101062982455836895473505296598678051141646280400984491229307540760521272632306632762922366486874894151251149430829394493273621924497262577108442844010340913686154508761070796468845637565569170178706928462500509532653883681095921097136780408507108066497006765849961900981622501167707792559967146407257160194097158159395892423911148617562923689713589400374240327826951805408742489711479763105386035533207236619174729288247978973205116787392655800989017911799282150742810944781297627101066903879716287841942081767713423512321245216391574894930644918547871682267960652908871814848829201588564048314528873119776537493217341250975165636206527875719681844799137409481733935194961165844299128011144305825663520190175444637087754252654063737801860898470057967733881500380308558981342201977849916583445981882186732719064773736427933051857971598321501004179556083517481488575056667195289104395590251208657396167054710408468162245479083580278600780705078486370828414703669805849858830810850182010500771225317734190999968243842837488226029961634474616859198048259789571859888217624733142425010003020896501406615146261946880286414699160854030156222460482558261171354873442332206262827023678953789781130656291046064236343545810194478765200378525227826433321003755477525116884032126146120050849793243057516694099480332112546200012831591578355422308247116855318386406845288254614134621607460873662908861827904691428178787011169609831211152962932111478551485060505446741487860910863441589877200828321929885100864443564886147754011293672523434914139378387759016814112183532027528249981921202557165295475371752525846521640702923339901828188357317751583925097350605456629906435816448150450958200711970157250675360446841119063572796894972360937175926582679284621841941907801985302601918183631974400593848353836175180708248114653021965175912569423420105487392249637195910920402982367931645533616094386459877516991834484036382946448981678757978067483352926931431557793912088996349177124960081078638515927016831857161093240003921661916646778839758455379464449189504679664791994747845419830534345012258487410838266197815372461082453403407790574893591465673507287099870143859560086945942964105941928991038814686900837256550754772910167482242367301511734496931289525672946215109195457911512830941962899307387225533784802102337632164629750933056733305826800029404793363699358297434942176661934786912146284602601733931285905628422613393320692055202555852873876054559285669381491672531187437898630218519941657884182032802942464994388513945674499499988235926570942467246789256232119538649127123068795241292988242576536235052443214805273422037578151457230525062203370137771872596420896815029457648039426825648153469827952955914770145376315192444496050051356499512651282613559036715634666722442878890194794981513253291915749148013966888197578382987346710852311929506249231937366631415764147318332119408935377929046031130661561881853663284273071715360310311108174760514343032804238746647202068817509638945109386159102833997073027460502164357947520580463259051050944797361952848991988548647994739790297464836508655516195313725201186201407189669269365712158915635268907801278604441559363555724523037137458069631639699402626330420200182445535452202062223415399000079106737636973285265023969314624152484336393217972961538542306798317528508586405244060311993256615572124061578490416383909833735924232170318916540423366336404537712773203419918649904378978709216922696818688601292966007139329279337286950760525048893615534765004417853486633150417295580355035765898990547060872807885565381592850313345534899179420923749855739808161035250929112860751539502352306006420298357075261512093935423427504204204943761433451592142392280523460732162442936312844080975565820780430615675366034818260953534252659933605978286264010759863488965128687369686595745270150245440662329835681188896564704400781888667683982090492735020131583135499241295997127629793302136414654571192551686782185085937933523431848492930315498531820463728643385773716321397007502118822664742856463949726431973260110289060876747965543550990324497579996235104379762498752053516749633883091427791438207377269142643071140393229968571533793669133069263137320195716399088965643928925381259177353009758098106184998365415468557686851046181933577190053273456959511640565336148477815071934908647119526401774937867613057313477894069980252404214974342384196799222172616597351596345486384637829599870087418301103910805895455236292903435698733574377788204235259507621658531338772691482704208015086804712632456307968757188190522241282677515733523683032337442277276205604975081606642424992247808071050374361120273130439490135193290160752409621102148094000184121108923650493703852159204972661499023659877831546143772910668611456031946979313481388504525137035019973910349254540981779870451241501168584544517435821009037579190992033195863932906357166124096453871812545620533328633020055912566681595190886573836741792884842441918191302842626516610809384448621618258314017657030627261699427718011636294673239560842740395641340467122443497025578415328409157275011730653945434889324469168958743042066219563298947093208176754205463405821140983408785326486509003483196822067362523066825352439251478107883568926793742097408384716334072291267632673847624792164640569397138483212784744185419759921734883594332026663685069447865060854229832360148573395228947463843884886487238368418262242618512840012587594042434476904177215485855560380982170641084586555622698350917172348991459665242227668961553556157068986990460170856998546683952615567973572647677577801381514190958096031327427301343328074120771474302632083768845426642681026396429883250254503696559461540334043834714183112661432820204954455184704895701367709829182253505922767337143558153419596804419195514152571698011611290421884860194132498517757937119911074787730465965647174163274977514903213138386279255883396515492998908044555241982487581147629204259693256435826280907535732821307779748752113714791169651409707381294047492514675139056012641118591632177721563712008830400113016313069407504974963879622832730550269575693483478693401751610080434049717448074761908912304459691245786333907610104399398822652010939587520738278000384955174511830780206331065477090327943205983390688880868977981213283179706532641801517891913053298872501680108695463990201689577657724595343227185553455468328344214406112730770399170219363129924507757138366006737391631826807028947616013405084779531103263494857917864875385720952001281869080948560198898056705795253284933917642483957359942529245289015836824874383695553055928136208166331487837600463232641538152122921607373597559252327282954955873708157339999672763283763471387226854917628020379879788840634293428296224752052175002880590094963996442698169236121851929988074023845192780828951988057648762017546230111188498296734305089966809009367533520840485556854019689077932077411134420193772268565798510217116775047938265726127914507246458073668654230189069074803173677530182519418518807551365966475839045123886103684580585573903484624047809076712668290558786779862427044302127772057925607193498864549505436745844882019726297275095487151033492416088895458246195883598797844681711985304569945144791549535180104544055380331020003329402291930054955250100468133256399358026976227278243934028915673648761841756204064629866479000314536477129149442062064157770044068237032084635632956280245051530811333071245480970284420415513277308522308048911264981408774968200523110451975330196476717518482888359261087607600994047288983473811612869634849419523710617755912342224097589231225083697254560827815179542002063581386339433262801405011777148754104293071400868790136354598723148117762318007161151456129334948745474693400319378135088619222618072025139386303064222598333162929894326701097089255307671118916744570940814852845586823865028328773987391403392109367186452281489084539214015219671543940906212294431488673899286394278796789232901663055501532470123609041315348824194760866805855399156844024192292738083336632826369048188329532837424334810369165864033422393013814876660684977789667227467387417427730421525272368811056420109380473936137776956523355703010832805565953775788015150887602836457862775833564261150970267632976828459396244146023137736487017338591490351127171385101735715263718918022089234731841285473491624171608256499187223247540550513339831586209005035273827103262815656631272262495154216286122909758531392453911958783195292315086016300709074022506236455650050091617494041121152772761695966057339047685266065629285897055901405914782820463652768984981037952229739818157018200430378098761059889161076239268479592937612440235755132336015123036829689559289151040753631586733248410239062405188728464994537665943843008071777604626533112923786579908597776578048181443787630735995807098631292842913825334112683840716205704222417392237681250871975238314430669394544104351948366834731524249679662752987013009497285519455791406033917394674982458958065665590052926916834944296660803713844410213719465299953063834901348661730346464937542280622602479464702459807766620064486843797965395460258555548621555546377050569079954242889365271157103676226554700766342002690641352195936159138880000556236739483300875519605432722701513235732386508050846115664138559732080361025015077493887320135469367392822579713407848088550317121608235386025863255992337670944945148763385401121027829192649718794167141452327145054661395353533708788078511412012396545764735914075538741385471609539065938736130858298257742697004555365313620876306730114470227629113261173182478907971872513965012195425519996183151042498264739748374186066704475305588074051482515317257477741422374512526147668691329723331006607747240663002905567443191490558045102128266884636166169991022920113335130244799626304768601123648500271493372195063697337420520983425943309735948393825645925201238677909955713156464929747609503898551725632297326415909798059194338418078991049669673684962836130714598621007151125533626079469362225417674969045032613290304308256105135092984731076935843864288617315376040287815745760680304756688261530693116011964457813353512452204466969840112469023577125856125868059383997184879920856857783741052545340658785118368001483151578519095159275693539612625724787971010881208760828080506465902110595887236504840599922490898525396643675877223454630608668967531006978355603538166424731553125907687932908628756915152105561640767409331023857769697820405110157434568431494647705127199899253449338185435559358322619809054067221220278494268699977908856750136507290163361218065706410432732220776156290584153297491540158778198840105745174238944701803976834235917916815325228233393546917729370064168915743644764368619978415395859838047856536117360789354008209632295931257902183339600566873183388566808416825087318676954451487974153348549053265923123693971478599615573723536844153924539204074955255859982571199146412521120491824166683655504966242831607900409235364178864920340615037501162166372248197509749214057115884218262655012044662105038673539861796082948584067612386057833974584830675554429374969051192230708218679925019151378086318034046784366970749303106366414044318040815499556671770451019043107515489403251563088673962431819886419943247677032108911826633318893567079087624363496923065110815573589837788454194151990145225905249770212549107776606660587683948094613039785470756868464997869871610582632377905864480342320526944230616372687166918237692089788288669806442289181961556578134498005644721753603206823081203066506542799401089960050909764309150015394634743290112010811004593100439499631211808629275797822939513695539798375543580675180086961106822201406213693665275874995086071316086924146005427297342985814016387579684859737603805966482229926465319687841454960619474394479985448879871765845396572478343174170947110505152908995460107348202287349058843795944499753738072095741449959198949668111837591432160640840594882864188078447746785310161120282669841743994000276081801595748314948964974592958634329865681043986110346234386451633328632490338324043096077503816918169324593115029675901099679793366636506243440316692396825863913664743880568363000886482242989352300042893628383920394225559261637213334121022269461323720992560701828442835852881691010787064188868427097648557880004870573674105232292420019091075858601462855232972476143832632608832082865860615029338918937885832056763957306287177747176155629608921149348500586119729259156387913422980171410079392770366673659938224568572193765064440391461085251148567232778531994465312935310001767594573242049354756195874588030656207156569079482147912463634150815320809126213323157041424117310580616573576069794831983800133924942420634984083908873706953839783120967493058281152936110452863015728840601842203650426225350872449714169833175702785851807970158903002552720377834862447086018089549691731817904458426357849026876229541714111066342952892824478797243836073575836520368512683538939232528070702643703759757096941429153686045690201885561424294055836426150283372870767591242050904088978784223638260248888253459910123202674190771024577480950789226792916559920833606179026854945641855127338411176307427541045009427195153798198809861510422809599323939881787144851202125690919983901596945354271514114573060295191725874049847268712754266850944125098781590412960470585560276878412946346191718716141086812106188435772748334463970926138682253661456913524448175606213374368303572576853227530534114002627004768285981791353040536564293725641551024618577229212259120581728638174872383533442643075548541262657410829195969169817439746740126283019223708005246558112177354589103973039581919711518219816814915431294805699344155844412219590397003675888945482846025128031755875087988921455692962045850941096571522435410682954520251007651147328606100884367198489575171247105975329173300142055841372321810518022639449083369291883309655041892377749285897968689829937903909247733559516581480148715879661190349165441426401047506359006064655763467511001093147077256463123471652257070311878710034814728067353726032155861769177987994689082986424090341739857276288191430506783928414900163382658563800208788261634563917729991770253673669239546611031281881161095122447325402732024927254773289489933394492532662204254105597004382335216266789850016829212232585986205802293407361200325931163877056472981356446453604644305320958791176260470050557960496206535158384552469497619318885373169809520780202771262272896909941034595129180246013815581513968628790546600077765072912233424838658534571467369231911319470328657733057566769158944449812234144126089661297574234132535502190226695810974461948600437709241805002877784789811867927391839720549475169016473177811242397257863436432672012872354150106886769049402720697719466166189048340016347361316346847853448798179766085512888426387909824704742443799667613262753232444664472650126690412359177716424361380568209822032072700137514009385277423691033960692083102951827722636686159992960582699988790363305869799069565359256745444302247897205197231901000419679522104039041087447894317373989845154474274211532081507455075781116659736291297549670523596315240288511221427483392793855570940942312005933109707039345235088277586636506951849862048818830111394337766191173848582056482379832303372592881276744585422383842194217127820532191923902451454020833173152075090547595751042538347410612098150417475825808108152568633666663394600771561053807862826057857820074867055732098021706812315733253478581384484803061726517952592905916943514166368746245911128976493395818424926091667523889200160093082994420083047292131340082055022968274855912484799537380414913754574858134324865054747571187847054613748956334535965079915709337406795153926997061108627328023226282416202559420008163101891672538358138858699034168175369091816425816629069826990302122126025047334774159375819770788931116087463913226162007562776018102789581117064202778923778980818274907107302100141283995101454360941188861379753925152090832352195631880684971216954786400243040212380477573451070105488989491190000451145945961033236048712871855643808562760759154682260496097215957335006348785474085984243745495958452450554903405996951158848736507014828737918677367157792647783174418108897395938943768974164897967498582463725732300066196413275897640336665882209707964296506731306665019415582929223345460962243935757031854298413386437628262763950715268918374653210373692612946287020660251739877939148315683488569290384745908196783756955238997367311724876633324415824566835667649537063174210331031737691946813394170535625337636934610113994434157681009905457088404284368198973409055800221146507329398190593347856280577777118877428945513138268374901621981668304616508568122840250205439595486678008632165172822793769325050205791787348697673355443616830604386766702704171884382768059029615610106087692890915492857244055872711365894465145580897774690010376049567301193964469593598630135763458249460083651392513110948444925115342318809596180594236607091550422561593014467515251736759494149057792924939168685257381660489927642662046869949726255182767465061894889766428375182486952237259373041467753087090980768219095518401623432588435132315998022328988220955194145250311303161424907734859733128198677530202096163224420564223441415369966390251490493057725454664010948328576015641341597855605406784663457279964386790149954965617054091755400907696631587576001232608616908763886244612099193879107415399380356137779085981746217595817660951002545511947866241167055144353164765052497700541572988484521521749122926007107653884789712344205296970959791161357183181518984003469347144770171222679480488786516380905963135181214833884590052655778412449486165965045211889070225272679977168119286954178231199592449273355278509199239070517224191920594904900671882758021823838388139630056818357957985917452241488009690449758608780308844417134796158582100150728939605594092552118372718532511288850064797855021600353189431932686850311421090680426640110874348734875221308624790011467903478179797568424417553262495292260899946580880079240822514284386651300121984889710668253075088914521919076841786401881352130736356898821584880075103963918122959651276284087105402940204454570620083278043130627292718037859374559425239009104681741633735442362028129641178007225407547221092601290227816752732182802513691420393276644412060001028136025854069241210458787332535280394090898028111645716900680847190939243549869828253862647777383136379508175471079003288880478144558371253476725865656735829700085218374178018562944187851705492800960014653454053097347301363788698273404847498054736120830010140070510388187322377457958894594491049707208560841610665354713956219073827394724238312696745610092793792235578412694588875371092791504214586761423095357464767654528790750518999904969547731941812611096591695996418416767212061252716358488088807782770583120126648778094493015671826670697176710396473093695666355909432090578370643182395652527677845070283536310077778031128426965521206776256617718007924257387027276156849852485308471430402545519755177076603318012176021403379692853548422312849359847297756136817374242615366420938614664676892143388022502236378831670623937489083485640129441369632941047814372138618501970457759135319628773231208038329217361167752047993464849468551809515810802763862465260000598682586744662870957115695856317119614013929894080683704412337019011869006393248010690162704665318506115608612012545727331148035887458594527362824660112390499356403630399531722482832065105773395546512515539733643518652617643028556295085592674242877566926246551976871960658562390630387436784432927480752285663962093493424756310500144839007641945987269989463706923324781799197061387464893793125904910629871544936172599609219832981922068618693702299476060088573797013157651325487504082551118803937150493804701341553954951720026498386777474773823086056708499972752770510006822696062513345759717784773172095639059766198003737208145644895621572339706103950327933340231671147626832173952446608675668951925771911581040452546065216290802640479945831403439593131853342495195533103587735930091052867278533849873282056444362960170036956113596169441625414387384716053559913712439713828000788554469035016592411883766563917986383407553837552841296062780654428332516022731372516352025677451742748733252369854995441665633691424330658439378694306651886406853359292161301128006308130673417498896551920866941646833426062732115530942862608942868336740809161546428881458965468265302814096914761038113422257961518204491207209800734980066665422357034664420445039974541502216473974390374853167921699349425628939934816497127905264878036294897033220899312552380162454476133387149962545525225865426632221891024379223147814666051239999975700680387735586207278902648820012125102493839510945751788722497320442335981701051695798745904115739375961162174714024490133172256826251342807727875145731963959784354063633817065404021566051171791110212385327685305118976404459210213842396394361380158695966622457015152832794994572125235011898458967234735197681631768271325028082417481577712360478356812444498808579566945695550288780796158304719887246231014141885150538880143569889340626875899376504485657467136276257130057751046613638305658901732822593615176021494653629659154401893580452287212502324816040701353455912435297328428373827394763061256140498925417602362091531064360659934598184545016916613947545520295375122790547259454454231865246216236538662334442654975597181351229989738262345176060965995672397778212143930992598158761794801551167878872678859783115685419661377088265475673033653340281051958729397734556848854064540710080702499518350452475216618014373428783145185556321555391728619113728699564258130445901333082221817959035262401301466398500165088303595207547103164353596763960011192202671395083555064851331532619337079597435038917910585509603251105256747733718484793758744941153615486111433818758005995684516788819466783822632951236241571495178245192063209997889639524167508890855024882002334785131860946007540194309650019219271365978605551176256866042947165792442171642337345278024560629300886542447969220199706271645105260159025298739624522593223478446281631106259062581739914736059967152281283187103785289493535610910054194498607080901294342308211523711943503498949182311323591567627479294795593086694417262149982938924113338595171475208767897940707398390869711832086598604546214543263360108653077176885859748015587169475467150914719602268284225544307983077129219133514769328517123177200191164039265272554179780823748947244902584693864646162728629295561635490389118912904023347698492568169492194626103267370054875286386570140207157864330027982680939635502489134914957663763814295986021174435725604991151388741117508053125148979530054742451564127806752131565098355429993952960061760827086893873466863492979886714841265345374948507796283656504922737404878473916820610196685193343575206132822933559495828193616500573903186161563593126678341483700539506749812260742975351931204698380622250554304783054611951959207680997792984813170266976517967717157726898040538340493388866209277350422465771654143724545111799411755265905255651228223753758189824588068478437697659753544523238813940163900981783741828664076779110701000325163727990599959031254413766215135489537126798768710994312761625043827204994953043623655894439999182263552483566429014813207438683242893870202545787533633615125595362684121116422062100550487154349987059365085199216915552534863505793683452411064315733976449165231194752314997418767253522415260974446827743630348004239012930568921525669583898901110590496999810693385083945587472568694392605186788951629004085433402789175477696419176200084550601017426801264517356729616069387325357333306537830145044797043024931918890942512398699303380928167481096374339164070570762919617049452637126304688930852666261888985669198989497208177615718441705386164293787664889489861689941545572159439732080568404083447833404638053876461710078848540202750422713071104558716333119031337459716709713381706208808109411746829018608165582432421194997296003790918323932400133775776758999966989315429221967596792667885976473060124279828059452886370901179148198771931392792582950493824407474940220432612597876204969870346175384090657695352822106754333291338754985792341054711823987845489147140983417375260290567419992646589142976959772096457807519539073243644043035815827857723819234173902325170551450624559943749192437576415709259800285162256005051721117135234799448234903093278056215302979709340302686006697220255169047941728907114286959361341475527129990183711366504413465205856252899917693469927263246907506375160924957524442376634958509307131471923317725534287976418396430788305617975281343852625941841353174740652750297210555158905833622651053943714978963142502703590624471014320795501486165358149512494354875546817296028555162169507492781151067396774594129979872991791771728635437257106725506961847160512281024894251926591558572137682159880746998709638419386712687523801029101518696561090966569211306688991752663081697590680721748947322946567447554885702636777264567933750098374859796667688032363139669370887701803979311987502578674976523182743474079338777663798276237882305089868277764632754579508228433355737478532547788837931153159318280522044196610825852880123940725181865824403540594993601572733794936869634153901789757235977769629273544073175483893916490535223973583023104622872690063146520775387037964249431769006056345765651873024744231115733379977204898495027100099864355788035740968659215294093379733120586671902459697767914951886006112335333107900975342676178326161853842030663518652083497880508186395349615588612899074614560192892857197287832623897363002186354079499991634659430118435099105609404205846706543321214461451825903046067999155819611489448104274058787041533895823892046791374380843271027255863428395365199406883231038363023912907354420718562817227008305145520168618305701638269395210540866714989105931224980194860512593304707378084316775647359209564550225200455594521935525565364646406435107298617774791096742608880872760686912307685379465043859263548980213271164676504124359392572658044989618743644793896709709587553250535415874568314261333648335079933402806028395945300914627808011813322391190906193239103346413404305056824465845762242211444423410574037228936517360183860795965800514718899882966361431130831937101992167774047953709048033246638959567561767605765903574066090260459412051901782899774641554532367451002083449095811418241850373987013174310054417585847457264764629098997750207787363401936694455492617945258445467521987599441984568986963988998828823915310147071331846611809190122246246419938209729707131028283729374892145226446734960117666555216881060331159230076201534591332879022154799579105593517836008364810651553724804734271643244850287034659210744345179642532469848743656258441263236824286627598854710350599442863920560042354128904146229659859572542997081626870225137678298611677769515853686720951688102399477012444596918810651673569413950626963008198178779716410066795032853618681964528802651650981492753950127284567774232209796390367132844282239552464932849616072680129843545217439192813430910519453542455979019778002941295181673561012986827347819450946516055989345467376556815299763688493701405548386398355259160256294292943813099698723875840631833173167283580913764317572081776832717414494896105895004003814585402491697786016864874260636966568151277601422128355394220100370646084777707150808569884526307440505829993906350103981213215173325278023331383140706781745214520735547842538239757538657916272405366402105185820243091221629747496916517217893659376592060098408686334910381779220979274649074001412106811395627571525898013845754782768533457687867641745878810655066534598842103922813818419959988902261466326297931607557061108664098803008387537769859646746538027813124254032712771726046665545641406026881994017441281152552524801563917427495903932000605787113774278347863682623685865535235120762434134620503463888191164383049076808361060330789644935794132502482662394220995620058005933340459454311582608770259846035319518879433258324805955515636233559330449514288025567674320866346591601657729644105680451195227745907811318259916095785142888581020933750624110280826302312566901858769367141850854010626226026833437794142876831270993277940702417304569852167230146257667340073702985513302930216492980865115334888598640790507195048509247396133913964097006650947910563347935072453104768100727121442747049471162338085701847502980540579420594049039342331214837755393646348560135862351148761020389622911004390477688676985642858401101544290779200931793851709956154504941143690616329262019024268670351367534816260727633898693015790353948331283237931732043992938895707828479900903238676745890865852079431225302635124324485260039139294533138172858761875916433386014512785419432942821378734623624252122998579339353563310405143335954025096908879097457227448216829133244143408552595088497229636130449694795061657028751591441735382461302524460616898982033436604273990805177916635862854132907607528303220833615067784208596734008561348293821166536100601268556561036842059095493740253844526397331048921019141382206452429189375162481314685636885873281244618976954706564696780161845412179465307012188616894579710208308333894931619705324143800718511081640629652335484820740895655467222278776748086314023518813458984635036494505998291679262566964290508120393854468803605210345206484283783048576852566180917143983160570280010480782695331093151433785336423002453050135209367824288388198183664398463934421547789156443153290999229436056922446559357930043130634622363051968302022257306174490675534369109834286927353582578682341873193581036236199843040286995802815463101605247238850068546214382797899628932125229223323294027227553104426220394686911884600740896144226377748457886903755768754487645333859322956121406423095724440874553389116094870577305889269598967023011631720736744124237379983378814925175103272856525919081645714441256487178894093693888369181698793328362050684816856636642992568834576801836068031103799114359906276629264891084720615976190515182065247048121765315101657267675155846145338669740293962736118706793258536599559830794869772757476161085477719635906390263965024238212573854690721062215147783057323237544556742598192576247478635924977453971294816432411152069209759802593535523365669726714048745138072956117091730525368714458590909324373209719874239970991934856394945289279386770349876311845685193161405900626582850391965775323520862850127445947590492730239362376851896179844789930927266329704350886728946865901769569955251224779248720242763218816012008747056255006000906280330716422971262726155126819831956829236165069114585929376358667495895879565878178997860283040173308963008010682152194271313328210175853171567403735492452366487660242202833767484230825750295362275813488751265400821428632136175043814610127597012140389041829507295886917225435261308060708810833300307657704378985754292948298973659336059029979152444891668697019190803209566021877500641315044737018607002957731907009832504217395838716539708745972386183558783887695456042293294228196873371895427371967192353672908754696263490752106275807475543519959722651237711196957927350925755788698747635936466560899879284158810685198725136315993821229212241022350017485873400394507714524110424557806278621894311469237840392695565630013472704358310188817685187220568990007073117255088048995584748191965778046544301648952476602175527531367517905982895092138449203834473825650229179028157621169662038074536315971311195333610794533778071834533659483597364118961447884003000930922490374859815364644893876435097510530434560826389919873523619469294470988537559527553308155205713469452531883902848837271492439390136745220839508304467874270903531563542499027717385917676897457840794217358012466291596870209848982291450612960498339657132444525440294247793249923234571610638704118615224468404369140126131295759880117607050545992963381068877957770425054292950794194134823377990246755028445206614563760668763296893871664958862143522402158044878223634893412390524691264915809841709693621980508867010864732797824599497448554551577448712221310118096073840628958491307359179124701413942960762898865654119672623270419124775644090650174974709746010914984005952730196172118055676809161995391145750974722072256563799502309846599089232682730750934721011712681303522096101528239108531587873307429351913925621693898026201164605879969802332326355190984026420827551605034842957529121298733339484143788811434802275795552743913246271545801644673073446663547733891316530632952676353501221853095126222816079624042569871565333770894804106080233929251722999682873112072462780930380627260413760662777683069487415387997419845295067760831720672360418484424741611939147411268972080817573797708147853182023246576049352135283707337172040181514305320439873175317956873144089203907841137763411791343217032911330219476931048633089152530530434537691757854292636967541527084051922465090097412027439333819494201982102322627119534834596668217462288654473872658938255037794326279172098373652176071603483899474461975034988380531056410390077249628115569266792155276216848859663859292959932352037400693683458301536879120363001069034417389732510461330281568573043950621767294463169145602033976589582545977460089581777079150461106621446673657900913899384003148321251898612750589699512401348972496072717109278868499655655139514245983090092358772959586384135175530681566993048359732431199119482668973784951764666082608992139543393824177018484054437005344155594013834137224852368417226755816123994061438035282813453868463501355563492598066300982941625455467264823412855433289677174446888730469007344453253907296120656157638225361346369350216443846228971667970452144591747762565784585096505647820181854639212864227398179094815529116960795758592189497777740623415329006962307623307361399956653498391672628893005466721709559152783508885881322142073388103708676517837319777207798779793004781977720304011001073302105535041373992064299888257732088122970550711435758136954495136658679132727333400222513937619215093635348876851356677499958399696663150155982409103290287013597622376955547314989126060101659100196927952307408760384393448019966096238167872619441747617336309554984722360373148883729120606944044183522520579295344538282152909793131255523091672831752676456532468488247502348099817020859415514043673306806167501610378694464475299144591444434314991275336289296470434965831106095290264556670911764640628962355389160853656354626915523230033446542902790858785311792031191957163483798496104197943626089970514904060201514154358461959751413300851580029369686047179013799472986655541338429929765191572837597552776805063601656672517223912819094436932666603599677783854367635981801836563343103504201574836236821599575375319963295278533849372397746763896782577802607325696406442916128883593527945819029987821411120864114647139141826747139428711802746993406624428326127383805894486610800645373338501402418564459169661952271894363608248544631668847992931355323112912913571119269431262637037494483251248439114212307109172524701514977584863978130428758404782293154699141706254860392415660783761045304683327407128477898784011110500068551312808409061758315953256699578912629340608680789810155236450001039614771029042106135116768067579078528705649296496261483230917460007610321884772913861008442182714798561634412334169427991092272963854927547198750630992551237280977375836471810105812407947968503488614756304016175718765315133651093028490580966243012969645203733503325184511735311057067307614086466355436983927296001373582522518112923553687750431024448599187763800754147376168644121620288943246495806849040740206499179814037619164335891717782927973903289939085272241138653647140561223503989791329492938200336311384260392844852823451625817031150026612153199913812054871698174363047347618848561618326681226969616268182802772305999203258902685436676804344918086651155050152463114898318467701686012433359438051428726698825128927854341130703649853247995937266846976486942378207810294810533185882891718203859791928990895059304581933871596187513537656365520429802086634982571115361022914061298527340457862543507617340526747365162158291521947355893074710640119355538020834648867343116726919584075466916860522693130047013020951827638261488619799474984570700432338766774811223948762947270610986219787002852436021763023208077924998629210538735489955689204703375007560794107319710116467004884057600794348904839508435605450554235189348267621211388161870990645961602032200759766181069023809095770252670024377441950813925703074532064197910986644906375230095991255489033927853173934550750957919619726088807795133945957570587509408990952168952741894084049418945431806199662936519504321682111854486086972134041259186959958638261381209236459879712506642111844642345342927098655211191263831129780843143708080058311060448163365892157226696825087174235617546576569567229839117788762249078710647398003991358995227139084981819968953559498115259695958103207028820804039942997113873802628269189039501521239337216638220176436119890230153508206144479913144872327086471727214381793679324842316469733640578313763916505750884273364260139967986870985085188337280702066285368429361437696235351179669065591708502292656533163621234172249295072051435400078819341485860188341280015147520599972540209744925715769496460306600731012631053069413868866878221492087085132494580593796962193236732665190420440029494349028242195129527891302621141620796927595162783706349933859747670210627616369343619855570552105497351788418766713610130303846304346325071645288748125957175344117097278793158211850075982077015362247393645897415255563978941120555392171316430076194676967210023987255030710681054810844445551965841522214069721963346120059924702915445274957869261490605166851780249717903722434460878081270168462196081356520521579102643310482355586362429857209644093851874607629781564444771332128452321712167362719479917137018190703266812008735035421787531501084275044878437520808119933729178571032820595128858389540749704927018966921838192657319294626165167565962881655694431172137350577187149480564764888096980739853476969846534666957364807080414702950857628615236042033142499304821345232903789176402074056694036531795076121427704502508402524804557684237573223533866358911398331339046260500084200231037631226710625389190441582833645123378618105676385188538822264455618224279936462310197705981390784193575127334235745253331210240109040803980470581150693818707992235892274401091204445554610699563855854057615192960305254937202853934490149634286588480633771203341363909201774269433893278006409830931064578602125008523413734207053187170562394777355905610586260558647228849857115366263685375450005743083023962436711133432466937269686489082259859905882607231306123996202314467076384701095113649940945482250150230009741298704519832031371066927515867178695709333097965668675119348800983230707102944856618786416222625049556793195851025928674990070557377856561347931877049056799275429332236808941582479508112373730658614733407952790862714182087118006579234303340087036459194809901587246859005357658187378107829981508898261750132038437213606753158227451742485343671081040206402669276769681901231199127995275429952985013434046630116063368036642248876656928852552786756282725723281170979712386124245672133874508856102591905618667531827115006153882951418458073916897129478596767384945906257051402476931537093915904081882167031885752256077860118146429135250049988383798384873771111770206107803130049880062570407902605814485455692198533505833885811825197623813991565585704154463115979815546904038093588040929505677635047483126891460753191236646540070301911254419357059843999894462240838976642295538295604619402010824923669659994391933870830076742271082185895815282050066033733277949320023511992073426730951961931211971565197675349799290056099284254226541758997628018871409910875452674741924518083392364379396395867248840364722818840841211748667919068952319823486735087507628021711851178169305766413076691143257739385412413384394651926726837437575584792704844309508478768548759095112997693769603973371326694507048271136382384745118156615607180535503802685674423077150988079556239840746880355325716385598507126572379048775391944570583792615670632180345095687961982411863904534945272878396226786601488991241798353984552926725091006659838007845479750645504284922580812803337628827031429485157872461210262311181560403541511943811802661931306457250512190639728934276594105121658232693284746513650469372992817038909206905744436502415853667887422795065173449334607752936617911807583533278000882938712090936844193908644429865148414729985111199388612924663579911683637386925596030443590065468228326787067058047458735223815479497201215197262486623453708443282863415511650247018584029778990253053142978644444701456341005812348604395324838313607339261664728667644729257235554450533153577705394296345138451796045881473510209862531819919758962415442318862418126568795635465950949209623237924936215651698230230900621172030756991273154098576375746715445050705828301127486154039748380241845072201000615886295603494608961405089440969162429726871674548380241414273031844929291741023361109742569273682191811875358187621052922298972569859959534621821073543370906774417516657398941006297592952112124979278062533261742874857701395609359290944372032927785025994792702055064915483613367563782567634872198981143402452279063603178267733351984995070595235784711500046009477670835769159693576866052897020274199504867775530148558874172797513819319463245136123341527389173924058081869168383946281268942500189385730183618695090452098915114279847765587845295213331207019586579986776640316692179032331218090819135344537768118177274176410604894785207536572464236335534742807792168104016614685765847627390857643780298910810470051180057471527594829703978959368071280091466795926194642886792913020656461062737329762521067702844743908095965249118407689835237240323856755835760781958385630407452228700998135628706275662410159983806308768434860208744358891833423388935986933481489933661836862454317568489090969470792354050738485736033928860735475613074132885943764918534698048166764439510829143362514730473300109976919756534580813859597770584567503970150726053043177529429433129597164210607378844760998625534479694097744270251954638523977609124710423399803501847469478542494730066490643800420360438505831544930682021742645750748759388587111996886776965703782844219416999305480617770715752600867829204318710818625998834283441927374372334927139206128629557347167261379507023680150426422636251881657121212512811741152848386568791202186208867562909622248984392315603273697270040925528717593917515058193110908134612037558589666291676081283055097962985787052773917439534276768289647162522222442920059832264514279499604068308340651302026789616136814897203085427897191740385381542191814193563858602541435525257072674230407387777002550555690801893983031785351384244787078746128183886418694346702740456289795566764280218837427885868900368583381265010872899357371040502949013444515771259415757129423381492846557923769818715237239784713014983503780704129469347220976311183328503577960613283730713026951277382866528308082337696388277374045138798724708067129464374138248288376444704858580472300073982263755544508378229197413490464563310623107568962823620239588232934617727241520439739106232201344058195051798603696676521808945129823472442200595569536418408331715576504142930702429809140620239027971216136864615361454860179022103519206712526675128757671256657189058141658698960354587548538657735346447423064792635863025589854832961907189268678699308137569021164774838985712307786972574795466069095046576649528832248756668386329601854420311147673231140492905676968296704876232172659520248472533010323714709428774502089107256820125389190346221033742032523294915750390430700382881094551742212256641396710489150753409035653967932990020243487991102227713070091984519469285209752737302376762302657356632864249452949534633346957318114605812109504209539923620334642429320810631939410680596391019634967639632620036349929564952965018502574018576516385791931690632734606604968577474884754390125132964361350986540000172447539304668824563461134275753181782623567124622193153946227666386893891163232666728259558061841165545806052153141554620818875693891274975054235113524412890401489324074287427813940055264861880693376464064266583015282916367902004008256411129738088687683794382926431307514390401185079061583327285878364530716294957160834260451999526736997195941541032777822889216666831478351234636781588581788756763659906768411605276121337738266079517017489552675743574539016657912292946386496460255524299484752974573184213824872422836177596264290420103763906905481340788602819632613400800045247744556237717830564759762842995766869635160970541004250073078672061504770830582559329738386080264737675866687351246785368121509954166697417649322418443158701289428927398558534723918279053025769742089955564326583881284853370174165051503221396130025258327510425949494054386717816170504726017979322801116133779169206919445055083741596198591885445408115206225828399964619644171863360241723019217588162235962048715409125378176436689904603349755767769575648602214250690088505166993819281771911512289622104796501620475943023335104288420048847977238427212692194358152522457462928238743019556155959972250755918868988276180812920276379754433335378941092034077650928622355359245691621434977970634573179719058474511074823643983961577760720293787607084858786725291216764012971363592733909084691601911956622818784414504838125310592905847669885147886908177077220306575630576273352494063518665004989977704399838885392830220116446451421726238321024272983694430203284409544936581122420698925801607703538008314634269143904448895476032510851992854352695517378449221141955750559786059543547593508336863922006412649503438933396008975507602736455225477914389131168950190149722305085157215441282822141416026351847254138758417717585615441012824481138591028289153696839780178679763397564113153388286434661964372549562049485980445327662007833430580895151103876892007021452990963380154271969958578971414115028607957445709974069263442793140717030867557424009437582359186016395857274546846776252268317407383083789563979638102558576039364034925633382988428375249736952571262849384191017538518625700103329891996727658389965361135249983043969683466872113228466415193370455865592889731906934657241104635744522501696036155056910156212409268381865042255257592683857108516623762245976117476733045134694780095760928714914898006155736523916414116687125860475375659673033315478356836486812379506805581516740427768635004455909740799574394108690495719918734494277952502326843584599693306187406361480041388710792784511018719340089959477015896626798958068983605749768047312364877391730544094662675060954466655541827102375881149450978137918861292626974051102939624842232206999752011769958652080389157569047945668250682375325236085596391425418922798424555428069781255037081266455749482170322155143022779070138000608694299902035041982563555957903814851126422438122148252477876769292498132143962498321644763374172409474609286726570964217592498269053913431862144871195209081456310343583549966878221623590419470888726316656118307080608384365479569936986113266961361836799524469537601881920909331304083000338766208834970787380782071423801604147116144649007488855853074651308805422921464238848035199636520861203773116598426317056851373322302250418004105522859493631332387302509744668781501539805183303612064843632252824439539985331728032842480751248725082774814013101663173383331032995584226728797978394425489041095796952715405042910984373926958579443295348822258228354199521857976857408374761819502347551449757468133105083329718277689631900786727238427262289496687222497257244347120889541562667139172702286595688118858638655998203553962433187553759164948433983165738421968871010436959079366111790747881334928876734776987304203729441900834726978086498504394586224786897169142678891990448445886132778449440656187739433410380318175350834946645967586285953204364582712329617218014033825620713035469058015624060077156846540573159778212484993345559637788763422335319980744757775465038227948285697291786466404803685266249467424261462641634714459620478777586408005487526838276511789636166737797041264105568433717576566900517930157577023692673041906357998722377052635637473172228656095018821225947837350398235702758045103575716469714814600572650189601966759694525587245047906832337919310605460011673657529423294286924951437527758114510789322347715764176757388506556782215967108983000983587765726927376620441915166752451943018157562591854748886641063806081800474536198101026842914783042317998167596169924878229751024319660616744456252637437964976015681797145888567501491645436808406148844677965966805406285893494754027481046003962374546710895153883597963304055097148328896970861936279542288089243325274085838936799565093154759880270298324818619611681180425974997435973799451806808028147102808703336620866978034090621125258789295404204555795753062710125951336308014929685113914024092776523706753321508069480470650700134901938271528865533228167506506966234601239267725041562606476026345278215034759424048929021732288856608334126802344133643096003793218167007831429236800550391150363559930795451639709467935724293511357104446939364684324006102302099300039123128131961249369150457828522682846071875596584194411277525775985463267820605747036248767374105443441413896262277363261662450392447813086503619641062122114904875523619501846589723113749894969991102512986066092408924355404844477172259721525366030478665678468892989193800780637254311445975325692163908112442116335836590077799154888789697500948287524006705785292993270174470135353314351874997943774916489592316447329058840027615024971746657600896555072930765956062615535817161776586781732857223883068221184811240588214645304962845804374142305240346851929046104146750145642860341042597443299767874976877754298093269532308217451826164317854015306836575023476539401587750023481466883682499582818296160227595149761089905059146576416165700845969481294546323832357307851040218757518075101800695252475220391965096258441608158625092192043776901742514722943130907404710404731757819427875945816373630697435799741337092509953640517743971174726692684232341816613158722844620358592074053993091147237768791444312929685331284316560654246003881299547039151588120786625007497457689847234368922557202455572387230071993817846731166708007881313722408065485083277659714573929577722723332467013224851198415126444927424769954816903804334056628402173786234157270729900949017703223279506171647291876201099897914840123445521154167259998974475053467159971340282858774988437094662054376844269065769954778810318233942211052744464496762486067342009190243079228727227055813434042668451389480458442859977610967436827312601453003938686329540621843457770730345051493593197626187048356566466737443851128389851880228754499794962812853304693104333552056245442222042780236068940917538077384312745509701157560289167189643994559353380696323936150541068339987507867239983172268787949674388384856810320176499096686850111023715344113518714842056428577229635992565208336686631537369255168834652165061154627513224434065339528757919416600134979638054184400419010686824845386456934657778532283748132451528321929084773008647592820866191542694719459848412175899437399270421147228491603369029185272429006956944033928317813588079015580487639404716111664787149661942365160504860918218283538089844357231870843980350991722467233398874707672355083703508331775539886426600100978256137944993401922891714572260819407010688335129759605158427401916142485305501165282943610004228716634166027356495177941439352173283714439806011027958564121573852211652154468602747343603984556713931393231905818353022901012897881810711272761691937162577852646270550997332745547734681782262359362521362616840951963596625692069717324752326823298898109249834094746324726548947030534682864034762581728880934563427554145082568397388546012414203804619339503964759161627425050482127782988404981539872710427478084488081861191373104583425288832559004153612873263071268746725002725978049187952108503362453924439345179617053602665048161361278328113451052059280506788885095877650678849971087408395713244948992585872562742631570017319380900616298850986283061395864593836716840475319364098820436460005582717960209963387523869817772115496158667862933964566875824172232749391343224300729498175554091731080477699011366989635437017975627395272021635411160939162479266716896769879689373217015946613491957032322436432656216277634368825339818521020605920584544459172392419890165519359753080382740025532214542026927773214061482068369462954214293158180829350301706092255841462279008150613893730882124832507202409487049442626772778110455578151652378806913150808780021890026830671259782665560204106754855128508299314330576473145337186303695270077033434144848601303466321416167285046332838950892940615637293288279662830744340547174656030384587934016292291687547673185102956950637064741860970664891881827905805283364352096574123223261368371960269763605148573915155955153220997076657636447103615114749878414745860393859199013499703910280660292858807309237902945961951793289382862068427522423735916423179727408702008926575923876417175549758333097991511374602400879702867606803667687969952312701016385488512976942247078914396499738187157507163873075185140168942794325829846976572873645317981123022612526984338262513128169345076444497608004755355376485748437207700370821595674931179591280718430225250580058150581228058099523139800840872017258165721480879876698140173204763032798738404457055930315965533201917540842678036409708211788003811509430764791319687854973705551916162566852375292688588897969720332545004097049306572520349224411586232225005561827011725948993692390581730652788319243942730538206711501707240525084501130658298868348464879161095995068501291299557285129089312938849834990551791090052110791840247236809767138565658553075081330127716676730329417607336490478334173898276620116477178694302688503291555405369093817330834208121428018035645027781429450871482886074652428861974457738978825746120304388335669549868540390883299867691863880271551916823106362151488694304542117255757921770384084308953743662892750404820379004011362263619672332955786218839722598846707895503499390009686916273376701076344326971339599489767242512432986679694954892758927931452068728921280857377466095627038157176799066411152129878840302195895003161161344991839286452537790336493524052118104023986116309813181332607645832860413454248611695620405165557329234971386614126755918025285859822997020780189116839448109562991610651194465977830698793587332057318763584423300056985365043125756135432249897805529989011017157444583266560980141487430443869993137381293834304023356234153109129693517939040363449564935885820552379269961367058446971334725590657750498298072557765729108835253857637486025391489309075838578837923098063170114594800578353528939858978093457617900126040928436980231369948796383306697278404649796904457466036760070774814686513759752983938951872584396668965380654401343326335928824032039005562034979453418206598433324264704156479400041401703750441657212739209769251256710811163591904847203246619200022147049030284499110326852557990362128484040565960150468996598457205246392319248121001840908448202146442488039792001677825265046298873246420045275490810316444538794435893890640554963524910352118189184755531977415145893462098637230372380406406261682518210614362650293750287332537860175136331075006867980148617897608546239307558262940114063822673075838093718521444592692639218065831111665069528167983461872204008131488873061515263966498309618037495746733052480793374250573061533739962961020098066689970385679750347684584018756142202762802906709276514516945314539347943390913461687483310505415629448878353407999129996315851957299280541665653036048653114345689720405528877285950870497778888800825088792102015262101633399186090695627293612007843185259730680344046749804498445513520744956240380134358882970179649888539677554605258652295884038268182466969507599812300701848542979314727744994217609163960782410012812456627492147955060332545783206000778855492018576158560197220842826482497737353131217424460460810852244800366660717411206406467541705285207641622146682374347240226218102488018843391756029933861020835908693934834267680059532223993208428395410294600445433244306195420406290946743606674710143421897753397247929221734606815302286105510774040838729231113063714124920954369179806559376648389765733909917340966583667120914148336154004715079714990809401250037668557313134189880554203127402939104828439278118612970074963054596438329960971613559548467535212790194762893229037526256615090803141777626990919948602824980109679084318105422402608589646115920062638062153825744596321259371441843325498517910348130859770272149842861276904024976084677952605253673055141671090428782581754034379825001945205323771408212488521006674692051039597322689998334537739348629489008155881057570196429747429556620765766198737745348776462379198350629383579013937458611089106957243172493604938113488137408410093918812139737141100914997961325771364449498959682426115803544502397900191469552671061471851902763435554931336595624959292886843379090045183999526150652650082038290636970214358019835896630106209339186368856809313929293763398141280599940054800761267921871229406507464773901993147317438485717741220544391565911037030301943680430788519251361709218239358944732295701316577283746046614137359326345381030315111962103793606294760180789852649697980923282694980352755899376424623816573049668576218866817628085021790564248823338340966899492423080656646701568004394839843359128787472141810555198773449246742138401589472353135131903530505020642814025749362965369652756545293510396345086077369099565744976367022502457022664669108853425492223521856977768676451255577331051586220148008637484386845148930444639151897480682029790138617782407616114830223538069509618296306607700615797575962730261610444889384428653905097479722474688981223566703987158481408019826254253865240400789277937244349698643006156177860773802647275911598343659779900336307947308286761432166885882920702068524231321957994617836895389232821238464639672109115748277629711929372488403818384929674378476371299319654115595445373002582589459341546386109808073814446772590454860953401408891145710270168653106024521349485041772666644209282975360169756639129083551091183808297204281255298236069066619792076097098971529421834034745098772626060782764002535703736345986015894565119285339250753854048821816307418176679847526519802044894197761157761185092127125149288802089726437674953711047325278150094292969536890644107207790805550974397025046370455786995331544466407721726985288774131803179259733654534389552166683065656556751386966507599857932893802655777302239001125431953365367320842755291799749484661309993820619245011178595566058037803682323961764982411660461520288085813288446120622129948249896832505751832928786851193851340928747268830164891795326934173747475243374370383020765607127126306172744687885960304390178489252733121077977751039581660852397968048001526335015411876708991317441310122183242985510522930355301994975400596632207896171066232654661466807648568894212906059708426020311083704699795177258261644338382486462163988454890523387989462262204536347556392796874242223518711721572574914690964436064780642573239377639143696948632956206337174921804676058284373681722723647112377274344667311555964685561031171477593542776077662476422213641204284551271306144702772740694289586133501025322798742712443020169239818619010208315089883718647673072145161756895168438386981848804914911540617727398658293148916211494543739579370636850633961449430526659567941239344226703310414787885336373080669298566105087586823209126181909730513286486598768291633637081718803725328629439263603413519551828251696726568866500145317466219798472081811194104104738267694903664623594324558252368197281509540053848570505971606684764370535842755306012291752731142311093072686891862409185319832499770884260650570065278502141289047102529864043905002632515604762102140945708252634053711629988349945296120362060697163885075943722893600811161187734517466265380893294873793503275304619987493119776227755018085340425505415735471874153256552102065179977388018572505115310761083944420315435304654233893745501989806880292805887020241024087026646252475740435049375256787373227706770389124284660437044578259977711598757182541958343930837949082362807538104083644988736052355550680472353447925367415909125522608449196144496694490802757473232312919906244319688882991553849741868648544805286837850478598732287397462922083126155421929324832148548245258377676439274921265433409486913709281656551621331991720358543923469288262159830042486820716296155112187097999523585919455026079305537172122895450197657066978369985096245876610501344398368860679601214665674218921324257310973642360395116538284899901729738177902707401702940026598790515620921198240115580022722449741604106994685642464704797003354730247340653349164404470064910128373283894026636258732064059950965253664626057218339886903479382389066369624789161716126057875047342118075752097141999622339159568147390855825367830487163210512889201268119095112577482428235059989328742871921405847825091079228231195118846689489569956662832892671871579030423068710012265796207495068377569692434098315123566611258073797964289010154781511900232623789776360812680018281815435907090660190107975297175616713558287262478660932816629825704625995791626657551102610053191646989760360081512603699008187702355999276905958630994691862684836736130742607344290920872573928842918550842711588132642114248954791923839248513802954085674479673469186004382109649134737287764479103146388036817349555337198465941673199628917229182244964271815047739871178376922298335555070903546208173722207544053950207586570478257519251808220241810903156918442435950894837343566160675833258123513327070919457567617316782623366894140758446760028271647751431930332369923823517159748425737443590449412630980609297730375536479634329308146157569277070722451690234365973022827931875751311238957125618162879504783107536922875915107139144533000731919116507493891028603378284176699937370230644641098937411778394075276576357807966317634756397426085142930276315229791536342090507590910122386356072401018891212891819158261210760314776375464428859659172486265212759561692484024291369213757957845035800849495453307442311486591752800478105972322253413721840207488105552338986441921943183824865664800996279428603146830466886888295173374519386094441334768370394556804138880667853623526740725678138516156420109183584426169183974443774506293732129270712417372170146413603890169924154740062825282688726397566146111816351985393969334132228579337376202316664250047999294627766418992157604874788260827031505273682444495009076075465272409197741314581565963784723860244369599208553589714413910006521050494427742771895498361444182376494817570128231458884153557597559183563599606680861415853984236470998008013538022544141431759878477841570715083090256013386508221592832035074019889206766832583410886490959553034463797041584689142123098879703036539690516351656813025256941882207069430384649395386128664665091103407946202366815311388723609199528279474413938176759691383449464838488217469855263291266816912899277476954151527351770475792362954659436640366483895050143683957409285298407260255978153782281740762155306889248862430298904022069544645353509019178730948973438943007852643134739263521128415133808556259732487730295885912721540646919795768642162575667374820170544241356989189108440414199102698806502184631987107169646946644420763518171526407147803827312922829965135603650243374200102887053559702328545611985622616377362515307361772936082063977660501965415047745609041908515178085213164349117120914022554339280831443137755351768085442337566685085566777200858181326572163133921186781278088647932599644671049170581244428679634146666757312519872546948216158552427593836637327552095929135952708282110665589169311821884869901825856326359396365891875187113181721967524103005712765607640033501828222481593070836700666255773685144574120614514522635219422895280554213857744446324377262719927178506493260079293487189800188236137006901846604738927512721075815444447985913167706138160671187304728723093783145231770820128263157778070889963631083602927807716398835028835626883373135292621914894278249284254343236114000047757007626772269315452307331472461206284136486494551627596535547025095355345201611088762482196540570212012494357992932614017805304774848877179390946151314989842272759231273860141741590055811170248388303535064707775260328612151587153261644128861916953948358853079145597322421439294718000533158628057035854887628430678922739864183697611779067583176682726110641692632861358005722164435785976196241895489962650686638759017623575443809442200788107960721018716525554263308458038881667039161921331702742610430692086048355453588725129856997091738613437376318717821185650032467090942597264916069999164922659971750066435233186352606388640639207596548618821427472613398490606864652066512360301597577219984450191765360335253177103901547519943655808533966598860177165071356426453530488250118657541088023998793475234074661845476206840342722496944861791772568310450606845650047271471255770602833568261977536179477688557349836770136703018225476005622560150367991950086851345258691433632158910345705299220659579809288860374187214107837708762552638794220008148754004079650052417802942768546664877320482036086512091293931431616868745755717517605922908664564139931455125219542971268790088064373087874862049432392561873490467926948261017534521863185244674473919792127103003378844772713355543658420285308579597776423485196421796343199720649517506648952212697924793306921823139529557232030703934570258880518289599041617521196778164664108721545213857372517986258860835995461264613969284916683297396294987981697176789659943545018954717728956329790106328554921198544020504312555026270056879728674895553733162973616141582638919302474417875338698492924617082953948199381110078401911348583948326791535477226923496388957527427580676288797665471015654368191814483084958314353850642914713396057084855099797386588856024072858606351428025721341332578747927689066833951680039267211785995610363991733466043938442956478442649948873297041025306659660008458608224242744504868889532742678565281219166504561858605249209946539497994274358121651656757699226251432732955047540834910093065918229695990447916476195425197605511521632509935118813287231107534761502404736673933753718883468785538198529547145021650836803943975865655268862745395737091110188533926313151991632464261520781240931126332467372860668112268256490395808599548282050920121783033147479005198090075599415746555071980438623609072013329771833103937106325380540177610175635977783039887504245647581548594599865770788026387778147827529595893847795313505509422152434159086308862577453315891413812481204685661346476825385711691962199234226384338501393128164427776336685464218427990165248170173531987868231640177577555361317606165731042325277931703341846206856360639227032000187537559137512628133932865400358717504040357552168479141435878900509449406776388352084458865044851956528200514129398863272249983092771734431773112984993874129556220328847244360096774742292058173573973026291081099329704580247810238028574317853834205444004987162471851459109872950269038699348251892222185226107655902303174633572699404766205189433837517315197416302481758796727232483253794388507808625918509701852797375232872965535930945874735072716708747922794449215329920935851410563365885577668702652250174569994461070941528155378039291262489992348477126821209320002486586254580235208166779981655323700211544916572831413632741100002332863408529041423643447365254249589871677533659565063577809830368284573636472648705718813760548251887929368696174974873142888726571565679553450806917465265725755717632323327010512816051615279228837071761374183729829297207185464875530806854053269256409207852493300309185002285062246542619120322762302016443530950192520055691376901263020695510491056800434058921055229222140294228779402518950912321288663071865282882143377831985782495172930488133975701635369366247323825246124514472865422499858368271267619071052666622869108109923082767721516849040547291245526988675515882374199186468168330659186086736878088829417290035803312261491215250855110715015687211733358116788708470238317620599105335750810579008321135543823377339939717804313204890865410071955043664043862455606804768859691045623394942213365198358187694075720541209284665067251064087759728533521336544224273434800753948263860361309246993336364719772708828765407341462300048951222866631667670160114878974994910807810336231631864242090817914055650540402047904561237439648966592561736731141608468707977615475489764627133340530478559830126147344947751155015219162202655183077066461926020472297840460893540822109410976442881951721011063020576688979126024979063242614566700350670034817457893503106124734181467337440845735894785745472615978258939890419746299503371013547918916656526565016537463705663410860056355589895334604066280657257904443618002548676421083795918532297622079994050632909610853433320950952586024385929317935705757661324991262336383018873267238909433070109137939110994716350530414009420738193784209725237847913103783442826895654575577395398032418684374544754881997612401633080526984096932033305799029722119709003287952949736807001224020827261944443522852169893390106309989198212007640034490037131959929820691484621099590612973654152226447618546138754003200882553346870473967087367468585462510309321793045823673678872799786847590908094291038732095469163486244182880552359457878382141109715910741124254692360143954190728439761791680017525284806071943877120236504239067316592306495606003246773892051103519039829888101095794232602713846113305082387868424280090153153456038654362469779988743031304928142228128067037742370746885653410365633340461061151793648837943787376034097484058026752029626266761569567963151095565946334823686868615858455769193956977422134733653835846280269978904756930744214285216178952494995768892107097070324939316550547973348238607455455722395259085877212264609014968231386634156371956414210057354319848233994388687198909253777909057159786679939893620634399514267093432598400827901348742830206753420487608521582072396843161757014343056613194509519237200659835221600176564327403315622435096917623551253765565020446459003408406771224140492200897727487715065943419837556603944763482521158165849370407685132285537869699709203232418277236562872635756188118902069554823528016382366474685476147530942128594736972672712161786499177910541309400928596123959043468938939870165760287506687693174185577911082078062412891169806991907528219970089814045265072113537309036097935986591802014904179139198244373245975711084696144176663217061446633033791633934525976418902321078936676341599977668115575179989959015379481224559956884645423063645750563901479860959504553603739289619420494661237228956371707728333616190891573913055747615403202459979426756361862392643593546341555183057234933757294678823381594594763356304468596573349315126760914270228383003585848367863094573462281375047252496164672374286726491024310482693659034082143899048668468665863753623943670962990986282473353304362453955450392390423496355871991146770691316266485239095235843609209845853517987198371960430727216704931956756924740567784727403467145653659754031857495608979281754936167999999219052443944586951496451492624024314149795532529837665357494945313111180350914863659066119264900210805174660673314005049858831669106697483311805369711906430293122830003183160923900436123815004089176067464421125990605612096994384637345007321353392055570900660240423770311873756123949993811045708056905656924881249670724894211842627084355032889784775152657812944835256439636516269477315493207515559015802070044846700338788583527676475364713149232626790544468224242673909083876395675591406262335418449159638359148846758381916861182863005534483985512587055715947526871449114035388942472470351898257726411618986432463135375279335798776794128405190197668142437618269217797726622627340612788798524238812249611323145866478015772262326378239025977317177256824289480358480455831552031674734602752310757952916221700041563376814511658335641375746760732287768911775983895992125454390591410575738570341587499248063324474729260612418819055182649533113203182945437637220625349582275665265482144108370876061330256399745115145827807118473547983693085360162042554368000665000782754930247209483462297022932841362352386678986908016962042665950986151379417856420053017538135537390321029544458834446664379656066395012636332508789717289986399944738730538458332442047664151210867186544284894510958348958265263983072179949907185135210057980618449853597384576161044783439221300519600266992843333557766752856362896707163380464304904739186310325576834589329916248798988479220260693807274684316754507729253343076041957121306320701010063462589380022746735187493415353855233796822140414673778904024715656882542455740859794270847750025672286905680198243953272284836353422624780260434613634248261756058107721746446184081971536839966736101659312872774919629823021825081419757578993607847041213866930077790526993189752472172413798625083603194415970153896212022624387330099074079908485797618298568476245036499509556893489343369487323564197745968015921417833721199947129376472712587993572999094469844581636173591414688560250042016477794776450289775248443507596740365382672514188579660276475934032130964836116824484322395474683410301108675726714027881741741596348090496169573401955938466553188209217695973809652246397092928985422711107992790793834682964449088091722183114096022882830502520609744788974655963053172726708089915935419749354575806144576010092331044433688677045372267114569141783158656903272160045523807326642106776356050256993959674828989447296508734279087048562896826890896859248725823746693582155474295442171090232112371953972729857255836345724670119001923450533236396036231854452051682003576888376450468034598968637106950881842579517614326242870448286500513111736248481856537832603212750576739930924743909601193946180369621541220204049117444181515413007757624444874482549863047533824715776406377082227355593862184588440611470758937333136431206932117455392983194175964356949274250241235599680205869192316217086369428040862189918858111422391824612088801539349977955046654775801482619047231353912907109300327218207822168099901583079124023319273460003072547377266045179135190510148115070821321246892814875990574719789561646303537709733958193004775385522769894952723880755024357449858438314662423133917924616632867259955231420815816830350509109496732521176456148621048440410989454135519322813696029693035232227050179967191202331136596258520375347271220316092344172946499517197626577028939994559112898183243919807614674472309937985309617320168496033177387472414400701025763122391738724575534186865008266751333765766085631327331169655577229743485638447840551740578263175273355547513951702493925560870583417347071281485022846386395626102599342874971338427676407185730913014974507330834708198282800027180388986843233263321795064756767143884770233827931834985386231023215126889795306841833430638160269343078064791376406807519623576255211312799538183314711683356049044853768475763336222802752723198768980126372277680805171104612612616966393848368494914866621738097095349928579448285762691431172756856941464900381049086120759793185635885956831176239827616836413501119457387550224157239776704659757957870800737412377881432113690543422096395323986648578908572880027197145160070605786259220589600783484407511168085433029192936804624345697698610124613186251667041931006570876176445074540952582347198548206888293417778047706076354414900113178470370934986011601519551137784475425909573800521578516566935015003059150691793489829254436488954399587750534574043080673323117898861377921539341543900159291071355569747677985589026969467735220846736464391185294655043527534240302758508467172690752982026268925781123298056329693806398596565093444093884116648334137239284400213240513123324622350084748930907005881154884465836571876724813767551582324248970210052009036892268315987347749815035445299545599043531886161209386877705071817821409206889438756251449352074900738992866340822047663528458271651250985154648189634550917129502178154030998261264310894596963064868069943815013231252678179424776074080215931535873326724839948266554000314900310972236767793319354378190803293833154600153097804142828278386789530043422127548693144946467531885673099389362174855052281555644418884926008680314705753932347403086023259252329329541858565267938530528666334332113208032252839181742917111362093928391299629969482583245708185430883326433744595689599886737526068211876137548012164676564920660538049220952377514568715493504717547803317957057764093224938824006629108030414771544467308383914455276339482611698388667677819111609151108148860321149420318238650463144443752268301720532432363518117633421466310965625556296532710534426164549926268750871237143555212915711447268427905114081904441125434569285399559108110625026881223858989060308319793287684662670540692691109654500441640598028834266789090996269281196075715864818562832770314078379298043744513161677678370376949483703052640966404505310159515913677231895126228305964763700585410460007672537361688077080220232901729606988705795202269046918467458404891295918179680033713554272609783671543305069236213682006041451948909335623884600009416180818722987488723038649670205775819392464165672890112580097022449396635950493084661877253273670761419103440546516049255413702624521787744713833115458470540748477172683000337390882572713218512820590478777599089380501056497944616632851575574902667192622040362748756948484990407180713139334762010759349330297317314813792506198482663401555748701279252263748602861002821903493174838003989008570600057038821183322909064577813060497268536420485456514258837011788736003962373387985107640188453494334440376267943288185190131585153416452249349651792861790294554118874799649926462078342258593228309756954184282308859345989658878665689622090182113667282581758048991926082455377023661433437989598040367712711119937155912860583378018139097501495743869857126421197066065475623221174438345204070979104564871635735721747692970989772112631067176437173860929550155409052952955750462176182499455565075508072097177761833317460547616923823844147345187062704119188589334009050028629277758437924982102565815716809774651121833812161197055302218666789984207231194918120179389730401156286339825555624592818467224034535104823320753087291141182777142221106085607174430271546867104212081472488919566133828650328965737936379400110181491666164397415852516480223461779321562967807262099308549090639986303718476394354353642196595780653688981987142665958545520566572552192068320779502718783169214650271418684274502289020544027462003468071311862470377936096776540173296320190954077172724244378747219306757833221215250119270028211135747709238982070133902518440031601705728250013724175038038242156035326061270691597941365588482270781790185982960756303667830385176326970894609772510256110330454910285303311304760308139189954976943878619008628209501682595922467635730226197834855909693949293027984476268984647022399672291546946323508271727952841056860732408253028799845112793423138192159600118215448579018781589184635459815432426259794958646464467726130988991959726717356294005654655979075773954742954984223411938793970689318109346846717631223132973353967594928742396115143648044887744249207409052309372000086723588721181810286862355368252552977083002449264637236445196368416910485449691528456027512634000218638297332502306584728869333681873766225179850109885017923544017026850574017726980358977448854835883510244033792839319624231294593732687165286443815302927530539234060654070016981145921896048552392204762896342205786343800703292135940030514387086089925542904380997913184993631855868517882585538585367469095223707734222690321449159063317796114365354412665040422308501726490237956093508743127510189628193100260995254339792009286031128005980231931691869574787997710850306218072395475609865407288642330664955203035865492752174079828209118610491620770962773743587463500328673191481971282975390586374551865336136794335640453463377310858739915634238373695967738907013145418485570041279402188476634138399126014807209126599661181368897737080763806371004747339466019991563159615493293877858268052084409574421821783278406437971517325484200203025145795663930438159217851167644342532484159564753120474400342917151619045956183481361200077214172125696874087043478978439990997175168975265189942597827793454428625736180697468071127649412267989436333260307322890275082019632261130577351714115017374458758248554884768039247760577716909168283508427826566734147061976030428069067504658071040629871327324250716280424382328424247253520437783620809236990345740034922809483753709891581397102046074736537485546520721200023289721339128594782789238663537841423487589655435077458834222568579641385225063911165197448686748559403406150242718565834349509331090260571595221598943550774085170303864634560154092533274201273509992221165367565318822801267767922739290753070648554069344479635639342833392248099395572699481534922777465625256632839879197631985521868986438197449765732079268311039320097125324927734357602823819228808600282518746209877142467989851498743587133233220383656329161287668990820667708903082267243733698732402032977765956340601708807693344448974357987223850033129450221910877164929118079275927940280626217908571262893853395413786504531414579175355309766152328259265944365864371397622369191629199099237520137345228795072289545715269673806633369747668796010297758256063632145017056223361503652292609499138254029773407657831809564475737950307439667717828417127209797563862737182018005985183508259954385680336636518377432324429250841416980977840825253968358819269591701809217659273095218966965334104061927082909841687441231537596884143553858767171411042484503641175308495435284884230362546867329010863588602843904603289953770100133220441115648319141717509514633563353246712668389824153551456769814260668293909834370453592274370593629673665637619753042989072250843969514776628843062137622512049772160471867385332033976242022987382417280948086407451134120590635629902744862705680524646970882047213050676670564256481799215830456623883248137245029012807252560906297517795731574456195411394771767578268204762616707477768961317957994093730213703808280481266829791435798830675164372339654504929715020394794194769568166176821847639115733751247919355040712915832620180559865315786331981216466577362600010300772052821672227385544054545375510215630480665667511723983802404317152505043168847759353565338705875164878634950324038296726592064123977584374639752593049779276938777305499938664352253711599803562340069409501431024308478940383704458997880880282648492387202210744741721726234310505290102342922424017211601459882054829326317396560181793652073105531516153054342226152928061225222958121833146801103994488341568547057460925303829697533436489673688713845128321677846194873691493296716031676672205620082892796312267826848519386987106079820845467480425942930334641108477914141474782710429495700044474189672147500535877407161985707004862141771049886926675384265521788943484094195256646746793738447750191861300443936833388689964625105892567729208501971672787248564360386386813343533903368173736244773439134821394055036015917819716911665381871073019773484064126775687721933063345243581293278323852539750872111904470830419434546307035996881578981467452134662816278680764661836895622660114203811794235340905506886028105055471511680679299392539412599917097823089859969681086620270661771720893544960144814427401514630784422350605561559018740586287846096583684101194502849545461706143536348706505365005649450307227919836919898628606991167889152032278225349012115604221092823704902944744829519839537412341659251641729783585798326108536910744329515415845733042144690263764720912262251160998229003977621324494647956474955279057593991435892044884992697302706160403194685773601908197076108644037535195997783593471599200580518796693247573502287231943390704172481595484650724846349773947212887928099872205423216630319033736225958698001703438515485019850411613450530001678319338559198519991067393491208333547739334530955666988498149125002195227356739384335026447745346281544071777485267205302638062051908531829194051812489984106262577353870086318101786347774588861509033980573449656328728800971093638729163391981247201517225561385699228890715445338831220638384976991903508426708748232100318709187767415348350654499900457014927061518322988091977442580143415549495716751729558097340198152706452222253502999904180583229394788775854417092478193874404737539286518060804459743905008024267694828850940501412626552410942589495488158677389299159980471407959469116123883745308267092874873980937834187362980430719871069170468473654214254289320402103060941219325296218853272837592947329948048660437049947287353431080517457476022745400892479076704557928131112897958610771842692675137591529383097416342272599536504468540398035466434774712988031331039760294808013622455295878585522132528839762036463116642163183353735523156704271921586417742292848297382878341935904607717932781197094772351632857487395339723987457433299958874921147937625632647291047745604582162127003247610438197536233730045125643251272789848070089382357239396677104920786441807273044768381309450070709506628642480860349527481650050020515416443691349061386555403692245055714033635314030231812561280525934109469415393160975209912240664856643218364669220794319012376728637803866217695162156346076162246804780451926775208574646096150919689549022786665822548151550249381368345687695231057929539059832351583131156881082483910275563946929522322353669178643816807866317972504810891188561151971178723306677539790550551607821699261361741470376013207615531028858176359391772679377837569127501654365062395669738621432392685466520017702529430746460868753236260239345419039876079460532987052329923816661240247002820758604370621281031630174032691700745582765332420151715033772975464567673138462510052362276870798639458301783390265148574529396732580573416647099780927091304509069602973577505743952595706281590781924806143800031883877443800082073088046571193043972756925503444861675804920600886124815729567963107663702693593807572006271216066170223007441313681459767190088425538174116053225417013552243684168353328581267348083973148301361122625198154964238960403356797087855894218418134455923073514740950804359756492073872435484283247560962749082546058031178281635877837819525055548980217057204926567895436705938417282214641148024885474606453280418323616385580535433491075054901925219863847046601845365384780889729413242851287265217467097806188716422525290027507405733011587409815113362590581780296443365823159116655232538924895602751077102753775423199144414788655550547497087681471786145621869828438051896385452738121112827146569392016810472980087986862019949940233435923824260552025640969404298898793872634441348653133501590423104506180330106768985036731297287773780514050845644344279819152015869799430895560316879668162001560576669571395961521878585733765892255058504496213033271773728685526791626359707011758764237401256527416074061086678155561936477278379369723228890430680261045225119891105568893438461418415475035035196562356268102076578240422442486681771193690589322080920377515965027808178469644180012776783281549216451901579299772378900165287447545768505249815395862853978521374894044859110027481485542124052367264421024356311660041615683453253652849971018175884679718372017038288281427097223767255990482156184085378701957171106545331149592314030346383053266626282362256546527829085855425614311352692027510356125004652813943826808141552726557288949840327121059655861949059972086250275920666201207537488914950904059838523399866468094425241894720988188983626257939146240813236713803387044013996965930778124639443186137358778634583921710916279814125553158070740833125771571222465545477232030428970960913307228419736119747971814157352870384669131068987143344405439070785947565310894673920900046950088545266950686001841365100094888019737208772263631719673121463487114976690363373375256901538384326839641623509990393955494551932156044429149396436231175900212039278722757917643289874569718414461539049669359485585881703242347494655737312715416873327885899540259738604749832053387356080620891437954957841117361764498838310340940662508842590970804873308998263455440479011874662090372737287838504105993525162688366190812769611891311440883795202359474685156527883823368213718331679266005647577340378874578087726107005527814572415021458378375573170777206005377257593609615808811772509898652869345745573046730076489264446299597318765792841948786123367794048044615717239634083980229524278827848684912341524054753422206025556625424820400977818385650444241498925447096081660980472884506242109987612031511801603979346767192587956092391098725736342213374097719373373562637821086665403389847277874567653875184583041026190593811544604466260842167780340938127654752866210568156339269940849394464881763096256164933426437970692364149819285708692299646817422835967019431122301726704725980483863679020710182860951372558139523633331738212218954492734707177271742300369019538009425128362030667803219639892089664962624438536723643462989901900419073437043632631297297407983910021141859960442432770441517559662179973245243583992153921439331028253570898573394355414950665038782238217370487174502373674212782573638730355698449015361860077629541329823606390800981578207659927038654743071634079668989852572311707308084175214807440998561667567726390086893357522882092589618570512320017714726614411720089285229367673142419511257301940244058759751485524241387921054361253795496558339211955619490027175554926676160598648842552475824853125136193922269597881598274974428265368099265326876639054762605350655564693245909717628939424829080808884310326236093443529043548091279547679057444114409487783636813525254408132151098122077265853392278533911130045471988012586741582545103810862644278443037375749125060043755374711076612129510756827649346070205450118826508689371782709231042963613045802902142485053549556548600272807985774191482681550543183776143201842860469657210779554746670064123833554681068085385196604991052116006578235205047579834187073016316025064282296069507473691732818226143724620657184748699548150396529541745362278665746223448449260185583323022911723677490025557624692342090996906266198377396569441207661903271470089487186244014496225405133686958702843616386533342373966738345555360601985262683629310371810051490629693106532565397983512576474937770387150501200788369393632069550274335823418110439417341623261661740546650130510754270224127703950666728527225125977931165011431071449645533115391607431273551956740812846793529225056101108489736943353147877915604877119277588865192344286450150624512869125814331463817694043246016597797728991216721574203061874904789299737655453649756166129790330374017539981560995929106962357926859827744688524954924760857145549754929899168477205786558081379782016362669678231708131517695832137321178312025938893264388783588035230558842476488192172878688391159060961942667848012740326060537366608064856482612138519673257127304992036850585219111183550615836440801536714476514532208099514984902609140423579580837733846135419762947186526580249760449933248055622675211266516280441473091314171673276176057364654827850994812139263793288287865831368525494632294089767628184306595826384326962292469482072001558955130001270077666225419848930566451771126120974596037848579642861736517413970452923391081198951741015099534159602627969385801896420413311121206339437408542776920641340289232291334646563341052832610085434211731043277739614070255525605250304516281020986878264354380556403956841401220643447890306704052723292082863550438104424294219092564977799941861102130163261268839620020996791264929142305806222542092385334520409217399249868364076073307568669825833366013590250664004776936983621805789298796950184040535227681360260514319021698063047392156454031619555986094528107922781776746061699468183410180834401144866009082246044044900508129602821636337575701759935752484860200864566969409893564297792019872278697223554429689652563942404413487135506231540194619323641803526288638833231056511237811318524587826384772131075456765465632713453293533679647074938463436669632293665129199724313026964068931255751095086295673187056570892729182640741721911305215295755970086682015446863647458562561195793347878432963840905874185913838130760078344430198438317801355991693990616002518965266585142106470218446172945584655753094442541686255994414020204278409692153441421788484876330384504792128093750692432342588513931648606121235479564546357735086584153507853977986516327315933635393267979270433223731014930809009955104810264328584181807024317068604810704358571437723578198058470941780127713463894146864662036535506574009654237285531779171510137871430604214248259547737898483025129675279741917529942942314994173223614032362256163152079751555325176378968265295122567469316738719811034892667943284997485440293308203440027839030249109639908393841903072725881625970791744515374358541257097692950954800014089112723712397677542474123932062465032712255728870025417774538959848453435229765462494705583638910346249371112944791218897431663287803347316440271433349673694119512986501506048587745029962396374001249761240454111388415154545362462044340548904027438436184177370839335687391870436665474356115525590490316476031731623383342999099501510815704412385274855379720892113786790988898358139077611998305598499755178154693935343335102429401451786680733949775093757794168476010546649183799928472958137765342720970469631882467085300712911697554229644099561430588521920769017391227126274092663136735461884703885131899227743893762337366487165840745653600470703153138702438012517508275153953678657820870041697248763565865963510024238928877862933695435729656113381067565529599447669227840892042651973732262528011115449798560956867315186475490140584897599312789118282026001327193211855092189296953013498152949191664100877895423714254858951405452015470011973838863783319673244587262649752012523088222480590991680219554800876517750645700988398874299050082015329687898586670703503177323491601942900701031158804393015081614460858464996945450653106521407612619087101063819281818802372465817909218324811274675082702002844095343231785002146667445400730065036116347367654247762504194705226231907497273639688199401370155163683148037187819852139568382549131107481567867731279850251174025717751116174437663655617485432844354812423552900465936596563567015265520098038857387627225846483665815881766860329211267266801105922367175228600993687948721179360809149601429161980179768494977228794377679337141316948342890430943603446540699646652132268298174900028374326382987860109633313280614401859684452206690425916842482090790594108344233166549640028033496535859298719873821525414449559682736296159049129308873050194958952391874743920671636497355884201063956776477914372333301508162043175283846293247785355970748362828614055444126786904577578364901883811067485364511818060182655851547131106258705012444781155231579250450948037497006768997738699256010518003501661055035832777234695577243112953390747765937197593639221411698966268114292544100400418962220936531999604184010168560682264803976589713531740346306269773546914062231409347112849538572918167127372057236231533934665260755325715390068460095292516541668119023711886500075071476918432477891291358224819139907095107653175152675984285554658159212876714770093843637803072979698496150700296395335525907893235069711558837526212516846124886127116137063367576477284888079322628535281705173112653463702596353918635649344241972627014986606556288290939892374670670035081735286014630068808196514522288210604004451284867271857014660279046581640873962696873779565689010316998172259225433262631186637363778094036952679111739462925090982804734396193191621928926254221699948848822398694114437912105700440167800533721782798775206085318236748537819303430373775181801853375413483252624832747843241369374133490503109011566752138803970293474023331654802448696478491702234854398405076065680384042345544351449997877525517936865949556277722831571547880643453753706768512542528743022240988881186664609442612253519441229995842232400695547123506295143187190481990038539083468815045583982133143611854280962771270638561087405633840770893405775338600441904176432279686209625039172668634396027298983248198876757829630686115357255499423012090730800693706565348476455695737923004361694694927951117484256957719569411351122815513383151650564948365158501607337565876779288033816068103571231045631175648334270776815136831032673913308950595323318375715816886012602549033013500603578872348678787956963685462993998582502764999146057792289740000734443696366531112683727712462953379781662313444285014961476646173488503376630019715243124321980559803450406580584047188213629355697535751153940341206565195082840804289585531171547181107636272000675869321257326310823679587159758404011696180995561559016060898322336096075892422419444080760091336390378223013276238556371927439176416907707951497229284213567339111934574344322180995980606325516330450567509584324127864005180088586041184506909374817762882181248059789113318705736243046763585362005902901326883469409117611540463763844133669979481117054769917332090315553792960400528246413258749598812304002607686656528806028152632782334782359279872400367590845702026344504221770377414190001936893608383613680162132337199781480442428922799512140123682696498127003993707996438138894675440975066478289399758302917733212019707756225052345032283389184353921875284107851176693121326578529301244803747859260534192186218264927390801298560801567839238380231408593000861913984784404696226928269303333644691387811360635392663782186462359395242292226214305846531418283276062250636334594086219368965486608294702859827229389241004615889471320163599407592762058278438426111519556137720395730073356138594545676954548285629968156967812695369458259690096485165212690129746804954221312431159421184661754318827399099909872643104659446830800296745389576675090008461577806753829028118865102665217155531601815928448056454708122302548904645876335980405058864495521739012892281005701973986849905615738924080520638054575003959354424154270470525020321424068447278322217235595548953093423253906517607806520939403224026520463115588805763118898170013523618007059537614210000192163246340055422584483365201586015012530175977757014927238625639372936164765353517789823811111263867330132849055971591409546648408168661804898975528933674455337690580868212637712601151591855526052757781207913263518913036014686425249110190549262855120280938577519342646773328515963165045187493277277603099793818266817265099718608104665432855034069431559432579690411650421455881803860104689174279433626106764371968827405990941051891439847271491189946760231198022054462084509204643380313826434761690215201460722505464490439131796075485307112239851129446637703293462355300105956135160556743240345689529928183054389762268687264911519952905823813985720334677802915111631365406843436991332016283559566318713361426514319117178573872927880912881875335189939816112007326164568728524966915151290928363801888769985045516374530367983386029637367430479748790641116758040243467866916758217051114731211246958331963913118382025808079593552588735060448121811701700844724539297340887334416328589731528520394424625216217626973681880551031472379644830115511280097572112155558119177910038018976834648795641459021629529500461865073076295022019342329071310063590016061008207930445068218490356175721559782278394749382408367317277352978653316345769005319400150624597206793444572817696497628490989750774849130735732218093654402540104846515482521591666011729362163080850076379435830512469944850580325408077937948636481005656287084394687811284264315907751428208915051586971466624579768670039599570140584288148414534331151481308150698232558059077045945055287363150229872535996173089809780033640356108873702785383883469769772117488500106038928336853452361184737655563723971276887762998960878455054722570346729197752753904276770218148669264468642544166310617785896840990822002977945130234521108073139703062150888098881357073796580993758225804487658382345757756458369999752206022925764346558259855370993265146455473079239740903329424974471581722171924548125736840088958422506440564433900454230382698913932381821441616925989655930334938302708875178776550383395413650292542145900553714730580154363865375233065794849698658994515374290428381975940786484376583850734491067794666586067814045151232436373401088402052723068800588514699356054082626811862923185367478054996099071597001684231826804174680277289627917917602605302241211777608939721097631486662723751074071695130013750676412836109136390040316498358299145828798623927266306136236419870126163094117062161226518181440623419865871217767112719142227271016896679172860314411306041111251094969644873256243568291925378980203370531455080095061057130184461143052888193712579465616609186392463706222301961244821457537054928380454533652144319772404731038368072626448924988507220719246655339290278413005418655789766600665807906784268184999493691241905760648200877771057808747847380943426203826759369272111621275291348366273994244512440506433925462531641721851270094866192493864961373294721887009829038688133768676071929386197178160434167112536702111466698672574524578842110245755695543196449688736244423998757287862992351876924817660372917840871853409418960225158755302425355540001494335347883321411404272619302238494567357543300948620812967354358973476009071835717186909194097942352442912791642878962571225919208679295178271194128262596019460811694177496371631890093102064409416508890898474676987478001766081591281294606429526633962264069396639052304673047441032189978218495625029111133106119338414527391417720664088548874117749517588634225713339400099180762161037212978941908301693818097399177753014863946677193721250154124070666594833878258440244332787352349750009506468409673615634451308364062405312845311498519649266385730099274899006616451140750853544684547050442301567510691081043147865258917027751657107180582711473016950630295012442094049173055053388939344232520813636535960540414923830733457035241192744905182876553406131885554935039961308670405517358391981814575594686086020433821565762018118583703108698396323775405310862870626283319580500020407162339345002695999849501012187911483897311241824851774172405350218438947072949912570328871210470313953916898602109789933137606561405846820474771268981916451485970408537143261487468034937978617963573782362007885777103533046862827761750882524065744006508235845140894415883616966223825971588803970773776381434989571501946703507083588684085246568465531075042007386475980227068930105226811689206952876660200198848041279050688927370186894833404933293398593856061663173132392663228506052383632322588883380055015625637623985586544757450240462060919124431812201340691353375945100032354364045118929281126711492651643589053197122015295049422213921716224543313805906796592340485307272365220328014021319138345721442877177348332285117154105534383491804181829761555863443614895169577146143475892462694588985527047250827153769540717904509892197451932626458613092003503083328417948507898714718662122429804239279094926312520082382277853559022557106872547703869930230390432787984268361254279057428439173652732840092130704905142756006046137465869483172842500594930442746328093892073692943379112691720265887556432976797018290296959191687909632085599672844434035151782776812059587229444292315339475321663130556622621956030922135208428935766105814051532808115973664035782677668920594240997586471889157154198946874891499713529272469862013258040269947444503581340003462916203735893538006895309490686552412450010208869197577175714018725737111139066678068358169697485529116155408741515349876756140555858103040890937770416740302371234335971722589426088611895342067083401878727058170455145129826898057455155921128591057917946504997473370842528061577001689868978744737117606301622199754793782631262197721017396197480486196631161407542154897151308202523582086695400572141593750960278601756497518205346858792586024366520320529004162677337096978169171620403448355303712914525508282973833414844479748134219390052194373053851237679504624171588738539316768927546199244456916030517894075483824853417586382647734940015068366542422296919658752094089250824524635154265018554280966312271277182059208930324447794726679010977221848878745488652069627799977623078661740324582781681781790612688352641719124480901428789896033283917456656665931920800795355635675370064216180628036521480105975724310387956746958750192576529943022636050191737963707671961190965450629218729205813291650967161690200576942505962364102849862799130280922629750786873141686448866383106106037243681942666327589346074753310883603338631949911586422278766046457215097200044447765802160436155354760881700847635710613001456657530497548578038583314212635882022586118815322377226664127626762951768326185370660117822802523779739810283640962241544306808717949285038904694890110033872050256031996503378416006323297681188068146541426853030000588685531238287642345350252194420824994986268229377514580490642220744364753746583447934830202276121339206090683143361496518679610013766898877058838674080384662838512062571789509824293507097432996858120083968953185062265689526837932131497988893608530325381182470120013537783607634571205533740945214034843000479300696649883862338470773298632227972407469001386047535025365941653517792156207643281214845702784658892270073882982059995693284312325779374068282346540278649956567908227878950769030389308072276228378546460296761065586680613077653850710025784815283333118580480653781272197318960583034525366610763382024257462771013112887237608235424459175723748782031072844923440827111836620807103560483454895731352589000067333558580303135352195742405409526860507627172794994535887570870766522142243025674326824448652596714732647390806912400434696763469594424156552284608185243009135813654351696314387650409082214723603989811172758081708631274050076988681905719707936341610313058243626605210228930757319116986686269566025634804172248307336892856564136573993748913297721384255262575978588247432656888040688434339896689896652150455306409354700641231208921468583374447941154179690818664229392107748049189292207084121903559423705742097355719693707903909732981217959260090406587262466015709489289961556919904971711484631424386273507609169045750562874416579013722376538267147636510305911952960315419306066652763326334241747064696627135749592801466863808025927465659793999410765402835525220375684595827031006657937718546177048850923487712732364025104483740022240586445950429789471656422886744401343552509504681557561202134393941636788024825395775341983520188144234114015011534047523116679483429562687365304808984462462741154421482322231837019781911463915126940329450993797619895878131404525901186286797133854712217705129418722733523540695861288161643760850005911015836741339839116878539950710831265334148184553405415413636664265061540508447524014851184778114258066942335252758186922346056125101913453330861267506472291289331592558171831974188014612171035773263981548280616688596014576747510818450513320807181540212346565441167673889055323658438834524558010484253761788568768987756313014718389701426794746701769556881408886122546601919543668512958932998192476486509506670023214379424552119880205804108889389871777724126248281251328688536600618673896057914287977813957877501965748601415111061355398712149269539317218702125111174263985748147475857571469341032184869384264974836381759604387505019508573202125834202245470416420513323630584011387675638788701020941008925130504642142431996946824616679274714564375021839704606397078395854894878514725962643300067111460071988563218688252151058715357728084560294106056700620786593464926809967796131459886717587403156001169131811071961741553972776936726167255329152832097841316075954304952508738976522170124545342417315284347953636698075510466002574105417627452877912201382200791462154953838527148840627461339158134323918358814986487111227034362921715290419231879644530104103912799532028681242078234084899434650500928061865121443104672353318470261067554619129282044726303076029923169339669714766484447371216006928811747167611715199252514670507731457474814186529165209317312000483724508661130710495332022132341162843883422397926042625483820787185957440831147294487957493340994809981682908771325067420232790820063269016233197127253796999002332756332849844660338794306783601689146220776369359864888615783722595011107629491756097413789907223550581895541532701495184498530326869165362206364316345111027726102876719419700300298975274585570020756877084092221182375030252829984428380466215698849346419071875060429011632398723387659012908688899527361593486172460785821276964713990888669828386459374632011024917017214258239593888284719164445245833989140642482957299685186803787119772475090135629366133147776936945647699516439605147237248221967137476284818453846837433852939503166306347195638422429291177945775234623240009677429258158024307020037218895361356326403604600356288489281046607222413476987105468706573983676502415267758419434892939182777800004591907352802261091933167228189971341969322764533889236695068863968897432191126355871547171840244925607549324499386107136300379282931564145932101715992995387933264849705229511623001147037209486753176188962145326427345987451983712284194699514916801710923733310283530539136186116711863396400952469775937021059025911006568194724874923342606333532014647828932324526845784324691278765442560258329494864507136729559605620832033802870106608508306421226054430358537546787354623338665465895918815357319004586336489704744625990825437374273414449778047220205960187632186353462309861597377618049155489500207961509240857206490475809794173170810159811137466638369011454303120332080123535195405151420389344285486197176583608559783851937042863154840374516259819395217583445513402916969534624595429072826084526840127558220559052476225891240498738634035059716216462313345938502643980995197309852284413589911555606998420788929536406845600358471061044265411839323376915222897173725384657563328136192773292904353862580914625590017981432842380128306426291614038045871000239966852432434888358797507410590143642925062991996219860220216488873917440787208884847488883705701376111667888021983810801777318820723334779344535720952164179044655161991742155308725833673198600140384897169573459129069786055619380765688249400634368196769553896966934919803283640017182456494823538753077469718603022839807899873167955726686073781828523086370483553175109058983454192183595644825774833092105051957077711254803833768106876835735685762228555256736331876073711711771494878801510036415780107419461127018427528168854762852589309638062021646773740219357335607106150247700179888772961069516283525969984539324612081629794822115892597212928598754855115684650842764381731454819711320917905148549822488178417627344800166926448855120138911659981535553484135483099356989283506460818817326173794348698239542478831080185752350707140151695379352233653114816302068927072796369135124318825979431354672344524633720098491872129998888110704560560558649845653826116879709117055347131001543859629793473004316572576724488553754006075856925446526942812716980000908602647718495988177875737558193475786074195303928837395360573037140683875028840557783209955400733185768597361667805671286542710734992462420364050310997709405082827922886996307812031629464735110281821824056895177833865198189889568169019439161156947587200531472964052355315698682275185187238435874983552202169585414031036025921889252687970153724827715909915859131330687692677978901693274627371388415636563978319841995449669288957425232247684430939202669289718632035798758150516880127717682104747645622346866646038122389854985226347150655897831967836827936737531134348511144228615471070339717960178821102918664627546825025541011431460167480199054804021778921019859301368349275997732573277222647064026043674756700120550572774922611952510928644564218689174716002029346214538512136405652853632473789384941885868430579971616484671909307695038430868861915445163186385172150214646844758021713078324126951380123208215640977527135239344144405213880794952044808999685536392197418171621205504355162381036481548901005380173190136201568055232875385704267094322159280015633359991863445557011097320395478553201872285615521201251015212667738053385657769676847938549737161628277956553314116919790833471895673822803258484011706241673437525043882247715703864228702212380849691086278445046979130758847877663370510028873291017296712247061654322082611773139622671537874588916676309094775702671526739544054462986534074105332033124123569521293675669429626654937970280284743581582009516305681001637739639221851594860749168461210991318150883805326513752626755732545245066370782632545394978756129210935035006587508139480578624553046179396009157085111394205563142972983873512010353846257272582151714491222825151654034213841741903469099107102974104093988041734381875114316202267229661050827136018313727668192979919111214340515654085580478125792181301980439857613158414748838438155342099779030438054677994113885359947262831198944355270454616920839574288502167334706554904510422105302906510904875826188038206847657232580640588434773628952083183733866753554927727030859285066312072396089661708847071103903203226205972599972896181313093270903110952630398193027893620882183982384884345952200058726836454973398427733821371132653605466785935936206275291706636882594939553336592086628359581722398734784950406244734262110533218212149255389894967987160376285992162170481696449309392200157301163890634078364436097860641760644340674273125338861406008641085405621806868687658897482834332229722903806877667045873772932013511909593060119298211767161964869645670673579883738214617195324215133993972807589353311028382077381527883385008808803837483582781959859570726298934894312686794982228047540687631227811200982330939531220303002421580721550326688274697758895559596217610910007061191316999968208244601881415055471777216683502309881036438409483494660747029966242417584414956880583298188940596825228905653728483027735736914584316907814112052203495223612775296656663975664239758325260821209759645031825689377257873194360985772648524310231271172087578811890480843429724207088349759418740189848160111842703406387613180267800075241960290374610483142502658178454290070307569755001504604587506303781484344366951259952316463943386370180191756610990686429223762353736944644684798490226386402913626458062619616761407338981779713816926245032241492954694623272024732535110859948028529504136033432654381125173022606915246964280263966790500210118460481210051382923037582382058941986356095806705035832512677689536503848757689335363023264033237013629785988914327912782334977288674701996213838540157323330991410354997084094419407783213562252883559847166915070436489776356524555254973789897778302168055650885568683176154421072410481706686525400432822086618750713213163158850882829784300734363378992910938132411828250975349342613677143876185108112193471131376504554171572198247906609288362299906892410664209433433598750107641369099539945843694063745492170813589971249102489260260051721599628325577770493470099219598900036103790126121725917916122861205215904138725525292476829204347383734667273161008607868616414086178330406783948054484396344039012664910664659730298450620311390919840187355257705713393254942048895448503636990960413771689537467436335743476686692222165244320622448657487564223345198580208341539179252481655729865642325331316281779634120204689996636724591757386042889403907968430443166336011831841561059767086306476202045912434987301603283413723116998589496219196891945422122945434267289893582106764525248425444803868178526619987573078603154495094142599554009738684354050708357491504213994074420084723068295401322720248824378473574108494700459506056869816981635703995139721721517928428659767635513518571649640726848356181880660453140278550182290058228912488435266428934091216063652096531986531028121828240969644799554485214357332274456892397349940715180769184009429232236458305398646916008883326505806357893305801902961878754553942115171782971047138522453856878873454044201800335473464603559404006213791860888905419070115990367930782629816175289036689586907521804449865288056776479431640536076079910865033741982404725824957330887048986085199363711699685555090465577437397778828201191483649183862662390603475607515342544093174944918896645535154620844093842241252207234869772301849503615815886671831988892889091108574101514183273961225598463900675110845035920379877779818011878673206049535305478975626879567625870976310155373013299699674189985697953763224071084825106464076785455951050359715517374927856155800638170738713093897993360802818544079262099381496105791422185109513485404351045226191859697875050474160661361805491253692725757897630775496927789627586029431119876606125707781890621851638486036994722191971271319532828972047263443033680990667963517509073458233173845417649317134591438753902654894225307599538075380029262196028212078756182150659774535076074749323782083494240431984601810525084640216992556596019627537759971420602375090052488637298139298745611737154066751994751923515648272665282505328403963546483975243686410696724162634198042927994538689155814434721424622589253889321174448690619180485931310320089959798573606559685887390383040847854667505522848192841751855633179161393015352129378544331339604265269249900107899572720376481377545904637606378846150361647923773056774356997708013108910735659232160624457782332992407115943915157271370464160674284498025243863012804023220173483336265279728993223143972495070958973307695737810322675156970477170765071529406223516114974925213005938728265159935017042013387912861632128435831392481109009467217890951714140756057914091001802306292135389549274896953238518494980054324218073789986172571461042916311548753552810444338428512816092814990921589586269062979161346075163571345714437734321336838287334641219103176942760105404243969750867131584437325630956675015947089071618068681374796186725718748135179925860786839842498852976911239854872342416285879542690490723051627709967192983722717466086912627040983675732192409230694675814404750054098282354845170017176374710994266526475812669987291610850329309245213788771932518558884409197023236206232521634123222085829499140836254390975162795980815463559591118353200741060600056830720948024721974665000019631033157072356270700454023870585424204324798768365392313432393501531488556454803084276257863838260276124289179193632525527945280641535361469188000898826153902392884743199427012543794985820539597501575916839623195184640498974101631695895645954117571541634176536990801296794375916031791905875182422388654518892535016453678876312609522466310189320826783306588840616875259991921540249346813897995957570950110898170627518072318767878971361278150338906192872052724340419840485329848703350184702545775989386814027428561941719078763581590336854421338961778671818346561546423518647177697301171175470673585684571423326622148075853331827575053789998505214256287271570292402796113235282163534594227424530186298866690436262856324218903825255031116995357455146005093926274803317655650533928614817622685145562102228833198259373126914984021211942054097933831598506233182415322214484228058667843399775864836626863184482248476582556558208102484884583811844450836195223471230026255267593211778702733704173074603100977295237496894358401313612415428440244771193834350108007931755716541498147420118679258186045402121605850273361269100171261823847590531006865612020860358698213906500093889827069821949304579211351784523916376149129181142013137404576210814893885210490265173335673126115615121185782804223743202420613540214054016436365873041885818051022662303601688046663482154852907172418254059186372318247674452231536544621539882815469813701517650462378809693733200622918533231280930369191636286532231004913355125172932566287309621173775382050382698160897000483505085516342673334225028048393353091612951729328181450897727823146433727697136491952685720565386436740543743147528997107356120267307544870747285711771202965533645356311909224859118879103738484093330866594443949572227233650773359965297838340886547276789706380835154570181991973119107262032465463162959678339819946617581566457104234170950372668075822779866522946825877885955729517984976681802547544926965952753111978849834518651954067551261901522914266343840736740327863582489232904950049020193766886048743649189027202205403677200571944084152506052072375887108494418557631363052787448683182941404507200196186645508419665217887347104105343930000775790028494324339632737587683486366376365670230013536660948452700262858383089897074547787545734121837990161725268272135695371353527950868573459872679837292267225534936947846507948030563514975989871352906018688313288737000045994480237948178561456324215163874768877352016088534270886190906232348447738883613004649159734678604395751849560464608086953887589534132296118337144991267697669463467417040852575467033715507527197673733008100936493814610521777093447267972540617138463884649418153180874689980895253886789215671024973354541954377009968276591559955979052749165995273036573294564378051711613856081316551596052789982829250101370725509128438343224052433669454407230431595493145315804005219634360121098092815538545713563101142007255147912498598076037342479181132890304332752608907601649809108915369598806536597069772179372565808781745192127433945066008626434091535289965269973858554412896641497419251676920994967527079008734001062289167415005800382381083005040036225634368523868043528322328331018478822528258498529418275717913981781738194217989621586177640412920151663001868347456548209245638726804412270129045690915974289782168604102696602947033754397069294049896169773107870732486913212340211806502504082983231907789567406287375285844977227722939285767444891875971497243156947617450303989324914492023982364697640238349472346147603471299319359428268993420758406972229176615531789804712262809172565054318463187397985788148813298294078844745441573727095547437107343125049131239132034970007930756387041784748806044609932858535634775554392824317490629174417018536229086388100994257165624708261225695319756104504386253469004218605050129926509029075568060385151073561045440357115586525485134888199042432522050266308674849365211939350631117984505880615132171014197108496851381215699017146321232587745871552665123544222849399891680326946242748515036736240079309613051662255146336546457644587633518062913894653351656901653549443715773939067566563466403658896312150466495984173262145459001784893564035024929835550252244601474632739403283999240208967870922214817956707231694868017829325981076427305068288403225053616982520887964913658250321725524179886698384541604089992562862756159779261777145118061819047096398301585854007959719000122042458019117678286877640060661765836417229179622457776962307619548034450791568495916263204930728643277981733576669606173212401310060618024988665557211464242094300544654304387118649644552239633269896716541955505472092999448132762977109813867121667740720590503495658929846300579697121648539539445676821071620862770811383197327957269883008750836700723654572866452903634810858225029601462072037931102041412773167062875035448726081486390015770093683558557197947388588852827498364440276829445001017125377328220140455972776093989098555071687405700657173377349161918281568182805178049520322742991846797680022533109413115950722642989713953467871697670791182774166715814719538583244770193494349476937621346294695961045986206084106567950079716606482607020691495453929666969061077011649486251110084145893727081565427026335134127089037704933351345339624114335957761346887423027752574793147853635658629129937946168424726163341106782783897405880479254437805271466849550493606888845889883718249704534952197731792813476195918979117748496634449418772324076642730829018811535269531335331094589348209647982328343651671879052610004846551950906687164710454536241494128810472873501134139575238412591922225071164981563189929972857528493809700907778249118181367070385158181415666421661482286705465549098439541186358454941775243869634733478916365359661424052405093613994331217716195093008773349932934905933366116907795402830045743124011111387168666778375067230860401996357925026915843366083663313104264740458892555447237308994112611906329174392897890153974866108431770637681637226157894439840216691414168986115126288866099004318234896085585737136106096299150534014585111709780263935750378704554935385243776867163027275713486564270003336406935241475130334318746576838796867441530284036019433901738705818954049183341136641728136731844278843586542400240781610587228826663717781440513999106523841216080183478996342070874819721132197242225832311286229459790569044766359417283099326709289390296915409631916987653995893734159990444284462570579913018435594478449335048607899810083422066796768724921211575658078135382633614733446880525649951100189487772997736770690253785964984484091758414901177376022572905031907089491825844361009207295925362541212942590829913448680752080578481761825323245154404852174483458433089385738444019781522201739594866501680948789914747482631262677235951636751121754081683037100786415994558349486022606139830877585785797154234310400982513517353552027251580259786937753139514279965915402240943255475246517312300150201880679980460307890989704157108012469626283771727498361738224288341377341413781251954210038050771772999771079010922125105306759874209233612262025668748314661538867074177375333949023065478678714464227411369123553562382969005235241102571946707171766813962583732825557624336125314076113882213158093392389287042761348843786635493124230454034134192112586491844990411227482232537758834284671769274561204181701058489375814850279313849277414309875935401753629391522151168368876957997357070680869148320052381983868484501341158070187019102039228176334823741366212503515341855978446024605866485647074517126400901289270493197021043789802603201036408722332673500213038221544392804513852610446984305103209150554280479969509728029298762385873000976338629431932386092631641364744728893007516270457118294520041997669752156922830699068612836922611237849551761338340840216394058358826217945434733122129774401026680584529454799519196007656825251015176237791164636595427303694110759027360206840447709419296584743473520397952353958838619480677333137265669505222848520085982510742648200508127816938751780593915744818947392919947796281765082382872714749043054124002828172121787998460741781958547154589335769215814228216125818487156250565234991033268929916686687879562897860157258549705530036232993724758809414273212730363706577122820108309684590363006046428696696676681864352355184858124080686655493432204890612391950217800866421789417880764082783791431247063069299925129177340867271094944461986193714743808857542482159153981147018388040601966028411408519039883140984530901415493687688301217026861268778044926775995463239696836567536956096354872770763938006042717909378706215918162455795738312904523210038353115100245568477083061278110201224501463139081598888555272351753566134197300836664346839274063353183074781074540542381016754793882028581637136831646384013652424880051621600419825143544656604064619929184340316867086480680110047504232370445761085468999524116177297100043841655755350357068493240721104190959583028144539244791494219556248350630212620380413421992797956248180697337596868005276134500496385273598587807822829155158774063590906625246924629140088331195223011416293865450347595249608945391858991947067022274810897809683030243459511755447121385977524500707861073854835427189727089514602461309573364979226628546044046020314919802137894040085861369418142483945800264724826988455437711800261608856145129030963020718286947630670721410200069630683955302209365730213102195329867491607527219312314022965156788166285449791721419628561495660623598431267199073480707749965851600005616347613559705462483711770928937343768366983584189447757587423439932028302000045206026839997833232340823856047291554798194307166203026818960461890683901624739289388092896180483455419153320510334809142308563476061372293647921060548700341133277506600106707351380050995000886282177514667673057709953528152261579075274944121277922851026126472845901990653649990343029950075936798275503885134172279210657064913127017806749693012710289947033231775297221730361008161647038851172788063444860353740461056052816774830833233489564572330122654936472761396737136437947983523273611389945345345686855082686793873060620000101961447594953536220214719954611085486365605350405193989395995829182674653403812351273969651340510646944427003177552472760815014356515583699646112479317828285843545778343889852007624630191322883586360282616164639540197296717375571124390555752910307084035743720126660338815575149713486961046619606502666340040571563808218470964851352876591422368828961953890192328442785867734154113558220704082374187439522409811065831378998421624451440859411517665019603134599514602948530867013265959669817656366375300756653641145042620423587128867006203535927749949175902270532228220075399046676857684885135954787441843131237321049988067788613392081669592105956677474654634280975941544579799568573723132806964124915322331559982419947632192872426470818945114793734837891136156039499073560261719659429218050899014790814568114498541737873972047682104369510670767529888288624119987825865166557109160402527895952356525618783627760337804997671789600875260726741236509306451274078494918401118674043175573931023002113853152239531953944875888974675606627599913174270984919466102531922578463782930964351431144667661373369351465734325842140100276566692288950322720600314629893156425967012404378076479972062562934654491718624962903315791647677125974439779942040911318808139362564489535970439850955567933700543104704237651433889009773049189205478657289878899409695758011814641845264041713618353310544083201037282902705905949258175405897070410839352146830455480142200758724374758867153002992428313883148110341160572437805580807283889567830832308400237264948396437374251930026002254244664753233264398820887038129624085360913772768315187701835005367275462874265327456993104264356546488781960601811833410453686150183886243436668730732443405179437103886638048901422651548174015222301516151499709985362731237043526666916933730787814490550251109538518977720668769232900585544809416580023836505015199990598637139795656549265959578417069662060330608830661210894046621460604978312457164029376546132286636597012970146769660242742085399849287382420295358144956025082401190253570934691413430383074436540881220170024825740354161254682229036776920649859920696927133578629494821094425561218268618540502538493063737829018134810622647619344222249827234704203705829795140056300575978471424154505135646681955754034601701609913310092241158362348703344165709010923492815538336252539092321072132837420602864214125412774596691177340470847378588040589052305267606526376265883144581204225968421299575946847183454087573774966279405709930541169890507155488622368041533919040366297798181551261347604708744279922905020046983282982357414001184117894141179189066400551881089578941937302822986082253560646690748363339554468003531344452560017535914943284807736292373343062800726277013280981870212813925357581295111827072021290169284496254150938912546587015087683934513244325667620676742856549072495701665029444576226565907139335148481682863095358678755883213657028715150448367705342276970353601790651013837827723020988104848862678349303912378534989367045914689039364812456833842715618714599709978521251416839535771413267872376484179834481255048200538207657992898309011549322375163005731947875733111395167709388578439494054429440688084006296012158012479267227744723006540892266482071807157923851481290980772245471572828122528241095880622691828411189563800875133294032047577856079046316584873313249569361675818690819253091164264147796016653109826903880817561623689239313627730146453580306039025622970967637116825352833878839749803299500246122605365528695033666737730665370541569857100014552161678387810251765043513976283571834847348259994836773428512139366219559991655803578185110683081403332614727812311012876877025544833385167285596636341052192158421305817346404616329768030751653598307063440200334167571727539270110534216822986040160692059591916053407897634875332749651104899006683681141722261970130523324223442927385787441696888824159200600222532049871552510303408943270819388797292163015909105790167450871029652250632949051055059773693933399592341855773724914550258920367683174624887599851523214950933253700761451066719767849052022106174163043195769232257183814951798570835593083352236288746439221675802210843378713977365322623076933608153457677643632767513555941357842408573318988034503313744399143884083368441864627967683374567821757147804574799376227858889537306374284789593620043391557437448601175368402241031356423789898182373218263139949448940608412241336370426716965038871469643244346335732823016774152329432919102642165579436602344294771257808795087489851143915462621924778143526409241014483900666495756548562466991518898205328670414542804057389757418880943311190168655868407440905041430450168524525222796236614647937019825488890221703227078149487672067324317283765777116296459118855894834395299717159933839058954579186993223488349774274048673951702559884107024821539953026698020317225179092017822926683953095724663492836646621615978708235232032432046864840350323423362068661911241960683378327527470863088782828706943393332620553392534864560595842783439204141173166613000486416362120987132752396652820712063038307391301343600932008946269651117983768552424137412419245336260373192601757657317064403548764085996097266674747948643939935200314670995639952741935199561342847298388143408636764396065137102050200375379720911743126130246816927729402521311308579930986177340337451302583387198107095308442036317734809579834479134389688605759557521049407825982243959170131059855328320109442409565955376487361424529481669304512880114471391299567727699099590676274197338714559542211306976891076893680379775709247255044564989668230120350388473015519832053329178673560294445580901521788465611741117085056969619401393095753736408291650778653649033450224192764644192327703359578743064650162634878216094844054935028504892568140603754637365701389058059640061431518390348488505377819594849154057241124367625668409781365784353328140512360973355891718387207553543871219885562039204319392070699230748944833127470321015878660470960486410674420569903505179374151239066078459783444175589182745022240418901941685743434453538774183338002705273569004186826361916818004266156436004305600290789422020325516457332082605785980273566143187490637642573999770541612313299707758818518842364029785239317250554292832673351936501292450741674478453676881960569360699382783155732058004015241967311870923908546920130003767475665878598095646007085745306698476525429073505019129153477276584960796549250457133611160638883071137176315815276942431498264765453143091660348218069235724639207073724546059554373926222665877798849988459053401836338382292958243006602169493305988199987616781284911363357916234098448750185276229164244465006270574585590121560393218878435961070258879276983203478952047815703956938815217894805466993385908755668056153143078352522462448345140499419192116248634920402503325434864966110426135673930094818113255740810838894783983668664714639683245292313836406454765231021228248364061236680855577912760760830030559753473466245375501343439836287245956762537051358073943622223536694329125639366929026218402211047271895318042711638923461678525932499329857107191655390049431079817306915909300150642754860498136514060347065821152944020941486365709525096711723617800729299342259468082095046714019400525464330325008610940304132621671885945976184671971677160308128343662739405208398190951992642098910607756215410485613943843792620810989910969961786011458323352135475522101341231428967275501862306294194589535423194737732520166273570090558910675622236832376057095837068456395229655932316851530327780354519933956740164947540676169717546398875489276372712202068827366092233858497293566428392489511732786308479100813274549587883887232616883334105684370560412257324246207501554328226296157684983293147562832977834238568203666178925347798844910385302249743815038854389467082509449108333096876484663090140235208227170405572181099670379942502888341807204226142352035709832073830095615243162415687154095785316202893672511096732580802880316879919562778391990960316178796322025392752422065392672266334386210801988981414532749111077072928413698028245995243613768847005155831430477566551153560027953079555770411342564288468173233737747429684841208126094469672854714880003186750802166835113118737391957901058174819486950141231450856845326493975133824356056229427639839944250194879790533944555012340754194140092574588982985610069200520755078640687506874323245476949422929563791252043871458041219687283301039306269217316443193597822908611719550997675250547980281592373260280861153383102221634455020216941759897991985479718017803156737717816754342389380172012875284608921722226632441182795131778227125338459156858756944767664194053631634446577359254542687299459039761468563091127864725827039818483142733197490395774868609063507032445021215838720034666507545727598890400079626272712827089438068157837824132603096063351958079173828634885830755626363777959840062192551685524943717108435605247456939862165543674672978183040168641991108220842139138372667842951940659645070737638973637584161076497189639536147117819253536384226219762318442643295845228541164810140068849207697555149312548000560703775166185631646059420871688339330078586485674976810499225076816290886489814211479584041001516022684954916129959488124910341777893166152154863129335810321887571465923293347443259599604628019472280364275709064543860281877155394203941548175338404422143443896608293381217869933928672645483215092025109479758464905709737391103104956971315756862543483440730357486423903724223917393542117338966991557698479106310906023218060657617836314981531081885537348302672860974901835082333794887206746664524942215661779149471472564986232334260170258629457508422726985180020850519748965390369095574296351549271985033599442354307166833236699270558556909769029853391692962343863784444526002517967699698231045654587728856098535437873612827469101195655537953485373811221606984121677853984916561873372988820994102739396078402220062092677817571169264695683015578007213809920788954971542100935234280712369615120887097370238381417138586308569382333698933434388306964380590721180595536887221182438031421561292770260301659734830061731728224290863470170985147641861213424841682757345198932591976862762680671742047434201603790716696385552141605365462313370534957456207094367860601025612755942539218702694140211843152999106775920671381999221354551101319440697388328508659673101570616605141418711917425811629287146072452557476757358032203666901368516180857193221046443580200865537696031061234132146007167516207912504802724402036356430636499394968163007266373152397376907445185613891544355120755349625492806467473718936915867239948762438756292237953246035945614267095859490863223710411469098825958369540007694658938571361007632973866356703104594830425369675547856725239543999664117274986648030082123259731746965530759581441226389697547950000706773255103059547820668369723467970977882745101513379047856809706956508041011040496794366634485316850444839056684146126382426185762306862510355084983487350830215280321892392728821983441825809389208777839062767554637110674691640292477806521182531629616521440323387412275810416253611415202696096693065235546209607213818778771616999124034424564364965043626608809370076230985238358576458753295995166842155849979976044846197667126389835293520779122454156990399303157754872111463991819585664037727402447846249795112278425649852903000628444628672681324085363616018678953222974134214409694913072874444301298673687405993381839643545764079875566370826239040846645865804260565168009358217360109989680286235828731254503857444314671667211526801116408935947630927633647020841876816044001100171872968813616652198523399076963964997280717671084786127924313829336004855734773456487246020298066804447732891979188278071350416725894111478228280300215896227588701330385789470118360261099968424683635679497697832495997776514516819109430753514991106618276602630560641519911002871765416124129136117052856629249299195334782683530200926266213627010562709937081056725524219425398037663458959280623911082039057435676951612035813510888724900967901222688848548337208274122567674555870334729366021971438657625974980916620093844824470094323353961039756727042898418527062164302990228684862718887176245410372668333773506516813076718819211915115149662601823379593538496264276333575402900400119832839162142423705783782620936478911042401657152709900164813622789920985529144927493665968752860785511605692049185356886782906838793767126364321893991251964619197198064411971002601058995305508021806656900364457366220064545797966713587707468560965366090131611617855489954313966269254680666598820190880405774261684538173963800905739832196876442979070991482384689433195452630776826620002270943138491986383457468511595428482134004967770967484928105513180810367449376789258299305124378482743255222753932480493088341883602626940613062501709457067059667200754602676826681063200021420824360353320461896510545262180233100715828522659537198781099530596153128736564652302174183886671465011687285182251998942811297086686847363014851362900967837801212413510902229519833081120109448842770772758691920752622667283433632982373731096273124668957470274926774833192194615053210586076036632724951304374839241403144281906228308389826880218278489419054924612515834802424536973992817100506391094529693480176854233469270785002137832583233028523549770753700249789844290444527554124782986240189107416945382637724195454229094964221384945277636623521750835762582733312888302845191429760343533583663587568036421314221161426185500072547978477036870178318116302229814740322951751489689834078950548133893269882933612720582618293035947079567338082031322180804560086618505508918524063605644378631116548384507758779280982416129512347593959526323084636660486035297915902519017073077825040123027860304919255720998450942146644369742458765656554000564293939122661756398582016180683158437659198782223254180926122779628214410305679122199645306908949950662038627960360262002456423717639671663863550706796751672579139385016236515366409972830520710309661958224684413009199336075989061173550725116827670859082687102060713512026024876574963662735934462376562747813627524797552902305269841800500020614574629235142661688905909537535925377330559683194302215915917085076497392838298572600305585719259746843466388927019472145468754118174579639548343493952214722382653246494722172581869077130562413901875007514904076706578447881228310724635212677703445771377411565333489867667556672967718163472243659528836235318522012433019255925537086698767324695134206967129589850224258446071562469584337971525779976966527525956613347493209316037946397307268541438164538191319547793384671481654937695480861762596158498569219173113818639582575854821440421672800946559641680507629684219838036666791745867544479147681152869958827334195993950337624354085726864519847844140427366899463799853663377730162001497185876792188435255054037370733444072304862776492056304963042581198624466184201957446305981107852063394960839609916632181410741624413761075674935990534695892234487930475366314834633467978510588650469395296815832101762350954407455773567816763803020908276720219950824097277024010062642326962985143307043857087780679004881581757071325085261187331380817168483212047667391474389868647007883460211516722629554916540902219920567511011922622180883395075900940835410597679410958856537228377395024657961088374231499839467031513009898305117770023269676041922832128669242033796045571024890525909073219979464126097830724490653764236600147011156280496365553152244419882683548878875028845512448476157601233151266456570973343368395672905992912982078995619925207147153333121222328462665806311457601680508457641912781079513968925557997017931292982494642192152944641245606279900179713388137437302053416059991163218231834860700585705085114277288878426176155179724599471469180548801675836226172636075235485145428153224282091839892515203219911834943084306853832753063929499316016136792467769736721141084504688228044787943670029228142837698218739996032635275345962653005301173990912389909329508349456673626509307768857070002282254926557468308023603248385972586850606648807084100338681662477013193068093165487695956805718321070288321300448998115798845892030582661028821688248029328948704943910716608983025972447626514478709190424211795163315619739269928699243601036001658734974473128366975285372020809917859451226893118337953457629450599512830405171832008529703040638147218330795494954729974986218456143076771547521033173767139978421780765060076243492505162157041466158994997558906127467967280060164237233849600759914701564329071347984992541218024041066989326407235272550419434794235967094855429372280332144575404618897430425475483009705526676240309239269554405194951243330532132096113405761612399005860964230029440277761938310732685723212501798876551536259735920837970544382155480741362591322018311139847857638248108104177518367715827801628862968928490786261126973130239736336388743271860635532399577717269795084071447057256947108095593685736647132997833389286533478535944078176753072163759701102981726373510648819882629786272121962396369903824727857177538547928227603887728399207397526223591960416962092455513995918594505959973464487175386373917806011217672618705381523155233147384897755323767821872297736977587524253603994054881726468649492594918198190311821308358450781014724846602380505791677546319027023989689015069415078215292500583307262344883725545209009110175964117181325334327314297787049078034060481349942605954585122133675758331108043302924064855587748064129737802387705468299590449241663344537050347152998259031414336750880178470176486714800313416224984330472720030265932908629657164943955014767413570922109602997103491414167124226799638986012214880937582936143047837011692000035765809456655266134022654504523057896898601806186650257569469296381431044329378775289249502503760748979707316121229902904764647007426882131030490365310312334884449712549198675948011089464553486317758501013045296586114436368537486716694630314336135773721441024145422199187016584151633835341543029468779525267456580540405459751825855049852487769895570187693753117906348359640088270247034675775564546831030494842540331366064861945603991726184500758670294636160664937973834534986370170722596484653851300428301352944838825911860774373590912320751907114420312443203530235353835001988273689361399666781076505396835970541622831323340300621062713206790681143688530407287707593626310750193670598521258990598026867300637790460452081279515799400043980461561428275204075878077531877810547524848315802187301943712607449776248422478468128484612729212358650564549368664511116221923662616401660645559888050014265358909489520886602660901220264266707743000466136362568230213599308362354443372618487166956866618504656663636267372839882686009683004764567682810109269353809387381098020727883757201006789113660008066132975102785686272024688580821738576925737869596920122471556776274441590708194094598211721070974179963651334940167815452180173300371727532187921937861814897441940344487707227217413742899693266813848838187754881522028419142421946752615455052571870651132379942429003754868910274763478647419179408587140506274189539943211972583631807999743948518229868079852411695328382585231762653586964882791597380766912013231519471501022604005631178848620811704882968066840322213879423714029669504025550829421986550946256276362857765894544379641576894959675915520059414843916473162926042919816859952238387124686428864965385301484301937658615647635639800375127911084791984601226045853786602302026882193293565853766216417727328219824110265705037396857260009099727321606637100000086445515098914934481901643667393683518510893466116651027263478093282324852064089528033977550177606820642711595891609575537661979508824496038126854876768040174167963593426016908075758557944234718164921486605943837412200132378148938290200283162993015314754272784678906236859310235518814322389182809681293285980803466619780501590685102112338939817352260435697031316385618778840096201065208738218427410846442377495518889993929466521155179739225232008047344112588211962448128192891799432920942508879471999261638636348793757071929409199838678608765211757114783055686640604730504237846817314353811250069118888452265243327269695558778473976545624593178983769515384887847323124033362227993638876545997198238203039145411141272164538580830185643123887371732883655378902707277181883614410785083231460800567250320173807302487702808673521891923076312331305076023284393405709636999895429621264892063304440332817246613491112192393490245711354795971982611005694112106301985806291235803732798080688360299900989601196837195529081503085564203879705605639935851113542304712704538407204991538459131438738635426167008213277708411468267917901056392853493804337600220719382059666509423423345213968285433200824630050115284886466867624307346563476236667459094678878437925649738184796538902907301283331510455308939947797708039073398003883787514862526835114755067719367822358328574017936850120711002735095873809695024592855555173572628105607803245630821211415105933092398902626771921625543280317917392505248021026437511180923381886046316615157554500350112803505372419599418483126912863265843828248749537692165834820302614473779140670765618020245848922570113753829717713108848378189048199669276261291759289584624527722221640401282243074964212724296513108247422265755692634886295453210351887721777073637866882765967195735106079673662514062100424550548763051595331196427256561879581678696419657903243814312371882738310566423937690732683044163043775540143632308292506144138656145570925738198592520405216609704761070326053891822522454943246141444451450289816068778184410716585204746728426581840141015757395766328887731119980370567674047006977342657504046851260354860556539629774533763784418400410970249707099576136145933817183833099531915737207898718243530051654879004081454487700360293353774839411141914031830926262307160440973504692500632586566396585504604890860925538046365368624103394430547644903937612791563813172703200904693516733051992896851162629413482116873808730277534306249031514411010583145956004784322219231972274123759047856842472080569655640618076375887660833678417071888564780970884127171525917314246714132272790221980072925770874298094498217188953898393575603399205209384022172822853502638948156071603169500728714801470850058004002141652715161592105848884913787767100868611260418097199592349652473552207597764529876866372049073080562498565566285022911402388600727153353957498588571129068896541839248438994926110823555040747665356608183472094233005234612295092034340071548046492305089119328203974361652877568954716903140371982536929143343889287796666805378236687140670959305829032769399164828909070817200204986130495828510482511982231431379902921824477421791811192080174234411842532752786192043511882460147323420409649435076225173206991404928833523575656514040394681888780149626600439544216891051127291182156953511802786773759208648955107637800683643996444101149709018095462989616457069319629542243428902941514414347243711535859462027350633429561786082360959128650310800477878656403765986483072550360835405511734493623968252522449785240589957291815760445614447272022556489940862294068111260303243176705316708761987373856546693038393608150158646037931536908124320842954593365501207434631164685849265749525530478351708703980848992384693016288846871338435883768716494823805190751446508587287228913223105828703040819635382556422605955254207662086858439409735789045487537755449247823847410926019861578911376373661120371772956916940926829686221713797058923237312878843868818984796350567462615439140764599105307069887306035599847533285690525885243565000122210219769589265957721513655650874183160421457581860808494150554836123230415249682776035594003670088328230961067429141050955228944014982571904503639881170171846408968823684327620234632450272971653904809539586778353264460892185814539810313735136153800589352074638219014529981185932810805517103765755400939870114062448245209965963615062157202839887376009335663231617256476689515621451499042690212231193318629097827298573220888083599754429865720384656528522767394144692380446962898026071436791609422188149858951130766012918775491918323909762274593756500804285400164874209997159846332611179161400076147998171491276837462964270019856894969430436263634766283807103380189943250305389350748658410496206152650622723959238915540417368635827613256863911810899939696950643444480904214194425042271186145847788440482986623669763923040185664888219964113608703938783338192877496007174795909979575128732818661459066606980899950823452573519323915036862175628332189762308164454347900415543141496524995564036014992866499568070972600038253106396006783103127836353209812406143411245054118312475547596744151512817131621666995666055175844346723836313399755238752283980213778543385091846044965672060273655603394411458229977897525291233858701531023377620525574224305036449112355044229232669813366445019321513531715913133599758397622399604965219858355143431698925137841758894078548915806571107131652096684909922858873508113859812610736745556820402246030880154836187888411381696474037836416920259624897759461764157783977617451555972005026585998157302313585513604071296781812169930438518723260689508591618993245088485371306791856832528748219948083063559484350893839371148847980538934485154096370192943742226531046771217576948239426735528864781367296344457117503431290605982557515447561654498575900150315079424342163060075082170550916785950041066679948255542531148899660270424329202675584513887830561603965628290864185399943081557440605052180764317688948927866883699471343436088152818714174118520841665997940627016262473744597714056983609742959177683389803333734696578644864083004383231601946618872673820031679874701641372705701902799172199457100852563476295902307384409180347597143377052705061464685836906895663893462856217744396487799747510179518624001857469170852407356347137063109388305707048888444673279753888246978392754429524145284717454202640644644806243870410766315210976599638579010739683578241177277025080269045086230545579347127759739210466033535032253350293518158562323661106205268597845058547041619412834490432403668775932780185372703288498193758884009564898080957089469794820393255208348580720743428647935130774775319451855731511579316088822759145617754005062033196711395567833385463789752205731188195919149596901084798806229284479301661964748387371652919031536346306530579349427431633544674970075114253121450007466214306947783248054711446504393526847858795147467946676120107033897547964432574488458032857089261863583178440219985384579168773789751841582327301174064466995948504393722681381093274624833708674538252203710988696100321307931097819536809203551169523974781420688245638786247588099863412709672703298635043965329032922188667574763282951941555543280953835717204130124895839826649256414352185301107072252050228198065589982350747719467680152279602520333756019280140322861952856880946199790701701628276844649202324487138225359809458036872557639370891636090959060260506210607168666381280977338127393747889503465915130068270703760311775902274718156479813152478857330812570009440812648330430116631349988021324743891537918343674126386094930220893135685499970523265049844348300134088628268349032825645021747104112143025906816334308671617272373337177477365073550098532499746540459652924777627950928532489179376358545772850955195447931186369307315663617014447778139242183804799945044361594113328129168922164736504779757121952348949387034505033568624700307410245878093922551348325413530428366236986609074580415945675729354767524300184431001566261692274915844335718048794189448030367286650510186563430708736482255544308938007763049899098598614245300030413285054930757135128525445783162535823706676289407390461425795632214571635429363116708235664182484199284424040122468483194243169566872086553229607956858945006118355021339758490932716125434504434456796908484335945672493198498764828963262926860815953131102703875943107416475332448975661114628523135156966136055366160360772153216427076131903670189942868437994561058411570661038436788362707285194903569794735959792024623988067087137968058159604350426713126413701941149881191556360565906578710394768208382971289583842132728370628193140386745008104745423437437610847481083955599163576870022196884649992755390986230207830524435777085260556767355528710342203106960953569597854624623757715082722591131426885219690652725431113330645464613267284830892955234276881758942015572004589843340408113211617464232371519853330676151131800575871987804419205478375063869137386935601448739810308430279193448302519053710650137457716066401446415701125443229884046505038315250747864136486664966304319103785415319792786598453143984754950560976197318650232738786055233739624741372589621924998317627698658936569072264680370020604244983153996102526283926346126038776148170438964597882370162881726100178784480438341507036897304791196309279154312065023191552708201217596456366625663918731322037950542196422190017684062005239757902962952350016463129584952499210868138042753546823249701537978743892487925143897048756907192494275509981368854229574374169455336029720553541781269186266198512419217269411207960949782123248558031475260916099641872511705477783422625660884213114976550079622333886423694381853745410738051299675873947072576878109369091214436332851802544989885093648983169725640140152186818260957337376651109830891677768919503926375273728812011227983243388333750075910648064859777046322805778180290895437840101682569917943289358063529753939776812055501130177315253306185356401277098352018671426504158704976005674578409656183933094509463519992446607729662656595377199293410504421913037194250369798415975916830141245425388571906522936075088892834099356963998675221199255306485214146135229625928952364190221364839334793031531060736989217195176952871869317870550248544973486486973685455654898231861681616059416299317588598764101979998724186084480793747354909875740638267872237627263871322797500710752183904259475709400785850402187865853999837717496236453421933200896070017398386596421604912275362124833850347293724065224443282394450154403925415798419790348487734958870201165606180100269255606503521138968682190712659342058759038895239443134286587603505346033012994489455055573937655964064958970254556709489838187392046697243535251185947905540109518809161413330816525156873160292479851653158420255592897828033136465741494781117245659656071703933495635407713014095383981398762030583034780852888085846730989694723440354259446929067653246207035839100901944869401781066891070066740286877130637889205445184054363474729763402549558822699816393357656881664231017221088385752173496807358507100572009527738076319125471386532453366476150691237629354480171526701283053814686668159013997667347174641691882441282529917024359932924750977474470884821708192089019677121690373580830979314681690785895878364016796794121308588192289038660246866279728037953185130081999543373558573846441123317828085547913870929940951197807546724732251124922374800300588169905250540320777116880237175907293932961329646533678720630723451852484320246771409215361197295203870037751864757107254922546115804023597296949782188971084490528600618790262955138052915654124570824093729894256076800513337813912448870363825448538183797252535946276097826589934961616073367682825856981694705108235466403472476996803678288741662056897019153314595665080146793120343191372728650506717543419153150352790687899128263192972909705095945126850961711818789385159551451988256110814909143697509591995145148035302251824568213658885363974574831553560933827772397975568370243833914032334387417878539264574864583576952739955623864833851992051350863957277325118481953279858965605322687148382597667882096690699250790544239009826092981539672528289821690832919490701279317468721367217785659882683428987866832951044829258643276677498908574932958681560212574044205872662251232184812507128675237099500576288239885557919637134487216465398272652574866248667912672295949269122093726405068407091017773147811513981440955851789226539107709159835381901160459694669524815490692077912692178607091119612404172325139707933101624904533929607256748318358305336329225561322968380397358988845734168863969142367401494894479442024324562495196681816642667496124839664365652571694913047034431770264889934579081831056453285742756080791204691471976817039820534793894697697797147776948408103555790275072399766545028508558183620890697770826064631764999899319240527490743302805086312380072139199862319677011902297339496806276139514885640048119742973065687713889161576830644012807820538009024366324166872835187848837658367685255919990294087255455452710914157101042602245584491747233648756104751033524578214681839410801907355221738728933805895411499336252261215553033076208760083045776683143499857896236890672099483464656772291121528340036473279325741374726239043864479575400314826290547770224125858522175826862448002146847497854661118378972640735666923808815576302251427935214030786006745190083637123570139254904481422281132804364886230099599467630497174502614802496823268393335324684144901288443430189405365528382911334655368926539579148402811543136901652641210511045457090182311745339716493063637791878479988984401213431699174745055301105308303566985362727529871847779978039083776999525663551382462691201684604171628882699967254591448672855878944944410323974234243273628304843615297064241039628758299360231682618662735183522858463683007248636176718610981302039650632228033162093380934299995115041451731187628459270133046977562209049107421890743183436466961937176818563465930083374397305077667612074242689989461712925477583852713887851747177580457780185378937956280758018469130823737294476054886683812983604059159548206301902396317023475829559942147547901125380669041685830165867639131720888244436127754461745088549093809847636085960442792770045281380674742006927990356531617954380357264863921941383743415064233125798059041999314028704668422164372635013440861427749709739146241961643996307071538158413834711699973465154720229733283949440998720103256829647609029070213685326286875305706868531476486702390080478211341941785742583590985868895811735872081056750518240183158570153474109656651335389123687139485290946962346886255745920093765395948465581161900550376370938252383000271981454132722635904180376960536581405789453098023082323934830947352891539648865668630979452453555229053604493146986121941769701685514269254121346805340558716963320741399342625689543895546275965633685393014741260875360473905990231503201290439265471114746782523197858181544435114085116324116259685974888625093790131548972805304291862861615789540184522754487912958089031032040171745124572647470572742996328070172179042004614011477385444399087278543870211667936675382251901340419189482115401297513101255983939722987356031975049284927977041210618152900518133718885404932992427212613362595454623526785112678414264606242673060768038140510804985369154810601490491454565943319352380109693452878006193302340194609309040150572267323670333522679931854193370634235815562043865400924217040921901908330231113705744888327818545942657193915601311234143364609769324122032016871766443036133266611223315835005811333279726522281180823434451286522118934833959804061553379942845830742471631151486690615572242355011021709424046291277662024015842997275577084043349305041100492187412311089102069725204753873990587955681621777977105037233954873349911950198602640430869173006172073185811659366012899032213845243911003896641207556077455666303148566741175601343524978171083872201890594752906317754135542227700525405550379523674321953841423373242494280194510221016040282139932626245943683399251049061303596997074384844875192698638991694117694912768325584837975650117718585073099787982317938485922038964326433021361460147873127646357892995706634476201822993343826800020140793831661941890305094697003488956455309306638148519621353827813350103391784622219728663857727947298368252364848386753784396462781731937971440864577021045547293604644777781216185490035368064084511712346653843583975822381373814815501783087578053371025969500663009433273348981515266435562582701695734618355809962886955557645808383220495961066139130300184825893009374741730959699304872081432467178760991822350688846840523127050646295149619187675259412417200213818177629091706407304988857393310314924641053892775115274872491400149016686289392093989288691610839557538101022208838891854508827664140854679429850930167157607275138890912357021413334087830076772745055533202869727886309646782831076245522760457712248960849819564330267724467972078180168547596509439375418664265945515058721516431211065997105769746394895503443597323544398744151123050994749714584635816635230167426440183322959106986310432163620516857633358916061896253582193254921195961308016112422593516261791129235390070234916444219253936080068708904194145659336679750501713887835273457947388292169334598971785280285676056326126662348646367335149614845131936815142503180093313988581700836170014710505918340691534499971322235333554732677936710203647141742832756096657502651078570119914908718245075973580333752547138826583831237998220050232104299176869786751442046517045131970401024709685248597192315366584552928086959954374459522481258971441240361416973962808090348415169224573407830733217199586656439540368337588610175477128136278930216732947643319072055840212939683215462132790253831468223430344898345186322693645912363660851852688902757222001477049163799142899263692859984654966941792051464362073726155103706457893313584682707092710702261073596111646514009658435699181562750430091209761120490240873464954484195194951581393359551688173205387197386982913135587757152498725887301664311533687043065505903315552217765055986074427441213947966833105088727977916502884408644288635907031624567451853503627190688803043781968291491567563488702813232995966446240637106032708301057362699251867694136441135843972521741379008252763169827233371085616280182419417612930669007725273999168435498172398513513527433268830848155651817252989470402410038345570719515566144166297627719473716811243217221416685686348410083310443376182052556659286663098892331751032199189885049224397381218115130124812772659057403465681262744345903139465918352048732300810759000757134984286446333094141588216397472620574596078753767664128425693154744986121194749664113361777484089191659642150726882135512089932926318052418946550878982408459095993262024779257123122733043316680987811294015752517018531960386696698513012910177838386484047828505729643757514064316026508537683911647929149398072458759497632088641040618358303474588079537825384792567792118805170152438799993798592108539318402291440139761750446019620577416400926540726561629700882299918318407951125293782260582955959947772399666036804343021542802463728212818696412953679796556883936917938456814935808583495981033474770881866866495997454727890380929217418141777426751325624840677650250784389569275012764967286932491739122481561130751928324517114405427795925645183658324806393596375376982702875180669807761961272265209365390720556456273875367939604545689640372689492373270148856971836971697478352982240932777262707654142375074629247149869423859488218827955400620880451353480089010035311283705351151564615107356164309197039940888135221929404344711488882941152608568155491860728878072374920484139771386894233406837023126008871362118219750932389490404868387692439550022574941940407227881034932296020554357640586307368390762197753151321253984183757023477117130336659476616828289914480622881996553664463809040385210551472776410265137514188509512125179198022887538006814460993876452661039577437112272144599258599574429496443460594804512781680602591535957699337215319836562451026145333574037439470477198144267947001680011868489922636648194173991411378434473346096144340597882375412448498605114115266178651295035438671672982192280388118678183705322476429865101382311473499726964739475199616391092920517647675648388920917045389089266119190075903106151079048658830621114448515702177828929090463179706289524968911063490393982650919667311817966847096806944031273348185322944415144439583723438002377023409861383907552105322912623360621405752705653702694327378543542706337542076735209387937535371210471127441583182004374680870396225595078019824712945841304758633993891185928409959406075887425823425884561283251521137407963881608833966859752947906708374494891474645639164382349429813244037076049172896443199642061689540616790070995354867276475235261863277847952399064768522476557494756249331039979883562701632023567480232967584487743421799030533891802119908635827940140985112223713633968755896649092248590326830691603029039086072185504845777399282136299229000354625825481823717118128857309882913777720320070922375058523216408579363979875974878754171101472313909367604158694796441746917269436348470027471483043382760270238430936497075526466633539186311917835747082738814787019892829119350752209625346457134561707051370146064476360326284301364305569910026425433420687267221390432553455154975288728461928732482351271244069290194490212466496137661418929445484270757933699310355934810865524958173576017266958555477256567914298387584147456859006373984232863773310319980742389347484567893262344918064930492025827534971133368486855618209496629530350782992242590177910802225460691539786426000326486275056522954263910544701445304940543149239987909491368106521129638847033095016173095120575012361536903126613616964076778341598761261059994777255321023086543782561138558262230974518393022582467624008466455446476232661130156790679635129382727800415019223075520438907273356444718750396358633569151034851343530721020046205870827268670053899696318224929357940685393331946469101125921437082131369525352810704909542482177647867150692164327433823583097988360092565246487122638634413631245355102917308456771411468151221483989433871549024054646751053051265248593123168283041177035124864642902789811985613107475186656620726646681630343092238462146099980629056671875172657034905085175735303818538528512223975299644355294591057735451740427020586763277839219395021256377689801593400839654668622992612693184386790276739865329392782471766530909845236922882636527176417737993423584615854528680316113250787827852805078721317267450428783694400931206687716741652926782372713430334512378033896046830911281083655734871753892018036402966972030217678540393034379824564575677830924881450795982861940619477561044905100401448441202412606009850622888177234547073281731389634767488794119731666432042536885965616670536965989012099464565055221499513454959833857976193111684656908107807657893039757941769258901405774721865574001860213146629636273512656290000660194468485258229577168395165550822582303396823879931597113730706594821200535214175361176880742777658647415081672537463582456501392550466988756021645457391349676821296966922786385509482554889821243251384218136890032829057444448278812209397608044251756642509408341418347541241223595987357334590450862531883152497074174774845490354784237488380676964497466580680952186634498965860220129087722326854681060070143312504717644234687236667067935974279279823123616904857174715079044226462669362527518523082291587568556465183749998680965231841678540778858837671311479598341245467877662920507003357849907072776163505402665336818847492362459196378054319626667106827062779980461884125773001239401158666328978227999598009279091593077697076766160776256285324149806056070297391254077998166110257954040129883467914416671034901747824478578255942573032951718823977388438871856715441797651220133817769472231007899634433400715133291633807052666980915750787119700378134436482124351085635368362417458018547446635231232359635021741687374305283125056361808073149630499874864488856792397590540021243593859582101084822575835436996766602901803095525808719610922162231840336351620474667380178212991189542907765381015778384927170125630206855420200428873821862051796937488102174490104227532041374030099031196751151889018183738693065013530671387783692560690461499595920896249269871704848329036234526704018875464069517695960350635151787642827358730601886824566557915526564874248211366935470668806793887065900433975820812170311406557867088493584190545322223035240173700876064572040472235129554670542493727072793983125403938471600557340551569135238604552692613719759655146914189654461735287678263116170232265236401647855106734393223446934088386259336040712279276794289057738336268182835670446538323882196006170630442105667334549853695571879771594995006125533029117092836588167212393193345130705343453802256207186220656837914743737934910089126469072888682187626564686896941041385114355485694303678733866625648442758315194422654037773875829881344041479660503291150284122627961371236941387319232596415359015183471294730836241312965130331038453189876420402739113618923999114787593122113724703493808003675251089930708599883101059898342419235674779468686215335751257843013113978143871221875686469856919245365738556203233833393190489627912603252923719578886863586372695939641276095025368786075738345688249075633252657176432820315125550861044675524434340483245778822452380325413082424840731707682124453371867575763067303645479377395457605599597128965557097218834948275951163523630417264602927804748095585092178846897221300841521671550644887339188767815063141162457084201211957167253286338908221160860712114187474490970786765967069522318451796302726392512516867242251430611032288739037268146877503945542853232629046215586809474532977697090965621588976648667961204548650212287895439553406168433672363466378410170094133626040871902355034221330758951390677233400135903426945696516237105402204638592042523193612550583800641542428578918941151251320252134000775299256978010665470342956504543180389486070985307630843936442639164281837078826722627599644880965434955457420589466337139790716674279915239916341075908172463541407458085503564588640864060647636265433005711539232985224568414345396350830511502765101973504557108913021881685186767172587055775126074235176400525857986374521686563385570857534391533282391436064130842030302301001863641578759429254936850075366826996627451240229162073710781787277239593377211271546412096659422066291863587137794251938335027618270934563459254813345032244791152887204903327096395377645592123452744143052529157152274723818212171646852806641520913413410195189815468708151370491318860974765025304547877319516265958250250350152496320052702032999313069945593946295442395685441292957210215202352072002467748784515106085258975708306122860314475666355445218216480436152211496663060840979388324235932399847601381764949132056152763885257253577407036282673945384107125139572096605317993602336794175022897278465269437459018725029339572694773995105290928801779602255603786331761216783003715712933867986486635065436767344977214047840384277088066989590194774516626817094637523831653815290140996501563475689228064941338775148654518945182568536390779649170083318104205368976286794358177639006118207374115507976831896934424308952122587617844145218914730421345287583642031316025619029226423988850484310240087535186511254688568645165665803022864121401861088331053480860536060806542717171009744234309126325641952741878447451972186425822146788005648392941011728868727829377555640042664874855610401448700018410289515041220453533420166429344797945274752237581559309087240976608346425978848865247674328496778288382130059086947279555726168680872808401528721923577521111458294861148799205752491619660476042260283080502538849675738720643948752906499844174533734065429995947726190373824583123596736175060545199834691732667822431420318249719677621869400418251749927200923340604185645999678336330202731452448997741792804249320350160327384996409053051243612848121297593889409559357534139583837115106209862626767510006906007099341810896161106438592880656827088813723337817251057914666957163668720986898437183010398260066340496085770562560091629672957708246597336593930941172062518118505088229069014822570987929314559987241972204397416982585478278664728361817978969353105130704276536987030703601097368467996420672578741849652320076264477863548977615947083139260186119022582606584046772181547576092723093118714048593938833895042192991928949841322462763024934829737262439566040130921065797792649873056432898287169617635218036221695880588196926308148341958888963707759313432404459851736401424849609619942595736307257516685325604624725884707619697519606008184131762523093047869034685555229389706341254803836828634023086822110109385768231057734218467562829713047986967615382496007652034153623826308241811611146277900338394988300448900553492634244737163581224146310841898100213504156753585696402541131303175069939980660228855365899785327394451214281329455070924389855728492092127404886962211047150701454135276931663514546480499516535293804822301526183682323091313683192906913467044744933913239037155419368667299638860428174643861460604854585299870001425595978160184086151506293917245161818711133520529409415580990559491581363626387941172167853184779664081295673969496613246805042486079690717380088241052656281276341400159062002668892647349235232983129887923531510781749757273770098821447446111782077300550329401773181278092923013120151627886659150835344948270678169912905816465685536924463335178976170565951098516414651967653737624480584699411484920729101873676873954993533928952705672909097859329665071890210216807172987738723283379154393549131373858733071538406965899204526054215782333638902994633838996795877573812248919433100942592157400543858598463090750487178619517036723994964261948339335531168519137386192195879393895273413008723605564510365154735614545642219020503419128605649238678998069257653651993871142304561419672022374267081322526731369167271327928206825769841821296722763379526727570791169112720866674047880826624709987673726318199710551761369493082356734638557498547565470598616812306468408561972151388028849736437012476222201330607944596317102138265630123442113422520116093304744830792444435254805377880798252480724391116786531099670237128688620167725124576476207758530346314399636447421967505703645945632884796269741252538574351267459767215753378559789297851813983310867628833853182959906241586326665443850691540273023263574689086651658630918904886006129704909377316142394710568301385882559741404285564255189914787087001827129701339129232452605774382375147696739439046208070479718743336606964682143375306959935732242260348922418423887122277461346278284377891904377307702534908289641037410415663186436113703446235514182576829455883388707868564892337444881237965551768900224033370542386371271041292332759602236826794919942071110237603762559586578408645441991607371216130807972493755572546397842844998768869755559740623541891123142985847027973278480481506969865978243968794438413412466545730589392538479468329115098364842415546529918382407081293509343159002127191045052170613835070734714386024308914946220449746150090879141304519340023368000485247345191208756895648891580867653016587899669239599968649671686112591659040375823734226938986039620326446948220554034846051402245881295733362483351503129399549917828428439140834550087224543217254701391353273553384898404152967168906508147236134141697789480944326962492958725832574660005140730356034178812199813851520169482701900481514830600268480793412102193621701408826257798278750066275160584310865932959474843914910970187736020469800411550349154471597592414179911470683435657909951137952510356941414517550431465565583245333756516387952632996013473147333398002823638535693695451342765131242883545410612144550242843239301109362930606831814037463905806686507335976028069865313243534718599470141334323800549254740373290001963054312516636392617071069922569711225562733833649790161159431553736102485530891250663972144595529490518172204106599442756072639506760035237928067019354922948877372009868244105942708781482810813376298264373216056917180489039044428311717029682306830676227093039794830943423686392228378263900310252142187696188632876603541064412356581848754252895258973351718138181653781105119472642827753243609705677661995322762463134168665778861145892426667050775819334319143462326004379624028012503766549857791003478231475748746365519893775683952054469743122356736624656640162658168226897814965415667473651601623615268878628862624268318524638583098741398295124508280752204610369171016853047605055084117721223899323126316737837129678418999304846588043689200404044627487038550908378804375385712842018779300148662959138276862692402619605633466569546565414415651910995104315075810235614183528616381099229674029773755088929613666272309976624051380105720540469917045662350578265840581002033690970931571607745099344226012730320736124898815219914817095839757704962991348795128124611536119743231447665937171600950832671669937602442349538389881600492705875395520671367288240273251974061010840013057066824526619228067786343342220405824126411919079145636559284186250405884707843651432293884430571039780004089851121101916823200083801019112239960165217372605129591326085147727911411052758067439979160403467752314519911988476790984185623677940298433773374252670507997554417350527296929777180497045621734564334552528350751429465311378723434983259258854928479835541333285597341922327176516163351237714363465663307401708736612159031429473458750897322623784874754267571750076249816156122543787449009728954921292662223266105657169488355592494269237025788838161580685901939135636329812395403453151216715317251442229058519560146594321382450549408261199931050311739662400922497652215833187035435559490015334997458602729166690379367489946833408296007628320221180635470268961417053212722390114171007668465044767652397209553526124195726231687544623424384820038489213351004650841767034373480292444930953623216598712374464635801913487671077913765119070895243738611147648580835419407649530914826781445093761109823597477701644627911445019884445815759653898414810870201199886702957356619314010026920401066969716114381040845854221780791291399513312252818089943091316050022621573888645383812759018841825681840868000220248526237464488290877164935491764503072957925007625440552877309239180462000989160776429177554547168086280608318204625406736797850497413698352786010723491186625719601173366195187276072189527671218142659207714859222517678484637082740812484490869905916683988025919088108762619526807895969978698960605142679842369348046590844291963838598953796900741845910850256008693286505464303426875068468851765860233476044823982978388645166006376529042370589505212497857792048123297186603118528774753785658077595488679617977622845270097883013210320533551669526707585985044527587844600603090841720159935585156907553583674272163065775799766723494756410452022675377351196258371158726930041304619809138286469617103719578952699158423414063945091789792599729287435367292235791118023965595595377417015133740769712657697433373339655201181704684466330678232978539132433936121865411751085398756385394271375664134496468911656964393431594672157485995940368960588554312574981906593230994292913599611250161958855288734161489729655042227370321881839523503978794181512975933791969609504431447196330063567999796544196421890645913928643650634225765084473516418050953044850793804167659007525826193084948365663491273977164295197092579257548073968819820812803993150026112919933691336250132058902780385089061560562862322405103752136210157168497893015809278398489116274570199333911493404475035933917305948084656836407319979713909443097941350740673891692642749672025217306209378172243639737772373039178386333555020395754421648318115724171117016136320734453627155322826514562103279727770066764392523053304869284310973612929427913851441293484297724196977717349008532731053339337391185765379908109720206594867079810898184257146392945291091408474278152305137008290815566451246872430010812218082398829982623920667249151937257887272292303537611045323969386216623265528734827555669430239181633122679164385800637863794998067220966389501218198895120229993137491970175755747678057558490785805326908443430041239766798112733501432310312495527080060635712363228391900986946382548739494936747735164516208380900920004851682661138219118168985900673292408249410756393070166997645210945594341272398779816397992277605369886008461757177891605138435566400696440078817172481523932046140595781378621235635478519151404022023993015738505463509246962097876888789426690800060252742923757457802630235700878004357360618953891693805630093565783502073076876310150942871561074288949673104738759552528929419970532407665494036728985743048367855418374873429387613680888784763676855841195397898668101070846323474682135401183537206650833307398073246692695681378627603444146790816715450411824357550519139942914889787029696792600038919284304786262109545856110308492964119313394935160792791142336359359347638130269274366697192677847494182129572082040706083827373427255367392681617238123774484729036298651767850789127325224557066046414236381290431551821469149720893749716610977267730358014795229656213603887641288774386096896364957837469760260542486944513172996889310445959477829407995717023883192554181116302522645195859652843582488088360899037136045372822324590977508655392003458709033297554043996570577981373300072953998515124721519180872292819547778117028379576025510196699398841527919609491859066686643014423669105258762194160077156449852894584609143589828809073588695503939961994015067947349044828050711513251466062282535409570994803895677735003416994952334103695066573006534566119158320375591170174089185812805403388306763310923001805455292056995155349763100364284623767616912208481177422141995462047497008891426187990480950504207375755585659431208324172934953187511297623697579816977668737527842316063536611966035729758395265227645030577200761438825835029478260299189703818068763760397410214370952651595141793732105630605483311729825402753789586537332027474574538188970310475896956583695347486610864638083432430865105423323586866625293154939835714310679346913224931475194027018036224337678809875730851793972038327683049087983272872975349493262995072169316964935950312088818056121770157027844608022986322925580506318646115303019896937479532457003533401155669004074117074707315766523344557255571299008999352372314319949656446735699789501136745354142748580654179415731348675279503374627153067131120929779079747056203169944122149140205158285848124389159063433995356728131743799712994909891618933184586859798225291382617698365352480406829669949704146526664228869362621625021729244374039022259747224356606894194661699256045513874763678679242602860223731829762023776505063109824524882098018364411414734491203457478365276610669818709024767590867352966338408522618791933864486294947204639229034116624661357130586913540741364782372076158088585044350839044184183536954952708426231730993692781888808291579485067167099664172935008473310891618446848479086618126541648916223584999799615209776498825051834659143849890983095303182615882450559251719135168558933659369348571181807619234001800095194780208030261484046274039665131732496559573481926839784387843921376707224622516075406245372960386004212814813371488859041065247320199998761453001684932799713751928909122403407814160566855024698448788497584694124803317252534077230429184198082975535919475709411292385015610697313660614325367281030589760784095487692903952352951315873517580712568770036002463676890167417802789609324639258524646670057315241345633704465139981609864622755562779331679195631581172151421957592424585143366009255957049887955563558362288137302291091014159621538796589547205640397040344239773997471650373357867147947642665748323224353496819256596878790629637426435860319186517069860448884651886363763705373388102455895144197261943977706459673344807797902096028253465141754723897947131378812962188991173218303336343712728547608287780715455628052600381156202080570032802544106065048661755040681822695448212676518957955478020116940181001704510875265943978096873506662303144355265194011533442488345410376022662811116182539358527842147295179750174005759185526728069947093097762840129573522292177569352772925410045855882774785976293462247372008193138437237955891612627686565123405082414524952288073911565683198215151008104101864432769901598951400237846457338440127375043727007906882582266588356938214920083413438619167320373576611893048453904560489312659979100606553515848859954723854745570432595090059585345157658575581690059285965330929275591819149595752266238221051670510432559316835154168351817620671519595948041059471937640334031722529779486915788149699380342274470979170436913374038963273034753929356575934804021670776279517594191224073933866500813625541994669768980049009835735205134549092297438924463182328107662771428485062008135679538458514412984087355452162772373016805175036781664771952845974293919912254704818294093044021574626222676083161020613972559956230003831966875035736930926612934061391776441351217005164670865596428792567763635530811514086172235882738909892978278721345253612663452423879283999673837973023324206066754799662442930446440674521094898187409493452736886754627781333027772354263207276368616034287786854777543703702558276317630827629561819267121537364550634446662107547691034196918110307414062866898474016621240909861298370507538362760737390784424177194879640595298097738663905275619239690383989875655966076443621245542403197283792999740545334432635487740330029560026650088287009904321321228192596795236696312031055383046356380687513723564425340669728340362198936715084616596258759900321877355491134039387813058017556721816338614606855486927745355122378601852989887625874267134111150204148691747014916114472989541921651506261593398085649084272490399571668043047971500363071335736123757476632122487686373369800015945300448752139096516987047430939766371008649504991678529810333485763057467269210794472070519414321361936874740933388871422034707952338159624492267259174843873812579579218460709105272402728369271002581126257164119686852477813349928695520916799849790960232614172326118044672108427082427836850129579008480329366943231120310630630136681761562501602893154129865624464278140406594042887062973484144554562398793624847292227862466444219004684992322850727446625186031778685937884115842994636356703307618102732798109081480182331426990500572481468030616821814738687358194193811687551801186070555877179546975281860293841617412092380411972063924631462963568967441372308143855034308787678919829067875479893931158772492906396742474957184569045295504521121784145791957987137815747823960202054044373944072299913703745155320203836857458266732976316241176215843394499072749519475107581069859898307042865511654548750207208951405573517534857067053280853809442467293054534582017527656244630611642135652247710603316216757219698196131930827492052472735105556215380954241182354529253661080143166096824842329002345126340365981282951685631891506947414899025150024247102770926303012324038508738789743751185203953909784887698836497029995644281547955203325940037656391710105328311622123881917238673419795748217780544026493947500351167402936280404332917025134229341266301690922982934826805011247980513644244445667802338110845491833945307884101284940935490175134707345458501860150264502788704675616984247708577343250339638753691789366387001315408141640664573244938879836433145346113861247706158786108259050095933664498842412690340211301590194653991298497588016896292749398849719123883619209549755558934784714740208511391661338615113922824614195138294589465314313416597930036857916376311282870011765754570643518409496041191384763843471625231484945879529255810322141647421698673606915757561065236685994785739733271360329187695087886923813953601925772565112835445195780881475050245410884601308170901510500812516200399095314055370323500737893723650293350054801846643988421983522623172267340975753891692487955661381541635383911796344993217094987225572460741553924629314647198763147581918017218321531939151146511288193048992997312336769608510374855433440911378549495710376065657861321464447301061909447169064787489447665986900855663443940984238559473250209145488972041566150308438469165761984084215046395634819826800348206885710276496225627485664433433828320846692887295448442415209772901524892231099325731895110933100620482231907169354389601860610458214888916347955989732645140814567563407406013437122092416185824162304152581853165909027658370066411994625142681786511814499408604695696173992101139819416044784381011867624550788669432449754155799030342388490269257501457822022577692316287054609066175673230315320550937017727068216509720073084599365545185827292183735861522195363342289478422147477723563234919367423407348352239544794665262781313666367310121286400227995502347684359608767234574399552977151351107788136613538308073012756322218153418229561122137971404547567939965990170790006515444144075968813946013603349842470536931015468650694633758703518666686652790558419722918625279131252990316855270614792583621092385378000900440158017190526392102120702985519147257168417645933227026422839836380392776740584358380933600405840020629603723055471686733401546451775704880145210373841825492801415267607017398499066787878766292334000506962798976245456144939592601217578188325428154327419096044849204577961103087023343814250381524873925257210018285436799114468189480441805773714009556745655617090328077166842647656261107419945419669385154487829519131952918226619319140257542783406677627938612069850555401662576856061248616184524266528786372991722349358690309722710434685165444320964534367283252980665814342497501552429199828586666767365837460229389935944829045715670742720292112285064843971029696189372847954138951520179909469178560431944978279292906196440094666301836743801495203777680360915869380149047051728468766171093387767129974323844011410998279764151316817880196485628916202935900129791029351437373020986691377978385640845933336632735912398246868035330246854602771508917837833716713105440805398799376999034613619236309811580721399476027677163853781615515728687164738923892240418599512283243430404743946634593313513386379435219438341983567204046641397905136235784252190913287496625037593357127268391889429850602821028362000380799353686900709177382487093274737500921602400143381379769617954988192895202630271071028713409500252775428680195798298745046486373586466677705673929904193168483595842448615785844549205386097443001287292494621589707206472801299754403620444095763475965723976217740266767239334323241651174826756471410101624487612317401706594452511055174546840140341408712112622308308000774377155922430434952492133832276889440394311389413120838647940646873082694304829657047694476215138254029817276360343563197341612882797376836422037398962817276401398222691676409674282534582269865576783958391953792320860031126254585219165344770297890694495219277574693137887867212159446694419304016144522850794056365038823635263202553256852186827050864224955508639517784429788685578176888510599623195117173861761674733150940520815998013401984850649057491806107233586993281820692189576917041414142377573356167807151487396878065114556549251153117311890876335747032349406216344652322850199923223492219947601258741708132972860780702640885682457714940376334598719023022265675648091653767447805525835739532109113614808050485384063305532983546779548922941085367033781222027830206483812930403632075572853128188663791233233763575804512645944466425137226936652070665596319594122353285957727164840931929163652057752954899925736520199974801200344823602482826852455384030569547442132322279607249004373388443027122875266510540422245063486719939382705965076073463049865554776351874583423225450058179373690901655026940789650735337483533550900936023917992605187476100650671264183741576197016194677343920678627161097052337449074267826222116666922479895442319161218782454602922414470503374224967748213263015221910125748352531215380200856749697633207740741085932909314832502398785124213945292746704452550702176506624995937093963524380749184599890901307010130878414042014042767546955945500642107932466036985555759673166264741874359651286698893306080059806132332350253521237643602907505227276963018845082306703079489220060284217687322679022298000378383448249508354572826847872042611401010232248933450990451655542029300006252204441138617688930256081165208148681474160752136778049463592678597163556909569000634736334309918121261592726172008543600550179704400463799598769773314694311576831039911000988319613498907442330879496446319938323819813215240078623128466904709919006016916046135320841438767679897845345098278018584834286870058652043394627243782123375552639837377141603009274152934418027882171727061732788190017598851238518299030286822706800885257929965676756249134826371741616582218285321207606521856948492776053246078413945401840511753021948641626452340697057838085482576750380079424033893278764121502297916777270548751083139932058710244574040707643024221978033605109611000748637741907435640476773034331795903908942299089327394857282006875892567194443233890595100075982507106468436637456948829491625988178623706816434484346202321065290454886139609304056880539689953531547075138125832358769645690248264056130166547156622037581296574712039940840454760449784172895020758412606304142049027936771984621286182855335492549919707647927826163285172015890190109022122575071791644641229846886972202158047835842507858861736906160205088525468041062573888063225444792268382590640663667258777125918003327956836034635796834981960623039486178424652376323792637728353610567621442415398860985439415513587403617995987775979593651540387075300215209946041943803753211467878785084676353840502829712886503533368384366981717207398312073142476167170901995572026173928940167035272305097931574901035392655938456651980031345155470716397548192838899598276518889133598480811000840760923680259823192159273247782359328225498047150876463221675387641084213810270980531574453709205330041318966520748703774884019015162026519499713878819673863059910754258505969042457776712874524750699578044310909758385933850957177013560710987295557372700306418333377051713142658531955783765380638348773835018886282017618402806397263177368179333267180324501814445811474433102969501852157641049699258154081958838020537376563190619541767229027359111029119766846114230685751630427690868702119345087743376781074944930627581486010303951639702742549670519376145625228464801561764869367502315336609376406052089603289104829290332340537309366735071220251492383821760435906533191336211384850991660998158306855860461688982107991210315616055142425412719547999293830269003062363195533446495159842221996067015097163988145742655394120357706668196934114375671538335793965475012681679279336247208582937773631327519416126986847472851182985262447049095618793739266668783744564857919190678487644670028215957432111202811684488123727769288634819122830314751731016346001700299988571144516466932682820301859552251906053480058591862418181632646406529630192828424493971686863898112581873893092113161910891147587614487436213123414686994958391962888738834629509375080170236184832035518886675896544893356544395579289264614036736115298450013822913926028143839456247312024877872003086710200306010116896161142143610814691217761810887617172099083803123572028946583814455214033240954093324490901373678379685154532912720831409464412820417572464894039319858452168369922593719451728691160103586832395253314736766692818062261674486737938628844610115919385649703087910723626763959156740965681101410968733434662734766232511533903429699464845094576650923406904029353034245652077127824689561958058399255808446831403223295423868195513971067132717241884113785073344699162936300439667574726376313511873381935918381490543589629043697595775852118648074201430870329404226609731426993342142320642410895528222830913384130711121273610163836168784274060735871696258441431645625522388109006708320116573893626577866396997848820579801639465043185140547970212373507868097337471356325966865066320846166157630857890364211832849008883018544629405532367521754934426555114126096314008684800887349653436947618812345979195165806969224783840294441070240617271187804838787833363909527544559388267351402140562990163974464059448071760389874001949586066926323924103293789878848539488438230620119609859718852988330871365354775191975929594280688080558019460634310960386953034696520589818743068423870489691505548282488821917336051837897597481387002628145461128483576445601376746054549857354666208056333609004503683501554249976495936320276094113395205555851187344480497854215486104748903513096418925811984318256135375041926521594291606927589109284290172442414571515153911664014005224380810076099174496578646426538749558236570246501389534253141772100445084900977796741187943797497244892370876555341622047521073186927161114911182792889583968132747958474421336929266787717646718410110703433809143737802999611932991380390675768673316239635503307448610764392926525669565031465129796233569809232549188060017400266550332048613607093612790800786311157159551834780447188804737990688452109682800268625260221070522696116812412766006351892538952271351753126164013174873704480350128538397744956514996518860067447346003602422379915217124478942544298595781078789493906498157121026379961285219504982140976742663108263093588336761394022285844286984763122791463488414533795204381498256942644672222579946249817500035892766411540878951281522277371921899173878212331747300507315352030828332525913328541945746094909516333098155808243551950307408752067495803060856802831117813383190850833456128777673330416383334029211403007554354211018950179047982494193620063042362696662509510212345738688926040100816972987020229686813886039937099352157586329867210893697929506392710789537888264235881679062038994192198963916295223873214362264710173654990017925716680758282783138885615320435400124413107118742454319264354635211353887689098525883996598018396455825617644550484664389680829453034921770408167100376628603795232856457700557346073648507378038159767846083995505364222134350477042053361067099393562407480516821102504199706038108434093221774458912602034269434978633667455806331704198826246418413894022685766075749010660104216440913135648898523785644200300386713853249867497217812577793191780992295946409920931892568569033134106872350277755346448316541744028007531871101951032224864271498999522401743568814405084842353545080137411933888051979092776114811190333021753012361747936732582303057565986074527266191752960889541419933081189398675073406315967848318492214649718896722246918296935735065934379637095736603637525283350260103751063347114473235177932427162449655719762191637261054925901313736289105969735138358917159693261771752474039430510276029421333044210838903711636989657163085657461119779921240906143696110657134594044630382473193152321346145414736986072376798253820565946651605610151674353797318348755038177965689902436393808649001575781487801660997944270243058162606792679791182274586717436139091546543132981468384590214322885025257764513710672580224212524708839873680797088551133764746705647897911246141987124548546200619727489906428331067355617721932510200998935598518935671351774616930942904364132588071508123597925168656657257976753512951591128118021801816502227052114602979506020777375178098554351008139209402163686059563606448659528625594282162618324101595771231738289615206438826011305523692957643027566916406761975670664999682862509702232607897916751204019960574600579480544639819730496807701470582074607408445014618557159982869992001513724996882002001835768654008577173302280845354940013504654756153226057150919121371294624186052573168248565853007817067207870399370824020465284204376236632442972075660050253377813188865185195568556001485152225070772442906014554007952049974711789642180319671844582556753254124658728496810870835453360282689208777017896801786753098655924110907735750262414436808403675612673511948786995859229512249207450001256293637468216524770380046450099908690347934522590848501010908109143770606739328262396796567954057696315519663027950632322070303648666222759473226796991866215031737392339067216125075211513233038275033606153498136578402842820616471163591927599691122909315464282117272990003403844458821352031373643420908283442589403229239178444461878334278081137430330159437451134816367122169427842641630779235657244605851107705937923494284092893696137608721574023338009487157640194400747736952336230972617057338582538752115180577664055775974118281384280448489732087588667708437120384889223637403247403602306570497164266316765242437498972828545958778919305122262622236102361354519137911601297262321769293666291477275888876912274421084348670783643451364630182463931683361056989527196490713061521773699325337150184745531275699477630744735200591100905234091139126715736798706575299709306038276210980720903567780757610061030887071854991377102626500671128937619758490243230851263059924587064722826390415953379606880859293494024022862782379389334043103543093760145299272520160464580389279874696609883330596067409547242252805300204153966346479739114064493556476441441793747615587601893653832927258347508874050551156074641239415842301321370796879862016641554697578795865790309146114360954312631580973524349633022121417365968934327053643695616088697263176362931106786348215486807638403361742356762212951257000766480889955148360578818626340206659017567230324363886709623161271662985833269650429307546914341250356350787536238104644965722544525933836945067023047303629700797139922508754517302083014458002527320081200567801764195748913348850109315744089876749091973636930385261735074194420847246666342981629598191970868199599224620231573437241712982868042866938192250894426592798479697788191872010113249052910300046256792361705977983276653030882738678682096087000975442757245997819676249481046904367312964165307114032220422964812296976741016443700931419562844294902648895378560008845556406086172052174219669030927404213436966677822124234687364840659661380828557755438926319728455790293061906966149842932146323221237294899885892460682876764179838759178841159592942373970462588489701216630050581423804377779560815598160270562312021147269036597560761562537798236599053541550822445095181253557836807197892511378910986982576221253868062612448571304092057171498409709742565224215744730493141935675333206300322038588183258553365302908186137097794220457232922462693590924491233210230729873903943459195921356523073226964743329818568534016529340081256716692259859408554256843501066506957963897575922441982505900167769748802194698700630590940072791623068745162106651989482825234661321784611857920866049531943870402168123417207737106098062645748683691262453320078573339210522685524338637774802465749882129859974589241200654174217809185998021851329376664035008782426127619774820272320600658588416384003840628938344355507519648244892713727601115062260217409087833778431028009940827353939778040753190278912555583520413240046079404723540061482378434834851132921943468253882565915098115364959688902618412238499311142602380751286779637074685482265110443302872012071196020999714571836703038468567833764722431454818506911517913939817127418174883727936548004356054600054250939908430939483044200430234554403327913116270821149539867525853730452400384534532621558429939512163786434538509303016733485209590776663693496302616608626759654567730382880545316833474705616575383606484737367259974156565419223980082316258959073115039029101078809133135310828463411813740674163707686206017732996187039641499236544002583632013563871433156006981377458768618787713189779587169797116390811462192324340570125407792534297213953237177088758039813686609530867509543514050672149253370004845231301131918747485407406211245891462152700792993315348486968316796215319106478664526339159103080561677249547063125598727616368330556834622161059272819512032143633782389745243963419962525043406122825914673699053472298795343726103824261759151157218902030986004157292052219064516020958682798296725229731337244293775812725889259965819033221888250421560207699327025946448803818061636392846072939370161056247830599787866675763347249344899264583956306983977806502582119348449751676564165486630379494739932714793926395393023149864847900173659507218646404873561177602086324688519323012497931035691524398776255838323011819888708894222806352378804715987476355482116873302549626895414661596845779778604689957722111057143378260437615015157912406203477085845555226281956587409039031688321060954314360964353966987060931408356364127226134969858626449207911267173916557044253179847228168053288068498434869428810900476549244070502766191314242318284310372738057596344553349629232341562689893918921262230311332029851233382335817606585892988134513432702808879119766439384884855726621603949376956541620996127217620833993018102013650490297314535917703620387364664572957412372341372715769692433798577768238472805268869454294569219502281210958131969033373958632166266594732626379008533165272342347466878320914847056607526246088557551406420607840280382197540355286001025772480951379527703641544727389781744889143616824223374690379128534086947604111771116491496364271056755153949075703277512083690592905859710771639890922913815222417333539391901660682846047003779539495470487752049269603065108079846676174109658875294315410605321585814008665277145543556258566021495674612645670390586230527812305257803791060970260477894446011943148247811183228545673009232356850353647360899460074932144136009961212111773015257795686126459080652139583328678325298532225296056314098342517794621448358202817207186477770911618313079146844284850734366175171072890757071393319145079683299065150581466956650126309902419036378359515822942305250156583515968518108419004901313390742288508936555259932665129704979698235242243075527911275122739110620467262953814178049906933625159470469503581488295415793296968953932570941924137148274819590656197972796678757719823402770710576988753505938599986999793562225861094895407459703501709204859928697010502178234434361014128733083808590133744725223732589992304609294668425596331283991368620859681844581354965677336836237022303477560578603857233769380843619209512109561118913278641871107910365813629033006157241041702110081037435791215199749155122909527066127682401118899386370458834855340156382930362082904281946448889313254163323532994424017640445276860256957631541348887757342609294613683721175750002941970595044693478263673915429712000113302974493236225532349266784507544095618275641059975167942420377354606990109756421770706809113504404328445892497428140643576607882368974435667804323166907013908266440575985943059608904786355697770714976971285544404309943766162387653502198917609436424787656272455267115324512727437902915280674548571393115886982137196701351732033864124633390359018556065976879974393781352512979556572821102412156970819785707105330054142874386743772223037552586970816983943503926329995987256120682252905384999174237216867903367041934207152069246922069112913985475377953972881330654408908057850910094238475456766143221640411300364510094015789703529591159426739347484858842189441581265078066799600282340112327074072173859612572176877255155396889160012483995467431623754601983274667844902541469520355505051486625094438136824337105360829306347739252306534241813564568574772095249492473116548010030170364535427445170207060019133815214863577869149698797253857296414534117112369075328552235660001307474742579748446754588067887015154699264922824540774674030336658061351929208893416805368377524295100487615533873206227936507667797717228688172612867389635207373939154554301290457911754351940043750175303651453521009995986008539445337275035989030400463216046064103721008748278590155673566518028111419443069509758947781285649293019021337953245228379888252344674703679319960775534826355678366294376420400888439676876965906414007876467431225702969737328149478504754519798789813340061343570202954824147287394125393500370942887364721558037681970690646637319354994036290557075219667200694291577899096279664778815764242283259894611603881696167580842661809190986971922750656015912137309837612009154776233349349093973004455995621689940574551592370318925870802819678526610500695981137369848814036476222396211960107520249916501443086657005797643083199821109958336098789286400213060560675159445242314709875230475465275428688304533771513020795325849726062592272560833904193321540036765761572561829422080848174455873611107120605172608383828320776991335844339692630408863858780357457295491915466104424795550379277654945578278850267050269720645701605402561091248148149404168637791538630140981622797285137209344405287353703780169300452943036132110229837746090981766448797358884826978170932669033361824445032702985937839336705060618694474209147592154732664269054402178628360231790643921661543933782886849653776603708372921833026066551608205187365999243939643058686996354900442378143547447270613002697189904731745411112011961223872811465240485897359944451039251624833049270217442312135747969256626243119982617387809173163876604726946934302050062955990202651461726364322972701680829994735905920004922730428050506819096129174241628200550112233720317361736537008541491496424085496943971634938795420292201803996081948335872118610000975799608139340047132325288350207244943489935760666769858609119360108681904172959796171773252919423194635911770112658136377591581754108411458317478990658184222485960588093319740881240423190796603484779619454071865852721153120521719058763810741656780178043517822858573001844258031945685417396221625893927530454612288286787244800150128297564009536068930792448051244500330794000254298257474553228407319456398373943932138332886531204149545000745386317897011717310896016084382568866749348752678828686075783126314581039004388942016021462052538979444243878359631720021853909220740493463137274039472862369967386955906373373687776535073191337289978580675783370745036627068692811961923324384097376342151715374399000222427533165576135895853644011151603877270647575030730968978389101831524242500988070743915960794798554954785266212445945752159050980644723713731050261597813895466540037614173567238774760691009705897738171546506878538483827798130830332063648125390481111678009923374763496959485333246665621813024440771721354418024692190201031303986267768105617166312900481778295352126702428788314054325308600682300512505984906630085218723883507780086992700175070315347010869752372356167725490191733028730634422223017616787223874762525868609621101879267291505361652523126238380554981773830016310035913799861141000817226387208915914287957009325008858136550328685546808584987876822337577049353813833903283168471039116424630458824295143838147024148720084642812103949346017861360646247382121755817767361347522941326479977305727661721465176767703046807025636980765305554651922187800356681017659011378727870884209728223610697695266484776517680789260339875312930179509041424319777587839727876727310480342937133560444491728987182762651220091456424884100439692078449426018098092427703802872348243890044887710807385630256588514217491136871962322889940613159075850842368185690713486748148196231179443070225183231739505989157392395492725024725371823789460790310237681722425218717246016037002443484694941747732873240710238890233455866194494567609102918166050638663376470741171309768200187588163339799287037479074201889837527155280621963015570109037179560542945533883744264895942595493005081137568301498386052701587245886122147893901048827157449846440869620641136159844295643353645928106549519065124973866084352884960297794780912616842475585506862614714542969885190632671775846902925166907538051623768903294506841770357947996055196050489035732984830214870779200720888258234303381887444484503488051464616151800513148123965930067606804676033380160940287854655897393877265392134230069144471725008232884361265872013918140587168789504744436932890248191579082851029890247642381888983452235352559924234905736681753493505235285767450002867790143102473650197417804366443638160082084760832084973214339203203271242728014536154246438229441631596934607210412733027068378438847365180314606024401009010955487165766345313939157286791154619410475734911765650342680375245344134937942327550392898383739742818563378832663168447360862236868479481939427387882876170855806567551719081137350186919437452967419771543888354102442521864983479501684361647575133986971662021887183207325799701324461585485975137082849728495776696605576365153388863721500567049479713403810194903042145815458060361124553787842023655584131802442682888911526314866842628020930176196506325216307987216834968949068282148780884239732108228971120325983125851246484968519297436777665377046434168727222630881370612168978243694198619524103263138891003512252722986588956660773869892736376118600374296013969215518490508878686475372799719106002285972002825649746339952882826179392685580405823061040132749544118718129503357692420689329337900508234985042215631462966004661499760522148556905812490269297065654681506680329188485417782090752481578220731238335248711916863830117994982722620904151869489584106108046059317011467046977238085007910721097230961779225861500508536047399831227983458129944944557954344972580125073574946451510353448522297091683418924846519821446851932337706087849874154318176808531630176504512239298620985624579567220272441159636000835561338189928478907937741434939396073784895053722238381991287004698649024724022169726235534248146394993219639384537994800245514589812899012223547826802289605189968411676257349326824164769808537666356212998349674370045714045504028869810677744903477606637938995265048867780186739561200922454908694799927848982807657171374308859319951814910413579382288436436684512611718417078319561561913081331978542987706638170067612306421325509430162524525616482007969338620479388622125841595778470520807426919902026234310267173424275014971847418650329670260055304551314478975454764419021516450252223756606322784269920608083480679337338178028622861857785462823832276538424875930200305730536801295895108938312137100828701527801855438921633421446536050455822929901017867510814001534203814661655340585360188595755557766207699834598622771406823592966895409426381237726386024478748874617880383851289524619284217293636818908559426479015870387695558047134020389305482301351618540368445843369873178720627178543014490992322875488254221176482632050049582601137784798238530981272814296666142262857278769505158283586780483748113461926518326770171760102345492596518915284277088992027246376224518464362663589122961202230305364479335575533577924927007044170537314203607991901209809245532765880626054190568147031591345484325029133523946905501539819571735923943194186261631582573358653798219203536769982973125685288108409556992395826228306458534434317932719298300009146357647886597704326582091171753858824942181674281454335589813031854252686698553454996250151045426510343814163860259261389247986521110293039691797009540161984550184337693800691695928312160351864047951565255192764454850937672701108942905523078497913496936631195862216613600121523214938544521314389603997786353714564760093615093547456509132396222270848963303616304805248990244032160063905583933881044775111493947864680142513979219745636443827803769002099699368893491093026675750023084404244768719260636200701932643926518238134497141462554706056752600777896497367104588747850554445649739178873698599724123496055466333250001272067128983548654658539779077152919464187747031828803369741687776657011458398316735099538293327385943317262736733511066776777107206762000517271428073391487779688037077891146367838541335904209965671597422210431099391475511616894735202898010189165033956691350009496563438251661426761786996735916027788950222503703488424990351476439397945800770166530216479796731989370831742178325850674754858228317938858386776851323666092382315373915649435107250552296512808209562907691529188448682611038451459869291874421605604397546482678408966444262433773826246147532256774139408387839438138638687388179459384826338801481336134704424569854351559639658219517830860013548653115534892172542736830728054045615415301132775265300269568975419304695400094542125119173395888565543103793673090879893454846002015582894413995685096009084679789215253515077824382927698246663304545841127454367433942449025502217566428654046309637140010677183513151844054761400757891960967710687168621662185378931237763011346550927269544411212262359041963627814485902022264146326824150902342270487750582752761458498916160255903038174404876747532301461587118900447754283473385667662401831569997548653310919848585515294515778159156800518461362992644497310022543570248672407898133688077529328036059371276531998417192367267809293598565238267322519162009235724319967017921606190265077212315752247634496454667441385381850251478062172092531043071786886103269575359241187679129058556139077611602502347187409194297649074779171938206361780635763664657858299621255226955522066681173570403551037129894871844233541603501140510843951388162708620709553024259673595133808922691409198404002363015716304831756003203976658000449177017410473988478152669647070464070976859542076056191720777196681673903764741540741929314666348960340308712810473365774232108063816138802424530371243518935235883746462581173077518925451854574546716872171265492987402214335388315284468267380271529916209211329039793233590205099874291217094037840700255748236301620127729169965876368395243303744582300612166453967996251882367406631758906938694774878174985841454213029755113032316019120527522464242134516015211827607434643560092417148396013785834347402371122343163850089110738356402442316840378816316233333885659351215274108222115142698248483037042761618197402673860200931249973990416648691349263204009116243869321713031977804888618599407004013765912196026238936484704277364697442840835966476872570228141445167234436399102699889956702852951499935708667802718859197269145157600826585972205925055018007002203369286757217020668696085963782376014304842181493886408103096163158988097997985159574924445673111126607822634324757455791658142408445830113079979912829786980507221334995452287699985489977432323171564724398383306090805589157544594440378301660553955731275942941215901719723117600112929309625135569493943951910168874280562372340527651540285276226479524746885220506317422466075956475118835593456412810984671416383480754068218557665320399511738261190350620459565562500490771334122253276082425113915374996212216977945353622285067791144423206835825966871051954325030543363987166141268848705918196553367507385165171789135393415462395515479485053671286086120532705213226178821132073917287332014836272067592376999563706465905527381685274949960023261665119075342614349457149251459183969593129225710291901659734982031810518307900259481786154553893156824377147946970181679683807830628369096867658155220879354118257025325206826920490168869735838433770137538706692684508030616299804805411995107301876853123008236582570030795240911263161458271686200485585297946128714520034645037213849452513527375180883221445205351758914697264424312021034359565012828211063505458248654395495384528998210334770488640056586147594025428184267345530156497377728948058490028548544331912740497054710068291267250999147757207022973281140970141650709147568657133749637201898296288252751415464098034922497172078834255302906826379596922393043998916465415557880452582354523702379519129198856825233869248743428824581341491048619360015847589037746607482506186844757502272366794306451600436121432023536931355716550128923686775115911533075757966669330687792565085300173991285577420278002891328257407184517745764179785937858356647481792698662471736483265236053520884275384156433923410230493192734421476606299304162030200230545820095108204995145599597629447030919046575823124983499988247178803695790864551626416887614546295067154713724084359749065025195894553834211147415803715256095674930469879211586437409357212147537311974045146913937759446934757734246013878989106416236100786123862238106783062268302305788467904752141696563847765755991128705304829690171800448885446923663469120331389307341284448490695190701761688679181935082711951588955034928364526870683565251883469921486627977412731459532514820183276839691187511634344966071714189517955405633634445699901588161977740922871655804266363647514496103197790677905186690557226758052664713825296225941781161236266704581513371088361227649872126279861775738856380814624356896934139850861402439547209347399671371476072612515377344168410630419696167864778326074228894901819095246056991104434723736209812082308471166597501952348785488531274531201815708970943686774521764963040178784371422733196806353626457586227633049936206825572527276033191171729942652064942908839184594426434248403840118164761075792150837094728298171591657695523671375889056650350112361684095161041153461042427461932491646875460893723772630645645040952370762468355589686476163535093533477709387793818101541098257945727290964113085675751446762942028442771088383117259888331845263082330284686630185228107070672307067764503729633717887183826647949457338745997777994383968316904473534725188406326653540854635806172519229309917384583731588531762718313430703628001384493515826665256730311379609156879698023116634840391421127840179761302461371810034443440635620706108365144718904465490213567288552534416296451471823260758103087106809148969063232884091306780707297519417168616389513936943952567270503661619928534997672709389045655182318396325406584143215927179438525267637849599775148373854134277326386969851030269056379451680381351253130045696934524487642851597082206926742874138608214275045263242253859927060111131747703102971945862807469920612374685554355379856343748454328553908012596868241778011242696315228744632040060331439325980135317741859757451093100762017977246104474945105424802452418925712759182174346345614965753452787198316443941490487010310132096098586320129009652803793886244772773930745279834261812694695528723433707488067956346270878307464662633352707336152644219361319122251439660557656207069909417601816424357830739415824983759620780016408810022512758231448968185016989053026476219598904481026212609263880863318807662224172760212350339387676090599255157980197339350927250618451444094072925322834241927187710022894074817844783626314691627152956689449550912257546657491541740927688164959984914036117338047232759207767010301017095599742474728976620997038088077598637683834230739524502913232791206737272951786571007726050763199038247425535538605605325187048372440371256793183562823273406642452150569007484715427078424684268104624186567735335949948427289933818982460994949380290960575336362024745475196271983703830564750617194797377809889869470018778604083044074413737791309887776199161711548950048144761074922408176607223246367027668350591752926561347577009333416267223566496170454589768168082696806792488980679014495228188710600892877539396022096171202980353247870837353645594261952607286796786439111998478266671794697949862280362202070335163564417674764524605368717637409857360041686143029238089115458888071778359806420442456040615883875814101236743199638356816055699038051011718445988257884129436508149881167161841718738475045304036675436098146562606330647860712114693470128904275781487734548857753314542725235199207150019404919347853363782950339428273376939812815612152936135666736073327334409676062521317466175851312045585620685659907902433796353176391827117979781256459244787333914432387993336368187442397301152336530833731182608760381934580261449387755115517530593059934473541655595794624399218714457248816444428151439513267169877680399690370002240182542334986898970632206844572098323689077579293967217752397141608941173582966939356927865738562810184540331381943451609091999056194667714003882914068024434697870238646719961565439034086759936558133769127653849457806065685400475925358502332731626980497074685407140781581792355271779023451933911610953928032662456011784846223844150798945189790508254183414109611885155738890734979506376551459590254663378338719456418433893249463606524990486587047557592708429042575883596824852620575730525256354802074147486929311704192347387630389253207385306398054551084424148028634984223756225786262982180439008572555266666666605925066419240375045537881085770571560273234054903660350535781324974053119387183310183315860839370344526127337365748287755816249512462024621521255993038333472081414509803374901004795818104156800810605671682396554362031818679179034870758812779752936482317272902265781351459318087991717376660991756738705075512236276131920012622702133195124132978688903309930126481386647317064019997641465043067040761279154113850639512692410280738084089368572235937212560665532084988227907238314217648402799245872623066615726931006330651282310258098691469369065029002898085496053847082984247164814285707665589617649626326450305497431092593824809443983212493561655372356561456720620946109181043838405465873339555444118994545675087684720816057538824888779785065862043046063301124885911835920180143095448709238851726594693041771418392822696947885031750192533090308886577076049670993044266466463339304783789523820181878991010019835616471738668326894191485007064640911566859379768161926761296066257266333147738944429878294860842295113276241157303338947604274579381982728841675991062422745373015795684209337904798456032657381056121024178390584411418420267748292827384692320586875708929074356071162231631551610667085539386912256265357726450507739703203582395944612058894013551431202727763120145848864722933178371609846590137666359087326128253868842689514019416548828624142764935299696109555074449938292572491033120566310564316315015443574173715684176361719490196993538315748603974785583975567212919223107249339167361568413561668032631118749178297222540330599143784969591663724039282088700408061082246540661381898869606631233152175112644420689625778723856613568536718905885433858384695646898428396573523692870706043203657441236528742650618820617160504148725505152183426011510778671258620939332649822317341797713722106341992851168748447322332745987605084122184343270618025243001200379232677277285703963719908760749313601626243576764758738961247926947167361873712764330694152668541531885521558384966777843664826933950041843469441620828312882598403011229023044599122149900522503483113852442060493188308629369129700261070656486172266975402071677222920819314227465414401006610534645517243147726828018739061807616118442801671957872163155834109063063030419564995837084402009948601189383462768037146329727792988134622522979636101658957800793440064015013451130339503678944151355010694095780424568619096672450957380831439015956541300659272925158712524618714964333488627912944168334972686072796087837658861066194072778775961612374529848741459235000937224647146722375879343939271156750143440911487680688615902427171133530150362652915618097669216466601455382412780043491110731886938715048156921851376308671092093868066254671512371080527840305820140801267980060932942638473963131736342365184597760294637639644733761986745757801871677538784562043733624426386208938172134133730375451129840761339007414610759213403288087661431654829466804802961536059625669820374992397297495848845737426786673410973321854608692555862125609991537066463640718003396036576778247713780903116021952416102718944778709970392055369280079146888918338029028115381068747044979764168723497182279205104359185560036915768001722651384723629163398818529115478338833300420967817093556426910854405155119289951485446547942330466424911957359276964003885599173752499178723873786709745907413500501059947524539960193880012136611321745419003972123954477163418706948543813028901593003547171022394386917284822515954309537013855590924284927759186717640192998488829892602427510658092548091618850885198147721994019464329812534536275539101093198177663459674561724703902585058909364348030699629669257694541265426702178618961375218123088808502695455543955614203649468910389575728845734667918178754633319444642362314671391913680324837604554493007851232473304832690557299984779027328044259743509955924565200248814085056304446194616136127531840135812733409562805345379896941762489782014558508568124422187227289703738385114784890645690406429963205878282778171020678272005856528257988953890662778293431104449188157319178057556440152285408831500555608628552725130220474864621060823681183419980294654176664868973396397243171492371407022335688044880248245683134860527702394552793539998452613973768603923908457836033379942611803177221668641193706848793021060500938771320410122483798017740873763121878778081178809543974272921525880603025835053903610753564674974187487405101822434992239944901705277536158576887979757732267423839216508986348936981323298609524765944491488453197829908359258901260694412098804390682335810354417243656538973838694675561043417352673342087385935643029884600262211237231995604100322976720569693967308196603507348205027366089914438924761310456115292759496462197887289903725967398297389967721975648587824435793021401781766722140253703071966621731136455498957147086237914241591031598286630663350538675894595232840673467110889579799390576814900556931108161732417753468098674336749609173060782811996839484820913872875913767542877331026207022887931234594143228230754240672152975293893683955002033476973518724642078581927259008130431164620341296479905940755287982393019764710587533634589119930525548479018792536907961193332512298903674875682504697933513625345384718987446693662194593080098419327358446615661347157418353251631299441540405746072956660410061359121952586658914756311474714084772103394114280134796654085868717903682594965933840773390513800040107460520367722022285077417072734113013616104825620407568092454139180862401468309032306708684882038157988166998233638885614093159946408628394684588220022623938617668003453095046387838071340452644176843862916146171006207012366507875209458618692178734967455420973355973398552812686207886706261286727433974270102866433945014529404690653784258489958329373917340186805243697598712362156076553225666618833988624945513397793049099584504270287021696266222143648689683140591793200489941775036611128023175203961947402521302655371913667052630281876394033049443064903167782655580924158603331236695227444430154361261283941759661495300142083687151437116123968857588245850396513119734762886445729781319267114971163949858488942397957624754153750078202894650176417004419617274675360745497095175035571762271053389186106661588959418569046425716774469748197357989900656105633312964989806671862297637142397610832334029763127958867669803246276062688685679738169995394094187994082265694954687584637129060999559741124744160847207667486351621542233530406648452359174887467668275586276255887805850574401589634815171409462316173242511878011482372940284298450686957948717299405572455267349159938036499079888703413244380676565586115765716431968026256947423849615607238935111677340661825549468931025742136491805717952590612000922171213840570171366560540699021722621006956665823796640655671585661883811679735279340998851758122790012866508423591935939052182505244386197446893449295946101279105410829168689859522223961255946416187602979139130520682145681132941992922532150946263871838254224452357960204733197142455711275376393548481559706439413065170221507720406638774898454254863234068141771471520301827630740215244489610798168796774371537951454986315392404353069924481412833101429616222516323674694229963755018138023065307459201632164056639155558708371892681587363512803434057781838506254578412638626951423610674811214463192055796656192577985190106595177127132264528865663534693965374848697283791067391152654388470130371227731105513174581950083526472254072608986730386328545027954285089112680777589107246162717813651187364725480445504588349279377318929341049936246080984283718418930499384942463082474053999695351083276959956939321935605612769745083922686874743916708415298332827226825936186465089702635229493841245266017118590904254835895879176722931516051271022264625495174327147306886170338020572813360171918987280153338597993543359873846833151239356031310873412774833197955635644928634925451472656739974089568760867288167402251657400344294926524653431463086346249042890868300557087002773776882771550717644783785598862462027248677297709778253035949007013255898180634947323500531797169180213944741019822646828757578303045641931688395887063577610686906527359766967505076689614917023278640811760437524358492002349426191793755835512300353597771526380238676529394773752155384535466225146911589421250287553030898244372507352566856006086012018944808915908409685793789319437049273559609122682528007748920013250214164746816764194111634599956205639168414790311128827480692990634633260929876179311109634876478774433902767463074157951471881985485600520713574119106422857740458516566659297376178264009468271132497008314298846205036207860258747883168583543785704607780465046554720455962651563854276475461103781865916976954900012728285047438672712450526889931461474708338808754724404938816449739544927431996953194124255122299873269102130252198222922363048704404383735914248856919307565588104398761135830695995635799418761547057142653229981442965355118061662789838384507218816831421528402130999573753521468518684090778445113445048209771548358347700126623363253459517457940386769059551364394143099340537080855445184997169931745287727938897051160466122738039411299064585128105200879755687303335449781895056050788088267646200330623483565439573335182765295915177715978578934512904904820718454145794773229715993558118451453907902413446971822598548072875368158401956259894095101366294457209561401269822438710672186906010097546403542268139036635896128418775898708410637896445990453613797879805017270279547503370267641204312721329021021751686005522850256938833197179161524083216286390687062024969391630506618292768961517937595184699607789469512798139473109981549286779014350530347028265734937250537182169191587317362320461210373794307199302508857448921206269692008487719032690742287511838947992084006733603795174606584491881591444422058702453891262780341198722220230375888923152972908459687071758306734838202339319105419079739923920876633238443229754017117047384766331407065155504351823552606361552884381106253624751277379448258288319888334295798716914622260485535563905808018909488424422657996794531257340978545977871545143644242873603578286936634164669338305051323213967644489524641283632624347173663094121584823080564586382451054830677812171144205098709328633292502446095979408316121065425959851170385162952738327383799094279007818212278495278203439232724879275651495584293172439287314130332516421554403220722242709658010272382773314270123973976399443080140235535274497901986344537075052530003009308280639789616935756629193236925009532357952185991446784346836953840595086978326116105612128952677325588056237864881566177629223608204623437129461475157168031332669854026479796221515135958332174923178568747530293381572785670452880345484392104348278710608631770260164703281473658865895224084510129039749166268004314347169259277984265118729658873716836652400163479836929604196352810303415585995666307388776709257614621137340804201929657222617085505079032223294205423111969317953183187245941422785271193275857268449914869504518133783898188230970978172067322907995106093912364940432428960151233488526377833609787703556028633700188112384431488792240182263346867488766385504659521537315604076395580261434943025537083808993787319789653636325357657053012981750847999569753691679519361518920607599863476053544581393744547725323979946688024221248259063030479030243314605852405286073999987243482145801498643006439990289571741057221890419437369696858148399377060106539117361266692258977465485181482423706173424132847016849941949179195543128740934217792880676717735169789779842524424834242386365878089138507780953587949316704903196459147642371479314245520998414287542433903103513064075813449639476817987081457579094814038869010029542083657707713738334322437471501250528887873818192825220524610403899356886676270461973859557012034937864845814736932432217694024262771231988150998966109934665210336410893869957511136050474012622398333150635965207792420135677774547568053232823254144610246864442105829154037001080890660918688904491636644518369977775670070410985958543235237655544257085704091933810304663543089836978776728521174056276441461490376999313444602691410979302945730120232282285276808861084748321697906654850894370876290111863857576602446367262098662626232376335934441915332574155461268544880678384040653603683294675712913343847828842121530752200663144731749808845916180545226853993415472187120420030980247820129996259782315733567574563201778536916509281605652496207033629051996500859806110240341131913298111761916094097269087225033930907300470458528868807517526890648358848503196960250889348874383983626628418405764682095523204912482381642336299599697254010007084011054257255798298156395109674101580136497867477985933682077461185356002802619030308211309989267655542920609037566517207720062698644166962634988546124721752271628848558027861617316665267250770434833086432477136840978004986802080025896795959676858835195336830695875609873784173553848521903746229985644096245372283630316612086981905394218935465215233571792144370262620109217874113411288521486867181943657517034660352272210168196041562993538186641740060188244105893406677388403245256799078263384876851752167975018572213491701363188284795445537091093655657813084741167576004185278319515137366233796698272351699531502121714844893068088376463182341825892371609590691385990568263486969997368172253799532029193207204449349906888437733198636122310533466179847009941105794285309123979747855443035532156048641348454116418385880706560940711552614875865875104165343747578355580344107531566173380011304441164351028348078469212702554348561419644115052894574176160252856567588465270860420015872423689161825024219347633695017834697656186535485647535880042601201940045401976480811398110061601244529693493725784226369865461998011420909119067576560831794671104191766480023992484928743739075654196037907493000208971366213550605801654663318017405470887349427587094583026360422615986499035711128795636928030840295124885078929771709044501972554987056363196743287761537549332044293848037853023801846703812392836304788549702913735756717893568468401954541563563429293357808357659329612619569817556747922968620406381798268298193260439921264993421562777105298209466213214856260827433648557761505030668817560227947166960658804726401259117481540379208750592979535329713059706987048559033858432311301314150738002624948965309817562352404859406792161799709723804135387833655280892318160446092897413459081711062224454782582474855465525325717204039844294996044499697348792471750806345773924577876454712995612650319608918460562900583754488365093067318705032237369173372388837037030487508454642123275617672526141161296192103075974773390461782509622765117070001151867937073590471872898244114912098928187444118793313124021040434860921977080602500055532492252738192542430992848955304707088740394700038972686174050759307769339425103563571353891836078387075479117658040889654061293913973677846661453138871889000244913301155195053016171983608171371594355967718463187867153861669776988374526040488898079718285295594897656979528144898715169008591772620170896835157142653866260479639897480728103420762452783624444769584108664896428723139986824632723032341177990921797770186028189695755211391570517913558306382375110109848308647138716339712552633623637847449296524741305447907086501535930513015835733594501553458009038065994644114523656442367168622625418046409096700175440538343035895305085798953513967665013745541114383682935529498409581044475893510671511139039938334523524466531970198553646749468431119901898307721980979454098922648965152626140599640465502049697743814050490994120102454813003247768006009082064933967972452728359264291788595852533147233370324156438380549233614428047394816506561128868820603681337663339956358085551711999898708411834276554872004861771756241533691714369324364914474420109997733874677567397636948560613191881936578328883992208449426359124805797525094992099519058855019792485140094950839303976925826478877833657700184276597147169778466837306532375111336856852199106644114147163319164448056004404613896923590521512111091945765227410329771215698754227641358700594172281629423731131901623891777546455117880439510200939361695709096936432339279310108306089983392683002703581555541643160177682385055326470627673191382205877707169741826884809286202804344237467961900706897878369253141806355988201333999808159566121076626060200985327952218610650885780914832361627344506338881407249617560233786583275452275150966429430556990371895367610403105602954455033572178989439688714734807510166594377099147134190098996957693024996968010467940306629502142255507270878666292270675461220584787240149886983592378648535113678054836893442496546896495172383450916165432565369262063789569453427558093554229476791120236394089170903874861120195789803716851054534663312391976041642572996724468725149930811753566033096838099873577023915383025777061910730106820456553710186334126316478406291285846159914690747558343946395539555086685812016525896853108103784664655575182574319221130778430185055134281808236496242585812053543508696593986965373145950769404632758682347084918181158426767210946814700145478264731795959734168014123914947109282334187591578102750586259156626135023320286908438231882218713757667425111691297332829935840797345696624028316656373767732340088787729279042300582777540684195375919729974912330842740689237640213678055993441413161529154218691858688473359125802758895237639545300457974214941042425778008445404679678019452170430182898406896503736815932807757128969632805201551695026089453241325656170918036757411982761660966158839375921764728306217687033403144307310734106179900197568496321101669873178658251756759249150689671217916838366786534676335064689880622597230543465685951548887382702508190615063003654447025538308206871897749170479201559272745683924425409471838128800602629103220901038147319075270462975761335824087778615339628647370597287247232241564862303603196802732547748678430706111569353819988205000909643739544251857170864966412868918693997564128935210402541810639557831544398116459950774168284351533510740687970169531011250880183818868716363278542527500295534251344328681955679336208138462609915541351554747632296071044972123759443412055449424991666709695671276355005779675650629734822813973866492284852525960659856128264774630047151122338732724664631203002778165075672322240992612418035753982326526202509651919469550476184893667529901888041219615560783188316638670582735249829324714651006477805268896615438349060093289487647777760985007709959759394387568358179640581853618574672156479129866226852563766839807246431454975525246674520838208352511419802106405204337709303847021490641635810090203319314864354607054457275068959050562005179174166768895373322671501426364389536111270759423026763840503754709528503395317399114802698906350975320453810848430293246666902925547532435779059145078611835103405703185081567933501394988745641955240878687968192376628944776179780297420153727474999066926959484946480629290133315785596447750452283309801061951468166689994621927289754954958327509902880592892453185263822314621995072501335599366643141626667661341223788523030523150837511197956418637934123388820390136677066571812275749942407836158263567613275388691820657264255400138310939949862787496102821741952458515854139928151180107126225229266581636052246967716795548240202920394846035598184085218853496188248113101897543882056572830858165868135490498406609927816895477858253790017044766796096984658924129366862712359714796802104808665946195689904520133127288772161294264660823544330214105711900319597531443509938285254876530317081073302163747272133262886478197435238234971743816951855231856954346200619282565398116617065612480041633480852964719009592185612279438311617895536242444164553011732445875280256543412219688999660389437084906693658317453590220972993957274500606128910823751181346621371407785701878908714552717777588704303813752239642267624106206568996126701457911651523861587747744433057537957674557697238214952526951042807573012532698479750706305486874278433678289567349781298544943549735851132657109722824508687103059092649228914974825173945163892671844003914607391480389855081194452043873367731879098795380859494030670117903677271107040800012463805172001474581879995485297957964370450379446018587188347265299757511321471021258307943263641677929825415908200235856681933696098360609353046662310473795368056754975057801509647279269507858489855730736720028463934194321276979509799102216318546362802258219699798279906621055364666436050267485266946733625316596820394686543928601906637848375032661699488283740858815896515356184758156756529745957437107682229410248481748525770190390799751595281238524985757789162750317235575220956697141096971538334801570402625437685811933628311264764357126578187068934328277970365925566434002501322064427900961051675783151541840124635275823841718732097102240877343995261686573214460218461884491893512785818283085053206327237115989464121227989064792151090366185630225494508640824593259984923421685736729674088439768809769995187725338375496139470212709609298683510558261267277548936690764001767347529123747201232526372884150823355817061839490368902719049106267232957811427750414600290615440580889825262251091591000607255331543583620783013797947975518143524036459410652049999254246372529774204909053714010922316567190124815922176492265689639747010469393761518747461054548883374349539619225466517213981654961442331292371420658649761970553350994544372769210107750442068746825448471740420965270416228254084531590622339285281600992558338206598413197621025956219452712386675753953452916610372140139330182787406584023734114915758427208875858965275865788712803824806903187746603395432235711656401157271502223708812899922717863429747612599190705840006724997990359023211100348085623961184066132124120421887181396811210069823250297396826294620779359203898667086313082146794215671169922507695542246439075545993476998287580224977227597635596489039405337743481783954821299096854232380678615142229174465306665328505647657784925602316902220600153810972035716652875116241329360775658556277204008801003958480080515491176598216288990553373642678648435272747946840284319614377990502399961991122830647907316157146055136193613893445788858442372716914813499269433616980059358772702493394147131978465253289819026057456672915115079658775403285830141015240022884940732686878609116429709850575225147344853636359332747200734985912580327076977418974521692858351386747104566548321764804560833510156308248135698285503912073977719257494141970793012250980004442988004813242841945119290342327189645977368485266251352179189978145381212417529671027880260559355034261413632503058321624660877890943614074006745121736684198172963688569816644109950725314094172774341790633823496246997241561098988405813581455861591697654399497128516587547637964162496127054662731186012472940230522246652640286754180832580418283230313282736453863277201365420734589095296478398846703488818763406285748675498376850046743301969964531202810186502549863748563383415703101589408955851996682921698423554426425003224365021589098253591456582636094277272994788650054101744678186188812168853427968175697167819031894354616336110574068160014914517346443425369506315991461243728655363852088399774129011686897088447044104438344955574429788699609800930492205209476430002759946529559053802490556928530257621317339597205759893459658875853999789245914198460427694181176549851962699400985528592997127162679324952828126348151245717626236839707646158870492236364271536241513880672287748309190401858803826198547481393979210114419166575593646947664549470259297521684562605987075225803666006080326634001239883339798055306785689485249830380227056623546904349243278301588327976021139642971585247919522905114307514787668689673601591355724816044611768285724158065969170355071512667934519869151647053227191846235482553807709375709407479924423463319920932638414185014389035179435183624921202634566969004800755041455940620267261012293468558710401190666933005343417473865580089920820831303438163631222579438635314096505151942621112311512662378391948704508923550754854113064502523971515505375412800393152095845085681177158448696483458813902614142848138640746261350538439015533804693037267949474734649407790806432035863091839561141995329362724613923789982430618439329716075816982329308005928814658318388433353474705616062171709188220167812248807424909608571840038201937062906801744171651558641155205220082685000069026071732302161348303367754016163121848875655016735811728794903001599796115366342644669289275125276226083496771739604081607886921073711039690006078707346648676933103493974273359252942505595775545920980201092247302724449023754465700905024501395086295790019339696132663600895446832789435486165974497782523849417889829046198228437354846929763610921927192191990303536550594531605044596260683239366141280482756291446060971048450846324994011954560771580180671010455359408980960824232076556259226127976163442425236965937411284291465479050999289257318673116641429142405461433026830182096144115435818414008232632866236042006401230858687776513142050662077806870858281025251866237766380614685822169465048570093964860669105470466785961923948224398982422346907228882503225167295153682226982038353798302057999702244270591476986927298156463497632811615637865436207527707468421041540957832595790222960328460648924942293961597880082103803425025402709990748998989426482502360442613547109329291328403598427390137495682463698710668544283830411063473397884992941913294152075690893529996028497726728820485422801591054505949561970736255679871555821808325890995756070856978843076221599937370228142455806803934260313887131553149481611618629253751691197685935835595172232341029281629087117313417755130439283047445107018504679158146875853015753475863544207470054505700046783884422948896426624289467269365981418919488713600571642680196964487226998985096722999914770421991874214530127843566657935484370058063149785845906621155602666446574979959106318699640738994666162592362486861249065126577978393378142985298196441815068227045148020146099330605570413336908125912002643827794593435763032217371167033725579864684034465794402430331958443136490406470145826119779523257483694682745934445722463414745364825606374638311073592174413365343196926474312534268131840150132914003429836810543593008730653429080806922125172085788292531765957639592998513024858639146343988223643466316981755568285403960523403901837287927672145745552878517910880891958224630860687234995188484394947549042169473222548152650962713551835767916561986176673229071212819119869809434658371754151754603861453852321388355755979725614364012673891783886471120696957886460317847732872715388162250547725083014930247702227429423494832399404945175767589617910164962367125097090208224519533858297797811395400271012287797319753561132165634006329786324118120846406653902595494350365367894855721780086337245301282230276318990264931620115829652700583271936141723263729678771483713460419364415764385898111170790158556547867598111703417072126916681802870641398303217452404148474515064220194019607480960062771020551693676668716120890481069273532351267531437867177363568089054088555435619680531931088950019120559425257288379147756916494658372837005445273204933513476911218111679416864163289395030985461363586240822412092507116702777161787826574516080336803503602049705226523483439731578435796763547516426347081355009125195583537854879210750142616575153303003855253146653873589992214654027925624653304353314782987225974403597527697558539592149890360983709230949509328866900962815306190372680883527997553104059992931716369746961102176111074945002747945619651419011891496554146757614857999256169280220280447452665593685102535965031235615547080373324110789728915427410341040871414381642572106760432709488517272592344396293549025451267661489577556059398391511961659623112388942045020173022428390950694481494962537526449241984763571976225089949937236067691858240381644630406245898989220178225279867522654699851532384320869279059902505423507191796360247049528902318384075851342744115266953671845424730943040243939564055215517138692486677268437330658797878683355750392074626814948807710321062311873814268440326043636225870033163306266873682535438343679894779547253309022888058931421503153081031087813805064697988772101454843105138671941146107149873949521423332726537449977039092165030464887209071962820067850529889942814965476063987020483617990158959619706556305984484335647578826502193833252874583107659624133219499259540208621919226045732651272361796725550110879192865768098172967277599257447528780635618217899533871177567537562176996748699313514966727668195270818159249984713530262813192505552036091978848358139832183839253504679817319787333802827314583704180223613573559592401181785747762602319304215815187387481738184028911208566292489409020555767049598283966940413442647117042797037738469620059774446402784273715718235410341782019569565038803122924035484191188822064724356330963165182830815500101317053061484747461508451128119593932656417290882977374207421373278038832739910247835769876608368717675136101253093347657613697819189766447073406140756968293803383746618317418432915163743582713770618066566176899167161892984231010313581804648934519811681382899481176026754141053687310806428021994648278810567382214580011041096055883497643612875245841866277312213171532373197431111412106453627118681094676033054338664060294227890736512000683241631998563422153572966575361649942145887850400906249462142133194132442224629481332633780882583569605517621392128318599724370892066756216553079954571583364386629287525396194403652806395912467958706618693691109461560248497086655513762499846956962898503155227294355666969989712199714559915580383623988700692927450348731086810199904438263361171311949818305945636844722648788257680628982474993144650714860359476010879599627513385577758145837689852190004721770649216105641040763917456838733411892311709604521111525782281997211822730649922100566416034855396291366837945008297342938981003940787899666278435649483403880542365980205571016953605810909813356358715085049833441877626846189582407185417361326196753929652914985514743382472520826484832350321664891590573572512241099494687462086667978923263812044432199444952509783034970882222853526593098887113719746229108958077347038460621802451548191040760673794243677036190690490181461326879569102262762939563815318351369280525049861120808789672185936205215180226550272223383589672382715608152110452775315131216081119944625758896225916106892996669087288424886874507686630348259516393172290222410958386927422055701607584038121108780009863762760163964220147077221205507425712699142117221706988150944802574232494374445376481250313478595144955365498262714592462100082890440190597590144364190192021358970447026256137805578344877914560505506395449180388456285720549997074848301777223894580534808506541834925171804691755876762535485372631102807582637701706989918369611919270528643273531202923690257505836667564760329778475975771575307540001141781172756490434229260343643548835227614113179252856647475526643577745517866349338667520812773471906442627241017249481260129734131280854231354501153600633620195918407065288878929460039229982084574066283882116412332392521170322667146591333114765805198966338712802568481255086406573782969597618691650446434256787020589425551947132859360902181242055043398059247946835899076510191975468504989293100313552628673365236984964980641206984346699759882932633611306644014421848115523384351486817640737083549017311371779926220948308762687383555847713735723955436578741624900535170012070933707214284182429593216716144936737420683331002766249659186925573666927538967593783377476902622675608191382687595782850667596211124890810487539244791531595957950014110935348693356676356009063634246914920301530964664244462752382997057932407743118021372744958257504656374575820028633155989354489341848143347395303433201220071574397252915921554349739091707750218554688117024628423615429952074985265434525490316589319857732413478801221336984897566144110716300693697043549785287436268633248352289208680345508002197275051409601727001996057515065072592226952373441234318396918516970241734369484548818348169528946667833151569203405697485321212834808408375970602839210805572742454854516710084165628639034719022090317577982949370339208081048237405758978326236701487813661464915029614571253950165477198321618739345107638932769011732091786833034156945219653100041239199440380309432524262966643556553337315023750941728111899544811074449439488428627962266903225337587472595151598008777658948554167184942020652872691959000699888678038018654867153398054699113117120315107120165285863249590643572502889611372130664610969162727927546401966782234293912778501407707751183048550944732094933329040720280075440898110874552308467073455945411673857154821633769334791731308792608868135572153688680102979046732397480172616167616980145451860982433939528481873125622128437260017062427695878264414558096145552117168238491396754436944930027163461647164071645487157952718444198403452062531093659977930802639806704098872391760411027801524801407023059628779014753836100005286818691297443547054875764574778795474724240500996921465433359864085175035354780491982221724278900378691446532568275754775285522272945703614722693564158986990466848896970577147055410537830505964442315900749266572879887281954922439633615149378079964581069237125092206590529369398634605504317976482987284529533534025785248949605018866335025996975233852706875493618389317149223259971492494531799246863338211128991724575076444631172775553671666503379145920614994223354037372905671317686827050770153455342545647625345898661206070595263027740274275644716776283790335155871877791717122528749617523339556579835793465675813621561891653083740571902319666962021235536999995374424380793335125969237872154169931354258047440728653067826243896820895639906302995876102563984114087532504994665052886932886489303849283350118957452265074770856122857137193376458223334069581170439143634364723520318878633162251502439391468406935026253305406295845547849969768435172279744031268969675814611459131262243323537715366872615581329653193523420309548470504267593879881819497664389037388957971355237448298266343632907297561738647801360393155030142882826118262573736902851977989477533409046664576865605090336341400137253710027019171764233146280452382170371312071412695268852339982106036450320454893507824268719927374547906709147586240124672229448610678397649191887909780872234320509286630777892111242882021771452646348892113046732039729078300507630893045186242192029182298296645612023552796405990998567024705383053671594582463660525050254798729308014590124429839489199247332671688547572084611218533549172602571201245183533801279289054726884741690301368136998052741763461117868006976387479080476540433660354045913102452863402300629829484327204420703740283077411392094510014659351087169138294354526888044536814188483313630335771584544175361754280967637888133338746625066439426555938490207244529331275927983372917848374157712593706662472223148871412349480446001274890243726385311686339777190935471831229463801801107268562828483595013804434627727255307985435135093846317123350283993792474599419330288331890217175673542727592234740084923543785899573026041133979890254649864519498451160827531211364954089858006611935957558379353226358168168360951291475345854754681103762113443741356351095637792537675700860633566477260190677188172509051987579128515048602906391244830443150561224731941493915690615369072436524845215592537108961463635606966459677617365460474119880597798531710491336057691239661480893564387244523882734919726907823460389831023494972968797673655612719340891038697878023639032038584685675165791114385627485479086841817439708495357390550123696017571744365527283057352923255889267032424324233448369234151134259511975943945907732999718512735646233642494328542800356041077451096723921530845601620716872159489503689483658446451764540079471460639770985319627761102363423360101685793293543292738686056874793610624190032659577361568523717540326861523710182324675267900033522663022467186457122653665285965110977500225401060622091807510044618592898480411683087383968444450880501731912251132752620712833200068396764414235386195633851530767558410288473161338673738639105658608820241537454774535697293804852097839469256649369954376631693570807734219668607556666243635766983582156949708567273220427514971733185242636573905283465997030715940809956214447519472688141303019796694832988766274876089705923333192282843896368866415928058403907314934761481972732676658779530600068489262401370070285450045539788194243629229067209760860273883281782203671990491919755780686287855730455146244327863954688932179652312590065379380029432597771331342891842392270451831068737755383139623078291612622944511768288327420557143182985148882367824504750783647845132546336381878414926529579825199236939864697879946272858459099304049501519445566032295214498305491277657785726312422759963981647801358109794614981923745389592865681598130275270341644078699137331209911099755521169579890654526508649124781827167639278028551657065124892669999865727551983776836401992232188116776176178024877024837663664508739553089459326453765944920120599096517105094452116405913213210398000558183472501478693700739128133480531518105305957391030663243378898685071583543814082988402597638771802957977496570308614902112115437213561045747717634136516565664023293045742433830955682819649826978146503642965676793426426887534174001466629266238054729125531942212950304662434253930671133298751985176426053233643666961838949453014296466904078916078262988293012709423663399214959135622224519344971085420011443135548391522341253893070808760127090047603121785523944295466713275569734892989638854725938007096221189221562894748743074322276636835185334160711567440058936395527207426512014081431477086885418174648135446173847215024723626628513166913484666069212278421144968792724847280136361107144570452326319460394384423381049824513676253213252295231249932119961373529699888892695367144180282704326678239231772117228011044252065386254754764943755370769318289626674487435593693848854498677185793236670332361740478962510381907250697843858206901802107302517294823670628513185705260473028849157300738190184400401561494392870986097270586052913550394595646949062482748259656164986047844101263781365937197104212520197633243616982068612016974871326188353014005858634818895447749360746047274267382330199250468052165810115328275805626623649876291842760020054886387098987500737017291175434631670354745496160538227016412372058286486076766399683722313970328000435188829319048174497299589959045595587243116819991148383732737642601964412727011013080893628762355098619857907799994441853521047323730114824896703838001519327165211699140417586883996426133275429487074403062287940533965076791447833930124112859196100898539258989807381135830380321293079174561044231083283217884959984525510043777508336532366868901872530070707895545365576186791098681105534174146974821360122520963607480903351307562809481226010589631059224832524315498497673402451479128508017020982078712271189454973055274213202005915803452074530931098919764854873488682739700737016006593417573293776969952829326406757140862651768248466763267963568111898291556868575082214500394843423154222084927522726152565777474572927594020389567389027118353119836816697737832494315704690490608571914296620643052976648182903993501561790049948621938719300621339842347917731099304859235607363387032625708768903706928773624405626182748789399218622095976349558357838654222603219746822500612310993522105360875062413557769780200762312955849933852440345556877325370949978445155032416014992026956998462578409081866347666239733394857453009288691571289777014335281841247711346694447770389337066488618727141910622101831445341160045935766354861631916612722327275724961756955200367448437824295201551007566571896511273795242066338601061465440509574262054724710659557116928354738743092547425040321878248809236244340049161089754291170154769845357016886967638988128558075390840069797755027928191456433498111990181653657422424930753257574319894260903101818996964562403738028023829024111850148365159041389965327304763627530561455052078767351910371195243600900174901486616397533860040553893826430062107739869441582206821765195171152296226241226838875745884508244231906088724605554646056925774446366063948103633250215514176450603554233418069923219542416658899438262514551359098340482731369301042313667818254892048261283041576400590438040501708559628017907612050067657716380517805916018514562219497266892899571071386867380081785060385904316121400729870729304358490765475172045980338077365135469589667076298820406730610976141752383403383641402588807096087920717768241904304449629762619186167341720677551523018623616594832417061569962173078029921543641670072950968495655731807525522802561257761542837925464418411831142229131139336011750314566543037524250527142032021822250981279527907049964256725943792499921557449320088004363078472165698321162474991616519719191792716890908773549696023605948422701561713558675385860568412167512084447990229852717810377334136567513532001012945289110461386804371386326604522303567590465795141457390511056272050762744362020096277270882120558723622519112272409282560393477810906608261856321224608322379770222427687347928982378133399394773977851002481893786330754918733632323886771604102283453847381228870723748597009683929093080991656995694961557087214497184078235252272428316012967589690303003923717835214130904185371299698308882108653373667553309441993006390500902367732098974215201088275687515942144098150121261674432415220059901573819930515952428993255943232535749788878457705268353868374894493409592370739074900696020630807464802023308084803605423938348746476920725865114284518188817212830990201247057410454277680968219205797593705960027392666202746253809815463713606285727890052949984502265512363452379724615282478445250774519830094060614701382410124450326678351332577518717701451251265430557366855994655759698245134034532274453089826272905678637288986862774277568467590009824976956381032701406493838039595120139504036789657882856261032117825195071031532320122066899373460075442188019951524986605450802528229788032537785065230584338481785677494221682310502666421853442512609533341935754003053064675686257481446380616684003248469149594365687254422731506038951704532409315731946858135366161542295740751997354092164053709385510803964224903363525855675436112741268893229690957662211075854268170967272099643793798465563312507173101593746632536634964286319074416164534579067411444461633003095192540824673468938851193474093057601386883974390867071822195148564704578836748963281442897039199351874676707235394654034270050696810687417406593449987506257519403295826374474399764294756042486174429152031861370399382503562206992396832687306083118468340391788253567442183704374791045461843197503496393261025524759490258866603443996455575378857862945505400964063992982560251211105226451407134198327342702212340015255262208975211417745537608672585562987007163709677490671879032730563924200757819910953473209904450923480817663187815459345570195531798089626654872100812150801473884993752796059128606336411090792072332056067515208163641710328898637288270040316291617149233916160672262710775008428569905220745826844617588188136959216830775549614356610619691015252892703605892520935690138806244528013188962893118134193380984969122493842066332565089719119220159707291557613462831371220744868533779974138170476324021549817539604413656492265970814183554759783082624150210111690816336910199589237529086687131011629354452082735191278922399705094004922380163427904923989568341135370383973936876571156444073693196967465829360275463892769047811623775783338555268496262266849152873329030406770459172582298079858994640085706747789648412448744291059855249614766540855873418720887676184115042813603658456594544970523948596230536172504406545235757744465788403751851282522606900313164324755681186059981770495838726736153599347713489666029226975245342782283022129266816597933288726734099216075304374672480149518288672270207196216677941150595332406082112837729028817460095895495738773654932779672671793532738876386604731577685133424148098435633430757287808260846889847187865781299296621014393848485431042802063940636780345987124099654971167624819161638396143686208037772263149249060745865013363272551425056685691546033870200705620241481048129181543512438323156550062636008696051612208294243418766721643310739425258169652549879810345520515408912017199288487048215101739104718654389266813121371347661779361531786236712451932093283990988416360084792294457534133649597855296733898980968362676543058894570943209520300986407857819372517720477789181543533796628898064054284084703692316354917209119365316602149342632609119365103302864347650770790811877143227910092708998585927588245007304095291100907284776818721177873624313634221134775558368747886809150104396652558444416062247172392805131890265772469140542712269035234414308170155164471448744685660581894967326379087642053490204994129376720685526657792737776774211338883302168383708377016221146685432593391995347555124490726431501679103088968339962506701101597909463973768159054777469721975723005623016366258505696640557432242680403459194482064537461969836142157799373788529110387544293324299846976513745392307339896336574111020770133204068859877637003386076386972659245646477873049341962373023845354892071947279834313082972769984415284618633136435797148836045387588307575702379496248834705471566949074428451519135659609266350456125079200169031930837936815666064196610190656505978578974154598187916615348149845824606509079828890092579818593475161517024390375812030500021405030947002088234941278197863411586085842296937876807293729296628879060449245092039541635295692144155797692582373699443990651727577570300029262514411160415505412606362063689485339061838262427809182030946324558342750515831653709107059682559969336502691314165479322166299135762572209040743034398253476317800686704340529710072616098931724140689610702050079837184912299575266531797883382565187184629683821917420576278743501268118042430816756536310355425691641323458092147515467963823462033350018084081809711027283327254529883056968132633395771293046657798159068400282996759410545625927128824180381740908542478045893126503251148956397768780461516227048526185008507275793821245576033071957932382873194251723818221650573815325997772530804373505965931764376154435916842683681475404624829875497294445011131706538569702444709337603697597514939373587702251738891467860923729304828220082645268887642828642206667737715946454493007570025236633483075656832596807463724150102554958126238794872236622709558039544022071870061220954220090065747853801107886058206635722271991570569361086012754104254893477791069756578308886732105014599612877128449039328563573967477277246381763395119474001584121422468034798970744926423128923442244318087418097177267383474837212466751025290602477297303819377698560339718488636093215717035554954816885021416423285862683082765772229540797665706367084866530328654139328479675691963968761962715647618462696189828801676857048888062626554419044926717946327044724780307773702971154889212093643491460806268301615420169261820222473710047953552888511020762060446923479910256853608666673230201810492045489540710121862447879129543140173108126925298195559336857730275317330278761992599294106123847285330241675287653755417751724058063487893082497530741472341396977793569070929556203479960823465697859531897215431670928028662875187131846351834528385725005053283114364415276701336220833126137724234186414767700980701851320067712999578721405989049638680004101559196370464066811075459003929115762949528394523984508797069910643220325340423255253014439362289493709288783667408108889207922371537390863463952354015116863259943982410802179559203310400801326982844813612849348840977143704057169954829861232975644581512673515636216781526007491455019058796639311788606319026895129367580425097665075042145749376805355069012556555488713908844127265409783898789849052886913134086409893809876389754936802668066045548223906218741747607495440891282104497353048345514739360902970133612095233233818866827769223011284326122562907920612599967929405299529992574001944380675397463751234274683865804906197739114676343993612510181270716892489182141786548194678635774271789760220957401301117979718676640638667023620629884361826978323901812249961696634377397315624264227527524294469204653115905976438855689793574751741572316588775469329502184521140081864589948488504911189434514376497745665860392921877186224604154330573731337622933485499649633834671422573302547733396103569195601562011987831493359109051188023472426742706982258828282720437886769017311704916430596239762147487093817434320982441287820349275757115032563457695210897440465689223262406070970727060315669919803442755667642811293933543703935041472540507092603059304577829121048014462117377266060406471029230576282963068675931319250751375484967148477424892880761738068278847964810314553582510622851341053887731923487405567908001016401082411993683961182596013775978494548261663553202265866471800391318699382837714530409841999136463765603679601840942697004469978343477944633588322442131215022166806740335815310879751481789130816996952928455008070350289547965217464260223406710870635905031912022909483604403047191289923949945605816591546089552786220681709551765188247817806692632481943550487509940927209580203103903565926821093162117365248771474479539115015375626338101537009028299998136438027619859905008442230822515660668269290804820217147117541672251628358539371122844191464138891361129449314575794495829014514726416284747536154776976574351451719647936324782810237063922727140237556406996651092407012588230522018202088560682453444279393474803511474154546261296813581193019186657422831996481939559541231727173890424663096887294960778361968366963163810353107183790275674709389512984691458716077369862086674615794829482316188264772293673178116069379759652239385200391188617660403622548104635671110314066825559259546072344992792340104395167582443533802819790274284374920498212342292085019100435857828262865055323905159377944392873362337270076855232834260845738552845633946084578243188631568542155736439160705182455038612104921217283664620619380127645621940518257395262065314269789614570583974501286377153599644011062673479282640384059020445017173383873079038851050974011936505277873880727906642012416776446152678021466566327162732852946525510304598389909132838078101539021387463281062919451216467152778971476893074697099340218227238905519476400895935861233148815332680824947010253701363821806144399443496414774962380440819044180862687680274134084085655800438929220186974879130715938712577797130205052854165919038678517179026712449316965041932857242288294364497336757270537677259183789775528039006261855083098780879696953837685140364582101623852121702407638275734996259923403365415149278832012997264256490806331968721326877681684329029655279920082588227662555244889868326022817807373599843581167896605873050807441528448035436657390860735899691860471973632260245331895710543034935089724253516031843288825328258295848112706879549084593476606803917464640087085607544311609099572409692707816095736346913670157683090568110770162024763196865549869124162324262763338488567244467203455541363148969374466706319420541818378484077600614044968590975268436173584207461525582061868397559673126625300385604093100478666103732143676075835510215397274212208686608099977241987715622608145305690012162609796639178056259055392188984062969210078384841379605261628349744515680190465841327255553206268104717114962383076418059366559957773417851727329195948112338049226084971681970034182530525930388709116876504534905746791531380398459571301997381444519908132394702886791268660320783245255817520901133184255921558798484848590352686022340797719331557116466053103579117324842787725752818988122194201077050316096170063725343143856124684528307137146161391052819996361856047392105902538273062041036893469413202455887491968499732373543275378790255005578794728455232415520738145895280365011250458626844026197521521326972123420103901569219162715656535242293743085910549119960732149576220031234888373464854026154779227386566843486851803854645025789957947554342307645072771378654014845058378026952892807538439537555267431374904821145123642687993847640343140093339342666449304898175539694724207453186997536144425382890092911473270493877572587244260833375794766474768598172111638203984059623154692520976031000165899674326330923799434210803934455214555800035199408014583733277424884821986884627605124751568942227160910966347385213373121074787314858526293703692049039784364919189721105738513384670056193758350932657567077436812450448667549895896947284433702517797114646145330189774823324193128154043900907840069444157709596164116859626287292569730597663033438435518514151582334594311490278350501712110166580597662367827944722832514482849893398729843938535705550466531723722838317462612887213078938748391338433088445078601566372993764135301794777612972250935862946197109153177927579887454476734721878625631389157283650926760768893327584909277941294866787687596482498215230540439529418814931909338146160018784976754112906597238030055607950061901790095484887579107344762141758984776847245002594036822698898386366350933263927680667664288000576837608929515901165669354850309447461041668838697029192252414004157784271243660538403177757677071000458038674162501365147571587673525868830238693189457540417425273470983608361817658954289711405868045775612498390451467210648513628979747217287326011704434195869460352701916419052118688605356853664141941628955518962763511143988888298047951990408627606693375737645238201901789494605425634946964168050983334420466662314049716181272999894692385244139069258689205752847932995591471312853208392856178337536871441154687686092653767466510966714773603036522539048762637490386758029582453458505733804662945156830536941143768951436874132550161564597344361328765681289812852376308428791151234370256422266446832790276452610389078426825175188288054785183966650192407552243002583958473678474647098762744842868660931589982642052749997272141423857517907554130386877878705423349719201587118691118338926086191813885596816328921646442541612459316232957679243631574852016613262197846277911603518514180453507695700969461260265476518905584835393509026167813969098360190233716572695577454213321845926245287487157046951119743257124924199098695946348026339468612563593670413967004647795185886957764124423614902976450607606905969023624865982719940530610388967866359177209665320059407318702533835038420058781782424400072168509087224188699858100208776345573384334719334100456980339720760638527608364338070500841652993503681666803203190287120541326101662008974036533843280770450135447278394079452139758934509127124711862791957750759000962003762536482232812048019442856954276743130853823454497933034544498817265787024072425946291052827920228927131168473169880206401202007233714936622395264135641275307316436819984361851470517645353233377146193779221769540388224571831263526550671017850073713076574464790554607156922079806909211140732196056800031677245696667397453136475339080660236599826564584665393602863571432776253289245542064910281434665597629222502608403626420902171085182176114275324454326123629595753818531017365059468255517117133092745672998934720054983837295066111763913431785020527822049482299851289556238227556198356364746474067077259146409813450278262106349683555878909359140517923103709843330315171931219859149960208773215711605148293809482913345128752411760441832246860754718699674961850917392868925968959159214669957590108197189699087014341330972521924154459087488919254111170928991392722349199408221678291959116425304621269327233850090106982125036791176953283527580339420130172373778704880416951366106988408743431193227147121032997498827379853302740907032466955814777505949479863669370755255702872028668644514732548019200367955995842892733731622120648698173397247024191051229572606269547430163212599457636263162414987285602104583240540363304560746127051598646494031825295816404087134820021753108578459458010155081894419215765673451998991892331499281563047025823258450165038605386958151966716901617373230056215167511976072625864894009517578808124775726891103317731857306336279604350834199035955862942619613391717676848995443566585033749351805786207131380330989125473480622369533918352214504205062502420439728952834964402543361294762574054627689408713210773195277782212588980417523593417869885932720692953053871427445902385629531913892125864752883168203837642868106794966160587747714545321528624180411266172822107074201461696939583857493968209815771706653390316364335943607432481345260072739923428691926200291435597780443072878252947224343258613909244885350747852248480550798048631535226879823159310020064276567027141476483326900573891516172920195942022108430324926231596701246165905523276921240258293339340005650746567343508115184825134179277480380277239148715190472455109099193488810829979456790645473470891999666739435012421650832186551723099315937028625402979808295285826034788107580302116438473386940454342958457424125234927792282074323823666428905053280130543640546527673675990687180570598676754946269950164270771763656958975449747459108381270316983789533893519251639305428122531419881276647930631942288980044330644724298333759996229940718638804290718224775731464909340612907896062958747220174393174540854862477806323519473894809316853785212027332048616753325769026608620413064534151186443015874001747648952164414641511925822376876586699054001228508273243267089576597793352781447381007414974445176506101333404934246755271116457516839435254935874908366124999830357760825664322826980823054623119484034020256801659577904673699329809593871983833356072774388223979761945167915746864627502734987758838118936794589672960779053906651669388065268743993749224678786299347114813014612666667829766471510420721823223696343992898096145929873686473280656368371273180917405552806521598711918855198750480474575733402114114865804910229770517814826184347951955413362726106035988059311696857394050849232585677870874226944956794564837583635298054720353159251288079660408786796982747472157388943738222385129834293493361775919845988762087106299807435660735166043748424995564997126879579754626907913576828483198576726054408032062077469586878690885250828449714747955153440093450215536591718253210733248479380810246198005775600669917469211837345063735894333152061180403014580462811178162621674302377650489299965984130907341438615003546937559166074455487276456827195558938492722120133860929061232898836447163482037455676208454491083667388555466347114633679617361418380241601340587614143797915284511127020584532165078963831157153832783945654845163384922704884306586136496512493707532111575361230426993349895470389158231139399858836784255203485841228433994296887546328653479290580837141325995145736194520959952592482722542176251485427121441416982203588101060800048540387250553023367611618649839981516248195311268710084133829781065389981839126091435835220952248591183282542554968923264857730521466876828341484103425353712123006068109752215542442251048092113094736044920231605157328325333623542283339901720869003651460714146290245178804095521936265588121217915162593688792836162644577430168933331893055803570160182068453787438067789347494327864353200272313843895222542150848193844499664322809696829227162258574422721886881567376772248351942205244116847714557332837219564572425148130252283679231683799755805057846581384327448893428268523785598764252396675206809208854060225817885951402116912657128165551272210703042474126879113510009089907418738821521676570459338859109536426465702420982343579741080838035208929825308125280663633462486830721107212095194192443059154482104979271780077427588804466052920335670116633713910206258986466963403057409807552257936257359568188406882965270769230989113769795183295002475215377362086114771587381887691957890759999150353051285801750198990861485088566458227988518147626329208532183815002931940021535282487426728363120201829365730027723125955806070689747625250324075254983295174988228848006734107330068386000084100068056051395991440947818896287968992200415340456026568338218691465594787490294661167588744170161957473047572638187912800001653567941772706295090902893837944214559418252951181689959624781293740792654555760858544603047416139356210825200660463316516258493112065999315616784942140037740881119229697420127068348067627981072610147612736660641249687760853458344251664867774634068200438272990567533778548562629844320557610728318568462824766470770296664724492637494470905889234568490947850145904964214784928154849643227162558384349733201095690633624964750616293210356074949954028172087765906423503844492252057239296692175714564661353050546466012590061785375482196550310506596340420140283458966608558490915547153859535743822551941367702052134726472029372966183031761305970856723926665240819833256417309709991445443816657372007841571014789540252125989855365797437147854754771097346446871209793837966723066763310052351602807015481903029472009514901336925401528640730961846980492069343679552447004336548713369848133836585578684781452052862832833734421751899091056536845595862727178100185437351457754797431924068736121287398221872689749044928644408159602513526797369560583042840413917410713740475451407795451577424918622787884878435028464520743509949569583539411960343182058414358120120271925022564470635013430159871389310187662274166494784923599070068611410221950354669660628999946534952982362229801241056025436170900127932323695911006132901464884364755995046757413707502045340773799840208031409212075788651063578825331777446569950556007316314624555409585669408666049693953140615893338491809570677517407962582414670391174910185320579591866470346523672021135119723143927745343938794880925694136049670977143461349379549148158340587844305907186988540305361484294198912029919417968289518153680445135914819003165547342446881515827661519775031436656204770621737493842792366504858126263458209162616872337317948520349492013168125458613294068392892337780268920738894273385023322706317253325850903349960713752688147781878065947732869349848278185059841435008072271504844583481393598001886713618645358684950750131423843033622587064666701771916306246157537631167548123495073481239149016598305989728570355369553186170710798292671591444276976402111506982762853988666039109363416878075659162750020349833464470057389494424215349829411552159602016383782409840764454223088166190022341332633876415666278343480229909379175873334699709637545942418548930744126430330392072758025797085298865037064317715911548172861049095962209268895639766966872185598517669584447410287122380939059810457448933387875271996793024677654579309195629012858490606901007135068671971482547735489482209551841479639089244743227456210693184656475761481813478703223068647938338239595838909915471757896383559006962854913133019778414530756401969697177934302560304045317025482230008434838797390630587951765409748208993659075084647060605922080648941704778967020938015583390043985506461837707186979736799740012363952590009928069360014112775230120974058232043856885254856500377248879892220314619672772670266328871433753775303456227253075959999410498854757948035996466198302641573285133863510102073904257949899457776043845615835831620107201308141002959660909044571850300355122073876142098489729894144566255125706234554855074244257062902302892348560330818006622727214120467679377742911305009212795074925504113333950160938050915059851041512517871967700589054546034025357138530264199072346706229606447363373552693554450608891578195976236840639971091738529050059700577922828712437193401334014821624600263502167969322269248138822058341458453118445259030404583758593417923198457974002754959030721843569729505215560373513272809757565510397836617239714182024961737662311222881164797632293500890567925850771164715784464574107299704990188391809652561816767303501575269901043668162740044860639218346572668649425821061571038190238625860109902579621393374572814668170262235649212113163937539014582745369860810555545779300492561522279096915371770991720232684897589841517366051256009473727423219060789997291298273263669636406507904265522318333610574228470617797252802431013588170787960929060113907389947694042994478777515762041522987492585204315331974198926337381924659320720439928746200998613618483229581369906201207082784875838896936675306794374317367659734049153252964317381336124265337511247383985891709143857216923653350359719960914991814341927077123828337111218159545497614519408514265994509693862244161381026940563256562549417441497468959250380686786545397872387066945541471915110211821753446938264723933229253741163304278099230846208881009791228017241082987000016356784905243045085333675171868377266904288364344351561050768521149515206062016393915051196415419245393123328356778906676897374401166577394706755520927504479495765772638343788074058165949584634941190688481956260609143890328101117072008179649309799809731185025637231687868359756199986016611050335850073282968371862713497685274461029523580148210571801894201499341612918841619917431057137621506830583457249134238234076491359484774307256338807694621839957950707636797367498238192531379974043009111877858132252841432891088595336305029091638950005108155703877125897001105438180533402323990496504944018565217260763730264014438386312530006261483730862618646772412730523414476563515021781051699110997090468294718798575119779427517071256566229480256140615246423517928923441968000442175772869025851530436710431707979955099262196678088209978881718942032043638564772270347789993926018013182450834069680644247119346288836287841912011762689453624520322942017996175542440291285515351971139659797473719078977045240506432296663142274010452779457469840502928026297428430646200391957907267406187190188963853561595386916885203336954034311369047730123205254704797574774496001133856562446064454214105281712012498599806495518702178690850441791685018742089552538336876109965864728353455528947216482553270916216498929859617932624087818072389483939981047261384079974000647531970501765412827308275820264419457476818511019900493736312762875448767078713772316013083427939182087861860378087095398155524575399164023525964148785039549492027800502279206002383339728733202607228939925953502213184486945680105886204067137854415617258757353396131787269984078432533980793499684841849162467856255846027410881509586625493379002592871023498895469774102391947633818456007613129208963908886516935432834411993946335874410568520431232184076267860711711266585301890675812636615031615543805209311090963843472971910568702840493321582735917948009236660942086150420471147795001177563628896253545379967100492963403308641056060092317297296829569260278678021546040206059757492036970305722339757717506639918727090008749692943015621512141298737592752897922900924698531346908260056213197110230587764951058682600640410802483679678135455528290342913069625391995215379680185449800036211369477691175310646592704630839989658726709471432300042852337025424457668501630179608167874240334699431261835810937181272705774871720014596238180708153389332087860677177324215173613013657096186378873264074933724939231670258974088895942089841445572515009916745173137304885729307920262794134247318137451755946751172958876524156271539545818832087461018277631916302882148592038661683209599126482869900223601654317142993259123994166397292051476128684074031347417989682491449036763955061974111947221296165080433676176652949390469125530348631933043283485095748473356607561923276184980295464606761702815635511485529182267213491143260724396154083896438582755472652606060222054889090606720938431879578238152304577770622655492246688454667793523867902772986103927936783071748207974152645923373416906263618374683949121532364533409990680654182897316734314438522765059742501601737084422813854332247987013581593861988119251786064900184327496756496789927208875266499484761418168659594837639894016246775341732309224630346108747376368089600212066245200291253990783617952487836688726325310835720016717339650563778684183513560711368700398379611000018033859238093065655353588413987857677691272762111302055537251323072231329560803512144057074679175166743348232538920110202934305020397603102380966713512224632428390975613529647528247217881931713941256938570735023283684367460067060476252881428504030574095212658615148056121113278837729753791473301413059913256911045136102765276606611124100549119712107225347972701293079603954313758329294422810628110191300967964517380480563326245097902296697049368005852398624913046017576836790941781258966577342579821478652324613674492923951909743584890698015831383532145783481404744460223899180161329667808652417996126315941971839862149190006780935633897414802424879405137568671137238073336405944726984765203635488536881865094228904326169026384570251189530420256824820996009376210951466390955008804846747035427862601286820216099305492618955837742819061867539013798615596698951760183082898738169778522575105773008266167304406903024561769286587346985032454371511800284813450443277902213588191566529147760310608179997703233824571645709549935621416976624775695849611932563918720146672048855605152733687922625106344026795886033795638992274271237232567052611603646032160451786386704026383640018398285750328161244077705850568489212447954154626717499287952286747086808251868294931918509162129298517032202453638538786970786383245363517748843662763087247261911397238408248228391523467981950940560817185172356159181370615100121043773033401970086674703646311153067851939060274725062142074077491377200270895902940391060641325600237438679730400000394388410000722432251500223897565060715465786102549662639479888904612779929518437433899335540330493687509092581578707766996579123739504830448481864229638286278052147426321603340597740667641219195889841961971213386922185876302436814613400958251057128004560684869699546656588178526132208069195561229430338534983073792153284539045513407662457910439873756242981319660004854332744572141057840814983199728516206115104752973086858029634363636058495255294278321722822113221847566428724649852156465263204977876642897881151649841014897647026471361292571924173863717698209534738594671876288561841776625331928618545484197877009599966220928486442673203057448174410020846142018559145557505488719209551771578875707878297749755342574060412103563009970272763879791917420726515582894707789299250293249362584749399240731873005101857017902515234050665589519879169038433002468702156754544130214694242944605885830101413071165064443225992637005128394619668412642281275336633493222360647735469577425183612524094585255550110488505081210000308242314200412487937469131999521235063200886512673947416324048993621416150185020828726804290328956659008950482109456951664312609682153038356110120782996940355559981585737780139025883105877385775146345035068690348237152210774337811463291569450394630723394031556819690048113789519678468114949829663630626239329256735093249525543906622857525414098117334719260026343491337913704264588924840831044245277180423973374016987404286325322252429572925995597206636055391354470259335937707089805952976320084062938759554460923368160945972152585757710885312938642310924593138242885048822622360110637025481210406555956963780128130138510517820795403338348091409614446669285867507292483244479141662000959954873680119651582687535006383682687179977010474789534567226049746551430113473718027431737747711899915917466117866033202289234971272565968357268713893330832786898401647522659627653927636544494705297599761862934027539841297999056072577945857402545710801968203026278227584944298405959730495251674784064780235819190934050716125403819146653843121182392613492203026820134880114987037947384485162719377246979256251105659886792190540825614885817361546437022378357500881887237075566410020052441501451560466816547533222875564417318072906432080122658437025913420535912696891403621805109240208690944634342927254083998959663878747374308573754984218574177998032912953445549247270407953483088911136921192032900702439410048935700596215878224978497963862783381811102995548237819558927478104026146276496092430992042213798156617353319685201958436452573143083707225691456228217029004805518372265047471870581156341934477706662580602124955952498900225966061410915809710244532611097233675763662145277810603640839745155256636158825329354395550093562952110461767893646400868304652377157324251000941843979021402759846744805648073132845977845458190336385362507836193188656496492084523589726031747981595912964494356313710823439540439291163012907012443204605334067345256825122325428214153447169658725225156753177482657073703569511403585884683464031411263492798212225471210320128361084427601165270532205829849720414403679635116455435003246039033178410629633092877024259171653097535691682362699041024436011232712595919899318502734932925169448609230401976374785755139969477974050249092658574415021455473858087443072025293612716244920332938285288992150385899316317854086143208764950422313056717774295326820255344581806556273043160551661333027423227895237423700414560822388968606989722003721385826738814461714786029472387149598065155131077562054189433816319001394126355154367860294715159052767213842561703653330037869362121172070991536205889072006886357528030490361356278404612455803289936810877789980216868160429123574338068314749855556246451461418391252645013350870026437507950862834499463256073395471979426893377651978387513686311867357145527265841965238353570491081638268260246947300622335801733666878023715054007958359590883129214088112575716589542540502926508838611948247614005044355481728049800665333116762205967019394604098311534057899986669175245331900836782578522255040596290945264321877668107843746488717202899837951018936049257815143308848667310486422190834744038586391195240346845717859884907301329627428925328295225551729384190605791974060615729003410774306390683942967023523254063842097279065642070650489990999055094963682445700951514931937476773483698705266821901999142290493638474013457049359304674492324644434341360457738873524997807052066757390203994260161559283401673406141168602724774781526851787241630837046481758781026819211215249124077344286816168088547932410466390615224285599516975710027179907342714618394528277271277598381696199425339182629427675304205025256847620078369789235137497222201519627637044538138664931229005183288374338716926192833329787967808241578072787125372982816473065671580911539811565550740177355107517834373157364052214338400033573369784923719280544670876700284375154666964395047874128242896829681712615974145065685994562448582661219687258104575037383559626166728027870249945563732502705454196853592131588700551462324491529968896353557213841125496415425615431387579456464401701087201586029635441625612208019454619447549953893718296113434132445637262603890386669271601394097255704207815465273269805584434430351289795553862906475323355408298534111376714080528965533416424701219273212868017111321510859699332404614860239572284036436913542896996855664133554306350108552677721588042841107129252540785994897860435426033754943167018951300825033348825033435557408711338685992204807080572797705823375619458961768865230650715513788522459791381648468969209054941354754164284698979405844059551255634073539212619378751778297417181189814458702093183550701056039673340884053629259157194052018449063627256346167170373222372422445792799254093831106033500423820554739944475935945297948026813121656959430938338284052503525277394928280667167389751602681185213015767521036299793264887836764580479430586010217982696829832883661430590362412341210180622870958486371650808730778860880653772679510169228878752347289392582872522142232391567099776096242008399997670730864463670482619978159522374419661335542499585563305955664560179182117506511820464733554910434593885285148355184898247333715124346475540077076601001168159277169387404552113457821049259856261083159760920370045211559195498697360184946508403800531134120172187946422468199892863738957933061556401742932799674990774067322705602736948306014209024718777385288777538973185406677053989364025953719872398905288768754154412744178458781338228320020446371693978508536972081396397663838336587631899986711683201174501021760248987465947860912673040835345605059461256983525618507628920711421589715606718072895005039368680009783436270776584870381508311509688979183551212426990349960976682384113966444551109494007478575079672702666270399850205620401059344445887486773428673974256734927366102739205910113964291408214571395999204815734992207481110182510297126960566991900742301568567104065177491489664478164158410315406054461994715196190974969836608572041162853978756971644357890882064619878326435829432123653795992356359927317801592336499959923222141061539952465032376825443670566634912645302075433446981845191406852282349805649866638475534936675663100918327348866853236864889815548976537758344211552565385530758038495116215473980513550031005169835059293324533085039185995199125405975945471952747795312730031625963421642640268087377023620217609881971834666613622839405866719711602787786014097203529000807484664598166312737189088412513786927382869182199519267898209337531645125972811504005879069870828600245213698502018320052003239382075859255081585671993898395292889434178955299195036763999650208271998596178179446894928890163554871727077132013743315534593966744060082543623370995788127908642982946523412968510744615719527793739225457358074913180835660527659129781205719761317193738236668226479232538097750349903250550753400548244166858253628749440838073324272249497750936179415575678985134011267255918243535223988214833854232820154702518398296711802418145915470330309856452436270241281223183644407671392682805899814028131396146651416602416601480361209222728316191684132681150965179525237767879232131081526039282144466525484589397229820427040971150328235435753871679852625653006043494576275720791616012064645497265092756488974254723776934928697591008890801197475737960644768706453379836905152955271632164957436576169263687575123692707085165819223880258628289584790977947800047372255294372808448149985668095270377849617211275941151380706580008422210429299393586087238448639782985036740714290224896039245622857773284037375745001265399134307351195302615150326516215836602769281247152015877263088278098483291879605711149057034671834937387538135542547036145512528919077666862403826725450506918391666218076955388885025846649682832128615931478376203269298423011805718171642483104852996842752698709936403407504225244185245448545761969771413577215554363450528674158959487421036636198409743872236524880250224306841445415514201127846031909141277965565339037893218557865641789382677655343890683918371664370098349422192375427211269425131270399503733047129995462301514264888254559345220245188846240593071823366267401499630186066676424198634336028333030471111392284934984635297085455789783020217254053983732759115948059024662712480875992518406013470807341462825074816392600499791389498369783953415634021964040430484947617517613918794887356489301552549536417977138775599130944309659287837961053017022330497380915037010910665474940453574998628784843807051603512989264961042897767187802365145269969853284799294928971432136327484539996765770550715816541037959980262281529816187954970487410145032078885136203629194948286669931856282522663365257727395144800392574698314537854736646185638370982845622336078357699618113019778197371812824861303708146079204062567086032432996109256555799351789953234548841132625708305145142837529287789790113180718967416182207665226838645971589816082898789895831597790982931525356570916741852454306578988640325484993428330170456176902744404228560400181095026448706631862650767530373464590538659160355576663539357254239297831216038312681640449142452815709279373099060342597199699304176314108129038189541661531671068708173295154888255098481606923030121064369483082672521320870608361462664739101578163907044157306369100429834199525175167156244704280304724114009734932912214051523442430361932836033724882075448975425193425237584814054502759768712060209788474205995424984436485152223017606920005485259459267762619977804599619229828163795637503008303291173346768447003577154129762743173263950356256492087523505158407840411997785191362313278532785250318430979725830530909033383898946224772093775540764447463518752404362630887958390452622058733363540989706897858561430854453450636609148948730254344978491828101307122534027683348023701720190882027631950139571716439220975711919258677339385146053986796470919199136386182700796645532494729360031954140123095585008622689790679664681530023137981441653539867185211078192529604691879383136304255861566050053826633867386962888371206606307764018368014012755061255104415944820377655079780772458761681896020521403058111893410499465185321365614222790265476163744881317472794980714959960429446588323499738575104736379191216963349460529831145572204229679799167806428915386266761892062349419794116969217794544785581215868533513915910074546067535164862819141125581596288133026683837305464930459367503539089831009900317521748697085654416119366739960446013133379957931125015481829552538702552587381041204458660542768526356718641491028033134217084026873298728184370186228371120853823683989881184159849234838485535946065323026000124567034366526085985201720141090923401624069651594336840689646923993997733846666304912061873398060603198903980282148223253216333691369788916943659235416830894913595024804702005667309501872824110109585508278807460476188274639854733894025318711769337337735851319020510615747545760519034940838428676995533645859551951679114753802177169379109347988432993904766135898633114815602146064427763998002350195131792536211574993558154930606222446440578829920965175244013310114075427653425175894061719509751834752609989551518902930401253867633116458570447822371244764790092875389476707049894202844237444171070613195986289944492143375985377074524392822446683442339284080808068114191392939187689306937531764941334372030384119763320203561473715439728460366458925631608377174993138765138868958842082280115658804270077750021702193565322477355869230404394999715004642739477173964441491528630334345490128376730360897177473860801991226089097499068050895546061411595399454640175038197471722784574764142584244828483357954160671673304601136833588043778518149814194498361205510086019892894467268039170877193672149629361516849029058597344877466491804223426758927965788805848894169079909359783127486532897126407720074810767143177386300224963316368508791992501281323368171932485039359019819590246674343576421637281132501360513422243059887809475923702119969044141870147911326608139790619306129235092647548212356369477917873688589299973470534219326927511808066728969745455520459612654243635012711639209486851615811801406651161370963484247413124662290215225051320804745155163497327133710758384232945406936111035820920654840448410734989283684046102170528802665415038982464362597927910751189857218445257578244436210690000026436172251244988944264163561876056389641138253431310689319661927218914642779856350053899969047287296526920092316453581579079795266126646235246054316727850536010386146425400798068929933965297214455378239953799770789611411110960802021446564637149714510764532049420373333489571415065470483268705938304755398530559845642590339266936065862642447649748356622291188907281132652512578654567567477171933528717834969110140497462593270088233475184437932626458976822227715674631248610439882759984754976115675014716968649212381346029170215353910592316509842038164082075867375769852097443170252767178217888486742569836863390851152416220242731749599221093386848960934925693331652596131659653924090565103349609891393926928097587067691853807959556740941970047727059402672074177048963128996986761151237524520857497909190242096102608403894769161643330290533118012747177318119748041954108504018140077825531456279241347488130786294863276137542585752448273759473926781375457107737600555195248323445311743907258121360955553429584453595865413441696763243643747744455381788599232679624872459206038939453814763653508760505974630000266302047460424697298851444340882557786944152459211924348688221754109166065813841368599540378401881023083857008615430285630487890192356575051467373045884748351110336453235543759934216083688931099022538080771301063932101320936169567763269287206218157389082039493350511959345817500052822077667743117461936343583404520059270164939391761971479582055756949226311774756825545350691121679998396958189732523701311565444029890200449581680197514373310352188678446849140525732713252711308497646802687492757653275391897755773439223900896748522972432517325330260488103480086525655556861989244120440613057400405055499705324124280218793480760826898039476364906459883422603870646388532225374957432096527768901069529263840052095338384370259039176206868702738933829919328502848837058624106467156986288810669409951094999936350437749272004309210969421037814252597817225873316005348796494370608358135410441843212944220219165042037624527528352109918894864867977600095896191628644150045693229907815579801286944449655334247241155983599210858463853299645321578723262912928705099697921977116440823691444751717119724478127993166110768635479029953686800826535887695625302081518497481458194944376384548370477287279361332178279643572931136123169530972582880517884660417734960342630076369405749182164420000611883497246497173540069576017655719778916720922110561999158876270853679230609125547506878135127867355468642719111160790908197661331664556647461981466087338077907598552749259639322948817454560914738625166172684151082330709767859883944041222117423196640166803469715986007516290699115576902386579124382940986897356363919086163306342748959641876890903311212580497613818608626230032221549437060294386387750155137629222286701286128834830026317988796799703353565815891828119953768941945700524785227879389844947666494109028964194315107307212003684545488056326931484838789417071547662078031933612410067042858416901982730051682971346733114563870290996525366668385989842165896043353167637472289231038209127520956574167183186107695368829669049984866183810335396729965766316875561278934613956027495898864384320905398214255694679859115888555605360992425876837688312341233206229996510969098687143587597579363232468598540291609433768168022690990984446180998929047491587496809261471421136122993280455395300673233593520265976953307548565391812365588503686235041817472613891200388814775308959359297805751191959973558968367068112062177949488166904214103255925325793075704586468453105653852168370348766350879695937026347653429598694720034520795757750823151348843801984471500054506754627997749512395006223603047382403130390612629341436192020645914259073632281014920532843802031831059015815505821548146925143025871376257510840113777306907015652803529593767166853266341581092350235882188448900014288602091367832038359904865061915588032703298276556703480597371781271538837955419643882593962170435675273070921980359757097332131135595160197031206132933496963078189412657636155716185420827911890469737616156551316350261228328959637018262313675256949944720408218174350899749943639008721664232379737703668258764874112198010167192018941215799467601186918917162624075727282652092770540000789111435981864804295707583525194468006169510301763677219905489002124302934899145813570043366839530293691194896708608816849052338642933052346464446414565938352759101980968005732840162420141834024437669101264380380240058819673227039860945971215043436115865111088230379816632874512184243229020646011847163365668205944308494150767573152510712456545449710683973219316613993255360775324618847402080254501763908003314437914689112170249087123748588849677806464379716220491084198742143189494695087070812193712006906063625931309204682859989136719767083008084718203362125503720405639049078952274621414305352634759367782291502297847126662567752182738425011353116497533118070195630974274917061483354168053225211800385162730610267625563613965425160614686479761876750819704324891928193612761150065712217104963401070784425878646607003457690284173948673028320303055495963277695155866721001758068151379975864627346892297746473467328436358135913177185907813598637753813449384355637566594385867906718155160669872300802098409812321452838515832139543628670599578592611213057622199252425143238332250787682058150914514309698920733283140860748445981255610319739001348153708988363635869588826816811311348451619432542908751028300519939653922998830809039702503520773770159721431314096210663844940796395419515665216872255047619572176645851280926081710246640043785503457486108211410132304679063969281929767307801558712849533575413593849455839759576730285071734053128304996834633199728500342733891687774410183968544166609498379006351197759106107161383423152415540715535944638388761763725661809807617639843737372790043393283754174350664843088207206951020094353666315827039146446079347573122357267150187786437727763610742987817530793909135247148261518856201141101690970715709620020709157991597256706755922682372253849429936043538216309222323807615138288962775606427846553047627885657109186380526522707329351400615937568655697969669762313188629125472566901963164552115238354764702488977574246451366728731302901971513653962878548596814551024166488600176945372636861991528833702107704264651121160685776330805602524734897720876766383571625472161157068964101221405821813432558140366045475089296070850190931833322463291834343153415823184115480779801522352781839958146888002437352605404289172588513830335168156150935687271495039810987748256063744634291342936973475012603509870956577610776128428207949784377369290926768926500997121309835468081902250624386869731465420142537970729923606753374313077189212013898604944248778749687631448578590112998928012006261502345383055220324729150399382855702011714418222040587716975436628168450718532094819885505046853421923009398814878685262706674127739486294170744016997346788899648525015256796554259932718007202549854486975564456370220639637703038556019217065248978864369635953100920003593134271522876344516951421574957708220213285271975804929183705259600719932059145730398192968049432142566781889948684534922625651765351633906130384859601325705323043496519689816778299701557839389733423087123135768210528266344933203220517520766801179244116103744707834243359301416443579728536826767526696128169275823746054271068377944522036318938150155907725071680695438391341347216842132519673667642894013801197750128763628336118200795969747933453459167913020366974099948346815252405855553602708563530810677219665639460967266496525690328842028760432236002323688587960942538098565154843999416444192920480783582128907900019220189095146164572978308430798247621719045863073560442877890689454062121315212239554537360322079825104556943174580179628880540207136831803555645241007532841611692600680128127507043351495305552811178179373251662302223609497283034887882750858061780417665163854398119864019277330314259160013541092122743845085375689856054887027129856915648022521361302486973998855398956933828734759558744190779114726126051984565976603310887807660762714924277800915700595505113630774010306502005110538033929733220563549625056346533649722087148370238480613989956756676651550589478035031429888344087701209535525535667099004147290650303023221379373409215595116135337595200199318389286470146959436507972285409931791983333402082518941478566303460312679226859100754031276349293364256882659827165126807226731315142290985141354489307893989619672324443222577979822966205131851659083478050484175101621361182893629274114600480447043676457600009459762494760607413767888928196126005310489785480664432188026110696148174652191668938366903128068336002091195616568778087700485872128055373131170389248165774801956139198859349780285430116059698713387014896941682650120933944569732737226512022886039950303650142247605489825359183979029139776407787617813229024375495547267869858656535585949756988876663356801435164563771965072419300896853797154360702132356308269576051943643796411694592029106214525019226359093455431638365984404414592733192988377937949393024547402367080172881333629783738526756384998976164947154957001569767658140420575762712242694614410768807139399634582513953264473166637207161720369439653792079423377195974238331022761122621352459507867277687105947715268853522989814983344214548104058713066046228577685911948193273412369879935120976052700829606298025059540626891651903016121829722680144891842530626380841521701783425106030809570718660203486517839413908710248778531176479716300489877918606130160604578949687855728189452990997566279004138633067842872090014827315206545596361640379996472412052398646163131206222191667141381012563222834178942590832876690758716767458842010510937639494235710649858562892353733709092396173519894240566469952413991665932475193351128484604529243116792160458888785450407367309600254882177437422386162839450025213387585307720949187580812119656041629328964077484803042430903805199682147150211195976124857248209104049089035715620535549948812544609856025702275266929504796226713077821121839226762269191526384147086620138927372287955013370083179490311849634374461647199265810768090691822489991953102939614443426922905755589439479323556442984392184015661850411422211171080767338911557113871256599560393471756602363704404425869906118623718302252022298783273424669774083105045904407138453542897002966284137691435129051922840981169539715177508902006496775200573842774591877579504479218231173340320273058068625845014146080311594878457231109974919971523163241436557100782141562633759297827959825689641516623089021585963921872841175679735499378251408325910147555136129980290343048766153284305021952086375813451759820081431927428463999393978019559816975046787282333929022169413591680418762875053956453689581644189332488916704719898178047180791325462870794683255316355375232087092678768713451683647156833858823219816553747848622605915607765946244311621844867118468161509945728147806821176573283687118247103842167486883975713406239916606638889908501438241801873258373153526311093100360621619630111796787031533537594019245395557701533507124965895984125509996286154703404985021406789823307026806015686319711613769760715783785986438133417401788784811568713921901972000196702907006786851559239242710535717436155649914012421150969155651543384827232033837934065057917892726149626963501957511192938208124777141415242301925198152310854305548112320788854514794104227425270921332572678112935432481114035028257953568612510879418463833870031499620591900046448024144745691276901743878271602242230465238642462151501049076068098960016738754054264806321633658365204087075224735297135721984051184927330636051720631548094921868878763044910453417647163104975479059002647512314831071992969131333118107039677959020812640154775929109048856991057162548257911986597505278527950416273055988326573923415844975652049930995452211485524312836689737343950825013534839776829831446490698669554452581734932318116705618056506804803316310677740431706395948574418569321209704082409203772796243541021495355633341740400927453898637893441582638817385145586972778209605678221745514168463035184957747748052809776877679678168111052712764315250438455052309159957037904365313809777803474574913402216118115245297752912685318193475073484429979808126235565650257696857481837773890663654248459309108232925263066002285885314695106895138282244025816057414077603708614147578195525908640916574065622299094629598884542108698533621293636260464241573786121130660933179068141835795490186153954742150539834620866097554263272059303740723027754383173807281511001837670279757415318219486579168200134011981096133897943725916703730095702798199180189069622342723440672695739482356061616144061935396149188756562488219539997164239114945935312633460985368131630345499620409351720918245275465519692134473394193200542810394395053507206898871095867635928983593197889393548128525915535743675531825255022407622835624967101967838564625000856930250587971344103199311037611692101863074942881535285422311249683577831895992752843884647399713620146651458956042749280256442317325620109873677006612058505111780396649848222704869333024056880853332218814062452452308718605655079505258020067785656368927281980135529995262303997532023227124715751734338386164347024948593449056273544417983726781989577322869016069859333465187949822615133128774976443189271881717662069983813034161986033538158847668580080007180672657664597472955150244988895625810237683321106500234119934754284340135659025448786994533832413739739583710911628321667004828646185322816598112956564086550782779205120109311555584403150399416233934472956134494146326311840174219027661797432361527001986748521934298917242171100967039849871663406682249674955431842176736483803816828582426978060257320967230324621123392220632967580438168951351018201385637554355417690518552629051998638125905560173238856225880195089713726895670255164292029052245196960686380471923723052197036608849058222559270144625908085353394156156061010436904038749314498154965637029303415303437582152888830759557447061817997079833296833474034228065600203012919851905741295033437862354909342774872503501944808923778338511486118053904400969070423263003529346576038197815804039333585549736035259384065618608126087657367173421566483585342275009244549699195663191017481852932370764865253763953078442630366030140726113962179963141961980817946503846530595080786141610745431974605630485745447042036351288177047022146207857548461609808634631173242882863714558346706412879918830878678203748696414978186502994955723783347303100437210671688216765756364232459174270281566536630564929910504782120390437820507900759796077557284318121786394222764983983211230725653484950313503332170463428311424885876359610553572168528726690830708432853494423958735783482319707579407485981372838828453469147513750060798575678032258228283186037521375001147437001387363606365055298123716024147584196377620925812423379886220487906843147401887342328817391831614996746260585211679145563409263698467344383388727213151423357408148724753780276221958307955599709574784811227260641231855292334090160947241371081865538843187015783854965958765179363307240180302336014235013395711383829011770990274229642442511695149394653129099853032766159121841525540957612830424610416944110499938946009712899176313209862145413628846011480774374120379243217508377941674697721474120203978480677539858949455183396765645782335822538109904202564765751971652571001031913269759584433988036132593460111448513273729150689438087883520224860725315682459482629345290444008893154865000973211949443792013003956789194963352737600729382839437838020788294941890722257241982742631531477766622947885591017615628843647851410294395186752202457586982576071849136085458247379598620542580882436287844012495223325058630131920702106804460114269886935174370427076426944039092698165381292864375044283521856410479270279003844702406268055203694613698719139749248388743222876436255898188198507402378202482458000500371883399279007325907572800620619359167093052052114582046231373148836178784247401621394982314088798263756235991042916863204394676696350462595170037195122294928252575300078048223928712039057330593925951779499344543828550114987846332846575686062469830173327730900360588540699936645116192170337135447464424308568833085291877901527981817093474936074788885088778616435995883024254582974742231906246739303994709959653250970295608620426695420487774617801890530678263852354689760552369337455141705710183561801054900254563188444555626926543664465389105969320018214469672390335348748036302718230281091096460854776113012220518180942194354209719606535293660205293393276049847589220220774130432544143326259845074202301144122326800977457877846804326056769238547244186966256049601963384602715888627518351531533487335690151451784639697777564520059782863154467788244755588991854984556075404182836193113448972452052001796241326934739235892211904707334652173615923227394172145364852124193766189805121847928699706337237121682487794481454715636628003256510333440674503036780239312049503308541768687294518135457858365639610749701129164114175016020989825783582831202885265945298866235485971061433976186424541524324623417234350625576991839860214009751111471161129578543123343856234309374831086059358419410864767557808080703278137883565683998118426317673277562314162497741660328994308884090099602364228113462426458847327882190398424119340362179525677442006525974727732416458795798354150995482179861420599479993458061207817186345568158167231022627330908708753389148564806143081805471882924121853283871492893732841446699359749217607295061038181752225266682039830394182682465437320439682530529563131030994893482086322781902547745169573155021077099942519011518151393003485137940889597929876901179551131517086418708491810466453979107709157985847802491365259259189219197318686890855060447305989193343226090133178392808530465841126832824528290892365541507985751128817184005619467254744234189719450119479340420011910262589818916469846705294423921985231557755544632668224235010072874395440444900588637122997770047565879181832134421643860840156198141717898164068346939614579021980654844036004181881432723033019304439562876367618892161020360142273716202233388875973900857179161753659589090904633578536814215559166127209031329276996172751672271765196746520107123497715059425220445159865257664643034034837304295889458331874709640189989330849489653706896805937629409471939835508368952911007366762467809487013626369519215375281283064501690969675752252277163873745009228923018252460041079232939504396170086850502973166453689348817471862778448583259904773092360055814169591787300398293059102783870992710665235730453812186069565141409759264917665892001864040169061391293909477619551595056708483352817003198983566131995917069875207191728030532321431448424331110646594456012955627909617823446685341945113964140483793826783437596573623650041152828917640088348309702070840411967053348812993856412241600140101385522463824019842216685389984209887525317373316685866142261330590737184136874873155980090855977556100271829832986406764622465139425920035646497725597383837095171586409945518573464858513448319739361027119272536972807513221879195954976783802783509572006424351178394336776920391373853938347888792047446366831596450309738063728586789965665879637767278072976403789966704769652297920537422890595596424226574272074961570631789944240008115563378337474477978891500031489717623318145147839880596350874685666037598301562242290742760866276785611694529473031908184412173217328382667220693372388079498632766820493091119887257173765706929509832746141058431749779941127881247271355899452647411439147974858210537440212192934485288611927760937256420763732914819476083235353247229211229795179084625121857622009538050785780325754766339941030198366270737167919058388756285947560581599530846185427778440492585840842564836965186916423314151549600041050408723778968803236651509368644020645660024014174396813006432219570068614994916724944460708365417048513582369416076556642991800257109919216445930394077325315403997750316108586686069352179895675641225542254563144396284682114618621838364732582933535523388511456436295713326481142609937368519695149940298598309315863840266254592252255485973045582658412520445125699098292884155793425554773285781993305796623054442670449681596157432801546345368572624806922322159817988217456605578400132962353678471319440249870704030600255094225553498237081043448645958959557115360059615126886562502390434316176527378065214838084547014156042958755704010444165110914203757643516948973724785197453539477069592469315022110182355734519675515002867027535964150369686702023779172792616561156517419852380888990798303070114185255436115945655943930082179055262741217271152233972752076395853255393474491564140543009603932782915050492407935402362968909621312716803725714272384509621028932648838779526806692644476181621816136720432883015752683740345289107906918277584370745542303224411015369877415938182392245582857858188521970684158240256968738064915725625421835696519115234428717700869158736150713230824332234625721505822968995310321969082494028430930562850976696474301286105130159494768770117760142584622558127213423593943274963013303260429484150681070654865875127788425367921814972102935747111666480209706245051292274497112990479783674210780803840295634361761018716670357030268646331121967179882584296787989712108361597970975010811032972751409253625687104216269402758206278781030650946656107561279443246674791824396546562161442099885279534815546123888169703595492511679172969294370358262959367432952712271951797188903137213537736980671845709973097724553640831178121551640623124003494875447763452593509505394961315863958257787747858399415175346111638217077284715678753556861986102408043764344204557976960292987150374482067377107014337426259360095623389296946963966648966672610084283561455448665090413927458294320753727829440116581463753820115872363636467217164775004419009068596520242233922829790662944717360423573378731787474486075549600602705274957741952062462978985170491116038767862932292729551044149487480213910740485097505755362948328437006489872745177352155129470284100672491440149901167581732807010996251401846896169806795607424191088446777934630525231506174405792877135861443639631109157562982478293477682716383121117733676283669633969188363646342153123511446053694972458460682694264088289941643241594500569649691573863370402741645538333279236172721772002746021274598579415161382307783297913512465646209423255505636324847909811581624515470535738367026049385591581413757424240612519808828899331871274771723855954408651016719227080528760150145347417387716138698103045948551360125170337840902996106021377249639369748091964441183485339538468798154524189567001453578056023159258634471096735748669927434115682072499210270748613107646995114648207569796478437656716078830570264920245956521485443071636500067768349931985451325239456302805632022578281276189549145435401757547267842727605765798262129833684950192280494811470443635981357102993103271274094837135356413672069476812463980890175177345718389878382207027162915217567746086990046907852264271445453922313824879939757168909568838393749068858035511725287441323390880864352364391358565863729135800943966080440556131944471682887773851357983086642211849253306615000840130781866842105600622590836819040035848095322045272305115520473553837509382645339323593859916932154730391420737720734244227578075081832811463498297565936116525582168556263157187006117298118390892608898978027858186452997502660247894885994689287127681581217792337357393522446563277591363835174849100037638952334583354552360797934613173903943959319746358254503518299741646024946930288909264235767787056683309305055052671412961555794716569151005183713881903420010044246350967902138876651326474656572974190060055922898874261980533063721683873994338473634095399479753369901423503775836028233813272638599616550959020647424906989025475604655650336489965846784691986192470865721077771399856321952938728272485443852872381614253463201252791971758874799783130388908360293455156876551239300119990187613579403329486224250788641452433719053533021461572732820730177914703419174733625878041837565561777249434673209661187371884075391838456907343529350969892031192044384767642469909452615741614414030574618908768322828285638044773298456097257751174176391133082323799503854662013299198068014199156311897195703376563629210152347381109572674983317544726108531803588600527721240104129171767327132451438438436374297267414707001239862908711492705143097808210391439963700803791196671868334038271250989414892153294203862722498026148892239351914545475875311335600020232592971386178085907415746638677169345739865120932352213993407038541146605977974090562974765419857439676054616120726457293520151387982609492991840682287402972456463174305550209901823754096045347950881904156920381284298007177095664778592879809957430863192954008924367429323796921519613595102301038680837102084670294967470852946357041133299125678922389952634816960533408352091222994580434611996917343124878960063418325747431840054055733503610575447680558415692029441587971642289552072414877072549965323232398853229597241297095399095349672236752141996505924528950020772419566730653842382226086914241492022268934764703095736658834623742908582743461747928055990288195152180831558030589746941032453555596895311641520983646252640941509321183473282385144453177104668305144109116843036044156214501398481721893607551752343351527224901149048225348525008180180815998430395168367548355828350448217545268712278173679754814453095653766314167374564362316847337532127788840430970762708673843206809302552545697051815616156571470736014401502800217537333430534386289620075794701757714601161756055500230533825210459515095351952701131764580669002657119894663549435979581636844033745544807424787802512439203218271893707168277275280105560472732857306378873633221300944241940535355030595732296744423079907255351296279956728461704952731315424832902555262313010550370643064934794154040145755661164273057008857959364864943536544672233056485174816860618909205312699196685389081650869190874700567986319929577879281685032688007364522518980463957757433984701498852851303188862514020354793001644235685817036251768344855199495207008549492161684416709031022700333561541483751129272162893379794048855065136366967054942110947675438573495156404999363845534655823922847602717281877251181415451370613671618960599731942600758725422047727139660463915804451542722898649223023530253928384416645637152453544706790120209694241047512832580353339395462024247611780593524811072163705666459831127844826147133676715071515261285990364809028409256813781475980802757364586407366824947530612358266575422798774067928821772913185948019162309321897808442268293800500736729605795626595819563063009120766488290463800758717859373999698186128868237226923958238687841440256664889242652862056004692822655984421447891474517088782609028075582349318542814686105515030419189982122612354924377120781116862377635848542763631565899874159514908732106527417874881488596290636672594744531844519210047694214715719342826296061068899287229367950964884194568527806387238309932529922766112979618883273970597613279763079357563012192137759755684167145124695572756786883095293992851699620715393006548190034333379367046847873810381513753894960427599209987977579130169529849981141620865552758777557724836164161593790662314950291236656746578123122445768131344897894336245361724853774772403582914104561860212326292869831046909945209487203259245269121962073198880355820744163249856609778292525772766095347352806447354882202941900806080388923894933097707160159065564344679363859965138360521490298716745284781302517143429811418468879261061211012247037056465448050029303440027546222360258783529632246046920408295928567039595897342354281330316113467951344329073873689476032394882791407623709972845005840400181491381636814439462731718379814427301630708998825878826035734138475548889885372958074113889378674184144116621408204221595217253830844443477818971823980639120410956272169391660087978979954515046428211857123938805231973480997290932624749956073482377223144885325687177379783574700078695514353135622894785395883765233779302801588101930438185238140846363749552202554903809503130611112884139007836002317447289384894393570257614993798441020353938969573075082821547069652605896003120539844154496298163730231728124914935486637848884178680319716883132777296882520848393487521473094418248941201942400122703535721218802408509017302150321632861980721310133280273504451379879461329853703340544858273081487996777366905491842128196478340922899619357136852231594781489258951572456357880815769206594338063689997100631324754270449947716093190485648016334423787268251310074880764184932560819238084774630298406089386722718090458617332273576985610085389853267230598049780809843893554826892321639893624970403885045046854545120951056335975156974045915836675733784690684111943051672380739932141851013775079875721199114212499385790405967988973150210648574717229853116121072433864773723773567572770718869819414413171391437150370550021836334589276273793543349356800719823490939726132603082135072763762812254216211119211713853795322758992213775339315536625300009015059781838565286142697558127602828466024191943770897847910928585742576457462419555342602093076719159281786100641513086892636727559977893147769004433249671926228933599954800976399732364725350741637980727994694345348363779260726983382218175986185308191083140071788151168546818020594053361570549907234848106256962432402701809267509353105992518099740944725845708300695134387648028657791990296914196243066619048709450972620530892336596373563961601148851756060749421837593353120976698280629169434621709502854027732333597844145467535159537461670816036844710330104264014257933794951300861839176045096364703192936460200690369468987985497538155601828104931949947396065802181803953722250250653455845237187613632772388222161607091841076272245895659374523070407126473478267112812858340293113597442523000685237701303169091082410870399384964122743383978335067071251870080482962986946215247152652358879200335331968659892749780586452413683230944467776519335926638282733614196123624587559876500939614666806830576117398351779811033945478359869326563230958469040633097266662195863743914723842932412506314536011618581241723165547176058995296524271916730592611951411141544644922752461915770435072167492432109404223666017786262518483099987804032858293996790322332113460411393061878867008398063227551236337038340347210886302532818551991358769857361758248708015559728057245783797826417940380483742484822259341756554531873195314608205911693598692003790121997008093207378042852419416735954545658627242737227378079984484672571026629392057573021256251144167313886367694877988167097844395213616078458873206869371646349967487418761895281125613781166783909387613910106947150668603507637294957482961400815188344774971791486423619397957984034200275253237431448491789777854281665031170779354455624134302116545708996277964745574859291248910082809406566988722549744241635627678584901693221109264206248384902005127446290899770016553502532961032042841780469862035812118438046608723841970252248828013808556950803210603954738731525176224613225066520010812796469503485384457996703262394653694870933464923302076014822339203043897537586095135624569764211522895428715431603245983398970490190648380543120938898069404430468627585338606671852323725697288563049999039752166057970334636611498364838632021218155666755414488148925178139920993727761472741953069066389763086964447179336359499188406875744757792943253045300934847579985371177572551039031255863810281729528843656473412572396985385156714688588230628742685654239629981020828752193574712014324409154530369537474210342643172380171605198640847343496125073670760189713279862164206624647529714269094044611210179679008842219620489770127597148470564098577751113315219113707272249967144391621873774834761301431227070133995112762145859452147663574469813419846302643646490942709738546268313459317279064240354639733520586236481966923321006648675994916445552772677330679332887994536222179865108196089197852472795428599126556228871275828227856090822102609319804146665432597994369169867588932104158263358934605089373152856558190170460974898614650250348956649152835097686630272393832692032505196634123703999537166242073717149765990157269588022717334344237909317674857960885229839415658579371027359306384041353632900708105855291341171479237772259824681532125487051424276075640505371395052419851524987637764003517636379815979829311103811251596720164152738319667226254337398297180925858786636958470331225767053039946835376148353628163273542440721261542146480265807562931930958482067309809944476266864496314956119243358103744447713841599906562952573612472451560974167823111551173492068313064654349769562401742962271311832930001420631051177767021381025848771755469945440620945853442296572994749089282804900331903841243057571930895224923366831498423493771115308983076769014813568822261340264545890711881217856678550524764652584629164204411746232080381800704843835761815637764528468878661781517154637370657740262163174171476873702952082549563833163388993356842462971833630836826839747656614227165231515276664512988948558695561251668949038878964949637522226800038912931040399754408436711867091086488880425535214286832026532871113450377515809888140727863134476675169938286785695037107831388616175024840494625385299001952686346396697460422796988064027737542036275697135481694460801943966950108911642600888236541009285909525696702417434963922685841323888755490809528109184398925406478857492001835894057902187758602332403751090640314163787801591377529554709925381645016425019600084693637263257168005128129632629336683408177402026859482961168987269325341893898341335140053205011293338872680299207025313841301939214162884398753324840804237414895047871088124477166763626432376468955873944330783244348853475286967296730242695537663638301665806196571246986220273409957373489368739906618049411403759487198329337176606135321440998900671397213714641505767241796349800196887835114970995862168334426277406749855422957654564429005654067958127526491403930240841783019828410693844590283238157642177898999547083589246115846058646664331331849910563541096644532678537993724949930796029521404948004677144986538062487518096264125783005801874135413743596131068681379544037359624028971525939243903758367174036020974221478840367470659352344363188470829667745138341643907531290729867131360120179948712455672359728131951127973836764191081683845989401822518126463970152054200193363004426515574990553640964444285862691273072980143594140161655324642859667516961230738105443649420500614778220719195237595483513066954797786862958411320296730450708948107810359324231811915764490007878698315764292548465983814805200815335323424018078022307545268015167985153465069596212046586745256981761542620787036721811722921913208620949218838648223773052224773937453896769213460906899910522836412908846243774998303327393965403563173705540772589701759465992262129443187452898857167680082577560105532162312489809015628475335045271059758356500555772638957694912917996215283561773457769991495902825884437914576004173066352193803937560984466911484386937281793869101484348289196926602639831407266127920856846888456507652818334911038762062798675535070429562803213946771105242961851488109331190932922341409756737941351889002829645185736937820032968494979835803692192001495649186425716522760470055693890320330366775948706757807179262976617154732889249687781955019988949687320368616992088486632912524432711705397047598730630659236112108157713280416607358610734454142016368263458554638742117858936711107993407518531162231803023768236492760775236896636654950020792855153449604118093938869112000611478810764443383716690033729676171690125062843784858146387152657796458365100734134064945104591077596506895698974763794318048288939963338036156981114357763122752445989198911639523548199849329461506467169816845351115307026058422581372582003507196167163920415432003482743635567777617855981942697591743021084696762879564029746645572069226681121031457234786138933644174763592722106062931911955505300305072314629354693269355029344511459944786705057139431855050697559419139356013725750882524790314247971145864816777823189750081044325858988430890982290560911105159101001594086293988225067887219955947439444758951026043247937568380220074207232117603695488488065343331877866011691742869342297707829702843569520679293542967373820331715002950286744164970309893041585181925648738673928604106439767018647669188108444840885139803006812295979908577411605384336953808013479994689435073194668681689909618418311425437079681782083520237921734950003912350533431040115490670969451636732648824158727005168377261142258619566852648486287848747072704873681575237848359260951911505295866603778678654123257954736674420369311182038183191590204323341144895312913765190038258390178615104450927606417972785350384074752005475761299650256961246288813696275372920482762846145551054505079069290932734105347003068572198254683289285210293967236098219589848082902133296684698764138938428864541367219593453614170990105155693278123069066926012480845234424118030093371461248994616914084073131199794621191304305508853258327077592072693295383673027312746029708255538299322679645509246627684714525480770929234965261010477765794491769931856124189088280050356878710836720040962946830043446516847616164638292339797453786983737721991450205723174584904490502993426710485258245459033030132852644025559100408527948265206352239338038699875955088113727993833792305346375356820083989114297889938762747751073947984679494547285104853455911536141924878103681516717741861341372908608260296519100773886842140948801737673818669606289323011637121057751120912525966458597414914571188968521298354342518981362931234066291742612895644874080454917758943481512845435611901594328840654889097490654476497637821464469210480478394559765409927623052087994064232062039602000694938147313174717736523452011571654911959398311204872495502500559321359484815193691410088282766520923557107395470371495739316266827345010808247069377398615582156358898080514998879115332335649103606330662517456232494571505141831697686368698076671610087509448963188389941211769880550025301393866103949808207837037360321602438188408850571141302265470177099502938169570086607896289572960065443500915960016530169046291486114473549058976133759697778356653993062737856585638089740069657694172599787765273784095943812419189248053637529182044567097685875927419120043274938056860628528520999823690921164062869123850651771931588148651023303266232866436210571480923554876438343725936242039539920079952294412787546981620333283248002453085347171156220041578089660851665735004873543340636788250110900239068053057385442695540727749765675702970775268861631046556552754683483607995135321551164788323552864202276184836663229891118916127198252805162300274004760690446866322161687058445578947848341277791241410428620649712109964796028512784573079687941624966744380629521322083093878987838233608117640107523866780616160982562999593584755071053977609846847915964814032764667420751277703787032675113977102710881233206172999196929679143769053111094677847691040055234961599909753310836638561928423148626905995101060095959647202809910606057135256194318011491863009678522354154865750092450285963175623184158227153187347394140610433489707070177392781981114100094782536154151232768834351107245282639663588795745112031374775293725375480835447325421765936721252554372362597568331513659175214808499695291018160588183174864078821443167839022310495818991280458056037970485276451698812923174380659732747033069323044856120165980075863487154414629950528352304866310881844353238032026647551742844557454170272864665525226186064529947269174747298969129696920970783533479465657134749888308337370596172702612069284092420535554804932038039285488146523262798764139325557993939343536410317219480681709897788985706686875586989660075148584932459757298048024439423261191083819912475521755282184210581555389596508318063169512701700999296146172596320631713064375612716690968808361945035769181238015977829978566728535317507073448379810859725415127363138625272377927243557230642028911482501098388260386095169049322190436999349863261703223064287445424632196648778784704026336620405202975654574642044280863596320014274899991114919971494788365370406922735977052495093884618795434693127248597071270102967327076814733219552677042613513268685060533177852286415253088131889370146319201189294112794971246255940535319206928201014123293681005342935081940401270234237726481599944699180316441043569923275310323402998614822641583813193778952845768508485808771492652513842191325919973270632697686300105833886410526782502730442928417934796890671510462864583697766829935618673461940300383440492617858731569430182068564509870469201937129332524379648272031737610001725037073661378807509416633108123331779636642104838447470628187206323436509320645024561141139707536595022403325591488552437311191011338792250613459667507723415135365396491542599433762796285170320963192325916340903046667845476071610363662989118899215713734071446374050490633767014789156677890720805221633396559077004087362030031559752004736540724245809303560972380828689995663193832047389230142264546888106882353218969348577835251161234313709324021707856715248390993311521077647598926322360048951525730104665527332904518606286058303600038448046947606584675922010468585156430689793703720880643802626311272080536367403951385603748870609920076293762933962329161290625030999063702301948705128027990429991772381969155938140170414155408882045852972914706886233144071616297379005234986229503674535679350400601880192371092627012609650542087231012443808831598954622011118082550816430643301781292038542418387815708209557759362435847982159771142948199056984934341934840182252631602009173894317757107770530978230277052896136937516031934325529663029290189454863357796164675928084569855492745673422393848160230638643948465288046259460521879700493097605541770536516195489349082221008391781433421463274146707411856446244509053878336043465060579560836876806913064082166086116831772334044996875499512550009017728645313474535466807830866616689958494681876487099737733349166514400795589930977938490290690144337959500942356344365909992177693920154250572748408329616503376827712039638437374705741231992006287464904096312991949874575899015225084483122709422107972113182340886188617423358839989669485790408544207946572210496837354910912961991704212782024656116748882475845429569363654734857382076548495953121554541238379106111343835625420081788784996164976499927874837708590633562571042187057695407071117215252337713756990551522732212230562001371344492729063825436811129966134555282284288330994669908642813774258753994406803897900620119781048405819673757013043443431453177969098240012627354951162407993865521071609360375456483817551767808111205297579874813045910867366106836586966187801267904745150557509485426673545298866783390901756381797712597750290084302138505876197238122481136702869919175041798889256847950357324297718152931775313257148124269198582137608544516186549252210245473078538104683738837117524248630222874539499918479362706892876663440150857823977581938715342438665135753611181352629245186264730858031527353312742528028374219672642551534754289407702224188373016406961626325936036545451871322591735229864109562132187059456429791836357579415377267679297113480077833968223750614275845833708670222222282540036684209504234953960147121167015387320230910298287114121161768706670431393607087148327425278195120980675911243374463014544475463642338383613167823462972345168736473715545207224613808417171689703785205351512171477781895092070928057275682786056083867028935044264000897585722647293224089784612793016394194680236957649491607176710290954524981111138044053303657045214125973214595346813013999346202039198024084309931668970626352459554837107309962918302863442418628499250854586850116913067469074921645574785914434756506636406208499062580354593852771706772613782751891176029598893575652462115696236709481847666487988658247978583192473021166099620564680939018746645071353397356528208126046112408560730044111294160317064715191659902005428987550769990008315595370781572712204781810384533267523321873076756981628177164905375744601489558276365853808439945331447793924825598340226033128071041513543038552266580689659255911477849381960946185895354370610118126404335540709662546871299776375642628421882114546515997600370003863495724630396212050493191719092534800533352228065018161719078780205268021103439869686880941321769945956268121690479101229990810386446353138429146259458450057228176260170652114449168787551841156456435343006276318013597564106879445801614984157099806336216948479830213403231792767466962243221899920871046892685091792015849555771079414142472616637583167576359048859738434151063160973729852698982802268481782362704963254731432807540831448544854682785743168405098454268212570301181068097439870067463708530671267631770285406055273339013235710412526352771583164530763449140991661498445572196166335770215705239914310427285498001447529378690249580989113984636965426722028780535236412454742466243813020926973524714994466611898701347292384170128694384055085332167643955585059043606962121921052097089592006071488318772275103349682751139966714893414472088872878026324805684521820044313461883098242257468588384909841316793880514089083174584737213425401629163560582719419397089510041492707473508064857724103393840692332343621609873070014522238686913359718414923223832637585348567723835131054071941625449479280651938380644404499750980370729536144386471086204177977884838514554443937283255456554590843412998918441785339017384940823578229679306661369695854848114004842965384128986058399498601114522992093512361891849497709212327594986356923292189715541539739436546104713277260684173428105682465201743345203252135146813618623894673293811144024559563273541932071742270564622285246503276111628032726029716696025438762066123296835800801035932919459392999007933381697259083380447327936844232711043313480943842907813089802839750372982630165555976335767630061599488304544469103803219983733927702340210790916904521624300256243939344119034815058460776205858870085505391604395789207398169226005929587379117771358136323590786591103850057000206393893987281685204027325844207458591003829046772303915029457060099021274512654915013141739469119280871778020597014375065829035286731952960909406512543265285590879931101650761322377559762651561859538332144954766507991135972638570660964045318415017931520218627793881487294669615330549806880446920785857822306598355357814088625715048481153158662047873727757977468804531189936966281007064686111946496258136572006241661344360676794703325742426825942906449630691173717009995694555543667224466927267492658191021394571328912749145383354114177931063331005453516422047230240728208774881445455330737106812405969068832831261655119213878065497641823633775254710586372897223920045565170050201367125369795051715713997301733906135002747854898643805752263234115410064647278233089554177921657447600565373217787823482905526495889148195519266419761682272343244828397485667293910722595675797217247154136304799487708553698686702578144662765588456115530642807342671397599476202942168146034396964463645901444038835909542924525188006306443070664133115905217216518003432021737532888091536413654355177047605715492307487685010353850763687670954198212229260640736133891510603882765703986634242529875651455521792987986841871740919096434138882194219630652821554640678658194361947473295696671863474518987730024601441198381080131120559075801654090580934872139716615285278689448020591412098648629554716086784938100300349764007656107919798049097892087397177024025917909530602120751105145287483842948805255799457353602094719449525151355288833747399371493672143113701476283201168007821704527770093744651419527966993408636881189657493432809417950630934825280671653612365891358825758824543563799872072503783938442927865788778375511191198835639664834957029908470443850921343452307828094626636077503245553438089796904242772665265154953923231908109805535642990123019528458254510495431195340811434903218914157887282631977352190431767876461627957581993143989234114572231447245658467334990467369792356854747091913749219890013476530714682097398538854491367768043126721035332822813637844227370297279347949687291199191495317767253955849848385037460091056781416676737834578556612122078477089439245592755901236577075593810083183113183085990260013785040682671185589689633200210091002065082783818995318727551272407367794678079847783995876223353120792045068632625054127579904674948392195574110185238018195522333902200249393937517716575309120690757872036849430971641319865488797961593954396315697009311911568016815041584416786278439417368697074993351704288952299420326942340708473332367231388704316870091463143251586276498601659982321993910908652171467585034577603876551955625142677786439738093564012821642889890069623864537176492775100823020274856850283837059910082850102043945982389421827255681599337021058570477161417540036968310205803213691060816142449677862028234504123196538014102038598563396879268856377818586282609979859347231249551987715422707008878023144796190392258372757002075236230163378333780384277818200298142571179014721409450226612576750026745990354408267334590306192624270059375617701024281474748157273232018122537051674469440020930392399387448783702523870333373819362674712145381554764020716080870014769983462689321893950355452259818360795706247704251154860834333700410417691028650124986101949767071823737630127112607767694327315517489889554286614421186084391839977019391022946670770485059543720469546611013167824881627135565606175608106275181326474851806437464204279106685756006181083511967767131407955087048156751151009023324510146147718259240142803569778105333288651336631319103737431101666251255905732251967125090466472930553951313454388204910100500285184599653491651230232858434554215217753353760086513735880559984992700091228756475245405873492025421271788691311811921613053027377426219634147623861884410176161624683809903868423513937676331667997734483499034388492902279680556716723989917246466515883796002845344885782325497602112354322140737732803601709269583442683943586938708686899088874971967303456219211245268065418230403344480256912918324942043036421198548066407615832289162117943398040738302665821869910877172299486109272815672120899621542345986823227864927844722729313218961831826748668375243734026156323689777729102644493643721737899060179753804195855168224957891273891764713648670780218681492626566345812677181206424032606506360119595430356015913503775180741385006195409494056953571863820787813099790857215127887079132193259410033493909701971623429082047601613116058827178769294599213954688233383504500016240921916103030831802389934849006519235929905749215538747003181305352245861230635116880598286475186484692370495781323195142372467787017934475323213284344594372862179946290754426127801737479971168263771752478208098628252616361271722442585811370346062631729330879417161367999190221607922864773201868102650234576499961867932821661615928865447636641370474937013851539966095910505825988558129046827344658630109736738241033278358243148406480121516507574872228565621422509595374787467413531884400741746580177251939723490104818967377237564131218395003608802886208037467270107464146105577271698036507770362860958287793170540151394425915585755068462857648353053348451737053282987599121691291837776440859646610652661227527476572575287279999900788201007518288399809881089082036926015520764386524767287431479474387121785904480310138502064350805904230416201806128449492488064757114923939183520753152517622981136967750707039772449538955823266747327669349233022659249367447270129222452684915050932332435741884193312294419203013696652414677960834438041843662119791368468681457777172096665077852404669266668173665838420274126513452545472937535829196270816275216764408570620572694394610536378404278152707267589718347695468344068647633992985021740015449374005207830520630988463707470063978353549922558741116490277825182514900164947198673376687257605177029687044972541633920334548078728870129656132582286466302629765802580556046512030330623665596917991241341170620904670349397353225891298951159821927336277406853461388518912379846567080771587225765256668952523011322437532976911866355006270737324987560706061516274544221020637064565018349609375454615124493014566344776684743681842182795386988952200773153145329941210017441396359467778488756434208652811276418631658253520379037736018120390853144161301369173791170286837071960398872444772010489955806953784844731432099738221214787879248668392555745397440878111294814220522985920366637709841638827283165674293112858157786239865791130210526768474418377878595285847615795832414461674649207658591026596192375252153748171692394646935776099210935162031407443370165077726789182536605504442169705237384654338430255325228435386193206141151683169475320992483589247081473835888335987392190702425065488208555559545980859159263511733624617749530347785795973297453490371736598055888341028196942109700379693042775384661502582117073728430036821792936352337071341582999163112509036125039206335304948619461333012930212092058546937635141439038215902904468196464680171929016844337896693444679702720980108759936586281205829945142683236718382169462307298007346949875117856817190302350083468515357028895664289726888730707669737526017566774954641321612896410629961557681957004572861531696644767053249796418502440119340442985199978496226837829664548857153144332208496822910899217132658450065382925411252049662475365542566864900170219762278312322787777539315320589545762655555122543383832242632831727252007487979037758155381575681329859005062333692487653026031990962928214097398284370009267125646563007671163697669022014606169417442440203515814739621653333575287881596986129637728217764825558410842286383170611375683046669598875243819876191947033547508346140260882215152620253741324029440904449481631163958013252643076430409891917050889154366608885156386500722746052568535738463086796612322968650563332918344752276415321266415691517248211408671659606289547333019543958914071916328027227786404006494670449865292778041352950274922025356732439561245629155406868986093920943786254512048707743752638035049740747500851437685151233301476445449569480505791369497256284528999093104432135774573936354329574953285910666092127083252495510644175761359437579025425275032653979437767099639247563215082661369045041475092463237241372717580692189785483441492743794886379392174348058617600861645370395103385433670726780045820470122562025921053213178521446876163352666762678524960823124606744296328881167374538580607710483529342233186340317227486748657779667319791131833073304503432970034385892117846644539104468403914915671310828313565800166418782763516020429439161937241649113803832179243307230210960037318036903758140936778090200288192770825655526193467170403539876198146241807226730093891933929682362824882582421970703419298807115181959254323213383616889931003793694769251318119367456036502414876533133450324643835475442931095216162884973412292926730714795032454406502812882820397448186157102952266964291764022017232209715643667693838859573230815311163077091535451376880939709532935992623668507191758448037045086368254055298507516201037997261199633126235147349124794278028471348252467969272376738173449405615819736531002917544029037540456061504993825973388421618036827090983079855663374925268483003401267930611534604676657502104738593304378833692896516274115916488916477911755971838710110124691727425496335219111439719208702912150804757919580609219736035261353715274865975816126422749735700767649684748954635504559816405571761531096554242671967814520015606470242219804720662992359969751152806992769249068641145604597815368000003868090878669567665114002741144817746956204209304739177515914495323243511804896138635709377481561164144825801857400052327761385391674337850972866558946781296416723352463515264791673890297026579503595545608183073746982623452006642288514529680840454053899723095646124350916477997755733878856204955086284299626489032625884854536028144275846557473463188109422849258115212502989735574051411710492844735935306528597807268852192491084627959233207067588686153843434593675797615004768306117175566252464435437703298799375263150329468949732762341387157001676316274608223196468501105558377198535231493495955192114034442422137292395417613471103553670827381506397298405297860828756628338610286700702812762691709479205014163786885571385903121532574123915248408908122315372646885718636027282895741633624614379113546120241821340953861388037978375540120854134398252594589507292108626252342264844231946965128107165475537591014225868110654804945506537757740389247677454416555098279970623869812006990539094370895836970305676249565312110601228809425945702826661858478270817196271644713461327372627193448499003666387203220394995780419257684404535319273875175439267155793115091595966076503154083336209950781864072329873410681456071839242415170500451400240876695045042316501162806411528556617886319876928103986959181442590271199362403516424580161771470305740997513726046894638084209181366877674737907573688634086135435969266633579805902028625744005413241463067093078480554544515562628324490959070876948855855816147949316400135145018810579906720717966677357299835085593474109148263404955607642500001512620335241270958625361017831761802256424826625001331917950380058450862856665859856040989806806801946047688575708344827263091044965535609302489532565813116642758289488617973030042201853002826024096345759311061368259023280845011453358731530357601459857870237566494780205947152881238737975162446190973259284886013085102441398761298810848064753867719207758365805592402088293124466952559951109473894207086458401835286487815976326014286354731478902040736358424221120384991965454241838512119475938514927082868095194383593171366773968024569252986980223374659892509074873695238938835365617705529819941232809753441623457488145682721524453529631856495360378922405347803598402359237486780735047957793517808237717063016015899472110946745270291990131163233706815255076228066849398077122891968683605875827382993360072205921918083728122609365671760569132670069957718978516775224661748173621357936024720017698904496191309106622104466952517778591176798810395273549699200895834826390027077929359834350928642896063071612821582359832455178116438040858861033251527722191066921902739271426475832608345283283075439168090356775001944349128571968012868183435988831776114236967860989901249701605278881767730562215435384910308066259360112602230704903027196895516621662512082283059110938734135112882897588897080698981113894975486303034464523538445803571132901788340253093296075116114427516385054562164022624830241921515268396285603347325148407583022223527075572674859783260965370793006000539391658734625558019971091589833491363865031781102177042427148690063775429931286319122056346818121656336543582168773641946025250514657578590810859274832253675558306241650003716605967734755618435754082414303657736851519655360138661996325610475169456676716835593749584462416053509839752766974510000826883144063058414205869774391315723573564736169712103466532147589412681880420362300871749363797252276410419561213586046792829638057686971027599993927879688401237044649161986344818856721164156115187963337918414317698522931900228385506276101746531008861727692432723398810623597982408634919544451226722234966439087289762410060210355695951213038402154286871944632185594582445775452496219075292914936133881068103917562523994889644775564912591159314460900403763049396229934442218226294087119149051516676505332669537773855175224488802426079717261571239533356569638382611207432394047399907319936448159902046076728703158530379362729409838496891184847572773734384029641802581024394279265683980219301661554441281399811570546807196299239786726004069526033880821483771811021898479652083842707633549843744467694647960611798908586416118307650618806595953928596007904814630239939840234714721018416986289124168616581010315936776185337626938271760531687782795752668235050331831090032366449770585008809362009825001937439964749194130015099870776372358801987511703827345403049854296045251579655232474469102496273784572369905895451064908625297147807861794965498932186390746556687988955976545553324686413128721862597149445170173683280764498391205712574427823549664571695347220455970741477816418484976430115444884558325320653000217400220610144358295552342571566612560748880246398590065015772217632269090274678934084571456827906886468911725032536027839851717651315170329538117908583861493774571700457994499296046884394703830569672900446936425404416019877361238985455105686944350414119544201096712643764759414501825549989734980205595949334353516651365902396297216342463275492650272316622448456907647007359432554178585810930531316359056908803592549073235540804280180213660485693863658728850630637692707759208577136606286319843130429004867770139702493957318057561829547683263327122095886516329907548799066873608628387599321286153251706180879423948875460262924019398308910243083440613776409515029651983058515074614689120954687394054587078213959144896510734508415599178833009689971850137382589322062706487195776662198689620283641842250591422804581380443583260636672082836525118486684467840483897524278878229348479559996163318562131519679011028206795101169336203491698894458220594883621509471349328313927889310071492227461431682968002257317346600333895358429858769685396204741409557062113219375636950940330701084034454340959166989395456356970191862384230485508801467045285760892197670876384417863397175622031314988785405767440438565665281243939130046791103943091189620657665286698815492854055342969715006452331544498970884071798888509237246745074882034559494137486004250495985000211854696440711365417490500315153571075329014646349994433594493488909163937846538155044381520928234311989168816326709537234981320274002651968015099028561088472857002600428505949291408949475093180576799661258489543674370542791491130470610403682986098564919061087998744604686442143080165699158195517825403545423538181019561725338737623032759794068472230541646610617710678969211040324126048569513347259690387416420571118121522443562235063257793548720790924177584528386400975934592529181939265520698957280381580170052214288936210491836657984609501371583703636447702009730726570975820535076095455370375312228244924545264739479696071312776679814673207912575782402031758747886052513504830854491329059744171776095824613486311709730573551558215631978653342100909278663414979024162303034053038221223641064617250555806605731479095621568255127769326188375285486585712400201774754184149826680079354242201325122192670648371729577011724415132328878179966478457648857801826499588103640426650627351923595366254393520449151081877949803610889822743828510106191575719649760503619137824306632664861207431517813553555947786791180512616622845814589469041232267691210931916835745061241653167979806688374072001844773255241733366753397186573765821697344666423620248545022851584398990105757970828708778650534471588191683085396487590848987487199785676445271401176241098508618013453979325195880758560491421653764822362289509656764858948168261048162042850147520232348789376187821097079583182671934779433155881970237924840309291846510336117919778826216898668444602031337369052795535922327493365132794413442297285094416315952352650737116092158577769192322071741899881002434943631668413077696310206622795583883717613018328764395742083130388134225248214759417803935775190304084353471725103859290022001425714524846521278079371962015360760331583750532015750837309213150264205012453333322247949663067259851673093881560477244801292887458247894299478645868508830676774015544941202159957270325975004443427938227312113881867029736363997963807447731338506366740166841135698185495316631045453641110865330422844410532670365936032322216344005619747139787970843843718633804113427033122966003079771724766505279764017075667304512472841884372292234048095978483510959438305652252939105835806351464844387896075262499953436611747302138906170145200358890499196494197257774574368627344323745736487954567782679811568901135841319618986004985303117148771004582301755745164099417281134487508697167162746647973061310678992845040378085210974936514436553747397294706870753030566239427148969559790330742370418382253838911029969387727703946804725078315879867331283829588144043883068706391235000089966701823672458158119209422143832074816963309168445348671454624287953772263552275063149698536521769593686601137890447704454081652846018197662367259921559492623402769284907114276726752772740076076178656039845044705158477999279598831302601552067638379493338288281474198458933744695227913447992099395355875270017590593370854888865594626314014694484930936597570410964118109876139255151949308951968800361273754259722744376396370774687748324625451400370445213041359107532297718761805298343840530973036742011151218259645035227980073167082444810306619058529868241069179255231184598250527036268534209194484264205647094151680937836741392680629580591356535290150690851770005302038039203484496066290475417898251083511021554229059167723734634551302190730516835097921550187107150089082378875733552706091682470790987207153031508455239594781499998917484659571117532323547397518907707198260086891968214602806921814491487688404518394094257044700715797728999600213526096028184213425896349450856937280744284941838210716330896620211307244321733924046310120363289512892570648969536282794541758800590689889527401258151786492703218248950524097195000327191558597817219560100548523561227835223522917176164158375807780211343904392917626933808523712505750693783757191669844699045265534373076996983577558616399403441660832196050707286889614080254982022417971691946278873164566791310892128533936052670759763060271023839404628724684476795297105674624026644750050754334235646824632019884350901016867505157846964851011364350946612662823945578356862801487080766630601553583052292989421556939036749380807837450273711059769497394194478440855580042226416791215206980947123368518159752958726278306645730969665310570065743195714631475805160258044006481519036987241936691386383687265643049570585594472484325029235634396147249674052051720586762690575432134112301489451134566272866450043441212486911443832603846054830987828182348897919136360823481174388671146631098902123783242366944491644028420926694650472637797034881400142279497966742884324323205540148543048762509677047573012119778614017904972131747716687426897556726944024192410499850345635066568727197840829269506969022649262719956466999041961880842181386751909298449554734375366136631904868010090764001435826519797367381511602012143016601224727558590571945990087731630207159045717028327165453450884118735409729483634399926163534633242379565226353028261494798495562744566321101611451709365187475015553714030036831693584991237581216723631211133372664384650455269278347671640159562043385155116316214562097646503390953005016190854594263624729822973506235734220493504714146752669411063007932807380219029055405822738633523183626746097580883889276939100371891066820373098043812841736605604015519552219653896178086390240168280449672596996577702041726598060812740964830175509815544699570605820955621316789395789206958222113500933815965650870186418405348669504605373191784905473230579429117854189204886134525369563297798681917064905060384327581580290685556070580510027697392744686776815504251934103194142633502339633022415337401439072178807352801043009871660615610996859484897844160149418517241655821351063877300607277318256030472326713926070142878894254331552579611328760578768797765000198739815275817743773371817429284003678130696941511550507745710588116821703850217703360891484664405393514084027962271698920370223159773728348195707385480850263980562665807930727565015657184735793421444149057059392552165831692465139137662038701368535074281116780530703040002401926237425017107154821566962896854418407548229176229669973539826729295167280886017278355810081612122602343101344533044415504710692848327841074568142664314734145225694587200739236229831246091787650575780088626379202460180789167089553585501412864067275866559748854740806270313346920018152051577199666812992250764413414084975839638200500348906689955030343319356226705225259341666344536716955408910814545340427612391757554527307338365709128649018908826393568492882887951976827308863985567568105599801935971949282965015898067577346757649652037456409296739323601680255546854507676242426648164324689264655117109515648163507467772621264259889534677660204233334201695038879759765429089932078247998974953290263861561081921518128484099992237048389190395126794998930923305847283992163142662062199311470054622678112853773210549388779226825187096654902036271042424662209141800703876439796384669701479637023605592465898553486881337184816969803477462427350427296225602137822284084176697562371796161957843747496346256498277131455646541809469102644524092402654446926560124643721182688787063820610867989618345803646329976504171921619484252930597455009282353487227219279191479488316100738195413628486749471719914935906664134017704077258189958727808489392599980154406140149289937651823382005792511045761549049711056473917466922804442776903177499095999479008934837379773196612338735025435947601251780654234747797416948300126240471193312551889918695663314552218679841820801173520337202653824777740090336592493980865460839287877577403754212882753778567922260579961919451789576734421398451653028936301550363564085405173685711245821177930306936572936734333068729098596858029636063950140254134091025319259677722875192183932886212974485533952095198912602878344824047057153953252594121784892433239714786110339715584036098127721930768223714650894440382713931694049094866057981290381692676700723126805509680231143975990658674885327231307991573296791357717469756204054419361987567277747213516884628373660032034264166342479417160849432211127271231277199600713116071047418836164162363586714030609455298592756631682757622661801348931168656310628313089602233696841629229555336775814821405776482823928767331509895175608666790042031235611550934822405466819837704841754604741323791250959656361075344453279930294719191753205649487245421142687572469741974474208508957820098770483444372924646138449072630214060844585086593596778746467345889436019612819270492047786324309649186969119116358205690242788407895709674165104702186784966205244814653799755494747766715351487502371641728020028988198323328817408172804231258305358342469104940171876377201812008137068037597442215702275688988987534765928881969082151100322436031966555183778057975839156028552855306008198804874530154581532481904814416449772653623597627676775075649076276000248686344875339333328372645912635809507357823295514981591484853289903794043893877612161694573256531935593660864293991489691959880882167469533019154744639060618333703896864655666969318972909649747031297034453920495394218322426178795124139736394255088386233483334083945667805831952355637100992815944633699701169231487800117936311956761932761880835266695039941591749971777048803368607061200759109171794160253781156980904190254320978517870493209595243983803152703993598973045729724498025452909852946701873897697634452132266608635337037777216973785308154852351462724411192530512338845614664803896147458035371746195633713187236178439334261652705684086649719439306723208330887514420269863971638754622326111097319771853419249216349844272955394698553855664970796275446175705004922966346177370042958938703988889634316760550891964365529915421623444946957324917050276706990062031494907983052299982463369174889844405279413307482678311202824298238682117567904643549536132452296859949148089978950182336465726057384378630648214874167287295994650844742777091096388801222306523944877864189586055589890743553695857001710434609138641994619342676629492723609542729442700060821832111614901521483864468196537218670109132735102545282694854365844338503848741541959738079820240819787337599815936001339469819130458528692646803277047581860025581246066447096760706349059212960299016178081360457411196565980196996262688893148380119132532846763095119925613553605600770164871751969829953292579470148164838030762083725543724497284948611684855461589936907615538133676305644266422876846751833572827560403694775432303105706030877550956070098285458434247866147004280929019881216695355137451597988068262957278377336433312645761931903400690556809312228680081628094901224657075191573481849733251771917795562696188390973708930968385569372969272451997481630281889758905133509124158078805540758945046327802599816380065569458300960859863419280422877181681460907216067831446279321587511263994516705709657584343120207983365895157666207932435614915279794350058539057028387454160394060460129674491485857702161173099603681044735430460969135047333577503223170012374109969766765180521472918070305237602615381567858276610688229061986935473266614939901993337028362215209558217577270903842478911613596040143908049996278288498732708866059975064505636103925227296449254683055678389027131362127479515143874221196102639154827443151118274712270718912948705291472819888381595848351977937379592215215878759347132434218008465579378187725285833723707694881111028102813157865475339199217805907732375900803899238181551479624819297449302037604220878363074146352711232310703350463487437101721915284351063410635406212494685201039971334667317389199501608641778776776026868058297806801578264750287023672526370626293754522822252048992146765453608437532968610728606078843001362943507854132361066218460750297455801633607236492794776959625680104631976916569345283212300170944123176689426239350953657139398717198324476780790171011198528137325346998515693793309907807462360998753770593870429881375511078712360533085436168143469739680198026672907916706780168982316495586629370457400428696419594399265785034758299334551894795863703126302728761096172676904108033601199799919086165453323778787000586135593738381577050113526084223418048929178288492123488953617844685995003208355929714746319366347391494664300084437905080034720045676837234206329125106197688053297649644878937397979209671314220831170272089299235727222407002429329651011774600351202436560841779278858444572584225418222041630579416115435742176272790262442207482542381065963733418163165640259348675732866480024327796972043184323219803722504751939588516413296754281344377734798834664960621958256925196555781841797035093055253553317051249048595193860469664408490087831062158286958531959879779477233715209538400357268556457631964796049456211502842344346423762806541009771936227860490792777100899978787550765088653702255150438718661048945206626951533702594064106905006858222474857388867957371459105924384788979550299955386524837449243365174525993432948479698081135341581844660834662567936933414811948013914745944744152579040054209801783389378657134111283003976323236837367012422859599365622616252658330688259380839873741896449058705576771967781698167250732263388247202543914436033594416266926136483098144110208065357300882794371933785431701062029542213865554815044013044751817407816288032696192898864335049298015936086809008606652948235906142191618776440141002082935806185903651135730752258425906711995999895332698115201512340827538040315495830079178307481565121091343198294404773411586410968229655280454690611714598620518295453399847884069588609152888153956222594817757830152664453360807715000068907517186744070820816372784668198773637305036317737858820035490583248002385890360947237663322077970518346985033548186365180711111477507683309547586759378798886447229366153894699065353962867702894415479218661507312380940779849269629438755389453323225805849197270533108300588048624737846606660487374281928169355769524557358571172986025446749220114052874428179989341272029213860144350151327610543567125320215212659891838672315348657335522415733876591786986612136025452828291716635499001621202378094696122514953463262113511868269955588354325586300939353420124182453181374558734773967647940159622208991138254357012383759008707942866377499282026257013609953625890429416039249267295287840863337404323484747072257612211495124783558767302942900981603341650919849011234251373568723421981793572484723241488722356912069080127329461261843626169502034011427842473430675012124446325017485020499826212868130263059869499581230841915371185353759459505991462850548840431031107006959667412757548666570059883107709347662378782786326103899198832110745121350290605976225937656952855525360044689183854596840584808622317402741765862785720739005319619714114829124387860978705685117502192591746557326996356738236468431421511110588491532003824717092114724857127236691881781012502550635177520928072036839418225412378593687722680858155385620022358688862352211629334164586166617912462366455060247434484404053111808876252187460989453166559868526010845426662658949031943039831763261593091097362441161116081617531564692999258717966941076419597732066988786379341107587064216524542459462764486847077151743088215013960950924118733260144139199856500921706719385822771410662158436886737978384366029475700907252441091958940467887559622264974101053647786055612742081941791206377968683560142398622441503328314397220679365247234189708290242858943069068554212499580918040039288674395213229482280728990213364130268551927990249078116447103339913996106012525124401893110054925007459750646243156887313154834228029684202102760092432908212676645639321677457499011955995037895577689220083010745289626909573412631595516635827890538508676433731365719270621370304826417957960433598270885124776983256570131619775348784051876669627609568896593974581163972020165423362661480741846575769116343764457822533060611350987027351424560503743313629961928295648849067238644253127190625843214221586653333110149875526719332788563588111907189410189274852833395966230140031835165059992474485146653037089013118892347629810235984382315310323635083936768778714801804105215288699627541152160553912165910185553639568326465018897814085266206145452663378573989233404060236001863564825455889684256764660509639069053322520680687738167517850813757162264712502757621193082000287735629207091278253423818230240384010979164634883868864951107897310790578579049689079692109977577705394401074423623164738227772619620797803566411939575739253731177563309199227607405692643331551601489510547226355572346719803078334011254840908125510998435873953890704670961459035443128528142368405357602562245198435067239234738726563439530886798156746475898994824335588366663681758950473869887234136385762567033808084407448592326553532873852435241301583047662698810433954587481359673393851842747881109883232400197209679935748464830180773475543084390878498374752567894717675538281181229322674966592127806593035654839291345198920447544749389663393078883570724262507649882048250896770219764105883307055306310070730682849421220504104122160802843007443665012329646856814511636471255722004307724426725924402914380362778625855115526693152735852087954586262602935885385730481064996760560821654446932591250101936907286846704695412309150382394814949062360597707316207704786493289492115199834653023752365281568004735473784742725118092455973766042677933870171352254028482721736869756299724875359199469649607091997034328771814302163217156543551969803256649778383553410128332481033903081315528357320784370276993143198008929575700232728205281431938361189603604887357106114636207365107346742809002681871969522826025246266878981435458957788588935016974041669304861060208847267858761206593606534589245228474860768455802393766099125438693663666372714505094540672354899686404191872667247686803784838407444261645608051655492464318163879091744390920279698466770920977476949104373140980694278864027841282079144766703196870715504976006444788261838312458121220671759353075870275493417789977516705400671107710860006091773605839299431552032024226209603977115235567676377556006788962425636637011868997888597888141587693338117578417742913182321680694867766229027404419240203950105373134609254204929498870752174429493007294707162698693080927296591948407640900411442899005626272088062679019660323556315348718573249469725130162603566598948314379302251787601901213968705676891819789477506005876978031011939932383856187136435254422052826202502549676557003284551314205370556384344906521371048904984169866062905582280405197584926595638140012853538003786142668234594764744384612145509724623574173846635095408106819768827646482334660234895219983455269675437668895630714983379752245318235440329527385810788229002408046425235629034085425709005859973518551671234045981906770454693096489516881780770866159021094103489337082577081048899901919821463849154988497965972374396661797545908226806622229445904751991749135496444547624329339091225889703039822381013596193047663798904803274055133531548406018381792533172179735662734966818692934354389340236944351601018090759895083139099602578572271058017517772129908797174747731165755315521890619513336442681407234730328809885486201372894812178820769987370033330815901951803314869154352264522371085829410915632132211205430123430437639607515161891721132531893942196806012235050994316950255260946023193424089281505936710609347209347975514136820403356191703609527092123264056228124893192426680436690085863794554486281897915971488875296432941465071688199747605440228535616885355375328025445124303149298545226828308822418468210582632940548874004790735794016053480207089022027040090644408714210321623640460353782012061978609581679063964400902398795081352307640290260027657130602059562657559031516241199875651014353731326152218470450399744580531552726723189468572685333959018094237466697029930870718976133782150136090157977274607508526324464963221116799112035295463026799803843623030025920179925225560627977204439295823019712039435585122253702168658399294027590427973152257938196323999566681455038753509886231535375434743630664160203634334779288971079219864681011544467194597725415490388316550561822882151300308334247795175581357293402755067326315303603013347582166028058840193789805815475667403916141922271581210280713901710388395907356547630738622937293363126017297433370199025351818125748422818529498838104190601049788108968162792583721369835468221761494579858134492034756506940919487691525562915727054948147591919051593933100809426437669815520970778385487735131893663969363026970433638499570105316456893002366724765620120510795963331275013307818085281657163177123464953905054944159468756077087486906653227434782738142027895306148846558336604229697774562708720657815710363188626329411600583835326501937548144665187719504247491025666482302659849862143337968377495425603751949365842641894827557359123592419163105506364190485029326045514871927893548167293973135766684842164071366081392766453585431700966181691584446033001639872426941532350452259310882268462337232317179182667507637873551857843779039659236342859983672978598967587752758049393904255266740165091120949773713530922797317890975005726660155669437129247053554177924429539527561615784716587722920062247064082950136872190397213899533436464336747014925095137810921326637121378891217219852008225624233196127459124070305593512354262448579066040798626918264533209518454994497151293901218458969199919050644609500692310327589346891936634847579883091146030473861388881726491082680719590017859570428431085472185684514924224721327774804488269256619778273635972402809719408459602354650273386423414526782849147140567939137366911430524849558281987965410152212081046315113851588991366896771026043730475904611194421562454510962071019103891962369832584218052189452914996760529122892141159147873651362123248994877121919787405740239131120917533771009252260745403098109926351019938748395711733742706681168771705141405673049123428161157430094853871455078938115752809312471501624757387888186652569754199400441445680663204000889624716224172991735388532661600104031384784308036541858586356439940004916763608099808451142904081711801589286013937690502758099846950673131339445689311476450161221144198853765199320550107043678300505375423611391709807427388121443553925741267368958390756954434837310497133317777167587773095778128652748750208679878781524513198945720914321248223218669825192266473715460712240193285874228301977450176470548599094802232640235072567917386498415360878690816847810754759688159448019754245260830464270512991723700829855932864073932631812705500978831798059047402439461431545909158518600454708351084793771182329848110178210156003967675970028564213110181104719111423790749573976761819686122503059136900735730731784858425073249291361229934973317369632258434790425770321035948023097262529371657772608733223070489695123649544235530837708299640524284148656731460442367216317496915678580639151592581304673980796268713194678869074565360702630551281810653067141708771087007716939759167833961685753963297178031925707436750814953651060590077954171980672467076125306840177027543779140887263235933668108353699393109990390512649823976974847272563489384019301167392540279608858333880611790536845243820276015240689567867413957385894366910348759450343262853016655742590892893012999781735609189791182801999176149077438347087529051261690513775299886468970812008165483921241211955272903860010250143353167937497494872837168298497905470728722390145906948722977163664636485521376831840420218649244833058294725250641961555910815722598990394794716039619778074887604256754272486096511855172276985427196320351638880343685153013424759228913550275965298685425838776167327058954781949609073193707448301104214157042812919071929441536802367584844372067983455540159411690686184361329712223728562262973564074721017478567788191957758321903789900459243094590217401309646467048857770521985883590755573080556918980648790619373865544323238332072237482949447348317365472446249513263474938554266124513932438155885416346492685626048087198517703645704885189986365148295727473103661902862649758922668408580693548082797534229078465780163718305864404733691195706356454702777557239482821260521733872793300411715382767577693197806248887199237096077141122366306358086537741277141961202061157184176850074040856615075510277573351780791257896451612676847071408174569772452481116493317583046426592149909837899826296774205841801128773347008304938120150313116781796720254360210648215512220611443520775718839890961986885238961717647724042590468579416632317044651207785960287524912959878995747636422224253182745655514868307568419698277351569852208514135800975159776155180595213478703460659478353815183919397722373017886460069425118178628184233618355553201929664111363315568744172775719659107319860156564307594797890378815699465982872763305665162621744416988880835510239572341512726249873824321384392429422692779949172500755073166866943596747182227796850669439642372635907661782939467473267911895919537571310720790171568766966986253659051033215725816623129491171279698695087571690110486944078483196200962212811178466266902951494802305544571077085882982445598220484678604406543966634278933732413780722300936116827123420643708705036936622722633168727367955873618849342270650103754428811449164778893730818045818981069412941946128563517395631560384089207213527178526984927763182698875282609183817897161355387352069674098567743527546578776578548111723279164004854907607752753690582042454805026355350827286267639768844164432163900407554658437719589369803458713173590538783695894306932651428663936326406862830379458098763457903318591816150778526715341422309360710572991948032089357082109666390988976089096498039478569723960210907752237770661971884202475850226513889421068369870817765363485253497676294356399948928853180726579234773044992619501262748233283280232153765166761294583085688239908467002156783552303512237625369507341087887896074475621395892170977955537372689149914310245256359079332139554467821136345112950477317918353805100041403955890472745793421132544826066525490793580738849077819924153781326020978014572598109156742491450357034975044284764619526590167486033252177269872913777895150822894261938443093825599240560816911657136971396297935963724292029435454846353610989309549403391107292641785894364781707750928532288435017860226828357726473844847354201758986796626470183070277428491257997127542763690280409297187209644315654422830938941716601662028636227439961697725225515148998930071994548209764987908538951588630557611671255512390651291494698612197212333550030930255181288128421660469693619864709657109374230679656237619867012682658383027028111339136154795834764396327775579823319892140846509249937438629592067158046573320209614526586643987113366814697099024715285167431871496847735499018578832536084174447610388624774505507567541242131518538970659954849680946988062763428110059978171400138491244347206757485567370306348738846346221756012228415292465568075751799271357124206215456098285566846835673967213003003479438444719657333184977873713386492654492601922989440565255303108579440548521927323000992296328981269052361099973564160956248124385210576214311184199793046826936083983582327221856731298397330294895902564590803746406505162472930439262051015834899598176612349541868158196804472676220635057996415201633483617642081956664682896045968927110672422168468777101909012714993705706145028251526145997025604169201492289317044044851262531363573868667615788210343683361521041250108360364507025269922921342800741392847852668655654647506688232756637064394076002912374051059229879278949840179194359541265853998611239355782076445899338719239103405494502307018746431621444810863225409931989565032820829537276906805616829438871875050136433129857573152868682226177708520485075025879418979864461879593699367129021635361424106725739824085551865665172599589057369465826427278086920013895405247538452811549074059576529282394710500936271042088970398225800596599225574970782498901545038024519376571002263101492020297874189178408515163836607728936882734502364230325453330634398719808863833296795360944895062105843306799345691751315681794532473698573285573042879812972992107792753039086254295567352222736548886293529771870981690859047244657697512113658570948641171874646367464877093321217866633379146101918600569686499528000989174911919019734723590435449615587071485280947472559448127835940307384187474831451759041852331986982179359582139332181263822286803469989422948081482801513183186060677233804130365185461631048242211639120205381312784925199344001441622172481873934674018092473227872218220239053824974384395318952337310279344162913862853364813892676390105274953146304769392879346813086948459759987039479600702406198119717448282915016354136261056488412374289288831702308806966750868361207141653458468343523798878025573907206309494353331047125145876128212538512368728638730760773573829073480643318363750673440027940904481337533287604461057061192124349838688389002156496588671822824081023898498726583226039807112041047426736601017060086997651300361067309199715504786425695243353749616225636561970260202056721020794247270955966185891806427914861641835230323299378689235672665408111078436915242240476225113690845946213871401940520342474007705897788827145680290485559577498518365852528099558735963807580162306834610075566631017659395583748534659464147209524285665752389626762208178819397714000842617584589925157315022274533016402518396218002990200679095899017403871432990775757339314653630282108922947308073622564697336911409699047676785475270224318684948934878635665827816181344052975014915581219867877242311867674493678538009926164018658347669916618348167586260010071969925653093168758100536754675221672078783967122197425753388576170848297016354212508470647736603949507159166949333705148850598894204895122015595827303731493919073409713189145833683511968862606188277017439369614523913979985687799283889743763322136261930160696490447711890894178599256513624428179812075074926631742611602514485940074164043106258519114774756032043804742645209982231054204559881744764132982934194097377182219513368363871966908051325701009568787561075767875416933158866617106974956991571595331900494463317071198102059521276941042128207948476376008739388682917144024739332730046338516834630057255000752245166613556039893720318503019136136431013785731219094111205485061637447832376529312208789954864092939038300284533360916512849369563526349339164410088325120009808536297680407194319538413767974338945850566678778392790440237781513646971467549652903465525556579593017449808063068647254744442970189892048323433629456101153875560354949844268822527065206646479270984153876064297973465149940412736234192755910933585574288740249107840629623735110198425424571750352572959416257678810845893927377869655240833604078767898733843502989894467033557653154855290083610613172171340512230379349812368336772376198484912966338197773648329740200633651593480413049897512738856662160852091589029840385531711646314696975223717897491921056622361286737840766748416138573380403048368598324093147840712277694942862303258810713252056976864891859059691827938489240955182131026991477381581572802575753196778655615465116401700331606423844563611880711339970235452497471533679336546084036367800167370901905248022048467132194267288169276694964729050553850715967183779433310081421500460851937617270688593396307645200247806787897424657919642533644231187762046196024056878727160344602267031990835384382105245974256603789540955366892002522782196650980036935619475919931390399950794746903661268460203920908446453348309597832842490229934173185996284792443197891760918432280940103950136007459525232206240846214538511361277616514275416539280555506525403443125970083744501072231198179105253486026918903555618994463359197019214738826922367430844799085081557198667862797102312552550664801311770784084729423867293942537360400949049796237593313753889996455421192773021442408962722629699957420334057791615464720843402582909968554383976940744146227387188494881717018572414602747268393754696444036933521914548781633272553402629998433572048422243362975293358942997548833577266967450865272730651569071422877745454260431102768265266358163596545604262130152069612590699791279312057235704637097394370594140663104074515583055426343754124968084867186757952693544221792519149637168223736807145102823234601418696929186254222510375189892435847939335021026642361169104831976779520216957575274025722066150645816478783411680221042578237275492069806264874226136965359463980793280146045661200316763718006325484490170826409573903265323739427286578528218492653745762496601615260331485946834601809137802049441997869121320870548020358791031456589978654629446181444013418311769907799920025456243373342105415463450972055968149896698327737304744915345595026713298462416727351051116338376303136778650064773890291813877244122330166961060455513076672352280476071805167365586301641122969261428217193627140586907138938046127093480185512333926004619533446055820240389375481599476025337437793052132526622012877245512985692326822977058302148686380199005305680494949544728342821877800166577816461081097781196406375671280732349531157910724848813790909790356552077402996305566262263315643246118572983826061979879732729236884752107732965643459199377742116157244144959087991425153527655627065462900875646445682589192555193200928105615488946426804933613062384651522141857364741134046990027747509417032466194495551910333119986046981304458681359014519452848973422058873558762781331706947863684435576259796017449460121133099112335955190781282104980692170249052669696596659766181823957749527560325046300301372972584224951641767918528568973036961233127969949884535047363294898092058429788262717704131253806400245087141189697432121532502468547586850701212294061031741243033937328261459648163160400113637772073975179428432364836387014059722364990271300040421300882540053944224963152289246471846698012739121668587810022950988136127731384167387328799052095878481729562554922564216212077373150208004996547267993477634660100310487818612434221592516762108295409942432381257435303064017158693880464485462646706877671486563886845565738165609779840952506816298676763652723811312999590199643150325371377524138189041451723578607272339909324614314843981536312712889512667815568134003525536012816086477178229966348276249968053566772285893155467497923640612578294238415865406007053800077844287422130823225843524261330893450458930910808809765725298854432433249956960690304530183380874818308286323359810282140420054162559835429155031542076185161110131607383674348903607265298880656416955641031502047761717545972594195435793811936393866580919766366008286685665080589410311830772121128867229557485988438020239536624265503094208965404252633636172092742349463615219500094982208292558537449640418389641656957031811539114453280548873235642538893443665112008110507117444525666116792245870532614917942730537645533205666874866043749743270906690158580492253848010209979784606544491001024733998475895502564729269479813677889893368500210605268205396464078893808061035677572700408504252767890799465806827607750452080297651682025800305808143530597704801122967167695865527676311318951226803711187445692324141161753995978768624285986135659228937306155222769830945908420111223888488425680298246437547234619904075761123785785353918107254606226341985684985970146577092738864638300998544218585374191194309600179809044985980581671227317273210323466346188264795439450419788316099347461289090289388459507999658356933777242278658335604589826872143873927422679658544658927080441946779758050713847245169538692748467601169599353925190095765836730050943888212425136697243643921246988866861370271483633709998001320363056666929301490697865112946495749703821865941762604396809961617111587472302307292869357105966761790884020308987027892979738374892094571165345675194815365516302186875990409971287222913056265675320840574072614181090148133527056056692995509554832018507575226852984727740859350582510405947300222136470238642430098949957561933077091941088274634501482329056403758382937168084825356235383716545403191901608528302670779294451205755158135231326881919529601963317581320838144350616609081425456682029743327915897221665733037449243978261740249957595489836201962348063915854117013382672163538027583887716452463171704934870605954131128296410430547738397150226996242084470332968641558671104125127067165752065450401185898426578207707482373808980546909179960589657762849489950329833853933908798826537091496524822196932752201050608148719585825589385256466394584728282976474935612104227050284101551442443299261066314872049206265375671376663083070333944044597759235075614481635308043182400656079906818494866683883750246044748379476396400345995229585917127751512650423452895537976453722576406130708985574242924075238182214807856833478301210069843373332167488579448666594771233678687440619646152148753472245075184957127617658289276986878610045001598817865922398093199206426699908252136290115169660862768160996316664216991076067890721194455825162202588139902911476573407674977613884461531394864164621086988188651855505594515411109860093633333888487725524192313664179793413598551494193613380911460210795278512131847820147212596522162655524153870771065993728441207209440014977470975483867387664332229070104137630839770867031226675268555327394838363212681240343404804149115068154770356924075054585408856808201524788014186833315246905386812039717797475849404657685996740608849739002050572822368155291550609470661699960485485697658096069937825948500621279167513518027692528260828488295968962676446437284851791316702022372645939940592271732295955745279877352848759796524687340197582044402689475037566296701007090089312008772837863504147059593478681310185040000841935180512090429228972247400373419772844057644285358774965364988094992186257188062912976669146877232419247149178064402052388776915147362587652946178905933997561112131630153220304898184638090236061097629272854255461244735276497640943325356481929448055533725752259818682915083457270453112182968970498855999041435943443025835444814385380142389619243386005454055309421110714722811012619046570715978946339827211277250636094161656204742327473968858343970891972912487044309380057672894866901783549975866778774222175979706802700612598532047357991199978436567093078853529872667839450361098840795797016413952352100686916516574485874660579367046183039847743319573567669384371698450577144015086868133565124000529640985795070758611402958277023363049117307635610581574815892715055471561241695859174789355690326619852542662552637301408301370389905007311323747451333064522486578364509777330927695852825971723942283316579810611078766604212275547035744806264343517524188604218951810625300932065333819844845707827732628806574031378561463218065076024602020393724855736354465208673952683188361831204707502966670477236351288826691961523856642988261510566603889090200152712703643174249083856532722236513853694069075857389673051986783579420518931527676348257493573455242699856695759593270710420105123630292425159319593918201913628740896627382998357633728897072021737544023309368932764967388592315826052230970661916960450244403054140225132608050469199272039195110348442643300816325381206630872829983446082094903327058038944038892058945086629334740110904544372105090154640685387270602170818251274219034438948680496052775347724837232648860941952907561716073324459952126586923966552284466903515268378587901889560633120308156572437270788721954793138656590457988743027768789066962248032785027783892289107115510582606582930298790967785038147385218687692323460405368858276257633524254202185607195717173547922400488796418704934281755191452928566576596560652164914862668005532805219674692603152457760406862257158635024731525652649253883180268088243529945259227230076115904110678240384864447613179761892351791497713831216699066471847734048340465163566250280637920975196403815027852106265974225684109847468128284977682346187011566094884180182466560032839182709661462669775137135297842129699426565684980129504178291535575751275009100807418842813547600287370964093801650158439867329369395699689396049969808628865614416487443615874779175689904417753709804158065496971782984389426855647818832477087201741124833389764747187387848591073560201711097021283045513295194490074021026452866139202887143613777116306734037802157855487493606568669434032923945492887574581690547166213521020665463309684338106060488878322297714399905690699849654552822504352106145599220584393311012159195992890154403765747968620567049010940816957067468245765308370139505168365764025533438208405298170810674742679975926065362132822544544996326591587481349066514051195243798764365423109532391284533920346433067859892092192406286823899453084145253811980084441554320657741406167641781340738918000200533730496809392182223708449554369725995097592958297810051800657535647475489000146681761625112642648622550605473627072009008360341611913726309231342090287865345461674374561214403998058018534875472777640547473519640923883872725645069878003552430669610688212390444955711571915437656013840159963784051663360980841898214317300144693002398552089787896649801691848333651482400997242173651838721777653638855473007811413962316396140888534835113828981544770951254832574201122033689133332866641004966628811827210039822792876853059922845210947687116857781234314543784631392071089261368354379253335443792417019603002188585005138699442100981798269509270088419481385464783200989616970747254751844758368837765497616811999755540466165686003106598681755684194722552436515189428856476103969840302120521618478758104018312857307103022980669843310152523433309894686855090901359680100412131087623801095212321193345116613500338835430398065882768374389659345832004095683712693078806283168204016136809694318152963814721922788609784464526608533878690464180239110932351187197734607164289553534149835123986184804243639748213389336210283756980100447148247614280721014171230503045436918333755176503148661009505646500526393942343095105119096834739080545268859517828281320410878343557231614499156674958952507745851108401963580045803088160944338204413010943929627918376076997949860708061487022092197572690933412153677175116151161659976460747173443592500864913258510862795388480454735567756648241517782484366273730649179603088180801087747986475828438430758273221838826043833275394475208851093447282962345795348650305517012352842405392104744763161186960125930727776880921254742814133950988592375283797928857942539769290582910781029706226925935442092348756818244457590146896127249132487597581751025576362383922709756901989665878627453771628993560716746185692550543074389018834234634238065163971454813501881791799916192544421211994915064466312563054684249595519746005698557274740186802129971666634927456274352737310850796710271322242891573258107925306502025438261607929625213826045109630748041532473703964279091804013428877309808288186548544315618251523185632952320659142855417430688439154742839599002136923843882783556968247319780757858903468352804255947023063685053544456724857088127209893575292654616073941490492382173032215394405044697512651710510400312897516541525064912989174472906458065074971161965008898824180720901004316237450232607994107858300997883734986744924625099199831039732293231337082437220816174581926538744349391570363983778969916176954422283722377612207345824922509869451854647207970326778386376560145449097269170029397619674860748870702527624250214168229729800316598458263780932212069846813967489896882602122690803749364268850107975860413495411846314441832179857033799280301607341665429492513498065320841056005239975870485902613055305416363929820820242530976644553017238153077061714663775208541463580260285352116062320511404916461381505608433513712355419568095406979351542029265965819001223136949943949309014991341833542041222249995360293311744426524955480892877875843370029711195422361496506813610813436122171457681006701769519703536436609770669428368418030838130319848376622740871712596199725019444066607789786329138569959683658179084475560082199900832778743893475975836643367874076795778502080371163218840922903865581152025621666126120485291380395772248509858181852880235403874876145154263874594251057471390723202531041312894360039206782126027647852818921802811090137935812594552664353145916192343162243451473378647160643566077801630675218739903232122565819295851197063708873194820738365725517598118646385774420829181691297922125970817094117276450391434988035776468033001695607857898489267255528343498770859005009413968178557453847504782082769215850974303487973822568453717788770340936783528964048299240590377526679845948908750275909335916459011554040108805576193456053516672102738830422814668989144087739290057046394808974227815063623179301970705671088905736650953145931209081646874678385562596454254886770180929912033994771872200060370864623495473968276809114166624407537685457949749085081722671611207032378177870096946473969593832616409195788427606626828046280657303242289220484333261072217134347360412346919425386071956910825387100855970132800504214367489357744627715022587954623691721911852632833682731102006122633841400835431079882096963523571046813607679293570068732274466410712929373331549848986971280483918858898963379227310994956075738399355133196638369884532644445639157199497415708672683403182340041506996733081590195642652731243649708991450467533363053907604472306772272615095581647738472458744315136688874312166905243764170185984518682920420908054030746120625900701792950108848429089469980717441294096138711517271135223559392900937005981524351845366226984758062786363598732321124019539424483991432657107747746079434670667309676912795705210919774992971554498900087492944834478081343282229052922951595984845029351413468289396318432095262855247637064681662426229843580513346776592931973469584121198697462941909519703821768621404112885371917527640456812832188321749775217019047788608138853952152719690089702379951618629362646121950770422050187147301299465595645404506420559926907848554158199080748657392788840514623312890964977636093200681155100106355326951522833779398940681782301296931153605929940049725600486798950458766902871526570798694419362380499090291220935155595828945687309251509748655321014533225717347442356950383024316781796726539889270645345436755831884993724601308827688725611793140058158662775731362416017160358342391579713301096916957987842779657931066418819024626406094092708557494744635297415923755628970817129812688466120071581495888074111967669755258769043837852961176794535920900180980773342464494807920788206999083241219359746363517813933130467898147202467317085234195213761210525752827723244924148914280442246706166914854271088183747185248627252519598175198658844464434043979083396301277927659272556522415062981020539011132706950156380987738116084789834197546213116086060593097107725054373622599224493466647449773548243775092283491226625558119497743750400520293364257601698522533907098034582687406790505215227890837267960070590045900716976957873270710608905302687510469670961899065851985706013609936185830943350454133763775266932355606296895440676312425262490571313932668020080203189307895628823310688562083204541564012861706110073701937185406100914501336976671474179677745973439114741429805747959720010551666457965986850245427596596567611027853737900407114109884503335363017262833065920878239572006522102698344228951555790058203483758883872353565912993314546583139340351112434797002395155002817398394659769163539277597200587566513924740590230530195872991537749233389354538700896279648887721061362923057614678479983274773815836622971897728267792746912137547063616142520698837543767915908024049293130486976884324705165909529697648964137913991127861392794809982475907889512782914109367628579151195706339929097983931204584745896098873887281671773288638934728195208164021329574631541403647388916141666544848446393031151036094605781750914652368247603118264649839270904602104831997372669940625616687995801164225004895899929450784897172793947267454338194689029207636212816805294584394766985752629638298278050526952659784010513052006247111156363614746550639590184275703559917755125987786898862535895651808365461786472638582474694063810631293513937598482931654859581079816693436258370611605555390808006993575117391807902807196744716080806651117270394134799224159370657696445087855302103977938548206086154168647938428943211346185663541052743244526182498054541185004197337439261735559454690058530523359301972017843795746375251015867844883742363335682293863684142087777846286233357918614345195864516175060557249443506151844949481942455158908853171340229585180982046508389261102500570699343492200907457822367147437672218518282194060202437852052337621870693209283311733928510246899649110305513664362061076046050396607657793739974058634297631786914362602889439485228977067308831581552130240650796547776920225006484309669385634924309049777526658346655235812367356169572488391228364328778939301485265064721921642922004573258697961172067428366634221250061010292054138160599142882518574924700608700337199488335545132005764865598821557185918369368648974670853098645082215596409514385178282962531049936482753598509900716416034950899194972655190585339093599822681672551507405251293257305630571640023891125622779514940224223327803328580105329976570284880141704353205795571463421880350248774726568459463456203755409771186418546970205964394423506437552064481121510510411984443996207450979768912125741781257588715931958154969016625028740198341853245239503837363723376187056002464482216914165934895641356416784857103029782513851348742961914725926348489462473281176752988718484905133212722951396346790185011457101797591764045317440639550467943776373297903986976782987327980604789684461694982602852533555497817026820905388207310507881580521205924305247778390876227660191202223750579993671384572917206023372669818882881903936741407459736218903583762594237787214999232104361049016408616587707018082395422440780518770967459587779543889465046675423037674050457970895748640008406064587448696968826824121684771245742359013690560277305874278453562364251363817624527700356171506217660079281135281564850292401108450465933397047788741080614061605840864694689452118118672913183283500889356887034194278936651670833261530561547466049127030285551912790724522514550467910929196596165102817002718868075413444535828921555593925971883022871397356184835264013429943345547571263695547635058805456013586148836943973603866265400952339108361124725205850231251528569793924642743720246110233675818085320688304565452442309350762854519464073708664402419542597547804382735067484076991679355768631583121064882424856992830372529205321491841993606931698446889100141470593076437940214314824522992873563722887606142215094116099020291314473409117700570687569530152158227649850703196273315667460494156609070738999479467062032711537748903524874444463745157898957165277982078685020407447475704428463042335793433362064480272712838394226857167867626228384272641908861172479152246079000776855932788996298215694602358187210064728502453036455237390662692797424234114015801858701876890986600810898560161230323051666119361980715669998825833477332854696149205829707682218421534488470403499946399022494579782277351173170793046942238256008562824116045330853993425037819078700355774063555542362298313296282090768187914413116919801170368745037562911462962661355644524060119603135223562212882536431336208211656445429284841114033886582374486177200854636832318987580184168046679817645287762077055483299071375043750063581701898794481448839307369236027055611429566650467111421433650254110721478649063863083276160574715049314556690101968508613121260271026383642752917728671395718895251502884168013313278247034144499195329491216350066830694115228714664385605857313263180937502747621061638762495690600964360869023393228727594477386565353958870782231774033847743872311411522961920985254418120231739602719832497571484974012150870204585037693127692658429959886271204703290148325897082686332711126621114854055326330093579627356977500150903231499147945220162801153428265254804337364862701703239327441679338525004168240966442146496839858617807792554144691221439020795457492154576471561983048917823076718696628120026693317980687328821332128402402316152282652855325524327106302468657045346439505386432231681135940007850114438305377453911253680868270599733809245599909976031215090426102042673872120283756241811894073435536364656259731610489651272080393786826608088225147812703973938476813538577351726427738802242799847385381679852259852178602918267066535931709862441586306411120422071712004406762623387056049553709553226117802929898297110098187228648617642693647240196633069540817180873419794938255866930625816975252537569638215726927460527573031856978193488961247774087783224906189020310030816923176043764903948463231051282645505992570932614287392729144432401318903959459953876612662159654001798260894729548421917221080038773454202442000994847692087831805995874197674532336927887265085566077707210276551335599122508333485528211716313245750890905348243353002642460985702255754521067824540025246923231242606492001133122999076265996475657325866366088978601620756568892646209975367255445179175058016716522522035767378794625550731124223827915635806225046292828118790648804537231222487105847186832197325151047686861588401649394736861110467852908869569744974090925645836006390396117857922971138407142295573845897126381916762946668509089732819053206558601780316593111984208651088932555878760981170959691756119910005798222193967845927838021726979268101536364935947537804253649622952282576678307599311546299441510761826719730587592514464957220812756824629055301000085704193728106651014958129603062902812704051141325291897869067476147457206264004127766404921543198031972781779751413278990559476535746038041945716374549415853333291607755416183304912556804707846077693910532832494966583600198740552064603588644542054316349537985907836814355107013948791144095287771244755969518032333326484165396085210365181040913632000043689248723935240779764700351736933164340369399813065742123703449947719585192138667353789750841502237849320376756129151093984661730574978517239045110695827484009719003533799406646744684925604037455609808264077398260551814883151140649447014686017115917331518779002746176026948704984064699795434943899431016504057894227020505350341020374430192093856939449726879451130370917159894931615627585995270670194096979330828467684178402668027673423018140337863929343161567322813386408690956415389753000576150797595186062300723506072140065514946614156438129407308069060228288432011067702690553626744294449462093698577692663363892190899384178041228396987057450785975852666223595367691920676653618927010091894097538583880692026101827120999816723422232603638313440490419592642179965718716286329912384247330902885484283583948827564238987700588552280070092057119455655055516606694163702800437650312317820546429699817930813604683885919736493192291385075419136830525240352602156768667231143530234562166121685843042036085427027936865800431630244604726722140196603536226366603951621097090644389247308266121749915126773187561630934968133980551078647875880438380527548816855927053897163200575846385207644122499115444084469931207401169583993125148590178906528084355642945425677724633935553109337432479587809716445826937158933898701928672170983313247560594842379650136427145789282319705714133763162258235297591941599928095830370312839054515845649566187468216391892832454865619866295659267092472802936710661158720018753097947121999804403052461040705076008223156722526731785210486151578806898733388446679003567385025367794016521420241289927948207409140838719278365556326410807534985849549127292356057481216332219174477499827627994806562773844064437870868583713295336113842235327244599386122573888799784759164508278116138939883985818682891902066755385083304636044442824279841883856062369050758547223976443355444555544817572438294167286515143725448448866918022580493047228436041926404515609906610838154135792507824099860956184138460432630581608857800617784848715238844135629914019045621760659835098122862779519787257379686984422974848919218616422519419786326332591658176593206534430078713698677474852897097588588134195416254393342903615152525803120832735853438333020020241830462914889396239361547779807281751975562159964882340238834871202911235656950614783136515723145749262123686358782773028515820640758460971036429412537521655042928810042830411815200009141397581933531509737542875896452554824175966486463422646646044070796365916729078346911607703126937132493298165177722005844877403481213470827950273060791694222186672189232644784209933524201954848217111663933979623017882004573097502815964109815309351366935711880116903198242770703412554674406670854125702915449309353048913600656581241960996147556311604581488888366676936374136254217261516004262606842924255663639752487149444057123578375207766448690875323139129944541192905162253417781296224046054288500067604048644803150211299772470021292456877356474693253347215138460387705871024547148340516513346748911173848199128111105536945462952129908894682434455221755128666264250829845045171731345425805203774198397890849758932168052738102935921331233202429764240938445987624970886157875109674010271604562750382406668433713758995960302524722112528135352511678497219550752042287567144305916639958576988050473340826878742839620466496396783211004410323748891205058206906125414775889303769135900514815590464148316267973618545527319831611736184682306507205254322926759175226776316876314973860773005896549282947100695967816436101645530574281533544915993279832479471164757099895588035010715976641607836769082962002111628201066336161679831591275860820711788708180161911804151616157795109054153598516766817463166834695125172978641950447276174522478187392941741429206058798631084176794710498557273933653339603431620629884470093235960090598708265913406553167383609874254061200841920381066740716155884952125900782800720167632138474883762069748296322408183861822149316847390301410715513671612430385395030262018267207098281353017012791359776242920361062088460934033460480548460170346096174263768514151017071816319629626359669597111841299488195666030997672109724249713982772864393171331209581188255772576976005318269802155046079050029051120760267895390528196553643869993642053959335801610790079986496390622846423844308601523871757251130651682118956734804848322026351117650268480774277735719754132345694519454112723963563767361808830450229852480861028325063791717545980232121043705852128731769197299391815001121190181567219111339992925542073998461051539027181607710691524560790593295834359343978286984339336975985784350535420914219257083105281534405265584328018364799618154991687176015417310113569919841497247284090421276026079448404338357620353102043111036742118054172238205346818221068599899037914519262784732483154341426816347770259712213794127660766148635005875997712530031788234483166122941458694704775347719215557186301252018542543732919579116316395341026974179933207433273258674726019245926378217145629141994311514349895901187159514338806252438050520360071812469273319875957202955594589731025351883480176796154155545834997411426104876609556487591421112202410161429952919816873630248468678160429856315066270788358472823907142501435754561502748427132320205790229773652435874195322930795979180897924093794523520555148527790807971091437759782241913678784343943307171127253677351742546008379572847864727694146642069866254733819382393394382001504242309662712876237770289281355195483275815119512035009533795197409793464637177631465469124322550241861625200290178942500490991474087827601666325073204441901482052114755710846796338391073011596914387366945800792754692469467455366071394333464039422000085090322020689412387374575612351109125109844040989625507551496220822238453079376244761150133350341587473678216514658082151885160221380474583192919609886402220997685162794953625348949077643750718055331867797032786286873891526931865122195795480875854335658189675195759962337943815306248735752116468337475420829573474227104303560999263441619672772737532718296709373068060478963639309219894371861584345448591027891591325811627708119361749052872628114535920491302462133951843813032498823580036541611487529151703491637377909051342061728298195418466687006473996572367250989457090142306020861458395380804843058539459390322215024892319546614176980256647877976854310301481076023005571785385009970252587536379856336328531759877802659401590402852708776305607157253905701492506953527567110077961744431267629246594204317338274211193989836316946718617999116452723147509715998748781194069894867051103607190441257928930583013284987934875792878092901090108690203257024950082513220950488813214500709369399366778495461414504808715800285933908010307843053678575121505840972994968678067009960738722740291189497839778157241776428195187376905216608156873726358075429293505389110006040964208599884326284518025898796488990512790241441291825437902117720504350408762559366024265599072953456094541968174273773498664909658580831101374825966890411318738964118198277412418656181246020476930618474564979864892545641663516037507182306630431446166425700731675938098420100774120444969359505107777257818116798705666876878479848571008001374216501000903194093621402419794365449073821864437208320225374888888298513907796631016988477678167726294148066876552863952026818683863064961361508432283053456307145115198762185889278715026025053465254668587003134308270874592390091792201802955716701180511574494002531880487701550297115709908686700876057864195418096791665301732464244198553371175534077274637584574489986602004103178366620917690165076810954339645186925475811605801592741177836403467866430766402432725169882579406513676441456146735919665255630704478100195358978017712474263631362083123677526295524129233250005428279526087788387734131311730727937579670403053257638073604831991070090825900766838378553678368261366175742324665538809876466844549488730301900710049680833341507098920484805330363656671855931875759960276890594173338263330799519206297136254779431367284046814614307191645229712178073741409073417677940106620704574295006151441894894530540900587677753358966680665135381729375321550121139565768199156517415797025925625763417302931047760380141606372714748223044771113530707087233546203039160580460045819633037285770069497344373477188987026939708663941145954260616723184958561931447964726273353270518461182694292678105358445095295688002224175255506802069909615217074170403668554275888453246280797229180593267773313226406157668251089263804412513642435120595599835539638959384111905056816315421524885883456408203878963417363760402947876303054529677400067011757551527451402827248558874351091876016560492897620454706934193597409402083103112362952845205558163059755897198266177561963907185625436878805713540438277826290399916045526033751449223195349701323071108343864444341803289856486789676174650471351082926854990483789226195220176442995973420515280563692763128571053553775815577935110979477250285835688132930158895162979929818774663718495051543676306080010529139343435041431663910560237157955909754712774324366284697323976532923284266483074739819859991689790841109111990749292385910018714329137819066681582465029257237434657771525060227780515777061032850584112481867430158747814278401112477318758536254907818131164493265504496259485754495413364252377762057919563348303605806296216972529879242800552843869068875182221621480290346854834123950142958323387589649767443186311005732566392685099364773425645811848254721069919851129358682406856357050219471469601570719812117720850001336335190923176272484806954892335758804773808569534789588447791301896708172219526908242258788647385208848734954022535718911992930005022221447872209428658964704119707857240030058459925832444959873481014896444924712654229725483627344527822141873952300052251437378568641200087079467045018895683725207958097365791998418382580800125649281366377505254795260151518966082798492645456406570827166699202996806735498442519063449583015047072759141145858407631848709182108266580270909362697104966656416726272608550833939567294583744966985883606525920150993737869718965712197334303810922299376020493343905690223911481159763755171988938329381929094825801182190204744967913030649377704698027201110921108603279330743072006728003877519508637362748703665446989167309415281003463720702060199203479377427036165541170676521532957358551613418568157739405896149516541407601229819592645749845372739522096447243796991715166164911183393392989861511294169556479408112766783497591771786169877705991968882154017049782551995817928625383128187210120290416874586420790509466077277576031515164933162957188989339302043124196228169014139975330323630527433600602317498887125666042965363361695987889550072111867614570834876357528864179926039275273102295711368740272316699884694851020568071139383996474824130887881954636043090176894563959176973030469698361627235561675193493314962677563664767060018147024940177590331700794640298777828514503096511551649135061645834199854994365492688217034665419452007304365798616379047072819836396936497237463043483961336344599734776814729451355987406137531252275747704840380886063036200696419287984389082653184723748226181941069045165951280447475557777461903652069217576693269739919985154379415785982311635793889294585558519278341856847496741243579923463302823319295600303430761757288613163548243617790694596831635223090365278842587787849135268568201147780675371995278086122835656917480001519003098031698770416695443980178601881948938991552796671097347847242036871023482649079197395327210185783231910286283525882670337332987048998390219934334382205343241088203713169893752789972937098370093261989773000631725412954602695591467527960356350924549184635394574973485605171198354529639210522363625096540336699564004911267691820044519614873222876182366777763707043741459039645226436204496103304399974299057498300462523501861822436133235282142457534175408889256064523211287180248918352881769699455065319766978548505095117466925212598937132625881676044845767471890131999868914107843657630371578370495497343535217371378385292119130704198113525055423475100710747818209949364288442020014279907369745035052078427783160473131681495154619917321207446930382981160460927788269424035779625195846507148779630638493233283557618272949281567047197695317028471297189980691188289991743316245392517885278809387985276745105649331743186779477936389487009142862670326573428939037122569440323022978930621397512997534643429495776241760957238440293970010335423793190336938397785699215015826888777150322331328914423843750649982361773993953183748628679186556142543717187710686752919611732504168264334482000533247883550209139398252708027120811335568441549115034497975018957126871882374667993710364955835478248525508408615924868071416411786904159018183981817517801526098619099415157174545847466733377259781996150727469011467661020345338688698277667709401234587393829286272002482253445571402335171987875791147702283491931984569268812619452898865736453029529316026100895959665488188876319916909496054466179387260659901857567884546785795249249114898159786490202075546666307415216453185416928672121700032395544272781263881400267823340616721841336308353571433294257641738186894828308163290182558134839232661568301858361105761633306969268590116075835416492409733591852571829809400956424642358261474492201700467670972653241101529583664282841205787249020253434436456702572819259526159519919070653995713384384807358851355223062241139003248773447785838451194703669066681230964984448894687877341699197258106492377999775634452752453649133271600112309797751894356626379713431819649933518907754811442014830390507514455892960439094955707718894721810704616592578467572931796502699717555544384042293447906491774605992379307941990318653986954179780085175318978096115514091261193689716385631898199457161768764042989065004334633423402467453394453947012919798190660448412739376411443260964111539028433695422445772845562535479146971136802487907724642510062135759918570278761754748809996467092010127883938192622369354550648117652237679532054475640960508678825223814336310411343760781947097106616028713607621860046661171726508842927955860548399838063738699414012154817760968168606487562535892371073385815433032533691548222519587667016364994976951440652434478315486532172744642337806734656028288041059704377540323349925770633747506680581868165162105582586268076068522803555777060336121052666590059400784666121011126535975102198231081133271760258429473380072598504426628405210180311448241888866050231921097535815234006960766316185839914714030558323954495790844305708889656735746659048063131637681040837794742527624170901743787914467617195095104206269001491753656831242600510244493745543115593063339889254521639319467901623876999066756851741604081127804549052960378314045800118313323975228491454652716553744697496234029713820390297104808504237718533530711424496328222470945195111355324272284555076239964137861220870334530582539114391966298424614848739707403176680539176587096047041648851577600923928859186802210923621488750963534259316241477789717581215216102512837780081426079332677524221258743790272902072885901254002866003377675309053777284133905443068454793598512718535812873611541917291883173044836111559423034993841305288571040262378728363225980955792728897701519322260034065962621549264898485104837316769809175758106486417417565396511913793137047987104183448564856223617864617243764979694274126114935722116611514500375188663667778077563104868977922412029804212428311282543964894158008952861165914146900093984599806870893249524317421845690072753639694952612183478002046940078898085001972658009277029402234422332788877192586508437037845145776623523248208074506093403240224470384471851355761683242928857120091074536748316938694403841707159163938783220625580392953795252818852718864438620246558513019146929095021345741946182902240881096950109431590779090271422451386240045089921193999646891329988170477463744830376046842372009948645650087723669674760699461053545403077393414901766750508103086628281103276470355000176853197588021838492656660792946068831649406132188378287853006926059176549611298033130568676912896779040685878921080095722802163010490764817813782529362650853556755196104019122387281025483456715212364922785177158125603504796665687498291524008865214127945061384074058826615357884898390825749584034196324418304844748762501300953416358996038362119613304985602501013077446987662741358540709875759607000396639327194736178488264086436106549962447795932613659201772413499603008016942638818602522552884596491304145221065452665129808488463705724633419934967694432370538500443803058889972974239446535653339632216278394141199988899119670503392495261160660665844900778395778602233387057361491911764491874772103420852321725129837050967525713756691960400178921678977117900759313661142152038078779283582430205181130354043998419637819225513257914981441989860690995739917421644602102692980899656994720547609555371042335457098002694916308904825160286915961604704836387871860544899423156403210171324877059556187120644919900311547230883267622003040534973469913834458093675864586202312893917137933955934824647974416206560513292167944408438972629980460704742758242820664671050234094494916800925563323110774472785801846096036559818258022081919387333961295574190873287373959498533128124452772837138919251899171941256999375923586492582011251006504811457060413984436775250120729839504230861935951401070874776591894484322690840617284624393742778470086321840295688663887544930201104447859368312206001554291226356992359815001509462418511198888197832885219768695413672616784916113164240887192840994794642522307494535780038145863034909364986828451878473193569191745515450704946888291023011566371866135490827306499076153314228848678376072730560647263175487228297855848331757154353320444692019151396333914251946578439457181194406425253427853135190898793874008981176917042362309643893675435534756642229842499895023721327467891617872603824105615161221009642369088872650514743408386286209267722160043897173369185207036648575839411556659384692025189856409871527276791751790606008506181310139724876157279551733418770560042061959159374147347912011014581220529389522998319151334535318291038359438970185968868904952472867393548249220638293926049123585463251188712675237805591467928733735228012564739155952765973346098335796826703911860369419106899476936893979920457655353432775854609363182965301339945668320521611793520634461892550473984551888793166003732769009539322472726504242998133010292154482241616398121177170103864807068941139999582199832858736090510268073515181038205245531752365588263405533936993888182114713320601073335368084229352572544026489499864783747334576255884719975426493026953951603505626484061421259036057275446175655178567518528354176099783976763435441149880857952100667213359175098677693217074477532255386367348993386959435177286162440983880956645471274102015592808743934176285948283789875467420450405143639931253187808662386173819012103882589268823305917727544903412988630707254718729154484076666659608865616951750796289149971455055486832769224917793328106280672737529070531184892182370578107014104575192081260657277629757667356377273322273395772413632577296568854807966797632757038058740545775283527920635600627007617424120893797306295780298186391691723036378171840132124661774177410077024593561405994286110889112160868220232562591977395499725527658563634561752099225495363189709872042471682425122975924482949784683456677144236914121751749933704489979301224395846062275272737538146670101955794981083591860564425165002875352146005216429209929124459336799179141703358929849298172119311057425432217191565350510017549487084120767824741498004876982152478143635065739830614277026902066753681603875095204208522851027070809640900521580392813789002857371642030743918003075302019977979759354067258155124125738005985445789548524588835553741128365490529862390124444276635680241900461561197541762486180156795741419837615261390191239986240178936739785577306978093171945134404944752045507391241911360407484577687880237041529070048798987540736954506719518571327480118071207645139615126571984905962984723323644572763977504936148246095252066393797587275721801383798621229373231857069421284586495929670511858505731152333954730536843102066156468187352749524109129693960846673395701532788028766119920720319352492569413221195179466608218303468741774843261111838047000157999313522796164256254555231814945267586238952652908472186513097644912759181279385512674868219494624288763413844930233445760620953072927858977095278434040458085826496856596905908648995666805835496962876192876771607681297549896742123556191491433046037866188855973844693943415777144310987993381216191438788721863553352073707795650481210941720993115340659488860584689647402202104339238662185087043637134878805785070160570599795444812247826649946320784078546571429103437849433712132489536896306421764055198241711720311085090462182418204478755452477824353351112795933323179676417386878615952095733290533772137016663050091061496821839485625834248853503904471601907560255448925632119199725422267270304407938206031596549150204449166902346922036032360534335740637784615684504717873839289877181785377590594963297555652472528964463819250164128102222477823394430744009856210057411142934100052753329781578316700073287133432429930093420400665690679908830518969876785179783598908261256194528581069063213570227874357661795770427090262376081147951374696642827296278583543100515608051409438503824823515884462351403132090223546454644062575167906790264855846686884189075908572234756929676306907240942397780168075698768012993596919386729188643389825116967309792212862188938579978944962981717039014518784799044663706136751625893184277675516510541710523249568912555752020850740189724279054597253738124317486493702075659186870314669917321408483955847242905855989836542692367237053800809197251751418378063541916780369293153182081405384305497719609083818813416471223012430604725989613967429048003843662172920031345746196363150149492978199033768407291797366602176385792043000283183845625169443064232205269966677697570459006233546635885574961773729394929511480463094199116383461361428934734029165006847692256132138664512920422023425297897303051411231392559521415117583598876564982310980495154617486196464282955001458803863974522792257412135696658192632411420071995335344981388197144367205597082273920739670602960496082126987024967712294284667321658071134838367549786626062379489705264771066537719603588791354577502796261933309211478929249068676223839677154110153070766386079836269121050551423309673983530113718296983009294903773906966053886706268353835913557217325644320233665054802315251518087188412815748296372940155530917600107283248773690096634984658046629010126577683702871915586150138132404649913003614797710728444564326321905294278820642608456640239837480996507617708231054867722142547132975582165118859382354453068356528097242869467018583220836454005805577327463335486197636487488528984847734190819165316938164652045906698545286971729250215407095194088057008466143105910581695619141667628112894242815117896623665467567731689225653429756141883490496815495850647481570023770905998860260074785131423386087976060228903729612196317296088298714854871093932353975839558419090529162630930222920742050608806804291940365615473681285743718269698671002695575332061054557239445648687934708012787019571498070113203424870066525128050453662858228440294006877633919445820961003234878666643579741932625933966976844601646947309127350153865397670966249642458843693774650731891260699541081157136497688771169003700297569467514504305298408605690656867070147651384110223448346592614382922480011772761556192751413686789118472620114553077844512684916926810090265106644731818684856458179375803109018416499050766731340539022746227641329318048438090207576665753589254711612474720300571891107961676300306056989632962953953837261370579288816004835601314965599218115854415369884942598977123746827180292734510871335347697589796927427410334255034434115770066254170137506985140417396805470522417692212524998552516245106544925519259672185507244679007368734671312272661213789209622374681648803838514620047707946638039411239148617689240807113623367151258678745810679116630529277611494175846054143423274642798679930987067000699931686514559528929349196098567171222474181417299109443540876727728601841057255107824730413522676907994515043684494370016453191575713936296425999075942942226656640287440787086590240464237874263186852834468475477853604309882830319512073096874111469565594858268286826357056657928897339785612477655443220018998532275656041355611021925586883788515785171506336326245547094587526535185888224161460307038420386292144322047912595853146499301792467657297404002985790120664906318226043334103906372517332368005395403616926261500379222701983311873674406492919002235906824899153659191974424430659264079646786688176640390649989902292034443471022825322276592023673762796061702149960446048073672811738099573157902195212099677271799810160281420136102378067327059310708809584654556611448515836125735326645490193779534926071844510026188858159885106792237484300638920761339395599276615512534369029978721817729919369413558212265561554858178230501487993697254025194596816783990241928322437406143424291717701136457285372933982287261429198131002161171612897635494894581784920469417534294708745140019313351542975613186987884648665100553944786370434569104596896832318502375307466179853061652604876424561012630330942370999442370337659603817652221386652132079371390652443159747490405907338577350188088115781238541270343749521077223766670438738387066963940461490311505379732551529414511368239938711657554603384200330648937880851528446633903083009851926874827086239573774039511569667753575590451627139574650849655471646859061658876637213621151519314501478489132514126085169635639098698863024326255133382708272989297011056882007495010421876404816218232434295828050926885394975974923265574835853339831731946063633895946819466594632837005758318799854491808648507700975788340172087997279379428853098473699926623887054653715669879476453756473865673771215661867797683743153642818738084327430701514924329680108027819916509883134382155078371233110300459394173456798091528745795764210224773515697832791120577517347879259533999908668186224504879419218778497477255007825699618230185926375732998944018216121017076606908702357094233233845429123426782419870473609824821489651042521010971845641985473716329168541441201417233933953339118829678513575890876912434559049658280709483889630962797265110525023318381343298053218014779152110162483457264246915086194722814769775830740332292012088569382362561621426376406286183490654982388719381004953988533497879244454645540297091833270013631504762579457995022785038702282512522973181006376952692435619588080976545383683593072801772105007371343517673482768335605326434871850025496417652142732625670551191665644330457734506488017262311524327759218137116033580565454438861481705096978159912062719814535625172953467076857971499385540738072074001975384043397917863266342016369329746913082147758782225550679596713795360826849670066955717731013543560189220083926087406605559839254019880394502403889499508856219928440440192114823612678355569616691265620838048784646842501096177176630957477227188239139814654720834072027962080304668724582393666334225184251137444010778598889464830717992185812111215300162394050232593828445838800915819179977611850862335284163843320805463915193505330026459508237413682987232375925284974342336628294212333139056976861644173531490635220714392787699828999784688051259616115797013849722149281461505105447235999195414256962629432173166925596668249408679861481528243535117807581880816404536648207076353889808069949999806091625521522076424288125838711666592091087525025721847031451692877672181795719074258802127950668800915432586635786032570019005180924346108073397723143990173490222140088299463394509054812654020171103891128756350336227770920298735163953302271082168432772986102013351584877650057290227787954041320128801283827700931032048113151781760768713603753326760934433729956395004048221308104464959286076087407026298526481158335958000897343424024821041038198053008379892151707395545170727413910996970268703756748447361064233865318381755401094121071529199906919424607087464425256499443545148619713616680196686184173895116268719118552661836564489998187751474978406474314496149833551220557969847263216695292454613796755348269331262242195950656394290581038890087241468345249001540777930441908118008693387422171158020328904952347873470294462834128630151559510861023551119712515269143099427410975432134479152760274573395009057522283357251888252612114519215354747791218943859088597615768527969274732805432100605166973412105965951956431768972107876619308151563488055358608270249518019353844773421749544349231303296029174079697393367745689404308085134515050400052864185897658196655000435331467968935020770028492911656426145813211000637887012221390998488147358200472961393675352452122249741751855949244871611676516774826724435837744116412172505851741057487655115585551080566240122842310468849914474177731164761692820670859612637490727850230219906046953178057201962799122376337824310818274617122014442198165876820216691154199096119774043933626041488391251404722739900342139994750820096585845954232393230954995129906712369053787374872540799564751678844737971596510762041579118608259355323222167971517704684715501344566536815753575461376911102955798748190396411640243385566307083975827995884781546751585155460349028534292187182981070435722823224774476736999001091605932303994528264016899663150086625634856667654793234170573916999966111927347028135238559546346370534079199610471657733174150894465804924043911116054140442057280811133592651644703416872096633841370399739584431573224463053200331726608525464805764427238157229996438662325392624955503941950240953238710057677514884263824983843148967768536128806660799385549692173361783686269798611726279238963849373486215474008037387448615848021638359100782041776806821760889789587983874181404164260558308770103102148124046950534711622220095423560194162239428042979564829402429075441083160537643209222003602317525346052508293366191255270846607630323462202134183223399497509982175397604286608618604922276319001025306598627610694626658984701034073803185151886402404080803201672297886102999035571426148211762047020415149856969865254195222170355251525978852814681249365084523364358153794931939654901008028005657780127544771661355111567649377820693691751671492694514152024015073521761472108329853446294825311736741022069582401668272337709644161259946580418982666324307170563548625736753743809205872947061018238815443663148976629827304309429413336801692228438526604981231234703715116267379267816452934880544219849241935746144030564805514329229765462501808402129660035708061898328797543015146843963181921023654211810315047523350578762983487393774590092429441531948265499722880003171068979401480201366339657603145828890722980535651350742888834204442982150948627160677426511758446646055893434789706733601244700157367585443074281173931534258064289563433161674291937124564526859526175262798791717133628445264780053014475984342033870504619058012604617335044820768127626848738604876080775993700774940523695240295924424823719713265340316404432872973121285621420307517511948035368357080887067320670715928689028187377582184443196237421034832870872832693324861845415367628007354673990823680710140252072369143495040102070244732100617326927297018839209963900412485478006278882652444201692027616266979366541609288876096807306894335420731822475704433049729821704528340326736099345176134564131528274681274019052350861190128993408178917543072462569151155344124711183188661236234860713513646461620961564372743696800928833001875497610663162743734387116201051265432382898600776064296541075371718806423970966089865790668351767874583578776882771387154714682922033900464867909267605177558991905504107819913386581224608984309684521170600456357681823743591616760592356737138649924173095357719023011036085030669318816925175826976651367320450764833994293844138846498491117447768344885621160653241196113347431421519371027172658623822831267479440617888712598327217530824217213206431591912816332757568061194232132763675947546039781783440205636660328379322435120558875208184836316723320517046875145480624830136074946663047424444691752163954878482790026121838855466782900416157231528217003650646433580348470835649311869514137598126033691583146974243132427339065197166572229194708464459898428597187379536007923203099686672247437251861028080437911950075512654656417230418842101518913493047371408718715544372423687454486719824041170838327880522451754366921951901744682952784111412339793529747900963335816067824654203075775207171064294763754275080934534643092530231369594730313810534285617030258061281779768679522411117417440210886885888038029923208284931827376783007687077913067388056317060759073961156709088256975100940622707461711312223042836422619401685835350356949272856555506469063886809680354583617236016261457897372519003234389793980774268556944047776411946493784855092159175949897243136320241093358042138548556515052100315685305637821099073401736600705043863581237307387070583854296544923651400358385827261302136318076107386338860932083916885026283181673940313690170567653473953053822099924706099501325180354327778621545577710616928624318602803072796906675329787020144998626033728117895870305649946033354522155603249816926574381595838543400933234290132148411908425356478055906128910653789352934943686549714364552821181518298431500722625300696599882880418735801100815673250605491950081226742670050904081364562415430083670558892849261671385740581751833861254965077624321472161018030495716855608411883032818611094610180010923516688572024558028729072246323881134055916382497811528581692229595818844736828763838127775788917813809836771150755981947538218475508952044179762882741583575541180262648197275722143429750827518220744917687719759440906977376392472902939514158181146927213114117476940754819810087117545156573113393515404257592485928271662813628922831513643270525450495647717658190484522656618120904679218176015471950042831844930239082781932216128024248183891006759978378757622154522471470062285933548730865505075499089361337123856533651991403466550606681528357244980021331582676324523577056171200247963011041809825116475239755662570967662954584207258456660890925798529537701379369137083662332078103844669832923411563490687310004189238840761700222250658373006185000235439336313312019997322815212517145879536550841651340906548548420678783612438126465332170691391949064206306131726136433452351558015303875501560769707586122319970518969756385389678093217840839523590264023926002791922345088519844075858808086772824209965340588839267375406649277474581544612978921513927671142537244293773361285513392231678133685192317602049239376746138928728700021953755682511755283184925919713503119963297630158133141468101329955885484449142231710498663396193140475210249752944527580963128182361409889750377074020462572353990780806685856465107159507452854102509301222159697694759305382923393349619587819229681698347062473556286737224007581067238615743107542901975638280498894988437422863137699864544266696000794114942664819261276470826830556070294515250850380838002563305957896573521791323757760793415822107519109406228616597298729293392575363427710035779741763828900184925022555918781855174880279865614406779304990007000480059308775603758407252247683787364927437876691031262247555217582203513194071940305423852448391849160687273667888692043357681856020834264776471256829249957206267253877672711426681358483509710411327908466269106340770689836960287415394107058651030521325252576401755255827281595229715887995329894160972950106972337434893189864245317814191558937328179395218615714188542704686263592325997735139118608487186561926180972379896092535210598976898378656032075166633525940464178647140159440739003028065114306047025987097022721923648089180870369267972325680727407356339410587305846011763423813166427390281626202934975958600172346696765208400644233485924563817433504890648428306520619464917561899002246236617740695212911654104419809950923923008125456160066580953835047948502921406732967529930749178237846944160773041346144430522407987440029303491464580833894579175963125205888329029540462442840309364806069272683460901886621538749774763852406147849904233717031525360084363738900343183957947376161561089992273404196279080876555628367570732008503659889642738356970040381079915048590078706396255138029727300559100365687228972535853736810800978896247842930042066298330985317393353206366920014851123142945340842092089602039453585299299926478445073706968886253708623065899556162030206244309231849778703930729322335708341984091104105107200870348175559166698094435101697903598640284944353563021793149578054209239539866756245144355372185680769067528032666310036673553194634715653362991182353630202001462540648443328693147663128574781089064984619785438332071568752248177229920691898569666738639852891978801547613810538318182372229352181655230632626276932848521376558897376423241622423590370199621597233535886437339943867091441321348013173779384446291339306660959921208093724986985683619447227511604862195731273510640292097062929041260664158868007085826592719987286174082785935582504023287364749327468689201210421971173218947335944368140653052807625655277754323944780753743250734271499906764086547186143808725415911797915844924522706875300299384358725390409797754749358389350310598651527990101809227210245605653867226183697702813947882853035192271620945267350578738249305170366959768531750165349012132223380173352562555610977015691793096866832576024846046057290345439398883612591991114365794933038129038844818504002275388894801623036186556284504657999380416954675310194097792822334754199176047970808143266293355714036549548349282887752602831700061415107761830441845598484933949935685491075159983559914459037360950141332478269931069840681117498635200480250163267692475284089153419352683140091219758756563765386476581678983232141954656124635642640928291395812635355245024235457249253796228661443654756693483572904604881580184386124475869429190269500052050230395533007137303860058353184480475671400213525984538997923134038424898088096147709271089608865366322009451668079339034705099539172660119425582765541231225654732847086383253036985365545671576765978089305377700617546002394542499809264830378734617965641313852231469367850584091229603289169369293858283632933537210464303603689813597373630895841011704918417345098904718170705527548351610119113263050443426027891864347897246791162920206285025891760521036815124707347874673948375872689191225398652438477151648376454252490094361981766975695980873710583035414212956041819009567817708132391021107330794704236664115685545147661235857586504495245692545390631911215632048455385076497465541204182657145783517289980628368105552891320532704098749693294209099042315074846956050558348690705467438567063183037450228257280180588614997961797259166634208519710854311333276981423377958403717794658429113919609185214824534544724617284359690399853467809295488392328274828875467513549180289640316645049023311564351682190086478409493379719910161766526972967959874902010252089982741090988952548790346437897712796994813225546768571236296404764887970279965895979481069328008779903619406412717751044102381849074123833207277313336454045631779367408297255845669599460635678898645479844891309612986588319484019271957302110772473140263233639605276719895102035651660309782859143170882270193197197009101005509186279889965597859173945308362087054702197009039771130723695263539549705719911883372694673131256540890797397664038206149068638174177062676818099241320558322292753143466172955790172448616830224941101215750643234084116361346888765394905893985111030065785330553246318325473578146363923064346146539768272414039196234160255903750206804219494956015629520610081763926596461532493625410696174983845818095409213528212752270294682608200623988327025935673929405492660875856112410573051737317708115701302307453618687171625953372558347348891152319488548835712467247345161311607739297133330921772936994639322906102102035707159953593163966345133938607871546853639891887243197288218941257925352156746614658040982837366122254262465247712113074049204714295657237186645369157160268941566158228506338808126992616361705662748744081088195917641915782221538854424604499933369112277503870423760974592531709656318827575793685403752412944134259678939016575114143222735272996927496921395927546014283736021009846941237179481766875666653265621400845328815687811050107810654470274797772441216217764868470340198239337961998065474676364887433284953346800631879942553510249747755192621508082195954997223545519861065621891258912584769418937129013174313421216938534521699059063131346537866417730702639234631619225358983259861142373444717368815905308922156389200619424757881782726958823262586104645538800195464854677004956657105396269226986274027989522675033851594475818304024749209277934402246842785402360737133550466630625482777071708096828802682661644337388135048108613105850213743076973832909662447524620656180630444777157192416390023467390461452351861185478110507041763733550292218906310014883764729451248906104559539244190327819028359222536193028473367991647048776494914207197462105865996917118215881071201925968183555759511552425344493787422514056149361538795174069176352620949058193809992683185280593912090330695163570258349016283994416352864301022844047441605336602134621563945571896277313673462204688550951517196373696900675771781623862871704387258703230647801051945075844375084699108338162175423548864175840887842873619164705995860695498933481189423815571938525983851317675752268293673024099901505812268168877180697770829841197841611993025622781896137317880037431597408960353652905821033874563781463318566591861782790154244316693316070699632096358296513860936025825588161000654949148002754175013458857916007564010792603522720592992754759609377067800713733250806705062360840227182616514385129784351836211344152799402481779614902083522598909219955873870773555183702578585422690762977957498107989885668950991503778594848432032502828971393875365443098645728488780289644698388139028583201044787181767285010063134580509427185050733472893153188500184228759479473175265736430636675012567317101313494115047110485234132152669087971251024063547147785027308246063268383344899039513696885317969111631787969419902637762571995341457595856779000929479676721882298207868805910260507251748715538718019976306539005814684811218660895614873883490467994578563834709757351511131935220037966346382785626956593181895092197035478138232926415823607606904325968198004545403557850946791448230736517663114428471685471976500396795914402431040313556512884762059495830103052803672926417926288582232328743675762280171690111876786413924049700160164559826762964266772214180868326018349639092926267614286856370385686580870837650837621232378644384850111725476765387178387713190171608820526758301728316829254671102748692991809701649142140596481855398405082259563013746028873687665911152089179257639481174079946873983884663468758476913069259716101882161548576916715154142771633743699999083867926225977607423425660377429737993024450578617864264489143085618997462579724047490692922157239833858891375146319397857067477514650127923852084535515027109147042345413932332248732911022071284760894150053262933425802833866096368731009465049198432001711227890147651287342749572047946635523108342934516264454345649360665806849345618199629915982211874289460302312085117135603994480813351741596410205032279332491783787979346475329754099085758941207727145932417623279707460808764716569276173961173688477069489426509782369636544784756286852405565787790978468990933164216592339372455354064514582323953578030092523121529463333439416562878990640366249725492138055185510868755543314261664675602578535325555685441971328576495670333174720024084425021972777217099929559043928172782965063420677719970932829587740307620450642823072729423639311200007917390186762004582713492144933516131023039778623573692373449700025022791391521821248470826103755100981418191674929692470693679879547907007774097759123786675262378354007879454745055345400453926032266239301271903476481044672823556694544904378535820645603986122969469576293644333810434791899213713161027512070265247028806165369325972176163171609579578476167421425909814238920105892541534125895414700756590724303711569478154724536245107256680363481501435322867854130613689202458628755633569585642125858107578765328693886092888613178207243848967751653249387572814077923216146696195760538319725650355992506720731282232471789833373224746580049682858311243839866392807554812837258130682319966598251461354706240416559329032037527377433162391442443944874017288056126707955852268178031541029364453893157360918063190226677153856014912527625490422725466531264063918148736355940039562147973534533767104448810719634752466308464929254675384389673813441653100869681181708876217247809665579149067408186458797004857515439006654768804768483188386076814485871974763566189546680227781095617157481102479770451791196706762001351988746113927849293088702904413602589896277606340135270874520024198638719025363238579502488060115928633461326103592086757675337513111018123639140654478912567271281492137107422606740756421499254711356501326172353514719814368049107918178248206743348449856045424378058136122401296687702973012953038348328915224208948472364626677981031650540671855451055718709789604790381760108602307793521747268199109777399730956528373315742823022391472875999345869431145492381415140523989852183665042266720053184245821336647993659422386733879839741623165811448157353942506875933456001348979624847102958626064827396910173843722033064341443323006130714780048486897912438174645450127034824329139900076225829018277755338088900981448339394272099741642979996547535403619164994010431199410215009859578523721505395207154439927686437045338502544758166448301475460789817837514719531289701382370047477409396522480889627608693033310183102353184179795278754616783367032282828830804965761873555715905578846370452324960254797230268245222688446370595838917719627098582820907125421974180978182846134726071992783170987082562669801864802051529265570738677587054524857960950849539226469656511643871509221206196290189262722915538579363452051388258416771715352890168356849777289832725632166219398098845880384145677140205978465233917882491532697634108828133782793637795464731508932410197594946082907018923729528660052395292184076462656596976387646892127516417359384349452434555167524207855030366377659394394948490970298171529281057896825294033702530827372861897131978624361687607516012927062823008491325348892423686138159646003525319632310973015477127602049347516051009242100372820265013826944415440476972970097876822018065301674904403874134206613318764543902808943920652338450910442920735860800208244795477806733754615158344008962123506731700020272290021151252795756005812007969916744461210755339201824108401428849918228020676087879954932792675592322919473877117890112484648412986328232938183235701776300161328431386954518034886443949630773365286055756029002900216513430257726304968070153170125981806643984273230007170658428013452238711069744138641746588952942280409215070996000598938294757273848144099140945380898780161169492648236817020897365649413730069795172871357711329910105706640114499306331167332544565489450136279048971053299711170181313913628369044300905210188859319750411394275746400656412292530123751155036011645619909592780086991070254315765539215381154370126330078843211055447875176298879201175480349592905037877123036672405663308500262052713897533354666245539944875506340531258781010802503397582069853717929357161357825835311113925147188374429458158808884158770816545373251602072588875043422775644497466872027816069123935113493954011561088229521126232700031486441128720845552752128938761557360280672773612131840698844028726228602684217304009359996338711276697603612989990125818570822160577177604497206745985674653308446849323239457775597872290307417905142345752669363072042141035665077192234105175693291970658843969429644786988300058935236329570234800642347170068201536885551564046687646300583093520428506432496133530070645349290205102150529750795592556330627360240720667745584294350098443411600053901934990383947948376849435152676863822569156793130553211883027847236382646408331221908667554406910678272773813017001569244024924101662450794814216640658419379313197437934454142401257590683349994712087462596101374579252080931888208349355774239502210472226091718045763306999245059921413794782221304243506105892359091154505723577988846237645928893626076469249922898194783998960479294838846412783678969223832325161293379497129081876756894067747347396936673967031592941729147045852373142329004777743121285128345188915696189279112427342018537781870482316289003986487293264178710764163334054703833915142746826883296146650104432108132678341961293230846664452501135631842554617620948551153685525791373327854097795165231555214349432691550537710880961082182269471670521573841425932881642568974509551523793562279388511350975960521613536293395530563703506177142054649980611522290168649491341677066439747040025134388843305323516536832429045093611608925970940414935714832715568824782270301899403489232597156944227527607407370524313032388950510001134079506746649578336042899183618938542735873970908620003682557082551013319661147635309591188493620191735330417711754225169848520468464251383826818079209660504603529634073057568589960891773204310413465783666400274741243151310957058490372410186864193911024695125822349869486614213264424958231474998866458414377562351932469514869420767567869648805093038140893187789961657189449979114916161262661397645540740119838039188280567288382076222516649798008398050183992899808340644405059323311469272006219537344092582022967606358548289921579052558963600719088031152303121866081750145848558051184935628998885478612418514111673152927402501920942053174457143396336054259806004215512286998181137144730556625901087436909889436935518296487313058352043051547670402353090093585389800938878776578446800385808920470277373186758876521814487483997772641848688392676167554070965771172126181577660443015385178504127370359870574892873809032976325905460331165449594654206999197638041803938779736372564623205501350803940806565048638956221135492904946635311651425467107380853265988945583296951065341473417958712621111187933201341320125435965816330538078528439326741652046752001265656367190803540572594464320141075144307672438044645251890539307934869854851694430223492758619354690244893371603614105296081963822446854978880724992403617589880991782725602867779767873854582806827421237524484306840177414884387554956624553002529049737257183695122246899952722212585772130309834832055930031392215479424511310205398245118194471362298727936624524220298899356751030502993242131004024915379070838877620056729375830819312711589210888380788322592741915524419504670891391394061048815878519263537183498488383232477300427174269107163497119121362908374431617159677409285566881974152771497855816134428076876723719743342390445294088324060210308526354930558438665727480553317098683726506889962254259238115487126589714328214693274618409076111982450723669276610499794296972254863258797011012761168149855168241585211610188316649340904942024994990192180913945561294822955320741785966599601201338360355561635922737795730301468015068650132230859855590126486259503143007600503264592981953728927458198966436580594633115626929562058544840822269971056539076494331023465142741536894384846124290339740650461070515286486868200569111003591223624563275178107738655512576157025975238360496075306213326670251449681124751901085873469518103021153206949970159850025200516766885262089312989140559724853400004793875858189806212908056527313647164652054982777318161621911544695402466294154579482059119682334723110715910010044843121772220621893940390808308676813464270520982304420335914145401604561846741895933459359924329692819084655758147464578230880944421196380663784891898699352040239485604886876804534955594017925510041108555999952365265319645830977871443129459607813514207014079083303489014823408586842514107440767644282765017667504099573741761915747326540097550624064211939729182835186412064712606636054817767164195230546970356026894291731676737879828662350593470994524804861840195079418502851801625281569011536830820905759442639388037214832295186734808457433450720711987416640994454910655575078108547947777018753768317624725952254433423724697426001435667813694925649640671156682079809446505719338719965529823622252952200660896877804166759908819559235406907884484389719670280745692561241582284330195781229578358120900113412071327098745751370438893788115449690902569816976515576830855681450716221238503134272168416100484016937572131119412166971324460583716356640897320327292986015282124944318418817479035014739135043984060995844976322874677810874087340047445622941333998409789365729032293920560128019865687060117086196169436060144518152306115613724934897004439565046551965261525170574467713790047748671772684205389068115380359025716611851787697561267848359283522378089141151551809773613294985692426638449877080133530719221677698950351170639184784965253774042350996744958953239460973572350780829200518731393658586848498970106777305616520108626330896946572858254367829489832139457826273283900149678384290856240731636535552719480677854396674949735535035700423568969609280077451090286850844677263894011495879702948334184452504006187601199375555539444772829691318931087669922392730158054558451642350214110937179532334957179103024406091890001604662626851216450994487963456925157417673243218331187644014740699148094314964057444673423511209397713695479013336652240238113109588881811916413960910703695442381904855447305928518891010552902813099205547909745288357406405116648115010807326037199103157533903637546954646510881735572937952539429807136634694656881753169264809697154814965118127530609705122697761003100692714157918550516562725920781414969848861888958509929519748223420783900894339484307639127511856005523234311774658131573903230963009216119917683417239857385295061360871673407324054785378123088030629484345977758560860305650578606089743722553859894533895873344142486796623395027885636168511940488084520353923348657321982287918261063612472725202291255634419228599496708360461018221194769810462514235208800226660542949867439459906309459709525169576942493022465922480080772453020810185200344269700602468448526853991366931075082103064031575846412623396870918058198211780820378118239906640522106204600911374512761473893986325641958982779962269074279189814040736619078636752346103679323110292990163629702292168519554377787499851054129176006974700045097697917549526604030767825445287291258879094265963421918726314660317028428246345038345220473446474969472520718849044233490540853106829323981106119162839083665140970270789457241177755124377267636760124987142138501148860728682941308050748101465899105307679002605685144194637458413027570197253394072535919593806777532885015029846515542882616981264853910448505321853682344801296167353566647845200026248086064430053216921875373065874425401225760694710142889601720530623684722220078348649549789361040257538626497558826476697940275882547912912888714477536673239172724551642018551017778661594024825640348247186405551098506904389548690401763140400351966201224151629470168229598686337970490165983301281101297319085507365268545134680706009698152591828481060095782531178173242284617793095163861091094716014174981667122866934797821535703319004401398259936740197910726240496829110726478224999151968796103544342524291317072059815137628236413322284244468782629456650816839420561132076290682816067229050296360042281769566552710651649132907333515524701140883315701483153951593414303705528196060049276506225508030350088314651069433361062856487150184459893264789174120313005319617502391209911230717514229547952424746699031126370657117372056026777635528471312033574196983458601249617188363454040535402691758914860631569927357873081760907637850665882479524876848959310732422100633659911042814550093253001319633864369373212875115240533282776372087087468285511187424067728664931382264155316668181322366301616011337210701195748583429550316754264509385449812399484452053012452241473575245770459659915110611396144472030593566579450782734028711967421982333332280448266042359164589641476475533200557216187741303747811601543912498192973332524475034770994638314499544360566080619938503856227189776354746940267247012166407701091811623303603059005328898656850886710101374758100520888685994983065286972388599648987612822793865484650439512790065810013654281238276396638746943797450373900129353883849940471168166847569787954330168357629805660852786854026985364110705981666243273644839341173510593450683039105104433279642160884676217800368665940359069418768340643690915345928052437967904789027108916510277691583743019296700304673800473278872864827163998352170770677212678178372069550359634430037857843816154402390325350817407938593584068812211251087895584381777619909519218410316062836212397733736164960079432415722571176065625944609300307860017502612371244737843299997710808152087111186994031790754346735181442048973203108589651374473390459214159968757119025112438848118756516354082292723575903346688579663211829057868473256934118943951973142952689237431306588333508063372998887593666510349940067690155988814700215678693843667703840273574108833023566480565415341377200567867901202184980564638693289434873394616924308866964548537811729741953280190676243465195634166570655165073269234220953551171579369977921203962691952494155131425938039756186290447809365191542868624713915443909528995826635617444275907981106184480027903338620229597075659946980857537759539111600424329815972426067855565103388677607427671142352215078006504819375651511896106680195941912319263425160068197212248443389101977208169540734923846733924784917165921825977385890604322947500944892813875451804074874340395261040795909420382218738534788375248640247603596294191523347275793179212432942215339558084152303800758895207672647390561834063235334974204381620059381086000272151886216839022943894583034196457533361958660188804873082459039016953769268017860002190787455397746937063950145549165119682429140123056779897749954048635732165121363028043655687128820314038862370902925577783025960109789076133184663105642555749788713568038860815482632559923772284072715156905565278624736335679956843400281326561534745148309107621034042847443957261084277638147887227720293017331652973567709961443329303662137994364844364764620558049688522683351695120474865992516772117821931250614083695031839005960651763481682531568427835028248652761825472263803777557122691651681661683841578720886707921369967648243731008624973662544898044558858437520354284921139582115679803823055780953521679466822855891107513203480980031460338807090229411057395799938397139957780787094760774541488010633408155099357475432889696749527376294765213156348779877540365447291187463077239100717113469519351539581725817245886569228097375070856344848417758203156147756511732729226099021115721731093162312246793733506586800710884367576182289420498704600407476542770059107441155834642869194743195882887327910002702424539575138669076419318993669007598560722513815133393509949442748366673853403196707820051711585937511055107965937993404483452798706978324129339408925523378542415653007620668903302756509974489486726600076396986401879989038030541090814694046742907493770827344147380828370590721720396070773976104227920509719764511152113145421192017851912421958808849522203276200824543982258081629815714529586871086789667401118129062926497588582577443354140049681701562599407365903275464996739657869035436982088114263461639768084815242121512894907857625800236860401576951913077291376556868076093245358165412028621282880996430933035679053861136776191556070927631933348036057824605911284100340550969101826220028498166734304974216296204210914948415580160497445106087632529209813287943214788347988467423773608925024183929525424926487529339327509377792127041848704429172710160802764749277827088160117165272075574443086460642930812442732902420697805087009388126474322551927036470965608556070158315417592886920027935016373415873809609616709720997606389946622839808210144453050422582510853124559265019810142273215459118744785335826810775561524281140397487010579034294579676437314171436498567915421153893880028727619203608373317380023132406002744767174211993090972129265154431959835163594719516934084206693757009578924250901747453696541258242558610436949184912199649981175873551879916432792091669085338636066779480026146941618302605085730618175447457478422689425562205004818731224461487261329054675871243032491420157234903988656612520059826476798938867083435174965703077636578699968544491708415472049231933871111916121681990966384618588092239684779368334874686629915158234653462917321074986600786658246085003345652336140750520412566885074622758128967800435990725988022202184471579577104112009280190020610234768467897795668854903917899716994125879653472183775901960079786078182263792011303727257730979844296660967094438522380199122582488329156475691463405531343053490856060761716404555128352579372858754449760235789098826792664671706529678167775111840328877306212092222355059721957104792399652695446954297729318992510723108884743414729311238386435216417713516867929795600714990124055772986390407612192317566173054394552211817004956234199570572503064821066617826002797515974472299861887408858220081589235718962654681034756710055813741687314962499564083901096745746822319613205539100725819991576372824088287113117929444956092158479868683202568448753869218468824587660740099364117493543839894928033647994901514152052013686266419555668406285354613264948756929887961349394379033968683050039894208134158681441569439006613913666286357004578091830729690943829692001338613966887337918638554332991396316230759056604440795769232202443692304208422826489015661142876503126710313574957887463078411624986415653871065124557977237998290170387933769375754107380184000903785861582899350550572446694513711055146862190771894931242077860266201337078234087940172270756949746433305326047832158589760036596790510596753915170263957546672494460849146467596333198146723772170973888676177831992271125607107209024547069138424028701587683189229601849848942438184726068472000457823254570784343707524172202168918049979630196670117928076377793777087067909314729475466897522918221806276092776415783270833477018660108306122485581374984695094647126936919931393945348063680660230743816193645679786792253875935225211981605145257849553183039799772884574409167076817224195773951331603779266224430089091859245804168357669185564798436913406314321899450275115493468629300122678203212686207965074839050322568019533063685894180853065506184231146272885568558945582131652472662924289391907094619183384422846723567913014043843769706842419567280270227482915371401214694585991416562623020611445341434088497979149503781892918097719181502966648437021879971297593779292941990264722384745545949721775088318017527121277012727068048611229028098566501246109222108466876080519317465294125214119254022280321380108672479547877302220048909165163319533699469543283262261558851918891079426973541090506119067556466746338396817422879730558225832895346389306783139697956324203843061803971378006408824334252866407373946281652540104884324691072745665954407539570436381564964170259300332237572977300348551462327857386642090494893978990938227885502469615124189591327596277576917666291151795462782300649811048440687844385298641604236457662424127692757873392711623080414511546652029536534129414842204942250471776466052030362719970289167628621116336736338283725573625750685127179307669892019859552373517343637869367696696394587297992592297514006742030861937888124261724884392917297350762207813954589059897748439928853282356115213157636226210003114722402663167465429909891347689286052175479334846488880321851276650551284126428344272945389492057967714211290890671590007532314344543327632837777468467227837555459744705823364856534366834590318381858173719401698181716053413965287164228108162046154140481114667615626308265034640808346329163555422598060456061273680167804783870384154611904771272911529321337430698622146120910773169173104837834365071179951727098031195010611197746026264721495143074186650847643189532151742970942887461373772368301159544998338485421810338350590642373033228899571811506245918392303835288019095409083336165155591047732374119416839186234639733687428284237242337443711999223263400515234376718800865362290617919106880827332126841116577482511292058382100371840026971316790755123107173794898489887317173158666906470576740467577088010514900106152689554098023861425435893160972232759517665479070669940371249056412619544972706280402709331802692268979638623166117972932776499023319230493163041445835850333015955299884137022250914427175170568357652995355362243830895465617026185166233000212277184679187261727118979324709698890920383534932390715940055132585380994634722136334359846703734681901554329921964370164270077171036548712476305579599529529723579043565407156858864086709557044094635865626052053687902425121066178538578631878849583970910124289238448508486548112667892674571171708730473480677580736681908431080626171158869702597269198672208780651910323356367342297751484951923385037941143981383629896717625184770771583362016314135379682416492420252640921464058908036426212939346877878133280079746846486453410448506759672279000410690771053762788051012548675288966135432218657669177200686795334023277372410860348410747356159886875750097509225493307635433337456542372969041230497686469674939041533032107806722382382295523731001320220292172151320389890285644316180923864031340429429108724286277140820086322467003110046836859990929141459916701725974736624886582212378221002904213726366259574703873114825587199015556793841912393215531851074213843022261750898105298554954685454804978184644567691795199878360675763938318800543925674010833510790566265280939771626715338765996207746237212379115473119709776544077631769644838095716926088350671302519667539403749646368747793674603821209915266865430795434531585327481702988639733286287076699938268180860416864178601784197992417338100719153130632226525175321685475156733128806419634628913465530285451788958331117642905991835389010114634126092430794373714653336642110076115095157078417666291351813709840003963959755861357287506741979883381113841822932157124111849099892607812894510830337378749084584894200852272811552267818989593703025417260859388565301226196975604862100452724600313173538045148590165172108114856825650822130771640486547746026855884223718539561471686180260082869658627169836412691282548330616566509200680483929340405685845046201953041818895846945332813443324465946874074853458160513234444224862656713358886203394052346321948989213362838499074261139510092971996182590781528280449888487350966007399013639103510649220991853503245916628429341470808509772853862602020148173299220685883274384946587059402425118921150941675661103296757775274278922682561772631404412702155553794544621610063272988976647662120974972241533459081230873417645870573284954798606902601970272130052745652629103430792952432606286086055342376257699749614640246222153801068687041480900682022732468293006602046364832871617522145362658098520049720842959307488203413091714222847888384107410048463396296221651277551464322622219881123276954615290777454749144673601785850067511375978439981069822732580896808894603122732319166579735484202847486824540296020870890050561510809427817723257462397958224421483830938947681773186656255091966950471352594568320822726641893571436676521558282668302948714314507858932844638175784699604873222085698952085068477612478298597404302886055182465469223652369786125498981809147837315551782720988488864153161804204241113051452484331827692569915342816426189132747307392823362296620282171423412797571759202008499466874758450307723861039299231623671682772284638363395764747434573245990279080848458883969047949458684448871151981575179250744378418255638907764137157642976146709221629409799510798208342786345343542638285895875659731217994973369662112044853935164700177202602426152197847359335377455802618148337335017900327940063466708398695142420753354444368892214028197351847014367334973656992499351903175008393392985288679189731566098078580467412868065645901567532035002859953541610166232571341505433589140039713865739144113409144822001741499108505857597902442154634545141269335940726972184048462744409189560068325732546310030846286678103262739972347404948397114413031542427083742986161682593762143416821364482807024611974692681241795824639813666271814902796460812221810000033125573639479427271814076504015330351196821547728652703309224916343016320611737393685653227586039871125284229654803177733548148832330485928501275297478552339004272325669203144328920314322049955486863749520375792347385955163657943539573568470678280325934283131015648159848111456685051254312109615482035321769132878744896538519185203424187137516104039250167620795081243756860722541873198151471457678647468759920756336947717062925310308632344098251879789909095645429471458141042319500574800439159043744805305244033405416560297579254328530315072916209556908469781357310937715905988295528833379090038622493976646845704111422693312889970903520932711924134302211135708872657759002241370668576187573185264062521208899710198398038668024762557131023719843315196787833428233684690796860280876684276228866271275808273602672089778165204411182736293606513281606985755994443741739481769970320883310148427915951752220543150732246035253614988602304630940429525075179063608039594592357446231748834150070418747393295932992082611101960961911699231650060918991529863912819819501643598347760399516530579060578271822055608414400812362722843548713340716470567583959298571358729049738388727865203388813524807001972405238533943022683022922028105821777859778521877023354807301821139289602280171990455387276117503390308459512836070633861010854830678181150379529819053193481921105579171106128337989754632857318057384582565227310235738539172011430155838782927086552936935099630743312821175100069222682673128556295860969195387011000324281676249718102376779626622662719095811541979908686034506998245227431853528294862495326190759323129154919602412182817272865935841422046560704844519847591996640424400874892287724468037374479470339556172037051890867267376941958792851797005014796171905146684958038436809541028045071257935669930017324803200980376394865511576885504095783734081020022153983801166539914566214357697543098835220371428598055401279018147385145566194914815403922662451645800874002964800034930822566003125553685836509674497990447565591312967148176980449652986265208368292721276515280522167883968835254343155571281325758232275514267320764390738378018273373100734137084285299680143751309375072876523593316589459557643005373390353084554684860717724440342687556305332944970873667313223682230752194648567907004591910107889840993763361909200329940509762259196687535281270862327036165745329059799836608588817762197675455502735687348119819476988522198806812181627005337080470491798653023839944245410654792764412166279146187399616869000907153918310250992671272492717659972526411094290322840721480103530017754782423413502407009210984930857676991083251901181596719467556092431116373459531858518764364717538859107608405068780065187804483641911023167664239141089790896364629290905905848808271889929798255906977989610789653287648446630429764395780001802412572821424547356156511707712872110737456695166061262426706329747708788819469897544138134890430030292534481877294814171147080074934258202334515727854509337496789243633188894683116146869699876220434108585351207498488604594020826097328607743183620749877619968968893179925761387406321704813068572261560841995790398646735113890940843670603367556535242774589769891548587900652902438839298452702323613889136898358260980640259649972250254206005317929532442047557653132884360431741621900284710043318482784937141435165443048764896156828861442427776439673049815677404458983631306758529462468164361549116152278179420435591135804327427595813812220899448337205038874077248124578723905055989896814222609000351165929300150423724703275953520855664267292456770285516947332947843007171498437211858433868680041175680252560630556679265295479180346907285244178259445140555814266122251176815654742411769268659677189014982389435733453152778055102218495280264598157624269465041117001499557498153543347085851711692313650359081548853224873500123932253023808699016738676978251376381110587921915694763135380663138440533270078261831652853148743609471164999767403507605190140425507928163004438170502006794469592551844961835117098594607882413314364462011318665914622440970977396207426049965124248020238831290528458797931629714630331004829976606663427235499723323058344599951894577316793209664707645143405991942116202185716451659003790817870263608179458115403888037053634134414065185798629487514825552934986990829073147526402298128608172126797315320769395061672649887100084731809548368056736847558063347285294847317144521850775033573114465171414318881182557020501647893421802891223183001150880470533053828453268380189134906972311347056501819474916942853713278259100900580776248010511378872080442296553402273536647013590064210144505303186670023090736130382394943780187521402204045113922214787794885924503263698344918156476597085913835827428167538208121799945535853896651438610235677821991449623335307206956691884102173300070957718985873538533712964053985916303947804217694397599282188310460639688090128867977544555263892648567516761163996840131975199148481855203152790658318599725772836357018823717185519229752133795009491535781427778008308853091589371843586975972751427393778607146651002969369107153015512910355639253410645830082739156290095549915376161315885358247956141902801009571466909629231543006467033620251703741761050350831255427717047756768168916933467299887879703000234009228275015921167899364854378990538381558282755354859553875124001965175229332324308128461327863226568127708947240402089458107807493834564920640412217394918537267995441883254103301949978050746565971963379443651195893903299750244888659360951370125188083947121150948855109636306693030988676152066844023219284830781136218603550612522000152813291555538525866088496026178779360276979877533124392860112693458075630115694777777306223530403995536023382133616696337196834044170775741153514072707701510170734422635911548397233776822915888366839559127776413327790621094139745220968144105571366183567065438059841351548142378648544887371643584430639186024028257354908079861168312455118488937551211752060475633779397640058695085035951231873826871530399041327504537030137018539029829185314412545603459918347166583937171979600019798780107010723721202856518272961410275096986493077745762817565549443774377188516854497615496128486492806910391200573340856953820797109166099590700941442696717505826201431348864769064363767004803363788832200440118066467296263620695422915141141541971737059066353992288984958192953724590363727942400305069756697544851121759139492834904004842605960594852955777669527094767452140944124803422851608168954727498567841276320050680430922262275984580767068417195184543098527207200187509203628625934722270083421898742951481621731928388491059877068541779761732475887462296160641243630453120365335923942673026954252796231849514934387536690026683590470891090003258745775011327900622629774669810117759616151272540150707919572842571203278333968066544454582730643435142559554214138269052006279332041957382484420015980762935420836987080911517565267014487582541260129722552693957219653875873075135509576001106263250342176143378637478620296712404364648729991347771068811806712205758425740919944544918572514505611475279162890738801564670128316212858707104910331093583257538157566295717500735506155878815405494966745571569190486154045555490967371879438954635610869430707041718515180721793632057629408966751164035415310653763524540614456114390699257629043852105071243130267625775360488407009645354747875164398325297865042643968458126269832265983375543159622819414300323228629823504128160076046607586764443961574975006577651384562006754263342439718177237431019922919232060789322566615087514289497131501322485701240801192317321708879021497424876274509627769596699467297175334493005927815832968300870522733831134168456343718369260693412000555607012711463126353284779012984215718121796077489049910136212295516277585774151445395298637127051375083137083568994133198069298807562959612450559885676537200951425719559030860521402040385334159067453432108183628344994191649577839117171984251103742592375212688424187988329542685998332151695264286673648535750400585643235809067091797389835939978483303512074853820282086361255991555269662001503945857056255979247655577855169726595736237615179434183055982640033181049682602049086236631953443544100233297299473695219373410890070359682884985470037129662537646139896803660625553967153983511225307455756269193465078403334211490562547740431891209912540581961850223428029224567531591938419166383314364840497392939788660243402643492955502015688433839352021923354353124504081532815305806119447065966649846534059605559228124433416709480811791924993375727910275932737600564593802395257744705940145426116365531981389542954588332402254895795021872267482708977678650498271254584942686479134836317084042857283278407395543469228246734755573162891337472100450991209950237465094994581925089257840728881822544329413094399127016526662961537550712083653030311306133635479905369829556916229829477317610562501294092104137416004323646224811377067165353644440346373470237672494985466132891976702635810541647612056003180784169515693603357283712619841996375212270045930918627097780315203292715620282620434486546876174697423471226118931948152213621633259058268870900827396768945031780562324465476367902537072223213581633083688176517107171328490448710098234899280311390823539464448611545717095105747971374914920929163369415475836967582818745025381914765000411412896256565429035185191041385358291283433382048252341452310611428147711941182881668526849388425893478446247085476999461891333374888965557823114846171051333013019482401044941116724331935850734252938621480464065289194608893530497427877313503292542481103095666846559344339141622813103686717315483170165724110331362632670330423998299388782174541474013425399548889982717057728571216189168645514779402404697996424265566264750401448856756577739370220764943618135707766508000795288174430779193077481037748519255351988501709380992113235561236572736305356383566743625797287521751213888220336743368140984170150985642192973857781908027062027004321490364311435944142844436490781853004900687415287653196217805080184292020603875759268074567842232384462331424742139017181079876344528127333810979270103006759862358763291776188023964778484895661069554571099010349022567856464662748387606891402318755299687103947710625557746938153599975613398414125388894654764907245894783777045552675455566401925270136497017051055878295435297496000439895219448982427511899043492788833003302697837351089080361466828042337335888558859168786007063618689168963753076597940005614366331395219130249201264831525775204673339172379619494343251401617683356610471302068147042190193323496083559192773169131183792231904078979350665973119896800365801330431595141880907689328095412517496399639005355006098218108456007181454037291483524154537479383434757394503622778814442031717960722171447768946190907717891509029215009407474260418300791633386927448421039057730304789463557235232955721361138789023074406501752816607354761577420153289056839423411529214399883930890016953786909959752663138866652893195193848483774949096456268779564932868778151986655777077354283109647362811644972453071213274295691997481340073020729495960637431293230347527976974616457564135766400420575014863821790529213409424037881449024925988650868800268085723765645021714720665014777792384510544859200790001775341480637222494080975564345223235839448336695447187675469643634891577630451924251643038442499947185701114184920988865648611529865153385089343380848275014700518722642695330537348010267574926093779092702310726418212544962741060736278248456521557847498387628927095550950483819157270519107510604530997330061368333742180753476013367982593341566327104782399288441196051266502608190854197649475046748825844141025845965634621217054914315318026161384353377986657792484748330363187231391587438645395733084211068273050369692173015712423653383872725255567774643227476711721689095078260136625179257323754410863337844814101366894618085787593709823790338630835698012517605477811212124948120604451957417744615581708048408798741609021065523905703060214367305246922296427660322179019904887669839966581335599541936067315708315869795274555518280795771967001634743040462592453998727228390180505468185739122461720447563596430408085140800982797375143296428701395520038366396675533684909968673982667109021369002782601961959615548168745526544687296906335950707011526463767369995775644718858813542434734151794762401606023033116392592488133416904087009018968442078067946684869112667577196386241956610647786718743465999482728456133336311246339298727332602125237197474297082573924333628783533304639234921114291118754157127181544127937274111398696506180334495686194692674656409848424681219069258532934098958325543993874722389606886468585426047710907038394682292814671823524882438010858680777664541722519812545347414679990250994391091182419989302328089295972882599754680115586115176781646025005572226304920867177436177063726856995939877489210268334801426682774186760828980179479196296633969510027908846224163708723575423191988259811317835339846515069473517930658515769887112591873167806282912010410976752333144139154750390692791211424839429535102194097364035043614542272768424801622537078156329349583715291862735375197426477818859947235469973239296033159841621195929518582957815989994336699084122670744690811973334931291698044759345329041031534906655013917755847328687546286451897807274506244305937139225875820265468933590718716365255765078744007274536110956466722274414121365111668044589359581546573193549156318301615379829981961582419927921535247742207956715641978378192827044163746959305672058282620464034229439407806351050380964697157526041286666487403966519080953991292932490320672149877315602323331240377874167315146986957339096781640271854015608261968320753154298740458892379603303799066934243978323076684747427193384180988647766288312484573346793153933562444052849914087332688346387323230171615465872172122734323329006302629104627007300285529244471172819089276392164948175606627866915688413571650888577467812696590372223373553330342992096712952728026685545805844794189761420256521856619008570906752059368007632940491685544815513460321003657224205666454508708978704841471408016642224468176457402493196551988865499479847340611260676937057900808308082157440760978510410958254504776441830980750851694609908294342329569078356979691674783962832498020389619616848687853773500865664291063884435809400131870150055219361938942079083562114184124501976554470864262583704386637558486432700649573526044801674494942841791358150898838067322572702338987647380573311387071794330641879918574798531021957724245287931698218325060129585666413157035940946411672410568783827926258051710665017575462767234855210210538956474766272786445049139026595811625750900828656180316856489303689374671880706295679566097311177836432582283118329974663568835515244890069584682755901301542640557195299262996043009501261049320335551001628710414552763311555692145295058653207077206027711235955020129883813313713547972318035301761757377153269766831901769607699925872038973117005008006768870230410377787909431995909159872468439291671062716966481439392286303992360272174177903346248876945480763276548091655437857251514824581728272776387190758417189498704961546459421662291683466527202231940641702648764312393384025588234260375972347012165293491589654464885643429724708467448666588070978072937289815287552008734966269610605077930033466059474071742222485168598356989553792213983436472847101855317330785481172989793205427401393205050867280365181424414142826203705340225073345045301425864120676230805729815015679537811708023225715342683951637066729673792936704861546465375234371721976141624747356941052342422118670249077238305560163714404960812031009434415454188044461522873127848155997137354929761294327230712178504978525042309021483163336862121290413375570921778211698688471347866102854752067025522094628732190139545670431285273784604697305716187860455161941381371319164508845391049264224797778985810052571038137319705681874333674169974772112405486648025786016868396861387859123179885177463422512404590839836067262401650899864122036306603938965069151024392329461657576036564261434361885973996740226166880817841421871788180511017099262633092071092653173817362580296170226284809914229824909384993919697850743158363442478384166637038152305898695633669987041228806303011530720930069140664904038718767445069492967715061833284314075990026868777838440496272225745974100754418027932665930070347875522710779170107512981857335741634390910995418872922210470330385870244916694333503986144679344882386705782515419518092537312783812738724217464496965226835622155125381785506423526447086104608011814855443500028436915610896294015863651633738613930981000331749671598483753414796310773812450268671318446598102492711251965394266480896987514745388439148109727996641287867097376375038726685961899028253057528169813901584716205208164190007285409751475010089391692317134524063175216687256170413200376595730520078245245342432967204450068378768698272167237692302755708009596332578960568949348546159431273931662985682763296183334109498142007692504480336886097467109634138475667188737534888328859856306176189615853541541422883896571676722939745790236661140218816001153516932046750693643886746350591222794918281382591273278159164490541158831688280362968687246700110118848478273995109566524851801516772750621645390153784333231517949736060290547103542098650687025948112037344099376134992123895815059155557638634885314994146306222271594600365355535031055434796247414531406517985206421473753286831318812089178561741527427282666678712668698916239455439820098959782327964915968210980289325126814995518580701377496531910958697772911636878689891831730278691532003004010000180150647871253106530551314655479761377775147882686073503792176348829230252745273265842395118792366017660082170547798269179260754057791213834031528365120117335739484722386316129218767519899457074621042494154756635845967179431947760639434269644214300967570541844957084430296377826470748454197472239966230235952907996933971586243322768010649406081325784498387410940600380044226405131401952837652344293549880304571277421789799958663950335466609902988508951171948929895493690220895511588508804207807606418914131429956529235212804438392350652556219812120005569679214250276988562015469548209456824981380304320970854726729041125412066516999774574218076790478774283698791451314175004354479435153804715747711207135646665626511103996265686836451413749347348035539032036914439180246803028577944670567408569810390978056811097305966918168719696885001448843765069848310957239418929386546598675043511950559801534820051882487472180287609239550036239123292678942736353112416284463905243451918482538771778141843367986151897091172523456094728323733500797521778961535258281446278195938023537958188188089881957285371541358911364935977615979232861067713887001433186211872793570192577673167645357346131671596260691829145733510712639163771762610821878499278294586137480031483915631332165847860783653181632736363478844063553646557476419829375675777795066006237053652101666190639882220521398719743714181840444819300839040129391614592664510145519302352281002316062212155590108111000331170987439364522952155029557606750326480582702045888773983407697885244107300151106444737428168515944314337469924479293860314147265435353622894519354510730300847195850006303280923739292734052742127387872093027801589883393638886326110049152835879766272455825037957966550918137548850568029277257093497370631751693888694537147836095177413286674774031255978790542111001294311314859483041535433077111420596470966511068606692263314365144095706873730883574379853049154052250151662592043090196822446784260908859352618526955646573321467352285971855076956519314090487223294672927954132109835809061769723885735609600850185541583125320720253907677744662901379749890302293483917090476480780330706761150285439639791462201650671090535944338156865566936367216312446055435488183959000747593192498488631520198255013330762686016990970868327280502676378087612814097911957034020723357787548329329694218551519111806645323932822679177346623147148773523841488702744021313253394376992626308556308955410245982505137062818755259996899073526180008758529613889052933117555836196629316162129922235468645743937318601995396714594802903960914805181960885444791838809795841529801693529925967310139265589465091976523922792543795415139435893862084457615691744938599244028725982389942285133162976201471268696934329346912485750500325602550084236019704874118963483823593680399981450061207527674922582947346876787015869774606162004126656030254054045811924268071429064757428750340512777179543826440550313323727630499232842771349886860710348581218796263745755266632155995682436576050405942062721909281437964187532096413340852996382583528210537876268481468435385088534274172066549877232904006568704046255875897063646239420668747817030777971250729142404598295919955460598163107284684286709934624569208224132786829939381688798348894519293598860479187490764887556225728617707222153414061664671526307019452155587403846729512788832074859127705675125296127953653043681812688779881759321604526356320831851800841685318382195679483102110380240383580137655897333875488432095526112442939950238588725878024510982403467939132970932183926047868772700379533246976948399599024289295527853479616024058007226258656795991675854782952485973276745152684984188483109515676127577018613400711048172890120629322475150476993423811078248780131085562315304345114575008647133460185925452809709000286613303132614134314285273663021066848679886867348860291109469219179526078328007300231586851552187068002083035872868286400406203045431489209832095858246421414623305488312647659695614107748210112284289972062053396128237778443251569203797031991439811572081165266365552791115272425705175431411364312228046071932518358779798287915701900014376815819325970826142644696737662517206619974054031739731076738210319708326362285261755116916170300795424281099835659528887809096038068571000879863487776558077669391671172740495642417571335210817524625279779023540662886020149548943334584253478049910516464546736512532823845583363458777082009758335367463238802631473411283433292488528396782750425114678733787266604430526055918958534289668586217325834702265419797432755486841875131615607054741139922942565237099999444383504099511625353799594273907368841740472682456351683128940319857999129183024877001673155610930814719796369273233911385514988364621240927961075025094431472028211563059636357775729351434177985823532655309329423902411138684512993792756267910706998039383433214484767506206038403054726688104597661016529708089796409069787610052011922862544329284796248751646228074069459659003267250160454868461719355152011789022414261768986217241198507036802233162011885669332220108059575757730414880314363795267151321727813507139169125972585365240723495348689732922248378246176213570030530687410442824022770497384145571853845048368897547670382966063199592305880696323905740826313628883383981959914503624620521969127585194836526384756707278664118303767140987636537799580619999365389962825889396078982674416629185220103544620067064999486197007047811950648340895702225018491289878173222745821357773795611739633674089728903929320533005555701980228850963094718212510833657865691330643500443008427916585041200389796212443215870191316030415416691775137111537455899255401616613790261343931266679019977021825322387364608913195222434388779123166146281401011982901018130054334288337357163885591252876960606129380625350254099362287142967828357333506973418498389106442461732782847093984625221872556986009078716811934251868048421431547897085339774296577417654460715017374363206871725960045676864393165224187560924441539793524719148156477871363908510347407896665422386044467783509416221177246168765089395296523050505661664658560360280871842945704608417417145589443295887681010665074401361060082309649339276718000638479768223584498647997276148247545175926203206141083892176582292345766378848364698396799070238723769770364746320200564604954352557491481730678501613466450476797266951887296347148275048699900750029914978158959133995412270495925049848878862771839744224677007536412773786337440388738054260724997522162131218678221361261860026367323171742786447506785652336428236642242485375447465383557559454751258699559563732200601221726360473677467065609713805733662687992140199997517770319668185140266716918781774929889559951150122933207019723129083485875626776340702385543881159570414415920552578176770135757893954068776433895911073898738192780642677884224571696500799048448677805055431673907911893107124962043125903274250718404094616893227316927610298781409843500395295939223101011813918240611826314521283167107899381573315003815065702562057875613259344648872812098043228304359856390396579180350154051362791561774093855639827076821047589297057123739803657719928456719085707944115027308751009041207777485914887111423393918115038418044202953145390014044548714642725953677339632925593156774351097043471928674208468591879142499992156863580526362022445411866957971511159456249293865464874150219587817524938735291706686337665056295540947496464588420157802958900469232885293827410172282535158971140909943619929417850972223933666327479788941802159749916691356940952662366381463827411825057579399880843870958665876535851047043500588575749246600181305497997057589612888067644947096908304736295246381108797415095429569525693205976343425344658858047623938330073367918851917327550223452920476508209740833082953765867486935379654062313356941737018962636993337036320862627019941785301179552089737859720585432650649496717207358085785723334820623150658745075300442492404256148722058901968211972340195389536994661810597048057955905611855720417200595364370836823845319103978247207153195241125821392956802056612136893822314512174463577678788733467212659046921308533272397591064568462378627256406731080449000127126664097344480974601377900197909329472789577769368170522556773192804948014402334309400745037264116794629023513973607989855173511273013758523409159391300044246465186455965620937273128752791753922614246762944567945861710987833378857130250992703977384560766133044572795500057410737687040102046333134132154010728761752404760517352033992437355162364704457242269093300849023074919129829121341740912848027601868792241684969882911485948037269078262882804716330803524814449234765121556321010422993305269186211899658495178803282484118628983758919090545905211180533388480060479856992188193857666205913847006307463399764871266306599116849747266665033044687794312358540261142168414839312028047511523042907434302061030583962577540740844967219673683051379293191142470543884223720179524957283179772175991815979177339541960753728567811417235276798802686415764410499697457003124959452269074223887310363990669911052068246057354430997226023988429817002289487953422036702866040602121974198482291479915196155800603196018322118417982546744778939657971957858680293113478278334721010747049309212978327607112030145620124798117136938202244825505005161768958879324873900617419621070369113154489764580757746162937720192296487280289106846782666916392445707065396712678019402369797503786224336872913952692433770644264944589361796713738962743742396654545949461617571765375212945476583383192703328555404800153501254818971615045933994422984940297694899027294873884877432953568565627003867784241263324953537812890477271290248734146622064582688835651317182283557175855945159531292302569339340919253427195690460638318321613902441156422428413159381232549057768929913599376965560471720573806319620247207722130887195775982262228710137096993672894788374289944576720457563648382281330537867038458537861340436653480675335618542187226348562197280740382588645928999561955232661268272445584389241222349547993414906396983151680016619026166695057583928528259520601764227221737831695072256432371603758822282784562791581046397575522082887480185699631938971637755684682843033595622443392988531184025778446106819387262060631690474278375708971743618585635735378599053500205890377066874114697509438842416735684751574254573553876658053727527738321569577603525410134715415968312487364587316853355962050999786271488907740313014150488379679897626638343303378862105287495806967000250538906120592679523322986114084581411719928078576648500205233776404898467493741529033379763317021095634859873260355655833913991614569381128354604248529520744542528948484059462083700364774959049636340819313042228597976714367848186486959390538484725815457310687109454456487547875930497379209679757735199240375445684427722568813470393256247992591069149861111623152373362158984509843347542767610284206909991821130998180423643843129751468613962475618371073844319293950763330086305531111047545761613405831091473429022029513553449937116148295835548087472419156742073963902336292781344643716114644664499575220508386712946305968940595175052138754128602399336447215060833841607986616923818649475459829233804966477317820138200146650513917743423093073784622406792377367597003898987984491143666148140256879490214008133423152968425641749076755931791694970782740093766839370005770989558273263350835529272773821391076737951977792379165460142725037302597167492692350291179846734694101810533242286495520783015451182058808078375959466039734565912733036806819439875630731103214588419874796395631822881895234910276503265492270081614367039849148725915215442253771440290987146619275382929443786110553021444413282962897764974900790512785740645745224338992076151220605423481359884207537511595133316219444055903766164420832459937127094620723993008425576207332199634300074384091619129419750562225243125191020345989957237792443746446351719145457795261339240256567012430412116432794540222189299624889914531594995017015705935532653341416400351341432146279444433457686185922408245385792458988004939627548502871200539079942221587155098405494740596942515350805463954554692515253706160832915301113932493999960512105417303822568764299964191922903282644093545122917977708988163361600277951262713643694177712283931490480231028252690204037486515994470876908585715699592951074945421355675585038672798191182063144897219780031113400086871769226708534027284255227963599156072445005905964239573159434102035507020406400887136984668801418941307427467652774729876536641611477394095152505623267252614280160638906403838342982613343736327065125322526943358168214483873335825662699830949073269982041020488874514368985545955299948723992449807336857040189991700939703841735540001552693687290259839602901589504667701027931516514089001832129101226293029169163097930443776586761396213860270454235263899550289645432235249201666879736407919674667097478372367055930278982674916669827834117821244648996840636275962563206833101293469313969494458846102150881769286187540082112414475802379493873581907101489905754348839927753796347424812609327663345034317498880708670707200818584890601515695796200790030560118258331447645702224401761884541934456318466682477318711955846939355978534825955939973571015313417250699850653948401361996664424747452327600676873455464037300717168005151064874700028921763527378138864905627231721081936389555992621977245926631703964375607604317719427760778682453983246228413293020483747964711659761499662428300737687095109542383877109119624062863777603975830527119765970827632763623752630716969067231623444660604120524184012423263846472527257912866094857261589009604636832976399539543175723144507790664560190097301801609459831258955746864507630867847234577195522033550844197183998432835264191554703905089416297749336299807416660770289274333533257094081932196203532128114364165840115694916636902270493713821906256583759693570977701103865782348297574705954274234393568145536158949550818057154728330803652166664282777370223849480316705768170234551346937519066527716259043865596415841933044012147196605074938466100906840784120300383289029314530557167389198472418827516970737046947715993584739091273902982692165652787669846087734302404212662470995486865748238735701222729622890330218765664458990772925853470701689894831853736263444365793778739847297290548561026879341455386354187099500156440188447511090769551804744140045813959138886722277892704541916267270993133480088884558727529344556618462038141627801103458324540584541889800299650826449098777522075303801044047633025324413590498864521480626948833220212055916100067635421960427018735899687595300560956594252308593795361910086107621049758229227528813700430700891434580405453344794444279787989596071903173393680008926181871835855546713399884608189656258601305206228793175905694859290172978188467095407579239056894623950599460362527965032200722742200080638713828832179550907605928010620729316171249415704958014868061662101078776103782625133469154251284070259599081978690942298909987027536156036706191043451102629122425347406116317868557585344918017249740709227104051110310603197668431456258755530594953042336029821716330652714288023117868013185522322622804574541738462741604464572070601356643159631511934165076647713845070958891524005131516560714753614012328198713160316131040928899452119671817643925366732006767590937392997431005237755247056547167611056719884836154219801767110436285623477823323942308286747093772891934793882861085560662885115082833993807607849203786416715469296901224550545523927044704503955602473360445730728192413650883018555225325755678987632626469292370942858851722599501409134525686430229570703587380663780637599010122239183189126168797852098011971664682651592398797527742304754511379516458712599463453602459418756142540610823635513062063492983362757721565426739228991034098993703567876294288125321155838227448780957881262883564253452760372152886501396914259783310374920375563777031227515807712460500469030551991485721463394730916901122270203948442924208167651391596325986579417181587745156201458863754325316139413275196696300740067653217283447802600364807736360360359400455641567307564561560019979105281458033764569150280408243754106743097651397224249100130525747741251425490160184894954609119328232246737953734153207438270111621749380936234069986662970599136733826126317093842322063721872327867843237413422610284139674662888679061651800966839816067586069584346209630288580978941711436745162381017295007629193769959585380701267908390936436185661514625847426737931741493533108342781989778956154984870954977765446429464510464764536771119946947219615236142270399977653201576683990685872648007214097840120845228817832101511360034755635037457352864973102865121119556019398646654875106805753496696637085946681862464553152304761916258840000227549164615247205048508651069401398774977074316855604155780748799862199385622023124675318030173844973125923119462256603763090051922809685480028534929543372646232169972397030206012864447606822142635213665086166921535358135401353186487631565451722339659182644867567621972248517674550579776500269080281284721001142082741993155398126052984704892168614191897439292766220317162562438071886277617981753738224719180682532888747193512596936775874435575823849395443150631592735250153127661660501566320799391272868618035703639220801666930614073950725566152329520850761043403778349767615066899167780146347669482763880699770756301733409945619092050629880820384329143658239404795605400469717868727378833088384764458144039325493826128074321139966824761696735808268384951256650396304686969890432525129151669247856447238303704077036130014191283680685452528118265145900884670455010212932121108150185229988020419047646451132795626194985201522532983627344956856720142714312579460067212044654591143997467040713038364426935115558459959359069859224214353569715857325837755527243094908631337502852185041461768370772763021228142650922312756957830918648173922449156083049763797474668854308761108211643763688343450610785699686396418359444112898023985296937417760388842623538963880740108860273341419456331064694516146921799690367489982299039161216438169361923215505180759091889033876471898191504508224181366350261411901372570678007332445835204071189123493961026785886299726920993702102043719011488472795285517237228488421235214121827799138655864638226840589804207826854524079886770744348760899307797021054599217276675774761228426885649863650483757204322154384885466662607213325562879019765170546832837215517053675031313918954975661965275157147940370736141532252186208567456723276828266061202422794225421819107970064468602948563691247166046977048390516486918490845877032947956407741677561219488605275650627870048822316730937995316065051792924855761731051933540956029561465061009128330572753424717362371539362412545403358307622918120618038493116851487721551555021124554489269777754503382056211896081649172262989726630302879553016209807908420947567060961981666489774589418656623903347276971435785758721618837329269843089919020450945786150387525461339689096374787652228927188489216676007286653966775977346890791932746680352273410095128290342968911533476320987439559149814291915563613299880321264367737003625666168501909280422786316509987932890150468747422569611260350861530739173192719655270741946814198949895794579225847625266508357267945615137688636508025090809073600995733883158390085307890394046736474396638149729731077883339264196401273739615304547690197042020286686072095176683845089401375581291897512498262800600716343568343779349279999315620798249916597282439502704931063794567673419709461051868172956504847845531049133064864910278458212733307017696797255128394809062915093224278183994590104264127167325023360963815027816785625158904209610603663507667335024804636264849812158384850651987505002526502864146443264849571116605356413629823640000776078626773086653544345642343095623172139549984848100859374607225768749992936743421212306886874009104620444342773008027626090512633465525046056221055077572768439660196038870990162446193802437566767802918432253090949499580841765928953332443869401950587172974910128107794933114586706846395279227224493690582572569997924335073181066273702201426071278355850980214392957983775965104456877402810290703838295622533897168925632620569354540849785974721073385907246645216808481312491137843626389958227240782893331741575915117296489959722003618825797224455566184051439158993381124503416674312263726886034387026839560099279351500358224911314289978913482865514356284595023928410627756748589701657001463241742094203954191068850032144616422922002032872092078598687017863617821909192604801838989570500530992800642647222397410225883305601415790573916609983466518345970097442728684425533582101718922890492933224038133431065247972997367325761025560020555867445379648215641424460108361767068044810477089797126075710194128398310509340513219110724120009315616849870816934501803242670530000286825977638453487319216494768816788301521908765464934566764049359941485438169790194315789391318553543779653104242990254930843557585818235132084690323396893058522956905547441155522299830688389015340613557887692907458112235935545929564510004216844190593916640401575127062688107084151504017794921452925590127444009962680404005664002005347288931212761262187605019325663411370090735845601142299965713895219249985762366419153177212553531200961127650249460755755543986015368520862366009993508527555076644515438347194800395891401981490247796868805843118453235451463234665675317919085072432637638102955039710776142945532687013485293221773226454776471633160211161112559892375261266777502049700438460949467972153778118101651327865275215510984294655680605593239790072069253569043408178939446569702438542792908217199723460078722030840117983118881175266788956702122961206800547256299831170719321965950442307607513656458984736845638917011595963405247898123620352667984761241118176756505222760690737840724369316945719405152935252830518727910878267365767004220264052295070830209230200466761364320780335430580695572880447815287493848854181178930996802612177185420851972958109030642894548792256053025947573721573686039711988071056329667244527042238589901174503936867589430520158381952392173495874875340182155878297993292714426219029505191648729598154215790166087687638845695080348982667509986395306802576927595692432023400450928369862165164724481806646613101717139607949474780863256274019075862480581986645418781122786020250942177367695447369295621406210653567888051471900141342413418892082751745946955947440159083216721039660444099836730546160346064846962050001147860409416195341016824465392290072090509519129923351299184443161081804749196010165808219660515143979130902844340016511501172839331426843081212232692476896558594287416563825376525771490577192119222729533791679595210088050897219796372192066632637713859843767574248113025207607919532511799406619849343767847833570229782543554917275811779235841932322005522550261499293572198862166372846456434972434315408440703517702660750210508690769745170328504574503654326928703983355919703984943950680889601069019042658871492444880921400608605723392345336526446448459025668142731608570336269919733183245973605953226547584116807268597990359069059157996891143496869006272207741351485721670826463747557148601164825777438338578159389561161933035283846709258555497792516009954046422267920034550868312735382266171494296910846409255455619266977890086176860474987712659315428551987781618076068371579008472460528707247819484632892778540403506409151078678779026986558223769081797855194392717941189403613424945177215000445483438298408698617392851820404364647943026990723395213538950356890224414559545104540260823190270923097300222679295481064247758179387011098257029775885352732262205576760197881024027376290801127866402354099455900435388914624222966829483101872518960160206837953184088661079988938746425770469135121311946912775076869914292559849340945053675812940639384528661885398557271385520364131362418528478681522610389722468883425218847122011520889105119903943955043853613901896389425753425841655533318853989726628304327384468975905429448302945192540688166451644417904683337837786697560457187518467652716523950806342488188875318699032475631173389168081431302261644412973771529248218603944882642500707807011555409771005241670023529386770159437905034624010484975652129249464778469276987419543388096392127129690807812682013345164353698029222973783318936927273413997132339048479498706990046438770312628084205066715512698494492329314793003235378715273927085961665409170371481938970362033233208840989102248085145294768151621443876944269082385711584228266067445738592200754084941008697240497571861683742034887085078358437036508794626778907650893910493612665769779282117611392929242890416984862190178514901281139193489532583634412230712301012044459152707369622223534148205178923694530435990415466633196968486379084276783310014414172733100185493375248310181155844392157162426173032558847681651422117911142134584586148879898795332472314876864573117802412081300972050955093041921879804339176813259149827121094676484827241203171513274768894604727033564150275525515207396230346277993509206505974520397359911114555329786010280009647572451427394919323744953493178407423474461691490877789272877781771180548674257252313296811190302284863771143264937624892237191794508958371782790116545567846145959162644339938882917941808855283480557580223448987270833067258635594555973114499030113045760444411737327010263534894546783010478435113059000279251580517684979974982859531813659889893038297145811802041161844908922142750089704368415356242272528003117708883250018881614565035891546510149319262239975064065089984130814837147004973327331351223238685402018535109727120909476527336273726017300591131931758042662032158472875235504997058559276617076130761463760039871496899925748630836245828572794509471256950570525029330638618949717435646723938656512590078478137202968471433317408405914444872581640976611170840098418957605791830408135102668696051873407262154824223143862583706877768162586580517595561931049222128381416229287447412527510262878716858041737744933795013057236533870382284473870671104741639288533439070391607761195773648288003382997810671210282998814297659530205534126218100090556860705292849735648032337477213187675565902777245157143429372534885907086647532050826730362818331535995364957017288785414247260219281170323594095405523997529469159913596462134150752083964128781542069994259385780720583925425562695006243672050269483975558819188473279903517040452432494146864622305052640471946931470437639623504761383545516318692734922852621974172340103293426457679004492899177258239143801147971123454801801984261427762417423928777156571422341744469946821950200960416062958737437315299629008762360616759786405194416106642449024898443208691975197662399462458273391415672312978174556421096572229771055673743212542653768702094101829713213118985229299167496792072931641063188576288090050339027694335057657818829431646746125526066866504665018215122412087205732441789545030244332910649710018679860469314661543579527730874073696974205096672234602924249515838347614682151546951159884935162367999763732501073963161820908980120145707407595554921303672207084867286889094607530130169994617584702413318133884894353097565448947776812163356033972694089083979008595673574866602351278160217277283329773874800248804795701128024947197611281410270919685981860371588753143577650474006125121711698958536494532788286904098040616481970233202186179228005687913488245702611481004213289990878598085265659766559796538679418106596061561197012875724662132004573789010159944204994378542830170867946569683331820759281963056701791835010174473674920843031063725306402401668069829033025582236633377999479995975372022126329858836753497938341624781453777512340111164299395484779511993803350654726518745995074975996483973086009765772888963681213065231902040596365871093345921336825887700374386002079580377120900978511376457423224274489640685411765859893364943114888665644361495480318571896296285063400171040510543341679551298848717480035598225580719486766445528785010812913479571391600630166245323793079602362979416746687362864641234839483899678574403003403367149971455180400584766158253855024152499830927110258580758883019882195240481293620359353936334502931796024825076507425100920393635447733330583844122892225811886412929409629530624053688591461649940344879590606893779090408957283683689313645873673496990518785285007992595888489698389238327013647200901293850816392355059730396919804113784127071635463436543596579029343035811296643016653592535440519731801525779321561942338822875683260586515186238048238375034743932763265166359173389881086686244178996484233408026248757751627127288099243945442462198824861846830380016618136050958002452386347758352754103699645967648952918055891527957601985057953064471799517968188642987042237451548528410648018228887515386794302096564839941777355638038498260781999418967375296704466545100661960002241597359545234820436064951420612109022636276856390566465439013479331661925260292294712990663569569346416642267554902579506010494605812371821605470382707402547481938903701182180771757594196034589539899999775043889942264770848060032005335973064424782688791501027023981779540142587235337611535800885560773085023563197085150227700603584181948291394603151670913245042895008359524776000800510112096614897573839851542681368325478577643397519149970969709990785152507959412401813447321213614866054546185023244830826978560631417446162101021348970340058611888496710116000396705468498574237906158431140450166710705040432955765021778939355294203313080138844929918623430628332628588314846418596241772743249222057080963830564714119450769759971224225762009684611660649125273295027182638740031142605068860986944934852291219185772795467292479633269241940661840930029376893128224011974655001305928197742102006901708246878177252253225697349381329674427390036780473859261481854130855591971543008239620815854677073398891044742227088512039082602346005453500451447019250327550912249995225121710441559182493519583854403053608350734272356178846824627606090642466488309616882225319880694835132044491856253372550687540264186879436583748578030883225844282798128289946902631122019376451039147905542233096032403473986557300155511836310473367977937360202744825098242745342074770227904542722467531335571945076998768150800732863043249490920815926791620598050136785395820432872508109104457469768855528284059250428154875471296304160119507099862987007596069624701706134351417556228128004377967159885560962601761049710404653026398334499854996686293166940896152016214025348736889740375459861850482339388507011111245759544325815464104631118172688874902085450750650049520327072686295277307122786325207905203696305008849915068539601337411733416792144758557690916722254262980307421593129432837028650175658141271287014790228687099165936271189412517531432637122311934902899968741883005314417432064878595032155110397697708935087288707542530019958805277786218010804329484734941483016663696322833297839676263911935160260205017543830537376763197285244544181610497996643754292623081509271947151502832441239502108104313680731191436426040190032232188194255551777161760030566381604007263352980446568857420038869829054751684896897378260007633528454624017600969727898853801018198884791092769631005689593398042265884283046037259430112890981321663381440893985559061296579823400183062542476768097997052930788776458611681958196368376664555680534586645694886579901607014280427073076268654338650369806716422247504938244272392476380279878345450302373029050044292532394458512224165944770899344927040836859157575753901883952355946639558379458724361556066890872530107159785209615354508353451746818565483856137371868778439003309968701590244223141386483284911993617347040220820058338918407263241367707859096175942634064065419215620144737284477701905430681840984205028642585830517116041140779885165240264320076974525862039496543076632358186715898965785048581625891256502942296702146180414205047810015752080279150890317656237138757213479448901591762148919265909198387514964169317215749310281855015433611583958489123746990006859780370148460812774942751455608502476240317878485022001034591828513410318568697396551551231324054166865389417216889648068013541619152095429841944802432074183514910913014720260280353444569751192090753519950091941926047772131169953940557122756437824911745170841110147654908674641107910322651412286615249316323006516290808480022402075183125535705648034786470545672114797946616907062528826352632407031614294083273077661313204202199977667391671793686617335265055569123156356112409660554615675692072847143692707360473156944510413754146878440858487567121112493242310202738927294689675370689205057996057561827334729469035409355422081333657439378556475141906108192008004539107966712785644332712129918380273299350770665154617160253156125381106750958340318150903229609551276631736084012849380816493061572931656536117936829306684257169009055634892551206019807205777224398302008626156996342733892833323651670246936087661024502044031435137772895431934656545933838808439812043092469932990680630635170686823455756497051779039061117718561254990566398496880433350765808019703871499512793850944689721438845129879825323776093355314182887833090292013263349241708277591626764127366282952645902103014891131139482862308869885271016185233347348119259849642402601662726331013336035405464717248223086855810549854997126639363466270262667076744706437403650816925262787166764694694785715694998408912001294050620981286581832845168008827145575011947056574281016359373857921350437793415114253838351542829725314993227227707325845323533583026134274070509136459685137856136268536257220085258915480537698785646197934626085931835940155537978294847143777680816442607573174202837451225224886734860096988680835138267361552904002720354899071373050881476792541435231546012820001307033490935766025538637074077387406023951991165647150322584186181571979113572559938105285760716219206736352236336710734416271641614092330765326089696610881446129587832146628202605362428368506978390185211249276099560962154394175167262340495944478407272748882167546651912581880052119071805525474852861318038831358799342979066087810092045386431017357729510153978912687202056423450304146031113191441140701322355403241223637336245404575122654400402002733589755000465713145612130935816723517967314134428038968421318321308792937164648981491273679302686930093130677113468953660059272612101719147387539737474365474474364792475988114718951296228448545006475363672055266203498222893590952940975742180634091645370957312553667610329714602774835415253984321674266274460677833480049506296056267379838140389140903561605915518800508361831628660668006768980480624469769747440826770609942391300096712534862523095911581338767379703107756426031025514716620113859863616320980358834001911428513386898975529369478140177016079305097428411940185936026742028334208378746566039745558874496906562955858980641039236060162067215953075720193313616192564634302368928864806192400565540732752145213345658942379315915951475008349136434512290567940543859840419748404900663417005305388713400026975843123900855913620604081452614329710735744674587921708150038509915519254121117962217494421961251136026449093608974941308231967235941640076982536041866990085411217017302319049006940021389992609488486362053787154852159080476296477389424261687140602836505510026535225807408708654380840246875627427579223778991083167374611831109423542050046530806449177334583196114662369136904884054214467059779665250650182700069512503166297253733671974259143632126499292841351735558354053400762834307392649586262716141763968631297981506184453567487855313902546978899248365095430141226162640700534046284437662670112963691708356759199650000208940080919710466935851299872561250949459934914710670686179618719960036142278597678249265575577938169257781744348430182164413969236033597252757162700180871206145231915740816344432046607281070301636031707523667424639797553981389992210464933218672622171499582059222508208833668407876072505750703823764459144721109345560520420419143932580738500052711464577822462453385466571565052652732547515826157962573022505836653649234363515644287787802841533187362096790424491519442883061153362926744745885823386698207371194171815733545882620535649460297791415435735225315735182241589297742872336951436353230136479197919581398887549876490168853012831706742953254462640320922222487647102399717714388680924487395286083351847196337372274167067665537477149858900974380033329831637523935684254191992107363632721874787998715810108280941390735345291791298077756716686561010274379612622811954065408560436550926420022983020376384418390106149464638282013051390659161745430090089318869861171631537792825331014673586069337985220840516586005538512319891070704586832160710603474523925733897632093705312958871384780138051213538997218493271217546097859114704154362930054143128004993991933137361692654103539150880529067753764739818235442524642399646663383732269634022683151552079664293775619686454544972236198366807297012031340750759055115322039443499677129365529889073563578017808426623904322777087139332631411860602578503482185593599713152278878662043548889195820086737636991742820532026259353980872647936447192499683327232725307437168219931140998842611932293301402758027410362362378440098945499275522123260048837628372321414001932674678861552659231723028730401805908791773229017945393963910898430843143037225147743152402059593339073130030811428629251874782522088499696952065241224654269335295666932516427799384449453725120518156693016168342003484815653762584314005641123430912038398247533705360111408453652327391974058359285701161704163235380305167795155976201393344252903942578189327022569149584694154858011581446573022105751189094864843456575120815430790076286876182518242241730814557717863118712466853354656913582988202560947683563103671706339061572949253442690712788623913554156973191515344188400535698840025589182545919850857763782891944461876053864577434229948842884358934148794229966799643033801948027256879497679353341231890155744380851996307318727920332110393447009369058722492006744640748124941523466615122171688429948243469670365133295791538755665314213998230838420836821530727193792425649306909881417078169750703591775234358937223727543023209082770794185352620982149189935835351814889347169472799874778501034194681149381547900633724745145115246681998597572855040369988397992071903157006001141323097639193132707329828351748556864633662976725722303641391888686381749634992649887989239321886420374994802272172981450421188413718265864144188043040665483617546788959070298516971915617933735604327921217633072527928927579533791982786356497676151310753134330409817732828270928443111545306510890322679106297645035647178637076827992665675402068551845030272961977542554585624559814899147299853510848208374114194888343025619304887328061501740764609816983501296888244580638643882311838795534658028531531594727953520670636273820470217993598589831085776263177303152455013413852398638825711490073215667738718701524092007601424774093390050892881541552653771962137583258744265375936882784074090757973989933672634092653599218030199753713585560113602367034750503961278065144410394732445706613222900319546834573458068085977666081752191372887142602088841040917148807366309268733059244325869224905858199774524320818750395844092601605267502765046505242583901445224251910633779286627891201064882208261387794008455694494201894891183092215611051576369332534641474477868331203173540456338524044268291978316994145051447970283410734828954321713634376936749130645361516943021857256637567140510830627005854850739421684111045439318476695251636646605346218778600866933911948864531695411574622631287855041325008137192667062712319931019932318159167437524302929727010344467907726508425823224384380505036851815169342174119346714723948016521828149187363009977881314601894155466495137828378191998692501558355566414596314577458234675809892507728512433840722802436710808245021929616256516587068410943331644215226511637630171967854729978434558643172821961322190328108485932341478186709494788007943847037314702610085850060901057043619790656814791266957151037511046925837922539874030813712638843028693836226974503359271703385088351545449621805927159720509105273712048262563795537409283255452587228073366323009857856861598192900008895026636141406161273181939859230309561445747652951957830956380780420759123033196694924195367324310410142992549678192808401319996943344604822261795515705292568194261111777427962374908944558943232695178675452705964331231744129645250296490644233708011918408297290032252805553068461336851400690535289615589196857674352727296958340966404574765353693411368666595002834772496285550598883821680065683293492065164479663754393412631951181599800075268052806218964781865005380877892305064392263932090437669396831272697043025194090151994323056085855475597801811494230501714130070489711081286289142578686165766923215701471445430826878425342066026894705295971986331109502135829611207156115929845100460489539858904811456003625677612659514495546451663079948690775044730066453844049724418251802736293718532577968928418998073853286780737233435545394809466347665431802703793911789893544612822571661711715750117297111770068785115391122024291719936296780806342169516139584765937743716644520469726103298141643831273825661004700517012632921460924725889640967162218135040502278920187203299902848939418375805269832537734358856334413388934440317322346719355084296502691134899313642963118613221254803314778253794559064688606748066138515551859021150644332540751309946741567178359085631113275313495369197646787746655704970631256409305228935287534266304120405164898895635041721388638682469375284947837478656591493828036005041502115740987041070028320753216331575050926096149608381348295850765487090533995004417281866147045406508575203927839137571463791501324461381011145774710018616793990315958284523986704634890832606423044708398462332101702333768327108599846254992622023727465471000791564670062585669648080952556789192960773987583442046539407897486703818207736541806575050222308307650082800529084189660948289173049454372422439068154148518975949112670156340405615550820774319840639859355633224823654985772911648033390846213119367695143935933119655148218888764254985591313218961883725457858436116393322474247781476824857776796235858430716572194421296466787631594600348678861017714948466709034542695832327993075210621590387971562792789282716838476603183491953405645940893265321577769008518357375170488331371261361970627270229559561597308754254800325902539389788466879978825276582175695708046441734807724669614216693730162869361389122731241573224087604360237034469419718351195878015169724245975788414415875124003297826754515600453246895197705239889960639176788111398567606193714301653824668292875543949239340131390926855616250850365433079123000991849181560237328005905841298599983823894948467574383325614049003241337468658989125456619468997608148196185713177319879110329427721337326331539117380781850386238537654700343145685498056510512576034595165221275021436911357731956886196421004866597411193809764023074429218540820738253242823424472619179455857632986833461316577537717852774010303874910721233274281685480286233822341314748246666330067740875216602779760001666071416514349100642092306690643720895478172046522491193017782921675438839161193528796008282446853702931808172344829353303566329456774304147163851050064949450325247714603529847460250698848651789670340453660200183629888085251725909891592151548504110759886576292637969944588007232702643935479810199182490600375011073671972630508937571241103304958271966501870732814898155644599882291092294833817023134486355855273687245280714885007819666767892008786333567307231489450915584132608981653340680902922920162280147442835825582596304730516821153384141886760206835195182463878395247108028018885417015214833134412344179023303916946145054113904957857044165616020310118946318720745939148821997367702980605981397773986182686203665498233721093466012672809583183981604981482848936243275209669889609362452589149202334023264702279395964465158157074536191011006447015260164467455699128727868359421224519260080829967769530804506530816051365193836305525247070263335307508989030541032828780771215932206551212379981460631844255942274692881984175775118316356440373525291295477502484937465981459613605570836956452475688779531833892306118254481105619065567077883944622598647444081320297303675520406697587527210316210922147721572670002130879213879371747484486582137038165001993591664847893423128867601639402686962501125152586987595168890042673706973395163132878376152393823803264266771791033023294082142067029425144471548644687752363845640204023785589718193821704516285171029000010738140199726286977510865316298604899993869250922673058643377996821406730529353711581248926858061145228995494738717699746631608720297476869962032421657763268393121549846278000321249212454394553950789321957309062427779617761113992249398699909659455387782062040225823620220775336025499084265110022629175488235994212624814960457446294781045579863364853028553741219582639671667448149926382369329072699096161533014321544429654139289199180858482108711324726115133851214316164968293998277048102182218240147869402132955957475300847340656367502648091364466727787808057920681202343533578140913310264346002754916154868211223703506121753688005125353007752490196598018706069672963277183296462883500313059342334500065873108809133054071117049128293383186167554546878760237937339937285523283736915812013924657932146373610471163815764377298591118782390527078154156259812618872625399265158698878878347817589675678682745486251514684257859938413972901550438290217440741273411462886202032438600050279109201648709046039092502626551936789585743728206009453502476207545780401750159494938718213666427862368502069739031634083041408274339404848394690273064512772678755442856363335958917521610930505500839354003279295569852187902068442706949219135850097478288001284764185171909281295720387213639001681668339144768805369825785101252989696148283808221880592647914287525544313759691492917627163695546158588905790957722503222909319652274420711063536925928524359787979817297331170991592455418777366239155302053474185906968788726012559712223166024929299071793434234582229084636124162184042930428287611598086429898007233225441847884181037843128153403282813248547066595331293559859687291491780076911953747591787227194067881497564200874318753718487369456485826432937516876546346216939123672119994057671756165543348807407971803398621239665955455140934833552061060570475340697496480209215535304984810625444358801413771571669769394584784517925857319612028856933766030788317722862305708375596328712321290631668754825664075889065761849587982393220336942339085731870202221259789316699363704542843493779646701976817343493500217143316123340509404854491904413217291515855699447461528711618098185866537396015473668786510392633507121884464229951117894501291319858617771925255173586209164802550761022123101762003544993914626817686698797604228902747829223823291189695243000396431614901009060376269470672561807242363719807493997085162246026883697903469912013897687769623845804974215191237947542335524633907594690106042987761515465968033913054777089671724807479716824939258742882808609941717485403941855950265545782829124944824870271947125808079021408188939975604537183401191858164037236131372220372835333745653723562355410340092941601788696506634787169888580227774577097127781775012024642842542489724069117112854440969242201805216723063925620962772651127309197001607239787420816625826192339049653455850065805989800437360531922956764401458708209120564607593156355521407235657943244237952718095483131840456359054338063707565457166046670502042923356160825668216487382700034412303827424710100969523706027302902099010497704628032472579574716650123213057999102413973805642052079607010572580315722018441462692989790669256134351054716950277926298345809180234018443340470645255777986276344614531418074778090773752912884815546917162135403850677869491368700569341277045000388584739465265624846938488500926019984204288554206243022755598199704489096360809497631034441349958534934130654422157477773131835513977847324888152732902649890805337669483081327686864028425823310095689696952299807547414107069537410272249528153932053428789532366789144270789213784306796345320629660474129442052372776321700324581826683909542159214398832244225054200594462969357755580980174323121453589912377543791503936551616421260408905070464305069096030245484911714363524596581028337914675359320486767836304514212227843258636346192143295916974915742867896703944033101314890237501145560927217841303110954273247871805667932772413643952453998631570798768435444592924752981516883643930508583273070180989883090370784444519185218907425498618276307370633406869574583824731625572791998256651404076232979514982983800516113793016779384143744522294269507260415268653385039976277575212961274839927037249809304443528983997158548731530708243379935621596094336205242531504855334012434949860494896091055123739529030034911275268643935911285546672178733187294985856930892641719303720158285337590251514262100196664670018177651551088960043774162991571380430838910890132524441739071668019579804291720382815605948948474349701893155085676987253020967314053719599657684579140458005916118683490322927619550803885623065099659274883230552138376733006199313278103226130550556373787438185138477124299943878900590734101409893820920112080390466957806099493572232629423944851042495094921557090060287000543424081478566281070716215760107173261962531706409285188003630990171540768849406041771762174779036722782844175850083830621760540298144509036204610637346037048853193540842702944712582165340852638741177712626214561358781068845330398589489056454487870373052722561056440753142674264821929571178400304161562371791212157494047374299328259807144950463287515419203293416805633251102099984731410776815707936469570409757021017509464289902007946208958384662749135492177133863020918927494403849329339529374350981552513946848098767712575527439263716196763463466359016010295857211600958657974506276697529024875064857264197776942564781782727945106656572118317663554012420363594837086412442161923697212742950443736793632200545157767841198790297600257434935820825053694000188513011452138207171550722440696388782566991730459423378414442124380065618846708253604047604913817010144855867172633412265200938159195948889761924971300100119502299572284742514481350890287815837870455205053274949791039939376674763831686385314265676598493486062436269421579596265660482702209556904479214926727302754968382438580227492677664275718075039877132698203776316665820450001125078038349133149302041080587966358066063160760428159456034193115806608054298119843584523935602205420866427211909829200662995965061830369125595401993943603190195979960341700066566012495898390667944885560835514413548901957719147352636439651281222344606797255916398187399096576240620572713113262012689558928978987146057676523746700292138952559518418463582881697065627892463741053434921666793152304273812259463118919231186579069586898264665384756169142203485719025990996965982886157468606375869369759530575148548166003864356985955599253143981386729745357528639703480145597483049535029025187453216414310726391789367531682370690261101073516958303480933597749643976293399675575132761016035745326330896588148333021298275895207197521216521326672293702716073948363659131013135814633128735273429706454863087295418108372559514265452731286081250721327098647245038500465754837121179871022677280385817883216657127844402521550397149883079052678681838261355700987755414287287952442885259419969741369408016923584732486984963710426740660440204058597250042271425238965502978052155260064861636309859624608842073218843490718822283312306933001335127816265144098195154601058977011847956663930439344379275092954998841681432620214337373247978615919627465170418481140301273572111199497673074874929905321543576400913398015200006829284703855369919382170132747977496359301517751444574705685520365461678334333686388567645829060627602940139549841260491152561933727528074771105924696956299139479185301283261503937322895365097822232861145605263470222390807168435281404128759275142648571615312021345202667875254894284004916229189466482986442102618982585255140131553849395822922665297833465710115174208109475743924676397858740723633409533335223434533312403613331746105063687294292050735185181535509062636390408187404383243552318882735759966011200687444731556390150260435500158197469537349742467957048162330585111697938913130295505749938888760260641391379251332593477315507923968595532765630254135790644829024414431307070296419156788667389800577457376044600825631143797326852238322286599228819075048095638918408194107672274517396833491492903053124267311904523380353161708946727204078935890637281022672371170354431989501721961815669587457137859187724572247052840213552442102308982500327190202931569697210341432793593182624113587196013474742870413493249138793712894243499159699051777684554570632432354677234556358426985417319299534694381514405263772990503457012989629207543706896556327393456344969815598779437514806700060320959875811498422953662509190983869459718532347803350397022435832253902110895668981803223825924125357403543529187111066807260624712968458014721059829874039413894351931021128139772436001511934500777217214447005811040147671104153405597957319199148604152841460730180518139484550155824315110886584357756901523685626936261641882033486095320102879366764777845104064983886315430410484702705018932400294340308476236898613259374887395161890180999151545977729465102623589590840860579188349730603281026303117235973129194360174024012450306658055658247357101816511170432879657086102056903343989199456351232950617667417661384949290990545427073010165036456193294238574340221938204050413312521259528906017406262461094174185633843706579982997215166269532169102108041585714771907861411067603044972440291321670588317314284872999285862834102688379304872923746353740126363938408716690600179346588634455517688488077048185962713079339951734642102823812744500465140017871100163296216968229145249860564395102495942293683916962503776190062476424578359242555243446077277059554597362917508562660653013938521993074496253024680489486338983788076059527262884781556309252964430922002509978173974424977844834183176659409019122283188120014218277393717989102194005185822528852055351557255524768377991566754357995975358270874882057661516226726708284677083433287341654422268262706521464368340656668940020090276496223022943884590542097488088541321369598364141527836574638691249967579989064492044104483801634850376941255697108991156558712499291050392448031777205110924578387222605804056740176761369707853931227147712737227356644573277950507277744138802896590828827972377660132161239538423456848421707637098516907196057555724327151592312433414309549533637334460236973719906640124478320928411941447932028199045499368962541111776975432292900150776812667614592394336524997501620607868193428768997282119452447939550360977849988380966628834835247583393216251530928597054843125382646591575632828443583828409756743930046901862283015544631637053800678152371833104960330583467663691745261537548802277487854973508796718477102266927022384611764839285897583239757025533861684879570375278269228325491095638251634591287232001371309551090986161037017296433433023559236493500410863216291046673524191398982200898265455880999373153957344722357345954745763435569001488793095608882511755470238501653669254604360109198169506582395551747295850649789073715374768929828307374784397904171114198550245825202864138794132085089195159239772555223259133231058355068720291708752183129247978726979504876509705516364642165315097122292176807872574149652799022771933439374501861501593427479002213135441998638638150708268393655722095456509894932790290801468832114763678498317411564520172661331211358114860362318711428141305214591357537141686046252439946878639303262140427821444701967652341662057066389074543343409154853030721848705596084988421565526222080710882131377010060005896358589049144572929498783098998742961410911021327883702576975362930044452048437278925452101167938786226699070209319318707596792453168057094344212108121664030403202133559038401061431227560222053906037774360096180562319442599009477678428683328590287930322391791149829578498434831370883118678981186412823364451392140758119209012790039493649884569828054586985219605899649344441735866913259100781800347830739303373994546631331946263679702049479659580571824146357529207417715515141370764805420646997097924192095914554937120432544765332873787529940622293363595279015041450218415092121985410290526661610469581829507708388002473706456575707902053569433019213393877665048361484755583782096442168768383290336693156884152741615478123079542668889667692428507493204709564910079814100690549803454269804005527688355699730272254334140787107142618759106186080602068459730412968505558209357079989858176830571608903812228716726533278849406018151714040999470631889563426946145325195710697998039747918532687779346810376518388505569839919548996542911605598592259252146196279377950344519424615390984628079853269745224821437123987598151068948214354103803287211984423843250418323817693084136259017160392947173477998629761541106731868643816225381675930475325617733577330340809149248873241872037997729509328601576866412227963895813674930426784151541612338934746238999033728054174582861749489231874288520861587797048150389058037955006136723781465043256294955428107149939299561445041047096421328190003620102907685023126041847517914298739948345897448678433031533186057089708566668807472010045462368300370454083259181951255596831488448305684304317499441738628003104359645278405615274433955632801801574896028571225342803798306246036968608503397091942348187577387136296163154740155151407151693181814370566942327993496711370869892555492697431967709923634555173139240504008685785023688422604110139482811986940994656177663026516018498156502569837661069318528540578883784283514131924457060760676324572078548736232480513846944276568695716324889336437690540778010061122336249123031445741110551678357741067729329761284192503524319924389760681116844023082066360170612119707445515510572906552915344892569918947470921046136453223760467979861550985692309258401927257845145900385776932810195381963846757727615699076276492638628408144495920441882995388603487332444153131275551709905962499593132011554157025593372965043068352759627091103688912117270102162437076121192572016606077323421207386901920322894223811168691579958547774496196715537784033836776683829060636088614557887229714744981308005433623769796380005334139310908019471331987440485324996085161511325009801110831207277482983030076171655023734759326071764023848684077590234734396012666766948151884986894473548116507575612721819169435890541768233296611093025460794280173075159484029387741350840385055181809809908461232863934765667907993286762956514819896228943626645118304464763072758790086303505283306444146515891279786500931565070720294983013634406633338638611928103690277100062207427495761374202745078569696382169948688213352318830790119480443666754480911599245330617392883669606425962453856637458111288538817121646037000526927474582840582090473409348354754435178082443145387819822445178564671835316672671780469359083649369572535912046055441352197279566905087809777960917293540990651047324677264325752215247879831224038857200999375765554489633463112257446479586550647787518323022485168187784751428247088716897659096159811949913354152038445444126765164225672189780433778204715678059994110679264769342244473051673759704993443284350861305148037638997090224137362891639481030259207112398916504927802456065274445427292045196324328260709766087127639542750769576818224786692116344942907292917526322486194713526813109729476069146028588743222532852689844650902866256074131089904605718805092301379234236361253830999562555014632475038921740924825182051442252908917652272391880220332771030621105317326614170139747084559066903357071847282409831626373477504891631240265303942070519912950362129898768953398500550568339545671628062019724355621436775576369230902222126303031252684144672049066953974212583983307155621132424001689172682179072741835788319716825014324558396071343742210357497251054759706438081430882717713161191475676755676846851363711857954936284577292117187802605659078626193453011688682443091962738031186946468562800190308591235267665070646022905152903172227496897944165724278692861136077343770047435910088327875341065953095779312801286051650896393469509545803569067579892627195846407002746075230945365653752729658687293186446277978081448495220050109164091511267126661407724916550932543264967354332542940809581411994870279532546682728293989176435211670393021501149394559470275558068491519059379660344444781907695061599347942804019561699554290318440418668005769290358266053534758572242548823920923099361986545205223982853066195437791512103077007462820922050626366533925729192805991869361278616127464756523631970698913027582850230810694967956190975042747247816234167054099609997105093032499117726845541064891554767906054253759272440742039374166623240456640142853487585979089973850021253541622903480580411001226070748242181583218780101607745261913558322380554499170932765070055660516882472478563588104103370870529992247681972431902771334498990631750029280783123723545650612411892052237137430964898314765234954295102499428402192883946044290032064174096235629748022685539041462354134745749848304875920943199551616796440127292853948005067388361386386893963808460705378647784869319898908816453686275856241924588533632206640558722422177531856619144085732055119192107433266275428475391906356390012426989994296118671269828734765410618295929625470746081314983250238327014727447515984342056602935908552216720876577871628526134571027940413126433612872184725025941331125147389729772113195108324286134394376668087698438146830926327989284841975202821777533140379060942111686136356148136230238491391523860555566283284503093529495288059347030422687456522868900241332645857425044981040656421732806031526826763408485839907329337429465930904817521747674084521426133525270012555400860013213059669200411388820025205607639710717885639890891797125147162801310931052363168268992341884192336844213356126201036416540667005915451726792992504253069471606982175722417073206559218312039336730708551302430049214914149413791847003293375508569648395157666038425668686245622119592614629955137720969635117126291228652648851128818895752568705120827147955602114941501677926070191699473957500286477352094899758561974935076909113455361515406188003462448252548822948615422779751689644835428516673234510799554678010847682723933013804029488700711202369707676405218943666165013336775480829610186916446714488723225488657957208294825460175514031323221184773544462627069784840256751777936498347847021338825755712017898509832875388698160322353578008223973132519290414978747353271692985924631794278897226817308418071786148724445452804932255265906742124625640185165805759407425794287156779238538548743874463867682826269321527680821146117194795690903815367800549911293117809927503778953735561771091257406528060030782016604458787094455412691081501827488663901301497308770644982815156814924262275493003922906702390125059015935100273342886741267062545762848977728582558743350301875851563593301131071564300387518237054988689994297113066082311773503268125313375440971041700053454957175121115964582076874851339594433045595957580072164296517429000607190333321046787681816255004487383001648011563093624118427380671252928244516828891079250019364761536838005873908686636978289136169527975131635233307448920021788016901966819447982425826653837570493266721763597849314759891586094281828848938314963327397926008897709073879270008523434387526727257890557823985573742949022310014318775925408586155134328568773586733573781341902611121848753338075868251835526558595587347898628265030450722019239298807555884461835645954795918032225522598516323376131078131205112722212935597530139065686448310990340089975331091941302537725537290385671577807251541212660553914450967179191873911436153283795483766361182464732939207954621013228491680184091314510607634863459805536351419895035976444622084270361329611760443377002977826818118194696234533508848747062993917515206500213183112532719663002828502452019194548248184820242546972922532695399651477777083744883402908228277839088229826923844555286333777381376239568237185424725266390803794735179671093134597224754482309629005475990039221983240720956436471995342151135587921999667613361110060401927104421054533629878628358183519845021673774738342233672020225598862008802379728531922947704762354731574304765769799539335590982316069397848174354276583450666804822693071827871487079530257369346586304336537730573794865072696754360979168127850862378792284559087114262619633511045302502139118068538422233152534768578809231403838135315681439201397747687036122835511239046102410694678149737285662454527100844211852467251284696981165219687709455799255163726903614201520853396310101641597296232474431660326170784398521381161494513790198689113232197696890071780300047723857674193292006378954130952523431358619429371439449623554272857553807683222146043981803047535326904966376912064477695911263029937204636986510612584905478710088845687593231954493280413843733437872097406976613556651752456127517257400697809028274181314113800098131127616026690584267588950532146797062774206609095267733046856475294984997115187690991058148085368978996787010233067591841189723276108613064907683812580799756469822811674183423587110815525760236238617962479016674399831491891650351672390815011753466754615471971309041992102260080354128221639756712036340162929144260950101168113219197257490186979963336789022442292579836192803842947574644082753759929917379187058368712393595858151013757254477683965760168606881772994868099031209624488178663513465491010268741740457555750595657498454467188445548444721758238541915167869121008011778978337204750165200247742176552918099116196743997263233223758194575197580572869889465809619159829656787572632791976253312691782208843896128755453613167740593768847366851692781405673253037232493338293176975720071037318435483978169278395978003942651648521863864015169144159119470026535534013886103950258280290843033719471519701243948195575640415897559053220075021931256232957620850643066820899194291043480685346303561717862604450936365308879392954472569022787446656637475763257368897614449073293871861317081553051349879980998542774253267984868937337613595837466414672673057553430114836413410269701786962178880705966523591986014615129756191810038014913446223861441340602257082617453526772489144040955074086521759864565212095436508256415874002438263002627369345680974680641503818169954148052259431195912734088393928489594931893170615112289526027552587465852180002918444931164358088340919820631252789831635839452659840745219492556526841635811846515224481168921655401709669771388943331028950656934435669886682311896329213659156887555906220338418041136741234936107572979876227515835074482752284099404455390193202056876719751568206655836577083072175207169975824326413065861442648153721570580493571998215048112509335122466539376634824431753544160009334954762419896976389227497677575833891046296531872931115835361032929026422690510138465479048429512084810953345549767956593906015805159800530776036756350226831208761699573492605455192883015490152785871689955911310454078289668426422942993034029656525506738268082340581326597711806131611696320945040819971242530150727161934905075161675558921984549809715481039511331570357998081405733368435433129464881602462826246510666944567864665048176273494000417945022953145302792582438003183477145227704962951659798495509503244917111415466877242779686593614855786718270443962733546808160558913770746844422069501584397919898682280400747300541301181081712195252208513112419536165094981932327160491104986518984073655615684268157993650652446528533715713600584006414551300809551036923685946776224470471076916698434476911746142969560828025403144031988645432758624236889308732735487239301468310662901096613010939163590563876049365846517222046505438029894546944768964808149185318994863616825693829104209364515803262642314421218029709188428625914244693967956427552064759708832759281883884220326981371403374553912599360622702048182379503720475796235745006655997012836663479946718802079227249594869705845223528206786048166424052971992656024120681466041212234242916029999622655459260036149337913934560852227912669499135510065160400371807124609964663104157665847147533869617604491984469162235368707502285583921286242781762840727221159615097195296254596317592970027945719780539015958645148307458217849077712954337527677977014876974182817649516416337960273037746667770396903953921132097965428868499945592025315763798003893921874035142430010169305840326931152242408804504230107851362129309208490161923106430735954654599414840286760782811373676808317932698266874297541105711706589239408683178436674205129846575187436533751302562566341181374085549021510041311275231718930844785746527357678304034566268456066007147193155340056205150310008854208981171958150042494298286123901946979881884320296213578350011346021529414683446493584011945896662996779897186891979018361785039727129801204911536034973324122614041827536736532659318652029747732207702313734699716775562709060474491597002585116572163708186605623622992641431459050913239325355893096804776191128823736375729199076394373627350651314004435091680912513823327528940142518436877412714668488012669510157973325977098618913829696279461234965415050797461912099632723478371239228237905081480225980404305954078215353785822094766067680173345686549114248853769315650680857874491462013386338838261883830230113327095270609688438822485632449927445382216375225156305045405875308258092689483494147865640070916532971982306129501125662397624328557646774788178970628912620197747016585126224211724716672199567817026404494438812132914779893888347360117099007213201918272514892778353705348299180581029128018834932748684445366973022572035895484116232217867818659624184847035986707619302405264818037103287861083431791874376603114780205923402514406160380551074141982585552097405541322369541264820050585685667549278957052293105311280084504248057105734061660425303799775416622089575493543276863910237203285134193443102863326029683723996079379132866374529140714261114726765550677605761156850732657228560823115897210326246258367153251469164177541677508081515839569011090246228417119034766215468837387844026191027991567810808199941626484378670140812435615345109753527769324817646911776212775249304667459561675176906965605467583335306117828147551602077426733492176238288171435457083248952701693315491466106996234882478275155592111151644189826975115050947856109707963425687983435526993032683173247988036376375731560519483605113194942297551814064511120327404582024530047387664783021853455506630788390091332900598947938418199075329102848959569122433239149967515513317049098264556882538606344876894726024113128201819894497871633969720302516955542921693952738724702536885678187621802597608597602625645727674673239607942897718115843952741311360417273939731145607013533618892614475373277677046555517770130890780478395090153742154107688382369584782208145207020637397615730429410148576077549705458479430235223115696490495177611801649389196315365610842855417517036353502934974854613844878783129348846695567803458065610923061819242533086327793686008324003443075545879521096799845549844681614025525365396751865175104608931654342702945976197655023868764459447103432884630099469707188516254362995668005467946569507426845985534982960164581015261858460306565110876226648372005900294587265442656039312604268895220282417385432740111537964804089394467577910063115503146946408078744239434880288612606701411921299919564649872256547344649257036725751104065055853833134840996195168126227676777571122972143124454938559674303341319264620833345154755434025365594863589443041397563803476250384983986671407268690122851220039829280579841119246834473612611288987940860493028386990664867092807906058186075366912274458945498652142651009506433825602316275787428273106728230604583714624419959575316905489302740071460229475281076996567945710018747662992457799208391279881116696773510161548095904116693058394098406750524934186862586168820753728346173873324694231903279585818617952088887080619872116833835373324630939697751654730813823163786078538425697365648628176184332712313400724007638158201601099499683193483283068602376750236586079473371432220925080212381414693460717138974758306524308496931288063549470947937815420978778451235914855801843109064176975048265586289269057284267870842758985818498897801830139211427495800783430928555476423403979392373727814333611456563642743856113094646822503304065929409440253237943698921591682678556392899744727350523868902625715830767083402823263501739513777373961148252467412924480501290863003192344947712330400162350128274863704356282802308265005686420530054214585056164278336751490004389683724469831109795135813862782291270083563955497971749646386860677190515369985599410242199601266808955922976966347348905335075126095370893267106946623383424430088103328742198435455442082475247242156837943144305764138636074791726029884437497605114271417895274948027891800956840220075211151406182677554655585220309476564404060810139099003396103847579588474504649458012085447347488286654368628706402932850366298566777953423225272856200097586522575766593433399819729396444192735802805024861257028458922719412033559174783787039627366611994386585321389829212459291198860254330373594491437279115669355907995251576882252042806226931624304268061917421849656256091814536042462081912154081020345955605631230918395518003671728128784016031185038733311302620542504919627783277807822173966878958900349184357445442419244990812253852576994958964210343571130588104828261400895840073843625073952163744005396887344836853059263182748214049477054942430161938597220326836249620122097669463694295640255663834607155832562644278759645330727838676431680906293196133371934053348915201914717902570160352648819872813657164160827901178804835641067475800440378463946828717419180962576780125510438331766868986255473830333915051679715225211433786494345501855904511599817166184285505543689638405281212383960402791562395638948358512364181734576593891333786429232510961298808638661219255791040075320640498751110532561242225732289450963397170147145099666588051181475206576939327607966570552324919767188130772772170322706299365749842282800586672661762179798067919994838966822945763267157421715929243081464660862327914751901108188109511582427809070578515147763074362377053831362284876640004267411754182186964819402908259472917515718756724548165115716437209759398982145147718569744870932950481148762600847329123687692114153852476818202339164932793785810184893874779768107830241351277436951030817870466956487708263929470948306223338952924231074269488607625457995929889624563351330865320539411312852366360232118543425882846098791167909699271804305335704905775749164333539671433762392452284919476783852342387297565367595039168200049505914557668746335602706403796675138821649974782399925356310048223660218063715439383320317567696531185783538328362641406752913261895372217009124626434908655029215830031304107883453374359474237523575475617365057422436452568613938718270306678509309803262930129506494252400365390858986633609253015994035701389729553829974163458670908401772673076800756160434698161698614237602239926028818901513748302073084450700686032316813568353358564587113786248163375364608724592451854694624456704324885675233906251776851193526560488608328774771348660644923068847667020201629552294569169594640925550890340393730291790448176380550755089299451414936454614931074783595269162938437303268374735133166979894621161597061358394187611332595950823803998798013455539082129849702840789723195054223953342055122907164358882743237152091769728197987904508698742023822141670398611432085120925825897988608832403654329370074308397354079822562574444154979696024533639265458349494081509533399511287744670219786211300900438974163255000463489315313215142936706373959714447474398702313104521556480609902499857602714987566717588599722650625407941773005654384256131204437981282854504048003080466350767428840934874869838610984463910553032428458403238851037580114277402050619664738265959390754546163802968749658904574662992902702304909491711485456337158782601205687528370835368125975159137260943767331565110841191294276009073588099084967159211747685785409559119975253298479629450789641291278698861304325855916150127371299038434669235200940670751847682189311382145834541620686420297475222493173387753124833874467236782820882742531229010610020166546514537438757879218704978170122904233509495479540074697364724479132607309976472386863259629735889456177312123826741598401042931735739300867798097209901345079365599455391826921258812659121710378564826366106293684956302875670469307994351720356599721603794420230358857142745850814390040844316614589240686849880340140620753093545377419950429100704215704585505817316731377471002754580724929360342479234267030894840818462301289057171589964660676374552626274770391573924129986017238089222002548403845247546526456005048387175113971603080162079120375638916109786890692599076294928458951324225161119666492467725869579727938984176612260921975461712600601094936555595626631300496205220597681221603477459645667788235790962142367474723646235236000186091291697167299734514006916397574293468629634848898350999670446881659035507073270309055992090046932821607122403027613924198800107313533557449173969827796184866673603892358573375434228558667355778245045659731416662444327583867694561357130063044116472673699613916700076366052698324944968909058275077808917835189852170019756488402058293711693025953578332318236135128068846667015201540561271967736408437568512534340069584377913414161315409817298527111648897760483802739910004087828675843374850224563873140218195031254072685539382503031362017001456970791879131532982716939442075075188169071248931396810996819977528369106486446555496623179794594369807653065517601979247240447308895267454603412430783110233550789557484734020830136149442221410128412488974122154714626667816155949787391390527336780410469011752086170328159892324022757993190365262844948249166581176558619479220993824507154656904610569912905994258072689779562121204647449610990182134080591624367224759314923257460673584301622855528915010559191830915156577750324093972486450512883080229601102708956674523158494102750601340219113822407588977930382079508414133795200841874345755029051248927190733552055039359159290785534813513728767810648036350550115481605521331599153719042054493757929972986023759991147892286358056823433844655182333485802379619735785035966774839168926400639790897918830295757035420516989885267905164443653976493961577210825703183444129391113800390782781678986601819811834577752870713527248590760208402783798733191155739014942615864460822882231298651555172522599378818647716402826332622439914911558527273510493541861520326487884014534748490906464727063518238347918661138042799747045328907603163561975648988581096520017225383875051618812991542772386476335282991642529082996059269198707831944148161037060955445769241858077567694663787425882807944924992529117873021433048736837832009852086546897024655753097705363912331836980781874035779389290653555048287855095470564130011524344151700444157796033090001812115277333883422874082832305076321342492100220228350844698412762971567937521419217310620063783145641605213856306988864724942738440502720862829217023585164798625274892856992611513320346103433540831650583597586815936376278394332801230480136249018214705059975155454149198696772804426073094095344899723443312932017841597105481206966794322789095914214339346476700732980716365620642293506069552248189334669161788190552715714457530258928726159504354868776207580374747587055583253984922668861464114832196131776324774710743290690756524676011327894298703675667756864246988436741033287861987542001174077049123230917772800839195079519419966449495947076883389402560277644421187904850200835421001610034127457990927728428778308841597719289494802338682794968653491681367586695038093684891396583331941055128444286633231071398868816513828269407815907507336036189451578550085219465776175178105340471514264366190628759788979429247952209032587162170531274004124942703006023238960064648936740846702103077703405604369588782566744427634127920766000773500865033298305527237943540484168455954662291696064140198122319727939406765226995659045941929815739330656901076844750189241957127179304961256249060039396444064683064409093484492635190626780646632254637495246138226692065639468260286598432403603070697654603820170173719046277175519588374213994983585624101196899455926122436464019295495066541101817492299781674267946653372985099208776281980252367035484584731212794623643938271001310435148583066055716696664469984458955577148454116171636552382823548629140847567695096580416944277058147710763143769492736673687596593321075320629917620759946594764889831730567752172798597139656287109740198319891301250920783365933749971927871263040365720439057959022682351901551852576044470674448149009045467909815936061019281078035551213953973999959187165274796925350689469623074439288289812474820842980151302319751710120086112188094805928771041515222253238903107834564476611418296123880119636740876922850194193583315029296894378495751564840044437428649237320449062774813698832791980511405946292644484005298526875016999746263214502695519975207007124492778525039462398987717058253173763723761256795376024886175044671847052401773909095907830352040786718335187149824920588780276534236979499601915467704990657312160324580748072109731221054603533192807137185234523210057524366808861848745883339646989316337024690546376334286537300307802280336679386990494936642787886431692763259430359672812618845378043887639041637086110087102607819596633810746882436099497391632845742273216700279938776933116020513685440070738798168470994016179475311091494055197857783423258443572811647932656268967068404026556804803853555449635117619081772653129740106976403334597860557448379879807179310371369299634546010119877539160688389751037009789830495541833829013748722874080047385721921999140510726478114134567807046310130207070445178221787331408177285351718875043660210383076833661325568516236820016481161915580254725793727048514697452454601822113180698762524274943415411183636977157733578207529392183163367234141624690732809451561659936487655654268968943326989539486053833870991735845593033298193871125702460218091989892783607702585640080306249708346107602906701770760799856198408678902025020509557018180109596645425394260799250005644327641549274969820697194637231118617128789441463272278683442081415521841744752423792631292804642734561062917812973490488311455742355666078983914356846037854234710380250157903431931026191897869093249590108912820492739012234916240555797854099537008465659177892470718095930618068171734970870706716488451687163750289708807599153493801255188167645635423935583657598470368489596686792324295063876435690076159588816322928918041243379654329241958679197998429401271811722972265611165432089466329166042406535564589055450791329566230990187496976534038971168192565050536623385932971322973375204715640380800913489174988311128984173445988900846437279395921224594511554534077811088114987556742609791666410724457598484026726579520950775915739903939238996303313970787573729192462248189246934628485604122556392212676177130135760446392196443779706322827559725729271191337797658775933739351597081977344542590269564825054482674203073642890291195854247984087837723263530439210914954673156419638753106323057790053225908596271913641348813772048810771318286811949374520415979864623221633162277282186428431328180658082516869953364682059969633802036239469886371538247558506678879040404816895932855314048174705681292658775826959140200214523142102033937314638189884626818428719394796492318417086898396779432386968669653043440189141991450949898196534387662971141983629749823909148593780028934308941217241564787581033590745905475500959321047675703001811294743290940999988041777302506523365051388143485483201003927922079989330123521289624680670731714718553406472282485928907563244596356285182777766631683728545036547016261340880787691941850320200085349718419041385763206996995347358771395114267680112101462320892663290552936040614566503607773736371017182896405363541612834031363531140704874165575774678995592742546058728631549733331407762320840539505165368570284883548425850025907966142842440139112055098324652699596264010749024894149625641563090979073441534528122277144649712420145651087759121061344506360316845521600516689749328463601640425504538888449873922090510733431849346998795662219195140879720460806726678960956938326951872069555795000470636155966732319447516949295741678486761245738762157262404969934454095634428209089651251309979149418625793595546222916864254138510589373958515099792120360094166274582155542132470961337334122159891115731317843229374890996744641112066328092097273199833347652130493037514711577048661411179769745361730733791520773646768334041240770405908605631062378816287863261492356311538347506805447670921813720210898272047064887707128104698253314973857580284964286792463993709404859067047936597465059191364285991136916569847880187733020543092927828109105922721399387151189326819414425770633640505344966181798543204058538676950238797748723070447790244184246429566753178804893561138730572062746173945981003282658129003027860489257512156780369390139879769684620329809533870642255261096231313922395109581436736979054035744240048905693781114039039333932497682879090596749771613396085272417148289078117474966633509938963648798263344531226033354931886270600188335917787455395964959929255513048266991201945078677538982021319786759213212527247948930815168144440187648349449472856091814362870319800814911856215231879736512070522025535604243414057640634891300038960943999988354582449369926674407064143266044968596317332844064193120119506773484411149327974274680046694732208140725371504353842298465660042896493330847634515907206792138426447414859942104405994806446020817337922178165713269744532780965178118134406952804695995811358665488566111863995497417232391878813480411000956018253837978872446276511444166571037602690041596849259874718476010067183716062766673058637423061837518422581269744887967524346031484360049017336990446311054603026980159791880797053757989559594254715123854098335191464594930014192046707759273706343961635253003733202791327993812642973111061359266530647907000489927461631436655685895705319195764065026098814135735373515660870714764661242845047399456119030211562957911358242223691340122621756995853122440970147426304281019423543108749572385320968481561747116549573332667641723763682551107510623587394144901355386058969005972409939611776527024526185096091691960635474259271183096555373065778901575552017356414400040933592802865417868490076295674684630859454742531662124657685792521275492919543686845880475256217245291686451597041801717578273592417375993221224704165585952023134851950307218751397966230866486374731965341788189611385940553097761719655780548293050260291225251746197249847664510962653477955188077075052768221918563005426692980573449333250209537154408718442145549991204075432872479163884038167924772655584372790220192021544620892080871666743449298843122291712221782846994224843093792210296740694626571098531987900187916099681045317198697182334659120381171035243370986725765995348799136839550506525571519599494728764393575471421053482803017318060807787895695499396500222336603055200116990418636297895651362932211777285446180297976801252814215822903260279215839073988855082437060503208075455175577516496309342134722908900158036428939301925203905489561594199857673906273138241656399610369741669580006362213621144762890149411008992664864083800505202891626153869471975735719443077981138104608312844459784397467060911179738371468832552190753070109189274128512107763224349792586764799192187627455307743419264035755521714286169285235126577703608705019595579628151391467425058503623890476194333057509896213917299093360864264269978835777563638935645640638848640717075640189149118280316561484467327576902894021179548606974117477470995054642666639819539435200632581534556050751552955295729744003349977394311544023322617611254264303414788166182703952037179198767266060437770095786505307132487726685079630162119963067381076106636321257654450815998388419143859747709303154540717137170883583596368204797169987570152285773923599155469885835889042782042784543574820531213212659315127275241733293522031408859841299189462180957097187734304110678961807844141924394454633633739570289625314662581430108344365615351155077012788215333439312541066884279889055147403387917240648883710017642317872803185238414261429339049394218797765652560085231415961313550971841964146003059791694777677786639496329336309920331441939702625684695153457950348547239943754046801774169585480513829341595875601171760504819707560882335633383470390935509292995337372363211860193256418566831071216652926544633692634072630454991851830636561357776157300232708780747494634088097463523937467674479931473289017658378128592295008045793763653873573636946952683265871696773899618818086717443439507450625696149253885525254289201027770907643397993900819759961012493937328709108958337149440789915140758738588257684150257822363831701195769492277715852648948489759941594343929012261672622843651715252435076692617743190000118651529348187075315004021647538929297981898355241443959710748149325572279503149533768362723284973810366611935527598993039058034188569675781814823670986493118615559513618213030450027199847820413156344657085277154251336035984523548333783155648668711933191695728428359358019108014641065862984150823171305853290267988068982610030119306575329801666228377479702203732540602204968459661184471532722369935805060328532092194543226088205379172294292182418908454003508369011620686200054563106781559969940241005262951032691359601079107148027370623200652704177919264950743085234906256949426113763235157865638157931684510110172582586216850636685539656719600131797988218951445357901792756959645898061156409734894477981953419376765917029693498746087978104478875208450433701730279817308218937174847610602472047957670548978107185292324617440375743372223908889716603978348928075999487675945688949625073493581161082641661170319900816502715771214759046979542428811894867283774883965246334388789501469804815775777185964245368742306932148278875037639348863080896021609271462240813729005928899375477075588375388802229110808115516477045098198114984543093319691890307996850626987570345493253754256678710282854040596133043453685664430089556521656216001037172763579938873784924205475225247618683849356275364899293786310129212063304155332059177910081566865046727932458281922404726465663500631280267588774015863477947911777630566958115462444386554930719671900900303552875391431830668225872275027577143515582452389581921879124138839192237994492956625600658345811261533214684089548350489901687511597891174831670930875145870507430436448109410857680678152999814119039708954267955552574141500973061025971780631626708063636664763567428115395958784109164899605203858001826038465891743102365518593919943651132057118737301727193170697750663836742743404765280010252701132705933912528245255912680743104380742433543099367408630885245247452848227760097964738166544522686654430673003193390012028263642070954479914716465951772961935510881169295792876047438436133268266211346415816563884826605089712548052009612906160745664385124124741126034210089648962629696924347033125016969861926519994812428828379010252017730767537672517089792494112006416805898448039172616242911087109902332702133698246151080336054195820109432470258542974702827859118382130038117335998927958594378283449035602014354825648067581197970699806110285151673655772014779747749721228186574734157406073219231263095672951636192392487803347773262871018225570540257154084976249442665836591054631624062819466178840316313276368326571263100808483511025691366533485683488719159126773949709640731811292797021601105142204006116893708859931443436151272688643590611495171210003060424300786732654629862406341393429649169585650750315081223119039025110532916548675864608617814861209492647696223349379632255288714760359196618741139589794065178571130503688615794566686358719421256370854299607535108922020632185133428261761271024309286891637264614563695591129891200981002509871051674028417788786517156982902355104716460455118409153529508240112680223343509184223710789124836254262847712655743710118938993912440288707112659283540561699883760323711864116320102003162050483277569305051360763741389922231254658053857837987994314515459716944941044924094985735970965998282146701453922282650165334181538232234270168043139879322395701273626087483464109194628365612164064769277803450739481796863997708395438370928164324350106574247825511112289424736125338141498521366890908303568299882963302174676759686169309831712198675889256313194206864066259960278418612874963332775094408590910234493031845435357848304814700400303691923347442304244652449446047720811597095454346355517938620023220265966092474241690537135532290258025438771496035405805631947074421972376682262505635664823389845625827183205213960739401898873979106726926901026112708096279864425784076416194719003843014241845371976084763457065468580700348271789693196955805423216340774247899487660293206650629547085636325809451533894100046176668520314001162969976273096135174478002715763601801832132370248564226597480596670324164643434752793326414494071664818739181834401478594538786857888081985909233261931349334405812557181419473167953883705172859568927083287257252350494559464997399651414394198166287683729155842743387513382304459330315438385774336825519856951943454977049719268764996209684832374316776184465287214268075278222126917200171603990236841987769072584364865973482262695172722102027655094511217558448390054026979590888404767435177901245215463311267745652801184629672642446696896206713534206741712197494416485389167576066341166555516646650810526358300823789197031363724873861256758224014633966285722139950849610383694802368358675390678886655397345107190063841298642042425837658541175284555523244280679910140793646165689390857747694393702623749405160612326654187668121127038274165761518336772947246120981318010107116390098596727797677409307507241896291779214090387109542822434884736412368183744880297777430640365003065433942985594415664721461915043386906588829211375410815524635613358518156108051226541346085440971833823350905724330498776992868650153437157832613226501526363998301077839200714570663408690963621967085593016832088148383147028064934749282585827139799160573113509486510253632199157451437723579898207368720686547308533228376254322045383352359992800702981848848505159803061446746670424516293270701871261259743194165071091173344927246828046165502962296061713348280171505722490207856830361212911415604539247234544765062375569970673557437889337685621249431266597996392695434210597770865119523652618752105313796245074129147872515162353763162167717055457673060781941874881294102390649515493689631886194619537112963528441571115700749228013395597143294307622071665225882803640367308889862726969615948071253611554358502396322158018562361634370257095725787611052260312474540621629371557220957783973068145230494935338262344176485854583232381803377237023959776358922545167359971319837220103526380637351074349594430479111549990048853591185742823122984691933650249117172993287250010512838148610720495724185837703910937791900741696807667105320504594257575303930327828676316616201487289226421331797645930313420356007049119177371406022846040325839810510433891600914198166645733698996710690448722159321367290662826587702720775502591357856833509607287598078757952192221121443309647546453134651043218953467127515175891765442350408242934146550513030830532444587535482947832336655545249384301081894475301285349304197396395136548837950032149021994236962635574058367924878865404685524696344861225209070973459583881615100563756173191642491796791752489779871693773903704819825177078316153142233814229593475410715431203886187019638019016379209468921409604583404462085301652953789467145934551427342239484779320399949493616921918461296865702671244532971501283645375001080196343519015476195728715447406600604412081976522743090076787770846894045704436652069474554401956601851550487126670655202423174053284253636407071279631287508065351499465456490595374932410206497821565873114755452543071659614663126440458612633604405036200499376736318004723567149354602446365163294048009860148390034261779656715949977897881958190053792244204040779639499311212120469181476263232082348910501906296231818177797776232400790571508626490703936523010064155820859640864374717646969529319461557865410484177033269581353653619914827820124662423610250301555875563036565697117653774098381294041862224386305473476466030693113988444989789790755733763890749413870484605740163884081007221579234594642427726530135278768511596907849659070790708328806243581901145129657961700270143722995982404729528446501228806061882495877092329027657779676213573109696491108598013543717235792922656369129081012049984367700663853771503807856402530137719935566073519813536353524422964104458720927137495955377554072035100261151745389943145393110564803537517009679215163100677960275394823145781775405712323924735044291773996299352341147511944632785495076717133300524747005042830326333784896424048963162275000258654965513282461704140331429795468086912700343717465916889391411385349196040001079698958512056888725199743194007758555215847647547542274115976208208201334054301467643635713050519555809160338235808524442690821849444007093779278081030860282272002630746516289183977922903301723540346529912456945067581992913496266868899053874560261534906045667928616895791088717663460628461357727577037474353188334418585685276535047784015361066569436645919696056571506903581027307027731107842103272684726049110848059104972671300868562370229274995490360319950389387912451715603548793611779114913318275557031346886197878968635768473729391701738267794284842032116973478040788970342688215430823097399825921068493810479927739079890079683431984932968831221533333041919387539097198459327777052090945896550267377318485766843737552105107151016764471151350780018932376345472090888598047538997587834022498298411762815076346129597550597328477606896868077608878031370893611661102109854524772181764386970014257571443400102104365263760552395013206999267615296735531677064032803987836380960539288366686638355369745760326130513446503737916477593809347590102903585053167570858235427934145800036385548878083215988114956273495951892841149576613385028971062024479092337962470006454177184361886065597919596720825354241182923370408558170331810353720100074480864380070544307162217481832523390060861768490509864876543894204718819384887735127716450256018031290124461826334582786001398235635827435679274445280408923007706184788774116341010992089178125457105478320940736734856495482097575558972686935533145718566415935779929142268995052098267542243778754720964512677237267577333423074425649705823379001768211489171969616848833751372975460472438758897204367300694426975362015840068417277372180625858367063587651741348387334459308808717058149009821252011401233176520206783850068809572920485186871968206664057892444590632600465828690433253177507520924362363421207635898283888983781772295930764082865000317835026038868351038016412292070851448344187878373792218003732632861511713643446005257543732908698183793810543376799113707727447874038737367087697864105707467095594520463667549988861910367976958080575760905434434625756216031710049214504189227587425105280074549180778534302998334107083908106862770231597544297787923217701102087302100002073678690937018525465412967491008316372639268769480960025914983638324658493852488921421245936782896288707874443656807424328340162598424748540413885845079206730739855534842993657160148332184347282307580109210860811049926880401128850127248050064337954020480393259953907341623111731790431241946953376611156200871763468629101650449226623356828524492153247640632628290926523592883213188427168546168756764020334367490687516874105766592817833373795925115599300697340135377048651538025514853931653865709041354127464721186176257602283501589215795153865856613725574779283960034839140768036929666080835586442354104518237876250981919722171577477615122917941819351821708840418540073466680779855321593014734074712026790232229978873055564459431135837408814020763444962463032238671959601285112251813582153317542880365827576846107400624596553293691594718198940916437211989627582899755610284612317034688236809969329429007074087533740381024712070457120650497998201014005246032850153547018283238333183128652525760555269507712810856269994304124498149657148450514338184400432727494798048564778159921903360666573700698238513109946447081270632212609121745874350845316549037822114668426536135759277088900690894107218890080421020457358069956393772210377809037579401187910491277874426921982428689013227124939744192169532745418943021574467251269782208084372477866675992948187338786277645394825700971635532252947263090089030956929821036939242877599073964296599191968348029082676250321368512737053833203511062641925095633815624814746868568106833465239980292141274067134269330797501167090199612951669936108383995183037533084426780743285869300244831485570281547625701487470292770759519791760871700603564814707643205316478303383928856001617453302040314411054010196116384213017250692690506381213681392597863882084472700189614864639381521184809205472615239133465700051111067926091096824566049739510749435354185439616512801807396845839331843050877947911080047260741159868148139016280776088928317853980711516165712446099274029530085524104033162495277600220576922973687797770088001059549806766531902715022210938807823393315058895611786025325141001621279013495388778272126095430699045637098880664047077672991196606142670959001456208835120438471804371481153485940697471643372610103321134020172097199010203914335095156332089115218258231524456783002512793927305610759907417731474842725766847071107528378279860251467755254634000135869027819746309048331383541188489825063621476353189232787405872455232678999221346199483693062972841210670122178656310413094399914302393871617420751636921858564391622007707313591409722116690483230946067416287520860598715319042956407278237103353428450908558371464431654807372170235104784408548926426915288282007804573813914427499251498656151572526686313365506415599365147015425668166561727978766440948933003946809551072290929990055263091938296934486625658482277150958596622690021800199701780590848193373204935746866361740978504265946895061179228033671817259715886797224078510487336627989004783129913134487880109683317286050328838165588350990172186962751489049359178093850708994446869159245621631465000301673335194294576361095326862287463942408162338117390968152283170687652431390408641011966031324629792974193311460673047025199624681218523438231080300635564397020286239076651907984871955503056463699921098762215788192754165428122587967534982507793875692450941992139432303210927085804943715914465724851510636586550404471493428677466732262223798809970730521318875107862044641997428649473043925916753243568976225577459945285273736090626286245124739254950176886992605130397026035585263646611862351264336367195789579533022032449022002887142807467026463336941391951084236444821499828049522359375903696648936826755366255149708394392691657975472576193025276548071071744043103984946935553189442787559379866996435381496732892417488446779623881845361212033284382971950546546252027770465200085428252451707948983641651443552827679997883369377698663754180449446200092443339445785539959005777530784996063893523091257768480684088490615513751195126116005650119357021162349199408175291237364784880603459214419773182473144374809746413617603337883430257750937233251424779566514786847366918421674918468914045855002746869524944499595634558161474697142675527418158623560388575890435834717303831224951576302009279915110359383831169790755450912052750358547153992245899410142141170766930885878415424896383111736608556748430661837199394729030962991022273126278503221303755613527277193498504464920786039916491940123957383369536252458648358850122738333231750038106749119021146763529600895691511275386296345567205777493171719038905306468593415240892307992846796774024932419502186993108625782078596245029360478482932722711648664018392763676856846446797044326739277040198627581986994616205847446135642235093712695667688512538103594836733372388778470582006285299502231410441738712674552786632200647670262443845072006005775658615761227397180635813333095801209989063290258358957412570285693875715792636125299866245909954924791309786814869398056467493781818505158949510688273078869827124787296326432347190084090777300000190835488642557746528407903984329887905914545496432655612840498435896795347594596777111609361498232273000779125753806623981679209524440402147310864889587438028456470320238271025212706542305038301837253003611452791328232479382591642468833570390439129185338121706092204478148753705748722829362797879758194148743801720524137549645924034597078628024119909553304785282076860778974530402293178130466322031129368883080060783627728595237664546827243247307121049967933489589984851267636215012702344196903151258431736775722340929435953068755575436042168195398861529262299976566698389627564923246997277592284073599951962598513710475246406218111202352267672568438951503400838177115170307572278947225800219890770158265415679138173369249868439044603530051487525848445145209318085251249644694661599889381031632551603526137186058713385126005003762368023602903541057091308198142219635670888615979571950695639643801239589543472389412945641421920353032939402591619258713893508344265473999756480129731669941252551609121627812928050575544058400832352926970594186187083774625838362199336088074765825361767003889658382500659658532072082049022056674033071435969558363602499611027283081467904433310880889409129894140070440116856133078487279410196190993958881713338914077007500128738395597976919417897891434981203922679944824988285438760184061997561537254531616746920690587530144418178333550404259431636539619862587284375827461437007300531611001513120574826424177961562057578174838912223826934823681450971206946659974677507066840993672980982789144521827294433877782177905664080896892791451811467145401990625287152921424481602060364690937646777359458053086564131772490325876172636618092049395168344514774143388491725987155425250585192591661707354433456654036056441207616520675143164610499937638142935248444056070306852102108083983865693322380550277431112375038147546482109133536409370985988775039252450702369604315239439856829140912372765431395718708159685041864484453040680941182874671356916767884468229674143776449044927411183629618389603119732855085428719357902840300398811885347579489101441632821731979702781458192003672757341155322541264800389126394868704865032495522068347123241424324205515355083023286314174218046115448263210754513325241784786963283863878796153651157579117506272619466196998516707025470773881155899475669098782907651608049777696939542934208101927455015857582772330298548293815390655646919229959277076369955980830065886363996691453322116118308978570918448299088784476834588771026000607291653813255211161619821031915684188379464419914548193267837599997424122880402156739067116883672628719031703899813669998988532845992400523570440641787651311554345655255224808167839958417442952101965164525674820191144759781975550205430422674339218388713614032997047880856636762251963804001451040931688535553894757874887382769232852639336122336361496604799232739186032660212957648222406506920205791150293062659415316531850879372695633249293128795551875833424255505860551575260737166866628797072996042960093368468028231732798388581396955216639062266741032586617142652286888368406096267064354256652000198870660056019004744945789682312043430592950236790714200979073155771956850267962350677498239466408407931305490348812255817224513524239390711853806366798509768786248572897493572643142545640715233070372356874983108056309851223960794960653723156304761556409469129308564707690966032125894943947145479837393508812577698101225551570689767932934865512085605798090120822987560495227732023997559366684541949372044679826795170839936447508594720178767699269481607116600183191893896590576923181897591286581575407315545526956788371251190373249517150552995883134508251545704886467794321575170490415133535623580343786578561410373387897722585712744526626105268113850928623973148121248126205170713683495186640789441489082527636253236062514052158962549224917793589435465123903974986251492721314463644838577347426299285293811544815339101872944394104690027869178364689136526568889833601261776187650960752805630613989942181273564794552013015252687519645659340818871699080508571586471983543469550505118873931172197461067172270851232911136428672092708206508780271753645509763901659777092996399637850538679111586663642433426433495815546725996048211430395017873369460148630124214994117172008244882340504773060173627775631590811773211642238007622244883868412518061913362600183880792834514877577220870556898839715651037928963908884980692150518055362966314060941455541527119120386708953785202023377476416916533845870436170603967060073804419196643552672558683351728652823535494039712129398504260095368692592566412154818972297643281298847992396781163865857214355885586131185727403360143481118662022310243082972932271863095155552142347095246226800069148428460167711673362001274781947862329549442354356000404038531043026876143497743209040550440973015148789042528238644975244318231930784199828936366970347140575538696444564325810552966386636137765149979429347618301925702561972257264919376071890847874885531366924098163835107679753808587543669924389254016377043603924022851112793169419613953449551400420722017192535845181490375322265036791855056414435908654849667644811560134722676832853228594369579284548039462173859979813198505803900955062492198005634070771679171594264040923445568907748765858732228286258322151152424946249339349298278082755874656860412734147258555340749188561508192899451114987556229496193015153910736979500850551389096636367872923049024438198691721165908177596682192760410703899669081019729267681235468840878716897593029837168447414714348807676251942672428021298615362566189853455490450586340945971072079275794896669391255612492335662566756035139052905640921913003978403280745931640806136545484186401945305189096995166571180490301397671951466401198549040567842285217471259067284069234866704135409914126004219795910974707886976454429418888006622881252953435214929210981370594579276760170654133961975777342385599062111619548106317341967251527938499287025261682223029475771195798543601366016142052939778068412575085912222278369431392283111264906374271809266805301719906647450140509761689100445604243734153066669445516631948078965772081810097860900538800070233688712206460121790569368685947891931896036992989927042818243967612738379262588812018682454229688969477043377797949040241661059320971794976549865651972685952722114296260712699536380709266435252371384383705895516236281553142482254547489705857613143501258803842621940853807436371263277171338016582936391444826811411186475690217538052867841381778823330548610656896407250833826404370706250105709342800079481027479700733224347237809607888168235296072332272725362700295150624713725058648504401447241251764798141232332125242929043966642278407469500040646290188753515911211768722735582395288790907251014935838829822536424439016222529210857788130485347425367658279137738801878441205820715102182120111198197645192551656465627622672280567923430448602478159865219590560706720628613501277568687022462649979591827299696379356589824675713388981761322556364390100620689896134001561067452977960430923719297325460536843463303606281155815457397252160360970109644805652732457048802132991716593100768649730015586585085885063431896821307206163205616927954660654992676534418366959385688293733608937175329922743629083453379207064507670126862958267343284132399588972747081145572286016978685985874570422994112155501408425007884623378495938606643371698506101750609119369483312820702568949613653054247529659179546439935726560994114634647956823819885312363464616632208539190889766476200880188823579265418669125997414395680982409747130820784684738682665315707490547001998141087917873230977088432389439817521933780793103721347983094233980758521431343299166314532173561236499082626724354713990401079178086779926568237383232203083574853261604386981728241922510206032530673619734211466080410988161604213464691289004833552159006158922276189303686284422369509914909651306192685781948913587212916067054291501280879729131649841399443087313439985491366991987956836694821338682014352981935026510610220972220818672497436131975634149222749924467972135957127073497706119908494285372090027212088564061538472193859006198372726869321303552518715994245444763972083982234885150408403973891592142675586399182177748971472111068196257691025904714227726131504538783112693560667058270809572560255980655334071662490070483456805810669305789270549549648479354096469653336804406083436858430199883847388480485816779927650489897605513006456131322543494610470823323215561337890565205926309519770881604129419495039070957386715008976227552998487586844185398006048829459404806380589630948682992231561191571595198773987745037581044629462263552141052609079859556383951715526714202764909229262981934779840362616024394605978191474656131412023755065075681409576485605780271793538023164564244982761295983706482278071396874685555512331202277415682678454934035417243126970746738724322368799382007549649513828922754458555010566485729988616384366295811768330902550065014369622813008932369616175399285212095423878619425564797262171450439166462506189310394777574559582721831221880318624909033735783315606482553731806794528904133422866713278196001848315008699401947044660373460750202238785556432922642680240002952427865483301282814750709651127367654051042776824619874670837598507749476333207041356681035582774389352012395464230161868866482905901698373896053135561687036083257088998311899840596172492154295967397665103082376827744394604686914246479580969619833719152027180274083082979204152038124513324067078479864729119223875626772748120861030671484020362745448900613880170116570196431475354813574335849300876237610628183881127165075395738272098838963177398499611616446666300664865035865549699435443929039089285671867551734913842287940030864277396145213349242425479282392563657690918385784047116496337291240164369018880560747855867552506596233528943352690496559621993877602817721957492986118929884271296946295828518380840250313572811403460188811742137476055907972507209508803572356409874894008407319985108285877827702480586121766055150430548440709013746437696172216231723071965769402963626325599036212237791548966597768737281363348266881498336924386130723131169951223377966717832650806480159465955116588856469441768457882900535873141007347614074596937215424899588120000433970576703169429259233004975728110683162995255459738639911069595083055281857519116838133350204610102662869514332444263469789493993453543879147103215304138860404153918367487149919600803971662709078165047124865268414538632909369343245410521112681708622174465951226528327582298668494727366279125076364085675034741526479262513071321903439212581640687057654961496271546302799057632826548358914672724869444339207108851716385850866707622167128018337037047128684034083652757074746344401486595193769592933711732989072825243317214687550173704286506899736331235452456588117412544416568957216122875701033119380124638630533632344585720418209100453000440790631191358634987062132630674648433893701687323621298630911289000893346126741910732458946718103837402348875042276776533333254041334926175178192690615444919925301235856881020909103133096855060523287822766248731730882499475660927323390101207376017379478104819378126529617686050104517907344856026622966128775695902537374142777115674427930720004824850666727346358297488891857100793187145676662902966272060697753804547893163458663398538922979153323540609525493574267706601329569327519285461773429580003895383788348116268204525521882282051284114858873515431093314250562412378674433436491965946761667818853998873531364487249755164493951314674632913299568721020594573252789711429702337923186381625871884153589421304323456957249139432401353120765571287049851580344904216585670180282080079495681154840252409301693340997548546078504097937837775809494136528705807926105256836710452355553738040523236333591357982981132460371111084562202422025310531217162904506761252068866568379893804054108607174229031738496892442068986278372917153364010427335454817924292178087666984502297948177616069191458760858952408219312968094418549293735371211230055848454801407344830771766060734052730080026565079737691074457616027790432217723150626970816948008399794805186718121229069125526061803010163572577578705304342101309317981399157971636553408040377558508062274408255800326552420328598819768503836954656589694804013782178102939239722857533800312434031271296069200136212072364901959000182759417752691309896189185072449158458289798678995691132259512185938292546268442426944345270844019383267958313667901521440166444145253237029694701452532954272010174425262445847761031285332556339073390250966632701943816045879481940817997128967963980338845953652493379758314955837660672518592283351091887022632233120982159932540118229184435392493444211471746942374790194286883137666065545579177583102274054129604312192291632553012371212484116121958407819493513859058861669084215490598100598127687170813878509779419508670439986384198003652145335548732091525538440333098194160875422703625466968673929473305653012255684518784006417884077193138969983042304810566025956278124943221517486512174634013887521089014221185388342858596445208754917201747169036841102482234600988516290012902371050732902745153089888719484304440996309089805658258890974236149563964492631615221242733790157729792736934154887965257446395761295200938389887821802174503534240933912059576636227987880673326332912883229903462670958985182916107599381412541317477991765739067172730210421983642439414217126456405525908552029907046451250582129297231820332195138102640246247609263986900151289066879567189469545492929168404019429717976318776120324247572307059258776498235887878463501022200193259668272220598020480033569667350425102513705966623356089743884297369239477804398094704105343564838544181448422434098227123450934102234962133539163142913216332667411643736531017700396986163578264507157717684977133144240494238629712836852290146048232776815577550324845757418178773295373276553357563125744979551840246105359738773571400361345444980472350352852664833617120494597098469568297408151908576882542694089893720415877681440796340032256229127709735965228170963937194426646834671620420959796264596159193356986061808159688748337595558883501653838665808162622308364395840878022469241893164429993844527486175933501045159007416988802958176721760042784808238415566503930772331952814590882499611750875249586988472795715488393168547815995995068177400406256743355317691164307402692732607265399489740564919973388582029212754928883516160297472857328866706261967491397869038748057147772012338920289601355350828744670718842706259450070255437881278159871436071858911084995397725985301500773039458066160017486645725518943713159738712370754421651657553727762370034846750662066734068191157911929248034983223039827633179775909272383326575051314613713466446431388765553109875952599085453744846529672548619813765870948293652021752376293456107391992842499012759393061013612421713874680599684406187688289306045752553727693962469568182719535949052461860018852902102589674022417850921637534352072849728628179411554101397267947288672301228255629243280362321214663650769327403377640185340980135385810916138410987106000866086835398535916747911029801830941724561280587185000756829841310347951802006050182074965325592289924757075838938658751792485180645369239193788596228989993701461329984060054957108563638259898681964254778400624031183564178210607680832733905542260946197475820615203955237436909105386252797630071901397919820191881854947351963686113629715021664273011387826973620129644422070182353097873833335303192655911492903585967578628344502243730700314180423656115187851515420870703811619375272209325625959838492049784276644541772452274204930338293548475060634011337397670715259048737153980794019117134504216725517734927188198326218040397014898880803198616945961265600793478749449754106031717133101613106562265509926298126316472520756793094087948613073532057265764549097565828129750197709963581251786286459921011711547880852757645248349183983741841786764085701425361537925913630191281845335013038758244245283316000594378850644419939509818859723298585018105451796824312279681626453439975316325655758616068422744325638942288672383300665486254288369298591024884713407795268261928835472940362582262184265485023128378824419436061331146298067059223112775442390718661798530607377197131210837833643933999644647785903705314494686915423420892504926279561766424697673747413921918898082006396915181443398748310532377441680753075820288695448201409903267696263226441736497570357122681723356426599437553767228984326627599719747125907305336145951127538877008004673840601413659709036044807550454710893533815842163823195384857257345834568275854603932645867006767004466687897570137645818069329321192801195609184549887350073288323662395107333444442193794044056738842773963058684153645515469881333614926391615236144418063732267398997626146611931011507459742204861358382031694288963635072290370892145811466777345851843200037069906296656710222874838330148706865054053695685490515261815276974601244435511098966057571587525893482711789156113612215670574422137376374979824186216803959277565200037237869475422189025667218189622760864551508125659941577998924774850760358812166569906133901861174373997413420537566190182530799905018473975854584457221748838772222767657630443911466733936339399145752987846428369501850370801887698417048993591299603167393177911441214550870749452735858730169782287701467183328573694673586376155521605289037071872493414805202469475080099206725276135347873925014139527969143403344345620857700432685285077941050258459503817233527404834369923585753416368087792879619651484956615305550962932244093857752699205691253220398360150341965639718647545004131882819283819278520219787456955725116860621623549498252545803297674925301848127637294075344643987665582743207361223985716457976042587612375754616830681605563036821364191127652535040569024026557195898606927549568110179437877229493479702294541830346992979946717446378947721254770349874356677109871904446152750718446485663198111004722940945263382725084818031130560917957749418055384482275035829972463943075073884452603570618374640210563283995165429912847777867708948583938798950674380862039188425533558514404735648837771941199041708107010845562573298051903697626796739158015693936205133174265356974526328817404321561796966221062289857911372379365737338037437020422625016038733832746173080645377887347584566509960183117992070056778988602108905008100488032254216492783748514640287678211239901233635736787872421367222781924923397833251900240265313396622444430945226902321035989733853453443364453779629918963740039387519192114874147146790052176527799218192416060924792161532551943799222392886307500720203371326431746671372535931692857000321589876035075426595480335143802523237221960649383880735549948471827987345632480248216604715618736629001924018579558579271035014047787987578566221013599391183400191105642058960620130697205187096992539722719054935480374541399954200994681220157902843201720770690779527608302206376196881234425166119826145637615731604783237427043646704727672822157738953059761680424921920883827380998377654239087103698735636878111339217561922973786507671794033377831719502685883403027905807094018543482693649514612563319173950541298522184732797032330914557955021978342950422229819501681678881494650331406657197577317011188322089922548552894842912138065446794028278162917444607835138836215105172083607986651358321912803685584862342328101785731875680107602797418218386693282456019594701668524777016241539394697686431288149224281736555283707913740985271037234471813480628044598460638476611368768023131096914579777630505206448246336725311598795838026403742511870372677943984490137917195485436056043118546919654762626046816648674662109162985519190618520717177305080360825566132342189025459453603992377655970806814250896901239334818873749703794910742213365605243674688245666237415243616016285617494379142491561416375717140443553269393615970627937600073237254170379052083245030621128054988104182678979678765946961220284308377625856301139912994214693793229628097781175886668301022369883695562038208879362178283559587451504245740970885476615840554862408206671942187130308115433354458930349725709555170968532170341098015879556097007845968026841566454008730113477979432560529357323844544824567307046270300046495639989678596017712857600208276653980111806178260164395562126082647942392323613342037291262868752747790542882272714970749969530625714360927415697758665492332620185290461259605894177346855369793869852286287321672042920611836706473872324188000361337502248499243921531863495850580414398035028191863101521083889323202204933784105273835189838699879606423716006090871070008833664397838977577651324500090571598753496369845078641063163579557344530253239799476344475850292384131330623296802126500384339068939319179325874070682687343842806513885563473975295990919776832293781179839039814108780732658840680915773282638398522609166593716939195040455792393772647323928180378132206612302074823740244528217342060741144314350523571691676719493833502845972734769999774387430604843849480601629736435826592215326514180768801527683166110207997649182549948580215016137678161470764499146971860915926397785911096396786585954468176466511593388504310918015386115065925700970909087515547702780736689312450795549628782652050808794145930458267126027528590701496840107944206375112906677868884883076143695595494705133000232722251889794805891712338616244324289994625373736033703531343141504612077704979220415033616127074133390989693625395116500052419441097753479456904763213195549145669127266078908537674988538226040891255978685808154278326403484044900249708920114742038358990454061507244158155679790307316903352004244690167028431482531577479653457716264455637638330801358230752683987944382547690562368523964189101480202357129993212546941743307940870584905422673072477197197449009976929702578485264903788577855324041722378153863790024911567654779985593176016733334762016822625496726091383999008402699009161059070711313118829853962831281159549103372194502484240763077096499164881376894194927805550408488289682788003671799071250307193279540078066728584324530160205221922845267066146531344373606853761031562332545787998912263075370395526104375135033058579614441941539639613190000747664762532431601573250279468347787064324122711542521136927057226695841977127737288433273534504501331433080763735468837986178012309188752561214373312826204575029559465552375338785397531649311614838270488845963937411052711450716235520598618375751705431924121106493711415176779781789279606205908756685000171127538574805299848282439307539043236755856791053054846524045225783211033863102067489216839045619752747830981069753325755928958485865870059816072131411085571014785133865051759766061424834051252716881114452710578548602077395183591198517011391770939589795629560672576660254438580659167937622875645566514617343657187903996982780573106486329820966880202133858659044395756088044907789052642708562276805245430623042250539599823018278706133048774668384979536762988036143039044746317156382893524410454099471927161944445148259331099346776140788498363978144111419007817535406001999591024012703178271840058197657654897677598440693950326809109808065874167496460952705677201903002314064525274966866994265072611302052581912961111921057605922845178827719597295957671465552675354200646522304331578809089766244758430376602745874232766691783881759956370091874134064243038944590163222682352020633543996348695715634447557512452307348174472746341761312929838967421423567753538182833048820919435229756954919748662302718257619525074757908349993598172823130565745528854043896488545032938511958636126412972389031824694814305391259446750955359815834251216661538458427873420547074985127769788860547071564047093387551950099863637048684579684053725426655879022691413078584570885781695838267211705548998072499429723515306314868339633809890066325280799956273193032071851756072265448645804126225791895555463143496396263137272587133928454326879117004546795827703490033053234253770600919942528027804322570316152050545182826804650119739219119246207427117223268571317768412342959931505096778745884342457066807480418384884994020052799254542186371049318336020778355501249126832608330179245125422793141772272087343697945406226788938784789832006853210764483864232804920515386925039003041351253839116927336855179074350586167975601441108170686631228107760262476577962476250756002736522831970517805713734899398646140320051324230676422931438495175952454847251875684931847998237085153579149128016463592031511292829641126771216943340172062342041422730340459993182700026498897479383341386048843490126433669660180700244915347266352309220964878824155011454221131813915593111186495445391375173334293818554920461796626352318052872975417390833901136835700754810794384563042787782848075938965245455984784568572836580554348546891739523083076004793958789876506190326367998029529726281428914528564203554885411737383538731397332583400483527890364382683358418678523649375935489595052075684602219143592383179539849392080153387987008074406203846321255026544982465214739748327620362036358979874806440877022507429598673469500260931458834110517824675449991619182003234947665664279832398001486896384782680118123219286038330309038024462691784894786302647886139309567330705168567570378243367444193611980642171523001656772027748916122183541852675408591763031721086371170889749037887758509474024526855804539463100856605791421122699240241674029829239589129369315378882540017615290912806019531154901928450686515504128007868104999400579064683498319978105221512122149114615191111384089207076830081107639676174200867006302824389519488519230576621360338288924857526629953640704757165175639238427072774208416651311051465464402819988144508942571140249344269325246638000227510283222647971707541057647121939275250319572330843066733160100617198964036967208591436332833545653005263139597017402437108427379429775875531279917200141856343259660447991899806646353483284486400408829109032259867239717867780134407490683857904447637398969780321169522728831363825128038631987742600337056736972027927938625990062476170984011938552890436976171338989935576684559438587361598615430606114311167117896277772989796015078288979207644990272584503436257318005085131995166637111376977214729629916685451835567974098049607929958864475937285440890347573274462769367014005399355916272979874668295315705027258278606221242149750390698100355851953330131930723121597582622793680853838633523813719056484582091991032333879835210442890407438825213843217400033163830544100787893930541695350315224117309770800235887546732351867527308782514014108705868943192035071573791698810325907925733207774262876385176877729960944370146873666144920915161267922576700267215879206827067343116126781418566947821390796307347871838396128074376623771697065423741191908353490123877333294224930830105775603233694661463625523798250097492781421344453809235569692772997979716450618040590130934606894269345690039485115679897180557932746257339991873237911305040607010654605195562077316355139907305578796737801191250757385895070382164781274564310612034997547471643348801674928989939745182046408122584165141904892522940525845284285919134020042990730717144607470012584128596890614672442430917475487407007801512536905113134763112602898035392629423807518478221484627040358468848514272897507748017593974687454079750213705400107393134907137228041008790704047374372069941436629342457947996951259281936632959001824553561839625593543098350060364223918696584080352609135611433997818539734137372630432084938160739980995325538141253056283026742528952794158246307211859077901625619084357134183950566577406713815619112323931681253098947064863081684312550300732292813691382398049542381582412949354006664577774683117918748430908611126790213725835877770875130137923745373717710172577682159547161388288043000914577037573075660385839781270889756429495392956940120358748768774458438299949758118922796869828101948186343000867651464353798888443030284099901871015556603847528457434228239819543187857489503395547254847988253399128756394078901707442462162078480272804202706513769922693070140326450550937665951606576317333383461043403127575698416544126619716576141694413184955729631707577512134070466873062111040784495677374227064493832211724333971960815107725336886505158671257492863718024500587535548439216803709863582741942975703233477324676909392881096101475964992181276739235475139044437943813802140539294584992273800895062324251502895839537367782943470577447137485805263361013401606540411828372241108041026977335847411141618436688857143550123203971959789248353530227223956258518572767964258559076824261499279840781549866231516120958243371467029141788373053966559185994645636915584157700528313734591789575903949001623279804048802231950774210751061087636595166704509158821914631017680937526131946608759948693553869261847097891199664672864578927993699852374067930251136095733898002112100830139865682962272326734487898003109662093241738441840974822274797809331862899471429065756091688215995956956903260789375257325005423012522021980976082733140585408361283490982070200196516329583272239323604116788996876997869697430058105338878846299558302263045443079476037687890930558157546696137877059117407366677090748708081766694574497811424104063337686182538211985332399685462149504903530155059334482324865568278446177365957739524238032660685355877678053492166557829676224307114485901350378479797748167492377043439505551170884851636021522417912049218003049838493570339524026430276984065823787038741427178352556383283343934654441969999066223842971919839392758315062474474947776037851861153343782757796417350492187706958271347555513473309101943424311161225403107160693201911004839179089023427226209861172567799943662225959639312571014320307526863353394874388872675157981958280666496453589297441355141414897570418648385024845166965732650257370989271686067496118546872139446562013089682716821511585739755834332720386431567067732398345292462160545717821501433980805018973871594237603307466248681125267653935562112206318852979714701451055303158890812898370773541179798765476584512068635307958216368040345477095079512115036050928970392182993118455138844385012126468250918415825926055059614915759411531370523475637275318816900173784172167698332225760009492610884378240474566491077329694823987941139629143491834986838159198465748584290699248928564700666302865113071429519499680303168450427402986696884908872011888774111948142258447458908463647189677506985132292477635742588330815999862040547784427819447617172082703504537319910115850665117354802138662254545974360668364232002896156770672511585696318719560072814031780271863481488525587927114773009078914102310177186428074514287526866946155170509168014270798856800061104342229304199810371817454225226013611050079839838047712274522867707394518850159371657674401011341359897541998602598493624195684422591644636214022825606589492883709833980649848111437177107258858410309053848576727712042602645006949823431362711205200433250486822285936119259757810583783012312903232733318201248253266176539467899882077870675038731348717641804146514579690104103494150145188694742395699784411348185470995337757690824419575176547614870563127768004504255969573489127036247504332348005633020765239379701626562356265557661824997882499921569756915959982948666124267179724828171786319147033565992364032064972680433975446422962279480047363035906780941436427385736906494320748564374755462755368456813597065904163085891288400467190935539023811856353386973484150281124951612830041369441824273005974422474438625861678842952637462749090678241556267458376085931505460933145805608074229946730541525481817027692059666803460951146218217178038436223318017446861385764845608300798682141207718438527310976943805293895797221597668530953438798170354011419981483731774564597607909454389469646826977145836430187538225897890818256127783038564589739075091360653738357733877011869120265890061850530420881661718882190596333265126413828963989145104998067241647364783437736221075358707666894824815309554817815420696300419382137159507056952097333828313823442549192554927017067458733126107536582236116014594109128249849371997292730004148259034428900660340532892300066891324021016456591870064651257686884147692833073609713848136538192315838417213479013018981933851405460024618711720094472892834848101431590536251917330680713786215119714910360440783311885150478461186805234564786895156765884214348020423820683887684122448410723181766314700269888671710298930012122484504863986947314023595717594664254091299763788874107472566982540064585299090785163799650828384618243034599034322049977091671219050822807101981145174234887053127662288289247150539765433071511247243948652561663762787161018548398298359664282882939852151385066357079576012095026996993525209582265166071080216771251641549250752071372177407635247328132972186251064394347535369823716184964293507077828726743308717676841195990913090960731101548947753531345000850665674815350686763138212277852096530264242648297492546853459752343134552222584271719657510133106004487964286408701085498694035311961215648680484254595434981566547626405871757647622989238028216862908609245528124529112329779943151245696403499171133867787052128885063803756696000626133723869816050679300211637984093255026032567891200157930981522874493076262477444562498441589618129968469428430318005612429339826744575728718289755789324449280271500459059349143385171012322885252814123416893013213107149516982849655704865450091140222842630828399336063748997388655087033406146100925985291549990527995725280402472778164952952843903303494461573830725465178105369270894707913186221582519221693186348798892640203867435166513156255892568765205710942149104899117365976089737938505895261501907094301165663950651396473259079932206551606135053182926978876613133719833409652499383093440495960697637180103991980218634671908199710930645532623659152833897042201340059282040077807635944877472157974804767066825225184473591190154732059077229757278296358192099573377085913030529595910122248409170225867219718748570616364548530183039270291006137335084198770170043837062980904264445040845543787218518900963825770929747574499354977699684387703062708603400295073730837535165009723418622099845277050597265229401812843793019568390495802655101148148474804903325572653194109647797043422190977008980259724541974062209840238022211759499833941850934147547792161169063095773929767665619705853874339212416417307717753688837168105420780413130587025924506918993936453571801888483828656406365287974402582937483541845830228002688349282818089454365435585181061094194309175360311364228390330906757006100473898139648814953558284328013211085205149761327105524732561650990577730496115011649251706844614721568896730015873100211819451530643349270828666521626408587227840726600471612257362290279001633511307597502371733018479156861441506686120219529249094473783578030418887841199838527466058288255831676699957713743080549084735204211187960586373956960272452220310465371730787375879556104873153893378058818505328062652266174963865584202433791531895755216462320225823249774149383054794330632193158530635547463092933772820992588174072522026009777156639048262629633622477405072150670678248430623597068428659169860544533344800565863192716428442944146470075291927174116037669128349252727790166548171797911001319497476184628041815596378184130954578129032337297417514861060422727375617954551112665268921251985347719541984577162293729800344865649516189281579897030214001491400962566952323975398443564169883123168100765000341423474089022918710017425809173867690452518753144848412712205503782124532717419675229780986027370415861273541704286668410232889754242517161799295393478449752185956015475603785278728218648607413780777426502056673321791546138798246307817731923189874903830212270431301858297986396386940891153562896031810277958465837776571771014426108917773552768377353513488657042138836641337652674757366177974908044306247871962371782619438870359434913968601868119320233936524740752128023582960017638465369352192585850917581949482264596435646273914667521425911005437007776850919121439369789728773585329123409445483155351435979834325177301339856808096181190059585261141684119800924542469241623945126925543548311070885718406460889236228596757379915904676843723328613638477381836043754016468453572902834199017408031649748451963285809309661945419469581659234916047144857530674634775999295563030565622391773117891238677548590911978280097179547138491888727069255231796343419742802244720735492859650402636777127819820635481311909509903631406432766252273174313203234229505548023330577353233415092922848172935041639178432808538873520691146426517018955200160918013898390300843604367251843192279913417299035379133853970785349359201691332256755549819083979698268763292595569766414401864250666280996579060458275006935101831781546373600355851880108111162627575363391515360734041871015241827533924867615658183328619361466785070776528582994556089073297454419220215113782737136039800054888698856787901340243524102984321440691851932940425662087018040947229448613311739247242558234777423509266122456529621938076540066300065032834952491111398196266354119692845441538538532310712047149208357066467610238734290607740048056316782026097620378747668107728657808537184578211043353878068920242468826904285227882965058354003982872234188448748220260269996385970627314501693548054553706355685991576331269123811819128849650550060897994531050469841293328410552212340071896665339865597878981915795220309736236455735321360692711018851216545018377180658465274262522354780208187212801533796838029370496598230121324690557530276504399789554704938656161250189005540931316647397925932535170035466118566408417538508640652421481263960678752352384482907717176333355390273713759416410501406584858506961687592615525033083992982164649489137580221410499416042685258221642732591365060310204214468905551855081208138789711213508866773576128909803775471528927414931090229726046048781745052371915163627862779858118953342711676849267288133365466621260139138173120607362868673142051293445852055734086940962786548136584980858398592171013686437706012247555151382643845626154515803156101847506858096859164366105051913932996016185850256324261591060112549901130826231765986430349158299505890683493446846024090138980755809258598591433415284811861396473691622618314443142365545022740447401021826248891846171082900242403004190408903241834107080973909018570908794316796424179683226836341153520916381453985668592583233053290047294357124460811004681639881955939804091096036580322152437409674776954094065883001278640188424177600367121014181339388417187423041340371069324814180460767843005641800905883969019591441504928731863641374308784177684959107090735872688360961709866991496732472669212764918994386877135836003816703622847478993028174333691460702596502219420038685077341513593971793823316185136447294186571581944490753475203346279583512301889656367399797643079729635683513674195688331220985754495896236588397177984738826793047542685581988334785288161022185010125314109966145591529633278056407103320989246747386607677331338291675907476984816148114860040341620500752316070349651546768176251303710166782890921301712106073524033391474707837773075695320417033370000134992296025797831626648620769457198751587984896918134101652298761314692570590968747548257779986661822104762062569480215648876394459009954940917672846855513786479981558451593176785723504500238308571709717810377244095271390284032924797190643968425265468792173001671159935855591457319143738756594627672910181747330985288256315727118288567165302084208074442507343113157864945897142997526592869938501819829298708493700434920345445023508304784099053169865542996100982257348064909295433236959007187593418121600152802934304860893619637236201639488433041293894181551142119402712299219060819721927401526387592162592392979618493330485864273998727870970304980263102706641536154762508817835393199560031691794192698169192148429448527486960344267910541712500458182033892988951948966450996603279158626197254651045483750459931173060550646113627164281332056739359721483791704881703164987381133181589729527436210393664441439522248499213757276455574333980342452404696766026935736763821243202303016381051669058002654704827287869033131938478288071820682565248521160753988420835893566558419318860446990999664614461513987004127532053998539722454671677535113219359965270209626081162136295249374402653145563526390072768975185163933761561607965422931685836023708002532133431332885790143179943559091889230954588156917146689930322676185652622037481055197134477140117066272754501624514551674315607433700080109603254022664739776585462301404061878449724512528204168512967483399863588278721512101910016736752103442575387880241912242460228601734586479873800324355679067539916581513945038107673907046479115870700921923286876101320000383926100862081525004545371113478356259190126686723015685954220113653838021174046548771722227697807176625103186458338301645057900537769236277867318861704308391453065903619738515269312437073322383519997225836244468773159703890026962267339081069005628272262264261231744527797584609378600277332562431711565587481013946747020915339861721315924118322365636964512542650739375984336639645050594106077656237777378579868258910792536929296981555647420706708631435637126169524316868001228847238256487245367383449469476748569910711985520106177042339253937854170533473031523387624820660405901321482038046652954195314207597135272568543637113037927837792571159236226939202225416525127660584970544871440007273513649759076159871587432884027593581818018903610776724688464175778201194088727111705633929619383079570415044028529277565132861418678936583175646080363531233736752592993258013397999334892428899205869791338981206585539636482280566927298850818600291968127102848931578682675498467394503591755030238560941766953839165512088677902473449893390194475503919971610601238220210011481702926761966345537839891453347904158306710475712183248921088872637262241256403928274486565397460979713331516991868937830665369348005632200790850252674466633889798893007874627929029002411405633505774946485586251467257257799504448599843220902617944718683954262654030991660027436773550144986807970709992039399580344305929837234531676721753769055305147388379667353967154238661024454064787230177785743568682229056792829599289094230096073777590348308957505860828400194337752042305375065424788392553562899213714091185734593297879882241528249484595228647693370651808201215569455438487497582234259102287741951022424481732784932039854743850280583315962693928913247724353004162734360187472534821309589581062355151326322721667975278431883943983973426489383439245124485426686412549072792373280580465707789138611258290593468292178858615562227091926839596848016060370378290954345833337660278223240635479450680452010509459269895465031932394162280509607507895526138873401208244131338501262641484726514133652742862146226153482359224510184815125051994745832501989302838351617381896161270896855952629479489554263435043964433136247550426609200627414598097037782122996289370278859795780671214130791104053444873581165240431338917615807631879745827246810948380406250150594388659182375036760100567375811087366790104676705306063055901287997628820381748853552783728823479716882067390302770312834989407364801090425473743061890505174865853790687306358815393184688184278508803739241787937675442824837431621471392124022835256537589809640789443898307271562932040533286887525825183634920304438315630654369907880231289231430389285923577017501386726471534889119319321130753407067857480038879733984727130650678688101103706990949519596792149623443645367273204129972775939569288283138791457514694802115759984670805757431467102220877217131347534108013575513704317462300576150632568111334348533014432563922283064641266292190405632131079953806295016333664873915750126983209140838539952354374930253242283235692984256325669398330808732709134902624731809142513755168481996687228542536010989027069893552520922182359215205552378660024089925049902671473152156016356742147678995366869488976837808843807078021681542530423027641592776028012909272916772517131057615958129759665893704486170919000095934750615983985513373399013289610356765437068654653700254482929024906807640268551714508135126217835126768382623141722235250096176114684726727639406757991239311949413830989340769384703043176166908373909274235758673909658925598755373559288793035303512166280831258979953039249725707805025638944845150894387083947972844552200273153816971358452716433079788420094383404764743225695478891123120071560220384866121679106593340339538362643512617169401103377530169142441068563784420447093852584739363638946219466565315721794991121640824578477231722361685267824500190811743220015861227520373798959381450120405599190317681103207144412909554617641484744739146361167460628649836438455169136348089828935022873216783229963702562685894235510549754053403808974208906176801765279849636754048386700024495931204616285480436304791935200024225146559702611683676734296932459538962672559566277597914827770637873110741751564062619668702938683928701355231676656267977465442861516189900838210464012177438721201963351825490744916683608819237747986985195481706731991163831066999922039826772444449804440402408516496791286199461434531215568175085541768915864958713635912927916139277882175968416274560653634134434272517230558803809376149474032834363265339675415002421809792303848006570311730662000607672284240048502067471643271360361758134450021821150744165634051768269252074344601577755538657461509107290342826084119451165759318738928945853931522390647753517108026393183086716819678494285365706580904680864245115071615154722179371807930183707587736493512417669595431218363728453052434835549257375145117645901376965295128675345694939193360069791451358929004332886721057644917174015255682449797129290822272939645625258576951982866810401460312062318776047700598137669249060062033907470197009058148499858624953888536825681431399094966863869492706271516120263868695644517195449033098746748102041680382655649074713426655890551549369092180403239812896899293018694730296730269082901719232375559095517477211589759483490527850695680147784442337826533950522596240059095445937622599586219764907249846948225334053754038555877831573611373797999616770588689517183585508932400856108471788071357171095354525529063968518596445662939558896329917481430634781061241651597003636856365743515642711640951344961430920243617859570002310396282133901080107435374676106963712064250901216485335570851259417098062684176154779152697953859898302095769703664839192990478361301474427515727090206152262154277646143680860667732652142970600056494749293335406379499762293291006432501753339612729982860376979321487299927673941134394758625463019427250752242756497818027513383672937112260439901652150844461379507852683472528497155496904177833282525064243626241610986554432322553752062194152724622991416796153452566575363247456808238611690920704487781907178297894070574970654487528119489250291506506330487358342369818414394768376137697097099193471100287641439718837725485783025642401221160510659995888863117734997931576833307081854365331905714615184626197183392000850739617210081626725598204375375391611020644087533264032644533915166646664664274922183359025594166520824402261940988610553306921021115773861553557873998688213053002917816298031400973661484452257007204701332787428431279530518315161795136308965613713174087232921699209778316085812305862692545869461786120666373898980715524733201766272543787368627932807813876832125050567654897478448629143045301727806163086876838393403129601304664314527378084321719735841070461408104719407828724018283906246574060539710927112553337631922796380944251610996893010012000602092069219877834044425759991541078188783473940087768749952759277858254377884286709483516652505152108023137085395099264208676388652305137449297740538661808371684967067486575181121110668253347454114119565972752518984448517113124396470786765413743009547246155589907123287486004329465346348246722912855255658579826910623555449847676426653400265085182402190248555638725295824204070313069009782244505494463715923549474130913447463796003628044921555885248102115129926377978236406632669995040088157298914045655461401857027502267708403946415394633473278461483479544283916200210899997357345345078365484987885347036348020914951653113803440071587774400208238576192194854085974878884196737207650987008329462643642215481678347988316774859327175533026984410850156488424210893111896238292108321116644806940760972908686064398650573263229036340211421435941742372531014875629563647937104781659344253910160021512595846908400176704823084910315642084738473459641401131337419254625202276389730986985784018625690168661377733815456280241817187978464091947711983665374634316380955289243879555578510876572522108366801662846191490624239372746008205982906247164077869967938839302546868706784178248120090666643274682288851944897180012644070633849995006919255638442493038203807481212787837007991317183605125242677456810035390126767725593390569474315522754276356697039376496699378269327060280171098503284516931958073027635253555579407283273837884228918073511048219920988118734096227230713675683379529628355598371070109176091660872285388322609006353650854598155131982562662457223649389452204203129842619512740762738155811614488805639290491480769852872877054207656839562463724643683737014774280931125789150022165767834376847025640380353603591498281085789074646384796898616176577350223057914825626263158380639371663018658253171543553892066093710300907881973084988076526188140221747188287709748691115374067825481155631015415629825132159286059553375069065569435392638742977284141747374920160012783421411469711441272628810920346740961594809244207165895557455863154531737356037277882429129641186511358654882864871080516701941812900289970849840690612048000299865921612461804845955798526920049174658597016153985812051127087638474191621291226470656413329996847043508535691014823190251095684372677014497963779343335771565587321023325334846706211285434747215277005176401602610530711664452234538707681946688425261543073572735583963921647643834746591675227796546385573038027188333931094636550848205004668614482172089829235418894210922041222791426899831529824018314275349278813598627402069998119843572513009245230535123141129153336381082748020675282141479641789841805083618877962981578348326736134435031983709250649062863292708197534423817469352314297741902378653690894490764511282573253712158844756531900122160763551544914074273629641061936159878546882039981631231750518909769113706064002055770155697743537330888738091395457383160184370238220878906345076306060803823283888317424338205586077641242999616809633945570267599842470339352824133092785888811284333137881031517158173725799025686829177580364324861071896396276148312570421566385420401905587039871402310914003944030241202590763449976693289300566172149833871100562396926547191991079233979677145815532264101561428225508484291391045140168067982810006457387344405614075495534373838403624590334748913701017117818150855252636670637216754159275556002297275318221241326812504137378853250983015135493645142329697473827482245548861660917671963174574553961172084808654816920679370457019153225396253132292395356537379341330838308536701546346371620370302734411235086668123647405720443565894056791018613729814171381846750298003188223968793927323452469697794964216822974125035076776373154730270911646838259547633608135881631895738803083562143249074972653434418389392497928737392041596435945982055004505102707985072894668843186607131015328470797426717593057583908006999367478786290055598347580891686846373131127205661284706118635495157201331954470434590358501734687503758251849200441407031708727966272284441136702202923649072741524416877342081301547499110381947309226650709204372381688614233788322126356244226889947452444904125168823184103859777540448337313194677837517119014889043947660857391303517618566883001443419995147824458106704843729482062919904570743472040096987663710796593787066687185367888299705340218352282947884898361022318374254952656345899450422404816438264236488284477984997736823197868499928267348087682346379323644314324856909050533454891291319470001214229190944879099673696551373325313062950203641089620857472203398190962014250187908157402559368599921017269062853316325066556271442413127022467151990850558113284427033286686317440798175407091464309179155528349883144537432903123801277567196793126802769710913013347607966144069004406952962541806244734862198215049574765733042879473869566564907743594445122824483402027302991397063781291006654023387306554312375929875290070764495465440923120881137316581099011254543288479197836721269098112080168086318281511865701132685001080093206162544382004680922934364859115361773068570561119796082963231126068496995136015206502702460310822785481949446858414990990000586593652018634390046541608591854966595210240338597469563591532728237174535103575852959580855173929827606159330899968475093004072889412686106591469335756102825269029475529729474849187821489926984675454521522218075059327167861300954769331504947266729252086932288447319666873475413737232642878953672756844292241447508267309776765467934860233610580413270255078503732134587413992812707138742758478601085841388433460112745795722411146230181494574266067897484672955340611975452910826755364406598381037621130562802151994442364355663292690020338511687697344559096844442656769092405471217218917289095977723551764338961359346173318568649021856158310709961184681190091888813126150258564951248102681790097165176938737032089883519163511891761409882552400964095619022903465694239904230320462992941314766725369084411292105314003969043661081676952498384645958955126170433799887803037335670019683199639106112237497159846393527586537622821401080175686666131255971338748303868655575369667581373753890653554449636931948775989799395004699509647902948188899430002244648793870833256450923221333106678608515043667954863919629047532186068049657606708305848014938480201832996927930453457084010982061702909569727698914891962529346084726439733002690572519752726979296043145389732905367258179774657843380815916462090813097445367109697495090422739441438953722172765068624501367884105649977425147749714132350819323740618597842869440318914656105264735246355868866938248248240857585259225425963859484944365226130061554769964669185046949201338380362704487587046674570717370369444550837198110362728082378820410589234471943145391405725927762410233007141680798146656251260530515998349119720684149269588443703508553803310392118222463468378085394265656146479039513667433501033989738791694578219501189523672492997147637640169367845039212164866319192687714945288156902030765307939938704091519700867195852890116454882426128357903858146549057110111619077124741422642693839093150613010665466843771013840146172341676555418386808543764073040651278192288594156856161362914994938920820253974008687400054091064180917287741112018008908289843180460757629827499909328798864473883583357392419336883195862167399309372257560191680074578585771445175379583047150204625763319500403537197614467246471288338765227741674824308880445613602724036396473624949848329604493456638997977335011685601791633363581218100730105377246997438351052802712655372357459977742464716262330060936850269050391952046730536731258253874760252927298904975803422330010890675921846049591090204446226624849127779631025712802495089943337676085992147285527148191454087274486812274708091565153961616752294038403405303683276470466635732803967399606290090106672367029759195319961737368915100880205849720164551488305017177231343631591202162176120580141411768855658641950478962215081551934948452223645557646684105467192309756610735394984706456958044994539504183355990459505660842486092729779530236045673173965916474178087498637028755836129530805552255294884649468404500263999144948340708945432484263505364780167246420414195000327403539383395929303610204685757418112475246803289513123557486895034109319672082725062879579327848596949365050717964879066948338942401074283852858179821345821329327051635853747502871577617307491659491852358651361452742462495921155380403316312324252365584372355012389952206207127635880552435748108622064182137780718287256693275739450571519819925908706529865881228329410531865234572678105727106011626989495913238882163995140486669781306425076294886688890074371955570631696024706007857602731513270408753569885673293717971976569639455508656063571396795969171512354104135549719266444070605805826083711761614008274110200993518707653541449075143349119675317414230948831512739876408080648587756168662802042822804737465296799210550229038708476194794535414649738576450734703301888618832024654644744025641394274046687197717699249566817251471170154658794111829719663350863079268295026749139362182084177280681320355419008273412710077302768861907199081771942852459225436667810161196050896500400276917553457956644938532480282516778642762244990024092222071259686401163591355116759558867042606810027044553493891022880716789982168060158075589339182657510854367331200313714378180765035048042281698338479632403195052822132939950228811224348536016799708686000087035406035504714094286562720978953242274475019119642300281631391703258010228903193190417784522250511450436064450620233327443753758343432056848355334671707179715496267034836654007894154733629030684513653750422060371247733362065850142840879886771479754906283309559494572700500663667250414413409963262862627405315246738037425836935402003542858533853533097093464278556939236158042791954480091959846944027784338350336520950921177598901645193850196894088839869741620336756278996417740181132107850045244524680320990650627214296752469852140589702507925708055392145266474865330489671312456559180523900980718404606333262177332531810640369011051346617929337622228918881846645578802656286646592658818868833666438514397046963947846800145220417393863157225087884924737916406482022452133372505702228661438695107899732757429758670524846814428055643459458938770761157240172292602622348235273181941011949524447973929639591293362391395549588021688284548073294942052998849737368571297840412637413600396007538644398844303075487310844518298922265104062953801392140203073585585862510870152412887676620772391582272229330100560446963915126767209670243391517413293633120966908344633896279465667887958164522960313248608425146190022039361915964982867303569076244471519399466277314759773004905809384760689083137806433951178755711830489757113409293223706227868075194648155364118603975325127763705918489604402894146037895604965075576393407985656405567726608563474247928751341720871833888123186309562356808460642261927389684997995252308260283214711697685172086690694226657691307849849954092014878645505248831509431959449505890587343580026392679312595860422592859737506523333918497603286406341868152215438795606380252072569246934775596648750189421859503094155196096590849268815290473749955032966335684608640431113456610387173588458936219105352446943663891372756586455663662138155601634368071573322007815706263448751558255653314219523871959233633746063858107487113614723970139174452031327627160140858317791311731364438129533712534010295361123436599239865895911973130489520275289450324576342715893495258034931849916043196802613294090752112360958345634066560290690818415716490771296707912278942227520031440133425489598940084712897123196364891510490992210089993650575763923521712925879576601493606664786812868122789217694731778737480716396688506403540381699842769361731364864148160288153057454037177892409510022808265003408052587893788590423008718072059219771583991671706734623552015403137479102416960919555146699989037056848677514721835993407614396515136734661751479739263478472555454123250679089680094666560625082940102630876329359534217491774530085489203589879952069136834183193363831714185540679603392148917048282621068491710617637295437187301869549544136892234820462573580303011916806663884506483499984961034478399890132222391038109384835226729706908423278315577607575595747998752639911377053462433701945330337824335560010142222466234799100436701894996527083468140364045725623084940196939108237931021379891538733643828979697700502356357636566323067955893015039355297280469249186020318990642244032090977720684167796468516813265229788038833335190299295746338635700893165213694542835261474915467804441723595353542131802183039755319252085351037544027123796731344698793296530430888711766107325051523070002129931085085736288243950689441766418258627155010156348310560776499187897155563570697154160546201319174582834195805114988473951442904649768384186472596297070786842733820925737164786669158098717957715451465920567088025014817214183586869792063467749007384533983054919954963057650754332083951696335738694094700595487167868845426823768239023366843155685237323202730172809055702302361999685459875515132771665725159827877928965869916160841483392667020665359713011156456186945917387233096673600557076666142317955724640703352347284660858424305905921415570961524762637211028150301221627186083537010913441502104199736955606318533354003836552265331577819961835749797226147174084815336932376022300294839206978181627671432170054582813348575344585290608735343736240968866105435164222924098832179336031496672319208528714625004611956913450116158018504936036165680168474202070595055208107439186961760771748151666258521788245956272785954478336797439538307024436837738309749903686605564778346896412449774635155548002230925596332436941515901234232095058820238147445222999731419647145711679458594236041797437861242922193338041416909427846539570405543883393058419052408950422183873244884460321155853059259720558772061535497082324649157918843319349361077422374544827081534952549182053270315918217974466550919907610995109948588485172031154869714664093395632553628145074803080077353786862639142612137593889974842800742354637309500244827238963292190266127982577136090310746799830918381615194986121795293022354213065186576175180686618459074828172889047172061842721639847128079635846622877154597017285894366208177104847032243776962730271479222102843339135568052332540639575279128279323993615079893124244136247057403707610544643093601937658845493896817403307455628001880631103957827014558829274847347101568053957554043371688298107490095927540833659182128408291238302660064758975987233708944422772405405476486273529933472756554943796916252052349961821268056786254123766031764109576821469845845472426866644001746605329380898249464575121027737829897938725614764140940388668815358720650607208011784799349292094855015121427823056974281903980656621790733444240796175407501293249453727638987406202832679736610106552404763868003740041067688235480315269634035518301553704715902738516124200342487447627317786376324074676625805916592121315108478024450354333272420527502779409636347797304440150499025315547341988395067583184664851326322828374411481001020335553366879585019232018722815621608261995582752141109622419116152608568620429995423846021649486510896988209224332154565212489308361478059919117832017762615141110405065035661191149955647742115819011276327988905521420724428198486940823444694369086620943677450051385425402712195901856473460016400992132107305650491438894039931587320900044734724006148038595221157750270423741640627544923351121425061155372497489556613286195575521015867230977673884432538764138738357219730457526555919045074718093392152279874236307154444525995188532207824365935755947937288593019897224486531860590753766576389306275440837565231714105329305028617230013534149513210885940129760148942914899800450969839954978162534981261686032894023125616361907646545835631098291519719794715843718655321113032108419745412449310605987891224006549354068969749016687899668126878033996659370611166233403711204078839379267905773755335734892680359922849762716208757861909530318454202220702586048211458689899556326821065757986256715112052278387621472963135196911338736579120400157150339757067819783779364648234234401007472227021355349478931665990673333759885640293907627089491023558120004845469815525982971660058710722959628357226373222058509032168980031689797633316411017388654874698021451461757387886018409192371550839174043987617895587519866893919896193601676372755093529405162272251514411789149321714506091221994699342984687110344491284338091430573238420851112408608787946585059595386438336447738019064691972269325540468268360867482996486114117604760581989608580502590018618742697054148245753659236035504270768234012672521565517558760352997478859683683048704316511904679178463063783718206254442067549514556196016837181376795590471612138556756361635993243689832344485159254339960867110215039804388048843973049118768365569693006188594148261755238341020029859972968967632677753929366000944692106935067389632076598056491326739124105008087266830146961565910611100037031551661485227136187884560987601636035697273110361325923877403609103442400431832581115896555761084651690933611346608966325578284286426267192025526186946573623023310908065566008509552268856557456446850593584024126949840489184558900685029687247014928520310294978086592199131482095432086825110484602334447730782080157271147274627321394297463628068614600863836366824578968547153460272822396567274255843055014484164881019204996344253780986479976979790989269111816098179648255691891682526576778977337636106207265124238312579785307818874911574088155373147271895987665548404467772061996727278227894943214325565144283874905704146604229317063252212263983007260086562057747938786860191893536516088096554688881042444636894604836549319577437643529853918221302297798208251180128025749150356015774849014305394720801650956035404028079606441520006120614225102764730406582982115792687259350429930566938491212469770445550726591219755920401247777656808023146539956456868049656269064386381414217325056846910615492118549941637538055431067884531561666410305999088374878315743445986099374032517032310181370317064704396207497394635730611144709757595953031106532778482245394586842398528845087096241371510431810057461884625910132409903891155451090202151355024887265404014132988777206725952083961471456768286223052064764263291028505521114665416877262809277249154712118598125701754823440824752381945754311812566516839696986046671811841774586444470295637118869958559368563118723444774123467096712110052110886880989073887010005141655701287093606702756084973793406553627021211868232843666326674408521152623687699532030148974741220711599027125961197483772797525731830682650832034987080655319116875698819485772476920299176598485874452893490558119094434457060319381399400185580889064629620248512375913353097877466320808275507782419127859838746656350993586409320296562586300425808036917390723848467041418047355681963562137733343294017134438212549589921521538676610854675018143502232476303501125993673674118711482914955588635158743742766791408318137390643782256095425575444398007071006898025041276606743115033550911834610893380739426330424896279414897532718899927503862264162891764938006290359540172399789365125449309375297036578640347347347916626737078120222426212457576199849179425569547025174542960307110520947790448258091321296735963521139919681255486796054796822871796388419707974071441568462498269963076771068315836456350138195938504025259244416068308311836254204658912736585652836874983020594674260935283362717471133909982173851295903814371472515742985007743563426450264725210737456657586096772996628054885717491532219212805606826016155718317816782780529779511501447166651759737780689384577337187965243094475313810995537460576579163598828545845374250454367664660269648563494809889937239001792733388976524954386366710026218208827681529109265731880053584564354763114157198182473233430686598043552556290620142536530515340856923757559070212015442082130331705927866140379490344436352808363084302963853537415194473936026933882055141786302786206861623058965098876587484539165187409011441980745384207347916219403317190654913086149301279364958685203442209316117727518893698540275824238166158196042596367188385491711458528813758743233216431522681010000759442210406951862124546548850232288816214662981656960822738202923287836764424073845700256462180512121086218255535402917941251580113164570817164787491421039393723370433905939370641141552040474107483134698323286125020567958924249972456262685555746148023567576413836529805570267382033752665469634987444703799120807971278405058434666065477587169385732934456872965853325854128419947410521832843195628613400473016486297541047495072415740724144666071415739189515969325874444412965823671717317848538553351003310277890067818117749830802807529448939162432403471227912256491003382477350540691310641286660670601895749255302068850512981496020376223810165473684488737186245917549724212381644039186890980428654005785342015277222568085292376824409958533954949686102713938844548580614018023838268100799416329633227880566369309649244905640384758270060717115710698031867463780693407095534048755099486283504470252860094711663891691336947075962344156962200132177004885229634249479763608943517592232495174333198861051524499229393232056808141353001484169417054591679791734150352597611800044017244287498978419641243747058023606921491888342222091905062958128397665714192698263450545153888726608988161906707158885629633617667947122315373436401304130905932215303005685677288232484023362556105636978450412184570995342001137343638963132218958611210964899327644834442680794206310636829372116451600545097107747646431748010091456526618105175114629123423837047582576351859604614829913026087247606579900803727630766149556383810843777914482947015317348599125013552104291196878935831360533275432232446494173274281102282802759689727495617503846211857199066461625301973565565361340522618330940652543916358233079575208090816867443310908121683190768105613494845892155698011930684054342971288005647559121456809609275994847615094795931549323112904949557121617087835388812918115543330988683586761997908031955740910555825965582931469359908862264225189305417006955280797971838949041441195297576826337787957963874431973185229717287975187489246555335705914517024048975301916413855311373217805628582285684111191436571773197780946596516788818680488236745398014846279009737466913485715723264315335293663772161266425178869718584126667173916750175555718915599210117362070219374223151176199823899150436895597325516688351838287644271377737756742640891062287280876965142040353638937952561398875295028727360864665157817431287196356031228851693871312761270682535856659211591467325677745502816498514671760901326071481731743420306825852691017032193087689053318300877057785084847981491472427921421844662704982574415110941710539932865372303967525739980099460671265078887201983980313094464287426782217513973870572747308989180491202165154663111060017105068768077653869814203592170409060681388895105112613730031850952019469394574288126327843597660976765257373812297483439011628059916574825263814644128636717655499733590827439410885936431905011496681626240417015267923330162498177864121659221366000411864024291087678032052367796266068902780432628584843687699769897153702055125255710739582643593163698963783854765496039699004755483532156140521456306544264144999613629799550833629316771478203803847746469361931539911934483027053012301275639474095807483612751876416603011466965010395930232941902154629184570665819617726164951410747815375533477820329315816611066631251848460714791008555375073951169039700945117603849726069054106829168121755453702108515402586092899322208942334860388253992225504634127740380457220802425774479059791028657972573497169077558888009130338695913174577220836579221500668651141168625769698575818547724837554027838936280170343962087397858601909347550085626489492954313647954025677420300990440511816711501033801388685214649253639352909235942690117584795713118477414985482265812800599916916764218242638543887046586015019283553771511906774711268991614949694857792182815330238124152430939016123172600812663419774753987853781474099162934327252275600353902624481960661664583057929244923018155745680245926711120769864984616142865991642608292595407351402790029056369811076106366364674757606649724404496001836906512326225655064856093782681730446126050916648261488088336472127390342671779631943282011695334358774247428868465673703020053411837926947093038119054879302361146107834310263152751960581531773371624133384148116917662908185719806155110769121807548525085597935107154267551320325525303106209804812713854849672939018607655835386014487665021501653397911806801358236673991407180187726457415838392526273587345652905674104119712861326644760564148256691850137116827015686773604134691184845224366768426035624561120832900976618462247041614920596087282919382105645223517889912520761316313465561194026631648601818866738499583468500154904353367659552933913806142302022492463826219390853068520726782677352560019214553095406396691135610959504235157737805413160251661617316678172477322455311193314133027531246176825061082542819541198319521695091876515638954562848479115354920569379764280610048758669101617854180810910531513507663472701100405681292448403078888726809785518778762895813413910912089466855031321965690174199399864983421457083118491296831379933152153186211922684868160624909478448897255307536188636168884833139609878803089980769566079641976476548493211935129240867779903834574114811987829602039986990244167780050242000984531448387267528228171132974341967577714675014435998561956309271675884166798120347554702471443001388635001762717695579014774099431297501630264325928715358717501284479384689164749434076515461917782610874025904208979162953909233808099754133877014960959256601657707249575885404471244833123176312899038857892150091536763000821905923520118795917668461395627087953898243635325229623846570176566362894025506915267262389644474584757095626881661609116911796462771692514898398580407320156298428592459977142359405304823049449266229094789579933334426930421082962811096647694081564554413506263999307545099843974457229363732071909525158309869386640262294756691371500468795166066068741365816397446836815971085999643999243771488353534375984203324334525843242127306763913871628027019685570705751022215682461106313679859051097829722699983117744750477616266881688526341018905791106667371557976771951394994563403439328498731456145011319942067408811698188318537837791233770967236654088796497626472621914832267418571745104589152411458034759752882177073740063812974906697546107303805632127320806403508774693740088224155506051509807283322090025857971376542115819499866077554093073055627689792230069025551974917029237135501863758071773844193922083339540599740368337607676998547183519436369294079615517715675423031339903767603541238441745246632040721906364429029074880785434843180255831475973220995298954636622973490482217829258412188816061804828807660022582960786532288274923022020783993649152636341906345276948567058324138158717539565490341813277390891895292639434437149939388033878584734289350211587841055305570525798023464992293304247184212025571900574713497863879222478733304179860102051242515304144289113479923455177638338655866193932926417294680269689944185519491183040577287235818620753056372940698828048001040126638241833844240645252174088594488426736776537125779495282176846541299778450928566095593610965493803739318593748198541989702113877490389951080030916129449043639235458242141673998462624031560565530882556071842768934766736192759147640199468956672478029763061059571576313855168935121801346224063265697444668356816932086834316588782618737123410218535304149163631610899999190216749874399530514661883177022795263303141620337770653514218373206936568868708927264188786351384949795443783536202878894433203517305724923758751053907513609246127956509293793876169991412751587148733904856889469247918672959195987095315843053731459613513263021049237310282536195496678651700285226030574753390203593318822169958760347523245635027843891581818975331018482978691284427200735074403300758653646065805554292309552120583484157941178524023465971951823574842851954715180679922296645320986529227360589390166587995875412281964763252447270641687311466638018343428428150276720876217493680491198112654300022356458817271428642067502328760251081776603537681884920907901828257972903424777540764760422291166713494349721818733850488712046683286040917179131782287303356413532835848798120130268507134384892842655374491679880737284122131143089569654093469785422092127811288504658576837503854359067749377804849816595533967639532109053477569262899261232455791476560989053727728092495255457847753358011217208510971319082062706130483966919826995979430191481417979417816033267097690455952118235807726808004339790735987855219257461133371812104807565058049099743934558638699288898390520795386893556747832181744727037349060905616924159982744540093914147493257932888970730758839700866486766882849632805116009082806456094904914663203240934547271185494553927417948567936147570546865732222581444575015774976406745599083344221631552983474805771460625032407024231296246358820959643263495837069839562659587442901501307998210915842824414767138660660158249085150647111852780636636088347409955976193567519129885492309017656810220454348617262048214759648314713646066185538232879976073877313776122075744794807451468499080167081921476850586010028726637837526379452478678808081894547032428158456635604056086925265372848633705287267406544385570067031217071811201815415460141932005045155523983929190850979455342713257703128036559211657403296558987089530700069603042691730034672287497162188976628854044130083676564309390771595688781977666428359684017961309213150771498842217885259442532654527652772749379986813397344727440582823784187584645739023886455496620414421303182211407723562134795938071838914694930748797548608205038623942460056688316175707995726741520618056431438178748954282694942893217117106187655466545671318550249894734504203784133054209807348213775107601810669610646237442852371791067133629280477867107741297875833073841469496845366506273984851181508971448174144661566724385284707929156165175935268347380002783884191537230604432028568110838290755205760516206039225845096344485484059691081801821296864458049380778265747045755409561271162271386745448502549024188844538927561952013363332039417549410052177194941752389829124898874851837352330680186315228518987422567559646998947796163657130620017636229480471640160875938127434128495571007220241810175992563557241684547161386471759247410820953644228440395619202835667960877035481382137854611195137733723942447441918974125391135684722254294723528481461231854380069383376015318535300819901979872875309799431287177044806170771404677524232272488788086073667233616840461163721705805316633256408642779406725342567487874929998995872880626365682873289618364377511039008646612249803312631222974822877453528198857762847973427109073900330156707422203370380486487063068999315621977845103253873253862855253352919916832860660853367140098371596361538728457454877641288089986899398675122683500655553359365941561559010898606931483008711063957292262168202265038006352717443604077662977893609483972181435837323696703879097862136642340097551401532351367367943626575962937029068856863722190803832341115041029343444736813615961352105422240617997561023498989471957565969595564034441142027111181898661758926764476584864381154584738945732512856711450705798707442503093861703337629852702624661500182400371382619575829299645952519167004032803861339045538744456435434964566802368367147251004463207637111496440604417899328865261105649757276319421223461626208712313281232076838498848891497590595061094104672100994304047211922896675689465952278115196219236474017055110923428453021294209154061840141695385300629052438656746069763021118015777139522463466473671090216383061670474387965119612961803555048876981812380750116078743690646242613418293824097189987634972989934200320868724533326581012060685933956266193560928116501108982091929225024732368513139709933429179468946246725254844736502931285042063690905543044709328313319624682096430009417547814264904236379709682371740661207046010096963338579466342360601538961510661220987098938606595232074045340031946330604922620150993019513874441803980159723954672231543368559698860583043249633401676010682001209965182633956687068640970191229592347035789628614403963989143416283748839361174518880505862234340036941669552051701155803386622060763316167979052539485392367660878997452577631652657814695484661992781821739838789488871296253536420901956433480150726874340927261382577546667559710530696616240813497820934951261836705291918712971165138760911567798636827956429527312003542532364051923347148400974749776003515138429091141799009322108727487998075182846775460215288965974397480660476021702843471788292168243158341429099302867304925153835240246911383216309878755680700807079252971092443592873056674447027359658606142366309515503174375233970340356378800351662385054434054827662242394769911080652420542679358390702344935964866781937038897545062267330972436527571810888504282531851549843712163726377061977277719261830391138568335343084723532277380767374675838754980479999848310544644359163502658315862586188179216332209375954245694451890069465014822082927798516920179167300321721700075756657467417051666242443202954085042165784233920602903370278712261853582899509622177372320333174809537188024397392794665965989305866731775597443082329125047019907238191157184121716681197151880131830975363947136638626208305083426714110919850221018031288021394439575482593000419177022745398811386796070209550296840399248226686480916869121825378028251445012312982614322984600904076242672671407059302899191597257326826829394153468799185299854893802389489135799222808111546520841137014517657366232446631747819711807726273647526476993023357441877517090449791424997100104749671641946242368806890951789139130992301962903709481997761179634836067673702057538133895448271449299754736706322647659691169271004030804115084405561562760898883726004404402721052298414297954694037912850810748271047063461237711029591251565474312205585658420187949148091303425110921620016114700331497478117446258151130351699173059937972752676426469557831373834428821785685102945176626807566372474183835660442064097739931983104714129592481768411797263335815192140190562834527196966710059552981317431752507923155239840052356590570091887190946290187571572379585750662115628044839266636567576803456586441802454487168687060342714666107276687795765973988608068090754015621556275198990178981670258012963168289589957045359031182339500952417974472026687372728050491591088511305285147327664239877895176512935203052665759173238099199179054703929620656545955505329475926830511955159954521673296740700266250580216803295460476932214960021052596291089568549537100985561963135367481754085457429044210525811460633948802286772361137800550869321883548946239192955333129605681361700766137099204640064737505517329072406407655823507104174341501307656721807976600782424396680221661487013009583047370354650600504671250287914627366467904485551395305500926622326546753225428925232314377137869143572085934076949724357638754937801206579619379951924901629009435905089619626121517341357526384512085136000449314456328420338847243356714487699184358650723862054303206618966350420145714232719076314226342646639836971476342734175449127055849656695928297737330890831566406303957240527124480735981540994544340304928005834243335599268068882476113430682432096179931263021166323194185058319635351636127899534895686322246241896460990055974683016120143436157344668197220296810003397147550938369264219388643514754228256259696387652649036321240093578794548886169274834259887038474598580529042536064556198196484696525202135019780676771016942516069444383563132451206281319280360942131630595193296092992935433137606118776884112200099688125700636932738723917985552537096612990678153571448660430396495847353389167873219225605457434551239617282362094761760764191853244259774967732937298095242292493847052302543434312500226318638377725116173112918539881038390416761441006604432754142952559600067175995545622905340068584868756684820380438029754506780117782574330722525503645137235303270475620398555732410876847287377070458603882293656395639631208071124758352705055463374697127738320248748677826061080002943170927275428793063466954285517199727025437947515027622909244054725350026568278035024830661080518328260317217694639734013845392994750832783699157313055922695282672158284454968933362676435117783996893595023355323755943505564617635680201992723827453617986945382763048786832942507454012135384903330778750263891701318430683686388738145152683073233033584196113156570785447552677718420072259639527578378471547414375846505137009408305866350740022649952503767187959520756652746408663168059220919912037898400708891176670475472989399068050531486444930817858522458302860209182179661553379233667382425162408466090834718477057252277754954598628242421490179711537898659293136790528290761241073223390425460213272538614754175307907203845942030409248390914810693630770116911143411594788912782378140358942243111779172917434006577686787276530276016703480820572521818414663329428432625971131772998317984202690157091171345383147092043945449039460824817050435734150019108852245553658443288074978445113887917544205924038639767657821043280687456333186914501001983743333152973750055957591404723560548987954672465274137984794338134051790414053898759933272230162959837260217553754464919198097658279202114294539048559940870324204159266505272673990137621503312450791710571582233088639200664590162543113408608562407715924673213018063551263175140426859677457334989060998157361475431231735930128946594006396414267369431728830265257157271444476010252063299965018298899490111037967684390762866083195744846738735585732827926158702783722255832176110901291355304386698734941564309268589806172430756503892336033272255182113899317534096847669524356942858973313876747903017639815347892575276754319089303583455564995640487866899115877897484986744466330963924213297994888080981033998990677211212196704126174301505826370161507742083504937787414666735872285531409486175856835554108841423578578252421691440807820808030509871262590092997639963485670677382567320273636553108146639362349701501077819120215467998853009821024660885377361389610222068569227233798566667664541764206445554945337556027112743237439952258116292523704744834513999854737051162916749867692273172712223929763011430919637104089048615822312264955152972651914898086457904034927290294642526906743834732461047340985002713719549450843593239307195674339282091479079735074196574127861534396727111506165938759009077380865236140062686518482919196138662637344628095025751415088860294379031293908805921243673268980404259268994329456303334316162284911717577750408552778632261905356249004114308855415989178205235350421545602785359501149875340846671211898503503199717775351843038656828579278440053153337200345235541888283365252314762719734090864442337190646732629834201236496954164556795201706601992205762356016403501962579313275497806846021699550640063920869474626306500304209418824614836435763344478101096687051922967045440643046223882513823087756035154601324253892840754391309845722291300644803491500914102522759783702821456539803915003918863990373708218545210590704968385849685054177355973531732354314801147768087267354694699301058274273471258090324368482188378843447147704083463021761372492072925044639252861190820637761414446983675870519724610927901541387049694336554161308067099971466541851664821914965806793078302049252764818744467782389387560532446055553437788350300758269566609307103726796682957734493104533389933907240657788409517192377553710933511925733732361029272699994678061935511763588278577221049195224531146439497673305157520982435381203664352559728381601115553887377919692976568067790389383499237011630108501800509284542868224666167768518586118779144458403930517475870372690576289111529194214689386544621174911800527055640876939443796290672723643548465850217722730832586259588268194452093488065280090733543074340799887943285528420634337676599612480459518073415915141891593511468837280807809788322794362269769709847940492098658236482832662111835268339044174014974791536967452281217205329990617350751185899267136473774696790041610461561163002234495732992047385396502727348275938080537173335086221599815814147809954009111741650118282303176319569250435697842445875370416503399406587380021548387823901300292864897891062711582983317172465124078477577281339810381330592936182552859503181434705063940070720737689719903982439717045933449630412006446650748262887063682009866464970550872230517095126736187932808950927993691921454293096694244162690746765781365326506221561177760707069075164221779042186873427631561949490881343920504413941706845402947437410784254142819196000097532493630229905185770207514980988565496632722869426989546961518163794579247471470130131923881293835861496146228393650061633649637387455125751128307109181251734971609579316083719512166745556276114538358945830748427568066441118261901614686175222435696736260530705991914848503493353146938797856357579383870404027482169612066844773833333551817075586798816297490887875212327822696427816496734604424016276792307927807917246050759482475318449034624205665376639730788593473653074020100837519840581861421697709189438139929308855165792723132332923837657047432035427138775033427791951950162561864844961376627415017298334749078186616931599013326548030328592743051555404868971898498629467114778415816366882783870335538470981980498901844979922494802067278076528666719277493001573619196926172487912811001360573265514917261794267711681087516686217582489795513171922594775486715974485713617594205245958194164577706084768420122948066155218864496749421143816065229862454492355774024457675076891144302450847826213254014286899553354987069525316196363362670885025289908174527734825257490071522631629052185085729973391189140935345575125711103311242745478389408765501165236923529714344235668107105698190957677276195126108603148636177996994705415172211409547204481271254100027157560856514200639990546189318248149494747019396393282039381340556161506140798230036309109352510830195078911672435699313591021597938831362653933379626819958864552315575128770408648952061203006740691805767681254380019260791844391491566422936957028780270951251491075181633666702833766231599173814727605539952306415949151528885852763177317315929825206229721935906848621051592102184979463131332856182163206361538823530242281476163333754792588528713611992892195184907069341137730874542684108104838805943388961424336125058236062311946322871884448339365108441031021328709687306604109769156455939081459038989621677575737525888006190703147274567296030145548939730190150986738842957369921117703922886718721863983813523222577706774917176974166355695786052806527440692431662107089321902201882266769250021796883394096580511277809352524271097808404603596170298866601638284346949076937602300420068514932626101232671535815302069790492113160580044942570667541643950529267086051974142467657820442328401732610383988520065171902098503220606922655345548734196917912900186426144254229861812792499570663187878036770451507185905725644108075085805319514197425994192047753585311174552161248008709079370919030716255354967488566549139801585666976077027134242742257228398114560954486150639076016578534242194998641465744886918294260702388244417246716379418109122111654453284980278768487398039230911993887088854542329228045965571125459120065804380714851057592011045662107867860472773717020341264691185879796023628533437684054744828653583288191552845716562392804181218919565169030987709276644413848399413176050202174566069128661536969593169398181642974210569729887270826992010039523547719332697639658197874090242048105757118609079686308008794560268863965145765755255780826924489170667057358104927706066168328085505294457706243548967470957526254006013467657714397200571376229611545422145109607778466824622495525491627688455296803737684310609364696929762000486652958587620625804948602269579224759896619711683008454177968627861561864762999331130744350672571529622405870475606943222955600326059802408463474207454735318048784514842122891910611118026930995630002068972416054443852016778759347739142818265412400655179869399593634599476714449991343632763432107270946350380327382949669665823890334376275677705869084262905427525784896723127120354803004583131356081329081697454468462948476473638291444553082940624752649312088703775937169975761466319924848215280324274970726834015921100538728589861114055103602337923851132120703597273275810149664170150524248960420488761116074306613125095777190259993680663831455891856038221841727794472539137093222593612495057751916752820409041410514206247568468551277546252615067144665138623585435486560483564585555157616865938444892468700566137403683997490601996889845310440913903036573740785320097549126580107844303978791007548841022882608872624473590819499645019258711848267507030116874870126317726551362215897402757793111985245938546047115027795936806762468442784637067919180948166147885304437824194509841237327883501586239173052602208165657430602793652189949188889988695137883202912639422936120043270448149111499225622158796733548090739077892155938279686493858140896960100366562725983218017446252397005046031113860285498307250794930368695314128157441661500078236882879165396617731501248571221631707364036731538677304149930287358677897762129663209636111525881381844657991622957377412971925541416388873902547331843873127144279292039312705282454700238691701531254228096854670523950322913007280347610288918164332807195055193150851265842203751089053605755108880308840903594650045091422849462669406290778260899212108586550638566832414754711095018661272698309534450387964208334780932660080250173887546969646715773790596816452785862602285362028405778057003566344429492047367185185264773686849341101184402401899644256072112472165575553255042718775601677161488936667193897696953877442637122816071011034226132350179526486207858693408874591104794509319396992063145340399684656134945790952557647416915385226198808386822274763541046368595284070232965587714707059317777251539762996678175100719954217271815398507724613233833047536208769153217541369895522119783700896151856764424099918006270067379334683967894775805723363502603077190369687372858763864127165173640110719079428405228946572418324792123375134952326103527718608770315179109446275754330950723630001640469650008717231977044917237335276767425409890696413726736108237667215654659939676518937608698299964265729015634778093844307615965434497712506690755613531955097208795325988193435769886887057098588952104009562135140599683566607225837504769241325637861024173158175515224899434291668971053275794611906434155151117646331515922748645225836705812319115037769099469010500903400513871232795743394727949964076450404340005627857158172817515832882960488031455601942004413373859599405923069866326446543178666553920692428292862428993970810358889869869365429314525090703237689228398022155940336398268122397832413621195948847317587553665081923410236239859232377766288335590577157359580827509261265142893316916943710790451090776695511986123885011615258690998959746480117339479387359055098563073934655146686715608211408239955722324614397812815250503960432640206436079703533548136200746192996573866380584865856032948434607009707360139984062841204173499789225990688330791426675958901980197512107146529562603237712023071233407959763063305795874174824991479894842241817278953521202826299292730332354281665211748613709321964400336685862576526136226822166418493078287997679390680933098689885636350662141916734517490529521178391827569831692006903414361681298379374075469117378345645078254545894977407830898382921209830207541224219785073307517871230671465517994247534421080206530302096722020143968449796137841054222682780125006432844947611130979289554967538459811810515276112103769918297438473067080064988245113265185761719721552306741620246918774212036785935444828917448119925445526816104548466535347694080532963755173294210641684655601794287071188611339415496910833228526243471335407825452155819210211116488630289655092813466391569862621208055885018599928619246210472402436535293762782080552136384884604811411095094423420921434714377488011266608610078405160310419741092967736204461918664318003461317529717913262854524524553449135635509862843237333128219933780693842591494695010120042926271415555407287705514402490583883715379943968396405580184577092511591061872063578614064244308100609607663272852183310675971021085291988710299885601497263329499095483248796493956595629938143690862003035854295865140598483249028030589984050187889989545611273127634314764414249293831823797267994169637608299240312933962005000057316124505883697950717265858480302074597105271269055829501846579604306174704840556342811119010487411780823101365236207312921249137741279891931354098853192522456814411917375378096949582126951722234097861981499832419832963039305219929970731165109229886480171386017836459085340220032553840190601718453291924486975553538470136526195224120703384621817789637256517115383906356394149969342788321024673942095274231608681489284203488638764306437202837896833662761083209370501539333969021283077099491895350199234958551830019478529535492018671159467866973721827141169822712663855823008293398103432472314345209195235982210282801751446668849653757329398990160220359823373110169382375802355559046310215623084767035869015023324959328969766507512891092904974338293094577715615175096675998383964686823379308480447342886020547412885809709437704744443042294148162873343350752765214971146660027768314506505633824926769812095813352049697998312754983092737945037840922386716604077265242916594925618695396847090569993545294865959491621656571919127470029284707492300935540369308809040628243275298422685743218165081392284623458764165363517371369368869171361257035532802661742734345732623787447301985740904550014302718093653648674598399683485368676070887838339387819226804242026323191686284504999840078581300886291285389161224006264063095995158732879910330622424474248329132298018789091503428160742322216552497050287299830883904999675557139433250905583318136476355870546827135962931405213191210963204043317260931682429911853356180944369045527148705078527446666336560280664349049211222645793285113231820684966331797200117610238972126817449866113472624737433286659616283779647304982234598446115170478387540872188365774552142585203105009142322010479999968623620276253245150503287621744020217719154443001321836802447499446259287925745188569759320730354372823735857540236722410664944996332476139354386438324274573794467157330514156441045548413388633936368471310514673475962901074761592058702363267115905115364260674789542137095056332174862870050522637209636646620992859036650207851470781554251241784618829883974404179020818853273577590690766247014269531119956756926589891211023852280000225732677057035480389649319417697060009162639180475478097648802882632903554541696575069913303685938648340447564034777945071565822922907392876595824650205633970623402266953769855563525409056239449652108630702032043715302028451877942263390914242929178756517517988420596764632265306984479530896206203774105670802376563948394726346427091229085609404338027046058782253097718096109855605333258875323186993089641958755847620159837385686624704077231546382394840161555792151874127487671460770564402511425664843683745351284316417260994040223593993610371444700019847099030706921249247284207361601857481271812713169488785543048216436039166343144181788000520700427517220911451236464248624797157594302625440129216816859725711226986699423034841152361847975683210300665102311347373602916562924820247448395254819465584108327174672706572045213222354179735583301575864577139666764481793517496402949177381833128700801051117873229283852080572342333885881978489554578546286173469441900995724048757438517775524481293609559179389309440187145651292638400072449958441850751271474241552722929394806018388871879875749418452891327675886024849663750611757093655385956940058081595388015249323535335742266002230441506043055346899834007759073997825946078061801994459506800630645819400438019472475119287056903312506194013847248408794542051277356128559806018889532717967704409027513192058109894948461041894010389976715918729597071646994919883619724487806518443532354660863911120137204025446218732593698095258831283700307088655123453087031004185480015624070859980216577084696688659435168975447070592846948462442470985576092380314586624574844251082131620628950770440119197696972298991713118782510516333032184330367501312676141165787117723165751350252139545229728636856230677900299619667459018068706354260246253996149916456082352578243693235107486138935856649662260831399980314702068806386861592563950791635675203801664893530977138080818689995161432268510431783102070951589641053689453959950183751247335912520619476983718012640077282611154401735896451256537208868891844616866987431961700339070492719172253526326485515200651844667677491909538943536721610903248450757214246837503761955765617316905397854174757471330629536148386275977248067686214706478234426636560522878606791254249338860738597619725245497307572455714927984533852602590880421872013324379899841345719751593682287004720776895333717627203934048843262657236978349156867451956996861950556402704603405188212716744460675120931195544942257123009202902475046042742059160994026741563630393455502292758431588549709524303489267118097676068174510124802518820273553594950093458449855349355831645698814138052513161799952406547134164058002083149361909620570551242203090171002306154964913948111479813522356421277531727647480251274584346630154419121301414102920694205423659911947975534247467936258000994922214377896924466375812502621445845037278454517160840349155491893627858993968729728269660288239069019412774232876861273362407608961282301700577910594454382741781031061245713674042220033724061509743720246179348886054317260767758206401825138893408713924479584559722125027137311097980823174194721951247991860281384917238106442553219515481925631875649309634824591578448029009902101828578469065138707257753918807835174554682060220122891773906578927977295500396705928397895226652499616210820399228097862181176980325934813717284184820697609729608032192896249326139162600672059367070394235961263873153114645613590376011229864436145102025651833454899919919049964562016360407354353708185769473027228459091338475345670550594950863643480041166842664120489679785492519579492700199698390101828433432484020303102661050503313831422749827228199768020325966710758550103498237312304360555018153745371266569669345751897336881895031121452900035694757135771109820226092309484798517429029118004205347482706335640237032114767563859739715877574940622119531787556067954759268731059059333515778827426676792391349671367292959298011696355649021985532381269830840773965931253626777566250164442613438468370095329835064477240592712832501395129744815923681020775643188260781134896649983492546688982514128585549081373513572857731901238791160959856957932717503995194283847227779111529038117223873297368017629569662971256968445565740809306061646072054891253749561424811763573365540968778424943667096204297003565422675624313505851661242107710010939655921331696670450812446248699301488697083280284355618922319134660361512824922793155427077966529159245223152925433551644269871779437855110405947550932620772312831701701113511918993993646613795784713430736927049858639031473275419278729908078357772545186045745026395822218556555938884472297184526418321253350194725723761516394906663408161489427219117290280900628757067603969620544355121733603565367314762755295687213894934693008907225795682701392843736320486836014936142914320748308307119165856645993639039911118376363003659411607738735269065647180676675492450872068798741395525206018670343940899171981806327133823749303171831660761987366091284393380221421891309332200174459669224593360654502760381339601586781091563832973080629241714265581945425699616768913785154235152347484863852339345787188327001212812788491739399558227251149712113235210268108384968672705822020291980668345087507027782349122421181968583256475859133663396020152753356067321815993489254136112250272607316578240411996134115742609483238891404314548596785281080176648204005636302268115719140796323830232694234179379161712725352183650856214363913838966031821085596163826357181869981590493983487721233854700012788176694132607940185828606453087629838595223174101746292708428006237762312900544578832432627416614994427560266217248851902722236504535036019849474288683065022517442749713227815512442549657590491356420523575670028389429292159313840164571304148705102821495676660546065424050135863425808077963292427320765710902994623053728436160366321371255764140565669968396833019699174456191041774362435626313483319293846929418679722945903787893825751472642936734644819717532204496000724602950208872399916721105052262106839044244639479194462424106131168233875611965992205362561357513982738217321874307155101132808413104082799741636744392877755307199540727379061276614399848775267585485185967653497346905871087070814680136010513336079107988437581721473292951495552028423005413672418621816342190235945371661681103077197910204912138266698330071721789697522287983323430645154150923196640762397165950776216137243771471521378266585224823439233696515605586159193742929270304321505809847301494724324157501677230386303127525538136795492929477681932991931092609565482745584619827604117788475529284137198060936797115750847649072017089924796141610810906146589373501862250023823157759799511174476196074182698627478593842711985216990974257378299850162456119433358589488989326283072858302275935894555104192154487848252657727640290875759603611753671250867855611415576407318949722965655214567987746041618132999597819456095245175298538350878036907529591415128688785866812761418033518065679123068548862083968201661299778858864221513930926228033843546773095346865616548132313888885323044244168987898252271090575928365468866594321424965098676199277262314941536864343941866844005173927117164569797988371304518654822474146584764390540785525812634077277290774272602751219600800635979688400245287777651344328307768483604309951914259994114992077201131884466011187287098977254182283268935576172491792454197808348853907897317989723406895712142351384562185135067219541138804249728037145931345777927525276079870766548587349438841729085769411080705969089205449127425633826289237721201229869200544449873705264235319405349105689059757428881659889396069511240788441694098652658073224969653498963849822126298273947993403668836168105763974876884348398975955298797870409879900299305522954145279576325408887886594220023609217410243123680851622964454623452056008410239031535319504806607511343550830856356653398884424016160708801939726525547081945439820115848728985661556119894334713529500899806926183999435200804110412716696827553861625823377850063647947011483423842023672995090483435205372376663390590815982406864447805309387782529903599606418846515208985305137879115422072365360941183662750262488482014618281723484755889582513026963954147944970613071754277212212312510223998997238867786837653483900096859930488977342297094936907117018903473380560375686071640575302216884458259927023056405081386228450492305257312607332979062474710066850162026062259823018037136297139863134314854175575333567413532403134838140011172462966801328258906542473560432574914913441558277194604369570430109391459801658471557613170791090852709455682562354138537563723787623204492736380134386839793203002441171895591796934480937604024912841539705866036624687873379511266918812480667141315868324837198865494408228288013883969776261048633696634489436509950478516109228081484640566574200617861738591410205151239609817977161394644226502170436875204009687855408458956493112201465427286315302861385104606275125702948857343847024757703890671970853409401813338286227161756542603449826152589916736728644221805184042791982089289523343803486533634921467941741606736321723992977788002786969549923502484074065600144815340086890217719866147841477863980071810437132234013734208317131773906358051540434306021095451295166753828437797134297308337385940855742168725726774517130903817172668287495158959273697351246230155254442297151218719384695854028807436004037728046262295097966064076907636026991625744126265064817840214070766532628338188058172600521497867957887530383110701537499782717209911233975074546674347153205001816489362957110589782941423619485002984033155910135399320664461976495355480424624470539101177926921907432176106064546253371243267686898547713756014915224261979085502857366202682407408600769454024113622127275412273333633721928136127475964835813520503103823053641682672016106797793460409431700812484432955128677810827977930704024305720748269071519841968155595382647674767924780481628749511367347608754003526830709520668206689948517934146133676772331818456193469095294288385882509461845165209704469030410373350608575904997151655808173687465450411854362664951970358663053946020980733377563373784649103499238714801954571932627236516317233562958942738852274689597758629958131421538434667165785899481768619586186403888049571708331698868495624119604896954542772136583854909894537774440854675293693722695978921663790511724164841872788761472284977723661976010954651098190324698285299732984787718132207045812981351521280531010402799218121231925420566552763911042367278753658716095103226740905782535377135007148071377534105948638548288243950823940503359459990326392197326230750936405766963868173129123173479777176493597997472551111103228002597289408361815957856531901868414883071075289876284125702778451800889731905661958550502170212726154027258177134098074661970773785683917493071261747164841543548314216292582219164151332593506230571966284346592678649763333422516913817690863500958083960984448732920770740183988253875963378086330551221451857182883686144137815787307673098676314091739176859427761954444000223730412179160351897760092925801987005351531692576499264960832009101177269499378439463524828334968461049625103167447597578629124262929684643094611194395293175001277287286357271102477238762257189371747978551799371960770415326024687120954121036954652750791681696244005536430879744023203557281628603772946920578054844730980570349672079402398504439712096703654027644091475637272290500395276025594796239276010101617555116598032169867075887779597271764896899343176834840052569420998016710236283229095782167364868367096552914597688726163595545182292621203684212711285480405747106855462714614609330447621525956910520055272090945171022099964344596737624453315261813527816740260217572028565492954351485908451189771036568757015918782686956561003307188098399699936644083159888889641665362621716975485900016555922587095667725249910472613768574817245396666657355033763484978606257813677561656201197953280070308478907637974383525752898068770151571450221613962584491462602181420108061519574414747122204941208377177523883815963054408304862443005285981171483215539932201415425822938115472689980360762376150715910534720646263043012337393639411996204683663463068908697875627328391903838731275813521259138083672915962636704383702985014446972370795438680963938329490637715486615510487921343479977737895992099324023762111891796553263381031548393530752964683444793865697796110041639561148838107772959309903263486447718381544166601525123020333321098545683341944406599483477334005538179074252704445547975281656215897095246233038831371816663640727408059960274356487116373601975834913337380591576496626352440668237881070168810936940404902135573939843939433042866494116442387623920771638762507648624317566686853340609496913675522575266905312512438074979308877141654928530091141372657003839306800575869956708093317508122012935950947378146881488675141755075599082677066965371151504622376508603132265438587543736283008099304780121501570513002253812250169474336987881956121986336859598067626751412489945202792327596289101296262266682529016331803895048600777327482957365028936408275643580799234726101125429009402524016901907084737326604439259889763367040928856212475109393572879039976241010193854693209715087040484271668857915978361202276772670311339648765312816005855003378915616399746148800387993491005063233167340803008548658125220045929162794259128513373834401718439458709396631987058089305183033057430845467018698685324505153532171612770982284817237434844647357034116604774333778440274245790706974046148788633688687213125732522327817390820607490726033043649812548313452967510132245508068583622401334342334281032737916047218112525941925825286466928884309313400222644206520680438890830847593712498153926245129025549637541088129962894386539545662231601941229505588252109398838639491155579427621228598012319713923179777418825878388271534014342755431591544406007403415176521058845209054785452653702965782561112755835207560691065850434627741950241126308751827295046404255394831104628376308465035767082411759468534492703102759460685727274443006663245742908200476201642981912163395723710070289797933685553410827099812847215577734384198969815926591146977255452648728207711491938516655440566886107448189547805785151034062355251333499836643747147815077448971474013979134317708105508445158770157540607817140279567006081070468221328194713515176916126022781186428950388297623156099520666964177801717888839436545475124095395861339720074306635602303783770879034764778972089131097759101651834317366592794194942055501174578917078621401626758174247283387675644620192989845571622388724972051396586512319109161864199309649726996996874726936197211153372707299087865088012262042951010673649656656516967586441255900015715191084091207269603191073939107567396820649754904628191990561919336177693480395960899282121508992216062066748160758655813704788582587786652150263317418493635130743505989314325522133451801810771283360127511035291843918514507087096474124882030397167934257459321356553319284682721461517663751286800253057159716037085430163620310838034207621049515384083803846848230798253940102012592897563044507370472919658203211870354572700394945705811258585966659195424766872504464926188032637418921904518799651337970286705428510655655683552922537150887656579191734560397065263591288420609799679518926171717770077049028267857911924079157170408728397671564331859360462854570661057504054159632889357466440703231865246753550876612044940736735996714009152656822478315637059671767114194352675850938061935825777600942596050971665648477306314252803006765603493391650220659763946210010492085216465286539399525774345385235116955055746850106057872247838303282064946853608046679102286193701892925931475585832019318112561234497273120697821351831751983759015666349363914117379149129125304894533023962344571752031630263294429547694857998361998323574049778092030388543032621095262685894890924888522451527140518657160666372482185602598136263068169503507413003738871383186683154789392833356478953884255749789945087749810196757400885183956438805348582495043992134772739705393253731167699979281645585096777170371764725633029317729603757293629930637290550618395900751243211527548350792898877820905941056040866318150335732965509703956329859868032123247661480854080534746394461351171406548357748096327168633312119894524946081440238883049668546446222762380277135887619369967531179506065517834270179526390672728246440005302616871243992143976202505822582593611046194754665186179727125391891137119800278836467702241811873009432647716742154766298632982732223602663868621372756886786927343665748665811132101515476763264236283946707605640746522080739204191284062813201426887577021471813707850518231011468111441613351737740791071481909666326323074397147553253172304088081453707196058935114772230617709670544927970616037205839207852048275491677443378781782587938291200394659771097860350268708106601268899163587053255887950596383901081508865203872579240583733021276622589224852355930448323775309441097921149140748614469456658545672879297602971650621889056200067756990964515229096428889915994999741248466864909730520631717404803290594947857561905295520053738392485769682552933820954531691755830106465432244573845459724659973494422339293039338920781435265648443343765250741083414301502178432806646818995458679083942383043075901782581907441072019883896790454595772140570286848377746254615076702332970119648808178935910263990744361441796954265693653220274869806837172525845490548437344248309845790197031768684828994310542955523525228539789226443265541293567818530677684452293853249512216296816643518854968387535719604514944112976727262011100830619074561830455550110233552085266256820900793854501107205705907334730314891036729980376263906633659990898765126946767768280818488236277807604033151656823061302640142873694215159857134578665226832632117566368315719408231275232821693792660293321066922531377506973579069064488953740203024957268872281085334691276336481003026211855702095640318307691690483595455225881477311886032342760236542840661838113857905462828184433137129812337478094561708169457812083280106691611692281574978257231576113520964084026488473163001337967347672069357188399734324143339216221841118706972646670119704315403573690222858549839270899935170694681867861361386835550893244868313805557099342270520965556289938512302301434778882056946555734580803524562671322103305170563850320455511305084203317630789955560172984473866726885990659666998402210437089019756444736219414064447565665895566282307131173250279785328637347142164480358266623212533683775165505935727544354084149057616992545391482530625785431728762775275497627875076388442692185687813803727384364194150052736109007852845122606841311065068015471186118873546989591591718565934397854286651996823143443158740746686623980312723253084564699259903925002275171722315795423000665379745909637164092688275129374966955663931983824225500742311894984888105788583041046827804937222461011516118315837022728694925656420464774482180523905868156092873754215645491063396680015181391485536839193678569321282146592229874300676984753092354065567005561343346083650450925754051890423831146577842203515390734246922335771838771600749852359238422165290053080386448811739144825093711358891763033141351309420766313084525143451261974700043991759588139980206039016293811760656368502728529751297875156976273862844388502735979454586575796403238152247567978112571908658045618461585294901997765419808596263877955868575525929631373638581125649781697097322117112662889025038021668168213618544722617092803332500620547304840071084160751900879190955155198560085736636988006479386927848134397254059543311843373271544701346118492753090720342988627753995404379826123715805729232999763277454119496223543063093806102109730065299921162045809447689027257414230480356139460600909035394514537003688176667157067605728838656774994599893582970887248952813797305399372349724246894811030350456954152733157518706074636589749392927564672597621380250325099977355901177413862373518442545784609235518012452457376021679284729120704948461432758369941195188108430980811439074241346149687117550248605680269175259048945925779119931441684234051061635300731394229520187584631900914559047730766254563160310983860429928611551971208690667363168637287884067667283212459097798218780905362526382508324128564744198794522382647617960630943432689025505939371158289656339146248048190703989360148144860151814388249545727200682672861557020151483621967198447702097725561350743977227941690612850303451596803087155797033808341926503279492458360485222608317053017387838059495307940753518205590954770324593684237683367370222961096092368082837170739392441837917361993872945605304464309343798072222011569808799045855909669758695597091640407392167578318285435836851002965277898003142390523046799198988853005477890144716330688046058103957826034398498669864519521273620785189399701814728458153222439973520969833188090999450719932253961175208443280698372821050809298448217676079199014360328501287141664620377542292097575532715584923720989759651562285213994241721652377807316303700432361388339945620128200935817013357199832448637305217880037266699021532793290159505124957096825792365014487716765830577870101596845582843332597172419065227593311458368870844784145180137098000873641451568399764210358885651798071928194823443606572033229522995905735598692746663041974751763733847343609136578459471553566232546462075772836173773491061286565353138221006360418656135156454859711953962303538815414702086172846289959402545864383330424405291960694272841726553754888008561898024671674425895239570568105590630147600037281387171646464075049924776740471138092341420571572737839304982410217477191412364060183472684229457579362546979351416366741426796620912216930020635554945616767598665857842803555241548102689475858095769979721263059504300383548116339417104361169728999354883855028580980776357920914240809234107849615834491456301729725087190540832742632096318556026379332099963585510889998772909435406399151183700830116040974876886791622566326710829376583690301358169245984856164807787396938887696832549805867521243433776151765199351372748908955351542025315817269693729129406254784799554896672308684814209939878915026199378941030567209238766937149844342346613622340082286883225608518109588733547789892744507816366494113864548374972014993331039137931582809999141014666547931124844775521643888378991846227875977952712222662010247816238159218537569212831743494879198632740561440205565620474455515548955197562158156499569063624427606146998625561945444090875893021909530819062016435938063275400562061278057104528746051206764240132508646168054331452971945836815071787505582731187291257123920369202161929261400669231079372698140422548136271096851643946248499566162928249712424799440641395301524423765130266363199211032478056477080719844207615168652829877987433138255528417835725008931142019292326563948204535209145252074306067992993259579820458519415689837992884808366538394060646901505131946625604010283368044969143186035850080304887620880047548620813806751082326290785610472286195977054824827979308684656895775246134948112911440590744461810025901030504141992996279357606851977346592083822542909527146078362773032867733900591195149774338902687628783178649393683998721719557057640395838702766228991648126214467973086345101344567292302913103691228900731735926474937804093036449891982285231562336884674657429335610594302480421238973226053413666845192605561385711470200939768497476876464468647880320026175950279008720599412440774149911770269049635826032776867752696377489811418502735660697184754988426874936665041814060716404979191230626577631601859251664104854526560563188738978971776079499831915173481376863046319823645739596465947628138941360007666547787582256795184647758680356972146467976930672672315561256360387537926995465961631655133691716808959222910307069474705627971474506969669988423046170953050898724331232869525032704763486126877347768016653112149734889778761082788609220136215027123237224175360026920159574736741308600715504696364042721290261128447595272483037719984781518861394198024015756869506493694911892280632911924335352994179218940289518386838417478596111156577415516219233070467776004375931750087458488780714484430366663727367308714882537742330284545817851960196907270152331095242906933722246006578815404598399977613041849400523297592759478417454970936372237583645368507774518565731786413684311655740726989661353697988703621103238987960642193580042686358035346978660469451515839347518330341488534472246108613060879389179563766994859880828221538416483061744471206912029692232426354925443237484743073217826702609604839798155453541007464489529113976897009096401389695444387950359136505128740641152961168849057855909648342154758911275820390971323218251785644873320290881760115240406725756525412588201063190083929897330154812947736773426882178082615744222508973391755367280575275029057949104399918447294469364767022639868021122845762313792079790914162834654435559213654890325356921148642862957661577380023103273626207658455663685864097520734386310767330986094876608383932783337282625717926125368286593540052344582546954877080899951948744242065768262931452500248737947769975199235184778526378354199186888357848280205848014011152876409832660619701852242265429971627371390795015369693011925300368890312970759985557772586407191788430603997684738175282303820999509312979649283261616801132426984721676730421766066200906641191847874304733895319738930687713460010948972143104694260874615839873940437014758675169829011680600172467209032120559971335757896846396415798129040062669118370506779625883033611473765913703979271107195300190743606256940178697914116142033514725318217703122287863524411495556912178401633763991789145325565233700119650520606017177321308911003131540059625742387396898622891598945548643568187870770910310057083845555428850249957213004820029172716745151456202360571446779278638085717653762446921911305565198255700461856442840429574874811301298537835061838938728665214828293459702408526708794364269115341449738495983782482074637711313168754989603705958714629804164288745024190689093755004537408713582083055722934090949809479084887100745756884757805608037677682306477567849058184501746111048177828600664295394971904742534882045752961595458127687360909503501794285116706133146569086036314763953797318772100492906602315254676939212025095050597175216768491328846459642788370899561059058075505766712644954398210807709640718484425621809695182522403037085647677103008789126969121081305535289239531319926185362482044434639095111260279854716180472715813790350108991426304857932566564360853621935112355803570182233362016172059639141059481788037895780138950903464785471507535351978394997339812281212869682802569907542933169182563248646300800738591130537597885924467263793695719332983074055235549737239318359324936435655543265972825893267651523573543790309282571689059564436720048345189317982431856155847842171152164555613598524574709852944931380283408813237713283707167444447929976518656234591613125807289718435395585611405093068899584322580270899546682297286408872146179532154837434242191750043690783588987197250753570513512549093295543971853188914518723485784544457476981846527739454944216054418936718530391877240475431669700747462640321375073778760085217046663648379845316985656071541580303629653237894923665410121902691981152474794465579375057181669451308565863804174607789833489450212126979264343870337817197324060325209458873799527562984748407790494768489338409193181209654250992788816913685567125696323708352865610494092755472660605605804279916492001293653414817402381267802245105320477819493288624205640498055488078606234921187765902466856516741551181889017721577621606201181106053002234428166749065702392881371406645698813195347567497954224186879293767807169066576157140548498271179303970708128390475324685304727697531244209576790424070971710019821694195175389210038155957647699805940792843832143278600256747770953842862983832727248013244626994579877232127942205527018555468134680009578052934179261829723645729678815293228144058221818449868733665052378095231646898150620783345407421691582685594384675388736698757517735074921184114398528144123010179331244393154613357244785160222687250364832468409433466304815967499955413765344130390367022449475939698872946315593920250291796484790360967176512969751220842827801240790752678111725675533759128016435934941642241464343871534030586059571110998983163699155987279923533168562527681829115937543417435719198470432245533505189410277299792002563702307844562345558491960427630217684425889825955001068222147376383160898941006505483887006086936483346732817962727025492468341416601835438922875358456503372266595149194025548037347699530001824561486934336125548734677826724706583836725347561083899522341017990995255927734160690859200401440574724873545897238049186047398435752431015628798802290967022606428324606238170181398280034803667619740964117150417814514226379231094226776071417778450031928072114125389219808497381690991192512847898938196667712733961077246032751577033375791280823029598320039891600100338332557991497345736186058453129815579790652413722326212021366738788694310310282881430052297001063508622622278974856103835558810313628985177074646913617411618321537797567314139974247738576557003542867972365727935423144988328378761135710940783525489326753440749190368929494040573303117953610321671707283877753056838833946778219074820261423962164410456136939581955037513979683021189255004332677928226253602248020430570269478352446306034693646347408748009286262228398687621941621031347536105347988775442770545525970028230510644593030857259464589526121330288946018376969032824578484728556764798701278849017183017600624134311329309465605584158935505749337044387832748079511006248602210551077818703309162929613104631340870589235427694070861843811980294387229439234161986001091372822821463764695696888987528227935838422695569655665136423058328863706696496325863908508862857417491347351526219439503439122347446947135404088199517561514509672063433702846762417706439786203506166966804462531134483968583981322821474360742419260406065845379954562227680813190335545576710150592359312574355891968748070148121554522616383789262639828071493922760744637107476043859829423519614557541470897227911147366301187744453836264506968242937609769787141978747832423843612377486410170014960251412306425334752625570192277058232044592282987289091978772339305309258807752490601487931278763579738653327518625775481745534159800279157093833071453447311164986723618692809675885257229105324063337727375090598645206370713488074565095950669891764880867437825031843784888323704748206093856004185969034982620319071252452073974923422236877184908494553633603312253933466092645932303810450139383237096163445938412922237112858986720471178323416852658154991969785754519641841888019610274132910812205466208720977502338382178998048071081192431806793399842983846797751958947523746878964267270949710525508434022489311080740543886101179396172700066202854656732738649465455811236171554874145338781599332184407507750952505474338899974987946710128842952424199316592521006883423072531666595864411787391568544921430329323682240002511161459549103971090704563955559234622769756979102356944322775736631793058672767014872362285114203971518342718749369091018184537492470534547970262042144816685707000806834104065163027373851393079446009862252460108101327410166403754536745011812150687839204876453804524311867149833933560241564857366603642466419172371914262390549050471223763324170911277136971004480008659100684211269967178627065362861967041139297158841069643602901547483178776347292538772954777198499119268902358861789177873567179934042621361972384813243052313488043815212342520268852820433425960545310446862305721906042447143706343769240073612277829404930057976884405137698482395235697925893255415720846192869889846271987096080586819064342213585090061424428152607312578378055768862747707232055771603704866636228812792949022104360846487274003573145855592538002786083929933502334020629109686278961053913270278098294288876233733624732983716749753034465877670682011579184354606018918908181588594567571768845625552024247866128270086905322564323928985013555696190100659007367053929640353714968906362539376988781493664096641698598937571923051719246467567332247503885857108632391523595592440209148444896957229454867226689271488326952236669155972781176618397899042940787067550973020308644185518623209473095630583446799062474824303141649892918162562482527432424476053258870434299641151582600232509920067650333917801395404057870972524602388458008643124750327822359108587160019954630983370505807054323892509898175009664569772968379729881029170487642478947672447750853006368845262996143014418315145821918529384434861080981550183614295630594814814166689934984830829284793106071864491833800384598729054474090579786952827089440291341284569493994715615105843751802593830210966996580738553479661928858247220133496817306585691848213121290510627461376589176917986319067741302287536953680354249764960474696658598657664371597137308497425468521007529583740800948548315309412013574408174169862268745934519459352855670078272804942396503499220303192198329913970194850559315592167791446166651443122645174981485830200347705314137795060081213685180106838880092613933171282041814468674761660785249492019874544404935338802990058819274903965125104878941016602660929466588800712440815550039241204648910984619475343544426008765719320571013735035613563372568640118527555010569872838413366159329185220180902529336369175716503101993107032825713950713489525486732220784010334303253444037154440045851049473200374339869102181255699675804175139374022163252636871501442558647142430994738377417386988410245551041132771216040368015719677018042577035818877889654774993219607781583545734242702668823373821891879543980409015873925064929666943683734059578006218860493796497393990842686941157349470710786248197816792022418524888183708715900950463559252108304903118776459253937214983399104231111236543866058981311381771990953520390620634415365296591455877432069116928552479494737317480812637878986770531251167162511200119478071205319791541209245498991146789552449962805195637583387122522656984097746836169629920435733307828861558738456887807630223834135969353720969084006117504387722031151691495203513463192526191625915613978247475275322022293619124415778878943003288931780922038724529438890159991574224912805075435162565816793219741115891740133661352924826163060194676398122762896878208419602644100474175743328002009651226120156540296831910684982744160707900794066640375691725571054333778137601398139439576285693559524319846184675687775151399850630085944687718693917475228807317274643446199125572740285480906869549676925731987506691493917816515690961202899976387450004916329100540412049505520676243675472765567170466657783243325666206389005650783816908979942426016874798469034441321617626978362532327233452365684428749726624619632277236805124985560094677021433490509550321264235983629133788621135313537020935740845691370408006415170460442692423910903016118874449576285953140582667248497860617037209764548734539780373517965953901777968890852629746350227558080085099030973719029661479167949245863934844798264997182000611158652593890036717835517638324243370967929858150966831891795260923900650437153796710861070282121162629531513987529621382611624342874366394786607072511947904317301669113194436190035894673959435878009260599957076911816102804312331044146224105066687562941364444775313784792088759573138720138923714346940536696526353386999743096538654345627654416851585690675573338867502247227191544321994925313678246405833751139226745263831610080226972013898840266145648292358583665127714806305825678609705670905679455430920609507862739343874131857384321780028594963285067237509278040792831656353769742414819025450285360946062491326311012810819185558054158650532448628312866525580632108998936728249484856831098994884245808969805366160204774399430491700996499169617577999690056941978235497467034641247208814970164056861985768949773501574779057203603541884507031464425369391867761461111005544993285744272790087275770888899334239147869281385832737582464113148707818958801997633580231864689856485923364990343458192931655037893247450955322593669526715348177013445522050690377139464409671950564344860721111417123285319516446430506297609004438966834167162884112080937595079948989186051668683314758217985962510651177580977079374844836250633209925814886929365927299101519023961538300865199807025774818588503521420464678371782746848578696060191390060130139691820739759662205230550398133997574561312098137151854882672866151396554865949935416249500499769373409931309809101054844693619477255227657150738463083596694018928121115574024413610193290661662029302700808774266596699852175425293086313334640376890087112009320761568885842331105792877863138566594262770042250452972346994931642222627285596070090953706825961125292142151482712458877807994064369375227059014298437052648656004418244898098811126683451863871814932500786801766118836912309933612196096393582928049691675950430151438105076477524232745800604446968412670524047510196135114312487915957870133018376902318259085085140384608310314887024432372300705953181456817640921165642402877750087237494701985841821139715719392214189529581777166013743100433242398470968540397979427202258286451639933673494416605651528671288911838540693385566204680419420921884880978684147789331583158185693850999020719358499276951799483154869282238386165951896019958453902863519130552766376795786083215982837922938029618705775823495484991917384495581068736341731454606067462638719606296005927809851942628648095518071655875412507510911995165676052245425341808489924174894925627905443381832580935792700182476930369932649277573045136808296253961153842002600603913911788293818454136773127422145627910946722998583547521293234135760603801860069014214658772371474705327799253797972271997252035369092789726614521803637107524174570104559714373338938023392019149909770439211422125440084516409057310159783897626361321079896164548141976584619101582012900017470599484054672294596667714314892947560602163550443035035214646426012051144414669540334510242795986877514569162025122662043897834131902658623524020730828087071873910396563461496133716097015594931536279787987562258206515248922462041470438541951724682088563079349526375670465720638177858673696714834365199530045861771316860015298333034595747158860582227745260568158343790025539291434293205398399301618658823561958489090266009816002465782375601763833988962476096090564228724549325822293866376579898286244974252010459376371155125766544282678500980021755554806699508736765767290344499776141754223886950462381991086285425099830277796712974081106770963585866440668830717568237840342133154115936314297054328975881503585408042173604934627898332239292704724179366975806816976542329565467976383776446744945466277281953507367319916575469539915040879830928300216758932673814408404128548904726379118448532513658293418545840709696305966625155658385504707637179410342377049767706614613415631401578429528093880835943227553777713127185448781301781810379312256500858703011186395052300094568437948637108896478875736709981811250167951622970831891204956910592191952417309991227110052656660029773401947402300276518055265404316315426816908196645550642799169312020565676576300579832076973836175980225966557376828100940501144498106140453405571910195915272397984794175850755885047034048564806457315749259500867007838559079610695388792599745460221023954597402500784016409280510939179739587444832396476329926562788830947381920666141189223430740436808205275587047581809977076903153038841483178810222766454931875132767992499011743958959266955023368474534634930016521299103712794145008893360376735954600995198214486337562470253533513932174554503802220533261773377174848480489981020598702477200757938696429485261263932817053468759085465604613344578413426543783438935147543170969308073338715496996003923419224500005563700504740781658474871303515520571103056327790937068854140638663906629781659427889988275804006231066258137042201631141594972867308544780769949262117413470103144690067781964965689451893499706528885197473561312984639967026736516679874046983173508413136196321845707739994442808903715357604728711318223864818988855592662600900000361747418419283953105855650314787953069625422084489154881978128107041020393504491994224840264184922622665213819910077400016281619017131015667587715401657875058355522019599267427174495790319797251927978184489846576688673001796351706118299851039054987582141172187519499978914289889862495070084172131129262768585084136874631626399641916464687338728050219754621286856178091530460803919083408125703166290964647997799310995801000838202662227454026758635792794939373419314262324679825563633364646084336400472856733024262419595895674098031342617838477474675476120657385309418818593887315621430881648550049581115366751453908245217260674001799293104391523294252193761339828109813710386181439768827640335542546846585724838419261261296714339032050115042169662803788029549556981462674351984594794499529333528037576394757710343431998921863196178107928230974990671130241681620176792222438427472535920074348085426679543168196367203442283867938290327840701451412156442777185693155570294687231436550733654959443150383023383820952053454103645295452415163164289761413079828627654460143742795688292837785150316918617275948177690432614665727995265916202552234090787493200665887007223072705424460905035251418457427087958354055868056708097463619266926215082419031594065845442229650418060373698080546203615824381682447823815479055713971547704192655343519297260984369043440612593991163540893465854303376291291582811968203346608384673761209245960632624609028118971677179885132361387683102464157905040492718140144357612321839338038493008540307250994226746114688368547919420905601968289287802540656358436437886926522808291149933622109569814444748179761523807732306488611281044979498556101864045384088002888583964837365919750304039334531439740097959487523815867104291187089684782733197395372662676570278975198854534835168369023601474482951424100342871464130197586897841777884219282751476581643704646007879184479380974639533077301229619858388445969684975875782989420474936314312844656205146489875145191407053094429131672251428868122500472392004383639014326990160028328068103097325960009468869415613906204032266053005087943809883275423278420809675054626791814745081281480781848266956641824959213498338234579327136413184963195767626246059849739392260955345925077978693670632511309139119826682620142943638843440043259791035452468278246169784143319126076758412871409268386576067826055536818856383461473723805255984678008522640240061074256357971225289405917606016883298488829025970868000119693871749090499681429969071530783003367282949204318141221167525481578125072282515973813274700447014450583507676128288559199451125911240314755360393443563927922297689499919256464564239829332396438004671548723324736792469945071117015082867761099613711324033099155884336583442890744787138265309078588177827944749540251824691411864864485821390557888842053416172998346726652825681762071626581457132113719263505263247623168316997055115702931694268155228478944647979299812318362312535301757461957420636773922856604692925785170536434998492596247982504561899779890697042828610132644189049418366602860685862023336154469700697732419254613207983257014527055092851156801626754041432557363622631606675163447068042026083439750871371095003633789557925006342080009356520779356865719034520324833629003497694019923940774871907910103857151748814369113517700499575634010353866571318854635239669358420119309591986684439476060496567074637519169842209817485180099854336876210981751866072620066607366391816033109145292223705217373799101046715156066996182130223731524991307978045395038634710296393584845271214559138002139826540618622183604094160651810468236818753323795270972834557398077941398996945492809978250789235571819953690845814076673749051590714081374312969742248447288856013200115448507506771896048743417020343416348488744842089721980537550283269018696733048099235571573559982825669750652422552705263733897767360267981163422383643579970098683229983445789856122160029739714749345434566848818940493954150325686997144792799713710522450802506308597325133733925834680975111618713817412322593072055738576641147633150287786676409936674387390766885676340728537506591072378453874466763218499356826855359052993396129918063550396482097294018760960392134873722048356555707447227165109173927627315220287231380920503177199247365313247276651183891443375392756303494658124257021573094150076260066912292039418591953103058610522839815046614915538931824118872964995899471265763502701884566651174444081818651108192348178511528533112888737121611138116274785669802338321289472304226854115283502567874334552373697820798653787902738067188581680500983087935319270570521100867554933166681679369433536815306937784109563310575270191485676303310698362082567228876866096813854714674253777090208281258713848149807520690063480160076287298953299343210053809177438483635649937370924639936162445526763789984404351212201214907580082830733080229879103548798663146934021022862418732227360646031004363472879500358438355478313292092209041796428095874624899996737847880887895888188188331439377883981656406622235311196040151563629324170171669510460958611491726339821652657074868140918904743491537122753918758188191358214756252609326177538893026277772475371332920226296718399578050038635358412453349064822685117778094825929685772039983166389425005191495986515910802611971941877731037740427761569251018526815723236587791893995685768785704572602098751075265832288401256106291703932910821363107469670685567498402258875026209965188625657882646782313753928338625406311933772453816425569774482150335708748065701505120003993401623245312304223180823461651658204410394404395227555125509915337983083698605132199207606090136378650403495504828621740980066730299207172003929979659252728338498437151665790740477414592165128410695737807313973507126334715699945823321387494034731306638495810163587733663597353585123331866747623066532906223723451527756795606031053240493345540618642254820163628274660928065072830052020017745101338144518583708905177360628277191626115311099234810437499858464714462240909538270500465386675447581139623717982408249112186763534567914976472375865252204537469420318731081485863765042450943552304929768214252032076346607710508226863911974023386635261699226479010323379710073426287154514155058703598727094053811531136573991954880208142543785817056822142122572250514114419964027114410745960467257112274212957092028710404115387649337517933469270746107963249185188820649219834034936939005067839182557516955956192422731528745007620836975113389466482877303325647033047463222652010131523853071188689766850069134115699464940682620529744947347497006255667857179578097976209477069726827773255345011268800584761749867510451633556353751848537753553595171188888195164780662464517614138117993793923897643867330138669044450896048218039785165312492446961141645113821617164008382137313883963114829254805413046705249340286885332089536294940657916419456319524592230453018381371805295278364736827252401962603429395823292841061143163293019938714154088413721143384279334132773763368956791667541669099028679489210249419531846569788503024003591565732350485133022885077714972113731682072319365972721638685919736390600762371245540391611009487538071201490487952570388851416477211299693839335953615537058278631409495147889968255488655036520603132842349241947789697188449835411262686427250620696324189019397897540407808733505579534206711704729513958084088882634220051916957707065783908267469569511606490227630464073346531270049592457224346774534339467328913021297824423884503096782988609669054647313194705019750753331678230717295872086649304034031595718953327546207925015194030944204809809603919678538683508781449871061565069673817691979740192193310061813415099361904940905981294639502047568192760778592794611362756917770633290226297165107032874185545623545947291445086180503247763707879180794424665193018115782474665419000998743726602517017672905672658516621939860532472337076911508269453708542822377366769747220855591445022573151558456758335070518251179241799631055401297880990178131222717405280551665685890113747763340070747211715792503712819677375781561205036952931957065362916957774822743027032286717329633516350642670042380329374608947319166038487872152654710420264484332180317652001780039476167693718300200592524688800559170782079144576711963749796000217327075642731720602693961791917542644465339510372525694562112049606165650896918066246049108946135039127215547069589935994265360276600024404673656545023914436217570487333999350643982822999530674432796178070431855080561966359982578157677380184354101365411960418024347223965104647868364819120934924065433369838130580833410903640236601630285922657652430866549360081309093490107409533441646927083833937623473099732975995338070845923081508043893233916533636048656100381426194354781360849405758852420808851760653215813064196425373763682725997439262822282505381608958323431969129559093201140761971026497776056849505776716741290164032017581731707025192137496579312249232676023189389002378641201822007764753667550929735465581719216718935955049909116875842929177422864306803462976215045469930598890077968178367963454943827646591592146562138868857831781968671153182030688186069969648837471140912176970486484136943161171443774369140596276046404625547048988408390358096921352802913271463451882378585574407527348289331975639721177156732142762096587655859149495033683758260263793857763956236391401118524563694191597565050119718660295114422300864675675669904291585556549692957270517902635329205928666933136279278621675216553979441213784533830919625032324044315930159069239983731214765375523798969629892669559748598032577730215408935360763074612818239071248423834654695343807054519373423394293119186616890251112731094257676805008785764127977004687842653396017000911184212332748427580825538571304979319964848499277776318671209005293110242732017338562068965741178011678479223580659921736110940895193872825588690776881006461445400191208934369730872033543265734812662690902067913668297055274492373867513225189709910619293463475534783967339614096972832643866689450976701613641983733535373020148483998551746808897743283234021918182166340740323259326662631498359875597942964816262942223516035546052075381523372725021233378045167855510952754199943902865745081155665051453021639387169098128337162130795735602693305754380052470492890560650794383910714366051551260736301970357042719162315012254938904468638909946018789054758682841851035407719426539256597119848199491123703636797718385907730091398719924900767626826457379491520430626279952373467322111078823922487345637689389347548890929763950353336389326029605181465740024509760872598976575407883431962968657088624133929152794243048677943824552021759499735200286133615810081124799188273101591842958637000999002700881585061411552387752229868017184859245978793521295232957546703120361852411252274456953085894586176353801741506174597672970995119229358177104617732565996787972424801772027838560567439536056985434484329489069223534891614437163184549203744002838721369179893549444006764020448464675528410071571038075182267029058204497529729214316153397361543030624613951193889073847823561359468382269400250293637958289677049492411166110199225493787788449318697559212128251233919605818029468483068317762129405131263350238149156463142085148118386489018473828657459064086522500381179765985904797543086590477050087979680110002958550902906051846272788380070573618626687647149433804774603789736044884175996180985328401920754597975799750171803121739987264537398351834574698592007747962926600776724978251574754308109993795908753573748277421111349922408083339633492704654676090396721848206052808135552524361416249808464054347758601625915336045986287887061253742289236464053054145611617445473813373144874652676220347700898593287655434147099506133451880343697799707139515253367580302384745864164816401586908645728113973269585422317722388550283053054855143409024784666707322034321859453032601081242097619078558313485882267572817871493755509168279680117519860234818987325433078103543716301484572473485211572760752450175370898494267274271724501070465715961268689557342753664652933088978995677890022631549636757438057094837866653757153934260794296232310399316095149444488609916831365283689259053879160633259759312017153207099679372702048122875868661848084928794984055069407875674429344221205929521210009397407961317879792405351595683121656986333530607913948341685453824793666440452062969558013292453691027659892253539898649522559393348232040540731525944289886791750684354182731619953960028231467483155761452778156309334604484104070888158350740804596561846191502983917408081299883683310945908928598488087387693908485218881880976909153112289850715401085018659115168769561034837679553652603150104763865902240640074999062219148662224192862013660050178747180555880327492910843897606998059508397260155577782512469903642113298439744319953786801721066048627340437820367162405390244976328564390213348410840155704439412370585617720566774139244818924970878133844610116642369518762179524662899390828583178706826989299977470060990574006110180888849297804206512207452422674097978040791773644428991553265369441536881200548589904389632499372066016700423133757893925791804854784163719462078082402583130028588157954301325320826570153050411610958714478286279382907261527237554494952871848444165016692857400008511118914772174792927118909491628934971167759309650658097591825368118846736712077235191675030104521769515383469761570398110883884118079057935135553791324553685336460856850376293719148606713616999737378288647795553204550809542674365515220669106141459220900054427008349196201448986117325632707535997759090900956686394462186057368013786446833107714751489645124067123320091462740545686131897563020281085413158191180614518585006660725322743055405143049153030011824868078546046689579539156891439116324525104527171285613002127884426164596953941541473276622043204798446566999086984232045834736675603586881433204408836640552132934768214002840505613188164368715249514866512627220184696515604211645128746952251873266624095813912867986724588444254278397978968011465783174301956602744592549726014781584450494846635862993583833327547467424031450293715908576686916524200615860756642561538787435966929183410933012561615165763634646834506186939143836415640429293743644746759788725660669541245623703363934168053962803949828797473729448492610269687804202760367814755291971877881590676093640245706422752279829548824908041550425015376866014965305254766424704663049000642747427779377103181418173951604050575129296150944359780740926677513344690114209601236258529146739431092601830926447088903577065575331617159646816128408014619899406689055003248112203493469937246200634294833448269331158408816290738601749340469798851718112177078353360297356631890777626485775469458655971906414034588248417405702274131488813009703708469263414050201259825331257925315152020162446728731902252168927811058064530662825996435604930759805420261193920430472907325228216724203325387377777597008731515963330376862553246782646662711659880942120391626519750381152826087187406459107946375186527918526983149594119769356794302506870226999315691830441969109343805428813590949062662788804437769415674995395678371217221179885427248502063549443180312768930519564826578678813149106725558888992508975565302828256364428927900559984147898477300399610338993431770761844270898074947181320744491463014465491056004244376883254918972736910845341077181938061457248717531930232365597689546756727403690036760661876934391719657568101138323666575223779451224892886715263767360165436120300596939812113106631917517844691343658192452640525305854531548440675081874435433189375239393803098255216284155917021647710578086448740497119124848330173623369228871610953677820115070646237148094702214555204344866761715937604707318480658356562558953017580083777398088649768998951550777243764844120501342622472325181829667523894217265797433850855689266964139824950880503475334525071711961844095516436278839217307918280207341597538952978537745091289372705115998994631191502898324132977323825809174622535875054969554951051806334001700455392934422016295908684970451627781538118625446350669547965061158843598812324519844936838693768043642849651428835481649597734640541596063612920828053054129279855959126825586480984666810203467913134407914523958532558430911040930371665180473160373027882060636620382267864796620436862342463478026197223182722971567246117080900492863217104720397618558733244185461872854162000510804517797331898521165959181092581990059861411142786755803447425900635598911390175498777929976701371733356571402954512289223398905634750438642961803368969851264603093677480226710215858529589478201420689792151436124059771669131926499357555161773759272586235595834039310021122296539794708822561782779433429349448810731001420251846230420884362171466156919117390726907577233154393307882590476894526685247863551478522583725673647945166004355364250028650506095479599598400487251033206727049371879395192897524755331652691194057503943440265338162758409255002530792448218951507006189399823730110641812311331217306943901422986055976498054958715513650554511413251458591258486636204584346942352249559610057933972952325314950555357253194273406091312215213209140408099912063790929479717621588367819941425113788107583907273279056968596138801138777877743403120488230857387579956256522680225954728320627637613085526795352122651586517950625714274406202052894569710134966790239054689465808076285692320634587882424132806524770521196780038714624561704324445624503035831463827651959402823387676006059546193513272188757145522114290518100618376081005827789313803973250586504563662409769786765944567791724633176645390990122869459743416673573014726057769634713420002768415908626284339510008630461573560584431038875535051420150992599968289302717180469782786618525514317918383565793487533218731224771106838471068139548318153731019571045685257076371556230350979527962703981329210682068612293379271664592823415759523885585062669585861089740788643479254457019986010408244731524267861995960733118421824268591773318660407851214069943831855885848220172367712008736949828621720112263850849354987064921772513049104761629391038725233667108650014593041980658730972404214212970544477663242706072583231121008679483798790088929325486881687976422202753628682514209901789088775741399881286732421563234554342931458933381863782328055832336912413296994781529941869446702639207321684482121317731704888259205707375633792459786601928830104274835472376540449120781058306782485654823363316340137095459649928428467351566179172731192114589053431181043911706860095912776686514905551560985265684389549377429287612881992770230493094226599123532200926084260908139562387272611889590164326665444887734424376659528080525265048822964148487530289940035032041702967958889551483343918165401284748311943645874630692128179943736947629942966381226113485231683371565960498702172532376929448388200928036412785864307913789129587562624354198383842513597086996369151045548255583425295718988583692775202575222021680456011559990658887190278607386017298268870526430320283773567459021616151671246610575586749897552674093421141264450637171428341381586671785695821976359022774872561133179525816732782427650656040689777183703891135850283445825911282854598780087632472926845295857407284957415647820576398932086960922830201955503746385518343275887460267948198509325980845381436880967010507222194937238508701710146426273966691048365417358840350958406524281767745578863413409574658423810101024912209356964861764849801569154436337567383091857781434147547276565061930597947769453347856200184737110366220616333982384776310726048464961965534936923768748961579355319285658770664914947398381305208866109910285172843814983472812796876247090705437644153017087779068199326859156610527455543165969978154013951095885648854197838094050024795330145860106875805605022558727790854850487506896604863180267929777259828716618254825265581879682365297713191169437782624575170714584726648873760563904278514662450662665750316018743855132105119085949894741145266020322752157715859135487128574696298345150409685234341349031339908509279028552151956237539504814120230142831505685496249957091530357409048472021775548593522284754863839542171331493551894724463216181725359381567034961334300139058539936987593362919058262766581184655524644242844338381635577209110500756330825035676741861917688716461065043955665559936838248927285242048674706098709133731822901964876012035760844023530467772411035018857215576146022767671614724674457929258638621253949334261269750064472389874189738013009266024782089918538576933052344580714145654063785193236827760932674402514297156214496090722677502706932015205724852956804443369491152052168505699895294908803571608333951586393997881053971045935123092914034935188335628198324256618867228298780369129856801187637015968552035554331544751165822030374875372139223813366955942189483377543146919870712107209541158155051847412905854474460475101185536810015207350623142995687517366695253607428231742660608928284507390628989380756551367625641706536543014057537906459493365730034941330436941628460972708147517901229884131596289840546867095753552550270651890516709094032720154561345240327156331135905103093682536133483928198712068768898309013096857580240178814166594502206787184544259596390948659926719677657997472510908607761771102675091416349620561859099599182742758436993612181968104408546358551300983730136993373354889198627332661480487241770743663069411115544293315481685586129595738008374660242347296658810389970484983174364580251593543804206592182988269154763653706886332252043759493393572067355422377305366632498403208755938146877681269962601753965341046554806572651772722704986841886995889468231333671433727098289623582407193176807818807717111257460970203856508889186173000820942556435263175032770764379539907640554330680333952753972135164062943231397195970548706645612518455741092611760661442907065236099460178690044647226510198765743603654741754247915360940997962793901597800569097713721255562259782677746099250617901101194114094239968274740008685747488125926872271042627806986943729812213732592668945852169874228892360009561188779380487428852844113057718467836896145172037063223211188459543128177727571888119684221096996879719032082676894851213283119845066200026065612926332728813501732035166139982232577944499391139407050333150805730492316511997330025872879072795845952984049499932316045181077289919668447211752958849268946910470316872836650940793857891554086352170336072148899512544020693396364726378350132395040912985153164421662648733177827610578667674811939068236842494451549372361695189995203621881881175731564850851932448945280760488120029311777542128774521366832006867607560998011200101949818428559154159857685992688362601111593339464754456178104691832244805143283815249829365460830489707774598241987579031186225834225472098668276033608135793594668760999746910232784859407214152994003862696981906418794179539822168608241948491591153441752033629889703360269825688246209406662272402117023175626284350577891461339438251831825208232351901651486824581032831215026379124879475734618917584765604839564257222281839804073789714037600128877110945878667953883763748083598689830208412390091578053594690419129267694875562188431250361512058055935745933920040991746531274903581541643541737220486244734000973593953048351140152155696045534302872399704518951287036195316844431122410866732302964466108184398443011574728481818155464757850192792749591114303690291665439462351088181646245315103726189826281135842513445987632090756846745329647580419368090433284404805978604294815779309677037769146743764614916424938688437267147133091964581143354196807665529728495983240133856034278324777622789989166145849182684440891646088387151142649463245754205181147416547920290063558879586079005995002722163504090816675858432912907605958728410908782843338095496957432019940768169921344550976202845784550890300332885145668015108815068493151018750980107156172774510398414869033893488090523621125755198048300781712460957311106171293021453252065736935387466239606330732025251110757144370571918878136236791125140308754249070835885182408397113106836267901470043155788593003665688558633240374447154906729733373422516473892122489432047826409405739650769021379943680175523305575907493860389356316965693557034141568143314677191968642623745659533944449578770012755978501942939611340055262011792832845342702412993042695380507886856750732756213203631080619482482980145545179900259399025723058283102184577999563300596957107643012931315464812937062389373765931855995870368304607171734669655628015941081816944576641155218957196835794491940555462596737775251061772279453186413304283362747300557182383984634267156654730717284590641622249889156544365149177104440962470909788274282443130999798543412053065015221468135785382357977409343788045193766622961509759627132331357014492262667377087319290179999309951297057732333797394949467913047723559400944830205196412076934996001108871015890930251066149933177088562082440042873776777758971047550169357582326894484532874987366593866449111760583897784699630212071961945667665756339171170750189693399145390268745078183634558098674120136947761682499131092331619811155507241365236239611244442907717919687364192319352101039039600899313014531090187486446404464324069069759106758232211735715705248050446210960742929445798306493927735955417040305627411046194048175898694754910507532910739160111905341731770597910736379469540139682312522059251193789802274121346614586313592928605679108888416081199904739209021105055780812923228413605263174623647536230583212105677182983257795200482841579516377734147654551280929181556948292058647870546169366815459443798368564616068265270828432489677590023819105878858239893608297138327005692673963186892474550812771329249070912229980997066479344603880193375867371354618933317284032014333401561751891353803668641011632101683344213864780789226079274509169427228950825752554126841227873222556698632273584936955073891446425577103602315014975633003009135721839986115975144750173718712688915782417505333448536766786926357696197123513165385209728593826151451323385086637987458380011290858330326525820736541122296489264004483202024935559810933903184906404644899999807783340606791393737272754857459453642571946879067962643441660582464985906334544328778536333759435134668177017031309992536358163801442273899666523114219937164050094912561219742454577315577620575122278147906548949762527580500849187597342390314198285422197699341600815663961745064149562708238573361024230693388999488552705534771353492694933451192347688952791396277943820720166664174210445896595121795359766000940603936835683758424156085321441952117960123046594121986981369990575674860366780303340396686513331640947780851309559328618965851415498238415536774072636096003931866500989609105847014349948412689122018925599595261123836432635239403522081918607001954463293168605495663362474868564869953836440871728302039830281807977744311859695123904100392695087060988651891928540425031637932901386860936858143023597925246195938858234553483466615192018868460701052605524180642973150930663295444444529571969552315580451205844067579292838138286484595951182078286747557450339243521920429672294494246248718378497147512687474113709702614799943711417223743007555715842229808356398721629941815522664153750226960252948088418707451110075450183813690469465642499684280928552012060246435041507103062672041356446457957613347361439588322981066135797278996602848138246988513966617126137770107186152655108423982225374840121828746255957038845629549716417540709042070013554111640062781964825447658006113997535507707125673032393510530481230876017559619742307147690110637910933817705441800172063001063391291614591486712209181477868026246691525080248400082209735624967289600180444573632235353027295682262407376580829860108007000525825017220736396413483888443938104562961957299251441098632493875096739343041901136322551144343560018550050261503055219375815523189934081496789725867939687554455819272999704901867289111605916992046887609156836809240927861057559610144163557319099402038597378754666928220524347667703378370989128027384084468288749777964856287633683111907831501673228746570645892069083745099418786138349802944242779985925628604560277397671081169244628344864606782700898225998661999146824583603353997292762720295501776125450963776492680711515022246674350097328860756751060772378037479681420457684571452756300452822633647543155902730535405597230864900742652919604012782053023173847915918506017227090642333587039297578134739720407768544727900242024542551663802151254488825234846848100816751419224390999217365563360090066862039537641694073684420280495712898758326333496390995516231386561302040540622924227134817481296230592185893086619426539277486769694341160403947704585454335575588399836621029911808412924926245985224052869092043052755939811235176879553584572429553750879548092155817986428153400436096359806142761057010943071542881145972783157905640166425318016482218332732048932444198093889351302840523559119286357491044268925625453287142493139480232427331066472542973858547952097673309530878214062011233655214580054632302201710776169559894086759533737810012658802127726153911296061639032581196489048305252853282566254698410935738182763889697139785320227167784995733407279347298323641209899893488400882667901809645294736345654163508197321379266603194956653958949692598004071373100133132487179615065130510185365152638044197303083091929827309826198745454210819989097297515108466674770733334774868813761045996106499106976127340172370674831670262344573858762498233038632920924442819847164677803491327205939928937966187029468490616103604974206348410468332173139307315223756676228954806421242367850737748673330375366646046580490199581840565692909797952741627722833977519043731270625603250589194250384068989980075121518103920107676707463287133185126412745400924572582577227771764976181134599621311812348737072723987557422430231404086184563606507175724941939599638115233603121389095161250099518483781382035179989407589527770884585635671200722655847471301917106989160414616390157637908659792264420288896346353739074656310213896406793495483005785965813467789374675686245502159623926357644943290210083420388302152383172631208223897077603780189017788963834330192325200682886455633557940901427694991518495475827488997071643395927994376759847225962891403491901293443348038186694845222836880591474901738749463806567517677483096741755755549812354821752339493584326036033561013964447102059534888008279258503289717977734481954879127819631153626095587435599099532729020351498166768112261707091115953941851404834755951279421781744361847808727811628784223390737881474121301713213142443805159534826798311046350599275870745329735079521953593079538718193900588475020785686047776083143649103330893704235118798430728022373347307413271360650653536801237049712632270935208286669367082705875410114230040486542402959355814105701469419207200166985074526690901789124912855729079805328532581800207930896743237594232610607472575482661207578617000599325269543522321880043699223577217663929532188687523317496048379827433251908416782589402166768848183109455948406666281138645622528173280913565763632096872882335287455954088124631611232713104978633383822016897384615224927243108140008444918759416938563387346124209178849301529699723723355548254788893754808223021694113720924232159251245723193571379978437377649865212781440693066256191068964096295483093787875413223305500542538207420537132141556580232727354139447284297636858902314587967406809921872211413426818230045164904850807674186527102314094408823458297131626240675514247716301664593449252367411652323752967751468069784071093779722881415260436402037625982467558660656375688157727608930456530304836469018213511135058907441916002276276015379952812236985372416060292766838622172886821945649949409977092685852318790038706197843295861832482836654249103063497646707734677446657435214829080475160540062658745064396664424810363688862459364898175957921477977905717677218955358181730731530722591316199319921164649779559459059965119740628017533918415306344084044783744781347540801093703838758539276741393554560251345743213523344028504043335734109209852134778072780298663446680859900293372941298881949415272555986920000737859902414344660599749178691043143500210691600180707566937649084047411156037733299115576650027312329425880487885796633517665474461344458367763471471704335131352304039945047422262235656890700895687858976233346788783248781935450659603863486658939747898134205922224509761001151466008204239517906385882019458563891731415642064216953619409271122517771835857432531631299444418972230328699707099705425688228534652822353112992737213767824695865620080182146397536742609488082437271778716299002985930353542745200031048219260774715266138859039480636075605397013467092715367093304117783820618404476169051157296751294391338473829269023695287184731791129074574602698114018510815206841621137646155884072592282068731838261227050299650124511469109882972344694782430136766849976048675120662859887961840183027246204920124001348686663505148202563237092711943110545070617812592624764541780516555400263105030041436067903001560763243990813528112691277833434918533769384315830381804722223199193566658807121152688433916878317905631107144221713964283226444748031045231863689261279030920143829133546208450100881951533840550625020356877315752594978457855213590503767549079254614965464078967885488000383102829382518110355782599253896076084812795265003041123867166364352897827825094752422117648017493266958695381050111047517328684432187924610928771553651588267321845949521809230511729509399856767186531935158866280897339776048191392689118642721371581796573040100651100083397917021058755202425831454727984632711352861825135990178502021093304351070164494503287286253583527070555735324910018567955272403626911357725846855654472793435670395740442200899544511001852046713448795911009679409465481051873727523414814762282029702092424449085402807377253974508745028781489060956011411764278873993241096734818560974392423769614103667645904407849460257973324665964323028299247831911157099760499864539715628877315349062048409380291192442712321057952848527950684778511697005628691424457964079120465369263828744979783023674618985145657020012388570211572546664840432502042918715763263826168985628506875048021863310616365722556837265097056926863845078228785087560535382460004448806381543702001235687302748711597073832391401910741882296910120931353519596860583085226624183994039292146951679848076422817826696084473191211495759754020502901516462380892277431475706402046038260646678923867272198403889852011902073026287163863466551623844585792100847430282301315868022645757920638309403536311907233813424152526030571968080744445507864859159653033400140985923773897201099901903712286048900573705920343064742615690110331130113323814020683960853327643488477546547838257328679343398785280534606351691392103760412429167575374375480100958500770800646470618248711954439798567495660257916058369269908896382798894416895535281747561691258524276626347516024125525036824962023653611018683488541561046005310901273086034519280778822062967251912516978890145641372072034150080447240292191004853870335019351821143097623082714862787103813204815860140331584706279296928378366127082264378898082658702340073199010524234902682681148895785448738645958393717466546399881357040651862205352049081778719499637312727498361282471066412686862401972557027434490147983581834982341028311240647097332270639301086758733510912336547715945214875560405612452901661426975543105780711291516519863056141193593262287882509650336748084240852613535207563144182643056963474067131168717969327857231572229036662857122802097849152112706835609760677842789493652229210258661883190088360422266950829154948023776418262522992749050944747271826095103452849815269795793895789157611214019811065955449934059536036836247748107833273822679879309996337097317824586673937292453889902446449658220208847055341558073447349668250822526537401045933912932183962609682909404115506576043162038870509963657472293446725753004572522008201337498791499297927949152914980307735147208326033060604344585656378242111882089998634113421536430863952360207623821670784496313348768686872370607526383752414102673985920316801531816593494017889683836662891041647974470898249938055082287084416833493985364542155637980726012228302352719226812510848804962515393125727565858279659512762756971099683147846724002005847254827992237147971207731856946810921103097176642839801629236319908016350383731270193231494434942721706900630003160118092405729060751802687612540475662494826297603172990660306905470287403180659344209545542800288446409037535304178535735015934676950122971200143542439134868813621989458582293046140125790247630489632369610481737934644467029113945052952992919161606032073216910648126008166466832598595412307776848552970671432467731129964038570157674992300866063168708682754624727684009152584307802345942299062733400105001045967111225219955480235488262012627057920966137958277411888146164671879047284447294270412132732187589680987817088537904901822445608772438572422305644791610766372474411185279230782044823169830557816677568715839500326390543148433974973506730034163702347885122006952176549623129596136154062287237687789394072898111685402601951470639900807577979669239702497518402228857803959648695403932167836728847791071345789443870047565773034709831873341376547966534808798224944927712984034021342368006737323852345625998274479574221950243346756979656505796973682772642201499624787626393582032722588711611365467867716368016569925503098847755449084031956543086624285007015684551929918642811336348838021676883772044487785247775492761336910939179825298695820492513006412722848275175986238830942160674003187394426137628717603507461067821401054968008786932066241282927985692924224843497111130239270607504904483456124004755679498011006774178213292520426758378459302330503203985079703237863961860049152143980072010641968838585212042852166267084283563499665969375177240302979469859714186660178475848611834433113315192458005187319269645867989229970399250942190294161009676627167092386670383052247920891068393932740741925041982972200065292467193628308356675414558754365691269948057308991060461355242394566439358426981865443422957602276165984646719457104339889834342697688143057117197869023560768256069727661038590519609955074443540770831667980715088334545128281784745830283220901938884459181813782325124603515424456124245285770972868246419409923009433103656439695439155553055130818897873677938382902400639701165325678220502849285406501847542395589573631174255282447706496237572476111484496428741178004184429566689040106276188264791859096813475320013893302217437752896296155195559798299367182588317187146629102424714882385690009101757525171206145851451004344314894177145082257281486295870597610467760482121667366689296624074709324907793322778302168786209235217711543868736476422034475755654287393245841298297091180038143406791246380209154127498212681873830070110604393697685650808436408651295363204654274865692917723851142275736125986050607768357548929111293557971629202299650054914635402257374663846480642156865577906108314089513155715362184601548792937156578418561199920508193808981724193314185387896263557754061813553772736893680069818930566981331770863670348331954617748670975309385624884146110987030303947848985251732790211843262957738900472843102440513089359838358955960090891837644258421197188449972970678384013353760725973784973053609698382342908137193229670120862246027894102797579377419885420394879185422497229894111721243329272940167094665744674265232973688526873719041153975788282333181043560692483171024612586435549064464414167049291973780231756729522610067805742635255323189933534566050437825959893533466211640906777250617632986830140618020546507585698989964588401705548269284921239749593076020603629666214410838909790713426807574479507397556735434241066400786503665365756971897015531710182308349119489905130653371184110597616021516629875765061865570977633757157016886574358217576837965484809456279542554612960653379594777940671773001433956091861299781268814947183687598907948525087699293809038119260579617857830276649791744156172089981174321515315578016184639819897389643963348111023963349382169255385306050865747659296403840806156379166743004270113964627759992070468545997230867980106204681052157193579454609917770649163955022779496618862572220804251087350092136715593356771221558270978643657857251824009945399048872207803095072518053342743184960304197222608977090497665248056636209924694551127171719948020055467580943230196668432221638535716209349564891896545827093414945957244649330173038008751458332938712220556082901367602159460876130512695798334676167993487037171306756084790587868709788939481368461094247346503103993935768756425755579799829541594811257545010336522778256984348989341959112798093951729168602926483268603286909130607113625330865301149494157497681070560172515996521886479472804685693961467539523344775732256999948082945536713551763281067453407138042490809301550014601583486051842823054867957100281962545089752429401399700840108816580368771809181501013894863827977246745711439293783091199148823767659927312937466161566845490351066428325887801094727256664555460442126605113611751742593167885509810064707363962937821416901029198318193794067459053077462762758341591276084446755140310343726936090866810377363463937115235698846968321514792106297197067509852966321564114597670831136905183598875017278573779364528806453088214864876369089874213872325473265723155034421559875492158617823352324056648539823547409011752578966589977878650064507547647621356579590909717627184212197321621868533227095988937812439957004796737829714106673103174183463457742687901337818689369165102165474015945341378032905111627131725591428194859878758723949939773579828139286258566050786496145991013744104470616129023522177590068626933289372620413385779551807957547077252014326296719623346562651043841990612419646114323391401703336358625794045116135290288461697784808456802569067348035522075877041476651922887018772682825034362019470400895043348683253664366164983675087869060846820995979463625973314390599945206311639439312468744014340507202333107405581408183309247252102472110097760420645950669292662301724488641015541580182249472823809288673160289392859239969039233543053872879498288824858488767235709882713192949910317697839426403068591584409559194756174010201984350928333382881003524419256906766648674767710038461119065363090574310035731008096514754384553446447820964178136436347349986122366779532757575106974299220395479426892468034437837472344671450045536925153619277612306078209961056339277860647530888702697899600689160026218396689084150314979592517827345386732347862856588738680342022021006813996942519153531327011185808920532010188446590800873768580241228886417499363329728392955493951609258371444806562947553207929184041724696669203782149093957593181898485569900340173831631225842352497251992097725145596648364080012664809586539130955105169420311103571922423324250017243550419804910944352418964263550762690428134285808625460632632501998305951144122389262240116262315662872812555508303733427052849281825294598871970287177791201251325325804203589729032025551148668486747798922095801219026818623654083982290244705026960616126211869601901477095257574255095132590086991428055178304488042575182332990045159119412521153814325963090438559782040492632078020326495805403514786262328933331697703949740450590503131957862658430411531576950523023676986456325202527132533316504620634271698635790098000564287223996532231199871905664735025578071329055382181699791123430100172717489957187995905706052793267220097868344451603857977224653700871701420517607173695727124165102142694144323016218075018910583094191875664347225157026199482592529796382500748321663356328709531591572169811457592682759446247918572667579756420600179848983895651108372955716530847387023853113053514276370127481859979776510821095706432327701330679603905055925945936880798813449270216153387687475018217855952491455673155840162498723758127953633779311056709447825962056592053952562399180696760865433151288375699783529850709813356902282980356041174205464883848818219182422671098772690715800876034726133647062871931246394410674627021567863220391908759913162287477191291352747187189832563563865299575132372275946101963674839176369409560470683363834451637662624326863998989411244187353629496455989852391785586667318330833280262810461443990189102241718256154099074535403765200384101693731267462316048838606626422880213168978074778518670743377762651569592917748663548698985730387663480399983383136263589389253696247416529579223802513361428411333504064454692508113276829349968898590880849442249966845002470113950286539589546769905510100265065454290816031656942254111421473246992169052766328506179978550608397770249540390794876011057891832387462731828055106212564042896366918558904962923535208200586104678535614970773129558513956387223849799286357976294016452460611369921161197782749818186155576211117459503486540070438659584889644317566781656975742302189380459045482033221632724722606988625439609223158367984124160774694792887594064060763627615416463289515668678340990594229455481621613159790946082054540573222200699893389178958637983495890914568779550089476139260081377988994913011270371177700776129140783359943497557338458852915876575688173514935503386072592437007371655772505593061180857723728492397906324732031682766677789895559351644526385414750282795336720716414814142576368784401013981407611718391489568092968538527209169862956464265833672341367200820386136703823972548140779712455136264468033259770952324519142055926174795011230494706829991277400475844152084430141420706374791797775571319374154241089973554060999815955331264935495780397175097030935227304949885100209447529219984375967670282362928312706947812335467424121024937789451584761417367520119270663108336918750245368998375797100932929723751311645502968621519726289576235615650016240989889328426815855938973909444589098567822116253637265668291345699623627984711006720293616409058841744312877706925267520186145378585911269785427012601189777022470231903656728776479833017074632042261986994909117052397679607787995581728974408364166624296160956113163396751655321512654868759437989503942736217223550665664502047225555900695526471983379928809803021047982586945997924159688007591587223216257982539946493601880723345365097012080560670039007496433253070458503867111596189352423244425152388237064803351620797264206575698312853557916051731014438509979648191528741979443305795171441309339180522898605814784268432180343016112145611971665178784227618667243088961717062559844380625752060057040195756140318904279266053339778558194207721921085452812889938865604652342925703910970132695673454543771126871982768399904945707888361727127552018120304079893679281592444473316296718995694314613882159250601551474598706465865344885542872247833104380427419991790384452327089721722392167834698776961990877365292338159106549403505206830577402626788026509397627281261078779348164574970118503761127510659053804132591230508765020533835360671980605899369724524082843601061365873739262522133280489847860133074640186491219790090504404640007960195574560450017394259321148786351139210868532460250028003915367938099251736203470955553284275242559105908434972836826677164824937345114481556735936368191867327646601314820353717096599868635637597884626113027440955524339827591562463790611504897962406152026789729614070546424213895830375862883976660984054224303272753167856151634298645779178511103421835512224213032024758929180989177090194757282895699237735754552434045266524986998504687329151943787858730948663515131558778636405597975037786593497316619762268150754379283499628455908928063197962709173087454314800300671921218832021522253467994879799265707240313190185294066962143225999970736448226154585547084756831958715807824117286627166977816627009230430989771886612776635560944559490599698816214023382319051473077552652488029837863410558857160232563208905054112170976888961581968771849789695179706989342026294461125230453769353120979706120059862012964747086963227682708349697749444516363927060525613789905777139804862889845644044455135939163159621802405400983621557757076995891954451366208977668743254160963237219112185329371037295187575692624168449870911759647833856916148988375917460387147447457839295644854296724410561426757611244580819953227948983025627042516201145499260491205328890485211387110914940499107140396991850531464679352313622429084038146364426820272630631497708357377256693887082166960811939476669964425086408748125542254075371079664725850949810694722584887257838878795974544364585712604605879714980537245856497477443405083485614449061713435545633545937901825674320817185033646092081858284816838295282215157228988907861551884528315374184924513057460321354623221615454241415399321062749694627118628926368054211372265603124538987255991805415052172759263929890643712654021405792654995323647195723284143895987107057252739761609827049223956771457351842017853813407374607666245919392066362609568062018360847752991080904823751838720169100222591944171164974485139508965084110795798542041253291293014297030993641256002690219690383686352862316512402715219732129688391609499547128093870389806287975489582015420412128275122945191123154894897988351161876573035290124052393674415275006741721094406757958948755241245563456694768356800503195483104262727688624280742712595169739651258720491461766107691057005690493557496023332831129263305490791799319542340209453974199215788445982048769857313363787267956316800047202648398098716062827524900557712515045832024501090386880149625242097814618874054173591460430474977984344488565418998289454577761560576195121507894703457108501302399405977899792770636975652693282883642177414012706358837291380280329945160176613073490538632243727769892762302367072112830506034280894176899309657423517563841549566424284316574293986730431818226015439627250170498655515375604188601691583872441732046920606917035456640510167232894729692465902447652363420144559108073364220875533913831938502759032912780947963326806390926281244809623003270913457935821019776664172329223486236942740764293151304510789064234083041990590874314439787514310514717219536977200787297808315152845130469864647777121291837920086619954571088991279438199250414816434364188546219236281569347014920811282351540809519719800541343769777006474694443545102117906032725281739174628003616769869998746847864550897738586902480320632334669745387202206187278699718302322266614963973696901805111331781339970060259364359508739801235585391464825354896712667857324780052152567169502056408015335200742729493000424094145023061679664312736941020284670996530605281712991300030232213937386706483814939459770198531446927811966465677251430563505668582386855806389167182135726024808477884832069114693698271192994555370932040449018562738983597486255256486726967004902604926641542777431068164940561573310097386848140399137561697982332256780031735364677115556587575127508634743624192083793294342249104724761640651407436299749062071873536626885719641262522701499471356858678285667795022365074647688071764699712062853081781149113478792134170031444924071859970698003375098081765478803341329883350987702406383262989085560767158096690303531772200290006328894684252627315316199185078828324876034870863338223616107014243166607472669972359601940377015533115928308637691925654932947508489064999550000975087892356068502318840852252901624830096508165934216668832756664224193309487600515868441338184003030167970929089064918476449429659430236160297905256928370344673575167793644922352063302971357602464428107194849006840610816736618188773046572477139248117327509956642618015095748972478970507632250882908744853559412927765095782381162349990773770016109423608181996904953941792265146064551418969459292577082454655792820856418362499860272731510350979867464181045816172638031457496908535579447378291674575278352957947780585058615075214329442296244278206534812022559738959004765422071768688564844648787954502033092805117816485296374993661929929857631614936809866876552366933267903042620573706391236595078200843398421739977971170754472166347209028945491537234087936037017504621714779981610218708699549842957660598396752470965568531667604454627312701197190228885991966392436883906026726422082696880098177497086296311204198057728422413445615115461084343775268240644153285353828266745078082262905575547963855266128742032904713954671695008118807333387587659973548525380730340389619621983214801136388879518072253846175794940642635613902783953288014101631511144248167295346380500699283816730175067291208391223881886375489194295073595750043139441017789018158218323513113810743532476993443941399794385147790875406004381745087486508841680309483376389134376533504247999967313621896383521308465507417419182686451193444453091613616948341506678664065779290164842372463854600441390187811560816996575623224131350555016319724211698619809038044199259728756967324197808229127113267662459570316578806641083747051326392136111098725841394160399824996327182464123753543683216362432089362955959573050736146649719498780242276864194348411805825838696737336272148668323409374321788323638876117744324558265931947364448553883665360489830171397835651423650811306484900276910370945031098332105777423934549411216515144802723229220936041272645623396130305209209863267003168936253035695321416593239154040516836365126444791080729513687759038476953501225431851235421552245895864525042598832813406959822660947592429279021824725815421353712170630353107379019452557151286742882068143673507935008284564870880996571711041890589106936760348562458634673917709986945266704480634927391971659524333768006103653802407621684391181187698881545294160184821619020433201538320510557817197571024600215224560452993522981058357988958770665686753548713808294902024813524175772809831966561864716077394818873198114411048360156218936318296443110397933722074487774210740098219755531476863654146624030243218428017390488890552511507829680287875201919164386994456176680383885675750538497334550216361249490894279861916548055690176561520681209604432757310233145047460031670781532166325186160077217257158276186736564254246092909405798266987560734571665969320324608985303551967635192437235805073485831632100497368964933695473974887913838054867770062564586341163769607898488282736523373622742080062113206505943540184659361300983571357442567260300037763012173779312228079156721322748518575560832516708346990369145804594213035367315955237729203168612313862058901193619367138211870213510621183718983867834957182352015597530249002232099179753432315749477903139158012140363386230893125365261559179882031650826611968224503852884023961179225830697789667115914952658056761946754157873749955360680497358953525819209943532136075122949448218825465005269800290525850729035179952937053946693837498894769890263255060300706921953057247483330686710468745263769405009604076875886294890989369376147684638141847117654882612646430518490611347935109004353000924631084567087711164015688682462408308499629322823216196576729681178825761534161692392301581373265275060457495002346055598139884225583090447001367058751824907793664034025632246483891538247267413593378187414173871750812333898376971846784367341725663977378712068627395264093607622073826024886673348973699305138371977310926189649583860133190913351819211856257883892342043545225838186955154918454832987789891913812887531693438659340470553245579910815591743789303963469093367623536455370002394785153812132623775413740093025561618025337444010119604913518377458692334100097952864277703160235976943790309484835693908854105629756793892429061595993734210377237595893151757754685849196865354622975856222029064215485546177557611466484881243067658775150273187777370037110163583879028209414787397434464881094297101691879091058101390622102767041447932811709842853664325497873060664035613769462637353881685618109636556980880983790158691176375753659850685391439191797334759017215885589106851430447630293943425478990012227825954867877332975450377066141741376531225049645796832466372235713001839365454731723200320553284269894576956891426037388613622541234832882992678806209619596548747987922537208824171644342069723650824721005810434950784178809058954492199785136808917355246167135928712507016672776479737322628264628082928960791311615517812861685875106953833707983588533080240218300084543904216251586939294748107720484071448735938818527720906172994967503861765448024468951944489914511267723351810472068627113436624269783214250174515898984159877121790515724882783680825298964349889906344861371171077584424625825431663903910630613308202320684877251501107491872180963534214238955995186073965856876324394748323980301750820842278256426170518254447477248745324515575442768879936954612544288558364917178813612341336433868857037386522386574871988935124918881065114857591748856666925698845041262136003196509724642770605508123862578341741202179064038510384449906789635677257753322999030312493598487926010284705108455552955680743987740938872047477205247955300514375507721734974163384468085015754395521703425704372291779163539985753227574435599176586523209589855069188705686218461058597419062506709142271532155800477133633860807958604300659844203927086844154669798756005518474018017658787531080824224131052632529193678903376374161218607889572819120478607539772256894530315558846778164581812560631380427709572185096973101790330660524642797153453523668482032017118876649070523613620391701638466240738290636831971441375452392837284535631138617143617186707495388552812422101519623111705411431521830321518570787217809561188865249383034890446341967012633763442401544155575370220401461824163802225597681472649804709279101225166747483672577851123889242263152832133089455919021280201539378117532964347242248452322754822649939751925463304108906483960290050175966207064432041794762445263575439865894360187264527195845944434523429914457337272212979828922163198641059917888902945020389403717505370261946543280985569304134564351836005740782729932407875130661656377673540095971773144603386204395576278128505665928573313042080845221694569537780032130501478853292148433928728307298432434187749122885781045161936190076443165728796143166961364414176099566535665189709057122818336381761589956779686251112098952504126813279445092446287695883163018326003600528609238386773750111770524479820891889031786809335248489420911697524565790553525365138846132662833708517379459161269973837214180232441298982105136062202388315773171870225983279244040124130134145446783935468932391431874631726240342935613659990803933921203633460574469144245827090649236425981580585512688460317182876728313202484832519330542404344245997707327518275348260308420073203719857588584546143858440715136714207970961732912829289226915458366942242816255445429883027613154686115739219677913547894285734239496314281473455771316020089833692746744393205773530689368834668374317887753194716322215332069213316852978579323125204403100810455789334260846106197564234685720391435086624943750039085038052217045755619265263358882718515885947011563819526703345237736328097928848585968269859727856139307063179868486830081250691595725214838140007205945194713897406131468333808956009843713586092843867466755994709098269284018560784070856821597241648248375815645456839376335725635554930508059027777807614604192347054988728834935700730556912060537547901115420246061709990670447504565118178270979588314807820569040795132506505801743599500997486267592665771158807590739037502802524534799767561510356970572815366917651458737988782601775799856348671774269064381505259807289521359289721582618902090962443124435142204817436308644084916492669311786987737878274490614867092599647008405538422541029659938396039319407932131654952068916732925225448665026056151240168120676973864193679787032752281515252839857407621432008974053658267416168873225107193143684633695534631280204202554996910044558620525960028175669382658055310273498373586274210694592603469077949106973743258695270885008908978477034321660676268559305211412710788310598830060735294660469039232236074224732810846578754314877830593876499503265177636816869396206530546554398751604511009926698843858662926847887051006577089699826292396133827484532926159818468324174542161552813630156698696360386756998387552542635118937049549186663287232998705189122320388007057555360748329035163767477767186716575448580865789690749724711763161458027173975376696336920733437480795726500630013409556737907555691113715920483692269275174847280461201730283467284597227504190624372050418710462384366140110953154663163675787537849371262868915219543164997797460433900706135692865196294195246670036496144035019034109527590420812473454685186178957314742121978926205322022611132528129978698156313622261958740249985072319437476907335510253492898259572300629510642945318755580459300547965070140230745333874177315083510272912444634383931648638964616804395591890077031263699552929475943944308628265172218728938530027470810228681564192740004110862011910934691108671197183573864613386047809496857295298269915295880366817981396854210975063358865838090579468951157604916716394320036338348077787751176803699618543081314520424213422914027158729418691010526083209546792401934104117515781199496804528415698362699852914861072554048042709051497542841551226114126266310535683998425908561323777124575668360408204164589755604617577413809437675153881025908902013485045604574535125871623991441409327402425609109019974898099506942659835208927500077899395204754747254392045444049734875413590079377492552717839986574816295419827325470407870241682192829549559534794412866514955890012752836486501773417489347383210402223586499586276709698517364279076497765538711616911584078516966241437657234592557799517323196914599233464845347309925884993334667397444735574596739247014938524069113803976587217014078362578116758970313210010002714691469171201656596764315701999533238925108451764148849072110092136605190342670393832108630899244511164535919445384476834553820420994720886948165259119877806843190061654158486707091643609827274620227478636830083194713785409837975941850151042488034621026675633748656473707137485767747328517943477998501617632870918224790728345786433966099692411896195394637012936762097033135030803733985938250147365187502769182737292644858388578119534750130075814401444170937550689347789346665636624975652160511881923470464699679299493568551921567624935043896487500261288176848051535412681637979663041841216266085468911065216649166340842526056794744283878528913235779634259245038530279410669167087773841863391010649474952127916535722760558155261704056187574911270146846525361025159274514106356761003554430017112640902488480221898018761993588190832580136457641857962243607837497639900581679522165468254829075114493626180345572048796125262867949858287253756969243570255265190747090750324524431451635796544689522005130214448252196659798015301624658609723327252130463984777348288529954029238020367795375071459563925599200352285460814427050070529673100085599729816484001893468006860769738185595185326809160641175797572472240607674243588052029840913866920873227880861443495518883676108461230633560795746863388518338951768351777185430052891861144523244050898732093547366593955804572990883561362357822181066600147492000306508070497407797995856071185433368337697841588171879242728713344985808793694692183970605714008379348711880368191782107248059781405750980899819706130573792650149059976564587991889497407633533158495000935567588178392384683427684368115445195345682628676286378376275704085527710422301040501547176129397474539876470342603928145522889202043952279583241087361448444291341874614481140145513081167169997798725348503899036059794613493984473846962612603059726376863765942825225464521328541880923515685651697192220267169020379882165906270299659661413293262693528032293785169719196240090964650628065728432592664596014653461123838904993325998539080443600326892302001123965806847559252895280342480264905865732288790824155381665182712799800938915238119620725094242861023805056699878974400941702582666793614392597898587960976987721704766196429418060454652904098157003247358399204455264141481830022437635980451356402411659071688542573826090710166687077401525851690659588067074816557858917712309786028554897338580668676090389229121036044782008540797155302298027446785305792747801756970978385479998976782933656962465705478422257147504686039653716779627542415448617358622337919297832993261333486308366274869221893946808557835644317720231680665729222364633474865721288677697318311513714556967602237176310239118987369784429336703940865278124578669353257243616430040940386504496087984526340452680795155710254961237704498515732982300920321972328190919539368348738158069894956954377771369200725660724505036668266752111240957819886206955955135828992741801675127470245764004491675510821342151124684718595151442657664728250796726204802556773934706525372565690487998511333772077626121706028210603963572499266476088260630369337592109945121574731839401501980908439515966923269595610655844249731849491148053707878431855270663339385621140035668229468567468919861288137726325168940762121022116547723123141683433403218954812699128187922381336734224854504859857971597123039142286475446006995485507290197881003148177281350762463072761630851523666157329295269229797412723526970400251982946884668951351991574234423372363460302261423424193476441566120370246173771874615270140718439581964506696533765114975730788883330928586612668645271010810756761905772759227538158389953401961629618864852006864818487724769968404735367983378154537608137493695195382525119644617335088795644023782998633017991263553564579051229082771144753428920905934712920710207165285275633610927133527907018563700991809180260251221685914685349307492651592890875972763148936656356226604095411485733885050170446186277472522672787656058784848258109303028520451148689712789049792302062731325072605050417700358202816413919436550135675367178635750517329147405836096399568427312520557570442405037271641363461762673487869973781480935697481991682527084441010324319976856597431998766886199867731171707333798084403060946974138081463402031093726510049969017034847255969092557847149454128898424582846005438110884292592245146720903579454758410141565232715388932193591826962864242512428907314524462019695648968695634682749462946238438263605890705188786544305148746801347484964996502757901623902883539177409703540419868750886035708307142759612941776250510426918342802723980224196964684119048266387993591074582933845477245544522713998072698938076754855826750281335953927691229153598198324566619226136969789184033470086234932384515079901337348021029479089337820933524754457893873263697870984985826563035472013372072802861102494876546225025599056106978735598478002073083134068776432533400242559029521092310640679076087043089363018635634018229591895416839141022069425518839151392812814796350627103299472293596852131345729760433596830604099673207418725476523324194600395343618564442356717368808531249595858808796725670225535137368740383244243103330707963776252262062386026396871930123924927897556335401782945469948917326019428357398275827025156886834414322944270289994065210530028742270220744192137393129494972230764161379162580287030534310928623191232828879391905258462844220431052841428513300263599464734700038740870804443803676409484217186851632815396814286862321170653806436532842176412018456983360476643805918329243198708859632880048981859387244503843064993630095511752974133754415079206688006040561450811924423930694746330113708469292091261587471919453018288285026086374405307175277592549680019920638084936382354967918166404578164856257109285935344120476647198011707075269639966299068366972403846189101643339727633968477090526332614537160256727736390938233641284917958852794228792792291369025448660934466982067546595027128309058047542004341556754503014854975456091758430106291220153073979646675344804245597943521137603862223275823774543389848108204756810685784766121813796303567540800826968249700780143577548297969601368786948465036820335584249650397566924328507361671612560301526232351258817111358663603173721034367483816210636467850733844206135920085525106833190652056706398569118115629078663140370164913616531008588133354566060875255573280005021996768728655707336581466127282959472697916369099878027448995954767139665332767248626816061299964188980512102234703471557874576420318514826532746802473435983860107180176885773803007817115595934178459904976399339278530018972588128417606424956792163063151503496698092698194972966885005644831952575959284748436288062973258852109179663629549409830287643970498339950954695881511562383724731173465634786979994260363172277177760053579983523947900108490707813251471612572662318207461567386335013531688687364621309230395707371108216377174534694290570799830815362038051307135161517644708008567658643185810100858846344009548943378676897881873320014766808758175717739055029170149629777814800652903597114751824762572935338739729193823574600572583934780604500905408157243390230222279432564324348903944103665029762764076347122858514258007412557441838305649928285892951637486145946908553558944723592785980250972569348006892543295527870998729345206468122073294040117694933520731288889158180586750451033375343850571714788066817741628807594026726755635947710445905507512732539093879202940816295352191512256495634058629721560459797056570514723395345532523246846084014050270993923653320551301078338464943523263292030695689725063087304904121686454683040231171601916903146464207502528623933541976570498474524334531338982665857239606425716634757860646132543043796382628664489513208569898282053888317423795692050199012292957339966545181469766137593255939394739390282637915882746253056092600173782191154442827183831803723254085806208331189976981052955526669835816084164159755037373459420349205056719987248886354894588404302845053286415433101642064194996169277439129848183413719305225502427175822304790606736223249008383034335576321253092346701320777084316434232493836091784956138051538263126236165712645641492519938308419077212729252717705648876785068596485702586526337268940559778109016199493837787934334611295524065550207371694659410129262823547930581459142749308286942027710524325848124237707991433477397343769923891278637511977548211055947202668814903197782307221470436793515208910845266153010494645712653428899887164099623169207400812511069184457327593367713441200763798138533295066307782753448415444088140534130935583227889179902088422652807776343681524927870048803852208765857978663665558273042570739259239159584645709349744727242652797826498140627697480198672064437982455966396915261170554187290995278997200172935931543211382904629694565482625718815219498990171852351767290593390452792862358482965118367635779617628909292526547148244859341063830622486821393601991108388328989530395692599277154608744262871704448600078856576931958272487543740099116592845411874861345453432717642089677091014807792308853928903874287352375733495081016091219759633530512702160296737206708128802690157963528240655117929842033690695385041900323694053867089681284080850283085212991321934887930692104839449800492557832213809229263019212800991651250184482343360048456468736041991514287280984216382490966190087458383325694444918292834384241302467263971068104230778188392640257630943585915212437056189795375596947692407856532471659228021848801511678892599358121761022984040609702040251067442694359857909163648214333885972239627324157807943831259355172025539505488962210734867761066973032154945918692878444512750225451231978443844049888762666660097170518580692246264412820675310281190674359693716316516521639735283142940369121609789128487678422147205642173801495601889332398243721439666144117979261349718464933187538061003409971431120652419783991084652751310343826229974398659734926037267661196765293293207918870238063659362863567064185407361980547133432329038652949557589370841842447115239098473920432106994082665701170965627661755446927603724759171493427193833424362030385439609018562358200621003251661831472814607904279640567689559784418881517931354924476292069651476996249567288647680260069262176473134221373265701856521297332116197189333946912141254545921544047363831337758453894381802755002016766512347571044903336424988620767407389396647620143432914626113712364501938277445936851165966400419152686918781280132707744809206402062703219360732856778479787090150767010978030449828623418179000963954106258789230304698261295928161974087185878366302400043937997008493179711779265993327105777019373648023624938867959564521354004407594433660791078866328827226223065635118412591686078052832893815290342859942001194119962248332500387722040478880161331340371243664003632405601540801493563640733024882161017012855668177362188431940787936529362546213195802460842180850489318423365049852137979668962931713642424283207196552620278321865377524039206849947734532815049248417169855959621920849603452624714364141562710670499672685254164996473058069199037091703992560062972251734186045871757587967635010282888730966483009677127005747352646134527746255906426858926638837993092728150144380867624714313446642465781406411273011385013866616412901912278435909129469917840518688545869840637200161242940119663701099348783635516507781001479968759976754690949061124403605270398651440809701376922386089771236757896118804044316779605112276498597105371314455418337277775720311699214491505736982698762544542458638615098179671991237807934681003157998459744700845323470743734198614877509114106295266018296207637046862945894045660861198030052712866943777636517495957210089854235855180275623063494606830180892732242469870420943572611242194144472908916963145433434281588562429948867572239018517918949824200549528590965176491514340138231458779290919784847066981121125838768829312141106304422450437510562606226538224756525111750034338824251823831032339536343256593022386123817626108934109188281667214710104604099143669489459541000319519830132793632636736824233791327208549197522840173188082502354085785205142628500427036442756313821032735552884138709038647875644741681636798655821655843703943544764719707988057527968278895901300737328943208129812027782085393449074982177037167279309594942478703451184600670853184009518012951052230121134869229508305904211089234490803778613717016682219189504878398195957153673614149399734704085163014547892274259925839841451868646465758567317566924045428571413674237424446395062554392095273056743407974463415591605066969937963183496708818699190664082164885224128784773151151189639067042929807297801239316961037158951021078806583457159277290180000091582409950536895315689356440176120132516131835809499008020176402470911234362614162045611775124846265251987482161178800668874653006456057315706283287435920379015328594058553276281192547024706776563893743260154266347560916555023600680901350013012071587760459490832076073964645620649495397327336871286743286614838807506171484604495726871797967863652667417496526148198494967241821116998460683860128397607531817051188177598486265536703771944869944368066396821170160093622073425946597142440011644715301748453785376185696296612242721476760148647887655558057072510085421383056063030999773840221315424043211565718262580835696306806861556816035224295824858505101754493688647739107459484746769098942212244384043670217727015170262267388162796454618841439051562335657455276694951175016853189500980548968304339218767387408658533035306213290583376999381029313785352967170908085366094965333074327218001458995283574737905244293042643069584291969221243710787872666002206932403798780551525899161722523907338610430711640862754460059842513916488252313933286441020400930021772297426806788003088811234707990806092769446766812182897166823086443177034046466408578244648351506512097113556054024833086754254945290200057917443936367575135589458991063979953503266142532947183759080716419730601529728280581298548841455470144552256772482871043213754122307662047536041016277965868508957853433081394519218490323215365655850665394887943311081031934571428327248990306412070073872285107259661723760686176092894597104805078137538821402056883719820030380273357712052445920183463479836774867624114787759971473947799788513542153644250430841402322680081967738195435639507050076579347283517911951041643918335135467017724829439742717980485058487520920486936848711230217286155636069314425603688197087166255132453548293701040360816364760841617877643141004181686102391330443805503160767311843280618568496112716206488631438559597345688760837234435138276864433726465001020738998761150813188750504100512960050962442771987744536147769568972019647580717255240739994330022068704970976227234857254576748231388260167029705045912936755521321450062516173142415395439400187348327081673840942800005742188785319368488607541012809911130269437184367694831819430512700405316504650694878283209888224997623604278035500905441250424610091388332676477664601478704708912591869400961425552058387673911754839872247225589970840217958172367221286735595938609260563092678570148338933698573192987781876800286525296595082228997699382811873845494035511162629442460340671067479022377667109101645024523254042731222788559175581764664607393929335631374485472655297816684890936616987319033928421103465887656153718616148509733491609752837714846480679044031912989699516215027526290901386677503420464395337179822558428255975992301101879100916163505163803827478367973023242138599611031287658619400998622997436210895058600381378376508005363074626568887934159168026123152237048714893216969734353435100057213405205561139386342905010900672897083738709270374450615775143710005358866745079913697791603251892663183125566816748406417176113258285924156287556208262563556112846620212873463624785655837296462374482413087076848988685644736823571817877640603677412205661924795072374088240044558950621962238085685427228852163262236196296735290467363249015693791855301304585474600735322627582417504972500105410526494606521550943672551305862502480998309619050780197904428794267298425664781108695622055934368589095293883454583925171559406125353031075706692749686743185891398496493766661455236565062483441711204186202999436839546278741646606829272840476732238361500131662250727434177797558368707540170023546477507049722246138047270002181069912373956348610850782983775277846307575626964045784175665821158743626840229965673918916480703884250362164862597812808200299782779264840164592669663066688757212052363753058233577231174195133214685511009918823871705973774080361249638501407305732105381926956732296088404627579886522960041644094369914444089828795610349753249103123795685852653889062739838873872575171946985587780164097820630552354168434402556735492930092026910126705233892058050641336130084711587409645524044985552818619404577809058516756304532387330440672385523951545928559300938659137279265370877840902217025419625131188356833500209658442433318908587732262291611854617407150354602225349476327169022676428555703692329797153923252590371839114986960029138139809447409834806555875044608764479978625928120109113047225308280594685762799163366240524912463201036511074423447993457696744378300158735815033854303973582801229080834186662444333591217000986843183122050414068271862836305864299922610537340006368362340562014683912739395625656119535786274420453991940019939314546716062571811771953930005064719164979906616504028325102755983323541172499977483399356794101161533952075011339456990449979657694948827951421447237318817701952359452294304094527957331999224371603011269254523112495062046569811913972647305746113616994130722149426566598663975658076725231488745371468920001746196369271637828844481427722454791858376996923543027598347331708620596960940524385205697959552117549840093590894337236907430542613756475350267993460664776331514084078468750754365263179443632313682329802700266922076106247915644156237500022930296783721104286201749315951848752581347856803400876929587679936751346027362458793639970506961041111082642604830584223429800940077244076410064821214686496203318585121647115828648444824806430869076152749569424242622677123771311064417923782599036529898915708467195535391063403075444124334296214653495664029755548534474150788526449237093300051465918867176769673087227335725353782186976656174777705968820754870960055553010049863798140446111965131182554992379370253886530134275948807940866631357543973496014957463008329580964610615005341688561408128471573471355716022473548712615814379963245122337269400701613433590188212660887024894118884932324260086880457872289762587756945862432228340444867805221591654835116141581182536388580728787875606909438593280775264892180106874664890530106766331601142611049805357759518274687626303609291044484740769507150981909429129420232216185065353115784183116296177012307688349206246537941218910876824455786695903275564320737082629543971664358141064596518949025527794509558601657104675285307351391389911766436782315978475441639217956743101584507689212594576092234012278430689484477717284819501584803998630444059011191435879773806813873867522373933028750346212120719180850510630786155508041055442805562550907312793277348893663005076503672384768519979285419300857189508705730694736273353134117706034418600047263888960688910045628683733488191884163106585743846034410177095263537417023723043394921116937710512462218507602612948414136058975594644285725898141671208980363998943839065723710383754090399450676158104896460021630240463209004967687189997841231722361930643518558064886881748103664801693053587305237466517238753619933210620208244514321873850690839833010510468492195162667338562563345225409668718557508261856107902845967525780519251193458903281584739028555896976779126514867649528664783161044255483064939717072627180729254224692616547820921785303830807206133972476961730636143447950683688038055317778906165461894644659169091016539620880945698082684778827064242355123223560111310890043821851589566299031010002375837192647986728833773881924158828063033798787569388687243975064077426867763706620593129635847819452228207967939818060408587893248414157622763148593986153010092669806725808914522203037985640950304678534553990685763408117939674340294406823041974445005687097891731171148342684040115185793780237510902756876457372975231903442201170252680624357602478146137956356531093277722298090159626627197434426411408037348464267739437826665017663051652365230534400902110638123459101775743814409743932406782307466654898677854615294180301249949449163575663684626984520821903610459578148587518984263501942100597182162931943350946026340949927194258789693779587821260098781518973997997485786927935666677631212283730925571522365787655359146613200243705065227358130354321656392245069191024969504821926009964495315189839600016645180456356402189857183678178604341586782300661971235155774737592655919820492204129168526728667429735587328859792475954171108785790138616614113578183586869861378436143513378325595592557454164384608297914293826655486601927648199449654439080736944557353238050540193515686675955372841448641639416654511084812716173577515885537043416932247628046988802289529344982302872832565480508807526383498000420605516391142674185083110570318705705965529449759984627151926074693912708791921785704657789119226189222914308329461593231760214848563057080783813217410413580792341482233395893504247250533712296683482950158472779870934513842346782698573371748343283264847266675304905209339912426086209201643506732018915756811426275346732828614499730616915338831173994437434472425145429104338844100590802995638055240889156212491789943693484503341030729317463276554680565416194187417104472717618590482319382515309005203792315822389455660896060343052305044644346999367169332434325086616762386624409457552949443040165206169659012580003485035328023216947403275311340715383262138081059912967995086829145819460446083910565728305021921656814976184341406896577481488660980189900964656177756556725964916402818899488756032027462956157481707533116825114301054885143177501308121562816098103488572878535474567424009672941060750452240450029150515914255080033482668939941167287923977394040435835299198421911682102911878680414339670508164582583654147525684805388929241966334467586719460063499782784756991258024968771310614667629415093859361912295933944617754547404144461910175846990830861952471159441925051569580422844252814548514848647547112589885340867328522935563819526581844427553543873925110322769097588238740212171867561354318701762683272209029248028313253327857218713798212659199534056167037486635729983795310310757387617489412910098821273452743052877579073182770678795896393142389764346943153740496872246480153618944216628751563317215352993801451944024604247095765601243654510982532403130897214809724207139788250404678973521688842499701839000050718134956217896397035347079046361163605079571199800080518432283708372382124375342845531466226849494267211811385921825740374509100624407149642557085146312571073677133664025988093351076830419778223157488217613785998339732063115749760768616795567086306063681958203167596651652536432426403823540297632352746594399178005265278940521015360012941471067060892168962138784404376283309010832070539791081410829673590065618603444939031273358192215498351650395309681001883454693714335530653564933524098791277858287197742604573287661982740003554322024602701051004893264744430082846056715347860290732508967466002095216033339957532088905126006686360131115985695623335823559420628534885543054787599928213604258788390285836337618980343330343043035129309289224385333386632312811317716758634583247064575170383865573843160642650329604285741542939771982667398194973117550253393979970329015119596657834987894320336540330809319244570983756363447504824826310218099223624422755996615739035808208741366800950292155173968800588241668691796543255024989358219344121885599749956670584475459621419301949464165212093468698618463737921732830075176520594875702813344610270357304403758800103077183062067346214127592827098845702773120788037925871966867749680588816022910021158786158848604448836937807964097068833590539245929411200498343427869971459847421847516156074249283574460851972534282067437318176661512084994468938735201329549468022006400744604775280331310032225319786398164709633004083856250563162796940910378753679200826071265935818668595595201439050419359056798711174346181177485256810259361158493819132222398453000691181568064066276841871974107650567521445648838256284192192931563887461538683985082301750062803106249301464435035066689526707941270096197986579251009892534249912574130661818612971642810414856143582042067541914979595273417564777479269286687409307947708879172573022570731736023278755051407059759537868643445355649635116745918954302863357402445771795755555288059692461863010348344184820906602590090138469465779549859002945726655323952233789333599296603265881588534541067062010496542856183822304826330671614317725134475404548505852516917564513729578460065776770181959316057519286322311069377760865416532153463892594586593960677549219111059752624134569111562899015220095059049055509567044716222649680369670264169628215480556613752490964767916086409525678902158533624945914772244237339645317537502359639196665573963397230121788424067179285511969675542982185731085535429259089336675671590415224808321998042466701007954039363372466060192063186419852261647380862155779182054056065339368989725496576910940358279550277147934538043660019204605793416760502776044728350984522805097837841617123950319476245183985277007070591287595456214097694681596228612766615719465189227224069926646496095989311801370674071304518668877558025817388209963767729649066195734491363487671146183013493988389041443127045978176633246509623189600141743575077086622099954602073387654832743736724469469058511113545118468938929472534986553071417671866752041258570145404926555293751448651379923735652351670891673305167891415135024915628019771915915795040321051387399476944277094379398836591486310203317906935846045045865188895869813625123709966603179875732667946233986497521376471807089902661570592439761482486557458090936495741663961407244632501945288090378270656075477328754107555411984068900853409242923898984455711733582791627214188373321126689261593447886977629602971838477343550871198881660633988012953326889870117978796728627906362648709619461537990245032446608244042949594120559709712185667307675757191476925253459730650608416713072138619694969175239042142013191922245003434922563036767476006567616374115933207818958683411026255730975374007618184682910070108955189396154253066473089380451915209646057846286356157540089858309222166313337086341898629710168399307140926334226778494143507016850751631328032986393129624670949778692200438977162336049040698912959771952350634758317523329066886616289813078795873864387157971760755213646908056984711743708727064124124319153082026129416787739990037367054056898347749070985109618425449174859908299420257378574815076782349777894789382521713604577579952696463811312212403407255489553463865410917696181121260098446738776149704251187699276868953981937722490127005042057237699081179464000497710319202055183877677399176799441199744726167768531601395307270054321249430357299887395732507119650565473266018445867365676289926030746586479386635350624199774218747933127736838009340265429073016916978973442903405296116817929638471335855676423230114967425513111090001084933062947606430826225405068523500593157432692104790755458233456755541105666780083016864946672100133493382308830143251881420360563587415663267704481152594559449736534092629325792574616650715240801133193005268718159237548870945920269740402504167911664263936084393508994601461172083291003087592225663474271389058695384812736086215913695533384324564623274136277740817408714491262659312513244989835395882725509132664130815421859209801343183409767144010554103719396852989155002433518622735957660735641232349603241859852315580864831992193250757436659402893216779247259806438980859420714816027577378252932692276711253248155500814670177520038942578762514326702134562297392498008327753958023961187378275075747897317995791738574234184229340014161934923369893845310713842635273772269612225675489166167662236367556250909145673832528533613612907144895835155135168785368140623773608067230210274105011903023147497056500353467312318065622620647679212943557933162206890783367097803820799274489214361401454510812561646344626710567262168955848103250475076081251771085543714005914726370193214475493527874069804132002696855354517800460657360484083982871824521842009421822051308203610793380932701347145550201944336131408042472104054886411490820643334209099894039655346793111806993617598573486740651889479208007863168047028979356621339709090368749921159212610894627719441848274787037839871139334828432485741669385518551504726608815145072161546676766570487810820947704414420323045821527057699531801714822638736529826912309812924049770519437528092631916407925041771448346438320090279773915943764061561626474572241020665658263122537083462240066990425700061091421460538844410199078248366220253836291839698445135002574154056036753505210542662107524634429941848753690003735884255709497555015353563906060105711113927505248575006885537876276418297083761589453071794574002536008583135805663102077156120380631998357169801210825951976512902975103035285979619667928090640417171978721336502510432957066504159399726793991670513104850189349971222101589660347152305985134668911776016139431468777661276318299228615689114883180854130950950829100747791974064055665715507730086386335377693967801185456631960843561494879533541648448706327269743799863159422188913109062623418943248258885339083732963109684710718960050937254328454324054259961252946781625102955396482662144832791651973096477252037625748164891452737840344739520072677172631594406840840952724340548681535190701864445636046804956959483575677165238706872170887379119949013964794408090611714441865488330101231104661280022796612411827047248681020977293663864973596285879720068019725898605825325710115878820948419490162340770663854791957667665249267025998684799563032332595238788424618615098222576654077572825044607953626134885242360029190708567976208423801559534357099399219007790148799490496196790827462431242171689114103493110521678935800046442791535410767576419657292649519882870297801133214425725664247848701438416637737217500047698466240115934652143558922169805017145056702514871534642998614514513573206573897967089667860438880411855146594786218832769709722711039980053180389868264165134080427782339531273565082369089238721663423214560947365967477155098850341879014358807620745871325169290861303227733055757190869074945076598371696808796769662113563912892278338503034540230290479580084326833593912449524001316256926972805889759628495984697774871642670199395132288143134930779344472538990662947507036435566385525019597152731288053849999237081042746173333571028888347380999838791428255131499818512397265157573006117035990359345308345769413682281541220204821762213665492707456429838457438808079242209216794852667104531622401382791160889530061765670203159798076795464557914425315896972194502188194507481624602669767479788916663870026456711303468867368009413506474400079703526923927376905685956532000975873836582923509419538154615215835154081970440575718285606391171135486642047159289923818078342699796585084530521322632370209252134776943059058226275310292669787878756830630243080100089626154251329042840724967859183432813090035765916676523570514073845418255439495558358141659509611550356937686585442634987400521769206309250290260381331519688249742141033232023635036343087360913196144450313384772726623212174702183117269165040582666300585803702889492042214790353597243878242331470170218120519880889241294736878308473959263532849690025736499101114185085422307094933437768327178452027500325253798625855610485785458239417769979984243614319954483260387138172632798735708343077428184727932966264257091549237920715814340343359350156705866508432495027705028731214031970034701695116919154735847041208763643200931871740741658369118451951087449719687040999138057992544455742220706004380662644804313538255840703459313207122201364131278120660211149588259197988361228599498431713869219273566164585107958466159327368072900012583656313148235204434716097712499987907871941560196303789264402832911343055597585137353083358909104059009419721442620057521366290344492922518971823631796773748083225841024098798285628868089459907916339114742339505527312500491388181331358471319704371777960531118429851440202724854935241307245535643343424829005900014937843709764202772056935858659031571094248303245505571711284887386703744389071238039961247260296724365354925303304921140094197829607743870769790809228855289956794101430268230278234421406347618464380195386540962143570340017613189745481576601978510057356514362106719912930634102884993591647850304673423139655228119255564252577148182610261254141257315713037515422279162629005860934275149550937383625286390513494032982549477106895004647975040479894138739913113921984860515955079477347868698982924248809002342724537687552243900038607203131837306663878856679720712476502816433123411469870675478559048934982154312817235856672544958911110118307762017748260356354334981278483994981749154651689581794324477703265541213565153753162099310849699827523005892527362618670803827535934157115061913628513642913993026538101177187351179624648069435210036606658628341295014082657872431838135992540243414592990895387048538993595264314728985551667685689366660981050352509947251085452218427165704748219973083968669826868815298507000790356293557973052670304421613659491376879578512445157602124056522705214295598213850924509349895001649778528365614434808792233640165603128794871410310297637189291333269880978538769896555250607762356591276518177532210913773253525689839516145483346838993738408112904321063808885326752645686083846912842963427578325485794466845249919723680205735492467117805172601285025829964098296076255839480795100488420211492993715081259824462835424504993433326370590028996606587583792976253134957509336384164632219742567991172482905599982481802314888434896981981471857386649344276499742577122837223420960206043045708275851382946825958430623766817207377963706915708921741432499549308251624780088547741511645858948907061771519527578131136131344371452870628486165248175752577206306140437165013216937262386950855186917142907535451680775248987017869067516809563113898180382980246094862653231783548966965611483214634766934415703168376173928197670306288806885974070339125734589286935929234071196123011955951463175372355085417205228682576966393168484655794688409707393876334178754159698403199371015426607056347799780816411344641353211250138678922892827772035984344454965885097693339062475245769077539010478141996739115625352730368222605111823619800169653037222089423160028600059365045205824607895776491594973639305074609853441175059516019091556300841478026690783901174810721085948840284944129705381362957123409839685188938437706268964350620530177425103452259744123499778141780614430126742534836454174840279241742185083492568702784393633181145523814854984454419241214350333995243500442674225059970032046057600357269609296764292751063345225143279829575007460164337696198783223622837539195888189454802589566680330345726443641186230535373468652046886800450433670021726031234089808943334555874777573450835487212541248055481070995539552550482107052362653139525137527868252047635785828269939947094033452666809527146820253345222613859981828203091389675318722143284377128578517533121582623533184557188573852262051244062747045831721072187822657272220625737551743564385098434062685148774989575244950534532073977294418021374748455650256540740348226518265096100645970930886540470856038990521052120229801025884096153089632754837169644525174350523257212087943160372424859726971664830203543758767304896580026034528374597494020617173994727845064631454119342556245504383837076136172755949038940788809153564954649788979883155055535032306052727865794129543828242481314823168026298862205607610192231643231951182119764560757586535189241062396910832041270847452330887539312116945592881505768973464503819270058415014689034021711132115579714344987912690912222934123084620813830222292521775808199768863936538738195939263446822564068628228222112799132674878183098968328130646065247467543784630067915183791595039078515804178754664370848497311323052865196071045885704520414224475641094650299406805993490716991664136513217562280086339980264394867059932651403239785663338622167137395634700699694432558849135579558961641155333895024820960137386007066128751876196898690861042223548124637215300091689273668497348030954972490585354613369120810857294529915893033183923420898300131765479462978378039934981921609995891164051900443660375357051501047711046237186660175960957195148358988707972608406349115726792293216528507915573161313637922717626631625793930753086374460924573527750811705988277789588626189019545346846139778127168868546619581247483395969024749173423991175243624216482760631396264875658887287289996337410011571613296537004899832468771014259266847262360018925878393157956265688824656706561325181423917234339386043244144569518208469084291916836913861095610765255097957399574465453685177916089137780185958268392787356571583492687301735392716542385385525164982428837643898555847181364009696960314048229546838839471174175230099715964186085090541682543948552444084708820304099799570161815500329659984784437627533840386950100365406149447040889360564285903996638660660342043365528030284969348666888305079502683507975826764315108732294412316113962660780026000216894762569791057645538947312155647919165440360098190636104772538310203769849508759941864445547685605596077888088380973947233325242077596800730914400749132211031372795851694312377825004803313703408413642179628758313113075312702976611243906234134427708664767275307514029619748155139396273114660716346803782273131451069050779423967899828267718910261639690100189535593714047425025978665825918005714714541439587687082913947000891995641412008893735489376252519257574101855608302839649521032431425353287270038836649030029697474382746040047045097755575887815775943221357715272945904059370189436907412628856415417037027662645703332905593928491529031702921786322808547717258583090189970551302085057505323592481835283598542607266402575636644137263165069794852932922885933862504921435452094537427011919720007579373191622890905401857492187094635694476313309804494617319269091664252125227105718418358234565381170313271726095279629434772760697373699664251016452571400375372591860575383167068965733427713446906323707531723038739569608433442928079841748654070157311171970637533069665195555715838056855563350505854701647389543348005584289461328652733459383104921750405315602202489135908259175682750467894155108229153600472328636473461706550111826176773400425485869932946718663475735217994470126872855209796410168695700755840124526730282526564244455668570423218155421246928173715774932724185479986733820185372397685116623361575942024726805231220909640607532662129187166996693321979074861009098086270330759788961935669536621360093172444897248717648511339991357609617639523669353891488695588269985177797938069975809680773974067319487487178822625178180079520605895459562965642020365744579217555065531203254677050587103302702402600790675010927758284048855441969990444691460880290055899591760590227478785132244734698279660033936539498844991369833965065172032361239528730662740161809335727549749072075399295962900644513235873851884804267622898627071466099383721941413809975327860853696270912079860813705910974780450820438645645406289209145395214511858203892775389601283946178608933005755458328295009413785524015661725482907228098268217966069242022951217885775171156009438323898953670127081318118490535932401669275874538366040997200916619487103660632505522020679480965764401017685385803584618717432238205229575977787649645467592714605789632405182726337057775952226440279749640796576100562086806412298567900235309570641026856640609156527999133637524293607776615078044270014511084444640781981089340722116593700650684258705704137393201853689851401457173752441015019612869620876497782993783095719766307389679944976877169331652908543768531094128671061380402534494481359575268342760475791452601402987983077736966114703940094273039252694956420640036031050988466485657362520571672159291847626073272130464239898558126807620010147339557765506732477426296906390766720941028135766892892395983572623405742538363463743526583195576015008897241327438930073137753969643722054488344135958021466446642285794918889103475526048209223274928399414509489085703050325680382505885329579220137201910055367514981253128464819293752187693575339250341170110809218769733758761458411206928112226514080775081440786751010687291284370514971054325633448079569893626931085660074836950658791803230221356089890618765114426861749459454799838701294259927910522395440239689681750614495392745314122012840968931605232493952861508315134034573391569074725567309312992674554053517182138306851451027960456806944583861869535307660813515705186623649673266473346847579332536396839380389323766401073035698457486110524583277440980251103718645099333664580828289245224236125670216660446538933958848717806954939455207745861534064501377096839825637132097243036275961376048854904295147855376739390355668554948336154424076099077411242234247447376726318789756139939369939137457188050353960220612292316511131553205495149452000799933767573951772591165370254898378635906884903116324614333447295819813928105733299265627883129276891499406780332450012518629606437214420085576923021548569298983702199420396426149812750395586350188769850313902359797779497650696962588583899328241856059704886552089747933170382699765141821607739690044876290686181024537358441160690953578420278879303068102637518650009568085105585566413167998560570984157484900668625876149549779057659265018092785657034710070195588597329832797314084083868670494032608643646138450805245325892485394041289908406482043348805150181773946893727857732500483012836914601803081724245324563369942389729951069425632089105119186133729435309073605626534794329939688035106326086947320896819256841294853080511008756114217598252688640063527080476696223820969808159051772458844973104422080384024554483005423362141492626779974694111993432855199027623683255298971586895234138296596209997422660273071587475444215554939820356335159790542864715150849865472393990013050127111814657521425067140947682363731844321074310397124257381216718089731133592877183475679815369002371504423912804792478962108105900597823907917809882431312506163255196506983767351790016541882407591406047724431413308824832660466301089596917830369490789004610997666254608911006636601207208063154297060809088586713715910420293049948888052537488054817917077953572903994931949249730288289594031641342225720983508643346862910543738272131792389996676736170731973480471084883652809558458039585797841953122718892166221315906027534351216668335178921013136153261842568068714785801541163564169161998844804929496066391352495690265171668396778621652020443754380981418985794659732073736540751009204345019584268400973792915874266263696008108162956603250136206474871657487066643780767307042054981743270925406301286265268558414760051943790081276644149840660266155669644371249679109778781206428681634055892318048947421063377870765914392536422201149785019412589991299948170937157819394216692802005960804688311891850418728018534471908956809793829190015870375395911159882508931439317221169927358024747786036889848819050763922097788852885853928123753578400633836626600257396711787541461499774324701740640451089926861591114964673655327331387678549818299137745628223082949419887767900529810508290000109626132511888734155027324608250876774360617295148884075064494307815176170693165757105745158119427197174315052406204674898220175853482944832027934451532253211432985064126236958987646635721074745343693212940997179688596189273361606205975312363220674114201747445487854918091932498336469887118287343530016910430904014469524041047056677803742866161250172750282647698477073474650459986522254774407096409230910316347943407791133710179553285463331069713869932461971338372177773262093258815849413641410624019907573846495481461311336765118155992738179604571857294690058025944052478558766047478663575834996643680069383326388749314716995465838142609006134638464638700554290474811779189787093887633483121903738333727284708963528398102177771650340076809780293232246539034915266704689407242270233890797740523818054074183952733529741003900356369286132293441656999268004125051976550825718365525980474509400905418921513684027894879537956320064570940469442391535846826568213803254732658275202287477663191659745001285663186836697212691532233611155198300868036118710861100749590837293764507579256817067829412932837019129542451321412950681066415125097633045834056085778778617685132346227932709972004075094823125329967569514554121439652650171051751876035937243094795453982664071218381602700553033145386537418278650950376858481221904043201288390120401931361190595917335475256899860165467150765737536019251140261031198421164703298380522802777159537135669826880814649174727510769146728896267547609430108355648917340046552452551686776902078722336781692834402491151066836679793732583392268135553534097841275222491485643380605942831335432789563881554486515356784353773339325268697186008519395787844254158732952361228043596424760607956281084190703445855724092170949027280957417197158316725510638760056050133014188893485470244711099276965539033002580107613529831715383685212535769195644435204826692671699921212924048133411217938363015108416226354111838441932103664697226351769724543536657215566171890931108687245184762166713516984430577801052659568372809829070273203889405642911274062224765790292686327617635812781921661636346069988861845371000900553412682049772310357003828252568778844949241143171507836932726884579958970648439062191893155986392648109679763044793777790520183949279416536491162917399183482653267840507664961655432645353681348899175401749346449102947076782065668106018340449260794478645094754114288303588824122917688949643698350732803494121612541569759144187233193143939384666471863366256738481631205111927203861800158798347011967084085728213923805789128103928547396209682663124780580788344476077282170111888035648301361556014555662131881638218915009887587207029442721209318403374066686129916257861159819280764537086998552783708996289004311149007574796462433327135826892568378557567952162433517869903385053725842253962138214853963913863199651959989553473965168051642544864916611581609752092061326047890468137475388834005696552803067778355853394485533970998651285154590132463030607890192847064362589695765061154118652513039525953811315525015343580856186319660737784584595705422440940507333614402891459413732255797302162861794365677764085211942850545828089398567093048851332238335401545082331441711685803957641805050248628869658953879511530899551862039309303074135769764026498300070945729351376116037264959757018382080298327008784405908900797135312539942162383724486693688307777333725846837787389304381342871335389569333826408044457480849027457319580009478611114264026187035728179280342263462389510398614511162287834173525020004342399675662192407688889734349433910879859372826171274863297617488526278410326759403401635882987106993985595320570562868065624182036346046376778526076482228626734478976061604517139841149896095178927069960907764367253067839976615688978197388040977749450135412698064275577902155926899981303887251106062898544422177957898791971806619145545635954614549582658653139139055327882500813552724481170017514226546418355934720827563432040474020667623693101119086060119483185886683702582212641786300788768474393560710509045455351510357837983374955395904253827299599752390516274989113072257835010097082470924924326777735115360388524897423871243680390183765196359234824495212332379778172824652287167920291811662892057789287373572904069270665551151027971720789840855076323145344259338981673506491171415240781776986001505543617633842782928575187619941582125667569225926604813091315921287901401155528227021211888274635671817510350637044086495477582285899323112995884172117234362460416652226929659111790261801876823969304200237753632068295466820909772541579260831484342242198752140737961899285442868090552068192724009036511749208137364573942487024913692720032524658489888427996823327986600609155573716931545736778563063169168970303654534974532948160575132954386159932398793424000938972152930784139993398960664992224294854186226845442695680859347156368920202783780227270803714808547795636912494674760938968008545659954228780408526957106892384422729327623660542664609444281771466407661344480600899194530733293572660141965629889629035167331936917365952212439083661651695004578278249055365736996104777239210517711053596673904256356877967281616074043408940505723219140948047779523313386583841504960166995145311645965387068396060128229843633703016779219927280184103120270706318534621472532002503976298224189778416126981616538776549346259046078588119176184518452241153506249063956144913506535255712309587362264327643236949664565858178885097620578394486479340549718832933022232217218290965588563734840618838314450448636604103760042530349517376425462723619876677158983397494953754600342788990889181059961405337263962030273748584414399787479352382910237857346077575987659466630187769059726359783854972597087101060285490936884191549470767385776458893331705361860341727774180530660932039180011204742930080504377428352451670682205068892404749262948382012198500762917545459461760295554911661890826409463093604376897955645912702102949379680495430341256822278664311744511236619179651814355017612291408948934634666916528251462478199966813615846757915222743803617040592389311406817153699900029315526882074058163848231115752507184921595508918734788305530172155514371760767965706409418000726562807737845079428550351742334106521844380310657981105844608249633947043567207341340616187177846166004556068352229780735037307442683714422020566952763869976213375645214589212184579891657640531821231947187045407630579434831168268754261950440946680153082614386237150988499521467971464797873867947408198845173549413280101081077711616301611123170114714854048628882310375933394435640588642883395377226072324771819044364969002523665216833536343330114232528907221898850301736679511628594730958078040703341835831071140907112540722858411432840598763566070912179278440776422519558940436746679596134865892450312467530659799675943570141675712605056923807710457568350518241520670582518065801313921374065394684224938102845778970437139682758057499236647255025596169005580845831188624600143688293105716315528077061490833335329850339127188165176019088323623264004231548595445085524632701842365999934004622963087333530645931136645102539641458480709255774046690612459636606598321080833214975379704517708818908192896613883772730817484053591659063895954734925885206496395429220865561690639583635637027783100408499777650644384148636206205753819865806333349290910037042139734288541518935978318968497560187916576890794381598304217983784738440825586444058186687464418599189451435942705397075464938127934619693290492913586790458481800393770831840452290828794826962285387562408149120849503903463573223725414665938854289664153733241660926342897024359523981463392464453018754152541649195251430033957381269792551222519620114636961554910591275840341895867668645353695138105945351098499319097950480847203113001294369206248720033115980435071128513118178785638640260826382593038464793938555730433315012177779503833582617049297109593573461634392711579196709510606540463403322389829853729634194282276906896369017090721626179792321276718569004166272351251905818280172676983945596368489746771522898065404629029679140312348049487252240961039216777294683266931441223260609947465305029047491534607628828647300005776411026190277505419307942929942594705303961215013390116663801563499397287284935342200925828517352703561400971412978501249469589325001459967780016133819010537311640411603110829991749761713892667060898248436945438783124265219292684883707471694302693010256585316547422920861424235448409279048629662947750113830125093615536369164081440924512650505756164486621596009428610563090703954072158449387420178481467916574188541141707291040296398815176612766690638228073767180602890017099918610047252509404789954025597352634682422507712077394508407544861769780074666437643771076721683772439428913105961940348742012875584765292306996327385510238778324409954696422089131397488684919318851678456065445580151070193212989059452936961725935343288033447448264944550422881394835683920061127284218077756274515078415714784694239791683406598157233062352580275150814931975148081728012812624305355729170486055706009258410474259393456301633625145243938376578507409413315437487025589428956551526559121712552812088316497837191106968577567108889990034982747839004570508607094070650666672796674518350317697753752561185476289585191590476484192183117081831350348789987138994117534151015015848382462447144115727054866828941424479978132676079084911116644831327760540331631073770154175925170428833378519351290541977503182450653980668739871084487009683867136171987376787115234189923008135004295284266319454750882872911510433316668429107184734842897169890358224777645164680840947453778486950472963796770650899635671587386639459931209365896511889917050132690732473449274238712743628530116969998912640702541399621559689671835377645841201083640908144752457870202395568318854618090940738054357314269071228563560323804762978675501500590120095195363737063833685291467328832687672515815578976211309751440598933727806361924135910902243293206456081081033346295214072738118261216543440533873032974600976695696187208442480041352647137399375188822366120865739168436252391809994426875305498679217165726131130821002961050707717265113291452073504071335287067391198751496849118688188080824790311853520831092903258463505424996417486040263492485322641467836104213683307641950617586736518776253397846721536391503213529582930637089723216657441159073725596729043818861683691220274756210156899013751277035460649111039261519197706935998926790883905513804453861582903381780010794377914882338989723394857382120483383607188302044479249755042683784360122712977411904972830478298739722984244406258322143354400344796190979773234602744367038490193985952345728561977791776834135705956618946351427214129323208156120482467724405058534251577385157531815970501286920946291078385088682708334253653048693701348379490869473920923936725235324794989456827210311922076529747445386982055626832468961920310059641804552742860093706252566329137996501846883104109177632338698009228361796027809461472489154694697661285593400793552114753864097280814416072786683741108649620528348382277487411975213392619231532573667809409858167418695711079298368976073834651870683061730242264695493159545359980558940807638857707179042392761345444828671005636853200022310550351604455613253929396017943368015948847245152581244109667124857119545252238951754435817535625176327360536629603004943348465649688977368628536115258825447875053750662987882384292819475555773650619743443799270421985450330406040055263877825844513696782380462174808618157939535862032212974087696941587880447808331216777697303703041720609660542269536551873909115513569966789200856785149349457609038193235085550210257960322330482957297936947381813773392900928516912014504680508604959678259376763650991352400643241689791264990882572068257495134146289678191897180610169338154519309503500136978965365692182403394420623254477875995098564782722152785942422379151647235097799477749221273624020328549864408944105307200407956502471616418076081689699250586471315220866793207235645767009851866913195286458484461635026465941090775942035945823234033268739053768346177373655857169433793817850639258022364780533947198460227968864167599101327477589501524139158120911603799656683300713259620659020912729730991279505915183393092406402636128202832745849166021708291150283510127497955526244220256965002752978944054112442420141161863670010201906617970856024009960295489727085369798309260717513392717632721617056592040656998310705779859211943986711282899381193072575277466458930494346003510191545900224683449463215937619134339567050083054864074018656709538917291715950484084806571899134774556839521066072098763235000577523826328567820363577214642600423248334705886049489549094981882649564751797658571118426059976913928031042586147666938863491164876225666340444885201639046181313190071233260364367714829508459921029759226371669606678448108544835690776227195225646048463139048415655876383192726066081727489249844215509995185391782252050669184183245649616538604872872529849267695584979648654024172491039760827801157426768747534819135846787353879490441910341839765702687576116610712853326395918060829837095578057837400586084749098925925792582807643179101230756913599976212751106397769317158878259436887441172818962730596369934752351137590674272810067972038897942914416035726315217055490446250553268927666867958905761558381342982726048715279328377585731827535896061177151719387488617258325342416046004116945603838884228201636256907995975846730984568373105380341957281352434014235989663983549861849393549448527129333445603655481768703253756754065954656991936935361737970319938270719613104159663195793785092894471162586346961424752923989202132779898315237245409109949037154979727565442956732579353327178876068503982325711042343412754121094532070114447126035935207215972028279147463678811332282447517813154743784470977417618180939548079939629499456211813650976783025217049709159532732951603635724906501087607485347135663193285360050175887706059009536591768499889223558270755295864428395441886216223715748824320463525031972742935842654843259287538812381287665512525721260455946964790178718729298051941216590481175541141715841508137736379483280840577129529955031295406734759461608037139246715908377379847503708117798692355994220001322976040933694138044884572954461400366267435659907699628658955901853338979387209128674099896450388212674623674694261326955951922757358411211106253663202453659362499251434786264031726875714438654741040574167815623890912011294566672438103991259199816776998481731798919611130626678767381958937889409626831719128835818816805401101604072368966231842492847530267822490920720595876507089612402700223689027614819486497705518449310432362001273161516255048786920679938766134642067290787473632073512779603861871321388917334945895909162055394254243697941602891503892516575308706011087416401842222840187947343106838245892212988049876905399943138261572531890968834779077733388799817733390123083316979329990924245634544783910462383195675977134562167314739774340715380454337983900934161672544290075486153007560904656795822165297285912700769612611958236463788038834668781195042340630235484319848547351179041350204187698324423248381257792070581986210318791537430546389256684489661844438745812749572845005407314364008130473347084130581944875034764500768560863625832657600321709104055622309013878063659289103653595003683111989199806971536173767578750787409588485920654503368035974612162568979198635254316250651644300339360255108130401750490117396313830755679358064481798622723277367788327687269556901977189310190324996303335367855220972879427908786331136018379391625114359115386483660198090386328987797948695256835434461504782327381385436212410891139214156051573428931191471948104240476879388593009250749374218046860461167346784144936207520605288650988878263140053607022326719239487704188082032725968842493108199922427893150642334532465629752726681573631205177302368332388428305703105942280912689589482088491672369840197587561252459239242252419327362623741323641283131213687930510761316137261642436125825292347133184986875122707670869459556369884645116752764897092332255961959030910330803097767956788226968460249366723907556170913462447313344343198604520616154145071741059279399207694450285113620701108063031533504405667284140236602058074205750806747451049345821648118226791855126914117371750848265944177649684976023106514395580131348734386718053028823436179324451675231403532753227143637941726608653958957236096891215382569209211406312569583393675373590188896611626340620649326287254225913622492397490931122379241720112796640457300356155847992435296229094282683893557586516092389284560594410669584976000797691744365598573689881827590502676825766419804787740838086127270962394476394156707286413831340687065349692817059958423823914009710085707196454112958567212839225963582806881386090345107565685491729087070328389216955910643624524897806468975257356973466320243900912373685472764638806033588139306554896961962763741604609895179226478910041037811356119157655517946905028488980337077013689188100082921406981633130855114418767951442927432335050466050428303697664976858653911503643913587503763302148093312327911232786601504014189214466936654326955216989467976022944938415110344333483253700612220374790060738869221055307187041879668393555047074378588384470925147591328043422662540886954352337523667650102884302790577883838247777219357884156246018912383530965757478330881182930399772454052971811051757785989354040783335882141087578073064117905641456733854718346952706806426231133098156557663954509882215319352847873436289376907044678658107990702892837337434134665031192966199811238011554401828462705383116964654633343422262248802163952145796448863236712713456657004486124165996519547540709294468676305954271731089111646326729182148993629199308777912395254948278160866751913634575364404217398755592783292015883077788543177597359317307488181266464047333409918051377618668544138861148287909847187656846787616434557626259280695962981251236704828490105635494492783120872964236452773445961806237185664617814595808544492655228233972840128962742452549250130734084938620929887069138259801051893787421825333755273470226725899669446708097823642178717220987615040546940484290327548938842884378958324683579761710169053846000986416054248204220353385401167460407841743150783005700740958912141126217589712417031622685888017883662224871982180318370229815838719916451956425247332040944506828093338361774859067299443115483320083057935915771641264364428390793163088212527625302734830495443455129024618471993247763672326487365898619797901847186479329507935641648978744162590314403401837661445296924364380226620838791509296656038504821190190730827429421388034372919482056769301969401484423223802789065953074747468365600561742761900570335301414215582364165772723357142407651244812171379200435311589084390175627161977123922625397875337870481529338416215803037240569012522750388338504310925160496066022631469904756183342170089433199775560230156201779520563121029786929107395281880232273426915504502955119487818139844459195596821964335043956315074293737365097093614262035541115781261824519531687267432656545723031493616052595248684433613515761955654218704870418310782973021607648827321751957576525878455044738854386746114992235120860967964228866514675329027328288735321355065423345066527991306601443224099271397231880153109216381577500658077981721174672172575996155671145779206615776882029660836677240679346550411021827670577117313003824438972907518917263522156099677177164697164988774928815379094628602059422714295426167601212191390480116614196095351248390139807495521890566682115925163085130724711911921752021067356181117771974684297344930416794261006550127141542556991864889846062875840439031893454386462470468777822947420751605530836186051537709098161015764475770204160037554422193180930642359398567379073594466974712661140061242084369153284847119199137877358659883298176098801115539667202509182911014801403449557053869235892904339804052741635262463825059251951009127943640482753503168420003741061052429514817512644654439929751464705318971946415139221940708226385373033062059704490974582941732794627623954218516031365335572477704436174928243480641875510014190131905087473568342790325601465713003077521648883422221512236286596584874786705072162977117305286899726021227129875119356158412771801006232597095640961045354276700037136549884171969935433170074248603619104930289186767417972443325304467077847157080060266324887277999675907616425034511272964780920467568817539517150063502902735981276862071234734742924617937605712284725082525358662831247266540176114184314856658731616496302923511660950433227145496846903383972195071376772055241926235307387703709693906794969673608694069476584545132650853216415953173568824698243913644330952356426079706677791455189171741437527487733784821564867473881490002107080587700710986069786582342505003235574119402779088945550607385277472557385105327185337291392872507880389190026812435772294218391466374412941420692203965259200961091051532182466183955740101617056323112754178769716561583378642634022090768360089449963763010842247899160497954780070448156479682812561611463666090426819767916766272496919361732612480680104855329598376410757287187154940545081310591808815260765347309126301595376006618371411832729580349837708710116442006789908785781012643802598964630198209184668796176570456705613036220991351342727369259330824555181965653449288300598011391103098960846919343128526406336014094457982079181489836400585511041854913200692076219990836397274998674953234184289281986261973308308470434209112768551099961428620702260337467584968720694873995985195544734604671889575335568154729701083230441043233619753993969834511175808364079389536887660737911533276557754813309699744703523000679264401604014825921713723654420263462196292074597824342443328775021730567167716814738828781637257876427376895237905119659316333524337836599652466935995142940868905210143250833775374445694667729354282596416974888209401795226056630318725579793836016103794772015009989853743981391058591671221279040527925378512064657008747778026027414098940719090515613708976794520691485280613066112850212809120915212297213812267120853565773946593120484586495368567359662437797278159753057083381900911693992055386732015501186659866685321164565234354915781526473557093485133914998264687537871700149720559441364096542554031739492720805341337754183772753460096089345677495044172723451543928092605664036007559804455944659495148391238886422954972790801001273558059208631440743692683750168321836347838315954271608564499810043049877493369158793122224365331905404526968752133201274550706927212040693814789303206719994716663047458191465315645528806158392035156021664968819683705079119543988508120249969129183558706416810506632547498772698220654598078189762777122487002815339187387294016005352680831020543433109371840505407383373205753352057677309274967295619137129439346754991450308660224179505031895140677212568094434019824972680229011718441707755589384477402575245339517999939958268479865772066502665917753703257878522767234851294999213566582132574615828777544333931583557188793062114259295159324355217371678851222945533930793174665040930800653340880499814671426790040500751834729202542470713823947378366410183232566031532281211929462885033293843084939247906070773348778370032795087802769018465852732930624737401667424192763172870278103186805159168589146081379385094005837441129333860098756023706169356014387576914189143547353388453999257397943841086823432541940038294221906724629752818178860741239406952296963262324077429428483084531391605398702860562455519926129298856774801364977257552941167937013517365634505767054618268389031956192252098770029722054474177257749055759771208111577365073445064388069209570306313826903677305702612913659057574717698012536009849182291464690491142700666820916800556326769464396343347033086185742220568094782970045804096812925037787825382779289442106491993855280760491562790572637748631101206224840223606583656267094299639944690686758459548708410381956204087028653643461199445894007424976259318087325001831503240650524025181538425263525488540828805216506191314720190664186563363772438524275076925101208966045888529111169915317544163835593230723123172566600447145474233848779624370837007757228234350505463538232616049450651280726417196719655139913205989520383411856306808202011004589746316714181752353530149503325000880138364094393115338082292385717252894723543243072242707622416687905619998333833515197753353161907496667003222074664947885525483167508889100956978595234464301474931978618577728427545779517217777942712455207844854834971825279857721692786118440272809275275527759209877928032246718267373526395565705212263875234150111092362126165696887743389412099077557289817287737573243368483077873458219439788906833198442445136518558581229632416462323842432683772241424590072368371675919641563244512403434632012983976015326323371346395157468926919855110844873029898517410257910808372494645742596512793820041946420758261627977515137650108421523486791995452264581877204798534818715848045954119478949959943751559587970508644366344173158700074807330258647560666935361935948503560818586715623519384531321230030076851182722487394211129397284200189651818380782566465131648457156029381992156931718270857714610946853347830121829065798228140674745828342697498133521933009954609671324543403974421388570851342862466374213699542460407646745511591101668767604439267812605901975152367348163283735625031877071941447977598508159779943617323215112041694787780095809381520606472016568768968512136115028709987710515910564580396289771087348576131618206076325238547791312738329736770580495096913502091370259381533649902404843682353327904734226485471287916873885037314075757923134406471904325551576005040437595494211809113331823750967619999032730601323231871439914644602683527943023972677028054071790282577351574264093399954423287507542943485295032093024774431178331738889196999521952396062690140575296269980124852756508276606212759347406702525766692608919665215824246422270486662039531704781289819834984006314148624217287507750440857277363960451876589831331902835778590002490923882374186008546109701982509125860465255371287830096767746145010035245427463508327744316352029341546058013425842194757370938210388576653869340328453385514237465245596631169987690838540547240022675305899680356034608187318409675509334709828233779362211468398275796473539914940544493684091952167646810343270570498998515508074727825411255860082277601112304895292275631507705601117738792824916359469930838661856011074184127005994310515372896910238265733141416068972100571229786933971245562124030877742618849449518348249336984489877331752148301276123372251079114371295434622183698855600297938624928882441593340996740591356378398714234664877453097757735666784171798505204445580693319985444016372621143788424159297618450403829271113543532452017710746731696394052019871350622946509219623538402009123019828817809020079171714388988850869165500689516009751943081812190087838668232843855041956413012899411045130436670275915717700392881043747762108920571217976972157118323351862750443823346425739363421119691920211522065401750423688472822802485978840587084684496355084033229725006434919385429962332266230528290024280449267032142052013966975409867136644785732003858472699989226412891426396871712801104151248520470418673266269149083409216381978000367285047014217554555978465157326601875940919436194668534940249616772914824018932391032761478556960647954451650798852294037542289119070767835754310534867299148297246215614406474557228124009098228558329979861697683331292908913527799812294736518527219595188686392217145688694712330896392173446037322114475746269429370695345401354536555582197767339883235436016670817251387605889908855418373800637348300684193163430642886463586862405592517832479529487262797449878916790230561534660675307582277424437693232330623796567079549302129072627702674741451735992486420572309501856291097408774038382705899200641844377314376351215113760622213689597704794758737918688326079737076351487556714791322404260558571586519903468415602111595994047094586136385599154609630759883274198646275981713354504128272549153639344863291290510704832491659554933701193355794817137162530397781301037938490443492299054804877717436748725066853544876609556760775505868214881220754802927915828653952310121371852747123318587293008658623455078494272723821312673380556511636841592049020899722798934537020843948282974848913550628237240944576464822491980946112474336818461439639924823417268416236571719553203734803404832870597633869177502852936448833672879320230021373771946282294983200720319454546155271544997754768735959174058487493760301734680872571773438149964528019827089715077858708915163300033726995496584307035485126269946432373725376264020101090677925061464730255591660066472903337599635931907497069269430693907452735590781176427142286434562349855608127656029409560041124567711962069719081792326706943991941613236554533043177144736197775929789550625426623347921340442325341389985752845361484272330182761032398314484102498837466815914382279984597671330274972752500340450565894333586237798319995512187407938508312115490934464850401040513198062664609742526133671380370964143669097668445230839802157047600935697973916342606871651513586368688997660009195987002049638918055321310220403500506806155676339754039713255353851260002914825259229304036307144263534598295648779302774614796585674032133924469601555622862723690306810115790154170978816385907477854791101130135638378382455113482428220646506296667682371832521827269467297810605443777590466143472920576888708570488850443760127221905703440767441576730404359596350932642545816115183213626390728379881466032988921119495600718791761222218790661518271771455511366808599839082059751757385053806894253313382879215611028547743454960573737324890223084492393942976124880148673464491421205500919513390693986322435350890034696540270546189563182233205597457802749351273820112892123047160575156478951172151292645809487881048409434804003449642274484198963829644312036563926354018310559094476020321661756269114689094803433400096556183241596849460443257887050303067528940307634693770773559112643660471688386537852790675281158197165384015255467269370544186251484598621845986244503258993609625935748460002934072004222750159298844788837277727284572561485265024215833692343792956600055805669163996473942809629486929976025554005385620679975361250631739941513840144394320182740225197383862383486557873488914869238276344637384528415898067242543504878269767283009608264032975110436160938432215936573159709989998150396582785205956857868384916062463648353426344091080724589481928144346647503362581007411788997491609096422403951361023148010342927950060937356959295763118750254858442236677353831439284326114547695270512733728639037938441372668782130023101946751201323812699879477520329654655768954523184528652571545050223465198963990431016111928428364367389360899426045131707765170830579284620321069221328351420668143944914612321381837941351319016400038626559485641244801371278845580296070807534723231533101225777466821915518192722618310845039951551991744353578907404843393390494486589205917108879804115780237968204325531636835691976509834011605273699509132449331109113219569176174621781358790255654564630049306595263625403607488997767550882464200080597233735463499813563759255070607437854024977314163133595215843606759317123327394845662157142001119566275400761278126539554278383135477762415366911999608816730651869117143791629258650360608360343976773948155533754553281110429989291997511218974522600470175418265440336590606520172244628403581046348407022644234273689703937676483321457587404190656058594012545484475527663695676850715205793309481265983890190700845525170874949651589290094097483482594300341938322090426668170888343309253285551247909329264350983911746474447662033480066791527412112551797619833132959467110077199244812506515213449667299917101465513300370692925405920806236558880425284369369446724118005970121059803531411754030294747895639786993350818860648540301257148592604246925742523360489630765731945989094748126449435360045617744876772867157403458142018167609599863601361792049879552165663991899522365222447968836501329067192051147384036310899611881386609405393306724881310321800145497224973223429484145546164591699649629074806894699977800704005007900189949843392785618438940608831866005274718991868025741231651862760658577933943355148076339555654125845422853455673362974334082697628000239000587940839789026068226803601256410611360142086116638071173621120235580123839760763733745148389803822741630324498961331191469472431864039041383904490837421490683943903421295949219926034366569141494469004965312963143413336953816428362677914929333544367266434469104693481911859859060461963267350894492988723722427070622576131335190444317621614742141574230994856910321864668600765353656485316152034669768450357514492481689578638635544255429816421870487640051250768732646059482136018483164597389312331441036037860945080423256454728488358924580420402703882166827575930459922075516362139226697019263144902296211928097464484830415583807597754742027327746158184749338275877494344370058858607194648621455655829475092607403542860901982056509782142233674145403242317656607360347704268378045850572725523398849013896920823480214519652665046076464645813067008804312729443886857640690767823005465801192280340382397852551195179058329492108318787814776050812990947154987918974255050179066299960749120558868536061781214580206954344875917815718935470367999119884420805989122409125618559227715698852465475957520814677001634416175951943872682608910612131365535162131267375992694310361141423637770367227738779829911956258754683629804776556231599721936042288086024126309018854035770496814041091829311734523417359663672255049052867653516481159391341256319266519189314407419413391026970232759104227287625830680317565978507437647799931839699547760734734100412479466607243978325067845228287548671373310138948566912018130320823683233885623838120250376901481952809447369997053480026825527269052501820477215542653410816988587280320555317747486936502828134158131436775334703502622029512241231655562510795123905462141649117470955874155692834413656508958921127993428753870161026036959537024962108824739769949337557440991697093303432913385883529992921568360617829171128514017436206359235314851205994107146831773775459054214439243942115382066800737157493761635770308777779539581602859402579894091256183781993000576459029462097118472943490947777666163992338952573411853334820756235550050911955453712699322685663817693609798235289877549108424022929340517551949570743363191774414660450958168537425058263797750896504127969701139587287149942115660553181557683102933002949582622002637820784588633138120530374158700059180045715363144603105249477531140411410681610607650387963230703489900671446731260571085118764543727882246979149411044442860621506876556178173037848169368895991332615164796204960406873086191277569416603710371678413810029180454116774351526579808902122986274163326171413347571488274404866489260825729256161196651896724414203654621588334878192353833715858116660856103395332070246145443128299413675495756316215584713770427590320121209460420488392329546765113494245525683447592509963310680372931700218075508288609594052975511970822359249815663719321923001408899734448420430909579261346539835835668794032689013174767327805378041529759913976282068642980881712024437326059938472528207059629864697470317244917875498793480166871973393819870234300258574874302094666163891046881462271655352802498777751314098149502500135909146739418893938583488664783352809956283906457211393152402323376935858948364545943523847389525397174183612306746312630384559433472545402393728776231392613059561161943702453068664308980178104422662719666521767759011806023250809735104579629396200274687519801029289639603861714306019295313727200418409418228727687158509427730381147217611471521206951518798610613001591712740915528725546233689490361747897614769355959049660771022022564558159020650126701647201136159672153457804820245634889290654771371361867647486357956501867736553710282909637984742455782317838857229703972137952063432141219215368676035679883805820440268826632114609315807708305524865672184697526864455219830015650869556691162375793505448653659264070946777373215787644458132768359291889072497358868400662680119454860174481640078419897145089541093626841857267386351028207833552605439742599243322131448380486957166630523751274803009826270398608343697710424455659330217269602551950007315196426021352742848675846499432429545336663632384909467731500371369060897857383681105443258830675061694671163225523836302721988844020890628687358545089279235503323610377649463190538203016772642391569611312860954217820092721454179052071926366493797694318247897851967876080399838240913221595527405069604669745073549134712901022439875518019028283411334143656092988234471330831996319528400754290018895914770856078701219114969920211858304568134550866081167732790752920199284004264969607163561251513891838127235596167390268886828827135297461237803440937741158021944736611316282756658292722543526684529378871095022418435321892025330584699504263981857404043578622238931535408459732227256441729353720030240964802287970490667968046939776902131377116900563743030776115467944859804665057819975894865428864037182435060546964598862010638726867656985440959474512024428985147391926211980808841137891118532117263143240230599042517329161488923451182744630384377979128183274006362993713272804002138424300973648277528172096535301821442670090679822504711002130841009255263154492798825295076357494764070167949340321955905237948929069072425322910220487272626888429488617883821254961517285185940166152489467875409417954159953416449478781593704411319348175673364180293400248438986547685225650899268981001399039979367283836951953050212384908630230531813181240350214149574221168091505973949250728997980752230327631444987568146284137491060253892877350935683575999371077711542717136661883540752899502262662989328833695359228254936977578895420093105931490190626813617672532350348873868093091960944959959762005307689868363158617801260270013923907277592094722514211632573379678415147968581545830567590831909053536046863947435700411045206726141341115278419660089632196865245399938516090543943821825249914678413171180711940301523558908029590162584609180218449780705902265334278556095966107965862882024147907218854572788065548495746682938865398721521530690232929308636774123258392407183065436640449021843064333758026357302772177770565519812879268158280366283410421444722463180160537270655843253675929525768719970394441591634639603766911403899482382607256644088031620153917053839337382375145895631518009446101256778387920329121665100473526435313836107631053912435216413972182725685393554234704240304613520596777441515968555076282637206364555750004477466035773248092167672122896981815719943124521116556420626618531879862806268129474040050383208996573025143853141843168986183504043491485915252267788668884896270284732626724388088712883589330386820532986293489842143210702033561798108920496447237588367322827737709208826716067771899891565452816011295357901970122404465927035271266667823147657499838082698754493375357816401220425335532436104998561677457623291209441707726710421487134651070651073418945182988365291650777093719125659460527636613330353667858529252844151267644574835202707307629780710443423528217611867331702176488095045138295484972774343864161812064709367267547346765323520144789654665341526714989279515466660417646313147566130093986612583285228842648297240342647547788307238681823420481983082714458573586766714388403621816602959757293779565647161307909034669126812286569318520797116167096247475999057772409371842439412742967148795814007850004806075429477334965685626163807498138150428953458023267462330848939316884350825371422571856528185641583774119238175020444704147543404734517839790333442567476381394514576254883062463733720261156453238242686284985381627920512225372215708149955950710322622279682328433096640947187705581866882886905004750183461078348564283907566884944425454579654596589453641481764762685259768097016939930956935822693160663647964318413123020139040965134042982146098437496020500952822407136747611810516722820832638594002529722084595703092791000796680011437530148838106639428397310077007884918948031877739005418835530051194986953179820983118325925100045336054065756328484990373162710825465981369633244664355634575710595042630969169461259537363945185978030256521698268035568818632128178328077244571002344490957291789170686515076317419670830629883728387499161756976591125040661651579337177696909251134489272404279681189875258819914367958696135088145971069189713697858267678885635448903732400312085545131152721314274326595493838141937167052128621821787187333090818395900544351426105932084338842309897769309968800076285960682771743944290422727861233916446046845611305717894819630759077567177060830908462050254038690387359807362627995750428812463078999684617615928395548315042558212018940058458922137395349110807675204527408552387458829450121894629566175423945251990569128222930224447416494533563526402770917877881574246889935957141623924389665778282999708196430691631493289525047420722377811433637356069495984664023633315535838064835435081315477866028622725104712833013576723838958625071850610765883425891310919793401297038299245834897856127978891215502769443591597311372352316685855294305356161619946472555947587135160434936489799641189968056535090173378234164732334880918006636689724983374831987244085631843536120370041762599481659271624414585338981482556459201065536326790930950695920096807802504467927979879876664160408972124023711209638847727902697854994983377450657738654462536907546658382697183245490852176945951270331935054505930170321867452550795534855407161816176028813037253589103599817087001254357822419240965504090910496145819886031965997255553017561017592102412426551815069050705790272612255407699047000282045490256245883833556490115408939338056908841536095412156932940541169323634512325619726563702108821757852199078797728058546547024371530009921140865504011053265127159498793016078554782944046340098208289676693797576047491394527762593708188159482540315631705665195759922508528224432510266510364709645403968106466840168471660051939886896798458742632227037972043848174114253006101319985998232680001474212491629846836348866351289864518208327555264248661836439673003196089174371329111916157012324322993886436047708931563429685406790426812868929622517805343225171037022824200747851978567977958291148357758075927530214140218173036215867444777853405354163949882198236067195039572050376280389195879567017437321962325166950360912555860313605730348340249550765865519050675240486066835653813460016376591006554186529555318731888978024533727858480838251937614161269137668438429270670896626515842396367429564315613081412295069638879889889398180085191726333103266869737655777290333800821991521284859225392691908352700512994930722894610218787717463082980025534079874379169151355512514865788994785137425997461206840416729612580436658498148099595882407406504292906960505313513042576440065056409380582371936630072798164569173184772866521697729754569401973261145865470531863618326788890556061318516056070226013725221957732851848865876478511695637859832522956947279931502764487176439100091262429161618140840063543970350308913026329813409701208273850603072238826113125770245645821380576370663306139335109460972882488917290378153745727582862664545629772583854495110168887217075260809607534710142403310238086181704395654107489189052236431843024084736099806865530829317352912445819011070531339005942115049155250357922286757431197035701615316557954176187468329901132488841614488816591948458765067239676099882391712520265639986350925359761227717028840168446005530726705067654769711172134198527880809399894206635703310563812507944771717017945348060531724854454259749346443345680291595206147939302966645011582153426376020828602704148530056965398844908828103490328865778575916092142654894481194504354590780985186711331784078546564633481955672091819792425640562764622056814591156369950407840022674195126343172567248632299172011049310441588411075302000510177906205051129118853901221721641103111106935296726519725032683720848812176250809241898723396984909822970086951253152062307042598190705969379591174776851235894125739480804563047293306409826156742573407223195784399491279275497256459647925164108191850456584454541004481792990348921704546885664754413158505770634880171114975573069248048942841049413285047014047520513390233675682540277463694999256743725664129528953916855008168261036913774525442890294465966471518809039804762442455609612291274186533238237661713167550533479495563309252847646053657676669826390883070304662581072320354075676879210913992992738946014918692405605313236914685352553268818286606487111782143798274371628343904647644397232993253529517330855832577401455855309612774284453614278559748095377728377562328492215951944376466399400915887313249366623871758411827557999673022024259614870211402124775160281145377445984844197805168548866953467269431541242976113335534015666016540604763295953432237832591056680040982829093484193250074911383899988675337622792808362011782961257307745566514420017683892983556555507556117896007943220085053529199552619958660851827980058158834857666699365879903111718315387483399313977968363901127207665641875839540871823073758915213931122313069120850748266688320301594756494855490157272861583077754339219413442015119451466411967740510088350674623767046470848591290893726847984785637161441137455425506861889631566218256018756683643817945206956727991051512635944150599643400904012614246080398672351872489256327769753827207977932472644060759600790778559177970701833463857564970126058446843800431068710720993651539023624622108790829200758339960248886387293897436398815104026364292872106744128727905613266237859328166270326160696776325237133713911107722841168384183987543972692016066663146009876330980102307152700066855426169784773289060702533654898877837483322973654549575714512455698018152540769708078446321603018353925719023186751934124488095439176064827417446315367869257499255820841925799814882176218997938892417396755921185742070938288968136889063403830378234400786229157122148049149221760495577607701849917088170230000189856914017748891212847469631409506277690941595074155871459628647403035193696863090345611816626858805104728986703714252135845340856244031678761078691831183741212742923929392338680678169793809296256377499507764604904180844938990207864460239226882496665683950562490254909720715441484015729056237676147631346838038566236929828266171659354188104571082599182537115119080782203316309775137019377358582233009041941655930316656346398682373322410053056161571252383124475071495542380903675723860553277605154580119769574213757939311271948884791014162516928197646859785994005340954893367452360335316858114433130974343211857235142719647416706796689824421944018622228205607403429175795651817925726555206461304159351795790592384190898419009760975244499393157822368142129732721729198273077750970882146064466226964235631444776897630224570509082298698598162551935377563925783777227366158918218158643027989894167811116971435350550300075102897498596660548733146868282076660981500648778965436521776805383308010553916279930388290514077378354104950944453574026046620245451550419626617712504682676775502312964211068800019583369924749302688631241664987604927687197896985741580852804988671056743821773792890970688735627547731946697075272837245181983338783415622389334552077231013392652607593036898880490308397819973715115984208499526529234056778820695572317823939638859687243651637090874128074366156831843918903296833846307480604207277939456975104036249546139334041277687284039739394776607292850207297441139091155937049186001995114966123999198628867370016279870677694730271521939406800953149857502745262508053073466697117446071064350594866547915379605252791937394972569752562607878238888565197067606380764072917841709951654817099699860648658942559948403242448211992429106404798073767729824109521922587049209544863270974838920552355187711226153339444367248547916980261403376823704337782172416867423863837688900662159441997275430148684373696150638203696846182333232564320983653336019962285516346713152846137272827008752656287006082502050492457137809862269957659941670562356282767587949599643921774594504862139344824398073046473328133013276048423753966850309491208001306555852526348450812883831242394832908376696215506679746081618401149424504420194976847241537382192078719156002569333033197360335647475112179942091557522961401072457829586271102062759990253693021244335801445194380096492472330257604872197893463082864590627010610738756319458913516424872633970659734444250525275619695650009563543429550194364599239056014261395753156249562319859730180802018508970533989577519103425441208482700513937816861171878408058430123255450977965985553557933451628039218851897192871386986841417107190483961316250689221785194240069270340001838687901706783370609366467864270144077694504469303712283966930835727672647421618082260271408681914386427156420296072006659680134947430290894806594265334410715290323844669339887910646477127870613450012530007524653273905099169564190384256876734610726562170089817463674985264038647280121333308094073494867907305200219171198614655721179631976691749226033486644141030549666865508727961154942606711323518453352845266382458386101541742164876324404616470908657087566975348259345664286426911876547494580356389110134283732231422179092806573954285654121166041302403737832614444424568519266712750910524755117693322208741763960675148471617684002753107443824185370647540855137740687157495033821570698117985465642817627174638423172780289598981639168027734427316068642068673120248365479465935356938313963703871570667367468748962030733903585177256650400065526644443966017873378813965111488759126913960138143685932576867590919582623485422068891893204557154539370190151519121552179358754970081475063456125066239024814999110666933548105428315277653446413462767347204696286832903311927826256576795466180034599019489389342660375353793152165941276164425653556092695974731620440195875361377941406022466743895656521838925055746046342885357939245311805330825478681944727490195986087367010073706988891810758035097709798001681571699271844235151952090541897446998087181077218139302464666422270185458876609565635954865043644268247762793173039081868112476722456184908838117642792419891138009419744471192693439821098397892161508270458816631893803436926474856047356879288598586776096266981706580709495574151489544384715143297778905411613450257174548780167593379057516583321552449693122439509194702758673500198148798097121880385455534006121583444507653743385598143073942048176524345978256652778389222589983062504046793406273192410767836240870858504945352184488521284187207438262557419805761512491854320642143487954243907735693764130628078481316271239689766128404651315167811629433486381261577038221678920371068863912255391707761279190775029639527185880700767497002674781510959038334075609550374238889440803840306591240549915246803190679354957705759298963998372839598316903101160088868026536916630584499131539353842365340736067455080502906681241464518042225395521163259974589838592491482937946294668697850974121443205467272080166835896408228427032075204365754225742615682949825363711521775572629614783327005077859060527090298229870576846189357772606505992919113357725471454505235868339425950833178570526907248171981555632330364774379762179463526559783465153228841451587343914126564548937264689946900103092451837645860513988868067292279122887713851987901890782433399110999873671528887000500017000860462763764548125210978161013630879150532479607053718919447588699707565668645707810372989549729053965246848870466794028135981647371245804221327892569929157808006761320774368267469644990910214640690722087261822305578135089907531865502470718848306767570844437077769889297931610551267495883237449526792087511413396839581734019697789335196413648640303784283479988649808935238970746295893613774698779236203577243388475347636402580930292713675840272471530152986661026861817013856876240772782145983428165044185800947476043081007955303191017481898390144237179792947146958946177754856957842944191701726583916237712103961461204491648285540888534585069626690700150897223181559977886041063403739732575546826241393557015260436998664130706669887031090159074676662731354839138889431538038017423069827577509374019389597144467193423004916484161358591919969028923179234272389818677524597592934976415832048450579116412226424993757775599081344584202175800354117828242157413705271923799094969005606298154127013670825485968350764424817250502919828258707336741848379356578120541983432002238258956982725166658075784828341860950248150842368971891834408367467726569844275720828620390499564848682029068288571494263493851071346778805359499849628053339129767939815089275665019278390728634943600518766658318319216226632997423468196682943271434241052238782737547251813550985526025117282964338995649112077656179987980831246217173539617858949172886234119363466093649194329045844450415288633993162648634004217885001209728053915040758757306722207441722195372596861268236809183757568751246797551490901821947777538363892183184687940088466921207820927363864956611186080305408876251523808050459187004706991078155215912551012447882285743062693397674374928956674773026220463514619144485741224365538558085005766964948820345820675832813056101916554167006030201839045999400302318087779506866604022548105595861635484359486328801181698515966406929992336951222748604169172311263721641024056603126183158806297294593280824852850322576843534481308858008565474787564703571692686068251130240541536264626290744179443341327457434328087304755670017333392233922785042715748353205475683605145182537028280543742769837741659915172671834812889801723926964994147148637611229189622453498296476613748407628999591639981615573318729201123859745758639921567961040527507932686007418732271904566960764385861663060400729323561603710319132689471215577722480377556466094654978606076733547688425742425390829285189851722203170978416615687290233581499623986117780798509374976968238224134523031635391675754447743619684479951159241584611338110905802184367422606463338845920307445714773119259051625719895108703545305155036312565883886636142666135335631572146600815871110065568683092328777536819517509040348120274010302627246081050504529692157085213924659176836184906515162777766570085277482952239798189291359356682511111748720439132000872446762918757889158399239433625458901735802238243238052224359691923417884986207267708212742487140266302948709126678009865300402153792374903061865687588648557012800781287695924173710244780793988852844376090845367602590655729231605836211438558206785094900124270547204041635968204565232036422107708020235017445295964997697159157485331917498841666684792246041181049106427935574973628976856433185887222647625168812646561538325185020443877391260864687854498840392100363428050150258183798549189765035484403608137570966238243804448471757495231742805137767837823174868081505434473726693566235429623802489016155047653196794352620327460588677224140247971985144044388072351416637770480192914590662045519957975458089928927155442326723250780732613537549571425066920513800911447659303999080244368096065088883537206270493662552872505189724921844920732943786127691428776452711443126902911852306596383256507164241866600331752650524923283146421484842495083707335840076213056401171628472019243040507505391339215408484096325242999663876248335302863252181718753466238550929758527750552767390160169274415336538033700292703119427971402735514619281887094490430841350988997669362418427423031350029185885871627758119477216181466119836355940921723244251575520017190431729343758825849150795564072995859417225960923817623604062201983830543155869824596726633300745900960832592829038469905956201885660483903761350009466184772544628130010727183006031274280937142681965928065950208792597223711385914703630614057608382697776646116864187759412143824874173324673123651999490502033733596099575619210158827760187108237251397636350019493489778204925470101556979055588792415948443544742445875942486117564742582137579583503043556132651789907033406342879825280694002792052802860310737253098086425878393102925624869204554273547699840427649124045451315268133439169438337925368054080160254257726356620026811406856308966069189476863408455758529122131191205437589522142085956154690509990181559914433915922024423855683341890476342484793686480192729661019459504521845407182204215161386517482393910364214899493421835423015710450476893463266874275757383332239773696033680365177327167960322444241051836787514384477863997728938011252025212797660190120791978954836207909814573008864737615757945281277575129831923251221682403373552918906125556711711786233798612618209769535684742177850786862871521772928207563879079656835645458549144848178326929496075689190331393829434894467801809142141239301289981283314505500764242600082071969754051986030300602843892916208021884718234297641793450599636899650986298805943496680272436888640954770265312191642266738746022765919244331822991216916579359033233032829443440010755707764149824851564874803535320812484571309469128480666371354429737882166533635552135342360704892014682624663741478882881579373211585829598729925158114732933275752711038449120646106466188757336871733525977596108024843169180162694521098250717553917552387959661305536282401203544650718796641780964878232992777751438922478913349959284005493207603320340614491071653743023226748664780288496490290863734292077867803672263496818836749302935822282246787541158886280847240330601883432252339924368100496631431423211426547429258179077868791015750438759919991472486698871106974637411427469146318310971538839049251596013898949941627142139830115151641268033680675306887406559298447197428878152520937433754973136223075202103357601697070174924466182540393939417451365858707914101225530324051669804864513925579747640695748616130705799838283994462855282984733266714332919265936520222017778231088166136236864168834576859558132661895198002986560526669572088771333694119182050458873971402353818880726556627724322091528152497489717895168965233342822888792735022508827034922633985958915025617003011418000387946535206483419336301860990353335309100452136393239024049579762266410753110464391409020265842609293844737731658092254549539779200140657591348932899791601261406721528969977202441905509416319167135063693215607569310566181656413813040639338635211078555297203462129926942925526605051815031180235866626333844534125903507572964273764336497811468070119485607851168592888218382276331156742371160612790899812876413236162178243604973468347900670073966955187028482695113686109627181456737039647551087700538363377763739551287855991664668694809134775748995701045605042013713777370108659002658098671266587729702459773590642276867486874640968250598924392930595154431729366150286690536596966894379776413486931010315338671099935812509567081134757794154855664490733480795412996380638093248825592964528750247277366019104812030165242974026977602862785417892280046624362275681551188490763763129785568500911921194847563470155396676364075915961697585562846794444609264617259728462456974382134659393721040268935251477329605987341319211187821975438514786939767076445225836947163124602416832489882095238970538008900709528179016887437698434330017695256225481958482480012586355178719036214577473165754538525619329554387112528939535245935570871272150863203276833315661732898333617219574719397863196337691902158326167231502474413934784921020514689020416119495708746737100948678593986975761721220724518699546994528974161734883000713180668843600345560741091697164632108116603537008994142773622722031688666809431792284465989027511911646386939060251924309503808666799927543790010056710729374453266720548305580037367660441369892896528632676087679646867940687337623112624822066734345512274142525886778272347394572129528942030189582140005848718545409029729115733083623210068830455984997193414479668439850776275999576561857776798616445747802685330119046965769652155864824253063303500337568746481761163369177331181696151680598365885943841833341644187764770512344106850900627493953346510309367948347498035236346842113307943919726180768989905790735469953003676353310876025321872852635948795451279556227909073159493957471040055362462547877790736603069651085891099759929328615357981525273684455720381296394390732002792259906057294931247731111372793946889980655370862759938768819062148644366150582824890311901976918507279522305090850398517716402411315504495585569901316273107047809091698596227969932867927726549598247202564468957605673739937230556795455119558347021238110689312419823221268426210740877478982196936687619435813335369469453327161746868548934928997528279454393690928340199124530480215553071367564530821067030589680955512264070616987420769009397724774162072466862098613771080626855354376895892000924039029824227819314716210984460847510742054938874178535787943782155786741640709428490769837724569973389354375206450531118830637272504011780707257678423587683183104522777183283345731160232869315545654850536252710782067405792722556824122863560433953284008967768851023870974131747644975771563648898477756439827531311489380145004282849739116956345559285093346941545117821785647499598717180640152944814639612786658135341630761379839980316999377427174356113068345161653339397609668843714180497481214100826394735147145825933835688158883932498079887949276889755549304092271577142408985835263731222816719406433104398787045279434163138429571681126809687471396632032514143403322091895996243873991731179126560546275037168818211519368294464926805376318628197998265971413513115798628494672229068511869719290583138923922518109540997144250927562254535937122669934092385255684549176642018458914517142412226849380598086737512010167179991319843931691448773735257355914232431161702144217188534905439892136350865757558970882265180892309628564550756154893733708519278038706719640924251618541155193627333569734926249499093443630681817300134044260518333450451834029816416958326844555962893122234742276020355255830396736023171217791939640962729152923231915033144322987897165203367709645649159605448070329414778536625037596101620029835981348307856831981642305623378134580131182699499024534478478419736094865177975239404176683226432290902714996761434170414598424795630469614232272812600848612482311861349969783213931388122326256567225113677148034606844771732906156168858581765303016262655009801288646417625999269862883703218868581393687948453926904744916193680694150335550594074747249555175667708242821051941569649688242419133444483094341994189911531993718127826795833523777972224669518810164063136565296120644897086629992501312137733336929886193551328366955648613587768531873776244037105120127231908319810771435736243940655663393539928223328831657611010940846984639906446984856171892781266680936028210742033736162945573926491868702018668680562331511799608427452164865225849577291290939451192921808561686987485734720325682404875000623031235518546710682369951564811690027342184118257509220503025355314406330712383584681833764785335821492497437043410834810442568655258478451338083051566707863520774832319855518964601352548425072601842974667032276583909692066876970567528817947488736442291973190267328873633716289953857955301583035195355123088270082955600955753403030110286350362715713916018645656293969986611951982710528501143577104751987081629740341483636633983649978959670111001849345731830212564178707088704067404697918106321954497756211272031269953244052385086091115020818656634008310015506002714871885937473374041552864756447389177483927885140012444350736390779752280716555519659936989086340257416743764605037378533270189914937281153042594966717150051298453982199444922575790255451658974767323169814335631368589553381005218077409671282035996982231855782927105174337430765823476875501262661597779636194736677196184689186042649450306431761892124152697657179630623281035246718827298595561463450581581886515672810719671814188843372353368867142905332019139452338462286122890752981412105929839238898412862427342105521197514838860514600581462471616366707085227300778846634299935376316807068319832822105544365920837088678731424758114300225436883841347784156986464785882032970735266996738364868552740566626291414108625658458587727236951298830388654809568551323317657033033411345847588614764292221856724892281472671824106514265338384141692146615202658188424764750044040055494535526792413326127480739932520728919047286777746695546514299707933445976292512299075100069302545274706778239274886956082265109616688721014265238795907880353126994440240389318308588891675214457083915033130898299998551737582339274372884392831809916223703857700432201256093865325622101421356487695430459419800691140481786590329901745089494554368248650546668463060926152424849736270513049032822996800858228247170004953416538579850776017754596962678298369180576132250324246300180350754763527136626074891798288824484866885792469329151413439806118206543012340316573074544834742108155744384258727248842907306385246379030326974442898771377536808346175981282223429189838068174948485661614193869139742835986554513333424605139395554291298945698132470920355461571802887403114065224611183211916464035062873190374580110032126776755723308640396018931546586985349822380379158946039391396084992781999880597221710377498757581107380588190143284250154927151923928063806761439890737124448020754867080631413332701069772378293206082064584549896738919972540833505904223150088729040222673011391493154028054287393442301869150378378000246688275608831433335686236099658690984953441223585191964176511314347561873701054766414675216051835714961315825045753661582006610831612667192800492808495359324050720456906957197587641042415676192707947096090710430268916709568686825755179731188630983345074011421354711706056904714844163758398643826694434478405476046283351241484638400078849427336798359881918063525832779405227591173450161648497434037432610307941749516222807626707532850587107752481227675360186014571360316148785192790731995065617901251683213860876966031694171010351114447405610984024844415680313865707719158750932383491208651584796716046461798574385736827400543259809924001732265184799446738928404298072852145934056156647218473398300624527497919450331506514599373900960365652502027149782673873608096262558375303059336081617741492197753024190926193524556725605657966894034816664519262667807743567304722060662390478516801530359930643388398056961425929627050373633984911140010534861860132602944644915038295524297220125119957957041319491530725755578878185833481635625065978766401357434947311086950543267605061064221647076718234803805042872149853168157698577828358844619009988057371689014409799617255089792906770751179292283891806147000140549361040903626767795226821526880593911853441588163874627903489203483538388315129384419282992690890999282694892532248771712311673479821543870762569328794573192895244077558737904504140082674156617158933043177544847904213757079152159048769353069910211930667666180902297756542327469044830972772230430243718671637158780753225345414583010381791889245677567560759074254710113160576241910268227487564592625737221401986466100731496096724980424707370129629400074785715680792135397741689867688077866794338672728501556818002425263635895894860832394119777886923421003658536543008303473319669784030145369406583751443359664896464726213188708940910339329597213576955103965922360008951321801072135118018589479656627687983865174877349411423103481275917164790127596150659836204036300689613562104764716823016768918260161294284408196070667757992662573886002368991905294199909042691956995314258490658606415257690394146921281439881369829899324652120796437412441393832062805492022978859090999222393616909710474576505613277112125154460637103751916656841781933991021674589177049111526367944040405261968262728948801889035207507738579826090847786717739808644715484484385655065020514892299579262578878432883283351044574205376271167220257806785281003898115009309118794165161382933267544955550746862334198775683455245820145303516246431206795769812597916157901126936984011261709736797764289679512946129593064246351298984546088134434641452119301877213063136513103724720961908786513892049041133481086464874930993707756610111383056958022401181729005679057522718659471966332865364505186134724540083247774363907882814277659876885678402069909013472984852347033486634100239629250713324162736077122626010768050325725697887220007319464889912694288645782042180103754200082604084565862989816279099246292658637809985939001967249481703770667417667221224930686671761917419262753794112640041976091105126254725420985230086957571822260861452715469642362343709005724587116029547536092676264888766514877540090460680447325202250833097920909223235615687143392795233718878791092415225780345611352764055227679278312499189563335015930081942411368583071432903925261452262161855081198069506438329507327994808833435510321830939962687174122425596342698083075290587338724046010787230018723618376804960003463808165538380961641025219006906307015274061064417194773716823585332261862943538454558779538836390734078244098791324185754771193477009135112502292452596866881892516873763713184350447224166564708792882036294420092033466224121471399252345245577501468502084955258808636475667425148865464494327929757738925987159658467745959161450282409193754157242003616327825780240300445384026085452813532049376833611103849575612097578556424686095031110383486062081413136618085813211865289410927055959224158973866813140633438462445636122522431110655966580339947862192507800594689368826535306302915608016549669890114775216245312730237594380425748689231389819052674653528386303431230507723173737888996797270460047793031475797373057100032951679109716183269858467725484749522685203836026483407883865357587940964549674028708360906057677715252721224598201409002214754621649122849709398129415499338333788760632336594796455669415710193993518131692325355022142363880101290670312865724111080387982187987382730640032404728414199195207310499469112970080680165979941017335622948703425395592277163705683421034887944104249645183124346666630389095947538378441290666214132120925575296915122697412176705249741598500741355089125975483168559511276818961717345543818477809391766109695691263787268480789824880383423640988537872914625182116672674293999642624088067899421697728573247673678878997289937500844926469937622832965945308426936741542233262154735538244981107239223365531425318016761098417025389605877333481750012767223636704587649148067931264416752311687380699920399881967166079452932230519806543380692148225312866264645916522964661466311775964063502588076881339647833233159521417955963518439878206617899537070885831238080263084550142372355040196472501707699054806213072139434650902720316074727262170077041846751372099330680640785284022881402123234878141138586476651672957266788229637833102191452713030213439180834567969225913085212330744338588160206556795489493844485925425082435561415857068271789247129830147705366517367692233169700559827159340776162915227486223318088723172273452504681957547850271737768473096428425890374450444658190074196771579685620353384577583983831098248742373454165049909355411318986513273548637817343619457587505194822918010407516132419228916181461042655587562743135514869186771522403075653403682249812882666025494078315899756798383041952108308414611671536482338354278470719146649331884661228971304244043826189769425484503528302407248673397236453567342319859851943889273330852919802849714815945980535950378633273125703676603415067365293046161105688291996416657197381596912634962007886961926208050093942470748036150780316071966077823642952990273908910273039301092389832434077549365812154295062968750358722290382088310740322547353814311347184775488639883458255825220561826469804751219645041975204503762362382575539936093423650925201432710125399303628829354913860889678224217391719429604322306916051198519935054306657617648312684629805027649189450055681682801114066145755558522337192496027709139607158988818250032229338409094767192940671158495122967288892311391290175406774471883801525650910819005815017874571698025020979650437652193911854502540695474155389015206379027436672982491315366634227396568707023925355420808491312027050085916984379850259476296432902498447428418189929579342148646332756222120536814534350528725414022496465841350861304914804679058715139494692814124375380500970122536885946292497920249929174736861480784456107724420680585423303571301456593713642714480585422101564345636115526296513960613821894707226668738536638817883679379980184880595313312708520750095226439650988673103000405788044353085566106975000629431412510648676588652959365077633199497860560724925276914919867659835167201529054151490857373304002683228106048685328675389461502398737119854260690123509177934340335798780444083256812126512952493007937773142449298748814613417292601371025015916007433665255412882855940436728610517226576085297299533038304089975395211328666659420944519243458031690293646324002713555233793613394334391775406469334479272619219696390887143619611076667847261391144268054248962482918132534863247185430293354786031782307191943290386674815003893946019845869953477433068852683029803290471201882797775459476438876684616491338671284170702493821437888408483313194477466696509735551868004913219839711645970259232490200320737286679053566944345588305772113861460046776767772463216793693282448183348061106708387690874020499834063210406069361621216214205907761057971313096617790664414485375041961816462040003147603652806242539645338624295054186935150535731826606294269452383027500165427678051384398566648690526628709158499443666887980076932284689747886219703371212904796221875163241337807900435466769533155414554493389418742340422834208621243604511759200644672553924349070137355002339373727944094647521524199699655456838530274238196294715943382148348103970490683130104413143752637941714666717062767108373222880614865638638193989761778403238894654251567263416782238403051218115363848964768390789542466665512190570443369207475386305757354965960577277221659999232157503520568268299789749579145826183201903534203291082299747880723521156653104801238399990997843959497014327445081576116713211238009056148431532581249955583177134688130619939286441849184141467331905905458044508648809368493534086777997302267673853523300538510712402298044461537071986587084453306701646229803378149250282471459966541794099411702027900418271217396783179422319260729715098683862857074679275358853901910082998614424143573519501192846198044027988979680168438695686125343346502930697133535340468339955013380830369389249240705402789483106498631711533250583289903151227658760909323064663644786023381214549049215416344448661266005098549498267388617239446626872881147008362335695447809492192043860530693368630696483448713304285892418012001891115019059066539787258360034730874504327397138721914674785675181253192998302429709911727163540987240020437864911624215422234951940638063970054063741893698608207675466869381959468781601634364710083631551480234541774900352930858590215251985403213956744604793524175107801057318708742596473238581921675416204824320517348318678579681367758372923749084350393601420563218604538416632819231148825863187639588319525241170912741915287560663029099323642488205445535342033525693647035054284355399700787880117526294508290760749667934337167918904178544312290655985132781709880472069958686852494026433141666167205819539709355797051199038377973844194745990075552609381648692143127444648508149603193995095482372992583415301523297123567807058621394782745011482648288969008946298609292410758220429501027980946190154551395815753688708911683514301158482671705915709469564315768637387306750196840369270658078109549346668206354490451625192426186839735072115809686223229338446075005599625459246136176714550757188668932879163037707134583130208846207180690698134813106300692255090042724559327702777687137373575749784710987392469463526966610357700985303782937153409681639405132039416731785743281074684599331480997178650382683643496891563029858152861919713356690346702057347304801442366509005603676912642401518711347340292425511532484207072967253298117962044596179658245449182983963223280140933945923019321784261235518386972065333694260894664202842954045682457498347567417840101574264060732520232972539483653236092240491805006956193422222229561892686572677766573428122080336758791413075401881947919926640249825429497235251611932127294489861750167786277014244529782419726531701542810092613317529514787398734483587162765372657177018104962994200724433172101965227372139271642675490274067348354637572234696517030903850856362187800932078807607047028866241564464218771479608156284083186554654795523765322557076164162683747032183565389440869065285348075586674226053906560580946598069738825389418571935228743867002057305426937394273745615118060599624542016837553853063230440888999058466770500173405228010105886619157633243826194273056507021512328529053031400513928832135208974848019750276543919338160240290538563062750042726225050977595630404443226800770409297964599569454377504910654163870950319353048178486995249646369013393193993806562428703649365989312561735311317492411026844786789568851187288099011015615733840515035776892939340440930352406966106563290572206859434186221917657676071008792649158743606083166637626843392896041418138301410333184660144362383255198137748534809838796007804169360887408482765705777981844494331790434196844640448531440581912871338737025050423929665967655023723040331470821304350304008192591862345116857006435678091671599865226987258631870416210711667548668505490943728890105050605627719352604208582764917945904447006471969230506174252723732165944284699859652159609312155857664693555956553680830212623627246846031810721508936692815116473811911923372871968357459028334622175274721620679423324217326791700434712617589442804219459637842050762983285160834663550556967736286663658811748746657808595583450569429326721548101135383426945705218174635702520371266890703000893436851528138390761858852784988853381256274767851861748973871899939663407469561969461961336528752447627440185923480348282857248941103590250481767277896484643742063450310386312001478674459709805892098864498417931224390004537022372027857193524953134400922521187934917696627878960267160864601682883603753804073186804645368539888755291415558119997781616223906564401477442249812132067346473215222942577286305789995706801541567631949305794432591469391716124120644327869081010913366019242522374356335830319447882123367047993923400512758877116894992353800599043319277215024692314919831110322402120307798696683133478064731025839011095940350368435912993172951200579445170557051016708805517925051319064713931367292577351296557039950611261494319844669593223556095300374463760617984543537028105358139102138443793771233055302200813796131993906345103367930868339231235413982766955652067639025958433721942073071013106512255724003145681835554384785182309518686277421327656774549447399303573503119705550723427232213269715101315494505769623943311409453834344830180696380954061132189844931944654774878402050840373938245682689934049131536125619048399363381974212920806514520451034530871068738183805482522243935930511017617742793645427777159057551068384224846790218363468164848816005047026691786344134557771214098941028206115134609816426546276375879339318820821474779638771004485883694840342133176258379304681353937588267715648671645409623509773002227543331472889785224220099206783641723334636894218685388863165546001224349110460410013051805361298394505366925883574648498329708933589552457109796254823678921393366754430538467132026336007999325919110245060916329004143223993012997356834686770917052871521096703316776512835913135947957362583074771026382251827005950026321024623688957322998021398392034506190215861019512028205229671991595447037051077768767413867221795517790011312882921230858891451338297662159284525610132712189372105204704859991339834085021692948059128381153177344709090480240961882391457036519321418854171269220706017632594647179594201006203378812519665321872476468056195349925194567978421093441947134554461873373685152199468336752578940580081837878128364914381582072931298117931726106128663674745850588238000829197409620473027967975078945976506302592050391224400229402432752292089575830093234278821121632880316749465491725808671834449359218178896084035722670804144571396077302361799304360768558128216459000467804893930939344805759258003770368281152799289475485076963127099239930313589748169816700876841766379712598223653282788863694668321874061854927066626262156249867114588855272776277115981608528940362179970570443200145679854820160337109474701147127282223499701752631139824276149054275196489008971608024499227037795714246754321242621826413468600319039215417862644522511975082551698813850731589199167532795975402758747722032884832971185218699108460761819845059472909804795593824489482743526111701626131556923644964002871811824994206578888605768029456719966508071570365248173030848913137865638270073515638954347141772065512492603847407475177908390558562145950693265517101733449736001118950756119603752781451974553660997924835259937370977172118346620766057102844527020636102365144177993702719026952689748944421791075146179736224884685363620520285957396092678156417310885798129050632036765887630470148354416500822449944656519082549056122393375593528400961663297911350447202183893158258955483659965858930464130753459683924037662140853837855799527662830634720140017127477819173313221266624945947756056686973562428442260955635801874444642469572625649777188114178176724639173554636568081359312380553207415507818750339467828728051242395101017991632297512718322162147297701968365723628513855086370416115121175177273417787954578781812161056098327338790986944350469621150693399882326124287452781394887557468419965710429764674501273909187621406386023008525687612192887979163569912791481062835119876361408173147454307927230234536743279549645355346840774524575439591683122227433750968505274030008944268807610797185934643306204597016069959109433368042287958001542687072807073499090197677430727858394219308998014220678473288942870805647940184654713934844336943301567665958990999474931927681314220713662480788358697194169186261712572332851008831676088104442221770724560981157376096621984712115616544400988130845363077544591309280293876336344066673419952282846946487458340728358589379852715064331288534381132824097773093455788705162144148779788898792240209772272150665087498059387965656053679468767863481420736237927383585039994258407225552808797085231228706334758802641678000246751822960350492580517856041694264779123908642370946862731132051095104982145950846081552828573170107693047432707787334098215733226530789575627401326111629401949657333077412319237130860419116173177111001280017153210152901586025423638248052352874878946958457166185993247072128071204772207246193865138329195685066823313912730475336985871578500297672780126366523947656657392750486857397917403100930456319004351500219766249921444516973733796791057366748646162400705605824826181788515254563400233393791215102580379117300332878164622666480624974661443489042113818389403679523898219862982147730109237506977004658718727449171166188010979088665967409713283092441002687036206189223015180792491230736165211199617522370910324365465803881154012406702832874873930928097986310193591437581125500111953620617818735038508361571887673334902814588281016026683949521513660133458212431193986314935764956648700682020073307489367970666185458811832973510019391300540460878790011734143884571370912688977587674347422572957751748102373590994083094006162748699357174009620177407094526059728083376311757445747937659552195083067696855763089599651020211354172216647737094473088444621110946037475169088949339760950756950506330807972000638172889575456999543109301716881061239546399063483332614772777006553866854668604486498231743637077377404034010266088127363194312276701619626235102174953167071822373159513817748402063275231140402238452838516844971449050782769289369114081895341810909097018981580469798340772916515236307075485051082589825716774036756701653915055645859997470590947682967335810517829563799806763229820834285520154689377628623360552825915925719082042728250251646618308375478613221605832554284266081723035721229826115074852583128948316560669347887184389545918083501458853767930849161268255182955575542551140233099844412936894444200039511078560255786281363210196784045144874720496679572157576731283032491931842410591085899997023021044122863081362455390351920492330815722991580681157780116069789676648706525323351589944648406866986354306835963428707460368904668727749648992068093801038623729063598214199210180011371622410286900311583448186831033703368494839146642924295962088618281672599133733062066952569217558295023294545241894745867973002486105102612459927554569985612555225417679310241046459555852805955932722622607057052748487423997965595092643752414444831730682946995454275789284096204220707850995948798931801119761944491034520306256142114858814256151458121169361214401579089765128716198015059082574139853808732877907554227541587421590322561655285892094213158634584391491414154710396819330644528472776673557781166271300908702801873899354275963742423966136520094069836800696616976078344180932943585506469480454758088537759886863930390774181995066609718872198635679208040094511244101999587713196123164093718078382639990074543261587823914978981043020480342078632789373373504517428664879373652473213397126363902119269489995665806679171785487754495382234246742567281738497350644488957343957623414982058906266629340078193800840450038898095312269634124895017612510569187158768829798036056635325111008286214624275199130068200045555243837053369908739421872365318762477821857753871808103963108078598939889899199529737071656231968259698666694995637795525680277773033197248058489342874088919251940253038236422437583623686153794090469455391313669889985248189900807920770435442672782226964233007916265904546111507520660469036818914406132372131561131255290616121786348590809125712705950780803875760431058352622951433614620168085258963568647659374820332562452126897944188824392972976883106502290852620209607477000131145807012257595248664304487525623224442129553724472341058379088605157960026890138863721512023192951600676896040367520355562427347067841559597365578261654699318203240484558699587945473929490868509696654203826422500716925612926907551370139034560317239180846907743305576068722645735911962415944938860324941917610889200499317379898606909656719076603673760739463108626424855459832459003356815776660901266747764088941610796356894567628703205350942268685764505864606568238106890585012476532062342682488399388625883582025666697978771226227267100031673329044658652408441389899154424957907798447405394930162855344953844238162239685741536693627264554681626190892399701385770630944603554049710441537356953146639310541770479600648215454620687849569261503294186151213472207387748086671365801401918750208953560022026302919685098243342732954077829737203383020351617579718513761690802085061782711418996525195337149010380467680137134713337204408577865640931857656264934050036698746090388423502891775587312730458620507240817443610101331828502120128087949699047568730159239950115391774823145710447277800970995118239278623919911554730075394367905799693118188954027454565377167599283831594705987330438102023831263013133507656421757907624367778925547206321941316007668590644569736972142461536424338289635147886562847453715471532572408866228870646038249961276129931407248945584977089363152918076688467338333456970079898089084835302249468530191798360419013116617778684316279231634038986711235336240510965252453958464983389941551191797335503508753102470642777039265934946668294869646419014782914849294934393524052429991353206403272681964735889467205813315353364778445217427825906134682789413065463130883846575732951923291039638883628113540214714166710964966546968584760736279645603500498266132104186354810941956020593526098847847702061264213915583789598120953458003427339418908291047254225993854236963604287319989357547914809068939054701789445193712034085482945248155067415772596283584925404143242231261649617779103801377635550112123746378651646092334858692987105505804380401213830714727657441194943382696903485155913922563158463745883818085682740334213065788824903583274656610131818292916465020035736803266291876210308536544542188139350743720318074772610938317830982018636125946076863811292117416199407702860829103205776639832012739667992733453305066676064595078264242353960585910184791751807961442192677707658828363600190011137000912291814281380512146039975416114849230907660074249699217327828238420834172540568791113661098477815429171516422461984347778116038480765449224633546549295342939268357103425741303629977156204380756756013367254690788135375886993533847622570724201029530058470467309325044268419046068825744136304106427800041241920049484364410253345167588926380157906342603967275880220834152454486409331793968559293163632347424728968329034927018171247686250765023321795841994795747479359209419098941495174717448493778404883389857915562927508975537335919385153429529188271530562719046870285304479178068439201982125621382375415230792343268229517357622695712709107812740731077162511290052071695327987061314614195851388384132719639933017754494453907711339829257556862815765971155480990019609152275206596599255025495072148144749979861339177123462069069159003274715092395467503778205511937025330812679685016057170939365066062490440911102392177310036372949021111122038362654961946638728679358553820940532545575651495687053657369226898133615135751316940439588807888198365712466543729147577504021421094449822124487236465587087325173706513720908553976387017271447328628929843907027259717572200193873059372854150282292399152170085476661448102367308740344740000929741894892828017597443654193356850795451519892614175638397769302909382986630938707612876174027582672854390948204464042657468394854208538403476873404887535326386643365446647841844589950197305788247407898036292241737716376317007590266482540992978908167818934793853086098934695982492500667669386072912222574327040997704025558066792743030812996911491265516093825958253998073306094477716061030801226455874096101497313864661328838591853931561457285501817595598171665860764427055471075713136889537903841460448768208525935386760433025913748746042104958573271307687680688844047837499127339646543781358783264784947248465668284040426812732849344779011616903640785788019262379973573512200356440933614758620202965651806935649945164692749872179515249882401451989768926334400866995929558927851943693995137491368414504201345924120447902984957793797589825895694979762144593976418237132492656487146020276086185362351434729933181539378458424652068538648463354591548585259997934495056699486670765449449332154517334547742440399686152024612022792647493096336309615222320998452439844840435919814919605032905480782320913820676773920090338834589926890242435349386125190165924973961744650734997487694746105583077843253226927291282611756622941283902741501566564586376183625231956220821462226853095065591642711299078944242951008379450417480121955975334622239119743854651726697898593166946378924518829486326523107389542476549450886696004680728503908019621216950099733089455648300907841851017653401556507342329552432749623647175561646488337608966577377079306638958451533688079953833167314979179383046836841462850322049039020027062075530224351809811154687417078099309287930919088930443271815179459218351374177365634947649159173648612006549442782723280820168290439565671947467752676040419978769093840304873457781190703885860894902925267201122160530819060059759914259867848093543020774146948964150196582827914473138158114100310949908615807268837350510295618935118215819761207845081126907723190954016519988617148103915340821311689912581870866611656232418529824898717238426941019348796225492079938553534256566741149303258108518760307996943961736460005271078508886376468022625724941471753995030534059528675284246066551163797874161836013801107026228908450273642820422467803594159991130315307069823819426184120111823122385673107013892377657556688114432855672486316679817182534972640725379833852671725694867411657866209355450418897462563597308528660136036521210476217327617525066445348337738963830139052643757046910880746464409457742174447402016558704997633173791153335060332726594968751500458114374075291131176647695527085993629733690636049222810977259107928608484865288714912179587809793882544937157116120060361692236329297653393815889755715795752892367990334634670982584526821129874372943040153052992917461459987718171581460615863813668324160308028779140162874831836948774234807953250830251445190574841426352968872381061528472514355934619790224996058470941909821540260083850271199175927017601527715899245647338087258817215482121024803246214405993365522336609292023979555377275794068306128959914357581803617318437400420843617786350515202471599777471951821547528761061629179085718482034167715226661922198561131865314233045287802934179232173980979506956510546850971951751857744174347165212649282946866207304700273719008044176972845645176814068492682571908298447820375374329629536693850149851284678861905856972433072379427360493362033594038719638590402155129759334388635960037754777681348696228050971584800928712055307643985872734628328858157978528064650509636075820395386015358418094363296319230034590527951642735884523002596237733553872765094067917230241318879628652003874130324775512532090211909100961308686218602325338850886257453921397168316603845348364401608347313860165982868474218407985484969454191108634365952281100178684082070390057091746182856286040548723269321320435745898093204516561150243596200268315660323084402844209994590389716727628445707249941648664663480095527491282365074990939846310438019320946571055118679279677200079641770497870788427342987445180114277755576105657331988601189679132482393428110056688849703140545994581221225014377380508359220833284772042926554754440276651544512789260849613488690490537010881966991514037194505588893998956482738374475385611341261083642346691714740690476916795612766309486370182257966968634434918212766523514687485666719653077206589543675399417081356765208870310673791841716381962829056760338073769654447763623597786817549855770503105515012615401603275029645169128120842627824932252222765369419602059209242453238606782747812563067310025339272822832749320982699500565886112182235086709527539999147691299583676310106355943414992692817375373839848074478100318949255507401695907391248713953449513653039937050736040696174550531883346547964595681308235407938227971502133363834789051141477522711032360113758180275231090425206782749080114015265960460368088385819024770242929071197082263720094753675142064798085568021637830041823543802498489644320607631107505505183464762047341954608915787303524215715270467848271977683914024407051526684727013850167006456032392142526508774804422017943375545554606558326761488076368911867491137155645943653113841556070411987023011605146140591946726458577716512412809913112807422736038492005933230867174851196763155215430021517059689802049374648608078413155723923830772465686260080196621293043476957675306931390306906034695818765611576563907667530038339516079193506428984149884493174052082955945798088996428138817603345887817561427239951101964379582120845779113932774352685240345335470271993671351550044924665581778248215121993615801537723106934987792093945310442044650216538129328461708842952140969036451384842164250958431977661119404350233874010649795960646425888307360018633098115411765999601337144601493953744571482149362139034369249515395960045630134543995317401771260678486738411137817218183235830350688560611596783473166318544043997740243671696068111491054884685431312421431103621226542092436839309196728645001143046577335196209125597247475499855853609983767846605507358426093591151043819424908128710585223895804964443509965422612931338144298437803079237016724323968825320534339207438563287893338839659624615529606916404682648165762249206766380850642691850571587895331965344964497894811521553660735105364361069834363304567580173915450565938526403621979683005832265558381711453203195878630702504341708443043296508605107376566348504826500760944541956364126660405391996032887756375212803544096469537069664400202613381836849477271080656601028749554055457634645139091985670918555463294397409284056448555733576568984460763772583476295569259338964418003890906032096428466479660933781210670123348029786484294346610459722077455602297574871135160359055009769402897254280410067432650505726591457208213765323482062543852428942818724641420682259077918801010887250138672321514393306232894312884902405382145408603611734544632866776914169249077672500352721965277777195517008559745499469447658676479640733740672666197144885520775496981506700552683750444032677434958366669931255651448406015765325174813077090006727823353381817428984391192586873670606119233136281864241869815239144330624967948994108342716941257480821655790400818080890569364771846511049602255463406372587022740811101697731494718178173075188027805998075030288971487046626302409246698233518253610917449371559634171545132261032363989801383697131399644520115379545805636251998068422948346056624229940057235318339363977228603283415468109977325834008363156552521921065559223241500684975421378361646052929220956396848904495301928506943206739682598444234025492173110147235932000716982078763961478825830766831239523002286658163020514889657621256311650324299992613817946652201922823630562128438566403315640734658361436894522274512528028029291813262519249175159839219785024559030110315998829709621826298281747202493794283216259838153687193381689009930217209121913331128382432668832973095086380259220637886587614314118775300372805841118167563491388724304793796494158569798124196632926876067004716742180128938559337849195003343515883120101937636848698289358084682160285641558411724256216682538287345193061569203226543606112654777719414579018856866896534065252175710008447845848245581499506430026321117446010241187498919777041349014431212568789129581338170698810540044017317326820013055259304837327827789946861575066278192590249087794082324139921940408431320492013801883856691923934442609068383479928387157821531243471450055368715557472717775870236649417293714788459606122742120064918268350632462326222665774666310841114505948791592419986064201660185189647402274338623820776743947550715925900789717181129949787258153859372010199840419065561943751964301808845834397490050258032108161732941343499340263653165432957752341340885524855839951783257544190716349045113779868864659401015912936295163674617330179445570838149522387802681548592645522715142585097402586700805054243845953673303537981525261036160293325730305737959587775121065898307365842710550680633021997213367842418084794751540836780776492826554397586327025040236596730351636075090080140481751993273675136465893597012397320837074957626202540127625387963732323994903969456328487399309120936638887985293163628717600280073877342497002102178062449970557990132475979507224499675596206663024060376875171992178037913221101475279497336137583349744718755107453457925730248255926485114085140918301696610865695787052862510484888823381207883473351234283047523875361877147552988358550850814878170120926432906841062941517822523421278324569807875109544405243898304098862331269152270096734170523737107341143210780155309244220024646727529788579051523354065322948850245866957972123235677373063395565213545882615162238440696032416375497080952764930379825504734344129929627825922374944546622269140001248193862070535029372777564039834400630741337984206347702161733256252934393955973578831265263719487481221041436987972710970852980318983064528766571845985766132264859168333288667246806229826211074684973889454229117728422984843507628185132505677669797477968518063532772049022534640751095308713351199090578587757241331732014008537103955653483338171434738429165144113397234335067318846067391149829651355547060069686376209055218586658996614941403839735608911941133723600186882839233337119046235029403259172430493412306441118078160386608828535446768295243192482872439742040105669987187960475828133386196382120469378332741582428900209395572514710566347855697723703978313270248227552643780066062790416967627684277659881709497221588825943084852886806983569644522135341969893962772650259429109836216074453721861714137664316933491422601054237796704613608362254096310407554115650337515765865099336487499022462805806937439791465161560241964248519997488088253644744231715442235281516271299442683446150462616592720490454010188513691199048403149977981079844409047283525567798841505937913979027623761364118142078423060785990144360715052856443455087346975848562127086361556908625746713971091745981246900586977618950685078213120990686332981025499288883682953862690904247230659082112354449958667230967811740838026186893523678888853675007243682505704596251480576157680880828651066642289963201870795978423085939877028147872794950917714938720922811655490800289908604997481624869764692686587931197575139986539066521303103081394720840744772269774108232343631893032566386636143173162640321307281375465265409037722562511028592663421398441428960757809050587179561572661824845536201049762015602408512455422902698160896864098448846783782811064995313695640043501446552989784484666045980471656266685884752279891921487028992828117920864655576345464855873906293372547834891943729538550461017980179167572077166650048692900372627144487338398626691352156415232471516558107024285660860890441088626864556830470757645259583045666590211650365335249227998622744966066497122334325928726699690115436513816067172669112603873135329458535706942408400658586521642429690767223492607826717980823597133071078016033451735689575348729149366440167941984774352292596786741186147769362057902127038591403627588621852818166997894657018676795905418884304536621344760154063133286114351816955102175790895570514218218777725558489876583740240321391348812300368268963775779846703779672994850010841231319454131343037485153254092089979196292302571922253553998322431849705295307030331840415270311247183223460583338494364644218938064796862334878175473395485801191804214157826033470015702722204442781581383915166066456869022851597092828135051828337766845419097563960254585121659008083622090163633235026521510422807662233722062264150813850261087875443775848905081383863173047685151502209708202950740397961763661642891092489129300308906536006421906044730167078883357734895184526434698651504918039169796860592977630587078775489665966659347798736602624141680229263429984534457238208843923761001467682591716670677577967278692350707362178290678717506554506944791152418853220602505393255543377385641692760596130473839879329434471451294913971325942040863078027358200441189002054830568588036765033131730940753033542748869402428454644330840081302031894062978909140306458036580112627897030227853009210520719952123113320308323410984202275317228102895834853875047852741287953760451952170989386624673015378240514764036063692564139461595028000136185499267877729512623368902711951934436666048686956470870879257601940835826071932052148841710507351302084360996078432462627946359878431951900754384376445531368742386886556603435604729919208488539029145392834594342743718408019584031040554360479746135584291833998803843170978455131574448439339741235237427300962095443634297187460042378724093936197704305222099233357586631144355211536737547385993177856237172207363868144331101529085689657978739842440818260971012828560426268539902039411742502618599618644350923778871690208985615698620009237042439597756580702846732908799418808712525303125000820065419001073240033385889124598864867121909014392217335436242212387055439857559189207536918336015882954895973604152130460306222726268946244154489093495963557572631316960877998455723267218182132814144213306727271273762132377018136321466331005977561562086879905684668769199246389418409334663573659832795134470469969434898314482382597394649163410568573073218468415885027665757252185743682739287854121127480533762310097825928418364272420267438225381698512950728757234641218502850920085456754879207232736051775244884132585232390694149415380293695143417162406061721992516803818648747307550770689799178423221845297036747293448086478199148547435849626920405497773164726415443015391181868845559564380722995889108424691788988821052562867106172315243771963875256846213682210964274856537370956891866778408661317298849458089153008763818400288059089339199003346060014254976325252847687298540277543202371779193591322756346350507550555047228362888164953437318107342167945459634878041299479211851911193440807231792729064414317064328603064169207603964661244145453660848101285543126867901823426466060814628310617023776013414774332564345928222076786444167493173309458898407024764577888261369109071956558059282815701612593367255552624669048964103039438033938873644465648601399760415820912458927083132450872336024610361808856961678339639937490499494207789806786401295333342739611165270525945114381039181308684001938688001153045737794403724907016508965108083281805122666227791384021559168925765219228837364666682719085286700052318801834638639831637148443496533859084562573741810494279125044440313732704095371450406767741035215448855436587279966369496483693382560480753577694564626779432209265052566738734301730367461890176425735904670875788863884166128599086628731147049188362971463894928611694363294077323634553064433593487185698895416503616252624048155226944186464915091061981301621776260033528782137493802397197081636036928258257465082073368913806488914068022385743879956468740033248482352660797536674415861990332352313809509883273106620073098935641132324581419065958028174611159732773956726550415640294897476534641070302834978702500039637497723492656805330557467506611238762783700019768343339070506264919521549154521778912272683363880067038211545137772061619236757232424431882682858381959257947336294193523929875419929961684623950501148271953853948936726218327718564431592040231885254913694663764229382424007648111472370084702347273631436102184782124334143465416547589680332659176412293498878948132883352244389160721579074164389273752398232477997793826472853853773416537234960673446497335794461127903230350141110454577204195439037990686371308756768317827750316881536091511075778388104937343497105857476672007629031810303612882010698664613075606384304613671985112508639952910336549097047307367311517449346879497944409722649034515895709615133620766169792047979401627849851734490792742131989754951458307100069754313920841545860315915313506178712023357295195030785613505837318575434446634221948153061703834840112490604938443041007295727078332246345854991874911337868253952265391564107258719494838967915926558875317306119385988888020357221346496067283834667205538764509914185113683597118587162142497575024364304311245374313138543124755500183692582481636650297468442134114136826806514435601142839326095960638935326282724394535644522287940167587054845731304846977917195673980008311671587806080233223980878636023411689709981099685190370178539385486845622775490516334240972797501352854011909544661314149815410881959796846883027893711066441445846643687351953606581134070141385820766684482259042536739471377078411189247905448655144673029561268192660995211697838800417923268430965903630869082678134894441605431292819205594067815278316982840714315970570595767648663276999779437334216285181943964282781170671798993271639405560230206490884596392956544135206067972305323977853707106435281790247903723517303957481612293819025703082177931421248366315133381825420360242358499341003768796817484827947033915725011013434176309576493840292643575343482064096711794336059579983424643585499009328965407624948243746472759440291994187092806702130333543387203039968470821539663841400855023124227445068544836974523090045228705707800370063667324136068721450545609059274196018369260381244938990522209559444767714833711864109226537329802571037636106275001079115270428868341647917160227257996738709118807570928847294011227331368837982496116523704397763335803592007005321360794763140406487933242662488466992989159260968471751715380857921784263619606586552678832355809069586026782830005107652817598287784943749238804230671193640571060079412513334289625897898785343764807501735498859584050153120909892032115670707459772764584600474832371797080470139485399365530086972930870144654786168237647034588536776579442475651807955330499699432306783246510804105011776494033514962564036749732307118381697997918194946383923382531370005575973734469734208019669278685449425643714736100002498594198455693811069909614793261103626876306480431585297232203562203186358216310639493237101849330392139515288012795061115020525236001377135099724136378212901883499625757874268852497244477729877130563573033628139523787263051588966112663846493858567846433095404523657952835883709373500269107858020093643177158748907514466009993553377105657095049900136303495990509462237630528849951365295335633525950064719459900847027538805024828789888163831629492282740866131934260479056358226255810615344329621209684984589921430576209982552260670403395209020409704247647292025006839131353967392320172001030650462732757175979515254469304548361334008980697198259166374314033360905045651135815866552506286466976260559816782353685762345537637572912467710823042259524039010233622893777779553782959651693947447087930329844901835873685077798977169449098500546869955998624976852982100490141345579339585189662189550862203594098278217210057171753000979054539019115849892977608972686799588477025558535292270722103844720427550972477431052808983550756442058675635508834050337227085595217346099053853065439232242752972358106203662915879120119291138377084882771396982642291836284376516561700292371768806930183671866115510932202045799539924354007496209641546653650395622715241987547427679869866224200226263312052355460139611953680290838308746166802647622639733981131122761272998223845921137472042983464531530959478907761532262756316479905178544633064011142817209092959875607834514183003946348925924922058543161451909422225996341510324533107482317116780851947084701317696018816215342436396045752758949263533568068758047219519523487203191027927266277720487757998602469603573216675870666068731712458222301504528574774683448523532516561439619866490418101840568208503452593018389877633750899826058870408224527961622527350779743139332347914663587494934740618104887684741151990519036632158020993141802746102884756323603992565051288360913999094191213592333081131611109332789860063287909119654722047606984480088557106979602598626835597940812902809563745598834580861634163313800555226997760833345468814149243266054222367292366979505842177037650253605362243870571745601057546592227557696207021949314487695588808490501409368646682932634672244091185929750059514479957904055750043789796479138663049763119492627180450592834415008276914427369902517807238585602876152255690263422115659367844904768169846305141638235276641132421016191547527233405680649230526420533663840343217418597625893063545595348645657420492419016182920496626638391942445198133483428615880222254803874960886936439565051096826754033291388461668575991654362283422517466913522673333991285551079850006563386829959631603297906772041364142671168577588005165023452681378198850546576415860951957600366466488105157166697924817336182021609766937666615060593899809466327070835706635382761961610299469465196039863576026227195373950976366717977935695130155710004200980164239188516195093971122391337492592189028329892981836131894260870469256981207578738209533772269538583552706002425262363089378271081735307753707199567393411092238047654846323119044785140074050303240255223346300517302638611754998208292731028345066390453391351798355339593847386689052208118707028221544624577766792264581889793617316727013755673302113191160832057928363976314709109392087214038486299299475357041844571790075356934660102815248444253262930355308309408995788207619580528371333644760500800179103673930755347841144539650657053662990946757142235690779189626364923269564644078777540509559227877641987182817838159028455134399980920485177621368211261555146060507825376518589035711471178047880234485264992734242001610839518074345977922594090803244323692609546552452179516623301660275077353685537865253255225229883792204601761689750171380461721059167828251552590532213614721990403782620970328313678367253211863753394457522234812040317521795171696888090180695321787640611097768062125327067594488745905030549067422992828348935546617812216877237115776667995607873397901500290561984451143760620494472983750855742247784635110998268372352526587565904657274333791509668123020841070563049125958226739519353064238357024234426633464558262971703930742874409958780189356367533299230416271559407097424677618993126889517164685669988411934987878903300295553089056900792766539534556126221052741489057455944140692067609020230993432430482092599608602538215974514795090082203906558669341528505322419005013962144739194393537961338199819603681063643772115159950810328502576067000084608630719788610597229960172216277716847388498256285490081553490215578428046476036425340982373026869226066108816330898309014651009813433747881329360887464916437172502498368485221732582294676357904323241629201877258853566932700617220000870874145354175061788368786023676604501007437810838276356576617155386996671816513268565140805521881153355580733400857633319803916223213731767585615440586603147754988524579171336038718613706809193265298087249817003206131528879474646293629083810792574100686004871670837751774842725559149898601528222610266948896237780606073838210207865299131445149753538410173765889492535741272133442208326893975516698595443158987084880345939178147834504139787059790253581386726498106406641789119961364354778926600141245863270170751785252767628026758450320546223011421939649451997103462803413912625440740753994125407670278568498997816810124394118837783751905828858111244124768412909233641294194850602498372518487824297735371507735659831472508295388978111731389304702670631425814533513594009311023837099673253039120824138371040149022511104361701545424641077646463486500036811364455622999488231566851677306374400337139909677167265271791054473085248088546206135960383995242848246202888957770046227566224851024065903504114815339587866887359194353627752935681816631658789574495001083432493630204791864653537134791732403570970646308475033871141914586025680683333409340795390293442708617914940781474339990888202532448029772723411077606977584337803305888298951449000682037807881647959919654393852352158229070916284559666895373520117722288672348388357514783267320240773805281109043051394692857677817016167390138662415323830855211891889700650956303503144533965591693186086995388963067696164256952424583715055475379535619234580402600556530016237890100954023274876406977108858119299105926226878334110852511770535323897119808442945531467558266323716571584579269242434070397771474279790411928796154098654348508583569825855974838048715908988902149966089199337440585633485889033806025359128119307942267642682249236487644887515340971307869136953113773026672670057127890776295373516039893974822044890017176900782281732220674153626442911493506432473931126197006550591942508814652172195501012586804358809211946377161560498307832574858249386422373593418069666124183473865628419548345902401729350881369790117658935878408987940050600077760011341208123339590964724548235941328205764701755513717756812951577122102993954435899928098560547275338087020820967012930842466261623016108071686004637356120386379915932801793759126050017131305272025199183369255151132547645720945214182737333077442977408721623260729603590483687340920782610989558100994716711979312318421346649501026433340203012303333416156820759006369742891210968340443570958570277654273730256793526216199509679190365301178640571324501042871719888758045666532539375353143634040517946052877969744093352926639315614578856004819813132271523530201027671374879821204030132152487458213484378704825750557758881324886728992615072903007294268116520273257505053814972781112684331121544708399140901655296049852343578971151024054180325537818503315988899399963553494128480861281091670466225277352229074754924642517229486028365043525997422239171758633223046067057907713198205151406313845102700394269212879817264881325305474476874284379500210144028029648107583027321430066522473959163250889718233399846458695491050418102741366892733475119315690684410109705759303451134644702304076900946326471426189380275966790629871402915373820100812958197250502270945198445885201988926067619934318815336338470328400174802978749577953717352344028081473767467955734858256662491498144226630706535603533507700829995647656372261604895664073403189428734000272577544596203114652191269180490814675828591183181583046682248515425052971576366422636742626866867882523235151183737117877661586864148791120960575899672180364381441104652017633234386507277303102038383746202128884726071088010913370451591563507474433424150099144114387754711736159818563962182726180146994980127523556853011969041227238949615566668122547071318199707537666840266629503122054039296409883930322673941890676060448214512101823932782168081285807445806399910515850729385883650617446051960020090489743431354861108368092735317853029222527972383959344674973269664931195671919670678068227619500995319563464319753333606021400713862917553454912807834715710521961422771380073431014353009475961703860837644036817551049987341011940692775713564613343384581954719200016958293719416168034478657000930644974012895787244808368410099041951423124019605406417612323222104097128260541944724844222009821043184440646230883758713239857395593287400179199747247449574799247667180228859840467646065550804502603491934309222843681467676768404321439226236154363219128770644024223702799205411172485583549835695380446568279603805416913663411578557566159805257967076660431063399691352944938941772752866881028977184004265393366191857853005905375037270626627694219199901015154850292395293185329734749875853016603714159640495134691769743191313708032636090745250273849318104208057299733901679798310756078825274570127304559706320769257284668908869327362656102623185433240628048642643348988631495803915054889735537065891939494927094838183258923946572571014531754414332179249456567511829068749530413367781119911237035448190982508269313022152075089915832928871803789466490544107926134828619694322205873289054402712479266232349979646896412027912376649396597627862927852627518583418149262755933267252240740962285852910482933274678652651050127042342611021390642987952473182073673004406225385170410212721047166751070279522483937408168542773467545134024927894958905064917700106564856302495917214726498391796423837287722616193646656379462654562297811742564471273657174691503301367662180103455399237198240578641913637000174987981506441603854658806436545019691186744019806611166747764104037192531630083460657436658972141021121075263833194028922372948814915799768655984906844041001407763634130849128053612937908705898100035689164459849459486647272222420413463088944487989121138597332659821613751551427621117498036121098641895074060711487696968478690463897410325286130064360195708603424999833357568096202982531904533607678034012447032345975385858547829976869031133262073030127927584615842905552188936298952434105560952933995727522803410193255439355545302428660112215670659473758974826983115831176520666070127733168422363297075134197207089903689025236590611112694366740812290813882916075645683269771896393397148573420934958235154228470307613566070390409978742272288667261614109378162219833116524955615110730434984037239508233800432808991885786465443239762304923166391974409419730348571360768376587122435833173562635850714042414208456238919555390625478796926156049227552962503409249114902246825330374234129480025161965582949004613661764911719396913150981679897577216497872576174990380985103500105221106130931301614463401806126168697778710286754400598718518880425935236733598592974707156664091525841302105603678668034543200250285890932829451450002528685688581047557119874485110873075112600515960749359296752041047008295456960063420221116213755834994172369067047543527401815763808685752701989313132177454328168546810836679983746687709970371591262349577436459979097531489408311733228312551029570857587257920608617809447730690242794292142353750046169937484872608971338748812012843510828693498557533538328402573169948648424235728175765081051794782622910600504235396517304721257230437367988249461531180863310687914084520626723923033816402253479148118976731151987681501623556165122924560247965115088251816207771459677450360153518114181244529451087990550029266354184942477409455046625751098301057768982690429676518706084754091987278306026866956608620812516820877011840338079214667224707742986438012569297199333529486881917259666544142014816586738094744033341042727765501555608242244855135395301936326401662572057278073291362149082692666738277531503874846846602006830395409919605552199448793778212998758095707139486506491502502805178726145348957650754511203711154729926735008892210359619346420215102228967247755161801082994225194396341486225057784688174488650792186233135270547251295673821386757630172471048310446345982292708326089771989459772347043037741798879683072171437438135834653170069353057129456500626375206979037646781054433201151453456106657610777759491835692744119101015443940990482461928023716548432754574556637156081126560192108159436626511656614011744142673382125124790405837957806244693884015609342485912376317397454297902305877794725603747746699684417234622458820713806350263048370582723497233413082148336885956052361480290056931301196933089304797151263345937080782147431286472928530798074108019440008930085354006130077823071183082299567887506448105944427674422071343345342358645457314091081008195721431460733940147602751473647184209190993715301547100874087643379437410406700790250753055582835011604750375624601146651454268925841411020439911065516842816674816640558298804898705914462900575355112188091993339500390909079548797468628196788681580910409125283616938901696580156298317477260528579922121973682768443376852651743986940200880994155728269101377022413893292710437267626828546800772686046326096597370785131866616141112209841218418157214016832316311005078595351439940176135856918788499575783435494072813038506615793742397160726168349029299483296937999805925569580167568503510982922430813324856862931927606390808018322750416398467402096123905966218367540437922799457641159174697377820723141433514582022225644633783649652798559511760358175683023953159255576738533627207129877792915153801737520538330179028148858983050210279905223042813168100160370284796336154334456514143102250280993864198532498015684929880575386637785290390333818095290051984159757261454698319579584173826925124199606902927167992692985391375323337244774126526849212043351881071053025854151597487529458536593237652809032479611300901436194234527508467226669355555555059134359474859589456544875629742907743303395761641952463736669594398367413329350776582830545580802987549404610692249808567237180053716669344078067035260185557616174097473630762641031672275897282274732720506809548912214096939575494579199620959178230758560887050471233219145814476838312058917266087833411638481575294736797709397187275851572389081233549746925369452706506558599717190725975087124461876173287807292662512050943866911871747103138404178939727870103374332483171528052581737283811561878344249994014536105301742351981096887425505747184311739724602059979568502020709123341347954291256913891791695856645369375903801915948708541827633875609634687479765617765573198024748968452930461867813747251434086414647377973377653381038502841571373094921699839651799331335476298785628801815385864529641701796035413987631023524452664149279103139993779823647354690489003727873886238421829030026434740021449107665860027245570691990395418921938575854106357926891295087594916362597231997352432692778704982259474061560737328655534100211222158056989265647459082827786874061376082034688883695232645803846182237647395304357185284440734513299154802878485472472477539549763699896744351955895052111155939608380269163302044193274272599256916020671356256768366837636227468182012764657464128058234951252543423006423151871422693570507625224431790427726232499503206764677187602407750894242783045523056715375862779598294585998078130306586639284866672545166367602002618970291200086295670983220344251612805572196220872309077583872633214675656170433391021485698918423200307041685963826455134334495467735234351792263433037242498114747983680429600249864277096805444537424324085364807841954908010436807467905594741401711183959270990456468418406923493099701442432772560548323566210997347421563378814576719043126700700015361685093646486575844294148958528668058850311912188530476876351262360246803778147095655711946810203976562976886555036017976091010176686551148300845850427819130597554717849889279447181348589653665419609392099849604423441022693943208239637439699102166782276320859725080716164234852468425243897582707089236690777686959849633763317355918602549857930047716050329633484070437109983976900011602614547544023434836488677338551266196270718359049969669188961903472963198244231887528147147449012973768799736123490535774699065033747363387581268176595810111814548257008396728536003465644800214678370868905314879744471785427195908190438405400130391240119471821491633137023451452858132510920900702528802190673125777602083887404312534198178948241833454457019097098551511914744677558836658438972007779636397278504291255819281040804041131710306794060367729802306811080938023478271323803756437443339841207994747333138707527766409842803537220561373363570317117957469273100547663746106027842628009433584253431591650432177044637256096914225910163438820518371243348873078663483153678154235020563368562883406794670285904590446745488031454694651701762684996683845277725476806479838450194789126336728424595880554745115849880738380958858581830588602591828255914666647670978169509102107338143444706828607101983085575738706412173081371971980033744662472415916744480605206575148697633372697682556983236573010272223966042295019198798282596653130836011526253403193295018008160830617300325470660487207150442938494200840485609771308410711059836886652076950751712696257803534501742489518748174747363597936082713485883320166459667235311418259493954935110864641012741673810734242970677411994911494276102786725883791300575226634410363729339612060982399657306961424495606959751125678930085215339483045794404503705144197103394780625661723340632522165502179837451620577234824127110771094706351551531360466489189020993930528761928749266140827218291577516998744898481611688622465270791004056202091833109833687438088807196278506752777865881778024030745579523081563083028931590840794475182165365803419327642754897993108662904322876748551955952549249474946538817973826960875967667716410158601552996426284554112758679994313800116478662431217563701604772854031370086980983119246289490957332434495680568378073903744007576871187309145183165881735254432174688773663186438299164888534188314142145107497671123237709848428336282292529772191450869280116521618725483530681014804984187650213210112817261877280601026912079425795896153569587647568035236623606033491426978398617024757292805412548107984388638865128756103842387783748720182695756314138980353353985936075732139378074418948099540133989833977468230879104963701981872229612258319724764121400862408801174145511417193119801441389803503577248294059553657639349904430054952405749955663144066551091641401996950262495077144948518837016040389947461070221877248078990034851196900600859461228423465947352738019934462121135079517644911420982115830057904558748734949628181392986450734379199245839756160328471460698852973282690328999866107658872980507310390292774472808307673950864361801399434594651596373440934755536524158730904725740496922091979872292764699010691041176472788977078612063864102243912838934268500404694002019048678216806721078533961944856526615974064797845983653791412957914862178928326094262267284177663413807478692595109837631796115958907071336633513674057433655899127273028753236577128234400270193561379191030439250260613787766695785722016786512683027222495535928366045740045028181481377408419894582113017450277545831612546729912890380250201831734559687327664604493010558402894677815045923141058178298898706178433701063064022550640048558944828018864826550135681784024513890558638999693254555073651246728582033536691841163175234116069931749476626527332260444543197770934631801908801587058086679229397861261155560254101170949492181750360569898211691413347938389527291141036295825775401885194898761851432131727778989276823793744870866704313614730339101069528042862777739990421435492159655824686785787354618973088901067434281667663317887624227275120735365245945898041996119411233138438525718178306861268947817042468238932420662363094608662158818728426002303764501336426745364524232341253192313956610326403645372894293632906904536304602753328674411631086913551574523681882211835554547594839087857617219786766771548037642950165927862849816621277978006053935810238099379661522788294784663074882199602250176345625634698385880720404315639427823761403850681573341482477912345482206838800025225555687537776580234970624935198223856087908502900167527108932440560953656064108647754498324589326320679386642603734131998780418086792459504975520668597944809767076553446647487722645165976348222060701930967481719899290831807268085658140304945649306645325373551578510760371585819517777941239830161943138741781400927457997066497746930766015454670867334261594156763039249746264449415869029227500606609669156235770524607716971176994464409655581019563344967942113298003649621868114194561816051067872213223069877910217682179151938148721961368524707708700733734822699943659059890954307606918548678733843954030474915226126092479825578051968673792325476859624722683820920621143495020535489813459108304354904146958489700745294832296059378667251709565564636218627006873837556016330552029100693106922153405058664332247979238429500736888060777407773624267734479550059801669120703322715528288836018862960124970975855150480431581813229303221646937655383319884781971590737581003490647031901698047527691151991161050496060452396367833750816583422318583766155180256752777216538160046527485683309999152127652445925724426804470844528843891975616427872655072842056939305864218971457741945028789123096049029950588682750283614315843017929623678202995864324731115135703622594242301491359720020732670770041062697819598969485012396239730688788087482156530308152224022140753086203610888597688422274591248346391061652462940981172795711850147987868610532742133243442213338799000699007300512029746805757291364273617191475473833288941647186360315660724326542147014520340617360620067596888884300853079285219798189688119091727070888711461293377570976016408056808683979329299952844215821472143072498582846212887340695276851718305874042635599487105210753027054530527310516907320054419808109667199906956842091324905398266602974868889705241216757606926735441074376313451380790007204592150438720904058600519890607269234982827758003985577350802793327567649491364893294558822779583764535834606039317614297645998059273078155354370106629005580328885692534420507347047000164738355907635030941825452211078648763206381176729538926877620832400228068913950871892173598702155857617681660355363753026014592729234069323777931589850271379690452769712556214021811095704071323361948739995219573464213440802523209414642893135519637275714286474094734927798077226089673219689372490647403728874070539819280065865353695993686339522524933456944410537538999802696668637663898103923423950354793235120951544747454400762910748054140444323321515544059121773746206877398221185194336253402099144367505968760157695364137172659190497968938047885872918405279167511217474437133026249622124401782661484528975371178433318919172486195595370278645463972526271414376716263645811240989220531891477277204658483641989057795137892466459529453094193793849888383043167069508633384026582793932906792346611635261268940772516191471012847116046783303034009042837059328259363009511336673132966853446879870752497739568158980307699727805243842726562261547449757955575354295195670150718272573493193700568262588100310227156032312767060194898751943092609309958231278399551673878875655195693075872121878549041740523217287050539590417130550648944189886516262427181562485248276786335980704997068843590646219901181119031190026683410316181505272091703493888002125362852971715717870299732248410581779427059305723226796209892803440936602484859519644064103677001905176500570872778701659323958391289570393776495037159091984898950452503865847642260865965408402903216984124964535046555899186073441065821560213092754250134212092930673317295215076640894243436468105435419503359698068572318390166339894781588869463097485342056551368282930376839318420104245941464943132886767478081054968269081472600899552973565743254022665013697426663103943857301018330486040368975654759547490975249971617283880250864177483054210459478115910820560710306826239012942165408591171277209851444810526934823678619449939546716623521218441352888884714796450935986559731114426171625252796320795893483689640100057570029393892329742597902077518420454636718624382576223881410144220358889129527847126592665961856618660102015816862734662485507310832658079723600077433530615652011530903285050587272601079107950767345089716047074871999277206193157346921909603839003085794757920730144686001066553380954106289948855193514946933842719220032723438224488323650637008197818440897762930692840672163358613720869321519397840305409082421104597175992825238591988947738359412090378256499386045594777740094886022859513481587334395494598608944567496643990850098187857952566467963137052737495442717528123243899273037970984736279794598250225619578809218547904607330719950913563037163284234355180016865284810817223420105501973869440419179426731194239263181471739506637565416078514334446069016088209077498186672036911759448279676397238096219600785033734968205151171858483201309914059125177549474606184804726283704158602364382464282514721857126492402924031454423202556853038018440934172122852078220792098352387902678332590010893005439146597455148428539143143805707245486703626242414668108281367118590953464985475637026763446299474992881640621558653592480129027986834455309966637770307369492466395658427107722363563413347655224850952238433587892725364151465401763834882917072726739498878085259714937748615467515895917168932069148261625912261019749998597904645897681915705916342542289518726386671160008154094860446551621911104536945864630240105048346930199169618982627340095720525108236256806648747043255803735618947418013868015921220928399095804981773649235845877646885366583108865418465601008744564691287657054241894285525551209396938028340223495435513923211509132390751017455731498510656775602005479322146418628805486383619020193474095880325271856332240698793861581635995114719370596679023749261109007795862502384988861570319311337949861634800687244440475178388940427494819696034144220648309060153178695323663608521262339555816144623824449536522887447069140044951020539147296654054444352748743006084165179885120959439963185555466899722433877104363997393487791292527500760220818300639841697694705245262349750481131333913852421129608430478940966432193495327586623665592512960746449356504310467005433384188120824111938230892101109505218160514084399880449002800287976015991122562228011015645947307767255834656943952357078427630400255002542434696125295768156621753168041032404662278710833471554753011435489310093201531639526939208475568140655647351008189475806697980711032941678013947899293044272139143517143343748896534439557682944304737919477630148327202541701111702457882082569961060462020097049861645341869298527202658989448672782981138823852002600781026775983385699651824838099974450710869022571387848036678540941672431566395108825442377632575834315530744339766069701045939964219196436746615841716621504522714071701358082013506284614927351391742232269701399847364741336604147289851316987814426365546654734891397585029842602482199336039126148878595195935825770822905296382444102426486023903458972102076221264723073424536167071919046091968255401436742376417707626506257112850177612401635879454710839103273449499610077263706456325147874464694385369646753078925973062657208747763576993928347445278147604801007361767121028314017689707023425541256285802370747821502211824519324809738580085420680105059072058287443088625688758951415337221311342700120922132405998071341324648518022208620291936155414795072109027341846965511758508135307921023561242241034609990531438858244713254117603929001417112102525832413156942373976220364387240059449016862533116748526475625690106672505618008192957050327457423292951562022501400536745886099592558643500849974400035036326469458311539940692320114907242992792632400482647052586072422422127540074672009700328958774747118613176206213545601371738997587461269533341973606274741314237925249131863005322901214999135782110352494872202627282511047101466178878929058857212140891919325117635080505477291434869369179557756664137763616729136135668843621767603270212798615904422578019374729722040489918408764832618879236568541034305748689062332277219708996117801598714541465613215063159310208773167946179786316978906098990906065301912450335799148446615815843967437940730336106734874040204704619948482326055420945541924991917365395612514743278784620731960238492642237746138351110510664671704146365953804798147324376484851414920704116282284097616456413595149527650068034490373340553410769134877378409994530344840897198497924780288223469853673886015673005137347071320241780170519289825494053943676681120652763673807561695464328253388403370721104150365601535850146074657745207847527182395810802674341658939441387820165466744573890708316421003462959230057595815943655113712719481528090683270696577155655459964266466894682485178140395851648686924357114101810311419339269590447355251414818875463815860377207548026964693290265122897707351071614234434192037526656640628276536941303451508908665913680686699903383356022865172554160440535940801463204328040132177969557449385683092636363525389570227048864254192597832849137736663363909604215145137576207414106097358961430259087329807974886088541756264227107337708358807505119176743981116789271022653175819141305833774409563381941360772487384029441849295217685631233634344096837764724153573930985989839217582062236981259860483765893717754683886842903930073725165783289052420835096441377210731603321838579621412423562400164551048223176846936543822030140356584785374326263071521659502716947840887443285365693130648309087101713787148012917351030624741768145378277936200380083206753151606636436648278026937216829485722502610921707210842375624892288334387886242840691263568673939798755438444802684475945013721338814396398188532626044258361503149282758034364985268630122388653237195513532748130546502981818659503972411593472165915606771557818026982604445512507666830322793308645851470847165205829770563598077485955552797984748276495600705041048788396976852134481435518812416490349060582589786011395684195250001808318668523506445138243420015514776026708142059715482535534674742579167587842774119231436557101713092231252495349497386331576255761645526272074222340778773755132421923204154208420845783675380147820028937213012082797030510185031408702252354675416505581054942234410707690503849516472636085761233820721886190892645063775646244175753118517367299194425829754920713488747299699063477576437292862740211180934181322429376985383679574776576500316940827339020707276586536587167728697933292201764303797744437618688460154762065353653313289330210670994666756940488811520594258454355313779093080331993080043794051224374675547385331736089165041443906168138542898515265297002110551007116648998428116927021384360460977826153764237895562718498709428299327758011955540604494938197366281910461125647958410847841378046018932364931569266176282203031983618888527445026100021370863582867159880342258682767895146209966446735046526069426326820063085466135648726371303610185041874669256736832103830171355768946453279814241566498983534925339275666119215293297179400328911896842200464831048716376021432924123584380754093245350823628410388752515564617707198065843955076804528859251290823071238548464181328206522684635481531151075726501225191104904515708651029405081288148118552041486589062071839757189675403038896130315731501932915284531772067537916384674080584903783238843178856823519602158480595816426105316218349110626359612559098131435858635798839300887587801957789432367482056658789410704396555413415765857606479842838810330449238694850236124672853296142355507260504427034724876556808377912888888380236802716614157209871817594286766340384906643741036321866313741809569269000903666443156783314815801865497387778862596913970313531103249671775634324849641960217467475598845075600196004656506839961369053220268616171194484138652643965587336718542226165616647961621208153013413202275091436877389685430213393239722186128832840995718866420407981911642875274551527734300269424985923465697257558672012252056474991580847110297854712923469650562962841370592445891076300615465184182061191754830182461191712894340762978951494244666741598653139042228443954797654171081861168647448942635277574524357223331619718480778350918893776948813521507879644123053526795011574445982110177573534354304238529494158889698450568061334371019223903796948807987348696603564175043592725681416059490406841655461350173480825544543058697386047424317022017948337960580824949987016631347097462493687695731268086508481548027023576072393181501354767721591500340203798585337565379772093995351050699148748628384769594093914155497222720790287470575246556642669850443375735748993206878930439723671360078850715410413197522242141118406116297849976588305240378637053369778626906745588271846568853194046587353130004262472703981645332323043032673962608656464301032332550810065333387911792216431750500111287622859416340090478370507957290022781226103839962899613425260569112790371629788392302324288290590836741420942689430101492925378601104690870113056474235063550495445099103851768324702322565313388692745304480834843575274013936919106602246331699253893442121243154021261177385739882229326943274249292812335691887143128206186970738414444409769448255474673041251926552483967015196375982487718374213987472199764968891608849854439241199915589065175119910520781888913484814450561849324505588701159375214691914568540969807857904731715034447983636583377978345466232509063254197857608520520777857357269277199983868475732166096770083388265555086423900690081771489120039873543339605226533694849935775637473404891685080038758632221888017922619199858641117292130843405823685314134227617458176618698284411715838973622001973872511540415900615268475762282509024121937992067755740856466526856616884393616004309694967741532382945171501217074481300794053172778786269697461659302426722787845195677109253788391087185744414630670323085098142599232801878332408672255028300866842265670590220450395064184952648076733860277436495418555329467892095223347010270004073482633490544157314948842452603545532577581050465163447607528408403894810592105103297596461237098427938173447614883903142292672636334188080739855005576462156255403453134359627250131552573449472065791690298648599011812332008275518248255911550314764678161785850833312045319179086273811035488622423086113745639458729237903399835312849365492338211860937449912747491635266114307799928252785338783974400538735354948052727528918818874712252781120846853621668896714330877658357059309877547839741735125945643866448804365517165951586370250165939197547644730437955461008216349714062288860971263288589435251638335299186232433049456041341340666038160602925386375600146161341538585901836490770687803947937845304502144984494642108511058654032662649089527390984148666302495625928587374401790247353464539508139541697570124238479041670766710316555812064076499042057570146001258180010205366327071714838719826991193931322197633066316662751926678023105010742202184396929030959720871895474814611304385845428766627926818049276553168240799249991760085929981160111009383048207933362021443694722513489056567897634403410213642923460563566448144085771319258057035955405350002542009786611035509197057944604666672083580608382664498434720906303632318718398073955648345650726074558878486567761084190787969842232668979220297874614952356577195453068867925561886973104147421198834597543600227764085712095537394177545161512761361197886078446754582740434117274205601012343562777790416077088695595322724461365782083770189418306883675341031969070622814865370543006460421658662304833485297416151096850692232825635899194051845831571558711317297797503761844132274255995886567193901630877227855363280413296121829278878699276918845715065868620712274717508567912726925360075767525062986368247013639961811654193736761648295227002896269783413513285280132638236374298079508376062817348739200489898961896958888619072562064103856538143892318122794032326750280502184566800848587625045842347570138805803183872093625461693026917235131263978667040401844187716700369909592677758732240232111278403863713872991175034725681378182679762353053766943586421128251275315749122775114907421320912286313535534153222209365915321416912277709479277572079955520854924684404486944492956249962329942301416220834477350232608436435554286840069425734064173710262472978489156144935375002536396542450206052145566129728506242640131333615122520482239598694138809551035193945608668275901837922802934290959129633304335143686257656571359881670462137860480380650505516129652784818274964738284888966420546117762966324280109296458141315723004817333370003706952928112525166394584413328827604321495202421332019927930686586002424384214078307780168271604068307357812794972532907640649081466429811353513143425064729814463677979577054201770925530603150314361616398055297912169068503285983706380556120339499832602396139476047782459624359487915544455761718350174162383195246857577170159077550252906987448409652035097759847478461804960473611003198522558524578114172361230681957240567915082463949875527300089314397889422400532744038249170496629539429861288384144087376644769199644813952338734860254454376886726327937957639651155868695548587832534669397819179132693606347644187042869459919582654853937575888968900942416312924467888940609025622605182264929453594783927455464397230706146158554692122176434315888033846773722417001666430380038908591045887172748888035639573513198512228498422261894111063166088920322898113502639287365292061295328832740205474584459858050897662931705365295509392946497599002072685478330173856885147039344614890209551403757727158353549675387655003831200992453829467163778335903312878130576638508245313321204740294807193349101347237988339647536240410099599546494080091096636446976825559037520857128104183909969530032291387222108812351016053977905034623347998153988999920314345144530306958557303022273075414687784291462737456507418376373690288790033447344806672480116551424425964261230713686420052163746938331296428951202068348659142184121720205737095365407613443259536008017923605086077939832890008078292457046886144811136396632043812787347420836005024091761858927059952695507503392905258759078078904658121950095354781700111231411022586294183448999105961933042078599692694548450215129637329250047384027088286586456784991203574071903978354536421804307155263016915051301191064788875466018044739592724610125638805276548964884667752615247462465877542078244951388288185895485299192452799454446158572913716346260523650603467814557975717011362879829589247188843266748216677832013674025740741193762122779051859049211661727018826002143584449906303962581432154520692993173485967483722508849260946917078420984597584640339062583782128387001461330361902653838679657873448497960445654272174641576012022015730122488138069957459080079773275038010813993688883096363415846865789206635306778093088262753068768606115204953571885892782354546050859351667510399093486703784156356332308875135548403489751297938916609391848857744822195955226547576186165167109924590699276133183510078894805406583045894286655067468887222884740899020694659505859666868973094917672454612235462235633828881175691301179158758455198393940036393407005081164499763146069455212385286076787021210152230409228418788345052196559143166319087814585865430784379504766013198559703473131785656800823670195640679559658062760540679168239265659449250206672044194402554864720439510091708478467587742601497137276529067414299293533554632893182017745407054676484074273324596677010261044175217459371361555681301492345809362323191368863307857833704691486716305878581132758964456983366315821575665545493587486948895190501989598503048990061424016847045569377160521848064547466795502718400422529366854281072321504238463897361568871625013021715219142610231443665731688754966015137938520915360775495586116527240588543972518352181534409311113987305734043777564650644440152145571682233583939374789764695000360672854982168178310464524565661479644752058645360376037531658554696678449309433191009932312723374377675018213197336249850348040648122515177354936263183808572304155018404737920856472031479003197183476524740965202147046494557762302413488347266797792705498184014637814290883596350764730964651320728113957351745402334055679051867535184204400765921080117707969483564478745084237536667359748316621587175924438506390842365639171176124484649736626424679718769110318843678218831769152914497670774395387368874403935374707373590792245131465939984247819901346881720635366833691862797233776378963121564869056604663187272487095845003994016560481710589134653980783523001366841250315860623110864872857434601152545187704447671351880789674797319128952802763909921951934210140290856928088284378622951517216653616069371843274915482711370739024599021845611032912814687981122279351908403284252621045049488568787431121262867778493729238532244864054220198213738117304748740939323461490914975340238118872452565627444378571267063952056331774098003815850506161372667138413536972846641591416136782367990645230456094563363342296073476706873174169818294447297446481070837540532485140676686542344098411540271036966774390840737766056581821322680738767920931200745349638271549610724595153232494834458413073782280443897044076363511041274623288232584056965858682370649192693517598282933027559428151649864138604729897978682258475687813532695437404842810694658357590852151991827554264092845883516271482286104218160048264723218665596539765142595515466190910285998245677265716872472913486574892162503566281950997933077498681392240143264156467546644508469841491684101604166575251483549495695381479234375703067090896118834253544764290344512682387469429501663422153008068706683710287945619267960214545721826511425305554041296969206256882402037247423161146879256786872158118139325313171438834288240967927780328218100848130402604500854680696282961934730189772297635495447156386998261583997850086084403011788338789220727910980238026660547435590314356769114827614853109090067740449402405556894212969483756820233223774412342567732847578651005393140243779084762678092111018896765008746552182046503102056351619464922777098868135951476743433239377525483988568577616790227732746581200945035506369145912624258808257477658946775115151566836060771607300998764351069973227601560296384962408339695781289486721635975072574416459729455873142932894492360132681270917766055488115795048811506376894180608884506264135663556760011121089780886717975573578318272691907091651216234540727951610340608925551572948139268153417442019639180394710675051840752338145698676758811553159824534615661958686403293011642698098637350135899967546892822084285380068892855816675569844295661498093837219176692581607411792394316656720353843887384896452044962697968211146700470113299779062951703583762610420855129489152967260179057513988421683002332791877205489851998183243911493509009133384211873593389597912771403912609854833902641079464835420907869883636158643963771572523612905535316616436225445815420938152336941933918985159046462038282103350108803030928274777321924737973035653799308354818063822624753715080249391522606926313847179866366029982813199240829868336038764688814759951674907884539065964389282864010677574327300214185750784357629359938578139599748706392385277214212276767201255947394693382067180680873422873429627219757536134405735571919714690156492673779127580058332703796680883770351925355371448859290415386705073186130223177362855915655863837474754789489686461118860705053145619463553862586597535818887836799941175582252619832223445216506898719663936123211203770468305703370796927574398019243767832869378625952132647165273448900885671193184792776546665846466863129354829084550694552597880722262299826987082429195074701321910413540403571852023602770221609952727389938856650392406057906472706365462546403128518161933450144679605294231468131840806531674527572507428492606910426753308359775054166162436743971737898063545982941022489975002910194791502162376274776067074685566976916875881294201553161579801430271841306009904096017704281198254411083146255983064883352004360327186982071489825718275788925376798200188625197376812489022076034757159961914732424097338192440084035254292617251683970142093299707978469503257087518027889650117517627745262460783798564580086537344817811921681189900783865069823799217157532067384502031719110235050191343858819192385766676325789989853136225786945976569457229210859864641717360108882437445288832013573602592414260419013808183434880405426018797792221434889967663449318747398932283721749056830725473822489066216756788936497934343807551882869929237653264588583283580371191252671182210864581027641484891314817624424914538460269314658762834051869760157423852951239412992642670707645521910964426444994271347094007913169096679769348502393917001533868096032280347746682102627682168765633210408442628303156316473354210826159060618792053125338596563141768672333768622827059904732263425369458528834874963643019781941561216428569770783881391322291352076391403470829892566622589119860492508763213781901890251984852207388793383816051649959758648925051368620081088960451845296557389592193597049166975867819872913623934656852982100679241030092811876242007762534225858980929038647124515532581765399508255207830811696364859267032705148707187542973616364708804680173844189960600988401571039766409003936115905051625688387432047678575556059706014003375242263240525120405777079088179736306460776361018606767681930529584795387794194799545095180809041374677981293041166690437478750258275551177869182251350666254312425497591919455968221659548848650463673202458620119459124231024684935373860428555772841149907540110465951171582761079224742281990868567012205115499379336240450000691284748687488115059220368856325451972037206488501334985884029553916310762783402864304603664628483203889941789927625681096030434408850072902260463677038679639662098243421339356288954075999022609465888461729380817463921433364224331964198739964961416742391538255619176906296508868011770086740693173095573173649589067047250819892105824717729487315312794133705915505642872456385457428323049950134272823238173874609850082242386126659999857214597604911370611126659530185488296351133709059734352653827227022142144270516054025954618528475713040782399573446450166350389626814288762810934988521721026795941387844884946971421499407501420508376363237219674595921336405531882618207795803937709076282057845058958505989465525252347944629585981440580928299043467957396330985280436119872118936660819610609369627848190483317659728460431345778991946280666423596379673536228425854120679766315000304818455455143658233723292193922928659062765355219686109659131906037389523906873001694360528813890752877797378304083961340617689384082807870327173218548724774930396929410488537273223377848881875313709696472045638202551057732783464903525612898149243747813478716154058002575632189042490861274399648644435601063616444388716839217562371640401786247748506658415944060685411917885003693162656525236894245332211027715470271257771058230623771684415816153192311184737165147741544847926785776341942992908281221385894806400092151646363472150239918177309017313949617222928543226688844219043935362370501376504164457635647659597195394159935682112694764399414353605250642840352553828271921000199529487881451465065633412054481921636002414121476049485313944404869486669122269831726414481883765476509655245545268737067041790639876507061387848702112625902090635983703132972927878912772537489880854579465804890645818126384085925492793393794406081248618452047575850008054834840515242737280223293437335010989752755251120176733123415762865059386957688321912678709334447648719932813683722119825446378745676988590533798096110424694996052823886849295262695675373893221348382389821810882200479401185944855478361624673327887473849883593417860941071451012001258158786626548632693996988337014618530281258551426732394457440826231597483373630076041995617749762518975254069998331146214955037205209051070533877242626549027502337610462755749260617466010701963714071957119510659379490723952056627868736693867643930199621775031957690562310438102328026668200110185221304622118701162353084768691867079052756491915136166007609277453606147187065145253585232076313833200282455235706950222696011514972521596329281996781228477065745002244914321083377299508352306190449793165099521445821964262730352381279681030308743871724964132198074214010836060093309660746175748822514851166583296365952401689236713624096577996254392380123277645918634533881511313868699369212165253863866044544039486863374537900162330636777585665031186900975382495825636778259177724857812917489039860929666030755624038956061923301374278913119729342486073337703134754127813354803617282511059002897170178057418319369854140955518795558789387781557738264353284502371344915989252649277142883968352651403024758594401692495178801381594279374326435339741128619784245207136916132550949957848295610266207858509570173592149100556061423923444819429849653489781995356371536488614724331207676269449819042733435058778199468459999337826256838593166158926594474237694658389040716846897927967141795618903798980058164636926923088834822990270460914326741070290754000058130167820760873124673135394539387124151509019839671134464029438993884094254701531156543814936449820685308187380894493364136990019317237554927317847091903149541162020876716341583295677382767475436748520457650000600878416277305314590408316822364010793688347268161518242465257062806871242797263371996001978572430569656596275683954938815965482995229300265003785995833110372931787887531659266740084015183405321221888101243528018833780342085900039469808008051249098563654443826394540390740659765751101307251667449916285240288241600235443736887752640353651087689266264368930058455697857786680431588466402076678765220087553405074256565969454951009911340652584967786864311245409536896428983913191971886374749709453941315784712166533970701439199839686514329697581388467762854751535147986808757565966194565288843988690102022083127643222139647370480649267126532636920459330616908473360108377506948101734778945472418946880798502017901466322776810999571320943411044216849280330831359371310679940138082850598774080504561960714618316932889821780021803056244797167052602405357213735290822671734413421114617540892735923182916730134877011375520577785461279161470801892615563231435002685234177020505349090062681975764544784859370132519377344254287969902164973401500192062549040195307290821957943177324054547733844962209630035578006121480678774657539191027422855513860468096964552987220766108962691934497901473583934733678351904151060129665179505765192798792747877185936888356319450248300224403400158138541911073050394866026671032059383524804213312852176217996168483500713583465010115663622449802250186089935225833429304047466221628379478996004254035220388919208072473615693786181606141385571498336212443075271162984286447603302112037930370623916649822432910266804359656073503490830183327776032723221904712114975484837560835674042755943338241577226361584848169421324361907537833179103069266896057857892945833641320807417518127426738052177610909485994359813019541198420568732031607260326337751128971799102474910246069111582903326756644282745752240290731156193229877294754938009023134669729777566812248531250456478339274837328941025704674639563887580888786575870489923232014683592910158816976393001134187734876346659512294980358314487864588297333487693519536597749111421057868338998534592950025096690713621400043648288256764505153459380219703542629688073337279861008004128450608814914468817671460748501952869092925489234123714853168250649181410561774001949219793347703553705204220286875808975328007456336133976217789477175646763418123685641006202051009367616274663897352984394576448127482939791506421289184389339134911470825874597569811792680021988693532117943747595354457122374094690216745498126028574118423882747445118705248310365436849948373194342694420858128606558777587742080496664891845745279195346828590728662242119335998432966095646038710073112981162586035478476426717626288572316081500635944185317755890525129212393948924341564437852758415915492973727820249564262875063110498157128318001464375539995507991388035169780079709282041798507895976223514306904718451540276323300710046774950611569554344633963675930365131180678402610417903537014942400385631880500788404099281887855747782896367443109566274322224867035880901009789214912521467176807969307931366335426820371866479605817662056003454694136992893891902712071558379811474062334727968995686551158235193146425585249519702481327660056730146763135337685305099263606563494554761566727256618406960719307282159561655297787032897885067565985707389030014135874483429440932487125885194008466532886645158090625158977653155325013648832882362716050070930632242911726576375373800358006937189790995587158293733084553864729255598092331547785943804021795805446508346852051382460494214477984835580443550552582809829752226367099565115568567356626940582354822450600455692114139733327497911488456405733922374131350648392636236291655956887013061713835957484771579238311566608693830098811469655097224676233525300857224015591348447966490467265842998376930908423511927961002799187125757484959710235730569723591279115262428264385735344490237457377115662237872959272919888965061291827339293087040776386684249442497298596645942327494744841641735003331830449201931575906734266964888443853574680506166552617311782579895380941050945582618935858306170200547688989045913967044337664054799140083093929666807442947215662750324734561579587976054306335629518996279919892201334051688618867770603452046889665658919599274170508945354111437352454892877377932605484339143489145827282112423512657086654995237201160733715174206039965173193291529623170292402265186919839790912882248681178982725259317182257664936532786167799077790161802436167191035530262228854581956581749727529173962920690186284623414672775090472223283995101540821347105585796444060590500986299369399144694121798367286504979308516149785474651605569448549933993450845266661975594672103766448927458148907754645506802377671445204129588546199401584308676606263075891577211585552291393162233111893313029565720585861328643036533581830568547644437369869446439985068914984344884802010129897669465398214434439049120945174906697632452221197074303837116866777377604590727919733263959101449350761786610462034262411562218802957976480751684961705465791061549082178133678055353910562199969321541449401449556879505273214284894374386793868709470810254730380101616447009090691562957600538210931810398321919147186218636130639948788447919673853852605022242021148491770741259778411348176835340359843356179225139592963708218543405308791142168465651148091462056094798487577067946857605116212948964561660926018978387487821872092300623045757754630779577752382559101663737588277923302997268168445884727741117490365202248643099908494111894961570745650325076274782383891513256586436364821038719640803144562086998183331295711594586295826244050465044989426946866236259115504570823309985220165203145809537359012719395479934419395696377793403837246152248068918038952345599367043012035567588087004374026485797713830041325189222456332490796843771114033630771533727117734741926381912422450413181527951939317860579964259166822545192037270875804371612362102451000874123275266840595585267520061422654347307121703339795460409199905902560051192562167898565887939727737862238064198290454530515706010231400991820939025937395552407571379530292903839665040734797199110105420904908575207471899828542115531678138074117196313397242060369104380482912455796045171353766706288722097686628166102068251458575862155906759977851977351332104927399737001139607231122021879181299195461015359404563975545081904395347548173110615837722067417588217923178707089705871985506808679752930474901661814053526248897928869474813306971792999721054139194746841168865473751850953295775858710709803193977520504072475932638764620273566922066137452181017423314992179206641040248885041025350834345161947439745148533279959177355096391900358208622416997152454367290186731701292470672149519253226086052877589277123439385101394897443397796831458120877888132158817228481873446518788376227703477176755135628779180974173997103857619077124678857726072176739144091725549950995322383851549220719793460809981602109038817664633714628501119189452288348747128543636333382860482270407493180720972895594769923353450275689796067777513599762686720465679348957288820506172494594312767650785486624243790011879123768573114645663081351504769593870592216764621626944219897933761425917815891442271556086866590010384427128041887084267607666056834617868252283939362948898752892048778625342034011040293036046759080397738748944641936043504753346042247958808120674271194225658642232816914897557890606886280500933455690456602745847745515801968969892907638183642656851642939048557001307819252912289548535898522944829042476927766046430999591524074586827620836485636381744098190993640055960799080908811735410268000038371569835239634299281742759214863234473170471811274837297636356964050407271325389202947090851693980542995184482115663725616985765654716800451629245949017580138724828252214986803390015146868255394399607058077786603836818792692996727689631659338917703870708925012881568289751413033870472285973068332566137446583323990121432854384654314906432472900193576388722454427722890911678883978969942715937759282491183943206373292571238199294753378534631449196563798197082798842788478810092605441376635068611218208446134964407881041328776758744417337768530544868827776219584052689532262402116469391396643048793627793857763461580683204001025918743509372694396048807800448719675727431614995164696849355753334971848347842579415437748447760747579061693837678383917451871032418254921856692073745038410425816277810170316970966362121012206927555748244512297543033546209979157071648785799937559072897056447934278513518208105185973873477594404293927280582252500258818069972383610777394322382997087444958690993565563752007783982922163554539298787929971058160355539382689163970468588627901864551236100609975397455017570088990521158052171190208806993012453190921407813786714502711516441077209622087081531304005344843761504710298676121350124242128060298173649438015114604384942958013508752602787975791251889155026071195623606002155895798767986736556609618492216466953129644792994656518541973512058048749221232418154196898404938865665011125025660274636833535311315908165529435078398335888680554802096440582136164766788848796513041667761302436537666578109089505774905461041890223449989420229636510892686396264475858124616760289943563346186571275111436134357728462860759720127138016022679178054816582185868181860735859754137444090452715972434640441342610027375638819990170771140214332164071714093763506572083483190028241553030138504925308262149420581576381330725342159267708542049227091077164465598926338522344628988580823120928458022599427810948967977156364158913397556418600202381119801071846402908461318990859046291538281676683705563697657474345745716087047684850988243831179644334776575919521148669532061666759883292244301075592674188865702227394905678191668779173355950179181838251423679756439525075090185491841717257553859505930164436269670955366642556901993415677740094261391247000540036250999389892064236349144014676776052887750794338333995084620862497510702724591807328299643534858629277497760581791958149980030571623905471725330522628150483846078355968500990480576244917414195708728215244293566477378637794344558068316821382489213160262981929446211417631027351961198535581864337298143790381044187284094933799506169962831880601533705375917434578736102385185288095701524415982501298081548878571410409538554478797466914221799002782679899220789001211121236536551970155398358300952738928092578420672099293420553622713258623677890324101197645833513425463369716912977080354131234082132092583800140960779372524040040831526346239191503679918716746392394747451492658279053081525980009399981336095013896706886819663170311397661417602723364760630954405367611673621010337891679905720035091702340824994717983509553452012662993901986445877200529779391262877982767715140547289760364111256574135816396115443544166758084207634189931422677079902877485383575939527575837371550479405679951325687095249413810761222896273233598851114383486856522540618598954033850033026807223834418102971466770270485934975988340384501394024056563591173034196528272429114452143690905192607156100663315830677086891055530759170708964001718477414493281182307605661215424970307540198126899701855500256730000582308774341250935242580540724995468913539587532814713130852615156407929325830563251748143582616636230585116984293918444573523425548924079898482518299292627569161440841323908266396157835808802223351913709336828100065178110217673600690822747462901188314751539688334469470339692671180218828934599939093437069524468373015471431002279357826644564439542894845504289326765083472298742075337356081365850988860114659550909742911551306733767587495922800129510064130979753889709636687533978577483126940036898446733740283627677065159450412927702124877433834862375651731123676965005733802834798585450343355933995810306574924672881238396667795658641773215763757429542455040478681278334819880220455337244910965188894288000253071712929462483951358346291643661399403252019584847172403114358504504885301752431293444985336514190826945340656534969455139567062557706401813153338125649790679261079130870964992981321958237875121934907552993033019539849988933533477928097567932429416799200328988962396760115720491655427854617414189280686434264440207687409173620484380716447450440481287963151527110354526583709677580625055026803102832247901655023781609904750547145074076055535691055991400829353274320971590723377950224201210321535965858989900829498993602386190997339076870940984410258588487215572217894667186138342283640633387874852653868929325625372785389073516707563747464649892960896131220628249957204386362928024186221078445879251364672173413309237204591925142908339814017033941719001887966444848192898993643561793454530915317225210269155492616991863703140569695208012152548287150345725379926185290361527458683834232830081233729209353751504031403025664644586023938553875576587029860085195580311380774152975558331809515859213714028516843673258126329372402314023805773290211303712595346693827283826429739620423231971582787204398504864335722935878433246323405540852528832325156561944883090135870819625100007179858370718035760429364869762220237813601492544681087661889324847323760143598494068250244432882674565722349236786048166093053813670371855699533302787195808308047987513172482435686410654195842609937489956588365280975904790810730390431893468221305795031668972410423694966774896121656683682095076576087241723167136532417274263679372167162154506470753377415371719609066376780110439673731665486749463685467458775298770473302805479784367425535646104666806770549676753568911896335334578779421317139321534565286049096530362778216229954887275599160568230808136051257599702223116522373732629057003055727097350674528214446940624488565759092166407265360157707955841234143899922261630323649494511885950383335680965870370751548735953291346948160945882169209308298704139871052755845098773331666897103019090831971185851193605990215712540212525456659538778839752729051164605691858135369249630847120677283041363303176209031284589169601401161244794896779377777190064749522052391232545091415873151726898242063796583124773056580736074231530024337553987283723650938301690126318859868687945221890817171314316093708538381038327594907737176365710678710042626372635846623179273147962478678671682633911614047377685071404180430259411981710342395776823151123465737316971422468916830093729016913714069799402813290048031655921781222246668638832700308110107735034593838280333262487753946232855381474137891999687641494113924299695726526998480560507794447062416765985074827332922556511493809733236550578549828575880688770196654339095378883916403402222879772190179137837904748149489714129337728818522351413872275906601340457210769368359345165381827172101951645031272167009109699114229626315314631835908896106006358088557426774500545734029111462412740588057584821749705183274283812903497966264886790117172765291669869332701002663153362231747340748254014421420652510151253056387410441493562630816742297813142289931489304471994973551617271042117397810878564414340833341791768277434937136070162109950289078498426548677095764342940549019081325680253862838772072003897378739347937438767915068072288797852094392211661149790178960643848887391419270301635032841722933111911669613179692604119746201952687501356126345544754056756235695043076885583784004268437126090237520784854540760046976226464661024792631203586535311046842083767449455941782810560611378624163872650217767141031835160242432698425729115627577035753671898197775787403355739570684860110970846305275087688763365649595889738039362566059860628320796932713799821459271853949433419416031732541303121279588521856710050676408404409289740316997049477602064879958743208167146076311131320362636622111609606699560159869611722489264514056651338991955570405520347469659578958691580065618992910050021622226161266216702728088613239910339226857708021754687068866317075762218922651456288734095535164952719933269510411605133124297433892259481805283761581244548486718999467413854078767316798191533252374307799664703176343261943215773661359489145637582081641588279096660724097586158509858365373487792225395382437876945523352970529337510167936395055274428995280593227512879273450593437498503705843718600713349024595570933862988563249537843823157906825275486083769299510506451415114773793777391984051602864835372877071408222640202463381866271715868897558367919648341340369314996892635672787090617601168726871834317347571215315233048038299236709816055201702156611368419122967803026394928750648387698355018415146408667016440556664167199031710098074330711033858739861873805539986027503526321215970810717347399596978471124167209599406219990591012571935375156294429353050414809913947539183411721392124218310706871419071678300392433385196664111370562548905026687812422429588885757089087130771095905428420573044139419123392900085573941163631300115615209685605243623703498683884674459885036678003598239488231877442452156911207725196022139102902125591306729759203558032199260514701219477179548029321947570364051445296204528989168313332382502427902986611096470066357262661462512715328280672455752078557717093136643606920921167320462534038244976564913291142826968360502561839458202598927625003609661012946653364683598457204123739763184231932221929557485274355483937741843775205995389933244615261701464482119340344200466885110045238035463785870582199837492709400850182750845855699481770867509228569618541131232692351573841350835564891812359740683911116915982473761340022204036047900327614232230647586590815774236614152567888587998314385343584734238125791065136175281225446049149336823749110031178891856211787752973423043149827670643043785093798749622452871249944561673866865868777652486644479086405153259549217131962922748856339272189771022958400547322320995695026427079579648220131666297918597884564757660298976637976053768226110573683432794483647732837954763824877181763437650825469070624959604682202086904714611758815541027954426318178650426828064827139622497594207275045815081009841503410718930663779576712739769801525045958472217503209459842732610448289571597017770139641128216771452219848620246279913153935735667521054598499191478239149378550544087743724230093261839614415226677481884271373071846389662429284134536665334964871993815222212865242846771322283708967992509700716523898354961201172219433791862976717477954281204841431304080157884825463703064843529445460018163823433773268646135826130107365650176029835521166838169664540681041511974718144480672505670738303791389442239229425709761849285191111510543329072997923482766622596427770524986933460140294001361955010474708229031848162801005604488110069867898789092159865031671912890141865275225976792941190267029384202823442005622638899472840902660117533537035980576300195302579259194108080510149006571812006117140439553309011732270929405164623253735815864952093518365149342399100540416350197534790888635009098290597296998743177451445222751053979986762503134076916755646975028490044731348782513726784193459219863761901119152732577457252607647471179063429765784781303391058036895259475030611104894127465621180400683996579396793967103263039979482972225735912245727525910221988993067025295384765896057306057804116240320520152536348673594968405206156193416772358663273732984586663545896231617684760744371101654990172361813460725976203580784586063904638289648551963071894375278384784952163026681700901625822781961380325148992478478237354797811682985178951125794424125604144195307195965336828919548035370265541765442851758091616846013528619905311648137354836201467434935016068425758088604894392383634937044020403649748384694265899317415243902767155018895721476298030953960959622397231135620160806583855308946789302225408921773021754385218349446825821594114053175245218560968809730959061588992887116511280700512537609528987435527350963729951393194648030435603941952768631617728154312929871976893067454481937081337747429474617417066348914616485804614565917196452721795647183157573471965962304947469438369738075545579462963264611796181996245344421000323479287096953734163520063554208871883842125372473102951155761529048745292627448088854225501117132466968119623304796294793664754164538325014367418318943216493421379503123332685513207511916982111975895896337245990535186703126886938303947400056253047828274064685496206011425080452365910474321540653544644511494637394843053895248971043828526851300389224690073086057972732591830434658677508425513363465667768328060009438466909908250246301087864766559179009644138586681104618371481539357032187410230911563235288274601951215033306477379786785852830955364409170311949406738548087345226018531260533784752781657014852968325105015676083013830540440009815544430474741705099378434465313235294627598003346273705737390429043428147704691821545178801871943617921490707219386044210589998935456141990078376109245235640681999240680299340207589672864205208201598654732661908518287986020734328582543436638084965503898402993083231078869965927021603792596245951252834390501294092638800312189582187811966346768993900522659577206686772620878983379127746899232783964297642921660264693597238091465298777595593377211089269399913315771005871061035183114482972789300064246558756290035279601548770566430772444306002105823314551757567703716418475865836500640809581142093765226262346178453829927550359885118044636357185204111576557735905704134817299271825800410838879768722399846229449794598028949230926315320378981665780565049524764226786413496804704491719292032057750362844377000263306587065897941309674506243129046794675013080275688958220900119357907139681941320814655055925056717745542042145651504666015826020548210339354481488406569141636450901141869598975101733251141987959157127810620047848711163183249089277040421349034590454258800145483315357372842060567495722140370603881131652001826159934334542657773227215125742360298563010319917466306300552410938050546013761648872057339345266636573026484572153018891699038293063285145975631216634843886018164733052394933807932033510038539170160006960934768157874578727460649372930984279378430573944689131585722332810316989728099728578084099776038875216710549780036991241285398472604865014745372930347993874380384227193421812581965161293254594167314713315407099900586015632056436181990301579117595112511110620533668563263239690447084425991139146400703001134430311706840987461665289627903651585893822187708841094358892600501085860989814829108099328153218765181866552131533404049188339483122643512454456706722421025202977283132039968132267341440276978745048831183025841034444356464136359213507871585762862790772971531588791069159880014713739535098997610760330452225915189358442309383594088470061486510895070213177681694034933645921067362877710969157232597431359637091270737234375745257100795558900268816939834177317495807910623152771180074336910665325008058658208089124059798182620138833434390640736814711224912238455562355411597091010036684546184121617035262624939569646991318062730379660572532890645549738691728936694004535184682929298340635350909124668949755500898919155939691675929999263566840618134317975717534941325066727892963384126819453184286150633376807575182075665192070551461448473429569105787910580557775067121585070444951648006125217119345705309649567612968642037744017478349986714015703722544228382126144356006858498248369898675416132675886103323451309491381892792729386445636593483191666890918196522789148572546946272994486878831679635970283393072490599870965256396891127158957402940127147759015589553443442113739535626175508089030395903621585221825610904300579297094226740598952374134404176566569293198398971916438067693303568266118061332215645763521526863128283825711712971784178130072315110682084852631795381093520740764731782165078711197531614352912162913792685703580060186490531480943515256571286304481388972189983961071858461266944873734206238967837031889325577479600902974256821444904576624215208167383773469370793075431790501155211280479702832140201288416685668262322260874407547861403574599459238218501177318539851410183583378139531913558266862629050283026887756674036247099218414009627548492526556859818398556089352396578784295537984526794491112773995892993873304957463858942680154007545458554606466038070284078594792382812014037316519034679479397037481245588536437136273427912898572157443563264239903041574812986959240902866702277968339730757088008393529138775246261188629744100091712024400356568824342584248651282037613179616096522387442223664888468481851017196167636380464161451631614211222498507532573091167967756456713000862281680360499488307142895358269349873270058732131577101586577359765888261321805093450007044996068687316534043085148403264742540362832372302813236771932905948128469604166684210267518831520915398752267883357981072939358332125477283997574422396148023321843317406076792156631877418027045316672604478805010777162920742027898218179229526636512148315447671351816393340005101978019206009688140096474165572988075488335126119709987307817755138168859493901049301693243023940388813266144503585306562021485771920699031561013081197697780313639093743893292664891607291414144120671080370531558087023037120205062130065226444680462252200921993498801563046859590796023014822072224482353209369815243338453415593054296965589484750679970824586178335652334028063339271682795142644409953950551672677946937458622863350220641309210057476515938618423685250530586163251789667913925059117848535404986137443391959971145730504648070431504852395285050060992487868974949218307024035290031744264043274135143227775874402051565055950026652059023423090350307958187825364746995980343773561306351096641361881842615382187130040833362468452267654818807278367702552390318524720024959600271849506263774538686571671377723242435039951783104454908004319505075218172646869938133687949257370446329201358093942164400819671968408202973229726168495583722031545955043884730112676750880876719844298768076796867998175171658522498912829558241763075660586995678719192079652316459906795549690787637630957349066711142480606433003998480916578864355559589679767429415183466196352624173614981760100287723875768001903402991525753256629016427225931972969914516272356569119445180996994707333573577685844547071963115429054748983417706992153818616175896052039673253286313879381765744962535936661522101816567324398606727533448220012691758500522092126880946498432353142786719463204088625703967616897043210422987344583882894496656573706652086540885149318318683573653092528165577241479538398451788727827565292093390948009939635811386014257352762419142151606972941780102922732764389522443436784838873207971128184394049086990570768838047325806195390563949547334264393591431260352276816456085142724148574546040029350183092072793815868888350849244110248513304151631741618149883784590341325586852294701393486457753703560616231849271451466507156918684316042579823239900080505831610160491664930646196913564674237580373729013248984610013094714829974797109423999725232878273574392787213918155236127606274968984925410538187854573790721712350155744122244640691989477196621051921571546615592888259339270802618858373783477063368634086489376829062462298762666508986579325084934186171830252592948131335600015543585904728062073605899197005730026678501982806910422975648891912204038002383468027207836924427943856240154006495665578120534894006049795527314322761934636322645441335417381111550757961081905160551468051643120195824901776447143725673619751249725851125855853462361635803316998314530230709939952130619600403292443431242406527219430924985898465247812924548970605868522367618126966175565329970489828635856000260809964358069053785843876130581521420312713966270137367742197818653210547003395505213802042150580877776356759420879272764411819923233802691790650210532796909187920527537281209342456067971932207675383458753775858719347175750195949169819270633698390552004327771524490445358405371985756380412122430562200684833047479728887455083187906935058517857910707579212171590624957551668056114961729637516959558867848193287984256859464216186094274322793471025819742206394828311800685215409460728518198212237291739460049631228680230312063349274734965685445911664106037288172364829620828560489809876560025371262381840259414455876494889196989302621104887951647611226475864449180684697335492050108344093000915452594983768866998854433884256695173215320138619695842511775223371824662157624691746862062540184125202473928557093292617379276559310048976945290942408337333424538564621993666819496678736535864097639022038502842043764396623285288210662512043018253773714368396046524663517959451414841312061156382408626885671835994358532872966381392296078168399415762525886713054569474940333464174808262113955635428848905409692217301398312447696482296435621399736163234444758241965804727497623783030561411163417204046015290820937511382477625078662129517256829509845686882254105508617475003742055109047003728297284304821341559607487258558429101863697061695853461463846822503726501814428963541052104670817717006908825517410357808789840609559876452388344083705674242764535042064718287222578728477937058827513203334202767576444456794026328667582694504166503927456203571419583436031369368324275706380158927668739642341648874233848366937108091811434823005834560682103192805405813881339151142086424777939384955278372300072784488605453606276681707445981851081424094000120992625118995924090018965048121949947544563971706146486129907199327446532676811300390544423969583195971162727197276051994449547211891530201716343315391647460874248099416144628397265716616401822433138067552170309225858764056575266748378622847886468109359488198044238130269868142662323101740889096982830425722321669550008155710086555012251454336021047404245967926318888407126793592888567686805364066155996807446186107213511753331881249228759169149722683552200859036040930446096697878121177193485153658438040237029841596783585605602849804892289927706668908691741104273615135176179906926677856026958845388310087648585704507539893063547457198858635026459535364459299768473825609851960972070885018802555546680421821556991464864373615945088244286901878820449213600430436477505010660490469349338076862569961702925135846956065347403272006475108281165760765968697709575945803775257150205382897085549783854657336120389133161797867593263396930076592749617255439497062291757039765338586878643502203196045001084383939235472856605903737114566773103478923682260102242460068805854095576092293255459628971205713995272250144512875577268339191116668681412977123995088698654012332709527303583095464983689132309126060019243975444183101549325208695269231780263904860405514791096003030776603244091323300970742782063475383657911954837841713321502110498588150627908415883898099382322514451870663985234148663604691640206139821632599292504840062589211402648868329922404226699523014898786846682938199994107645975954162032859518708279376537244889415408413921702847734513280399007436083648056927156491613078232565603108257284030248961485122286070783098814045767989260882085056407627107210629151162317861538371702030349034334079380031368044672543135438728372620080707310430831366994514565948895629500186038989089181935315729092289130894793432233750053583341549455584216773074167149724981461334547794634385523293909573209219860944844759538903375833101888511721682885881031522596580830658713115118823412862570963737856726815505759003476564466934218366073210524407402997533539110132622555219252836938236178571393582533831839896871899009567840314526197733838067311490484477050773167703022209328349512465451646635356444169101104164205980611792204956161655366152145864453922649997609167814365600497652067346772640094089633755796397606407163924571659457976550023185345272327688986659244865237258277856758765117924862003856252350629893249658254083063316544846619476378071296075103555169119789333461559014752342311788603794804252534877437021873306124268187460360799949944064718621508211395414590034965535865256421956602689646659063522745201427220453541779364862828650659596941699447706671182383153729150049393821928359790550459781574225270102919490044190238947893259834583438597799181766125982083090669609540823338829072079133780868528091639652162463220353324089497896618531819095257289107377699648465570473907864524111570186090766423241611897597736231903015810041615421176112588311522789061661334851533638994849065531026703045928953624932464784917077511965219741695288000443779652131393662332002714268890977914368277823425331634526597783408926144437460525807262467106921728433643791423568965400040216589268504724194442365304886430497046038109779619067787208980193053580996348780100111721347919522944083159763736198752997005407227261793176380624015647914720107193167097667481483871067032315923769294452229223994015760718364081417358018899568336302717033843029019545491794228627374437114910072609785019497997277751921659731278690956187404984483462046548723188911647494860070770767145407365138450259325113238178939681184634298723540715544335980043396550320920281849518904828298817855668719366888679610289706609982675809212050347648604292909857500118353804473581512937410733661738740376445782642847961063968204959876399659049705063445387651756571215315547108546744324844968324626509221888586345956239107604819922002015965469662753241815195079313986469160414776159261769976489995120685364835420096687906046689601772248880280699980516745779409159197452412817650652808877803147719620007856766249005040026716090500563749535027703131417957020696680575875172273757944351768304737727683118803681342341845313497627544355310563383182039715313542106074421055025349836940201636532779662786458165865619411063541994921080005335348253215462106043055753623984440685373319694673780799984918102232259022072799272062050504729089347569469258598247801893707988435513840152557935993463411325884663970512607653613838036142842556113990792669282523435754319769337246085190501546067597012253188002266214435880192579401604919725449108510010266354648709135893666222023768918459675091225703189289906593130137438121020895595582080016483479133620433287638163339492887641161135903471195906350119826842864810928182711397894471869203791728059784402662385593914147552512879503779846221370609822062728907532283891057375775310413753766555579546411805126927090769506473665951358595315494748401519989252473114808956551965906264534727292740812827422809615114702636855275044464432751642414342144958291364271812220895508990731199569832416789921718389671022877801424055911760018929892879355021119938985342010661384963972585348115100021525831600165635232522891233475971693629191200687310552906634717406907769834824788936470688652832241245599246792128148220538639494751708426248478080575133742172944964535139327415003252858289106637603071754388532413410909405124037025159843015925029930481412787957470255981594071901373166189433949603612859876944296475996211246243982409799594775798557126080584015360559898076775926627131516069807747567069584435051616790162765763109048802976100789041352956509982772159876753583883309554510761809603466439007076449834890605985279771030578989035232003644617553775641460206498120556810215262812620041688263837839244981165566612753171509868205867725615484618190225893200769956097359240743156607040055708921487353400452845111432406919344873858417713260523017237674861193867324040796962930390562616766197885053667081238435040001225850368042683370325034379410447840202677031047491413044512588369618954086408636665516706646995552715432361111155565738963788527831374744217583270774908281312521280297457936624863093383196902071255045410045706996436098365908849855301982064462149667514308175148119242300813478150105824302826986558071972225331053742402221734020352961258144169846740108591827630878284853470670697289959610292177697638649779481525600777585182929967683881531131125517932962567422149337053157211357254642855020374308394359478361189325499073640993705795381115323879671085962852800674617026254661398702737064852665219355310670520981052175831166030632901748322691849394201352335283373111312859447219813097010286663644933267947374831940033079541189988520965862107168420540865685188212320596916648158202033299850165715594411654165590113497364032903590193850544951656984476433152281752073418708390569057837734129212710978419528813791200748012095750780633585033999640587823775086473488638595221104176656321009711389087924373220309981924579537880279819386946498925096808646422284340163703116433614296797442741818542810177656620891561659464671686163234218591861514498442015071978808100827903482958956682558197583092659826143027105258783754962774952437512096990624220775802824521557165246256034684334980022878985989383872366827979572540251543187711321559770465227245133372060752033934161865847371243148908102285379866292192396043975088060421684641811825995362559859739793566731406764899291396237298970634276637444336671813003220677399377384348140291322758705802151521504934150917291326201834754956057337794824279888262642814420978358843201643016318443451057900078158987495916046460242730186240886322046822145769871639150358609972527787789325317632534285565230687298787217448245870799949586847835059076673129267388921149046359471357560194387793236574162182460597587383250692730976179639780191474059398125132372925036492341960965752778592381638185210263887500256021913387909710862173654338012222582869638991694654447687879027558313034130799591707457947972567836742609878120161950458985649378472191643829686188007284310598188554852697147367598930835162287514292780343594112617952438818123329294836765331651031090507426291012251983938117549144357401435372565727639954775705719989487140522628703980691448101658878935733383959056133727668990376367845403073060373373778311144892081633355992245683433817834156550785282151805255555438930410019354168962885667660811506852090662489564280793997367571974036918316162445537188513418535511204085131239309956284623128656524966559457761607113414131836360155613213688550497862693894899178691670815341180380518380252889762968307162237921922032060302552160728194956243380849158885040887431896295952469691944876688734646399831749788834674926434022856681165145638930711304003157970095147680561580126197612730870987667669841776496979089803947090105188479305099320764385147968499592150704635000934842129680294966038289388627665797527767371056175193361574054953733176328553527854359085229745211568083151372694638072998486286193543410153911880880416464486390007091181804135486279002040931708804293739854668587747220557036014488728425124004401506868098775413528135982476339439590078580912037740170489733368252331345192971578852703161931757673611956523914140290230700028276033583874134402051838265804235294294417951365231581871410822666115345567596514500359131917508529938994240130987388940032671289195431674900635284481752782892390087605976018732582206911084995736190909863035472130226096074967585315125575480789220956638377006431519493624446197381990977949972404430583289566389000046291949213576306973596219179594360805635843750769638027132749787025690828752512128187110666805360243284588410931696610897215325177498099784775889711906083083897867267470037190192783199940369355408871885391194155744920753462131852365393629677330641216062630535918777333016198543550133512007203584320263857055350154813301698498028393660471825813603705079262694093745583675390340589714949354848911934604637116397133766977983895464238278841045336096537806747409940195116516291477264691873112220844078798221506780963858487783767985579100993914209145469343936344016198217178266302188314254954618668606615452696048535967181307042446594397499527753320335810837189050016349280881091541543515419951158344852753894026524495941887363574426421803903854238388821913001615551892257792383233361752812348194698928925764943707894265176451273318288591199740426395926018447935909461270349888188981043426270952059516254189100919917939482936334729848573283742090718096784825173978336422627525427237308020384148677624008275343307325553109163640380820290984773129455087844149851014232743708535077020099694004559250128804703164810756673604012421472264384107277933541428699528910661686472189566558564466390710174889576509137899764238523445399182577244109325947979036879779144165314156305400963770700877741464248019681313468453235959328932572240458295375025493213112981435690976902875827505389651487039364179533885992088871445487129261202976024358322014414590889061494044485585123529777794216462037089526954549319936214406380469902329153456708502844907616726214047737948952938940148060434164986836567134767957191772324344093966401823051090847603927986844163844962457568085134071987957363603568057307182772716455954561975303031622006909556937698000699513679536407459101299719718304543349746717023724064906251440919119807788620458341190557709606618009333570169376289759580182441153487458359838525769753416360939751029526912068342317488132837058878038209585837451106348487340523961347179667639569252144818530788646810912326406670226976439220393320807595743881460288867674320804268645544003388698589747599933389791047700081489956321674159199984624167243153809823024668608337572488297673676159279446211848462367399868009602024519209807356842261954914509976316414580006048498677246840815820269648336010028875227067017094625265926246413357678954270048990275845593060853151160512122164304428022537206929235912873837914756669433772688366217465906282160217876981285927829581632171786182701831845532585675411576592908649006240865076455612188877886482994548918815709599346084345779163236494636857169353960020455505279537953464930636116219281076331650162873278849499237586426699041619492918331427884275129122028389603051901117005152431106889356465075563394453985908062117229378728097993615882052079121541010965417113448072836438983370505236385627409680436918262042713591290680497821260385055889859958500663613936296870961519040377975796964314212926449495230306875456955340646456251090217942246477006160394737071786446836182623952745055366119895314566706526805241691978344579918307388502560075546693194363789090502916019211730969918985699405556613321890717139966150945148891366124986869835738734814429264413020269806757908378100749026992186412286682686362743696746096428612626849992111410666199177915183428995351653033053082793540162761089836792945385999685210242396175440767691315783200176240040606286021067252232824029157303879838511700055012459185828340832613483480782278211360453609421953698582687443888390141349367172019435128392406738928295800826218069680845207739921208514872640643489010087340849475943225868466678044475824245679186789198672361603721840528408686221641366837984858108060343877114345450187557402209291275414695951551097160504968233494411846089499630754736343922935420086689058566787488978389384861890895691412176004157000021052449297850439823724508959787418187379486917320678700659328525882004328762517313885061782566074793959024076930146034001669265635737433766006854566456988850467664415059692577289022957907278701963818433928738585066108008911582361065727837301744386893228652139068398071238571259321099629804183490374863988297844602852695162936924173143999784553976909351416308375491381393563839599352985227925918416465765811772116239176099732781588401793005590034333565675410797017510371197795282672280612295865297764447845332924955607947893920491066946876428899115288235917646697788206518120344555844596795696959965126914333421771546558306163919711608209800344281612899453151869909551060424134165855396378481643388462946668373508551868025507708404401333862608587273919639050382123958856558115124103540272401962152209416836351223677174005673009840540817768003708288760984552819632282618475584932012396578209968828005472454292802345107663317353711179032867272149383923581823740318960287543973900737844585839294447008044155358748808482908286919567003319300829427296896748195971648308258207970143730578128443214918076597884958212064396116675169971896990226301750987103354662856464221121627741680190622828742004965924871219753029112034636150838612059737987384312344375122725351979381321482108786322123824824244007092665911622126208131414150638184506258560417458358209028169972880907875823776931257724144964365912278432507957242089636293857025834251147507455952388774924452993707205463654589826527607842123369244192178550324377654125062684221358884069860667480267105614880548098986368059657323042827020445166981736324952372226993218022048023839450009518501096097536486161345188840130846223702914357046973308132097379955829738229492817901360036646745408546912470308709904123505363132535222132945948709465770726862233721034636358182239092919100800850047827450975977229193707092211625268679643331829387692569453638289166248066622087009007539058048432421290831930613217591802949593236464408429113775719363296887456806676794656080974698296028839432926502626740037682975038997990594077519207577360343070042489159719200966237496659765721141262634968553924762782718251857296139339676048140937664343274014222009133134651864850821240823563478637600735573978232230921837158865400438800852402225419075719644301096619095704408743510548790051372674190425179780941448726933449225248275802298067993736388415756323072989047826519577346416711119439569066032907428437327678688993026171445163826354284055029363626826635337812898452144128413155608698620558686959596063399666741659063462347900159774678543614029777705618470435523754970443627371915300617841526356571319467440783879981437825563289416025876650077728717830281100797400389884909470778315058775051959307697987814058663654256434417150345980015494223022487910256972241393450698332182501094768891724497343079994637836432552362202738365299268003719552409159881044155833252920610493896953638574598917102872012823100997391444219961647251842035911969055082416034121869564650520940944261065267686891019930047501258926069393940213696975442311166109310824183714249389040715483527810405037967477074688639655260201901106337349612235482917929484733847400163837691714649142777741816414156162630811142594530537414391758262615261053032290440263061678850387836633670901602648770064098312665753465350822759006644690231765658086996987289674639935870336354905355577113717983910578732070842937218197738965591508102179884986827827387178073477503865375607288200993011451847531632763104492985876208884778733231931693624996897914122703319212107459909079832737457889121276854424946032457393081174542979344998757730981990360726221457955703232771902075185661358396616414667725095834401531942640975941568461407172531908209925274087616823753407840958480600187549598090663674294627841672491815643554896950499291773474096012878944033996016308088366361572272930608113534491457599355855376020686124416023891146076206519851739839930963493852215721935978567016987437271243351052011072923064775189815109732958008547426379336567020834848999792661936416716653656278560165897812711638022858737058725416369470320111720868596445679733890863084509404947143127943567627429567014252545649284754117308930784461809453240071972140900726359755023941027380848721110349537462046810001685497890376248908214233205911136510537614649600524650842081834032683442505273373968092626797547905694472505978806115661969346684638657993877271710678618602915791119184821730784393287480373864848205803703200885612832622820504343474419081673932838535302555073696003154691523310252809816400065612888654868525507874366742634826086340654981874665573869159985026550028979408971484766140480177652455370833146071404007706030753004650758681489028627410839468553491490102353942426481319065000558113175374958113293860184832299673305259050107462737380747496419717948186084337525804932223124582595399138404970303812773082997958245016607606437547717549656078668603784456750478291860366340597304054439292370640812458705838842759435019503576095470581103298525791372765208821475811587618827056302485056894948862224017447466155513783115381309265692205756079114041269064433573307716846636877398738642801111578340205001528300541073391087387677012578600996797732264196571730452072391300336795238076729167111483824739533556286086699478878797663197852396006193664248320490675622262980350440780509811791095150953216091994419708272594767715935421314482189706481363088811053570960201639282483744466731776939893859475477151076675013897145163062326920080115663117598708605056050280636767132869644109556596173692294346468480940667384102598568038957917854322532399974791072912694708842641272928983078751612568799368611621972960189946979219237971648458548064401488447908712739008904683316815609099025849002162454782431680324102741056157495993793146633441875632366125989874100945975124613352318706076896616360997557356094021561965510396288589968191052752747819222093643558404723654656324166265396825554645707227477189244515456857590016053125429102358275568856187021334479205817343921199719433312232949815110859295223158978564200520141423275020467132132548640751444515747387128591679750323997696288273879338918430426321521413072240300139851993704256121974311662457967418359684952948360641268581620225403115447870841303943119927668526403954237131898158214152846848967361116697121567370375365846112702576768518486019802577801533148781328156260237105135840259062337728280549362825703229264435081835697269569773708912811333276111442423501848904409200928075453986984238888771952283074647348595040346380566998468262423381245638029260803333109041925049954613806951730069826150798427809923923305682173416957792527666525903023014572777071516399755064185344054881158680899664167695415748101829987922819518929288635128433904040203289226813064957465362051749295531723627337039084908593153888004445520972713033085699951136338690091398483503572342589159041035649255515345564701959893626595273398069712656601807766159835279142866562480055134085733008990909991826699883527808641583872450170053610899198427235827213652990274628243345363837245801988930896063806077485823674160640672192987234662258671717480471070109434721256907725463733993467488518173935409207822955908211168665503456742399942096581148929588360879082453369674127817363598797275521265842419372083743425120388782636570375783637207813779438142872803543753086866181639897401209150647162065304711875277353851412174219722181803478627578716303794212733168993176032214131927269725935285169327320983435546544070669681321952597336062684251951779698201243830996072209258547646131492683805479899900242101189911027027318406174559434547939455520102370695752666297437345650565867421306610506245788726791863935346555600149995001606150737319293200345353882318561275551783815254964948654646678459403355835985517335436329389117646172959803157834376594835694670216640529691921683918274327665844294593912092837632815407351188076811803286885069343121936628648459426202396693829693937756302348506846407873463029137848551192909428792971187132657046148277124413369981351911927890559772958468113164100725868312929985210335941212963010631341335599659895390405203592504136522477409231217672438301512554851853205293866786145323105676981100928430278023805600073952145591451289757518314429814554520803856930466508063840685596498343129617219679594081469613435872348347628513592935890097986132621765802785873484168486911105517078056072230112227983333839384683750852080116706157915792375309966981797497868844372821009346753928601835410604354949673579179942057041482773809992971623787828298847320955119995281172650049209257683111637583161818506817949233189277732734143514218896617819279355968606662966571697026436197801509543241643531153957425639449583452363804550112098284987454486517856786731292427180396137920070156685367899041724660489116760857294385167809396837220124631881558326026700511871525376228241066255744936789820095897290996790533909362030027677187707279713714030416260701771336646273080221199847386652057967177090160065308713570522056679978960219998379534988145732422543625291464843745471372314227391258033838817046895497716271946871890060572709233003738600851453233903125719355209386642595395279763793708262751376336391292859055046600240726991538979923484173376524159529243451790068563171142620106576996859663729683840950534359961257181810830120502354694132439071985824494341697755837597726273563727105709118046929965047437674735407160593336999430363588333437163615653283834479906749663279874348182474352628497848571248511200144576933787876833646467911365684941127254067056051313330525402810378342653889514631950368207014135589532575308735984611314005203624904102079073836490692433131520732833923858709839420853386935799743658497869559697132991684061220797331435468307953136775937438571097265389050212849998639744713209912189449090650748000620270980210635381638586462491033268638093322922481537733619693756917832399532570724216818762758748219104391713511262468943403533398243383226573253467032111890356378759266247939444960675733378041141039064395725742451318004108912977403374824643522663127731672384631667328753240568060649110403014330299389910555970515536515407850260532885662447665855265537831341710511193897447077777092523680648110989215840554538505350673843499550634071442858001987863881498587147378816280712844575260053006823015559419502624231674915150714435715957573055276041096913837356061713257224745632300465561136474752730034036040303839299398751701923433320370433586893479103937504840787175434164244301543282472831869883015346982421093614942881313654419526182990874497948152243011479633603217530082359688920428972438503549685163658462300095960556939256029855204617221842258312308699629099451152879158252605262791479801419146153611800061520322017490968573957833966886554364431994580291852826144052952504245932707541037133662461085000049262062340008178824149434606662837784896889661068375434695892789342154744842372362144311428875615870731638042260412851581294861327830133182843079659142212617921780492639180686518389467572083803151387864886474355300674565837635953013344066773057728751437844719395252138164354416423096123431346820746389273838070444966349311362361078891642808207518204948458248356871591736787729071684581654719226773230282887828325320012742658051333827184474066035326851834845342004045416290491391166552463573976033043725497660664938009020255051669723337605212884252533036974929217872574670029403585310261388403528198367784625976204662748506502503937713621234139205655574402405867284923165772022204112185621975445431945986505206402630866516100542676213006584661582887426657056409893039133902955436861696981899481786820517798566823253379722310579008682469450512167484866637842667023898066021991020363252646305414346170443108482599259526980096507583558633672202167836746615506584950993174217827526776543612461953392750520806222694417836238599221613018400528485134557549403660517337334720200242920562317426406899209687214406103498819999503704147421924597996837968353646992905557561659939570021056314379346701904442276081834644229650171921623951915990618381845908861180739705341879189731526700607877378276941879808441597307953383213265358012327475395294878390728474430655491736812103892828373252284754065161544982490281515683384859117615807887745432247487486669037636522735805956540886409982651478619303459139595431809489530837422415715550179207989883831497181679826191768946037108837255275616287188938508535286674778928077441641245613399056398172039355353486547808684260188710376225894354565313392696742097892383482297656384965294914140773810530996367040212163449652911625955949093841801048552759668492468683438226915976279862993913259937327340382380239115966446131054280290287515595038344409927290181769382622951238172337276006735629786347335888313016693948687508868429487866774165906622725611532791342620607298621780375926017656260555298863129094746341841389622671890804496776415322105140160552248463513734277250309435947014703913339883683175992658052967113016508733761115429086356980131248135921601398460410932943524400413650463178640883785705275007213400627055819934215073905053517717221295590607407441767854947898360369958827128548911770734845097347278670178098714289715662724562777012037745489657796532482773603871349888175778339049878318565775114982871420272161554671462849503582598144520785522748401098377344826513726449852726253803008531190763831816610659836519781500420591568583512152086985770354282137115659109505742775415122399630671752910896422013714229464974848080297249514944166663457483601688311859231105150951443032192393846159300076577357702034526457627458066724564230232025896160439685976905308432426236303670774658382990859421552221001052599043567373814710106490340087524988828048310994887737899968228170788350068631631004254744889421480372306871509129747729821786449374336548124957105029334936957854935359495774790347505079644751023100011631870618099335522561854910111543922505787046704554280966578620869021567962238081731102798629120056936590202929081736144774686372080745220636930548766291928393226539601435962455254264001952179131760606445386954757820757119562028406457092293470130683476822935380499465042955779995750160443058962086116912245187440349371001355605565006307471087042630884876098456738506912554152957495077892448000813022021767772133381370405853212226508923965786004066144090635974542942326235664510351466945437358077280169307056242986344910665297551078870438166382016746964222020766977718924694780023064954291357658779198383003969276367384271126380280113021864715644788583586744647214324340739839117209163213220928819187572924794795769496498806376052380176781041428280565757222351769801927677415721242118649950621785972167015723026666511576389906741687978095890963916753173012306915954045747965404952125083930384938375564955047612529558700163052013049756154356106908496327566477622890958339587592850464198089044673108264429578864794185286242181752991781502098787216932075336696378360922854400315816507524381661448497984796361994415966405706248754153825191716087558236245246160033497921655044308534147184800991772990262687511004472932744127808350592357027317882380183342327443002716218382786547452976517636972666171254912961055992388721095850794199870306252141367100361394620438773939658681903804716953983555897468341817762089289843500814068421433559395925773037843727834322421136109030238115345522787730163240179163799304838338208608967128418478966589958460891237052239790594212234336469301653356725432576464448278978702811465929613598771955513273082392684098933687242212614905083975121152888154586858967775553259768777003102170294601328240695414682128944519298053751457376714340319986527160879870805445560778940130102290738515950649948030945786765859527286196607080261206649809235426935521614064678038383589267522279228759495565764680157917131615346384284874849449697236345421933694122758730829916424979041270797456006899017756880095638635902395420905521208814858356838514124055220718361838036944358236469153062537653183896428168703530162160774480474471687915070869019810560975812708465787498931655414927316333889397508167590228605611690587901935518174054840097466125617170649176945609553793387011486032663055899724693446883602097537157490296162335160386884048557081364664888922577321357360933406788670645970244828484788192202503818605320440042007356336135082522069134877332162226212578431446167153035916472636008361631203762649283592737604702558126699991450023928674981875954509503874957516094726364615212575646690899985468067181942241421239181506091894246536317219414482729468539382033792187995049153087179018838786634667416685855315177666473145855558978388716459793636589886865268483942153341143125065763301294487095067728500174929964801463286852286630974424552337720339018518749632405690667924851060361426169849432143404176551649674500127115051333899896572571686016161728475648194628397237519433902075936462631566343767722736894664393850549183708037487652964595982615434124818895955717763105074740725071726011599463626751280581726131158005391859773668434925932007484216432078574903150933499584126314093841463036241739966811429345238457651197459562503961698598649690371757145010723700678701891402180813682281972786192968123654152617088362834534159119512728627269510750936266520024472864992535070586859826546957475566969854779899992679483406961739478031424263942916348593834750150478655172629973620215715281935375008747002128494116438505010494035890898570558790686684906695984926447434640027769476520722160395004151034933290078818690148643470944713309470320474538333924248642778679589155556261189073060185365925573810590552484405290304938015529201519820520854793197721584122038968341438121815358167431203452987379833877501749197623646315889336295027484654322550828928108263780728173581073407405207772466640817095494210592133319961217900275051034356620790345952263110127518695765714765976279016570998087441386049305865782164849293234644926502831564526747158878764849910540725356382465070900053039287708833372680741306701803353136942413302675245718170500789564697564744240938666241097359166463602856618315206422845894361944583850921481253485368128535490220842832364727255188189027635136288519208929347105438975067063871997398245842415307058239834360045095461392793124727933255138858677463155269016463503146129751939959164885435105224130110949120994511675386989320825160119660004185633809973623614413134065262586155945153117845534567019896106990009258088323151995858598887936487021684208578569615342944160962560283846166391036579563898571063749084810538470540592559805943619325381596225283543923684265015044959039155248968136656453512708581353826557271984236477053525028772190934060462974940405131274991987122196483709814318252713912536339680606963721608691086112525175052223107517120439111512224896048989681813913146646862144072056009060956891886086209394374297226950440456158462454966241952588633636876270450815542204827093048305263038059390958635243077963117646814056555613366949466141099200323932935297989468770263986976719965758990332228914941443352326247109416375066226761734585890563225531664083669642535323543630994084745831203259790820369625220396299806666572789202182056252118889618077014357621674816199481121157311060249028016676817504800866922317803834043619044334967759811924078016681589197861584776002764086011317133778032812403453328563738038959923784750657192024965711435527359985513222637461121148770567014402317579974615872058927822290712490451653991091586347984392491157513424010296754335225520828018286502900897993809774353592965821295572878875954357430466481928618010503143202923074569774286048907964852791620546841978373194904767354079911544435887293513854648800252817424806860623064467187317160993158457880172650098626268753705537685130388412499028844770702458360020036785565146182303621847370331245866348171360444042470182554915635474609573601229120254987202462034542230663090672535484810989509519458399141483864487906203734931127370302147541639016604342407110613881325353656735204448025020657387349928994803378480468020369568942785616854166446871024164822070931613699026227156099899656890664929434898107350727304862401471416706773763606618962159912164228115843928098405724390193486610339956177221374628436309987482054990231634507981305689579389821836241964095315425879082218623425196137615075794156610485246608836760504435517687286948997553363656222315641080816136526570042098097353237117388339245584724601539573526098877060482164567213782619906351866678604983506483326648216734337386833049583911664198558506794873101303764896719507763030948455393434944342263279318881231720741672849652281726775078246512670649288373580153743116721621373055611469645966404269135512442894299180496821471122731127827445865295596383274819706386260261295682037059618939454401548061980226646988391200207044940159480657296485313775518435210886108582815434075359545809915050090885183325335899982612731630935202243955116494297854418166092941533011970849541529179757320882813539262666577733395142665650995839698172006186435908620183732202965836545067853458471985809061651477310923726993242816068663060197980439126016771586741276309097295972750023035955074569695286085666237731135896572590135822449059632320074316274154511102727571046784166529537640744971889667527830151469597611653297609440196379047351871440784131290746630314284848228678112671526539003115278743967353705612106365655721779560572892356697747562953731013349943309938062734163982619723002029593418054836530448499888693139810196556788859632686807474182966382105641419373855440632763262817707238312787097450365362927686347031231903301537208015023973427131902452203332507911708779854892747394420319087782810296898191862604797836149826518339882306443056073937819428896680942248518855416161773027562980028853214370918485789243492738142322263847955321423938995374509627934702874546566729717063274516280678773455776937755788233770200172591317249415167209928774710259255962037372125179818707029143525023302435331060070359615255819281393683006318611759179134563571205277008149805353923112013683499575519255652209128701087999558459090577449042954544152790288268052918391654318297493901096048643703058017089043293067207343793572091064532161149153125597392971992922253532039957226141101906881140215600924477210556632118035241918912355488662357587463421848311163227644412862193283107380494963693404306895431422762918911785075354821667167641716727367381420509989420295312180276671315327685944725521634595385794387035684788587312527209131692289210190304482807288336136636404352539116190490608880632407399763366181295210507370578617866626955914130506512244391791459710347231617718656737705476456925628411723997041889739548560375228711033607849119589752671430104331705580012797720123016105047375481032544741689782413229852299612475788217745052551710405871348531644958500564163052763709975137652168640461550114053604863367014318055188932575710967779395591288973805018524993356806158521350190235899856719675995246803779813239720278033839534139662895363105988595202431739663055738285554404773878398943610600544060489108526112801706537755476071029201125026210973448947269098099852763287214634656196688105461144032357167494199480022315339291678454381987800775751032225008976237606137097107052221054004862075794846335261685110407388384849285908671630804431634160210462193963584503742676762788903129875467376320378892102533004881914928387438156614050298044139217783688308172211474476791360993950104037522573034098957952584523543218596632147285555301031673754740421455311114894242896727719437924284729396380521621061640734707959485317657011845416561745713956003261244623328924931414601030608759156432753963987225521630981689185124609071034644595407496877235853562850551955679236815513592117108938342103480512881526679456320730802176908307150339882393581853257992352919058708164622838878353243617068650522953575271951998887789489972267139451268794069052325917195651495758245991112246690241640592233060723207565677858957639774592000408027441352268386317627121225781508426084040523271706252789281192322724158373338630387807903121962511062177713747392129485673510621389477740398468868452685481617984377372412393071078959014093730499741261459321198565025161342945107250192981502948106394089747033432061272473712534826816056724545271044144621386866917613230886352550963948435326707230054639663022979254799190523949750403433766283680982006940366773063242442585912330652157980588008462928939589131096700821146717520898878552794408374756365225532414762960929019338489445642466358732272203822619448883968456788239891899935310878057710617327384688369037114892383879762852497951886365180437471441908571080981021940841467968374776361108473684308512884737505750899038573854189517740861622793993801786633630189992450323636109289850117118121825784830455355852913595079065711252507036502048867241316352556462947884909086591057000336253101538295128354326699254553927337968713243302964311802918172485358935377270229333009356124205952289422637286142825520920331651939655496689519811938435741081073361874918740415239245922714252581051656714763892964646845573634400975967632144457417134455707595016951668448258101540495324399595897461441217393108265806471922388405424103622270789457615551305003207349672797776229444499782683675705750819832585794620270754242016669711339964158835825516010949404731613858159354897516840737211514534896078394350724402090076080627123463094442438586050499169675759872642034531672211199070287575415747650831846241828016180805352320055706130043718689360875988459255920472662664986861735733661924944660980660149064968328591451698084547335191889262876192520588587251507918810076661046671001876399953183551654666985539904653960228282957410047590270002233676088137343049974490337053867803686029033400733988657233636030002679613474033241306037041129091940896948661058082702699197038433807378007101431482707637861275620445457237723487354144647281106999168177725028520328467416589079806452427135956623740625531212295487456431854850470034720685017275929426455562879107437644696026955975370724526803069832677350253070955531713958645282265629501525123345126379362524222853489536634208688089955206110859308921977922312593681304822185202977394394143467146426050281270837976684413285004503115234795341234006509167884213299434776576296423241899226033476549787763386049555030088787235566081782735962114978400207525445367033786021400153490650903849072512501082621837752367339941715254420639404365364026765433036718852543342279274578994853690896473533038479645232905543080342149631052199432681083916532689394769793995289126079189126980131892415521546421144425191059807964479251717212828137126289931515481603314222731036640266388789735128202415516397451248406416107028562997544328820674919283873342363806297994000222739480482684446956589901230110615243150575889344629557616213675861074619083649049195828405794562226740062776595631263387185353277063994808978040601495248927184971060221853304550154364854135950461528389003152238162709874684478697984973174922217580693772495032232624719494390774778593020750108568710417978989126478897325704313054496676905931539361672700997337025577792670652465176433023766846768939054715242821388039904740663461879993484371340705153753979809559900627470328134119031652986668558307915083274207979595424848153203090052785347939910507344923637446736878302591016528953955427391979416282629692042133382906569245302304869882911622323351383909658229813453649232280927377663500659271268143284119270518670779480567203068204180779951459804420220755803190450373326258453359856191838510740177665823704738990802769671686516982766100334286075814296357370827142837079738347054726687927201778505350719279538230930303229947713739211114556370003644635590559711742923283202859174754077228802704050490373378627721263795057329170988704903753481912232569075281848341500086555242393340145222997837100935651018651558414753233375925416021829679591015081523954826791386664667765970700110734910436493895612680155991238168646895599437594795466805275399225553843768538722004812999523268809403383515837702121098161166738633236010166322914601212515012197444236512399124099416561008033554898657139773915099757079160090474361102322473009079065350472694318351319112062315725533211424779822095354015665517251687997929600096991491975849319427733596985601877549870450090435008477329388825882807418557845188588144038136003565837464524842102020879328494947173056938131255547222308228538824099345184734328864826335140157566438717390237173702561036482927749422496350391664194658043513259714882186647708085209171108124813314325625390109053929602297202629802372449300934281066428076660606141944690282736182409682626859457094761516773227031550235608964563634874586906247151874878801842269543938192303463154472741906160807387901151685380881385244386395225203752098143951166483780779102684674622774978739501453107746798153318777160258394959250091373310321641218321486267485852015281722881192685019321846081003191390221558097217994361909393303601009862903410080069815649034646067156509816190612973037610741444091834256006568768734668712519207234730862590591145471040794193490148173439839013770709073354172578426414089021778250031696789281922885575725456800837228830609153589618784865347066668052174729294136582249000029891815258947697982635932159817117134512015313924041106069446118881894857843708907665259676589267317306967362468456333101473758852310454022938208127740156845307330112604509982716507024554143736475763144018966559317041444109036586402263505267734979119615940688829783468510371304649442347476900186153783110675436983382097516633517274491122125800496303338116673903391140547454620977778545851297997404206768259866879418373508335598571603053198620376149157455376812968648321649843291474040282718438372707646735769831145260607853122872795793257226980371640706347364682465236043364952315098617629714639507615947484214338307359820273367733025708147274039985333690952436249294085279441415746429139526451810103248074494398707591343966202039051274946996172505830356184890190777385448075471602454308019437910637539548083225050793295227518775932104748228981311649306956708546179978465921891808677325193195645947920797316246048821100970934249748179426907018350842475207845468022834729901863343462859496666292887804005827287775183437470597961564365927158114932975861607594925170248247419653563085160435744376659248995351142451089255245500014135694368818405476385780547481281743846086162093878455270417136233734652503246777164762100291712160015508680105007796979171226130805152375501955648162588521603105310331413326277152461327097707002544788465699036048489158034717218216761451743627908885349690003245645615254491434257529369444817431905268747124841136100351317828776044303704082289692901706833008352202753021136745221432733613218507948293905876466236262470549457492913841265864977441763595471205360493055438585622607289037532985750773420678171494965659385617908684510486496455552003054417123558813487029248844460787602341994570135842437538352041211855825295297792629446625909549983509446455648672055141393184400735386682138634906910888174238927895847772803811734096860743401542870690130206879408911725447602185542658509095317256905094765294071686555967621322076052847574121271650156955248605801051484054344540770129859527032213877420555259636926971933522432546300495071721615998831785780692273589285474789235816394429373840991547520313778402956345742754705036530998614240066802189003711835323878245557233221690499430309366843255259228099648151061315812196638322413966357635377043143731603203670843158330427639027778563380546562627113812363166578174602847409123434693989420978404018895117595762583560296868599758415882128975862326763733801002927218189208269437455886637702630295373878778995769662848842933741778790150714564291347640741763251061192430811853578778760235646092541893605473703527439157460071320690263636448134655164763478787478625777116837328590302767160729571091410181810298406814938775650115789542609015557068816969893861985543250117390138496236139369120734976116886081511936730190330974729407109232272762980174476683272654541884807831461061530129419119445174670258946928906896457562613216442575907935309681048740486734044323396514075736311650825829806410900318182432252703131289565924557830304376094472211249001719137996384184176808982261132982545840747275633798634542496310908048605956374858248211289229507395992601331797285844726928261273371222023503569715275880360484945332588583972679691921134538496862582704843605044613328038594287918143117560127178392624349746392001989826078243762240904640338320383340842420109374534848562707624112471645374199020362595525763687539335427692659491231565863353372562548478389885348048043552598996613514804488127018268258726239629410097610538620846061386183765128496037238987854876279912119676378680401819815033526050111065024274104810475272800709174409307920011068053017337334885867335549025499520445852312710759060198668444676147324613879794016137482482127088485226909152221529956703929928950016058605795596093049122523935619725501898149566681634119006373043774246350772778411008698041143817888612483669150750729363251464346309944611772052785565065772625671002855541529977282456806589783610417438400166331522127497442989148662916547152585431687809392672020561221108638376536601912172155469945918520971253284916666923302353459932606743235613560042837567847217531832953829612332139044218027979663692025223027035816340558714652279225052117631883116530220041062236949571806490945854508995479871956809308599331673257024062369379281036466013152018939473246604437955649958359044434736892188887546677148821834797397205520141924687791618190918467524031623428966686011298054562878922334264011619797058506074870121469691193009891338146099792075507543739772626715206497973816691352995522097278787333640071690286078690566307823751540134288262192328399702156509989806888845397680364815240227154509822864461894780577715729017964035804595676968568732446095837810979739022995311304452606061370634118399123904958313169625684607052383566035833823962699407007336939974185153639789042004143936166247889637646394988550774713979371761508168367943304236361686439471364784295161406038739741295354975952229121045067256688452556261203538261398257043399283109595832691821808187568576937542341808966095712036868665618866749915284013637093839918541189679461061962586350558902514524694441354234445694654811814075261484877596448918670290581973441676612437141325650972701861441916983799324156603459882562260171040454895236961186155547625467994183652637649451868232920478071021445228889613170491023671724078997082521831888174404155839370992904361108397088562074281275790427826800494035115784966676514981126216757643164315761108282713908702940723648528728360879065515705543712226407776339034204483460232040294639047824772396622265871183173574408097896384883870547935140395062478398157079858191704457495010726883875295042993934643433766995868179020209517617089044508360244691741219513192881368832858330704804697902271443337730999469452588648234661939257841416179749958806444011504673105257179434255224487487027623960758283797747263968775802221970374375434387470631490305771887035668494208618763925143859624139666381628580874996667560663351989023878424813857294176056997757917351844783187860170636481131182233707554054561231082515186441737436267448083247411094614399168055634108920856733673723300298882482539240011825489782583685060042169582196122403314552358948055577926363614123427779012804217917621799832181697985399804661469222643188130530149566830307019757372371846701906436252570800768007324825767838470367272743257338486712155261362700724188752515272761730964645033051441162836041256054520260144667812062637613874337273323457751411940506492958596900140027216953870933599687348503832054080737228408807144734523355826296078290528195722064787475282025607729406306165934669656788249633122787313536573105808622516233533187560471729674496987873686146769396802517118490997349603803307046613781262007255143899112501694629107981256426247040645766239947209421056255460526943624882460092836498995392407747945634794338947392398097954367993279932715706945994212195718840183457976454808746676469240074632357030665547036632738052656207112592149960132321402128352189087669761532311622059918728329600193596395044735431844525179429196793011275358818921291178088631439095784307194715905115480672121614949320059467160122749473746271803791683717706612954062585393152943964690944664288260156008221301103478373025894778864513760188949886980496682339031192847648388629746081831479526630514716959176297961897807688240357528923617440514805258763163279316161339912878698567636539845532499670701733715463269159597979611547686214586031092979831572211785743874432162943534161800429507694242384799295174013995382712404227295412667974617915035888845929696902551312937939257550901432403319589734728202566614195732557538339946229504706436090231112977466930261824800438327427481828608046324268953196663466656311654830835357119285383339476065149027522755836257856103512596341485923288687613282338547023350979426424835799004348787865537922844996585528566611242986156899158099193825826001467590878347221751944987835363531457989099920363930434872712937598041142886393405459056385972378985351392742375176448813426728203762454310581659266120584849622642864498608657224338673109214968734929284408218370898743358429322689860154100837618271831635442796390228060554103732716616889072822136602737711032938498298374145860854042053946044693825370520385211638369245814183192879916937289525603440471779949541621477405229927491034879333858126244832485093635138481703967412080114221723126430123586795264427465261044168643944325164357791383191013423481394809525605899499684770343243535768355701315152144075242447767780423209842043299000963221726713950915946833767087230667222284762243207484722725434080243108768959916263688757834705297824916566104418859638419525966630817674000594467345463359096185778003767932752578465514217414537834188127581151613902267378791083574028971297230314602224604927827672056309021896398540012076385797536854150206083435248953903565928996314370231863698014994344230400258608420493448507772380547707604571309571192663954918645366002700074038143062355447056615113574429236537162517129786838188084381238962471054767931138690742931302060690200179686991375830908904888206170790783151937907387489465453821668103278192143623121407889115026962640281214599170128030907649178075185379673250766392865498108912886348675298097529837271754416253551081076772272335586729477505769016280124171538548565079390852610226751835127098360183563476532016986238856124636520946363241120116509115002147278165572172453346706318486633962309589576997756934493837747133325009005456561297001739562920634800805387788319620192127688143263276157098390024871691939492564570526871002238513454404745546347043523788981615214040369980339715134312379990220416687516377210095415301357987096477736138432913318622012589141625687876524163956748402902432075780614682584240182412994893598844067557125281090872803956783162487385854533524466153607045825881839782534363690399623282614416914712244915987024604379847435086175781446335684969430479311855431879225797772105256368975622172765011891293350714581537954223505608414929226453975039355745443892446343251709597509897779675045954032769041862925729785024546848202450195112463053097608191666853370769346197097280778664783019575509015338350270504148303283410496964422101264294301659313314356639758882488506731479375924810059634445531530957100517487501354347140788149123892048902386462695872924723579299375831005799831584180273770176255657201351244954955096816138774208462963302410755810179051272835028452950667572184450782459094540962864860938979772038692796781474894609918716147862842041195584326923162639273530219912099012859684455426668818331952055750505920264252628438449583070072643313518620261393875467687680256364802364414137805997933162414513952063172531161904282517262360396965983822172286212484926027420975269402080474274061895859363163081896820306133241172526171059612248049792158600769878825019403744317384507459875290107282485577733628726992767651732632443040504430010440650139309863553499637887498159222451417077335080310899007064882589481433852320204626615499667622543152534344647159887010953786981254612496204013464444159802606615629109005471159444022149559047421128616866663488024672568969515930913822678276347495689823843262693558572987000918700002939978658010865950176797355709816196032300605406734815384032759900992762514155977010408833602941975855427372077932362723038126713752148651202382616639165524146979925305181680683310838852756702178111324553107050040178853031869090472728769796754354075961807715602948569496416106316202408962132209170739584709052479589756130910973887627614124197592392655349314148168818646598765857775249585007565656932178129441793385546528761346954415427727598201153638561746526853784411482745551978620535606583172952673013755203301429510338473905176568521336111760405192944440951333282832400218183982855539420918767651293564071794430047113429629166552190594881974073496657676030077485085728992834224361794019906100289663165245219533064826930831280319049024348818631533583599785189183351430360402641917731585564410563864550866719767463268292345776437280864507084402492854768678249146943014396413544707642438214675786596122147957161269847010035271335558492535356847565157914928890312222212907275257252091471920838579157207011062726267955226368416447413999295719909946515699252407962165870117463266849625801165359394152421234071477387682253172796650254559095555605128661325295346527637461476425378612576266330261737420889178203152704376210895062540687967846078688804059447400544558525982881589434489556102047117324636734410385106257162125379769670605859256764336890219007587219688878245522218019275354712495547935025919973553922639999076969895249793508915435681581483614023292890104994151463628205325295038244133571049188092200654481342851443446786773351178606473236528619351348106295056975770388696883950684638484557714971409142815284737451120756303265868450090829350945108328276096853482041618975662733474760582265067782376348760828874594800335201070562045544857526926057229127986159173842009520116361557165114326880065706236481500573711986709470715033868024273913904593339353207370566732823031432177199569487587343733538946522201257621857192271477397267615145175396894571248108883916372221493387252003672641316241477344468361759311935615136547707321066237075187790041534089119976084811696693097294564318014122547140060677505532305097563823617006787511061097807267093694986276536140538182847650789621435911172516884414594766505111113129848325084755520581264286902043621309027168475167693925809068487694682782861355033039588689638981912570347270372639376051076137753904306968942681427494265933068659853716232384461103936349294865421187071997688402841267661517015412562883507418859064103444618806945165707181746725901963201300080080464741729695136778184394158047331389581049859527593962778880185640277831098980439391265055152432130389706610073672429872841657339987553510489632694754500552390577617753465948020160364537270971996668812548987010282955176043729321099081587909516733046517508700892589004991653723827607003689870008960723035010437745406371699234759241500931125923277342737597910249186873580450517861553577246434028426242423601538931930921610248085163994102073510821191739071375215039526373219516157007515992410449250086109840736734365377820744344368894499238158261628331246909324327012802219890834449185706937530634750726175857697870441907773305771145568009392826691979371496680294803113193658901084598653468096265844287765153811203106806032761452384562102655781786025503297375753403576956678417841481384121445844341431745866422459737880220523497116506000166742120113554929652989635432360569324876708329532744502401220226279042421179474497435796127999594880318815606913805028090897812957232444573058008898068156475087469349643487750800971627093621621907187833284703850096193374281827346412360763416711027542012248479937590532601412441266762183316487793814890615465207294329893628322535093888650746995887695954262064582687574551737234645153036791873509933418055781816474159833977217922257899753280623359504968840760393262295689120814717315088098527961596253360140860021948563326498167636458441879304698214690679357898256850918379037935494745334233634982957812142212205396381093921440956742282493357619348994758667085833745927147067496816756351564223923858914781894343574198085774387302676940899536913062928251845294688303924995896553297290475591941330827964368948097176757981292393666348348877520882648968129716041525403323207214530813029382115987192309633210611570289812228134045635378873177446519504995175195806136779130057920316186136054921846555763647013716409123177441896279385970732881008972066026901344250732866226609601235994919208080265092131823425408606348776512216317942605744780855218169276017596862881763739587259966157083622788086121966785235773177863962231204133865202099392462442951136573764586408013464690670700956532743035487861126684354120202444751397459086186368561729304177648246072622711960208369603940732059649445940697385627787393335024234944857018723994651991223258630843000925682097544227488866744282799605429870823518745866097357744024241691246763644215265082821537072547796949868875760273925293618952522834976594721072801594044302645564590155409597282788721355403166277244259939958588515499344252534434007750322157962333803515519300863064255483349231012750073809906848176302328929517648463403296272852374852603269644542631502877917491105552801800189131930387533811141575336129531290948663857594258198140133758910698451927933708643248601989480228872270733334786879082073978408688922420190195543322186991184900386595408793042484293019648109792161710489422508862360430876745703248859745836847111081806267584457667822227024686390220697923565785106265718791992858606957990063590518591289525118352408670777250950758058488321377126141296653158244349381337076702235497940915876162016445147268447625882773520033390490020363659054682896341743537854581452313255512006326962526407365204061683926017558312344670537661263375975933962237683403427798803075641434337886198691188691549697075303435682518495020238451653092842638549690120114195663614531175308750613787275920915938083823105670332122903506137862800820909236949386526417636678922958349197182186305625325344538355670605138929628815308251624827821820190936654709404609351149785019871292722390401656721693535911435041521400121523240893528965938355866200719030467131644839325463242694180096388509587408954497303111843949964666122753780030540800103701685772301166019290005389069283364149548691905645920973920902402887698301231501044014716989766966470122464339097253249254669883097668083397974356160401210703845712501124580138174353857359933730442051076370384642707767018073332950839361955188306878900670317052392541162496645951337711634954376615686085906009502122312887076096451880288334177279234013959226875654777882373017083873855209200558498457345222763540554574680208967642527246938691445529623745026371853458331303482317268587449573560250865482671928093228682794947657071013991139715588193756608491858257335217053447636153334735913804052814015215119897041680827431806744549080582065696193785695076171514852885873703983305589301622474438818052086906847398014168411714858416735137078664782248920609085735586322094830948577281656564330377962691234319142555408506327883666661909114966013738212778867747354119918992635473649016626690857292966372436847433649055516903725615341473497550335170027746310615821342985446715068969013874717187326967494569452428825559188776512599132320908150306844615857867267002312075377957662567723875709697253704417812536104306720571979770146371921167621999447696082494333927538826022306404889188936546497970706238357081604377164939694418937627771766144018960169642047325999671793503744398051142036030853113250510976146122627851578067697707461978024016867114758222570122046835021790555434862736454157594683416995188506675105636532292181542661763405058642452445477337831438078640345823462600496479023299720370065907137693624341944380974520553037229624208668583444094048314866813393859368935680706028753291137021811577390269205265236493307450183187009108480608333000061128815891622407961109882098765531117210798298989928407840240740639852375927479345865006611485227677877826156927031357952242591780330182110952746641943530957848678925894539892802318746790145133455478073004776794941270410220155583292904399645740966074154968723254400667672831583243302639976219044473950290904803302877748997364042309836361516057385433290209203574938947242556683390148121773840952409874241967006577691186025426030198062236030685146950570619240823296367501875911883047191848612077586909356198220747969313290911572394999047381114145908014358789884243948691364065138954721592092625843535794470784439462654107659582953337126258213335144034493773972891036773720423590760627585701395256662570971389731421618857623535918773883357004196746705532589151790002223795421986736774758194353248679946363352836562825879654612350586800529825636334151895007874513743646818603271925446871959700985535220836230541723358289066042937315904856040629744257856108158773609527913974872203259763470745345183184019575482479054844556399043305059105981378340541063935734594613565413749376824147019838470122672943969600073803805287025216020391797094180856509195114342953419671234961453657240412471659346043354061985957348353704984043907216699173426777112152006298896586534494796864617559497806302679313768360542103507859854156425217644065991610824095305135581446534324929393139630568859212899780509678092388535200558412778325981335958626258399116729665741771725286956726573361433615171465710606905819193024068536369259891596661652623943708474274583498723320156454090104687497150523299582969058759242036031907673897261044711749357312615063617010746195527488796732340111147604595132676255111919628877827131945009251235421381393261664823747283167342543200691512957224164299696040649740082320184846283886569455841541681255982447941295753279878850586137902387754071635429584146745699392894827784028080846612458921707468158689962154285750214490518497521812801229674551255848735393988777121043100925844014742196968816137709185291671725451495287153142983588885172904596972326297589801603998885040919480304977278896384553060333896052265258753206437998329433299943222681202449106427318068789608202263714464369811472322322583979043409965705443969698506179769352934380158255621610414708779252215837685582311411730015789921934575019844958826530542606520389870494939670530327542743942177015220185488538625755875048377544140731144778740096748658377587822119991521666904582024200360459150104227338534982631810426242255716292200132468021958662191186986546733035377459694711476918903604353300146862666252596716548314904478062809819077040276040634950132787703977360154113078877169874057706024848087323942233302452167207747451941614632933046466201764241746663025417542132639346760303796925214832204767813223355293415023055517479615196863171809913848765990195825787119756436705096865630040685910233898419899027357888476097643030280972987129772441832758676398730100162181391146439763413771918903299450898083038904376395062925154481224340990201918479476526173163317605290740672654345388233136882194629313791777856143189096381563034979440599264609580229120767592925775265422340987793630164710558039766432722152546176704807313943868890617291558736130772934499554102088206645666332069093265488320503249274870856294884683438631404082920278401200036260248182844416463864341716687664720097845335829732711567936753739873638015799316911687249386857362166061964182876885337801650395178043837344456169407221357396576194711741420375436382413832101068661502120084738905638292989090458544170061392170632345980148264756765679702777561847979778584120025151232610016869716398738558398954776146006136665216076511856718422315990360608775291251371294129791095952502254396791560729733192505606166489605808978317465546730251197888049935205404215042811556951441175535400863361369446502375639683079707451482274854345027158856084463499895676167709955780695973357525415551427394623860368138189514288570677535932186659390684410849996537820527469401197973596670077613865220895807000161970812630048386676312718297612716097658690350439340997992544964294280007482652970474722567920259622295813934609804043074486735242869301180237094883214483532039081231221109744507690469359923581778296657239423203487644043056469938736176894039414220870333264810086150860162436828309994469033864929868087083865757805810112518033554453839440111245691774906537325285394184835351691015284784129041296689666682404912591369999989854711486157166088062369429247677128459651828143949207035405229361462495340004858286348549041041528981828515226320396357698851301675932257484624058459900702685002576183557961626787331973039354792547516665750385095322213819931826555019046660119624022213383360843423907023355833910242543972327248746382276936044368189260547043225114540500010917054245822365620932778624760398845481246814017597617172838077514314668462432344090846151125173412423364097807043119698712176746821864266429582463374198399106525455855590552536942174781099493563005631127937795053762687513058402014084840849624388030434606785205558305938849906038657863724893518669085699120444342976068654785681891960224839824988031297572531568967411311969683868238073339466911853564473556905386085583826526485609562993090258391285910656872628877328913626521737599755912227852278371433213317337705661812532219952291433894923071594853934698477820984375436451716138602104068829672461953072780647960242774389128675840544894921451143884513558311238232058975493341347047699317869024693656243693521675517911092509258943760114173329299696041926646973481594302007939485501681213066272026928792801430466209815498151538878827186351940843293945768558484134495384280043220967583781493909514166822915072667809250933514337667503913616595268312109044117980413390105837512513466523615678442242613775895723128879197571097724707217797870633752987710456895129340946344833995144144497431334202987739444318539635843991561900113061588538165470824494630801157404956207123060331145742805013176393781388508127765253637209243899634774236329525434297970693406489574396809927458494464126798231608222372006614533290084421670378048890366057974547778705248567705454633099241919062436634974777385453795638853351109974041674753238473837593478893922087964734462645213085659625689668227861997462297516591092424432284402985513869383640700237102771422603171360453484652635581827532658151435158591320014876466359443458380865345006670942812255200470662081611422047029464084887508937543012603297776159049360194263362383392027305865211564263743215096874663806560881304085081897078196633498291033339240510203878012071745263416208753205148479033857451199473383557015347183637042216246022154931668431524635872527202875018169178032019907854743837152499237129108895772835672286584460858501038919214595451994067687588396768756755108586709960987091830605257485859893488698644970747983030665125003172863482635128860255007260923863024464616572522202682248591978742786331666310537936637944380997157823809422731514976510310044634388616687330530501102985797584652490086504028537358162139088446619207974254243488912519856296811555047743703658620099648947176938152975462555826868112909068326458061289868674488255635557624545143819093117228547609850063790151382349657067762334087917420717589678024198333087201722641937497367517028494425219211936755761454634118650238048248977852050801017768698601326182446816182460046296351357566289861872898680039821494009181338439207303919517289113198522697124252562555381818355934448364347530844996595743156204992857032353555475426861092970541938960727471420141928336199399171415758764678571727258177632824042093011455148466767414613418399033796378897489763658371557078619121767343163326555674966522990547123044582403701758817104631324091018139136213280532109112515705513207046547040011833495827973318040202750061153213805393173969657347618570259083290574752730866985926175628890317693019844073352969711861746581271974885944820667612935063004470018369112458090622746731466417986126569926357496806495736099333371198100059538992267171509207528636796514053325184973760608388226448501634507228265261412601839733196400058239949074438749875414645819914245870163898324420215889230883500929722747077895346770679981329571864809099419835104029131211152673908379341214556603212294111042232358934072372850038072460664323014787251161303136539516325600386566041852445676302484113484584587282358473536489759945133419498352414190703054084251427778509012730140954518514834041457191668258835976590166315062117406494261422188872328394507094720471747100799931316672589895403899249295970577247041407818041967176440298351993487693722143013199265338493274549875076495573756964230505410772155835973583668280509591526414145190513389025723665928332737833639833506042771212223012414807721310927407911194625454671923986180957891657502696553316426447854993262970766264084129523695016354137654571266505118422119605874080178825402972813173519219498388556792827118210444006918351804548875392975808470434310868111093640119201996038680524105815937909791678361948150631245693879264194973563739088819636588774874894449277583514383195953042090523642071780538202923388491918278368526658451846702280798027396890234359400134817244973776516893296590013770427031829314082135573636506605813273765548273269402304244228856504765733030147417562430912600074663194848060942700645909596729434990499447937392280794022457606460256758968223598805118450194166500608706959720616555817894184717693089030385296526840994264406900368034982765645292076149908512368212322443826226829579536056179262003385985057596857362954826486601455866546349126179814262882982959332106257706289549174174178939056581723800389545025676305614473155187009364086673014344045520662206186124597861883720855888451363824551799906654298401556348337490057715026556876419997206126785625623409210533721958625728308126054122844513258493066308111855894448173514580769533125010724333357582709619635701357199964820774744013625846959629414465525869244591787446141727992290027986336568313546769592057274915751531204521820341108348823158277294446916610956407948787589091394129166961133486723095735418970113321564392644870128241997012468984225753750794841723803058520333570142132139251964869920602086585685562249834297875013470049789116991358163729655725125879935830307304971700686340624375624787012160540163102548120134052774153927698260143983326732938664531691329839849462475897605481166544276974680594770058877279232738456557438964027685151409413512922590162202909564163247451453783934444088060306339589733719468952942792689910492030061622340482956936130858566361817652583811884021530672106747664450579390968561945245029593465876395700472741893430166369238652807743135575774449242091705252470109347197227728932736128545511529872445481205810956999721233377779688477435816887476088078661124635171546646747010616862376073789239913893107604757626746399589518596900594933000986066991023883603011464361649785743681177910720761360034505045697892766366256572687745053092592939327341327716815270340657227323749127608289190845875454913450954952915004154086061868176039931792961723422999275941063149491963906134438852551528013555895661611508651449097303577357623559998828866269244646166690668988271727142150649561917688365499466622810668957372822599655224841854306166463581210418737511035335094560018124182851595901141023548802636919369582471259825868203817367231194060408960772341341939944451007254162816388885723392067932433162395487609456313062354430312789850329373189167264788825766101786229169198135067121240710726520640359650482044735801607355631154876785046885041831260700369071075704269021166315042242293261274954623049153793320366539020700614705817902100071445914443981753058217431815054871589925726239083855731120880374939866749618008771102837749235394204199480615461397823336872563502607502334870581617415420253743543895547450560456320429445326310481731326213659866862511288871869688389505867511763265346910940757733137444395374248371263285479233031799906361031372556793642077496352106714810651463096980576031364890622254345485732217028846100146157478001746742424828022004967444674857880729920292406892609366784017351745206373982629099655377344056027240083189358779961180704030822301308225851790617969337486818875641608397637167562131334565708131577184215545000927746700370987514886014193406191708857259504970440051662544188954627460654117651687907850807727943907371200131827216343298315788923636900580226985505976267428177003783124385161559437268938394737910505619208911258709953240070679353801500250553177670854288646395558750550740092971152198332101206548693787515092516237448262606826606915535412674162046537780362345843136925662675889777979677628553951283557147658246445667362710310837860251860673487036031429176942305763672551005784911694755873717872511834566940466612782191063104038968408474036523272956857039468965792014111749250904099551209635018771883664165829259854374095307446180441662328762704734553600142728882802816216412547844333589790634449544329956907322430955825080987745087258118435638224248591320614397519284361533756158872398037270040669054313602144845213794152764506041614115533819401524408036405257787053134519096255108510835051699557184933510498621751383839279741355913401059345703172674472173825911483282280818682349745401516404286986851723959920234098836217754751563326772996797770360307086905497409272249912795845080776770949609309508389379330391507319058732874955412394704833013817225985399952617787226506255668557128448904657112360432858074799640335639561271953258078334774340252992410623480189483358969246727576343454133647247427436533062409416340627547792309699907126629020525237242229123445647416123545551428658646976608921579399453298317572541163399047076106201039352270665150900370340240845750478538924888486026948323721248627672305897901628430703588933088244447505623649199065066068143611085560174260189645997115161534290397870764518602009036140844934154802502908723208676153584583487692392247627756050378611929433856556906250495656114148833792836069447278342856621291425287069458533838497892733799337625916782085694753260123047978081536281352131068992703702738409594247881444194660975067920482781463691534147789022333100566142809972911639510653216035710395794233228303318382081542240743729458048051313248643935986327851671430217926858302555413864543274354531337619934000168587530233323241123846194718195319532514201614101984106133243905228844691271823094836672562440881266446218006099798604576142087703288940151586325690413354664923542577339006589847123561824704786192386563895550687295279393586348415406710127430167376053106404895631810648506399899199052594544423272672996089637954683876030377666140796705893902961254924539599370843937464783132443971830473795899430766913075642811233875849974005247999348041909561232967690998229404225424265615570218399007349850001034413514337834424157333429725712817811322394046640998937303417057406499283135251050849926081279087269984773488763829990280193196603990631023104018285747108745369589522979374125074589468604973920144840742775810111826630495652119159351303969741090287036882658971574782000435221814754604444566570644686386750237596443077476615101572202152455864088052895731902547263786515687753393201885005824104351511124669173622851987879359195518082376635208481064033746063319502263274658389966572903578702948727673276962549431124792627406720182671341136561880136530954028104669081027614999170974305540237942128642778416676835791656655413705190527531689128155064224092176212873041345300305318746824321271657457968544346387850005902377354415727944101561329656661949244893119621214205278737442194766833801723489496409137021796317617029671616258046179042162596150794139613118275553061698264491033689724764872111280542926207877922887200395026212415523206086638832382501752121751802268945589541218474598304839141677276692244773771917968213288393660266875853060619478384689797331049226429907882795047347748596814874522810880523222427099496567407967191497227713036578169287744899946726054506461191693278170806094651723311895936407916840697997046664894330225706592537758685535482515065099785667648115716474162523306598530024784982162821269268579085687982670005763915426294164662408097860559203307943940700944928540474526325657236269112830741062669334808506597996922178958902580076239085413616575412395780176345952014776203882354690716757163701193438300036527909305192087108829352352672393677983863003518082345667998527103450148955561935289407132120723857184325646907042997229413857382201732898930351327940741164303023962190524973021941480945055081754846983638287550021163338653710423132855673402175109494001452124587017587300277269458503313429145823079186196363190166486000849248530351768616513660240651075483778185765772424367957241963014310511738996344842090177480712054733948296664528208006205691821006414072498159388988731019732444906250700927643992178047305340714951220823939517230682834388399130695898392547150500091484368941745686567588785994062575542757296228477439896831349084014488463665793540000837142044535135878721032618871897454704765233351324545903754873607962773091321516662871918868255302435533764736457399516239128425777172522422284910134096624492738672048316141769057700350200944180642664240813319476784942383773660218366834570036447260029131214612471376497325279673845804904159144698577030286766232152967043257951144627555185469473086183978855547956863356393898151629906484412743770444676103171301928125246841243382526606388442322915491547701971763867322179539988693840862872677461756335236467707844037206279624297098387609629313179600276505891077270161807987754525092451663816974337910416168851190140024994183725588147023654628139153750497197755840143128135934063085442604007425974878504704581466756617193408148763902512153543137518315379027751340817553920770173694760474569967943829014717411508459805502696870997611751687908453380377865577147595067117192281653670048189546174893550611116622335298940585411043673738821367941753581594011842569164952037093477645041289726640695948918181618524565175821926095446633168523980322921132618496356203796901354773527520707132974309375700939602151201090899941742063680541191828546284384811781209745833034998971244971538359761767146900520814127829050135290153035518293660196387935005736981374445495632605173889026202330388430259624241045415958262657309186844277262561545274578175023905085204325243684622891540833047606330177068732675577308811439003941919278774390622512729877102699546957265058625072316841952530553962805631500336844497026666973947007760743321589470255391072067408437363161378782747608019677004454264439310188812016399724075632939497109701045180370004505486579350907870554431894908735069871148927602681122157434957547399216959511047832780731950719273913623865185780554536739052262403005461118774233523852600450227811221822434121323750168968508866460682425484095225079548751569236251516772013113785646942327004727218927889352574280782509663136680187896147508045709623944802639596163749435199257949757601388697846560344082517519017629453101871825414873628033968685398938337576596268189452428998225311088362563901044268809542824693620575170801042434347882126897412181803718207762046552505050397034086570606207822772482649697546282896120814388743944665275230616356888551889550436567037003705803294981137657234857266350921515215529876759874695701371881865614322873821745583488324216213291180854829932514532471385401382101749178393700894656654077267980218781118963656456961278979439645316047791274464920115407392834104329164270914359138149217201155836810981799514216178245577710103217562510727705837335896187967511385069252422454281919048764858079312643151840804515760120518463722696857884829216914744972311944650773273907837913706507055931762121178614479898960084664775313153284210889401545419430085165841236526434788124779817142780784421836593510140396035610527835276847687436773179215929174748966699172146708456803770772194370120539203822325172454214757949910351135176888365383601046539009911046408316660299850388174673409499560930500593471052134107083574361847364343746670878352943672777405592408176127915807963549473125009063128506369019506295198153235845430072660016367655420738215355551541074360297796516190643183382013626978710860482538830564029392783098255491347879550147102987692518790809235606339844581112665882577288389366028560088626256371834853450186960333383706542718236825844119373816215966157494914113478239377688943379639750782764020086281388428381775249431963928532441502250323019484341077028083644291400151114812451296282062701269122411042384296818160624030719147189685267167579164334307042029228457975187074100449586709367037734941274378010116567066057559262720058468790105756241697536566586894963521014265434109333347628764029535679679777408554350554619631848016308154293249784055515909629984461579507609219682577794669598798029696911647272819162246406170086116165248322467756565125004365500723722722927116939719976039824688162024087318684500196475520151222154080286594770057081281020826281148703968632357163524245244807616870604212628021362623977394419708621470136716719235667293466154613504743051686483877114158522063945748192978938738562996996830936632011581843115666259669619659722956867446568474497216712438260650196265429040309821868513059261615959425019031549076639764297713723979635641106772169779124012546836284456192888245247850981318480140999652393278763719187867501667836972728678426263366942184777660694359691409785444226956973248803702393706293039396558492534032368628952162291828229594244959756470284732831958299926650231218803172307950838758496243123551229405737734947910907077591104823831383303003731584493303702179019978866614689035876292263044965475567594070213865348340553795456219983097848605885260592790515299537874944602820157677989639777771163015216710705639335032198142481200550845661433445522302248837539978048098203615693117009473452104383041064175205222287378002470138368056499208268637163344893909298023769759903486972428658237984967670026101975363026354071125323325717540105977115632424408453170556613221252151245311744986231976968195067773287556862592835428778751744100266365401322355083122810505588507990204951952945002627485690174562277168486297715138953243164359457004273377321638905812932207510241443024426889760599017655568449808019724240253515818083229191002586694564441674879441324877338644764296430906518093664336581286995876156680258332232365454406674941026350333317679297870908028873041515684111800772836967267153801711434408441033981041985042050432414949673101338807372477895033108216430720983217919315926119281921865236508186951211408594835650743852170848402270834942170140892684502855095628113724413813576954786144167026991518414487860410973941322495255606745148976914222525751193081797186233016051556929236597319010647590716307820671866323858913668562963907993721607961864457926428044601461536751542500486215018940395287373274392693529338468506699916474133495955317127353079421103394712339884169566143183325101431545715107596798075382140797900241070855562636851914908068937872373281985815821078400429589775574612111717321060372029998011521515676564175744129721175704806208002453816582504352054608950200468261007118736120241488556318255518395596667458749151428213444973956974707733389182872526658155643395712105945300718116944511933939764498118515220916191305449682353919216316626140433257058145845049224614569726208846362596974910456016189597389968834940769422849811521832107111395476972353987732039105225242299590864405805931448132955348296190269275115627857583298503714516862541551124816024816415089604135069492424402167647819688475562232053303334305716937169046247572851718649571032794666062857283092596247307385040825461622909625839934835831718029114647084978646273618796630417522056388159097577612578716796252705261146253293927561192548239317153102178852753152967018424783453925209704886852551156579557562363127425249859440339987237149377394533777060038274286980355039739672929437858421711356051098125405109635470390178575872374997532061449304697201293990050492490139595826924733407064969186998388298961868728661414061511654804137893999866058967260909160921257354030769303984236291232834441405752829229993882563050498074658671760631176682622775406456235141201343694413800115154515172261402179731751738458209664841376576851749923868606509371466236896877240714407952459372136688245383461105063470481434802140490304048981868454965407187398672058210179791768306347168817910748158522148801715160483076053953960447554148954484544164194962742970491302598868718975632201063172338387047929146528352441668168383514947327506266777218143758981811537589443730940861745645699527793862960448460431845564477406850477740528937965986256905891429175685869869929884890256418736253330760560906677517813362398826783472887564176256678961470362018238240483601121168343970076029627939972441056987688899737681656657523762464196585647794833705076062250194356306706154215554479146317838831284847889484310511559690100672673192061799958279561977719965899306393242185158335664355526483276155523458616906657617748715332229247271936631360784998395043005270055209328991228331035048693190029208576938204597129561471506262153801042640541394309357052727120817674639713428579651072424067774452901551018395888683191743370792062574119572076194680487672339947150091292917331911123846566055001159875102684646158789258171634594364732363767354475740278190361807982865452608772185168433506653604088172928734666087526580099297750468652628768462214154829425995409967554969502227994623668172425654560436538704335253759099917010499107498199424951420112812802936948539158240733904206934758265664360583557583420034927503718469222431347586385125183209853005149393074677360608531355548551899603845539966919644543013244226738850178234674405030734092644622869286962432068428717500525868720548737661769223166522321250364940118456429494564855583153718148007382434686276787112333998303857955351622334937750436212263150389249930390994073451102279862689998017057916951805067435232470065513733076343927395251331675311300024385943998505992418890377138563702133774935366785072631273738979469837528257209543402550788972110996051594572396166797834126070713746307594198486242418772136666333600651128345991708520563310101972208060153842871872659787536759695787523286767260328341633867475401017594392530498004060390378628701244817353285306509142567404746495923720991825841923285352112176079687642877427515777304529742778734446933187208179374663817277375291207206735464933641568786669416621036452655456015797258638034021567276856561687968316964436825832447439613525183106136977306553443415500750202668909278761013315632418025068930072868383481436135356404260317984473140126732049256784693958785321467379362072372091185603330761934748060294667454723673282061317168875391542862139540836280401079022211348031764603167808138628774622296520140155807101905195528705683690383355173791553496327834159155392210062292495182802588675608735423153605988197155572759059822033266059002150251530366065472555208643257518577981579587445292440575608565945568182700617383180096695895365905654691240284252173094277713176677207811510821995568506276212963880986303799078254856041811036504693418505139529403550820396552117161872619976032334828033116269158398304199459295157575253870681455192078999010454572637925969271677795103031281305711645874398525873784811524203140768876665580067125998259300200199474247773916504342508847487685067091146596600462284696534140525319867077890487632766662991253464654187098146001998549419114759748841271007803792270537041612149761923540242551345901983367176405686121177942426574145372848926764216335299132447749044890407893393417068089248651279296369006718691305660944639918215435482398283672634234106301582756994489178964479419129967879798983935526178615105399422484641364678560292254856727578499756326903254014010987912741084441107239048990369856556534644658577967126784399205944562545210762003713494151549597274291978945396176492721499634126044099099967169382983828899772543059982778458887400182896104646840188785981832148390096352987068726769643923790540423500852913391187833278145072796207965603124737885846029189690294057122454395729767380986606352227778477349860968466043826603818745959246125444919909564597586186461762974509485760216192378661490354277858103964999204984163830715824118354448729818322142726139360173982162571396167033794926645401829933123086874114406552700067829186710344138890235849810315551376420414633887722600694510458884051410778685757099894447096705723996556581524586636053535414954304732296622031512235343502227183559545357730408025814449206957749268563215095200439616432476300502794077915316865956712424869210329890883113912322154617942177831494334511214400090752543315960146991606162048919959515003274988393075290704073159793159713162873499695241172471518131384927890349492518051160088928353930072260691942340698513102704159752631459372750663165730930758298342778606440506983912851474944561968048450907604613545147552811785513519823493084144185543546776643604455693321752647891708681966184653870346106819675071833198129444721474260146825391689120960243328222391989964193922611837849446207778693244196593690115394170408996922120888780123256149699678335512594094587755348908860823596430653865956045027016908243509601463882722546957724366568305530086085339077066346801485932401177430909350716174556078267058660306356332434447716154259068250492834357217845112091036713453194171326688330972632841295255868668257845545949502741361440381798524819452509292023150742325756750524407064005364832260525002056611796164952873619752802324967884794776875433602640431205699566431171098407943520804303218184264421383556955444864018496913349148448859386084986914663390812930927426157454374748644771867797067162625879541406176909233606978837009537334399528722608198473660743966937203311412441313935569672698891169226923252856269117843387863365067631239171916010659459672108576546445639781876558188406401569747593377448283701569226854003127052369066980362347000828893418250050935628017777710165562313331179416161494689328528592561687047103733530446833003360692530403291697913622011085613925651183932902334400746259561463511584390384269849176890731335431985937853808990673555183154250737130372837452279703983070632344783181970623644653496388826197007769660852605571339262352949581148106812772827421946119278076277157221311247866383657017754816406811630005437780444640933324218850268832337698930349958836005265149568173449372468901759501136804432122332235794607875050210450178499354996812850395777855596604935927923993530566455602553489542443484754739459601745168351482292098835588097547350675538794131846294650377083429112686750337364027053231853638170135451922198840329359173928819503412736196487566117203106535503648166273385048847938414211109513380642386485601522270294022606371373148800997890923886918457580893766705827829911907093198290476505310335104752823100357598751962073646405845167400137491547973621613479555748704783128092338484100987190802153722112806500020308868383736566703215566110231282361527617426083919090179757751565520868976238977162303084769248978481954458758568728187480803608250043602616920954632702276786451191417222306703939001259307715632815627855091181191053950996147743550389725311765555528893192749101700898212962294031713408964677136471902969434322837830652875520036245115603550990449205347072074586909167151040481392761974262706589060146871812035111530770926353700975573388440536966626915387908003643009572520807065000375673001367552400991734319545673826929995660341057262529864739520316292199001833259680252000061667831478062364208759291832248090060132516362029328155302341802061221727456743212296365802881941641693103815649954835657437006294191499471050580980140086288526734478226923808486805515458942095918087098331669423802279847814610199556335334903593022121444484700878811854259768763590402114116801822141065210030097889166483855475576996852678787532020027153084628226322227323248643080398976915580249824675471254428122020704424384122158007874671409841731629071979712227499761019288583295292127574339689283933550471164104965712371982542425809356382523573262067234422099959996980160911129321579044192376041038796980302405377543530560599924477007490315704379845926752423326830801372943846597403168147918374039172797873233411187153024638579836573207395346953701948704984781346395222239733322731578995879338808655578036164299909653956819035916618455836085351241796093308519008028670871520734734487972322541482422706721242665049671598436461854410471563054094284095051503156734136012430198127628860566045423647668508648680046604429270120779183655257420120641595633857417066912858380938078599840278977902779945232239463707160209213780924104448988209446992664942789484297018526315455599149714486481795799717322413172776508540380457261685640154260089112950710314440557269611536508913774660298757163724339564058062548430912611742527515033267192455857144190162182129409765357886369675514770132704260384546995788679123694885466778443433722919038977976453543739131264013790407240945022582822732658473308330836849029047926499964536378247190200671845424445506572184238150478219343529438986432537770778542928889296621135558793014771029749210056571635588892300188890185651143663786841907608654617193294712774888326689087120612626534870654434772213445471162452836661199757107043093582757831508179043407182313192964822997740574663969932037451136876366773533324509550786743932869746644906946345247946815933202406107341695099539321468670361744273028049197409856487464184868007664276566174995172885950327688943059549260354627229765456587003705414568552981721166115264618813766914896536945915567081027195204710219332869252687045594298851857660065255404704023592867329877571107850167079674428516815957086342268871681176895818988579186628744723265829360009424715166201255679371972135576021646541318156490688028535133962061135529411890587546244906194341494976634214258229076433153314901704155952703310781132125106657398101977675447963926075040572050904626258282990894613342785511623997339465406425689122538720115963068511300562939561232103334771448541659118546386684530525149464649803044206805259312024257870817409310560279482053784669414903447821793912848928686183556642517453343460291141874807205694992002010925389110451245942617544396364274855761525912932272366618714054095691196055875621437041225196809299643929739505343226577264245302317614566477104067269466933914165720756668801757875008506169049238657246835328074455764963227554219077416657609740122553439957904697857487030549129406864975461829597910823288021252675359736217690093692909781955103397458948733312643210267484906773236834310285847730957623533999600089430234601012898490925642641543989983697027032231926163796883402286959410650409809305504750674818105309108760200631016171456119377505755362980668905906052104796694375839431973290075373078317984769642839416429920256005856550953813567275325955893731597459160128625639648533694592657232107717608857860616766264815644532634602596071994929633289609819426734073993319521654433721548083972546680905335715935676854555201510288689056179488762580381948663518817632428402304521500668665104099472826448914712566120421748139154788735129679383255111704843509146833296634631013717445282157736167798651439784010664216266165676912588505021520599211037021615195770744463735076121539736773941548005976861036890257792422387136349905334699923719330551469568759562981377335511965248674894076725308119005591961423351848786207056681214207606030350881846660744726048157415003787123136181702755371404359720270208140145823708319466507169427396054683429328846846835682603292076355668216205771372725515988518520950898167376011972402381072603455045598430264082744511559939095500757351681776657834032378012048387424362068813210715743556556726286646422999742102498614513918585030205641909570198253342463360682852241345382142558796208704946427975847883842934196702246124057886770737347201434423784053265192247104321863255629516734072302510440974358180791939549990442980034292768144763543933082104675595215887654812942911878548365248006363715826425774323536023031205034651815100132073402345749298594409467692029265070769701177048081439853112724440909074856376295133368219717462282695457681312932549723193636822518529961141046827184490138457851195515569209048736117423209646597752303673528653084458007312351178876796727798939220011000471967917965254743911396760305369316267737000343058936607416895585086209836179995063706069014899943502935837065616609553173227615330385986180879385618259034877311024494601121888236318000052679787420528679808004749422274120655106140913164146589212703349384547856648202675949074352347309244867652729616975665597098303743109624784172053616283178664818929038376837903346219223266644678828126464053349148078039542564798282221782753588238346971512467285184745208342945260507957811479718604474531150777528936387347677108778715890686886934782288906818861127994876270628856463649689770724528730420115435162719906744801974502938438667531342260737560460111010660568893908843548083791880391690759646711269796613098902852592193969016396440388250866694236682908066605216464785119736254457141952731280540894961443102298777064170383965010810861903742583158184848336312419088576241430445153628474243389113352806918542700738792102581471652580979962958373221607483063142312239868588733266424042830325579605842326489680184894593858056560932736133899792109183041833533996387919599639572431686250155166174858194595166132288706926030314480713606665453527167310391700699038111631077807170463970811564772941111181972273364821155211434449688580308221350907409408323815582373017520093097881519256278284243790731430578334957876282599401947231995501006751121089979230505684096477252420238610539940445001106207742543996274121966781800373413788636415170516262546703810523418720431682149255578429964105176909681379523651318243265133773891708408497688121622336050478684569912642303498567377236758675809199292067110058632249157390833763381615907118885988549992656661072699971842614443603718759011619527109909126772289324947819757925810137276075891141858612774982257591408493999722656914264848623505357448635839695798371354639275988944714466820337923765845577384828794721303719723027306642283219389418978153680253719149438142289703372948853514100199152211365832069112707892342647176868324170816602745361133787986788706539787055955785327595549553611507946195608005987711721665672217402576811425552367880546072662382108552708435966734947413764172369116257872339053132049669331308471152684313912803360677900858881392216315854148681520409193526193312968546285538744163081486248531127339165021794551423612624521251895095629413909085577119921524119876358148672369598768062689767309910804400560152785066141142899945705474274720708646136322205377790484839904145292087685445020043835984523264083372418837700534677025107213041810868367966085000070163046440746514540078318324599124185096965416231532968873619195641127564939708755639859738888285806054872864889901094592892965130588638128320084879971594676747657279955050621826466070932312364536643359447732447349419799068216119872550463266024203261619110516224847120820623824019711970757514529397980678508522043000101620181503581477150914079025625927838979166629485690726690984416976078403578573274122066177026222863041318722591096521755267952361607244808423426061152671701326198657146477474179209394785160125736243263724340102614774346320143498858091541901887790859909303500612502282821247685422959638344683141408037084552092498094609686325104725673963338029616847028229102301870493118801265775644205356719673484103433625173566968345016545579662139165858705767703973885991017148568649164050352663889243939105844817403183667053852881394910191544745611706976384969524718585087758022692665225647658953606802571058573407094382255177602042265874352914548911318683946579142333202115589427678126920715173450271180623001513823493030248546120673266575415144406293523544100397241159444704946176806462515972025786471740505336732286890365535531734276634327765291780943519885054318557255271714403876135327991659208536679162853054507116634206926723036715127729914962095683556267980823127144248339025866607625794295882720872018450617577937515688721821226873514851272270686815099254935385677022518311086556432805171381014002042499375790695225531625432280645156021239187504970005973595860874968654431430961534925503476092251665478185900429839855698273495851187011112991949763989746304010394725735416655881757721597591549092369023461081152852326059605282734033749781946865715536448788532356672009651407799451641124256750553552487228856964404112565136186053270389728068873928258623993064212545809103107319426455094883797414812041031477439411926618059793251026013772936384027943205018533279962197473805565668326940842392501614203860314603989307864765238162299916179748421914921044107494386258522839777137968383747321018728754377732614479186204986224060232253082853494204207707038323661495324762994632844881104027298590290458235167194040824634531560740321118937003612082338958700473444115411639165389504549876495463664733722519799664162497559240225246255951350350609141336057100078973863999789725774130377358589637398697925125032910710890974959424754421562216262731768206932433690470670449351025725376388646756626499174629742239637460071061935455841823881730672021726634244443095797380302191074110099879005863548760772860855864136131025214534896441596456571051670812270536239707935072947022518195665585795880204596239690845238222807307014601899101958048546424209768135288444794751010047224808705306029238001112643591735764383654257953834231882487522844763402247350492543162778272398001724339148752340819662188997380095879860985436799896014024454139591858520940773009303207515946720835132767267660739120221838790527349972019631248196077529557319203014067508409022314434089233125466383596080351817665488660861566061289652049888780731911426172879811317850663767401076168486337932599986592135389535743251193153909642200742339139900203507451586321399608546976905438089212395379731161177793884376354175991625246857775495534950206750398444328982897042026416770926187219992655605531278789863806758553170717517191930524781089504551963568441684761164792380820045347225959843610116511613980256144220521301856864956226032314713409014145576281191191333875780337214429707486342560103812546062435585033591790729046545432593565095222591918201820196692952691770898152772373676751558845859412910882420308277242073149185112253784019065443742679385439269316365038962263621639641109310243055797942208300054070128333742375508394702813778850370036382512704723971954433821172096007970600803858314444640249262609793374815407354460047119711631110633309032895802392234926610879170382307628050845520973786201141716652583670297929103760864331422178682320944574169655291902000927799606751669784789509739531264571196718110934666701226825980079158445939491923406459065004524024920550737371727548356454713807676976497234544565721358092307051573389583850541525399019722658466887926339850500346031280417744964429038957301027276171847043010323999548775852762118323816658899053730938688790068003362945983644905916628999467527651883436951458309518307243724393840213012725432005896994756830232294375196375741794592614405400477162142890801220387266056310057325868551730668507472432960767569744833520107305931415650336572977048052070649608519713873380755585498646585830026842328773711953478020037285643611720272720965872314455616870635247905807303998642401438619030134729866605861650296122310740168503915976642114525898174420739651352398027664896647763975318921557245460023039289491565716354814120321720024377618884387632212765201156903066564155501370352051652903735884052864301278226372426466269961080333433107073061405379342145494744344672930625910630429229509036505077448904570262686223283964658171536739885010593449485278149714690631924974485835304023963732101548753251761283830723355906314665704358599437876135107420929731667227129941887633110282612532400084508055483472523721510069673684390738138492359680487512836540503060642989343255341090838536133014376564032665042063958027856041085789802608388709101524322809734427850602438775071234249815816416764978310986552994280243644973411900883608919867023545790105120038314947353509480434729685014751872753068770228692428471081075802861204450258702377177306281448448974954486041849929595467932714331051429504157134477676122990383250740734212534765685329942149087829999913201406720409399767399728376717670187433843299056944147586405712693960237111597897525757203224724446915874869617359150643662534274208645322249230376670940669995368223365810858190993558091877110042527446492827807516131442693216164129864838601215528454805728465040437454053148541040673319897982799090159594040763972829875375327329407194292528079358827008177803352822325949854813803767609958308709771974462991063268208667757244863068673991608295764094787450267405782568391656223745657083309015968882790909887280247784475271503817019024586435242102383483165316656996489961980774906113851601984929961706326374071776174256231954489852685438865248074178596964939285672428106039033931536764487332811563264624973530412149841444635055226662294968361580214686632189149113200528250879718457026934426937268217964827864426472130005783301589629897891794542019525919026159849393133743806788946449972528649063122702697838527549035307366192340190870218783497725273490556956821220109431105594987507896875977491763220519182754510507032611817261788517897946908165022179221606817075842316528145963641299488247243068559955029949108273831132072668560131375514543633026445396229296997670760063962372203923259363429452497625080522721638049251823947973403159680483295683261642714584375313205567397590653739133044577935885025095462504583496895815183853871971230640725800051092330678514060446682973922119461166794171956351570714605359984688535767882333698273699601014736623557684538990535774764063081336259863409894573659372676470590131015504261105917815130289402062635273028726130389659401927264023300890768324019961320717200942934329772048919947811576003876011074686478782549427813747688827865053040835499826352507990872026401301271666722234735409175060006436949456814339824327615672946412843078366497828922535854319334783149661690218688092325206105312963337447889034361477320542045369774965937115668290316968931086484545122583097770865896499220120378706760518151651794578131088694445788610673208136201111145242526791726069364393759085615583914643876992764909924656113882406771655284919182726009141314107499312549842197028828666943932070444707406137617241935788717149343278917267328059864289258405549096283987390878916973500071432014577274580402416530106581158249052368607855918132027272773184859770530570331389345937705213795904626263335777545716358808831056649424446669049244272682407293927383767597802601935427411758321505279978303944458782320493628333807382722826093502705745497713152230390540659288428537202357306811013088281631123799379497189074509220337584794186212374476493786324955517723392513590648157595368672997299331706764160232507202985284803253322901690902826183929281169921710369049920325234954850497689756953553808289316201665349204634941142368511015692180119960411089652578461932378960131596333659485559309696335011539605830727873589902222551500048514825349387929503919092992473331699513884652080695510338620165906567349488876751887820650089186276797410059827802997953203215331396023869950993248630840063340859284672542778519277155048276669447042140886653374806920409705152454682210385306427964685532730498943992112059956144224143897386993632047007021303926546080757458722704756903278937210016186039290122597595647497794358278094956716389459090276739565225893683725075715915645064785357773180998585409952710366087034094516110521502914054576813824029426155581111590401508878979579386532422376544317263526738437065630838370232472538356470745774648012564076501091776718997046100529261756231833551531039303086137502840274528042764202366388626728060929751944815308901291080877179566139156570587680171688875215184919250032829161157199120065171460615651311901502177552356429359884543997967600644626002323450126259780900051699580365547358911313745520828331492102110313006499081707454032572868275978485760239799411989037778688244060026704968499787485611140865243175294802170974979629253874976886014214583400662192253818840267415255707246248728989293842929952059389837346285427761944945347724349628862332036576401879303313036235555128392502139846526412067098680775133749507092311176664948707376402549137026097216156836109303642139324089214909792692385286283875713536631695243412120457676310676350672935791274666551714560710017377182637087253369593197957650333977217517659852865786334110670608233645021159394874940801272778924249287313886049653989014184024831656442920992407084307686336240152263761889462316484523513285096872429135340342563252145299016944750139107231597740700978915976066063143680705195084425636842797905959365637506010842255872594267297893176972790316485274270411805859592684306260170107583276688846572580489454934460939986216535632498111626398594735225093718813503024141492029303833067820281110951252911029462873407639797257732588165835244053572163747072567223598793473132020160472549988318341286886212318834244771647341993582822446556833029449260007090782570156185274039663678691297963867226478016793962563790963436572039793480858962058885541756074895284280928285146611535643633302538998701244440290030569467946542166381653135163171282146256488241771283839810712917725897795373439773244992542512810152559160435435836944421477542246374740309749959747179797726565812839933967046170927159103360270836120592631798338878512311760072363854616895595426496842569972944823797573501078006842598107018155149239519879470592037171941867821272068844477331317251799961246898009852550003483872701297453121581588969691442706411585304166841836925204671131308169982812764883059944670389885909303239232906435400150206279465838127461061802665683028436939293356481073823653743440427312626334361836135945588646849150933395961411425608708155279850676709825856759879676080448916315426351181181843471228066246594793246216016522729673352775658120162404087854915064717736299489330063760582139173589270351398065886188148570169346276854552864905927968902405981432378823780824085798446652704758760003031800852279810235022345605721924391257716754067515091607802528119932018576850830883634020562841707322465766456209091949393783845154149950758726422885056214895553125207595000420775581850398170481390115292861827179923334139848847626651518963222882669571629660581236042296625775609989605596147481017963131771487554827114923954701167017004963387426995785723426417155677733669318405822888619231086784573571439917143716863005971985867327373241465897513478283554332542075521420549120697697445948439398539625782712577324895111577843579682875201695388659556239522903089384401151614652928039242000036715691472105905690814098752847040426044257619233318437495346618403942493254510061575364265098541205916444440467034959003771140636050311163418083098699572271340520465221452994083594385029478120158465667350261961402334305203783972808951606863668157887341115191925837081809960368857410144382781622409706964038191993826596729994781771740750613198663510020192668702789793011858271774029994795212245611519057870673078577275672523230473052283991901377252178275013616213401096808725330404589798599934225821986246815540867683952842907819046031832174001040978956611221990037248337931271341556316762780672740569511440884582927624526913671142206841363403091686987158779957709074492773017046016461382841861592539061001060983589706386283919602186727952432310155792162246803392384170619240494067487026610922597550909125375368254782198812709323654679833987564374662036136078946944555953048446193843385978809913908866139959519445095855360277981499099722555586773718751918597277853113914882282603531917484866903178990750998679534262457865082721316195126324145069093049521531289021836046777913017248052258418341567840256523370531007236236946786365576038740223463383444677113567980347616878777601930404272546714407791899897536325825429630376075532434645201496852172635600478453420534976899339133729695810769091045071096949202912412136494400757802129802532017505171582871704748072913505242252703289484191055282374778193055006815517101417133256862846150775361479415600071472702021524908138933178743023047630205103179126617899962342516016874386583013275833110567651047485583680722787365657265887656471982943542479538350666468299910204258742409202386830449612812704974092527206533392630085457059153668638154926979584859656575877236317152233478415696253391845583868198459554157841084753382057541124529452436998888350034903036862660683907189304025802414160435789515181668949465368737714172553127153604587582385909532491197575505500673699588783482867099697654893186532514880808987096441262798099481032313899843888678905251226096190718051194810154052345709075893217605881626160066190155389584780287362507985056189378008282115031360092496760585897812464650738277015759914945197667133898158189855525123870954331934592623082768799923919512802129305743389289246540485547764938187597833888018084393698354427196689133925596685251644766089012093192912563499479604783640759923175723550324732587840860623498082737998174938564961241488995823414737644698359298468292445329274577909051269008525290870686370701275832693824217836165250459873428432497546041463489607270890970021074591704429433473661582951589429726179991736825121294822064652836976555301599949460644674093346825201679276703931228420296233545751246822192929684808689012186900864319569531259068710125416092406576093948915403421703137184810515944300263154569411787879795440782954102503461421138888376888061119419946182183639472917808589119801987542505786645815078833576364357184781896550732281835150247533976324509822275205672752058965822538868714956262988264630964615408050331267920532821120634098439862691159359155312330666666063331974553450393659867907110349159551444822969823798695557700832385617686201569144295277984643291510991171618067887032534072292166820769691167920840578731070498307058211378620083109417117231401595205897333098920224083678463804360006041458848527160072184978960240124580311554101991750477308597814533748478478760106551517940147231493663333097229315234452326493029214001497804533091388325665191851270596020498126402216294579437518500948846032289046322203647430728757707134533049487458441433185785639204826700043662690276340924804544166533634500633713116259633512697078068878692943661331659888569908136948237310975196064244836146611749994532514465223080673974306235069104539094806415456873295268294178599362366089727055923049112420477018996910572317624012603959900392438783372184492463449979103715846592463050060175519732963749874042188062984306035948567888400219464091961835399684877022417736005428456020789420333928669851673202373248219370043399262155554863432541175817318516515889920583566001835723106944304166390029371088689145954465075087205906973019728225413725837410471125403485981873756031439732962509540854817309606832646554665663764304868770065728487485864027806283927385821364540641310796628910343050189330127300913171989824975505625075039131484066730128457976687127154434985939731365066748650498838439140695101568952290634607913793745029064454452435427875996018609682194933450534517544256488908709817085574225436225105549769649164482256012554692189496819569149261453104445189617806350711981147035369521571991401511484045540664696018104283176399977283189279492455037030986118457258740932866500957558345177483730928371538785477221096373692405717058465314526424099092760363861853576153695369610183258170018782313320815246187241917156368246133139679141126294609956900562515904004213088598799893236950473025386344880841045202274201150507385614152316563966924303563120353158418438113541912446087541923959313499004141857871777179483862233819131928939139638527577480615190964678734644980616523157323029722450612367380459519892231525699501143316758532691940580822171165652889990527072135829035305107580390224160052178133907942031089787307777886434916320583196760887164083790330163496001115824855331693346662861568836261754152656991296503790995750511598834313845930272825324432766643640801585858505144856678944542613568591306497100907082563373505229488537820459629251145224489908468211371083717919847492185238708735099174659365301093490941380084145236021992378703780176849217875112959912995544444974208162048092771887038169450446652114818380105765921596284139574692052020569341604710292355985656478814109656470471694917936225029568268011292314316620827300042900611024663179265596088553375452014306734130193478708344460335187707080940707019348376829124263412600613282460550021062420069012381641324118715016782871707560764519653223184210347766347685015157277849570647854455520334984705280322843443239175182483168952324195578332575203653018458254602039215493049135660156815124728217674347062650456244451570892566899498595601812191777832850720986340499640557884953857574839792090009492333632180953710183375404837046312309417995133215767297887830941100705748480464622877226269880282768794566215040295612506650692410895738548601604133497756521308198880314134547435517786285632613419318320829319974573751218992466559146462828908803617234756655862942897315855124134510980994120504309383028026963631594148000151486938783959587620200498054625951420678710088953265123074591966752443902735946421052217963647935057511291114340580937682756492590071510996116923979626702041967991475403071773521787259117434881467388269869512076635840818894370200364653173432771187063258232827253231941309742683454719323646188955950975863357507778682961570190659206127241053470140111233422868325831687349530661159707406900688175369575582006984694349918392426279986398332895029302128025088622970136141791284441527555013455251932169979821298126441572987237018238001730571395668881095513915789570765510448320339069731241583281670002833704901907307694780845337450039817846471473256377719061799960506141738946538265670366728691453198003098242987754483570502868285815347271667804179611644916794036710374731831781747241627986587904127345428539154356743568929588240426464299469143196468004522830124915909683310511649548709132370569877100003962861830075292683565927489539498158168018574232262615320117542044620217684002101374193629614885980158728798186701661535294651476526927628136514136170551728253129285866683825972606020900843784291714731821140672854431810429364890349078411735300298113455948275268335195522203171668694385014629712519137518827685358149747334634691598724045098113962423423635583814904268016861640154314944582350441269337853240432768056735509006421043097698422454714415645301633287741501003453743251282970294233321552639768451412879983864676435858045271020869229454089770083432981773331590217730754957929228641904639573211041374750439498246815252577535722433794285548825483192705356667709956853018876423000042628994061259118373776911309792371742371373270533005864183097667624698228994724214127524699933001318124678766981795255391705764660953888943196752874892672483698865071806323355666035728966611102124055493043174507354005726925775145530885350711344809861161824297355149253855940773981972717157254651216785764364324670893342760381780921789771635757575695799416435009427488547402968201655414081805914007517348539158211088368809601514902778435009386727587288727473793551431464619200736028497730875776667275040614268194974672251034281687194972606458052154992744757746496131586492105094327068246490143682220382116845211864698202450320621568304593274837027111330908589367740408276776274396863424878878576632436276810465838628485678959428541665247214311181575967185525789047561511662864145417741358436339824197350218027485788249096163404531506413701369413143699049529921212862909041313121379911492613385074553186892200264091800644783781987183116815524406726214632297257964653597477495191377912440014270113790328595439910268400091178621247257211003686074195295111294949499532081654724504063197919376772028039114747818614992169113106496507375771565554195555941089356680597237819696881567101890736311439212883605689839504609893920512608489432081518196470047650835810169620102704597927962687527565287326328881155233120192364513461094866068854087832780838445820718656012344223198765263813341953080333463585198880582270938150287735077323193102993515084663413536464437949176340589951056854156022105688843230836507024120445776543138663797946936038101986845452533362576202005224270798921946879372130870452666373851993452116453004280848147302438244808149271076029032571787194438736171205982364397559048034310620411487329504528042688418949077845678388255186349116591325747164747414043281231521844076708406465346280281927636341849065966651985655296330869816875290774462134574739908627996051036683193644488531438126054008268604191878862015091376557822497779033007370955106923395232669752986548892710842009426571675477889409745228793314050812747393138175820336968743942659631988152117303988487165422691484211136641740568856252236264223904486285347516533092901838197571760608044972259475967820151931554016767073376249927883009296699290273841472010889337953612095167957965217803555356356101395205904207626249865981165222246943047426042666656353630279806104459882258489410197053166013636671470269492099782305770173348111007454473679519107959975291165935311027327647148051819827313794528536362343402941441561361673914167575712001101773685319503244045160987424905807825155316102432658770232511389899817525997001353329133161567767688995311380607543363756779301060592513784468400820208886719195479543319133362201738674694188924955791611376109106189970977276991134844836284547575471641405068014644899567493312563076284319567802970894385170920501530154735611818619515129891509924630107848817805767395037758603848698368823188366862667084217189382524472904340722172214204338105128874048664645582780214701132470048972242385106118392711793176855900010241252265613851552463877469246666155885674169492465033923143744689919175845799233897482936062009265134772445300959412729122320749753289737814761996781618491176133346678343244778266512002814609251068891096666152356887653298529648469343965112308287414857450071138842004205676523213708779234935876277621634383005111647705439680121750006234049471080336509863663071823236380539511192735159557081815031055583536993988604819491336620247719147866797558152250896916834914870571356967288431193141471063405310920490952361308797055172472958654400678140097564047980343154302749634072698911119931691242354719513385149304301561322728744784365532035360038025201138182097871004833904389102501538987127019561683842066622806358219010450778375906047634713965250025710674721923920057439786045585317531950930136472232576043928187757268223717953312625588879334015530997909422324590920899976852954142312288300081832939515011089898450773195805153235875399798168510610353376422775731258207116032053311568274743127502925370853927077637857359799707582862021595968504096963739020702995020534334423880788513257248246658370138833992963972740085673416726780484048452328550111432472807218677514688851405447278594130713950495902800377675328364271569900319440811991190581852371641504987519615738825775989356173414987030936520036779779818835108507810915367124004835311529779969856045167384358056412613729580989755847330931934516410110386734262020723594465466706280301174715669522526751715254226909764110651774078587401389230006822945205701512681951738435665110968217349554569947223335739722003220051556484399153885587443365550858960142127934183610084086315624440088941402564791877574855134491665466205147711074635759966730055299060730601092281293885274842552254382851103613835141972696061266357355056209733453101426944850384054428566623343356486483051357463219449456709361381653943554836962629841010340713944267826657455561850945547706491391051384951942029976823888983503694076406646893249586217114382969004794048546967833854524087136745566941709218888947652630951281050728644904563237745009160971913990970267794369325148229948760946650492241127294530350362495590390893483548732176876991400808578347839316325798939303035264691057802455784562490075556666161977536930924724898619672582564103524469446231515655330043404243587729020256112954613397940242417932043534895782986930203804848777375162199305292424152321099168219364235262659846369651550491706471758819625922726429646322981426208488590610770011875386079508080808877144724101840126396430324179102021485261254493806572010610580360332658662390238060116342204898846030478661507955818011604991446799719836529707721038178998742494371476772103999732204496507778431791247765714381125410293702008175416300207506053496931523652761974973826884143640667196725544197083583807512903341377741173402210275386431139831262174855937661050086523233894189100774300247113022832256665759032729009519635098453984585753228009386406427153740691989443433508612301015576806821179701399739205070386182472766818123126966818789601620003222013505152594895186056602531034830516587440886030981660643665616260301845849510443081750296874590139540922353342163390300129856527940993935927929510395647030585833297649353377234098045996139310841495543869229436199753105095605993263270523760372249799308031047848950154554411105563410249764375026957157234291201822746236738977750073834183536559133131424990583913537318823642005190065636086970634169203033285172458460044354825399031544977164070479496796743531759831835153714097423026771261391063052026030871608234136990213580231922950513729466544118269366426348570428196034564584722449864252157508528432284269544533772747187136105063523608188580416300458300238985898915463288478486147649793246177001209092295327015968443841785511999091158775110267754231184400889780567455764878371684582372803218333767358758655770873439418626154336619358790182662555445674169955068493807181595782565538624131930662801454136693793273473514993046724220154280487623628903120716187600045822112046806839454280651418165002294080362697864822412973927189448839365268039212853923689590192474030953637643052351080437350881267621920989731522456165444973879196184935987097296627962138196698480843655886352862925461186485418533872705044571096680567071546514719018945320559785121570038089755713665275011588277847106970531817280517319381157618724955154186148093312932983569972404581470953927733776218610795123756726986612149956580479811471072735190162263377895299985679844310821473226148055772007328394669363697294797401858032846108829265307033154190110445832755111688567580043715433836935401200723212710690670544114159640456835399768349875949261811030378664484792265868363543318190567939593341245131569096183021854389557961529318960202333522354147385264359582869180533930972170276143885372901259711170768210599686984239834569289026516191432089783582588118857007961546216869941679929510752432176857118729532488162563545857564893471669782141709415487327208958550267192997003061274487580208255863694835541142388363029870007132956242220688828071516752848778071504839324954195053979332492988973798152179257254494249222898606401818510712006130437019302990453878526895156510701745312567066548631167757112801252680864260751318321763176088977300307940907105580009412798768136238787692833843854962526267075415397495070173508334947586658705904804117793477835413682969244518461410905397143406513199885115787476280425170756044345532045226948020688713188838012037144902485409771695095392421567427772510328158727208308926518898471793635883766609996296548600834127877672191209130822315823688225012675607865052947630422932665775532210148767537223926558074220166366608823052132807032461261738715647809279948827323649837704800317668244089934390816824288724825111724568973616144110152021319963459192477213234375818048569030149240706133985088258608826515910724176808964346507029232616630489804136301493112237399552015805568443585911463898698098321766097657641029411939927276211759691417209971375308964964455490940426148577563815325003760657342283981053265330238433430180047349273365107511456961140954434313897492212714218969057937435282360077878617037088243186203456771475090569533346059116466024124697919206358579069559670891908472938133857008978733857437444629412236560059888739245462382728651937600308807884818109127415060991848203395773239393512033078313619395281429586206638316791113627429775368021641279219575019617668888830126254464043318756202208258970538287695483410260195393438915091524125967804644511090783555701137878213165164703825351125576425113478590751068316944579932095706762777813101966447238514367918455621144562235875583922982832451879844944111923518961659506729342151360546481461900588145960466238802380254791721818467315442413488509928110382065696989894312323473427981753445270200320932069478557486395809972310041210052503396952272149958245488139377149801350629514108636586083781558562299978836457069854110675777799151598119646144268154483302847819384131468071768656676895509234666423965242525659574203907020585429953535435968343261657330983453789219420541258576855774179114961397303367478303159076610737922297445848072256245266251888296919936753356832736068627768885306555968125365390697743360853616570119964452211360055480839869761109923430321443031463331524338647210897994147695778972869047571911292177185774146819825225883872075250937641281415647237361946164605698526109786558977179881396926996961485680359838671373604609495394430728774796568371234590933886772060137919262724942868565406087069887810796944037055734327131263687082533781649771802253709034016245587943484430478548285878284046199773241583130724628458131778271801077540118373858825316229406421708502191224210705603041315764479062529040516276446160448442694355438528908019498791556088534738653720968860704059252106131055116043377373326208043008781547071087096172954621643671492813757346135043978700739712008883273591035934600117115584585789953354437574893690817880381400708357580498716029279108458984638819539431895595623455962792177772022368843066387926050340216491663827746732914266089891863603426364916440397465280234383587267167218414692812804076476312811544397709589065024913625009898708978518869155065342765666896504932606200408099526189217810107697704300947187640908621065978083643946363320344420442134934019401771698368436466218250743611110154938057854467123971060902139584732802764654935159799761068896316055093190214875897538334533396301918611848146391513455481419071627670663626633263949345540329533476891128894601920844113411383519361584228774688387923734991570456758480470853820596470026847048002801487042249744299555789412794402888655784195739937993383671762933617727506209439984811006201027842435223578796352283087810892514589060556387339902378285965463341952827102629433777770700392871063605251421009787719644941294008537819585537846944902006936079109481402734338812301278940091755822010858626850726545419424377584660611714942630243517422079149060424550950932489286929960540643589077756450002151502480752996517645141580171875268798400005356689119939310379476988140409863425720396612734543518112528461414893320653587986684365496687522510267448037804730897067844007852674283240933335772310667156744817768064721830858839921132877662672832997869540645296695738050663992316831334071264988736201672163566898598592164985604702817783238845438353309689625545316471217490774709863733188435625238056968798879875879711353671967930810926014285142805401104931519813897365837149613409022288399295814582720569138814409875198234864447596600525379359428711468991839421638133792220957885458472634796666138037524349692436867961789677798604671537039024462066645582870802787079540814443998620729419667741017579675865191147666659038319131892156585104012821526352731533256375039584432328457045976122927681721838312651206277552795312292280869688824975110001552608295598753539002553215865696082939317590790358245842985138352909076342570176683626227282095033422692590344703322261620756143717276867655339695254933667642677646993451464205898596212897841287783478577495820308768366952822725822816628760791920870523357485601194761129361944138130025978199543847550621770197974704494416274067536118889659023403715737347147035531245207549047154706019960850172090923231818596704965536386555108669429770057724941150765514366752491579569711385118693403868032580726334929442388435476790996118404678967525967912049394995618692340536745132363061523139749169629325969098161233586780132330032142755935371742966322966741423157786152102815210873961256624216470294343782793940152923277890877519669065746490167689418839188561481141068640432086051735054556375364909088005781354099716330996733783385325001491903270102951163147833990866720424225453313761765371380234035517498032428114144574482968174569379179177102653154807493168919096590660636244465060816796173527081669975046765156857326841604808949009050400841164696780398553968171529762087967870120732184665047722873686770053444582349421028065633046596164272571838262173949835999028769072510056889691672450582636752304169026565023206791261037527796661079549065913358963796860128544830660638857289184753188628467059933761047855701438390005677570189716482205034998023156426574748114509351971827720161163156934498792938025569687948745682460952329383060467074096601994135745970556844928687814123396456635914749560448162934104108708542192251753503802777476870828933373179034944824844006508713823483311780046806652901194231681107466952506050809343096881222573725158212437593728351230697816993960450929696834597070457090263938106129472725262205361767767931810602865007034256371924405545287386414303360054119338835534625357624365669115504313404537597426955747510375320770507199371125047217121992537946558389193605245871621893727402252086349517236649391792193584032831752140338570005150843761158393212880768150762300174264416704852587740550042260246250818837702623951888431133162411523613850923472032643358881668778185319154551362713032749801133786890197700055413102337228745474548496017439545780445896441406939078327577992686836055866949093960065929248645793979288917692688548899999113838510946957067343230781746067238888799940233328863250506339773801955792338838250760180330420353808903342630759118574746722759798981984693846345429399368836339634613791662409492248696263608688852654249474803682467504465094055740705504452792544193957321548817576969670706025130547228920576151363477350871749422265130559725667489956148262247487306379224263395806258300111577644626523106487575644114037599318998673990189176471825369779761377514952550164054711973787286721424089746164716837533666616585933891515279514261464031547500359360796742286924625645173596517497199546638476562748673718352119855142839491949907144793642284514674428468076705086143612723773393485598101943013694358146768836605791678483835883292708155512302544121084379938982782637049071542249317148522031977100773396138280007640023852094565109654660680406872820299790457466604049269382385181659530065614910390396089585322179744339894438317049704125018247802392647027659569706444421125424350506213490798601859382847867534698689917241860918325759455850083084220211469968214392045134356627795624138425792718117794419803890563375982320189518050138208664877576722414119613701662805567696092279805199291517234859067732155578961797175686554384311821228126962620337166093074097404554991748378990586856042665628327542380257812847891080726039903768470467129654260932186244577143810519459051407113429058783071318644355515348874406093063479089258780337079913269964785774458778479061661382808453875922192807097469959925188517987104051405232194949680306487617485877001876151639419272950664954174763685139274647028957015549169403774526461287271300180453059749494689682781085780703325725958168683683508146700067990002047947944544468287093453298227211955263727034287423934154608407613444758176605266853083351313588774547128740054741300550178689075110477933862557676242891952614334761266294247988026114896677184198669684189617359852576861077556671125040452925202421758991804056006527318742670368322270310258936108450752097502730409932394565208704890618625965173385887807211956980142968053535143054430997515405839695287149900998309231969662234903729495438637762682044997617662722151059165407523398628357144862462310103323978123442424156257340676835828636832383102836023634367397370211322282079710575211131879685271815856111627658817963204389605318105901792698159715249824306617564966274148375580622848724426743505896945263738744092564262039161899876453824572247816972632312975268249895807113613407344615292152682392709971079339037590217211409202227825858448714952629625491163356081746895390549262246023314267809183235487972087964431690632233384170542540218986163230272962808595000303180279169798004052046584926344556095079769982368416824444288873711225610746208437916662431893184637299469693435040933807316024396763558299672456164139003245960175797624471987461319223408399635341706228437543740730372862484250602604492507632411350294087528369580572944489524874314155691019095252682352939416223837980521514153621907355988654390176495354785070536136757641813226660453832590566231666977925883692415655245065170588243143595216495612459163009555476343200159923539402893506631998079155531199234720134669990663587438279378744669879622129440709096194904392085129486638331661130883441910916928788884847472299279559822050242313300902700885047493965382594558551587779590951178269648387907969480513860671591839886420421403095991406801505004312177108861421657185228753171887093257665617357067007482051801572661155158304942490884850757602756257085200541468531141804841473759743024404967089787158978670148108483279301262127682006539823549509725261654393818927663259952079964569427100206676851884207329885972028113639251762622758314206364499057975420654743248346353171305960619215699882798258587085910879321766787866268082891310675362563061644548938627336016704838362609622995963425787655580323137717410530375328418294371434794777141081801031069046279810491093295682042262226048037254440220548830526675259122174068943600856443588439199821814841204660334322829453851069252357019304719827697411829905026675509724809001351541585102730631374075355249897079504700822165037102147683145722185862155559703039244021771714040707624308996860298823463583205607895063393577268897625821180014707710363778698010725150538410963558659551782890194684559836764933176439442473567761433888546532227227912487226902762839199530090424803075069510737853329389811747008349683218681596173569641666644239878081213635475007358228440557845396054009903631902823691459562705717731134074707856949505494095960496624570655542543109208956602091594006009650421620521297915887978633283185791232799592817017642395630254192619772612749400197775573909643540093027308474921118700656314335092456502525966183116621003091425351994435024802129701038774985153545319267146636042017065462377719282758433158631068829838351490150118899001075503080766053626322126161855536006473036267369579832494261033639231241879267628670738679396390566062124498632555665686334420400651315251244697189548810556534489817263050659713979152346247851183296137497929143231686709083434526944176965041489901072026716665356692498227815333596546762801096268825202979169277738172181552831329234017887179836138169967968371556035420555620192102704665904829789000413123623489100386620689352012056843734557870877344905189403467206197279465381767235173637169752819359008854109838283255288696867367369972828672205020950183298984822042808070636559609270052041680894776915384349039771783558592871560539025302156094017001898444052732428175480599197490436149138112081299035912650164743120355147226860029679294797311715912019261022708918198995111938059473038600236566264594651359680902920259857283379917251274104683495857768313162160678505509897695987747764128406152072445265980465338737351177550961760764243766583010051170616844517611201598275022915625815710629835084475998209610623623533585394693133495441024360716826456406626081679652235874495232119843695071546210313948498659371327512942379225241700905190562386402797697907692142657535127897693488774417148919833224561992664917251664725856144499429595586079497193723707463782907584150702862872993362146139317228197185092876741274764847920740830078205247435464756665257233764971890765359269166969928242443836746314842938321226782917443874773074798343035427773431617839413584079580894144215238513894862099721756279210911553715263460917993634352563325488632361395214414354704085867112038071872778310631212596031611464977573721688275995609565089885643980118572043363963761352667679024483696639641368733037904461035381036758572753724505708910055813155138142775809728485845342835420386421341044357966932001349696221615080110183126447934273602099782324224821782771113715839847220896874797299399797616028940421994005309477630453010650729665436649164495452311259233929590240846687145956966723612372549156442021494076165462988383021343965068238907567685801378356108747614661927728007877331612731421032113194421065899222032732358734669187823226868643386684763423530176754773857675305418413666100782559648525989723456766982082475460851855180197613905350197897495668951961532741373993795651041968528983834032676737965756184838295301260036749662114028001681253072889559635031853107038534234492039806126439477799088593413542795826309546742432652081796619167547781224010362505977540368980283642734725776713590827986911229630160638738070036740427834323826413778894436107777630017073078419307118746968978338615991130689684245483142738367978918544872042897475557607075862343906123522739653431975032380786073190622996085791983798146777305483914714122161051027641823063498972791443232657074737173984051369918363617685895682219530932122365380040534800415230340113033151192953273416066076282010888994381917751398482793383527722012894125062911283217984656107501951269849966142076591862607115411301912270525667010150614513969137656822528867845459093714003793519005384566674526103956293955675512911716019620363471324889225461667659557522426288266439247202170036309938039368442889805041354351898947351786673170539963135686400341854768296606578798934093077475847264490288573001956676329503114109501534525716446706091061126251615662242899893846702775345990155327550354451688343009328776187187940090970753075698989416700055238384628878266559759159955791332355238277329012123749367183668487470622320462039953685532204166856562039144046817225255118015552879826752669682422431854073899430508413283273060877213189626877510437939522392502066326291857758684809039712405370019784314709749894976660443911667512248248984328510751267823950393968258567243349945385915836575870454922668562010414031524773523968473415409842466758326561296839064140453612157490155908614733904814112550332838879184121335238829562494919105231373006300389011772213928362691585374278699001860864683346522387869079470368610838180633945435243302593183368620940723910185325911072683860345337716241176614979373169706689739275001456015550328641408812793084854972651535536844710501343024025318515561599639001338183149993830585980570515554720740848614557419083295748008972486619728733954730547552164024787144332433857104155611595441360204386279312902623049111278482465422605734972581555114058328677726291045899546644806794598177011892862960899841935839410506864884493431731071240624312180737358052827715614887777390253510336222920987313758267945235894335374474695790644966792979136241440682461458626563432919205810831325303576172061336070473367397636125365747335464595978238568503467485625733839921022651658847064744258431767362116695556557445119276560157302062568144114895042793108914300362502905684179830058622933842815794208040508091749448143465296671752523465036284056407035699239415125960421361630353927514055870523348255668164099395776659045197576367625428312905975858609302566073156177304015085276010993038947550791606974632351361178178084773122131852605923923206957637624484569179751380843884868465568291484642711957765420845750090612725173215873467686680684901444033251164374543059239834981933249166500727767226046062669251469045788957249962137374192686569800973074806235886321538519205000560338032273128155580767981896916619856201847196006451289063729003594450539806968121287832495705155622553065311309872771459852948733980363563208373300132474706027080046508231513710406357464819442049363493925826568581667355512795363286925701772447605087040430493371710515158340235928815310098364093455103024700464686314215069326486139188466767095826810479977285933428278403418708463368416538540748234030022483095612103277372089073277343369794743779708238554884615739114194221952514751813074887294387278143984191738503568320915303214570571421136080909936110318154984853765886767491195969984278938299333457424698612873076631363863161770874535802428688644319496838509804181149715021055198807139354637052947265578993648501257936337300734680020512870810164106455185311917540672284776045632221413812532725658202113685078844615125668848130773177124990662312494621330339843709589199800831627942690971563626790159078502594102776023505607417161946736453359067357503903465212166636521164230205256136862866236042259067624440805444607896062769263979546271805885468819972105782955633308520842019453843687068601994823196127487534250110863814106512019474066956443299018866293235343036801902582025514429039243703239303925056547859380739618299661619958843005555299745302192861028655875625075227699527889953204643262691581043610749267782882476892866250920670260172441584149678368170366757448299894652081669251606595936868869681670920342872487976260278260706849753177195530276259354206735853348012074732882017086125421797288885628037376409569655923812640170207223792641158613454213394252098414847483236218221842061544327165968679542089585270535379281217230517479461982474091517362420680325191240082189444984969588153100153638272385251687616075442338502160959342199592936528513411481346043632143616742996018664906435290211131606514975569191582475537806403557000596546442038083517777002545058933412834597425688975839442268158370326774381449124531836534361031840530362222157553696622594583557627762971981388058678736472090340732426429267538972046245929211953352388613946154755677234294660346963269155581680355828196326830616227102946231364147654707332224605368600724503651597258858055361326129159307828333342424313206435056958077816863870363630309272347643250197411364207716174335099756156004016789351226819824267993665975517870746179213109448884706737049029968267961794749047664144971871906157281831079716329542069821597076250986364558540739038236842331727587148096918233689319012281710156511013772406804751153220023991288779485577382192271832459360198640769298451699729997142097679539367599573739985516091004873805465548686091918769774375521238816618463243583276207528406222061328962150874314564254941501114740421454794038378603599872580108206799945775539838679602659525256153161532476995933367492074684147103997154924355134162211205157372631387051404599663683243050583413547814165306431839846317430597082112871294984456103635723468154864446259807102216964248195469743603764441351763334209046839845136441039274531220633278568177709251303852691389392629841041952554576387694420586637727917464376428652252163002751232466186926130403360887383719254727950680946103461330069505934485121173068488099550860601269725647380678063308252715563235899444757860510053649357460557001784111261190512904282653473027071270374149333651942152706544129703586862351552105790750670300218141137166657982679675720727586736310762235033161207034534875224824825798172481187230437629494169412413891491104941400974212639530961863827167119885554632395263164762045752712003861833238302365852447262805130844245320530023751766871492200101192288738586876323044599177515997605829281945949952864039847233697403615628713278786957639223597658440561729884035009475111179661475276139427390339564448269799349498417017553890162471428809105816431402214240436791270125878309153999312940560536837942303984182969273633172446719867001525146389335589644442796809782696256067668795222747256400823404328083977389201757366420374054201239911062730508176858539901377247053881062241671794982616895901859687648499360180783692481736387968538408521463598191860817651374316295745022056890041979879165242207133933333660737241146159296805977107962189139564684594614901875961076520070480221784231406891276553205277715360559934335033606004108001562367067657521633289543385674446340476133973376336850482189287399110085137905810729699117172488823829034252840248750470171399266350692674660255072396484257652965021073664994812013659257535504347469299894399274218006447680423283273207202392938631003389080063875323645459295237917348796485246370110041295993881861765929869694489060170160583501637093216242577649925396545183360088837884404937224024679687383867180085467795459711108137499187303147686036914137929705736949319268767029144432408915047138647872952354335844818997807635087643069355611044789939840437244263836513045454397890507928038356720128923219957281734539181802688949862983080887867648601259467547631873653251936692932179571304278626958455752630234895628899453478545539416845386755145153786997628974924874633888017693387834314421701205907888204693838157524597170583344716029587838066108092181958214910401817597006019131231078170230261481583617385508180730669397801105124684450189798426336398163905526887227564223049963328400828248739250786932132088686693180819673000615520518240837803314181729115015749425992391081244553716298268656530578302909922962246951687185643625881957234804437045316130780060575574952246992865959910644355624356931992502186173596340474348942514222684178649356288908007879128379377541771319748991415140452792324948681487902271167989347641343833980641782304057284756482629217393650580841409918530830551897520153908964486448399200868180394938661820526351778562678197894401067033185881362495360725810924747274748288538351679007370254524916527572087776380914326365643304209038394963596045886249938751644013721644702534907998363246784779900137066693390450804144916589872755821844250549931153540669495306467916288052101893456366486365103643165875416606886583928485928252186539815877283798757087123508482549492444680022420398850650177795748554518716669921170457925240233561966670194772337191279916629554635847857749076027857018248896452474026870242561179840534069243677136027055420246959001963679953039076120005032578489463157971768980162305561185804301791726626289097032465562846664188159092640409942952003357441470768363829848466687491581924813412058889807724933048470627988682615662356455840271953067900991729486752311995132598852292534171944554043763951238897782145243770071224172945928993178697813016374676792369653419605403299522925260855867980094436587089681082544315388040797601575821802632956921732444060412590214130842568639557899359915102624396681362887274849354080725138726840905012984521850323080907054903002625333586635910307435140133093864985488050295808886595067593139224262801751016471708955269188744784675285838750059263237496637981193149560872396802657262433650175405194187751623227508160434417870148807999105160076705903682751080101556648997628479094775789912029031977895988698373668233766070454894611510660260871158734969640155875297590100011196038399719493933739693554538143275185874592724486843429462995159224274044713398153418187422978627626654592411280577522987458686719843749296774314788605654906143552575411798829471839094390475259026613318977813144564623473146485713262196819240861516879347953743512474194342289674290725249927903715103835495229492190850526214759990533875565129347760536006593609138751351878706870041567730137962028455846355925541262921663130363316995086856893547724067290139432730620502449363536151565436873884429284045560818185078901487175058036286864278948155369463711764522588299702694347072389775718174516195891238818489304377872709423328563936478694426630976191596300895155204731539837579695078422197400693765161485072118779022633977920372157108808002855554639427194430184669758531992418063103330447779395497345952895205108381719044788944659091956710671820699541153694153751178143609064350613805218825939959369629438672750483233730481118114699290003589589762077839098433045878287437580074272983481621970989001205388372730153612542391549949933759912802306813561443909826894418764010982873642560426315928922146898893807442931013372577799243071731355446365988398599942903234520450802911554099246504921153037319729426687606698958603159138141009038921017460295298235252678743948564117701552256966244589189177153957973169768394269630346401349632252692648537020018520824883774164337224900173516901756264690669786602277677518786770472912275058284105382113721847896440909252815138521309293310507970452635699632000647924708737402338234551416633129391692766640362325845713839169906196246277064116661281188992005176092156401509539718976731168227329226916597281188276183433229930213820434050685490308070830754246966415924550255191105627676817433808772422908568427461042361336687438784013074681936098083792580838486768659202967538429212342393869144735009430469132985198179271555458314276658424749299688786902620556988798134266951101922091359427506937027001642848194306802235160179221021890930158019518731963592009262012045285298198126939596375350795996682435286016069487675969274968381253529264540604012322797986729714484198749791480588944373659439282172902965429651469400306856341409997082591792243136948791573331671194893986349837167316589433885941022264872599346567297007109849442856748716074920101867881024900931681293747286999191204872153957615750351338640120781494640730050089739503999806626163092314650306251016308592317818418285204417147839479100196569951804547391484312678002156495822381513993068672079550264797707142642299497956998430605967018531572039202052320370416976391778250734481891906136627359022255820816977510986132509747845695549196399901584024271015390066343205396716768163582234904270569356256983830287430478995630209565084409736483297130539110381051418671344222740695433540229797759520538898617211112637785402796935604955451593357487794147202543601915675341275587478450010342857825593201586919881359231178968699713884393383149759397322807784304490099357612238711405846822114884179535821364749478962791544504225721035182349611855389746264700164206322964616837741933982569630869204917919435409223148526538833796121668495258006322870251811284881475473314729754300212579162915081731594296021900774146695439607299742210193399603493763007179588564726771756578500188535298114749759112540606601688203201691562655093665812736856652464992443175870082292788812969994060533817225791808113084041667519296651385350621356568257649032553844757729615809942991841151743780298775751830499979724042925667208912357383093332289498462455282711814017955880975239071659180941042953599224897462430955654260654658669105470274529744176509359929024205259065140795079686486856960477795299572069676234762812002357148492800944531793082177131609470992207051444239967389643041868884640138893590727016167617207157318184372787310558700145950105126276305403122458267878101803901399715914365978428314666066622272079841725864838948769919826796953660357976488344851077911276640844741943068825417043013198033882411373599146172868861485616974394238658907328481421439906084503221633424437680402418432299721522428934188395902478963536599838415252378265054259233694817790520955266742913434777379616202094443085703943750361671742645215814444311407016422004491458455413407779069410027941773072502702367151063048712149528295463426803212523837327920379805403738222271315203211532696826369446438487052229462083768028472636015867103198550091819913787603585913030927963897512808674798220040042543426175480845883687068253671363034831643307597229359325866379040950845627442484777170287606016997823926706002625481455795728733318669251695821357723286576543075526724222398878626210949572849521293804378485138216823557308466359331715703825057239382749309849631841478526431227217437728699749361922110686734337670529499596760173090142101527061492613073271249551341954372209356633239842208216911542685063621844166224503707800094221853504460967478775384616988430682832780829299590190189445354013279629775183003027502677814928679761712829750064406596890690166457419042817462592786123341942478873378076844453931462608238341716968476299759944783898056496000096575829008649078600412271413271613087094366423262585616574818508208346408447963390061916959254706422732524489999557869043951791313678586195968038890893331315993402503666612759695754398040646476441412114165233512902146905336647851169720343748152466428494914515554055200365503915479348662688478343995747922951640457007880680046567250376973714301332748323321055007152090357996289199525702056508136778432003290138244856340376519025519388723920492398339650109906503456269985703923858939166317587247995967238382554696183453847416664676881491649556311451861392620938320699633412912488588894840555472929689516853035529947295176216266892281639564944263205995677890772165449000508020830984257375867172681951644669002048316686844031686195895800587052567871013996539497571345402747194785610317679523580105094253776853918628107726377474103112835569988639633710409245761132085574417904519358957665280208721003362860690455556425846131024851908587148096246645984435444294680827575274518287311561134798729018117143300795128132740201815526043821990622995606389617221096008903974652321020404891019638937251710324500207679668254218098712710033523023324289418508689283997859724811284944058028545730063063046264515469133878300273726781192221708521158241251363141730223307968080049121781236404571222089066805251020613054289722016494336502915261064082072818008460277156920936089470834691844743529946652561273376608151451833064806364478650385108890956672535035302282483872073155554478128360900044401767406170548761965467328675828754957927910284384783377465467978141348356457263350887384269312536765723810350032097285452738254254398718213698863052190100207198775815302461840479682122577117030292009115495720889407161427924643959659277179483924748604640798474650712210279532192316276120581570730316504919070714595991515576579488273671717497288737488357466056692591702960884366194534194243150418476134900169517024066228607023686736318322541578904538553636692598888246117966319538254371163665406456637350622668219242532768566942413561994305070265750132694056935586768133484579225688191900857587607239545511873340056806000166671522201873313553672012927919175920119408612039856135545326701659124107930391730078513834765348190856047060813896396702974037133847099654656243358067310115316530330620713315364323502579392012230503156181544530328070336301995906036494475173334718414746917403944374080570174466272793281716193313180398872820722858791221684581275585145562056049615545217979753705301685987677839632495696356415897286639951271103711206507681338309882721845604031782312545045449078229039264686319059507338523925384334248643478460981140509187001961009528075240905772116328805244826545112826456686591967555255307750141564178096035021307931308992828675927574142757850729682563155462846868283799218227488520073524401885394076091442252200972057985962627403459755776943696954606833878794773546585001588226041531853844809031331945950595530814185916012755935746961120130183400527690742533341446421319343260157321368627612972245860539363589464722187092509397535166648309096042743802374310962086705802817343812598887560578414779110927112573108264033801924364956599258876050002059894313284700474233835212445973444142192668721641701530370802784848194861516023817102725546571250205134252616234546506816126111973679696042097872657694471716222160368360004072148132346435711952862924141605259795836593435053795267380967427343916671738854548914837844721036411084503656646085193600986957053923217431160449490401442799690939146718138913222713612462585635708338814424760697188755809232012067146997355873841694631550544765468085667905822690764117457586816886720133178639808861061480398232342894548556509240911822003526988940826257184342668607693838987986273132209530694734581339504449631758818079450047623840260518927967337927875150452676863373721722343995973752246251483001507398690780692484641131393655046265059348539372888724449009306722186816865603524075315612773390039354932924972044354242421728431551926418563491502501400554631680513848640987315263554044071002019818703841641621151394483870253111368959428375669839892817937788125760974533060726534952593658625661746046278798412147046792307363537727090650425845381461342745159976348675305163508896819911468032224674467847895643831590075552444921566033521454653004525522861078315002379870362133626623971866493732092882741666535876028944461006786319007142236994852309927949248627979320360400199145163496352010677766809727148941828987194893711931465054203334281982535564181314902713482329879750520632161545327266844258720037979829898300054984255831025294106794896533465782625657613848058119632569706888747791611784579250034099273113281480350366857334810914343334429734916176696795340505748842823929100744795972906412308223971112092433578582180742284970862275068296137849915211001479270335898140328713632987346649567267988254400063339172012663019855660090768221332691897709760478904361520669494025699578623461063555303055341771374083951316247628236547032107659155185517737055645994430849121663452618620221280486919401349949232744467030803250757953193614788069832864799867434232868355140896803528090022868574622702072403476125095530525890406253032817985332193660939743403395514044444609013673105421559809277579293707698153678613155176014704917812537923413861261701596264441878596767701362301015496011803517490317490223800923809543224213188706706591928195727872564905648692305213512184206872352022191177746267025890068874468330575351018788015346484013078459911679219641542394638778518901669802328319955982369957578588488463391957848178201782448707371894144361378782179942141501674636978570480453523475112799610339142135392014078701927714724751019983078826095834064289675455654568800697989557742262985308870259171495620060718753853311865655693705652503653793992441846219177060592299408651031800928588612832143000265373935560253224458579758248155497049292011619444736054123593791690890590400801562552941872525903291362415547489935564336094466503216142045684730708021371693977474647560412740783096311576190919735070929481841581742432820450766862772384170226014510605054336718366289824279176241711084261595450394328878229620894262367167528489652695795037628803976150585902394629100490849327890273517257941168845998894997132577551255595390133016172262106309150815692534834630429785051649583348088953109801786416394005551811317989100236729421824686210759710518921608271131400100332321069857359710391747630091683871106823732116118531712216960885142331859636689428414698671375509698997582953240679135717406459939786908324259549066512658490187404834656625557160549616357416369458204593645565158200910874400664305621057641225661535746844376701686205879073171434332659171821852553326279336982405906216387315948931139698036117012926501144532060651585307874981654063906298449175146202844717379677873275483717046330342760626320010048451743447347740003557685012361418835024365664921926728495013876642642385209237669954984864900007206748050800272575220941258582563315949946853904791909038169905297731505648797558372432157672012537595148514882543568500078149639570743998147256781319840502544909393932456071665306735182637502919908942499426336371503926131592837457674729562739761198778661962075472793911602952283036801150282401336971120789678054520812901880864797991785085353796847296450302870826656154718025309898035912332471540068324834126746929197610655326747314866540575078583222883566835099236488014207774338992251355268758281368763857838871888830224619391276802311277965773468216794477442527555551225771894065202263218640479309462056148634598675663128044349141128460355605813540764702278621293007174971164455816618729009487544077684000995087176057985933098191081602245927616567021625890237328486952451884717495763499628991292198039716923984418383505166016507188885544847071107067202517119283192167502843241587257751652816518016046136581962828691065437797428237286066468849899070853545869127987502200603700640199597221084277204403704102220274339735164077855980617924054163426966851541747401140529458682867390673111492849910276115547647028718358424465374462543161931382000963145689363873046000860913823687695575307091092612169243172529372498006560523243291133795943962849833553321383260769578040724713483454620811759894399009124071040056703045992768731045734873000706335777040578249414277582262923229466601442203616413866739033758845531316237685674134088592704320403939401388757981901721179776899767743656060766451280333416878424202264676599778429055422745865898220250285417339867976941910155554682676419792911482746312959223817111594891607535056131370343946695497728867106414915781200652058080282592425692891407153022010656690311600572202469380288190534210862420019379724439963383162914897190486029690278623804186181351167616948555579525414281757424670063348908137644497776166356312780683373355703510815551831138891927948773919449718436044256809236031259506548433091869298603318967974593147094068382907633796612396247073684042915600206389662425261615262019135928000341807921695805240381982260828996803230831645653931244438693842501727548376300645295415408208395575154365065751058451297967515808400767715934507511267641449587481992288774067302096017100526606922338870817996146125336381720242164709664514524675667176810498056724798226310977355530898298719738973820948710509353408995340309842780779096974706945231554849735775169187579339746193232851033270793818913775485495772844918168808914837976281032022429877766826798419852381292740502552194255395617494744905436647430248556358107657787528638056591031150918371032919848689974302302104767658386544263603592514348019306270352954816502368296886393036699212897080157228597251264574180740474684670318983705897341419062913471930242343300589522816798888954609637687093850946155658442560564954339226971053820935223092554783049359659006173692814564316752493275093249809374685950985722071298759936227992528402113955177092403108800526272720997181006905888393992451747774401838171237107996012150296148790994597037108811476377364970939742929974091942666724138826846958241789769754209324048600990241702780942745881255182796961586815671319956843187989874035836285378668698468468861238666021479564300309601986645360234475522431254052283600807253968437583463797515455206650606536732126109044405274397821594024421868795253312799019585851833617237430815963324327983653962561554599580358241800204334360125596024216702533422011492363185498203039941697215938881061193313381357284249943037771712370136673175000262244874732508608033541762195263872204992105814148417743720812673986847079971358158288234630000168314578114057224824743068319529794394662619057309379173954647451208883321850570671789582644005384041706111222926537824641527605732447762879885382137140260576218931020911173056336093393430144520839133699304099040883466018688983937764351147535464022524898480367569363055027829176172666494084714610462121804656100618958895046417454686419527322874881988898148092714463511499464292072092871561945136531772106554258991994051266755635577595453048438980944567484121515839591810367984062906301680541643850915004179016198080773000436700721545958734442246771365019954900831145132257414845507292811324012082312627737365956308601991680113665307052117611271176037401631338058686228403864508726236534029545456419223453878394339612315663557732843454683500741875472474663621533036319137282704089031245933478832747556144260727378641480180540169701682118594413304458558366751172327845773749840334575265448133056878424242720901620136014760144601303279856399079416579434260567764175849608237141138680750709154610869321697934999387966789158191843393010947898688503148410804689484518651434927239208126627867217589412127589696650591892511162954649551030373666060347899723680363929857112179474094768010395130815308121453597116534330266599153266598333583025817384936930167840036471095008453033144287266409239813434112146046691389055882634134542173672029750549511833425555836449821255800049593305619873677464797947659349906220219721283101688854069524544410033961979844904383812252578901292846670180377857476517000227059722912592215447631551934549328618210805553407186801866991957499473691673080088715703350089238787927768562383993946221394819068467653833102057028485590570504218912867466787154775450782875903840874819042139855902277258960061632829843437788650889000886379863682518891328759009290989543102604454201615920468832765536745407278831142890312151381580228040257248401272486465962928000777534620138642654365314816699491196872385686384693342230640420407484824837562434684393498266240857850667987032186058936175713765152982177107414592355972420724672941263821240471463343482316957904461721864259985382737655106947284282236986532314665320811264840674128606068231903814693833700554069463829431601449027082219062111129919272260160818014378995864477759142091262526655502490984475652516365004533269757401421610860319410667509788691019248128576610323370921807194012183659844465806719390302287597397029137632925867512252870955750788711121170014026824538740596101008156813136845338724788074936500665593070774750266344964155183524856403385982318923208212799607950670723474266145692564767137535750288547449641199422573520890435093480749171285704202088948936777510124383129023663655015032791804975277436734519051563757968430226697045286246849326738353964008082618642509452524850952566521453086444942981982908009320549925057850526896118921084230205827259430931168544631490693781538279320106492480676070129812686859417265171069589744530107631750413266481093772901711896223750728918994729582065288311383080342246924407277288569136597749649193256343297169324951550506131096059128677173798216677764680768804667922279971340505053036538443249734821990566836791785365903180676363802297858914862506633124435313328439744432586925507593965878740293940986500345161203192368520233231295460239603907811124661323268321121834940525478754531475602164537371339219347191729033917442828032300878769001499201525350604058902035250771182371362100621505094001338393307126281092041966547292987537964946149855460449423974599082601551975898097888573648802426994184609607279246648903233147538056916732220981951701174195404235150466700819385348462947079222084285252435521928860730161094097519795997860953042611154439816934571243970735153166375034987416323711948974058727302970141747904223004806443425538652170842881131991933441362945715391187320342443700361164943121037336910367436507163929535338752537979106728124687689277881973601211657628820530926139291078664576723905290407833618660444404383167561745716595418144279328382726703633932734154475501875841865715463019998491713704578036793265443264505018154512690619523367855911785436737771402353153120844723329936782647676718584821546357066012731366101972876943060212996219462401290414304523953957620796760605261670170737172364852740878517101906698932196606564266802955281426805755348418808294609771073930043002659020221655262460694542269923058801901253034076506373358345546280060501176212826771984204642348789206643194489841238660307940109050018495063932763680060486729849235279015815658409742474339601140165616963657111093050780362396550518007520735724543399577188960794698024848406000140028751803406984920889832556492770202430204008527358981944601695742449378105287607546334770965012396738085630032132668711742180534485751657334814704988735898873806146184061770599965874946075290989166515759754763865844847514273824702638341596885815637378083141169164384791786740209337534592583355433076879185166725706887376770265106438004682783428053103707300031066072055795100362371849002604781115385626475107951161007980741777348426958175287121085222378664060403980489246470997088074464458508745300238350881925175550439779964341600581164623695212622588630797231606790258454477836529398793182107721365360774631426777483035110362370736363722087124833412793513619938436300738750309488535596966112053397037408399235481743008612860549162106293442485676675537880207562621259001268473863311188782455375991222734395532572849051375263341035995356654755287161726259038094878106222204146655854810257982243094492604971589770129342705801557412400223064873525828094749146734274366104771055088796777294733120070236578396991846176249294620323622982596608056672414827791321944526573298552089327652884063482861708125062323318156010096437833517011882215314121073982003118603493995108721881471807204931874758434600923612948578901438838138035250906009893675102023046442917074662676686618876459078594444069154464258049207497577425718148303191656099753728419493393193249210064774440944626902197899123371179311629150453495547187399783037505739695999368103597270405041142002596532014927870541073629250867224443428109612945829054281755164805816405712268877451441281460164187948374175385630326055559924512394366630900918348286614996204950489974122818873830694210145545199457553869483892047084597099807934677775767314807621835115118567548184498110721964019804595037283446971258890638588771746922618990910943603635008870509935922977077457127062426388926064250532234879967276543052250039649925805361670052013411789522322570824450957700402438928229888763039241171041653595649599635883560634066425287372695544974954110466382469015826317855263579849932532264663920434464479458508703974854257227740990312301077821829485493936272425247375777982341396285871313835265842574625722214577793319445415816011077032563316020224681348656471497822473519908744656187241048860115853992468169928243433319054701573778640006342870473452165173939819326321097489334082914938243301540164719710410157948917930045696477080383701855710593667984475595165752103823884988226217384099540154959558123027158517520265287017917097101426146089008067965301185922099693689774001164276979089231800763114636830590599341311311982007675511594935589020046986839612995002406709334055636292835596650659598185457043574296611463510160074882774164314005279875062805898252241597716681365487714115066193334132296799120969071901411402740598863070144942003324694277605669532128201488975020999679982048067194129329148711571626918600026002753518990086638203344204678226832801771958481907404037836606869277946411848337632771731532705249028398371321510700033157836795082479326733173895458996855096589221693879458940467410023357509096460153231626334702241040664213242939992439234606477037809190430072094901320424505580855817687276854713907003787023957429496545523918255238416437333559279324784446959217266806005088347961063395169271364698758293120603581133346022408389767396080396987237310636424269956889626134643941852365326815196353403402579147901382198628597898414154599332571926540017526176996120751129971621521911889347726081659833887737856509922948228075996413474326514385747314537501485282106328567558307840165465813887626012376364984136835239517526236961823180409124722048739869193397224218824587976674157659019866050593782841177337054029877161373274068719294114203474037695510112269039537723967512002508871786345891596135142650454361663884670179720805357129897568997267645511471332493736188269723377471839883841374270782918553576631628305520974299213153956022698822777847078021944916603645806662065514311502276267608491734430351324528620701546488342946463774719605889900597257913539154132019383507489780065135725348337002474206634653666342644040068409663240020705863651631662583124882218668177487342634629775592643012706038814982438815980585514666263860126252376880524801767374218732165843552921142029103450572207273808505729940190557168131600512488374579623225088499811001170875199129187672708588369846797991469515518094419893120037898305268173985435630985860727571001612349587480140651622582724877250074131171077198063598616666001598037790355787779659951719425250895541972277532010813635336060182761051923296884354740635505359270551197459386096447935898586877385621259181129126240661433550269879819396196729681702219465647566946177838177665550060015869150376753728551671230150323912431916808568059221985220228882487141141362329137247267470134571721058501822227400832747176033849835447195237968468528357385966015127308840352784572252117220536243874366441275735794708368629389882519584351092582732090326302046255438369597554304092441607810816061730862228166816744581117012018048547734708733253657812652695060256784277744597050086268402550005260563857294197605571620628685424871710954052193418789074475384258174785792325335642724924377333637801655216169522759133541632573010235837342372292941193634828156162381046452202807697340820147015481972003466720764040266169121879235050484041707322664170036368224929327280689944758184295054047075806346171111595531833163606880569133118393267814422122137433609406395750120691345971518602088325107374096252984172046423214129165634808611664376130226601394621802208003926854803933813377094041071771705664962647750676605327124807910783421083244857006329631920393177588599303687068890993731651519933372993884857946785074584262423637846204314643803691497407899399169926055794190296561535708024969500791658564354382995210791183184237039231474169227592541351446279802468288614694654275952401952349976797824577658619031803437610383462718492343615604005877985592270915910896990233927104077147300201620623397653277735316298077044266089962111041595235637148893889919839950451562265722206237593182615257149009801933170077253268772948785823303797887628222027557847232228693785123713528390073278600077344493597549287871343132162241015495519871690038610212882870727561244855609187057539983080789277499550904320354633765171666867336789638167905778400817337081033423217675299838437968686012291411331268469883240361304570869266395857896288118817861247830126021455635575823456866230771052965401946783277501683566396833806486712705817929022526146370808716535792946967188592997455112237458142383521988899534060756155343767534754331104064462238457231680132613975081488302775231885252478247580415913221970259328970705594773244378650915132550097355157629713642752167598876490277891890461198891710356442649858933837540240266927563932651845443962219573826701425465675375817122985573299730862693387147508779264174905099173726462355232828377872076951518071879142378095368466879166787724328166687458656045114448802449497252850620973938971246768130485154191720594675675620592758990530855909219636768761472473207524553586157444604879244167271544563732545681206552636311292563951892449439755377330465859344036994870663443403420885075313339833874178828881324655031157285391895924874641843123777994452836366844610821011728317568244237666656441839907956723265782123746186752836376253448031274276667047567379883284887021715770739854776614548349596144370810558221696625092337194324692655388618389193422704962621081190812391477752338140977212056768734899536319865368081667641035212559251236504824635068066636406331949434329049387725881271064293313782771893906245399229000688934082141209299621352940574511275953075927844310684669922588470640646742715787094099804877130639622467062478633345077908023776069855719490277423699230874403756093442501752470469002039712280998954058712999969931417074305361864728582314580282838851011174209596164611507635658533737858221935392592727116568196621647421915058507689601929544898857213613962832746873310675066511589893386318677974961321698587164637993573482827034882798709943359788794548388811769654525909328606519697532603076312947448086223912063367544870054374208796295280769583479112697461929959041421008732990150985458702016018187564171774258400760683703134861353333792282231084577293680785131098980005378999948837128729374060995448172455414030191705819543354613989128860606247005196384970384742923659008027390371499248844884014377829002351546895712513569266061996500334011614204698240187515609245848100918324846514407276662082001382115374254556201983234833811627509081147287480337145364230640901941997899458682042250786957060067182024826290197221161751675668989989353941977369902506315623531482897089911172691712067747297496308107758893086324745592914507765171605568788175955300029844438383874606605265441854909629991725469887324210518326074718110503206940004239764877141593217569799384709730504881433349155086377934488449016139932827827098924677070428938708642487242527213664783701966218817604770961109894333149747932222784495846070477515211230314473059189242583775359504125262722998364993314312618706212615436300114683596706544993323111368235079307508935952675528003110437983632038696773477920448591808484343750129215817932964704727193239625486221217553939027688923104912860286243225814033307788713540402598986593744256309698033002295843659316139012289302729458652443359988564976574202890323423186920131147397360433939013276865034550552523634043252256855111381053869355397831180695356839332072598090637670072924942398244072697177903839458914719035153622167822491425170180382027659892376622150836176501916219594365592972165941109654895537609408124035472168182173694939226237608462166270354827271659606418225880181334084846861244579509823851909705844396905101998550235327470985364563299668570861989876470126693013379592845403528634299651472377692608693804110100042638834907052179619384647810668762459712832389025649524714455036546973819283188922813977607014858660156900650387590652434033544954415997785066778823555730952928389162006297632012967409806861505779258038663516009281769929445667823687712845720903906786909467872150881804955270855336361412369931789852875477449633828899988396492688146545577862091863904183676956779329520808309458364130891789231997134889694766586973696884470265574090229838068066871813676726903706069052911569833133906690511301547798210416385149091335132214716073543427857568257381287908911608850149881295333928914652943870620408317016993711640936720157402995467010664938404952423771338342276557850430944272236535846701656500216353255209572423185754462623349064769903960066111938017567673709228494225570183078522996805648082843443320514711078505050639751404208015020077991026773660095593964090015968859146904139572063472186633752800066672103229077232671685948074804993929298931717875011169286100937615069344083425812643516321514851587123805629854629044679195701106599720136714564591325895283132853054705546398293604624971969740000374966052704035195077642342488858795757621519714559750244560265886357221820188475712253194450879988030878954789413703105349798979772143335767055841883467865372917455236772956912573636567447013445749546656070319809088216880108854827315274298228548103854533216758909032143996917103606698473942323400753260409682096422355412873000933279124480756668588312614957483476515962129587766583941676132494735581306738253402671869031575967740078648532254861351951507989847117051589885374532203812141759097032986839269690283671485168820348485535130835059165317222266874992602129641833389457986880379797354247971094356829932332100453900766740293492363348606731424926500188904605999043119240060514475344172678892275124881017625927593638286006646027015769750613377060051499802524444663441978794643078593364803008901364145723810481818474974880634514869210968307286476368733748990407914302710359717242291222401364523140948131711438511399456565334835831159176940355793265888596967870549774672157757965663903969318205443878448419070564207184397005770879208118767648160296364215377535879674529553299634952852342909939738246052522118545637012771190637636592618940683751265431847289035626121856292377234448247214691234762837296603068239046238705167940047439938003121684147874166314942089829806925798514987069002018647811432649953088972568530012982662893290770028045709452878063105325733956976795386476764637941790622161185790916477907291144396626514387849673497828940586437109079869350970249119405588653936854266073672046461897601016727950816115391144328830043853670513602006732308070126909197261312750959283091697475124961410697927276708558891861445968373732473084684762922750204042828949530082051335277208078122198684530375711981994508159665404611765193502377258528416347235895314364636685738406694340459800466601606066880220906962023931945796389491111570410050308443711093467107134475660963043133650350078214214138436756072164862888208191292150698435927859760126275044677695844360265134303002208562683978775954433876398660973625323553095032891144314515184623165121931949342827720468990574220076774493107132871611179062887127769587710318411268544985482132405453028979336044083699811526793899798618337393709286237307041444515675951095354579893720305281576359365891882173885783071725404184856860925471181047702018156207973675301503743002218216907476385049753282018413810269051469667514090823828627531875817638695936239941428217213857338338772637765926227885823748919653085726387383603460343133842390998517474761011347794040518450202534361821226754400524314863194694032960015679205853610655069608997031472119417443106203551615675475514327244671354053882613519291234538798930212290964534711653443578024646170967386880735310239773662459661469148104051470335069566635474130460556151585944144454345222165106253431010008235313183036452914964433338463223796712343727697601469357973252579363822200048776930987255966878970502199835384814805268095055087212205035922330711412228951688111149611865296025248095315296871338152345812824696219125365132372770950667698939929165988796025919381253479095922334349926003289809367290504694118778985984820216343343397499428885191988237754227972456048908687467911283257853971109128301639914581479055562774757851683253034249630470709841617624811540569150814347689136905976318540755744185157878189126470840848723395198863065763677664359904524826041163597235773237488230941270616151026737200086036854714924567154774685183058090119017267663634034344097939390027579611843380062500136459763509479288981660856650181715547703098488991485034409832421597864672732511022246369891907474510413663682068961323755853174968373019957402895315791119983010586913556607416052124840382423726783221659147877646126865362703022508329357488250715788039338395118091753073254677680657998185514103713183547765252965436703635084401082597721031218637272903616134729481065337522276242539799566132902305894055760466264935071053686995830396714526871590782697499379495410490157921842767052413084122078334378477719638670392371108748327036515489345321383015620911824376449391984536417856641447998490562966427242323588822577928720428790034652035321100563732700000680062014971589968766479372776696490988089839295536484700081122361872210463881512854329249316297924748955783875544932381736590518224122152113482836807437371320291971443779722272888854010983337263089139026692829252553909020031160922287231193686706005722739042750994900374232018979710327621907891242168246111937507493031429214190678146198425440433177749421873217593992604938369074805634897359394403464772559306129392954968175555301992775633511448982232196383119149739279509794143283033523009759977335906613875901750033521299295781358551027300222697554753342431025704630567786716848981879263360144888283408240841180470716043511012317266865873042639437048801648309701404129402146305089995336780801168017287865214828188288207972084487854235049160829523955803555417454844181977707422063061973456571532255614986928323527844468922250337709613643418824173066719951211557528570055775745045019821994059553815014700067454327480160979189491338454306244360073633858607879768276425667568190534826415167574590883853564801054075386060809624297559970207715669887043386889188973839323782870558223877814213691899626385309715008071896418641570669346742826239041144951276041740456491781208019300543150487653256639518496823196893988729416256149169149622178219472138568585519029939167812885969683482644074932066647955510557036692107369287128259373292600869756444607740197920963052944894630625420819207531552667444646176963413431758203740588724739200551349139938344499041519671724563634574944478552118742327274931169051510628376288861922762637998756426076414571836240058754580673099617954862428923653970707287580382768071206619020504415660746879779379378129407083937664683026382405723580779864173950552417494262782958348346973740533948220413887352042194274525670128985522126317775039574768628158405304344167449393413741268836503411606218599766749188517216447459727050618522182847211522539593928990637644898084648919058917565043452897662569032965464309018750800686995222717786957964825663751080299823567826002363019163529481879632839494851078811507084199942387517766255189809957594628456780150719111442087132337114710314762582702507855123129668627509428542162176065986192508454103569397027825286185605845588721088653094607742077672408513157220336500068920321194010247692630927978411384420502659132034027129193488580249497052130729562518722618057024865777472207288676524328558962622283681725201606153064068404912747327703458842992266963063095794199931718832211422375681847427241673216779483819470901843209747604526278964070894761323574230378718729988119981534622729570772131657476466156265334549026471674029318158655235567291045442730958724323987560937733703344856706748811645645154615991718212207342622565813413699807393120680150301028039216762271036007559538339638330698562855052166970167943769452198624839394483338714950508492358585471978464199016679645835078074623138966592388732511900021571837747853679076551467246927389892986320942905060896867935782776893997782041998146676648666963828507349301216203661970325083066899023485146608182514164008763770703728669019919912630516629506838416810368743217992746450765708415949301959992602849152429768196138936932401066944444760869796167720755949946023699818329984992473770820761482302595921572638366095413928944433707125222795446488249775250659908430712159616860087070502306865650581351283186201242167656480546254863592063767110891658803436169826236583646549779880546072853215580278103634516161740997110523466738375969531149531058137504996819297163451244499755293870324436833248839070383851449219436782220475959872984398122254990466608791911960716858105296158124056689186268232364793516543302202075742196032687311617568364948086817883352572571013427930601983536652860139896539832630500560234453565888948774891949550997585274332963031568832127101945246513851659689323966470313370157400710418761613443749751663427476700547594847562038682219564668725423514143007675462004041172875872939952641895126402803383949083685769938261048386097837317464248203763568147513400132208294256053940995438715201966275400523786960317821780852565948324123109965256648799072642124330593791016508268428838968825135602163428965194785141938290616509618193601706639768237634740725917649297062643377229068107164965654469199301984284643722899422229942080105321435239935395046220397340199116884810975431050486210133872258505436093269685839507154300194669620191447014778209788778774729000738141782955449905438916993026439375834744067238347082451808574405431896692101537948649924427726527494946853093874093235556771525187964162079905082129250942704981667752552231458141863958359086795583601469148429627631826040143579166288540880455730300213784837818816311699837326081343114175075599478298758612175829038770760813203570604647544136337242187713258786709609597107353703764578194698504405840593915108143517393141345317524774505000366885060765964095656950271062436417888296679072296523661251224118070255346398243038137485401092783586716867375153998350449758542790970502242929152389590979437449175011474770694628251623893327122474485670154944078959041828854026775841293089844602692208331120501152483151749497803652139674127558613955738376791113554715219394838795798280118595847626057848802360395004611335332595784366720927701048134775879443976226905217233119445508385274788060476509990159572989282626682635369823565813847510585859257653680553883016070331445409314644273384652726630356075340964659001753154594312474045287760478200472001714668823322100105090142707615453813503582142490321741116958105006558220605851689469911464460654437577890248345672714135886945467154896463389443484003737419030418794904541443003056141075053829718494287030087761311350508028193768689821390841015559830250494394539661467178215071442661515567390525270792760691987158014907338475339435289840673436907654782535591316236456431532153767109874092235175440888862519511986361851417820883711687215468993580102475334913081739653004274016545376117879464231089821803866763751023354192853162845189632466691831828305485132271982161496214007005796094874821574838619278212851211465148404541238372171627859576088748421972262592634792457052968772642577212862798774062804957493728027493110432291594705079696618924468087899185301990087204968717758948033998680790572692977725358836821066742688787942474543623337989251494651053534473721356461448379894904056846975162598744019428610529581846308643397272711050151189482939897129691146390598018741797457825261843957369311546493871881777624688714930074914062119528739753041452146949235750035436847193585087074626514860419478955703949903404606586825044009280287629887711271172547767416502601760052884722968811640306528228926202239354383011725572972205641126167087470681905971695169220895238842659438277871724991499556599987977168958752779148717197903183928363262887689875291988334377178668148883111206184073448418542993064052713297274942321098335898085746891298954056177015344003247377154422431765848651962624754249760062200287096534295084643303610340089397282759853127737646766818569044965985148643220193792750697511629040518070574836471957757940529446792656189950622989984960105558411337417961502138571720986649121044801866976207741713120278282006290805867373834760130270252026159984681264015203091306249618277747662469054810212269877337090629746021446471249711272837792226532340659155905731063192548126876653365652014656143567149851279960478844013755558237009572642742162124669182809270490275496889827820298758541319695238334416406108776280124390456610461005575132044011850856972180729280166225731047504231614139602995623442238493829840905901475523312058643318997858236051568939159487003200835660751600046437082177961125146439601325980869106412958631100001555061466931044688135021970876787554457398763587690262051645253968048484736362705804091537956760868519671619248997752058460851745321521508479808432717467945788752086330678820760129572519335040857159860900092984402053569129219271519958325762435450833284285518158440255060126384330268016680764275575149004704493486582341724850882297222445530555169698010988460864296557323141855683326241954037061129052146275944738399706064393658045808006479144122440219140595459397186708288904117712311216178564538100062131190147724130880491280484761671234552971970720868252718547429124642544997853117764592355004554707099005048241336030428628061795544655320215504765085660862856976482334242083356208996025541982626606656742499197413223983821010558002841139318516386191441976208714251011737579978384840733952106198952277697472715454148014732287555392595527135157541448242207856313500706776247596462328869040994893413235455403834824121079576884025155658400862370189243917512910455043864278564953654613374433232461035364775731049519587225393655102778779229926891741687647565928224776265904011515056248386167604160386547092806100726981642558092099450028371171236674227479098398820539236000968252292519592258398490475448367839455920296393209884777068048513606164003303082714877538146218173543324476024330179660058696931218271051651539835328766134150847023064754383640831617950574322566030303127422300760521185613325016449578459348844662979612012544855940542303006502567636874775425007187542495950870551264896413850917965799844919861196220333867963057240052884626501603663679009300137475779845421971156826170616906349071329519336148875881416864695103605614485139939758823003134992410643407757019051521632994545082681391037499665309624700391453744721155216454759637134416398988094810365367128355129039135846410759676951079816539133158881001586604467084520815836919881488811118479510383007191311292154022227693854522239477955267044638540858687097490553664946800293722729469260710945287973658624762450942027795030596623073657254985251125316317287958811216125292565028477992674925768644685095449286473306720246835174697069010898874196132735029210205688355176203707209633078417868031092017821004714188165445406141345947749855872092454281926872690715772312231424120788494729178343466981566047292729620877099883996268385757503460994972787078500654999177210938445621476518912690393892749207527168659440129619548006394388753456728008357824659951635702717904694149067653472026822889540881469610852214365575249687477100839716650469770299133863970214607553725259662468675451152497852091164378996577468964510065692509892081916937119021269511370842470407299558358120984987966470378927876371650093265658025026895523403567536899228927256432849492050172815382304439741826931086112907488257724688515673913562691853265028523868284704495503637560235100088468974715183842236845259904990145814486823300161588543405389238185759145826493818591482522731681278240473180934878905346569779006755130082550998571182476044065831099999433662413390458650169485650034908505689067233093373580323269416670406303551052711269227713148878634412443225253029683733827654027453248572735603893328441856749777627241954653388272791710044500177256504614751486449351346944908215353313778220742273470578053626958566168116678716980058889688415921959900262879624909130609055284215599350066423133132757231564858384060398274851943341260153626587023238603189390661516107745415132659087237961355072993253742703001423213206528683457803072758585245117196004995947728265524274119713840918905131948697227644341478465184418842446575995857846356447892573346492381012784123997229386854639720820789995982012841161730889225889553437989488238881246993565356417534820064935882646289540568631459569148853822486525569301458372978149081365300164708681877872007383057587006040119520202348606845615506910094737766093317253262141402044679906792485602347779041462082641792421060888197555960939384777489923738349778639824901308900863395348374645937592798799721658206832751070306946978590300635966862320211153698306713871790001208024380445272515362933726604502565862389563707776491936345978053740277092875806825561494477385403837538297981314353219160143935320830456508864627927278114609602907833366052306852289601032965823165870468564328155575875712164046488616441308323932432045167921033580749785059482717881207214676156098553301030326606040163807764001476430271763284053811829230301345147196414952221086230154133503959543377962770654448421510286270202065627422012345473840811637593306902427962504809588378969384169437971391181870509151128162862290343029432616485196869693114108962442043514925683536335073654402848921741458182597292076508510678219435344102285971558116317864495941307938823601692742289916353860512626888449188878647261638076772146061058219259936239099844747802939683151209326965700352719359599625384385756152366567709526618243978994871399413711613113479032975013758629976925398466331351560577075156899857496254128272932209679253056911912856319081821441006838233583444028538623985049197264496735895610692281670887807617472593054645883070688924688110127667421354070577929354494323292941678585935123920294113528133753545704386929028483079876661985204836533434943889358661834533776710695428298737140468067036448726841256713928347728505529520331558930949231673750429777006075575816262101142371859109735979796915843900742808560764516286486219108707531145213636693657540835146554762468915080097073280992210068708358500227008759647494576323973896530687807877717692047576861871669553930449135105086195501290155690376387573441180539767334968775209072007011392520921923470139337309474930057863308166924815240514368841824746087904777969059630233446187528973040428182193212693771868061290930783062079241774138987241292816026298503764095422378178125047182241702385348604940800207498379453497340947919213492765195731688265080093099537105917249988919217343713885677840749684821525600531582508295914729068465782255599548574555845596588344466800097075486561754342985281228373481616735966826697458047355783449110476022100215314904811365988185377989916563677272371206007435185867742922012964957176023164413549703839801472259787127593993585643117166874250691678477925586937757638937146635095386976054263190221567415496121733089441701109341120049884632264637465476202811088027048859298643032131963928890344618609786954831049223457981564033005751451661226576151968062063921283411562631009801308531068997123239255210789160367784460468811923380447496792745801578805332256428374542468419456474501731403221640707505999591222622425809873522168812739050982555157517677943011796822511166159702161118474247933374953488466453697579371186632109132200016639967020528739809640896461347394236345405547365056200863827030606699657620379798153786900117919078957813528555446286731869695617604870756307220927440536398748133461551718087841570481661768844591288083402355392087952327942065746043458210080522569228695131515462337745690685850529331374581143842607617441723597928942086726493727624573165741142679582404622246345375488724482110952876111312023054216252169624624774752748262139034849097786006942849446826705114592997732364145634357481351689801119103783125964044619861317781928107440940169210602309089265561101902008807543912798911622788749160474166184618732926215816172755381562173829661430799945694787786592913356940542580928321849780072486584939652340943596912279183522105767886128886143347414690145259673887263314502414366932041608114070233575845989219804181382937451718174568333712237649251774945671107487151967074841203038445264522157872689998286226352056377838262573207696393542320175284612268346780170371969862929636494582470424675186607066683894026239534989929744334151205326373838355601892757093308348563339031835737584606769971268519784775799779754439563133147971929060937852245255707799238009533016789640620274907939435068921804779173937752749379610471159887315864639876828330299592038357902195055620063864897820387513316713053253509613780587304882313931972905770005726546373831668368058767035675759671115237982879487191143826413813954859467326483719584344988720795238011882846737479975043879353792347074618798629249160843231858908056770192888480891535830272321808435097483326537169555312440837426441378316461703667845615130572802872662259181620735786683725534632705425062028677960858128168669705578147989216053835301127694200110859066895919747489785409539335751011589694749174955431422599674796485445235375656304980355654839080168567027366674433097432287732509944397102263045804326411615606105919204313484779821827068819015247518311962355594464533581946038727021433463761530266943011867674388745232735518096214932690396567289050295695306233799268148533849155239798707018098887597784688471412705753429291359871816533282016931360863916789008714914917305764583601647626045902343827791995870121557702086615565652606587182228714575005114039612397341374158626112443818468521762340293516722756810016519337940924140458215244731692801816583377594014719201365562080604636435068453226793353946182405485281922003651825621004483725965224257282609971559317919200090751954128134082196539517353588184138823666408951848775092118459711327119674102442187730538110461802547298738422666813361486067237802074681464139680930981491864442432415166264815009905761692665150187071551523297405824024672430384165443821046172862495355247269696553334018396290986853836315424401547451661162070974021419288702790572082578409691093601902169414793206043763922074334249814624377767033577997533750287870690850807425754968485361185990352748620813351781327387338062034820864898057993350099582826046705984468275798579623280697771569911825063797246760788612471311498316561156485472871861223191271075841436962303602346584585776366997943676845564060194224034342866521314694693194806845998531043350161591283518433180015379367923262931168389066507432249288170673203638698365873784111650998261666220031526930792846746013755683940860869695149760658823052954544445450676218822528544962566470662661946862032329577441938025328383324716946339094521458779189314748083872061980427894851938601439840076426745589982778274963353496134830869559434005447855860955589041603262888671920209530394558458600907633605817729711074961985244727044714679292962269471196702460412421938882060501069400376743810266918419001816673549801764995929436190468165949541936755388617257172753338468364055292191692172987271653144417376330245834664662051018185414714555954350507327418411398928167875922878995620546524178556919019663077191644507711416569963326364060683510840796468100881917425315150029648571037362655627845128138620666777843367936760167087349446708105092643885207565928740534851492176224166369622776776019645090966473383664605021413404575602300983738774235134651174867868444996704910856817282919511262210892394728824854084575618606244593401458017839237568918133104269636567362123848189405339437778200842711661923445749538360189365112839602224609109392900151711560731699936619682722400235663038300724071133102140524947863079982496100733161221284155580228291748320751705692258134796142670083612305550469924788320982859308094844054505839323370451124306825979609186182725123273270696206017486777580694687727204824730225585737634858711456915817026813396804825148344298638413330893787785258635554684232999101147933468263970672018922447998848735625819233915515631358834885449984345111571844226729597656458955105789886433322777076909549178889763496700214717078843793612500017593501951951983858682800424322987289035642166553206657140459317297833196247005223756507936013061170058760267333906544909516695770978730703856295173865184489356581039137350164678211548395428665492645639880104355193737209684708226487475416375879572911830750676410724355840154881689799357587874837734833803758831978681563597826191374750489155733941107501605805378524698327220279212749825864565787291063193534062263433293053651842260252159649439542956750488852793557640847739521786088733971158565644526037903691137680236994360029567780200050497353659920719848577669698355762487268701592995069315491437232119607718964337792631536889789144660015536135740620845260558383533276332349434863363943469728104667521738745637110811843539750187396744324970348252954742596898993667198458718360332124940632717914812672152370487126953368910640828175940461545324230157257595670723965999052332078435170679027496750644883425252171580502696692609049059530424375001664115356173635405426964731086669268557076082547725066414438739511717405294724053737474595552159317618055165801800595856167306139741173975145677608208030313618017429059422561431060869665712374260681232926773719241078143848104772176977466905129783360262518247840499939070670103608806658955792975078117119128819424604130980458141505374961536380905241405618487850449729169597296045893138877220491281188472981009122859959238421374395849184229204293305531160438883432570629182754883628109031659526176809887066247397413478949299943826110276650869135958854377995878684623266955237129155945016228779570838139692420969361020878317394980456077786249527766788799392285678869418006041953540238262824572487929552249752033467108591804712630413678406917602000048688280758754750930462050893008490087165381433502416388425909278011148260592200008719849435044744112427077090572521943095706636800440172095639822872146065943515625407856049273498512203577471627451984489558486309322824112811204133103846185544288274438262740444167810679408403634959551795065300321569497638240884423826586058460939121652245350985087759589333144779571380704950662109224594083875870303442455907396327541109101273593342647281113820746099332475961296143904266523318663576339387959351118911188807924403390224602851763293370699708483010338863500748562010707768848368437522297329437233100783745782432774979427626968141926920096877761041368837998778285811805787971468382156038385599609319683960926945122048003469538114203082699972726989342810014358686462609330836580192366358705418041998878969879104356327187473648921129001693953358779305074044324496725977320583212985928658776829722778313963599245413529525710841821303687124299317120723719070260728799391458497783190882127217330254286208378050694495396202147465132516585922237150472520441479388898502614275248064837071246107875806027959380856503644349966334064933437024896453248901580108367237378881591265239744497101814781702733467771432474677985684736029288485126597371125600767971588504254793456686652618993130080357219042466142793797992862134719687165932612287828243890262827366670963599145122313887976956020822004186849183024796202515763741066526112157611457173538711359353948480469082662917696101986964836014656811718511755599058453655808740944186166611749353205571258111936018893789018482018845328580888782414133613528016080604954720233313042542839477469159554007969197486800732919139034378442111629734681305542371295766123719532486246023012635448001117593196906469434280041523105854467885561720747766254809102472121383866120358889997878289744926467818875502175939658220948664047057672578674040429398347523787403170280463871784072854179359327213079391248981411723823329039763700318360753169009338296810094450422376408219538530371959559888248160225931812596338276137341038516440728769726826271069763881451487049295328756470337451497055243365743601452977232951042714417827671803829382517375665258803270733792716614647270921247651754480323710590050197298883448365600697743881393515690782255828359036343039222435432708536052269829990317137426812322651300411344658228622915613358054980523243355300913126652160344837024063432054230838642262176104929650025451422523529682216033125742655537699130728930334638920012624413232624669776750309256956898230997193114540642954722674650621855500767319264806550133166871312515073742076023191199073172711031199764298960910200724327319913045086200488774014711926371564242878010660912805991426987450643942271585105561580878657167896505006728917939783581176785901068599979406884289944979588433441979436586404017263256571625450409377577605029112286677097855833772301587741846630636966466193315431679418007152307583418291755545476156026072543937549751840876300332552846195522613330101035447900873927345526505492581021457451719795568127182535644669422376255810549114694537067340301173646372311509890421744251940542382397349001279547806550837610410449331767478870946034094615901760140070097485399339446295271601623736253990919294035695401507220262830850326962284827634320518948208879205625108528513267628960372222089640300798096075701204696763994994463046710305963089878109770421936288478714576589940123127056337677304693997899699533058684293839279605398287686663180367543471255071063773943928088519943149278100035592973716159275360535129214351816989887663875401161153740831092817028483297190233244556012016690773892380540616072542797690941813079522517289391675129605797726744404620663582405468236844084042973799627295170013021126153867799454929739296003186288421344567420750645326852769657657295213686440474845779575197393273600678332940362949761841639967798245085304834069755900199327995882402200810792846451588007163139646005820130168866440658395496928827543544576561065712554564187178743111173337125688081052224521235529053434750945365276504088422758995208158633523388293118608983866041895842472532493441217831344566072748237690417393492363604559479104169135711213896135241606956944119969149314535377662657918647172670140602274526573286616144208595463926290699371326979301699219339673823756217873150258814257688387587582725887803707305545894067837960734505386061393235420428346097759899132074940173515258792243601861211507015671976150651514014456819493561216546571186291611824166252779794037094047668565567499622813130858154567637440224157564619417561295588026312868083648597064578089330690244151372015176864760596700648113617886161708343101304671502704748871409569208492698248368311679743250871298427654619006219625080065011887989009324083570330259594850100110002071507714891542681111262755540628906492990218767333035931086074391020808881707230577847567907375992381991033914510262759268412302989430784420000085604704856594151457475247137850078457652722712692367948669884794110801389404090127381491653191399247680881854076626928540964786265121152990251953560912985923840231317466999750969210915282587065185652696727318628661281733992722632664907797805589225940448418760865221499260836711829609132941622334008380458943090254169689988382228908451185150030538088198593462120559974789744752454991074804872536865770851006491993371879970577909423530220696180185388690723451318524944611701183847907458437049159519835452943960645273529074244841240280321563396798186924017382506570730399369573996276181013218842471676932293600240330355734226911365229387924201947490130808214021732770251831778433821872076184053087234496185047657464323929638944318606985300778565667813189656199836482267521641992937037281751267879259335998655945480322443304599318544701038577059297349412748233777691899427770709432853450868118515590985021678182329686032510925408909561999772757027433915014727138476901412489739423432111334201268188019611198926405296851860436867959083689511284391856736493034378976452826802649945065270411613859896905969200588423447979926993941850656543831723733514287195477907628549250637923660911176309746318254864264025291385457855452931165073142098908869013534769085578420663963315858227857247328395879776488699054150926422860683368088371199850173586495879129756604293277323646306049777635271660140305125987000625614515002131592567850600815624316291714456736640622190856987316565946955105702917003215209486552978482228469382486000371620562529198966203176482486045377949412647563830115215239179111045214273703570565606850539635941121411038273201790101497359727338168982853545982066988347036492756986245815505685107734428784138692896961820375669749688506877728139134848129954801449464345778974575261572274145575961637153424277432825940244642278642926036926965393327601574404026552842830795832765928056714924072001489272526957527852651929403638463357859710803259396717894226040151931968107589008975837609259412381569507655860433892464494868498999768964874846960877999417415276020744552927951547976465710569553224368526169563284156761803601497889689975056613415358524328731882306980569247742677221043796054901236366719120246836054613436882575047231716373622608003257636891353425587379056035466771596309727336608685486610156311845163617756456753100458151623153627621488475713349545942743980203895315545446011582260848329065151357407682129423458281821832202588642347511932623647570207240117456925296859319561961762378362146647826523851572000840861700833036109843334875617522322833929763096948641310800845556673158368325802824963994107525427719169330839123165432822232517049964929009260526837003890234862704346524186179707431183816775059420626189721290296539715596812952232291385166910447801153659156379282040075675611061003807649375318390581859399406307008944979434537693938678869569842586887758821503197991437713129871520773483448848634844826619574537958866051719688346256122455248601967612345196626410875739268012482933221457416292436126181043936937624695164814385648182349517854707750121153221136093270001677164456087567829287174741878267595469044266129137263694631377209736336206704289185653297000246301545962601209232254615597436830324053706593217191139853949224843466664563664072621909174483107380139332709443152549114910221225452540451712342862841537546246840174744431668423565131554859314639410375123731021163825022438365122167688266085721563315457991505796425367326755428219617748982732392518507085892495720337455005095960265914396320948231707486958665695963988517851746151144762862998680509853435493398489113456977823549141620594745806279086752168888379626397977570173434362868804651434183704726199318370006296807145315006735494496056186064489145346386870891655311365314621824114526061051109433896437287313641657921384523200238869251000374571930039384072191447740723643187814709000623836567609605829913651427491287013785435170529523558463607043552319411047347833108166537670649630152186911368073133986994178047909601975974375332352621513944399446355499937825383963370543315670477488007517410376233472916354205572545511139782184333526532131583018058593162661046031709984549308357462314132679443978865470607577093577216811107582541592167811881032648505219414821209934156062306280722161200750023849732996004387442593113014398035282843848985508699236545259169945022283082645326419800984332924259393224654018712077257084623833516826494706730614007121606986758732450189233762090751459870923168201544224209498110763907818182807507353970918113399594676224952507823149824292110966455890994359627961531196014150788195523206044188640228470945867581298173347756158473357886759303153023922863878920644805347912712019873113663639045350462167946217995901689064097334869646150368017254064851929980962137160425551869386223919774011950624640562084214337530154611428540116962694888771921799501028752088822848598550623913809549357418403457944041997816187609706061873592091704017399742312412986884968619555320946160671650411061119863631990279144390955918544680226886059781606318546065768528339576328592483863862161047001301793461974260269187296896978986500588830912712491628237664194193165608769417488996443715545117437600360826760438555855088761519004382744833340060223359114751326552916459188134203012436361825423381984268829062398380122057215366033121208833309131586505596652437798513236386433038244565551339035574635184706148638165114245857509725595599672119006920241369363637286221663784051640230034976406598817066527410678375693041140418280528625787488241868559357233876985189714161976291378006041075350450569712658791896512497890983679662006575712975105267980654758981549281425031597385164826159019809909589364609794195059111200449509311014890093060475661088755554355832421390220990836106728567333702631452999246294288115648550791987889290064552118193983773374723523057940250712838724182530775439862505100523259390719578557330866373953136179210661556033588446156803411777229933613448662897082843219964093040052686577585553451958485123916838043913498730402558222839000262856460504984489808962154249280132458043954028033360652128545262797309075347351417029887916608544504000052304686300043063340124104899982236737123077273543559023266714798342435766450180568527985124429706599352848145181829514688014634918420363403621735454525379522079937042829959653834963646773572450888715803334196995498005257850665937981076531580057856362826269582911454651101891138617125694211031322637074481833268958188559621933957822161590204133768590053094047285661614189877822499977908917240127010208146827644812946203677816134142095955527174296583212516845808318804373611828036624348403619773395977326269055433450761859709500702028002360170795362969699776417832020607357715827124696610743116289918151251729518979318607177322782794071866385355693089480090407379219256510761917619073094823245865611765357159464832461237348890042553973317906131799061554973771050589554936970615177951631711955012669906609555826998800959106089260023589837504817624594455216250953642342665557727032300356605427181806520761879535590270734401301644626880337374190298521338085887584173873361423553814338932344872826889494241523477767041886064525809532216278690566679850702765540915865761004779717931717283460693263619882962313063317383208124703079261798827519928984666148503766780295665000887986267361075864446982793078479119093953598397685525695672981010563973366668336567170949857755475959062395757870712275277698597584033151334637145305507354453045870839128230839213344473250918953880558418452678752234690679118416462167977974509816166974901278390490456359535755963078744534878155699307475133561518424902665291157373616659705274312193806934724729600478403823891135817093185726235319843814905732671376473494533775742315345040653249895453832466019269901005196715328160801995073126813235492421649370400545666985118221334264141691256410678227771964093082351829687984168848882478274383339430797719789351569414756621714943604780672357514549424929213869891900991592498982124254232822788102786890991160980858876355840199112614754522976515745971066748717108962340132939053701719334452456082371972575100193879447220796705363356592382792503806775963364362321934928032780341257835699869467078361644583987478069006490112841019249780007340994502963238703952475607989895138817921021069991897069725070670918732539542205496106553163555413740015434207631687568006029095288984606673454066986717049914278555252282457664314106312166014450693182994063846193811236604913721646661760295816834581879392109929234693927813382615592873728149893064257281138506461532511337562662099061568306594903870817272828343319296739128706451898770050794010522423718663418948236124303485589878813788432697548202392152209999276367270541950083551317465921564882347723575560595436681683839732180350348383085580327426889588402285770428240277059158103173851330531009874823670805967741873242128954419344159152686342365275123093736297340635329512260559983737414521748629284854073346503233652521247690877303520508935239551121549456707852546898636947399525527528380637279362282087330894922259066407253310317474686513013816075174014263938819104531706922147962149982237862201249698515313430149738942892090750716987119383395881156820351263139318567939183564103743146860959190748734569677546546736576723324149851506167345590783020385323341460126259108266329311999714279070796638163744443116099984809290281920881603009083064702610582004854412155944745229387632957188553375296839691719178399743786080663084112448188818036679020306787556322311817719972224516816731711766919812706638788778603811519353164170969934577266325644642952145192610730899743407781300112194356449127764790724972774684840720635993546784848815071614612260284849268155257395339717527374788196284304291732344893035719164115935803262442754315520749445440238861676805958199859838440867776991813210827038482806222734048219156331836623615531370685860940712145399123925877432987465103871720848342431562862123604185319372030860317086065377491235016038587136206326535782663037701171518678822545621324401567442315506302301355123007431242033003259130389690712021126145473688273733122600840865391196017289566182727475189822060407959244141101662446190684721661594345511228412526662445257756262261701578107264048781661737979093298861179552546187502536940155890754439831747625531273293784743224682529460659900622709104663480307390578336167414231785136948946559127797386917820094463212545849257185682853200914539372813317622748910431010280124923271930886607870395943033242896455146485178886210326606855625525175564279160999775037243649370374978544948185570427019308999633644128174725594085048000247690089363079073314237430823104574999176315515594009979602776028851968687302011585757522048725608632900833777290079161831520504553511154578751582388633326399184703687688692632791077804788604206053601970905830582768890164079025478919983110672640605061397795162283858746042929463808035617179329028108541060731956977231813046326130654216550508270122173198314549555450377487831784956337678559864134035437879417062713723998610218305268532477869156947780313264328481089691431303818227885563317532585418230803954848436361822349686219001046490558607083717327542693325196858418647211433512381749091875735947460491720954211574882801940196586006328931423318427346390767897243330712320782755424755367516073360263970119716167010639571612791079931425937948866050130290954387153279417772206995305190956258351045604001956527732376211785294230147589183546925225736100979937266774365191274806364267310090911091777426197068611387973468512009887368151174419705421865193112141229218306887679920538791640232431446182919542827048283063677270458803545056199750733481040139657779173704323561452060153260932888726799641073863068090539028378354608498249751376261747097714795568112987095651933532407055444086389820134595011427727117630847164685928860134348949965034124380619328720899652883586246417799404941075904681367423561857886082288040143672223394232547337906188492093008644994837223240733060435779471246005636550058436896861099684482906831828947989528205736470955906968221227831011416521074720752629812269960228661007083023582177781689995661996866550659489365863545247042935263356273618071997550084358101325978017143474331740408919986918143511766856442097620340940570272383278562428768242990349500590453875470949782884704911878984144351092463807474307897745614702609123384921800246561330818985051539000431252915248086212324658240169184725657593730982016301948303593057690550850877595738335691771655152350794979084323750223556665802764316907448171366913703549187393534908427651784238451362335950225262772631641895647369631638399997339685882892179229031583591194693572738751235598737759661940695704856040178731476414098772910876474763592726267594334686205575579685636744624972171596988667036317849753449566711391353911896566883580464243729565145216724200404585585275697735882757081728392535242363532865731586390743375265603077695412304013975053233191824658382508309747102301043017695869253026067385940433228901997329825556111783675618516890960510238386118311778046062972801548086107585110824526312357786413384041452941141844094223617098827695603014324720935307013310638331102085860497400451513686310084431848417020733643263634279858180910961067083875671861579645312482678987931833318847557029124887186216348533884123278221465268450201956874193225472671821973427087287285522610433334524507961939481217767863181498160802434637343806745443016375430425314872949274209640380020553783025152207899823507568138681190805436657833961781553478112553535155630508934758958484136296106634264224299291255082367273600171186079213066756266397899639775830971334272851803589103752203143198376066871732333984637749216117244039000107515534358001442621500850227879459537908173011573517108624833148988160136466348382284339554558550722306841310757622461272274287067063760760701505567596978169039843789435500275340319434287246672887752031158343052770881293608081721467616639833506159234427083392955964072408854633630308674771001515655497794359760922444620971423675359040030288388188536979556361211162650599732527503664023203686031480625497031706245343769553397046771204775118184411758368962311543094717383070357690491428692744218117515586478530489634989581010583183133836117839123697615148434052345790600554483975213976922111830868884403828502935481789123407999942298461458695659786406389901600753368146087326395798033387303982938998843889885215423798482613789833192809371414041727645481004275308266674171017414883351547625977059188315271916080472402296176788047850770794802979883123315132599112188244370387350762214042314025061288481982622742424012813575312727296781274470423566471450784849968110847781089493713419154337718843263565686620968752364070981701764683623256963941740486247376069946922501334118769940879581675085155875681260865810143997121436068295587788287354500957765215840487537537062032782547406989841806284537460638027326111965313724112865455490670999449672738886295696754591781229755679082137560986672565606932873082350649578628317445613416505456569962730861474945952734124093281754276354114694661142437768854015972018371151629314381244844647148495371914759167452366400659318063797965445534048057144057994531730907752865053619604784267536557715407289490157354036148212270876000898015767661932762780087303298205002675830768396858445411715936736535089473044737671615079612597032339738772721556092319389056412917154475144671694780732697584500075353227052167310942570790862693987909885448755581449703774786054711584807385369895857427734972049230455599186732333513558370374281385065234125215486109337250754204554514123599813339921340091477630394159252255321550603768331750099095419122932761367338110381850302631858729734393902149369471743202247090629161748281678475210795394213085776289871998405781460761097022201307017162661299088634693186945771137514741987635506500056972552615197743039668551213996401597858537246262033578566355071761156620577387713934587463953459976561675104003468125044965254999128514513004671242299010124166911190323431600029240793106108206864084977831497598109226725636113606413319887313864651720702147199573537461599674829673844161793566130436075490219828190094776637128139884668925122996712492113296917870279885416106967793557203338812114240298447046448679780235556738627532104283374190274153622194954027298894138245207884247082189687884030918913463568887299897650139501760967706271427592271696503521838172277881396445572364385828981104910751558241675479129940233843445688141600276087070878256851142337345614562388140610975677989103014201775405510151819925317085196925007775784506301089345109081074515239327139071270170637429815057192314104341036853509483045284244383330659388745672009308731632714050136049109819578947125006404608506206520065963031350271028653643226597084859526457941853897392264242807933763722585189215795868441445430830530090658203895469039736314450929762194937058629972546459474619218167502274338314971009127308661102437005644133782442463291323303795532727483089216209542359604908875218934586802628482097243244942967396171188714036644955153395973125097634324904549595662452637255334792244999907246983935794031768104196832437932908371586144080673116315978940453445639301506507982141751763076155834829045263072856900992553894218785549172654525693973562831684381703661960048510657369290580516332721780350176958297607270166640778138776719168897636676452249991289500503813994954036960461127591282137606802323826315783042292728601251171615464892766206932194616190374387737837331875104220145631057042197355518942576324834685293413168396416226989509659191365300548500537836588482883999620237813852248682403191756564312371200582220672912280330953989767086437875065072469072246693956159475117667967222240900011706151589338475487762129319135578744269324298680730584762106496939390925273045170305200854661046403934829460729091745954035882686021047895619558779456850963175230253613696770350199327538300891995281939178905423442659567515881808194317777998677083691896650871941348031839684787572674124619739374096003045011398576392007629351166850701671703573736402710026289715319115346304547760752959203887955715639260591816190026101066413164976597358919599723194022848611589664433378934787495006084059517540926955460060883631288129631130012313250466251847922323823579275874274881721688717271699938886250144510331810178924410943846409795729254906741106948379094312299003086258235647131964028333536021844468446765040287000785578685158199549145632898173418124870966465416165747204220456632488327714146430703211961524590135648591504602681266007796092799901750874544601024630947589798135125829840973301881854949775044560340082223361617806828932755609901303136323699108849979876688854335806396384512030759054125553245630994378372172754851798835364963622526177423314078480279533558217996276677194239414026161212609654701539655784447810748816476655996156431344823376855175471353446128187704546224018175682999327698065991615942488846757629375107499420769291047977656960047300138277617190568710935591156910516749609590798502602187432873836736524730957275542959283196645843171943191406608344396520313148116471023191250827978197105401131266306576807032561277044200431762664750836191001550748374408785261239040057370081749727411070054878651530416354378335449946883643889830520253388971864849694734088672216387290401952484277829014338499315438938468752816709526830096581056540773354058090081515288362998265450348358985182492126983273357458472673886203298689492332882936509918281958941232606278806579870710871270326170834980212386844810031592911847078697599798690249070212422576064734986692863591539514172475151861835954725383154443843304289810089654094353775424264294605689357378797563794417095365741628687043716695471477100570354085976631703103077862083419283490609056280835420705199646811996214599727604935690431101784313321436643131591387852800750508910664903243067773736542542406162218171215922349662833845740803768139528958968161633406120083516428108644927606767091944107040378712959114258731892490604921136985716316563230032464216908242891474224912647408291569725222262156885938861948450677281467875601956931704382444915874144016539940293791761160488393601809847959129535710394009589231057937325540600961671038789754942414567650328017930709352182215299443283821945858370668040457584904956750961003800152581510352896603952134986248095025984122567118155557638622229313630483376754847713221890886796346869209268160830695250365343972762051704265817485735375821450796582172407002487560743240129073419869787723751310120239237331447380067806393379522688829774789542355054431467888794129999113533625450708449182080642499984636898189538455176046926277866580085758789871748002157449167784412027315609998176947375138621024298312774638735082600045079361488506170008601190905850315989379984743721452452708527987959312441129655942829593922162606081563550507641298684837912209847524175848845317230123106480816687558126263535095693744075358571138642211626923278921901981050798213025191413773421422211298167850289560197354182762065091584784703023720825171522386002551024589707458990796231754085334602307340950573159454029676826758507836248832889216724556170790286328016749263804830643808319023392128964015659845185908963472308943899980946693221722939347434682890288109527386463879003870750993130782514911012545712786093318533307137476454113777567423863198054660522446986433057008702053272865831701936337410445306989888742827475371531697498195112947111582641986292413032289921989402307180811696570039704654528980642783962321901308760953898416135538785620872037297465952578650166120624126130912087656106608963007876124527878888980459564682258642692554279726050023629271811441427506485865228723376069765991246939531775077603993557265050102787245128948211528765241084061173717159769803703581909195215042225766181013173921912141435247030123225118907168884678264408704372346365964321084690160542554016829134604036811490018940725940010691362099817846047715660377715105744363143790908341485086233711269632689577668836006744685271829887940018971654475556241390692763548533038226301423785297464395297344655464538342016837533631020561869747105303575528799546816741328365499449936391926071915927795843786906481702272307684838806519296719247230127531264856207274488865090996269528844297388074621627318183430366714379430190143876048929361358355071106284865128980995067999965334336088818480040767525544028403731858017895754859600971255506874957181927431871093414779169250933232450063975390838250247896129066757231721996068205558812288346549872939967606928568566443393857964124575184661196360736032348989099303123757565864027129279391973463212175952986658245114635314662298661515554235116344790954180039021674579645285476778693636653685824266092052932673146424471703175578720082406691387442922606301046315983064485867607120463255426229996153235601219121315154184391017661172938268329900499462143335747986755447730394170116912913380584551842026082975687069606654846486952493475300393565628457302882228145701154333280818271201888905786945600068572702442760023496437429292917446632914542050436247950359270115875158906350241941199794302212754093396864516852788971772842974943496989092437630796390296237789296922449866791199971529419390332992517229494807858474316769235055901463416427610189261983690733129765250785450431394474830794266362350467411498487052813680192635443151271028461890520579036637538061430198154303690434078987940950594994290006530184541835423934639459425545792185148038309711084118957122372330829079574722300999582527469324375804800786883797831659385886182342909735811820489446896593511345533527928869344433575327353552872365938635107633979714856505921253850605641272294868930798017480798438185987002167494646496593856527756514374869449840010667175939165587100841893524624342179293785709124318104854961725355194810974378823410718047145168332257610658000269987744662232516521137343720182012091880169298062922416953378062074560494458017867964837593817586720628986064366956119689298616901488694931500395430941259985890645764900793931636621003354014042864318784263055133696388710024445956022017793222878708427919561147457647002592215448723421867412360834108353511497643590458768909385797651449849423617679449265394453391625002700980404307412700340354656495959412756689259444398529705156181790392992805048807877848824414232788563685627534912539192471534610286251111704264823422980057238527640892429359444954640915798904639021283694974218212512314977387939073410263150234614216033341742994175635327378556527114628072094810124852153086216488474003955334347744091289678523637769438692120570341286467936306300918113171099675694711296696556121558538897623223415912617733230618293658363073652635062386593779058600627582299666963517563219921834539314942549044650947398870331851274554766939014119553472720674827276081065712255608045691703583403723603315983367901329559262686359194920180798436000619751226652963402888432279004826289802872491909519668293052629333571853940996735344327739647315232591545192811045479916222576626484204377881874454071079575464680333990157355143296129615709447268198108657891341962800149579453025593210062577400218951836433182592537650576813508605353898682947658319557515987561455283441272281195643024463936328465608760359593959476389380801111384043671844868849826784567630262021514472561484588901748508434941318637367985356442088098964943975449985147835495790875166500419297669212713096826570597368162087303781810605329320888132948508733468921700624078769249949222088669366391872477312524283472286517231957921350329913666238824499657135322051280759164242566062335405783007806638862940188214168193553573962975788525688376708510583252773161554159973666796823250132257597640610917003487792117912155205810555993589922467595087610320620866171254177756944139059402439077502149802326449458659427459231607913514259645363068242817039762843425003205831241251333542055474706194222233346716412275183139251364656717249146938087780219825559080181612522267586952082472595314194702592229751544564355923158661624904759149256967221837545714876490563036599130425579692901180951123965602856741820104007013778396681017435608572048844953052711848934970138778783153724593086968416905040521936308305138890283443751122535703387875067110761380961828902543100077727323527600520640879537508273915409496136894827623440228789720658186276893567801395342449095516373663629919934110649274184986308195151119340270848489284979957580539615113709997457317000346130244895024458260783110921875472871436400563706026977934211886312603711010286115960713359985300361236517427433400776476845672964398490450036030777440401975036530330434738371032435920160063276021971572809904764220496206664428126883322714959142567897943921997536828471098658504569600118460841531151957094838478461735204105231603569514468754465407208459653010612289189065506762952640004312232310151032389732303430145990824791063423273104057057588501387609913482425597130416256554544810022719273796508905580933247907731086078269963739863264764201285878243223577713831933041338602122664824670324658646533808925224252114331470975416033988544154892375727724731444777678985154861627339784988084737821637814463568820073171873443820697716238618509553224902354312146744526102922019291894368526588878300080652833118705431069915744381407282344517179829471627646322168565878793597038017624847065825338281374765360790397277710442065399140793511577452517458751588831256628890885961241301969756496830094889166683422483089820446516717760605674531153481943737579773270074052360991953847852946303067374852479878603558214870637929696016153343195849289000865492221412721480099259024537138410545294969018960278943884906678888865242984429661904036905906938102328355546913010434026154404018305015045255506002268970545360175501395767304978640305934897105019277171935520114707116026906767104150081485818586521042948691185165526232729363257094247415321319302590959327031215886044131647982019714587792066399152347615624523073147159574378534425107153269042467620810036531695779339993394961422973716740119908528173369397198637378722548029788388758598685938912533167260395630040566211657972632274850972894367840483762837205511480276993929205851280006387877810453795803486052928581697074559777810933058690030270182958937362168579314285083963777472375243658090452143943747993227041843076728184977558241135237603128989661945053588596253302054557874563631300259184409836779254222429849068780349014372425948055582159969940081227555245462811952232219315192411166411118196202421841819501422607939589077393355207078788346845906996687210081906961817758884368492658472129146521407259554362536949899735396974760917854617629604118692130323436324829025021579535653558078329612548487931105935991663514480971951878661438950299642437734326004946860945674873039417085656316810016279219776983275074408735557112078987185018688574291799835526519131293765433546342623151714745462068590550197264688036476181680174299186990846131719018963003431133802835761810410748851025139028589166859172266058838151742522286817314299013922860331868382145667933846594892014077990957269015784718466314415664766929883975520632565014083249415723281881272138148107421090137349785992340959494891620367978718677137006184540772798857992414033421596766883275667841779641842710569946356288242286772714810876038931197333159946367415089304936089562226400411763102288367927221777617642980357992091653275954359510346590030606248721632168261889067662900929907977298552162177323807105012550536582632408390789833644340287845076633373421145924915874122968216259697374846720132783383999381197964165522223141827250317677852682863987323365821561625870660198814119339468933944743390570941257460460758271084133876110802041210262335053649896128953597254374641873854656068990907224209675706868598810792362846754866227128692550512498644840321863199580179251398494590387895807361247587446443697225252924502827366245726429434030765486566561942662040975511705315697020220956264444786572080423074733895619579579057166687405049803786275984979330334567758130228408531116862300200956524352616686199271658902312862789556221735105005496627703333133486143694022087723449308482261849835116386021061819059243790370461217318404061396115152358512855980638449518461535126193192208047148559903736178602888627370607031657226861817612505556072274952814317841681364556316151579897659113221767030822621433674245640427668834938284740433870538907480556761438668063499966884511278610743514330814168892524990281977409869764553583212356231020424135248002583967844755134392246045367591446790519437324573025695355903023077702124724652055549273463354057788085726671951803667078414807622515289353421909151781814644433202021811735496779166560183733562339147837512424130368600100833280021008659354846316806048046571640574514053327240267828190392767623141374157317322684309586292151610037464658789321423145029488837951497983617900320559071939019277334316113831106169434954470699057871028643362130254694624137607376991151499773154505468452435502426616882847711623945598859705141078548091454664231527196748503751593023797796838704754662213512957866861395622948009254257926294912209218551779241759917871483167308598084447391594886671801562983176654317788263781515057286221709320957890134249885268882088558545208171185536755606457042809479854549297108493176995949168893294901877476078957676544456978590972947367634711939639993719536850237516175647226378704407271802162904948727420243871848220617570811025379470117810691236272695073367446918401913406200725648758564485774585415501047241860476281813539813517878202650806859575547500456716667543470749416608550125977563468546979200825707721476919821975176926182534569050815004240188698913669079762508190228801416333165193543684434362288575412328729889736654564315846688190033230571459847543037664000716922079418215176679090589737441900699209076209951355876947976916510454460246344106952548598136481512167121847427348357798703387039441304090512040695201973406079453679298747971457603216298572886705982462450853645855134344213030396310478866809035095895111461223191595897570862746750179278086411889758088167585621349151706852743277292813562966853721157931847076054597180421083458218426406124516295420427420409934902686650905919232543871776533333162845513047066275301109448806921931449004313725012617553802859222228609207803604693908028419784785106312240330610134491142367919608113671134096198419937504191874016450591065837496061143038242663943976503405946921503369031471777429391393699883614922837148162273532021784679607467796465966559914487048746986589723433283677511808536305413563010030105135452358466975456006877445843107574216737438916645262453876797026024258109749472937572680813597986804998671833782037792788276337934269080357765883737257841836692218737350961589446205010708058271550277050540446285833000877008614859695250144592840245241928799202455808988987785451663698393375993539966596920669300956737309762584434870651614441643614676809845364502408067307834998222019041237618174599823752025084704866282671964560466474821739641829355061101403542215313804167278632782137809044363724076422713314770002876799255038756367223422029520888967948831256959650048889365345297907701497778556094437341340134801437389357157324760288557698191113020666245463252123215509367790098184863432021955099723893690413790529813204504317972588122941024012261176267338181180923229079873614590536373928777009689766374242102282010867795234534852804451720732341056299658157137913468320233704522318443824977725310072210081674421558300157655950908882277831417152016940471530269086042546414728316487801597701063818693064242768004696095252912037965697859066313040982568531932176392138817235584733912237905511370454656376408169437174727427160070644867963557610022599361917824079062725299128956182243277557962923465169884723584115844298514259132868587037935465048366001384381905098678789017169813437154766167527461440252063983493553172004620147789894354750898663275825430290456620889456016935640378563282055298257900277730853441712814254086921305222903623021154104629638188558345928207571865270185895793106725957918195786508912491710425219679280137576296677155397638251804269718999799125214162337865691550269298161146188215502678634038537393849456817392185202135108130367359146085148622051236447733628002555661693236261158301597991448544615985834000158489887057814553579411457408755718459319737103031539835712686697710000384412806515521944602047643469276816545746241241960552686772784189807267622730032958541077120213571367924896729201400165886285328220099155611423299096726893604663531580277581944495595768272026385877648212854863543165667823260628772423183761201941915261935604487329225521924728912819168777040311013913437136158475319327622693902850054376830983248211772069212318991135468854556820919382434662157719154681926819290035005956034529119208053298801647536508566604634399564306487009321609542639562067511255591818348676362637113431158332617684312517211335111224765614611316873924059802343995856257676128222981972607263184685505383952298489224559324527444418331467727994632825207504213056690870515914178650228885520511329866469112537175444631421755613444729474220089763501902957302330765639873603654672640309877975993558345097808205218273312907340421292289879145992801173015793159614118808285725829043597464169872956820884669540960001870784040899884607414473131430085574227330323481922240576301130389993183529828426102516889616597970618490956240165002190313258953108972001963157809850487351767327854531558605398217466826350008866860307600379072094490959337009512501120523301073452115938035647223613536608359460897394094243732759004580178012781540005777520850608245428162145722309268395937190739093743165148598184672951693394477746188077414541737822297397087634584945239554233691317291098727682003009325850705407533062933394089478923023792842574883279606387635411965199292124029497239106375204715703952103999656838063296162440323997878658142617360083144855504337169375163582752724892111997120713733412609263017646532832261544931714154328084704692404478735100552150878752674741293446775035652692409528273137571623701209660477454121259725032370348702072458400503981701501660752649962672533681668184343903018178543252577632329993254174046295618405781377274718879166661154163421363564653367781358308124080625243433656157245056302041468901053396054952040655042215770674609731709936772407407868275767799386382481927405149997075218960008324587032942907073961935532353650053108964266988571571127944631830214194526099511286737948130585119819931090691282014783351866621564903622622187480546180952582315455746030527974390632576969351877574744482949924883332245872118761335778299883302532063063792464038818668902181679329163033905613637908321794547369955082020297227395048142533901514215502488656172702195500492261661923151460139386905693575747103839046393973357050706944410063344004659836761044243360011659275034760706771751485168896779903085975788705074610145812976825746011185085820706342677502628997410662807364476634605735014264901806887767524043099826287893238299912242995199173764877656826462982811678816765568523877716404610474717860066723756978621026715764730281666656668926825063322065557060081066060955284019309942308139123374834882148737070779500316164417769322530153259853414938272399700343874913213085716335864074268060112486467534989778607854277358343992776285738327027455519638524130250684524222359689355098811250054491752927828512841165329262190228824764416087517362758893376893885157628745014204035004098690030475800691471661486796200257152497957553088791991104131284444019760445501280803445932258745798977931459476790937362951564047496344544427362054937060393048014872701903763083949751556304448211307528376770235986309177707025501182779275276849168210808669006376747081077626992169324883458469293725154213016984827323152322559435606091175781141882915190000844140621452065694173646207205573383400481040995877612274662683542905782351617153194901729991661812670373445580163537194272092367101824392596637322127705265432366753596039761787728869473785948164571108330280838498086319708007378246034989890374671130826847134163792238859801597049423678349682314597242042085074435154939963720558419846868051708616310022119187760463198562256860614578803724748015332931442370695364922205863697670652746218950530287043851059025156020854826781095831409650624770804593295790343470838417641473146035553596500237952076918264071966085523115463442488223889726488361857863865840947826758353469378987788401884658029965533291191899427983594309954739284905134862063010423437364376163315709434214384252936825125572896724277026905977549812822637778640175803241207549792550190344169376844195296579820395763688795760693859450956684973762999257253158423982764625915619312407808752055796239595597133937766992120132342999911774624172943977197649092318792956962007543300860950323034807822563960154267043200912366034826328932877923688033085718349285266752968777750878414951270280315175604999616958777696553141148596500421637787943628830409981901659506087976678224932476987619887124844673457281561318500159433538477501439390767453749015195544639147024381589257681988148412922579732789594720281427104406816296023892436304788084454329572335325202579853536166918209997442738301696606070478562276430998442553340998550396508990034193322533998626856431575486642684534314026433232527933331445794761897065313100989487922788336711485967486115866698130539941771279961143330147849822034380556800981914312044888907401733965527349543044482009295421986582865904134246594014789340295537570510669387637041513852081279531166683122865924399345489864622493098124064019949468348628801742168026910756565170121300718072925284434729959423074160723847419706890197364405094268336367468269978528667688532966799768583270722402259546825011160637813552293188396947415386841965641184369536861917944915056047864708389729750601967800243314491325934605313342073346797494629180478386280917387756678151482889459327813012712496061750430149570431705264864381187858390711764279209737467226550675440822667267609175405036861960604784777896308036871887197609468230085080210243161351424726486528545472269652800421810369524195550897018362845907944478585970838019957656079486715504505152587519375207652633210969525719219475912124746042231829828202738323928034084605164159133259688767521655874820486002605750515692347224294826122956996129723779234730788532618860297905139108801210879529743748543751182301249498319881968849886000624894416124140942563108081668236476392000032397142256595041704775681897670891322873402572501324687564729657913616007603177040210862780012055451650940087112861647289638265907611499965942360653082942733319567425647229141829179359881638322875355362022822505133426234289197959180768404012250004422435614751133147597568026347955716711645967462932636185081829570120189596839504764722236013738956160823895093946645914746248463224229399491533858785957192880430717259281069440144038463622436734575888977157342622938828737969267015910430739325618117909234019106995386667359254664677989650875477873154311766178310058346437625158588509562650084685413784157278239569377419272813852333326590760391743192979739086788188226280039639648861492981014886601858766832684110904470672939048913623984878343272307627257895462987464460236161029455201616635163516966986594748623457327097482473116343655995994405080077237751911411208012009695922059453014344814337742384402678449769698711473736387616758324831558398661834121300931075354369768959567408686259065005321719003727688836133030202098034492865326101950454217116347227765611956641440851350109048542863214449107217802595586553193172991701325962679928302171556059494598832688880660019673573038460230474189668836724261684375387410705409662067360850865385739492138401465626213358279356210138819000387185295235092086169142876155831288531138208174052738165416879454690722118142108580532592917314745506643892186897721825220354291077989119256558666571182403561594145863044759196788686457279868326566643582606305606529231416151013776645745406661472588225308146870821614288220097948757654827398813285971201411250659315915659787224498550784833702304404199923073129944711907965815370990774690780716425993594168355434306926978207998354058320852438750444193532767481431719650631498044675424106312214713815352532388098816555965997571340817918846291260942144167601262115932580040148260291804702088516327813531803335618128244079709632327904038546301452963925393531372815326333860725406499900152150677517603761157201606906529596670753458934244215422477441203537510628719747211144528538951749781254434201748281755020424520708239195028683105535724937269047012158018557865196928512515561699296414197228450925408077943892845770101603559100865989382306817565982674979795048726745081200103695368848212482637242528446585442612046328580397920481167164959046038913185155372758842556573451746801947973993270175395404762988487787831146370284297281607135242429054405250574663470290324060298476192902091490307115879999176317036300732436172354555638110416376174202990440518804454250225477475434048425686764564418882568812856902806968166126250437919958111569919067065804298069587727355378524100365664705226079139660912596827277202872948303435686636024587736063820400744428130861576062585525577358065176285811602255595424806924005595565419523040375626196512251642002967321563062383754112049943106529572226421263604376985402978294649828750808402484361315428442945604635397519038424660807472113184342941386439239812203010483352233549875594885319601047263521077416803142670129259418430700363193603521020686741273917878962737473148978571059247032307062148031258967255549098434282789315936477148122168899885076157786303516058426236957301172831914354624661660023029983536870726300074523466732569750074998818993901024886490426627857773481187349434822198610528851758842196749215206549227097226348408858054946447514227881998470891556066521067086036569622866382578683901324281324631582353707614220592778365216330957451829170020934078734644059332995069007599890936148105012146635742367192698932850113019420321850222165165380454571823418883310518969107136829148933071017041959279265941758809306385455439040534354424081923057989784386412314304381368898077984347352847444037073033761997200142587360281020124421636790399730501730329335811332507673417671661485057080883081977579538319299269778641499992764984355257452483391302527854977167922489162512021435318236504784757852035030634177864589768513331522375405330830063985532302138606029907699656128370176839489507443432150623624727595730400856556314356938756502950841986624777802408962336180886032039366304492645376334361435320966681633094671182546388179778024925509634976028143566724449443634254609197935476503717133765860366848725350862830597547853638986916336365535666092764144021222815763596008874895415134203196844664044549081529696166586825226986345003398044756799371513069025794279300337303027193537509892914363190767823804531793976695194144937344851295585344915611575828109970031780957634818310038837124870085645557485335482742121694650335905681571086111334914815601519906297020691483506641935974496557792546372585384123042310214946888676622477179171238938259156571870721114812509644902180835965365093789271779963616309522475248991223106488472087948613272797463241246836452202552791363526040649175404029221163624650436302873601563753902972824756665404061585683663008780455026309782285261156906369476102501744165601037914197162910793554870433651198494904649704506197985156843914486579519324955857121954561430491460529032788769557996771246609996643297087945732727229867123261644216319415219873497074601889113514387429958468407357969918002788609058711338443419888572377850373424429564471381447307315914746161512626734069614937784347244145571316496164876083069611464456327672074044810240627557881691312825327355081138225802034908010221030091102526447272549532546632352989501998036399719420073838461155705888755636428851781301869606338989375476798916282191238498789130566484900199207692123899758716157338783043097937717513256007526248966731876779599677790657647189630597987947274517545097884728836106128640825182865784462122065607848099784233678780611241226959492643086945661390776948300127391042787390581751662080283360636970081689983026599170085869225641026074661199590327423015330766042434666015586778443536736025987333000364119952366894573862486928557014835559631897752445804614790816042333582111725987402753500596468391834829051047136389436698365812147830392502171261777345966859236362799960871237334241632220916092574513510703167600082323097112377248119855047163106207272201757447778520536010047835721122422902989915745061333740984702210381301212422880709370838185216175500666007735674621720188767164326149022415697811847006415337625180456776150944216988622038278593430584900604791530126331858826709526155100292017224190765514417439653042779039173747041059936567341369465468081153267291812635359161700276441711368264979333709213089827608368498084089503397470058136606569716764658587035679642486479877797094675691028277208797789147223927240614929053514498348775287319950428866106979631357653221393027575837773797535570215928246354561545031361909092458195840601880647567307958078278654783951970990637906075200192819824683506583746532950171360025245459160423681190897313469850363827817492893380391460179575837315438198615827939705162029358573833113728539714247824344905277379594834679970281645861132104270522495950408592020308045263384365153125026313982472518460614956757782094808241567362927233145859866732729207601094700145887741881298422884499469996649600329971829978386130248939283729409132319466052851426346699526200628388561793966754681689519629685530382654569693640369027555168599653535995743138044543672248691277849937623707681883274855414608878873938847737073496470541070301842797464632767843198121427289752609837715913640954146089406273964560407977289274704240513841603973683222400473452841187403495097714908717562090650837864426317464622858814681287063578196349796539624206203019998241096515541822290525074947967189845022015934030778907971230214913611756028916218423598327728534600717653535766269057217449001390414340378032082657801172577333325418058241453340295605193201395101698788635066628044744197101892151672770681969280810936842382022617179163590262791776770370750611513274174998710773884244413444895681353565980624629434102718128249242009255821486825230358050060511919298356940636578064275200840343557757051956246777372847584798299436828355510995190768790470756255324604372696755885319147529447639941308593679925765190753086090770442624564058407249967115501058327800019694924687418113115865587620556107968705755147313642812862267623545437607457363416141526000326377391960213324532216464690060732306354859464965395089534924231133153617211142886196140366845821092064167066815658873643191670210912078476900540295115636261594866812936775915103088296871913666746189751796180540570724817105274731893650078794914864017703723066997758349280024249084480990685314331880771562601062626518395735947864925155125302972105939011406630678028322287068247315649898663578738935462632095520635488881462269956889354349479215392517057211586772001979129930140142324051518543285964320178030319438734713547429039051479406819413742173777603343504197864172503888764370188763071866276609288248194474237016213066499803749106893396747882399008559888621946326358812133046057581189621518277584942972446833120279945078510723492096476571211468283954692948098189816003386186413355848458823192822299977954411216341134821527371785876485182397162828736433171631751028382891871970151673251247379004979141256155297660473010675642391228917724717818428772663376733332110848364980331227741734151856293590929740232280005950203126134058401882042579887437489199852765181299497991000104914530749899884175438334475582577798419322825792525094666197764271675648481439850629392247458631802832119122708212919262537704030658833023735160919016109633005393845397167879412093430001017627157633881814774511349195181429142957649309591354606528009357345011971085282293046985140219936427072800834941981496289941121145858428899598292550414373693147169986359640685822977104271142116906053922311335249563223619429905807950261018435653331871776032172395796172537892945774966480676537342624891044962673277034795567341493463303041188708873226090804390618636750552380330037406892072661635898426734294174544699633808808252939929419260754166158301017026255705656399750673290478557869435088545486077678960193945376946500626713218875557289809618887978728981033370792459391667705400837810313996042666821413078731841337847717914773764533983923083591377653512889856797358064596025997617276684850314073628881085482607570463074694449779141120746617599691300703637777245513945868421391846528443300446865915496660628146185829127869873940332739185802771922721121068990238849755499283731669146315901765742701987709812776912139986873251495392729943917479819233111148548089330870082498553477118563272593762918954592886258777680559583761250778133234615755779001545583509526429963936352755654830120781635243675937744963598944296791268116455844486309810899958204264215804209765506858118315627809519833882448918249387013956893253119291090416806368223903985687032446657957597293365348754922224346002388632545595490096435604804795082478798286961027238149340666708234143461160139412557147819187690685346190299922620459389542407208890046044445799154118657088028612898276555170689070213407946203704662448487435566106695180838242348537286819324533329962941523221165726300757333529048467456835589869341435982152171805078272737966503866844972031857143249010805623515423923889391858573298598925516045423139527293517895120984495489453731923886926810466999320957683502306274342079399661418331138232673688696997553792242434020374682463571588576262347336708403808243942911290413134696185062319334334949847746106442701021304309224114261398731801810172805097229317944835059467341089074698616338370602742409382215948186945178201937113926789195017227408907870111300903732979637858058382244081227901679156988954110783660587292195702628175928742263128826899280485119324895444174142041716306723837309080743788157167283130638863835122018575124055591050055273787183839436552903140382074418395179656823989285173517294848711599123941002713145301412154870303569883399080629821660748801720206859053413771885052253909788013991434767922163957526396475050698524924888219043540529999750053866736041720611192197490420265081799744647818234507358360517823729083286722785316515911636802599056658070906024712710015394881371575905821711115775777167496243458742488452461334975492603912771964728669993413047756544394483405761237291614507476280052203733397096717074330848258252736676047532172540325442226610993864269668567774432230236617258973883989899349298542061345403879492046512463353292741383953883405382084845897609716583111586932011362926797226634673838551033375066978749337521507441053734228454892286813658015352922088037181542203753911137734368029571459521304698934162617058861092171672120882723601198708278906495211839038386070972452159976770500927960881476252676252962630275440918810820892000406213806739362457156803262315582365389286342681312811497172511561898861586284776897729687460020615772003575410463685433698644359537434661664657631643846290571052504967075647958274601504867659615370765367237175562441108768723043830022164268316437263978937905328490229577755091127490413605651055303147288094763425165741018256065224141920751408081737395974652203059869984502623851222155808500197574667108727441444960234020428019891240533805993973133135234318829634660760320104533316391713231970355362123149897433141566385201185640899885467157943149573830433424246789237612288963132488129485963943120196007679512817321840151088177852712982808907607966228899335926086641606856205245523170011036443006669713035135558204070593741398772660454864705294571000521943970990601129576280519017312012898991680065177413767847372244876106416394649106982878607412298419513894951602138701513366175598351206728935559394700163359144923546252291852259472061326177050006237885846766436534450409434163175755968478216586727994023025183497429828513567836375585890311146369811498023579399068061432216493787123827921272300682169821458677431253425540653553149181065401331680134285115486612423415558073890358845465346037194992707882956436853781309111307258010335350065539616333848798531205722955330335660075405875403482362421014228317313682807275393886729591581105644934185373285758943771138608227775328205779611829561367982299268869303953291799328414445395854919622613194295968782636488410862865870708397411869091943188177091708331382029503214180740100589781537702015448661484314583027134799342452538900170208400108163893345395210572116078091239707299934446512778265596166433139523507058573679278500201533273308060398332960150978149368987236001992099856489925426324689460081340586464897334422457228532979555093186351464267023166246241325581953141072915703388404177950279189882243613612366781567648795269263782112155627323119422721514063459995823901927976849092349187451584235632034434120132057397047595573742517257480936834245023930754003205771637226882781830150144955857501969698914071257199476967815274933702549769841430636153188419452255344859122620588239926972552717569930481799719857907723497140797439528122181759034288135804045638098692229929398337866261503743458656659339695398223941538329558931995467224959235586455824544891706130714002612362171698610494368890336578043223052832233182930248037265648836496105723798655740255074284134569316287939335063464467526979028470959403629888141516015969608804367245648250671670528854297857322678523689781480960416108053952331378916970277677062282729206080356640918485736683407239571477575031601742227835110741505657164579446127387022660318867273992195867897849092265602023938899621470972303690161005412683152958283095887938205424737106823457270261718709868646587655629055611615307080056823012195780845863894396263919095969216852896471873249321401461163608806981253283071187918807846751691028036099551592073644623096179496878960644218447508785489830289457120196208534394498804134624390282477237823180339415556754749988051225537509616019083880559687041147597188867723547177721871703071210224987280625222281198203800286303590368463174436694354827959441032733409314395140253660647051979578380359152311725705779010213784199433286911139894693822557021519321931994264594166743780526585090190992748378822831347818393444763589309369266689881546626173201007453526400302939287680007835688233414285295144045776985704233706895068358427280100253210368014453443642692457421252938321891951092511345331162698965391673616957529004271490488489600986955791876520593694790556383582437026293798921830568609787527593224031487717044700895548087646419473097262581320072168955123294076129223919135582710975344521915662757237973835584256019603263586901316824435137245607961467938290505638613442982700545924346317626853779316904697508100876840684490885793737548063268311483713432310434236679234167800141086414863839495755129748863154375157541729265818348923148620030920928897756635364571550669392468891028566709710159322943329673665483842494695473660955277818401583901225715625388835827603118623522281245236477302389210688429286725230982217664862683259776109796079431247748827060451839566834911679511072920596888179341917923678928384975855616009905149485960016807798774859086054315920588166207232930338996132457519199823047449601132670794774432115623416540331712814186311050491119311821856337875338216182268943594502396640876018444355430519942720565857017772687052115925360304889468299499697220242317358402142062814343208722238720845323857639710869843733743264081958611192127690806978389731507443686522005166257279473381358693214151383292793941459101951137085594232537026353094894614022088364302165144321990820754323719951926100104258442736808768068594008731769420005836400183796994285448720507473795769336872879842504459367885052444608781873660607581733973994160358787815934253027577401867583885257199902469912387435376667371429310937879302524351728106470147244670884591733043151731432339014530205902515997601666560476099941410927864013621313408713008276338720374932849390135165557292521092042101588359695601038255637355709084299779150174752868737090023059642997110551474395352373159111329719308258884900802463487733108877335088766796335057947986497151174845237319578970325063040928656561448810612797414762296715155413174833664408863805851285128775265992942816307765551694213334966920365556506191243040257131953772220555976617164708541538638184860733264512637538933329575056561135500576613707674888721523440871886036633101783525114994353294657202455692491828992641743209055688184138038707181704665726578447442732678276279129557629122046661221375259566677968917702843648438253094655742714138164707680011656386006810090259519883948213381780131727753930208799612050320201660049858320798029267742505489442047370955381749109378507047252481184290943793455814226602119530575725192735746638764696283532898701513090009580048395600614895280473193323386453247218071648399468702360622592652174144584112153988125499438185223765490524187769156058580630321818647878080533376259954777543531826717715326858755509319617660358927343409889133438529242926350517040346180784777151406883650668830494846115625824146799766668204217428935494643253091288579416909999762640300999667912781296242821379917814592163391913723204073360288992958903519556924466704342403943075250951505041911968770669949357064292147916068807207390927589124929723632549978406112759249119127926452481522102102258423089995337419385635932921279707706224877395841991932015153008080872219378896285952449308136685191909782536139314548110869996801767137880481467097050515240422103256565151080258748852335861738219167669464768490508480975263191481496557714744980592113417941435581676600361838219488744447469147399418397613046660292820095437911310106928357139589761024769815534353195933420117759848467239144850132372367250193657332867170431505404301427452500153183137713623495653972975712036008785223954967200475527102305783203668763080566886959338549797918575914410154847809091145112757685817475315800210741794240169605952919890043437429515070062059880679160711349797632094709612952264720501334813649638797121236474288531821727908866993726010819463982626011078741646393592033217432129198632905114999904317609397463752486004183931869734059961200038699934697965830367117366651593039215135864871039311972289097802418867027060125958500484536167377469262723537958385784043193244844363863988222805982884807653189394039734776497464943307419400499841417815885775590000942041990855874272046506375923422655446913001005110156418156141859066347881129389161397069461568249040939483042842045124845705310777095614527887566270770111816958699260867376003371662252180063656420478983287491202518033086321075316335777024455266758458519127052457899577815214810015132360441794415816199258081899098609413044626720445147108427664655351904578901227893571630892303467257327940420590946318853344788304743023053386003806933725479553408322319346611315211297388089139365970407734569343010715534969907802853095400522029330399406643524665259029432958299537133359485969729152106021323122541729617014717935447679199210735671835712246311618322967215164150778617949997461562817282521522279549510005658950035439572598670815974586691371043947154957048678532726013512664232640357321024541204751801087545502387150075757123589023743262153573117038452165015293515387483985314477555007423869347228064273600126451403912951525445896416710744078480749157885432761031414942472931123199588089948584795560938008204600153558625251889907198737578304314491109766518272236913925267315635792739860990575085866388932837179906554845061870320260596834718516696761418915077467222999860741356414292714264104018991816205808140569643677502128667295546437852186071674681347940254698412380951742088626802831523376449403068813895391994111599987753362203800599754523127896694592750400596441214628851372318294754011540716055196433237662163331317210236465740953490661323817996484791866036151557594742356033900742269370044269990064693275727811154011371140370952955248668644884122574952593774978325476811258959374067924259759110978304154579743730263335265546366988546635227173090696381962824112159526314753280877391807704626106485252472837323217915358759721316064811896077960625995867956044768491419481577825149216670277775567656660226950481226831031919998974897943896089198617911468611045073870935997941992446924866299508299034757271075922176173489853809836836979190926706452268224884288179951359435085502789573355910633434338601999869146739361221938082966609332005495799635020706587376918055184577286980525433306221878486255957309865445548201205326622112305772035470260834935281889881884460841349305552419165331316994813725186237852776069276951899864855820526209927680392446231524483548494652223813972350890705188400725255507866745808735726654194962336197007845763504100479824832771315569227114429607743930775813635472729026703164264647909065767709989667343265626427105706269303325860708211163486875074157090531983493095028087356323421727389135978955159408422519933867444714093279308240290583311278439379780035463860224600911424174016948585530693485151999143305434866071112525476389331124615804232056249613241443432570610063925569743518193535687247340672598849841689580495536199002044576035835917608644688322345950149220831794704719773072099990573212164531670317686105481873780676580308783479935885305063896238747662838502714614594014875044449670050178609174983843585172259119124241452736309686265474504632564005866872456625322806712455622601735549514360391170802572574393609615493181425302262837708761096848666860763787333001787435191074898304226710210597891243810328045862622068550945723006506896354375441072943523196578369430430319923371397612384564268873031025448408405772629201026755278086216332437488818221917727368319356072925898288541864027703599964875217598053009510306806136952233502108939057349491836254797106673796648615761021204828008287023299472844539282021215070117348124374509932850170413797524279793951838746517263993720589403110625356397286194965847864903850036376106443172797433393370381168191377553612033158181909650422041653215041616678626811099917132151424902736041020209079004277917559579515994537537542241343001061360151911967373052579159532712345979563975867256384865367169969771959842315664230687287609480618494241650339629984792208924142686744735418234494596578164967419303172292455011229767527731765486807041372643160075437401466905966194859129609237438877197995904373292319323915359174000922230440514359335052576201022112832317383397265301823070715856548881740230234024300382814865968300129982900843573541322406191792242017196669047350447124664175650735278320794090474696427580578483707395473699959486344507606668745126068215167304372334928846990346011947704957422879567556118351389256105244432617682750942948081467901832743417114318561596878917931677692489526748734967507362722774378504183759577521478920919352975127304830310158893492137948608180617662732516414164395171316215176933659248135184769879491381647027119118383590092215028685346924587617776868512115101739707777737260177872621348022875794483787579298599605727598473029219230289162162866843991150277945464315818285253603396447452022172559123325933897930809079101708529939256201273403212908445910878897124849109350153995179300761597497411084728170683082204417211545084297026602184017399517029915624309447862450545261196361208520669877109134191644865425753075221595423201918026683540149912073388787112781577783985472020232011429552077885730751482582697868674448402480993864022249041481569651093743038165719439470962446135463983761492777340058161333363613644726756529865108746173948287357025295349825168485928167181979987915640999133390648919760797397461754595076446804181939317392689208248369923867201384357281135454409847606481745068318120999559877450851493441032916303111768666971557788084008410141037650649823392793211034431761422000248173061325492304117376843516420688969557510977457219468892776461323365582268086472406454949994855527247397342185257939557089373659408846087222767603566432183139812810719612806900370882847823955582447453584398655730439638655382039633521190385393063866728895411712225310762488285316846414002491782300038925816402644691576379553566681054297256662831427278978408644790200501379247158795920221853240825000508814302333315281090631514595256877178947643479481501022022726133217786336253193852156067456420036510933093178479676988124499825859304411466613603541077286755100542640847023408961764868194273871133396231364308073018898253644574618503531037885034871315489701996645466264774952634004640091223361213200483349207743178934565216998648745041598332229058373166931575801024047482645339325205852697304637061500390129705493426875722329735993844618164361097416691361110335921677457672340404085443438803366415435581121191644041307330297432877892147418046102372476333885765405970791709118810850636935413441598061136397833741283244638943531044401496435740069433580803372473328106421435941055183674003847224616035493307615471563026830801269355804290705770595443867726007416034474820192613391037854638835519785897036504129891766206564005688385554668083870708695729829576393856370705099479952487736427802368369822888114549798771514940453573101164750396690766381361623425193094619699868900773900297666277920431062183868201598420899943313141073241878522346599179179356154462036169246024975751739570411301286096145902394024880963883355789299522595938686246637121841753178581505792674051962604848489032905535463972876677246240785312595560573632906309067968103632690238065479612696444098313926275887748984587159562263449089063193589959535060039829343641802309047254072464218546286105019768210280275085709836072350047174735292969850095465155773115117682213389114308132225022276719012060227675291655343269919601514915968481564983973087760593916679209569599725879877761370333010369729258865922379523375998358133662484413366839033428046404707227634530605131955959506656418559224436743011592755061362108295675817570450854820794553001508253069601791326266441774146545012795617723657973989492874806849266501266486948783481621816680915547582414337804075417249012094506450656287019979790623586621494751762761422415099154235289686861035931449013030445312615903927166644822877489804186389320458257408049945818958900919268488788121955360476255928811212017592309598570950242011426300945908942729024332459368727543040350138754470298709506528193941969607405732893485296819944545119326232323635992932500303393313113855455228598603350349122271346573317373913908700995940948067970986681130683402677978957693014317171205328020812518771652693693849782542416139934605352716271419520531799535802053296522601828515243853617838866954320949465228216722095818096891870076077692112864955841034062051249240246406456820423838164088019682236092119148094472817807455570517957276456211402019149465596647811014709001338381508948554077336135517959284198478913912113300389673004906589715617126424063016188282822082664254985479395099391711575871271410350733137046220995654041689414821689519541500792941860966315769300109414134504535827110620934414469986841376601847474188733209037563664184750953874869313080573242847749686858978544131469969914125222874545538882424017416844617768900857305252839331432801363065296324228650784734037511366095099852447371795224619094961250029184534728918638672108954341586885429355023057679313844953176844775763476661245533238928927618827318639701913101415799489179114054740097656170993206196362120651457921836095157060719151663689080271257908149951100696660880355987475289220479002843484710473626219546487538491725111316460046064980967893145695695068702030500769936132223687856247559860970728904418416195428098929130859616878418316688440031994548881450918310832142984896225595465620702144162182538664243241873568365335719172977484524565699601600648336816743515760357409964073398590354167811460104134839888706148106729677667012335645895282808722445638704956991059456282856651502698075789832845465123495146283715420953280286095507907626309096733251467519839746982465622160042374536485687083306984565722330846850011873754285196842260186329028133709700844531102716547302400433019007671829924759066104416640117480673304603832246061835537437015444631112715621169913124615779320531848095500644849373689604104293459066291449822530810208577610936638448077227846747076962591666697609616935025738839111092147734647300665190766601538241915357618645477784880120393535866389009754257601960323902221157582077561360682759509286160562072270258822512169177968658575589771811276848055012212433254675165986575161531320270356689397548670293270290885267002995635516441317982705617433891629481318920959735843462909929234570269180090738042824366224833437387803305005664867326222690420746861814683890832913360924682245544303079571918679868502584992643763399475534055682100979630141333126323423174651503304046217239177204840536383109583513608865632192516733757735437272856096285974110704886246181817493728247055151897085708524137012157391441578457955735645767567456720435690141216015269050431856604132740908152918899762592335944754771845539081961144328291224050888322294511878601753329361697017339372742038066823025557084931547477345496203872454337896069274425005449636516216362670265552717215177093524096975526095196500286932564241758401720800875171902820414174800786346925741155076145693455353293937130739346953698937797434149886184042667460186921948151137412067098385059674783983882039881702377151437648566627557066769158512388036898818335822872168194896118684972421202002743318961632349732033664652007810790734708332408952866547638920446034603293390537752206818356294973790457544298364610148369074511023707874845290277375596614135789460103450179187783906644196325238167485611181355843107571361098029550479880204043658577725590936510872670684299239148918235048247033831709977205335436184407563141637863738398944592680871759258596080213050562572638201262968571067692675365717909235366876296527003610821439605108843637912300329959396099828917793631619213616537929832335619684268202641479515330350327294544036218470706833705460630015809957561166190174760876350005251859760713866736279946802059883790857588266688553201115407658233195672251854982741927982827462563698556073360120098013337975360570045663623400731797275854051919262619114033322477070217368610031234025807236127953365303316208466487301913821378195573225703467874646951200367456403850339819176855712171641896826369574148968822720796632697200928200601321422705701423838796300192520185123782740152075218862615383658392931359220430178439227831495537604114718538515290136422485113879687477727161449542127995679759273076987298111394987083679335952984809734194690579249283281927903408855320186089179189940131662403554784689518771811061441214385294128893418372021094346121127358510918188728543999688777821357750311438048731881601329182878900975931296815350088551113906634780340303964692127310070679296878589109455873238756715887206223874256318696256835108069657777737381718109102644263047846398316498333277878820930511624222755907572756875430015872426007464743343501086492534235109174128774108454422074519570690266358218958564863647858092593916600299173880465058905677201490912588839028582725186354150436675225169500709711535675535703734867761697631459695233500916699933386181624613040836110918533349686210986270393916765845263499612686998033545107841870905552801177252145229234149997550138536076264576600304801342109317976260483130352199303579886666268401941957619008800142196040016880056098206157468724728821103914594115297290075208392328948246570073166922892130205872901835106014098624065789700899004485542673787699989541331053501674860300033100921155434966680740024949269489198767462372872363503670024590757503209048622958566395998206126682967248790487123346873396796318576569739710701596020848829143466257717759713248842056379349020046284547625582021657551983719949582001248940872935279327914685380028340538674748678611942447565496241764403594316416777301676100320779001384043511012120210454968745857868802714692079027850321134395590891264557546102271593208491387652212819599870967241633624479421042343463202665429813389657257582807445535556337592157235090687492374700125439227712815479902236336918348558780454876091754209424382935597604407648164328399653314067449844170487696194972079047239342487879724553494511480430737657729835208782188874379186809495644456385238943412825703926363846576229763909289943197153461301226559320011769272955641181101348763402390330425039245453799236994763246706309395287315779196295487899833664099224535453521528770043503747857932478739623385575629457216459789465969687271437329976803106249368874942988646834556375196389094270985385656773617826350889261111004421321929327113008235099858211134387696733799326527376860244369013333260056909111342539019293616958422358620657666495122109733639517383461313829840927548958555735648157967683182298531588361873085939810841688632486936008222677240700225558037889275292112984467835661420927155126682991568922247753373679650735199207883152103195134050067505282803013382349431668116658200295500545633182262244201471579319938466270836494600433342293175133377073440979015815954793973106898783584172798111066476324749411397404751556662101406705448906063407645130644192529840284861878967837894142470140326185549025683094393018693827297371554599603381365661187712319558648201670695056141108737043894502690065059450308053660370328390056375704595104488054346682990576916526204268209337146738544416328834883021100835219165674800630469064433198841176651008860185404255412534159724469055906554275393658625570209165410509981485866899371055922727931082217910684792469877149038815200865657948224712843933935323241619721142690474156544733743921716938931859046998219273667468422954977397788765976947740727399065340254296351651498508901469167319882067827602060461673596884833375089645172581998300315566018346001665283883844615283553069198660658535313235716417247537718983639899274038326098089889756049757895159873976965840349859253192666853220748643504212711287912194066017328974149633243841996342029338832072809475559116881027777812098557217610369560821402840739003888711797338429848709083147210088958870032811449212718971442491557530411715755717758180644854429371962875826877173441129301671977293721580663919304753113469311159765344853151522196922227617955653668350883854998270111522198617980035556365276294247046076405848955439704104745145325929732977377957501213719295823230288242117340491909878671709871977492889613781979291200808796965912915497660374059112087286097033842846538963891815622623098981192669806471943538897522698724027421861181876475157713096038384902933052832921449266945504862736718618582948557717547644710802416868759232475078070289828596005296494731608102347721572401209073195512672490630031064290485866798735288748687541015498561976002386253361276633411204187902644304180118218984546063118781522010227038134213024613739138118675427717879759396861739836588404980651691311042602911297653148572772479867398032681270858963104843775097138434247932056799539065390768377870653168972835747251493143199669788531791193988084188044340704651598338962472565683154490025009044383337598224964559781205504329453395338052318814765308622100394126095588360220015470566888373320728473627938006253116370392979700357814384986124946375315653639564934365463400817646931937680355560995784405566530349068228508860143848624694866289096613208275524984605871803211436828273237850828119596752694009056966524028256754196551432589885405086927495314967087891929285396135254145138880352227051514234591086436827794834768618107804511180907650342479819065033316045947927292488155101223479219547819288522929778801151905378257237367589067503195549558139519279451237755684139671471837358288507968638225086042941146888307732742225356538229267985275064746705086403271277388533690670571245902458350675141706684675337073915746603410479842992554015029407610046225660393670834868968023147884758471489276147486880327363409932279472000162477715154937022032073610756655377209857633270966854142969842145226750447961842735822323724745950143370880319650936274967270356714876211359794002735443905461426444572110071083136313220873138634183458508254553909474442333839670471798408521016495649918166606895213423949699457693821924965652932408830331014676133362073771864628175950718166588913196611085512905180165795219819705763106450554107119593584464416722308620890564464681755504422857080924185510042852767157279664437721640477227612262873836732682286138244621031475039353998119288183991625559693601974590078424310113721198339211192439114766673067507886814242159326858651743547305741372087312225153123574003965797170637557787297020779087690830081861037747713901893450318126868924836500216482344685852377502270647729621216353947712897362947830210172341294109060252135428615048611136458066136730769411862919835933433916190185021606484498065940895381377168377436573466078235811790353777008152676184231238846640106609012971079519022481371031426341117498941344473663749868814145242352179098570925210208395013534872796085830961022840557775778516842088113532645958257197067321182947680634231712879051092941638457392793681417605301964639656330325872150855401642084315212412777512729996424191869400544755675478959934092896850867760050402575759969177632216860536621275848779975517332659561441755980257536341199490296490773856170793194558975547145956069672933856403392321353673159508866326160173869580744514319718638448846810025654225495188098182686840304522396071709589388693110019322181583839201105500165028051174087176901284742333431525271584461623758177655634885018566401039133700764489227015045835299198920070764167921781528550368597712260225899808995741831560984909919658503953349262567617280074447439508308169935911267949132427698913232488529276720404664652584633167454247788462519909664350723905084596645870941591009564851299857810961805866080580555757684677137072282766399450802991124923545228750581277860205507674928034002928364548974188650327988857841407701044016098978065819183807429881746964367897973122313329266750101772499166703053090562404729704083670289743831754433175346808872818681549643672367791649521091229012655798729711228734913699892533905715502853293968111076202738872437893189548941102820629377364123535486590095627564829896765803799241240588474830165934851460735279045168038888401879463827635741722199938123739295833636077095504651207652520221997615334093831756999071586799203900092376766579130826722211860216941784662382441717521045235454616466990408975360605608909518421078348703366807496028511189507540676682394835142706397611819390582106736546799126016050261905008129457894277965043841581532031271368807258757949245611575688046915230153556524600137256481958399391917062457814149447256466805443344309776648840459543441982582961842587078429447270604144702073513701213562951841815305869461155889023093083646188990587400568656626838746082349140297563458656943461236154372828412309372639874306013363079870125781306486869150409805339769545800942241148239141663970163199798108030164029851159190955598203169806916563540995185571257046150542884828955139042728484452236265399633257717471975768463795437733821102146517587964691567976757229273966774023264618349570415445985928360316384626216284533535718504860203802448353985074492493519407659715297596591794228085230793286066729981866263482594356878081901448057673792805470648613312133153921903636734130159058195685622777493305305082795753548323617095304427549841411622974525783342436109878031625120445606673688470325372168744798347036218743091612485401537446258639778612388867227904940204866281633926029944146770992709933933568683631893774556446267823719321515074304031505424605704403742885664056344894012354912271175890192729485940326525855296965491781115879711104567120022727176774299630885424636799077361040878408333525751033320028142941348850792386789795483927205873753684057677749589463002318405388475498736278281101555023980370481359707121777785490635292023615076690963680974595251697668489202900934567341823683361814557788880171218136549540475078718859254671916477537096632901980247534836338856087898418223574955301754485131636521274097317310535313864464585600261178567953209840305190607158197761895378789001934627833569051399659363919672605532347732807471810157777052850375439783072277583990825410232761871035782932505326403967111486842902076778768532288634541934582171823186457112443132537094818726760032238745318419897793404278292702774944609854885139392156987541826908244520344428813413509518130320670607744344805424165792305793861256090359714606152700822094665951734272279948340694952439776114551520018361630070585672412243242614949583652797907541065206248729291800976799276243217033208719540183250260390306072206660131438705610339304482198160287712067155609130046197407856545242790623500987021807513482199284626445620099752419275253764113035194835456169002866612267303902244362025380235766226948844011423842830229866699642869061178765724522903885750955434616831419231190843762903429956847158053038437059963845380936913027009266841784724598041229538866568985268660456101661736997886551991546546499747738349738275978615459706939548364210291663243892644837418347122021749206906035263237141885218876626666564263349694486486689029422248053931211199920893506275685733858128705862008812477405329283168967807338979415786146968722456569807640368595656854833010163511403708467509757274770244513880462599138624116936976014887444000104269549533166600859237021782132393719214800596972855401611453212434361440801120029702493112160797636052854438432481064195056163567405443129934469640519411301282057735781959913689351805093166781150574122614116999279130358363041275383592973805634116039147816351927263996098830681575521273359966482415348108265077470555200572522252869997977112959419677412350075795478737321749136890101027081234060738991006913834685623755619869498498808574236204085588632722668673622617923078292248977277609657073735828332896679048920771030682012856052404739968370456089476802524887213260198357373723590331803092206496948218776371707410589161794145666240335542946895093247775525595423797775768620476523215617789323344083745624585527153316335529066650591143701980823766622320762174214813878081564111617509508738782018512357797916955438327289401334478202196008968579415918300114072268852637176082312395004384312296440880817367790004142161978746433882838736913454100506760042057326796456532154766691304165686675772963367079876118271382096179816032052173716913640708083977732699822720726805681698540931469952231592275153551750637266109816104902867048558983332745127527560267767436533936349051871720240133748952347799675988980830806582696408688360070723973861597334226585866116725959285014208943604375522885357238250467075871870895644752655818653901828952048333465605721672144912216696467738221330363270875685231182504296933036671810705223941151667080990255934012435862687874095961080391729653667177274665535560925137384023784563000438416797137560300135323428986552691461634510510396601127300194811230331063865159604560440996362423507807295845074580106371816772849862498947614368458661671900362467195128970081242276416061373728743838405174192345033709456915903205515739331638257995133091498987461293525187979936590969257710903398527921506839862966678728529064085670273406367120883348536309001535033502294921730117664532907816254160134609155047053735210796941735412220541718815040275954454851735664897601250599597325381329284743808966466229333112628115290349827755012677356244214510262307501293482204654291344203364253249498639119749013029187451561346605275485500328393418589604595115657866105911682470065243824000501361066429568151535522929916114778154341051418503701277830845407962345612500108001126035548257320708410502415386365536296602173853686112208177605241104941565907579594675863266953783534601560032588136644586043481371217359253999100943924173192934099069128704526517855938338503881878511635410837425123007998470477728101337129803325413351569811274169404922505263783405135838010900743129613277158341046008854893637886309656596918203474585196212166175507385208393113436175099331142185513175903288670871794050982141356646297067749655772315608152010343756797135634636253539231768564312327932126373038211618975839515970306618603708509251673700616049912668958960820148829943664735474150990336585832220498497795256260902078069260835727335628230378247776983539735739855377297710219999472614270448637112034934681421573868131800726408222132871914740553989314556698772185413044514778830896799748541366648062868121699646795265191037246118352054632792995023222882965626025890867354283708102795930585485670302394380614186438406348183893149892283065875232576916913091542825488377568722383359121252445847462524759247232104764598734051331591048535789344151013028827105894422994031728351648782915210353721139768031069681730964862637612007779819143667580636799951200572778029972436770900443473748102010974621996039228254519599545890860455271103745840443265049856485335519703343448316452088504229477046715898227088920403200734771411321045339210229130753278246764889558994872307732348525089796563066945512179250498582055614845065998646044851068777612002854225761548601010497859541894867284873043277306597003852074275609813004096081174472473782486840485241106138571378555668911799522587190216136214764986061293297293075975156765732942044087597729456922776962250308821747404521565125835050444247620244685415581587948994621340512667428145909411951967992570840028382707051306579696337957637455692914882514577775283501606882482651398833623255655984637961618564620867034740837487677044381445443484161014781855300858054125605018762213836523459213040684374710082721208591683087628525114101166028844047112262336165741259466212840879209396425743984143844510100532991051331024938158766075458457982951376010554489527480247602616469585583337710516229325745620504844504074526401016133610254778505411112888019185836096683170600545914460187517922108460857464925373497160488256506666152120484862984359767986543461747429364609691738252500747297049197787191535921411919082636347113735022572165610219409233417144629954164894644673774495176595714658180058567825976328913875506051186180181731162968156899865919459425734661277025155423188769256513279875397246869201796063311172882197280853173938344173308909726092955918036548509486897362795357084517196957469097573185502372991955219655020738378847805912446559850184149267129394780892782997172876646629231465110020851068983555445786412124651326435378793970865115608978426027541464479215712358255656398233461031419706123282090526067495638265624866868594113775833084149671855299164901363508976834501327697633253066080460775244156025254871518028420590310595415818076623852191596028894834629254838493956483092385504497685281118205111062420250296608685647312846709148411709116971630529513879594565369740002084110718958385566030064118373714314462105757836707820249505742260946173549714814040787477549356333342349379632455697658664571893660812782291013706481293967526452293056235462639798941437214413340396200007344656777420142175966432476185352388446257421635026919322884748035953203966270392340026312305328296274939481990298507400767521593707995765615027932598644588799785879992991190008343992999748525618342427701809332270804098960610436840540679768027406930246628127178172716363235898879094152395986427627833990601804968483137926190834936080622638128109232870384032017318501261278167758768878688926109238703959902645177429866632157587211326759488116247097232357604051506373294307424396768902718001085967529177590522628422459391970957333698483939150285264135902576465704209585661826071959918448091434158799734027028258872656680540171048027576007189357415448763938299553996256283744705996874089665703500061114074254458663749665256633487150326476533439003219345667794015216671179455289448544981952833964887813788690484711551601731620781896415873959653014937601508882510502108101099256032573060828420351052649407989328430965775030912193349755437069191961883445703440896193366057029586057642203642929193047813909094514186589946675363585445410083783223547996893964190289395818093102187703479381802974565953907728181258885751557008915626464138096569896856765940869553035190104522976926180889965272615046548979238052152842102218695058029665112176695906632251895106822878401842749773239844601980179538902097433508862788694800238508088981641147230413987622612210123552269336007686608977563255034239591543310818010114641979279691151165771775979881851904901145701050334079620129514237868800803386479076006071545465930040958232239705850961399549024892055691494686535602600505818874989362295342483950258310530191321727304415658645787917429335661742480298085051499403995247564850880704175902422050102067472568512937261625860455687358101134824385290460090951927909756957877826792531338224003898293129840069340203225761671232900153677936888572004422200998393543903380936468799257906686422691818828832061881489254524411163872329104443589285698431708837066101263435033234173203124483584827444905089081145126950478671360822091717240692235143313355456618945419627182046094870893158327832088418744584979498386314262169984414893442260903185275693730645587899674605906092409850375440826609633629726671369049757089547000085829247480780680319558001891890598783729874980945968551240693699168791814300992437336910055522759061814391156276599556937883104110323369452636480917426355018320754729222879712585035899413910515840872331303227377166640982427291138177406553255690855465719227977054500495756453695558358009419306316543055239641007691352572442274163361437132088199423027303071723568110890623470145125455258972055631670814339323266823743494918772420056244873025821621299466920620319173228651080717897777815258558125919672763657189945422249184816803921292294111047605635357083245811230476603894178006085282800323903458810892436471179576881996191766194715438801988992607437285136568793577924814662395358889945549624823259876767567679519139255481544967977656161469160179571427287887494330834198502529672373103096403914939194281253934859570634988812991752261351349283513236350983359103520542634267295193114793387138071022999619672650205314565733932123556890179384729450606925026973090222496937718787933668195372983266559925093384122521248753450802860501471298627906573355281378055637690603848920167576077576864821289838709506102288180263031964982439059513769598201406239876602678683598447834060271340885314650982260609515298170254419549067170889715349796162351314091430142935596821719146675217792661622985472840455599154421850964194384508061281831428593400605186173771703438375330095327534973054476916589236628304009042267075987695020635605316823669467203735873776466663585523531810423490252597379274085061868648972045414178262191332575605955195408656242297063934281470566338477665950090819002410577962821715008663588558305699154980339716937672310654731754190570126309201869431439791673814180971265312939087401418207649978193341930521877201052400680141198980525310402997589265388876684777354048754718578004680114894974110819317886485191519539242259594634675008013990282017740879608903642968772906687606349268584446511745220216429427399172806275050625032417686175189812958775862692282236414989786021034459318427565082580742373136409700676377607098546426795757610781322283472841195528073810308956363782274686714981633035913012185489006484252412753027115631231371482269974125697522413986543924964170136997189174852698698501003845958211184333058992117871321129310774487195570705232580715924610270387620188018344610792433754951625273371986055029318205784852491919028837824126469064023459593358515434824256505417554232590960324749818120569530538170662742722831307606491365369728330250008858295476524468831052193357453889027238936368038043086314707435838492874363410481411055675165620047970704337200517098934781471679151467750555912542345188728053404146681691338250276551584150055336864024559285312409385880125186491612971419978516197913326113248515001140867845901633341991362770166623912584194278396935323451520243468850888739427391620845701289919748360522820596204791339313065005842985408535305511837528069852776743431514382783288724753866278752842981965159479986008468108009052185955929614992952250252724680628548071536335435670949849540119602059552014694035301207587508592433368295307522807405694498087853363586148468105828053318646862424565759372639928073290885864617962086676378312030949940843962017886434787827370709302816534920111086910822981762435092540954584817176708193420490890929213187662771029108618185627771170763561775491204440329537433585261298169641511930423386027545188079129897304805831500423901230113772538819541508504940978848530717053057175742185118504041623462739316961331191036079533444643885834957411836479604306424684579491896768160686569026284211448071390471096241340067975441933211740315844419405971634712707259695469945230737384948809365910242304294658527403514419800578363852343994679732864523074598951429656696098264931758589176831424858819237378621573305466991707069846753793248952476876220852083738833666864265102874947425108479077152767389464903827678160221759251145223243810617438409476089380974705833018101970168365818326454307680167385827237669412506447774111143614903527541961997275374220462192552030881029752333264340938994445255591065859871973173927871821120308709484467454318112922573267189561183078678517210966468766542763187972735309899603363265596994640052547604996485960689680929967773286747011243353681809035258825423077879663080123336869275707862053109455084506721447479771576434338218659319188656634844181855400616239285476882324913298484249980814230638985245331323661915759177619554367267686979273499286902286059497308641358843050559558299448599303111992191550214786405354286290110196058584008207579910818050973250759978004884679451923937293898924828621479041307511783804275409806022540061951924678030704508892183892382458305236945016764319327543617080010557091955843534802422242275587758867272202215862069622155066399195378118815425697021088508660071695347043649230076302627254558748776449479017322736049271054222129236377547521891667142270317437994770906677665854619043874761783126565330325391421741407226163557742862009840568256132221241037305564289878455414567998864808222035001238077890237583629173477533890073993204830937434668784932863064984341170795829393554335197435936738985846568839031431148318751175447200299877384013805545797755415818976378874646580689112550180095255018745879060667252885580617554722574401680361409022968842429961756269692197885924365477816668849260031062603873670514199040607795708515907746792054064321022649132259333789730106695986798586964617354076675546551127290401030627068754693265466770979504192364487627577448782768228445677188793501915048352617035860148555613598039020850607261868051770280136286442446009494169611098554052199649340647104782770512589929436815278864010021668541270496768426601657520200575664104292365277970304964748776364776774858389509665558358375514429102719215345052771377216433748789347533837361110114822649410218533486764844737376931558127892294382089816352741370168989830577052267947451281052869345252720251137156171228748638119531007118656394199397983989710668734097456905828378084085326883768933854008625463805497298168587785095815356254754744374518892099762399151661423386421396232092569337106655974993193354918839920332736723659107743089369271414957618430854871188988064650172116699896864027563295252107322773904268436640567327935992990887091795363169016773166921314388982532365120098017231150226638609789482636944125783042946175343485717199661747558914409043524782562513228924998426058263613927249918186101082222543768797127105076246612858293964001570708361162630455370799598950763642635115959720752942914079887702671441526455159713294531007747335478603745955754365470182471507458265385261218935088346582993271039228694426500387621495174733681164484251032818564585423755612256297861451769245247204021482104783762810473371658641273299311832195354880183786646585508445189953991843574216061777538409350081071137507567375871557115687686729846174948502789429208373401145571841849880627902085848623002357874355973794434529478455868626087040234346954815814962344346162518169686698972124434557478862554039069662974904228866813839371284850948248648164350898373484205302136618198022368917261710676547103876578276519104848181088830279902310923253681531608495394895812288600317660045963631794196638635467993719519576548582374304790443415876667740053268781393102752610698255644787799502665420440453257584753886150630222544802889387027419004574055107661090911978162780541158873462465231228531464750518657106056040327829111888853480357965709957303416441721756716232063271699090254902207142582741132234467946993923624652294247749099114749430168113435166388703021212529263306852453555595654808078410115925904507397318913379500183948424998465288314381082043372385651417754568056268372054378586871375061035482306226710720138343231067682247597321200866395116601964020311982754497013035053037229957608094606690447145209122205793099175936320229947265098449143328259255148078193717245122955776029272112045042168853313148227559669778520228988196480388689546590555854010249527983313923290897518265130615880729354912443316608223126086342027176503352133290928046657322318989696666342206109359568491294383042785009519814551894935229551955190045278381597160753216289776639073698575018804487580699144819537260201884155713688354962472201239639084310513789285372530724679794195275009613026572302206559464973652630657435919089921167846204872255025131506277018710602947263202266795056290403569940464869271481449819862273816443428470525831791761056444299567176442149681674904433571929513882552571260262624184769715397103138414954756714778968230204236476557122463533141904759326555819517602834545248321129545714349805876708463983624090621033572189080168439534003291071870260576222539584334989181206752008142292329118120070649891967715913551346712978355671331440168863805378361020257546447367498230317163462859673476055459532563336097060699199270631009029961418691038718278663984755123810964276273193030062772694068127476634450269884729266073623144223034292989635576618577931823500286193495011911919609772328371644739609849394046362472765476589786633762979347898556210942488335579979021632585872762105951531755359102911699327663835619020869151721236535321881506311278743967747738535355834107357674566430259430270961322478056942679258246673954379917877065057653102899599418480257182602676696063460120204570118933630276038507387471847341233480901134763870037713879008817181750223795993733672197904307751304679726077667676646064257194727008738784511349411788824905223451384994783559116271327985669640965155869695253661078159601800777789892405746339659743170959594808650061210759033130875180883586398598977042133685418277937453755946927718438459974782161625197940560212699050650575680247042307069174734275271080890513057158923140430263804757077038306825497262955069586457668342706582973095653793118938829387168646506161131986969593861656148099273478776075945655454098140237561287132486546361290153670076355157376348018189677030314437886648907046342163907413006057476617154344154784966464444788820091187745533565314092111168336440097105902486279636974716406947215415016332063984777805156177123624412494399875038459950116918942855940924063435831448953143432576018937361388108377676119319330844424972970540700352055972143566039091701949206670038112155643943240644977958476573110196959186834262709016014584369505832761334183935443987149009975709138652364561860741895644368370456518138528673305336840922652680504195974832375907871968197028598247399526406033816470196636768184372136558865232318583715630181586170675712247773891480742252638939521603786918794678355098248111396593799530700709225391109196652179700036492337011888781191403844484588551151693035430051525152403522374850984697642294541365395332174288107136960611986774952871960696947656751940915936822739606918851074537136056495734071704092411573227357433749027674120970459266894412332778122094438145382868884812893426739883751776576715256264297023239227628046629588347772484553033627871850628587715153215296715900966095129375045628723272772357728444545678721162438266459689080916925755718277506667578165415699718044768259052993442351325998260269768942349170701907762856314018426032704898802602579562756120445956960102533866748602204798655256185462043693398911055233088160820657481178345361777079257169683004022957901203699312299852252787900247666629085632682096149473826162472955540759895859446438466645432905072679440827214023257977172721423782072821814568163132318756556206275417616499197186383428775212334859918748908957580815002483744319716343786829163572193808426149429633484578462689983602900284444371970265028964495712994245388676719959596889134603300246444599808039142110470996052412940770850148935882921091067983304392529350206142352996243712769160761097288550686339609260740137489607074267892505388304823553710830830676278074342744261532687441242607100315811082490712559003136728471322981133435109606712743033529627393019755383803084688042041863358046372192832574927496875981552948707704789976392733644955323884251521414974149490032816157645026292791417513101933319237837611367668499086581096555515582360935712869487007413329100205886900169147895369599601993315539836508168260227779330652816553048491129912824116090188259926717365102966162097628681171864788708482466839618658647280762997567078428363440781975214832835940242640852660838657117012404957290225319663301803916784789929915564535244146411753804743405030134572274267310450852839316650340090850707516795513772345620178320196723079998597389002655620616435998668376234436477676832029737384095013454311927015171983692548960940052960135813450092860764281914529303043768048581997001408484330447119941361885031900644711304775763828404101679496099958533186979807063388185839256921711226964305500831587784965742665086670278229418267190181990999222886720520078071091604913994838775195492154727672626423971940189661254876885514958668898233855185435725907357309104823460402952534230129882436783226435063051568521147241303460851319872966712545773896336542580976629954178244226612198340898096588239687666810060809409271553096743387639309862853615522932421177722803112906779941667599233890666552588031787866352420548109317818192762661212355896964983089875096096816834923252049421881432994835018478193204751354452087150796963473796638691808551928937833862304609255469981080977183080734195570655295258493913132262048520930832645530344910155671803235302725675687052045176091723395041782521532317122534787920884534101108483500715722131907173807523662266094312931085554145435078792698494771885260861837755494698967313903264941538154692584497023383564510446084506967208462474509872081875303979622355952098330242894699795441738209021401565623148724321498424721060746108423898299583783220871192377695945156613001635307044323407099875933466037129402990731561354860079378445024234787778611605167552523624036539290206823647095720023191338154040895429456917645847410954717470919574871884288118826316058206482303910385596875491297170655188417959916846880163385450285066474589095776169485643808592358778394226158333268689782099434424465297127611293866602904171494842110501751071190932173324895489741135154447487907638617244861594369596272924433970141601759354154628726368726803581168616733060443007070252603444083826807139997543115409813053049439120294828805337720884733837355506185574313890732695003952744680075725306916225597713532283906663888371396214404984703345522407769351573960331752377024388020903807211603830843218584401298131091262758971076079746502363525402809260202832541210362980362708415881313063250696792729058893089031608930224659713759866086782810382561103673264840534240075378486196529567930421703360731008325135999148110617041363312359586274211233501688116736952292016781026041765027570190380181171612716087158133562857740172121627372208775293919293149738150897331308115903933722121269133670019471687454877238883266805051528041546123914897927572952572989667922529177766030684696022877831508602108263017465209042604581603498688324515848434890631416519675275679005126230140369960086527234886799856880633524172943191572322353225247223689875231570058265309210729158665893314103538862851986253327413385721940764745667160261461071880453982962428651151734310771581207169126128751181969696735536388856480495528760148866179047326061253910631967316562698968059691471141509451844920335580938837095377374912083051847276928634396970787831331952638455540242250075936416086885838958880796538712635984535275908074029553898915470003805359290358026613464275926877943010942238945094359580506614836557189044520381905635436873030800892826278584471731295964394227145370096113704818579692743799811087867046377501170192980307757994645907433129437005957643871210812595054252885158021422791578294177503168145155918326386001501051266668617439859310510187169455174737085505294651694535957737231578509935810524672808723178140094490424844646717393510412963498986256005394445313276170674700452014352503329299469816086044915790235279262943710067614279871691262655322092472155219689097628236286359856432577808891669729770141824503615078529242795669948142636931927192161214981901830744071186754082364800665454070246625044651522876732578494548821961141504507166511673249319319420641578084229147415327160065729333589165830226327035741914249841751986381049731166608992086960055764996809120127933451669970886111270149271512033436966275782313623880293625467762697777345595315370037907375818374250063088081356847542881601216465582400423731489598430133883909817134091063773451470452759070744828328003888163652930671920736549077856124910644662203160782589525952442817507035824578136016905871107029622098101833665675392695072960818514448574228760282768842701797527722104324987491937710112827967320912209096548780631615291728695628944483006851923700247727427256117874538662154775619569775616454473197148413309128372062031051271758987506037585270987661330554313913945378654678113621265620107461644919788497569681702133020572032437255584800954436361476885480275788168815478536922256579683013480221101919107705105812566785578543589127773123734398300971302192258119354683315571480272629668495204661542674209042915202410119114395923777842409481917778502186592356271817908901464195750579742904971008179677581062890915810213623538126600649280637817175035125501013966697213340694740141214420987530229271073735189318124584746650899928062328827288191964638800242750551882105857942929922671174453767048391928640773336598647630972196983012956533338817796568568131287074418588636380027627820631894863098924021710865083436590236739456756487098031145289549613163948173119256055752743149593663106797956494075135939273109562690655681719472258543739248493118727489643482779898331011223436600890175138846511583391004314454546890674615961512826885103027406653554515669226920824626536434096696506267129298182840004907298667059453626187018026757500952800708039207445556948565523802805363646799686974150122217896167617704671657314450761033421844016401759637888581196725980336981821673055066758140959114463832732599862237444808173588797634706463858546142485925996575700756465326555784806526979293752911882607037985076533659337563790131836014151333372926395476951871470538576424507953687882570383844258495013862624390133792845348499366606124828730331405411278623673734566715563359847172802573748023233722501076594313477748128157782552295641010092095680350185136650431835448593348574078519384990478226279276334606943488458326207070633709609040677699524115081965980539747683690356021083969694674435880140370246611997919919144939008574392594124946896365090949758220012117011142221558959237525660308468136096662711762510577223582769424633176520405051905679304756519300181747455292518558085582816532246336996349190370698079547930132431565269379668105177942210423782211102672493983827684752014434440336149350182357493134117909892625331459631581792011857109142013461337896704258840458427224306795022754251968343957632804924535070291657443459819285147918237852025320917585708288379919606478688702184238868542709384947072356825616794320642329427858560741299796603676050890281479109009664026428627217768378402126539723479656865426505925136185588080949380572791098170665903801892845788480583120838167914383154738208798894201454665417812999798904269454962739560667540378295395216438891157207377595417726082295864484957527913964217497978080299161138973441023266895501491396325491645820180376428117325732467957606891425400621025321847022236728492931244791622241703079131070174019840715328476829883888351442601758752764179389276053082189186128717317614677472664106708371902851752634103970651270498969228108816056693074545721071448663381269923784641878625830530745355020905362425830785566628896368267828698398733745849414293215622500670592188718443892143361993101960785125359102797342573419352469144823236325667148246791827210928916671528822980245966574013357867875608166129752647584897831362486530872482175893960225248127646297730951265497813977669836253123168273781402175879034253732503377001038147440238770859005833129803748070092419169709335786726830214373277470395094870561685725142521170891891265163554852679161902012332902303044740220482681541386360308286433607405190811438969801143173326278422815094549617336723500581001985130536867998374921951786830833593077496050629991796060442153709785189698558407930744518208540383886518279060770800303255171867181700271159836338267908190324478032271774653182317746328453027970824710849345306648259545112859085745117128403533295140445121545063642308285945585685288143922330355988913264658136320773317385463835654567558086027014881754459550395315631437364946151910067213606131840481471029941962384416337686282557491654993846923100931343993740733368428074682113064299960241413247106747747585041943198740869287801558760105979841069206372585508434646413973604238786493686138403166729724433679962702612225110717552609122584725514146572722535418394921550937428901882821737079219391287385480191783458793998853302997870759758391061487870008688005343683910658036371951469145868402350617890939082236969716805028991288001851593010229931365880581493475426712587678918414412457735435059332533648949275733467903025216634168775455842417905144955115069654245181588211937464675290622931488334538820859701797071162674265942755237358062393392875942175136204912146971979413177612752939153174461426583461685303121993562517904607082745077721266590295916482024473928797138116463750267065997511368055839902900311982929211338880300795125132988175346659908617261378900225551518716195627362119144855125568267492907858129091047182644694798815131887187964810357356039612204816105149976982399636525180690585746883068591963933566175358093330176805117101268749062947238482170740714523104392914487315344531227431254740541456829198347389193886783633634962950383498973748050865087059249116823737820533783799247350562559992791043186307625473005435509051253323379603661022932231132110387301969806623001024597089473738421164686083586242346730394265234667124779393452749951119476982850213975996229981033203165526589799668792555127390972582304257348160334128308504476408264431054017503472318570430200385722560421556020619707183127526326273920677645669760549683432216719723538230758127200336352085393942489193736666187535758684750687570648061452103956654122232222246774235003803636359908443695540528144201789011420628899135496403603062758923686684378711918889139567766378001793042957357196528377273213175544358259347599767563164517655409154618254374247517901966625684475329225512810121268750367249618348953074815637793019188113761859242575375483335108305495840109686530388845323758861345748278307678206173284687160481877058072401643351263805432849088816187460421280663700115726782457159785966371034117142540589181669054057378827516511795704451986157406198938538758030827157091361928708712621117515318551388374957939457542160165228181624390777203278175553074621458623353728298362610536011912557332898769643913651511361807908752046194748389046964224762603536446266352598270437095253951541229867184237448348741530208483350166083674329759829835042476714355224496050203158189222254291690729675335739041454618864037407411319770156412004980172197287424211173626997296831372247273294316146733269888155513948248540781063731856116770180552230792982959856132479206385894993589189357164033589443185245622505432543576958723591156040063037690587312144880743303760782220648056348523673878953771675846874779887895685606153267687872993543072185202670712241653605978467587460841378759885596947308218576094518552730342878196691601765928307007556890173247429208906375316551656337340980054964506174328999244583789645098643056746618910672892231486030247369729378605185275095173087180145146781586160800130102441735869472029084274220236691601270197912681878616066543849337897734876679217315828620446379000968438545535496039057297380721729352716499963772964754378790843224726553913796644028449017312431194003811480754205962785398540385070172838827685467679993300581328029186745557307725906216319401959653625955006703479550209551090541653147961742139640874113401372023893307537042985981733268875574550364584001110234653567376391402494008463947809671813558454042768008085465525123773209394493007744050389858248089215698283571127402935070978671499561646089175834215449677559328956423973972010735596267101878276578317762006987582217413551051387649549438581690646048199669836083926151000207361694163170882477038838006457739584947977174170981278768600223051334618213039493225056537664875536907628922006129806864932470996264740051232339921480643098200274245094355999165803363268661898849959708030432047020466299362285543113105999342814055769352991140618302630097907955434473528533064985165431246066833226885980954539075878566649721690150717675267148791781238437754219993212919354214095517588615048477470612944290011524419571012090864076234802742063051145397948113453544041664550363576100161745506582825471718402885249297546403014359156941941729383479811577773874350771041453618397504357393493909417592560543595397040257415958092137939610258998396471190857464031265378508388462711559323733519004296041204344414366271053662287370951961746903381529235526899404893301674971937141565907887614527114470985584327404300105547222255148682822776425687983727602074434364834123852112034593966645935288021399660803889007933685322392846503132132598826278568971426988506306278787906110839511406483180380134919186800665429464395482075295706025914357863781914444812037477079794092323176386078258350773019497299903827528361414186191352175362479911765498126903775045634817605096683705682732975843367851361902277651119691810771887970290542089133771151580258264660812349399684773947104315385218508784121595093480460846668897321218753610052559769834868653759833796913082294474690390998707893192767461635523126852028049048700379722079846439435073369042834027041387983466992937399088634663975579102402416182941168681697245717072573537596080334360354707168058741998447302884871040934870520844025366216810281474126578800272654557574828236473486779094788072611384332330587412102657300921885652553765165411908500717596068221779865600465036889333114243910547106523681387139932706838691923476896566178812980496066810547923411016204676406220391941279456994572794012870451018681245599413656562302951484798773835820875735678863540313019011100435363078144815099314324840681768918285652717662524847326655829307028495871020483225971175973555023710381707009464528877310867346341312477218204015986152270947585061050831858999182240208148946461602783573202729918990844686053402455121884115353084595806438379441968876903225773498802247705088028343499434626629801766597452654725747156484772093374303084585812648079612602993416546307558848224969145807758403064112822210968791030567535989533439881475255573876258787204203853501326690874842045341195470460492794351624353716847259005619259669823381589865399759006868230773388216627942649961603382812766548628021049123340684599084440963660057387325355480995041228234780368135003621380363749950997993155009640199921439871468423692827530152304632837350245872132354128772701877150669973503251002009575755853953935122240361686823581877398474737225610144811652350803901907861252079289374767346711621953516222803719429659834463540367546830674038755619645830458548360642797399630136647738320126480047297633282267960544374386695822828050289411292844368197183968859111325210279074410787970116699607098456633018930597874203914697655244731868491531053716284182449857287929126682869358595127762937414425878343923911409714331312910630383690469661044931241362217665725097927892137582279168549461045106870170017996724742185912538140367259560195222490240192088420912119011711859127732440450122792235804215075701159754144965373445554844809685381935883679423008704962461604588997442854748653097041275361250893624716135902840926859597910650477794407186492506365384423571645569843594934731582865266406505318137797523988997024558021465929800926235618079873375118440295087592804666975449668413836150412607963105907813051546932792541955122836890081239889707462410442321400521136191652721386539355509538823837900580627857241549363058158570928125595992018736532731864173844656281863615655856754814326017521127739568630466983692596872391177577975016599109688291297998938692902010031345266301234822991858331438883258896271706949198515996137484723159588618358306648852989323155591839424770773593546492995956123804543225027065712709658625077765681671562394232931030987460238510710620995451225369147521723883658969704100247336902909353565387621109385278283971972074362938499375857623367192675557585165198434152669174697350663765451341485549879099360396686587641731844985966150269174104002100757324298253517003378968782012445556728490463009295701226278435208481879726446317208299826171784351498991011355203909376996619501949164729607793562918463371059110370415898358110683039118160412509118616069332963122641346084264510005246312630613171520992424752997052651351313587823913457322446144608018376871404155832371242555088615266336744303455337459414559029121606061258097024157394774628958756948936390008983613386452886744099401227978243777770642294376966488082923768986650996559653864385510170850148098260659839925730264260022796149409722087889104181943631005989736419829539988048007430554650062376284457908489846280155475393477308963000182590426969197658494755674741177540331237860693862794951341246321687854196874651128734487815741453363487717322833561290544568979219953493872537193938709207044543958521417749931274850288618047161583040473120975293732851495152643137314031340199486942301936992192189773524127093299750510554631245502558983907658641664155627504785842752727661174316571045679882229327075693002450185699177376945226354197604842283625518600090198607798388648640181335601038582378231623289223708035238368940836686929455975922676335036381465082096938342699792848859935426660944054303220317614343674388118703025496231525648538062319267344590702366525049659753598359202367824425950872185604120004319230318066636517269538607810920263958594719867792326564638868910087247161846591070860625186815034341518719910860177000604608519772709586869684055287179902984663454645147285296141955394290302314592701713653141834595695372608724117473523603386612402823545759461642642403079350772797863597076348861250128353892197800554834312706194862037721338622293531857842580047190308879921461654889372381335631960284445136050948960662605888260057351255234545800432233557643073325379606287549894240613029441260782051253539976991473989874401416676013812276285648230960962807735047176186618448088371927359300769545030853166415747243740908030992429561290885427651743361522226904998278275736412663750391460904798999730221094999620248755977803520809325218754175768143614337416218893697910670814808294478277409505367130820620376356155966062463069449833568971832602818481158613126877127856436058589519289943476627669377141631425641537202189024634053959199863161388987726205543547306385314882124201384695757410646263178708644235792820827634467953013713953852194963135313254035004044433912207953749823479393633984187994168727077257714397439185444614608987873384342730441090702591047741700375308676979590154839427121477791325852248263253178580090010263351265182243338098535700220488945413152737797315377266985464193839065095371652814260994812774122124029987983936056227539636227153636623043413669024940442320452495417747123291743328535883243278580935780555320702744568704204710944397724351468050348291863802241437033815041310002597656147724925412544831334828487222037206648723015697735296185036646964635381594830907867684772253901336512917862466859986293537688460820215157265462159579238854511703194657716684488402439907747921726939876930936762147176501295147064274182316616755154495427371555863413949429251986579892648069446720158273770444480821063180849359246285259347422858722509396527070575549799855723480453727288640208140631056031964374292765416875555655305529688174676242810883832799244448056913411018722894216951016868117155910393326393986289869506948232971675824074211419275371516959249544939855777815429204308382483695133338622146823690891994663598176949536344104671638081079686588784619934450306849846602718024971175285400146749975919895724817206891317251089047495653743442300223432101840632539299240206930910476373446509849527834573419055291113162115077930084719797717162508976866297499870698036302727481086908951679910086462961104920212121588799583643264050176517906714630099441736979587897210308608114800433874751199525395642613368431561790596687553917439586165777538752875529884356740587494929822911415826249601593954095336709447208950610546987003357419780721098374440812403062042169887563170179174660858498053062723260990970326625148103656263483002705854891634987533401900721534800421193874029634067401702977373571386806723008311829923864301484542276009347577560717132182777826438482115400559174074426321696603192942566270989204760761664502485131313750318482055750650935483938946110077547573029070243554163867238783359450339432505834584428858908760229647444235446578184713393346811549681347418799442200188356129484338209842671705776644836910195499678970148055614749363653121016311241658246919542124322610686646126239956256600881793080285823406013014889969169311574336575941484922626851641012953041867686015591538264053201956511795497335784075622940517418902913419346929381165716313211394445199700846477953823420793662919784057920001014521332733669153552723759748286626819626799790268266814413933000410060892731874315262340434214437158345376578577597090625692289913255337470090025057679687786271721219336238750222847505198200287995106571459955278372167876263407803224695627778873362562939276503264100046832205814016920009544254864015372872770346478468322560878946118796141263397623286631816001422290469702288038437178001745243370240581815283074782476327464172407066722394705116513483946741184353423392436555432538292863083194386251039348487924260763205985977166999902995534717788692831238626868958250835539423548274874645854158743715803050863822997422645035742458418144256695984661862286627404010281660931576536089012138816363460852787030169300765111689188220627552459343816212845616848664501671334563112265316475041503101226084586986172009544342652678468603224988716948423091974426082825395381085229753627735044125544330749758581586280655700268754320990860663104827315695122674314496344397587698780854395540041556160475814085243827598028337831640835385037172082508186460074009114300393631578989087788428597745923398323725433007445397454960291294039462464251932965493104325608923832781316913801055507147212473538871927058335410483072847820378765700142407994135459210689773378543363762276380628707268333228439808928698816910562077375215939829590827040883315701160665740366060865715362864665334301738310260581055577809214576201027608005051659200460489556370346984795002543818959469109458176359520524864970926837550189885711263754457730953101172676754412613734052481954535338049024141282008484608972324331838962572072236855656602583423215710167082040110590371981867889303019296285107507483623981756226035135081631572828157353080678940653921781571803403684032782192898253302501673262902287230180299926331968578326175103390681732921922613495552696467626394477794868656960744664781564280597556352434036387907410788685939833179553190589846128378061523221340594598211308711401830056706481807898684270068992962507013689788951442139459257816902365065211785956114764965701682148215790859290815654294738604740914388715348011150170165220596628311062864902216440284368329766416031377419431225224580871605506088572388478358658117557693958184506862902086726845150144025053094707544568016738724881576029771943975015495998741067543414675253075923140883098362830945684784606187872724035064301449246122360475658907315480663833639412791470450802134008111490196733756650853497031654382723036185474273424945426552713387527444091492910958599392596120640272959812044391758394212647332408017600810195353989284728203773583266877970284703171323937988600074158296283912649628009507249009579043674018085405020602943271051526648474768719547558104917266826121009071545753998690864280565796679135733591702455779448312110892000905939915516559400914944556576007279543819305807510912433941477486268832889506506935070396111525076922537999502820564849451265934695678090529297032805877559739691809665064036586436898245438340805744629893428572148915517898826272686656586805068699487275870920159712921488135869246829601794603952456752910706891761384059835928989814644649211910764287730683739327478640188566692497681309657294505174911159629242488742132475769341347326974986956625372231831740655673430870014654788523932919198380815770084896056654680530893073223650917408450106437395569295079384686729361228507298379040428833772457805658029631891244148428079821889007113173195841363702534849251426720802874034763642268501462521110374568945591003713727492838797954284147484167215169273064420321184153777868389904641150771967849455732543521608613779596520293368418079593002681993647573448380099261259758234522190170476392651247270353901907802745835112153736681728985542915991462758936898801558703819040490616772997747843692151768355982782870866865130961208034808079003632997953896300016735795191779346871463128022975005958283500362833454929112890374823729961399172471167796644625861034576344708177493297593903470559862668661457765713830587992964210392755977134749265233347941686410150972948199358559644123085266438064328874926490144738897029315028322975734877986640084024397784090530152695633800914578157735297781971900320971998003464078931548492466445555172055403071747178240416377564660507550050338582215631990673362226808740939337867485380172246135224395354852893383551292601959565472796484568851164596955940392565818782684370205011792638799129922144612672964789076998319273141878030956582466248464827383474982848674495687583599628739407227071322883934594232958168112460100736483593795935773303400659864755480252867551858116890902834606421315142487095893090738841867565677857582749554434765723670972209781270195962949029341844189836193724080922932902765376664294007947959376160475231274677645527728434937605372698838776483884276085564181464700182044595250949948774393868343190378354198523747855665430748705434799894143562950759171453297033687742336403658144550599199494095666586549284094167591918846814300468552840001473041851752566792431541835761246154250516139511180223460117190948929592256102088389607519897350353612381014441483786734964517876871135145836049944282460879171334188754286108755806830721064761348213383797860098288712009008008635842587923395453480081322978009863834591714444362282853192042961510953188806079115553381226821784473358799606881935529293188580210418497791286032288992347235768966161358730345297369964711975969715712726813832467941103632617678473677986620658736836913315282100073279847118239273689575976693295794412447560653719910495032347607822497379977512456804897242234085929492620312966806832986330344825730516095986738603212590972720194583892630175603159425482170718490193271412561069410545882883617090521494704797594374232226778375205911755951646524360319993757642296544978474356001655176916520424385601055950852950871163423394607754798710445687514015664788578428131041028788415804266664819428415536572855085293616120250737312949580609976049352206731532373141153850086441939109471435031745473170869798955697244287074304994988873535781242835218615866624881148827669929725181518249437111259454843408944160228452756928563536343049274148286721401765843544260801259733570709956283193449748282031232161855106048130841101570207903591592557605958390678418550822634164391114343196386310448615558513618025496332797188883641105648755125518169582880863403432658275798403759545201224957138174034330659892897772144584368888007320834966671931061297790500063575119215364195709715136642776782578289605610544651307452558546375607133731605190925428728555365927469659382593863531448171585254751687240979716150015934511847904850049735597314869055416893205551766599587519513980434451914577507903592174376184418338920924538594041018564175362572892438173510023699315500116666829032620581041645377365424386976969326313518321597746638545738631716093128520415916433872456556563761333527380615646782205487469816469567702698171085388841123019932656814335539515039850341819892838876137704237152818915856258350293364193857845748722476164829828502746123203228258022094261006735269977781537583952663947950687302012385842249692075926284476221424040113356780946017605608712142866830051306459024734931235549539969662881815541353730333493596357373087979640199265524350436740919916828506507965162464292230556026494070504585671312149385224406361103807961787966680321265690637830676911659553446200501914272621578445637098199679661114592366123612537222876408347345827596899771595639588779984452962112441851378838711765153780002733289685408218453383325702658223110501477564624901605762016256182580645156599475424396590785848347159697753685894702804338219823622166596510161622363463582206400936665896625659137649348003035112804819819315959052933737827087645019863355308793534712756978156464473036327015376888945995942238429908423605853029472012137256720266190707081311255795215985717036351502754519282046220117196405591028133061567227122819327982039605776872325115747470538681122014629803294575535759836090346286870446584245886252467923530160192284682841740673589476078996437906381451697595110462221072539260447769367835514284685685939304986373220156588160758974237205626181441103923746178715421839776648692445143438395799993732999465792635294957872309797326671198167906339082622415950768533224387105218026021620377656235424089863744303558450005371768349773933862808990337088093259200891809785017597775109903193020548328023052903149106617151434776286244522156946768525175575532180670420022045084743299751501126652630718482546306970698558808075238220237039700932697392618908309054435869200267174072148753014143252586779728198376344782406503158542523251130571937196603190606030193330890283697416229224787548479968394583070573248656260343662369586837420556249023973967424834993776862664806152047807101438596810876718368418020712809906639705279402233915682155120302197995616841664694398726252560307261238735689963567889771611549280759337728715415646409249432751323228489165628606311122361463628648109801467110631088025232688212942914173219913431139938828625150250760550738536234799131514314201467951597610145284717273844695133891992835419230298019463530232490397910088463799195700538826627902041327994508217866725921551237394335655983629239794312836151218999296236679061602148597356378890984188359323120459590503742084195449033697512191269778238122632518158705222189991397974356024710595345415423838590219054021008122787571241042441639187781762309670165746884666760501629688950593758662101404959066677080653523679272949250376936633550389725574718218990599585876162889267659825742965361344563565016240742746271213439480842373026598455209368971959733969432619529204795145627352262542986951384577761228041235703645840193633445695415692689344272506453655367816752213501943235375011735242704119186400692343016839679242205256511443728106791480715959683967378213103657551573355404729172118040147941626918381526096303531624062546637114054434523333227352231840498257263056857615883741591236492469276228170930384529264013180392078107365015148897377488849036442854235662182751598636867911603101780494362902728934885362499025216702795962590908493578841318405154720534886434529150466465753853258438046687996953659514448100131648322858984548940030337700892428201079680344155651835163958988288299538911669444683579533996842085994347479447906159173764440793627330586603340496472282630437181940392339261088926490773979889557060268865752742076046828891923720335938130652641868238589973049794259425336303154931540635010896164847504956680915565463706989311084575124712138192794398263663061437075166715466945494046830489926705621454262772444334080428666579141118731953101017458696514470017799924838738457591847357000621860968715339098003781996493309572663413484916072960873737920717942418572422912418017549213822148853357550935872219287854000106951935158888619063500492549992005763418650975406986097098554035764562398968770472591787775978722718422290567569268302749425547419523701930767357320668287747794128120219510382798213956387522550568202498716758643386734020235657500067285105092383593763850541370023426311909442997263536836480213549597513698634193828685819503650096031791548010624091688412123580454195627274735003410283634546535251442858985456865754658921724635518447008027955343127231670469541787575372843532982787150839913237889974544213742707948623105286807049542319561736160591296695455857313377448269773995060908818470483278441091871189173274958944844812981381255271323735898385255745023703407575382639699533769804333422227785582946767493019991916547150481395278031214336168882737470830236784185773489880611874202060463346593741234668279454996854256348891184571882286213080259620037902364245225487388361589327828758023460727900059112129460997611766674154494759012539474013591560235610584935809909104140439089086454949177592470155848388408253078270969729528750886925316551323184844475226872811131626625245753903787367599873947179777539137390174673400486263697776743550304103549447556159469784992068147727982420063200319010726270780037150438614992895169157134835180664687586888867405715069835204471313661255590248146040482578999034988547386724858022671356679211272805833673260701661298405710251729931202899403833052328615980580912997898962355551119792429545667519702189043842544549332089168823130662013847614406181529765973971811796920161714001567186380795376808854362375935551132459457324421444099655307810086355353616249159975099719385517167287576564623191709667765275811985485510370388480249643127112474746118050096733206317929292971742825505374701937176389213246627772634742053167032854740094413761437274560962892843559822879202960722786104728953588990353952686594859626670505869488644049689097248365305236387342309680516418901262746495268830038310285825895426691491215036177493380981593765672422999667761917753517153112917710834651931621542762942864120106804674678136281114142489446113820478180096767059610883163483227687637128638805514540648260261979902300263423517557158932856313883141320312973007218601834486188960010675678105393131129050948847874760000080794805050108958428923333133942317439506737094250137873145757319205164362873240793502689764894628519460185627649828232452346994708647589750463881582322593539902850573695386312917742255066870155068946337251724274560613984761505222566082891045907830850202678393172580682524858052872371521066843169302552160913066903678521728372703670854102648719209199638988996701149095960558939503667912546671129964058833663100973246275070581434811269957475111644950157521456985281363676342676546499520565377401424121184134114822131915394520829973001705172493572072554699764081376875364858130245346252921424749854110145378535868382888741881337603149189311687433844640496124347053238277338104562755330410536312472753376316279138975130579753524719041024753001803306967268875641171111839124788497833000413729777669236233558290989488230454966504453588184358156211375453650424550516998194185905046210231474935159512070084286458723427978686460916292401279878583034556916364390082909747492217594735267012596963595927702460413302670043365274790046803512336948134954554439672467873079336989865794735894993146785895229000074993215385262616603703780243854546689393663929155421537858631628690181591791679435836819389062420488129739843495908263160540751328739164622281175712992182786396075213558777996017494742366564885360476916317907349087105044144876204988394626144692011146705531319046949558544907690568818267317675300232222038921862973890225542253266421220874790757715537608946817966744772269919063892335780719298531866047688608743281179157378898569367721919407095829066605462860494999074107163979805987483305271794511325725980205599780074846406405014766927781942325223200261498812929866341795311469068422656682920066647523771927065060766142034443955088389665890749285099010545620500689719697816236165938380385253559178689272877892528314893033344591888993505853250766129208317620226283201775637672604705424761880700752805639710041830722086709141028598090609573025123090058763424717627373223160306066004425716012541439304462787155111760133590777320977684774500862105318741582292973997651833168277697612644419593922751566350431014679752801308145322013894286635322548644756992630543214620125200238410839238198131431105144921149870503365798670442303935795918035173342036603567872681308959655444399114314604962497388955675372699805309278348765469617918933443896074229553609636735396662475843647937221141985805724470562974977007145622010973022611303155891175616222313312634378453052362705784654118565183221457004345643920869843739614603236288872107372456437606191156411829480129884928472289622675676973586761872985904188685582758221104447097917834198926867140627005543158671471830332511194166431303276044278967369763201151524196143059391410473088268254119135669025551377760861199553863946254850744622458110811950786888557323534538691961404358195864841176230984002137821511646926568462620514932791367931896661958192560514354613528673792865389805962802033402051795907759939611613695613535007055336048992336177811892061085826361857717958450539772920495091228703912803448791198110536629965065618750695399442649096954910737097231155454607932210802739643031288053653622709772474974996342980774389819687058923648315151173676709229818841236167301635963219915030890889281840224644214706727523467880422993112500879337931487818654439869605411562706535654619512117548234750740004145902714492499224232169273681026786329262121984675683470605947240220992780888230915262880850205590247413513526883865054621849059847830007475104289458093190490894585854071157652591118383091933720936694478013395558358407450343217241811547509418329601922033523701999499732014020374681785299080713613267700476539251126844894416536253477612395112173437624756283466027040315193882086932337209539722922584944441113284284815164165224591292975078168647993875754053578721899105477096091576653772311811292938323600027477579874559105777923076190568250552689176455353588526121789030631259652270023672358850178494126872388349143776022116854559314872001986223616680597139822281226400534902291481849067286689768488069945000678323759290157381915210389849962670920715208041768966432770207741277511427150863981434827497545150995231568433316128267583155161644793531240132872415876792282788571264579329561716756356704964278080336059382970964033771446073234477803196882888519694397193076529991751683199161157388092438745587964215518375547030507299905250563264768754237985496301788426074820182259486079949576321059926921710095469545437494345358140981681584511724919961642010580732201719471771916205632497952588972124055942689925167684191569746408087082206180076025273465739517873414974783969326202584517658468614876783626289537376980691033210069235141769214931253871500825112310908324472542942380742888492478101100764521296596925403988254519864845011596105925375170390560210553604296665938986950571653612903988846891012204125542139078571248148939920391165019920587338406549015422018362038847553127995194799912987083946147473982811990154750797947027533934971292419565952876817309356911725819604569931223459138162281743541918530871038084035751659908322589343640738355375518536736182077958056335075211808617052189147399788286245976859885580175268090439957853227892999677203334493959178951815622465213182557920062287667982789360188938309221318106561660950242313302411760463463781174847474592017927585962617001704335965140069150913385638968412512084365347051380839043095460755081248958162329593848921535364463224706655697105043421579561867712763157873606228068296915627637638858965529670719800072883101003151245796759091735753379738682634779024134100875270100383719899897421597237663307586513565678264952471119964168344530257466864437572216692423657985038818110704934268720624016558374002567046226340060337902290545542131916901816905426964903722193297600845934528707700977254966373774792116487553213546355957641481823156127194707716344209052513340450249743958357319149481231463429792705449799114397109751106682359968053194744208095730711304847729447980280207641424738595724517018238235053329945165737963294947390406087395745713977722352331515447413121144649869720566934803015793959386542508466364136096726380927751287367380394643975159569428468941051273755184730597132234730100814954674589652720116747411032660139639110046562431776115514033783289482987553131801004592052729481654293467234124547544571458563430235288789618195654621842191718912399742923628084186659114699879812737346188522118856077661495965595874850690327518205538971465650013734196879354879433060544558140440799819526937643058518501783846142178010455396966225556792024919592207504932190241124499337252823010211450906167451955545019772336040715256949868055009196820762667743293440702452392245407833454222443721321615206115185449527466830151202979248972568410263480530626214763665074834639461287564859539543808160230571071280497169472792694047250241309641678699921425863053975329139765369250217879165888825459925161584931991286177098270112209741699755941561206586377907808127684609716400315210583558674840876745566515242470124729859955827220687966272673823720206835095854434363416325399050289055526836819569813427310163071465004259197237863924419804518799244364163518771823077922984566945119369610797806328117084299357544550794408049385489411490822063597937079932192954808974294668131359865305521342933005784308419409581924081133519198525678203341764736565952904061723783008888060500464916697278607257545655523982953056510258665556310254363782003501639055750613577799284159778186085203891172413335256810756182875361692215382219106758859564845608133391401583523845442245040185746329524809260533753238119917436092084786541135972717991926465154379215099540961978190642048952659612255293731463283096971818127230453050468790720774507776745718900653743400750477948098645757418231895248735151338678789508745031291311053613440715731412145326817395174370078036907447896315816522824835194065997890067544249825515259077953215387283137064823703002814869335771638803839643478899318881334636932769894730887709698338538492893757227138294405754346264303195825059452840265356005562661702080358264955243126702526297862174050709310514887924921274860812920502773990128981613778979374716000820292220286938525303239517094918697398248944167728606689795624431276199173093083322688965904897721120412116787824635761691382101555299805948983495700991367902649083376159246110566619375093567504549525349145831136043211150140954108722554913182408248611148173162517359851572155728039692120708106951257712131836897733442138436483918288080935747445926140654928370138962481891015383158439690849210388403885351739773571859638316424915173408724976603853783596012032176970183836021949107609110010351881985173977977810348952218043910223334974337432385417648344425767851017267700103030559728199531637337860239301283070487896071112998629851123483026962327527746918962899654921245264305093546851946781227856459125080095732220935023414225074140505453144770659710520816676415689842377745283506768922528313090962091199912860027058246871782359721801791407437986723222567514945424250571778881443033114899154931111881720036176819360274108404017926174489754249106236531324875444174984552305966040751846263645187111246897522097725456578061696136678170110714103047434800933330666466616257285365923173043719590523643460963660920336844587869462791729063544409224148830232022031118524230910841180755162961457240037377094542003387157043850474154661869105195817685780692801956573898290826267417872698300332840255635749846300318457465972683083328241063015727350874193581339388313277036699251746976808176273423818291877710475505062110781618956224291509908593671699878151058311172465041892726272119503802297713241591671110054592838712871660743764625961084167147945397676442667717392892084757166817588815019358546776284564177480283107508429744235290266350699194170407229082708487578544669547026314174671545249454810725613146388885981708805291834947819926021738433133780584060418096736184962525820892566799211496466563192859383218658403388981086811869093154592776915602889256613162943760712252321136154764094133678490423006493295288683066927216534008880749400442910793736206949621590535823749087501668891497345514606529636317877810325129057180857125761815829145778529838301818759590044300964087194902319580075493962451665949389322646702747413968345651561452051980500261389755904516689948826555865196714925210544848446431566760487558840588182450519221988272274820055667487538016194110806852751217931899922737204904336364215772421117175765289329905044584214388646035616075792366586072865153776454517370511106850461678855874979748495674360807184568247440630380614922287208733390538590247325531314385192559629149279416195865936405232291292624295992945549007350096288121808167855594522319926451681816164234504876909398522003964753261787680780346435296548516886165216099454408802600514013517773022307984203180418180816634302032423442126850833393747855072319556289783490852682848178769514185391365411537856311470537381621076888501270777159410329112646814597962294906420494539048510394066637608336462924662293224740159143763925932093344495666063588703449771314027219524494335042951393471338303972420118566091509474416636965883743454463892630548620163944979656948658228466493649444469699156601821347513153243043741950906955169706959434542744313566054650329792744081705489119732138267742032220518431605748850538643589678076934373045840628665529556801971878022228671242946028089372535367071182432666029454300162499078934859123072868347189590837478141130936886673537279690645502491771875513966428360246108542674399872859429137841927350648896253778957356847209630256952802822707312300345146987929065379097270439760393356417730833652943098078014543637559978757532612950896037816501916737635667813453721645777713051185543816910845577492140365847647101733310176737473235522670280869465412748666240751604021980097438637544983952074966888905951942076987026198066093307205351919608836399414564227561441267350440565120765430409744848576576880065928395583738151858789180244853291198906955164479436562513405577214235488370864244093286764301269358124769829417050556229004622246618586870680920128600164780871299779164050439399322315826695094711548931543106686999393545404672662420965492571057548948795437551870125694048949913529144439473237201161257344517424148213366224541586862285815924589105651335122031530246919054720177886795105104192076079404634113263235992096770618772145323915583157162768118317575084997545647120978017477310525042127937930825457202601865782642678054426022159602608148456731274008907208041684266898200819199657972585213958895522212620442229425273097240487845440787197448934125909657825557463889499097164025666171851361034706148355785880968004957260778933603076966413851021940774994013765686569408937865601904641412574096319525564266693163320199974081334850828393442263173124222191790678075338395517650720498407073124431597309839008401978734760655448824206250949229960405801093143804309880824679637878120563454156382910238232704197005427623314486865109928372629706780171122838179534171350696441933476693934723568923907521594057802905405559634892104448652752977081960470005870517780293683265293431299395356644255395171902905333619000754524072833150636613540147873559602625223538169857649404316893109317831450156886319948911589172952889283624013557460696703883667175923658607489401004665264621414244591355901465283436903407391866749728645726626312680453667127616629456916394083281290691118020096020046511849651302564218034648416257319241122512673752107930601776883943306512055004327074576527406331493493928039056481155979754948879246284789689519216363468432595572846849845667246109426936518533177402236290905135322739461138157832323752569078379979435177783895994691994485215141483807064826103291846442979263810811818156246492642540714228345323754145187495547342409467970974316050181003311573182231742713361379206460099430490924625209715963524130227030795695233797419184905538377693746926764199348263921412028077936076911212833106185512694088211003235635494662616855342606057343725089990344009820014977307778542718165282352270281037769604411521444030997853909508573540610249242171636478662534153407457025022216748612421334151087378072992539089026437693655718963934888766384436286343781422929448846219467392166349024268581666636186111167800017831590715117238154251918512603899132265240698451494535276675351520697157202985095367926070816346678146832210356565699059570943976990585460033333342024276570270018859590530256419086000261964388022594708828866811919414364090125539105116701128877477280682011193718440875854622907166486867368822833184547497951018849529789302963791587621385930807370650263865054493597723143402085490977815618401865576766137946918797476880355340425807903133766764673735084620244422651497901795635482458604222550064178796151006763623044134861716369082176141631714098805403202376933827805179327837132328903447490934176895789952883899813401035999621762857797430365579487948260979859650543749100152513990857126335446807821041640253795317975068668471715754073089847822362973212788301691382393342519027753252151136360362826654047200808636251988702697468853402675816969608197934737334705125790927777453089723461915137028879552472299703816434334553087413032313365313456688822535417819993571679435727544751430754328635655239664534240116446935315492425426290303583871659855959243467075747047729366795309782100052454060807066880113314518490404838510807850071446704894259732019887932627829629058787484321725329986221182353297424714093764817040096449880227793000352137849744745816403000461818693939757527168674799636763824218546457949106083574599257364174735920897816241257529068620107174521761239897143834471495176424301649923585894242430414415408843678260963578924734813469872243453986796219108805948636019660928734997715660635490082358636203311413756369141780002615512682296049063222363851267749521402110930261858410508508950170495447994950068009091269842302584060089366416158732517078458166280686607234272590360494311991708759018602643560869396525905173542444232531802104204954828926174187831189854170086297155603785762091586441805032860113149105222649970857231313797135554005386125872473684365214606600158896188985677927653715779582173076333901066497399698351704485732260906618020054497067077987389929016209909506606167727569761089956302741610117256625601133354194911472161850921806934870072159934626128929781117573774109137645063314443829027484929718856003767960280658154468663471774248714931907077868808363848979193898043035657258782106521420574521095973871581646983594786446480358172389887876171671333316339233204394507565408690711587725031275710584572062191667970614596425592283353619586634237475930401786269703597424152146624249237135859966066729037733499358880048729892482304002323219177021353299881509655859752393332102990416701914978046726016627409887105537435224713385677427927287622728323124697468085174922338289748196989007591202380918860297901265474586826959598388916924481508805326284521372233740028678472965083835017152568912921507923692038314873317813348180587292775510765786210366945351965154745313567809078334011442988184657131975073732857773287254065041165752546577447619240472354964896442355783793190902100946543960829830328713461822265859340560803053266411979710634896427855711062441070919911626700084462041533703283317004913769282751918347224471452672002597995088360070830887264316647840169318378690438509723660513874500280456898086494085184383309164434704036729583691701248967818537988328957346879224407891572289515877365759700498616548178950968760556935291527163145556775768059157087164650312992024243919019274083097527440419225255095333917811701987076716697553978005311713133700162186776446403798883280773768505300943348345972707405283927525435065938767500830018057544578754465640059139836089259169990711608534209723418351938512899507223583335550497070719701331840632664872348033551249907712831189824795514298014950929205042990929707225451270310988795184198370104898558947115886447853299899591263683373757187083729779869998851872013691909229548976674332882984618595347124427622215231300256731009573576777945466121303167799846751920133104553691144056678337483639298862389701985940107348101331811951258836322493305670882216483533628805269550327786289929740342989321133823003587969095910525584218985048115010763418104536222704543017643166992513953220484791749228930897922790648280695508067144215452166645098316265911411193348568599842993536391066480798584190113485460127081856120041086919565099678799297564922577637937647100311884580626774962933614676534522916356179969592990805807604671100822731976434217676633475043212039717069146033892157849282497985283955552444359308464496555785825939113967366301885955425937451431791099984552805711076705104351624737636926887752785913930324897996224420967334358833179425710232726377680040196245572152756253212026732511211383121013603955719116617818146289646069885573032238365359112342976944200413232275746579940617924925748675997075520218743822932662964470214162536317974789488052122056844791323021598773618165426860321881676007332377409551979359432603734115075269647088484094996270626576418358763423045459414763806198126018633674308957466053580369530894469128056459030851310821456820019085024894918072369220014928629432386094428319115084667488705381895145573028357160627994325643086929358128945823448248320453018534737927907193001873043693041407397806634536479899778729113496338452931537732645274977624832782968719643673095663825081050691320471065000489977460637550433736441928779735665569916380382188404761819905741364180952006240897545011250745347371713811921956951249232828375760840455366193620616513518949158644029745248836564718225756351313669812844043449160663376436966467742458680279854669781955184539213898357380892857010838027301239183895332836722178720878347790823316917653198918700715490357839787942948452643484678483173832562491489269460929572045662086541247101725038400054180382368181265484411594034904315864855539312133626582685420895857576187852915758981489413315196607494185041425541849445112634546095067265724482688899849227313584268109875277966683180872488090415719161120273531471368631999657092931437437078812049964722998027057672103882957137034505559822913054363778323022571088566458834071370548963965929137545262878233933696842506126614252741449022812710605334845583039169067747541036142825717268724415643932555744657160454504173328516642845037491659726179833763154350201232097063194209506021456856282863445616262688923904146126284324581924213978680333661452619121186183429405307103204752946746688856353131379122289932594147732634966120342170613863080087090240877095879267184025068943853057452905613545809325564598489096725971932848138483342254976249108720484866947173347472799013992603296732942130058861401098271716220473997800292939805877342866194926886301947485525272065391060767472571462206122427366406724006761196380603613844340380735248478298776652428310635707115692445319745962675399301961474713255651826370256635289140510446876183376402910849579859223383604907911813672107365460263545715430592524432764253941444423091800245700034593461237675713305320183069302597565482421557939850534042339235340072695546514001574981023439332635119418232651782830984562893346558955997410465958573790524043133675277868120525589022381807850292643380346291868443700543229322920663470606695251981992156533469387397760173486878770506094721922762803730137017984130564912977384924841755936572601341380930232251464587428716772800515345293655830426621714329966500624003942291448802443696158548625816690835237557318973197016472078734145618625953013282589963749897648566479821414761901934437797629783228075717549727520304035942699144007589366742736161882545806726232492357070568542899304929531157310787819390923997997901984247116148541757141756277339196397917888219486070843539704776820704813902366573831946625937518315904097671462370790171044488766612021887828870257814624785842875541874280895512769871914715874122824402741334538913067797133381801281259373427974088987365541346884591675331418245594223646165598339383245805978308392001640565011784069974691075572539391501144953121285082273783740500085660094532263981658763056725038600969583999700945372511344759787847121523116207533051707249094701945089658023919213194361417560180779007477332749842660975375807533755205304634465765253941049624974186070688177051848345918178473648101021367898630643996280020601186260737890875122807263142777771873531478272793885043046101989235306684211395489483684884063765067481910660709905371663704508257156280007927992255044040202290495941686789876266841058244907413436672838182100225278869861370683926643024129518681706839689253656557044017083741882490344102819135549350000374298575387075747432980691904486178556919181305986828124754474716849779897965091409519485321744435930681887604829643221525772023330474075626063835472415307193150881791806957739831558246857441029483475685357738817016827900768409343392495004355878194279587106195611095239495422082741290218929946885704752994677535565136730781849154126043918565174329050478494769966339302239840582064861034185590310103028913421807016036580103657656267435698121573935706815233279531313841223276635513082012442750716454615136609452879383578685836223834009940835270598983502740848016030027902763839739540783429475606874820784664228206526518750075931433466145607070808444436253326245367517410135835731409150038421890155192249150499327018980206263554032859082189972843350040250806488202752933216912924108066368530026203004323694078272301789446402985560422256723882318152605220193197691866176737526396077038209017361371436459255105177434039702295206775581339413888177121730643167894053084036550157157958150476997108490778740568394147329289362095152656186099298166804007963680039568944712884079995866956797763255926770526693611174743328702118500261624172958822166925681394632103563657168193434237860684555442270101161624806576817149194186724466849719387360946503288527349212131629115929849784055722404927866145052895799212039543593005945672267919608601459027992283318804866248713254715873151055740788758605910283010460537841462081336384920660994554026446540096579900625386132698122599775813656326700355568975109750834848652368804879003109243323799181309904510831067330883492619668312871169029393800309047594505915814582429022714072573328051869564535336461652397137381734657148432573553636459828651309840716676191325789852428091462639717571983504817548159592565861059909632019679272442968634877486885243863152780067068211870760962438017657188149346895114938748267316688976387862275451555787890567681796598528843741177742933119009729119748557746296815433860129345806088460739102593081865633149805658722501229596112770551160157521516939024824210715474307114444120419652594665391211799726436973105127060035435072800338736773764126767889390384919903578775638545680141107482080029180752944189255993974800682733153465287541087131921949769071898493291203676969424914840204858682866564523799231281184457025097836532803849100650703310288244083011628209488353762557420198066034923824812181268630496918508564931566201348999334488844675699210126375196669921066232151195932809080004970067953657550562183010537691988341994329574778133806208727665977590808474612759020553431356758617019891241251180566279765056546941911805178226230833777151916193061926515177356913930011027422712378814398999582083259164935229921944009835165045367768701019249269196377640565009569035610110936174240700467938832382547567609838064533716698191713391119600441231571766210132243353593373596553207705624408237747701388054192049642989429653060840460590967683883710439569294796728824014560635042967214367752405271182973737562994535458055731621330868304016900198361302139669329452127691775734076720209416471441576517753289144492913453272661123417666755611440249922746724004628558564969134420790298688801830710577342933347258487768357275430586863017158101779788602830466874975139640333934690404763151951357225477725960679778620091016479386509339886569297913291141681342024353873258116469333187935019622791740192387892661115094168990803430014313506499545637001109164726316749295873381358021345252579783815544922542488711330668606894075104107537661448031923832479534184080126977463196549349055987445922526836574335092138084177010226338440931969967648694994400987792671225819026259897963202133151300281233627148520336486481102756660189992341240140499282340371182824651141224825605418060182407925999678788781541434820775947114946776241255449385175125605396073275184724933031433359128821213979577636723013340089711064636584902246930505182184495034336621926156788274128697498033236688854052377539981329292133542673994667342306793503758330845882502541294124226915083624990668866995480759974257815069936884144133851961850370683854829291021141320588415301564686636609404419762417379936061309104429291373650239260528693703181777206648625196134225293336271102642470648704672849807770083377104797816812337838716679221813025135002095793899874753901842348450482039199406344631843869722363391464568218226872905910948269500943430511763797294909696504622302063528502991454327170426659544308289915992615834040374312628117549543530700011024898950782422933737893560270297384355739213670232475799314620800726291609431747338833951134427649159932411143319854728563364562734559972181497769155169035253213044044461497227103260535576070994007700162129483639914738731123387556374548908427362847254418611018651580106470929849020104642632923895571557271799786009073952063148908325523285590550797663926783338715057696729952331809584493844602725016765654533534395045249708064401105879756183557288446373647932840076679244799529349737412379675905269201572166192480471503353778403308081722466718424033033747823616321453958275194353889691500892778537313355358717532726310862136934054935804807600446610217269059601996856305755360240423419669840202151326389691729412614235209240343894317160379458926536753272258480083481497278987504493535046673741802128459007560886761440363710266929335346676881395774744679249717753516951872819029171352501889758591048455743369021735303044412155856950064165354162477988880968847633183244067256778006192544272509093252024781951486061238051958529334491218065092840926490186413932573038756469091859351820845538579435618109627924297494927748886127089241856722728525506099155494278433033090585845419033314879670017660539056175305783966963887529259798143300134046098771390817862095810841786451508194068100505504559687257646568991908303255859659691580585939493763111683676087101249342351657111890621534194277405406088285182198363206792537979873854910192917941602480158918323294748295318551229535649098190448534667309738750424682467603457463185260902794380410161235251279433822461634152507825187094051991110345675998400865319221032203907353453505279146369904749302328116618450145003884610990312328494538645458081458952863345441752619921849888427542623787105434873822098669136224458122419374468353612829668213812120132085934774583301196376858358807503522971637705237280762112393525482185588478470378122712354437903506284439026562341738481986832685279804448317588628523291888574003742350684881993369291942660772996490883575510728231450318535099817940360514039349628381662100209856432198776881924057829323543181491782239005281561365531266816220569807663268058319091326075289589386981491273994538131974337969351361605287869959020663875629283745900311736196443213909148276136585212826313029503113820970789053281291441969572436546119843048025949509770356462312908465369177586649593234928609475806663576515923414277986408465341724774101039505963385809127095308035835232437203507300180456336139630626063417995418680033683939722369873882765907272397851052617018087226588324993734680446797362254295854395013165294227577471132634324020806790804062126974255407836713078180873348223568610111572966561599005025378242540791704395538121450588296718806087001124745674220189442999926954653539664026665593894377300726041859978799453664059138431200784870499561771801500012842462093945418606593441181040886840916646976236144466782610559520408962584627019611868199136487181751013467517954415204436714282592770466068231616314178541433365333969951907520199776409597872964863675860150389195598545391889707288802512261951473514967149358155314246483390224195865544715533674834886615675463525228374137522869241847169873054826594742492497184588354218696104489732032462572599058402453419416800238222670624758729444540157572579353662651911139038223422020844407356741372583321566025896239800738124433338114320140682722172855834200330666283088203746418900849436177014386191532838383085750581777466301356043794429651952503112819301092779605825960138205076871265722823260147504427618290448137998921956254458021626135785931459360705034289077791298117829396047736024398185412089605350026737707522420937902724363170725668627835009743404385960297140391071969388569780803311675299229949209436330408856089626918831645009501289528458640259820283915834770332917535150587362815821181478674159091240658104007701892556704951812142410682391895797385026898734966315983904357175992800817891659209953055030232284234851318725128936568722519416754819345032790563036822695753606407237636431934186255755702452936454083818983724257992775464834836685687838135617747310427301213659259509581287848994966909495318420134517883721526650620560136982655509728614894140294507311855770657649322550723165414226993507370845079067600976151731003235419266838886642649994301672145509114889471905879568133948832579765493710468456695638783717712947711220806265865068236061510836805110642459747713223279251150744687888252572781034932331529084756849900834794990559152402668261920566698539737067546378298432480823386888878009302130311211718705003765202818082862911414420226514400495425873653110070828321906249604297309065191177889877711668266204518599511792357969063713664163170669098216171612780296068369985261704199192958237009561823681209437008954036551999476337585640295336750921014076311291702810762915950088587428850774258401811910524651564912098768861941655178775968155928887595447608774409034962638815733824670932590961069211982843565374780161380850006697540435271476267969878281366045570461877199279894143843730680282825531699698065970603281994158207575002796758673422654122992064395815062644388092396470837546573608225006902412237221667820968247843689144987891348977424020476781666134601844339234202902941162742658841008139410904832581717863357208971681937968309285960823230062931096805845264843787377644850588450069867819369329161401996827253901732999230697421874920048740019491619528746956178383920216867379733117367724440612413811803941037910288526364024274616853851156555124582318480602968968316568285083052417563952456289763094117192185407685470853607467424949157802940046096466440658662054626933859931470341788748203508465774065994423862718238983547848688116958701924251989833453406524383208386165319409105328944858512600593982084996078419557297067875037013158001863165489283827749051646115247398961280335276279923122781649481579434716291491248963736342890856744062882886196541860633207478986356809317670526498024914593762580850648028075899275117786497605622334326929639210511959678041821779732265879071421936148471697151076969748018893683094479541635973789544196443856404664048379733848680032566287916518322883390986116958781629903458954062640024239477967501585814781131597613138493141039790302178935038580442519998529191097398944819959482563645333587213317157349331820572412660906417710362018306372389276961722361049664536449811343399875022396270184215964224874131213858644877132846083264813647224357681195099830708867834901800780978396617121698745422602567903738909184275758855818971228396463304802266609644379517080472421058303538651264110229185284493478261415609358857664141308069772482269107753177986140728649017994446312797551408011530613100840182134562586304234044113300548169170061891697378137307678739061338946188509075662579630952865319140234800870916781992086541513576206646282086526701049592485540784346106017115484731523539361200717236672846689764291032680161932146170023307283300798796487860790378458767641788442300351619775944296955791154198970517329489028024010082696790502020200602409318231169809622155041110311026594261410882448434288842358051368101210264539574874959895499813425288071350251281670523695111234709945429521274201966356449587015835301386896751828024701273875519817316127656353482369559238711560158350515542612888361317481402207889439057843449423058802593765773858605228267777706584089940612884226971386603910123247998222462312247741217600053702569289192128366778471480471341020151305164993150807173688409408556473940446604340975341012083874875356035612691047479627843090994727773693401616718331041810401301001910309028259030627317201583658616198390686670941967877629295483044844177863516689548939985269076136788983507952692212945908445013255721096576399499691728763931169877160274871646323107229812819734827916653617660236752787606466805848258838388616689620434715867520939733192184996243031735246797067492080806611181668051292851770913758513626562027438933695079775063036251100311476143267529405291626111482827793396915321698016148052303011583212639367143814756773229291394751914093422670265430920400215140599735098673280543543089101755797232168364314610733590529435397859038995812023227334276428594614254708383301018314051684708336103115862983885610245501837289156400084950000407192095874193206067788926090203651397714492262276924099585001153394647973005669607205691433727906838183221585391652086197754420830996920282304592707213182872872933207164351710589911027758890873271875499186734424236705783500033504472408232558820563750258104323965414173843149863339277222244851983822956108063093371613073821083447959371664460132477122130375320140459322806152984146938600123559100106333504702699155246172401912461767987664644518610552436761101499278630373834416462052756680108189715839787590326414687789861519461423809068253521123130920904215134623811609227131775033940884321797693388488495747606421004970133971549006170091733537660903421144550234242461489283501262666746700953704822486730982033476630593444848038259516528964104306352720222340991812302789514918454424714451289128775149088130405094365801327831727479479864969324099600776052522277597388739277269313943373365584668145688607619598953670439662781768257336083559092120170096688638404848450630030539752974078317191417187407838222734260784361516244579710812372374395996976814224726074322018310799132626598230752950659703350594211229965206089517543686803253342683053803596126418408503119624123454896520637783111636854088768072060009762551242137865615199824411245318490687144510945714233122423419688661604832971934535726117584297545404309222275942912618026526732102390423578946031527028844908447334934189318872045670412731492981029219197664352472715485837696062584420191434045462997296413009328977675723168845200468216275703459704922796469691464336577424293133066311322551631053377161772915867295264272240482028891382968614958413778233127924930307153257544968575825628588774120940213908291139979719155189149090259681268258521600389334873534313204322962595373831195940830537982423030534257749234912887506687691452891575860714210911160035239585701720032787908913582003647538734916835595672370291307238468943494160433321517235176203242276980562681025055888672617872283491908653037433787281171719449625362224606843127845750168723994835502437799006970702436958585173923922729452519890600932220779073813836183108109307574108082815334218206998532108195663946619296260420697751058071030982889411820790763310182324464584919358165936848113741766780133370188072058067713412018550577532081097066809558463314639255569374824990484148400257987697490511359487242870876113774877848512361351522498113647076134086750854981527237234019871791187878594050200749402726425006662907461525196617021995233770089167168573832305568815630446145061473301895157968495489905293573572265373250103745701768279552468130015582795732192772961096718076403725943200339974445989396740090404077209723795539537463521220509346493800878912255645746546924450967966236109382166346569762851341414518935844728349433961356302155224498108209455831029863662519333058980834664387960662902110046754944326252933843175275121971561686322928439224992224963012156103179735731513879543085336759066036413506007919276425788868047576005366224639619214415720905690367087797469116779790732824745479434950121641172104454013994030790826965536392398872957069253827887357948015491499864774282015015149823526068160932021532497343320488265975872399127607290059170096016822312211041647468018331969556151302134534562229594052121976907694040637680988497840491743564841977360047735302060902880757381278240508582823233805207530230428329617109384950038278745195268898031255413956543816868015084918517600916875735784573510406296137679129102821091221604434342231149568321669168673462813325459416764177228440842071239200313005453453486913225851393428630499829870349944755573704503821877175070121308057458835637960777504122650414069497872012483245646681376667648721406703952174957661854690254497111797380436271202254546535000838723553021274679426543038936211563853933876259027490064689779428207073724865660899839945435178907874201046884634406892675603327635747731361245071059358938436895939299538282093176576796123428609615590023147703351259378551278866275059130898910624047040695727742720111678087562724697469289039813697549786581343803958745117862369043296018086154736744975280328957906837195833969269252724020452326935065552245921226421750053097716111017499385709425056792819870960126118960168332049363639022130714121724758409966609164035475812320872425497186007175420946633272102265672925533746894515322049980785521218905931928139439225312474738545773590610543446860540596741852506539696681939264918077671716344774503913495693956322210825906687602138645652381713540388563230968148875159814174308167315212740373905259290417354575616509716994255614736889206584624124922773161221995873299433942728088866969388082723874438897618996485024391846597908454617498466090926889356342668727519720306662141110518908134554820903478351022443581643185226011366130728868607265341910681849622245995251413737822793655578327483419697445061523784530108763940142129826648018304778324185699066809598406589716002299120703114446664025210630696034621638804872484931036126183704388479725692788822591366996894187068925025151153299067284250504550606759932298804122625105012333706632633615527663958245591167504780411483308573403972504682136477244772202593566102888606298462694332895352469024967334021590174311200545537418196265254696210493880006465798154292421036963589314381507108425677065773149827705151285285607544284318579291798163147918052248587890597944806918176119186925506765725241545786664406139419789399702849421686519912673917346123108018231754115493672762436565393431814547696749913265402864846432446919007607725802070838112044057140759542104077599460959643226329342186350731020124121678381135574294566060391766493940157559260589049615032408785743513707486090370797549390937425047842017386452170703933810866166592096767441158845291503205357297231851517447099514753597188793318611001048590405666223603185270106398607899013554035116846488707918246520208207252160502305025878944804604236710754029180151033226796319988142605200591207203199746507464476677392894374220084059248166677497787827461404216927895177789082675320206205478012600750227474160118756106741446145619206012871869516027392766658855779176871429009137109659442865641078555111907372210965511756246746571127537615634011723050817215812541854607902569211578245706232780822462285291384873120846132828928272349446617864752833689116604187081538008268605673689626771484286768623887210075529358838350100761492703716703724041099928017892483391306041208282883704855176370523975002541446192326181627488321681787344520551015426968457784592486272845338957858290330240799775094951119715316197501370712476356770979977329207865686285241641912102276568030438014877576105338271507058942676400690119721691127190766924517663373690918459579844078431224908407405555424337404425113776301933005453646474397899831244258421060094105825598272707856436454070592049167052044454597093770282994698773551400116580932181691109543000293712738388121215985552031484839517795903145364542296668337622366695900453925115748274328156486359330907671707919905269027702611903316584499795433965656798444865587771760547106876407067798516478240049438949437141332908557871563781347529012979585675496728416357485343256563884150515190020633227687703762407029575266778767687253992738528047914836113624592833234119137426157334543359654806805609368607303656011825862106227320519157520797137321428664132408089288063347701036904420306494452660511270676498497560546350307615084662824929115381535298055853814185561445624461332313445538145678214197789765538122540881833977155080314722173271816200132684694847795692010621127496251450400805317965730025782395873777660435177981399595164068207628188318460065381019592725539654901099234664620000861148369520949053198897654053251536730697223204611738738412204914227867811231081154604978966398722966383728735181912572156752894570038759978234948859894420340140815469134194667151696647967613337988332463092325134132540294410439770884514082754892429955087429393806638424650826090684557577959844021591554162999150077478152112422984039552890331623932035942742096515149276029058847894452208460876101999220443316551482792350705061352775815063020230993611150038059154491204614972226647413696159395012243039479237814931698153298255072204688459425711752174168695983222331861874575424503252912804216019402048373100322610341245871800634004295191867827216022621844817862282418333951831317734760417490895328787016344372848211723284719636986400119147421497231670508621712244180173967337986963199575860979702346890569203121467635911533719375266051206245633618704163403270507503868490989352539704615633410701845000726989440109822753041897415699261174831241702616457766823073134804623997708977765783354154381153110844707434987661955187734348105852310628930240030744754265834578752517753530543670471705865001793647218143159541905209047619270830014113882132155537926685599848747982597873255852667774627225649677365629988595485290486947449130791657495295098115634859105518567593946278038341618728452096321088571887495071242482853716759139444532111582396061732737867083711574574427868538933364486265137109226735765010077411620051529535175593187553882048293070851107877087995677653564919292670114521431348966085879577144560696568509220388514765284605699749402980348441849652904717800958893838495775276664981406010403581282945008473400517109240827025929884495789094401468491749469486494603394156658830600636689270259497221511180101121215903952577940769551464210550699220023550015446213199966310547368994115729358832421490188185902231688700128204244561802117951539537818424932210681811653281873288827538319275798559294811737538753216647672294969905471039247248140003986551662185110506110099789531135433746928562220141051714866425113641840460668692420993706863209975485480790955528513851914808709574493864441507592968748838037736049166311701754376436880166883234722725132517110904405858205801878717654422951427504869997063349684989168289173175016659248341269402953432669379024815514204452432567319294240014028492148783053469704113515590419755672551710841000162350032555537002281665773887567977590059203373841679796594954080928273225240885416828615286670212061592322328448428674369100708422336170405765312023116265908192436816098588496643378149913093309186731977776534479907792395427170012251553754861187981460009942228910987139259784470041174494355335200462773543484474176986164892059021056633507639927785471527324138803899847748358333139696464330779312351324341815644327648111990067085272858397411067079935344807721835131715557102417410272256200637284079437847458557014962355377721295575776624088856948164344046990009899858300613201645984866779142220987165702081245765810162342981834952147185698647156552466236931433614648102214877940531319635061552289526332765070634133452216082845769339413605216879805406161303533259531435740783906118849262600616671580488809200749608294046393837006023317083663735885739581798496059944665518790636120649973590571483621318177828518310970281151378740713962757334890048714877323096596346905078309611157825833709891668588407888651913866732606474722327231653006886221370949209276852285974387912305389012892436257301479348800729415400493564607598215493038133027181951613606754352390515407450097367519752235257543032801506163934900218517037275554226870028016018136585432493833316434356429390841976833279163648312117163803986098294686494119458172060902561378549787574051195811273619053135679982670971449586763234277432901611289571849369448628842458812981724374634177272880061806268126006452394335063134693882635354833017478259814414437004372782966042393534762666365582064317988065988053422660870723306676787155623590998140185940491460889559030393658423120571244040696380372138906997459380469485925162242384640814224715950516122025153399683943261669333349118334283430626642423083534641278018340096857443621708926203941635495037841791932645915631338979252013541337990888648708066411866155234974920828164550420193152963057467870041720869222830892885481834605736231381338479116078332681400882621858115467618213040929629685259262664931660303181563799365742565964830297660928921629475668303716812925477783976474275974759411533257601635825652811111582133284307312149100559407215166897627817430293605957540524997973458970413601407737102801428924344977435955153431356045206486149887774673194203141086337344411241754823746200271520012013289155647259142015730397615894144342277015841751469845009343334424813947585312418372941107286429994577067676102351305527451805567766999386089802248731387948650392411350098014065514956142896740773904500894759860325695554911053932102874190863865703644927929019711544406891929453124141976526477317851472033660240755913541323357158213358572603083309079555207716212597222114061946882185105861579510968240232772267272644536527062390415422871310062721857334296853589440482190181417139990077160342111347849671559167248241603192007840588622418227489437233721158449788930795333680028815349139026822887020898214655559689033721121895082698201023149643388385912887110027081835214054533195061872305613742985622242670966948625171190833112827529618284982733471507850456935801832736024212586428491533621790041338260246234356219391954437007980673612374499925833182567104401319032964754600616913176353297336090155274435588833356781497846800616639432972531676799217637695998561609191117259138747094086153798977310238678875674484963096236366592634227011977274282640697408824690886465803769412797407370530936957818337215083285069830250885399272748104041615482015638177903453688837086579423843095203115332927715678981398234247176761258940992814448298200702513200122651017024152933759112358868365431164218790179963659764673970000899227270052711426805365989771888543562893400162686307016787761404602882517683926616473791423491071474731281460665502210800204982738974574724309965186060553005176639914695293969092330866392230025587271608241243627404373619779078668040255009848669021841614992728236445843846160574372370156568098064796225383823546492562255847463479673405598278301951756105682422479984181994803207445664247737534044228939510707144191826840732346515934354108214885018644355436076379104379723134069059773585669848766651727282641778431260910700755251342258825987899531388354691299360663598134392314724929521566173821559084862132026559282764644213087306698263722740573583181995032501393591694043024718916994725115060539959224756270165791105468508560967357882604800809114437432350467126102752411845622758154531468561723755918002692504966190114880797160920469295779364356318626847440739570803347561045442188797984553286379391286723456723769253452868759035217099798523338128915871658534172494123057700148615311786421359366420727286689974810317732418567578483517873661182840516941399372321125766621467473693839839758173749773482947480163638439292512861156405060269090035655027771113776968956038167747398207150249083666068362157870415871741120797568276882187240739814848557167889282918116307888937636348511853924029823921833042245787566554648068181797550968859503325096257157867145773826417517833146310751501070435691278621611639567070202290614257306856353140047614911466091470059389364104978675396826763071513682805725054131244886100517560811860382818660634306955328747861963509174475525725349957720576683224694160408520758449689527459741604814623822878561733774297497931956865259181111327715276375706824985619407535696651890578712510066937327012713784077663212814602605765720962311086662668598578353562620747835623171817009954658648596044854761827925288046506346738136429276957822995253578444508785601833302764326256371219612243261735321310422976818613480421333132266841945415185426823239028768619259593371567588319463567156652828750892833934749632052214924968210479562539353045140240579761243136924858762409451592575927789154918242818862754829140623288735133898897226888020034492815001899108872341265258892145669069856173366460201128132036033634952845141150962751588566520184438846544018526540018485427289590680583410039907121922526223550891968238221508640037945328543924487495552672173999096453630988141676591771049018650908789070626737741618681553202457020235450009325344830056870997673602751171995327334507214404761076335394374355311540699001112403253391650799248200009399119487652506384702057707165086142719581436358032049286959468411509643310126388930610890352790219034119995903229701054796442446238127020269385751275168367493474405603837040362458236388897040075633226631156774355519229168424836392861128808946860792786470652099495352900055637490338840056199270580168653026161593137913020521801639957246554147077230448068196070352711385655697677436135799468956317762858868798172399565356927749423816186153975654270205909760299651281722697732217426873270550233080141366894022460161296126588974879917746634159005627551592365859277670412730785914330689672868032751713611637520111272938530945344474967548820174813973240524816759153206245128131702062675143925860186050007936030924452022607769235421169598175155477064201713976309036753166545439967588346191151376348629779158592265830476856397999134244153963261374555626503329120096963351230718877013785471221114790226813148685708421962074186011589187968285077333404271519373924056615503792941666097354595885769017086336123669406497658464848635905451211200069169721177806731972556298902829752793560001397062346996403357956879606044092971409835367652525654143485395864549508217562013096499173682600368898544665606332364312490951995028838499807366250510400558112153375797130129074259042983173930081381717028679926300567386849568821581530096152582205945545465607674703148861055540311755126087973576681477358768812296512581484429281530675883647280451677834538635955444274693329644070508755680645409082557409395225682026918641863837792055664146499644930341725245465151152713902859433996963979920114002761176301215197884913322073802091373332025041662059767141150940361604104177801429968599949701497884229200613311209445993561553313371351506597653857042439443564781141073850997735848029078056958341706398431478186836959299422002231967030609098411744943458714199266619781933403310518929269276982514129403630418536711294999422732987594023794088732691554226041460301541346381143826870358961920904672525253370347483525909982107969808256586285598643922908947130880738429568251670539645957989753893492932249920685719967344259556300294949280427053566754529563234016648836962973569178007403035659225640137744606566534271113686595716468313341668433366385129901856838358143271044632799675774980916615972299001924381663143444219094316015755740784663692708733285338006883760841154816370586838657181568845440273033529783043832679511225843460777882778328719063432715234871226627855079066482801259189621794745476016636424082376279482480471535456305659496423169276602890859542698166217971656661444822960954573345944136628774799463035143164470091545701459838422936037944411526306389334349239376676653417938573271122956518832280709291282720056262980551652957128099932227244218520176769047027027609288553710867126188276527282037417703258571721536525772497586619937321027240724896352874523285259215975324706536572494340022938314197988265703126749733193965524391808574047360585261127676168637956370098830397442083052623659923466574675758543405780184801088744132519226956612820799940403201417747886894345882481543464173360249114473026644504451325381345529691488711388277955389256083628379522479001309434490580341816112310701711316862247293604899079549443911177269736797629416729749343385396295024034985108983165043422453820077047459992431254014183329190503553783380608165907565656685738166361039236969000094936277543536116259904117279329219621495040084798313759988622730647097729689837274495245572386207801772824251636475903798852719437392808874634025107958686043635409930305755393207317283128600509052278962689270057233151725227886398100729569080239799458088919078550742603008017820617512168280252544734282294489788134375298090411391650852292598677809318690486999622446269062959027673417404789172028611323386232280034448205131586818843317036550922437762836845516135475988261450970116658508558016501332086898855462782550369457491475404582970420000055214852439079431345034098116993279633826397885618181932398343562259535642553828301895611282878592872283127030193553945264891762080748251713243784225641332149453260671582454163707593057874013678874170611718150550466636111425716116118311107675333463074964011570707096887763849414141499131324375170199660054441727700274018662705334624839676611357663553933199715808976490349065857858111371753537337571782270680315079186829278053942655521581855571611010683418111436630886379954817470332051497374763988071222012944934015570634032837168466704540219604191111563272493404346590351035382365587269120390755822533688514174861084866828822534705597255461303117266849430742937817694510464033815842826170498192346289770904381778148894177729956739167815276227287799646620303494232852040522301451731340858303110325214216045855632377984575363687750748949150427827732354653711292099866806405136739024393479873960040723528035265553251677722200073290145810223624851042447754239941212306124438552503703443837334691387361110181803580719565622584118012910700959882429888310661320055556964621227430574719204613857567190996086685546347318805437051635052071361457635800861778725205357687613492953484431795028312044509542972822289660217450586449025955758121038523117830301786791022433877821253614497259938818393033204909355963138938211985681252119568976393626542691390026167376151190116987955756351010459789931012764121095434628648496172056136370029939343040286920599018820496054882292679224414469000074698047056264064883733019428104066913254299247397096717302175920240635296943058275030852249252933253479320361843911184887817747881323064334453524805091442064033291211387631415629192564791894118623443115536795061723085408254472286952970054543660646419731321863349451324691303132850588012229062480309064505953790246162465340534585645965698223477436351317987900734230072806414733270409622665331463615592038920668094312537349092373441549519832988944008824690999764547505209466086028251321499893283704344836064033574651672162296005069171948950599892657077007556252666959726665132229153425248197806719005226609899713043230226202712882121706681289757915004003875000844489653667701111860791874213141231058508297353377978125028573660288606745446050097225302455918778681549082658219280271037990852796311662895105920611212347842909463080513542803259304051767067185524916551056589930595003935091274098214730412682999007679974156714468294522597145419956634455505728670720684103560964602865900177167856505896430568560325521769279827515617167234065769453803704860752355151425921755153678260492243067112269818707037735049128442352194672292163691628439396310349159688497047969773743496864611331298416641483060883992030222051259613371338759872673404644847421315407053888341762841433383936421239522461455175816167085511426221644799260294196870388641772364909229607675082700725197640212298831270301026403707877859000728954265163247882104700897708608192464167317144092087212817136203329576282690913032385333561520174274669121357923922157653201155205937887138574781283965148184660848978750320301718433586672497315714326407209192438451467911083713597787895582918399448537824361325886658252572031607794850552040257945581582085843041406778220793345441434563780235100657314855928288035811297306336106887214569765628102855203829227395926656233316569151707804432493652883016706169762769481475624344751475798083396427296577882694925129326989766298635729870731584269837790459088318440352389293849095507760050333200528149610845437396685845950319649148000110181813536321055565810312003402862133510326549293242750111551223593075151178424712734346488603051791213354919903293784984631498523019493676399931167411557747364451969501784499350308516583709298895109578328453063956722321696617352114107212781082130749401727276246229602241206755803948361052515136918989028450092225177938370412486103652188332901120684498239751812894694244340257330289308738359230879281839170412638419139373885229351894161253193405371525228987879074838725425735818588527573454225067164472281100034697930458881630068600522040210043313661144456851031998448621338593648682404877842247916694235184954888117990889855720477043446666670920425260004611701464071359292829680316485717123145543124429667393232900003706384646173171949342251368487281049833346020017275627381111433387624019449427327858800490164225698873074965089103207670456406257767068088180651387821831669976010318716836980039216218464949288521184136253548013553211854735760011240524745733493157195112754762391267324399573197234184299293068296570853512450312271839609851741974858663609324095843445268921374814333772541630722214491981381613378883830870079464662985876873586717429905323600550553542741294778721085703244675789645194066065090888075250750017802491683834966188567650090732735289954301385336773426054334927008385372109211282845262736692700504919973188150571670294783597609703178408378700589449266481966454401334319477215310228264140105454425591859705518868176847364326695339206553223655231096355464614726060379193903051980435560864957500226972333992253931672018717164154753669826515737047638836987452329229671377821840722746556531633677962919610540325177382684911901209475418663811015210184167446496255298809112565096029571370324905565778235321815810445604369302310760354241201360548435728110177108257062493460033138380700786769563351949444456526307820404999170962222641002696974626924004809290426119598115954386132961803287121248850703591707504592423278018325771314375612952114590462117040451868947758015726129279184467711735046509470590123300574528748974970259766755858654092258513898442919235607108866341486467652301394269261681516404977662509185486833252807603901423694422867719813065942249009139855154998794871661377146790626915979744535214196824224260181420731247558888936199356693711352912686279628332408554520946443590237299765536113196659438907935881745623547548363983451817075434908832302914809697781833313298539941195736169390006218076435676779281011314856325985626051623561726761242609133995326055354276158464766780006643226126610846301924771658403123247692047912641541798597112623356651998292081122548252191549720077695037725435615211164969965319709936640022428549979994634420212555515582246922042097073019411858130890685613103800177268104951480833373393648630955756417061701618577213680409087861851373616270027812345648071666457660571517921380578584914506783678292410780576673389003787359859263770347118567980545224582693825982533078262057933382823400925003264519576488082229718770845677191295935354514551594537427529678581774590097921060894684879566962725770475328149937571800520809458619774421734808769788898742831986478908938425675498778585963181241862709742389515074699064539599756099632400379043335234735593252618762545451990876106148036507331683233143048939111867184859073918798986222658834027316893994535740034561039429868662414261657839496169890780263257858422743227339036032431907482062213185803734664051426583252214791306806783401040650073221906710332726563605735895225099080160516841224647077042901305373247883721530892571927808322317425563074346886523722379443374005629906039128783761533699050255010886731380641150743305432058438536127185655281366092718176664126967237833144031648427974010281792620083495594217795114946205105633870904502719858585341127817018645000115979047001106771939587070198811525567419684558887023841499368969502403734219879049654656573254964356601876426299260214725659627856550543655567515678288025588099364158386532444831768347526319475516318416305487309361773300904017579066989482530735435624035350442524253034849825754110357077087362797268624305344110754658296483339853493895929288910423577919373137589890115734442896297661628731451498170058036389693203098214824095320831768323255757451933752324353040799376826024099875015250376009175212183033758983563812112204238391753954887954404013746505795974923943994598555579022026460817546094125666180445423379073867960523359061436802112671118422718037492874013395831510067719987598416398899103948625301793145284250453011256346866570800637808067907264758957488837090719625999223140134970101073121205398836448664016888346012623224476652489261702588351005934021332564053001062331338712599967142550725119337518979765228119233865247819277588457288932319446002807537090167307385754549142136971856365373222694886607640731968664502379242023673522043577893113491306792224225058441598806813574605390217594981289035943351543321052753752306724477205153782578038496697541682699171049315230994995895729805146378868890128731932251141768877720275569095200386688751145775658717795848161249386773888794903448693123873912459119750944162816986103889184441732126168785628317887058625314657673558689144043936884212041549451986991291361226969637400021209665333448898560080763033592526880238041055271651042251372960588594341208329843285861411680475958163014411316381849237275145464807049685911572880670743481045259678812749734946016651948972385755701998985071729605075863118829437920454310476149802534698852193117525018664147153315681360701611668157953468374887612296556277273438124913702086387291818764556296835824753273196536273009457587240107552394025737496333791166455354532997873443217818381145066741247111103727298130578334547345367473847473889779828977895443547664356127264302404839518380031707521506415128528388367032105007068231478479586477972765470861070380624929203471511980512643433250325824900735440281110934125554340277713781646320327182141967148082932175060113206135557671076889151945631158302547560127783179539248327882076277837363206772985796870187684378240209890063859120578909690888456213673462529016738066851128499896596477624664123897207909130982178457792460627818553349211902064555903437188006295872741506264906771821138689626559487581553308809414679166680073021952723194210652213324167521205843617664512266273591463680934116381864762606993198183608723115001417595348050725811658289990011519711151118146600407587621805928700638927021053048364204000633700757274752891482209654899526903902497031372414026116144665489813113938606278843890074186885188176126388507264105308635855215924602461975687462308164723781505530911809573446997574729717041402448891474961853594758455615009876479988943453862783582034387571346606546811406287820061407837675121851487110884275981611062336284072550488301685853868037359112686334670724756613184431744993418048058871868686410811681477757745147519492702293866434302452200427297433544108886427062333832564480898135706332063580838830581843095178209290290201721362244702320209947901696526723476697912828851478374131450408943302398075476115410692206793855089630448614233499292575303301053911815653296609518214362763214492374977897982840021796801475051141824077245850787804777543162119512260875426367401329128719750620841613759644396920324498366461359736658468128805029536127586288288920586626163168063776556633139064628627851244170133477184521601674463856749463735702664167468442907302619410817243592436392303501635038654554407998706097372721772188120036320129812714198317150643596002885630398500532718263235820297302134661529036313540990937755409476351490515359630849190407824096217144695772297954703928320647076985872789855920981780615978693665918827982825067880238065852824813715994643811989226601745846249232053112043566559699884800025994308380807250248373036618251852451881823835125939345605847793277014474456051699212725545867250691321705176746881573330817600361702954586830880255785946427715095337296479113184301635973745816737050273267191478153865632755770874577654993433079516491103757806886721339009974505574412029019870875888382285166130696297770026100182719236966139608456418658617049271927215976394588168068846536636322317034697145604615592244194216927370469802460141243915839281856582985445210613301891796626258252701917351888717886154749192369360572953118491888036410993307830149497607662899207911567450273923008067603998112542000705211515978819986423204289769691967436693706754138840741821219078082495033322982213788829026610454802321043718497232104726663999863756464490633338020492481362630111332203201726596692392829914472527432866556911862266715165426506107849659225739397830489479225677902479301829073524841019216621710674881512048910051742001932798133088486774033459277425977833484373496100072366448562807645162985599595053963191252995870412837978326602150816479296216325852974333661476872447342454008948754329205371211179416480467887903824656770297089493492985880123068283476831981125881206150461224199778970672482466304121868151944413140580182672720469351886832531979337747184493881863402475911452012029514212255648169940515696102875106234478965579575294751295620317735462716079962928788010717998541650239230892164288294816526812722929914418971683814828177909432788933276748382364662806763000804909531250153727292276838344239760281846175678936811864469969444978656243382725866688896095978273346947838786946431873251164033499881416929451208675118047813884064998148318603237426102337754221588103902281162079276786670196106313272759991823593803023778414957740199994905237881029428043428310389758184973302953787507793799202385217820577895779874536431711991623175382762420469402180931892958204834549793165477966020240335900261484210312626001655859895862213131564814149074246985650789099905394707556963619745935028414501135162260761280760003485469187418582554155781652005339432394856021039327803201856843732709683538467334390291006326260023484766588503448080268035160583504312683835242259177200262907971000561538847526150338184339324784545294046000797901308837283529187669400415335411981985210023186597965965275636046400494091082909446932777630566745160578127561061832523074833242355192888751482982352883019763100297413391465113064500937608278840972216013737584717296157711740671885453117911516231337394511881618396476255709691185338415471046319652147761164080738594156459257810981151266806981685466240427283431278020713846162006488384821932897654390284037092214161997803762553650724672710791592346778369371867414715632411686477424376662196662044212167452411437296347060250973259972672962801884875336050702827798631761965712645384287497578766746696350366851736795237215125560321472986352355020184212177635996389668871605305382521382529991481870650679816610433694418319461397336447636059898409921559031360526573195897782826219984221674021501745677001770342842336492728521043853046053867769643352113414059192497829528903783390122235893441021397102594534839722164970657187374153645742505916672985650783612692428195314381481379217114997910231404988601616457127122550161352019160580776851714798406197886649854871015786474950393622322987530338039917952106920374359684641670239743243016617199583514840349212969843005645674296014954120339579429646769260062046462527843850858162972869925767294899770045690990988422335221336066623398290197417350878510315478138826938799845563521133486728514289049470051410627090489094850157455809340739577766710316287990870354305324978446156764554588124022876065805537472650233380110017556718418769430379153618439562941563629636737072277055735952418824962459000578357257165348169291901982627921509109399594934611317021510598828921979920510333707115654908927413801112447077136637686693780202336752004830874128330553123435867861483136034815063072705225846617557131143042083202086837244296992895802082997273167346184700504998428810198038502917435638179348009729501296888174462560379013698598028569333585840936384641441704907459469167953340763231147799593381878732934348912640956232293190493717556943597295686158765833293424180964289303801030200836639334648689118332341411287111290900039051064326553138262930706728941174480149830231172487188397228423754364100242196935545678334247193790858222631340099193529300182725189490849844855361924784034096841514032621509006655220655192559970767218030659337949405840442786209048960441907987890974991342044882026488861325944752204367776604010869526584604925216892768734661835642991717189444351682581512972595948608016193649171451606345807439436610975298605456395758375836064967623016111478000107283044399833781070009254385633534774622317654931066371105238829473173978732569916963982851988947793981323516501080227155150726173166441379518025573950633749247318320201620638961440741203537173016389698754876336913234027891671984785066659575089378306322905553212522486532507376577889313389148447419617361823448633629620821528906820025459554873829033940297367075363573211191952619763773206865779461365600908036286286011372181858463859377503272080000157536365436932246152129464915790675889720164095523971631646866335616378708029545951019375268548960888922147671442246582413336134560613161292970899751205741742164072136074710297023421592180990145177009237531596576028328002635704692979773705658625647151352948835221439165854277413918652870573474949022425655188347366762042256549881040701492834510632794264737659309899066166081749224749880549233375763425955388352856214307051372155658773669400244791682577566647229484451796471296739759622812359606464432514302388136720482603266021127643494630334712992693225853578575876246949065362979060199124834806681948721820916778954431579202509730034050450122860176013024956169629737458901316464440999759903683327578396814114219880272527793835710377243972340336432300944782653983963145116571146225240379934223801407353698318956490704529610713924403037766156040178207427014188784188276666153523157927338765746194001749939164023108444906747516061339319500214974551365693285376033147450346173958326290446650779815808349073372470987693364289030032828921034980254073239812534298939554439341013131148870231973261798482357009243207802059774613374587755286564128252573430881487722598880579183191667347558417458203291739556491885572388759404581975497096058659748160571829159889621441458057417519209974097168423533286680272986429646961993336202500006154734950876826851362374561780562846594500529741696786865574337164139603564713642561982056125535440317052018367913109287853659244087122520739976895347132588039542587027884118209714450301262354321573463098628731945961803074601611153029176443698772780457461337627755831308483670245186312226935333721591963345255956436310524805314787342612445102693603529639204944729313756858532909176221154429837217663485359213443861093318546048839283369442027928986061531075256523409881295494567146384753354668660790125055153818146873827799449884350568174182839961458416819062199646625061815970685635190252569587524363296527015371706182941284567136033921197115669945505785598889708268455206461180390683012885466444949352824532609317608291019944435609533125034976148875137274679195125154992275221342512227401169501397184156210364550890934761896121143512574877770375920879469013182909161093596607354634643918126100956664373032241992024132810671598333155301394324046246026170384698563155954860712217835499319399547378104792336853961554482547855415096212059467276816257345737557586767515364713712743642965680671992629757111259402423751239810235352594396260481139063758086997008525443982644839947900383929410080158712705418398438645762682846447458858614006363460513699338942075893818250902798028023369927323589924529973930615287630026049335500063292896481962750403581227555063473449460442901316414187999625446499292570370211705288665964358412448352840855138199140972734315487382378769019651452413855662100489256984690217225256750315067420109152251534333557773590998931262530146171902142204244512764685934067555183090189249636498851498645510064334046340158220299319371442233675836575395250276439891298248673529316311265093961241544254690232955531999996861922651851316925365196112727648631604763290510024261103208531598968095636961678990966797254110193543677761970583649861296974056080284767501840125338690793555100241526388580883894421764430550823215081261137878127157926422615627357354800231759623313621155544032282041463215290590217494457813893583673246335995465014852006597757573770930152200749189270020861414832521821006681575701414412058858229415178542055801872534430838426522420508719106935313416553946674276473515479577453855683316652215284603869031901306694598399781898959903080413247151449667227822585968205251997058414583122165947807077277861005262794113164339330995097837447128525941794435810556260589685129946653621744811589804936916337906364892540024733495906842275093715650067943438513786127553747323626485311428307364624314190020580157095259674818403395501349601791205491584642177405135108972386376654664137679171689141413764183341249810237259289480856434926801830628986810193949466343988889443642115487410340571367226640348181135019401303706664030370545760115316874291653801833262016364765264498955528977991918219311131627379892663414844630006964528046098266358386613961908425591119068523305847233073780967270558096785544504351321061581096688237598192951405012323013039762026839096409093062514672789850313697369151316861337359343046068591595693874164810311710890141417666867581013168043913764802384714985394716343538606698127452303877084836121919804455099120319024477349237749416989952183319978436809073226127373456925615240029705411934369530689097111775793687492025604777431233371622483500781291581153339572563811503850795274910697951111139452972752728004189718044165928701842728239106656890411086015592869365579409699936029019941555604602860525534993695436349714008378612336001616507546199379258034446187323624793103541669136498744269351174154868311830571350407177484029229601564507260644877096962159794362983327341352456058319913313835361931750944231619222539574286938998036853820347284244180237091573801954961598058160511944956913211084237902400282107998052472694830032481219113499138695835634000842780489338048944953754906205299097415781028845118263556002701587160319998183652460640014551131217250521281978822064946748447590477962206015431447677352374045421349824235885553619318721662049536160513970653729975067781774142539429057047730448351367627486344798855476506544644535437021088242044982356851620690115362024245323588750338166200827571824538636935216933580761178426653850067161995563611139892841022028383989095363032954202254033619594420465208045348077449172721709978079356464538088185478050482405016268145905991222477904257460013455182351226270566819466936854289015018214229734409387371110464255430967858647405278006951993356367776450829725588134560868171108341885309667780593048096039414708858261684750788741067773644159380056922585421241866188165753953312931912725208404142198638446855363101400484819548265390531598417331784687390333730972455178388614221097741806021249851261257846104767028292249087083929769039158763187311402566691224745243526415279782618665986936256206206470693788545285281392301498439060190934618263877637548114855849147119595316915186985877605762172770986727400862897536009594993736984781252814227476863849309639313817254405947818795484591632388945081965373943539225215838017540548432887744319462279381783935755930882134806443996732745741670394663769428472399716582187660137114641825313100248867696488346553336996631774174429196420516417910466297508323963414702128201554215606933093661690591699691283281077439747205489180138052535259529592105782203207960818556754104889467870199441419523319436158126927652185309033268093617406626568427928018711827614429666031451234009935075116233701820509981279203799896722810878980952520103779172061437334442287775782071406458354209021900816250987241241119707133940643486852320851887839259539629079001764762406238570681250519998005828177031477776367510780108671480336706374771201427093244686373435034891054063267745131523091950756322630957099688404914818783079620460410575941438397853323847453439355063495726045987314163795195607362752127504821882598608653098511858105518048217308581028934358220584873071675855479350271825228139531717847833126893099881611854540978220138652015084251550014756043617578084000825174523664095893953419729424141435637488774469757229500000181380461774567541244759504292141249428366557086966212120974747406324675778089810794449813444179123661300543626626634800539363600327228571424521512232987068548116454614853241055940727352973604202689824257920639397214044552480577498601263678615453595659586578638587877823155744936759423648492952051894704521748364111338981725330328777450143949571436877402031212704696154238539611723765345179018775246212244669959607046653363288672986265427991004216092549413626832610968540140345834156486028332427901947910507715893744610650778986840790991830701233886042315924794080889628556426135663908218090906336350409893795367263703911538932522876535568022475670580506897257010924956529368260768330711116997486745033950333533871677492298876584976202842431565297251620839460405049908259496413393992886409820257678048633913648770684416816734761809103717585606971821461301245288046682364269589022201936262629219266704255246938202304973935471635829515282266740583623649997067614263853620697779631573633371444891663364240665305713039285079836763108602304841113538164806526822949169147004869557164786089956696923274706447573141677244728213209427561184338447039240991984691467262507990583089735650135018820933846357087762888765247406942908123568089654939576580723363959315561127090513630488549084779241224370481711874534571667293038271877907806628921256254359185897705739958168995655242615842513025548092613349966853904961253487864433524899471960097176265241195372485987306465966889960841003095612717871955440399614982872655837977332517116031013718051234234021269760828962933884057520430025477995789005517570266402874145464510506175622568416169230705943743289928391409250137639765183286470494884904815248587093292984117837579085552639107055180397047847011262123728804556252608799423712194727619061643692126607656383490826957222456280834166605942554517411648833424910619249226493929847121107659955345594908741417418823751222880767952398576349798539573802413471834625474430391703037702587373727407314668220149525684739046907966423504096844910384596286564669245204858774325034453912911846234678447254237232417018262458008700504296089908497190093728137684491095059040843322087637152853922466983367754905405303388888628772015885266803823435019943260314666052905933294437508367551529659732082449245503074194322643235191441221591064636487637502297972064949965549570871285547201218800125374187523691973014064832306834837666202911341526553405223097894377931863085896293894202424092432549728469502911590019429875924629372988528056829696140149292052259503821077480164584264061145912339469365839556012002488479536804657007779186202367514655583930964591800311845683012980969535358490608169908311005268272277944235122497860586537611339719781920223699981766542376712040739364179132151005853065272260921704540271402458327804821654553106983490021105062854019927559830456309311917736543790286746487321524564205681310928613210675161131296526206469020503737734497697841573500270676870703005054051513927267257671252606238185349139382020780061684363470614014312416876235458986112128626409199098406067335449146198830629643518370351320962770525336445310145989753779242430888972607291410952601716929634326476516267316281917848273856379552709325072279433086984008765485546615435488923393709038537966361334235938939811489794292822519449305548184645908758173579615015159132174466701262946382645419116400600140974653873621460289055686081122907553705929982712670559382858213137861197243736033758505824358797894762667645975202260536249020413563211778106314356549441779759810636731672620123124797763114306926942380511314181699866855459312855837726155118524800635875345551792165347006185527822597595396621349277466023783196356985063385342240374932187898268480662129093714571127218777438746109745536430685771580252785679939408999178566459751315175390949237815419271136294692341561548894286266110963745377414996817521150500394484845042061417969831257836948109943692236283095737764396067478331244978310603358692972637456690848458907549096595953520741007197359427640565540792369045127786833581792003123504022921703469517667330434850719511149661357263055724563961871391514116691244492031055605006388672761599255223867419060393244981604403389937247049830486719429397003294741221305507729497347129803644088853610364484329810971946271713636142246752277708614214972840931474332839431606607899154901202220919722393607924608196187617262804670353148717379917700692334010899900637992997649948242883800214458863527762423370504056895450582308818745293336493085282469468326389756383301487512851522193384530263499151140683879955297958350884220904618208245200103169468584454496934006305946014498092388860159692868902604259812316596650283232492085036123470119308975074901401487775401816264759292416058394021592389780739068676667501492652589521771013435399263392641223765313647321165681122008906620009911185802780959366394928878093185365323714326087186343693716937120069847655065085157526588849789772160373725572375024240462154859232511952620177650735216865781446567792502471028550516940581174090505463894846200711507547191046718316662845812302339457115094070302027394537602081555055727587752662679880372396043843080847132312974072590876726964348547089828812262102142946930899709002969501370396641284867729218124515137857505829989131317663328545713480094678833808713514651279742423575271229516091169316803281259107205060431097774689243922113875934582278417715615231793008196378044058083885466475372219692064395021376287939063494123748596386055001243813366172786946632111119154517990135340288421360568611801106811382028942318462696583637145853379167163602263927343372613185066779125715785153385374697183544821248931346061083812638928705263425888321040506707929619770991431941435287911873198634957868110283877307752063298670035257689365822371318127395595625745481979984531639847643457876745227561338642772357959588313281708385608303324515500693888276624053232379421439693443502171644980005734456230921002080455961757316062005145059495785690573870462803082882351117039318983802784826258006568697354772364925977492443739579736618509870621786933114027572954271017677242957780755497978143699432947872453008248470757145855409843529935956635329186891545153658002646986817708529738198774556720628390681698540022696721125564462710827346987878321882571939843271589855965325251511081177103765587355802255642746094635534422911113487599723092414411226707245900792427569618858267235578266964103414596866850266870695006171442001045857535148018105492908755464830197575552435654059771674723760811146932041917845823179580988168813402040619254024639134399549192510800876183804041634549221663084357076827771566491037928414956819954316553568406248293752672572901129707673966740440901479521128293492774134715978000863598267927119998526671282649762822976718142441750104704772853353156758324312346492389796218024546891236447200443880264487930056106490949288829512001311770330558167937702264845722866501977514825717298814385322521084405411471321730822466585376325854314215746866652660686744125828900558911085858107884319727459677636774484490343749953892131253127545525287139215523016982605950133679207431904283945520535684586624324344411454737694810091250780863730413699402938807863187567241746673228703410698450893732762020134865670539380835117553493303173969331943373021715284530079348256039156001031637555177530290558280025901061307632054834611441817822482376827596982694108393376625525058706542157327557388655272084454661435047087817038595743183594107351647103303460330626717525247951502583826995477620448124440344185973652106332362578219614140300004328168807273713811174108529180028112972965275031874615935168185352261524637761541584232786954531653513093058894742778985794276254803234416727779934658785880351729619852139761676445864187511841078375855333008533928044004576782521251622186188810366860613685058892625037445912171636849757875234202894891285416373356868591441926045598029546148931701265215875734519995414305891693848152623283761845374408663050423470698284985758032434370581389693418901258265627974684454641497917848896581091896165722801404143092111834723328392507033628914799408775010307908061977527022903250876768743422947694739451474211334903704500295178794685612265047139611287524612952467737609855762610938142959123758380852075344810370407648896202048812590021475271316543875364119758530491861039865164694489537539710179775741751201066953929236378416350928282192144321481225515382511926969126450351227059375027510085280308609995596918980398617870753930958596821089238502817322223690723134491703523129851518162895748843918733971594927797439005815406295365249228487166669676310965199902952749137073002269192760393055745303818845947808075500097614795864049796565578026707090985026146166891149121091742022094556115455354778013878485905799074769668293089311192381635155241256744868242287144719499491895841231984724404656514097887868269742019793361266948625425549421704129503523037146723908451581105402868376570695372417732357295724381395480071761330736656845657783244479900869371397032725286524555432649893737817895785738492143549706520680560934815508100429394870458005782317991149274931831415840072988042549843932627203631241945906534186816575227209678797718840814044006780437812056197894494799829303883446150941777509014319438683638173235513877008342635112027379840281330231636758249800444890510844752423703251608844422279225999937685270847507966827604321144924397944747437527888936104993286869970512505582884072633963076123543909971200102056696760330934136306502455523221969474072071296050375156611216182029235714859023300254886104001199013704098631634396100038861332468971400838121405411338645346930205962515537768048853583881907009672845500376195215027180480301748328658479523247434516436959286549362496398587630116704641445907233895520074606958527281358486216041492509921770049287529528200936764446612728395109726555241504679437733578893770730056590515339902665667244058005558940522694617911879452912895819520637304996250169531364369164817483497816952716075883568218717460919353789640087844461354202288644596592180476948357255361308950248531209955727485345369217334079936620306675947506382590115721701803833848370881782928069284608937471563144692877596279801920343232634510180176949475240174550665346149415389115652408962927526881271592207560502025630996589974390088324523439146894573846212531714998480519618477107302723105848040658422252309910271822799686265029045760077503943287606464368095849056807158253291201912663961276658445164515125789559703156930245009557354054549856633860194875621038405088287239034301357414897752901594403345643679820434905360308496924616739505850564956898690223407273174593204331879625950410453382080664189960958672101405051327070192965525051619622771426489937113097477812184069592847314871054332865630704259857923680732211349902383161898591830121960732202441605376972057784849992139202179801068392264503669321001413201739883584029404001810701515761258583864005950985413049181811337021268827867785541167944265699685574740951883467057613414133471960871876056933863310258978263042183754941816348172956329694853499911959614253626725170507892454575972451050352007849865717756262534279236610740450204170307446584730750910443889177750482689448851458612267279112068732829472385574671727091249924416443851656039243040319925820173656530737474126411574827601781250044137006991613513836451635030811602262279902008134277984964986225492648817237712456841000316219933869722448709075817715434950388864858187904357915410938643047384857866522270267856440448010649814423068105723242060673318034479583199541494214307915926357433350574496887279458087574779666345393284612182627841897753294897196237854262077773701482288341468524093972931159304433196280231471697661716599864934060497868040213552078249446884377038228565630940248438210568701999056849406070060521924834398428834066465428324685104321708257950690078543670342418205650745538330145089964842445959866244973514902547593485529092509010484584957758251736479210282719314285723374135203673695862214113846499912514658503605592150984449980390518201433828525117149704381601715673458788982649989065997676966334279379159542068390243660566233330700176538061356585048022923608450557367530663294357902578329088598269911045610786718726833896119160898463470841203014312215770321129457745647711745590714559794839245108717692765473949368107079959045554269940177011326888659816498242472948236651612601026656843089283397665899318099932671002352399885166515318836020402742977470251176953221361669130168268744991516930774869022074553935203382244337599120595307826595307494124225893119268799957972107249142668443064175435742653561198440630979273610382590579583846627510421837370077128240061162064204536366827923461564915260990797871691659715471624195574906647778117893496463356414997604826543984198061757535582502332604842787043606769811300158592130841913679091278933889263518526988706404678053036461941804632930382322593185509492379881374871957070286010200216573161369394057952623721593763182186264299177532082979207868749265877228848607205617413978783115192944818658655872761787854407407944020102962025408744231439157323161595780510792437044519041061198264777247454395653377739012218084553879526659722019306008594736893439806773054772862247363165449573855544757659686962270102986108559455465003842672941999429747298492733396376185950095636582802994909150752572081041925954594435471522890237972070045158826202565357176290627707875646963488509884958758360110065586150118009253165475807493581382256815613170180475147395152698910262998564379870668205390763733632763348586610853264445146681156640158970703280898582511062581096532877936257540862899045331556980950976434542084987889240730756899459850172353603045348524716044044009577766159039022106071022057999764704840270044759894853215945097999817146647568073980557374341574730237076414829166495414307829638750051798266712321816500449323070718349003338537718362407690602559960393752879633480744880194070300018482756147754755214039184191341978742482603094233197626238945785019670843799653737656770960543930230235157827173687243529104555428043502865929061485735954680228241757498623441173229733148625974536376189657642727675865383505832413006179745417287631696363631049027352023544082360525678548972740852661763710536827625003115657147008192735656774933452504366480912721151355508885869556420892185384462200590440814165500746008036364753163215160421788991690994865687627554674303099115127267905314687386130595508628171165471086116818300321270185945928057284422798307151775930685761390496267921404997162429827204499068645750817883976511055047605637517189407864354305417184755125852039055387166540767602710889283944692822424630572543888722204900536038592707780878085460635437349939636473157163952886740064774766673648668327479524421999892753735309845834597236843170673999925874704499743799025973694641899405697494289046299859219911459058678688711518206729530066919257641604402967461269013749556925220543705675638330294054767450054737610472329208915677391003191958346907174193588098122184130948025606051646877654176558955740648882770706262592163556475238109377718697071676478081556659417942827731507034541533519691116372910158510752694899233771374943083794267272583256758343047297806403202002045267611020592533771936488373191382235998022858937594958434419840853750074310555638233415083530270367334858280284050894448433974155530318188836510048134988766923778058079924684563178329358207348145127788411423809691321709449886590946223086203164437602587841792997066185806153865445734357840684975498448896831055651974986751954930197582803466332896492091348278587448821882689396978996931791102188866961276685155803001121278545262565811256420905566229499154415246130139072943888205951614258574459414034972195221170425436402358713646345042361391140356385594674862511932437529367304194823656755137289521012879850447072357587837916426575739195193603715563703360532439473304574230136019618277436940194182561911495829659922731603655745961190627053324338422324765282315631973888930648614276726208267368348499993955212899843860207755069763312778268700783711362689927959827735455947746144085925823915570548789145483074721291607383076139422057289233072329114428941248698045597338883419119799551819615472960209613325769077586741038378806473040600350486141643657832738830314859616564052253099898796831039901642162622397593934638869913284251096702166452427773736929858359372508796044176998876340774124034781428362577751461388439332723452944694119790566220554645656989795133436159124905311971515118309533008307093134016502916576340711448590981416850840379031885658103921088885073470878325935215310282068777321904069925915549544016513384314344956640083546515964297580539321130981975258674332996639402191947452366273330031046225081111994997315260135119983847303419192645788611575335080811337004808986494622549553046126948509175265907524507938206145421532302466312408731069801795111098693730463489518441761589240940015248261725035871641258107353235616057891386908377688758573545620076542457080239753875003804203950999464825336296723417628259261643390947440556171910684851550597954515107557922823543491090051637751785029974725777867792829826268895466961186225918886973689931165267851533081263895742436395665547607530650979250463087813088686216182931922380727652956962365498054124850914131267779272359160111380645694857632519845247766813348818901694558615921040040308194336817347545986822430910281324807987802004725408400480181871351811559555626732645676971034512632826762144327128391998761315646363429926959405179856663517851387535295087019325796784910685226387311883045684362730437223288605130353217412111840429950318113993841252293638456637438301642139916309779075256208649481700254823325649369631237652018779834618394026651138099440489164588290799766883083727828417918487070244499863627437983710858174631311515487995982810681476792728087070621819772332126823653458383616247694763983774448465509683120952779552231637916599248147621040781464771705523023394752232192127895121301148256764135371203985969021783182472573938358276198422637030559788682226965862577642070525036316184409658349065194857978956933669675450689646406177748921614646586908558966057926051629608436397513386101430925651940545818915398102188994268377914096618730169568127200976725059241585251802908866292234460173047335842454888716452385813586368217341618282950141370983465548870172354122757864027088323126557757263892109838187083133057610827668418815574425591552952240627206447227021608494548487433904501658885357549793258145297157088798425905727941299240371621326966117462382917498136138483836340917634181224683307532872257114309006062729008969525964531055706954074486143496991092629505065178309751046342521266621970582373407657945146793625404863104635611951723914790575422363342096099250063195767629169540450464059292005817399433388824228197323752070978087131000554236081620406505517539922527300179294165341426012236924125023473090408526811853149822393380111256264213784382952405585368393735358535807776584936976877353371861665163096964566324707885432532653872322194103849290723970690636479795524416217529933959508638419286544426887494550343145332834695962626950576028467884661001666770918899676395503533877562380681506304752391948361504747818632220266670751284705039371398199289218730210148031245045619261824704260741937093923436117509957158443356265651796159191994989635324296195963712925136242382461487640841124189052187572355901344994878246924791305450271734420251263485283015142539105187450443739317178371048842669661536210816985155340984283165699130369291832638053366455624326836500319898729521488061873377180869487662042604853408227367039716043765253757326715985079125593063392348894289502374772260952534101210032137717127697647243850276675832969123269141947996862035439109836196541783751621247700247443621726936672667800934502513638600671841988083697686265506359467610503501582398581210265626861430193968179996862291740376952585474151194833493601323777614540791305212978312439021250692388492080297978659488703090579066597557428782510414455843156245663867035165372099347986561131620960021255833451207165973983336452582020153526935670747300134521239361125553089820108616286300174678881917818680202454388535304145952381702170458372671857102035992107666940187040878679106433979362714984168788370202452224158849578279638043133109946815604855161092926984997496239432149203977914233135134969796399766711250851223936335274551215528045041778128818193593702456381467192228201435489135864794344859364161029579782276859427421085135949513762408543871309397467865903949832945039794410759005040790715586118319589199528861165474645423709070155895700764127428557018185981912889630940551400688152680132090784120911981201739477502276439927556304919312229130580689445791596689566764877714600702251154378690538747105812912043869347304416590805100470615259757275255767231310293613781769682032720245886400479478150149609903185719301572729460425959007534748087995110958798095125305391605765496193933669809692341494659087601612840159845021245023914344767693869150075865498471980979668948446317475372306030902731059664466500763314835993484590126393989858202191055176342732123191090236049349512338915818741273624109253443178639114901839642782189152905930739797180251820711198132024476958054175655234086475614172504762779341440317130708464500475600125618256418297896353539832899913319305669207059170125860995905174368608627431663642732599900548638563776435835992237075229268340894681219122882966769721996900873196499901513103423886521953942655198836904845709681847745746338325608284595555867727801586672629822869651206320224624478163337801809748084983060604195737249424924182444236587117271409249761725267446201132315230631890212271117054854129135810189456516095638877296399567239102007820970067639984762811893634788527379066033264780078390225536454540921999380320367075774771364798669163302094014840245330840284900372548678307858262302399383281362344273061654536046972735253920797276650300706721248080777615718862502497493706479747525856925912800543569788790493995185715378556876520890586043901093327331724057596626812365517998972908386550458362783672134474583385168962135051539588942929600725709748220879262493899133946351623936686558722963957511375716990551274570121699273669892864937615832973288672564866321863373258809301667341244775282174056121965431101775490824945007168218564181082588413682741562182158236098514345931141274003064729447249698742187578349185939908713237543399788929219340009107275742874666155323912750712324489985939194537170481409418710652545951439225451299728837879659440995754484895122106475213207003917008994909503583533111372465572654580780763167694026906142966121752191986790510368641983946883387435419799955137032252118288060807872178855749441849177899034212282942593539323985528001625967208894075828940451573760857290749965538119920638475371972329372686700004309441779087544033978276823909847128239669800350057257765558056517841143240414179563843475357916057458365926263384080242467464888510487351963467469405349819657881709567208353577164780067887174314101309837098621560377500252073700627111300598890740112658490090507499365747602770345522629945080547300301929857711017062528477688990604488097424341618423850996181504783454282269544850132129965804206931569841708527610177958751425261885278452267672425368316462957845988816821610792753242254298284062478495775526490797618330269694885083806987017387193741068640824469301623133594191919483543153764806833955891063422064476019469361491940493643187821391471027480761157869279533875161447694577378471194041392132501049894647812699977511115515853197566820701290464447104956574539322945037580971385519496365670939978270252537644815300943030374662890070372391288741832431489326188027807056604744923508637065000913179926808205282240480568156337220340457143870106316478365192181318051074043459915026339255543167075615626495730851068915711067551630610762498685882497101801111087935171450730235096821787019974072813978351856335016986295761526437014219042235178668805812206138874610918190837513638216744591447746315660143526652528574090435228924090709265876192513519479335357729320176402405923834819130937702200059792536656643775782354402435251208698278541762047434424108559416048685752446014185582353599491052474723645506686197091723432552905090597771774853122211816569018559487746264899152600793802695933458360656692720595737168282404066742663209796139052918761884648838327323288854910636949752448393085398618995859763231622433059819850284664066832832833594035254021054769552340001809570580460068349481210263866333574410670491317387960790042687593152933597157475043836053053164601965590494490008709698169216606335533519744025347108276541503909738394651767787778994574654566900012037582982604390295552792966034048676546529054304483311018777316851520112102311984900365974026365206396386936516967090644281314505238028574465807194164650738578902377684448124728803570952319298200459077849387974107801808156986189098541683321815328149808949236430209791227478088746759045829929385031867406805458187630550311599485076871637787528567193823620131990206908791669541276519738737209640620692417456609832343810882038432745552965170891272886715868833376674375196558140789405199188981504296443493621549886103952524713176476530806164582448062548223808226529883412651845133317847623980347554061431647378498491936266631159327778994209765050873439881563222092219845314524976442635220934414071196801995333640133630225447875926591471111565442028615918291220261315834412029115270102447137559860884894667488447060675601406042012643355105889924571355809292899937760243605017622951677631515942478014548994598727147134589623105130403954552004893038209590928976607232241179928051077088988025035227745797737475147097114353435167839811601723129125109969224968201673844244599745508653182851965702024055855764556916835650642060299363121122924828593791878001430222819409238787422375411065657682302074806629292503825129221251054703376082458607163072011304118542376389723412309854532478806510466958936632791976757026614925819688004184084204861617731917071498199028849892116337237448523145976856867828521166808962087876312710398331318215659302587698070218355170817849842071907518471803321991952188776560771712235289263552341491282803025160899476831766797396268514887438542279312651437037070676490805175578263847328317975493369179988195407756527097762143984966296661312489606155800464389830267878005935660757421339975675322618186033597766221659305227597830040774791539464394418197487200011802703915783118582571137688350482624324181972415264276810487381975603153065597516882487605024673204211184891560247102870131499264497666745577102557833987248584375437240021951206139083422956489785774358259797017995567977159640496412651320978792877826229156659018479302549199165654577260957163238241943915168063732815595233871022505748245529685637311996792630959580191095894404835241385701787226328471084122093812249714934993916408375813090545030291700802731108160297980482052248984441410774388430510506631197119743624306036535156656804884972267562552393891686109594977085249041469195234674404221981957215249882763231454442323887264072500941571729819974774192451307557708799877433832538830082281464159434154952840134130667503256482985753381777230873352998752445895699674131812972268444156846209285141966447350904425531767347054306338030901428286032027684814731984306006269992867917430329119767603211914363930130376475576659024727635729065777601271000599164340156062652400682180675331253613922022394707489910180710777514179902106883986458138874608328313206211862020849169461268385005030818965005924760412084364262109717039029690896457493201460325989111170868073308528256902547029496048892273497600183046167189551492053870971265256812406987666229533801587297072159929749204005327388376404529170175710561663372925664427028072028268056234285659667409311709513557098125264570972042998767785923566350873529993416478219833805908097810131470038656028229599613113269882624504948587408738982415825155844612180218138345043911160603892358293379973343966548383836443446414724835929437375984830876050051844668320635215744879136954696990189061436833964660151563916170664817978618198101366817965180640933492690700997084215976926132603559252567899630593233086772381726009184226208158318124658250225556361534218091628714364272744103224093810790111268385175328633464196460950773331855009340264451961198906405230867750986131675913026160694953018139950047677525371970795066068467475447926224307993983271863151669000388993485626636171619417441742224339661022841706440378326436087794947314194851620230221164250332792450288836802802407661743350180091578965391238283922703636305057084171067005241766407907709046074243032315795940161169128517450311499298374333168556769075363164787021406467561421589903212390533187459529471209937159061119435911779954531519153380280180864966337121352072140577489534221012859813752291113325065425252778736922657858602076384890005236975971969237254328446137606757266768811909570030285514154301046005502292620770715409283196695891758453274682327391843653218824811859151033824182068986269904516828014119856278931529597359181492087778860987400642882330146538553103511652495633239872837720250304038355395255569700266911468553684636651733295287943168169363871382768598412605014787444802933121064290999169684501875952803836901854988287563620642392193457111807606295670349849071420707446068862599403254361011154183212925372557841082376751676248914414186228474592693706312619085151532620036313481896052263049331197127460026839841997593211416438122290606543052263128079181529844580956876375341108811536521959648935932035669982529602772816922763992840998003696829388083300097384652776900723056326011054684876311915778077712846374970553503978602527868711907973040489340352679246783969455470367646055105110785805096105572962941792812408363312748446418116226142959145074928511727456024015264441912872286882610146615229326691694623460160426744306338195821538804363485199928262167961675602845346306190301851997098802635195983908174262506993429304949098274214396135694882551550348505024290271522887765259436293301416458654054070257082430227762485647590318088859032057209236779034056706566328351175850196128434153772652028693141393039811969768601648981223893218590116134165834770897257343665607244492672548251645027492322482685814769044793438517679124930126427682685711210647169622949778591526289324199778297362640722981364374828809890364684036550487621824389137555230511316238841190679326374378922265593609686455830362015689848142150938742248918253878172095474684499442024284513590550113730792974473073708975891057803779955941037102700627856945090293060219243887739403881960400068798270686125057014569307891693905292466951684831866421797246850383586913762136781757759826447066106906264856614987770163977247170176497430468571479925187571373839088474489485530556556042066380722091945294205880253255634578992858118205911016949968298496681322437965050244991742963845077317256395991929867150778306390173257160491407014310994636847720231752733093394150351394622547467089623180513808687798488505787827328000116815217076880430872493622103296106711632808173877036498376028600955152223990485901495807144082402266130397242524742162032391394554247964067888515725404786902530136628713091593277951424089064935852733274026155561556328666898001752861435033615389174026805272859877745119070389609883363110329773442455322942319240274476878146526287375464841237055565124680454584334796965784290185037815970058974527884354643265799014546015911290458026281943112431970284761488557371892003051211098035933870452516137587496667928116569936199215473378236728543226892929931923885478603396157680187398874676636241745171650199520212366801886888325653807843254795923160878998530745416680063120286411517425314077770431925147723524422979201130936829541106744335186981193901488726336644931322489599125150700502422256567056496556159997361400178414876472743119088464756370928037109913033949948478576695292886348776753759524343923754391087506473789926119723968215717184652494439720996130273907677331854078581525778593476721868231197530183920551373878030575768396382635026513742124501859198291804749490955463627014049335541361462660323594546724739952258106791546815970289181103406226442677670107212599102264225166776077973702715029268979487474206440576733104467026653833824217367513697594671356034080754342961670303924792363615824337789775137837450875414480805481284648086667697993010217744577787552957283328762105249055714016378153119848913226449164134587438221384349812257121550445280455040625005565720907906190951478132032699767683371734491772509547609760332729584373977138402692373868688791183317335607966426454171722734544581574168656055782487089266414980812010396654654401060922266767037478877910640935256385244659116809060437752953495407993849675281986103385950226836984328625067778429673304804531919406468017321652043717916021122546925715250467493719216582953246504436273998952314327892307494039182621304425574252272335815576174343031163257264837869792084048993406144718846383810430178887430466927091012418842388127552620166853623717302513179706360402199380899809500482605607057631394559221512625655387809349721254088079911532889476727705530601947263177195375422131393555543892860122869558338208763365679197415846483266413198824718093883551889006500681236692573876397555852949657431972782607875749447012575074172035725789002562649287037945950438831839252318177030078587315593344494493256616512797519154260854015534836306979768825234513527647864644801184303569197173485883886702198780773507847298856727474364369242523134174201285125188353127086088412191499237786981801974616236366084712983894921195891192977735200229059871773707865053110625533130386448602594309354453506445896310848377425037484415179292880284266170242660593571767724203629408455225289297646185879263597479983935652595843118400289489223188615762923188867708870368621498895213117841124905590143696648988075206197042834477630713342780169428044047857816403211615406697803379641214430043716041193002308485972738087566522009880206825574671293234435177313655377775060185369088436412308971130101924678189858575602719957173320975262516832320413767243992124218181717152746765150109152024499722531532376519562321995527918067311471462148204398003479153354337070309756846513948425470035171384914946269634581697730877894497016376409281692081279818622412519863382843220096595665959148258776890454315348920952987980384428102527077875113999464446590460855588416721459028510654110359179275065001161912718767715482312458031609624921253012522215130863215516195506809311270609237171965737256803818639533793724672321835287849291932278023384872993885305273447776617697732295646386247273455373469327640839356213336379441986698051801505761169674217904674090970241523731302440089780727790566550842693239954277380831056517667274589799056972616461790604359890830422549307455256025912935168232298451005511107400865451959066045558741043961295259288740109709763547966300826856567603763697970534230792289787685168466191632402462122918456839186021478424049478722574214223046277168080912704159895603031061134127480558290271615289227088849484643419376071133779252364853657019158412367401766206702711348839188618698847012947088772314376346437853580327073850253924263720419674964092612661056491017344276321062366609907456463766965956776481856466018009418357573277868124970214302072354562936526253087588229265959488913674446832823902282589965529963567665020191666928374001774431742109188265086126522236690599035355307124707889794022437836180312942456609334987457187967671798438647108130635916600216056829297710594408543315331560735959198416980421339239878699640143515828473345062376789713910905861469878391931056315613812222990193250155330195135860745680480066011163263124974620164062546392546250225120440001858136050829142678321299100014683680052931029060182612151108799891872355046953055502947306203433310325803965284935319468156094646233143816859592145100481030860986093259845704436617524558587349614679996087363905910885811105163468169341509652708058035763847138743231247393620306912054836442261109798086585466493927191057498314065724634045884185763839304153927295077015920829115474859892406672376941295307720103283348793673102550888051236717408033998589654560573473833508938410900645088720766818760624809831551542085537254496504824057885888044671153309727299827113560662055745810968765192429320862273534982169020266278513427571675377894743216014468771383121986943779744865100547292719339011920622653524522189151608610256482893014331201038257991125117219054245667026408584524249518981279915792269324963488956130336447901034041469458840353007413160342777162998196550225204798589011500242082867864742490500631769745775343034665614314812200389865864895826514590240441868326826136626677632628639778911453119067789280926561299959174118299263593555160012900438265744036428509721735005747472950916742606764253570431828562179972888341074344815901332266057555128265078321669177230872514087172676194676686662928241740731732345022252888026740884557758474480730307097385337703082115930963967438531216591201042918919643217650622695571402680081479491573089498448244755863782134934787206487961469168957656484850994473954050878985316689943838134305664491816586763273964202074549761641441532695626001902693460132416037069060062646359356596270604808333939126817222057563703264679779175702777834717634511097521481743883655966320992362159633452681233283025053633948983269027288577096882060228314332047295400526682058397320003668757639044526403779961099764541921006240565229300557676886430858421063872065561578906884044198927054520367549766810078236710109972773100613586872929937269136566906029060440562171048000181320083406563403450872891958986303461846600679217194495160911145689938776617087139587916449067766859125381210397022025939100430865030853825899566103812517304930558933922680997598814127857196385494184869629200942045890119251152430973448309740877577865708398751304522908358656369287801149977138948942989843601272624029902881068508453841717884116854417041382689955695991224826713330270243562442254850342715041598734667176529714475092426999554594259735131623922557424484938785042801978941991569283992164005268309579226094848751361606078029930078804016472040531407613658320222983936363924300658012399744391339234471818853113157913911474162089767855763756964326837693735304491213206574486471650930789606230137616027101263357376352388405383427727294090308670521091319711457721039142613538514518686886361291710778422009524600544515060248282538028897751394046891822009560194864542798067957609194780756405934600299089173908222910707807641117935833635462113514462785022768260382713498251842302802128760982741896331149017654260963108492799385190005710664160021590420068284686161027600607115738831270071398625630888777845412642665878767991410906233753635668347973918831653593941884560733257099471811258805037735000045787109594754138414108999918526364985120636023291562193961512800664959254933171718211990013468055898206249810539994657705499936574049151022593383273440538393095163347909458550812285354330752520683432278975497715593521835901731257334345240001166384959549518162579847973282790746746988197675935484876657470428955787634373589791557044175444673573588513292803274626697503027303940759925933848718516979432850026211128209894392416136144496357220789626272398041540233462708075267539074395743929614409369219397238747313748284034231356206155654328777978101170048363511433604304175451437004546781435401285036035424632352452212640490665278377452098982738154586207872949402419047506623910509962676291200336898976389911096516163670374235866435116420320974752331752272564280079606402408524904888824345158523538505683923584753719010079914112121895530707215122217443451390387311553329713538444651572922692534484116249622788026197023503203337924451399067930501384614636405318410765589260397736577438080004671715574467261210920095643595997158900656011925722329100961027687984488983069186368182366602701417160663793487044062435489804762552380194057807918801018082505432447311702223481014071923227918570997922056349071905887584952701751736720153202963758282851928493912977410379144877778764468417296856978451395627279333179493942161183255356312855394226633218482733441749768280666194679419243605797555512367022186527414092168445972393014561152941318807805066983899978103606689243397153608003260969391260913252222609543713996409123638418502322814479404349570774938541485693962704476461366025421266829566870356126216118792708520937201381162196069723006121350264450446717903506058419038234173870691328073117804949767851067303306635689072726746845979597027922023530390672422547039483713163373857719959659509020417285901188976536052543518717978382695962263129141411451586397837473609407620020810363515181592670178490451583071752286014334068420736286440047435754177580054173729654107671914007126594767766333643598919536321859170447938241529786958668382651563014640878517910557085297185354715387194498990749421886481340158390578792245097614528633053524192820838277868838766513895569028112971689829983798730161842918175429434108210676744229725438154062592788311255019087532304904450144195242270253656756791944126205027879870856713081889131238809248472542827096500801561441326168858772496865962393555877105257933141027606886589689873941345043594521723235560189736868308118753831790613508023266591653970231531153200121679910151538005339204275231525766007753172710315941191708437574898126287032049406319183941145516333131138549141682760557249340779030784676547923952675457793371146617051313586091319400054252401407626435363874126975036937557342369726070583800121562556065478542067392433936998776484227757002142108964718741842181147152301540872215771355704615126841482732834417313768566995669926265485124266969990058358016761566234258771007680284540937880146279705660257064836390131308602858801544591368025541900337215945279433578309865382367444857842520814909106997135423994004116667426810866909318989313066449718829519009754537163049261968054663001669789181227900014312167391633603298257921557687439039751873234713370862330201073313916517287846727168146485712397610904139937801313412141744065677327260978660488753074744576588384207380496142973392234758728649730319590603876880871812124920162311060427989670187719666099651024706062866963448603900271250905514166100352051003534804875148827374417911550475397417112356338845066456967551809346272799724860501381900367734091846781445187904543677681567007794088170683860719602427613715228278805845100881482908713768056706686691979257122683885184731170132443749795809587045999566443469407064344001748845226213919698986415282341766010109624415779301736240577190118016275624085712602648307643500712847633044651880856637263328273784550994398067031465319071392921862468954887319377009704928078912776975270011898830701123474259736197419996445646634001564674870639241686419815116675369146236832931493876317660554715426571934456397626008346612620902563865405513119271587322332573910665180052206816712070621593686655621361284343540187705833895390411936579187741981889554862520812442321313503148030949203007844449871346803461132622395884980692863953366177398682149049972205298071353188048807276901508110831100558750883076195998055210838574462891303683677275670750071071095528368623371844641610904255148960951498155648998368245915954786785618978624072796984674143195866676523408338922818948546322328348212761685775100919607424557818176794147908928774783417971479873992459898840726277940263880329069376351879589565592628268137398098349106160600067318544851682194779030472556199423809132545911855591015929481899954063266259101496938772554502964611219756599808097049924294639159716015848428595773173668970807854991308975114585480620146436318994230020947554333123964623356219505395288793665587543505930194415602121245646528652420011739417932632713696186087096976045846940705881998682148811293507156020682387364888461160340890188267625620338653608362853255493165419173072102040894536963088384165249100090253042739438839328721452402384725457080596463832460281916637394157330518710300457896656736372024976168798706110874569930741743329266118218970395585429863947007376690726745135754650049472937567864059508183085153681664805064829769423309416391345291169371566738430456974719382609690702811280605135006041533011858063456059480753864121945955023316598422997737969779069698873588613515482321300173149696786199057397724937524992249802383591189305927440990616920007783418881108414343273672445081723247128726333559990948913593641768734709772576402794363387630194168073355035338857991300277789295688469920212623285447123282037028495951778912072571053743376808520819027068381047256234161338108239434155170792270085832496302065753691560046712087265413338514615123397595942551914490791984625814595320198360166170490451214433923339055946650971415901246719764208916399009299011960781698295048464361552622077845335043333541050974552709377545998460002128505181448009583802482053083549001307520408864902017875533337586952180549575560834866875871870943220853057907364027829963916014811289178170868697070163928169787227176246506998883653434668068218988475026651581766029855076614529399638348838264538906495957159240018153234353806597691139378672814245142557395692543928082156300720613552703201142459658334185055620958656396680214489947861625619304533363974944168289630988946303934044307879385731806185973431863006486849245301497335790095294474960111089813958137439791633590938587089113575635479988046750127776312484700443931037910814738486453714617405479193897382013310029793993597740940881350783480544403443147071310668544763684903672048738023873388445001631001889962724873761219343750791838337221972819818139746640935758785102420939562830924035507731899185319199765512193295414551078778288503742377745944996976835398164943193342206032311298968056312792439032863324540582022872500643098350575983854762141403753489488778316380012193714797666711868243133287613788202396852196976895566138088105636933677996357162975193481791968182730110868813487073063829904339580067010652514824482438098899719179085507500030576511858563397127445071447144807930188933579425295762477441942670974587431901470821160149467566821436049903758874669384106246257698940993629608397547047381949506898588807504436769730563119446448470098080014373372672486927518042933819423020518794148825054068698807237096045696149869814626331900804114408624234058723459792571135215768554736569084117255234411043471415127416800709362548555233008078030259691484803265829287663645589563916756889607962475093166271691520408863022948392331521705179632241041435845297365361352722461286532795594650966093101022650313890823859932405026858899057786305528008709381249961045415027887513890801424553219931545523289224910148037266094449375333864141827388337687479911839038588829927049717637972877466973254362098275442950700151397861270790617793857854819822803683764011364751815188374451802471135951288718875258191072753296119357969189411368858408534031857588348001192083558250620482498275738565000438691119638058373656226633149623691550571240260554250613228033621948757696928242650274035082221748631932589157156283113983441966406576371608455929962925356696748696050739738521801370784882987959000591962634601666067230344359064887852723226802013435812236850830466598428362416070066749605992203662459485795893270407690261305157676704980675304993655546132765636397895962683282412043587248864232940186357859875560528331257361287831953142456381209714550589741237516717629682992067980959431199445843839701219325301279027227150596131838817129608138499725591278557828704295310849607268852427881774616747204462971656450161785324735199552295620747432257728205101926083754951761170442832984927255140327231445212841825109729839032393516126986317497605283368663299789374671321475437216690227000193895388511645149020719033339605757636274704654905375826963264922133353657068366781120615091787930718871960189229670310217329576505596240529928052592465038534993414978226615115768224808594764333463562801043086141575505185155769022601753718909889750955286836491080797823525275193109625303464169940407376289725134239817509107249050376700994899381467551228972768353480643084602213103478907169388273308911667664765127354790684661163118769829997012784383796199368217044364431750331606754161700422967846258879280721848540443751428173731769616466651687003073949323075049290262265398100267031015745383972705673438204274968276581905721526248778235716434331794540652904598008779136078281905738717360990526230819978438734581760110711342795701658927311540927883043917993363008732840317627700405911579632177686177217400140184756685116828568593853611565357534358757386832486919481742879212372543176483628832556068590758290690618400079359853689492216406142982874523027701597820216199095449686380037985949856198688145349461274629452312268424345235134481602970994161141305048314288850167378214000055655119413738152439861386413475563059788593890317407008419356320167833229440934628720108926652212572361231552804534286974327533842059911951071680752029646788573400907967460973869073098444384106333430148042988923214872499967130816998933217762834599066442465382439355392548124746113239195280538898979195370448202050307052836416922802884052749704568153205860408956833372476624365874898991390821784842949678743025875289100753845250175001186421270873065847304704829031444615393199688894957358452784059692507400420170154739869777105078622177927301895749080222998316794775489869523807652952169051598253354588769292095921797783411548969105934622994662547950880058442163761615060613362613655998885949921218852669491850608199318880461621456278735903975575312645535367446890490712382322236231045869307546713600156531191349595796908459604047727614056066901533440538950964767464402429674353972064851790139858181479411659568308304636871697892352149423902451205442839622106189813583598973386109843699631352827364395105989487343358436705506490879716761427322569843948070463417906884621591495223830171714849540626333252769241124231842736082599640109256305912098565768325301823405312631701086373750284641821935532922135516328965559063690512702405413548829635857379868318043629244374577338918247226146871907420296710149044534059861802459894602183173682265785158413520506848972068354493605827015199735923021490655924393670609903574406372383903934211755517484124000811660538636203955152710634582329198803524990650619615974188596620233929525708335670053221088924275648414120316693008206931434275425998212039153562287599646429619703829743691418014200814453717560323285524682702896228279275335259019489217433055187100229391486926658971641138757543302305241521815719892155143569624971917753310056488243427297148969683803951116620444473336903278578993928017853389529779500065779221482458243053631269843818686364947396841272503198087832379330010234188013674658062430848936346613273653850139932043174946039612701530046294588359103081477558149862932656520896744913243175223177862960387473297336010230150953377493276075738779268298661691521770786953524003410366261835712137164366481288993779785056045486726675549478019273204496535208239256589125875573251821083155167414372951154949602396009247700861178589696805289306131026606562804824409693374176151647372119687717637981494579434474340225271747620102669981739839246220150708478293830960131961476727968526064315634509098891759095476627456744905118626066822187879923098725499071404973729551431187774986615283352841770057002952381666783057373397492411026959006235762808323798504748387327384634793461409394132463649657524023490722312797269717299125686289502558969015116683016129441136649147705085625317138916273115214871955970278369409173804725258388881546886581125259480607048631119707002833244146957241667334337400501901668162631099059393722048998557021355568719073703801288118839991645042594271988978314982326387091100716231959117017293199043029000589289053420451083687311931489545893951542674631055110221550905147727580865827878088588700694102443266668719924048256665799089879990110287630670887185266212653251408659273606699809852153102862597299448742716013498305676804011301704545751496257187481938989528430452640615981882212562521687790327100955686922583342737086734858311923632241023484882545762024599343675421404277276250577810494319116006489679908670097188114717102755156598725595407349704537330141112862143651639576739966949475129735202147177806182325473070148548777484594060179704064911890734948928699441755228892368942740610403304495723183830390055902883463861197950990830564310840557448649160137287638091891594797406527898026854904911536718818574385296776333205082520309011423784732980302037380967787202244155046787138806836094508852443397469436285831940935387238617615167695348841975500263150539419667696153096157961806741909890364615157671798426732154677103909398767282234022893227652714351898672689133703020261060387383394288023271760870512496640668304691125176696889383757904210082042023556751949471105810340345826162382614020894926804356721889695136461675676561726272875007711968226345470060130475256850685153437641010196689211041362070122838298021237164645659920836892951611262101634226203171220731791339845413815606913186570601817720328770844049603908084149474918005113139829635535055850736005089245179325314144193666318950711975554341642478710133528780359482710463129211920190848582545070163905940723124830207566074853975218267667403503998843102570726482253320344573013785381189487446894241294267127000281090726328401382879789054381900048309806917826589783304493544088596722921309581965332084136923461725436445607710822776426417387587729147166792943145994175537681580686594875522780962947299210926530127322166741931283526483157782696929752109196625085680530660903442187044300512804513450346220702960107633077218228256417908828313333889976554055489167145055808043992464351333702333283644423767297695927107029005441370276506016415939780873420007632421275823582499445932848596788953533620742175212589676402768281694000399173700294162720168482374282825981732853157158479472341503758778673836495194749481138854138249691998007868458365607194151496503820092398018674667420361531316763060233242936023960030663098524972687271831901336253723430314829024887020327595663396332062308836737588477479642394631984727657524157656685465996411174990465913491906330389717709064663690018555413111682231155772580614727399359378179370229533377494672231179917939708295476429993822692439716482228990946118359796236233590400770749810163547280907976885610067232282868076535029189573374964156924167729141926859742108030429490122053368246903916904904318975536147246504721769777503685071809439318775437320128895833683100216059669299690011840862492027363940908502868904046483201609054045330963260841005823926051254828266043077432894825205017729563406551693463258404013926532155066709446992472506125407002886068730378413350600058856802586794353385716688092618989670008333663777041301423343124604193994610272826150273782855671793720217765142361907572065264118574435674626055195430579025405836067934446179519228628649111616817283382140012830695286242501283881861549883743310433604263778842840365201870187626836710458021745155279286249420633917924937585298453059803210361660879838944703421811272392776034052441135750977934548261505059251795642152228378216693719495234090252885857524932154814903776771827949267160298100551888383950543344567526918833338252156803405669579207536732741666629441953646498419939358335919268789823182600662981736679759080178993545651384367340064425122566936312756247777987230317816686413070732436369212410345200133005802096068545856116788034958952848534776166782557042456154506636823852303783881446347975333289252300870117283686790164506625796819166868882526176053806059173723856159942262632834551052062240270468655443828621441306514860882202334699376748588356827231468627312311999070257273675527921149546101453014760989316815307524728421634509993583717276603500291091709577730293823445855031093662261272672536798678220951737694993099138726553311206526048835671097241106554779231651263426157321640077363340602743056103057633511138149484227342914085998588041287786456624869625569225187458629563215057179010647595879987580340158174888375772838156796032523486451471577802317655383935907886099856883123145892959258768627398373609406253705165839610097720259548477015262217334115911369542483429542388484343884597318120276929082232364400599664378103513422212355490370214334303203591370297923557412676088379799150685787779828281970167427122892177867908922570603093013280850863608527043806356058150645620635378899331960473314232588448499117569288272801826176032816174367697905317054069175841540178204301615622860448656842602481390962078334942106600444990490345821170131371253248695127685317108156380528197908597891289325639697943814457913743103554541074020068109081481472983536750862893789135980196736626976849893380675622167917223635105501994253205375628333198710828697472309772309496826249723146859376185190551315650798876695500886130554663784657941361733136051957945400699336473849049685355946023730385202132493015358270819472238082985360124336898914784772603003963345090139247261617086205257028726059323492090789534371222001833992792553530972287273915730164445480325172603949499751081274478610319565547116224237340625273502711894594319179673618334671099450001495286602938858084274366740861403708338624624350621250778876546827689975529002411657655238487391747535635299935234001623222130397740000949538082170079633221892867126362878292620828427322822199686395149515681791730427148048977129817335920767722360811410155568151674028697780233730438813224224966429645118045780353519897907796675042150955163918726410935443233696325403095903995001311175200391558557703736364751735259282053169089092810523393105041831323664682723707858060831549102556258724683461038482065734408318998747430091819825095118273304388298062181927816821835250217963202021781774331153216503193853845359977473643201079546931250400398798234226668686254626749791867156352123462899455106562109445088643757985592136179157875985662981121397540134308508111173531021531720012087534792861356763532337498814852889795623095496571930041142132868087137851657926275081796027584632086685363263203911820186157303259893935872409980984393811063604220867483733817423061127264811148762862348658273023256889089475914895730878105739413217346258457137447586064793094607098148048076454717751882238504020683482225160118735557282085572536549822963793267154041917756292134149198422356460712990578456235317597968710859476951099583412964618584870723920827899363624801931079646876446674469335873323059766536029890225494299394373689552498215329854814047825644927484889643106099677586112888703374554767755787683883370320293535595959705809846449242633256840887915404449489681634889167642597756313846782247699313360944518716284812956160041735577756197870159986587543672768382381500422204924383459129021445081212175492012490027500135196260313807314989375686612164126731570850986637596361685304832240707876682557715795834236131244012233951966374397190210172077703898453660754469916678935362740268981774975085129713930697481589945725151235612742836236682524880974150665442012760095278503145460734863096777964564630027834998461174429392207222459130831567559229388494007844434234319327405070225318060486346466930736573240183282514636671513443499460275541521544283837792820116914127212169644821319866853301542253657379343228171800219345805316545405557203811693733330891644058125266289994003015457307164819645452995545275833124954393860154735126564545239556836666686564396029259120957804249356809683443453192417386447838349582727046047270256171903443992948257082632588140995776056536898059303353518650444328558305034055615053648726806288764543135715064324628067378638382715679095683553587911069118697164084310424135802804164505015097351903340470863564271172652665815629980340500661821421677866487138724711843061653890349000678878898702258531345551856650381625003865033810150024489206602699626540252640178368250815865887347998910696119815376417254383927757135483329928854883117693567689162701355006165060179227115444539753372380343876301974209119624700111925394866764583919080597542907025468044786874461501076789981237560423883067128097141574515082319512668979978697687262645185460399363762554314436572380024501121337519491943436630905733721931037917462216202185287216603003366047371305687691523571582669042953142112293951754247538080696925196555563969764567625546222898712185211719725092229982993956114662699338507208423207036409646352057852990152804327967061558637699201939594342143999625138361124440114011377795866378775146050852312256712662948048193113896665342400358688655170471310887425530985298685308587066858721765382098686930289600745418264163495674928895903145451551626074885243187261918077970498727080851320114694492073550747472170246487078858600929026926271206795584648598000443836722782112952747131296368466568608439721512163827310112733714364895019877825748834137850786988672806267768291404391999239809376795643567208334675734865646303599501807438506658796954395060354989230121046792513034634932980674437626449818670657881009201392794425772193447816750999228389429003021563098858693801747262654438598772590255569708841907739064021735865420717398738698852844221000131890065659628235025167040624431911080781362392424936464760024258919709429820412194740368466757695346441973853972994513946146408124402696577406967178607692364085713240665609441195053244932662803364894499651164948127564480949106257360398663596336968640569926819733952313419198535963987036060088774688410730600152864009841159886740462453226377021581700378845560081367203104929360018129255898574172617184344958525640596976140608865820145166090814207124891939704932177451393091796174507236144095495863171110825528238029253245035737725059045448755304086022165078478068643825280069859369219533827359326644404667592484869735352061079996865544760877896212613153114456403924778953117142057736823419407246464341188208527925496770777189098459103235945385424841083385878657006476703557606642705810069491359955160272773344124446935625723214106346831827234232880151913011824874641672303822857268250308886383409771587939392425277353779547375370756952238393341531144800207898120214645299217250308050214470147031816617790879547787322828653928361894234960909299465854854600465748471041303853296188874208672629264323982684359091477922374804162590185975325656678040507250653564704987429110533640518267211652267627147846716028022335390174207227426795102880625475931885978379351229103440309329747011084742339054520574170172176524748430009309038556653738689205549777797654450722192007735694172072722251168739058469243401899365826769343378534728597449351070752470440042740484011457609079751168492174037683347550386359688687833660600575894204225515708765902032810240270940501448908475397182847996780681001837408176769846849437592427624977547349537734195222367016371669490654202635496220345715663257313296363463035235675152603136170270966748404656466035731461777204887065777117264552557368765609440240745836186825383950853664002176000260355853953318236678000655275180671490717967011977424639892953697828487761756882034460127025080712429438315767406759904608377192423284799505316127535861575513665370619704085870071533406403022612325572291795748796653510973749647880735372246952040560177333009550603827362826160427492729964038750952987701496310118374981949624075365602458574954882881484215154045006977014490041073640099266740179655909135693292630479244979057109838661865061256175313607618724273741618180520699043437573190464099637194179697658161837375120707262422665901033845484258807219849985695713850083413171448506124034010864300334328011105605030246410886776970054665701504802591113164552285619045933534200262137556726827760331558858095569754484304861654905183011978498212510271692447257601040192763957309741961098037729378683734196372564751399100751519975483133948802531436048659775199351871906771768117027851702518620768699425224417444156245590685820434207289515951859065056058371232510746824656595378194135305927412730835627974522731182923448757382024776414306473677307066344404380911095547635887462849020782078733560786494909452302698747178941652837543538128584803638014163342643071599118137086786175536765967912284547818783941731102078413530437555422044654096921475467018053828122904540749751969389053048074199386360857214797409434354145361235206141735388902735722220489108935386434892508802336839171249504172467514912546893094775138454189415711042217929265962750665151188467010292332374247024211498206404317415988779773775683219988727087446523966254696112035485247650885008580209911839058572742740052145944561029139497969651388274793734065798427680880434350429871601814211547084688180450094553422954822089684653498546155870863203704375547256375331680413456319941284580530037582446056834721254995961004898407432360739475474445339009951930832765164978732809951497332110856818394696615662751826977621928873540688144167401573445711951975368071199693802089117375296166789589801260155448613044958594705028225363242398792710530577815109352373356477037814831188605550324612836734543036067375113316885158796392764175241827113212995533082322867124513256285117559862382949857822051526109982563344006944609414663007878432682293636862300143501765462704687121659872109701766837655841001724125527775507502594203287898987183509190447752394500008163621916207804063660607873386370783775849810199486140960703047637147543523232393564921803463225129531937322886162810069500126448934167697778814103770285918944924803304972527739378190339934643748107887157164302103222004412773161717214569976435373952544531603900148512183455007208477676419011929226024379509719550941283250015995027689321433074465774634516965790800945916215492427220634084050097199163214922681668109874983351901811163456142224283628266499116869236636593417269897602329778365147039510458288733839372897376340161382398714583842469336621120711720083864531979432266065943664214414666645101121915129529812900024920376365612190823664446267803709573116854066394164190594147707201301627197021004877662020573107565140144243099463053181929172740527492780301842833881976960969474531536272047996525282469409458581434854527151554155283810314377740069362953934599095922544871067936213283112889526835690824875954942471157833876817967439856855919060766669647808671397854878649128684707079583048759094862742188489692235954544711514866602931250534641310071683487488414681821401780115056013244111956001978140287804238690632886344035273069307974849954220476772173308986466564472542526545658351937603997855248425149630810730627367694430527087286047731395105288279083163372034241403582769396092809630214038958061112912422313271546005700059137667959971061879218239116700225107307481276010933274796059051900977980311310882847601163245204493440052882780031190103650395501676104282999998412383285541079708972459535529278450419732047636570372250775247367374790330043321061043356938798877485905467588749596351560197243291758334000173872200746429966575630326630545912089542989275020338466743776118082357894697209228799583613169507464703108701577377393223060427077669886857761594860061317216723753861346731296560734591234376616442664837322278476446503661913596229526726742178898613061411785097020396534703111705755303503291250312230060786313950989873433725967664045368346593133610035052768668183492162441148894835555920612746573406650166711909656267353703348907813378612680428242000708357463395796754990670609851086874900513232750236736206597948139177390775040130250965971358759680463497189089165100895525691684296031570105819615783274001427134457014521664184150815476682428798134026803777585683936448555238343816990597792577109349084933582187863426514942289406258145004639259280467068277451397269337088154583722213267043811582185761305862716079936573768746513163034888949893276936390298477195816021809341342266674018207510583655104823263095524645874453150893831019808258766862579303507334105760756099507335093016351265951769235635501198040710246044180326614463738096847444117536514149268212018484767700739408469425160203576779732806460708410112302629143739603222483024557276132707361846823339206075483102148695278949627699126251262470466578877439226883853692281852604274887182960113858238554449676613377876691384097201454985267041409363886023033702147652655130787173681053524872863615638806527488304013967651053125244424614782765547691192384126855877420974362435119912224058797023376882261714165187211144827710453465794566959018396920440030530581447263263330524578943918701854463000386646235918695749626005700704416022649521153226703229692732809879261072723852402824219693131012843293420086234965348571067924993375358176273286003547612676563309762057792845686987302346037042107103010781761517930616394819165565695404885696123001579805168275942964570538401891118387347041888230403371487761108083690977310134719058497649307091719802776701581178321230302665074063100697978452981405192847299702583520442118232013514948276148551628100566097745382256873911438643494466012293336111508682706372378650766676553194718610509293832754872913401572854685961830896206484670686519339123483923237047143955257590916920318933329231622711860887344693250176678305775975724867966907428823550368988805103825501958335538162627746559248241144961874694168003807316291836072468417355444604655129949530484142663505965889095630442700807327186208911851514838065717475809270075909753477969195784495722579574255929553469417046183266153155694741965786472195196455847352768170713456097920273956812460241648835985592635959739507945441335990902748576163222462385475814652859034316719584989194597036353146962130274653011069451287825670105597762187783440990880930248093194513737783667027521380229208247059641223325678200440475693479673474641993375232979034029369450519564603676219016056882519665049753101668048205403268570958519740059950925695242670936663194867507913526413052885056178900480092338490381405738521845886922030474931466404555437585174112578888658122818712699820777767821372289384333892175735170273958757803187746279487055241220209977338059422886022484177533451865130545211871735614349365437017180925889642410101829037890963539696554276566120380914330895303019780758164833417767022368370427509692370064107374466435259532194262310058575664434646838856651047625110581852199967798382519814111481856588912132945413555931999323564060105929039041135688758068961249942870523960403623648239261698918949206708679381899663709864865411334632038771408791924147611230313401183420077361313425742928344061443556706853034361754013134611182702408736020587395553703378916932490909860002390885141865448703691100226257479388213599392416782318470771297778378651484501921155025835154260435733595964909008787081514910645363703053424221436543839259188867261634549525109080423471474771276131036947041205208437357416570898763039759399304133251030521954326747783760749105193737350945418241637357163680484749180708771507487325836985263209280321992119152032690582234316834025199472560905712315498537445387392972986232777158391754729935426974918274743782906218810644298465270502590775663992985025581092834509366786647725706394550342896398561178250270258736487895719963806226060279200425200718799610004492861417156466490922986173079076228481020803790137125689205594446000134156859552486388807476856393247517570406310376535530675515369691398287397193703702359715836661258842780269636194213494415555526327830827010820531126936556760115572240632357875638939295835147963649028400906382070307383309360679513160166020188207853183339055531426179568340783400597254384297608284968628374788880437709256510470158837363650476971781956543433574834999658643692166546595667743221806468615086408857082643821993580878683292765550147235016536315815218869323497699666314438408000462230608284550957555797438113512963565504108068549433940879343445457087437656777619754176093717085904739912741592839145717585454154888214996368316595317809189044093245213751517632492929098821155778666311392990544999659553193385471479927691351275195077093646438228522672783437061780917191667334456688143837590547357533379121517993011944829738632992073342717936794829060578998524989414056191056448711175246699598684268459933985342173960339298138060012629851484286726734519550203102640332472789142857313883726876541746755204312884973026628131839705950767724337799435220453409904552985240616741235300872282143831855523800083153216892637544883656889010539115114982872105714719586971159273133776016177209290122236582042449104901833175845872837852379140659539680207436680918244236948747600568397653215693766440145583950897646115015478678907667528642284093928385774823198496088182809180373632194968095583464123308533493101235057760972530232251408813445761367047223429809436098776578491196943918409315368477588932007121871144037863078579081183329821253226198522560721345076172510515588713614256339771463593515938153092728243627682389861594923495487729641632969428141981056183847320776955313811392513450985211099180086273785373804347769227100878015573148551591718344412398473423554871084417521011927506257154981004312279346478601256555076445216281029927567421394110508858299836298463436878236796011847935355179543062062243703331599429936956147051913405716639093230853973029082903316687304498938594519253926440501616524923711697206358111487350810969063321845158608825683861879709289347345182391377941274080393505197260600734549362738698634349574205497387007885504012064325204536453225162130538402597820564019034896518884830054470794390108635567598869269603951519844616038411102407238427891456360343947120754153825809251358132392031805306085742775570677478965584298584079978238982381452291989207445944716200845171979569478423360572465782771271967257248793653972838535937925033416155997379706282614158324574435702620043417764593142818014389318629482347714203888419313902953957104969984899571154870585176163686455455699271428234205157925967448758728556789726697601272710432982809229216462283184729814844030879142890321705354476151502309064361416802496267219615793115305991636019389279466152950817887765820991648384357020066491826447399162723659032937866406782508902227680485225824993724853101059293966977200418225575499333170494893605349769009907478326234171344711164264865317311626703344923317683944479827656224149376822004965214303253461590844038648514881337640264947757195056320356248594068680133293869579290803819669392473161914574084429787789192473040374278057916893424636568645570590680157892771727391187824135764328270964704471084402482304450987205884516350298916949646034449027750103248936855573672380709524292645736530072621790943241585477860729489800149269515401379098935247953286261782846962683689032088937554309309255247762995185124924293762571518543325516022410466675500222885948429695527198953588162330472488417090597952593435365058325446547102343800737704465388355072131875234999618378838172821177709594737515093397554620400812520910168947978262660214169885650267339563569489590015927459368576325261904001969440581525922162250644718697347810075865163997989839497891279633744775920363560598265102362103150362246816309252097162362820964044592677337066449243331923058329889008897335918540807175122861553078925060899817048520003347484326067768337539765936597996121294840263699125940473307499187705351421125510097081727868978409439303646416718666667954944316119166489023715825579900436047511656304777690626546181693285664429950874707399373279594152672504416567047661028368289736616342370116491677604768776636412604462279149084879576520556824512051601130763848901561042366965722800339957587629674355062358569511014491484909711430905370560089238534918627595833196177742493037746899868480115217617069414422003124239844371374186308548442107907516944232400643094754039636645479751796316737392017122499683075132426653903872114160848935489822820564464895497107773294225419465399741860012737681281706924717128324413669163503456166811038508017930077262105973168012889254256259449462038501895529131469579337019376135226223843349769742881210057673339585941369770452586114614036293835333638727324516674117571800141565158175664535462212337706957279991729713829332692021463015724412768826563640561601940180273643885263524259065011244922510288041662694198102271334452299788951190780531066893257763617318836708306120702202423288961870390483952375915337133007114582354081184426320181661984303530962165388628185665081186045258454280141597917985532665842547858202746811776895074055696105109667624173248892511840055645347781594315067626182258713006248767689415962680752796162237139460004732115093092290523411973344591910112184406863828681641637756776216456570816447659120167008295891961906171919176417175161255947480595619068747542879176000931474032548660275474637918854443699731169572220595617921319187430877332088664874189797710637859158801056573805925255617540215168912374053992005596885388895276119462137446196081795036645404669043059486176412968703878309686966355662522445564709063782559503716262541417414158248375340887651210548768078375904400111694369671193964038571642117137541713351419673501492824196457755400099528094037380007224687363655664289837648811716908103410439007840234858790430794322780764522789170998477479115616685957974667112429559328144355421922965626060052512042220035868820146518899805239106432465238991608824782639122957183094685406032979943117479694783388603609686944869138393118551287992413111421808682347308082731331464728546590929788694689238311677068838098472955857738185531116346034720897932209551651603308821857897323959288260380741326596081212369690537125135939716671230694631651136860689856073683143559627546335628121557345786134216901762114785091062805148867343825177335631669886194688339921972634137262983296063688198379645678966447022288736834562301236926946305746774900998346206069969398257973456437690425945732311118986081801584079744711754634007191876517473368790767786791911869849841372324751171169219155853799740800541533089808078829495068645055622003023004431528538070597270980555953708069114218121859725214767230878769043899509122825853293973169303121454067006301267245026975318212454040054188159367560768534407136677269199337802163479866129201184883745156196859122058314181672531349151089540746961487495167752086583645999006349412367342745524804909609066587626031145552299974291134841801278804337813980019508449884696754632082702841768847983152717319501654132356631721411354102185652401112958661437085322735120735640478810455895907114775251838524036716632695302083265746381235074037027247981477350474168544698399268081880514163083490210003796644391709799463556364771438330960428004626621304305552137860829047471340410666252330875919395627618718537599014383525867864985306781637729320526902740346934091840863018438626185412626724649964382923846147077490960388002428556247622803238479374092247081580713838531077185846156955289885696608902859221469180829347719876538316177302531479675745923375906138518151990383029989747582399008559751272528639208427364703760579861044497680349445789310908060099097909267043654756139336034995843005552575635709376811398603603005017719568683464836368576690956903890521296563556262362442218074266590390007578461508306308686710794432236152158170804851284670719419402073278904201390150729382719522191043101327773847203320526759928658586091549300266344286073339119553520881324810247644571631373631130988012575202377571543208400316612116839775207557627996686328286192269508821946983160154900466995472321003674970693724669333016514342950524594132134397893711852890208478084061177520777366662296927716291015533077254672669439367026948751039596427653704413920761380960691898217776932240278810188348924418078762180028623288248932429118076173685312871424104001071200018965622955714986352027808421791995308370644471795077575813245181194506939025949490761015706922665277492103083361055184673190046134443431446139268406810676666752734076779025927410659756872483460082011851369299039917659658957950819421932322804774595794126243034917398110641234466839535367558408016772731365880483333157663451398459295765643873584446230330220524188403155042454679756041663802043457789427040902608207280705118145332611357171360013712969995043548066682304922075559894692235867145362079299058113541872553933154474905296995578397232742125364956711695585713460245356601829024389768442946595237381183826225897842203674977595028204299752079737810794841715717990189415318587575413012135838231081515250534487506868576503346604461336567321263473281247014281856313270824982589119205317906328346959044765305378551819350847804002668808689361222590895109014865578822001141876910424577704026980163487454217765594915364259345853195695758540827966352820584419828467297183634974119627289272586317563675650181777534193740394049648067907220913407732708967814940145853032586941087024740305103913982053613658331713151466946711066462333872172435730091857694974946807074705342119840666460539217315935361791292774733028302735678539499817983444252951416022255611456633167972804994777680597175934838942796973843436085390776317931965495041298314333728980622502657875513652497659278665844549376364337506529981652766476057029034533276405544228964675300489966703334755258430707557316346722204489410267767774631717211488302500480938207842493121440256207156448912323351796796477152515383261915695038212091140802545006324132213779043768782106272042919811451225376246036225765783496344405654289307312272228918862046959927639864489742975983993007075025475179445904493216816336163549050815974216509485042965844066281377680897812168735966512308084821922681562248764718752397787955104984212440516367172026227036104989918876075648556987907406917954036148151031175137015541578513581170335855821877394610228416284334945214284374238671408696787420077053810340510212364530358037534475254253172607666479938603332114724303077411661566914109652381287701855910534464083845988667775075863062612892717087244515667842692385443614062924720554166707907985602488191450635898406912162820270058068655209933405533267511967374828936633794260848205841156648252736809443120715595095774383593382466917216937029333535411992182344341390544091877249022138896552563062101316084020858101819194436412573295496994450267514098131018043818308418043733769234868350414551791983119676406543692469906339382796447648277174626072110194062089277584576227303622213808052335494856032074261521392391464588083247362091079956614240844891594226537867891587037590920121014720962810097503684161672152105450586589097577582863251052482412267679164989513784483708059095191605133863172291432217622795991562224676032379606777427460654161457722927424025512355837247219693716947179004774740399475669177277460341893534044862280435904183444161151740773910711539388901678498147820146682779685309632221772037352116975789923517841432837300540559329739708170201630000538465919728658501035294726851893437043723649129984323722381799940725534550205742027566550611437696713753464609821969248589986501936043788607086808274872494589748002978033133238554912390976626283690248945096356383137239341243007035750107500632190151758344784003361938770681905287685279075782952463225004766961353168352726295483314321611687933364890204130972844354807622786240754856800365004252243723205810033608694061660899507776478290532669349778610266418966500224708270308671294354734834085714363437338165629583056301407966392193331860415331007030378633974057575084822988001213955575893186726599728058475961039605302264251552481207915035521536234253353737008442824725584548289928664401498163936604252477852518344078879685577139595184803397799729822050612117602692935040558374194425669322073616405776091034833561031233212400127644876887750355720280005203219674246990183846236936815100067065782229357321311908949488456783088878343156575721642946749710871652799746651942187643911139082050684801329577015468202502802794819964463392959836799260392632912574161765509735535217217594276253342429711653144753117162070069236347321542426186236224976405845533599924959040779802781854135209215515658252084127458943557184774461161373289798649684960038908953849603301701567461323610366055388392082788766493960590392915867052135420243502220878477004801941141043334343168212272799544121034481389512572914985483377815416725421437941118312790761012833922199779252411964115907333581604835598760242639729005964737998239072992208151067603679553870690433845804411242402347739542017458126469338956521814858076189410410627491958968268209534975695165658550131849598633970803838292553829407831165072053375041093336093647722878905095616651153619653445937800149829732134041592177004979897228260326200724947138243927884180720123429101066831373951743788450203230879388474568787527351740446919181160286995004272331970756070938754424562330793061752972481018541555768226844755969047193523087694938725683390838427923232976661435996659848575835953218476871552012363635819748411151713830549786969783099934196919039760828264125661316511771773952872812276979075290915895604121375117885404754945626541685857415395652747903686329881194537825414835353266427999045295970525662385430126792918348197540555271206511300781761726692286357984626834958264700186823480662054298342126769349699614780088896815101270652484940683834861289415504759032831790229063411450958886346534223380097906172278145797246678432423524944413620789241971456295891696350655163118887178407785579292344848490254487279622648964842916796216675123512590579575080001055192403429084288709602977798430402249794161246738848016958826644543601070947184191183823059357370274776874138290319996652408986237787460548887946417182695572277505442011627313983087645974523908525585374982644538953100681602386095561523873370426698400734571388479363223524195162308351803302726731199046138656450019551898252188513084890202085825524984036079529144493694120336220550607237349789335259775404140362185174266816472204206691903834781240573372806492462196112524599901481307591437952159410353808582038586632164169213837839986402359786731717210866372720031880417300339222983983661226489093843674559521427723915199602645753575349866157550788386531541418824174253230517734827077278032100189661819797669579075394704228227494141052827459884470960505588826587663745230527918679900173591938632046697290601282272139861961732182974383544284830807136532741687373434090515396196187344388204875102055578431836340353396252343185857837682241499586099781261303545508456969861157074488043496441826728978846313368601923390539134742636233284034203034853319398915590054584450400551954434129914082329917292743741116558822732760742479587702878645297490381529452086635604734620069655741841708003020731969889252623090953837274279731691192151565500675109118055702069064130112915259798093576903323554030712134347775987596934360322780627789228243082760386520390988337176022667128708917393245943858766844425018081316055318564053721924910644580575401300536060377677273028466999703064830945016510323328712342226059782922837552718373576770051317558729736246061203276071674766059095296700125772283436036158311073603924103457350689549613695019164969678523219813656139709930397005998594927274774002635569736105756768015406998480868019431889781636923258520799661196128782975122925057704111214007748690484198424593280932634014549008105026189626845513544354145220094065546342415401955394506311122917825344753195920069432713238043389389085170676602010017959134214233654475834426092223571629933805131459339352668630491374159483293192372077691871907264580771657521602555886427732398566716681790497498778263847237599084860289158476814664566503316104129153743503805748116200872238899124820046326999074073281353929545159410205170773978195726785745488621291943423980176647601245389085521920958428116512790104689679534677015387018853472546422894418486391296024535113437423289300089491560873557790530253238602986290818119930008170661331495464330520556741057032350041004643492061694681663764935824373866016337402807947382312044383714682925992362975364002276569240699013314604147383013001228359688451314996514048186772699659897249396339334754074353095646327100150396567066111995566572434140696093467171029550459927447419594789311021944122076926674051826817190167497140596268729621103213861609550205309080398858447715766157565305184726734046820665326259111990179874982731312324198892433536298627832110554718290180315765758892546760065923046553254190603028566196105501616392155381355814813427868225602909061318008386773125720816436010960274650317119016979394513121953215647177450146063327006048974366283594135570090665355177538945931495722058850128465964476644683331158246319054814303971330020106532444957372698505127943967465275843279192405655797914119580874251282217438233524327692551607870728815264343500888642057654081664669493126252276570293579477620377622944266177869137498540760332382076827363448494490209432559351464485601623938663124920040941311226176683397183158098380599338729791001052611664446935671179776741239545560447021219157223956746896595735726437774600190968063871844641309740444389635194276527108934551876270896915292991110105510664700819872063004687385576753981206577187498136539901544913666573225699999509225496932312762221399872918707289659408833385885877740111143855968500657195051629008671665981128142309762334149748181324272845506126159979942498575018102439380222207438074118532140044839580553886200283941997359071181308885085263723835327796292027357216263692379815896900863405094140230232912683054482522856536756053265617363893581283954815714401887556292283775819018176593101550911903062813876816282364699616443294920905781752515754712086008062212631741019495293139895270190466286139401671226597230874472692903804048129275581451408341853640544429764445067690141171111000637456055715343220128590722674988554777669779861345107804602235571054344509080193437202471329545871365622986376228000351553882256169711877597627675584419891456513588382022306581396003571724003346368369001340099666190639118664214106838102844010304775564848500338220948445070457640359721705151998684765343134301984329395319975315315703270664372898348299561039078396214252964066360273392023506107009214160946501718557678593754756152943904883169142452870903764764769252951972120034849702901610309680270822669892580163495730871302384156002946904296569469831342898291873901569267672397579731852194622441335502787817193614751572619139662041748702195836656106571947056484737856789138266125362579481626592291570067718422568203365975129294359392808010024436447197483098689121336827757151092021440306865913084953842134954833080131351714640024993588836810493004258914516797971226488289993906278456763847721049379144703625745033402464241662267917642101267698926137911085130727688013118941135316919813804124249780238144288378732653800930172784038667274954278542506815169388796825001671651133191691535250594260148352715146333592064224808176053999182629782527700261650330578934963043250964111035515058686141150630894058062319081655146439383530678545452739561019035951436022678580543302183654933422421408851521162449456281074755006639910412173933404889144730486588639314749369465041152490821246080444507215905350916350635084429053758940894895584373641750127979166910358598347873093176299721579433352510009289436493230720441665824995465036201307811682502705763345858756074765062190221316780833337046924888371712529479491102028151519175953379128344973313653273640438508061045989489146355111660261468428343376882451608617107615086939393862220806620520295832432682828174608737806568480209118000608436563654614968901480381242332540803854541676858956168338366166346536683512710697497936841034499691271930324031623512560593802187353036954077010792218200606220338626540652768060558105299792344687391606205040983448345758386971975127570337460496453374744186082784291797920481124389109361226698460761238153236604029320391631575512417288459020521886944418827022116837070389708789298759900027098000705863830795103461089227839297979053667132191323662746601821169724188018908576750560625200098022019967500798866598436113701650198164299289155236235937982078225678626377468789951577107880484895435188156076708893072606111998626515651947404019515400464528908030989558719980625159391051765790823415662135195701952887680816425127638128265756945116676181488943664301885161584628366787549213066520127842249506373801212427263194555857128114132437680868664019499588023248222154026431270992313973120671491179712796485525855408685145464163348669206145157149649288590898803562435370252574174373540613672061497225511891454234405279613433238353675230855816165228061415483432116913066600074164117300615616264799552681009136604712173283843825280532140645764156038612212789241975377034238842383624167925371552384190061204030109847071201399230776427481462130667021976865176270273475898792676899356947769898856578565121487113637434465341862284602510862170443983456718065918054438447437982559494459066829961605712164333590297594137157066131146410660912837124523177410358108252450262160139675200414928279764449551795850704725539620686553045978803492661277089368406606779971729448069067919099433698982062599093660881986081591788547454578099666412090042530540020478680685482713836926428977068311395108428646620283670552838225332610391327109781909373986465120688195143205143655857192341654651850001380506212123889632221255606774653103094323298472513327462352923522528033640118643894353709929784029402858580405136010240973148910581414670817987833398811253911281533560026642183131549509418088738071992623957734843428412834689208975212530653678585604296385964565939210278006869100181654737318801365483113409304230262404621969456286066499481615617993318696095430668961414904606836527394972046387880382032966993088562674068979720863591678836738778798509455278339018812386746873836572394003407154391594255325721512091869134546278717613157080309194136169034690774936257448736284539833221049988201381320679390819830288202090351917707238956523735388374323947138578382435570277089121528087868590555417270415289141416478418416437598959838708792990441493957048729376684511640340774996201670848682635015239539589264704893458387624424827582658951010068576095917126981734840830256232441606374656050085970688517455334313366563651326191581191083662022138395542767308116671378816538856591596026050048748762352506888676471175027931486144911944600176280396684759901442653842708660693783554175653502743566070929093852273804702296279760647037954431708236409944675756631003795929540936191994250298449445936718818528333170128861491584397461680101013272100373168709263749820197249382150411513518284370405752499416054751317802296632219339184206077624426264069724356662939175680245980820412060778111544560100822417856218520976545406743207288590042908510988190748698072666400491133003742477581049233212223848521797822457879393377713364368239508203882814007544576363745478049741326962230688496033866934599662100683758893208487092510378789258944822512108432389437117804948581723598095021991401999182841869222018558994819307111428883881863764536959795392679176462461258951799317077852880928703573185866631833344658063055989619985922977734459575486789905325547139104273090971078376669771162516690688785747391252897486994140726775010987319513206029450370742322391425220765028289650769166813409187300567939947114935259841510395292414593153331382106289583467234478106676936557003689669565858815091585112052868926836689125068174258420905376907881001867557784211776903966974380402585373464442860638436707901748074124452856262147988214529559652452891082306074787749997028323152050049260349148216887891497675803697488041036801714576586209400294838064635431088533985192733395787320740631976173119051034993681194555617954534528750988576068871811255171519970555279489376432963117924391968217598094855831861070343439968950204471027573441799379758722381568066404253100266920870504689195836286278808224055784879964769692909765364095100547545136579106022105695727887562203328115728160684034269198372061480672960466984230570889255258528663955704745340870660500661992375725497710210427363139292085166643086588509110949500303849248899644180457353129837035576500603309861226429359546817355639384798911645726359167572886173874864230238217780030912614543310716971806896297554376392567549265040479644697995758150266826659278557501386387016345847072469987407664686601497101449637098220737195072291474368090581936619135422952629947013660537674415969342708835657980924882715913919987196159628980559315705575364089138136066020029914308168396260909862771724416543993435943175904188440109829422042850401505056118068593353750172336963944333491876695933144844841746537065698549615556600064406061682260685223086318540337403056695051085108751679542900519253174123367223137164318974643361324917835547576503612694844653921963128748368470251831024567317284549172322669560834114465724063035871650648994423858849043103657135711970305292252562871005786168606691400783893333624045364083900716653992941905155900997889589454088046851267247178883964501461813964288714913786083371689838183033916833725986529821219285318642669105513606340411808143635860020735551499132956416101416921937653942716931336817932630905106433697270490113730560919147646215636884818666105594226715983085029460046195610758507946069683231328604521998302540388890942531588966203291696753540368448843203702679340913652428716718747859359813816822062477879749737103703475700106778368034019446755880698167796847540985218413337108377309996432939969470177605165488478398877252465628032218396335562176692904179791324048698995745863349343202818367104450742453919666911145583879385089031439247164266732609772717098412392215279497493178594787750907353544360510814202177442047011506099797035079064328752513405528647391034723922590143320825284520089747905327553120664133455968695192373087661936065300837231138644359823287097363433807947378917837033305138525599160888025951367586292005635816219790789134455350840946495215598964272940489360868128448721028516877913591655976675389112882610394832430234845774120672411420705811277821054342419144090675874926930591596465898797224006974793382110412893075303842554492641962119933896997483364343784380078200160503389489124310906891989469218762340255224464191813440866411320746429395511580943695336345687104800441554581250337863275451272964801984944120801090668749060295834303702448866014602950983049961893300207112945973050489662388906419789996411046539882433445445616111163825940717191956948402659785420817740246273465695664966666958876074323911016463453362473532457894402252145090024647943503115529786429494296053092676090174955766727215770096404960670812532798235049625199444543731231640819625449912265618718824514892158795589737459627982876437247089016541936858393239818461145299608745635795818223015102823970145616026860918574992724732490186352786864115711076810631086514313117003795102904122632329938296429942169609784181574291242908153500235448219761307749862138877492969072135661645519176651102392172907874974452949930073924572675349984791074094926684105135122218349465766946706702583503474794602278540177512632774731995126137677584087963567328697882058502532368007705362275165393964803713417479179446886145641855718999543213847008937530843059146530398621934650153075738268047025614942017799084139367680471599128651847797475157626462658803134580364175032764145585167862917357588134620452312488381081175369970873681882153072938187010860740632820170366684820932212671601898923628716368673155168514096256609945252632801555721235121452666841411176403342147716705865571599852525411321897930948831179222830413476896153781898322849019289477879159203732742042376845508994489398878626134402515673489617612556977347939666989966268344909198325014228977765898828343825013301304109908650083440436541401579525525352069200966811828640068621050033884316270356886533278188600773585483695827412780977036003302619622278200559649525568200281398581069856577025344386406399509844119158095279457292190548011674088661135551153262892389507611146462757370839670768601444610105518517739217867083599670201874957647201326059138094581134677007442277706079887882570165810670890092810792950286705584158530983346062528482855030978905905762524149048849051725880968627783615802755374743289158226582846836945871767838765628784679529777087354361591061408151495842522053931310988907962311529281933002987253123402325296856437209572324362442898392591397837181939045840095889824165195507118680293530719563859099154809182274423054548627031096683678232715969603416579677330619206801536806881650026516754774391737088943349711732318234380887721146706207181584166543351066276818858752450027537362794858107630594710185996407363944804318025434338678686760180741393610595721097307197300473236182884933638968681540826296935092528728889390107862151877260894325954006325237205908245302685337411119833662095360412909227222173890110793662219955859664309060812270680765379401322933178708720365054789010019685767416074883971095263924295207299894824263379553591872667158996906003424388559365429342771467015919386563099410780867455672789629321922598502706744441673944444387640771130304785441252615379661707357614055469515768616329697372930329265071540830285405071997430748900611968891635748583877247463428630434408711802817391758375471606489270966308160903569840668447970930639840326059194478878077395479794795223155075696507925714553046667594289141261139291329858085785468778564334728829232764935144985311664034657816468326181846328540918314547154229305358828619895061384854777732899301603559955013483751333583184402054765943423897054713418276129588247178879039759744823353888081741972890094021607595326482300713218281000326215343135986417261988703146490605734221371809758587320608511327112691658576764217738714268752557829208795599027215709625982888721214553335434048795714174612270003865722399285010177458737019309497953544486720933565127169935123377638186714869249297595435942008707548700675137812629779529201580190855459360570813108631907622494599110033898411876689008456910738696964165925345007343972507281270234048558432273718895479672191150988325368424892579676731102261811060571819097002471147276432147177190566751383799064612136854940408559090872470325733152923009306665900029424001362905269603097661370427828998564036479077673336551770106751607791014929686339803141022751322189133841297742730481613576631810807266240703950040042298127026085815602345974988102972590285000447815128842980011191641340324824993226216517973153522603840266224327620711674042660587673298906912843499266031282777899486719538205457830307037165235681516568497667799570482004072910073350460428194614820674680340509805232276818412329783701782737545917417983952135598189999780443851692139351374804127748517252100941480405396004615288683239736609429782972573210708429699867013994310316694998308561199320436832518756578562950440119496427089914194756508746970769505426786918446208316301030587173059134083826564731703223203751882461399345333571100784286590509915520360530683334407445303298955973645904550830649519176535412777774098186400343061830726266183246448207155721496336451879667067533480330568136650749846143922072585050820178312237922005233353067452735877356087745217159460618745021151253453549144130691355286637395596678203212031443103415804049754571883998703798083289418199694279360922014339107368859033617080940900087348126903324268080650890927557977191545375634222693846978452137279863992307976497257145087445673887508957034498942044864085257611040303381611738718726920607641691421602816342031760317277690698952882427588581375620134103861761755252523668126203805630289552312477562048142743696848338131430497036528839866523505914844677349569805672970760473160628118875355938989008828113171770182292684831170306310385553941184248059323606603077519223453500280336250507210182181637208307994329600361002531813344519069240202189524269183602917505457776922621494655926605728943954130952096041139626090206865400586362547204885453709300525363489255764801670457952109874844332800231536054570501836306605527997289825974797729236922886334005398934530034419425927505097167774395490563301954572646655726026725565337144611956060631175773929049076579771587818368541861775432935755718392998532042564774218920047806081823518535516206056907556065218296643644029417734566008547244042653021494250560729434353707531813067781815252072851942112848367539025064718166581987877049992825644788717079211472383660162468153032062918365334486278771180654445721983585697011081415415920266950978380220874784633843346890834449113411730439374782563663685795291803177671515829913767087616068751543199707853903654498426943725285502269740920645123078771226482083682566502998205261620837563688937527658255810685584933980481987595442462379670256233729852860544992397072176367707894410778482269144079409360266932849098493493371350998934877612966206263222060967926024825556806864181146451536302169492933652583043501971574100647148812265912359840462316872123240307493129127207125629939016236664383789350319936547105217490009157618829782491813301517250553150180296109260125106498951435836012592268029924819545383769696663291401557391554775239124466163959284968279069093791473157571908776987649225996318755234260393122952157255425893139078538508182972744957892379016065098313523891534481647589098176978094530115324790253007885035888287572761310073070449863578699172686163349174931049664225176325775047131526508815591421342040296115990896588713701523274243129322379032574154743662525103373761624377794026264940515558664455890335476186466632635158793722435855188027436889958865527669889422790466222873091618560913118924518417244518367811848380480079268427260347006519663243138366725721853964532720789973429364320611470498844149851008875661050177004185231331195695111802480963362141729032058067580509936634715341166150680724895133724258643041807209233979500856397137861381679039935894420082625069503616705491329376735754497746639338623575356147083681031036973828466598855040627729968768096776267894460032924227635268320505389052196866067985478786129161943885328620842020455226713708703408074492536164581533145280836030423830416767995219994978292171936498759819361821893308106115834933469839658584793147142663797984865043022440822413360721746038980804863163389108226847592322330484941473544340799465776598247544370073869369031724268623183407893165443387164575996530495396760833447700737294937078407919554689628488078687152539876041983015114912750614590568227972368891304692957846167280407026927926662291675054513688104664529436555957916505841852907339985975134775923481250695880983409265839755310117045020884589110181294075029472273052963653629886372983639285028961184979711994371258105708063524463815646719995076912819040451736267810187247996603712851556593374382342020991316674358445999892305101445536261328678851128358202928467236419658844376800286132953698944103130648863259127430117115828488706245037035149848186958203141207354034099567850203182328227329098835166027641033091374540433310797679692490349182998009848565014475976222680042405099007607244329169680494057748941962678253272380074880789317202119454288728081836048279659867825543507517496875737253958971916916455705455162379032414536792370204419346311665960797115454466941290407679506817418446920248261580205298437904493685243320754073555861736019110167772593487092273453520974352761221684157037089150651926208565775408112084311718150147220250231135037499418732244771829973643649823767100919898168819854075471427687655991259066569716307524565099838036974433540031599935976899933712693736121839404929818201554653939075340946395859757011749352689806389141428452703041660953668788265712309749609930143167933609491562518013573132018383918310481678213225459197423460233001268080857550398168197832330801068966005378870525926247650607911077786491053969817816521524137916933980941592869570948647567612739762427109574725339062442040464437204636286957467947367992246179044105176428078418063030801794149451042574346970866753206291311116858301907589324876737024387820303155213593658299267711420055435460638376279167919558120123142465051981924229311571389803908906136478940813942865994596528038059821470728071065178247925733606540846466616118356631993023874649129330965731587409681652758722315376339397040730031439477415900287497137358610617921272664771136823322675320979981273823639257157127082466667963985486432971516783178750792088538927578468258520911119795967076762672490202366237888597331545201493513493947789269560798150095453803682652926443595468039503932704106339354848262085599335667085613115868565989888816654897016255920716147171441988653100383436604520981126195022732605966435077717823693997253590248720923609113498965824534044397712290748007693410185447524833315836853401928899731370662378380505225989472541978812771378634510855573399621899741174512724334886416794785595031328917969318787167895995349695319978616898949468899363699223938050241984123289094436899276196667163698679130200052991663805079677566595334249239529259530658563022959548831826721079509929963790502101350038096847063311219402460356253090382685395694171201567715995882565381755951026275905904002040714713324097456504679591666239006291095863473145633672373258846698214740111691033967074052664586249885159696125465588147561522158846432080942252250560494145678109549511663691962449132889124670800617853564033161441187206514965482403448974778230764841898498164875329963670482272473859887062394661627273652098483157129017412247803749505130575927099755209801190531105685666002716301057188435056535411528611482493257684511518708367948427835890525472227049214858294267365955392462031855531854731296513578965648707270783426051329348978580814675367487743841962687768014734793256910065470107047004277515075805296060878062655696588596532667951672980138503183956622388206152896175779832923730871814682289244650605981211583824448750155823796453733364332861590440116175979683835330071497711228857864448800085759681086699389129467148386711871222993606748889667434189526567884816592435606446197578134966735823452996010466654406623169462232330508807788754970487719852976092369399661172062674767914383566797927728721646464742490311874563850603075982953021722894542259390512111029648310517056648560870029968255425058164544758067728978170662556314559874346929483825892259655032583062664583940027010421027086647352997076026443294058632017859367599156281242713745896973643949596604253029531537855452179748089930370597673936141288135490324848032541636288560771525792299974462995480079139918185371964727235091247743656262849046335096248346066231347776855054186372882644698733769728280900330328021394051041947673067121235227050786225315463019790484895954254530595701519557481735012363143855141324495087104864317095546272270666798100448654680130415888137503256911931242755362145813999221424925514186005738662955054377978657817865394635574970812175098860016161391561710818094384357156524563645860705932664985570771216935942044850521010751329122839993424843454527522264674841241855392254534543051875701430957917163212473187083131184174173718735942366660403008149858086438545591803013463850449684210335998559035486062350111865269236991998733709324636601928611217041320667614123996495681311033446147336398185266949644231157400355578032851522001718910342786778610266279915270855114666286155509192020125520456825253514408655669511702249597740514652825225623456279652444225754268890951589837597931302484951781350263256531848233553934587589330242764014184845243832047774919426446897707898088004584465059196781108696227660762035245021110717624181434371552745520135917300382048352266308709943720201212099609088514288531277892350318308534705056041015303050558585443871293107069381499856850180136769393985178992023307587831120676562269345418381017869601364582712602649503760113422597663792058056887366621025964663302277072158610569606723218084936618269032166533512231342594894141731998545331249016625844367397341445176194027515107773282594031216348425589220166527236580065336739456637411475847697641276665089691988604249761630326204663614217419795489095432124464542307371164671741877976793871721970510711134682561965175892395338889662941872737457032799189543918790167287156533112861530401653858567040337553745197646274477731542511830540614139327640865295308469646954582536183968304107050695379713154633558828834299600059213094640892028411538479783648451431533754405966152123511067800003355583718598811019885465328259320081847257014952300424593945643178109511040183540328157275640670737091373860111896352832242695866196396681112038248339840235636153956089613768549952400109666643210172203326075662069498927313951351717031565949588006928376282491702716114226896528058823289105624300407955541647408823524353903856780915934029044927709392895824783591073028979767933490540124170313071027089155302299788052582974472507032469479124957878687813489423539340555515881651950283296079984990745560552221375976851208270012131292692542042524068521250071762722061852798747416355913155861156004025715267735707085789134758587838301431885081240527481244848248118325253565898960074462196868419086735866895217891443387716800350774265693997100924648634743515021479922710918199101740518607015501177673156308443614335540826558795013038008276701388522978306994437839147523206015282330806242518845789150838284467670529258765941182579696344363327153302196010209834880339757253507074874453151970616656161046576938838984846851233225067141234609974181970009356028124643256221215450439531446569907476925248846575823342482070289682720840241702473383723636841873235394997104619565223790292964738951017894817659750706356725537875426619146496472157491322299766633975363738304610493831878640365692202859030568113797339265738160311999796458195097732201143013994481729576962661209247443660881218719168306088498374611145339933481862293641507811165061794501904327616763808480720101340764205956570295495530876556507794234360029244697200435143422017622143754131094605026637052238434104229641630249025475594006839593173889744404946937244822459236740003522742496900551216696798577114170566538595353804940513596169967976514210267611529106230901524722774013666546936086861684714287034770868761782657350512583887334410759163182014480911610318812013264522617971048981323382355953685447542615474736435849899352039696453341644181561403392803764013024067518560370468627156053193414810919677367166546738350486701105734346004676565540435433321890882634334105766723855527479916539554899837047729255646254317301618819633451673252909253095908209167426185524374644782616206359193560631368845545221899904372293696480522366703273801681033539517076758927869096617918007067474711359928559122884816925179932821281266689863361019786411614908408559596332797144022825352048581922499470328291975166206777777341987553784884648537511905663203473850787417133046010611373660259165290830381483897469169509214668214705403649509031830376438632957145252819697271307193661457377815649461050671926543075621862169893202651929607247099059055152290068054094092812640719894485337842694838571800632467322678851600231116115836870709181246541317989796239687880232384747405005577422299245604926483241948864960026227120659180018853201354418009800628172663346516835601364811176880591634732308431727691763521979733605165768209844910404228838590336402378603783592231405629341978085847099552870193175933231630301702041543086836404360262108539942444451112036531174286580083479262603233656989898216798940122609783602491928372650098024104709116677880336722454312186298911956226582487089040449263579283330443170474362732127470268268921703894771677521405177177514973854186748196270067514044220928976245178274308512013838801146293583463907446909276582942555761744149412580394747671159970547675458072845935251072645108947878420004332214614308775719678891370017054452299829079019638025973307780113754797945516271299657267245227174448934637566709922800639689575607815696002935422738620301157522980577360508690387591490186745317315890204577028407094993883862609692374787467987329398371057875374870831503661729389394985343563123474832458970369447806956209893608073948346561682593042456161928431708688797423919594894792693253425039143253682645509377062321137509689597204327692387762765381176889140770740721467524022638813647634997332418996809928845855403545940579701723731251705548305979790733499423601274930174463484312260666472760606746002023939765778914954600505639716032509101643053479397709261395072625216835498646185586161641753842413000890190570688630470466331832241842216247367556662195562480627144776000156011922397629562149942530820468598405035076492827705872685148570907458803171265114633048866717463905503878484319674970905040474247306170100328847779996166671021428754107578534116395006374583627436169173199976372751068486164075675514375078875674135978480356796653770834899148912876969931820814277895516764776961816297798408943955842652114547828925780053850786772066981338403883242060219350513230068589947136067547422129410256957926363242917793127512798237092897057035716997760954366771444659342395475073471909713804300092534042347256351045914206520601371880473417730394360534048056663499927001110052292972492609025155422392029460070459844203318529784208286187004380653310029614209775826008265051122435041054455993137961711482848297677920079306589511628115194211043679893892261923580497037636346090785612235521568693934591970860578732949819159347654192322063059288345601826294932897867512804567786856142116208195135133014807724973825647611795564529774752882631526406465204769116258356832308249957044784681343104345188909952346173809259360344910509380581054097150981868838795064154556516965568690624989707200731407716068644068710975381930906601996831961261858993778790636023259064771382506306555792252319698900486393607375665967238958779962785628681748464596729522940075021049673192921590014489003607209897876658892546764523488450490107232710027023006870640648929861416281750720797940535042423892423135523442066356648336972179730984272592109673026104620045626857315483070252767021672314965716588059286832210879246221556218657346882846905205437973138996022386038933877535659970578406702403200656367776817795431570158382912242056197073772986067496721831526346505744312359636867368011035214195179981403407441320547467904958591990134794165869940378235188484072904988644743960074036481599029854803942330785773101073493855992695508262758419983211666769705158252198302468612312117453019126397317743232480182532197030598002094472025234225867427516090205390511511330624946716951126676412938061992002061219045407511101030174180129306689093786385015154290090255755265339633404760817703107173440721181573897015198879288419963598159778789265067638433860065543111720494485572437620571921545379639204666515730297046882107209299625147039104057645461161032615233800919816261875390598101267935037324778051811649948693981116277603460099230733261863613957262884539475425566707176507370453159429765521846619794493480948647783705039721283821783046040013871497641134899065199229902932143481498169025070129371374461721551916203790899767720454896901754461811590316362712775281197421961900602539106483134437410524290284522780096022721053050043439902571150965628800412341612876417534051096163822390502695513593856688272024162836299352400076917734024673622316400941995236683936694523035673526014688059683063689787274022189778682810942385843295303751836748667058344803267103138349059332352112819796793984917285033060748684868345682723373129975407634505920854544237980433508264775024907505063664182090361246775694861495551266522413435165926470182578182593167089040132046610038173555538159394057924906423829863700978929104651937743726833614725102904577379452148616482365399021219253435462392849047087445037388509970059681085277134731147518425854278853498261360509791287696945306552187326101950982022438468878748065113522987065645315325400930953830963787407098273268148150538579257871690039901135105135786920308045851402903337971091108038760994236848961134769430590290242399303078481663834699728472521666569524599443801158097562710180640641461497450027040063379452400642146934945948672196353401400119135315691922023297241158370985922025274519494069572477634970603888043581935006686130255995970456301811424885921411138606749342863959081513307204165911366370029096578821182607757521753344522644256495708921412626678147441376614045321455329520969605780093664943986448801182910403294861510856868833418700171966887103134078262195262380808089671849413788851276765334160646239257019330161799436574621819402143747949002125748902101859908101405036536407934613674368680872287257092968266575777922695488952291030879507876825734090161836973874566107346303843391893671933998104325904784771587195995053875921027991715268429293093182782096336852843499168687139403816690530846978916405046650933263827194443331983046162836628797986945361406689502010779464528770071206443702827191587419677669041289709994203699013351162092498292631741377580584703883804567623493636436379913490954480174438813101363386161048767094757643324699838469440591611759352570088556911949019031013938769050601353550751029835768585408428099231119424026277524156592200210920314766711147259411576869791597231421222069496143794430955422353989081809198911024559339984295114853914946851957405347237880411846706187257372180818494463095644883667432205903493137435267815313539120134905469381235842336604246831463708116734500331454994679019277635583459373287995794136401974242766246194502203749522359771670948474233920706915016659319550659672888668039637441141866880867593049563252922680132809029364561295570254870555021285935635560658255844545408376125581657143395729417993327190688248809362948471579524164426394419361113412767980475491967211973212767088666168631716206390476255032158468591409561384089961993050440500257230407357279225059329261735832889159095903006067252287968562036590515290410274903807983267114390150488003706523383945917628793727108774505828159988251436666145453448000290675964445964543161967103713362865827661584830882556989859944659020821318306978188724550968526379018340734724956203201640283580902827275739656095470715458891538049886504740159694959179832063675420649666268102964730510112823643618008671397854550775707072785283453913299055359052119299415796296418694134553590407308858354514521486048450176584206284273101780440455743003646667559445076970681050399629832121604684660068520750530203456436980887379037636310021579839974582760577094509269077247102060004183464297119708415159362975405628519196105644520267577781030204825475330472068826786731722669048627611664380257837197881135259743581293793937632308510445930093982476274166622103677001831340310888652522049643881365911140527981993310009438389508505618330023000745146158082773404335089104657588223054096307644239577353704427991201227484577379849311396438958825565714798007318321192760068530743745518964547401888115465678515915668962811673096941271766916756273610442276294018327062728068623973007565950194926063785425019684814723925396611343160091542519669678335814280911551903755813927845851895352337028350925360938879374376189698932293313791342144493603415165467308185317031101685010461504190255123027225560966416512679436155774906556362077435951813211844088283908156908190669750268344922167384578508464315687826885974294043088137303334597184235369477152202442291269541954062591554979192981319094675877721736234264046279856727673255905649704325231624647386880584880962789702397317299690516203869695236378195182035226950663469873290496972430452553785623873038868037966877363823468358991650773593919265121080805731911764919967342119240474427327203648137392416210960730695762636407692097761197629454883894657037423868050028157731840981507628916387646331374585326634329936334557518067093113224967729791278373132089558020318239409784686723012568137389285938611229531267704746869593826767986205950265121622531533052580985676218996338190589837926095738842940716294105275363980713602639090936464710398815127262574229868033372770572007534484590316548498252399042875237410530325332604659547882243945097769652401098940120311534159321145919938261144742714796686224412513337054957432153843349936614647442381153001125212033737379954765918499214410770651255750317187216488793426082722681259962336279718384585947698116011461031755471319220152948627730826900784586420585908998944742674559445809198069189237945343678554791497831202935380220868644558652507131029280864184776198842149982062196662162248366338275698075242593918386186755598101037731610411648300055600766039943097409508161835277889113601710444271243204680070649118522713815315678490177009895197755973552454989584020456583899460824216107337222861077965325637089897747325581890431923759565151341635206423705157738485508221252741538043311901887757360553405998218869491533360403003484661469041688510119544516069043135956932342304939402097438370318734105620730962160301676270317163408730115168191330013548538418990246211429789199245674873694319630166866129130745635460056862967257190777182732793133494806984597036196573364710612089610908219293721611405071484052943636937552521857201850241865677272862870603283702096944822361351324033628136905063866062790268770841630074864885957956404982812633428206349898784733633914410538495228912899755259146494035830603207966154095872043008928038623351558942457309536441252633480780025225660865189754041597887859788200685400159378570889106053093875952302425640355227389743973159115749899378654845016301945778111363027264848739732635170705117476407871237434482809055934044471299931641908242688075255760900204244503427587654348001317463700577667856305575284386285334344806650777985356183451855153026760768731764551990082375484417092847207566101146018743348619278334056585322662298438668111809258618412417959532959580918247039022100329327291043578120075249819979717281680401881997464407400922509232546241073713047020228177241629030873473676156780103856961102400485471054723072808321568519417768982416689165309517367927838753209016723754642437293107391981660632874267636178721812897141351958843096371472419659073078974102454865857542647470877834406363720921231792580280468624354973147243761788892705471713831853276795147950884223792886335291399405325926814327344523430761094404217725612847788404450581457897584838236580262700973640061661333687326157993709689492089771653048091311633277575577234871163054739312008055579416076076991923249683282737413555530090228254937780271984768854699546211033940791100864083371482649692518959148586108199054331888066492616615491541854850268049629860239467008421946219921970831141277140010328733983433705770652956795984463121481290411589653370364294869962130135271599078877208507692571974801995772313616960753024020142372732270845291210761089846292543511868962046010556993375991841474599178862922976930685158459148442340847714096167248637208115693661415776588577918252370763833241025597924782519777366899919144001108840414419078198477204815566309521642231988132768538448669643278751662295116366086581217790773619791710065052372526095489491392722300364502308014560390001322219380856358035496761215448328112350189807045914496473603241099044967018998044172007786502961925833077970944252956770813479256101760458341823809781310432552146013847352045230069133630494024292222437715145913388331037978558404450609855612420306296137134745454602582704208390330254045506572738707346732945443122693366333749406681355145816974824613713457624061749132646369074645363193294054284377142735316015065047482136234237561759780655227218807832116212752307033937146642004499475642628004519841387194072457850715019031756525508019349195442668786100897343746315002798806693778609664303523516364864173853297722986617099402407665551526139776297099776550445200845205638428708392260993795026641513495546136496685048665218774802564265895546725087822440265597507612327652958207992520799364093103093487666041268365662911166495656604722720006005022983182637645749924636122648033556452410700157778124714633809114467163242833039705519164143594073007744667376475828333452062272252912438587809382387474700829536508203338644060777027823844329763109534808175445872329507136178669615416443369959266003207596342199105300906148010697769910268331733265105249920270527572501907940394689430005585669749727970021460829990647859849480456081262203182401288341064011879832356300880247998102696109538450353383825157004050317796547837335510233408629610372591620982278210698741846539485039374855244290203791665680752891350088457793761063343906374905141225611445206290003866144017569921559544676720453562363408947689044796101110543842406169221335750622040919063513262828941281834191231910614069592651057521804879671342708157201605197341272913748997572123322054616398420786678278542241849253132856866044055041480721954456758568199629775023171038780566833157617851282035223141224501187584999767833139457983718060448891934094898503743315091818953770655571954961146596837532953665456552651043340396171538202409151535825575963856288872761601737870298496300368439672109118453920424215117092556972726144933669616237583757620455428716166944714109072856838991136277696984346475436853369337494556218614675239934030155456398370845530190377465907162766211559900532695426198979532237468329380527396072243645304880396443757053493093748851908829770236569326376359118064636494767194520296920954183318638888347633188268873545428480932357717177375360854710034222158142169745527616052905695169750074721039192136099843883578312884307089735663891145158477299638914292895502001996588629151198975742255973990385220844229574760753623282408499858403092843598927006427919668777967932584147865983900053418199073270314308427583286913824280411654146534558433834834759476251911426176577648314683178795293135848252316806558239237605445831323345478701789208894470422162330284606994702105640155692099669138295547912376952569959967578296401916257776232004542863920215607515740957689199106355256761730682794302116074509983768693253686296306502902233627152465730445610059642378433612466968317096936395792306297257502223462502226234138359482143402978288123549788635182239829401834450483758970882749101320112614876101706676870817773877405070704194945047647552732378145874308505971023933249686507989271373251574788931077632818837112267224697470791682258984224079689034973724267740319898404303114062150802453595603785497114769717040255920424289497848747589852403981514631360540539966249869323398601188899311669823653713539866171238992565937741273472432585009965700545139089931524438895345695830209954051869011278256337187631993190916949894580037135520015276864628565574022867107974674964375022987431745558649595195055049752632074583751922054703101204591305276596913345626491631153733656858863029560839428651390391442843604342701277432651811791322970095597742751202257374532466161102149952453110788632262019799487197827369488646595914643580137323058681673443080824369113367447955308956006572265052084936634728588234456945929301813192222687334256950672674964219283131435678412550557266592782266934611143838683119158291214430580921555671122890576400443890347844627581054570963145213504357393073309358867503058583178331489957204457115203162782667320510239195241143760483589688611350119384508955958539216785131427991892163652019199713616334754368242352297146664745666615656453543730349547219684984919032745167220501298453775083853629750459498265015393153547268715106451939662227345915554356495357323456086409690974121708027389372150303363249336249189962645334729392075672474336965847819703041924927434147239810675226270940879338348063618250798633795109169824662908195587326657841474365823288238488492277211341447011444998779862651183451210660029804663343993242638628484706674187614598511096238574209528360812222221712125535983555342703212929045450877840580961094577961881566659402856071770293580178845506367961630349964729309523981304290738438229291214264261332556222111215115805040688359371844475826949479973738546234231751238514669720152823507944309159849976801804654517876746593321644622643606449188271245252694420089917303605668006851164469971151523865258527045577116375283487428067541147530709584958335521057401321312116145647393660673756420167338007991031637687563660427082394268471145879324249547458891176359887947823685979788971628326993128773499666527264451120634401499820240610108574107443726536439832010295850558942921932234264486120196181071609248087390655286927350986061883393285736509463603730314371123300939323355035376495717882259531045425031780192533454648202690639334723846086752662098999675491980009676111848646581872931595718008960382348151738393273784649076862829110684118747595585640461059398330319340506206834311614904186050145094143204228988728231906123896076305292485059032852359940418437900267351544719625454290849593306312468015188474725572152836717138681872784736018865958504266890740440987424955311542127008146152115508030002804948770434862037658392896353576175240212529719692335758248180877730426801485032500227654414603150374165104752227841364463829528177638843940697107060844444753601236870406196413158531611024219059267165396631633997720965431702890461065907389753980086341382363152922668082879725739806774130005182645293644007954636640929131503115900469824332301670289698691542570067419082367135797907379301067911298394385780891496816745421419877327712242072953466459828164886254541258775278306962150125753079873260177502542028557792183712262882288682092325059964408562398565667419386671042038660351046530618252102277250126623535821342072587187079717663906213364014888116782745067561360899716818755605910078387380075769315561890601626089464585235180728759621522005441308715975219052329090919827338986962830725841868919067451740532953831468983156438162426217522972835345101865691753741009721322915112087073985042507433881928023280270506039224454344882944124955586961180581070919865334652822347549114165479421828286519904443337658949293079547635329389183934821678004612095071829737861704511697197968399680323385037490576220791756470248331519178081850575762053614393778775551292952291278978806259296035383061131530408970680074050209528654113890950460214682138117149772349329253791201651346907657372187720810906951585477736351655661726875236848499626701412006618785143286791639599209298793150258935095541628007405905221336440237592119214564717332488498194728458053835311056870037404792713013682894539485440165632700141622607528035024668706827421203597093123470237172837532617012699002943599326428624162636542934030955289942421083832946528922270246684080027048941489764995992500305330919519280792076100600100723170108507910926685121554660462772853892379579818935212437109238272831312192540275449076516675410142435064565298981165678017553975494939145325293608369959472231560660113215474873394122787436749923740649144057791147887362604361244268706635148270339215604708376046302181702154453163431614322693432063476262004962900744288514426304432345639705178803121397029770348151655441264164336713257860565780954386413503450960416391298146655088679414617603910959214813874279750841785964622115194010743281761042455772622255313739874266832150411912345575369630964427747151928600075254083109173416149708141395760935456109249522360825374035641273979876193152118078668555805797811372647245057159170586229701188032663199661170227311702139383082499712839904463532960414367330847394899243404819353383132180674106481381129204266906423346820100880336219749358142990134133464887296310631970538610303937160633267608667256530865309635791917084690133263072306109860814948829994401250119279332107356817405576045931021291387201031080812815177674096763246649455287465806208802021480940048493157674047121436279670201897247399320435557733982252616591728518695175285985991086213650311509374095787114795639290242945320051787289969594358487109778160896902371575676822743631331718369476051489980942473007564292570914709251562006925369781210542394630358975002860318092073987254657034753879391954637251556788672551141271216811520312616857837129077211560919353958958949983861696520572782609491476804144499979574750321572806285227619649816922976584458272895603017186479534890206396574018626157748856195462235867647480458260693251208069219697042790262689727886645452853642702661171799241502806986860806633097240302199099042028648612842439320347198749175247262067802647531529235986573056301051148997837526738316544077543997885791347865077814443459179048724415783468821544799948965318427571831365369281780230160792921158960480015953430834946204776388598443386306018406600793408638727373951253393881462526040416499179989927259577501144258542642869968281288655789134902520690745050845807606006924566412006650210691749586050746153294773035037706351311687434478177991854827897828374587921900898657431482014164305265496435979976481407420842294921837493240578097436430749903942261554044056674753812836062089599696581796617959508250155288034612121929320721302668628742793445721876546250856498092196757206004297155908775317768211309893175475863889594727238620636250732834465682169304397996669058742524025318033172894515988586079723032553585207985095057239209641861029928934979980936461337952111653132657863516413552380763971931511851647387324012314466454143539744413788040001763934887688398269424287431833331184116469443906155198248096602223795248408210616762331536641685015326055080668651232367807137270032020638910602706115841440054539288488356350592825558156946724810887337133142797063571098661237955585927155057656933190908051789776177474190522479149467178475692659258088831718623966320538047394212207065722657476953776958345605816710917521658676283226300978138122293466595029805130123186524645263131691890853102896002566929959088566979678237412350640738173993718901607986569179490995259197320439508505971141811900550419783965231920348512474972189173846312783338052057220205959426073453638628132027914164801830256484996650902775200469934116943683111048187106064041892151603098049612071587600869278954485547309704010636292983901530702837349253374557831011534322258649681246900777749127933824387367843623267725980632502008661394200546773840037208840784969395752521347503959769712966264123228716950920744387742350677834234175023671305811730779957503706871141309033158743986756760952805396829181566906798994482057594258746533809652435674141471977966433321971440849974518232906828981618041487869363057562243857809096045793803647713349791021912938000508827181115365889855854575816422187803349298189675310517241779743372117040576321838102646285741185751202038067797413232913005180939632302767044275798136037944486259678550399890118666767588367491929103382362769746121933890130088825125086030505757725952099254533267346049827641162527250524542168119299692415559196697220591416663265265398295822274283309478677412372966508072630348922997520802214406723442007870514013061889613946401687327555515980200270058283212869083188213129962594928353800338272478033276020158699739487257561301055468089647089517092646330722748492219242333192790638327402402692644623148288648254960716998737731490245994826032845711619226458348446939531443266470662273753817528423478005575903764517957112674648495112442486433141228202004553754334260622622324335544543085373060695489314518783181611906624898105519617126905611439631023894196435663863770101124303422844818122434855820479660408390656656982075750878552070591620410200056404459647148950351757301370016248688522263969046549027452751239149414553917736089227354548284424388598114883740882517728681246118634337259568723650280587922000314177970066131645944151591773275224253292755013213197349242357225536571103918412108598237973448057949807663728606934032858011394670541405078465723739944976919658028126901000916732268955633233334385006533749908202263202903182522682070895750052525177484624590154853014432610372808330894532002045439095675020045059899801772369639678980444143227093719896863413424678882092130029962908890396688834668798114988372404840700806673480806812710174072725086200717687141677423071734627353750498576620325103789807032065363207355383635145885326309723698553133332519324880332681019885752507860366133603512399674394690245050659103536825176789135539868654027325191572609977534835160721090518358903604204389075435913695108488489815128659823099764867477544521375584907962948913467979543898945757577714033061075105814309665740170077714886162224266474065076577456156209740294145696182210849629853441168274661247518001797693942133208616403019959391437442823683767627363450649230176981787761239682995282345600005989549136971645456835346809039844802028665693572999769134972452732277288077969650750084259297993317106731823462468643744031539261285848173457180212929461070868997503708960102685674514329021675103969375734233593389570917323292270774542431243999197088452780450009346338441618531086498124193469602579810471306337720191119980700604400975698596952052794852432858670542013073720987604086326467289925856062175013243789329557132692493665554757210541514404031799894068996246762710973726937317401373267348400400319828273357442176840090467709277383158875357355842763069079946757401171153864112117225309960156775723548840021865400607953824475499067817065604972605166681163043293456074887511456500342309831914106821648419399314310313728322039519045177137774443442221546319046070180790826986686205299348915059749548316891007652388919516139781880872666396600219336318442304072734871775323196005601505020795748954532398063335146854792492500083798740513438463730221930631412398507104850678132785250338680466827339034732760121620875253474139457578480793339374054720087400222605597821224559111704833541313695329041893703836543886047336840838073664821126791655121926752933308086802657329048843680537682885298651949955820166032051734794796716879025008911694428525874273082036893419396332513293372250983179778227766589551498033340687781885259138146143105887868882454651912884581432367602050199622805121073988474349422550337843983851936010223210658857904696432999482107523664366447904701890971851797082351691585289590069415949460854954511167234488692284969516233175380789737401365870720215516059342630377293921508522384558187869028928458875929223120869009491626908476447420767712451029365035084291639623718727808502118269436325909671012673739709038854705290800307334530414681455801348928008889418189895336738010316684104768708447874989602602382673040997899724871463802521537271437444789334012636410331857504589760122853669580048753135989299854412480785399067308467675940053036454097124602627076155905573871560860520559913742025731534585112082313076080646436291962450624615840256479365881911041083260593801650014196364952971527624030982488831931387148577589810283233666893031158029984156138764444152984623082097542325712426597472352378697973367631722868328271370302873973020427969280887609287958558519966730838137302701385191665583095759431039623646132280474429884961578124059859993749262189519872816695434855062650841745223234372133754695329865652433829873482932370063187537602911324614443511669662598751060605886886823645526930700579086706793043687883162596232825657754294455137557578387537439010293636273459875289473528217503220709662674615378426455991793444707530034622413703385567149950677488450723348772036728688778464475402202076935215403267845670528921491486255830766839245286551136106494269105392572571823954571064080752564688773252981858313373668333136128127289828420636507454623925397747614426666368745658747065474838794119177537645713370368687751625135192901028919062448050834221039583449154914842798621472289601099089441840292561166534831595532922183377486222685442671193777187265395681575363333953658138784083047563445757890896671070407822224743075265119654251318812722795364133933465904766567754150055091639846112638986235505438766879512233172069498949221709981090001397158328344922592780147494960043430770185044041994116657869007222612215009276843387863382523054762500347626863931530691061753720255591107590488662866502277752700857130281351605002791401319674285257268455179381839690737835599729831151166510982345868156493517093747443740447779625258704390065834917864791910163385437391108516242069336318977672954426158477958863179186035926494676251523322554770638390507044144054954810240000189855376091764657555977391507757713570957196116898153787012639440742377108488393571244891726243331573419206763587694446353082526893895175034824064032424753630562834716415732106360539297171943760970926112398029404784179630742568171250658851622771570044935424501126908649594618313377049330553261122747961061463454476982422567523557163745203758705690520420700608017312236077363407812178450881494506366545578844493676393785448432747493300100034367788625055697277775749977322000436290502870765368275856833593942256319443131625609971515346908062932086573367902244623237870070160306630265189961199879613149434785020552190164173100220743692173029858330543576649077294442379890983031875880117671226758250514838652066495868566068823025878850351534209708536444656704835668575364073899964290719328715221656891483879266099742517651072704835355044005900440150587483361520392435791889148491969972687098353344257374011336646724866851735211781888332865773931356205945943393956703746685542314112179710469910532193971716229177906459103457194471128852008923284278990894113661903367252716540512431312558157763647345079548761462570116328957536887151028686620179416756167924095267076476872769866213996728593943561298590066640915479260305877353641589991068266581595694514523128708734240711024670144773387272378795035655808111034985868954928086341301477565866365605725196855002090734526406324044204312011452054065110798937125390058295238550215422311460167555011739886906734983685872724390427162206854494151778453134183139369761911123613823758348024236384784983707292897471894696246836535373387364858670813067641183902022393670978789247228364647067958691809508739933678635327471934461554329069502051016886766778422972093425352081254619906086285076536710909712678193807192259478039453881186448089576240672690330020682488621159254270354340467603658178408984536365643581854276964556469530691486969621252169341865549668062645547093693295746099381113549119436821836331929136497706422679118250636023064808435070715977456262938845431221708705994108386440481256997326273393975981007092382431194595762772149476766474861669325640434643075721743097313142891997174663468355116151893956230896944544419637801670730013156785849387614996535606956318582912323772664229598473132607192939020145116602645093432911188787256838740753074703792686951966568404176226417540607809829012649659292806609284051272307658698732286505604061423238922510864290239059499939959781830152857429190373089124911410774727998182573175965966678704207496261472660969645333322385403009172248703679817637782457345827491633380488885249503832592666976559228876128831643540313129607602117007342659560511110685204884117372504558009820611647035970423524404825179189097075455750575709640563463088451608588407992235230329747723369884998834266330603110862878629452519501200049526358493199914348155119462004002015460335960542518326234262809064304638195000118877552964697163046219394490798874388989223281189681434001478283183341731210595156703796972952824689446814457826283268790543042001582265140752831307938629942009895129252908960649149656059084204287769686117359578095799043206195485978547569949179357932708032160176684330681329253591963496780754273926682236711625102010365790474613828601530159005397206345516622018635656343609721887529129784570011132817925067286282434380415716124368957325970151498085383949872295895318200013067656010124229167449768636228459716961190554509581765279937388816909770733946122115970269468519865344420133993410844546066514429094001786931312376427857239453097752011880120557589872157444700180546013502236338453553342628608010132384891692449997744719609447814035265304265475228607780288479754575958314516192887903283963098928110311322708101975694174393854903884893621490545287796144703255835207677317049993849387319402819042705110640105658360712318126821024115719816827958827130652577620492399760105590780260101995097172563538044046972529675346329023650806558024245822946031618571232778857213127055011585608455665347752644973250714770181738005378287017446543925828915940214562333529575475599274651373436684380576763463335108117836897995790403060927684883658024005067521940363898842352757660817922981503145125218505519269012860658715231549609123552169841860144906127518548271200558304799589164458229792441550526164966519014618884493951143787918176455819010159918403173920767547615336454627196868027096844626769074665368230952910760406025411909808822872066687107260373689278099186427356752849850008313458004257699064011844885058977835937978534923302194704848071397959684116493617224635773943753013224314942145686515884251149174724027950296509562879942753249794080512294773976279142977147127280463135299875496770905256739681312689259535375413167334716106978046035684157299207944896872231762374058408932446090646731324710017945784863673599563649428986608931832252625239994515684185432397052178308038675455192144001330330658285117157284620711174650244159494750886161014032291334175618850945122204294699482205579324376870634239117307362578400878055535220792048600380706648366438800165537880269606621516857266199347665772150911195742076812077381898775393490684514422881979950287313424935885773466210578403453403864765783794238140063601852275282485450423562584383111805831790282894098920751698474612406508285207300055438165213237967567168657585227422774752613622989383510844238011661938882443253670232850823553432764639269700716587427548358078506173196927417979704065946902711488326038688830221788489746448319892275141238147939714013731942423918715021036218180118824374491542786717332488900425489768830839194336967275959090141975925897876981903356130277854679001881795419354220197643979421544057162334462610105156653839241750721098658537151034278683895421789062814972739927317462657849903929552853693639220895466292007233035393006447360360479389229921277454219489225802330177629910647722246916040862771178713904055188602793530257726338805482107122581852204178149085303483459734329186102247196834495406347155896283628334172339777924513688323808564559377727742260068096890174243145302290744471615295461131248738201899058722398348202710176353793355842254672847645125561736793926913355292940248893469035177241928753749256634289364819200552055174060336254172300309759289195246692870953532142735159934879635704510543759191284152170577427582890706582074645130441492460188831058585661812335081767867746214376228675220665778747955030538339645397352084370258060973091191007895668089594894464552753253095072373252124401863818975689145771884453636168397039924087099092427694076775028437986460937147505608597655967344820591593962137102013669021740035542086852925257483652151241064847376606917352734200296214129493936826483796528530064002309073855765393053939571919628011021209362358773535843820531587691404697932010458976304882350285396622858900049919040336399536695185797278510046980364804574945852355944410765631633883347636167875704180785308211790010042704927087351612037070309076939027304822787559395233877523615898952450578782496236641412518386202655603496994406852736857263731769862987798581320723107420801677982180220136419285313203675011412850121462275849098317200266461912760419689007253427114974888089153630370665857613895875340945534759290868970407317729373810358412846324265248902029612538062801648242553185287344368366298648723872184102636611052938118144356386091731668943450781568477622515376696485198454958021306202065440366743498798111116656039816149736958460425489384029148343418813325487500044610058152965422869638712820646979328992389802441745136657936305224092739993079677547565802773937593649303035673358740490488609106137437364107745441691502872031332863520433634571194455849447017389441240951534270927322584481232370199128640944555686344695912555042840988411077685701041514760017766575219550625581642307533273946967831903938123703436147107821304272489990686786052302218605848429572451524690366126538083944529417330608190484831225072275996674619254320191363943233911166143857281244564331636132906456300937442426891179485214199010030413586541456567523497467491199141857116566863159703935610747151269904982087841477402528486352631212747792093547409039204691444937854221797707388971387830415866227262837778368462189984925971236902855550211138081045681670273483030800877400313950051195968733547867483561107234583741470537447033814493168888754095133884878611913205426144951773817559580020187131698726829307518282498619865846718351085254277312295915984320753769227364433402140370958932590239946361131833346017047392790662689658187689825305227263040966236377690159014444934790409034441568680500775996671369966350301820917213256116336202988893257972175047770309002218303540958619638310202875375279113336368201793606304910354157765562162485018968096187641560991483503184121096687383094055371674003041524049473619622917180241105623937289204202797283510195966845697803356073656857682217079542061332768047372888970224581709619774172980577807492975671268998092214810203401303390426823957402650503258494157697409468385942101712342832533041713311715786828297393751711476989011534362988955832944815762115515308003881290741922145229673172268992684466088458190287742560547062875535741250026314107256699163995179689890059044422401432096856107458461189704348850317825292494159842983797990995621320177753214514427619703827062637450509473814795145808692175921112693899098143354754361064677865156338477521796331646775640255894778172568706894285511945980964211341568877323987115619518940743558659824714900959711642294011253312733662920392425322619155013362102753538901059538372218924525098657794691784344529940162540982463263669974668346623012986416094052987266708266111369492076421954741523076473622354650004052911149344396772503340203547535274213290188853383802858619974608430664194429976984061556593098271731578652585236565678991904214351076579481421499626869934229318073052993348752811372009561270123333597563101525522865734720062954072705220932662288303620535202396037014841308045703427708645436433574527550397804050120792312741902486145231007757591166927896439798031685499684472329384143658779349989037980300610456510924281290717029189182983167999650909565721692114599393274507969561167893705196726770462727873719540519029221207823082335533593912028225512492811904881307934802526314325796940528165012060535182487237266913768844283906776499420011658131284970878009812980900867370918341673193309030644638768550807473451134381206759386080059113520462087925303654369896842992711529219743711179900940090016408837196985764846260536304961996216955543380016556933439087319826393992456377772866394253211328791264395505931566863710913408020800148554484086964883585021751922967156730012332259801478124520643633117137520519511980843764356107893099440893104243249189467408383245870010169391435935960360808967986043170795043310802855420132886479964323268575653363158954567268498001545732807184945240746860921671073949060969905955368234447756600651285826805596264941358431439520887229859415927086990493347333889780861632313412956798648529214761072259065231804548520486053699562252230219173285708492478304438673397056465801274480005629408467323532702586700397790808298294653858350318295428603842086286984269245719494677681968393327606075223860960976874742784465432576841844301198151232009517248875462538674325193871511668801302561291312573365602187144895459649561625381523311877914181079232376706464977171258931752681487079232284052704348699863402916604805383434432578755258994940547473244034250789427868829184471584189370847264585655196744472009060954340555006430973941609010136704808334874317006476658379203590555199177786964571630268646900810687454314286426664783233747455398746434413735944159873245206557431865664359109668531149806538064565031123056687856178109015334686688638994079236164580016086488359383671717356254984063311290665632325376552962661520381521945805521501127491402077437034664578707146538293589262170798863332021425736699500916323929345489859019381724879140390790855815980261873022923287741009304853084252789789156718962977169684356562080441158107607924730618191443703469709920467400927519954923319887667769913462168126445052748208455486107294494578565032304172231010221320605413080851482609163389075276904779425614910567346794682254641914815477966624989630910637346398737911731758666507918234776151530691786324512803242647108433289956766012764816595417676009211179442513678818965861505443860981812903422549302841410603373046247212214483289786254037654094518520324309823780692136720872987106850215052615107056477766322831480547155941170397147428831162920923395923638261094933027544074073102843018019326017130757279861917239206279295716942972588360917773505583443601324214383205431675924728868475037187045048885472245308095548298146067625926777686944086024164172589121708793369301391237446896207160990368477823145545427371759459118498475578286853548353194352475056588347462199647706705531922599913966192517511970091670712980108781665491106634555447311912980414339875796003529668981974062583999829187041604505765975753176981633820098537927450900296605791132716190685408216593798854681125217850020790654432290987475459412790540933993771320880355815379307791173947852618192739920120040043418339248759706572582485276415742203471943653996937665998807815216178775495648843030557235222895007110529082353483035083660135722667836862000547129293860299661584182061457626747016087946260357939926230575282546091865755373924560162290776362114884672125910597792578835055926140418837322056989446342944762597398100783013825489099267948693478474678729761820087474043596921246158240720715283801217749049726648425677837927341934693829577909051067812050312961900293856294948951625130103968937184841700913536203445999006229743073904891759289061215370645911626939533244543540006917495713755768325499124847406103920636141943392095217360945685537103577696052519799115913414378502247809615677855365099924068415253101944728897140080378045491148998306776533244364481694081185419937811134057101375268387481798965581639863531089837078472949394491297045771845105639717276967872882804579228587729091690956830387830843130558103988959871753582553524000632060801214517855233495437989525003882505849484867471894988475519792689780432757563459125675116591098518727111673434987669912926516901203899713653725240269739611090191738212398071702436912697035689775302203118745279386706672953274066345893717629342329249747813332793703855826493645170275715183154590528813974244169282468901784282022812216530861293896853403712637968553695248286127892829689575270209107143377981326623177518316955241972065612026712669035661529339118357867912958721883791795179362453089573328853175420619202534549709065695131207634639164341830290028705993301386758182246254649838681896011892385685200145568371696446481410589860872709001219113904072341481071658997910808766828347776847584927905287189447269366717712406918022308171537572441557226691901843259524700030087427029654531045262993406086660728568349073662260444183231146152696389794255961719671810168055910441874511148052795964439705013607014945876849326427172040714157840034205786592368042896616559907588391837520755412598777576456421597798809236979123124012018403318546875149784461650984584099803880681969301053081283093683262752488483771561007180682652495723027170153136190760423427427332470198044174511196269669211165482825922957996952285274899383992605353624853510430708239842330882394233291141028332024518403692720834082774407992349774053597667090150982803468657933167289349757589184225657976656682091849148026493942704133316577256089210856122074179168023440928015932834386661616707658758880449175554178161564276531818821958793844643711866157169941027945491865314449474844667451526032139069613737240505005280425803802367327867186942472752190082440945539794170531626043777389374131641842734328640140272186221302316806174710717893480661893748949394979006503036974915355046298434887494262742577898013050346543774751891414841857310862797334493245240267441745269648314608930358562283129527011467428420590659669362207298168291697981208068766986188108933650805481549390992488657580455610605083250351704719817706297676648703625265070805530435844864021510175981230418471272452142731922982569682170755232974946017914961945087678403226331228474058243393748499779963421054580712892855571703623913327686679645252219977245298566836569148380406412522159124102084999866635208940024168774172371986073692929548488731244965689081022173447027366346957431061974136042645709534184321181728198825549217178916245636925648048204635424928434710748333700779249415195020029481808190086444373752998778838450636662853755733413397344498761980997481871867084115893228175834386118384724109069808655888866075707871367863854830325541437621726986477870542669779839973689037220736375870963394050623516890482033837396479114079456378784240976821040548495130963084266410145225780511292233042897524532163440376053152809329183515914413562630702420323398950656309771843489569999878991743766168931835285099011119731477778373058194279281095893054383729094104296175183228422020207285847575729339580777738920794103310560012436323031460471454683164120673402756676809079141661596610383115248886325117560470446642817077051152912685688483806111227368887820643917877664995941281618577864316199706514491108463971181505306978861049272812308670959994705192454995855391340937964534565691675185368685226062935488494245543087072248691365629214628221014741538722722453913673390807848542970756030885081276050682667483601288227061828900060092178412350781942116156088391082610109927791865519294724128540797886266890331833082466419334032426229335566968600708628176349715657709362942658897224289317116708669384785076762599162702749638849920429114702707172783777705525517192598311323372132935666972087144454111028950926395537593916233451778137429828980521055647477412157156814118022037678945429807872256625344825250018007439977768190588329195445320841518955751055460240578378476881737378012699470421768403806976406493407736011132000993761021868991960457891183300420947864450097927524823432858384995457961691772850425618396694850383139471896564262263801570222652662863619659761642515616529981225177421447487108053827850259080616902804171942023513600464049513398291926591088391069528411813181414895568377377828976710717892608997320738253247331065500276799944816782147884794074177370692160185639215018863221083821524686663256086479325135535600367651465539835504020967764320886966579845727213035578643592826577790416355738725234205866373162054127862193819130804925808291770509898829695965811752624815958264538484308155954206739191449270967182689087882751853034289704108437886582252751518236631375060742875774046398800461757636892079545616904803681147221095811043411629453850242817299387622419125201218666542662069214961690168660016403308657763373845261739435236251542625246697042223106900160629926923816239460849541754832559166109740524960060573640028297473714415248649020524058676542396202252341349943908185241727046507356949732932231454186340281033893964749312381236489890704628700342687121426327537644810875071856198551924739019121861443150972227580934965862469222098414621163108625720168112710106954002035914737130510891748099256978243529726701376464230025835241214780166706130173786618381210259949384598303865619444033858785791049604304798931492802754313418206599408911994857596896339637147268800226988810518000961188354117191956864348671230311264812761206613398577616626925247741841551283340428221281511799875233226226832225392724176068018529261743249182984360314968398858176944484980242194303882539303099380313840955255774706521087749898422310005308392109329988828906597645264372047074234335637494901580270330338967449109720891787140377517943268451081479614454416117350050373845597262740775383174325641438098693510072872974864240514853821597435884733220085264747390092679552709390856527301697106573902606705983703611873861624707379105943440544988991756750843970066245178169309781475034917022461975605907999449916815791641012710926919204345306970694516508475070529676474558571821645813390156702249079356111547048689385720860158163020813920568538560136510037823465083105616105618757721072692397184205886629899176295479796818706750071325211973961173832800099459985901974738408615590511176417805035837194951541140576841765076689850529132181043825042476921881682759767690906442097772349074260804910991330017050153428323412174174779556964097098214382584218574887908064001283859089861911766046265350657490699822984085971225729677287030081755819656849249001150924174681294108907879113105760922408708459885633960874223718139865159306850130786611351772112628697941075972143069974128394248883540806136430462431231651120616805115215789905983661963667223173487754240790017394606060318972982305449652745567457641952563159181204689763941145051047333731287320563944669325675207766324345332400600344574326688600905385931944629635764820426307449613244400678278263512745619209202410343030550506558687879340004125538054606484777705995483635997697608447713778997257631002781000380603329592021215120538003940792437630619208898123726371616765495925771677684723796034739520883573630080889778061144019997925062503024719891637414210011844461672217959678680924852877509148646176082259568535456003247150510004545576164492164644870379332583777329715216211462821504158466590511021176675818234251974620156282933061957531461750356929529647739044934591071692147338794404574614301992450789837324148370704890439143756022738709235567767897481516626381605418613918284105440353061970606049253035811306961641610824626372141117771371190376280343622409701417679628269290331928649234274507018974796185443323301918119429443039458401911943604006118866070362282940527402259594008631471524990260961468648647068113468397547740140475336945351571927658397224721472062357073300598259378765235997436515697809155058418139245422830491615731690223848637576950426670565703309401911463328642006377431169741611757743511537762603433211801390170495577766096803157438342648468912107789423993471101751093897539463122431474210550243787324907368741168680293874365915514274271432615883821841077974950709468198362563931961078596495433591930354326613372909359256345592245293580326821905171379672955115294650888633776867717775685939556148020255958992455894916290664260461047300404880298891393339050966976216410930666532514298296695098264016659430760014953473539435000196481542546642625894216670191180710739394191506743084875525360204142151904458318801193490571106178141942224545020781583684204587645637410057119692051522871806866725400008437332110065593663699360931896762132391514146806620839114107329195815499553941188511075504062236771287152838742878546819255782412733246071735339343399158624854516416371518097904922889020804959259103743499380226850764745730899339361551182889990652568817445060179307586080455107943412324943839204506692779330300782801765597151442503697374942081361515324066957082487291282634918050646810840275098339556236737065232233968659149386065491393364711376583710696748064966224718520992018144679321303032976594730832188658008662270024916179986270999137060975564959645029399540788147664613167265536339984172207581454431994709987784532533748575264684131041781506686852527725958880893315391568300839509770995646475984168559105850945528559177859829811700801472896118231509610638592980319201425207686330027813124109063073154619613338693290184838943610165738104954259167400004186143119043432000319873854246453131327494189191947860592723701082777289775338827670274608260665607733390463905863343105591851236933800407561813315800263302025613529499151033715522960330259356006792443367509176604767773939406404858872839362105004134114675724783687103171209193578625770461080348545124040541725086723186639626546691853887819318127063435252506005027693557141198854529911823991851284020513320156333597825292220231288825598045784804551837188652933622685824904703395231746650953490776245356873496119968891557453844355399284519657946073798230494332437072098273556041733569717133903329067768443535629808162945793882357940027239605806468483592470083743784653412329131105379966504784018284245963264206303530489214665430824402352640083137988173711406003331743399312492840894616798034927042505569441975808886172823838151056560376760078955897550567020956984408190251600597065967634871258798497307071417264903476705467962552208972343400267665004666885026194495320194671992788210000453196182783065060435685490438975019291228680161036720786049321008707194123390871893749419517166855676700359523355790112835412705878400193989690711357912894484217192209214998795026939231932087529700528622746844312769233318094563105667469351771170857740732974003104297452654662178582073122818459132383897605592072106191504118789850076833594560993380477146749575602583402998367281618926539859586229973095426582917842728775849233796876899551946691981732976706588603091222415823772009436481511292880967474067732991255090707124171741506063353513943580032700389368110750325650511232249246338893787615281616905588849619230203662670048849587279814055357937947634735990998934547996949501758006529771403814191011048285300249269895969181322089478974015202090593260849326828561974497451392185783944003099881841039634375013643164134442409185421314751781418111020661808697593637766524738149174036645261395667039758313586262282337925642290978178260008911224651044930890761490525742008580070635818923718429684099813110247406644691295378636605306424614188968086406948698481530719000869657386651937338606473042945504042419744031067075777924383222105649880960738358588797600108492659942569786255012394734122984115368331666909207757357442165885616117586429415480570562122432462168305281150468439296859513506620197666840280885550844404605493844182750735628732265103048286601469048948561735151415899605541347899422865814221157737800832917620635710530192403115312130673546066614969169996472583324305589006075735784498529495170235852739657382218967413740430661468055367961280031060471134616024595790124890567031228442635999989828358716056374551409158978084738775411205361068713998165243319556482727255312729863099044764030011412474901603194571597409852757977115976709998087454663530455356231658627493378630272246344456330778029842900119162752507141519288198446151245222743865449598252785830331512493793080004887495889473471968576018796085329781304273601418125559363852322003706647420280534667676699324446031970891037890168945793971088729845129693960637691150814348098501021523723765302654793090636580554861081252976271963506183453551306452747905519301216318549675304128424803790366361777753577768652631515732559573157465690130304341181132484705585248589460421298514881101705981639533974631567051896195277773789517672299290824452363560375515049084577474684941160136914991539931521405434356603637729052317132397511816699345945926126937884583671715610469625009997213029453417880715291096390011589131438360363845237051897845998508173818733674455306307717249234806727687628549452689530988082792719431794551435852037065921458530144531279621193172090180148442121310453964739070903061979810363578190391403349859976543200879621392535453542546157880005053429663957286469333006655655259936533989105086867167414954413951328523923285753710969491492061376905411301768505393452170540805603313472119831034467837523450811557368690168683493308766753334626463047956183504209297076948813404215572226898491419608202398934524388491243802183443393703482750115269450372741738566669313168176149378338748765467547618435011850497988797081643158523730398328228431916992277924876700632015547489417787030633178863574396230139701288185003828519314171683482204685158861813241470338904880299754585715914805077448916857393951259651222343736166538134241758017066227460584649130390208520855850085221081634150416196215665135982990652038742182073321922702885436730507317455567041428665243003484006295084854693556730035322270923487842543893842496003972562883186495061779616754355698462755172245840112227572099308605056762128866085950206108211186631476348812419537029152428406983329325043111736971633382968681575167679861880693722353783324735357205546748479055112030463890818026328319843829227570940620226836799797713694591147511642159555956389123539966107455802042094693062848060088871729406009442875289604491371532507876498054731072319226682043956445985370985664624968281526616797687419305679607184310747108067531662445829909728181985627967313301252729655492525711601690191331554790428562218909973715630204866115275566204024780632105887373909889748490401753682157849886562800091131795635505152955003591911223435060373196087042841466113128291247733852126970520351855424145017773503211360871439486898999090718132449233215784450417095098736595681314265071290855589524447091735798099168002291670707689975045519186105253841387642687047392581831455181398531303702327805404017769947240245956557265766561638780177415445930983482459186152317640205693964458443444831065751501378261080365328350615393224240822575386431316443920447292724990802271783135562237636671297580373565981405002994680568819980547017957913535127442479590201315114394164891271321909481101440524469707533489086204023776866520222248657618265870624470124739911669583371961384130844704859982406779247716266085683746104501819462329022947847244823635183287250079291525993227079982602739437151933228442793722062368800931580336339464809528860972508838138247156351855249441789172356765592886165819401208954890109213942957238149795343002973065930632517925027033174831389277381894213087881084509257163546708770028640770216535455213057666469822582777915411622572605718679940657199989109272130921531303431378238330028643878095879567588430430668137745073648090425776799492076579564210825615668407658810774414860189214838755460965218899441738067508937232973665029555537060875806828205817934032204079960553643598867517002225413084889918932531268712690398519821254445938328029597048159653816377866515975242791373077427436501166141539076381866432661805227563349357182074249233689410784834344135634961205901185361632047995048929540540579962031128435221485738717019006533864576118979243281754410259838660644936212897235801466273256942889403462313460756141179745046234826956099358895605137610236797474373712854978880745567700945795200396332531571156991476888841175661727503433192387912763057334905434329997946185282350430726562362165167254206473585115437971282525891245696281334304384479580859252095574794891176563370735314029751094590883200829270594862089348800711778934001872131246207309351738126501055242304335947971264370415180887465748626863336091338238230897592585776745355609830479584915064111914245060360151408580916649541121658647477932748199382434882561714839954946290494810017747120508857967018571474152192048570734570065426378475488606528027409670359102040626708267467571094927219386802732419371090688719604443629554247057691766053248054980708083914238535403475458063176274745932324637766507476059727303849769744961280213803525689697507832107010995003430666189437062991117295831699693659047610208960969937374972243713496232049853223374266691230162994911926387108227600778448824369067863708069483167596578896012717129449944507760221965455164721918851603540391484610247401758495051323131891847593234177918003034545923167725975752893444102820573713410831921534209098019099434604342024385339461705173237395404580454244091325199198576550194298491225675047291990862119137066821142316129503704901974850996195206184407082748256466144726585853391093109012407499821215767757687887202509427311519383945540343875379943720500990774250039965861939338477541357733819822859139363459404274760582645995744622994831163655955377156346200740127499476330101715409972289185217698221435477724265676851017254928972170507191595842419782556288291844021831519450430695245579917850227081373775191609067524146808573450581054380080431438819070912209831547953260161122520585441981717798631389272333222451798142866276185159474684211266407158452161687833979047033053679100420333478433581161316525746109383342740567480520052021360819130615089569787439851084898653905275383533870193605283703508271930917472565522478786819869874337384271511831799982292405330510707895510547741047232495558889508843027763105298524764174865425814743471734780832515904368271660161756411953280947480807463324673448657877284061928250320700962047321475484043056108794292306126695844503511009723657780762614422539380688193933780845176663083831803306543855892364577697115400952072417454509665642521085061533860196206537713047198136011611778368951353682386945693270480382398588648473315474165829382482182053193949210580220181949628997812346870947415671422421231233281194551680846075040719057832534479444124172069162453413055287883475678541063456334688128819497904250920637451284643095683310179397703498814332162731702346980092706965030884205010580742242263705301853632304257577072300743278897029864234707086400679943531064776689068593569081102499932128932156816351899709006207688070166770993398310889336435697573418847848691729734160824048442594687581930293406334057968702237153650820021470664716749816872847747708804723721606195427377188393082253205547998036372492570031410682593459854016238943596790295058025028706386199760501092684457592273223832673070736125150079175437026894263610527426333136871061882976019983382280796163079389787756709952970311729447918150651988352903134203743877623209147942505325283183616615533584191574730484769093236775506743637704081263618770895640441583247997398453186909260734139029352425946418923046043117302950637921268682815752802627914758537511410949078938638636753032742642354450706743995533948787995337786103888696993840195468439670312744121532523240499021300761747792372764949799288711919076052850599094521513440365835246191373100000352976502339265797161587422849117006729309488586178060418273564945230471792099055634567948853739590801361089381573270719778053422481978146735282847101674423768970547139966893649942859534138661450135072531858116922464739450053687864320162521842817611106193272464673610163629999385161180289343569757879108909423075067621592728222403567849325038221306686752496016624065434630038178602904123357665012090091200660414218413223581693219773294994222261334882755696670113855588868953175241179048494434689237303738837072163446347735186988662795039460629723336918024832899821251566779901787111371357155585466782538248890535676979524442739919625459608839099958832604948185655514462969996760397356970854897136043348371120022356441242779280466929630345855518194780985826601085657613433527385090367929734184516307552354513319581310955730176795524504214317845801482262610909026914593665625861447893957461248700867112543378951678387524313196415931407120866726103824873940731969041567973698466229828819674024262981932406627792296549250883445931479790655983426253425373888916090374470102823651352411849592672813470056813531334190035283151211605981940030263529824713125528757670447067680455930273610907848041036614513554517211672486402719948197974269035804816580396666737396364873753802688974535467633863804703518461369136243293944015746285567939165230637383913959092764953580852489156104495159803583695073601666369401894608004721178427509303268359040779669723784951307094595701303595115052345080012487844443128018405319784736032847501535170581895346807211280835275764119859751120648156562768440100629335307001168577483977305625254391196398847767473337940417937033395793438169720020991511244893443149885555587620476692903492581127684100176492854236081899140071409898684104494505864195108972468346715807083074043517893097450741872625170599363857000164355063874719085960768618173628534767864538548519181654308027910500357998245900443190778527201094556550201760527952035681599099680309012793202926801521472412867316180491151163366679091080538630748276186535920690655721021565021059632574017242226207091467893781821926880600620859522064194170368378319973418853849932430704986076244120494897742842464254680861023671783422776406177721602678510766405730864953282911593440032129866716744576288493797628845269460286831128977323120452090928497853138514404795728105499235661430670880884707719501278699880868940495501917403754223455048977612028138658511107846610771354153613194299928774530766783288201383737507188098620720120805167108747399731345267918471491459041784609365083998987618531676300400963028020579506823629941075867026727494199015586395306299709661350518932324911859023870124595751601297726098103593296894321201308821039929293952023448491235674828180801396810005088297842078465159136470541261645943179127432463613596507172419753872142020394276521298308448297286870173065228549129089939101565440033827751419025643968362765018249746991763922123244955053099243965247284246548542093756705456724114958402567226863843769033713880138204369188690498682404104977080363792788285977105707244967161189082709638843753730883968662359680370682159645894541184623020457854849363800019858138168106488280914888344000007754247113350735901640865079655170416499329915298932247837906314836417433916820000866338049568039150375241592338601334229293955473813622189540937260304298673010551025514324681931415308631796424916465476402892911323953553671339230865614202796721801051159193619238045448053569949284201701380919642127050029740274724582065512604343750604390832697634180416892900826527176199995734925370404107294149463814564556706118869437964380446269377843791325475728222331984245395006105162422243900059136248908314346163152813596605741323150133815189812778549809834865592749286479253304951971491956528713261146392152119431593695239903756567873551683406862393909204540841570376530214053595722338728242384389062196345615324988877180630854092531065770546372613088606219216918636238929420136723420322303985585834250647169023220234683336552874976297815506128218559934051416741498690167601620439610689120117112092219354930900960757446179691360938005136641346637249073849247716514941736381827055941657714553575377725787309221355567076342628175192710328580911485357757149543890082848896381100757128755570331259851605004745734619206708529515884094432872327140601293546218392136139240690822259629797624122299292723522259860428937334704064817048894583085947451805804365679154504443548401202375698612514761110818343406656770330833386848932685463929781930808966454978968557009227640606496592919813802246440097306160936255866303725830299877187681797571720671975228731717481659772039772600846650603400660411677536816805420310758793163352933159643131630309957704181279537546157472132931075575398738872394128655703941643640972625426634913116595698792229350757984598733459143603840597808079290087501510878395850661502032727358407809458720125606129302463320117575215782981617713084752401722646748584071028808531483825460971681356237908141244544491753225369736029034832201554137500702283800908373818148522165625524168729402622625694374284734155593895499754581422120611017962771248140234348199023227743827261352137623012185593083030738567088473860270379953769140714882208523381786429367516148844360969169012733322427861206937378473856674010397501841599071873585482059571133994921266448380364740472787057167128780077736620220974912023633895145096720668636187020404987174529711189197840042226655142720908030314937340940360730822506934631529271331248692294215951038702863741886225591867877472044139425075564111162781997706221941426708851502140680898211968721265974040907658741730972088626075109445167512064223259568160399716282163146937670933284169965578430209567480749576076249894783970056787574619225447782273634494437674119403915171458859704254084562742284923360209862111009835888024740821154122060680605596193781465325412786746934128860018367053147305665452508872070377082335264897868777244473560733636199016521124003595923127233689192386700941521726900598997728867474693669359021546108346251569760241513960584763665364304197424763227883589458006533445012257842515534767804883047579274587306816264479610779548299571892704199180742566287061726831033093501208629136624209541170818313281604150831166805767511163654493420390074583205983738820959843530566193375759532547246485002257763846115759305210372176303197042359659792906618808556463717069893714190718704604696568099495987818809359448154326969168440696989367743758772297050602330215396208736772747240352088823951465664725446010873728220733610274551559129598738693195836889400357945513473991990919626494571912076726325557796523756816122042898377615532827042104724766569361528403844898400208453747395992477050663006893888374922263740089234087242993202509185789524715581677615867619835963993645971796147858170192078608668833916052815309015414479736132407674527818828599881015911467032117905932073778255391800479053693173207938621997847002247960679587455174925839140439062384442763840941872651959204879025609492678532896389048870256689233006628613427010819622645409264708953634518188493256058978947250980914592458406354121789438093606628025533918942142259585927743355095123148427212269730618404443544273811142648051152353712068530079178872604336356274563125991032669581917415751758453852794367489155613462561341197447921226789051077647926050432426030638724342593335953139629752501470770394280802633244694768206985663815415427585339376096321012071293931281383031366307338717421936147475771538709225912119616756287022120907081459115354378110215658197479177216411308620803156611938167794088662578242814043259541337642269783414343130514700931555368715807239293472510826967379133983980539717897626307407212982573071169141149494839632073817151161799757154261933993830915409428490804977178463721112567587694743399782899326586067546639367714645193479697207723581237959367202535196857918859490708860286226284480226235535080112030447342865433240874438970579965676019948929405619686035436284624523913305230655807043777929916772403874343430349736515899314292619271895678658795849061633701883488737412325791143818671715376015735720171440844742683061759965198025613033395327663249574676401558861941774844607843209814542555297299370540987436688995420667493528796036493755264481301038558191412466677019509114931206962500993370326618994623359556547760958165102838204349496128624578998946279110431795110147944654317860752955943572018986554417041970119680557901285440149357969926125955335590359580875547333474008831482911472437267037119576357892901803012847297767356214668163430254517341398524123569077087521088690157526089110033041843631857889167447788798430767320986502484960646651307508395824818078095950571239856810295581815194002234566961171685905298428706115795745314980467939838738026985761352643869985294909706616642952582582656353561285533451147866746634916159609529762669806733197517051189865683175122624661587775838614689505371965323316055588430735334295264446412235026429236754085358933106424747933859913221355842812848557292647726152642738496822242643200367743908003560268504288431923810417722612942350940204544975413593597054326122934962729020869674746318562657431958073489665813031436424843868844618761755729728599671227245322098829199673306362486638083560184170928529172234865220846640644182942712849051839953030764370124881811108624582681815133478733586038806230570233839218706291749950948316003559119226789085772418059828614196291478679359892265541269222528824133140333185760462302469266689190515380791750275268156796084630350772961943014649789418159132037001981150805862344155140412300474089160221332308959871688933062117274131390254186214643430401351729277134087463134075641449535094662131156297033752351547228776428687881439515148651536386961379675607598800469305523935305342874652663648846091867540724102107822268172354896974111465193314804849034380158831650083944410862181889836234962307656758240520124366137697577660472745306933835083454352308053451838602901730204740806374285650255733507432153581218227789446967751429269186880875421516845672198954005333871808799381500494423587802521294201616264828145792984451877420350951715499859692144986255183811962426344299636133313989122324582299671769571316239202536586827648419858433560852523984328194710547129340109180643371215555892349589180480130054833474553999925872722553006435214037065322822403301711489943789292903570706223750109465334141903122438679273180291408908443702836386436634797444925719972083185751764299627443705939631271520892795404287900586338381872344066086565178486163136261751091341969655275163599025478789015003028896885332929071552143811169070191589682389769375378302968098595722464014370844006081534186416396306930044417830920858940034434587824882585598892050155287751885909623362854162756303453896569760844895016926606049774481687453067965595457156945671045863945732585144301131570829920803849767911523351042168430758029122248604184899146563920882246547312527511288468730269552586977783427896785512387037437008766677234794288768326673435087000395182051084766627163663237254246448914939917116162793378415416448221572252450348213682543909220398668795460368736844255733612795774711376560458575051064329472228112988168058718352565612118318130517765731283331958887881129004466595809556136832330687251348038715039955545271348170527789776252635027973707350268592556226146261670388815721002289025021965756792147422812591949056451151100860875396042314358902173224106896087094929216274960083731673188754731754255274998813313747671888640005136295858865492633572834341550257633010141250844973956725636893787118544833426845944847677026558297728237169973599114835869854254128693542326950814037296437760125654737725419090790389227405333797694808280905636932404555209538815392741972170053233177347413349502649083644929918059369000337583497415261880933520618068226274146465534500845582178635315482201311908721024622894650160960447980614940147359117314538936486217964980866180063852832888933512028548370876862233671316418342149221142490961488410491715725184862634918142494812724834974159783515959789740941067762461156542296337344007104770252287158897239200537622971324173592499534491876885134091035007961307476781249463596257747086623577458935563905851745728517356045477110748998618741965090656155501188112745286683419295018601336721835268322485570060920045304392582256688152632613138487237515436350134844675446684330069582460131561666006124100926180935897707971792104532466823322574161793234767145590631183155524120958837236392270231831623018703164314914098694054697399200531769464194011268846636894205409599500853526642657390982470488009506212181412310928207636116167561675568604118467072566479108743502297590571667778565693688271934741736930763700360271226561493645467579750692990422376233495585842983779727040340215851046199126779091811517030829906091888393615781860908531638703851263108161955861644440231935575739169020338794311024950062069216082084803800856660536116746053701071895302982946092057167729543983770621682416392901139605146531001068589250283831806093602211352474832119157638670940300389277716341552976389096103415188336043238999345099758534268421430204921443264247880652663386225501432298823808618447075603907955782600660448118027092895889699684472472985389685432228679189668483865390831946557867290137661742176936175766142388504782417491185800812605424105952369048626963639167020386545147502877496820733753822331030558607065765592959048583904928050527683987332566365349239294910050279518673314595238895939694352598133301464678142285589472299018380666987136516929089580492784135697075581459045042295340829553260802453803417864059227296710143582007165503738232931204508258296524513335021334414421063666229720641662851054601916001582410510950447157775677456804471817327948230097491137209277095275017441357515601139930324409854368627754956911597744454095266519335670045769636295753376327384772367909469251143726388546262958755865452236892127758528823797920438923550180993490065263386391909939218720411663838863981576552436135912729740599387320433257321674659179733298145669163016377164163985620842648180287404958243637013668750627424879949932772315342540516185811321398577231234498692651946105813503932213541184695182010175896556555852142187590955615506698899831015740334978964319172139005731835312963018368216317979558683190201040695843063839669478345183843075505907961488111882263214241563504638489904056734897854256452879733605803552663986930922660129880803386721693154548460725817573005037787380844149020758456073135466472506106213454420131353265022264971301240700605131744138833335809535819371455913450247802368285210778240723735595556515647431370485730171872681631946613217149926517903670845202760041764784233618171303217988460474920698003682406625733803732271428570178123824026497923506543351342710641839240012243636299800914009948658420233161588977430294811610859563209669551290837000744194983435011680404314084665442673762224966470165073870947485408573291471242517398711684565421438110327518567609606778308148746158045844892263890883172108916924124164893432332060932722722587526657381462707927120071709177364357313306215747971009404446934952255260063725316812788051149810229660387224322710550350907540339388224464825292918569287772219770422191558210605567783510324752552640015071503990397247185390462143810327345319628974260616129425558573027757111148498069103490133927981590990957105786950336536840757636422384911208046496228611953927430128318949173909354816240507348737784692269212461524025708365356149883187493517486033353114988656334340640030883675984264388770095635512655010932005495649067384512635199994427463318297874144872455012038991820514484032719039660724071679606880260553291294008878670338626329050579507984726400671320977355140969697325281499465431297278187799462917395809072452518201908039874554621695082256912362282245253396460501746826008064215148158137683268317701317089366701009496869994272889500213154860324196085399269772334864199272300856837466912951112527295541422594689787463844938813214152472386715428470837518343630792259307584050422962146468351805167232161686364471991431308817696635013470233045575009040941664635944370125937756640135775612397749700055047897633193405917648216686060754582718721724619595565644803590527103716575637752113106083331312716119953927707292715409306073815616027074136906765284707927879932966782138424432291838118567178444243032813450369973288814985378902614383304181446587875935420398448737734110261346285015046687712959459190690355247900967727389649070282060872438822457540224793059536638883498722573325799106128766603127622124340513985917088777349310778435237055289639196154977145327174223072823219566083466581755208644714508433656835641567259296807508568580618118999239861068154070455182840806297527640671430165670903649784583218869516180348748134142523375956123049318055906526831017642497889081455155315452033343468825543997224811645873639694474557273950189014314830722102829102944315208888653788734000328606906084407856600324402128932635084458241150651595029034629197601105933162985657512207042184568298972183597297618921565355645343464253796551763106438499128641197836181729180447062744844455462046130543614875941061493161584618477016916514785603799191775031978647481671371360792233498684637260262168487713670197266086449705596256859254458277716684949263224199011315906538860136483783433498738436444563425404100123238207812956744632777048047977548296057246945271206153987484206835300234987042257635389264896939902221776917150065421027764017490067118458305264830298663158250096898825407199697551942469504878047805335777353190118325187978048035454853490610740040016061253472545837850757205874098517676494486660878514379944859797587850431228975977481666521725295566919767715354790248549906466230936255474662502892083705452609918933500053901097899474686807831052978420093669050635201891927841140261823445799914032558137431194421368048723664680417430599592457467496971747394227610983096587309331928821655094202901825732712554172586087072756334154540030416549802881508619006925100270890882701722484791099196868734951731377699192490805108335941963593482219374135967371618627854815861726561095496224954289919782957818271058710382040806957535285831322508551841665134000780777313008400837510519238268274820625572951851211002857121695074437646718322365945435925031374567890158930276766518811910479123031787849339039394302547434419897738012061959075795966081456158024240186266723130391670817636793193795973292785585319723254579873318695340884455283383209907015390190699320332694237734058970127697417171836182548893474165586649948779214837940412993573670538312312281588657361031683524582266185247111497919878774661918848492780070966629047884271828809493737170597154755348295076551602895380046432199114854751885376678181096528409021455163427976978655191692567934718270364602510917582279968710077017419627927119970198420756439779754523638405202695361923056494562557230963996201538695161797452235818833736534768803905183420027958993117670133920023035614612006052458840586279137800998549278397020957478358853300125005191576860900664115752031384415491826052339279767735797045864924433482895188711472086365445753532256197741575544928924251844027823177762469994585442449406146871096467524526647977847567759813525947060223815209851670907349629222326040982684484964567023905474388526658323230870835897689814140195205457590527009751168044286386399103777871697151064071923604788634656893142836061704977096862904579425223815479761896099506089082255168703823511870567104608361728291612212192567953818627654960659391726328509456774511291954165916096126008187087714228834244673236472495107785162548630100859598179808007293287332328657694123886667174348494881821309269514761992783665702521657744171522933764342168906681073784012664503163563183632640943079481161027925088915246039381907110228575077765649075806541871435463308008580629191949792351049412544592351520530869625952933580820500675952927710026621823925690898436709114882515575113017110604663506156846311266998119075848169476995735287663429842220190552640485844794074624130248977822320684977674602506574005239039232506702686562991439385497970376953493513773843347477864322615568678345898283891402015512104255995467619253534918650414267034786388062667043408809710909974214413418564346517615140169377813710464594852930773665543617468606069071121836816160908103858723734744508778802930554811181725481989189008193056396102726384594646512159015493976092472444204011267220613741878396860927994639259375278947788299839634271088460885267086437127452114587476986509014761506185846312253956757587777154464628407248382719302309061363281536402575819619306928715594904477673842899328113696657360996806560163383224631318528764450828527574252942140913597221991904994448889478555567630753137302299072881224446281267073976759647568753502035409755175999658471012673327083666706947368523928350575955776725467041411955850274822195489509903921282487986887777320948418390614881333956866952774622191706112854174838249665405928770755819906905097240030982629916401978686037034014421472367874435702359581804786454184783662376735614866108559741534873162702593234244465283729284109748792459701536406033284888357953356130422959077363813268271881883625299433169156182611952078848878667448460814099227171658587030659518323741544867567483352926541592142876307748747578150736534472482974361058531900434822538672089453954004161938328150260573743457483081441817629382728652640984608878922103277873088858681451552258042204028551445949362060603533079242516907783961512243126272595353495962608094181766118920899736679653525963698320447677748151771849314912000440904729277615909985687584694242996253601182412351116925636617497276633122062810038460342915188520936738833898538638763935532689846750153945612665433846384337340599794763975615395858242457374005680073474550732228777288905903594441737516301575372924754679705592259726678810386881568419233024740485217828173079578331372921743757947725725573146594045622235905309842868278529653487008268452228583572358377730731010228469854879574060221179844172131067225102259408012695522149356183988218496051223874712305979188050918152726161776911875939728041939518434103335924161988348240990476207701341200096149798878852657415302026730577724710526974748923296227396672770094845774054565241201661662611613146389591560535816489983845016786809366444811889142163410078093690698475242366166483180353153475884857065098397722217414314117826295783971450585884068329825123054503785268979604014888272068250774186002829316371015787267417060700484534925900827716782678008200044225294721680292496394249415489652777997544470918255891641215323958066907147595470669654417313373099023465502798569384840880194931788524793038220034569575528724657257052860652039516214399696939400520005703789371222277409199952392569588718742756657913925200884523641371585766407858911851432316383504143334089244906533862831391457750869864687484124500405799770250926445504785684106942010820215893449719906018677975330130348526949772504964133276467861997447557698971052385886338000012111923486531542260332203158555929073286231872190848237284457117379190719494848909582167802087913486447608942627884905173244923886537559692595538263306929676598970900806731682699991261397616372900843965866108523831582318445871980695845738505270355320265459965683128148555396788982022337961763125421250254057771448834929434946873778854841837092435221834147140608404359302950028128327566404154415446721241707516590532936203748282803363934337028188476948559418105586728066937055999131421571622074858490936616382546447356451957478172361818930465454090940501611926067762734139818852788393202220601045264046667221015094612488184127384297307371771399315596103030660800431420828225897337832639696303973332765304800141945052758632168323750827516134968589578391436029035821464175858940450248396918951724709848473963929761583955620039405352765286204613844840751470314651478771454762624489098072596490068205948133936883289862957997682198718471469536990338234566123388479434612950925531148704559468045297560871538452508482444084017392012203316110697440971208527646391600468813808539879470345093244796754571073869584738901368213332355007326350766282281145342690540728318388516398110477315214922168982222854027278370615389134071167650728946188456142393951566542641909957749541787657039304650408838789073725201214215866401925692691128336958765257982836429963841577915612631900909706818014899272056246719758001864558285295079816460708321148237139103160120263773920591283777074682039444773083780052962738701589479991601040771534688668051578090536967925790629602443379809783879551187393588536146941902420434366756485973157090913565532530930121341508723644744434955194404175709870134538022050889919714379655507377087185672766998774241306036686579586300501733228750828316657432663120307465511935187763733043044608581885595874838211028006013302011160404485595248290611865920615965025639458487017993526002893815449728254487993194286398095988963766016625151943860322181196174953621925495168636136767319784344841848633909396737025179853592387262677903217593433148410145064984747370362407074862964930084158631599105644144350728744442622304727829269916306679136743447810463473758307395475885278574717761901711244891383381889756740858859396824460649003594660395478693825130439953899029948621207592738111072202774971961480887333179641292415391739470246073147489440909564776708662535965923455468809803391553059247064291706963190223686097856909381897008340163971602127655573365603966877535401420148119866724521986571093432893780924789005357016696559398161001571578245502327035199732161364510292775210873689058711859188669903955458233003542464604120760130509194316160358240535555825539356193944326058350775736116719114754572001614993398508342463010036655879420485635459908827755904371494881235776160286918491931510756264289699479890396267202377178497262374682871975585732243202655390135950916078676569504996598031898433790116643492957347552344848692609597635132535634252159547924495935462993296873359098684211465706494712900675803058165603878481320796271939066667914510249346485330762201906290409634138429476764924540329268729798088047945980228439690350485235748186980008311725735680113625200513148671600751115019512220136394879594460316427811285838830995578526594900481422270063028113837693992898856008842917925343441803914243698879844964240852978203695932537131312154501234289551499973520034658717022874142454576393889923220039134823184513639496131264478843254038328287557467945268135545226435966958647745429201879041402214326864375551563168568736500506760898219768021312144812430190782075824765278212140220045785800744762988988561585049350045306241523681833268423236400276880708920248391857628987825293116143245117290955771322941283709670452469768501895216726393444052185847126986477016863151929445855668793820732002786215506623930305940044508786811355349170033432238351065996124876810641497314599144522113083605336025373509636806359315002687773936245197288253862052061289757594352494694728065206070738826473719832968680331148049972934767950099642416162996962779433444057322216626872699015535956393393372438835833058691649109547025803692709809819796775871218875280197149209057982594084930605697354068038444556705214835403620856143576144225378601647798082004479140268645259454322436815539960725878052401562480651729992797805841760085431855519614949574367025092129539423631695783485034909622817113277750675458709352600839730157118060721516356222246784145105711359322045554470335000856925500912280024684251559752632425954728061732751912119882038012038298748536202344293448404482222654148112521562466225907030441001992866295174838405437678258323737769977338269350238854708056274028331971519449585070056643883195538914760555568215615966187652428766779861264352442388577010286144755437834323859369440873531373350212737910466233460066395614284490834901239352375997976260152374049120864778237116767570026629381734468111623644612571675765220837069671866468161453149490654285438991593575943586421941906114322822113089159286047767768185564500685818404134421718683830186408345371736545317712996229235327700088209437402461064285781344793769323251403786549677135440197136038980326842161476142925115232271198388541422496004168712219592753828882629179986645960795497771200205656087128168168685315659915036888348396013887367681371361621199339017509052920588806841524497216443579953171925793045247048068520433524786269238979962500943086958780503744416681596338577555513158003223908850353621930627233312187589994412234634720089154399683476174420740308363317260100293250129982095634097079284316253196847458721151522622953916750420025567219939521652120630274795142595888180681744890352096260292904256487334758858024925415991535108809966182710840945524680967964071505610181823791194057604288383179350554814921560331356322148051306845580343710643293884596492023808380509231005345274683201151121278356255910436611011903732461617254468191765743681411183642511132231257719016873940256768212665275656298275651057751965964637460727539031051020277833481712278985980853712909381525257515158098115258107184732894117381714574286742979419373124574351023920463481569256724552693431589120468905100511043957049254038940850782615253132200275947751340272217704707000682488772909282317367279516600525652537986110846161488041551210575977255315299047311636840375583230408593998840282699055328257444812362599255876055021034532656599372257618749014811184187794752496966366447955195862963010070152753520324197302560358199438165921989882501455024599845253257428504807466159071536183206646726706673885905133375542236332464637886732586055926540751171159005067397473991024435997753635815128379311642314264447848802517149540031626016963091390682839904817079247161288574196400549938966947834002548976069293095973549576333043732370792151812542670450287402461400889830499975778538174254420622178413144292729554710121622079380909293963907050648266915879126195844323467290270117268547739677466387371453469242518275056186405881964235519752593593738979856686696695922534138807229297959510569859152387134401834409402884608534921048961681042715307502921806011018325006128886160153340860034102130389684706880734215271848641008813913604551074632456020999209636968620185233108381652635514413375642499906789678179552699427217016880396688987075148053042666816310532961285262969032221290912130357382636098995965650276297714306908478636353092377384837980025080814279004061660675024205270205393316829652747928141086675590193271436922630816614161512564548636855746814632178434122019886957628423852686119109766962177539594991628500478184933400492340057761748588439518688430557787928118789201749396799294023249359354181334914899504968911568920944167398978172263087866060859381373249945853790516977280546783359660439859038660104157544108751579621220083220658564568903277815751712025750934709849184324922545900604552418879748303508444862801726705602110950251765603953443215464114952704581506656611973346487712565482568756870971075699870848806595267457864840595304470319084969988619371349545252347389274856758712048842522344957041445677551078312480984642259441965103358698554512275973798765935942643253729554775692503973246338031802578939342934343430338347825201377532078649624417136168584361572471706466349058755157366983974157484160955803281517896160121092687782124815736266758563204759962502357646582120179431519250631649065944220762241216701857058355795155410542643356793042754540975722748256898286454057040742006493414992868253887030157707236683987212917255635221417792533561189821208657127221011402681296420255383500641990155388498721385119951312678670941040636236636364204844619293301884042372131175528515322160568439984403138074201832428702309190629766505104903876092388404480621747291341062174945159008148916424158582528693595945993049151066464259973858538474682240018356449024346767147270821224545720130025817422311420188828491989896155721719329260052829926504445723968150139556872041157702858778785362264229539021324165608350997772926012295005146565031738556711005116903685120053579218557481226993299706584458018859331412537026449527662718228909732589524444976028970580773545989560585847999774146376332492086213565469235524580006450574365741611404230734475319818822809768103630951471515729715726297180342953528022847932455642257671124361330956656020977050254684965890244187565581570881123066184376270888114910668349297423243541647089143210110819996112577071044485007708721045637167186820391518070893104977084052860606850047081893688597275340724904399424031899110680495968623176676842374046132164307916690100057931987571559928910515736783325709558942048250285106833034366005084658998728385334421288074298567356287653563762438052285963031418035941579440781763248068875787357933835456959462998633246723797151432566744668195383413515945423946242200894652825721136055064494217850220127012454843432419769056715193819677097907922251788694764923571111166115129538630501242169788820787327468315137840180161735862415966200561402920007980568834338303525444871198753590646607643956683951313576013486276701456725775497423547778490091911366265747538385224217059758715367003358523899002106085464611549034093242410295228310287264535176567620890047861305722683866174010979954488704533052462482065334310394616393179387992640727264822801882568196061543339699538118391931974647364475991803550713717601207536119555470433351420615398044394109289496756898254592266897215478501242650662661968181618392325745919588061133677749024142016742509547906373846422803490035416911609136289809956525412898519610247588620003747263934166379455381120170255909966071441107313628826806706387916043168149823567217315677225493237559100658416947834892795230754156706006803490737881293528768649784442568334830689482838940028427124155995913630626536820287019561869365770111553408665877567128223756420134240918220330506207535763051181962805143130989375591343541363827287831017343812028559414119199854371600815409039163525938861802287797273297422395139526841896824698987344466485345346864705924485511131345533215940292021560143095982972399655887212166798830231558668701162959313659320836737193644848624573446081487926534793737808810448812881462439526009807268180105391072905133452782653352994179018876958483255669717268681864379137922267710570311185899907396548398784937797112561082340705053478463428994488307492248363893870460681647033955552091510757805707357441179339470136739620811068397800020151960060930302046136840342316844501039633758543667093565455842912883477618867592133143629453513744509987783914200315362125752851479595528922087956810054978683453150527625961948097142411013562176632282268122308795766307493069546350840382830309871056662101451113848031385021647034211191408902924772578820222674466311231728565534290712005021432222875757111709697695279594969932326920284070363499933770344019764535327956043036275108975197809084071351953441892406265062591551290980180647930656761676663184193075852732733821591810944727264923196372763805174925878593777760417508295433097156757220068791892288992258497935562330570626451980022980649216382371188100788594066845415236924539320968714299044647338920633667992384626885279128115205078704180579475987652121700422616898917675277210671887167132583177829321799353443523188039609669863516609952228702657129863221154965253851150051628916305675456298866714235315217551729543087037423694800502998118455480246515160742202097696436946574494482045098919697097460155911387623033677593974413936031560606117355965240262453138509428063601673899979511868458403612822806544246414117055811758922355985691842639457121039675704215348812615014379741049532190339324489580573871931025273995095936814625743605078755013307869001052786042471492838978334617328831031428704596010749290266639011534674920377608630857286445504776106886626805428649549160397652343891199396231256921383643443225263889419324210894290101728286682364680166957363583543068529982441589831511406120237430978139557382194139631211631180447909718841914203473369882392224713761481108211293646889804238863347715881138400683942113446643664691077064728049993625757277362620551247187865094275703373560702170034823518856753271777031606548331899677066543778918097329551860450420299136815647450602328184132649076371991617628520329223472073206377830367757239162410262839596080799704274820803551412508092767907701827719650896474474004142378914995072748608813657288463310859838431648640493418432574508653680677273102873099287521182976519804869051800246590773395311278854435817907144154685599511990835500547055787341229347731199992133456070022154180732387016367457363158982632854466872879750524511243962554994670291708017413957286462421614431990466561094843292582224326926538217295683489013466900668735084311646328508279421329462348685274482404073179664425030740700628155866145406163350791529503088562937874060595786695462228640927496764043099880035068787714417003215163897572145571734681334223203770011655699175613816935909116929108759830437548412242913181941326019722358088905420316725075981322604930427392023246699222557269897230327993379448013418755848751974464766708556756806775434686484707195408828614634725515035021909259039564609610398899146720931373872599523775972363119160884507033386748698000499789614074756787277745391651924875236436432104606456836288025678090899961143288739322790612171570136769512458231421668380257663697959812632068654080480018599946743450098751774863593812380876289482549460686294861888378609114689465459341391461775616693509885995357164066726393453939931956061208409895621607731882168044795912218933553296404130802417757461264232813229130229995599683640264010270606936207762099391343985504049109495497199687812293727773141167606466931003020221287925706540061186409983539034559863234809182367474866567355615471337487676504984103797853493388015735464206838325886109237522054428247901424224476049393972234721577405132601158900405434505856087973569179305991839982799504722018391168674933901990939403846722201732340298229892216371268225388950909185824090159526217630349873993901488326313468395020735952817876047860134643097846393295986700816760434396812922532782628751877940234726698420210146928137723707556290915922825118258809500713910523491603773218620101117104076318436079384234302710839962467063776223409672536569828419022957627909199030075117533682307029552851418376187502053935656733101108377115212152492270119016197127719959464313822237386749986974907850029241720188049152217710096449280577010332733654237154209614473374054514074148508110097668406284184848294671990178367280145871031304034959354452366583049950486830805094741700505308873574531293578501140698538511096855092327935371923955182599365102135923179227984528490706318981765153737237054181473520842330431108271829340152979055301041125265656399101945625149227099222553020677093994606365974423043181982693779304616544240204159225419050623893587027741598289249037265294939066873408621150070024451806836227034905300982479134818932159418212943226978636275227532894517075528011171685372218485285434163869738852738639967981964505327042682641596137567926740531335970338688976110912594360355979353020788285886267290418471944605301736354045877839693466907989773049988823029674663508151960518180371377233047992450030237259987998401921439958904939780609656052263535178775908219516888124761908564929071115043530829034974379499955130726962381416360037295092880249030145685103137832566935535166500803967674476603448864691883139157895433993388027579840149203799977849494971326685715366030608086408210461581148871304787999702040380566106631762482720269059163356929327204054455720369788378159197830380088919007311430764649396867287762809832209750462555811581248408631203963527599199901917914563409393345776799394569557885241472687008181011277447000748243776931292570016404972813727949630235644518842527246277640529669305800939723878643273121574982870043388810057261592962565998932151287902912171748848641662348326619801862212258628727161731394127812833489678574423468616942743441552018273402957876018799365671759944069327012773711198308182746761876524951149480489183952731404129937461933683250069578152665272519655911178053857904895101369070594089046079279833172735785236716780058937869446562539090461151846056680785226653577936446787578414167391652005431852371420728753266913346278605412670585766472828337653440569069700819745474571988931239870079720372464460309927649465458838157462171676309062050298866839228718855691553215043566495995444231754462451012058411567102145173175569873324088483489845036715352477556421843952610228117673480131768136119862177912147868613772880327796923927000075727642638559239849412481241245283635213319654635646330464736853294086238694586410366124365709208947961995685292787392671878104759378125500987289130640814745229348003375811870273039084576706429883662975956094130069070359840532215350958807062053298790225645897215515276325114125192809505029936773048079197415129301411410182134541316693618432900994957783291874431573639048806652299682617660640712340925439046391728791421285886377752049808637314856764918778351955952673808093726690756402619807651284931951836168622713940406689228134896767512533733414987225562860024752804665741050034412741043898654651019344479451678085035728125974620277524677413313071313622402017980770160048469787015283462264579870783998664934995123771576369524816991994380067334280725925884557723016286260916665137436709528509899881040722790916615840816232097342367829727410053214262552186385161754178151860843684179539123368035866387291306068586054473133537308973991465205479034516064307566496019117461320247438300116516868834761769640226947074113615648011689943216660079089391818562672272997148715237180798392556483642847937455208853003786368894376154607976165681489919445476461169864370252110095862013430998565972050914157815965308707963014765825533149705440320527695507968943954603860154543821734804214660580494770043768849749924426164708622138753373107341951715719452199671383526600122222080459737242238812961482961381646028754765719062628565041075607024741247265216340978267736080175701329944296749981633001860562034341458967534688325198495418286955845566046147245157960067847433674818206663338579563179935672609661363357689255942986004646572527084447198004417802229097896534454032763960050404928598120817045548583912131073995933378178884213195467079782591205760818644226232328069402881679376121373351015403529229229498116369706664486466079252358128178017955178880852827510538681351269232334221514476095756890432876143203432091906873221386390578738569061021304714054147226850846585913319785490631288701992770658620973491655542092899843707849094901684314789860479605554182782279257491511231884833686394187613931970535060883121880974125812016170850516782460500467748398839321046946135262139687653239256829856303537091402857538336226438149061711112581951170525315779880110127071686235917040609858076679696599214809915295260739446271772232739532488687534728110925369379972145002835536540837422403345391456268375941300562574134073671433889495676113997246999268873720629487657481933319385051212964792904598198804222940822567764512782235800626280967643778925559170497295271582767650979529660195481029698421512862207979200383311018766878255528462413540774938415499832423715496145915336977454506675549054799039255503219749191761945222087730634826673600301981732809162443979472233137485025874316053027035525677231539422002638655051020269873704249926502458817671838127078445322003941123612816165163104806247319181826300302144469082239986774478619867338404909656402059817435077523304536179640902860920349079774838337229512107471915115004163202925146373220076399130622906924483499100930790549068998041694309061169989747380668993452761390385286328653373724574242583060466122172444480091531141025531187497009737819022159434589744788561395088942767016556904936731168150359177704800508941935617269254058556335673223888495209092315928618919157452751053834897275866572903914124065416444870378499225870443778208922801811713704574751969863080945115322328323300121594049364213303452873970558895751545806482871020883845387332586769535304100534708849547252800245818418347427887170046782202205949912476620248618523270198837616511579594527975207376028290832055008078710402016503541772500462332579766870600498424118144915125123776283126292230384178469942415081107509194892624230376533324774503376437896997419127378365986519707800491079180270405252418558497813465979281513216573642115705645859736383239043416773123468990587882593978935384376361925609248384927663000277881373618088603318645525589392960093763208629246885557092967503122061872794527059072035239793091382179100476098792424018252767756651319690501029283555311322593280981232019164183262049472399770619247766207560139969421720361009193606600894612410011193666696091785065500923580212885019544686146800296382483611454885893809724813974234147663876922867359513591502057355147461246029935765015549516259186166213151025439183059278762666769449146768292794080705942301602854345192107661216620975185585037023542115178154624689853105344050862738764993562968509329650207979869292674951548698305771846355546245410210235255248983159554852164578295851436161128588721190880076605564097941733764659419841064960153796594165341540596083540701192886132220990355831944598070374800192615861361466988992116445431273009187282167768802500154539073330881819647455226316243388221893610480829892712861957009252806955755549729637377202352816111455895065352248920658118333145315312903093136339371418780216030635177492829460935392860607581325968787259749961007060717677012483397480898520756813575757427429754287886019068384657022747331159177587434351129137627330930381170392454623879577198448147738604127815319131340363554766631558462164108957665593263474863793544242720071877201507891447555095604423414800764583223624144975219945591939599692312707459084009836296319428658417713423543656880926001552086336852444660397727215821691063301366948145364068228289884307806613137761597647752331305664556227115588399984699420706246772314016488713104371383703828736021557495161446935892912374015877747982800427292636628062379513808619040921148419832992248583102494245988199423285848383998397571402258802979993241651820583391922161641688699152672485403456033767662840590150335005127153904848751471055995059801946236630469500338888476718608170564587881426379625406630414910504898219196284200568528025535609036263933950552684912140513487589934500211210591374063484852460027376025071944717875712633947888676549727962688000434204870617641965929752499759972789129655613838311688393823414556956620098297774966558236021089309349449451820795577360521031642457264959931379459489091919096008749324663561466837454158625308177767682671902992104972852211501679423069791521395224339297536130594711876676420308803980988353828127015676311618845708771151626879906275716388811995128980838785119512349059208435920379007153687322081622669104507991427149532315769114802518468424071524048506938964871233728497854757519939128706185583545835368494995851742620554743133468526076829804894143958894945905486494389902263992457591927069216701513049288042288117746212357340081543655610606954422144649660578213459603528465945059511031900052016559084115406217408594743598307541450999861702594891413900521252899260901043912878722219730784282145946227316536788183325934853141267709845256304253159006859960175724691724308437047683914945914194150648386245808982037889432238711553048857082641870971334081631964644901506570543128584570447014500742914455935774881335898794017387216924678616539086265656113012798765226345815078147256040229689138532526960519620006475582997406807717931900034819769720017029729411453519733766935752256768363524332068050523538859707163979017969992984915973484256467975815882039336367268785867838604501749351479950272129003957932385415368818168365712613912791634520271289045661285114429319199030732460457730921319437653271936332650942337773339772483990387972713731701749679134240211324514101052450980420932286190587684887441172258143681472629490639228729847887057378289298265789811027204915720146324933632967396687255585636350738000018056172914813376479332611073436502101026683859972162829198811327420397156400666847311679306458995571826215371684441112958222675352148714797480080549643454028511035096273784789170401840330283535657145193496909156663937115122715596526178963948197529351610361880862072284649382875315749454118377407635499557576199775439352266733547449938651703142182258619776688927490102938383411679847402829537087766146335915978926848614704791453894808761300604393373122493722556766214124005918881418130451496922074093096838887452069680979838618461460098081760809147782376943473538020941416759585601580638136052075684825328516830404038201592792280786083964742998301362415079408416498544160063066690816226870073902102656875154386223329857456547607505288417228236151562529440541529933255086331103436787439060570421403567557333117789028990990768471887008423669027522447375494487539918633961027039265022578132142098652483652776668657671329036462217578941529024653146814764767762858768723977295761418553173743890506529090851004607284688959024819761957184823083408072663783382397625665765147387715712560730226010646605885961674589734531134930228298254299991577065253469362467717184315964949327117495572414533357405169492316778068125513444385170655168994994088861472703893648269899502800468512554364078044851332782257430800126175769063364553254292594636681527799492122991323458093581690156113648617387647105375238846627196436115733012312389654760681257738207609459147521057116850650596613342583579707793823096349196577762170026780688229226409266888968303619086702256989534289788466400048269212063180263731510953955500848289157144514195401520550536915870278619531849655473502799908822936584506369079029659995048252467620218597804582701754981152885220961198511095323392334298962992707889455828525578150404830766146107806501267684037153308842484736533157535339877374989016160603065023057658707825048506362015010739630414774010594990706358849443584552476779450423108250221091678531061997905780684970858545200205358090424485840506458928304658345946776717832576683738160971666417006550066140574145180675711692874230738879149448815111313177684588315119209693007804393926881091748041878037203753905958563873623832895401396236600794042765601317139597201077084071917892712681961217315723063803833820830293538069370213071532415588134832741478960160051608331649546393361380608952879576063397740087927077658056257499181479973504430419476684649568644795658994313429788349897594755247612081958114945270269577047961520398286805515749317344963800250902306244237262956730578575465662266342760975014633977697880589378902019291036118493063129424123531645010548227018398016031085115078380423081134017284331586224364415227200247185944520420527288778719986745937362066640803112068375613211861777411396070171699934820475680127509587834729645087585696262123102033630114145775018443882188773757202819490960016181991215674621137408695799936069228725416244707362808279791213742954818373189196256113894611502585650880044449919399071298075004689970959058734330846221798074671614811681364741219905271832028426346550247401237932164233545561574130946935874145988892835694151026365248603159283985206139013699063527681781145155936637707035741656095224442894386303473046236369916023318581745407389843158406713791198653629555800879134084495529666596328162082411515096374902456230442261883404335479175115812411632913717355098012430020738386646177311309533203144245582889485716516509352464583882814520095475578071796158364938112623224649030093450470671357422298031472315801599824125871376075574636705953380230104756787529339973059374507641347335064642877793913559161410888618184751073171345452583875190201871944822444823948626950144666276292734923614767643149507508914977869731643439811320109618605982238149803610273444834715027576308617762563884846671136606496174721757261613359665445379286816237742711995535989374987074614327062999874644934621644491920836579656778538479870590135427441606672410853405315420120235964030532780450736240602242700579921608329258080925012960792703026184049098597419015791699370780462071713339048151165507725217154365436498047059448064655464059682326085262215225914988299990211223157361443696938835186109126992415895773704492973309782223474229174500719499499549059694861106244863789430738727958674180197629472154700660896725586179479729940573525419632780043374306145198817657737591418508171505134671075131725216641393854826015509797407631951669391145511415825880627882850135664218542078865834594404730383468120277504063049326760092040518002604717346911583167441137121901955086865076209238514427305423762983269759293964586759938734599391866279001004033315759769269500931015026591267293355895998025682670319078966890152120547704227700106403684954436809333175838406706043779040459325416838408773485142134082403861307241655938017203296628608465357436708580497284253014058520792423377542686659437052367246139045841052411682657653644558277575697606914483110556137085632207038589307010754811841587780675850593192634585554718844373683281135000623119765895971597270267685917209317516562130463695889962109975564253581934472874746221708207166262052042523313521202490974078515367072509920484181152601284496105016535263998194535372194616153507432365970929982725679758790308903944494208401976025594753280806627187847869838578755111717606792348354037194277504780469208853002844549100980774573727738996958996033773277406835547607361652923416599579760114032708275377589971468945183169998003729543041061534546879592129571366450933269757337099681816896694552617606307147941176357564791912360737278403295547260976747212874928881794547278535784704951705754967286261272043390517345417868360713268230447902792507206958983225531991360040048981951592688023597149169049819195264311272619800686563013219111279325334672043246408084317952585839722466018631579832253515820572463220319528550512171911812666051901002003057939773924192383292985497105376992808946482249997834913964428034900852707429156708935270490337416487337875541252797743797154914152361351539246355786740414487464691150550630485214017151855655871413971600853054518903589403912983524413013807507897785978811970215811208180622992705808403620273908273309839157597398036828539282711856685929509082460581777891917229463237545200904863292057394192782255461584953844480008237477670007947192394126186144807594215817781042662764309814489118458156743096060443762923905639202786947177780158948824705005941168075940794536001793719219366831543457147118153787361645062583173531123691594276108613613883899142684897023136318568755230266888224381905612205705318021960145859843413061662352067407276594409138607045351289098336987487793142653882991084514320320203648281185643248170737154300740035645602377852285653067351326928492028309321211702251234539280876911971607955576489763779054530023055822534318187707182269423762602961713267456143300407514644993848288787088071043594643910413975947918117126733845019716732259069217291759149735976691241768931706631801789176215609076153143141403380172047122317066333870118650724368551274753104566422316903655969302577288515281085364729862376368730734731015549965599741407896956795685247086057302671781161903008211790544916257023227774795556756806540987430239934482836351206825355623927189772521723862835454390202316469440142895345462730779943534336076147789122885374146977439515435957157764348064553932941846093130876444974830902155370777991313299955796278630130569621165274195823466801609976656760745768148591074473923682934390535899765948333089150798143585390678541643559770340714740898264560673450093479585673135340960973980267807617375740327267569771083206612704394234304245356712923931049713058662547305242896372812801946011135779099441209090081252948837179859126746802567319187747828818236299680973836331526136401219721089099491083121148783309830230587389320406032175097094920292284774711717119902014795080185037218418380929698125747489084434558500856712290913150775355705574123821650021360411948050274351993195524470017998679622375091731137939562954927453631628394118829263944019492520809243144082291293653147533850785478109355838884282075818555582877940285659732359808988198506559973805409929929078455879337086879099339964033638335254810114677807720003212147830349962423615164432719036060465966115697065308401827710077699218457273518017364720366758396121044939273145350420650695023214703589048992818243293033457869568023085377477148769714390017440591896319361693551630415102136958972472148058672136805362402338276961084728845464025895878049957829845682266085457304923587522047962538589952804676187127850310973062562438311985707195845247181768574584919082264850823282857436819709222044397640855722067653311376310276872614223744339806481034770398318022460335322663775986807742487553458364359010821607398572128832607260587494851104639257892164781583294374456634713677158965234168343353256508949585386176967384023094473122955434072573401587154553856835337846573002654996615376746251405048823801844692765702281653079707352712324015123510558784512884798451918400221766580955744415018008789326759590870177268808187135893352381450555257194357132127236995642271312323243276038319589145815176266141529365159874868273964428554216872138428554852212710693854185028776428743411325016377899219549505758544424720867387796477482327050340494654872806381775692059248486815701930983370420819480920800270514071115184631151306776994350500201449707735037451938794623747172373203728701092831944440775333921983815057226141673963815441626573226461261257116548012360925077807789574515487930726098033901247626303037848408828964580230802075723428414598351742291935471010201920805444013980649663884932101380418299892132863646226569656704641122756517119874736345775007956523816273696709091698688480572027981285270439132959923005266756118758870437874463228953726320328666961526138366387917795483620867057476968915206417596891138441563842856784927367800979787415164158648721827670383160152896987884837877682868424179416793076509175480837260055639420238066376658189962331561825870275733525217331111587156990527848175879580099273646828499717961093052432137995875857085552466848952528089118284736896458485122620935298559911608734850166450946922941255509738805992055267697517287398016832093806279232814015076491888951935447765385534907559602678668587429233771332872780971598467824998663345762933514369613085229994560760407393082517558430832362177665034354241802432951402468420232889955983108203456552008623807748008146208331332665881651376872592256115812865542842889184824991651197571531091314880004436126961283298870867872191451195364517063006219414860861037189095691684422628385348742451592910595868744235877612765569169235124788867832142800200096268152757683370357038490249491934104447634652480534066547599794604160056189498012017692021578741636191957139351754891995375713531530243242739715947420405831338472338701081200428826977684161785848608496883115667374849550358070275884738433144986709700668005574722567419975504856332092282062660405741331330623802731248615699448375130329636602714753070512021877885896114314036133244109720449341997247709313288905799027043382679707881473369199421521604135141025159905115381482134464387228068925855581740066257454869831909112750927384463223740932823707007921867311627557803668910652230685774876178843727990211768888000650113755480662122261923830595868056192571403397239151657572887661201043439080657132072647053164029550129508777506040344648686509203877652788341811887610948255334663255583890222110411538513165928842954953724276196404233747106677977357887544851542107288761516416273048285923632456968055610381692490284494049143892317338373669822360934898302360488169317806236429071614616313529343685208022149668434967433338694226496419436057462851351442046604600552210989997582032035746786271007432187859858752759182162276980641928760462618663362378936473017938426886166591384955015783736250590934050164907429550625337051170074228107636692826253403961551872407733347566006131720083898333060275563758746957970237975641429006780234422008732755146061565394311041114230805484302924705678077943302705989812112706384140646975491725069257732192803688262844303110507837793540160603466901055201824369898448978011465262946848952491783720256182850291371063740038531277010700924975396970601385722524894237920745522450987425560544381640442582819498815481435994735476075822473822196571724134538866277422190111850010569302592431765618535407088451201640527202760679618492868212971980043190158539112921763191167324051293500393631376959605694582972790285758599459555810908112313695157712321727758833781992839060108657007042668313183441519310637541536917747721631639886575925957989414512528406355143446001954325089777443752809334878792921991848128026838170411754354709143509298180949243830797667613588676647521265494630019516435209855547725090391906267627783839567035174624435652915734609089644379928342843710200745493263138054293556820578565932116156045116770869941545479501314202563620281306254877423123058701659812195337070946608543391713997555912507034189917557086931235270514218119392507137101866429660197191859120286768088619748498086115650728600482780482631307125850342908121039026803782591673779621640110506032274291300856534606475115584321885496406006469962680461502770901901400316357491065935688020074215013875748296626325273750330473998732652119577093665829383290015263720392410116824457260895889035600376586578448396234999628713919056522475220887474553263346380476239099209361157800320823701311133744404409551220647446387575532546034593663549821644147320964304815731319017246067066258546037842473925420279688137937281216089569519972699988463940939349185636621089938699378422962544028313949738121290710965939243133659326232059371856688450032247457784730963412819997864234363522255444886794621406284346010181552872296732613064269870011419278665536086859352354817463812042170249644005770561943257501380806043074915175928031509447232829006810601284401923399425271154347219807536798438905422476928150278054686742822670021715476715009468351129950247249225768720476391259317231239140924818648929970114663846438785563785144186357901001495618632051880939201769703574231060908427981406224848480270070313943059959347545779222078903932717438348846351767856193091601048655928699699101870310049270759991299402205063863407429418236763511313858919443750423728605927271993796314256215262932472741162959488298678075627725926573562801301185333233200356439076418215965571449135263574247416969825588984259500711331433982380439703891828583408060117608965836260131072581634786974561386865173119186695003911213799933485149327894019582298571123999404328607896284942003845825180579023224164460199263101305625812094946083027223060281889255449587176852471162380026100899906968071568427458813291459964575612022412570276877610137507376255359833037268768429649140323952210356851861963924705327496367008885866680107203536879802384923774774105343004737766108163425040700123499397539278954605171511839066093753180986960602191495976892023410213797839172533552811526952278733365094117656647743112722765532170007854968100307512544905197303189980791995468701229909707873276696482547079916766737380211973954856730277588666227915449156700346147180930047036934886969305305576909210877164834359980219315832048153801280501051347143856122219352866833999361914691997477084366529963981125039562670058369816858626564755339165564627533694736950094415824779776679658843736404141995979825774208072891255498081383089712220957500085084475148646936886594751917373916671680972813844391078776498672576106337766471734972686041779211793763730188603852299258591636976692732736255212868107870220206012420132140003998954861567402790747235232905288227281203473642596906795062574999242328973424490121129235866515121334528781733375344478534968297473892541096295547559596943425526446121615007558269483878781806940704764016883897662023153711979968225957855811331717336494482731998734297161369475000452437860568654188041426564961141408690748273586776432917893705920573513498071103868904916555543918945012449776501315122009628116704358246896575975780821416100836021481809271072883026740043293750379871640161941247394021777390181864542317767912000153823237159368980940252371032637246748917596329900228810709935773242434196464938167826792852124511268217164283123065586837360761095568870613569877418122468869747017205707418665609745638744937198818007774718928075208800825326987169126506876127463387783587227162844910377251492014708290405578532025946681644455900184515417971662702718138448018902887102977666654650491950946338854678962797317501387484736264639011182143692190860864364004430966503871004561844051394988468674698693674431791463800319837822729630129994982324413314926538153105887345981425886419940686714377051591897498915398179695806575381706818276285205822614595336670014389683783970499857107552028432517639958214901708347910930164162442752285573800256231443286277795659414037996729877009986524569791741075312102016611189956229042340441072938628450893969223621492760307383162800006971761511673759228436315213357852366512289153380202993964996900142988223638500461857745738524707595071735299070663353144932686383887087189957380376636900850353677042057336089161866837556560329112862305846514869849033719265797970463774206965340083446758485863594040457774231298595253766055732884404009990332246133157171888516743365348472377542599612988712861436357755177510235239095351390406811135292327015814879435295841358266749715997259945561941277628304996261923514357291327941647568728004606268943283701976870279713423898244037609617825624548395112189356302860147752397256091068395565455422180055052013244215005997556535450639013468701250309891495249962566816917899756563119755187104666501649842902721995376365347552468589479267526417667970516072367672601556727806242610831144809953433028970863260465105986537298580526167613882895226234627395467669557048996235042170506122703940404895048020344517509827679507953923871647701845117124499298255502105924849585630450406708065859983235949943608796200787767982590645723410558778895000244624248582203090136905024752999487951867525559783755879021801163225346162745920341836898120122561778086926977625903860882541569118234328838513566930516778816704447808598754375760694484456348343751252324644365433632314426412740684962250448297207443991621255208983805850272204906493258856154795293566350947442715130763747552741964749931900860563283842764576002312241345205843662337313420503627050341410801023032035925346986066362830667269361542229133303894006832545338348955095760734596815228844829397953662396127593140280548360386756975205654858884117977100769980030293151586628294703483312638653820165606123606012705488020823160626566562684836614282740126208917160294610575212024454287256219801264073361446795344704492897728209589757730836690726185989959137523274887558925536182519833996369796952395795767343582956298046045162851898333568035694500045949264639372950366278657375156014375848946672685005656324074125248669938328523406827244589535698596018918370350762774256411757460768200256933518298953190972199810459027941347664077359816543465186698758289157782753562835742609343896387838340454768191674843187340602285951778061697501135101084569609766489563814542343129644444400478098719624796651528182782895367842152685437190102707844980826768456829518753575766653437982829252145232619260390365158719690859582737469177618527598342350652783856469455277007101385901984606078014017545997513622564317871406147553372075021324338806430680904835252192300075919653095596462887032162081385419440697080447455760277047856130053743870298671993633365281776718416532680957867886813605279847194757212102632179654644693840366569867770890175150246979953470645689669202314441893407646265354446703878399671699893856475061026549957111069357067796655099280150746423098144741738254259851804836630658553214911650839510717635905503151759301490671713847060267771045986960228272995180544028820380915885893011675216505464412957276819593297912370410935167621828048352835149796409593478489078832886417636711204554009842500845476349760772030461464478935210664950860406897077279220568289398617772968843719352951306275251881202905082773340932631526316401777164506468337290966995445254047028797952683960123813994153610937767323445319604975463091739037117552853836818042754086544187114256398497078050786493538035005563777410843658999564209840720891573811269450574358110626071257625026135398248623146187605097082301091513503700389771894013827395096179624441462504514497444011013014227187995152421635261641806382225628415045131530782505218008935997641308177459683930644707441558346910244211650020541449259328259128264221562302407444548849782700022234200048645981604384415318826782178890204139078772682672358047305503324552556032156279941582649359609240999192247478711126168384954662185097256074707913478913541000087263969090920736005231612941831118666949636391600265400594060682122058405222689547442244613452600080675392664793716117539776041280414133776225595402691264393160640523620517707997010840398607291879259023778883847352972515805692580882898067228065400440543959657525794960493947420457782424795031824038339976575732689565697601598772527171970466409365625980476103638738304177429053178064601227583916368549110894588769785115682403521681595237994836078658341031430683705456518521867635932675929907368614137891455216223883840354018149455639070752152005975635776971255175996735495280852079114607619946768292430774502923616854572247157252004674811603334092310952726412098733570227653672267915869132432716711586759355788298091785196246488208405142532077363257416746118174115355579275160481559372689513227032485495887259917124810270347375113143300442554462809441253282071229020304240771887531264134907744220250675815471923839591846075816459842122157217064519432971268261455088817021975327005539254085110580666034559074224172829008545208203249237742529424292976129078584279275901267639261667073714587444358750354172012009547151264977960530052506907215590688748446782895406543381548433414584490241702661238610440303131429405625961165829421381737194711897487233194008627518918105277120510374335721241304606226072885294100295640019251533800017707786674643325318326028554161580748669716470604975810403457076909295592293753933215792248078071070051653512651234233988582988167467267207765491180374713372157533108652482299021348920153377160414459541568518653008413539968633845623948847938626623499945234844565938388211073139712015734969082275130368892295492961899987668623924171993233875116349314923711693593558210707799947256457234848664449518329263865521057087132580055794759456273830759710547019169480216740913463143788001836018210445175231068615469414991774480166251118150293452156164712753105009298461519079100386898089199269615426590769231333093030356977887396221121058956128194969243049436792882275349612776356410323196326736380715580122202346033323498551570880991565525351338164904510983003978963188433102565650071112590049825035391107799730279216239362651885499853186367938393134430793763656814051762414506919038511737748866518214422017597976034576997223753902520224519506281269874763296573420066077283991330045149448130973654767044929903441923449594036601440334023115652625284850721914536082977093806923984369896983973479961527615047276576175440262665924655264895419416138023946067391623016360344599785418499992946199780581167725873217533663782342258534234109248666054738500499749496540506192719470231518307480684357796572261921589598892435965587338508269226389197226431455562086464893683087093375445166164443261536276697918239054845671186686965248976315990200524034286351255573570005300761801726866833180247995258104589514020484066727826421031907803532706540379665202152678240771220118309600602864828374248109542630024781956766892913190613950924587045568058296625667194128406150446524951198846516668958904165316841202365699630735884350545059059841688166227792064273972077836302996719854433128781060045444322287195672105673409974398102472549282357035786791664957059407613126667572022364433919693399624382739767702291870108759498930755245718129563221919934551888978848103098922663690027254438957321922789250167705194293029076733661132019280706903609602880089839342758901519895076418416651190922107824409680974234497919671016891293597929759532041170955868278428573601377676538356274158610940106225987233270988116036747125797176316909229460527256811143753209283118383063255345075641820105074318448264333234126033471257121464900270060397467790539046882167106434059739521738934384958245520653794452727561922542253953573279785221061930856209297175014399585693706281298179396873743789594603790940017211719295170535197857436644062662508688239548260668415557782876446419074453435279967145500346870222865460441978710935786471187187950549661893886369167541784289113671942371486954318781737439772244787802480870784089022372582203846304263318703319185095482001366509780498167231484836148797249674850046501097922176620171394478331442582989336411148443710540689688956895146695632181802208784652368714482593441175437065652297777886527210954101389918186745403405462238977705960986678869568385104171085700458457841683539988157084817584242945682018771085478664155774307790109332128303471937498921872623427549155095106520111332161332138286482581805329409744882388181174073411544006506051993305236408681375309185314615442557801707121149800461225796150554345190556431152839002688460289912750690937511523833516212474474356433716560666527168529079730742822126056203040244617993550424413247961844640116500940444637595020943785252537626267596100902819498554836849328377244164085755048263150464714211191594395753501303709086811026257037390177712545918029936072535739600383972943903901121762680675148805010063359203581970584423923125695970036314944587591304216099128503418540129159390647841114681755611080130943706286481043606003608101751529082536183557313432363514499145828199497892789108570439816258451063744011523038903233885374656703343635230790282139582191260817903771442683609440296565575576107087171429048251481699675551712142343151705154386321828524539684989799262694932250313141050617549022259935548991464668043731664822499807590333412326424089407404257032194618559090935452477893229593030789337458081958031572863457355122808125528923036848802266345225346884478514332634183896598999757072205850308442190073318563517059360951296529294547600908373326379802313189107448224297361199300823371047314519014278882149391946355798937580631776786610843144028361267034197596253261286845059526426468541421486816434420793455227100039073714393299738090851429124533022245408139946957255838045944818737652731742085005670930600865348736367290409803705862479001635544616653301342633265901475514438344339858465729158513882041442518869883303544151800135511186672577059290262548072614901536415107541110623534371891223014315796333889457363247382689797663289711525149819871513102177558671530505021800564799732621055028287018854860391421872613247412179598732638627909396463025332422845821534960061803794824931823859227557642168949143959608027555893842566676397498153903711046267409806522862253233369371981828531199811342510573487001021133017896161611264693043677280111612611009086521944682484151104101444094330634090755166631946400651776321129659935600395137359850290843652310126425978957981336762020227276282042183379904112870113209487659393656315526937353757653248130423684524623585727248465875039765056868537349875359762034226240498679951195717296149926101727421037129429444774387582652401505405734085382665623462487685132445880993443518261797521484994459528458822798892729581166967165749441801878015496021114708760394825512449589050704567281778528118031310855970021629040128575119411380840214111276813734208189431791896538090295187204797659298931143309779581359422883292048888451639804383961303738058160593784998709002730170310477510461080192460300674161585733908212065629696422171987669864612808589355992518186395131459578198020707294409255604740501321613645293942505304222807088646944545203055961183231994903377315769773638746583640245521764293992451400000803178415265750251483397247899921819684934608900032355097751214745481767305123516529474864054579084414076210301055411469481011749023139433936939825193680123712875174895373654594286528078142434585414129962717316581645782744911863389557014213830687129910232198260881519112442208257228703922236061329738499322056233078574140946157478172457202268631363316100227532186331741284211670244656381405026773624340701895741510323932789200256363379355281454868105990273278849030656656420149580688109185778219921849244238670406524582978799808487210905870887258508513273826466351022112600398817213936608104186433239436712802134665923303006672485545760177111715789109160361573704006566433266070411342904690689043835919127076172942951047782689376546161734209784952888071264281214561873944517546290288259028523639960162763623201542934750059961162833205008049872779553364115068890276025061300224963101920306746827448797508646528724967149359907221292047888312096057409269282909320830125997769154111035284083964846357286130460691866416901404122274038459144637005317919215937418278317953737495578410595384459572310190144282089069398282407564246591193987650354926439890439236556191518880274809618505349633192355240964507820893377979605228930518944148210562254795723830492519220412862462897524951662904477277370095403247308509961636358558607682960361486745036465580271163245535199147108624396148732764558835423233488647480403753094682664312730271439774105312627311696599792792690883273737394347612721005903426143099663138735266284198720875219526277099042451266452509318160881535930162456930551944665806767908548891480766008800854141371241340142630069297080090036034877139097640071402721629165858337553587958368628752835323807165957963003473331716573868951070138930137494025927239754993171888094401901422890325586990872592281159429312993224546792298083653016386254951570656760864031783649289148005728475163922080798190753292091662857773266875201357986237323105767014440392610825883129022827155218061338828399268346852076862940931194047409840415265334078099271916385139139691986851550363240504153854438412218329834201185499858477739297253682320093916872333199145199707467374681441430296538294744629381279604908932289360640319385608963793940517528757363735261153204079300743981951054156805573452532047656425847713524373802478227562318455280291133096925580991883483894864222635686191179782634180999081269477456924369809190107023949049535309969326787873016294095586184784191010169837514516761296100748640153969954747943573977391691480961570797184640620640238830041509785680511718144942592525145239256522914272583332098087336312355184018609343321046481978009868751398247499807847416788851978288888707782277098059296691283787668463409891023661547766630209736289502102593964436005054637950276734606267127694765339998760696205200786182656595573562123348863450330533941267880914151484693722930014616011508561734056543566398270905704861792457367061558620075508027453987165383114520763671482922171671687057989428954932899513207468039717341022845528847304612469478437252370398225584861032476597526280733484130566065497034131379825486622360150334427016018836246887530237158044634185359152760619719660978204144698995482669323106403205128294579243286203721806651419180491809096763097060887706489412160632028975067239918436005518407003924682169191169847720036578287994045434333217860422874956737976998135443200438710669938712814190584463274147741568209590559722303975060838931088020624587863105661500410931961084657378296317829300788526584546317690443185580886350500364205671212816570749257166084606312994349316449062581074968176716281825641401810316688347485348081866609176926175175278458159152968228063972228754555101576514536655135215051188885717914710186629266965456842209701763807159662536184156975002185192233909338095335696967911754908434841043223011459525875187473573671088350728743712832553858252367262456298746914630287414687109613590777227521776051908503546344129931322096724205523861778516814010942432274578609124587517173003993521144613713807463997311560044912970508795450335846200838371924984365524034601537317038771668272933412696973783003673497592362918246795493579393303202685590450829587517508678674616364543404215510873028527147923659145126697551535177677705028936671383582470201493211977370783044859181211817026372700426201928984951607411703389946846229874085201778038825226487204812831227276820035126663063049645936502076368205932497770168038967608387029280517513371598248603259827868638006472671246497618404872731649180020501249705582956105213689859044780537962971990893635423899363447991814094622712782506999843561544251292802361839579702934973309929146985617845572591987942910041902359729529009960843200179715792478935272084203019259889818131695968269687518174976436585937880351851349223718461247417770862401164589754908724897916548111405790458201862950701969803544909879182625940620691466937314045713123717352893470591819563624601929710145915002895562836431174921285766060560232344063118980057896003894992864203828925245856811489323298477073098419788231811277146567608729424497635951583457331076649992123569419586423082088560222956577120888011016676739785072450590591604000446091532250868876420110539740855104295487212270326072796712708251395711969294098298463983010717713940155835129888512101730132415874188832486440951297288725358124194356903177501530030770269545255986774804250437573330988371949557182891631400931613749637248664649529793720960122896254707427721645905157220147308223868538641788370195635919078988179215660459203676671306358212861702670749577032841980317483999651970242808694435025639048548445575325720506455971562804679337803755690155239331556764443137014233613292940938601048577701689271763190523769415163165801238588576620352525732375762590130291019027105307633409150965048915189957871181681832698517691489983794431519191726926871234921759064187207452439773828672610323692538207280547291181818450958581552477909832861323575025892081795077092403047291806692786623505154504349342851660537485169631468402311259348745768982342116372830847511069179303415462748435869387704543734523919102729667735259380210081750760400449492526040467269917879400983740404823951087489723706062594828493944901569712201841619246760404619049875955279602762581663224277031197973404369383558310726986408168132367766700946442164989880290102606817692814419685373125354601919111422081421305230710390755720276793131652328499364032053956387100493080452959669591450178843821733202735194589143381442373322536976607843994686212627194619779436035651604755318716637300759966831903500642657473528787709962801022679244560042063875248941633230816453894781910859779082907280285307359789945959276731366636488738639682173921931134212267183749757369923293186978568160432513361686928421191844960651858100151139255714350949280067261700419793107872277360455846534894338526921917213235015833579107809255524316551098603163182982141318908170582239729219833228096731383682721090697257185105060868267188312685407836793314207124117343171816800104731459295782931382720058227016425262478344402897603571116775533061009452773006192164113190342708296457761222817942183565067048575114453113308366783217100234533178198316219508562686384199430802747401027643685565348978052121206524800156504705869179378230938439013134013507316451995603552678053985551451655202942815245637477026869260712470710512614410082995029758259136506179763657871374530708058904398830134602976912695812011634670156858227788114299657200504146464551698735519829653441541655416589243601753168124322555785703166145791036070040022596667292900142433547486346030053567834908148113049280914108344162828777698268322401924945276315064002338924711136254547858472900023882839130016422651237805309433787093845547328065815563897118743404564910334952933307062342545634887139370439279685986347373781776231942160429218704410164367738954593639615591138262894848636775725954816548434260591129139382750358890277264806782979649437163846238596995267399572187395304820699090242472379174063123142514396354178578837563484140922631532445397759956003198429411302094308273740627776540150038334546426319711107785317298552871344631250802463243070395591271585062408443824209014080530570477691254961503789096589992353325867304966493565991266406923644021738108124506629618090284327894784081148381970405830080144262140203234591533010175576023150705358924695166208400624957145460263965803976652560418881790789081393388530543900464276688860436922856760819576520329997103876667089871359898657710296841522423224705409469979466213433775049681966850761797395934639660679703261811917884910577447207487945799849093820417075984199938776369818877338553122429142925197798063426261133009600519736387154246618721458467235434195066112174948953005434530999860226522608661274837548693997945614497131752730673290205525950676371589496966737988610571840390771408283770130990981237818840819444041481274978670942448643153163388214560098699858253420688345408613066399398504565755659733887149895093742128926480539226603124352788527478532298064354139002280790513940229704363096496667479036633350393277441218841802897406464567315461507097516564860575603358421469265516029542280547492822864900388056189469139474590096236044992858450994693183423623588026352839483955674120756266188349951219095021550329402555717024127162668732542486798034700921106425436609426880633843655894593250750843610229990124821036369372379545608979550136375215789730941482105449070163627657894282053058533839626907191303469308455153348494142313944367098430695178597850867211959905015599643997732524034791420761015330813895176195959237206319466098056050113477763353282610396555337858337875736325883991972696458061556583690869730042345923645220207605669418462584612587299554153266843914053202909797413238992776034240241436145207426980542402812875872492897788470567507406314082677167156962791668480640232041679734942376502983328329718297626947455111413682621004909503342048261937269028548789131008170840526939671893955194913270669181771326619925712626277735405014263233848277954039873267829982817948249458824520558131151524060768799693435256000866145363524937353927286250861325880624833788659592578432637097423393700888535500552349392288746583404918706985343133790642319608865388435559283189848886145032611773044383680248985169466434899489106154299001430485343163255587827863654909535981564715770754373430314816542278167766783378938399326766116148627960807353786126600802631226515796418292291483524298265810853985134179050626485029246354465930400625075112357302779073917411845371853319933333476089698316022334214958898949908631021759689017062477770143952737334624283323004222416900368860317047585552129979818758311850098113066250187120573248719297264993307287057834316955372327672006434879366272189117672699663647580139119141538194836137945629986081955148031181375661715264679111179194435814540115373940584511179502641527349466368015488281153019086013867748121247156802044834414093786999291463101344681407087840470800882839537544199082511441960642501568437407854189924646443819486319370071656698102009897490225108130162804546507361755764838810433693238169399966708658065506300922424317731613096585831726751651528287664023864793663245474416429319690013016006412174841357697277022146521909802420974987996593533716298362624244426079126224225859046155237222190742225885470287350288689016907539056266617605498984152053616669558588223080826867177415897806034300378291169292962907760364608137280856278091222879407531746619582928513311933600019480062222649262524623374542280111572168466258469045864492034986520673541574074717231519882108715845541777576296152904135005226438915633565767326531092801387330585301995379739577563935298433035744157505156889215405319569263751145879059446913806792434622359914893254251973783706238880823900979009170825754495178972793795219333587113102724233981823486170518520694223701340827136932472247448074667577034947646684873899891330237559688382963466365209568403035331808577026623891122829436005535488089401431144741407386913113569563606102236503136636851937074325357035169612018622157647239095146100457659250846836528173325132139214103470177618034461757646854519164613853028300306454070586368244376394563282877938415945076492735196799046290164114185999177060071113324981414940052342371579553955767731336085189589639819139811255205532937653515148541444800954827571114848473389357645354421029836903838592381784811661742024769948280882311940124239684750663863854167007807362317990805015979615271293050139000088611660490415443650674592570980669532132987716847591577440154907076659901256265793330492471062634920018392056434050907429307914621487688556704621737169536762812259990134552100762638451944526875214926651985643447204159343960489642308564095355553407388207408661132081902962893777703664606892707843352843686994573615500988220937615806813779544959995541875952773886220471080310549166876090248034188082724623324462112995737363411425646401341373083789792806060005842056062992187081642549333817180358205898806357129410762272714512075229442920798331971639405848446103844221490843930382230188528226293399371754596267840197245041137288962492584522624495073494871031635058557182791250988783859487769691311228468065229931964014323662904423411516604682157203737707674754313923230331214907321568857139791492879427483090406979738964993389494190732335647857212619923837767650113677204344417432089238603412554023388968403277117800494681688521365678196811365693096485289387533443851300293465868609647326703521419865788239055907477425601459051725334965930968515351783361202381205553915173463570676673446881946221408152762036541048166725955284305323754591136330695670629498272192275526067826500442687553460881859438329540482855400291740492065075007467750206147440832746204755825946650665188738723903278219290394495851882754885349974956344139437174965632301449357547247714510292890013889579072655615565038210053914783093125828030315674503650773585330733296177573869947665113034050130678039476330635090676316096136938494860168248420765536064161764878095874676884212548478621181954843761851051743978081980813903380733222577834809278442295821609385423805554998021629133664312309736657390234875315478155928856703532363861390020515075076421607042557348266578597880201703701978397668057745849718997551320387322321744156288858975422092185417714833946002969276422299915886490941493696518523786815870854868032969170467127997893986677736106588945911763487739251127072942113497938807836495341479176101519529921886936337332302613060202944868715440560243152935632013547735186933236436788511197930960858517954658921136514092838298876582065251624784900903300437252565561650682490523617229861689685389378468933934199723001230243973059521661113450107479283362191887853210607058798072359121654003519296547675279067770633598002833896009698313655382823723684739212043318589138171263933420975795836364094346758776989290040765195847097479836125426649534044977524458163735198511537261267036058037384010476407814073580144682362418870367151920450200176090584558726499079018228714797862014310153593669084274487033833458944412592197452152914959838826400168790000407550151998996172968784140906837673832804608228950143778330031199508769310499222438511176774201550334493892974057934337820072617706310960012276178811212864460106745412142842939155241928789306389395450066118365915749089425755576304569991970933483584397346389731407253161326748798096520608709401409781180049624678680321204358117272155222147069885293652938693082201190847666848746690154453323399897944907429757890806002272227868215034984117678357176870912522274116967228382154973923458655270862857342498374543164618722123116463595719488256281826453807455551701655245591354317542149064587218842614437764363094326661191109426595169179800202763352315209005496743018550297176017530276800651739601126487399656193429862139235435859201620319942458014734660055349666221190480733845103702582907517384427036145893654285841621056674248004348463973133017592722028815145084026420888773314846225294117701028172014902914108919438484030951312554616802040991833219186143980292414232245752394914516642114897037745854770585748377760973892267549429321792814329053101851243224739321309045014252258743355173104496072970114325171278547229193706552891886784040163389267071835837533953745814963513923740109670439508872144632322470485848128063339909337006759227129807610200038423010709254069482117854380525492685791214848215479126800276975873448131608050668911760213762744041648593215428562604648677921500696876293375030166185059412482617702808904963953622667664289575267755400860773241106337294627076682042790903199889197808588265742228640342070488990653764694763823259932702007475689791077590187365882313417192204053366246758223520799718357879943794439328322187179762513467407281959155613246249861630435695887484630723404736634456578023963696879056294255188445597237295357313683625287491380480824429903381459663697778774697467572301671166264754165438429912016168499190731788624479514906287729705664218282487767675190929197805493220278028304562820441219946135689891746241848343921985464830250596187140659908275428605945906167697053735433517324818740294735060373175215188211073999094127724537265253001731929110876610077294312603698840813575008314571761112564396641202802422445789030389994293233305477301548975432641737859009300892636579714763028351430452957101409042628440137968966094764047794334540518821127271340816720371552674639636355543973460135125471529136781683448385863904877128978115952702612595948291409878585939530895934162459594555203639148569946781613761274775950619862451541440902765642489720761286553547863933750921289997913789976027800238001484541667807359407302408485360342507664514572202006407031776973156107265584018240494050260514145116693504970806542212622003482702295330683809452078356904790924299332654891747687278522048979374742170373241045799251536777349467302108866619570972353156040667905076504174708198483367906185466492209071523759096108960828840363591153072639308935719249759114498621162415408748859140397539135098147779506543696008257881223469040662267040631098024057900596557553440053089345977573031593085101396624057456411020406926953507086574894984177723393490588977728462704718315599243609532651710020261281224295350775663594736360171997472893838963863618983652416844312799366052299671815246314352663677580440268067623856650555132858187239632369828908285845075072402879371009484596745274614362918020023529708417008151419305434495297239378523257956093924764581824560867442706138179127258382885491038296996872498440092227896666533071528269854925531794880409913292022955793809529569640091257294895809182819099023214125122379945230483945666257363743340429924454545239704359630071853133719117923240502639701556298145855884426098609556130992135000891293101371968420063241715015132765833269506754389193269245777121277697801910367092296757867697639673666017953551191048369984129589454330349222867271690712518565751198763466587929025009227876809322681443946992356768458268899298376951641816335239630796767071184679854826295907722324753171219723532187140763070828600611953496720122416826985940531015028414459865202291511628820909563246141153109645004353440366200744828910701521991825118247557662924965975106609350643778867436351918243708069304322329934688044173966544111724881404439617101850142653283916039866764698544003080172344963298454755307343476282123672767266937526211844147875170265132205127817092026042113327354217031972840510777937717139683941781662955814907524942996617253539164660795829058044535866467574684908808091888208586792096200757573804078468971631687898770469920384517755436364292719645356575367779186544059216541642077874826104110618311714205738986751417979303216211435892843673291735613075174413868389455393949814078517382215007499235924206418070605550447276746167039445845296270260466031102909329749685959298707718925463588910783070055407887936490124288984883362768121305607361060814695722230781332403957864862128420919961737794841160037125611520737716771360788092381405547214561264757983003308478703243340278940960218718039103429992413230039735020943915457152133593564024130635932352181888298994103709510839165988714794802334465132233522078771359080092715559263528056185585326915862190283826403153837439299915783338287396243199023322853320574537528135447353370221469856657814673543362023996218767758654832589664056139061241666990343691218004782449816174256531679407228584724990993217967584091970286671301969516817735115083258788136036751224492501131059203441068286642403990475218787642348443451735251789990742297178650905050358116980316212753079737066315928826836345903046065580687320272458115929630421483920687954591709138285813553292647948588105547809115689278825434120231789683445661229557202174003779956057855021751397199463427179401119372281093974758440066224252453715099154456052042483738612062490698618061086837061424730948719278502961459416180979913797685965793806107584310856911205145166452101551049802497998333689840310189289934307844517767490269633977457361751368358489654109962423976986080926913286126596740085509153305604119556453666676047920256153461939371587964113831268684390944062977370269435339264815742872902951980629177966545082982857607685588635976398224565090766837182984739949753477237129267787249650232667724651553912470913118509478915814492452612470193284655988801355088547856868682370853168871597889560671206369776280976974151387611175989102134673762455525186984027843123727852033982978593295658316224665025793319008597027538420078388807886223462467502805238674981517379336524191678840469920604423103448574975063378265102571720661760207023219212683585286116935641729299428873140392706346154276337374079172340651139786675781733627689565845381240664412593311713202118761860481544493537387945323232403147933452269672972578372788544627613488186528718832731024000224029595014102769326179937002710006807013171134191546456080941923050718124086830716498580773421842447887832396913518723220750932354512379704121679713813472742820741529935081182143050485211594378629868261283655474165908320207156263482829279171185193782608876471887200237932222787142965196669985451008861147050160176324274374580823696867780286856093863638867770130339993549467682107251505795470739997728949915700172779840891308008335246731580468919906316943548130646804395904889288603193618130640602608359853466106095130406848216243044000733058517281210338490718472292651225062456481072242287227924870896493018065412320354731150222429530319014164603670831197976219662463925583427107379556050294806965999211426301354854994568480998791053131717059842635762662610466966127514697364693498789896530917606324756829539781387106624956842728312830087946169097110139420196907505716027274896113462016316978570699762745906882003604383114158318535450609602750350140338890323144441170352723603430846900028336625498432052030937995667390666402980043400470698303723782694024153228769134275739861577690999898125819364650176745608250562415939637576511548925184592144294539338903707808590844447195896165674916356336409054810397320471601486128446366429108149187348167046586534922067569679563837788856151706922743335685084114626774411910755501002365042763850602236614470822062912745854586227064492471325336019397560813137433574750857594982515952192945793954333333998483563655771315910764847443252181414150187033452582773453900917304538769219680407627022681766876688614042418011278673730200193215793432669327165921420533745015387599452590507422110421113388706242311017235223441555525258099046756204921479283706858083297079546144952930091398110839786082604633802654576669356032831253482661810163066143514131676463704945402371040826727483790444823569592622572679895895217243209998018036333968790732122552976027948165761180499605714074559754799256152397444616232918683747985668337855970552128296497147215195901638400114312877706260972109525634432715733610829698884836489269249895107953975693896110581838280750816310642062857912849648957943711759521521703796594740138617876933270961905087479987561642005569181862235540875657447296038605836198922336770281517594076180209197542099907788175502937136746661533936772509526004375758778074330056219701497758200243908837770180996741350419255538233043577949595195127114816772295269289310469862583160645406631142883098559832842988144218770283322129588290219361471107937002928677756473850304158628807637865201056796752651863263508686753991003607641941212282595821181667821228474042617504195147108696452285641892933649231916888122029534156736603030185142228688676461158125388093469359854220728619020641416025185093076631504644955755635949699246909414565007611613486625818282483483396508969032858933887859886184546807926084743698017046778649258922878815118596665225731150824433388253660502255915810960411566846350110044693433407316714546203340627560321733272712736277153530667633011100792907988909687001225344891724670915211922365892943529999078086159018255737437444203186307231933748557234837640316526884739944189773970378808899788056839358123045156786211472140177043897906700145525182490211636166741133534889133950314438328283216277937877579582720390941032128056988501199813268743125229870433691678896615104598408610771427179338510458671479236074355479681816251076668900976032028511817314404866222331216031030409435211137945259395119843489575246681732813014745118293704182662612995631604820825089447379268597854078883581752607594990468920567175735312891309895989528050638500092672256178137703869955250336214072358079651831889472085030221517223165559691179647690719542148499059929003095355071503564850771472432233888541633623827101200731106827659420980513575209503950862985092062780899080423402737758791987676039647237888880039965533538526332681413011966198159754684780254840030142372080806926221521107347737860188780023357461492248216551755762237211922440784913242730200198058627748794734604598872866292194016565100087243336047098246658496801199430086493379744564143416393032376392229573061223539529906164303196876804457831794875293878699522801097516812496770341496910329659403385398787260319890068361353284938856094372959181035125223924987842981809626251116938889492098263222537128521566809208946969865680158509385266892714103816758610991621959893036030052871678627910027369350824648763826832873071259716393265143515568442345707031386676429586967639645878836981910719034265741335614630577597931973516561000828020103309216994452588563610930222088360713975030477706123021328782868964408572379896412766185689270933646009844705852375943666928054512367165060790777654871577783807725249797535814043865741821162608788184357543081905697563465529859522971183949854559780511991815204198532289848762652721062440218628222822284311440309267282276587152873936964718593544872251681874945072837112685576935600993984198071110905800301828704800260481748180579179597352798599072123599241166084446663374557091376454632626852972406354683864056773211701930962665830855340271625120878201268866584528806198632260593723153909771299089231807685841896003865367380527953969357554417585233810643944483822397549594054583541803828570770284864046024708123841262234543186800900121399265214633348682946809151933376465955970449704007655120443991774866947064013926945085214558486572880536250213149057110773868555147274750626935300842570209447327637407011540736836237343431248043891982015505700134405785979207414732211450124435995065675583721883438207068929640122178049695848143058909868815009927782376952746958799539895012048476611462897892164342746069331728193987873547302824184051022584354507140558379074490625047555574030064763392271814163090284714135780936199641366592863332234065010107909438341569780939194463599162133539377327618421817561952884391381480838838837238802859375098030811694548781732843602409264210461780851334986834582391801790177124126995242309409135871015732271215866698522561645516869304264422078394465730617857674019336394458783122719206059792407431487836852814390509058307413141707682795498039276985350073675870031042427096963959778582600796201027250867247696224011247263539097613804687054349929585561250288377066082670551683578303005624382039912999966834741600326260164084698808674281684327692286881341552938360168384038488062327892076216730467234152151495180845692089453811531356700755797588762802886849769706949221193861929326006142609142389067256040578411840691999154036144100399262791288335371759594265675546302901512130606005735828005637556405367599623993285563234770838488443258998253561555456445650071907876634345672051146369753641235309825696585492762519419534420183781175547721231897286389229176474428571033965768123917856641643833402542780626938935981234856578143952908999129790790525123251154861285009345583580816243099439579494887187397881474299608411310338389468474096257370636788344714209204510226095251356815578064695983322041020575408994514733209731768280353722935778336595280684608825947680363857040152941076018770054305290763935501642245445337332302504384900956633607922766398845721240802020086132914198406633310918266145211068384747425169037952510699727750416275286248014902161732512796910176790679081225533968378292719190055126064252273623753448520641497707896506641351714578064997287617118638982746040369480662682671976298087128607808330679971222213347584961055190297028021893397189840237903139753763287071060878936508604272343519203092810924543284050440273145458748823312759163936104825831545642557698543854285694594893947028958821962731951602610755850807175448899075811571805767873646537075423374077141990413573895471054919994016145809442709142618932967998918171856565706126646022262749875300670840030068708266660705786863415685053822763948108282553429918562286888891679397542800612236642328222613850996912072437366115555714773598908406911556642878843718246973822144986074185471373033048258588552928304577598486063023176779214352708370715185100765041871654613819421049850781963258756700260121977494887220088978395392683281967095432501828074860730538410318631440598536701140118347895889388026351864299038395870168976663047490955307293765868333259675377847100856727831146146539439535388795337138541772135794512413356552203079117331754186207098624039286012791888708924601287374880570630784471835393767024447544230099599200024564370470279594425140698959307353178087401879891890235457286510602624603619070248659565088682674218852190634950452140527128371116209381331385017677385315487792816112569815765556587247903362644657012147335449623937374693579841226624058878633308126323429568243129595433364873148929518672595815848952575320242948502200253041768485203812863580798246410096770322388358809032448823223436269475164132466722054600879746324838564054133673985995709431200464721597298945878329375161391410225233625114488382861592650645319724296730663767485358044472891951063669858402462106249183319221966971390772146670524226366774517140813793470303991009071561907000312642664536246558532809899915325402384563753516246268825958422276755337679675823825221941805223136826289868116610185420898033478134353330846903086716702436772280579432561326379905894621966767442751122392553259247599221784247082223677064291683212020819910463550621240694219883825165356206923693022889776114565332075280026518398277141689739907603373052583758058312244672974380731138182043668197241827992540172101794595485823323919792679580605353104535877112739035837086723972295664399720166313596880680346500108196090206060088436884449057332008592298243851590614135491385879706633195422509635432908461095066177659361061340303595866465335852172049316359791584377685919590821144222420783133535848108544012600852033206237055205249627877398716453386975807212258267539483625573304499515953257693878461072942737683920802897508355651885163348795249211446620019030337688006371163795506845151060501834622496045982718151157010767334115671165204191729634159664138587358464890391903962044155558982574382071129449376693633194763864737743987232861830329377525370320948894762489750374734812618699929357908398566416975469492868784168441284063054695714944958565206381129729899756373465917788294108712849116202418603658355846582750898582809592470071267133890613642010948059271353708929601194975917053366716630390645444511557702820248709440618062335398237128134592487100961020651813907996365263118897019404323083980362557747194091401314593572839080280898705059917944773911390698102334249592014385082227147246015882639409496937773433822951802999748603141377557326724181686909555094701334141558480190913881265771796866097499118897741400305968376033954899921459173571358305749216077933558971910374224692844406832689693515408761336876428347900846305936177133727797214461570656104194377090789981715150798113903180786152103533183574407631756146896759566527750934725327188552609948706455230278633632745167312144706471799441044578651248279244958049677236586274895122967639707438418976286533302630392240101926927765877780153722593388279392574150120824809812555144785547000818676582932671727378786417455171099386584989430491316852750189102694510642666085372399316722735750472033968211206101888206785433932155676960304245410864990087424619429018031524267738073205746871065359212142906340081961583920179690966560120273332055644180039056020306274135129794103298061951592676789747429890049599085406854266288336706996052510619289580609985981538122125075971405293961499731096752440121221731097477805012919702724865092685554032536083817366305190692844165979998781237944247299444798296419803785289683650310226898328350104836281782362264990105502908412818053363614638910839314800368938375682055003922134308276929968374012507950615115774505633007375695095506781191630661015043860699300242009663759611409372407101114213870591494122398824230386353085019807581759323576135186979842286693512974393427965463633083994531704492606386595690704450397850025771212377045127485603072610883545567384189949848430246055501424907865440564297796455608185975167801098912451012627619382690609620854972028808203159857125779321213742288857941561100092438742816911114120317710843627222400975186131421197401225276615563000678199724760025089980187501394452151956548053347975724310499322298571001387119617030226851936653156467924352073497719423555200842163509414500109257843287847806172880994954327546056950362617026352586418157056564175223109946297120088778302191564906880401881580858138917907601891579888252184481691884170185900989588935037725692139620947209587821773061358425404267507096897378839901895220380081351961103589362909961791636998149571615701054353910169219333416806826959370518565213556063256796541523769770246372091317465121792631871101873780110000878998245042732435241163135409322981483346464288613655615730004340919232794067288996094800022100197781382848189657494641163436739558789784075992336503022455010508799559582570743830053936204335718405558707709274273107030397499961553783665418653234059629271703667493480853619460012528742714672527397798545796559561486226469239279612943660710744480691467507646085408763450977992808309538489377863495854798169250531675287235540647224734017068269653022467663385110418822972588256818246280230794320955646193830318919120040304436141961971337204823613140567027811278305690044151969479968662812337298005558459610026933936239855302781124984643064678607647005829627814741457334066047887287496971977490993890896527928395607249715494218826593569360538016337978533086716593639115275689320070963752283973920893133947779943218712090887279814626351018086738326783284167166745826748223002401903173822372615076988590773863009869506419180375204363004644557326093443634991298420434856714884788520137861381579902900925182270026574194089221653180530259748192325107792487014743838433876792299938421858173703598780104403450042110900060940387543600438532127699220235129552215491627170734234060368861502600108975108602869799556157378901538089126253533955154381973174831195063463375517333467798964752332820322053285969617459827965727214464110355682400257865726028563639041361032179007211904894918896930900166936390232170653823371855543418241786975830777141548567561451496042629722322778622912018381158791931228416031973799127293844430289021689583934960644849291660420722806399909574184915193563629256569833575275890070096286829026874603879277887283649878123428507691779312631682395371611317391931342459713407120237619283931681956019754244074733027765483668871810760400828389327375696410108526131218243602006654450735655230196540773240708038738435120099216097875665528936780044210075637572998550421490614512726088817789593375470803271947337491465205847625112860384745126288480998271302901757921546632284959155699281358540315724729492701207916935815202823205228817148086356893717962851147031042852418739766310502610673420197287878094404121750455530446871321977417611052422597367664592869004782108558571817425105016972954994836524800438123856477263451957015587792299909050078109512498883466470001308802204878198804344423654267677961568507532523091742852466216302307783301839255014819201349247029666586031466559016306540913558804725816450013972858832019886170762786696728449377797184405179058450745789466364547538704337570357863373656676695587888752232450001703896154978186986282469940781936154924513005176491396776633545281948707611470127681078282440385207657991960347640795169919926768840711990401745940048822324410020745733770986880028121463475009609023392191116699953715284193303854530097647967925082444023617590451992098985924673259968831305079446852177970537632768034645102219080790142196284086254567489848093875294903866836276393008321976447896929774445140685508572793771668939446275660599284359487098188178557114659458223775023752670746801234131168284864083186163939089489950707432681561333181979767567848281089692048565815600919651728847870206683329962385973012252493026693837026334513110313431951364376451413567838574120337665391829484489400028868058632572105669949806034202284662633918525964116812453027583765332273421496193717146644380837260809861930358314319416055871632489908013981445912288385150206619987201764935800309464860011807266365437724812361530297434503449793299517618694212917295714561175963291270420571495486256233153890690364665346439913588173987865215404135284761227871505272476862257523440583716883300442643496219598624073164965471937068164699667728344066334445522600928935655487593100182450097338621382450635450320727503696595869691699763179350003406618619013969668941557278349354023634825881501829670992497565920865149311632979386592907381922086349855049048739669351952334342751527594663262957725055298095003009730226279109742686158492915629829835317265880088744421712602168200822195026764436856272739811055359670684823894977414147264948946087921347813166359309777318930723895448049187871546096881040888927438687076342110695102675607124277310749400253271021903710649935860403391535022549502061280509698028887135061190181470628185635526070081961284653360317611170640855424297328547702969129096649610297966945734036006013668762189001387975340645743215660383364521671855041582107809721344183583772361012056043209755541584539273726830542407714104748530223735956338012028981476118688586497326280054981367584882180800038377922218050639804225768190145616845023326347107991268826370946510921186150270272786343178051806671015362200341753458066101548857815903623506846458761125411645448737077798512142310912758152571249589724729167397030796106707561182935384944978535349935185721978330831182929351879156901951546671357978657034780986819906641434892031903697514704996127473808994126441499848687673220374581298769259537645435302489934245643783447519303245130252688908831258002190461066746803713641199970997706020823240231324274339492072912934345590082173036683192688470745617150140733671807182371258106327107536733830943758058714204956497989647979035425645401343273594909225920082666817913920432369991061882892857850803626141712451738252812225344726664672562448034050592739809567694639685694324832367191937929712536811020255905941725986470663976912139791301208668255892857445841056977596446691155362940065404212072393465152033255744070742670143613913853561407095521372989468253673947057927228261961372778402941777108969614130214531676976099111301782877316892875656559274301278670889722176605955484877233502055560799123351833035075074529978011592001524459790105447176844548453422921237286511346916607364830129107371839094397603283525261852204367340215299051693765199454688086099108974502008413659232042799093068912289599446634883297806689871601160684070510927111491595386290396687934820152268080903674967337580511039230359719074874740299450096436382010624755329516199659112676263781802869727237056314568210395589440425883635036412338400565638394628799630209489375983316725850852306689315806996616093350840079303060988554860989522982454496713800176609060594986462050536680287872193701345842388779926846752779171857118644209982587010505139428976189056043352899368541266529187599475461578979676529875191185074163653816765615912773760785338334851709659720949742471522810347850207310464006959870425827920634288526854535142135055282024812539552446391177508952746203914166930208746721645414486861202278152594767992433995431790414819347672649536702465768021227086775325862753503332231239405427355117624228680782735627835344361223832134005448908054347925160417403190678532718558515842577105625766446259388996740362864510757090141989468844005502101064414420357919591110121836956509366850488850421140536424058051081912011835805965871164774526076118142369543990362269560292527483219514292968345434460412573927081313053298715252982827026835374732773710027412825362441964159603439938310364934097856880848188182016080777385838203764627409784831715354829452813106533825144587634754854287936499291070561839374280396131165994644151735752849036620760530967395664044079922892612860622022757238339994962295993375393470937720381612275605395013963361029470736677696923863677070853931983709521364624000793490341597922679218242337781155383105032132596507599611566897241620652908635783705100076340793588721237571204243336508316221885018177466926260003935949371505966757298154294069985651215206941605786441090225529632710829803484613183171057046846644659621046395690918458674759404845682942031544156257551640323924062591275886030122030246761690605322637565930547282881420065445258702861522934328678358565705567280717191394451401968983741914353777216477611533951006366292868803382593307508224666831940952533692931369833802537101959144009208036343496258754001026627518900888866701209113420141383740529321226153877111450335807647112498279195544823353855541315563500473021885822296994357243975596354139875136550484632339032193861701878356985746234669503295816917891474608707471290658305317109282138965516724604689372406408787893964082047286131578904785261159720122004909760860262504007497577275573512834977968826805759654613558990626247429183181379231189452018944675812091881268492345553562193786291904897602075564312808308973837983768945060583291062265689339936125282826426292121603086502357663249810737636984050209834546062037225902708852876126117950756447761459369884246945261573102333517719796777767585381179359859060291132687580894943310685791034925434763652384822999402030550324723465409353719141835417135860553331192462150554686088412459413580739445080940678668805695060583517635469492506437265704815422003333551734844668225858120159516294023951284000662640567543876209973823196680876739131485285667446011760381124346376759302028291980867038501799111466427731280829958283636572386182497017568623923799382073563421255644912499117936138187729063281030340267578456472458614915223900108771157312689566997961416118928435048034814559127032683909351706986847840927147624632822006578325107899151356844547505826516280585784958173509417185477388447215603002954565157017975767715583374915469471294259940060297294818968890190357749346314045155505868542072532390316317385689310224387181555260259775847194324413516768065407922550854239641297061703911182456017853638581330493253343901497659556966535070971098315343813503054017217874429577705837973410310389025416241005091859266477585261760236232586604119871293475220849400442018935459847403866553451582830910932665493371966549666000441779830991113231830445259537652010612948867741113105157254196580227599467606953694265211616072608841255151790138790797142974985050476065371022529632702141644083539224669156091420597443317329278396589326597672535921054397516610994660244526643483798476062462485000748700936408359051760774182973270812562348263576854956254379133206534914911174534431425564636272295235525452860549583093619135790452227702175982415159502295577357979323982852155551291618973276827778972069972642216774860763585465983215339252875568005142991122784592123314143238312989210268304550527042696752881831467046942677408453834529016506474768005040315047912950020662028445243688385772079308597948866052588544687901855051424469028966676558095991697439726548487151731830610397937913272779652283064871859670361228175721102706498097824691625884992427084109185900587685668057860438274015216910388786448823333744307619177896792186451836742257335731794154499701447529810347163266318705997441535627564564251190717807225964138308998247359615903294136093152097081951874220187544261818082158308294444474571633783796815399795391369379600883249676844217587469080710619836983003864538856845254179479006431178869440811745116713825348724058641633670972624977948022536540082419383973593678791929042617669982939517408224977699480665072760749096498481063437508668227076674147311151507108083581219568049627522544844830203002450215475719403698552192458232492341201543374571876558922649734619053027386612748470067333447333024680607081464467459405624626135496318810886134818689458278448329212860468662922802938559908711586917627819632507681624501318200230569171781987779482829905588470143200045664271829164117957552949522989638225629818567761192060996272829830277528045609778058708926985199545876874869117712422205290397198199391833064473333549129284394967653333640368493315813941276910264879641981645501438365162258872526642608638398878499353908471415908615774642131525103244094788575976605733840891539010028972291811555087643388365872764536859478337212624085655302627515659914943662545294322037386042278767137885142928654675638407275102161368698993767776234728218284856199420134523521495793639091113126643101544832304778692801884374700820687455433910333390725612398373706841213316962641391388539345901303532348991700525032306850605546370552433559476666807801999142326276757711940420327484988936332973978436498522717562424973184723866803970729824189743939150072975034401204371468847413802417644329608419977797492959434026453562278553467863562710341184498432240432222946873592286344370202840774414002355361111005415453856487956737821070262325843029107422361115028109835618587281014764872554481970953391357486362573170258254765068203993459412145546033688503329364605889271263680819582575142479130242207668737239025968505441801706554779676809892855089135628026018167563762702566155890825138930677965749610154058929701016101003588998153550819490207512039955308859883016125750447397043687521260087905184858860163660237063740247306812677568009522454590812093702475913689594824719511812543936684282543058925707513868399906112073640543665048484308769949174505057268630045724792382451110829237694838097448051798859582966085247803546706237909477305155786633844333769389626187022298923696995164506460565671048169028663627627759826840127407166300542592837745974601864436729606848184559608303007679020044803904015200797263113777815608227858374679482747754938486440588101324157385745149759876489203911326151081735605384390331958002171361060262033252908618303551277025942465292750066369058850266567440181425680043036097428982883773951484517047340680807189791332850829094305238246117166552938612536333356037130506318496963873570395695292901524864263237202319518932993969286979428944285463801436897127715902119752756911058396745808822798233832854396409322489443866955951301426771451661621723938489819760469725765917364549688114090171575136197595704319903621571300640739066832704613603243878204738805848999623329287013566639471556829961702379143066017787539717027679511295755492942111719703668721861054797606392663802573065146687497565918112460166820461540709352045061086047835845465770166743847289773451894516749177737391184128923030960453663532858825422948302022135729493462598330541545149168426502270919656056011651520925831285737223327576495023346937324948346484102997038351289559634096309958273857224039391237501396211509484536388688128102541667826198643219961900986136274320052208271659738204189759739806699837789242040197540806004824124803807416001320955028796757175766713604910649105728502344220956712030105904895565768424859035690559395533571438468353952720636647659738454338653525263853908122757536520710801251818340438020716700883746706565487421840785403470785411640750302831401063637447099733442973049691500365903589651423079228012933216120210292174446714980671071507527067079734978307109846328266422381205062814704352114982903654145551612988894631426364461739476822695112083216089941020477634047523807801574016844222715769237836769842886264640816042328011510536033127606176937904547606342756229382540389570817947474083740934710863082753350560008899898715678667255351198234131584248947601039499480800878292500609212655072954189192206063521589762332295562111006788129663511575643644802792903803024471418426655285908285357544673150658082292515774262648450076124579943363448976854388697006558209496478806546796178443960899657341260666710148594431356426208803301499955457162385214987257505987746483271552252108009245377284262475461603759678581037358820807077489804571606935124032278965299503160032001392009988166722881899616155380548467163334008908756516248189959003773837438677718474852609028239811884444804507530437511033863446701508471534102488257930532505773063634427860048720449909488193236508273000320060472533621502192526911419701047340241291097331249534986025842896131431560190945066412948295725947954898089424672709614836929441433943164793931416281510880629521990867160628268090917576853914134868454583490992643322467908365935892030884526304180928234429770550958290097938966705860937149797530432896748874985922483186318994102101559771157923153773879213744427173141098831160227979588063311688774515701479928498887883993943261887886769500128830885775279819067093195383476024639800542546923087892803304716121209438256686962918438041914221165959047659688279874263288362484837657519404119627699614465387243962741544663640281080636657359036198904904854625591759987102249893986117057184451302864074424789430937980765267787978421190734057940996994130413338666964271907131246657016588994648939736763514520459908019092026290075632889881300622109348481969641665070533589854021645839285327445756845669495338835352446040834374333755033524064408438705921622010401591375713495691049965574249148179038506921333997373818626692437296947581155130415422474409240137943674535108126754928175864406209742248332392019799681551028249259252989896597194675391830096004265047074456840818624810931535547235991954095355751683457410627901914463798018913701475921350503124667831506026097266118502881340162942238247913781526372943404394387182022786990489668438596499707342659343690494126606613498357353221754418993541657092259150727192189401159715842442812707208391984621983654852817443363794940927309065058973873913728412687863854540559914867068461657185752975816231704394084741015406139383426378864673330734875285227397680283475293335116170144323581572605522516337818089034351364704474687368775025053604387897382421695860439100581197662320140147544070623391492881517116099715887715566573074795950446284671271449331887620075764142351831172826918568197438144490646725836531566682453294029484166699290095795219925282772144869066659301856944767732667358243514503463499337525622806357105443572300363418861508123106063870398228358897500333658920791381861565017534170916250859047841825868741763092707523227492304073478506285501856619312497624051894167799774216916729085325349880707734757498331610630899525134790248090563814623868235846117733535985575024793666958989247479988033077165956457705943802241903455560859165567493165460174283893280758832335658270027197594673813903445876767187605474415579056893777930343895724889123388307637599533139901348575661471269025887081727566325410296377204242179618745705453812148519468910636866168933865352790515151599267467360710839347452469569602109623604053487302938993813382110070470615439750561572825988610123174463533038630560307256247595922760992572411741697465386778866813982478158281231006420079317816995971323641006176341208141729071134461436678217451358245577714264374187059549588365931359366358569572319444151209187744607671668396011045917647159436108760641623471091144798427755076955561560197750688431408912173151532446952465377837186887515730826690684901741586633712579946624441664059449600920364588534401870167663112917409681138711640410860753858746427928908668348456988355335693308930209541511455790165574288581541432644634225484276138229342806277415387806597879953137979266196061947468200769271842124474770787253005888103383443354636629764319814652278159980004397498201056663470191924431848573732009959427209116263240900750733006706004406938706744594292862798883156677044506994010731291326005700475972551131397621281168340449539429417763741935969464285289502197820917964643145801741342428318896229324535408480426127420348877425233967314451777110864290579270455797493770901433958468296917366189890068013171021288531589066891178713895044852923358574181827531237345090618948033962534951088291722573812776875971124348677024811015659760432837838287800650267540325635822426563438365444127664045318410171241716229059412951918866234400341272283261974527303785585070502077129301742985826092525860583383406971785395406169667483557278943490876539856654693684724289639725438946129944111019083587115942973707111555648248515246063650213931478458449091779870338938833117646309966014369561403615719899655334273214748986373572023357040169442399414502233182913087203364429811663613080147581052751333158020869629105122187957438906937145873495296083508816368208280467651516305798635615478472267306885131822612685519904709372698353485798215165020830052649879131868893037238027044229769786321801113714241322243356976120248051127702069139539029523185413558708752179002381901312270169393944532434120417824865762783106815695296604225568045857620111898543653260627203468725452442494387119439721311906665315712699246924661647643950267392428277146076804840698154041132683856563438034393271232551529362595983143948688890006873478302211158383285241829537115497936679233620387285976206403897018515709390255902987042019679627563397805900380875662491489898078868146084081840263012855188347915771873040719918695870871020239533862169883474480165448300893045718177560256331976657985327682889853404817935576302165016378029597633226518488431771784180938411351710219925285734998585560529247037509880123543257325914098409722347216049819331417124866411796026322319964577442596445044990220560641366132725454837628539268780637973699578702800296654896500066829879604451477833161918477795025339946250430251357244661442627096974578252121648919222068277580975577854024295677215098236592233753659393373388884092221002501255996766315827073736290125518599856230574476456360728115038405701679917327121483012166005493392528823533493330767687686416615756140051119211939529366153494935228668810541968898723530394047928388738975371625936793076724642312999447949026858673066117283125731121400793614249720416645294707999665603630216569599585854793400299144903974403841993578232416267019522644860241122763041935755269197117805688514677154530094346453525420570475869560005252556053094575651543072822681139239718698944091828403039327348052880920895743407295613695559237423252340771646314573610459498834624938923718542051891707712004266354230634127499166725587950221689879086252710472940171951469600078203165185357029763509636041987364833376666074038734494944234767807358081862676445438532983138545824759273437057723251967042802944929111300693407085453850488707077477125351669692501075455502511719191155484098656896243080932066685423786117651474629561844190322761019600087642623176367251492878897397938835206663499331309770317955470206588696085959982262047039850611617512625428397843433985264711849857584229588025454350600171418210949944228545512134972940585823636905092112357727421608014750167635501495550075015436943719905793827811849629720734381795406831533072252396584203286780746652776212665119279453199293741377956958782708066732248927650797719991599864224044061282680618774332749688097993503044442652337276141833704561954878736544220204752259813254857763837450045719360299948718317149476154448511910686270171022081208977917024871243101088649457585627622025942256341416867263737846624760332672112925526013355078548490918448969392475857532544946538014962470111547511310376654303325450319394400429625205693099948073700209659733595928540335994114395636866436731045685607810069130198164383085228764651282114196012641187418449014380658918746920315556164467581716181152870205513670940216194529233672154286130892183517145362610167791461676642256656308840850378973108556575231544575833975502733261883480539155714318370193137932287237165374028856477931172127122833797778071398753818063337941994636341540400268937036266553474369787085938088350138727456306678511700873586088561829378849357806289498117807110203953744122571054348912124376069032539684280263658529369569050121516049236395009157358465884869982069301112128964822573486015385528754498195255378917684767729016828013787831197361772937130257406560952756693049719872641855184238447825615877633452160566803528965091514131031708724112358358033545610100816547948659692516787424018786143695640181646347857985010877695135643647817028558442861515768412634324229247408611683741505562094365865575435453622629800235558498256573792261749851813516984682808772216641471672903235922298530267071517246212002124819692682399073381061862019032582335442438418287153136085895092623714718239475516733983648942739093302872342103575565424891729143022880004613220144854513505602980736056124521522811557824890098641517982040037026449588284414513338065429480751110167921263389129003492405180525074256006931462828618622036288664374475281880181527268896160004488926973387672021360561139305038197314223198840891821229004530711837597197308636362093417662599878673951188330598823352323127422684245675398502202524190395108897593927037649074062110686887603262144264967968912842800162090229753101923284170738529181656321236322444377564965478425886819133002382139752159427058065102929668984559980159368612485086171745665958094045867926712682793465161594403004977261951882747232428931245528396411892437282854610674762923810900594558176037142491002427088059638442790348174599582990031687550058083665613583036014138281301840651490774965355483174043070346637849157808006521030561389202281383752569259518438251858489319171003419447728247903411446373296985199941797863611966804149413597263576828720905386695864818916429245860094842906225361306491182547053463094943510185857740155825665364397400457179605966812988086516157690117287417794521075089334117696139721048644400389787529918555991768940445668343743766280740335616327646322578856515396850883888662212223984616775955022509706877455564681373154508667169325659896829983459151083005053093514441931761842891193021658317298278234954252960438995832213847903761272095706095256293075477254707113114227563156450535147192043465461540184132869780206023295345861212097893057162774028287142627199299100935851635110194319691743179601030744245598114189264876465448735686936617447684658946786267214152895077772400690270211153066746120908658516050214902232754980662224094273770493904338195622090249480174248629427812179695296314530544880737754548607453508819288125910773067101149285079075991927980932184628186780734631703462517433492061632778548875188487245193344901316138671170736314482033621274721633494149761106061676503654415173080522787715015474298775026404129524073504281406002436941163131288339995042891001073984318910899255839420164200111069301148711447485293125877011218471005207650650927588289408161754381640836748737321679974030539377902527753730328062941209360632091546713340178219477496065521410181843834357709627718254429359617901204443392585181091855652119422231877375580021427766881040481326708930108341454146159890208146362957701855049969890418243346529727373131472667317444060006516889518969800116605553237795341523210049145637785781801979109239571719521425292762766033866098795064193596103687024549908132701341104952955158790869177403684370956594712098529478140259406725281047469598473156139783082159694108812879060873983983836772954031835423587405445880727080099071033360233226572870167740844503532939905167271778904287273664016403416330700668851837267209130615325961797265382159761881878875895677062520255595805115292738500210061451556801744457256340944364074334394096486421200618770384653825223539050473380183048650773892237836566853318488796304991525619961128144786705147803124917990365154313492045499252911226487847003974191298429847355609444408133302288832547897260787510088793939456966449809955687567763680786001545887097215751620731840717624573931920895455201354579299706151471767690610235375192162325786162741307224583019158911651698094660217454709690934886792102044302810418300590650256841708535838406946845876613626566831964677395994436968658286635873560363624044354704283332819045645775792342610646792292959089083967748374418573992190594574794425745610529787029297380972224432452297798082060240182966331709477332100694349636515699115302664310939461780009220294383966999717147415057177410798247473989199402578055891084097364359295280322304060247085835604554487641650938946144091346380879056915491144717990228487854451852990741241476400433150815931889693840750753858800315959593535439711336960441212715512649664848750612870617673725911427621818783409556048426877004739561864580053766561853707691932016374319890471020578602591931865441459902413993829557182683173758104907459659278350782303626381349167110334338427181171793500768087631620048332047941697346789447555170778492562548016505463645620959726565803780233430418754817677421904425191801530690780102057724276977798061120279740330056587427856904874162822772700481115716063232290954867882896269801197196015085136333300402168098778316600133059238569203463903601685955192280263330621219014536825457555336853551420707120631809416563657431716918365606284670493875698629916669414935147322227184910815843487948765812653555035496447982073404204604993470732238407569765716422443590003906421834593529857853392637583008010180246329495597555880396751275530205345597588320911691654808251389065983586980120032236015594090389648149878173458687448032324347981506063355035083595277904128261185326759213257857352138944423160729446329067634895307385348401101212271791381754620492646200477843988061238230195105177964647446733356350887784628279556935157623441630569460228876997044664134016505049376213678375937819064425170947067208521488733977442843572282069868430375542702904223756390432676395085285942648015687806601130043182664625984498065668891738508353311943736133210223927856085652954467354238829606449432611401755582169913503190397920296573992875096266812613936647895851966563056355635836470987185457419043934550700986382147571708631237493107415092810283367368868823749206715465011158490573670496556346581304271872958125625159856917858477234595555955917268666468502052284308207453153573033442571321238988433138174216093942973713369006407087151542285978822426574110683490464659733703361932046214886949383967661606807059265392940510548006068491582878630469822954360948654275314955723127783244743255238614664376526582974743068261414371710290341228579862114787917128283896049835649881290838618545124349947860168785672568020204537689723286604426780401704087118677843720015912955278906390645686015600358396098746438153472268437981173282372669084740048882057516761109084043592579199208306920758065462630713255149015154598097448962244293758025826964452864057794558927303853165199481771120516843002374163018036433798608226969337253524736599184840717887819914693153860232151725375394076861970638862650648411010324576941155205798088472369664443407137433679237485544918449792580966500736247168944928491213080926695208737638351424726466680667381826879102604692287496189585749933538134215009736725345342303184731332341848904411209554657680778171271642494210706620604070982436750784444065732823472882599177143810285443250198386930196354223294000712159826696353890674459134607731969860541650842398632905844526424527793319081453004576029375692534466986069032937189567093656778276844271995215064396102627537837301600714191249231457600233364325792115131746671073739949605397311040325246961230161872008272814590613199179455707126747213905581654951522681754563653964579299090052172911751739559671919541744613326547793678996988959900232519170098976713602146527638793287408156792192334968256050727122397938714210113556925596722273276265066337417636213754269633309439688116055439324593606312610537894996244140185175264978109868868947563874319085919114418791674572024167086868777274544270546366036133447490358916583088251833043744382185857999371086123662667503246470304377246369663347945463209725395942624298958766361484875737736010561941270522209811013861833767654853599487539698432052054825357478673925590671313642332394096218246446471911006572446311132776785421702622523067211042628642833128559308054827059980620181932572527144096018061338693616057429877899808562933332588958451485814722628043487913703372776930165116043831318503095059961216406852923177154266311857082789334900784957908039197551374628898931184396133987153583917350121114609712159276701269524172306268573774318695441279459322497843717844112036467345217587496986728617638904910206532212920817880196298718029236320446297150815769844053338498757519358604275645012868143097470955183589354907197393167298776772774054628204036151198128694476891775229289897862534710931913206086447787470440166709780172166697690394381903663582220440964193034916962906416473115271166628806485561185445718993285578119433483598319643574744920935459644499080148621906558374670306001328166327028638020852066679717300038090698934350019437364805363989443897605402429439559810849016673992102549311792874667415303074177667239717607716345531713284010720376465770883383798698465863667237747615126962726384640648205673385230568112492488253032012672484106538370677395743004079080628826246492712422883030845008608520499633040710184055235137832553993032348140907673619981518981955946861048343859291528949269016414241285855892793984928402137904027822213611182568551794779692443619495882209827273381511343841267953768377450989293298357246060022327076199102354269083627661370889023562997845099908316280246674770864733853485376719753232995135247686572483869637661732217164255644126827169174239170020237334306684433438126900338872868477273561321692361392955093552323087833852188666684021351144190192019323118577074128960361647660454393251078393629017028680581136538243975225162954092253791515778213947678067441552542776336173612699331848319142977426595226605997252709796963290831454142155874158313669926492743892393627645826832800128163396516101662195627489679374404394132683536807152734438553989504418468266810516195062834818390186252429609322562548872597146135123636461962477699380540584422075866568381131433553178448848713996673206562518815120597748263911491868414616602392517823883436291615118426455560228309179400754971071664544011710532774287473147475184032607296558283883424527693368278586368088431549268765200143967840482586281146162711361024772293970642947852120532620679128011818731917846526239603146716511971666394314762145719039711926493973592528305689393155039959454570286704771280068046656731216859036616284189876972900412226999718585597583912075846782851382526328196435218929239170262879585186623829460291447390260731137430520274606536754975924602426076215419765637571405682594473182115434264766758590458002737388827466524906494877536574544124784315542595748121292135633439015483214926449310364305689678506362212840060975303868304949516743257123286386970576793201984198595786645944809532359726451527540951112905012570372265448987546328595236760439877200638967927679332146336078277576750271575573200336683689908010567591042970430563822241775048444950230645350311966385733691094524361174599629282464019761405952586047779389139521336011889647372655154113959933043129173817856860230382083112453418496225831196664200757484821417356192678712673976135869439019207378196158046624714683882454565446057123633578535526539388650495716300517263106899373619473263786562156039470724790229047744680382330431380118734155339351098051837517501700864690481451892374813538800348526779294989944249409453951161175866234173929168518548077556802260788930858519163262491578450619548869558532789409706660221507513369361131762734036735427900437391567479515174775334874362064443891760312368832345787674568426593765758065517242106628601782565455492151529318065092432788561481118802740498563437394812636196368169410135278794465044061336395038636031172998711322834789329017294781444628284845753397341748957930672698829510208946140722255299313957127552977709993613793540587036504885127650468765884599219669272343693917148106672252888262316270562004259916758466230182528408494372386303705919229916457323214403307345637039098039951306269728884074699742216710648409839592495521029735158601671342635214240473027431843638671358168594145769750094068552169312009621038977073606759210882880145363255051041802506822018039970617313099067103256177133488855443398391865481572396747822922160617628740671109623542140185204992355442278986373484715178291575381820920026418770332186209682884027912965845919320894175100231311789630424798089318561966908593273746202150246967847938384748488167861136722373456831277842182250523998787963750832144733104445461992177483409556544105573245569940959495277615484050897749532014921431056589989014060777563099155412159059522795845044097208188354659892256351764678337139277624477873507962492399893231949593333089554874927541085069652984504523046434709219150358930341149228010638366770676810659746399998542305903058531176325169891097326908916694888108603805171527393551387204977640965846558270930030500590079832194922499198327367316715866752281293800473529179549527114437455750697154309862277187071148438258571875743341509352823502484651421531594461153564774303145848025020865964174514166587811985792882127694527413596591666718987783156982808337304158167627057167389007096688616494038648516937915910457808481779919339040604701145409833846860103734081080513241644597850628372743276038469713189891729206194197248141837853850261521104024553023687802027553400249772839665236871134519403557607930685728630659294935989789183808678891535532241674559935724946569730095333202570330818204270077941487435962439366766783967480015613347746959268059849375436073724235935156820371670654604580513759162741063775774595454302345115463875500986677025907545058044460652388260716215694952682693294256468421456116545537965218885103325987858402022892973354729027458180067451273238847464596606430084855845207274518652079666948864855675880843055458528928945492103071907069806692494894737215704483621633542936378427691756320330389238658690977855234318033500425035285493801997559550827688730384726467038653989705149737437241490083470622406935260270939014941988045876695167498631092577628177738489058779922371682032318174328690134857309051994587918585114394380292161106635639172499552422399418486405130370411881221887912233126816453809148066182399295378646532869443010875888711111770639813366534831912503936032397292178186138413115738285253922237616121487096974915565488723337145801098930396155854701278915416689344019893744495196555938579633599627633770058226904846174272844398403112786337251135543478297781871087119140979941511732287463810129738172803609497625926252912779548497084956688753356320956184008029067550350534322645676652061727910545340871023030792899903722635304881902577695804104387416359952777681771572868247665551525748213695847227926232273185467090000092476634400330400251690664488445726070116048984598438962724280598040135363983918600321148055950919196626363298735066132396909409116482640313296576908181250102521758973187865564258148697984619917228902845452605834077625443637619849481416940470230521597429192459182711226644073818110261427881229686007293870120449151024814804574121200800547374893039786111531980331813120523592570481722834326838478772922135110881985075252311271583264225917346758477647693624280443196162516769584735191429649384937347563594079834840516274919932433357279354612923128563083482133723526741868350541858999433703828208932856067835091884677706512576880333269338447921056840869762840656371461570167450883331758951898512658677945027214188543461646245045180180211605663240498213041852631496163327154647841301195511594931808411824797556980529742594675955583786366683483815294373961930355175225894362779646024410110972878750742482937752468898673359091953114726926829630170968543461514109134770099524249364786118863379521626859904000227798645743855797051258086480732783429377256456777089319289975666928718039319695590110845334507031463913432113546465657054431938639950750996088185285545040922595273329044737177709520750038013394610056656688606058525995453442715253112097001531984726149784862441342242520577202302219657491254688397341855432410980691107349946598486959126291018651015919654263894003898794234789231712431246689885681364372286835375896322634050507837979438365951199483406543560986512550866644773813439658490472753395037568104031303685894525520201346607257934644720768790886967087389220086837456246449148459395309634000301759706387836424180658230730005040366401128073670132822198207209537611949578503988444322217627827310068043666735573874195926528317916452627065399738024556695931251104355057972309262803610806744080900876687756180440906870958663037017388935619177299150500020904877566533014116076018926047263793682455466787763315067087009473752772392712900612699856482125387505668995281391342499725647016348793540087109113491824272222996673017404278980163096472607487991888161600774673124249548622255280626059336816599304648105716854519673466818702079030946132463891080474222934767039899495914188620300442949938331646656999766890127875994818094378557338488534818918793708269767162632772249198276360647015301992986204909224388586348793231710411423153807110612049340823049397393744334491350633966648173456384926979887573783226436697302144263849440874733409573505784716196625273305253364208609799174175005693377454951380039780174276027018900385905810469151254174285773413351158858729106792319790547154317097376281520410039101482677045414890740727690147416149582912765744836085046458950543239029269475464794617103968700788573626848327928920468420606623139824413437308292981596002812180264640194238821727616697035990704560820562077481928164715303861586791946507139837704083871448797186936764331419157139835823860876903779210151603662382961190531493700458461639852889005889856991717784859607165276714524017702932152250465365091501739739921850255665580935042335710677526121573684391854347661018911825295319835488036155691255999329742924647330377389498444894573602612026733338239102466239687508465528837293233068198959312610398452050469612457559827167112412769707532612759612576367992379900131635509341816582360072747679392895438753428606116116096619347189770824898606390261551263456671315170819500573207623810321684864409877897339212415159901297916532549612091434824991662392152262467695815923425476227819908773592518294360280474991787596290507807277762623878484517067085428853727152753178065769017982514988734280897146120039117531367814716855985205202063122589230597583954742974588137187434641606451794295630370954107788916794917188467412953532186144656349203933443135408556835450865630747919189322336452320195793097824506669321575757510280947045485524625674382128131870686378802212529309409193997225821399889190880291741361847845242792273353005896893761340648396881734235647551401227079650619829009877161518783662967629105664025006897912726721284830381303003601890922561602264460128898786333967549351831974543213757990773551232560484226823237519864777513175342489773852897013348576651459687432359592047269132696927984073095362625464341231510730735669686400767204119775411318249979547668360966769563276757986358532240413137029398115147616062223024538568663761443896803643935905800725098749801971500265174915711076554687391419214599649108670377832502954392293947856644260769841467255503460885257821746832551674162303631996009040847392500158945532498987444854387427173433805629060354648928384651723626346934602853103726226601759607732368340466221050385511003855762148741663668221005385618525572424637318906361615628291204504397141423964849861384688763862915140918150147746834510662894954256278196742589225953459263117183001058005239013151815502877897716972727074565488080238276091632472247620642191295442604545225504912965018912853373010704607401037962981798788908951668779504183710964415606503365696716355907432147240473626485018270489057973169861114248918884454442564745263669180437919572610385160450618397490505988471717346845436036841257536723507680071966462427229343914293652605843332132480919364346559740584874295036428392085293039316074753551729299021251567786256737406294459029688810727587669350424307341427338695916581693388114153982449279679289500854308441038606156357425009524260004171645803795674162288149170919352942341364013476620635226788779225914044328060682878149728377341098096857582939077641727488465143176757314823319515969030919966852402245510937520881613374498269579209396023755109345694833959049050001623386701911092901166710162433937942626000527192004079795144792641408333387465800337234271398591908475768694495506796831522087555562658970416447162087579521448610801706706203328946372855871622628080253212383275192256461385306222905857931623871890155933996211289849511899903326759301820610175147770923410317769711048640500429056753962441872136244934189385744794388542981844345353774388219472434529275176301874716342393329327336824313713283754948094521801544146090331013494347086556993604739693999507872236927612149352459205707362185223977700294706439253526308186314796612748300826551394779230648119165746125827379778338253891613617845506175940532530819337490384881125194991704793669959764442392617205950287437137071125375840534775585402864928274386195592752899185025705749758060452750580573791436330944961394250556606732107487134380791813892021454792019050107158627787522555432829062454773911323360465043442391245541342072737577871565415044031167848182855165726991564842659249299522453170837769737637157204814615602857371089392537489482189911932670557335551544644973354571415151908496033960188668277950009781918750431393484538456714409004851184091063945320794206706240416279593597288305117275579434302766819861604926385167969919387077262713725923222332771018113070058504228066720050182064255954455806849448095818832528761652581790499792008881438418715522287157817955793512087082132193395463887012997520149563597943967617305842014264492401934961376043037555754581547836303577047693715210203572384894944959629430235093105148976240607813208158858259430792911240603996355331323750822330081332776806192194920784868499560308933922387361170623739946735909401331900603304820750779929651664766646325323428649339974367492494372480827531146431909455406099778178386359929916422711378128345190483009586733426859996112987697109824257281911828798506446133149824542748792736825829851947782364613182440001471470703713405241691617753864933422688365334195154488761436773041998762785024461843834200906866194414058063313352011074098617041976515394328217743973175374618433424042388268906447779975989256388661746012179697511789678831883750530798981602950176549005862345721703984728911723717010333549172888442076340958674435403896867102720558807330236699049070360889044428476836492882789038100515884449599964707296107540141027389200083305979744180376882722028817304880206417849093713980418036653789119721800735702620072015326669206405057047272905383049329681454572013338327273979214959043073907455653079133212557962888058173890082124074927667002961123077722936022666558753134292809481421802990782566829499566872250575797107470949120752454213573253172168823921185693370349016567495129268074724824449858186413626414328326109083534346624190252801101091979993915877071356825211127465209028646823328397200285596798842362353776779539272527024508977059183016695456522825715959341830629781290364105861008524771469932902966926978059613209162035986735485474386011555726036202211145957488446755664931663127020644071173952044447097108929442602096785392252315647134498801236431641764612117974126239297864316139147493952403694795357742186008573309720286699847103472807126596155842779726073844374013432960614933876447346715321492192086547263501094134393194123507199779339499853616944562957107371611737751707141451765488160987674633284536246798963503299186371160205341989732285529228734118761273652496874130840658130602031606724219959737066387176181544901256363766994333978575697395641733953582957456861644303175475400573876452123715514481127196552257804686827537119917506034403416650348624673674090642513290326312013463136951002035676949839574183587353230059554941438553077233383248125581215280720305874696030625435310008456505486247980049849039740181509877575169848764750407147506490226519036492367638593832705591043084327352929276130418241186707122727310552254111005614145197194671906544700432503975094768779021200924574702697417877973169749872756279538168855497008808119621563104078110063644875594960560641517697561654677819644246777119441247710159419228789620964509950907937446656257079546813862039986555905637802539479794698847593530137529469384022804764813503561891453750445942655885114533425040449708025263989841651237143159797309794030901752833765754967522641514193078605041640000801517832835662846416483744384540357382761939019161331226876420725635187991518107751870716335244453963638525811845829844384956808597932188696276520342586762726288452836409312301454489306972870261937325182953080869107789879843730889682735272046707330234018655295853888546762037705041669761437810541332369594390414498417583074862338262310790596139494846586404004385781165769148061504365824539148319450703319311737358638419633479215234363186788717092470853558696697253531890621795940246371557375963382508205403261844420799848226143148524170071077007099109389632418881391166723709628212797964937527218018156210785321017364778196771142299852501573553508834202481254074611684609450228175639538514432589585703405811483572962054294124840190056856669640256446688187661567974355058729199934441238441992815940201654268003299899072684744612161990025707859959376308733250641513921278392544441723020772052634058216084278789533770942415038616471059734337481489983487089298701698703774437528221425765876148069808622276851541120218172589176313348431117060968118833215856732210676369012649217940142361093707864013659872640471371747962561435827406111725370272154407474288688078046843749448479347455189106887970441946942493359423769681062824311387302850024425164721576031865544744918772800192285309776352836342540458224402218846389456249396071269799883221848171769874159154925493979395486260927123155146758390463017048924658524614243607190002147650717327655246354275067708968563468459465461874337175552559583828257134997039699307088367097560316111780653034608997551129231532568312393478257219764659090824441397897166281825615503599152830233161546655743247763990664070168375693599189891901151307570597914888203633733131234482763889977772260707842538119367179309391116928214818175614269554464295098891833341356061480373756032829839188411380117090827338038653873395162735240490980495164123048701961754957477336557916096649490913156043366977699000552399727303416965202824625174979053557308521723187545164199211112830629793867686608734597197260217273999412937626704315814780735364447289525657187318322609682278612180841338289277547080558056292608075239208415360003904943175299783371020396651877542944174725508880002497564301688689458791047489712314672512348346780562230390346691304944317402496841006850364591837018779691653407210397974936602276298524269467395266196443651068039420426951261151970555506057820612831057992826732350709235379761098476158971799054522064488278734787324399530977609995016298452029789998667945991806203454751000051670770543711988192949297335239978365391207968774753635771196080889891869497488467849955280232139961122438203123666077549421053385559852234173827893450873087704130400313803349597056871950252872269792461152731729568111131546708999473348708060385093554054331210977092601990335379971080752194045079728310305985949500424937732609913065947789688282588402607538363687613169575611052281146991189598651749199561414133424745817229111356881673757509383165821872464817637754697203024950975271043894777769868437037273475864933697402400399183314601771348407782764389950932972202450769590591424912485695594889168045027323957385104925030785908063786591956920897164869008802843968649680051443004346466757960090563476107868393839171524438694053468422862866770595755703280620089396858570118720183357955875941862767184854652343391373768701603521102500340106891220101177811841980180639354968721334949760471819041989555254223579301579853732172979708414448555180957246838980110868257213726911259137212079995893856035052637778845322543252545758576112340276445127557811336311803920339314430988474811609338585187398223661736747593446669471591378971842989876271319593176901246955448444304357410941647513417964102070677914961178276620952738657878571331288152381177246986941933655074258754545078448904471655367146268420472101862237073771762807933450238988797097390734244774490152367795151269255341440681789351234981723697878513501837059941790570173985651936662682117597584327535948522800715162936468906468254511164024812108522738209797661730777465934089146069640669840811040607445080857899377612211221549181429454991117289597771120018907056365947459854327614313843441877230458771394023040393106944686456710080785713791087175547620871264488545782851277476544870688974179909854960769749306650205392330123893636494156135379976133515288089528864589635135210777615713323265438666793925451620454092085406684763801864922966881160077618485482147265902669940669362446493500763430195271923939843425632810358632799516439096334626319457314676727828496463031725277276551604536348035856629529191734628016261455122870509574441571982800997662612551639870908149069221033305923679713655736795767747877970991566200046790091283110844878255416239744177955776369925394162375372665015043261780048989339855584458485055572742336315433476822509827746909010170790830344085089571414188086218230254201837129600302375552883521051500158900513886041616748310936216132422004481277090617401702993380002991296114950620902533401548467599893278129320974225717996887267751265078258767191950595676782936921634261791071336142521345784371997820738159797441595828883845760550538654871497533482681242912147742074002914634681517807161897780409478076977549838776165744025153931729739845248709997872276514053482964782123048284036859709238895473355707222020490940140138439674617389184733665947738184981767589858439934341658870969185591580415600972152159082258839678695986429468080104962574977843111558293484336537287002331310453037409056506392767085702071501029147008438713102039047368016077599942278370513368865935114824405044376806231137008493658525621702766914590970005462796735474561861277703356823880009303718302137291705613178349475232467217037446824510667465262143058434262771285841454232110870922330363448792177721698803782476214422286786125737016787910973038340220522283392485925495043667855639410484120074355479206366316691276666705805083063889370554004635217872187465393762739821299138956615529485686547270787091376369061637557693119646145437886641501738050291399044843410431206476190327884563556391692692477076827919746125541773268383915190019688695862648795880037514246177654959180762806152284153043659233191209337402816880326394426996213657784923502957727028292157555328721364377964931349437178451073787143643585983969123561661274057441713574967738869029331083896428021449799187240560711390372856720007709212022397557661649279743033750682790791161986728053075035642824335964487608809205617320434151756967113497266551320763705071988134246209342340732238023877585823423781860043456707392890228554300898481811607530479962967217509106139396929285796306844199983979623980065631923753836395370156136718096328495421416819826593256625221520819753502478958129022461120301413396589190932731098359240549821890754217569441154369506679324214938844047535964877009188949170195637003965907705780828864865592046060583916015759136500958522314497413631622366985577478912008053054557506242765234182300556483196881307824666865701912396986538360925153197720566575419780777617761432322686932873764224662212091842967938369825409023178849877079967440340331946026307145560597104681578216422974539308233824212755714078784985894201498051895387455854392444809689831883573650453011531942861376524916953132207547295710810004382824344969887106966194219991505120733313600353555426436272805445631092971259286462814354847957452009720842039251419598235445330897621395550085594594253228690026806582523226605205695816063372350743732932299053994271176548038120339654543196130304855216604611632559744828206754842788406763910362599100744766927145734213331741806304095114624770436894463709913851324378117787509947014017799303530802387396617419833376113378676331919602184078161104511985661656358283412183458123792256739943350101774498360265300779258111525725334907145924912248753219806397872973689802858821854084016617156755874925651132503478541626959162403992515606334763554845545633310198536813572609978013515743214152869559304888890652522286556911807148121432315064025640604625852696898519736075619943919300788400061372383346693810531891532594498430674343273198873839418258118301977987429632521866440968344043235163944794585524920504097635126566221491146912691465492471920628018891627222867332164920197561869930403267185438942080590806352448433964686204668464892337314604904099510328114368777760338380832163486430967924271356223840731837538505178845292907450127006320781690669618218600570652220564380887108134950855928251124589874623578988328017386848055870009857095841881681477177083695722396409460456470374928648235158014334437005308471319731712390433672188907772042410589462470306303495900980491313745894873880183378435484513098892593017413990578802123014128361936297289265233597113759647089244160243268179813895303744698937728736263890782013521742800901230288179649242487163741692428153917196614790235212826876728384983286803836901464900903911093685840012478977570562619955245050383884940151346509144722607933112975175215398158514296526940687756018151344716382323333999701059401796143501928908760362108280223940872306093455865886638373618160586555074210373780692906200565547944072215752803610374126172968505025598469114830727661240540859471356439654578854388238034042695343412170923608314494788974409258955447547944478866753518622830073822116877983061545570994085514457552877220158617337197641703205650906253870218675574063008087665121606028131255486159443975394932859086322766406201101893827186593158865068752878932023025956870772009785528118442032453384712106124325622851132663901710382049410387060273811176074368544917673984060747601778739630101776844551907321302730019420557221380943285728807367341437592934468843684174916677757288941293732713004040698393548875059948900442771181851442304605264947860548754265534173486454832638319244564469537606074428534394614054781388816867911335030111059452535512024254048169714872102281583911880757728877190970703969114569824094700412759342360895028534514626743504116291834068293038133620905141599162057128610495242628199507402005449624366114825920147170353273584338833155169070081635965890854598586399499061950986541044132764888398877865284240240545281457036682459849451017592704714010981514358183237109090724704945112899963863201903875828055507856503932902574138399665676043266984818693737800653550308852776384962358486311735387374712018250323844860030419418098022504011434734652693493639677799184531109454859885222824665777237781827483373067396350219068685414256581798841477957983930132757795500282963711008568230267748112590907119829000391106799338647638054371375735999458010553975480073876124110580973223474132615379892687017032774219904224813939318960944054115089442882108316253045263202304888247337406923527652651011317758686515733272404095083953227277687458368993515360787590514880097590092982939821816572569733161654316884029018745559111552674888000573941745385418914999246702239449544017837767992438828758638043938813506736630169494355863667459282247029617701013790770645740319864575389459384885965523498987121912514750861409294458442970054477664621041691206312084523980828324158744501708816514569835358371434345831633892862127285676317389406568775054292551703935588986496140110601196400893670008601320805556270573751308419783459062462419440243237069135322243007276795403926448739071000578780864358935754792797959354065679173860752691374399239165758106686681121276239068140564288169143660034486631873007149995254671801373804514739244975254288963330236793060811974048887252198805306921159047052026144255886532779560642940951192818582756621341995323974283755450729367082755291847007242564297818431683140962110938794354338551721495985883848804690002721786459919400202930661081100517241416723692903387229549652235715621705076780121555528869684798865316696490664592953111367328869091042181212711018616408037409229222565641409699914069903067955403031248962168447429180757285294787629399751835704483933754409927327648490146495699456633740972165201641187781148623673240318912233272868816207258844227719274064375302255388688789555163060443880883023487530650334431400792421712333262508203960032546215674078036076853696003033033865339034073388890442844838479841479282437377512004893442808089285110930039976527708551784251837860625212415472252032380168958072965937112149549534347405394395750859883710697882484867918053188009753289098697745372559882990311940622238523463131339085485881654238382797947835672075049503150982926588950977107934849848608044640821827719191734411904369549565324854995118703230809454643341021470400998101688646808158955819984746103957355581382354799056793782901387011715323795488874660092080726158185811771978013960772565204737960762519567792540772988479245608309942588121171923972714231623045314172842305178106767884267810310446949676448471064205917421756178321529590390840949063080143701002272092242774507504818382390430828710438846876883204740739601145895562749377074212068168405043779028188601352230023169260828948253533758323798731578563135279179909993090963253079550797852250656048583510966969966717446789351354836077447954014639402817834037116841351587605752081809988926421479787226026666917766588444257918531762068875702874089708344520323500907086479501267410015371692000215452446890676148858570299189715360475039302890229760954060133609058308833719342450956012171711740848496240071322715060393130668565708244890513725200996774403074941647285401092097816789290989214855791622975457434257825507799833400168609687805975797393943710208151439263900576363992793660507411725913373202158590979403914855986264153362065982533897149471326580105179227659473142999234680047338941536109205818041109246802932702980972725860693986662044981759962734290860130792723119116108654498459220350972734616572575543879206000487004798446999056141193385022080856419936676370954092454949901325908386450608380108751932075940642388984900083054005620031498070939947835879091711866417713564284683045692341533762678718833654118253393252543714528849872730328865414921566330393376705639118680710143202972478849807904603519727203472248491903354041725151997828337066609383099402736096779149805439920413031230916959524808224787467292135690385147371963309355954786225901124093652139659375316754101757501062000401016094666875921400420855090219452045098161781765828576999193633540996986847368079868789305163324648350403385988982380632412259334719125081378339312216414350867552119343046183450093058673280615309137435621653971308932535599115886488938308232634336000687582670543206240148716446691621528424884439306416325879362105514148378194358313448620615798685991814343146989430258981928046885067262992556557113026428935467565814117625334134500909746606431072196338682212454672329919966782201178185422905110748350477068199123101593610852040629668561854031105726510429200639646142737249729019173727074633901434507480519567997132194142113632963402829060267647970586177970917445776876224102459094219463988851050337922332999468389329851919568975224655651449507447346899027383202275715653248976438230319647608341447142331936346437243161309325393315284970894333414387467491165286121502971592787037326907877221352316059617868552540386886836539105640296597440033147802415767163644949351836626422872936460596378562629286122761635567551223660226845604183045779902200739076133013251886329349153563013157135365845549532686700459920330827975534464031189456624068304625997007892315138943917017242612976228950486886784793293535682972477708561349740852266672445447125409801246148059980319589540033103678694300844411999173275130326651051344861285528578180590331295062929128548428288740753787989718096636622552720394439947519621679386446465990386535490897437571435371741535100936086704487974303900966270302868326485550826701940230074572077128099750754059076384861390341024274661016407701678173514292575516693756845479010293500309525063300607626461967838958886407399177638387670680027387598886515349477567760772063802047260808804483939076253199851059507644021394615729922142091015880337852537033068088786881028626618609613378660191375977489468502865739817016508922046966531097287258456734117579569460981185767782178810149018006900509252608976293942185196373842307342101492748616386147548452240727212304288387832085281292779233210407447477214937965064375376166642117908823722240860953449090940377488902547260597479081679639215358806769479880013361756663242017058280780949728647022255208857912110581097493231904252057486152161870746832934792543468975856245650013856116607037766809368342221257588206450715624043424964271790052219460650862529789257901727107982626160147717635047093890826997539713069727716729214519610939595785531089430112121157110627690672885628725231152262061267374217111922318847802969320610396745019471035178693162154872405528813619549222813842982100768959877384512330417976396730885501169529762872773056629005704472383309739442513942263120946199778451772685802131058896278557305373900642653129804823317746618869889583213864509826116433718148579680796230484716738258611046392879307046063226949609816791760194155130825445990299757607410570184157001158118032884791177849848187290847218095373549729097769371925388880633893717136089256754477292925702919752697041363028488925081136196277095252503052725975117363624435962401187931801872052693215833021479043339762525859661979606152579801998984617979683205517113548630809935705536388174858628184934395600983248977601304719720212263132826056483586403405969256255140247851649627180929326863314824225352392778804794163889741899734593205195196202277066194083731051765475765140794082634196167045404580813791597611959192874337029788962803248962804193558701641750108500014692366696975931072764886219200297677647051860296678780772377146842988600725920408989759050935226450360705552133673315555931534072099292116643427826830871704019988853097660926060782793146848138103594285696354937952856616808602110181136179759913508406505944911935422628334485259738781866972026169616126753786990651332068232814560726777263353188159237741102619464330373684038104018041526947209585941514096620654378645714606622182586817995336805578585297254807613801698990245539237713640819176553158656744235947307096294763443915231516940682582773168863137768965083147987725708444788243535610134040566788399087820282269747793389660270777735108161648198570053035323590221052662439781233143340478749023186845994898763160510782718611114803059662620195273779238453328441243835406418972932223374653852035652782528972562719500134839577676853716598079464188248968027963009315683673672087974850149968590200218933091440791608501664474016528707728873197612099752118134953129178062437274700305712248012840896880598836251382554011936454201471329054898726187326534912678748609738307963257477607348757137279941684995331143838521007416359105136676634234660064370403543080916071793722533565285171349519829725357691743300060306188422600725300320171259261289524078938871556539247537466628047654351045181591222267819944152549188564407261920118212347756799944485861042962571738289695548553788000375505714505967806257356741317707559062804686277651288608888700559405359407972382185783218423037294820647090619619363474930949427157873129474414039133350279668308619038972539191730898860052222486463130926417426468854201269308316599210140028850492133477488266906501651207029058110504383442543789045130140977466131257288043231649442929000604842313130957196617601345335911177738319009738395252508853605773640065892523666727924605107072810409602091259542121754439342984504524325482832941604607948078210690212666179353387450227735440800192936190795361301480152070887901145847938283012757632686577599632963002894511047101478755026030323332214768435601630603993496530933265968477674301881228285636836175565132964636031739156282803861997737893784207403279362327798808970569980146650220590446818314988297774257167057988735261857287863034384421841305617027561089314720055195604386977793328109556135204605284021384476694877959398086598340832597605404633147796994806560486329639658429938406462277995890974752173250492036427424624787858304015281976023387642697833658694359465546690621058307276985867814553377079196402014070828953238423205172257417260872662794793334726837037143126486677546662478725149392289570432826023322261696051176756582309822923728656314481553747501296515006638986427728792064147708947352810643984328927649354804902950869364394304654087343660286268188810039214844527616637515703634842336133542122994000703926118700061589437115491872123878921224807315116820831314534395131837496380174312531779949517999357498180460795935040009014937996243798611482034799320070124159418951770492645915250975822076111970442273899116290127293412020334888253544367932952387763106855238149006458269281865446689801463709415891596022383496010784350595022004508960054444251654652912909669305565966738818877895806354580444985575804231752460752920860320448979008520397761290462978060702559245630644202178461417866965310783186519155292150343130890181912006802641193178862818431610871583784490189893377983129989488864477542838723436325715763917923879662225946546892099505191252814257452143091878204566762526945701920647113359465175542399112563095739196167322479980982025453443576744266016981702183838743096631380590670872189755654570845058020891650711510627314645481264183232212110561533874264626024264576105306887749129052533918087978712156331525444435477002387409246147762434553896028898235869082960121551582232595921130537161964022524041914614611663511717038731838400082831070266623333231302716112256966565544062513016590850376338232891165430261886081758778100214339430359321939802777503654944190726960071888172891273622188330832433437542778082958054218238849635342666972162539901757842385364326045981423063221732510825201200197243981432704262522051848425851525882976822071661121576675679797847449258191632344380795630262584183430570674405243690530864006997382131620188579284226213194492126966767057477693032191482590426290820470427992267120310223448944486695642158589607948357655106057621672159994382204596387105781073991121978619369586035794389169880872976995676245355161678007735374811089008127051303246543045621843841925636552180859149255697331644119072733582096679772352441967940836262635011680280661645472395796756306675780769585584253416759587884691715240565426465866225167311383956331191323337373577391492059170469926998991990918962217065015802950510256807038710920663601647912350829274879921652628916693087269326152786204964481426251361872367228844346172044732165632203689049872308929813822514769753841944567381964149318584205087521191286117941082822585237338511566663164785348367044681198078117804189048873176609173908775494617550323641973264213829842423651784124042567102388309331621629827304002193700782496797231735325724593939710270214520755121471152413469354114339366711182983886094155879929680799545724759287817512712229430507878382619376974930140764705472270047972645251010819869755676412557184547232734214033059868292947295896532563947637173683600069913305476486820411260785110864679557822048214371973125449195581973947814427448916143687277176527640884256922067895275617940772636431189251834453064432457507326017976248304523019582361778682022720550067573526293696184382219167559834365918048799997601893980109158199275736937598224163484039819672322540619587201800305441919241464955747648029433080349191206229227852666998597560753525328484207989679784379758446105633705108819170950403552902365949602566489582154589580461844636655205186730108514322301458763898987374943798476499733268592213124898429527075537862282456509508912377381765319546369572993170930594632417653489498293487508975466000289559349155372006544187853244707011636094744187953759052598442734977687577206179298468206907245896774138846002693918265570449514560976413359146983338226512434782648242304842262251651013096832764819341708440026217671273246910785113108908931584938450615525908986146096459011919974735105547052492838454943262396287155150257917082072967552447311676792622470445093279690421713308311049638936533808309437403144770701541876377638555420411226492858236066240394177917667591633863317507300345029373265606740181492520674766652067377388567451054450731930477845292570942549864947436705217183584550934283369766140762133537617876653731086795664979143207427229171170345969448078691683976921183051722770427296060842432156744446791772134179106643703441146644478653501247830755067335981024665947040669725613927507698502329545880830336591992053906146851957685771223733123996939411668214517196089550757572529787870673018424122374657258274811002428795273965602488492158636499362722936617732169198680231508079498717335692029283864043707536484630140466382303754326900119512567714979569565518578547356887631065568486727979023800869664170166535455639780609905883551563198867564426719559886373330067062204961394103524030218309120603215573234471243018575178859709420303537825150267279154356311675750095223899853606057518922008422867041063360382743980476800974256051075604199427172795169366869283989392943953559070141343383906381359799682448719873623560842663897300908744589215280187394696782224745464896407336774936625151494093997750747136585035985342535711720640544249631809244004049901505055905599203031052378077471618475186775321426760779287172783933806522307990246313618578111004336489132122483943363754284648615637634615869690014013698936344672699281879717728737690213708013307551796451708584620444582368133498254131936743057134599864332932057308639659823743580881390677779366814405813218222424903251158897149506900854000440006026431874872513574722147424833780259455037458611934341334837237745645141427659118653376757666381210033112055115884301158221318211947760424705568474807020968691540622810088899573928436268373366721693809742669924355399921493387069237896816550647539681076962581251724111778549223433711688541065250019578483340981551056886307995158463961058233851259373024725471706170750414552714993364363724145348876565782083240475122121698990072448373758757540556776245413865664099678388853163828617205391046997286334246312171709031472727564851187576030958315398731836139547324463929795184474063484867686131005908280879121478914384641059903691445465259832318058013386021594392789446223058528733118175957185453342560543134916168125987412439361992018137402740548211605380350364480599834967811082653336290633885224197116602674172747133900491251353002219728515855267382944077784122761472076917374680733665036081651149832678098011899474975774183592973075402210384335713661607593023415744401692166280523326223286494303344315607372793676954750707768375820030737247605595462817548302835513086948282667490039944916546006751611077892740128154071904162981622439944425233414524989891427048517404970346248688338509376435265298508087596339444716806991820248727577340503221247144326858420661858501678644470150574889193935653782378883930414562293210418411284207192088638892818155793096736495929409106757394898809556489300328378012562400361283128450181799947557026297178911689513604644704450781098276816190837173259881772051350646209845454169508085773734591862999461048329871786293127266659143422306792397722267418132549771897841414996515350167688216862527287055267454766949475465440758293384109422552986427949743523111182863931889490727380199768068858181028033416844083352814418073958726740608232546067650983057121172435947123493807526357213945109388127129538750498969204439678257843053092252890970693135189407539018656871475007832535789719765152575220847807071183224893446584659437717575957010231426154017096185215726622242944521965833666775185934189771424450076915293654488016908084535120934606645938415990235849493627296506216127014898824454512674656015859231054429231716412446124377869587542030403043032018212503351760751963611187104776058323517447411234793259514524355711844619909672979294943817658355321984070929934918058753653917436417766230702431455065742517992266372496594417302464415928255165388864922443029427056892039737990044912825589594999309497379941405019375349695692560559431060985485136243818008041324378581030466460032667326812034178117538922348056814133093214256264514753339007313439189378353232808675248126267533290949446312892702804685630504497686336664486090446551477129160348436651843233902506105595592236314946509441307356753729175017252465827670137135213787147093451478526330793797632543169093241805627310445614958096217356724627535217882304715530930348511725498149725038415823279734783179187867289850530585366110212167619549100793468141331742131912728390973322941447502463040090883271288842618815028494551261397678061729909772535479614079728327402118264997506381258458884654183392467349115200056114436519661394705423338267838032735775505039462548006348826896083300107331281812286676644952559693587213475092491039888321904612019360243090102806881040499900417804097771776680329735790043482951781032935547313491483069642865610640993333173606094390742504791714610627555129501428452959537846280286975055738854215821252803057930879776353356436153523407931228534201217569300674818693134541923985408199823370862508415447504168721433415060909330419443634190222177515506162418100853626256862435306783116455280241363264439970339925237559172583073483782863524234548659155337216576684449740471631506068823463072144011520987514003464460835172523242344424270232506143111630906076140849896094081149223811464825923648987575675245793511307299669590252151562187436868708393929115559369458463402022427474658707022628668660855723573277756387554411783188439269927752908386326984528073080307552600124694585396310913898882150477030797109408013710097493019524888600403332117214190594996377494609399954414356052194027313611052844396796688236034957164656211585896771215568550415324346155305341298242337852845066191722489763394005568794996296223471703891395694012021314944807630364058248661944362696301431231758901269000657316240489939752141014788648416435046391141219278327484322744743573303856157537739151591550319771158810247100805883236356743058093500518931072086275678784934267147112665012875210517225139407577827381505289207314636798106172149951638670421064067636641810011515373445048470189506240301515560005222167454771524411995810219063576349821557100022007140673767345194701592244456827678883393418652477302060152415501396244963195691017622000757591742146061996841498627667569450699323889580059566909166697624338143861428093881820144408979214185803303633972851074214260765259854926748220647533333005495791644976101118143710659664319973873728509436274951429914282821418077175451966463878227891632457764885376264566923510426753061265037086482430761273821370315949493499305364115122655804643382006975466098368197937416331129624164587783538549404897013457761772216056773819361404858854250017312659563814495682694357651483037845986085750999828930754403236801856013746693925074992172680518129480696256718947218338661293226287010260620165970477431854591259585437417624563260214137426413461714757559131023858624756429363704003061010090767526987877582193658915505793037492603206221064918423281268980095499268548435663788090416947778510596588995303988057599155040051111775817199390815670967416315754846668135110240142078433912502041983822826001729508678557311392054680877985050250975332751971201639050048454613763198584266688193646886543251895295251661119136804156943359822246242437445727430588558366450010264632931036093671970189061233330693129098270629646903123514158638282415669456925127325993692980328515641741326253974026170100179681786004536084952613302097578170534766760732942895086332541128652508373452602690762592326718084664437018170503125314279555749387438101029297546961270405023369466253653384267702566212059932658856764821386771778341982386566785584444193934274292459031981306857241093446965585209129029776344156753664904343947662394636591559785473713775490449444016028970590959629036195912928907677851251617581756362831362660682294577799877316261885797519530410582869304904243834353249539532078330534608586020820126284858375647570134132018478691220086039401256055239546240476580464700174563144160404444608155235155757750417551801062379726996973351828516037156390997039458335650126635667780434713937055151154902807257959960523257871365783056221026281519908354163407259023875315939525517560294284648937957661560559893707517890889869481293481336089879870338801103292829362435327527440326726939231941833216166102968422690712803896476061184339436260973609699713358023468061626065352275814834106135725927347686697869497805727059161067620636043970998583080089324490964211780637276438997065938046700275294387676965197012708224430974242378554020939481369311802073274874850205842682213531080924681627829189644937943844060821598374533155186449639892400000891308761082226022180699195049121386236843817895566806424834321849714623637671972569053864616473782701186711701824532130995615498352604538593271188676016839285378106991119244464122031610091758003970012730037599078679581339473465411414745856638707867087340943721598650455023133701298448558988510994668835203968769572295152245564484892321315871138422869817066585673379553724505015400599514057124655199601125713638226437334617279775846988320248806778873978365877954521619114291867340574904030231282237190986859240745334760214911328563104720528118320697845479806281351712307568594704374704166957802778651124991614024708745262584718007424869101317463720690908758597621019677083979894015464305540358649631784605437082228763277664258255325173724165240842922964750161474454738840272918432231881232978492352030712404827921808576593660236707821458323477296748955825397244038479787095538686755880781502051390651275274223902715990627938342884218673875020387651976721411776363848074303514391076954458286381802702586252256748867839829332304408090905706300121651180029995682804072410634058068003187038988483999435553892315546097988622206578895893377001044782556893190074745877027384667699153279965424119926431272793673237682476581278699022261670243668285163544150847580894658007991846919018440978555455182110114966652947116144194458194597467546048454959895230813683745295150684592192142342060576042929671587724421251746680308806510169243513235711559850754135490749327459881764291241459265949701477945282575370695310754968639448053094517501256182676266653607977016172904458479776625525848155079041849116909409112529238059284079490212852726874657974600857955727897739207273588213133696946195965975321691264147348421994324991095843956580391309983709478951732876041754411787995196766889657123088809743967866433981583695061749309709681775060815030671489550586398606142930684230752215252496720791684919583118829999749363346070801116243532743031355904433481854753381932883415314148914371751203586726366221006792101340591270787464149108792106471686340165739853724663193813965030695140808315646987688858869604152363779617217375445501301875107568168830872520556237195208947270878109954545672004517257237852178593836132741266745936639752949780185410836823803613602181941522927977446012506466310746139317467813465501396915139913494515288717604349670492652532716127164196984037726341371483525455276438702393381791758149588441998682205534032867485446482531736257302317488547680813927569183773034942652286003804920795693231139978057442747897588602547975738149935554229968156832945931028551663538538445769075770526400644268668419964737332419277621944555423289019763951400800007520143451571250976880802768869653532740475794818666957775597321148493764568597069589268527432427735750893084953634793454934694476776170738636762877387796064424812571628488841754723345580768159385338057569728497225506990105863216811960500653221998711451338130458669310455249909206348378214407629775032115267366214782154057855980492635350397881493730189400251553720600666424022704690487145910273254249203336510654297732064062270790479691649603491004869362343449750725473157073375283667053421633313268937529433909814292896714376739212353786943472986917916050131291977244739890317654023858172278294888036309742601584194411679816385512682847201838465147932660013885022672092546684015225464818228113497161743404502618213642599307756275157768385135407328013340590206408710543237008338165541464158213681918577277953820389396754846803276440803899485511238768707487436370635233067432280075833858281377625677036640850845825821393951695762122418486157105371125349679556875891857350619557352488741324224474870479885001366285763162880636088740781332147694702973584213628861211890078552620179905435948356595324893847793871452514555636661013073525300418719564190398391182457251753598482890172628515248515625408696901014488067185936822340835585787426884334282707866851017861739045660107905336916741520140812884128947601322567169600002211711002094882028506690472978077892493458949794898712007517071462327321847690929545474741249330437362805475841256223724812083753686283299177012577249323753633525688170730479050640239824810202027535071715148601855687479312721783360097676685557677987673493574626808090262449503484684660829901887535622094150938995171017800810758824999673217920613871702859605930227281904962106939095539552692941392007222411804282675538189135788262545576643333118572529568037666725223269206676434034483741439987418376335474212594894194727293237924483682856272951323491997173246515115849187024456464005063922644630669648024069455786534634406910231604295266279345229745345299871452015712821784096328783092856292926853141793073330417241489092422206151267341177430523639869932039761829863626510300373891966603623364802224001170162564251539119215130860838581596191478992430336601094945832492727542631945765961790951176338539288319574349981558892495294928378379623307133974934046377580129596966558022993428346028856817857347318575550056690388601197625863025531659123107299570702145016280898894952553713143322332844925526633970797945211235998410813217027176137480448636592800449500016754846308568515786566461998365055964485300237593515902988401243691311145659862846595030049157043088318725828111462989830245979652719722093550965167972578953081649501185841996567658805773927159295276815249248921989616204942623379324122610202514049991210188964067018012420160612741270863925458805596884298700190318829833452345812907483345535141557628932356125008791593805670000095234429929431007182082250959567633798011336306528526643832070266795758124821762806260812051370652796255090884584866317670666797107281738119991589295271835179788537242306122021740500422936140688352454778467623905986377157433271430571329172590324238608474575050846900919686203851126619388690746273455482191741730421527690746501659076674044712102479115212280193000766482592877851719007728444641379037299115451824198633195985677547084253589577526403165213366741198054170434324596439865720183538471489643295716913731249514420570014196648310238619493016795085482824268386950798225600897706731189297431535432651362777230736685580161755747827856097438577986937715288993229339939775790195976031259248052380184487208573911753771433210362795381080358761139620310889386530384608126490250030232442662099913395971845119438844269899387096079563914559002816421716750662003402007370138589113263423324860944321670334098703372883439150661508030667267350563843759978868491144737505185855287278958048594476181757129614904340256331915072304636155675633842452178232860164135571739094778403475571490558452286816382243878377490641260404937624727033105958291491789403688215445579925662951102560214314678518317915744580606119518434805897913687858844033541886323991999338229835889474756003202389220813817823448672610334502178247697881196893765490538054059505820211850785385977814808119484504953372221688605320136290481796913684959990269974297366565107110468576120948138328228841109005564243250309636116810331427242097863775311312441439453196074334171410182164218007617290281994999324533524689698128465438424574694133073889126811718998588461467588951538773961862443144713443777493379081869763451397490453170907733392411271886772611322772891519312897078695563742271898394850215959984361751836601353619255115960701818487622168162228698331549683625765227073511778152837930775798556701194784615875035865682386748272051469560942465768015281292574634381956730686813316248054899416202784776200104638391345436656569826993533732080643935537940665454521072707029603468017794610056305954849611998011456806438402893892354031095502734803830397064122668772944551322370811278076715733191239901682435568433948763594744935203567558380495100216660490922056753120990579631769577688881621941483828551740402370268187604825573551792959511745518583129565955851430681173793656816798933957120087043122778839541698017557271182094662957845723226219590466541447779439530018529934972619492568062941707425019812496060133825831798828234009830506695072182034184129484007357007042734988656729438534329466364395243432278835204297726332973851258941473614147957368527814472663850124667568170835578279369873123643028521191581387012916157451634409769508238264406623174095660247149992663620709295310005937730987731188417912447516468975184620439194043380054778047152837586523695300216098959515678311568912545903927975310082783234265752891126312853634398891771436324812492854358933221078133942100642657052723488039010466606737471087110330389505787146688664887940755023331057908287130244202927650948854788939297685022315467905576045077116309865265607391151184098030612269387323835551318463901525456958212138312784615558384682827047924234941983916467413595403897146086571874678194689075948871906636767882467614795932258608976735603556160821941217761484176433365418443955907184856405939670500516199337388321811139189389135662296827006380962816828190736800947815661027586563019389869883212047580075858078600027748319494188978693787121019589011676882458877465703818177228839056154632294924538887679515255615028679266809126413513390954275701590535234149989888320626887879422234439441937271797241212286497902414303870858550831120384114565510438635736033286753691726457093115093732205728124516439967425987735801112508082597761103237428648505002673959743813293797495731856679884596618836443572001081157812301915181077604715314471692802382470302767474095060179477518712192588562660205639002331423971769208748774422319007467839068723707526892279298238772185043249467775575876105208161560605778998473639357958909378614831396192379343591553799934015639627732488853281218030501165727287179496366224869813209694176401838205796507379834008184287770706918603242355040516509446250386519793642929456443599533185611848377990162820804873939085472941846552133931881351250096803818748826818425566797678853075740318077752773847166915809321535897981719459037700407135476676682151846138084439785889795439615547760352051074666225771961954020170316040706302555742022849103611582678979477495646604791851710231214527660814726691448439401361047196542683062738961146655797878991125172892636198583961832097345301038472730996548168673337012140181993417864301062885852603827302125515039678439471054049549325688134852565643835380220818720250073940242984255789326918570196444514388019561451773624525021137267429269910381779586458196688795902108897426192657205001149286839652986939119579932204794531755647928321022917031512236840479840771729421508871655683826977005985979973225907845597522395060559171001320272223653897049413434463009453574726847151026884615643430865752404206678905341262212511007295951186608910603558204310184920720343669491478278104889189401901044455326589740261355933449578491726578571331137299942159313117204993232947792332427621069707047475030159113086797226972568865769236912488284431866370200885943234285615744842456440339957200504608699222088292521579170140742664935211558955890703544493729432394451127841765484689323701827525757360512638835196170328456438969716962886450926337899900648351676198415635314300341740896740658585579223889038970437031199975892164391896402693938490330668876183903441146193275210300252000914679141973041743806417484541193180537323511575396290919517457729327419088141865264402247252782721123994189661261581487628119797162635289050506186729722744028270788823277198496167660509969529850685882203588119438758973932689528679944814792409509913964863421744629429149579294452544279818904851634525328469612897684023244493544270372754329052961325805628601246025974991529367606560136007449483684224145981380312862402060801186633922438104168089350413421530959956459388310887428443454379809966856049164817886850850936366332581164872348369593049880666233639108283442916446667545444266099238375716340710321441360251725394367832858677333123238202652718565464941205861676164379624887130154639715305947926291906506341936673133094852649829940356566897143919571914224034783744513851887740043897855056002224356761915857700417593745744627537694532890560391463817237017021888524977769255383228663981935612218921448479020275998787805672441185832119205103447763570424608181869943621138202415304015904253062973407557636427607274805693164675633243406491849093929773593643174484329645961652668880932124425836603410329408585085810562091819284852386736503059950185922905357461154241689810844418760608360436939333814641790744050174923769264873269187274365488552896284905967532502842597897364771095210439589639577218656828886463658217959712656233814752145277608057871983843002303105962705154643309747308678358868262282173503239748062164217089476521187877888868336709261618149648368662410779065797398501611962981112428690726763621405446461308586872870077309311803941647070591631111918682484741238814269627789226870370298344644459206132525173628653450828128792040270582362658602092145940790227713233527190165198094380343359165719499707723627234942312526529842226996377239059017987018549256637345481920438236136440639233874588178093796402102582726619515143772709081222567176027933159297544379811500839518221747535514477549115390290828731347836994617469201375654695827556959152709153020948968099645992409787639220304258328836984525951974170901688429115940615366938724843639820803386821199565181402408084864500971630028844230003240978012904932258915850436832375782791699912249916133709636339780771004916220631842855222661660964006950872769387710535326926911004389581859950639852680422541327971102046253038382393852348237705821466193370069218351624254821289192893097511126973074237902163313537716801193508474777082489949993516413274035258845949989000048451762605655144730101890080032477933705927612411721153364087717358780394920595817206284048486525889503416832596475384681018881367314804646289426148937278579751689192678894380758171656837367206070108908866886920160865999682380334070455551570618090502147168450344513545469824045293793391734992679200319404253107479003376695411720670962490213260349898484425946086674951969291870352308159894143169189911758678911101830850461536156714431110712520807134606883001798751075801579841127929124695261695664487473108104856302483808182542706996277044146116403146616827188832816420678104305418241361565336333374857087148246022105143315913202125175935356225747991535004962583499490386161739238828206395937958927920335491080007682042202745902462592844360041418984402378882649581655117276046787468718068816231875571635375265275143069272397732715239660036039128435632603777464380299853191437190722383906352052365093188947918034847039903435246201180606352488362574372299658461080696450346623237866458418823068731174046303161389101969326781506376960611553308842616171833099028714927999135607513271950817899186356749955147829564252834574414944187010005503365199584445748131294506338746914450361919604922824692815856431092876973361827205647584775019114604077890185508187983786406210580543293378343098491218914134732533094772844467014640250775733389994814085320107422266001354976040056098373129163707908121220678217114862423076659474204739842028206873817067918326767634291702415288273638838861312020199272503725274559891088060629428867109011415565815288552182393854460923908468676506259992467657272952800371596676779442518481677017401666464729738354639217664633834521389747879723221696461414377650256196514130481980393490649290610405504867731471436691039208189634910523992938028682355310188995224044463006968562363757381835465496503481609278587599745834138514183006999714012934800509822851118639451251387603804602606222399263385043791688173319698364294317609455387465893894800626951538724398101202228817334751584725160228859788190193884249064113359721364824625815968198278573364139609493633659005938767338223644818741535310192340573473433730036883560912717246045987493559841165652671234418532267275592400164222202004300036682081948862022193014925706884737594164814042147034414782648280943341659830906592816954689058101070158187381656722520112682623885918080386635837619933074646103221170678486735864739850348645135151208041592994019898646817256809445636219951027851163825287019099619261318533435019222013646624508600372424565381079965351841001814426216480152689135145860195053233536263010487810802001233854347779704619526561242393458102435709639133019514464018584625635974231229389610224576652635494746317469507955871752220704686571686963783900914637514464732369237359912027903434915765470912793142473958488122771527253837723238308697629063918659797562453663709731245949353171239441366196131932237239908697637352856324904411290838258436646753956463090040045761192144382581838095072198097555064572697839478186822716060181728493257439740541180431919404484481895617638499110893281023725821418624381744503678572493854245284393043917689351882618509728094316495121995883212155835148072017062949468079934015270239394559766177934698994042709609954435674667956755007188199281008255421830357077086361005378613284826513390631650931645418009723042395289995279841478111552182449759743569945386041191323610153894260753464076641458280822289519668733688837420416781756804011950006096748594725739735711787959192488641395255729566158735364589831720461181806534171018571602941420195116370293347572764049663077637888509584740172333791117347538247660261831943678838708297574644082321015722816741048875919481560416197675543715275491118097717165051116513307408018931119990294497966016105882611680896299963895561360476469434935776602861469172976559719282811323678862120461322590934626594758340053148547220124564461870922873719038103744739525453095517031901803103018687363872234705780531338072678289385004302124114674745688247487462347747354357900821027355786314988103573309770012507398480177083292596026729828124631993077590743299172698131653721800261437195113372585678118875396209973971615518097470322602510839570573111706296499455112381954552775527689822857172201224186958544770436506463208649531459666871784884194606390665781659402624615433252275926679409074645613997005226269686913671015822554270924194944535631842703164468275025866221614250238570342182044289190529300048986360696088613868761309246433775501486678955869171262314557754538555948566440265457362681764530161015709983710541821658121663851736434043865006848775075890965451157975694987067600939330267988542973087850388404681469269974556097362769263990427599390615603191350585512288993896388937465391253341267362164102603335500531355822961434719766194951040286550037081790302584818071609417324163601269436921271830424786456143943204544471550678970650340318793431994688549615312826488140413895563817519984612483985689015283702777053310397110859843913949415707670162730834399523173220140734333802428724672047973143292768652376936968883438345691248585412044309440093436258275404442894193325842284750794159685875453870550286837419167635404715636436756718778738406435643826340149211925012400641452041895962623346115741812507844956271846255865284809575792771936558300955251456948444893206500834998302848103806296460505044849407073900728396852240852431809302621673227902575300593227931473040539703849378655946473043981662485656255066745970603047088596397238248039860072248224933210750376952822499024560180917995982197861151027936561772810330504330774247703334000936566769493179393259847692514774714195335148154539674368870667749606145588041112726071133640965448101066419236533087792766309556153310643420187722318503102512396696159182168626448458209715832678573076951611431663429584899923366825700116089880909816669860489376874549739722644451637786184347920803709971276765671020357896440868334556204656988273154969965735855970081283326962177891318612534655668455646135275406102736691316094705395496003109811137585916647564843732939141654319383458016438220177356869499330222805432323454599050087335069828501518820117019592027842772000381896708840220120186530086226047475425502662751506051521119075770389240640572654773322984930528735098794893413481753537711014517940708890035144276182656175214640829468454450224154384417493044905767871024783995308740053099104362463453366035729113071106733019875089977893941047784458384336353795516381008120975881417206548438774904801942107366193569162836032819285519973742556235380519916231489049136951199819355458872123495546689432734831478038625486741339251170960631637582081856549694071373218106468067946637626029319137396630005855466428507845814769758781048249235927010235269438208688706497866372482635502903414827549790216471304692767658396268660381021215738228440047891158607039579611241918183619504851462741464219322446270481480761517999260058270846772010205239660525699771783380847632946994611164060268667488354520235162131935382807855760906603075285738547747803105744924617015214543793998093757410825081707964174396409932069177097698717124802058221717807182685106092796110736223928580441583618740869675388489471102222779206496517985368165941239495590139364019153923810286912947489560345604928168365683655842974303447034345554530092970906804749825871693852070824552590888138411043199648679604057956333414907850563220052554652320819451247193893492884839481586522826738912798729325861763388273164707569969179488999932866047610829899325491790728925750638378611480070791900240197950008077502920330013359000062057317101490328111964518338136568603379102032421043838685140526958073861051134530210046806631981359567909584816184389159113424638858124991586699010983713437606432197346571108398605761533973878353065244286678501948304779727006102658046714649482284732464156900998573950799313694732753724699396019114454167021684182671952004219442500703251650926480730865736943378483248877945547958600002824344648497445765801127994375379935684823721535576674915768927138862306138820546589793443547197012165761817905871904324072909820624895599736427746549060008855303407585031645589620773692075282925964818937149859917346757039390900682521312084583861352569115359785228969796972659668479760593084977187355358752232190598971410522125081848220231002955855758428131782613420654065046119557080232247455987609506252819824710097607721227303680272703462098475246596743310942459175790201281002653775630043699429406681583633669435985730213021888107268023237484292762449035624811909426307574468207472698729938648417431630045099853090950461792169057273587918105730457149769153317911465555593675221858569120583722423099183539222014085090933033037147229256906741705100398466265622806375878467727576426518446735509288909483858582949464266683399524605592575308549217873290701023885690040931887443949400884092626708820932771517851990522245807848040442410921931290539109596277342852895944657787429288416901875883372460989863599150039764618099217244109448271240176375614044677061737933527686228976468253561225956990035203321264183914360001333023950321095181188699581148445189584309267712162997097193403398402255469666631597583168280613126423126687384065910016994798604063580227567398042431901357704349651799125689191141731487645199822793701438323639192548730094409432985202194313095786276847798440645506613947765893317277384005124288412772195144572841816468746355809648534513251058429276690800586781747248105307823745130025786050010633488279608595658017369306231919537368311440831484295807831211422032780787476124203030664529027809595322751672407845790737401170899546579117022736147120561395476573696544523133951889528685334787657966873424953782404659711983897638320847994115418657925913375118538378053582744869411638202008941589154434896675108767779843829926027999234787713713784820596943943206385529052640196653136001432749082752153752117321307666817814659497742125725839603995206988833799464087634954767241506116402485890948922948109770418852133345306957200947240937189069006185465161709195378158410659349691563362020863449830966288813315128985658917712201555695408320094741574630843440826845692794923075293456212428907458829530299182055919100712463974285072889882308640879155463266803238905607076382349941102666013418863861556786754118347840993691975902773591811492242295051676031012872404692270905860122718596182636374827168204904373691631553234717862073959934316360189955682175619363269630518116566010770660013210970658735615916303478646869659569315117663242077976355544980520198709909939232739494399369247442605260140577355669673191110407686972294523403255553861830364636052987457027647985004460867098520646266391603109109660836113919580536403771625849966383526957812236475512281684539990625477321705569519460287533797146259690766218630832477291082435318843105476643526240815897185807704921438664855087780242327391155202401192328387536799691990303991176898250336049744125142492472482394700643480187038588802875449732455702889811169199774158744051795505367990928546719292058227706519394520111949206364749932269625166484904868334523142649637518444303704553090449699849389866454462142602785902507550915364713037019278313987035109156634609376660128874706940652208928376432999097285459541383571190583119666602017545251239808399149990258890664011280973475321874813352752709374386184237293296624607712111145655988708989233729377624493680038032039751321706637154547332891165143380127333058762289268069541670740820691210366540440679297286027318622913935775469544828795306395470227259959349570897171994973532592866949394210403207027501073741367604704314584823623864237492589549100048162524718239063505678323212235825070788761624516852749142335295645983955346629151394722522848595291439732877043996574633675901537632442948723174735115195348861036253877445011396916729129430536709578445016830191333292514392222512994173169783916287836060239654754070421910571951943824058375392367332399829241251936152714531151568349315810819777365791234554471503862426778019568499718651345748623587055628602944849200591926890335258774694113516817754371055587488069608163041269807935061270435955101382381620381646876296003878290772853418641700533510751254667143894817799853584855924203994105501617320338225113618823608161186001815044669716643974221255557900621583814591889473078261048677263342742956200631217034673467206398767405462646223372325708668721414549763223524125624835259396962984388212064488730892685128477968058646270018671453517041460283712183502594196446699939807317894963051253310701108351672100029792843553662522545460108163240934620281879694851885926032913357946145433961608919925866855980919999274718810011661757531030455063294258479120085158692547126485645410799766990590428707907163388910701990122449492420542404567814130038392718663157818487525164169625942702885280252744848434577643523261397298099060617054003486333757382778490415941822187838180066681903278344810566395810703784557331230510129561310281272019396194466470167731241376082420225493120760620201187698209083291412175841982590767398408336297214384871893320834539756435439475527958544342167452209791074108577623810267137126399683868801252015399803682217203352353655560198374835784982720007691342324105327454996195145326576237187172152621832005873260952967121441408621753887928942115018475940915730900926121086266656477399414989819877809033124178619975027677551066720230965338617480919139481450735798349610233878543078745328472484025524065877005390018438228470178792134557560852450602169429765267498905134564281934489392790095521606959135305242564837492028340674498500601526323621013801672715386602943520475646772199045614709366805984165766069395596205957012561955502223014011270918595770123256837841463933188377764516376898336480340581017820460343599057128666163522189582436734673469980138918271426689507320621032680066692413655313378998206642831291566251265829901916219011721439088312207756699762033276783558982941119576458629173276743969145865141219419908943144870389147252283535065774841543065918783821860518932211754819971076291589085609468030533446787756959428480288923474306879211766569782330699009465662686036726192923889225018678453120391231595405740778238453709242566223852992202723615584697270481556938021239117877591617915675002110234057679635844876632865838217206406414782360274910356281168897144373615502850216527144716297875579108454812976035714235901497790938376801774193241605202456675210373835080800686128142246087225146265356311671003733459460597950900181674582260017673753563123829668278534716339593784855776694804516034890818842475037042894313880103579666122665954450302887164562538614243219655327167121297029738286403552431728523191934022328812174749140354384636997129624117267165550613417091882057985064401017623281796722614956569793395105910499030067740570581629128086509412658433202089824271368326895800962079768391918488761300450905668989013094903423120080067436846459449078711328089395703506145698112010471678222840105554320168616931451652382486798207112209522952139204903707017787279070939093733418831689933361227004797104143045796312614159688130074106793825778211601642663506524744719541070453656108826477327702289390715101825057975638508681867263593636919427029264851095468752736812320616298355901134382309005386430590865456558789852889279021135155667523256992961455392834993147036601532015949799506345724493607522612542299257429853100561848688262367472111870836848692177094780738607235973073401079411468763729396357512643025398534287976182702760256279885145019555230336520734803074351992483436637670986051753685036592988008716808892608717613549497937694678135021336713283912069754198814291563125193716941024605065067048683857107056796020576742150361110592619241801796395126667895971850277281292571639476495224622419765024226588930004000824828886278795984727167171682608378451192899521574804763237909704525634057108308441008138510243631045368426293500292489521023815537097384857058833332382098149093478967294484421254682817782646572917495311362490152083735149414494139475896638232064014497229851716180817564021324037880541710838906407619360090083020767186258322001043924788110018714729307974694281455870095919971722123506716470448593571336940692702517036887473982237213221216833956244762590527407981158187709766024459665101769514278731565669589613575240587204734520125176939028736288884823501474697044394332817320038056289500745214322984055661010963977993283382975117033766973038885739301735208158544600921027556682227195160049656586929261397122929816367062409836130676058227697431426845708922832884475509140412655503696623873055769649526273309811005445321133682058158680164786818399763259432229202465725581799476153286358208923304375500531477530124028294949614878494131141264293519105856795605491932295845256096766083891312140551038337622179333110333757669121088662584340055841054937016230881687324642671095379821615619144878892730188272637969694246123794782728135110076875760846348907215435248363158060662061165929962178932691671909897740073692221058174330273021608947998189982593734424257939534509679100863182917521334465815079430471146142725398192119104645036502154866397588451749561479920681763916480536721384810745239493170281842488296382229098480496280076916975481232780741872657567045263403346917876323188040673431820017301150222964334279603397180133054780855101138455712268221826625928355107202220296143538335647327231911837505292963193614786044929454419813491516701915646633091161345110653609965121005535292429839413558203987046382762484095020781945340963118837870188864554027058108071464994292404037318984145422700324017405196464125287051803605184954622495557886869994480557821331561802848274043113535251018264679607684894030989422183391956901800611466882162172327041650054069169331745629980356934324772541521420655111398858381032949075152076939177064556325834855247162422157823355492971349287170283321959020019910458938012145775124228140875187440022545232955049117774082408553876569894188750287422576252341539190623064263483901746311335061499376499637061853158109399872300475093995859586899951164867344823444675493280691486760251274641351982250995040930272495517636869260089716949165377696718174972967359960301224060743154740497067856327334459426298830904068265097914627838327111220483377912105256611680814423797859002369847995816185878362248700252189547833681920573119422565247325088563066253684708341400413156576406269313495485075477396739498118459469289488592947223070741894039327858751065139386910283151831094934080624856830820985821459000153295716489945469499543941542433826652558617298011879771601341385630280063758528238797248069276066128678237812386425296550280708543030704612972487478648275123495756653191399586963630984758904793422944225922944360970889359898700075880618290682988267029856294948338622208271948064392324309010993425958748801900806745945046577907186293720301981805167772422284791970935956870253911231947347938156659537959137085808152137864680312016033186230287417293275842476716874782849401755227969979788231326856102423786276341678571135476832573108010989799569229452125739679705107798660428986905513493987945102870971457537542932685268832002193357759101583509828795421966431381122631057438051800323328584400539614981542316314122820627598217071130680590786270591412084121113854967314348521573289662830318391245498293715030677331623686966806012677302588605622774228756141893372304468083771437024697883440935099941135241572558237368470143575812290041634160674669259927449898955340990990037585827383820930845535649985833550235396045092308674617890150592606619282813045159145830954459005088340524306552346460873663263346389371793499307856765103907174982698845970719427197631155899824198633218172496164792090033319864450962227935049756045615039876671699977753862065690230951636523490235795976513045442959286965228133369279789241674316414787721488255770708253802557815623358189538436731317757243425245961307473403647599648762731546154903531723903234051130575759708620278634567936903129579037331873202725096592518158346508033033442977028371291479918746634054047097696313219159467318343661470256307750702232318936493915189466175831593244895710474064334818342187576269539183283162866541316413396411353688723576157470349026861004563503472537980401066633666650312854331126591473975804068340437285931648912092817486207517259063440857493500311844166820291986174996199183416739197779423904183269395087074479925308240052496264072443458398162587355080145941019039058446889374148770056338280001279232576603047954885483818985502177291635599716268052418772928760705512356736905015225924519211304784384693164842441369913396418997713459772814128179017227069575812288067670580478326473067961778423862876261025752476745711889970203814307532552871294537625124669577013742678235040318845503625666083055811944038879406827419417579254120447063791663114200982415970876556079785814697397325605559881244783736510198578010732934555857927634066774988545583134961965500070925462914800234968589122102051673737554120183148159230708132088649110895343295961913568590176769948903660095455877689318419839466219682518791751156582475363149328430599620940261724170602703450131705794378455953981579066034362148750674903983403736987229539537339679951333533337365085630241471911400196514743172049214709332666247302161881744248508109591853728671831620336898346520420955594337695847026029154809480567580236031046286237290753103252174045274771827434290981414230200491021950909977424241334915492665658243518545444193718076221930507569587502595746033640790940828944379812229551312156817010683861072839145459485530465703036628641950214352332294609472346486693179007217822989905767960533346771581802473578958721835241383735029206705091570325602044392457213921863934720128671939495739723620672920156905401105415563219645690067949136758027964613255045155288715137410893098741348159461315592452132589482221702508298999921417619564647271348748690125103863833043118366800314387994126082426455086398115890587968183620171134762596984737088933910604915182555373395050602076323088008327750523057900029443304938537335746429973566036731017298906571181384462038259580539039436165267467619252010523881787654166575505516556490244844711211908594989950816114723379907947447985250159755358800283979285049968535333022987329742260642603918314802128025814142313889327330223388852436985446391856366759871147585094822659565124195294162850682439951283927095195359550542400131475353777140757319399433390241582370207195413701147678119698711318392633856312188447304691166853823594171551465696212729715323451054748943070952583271190138028973316585676456228488241347549019556553555430231977990659099381269864925332973020048716186027894166337837271405909008069657806485593105065255371566335015814098742573413589847896579527186127068828555753102158109778842478713501371221326120848760466283534956063827295411465940543600589679766195540633859160902582096102762893697751428368397122631401414686011663600795490901860088211347991010253527006177143699827172111882235024644218008421906268518328554928752544978368384265768578729927540577692981352188900673327460899739897183060198496903755971362710586094014813068102462071910632272529179675808422796378416148310264546877362122202831533784698803525757620582191148430688518125688125068293313250267979282138316205435883548912847779987790275326644735534085640533287659904228261400044342270575899449280348864123322120807736220276186612518470056542564096976787750959075998544039821800868919651304445796356025006667280588624214137678551172568183006709472506516594403851109836352622270327628594522616736019907016109022223700797452015952912674404591614388677250968567540803406329121861447399365817142607504781770122650420654694623322458214680459151925614923444954133335219920380583354942513759182223575685526674532710735489306070563529207949463714345620112651433022252262764851368919437488451585344812916842393978884818211823767304754312670078334603020379564623220292806513673176012826018230895683902271771301409242340595327038220993431740535800433912228673053143661051958457183590643871015898723538249352562025677464781294083704960555370869304097905558382574919125293120111355008580579549582773480191787261934988003612909824836129765721285278541098799853245560638341379854185230540719290563319304143449285599563710855615126682232991431096255060199872606984148992814858542007653018150758841672834534049484411328835606203099699723173673968777319887089725023515554526086012966188437800092869658509824357558671964324027780623316339390502855331278113014831494144651401169540850866315070751042312090495215317713540742003543255586570456053471811668219047616344961558045417196458497671672706790595142116739386369265252463925194052331368409337584472296211008056405273611746632634699802406374168789911434043758162462323094939712081434794643842674526630982715221131951507095130413588019176566753165528450185403264034987799240525095459495310274367888223698809049570617229389632355336721945475761101308141644763939290539685449427588428709624307444267783819657233858437819515075730861281631113621900969288787815243706924212613176294552814603925217867700885020134633710376105105346683421853366074596558092688262132803725422883484916086763697398182852625722489638247696930616386152561046642503541219715531734370391449298575340831805857852424290391566226070943236142695834409655286844561296511489329928659901414728242209807785386628958377400068015844883209498790100599988599804775870209186514791454388504656703709178368422883347617345412533003837747637694451684496645073443043340963712623228113275585696404765865600091271943979708753616480631434532407229226638126880975498292755252832245392143943178768745609684620000494655542513015389449567079365527478144153654288693040915964612937812178347913770736429639710391905222940147247219900939401894675035190129186392587739768218594241540195597528596045574010366964940262121043456440788163095964517759973181093822957314126994167487135261672119145355467289242072980502246267047217719302224247771912637731145995471745606826579533330909056504232947495137646206210676027503730717591628719300147411811212466572848117325510461925771726316948107073021292991743792896512077666702536123435222867227758398574483788080992846561586207536668619742622595106698619406012634298344437323386170873505065301400973981330432549389495082614640902763540443137624160668827970376974956010415467754879397176555183490779845111963753638551643546057374581795977391614775395877887372668119004228080065269108372409527492048049506277156745935453119468100654503535218931649436271457558879083595318754404445598073453514585164840347883341647465260488832767787075812726369555719312726460960787692248978771655004067686865525607161392498534589619232420410627689092632178354526565509370005402826629313302911814696494810930833483400821217297046578670232678398701354294755000551929944974526948314076261480923605251901484034118091607681397895716107359081663139008964592485844389170082934935984315907908597732526399575573083664954010651245219067109049289440372203844886557943578452264993970072861455522601477680070074266021461757837242022166071439833755424247967505933553508213530159032233881059160464295675333148299401873430159676533867655462736608032418091545904799414467201823596534115165855021651728029926953593170157274560134595051580189495327957560556817355525451727759939105606241957562288216469172692939438569566503685320008820896316874285253292028456584151329254514302536865408128853144923429580748276464600321211323243928761653368049337906533822708130476010943140010817955158160453331790519539742423541836290172478952318365925797168630617724821262370035673135192926958532339352433861948725456512271892075041014658608123239159334986395131996077508784073107465125358623200273624473036920337328644939255885497952180363544362129684629746613069492568221481349719848157760518040139188548190509967160682714334592076298353860667937751579661166765170771277774694538090279005282835489560623931233499407617309021423380019743624570939303217305651437125709870653530036346366473585082976397553130147226033533811686407576545824399070435833166427727421754563958609484965804902561726506353919162757502951789826001953217432054095132078467886112305214642609853759370793540361360663647851260954626031378355063504229926626507456646830348881207188153272182293176321815851605410463848760850149395429034304548422625246119164807192597761338129843243766914474175301645588552672786609397353606509280009482393695769270853440219384808579948944124484467573987424591465433614836048125798263825688230247710953311900079518920243102184843111468814580532195338243160799639832887578744048562128872193345572316350129560344570189812975086744564662083136332853037850978910239370042260867870324484827400584353096974881950544542721532446136999450627960493366954173795031530102611901847763265951699376452344333732567645508608252114912496133259432838424360177157325537292661638709915348813495103892934191103254102558103917702772291157246020531436192463606847327565912350673149100893722629894493356252849661460722342889672737030382477425692899094287463636867232767233244751447028497967070692802569376986537820419319998832172867371702256645437532119740919186806511729233642994024196198309313936579810455653245082913558234406980308538755144092266215238223507888635365808574692878925520201229576013841923174148808309960685106151439843943642005186914087155927761485734197986893981510285067284845896686310224457039799638243158051603469699958318617601084697205231841135845544987909467530329526598251558140147471993881247103605762161077215368803757611294649367305745071821797904585572451468534522180498128010539145943320509817833261378056443162149021727476914733913891186260124134564061914825345561551078947556523694914824668613312049092442164049485555219557505767498590808836101150376313342808567122128708953923060923025439624301161660494447495766064311316629981043950521762098741360247114402192718409612452740028119591941229638776483827862457085070947969173277000225760883190685237513618011659106173545606895687798591065855782137744889948597481799527214280221820198103949314600334473746472086977182214451823706545391397894572063614245265259217994758041500266261061743325787927660807340944565047471823018173119960208790777630464604774012995816711591313704220617272727731614850151079432318538062939860913773842847241270493012239242454092564352905350427821542489529362969850291481556499603646158571940047092113609817708653640759445853687238443505794909834368948365883619393998017812240397988272800273456289316370382708540079394283815812642930362899935598443343319782876255780591444738068326253701213539340586539383854801249090789325646348417961358744807140396879629765418173361167237502733748338689419347095974131484511890523062955535337392944218303448966607683926181653230890915598568002675457066475374240115060570902568484031455612679102158656063024454069534557260434832283959504163065098333620124667565765436108539146796888945466014251066460921831366458093899884056431076038977609956077851625909652275624705503103008383398729872791608182128913000772583976564053317837856039971416165692780471139398980629607024017294167786298222233572921672095612856142121273279430894524518035922777313487098405885097910344263622704328839635830660533514405039256738540689188505775412103313699068339276964986559189636181815197788145354466789870609278025541838154795712054453755306479174526633600421458297030017353543549150952101763255281386837978753794438310868702349274939541322267152524280777783619085345616239947889737668808260730966608495125755448545999740366176592437230812607687433186712887950814365448972214056320990314674600520062617814529784127460443981289052914630571530720824421929818969699333325491473638673612186156579176537169223064518146032821795997232448871961214997432960439423273332550859615218285804904454315813093280912529691215646977580314622925805389087378307591165044841654973948273126600146916917605337734080567624964955835226159990434752525067624296342124848135494646972225337716889695119145380133574659932138338615942694481089762013576546951533586465327217682184058938404615446893449449824503451773041879146501998613845739041209312566673070127621878086146709130967986570293977971177809409224537203550742908390662866059599462253548391374218572584608731849955539558193472947616518002387076425557840024587139147858728585868257720397112338753531671003794546655615869603019219225211045738972626136876639390378271547556375082737268605290734711566040700760351997192773500230574647122766806269624706771841239021914158713012883172170658009286838594297161228093953457520778016434643858097694336335749445938837935239750450318418886258992168958737077340458093373450552821473929615105979043865723208244689691982509937996077023725221924075965491193354672814791976884891341194889648633056295788086784919044275174884776554107294145616272452599581455985318034342414015335850124891276008768422193846084229350394205154954676478377582403480894981524602405625953841224780200829592549468021951708431631287990725270332543806101989053606926646000447569622141136260139932192724662249052006325102042953702307250267855762616574956362702011972548529967831643945280713512383735425394254797141294196250006410346944408779573469702227933302371386188078498554617469761685924342324399257786726004942248282707372913919562149367524296576379689453685819905399336965147387093147093463530070438662543074557182821258309676003574739582581388382960002758958519122459444821530534465698511089385788966869005010607762476166204199870038438767980040660057143507267446275646577708242407253766500824163769624989784356854311535940096039040737332414480021934802136730077916052600151976846246448131697220813432742862188362009386034876647211435736821253438968108238885095803543184146996581242601410709963391411538521407779901551755671761967549267307889156885980916382688061371836639195069736724675685578167706784077529733835184354912343731015966933376239714398181491690577587994338861419022740339143970372233061776334488390200111764043945953128844206090645771975205185661945588629952879218665260079591443418992499806583255298894679361015944196190882058738839673699034926845110706831947929667008441875771668475485983947737969840864482288412332179219495618508422462277037653925345445688292399141082134052836185277604689866039680445079792311357399306974051865934784604082180452045249152677237824806773594390975535168131562729766760708745841180905052835920393768010813651912949283677444142337800285135920587550694850057833856926176980772256517600765592524647418706261085085319341453370443549997127738081537067285182704633922219219088547613217380868058105239488536719327624977645245720352869789348302244641607516973199941796357449310225619426019374488291018641374408292701642234615339281030012183358930313421176418377763330895513436463873005255302727617486838256497660966957571529044497818689485036709117521192893482067944873869885586790202313232035234539680325077037100190459202905668204722188101188197471041158522469369272927447274123081245416497230945262948247318586728753019718437845506995330570731677798209528933686143545748130797698583505284955996677376531042532086040546178646217939058552778510789377380234583388119901146796430607084003860958017579501813401897384002196035457878475420426296982767016910697287276610289570125237652750549640096980988482011934423859871379196866345151802650668868402957558838320350446525109088018963863027795617322427112943720776539682233879286224455496902261030659721671077482082525489154349668319369408650641304877994827690903119151438410140569595918621367680565054068215687076169922240240128537660074808671094786946648843934219688415472436116674431078661743991778343573889414910188966649736504312978019641329817319412998499507154788706268750760094273986626519668808752978944845856039773995848874158476633619403022983731798160870387891872594905067076451327930921997988939425065398422752377605159370524535858990015391947932692627500209869648821498794244566893496665038295216499002314850308204690244606329174832299421189585303711807816728800340334364500097936087958555231505393128266404388307110939326131918861449176395801408903810644686773894712190627790999362585179385122515024577395432900028997678064485039282538085628643831379337926949500338492781906988241790795483570734730822351604721275251221918597695294486912848434885535229365976009641087541902987319861499733154094740318817137905890695574374302017723715343278050956490062866236412610765934342933102417441350679493723931546960533578345511576493983940879875071255436162638330457090770007854837358643681853723874322975021760393689973406819389600109262079692194817255588731652524656215105524169794327200480367630748271299940272638850118530719307717861176725197132734588672198332824000915031782785132274302662189913391673682492850542667311908495250788897440747913046315990253915417547526112777078267277805746522058897907736189340284431188610028674486448195526635317578186731229631332506962397907990680410906830300131669054937553704244909565916582153942166325408364563936516937448179498584609504343453846272951490573639663890802175094409392846327201372436829727110848260007157113567429581224467644798585924457075198251889890067847357319624423785600631265835885378642544753719679816160711213928249441073216817435469802751598273700726651823389954468812823925539640466847241218156105029205563392740835180103676206509481649893447734311828621389064273788106426895956440551311305774623977126848485126067771076842482997923260057782322723735306485920723375041355948503852708543494276887158401289164887406067256343674545154997384400871089947785083800944735549090762284731090193293129082452138282020707139504991052121001908666255594545268283165926551740794145575814939778353318227154257973208587663081590030795223894172503545981249651192323901259275115146832504709449476023884346976865403980371585539085266487350748327231840136524530056513273671764851455604951259852287475862664847103793158470063681327731485063088129247304924994403312314283256973495571383614875043500929028096049044297317631172575250320402867723254307608040869810600264457754579401078847911496943358271934199077325006034235179269009406326296113980639586706069193243949191025140614960383831179023093949097452279774395588589166251495495619980576194630846196644446499766994206787881579393973247577975892844779233197787963691578509409905437400858969147442405953083590747030131128412677673539264498399625941294985855625256237775455722156280787278032314929351077168946242314923588524037190518676262765840702023629606970308677824880017672630062415534023255012075130998633214802035242172758713943227266439367223257442548900386986268442399479875238496511706327562469445158308709654328106470746331354443232504314559399506873585902720781791793033075044491094399773870877719800905544405963289808712014010423570261530772682098397415442198715387650384407499526658482226458056658730518952291298998360695944430822784692166702586789579482856430518054218987005196337668688879702132858167554534549332854672690596435918152099086428794898869168113022981556534149866806469271943078126337567834364411906486704366031965883081262497002270926969251099470595629810201919446725036125670606810359297283721451373156613344511817214560344735108752536246865246937751997541770249114511098524139988366676671802513545680243346218410905109072476057564862956071264724740227294974539323439133443988800420754706879797991141342480303490758426240284611234761053446872386252619776315697465117044794466527080155166853298865421363140352329029576651797472646506620337317371743579975092973872861773448808463482687106548789429908435501895528489019326388696132561184853983056401742882405885459820401353262525874159125853911363168867630738143211715379035725735848790506184397629499366769011728715413933456745627323619152034927244860798879914866036629246049477884504878097293665302010991780563884839221224029417459064614652341210339609683472223304484594988400171631538060633550416087689247339584466925769367645019842853206640803111522144824643620845102490889258093163724588873711518196490081287230970463314680502526438726514360042311956055880092704653875233087023638319912547691020126522872722519145381984440566646074660492476715703626030956702395767897900622473456149353688622581723691327199537460801683678221625666392427470348760140205422735974191018428707775498291457847496473472600663875556167124999079075152267305878918627520332467157176090191948088618762790492261681452470359952597349126393605736305683498230075505205793647590006190696726216440302177043963454191381809973316573021346590245670503963914439081081867260563079712100549556627560394876339942106037913344675779346893269908346396119802551042245282002424413519585257862789897706006826225415913537646003442931507805320787342142986355604708045551117585402223071539226915270706374753348724093108593960794053719078955426837998571273110384455947215781351627831048465223479202773293627381299334333497156945725379845478081717773213217897606879301547735940159469277611610402138864007910386181429139374402572852702023455961516864997232445962508845644808484018404634337023517197875942446434415631158519042464985420736713123897424097822887642983734651774130518745569798855937219005480873360134389446629276461084608932468571948546180530594793122690321877774639842479284784193902273484102337554363362301268139244720125349880866428102363928949510347252304112722363803604870211936687374639751028907503078793411067994803836625060835394146688197048939289642858185012976245538482473411784641365667999298953815169116290760196288985091954605086302491617694782722264895971131421651436485144156749322212967582428856256499802670861991557216252971245963800769014632844340143663942752771536670679194149974626414739764788864927850670271363583546826666903894071163688139233354629380515266035984871807976760877313720382532960049536927951627405787437489520944148406615619715537882548747676873748536949151891930537929760814474425591767009445307375084982106374604266259443390994793804059235266148544314923181255863975314423102446779460249986763779322049907219717387768574142084196628972926590780543902990009067360545358791482042666648012142658439759190158679235408704299716198545136981448758799384965781459298858036147633381465862730006249981240068445119730067684792394393937871994466853548868818563648596628403717467607861401022894205205756145670915944054341569340975844373849398232649379814763970320354298888304153415924135081012663400303028925601742520983888473151119941828620797503590671268304454866452811776519963342865889943632683295833450214692169072249260956915552718320446929296126655636669260394696434850705550950181894998353744316632043916622164288569827769496074535177331156374593942224239025695620082252188622286373233820858236186037250722405610081536351862368023188462405828323432756052973953962389371494725582595547264732952932932240944355291236042654879067666779387744819369571205932603809165377601240246588361253990083747721297962575117327056095363089498851776040909767873100686433685291041441330196584393498921200962141600931416801896193726637284970742197252667295120939406098719130772872385774791968235962197412561160781251190662894274759012231036095462447442734228570162649300091307854253485509419894985280838266299573777157415277164538212141661523733842713105470087366510313426441088207596718150886504676407415683631097546082188139113830319690751082212538046363254887857256326236427430388814819556032071235065466763375499766020680809906435018826017152474116354807729504174894417027803047663623225169872404201739068627855523894791926155165843565753138757806042074851711761918107400488349471728801917512134621294400129454148307457498820864983986179365523693366850323487418127902213249990521771454410382870636006407622341300455365902624677434948204771396111870765105441142823913338724994122244129318561824331791730336175881049663830136109688277024296934289372243132607793381565789387158293686202869411524462663446089948443980398646514363336805331711733564484983925493913744769242659130486248414502209762906863191177711152058076293521382131041386493027649616975980015879558016596823359855642382962021740005214638885436715195370796347386813978769206120736302805524808630581356438492261050054786696028933544222445909854323224029203806548756897116749052790884676193287672841274307871736697464164928431665765275251515276628375919435649834003243598580333305184075145896944232392202702197361798274346973212029965511301227530052249637781444631213422076034812079570306084271156842522676702087570425842101187575690303017191268241761905043266167584886400165196181269460123713799434893235906360309081532585872806762286995486194437141684396190334841264103535710027305928319779255935749688251447134404785911360300790731176499504560901601965007105716792876093583944348999402828115926360961762064130599158859858260772496971907513560048268892006443500727629420040377957715409537517934431758267581710682041611944358870884888669084547646670533565266464455001492442545216441023840161267163098982004666820189555561368282243900701856820849855467737152979602774754881666886512350645149003052506480052260260296570306545545423406386317580877831616012937862768970690790999916416541194445169933253667392961577081373199819269488151758520632666169544283231222594534600114158235867078462985171517678883036892506184226306259232465896511931203714734360269524777339749229096401315607568921097135877274590134763456824319026097953529220416619520076539783830420983380853741229573236960457210673049999022244866643974419550631824043367160233260737245184296293593040395929894736074027393939311066841121217351358824273859992612182104426727745609601514992224008401341363081077972173812426108955485120176734612545900674726947202126737745057336708027640091217922252164929764282006375510075585587442738893728939854521548003436229093747482710216492739683991287183104068454525792563017404041302807589362165676008356897309208360446442132271136540018227367813995569773613322748535185421943632149479501423238935250052231896522843442897091158442051981135560352145293984524102282598148460734962197824270034145476726612149013665264133210480702434512377450789563828548718269691688458253404493692552711991966377344159663099741481621303134485418113556904326473037201962190597531501313258451742956163515087247683136954423839565271592953714788619154814560409539267907985381777142884460405032114531806436422506337713230552180302157122271937349444700390351653202819122198908436060332718597335157990273083984677350614018945366910087899753488383449684889406690934921747940071532788114174667942120380910495614607954080593914181551151506869321636587573841868984889447340439415506647188252907658888304135275665726823562343566605377357745964177983568617550645617882183664096769124688545537483740117372364103145963849216419241937342301262372314940924014707192385940083221173435162298578050895946362877423291217929783405462948173777525270139560521315005722207565456395457403638340683314794139799923315240021780458511175210986262833707392016047308722089025665315155087320655684642626493004049857147618720976547480643996797602268375688937190853111400268871040638967234922810191596670674857584252032245326116318671294879257358821606237799083584670122520828817713918011405703841939031137239296449769506072495023506367898280506967721810060950353538151691503655817437374106876300336190586880247276603093838613943969362517815140654091104512624821740097755151523721510602865016158346255015776942955548806887105001034269503058618432259530307915475666105344795313437724486828142738018365283720094730315136544607724090484281608538827818304104666013083821176842284688277344168964432637944576901497496673988079031369992839690686520907225591917696989815547725222508221573355116645210721123231359801239519573441876691190101231768491069694272144143331097193217617380121189461559386128419323894364749973687921431774033523872670289767405544308474874120621073932616341423600929362509824607715626965498259130826166459127751532718950575793373607309885775341914358331155665378341560445752306972149049626745459159925892273731585745045878598121169049363210506679178376997885748241182611365010508661691107964054609570129277361013464652662713389308143268107733032266140730477555661598680967013581682718933751351309566614140747355385096531450742405137030722823829663200034974759733989570007399468428653078466666691331874199104300478092883617616487772516433903599118294867460997560172850868046243310463959203412209510232952286387606918272254319091874056966855741599993892469825160708397737892748944105830678322702739671243841669174984750299804668173509258885608444779959745728835713945352370422926093059615478651128462942139497756342804198568040140022465909746984834176628814379680078198115314734495541105809729215222404081999227559594073286843101482458463259575208890341552834563686030656103616957217518628328004687327833909400976781994137073000880375846589903993308119078414752089621060605023015554120524886758483132066020805137161419098451981506233879555020326412060140420550519588763323546993769560963946221366357469367290229780050035203563066699839479325468828192177433233922969189344672725438294569142360909565065318615351315533106811409281447768005809511546600747658848834029371769047586249747940621850693720256384471217599401450124053190676523748242962243666900213463771176364193723187742668696633867543634265179443770051374568086038331158249840052171330938665566577199110996510558702276429171090696737659917943849762959101711896203623300093872351853719458525442183582420601970322574377057347703204678630520259362048942543295519922148958211038932805413919399723772307776786267177226586103236404577711088028720096373319731891826869629061991113843449931357824274976747045307908012640198769233571941643711998767240512703904831939871526134380593751117715798809834544504587538572646384005135038934460974777882521207909191656031945269704654167974802062409160313708812539858583502331001612434110409114842400699458491722239067225323100923660864122853924126801399869106221052573270788272314895694620283758077915193815261101763412246404505836040006708256204419119152630853288561200883591278866833352600807909154410965595134636389673350438794479003353721283036107189257854747257987941844573314624793430997103752643856815765725872671077640343439350719527979433409030810146946970109906987371939231288163742391513819678296404173844176957373840833629342008568828500873096617919151613008806701227690379054745699762376821124876362292945199349646002209792686945285218300298100767764739454917662446312421934274097601763339692209459147196133607246101869054546207155274497527226809276385385399803189001581460527062856370025344902363997299687944893493784859806151024788854957567602041706838689939723213516356462176308212878481925570021688858676400110171841943705018418939391241986580798951596217036613337150273718791352187150654290050153551212894946781225439757424278855290302612952993968964836672876309241655783491940034974225563317954928283010446056213799569960969158845028961179524553353543018838593157087274681240031059753583446585930435306296019964989187760896248342791339049997963716421334594444791882695388762368336002374165951123029123184135780980658548110697444356628830280044792503473733646615288685671228582367645157956711801771034651995065234656698021827426409140547824754995525298038143651972105861037029099194688486245838284174054914683749885331454620402842363065613763253145615697858816976424466863517060163735349240438396371107538213889377040052283908602060167815823791843964821662484952482076554403324023285435316912164881235464265135843194584264502083680874884263956268197088089029611475935622256073185487455870100110331152443529272227702391062791560877263577019650085621347247672312130695943569050132453426365043431278627921430252201443609579271326796367259913091947753016793609939129920728954520515570235197312055926145058725904630352322701861702366161470168429468315750002190598183156278409179975632101897356117213856059937671308895651636699691776618168913820459439741899262350755235539244855689233533411289260925067713830308461780648391891204904174449539075064780673917044254097780420998161675117601314832763660443059701762970417235794984662101130918355343130614334327063881811876572386766294917338498061099629947681671175624863245515514231136409521424066914245283902147980273632529208307972517144861898505903590654662000956658597142070881046880689985602946513972544582363592179921486022936983174490498235931078744932389074867743326873425184349147659347035697178027520937353591095858569960397052718793904315650969732664825337934369829065273521675101627711917320954821740241713753580347004707756532608776828890112845970095604453115958625914097804037079064094941472582823443152398786605213946570008587196008714928759462279056698904233407532206080101348974541572884156580686989789691987445104058805646389610517269311446192977729279305012354003883920613860088136847404840414741389113518756430429241711764304564196888197582197818114801997198882290856546982797661805370560877516760739331941390825426990593959981317276689596406488879216093578984637126565579283503129171989544721212817380269248976462545037184469824441521646898974908667146045361245384747492410990752833915976285277959267754153294479542146194396511527160541627201758060819557910164981077936733542039606272121454594349145285346568047397809855220674078027816515652091043625813147746130514419429964032281805218610271762880529560974590895844559387070046695699861660244791612521167414551538953179989258951300078415381189353342381448607117792696906165929249484771616900003091330154085839385676732203747894958476973688935475285776466345257771323662239216903407923808481319218215948300562837419417737970339300342843134797548193028561022219299790667739703710924705436896518157922956783102595687073104300931232464450000239571339426055252704500493462157535171196023219875415660821436994027276472456063292535585608354447396063629088440819901053314957469941774100580462636163722172018718638683074470717453555698029247975577917465493588540857298448269689598194962919730484500896963055238602544540884926288580651061179177819836507724603813748634713865959236730011299779528640297981151996642141264684139807612731370097007646774651986022086278580407123199155994477701078866885929969548689905631759185867378952118833774885029501263330847684659565867488289368106410907642877290680998412244109266138769353570741745304457277469003712486185385731095677482222913125178133306303267383250350692566739289672309987294508249368022596049173782451917447955197544751511534750746959917270361548164789678831986327248002130781938385760804503996353203618235556824596210808626700180473825567846190774524597098509001910615062146870537832240847412724208555737210319616881804979009097213770651199641763999438054577872663531045408493509616981798883032546254956228559763058958423724058526033298537213832867757015618126235744002448368193053247746882680151313535888311220312434530447395954461659061238251769624004071609939958329286057224954868259396442578382673438215689732090285653590024380361139748294502731867877896480383423855382902622710918289968868710247404818440728944459608447568767943217129604103314401198351737090631034473108624579736127448810389741342869638694736762642028873487677056842172580795595386436531133425250364811288774805996291078547440519055959624214756978261071669877060345089419237821444382555414640009750646596315422769343901102102346036940501921092128035526307671003948923432978324103027399198956326820291262898806374727996771724336921392193022458703289024119534227339024583997729950032115245340090364946650927233680227734539305112634464458135816093690713221012443849582128810823650588887349352418508909355233795555446779370555307930413485945723875865656303781085489489673264947750908398054857099590164517042664131729366363099784342478516525362995350120318949892362854746768878071849180895275479793420633125469077152447425464148574158614167854653723918509985525989203655543780051706920491093002768678223790014451495402094855448128716262787821494791892484328166688644739993437596149584871850370480147916485949257037645941459614899051516520943980434508164507434250045484856883522691503199131518789964925475399201398245823951470889072449623528612298819123205632742009585501492745238249362422069815898986226950755994404529618537290802282110584796900899367396745159845860164154594644416050036016745784884055082571752251583156132285913899827504322986673227044920430625570555356658669549639482899414395837595100451030623006594539867415199037057120458101449142069941748757519809805964808840158210262365635981394325041410269346006803764783110559140864335555393206483069087123386362840424763001054532045898934584245268305665737837798757596228362915673367215205309139498847506858569002717936933383752453632371003417582115275343989159759819644173238595167023147462720657951655957311489986050752505874353781321816212396948601374869522825151088868037544377392729210027884064291537165659664348909626311853383351507987207068637346010578491087771441994481956508299459265788512512073140323797292730601050193970684258294907785411244512898128463987111437103677184375838525815988174216212450492352753504172621275542589207306514134110928197141868926940896155803337447288679226945860063597034308971771286290353226205502826288329150066316613347850065931871023849411891228648098478403887247042302501184483749999104014281300251693038331387588765512217101912262071073569085073129806846088383525890143029571462942880077844851756791244663008716838890430380246806485969748938220422918774486602275237702031607430905227817114080556306104025053166067475663398951822509797358065439214390954061597773175287970137339041937200613711387121739180358066692111733973989740201717705846180468478741523223458785613514970939437159517204573940482953915956251639059539610933189921132234729896434821687361845378972707964191409399106277890417823548613779456233256442013914861755648681892389231342657701905041773511468230466493821974980970261625890148735117298702620175717769831240474265854131064801294686497171367864948123620364349529494093027399713412090751003484469037370671402278565928815083035786330334653848991091430208973197238626645394929662737913689673065100532341360490637921370900604444039548689344410682643351124092072666135546389819793193233485347878757723719998628480272414853317326021533030650864936447112164672731706944426604133529487893969602940568254130979728438849651497372790391296068563422734245335569002476244433289829245261899861668076137756914700548348807118446373037039058687668393338924021404554238611246936540572618840926806408185206427117788444774908416021220381156517110287899684891733136266261401311628756174379346630106902864835775919103039930677611996556392393689092434290746776269630877312427558396171109759869868032318052109696268407574702351730193992090657099077365700916169486405270806817623119589131078755175447655419539754738817254091066456961445481875025910608929606376175594323390693938599991421948547936105999984324424368525401820140162356230029076352487371942606881748016917197531712399811214566607078223646628029088661816617598035111164285971344230998980142338830879471262092068820699384471953165637354716084353401752027567077590899240362849468253965150142511822615281356639540462481321862449477758914183010398660520429221603933650796292362370812149159601011988807929556477598202981137132422239987396756244350445971188645839389467050350812328018922703727197155955930492877273443191581770820953423938374671143844851634077715083976984473686255975378440455463027248253738858004617149871130299991840493780371341326083260030892732331102665939468300969342934636758084447196969886319820642565761847024139530045748859768690836761140148797534748346840966165435474363662334825085163576939102361604414585774279432796140448451181905557918598022783735004674399064360721869901650091526067551271730028942780202445760482642680139522434454576423718459615526047034018361164936911400129918091974938891171117310422368280816137654637475207270922857604890863508436958350917669774838534237444761020434589560318315535297167443871481627732429962246567069511679783346802990017390159696971049080446724293348599027614154968672591530388036861651477992961093422192444240194748500944959379659552979397103960151118930913988940578283278153271485033629645583978882813258604869511976689914463850099182187020321718273256797840944678480567133083488390491109630648164381265434395404518733405861245418449715183548162029500567503614195748206918653818325022473906834031684879572174933538263551411186194259688899812177466652867772522004168329423371911306462325861539695269806070099848189575184821335407412923614394504278061997948909210119617157869434844759452999134282766171236771006041134153473528091421098780722202274046801888396620320643705236758805173695487861092566267171254259256802618257615665844027938199871513489015109353145575679083492428449456202238552154781892120383142345347306639584149560738694498765146793663131011910278848551955017336565908987583048939332688929379835129373544055277557916608346310753981691179876009682435456173776038738151932437958221881073206938268894098227631698931566549622868500092381203375623013835884182466544298568470927059208230058993330820306832354073391872192908829742450233647615139649258112627951084307396722729158575682428245503961139760826476687948624512289648011866500155247852873344465013468057662496628928236789757154984511035539955501019173397446750474744610488656453464689626008768736570853059267589422555990865205743940934842179471771889248467740125766860740024558471767776143285013979683075953546619068328245682273439870417205384871063024590900343090102624994112451897155262560688527962234610859006172794360128903433048596304571547738378334586663053511314476228392290614597402884361483117957931784165761897455149713418623962140790806209066571519768189418871652074253625557809068479282450381458843655123064341619988043705070155000503490695816325505653280060930589761834590491355861189529766725323583070619354930899251635978110049442707071749589856535810351944750955371175017687999857640758520014537270759328264604362557748875584486978367055709312406155657749727351003951948263646076700323670138431990960122620089661604607405171013599106195446932201463271498601938115656226511680569466170201761446360380832976784471048122456591438352463041738842456308108515402179227467605987269059194608161002837999983019835311320829885639840252122288551006116166626085009238399998237069453057722855935185349408329362671022100896114725757428267216614923304312297998311221068991591915057383117343912884988321599838869692404270218149093838735603519226806100065575277183416701132428679142075665904899220075773065778755810604943552109926475517064071855878482054858429611101507426312961453169652390844653506013292692644567971665292943710175680008120426520284044668544114246874079229411943640321645526505007767699016580795103204115379973626789152928215090849356705408565659640152854335461583434510245360330278241915235467377952004629441980243584603480840308939391384890368880557511784545809396737190292271903676849694495354569477282203363561273117631436203544934487981088599834122541293100258237873122674336486151085028824749828048005968003241619239998662967832355036076001245800507267026522477422863143052454880398410145492618563017485664541290199412874617698410964558715251647287510803559379978850646026284493241116715973044731191533569775881805716507248924433397127141787322313735934834722896253631515181733896393346966817439900055217615559044260336635420262247825315402999675509130907849520182570351372016914443289046994048660165059453054154806453416014489291313301581579614938835485431968789557578619244776734090945199542433947290073985028050193257136181422137402833764317161621613096486147562541615787099871168643703740927658146499083013196374577260441343673474213167586730585801056164586164984890390233272554516350052406330270153122834716571658309463371014123637264996770813245393933644879951387918261624331324490775744051930788948730350899483655646103181857558988298572094810129683873585216531083442305683875718227800596823023602854494633983143189472740139338319659584135694774694800250062878859888949211304821297761948653646682286499796863223364550861452263601665402936142607041421133023913764625157439123370194717027328269409259016404367833994412872882574966347714639144282096237546926194660650861709077240550567244544325844186549229788363649704799035224866724956068317589268364216102003455689093277709534745961162736000092017472701910532837312359864329823660737065382670917511082023136063393762794700460426363048039687440761480254934442331905778364336827007916305978645250391752237669430058772455470402495426570349804489988500643556466037935781935182870679834548855453154905035061317360848365389448674541113450694456037414089387569051086298514675890593277167789397647319625869969558474698178138979279551149392913836074576960688828181976735913391193585690215209759478574955102599128575174527525541710914221888427510419261552981054589643440366367977959674076461628775924680738888930930017171978794559735497132466394417326613692386995897409628617614085895857777298065680108017993850071630945268006286157842210328206223052815349765613752817954286903749801030725204991404948243712226055119793020809447337061429978925448445347270545875032699215636112476798745782108007268578749083526351017063488228959624960862912067021019845608077443897078847442919641565998187584754672420490534389498146865564797765098519778816075637932501531114242382527531147223269936780753897558277529493179455411199602026145917076852287144580410957553296605904592624580251255092562146875072017856354782630244356770016306293206831708948954734730807470723562352598923813038090842877935417874202476764934620048277914303290554756256633661328917691368605421627819701280932378414512563844286816722741765025018081813441277707149220022635672855171252484472722945465179736070895293583629756337911190905796554363077612174147936574175605820809406358060903563800425675030351485452799307884639349507197602794108092004981070826249899534176188699712474995402456748778464391180130957452343837176999730429814856427324894682622734583212012572547565055001826881711220899721181032100283306143314426117715955697377639058319338222647793607829540677063134952919181284214240111090079489667592845258900999419108720164378545461858658661803104161861598786005435783121167371113069639266655024167553280372146085052548959788713735528742262051859699069757182156182793713607001699361328914480285339071868026411246413252757729983441236995801457082676997889892340374717700349433609482596861022321385263876848926583008299126308288004549430286313521558222206120162661818044562302166322592278301011135463948981625602237388641303174483315172249518574896666267153152829943699685452110580238713209621904017875718311637430828104118516417085719312942269343758474643354996187798195077896504294274215558107882258969206626101863553954920104988270000232506969374710619840393557965382511090436591422541317874557401860576743873913874900729648254349497167452847663961416174510010504165435125329474899088462737308722864962717117558825535884657588234087289157169954236378206007076586518721958613336910032804294915912697418885720817803507813001795261045920758617512719863493319804060375147103540582916021419373724599423610493075972738496911608117546572506175033842160977368003288731331468598968758275208237354930433198023946603230633145393777430630454309440627141709803810981117158186127380199838965967044215259348309394998375751361958826977817868743074777986868377643983246984670461329202075988961984271814033694396591135655474776297819317533257066224784468516451722718764332795266431431597082708388203465700848971159932889887206287246913550436600046619416068307219422853027533761629499435179506257015777581036241483505138936051665128517109822658261746893677735837117875398158674574485208025809516531867350837543120304444180176529956352963544943754235526315388718871046054876016326516729557070954592377883434921413986134778562193834302947061449139052606788903901996599382954483652505599331384816717193247526196853896369696206515677293946385869714752787779910325212216687081082918025850882503446749210616423233355058838954669480170448913676353266789591735254028789325291555944612965596750976995511155905625102471488844709319053287015040423510061812230968490374908449526083484499756986527470184211002260930823980382865567978242524928973265706600116321216448575129948060757040026658554698878434171418219452148696101166593263197706278687369725798243289269045942179535431767892206827425561320995454510913262719437397106857073536011600786362518363132748241977271399745535148930074432992107326311882399093208777173260887816167319527125360791653599961082704861585258723754094694769285845513312441196006425478550554544223582362129890497223087899862077572345494609103377739329057194413549327164814532860235479659250719729312299941054943801518283954366111896770152237943946099878567390626749816823070231111445437465993670246539978876731251555463422644820718525971930081606845724920073570958841415187154214677513353713455699432571917040786001015329800858303580331737141964121858472098003016051555379399462269215190995903043912819227823726868381672164727426589325255754595416179758237068072696484498287075255188393178033843372331152912418302350323626498266277906596948010262584735456174388169571692201116637501279932883904291398849905381775938817800114129263382651961053782681909350560517491854836145147534655775913398177080958595073660326237532368740181015620640830526593202575300681557857449346741432620139626519685768911127275669515954950715507640278080500547518088629166519834180081767715264799049202313675426469688345178908063451224072074702406343054435589087872209623480351888840281088815142567262425422255361907508205888880493648664423934144551853648434063236451283115317295932291091546980287092358842739126981560240704355118873476835561918661237608490005464686700694432048840960718504888133487178096526528381918980768467124376371946669661427417700505703516043189430739286962725751822865720077597116170264446358510592466631527884521363517449171181161952666471872904473761955561487894690135867503222374212324451987655864652047987457591069634943817268367224880791874834865801501606948643304285460597666620922390440295588699279151512616714350865057441791862458119530796290064333499480613749848394333492247245351853066283796373724236570090615658177274003396660508752514212963547382057516369825147511234975451277995816568107949780284732570073431709587966673468982238046975716244265854904199925715799501715137471751247224095118676033047182656573069816308163592118913045886321259933015495201027916979259369742718201448532189896095373029610665649896281577196382562824101486776368103635909184197401714926077161479162582415685833450013821947276127919744854169426229943183238798445509683384295130914749824104778833693754051033606044394515045179910214578974210485570523813674791370711604909950506561786796608187221646974978917978083129419826499844536474447749374033391173480332050854218932548204411265978019416705235548735548920476271279617979617155482151974819373554501279707170265976712202015711371871270218563663629693899190367474235490357587176356608884040935096601721279471116670910615357042692047129019382963059348556175697283186938016707288561329439687650170765320042184071823257611414049602460426921971770445819115604208330075773201827873148918338558345477372925687776737705334426826423091161119964333664862987637476282732730165044051266006307612831529631746922816997581675270673430546195208050596402152994190189993077505998859403502445259595586134954302032409877698342408566003284624318358193726601207097928413518965518794156138727457495975621101306056997224700574294770077390772219228693249294457523048105665115261394039329888714636030635858831260994844465855164412659349488626196764913118750614972349065155341753044331377008770343031628717412461867844607755073771142640762159471270566914635869750302168447417983639907159233597700068045472041139462846268054084454394210612902399002211983685088250928655104032111010202966961277093042676090831846067579969522649627575611084612437151501488242178991279424370228424937252420694364730413830949276428485887987882509256091030869681281712178988681120853650034106570572013150809044762296335821367149490174515002273428246610741785720729959851096746295790678590295787517277805688741595467250351101198586184805907885107191946910142947769883062480416009365968036889938164119195341029782859590615610162456279667771455577114151500560662151044482228944853607053623865721506907293130771966929272092821263390454280843802364100961277274908666013250693073988604102886983157789630106720192459383944507135953290538866854839169780167092545535119194433082833101519200893101584552399577688711076438503003706996332828411817692221644194241516899313261575897352632793764215829054792453687622535789882313966263110816291245107283525895631797764724776224554039264076733934374601403900449822984498824805548921840153898313866372529482864361570661693890279909455636163965530904888881034179001950155346061057721360499981215437655414668812341605391649691715341434711802822739662343549919906267438176474739355187057682989392613827564159904184469992163174819289182175433141635019910883225841886375668434954564371957518673894698825626744746822849183345394774348675355257644842041187894435330541454531120437899774447116519773751626382275940558154402644302205953252876653450946294084753149939122073001896824625338987214085520514303683162154691801787066639232060653313013522656213781855074663177039701042340777461943353067646665503011019846979736260914104133036310790089295164323621927862148802133388999265764633740544208810528553306562508485355848610845510026883435640146318006086836750828265615425964211748176833215046488252028597696244710687071170309818796892908690872642321601759808290759957026147473671854586119805727540761045527345672057787214659031196652799017895610296663172003511620533151050658180557525952399407339185691099927629523208998885412565087525746773111715526254467806304175083042868036957191055599270787518738241102841328941849550431377462085403091118890897943560559534837376888079335983837609999477457147351829073488925384243413864307746404228391332982963182465033001627490826183367539826806608427260054232659882254817144027643196458384492066074071629139525122509541196276056766615703874064924262970994070132345140543497685171547123835092130484123966952615250120509180185004421362429732188319298855173916314962342087575918356795385371741913685244434726145063067970521220308352493238162037917667028941313869525892404913791932972018706989261772098373874641178689635594816143946552104128990018054028105869321110594363932394801327104442799883995468459332072761392123598935986834245427467110980040124973110641061892008739005982822466108368779680794340375597272719678671168429001913285221900687174733768575563685932636401446150214774956124305516335910084295098046896074817004142927257208016809774454216664421263027623978212573300841229699943665106220075774657965915656626340402102339953628926162946810621865193970910047315519629593725042105197219486987210199016448287116428740080127598063381794167518670988286071674483007703913377230411303707436516534208006712913381376362107306754632787245849550266908406919955359813397153133826169435330893070395681048375945846845343511375091143217074912834498767479346044474851352360688914143543975526498034222704064596824840223971237154989603284723602391769008824260228092135624276014915614853978983513680724214632678212887996587388094131755374246099037708305016526292624314848259879551789187721793218761888286120636828845143182051789826504659258738096304744561212203094737910847782426482796813029185444895156066913739364765555572135781447274564063805563141946406408826530384614547603821551617348395223342611091156855083625344056438649647267584755089944941539108020421516168752499031652403935460537824488375377227313294477848383021190636562417496905120045057491079512571996771493003872250475584020475399225850810993389681074364574057482072514300647519584420992067591503053675100028227080208264221826356130119212687474507945751677051629860819312312070675845349448999003781163403915708763273862155704565303510891443181380550845377164474928065857267265436154383385085729398838859935324896009360980197921734608823454254449948425071653362093636306932247535622331429016475375967855489515114110305673241278366408592651106557774551765455260048178111749574764547671180661492338070953028497437785099330576395466919305975029656749926127791232695615875392897810200103674196175811319938913808916639702337744295367946405715177535027025662302327505102590952308669065870671754477952556891457060717954028914399002414701193816055884059553949383401943500292369279913901855438984141378925715652998835847683059225558336746133675870433083370390185208499325954318876717939269513622514181003669654842434770881434068157724178034821021146950829791935723642746044496007387675809333563121358874381358175664791773938649689141723251345416082435643397564657999719212891281031607444856891867456564821360233597196519031574466527900307618191825011016779738262044593126752834674066643143107029061658493470764658585873197620633317677188629332013502694289555061949410354422180788749963434494226747276209236567915560343482573623623435117549167784075189282157920602803279242047683771318078232586408472538646168247586194298680391604982634310460044178509008042766983600144170512324647609989714566891157518908420122864743538697383405247368809216460615135533772594411569411564956970279719298171757230165990774274514652728732643264770855749628379719345027954597733594935100788960059611681518989823492793411029169200456448820973277014223313214340651365177753681821360367046385064736277594757708935054155351310933630320807738406179633609061557889715408145579813949030670382453485477004311524496908787575621355410396639068181404258659807399671393162047253956980399885472839980798351107847536917577294360836986955570081678055250355616222505032572127038614152284822178681864837902109156558468406074837878166526520131794536823734461465384041285850333925370530105665647151535123512105452648535962860995432953968439259168636207027520429399442263537371682618567865320045450792538874030039142500956518623019496871003217118173129387725853885440376171358866898682259801152646532120041620880096332861383812256465691251367021411410053358270837141011842267611362136307639911547235683943745117794649829029913932884915795468615634473029119527189285597651539125853278882085673739756329600296295998704292746327931639523516664808972476734963034438049488000920883476109585315521954563105089874593982051059936868476864588866373207345301667676645213089277135768341842316622062949116158519776116057764264981398052570573122277962968252136670496143279553339236721192106456126146855000663428619579675535554475933421051702667953952686817281775109698111554139735651477887430703965889046017030389123541837411173549824192004340583473412149943242345370859572308135844463031012883024705188230202531757717199600682194257515843369003533164855931583861626344315787222511240430657963278089985961782485122786440176157570966875175228373401487442560137377907407651440369087192280924008905689815416121686033731213292566950324366215634595480908143532566603287216904031102437738880715895656277221946172408456396901158356789850430800225819570547157819601239513274183132664132764127230713375963065201977375420615215794487346493237939306117947278523315320360045086349745514630894605276415401656891636001804200482380710394143190059649831786849299781989720161849879133060413359088371745087871272673469439842381674544506749842384266260034909713853686388918705365477312546137995806529757512215860963179738612793396142923836949273442764507482049105214100215505972702496415362491497532286537970681436867265074073874595658665920213901308641654171081661455927034700735026218331012463326636156645890842855574092065819510225489362457151065417497644441695918281954511945437044204669851472226630431008758857393672822323451046488795072571778846559207407182979054936599145253869520572812975096761140880792307936405424898769490624947666472955124662812343154429957539780612226019984468687450748464413824503024815713438544109796691819801936857141945001324727821330747094938155184049318978660202395529761146623339654797956737910534616733319280065178424977015870189987035723383497700320905425171614138983455222340287355036619779729472492093631099859569197087869052097676121684517356014301437850781040084995159180081708085804842139757043713677808372058683350473063387903428719521548054482796731822358158063895996138836262875533209880278774265203746135386655233788087562233289984166254504001784095046157592175603553984589789249690357624690136581260589958397696517172217315601921248054568725602317786503682385475661840763693631536787300046738904689480445043676786173209703238854623905569635533686844398769366075063949169165447164087947576838284365923891741802506423874202709770360482753979884248172639643088102634449841424501366762806587780733427485646839024439983204296357119315120476566640763386808015517164765594882482792986039637322106415715862182150516086817237013640297971907381919641789831980839657931687815587475794762495763920840508809153239141578686000944655351964459719256114967050880371084816583907846755168968066971731183615135151375596492839446402688656598839571950169028102903761586569930060230973298656032190555031377735619632801646012827525544079076099528622094888377113266938494223179950445441035324710118300722863484755467327964741271605045237454738430152181746841961513779241667433822050947119015065152082197140084157685630736102752194205199487245192730261473831492031793466823616822735979477838216061486064939357404524770389662730145188675815976830564689476985937532457500752476000423617334052058310028766009672734788242097863288520795329907287787984931414491478847259571443922256198680982231172723837867444708661342246412337255737446100204436553733206746128213256843721553158792610486482998624581236545797040856012297273969573152051293160377574566988117281394750268903686798093693498015060515394576447477262525679658853418783692372910404440957294293402391711929253208288983894336843641662748263075607632384736341055753956992118980166785290871943508450861388503403332977528171413501786452273514875960998878179874569090540071541230216199144792298149542470657176676235510012697103932022764661864794122274600231846468515422404598683306255953303086990296163257665586806479014421063102803121071612654821507592624955015135000645634529067613922507691895281857969787120181431927682035444543493021863514324775522235372936239106075815263421972929663261255319499453291947398491243052766462124850395140190160315818242572678334028422909968478152818109723257487709705522350383598046633506496917774560507314316548916017894736119734011848393453352643626318400087850108291006670866839041861940396498710563320659797471918487370003945594016918075713202715778915910718593269069173316744484401695459301215474822286554456383476135157088051383792920353513348267260078062246225439463042459508047673406420845102905728280660921168178636626309224116090115274355539882583747932907482576106717571304311893018790697725473535709741930505113079877087485472160501040773580133158816877535931339268325527698970331239605108579683433661505228396522882374172383870089687650135923507521640604030965046153348164771697122359575801080858765815582012888895921753301341881214366220743822129030757192855253382356678742137682484746524907064905449842219130682842865292987437915820656537518463625563292924403543687854840091699366405636928055724489606816406264872373309412137891601576623181399967009374061680282422432293080519387198800487840341679243074157906005164757562414668578687121759726585776172611316963651025704267780761833481497990196497789939247667709113454566606736492419729155174723225211963165770243083872766495121551890757800749137608661781774808400608323429354887535935749776578985992591667192276823244892942929972421309800061107451802726807318415053286080679344303741326859105170020219952829660833484675008090973264708228038394575332315555681782403435973687837045048103780479724663005294494769271828129876519754512105915369277984565841806832362231808290609111433696672222675911263215499315201069917052408069937368497329815409405751848415255983096289713250563518085323055617701885433297507406715025526851782757535435407267619181096569462510043351097059952721715810783662423366559767059441248568271427057485238317650754229391205169111274311034291023138118785712776891870092614084574087128422878151146814259974032156754350974563405316467090654251817294302132949227621313179701290021330311901550085447708710838879587790390947163240278488677042026188706091446458320755329789225537061328683228765692547128617674017114930318385937459662059170559775630236296244054305351588196628552914215424203994038192573402626517752362117294600765077681090796591910163409158010081715325633357125421388768530896256119654173861051388824242444466237101951778497218658119274072150966107971844795942274600729220631822709755407083920967511994971868421678786687662362816219950536433130506451467928774511020259820604901662839135508124769991861751420371037003362112350854028036596861368236897389024607808805979467071022199999501589089551833882991128848399284057187656501036366526125178033709706291203036563880095112060797377842578711985227465408372372643670543217680227461017084289595505604469671827531058853352706127416289999436067137630383458939938815655226823363705496201076972013437107370903049845269439133766489528998049534521666455484799920937717689917633102208730305428375751100859428203771854108360199915293810579424898747583155460417819458128801926195100885382314397797307402195306936666365134595600651784416170160830947155156337705970714835639514387472458027665648213241305417256915259172393981535187182477878083554430083638335867214434054091583695956961117424959424532889923411804277859115746414797128566900888744655064024178666729985688657043715389167182569625681471867004588950260257280448321596103668608388127546385162498868347732980902300124280214418482413511464582893800012173744159956423767893783010996180344770803428425001218668426333565558234537851105951063995096520726651792533535952742041154157988870777788874005366272541523293735251658756597791435823863419243734514827407301857606950614131987230468904752538495318365811702439046544067526216348030532685021120863063093562939773112946166451829938470158516517704981584471881642648488059404156599424689623992226045130823818763366393176170701024505037450441940540665907163965597244733443712708986933481499770365753314525871860625502916205638082083143960856637663793100276399485195900626886870471173611673673176955033701906712505457161068766939989661071932541564839421193398201937234952377921017254075462376841737186632462814357622611734895951842493976051676700672229918859701924528952935417548998473473720748390618578115086384231071246601301469785895004009909432014358994027268212335455754757130676147380157437775742697128097107929761438570428763138302773130887505266366363048786538304514755196893843272706260876142419029258418992379249785016441706702398522315424040740612474129778276894892800483248535680138405980481594696765233837548819072378779801997513309530095673480631062155583051718512897245746521399125258647022138333731498215396415786439345216448918835433338275498908865716937210561293028767453452129112095928757447144058741167164258357760677110008184923234111385926072994537300061409063428634953428643215241155113749146600807652509580997687282401955207180324239495712808645224262865015353650791869658194998531964763305270219590534965579969756468505808968575322626710133438126065574912543576918155550773997842804998552951907441959249008601906297881548866990404417614101248473058103520781964862104274311410594629262163243761106053940061495666669277396519086936592270101657492207114210213613457266800272485673926751262940905442326010759395830512011860436802369620590676298733243372893452796755766867364946960637118323701901225260218819785196499288796537171197708983689923029711621466172470047213963270858285040748139972954142634409543416409829758470241104611802370482543951980238957504474692494548050289610061539022451916264064032614278380589591431426608877933767393118544816906044989104005738589445801498789345480595225549720187773105969017296358390896148997241221756314789651480007242071765375035483400788749393898424183294899975355600439540925073887113488164821572711462107596993565203305968609313072883260850391790996021436827250338775875232753316278109356779561563446026498908406216991714131260309340308575381030783201489881929851871168300341243109674849233694349531805019866612155853805645512558959022111251645407222412375821118944659114696055360802982136835974941232139796429331959094767723498277679236102180611831930412080315828264311791778783893602444411780415721336377521188862284587864506424510307873882019882493515555409345533362119956793307583807834564091270404307343453865980072589829462624782519514662650307975113943057122237900719274772490852277497657666008355175436415521563087619798964685539756283981991172640678279158402837750651693215397457708644912260019203796202882290437901827585508389488209320096740688433843739201581885082163368711539142984277868581780091474792601173957267506158657369777899057032526138473765048315693242239615602003375466631235215628497709565409890300607042624794538624833278325701029710118397237903220390427257627355756213412911860093538924757282842914152620320181681835307299132409608023967324789057781731343468743817515900077624504916902511806577728625830866761935873434339025916814592865161142362002676911775548668928963021577701630177463929274401507566572383871548892659919227951413593471787724873331213232665613506983824212488350390552375377888518430218761985494243546335274733343644311295826886466807492249753467445023697893503831783426739791423941374151834944547574124543938684840367499404518193381783046298931557430745437710210966813229687626395736014001793385002378274466850101536279761758270265569373029322429066861406226398989081711064376728966353092549658806205777511319434754552455557977161688010525762035856851337535189018481592227535690079880553681028955110847073002962184913855816659880376109652578660741428611977540584358098961120453551382812092215734952001271322851282964483832790187756748222572863876402224223519682730070118853273993788834767029336563943236172208151213471790795365367547833533884959849967269438466492901826337404215666554026425835759567118564737110918214659954178626052067320238804298877666712347012696907552801824475134365566494878118565446315067584150732487298360194352657188677752876800274403588535105855464224883532332005469275447169452875112541030088785163090624823923392242790763062870457141402374351385353090330342482175913063888854650209693014751552167849467922793137313692501396692177051263530456765886606715225072111165666307483713415211509425168221582761458791143499301130313555605597994669656043154776754706682414061728696615581317193173907988382611644410867877139915656827442215658226914515669226074682091207403254910196472129553462482263277323312963305587418857398817540528767501631422617824177620025434521974945420637386065264017064003463342478625059748402006791775037210700173220837198956264862877913895064631516921634184874946326179420538569294328645302297564315693577043490358328408533799102330132588714864451844951724979261953472054357916389866207883694069269925980946018988278921195191148753312798279591837679576768787625957656315199196774648461015722016324470329236373349816728868149806477962899953997231807539332164475752600180674795808473402036470295951059487433750241665072946236631230793269000759236042329755874861212821581607375049763654371659108113551978795709859573297685780556713538914141812949765808249959446578386497176063712171950993390479841203743369772853410644294525278377219642427439769672181876491116503749138207311409958977148232567758252943604486735047289153823557610401395589318733860475037982457674061359099131085472632262037721488258546178760810088639210510159726619290151834921742717700001400234088705102197804277652506180188134734189094348468320218864007084609436656924744759233336628263650408020717927069180372772719595092084485230749199989356194350065207767602217448271427574728652828555308947916110285160497915407393203698308970154927889617948735307728660588754780963107888090161805224474629812515910511286846439182824563641142850485041980654305009728079218124902989516112842637670604666906557605392894223734775702615152384204877683318989672862772964712112900563755243894060674205648803329878798161434822062086791774551834066719339021950501224745665097816404742867628200081284387478975112601081758693469968294102666164659418293878515956468598563665523782372306379371035691834858498592298558082213227136040197034572393007501157927767822386906572994564509633829646143573094232275349453608441510173600795748308467052416485306564996971704892538204979909256773111236114818934856363077057600485846839401747863682414383291250524707342152876483459815603760616074582226354252763575493709565691416768091144276726997590422773872350189638783726012965033280644366271659179608162334344172016169826857393944702268221879976647043373361096458001292344503976001119078813085075169913520428634262186388526474734646298292096537739218779854184704996881410533746025123682820657741724393048027877688001456061368956359130922031075416983619011163957530436944628514722914513868159110628535484151176747615943111252955329725004046044462715419256198708623827177666173797498912384547237033840035822172209853812150774001034823759471925706691496317393944327042624888217115775616175850380001059221789909834410720567066600782353612650814759773796079708039334679363678742755825963959077703434655068140628999980433410641411709712681270539450871901281216095303629727231436420704821942143629890479812921180173341798633316895724294680531385854543687723539621052655182681575891568540618224452201486614720123880451429959815525927224596887000702910744989081725793031544938950503861532584313540873711249112741547945069436781909158575787707392540391501493104392778366799011066388991347332425621640603795906580450386384626291052062373639006226937337759955147699029458471710247820617263654659515064540548534275312981905277953652205227176029062672941702264489011973167582801905102778747285611112494199954144971920353783579498175053007843265964208972122122642613592631525752799126474835388421133546559664985509126817229372732603160075693817856778770364661686560129335994887442613925274563984240764073706341945754961330352901514824760429413139841171208876277218538839668397174216566996766673581458973057090320711370322654307584429496381327829678082053501948517156598680514138989757165584174471562491611387025690540483297250508015190652579747056276968763112754302337774232271038992238631927313379309478523804516387093652954091368243817527297042086981611268834900332860035214148933608135463963415578720523257973161176479473579628669138733743399730056476977345723973070695583113336002919768439408702266083696612618139918140216618595080864670269046059699058856955389925457075652526033641898013087301731546031268855804314848224150978180017285428326992118789245469464685017967435778917325670866004560157762084059895951386972053682122266635151755326966045277491625344539858972332300799423079023863549069555802658350160800850032175729248549981142914770518732093429804668174642961698468546561092970577089085462095501777484711390761589014078585820926732369940482196732968346245340484100215849046580349553666694901252720903306748557274332323410919630387264075429177822681923606929872611183249417698031585719514366865785156418627446331257262280586142893288389860114120780392846578091288444623832062888060476239670693323426625067883689458151275484361384898804243189923045003306247490491714347874880523410608755820058453057830670175628929827484715635227913680527185407524399662871486109022946559089861951822444371280358583230052602409352885959247717172956094555840454603890030044396240578338549373844537092811069125139788871244532439335389945987862509666839781410709008048826826766470429259105380055149889409204394132989829668895933683270718125441914479052872387524665818514928418754824799754679791273486182028683505125876297140551932550917539744293451809588327315755006455030716504983779832135063253778423296595411341927306007189569765330045174732457463749086169117395691682778442231406331546809217357192343250830715005314916616184782746843495277904450758650128654902764766669774053933173340028632016570215532281958325447056745625644489622993562204571142538251772680537866623131668503529243352144811030017083556097437153076125444617530272902135324546700643363334751996863268317091470326297727020926084567769591696845482785467876979141600470900006988971626700100664796735114781578503140464889859887042465577352651088075544725285455033489261870445319471397553307037958959854748308857707115862628569772969553669332904174291159980320957816088891422066831695045720391804330721643499286430569473431886213067074301539975517983716727720005178156861639279515778483303296344961289534017706518748312629989951233202874344075205190064468653407786184053890059450591971140268190621493879724130983917527986500991819390149123093483154110907185278818617602816997477618246634129312191031766469740637728909677679771447015191402539475176762962723231974253234569732066292241596066909063287427888388448237487061134396950724825498569775122947175956028046972920815627381565383482501113354036250234070380035596715601551591378658261113643806281158284964518751540567836821566554135777431866370710403159247405914085503188555272852962244741227076469312059204907791172880609161674119955578725498074151498748130777993421228675615961488617410684986813188511150349799089051694325857405347547568865541519711911793156011566559350478766256433317702011934755024883944639881255246168817760674760307678698852335986127436416759200354968822614359219446948239598256060049614403803578301162917613190681055813537438928855896129937715417170959996285460182463928553617648265380926951429952862482978708675416491276060026972547062657741023936928523640248434795151042746291474494929841937526734737616412907190170598101030921011949147688129740298477994044766569267491752593612970917509597029775964337183772745009485935150287071862560314564891775486674714900226908564921791827619105232447766772066503718560248162699376721065569452013941945737496465025770676891477029593143098047729784365702970629685643354162850399664637137874166687182513079310790687891765010553223688552658932528004002111037295833277296159250066311120248374617820069718559040192886716960899913250419836098678489459533423760513551177699001876528806876276412886538730483767182278858206037085995505473172864259259574139243358750574090061820099439391945222457782220674275005101663752363995222261094648923938792648204554597199915631689772654286375236553463160971920078132077510636336930070450046829798213684269182087647617805720070071978016042709215871292418179913158063036957829587854965219185343941084831022720459358051023176971944935240063273610833566156872053222323194920003070308920585436556532410005875516841334770951611776501143048929108923170797700934815643960306231682461920371368666987150305278021985502794745132027642955384877699358412827263986037549376167145427825335161530213225703101687991784927252193865760495166732054064034379815065976314065576564305520641095571519736252091261401346653960752687496776554314371641001457352192569960424637543689903243630864443348532048253224018155950491332889520183352574200979741279086854273379004560360355887409623198894337883986642173654892641601273636802222199241768564734368741588042821273523581894917899734980670339921051010308871648469438631048792688316216756329495672935978542425396646897446062039539664596712109725379788887339502916101498847806975946973515802458239572412423105492625278240167064729462706927867995050368593744264298978146028783444309501337505269156845221962460414596156166344471200579320469038186051311528393426792062893615289043311788787298755592648788878801406192511299687242414737043319228248465761406707642172247226164777882197012446952663577936782010556729188487650998783859264173452387207017330701915822351631242158891964691549415211092056048746623544763172160595789638535491126245833869821578213590201028860002335787979801062389064247125832753105914238171570034280370342502948950067918232583898593859357412122759565485554362282765521866791682699459843053312960909901920705044525423071562978436078965353711449284962298824481645081582284208747541797534215080532949558039395263716530265277111262986307616660975707815181237975741932232302602793999940764344332366548226887457697120624808465158260188280925452926246430670075266995151877360959817364777436618792111876314718384069751146594904856355459710273468345663061086906401301192884347490911774362909178843170735739778365735864861471387604118324370884212241288458894629660289142578309002585807275993343212336008641098088558808831149329883252818482807917238825641056319530935160570839271895753954169223073365419429810277506424049091066769640214270362713483163819846375672450819407263743201910504038394725967490761645473428773012083609038663932334286216290950843482547020241977574215540924395310736306905061248998788357093445276441155488348641540989091897141771928750863662595149310182277810054158436974972430664149610312147306481311193509397199098233348196103179928766070178661634016588455478538369364600346813348097608344372392448424981976488815026269148332361124157772898790136814849744046443923598444863829997766011465762483827651968726941855117385199178294381742101652869829385991133618994792062632786390122197332824870754448081140053897647655914378498853163856446681040410195840000912068043035519256900229127586944510660615023845399908739692084543742844250210662815693648535988553475349941136451579390890567078425085084443832636458908468254346668064480442404846738035834713349176754224805081626584215305426354921086664209073061704129359394825426691543232345411505472815467258048463109884147558883393514564111448827311208629413884242059042114675053738495809557778589832782519766425540460468720095068601098915815006715272055586568150071375027886977604896093975006657092991872704637465632367937637381533425105813579583390135274049805757107841889568565684442580684517453561081304190604502106305977253088577309928213969956493014462373332343414885412863744967286813310977387078560560615744557539919669202774722836260866848006756408795584691241026884117780692713203163691369185008226342422663239830417692558158426468973392873293278727007653734826380061813046146404381276589640389955094302840929802803335553490851679733186759084924411696031797961741865925066329278424380926616724141691251524413206453354585537872281027281837829157031854593407037948784013237191118940323731090464712569538822293524417086876767450710853224781465827173364908886427228456713616656889376610724761319503840016747512430268257470989625743483294624473855287268838129426361464133931640454184089799803177104982887455544959933361853241102824766647001898305117453751561680113307437319803900496303663772733195070197222380427237461883308095306233992978365994774458911723952425352298107664482659825796436027920653691519923404276195182365700033564353002146857954435778507602488356933918997867615461134631446168164861318188006164737429859415433045864088276274226678800867429350163902065888455540125416342099841530196300828153206302150487525205641279658165424679699155234757604992267268907891076875965831876879642934766648915094904359621346444444407037284683760121385201340783065809455129279556111989985859107561445495342356121704150622695311776949149106040257852729945588950887030114415823576624853569209711140937907651398999235242624815048616555649634332644715675334153968019036612757793854320666506256571770394267169554917366140829877309046253837818909895050273435955077401108923930708497735452097408685918992236504690781520242678511268399302010317679858904006851306467335526018120917857158034985362963664249943653421948621279750435017897201791887928408928188281367687514128957635808725416734194627302615534591419143826187303231547552793180474836195371916804664913499328848319268648472296686531169278393226752832783645948126910499692530170128969174418829419216262552091039066349496035705405682129269237635127615708517310060585446640980515997327614025462349715137459473037554160138523589366453699504831806209842296217616726935705739184294498841052262592420475819755007627362764426004412900787973568713590790960394534849796213284569260997661713868509976539004823663260351408290900153314360782464563375839749519116962094131725566291794873072918413859303126746599436774160457200691804169079062424522409551072809771923590931083841232347481426561936572016152965166925379013012850120938777699941503354759967750776955334060664616702078673176075673149441196769568916629346960519882257682963892910246194140761481406420682301060579051591070800304801892758476041262130272762811365502682061483303462637051235940173472901309489614651312914155445160158142931668037679274466058548000284657741950811953314305882604472795679660626541363631472228514035890840363325549119357123436129892269683603716934368713491303522908094625258495050297550883957010307386934613555687474666879708559891514373437965983621841032967852119382509263270779080649641046469547317807797855939430933662981984265859198754618549714385354297098052019826961911608138659710643825571618847250586011204791246120646872111054655893733610352118579095312812353579146563983321700421548281092898953825190864493592949084343509555801877452873552975057235041538506586319778396460870848756938638416600295582964798172465341528441259792205284550227096532831131548953753050016173332112875299009586555992359013003362098833897530229102200757081747297079638325356152281045781790404028184225362189326315606282406663284700613443873015322787110153175000739265132755201641167315217665184755352167754073336302823418991459344003185639602910905642305983569250461709647375290980080472833699043252500929007408211302007441722898419594724125692763956011683255898987770345123328304738952038806780275099274208372443622729729097760376991883559506665230570464909507552031912230498946965351387295836610951859184819663988260749034593418584856487297563503006975515080483573283810765148974066894079561472994482172340982430045879005888082921194943648175670990367834535672182958985936183705319991038706441701566788412172668588424180240600991450083570543037704547558738113642831628445716422454267640695453312438112985552489915772884145613824468276197969330560758630061720372882917809161518793635122708610205530273323813187414496572925700153273718483059093724125576110383586627731244708433250391879853044075752103593728650341096823205997554299457323111517619038667922267732658419250346284184993113145907124550825594922412020078005074924120068099702301607101661591609485462838316332054824532120270065433904033055018237881225895261048626368216764014654154664858915132706919400079247827745347650624607195830568900162510108374686289516568635284373939807083636223242618917873442168598477969490200281582407175873882458423727603116119606127464018784692588086031300960667522670678697465172913098105993934458231920965211457511959416504725598963326899819400447371994046609013430834528839256275738275048476358463281705302118265084031205671061718602375061994223772767793289173751739372740393084853835843270272552066023077283622436049264649472552528168228186363478640082612759699451982656353217422769405921793130840936168887729272513291193728624792435182901130152894051101761823553400231331566293359045396763880913165395493814882686891896241113929576388704318266386224524943872485771004687213215336135117923228802038118266852190616896491048897605189326728490614198915685201087386551704206049662398907720824454203140502359154142641397317623922397948426287063373805053620672521329601969889112565496447475706313087163909409620170459265793845868882742982988635328776690423072060080480837373486509472813461585609417121888291860157008943592681095210961726732529420051098184468095259397207717978571302502897090615043733724784400285188923566779600742196069382670428435003093451827751476417008013659654093527507273618421096379901144945982808349367464011709481395844622562987994794339385204472924900522692436075646063033353231806583078468281343893381407419448902376329965227496741186283585406622657345202140564092252403795000767036324404708483993397807977866042145068044100781992441744623722187802771432379622300738133219820240532610359153026766721891682001072264914411064695586728920139566307306548388742118695209307850518283066647737335019575962620671152080597705425799856356238611975414230383983852612874814805827957127740292618282277084943845396624736828303857293298454222233237249487985320892255774341213863805855737035795149614871140340309911501507274080753934376480736606384030047427710506217637672125256229939901957463358528211032534936942604192032796575356436139592387796916297862910509541371361168449078647894749036722062702982345328640594779983707475859068584565045949986920421535450231229751031254785165971966124038457278905302930282829105861699025143460224393361673966805911778124580796334443220929348002544939728250922966517310983292729038064983383831779721477915325090748959368255216281040431996255749102414737299198744169090418209731555086526498138811820622356508112292845603983044244239197816211118802797037305178392512016000215640870941394511157097499316331453708369308382801788113012319138240996086386871847051436220114865645772658166938438627399291972184152958273567769378057714056809239341958024571079694264254889216401863902338190496783639133085443422966653425894260556238050741203762863177929815161205927450172921513784891532406030326810736127461984792439740375948425178628717613022079436787500792080560384365550028834388859941703436906295043241763692599083113910126033875317232233624058131921092501329455044191586621293655402220724325860557412501107452799296353999468694027601606786969693788148981217354425830230799866345900591406894960868867982993638107112333816535158235853749648046938747368767447423044843983729429534945091946095326386586889762759587406839889089747942393778922832643247145846961053016455662589444575465855606897147086495815881513661525657722832684668463879649491412551580825982508555675998694843261074612422781261678037597236282672805096210200932796067886982952643183244489753932299744593638370756567386409193038321647407986106217078073541608462552989696379966652830845815757486143090369796446726234974906882464069901718492898693839975964766232305092270465324100458451030320814006850103666982242129813759532038506138007816699922362652808544534972439752622483698439168906578693693550786804193676912101570888579803064387640490135095461950058447228247698431298439300194376087581183616369602487775317927032883915083407061163669047514592041109966845369206044127250768866876132064096927808227823657814934298511140202401895784559032726819350494703607676252714064882071623305745485061098810169980246581332343031449635557906439682931633593671449280161399239794998445733846025817431218991360250710288406345862602593774064343749448927536476809389232189391862338085687698646685092576933808848669049907881341819833170275089423274434868705383678631219705728801310430008114127654341609825604546030951951976551514719822267451146818262320714945141924426830561199678325246378137303894576527119158192007736795605648938351799524759873954741705875115797668708353315189845473387458915738206919881545135771947508209347681392580305026541247546146885264375355015214367466405949166042008409447541048725287663152322543656984740284299969086569360133278409482820767951543401776531572280848879185322714880241045953559211037582524346716435075007506920251994875558258577508219433070782938522534906484737562135337196088077174247016105799636864598426124100685664946243970426636399702062205361468203761479228877081363567699058658230949941255855679620044202215681826175610095362901167586183216929944021635466250419725467153095036477725985223678354287129314476108253860382576674299192244213281613256558113531801149267724902942874694868097874872421910200139013125669797699456481181478082658717609754919966742215683590931767508644270528815063185305983411363253429785985935893333897514525761922106046919319349933183892793385583733109356536399484508969414427073167699729992840856038831449001832242710778986436720828134644702416595287279380230867659262319174383735757634648636207479222537083803954452169251173981341536310866311961745802340841281892919644764730576800664255803863766372089747417092157134518116098423243755141974830970764939415974603644510443608285385712728232384160075581028734129959962452984372618702526081232892747874302043825942570278233937665177626075369724647589334550954286620498342875460294587547158666730717702816698461450675642656720816758530412246085314683489111925230643688614176901001468377966350683729198536656855519767376054325188667921785425353174374433022050582240195792137670690922019463946796844042803131407245074802617177991409054587807141322990495674139646131847472106246618861553601351460233339214983573667457343418886316409319769696769806509304390667142450057060547242168344772045029368828826889503944629158537336911869641895433403864192687656938493104318088659676585325724517380114377357022785812090181882542135476506246602779231640305776134126380682594174634326010808812559050591428821462386100817274333568489112495424435500989726735309060347704231729090673086000395756730647093072432938623041608593887417270598435510233656021276360724887118088024047972665299023871624388212950002309830668282654719340604160817724623748778058431844887903144994234927985976352713008640929536687739877433898294530554087787000282744202430917066809387994229338631114398918459093569147139481053515018976645711549973688498003608406228912217713710959684732353463941212092620154827836115298062936663188093107035782269917333262913095400789771016826316711133929643762195497671160522496994841976837499101009837587485375357629619905428447428094384295028929032126458147557970148993773352793556869321515888176887676468799412035522476444715192674680760554689147086128914225767957963578606120127899291342424178022962123866089076974415206305186282186016779259801420526197332658109140617432994864020528465610381899087796316304910149375398421897770323238553976189294921512077102753930924570755801243900350382827178316874126302528310421590501609463452158163346065012751231474038762177810326494462836028009800435823750231089541945704017877369532175365819518605789089106779421220815190507737743029457646796433724431040021342351840371907559685077081040378082256852594414650060932768177738485581144279071105899562804600125888991769071912761335110603315844794541469017826096486620258519179032781523484150262989464549304644651174965601275824388306418764364462557174207222891314768107429833756437217529749785001458965983560365986142749794407480409590927734881018057725166532069334418469868592155353986192833737616761948361455508725164705653964054564378005822107309193039735716766350328982704523826007278326343284036571697590613605470802894587370688390353633674634711178492178590373424868455152473406808034176829964405580021480002545836815023205134672297259945240218101159494048150089031056157100484847229736748976895899538031479669651565704564784932882670140241756998270916868751892031075251022487017036429030301884092480555245847800095247193688422675555560671491515605862162929918892052075530971168337080705339164546381992539571286159875709474927756673398788004869097354475085712659575728132632477882552168447301411086223702232668884123418193621846540405516833927427666232718331069389240698672444215044304498429417803668628158429590542634007640941652773198611462285828806370183845283858580097427952096870705863296310006984851843197537171828932410110849693417561338090630947062542976425185307881277107117627715544386203984063554324848591635703400571876370764649686375716514012849998905674162623672743246702773289952032353238381148846411680244138052957513638258896590482746945768291669865008010092414360832743832240159723580574417860571193337355587182119377363579161149790639304579831626669610644816661750139508245833732277980502581699025689866324883059222584363906607878001171863049137339952844297597446318944972761457613056977839525657536201850040195075264072273909939172443172540957637150423786929442779099762709189808106254299391580484836420496695921218670479778886075501952069298598260006189630441985167951036067666352931287671794608480641239394391361163319156545125988032213748007044788330682130099482940216169004366807106475557305510686032642144750533811797869336688836841261019517355327547456553260729559028947344957398621214490835066071253537944992637308219205628439771402903267011546975367995773912301824231747154842287235666914202364320469868751606622274931297270828780155013941277721142942750524608702346318856012494436355154807144767552477288166697485741324353547300021260327770842678381109274777472229399841686204482814005654878863244128111232053560926595272466693558820104658135981971841728011330440069812017312519941641388270044018351381100017289453927348253190502584434524542980687225009023002275795352513924725939392811525457237642764383325531404814361246299708140692671150654014049743550947683401714256579762013152656142968100482545753146765746984513344762300564705646735748524686529826535881913872742801040234632053042038260826795926519482220405022054509546321003528836557631662430548224254600040703220883164273215887188696784706922847733232099581157196267300345711284363095916595708242029415683542734979544710939918001343427740313916650455313802806667922840755185187548563781612186194060635384104123331935485812592220639883040468529548671416127013656025787268596742959366628581037110330538661734084348736152382614844420496519363841937886010707587625413327909955112026258568222888943809228254170607459121578813835374145477841737482394529102825430009788634568960643891024971096957036514485532497115881844680221085871136699940321261221364395319097007242318534521422571933968589991060431746052706438195562026036968762796455814224980411733462714810929909083656436009702239340612211269381775820342454985310113263753703161212956878732524274328995663050725137488516581070304876613963409826536516061006362106950371412285023122193372997893809899751311159460415077300359682646740779784053853455224449246386591823374522284281782269474219634839377046249344218391571321623151286984786945526534028036691715520756752969659038793737061001597859263629135766718305329408078750520877574801607990408353511119830400195308381271774243619607217406685529630748280330826421024642585552045199022775154247230219719394503938728258179622066258718245348256226415152845241314087438257531760730668333014112649572343620342877006823634295382366399287450205932717049559528859892442177194266138405075852636179261066205073483875664928350864382656285863664370796236864577021716897816707476462726924148456231630257764329325748085791583032462238813921042904568011236855952688583083461375078739905956860284401386072621387858225505016399486634158703133736850569829669339219879925310842620273373355574083693915197653030126305170898926014502316575314666647356487201394580447154237534569086738066620563949386668881907400268766852556088293800649380200036519725554794617998981181037058792985578795241187527617372881863803478704885905159133207896270694075330566817752034718297828552568973704682444220326851266476209757263804275128241022621700338493261430405653708474962343594468216677599007717977366164508224047424388000847408479589040943887934471028833009823848142380239326838670004368002103693417716687246033220740204477948118399880852745758598826977076262739239191083829390414992110805994421682994675253982411449081731058691420284356080625078124707309643024262555031040563255158174888671213023008284421064658725312272136677562323100933260662205205819013787094819521418548900849131022381157308341304410314604521103210869437640547748513312175675636755241217458637062117288159817904492184740642845714995544700412182386471275770949611715241668912404654993999022514470432829591450063848692084970755212040590638377210105506120513439391888609104398243366532058349639083556641305955528496068158783792725368828900089863632257278517814560198305172642245584161292273311644275635270867040707439607753015507220599205481154435683284551924042320778014823444232887718380106067661330630586162252686155381559522768426545385389911655170180498728997752074426550433524406740065824866918087970944271104127859002172871087150689590359374142347942934642303567543339217402446768297391819155202796642389499374410864483078564979275283256448375192300351050428724504634578996857675019911416296104767218558590232545804337865396722290425319454449963282900914689541516693261610679458827785868160553698969985819742036735011231715828183049083561934408110591846680742282335171912873004747175723156748836945793592526865231440158734430993788772920288169660721890759800702251007587729046532165996103409101278930727762511291488704928700984667879866900392496018673364481000259881923376898467168487915181954781206620513956180804557528414412862351632560335889366502498270168021118016854746868904969414643354335296400643056404679405003738922808351105156748409045645870538622863144222343133603624641033487556436829500273245385788502368843615470715184197919051596422264694107571911006839873733789662967367008492527343775675710118311547525646365614401159115452378531114855505017256638971477238328205440110982961741774253032020312313585718739096240322023239735362188770506157890434527770999087507203858572551008650734518054568322778148830334371864993330883955693150189181521214566722461463209100923040110268464588661605360444642086947470044619713381726870209936662215529854450426684810143211561026115396786118845809483648279909056817848401637414583948779873774534515590595119581050973312108092574277577068400281757955463264075477869523855225675718829188177009839166327807561167724490168965734343333123036716369275888871937185568591742039249522078283845381645121672124536549499844743535629975050948310740606536737168881292260594250393000181613053839041381276690243421525662525179247211858856835783338998242576286677418558632871732795844314587768758143048666084741465967670874499206944503859588740854682703821965278038574750484104615119443970165600524571212197671211305334734609602330353141306340997483606414271058798704671961320335884850109437196962122870000843195647921236026528947769003593935091364668119056611289234415649765920225608647477662256042085270269710247021765642832718980903392872225151485165348356139558233733725522693038187988279886084840414710073596863031625208402876636314550217275993241216515969832467652832486035957499993488261001288472337550487612673011115509281466331872944897179858183956886922492569958381725909791943235718540599345678917212809801747673133875104675516383439058494876429991242742000484301659084111281330979690963558530921161692951833357290498793748831901293383637938613372084027837709217649237225821636402280055843494847484973390668777106603778969843867069295055019274263041593341632113299502366273130647199384218781714961697188429655283140257070609864988487620975600462350956981682292685877709318361530540092912260070348685343706009407149822584699123434169897498647730936343337611415086968303312934059449496630468964962514648893908644241969701622936326818108415909972013092830661495620821805542519261832719703120541992094994289258966348236308803199196878581127549217408776490859432345196507058908981833043590185159036803051718662332268593537000477045642293437376182658656467145770221534573058012766927718435051154946547620288251158867525770647558764850651785606459553813140559743943590203534408846841149881584751030833052375041797830855016643473238737210964890506615097426462976622474227442941044350729763587767776193418617516642525131189114829792631333903505633762459475591605189712895459828097240398586267108296232609732544683172421559498531814704739442658503237504221947740111084473773617973247692754781990164258657219377680247457292926404772146105718670441568777232473209783899085705470414607251746688837912636295115714069139033874053203860181930353650121795914112080879660244829029265288413342069422721968890722067207298225261020419115087588645097479810166058458528125559016701397536040658299974161757203087677479930267970244530040289396755455065366963132348893241220542489060347667255640537657846304677406744896639210689625591156480835908715171832759955561343929322085561983666285061652588235471043106285276335822737488283365854144091406844745309544343967298664083110848814244811530424489088174620952710625500553559013297170246663718310483216060396194549361333146933590211775256705143767248247221959174471333205090126780526894775691659618514975654656448693908927027932623441679557312363222478491803995919204101764649104479790641320598238782285772246950852568357633431265197687905385458344487452733021840932304592642115175336278019749369455641096884543773893374341041919984057564886855849064565000301796118831140558752613077543203259960331639714759953188846998978939481857513734121569313859273384916385357453452736014271135458168114749665889474396472556702242079980245273786160601256075685286573704474347762137746042052567517786264488489278325949455939807494413777617691842679692803154196069536882520986007034908038930939436170206502106910583228761109471198498524150570754633667790670626496635906756230201900482834147053769578795731960971604969826493053389695440524448511470488597169324390278863986293662763743176965453098558730032616507124269170676319017459048299024212658449833089275876643548530829634915974106696360166864192864751526841385120868532105260108240248651167298310507221710611026475651812178599799947046723491141022426710996618266168679645690084165881305114721355340419692087213850827450825465488247486081358677958100403532290041383131844453534754008142289496466088267923106997578741872683235126851421397606351473936815163267999867945384178760106677677278854756353428471084191227031922639449863384958604690330196506853715457200663821917476964495239416608727768810156881399988029223635874858694921074033646482710003994669756440379171892970574290127040049345524105916869801539583808359825675282243507647569222218698627236665951852190220422059433845431144577733523945615789213515812577977520115035479823931001431639882631799950259394456873754591179154453482485473150800692672743844237432285246893120086961925400462784337413148913719618146448866799810960347839730151117824134736167474450100536204356704950417909575743321963762368098721211532049050750178108645600195501085986217899699034649950704123180507609923282922542703354427093619383132832616423249969547859361593413376513452040519290727008589770382127745824274203206028869706341356885688310703761251713480005816187360577940039167290954899586439510377851883765563213611246845030425436821848800655778918970883861465639581031226379445694751433520223593806231190421157237553687282962093425618743287014442541676239516774153959671592714983751452446881289848331327681761418541153525373491781232019293771119703945847885424166448317182894339329957357556137876371478134856885443622230967920968915331199934203370730034567200360256593724323639490135953848787050512620576361269356026425057206859331878238771061710081176285559998458751048332954604227314411106145104451916509925885807954722435266240932343739548365324044555075048413084205362138952138678084077548776119082084423553675138233694356741766263021247787622461525085753995676951708049438222551809501110160624482905309992819428503778278805804218875758951740839984327812615079824282072120228639290303272702799333579477360839570578465899955227570632973796048980745164879769917761478664920073328639721613579354757640724409157512150345970481629185391403414591984424582484938359957191362270726236161069585626888184615098132819005971000640647405592589669336382509583309216990944354267931133299705146106797337265444971308786557823460576322198193497974841267480673335792786190857514133102525433194724010492511753253630775283971504125254316437677366552707211522538547019321678443973131977192872636236567732604310341051218819246140217961176779686548472355122570495337272170505071785468554190838891199850033934244527633054311443517655250754657647535988526128426040578179509736951023578706533596377671789922138741092124994670903329924377912813033143801296316491073224000219478955021362497389478538016306724544276199633961875771304247519634896614463807915524621114603209333656077967378505703484249987782731282906664762903847626347400301894536828261433768818131995596301025714769615665175486586287579929065390021573629088782068840637571381578821946478548206020684425037024043032093431565492280006610582514280881072614620970899761373431064118230804839271465240070593611118582767895299945756844549743128191139698584163747614449401575340461667498366613261844733766736245159479797491733499923134043483300796935995794082008290182358978360711163405872665553333086005651554820389529512264656352914241537694087871975776448422728675311453005050196302060125501579652292158998952177875543237495379144410368579131939392395312488117404875130638955723464455260622374278008167582157813475645663151019887353449765395983320698991623883903256268835602649960791491215135972807778756696536674951834243913159579271728201946711992570112027249066677282828554198152294313208561898287314439847253408745047160757831257649531296208517859698038363978517500721603378898744843152164251914227087037179334296726810115758185384209056678625101467067364063564561199600103315157983155414130149728338097226262387443923080300488694999731985951934457224360067041503263192703540105814333840788855997000337746670756507947443956181087122255072967266009748461638480003343519552913157525153653601717569346306387484692731712853427385050289840425474507323559808050403470129429504691686353041143568383299492301888098853295642718347268081281071567342198882413587794191229090549050704119872486235550617626248865149308679787629037363059457728409168074182023172175054645089224494334922824301049544323088201513550820561812454475725350092237038605373350326371544192068093001816071471703127391441336000770474278667601497468118391899486775590353430569085931559376100689204765345278168406543887555249239877516074375183501764980907499541796919067613456634336875231193948614140222941916045934226632330630672376917754067422951188480655444078163929107910930944847679764646306375565889088222986111008916570582384681331601451369133496982355215581829970003962875194565210220532469912606790334565880731297720422731678676746050544779593556423423798203574687810660169713682819792829475870358795752381812755765603678162925311254729506766557377072134276867434186486770487867816593692765486312511840719631729003626210047763692200993344693842579659863401909064627789103091800848053134929160798246336827718832502288567475027977802788711441336053376330196434679219282886739418130765314174705830377464281473466464530437316024022739394424636017484210847757376743441856382964516741209859045181123967925191044251927424498064287170898477464060865257678723322128932606131161608243659852194297236195978365159723954443188071061119827161305744097831869477411086435629462858612994611354914929533991836116755501376050135246912415740828601404392288879525175365185722772829556489052893933660440567312433341688525209703861770786637579397677855827299854165402318301516025572925619433361587599689294921726733052768528798335932121375492982429585611560566030397908731825209648550530943823718804104362143586920950084206565995144313583695030442101292497523395384417285409884784929659517351714201722552085089110720898707184769936394666753264640772240205781013461287919233892196294521152009906690594174332169080285523393115327956244793346422014235479065936749366718247666753615696448361497706915724618014010739602093550118485307544980164718313874465078827717777730687895015423864556193441119298469836497431038110422250295879491679893130913407030080952042554759693757465102008304266335217812092032509496593646042692623012596846414349767805920991582701484743207585669434995401129925409114337148618312804829822762000240047108917824747277145360568367621411417850421022370335875913355496165485412160106052117260265927469980969168892124315746722385855671758288554466808892714385835599904729093812501147991320741991162355901016341874144013250401003103457510480657996778424793205767626729955225878351516128541823697704788965735926717645281840889439312572029064653579539590155256193342844866148162817911865337337319362307095678567968835550682966586327313575452585817761859063827867666743396492170264951332141965718378280654011738814045145711265390083933842158610132321570614436019824628933866656905825286393497928017716412132950600572606303197771736248389227375931821354266282228036299684361796368800441399876092179782690823234997358663099833884161734899997959282472933161827213055629384374004411079317550756839473248989044055062907009005702326751758589599900446072418746164100352519571276160361652556702850380031370892285396638036365539880206514133703891916947109215724495152215179786574999097294110692517107781087516996972003986889914260301960908060121799536803005671296596174368645422142637842938405710350896115269852494257368182677105356589542153659406426073802637463193753665506749663954051521966745471829711819952577825307606663176324440407195531696385114716315556523926962628740363278013233975263014351043205694986113625089336227781116898108710712891900878989413285582342117424594225189010018536400945351539712955366628332256003877806200001878708403954541971472672376258849198452114715045008809859140617198744920428844489722114166828885538136143422862256301967371528364102830181702568625843104718088807495268512560087815378975484878701918225674349186357999270762849187124749682402590523600934155369867306311010085296161055854120960813546882979259801796411718773209482526231052092552991213694732802287687102646491390389744379527278538571677946772979774801533416179602200702828970561497117749717564336805751357489903844788953988492958714237134013971303908162186728154596306978949031237119887814020964302386069081528038213945293470265017075323563458207371724577596293326145799620588297273027177024902505291345015895776922301581761307570667680422905852184481428566839440115662886696579207634887719149773515039831822950200960642728998716636272356634885153019702033863631422474967624873890454724038971132150630266430706612090845111896976809563447176830528736678332333945655800336093693949934177092575219590890734182072626585758696888821917046226314936777981248827691721075958206665452211460462104858082197642878264713960366506420450745020410201231914874421115865715286804155906973642023028111435723371054534787703436015201756903753880492840207097136887163291024293090313557002937848009068872277320207337295236790344880597467960067535752530095836347875097689721926333032656108170933047965478715321971171266171329723582460185604206792407943443934116442551278411729276579921638414343407101223539787292780435533569106562454416283906427429372097852420774778889279842069682011767863671303986101667805332634384802236261863645297070178234755895885262855902727675127049560799612019964460260073672945981157519417717190946565863312509249483206758673687308271312753326711953151478119667187280686225033590618783803012170127697563869428353821784288947589586672736085181929952671329216915379838487791092225417583029369933253236698030625873010856731533424627889087446115235091903487121572849087624218438351503912243938034645884758615295919411934618849546294316101610726439456385522092566129031222386487572896330503271577990442222459290886676997431779489982602843279822380112710470178143604724889523391201646081695210980118387722142336180910261961747338503682122969697662996592442989022363960996005475992770377214289620456755683438508201915774535366221380677501837696319267446012543859489910535367689858281664572738061716922531165617018102347268160654208944318601487825615761226999982405831450925343126575675271704958854453597041816682498073450524658941725478724319357145088793915579851158551153621577899730433574069056727584064529277658458617964761588116742691827916133685675550335910637654518843277005780774133212780217350644946078689531668223619970145521500668955234220755161000074708742993413325790012346989281040982469615349043822909153405823545913457457314169814965605598354291299269503775586679842515535572738990198811723819029483740022070669483292027068464698622439468137410561214535992191101944985680445390134828759632754904800079941737864482063350870505375026380763808415733862810881733007815440641280075869871298802562258142624064776250606698270260139992069955241620838231019119124246587392192214330701531197969286261688107564684530517824053261900573254827141662335512475341081214217610184876469241572827859777954426091195616714347784510355338029410801268633735415031629254536760326331591765389460580217181630712248491646642371693191568822672292543215613693551245371054820082883873334000050233903021132707739226163737033040506257670469496262245222839159112882280950409555459931200431565631520600145245466830755428575857764134205018495576429612766395953943219598192887122267635371054193800827150374633308536231679344190200746250698632851108647842945839575370336159230144348120769723110253973145039731969075751692491277046544478394033599097603286464172272520948356592402161447819191387361301923413684243116283000406284607588018029511581103012099259063805491757113954705009329514813852031466588984393909388222509946732663116593658352084019432772058627731273441606159710343767553050690476772601614536644479595274444022382803539339104274852424506222405487833762297337712943636630435085135096651856321034391519891375230645799056974738888127067517102814737172603989873164450827707574462923916425495955217964180924339779672381541139309619506834563190082444101297720889881111998006914032194433771369099677630838187759811335782155910123526399950397702754098377031220847147477188242870958839685523384616386314230092291927674554095233268164233527638236815820396860637346606500731551025491071456967754484810016101326028324979611775999630561577150981713706217112178751061859846895909283580155190387284813424008504416204678973530954520823395954323968608594206471846963043723444806556853581047968412741883857606724273493284222075586251847527334254558302783116010446607617409278131154155324556715298870271298042344494415912392194294002391455057937639555896703349665930705085175415982637176489898148351065195005402460656120889791571561602941306568492944228112271718375941653184549203383298056178699568337852615604851598832038451441289229355479162476884917494417352478025815760938695006020085719222599553045266873574064006084834051143554278601779335223996533419117720845049630676522613331876191562634252874428371668379244869215787082281152226001575355395783010990699614783125006459614279038702991502679366084450524406244762072166606264716441060358534500440901539892811711353415601493715899756188838737495854619181036766452682791945875561752291823310791519327945313978606134907500636708849021828182536838848165241776746197384909278017244690618215725266969140643163135719295898949506320896728077347352933585075532325274519742422117065172202625204954765736990497304127154666381540432046313927790585976916440423149383076886052756983044621270225104846396301352854245756302023582917311257527542612765855132182837365920949489078183330525700044854419646452027491657216332329043831417505488174082507247316595706604585914777384486564286529904335830466129969768123421532247144804114418706362952943268058789810397259865905285586987347552962023234758894474513283577083633373038747217238729768452224809270103142910399878414078387515449939638669593322022373128954034730518817325872402652414549803467901021104349786313019209084694049274303709469459290803631223774708235654822512192429771418041605829534769080650892175062702354387104546556465807536125848495510706031036377719769070370549749013641288574511856016096199068135203781433949522046367899702323857396132696431019839345331502141911729429690254807918264033185637621269339838878221344015327725995843579849290456948911343683662083227897218549510040148809601793503740859792235693579675368656212142010524411722910400465297343421776137315629609000768402550969976293394914952583259784521598409198666428776663071646064235597079961430112785571825683155554326032060165690213742298677354250281702020907716029338802915802794581493444940979321402593766818636881046602313391174282350611085739349949534179901397056381468144467761398607386150243255367670988195714490818616872796307960897875225802622151976687112318395386730770309733382432825094050448800501544604108421166950883814793413945432841836655757116899540654799749250869712318294136093885945348433399222191639703321084146471127889669897238032518796563864746974364196743000911110665819136483407402192203841033504205543047723904441319939361325822471328364898321725907584871699273505541850972713399735459059121084212111994776778827942675846569806300650340485588853195993965767851924880331910929619365837267773637759447266820097084678729449925044691064018435196523526604368027202254678649104038877100253206991628906388885058404646930084596286733795030542483120760008282712700154189908277107049308023308015489203516353960019865739790551641858143480327201679368499693783619781321768670474799571691648617024783276489971274702445307557085580975196146163015381410152934795718301303295228786174770784476195738317847596608703598305991534465625359805061935878778203989877802534032942306541819923786564247178861998629227079577870060215769228987684288613538284893785617549086021344329936916558945393738639149363091384508514204850301106031790460584822506460932569477479258311158442663899546247113719165520040640810676743677981654626240207217949705114368304298245023943908954607711506892469140615200531344311463535239020367289774479632265249479282788023631644252598653010933672567975591958686115248205254947216966019271320605359236255596700699601275043147176055127646917744226050462816043820132384897697764838752894985292082832322479454268074952177669676098643182730922063281025141138488437690217269796306632645253945366673752351643853750762997960541137911952918539650450887634607164373262447017751229010288580723489512119435761616406946946458171104246583078683429357440312964643733154297143958168269956517278700456286823933106433487601082568404157433581519624395279248509952785627271533965397207761925227358979197082806625689031370802956568456921817462976615421350456207597188170297117893825613526871437664938727520846752746738654057123737216713394452447338939030430345792524844731592367059906294380445755274317115366620284445814922631484449797121812658516434304203988110062934311911087192699206459484681977348913883485765801220138231735217711495726231541004557975079619792478761859884943095650695131474578905624542240848682734707302096744590805250770573035421104088625098474675370581973104390655295323658239934408438463862388769949690904793275215097239994393317216937474209976307101199123228432497700984717646950857925568540968166732340916813509479988566154076297350894782422438303109467635679109744718308362904846121539688299318977242728693618555916777731988130125167371617350877230966595006597677083175916821662326627573998722560861673657877293698063408970222546840536539063958572068415406698303494827301375816984906674118204974524190856642642664633349758622615250557850967786608453995881237157403118593803781261018164479066604640486260476091645178737530792449431233605165831739465118312684937759767114405805159953429573403614933925171231758991222345363989557037037892872037284307795978365739844536238624726461820359554889276744723602192957684237567126099030581871634150490780207077934864759558099194086574482515827789325815278403416998643582505496699386120237699134432126035687346440185968057399373251484376598231347838310667720301052270006316974294059371316960617189361775133997502433410722561456481692046831889860702070172273353887439943734965002029265420662188039726854958265755408516208879190721981372081667925497701634020723223842734266061314050430408136805885136608118647744304548073489333926681350564664570886465542495633994505881513883005992700590424239320617108335136218399559385890002899482793835091749572319944187710024925771806336630617812166707701808494570953555821426949526082931737196091407644434819866552581670529397160551092403803675316223976826617693936872394715740732446804222595087868873237305857499724969869801796431682396540500325346880630656894662542889484835619241446815536115643056492028035792624149052262500603226456542930830625199169106411129223246319989471608394756519755728850171952678559546214804189228272296288330184765843035713662806524166473520096609833272192369722627283958784504617192578284182433299391700951799382643906952214177421695339469832073327910158147939230882227168092882485777124451909375063163356645678912569999497974369036021924416540914284904165943290860202628128515733352108827198879771206046346739634413688205343921214007341342530319009330332861616746238874778070422598647925920559205158433589481794869951265178182841562467928746535663887615481889602235830616846510563221471496889758671994212272953029499547226048123798221492134262397377867849212489008751115454769332637627527637368642900123247518981364957941937771350920983164656781426654587228172562367003678968952425226625089443493858940842467596055814328091674791586560257000563192259287411205739924505141155840412936874020611241874206760396810331564370682877495263035879774536304620920382261759634273294172888001898559264338547320588681079390169276448192683323733940492208721849516988479716599065482734218375861670800758199464950007032098133585830191881483538396183879329862553881072117635961723072959081069691427456808208416925538212330934988941331068881537490663716418670539144624454367304013408411247627171316432729587789266568389003686541670000416387249851846535221298573524373760425807663918856909702063881502551506452501478065676874580152746114285231607663183840606507483609540923452515514928524809686647143466961309403461344733383287655332596218876679879589191127482051007096681815613053532795108128919329188517122484509942321964192263157163156404305600897877245989907111760686378016905221257569236903105712289289840445545898012852308988177629545621871834018022958305835139827579305514022557766754793093349525286614481084095362205494823155167555935855911881008762361911707836246269762073560227464225260580843126098149161042304400229429421078561220007160265086353386023832357454659905712616692487160315979954160010894541461426732801872428167053775553640600529691590019778111607721036981245704966935849076290921734813315620497513882578989260967650022499965782548650231325617726085752478394806669589079314229456130718771956638768574932453248565275786136094856867523948858843966555452634346662674565982527359024640139736334903464718589925634345995865251491499700313884788428640713194865713325786962266074009287955250253714150621886128969532783831506596058526325909570237343692855741007100028890609486726308823016197854167232886539041761662505917450191094383854821127397733735370680635621516056009651160535348196531862427449320076634924715889686757102859515197854182460515421344762876551124533954029128310388340856236088134191009857479035528253345943678976109643756645672948175338822964438035370827305982617818079013515011665474122946549647881133821048266284394525831824458444506576780123253917625253388766136084589036507298364040247174871861846900650821160858376182592414529161952264257018334153605121848980808637000682497762702133497658860054956173235338489984825668613270237293572317970381494443629391652505798513991079563628021216600418780887182830905978773641891686695571174753564578067126987999925563853085075230088207825294209747922985721007510303114605643887074698076500784405820180902953420523370565286623781423647145814182702963934206373921027304106195616244776368233821861524192814610198987430442400871025025173947263258879239063021624393794400771784988860845370308222267510886212414891814834293889506563043420960765010840997149548345568481956647608806462111812467027835726752381652985461673721647753681437513407914957009206722092738668824849875470162315540880868580472320443495506812894468710478360343351165301672782737797049308379082125224511569101145790577903609876041060156766189889741695318797113012249823720359979525252443522513259777404635663218984124364372795979354746009325800828774732016773694266687624378076867045018772902477985581979356540110480134955694304436304444514389045636190646995634327823127616528148399240024235801350624801185516879457301321468460052732331220012497847724007250005134397689643347770088649945864503282187738586423746466857582720816989112587496234147885426017392013592037692802483268196380345037558744090663959338161103016806332869536772846425249801423299261686356968869023085942989305185141428299449027604096334583671056334178623154688793756685780186659546363468593063131219585573923791220432178661841343274794579280588246324609954456602249317533710301799807795221697462381472712978464448260157897308483787355422280631463135806135903622752402256886256694606337443726846531113035922652840990986297262223496473700978772362116204082820794168811147544215727179117046713549590930192928938527025165711535764009847338461602134113054003020962496788696886494463079541757801819543487685799059824967359934080362960948178286287663515786624302484429255495443454124128561964598546425304247979177764559941966542455675534406922068717333349211180001230971752800857711264294084565713865560033567525890910862770413588263145426603995533553242914321715611467269798157345772435944797306636018074145617509042703360061141685536929563537528671404331741928326532188945593689647344715213658336384724268553770627817809675606076472801511375484816247771322192077522229299996517493607651792894665567247805880701872133852957529624452134246251271883582699697142156888696974904051841904831215237747672578710719198143650042630833521927926443215279664339518188468417062377783841813359575984355674392097564650585043232784567870710770007353050231697461961945993686856711113547493410567659744148001276985224309906223547121805422258074713707054922647087689455891916697918364365735210989097561419638972734494054550867565995321135976905036389064599720632002715551851742310019401127433361248418327694343263250092167713463805180539295538804428966352460235643711713341489386561024916441243380422192773472719258575725845449539899657725720850622587541637606802131604718796305636485982672839586481286550026045658126554963452585327006434254281587240482371656138217987871285390282254833690292196504847082995896720589201852324506291180503041005710137817967650793267803634627296845748041954812002896079323698585306752698719706021756029975961564888354709879340587218334922065683855660882831057097949095239498888823257384671228103470811404706632984180227978477365476213828179638515430814081003743137986674340544318086457911032894752085432567887976200484339288985726892201376469867983941761691383187185168382497682412875007699859300974506270942371460519680193440352396480962198415652519095033495637382523445759262049597811539522038788114486660536324355181127253404191325895189801632975554370677958363309209846695201927376594337241189462098629404914721770666387503330384200172941453553147745628212411316547357593110706497822791160393719963188701480280637296216217493041839356114481284899749500922161003714246304705265053084531981665555879341519842439555652158134449357075214357614343673922626770798614197659738450052443658629858890151310790741406472984887301101434205383421927796141518365107194912795140121799952740850252099894789043297634113763399976431187364996076018057661505918644462624058723379670392659915928774292221619485529193718278289431566063912484112111500751517434057309433162135120969193069046596991088525008202311620133032042573215430312934855075784598118068439081283035836127796133151333054547249455732212210878528454686034552010884153974161474626576998698108818013908409357631321537722798498997486084638909612403295479216599912343418790626449727719679473457000066734508324919593545393684150792277046474181564377013021995655446047401101258430506860984763392347450024523959630654621968019137445707581373758131998781696035382745303515909186767478657347590771731391184891848207498281803785936027571494480253703884140740441123070665821720668361838824216932788022719328842123002911673441501231157591502987599743634436264070946620439286225954724778862083376398680036192875034121203473527532617606924555099509558432806704703499444112945249705830534868833183497333769836334026466309303077832595001231967464166729360871487617977343859800963781515174322227726839635133413036638901432631458571482984125256148399667993147981387952462498538510042914154542769528252008466134048906712640270166154761203392153350462485487574042447977342628460190492244523708082990906380755967377181339973994759546937695514031932216818960430548941251997195575741114361809710979758709066160442245403634130749482684798104998553874129359938196250316967043931662606011303671275178508684161930095439898706184652874024202458510751146401690237171525999081464384701666974697613542598659143190774579065760938438622636481209640878171850981157006207738673015688428230892204454651127150421151285707145970477859121903771873061430859644920419503127529262209380407574416703296935041025310347279141767483221700761055512976460575608319193211839304858558342720105524969727438491208705698590489199851119934313554362700813247212878474376233424166774763999924514232239851582987386181017636063806672492767231550800025600069199908085135323152728541018132079962954352295435955255414585697513805863288389019176674535535370200730296231764311404740671904097794173836409402763499792582851116292401366375146888520607650088563835667945763983729424433568722348963680994296333856755051140260976882084268506995411821591834881221370818875722688492985884522240498884200099800722701942390960961205140645484772622962212580873449294785415692626005265003021081924805658706553954251646636309757883230984846563928775164603892268292087507710544639858815577469316526075544266006351392427710972011991856366921552508779811940297257470270973390696458195138682502175228948854840056275357227711751942854433232680569010969764085376475031901708069137297396506319525399810559519425299591039832665916442925808803084952478543381109503025529873862790882895479162096027248950467174372068901606673698076255646803796489873900094351019787737340604717966757561913963201590005333801318729277327167344787938257432303835089041799152683166179543878990780884723454241518612627748147630605066500237432941715963284301352711151563383987745097546370408328752752561573588487928767542484182332893773179624849397246156761416122523088393975757205311321699535241191520436417447740722135430104670459564847567620845451298627622869859330520307998269199889790311916470518783622451273945670626656512298245973234148656173846722128831390478135665587685792187954219253147953633949375403580841835914691410011146588727996747333336345161936649876363951821219206447295075869408488902281669294423148944831987746984837735333105623346876236529093007319309432060807997948168634939714861736911944951493632969544416986322757856925949863340054598254529761702268085980910953607824058156285698702417674561553705273252283611201042262946928623974658458566882169915823241087202190722505410091868004109567627881525338788105916039371772424803403355729991938841555993755936584510426346819496988894224077477563808606554190531036990514932949233941940056481501319947866909488780078839668550631691711371067122952557502403330545848776517070805572308604286089066778690231104587076187882748278834883837706110010793539020508849195408808110118608820825928897347356809270303521668501362441379274688974615133668858970282810812670770676377202224560144360872271121958442633351192389170670958072769541376314018510202734570423346906079873513080332773314436561445032358868217270797020293838105766001775610559399481775884892362578300524713172883321619607973757213730868513046854977507567500093945529506514348732630729265143307362321016775638276737168486422466108620219411409986840583809776035878619602071677701456546108231475542642024132984642553305526036523898354407325975281085294006584134714605067888698942663345530192395335894400994476834916361698467017366450989901923437799317410409692698093693795552931341565560377938412617694647623676481233653243943882225310906236717279734741605369230151713589905160212294838052265261050184481000459733425040710520537779094324376197472561306820727211495962277653817345444870622793818147467157464283445410782540510200007834131038744774252065756580763570388131875381012562715934857383097798917409265676857941601425118065129904354723021858987931533268859942205957002307895184467319367969890025822175465251822181187618060081794768218627007972876468212289511266316213326121180383562921551985487542192344729460540120429458359330940791092951530319335014245125529296488832261954500225080746425456416727993647990869474098637579125818894676890832680385971862532952089740543740893331091644796650150887331072547179805945740164163313379758334196962095532234189049391589599435095654529078229813745827824785740530518639581494280301751289012434088424126527751051380973677916130754013138391360045300501578041102662215367408769873459723143147568511068646095706715455128335168235804115298988320011020942246219640504084762873408766109835396788733876155137714400988963721339097437223747859377566892734798725140176679397024648251024760582497746647788749039612496505711656392462771561099950235372860748113162156291081901793441615939339373807640898335334453933909577572097657001861297815528316148362541577452897182135449398536647278907073803126349343922439847183512804876110257057337203677361435681894773005557623300356201346995899244228457157459466939030372985091206740467125689271463273912593040931186758658861607674625688343707084522994919131068412669836813155294888434418134586429041045409095098349983638330886435136618429731502922208456040757261067876354680223000176438676406009594448087463166792730862957845667306390775234873004756879103385140162566466864553384528440009845602359719148854725126794516117163191263818032404943304776780111680797914301234242737239109657497070358022178642252667945095665064972145338812468636904707665818808235331330057884527430287189426332532902673889216008431995571249259532538050926051707012819185813639687857718125839165069246435986146793162878708137267315438147139226834542063689773365633403982478467498151634494835108833015974725973000659149065493407985718072360642344336111772815833937838694307223454565782861368877562979244144826956975951338120236459777600207308861202829324840453472554015578466871955446572141953727580771074076818722470051597195956613394008358291659376951528107995691782837855952699667042113456042987156931607647470634667395249504184695513032517326485185491984106759632182816541152706472775508205772404736438864266799478396054763251344806868508825126274561760857881965870730715398378881944668471220241116471149552714579146066366398242708594613384386986483583222388823340169349462950187910085783767896211177668407191794838089089018543934008300475577913494183339443270471964960310303300165904227308681846412931601935840508999702266993417101405777896319578443186632530091871942456617457502399196647531435539167801036522123692103634840383712799807488596783178941947363608207677558502567703217493877009862165223963431454792926877707340638006462147258087705458680015666369805469784112106688926541911398241405077825178160782216515331453845351376035460408704740027157377396943109109869011207069089306961063338875956737916298841840831488143781955395264106932420189938130591831507425223961996467482595561937079833441768440511065414419136335432081623927966425649857357147330048393815828124894680603301577381398377170567999336311060341196885542244236555356488431950392049644307054316138070484920870061664115838703733129096895149762498642067924568690206140683745695199633281553714177013475851459681574734482785974068527600908323465122594767439566659169733671850988964862108025748246755757158303296003125027337602558579714768875523189791694726784000222336131546293995435451382869806801992330545227559809476595648943408317955621627331508593224599973157623187764907765282524072032284024839019836918239422358400844175140761069732335693049771736634729274969361522879020217478334488691478816990813166771889925110826145900248047805284945344504324361324470969190452170488514086932195636323261276750900014319931108258530815367923426696828987348877582719917445314879700953923006390161434976065778672402986366533808124303774950953136716084958870654249276742442933571790988031528796974797050052232050422166045888293125846522409194932513952807656132930180256966893762072153144959313510355267877433045234933111308951998021706125270784340166009618784695989976494106044315597590595161920823973460329758151648511451452581814592992174079061175585329398528222209800894504374859581602040490436478936159848376319843937396173973135585574852166537673776995526310469459304959983641303285985130681276887652311504688225084827628744330245104556752526115886573976145013821285982488240012850878058725609146905213871969736960909289126779465956393528139318699117664504097619155516547125679827936074582525465372965706152437037243729762283443689947355670154303536681788394250252111930021954113458032421960118359243494174579864353579285162364849931541362547407709446211208309782352489978535711659487807109114070054793490502880813472121968759188460355651610133601633464444437028891293506671004465779737357223418518768124477407933920231218678096658877910440311835728639168180393159135467789056680970422337045652842259444394690115087858132414580309815410678865802949322342466800765967940702679987190909754852464248739033937797670091755594816965833623410434829339832371460632354069478338519198173114835848920436944044328125921188973554906650523929122362438782971349966882780219747523420477795466170067108169800021174446844226513726940382518569395197380829643932871270877829564679097916621875291724323024057673893339463504248185103183362587922662285953066174506977774180822686148512931852494542894495133903770849589257530613479802903467539857111748748915146279042630458018830555109985540143963776732112839368660958575095417143800588849028486297761173173940137327511342823467573421209992801947762563231918929855219453733343661703928727829100205830663666212390212176608552332118569866240672205675612844152625944805590176389471688673663537368879396161011026689960399734395041748973598070059259052498734340334902270160181349479750370355504485621208001323121675813328571776595021085733758661617878102332720473116484717507933487864782717089410819394051453826160830653698256443442630661149138920770447514410677354917943790800232450019742575819018147254736175088396994804555801112952967698086114282889361366570796955181597027413167674664923800584997198632378319913547155795390261490556973124565507388372095297359394343124360575372781171042812728214581083531600091337449359834234926005626029755967124173205172571466109143839255951740912915198426507152556654707734490992111242385053354938466804276350779180275953885023169740096717399556372978448033537260237478553935305631943326361183221974788383797715255332975331674988633946347995851456977602882980853705361775607733685167168963655486127360627579661927739592047563383167382899481468223055135522650794345612813146727891307116986522560444892970408058714122266158927344334175359412413448437745336818183805512820599622684261999825391801438696636544580049903043541892695098167027684953431133146628777828568802312597875195953698425642412634745229040993675801361752651031646249549361314796410046478068176090601926248186120507833432017567621283582378743362725759706965915717407501148596861145657791032141809929509261272782740721590341497275386151819267982118974984439799915160973160278317880186259930840327736779352828359290857257386122682758811786965558177446019307256228101722518659070995484959216272370307101099922879727541083952999309992959853232161904897253686652555099068372227491203286459706978737552156859450633325397884653025842744014690054173838839412439203832046782398362331212721880205176217090542161071178424681668485676286780582772740388634676696639374220379274266388381952532294432490134899842401003613227364626056481981455009008770552102867733813196571998585579586752302918637202622558682468078401563233486117458175852494656162085755316297206951814364045588345635486177504015718794899156819537338282858798333701494340895518429409508518506155729561519970976107247037575298014038574824658960851707841987710373125241667411221816243470589128743554218335815640108617311130453934824476323508690641794691683327963952880450156697824524983083341617884086638875955899786317830418094300993610815954015848608395160213408129402429913679480936468325837838959103393888697079260517911996516120283976422437937476628632410726441244427345534177761515402771399648729623327056412092448616160719624618958985861958429436014848856118973544097471668592364759804312436964812415117355820951737935442162369693529535795925160543990792466103873572132578268393747347086009968688344581313786022116960116731556504680949604984163227042047680702763504977962893374711425393018155417994576200483337594365002781951888692249986657645136383675373851855907252043273497665489146566059475222644374177039897572954105736952129294762054344725122336928334454399057606789508016599382809766578731574135668522810323365700780607354616303614368420654860924492641896026829720141643081669578040875668502831147620619181425824954061354498049571086060212105399938485472918241821787637637305686179349380831516332097937357571770852225321625802074700420406721383301412169760344208201000199718209668376044176997093655829990245321012145195058641236922805971846551639719811709517494839033904912113326763518508516195768293998772603595779518589917800807666256575729915156303560895289584191355631650566899236319195175981999451757332873657638113738402228370761542681281592699805273021766802345651057646429672471419830365252664789186151909238361995191806096471727726049968167457772634969735367114694516482467031602657073598779663332948859503857788533264997605622150430145979671918644347625458979558052551663071584665376913183035448453962563921751527955921132750648580229890162758432468960138460752637860419628632027986177158459913884305767877643367794845296851387899780943431240082680427044174925260262080707225357411472105435857948761020897761214945540213810061204101532101948266276901131262723489002377711413523692559229989315427548583398145677279685601469276099069695207651827697054399889189434040324418222847935941763539835680905270330260825748750148089979402640057383850987584504324674227885263619707968306954278409058865345692790544841946616616830451703801464126708122866179760831100814514063821537169507787292674352928346431510488895380345833470832995942611182154863113964800263935461650430379757547915772315443015731205704695361635562275937201381113193697484886809911605835383874365081617419476779705224408061272497980796231196684354581949110961202538527932927979945652901803755853154133904285363051893784906038941271155050262133260037706682068748481586425755655648178163483450593443334514199509849120288105314850295801566935984933581466783174143640752269449279308278359164224745217700733335214451228764190541963569891941438734146818087988057051824098067931562069147519935830884672915704613408319991887769399540973366746362107757499497164762836688987441343840989175999969968859310312372297236788871747043543815832850374809258814051924176491393661447587668572473446765486610061181673177229601275559247657006128520077279560084039486105123856379659979502736062131085727129696505883984098339816933805327748946969688857113111136379079766428117387537112346902724613674264670837184019816884168322487421635827879698818822986520239293826237946771377638398590559915223185498971684052938173956378945716267541116217341718986024090704880310001541957833980906059777798625380706407624260100461601604757041208912880804028211550570433876724519327603745295904366967535414655480327556377181866784742089307312325792521588911336812318785988138982145124611364957566219659382397652013270210328841325154818797443536902240408986672705318212467047516696835192198046168166983827361138739728116166816856671064831517936318249314114743030425324130565937547681155737066978678770901655946569595985762811665991169961017882992206204140615811612759964326922900596058115239640217477634896526110623198564562034179621002110811277692993208277094740109521051290797149228802619722605708469086405022563734925714099872424673691660434829131242000723834552303706636076378842842566203978561008984855529330482200057145027106118502580608588087705551745934684219402065040105681848896434543263539506314931240904216010556433359360975732227410028635807481254074790043146005358289868621526329657177880061319870486997060242673114004843006955157706650384191395736534273457076569229297396672640170255177018240184358836917647330948978672291888723823865778288048717765332079792451241497215770248461938053112628201830228288597504602323124332438080227634121217121130046286984813866129826719570320892345798271819780771444673604408211210731550520275386641599140141726580444279122481386947069203418094862310273438057477089707215898508451255157920005345566458501934994664542258373149474559994536245375876247776192850661167146481089697043145793130654907419832163399470411258158267069463510688314182308789113498012471384804056036787431361639427687050908508413638630055891575786483803185641428042380954450516340243172776059325721605124390285049949766844196512487651608492532137058110837366814005875202567989748003292888646141729149877340388131004313401025707923847704872409563051952471841955203142149956745290869194441984282580165330744361567199310319413913183287563980873713992715324830364722319902826639126859902939581840164376318610769636994522065441391792948849345003828874242401420955403566360434817917090123199199182697009335604148894967251566408655040816555094348816319688481344141402334107482159987986175566760245890219551421791067264390261430324991135165484405403943172364998927392594378488186663433656523152260392791759758987378638230983403661830324615540896932991411562841299007495372751329127507212460080126083084949432088380622509601609124204071227422432350748728187902611742190900067094165128402665691208258823513473354417638799842620510116338176674643230255086036628461707868816907180147135022636102451768440885051189441792234172790852046812362095041867032836809856433960816824413751889757429054148379787887884004649660955741313415231245739178062676871654627651909928825342506882651733906779524584076905962297957012381791530542110387137846283615596422443853188771961731512696924407424785810163211834082215064577513606512361517511577963365410829724533652143523595937899290787331666556219495115987437531612545063982840938322677209476654329910403739592937239579705021088212615460188968366587250146857912319883049351632794901391131278356458102614557918148802060114023381206150040863066318152242753973655066644631426329289840121736900638793565402494632029250138922202077124503439913610568612151153431356937768997747547986178091313815281859002787540048405106448067652032861794399591957742500791722954926950780577606396379949838192627493925409608402118199533914616863098412670347644826642257985102319594881051439961379213485690348759441759141666643971385167702414078687395866628436959120538197577435119987798409891131551317354821641266741486354539731420985704891987396259844405892172396082098168910800668955987991339235608665929044313825824707140654485275466104893821492206451903114300521171037638862496508497377451447688374749142271573746696542138262122622526375718309243830296231085996449054221857218174274923768745960654355080883271020863410311068670851884505192913722332067937301561236764930579138853037019503292304016478926385266096460771658089385204927948296910115705700410517155612818011133190691857572082143284198146142817404772539452104010851498206103308044154037365650794913980517931375405417677000114550463698463336257094671606869229102207985375592395331567477354066876312381406179911135308445031375994479347717064474609537583963107711487306749195999197902330387331454689091732714976965267861262355431224868707478671429762173499091080905383279294219270275988039261965164421985519648527800101616268421697703409942885047722441688712187049196840179029420644550367896053943331792501317283665554673921998012950845444625500777454276547529593319516122310144653619304533304878836054008271989074391789584668902732987453616665015286433858356103577851955435374723525302646420926832582520366953920491215771581039534918379199341621184128750454524495473391929128290510798164669212683153630839599212289101491478518502982327370921150621564462690363772107599771720820653795446960744097528074236606936342441988180966874076968421569638865893731048356358848784230868468237826381791474653082013117157480618202823925553304493404911927544246669351276488298700610685621685206818528351888632910292234075751970813180499534844955550229706468727633539978836703976262266861475796469199836772235133541043910348750130646992253030302287036428545121245443662845846868145657132064542739913813630759560876475045983641916009275301522095483772351684650766100457654476944725998347144876902416671845141503432529413726384624273083994865768550966363116319561760880318682080358154261543098488089641305266920904724696013173675624989827478668200160764635453587334317251840544051188188410373652070639534927635353315816357985336032295306197694763985731787307557384878553158874988784975532099562280125150276768524925348863445751133649900907933989843224599572656346406019725824869783329483742751194516956982077772102736393967055970936269472746326139267090501822154300584210034995377118739336202928482357903283490039856675753401606624732078347984152753167309744985040041547628777672236891390719039934855895989237405802107995018690735570290224520874464308806753976748706016068136440707106102992147643802955926382539431744530775817929095660203553928711774542285451706690345375401240084112924101465636263241168902201068570824809306445839385129363832435629068311262018619564252035768672002891499213410285016943049768640999631775195711104328928794798357694450375939381810186962300597628136833834715473912092660370283651621678254440900727855354152817378669225913383094571312222263733633131745323760949731530507030297749571095759396537789409196218492225014678786568553621720483581051545521419129560011713299802629496883480803656298062178142481397467924637542615092883309220695626549454085932665961329859824166487626941935743109983492132920211658160844181250892737758756665506855220998894134202142997452163712499992441882427284739148638428434436422489865715324746040371791476050869706994647865934261735900740863685690681377683525544404578203178180898211125578012611875363998755987813738497278049596575595861908811039493691780352014477206214108023878057089467930761525032213664138304631904370046595394109741221654145184654639716431755326031327066341739474001563613537876807748657098973588602778380588268603417394210109455553972575870489838807710771433060339078849009408562549596529261299567359671776870690922233807949575498895917129424943431018289748179696767596842253211770354265768285642346876177349938409785216469233105353401050268907021955348378369751099234212045209839077531529179672380003505401759048778696251267274447882814938766497465306382694347857823042343245408769122649174425009138280564016369020569002261353778980993866886153468899301933228834822934034678778122043352947638896455544719014090853284305333578459577873675563727643013828652778790320405005781602903675305765508578905355363736250726505005960037014173175942548437916784472648179199129960416944608191653636373967154448064805559711766624418718938404970875000217834599159802235447972145911992089578666895036337611890729525092639637766805163432827521149471092234862527145166769242765188457815258319530721948724461037843466880851993397789772999296490317269283531641456633485077542485515473382702594242927937491006987959156720990196428098723440895396812607255301565464341307711278132848526242327729534288398025852846709286476286095838831957172140865316692598028101631251617541504396791672283133423945340932374527502677304871975405542976702194547336913699765038501708006693299861485698335985824032001911604050028758056318102426645609738542968557381519496489946404609210455111672008045220408615061902193037908917309840052012911529721194628909445766300897371374839418850510540491988368688824192098796238483263474492193528627223020375300318445778968196219135459255048851872386663668941939210991005824051905333095590816153762006954259148522519796982037625059166517077929364383955566744218859734766107797548888689323444240129078028850138188325886016211411418607734787018172519483612384888942733267426012903715328564513026433435191430027609094549418374966076607578670405632085122997628800817442043956464634067869589735518758752715849603260944720161877378936176469934925885528938359954260254991395493499913660086700211857820453184955591654089812880956097335463961347802760677869950113413177003028511116663648237048068485033908460385926856348085156906285497942324701750105833981634043579016951498875340375501876996026711950958509262659461800822717633531591215732022169123411850446441384363288770651375123192294317664693030842416492041196038367295075422601453319362654704521064032721855276661884847996145111008308893997763282912078494154715247630565774767225441805497919874416313303975729879484334885245566456980090168629617672805654891888686374877729993616038207024572253890157131081307593665963776435875771990669690263173308693806933305847819228858223340265205964453517331083690757241841844034597953914608001857317878344884164093263070059782844462432235901852956427241656324995545917437424716197021563300982475059101073373472309078495586324346124748568108307612701149933593392303025023968288690499429737535103489506821038664489684216910518352414942172012050665261161603303170767164406893978967502227029317411166690120758672982841212517865707151880063637760270679098728985488892595540864389573242619491194658479730839670673296233309207856885426223505430304236197572929381151271563729129358094821254614522650971196170368662954269077516226430293360415901645437443537182255496366268832473255941071723073274108911243089888744262271496470560709889063649807731849552213616896311916227741692151396018468088087324399138746804376525612427781925643436703709350008615790042689175440297076296081260736681696575227622403530809999127433445697225922264327879363505944743743251048689865583032610719147168615933212590855922381776287773491613593582551729594358813393498993437517082076053397077373308107241931855173800098613388637078635534024671818087828569106729042310973800704449250043187617976502653079688351557977071886690651264639028883376576771832458718150559910176282988869958298472479531187750811859141335423270233834889399023311607564883874563461861357966630384265294729814735699481835388281328708407083044410870348296950604903361254458615367848493257051508988023972378751091972808009941627930444193176455693386149568440755960343336922171240053614241029680401016055048531220562571824289510387434617495158296570832667646528245205156771770173280322494380371057489460952671220612809337508970738559672798832102884312132679886634886192032283067285707351586292011072811332303815305172728162977032886307903269066677132092988566014935591843638235358149103681706635450784703495048654513125436124658881312351332347799332055899376547942125181290400687931528519284933467938250025396872866487812319485745201789421018899407299407180048755464137761837442173562544168806747463780459449948587317860452068673169947081538496897355556848997431146991154090256156497271253546252178190730283468448617605058292968118077687771046293694736263925741482616248718433375423040641034923667756521071857836399585475785437528546554178209794804763179925055095608141808009846646325159583955092500729102907956225330839749153659362724014930680444689635344948737644666876852457688232541495412292789604704411876824816114369414684248300452235854621187087248040217405954812595515625814118762723403534632849728447898206212355543045470415224992118658925359547744013144619085847426233975400532799891490253506320069985147481486636250656992920830210477861356038761135305804599767604688749615249492301746715018816333732325135411064372568619721908893639775921420239323909480547711115217728963107997752134341081750312879298926533035410625055901172507655888577163897563972969105744318177580948568409394416020256966825228164455868868723209143265017397346191491950033592279437614662754813623912557937357427996902636483715015787238668245912453963220218625353714775532675476437175034536943086931694128601554172416751236083425863180625361944207943208458872887331188377485476430967257486745765293026291567195579096910425801537803596119314071504630294288284739545581587684037458713025378821555425190515921731413151934478367423709216783387796698089773347670487242854167466261682782504229911640227368175430251483517596523211890315351062841837664501851323598179067739456877655820148987620873029728754789239689565423372184747339009217310961807314517831053870673370642453356405687287227443612198896543309978285501663386327776775019409296802497398826974288473359088769601339781370085228599091186417848365994789633368729793293850811521409447617082622263060024132620360231592449103969560624562458287993521098269352554184520773820608451124403026900680817968180180159644767151161443554866903086826682678041085694253435185707113640335549629563684806620333404041173886279697541114128502495137906038583798468816154505912914092653168098430058841080097546397917612165886505128768494589890611458373875909867156825478394757654443236781786536464956101459933776175927223202189367945549401299336081351302414054236835734773524298464653920190891231642225750642942730593922963387877714834578223805128525113062213819969437410737352341221446647424236636266479596538553136829601486336359031384340259590463669711340370836200165675967767700537879099376772248109696832805441173329123451414992340678769592133289718300847028108980822026115085659617599989579582363582773116279686752156030193418109643857895112855146392777930954635017711470225707540585616956159477337200849681283121456321975584478476057619842139082942622114827295325650173855610967176471739200854051380067809295092416141297166158652612004436986115669102418282697655501625587989624569537469173777900315855708806718523399098821071835931368833779146209248538818526015341764110503745856570946816034191502306576054110161837254664542642327203478357540131783953362341557947674918720601913423253375606148683267955621547954760016665949008040889186252069701711816363925749704579996122184370245494022158462597926073318640182668492482278199640764644093630460299779224208260008256508364127425424698151721848487943018122876728908964669963473483710705070635431343837871995877225990853476850332596122024950622565435567783895054073375450316670325557694403839055077974521561141661965666241524968878905858800139220120052613754798283744963680918096177253542970526341307684924935403914674829336993356254177759663054957402568935064200736760248708320628764747500673350294755067386839904252365421452023413940510897486541988764336165033179077728873355666868985398800389143633992632574642303460790920309159117920573830133946625794707672097636375945690042170097277854998822095170711296914149591197873096492630092327580248396618953211754220063978702885940872062786904337496893584942763584151439163613756813157151980540591391908453214957257263803315808717663234894146711749162718391869369049077076608001535553139524412926316624667778312820038789147376417152814188323124482647349012172305787724641581162799822780471382875589419411511970824049207005010836555183202878840643100469895308351169988175524546734717251999677945809168711976412041166521262999317848501220127083726883570575838188766045696541592386312394149380366897320193816977203567954929068827030157602640431955982155931143291954220104932643555235818305519752689508408374547324198953893043423884500228039878436855715866771339051721196292488579018609806633059612185733763970875284342491047446426186028660661739243347794695070571745538827932494856968373701569043795267493776620385922787618570351213308395471718105461256797870048314343186937109783778650596472667073459778949967870646536795811214663938283243876248760851672571967450211211112411690630429356566798791876490670881302090306334437798405277125071797357745780261351536675970999059118858946316951523169171267462331221744988404500243012425536557595508875333747900403489182379527598341277123531528488539784632925156969783556822226433709569539539170514128809798302024775232182699904476009856355556139530095228403144130592739396462390514288239992579902795104040854232535977265386858432665946652877494709028216835587618966595182487029919893643095933901838514667815724164334283894039761492204738657467130218671463075664911234490297011109412516995125738363836249144472551123553550909647443930210946948687703968734904184729650288684395651120533277788296735145660577287735302586939927592231672942706087850163611027216763410704452043959402242888731938857182065347847092069187222090076036891141723310505808221346918619312903953789219802450066467870366981740341904464150183816012032349377758293806599824599601034506338067457507529622077915471066462599812568914106775877988159421536777702983505775432462733317590218305338114678333137051145984182390790085610472438004013841943260654904463319577887550992581832047232455442161139959082198599475751258309883713912882503387025471477201230046469359887249512992960287488394389682268630656387046612492232153049822580329851358555593291449219091038925478270954397954547471054244512668152388021900470906108592218912869037389606012707086337708025415607556723867526132566530855582583059866371158733127251252009616577725977219915298057763928798769091402003302838992755994888640939985656194997903062214873650578060120238222958071192914964577438696444567868846880303883333462737758465475666681838976744473235913370615239339320893102113139850107670072315158651203267075097708466405089070626540232464727302248110434186833357445844781539488232878237823237964243497949485704443915108601631898858396126562724871756245608660921988925104656108795602234516540648692532362612044784076658223922501295200947039929494405161938345113077271175820204440518421072430975161904669775791547694664741199972198591839625159838319433220127026057038077923419618249972100472614757139867517174889370590108770155191670921315563142091177151889086472514712676709200033826616808660999139934618352730233363450626338476552088791960566121034380704406996492850780521478921235484787858027768023798194526723226006196660466966764617964762883941192697884358244112985062737567582136884860410687150003663338054177045404171974093806784763167663037265509345739180061941053725324990637022634552983883781172936436836575281719181038322420464521346194154893397671439355661338178487515745540584342131680206961664965288358388631809583807845149767612434633998421200407473643676266170795434874700164856162335734189495063492791225343791661290383505708665736747628522238389493014710298439503255357885260172600186060148947074467176705692170310367645104989686990987542416886305702902503874020284947908382277464983204053976897751590231783868134529479732943025562314934401292893485637573785290011118026528705396593437810485769454620110142443466987453076284659454235828237659434014656942162441778129757452260893343853567023313067674578677695540539330037913740749700524995645797403454351505626782577166922270056695175806142633909982676292690823260191302038078308626302781371621195785068799986246065632476814687215990835055547838110513843064413427915322942206265807415950507403644714241141990845424902244554803671402398505655132428721131678027250626071593911129005390275510908536507220761054312149217349427969772805356044535942687350294628134339826083300489747056314205010926451967729178360670270763372127577845317490260457848962205480284153813436199042384861319370425299748017128540815328461897799952286218208887843139448962373327444509835490109891632069350168591864800836850710590352354020907349008174917891260823523018953888726413680695362173866875821306343153846745752163388335183461170149215667742826995076202688532591403418527833233119030229862736921485279440165323837621626625482017844789987632258096314424925276281001631460276160054029071756919567507862014684630557537834881455479624703293609521651493429317860257671463694987531986132840507723517781949124533618652535485011513017283783657658320313150188731655019966678181676479072233911738155515226340532945964414151776823650554507178041904972053423032023754774824085985394577920160191090761783773334377656374146566531146465817750031770059111476467161375429984371755500575098159791400076537442262604501524481600565453281521383010963985386547918154635299141939921666159452216708061036759196523938509276960937023035208751687718387990810027528394128233868323059558526431900655195700682960778719974757178835588963843246937266910755252955499213554055122836849782412800317108247937227998324511171406231539431511708969466721995543636423288271173257507204354521087764072845487308206408601135747456561336126818641921902407953188573617487767013689859409173725349646331841809656618923543827679391034429949225180149365486057477992325431431577337453127971242034644125288834445601329348438244936148475756454719138867240334676033384757153083322253020285128881768255178262958156816040758605222753077134540235288028472510007783577318506047442532200264338122889111492368588365033041055745215077140043981923942748651497323690161413530123058661505831015245570981743401033649252513475104361960267215723401762582132103306316933965939590414515330826478418137468663353319746474568186350388708352985244860127575155294059753734606201988518737344296902923019519136536749027245091308882997146250692566025923073954558092126426434517485155066477214820285088305550114783178245085590654474479838482492011062925186508346018868026425709238487321808702148234050985861152919668077159835458923187128390502193115427112604838036317357353729942202749569102314273022355391848761499777306568278732683713732763629562547262627746583479052573110006701964759543266389519321177516377418546560925812955783579756562533866263703142285814302246785903824529615036599633550347313070752548199165491220477029931704546401999787976380100530986162511024820092952442405848303747236092186378148729822234865270950206418774334315038167017271733840232057193172698130985715608645332680007615301801910617815241996308545782574174147722948660417257085498529105623983559543810851936858304606226890528100646795159171779207538660255735729360157369229947763085872074529161292273525804338160010241876913097820101109750393221379268801430498049339560048579146676659891543569529959778618132028707304815090117076269281921542667722293793884209283729377763525502383946119069603906849420521583274229533723677980372392856077464374293944179268104811317637452426807079618248671335999886907298914570938405452241791779161204463538585976859678847862618593603247001837759441790116841348656225324694322051091517535761594446046743640104584821278561214796885296279627607121999325454695650670805871214851711412368292179021927542296091996578144212355704333025533289203890198479739108563517945926098211128788159349233381216214851436607888783879699381914514969202760225860706880059877004581239638216736173338143934490151999031985955875290441097207957072537306248731058609859533049131430875031241593909027453630577559941323302060778946360325313144806741773007838698892832233874457959554956702118241537997491985689869219759321849167187073034675123959340036351216595751723778426487852129749656849655503623052362921219683417547620064969417301202008900744045848224388133935883368556285383923687856878733362188212804761249922727153922827407557508534757460046442198313475354476452085989099523501630223994808629316474292492892233872963329580096523583533368625396019383024911409023591003563932354821687718927748811768979883374216406960863833194211298199161676295074018310375574557250240293265707176896822974861895987273584441302076461585506269039073226544725591352660468408993279959799253963881087591373101968359609754917872058961405167592165249175170239192102190648437739513961779535373507790949958803742126562952738952990223830677382217340162155880317673629649836832036809577470724061735124704087571603128819280416796581403144527044100814459140201241782924223865186756847851132389251742110276833350336988572358307332300345387036771952133457468219792512769449533218210944636235704244782014245134384839156885331519655763045424415711720812470834289002463831196370064603077861648265484444283874114578618297925133070926722856907234562399607476486773560167784350137452372704722372098158667545957763187589516204002556028343787673734458021151480500077834976512043208960077969724340150176443446052491664553409940017327751096467047692004486992193259958889764846231364152499367502095513716038057200209265683959158865088950006456835549532047682911135756604383485701525405208147776114018963267790629899223787210140612699534599431284702272870144929330674547334432897840052465311795216590137764620920082848294700946144170821123037792560262192698573754507584818178861676735570516590933930350486742543484873532460083893559150808079646598919376583956783946648339774928793252896408449899416050716129349881763021526668511817029429237119543686843107054787057477618664885462778815098703475813356499257441395905996748072985387083863483265367746184249830573751777274571654882010349370395222534364573272525909511618919384869258639051125392048786916188504282015447581192710793987854149448937282154505869459017900980036981737315604071092772983417603449869525006497375957598918756262314652707350160317273940701887615684939583049785990717514041145840648196000939800708966912776260752101419669709737037780424308312716118030653116712873050943087734290639739175877544580690328180140498535425845737867688625501066187573937292729781928717639479340143802302580487856427853738579174892646902201519092596344811273073696875379961909849934648541201710987777319717855505692828892389652106261770353875532661963629383810239960927808465637025638894079406751541932862307807449019006850629650953528825408663810261750705699501116477561842410277022197752461625692016982386045790884374896073940004533539805143822444668024405151919795973784193009526256556675147932798107892965343736863990130825511995855280311775496965544231260058728724759073800812557520989324894004686516526234674595869467186399688222958411060107715548012063939921428052960814186818337040907607933450290996276875663577708734017530061149580436951963517918629080933410753387415406300889624082657314685289065509538909144521754789544175353077252408034083950541367572353343377870072328050810123080823576759954375601301664476279112142081603208214985303010121349388802149736340707334466357009062671919929959535263679151079337461536442607257945490011703232916229083210930562104381149043539736465824560675234627733943226754774883610012170782714819321179174256208198427680104450466520611321585469418594172564818677473540981391439616568757747361709210896444394629383159164455724206867683614991782429301932922748653082795260125789743193183460378328654239348813489092677178522605696096327586236917038443019404815729266374034182974224008670105573022430563260664552592062299188303987648719679974986991144211630915743520551700009061141712871100033152285519419375137378275142872054655016760876660338854637475540081010786316815029055980917334836800930118866434479898439511035265196859732249435015054867961901651621966117403294993646726164589526561998911312927186780232734378838138688692686965080097542246260012914111337005654328949167491749615594298501082054696175765539367695642693395634390403522952504970610879838873672268591216355299926026783708715221548594849792602911977670745746954363137270745421061025900408609273519573856161114776318083516578974491704281913142013312735750008864721125681369566905388192032776795045904627603078214550407719402698550866763301621738541362226133684411420465579367535538554101413314298585608782643217118044305095143476320056026928267733104356062335515263508383839248626092550990476349907415426299246251541447721517462696759672919448513063607214877473561940010773511063202821895168601545163594027995440336557321681410023170013329665627958397437611767945614310264385004133288008109586095085301505635728916709819218211249294063912777544565639349785364641221374419263214760818034661121128318772665444383647474532836536525848199172148339985288005333344644302555345777080467655787869157952178297477192088118547229361447014285468866665007613402031953906956470914134965983830468833538616164995341751571412560027308057968274042811606279522985590831631203782191382416752716684859392911638962477792576820924693473294948301514432144327580222292618990216217870870023652927351057883187731415301710195460628270922063413612120977723822298460269206089583955111725655035213284655856373207362552475207522209108339818307348635278070976981186974957447705825442882024782120142975653458308297593890713024600262702595603072866781148910061104643618336143234577171998746605279526628744552167360721329960933142166173861074414209060891812353904109608541206846379968968296530109617053563215317398962968637923507019575071371698992591821365095624186313438381942620973407429749056117332040074062132651654204805972788606975407745773948204160697959935783594869405016025836379943271339312443904521424106565790727210672607809992002173873887930622471742123176425342230828951826770332960725349719604710571320759946613246742579938747700367975354872338458129208940713286208864808537636028151127477879342458680737588740242832619317841741101159509686443811562906043148796498322771487989494373311471666531565324802593097130927831033049521307771577858111320815248555062546680206874246463735740261723014569377278253564096791194762730783116523959353878856708124815236930459084243582990517401475404685977310496507144497007720212583159927482640932698043071886651633706875971212571801103772901020898857543995949877527768672496028971985795324206384203085767644515644874553674199742908289683778566005381008006979142863007575564984597717576349229688517276734604543933181690342425645091164008327362995726827246185574735179569819754871300735248009168031327613283273274839767776926695592122851249286786989503237394544386845008110204757359304461396632879051773439713508373650378590873901771967932439234563271403196385604162941244299250885469353406318307316422130260877081860735570383452061858725185558692032818467809463135796544428433756875150398826673205799037130055682644157722370602320906185236418547112587217883649058129970513040010263803614365354496249391377260016720414177255152683897695170481522268671792692753590399307005233787945519216122489262005421854254951677813957058528049322204797179616913215842626528810198390371919339610043316587829605435537014823078816108349204851060998721751872928138957210921813476509416006698295125895043306840530017889949808063433493020609846878280632521880949150464714226097066939304071957566813953680963873119050391349712713633384521263226777157966504928829665840452256847967727296000743687376601108623129780178250318020520629743705911685809515018395044899120861663818279130880354462179782471970591502283111984751634256628813779253076264329823305018689455842817966914406525889236177609755683820757019333035593381706208430101121510228395111124354266126572438952485239998598946367110224730476088440100880536460504551447651020830852683086592667580466423306677111148325639370386308979818981400901632607467946775318889378566021695228263008209633167132092180262549099543492491494452305422444207690136243474093818037088807752010543466252607270056005397974602805902202640596226836656006062945695142697233219231896716009982514888065012911710371868754442597233275443652556786767499397619624031098626379783756353677594045916482646925762244820057747633333644285481015879279223944956514457030950669635505886106448293613390075421809203544543675143205255402638860642781988405830105210358346948552459033915619933276552461184496489232938606313495212837829733380782294491117163957436632375146458520406361761780636955511250071244267417369091812794494375448721745907889016776594099175106580865699555016661120453725707025568820194251226979182247113287674176524395774907818450289318197870714090258023899593400406055062802014095702796541033942036759662411883303226512935016679084895240583779125274254550027262857615012101371171054770383804411384583043293810189260309922829249998155103345377176622777663576514207849806798806605887518591007011782132462788159720190065339935735502589708442905407491512143210361053261693812725393713964688813332897769931235622913659732383274528644638525866020676496035280668232477576132848768554211107218429629588719288537622822593435090980075712451064545610221210070279493572972907160704498054022374059775005243593459618939821275968971683760720505893444842401822525994734317447823371403520946025624448293685577499656761477634833531525335540422922712757122764557239779907966214231211951283639484967566548572510839207305682674059757679433319045835867028024258862698621922694028751809108189955524817379908073550683420215054199685876664646495509585804238458609812031053747134866202241692494003979811313639235585901045057677051664659540728269725625707870412921485118984821285384706861793781740526953574960399577500662717865596475536788720541713763000697981695939516541359355558483389228377150616303589815416766454340687085362183042635209421395894233608971712611800070170772106417136280613457144724676027730747892584643229068851286952834254747437688297178288234709284432702927761353803696555221180304848333672494130280408532734511074160190235526592947731010306039848879356397164671873026806539994538594208007936969372937892442520700319978765741026359001859829441879765932855613322946842093502285142175687230372266867110918440256589652322099356185892813238740008956204620202052853657404857628181623161054795994253164594559290492545241544184892440034814949550754314472419717230450477563958638488577615777863854633231631448930143699693921473656202839268446026107233946984154231586263581632026860776068708444217528381533439286649525061685079597812637186561032096009269238055680235711679285428403351795272982578046887729649052047613484902602251003033920849117021742742410271554850517431129293736426588997721303948445510732351935458861318626987608370225417620386700400450182957543156071621990090480925001816675031913271043528917396421697932520316120222148832434295402010474080612303522627280657671924315921521039245833660422823918428860145669290170354234014579253256469711052291766648727702875885233754964753459192415970937179857348253230284400887985707124654762782757061400781896026914987182850688993187697999701108619022462868444044170117426268264500821357930965223695709032519810972298131940928095064336298438753848082037334057517437095858029047352060773079648077484531988341344583296423589452632573875998672335287914062479334326226799130636853893645414058474837143153352036486894164953969850818607057544820240398215242025388559690181475757992650708161348988889179501646332893060818346088506076747417942775991592824139098327152663826862405071970887007665083945299009075221806072040788090631465502212438251455174573284083848554530126472977690184356939872734239865860536414596635227662137635838876331625924137266991301520341578430975558698800068638117836833736684767324322452880086305634250437848654768991688292987138505320816801902040603557886523227450081571226457919949882289193329155748840998531185181641580961681852392474928992522705609366169180810957086648367070678731477388745989757906400466706933891592723177167798196682628174036528811304921783965319991749326797098516659307851264052644026423950901187464771200910005012802620326246085026025513068289899031632284562692663600731599878220457980042369375837073626486107334693164321346067832571488400189481245080992835802425404920589741014479997852344635947175141370476424443502029072658799431035291722068060904824407980858725854566792258717107659073535377974222834851631816621644480972732419723650171500347129512557141902828468898998342102071045549922678944652258043918394292026579706611603203880146937742702849262162266551729773278537247865630082973155600449061514127675818211076502513880235138088376948090553387925955559573254731996091333065659858305121252539687301359771765488049336172071621451813043709490888957680776616032820299018597404659417903178931259931927293681440741545881653661369437823071147769608502220633993534567636173455159258707217681606260046235479139238745854395751675203956077889862789505440432774947249488233715965320342590222296850959004890789507244143137341137155985960428365981107441467692749718008889150988263682692378121215537737125112783855353562290236115139818540201459018022197272348554747324285015665141652568170062540156363828393880095933185937783088581417175850473167126422901647784413364960718208526759161979791313347013440119045950257867247447016171742017453987816880460553666297708196619456316300211748263227740995593105938602563254313964201032739402781455120262453366473970929050666238351938790116425338224877811175551356867496691256246333579021960608903435044527561422947889949315100319772723461698743926825644068354556612972872777456154485569174667169845271505483826444668895557617949713057826384949790889976823111864616433876097378720554151324797057623825238037361755791764520608353878327366861411367153663891725414580735099989848064478527414815182059510337252852626798821503243042203661856191355020052530438711301707914758079310630556643556083393375755842576400559056381766549519454581521106611602750485506461005457515357399167278644997079748874928817207080917404698525205868748153657410275311453929809443453521691699178771704720881392987415847128096437195953167296912688225222616115747355003861129029790968178179603067268592281857768691321604101936181347295310941144815722399805465062582087631418753077706932921757038017130821166172830912754883287165388247805428370307427281591827636719688158220583960548486567317831158907273369259219609100893458909312824757989535440237216876482038863048600002486820193832945801154595589278710245420282405080763402587537600374852783561877989228754710403055477245104003091447739866009679821538672156411299131120419036135606067923078614810164365995045801775778611608739870477019902540520152820583000946685900868855787791951360270818677169981100516488821469297920965713033454856918142264765811985053151797894133697619293882304491081642007662216072351566245846955793980389941974513766420772681250704069015817843118530192739049765629112219545047604885028804916308863802612204044991169286853415825303448986467697318447247292261162889091493594827508282773688287500631185749775255385182373211075032751593399219299719957438593777754199747740792749978272872720530222979905362085346286839608234390421762142165425469753947352284157848220874162592915725839573639700357915339421989052650637499895389041330427859465441433310378519009696893433738101985759002639543297531944888969434720949436663584447760571582372742821726392555877424617077132895803097133827586388964433301209537894205824758165664236514636127249477046216227190968432386042134160014911900805908524770980282028517380847726849900693637865157166004424377026746439396884865341503016340438606140558854299170135018150474912951317518962589793669088246104755565669827290764734493642949941656253630549684412062735991138711190283411811706730444653358119455412993104263584790284441651606134320690225492334811964452028897132876728676403280377023831417289116216038745511951855183135352894649703503232163480063555678285836823547418537049187441657936842967664585698396323372376234248577134295061457447417831713298339275426300751443110873182995874590493875432912344796358914856969517950335670830521638284550230182854991444569627266808922071304379808413407449851088165056646966749891509905143902068882410224156249090354121060483950123394748413060215028384536998384806207024668271475022504428131165085311883768681202916521506900062193533035946594132489575552687446038938686080694992469674083849950981675023982947048966621007093569690773719282658913227813551910651410536795373717587211877216684468299484436508880972740365630026451028590346220711167134284582421304368201426120930486969829952409933757147393245774025703936984615490612682959730676291995583089881770052648649978052273527024904394188098985987741923751347599253422299382439469939912844175978262647895774656549474984450442246624901314493961574244543835231644194739750818761300762389294395790043286030425567939398039957133540840753959575914808156241748217860858959860123776630563187822537584926901073690247881152604850317559467335396875029576324344273008272837037772585335048947466957099702727930495633004094987280540324569311897420911288574412400742862872567630280038439497937475871464912611520199722849638934041117179109366053368777659389326534012480584054700144247525477015200746499895400788144784509915592531674576067391346057016228519198629456913726018456594312614959444809504969836668392609473296445760143385497924339187973797529578994608583494462744357934713382380361474613979786319310497001372350379110732388035395057143787993748334436088628499250818131926983255655717409913188024246752898120986261773417121719410444072429077933318186756805244272739984768832421349945234469829116810755992086973589178003717925541512297573727147541303999771519205883859266034762742518490039869996393244034469295684484238430376258029878862619190612682830297815047835050313284531086559901659834601044726494937920976078115211434051289939882735093370615059053655528998775891731245721073873766411403762398792158841140052438985330127595361124022336708835908441249313178872865029106451062866033209453969859739465739406282743665736506241637695140526035092570144807043719333561754752900962327662765761141965924317150960125107159730176701302481007694022645824623840082952112310079693164907422058273479540858008014911459127772143041641524941647353584542327925960768766802542879758630748912813418552270361223725490622324353854474686292737648170116819411022617375418290454944098316850409407804174644285510823026204736103175292643277596762458756182152691987290298625703462539445121908334116957493465621248520064785938315735896940136030650623931683550163046385548368798740827220358353560384157617281921477491224390977734236835683257295647309279146290761913736581351305045393961170069701768746345697316191068790538268234021033597762412426525931494590792774183093503617038685199584650467627963786198879566326791647914415983544063298715407825601781769500640376370557132383857161973668984148909923860513170291202794619125685572614606782074855652288634670693335881546804821758836170109881494490214024455373241979725206976089648258539081058011198909521443945167556976714455575269237647833909510773853840940198438670753501952329950400383959553378660257744120555754595652747256155703794693202334500482966604489173451927398189021059277590259286522098153637744525229119081363469804137731438012886885864539365296571136808338193047425712360626504910736094525541827979329966042626436526659776177681538983950241757129873737361371474886590473180788260649265609107916216355925240951092931544434719559230753440654704063603796214011457362376102060759653246264066745396967173303198191933652555775925215120936228758122976275296606557595614712634142612847821850037794201719473018054904673500025861111664722130707675249929942532643112909633666481461752222045801606191987925065580707206445318018223726605777920106788899713742060798503412130812546356484414190225489699342031811087665166161607916395386337590810372724463471442492570486187672715840682079093772134824045748437192720742001035551293927123855597482271205161379238410932198414889149339058840035919918529078823601572203389445743498412709311874400170548235956839922640034274800718009131290824918732427026279110862404704453363415926810611821018472223963480512759578184712626662183567711767661319298413642801411310159141453324637347131534429050052357725118403711699172164229216376414320491112519425247332114705287645495457037500602177267140181836599820715802580637445863468234808960024696723279449756574969196351611034607174121252290561107659878068442617207877855958776283373259969134888934486235786158215724677413613991670385395086497351749414617568693691555674297897338106420610609277021292445860275052870884538877442834028995517095473436352626410471554111323535121669260253131014463129344300522280606799395871874620732223526568236062848329646985275502691425073505014323987363469377511140961190589275241111015765760597480017421997796361299104800110892230477457348625291495883963810892221264000446476627846648623587124506122694834733452706349908721693242964328329043148796676680766532331973443084863009271542810473982995514776935095930471045958126358392124705975377494451674724396834341265081949032402180787235960283927197572638423996248091959447823405027836122756972086502928331713940214065058834387416777921179854975480504545904352548281361997407100038350817673622713957847356492323265072128377951814075550647837175123569726689675869492515183594081175298576227865821470533885041102112191656768385607673926901276803699436175288693853154237059273446767822016181946244635272338587110908026311464289351337048088296937919650184382021903476598513026118308261440355409030252561323040573161108565945349977231846458343464337140445360419276034895148408468227912847262009817929048527333709255855881166196245071568622546486587174695308044881628391405061229009935497712296100664377098281254377040903470664605633417402243461034376400094367188305012688524850888226134278026386751818717029777133347915268253475564468107442914974625059699301150920791645954993041316839944062011617852735477673157469156147324783416968090077013880903179015970557725555909681276293450290083501852164727106633206309644859814599796530062426627723050137613737241886347478363270850345800095405944448149387719187925089631511173620664525788894149857100115168621338026444042891353752164780757694422671943905399882884748432207330450081939967778113113474075689974925875009370508774736032119366834698162695423584343469366011360094060521775385163224971167782392327201343495923973247737677928005737455677728484011690743569867765977905657322769278247646629006502532869546467230338598596252123682935506527948380633749323996307695078194040922691677303113025808070527680407768680507171813560392439769222154738950361332682433051739359302064027593041548057054413877634727494460578100446974715019912329927804881572979218541271443352763455773600679797784993693323334552114130897993968465288554070624214196815087262012485556728397066484420927007121140391472770176817132989992407996554163279862893608080623052310017120486752320383582276401201836378616726721947674894893490337911025961768912143759855064978910459289228737472683084962667016297238127554045972971153311383454933607849602748563375223476951510909636936611298656208758877433194743563394294981936214534454943003877078451792850935118908447631918530757270386081975042987863848899581305456445072951526103443071680242559732443644794528888853634448689873791478074917926444518266426739930736900514117317164440841663883356603024180369171078115654509219157274411972708877187597132017938375057260435333175054704663724802534048120210911594336119368513612692855417307082309762160114309255018179855327014793301862342281090095308123460979402666751679122169416234439350482791336005714219821829461289594143892601571164855064074650165321931936371134113339763326910471643923947959337120986078731866972562932954418764913862313840207096527343518531209391097164579597133967317476226471887940485313832503958514979959948091269669162005060563123680976985616595592903606457301157792802237500388955361177637704894418521458767695330385543469334382017373780711171558170178512260880352851069190534117862776322135336878471272892290486888474567892086092570663434506108520395244249497628663816233460540155253697795133026901134685716487567462476887004588215062227625537051509436942148959954242265089549006049191434436126198164181125024423645602199559650644064192386720599035881976394385562913698120532234423260424245102816340527284423261628233312931904607750732566402078292070994974295704258777564217960225327972618523427380865104194559577019295914852488852152297034029063895688137743327716354285297081909851013822361727658696867070062353031898881913078004216254149640930942236414293127639294646490562409660403460334933534003211031528426660510271596962537511483633125046137235448886881309778566116121967527353968666626034430189173590414121670851277506303976360776083706206021185593715164348989615225384113301291689084268301137758056603285289939154239699765615728101519719040844155006652751751338259048311566678751449441672114659095834119064921848247669860261441949011340804544730485356575881862378500784125140930268318941195294726336521275053127633455386455752265516192874020604996770785047480471477029280320993875798767065828922442146280735954083666527127600054844024733451851463832151363440823641611559309799290440325676410493327225663898452798776464697442512122608976675178185187633229867097311704467661665685112540074292520038479694998722831479903220402431762593888361803893644652459434662021150380926687650732149750746758951745666552764390532409838894179440153515037447871098845178507430781983204131944555236036826411671132957037789709169613368865590535792942815090190651323828975269043299435255983000589054293118858840371862298275797439048788636524995732562490490028225870407338227680712179709144786147768637257678634547549943987504779151102487582569687921206373423160326271637067922717452330510660908524900293929154367612925020166938404510213112416800913359303862660897967590965185457697821700257440100897384617953440690751223179043338060413829503484028856335523659029908085391695067722572594786770346319110142918446026364014384554534278914390759593802477225137795396996456712459152981642391423037213426195355125436378997777692485933437723557550320352647700390401972928051423897751071202076030797523045536710933933247327519818645989391588332319422367559899719385738265839291681365650968752850447140759642763087328449207304238186697544856856814314212085466353004680930664095467080691410033086745287154579469315134612569357953606579101451528113275650695100564032917806114766412136379945089648155752996083964448665280842693686211094728225370324166165468961960128917459432358817849083529306271300975349463878499521815352735986011122150548824350470349835718963236513117136600398021487913955311038820442385540076668126480449695693372165288449994223857571440859952902528011023926619490770296994820359134240165105717718455550942240300663018881281052146763501744480299803327799860042937208342421987546285312212131200789405962188215012817517998982092780489416901639924717764001372702186351035769209407788198347340941018631322388939177298391645170171924456054058246730826705565687130443387531646163595285642740818664495903497813002422973873347012020212833232708739932095515157600295160873488656304550984718231450811173364006145182528024526465109553579439269502485513503634693833506342783862135505258378552148500487458255873753730526837078948477943176093127716873645278488217575355476114568844752342381127080723859053644982748140134490918252876247917519970488884906194051458440523664166891006033492456628928908149764263492975640969775588459494307390518540860451073795427845415663841040465823108635012229060341837081856851051749318841879380556208708766148083339776694221388343761299241501837156901999377832330553193769913779190615547822550108625330167705832405062271452641356606007029867455488834304891217359097811608935625628509573776409186033404550480964299896284928605826914121628370496736817883318880747575253017374532052504016826454353308807218030475243562079083268593571228798466353841519468862293202924805557823120406570545840990551747710588517404146303441743766405944162966163686613709485055346076579137314894405165122202505289596852435961572032215041244271180898110950467671567303928385035833318200314601369866366444967362924390289607768407398324624085845887389357117296344620727730295986097160175977787950646567966736667941723057715876140240507559452997842831396921889563668702049080667666640111226740840800270521485417091997566576441579652720903711425955328361916730878823152420027323226409377980518334074616582096371225311646092154633401053975547627973819274616239628828979986827864599504226712392784348161976197897051026055699777725274067075113635645764413256451656456662149946789920792287144251260792451476789989140612785026897425072027418577558996556730691464317279833228546040852960163389386074255757097720199658848635981150465473015955456448855083031844799174351425416958339526837308927342776221118348672444311435079119558216988637341885360364677203156445800804023564644561991557131182980203675559008875338641120674973190954027744050099248117116779117599529956893855789157305021291800748679375425179803998040641161684042246462109651362483022480146044029863811422907794579719864700807724533080530479070411298307866597018598729534927779103847725251719894131822597011202464600956842004738762870994699628391260984683735292786512397123159473735463106948358461513523572308754984725618560556108620631379563854818749765929813679937092620840204644914737573034524414402081268405030148783376552436212731089857570994333146414062376540948090141852525054803734569388594260303340601170374041327146035551295673237194018551823271504833579442528837757838237351049805831224799156692980714843352492832410592748412667371452456631219145785843868901880012351633167943846282692755965615806558235113537105377745813635129009179206546948521489884847349707523370193263758730999933264286067907783769396000792416549595435569973732612656047883960032695913200317516513588922337511158118359782211556520391088773162014973036674688356557445383775844226529349077360345707266834175693143362183014072276989036957970435878164691887516060120303575209928787182671825594882421580920790470643125981272855063579620543321890593877089432489163731808699344594856337544732735002298285942194814089292949194099169893611047743232844936191115208292391965179100714779479088250942345031820910547141179937251687904529283492559706577330498358590640268845429501303110505046179331090421220934620968566962297766288370075921254530567737133714808743492965070348897715999788880364928386436703581293461708650987389297921374608181441809972152322196668045668096698353872451924151348244237945461073218772737986976746150691529713813407065873291315398780781628269649626717227733458749036198419344461633015399807297059990705960597810877451621409802727159936191846118296077644015231966983440432356115040617095388896162163552568317969375794573492475650161581491728774505744908009367214966164436298068837038565755637356123662549190175983919032989098007241852618933785333822426546135480606569300866020065963888902066183893649164173946482690079926345159246408819692327793110094211119955078815669078614548389043303490924625668211464474147837063729121032015248880271715376524070612780279801157441414217491786138426840886036307324705294853749485605765769176982863791001041696537878121963053670052811137135867765807756088057352887202275237045001107808586549727742645533354596900850592771115886942392696806978824446744888809237222240697493482822328221288842623958166459345824557629459715255487944240394907562182385418695780583695159454690524025129672415255266886079417438301615761991027525855290513920407200386687513913634429952629249231319939955256685196754978236885787827371908905598868562685918827416483748065689407494693341631455626422898533385157730253312483691241043587030502861470961508534921069931247597824905646144942374313883097236207145808485161849288381659654600270193001813112867034759983655883176612132172088118381322477664630698913148022617748376464942532616348396238886834391786128681182191207644179871808028369769543556896424602966073409904203757483357277506009660896569048447736292013109302170402955271346775870659348462594982577191835902360284824494564156287507138042581849638148813323094472222757330281293371993587149581748873392596224330059252309498870762333945005775443180009748994946405332424656216475827458540154612392387195276215039079604730902486558113592073727718288649423595108368190849292287192435182363213741236858752240304620122416334602676112511757614114204496222641615437992069951604442227749646960704890914145709645256490477056875901084784654331264642030710359546880436945235392395461743586845614686196219662087961430780786821365737329757755106438860601410366482158870602715892691582815503896719245057674947308524105313290271892951830658885840008496637578220552193609385899642928340657840977582935172099482614439693111892277464165486966831818239168863183437985625234079581994722198012618656179656931298274841854782400786628356732662917600518360509597479219319954348490859459172037195416603272814747825297061564043455616517546650829684684868926643599200372042549450622326658466686737252146007023637103605996625844017320716458471942827529796102188552203796792672363954494643082032892219364302334828167250316063256159795558129682737086973468932512089415068244757001174153174628171015377207597532082607237579142720700801076506468628477260957353973323612848733797500680620605313927153287429605453506513565406585307238946903855405703193775611075723638224740477721837930354510343829025171735856517132362016842577423369155141089335708166769880270143797378470229897633723575422102681171224077394429321012627576113621873473512610277834873719465607791838992638406380258372241035599565415465543568827070409372722282445220244135947521419665633955880997008672295879293213239343592819767452899357059810671905571246895226232416592896226342871491241387553884828766427209302557753924282186857044250895179252351064334567630065065414125449844253794871967145679349686273404866703733249363003513790039221666923378594457315591914511836973008916205365309650268424603987872437037992109297929791799980583224515597340509887269028194005986023038050538881315952476989720217082961305803921242114216277504883145826399431475893348016768012564477482001789883664852243126186557313361356135779076270963119101522802949817485281692787714697682249265033147425291480870165644016791057819333279243871258605454109669141971285046456439282375253710114398119555807118114914326240415267031021581225494097812429806324500359987389325689319296145312179323157130985540376911488296474679839215982546339275415764718972430135789152079350307093201015926597118394565447769289983268570942896864543982394599618698327702740877270802361436171311359327918337007528515810851669731227943493439397286353944540584617461752161582660424186059021747760279398313208640178235903187842184161061164195794496766966588769625375887092723785167834954763753629738145286991905721105630910340942921154859823203056209878617560733458203059812542740680043393544366925173119535712060653504069787841055729137964133841083199799521132209143866395405882989201270061247111781886524485139735386106043607237181148462768276175767766991115449058796563144494778758142207720478261844873147012834266599001463511155206006756056047374676338191248464526828356327330572263900366725678052457630612995759049211017257526853779830762604870143314455225123417608044684248972099821986343948213450595224770922270294483898848790476800363235045349839893142883806992450591868107278348152581823077795202409641871284223169558188345231056883206933252646885129303164532622537986578326310793006716793753219407621742094114045072168570687823564378296150890798099986165553253095187472812634296838644542137706723454134294075065326264969178635102560738792546430441462398663457903048791992806032241404508775905814433323361273893946502450378046830326957687827044635559001146964043250582635518147818151899438645622746187560640272083820781013526810427588582968861027890252650658182383450136741748002323319424163029562134821109889591673262556610716383245768856633270986787803177145265272648499885086803182573976362484555489030125262351775278175566411972578174067081073623271677885745993556347895397175840782668438567198669669295179920847322763479257012661331659697575335620606082153834446399169922927348213301469147883540340566417759937238719713108899269382413305799272042524694098003868162048972281828312353570031670179250921819322143122846653156870731869448807747053031764382280117577873244126460443333080709847007910512757673278484422533228239062299385977066735653199906021598538660536854698028201718376525078129005136770706725018378156593714907612884852805634226250634381462354145674408584092887250006581754561544625704631365554558818353038796987141059847611577037660957627933165835701700218454189087763116822296202589724593667495564297896134375882609129322313937128408559016533520817770074349037868297089173208699985612179242659427324393773428067650275611532122116227482096262386479475019432126190964954081580083818061057231100382082572319230795789492205034437993675161555963430983279621352994125325987720106579987122815172019027073122233513332665395156558359811121551142781783294646008836337827788137511812437456313351886979701045348330211674004608857691770012047194137593553053764069358866018933982339018441624366577910842878126001911624689912773874280936177017833544924824196086628090466880047705763884790948376620566643756896126081284465711296504664709034301912844563943180970368792459557538963254213496319774675097513777151538921042502253401460748516486522648566085459872346345628960978812905983611810400200777641761362439881853490668118128685392648880811100278174976989297496193399823417329201920632359650898892816408098341907286296152763640131828286470164487876487941693974410363643655496535061831570229967594864113267022994184826482242146959920013275503951252548804440484069457874853860027525322340715925180366840305752815719127754767138376649257087891847637598521116923126326921505520410912575658589312176350030706577352608154285897883595074565555397589109586610472164446142545699478118860595842596027361266351170672395988627638831364616902847092038080233651555088113636614466411382803574807402772219227970814197440696533718274946704543764575664693550034060494557785560314023306480647429184807078520400328357891672330551889386988446084693312109924181932402565646389305812405484183857157907523317622135690876303944381719387165661257702443446484678693538351570936207816039965208875698099521616992459225201009890810476241000033051288150187811232933213208621994604951222982776813387141123100623367718974843010298979395968865156160501505420219626360264512036521737714076164376963439106701930707559125437700199876841293033725169224698872046323303146280252358815184013666118479580670786389133735394290075726352240032767730606880835724741628210661109112964355164962168410610860834585611702712660131675357419082079339610143525578557033184913047030607322562705652371914790001154547217286907585423312663219477552070836278331217915309285834285180035545555476400386852916163343991251818944926925369831926172328533210215949884395210951957573007416077019592208214338969497324001117664921631440720927821057323920474694433290651128351768541796971213434698536529138256125457783432145479254305600456033881491514694667151379227077371891259269716584771806035456793662945082202597896765276193422873285095170214344821790923247383755280969075823916245355000568855462937649423809634190788088358995749979746169480444594822068188497117405818833679604357602768923459405715712478334253660563461482992231967934571206571073272278605483713540160601055147889367202214002422698314647915410605073850102146092225482008705888904690785080704774050879341577360454385544529161612201512256728713363439209598656849997361493682166489343648771054912374354366722730230428443889626385288862315943784250345865672591355788219125885617474647512549750070748072882147447237706893369323529234298857381155264632900555309193373872619922545181772474445249091483561345994493622747942154826738347452555431065466311805471436478264062326039744723836432396401380617061618855965205955147223950683733085589003009842544008501255362449696003178416471655140784297687577552656023815746010448851588086559476112271335188431300496111968457413410794812020602782743964801858764998979926711699099560288762909366680224942980511277367615050330827358662493003750214763310684115489722089353849743838795579162498771904077853599910999916145240335130159641497880621165486130365395257127279306634703859458589608786246136517284689356684731719116739976456867789721435789855497964711647187185828146794156108486213742277350921120519813127867468658340547857097089303307870185521056483176146546486364297872542283112252039891220517693900133661257382638150254564018307288061109523943520934391841563237236155478826830710737031895867304844272127618275430872660568289379233487003553966744257939532920270638530637527926547443267348530499556071808035540875043603824753290478587142650931901076201114154532944505092506329584802452932477236068839200563454344336394745333321345015290739891961219943572044743203019041398270633697717531076318171473499689328495076919400437049513864870577783974303493712145435328482020654408557702248528239225510155350683785027093424459017227321643550722622269981347590461165239968045017559566860721784205897801441149175743781068367159194078575553234526066165987675376291610082084461533516007974465870508609510322533874667972036748251295504626494674310233031039806550306836575946618565119807939432584299114596764774129580032430152549979431126189896771451669534079395221555457735886178437036895187294648434758725094705125299086575445511365229535500845649310050372918470858945212614073989567965426337256764056305879064985475142751599585171839158920078133730619474679242637994987639872757251455545349824433350894109580009563380802278610245939613569697993892632631335647025917469820584246090594648257190582255366591729924888664928643243578081562555567015831928977068411096054914389567238485393025772011601534931392362946828603137119377210973990659850163790201274646977600706385069712739000885724560438170009089282695144206041826142513581332977201193085435720813624430391708552151514002976053893959507851622866867916134911671118008433982825673312842976704193225164696476552297951904705913703914388399534736960764672181917905626081486436654368966102459198101184114182959784524486567700202340140253831174791705606085539189623773840973772678394774428972810751276975165512088730204573917937437516099844648917605848903681174164290647464612186962733076662702427876641940246170231562287895017651268426892240539014864836503709928656435171357846943120185982334536919523993596784107093771000393615260123193356405332578648274973100266792155537996630963771259917525900834640409219150519561011140243250857941422325145935251757978507469958571398140936579178209536542594135659303599159193030151182678888147606728681851495919703250974053079435856032878167679580783416067194658117651090057449141477852267192668313203774741018493131260938991934362769218054544911049688266666775672267514338965383093424607957153167413321093659034998710776997589574560870521798183263401005841549593511407304404868895566640216613609615166834470463194407344745226199957928511393540112316160320080888837372549370234429411816946092964460604462995176325061721513735683464445973453834899501028797807554238159791874053360293533445651103562150087902758099550470245797552249491700946420479953719043587678202491937382363093316632551849479334238299607664115987014258974840556601952273366415627359262563278054356012961518293228398514203176404632451018512066517175191224532452635971129466148867970927549624705053170548477184707323758172952536966704944252079107327268819127757714446331445255607534874168107047406591089674229477768806362041929711015871472534014829653290511826221957277865107473950567118456554043468831053774931486859120645426945424477407848408365658849609270009145346080931449307033322094009117370510677169611537420886929985344129432204331146057478148174454643930309227811633763233827846738341598762243149760599644888445052212601108265038480534938590006942893079092294685772777674370394879119889453724352390545710826048342484057308097929001231782146397142278656846112097347069084404592469819866941816657140443596736877843409107997809037940952308597025825989228217424229336080837646212221034148227449631715664879755286263910242506676100709220086149785017321619945835621751983964181578669467272194322993674383556801371134633622680901252316104453309034061890425142270196942033004944061553561304443842229926620640683339358135808639764270716801091507587584165200474704138608956968521546918980219005608430343947686413472405140931041549953371231583146088465026280813216833007418943779635933650415112251188739333582916898910724908943348951695426208389092143971740352864940916223277885763387074581210486434052203082314294613218389573567480636429611355993963717563215399482842978087817535986985829251087662560233528449397872467240291476977486485124132898942685859137798837211648027843436709041661550413139182072304699101149513782865229873293276363385140016501954401353677582828048849454997000079422804351746166499761097147283769641207212309819555795910654778418935141169258127265308764916280902134128928089601642300075258022078765185852004353396956094849284057067354467005348562399943299419857719108956034272300805735476851949414280009930983217555858894697349572736253172173789934561393161104107602488666823481749136428822823008238641361309502994075599204512893837700037156989077398748658613521518275449896654704027883418668040024124392737053153896360381517482199862552662747983690595647951496214749071598137826075021883296373289689834891453022432526805993542781039112598798634324202786695730319552705237158454635190638252011702411918502336563625056820244071739089540495182172167641916324412052492083500505412191577749964253918071800254651275013996044362711627843848950597200523806570421425870269318070033805495605964479855755605635870603538595138839438938853166671348969438834846037521330854009653924845466626889734040061119602366113820833227938646292098977239364469213610662259661226595528937458964219734790293028445595085826229231718253242978478293884901413311928535854918597790811698972111105922921072173963011414605178791709055844644430760283575760316607494954003696985773075603302733245275127901741076382652840375171502281084548576871886746747029130472189470604410724021373515704942940767382976078264726799856456912057256115418397506299436819326527688864657328207168633357541844198354381290709360758807409297462818602225623549048457075447106619997464439564123857427204239924972767261855897027472144783193409439430795965783119708107745768350529292276258345878167296315685667913391329394501812886053609755074521606567055377121140055989011219955918872833708696660829395370373328248764930210046640568380597920754226628106061718440483778186070957134525578966263001280762125478954904115608534399522381657147274372910131473990380737518866102028400979837613122660723001770574244064504714940731380414403562169712351202401116853768468261198421935471931485921106320494035127724614416269997698042833863627035251223435940679662491007293653997576867993433231283486380310895224034472865977933181444061565588328476776875883153256806438617157775906831328291247428990820216340369336214958266765348924110692646717493734420948833477419388360892053975704022326223652102998795553402992214238452152584789361779908291466951849242601695286357465376924860389519156885953509529335441843428695143871293443860592109763985836993109187497106348228166003362770732874702468640511946115237215748155686046809430707760250230461924345698516441191825768574970154428357766069090681383336802628995242165321975202504347751591575297665459436017884255578822278733636635098911134176218838402216970940345034658519539693079801063523761794940035140390978484531829737222054360137870950797051851790591378224107033306916323182425376696689524355808931356661119486522728397314296933167154425496139826944888177675582943952339015758214782982784278494588231471291860687863430132323590359872934782479883078534120762734672976455093143918277933840014575261411831067338965066454393619722541341709184558566334625207148346734883596521838413444089021323674392207278963126273237700977456017080032887174715324574512420794084186202555136362063232811464280220967656050409742777722309300492007838328286687254964328859470222198001370494713571445363590948243704670389673057968018537459882148643420738220967358510916617993697802909863426860186448218135256432801210386787615236208164413651610329679014198346802385427071524796359634608529625850982209266043089287473582214378781642478303110291251061885335133508735307811678231984461040592117593511468812187819083810432679275665032494742123074176588226357047290697706004626933382253980316704362277718812722564341795766232659180787698092933668769784882564393917932927265200209837282159582303810819637192447082353585973873071385521293933058794658943858441077339631681107625534151784312150748018580206386300560653328128664556826345012481061557590557550544678933990435624764223566397638186733148014850434202164826379683214001165898766487017408034222428133735784694771524045026108111901856230387942080755651365003631207920230686503320773736752869793584056330010789157775946566486485448883455055548642698541113777593581048787011346380594924038232998217486371572581049556077886832716580100513560563965923462482512076363143005664790006738645245905816674113565638978096007020631668665144283513879273026602057819955489804025667538884356990844847779442450185341434405758358123016149888333430839977229229933778330569320405891492320455417796908792073138462345849952193320519794972985393830158996670246057168350453305074467779300009274974836253523174020586655641965768363718651010035957376923614794287809043912972457825668820009128469906648732013391448303784768953013308723826998829824520713797640286256256481431848893846016335346649901494610722221537912346497586531932340372012864671472775813018472245370808206437315616780304453943462605739761095450953273209702087900996820987577122773962410732479502880771080124269120076365666995544048149784098715110011971531915269365911476448837826894324182855096962836445199525102010060038220240869645013368254715309120152280886046292424805684542199257991564654938090679665500042858821246737143673861552251751397105022304153169864375780729399874464400730697476939589248089502049109366123251573779018787448105970468099744745695732869879777083756540317244260493447531776035024213741336101695650538205908094639976586551156819130756828128357271243912168790453966696830367338107474385443905458232415022149329579348834216818933368604063255075801422165209674457369722133361502273200004822674049715674673430118099502361644350211765032361825512176873909824455050885639334342913911187612055430264582590956028950191149557017873817082279947897441736041247939011309991351991189485655226295815032837655988083368783665597662804828779835864222188133700082112483625292073253291985635315833573525397493856142318521451437579803350264212326104542623317172847552339282147935595878330222069872132366927083139449621465005101750515391858754584926335014067132225901474488471390811658009635876775508602736003818517743373516733521883503740260077268981122447977854407474606279995449886406126732250919453320121166488581007877511958326547617839416653455183476648993358102627268528809875625089285541078003586746892868942819598241276929052463609657162331528851573849322229181260937106528797148121113682606040857939796392764053423050681359215484407338623745004040081536384894311085905471910851922148639726046757832010679360212248284954130255834305151474299913159771631765995208202470817510000879379184400052359573237219598417205527434126668938416630201819800711388843548324558366775317729917685267819035320979602091743443219833708438669667928583549736910092565065032890935920676714287560425301341693718595961214298698061441101581789745966037076992908986392417700763173628179871649659215463657798561350597525137790341703260760488823807494588284076089814055583843409432873019999144680629753256887713048321712658265081361797119066419726921837388341722691335524595678954314898098169655366545403578223219799612505986514471916629636741408527325353343352624186663629240933976439828934828496264502204937534434135396296128485615075544238982259293830889119963008230429430107833862220705956210824163761395301056974568078716436811163270145082034219297660983803168781756393883239998350909876900250639621440107097405466868479291489250363024954944670142582483969247654101400303266457915847827457361349531125763009265581123136622595087522519254833906170041526575344006621170278024314126214604569344514776637514344209008069742996669487837473247195309978135092874797411244014745162284894920040062544190122258680832517831549369730960588184805464109513871475410648900068741592175449737958713650878507607058661418043684986013194587316144620833498979901037172921598794099577277111147286602637907335270387319096427223864829068028247585030224836675334977992904764328260239629188141448495542501342711497009971335795866676592316514046832567914257255637797102221831887275307867518925791555960453499587625975996324128245735531307067044488403314187394427370604958002454880360029160792846899900268247451267927406285423994640620374304254680207935886064487678772286155489589967664650622997808340010304590693538937464869068949458162435330920806780133823218158637555279527107093268150290469173990429081967063498352058197548221570389285669169432299629836903794062762043534839262708532449098438577014290819121183957231967168579315901898488959406420565118560870767163633794008428626161661767450880281883604584476523525045228054073795278155621658046000042753595836172161245958035088538296056289535997699038022821265582999847877212366248198124909710344927267494508683837767590101236634828541328553488837548019307817766937889748693684911281149806483656806898058756549504559702981332918995048722297969944902617632907779471133827526085060945052913274247176372835964025871608635250973184681013121808273769690191436930250065619372981888197370173249147141109852959878752412121166597074221616102491289171748179030664913878318101363814204087788893816886102135822411346442106211810789083747453046580413305343668870242769334197671085080588916239228972902341177644128241423930132495028939772599178022964757840573841744157627535476813502362991923626762693559185094991861839368856356430820230725124458902162153067230990041788818929340473693666794674345127508773467458316456934343010595340470713889294049973548558856672255952647026246981076400283757926307873978620668949395122282198753346020125995982227119095652935239168218620993330140285192028415741846030661114910701073614165395617834191672464398266750548075676886340567574214767264239835810952902057071998321947926032158509320997555890847820801380591375501312123521153777070476713066889563296342584260068245133867999860660458261442320465996581406801306275914827210596874443490517718593417587817450935794235863536589539172858086272596388898460163499186362599974937426823367604326217471668954404602458363266051333525830632250591007436115307308297048398802007517942721533799058155475267226329163706023749295171844304693750873387448685050809270193615354395973691432540874448391274797305842909349437610793451436696081206981903171644558229368857400634309829465729841495203259767704807393318642617268872232883126551729255690186469637277960574771566537847234434832561437446552666254464325490344351330516539811935959236076579742240231020156909103389574613115719509956807701414436074263969607299414631442264922050786336118976957051403480370357187104455946844320034096053273157095429906126439105920621189461195429418992363750685843141868544506304745636822042288399571097906602561071599542778472334654694730856842444206215202046359785376161569004325770527953627613880685710991957834353190009470701277368959986698896719969987468378237002701871440221669692005275138882711455812218030413144317083732142864931110464909245900520946179875584241365003325782464790928146348206886285812707159821785190270143139965580604624379976013362733009597707280937064995132477678969198054663017010664283968810999324409904256667842206396424247379396517056416103559742864197778392034024122133668966574160575082624213501193472330279904606730910836172948499268675950393379980824263409286767305047620984980058358797337732961322977031607203622988494759186156865315241216681675763211764941620751470907927339036612068937343050407545513799916282611113310937745943840200080122210190323149075672894063204426187323200213519362116299628172437625457183126884525660616361874711259062954493227113744629093093001238084803887239172530816522561430490914960311458648186669879019688945629447879933161807695698991678010159288814944211248747599814612031031913052511527017395783901947393555160206914482968979607907356779809357399434931383602538308993609952240100804143068078457701588448711686533985534319183176146591305528831288100684479669678151243671037288965068374522960246579054095829233598427480701594234993239086862006947542209901342440119926076768112376019270934493489204259956855077007593065069362037104636195298679117124135894808299688509388005393056482064321904752537865350641295710193001333390850804486815647907031660532383374597211380165138669039860161121905921360877870863951514016469290300654287500015115199471178090891396443709628779942977005454802942602411849549039417535066657890958557777553846591632538300677732626456716399244218804207999455763468469625310899540791642762819292336699054728740842087243580668150904250817069822844894842656385719115626347837029961830890715567680828039286619618521481639974866998238311314659278778714156295052845738293347311762280708775396252803076766066297975459647361789190684061949466142085693943790166047927493096662394908811267204285112995215455202978884808135526006093036971772045718736935080682818415083023551994003738863939626232780343561938846385126356321827178326013583803470328884873506060530773470497477744934299544779549532314016964491685489569935869725838128058417260665819385693738203143711572009104441934780721632274665926157120399734943808190913190044159311450227575653709076333059470604413015046204398102900600359597731593515675831363517978913629257146646410001525883198793301035936067691427692272688795446313405043180371715797807735549412086234528964388567790904708267536943231651993434242591276969347468294500229871396770350568064100535289053170851614506647860770894035909361837005913802889642868206277375054145886152047022302797262511254992028458197180571365341756612036052666490814212746140771708301656457969026819699414259570433584736860771963011993926042862463583738614093925405640639540611128431396686755868285772831275955772219451391512482969506006889068115558655666073001116200037831528845357869458354411460819000145102130284468403272669685574713605834593571971252446331445547139139292766025038495548322750957969524998476565360685535963620526130560279422951693875397541608364018824627838277640388641582627244200780459472044905730338938387519435001062372936759147560993350113137011803761154129009509545506227030253483445162644952047396368002918569042132520776522785726191659226056686523190165694152173000152884179369206710117627084228547428461466711898172555605462708516427440710703913221378890715118145648375566970408569400526562797768535656443698100071707959931595142730124944816984378918171377571501639152710840365993994515016327442010476217509220204875498287681393233828573516720917956512767906303697800675816513812533755990074273565278416232897371021014153723886000636338245776340854138158598673403582223528467192127435255630819258808019401357484987559605127100033384866165780633887186327790242256822968263424006568874661363505545837075397447338261294410259923953978594504124514030859017446093386970199411109063989536789091869151272113602505020121975196359977253650866545272830406757290888968471178630355554948003084394041750386563897897269939286229726797627510125179268297165617646020829908688336635021392823758599221254079318272546411299944366648768202653449231054977022668532401773611011275525394681175172870780926949881909447086417380696398833185615748545503283955878637232030982210295319609810819200003141005263472084964057809932932083101482090301161870062951297935690354207662136214710515081140969030690851038380068858788281128701420416365271647544820249042452658008410844940911464146275161777809630514829078883067733404394210750014389236184807010478145637322847156799805885580491486558547070828056157963972690433046275181870299521904715203686213165432581996120326135552916685640265861925885243606385087329993272718128235565272443641316628090911682833562469933016829734315771433972298572213282709935589047121699379633110263926332974456575988988624662446854253526513632206450089750842867220480214915776546811188992498222421567004477193938859772699762916041411325363768411845595818518941282966213369197211656251284691885631655270519159966895830916749019561858055243638053170185845391866023307572252746125721813958375574882675927705691091392151015493275439118633260048778756222694335172191079944631030898080774664585841685782285808956156967267780129570689963626907891218149612940203002462622857211219113879275864422182691673573639767691590920731563226227904688847747230355983178156508662703617598899495240724135005914731916909883750756752879321411576927040026959866014746156500972073727780794412836643597013077780561764375404553259536040153060290795846548373606557816941646446468999364252969451046873860696143049837310734151403283689628702333441670944822019980299768373993284127424115653968297690568777434594428690650112187357469244710455086557760730842059142450742679069496978786732149079944119764452453508664336138752274674768550299949916233409649800025629150220600622455419173922260487313879761865486775809071427976045825793393546426405467643445245798721672790672564649415910767242012818077002721214666040201576668139358385702981116511883104617160511344919350072113499053367166072802901546145869721264532344076534561811905962588838368499937068638934861542776397994772449257025533743968408338555153028111479121317673359433221479465289466211850345329259300720669950418837416148045209397498115174662734284706292917527912686989356492018715717110399299625524623805806216902656525143936604858713496219019976052460471834223746141962891701977970810856273437518293890625898949158342385372276252758610957698557284355259581130969401636491330880316497925122417243356025462666954927329814579852292273060265064245445504038699456916853054003045698092474541588519157956209312599379823982790875203968136390398272782192487508418213350205450408649045110671592724822481323620017836325518330715210445409018977734540437180058127776977911967211968450241564629522457773465828566346658642252889016711029664969110966341144836296285259065272762162781195402764971082610601518107457382580868225977891195077548067682005158066299479596256614808621674455615067251596247946954460842066938962068779333587975350232507653684132904458121536062373080108016896327172490851956816666036618150348749901154493088970324199827407759989267587563144362681513583520566245622755870179685186356017752836899493592543936539377719591081781088751028265746366325215243660019496360191242470744258307199566306247090318092865824257092876638604839265586946312596986701880870384981772551673315275835542350049552849257951572692827324242036349825731500147371500615703736829269246623523400409803690411004414145334810154687825101392728604439403734730815288562702629895758614641667725299702512804860487237843430939123398921102839343047572757604107969850413519322726356943448017205206986819950178291991606795466043596706561230995349274926235346905974706311924662380150623779725978515564409219358718615755643247583255190820102931641764447246969769197139112801629998928655752880175503541595438554458498045048432478104461063512311857098217369814871544285449339252345718516886988467434303928130297009076910032565263984816869106172120211494427029437157250413171914390974329373199281113405764321426361163454189349490705336116304799097382067093848765477641835606359481331473393909300962228822025104770449992768527348285484296146355325595806801381246205376675718789496174144349133968742762148531878003155809467342610520517609407537314391682293191599356278241495393181690380858707479865852777016944676000112506899496086636995114327871388060282393240399195496581066852416830861913665379874169560295879258585934851523282105679489803580683023915139225743176530234840073595087725683703794280896039888511900197766809288681696904938482534826597050195556576865301360031854982799316423962905679109351457045662978386788811716686035608677830433319697205230028232712458059860208069662341960965733349138668025846069600324892503556322897633766166014447183708686094342624606136354161739577264225271703314906968365224800270410847112290695624950467911539070666547336207440692077819640169353700736785423553328363541453721839539760548383854351179294068979667919020391850451805095913762465736306618810788278996124885943854924075256040835792965157740967203702980757731309723764776673368725613246745673740463384530305798054538190362469944322175409637785183822297290038274676476714553789585104276133916961692330326858911165556330302978300406980677016761800779579778254469378716220913893182720658151292859989359904512611145033612644201403706952533363175325999568700682204685615384242884433529995893923052878227767233816081283033722339307290992263038355118132362811996868609377298484554698593553155123661035081525784316427335951288409753478945457469524154215697520748415278661335670366796947125314986713886263945886309957922214845270098275359540546347859233691682306137074776579660237177014763203914685071221525656837414016564981664820528257522953415814252726787798365982842184780497547323347964535966080980558499114871220665505999674330066619349227883641019375888269619762628879862366656836656310993933392301849347953428387678103730143043579831297187927263273518322984828398197148200495990286108223341910224241458121968956396954387186122887687450017404561638449981301195815320930764029869696150903388744325426340348590672009571962638361148040340025384553959031847504863338744948033334914028049141390832497378188605662626546325152226911711765427969309294244005649574650401716687013278372266566164531453430803212625862220338922326847043789836827269520868052149326884182515409356548795369610273502638331946090935289474072394725104327504560615075088378610140478620342092298362960817474135154035879899482310531497524154468909563159360224239862988174393643978633964767961607394706095206291848612990995087512544902757376979472241000045102133251825059200376380938083888027362737288576235677553935237534026345436459317524648393179660704217685840127922219563418178705476786131109563676216494176961710622570976075618403350608480683715853463008822286330183268766943404036668475192229357984179249316427727113822914702610562346952134845498696994268975548929194297298956548546173475848779303533720372423039392089941719813135621504872601169982366533495940214534495928998138026383275718371749187405250613693082621331754099444181963882965178650876432197676897184805906450950133390655927723734791701764030127063427856835477933205480931650652812836070316492307657870082857913682051971163974340891555126305576777119536810400782722480641407828283777699819339900632292156300058541692036635773052171913101654245699739455220146261353964936156418950751104429984932261796060302656326812337491503011125070707049063043308518648045018712074018134814506863899706922842209446057618969345619790142878020174306511750019957919408210609400226654784687378000231232415229061404369330580188501246757271214249222801188267354801576717941617268031310480597047838733126607457323579316103033468449856434456477502468834871485780013168823433686260177813480256918477869595204299817592523088750071241986147371131095141410764584190345195579058578189994666908971081248285627919326803568224742010146940035400665944308613316955859751609381739979194141860940636466442783480656586320081676695530175791099886080168739539366130687314443616069224159958281229793577935058253796633557676788454552069968995681955309192716742665046030714831695714139174744894271228448848865444583289085971765799348677051471368497365923296514479645621638877893122127036547038397923041882458274785102309032630951684708967716399934537320446003359934444972057020221996500163165891741555193121278579239565022101350891251064709531283998476112725030248598869942988010701984694840921303398740812415140170602305221437559399148207079295318086222623499476018175514130144022227741886038287184867589898396448775482034975860864928353981169920114557827152930992523660816638370655835648777624806038799436346141102570006893636322296473987139990543976655163865402727190830237617233315435968251399987631322418385150716880817393650399734778575839107229731968072661991444799289397020906500271856137713292048502674246628510401718379313057267540139891735922052165647786731407043264881939391253562516608739437466923947692859158481362183975639115280116098569236661908423783821937083851349798541116867667498787728158021874624946256442988501863118220904607038084209373846748305250008638196077572835343187174919389867416586063492623898449913016141536661671393943657244473211834112337081429616612738506064370150053976373407918904286318274075491933910736399949349960624877537502538856555799510272485491854984675886898588890461070639122221905834146333019778741224209707625300822249258176369815584715745423135147267014043713031513186996654898090736048534585708491219818708381930179988841740643831297444822185822964916743862771702445951443115419358531385924549744453181889429509526723548518619887728563754444554853770108359519643421690495626935162371165755743009897563433494627799007791918905923231936757566468260616458473300160775607323731609509234598437150364380159685343978412261423446668043231013183404945229684239855623994772182812999118401972972243904616816909032087030469534257263330424608817279816690537728604293767955244091244378816985418889673151627176666171212693222877435573070227847352769709288293579605188038008990418554868745992707317598581167881826959808871192716611057997157330096897626005562798969604221125704324235958067950143212282607734484398272194511647460730757152345512857579638045563527172088239046861730932578265763257057439667304786416612336661560157718477023544141879418912331070327457036689476315097100901370179379909652745462015839012972093463775505488161227195523284567240240186126144588688336546358933513574136129414016348790466979951303650560422303488219811245557162300444792425597865078177843188767350670795088908114903997878739765268991330465404223761741854560920023970088473407946429145899428473307876245298101801900227209104607488275080723864044566110017799898783248131950773492570448603849078202938177237353042760531723998453067607889717163729159626240012160062828572088566304913209050743019854914781301664059988058632288600077042827165194362362928186911127099591972014417150077721381317298187588630500856316526583143217375040453867227263510260225891674187149045052761975126753187048673727193642801275000371414705738997008300529945753671048721929343989037504875743883542760728956908946591988584831266609275951830769372606125078568330307896395829333054780365824004081822020604426677530638779103659193300160958917952676372890976024791879234553736183826177580250555787500542143016617832033346157011625602103580553168671485973982842943169355762608300905902827611653543657934293392206764737266766377872174723324552146449471759223173314073578533024821691432200726974973532337441270131017581761326335930856578955492099859458680580243701036960370780414383929128323706634925403077821185345415648148444257751681516416482112634794824800168762339631062336923317098121014007050545492818914818970013555273291180932854242882760519558625060674115776549336719126678007734113362092219269050202472429970080199477430774333004309396240260669900680171407112403908969764085764309408419817060964897473451693575107949622833512988159526923037360943426765698163296103080547673327291571790909271723711164415882512443229491082530900886867146529104069628675591881437137616460016658294134696952102673887657436434533739893964838032549321312341413094632517669643828147582383162055921001174346335551859197898924026857916832038377942070614396215599297024779165250382851780525386380144513540468711609255035968404073540392748579099792204734606714592344817673718138183276982592613651366171629722331629143229143214291903574235221487922453978761852885391875281907157207186593948340033992143432076098326546733975726241636539553309350976211386687050811375405681178008055449940716657922276620283651101673086941252793260053055516583914376981963266968416079423257172753748585829872347828942886820167374953967216032485475495704609126336241678085624307584166256585554046297895514275352854771431520107473613723097904943985901273633905256103982546275039780180671752388368049823219420965099845471972603560334439923143787120560584461036255740495594283356903531933400631107806003978683015894357215316749801916897201890061525396317073401010931678065203072558603759482059186238639526168174513656172123845506696187473277572053939704346093709186418615174688915935510291894698264893891755397396310464087167670274277274116832107215130347667433303148781872556394439215114633428896584426249971254111769203182468006055768062011904541713612188341275136834336611434832268604198016734997579935435964866575789388479997275053531409289187146906970647476621572138712698545947064091888418362425166286003203353952955934702481598557787177403576634320342783128830520660859582105111408181757664126616110798251526861895664638340627296493340841094996566806388355546859858634231164690483789424153447472255518190918822774469975671566970347809497917290269993018009361270773905272114566049742643358390412130019774263560647999843911929224752452309353283394893528519547950638974478991505892242577254037914378295698381672313147450064111775269466482937097507133553755452724476876882616775448599417776000912140200369640304351611679227420261058035640208363247919437877453262717511575621164528099071509275100785237988701453906790512639975760849462876448059591446570583806730043835779775932415926581194370260058899453785044938980691107116069932404081024035870313777769256845027452573044373209417857132077959705887279482894713973798781810691218068438755902180360696806803039080265106051270641001583756982214437669369168145913319444664711975071903256787711878508318954825371735879250362789338859132788944834919390784226319150195779610785793896248807400535073333932735696348750665194008403957478112458106349539182062982727430098881722304327746822089714733071770033011348338218972179957692834415651837021780229484067131324096687100420833713160464585622061388913706892875063739755888461688796967284729760898054551831567781369485998892240244046845296075551824007243373846669204178415746445082832240942513879671577876677571860620953268786341865806728816854819736674099494422611496389024211096508623386709857803170053018675421310253310428184254312464891899937891159522699452949847889605948627192960298310702893107789989541044870521081286746159262786475127539359306203508666105799610236130648901913414195292023859553526835287944843795536682057479531211355413846808152388606649584341835890021405632410253231901495099613714972162821581442351847081236545352631154696263457289740900520513407142050030722531753380503371301114127491198344652415249005163281322214024688740770062128436116360009701666940535106341984197999359589854518479388642157856944130335404767361603573426719783122522515155129458998435548471058000212424684697960828158844488230699756539792191981244590561527014628775541224758743139015097136983781643188747987197011864010050919961295748869905418569048213092378111890521956481447246052113370368524805728769160298513219176190889211590236882327450272486500139536028751855190972224907195544200623386049108386648087610853286096070460890122276259888295445772655936502081413786801143150056109872776836751507155109853319239283682243039408161745003876824663900383632852073241120038483213524643960064436826496577727085934806583708621743385021000332378120386461982290599702763551480716332494836863896142635071974954866397797344889912100629325234482062231075501297991511978398237464277784757745926965537600400223824578061228426623852149235165617919085940125471406141979965828936080104600009912755699123696664202082389794502696727765771549933025876460163803416335448976951884026898307780625790330779199004775961819836757083097359127824717262704142397886686782269266313893182243555874494753791699182426355450353212277428681051756240899580119642710778369775143600058263119935738929385446073144386237419279913029101130046584829696831359259614855840895090533617638287408861200568147123754114817757332486644825335022513864089997062407617063316699014457629781701349037651091942467013091508874075855102726432438775792614268365577367758256252423620374487382179700669657167209557259176281556759585628268130092590618385862367544455186944565547648943262765851212716474334953066980314073883238437354342918979373797664470739541526494861974643974125665488854997051072163738024902281699322296637032444984826241635536427139284807676104211214366938988870202190579391818495124399107448229457337543975343469262459926759391774430446939973516006088626150497629122628603112063866688838041118746900902500280458697269045428364567228928711452473076646053599875956144398529383187372316520670273610723964406951499543354121541052623421557217063726979930943429071858686396314140481138872394934840142932791460281053946236106441598072631882950835641169911488218457531736192406286287506930534092591749344222055024956880484969738209536425419891420654461181691018757652077375681671590400834210887384553042057425890770470713649598401461502849155766713740389275074472984384903913389658330636524921952370923409956043841482643117322520294931873128174571922766689990709222815563431519648809468397427065624202879627772101776049561049992910184509447642359015661557035975639464549776289873387217254785106647108442181820927485355467393204287508817429141213672715604657892492775762272298735229431802124344933477933324303103230047987097737215973781111497990703347040826251430129358683021816434663512356591144725937068999738415767206396598536281354532259371749049905337509050737538464414098365686237860631416211854904463276101170116992944300562258826053408916677354043312738529366171208841793015004259581814079871537690607982623600287840622576009358120679601531970580340626725011639435273694225687348510913010748562534009965322868202434639518441667035847489686608914101202226287604554056147263772848679893933515091387179084932804127020194849779230235435259031634302174878968445417175216322382800658486901728599477070546943191667530381768015302131446554328516582368786653943956998955297369330148549499362200530837912921095743802680244294962244743512664604059611405130037597055045711486787799580319214379763104337779586859020063440137837913256327862726630799125897288561855052573588317055819093454851394776693104210454332570187241400810688207219989672983073757877844312053667887378860506003625358841162338796517567405381949570993279319233777420802750631070264128244160226956422978439880017004558268098193667930328665874766916775374287093665104265468061319071991677681240593576632624000376873476109172811601177531357733368606217130044876297125374409289313186319563425217767360495877988441622118181942515490454351389900245739084914240430381044602965179416186156322068967468743285720907404375188659225833957285889204512584454215584116222954079367079413705669888142559199581306706441432741861908557455532334335850377176776477430358955999693663698853829816680843733895693803311931179385756492004430453039159570792802774447821369933378428881356911604046043325010278273173806961184734354802656968510269607004023565275895846212336220398656312854411437888031281695340459518193093287366928417608772252455182108543753616544224245119958102934378017666843290586813120624904050258853230661030626541921332624750041957999542046610868812266872628122378946090726303873295378071031155129269066839769811900986294055844671105964609183335026223687412262715511565301709035143848981860404460258695887533509639628926570232861366248405386837897533626548615042019879013362946130529537876029861379533673348804705572417786142461196329238502332780090266849123055754009873057138122529008697262366617794286039616137270556687912897188539210713178859784800618515652078266078583584878424780454529560861037243712020737855841215886947682894366681857983931538867491826753762485196417547219951169479372119090933705364006576231920148007788975787684154480973031460955658033182641061974470193687550659230841754799711262415227903131668486074436927880016619460477756125030511125957997820591925363377749406665812514712458527798057068145145486818808031111603819386378063836607308534891591701213822096061513745827299101664964334198320080481919131336160989382866647826555809896059069829583627036828670581463609874032115556899522618947146105827899961911806143549165076068922944275380402611581664383196572775174995165088515968801260844551418430861753564351381288385737486289095893130243085758920803367687917463102707970333491828545286095851974286268312191969943955552156941732834113839041116979865961584708606128724410921174815147275120244684351524248356779093819021621970869292916133682917522065496363217613629916200709400331939763701751342833743169510487314688881356296870635004962047974597013645932857379063664242577701440528438727106371763957307708430622653145722683259137119443885510837362668931580705451233120164122300985263581059649423369952269224882837857469853215916788938197415629036740864476683403097345972968256034456870324547999783740607728583681959515662510145097085683902235271933732362374707007476263102677427108106699851710101742339264517798019299362556477928123025124881334597342973219398944922465768756283920824102830245587113518426232516335835789792388256230529196830043026720225383167985349550616847687734608584198153793227860987181445069284185956284464958273494430804301493324688527680650119000804568301789198897188982111282083031879036148649450160389207831826962571761389367328375175786223047694754781483792909419558025657978592882562232650784922804604480714978014747763735147702427520488648018113447289342676174514388909308090155545159177416212597187585830234552105251403676687555078334185963611525113428359298960581635702458999927190855300469534994076660187427815115752424389650996944384972230610121435964873588337810031920062613549104681287882131893336756300604163691603091957031597773965766599673359154933344452027267507841742563644992946088913433582110748341919586742614486533752545359205010987434385979986666374939885608839783989366030522115354340519143190810252672795171661218818099310795623684932216628572822396434287494361284656464165521956551689956201923953395987101805993702833026907505923500854132290556816009354039735729500950035626921040812551193331278742127339947926019009412582006339216774500790441124722233769015468347417813926382681115613269852691751261286533888817914460892605156497748659894152197658502961888689330084588724014050904732898934350867910529746844516776140683582548827003322155954118482330385367073366418068316079206437861535282966417069266902558072574612515368340990550399921267102893015841578174179457339199782811102886940664165669618610589131319816222210748136598731124356727132832121135035843232447469362334931656691760968266825286486628561475560203529748130197526691126527855150091415775297298903628610207083657397597218607747389470709432210431853129978390540764471810824854150583797642268444551627050057230719332338835702207378818195034340498419819857353789211811549031068155292815269182778302487491139499085907709933317978656211796835062961658057462860363257566374396823968024491291948116445485432315451051937638438161653018665864024686533428886744137020501851938737636695128740707076617561287027615870578546985660631752323526717274966348555728991752381542675114953148807884249815976558449624828735091527136785166473772300777053899028823406261830539859452254371662953433643510708712590027745462785047764722797273171210305865935901455544162911616190481360686546336255146049291419217927198358064400304804956930645427252176145889704042087055953794640791023882202641863679471643129291079120641006951524491394144110694633216931094331499078867089177580932960965208567190824273446473772295753784304174964536461010832292116130759851138120491045690996517284430848039524917666191949512680807471086580468471185918457168831024380568750136862718396222590282988274281584583141956144228865468597882712566520876495543776061940407740146461819655944934013943170262297023511088930464286405653665048471282241978245307410752554201580772075400770566204923945678761925585663736494606359147680279672731711925227736474439750654446151717697878852747730581092597442066419423630981407590016208668030866652216536281424059206891757248560941158464244031464098869905783433321761760058996855276095279482689458557599187174145873459311476617719252164410001459782822323668625293941756449232055367841405352777945077860766744954630818480071219086996410256555757541033854031977843639370573093690709949521679087697133524747082127466672132786471075044856708430701694138879473531987468920194835742065748095182588155270979388603370136441029126962883494136051409482229913737214135674225080503697598078218359549594296805493428204882099785403747729042039350813783268724893133988523030382111464219290043683182540537683927793416139867766120723966179938457542031975201225962982232943356360147143826061605431630526778769996950813393346601121526012544545899523156361695058712589465141512249874426988958625652678982355827013781260960244817771011570571542853421640003830617804369516635793752263452958988387434087095323502229975619192676011914106461082724388015914419574877384903702284266456173435485912135281519659482103113074895119393344207889907818427535584228645147398250960494821495415319104410836254650968196488058149882952536134158248892897834245318314310245956496998058728070556591293931346572342088552235341447107692690905480340232418387357366837982693133115973823488145165560284419407722384071271843320663699005383946228700918844559077350624615381602334891843027570796446532822585756129531736236885340114803923680847054490959131690983008767558476127230456075217777335752818648020669601983312448713841441882001289200858536596424606988868763761032565048774300428296866462102206731310495226684647103761598059445900027891423176852857466192743423465609855052206016824700848625375134359850522693081700552873343436715631042719844405751805630660424218892997303544358785112337514745646768860235048775373456884088644009051678525264367378753143416461083753186579734876628604935711975003413092950713041538797547110455361941742547916093450899356032652630352468867953751043933675573962661469685832243596021527893920586482159465838115802534782784828197847544973049724012014096347589819982708007990616492907226855899004937585223929316713341199372400204940705687094676535518827373397773458255420089997649093474972710706770026030659878165298126849668170542373030342595040726576793292658542195549416230683428142107099363569558688000014483743743371292517724103939826924893915653334527421537076392443136498499355663197146866859618762806458286754012348888145103876991113044585288213578357375870031578713370679132936743250941317071128139506178480257401661535570305908951150244294097171193095561569089751740449063914988830440963745333089178497572805589480804803931629421655493757497893562734214084972387586500545095364634299593381628324944278372550365780725915341500473623014835854862378450213985770545572644358368816069295332949677855502165707139298782838256507079252886931712130860831872229811074864665913382417202734924148846209750005292104974688174658494328910575859727692315554208779819624686952921940205188165419226487108443588848904868872160059960750397177401162976231371887076148755470556329484454049940058129673633193698734356723548649498963908743283428184072929805158476569329921386239366492668685878687335616019819149489986536442040889339377407875091328099811464520872538717343280356362892493965905371052629447841140538984709704113327852101192804572250874912762447333155448931120410890508625124366451618713997609420739914997083096199945455166052491638101617239039989501540479534476927724464918101453802284037585475691661744248915906724544661981156506695861615508864179599599731238712423899974844357475094561475856106549551576890341528267858902777027215254742811505633288909627284884540235736338204420200505886127696181498966971862415197975340816266426547161243074871897063819045522053284783630984161015633674013400206247540515339277364716530281795074631248475008831573417555266508964162511982227304761707530927503011684771022129743809195091664111759117642020599551050868994294069987805596759908299925933603022118144244021336976968939142914328893937612991768633919078590726887397930032584932237552494615796672989833295561798524872189671868177628891538403649020983562775653150249358022418237819105021617823481496276522388080170923116787999825607923357349716626711539375732982701980201032522210002122850848505008999399765369337338457142814517250980473241707655128050370402623519280618637070778032939487959063156582002918603830916437883682095665548899075064118668274583471205070461485147981464491832953372323775137677803320108650892741800607297825259932058352449771444051510399360527752050166047367776628351499138090409897124183529683476272497834524964179783943029454900282809657002687233706877958758967775072233457455140990530825904637245027724968122604824326237313196523745573712190206886437379216942633021145937538098825048210558051462096938495080198630282093968095971492077233373789070912448797047721078136198020860694302668896546387633635696972147371737397231779443604182895225257033248996574790723261528358721592260198354267743033028174947168869372347387850863526624870910384319176560735998186005277193959887862431073494623845034173653397303893058770208338337655976327047721112748068703276595597463308653122872776062835722094344914340483152157828876015483029197634149098207382364522208966536531360896206993344600033571472125278188605246233154150093118172611085933605888459892948867298385919737738057004014333201405394370942961624709324878732834802653278929101369818099564366395703320435658524972130180042860060757612306174820588453123352597560328618963445695928065916542782959646157555726126462911030321911048430728731357587414929972842361841003019090954683622224473769300468486967830681189411052391469069799503368027724359645619184413574290907816937861405445203112112279010784502108949409694395059574940548876582776510516757247886033383390082067793746000219276429750458624510718170109510443065682120568682491868236158286552711107232583948155515048212304805106208016403766461994150604016393637481292137661107372215366786162958435963588729790469803538191725919938437698764800849888447557909228309525160837725131832100432859788396097815877648957239598073240755667998923382087401520346098735631489001871049087992356458120057774649849197011258483089754132907761183757458807746946037317564170012025797560016053612263034833473002405331624652000245672752268448399906881802907022224354775455797967987763172157479060487350959887280658913223750635157112054559496202041370886463604578668376248580028562485388886423361547015176258074397386248678807308650380128224080431133953309861353049987893911582421735079768166716211340075257752744774507123787099239240419612870105697121446018850755210760834631286885518520237434966823342950497465416850286915831541600182930627480300111514693982046141968605998970006968356888437171992595327440942345023428859698159056167426184671462795306572838211908888318051947269518043346527715283464630901042197938095733138900833187484432791256189085120405741406508585165323927535644782762073814870250713059719101909794404267500794205328705659027260408300698526800262761304131927376335879229030120824052565802126498015525847019263310398085721668501257025774581276875706707448671483916886991798413649003465949746655220774307648180715522783387248619570302615226423699952739076469028973702030125417333099262903482658832672562106065282287773600937544417683835829149226874910696407990864687197077655255093132812818875136081513394353139185135459108805768668881364518464611016404727112197367015289328743931140958112060071657819577517132313591296782499562381349421535357330174573371147312797309792569794751674238505442104938522292288848044059725538809364017599123758294099402646515800500125706956008497100136321482192214950593080087953985909165032697912075356836035662021006239905083063604655100879910370556143628535102774094035640533097475505371898696048162368780497175517925305130438473590511046542300898652497326449324159883053993694303640879244545465859078713012348096802380096700369455880269753757178055210035993397662886782363198366602257945852696082688160821093700414998858558174524710888088787540899534099998398997888607740630448800316928645203036651105315980697239076961238717433314130819855027063496517490452018306663988837786228556657673581767461256634034044002146433440316725888722174002713121659235492636203607113922157948907536436759158561574897901652453023830335964353232016699094588276241366966637230791342927825441187695789694082271465807560492171505866516166163992855991296478722999266385862596414308508168783036025788357878102269558033787014836647421946498666540297938745853357957594051289956916597373002791927097687970603502947993126642431625419744696567616549131278474728567242202793179556063033454447666853727985248594231666658940069249546138537545092449695944612479691322097519422613797461786739109683228086408400749974599739254371346575093336548047273506172747354965293435949172303011894237806380647215741852728873082726218350824939329850896196007637024300727103791836011428220928817250042927121076707753771973314959486288699974907113827716540189449394939794522844117513906411755866456164077446559742644644849819377059800950107452832266923336445640924101132724860344849534425092151532676024915177815132715710382723770890997942796325097396614492536068083471461126147644875226320537825452372836871181366455793263803225529028458215475875150518488496388209190258040689844476567712763648612469301004414088306190293802347056363350073056572629137302889732324200703223157316174019937342126282063517027825773223452504498964980683412128083083058664048210389139826039635327595088183481975266229227817047885481047321201963303185390679386905433964079376068044224008314211054745049287462264516203245371610167649368134013169649386397085506466528715816919804968644041461181131256174718518057359288472813926274748476876598961338376132256580726416938323625029780409110149332800236225974537734419309465757161743791446730909918218667576797096561089669355497691243986891769261977201783955254742534904067622197127458608937180884406238893485212009506938745000749269548397133445727763214712608947719368661101009287557165049679813765117103301717692963838133205660339125011222019297412037925086907172185003299762063964435068800725778326327002618357957234997734521803088541654573259324820920684683253442052963113550340602452033414318513470812514207837365860890862717952431314072791459273394358284601199882369591871563706886138410045455077580101061226815679211613869226046163322285060465052826567266903596953089760293564460636464430750614031863134772949737004113645451532512554026296629141403234803656992435251723340170937677030431281382648428542824232623201632750949270693166095975845312418623687592441869056595598968037890357952682238579600515678479223299015502773236452380999721592907156112208325022077530095624178841885337489843112029923715908803466963977796193259454681370635094971909825449461035018932505963300595204011521709380499470460180425665439226758746725693674473100929117504168737692954708341721894692188858168967477073737012249019851334454404912218040512785414117626231071425765701083830029752556027154467213068652157367173512612014314558316797571705723057184439120470924306973959738083846435178381936605125093383335871552947992422659068951917903028309800199257647263829623342425767910348956188803701114139971286462364876168991149096064332083457816926239421864821931818147784104798353597890698061724378751342924423471236386252833388633960688579678843482075235018318551270073741437181820141928806136757717834300958963914970112467186970970580758461615016028952269956074193290500303121527587274414877532919833361643407892730340855475003135695899749765260500717311303875662988218127774265418133339490513815591313811960220632762492923805915694125398205252304978036521525886902306088832337078201814285066318517010901856610025626217670193321048206189662424002431039131838664977466586938285597051483957159824179921664492880915348564567956353499026587141592126606317269847817517815864200075078247195000825651843497469805312724948078843855074492212358059073911166492832386342467831270223681070267503997786286716854796809746335013359340212742939468909236060946325146230622209870310662268599643388749991314505712085363558255131305339342315354595889671756002820497253334857060877031776753852451917961369096356898757481890681941664002441318553473770764371137458453705011329489546364641292377219015084631641138094901667733694820499466494129393770744269706049991973856504552842609659918108737945541550209381337862902631299120773039967059280574856293389287898751360340430567829277681620294266427036056934937456316522016240861278163654885749021261809888399537381966902494982590066288640647538101459542763852281124910078496726445577070661015485313595718287850963919744039422556368434034697673735479637847374766663573065346093006420940538491695786964739195302861944951092040598908512376542304291337255906873109809696117080119790871430875775086803478625046702621316925603478577224824733828589965418670951867362873323784351205615751874063529551299496898157632185698423390346447730528136675127828202770966442956724258338633368365408206710808944697469353770713676385344880840132269122767115116052960956355515393466078413389720215167764599127541218171052413897824143486301131769822392538598158243613950880297451264359267567130935196787645542381196734985572408926902802058704711892309230604982837710794890309638602989847747148038585875659038253596625705561454530329100788733029065587125033769384521574975614545454975708128130261449962947483800648211444716108187336069104880746593625908990184710174759081910951652227910943210084478746500941399108961205662245025953494013600378022619617103381307754607280197412734825269876287456011184070667444782861102298833168988608976113610675062602323445543151361949461202489516780127403220684746140742401966399909889695441880270769248239610564665753357707828739020630417001299754574628009805547092439144641383820066982742352394265787148665412697488242460151880698319074865788222630002577010745238882873108083014324782547476825664182726309417156890826981739225361774899244230880063434812412377322672754567520500131915753876731217971589352443404974105861026908792825973271632500349043787113796154628878710794775394843187157861099959862784718091620044429681700096321660768089831670131014217669276751218074509591840334713249218833978320853493236437260022017051989006957174044467363846761978009226425217120069526902873589912962068374271140205376315295873462522030045520812542400346810181171775819470403481588269271151156720075884819453595815690473323024070087262830076346125562063785036195638862643401758950808330018258883609458451358761145167742469825019618357273978343313811019293801700220006817301445467144483566415022155165948243283774140237380332817985095917530877332927201568688918294220812366485678772313859671169301097619393674160697344411777654632723136784353680166845732728200818858686223740139961412051393018243472284177154369376092269576531199605873878161801373265722901492383480814090885692441781988834804695641063492483063167056855450107100895200526833526674980140177288684104567338714011390585533517810479441407316470118379425981202112950276645071498471304029899451269221000979997846038269263355875368825969946793942658185290393473914898939263844169273164740431326964460067212163276821311359050986199708444620915083494451677383150163600804186943865885070173731778899781837769925854603938022990719569179940637706612694394595069191162953145399934066305612794691258655140958306999311202613986847820374021459754911610680672661116084955834909980285443735504005258144447322824315107761895544238896937724607745602492366041830621275598257502055076892264735369914287187006270076386247983037587310735303236847576775839400861186608981782320111797252266434371695410913409770755160112349999599737666965073200075101413602673736417549636371882474118129606944795553688137475665020436741322026321287126635832805571605434276566718966173612125376153528205413464895918257603533225904314905000480332187189251050864117063863622186440480651441079644529863357595302020435785955991850151582431237976086265223618936717401813762485476031901533903834835667608646457703794695786141415313936682132271473841627450537914549536432632295495339142399761361167583237547593828382940265545479664624262419315821391655714895440379293753675085003010640016922849144566100132948437524337628502857955009372859038264699032787111338762822061108367625548057627239672700198255109023645025891040156351486635194893836309776498291892991861460832683391319556658880858760364636017255378708489340931786153951465800782728678607267319179204711102259932609177779475278536598422734945979378094321585637837801455154646341946884448156318085174474689034970329718486572523777644605988332740878870310991752387660770824070066168822562276870165012825778701050177200434545139762838494200701613490776023069244226442786134826233493307725439705877141712160176581418721098208572658600439538872479799548115752348463041422497010173113636645901819744040163340310474931857272556877287033423663286229390533761105987020193740156465248951075176583724512226164898466634498844711528139533987858753949438411317071660767194854015502663007310576494993788038210655029162008616446267852466798142727989291140245420295640589506883301742985405507589937161016205801804610635384315920915037351396248517413241268817343861806197727561224241172444317202448742494425317583631899340769489429032426800081639247566070765899479296932551508499187411846316748777303942474407683537786713673560330840327843739360890910772149917728653390835672204729901738497360606856544190790005396895033060407749910944607425541141945909818793383203069646274855117575037140888874379282227059308203301269104138693639190873468493837844398570778273251601962577362298559766082997844288883691505551726935844670636038102560055251302967132294613546186095007849466690230061092238664482492175244281019584978665368510119964695621256121918612339173615605730156661977301931938210089372387989788384203302624553736090501414997294685399395689878913483619437576206122984684716229942120466431153293420881409272002239247433428677654776881235541601310689013865679813622108474007456905699941366484178174116354354126365412433479453467719559176702140698815532421740982817755401515701297999578313136043080923150830611164785340919718649439012840229823631583450890957079760827079659281092979960080304392391262210212739473944058087415806983086778228624156485055881966900329688524661295323041980513809245455168982189615754786143015409085342445723807433432302078319846892599508330656035733748612133457769619678958682979665459132961001328964284178952173140594527792718931900106590626137651925304745067894575361598245726175341907483557262479279723337383263146803785674425114847598235969564573664562701468381315499281407977413904663677340330694845132487395417947457022001134821826015857080645716566743491328508518236296656731310584576965158305652674480102934296017787324150645230523693007606662839878104319174781329517804193016738974353273258506233654705746985938102297898809437587650720554695492666152413617349381729448541600479732644531849061239622415601430192698940834043784774015788661624188480197245939474725521376594236728963441911521749878794293492850961901716924773606091280333317531660112181506983267988690951664863953568425384193489973220438996135553144055642686853484464858258579122300385436944523822438671644141333590827640670633689699536917530362183816214812070876027300217173821284973307404668601941783218481265958751930321307983607270899919257014632968262476137298247017274227185396419845586415263103182592444849964359049303016853038196256939411200328415671797215476247942361751555057076514894786900651794882837636099002042950960467347451053494320427627472206686085523525216767659531951487090589157958561047775387311831829303297624069678642266321868201448691761626407314224457308588468591584684728015927353343177601732684696492853557532608288263225800857185441311497050146702517066977356340917307915599477628518748645388332084136262040860098272179161263105874129596866351070558302002730571109618800680406193514871984484822753205175858289359820977237371593759634680265380854033977370575943074794811212187902121956339121928675903564789801747990309450705541518262110368587869605740027305836117944943713954186602647804164609366340091285395801275291775240970194804777512275211254149336559949073644097164975768452885732929487792350683378450425679727520528095154167319505907335847292730068024383457264033609861380141549388330886561500369270751523598231112989389566412731928328272930099753225305899541000602059696676970882780429539682559325717502055622073619064401122738090801125643344747238801514194904907747780587087957683751545336733859823239054788108782570916586259038938450533801024153283801937764098961572189117613571605411180414043539590977750907300564727838621707389897198864949279791759200488152870059191912109345543563443373272319632729131770691856125286892311911636833449147227615920029579597833680779259511922593785685436091760321315396997148807521839283393039665107991260151880209677991604740332705094798195985881553995519863674613270763034307085356386265544032765834419061347352319650012187925881415908236800859561637905935455418234883076349976188904679681232740595221556152995604601967724462929854332867844125034719933711863180221931349802296182738474821407048369654373029495026307505338803304072491988945733593507805909193605199555304361238997690671514412506257518453918243947107726749862202205946079875202936873001702151921207391214294518263243550888501291812663247849116047640453697276689202113870660750244679235687095127364805094235816724136008220926556776601316873001655619714494042519031810748153566820727871316974114892436886526545897340021503061167441065352411880606894317255558210668180456882379914513394948405279421376504516418787299039755658597313224801068426813769184806164548806992214883260685185181132681228853174734131291913258341915471882657528512602852293182766161612345775968565656199816430782500294538074976821753966623856551562894874484309018107612149036666746987550732220045356749111085507140281783623077598190123729804316990103984683790132353017214218413901621915215382031140546737036846975964259275825068682775595202887815086161776475795379974462372014110236158033592305684546779391397949500463578956384895873402596224255552598510463367778465378938380976225092065907054673580555471172257746291980916376967314831024372479066517116463060886440637285126968136992927366286237652815776861323310015713592395008395171292374649078583469747910364413787334192469757321355395008530257717896265470519520166372186552190957598130958521207379262351959012351449494303823059592503307605468516423719018818253603201835001135835662495598118137204436972855088968546376112532128946976428008639573983686740875418032124275340997637140630676025778090459342857782161401731885236654830706954711296705100433463559499842005483825504924073160090155180202460294273923340069667353846597500934814762215782880281523794394158059119037888006789945104200944332663267613855684480319214910804660966279152087330397377995472970630766256720194179821377390608553723599796463610104344218401616465329107326750779240403679866541366761832439122530780560212279657813209585636698232102273245193680733486312344579779294576809768043370942357096531544571671642945870941522300000935897023691088033880975440813518831696391273269698807897006707454934881513031544063296430752642590105653814707175172636450510061217172339376879408417163472179075370119476100610870227241925338953918778465118407370314131208309875367060324891634828593927869531953667349059628889593013532417634116844989768064000387599213095893471819088994818523622174976531575206145063424430416496921891409593725983715344134548643857320305392019558451984233899228166867882269334060276016247454316651291239005797898321482466230228075807715422013185859237803019924088183342011966485672417562332057415238391605287678099519152781309189044280376706473449667915222940081034444142999462960141927417253510732415134483608192872201983472153927149252693662666885930891988045022504487136057366456266202887328159271333097733012203957298960049162225645862701143938244686603523781896354304990075397701224580259182820980729397172499176046573263444083456410923179330166777746523488315967259316408499449477036955291149138504906846830340227709827378746399442103402211387143923919990076351258581973575315818981084414425420048484232720040586989802100476594898563836852616242766119855688124323830748846682278996497185450533084460829820866487163687185940509947771370537938753979800411723595830032186572491702454768089253774533554787682526648818246371201679620075879335224340784614607550965568769767515818019652653124832418384285625955764934574145070340396929406546704073158572276461584150648140796588047044333230468683116741430577526969993716617703735763713916807169457049031420699582977158402968099702105431943983544454511414189014153527863132958739643278922741288057120055280684553547759079706286839510335170522025611440291637478397998356092958039132392424973797334343920346230695127722463937654756863329308192117851057773475006654220661853574728798593083199650703240406586363096698341864904418298469598940093610332194745435842005909421240469612766988527647860365498458168932834931456854063426308880036275040379619360414792587397521519589539437342711830231089152535485362847127090789637046589886813595335388743928293374018457858162970304529173056769485148577398346864617062487822290863678394915179791210420984174709178462001552318787294482905367891369535010292490160607575179645831711042884806843096949262221110108890112762090753248843320834149697817311121684658587969183631818928831017980380107681798932507245842662421399657489506434720815670245117279280976251640774783441712031547474450082329234980643689937918123675988060890241860486429501524917843018744428162509760504706128671701806148143819960959331235979116773478912053497617437044259130066938214117268007243154864770473715806637910552950616703296980292156465992540074195424118069981336708974902712096008412179753533212022511835115685800370380977932751768974571107152694417798775201922802632574093021450148133730226602624553833684737802364966946097697466655927143057866475388319052352520547154667226996285892040996777206527876961489699171260434904400607184407254950754416160927107766327651895400376001969709020537378376824262371054523247764041001482061123596029275570328296427226443340980391807504573666548968362520901979167436203091026541899370489445649235686013744040383909150002337273521030844111551583325473241532479186370836312137530530286383288114750123143484015774379020028727469221615967566369212197282704635396753254013789603970608864199880418154741362682413704112719193223392532509977728533075788781470874990026685201697374895917935142632469367326120066304004184557806529087678979222852228776716536709367562305698559642660391516074679691366475991376280797825379179780396741268261070895687760586640115278337145042928140346411037870042854947065792078406039289709566907687452396149461615948633125728569390539153220321154790111900934530004868690332602570351911751492663674316652569421863522815975062486455144472919726029081490663954895735824431028863560815912750475213192312738852028481343401645195510971735272191682975695130538445700062450661886216182747512902957250720460277828411186591577696171719224275242410721029869134779349962255627797275412765731420558634352173332859196661135824833010427173693011859739410575110103927718314379222906533661544097288445681693773581959654845639318763976500383650789757094277024721432337115278194597188607431063037791567874440592119776596680962688036642043745451626582392377478759360454782497025484857419354560111515102204403214374368452996792807083450509711101616898741155962857287740475300456673617117324376901656404257575920117942916445829395091885932165580279642547392876812409962464068918431944999380531002629323710176193245322203477118055231886742894302261840614073576115582689898965739560190728103244045856129196072345343326594289115080572070021726728622376629504266401185914986523417928751806485483004456954353853279743468181777520276197144811170946726295323058082326307536283275204009993404708615334941883515601424498724857572587282171201467388057734105967590488996718247728435036009648900920432081569076837982020797844499991030900921476250584615390022068294103107866938427939383970245388555046854426702562673479263240979400848819712001938881722421238675961035231761653133315035363104092068660663141456831845018641289466883223397433188402698799728843008223749014288308933761666127306367723844019194393447750978205856691156455177731310292192267977368289587388750694288764758395462943207829647689943411801036567195262978446679607678728669278729624556717876714900633058538875805417775397292101766455843219223927548763693663727793666883423750705254198618326059846099377091506398114378525901088369556444607146184189082072040880726341926628036372098575780741573845916260002948188320950584390652125490882383638185354040391344976094197799879115476676465865888048920047383526423923119702552181635944353130353444836847639521417970942550047480701433973309910533727026551665270524958920364525714473883777815962374127949539674973922085663141934651795731084631205029637656695713119778108857730167611253186165944330566976792198449094297259022113185904578736297023287548054274194028458567261604704619265649484668447189563367428599033031553852442632072584887827067067893395956771301217442541328262717600427032215443309674976958723362498260873020229713869488028824759805163067220711721942454281494012850094197714270244354519884945833663240850912699596361332036711168155326500086531470728103127091730098075325537090155416339212670532951115065146591223110440494977559993447652625910160258746950559193910290892225116822958428581446245859951875002520577173224352140023089191924043422084608891341838544410252906796699952687077873985808274605395634940001625358400983306588474104439307285644132537852535050974075562069408040250405094994363205552575052699671365152576962528695331232929246917092470643654899953507397640715149144450359420344379618356565970778453723794135425966537614533381877008425648146512782725994761638568389004136196426892531250089185863190191936618916760043696279889259805847505013612867546280410753881944373646426811956606016044570703084886769909022064093616686841463041934721970286075856618877826535425615795429096364716016241893573484442210279486111748424372807209431080844478659493736587565956969641631149576845102051683566765163387698959984905799090585775758822576563158856022896594481535954658420579833328880199451880018774934345091497772974625144026857071791141241296142999063502486201930693246839210574151917150852222222155486801025826220091729196810288470609847642552594372064811866651639950446929984427155731669684611514553923183028160095165218517206922798190630284470388462481019516067830605102902756297569180874143326686760861604379635494818476364456671678605359374926291533447313612473579956665833006262772681481626231242625523309517675311746843790933629231854312187180317740401237262282585302196763360859467954263852602562326060975559245624026603884367052428121566170091946160340022866956825304944616476426261973671208476744979907672119360445072897925110906566741645147135719274632943976500746861001225054451876364292765636087595108751925170886137593986868517061784309864944909257021462192926327467041042582277198927527660909753793757716829396160501863085017439158067617228908278252374754628329115767564927040918626196756208765553551143105634677696272849825756255412216035945537464745332263490999537479348400392002584043387581663088799633292927790818448308348588169662485618004127792789303358284487293549422387154208219600803112348001663639850283056409126150683632958561237142053260756597938222242160675736802978826710188163467145134219360350828973478465358210653915090015762782137549561631309158386156124932983304673758176315863220217127515795607510286386794386715784336953213248999729690375106273589978475143145761963156175600840362469647024336705596400824504215773193818144779011202530621476669710030572553597584077192085446603889413449310873025783581094627279393212245689035097118772877733537884714376333807432588010882393115210615416004348618906984049334867517266210251593562735713481896520420810220248243575757483804154153782845140109360511265241956198664332434012256983750245807022882580787732174998535225987874807752765162669422926259337080300404704574962259514022559533990845877651738091256029430119928219125508276398509785338610552157390734665374283464541282915506254404199760005541618288761259329688922501015780089279966755521606582120739840545860307675900530132128597944691219272547979193997346856528161367003516375467071798033018590671544301705649023501362502421043810937206523993041063318052023389488685338505466610147538012200945034514088282317541663961339167143161408376259344340939167382008052667697187934688143353983224682009537661081621637792116731283251806226927476352482476612113154296876410619726886774812938385749267943107939902419700776211020866749633444200645558343144532642033673550393409600052665346995566449775364535479161481717724404763704629403763141585036179653650869148156205677083763080730827435932746944085104432392691163242263415010695530027318694762503058576000341652272189082099496395367129334946048378595073053698319883829137229181725376874248818137004420055749732082093618743361576274796080529773710550926716868074739178474682632166605291970067802475082462843276632119630778959522187111555862378391557235069879922351742099270049582442590178441962687757747439300848086202658499398731888910165231912543010252673272015094700342722330315807199546449311920214259388861586365445651002082918178272293589031592100827942054181630137450638020052812492548174871471352308848357785593174813134420930339055921894365968229385805104573677205924958731553678550650041073188793388403656235748951012652414478731562780984499771599140963055973378936981941817645603085314561819596100694245166672418595846727742473584403806454736079315844424973231285889761495211530883617482180277811019209820401847120813500382985366902584873052700072785389308427017052266449465701309581349698681442261099965098228292350033637315231862509404285267143536347842237115495525704875136234858784973280763745802780129266920678327243622849518666895556586240928933988958245898316991725955848177945438476031672244691695684197653060984405681056693194071637061866980269999929811399208370693582803658210344062696791499557787526818434656861293003912030675861302173298659242447202269374660422807084767357019985074805865409288700786927274408828084834085450013551317211190425487059425656764836646086533072331741862749018706198234625595255983613119204036163971242635490465095391170098568040389677223041450782552410545468476530294126187363689150001509566896885014810087091416861299614190827207989581738579021631512015279666336652900334366230072304246444044799465065844238589935993384143199932933250079977671168721610784340349368056587230523113457641022359213171919889776722321446944614067450912201431908348433368074503630858230327788020814910287836330825915782088374134689570262846306165991763579361000561531026542780747066929443468258937982364968666963547717314864333438529888893846625836593385043420518236551784066197952277670789215255511052151763404192033924026501045846394105843862801752035169042384459956653362601358266828932191675836116969881939809243805714036567945078882997674812142676377029898646276123865638441496808343451428789778361637685463350923733032563366220034337191530810571004203793004256857635476801204978220982748039556987600723426161631562721363530816799246934123370799069878369599994707612183724272648400466232187492119118597187397487215641032287233875009785814460251354199262040637427803528974639743456282426162941253300166717495064291382475203183760090274785661511803448319830783072514471300938269946921383435283165242904149790698346036173918978692524257180344665804507748726858002519532609987077172733257972059445175549865042313136114382099144822326580763102100176260623917589655254643485783332599402677544353788104681501354772287934367187165921675204900692024125598671182478344751149036732433389927247951781080144287954708704286722490311345726182910605700906660351567958387646446420008097694601024005885819158775089811967127907498608605926392035042003974193652471922449539232321207841918258549270242604770484041571322650401562959102198033020079198265394367582359137287865429798511498000099624243096908675555247823329303461199147769316964917034901607740689034224049248268866358997707274912088958720591806402844583587863626145009716639089533480774030192941131324824258453915614215765115412449015735748939443353652000915998605166363806583635344241471257657933085637556149175579321699889270323467274502225616491891146272611929265382944606304778383568711295232534670168831256171048688740249307266414887040024950244096298301944069016748169547446748184345631730461762990234481125037529826074651633943356340031271674533396009806592404818980465056010144652169912288297842050757673983417539632926084537576518389839131778777122838712703213621786826372492078027079235954027236005330471412140100198441717300764205950613117586491175954332747819654988961153738943481020866358934917491171846988306058510181904016584189416981123465571938939219368656344666175535647158761373127678184741722844354762123261470898540190770968140746714903317039786868403725247824006327744853563767313332558346451770333015575500158195960076900289634130920600308462190900170076797617988778988924567952056547714315498837076456237399654791786604908777639659881365175315886700870691937550711429540941431498139524840884194169343778697808816341335027642125389318856019740889129645206207372051853090187771144727787256802125126995941486642808760994127944613065452940320053566686018283576479799921253290909182683219656134523889482749379663985871907080152094019925171702084090813319424411095627332646006986945021672052967026454923464682437108577343201205011833474972431902012293551810513030337606876467442817160533524769442464074068995273824717238730839488851339150111209950247855729519011521126648290312395097107948384620944052804289101803891763564773603720851874955493006990727174744853943597949143365519723558083916596892891864286722718968868156546941303297121225156465028955129953114113758039433277063502203362763940285006056840973878534906877660383067459946709631970765219277566143895677212366952207348124543556153505262493746957721133884077402575068387198322606638387247389778417399705397701442038246241681514754538317161164357417374037714214028720146543631953989589963305283342432667019742015171269177488066525643815569242187671558230411541802265913021813159572468534317884359931226307717419771444650178061016557402412082914168008068372524796231181359219425279702696708815759915422500974165876543185080179362375228022802417192931860315075764293146170550835689848680370432666791533402272675281466566913933303528086697255009625510789364330884069639787386498951803777210931404223277061010688004547881530896554917982078608884804586332614113099585876780535228322484939762847183661698242163884999178257967547026652974779884028887511847833359466844669721635994721922551829787188245651703368236796966361705688751470675358971425900590921729000308796565039098270968941723215302656228231875984561266807777594178335959248946453672962074418453241099257209805038372516217928779102466520387499808236136019334852731871194098328432136805579191107181732902836453674911452083077060102065909703968750373982036501090237423273764649905224003186348645816093901709611435370268943179386682186752893492211724694644486910925627791869107080680350308987585186925344791049190312941539306869684754555628979959870441788288083439878275379942543822686308534586259873920531987142410518898868305141263776758256216324328056909454194878747946464135331444359983351139001749710359514892453184605769026552729989681931079033647690525684623898478882020318532709706326280087570362516101433698644919594929337657775910667044983196454763261022296078115677016328472206881663611149519797962137859426344591377717392844581196947458140104962577296785395145687314298244839570051788209927118012224597274239723346141077098120871683513275609144079529301383111677280087729033985052195950884780579892027147176477321498051717911709346624603713848120958822696026151071251031569883926859618096135185581061520594671965842907902885430485294728829061233562384581866857514902073699081749322723849275013966324599313016147501363625413041976997731472444701035908906002241512311541198842871322752514051644606391818874818672272684984114234614500340613362177387931114800857911512125072715520142193818078417973082495114634829634202226349486633389522138934689595660136033654558712123231044166578956225703736340204727637721066906959578830282000139275356546325113562674865102191198244306649697880427473286819648741069541580674755813370502319201312196829773659784921809444355249658192746290990163570172484455614941852185678251678777274100647107929095676001349154607855288804550342512687976624178730078909038425413855265792403465691137270376761881197781295688407815888265190622771656495362436777733912830381056323096377496065837283755963302869207539365992035387932154151255721576480339118417610605100345403369979488512548040502769354721098800889674631527627479918965357977199611661789105531491969701530794081405512922641116315491399602179575591009705279590955962442236178184100918197615940698756581363362203827875711457794358123777640891921763695505931431426893063764066255189968478883541259911643181828703395594460760556515061380870934820894225188912442626478342258892552587288771956440905800345842426509067222309518194295134632486982213078616132627816894951145690101144597634120513449050281616747487845141495741882667276407401034227854581497577075582265488505686624110167444205601056284662628994973360325751597139230212127325743658980839886872084281022830528409064307647470352897642296178355512065601680097284735764342965283758923577047196319707844840068947939730411123556785250512663634466620320855547640570421899367018362215723364561518151805241883535542482138781442709848251130751674518300556797563598064528294514350085563346918941964692870729998670438457777508201933142207003460916065707702600348502111714644302118683087400583079628013830345267955881343951173743642394264331239541179173219460513166122121698305748872909983296374206908514743105710991774988230787510673749868844732370256003043579989860687922963429802379612037642816936044189817728985939666653266776227446144075846800983655035815595911650768937782314153619766844336749471733272518511627550201177254260359408188161550156496197398038310267140885279583003368264374008256084548167521023456738740228966974535133249818405022653625246541138035788615702427775553164424495756209135784855685732333730989278176076112641575796789988473366790374960860702936884823818014234571127274603560257802770419267043080814745546793983521521504028639141900284150926552574722742440377873854310893657302676193250477625980330479072181251657760872103400200664318411411658995814909961747075617031872780044042982549598396690358932867199475311958093762220524714850317949789195278869973512559544684324359105213631740457559659334816847789589211243180492315919757182348148786964374138171652576296863740492159516091558944333715964308415334085025799342863615848067753557414880468710239010195019708138009477705857055476712671864871633082806819525708875809684896098663973415481324349173288582405831515235830709297336240399327623755117892316901748537503318513589520506783739684600668934582101126446169999156415704539970218936854354056147215453464021518617352343911501470726221852253240698326029378135349929599466649903372520778270608453278232571454737046514225332431808222184512761657102500552401478314372197360018491203340686939248191704736379137886443136546363438080993371569342083233870958276568980619531271770668172741020939196946485713932200948837488441467264724705120435676657245863948687530919558159128966715353318970132501343853386792468965266824932444992622641504921206013993564641723552450440443950596685736912681288621716834641477097910374707741614685647899058382998791140212634807092912266540206786713909309442936165355726442040769487654927851670254976630452056808662072514069978445353442160914458249553366514229807138335106269809874330721456021483908459134217966158086367193206594166977390699115845405191921710094792822439403681880512055993823914546733570419584450886446104627607466101988370289597778741483066295414023347805861451783590867576391096683876282469219696756487848096042162333719961051553393749698171595150404740182595590106184129634606741811361815857624290087156395725547174376246496020425916342674871519228571217043902828789677516405864446627823068850673867892192911052133102887309325881132522573836306902935671889899506624938308276776485396016926825902304833554502518472431569410298946332061074326789635395705784800455466685830510169265542620845867172295822750231377920648835743642100518549504082358918929908812005976612777664620523788722695116257445590676045395832495931001486215898830535603138523088665753442304725790598880465950364173152705496480241678954197761435178969866548966583861182657976391585870715067198649609630654983639041156137766837977840783242745096308916825029717970682003359727955659183475405415661272672016024543534939897246782736836366705002865531061727599357717919129860718760544783747448794362074943962894034900999066156029394044567037917113425721666909275191640964473882186274356628394424398193184400327466601894091764653561922258129791930867424222032973987205150412445024612257027395993713723411223047229852755436107252995938140940314319808190033796638009138168054512384297149054653254585660312256363493810515210110006808186855644476457266276037913509236979009646882364177464164850381980231055318463553748775426209436275796842293303020355573592341547739837672885775110998641843251961563076024123342221823101979894927763272403978321897531400249619901720846722183638455858963311415748165725580156642793847316027517513377604785611799971957098546730363845335522303523648605032681014261782802983163987792193106702584822592578532674543796323426869262514126178736674885448252715793033973853555480257139811133848153394418755874394511135174641810776652480676818440034434381937369046152948828921655426868599499265401283542134065957730581749264980870285147253232076821616609297802272620251707111249470110822543484281611178868825041473356959788298618513384363779872275557157502598584459300915327893083889262552844360432702762468770846191421917815042514416913848932886931945163756740761187372492862065297496347601358870413315994825284303358551443925461038371538714220614017816325834298446437971094845955745147190559684003901187460921881536769076738159299015700969196435883703777465424880787741588298330300869619863063612377624970677765225180631763947746731747083166649921820733778878327525115911493550149347325563187289114962434366276500246940946158177078785354973535068539519436300546414550595069231416136950268179055170037507042168978544519805204109976451672716190879374667746687610620912831949244419038878747953358750057019563835881281513802350990162898139403780191410865355545435092168533018483117073410940638260006434830365448301786612609817378211814685826099827220854058685660208698192269899229636344388556077170182281397405518965099196508777301841782127961172660149863091901098381290528665102647980296679076597981039155865035980516179564463129135498600602640904930705778589345237468782412298182811841942617898247203957197647717817451433921772918576625177411449398769919033968596929882490520276320128765074249268748460003147771827898128719665803758399726107857554240664537328062758725722640492356716858497921301000680435901771485029449791436457033686355202960150185809584288619057265612359219519623422807818264540351431378461512642758738166456092097096114784222188198788620196587450221016933814885017473904796149532235277196768114356293609231913774474504166192261362026621426755381935901147291270810722838285463565553150795833881306152700990676205702462534088335028367154658147002182180561415760345670637627948912762895226844992818898093764676835509638735096931435093204522910605110192933260733131520447254601434750947626290763225678218198072057003812976928425372823193635015923444838901133578747251905693967616756229751091196729289458238042478399550855902814432978578131509561846812362321224938819103435469361655123407387327227186226743395090259699234550103838815961423356748162936144889118557615953351285156692680159321294924660257155393407786828514443358862194120504815974195629286266693150054645864572276318305958719863271020325221821630631381005184712649995230278451331231797791715756787552033879677579238296868009264028177700342122716907796645360639992714234500773141971774195352421362381051153654316613360858735499755509093007583224912940016833829896954912998104430470265280207354133975151115018765125091258951070817230707771087500414180721208648721810236337325529033999446935099533021803378704017291367169228863167817222806428104065269390727837177767765079327730897689707617847088274919825536482851242635493075814504135636551796648394777531185952157482622673604166380677220601066428945260004620917012379449173636367736709597981248507594106314073899674564703185249852947042263982760472513280450837357031085719093104653652847701100157965592272978910257715695191859135520433836964715475905279750495697995631141615437653454984213617086257001814026628949327316026372734011836031185518810772069275337370605090605649525522743731325937756351518580349790290628483438912270164694824061698013771628360161351335629327806479270514473011773079468559960839494048005089295755098368687905737745545811991486691424721309971946518023850162282221772425664108333326770329932891560550466351784359783372889283343366473244302992611440812441189375134983686000581592825186366611742917977616779985680315344003031991701287389964336923293806918175268138508970479592420305318106011228193987508609014719933309055144616479141334341991644162124260248132222871567789510630580973418222177545750737308195937896414281911237424286407233455945487158119896008533383724354460911269720902553745117280458657253476524397607807659720839498712982140262832043371971968769669783934563539975965616373365859885091003140720695959484841576276324248968731013108675822162032593671411105109442997201130351438439549843979889060477376786945953208819946651770516382487589376285104167201639687583405560995416655265414621408944663401185340907840146777353742151653229172038523986622846520522619922380313081583439419488577009325080696382126247460170786518343168941726847331042735224118372645767263095229131255917795292925845709419312792611470947108188069852470965735679939024473576831698275238302814048593420233548506805522923232648286391973721583594943311381155286318019267417735758845323883136296311385740804214974453705687580959152969718448880950780800828373823881508661587843600082498511343277111019830814996133637841995425283223830326671430401837835044556826139970553037872363901596231488594237674575816408420608893085638988413298751615430093776500783423192832727456222041967033337304519658549268360536389260720561419483760049083900460124447552660140009610438058305743890844198621532313324942684160107562073021658554352508793331307960597281743806263988549723728476841552196588732753712155351630865213966994695594837213607383888150900259932246930649826705970494629429723376024455305267156077918407465094959657365983929979147959424074788654624019181952703067268982697612705788164212953910785670558535491214146393180043043668402706995367688009830991617640245976410101960243160281169192016198253329915805458503295218487536443224853505471813090591749794323279103720310909411305967589276646262892006724260861905861364156663075104912985990183217821328129150748904937587204480183120674382874870185834208853282173562871192432449468559508227742081588052568167595588145120238671932892951732609868970009658039150221544181080387970760017219295619586420518899542718467258525880316329958833281257544015834007038705784830622604794068151000397714924375087847650901506197274325951658163596125993501742002251580126859001674989912114864635917431978974117652441889926616625159069851885022073572178592274304635345842070769879699445932671134683506920697020595903632505248986116935022074773428015248486900575356042508354038381227841013960311211725874848125285467990674211118708922622117309192917286575756485256985430042956364053355570649720223647881739387033916170247363894672026770765261214502025197772802260288122388989739806052073507880891256333733080944424899862987527184341158778209912067479812628884516611046254920268736454471836124000290141673427914846261784655693395157827864638845696518005114090363594799897512030223481605114321183360970320013550988369860648766193795183808498704714593341931796487451470628556810979185733420320444019150133576952055033077724850722595952330263331848951620880810094218382888139466300103891316297403695752733735510813868943530621871302441541592237103259401816924842235238404245172125379885640209904295205426027216535088379642202456097428528375805588140846025893442671232697153898981641092419901788542745125617445243151970433182655888755487985829080656891371920050963634950167932749184871923859478546376961781494413151902182868610817191020196322060035142712492016481285718866724403619141071544374951025083909240963493453988844669228778170712247274785071591724564341570913627408444197367886756657578789764921580769731709156095178476812371857084115774458821915492515444219767151769427167727180256007328947154067268058635225685586204606638404623074471896364880506882802393151147414625589510222340954231472780666671948069655095795937980145284939547487189649955050739869879890719745674628149511101763127106162148380806015583282146155860115368215000281905781850433535851261039858410067845253775114135085131171479309431605983043344471236653506968423133778461859931745305350810294866790699550625970536612050766390640679211188582135427322834635216410680454287156386650074889978030718505982781807821193041421094175078326343560869177958402729464308855665725629705311310578519124169347899125937421578930526231493635835167465698506684788031168003381332194584456095557538787540660824454227794186530986817466207443786357956862145229651470236668724052452494163544411878507416951486811267033966807569206380815361848194838669955652306599366241430435720396187906197786683405413426460739939192164474297125905284120281001616906861989364124814213887839337977866203575587001669243042438039763615792905397487277304482760248917918788026817616988209697477692406039946212351890902725880319012929169812570073664127338265684011196504686812001094775558916675838655044174676786887732886877051700414765335849165669690457265544958009076487818761248198739932348033395346684704606128135806227901871612135281138957526612117484585366733199209635746896295697083474091125962600784184373555794276846905693570789873408712956415547184707353534516335220291578144051224081163820212223593429070531487404016318828282008163096507152600050129039908428386831019290490732107820396078354938143522040491882636931237150440290446275767376187573915288024937556645177398999719894952036244798423011010978776897772423735160960451278031247182483745408128728892683900429108677976902461673012443001665992594360505446219951430480379363901236831318125074163362236415293274815405931473094152756406297374363163913755294737642658040230714762206375316788210620149134703310883618305944289046821030743232624568987954340117986232445028919495277939430631942627722584551920285303910438909734109525291333484853659690325099000739095296605334812386220334280841278332012807907830188188944865517237185550701975295176840580922709039304430379505426531668902620884450241507794390409283093551549436067924507882923282298253034900248504301239134957323189980049549973025675832192696142205838685866525143877150115153901110566557552425905574080578246555811093385715150627534589729772402919758692923587873673607654163394291405178758704699800570013096905087286864003686261267378418689018577950043673081411791403435751869612168283685325458044330944244981095160680377496752347023985126579325827489781906093103264151338646365535194366282756605335673791133223609838479916822713051146338860878213244181844335710757493249026206688427323404145779084677855280209281421607614485811257623640521379382794653287730847277873160095747552366550944867774948508910486740419340300230257918211333098187364978701618090091876937588202748666799470371880849354144773052541993563088540202116135279158240260179116660543348858621516451362228534234946483915800427449622297794939707475574251278121896203517750479810616746554488327232216645618000903794552182977507291658577800688099077055569954448416841001420819317240878535355265152904943437936667969309566534783560652915333150831581086670862703547453709340356233961374548126784085986487667768410552309294818822060111321992507815977189548377942193890629460077720671312425013456621923564599718314383517048620640681050710554433287474424695652351152989049409941306846814292716191102826949155731232570906639443076517884995515915109508972999785370623758908794078410860992967073636446036949171136456891958437656826830894881469732927985956378846867987140441067174552803404096224530974658773890152168357994992174598559370739199812429934943030112239152841427210295105016800358588302970409529577712072979059814133607593308030720844874970816108099090447002599871999840126636665019935453270291792488524996833235395953169458633912623229918929563954377756472966502627334071549515894969678522158969810181924316472050902737770203218171984953867892022874610560104920399522689543972200830095006731292185495320234103157412673536373257335935312764459528293572113684932019177821310393353987353683781306058871689384407712760459453369558450711513465310083900755895690919649145488043951604390425547778480172281103815339622347927143903057185446961213706854878171659567757042336161429756940224110340859342488433040917726026855504921490369102918172273377810213693620362064531327680617038594486649970159002469836350741672515735386687380297077710270539847937895220542071238954290605651428635706644304959801820517209933523431097837569356371232856968476812626769109976037634851839672882569424257294683104791710425850842078124380155308815714986146424170263351545979548656880856102907925918555013519747995787941553374620268439478901464104116552341451868474917828942153408233457606968426628398956785142517616133194572553030507048806442837696284832453331444694817192622839491362023694077399917213581196412957440597668532545127260304324648159078988832291952195089963331660891739802546109698104575930844370238868927195680938339833094410901601283390707808093435216827758263942574150503067054394461940044815359919794346224097984262578621995420668947107878245517968524885275801858818148070284501532183360093878244851729649395787684029390276318272258460030548776746223317592658801045226118563884287812772990265653142298262876733435508660473122606718167789018764097324030292078721197906097665547354025362351408222995201507666497189012675356794958349010444510804915517190830303497091815541615112697036913385573205140951296549829828610421298459953399027016052204094093173008181174756082554477017908713274339003766031452297212296735565734209724576941076953326110569133467366404813124325456872167793416150925963637776122698481528011367176896728061829088358015030603251748016497977161170099314962545850062599760795646012354027226765907085665591842652409679950710450641917350494442161341913087050659025897294076315455746895225464087699901057343937983490471777978402075924282072267984342875497584712245221107731780051410449829100387466301426561188141257127960352774228192757746235079062076841031163372734704080548414349402971782180899871337644369232447729643686925965969980863137223885048190429217261921114906045293319340997037031011978879281030973126727544761075276540937238268042524785185503755493735097075120089948410509393592081843601650174177261968965046164901644309844164964878836872534170921685034574787780212163651697027873260008175527809189617905510538282640063457712650573978385327242638061095836505041052687397048433811595264500412881739471196155086129903691193587337128747733109561622968091605565546530882044705666466889875903296252548428905443376319670416953964707750909361930079890115928622850994383172301755850714637736786734370059513467535806297198243529981041646926468671589496671818081112630735119197854496930710163321992720659108464176928037850626907066482878914690871424076657997432374956550041834590998009727305967135602221576756476531791968205297898415526488925804781825995654311841776130346594056599905797916087110515824075536618495475906195460836450456227991927602026931202116806385464412772200264483839613311121167790460908653236691895352064500875357018236075489948220151669216985294749481092136273084996565900481973714363183898787618235458630603903733574384658837947271865487668401159875390885691569031315072944224613012577022960754105017987493152234305889447566907101111651898943494261143921000303322303215729933038506937563423643500536822053486414508375596849561799750023563394938377909527726560912066309135173793399612825424728925168177664427924034275425052509945077815680618751842623889063884713140889546007579939249423402896252566338828606305431257716374612902978159239498104959199706908760100500692863025090139196818366628239702178557849057564869214018145891792077710527124857830844304040057488267654382003122586409603454905538808437058859331507941428753045838508770217209773608948861734781022761363155394935721269402372635554177181229435484247114706213408057140688178180923697063111258442277958919047244546775382027400230096999580288203584933031682960817967915649291769072939182755894802332205546673543589226445490910187218113993029834600910006084856089486981664930509971207372166485923463127214337169171763767610706844601279662038038198262113953070585508227174365154213770388109560180426749966814935105879164176990131413505008335411995653888487197753403969176517496712325892053539199950959818639668311803620188379093213510201277213917089839672127249930748127798867452848453324338973267146514372206197440520271311443694298454464967827408138618647840721736614162763052490051732954658995820536568827380983905427398266215247955181539286543692824445184532338510664298045778805746072567769262921033989716766009840706951469702346721889228536917786697386121249057214164906063533775552382900235181490373472820451606544491790409678806160165355309804822987452749878943243914958744628825097239597784254450651510676858490883454975228225226206263792485489578871030683519522267671094236147631581012689679492649397146157878132754045384567989775120489709029529208872365473801690748003082733743075768464205789949367862147573077825413315853308983919200639321836159873847969268989679500687815747418916265325920889612056734941176451631919378965333260182508834489522048368323942443826952121396359501523763835085231157893069243062465024408405606857503508199766264334166164886695548625542348779937232141206980823251961206788652896097577997363773761585390506130106058422322709286607277449894051422022168684569942176058380672457837494845224756030075509111151739719538400464961426884404850129032717502279836022163433583484348903060914210347348913793748598946290051814405543092171054755190892405938908255915562558139926636324420742912102300321971816768439351703242600028866569235805236920486525977668990651884704883938904318268089879706900065441754771033020900437658037717976386438214029765227487283261597598215950452135503643446425526883625621881275828458340691870412139473700527020931048604932669377684363251452328518065223875911491434593721040495788511233229906451768824921970564903734722878890414638796513692186051387020520847397675234623307995312965214593825589261876718006140979484319200878192761616194313598254344171507081390732565949869468379581408145698400447813017767861474285611583687322910202212681608907550754057248140678859764469443394128000187265948815373618661324795358924424737538603867896713122006716942503998625135625598975835908214285798432359857953794790525151029671457645805421773261401013551035870983395370915176826503739175863131962388915890303174177923362324596983780507490419235626146638529324285723205943068853624115272732055123085196105938291029776312404571922527834889244772370232364857667894295735547710564255904523591276672807002664810741565306635528055405304060835415184465710151948579110990938187036060512437751802794144326113604231078514608930886943335348861905949977352270883202912949732403942259081813376546188649472070447275446920943276984206568231077053403078101792627886646398890250897571396954338540445492564810910753222605251761041409124059027234413208413290106280855209703717487705439463466452782694518578318071665210188714102669220887605351189608016324036143090532495181202349196418239353888108111953075065636763007121832168029197768490769774433838131293902537006767077918402286372007340731022717100251780668919891951198938201238822215216905132474808269562338210828611110390796804568214348081114020782169838650184561447178076340599596001008539341311010021070696200793750898999025551868249503847786599666493232074809173961742866938310040148733410382006505529271519196931581556962128681432111580893947955518484100560139277460555947309519337989734010344214739313709201133592794651611017115235523693880924619693630922501527798072591685567002403704384398413716435503263084725572264467658137488208556506460200976727863847674685868614630976648631112145121920894159974924042241815936803838198471732308889430450056493197022992671577385631759055895026956026271089150023460889702634163500933630044894490777221482292574337875233129765329128558424641721996970976868014885650391215356399361459277529223573890442806617763984539029143988617245121018240409419574672017996766813459066757834804598945634831685647440285089573468261123713621004812606960493840520140525565520707056778569670958336939056944485143824623278997940146624388019931209171576529207217723491971436423412943364893827301929663561066491146198346744275695102613598489795323662490418003792195898149257309617557038710862254154705190018693138389877044694053038161507177347143140419268652018514289830039206774222743370039225927445615452803434437454746191884813103759669148209499561890336746068855546177542820599533001744521483478147930594901935759213384267629656512564749364008455104645354175358781650447183436070956246285003755737819147724625890288633223365813722402669413566973460977500289544756902627589104896696511250524543854233625058471180798883263967612096564638674631423215510206701533336266571299043246786168869842668825733741588358209765123804982832111330887288031151131050520256678634849552761668463714260080955561031863508892575366320388140714546073255246964766143490632530549363048674400240314750182704935868353214046186539809028140376678778789210870330720763047738308131910396657536916689320398479312226821554118588829498602747055022537014891383902925110831127142443710726298393003323775081111696106162569627915863039493722544930869259158115897197856577233880267205151603335404830634913546123356245713429617612602680197506477850410468512623180332193619086267252052004901881854628706290950472600867976417315385236316185693274516825708003508021925212711628829489103638214844994782314692931412063351012838014151842663732905717461287785191862536908005243719035951778307488969152715922419719645851772996706504765517976362537567130623964883258856319019303262278165168434152542072034073278303956786917546627381741023282985477568892827661779149434798684877986314752721258810271275439460277620995577793078517826547691198470474248596642251467912426851680886021539523001497408157212764466904266224979648610365689477480548215308825235315120371318631245631733467316026718416544971852983152979484512809551838916205411326441517012457872173174229874994102776573870496365010024069863970839328305970495450101081260931830135579328489854118347992457208401536521192224184193402265167901905229904963209021668708923007027925253795876451302314010099420134116708553319775195891107456881755953216643617293578152558968517241545385291355267532833297985774966869815674015598320061857075395417229993082223925534054734512054633113004445029941879539563740347438605212627997988533597581135689385923159643051746470794452694815237232220314848608471388889136099611117440040513795303137981835437586292209004313090490689247649246408821599549296707705959884674450196221382950925604513246736410839438445048841892705072407882524593685739713038526876479865956227964219710935002313964861168559230995974209737023202741147376228502188192622195053305311446454936619843032882614850672449601381293054283398057313340570450947306591126416708014262260841600965335727318091727577645097271347253128939852646489611334871593666499004666500111653868298368314077324017764300707425336141670385912057666012789748360732306031723421374449189394790403492184001368900211783620425053689713402297721648656580209524442220218114638395478137979082285149391797078433218538234633119259246961541682335135257834504338373867920988079260419226907895031504524451366343873401646451341534511019316596341699123092424380789632343205166238749349617017343848103358701790364358910296347434966877271691110768094656559156555355743679206529750132315826720656604924888094130750220264600049396036715782634863240792157014416984295407256303031868606482043616017627060418582115375597939972051558628633246862663672349123786776501500368748985029695506214780758934432433301806041433548622604762559071988708092348493307009797788821477028405474733100738798915593777146663487050229038854869613591189247290345247412973864492980438373871273892753468281271090145382622921699351275337481714789211473025314510538192653017248017929543907444105102961829909625835118598931155288221528304681992836124024862972132984914171175302966411073027216434887877420164297633142988207398537606526940832268942489015136104109182792000045646711245786598668895788952912660176235612917326440379368228140604875642929803805423361928472177333937801880052462768524024290851686442990652738232412874382226005817765972086268405557005105811817851786177896956644534641026346598602759033738405288956107008285946347999637080085798211642308180998914798739494475424070184362890140182822299527940877352179171964692674981067475274683084523839984827266148037690558415278161052738013517053681233667748397718792509038461965649772128112142075173350479734413718851007103087494022790883230303279794338408865863963177657538703973422640929619116584787750282803870448087647540495783034829957533139136039436762221743573273461515580718907835579380317511546043696480745128720122920597336960214183886336875832988203883252881524371222886846749698189101555529142462230799849386491188796688856468536845258564485023671020878466622712145241736265871981106944359700275398836360459886734959292379949594504315637155179563063635811089547466895856863024278524334077152667046502877420152912368250276707372892935798963822485318372527472062973020942217125030320832761146568988656118911285922646480581383628830396799280504240975802975975159967065151041563703845590694459872540534105765621310127707185578527679084589019622055066503386862146455169326648952580186916443551387542382959306176198674265785359723354681128920086754637366210915664830355084245444129740297812809777245549013845934447652086396114262484270909390123246412759097049422475594474123957055755074172928390028813258536978502265716587746573764426042485069508669980776251662062564892367261938763248610160920709098823357232244825349932508071050759688096099964087094567159760924302198879653791831007039428725709971685135295332637957581776567821630700010745670588457313944661039581167483261997799603124330762299186311217243783147758309721843871374103028501640897227216151503859970975304194700161059035580166445665677857502895931076065761321080417575643662747140975292128051722968320657687390600440499398713915427727011820093612410328136746936080412388230917295446852429629443779022837332098506291607870624776893384929687338402455338884734423467892522445265035396138692185793106161226648990555805247278843453020034895061733280271777534055636677321242112261431031444396637932544048928600610731039981708341834505460406787482487758769391312515183358547327730274402566639036274865296577546621280220749965595386295304797859943281503735607721362072391304965097251927608287740702222324461986400622543991717600029334974272852751980082595393099356364888350483327820188268580744333187254405812633398156114197751447959509205202081869773374651098776102909148313447437429282968013157077511429308233598845128849212420642949251163612316802499170335273879880532142377895579061415107763399853934964305295792425613950498116573205911502480132289254955186344885355166480779810521302655804133482943590009032899779328712431147018404879116917083801635985381202725595163938774813936712612767036571205763369989039609973156423077277773009776887614410557955863946501371023720132145247271754063763189500043143471712624841187849813122724349867128690128778227761789265391384345052544738316148042205902129104872773196118484647041021267847743257616050714538335709589252153056081624360572934440709334416215102743387687453372403725302916451505325794649442285943306644715997697338926618761176485454622273262995806223516520696174515146697209371240457357346381153626595879232811082772702615685136646505967889826948844427161445728791082989194329823840706707236570875130475649098175321111915349063815049395934026242159887256525549662126765742894415024225876410756147068103273958285812570399064407869602044483714680089230624739972879271545536270092375972497726381949221358615360060206650000255731691639398513770340449731901959335051876631994341237308486200549159065257940328465846166095657541530607318859743122873804817676168186111834157191173790109946594399369522221592067833531397686699253585370683728826201279239834487252052820650808310750075692646578022991724588108776263147377853916314890768509230100286872624068655913183984480095916484096315091370353809534162200687478139137351643374256770154989396264223529463901671654983755502425770466692858870941144838040661103524007061026559552990540118103566055639351392183907113935744280886133519559500079953021900906538362192899180211272352616504983654200697833178172168731901517633263170390861377700137434629914411408165215074052618479295428837752639937347505375169217177730565432104611044272047203434410308736377050746254321488704442509393294203616921107429241903563096611420352290394071238086646720814939068352936076757670975589466767771261830426892467773312960151085266120189242995425004405921925126531576268734877731442058346886379923395822746087232985094858087834945451928877799713233445755101068120703807558967417019343500482098145610828554949911548754495837953562319880948577341879886613532165790562756478999288149174480290998810979674577054900147949552017139526609927632119013994753367954707813857283787216487980399603174565740766591909821252785715576389299637961022754551108859837046436786950706003872304071117215557699239813595809154442179766029995201352947731312729552324266457037116702409641719577440103067277403314407960953734468601661505500828636546439058891286288779574992167826999773944939577154154789126175165253393161443431977639355234942505354974314106174307839200319089734094030278367637618592782347906384647146339715440793554401945019244233202109170711385463371648784958704647887498731093119907010116749916546535931680941812820769536496968737283292286062650946795395836881708451973600117105727013090411828060207827171352583474603554830073644363882245776166357602383154133619340674190108067920881257270033140349369573534475138779105789487441811195305169959401173807840589196751481996143089654412044955354084191505627419211784204282766570706826762052613948951313894460891881774815934727232325303877252925054202914225425048695221851149999255295680416891339257785215090435581220236938771783100672770151957724380710936047059528083479914744864613158902333836812547691049489135793908269505110893808586220954698188407345639675077393946525048523619641503194931512236362923909134986807009374492908495887926926138503568252958536852994973541817620833561807588494039132663311530416335589766051771132366074728129555707959961143219726651245290547713741891067648888686208087657600006005387902936407360287706728237797074000673247535913536983163681802097173557456823947102496614052415415356913578460570926467933151448595177678699469770588777939968304823158124485114690793342000215674000998886185036144483232489676091433439511457675932746904710837656966087701102811786806937199748598157209537323774867919403183538624089983169718788073927868458978181893857263058237875557560015222361176794285732914356257304822878987020688029257156812368448199312260612639140422089949731403872934318961931968975234120655200748462693284346506860999905653282359353009317054319859418375479650070499502613424087547276673467495128002283088721079151193476130506416975745966188018423635265864218171513124687858482633990493163309755786970712629321091558548753145107461010872504257789146842924304455954098024628118050639768066644930931627225685997238426357662182223641654830198063475815627052522528149076748268216281900394492318001715579049156813300815367539425492979848687495933833830953063596409093347842971293450890935164252986528107711247993803112939587431608503278844582180810406476697695146065149437734728227506181063823045346866103962643351823462716990958314655072192477363877838228031348983805005934252460726568415537339627102492915326691658046527310006568849401847779788267182056184753701966746529830646299116717515808990246557722955396644853887508715295669788568677387364892824182979120697883202789350880926577859324799276885236557010429334199713338311720359559020749845486891590076487164601342045885937708146723003681193022590788459000829191396642265483711891551631569830099419065637356514788266897022573473464417070801788941955496852896350395170703888769621788242371719935360731345164408836908784361925737776854690997280791494507590484743492426766440086391057468123963065483646021692812433593722269488233936950372423186641196525808854243791452519870976044736887534837527495950501112951747669246358319729693069571041921477070994809015304625463309979379414335343451866692634605378269005294451419495609184368357146310262545334450488083713798086794249820534602910087323496224766444501957748488553689102071982704566395872884506646759963603593778399132541216988635817232467683091310305293732915906735830492770099893392436701867151615263249210885654677992750472287588794389095293440802088826370396318337550720214854460470439760074401086071224872665911628757447960112092736916450085120365165820165513880883372008580839460057196963595484647501649689865509949115099706305579801643075781388689249115702267555219123338384630280812957950611661121186078692230887551894646535932450639198108712001968469655342923601078496898512139706362691445904247377890449180796896254200708781392760962057853321859516325719075176125619169084472655755749194483190047138885402946463111399138802468222969999184230212241066127297796182196600607413831122818247992079117039633141104319512739845053348678888370340250115738499574107151436399150495343379451610686027753879865873666140424848457900313945731509248664941167654301529739479387599021684546554145337565110522070034504055415426779911410115329320089992050259412182249029340803647238832355904365969402136009498716676630164937871935456620205040827028833591890599232887643509333761133939951643205630489510325656578222092159271603605806924849122195288504865550989667141233742291954722918390064180020609275838066233709600533031929789448721256939048605527715957113970306046856864224541687454408403721472426125613761212474296039247134958350630221587842561670263522582761906701756100446720299407009845452858098949321954633984705962286829084578286531192963144709320897442509336923837793474331120174288873474307513025639488231098566300706260362362382754806706878531934606629819695181717303956151089666887335549874463209650368826437821272348175337337925108307121083048011016361635169571177853603219094145879939572852128425085374762517811100656197420217868038029572538931467518285823799874258367535529492554379933192948937063073199413148949951963516335190776489245681135586363643868496017902352880725823267409891557402758393990566815999110723146736514335421550657081116073232921071686005613272718812726113909056601890424923152339858397595574564295340479558565809463018202011768879182858417693548590922366295756962957878721091270000156244013515725571309863745630001501703393550281732293823479914491102422493359470507558924043401519320082714843005441577432241116955193725928502369986108029780186540476127256319928845929400983974373846098849774653916177496173767038083214577964794591209625156847839688359254225821893707860289527560558223118695654604507133165969963965209347800936580354007953065896087534555534916124430537528107178318040188995733561361265409139914615017073481908866598953210080707451910013799393406881571975509951770686931857405815712925933417889292844366687958827400393013573336693649999508812050733728603573214791458274209169085009533211237071282589497500725842735011759950862565135001830666777016768868672751988922288161590555728798968430679198221345884930434471172619812290123458651776923560160329381618121420824927046137912956556342285193995934408611687801232980832964889299377124822804621824053464747041336937471414185719891140350557165295448921086557346271999117234100113817671832846496416145932658286956484590203386180408692670877995715353941594440184299873169117462779601689685407456142217129446960872615130385156068152953486275843794007572502093575846162958079444328170929392560918137890224149920128776981119364481787427380345383314128393209714452591102060907531453871270371895135253363699409218974616015053844524273150983811931620201675805229073262423979712247501238577848815239982597967706554541867064982630422321543115715987104590902802959294121353714202660364902114846754245724742940698376580426699684866257215162780959377617201947025310397146049656279232464786351308857560288990415860793147027353950905714968039970571535621458579674656165618226089722059465399769809623547980991791449920424504331524569703061861882701351317979821335656786017084303027223446346088798248341730355781709874158966176506652758266667132415371531586308610425820627065536905342029269800305148440815715997069678360969508375764250412250737888280976735264155861772916152178692383794465278126918260749354001706673280112994575295929461465115055205377519646079389040971499065271289571688723929812527137039542449625852884066061926504514111057718347583368260209828011522449101740817867317765899383948113682624398864898005349185991691349558533470316459543625669955662044585088964843803227618568138949462545395413747979903746252508156489210268086945679247821341658208302100215112401929497100493477890589141101078034946956502995893493054833018154595934623617540651556897899226158746681548184107127909958133453756495388815009500847397433408427640895327087539996459886424544400921119705922504544818717857006857124031985948536589925185759200816957679333223415830643651366939109108430757343472473066094206332599089638641673796861809643706332930746437499260319178422851886555752106332373716370388892797156089216265574927910671796634547256215095915946028770537751344377651667857018728886004306310221892369057622513214044065096425938250234368875546701580300272415254693828544701083211179263471685607564427865463052991596882536216424864409495060929339384031905163035302935130186955727913615366323323202588448367980341136501439782146861673543079615876761607493561560391976752929193564988038624096095571797834934435299016962544027152293644633841730190933358490971215940311043877787263200111847920115237134569040324177598305474712759659723475582610964548633642255993226572088830421252244649434209053002167964880913444924455631751678919659585500866585147474672389538733266584262991892788030491904560992762041761281926280979404365839068896254095999148981791864330254082012789788011803034457291309136647550204127572479136031581621272783013902382518398024102588357124795557261985062317315785369958909416743330502986406411260594588443294465417016170450123927606555760790946551860134963015855430427601981945185782601709995278398343796427085773674230799896529755886183048671746660335175176588100937345282297201117686778386653481998186410034474353558014704488405719414468805370137690469830655243910615085962346880615166699628636876976736039440140471384278257631184743708516205581874844156951564716324485447466856573563553116966048506676506221876166004115547826765384062623627152075061465045402505828905810020749005651999072010070756196464857461547273707473795421672615469343723374413804931943453212719953628092346003130629005991276093033248056969626674852823376106882842464859531124223461988899677064337609031146179612035197216267417854059378283343268054322091859680247099140294031906715256303415185070731906327736079229303725208168282778865930381662397293464162751007775599545380392951684510977241852257823830105137342646464110943135383361551832786525325991503197443454418888489898342548934640506864256640449750590618313098310382934462998380388589031262341808242148768651222812355813028760251304242081913738949908971965053328854328746652264770005781316862515972746729323965383607584503924760343332469559151182402012219845784256628937326194504847144449747884075259614582180374221132397848998886625932738282326167661825166328259278362020033078476377971383409768761772922769772728284842722020999981728024544369295748614843760442330148685927675323802032513934098164030523210931872424640123830366960525880925477888054051841517281553248163219170136923110187980518014936581013915887185558169703249382959847633805277832096398618501308365616704114615466002456599291460208917292773955223755450624930428165125135038220500498024057904959994758440467658554606409833648746793797696591240362403373789497199239055876042676301818590566641388625495806662486647975669774740944169000946113265239164453430414392029988471075194614134117723749885654689939175530177199065502941552712225251630717077447813127571948147782888040177126917355515238641695215860445511479616948057578227280200172540971099831245853031444210820209895366632445532141955687765156029978401209510084794148990682722207829042838556295945747972237394042105888258086358121892352468810784748500598041313064406020314718074393082369596023182271938951896141999552023431394908137438203870805477692395124594044436524944766623067495673416700207445547676004329675502968488195926204842353748108547163686630043190554911972883183286287472122616859968083895644097274498127454664023630416577910530586873202895969214540460616706309801840955031145652066698016675417078418110835609649064943912695507309906628517857271924527511158151057937476262033975595582610912853248973037933511340118095340826968169290559280835514097968568519438827801236179576710713524998245194838274100145854693533062841580493039426489528189576067146163804880881252491379551335810944241785701263462092872821802404001621414128110833572375225551175774266611637724977763640480239877656476135158655459106838585489209893930230672382251180537540557315042432882348919646237513302262729397990717415215988459434201429880313924416485190168429094191996852374050499981043817090898133191102389910166396286579592167526200869422620988378665497888578274112675701831972139956818173857025087679829008593641854887199209343335792121149327131025823472223474306044311026364495338518784949853707694540131886576210819175057702383941603776021204445766874733457491054942258811047872609938640327426657343679598853966908203511689641096149644542681869828543282867977144685486809629200909068184726962229092602540285363161152577453887413510139246902155885501503429492951548701683742907957079095164936626150695451922698786503122408647561934303633001886392343787218023453910217828497367053284750761951773550301600166856991942992779279778866199895289893405873562173630543879383515057421326409410090695108178846630107957988118549853068826243052185664960734152522151025741472538819421623800016939870924132612217914113386157350212117312151716476410107142917534075624356089752509572051342777823271062179982546416466298519183151188992781012052764654809301590876277454715296504395608871565206174491660448930714038430980971632135206471890509547334258071043149388551969015564417469983777197267125912515341307134536484775866746172161382251546729887828489253874355185563845763133327062637301145721858166392487279891521215197566733954454238379207909326735479812317541801595987971986760836875864219689254591135737490448049694329030597707229545746517172821123368512233502471144710925665814389410466794483431027852465232298529878037051289165155657228899360318530281008612987055201919001608407914556045642687283670555593918564681902611518554242212434955126634045900894078341620194025077735685487418534033463750733324428267728901535012706584318904309693513087588408272607632150458454036126867824087571141717280726056972336486270614155502147352397700354574842561256827549440059963351613828511789662627217502729892655765226643369608013167076071246499769762596602553276799888993154970534525092391176130686851616644100531835776829517413734730347738867177052987625849707045517028733473630689420151624923822799502609589587661559863257575436011220791087039139667913933633133717565721251784415134477409864408030878500846143909229421493801069836451725718045809618820240002682019220263062858458914588071895743631675937424343324804572783517011211429144610227073500641906991066697262728028972778478057196298869953053135488223587005650470907754879312328191161772697997106408161327879352012408038884080676359343423257087714873591853827145034717511686517887311576652364584359588180144502731567216883555145833435121027350018844093770490675727005745080393061656219371769286173098290180290813620376475256308806390794871515474096901582413239282576499789024700449978766690687415581712099350704431260185299739303604262378188243116961398940059734246233508265726168142297751039223301154991768601953874931080812556269504528667051969689285348947254625109302399865796941750191963883831473975932538011333854331423322301725342053272031859943326703070041213664170959713276989285017838439030461032396126485814405400961811055098303848400940506978126892082658990139600350646278362242305643076482873787709478293086866895442068633274383653328015476309308277085830116678160704079257885384797701294096715239605169511322664340858078440780727725475626300061377057273849064069624424893790712540941525678004060944525876151587019494147963194965633196453617631829136131139335593426565287685116996779453600438045267026496664433099015351971343085561327010948737482693077871486837685986569469000156750463657618290456523558026721993493959488178638878957503840963790823691976296149494281583408025896173134832768712722250541284223737619117824129052651246897287776555993234559519337359912924475867749547954200108935775635736353479564582214743617836836577842228480688983775487479610916433458578312945530883163745906267158418981845936863966830177905782826848348681317279319861707977794801770655704457161057659928275059460772765267240926485717452802059544058888043869937857956116683194294677302996066756642405434583091063270961936830022595544522222831951634375684318590187325385787614586262672091942283732577780590532103185437090842434198342543885962584835557883185605290168063427426087030503288279222876930588691143612795148163901909785038773436810338831741184459059124169387973100686115902618772382057594231131195896527799474798768938812782553938989086993737739997109304841673165928631140260675945117434080321008231899744054495698298643912309977113195683065565737169422298136853171729961328550649257529152177843550305681674451793417411578578161897786309238674724562835822731607716804261333453751711680875500808624360684555520155375626713227475877926589865885580605086724209153580579594072426343579579608509321845964336798947234135812371668334199722589961293980507849172735605951417458637811678044719431013269215765270050030768872702542557233380818809625662005949495013806559130371572766077808640658398783335858063870713300343682094482752073838773008842447112316509338971097979806564347283327618177443627238761749610580883793584151037777365601627753849600711941464720741514294333893900585624142254933955167702167883614377116556962846905038754652420031895825269554529260163586606913201901381991206289515615324567934411375432557427932032594284910083999158340455751850941789036418779627379480533757408414762023303471162846918184131215809788029410129082359555252630646006525978219189090987826593278755835389404964200600133163333142465182859985227137340169332091092185116947416576719339388807271344414137663722866621554145436163940854619279478381920244433159660642828668267427456683927138898490307624855160303038116220024860981038260880632399727662478341572541886073031313788051434135415196369419515256886085435728378558230444911497436906615572023362673458552006122939537295143827360752071842978318011735200463503462322978121120442522729683584881972170613341450372754996630863027087470837519874542088990331539071159794942552112871648667614839955139737862445106171513994038347717767313195752371803290599130415076992907010873153093754182894070515970268797980145223014724902373132710898515510498261829557716723055401481667341845568440726917361563544398309105965191328554081341928207433813177020973861771330207602446527484814355050438703556323246208677556143219621049237538935747780457344552466768026823773267470789854719327630786242431898280723033966931870932151870958174383217531323178860825556626797184613972794456305002369595436180640906793089946348792868333888628057960005667869566967339621322000013200212469524828287047952108126264211087281675000645613234238849942117422684909990612388948981399154944362997235368766172327404616083208506115374473150606642261679168751383894874487939465472035498572693967668368033010522502880622783780705797513233823466793701259441408188887662242833110354604055684750117393790537950765821338033346661553381632669242236732475468320030397157078543970128531703365505704750630846100206325880146061833440860361437071047600600034855136590684650660272837211367802143863639544414907988667883134861740854637797695990087742126441024240439387972633293578341293929127406637612008974768370072299687077804596075786623393570585830310895425942849232118474556889941818383302894251997565456432555865448361946557219096248661007197442347534525618254377473278876042654102400433888606605595489741993184061639493425655936761786393848915295492135746894476531981267887299273512918741161721985315563795914108371231217948000935038641924310022507110632356520209939168566185808193884844507746876959682330003422714226908800283915318030487386304522529670203835593830177281037613766843150175597163247853796579700541578634767314151959336997248474689768414774532099629599488768392391546692890147031925650835170710296791150447089871062433538930786140405242241538318620960093717237340287350484962942903693966178093911960449774607774691556350633227561316548254059927386719579717947293566135229930159013151471551798211523032110285298905089615336296680889949786966261031063100757316406489568370076258616772874714134166132072562720206050687684332090673290956694861431128968868484795049167669229531820779095039783104653091180217301905027264878769368354151160759140943907693377132104684401004001157167345749124429431814377020121791110171145325410452556616504653744705922993144995819104217206030733813484279274438927755288461207782385691480759321163611600452327319171906688081974704967963387671407002346909182227065154792520312722979218798039010189925452966026711844806774795340859178416157645701627145959226381516720805658212332198494987239772688178079983237014890933795597791724987097016515665948234564993913394141968709775155071141294247729051116489717894217601856108336466559311619678636118284666059203184879433064256249170129667590800551673058666786460458549446793738220022976352810199108826053513034209871284835111200654404057104992867219299368079518348483328702843297791660549732630404546937692095023101870228574866478687330363349985437524931440023982554897519490501628822894646079279927308216249014001281744259027000529775538681332713771989898296645846716739553354002698702234543807635265179055680881611223839153673790092538034713901831648189876748214817094921968555109618287359255760287487307768976610165241751217353795751835032056693090762632087674020265437919517943416814331083371359405116121839725523544103667522831644259327306139625996777467453067154221006723512367594050473707854490079976486628882567011209795616377575450595110589191268595363715047537572075137137806450385180423468023718784722350128429469946892578017179674006064569039468582735171129028832914068358123426595770495758197753973286407097169043073104597854727515056225189477809733910333110351095275124415022463504534061499564179331457368926356307311599379774326758775754261902720916348879644668186382134858186001625004033650168711263281748251080131192236749695316925140521899343360466700926781754144711377391766675875591293555839911837730772258286319714631734825562740042839038693512201820853519516940755882285262059588937456813814939727384575284337880966511205871521770548769401560867725632321485404470514285964075783375821318813224190106993313745976708199421698059004740133284272881527864445524797691804076928566017528012287638108766910086686659884081117332629614759005008336407708305151471500410487003017578430288773603440546265626088898786945133097205683603813136619201007115288843925989201473282627693301533109889415505675062441240684075143668228678993136704008551472304068110149669884756835711694601645155428919202555095405025342134334793391237020987536046917107172813411691952490130020768247894269300363752007762522779289691218519368790582372404176384051646760719759679408912891449930407491658345623311883204199904494215587622157822788711093369473902464488852996348180178721722823236874241839403868319993362298834273716895622864196363868262644990454399765375756583119251215551320156735806887714410185336521358358872884758599381746935466148683569905491785842605070863872071089938151836674847837672307508932452047009626613515283992044831444665011087053304412345229673386590828268684194833408470072668516929329408292398344815773877239049524184793261068069487259147761556042995723671789035682016951583704994243063399189041964909045803834598580454294789518270402180814199112263662770834962265629285174185668094146991480379203905976594400274529046831010880575743533399699868999754301804942866098095480478070302338393334005925076735209217573193832548060085458874124135957315588945854137691180557411386101753991700226992015277433680324347508094788359658517868515072275628351098847561256832918048455055480877949730105222217164530763299179801989905118349640795905945379482666521831632890610333176269194781011044499036599432227891720194868800763307939591681222806260941605068268448447220374862484435946003042787487183412957047171221174354811879150722109037420488041042356323032499512787623000000898701283611060090184953584486855268248715664076057200190146197966777499100117706445532114395321656641962333783146402481565491888488537323064259665974823448296242575598329381557731266378605457125616903039520908896123160183771573395051301799880104147336388687703987463087877427763637189202687070537689723282215087877430212334803191544614783012521222001992471442316381200725201336192251306491519540017014654241187991760570740998690767540871855743868161639447909216371637472359795720154928033658141083118020668401535987748369654117959787897134263077102768952553396690774656158261020245165245938670204135855924825085808269082073199818606510903670354154844567782114525996705580596318725589860805575650644446216604219435295529089116662610692731622856617455556448816274747022355501245241858194514248503120365089034936511734143009313334948442729837425162182811188149550967933606678322542140021718460535705314982872709161983715563269230844958091129290875278410562106067710861734976163086745736846236850016966439378612371551160927613614424259216781612437330789106028521467880539647524738018907355673457655596795033872952636344121777368784990502844303902591007934401842931364100228046283803056540636667107264290220221397555017054804326785032124475363414175964587671373214640406637376660832769424454353468338036505736646786434197531538129128142969861350303769527040895333067470335898927918425984001933272272354229841093363014590008655980537314877934487765986531899513080442922226438308520107948185794321813274008177452433075653179047522273953545703813668653563953191067125221397279869670559995106518437979874935975306493635126990745371215954827834068034040866221602744461600185787923222442373349446048880748360558305029976333685421666410533999047252367776399311016998756479591115364535636404456067215632408380469952650883045736471949433001433752730852069578070833513693207902847141039126585381045192651723468997403138784725446462051495888175794081690382412238790662705517218913560603577413105991141301708480296439574471687251964248380133753569748110332644841382707830360297759192080297169459572101788809068615363084414423584524792861499920124188706040918829246911665347222891643448625841381229333257110823790906324689271677943021817697027168122904004538544246111344433549307758149511015578876900509650165417512179410932045363607418033128880875156341627507216877091243681334638537342800944768458217729250921979043634823913152622994652075223785697562773615071205958049097597490999242860506857846428487142979508423676316849073162227073078308342105505121432989732040322550467529288265475696046344679051604434407660470249732468262204762961984636187304498820807825656608624635626418132714340260941767134171738978603926773494575388412044742171841214385623986874535015723452082178783057869674987948542437961721131474664534057335754738206245808513863010817466762931219725719251839492552760654083033544198934803982091946485549354888354522016696084087932819895234577054364189362280142902694678081276756338634694243891454152419676415597382221614599342926984171704645314451147417104068838311625979565863153278506203353012024775057100643984103359395806734091086517420939172527834224549199633697358369430161702412438391854949643891896187740739331237121248746478160485341795576897710814856706418205235384246665175141711853030933339319940973575279052918581603285123263740679159843231201490592868227420866472781952797316222470940643522533816899797631038272738598329051002615902770268751882525231653860432731135126628200799521465347190233250024828624330770905435992939918401982276221503501815744354334026570230646964719134458338211212595889212075171336530252096098683205527111696856916922983922755727537120547744467662286982279063477023394558082917169144898334228490505937930976467090864662156840111909904374426923010735435562664272289349849520452468645472671720418757707579275370033013132554246023163515663488320572114946218300188038848893997471456425106225735761056855873924397331072375925908527228196242585028248016022062459100118772328296950483857591441128227872432262883261606378245085394687800478813333856074757530307687218673563747236940421190916591787789717884933112491748947567357641717190928500167615408404417833749836885669708178896562776662927956769641880098442164041692712181775188679284888093487258879340373384918315919514111924664113946876326535832499995406164537786644929854281516143906737054199001005943314776769441234246095327444094518822158918458617719581477620736012076564007861280441888882715079426669686984241192752169763763974585255270162814547737502108572900890390077483781140193710288313554630843284264224210601742268013831152855778716940051516325181474999341309048275007993371892006133640094949661711207863401036868353952739004926526535300687104095948345128863883990733201423560673698429140232436064246445726968879683122187846709619644074858025230741524510452840165047181569118948732184899893466399602313970804043624581101888082743014849813495784710491973096323714190807278623442898188524659588999968356378806424025183274522492385421087669930511619979222023300146902122059144480549248944627029252588037114835038567913139033088939341549473349481863728912952822038673466031572065571876452745042415311334600144464000148272108920145484220326410467505918825908145695110111692194849948942502370176079377850164587638377987920353674202062617298945328030394177240762115055956118848060546385065013874753478766786586309053270541155402386381376811106204246028654165435956630924828861475151705450382425316614862556461773062511988958760821201589335338862669666714901567623448729949483015563729823453895876874112171640975344936456177975667144241083226814274197505388295902135720217849659121071026413674627959728999346676117115982438613480906802856157442371503641281752406618120159633025582431332908290120271622504438797483497312452644740546117585715808872222003082101473473021489889810275152841123552643064076610545689244911671967192295904020479917684506324936692626219588474298200916076399906672595909588102303412091607801590224464362114963513545165716141497635238451753047927965140380701084058537305136219421245408636723096582167326114300316157773856002808097703765143263938385373368214609257527910274549997753503959327000993927309009379527746615363918197950145075940519711428090874933271781501592792322428493652680042525249818649312233493112187733819894754552334240321625627341542487366662716355565011813844376540446085009005360680180707666912889739384575912057709116592710406523604397654950543684996087834210755178268819186773953957456519039840127295549894765598234781567636290267746005564703096600769189467191441836823013623179195499020365871756870039436998112202245474088298458256944152330357618098300387422418226005094298392699935025257663077435932445106615407722692114986217334340816518506585855251762893684163890750347138737615060562954598416885768340713953169628593366267848710903793290334998423632281221469153825497950391375563979187316037398029273111353359919044736331572434898739179311725841276146966566045323551708429621755706483461368171009861770778762274660579041592839794032844876142919489557820740925087919059159549176058223534534350900612620856940573003894267652876923386280284579093607287197783204041013095177794679217581273002340586562573793645239121939758673843105599957348772321535720372958118873429111869293807955416368403229804617804438972952825305141611751437337756651482143144462643458565860653859151103269371330205399620696617945322005067065008069012061061879836107008157462361052315623394369747119004358628130134373474795022060009225435447707432856173199658576187855387642300513002650545104814836709430985646077901504937546301779383705356029079971709730719135966719146342215614696214026537153388928501871006480602002540183650132239406454660418220403605238638840519888806281113743738687588184171383832109612602260461429100088713255953720263383117003347903475249533021904100641548154414339720018424085947163830873591124544151292406477426742026735820909116622574184703018091730090717853443841375431793521345252104129548669496777186486012954564636006678912248909486584642458481946320058568456743306775571671051480831078632013552365132519276033881240325976753362351766088396758206201565081322354166390056164145018705558125355145661220706661417421068775497701333121583619241075998116272585538480951803033915316819059222488566018760201045885912742190237926136614625483695765953687220716283171209767628154908264834692581161774121546200796142925323997985918193472508588094146447078254844321964737276633964897312301439858158993908096501818881514035849012388578359090250351947023336838605017026859264798513123776892779839189354282077109383300678054327665407330906169282040986530030083330596871579792826670286180136988404610849583330622939403650359980560601494632082080037606465424586699398250238346493915256853200331332541098114239167879212833258403892787892460545489853054003509224086638024113926565436708322491779994139667910392710983845259639722099378888649509534054512422686505205773175620389478185275884328877875673539346201899497966560871833149024009808551303087346365143822824005965471491445852256683550235879549646848834152053276684091345325196134765270411206949228428232166605606248990183463672737631362670898423549804123348437361225200236492789291298482451803320548154848365429031579037384026619904268959073918871459879111346757244117301694161509577605961954812787331251578889670489912949471101713934418618255365073327322224671804747073931286105352234679368414174968398473432203599160966315722213500717810168757651060421490605646253167497277534797336684409641801604159074596706732531147460885792338289897099076831261169005797884308834395538198503183579063868232858473438939440037938200813192800723882555094677317925298304271180946712062898492973155500040269091334415017947826879974643996484842457753166705011236673561502534335629508461184588004147456887522895718862036838924121031318677182364776898398532997023084694970113499618158215100288665287991064239882587038915757593844427364378977683445069941462047738742983407085223103294794425303178226644934187825164367843661394683041387356661406016653915761738292116071550908583165780631328358438471486289974454338971576719634525584247558245919398810119886868974871382913492518390725736533009328623024715657295798636465680398742374637506792563380858467217286657108859084645770535936133137685913385775293120799909085662299040740777846919121077604107472265649639424759741121580906554115966232487949786559666558312971881374944577364763584753629021802015889883205958807694891817993548173421889794383647906789911356563142956497665627642565076776078059555259445080467093775702162938390024615382869536080807662120317157677114240102699634659475839815915017675330802097047279702690782617362073326472611936523242106895022517163050298697410591553774302186176298566140515963992542357529400847283984296242085284168197047315877883505083921507391077458756833572301955444322674720790673673284923111796648388735657073241037906909934112223890437732280883839008417591640309761399037852121213451466628190817288941497257619886904823420233729539920302523589743026739031193220804180071397082612048457319061084675002462860408587527690270891784197205414976746588879691770832967562652816765409088301804382646748085956304367856847259047308711148739008146791128657533678833605786719838271805950883043863190278585339442713842318696453792573565801737062751757227909002619083101334493519064189665512555361600732399646073415028550410574316676334585602586161460173556883056836521748468824879501972898620845843817500466090351775288486572081856353507836112650986055760237496601339727291096075165207068799104678579938178302300502935414788176740532434828499179875148538683549446697123962916709968747501265186592211429267040291353084808190344327822186575931385406583409416099146028231318424471584104895345327976809026623228700118103001756893247788090178692807710289732350468283575808781243453340578952762246689421661454150463795061557446653118669750515795683715498276257535136604777646134943253535640679783307429796988875425110446234585490082864448236131802246524030324657265161047819859524523242707991976060168259053858381376649855777379399303258231492433019291987686636088230464827018289518374801229968413206016140990535209448676671617016456752212592092434030560243804421660464158956937509465343528308545723925807179734045219968807218154723821514831375643118214193097354319880866897862844176137879123316892527184250051176408683314151103438195940085099509806815438058904528586449923650756191661173061043524055396558895926341046651570489385855819117077622437275941916433282167343231889730076421169797731345324837544227203336036849806822498570942509092955842566768346554206120242461345358310399711031101101007453340282491191740391321766054897300807673824354185158996541649388210123276747367180414258731476419265554707768978240637806284907076178227883047572313808422599777074750382615693240600480246774388184435641516105571135028822903466352027838182164956701868701195386316125679070251214724121143370995773810244526223696668305615664494103571606345195313003042667798858923189399217574360997849870787259744549488922665088479314961805145527352945141692959978631864434074191039215573523803529141963940036726511981448520081832001397629922614369198708172488026307420927032397851865006852004574266460684523491601091242235734480770990490215595641295289458830511808111730403065534115210132457313155366048030239389883308860576110815603562477342793201808657526752490147644611930969403173989027155447374642873400259700054123893023236666649193408150607286330086988374794748014749697821169006281874429974546115824730772738298591781925753579359831770579926865881390524303815075138608981403551064001188979444715014044890329608636039561321568815817808370834086638750786006982040556663041797134879063514992404205456759205488189292961648860781063657337003397819059719464851877616985717042965637791732902587185570037777507912895266400270074169890254699564039054831697954620361217486824708967390536919922300333232824244172252035076917678007747612924034095819263910322385028416411220370761178561355475501309701345080990001729194466395982876714575096789438317813933533879583381206012522917053465120975437700651179163607717047821021565056022057538730747873993266625560729184285332836659994945846548237823399447447820593034642475764850203029200272876699406776792969117174212130238045130307839258824432132038283314786850407460058360524010761076821753554238026306470576405242718618547725502154918372923055943106232332999557494858937437996513399022256792494346828370684738382735330412726305993353065511312278429218373617175597537500932061471206868009567228890126874412472843008241129774341863224469500488231560876376424870219262099789895487620892606466056248937350640990870226587174368038321535163522111891104262961041416688399809557638483810365361532995621798765135817991292505027298396448909012778205526673599387892147121947161619848524400896270724150383803094841799622817758741126833534431390746455567430069786640677369055185091341952891781228011703051994241766638289687067503607453294965781156582418232678807117020238864356556287275457830509694300149719873833739768638053211865902942229809497622049777837492190832203092481552365948681166242445398161179228104324998080587763694144902928079144599752964927405151487722614278711931813927444976129844053288411565472348892645970662768150371223425374397141490792488859514384950060307038741444146047811776893276678198996414363000009124919023243064961641399327846661329370434178736157226318701948153607474643753018817539392388702797733474093431789259793986952441665789366783289823076284092609729461993981236273750594145771799234477819519672068811401605991806855211569135439753019178888656039653897912186469491059424959780974818458837340384713584273611641214857491509047341674837112905394036737601347654552404681103970207367910437323047152063705891964270588645651411814383274045645262915192307160777608920469867170359736612396149797832060939586599356336277207633019444964519127753668323097754927896670433561075542636989752900568089433265932018520673805878086389742752860485307424265004926958008151694860891928113502040326775677371995177615745351666681221960523262032962973004430793824444293077489801975543201951841068988664673020554074880480888973242799898070887260047994387133417200227617033797801272612021084681887064696033167096801865266644492778455546748459313845609982586654642990286004374623514647969207165091213019325905725726300700459928064141314979499444633988515338486348732890723247816886838862479464894921976231836104015532993906291663291203235569581606116214478744870490194538440524182618857461969269988680606125538386006342195852569201845201483007332118120274959504454715466026340127254633342674335251087634076926616247879625657894831305182705311904535041480450468613886723376744706748181460456300167874238717202824838747726955686954987715789637092106030257181343836131274186269350825494950025007992722967617016272344600995560825058585030249704303829887171279974294356043983764345764880659825342108988032198118004994285659161299627798434303944330138708181394083094672677998088466670856078560580393629346278432170455676152372364237428722148338482374635830263803789143896339657993575301120672889962199068702189947920903400010481980651396931054744955238834287166152091060179499690437945589983666724656062658344939324019708327695662380708598556491987774200144226232525492039254055918144732933301891554454146948635206290432154176045538915689830208511563092447277695410101183973261790463192036034466650190397528284653648672790502379877978429723748525847556120709362864513449302124514491415054814277377865426009917012820980152771691752734928294350168253033386661742229198322979238366575371446333228060478582689024966388649765325126454329499984183887223834048017530822585453799517474898008286051595532373715001002676481367382982804401422093400228356275153439174799909607091801406925768188447726524761855633010805954514923704396294821822214668478152446712739051936717115135220569397259222099170670568634839329686109535889328951191486229996752659114799007545803586441206473985132458296779987945600087051626363752093494506394351482439722235451669283712140590730970734632576758814512137943837445775893310112059477947156427538731288143547008793669347175553615183161752262747653678331288795088633472129421704238700600039303638452815570371433172313363913883120114684952047392279538256445325744321631347081086237939075557516019871534455876905380847671581823634403720339347719292581264478284744945133527589060023901789601426218139768546417327214939834597946777939193023337624096709900894052970329661799292877517213653482703427638792899151162268334265369092572431489659856135358647407515862957843580149970307116092939234556492725566857644397967589859881332707850364046928245921566633607482188182705212557354817991787911455627153589908213848626487533569253622271033368359099864309990825264724647950999802980070562889773823030943058132789425310253170550823387943431266374771455632127927312617647783281604991576192997137482964503079776693756344703971407159116607121366657110063021546989081293765527437142484267484271596560343760066498099843719267876008955056189346507577537470515553298337445986813591999315770978463174516845627725209265507016450266882027386960200635388802084946211256164728868533050588315941365747843062224973682060254887078057925884881933990083125584977973380312742961688054044541024987833964919798306083518199231475375328343011974777498653260588965285278317772296900155281891562353215921579003378603311256821696235214794418403407545348645259117035689958399434427093519818827057362437830138023734208286828166280069143552320392668259726039445086025521955280889142383009455242311620979469859248092134448653079276625013437328202433727409189155025235873140570743797786018972973427368510176102161553228241799172996333173212200934478161046899972876291986096071965444839982799983557676892180981392624700337653622930112635304034118430538269560665157865429180943309345942886146237443290694607410295880007532659056618562491221882905215813783609350046484004223073986250113733407485327009063794482403230966468806516285971054269211338066228010096343359508762605542167294472002525081703689735499765405869981715202458691339816170405719669043768070541043260769963626434197174267902560372884363983805358347754877698016769604457745551011549502898989579646840211261299105895231384757593469809569777004553520391626485587369772048233164446469045526073108440092342144400986671748719029902931006058852883089951468668112223212200086065524184218072116574144271240507314189999873657632325937742958050091304244422231228643126594084049844630806913174756531910134252221730484887138770461601237620880624788987143797166036394016634402872941494449520379698226931911979696677120309255139438601476459879873975702201334569509662999731349724409138186693753184595248276850208120852182916447406402802724272983002047573195984814037936725164474423489004304319840560736405150081299265619115902012510087419981643920753563673592421321211050492935726795256014792234809125151313489406622032039280961037790174807284964807703457483737096890553537038006515381503053238197208978386078378235916353527592267204819324600415095583878351518112728118886556497426017603364280910676526013255482983295823492014456843898331298403015512484952792793796643511626742119043126773308147975223612449694619956272852197734034031530014700743983600315331519222639807160386604429628311030164493569278181802003871842854017686623974595644106130371846445795614730289719551924725566431515642176636407133961590362469150397074924438850714568773509362086578940647271462826839543656165610293609175738565414176495737064514960004286867178463770520328072935602042885861427934701844297431819002101940408773414812701970846157761461197104823877655308558177993656021731911467452575951701259484068407628788797954995092978219669364777932315793802193729891349071715354462157194482790323563498874409314479858048126822363615961201138460668655694697014056717391124671109984902962741157382067122398879415549613247412215552665866149922216798143033013055188951888101114089845281028558234441519608513620669137191619601018690037560062753819729812301268946687849436023177151870493626793691994897077998520013558754302989319300852599671944308013502394312379826167469248888501213885734286422099299998354992294536020441302893686437506857640568241393541888335830656888028737464473108346209511021122612713100648272795210813190230887445891755147005891103314593690344678343446301845207281815684608991073042172524438275990775623756871156442202794722653478443938996820358250679193489423768592649818764482998164626316499164095312427802536936723963715861613649043827907551055315633673927355672274052143656764446594466364482006990045242583583386479400261165036457467398987761370095891602594487540681212798168193851682992338785893776887255633542717308221269742367692308015960666615319447845079191999226536343902746502863227469936953012541810414490741904436764894067929600688981135116708352795402873199550560234465483742052530595081478428820887832095468591852596321560608146202038430972115966813941567934510973727069198094404555076237645839369007081666454802373948638327515700143349170081102950275802161331050044517410574162650443580448665607075686880569313168210457516703588068028088462243292266584096464297017600507696362027592151779193708429541730532458541994721371173907398796998369692975480663856178137663895564006902631329677226123948955697528236503180102300209422479410806719027067607361503833613300907180998069472091144286356132793514997607320081305651016634668765765182251191132569189405095706329028816910634032209923759634695250983059743786176236655460236143924494778354738161021826524558360123260054578074837343965396514106864156228161356604677657684004944237601941077827826891995622336117799246778895902495954117139835148093859349981221126641746634867668330525548589251011573156440764806037449246558875242004813220143818967098987201382749915476331920442998641905031189014057822868937077767732544628581898542224559259479877453786680875427443331695651111019691770038725774138163201533180916637522670917878418694300314685645855366734584217426031380737898793980057043219563395268691110047899346958792275765502317891640913510558783827797056991594206773114294369282356543208392312602879257961985525899933103581446925530156353656856875387132714467808816054438721440785974199995914504348920844024428767308954117226882680893662856300940619187531698596185464773559563926478675998172048471258394348388730295036763060115933943488635607397003719493540275044426271464207607465091301583473217626835786959653548981163549683774459351155661165608976922689714059590707914722833067949287279834771294622639044373036003695285365131178061335011108692080365058982358023456696095178423692476389070471392620958255153838535981231295453170088181760539930926099678070076087032748477030614677027567582481167089454518888922190903760917705784107606992101676236228153992752809895058778669857518149746170848420317680735199527104119114430038360417693303623990084379997801335893951764868226419713634481489667650661654916779075854815427573563803089930037853124961691510937122029699071439178364238361404902275272615951642198845067193805885750414732914206243813495731418017998144274127718348321155857745967442261980469328098771858011925394682909792177817130058683843116015790434186788534563599989415869070250283384059221818868283894462227711607656520234337979915398953866271398519034198680915409814969356227309712241482029854119497754428322509141066994228518868028820337581345374300480463735657208170013511429833002554489696677234564986533497520927527271838969230680894281250739136224477016103612053999281088234856816177550440131418270859635861984557572170353319768847816507064754501854239504008175183041843803248552163571652121753060875901264440773840243807069992145010987345736576982487018074113253898487017665455909178441084535380944858626349179425704234319086333531989208445263771435610926299139444099879200221377844847612957050292938035083410884740009378779840176089536822762089409490121692745579452467136395741697430548255668418235370713220176474112768255885039150593169873703993666629791729149329915543877672212629289304329183460006840840888651039921642407960785726189811860796658822732796984464940837725207990371043984993002324584288710504555111005464757114552900485637410646157070002491152796272900893464318604364998049169169121828376130886726132144732694801729185320914240755027628926501896159469093724104491826855866754627711220700642238995284198414546830192430841648277143265695805909007448873977017476273565013999554333609158855137310913806322150861843190115160805983943896013880000505848451403879568049204724137722821988427594029485441196485244522484516983167800703007792943212170550925108892180526889954554951523024929296744179684044175097163768542248723809420732460268545555335758114176815964788954741670882543587060466798844085893426701270473174616910162885260620987824202525185314860478926804973217571465786939426343235438773587879272529937753255378867623085771189256675174864113476644192736745857038504986265813484526100059290677891008064360893360612106842505008762369560794970654885370234309058051463882280303156472093043692385646893976900015290014664007278832794687370009210092305895438270758929116196221722073401756788692843141992122839595447055652560030487914885033192122914567305155932058430369376805368045164933975544458137015507816441429683989581081476038145889020043330928734098693426665504413929449742832337656068122741174027770942433834212417255552964261932324430460952848011773565569543355610814059206725534744065250047083471054793941413717971941171824757470965313112749121723597096712851525030009666365500346645403003179498607053961704077820943574076083821850001800723967406030651637872149995463160779584465024590944849762271345512626477038331597673127672160447416780951355050287210325154327698619006845766345595842516370840851535408237947342172734634624497112896912756720787013538834200514570166493333199267606928660390437435557780476153417749205956992651233582907954513056880559780456849277632160197348790131341439521987718734610505368683937662840891676906437173880416475853300924515259090882073351643140735274131969461562009496184804434441870875389322669585869300946781815933176161530297874905019493193666024004439531683026766724453087070478568417358784846203026451474283342251432496283629410220648612038803164604216436807091914128462973159408275756474125800185224822283477963994601674553596902364346821937784022592018786417727382684531917432428107958257994604813444618715679279178691596636492201574908895277980669558860323043146889488183223268449964168586897194749568435672737684440130478013557524056814518952008238205584477834599022852351509676253506638712984635093833629452323857670399128222288318232808229955556064443831829025297573698570580817973454192686722669260102166597636415140081579187379674968157639643706945531800486565975482933001131155952487244569797970271684421858312844929369623051439984319778146116361860271107273699702683464797858020738724972705303240774034696580667936990327896923686138608188563302005047784813076427149855281133902770628872500136452013569189792690837337700224824696364398619368845303140800689553206724975586296143733521166838750587197037732359400099539841941266193016723797670634515496019047702747066032933447110245435206942572547872892443647771591706411276335402644080318522159756194677218741122543287707873651198842693463075008565591950781723756746473815444648787122543425078013030447993780114145885064523873808047900170282830381489575665772244914110000664492516279131305452666947475610186678652486137085346241980886642332877807779052094896988713063543772029239909417625991700028324216925737375477438086619774951014958069113227135969859463180346215782458837625289842411261568407444562192632200143115932272111647828817344105841282241248325389938631287396174888105060933730902864223349797215654323389019595174772612956633341150381646575758177765241527866227543704233796831718732837894018381528641547125303501129347762052092037217142539809008286266788553069772730521767286564958154544555849720363325769127143144951311204187043188809990745136031872523458260348033662852108832481332254506236109804943277189973624754155693093642806539577924240633444166239473012719281698220912590050444832838224954247095695835091027039789448619890284102760188733223578065055702000038196815860891532198486235278140797626815054886249126777951320053925129203582512010318372247587918321776713833675686673190604850679616849491372119367965274239840334925840158471742161969737371601755470478234642851327681165679578617563933695255985887189185404541246541078869764492527092732030979311276940671361264367886696568692318642270030596815767262093243892780244127710118005944306209462021457369316982133548096392487099815708335759467713556660143218128479578048040062793675204479822313262088775539044705236516164736880236602004604151852686415747666425726557780262321264010808545935513782452570113123951167716155898434154387759984355428788562654949082419998447409588876141488658295934536397767141941616058571078473351659955301502894713990569004148144899546065212862727861242439903181117983489057661774740879997038350631122418428772823314594861780430473892863100638691457158238465917469569085425304121555812639425613890170248931558455625056137911425763887211171818733988916341929915618431518068338195717817810128292140010334318914509569022706879909745651120050042545954204858640549927731280200396560117036143483299994346132729835151849825609664548289091612082940741686234524020766079369746092298735344533369355274071223970646250441721992148235728309142539001085107335426050967098659216166325226355243744824748471840764745948508742689365399651664547704949373505985982150089049235862247333541946984687020822022456923969878282631966612046031645957853436006188896280992756980386531861473880877812702121067284732645285210121279070383592967121431706129067339207528497170289639909168295047266744751384763433636020550215409730645264489505306599807128465583616092244381961751305284271371261867104887406828479276538408621314210613267588886976624687501642856464510501997136745444684054162989007819311387025879540511741465601174167745723480306634634888387724576804365377026298053369856222149968174886117807325224966624742898461420007974897558631521070848277067722383780132113103751433608380454286443442168880342554279678773602600055775997339908497195214020176956221961997181602098556232259418734497563864851404832660107189582107345291562665626072295219995392195329658260066191547085025847290401112868852648092110467003764754365195355996209477033542287775343934417227150915780518809665791804734579349213190576079692708153626003864566292445344507220625779132752310665318777816829160402691048563388236706574305011459639745148200224350819110409059095488576222907643658244775846465843918124854497323799484832850673797739231749248487940107408385826487272829877665233031067685132715404434270630105413415342986122866789877227017422716472504628463870973275405277758136301691475574245607399592600997457055523532387372891976920388447431361376395198745999241438217793716441124111474031376973369804054165116406316168785135431610465147885274864660237882965384178482687207816402459693992099432469340358246932551488304103392393440182734749515889035115309294474548677882563405705948667426123379150133883231891629620047746902506721886476889843714392799122642269167488875828978741296353143151016845243889227920759695023024011124049574367329095831212158179836347585075501497125910744787217421214444724432698999750360908930955667351663934540113563633936058248925647873471791778646575619742395422201584492709369983153434542445425877480502077741949252404729701163619615806869061684667618297841410294890269615399775582868974652368047894283088455991672167693656082838107335623470775765679350475554136502795499597060532767008506654224656349251841888792134261109567960489205337129635593323244516115348859399605897906997856747969766081763645936025899663706149121076387401889056410900997315444331058231414289534521799025812682714876855714155193065167265713630707516749480266351435629355545264819809620334742439521930351948088905562292315970794475081927345375362183584686235531783391926579835140486037864691641966475306588003130003182186725131267598915145448100085723679093357925207563583853782559962956669877650305944502673993271169040933234446551944410568531104019479465117698137112423842431717491933484843908228249211703507335054651063177009603893548458198159893975548224599117741332184415541602455486058725204437750333009960361604516342650453029499686308089772910491378956588878305643461905246786632013616665532980451062456218859397915881318206873279020480972721019925602105105471886656302036429674248651816657205016204701059755689980638795444722251974592361831306396647131269414763959961560513763237043311613000133580158542895432536037043742059307758672401145643925105756982712937384697740186642873750339583256247503913015483566838196712834203324712492349879372616551229992328694768389453933128503187319636822370815006330582480086127212555684721315402898987495503940621399508579861288465842756918865547811888893090100215742421832514027185052083550663128631672292062957284046968786440112774364406417611431961187792015777559632846589027204597190406279336840092666182861457206634936321268857453166703110032190136840341923361488199352894363494560079060716620323774576087792392384023000316027364630241357640756458808531197745956005452172745514271787404554344692911892239745646052325887035590119783574026734332413968066462232624907275808636731380254698809357716881811046318432172801559609809369220481725670302160338363522682822426423067652040089820339556885166560276418342175831601194007492333212321993248538845845964714669918002165134353047825898478415290253257928764829979775919329500636373913389260879020983584063579959623079080587848517248140141044130346879996215618708383952543314721858504890915034717283295250107449115433147033260357078770563274782343462960096186406017996975562842228415709898107515708836979190201444066432936771661443155172372038937266528926784367560137550759423637588245885394997513142162378217895400751111680585456999509321427610506173981042144253831723479853018538663130343083058453234629710381533715542724842846121071653269431432518967261480128824232972204600133444154761641741972284925284020390425346560144892637482115404885876350346162093166460894651074400137126852372424476569316637125203621162320292506830593819076614121685749765853460220565890620723380453408983894878123078016951725745285834369804162491468013932109794721185689906644587812818644346295138806968972389602150439064070740426508687308372378353692276696037045344697035201825559923276090139479475534891490478564549793046098319363909209492813846190184808193617302225782058692734208935742563605627877886457819187437068475324541323672966552066797442271741775588882145350498824002048299820983545953841016034571681799127728963538018711661809932976928478897597266202996967129305246865944185857742559488285790162378146197650095182100433001166785141095073635757016875251024881738699249962673699144730263331441939604853848670690967185707045275367512446228028131764128622422922953721839386450165241164503483722986839810178207838990250750295717015975100606923732563368597607370342461063215130409036830873857052400863897606064076124511186335139068073703758868441182260949490147188165181699172812093871347008542075022720503143697346926848157831403600669231003082237850182893500743129263712269672797406348469645339441670368812275031047450153324953705651033801378375811869904915174228765835199631239560585808287192953541851239418544820484943257518288363864232932774908960218581200859809422218618660464101432058376198515329393261565278787092287022421540806238950240537299947133029114643241326303057828058561396618699540106840674957776907389382567736549626478139022218026349664063011770852747372445737787133664732971224914937734566706008340851378139226134806562228730086974026790028237715088217605828769417120830793288116041357670385667928567958347149067788480411262096899688733009786568295990553066900604105839494303066272015170670049898181590373525642515624695967262745175229492046827783670392345750414802400452426621797959269767728440919576486447257481206489703134733831076613887911449055307598462023064750435773966801307163832867154231301104097830093324336570251060246211027349013527854479104712030770058344415898200031589973819908052984831967528847657050724541596924771963716114421269236960989445375645891868416601219279492013487780192839300015145960000925160136160711042805708320001032784525080969709048237326642216018204299064915099653030057858760463920482118958527907340230213986507573580648206467293064995877450296119279336875803521749604109244712527498917934596508772258884146907195326995532104683295485587397951798724859785118885545886387643948270913939172533684679165611638857164508555978702293171868676020059393946126494130422509490391017570117631382956056808030785669236759965182183199345261526538614462138017837521729067950278659769357778978652607809704754522785479420501334417312933486926291476893145965500232293788961006205652958466242909849318783976510503176634839833572664403450706100902119329729832664144884160221767763543026045612582575263100338499644096734955327501901622640495248496963410288014710368650001311915610950031853662476521140267984571094919532465962692970478207776004914979276465705026225589880345594939025212269743095715875169175425115090282843605000363239778719358357158887553343494076868394331348999814871211484688988776785290337264204362793610081949837978350367108092106692049982486098331037259225295621337175054718959076970416500187043145328335325606076166710621591893543987727882232062883215007629171789745292640535250608487972348765239976959008188006434724338284611730447356927822686370101581519469322963880322810489313691212595697480081501131700700520048215957354142155080027516286659998866579617064634679099396148424529857030857319367583790239144263902962983448401386033027234838825993303379772319771909176332023428942686084009634357779287992025070840829012866607466761296555267135673841572228060378824523555256090939762627154535286847714728476456121995692459501501345133130114221244525937660522700841928076865035620086741727807291689551014369345981492134235339770399274835959582299225503114716005887409074332897165345180519545182789101670804589162391510059915766730918388948360762393535975350228467359301594356559504582718192604293844637438535970107626945843661737078704064622510772205411338853363265241140349819841099175593633627515526075379093273096364970452574337153641829661305072655734518449971406573113267456306450679285219232451488898011596290838850415722971287870832160288306095594621263037439122052902897436540221180040336703891463276701735692702392882563945064713492058337393794639510277421318904615355060554808710762555117465391042854658780131401799870821389683722161588153448428631308540392286586366588937387029891823853597248584184562655628170949178149098913815760469838019322499294406430504849105362408031687324475265121539179543933038131833594597153662968844698051828050744255162592081244572017822334261286077096949885657341981897779799913437370863682425656118518083850359715645265649922246361446264685134094430878365473943774798940476588635079073946202354202945400654845695078177636968753436539805529251519346911764726093864196688045931636689150981475358206031049566294894213579861386394806297812481925067904743603282523968587579460788695346929310527330454250186230617888857809358811328162773064606354641626831093507067437398037409884330166149034213345504595676637692534564573508965230762641173564864428746079097614514114556498309352679701524023690200913758937098960805507423195396131994024528244103601299019044980974516836757076531197015493711266484160854221141452541159491554314979640495556850369176938800185642928692794010454375620279942551803978438826287404126215283917449506083995317895906071061726460001582528115660048061150349754814551200305140600865637542446026117822763527092567631176911821649690374642705390924920305869107514196049291395221055851433979841719354624228266476470030028993561930784964333005542057380451739194910282812945978314615796978628440009526998040755418421702956656331150303483626493092121284507027833457349455518525494668670977643730048595012340433460709472115967629671808746906233524069234507451318260092238475489468180852187754198677694682504688211482070662711419273750229378742838603222686684442087221004761095961149579439901902592140773742047020915487270870575436950876975058452899510461618733453782364666709815081248926224611476870855045932890519011721142623944996736867172904883810188824883598240696045924332776654175541884903556169567883906489592057128933150577176212387432604660597055641684867736620073879156828362911207795443130534891297034966485030260976449273347879322623067862846222500733612774000672474995454720561391495920880524565342977040079784564620143869944059707305295640416953875336447078839229041664936368201550065058895305149538563685066507757538092064329093368933989782457905295339566713445985339905673039207846320403984261014365135831972098530371240730739599456107746333078557663952343847087257046504631336525012532733995539640375471395875019305576415368676218973292929512649406791424735778030065844906683506114310251245160718734427849030377532475680968253302956055717908641196258486463290003063739796011424698348100314013555089171637603534846679523170028372987385694482230793756299322924144837341486233511373810519080681171830719329835387109905381753442045221339962362016674801496912820360851606191244713529488684062407676368195717420990103363173740255739418456760424201507748471033837547899463680840095432653055294224242275655721913537792256869760482482202905910398572016147378905716540064336136918753707684049596144572155746677957590577692226377734908079633349318070144645491767730745004026498632385860590713413455685176710721712077074887695717388685937578431542815134265983850782199382875508843415870388146481810721384620228939507277099482386644954759873767527374839443869792317825395061396776999055815870092983169363540383040510797611018669619372987591115403511818950483177061487490677641930687140762340226340417637583499995068313818562753498418094806163938915681197628264365518425444488033491666473843935617993835660831332342917373398334140582837428585982764629789519576544592738430630021333521782211862659980115023482865168646494851341603895064957905942574499412810113414984770962505700617303362385151859239054394696397019381048470323359550551737971102081060097398425428732240601997636611132245771196118869632374415937111712837707654095626333850862961819824424216887684705883161136865972794230660389182878492749843399788898910875439158191843555155937486976016607221632493763210734619547502809174561010984860081744440074300148775557297895613700457859134519595656896752652663658105833868238648305706459867030585810842969916848016705913569902630308984842874320622413979986847688448272501853847572725630186307495610846828562592548259900943288737943443044094314554335151449371301513650250114168149438507011909447894998197147347122636156230839753552470916718066550782291325747951037212736195412487194121706542365430987778447265693553418360446094531989707794771441822082476778199401833803320309570163675684637743768336488652462986211154895813262695144036054071592454245747904971886096693230336064450264050719347840637878740210039365875520386470963655061597519923544706741816383369000150365172382557177455348584895745055835065184906981583215552262835943583067706650835914231987632797441420300696195371393503480699791187492582705682095396567892159758448737330390903416515019613042813640449894763123831931686665447999039845395998418100984664717751325229595346488563083020877521000275268607106501583804962784880232482730969762526849691363370130078792560813621295584067568462557530514912176309483609860559982286020548633265419300578889611248022890972555663161087213340937267504528138430316258785068027366485681186859978061192095049947450018152705098085267483751658667610020365399068594523719977340445352763915621849805600162662602338308332810153489925411969478624146265851541615863573039444835101146553334880669822795861472768146163890499855136873182122639069274160906585044789514203294363751761391028462198319093472487045701445182004223094093127045987663545029163892454745360179900329842535129423874678948459999253086444442503180307799952854857852472940544940228805511626945390210526319507929265917721606591415593024747740776754488159539980331695826149085882864054796070498539942288727787722518628135311802565506666699852322496894675848227918434178344987477717607360727925066792461822409071957197715657596449024215140137691033673989593122065815040775375014676042677260879411251819840454677314139928919510479739055045500538490287243316956023770864375946293985052777868064867869818225996315813511603951378786297436789387838266987945895692577597457669730173952129794967815777779695422537863211692099980113299402000206499186081763060271222242315981122043115729005644556191402736008025749738942551991854557714540443600761704449436016013491695432377083757444424897504451384370157350768232141807468773500799606818696338246770881092492463883749069189557378494772080041233450366917866131941471162877297931941201236888593505798316878051842675671491283193323216427642881822755156652064312513208085668802947780551361319203799625961677591802998828263941508531740507446901336318564434147800665785299128606689686323189240137653500437562307574639230847034288172003156546284177911107067825584407894683132168667414564354768043044664531567646964953054481520898329446055190511555279499097481887235146569592525563484369611489491652018217261992632467549781614537369058734539649349152559997171563513307926715804343504171624682733510704254530876978864939723239625977863802953626952692166984651747495473596569615506811925966568487328516804783153909734915362837060290073631223977027108636555332728928109458948935878394248970260137760810096716996839363852267733360408824460069851404401725936222078100951334914009315055138910063878065316984202504464426149591770948864449307376834435610808505788478569956731732351448878451221191560182399123904079002699766821219578427195317807838967298452734782294334845918431215211605730016541288903645199909884865557214872268911986675431398453908971785939088633477117756592080682923364877392892527752382436432763413276237799935190244983363514950487246805746021489024943738515546668589846352141013474918314252327594598197271378800539067762736729441143277541010543962802861336553517373107495194478706243496096367277348090000821613909736857888440467802861069384820113146883079563044659497420491718828354267516886983321976232815122629042937814674995577891936854390556015142742769241422090158425818279364277049535319506122761334981235316946304695821995254451263131156512111999480230045620475531368681798547814333650963605667149715571350342365789469978930721406889665260760648101516796352435120922254922058082114237994770369511695927410514051870462086392464547292016599378416294364035440250808564600475522294489412215090292638678150772169300180312464237833580950804390474793054970579957020157346938817212271232690784528207737958012852548327693879652696333340985631751654610139687476828303494588517685474456476410089712616548376472425595398445200533783462891939964324113877850407374154393825535564414852832497652871379188013629167359600051083585161578293862707249330044829949637800479504707518879131689150914796358855083347983118369891285735497717862807172917887788850154647218401505026736157035715921226880551767636764158192422087662667599727690419233947636497785197929148975816505870470444570774701859975856182134135400245339197814834384913247709809691592401469581662744157320716357011217808998898739171400931414544965422555000206646304114511632247110040968164276166176853928201635599573454614586934181146999067170471856469018899898643655057562940203328808420235923094405987053518584177364229190400524447991756880893304651302206062128491081945528329990416496366447374304769846096106487354597536743715387405460865785284772129939359685711157920494397138756425447826950076421155513143932587539261117186632885962141645352095844860401298773266283212649463977892822440288593556616889720994811914622461711125645097849994847597090968488407370519871082718658970577595266563337662479761867320760944854177426413152351164957620906550142003258068763037593538861310373555156402150610118528171765490439771595795262328907522916810120377839221736939367662724529295890116393826794544878709665877379086908094042055936639541832109686535086681707955075255159693434262813383485470765938102204042201338736657367919420608204334713541143349381941532740749421037882458916680339121492590110875692985115639975288124273393534451384465639954453768992531946480945487828619973666653951256804726954403447011178401502473043731979523931215743743621242724505005859395266144080240117924160553180707152337385288644808123028689751173638313384458601614366420837480716835442470561572702751675678822786709378533323114022116568936603389869508924480597737272134570165061813077240426092038432816798768986568077550539926823688324006486941753022900916865911505257018552697132119698546484308193273736555126505206192454458582240562963166911125304557484881689887995152026263736562276478334939809533790870743582527267258756403592623339384731046522276453490748742864958460726876883495953832550902202532493954585682616656450631872948536798194038544476963720779677198932808312243544619902504376222798648223095896945167529851995640995062139315792255757080883309143539680069949450548450740079122651997707887979142035197097021085998289492772163362298748076011208065931182600801018573829996983412091912405388527611554298719756605458211551080257471175859456365951320905584070028720653005713859826999297536797267555471620654825672039431672437123341312239371159118970152521606864774934263595097775290004187188108161121262560827152105903172763352666523329790809825789641663778719903927173862317761817384432687361960599903905713506919483072316444521682515097025082120193521325489644308787464727502490808079151386096889378848471805000651525289774896554917148298134594651640758620157089696761297959489513292712998483003387552642894630899677343804095659707025961983036391347051929653645542353464475232072754251120345496531089057351258933965506850948377338022028634213132206816227075494794225092719187572624502170828026841480460031927334821478114359107576836083749933244528741958596969359224463021635946498134373791289287980975181908475378322989327007803137114847635390684638841187409295350990565669648363117403999865659174532985567311514735925836194889583704322100062490002147255893418520218163893514393820728899952954105929515349597165268798914166860009520507188596374410017623645198339264947488526715938995712089091519083282993721901963245614007413608966951515144103266158109771221814903916009141689052774111055114886328382587679662269602437523094242831823720446432457313689540288535201745578799131756950874579037427876779566307259528732350338593837853672096002803568385240255949482649488041660885737373729401429819613113837491059178904827972416031961392688315900880024995353627364092242119480965719936821256323543401779183237250498988221098139836735557373431600822304717721078398857502023318970124164994660303792277739013151632606411855410723344859621252074720259225619218509009376852179671939006329389770214046814460599892515895195734525246633722986494531353613519857267872130790702658317114434698142279659330522027469618092411114987862767826874463973311482537913111239961419643806607952975993747826421594118126433765709202193201401131282289485357580518499281132024253989720073318684600483090816193083764016114167347790240634583199176329988999735920621243250414402948160165487747765948921141061831689305694436360366998359223178388061631216235833693071217031077563672467320344646703674440567043051360317124942605281729254710208592803986466893452847640361210042094172579821648293449964940251070503887527251052152525991842960403527600767196726852379986959910596180924370282640765626319236892673039209836812525254671735000648424543835571460481501199686469790924348179961262009626574772604719312623668254599389922062018875009314524621441414101546521037883708038469916293022168920972842653871014291262071647265527193801410328267455733089889735734921182073341886931158322061645338163699476962902328403102614186165036858674658521780399697697696240052937752186269406737915489905747027976839711183704553832351111222254655625184558974000152732067640293266082542597239125065704822663834667143744805911655363782833698736789436218580491702230362768557158898083188612273121682432640887615640399694219885919365549555972466199681196710370235659356028393167628775167873025940137673537252766772384924925988172392779375768045197237486833928055197921745136416450167006375639890383872870543514316041587771625300841913497226319750320259872036797280060284495318834592022375460120598355079443281237477886471263250105834336283091893643168298112791193053480204388072768050641681976393655099129924786221858929073491577520026341979870305343425100501098853695716316336503340517845201858397082666728523006959579525476888604744557273670875443852525678168297924100506201002360772229478719067112593636851260492166950732709067191975755533819105069389551167002465939474863835623016387314625809724552255935733139923116333353334472780755214468540364731785818658585444431406102207147447601670976659312302276671551386715185647176231143046802043056806442621495605674600665597205654989719983546091654965528201252597096641781975882585865751373134653380862767423326059606832445236236795157985394597754631255797850544198369822938642779512019592326582210323699461592943124915093675369604429697515753287314956221462792585416812756243783424624246758487285242874647400263540837412140753196226629013385881103177186152045440507877057055419081334066721566165461744883175624933079491870326053892880049916694387580447935929923274523130135928427792851595502394386748743002749186933002183947287966529560607821705948771095972435556906451222501533615937917037590808774801645551769817780343753377846265620777528995640635413509335387556553614214658772155936170801752596674529452731009231772425473823432642924266807360259149540599828206621260197282935032370915763523692602733607511254049735656545917813234068123207624970853558678675587287820468214189326616601379101829966342650482365702710913999699801534954427769518127387021955985361393520173382469360582317920204020522925216216745126245930602170300171045988238062518788322112818181900990033405711845829956534501813065528446028149968040476666466288949006533182830191234734576412464331865484470372062327613213642386397899744538576423247838975647059854276300690262644595583119642245500701409118609991274030420571850198718301658298341106750782308579591848097554800866269503691096819932803030271661777816502394501535569889634977273202878942548019942455495827748351323617268368433531673549089524092143334967338991356735243173365481233393592024264768585785353254972593904697399949011880771641134931266397237917998583927904415385894581561523476727731094791177528369758670583345279627928415357716864508474952633948946670316582570773623416503370992522134219277502215927708492336138472203605259813820799241387632213986260038859623430343718994451550684981442949871711804338802874757111736945014461964876336639979333806674451060290563218215429966673427603799744085585324039444949982280912167705164680709121060601990111110812377936516636451892943695042908175492303502893016676116902256252143819725588512241206554015167773683877701614974703734368569266064290305802200216655215860075515404213635306288248309094439703011229026153873314431184883277541405141672947651168687667467172224045539473475607687251963360151028392661248292083341280051320935643339721842156531594324023377497023366877599252145311926356411289482500044764801730142546538915354025500275638789151462899147602519394866108422713644953512831420042509282999626175621202880117479570572638395411049668408862739503271037303603561783037819381574713178397705536947125340125246880622904621527335183247249366459311492117898114337772809731644389354208473717393306983121692590628655259731161503111349628610744307226689567601437622433020794137410744489232033868970614435975016126845986862220237483111563145972894506648660297935247841226003770544126427892697217330570503497340736547357521275203445073173221529254039158548321808914525673528565087719238476191178499046006582748802839795754305706764571350949451054146246254767538534182567749631545764739073513705240927898552878341413748444505791402001008913615257930309518428129577680536100368094366758645420006771133911742635448808175887730306108948701528539912487322685009643260876711431467329626748990571907188875844730863251384911443030080171710440496964538716110664426835553496460010765967234562225838794259271095101810921791618582736727898826593172570071175848987422823446321311957016173743356261053347983708194697731458764978674333600181016756222251179717927494023664844430081855027050419769371223038314081024125184716544064535682891807072081991200443774765634626522208323718910247524279546881852072813368348601322527417471009915580370135619987765840228293932215880899200426168938930475847608087004580062767284480673027275315259730161033612967222753444167121386139600325701190367739124732918561649806778682703565320281070131525903731788852180873233653700199860646989299886897122849206871394640670802922773333771990942531755363035171851788358214611014828058248667825322510876130786871255190424287488729666249074684477765484486701040126066328566956537540915588566867254484698745006518775480831703602899003697854401738572953920663683727822907682456359296978549139347694398737213649443584209534849617384638230186919509138292815702567105307927105966096109956634718386824968822706376647629735238478448082791116738270158909148323758260368759316617993376238792346039012292809239327309055481086077146701819181876334216340976656598276004198792755878574617971909033016154164302339702301964690839002446150922441276854429988859394563700922682808533257762011328525781672112340602564808561904292051419089666520511351724068379717724155908209784086486157624322154353693724011491776038757018829376250450640368222457147340914398142799377294335565741552932751622664994763069996092118216568334384786299384435301525636865952958208091186256162061677919360905324685374203438291088840847013338545518933378197179551019071892697308029113861367948825106559630932874267165786208799960597793610399497503360219588220901598649023838929698426433823931406872766797827685763482349260369822610464703248159265348465170369401191965162785327563727319361603305050472723934137344008963084849269338595180779941038703184815507890341513740543555072349344119778087183584646163210052038874900700935485290722181661999228654814578771318707322261224657211763171690249073121833973169136847925882790877337447166008512924824490084339542512962806448352745516686686728455917593377063715640067803169958007901739018017848586533022129220270285196544228701803843237162398717136792351168221918089272272440152659939579390745359027047077649131474059480728397936033745826080968358036286304769688746080178533585968907956953306540496078848118111781478956007063564282151477519017159433151936492520917535426245859954851898784373060886023780070315989810059405715365530464625979101999000768319418158981426823204745138212901742731455363163229573468423024026186016300726368757065457735966279250976450351934174716431353401734970431406634565470551418476823022788040149542971460285762001495911864882619431744617823719044895608202867932536481350085930748464524080109797125937384601918969412318209491038217386209398198666668764872280931489680012846227222470710517186922449065200620368649931639111742237755447224032407200381612481497998879892300845272584565054296738156822794531103193148637052893363056733415391120176792494722965617142662691864979668001400226603623453265867193334934351955462921886909260756179894734085176763185499065656897432765029793776763165040281033268809021612062201092484891468617332805650600842716483421833495330115105420107352050660869282335782290332615051340262732802768575931224365764460331124585087228204760565945513706543733597491863779490861849974710324816288523843367372362777649609436740838293208571378075267730034836233248036654220428899100878700096215385580881532844494218943876534193372585336348448162475366792483888681380503867877416447577896595132912162495417561113269386912676530186088486161451731645609342393060133737386935756159214750896455720581217779359705378273183752579201580117636027282414180077225269137923298601586307515052912292277608544926616640748026870581502087564690114340055534644403087499044979910820632763872531354863361068650078071030357373779936617276101271960103180043677449747160330762275281821651355676658992898036681799943754270490504634378297097306750670627533368686184044224079754803333346554144778085241654734969441560228248536939157493147160517233047144123398918203372095811791290115061616044146799722522075945406098837984117417258265912606155529122857648825489265581317932375523205864383133014966982649798664551693636906111428589048135849589729920756825613591819687447226699122073061616798892374836499222158749793974734450586770589576364445345115219752240982986995043919785942031314019046334504417995221220042817826035561555182531334583200652076975231707721773944747433009030383285123788153040812382390147488010330413346552065165136912958498440612152929187185540755113054895640495698997724775219766771006605861604325684913123599268368614652429991591721367828814073447154299830791608722000325744475795212261012676539284632715482608012982398143375623601414328581587145884340813200369513002771274319376208800952554813888271906504527394770995106690367084784777128525737712036340885360125526622632161059484525948675968260300507235155067633546717646424267933441388518609984389346682954367206402377205896142129376751799721670155194623568834564994434727536369552408093324064659720115885931280714272762171809416371937909454988165327032575420814365224113065392704308878631871537453243203020375855617216514051676541735289066685302505223671825467849583869860791262374112208396136568835474178352463925723941367294401960582712708264173916444192370474149943784068773643364984592399670135600081683426730073889056322818815453415959181666494776851846769413626684079156407514034778782514091131971404610285010431575069838002207825670261700585316509630463904717405155369117208379918775454888245036218781490190271646938341383058248015948672471503886413206340874104200880834026847167820027763682093361760696922086326125598023643582888473656246200729303160340873552531507654121315699388653800908497021110946953498189236504925041917122699398087468319619099337434960831031021728639497510439899953308218362942927369423412897794093427429514017053401520071397590303353521102710097818878891585948220101248446404338350556204159449262940924812097773474043909831365005661132478551969416722354826338151511946464189479996126045650669812168553361532730471201132823635707827343179418329634708951883343556697116417303582713078682500130000091000915373913310775122705683067749184952997000808883369557373985190612851804610275294681104482591841265502406518533606667916916597485912975535991096635684744288069337649777942154267702277174253405903702325996493221619844326183987295371674137521168598544982921040291040026093595257898140683938743710099518344770212162188384179693119571698403538997490826597563764404007323924912033893718709932374498217280829340900879327376319325424833323261946643606242606646050714629014548765297970651348752131106439983447111248099872984512301854818690256876932474249798709940583023746568613647378555786422230642724690149902818407004081519221784384616355113047415960374688985179678318985847290254799947311036002873993901233877733089116693742625344952853051336129705219996912437271434546515829000551615221010742342220393298163792518321822253769938227514860196016732791561836081575544056314376956226960779621253515412095057489995005447214903876950343492478589414929633812923651275155637531881113759700012890169807686038178203473344663424210185257817220707192918091833007269526859847276242124917362343516983838707947010659593999645970240562689053125479023244501196120057687303854055977483656831636878247265831667333681549656894299043070556981776246559727195688567054221907321565748460175633446201804823322232436732533819149532466952126093793826349991903674121173842606612810779091514201169958277030254236681247344041759216741489726631452788609883018850744157795930947378970675844131573431918945983288176796392730377433939334366531714622294569560310959356034776996055061148927440853076760666482282360514084052621450249472231502071818577008314396513596739776667777053051929193920517392710675840161448002632809563588158822253369943546209728448776675790106716456776759322752129893345076832688977139705878584858549692595734769895352179306601876541707629386897021023652111700934452141875783271227661754750749120184966365340034943234064296150181251849715564026262082501881356636643499186704693186872583152872005026666474828126272973658805449909110212859278035982300144307017032395144379690623106255560414224800152189220314756720237717411724076393998280282269265665300302825142263465579358782545455938248242088535401396730754479344305118313952550407044765785404251732469899276469496565995250928448367225484337876593843873841714245285056552632234396337826371200724592467218466935849394477037672692839029649402173453169728982722880386372672896197528614364785884687844778144385860092565841478565989069036584347260068224204330528658943397241781540247943329585357544205996428829026138560072939307876303893165018100732540456893473366652223805258551701171522293130670699761055179223483356805590901563820824783713358919965373289803409696653904254242796692969364943226633719664124033941009439897612023026979321475926244160401436300593461858281917115792592163787727178621940667796009315433196478293994669954364695892231691751184919105145783902573718355555928922761579691974574568078869804930798205144107249665823542626041645424102074602984684288781536839098309411213104471302090156156851781464391544956850933297597273055999138717695090363050214600476012305645258636364165699919255316621455845761186529216197844636992187615756203491792002065077749280185934651861713597906685776972446534446026310205875166005325980330860981055687670604309104418900127395805653846547781373969194105097598815798699667211861387463243721854668465064888285000670573018205848046099143036011444471846616114924789129807079236676820414139818514106322906813860994241145108058279325676727586220560557929005951896995157677107246335390898190521224799316049955417120742561260041794073240363873170752648057370609457186679212601497753557213215419082320453095551081233714331271219954951077462149536801332719149034858178908125219188619291535375848991039061120341213181159460708389999121581576212061857821725260532498583993557452156111836900181163080150668176837163886666492210756770318739772631557119783670838793292279259093948499024704130568812408374320742307043113230343584751384212746705113429113662898622535915968544530989166198459333302457556569867766314698464302396910388555920943341667436083508609815456999881352546407724848684361094619309218649393324240227153865746044608555841629810404902691296698226216700464419013266630869714040507184590873814025699786670647580868442336540557435514578270480496427622020586214488713732408248704966874938364752811044235720901346075049334171478711527825632693935454959020148248214185526458192829201694317645914769647776430259515353056919283826162012205406287648267914220683870231771208409533306294022365878881005947938787296400293387106491880019431969061968316575667700586164896247828660230019999264648201411635541788049206220172619030084603582474984695313656977689794319231589171982283274738050844986444830962731592307333904088748073103655676599059331270602221978557089569442660984838528676628091874591342842903368466704444986975505818415302988118618586515801965730141466919209096864895296346792481849370420885225029240076701338495957784085958891634296519575568054946738569210636641718458987084351126979842243735275830090933082360115386623316052532579670718123029148284332535716932379596090213670958404801474086876513867950976076680267371293518202780426939281907430784371576061183492730030091182176924385170949639710590597567231614305257605151666058827891639880829301982422894623924722311186251731979084611897700724693615653610654438259059450077315344843711428732700241832383438713392786061377418405052306268170990115326269179064343383373900125658147926104521273425879861740756953697949621791622264438834531310575682986237755789895393974160053910278795488012908128120974042427687205057710977151316747504039927506635798991877416938848158175461459015051443390207557884313772865733620148892802761525146643825799442661310836610527426205285785716003818753447105343876083782374938555961228040500080797614461528043918234686377901168055047856890611293435367880301445294133332519054205166596013574099409125396996656691032144427757285703406742803979870701855340234453526753464443796680270442596665260504329127428287415657488895880095166160540159844682058291547073367044737803884150623704102826477025289409335168347190325598304427092578675794071017222463089084420818637494570040080519664021008386643194676582333970473558402213107914334993895974418744719337007450325248867818078249995371668911534634738705490794621271776177995682055116277067016257365488597510393326688512086164576857853506303434747625786433685455080655596063313191380224445218794332034110897865095779779714627964149763645879064466670546189082507925692440822742562084891347766917611607613409239810083048381568466654100848082568845834060746623860359701669539091680688140076815446286781839900736008214451417719911949810201297737604024452236473269423770037807341940076350978778011998201086357806739849689823770971751544459607486539987855855408876804762401867819731704063655539775186138365636242868788178232342253430744861058101196063740650707887547453072946578187857808259299861465540977333903134196236213573134472999355738518445109234244464169215322853258078831614895934355130636424401395152092212663397758786560184686308649045009174323166602725180665689517341498956290199940827310569146658212806623138584143369208244867480368604228378268156880876255573472614377841124857573375356015521290886095655838451623027484240985246353533587275786355630409981368761029544581136554667555681659332483036162887839083576955845097622475914621147859462330316084193298943303380682424489064789869167865534842105524460727420406969616173641856559116887531583004916023348272234111322958111268784184939234236404220406852039381305102374134136507813524010412334971777214851494556165445077861553323600672761975873076092758499464241240100404659570259737732676282484835480328060352405443478190257915578403713957405611573974512689554793447949621592977042501738730308293643381271893939050538809650167231255477033716718862385466010405820841700458749223204884975756974641514886741916389745508660478310485036322099574606402453153839915252395151957142038614170226280285871574740190582627751630744854857018344984763633312046956281702654852341238308108090431283908771298473883210246377122665393301152901904680476125570625201571273780299855148632502160922220312195426814145684924206545121959041372934830664827658320763776318330399110795671643130810571049082769450339413582968304550631610025507165982635660684735915114867294857362999756406225401580281762880142860676475409579073198499837071782889706935757260040418888886320220077652434339126705979107510405728264295773627961920282458633323747032497700141324484238746423309235098974701016119273730340087244162265103472922575307472641269635509159028204854332263860715294947204914327832075573812951602951720197564813355247533677529997153488367885934467279052808595072750432799470123265527749273960237817858432183531045015678734054905193721338337335135297463332744572999491820740935492223962131240945601890658870190674264905788935002411114271468638814257544427426243104528913014757401425737142848122260240667704319547899456828396825746740102459823854196525077059615186244707688197984168136278507470981121771461302440082540543027753342472793403278582817297841771628476919902947131495433034154987218768257879431949942777586222326225825794614377365113106935582782074540052624185073943803978831065906212248107478357295564835178787052506262059854812984673130803302155071291548120676846204194706258535933926847779750291342527481937260038310567380595474957695308201468573007436779363812242340903622661647085998701213261333333417383422335901293842406782651032630314424172478531313636007795211877710380074485058253249735546601089694208971134008741232752908010673061983003927156785908236090364416571880316453237967024212363136100688049950473801106035391787482220665436723084778450381148965958294691358749865592408071153062196508082797977594474938792495995472315458184111452310549196825125156844621138090009042293293578649072508649919951590573937934923349698536286132690962904600211641410460676206308330480570416512210293693129059082289417983678541759718240717463165360825867797196366971346449953031234047777118218577064492182720882184507967072314783356057167906485377446902686942797257149121981302230690651710851186324752572177562905973332743120926533589719401696032239340955311942188028819268431988269113414941856136028471312671817463535185918042833158036482757823602018304762783060866430491669420977000839474297526357723871099745130702162400915032399521990481032380771501095954239058927952604147212879364725750041208155044863312590446202930026713008603094090643257870629387784837485042558930353470261525295213707180274632696927096468006324229497154131500130995941347225503857049477796428742063714893302999341467564981228789527236075371624461887095288846480883089040640140917505704127693477478068768390929730354279420827739639352891488332147580850729597816906892001151083173689236485895238236336592982045449379846878789417211638059912461438456033542894023413904185020077439819220801490398719825923336874170354397948912405843175931260053254710318762406716920611813710425960208700287149187061161155265488610853131631847512193771152119367391844792623750158848965338399655752996484246294431282970186046747471892988078974386706286923143368257336857261207477961216143494036260021241072949886862075498351511079820516414250647729897291937896453709982933208118007463563139301662693221425368537521023378013471911284662581908256844731155690634340286267912932273063923515889369811171480472201460715962031145720232085987868422334437318028148462114682375087592979896884049634070578200994596324809023636977539794022610243739692927054918096322941770060137898333631203439543279866689715722685372686094684925228879420000344414608082793216586366655606062780464283604336691577463836674903625126239916814210095487733464052989571974805713754099853457049511751139698337905715217793854332355548366360514861035528508679520628852649887713336508377486278183271606100434982231468160545934998354963113862854569735812532387441238046993653839723322544040978349326690484356809506632105088835476333113633854373279102467596085187598834648403622698203385274750371871916537359795368487772268926127646924084947233648322026758930892042069192686197317962753532940172892736872271534721994356172390651353341473256203768277738462634188988182265017024088347445673327057135519300757808076882209524280890321107102110839428687911555999102588650414104828005270339334402530516323001981226955615750775907606876615442975870412036693454782259808307833718465696750891957533774585802195340210870722949584161936730386751740764514029916118283862188471948949483553589146794100667887861502442299254246995184006085798050824800178921662460212288272630800912829864259804120288054438282945430729249446197279091541868603918412224534670585205570579826828912401113448874436395521344581571277646247912690957675295685819666064361813417605179669195609559414630426324520193924173643943914158725595704648101906463790112019550859216501984711839525113908559290678565871106289751372583875110970189988264043109229271630628372057286500474769037731999010688102927290045287608086151768768978649364726513634258735349223586483339121328347408551339369534059000738675661773880215308324322334482589969696130778155850340365969354819535544852837124625253799948890334161928826170995497883880272748099410344603176003996452723395388469753039415289830381296217310812332201927336968638545892898349571839585832035921406959907102973779356301896679240733524131407538091683270930487506703635681381978290481019858716267314958109400517915648909625035907928901544653269248791006474713001095150314228360022369151624174601170839765190417873777010176999968536840400256230705623272751518143249190755242853037307885120596429876149574012821454039276091053578661666596218446985521058866557251137635495283507600926765846405793862434175093594238333228408630093777435510892576006338439216237461602177222913535435265318933586704282985543398726231630336395033748198871691000566978067499074044124644393898264713933737536626838841249368826164191378341295800883107267184268263178580226936979978354188515564613666263703493502369772398980316557682251771565869338798584018088644294141080472560723377886770309611687719142676761504431919477579045757221615077258110138568444955382081735483545920592800309134760354437143761683325726814655616753864857842966901685764817084798994006742374144157958003824992240802216742692342246968067998668391567763938600429978921641943563286859767412805484961794453322429201521504972969937862017406454177465210496823918638222665907128249006790039365304202128981012608777016198731577822888499169942787963827618340506014956599964157060622515246293864626980027545004684003515587046976676037335160985736293886523110492058297540933143078060677257236138455735369512794192347374588295483375103129846418458179216527659875737003733137738177316787735402851469449101852467803152424129575594548038210651833596275488684867381521881018127437417330646566364457299093828773579984950979444167794136673847397132835800722359532013099519920896974107692774540593855456451226775059238792429064438885535553708828255817250089163925051730210438454225980967601186162616875141054088557035155875313917186482598394605400415823462255387473229551828861803124116746715404434089645328267099878620800840631591293128996340834192057438941992740581287767911307623867552076552634211094322836109268229284983394205599257286145608238727234135512844439088088979573516404314401345805096747198267129800804247813415835867816277973469384399067374772530595589819078900190470378819282932696851396583487114390128171841502535058774181881415364765183103537941351482318788793606176833186024900260752520258989411041674498944753645875195400811600351893824871862340183152369980906155231282492507124103807174891357361936099789676552807960568136845161664267365118340164523405263436338456883839308286316454715114407734878040524782315070684152367801857202882939102979161817949775235907149190576327645452740426178009875404923495270403806583283115049840008172655851777904961511764305704162970548288787811447964071047259351897759036110643934743213045945303536102212517336473300857665822366333168464136249741765409191443877946901185203351042916471338539852351215603591295127406881455317776313726668779881645538621046971240956877037333994826948336683257410786310898862047050471392300873415728222531644261099294033771767519817241402846987988412457083727754566115048808803464758349908228408130640032832797942058983211234678716220204385267153931676083623895287377700172296143545406274600397157524981371635935422639703287640134943334055591437368166000457049779714365936106489062495822726577010717655589715805487451921861473992570723635242365611888592014368214902481345884360369489609366368731103685613932406693707516186828858277718249496197837065041669242775781289859667686415333361273073941283253917049271031324813784321214628937560395737829459137454899172505782069402829831690651106765067746837942937299650235796266383380843549365987886067444492597837612611375266149632117635129295938845406264302266138181172193716133004577218785412578634885353947060857181417924678852772133224999590689987558706358542671313027190856084440852160314366883676715241370163427648230880806232262284569057734554016052795867490672227032450234712150998072200342671192210084403692730822563145251431077059778626204480425539212011084641858846671938036666319209744375183337934487450041904788351042376669239747000979183367877172591900294081649684028273221792795975414668039739723370769868380142841739161683029109730299035036086708351152670107168162557460273484241574029672688454045757181961090549101432973952314726227351608132432981403554411786783470771755660547768942250445584696551445487304568373140571753891202875139789088970379283029460210982040401330982957838217192764036607519800830901087658833080629115877867785820389826722085822295883409947959964418274265398770892970967947543275747925919968560274130887890052777662464283598544389505265559602739486253715883447459544389268598701678373782269168718990863111684484803295229904769873674520820882484087562186837558395063951751105167550348774146426910804569387565442294397912455148076043036665850441829801529311049013033864818065183399408836715701520993814197401420539188724886545792869880190179836603833082632728457173817402296598484610191180317346163680774868440908249123829276171067345150217417276012591786350483015979272561627949287404012203772715836678147973949755353037554383306416671469639944550081041427913235607552547414438744428176664099685129921407434409735555430461138541993515613175944763516630748197267633991945528191884432400890013727620547001843053251724326507192677045433125220481703154848995777778796570242247177961826806156347419332676777978730895607294610147814636754036663063931967516866651296819269868847312808657927480768164820096262896316316356806338386248019476224667351584615545440381600994312721269545229721172780866754923288911482897066107031472158569581897041321122537322801731633506676407562409012441310973254060386022385215146437389995386122184009932731896172309376367443613019637207929282918127301002267270439597449487470068054928775909018759729539740591551921363887400220753956394132366650535538849007378725957580398945779563421908485865216085589781396196210154610114288438877455654388167676896086234643892067944644400921159591894790782417442225686383951167097225696783624790607098904258065077655708270184044907733863101229096110946426643361574530903531850202080087746735843888188121938356633178749113371100222613999723771193073601593223763381289570078045928438391926949047240999561828738740237428149625206619594517277283965729954842877680530487030836556662124474568470809293790925599525164212116355843222529131189145449054212393975447656612002478304889508972936188307644060900846533646178570951743531161199391421646375001677421832828991591551806685046697711085306737552582355007133932570083132442540921129200570125071999400218707516081712346566448223828797281313409782434407684804062815860573886583827787688934284400426371715953847958244601966242842401989648285628723979688655410975181336914671615306604222373135285381215296515384161385092088381167213333203061281023389720768172892847775134815866052512562627286956391757797015772179219197975308255199193766452250052719556396510427079950172559277302519207804353651776594081172886824699467321683159652175010068557021158734056931287800112436472847646624003977252945227843397766266284431861819144195109112859146001375966730642718764340863284290629226838358879758813885418269063929544992072069500354110661775556318100681211641427335070286097796052853487118678300606938973595527704572753638900533352611248081081249769722164410706046764647561566083112478410531545427236034185802141904029734197853326828650398113023384857904260943595932367429966602488114281017070772849667061854032277593676651485252164295755488507457651114900899890518689212422526766157897697123703675405833651908643689236018268911124051710152907900455779910643233676319206303875532680543150316829261823780359193348974559138383543370846209862211143359833855876425888838690898632889781738652742238491261201055161061808514001498758772599475353553997934310733567129372390129531276083273528835472889797743000298010210437998248393710425169978404539954823162230304592569111416779991840064208677654919558073252119231967931356436940020726758017217927109198795813180125128060421656966663002455044641222054835377736257817911656858673531246003707100749522576062556953690374605445342653459106837427202686070559844412534368287298872107728580218161504514377509478157697049318061712343131562811203592253403262184564840470060635618960691831556809457569897342508163467500625748953818307559271013923430291864109952082064302804088158308561097142585471219156055501248073331245374986104382316333180344360928882814835641708223225048113384021919381218863466355019089146638385906831902722460711663081993862485374259332727030622028565042819313402342008641140612268556983164622564499539619654194389036359428593083536230412316093023081685002806038061589327668226051743209404926995207189769707589189724271168357818920196641521259618489746801515543031552120877741055263424852763712578877033275939552195833843453150805330207227966841778785258256132877837174266861933093779799688132017253801282705993556727140393077956044414725747819498270330885232909842595645629566451007911263518513593079069238186009610438949210127059019561120039939982250231641924089568448713002353310117897653923696611630468473980440317374310448244117997192995743257621435385100346489442920245998004040871640936279913239902471346052787881447973275827256578495945298349736091939080291847306752443880914173551491938109280855207743385597600487069280091716881828342249429179915368908523073169222024902531925833059364773569624128306201732050323956676635688494645376827630518800215651219600563014005437629931735976345893264978847135334051992660068771887259153173066748201972827754002517162512077746417851795176738608024341388458773891943997055199853650251319128816622734121507060740888309293847614286148307335712410108263746319504741418593498831567104492502436602660926003538658934500609164397767623421027301829850054614976798631042919313994367344037732461642896263843932314586919612335442271750038958643065499309242180659090682689091781852839549414639673521733208304407468971231803058046882754401508106277562484967486775057482191168965703329818626211097265630406777891682114263391015421779052759636327781252651148084471189303010853219353230989934933296692574295236346995125816616076530533993862560805916103589186464853549326173920000761501908159704128781241047036310150073433451155525317003434647587973707280166071716728957159135560874126230595882245975234429899293036289376428999546408596931229113830131822880990019061646763116718682367941780115952510393176437886966979199890913660832004361261401158095946264320419531111213452322726069668567043660045323741195404772614273873962051985506177699133080703705467265145157634392787347765946189752243552158815204019172410791859975349299770891485799798026432483446702062294712819986568589597378526032142657119804518780411393643994311580866170348478006897160270745277822711079714413387791847900858303920895981189972908231680032063897624546286634321774218752852016238373754139737737421588626349262391995561591316495000394285333599580841490995502513614616410261310605945318759406683175375994925195952150186525148599001782884717211521608977907005905352820124413012336316124357444121352338960704098499184688371760366771896643945640613724715327984212814804506771357144476589860844445103725527949379289405898622798524045244129457772860416311906381435607409349175013929082053483214795845158777972297171426293475398824086284034716408021212377634349209887176065677205512867606010812570512835493094476036547164501854191500825437723707752118449968729209022025408698764196163137473618301374081203137297480415534997128349938910179601875561161995321821739798248698728682387795277900059790810167973418141710791201490902558775925473863423355690146971464427553028782594937940561881008532983786216298561175231611283207728300848443150029286966370679201809445963298512969108461623177574466007432860122868151342982685086050709244631926926554793214575520817539686169981665562198458503341750262607926658766293341195698299035839928329547474629779562686684957656625004288484810217019848997910140411572839830891909440894369355167478032142916927156802599746900764479203383715213416555610068266019285970704574246443682181880438143739516735973440337515274398749959375347050282821258228246217846509007073876293220225444291976505836668677693646837149373729906163565865680079406862714581155948890920546742848664928877239844799034856656087244390451736968071981937437230091308557308529212652566092972422616112533758581760781659696193939024648390162759619065667001513121714680147750476434396623478802161827330632643709457151728090406816571591656992693255278167935732944769642194808524225127953195132578408909219557421053286933978282683164438664673810863257616342079515203217615136462011615346535409840225345652974583758247672529010426481140856501519012336315735044480125792338454122906602951486628692060029377194264586303213629756784545501306822843177241126525980168465019386653569233863192669507315448211092627533979115629047256548930273199735096436457455180638338693149417198918227410098795152532463298240300869399417292302280856857608810969618695950146509348836316103309222134474755244371761601983274969093280681179124491940770274536805845488275151710098924985147206697224621150922112143239649589445103238900619218245115233779731617372613847966636135849814573634698361832954919722697353032664755473302984714651352374066065251691370738850898114466832257848558535957921077860373044066590470093292437763361784006737704770813965345538230566111806781258691064007416431530740758568078576824518248650052018223154499884561111301542173641036694241411123566078745035352073859478423348604219603342322951946141337388829096811112758657520918927669104480902481194416935432012036436978790817326580715246612376511972849172729754341985074614029419406441020843968928053949925405547591297235018392651698171802067033850278925356511407147106033415709181995484559132832618513990576575444019746390921136516552603917681665120380320524573772290535450080184444729824962935444889954405276030437864221983517958957263329455546799976630236858032678886858848677557617374520583586689821463109650415042588031383135048958962432793964957870772540920447320612844140838589803402925667424630884545172194586041206397462041955653571267515188264458087260823227001253015344828868605983586377813671262065629442830368784783493972301143988527190111815392610677113697630068748534521451503527040139901729869861182169403303690595804765649755456950562886144236031474672646842999622064730472967053299564045439907940279271391481229471855394728350496138273960619628972054884006817250497224200403191200943200549840665955354543536683501092725832861311811103257441245787192371575565409725593926331733456291632084798882413225951130478283465694669684461529159115879342767091572353272171561184828981743671434041687582736594644174967913289471942166694891321016749950125025812278996951979601303888728253948465102431961331214488187358964739097703500962612793697436375371098765217767127931377402918310054596535571113871105395300791397463309281346725017952801998959187712921118444080778212898663350358758422493230765142326034793409920836051472493209491753715379007862940802742217737168714580024140617258068246049028473850209759651098892884871230886900649902706393155943903272237424245925459742085255631343017780246119779156597188189268990942357265973183361235793175471874585661422799595973748530507615704658021868672273521987480570163879438549250835979323377371300076031577190873849306026228112518184279135317958434217391591600710798777205146715049633162525435442825042054768998375966617756490193981044675414715646885029956613361716178404370884957476806311861039198787237791164667992743547722988008635983802297629774728773813477548596445671954758492479652298547434661124781552308588088428832606946835413539449008249871631278907726961817671629034910503272818527136482326595155274445796506109627742480986206972604771344794303447063340517134900835447559938308825346412954020083416227437843350467547401411128991049119635335274299888969609159713639930434892852875485316977176430224584293921399010154193479909720357405103426015021849040044603138274856709303441282972929548645886029705634379136970642237382047175269227573661377514428316409054627527301068211422590953319983496166508224149291407857867466221573165467571390279534707451097507795071302135555348398729766891292729732078888828910344578024743203503623059847805258776904354746829682701242760806659106310228310322873926086305490119455680819250017606524257952002251033730146201737957082157870597417796891909060867746382746476413485133719970050966228654077634457328253996475311809618157908450989449086678248586369724851173957327086815359269570377946719657588995424235934164170924487286774240163548529190443244848373541224370862556459799234521137267524684009040696683517499778226051358303560068794949143358670871578850353281172207708687236089982915108573394448918974493712379599135129636374365524246900796047971359043280131739119214206924439920392731267795381097898961691848459081703333057218921627112794093482194941473593797676513000749642487610965949881704071133500078394468635773157582311100978327922341685887829343688636334000560088132556421343622192773950773980059396631828731964742123544132278477386008265420808155120060540598242133873312127163084887720196190954606103620721052490416741459911273688334538003092058205350855330601008697796529671474369399830254258307015412466850175928696202207571388352125296034325261539704380637773991557310544438726212713170949851287922702898743038919974147942434290981245871228143728716259738195916196788690236322342876699682342522878423683288213289140680309919589964202228877831986634391466073500356515408002763756030394147133889386237180782546608954669385605226201768147500638469454133142300381495700938816592273790901812545863147439949778239581998000953254179614419888047648299430818269960666016859673081883111318524389696281714628364583406937748510956325163852026523268185514951165000472756659866785911853574856153789783462580868390940895760394489444830955302234924556189505799658679196092721026935479587942550857415424315641708558649713874809306913160349744532262467806651195381655548059911344237433125273345956484937264476986834404215882658115787296633149817277143010031126999332926156065540953806972554360580682949977392923171954492626436629166798452007475704283432510287452367280527264557335731477002175200030088737592603439146347910613052075177453771961232160634619427233188823274912676884863645681245646750192187250422141192261347420461378306135329224129001736855512690071984779043201817337299075799426101836806417232593388030859312187934954410421623682135968662621956833451669644603712243186062487329787283933230461316660200775467635401842360904335460601789667227413769098772451373558903425909049294112343658178357605293892653164879619611814305471270374264089583044029480461433218841659179223242513923112246350046676676464830652495763574577530164158942310738852568329538419958665003084924325804663483815773770558228541451661916467116330391692812002981370817346079959293994387547415342929333417810035640984058095887577993010980935765056575510007386125249468455452155274907175150169948583817583091570086625355159830623446388069148122746037752891215071391581915379971428120833208879825127967740050141856682441400566220405029982473442057087976259611514325348960471884685951351689558506161761559140301577873593892329916407863615402086194680552251960556178713748332193687617416358731527521412277556409164180914841899897619106392031529748304421388779735649383929939440622735090632414366892831231424053418851825734945717128738821113153178728761815140733095803572595903611038936447479794488081201358650206218390131323901653753452991362057822097682249105658231484251640061084518104269359512148130630556733310646905206859124036586069193742380455436149655740146814613543837077934354235219381661428879913496869367363194770374080506134173227982958809825163355751569124898882977710714995540071238546446536956698261992324879474718523574770953399604468783073116515396357889360947806414612886014870098000088607572175662916807107335620687537772621738366504391371814236614272780141444518314776687640223319273532354955243778740312548801959413896754833500764724592505969297688070850443872933925336183407057201499337079833808927147519139025294308128701434847988597565458331471695671376192679419461126491688008096730309040987055230977857537314635386518328643768414181782835016881167831367253110090595046346058012829950839509235654260063587202806669955961794086575723220393938120852631671526384451888719721863229245485347770846464109196459229912651319731059253924134257683984189543919037747128628542281066725848057551980370167571169187363382894070091792820658511072760952164134156722490524650736761888881741738679813575118180185118630633339247438692089399259762537902778411903208783933233135502937193341036765971399360261843151954203822878710064534357304441524630023663556406879734056220383140487411483258401390944696171939090234788859510202407380622210809846133741776633828734156273053544490890360584824506420714602633592752759372571191874337898387298424306642597648835202919163725319527948129804219366160786048125419996352269821986771548206176021018883569329950263100605666122645432265432330529584234496552364083450891210840978515407344501916121365082129284239214758816802791505075407693204439097958462535612984627685964133638801909020116279842442604344527617850357224081717115386194643211849920861214638955181359549166128596382187949639957283950647268717469768608813170951427118070660933011164118434371367221273843814982622079916589818805031025561528587872683129548312611956814830162771375312966893591968030652743635331540407999057742192035334904310739671022471274642407524246416291595634457342788609644097318750500362435336441731678274121307280707389992307123674304551472429979093058022057244345459108765089115727969071609677611429445760745823208687551424325807447189542891729628082162485806938431437985650505752018494162244286705927488013897593440156098539304960379033299642450531239265823961522935767545303982534812086834064716787057808013039775958299828215180373560580991412106191560634582239222294793254912250145881318702664238318459381810909845952308715665267603137209288807226250047069979143148772093302847679090073049634325030297234188045334552915463393960233537232824223780104806914548322846502894755510102049486779509683148327240478137685315349885412757480757585768907445792111578852257131458571515533201977721672869578273629380736616567019629675771517641024668999263898905157782180252143769780718552468508855114019659452204323942564891439531924962449940409803536855218833169499233446144812556268703910071707028393338146714322379292908532048910893492143719151195686700213234729839458059029847456645216755772524071816625860033056471311093006253815002740597293363980344364281809860931695606346008897127719418422983984268702036144839467597408983808479735113208829993355738853850501634059310750775969493796370028627690927950414449298140917499369444946032188861588940560937394611882598444953556864528457693008045598538426411277549644590508238108800274938818629983001352186149283913112303770059780986286173827440786784659439665053968464351834903965439914279904159650931255542594238639475712833470425748382630299996956512197451999740741692039926238100738428765965529049087758061822637537955472295046847211552204802813555364396234110882667641874761961313146706264102339062871114579475066363649030136777652160858043192306033551525821619275121359730416925195552272983008337397760207199533990144076500871614676557796823861015593063774246622567521700958306205690089605293330572731089514341673378291853364363962677338448625053684676624603013291534657923103957955603154966459571756840665746914829294354680635181429899381151301442480135059580447206706777844769648843622671211854908460846460358804223035697570604605080084885766308235633957838607158812611633262650136193152226112306449656093916720691673319686614788119132215860080972682231155376520018627828537052741738768754515460690525316892220436493082351114910004474112622276922184891401036920952776431344771990049040691159819973198301636474726316303568497484561191132128299300664948835314322731408056597342417875619149364017370564937015259039600347592214946151217280405220535949863940506741185719666364096839841688745901109823713291059784142295298431688504690993503324614161996706971927959527095482762907639024420911732219366097668849774093807547148730109915604091889240403726222390992969060020769945306725977354229136785246252548379039858992180216677664365667363530657539440567284284408994063629477485671876412645184408064636086641230912575268745263120773908996859587533154203341261870063219306365049271785042129099118358966270349313196875664498087324322485809522387332227099827783036804989375066585069834054521946710225694143650345523245507090682386166926387651816826658332832300403651923024147995051650782176604294348407709513251282777058323936364496439128072827959654795098920284784498684406477044489314212356420989005217502860959472143901216959734070614899054993558089684463432089982083262878532399631749995402739627022537372454855809290389651790517833342777659175366435686174157934295376733634184771489925117108527597230075171010202790360098610246568669696076367809575554013511868330191184695045428606558817349051430283317335350945212769993768829475286726795992921896136552201329629655365469817040341412235531772460025526017450708477342679204942156109524632407629286640545592172064834059065780946826592212498239690228121232356415189608001035383781825549663686978052435175783891715256786327055373580218028627901507428889895924998264405754587265474092669742846704936410133292153231517343834282938381474108927682901299488080968763360603657565167419773679489291381448613386416778147466119087172606783749317708788472444643047587219313187461478198709173176773594358653533704836482782425244272412556046336658327166816834452041378354276127859504181820345178978216266228084085528152878061339766636993266828432096146508408850963882466201103682321014182932290103155819357897483925879504892144503719470866662802183698727311446981253620092154537767804227834745970769405521949797843580396597595862506088762558459329470325146795947949938562097080423046761685487992853931873712300258926621595052496140840949638209923961373663045214347336720138799541223614270962347650192141409042894601373684126940750576464271951452807914268262515663594296732140279119811145076289520329507668332981523976946349995004011016467049660560408987024538883771170581625737794375710736684744722818892128032168145325056811570362301576457210169765122703497914818685552952667326862674043562131954319757790125181877577124548539059895685533802611217325191538146434639650043712762111048878453334021995401634509865008816036053278049028183342951248625043553846438492328359458813567142804299024332703375139627518482634205552132461460795966507094970874603892079155869533577976179256564954496517976308897322303219173669476794162930543502732861714805517571861793179740358144969547104490968985041293733851269649308822200090031642696834988240467196409593321109758440596627458295383589101876715280180379551556155168276181758139456141665830305657567427787870837288632337101514937757010553122399407133328395857107569904831212641222441149565736263425943986220089762362167488657533463232570071615796550528707359008869747124957160057574165981631571649530737654322045629723564020272913059578779012376123705728663038414286430988295246951242921396124596155288271978099802503656118754070028828310183039399880170153882072551329693232902014224542186030690062837664448185105206386898489295317845366918924838243807193783478359955735345578378236128160601504792497558562302573330466793417260479293395637550195426912702505346069462495140942810507222660115057362457791858073735413052653601149060880770697009072523992304142292023689839455406812560134744792176778853664326621274845644884322920680185575461428609124392003537544746595969500449559686635505851895805996842377516121063056106084264573023164415986261704216794587549306487231957500641488535809769981448543727678997925352010509168972125360405712894267421471509563645821923886801101934227675340895772899651513913105105263064971767275131270170010240073485424972249087648290672918515374485164147196552753080275229266449932274969144049080242112691577558729153812066769504506800405404204035137040834824354028874498715332968502303366739323698127746191507874653919947694897259137803789768888346515926568772404354367227176238383060785348308794145770336427214972926108429106218192474319064193915926371893102449801688539027132029747154578957521944217883357317318611304002638194151839252980367326773360646227995379129438540511141976045642802075446238989228242198468804558736134368978091724137407993044171419726924021269219791921147933951785416144262679791529021066262981534469409782433036384461369453466664382600068695017679015575070068319192707033102725568132090041872172627339519016448891268555709207013891001652605679397146856885428610191005343720767217288534852889667849178541051913647146848691499836971068684374529367950202215639271450252475263762852877287712209049361732646383975627635609981942345005939653130992128942796201608740973302826248586235559903386668927045233919856491112422659417831410686639701701108354628643716924754307523866860792449751737192435320478923874380122974138969440599409529224025627295105771857346153713593850024936529012808005887817614962389165328873118209057415994372706666613427781015151874072373397719598669649473577657529021258952079328843443133191951248712842305378484046403040918803720420887514270117819511338790901122517154645960154610272280384244034746479175007240814365007620020288886721949225196940040241500139505018605409737649803788786039863560467039271270232820242419047673982461992439951850336935027673413810920662078855444012787418949077212965163701377283061922362985014485324978995435836574226200518458566227658651908495869190613612934471942461495679458333179598620720894522407399934460462323393432987956836387927408974630838148527265173991650693070058347762569459538033531626181502010418423078194065956616593814771569473089741053079347233052203004035197329048143045135400969022838187738495570103123397636904351838427804137614408694894575130776477274747178641734219584667537477742906717199856152858241423033757620608725383881745080114919365954467577340776597235042055636270742978082004900666910428040020025470485239765462247045709833660215020298298804274092615924422517727968034251030595511320465128417134721723703707717955651189251637039026682799800045847734488502551895169941727721499759257997227173402081734342538567548168671418473475176397259605835001174952992552270890734479727290960976771000296982473601625797767515536305053936712139386362437552984066660917423747444615795769936303538681161646509579332250482627708576224234149619895954446265348187449163636128661654283758342663675628872308262722282929212577522204350615490864746120397375491511146938067808595801646833091533805765225977839843827147069791451959901392988645240531685694324670711939015918216000563300214802601142168831789037424486068809314330698351679756281846709492754040421756835425992517188935826911073881387786737529149862917380252580104282971747802774515716117933906315698681061182212154520357907982547073935971136807648860149504184402382558622048058798523047122434895336788741708345547286865049104786065625134567811259885228972946518645631533636270744711997961680086921863887545286266745993581495288468288549072111118393280905328276060899852510404306524815380410191308365842703490967361712420868308027258368923375761798168690795087858064046781272957044814474976395223570098851595702601026265276789222788782775915834474437196429288545809452416490992653504744884788918872897983532952026927894435995585828745643653893195598376447562592873512269489106986133103135570065433993917657313381297995110969309066699083468245199054890127559625757231742792776460108333263232958941712489595436935313328755792505976842703370167943934385902355014929004322667363731311764808347151084294662495628607010781743664109717600510099860022099560694452567520081253368321126490836195455104139939748009259519451432703012231272170386502512291075659357674571136546167128713115013712170778650319781372971410562038915324469217097820492225575864211532408855283215419671749629554103280624272468325051573063044980769692593955498435477969223423331911993972245769572755928778303941146237807366360031468487271605263504530343544315981595860214966072615729897050942089450557408561645896994299101619483283875959158174853238695969143170027403793384363557510355883205219335184444875821161842328665847817967020751561978800366088463430203483097418131802285940707710513997300693763174854132704837571158968270014027120736948069691233479415172878022125225550417113117796380345750994844729764477202604687845213038352717415222783535935943125153237603265137704732119218637213046463001854861818422604300931190037751337812349515503774839436173854442861964220829862941965639975706826156494265095089817380195452410351948296450022221485038789667702343372331544388722872439670212060403831043336652916753232961167374319214531058548675713645027675459954649057482333840393720056169511613860532469133129150031833012065035228050160121924055910506711934749036061021774587603949071893733473438709934657918486028798651695246579438590678326871392625953616622505217409314091432879969539434390866873344352451478947007473403006162702938843691779300904956079980289939049030751795725887945125785104482951322109963520275195184632415002369062365032825583168514926065655957000479861998014771560107585054092870861323454288282007228703999436468612543534280713906087394063977410310735900128642857942996522511962676421156835840018294687877333375654323438982134875059738514626048643064617555140812887041065966020887420776505466368978805280902521104946713521424296736640691105734721665601522099054495867709650271650218001903893607385788842909407820545800036048800030247658432013878187875791426422202243324262741067576359787383656473366617460234762189538407922944965520537737514475290270244366443616480574006342909338499837521002181452447028282461107451380835048830068803325917255485893977333283131798860189445726100562127754586157666956754330952147825090641842579903304007005361401345468720640886605035392503069739004736549622120541413793432442881213050762387901072811671890440302600637978693673896024983888183568115951762075833965425589390403877679509538927393924611310149823093905863494734539175186877544502614894059453314381830780798397248394173502369369804043844781352581724702186179301302224707468140847281003872424016306056602271621818008597402209121181852873587884914246039857232906305978596700396053048970818943738496595628941554559675578033948148234116152461239982475882768584920654308950184431677159403931897089809453348635055789607945578405984784345372385114355021684318512157512983594823080407849884177510647057097061419619661447579723211226445114663803358614436601373339997451340944224298424005193227725582009984865790618303079597557911838320606815329065993853280604972942733902109055180461523429021710323558362375482627033229148404776170408207700634430849205824714040282313386735898076970956025107536281066312207102262274744074542617619655907383004998484677118825456583770398389229062299664116041461599437424814443285985771134342949705474325888577028733055513642186388436476450517669561380030995040535178585356407280141422253056387988358250721019257393344271865332264899313789366065239815390757372619415743236058734989168261190292485935069621607117581804573803860359072370816178928707812077809486006886155370917656810909813969106452771232577206017414537204850083779233387074044692641584352881713475184007178475122810763317993794284221879543415114336346259102189705533992692562710086773437703679216292247719850975245768992893870775124480149270783389349272025185972838646441144616466642971736491823463528010242164172810793500455256240091072969446011134759398600444416564622646261566110620302847578725704352170874400880375916941038550533543962814756981730740523354586933614150451950234193823696439133481498061277701670085403754438835866191435379868649422904958334768804740352554060914912051802384103513398004590108353650697550238384054430450778051745498143279642733966547481785574460817174108596989100466587526761772555448818842421333798778677940972994108025536933624211753884673114467024807528018680093338595247302797445985218841654678897316073903927269734415204007254162791777943380524500931320466522909293893551374835272032450954034939496918018666139328763139860889893360942494271124760509406029959117533404836626000539168168516401276968965275993197138571889767562425142116115447138352518915408830933833106290274061240636955392902098742882289728040350039846408444802426624273237614188570634293622911068119152704676732426725553863157616576433613170356541971601400265316725595706941014688962794857649496675820784037639917157192524492886967568824595400088055704978980657404768774407782460258711799646438068996491082090187474928950183427206410887660853347637482845242558311538937007855388291507905075392123084976446890829005561699052497814208553622501623609748266666279198797944728310918299047040429941826700927962728896952657621332328050955673283497544033350968580253295132478047059045892467383322488360238373096822051218955605614109384905270733685117950262075556787207780168684505111657587048430772268256980816820566892313899603376034968128311865483573084613072964135756103088406790569709680490055291022103475019238963443551140067937822535398379367090594251062408242100617763168906709448364264143303114002402171587171184245719036620084600051609359361834821925633325487687666192361582569627000968685095982838812201376690304467466195550029382420860466945959348526212897478790879849366336649470172925264691064052062255856317930439558119854771027762463224304152595360847559949339833748682682461353431349534988425241983585261321433970001186638272264153527470159946981492379307875085735439334920101387444060276283700466119529082393914294094354580019710631796696409878627089476413860991053846086147083904113750577646851310126935869794765481477965301205850915736862693500054165822924768419533619970636153290022319906226728673570801708196117122659101897588865909451653705429472808563426558995823506199303614986558100972467141967454471721826327660027000426402044310690354912196361076376251666860786306002153359687720813948495330680228315876684068140556887642966849536552467448754435264650264028490365670904710228061159008128515170119849152309159407664093369872914182123507864898261834426024837039674947131931594530537094715998883499313193636722732535107126221218197915266204584246002972192887384904183358472471891373357217587958738361543055140819060216830291081822362425451373014515999852425346948187424444370050966442745643899876330891659724766778169818053806224219965283374562777425832653015407096885631608090193486204797213501184066643697078194377230624222645095221387030287381003001555158543557633633326495999661450041806113251196521934784435510423022617759478887321404648274414360203600904053951938278507083699355566014469160153592015015758462119943206580350489954315879459475657407168471188571746828113048575141620120192343124786878341071284908223832833646520219543266322812467155237690800911913804943098628439244057183088348966932117352729807135862030938143950667739422215829311085418224722710478010618069467335270535131865664368946090471957130676783925513140208686001156864200849881231785067025837347536563161950096415514995202002216837565803410413343901515684953610911624875592262144679786813736543066528612889512068522934810379815637439666276358018608886041478889727800964169647666458305701519906957275768850536308157236597159989967663527017906905131953137378494633348450756881411067746061277905227206984324113961050468781951951168952279442186706088246999391661902119097292909714919792722987596166743637372828719189794571088239492092322338897795476154798470649983448654743731049081486939511674478353826580817235873868642293944699841871561746886467112246855837085579232744903101856850833555640469206887207955688654218468737542329219182916516795827562624537329088468942327602977352675155496832945045998484926710437962403080122337040854079925896390645155160055329738717069706621805400376709222527101246714343289524804064032270287134394854407656363893914877014424832174751197006159595719255299765131452676967318232219182719539210443844458856181797909787840084864328220622438364066538037859963523269262611341045410877628804486498686988586517034796984641355558427970630918620938053749779649966023827974856430099437290164990950614363244468671668059048601374679747089353830705568441832963886685603695829074333621112504190012995859712539641125682587836360504617694695876855519139805448231564456055863428995430114320427849379346142844462560408923402714486269099510948017656559824825318484978041640086590834142821714158084005087715068806295836002880154715389779113217881810534913735476860125674494536194715142666470794586709315050032937311169517189392141623914278985125884772687464030389614565882080116017726444176504327515047669739573412147040766239343726901004191529155586136743423216210822437127803030570354062246042594157172902756033353326749282492828893633894863892354289057778462354321272360745140036632276674194411354638235412832733700681410822285104330400802832857404201627021928187222973104726485528927599719739208466853699867210961923480138107475476068051597091244107903577171886944555532148458455738678681902380341206815765412202965431579072256897511652338682829655271972626608643197317042730842073195028163500771486480241847930437070031255399727519054671081870995854554398149881848972750366578168466068671731103178315514846255147460869614366725167407173953702407199369777459427748120450056769545070160242655273154480108784886457978805667208290217117985692461190861275835848669611906413281594236838847869593742263853811171416331262675855653373623627581860849381721800539030078511355795577566326590154298728760955102633252429210589620492638678807263889926727803656180074880692839482464894248464318866112155527399482460692849953697509572396334441583852907768617463111414394905768121466367148714788690082693562674707214262355460641740629619176654552918479046886330510238692136746020666578663894858655292539562468644439013800571930038661166389336899244872228884067302569598258810004021584921836858861340774700431650211868114873948834269051058971542370031754394297734664236877239663003394404093709866653651542629839889506315606893425619719463725771989273403591041303888997018836721855257056833049692865834761761839321071323050623890907684341381474362840700986340079581103851664168162888108741728543166135141212717834767315692666945148775928159193713270156867157214044064831056322916109207452203602248958591315675790005232670998525722046116968080988285233767953643846311459481621721934819569708695864986335150972343539189139768239586822078804994202654430020762714032465232158292138681451942251300753217511637517187594946636602872375430478245460600743452221266839078218773031501677353817609101354515104000377427672982440465498654167765177053355250958797506881043179295905461946901089737075282174364379076476640943102075658380010543894815622411959073324907584005092206179300590078642697786435672768581218017830385983300702524331494466774408181093561350256387908923609822257068236791554508088225710274031468474340705073303650253385216954273551129643059260691838291139684792336596320667367959150852875234097292657153900783342430162961831710782567407561397151049397730961881714023207173715600875588878538887459696921888039199024706647915439743560347477976661716760307778621939925575790428435144397887489098556419184968699975173241319811840675982953455559399514784074313976891593426004671943020706918213909918163838423786804771402679525925186565467071801649683908235464755117001713186110829163000070653293950625791844047687661819123846073656391304550723345466276948366407323253590148827419100826258771269451603765299233081187060978048873933154254121234544939198402336265907519189189140731779826921254019124649467336713285817616647851421070890181370167054326853611648482583609883395762707617327079539586035669653022549364717819706417326841094759639611565203261737243961032303942402812402522370567906624672337917722113441731234604395893138097012277803835772619375605124344492547615032613106247176279405207391130481422917653580578658003644810418644817232173957800028122652724899519601215429320532345281413059500697559013737685280849366751324914469315398239945128686813386058250926098232223505591575207878423811199959450661563989661000487303964724088303785060521186814769673248307118013818610146025913606943207391670349169512286968159511149397182687201236338585653370893614197807218527293845286965801476100560167658377114478358274756423780223351388525647423696907381927556554414249444741905603290738840678049765123235366124585976371225007802297638901688271145177407608528087647690462422314163841034534018159391466022605387468454168650951699275973634439650542197768006696972141084916650536086615667667577228474172200365631316296967833286911604276384665736029525978238212770706427890905684738321853573495010390408392141459090994763878405544172244967345201181355265244030324451649615045080639399173152762517797551842566796124844325130077771899580175491989492658199702042679361869963200912741626940548858557776023209704090986920596305638697064377020846593207084217634228055752537953884044489062236909689839337129999671496185392822491431035065933394366899795140260927618860623871344484688358102871914640455630317278638023442994509746453205083574189922684926240800672911183124999912494348068147939929342682221645270189830235708097796647802681506647311680802642039583383319492511407932054615646746269190404749231521610509685119189690423620916387628748189378013693171101262843735058691616498617493345791588801912893872721240043403980855702906667424492318175795791920559432040537223633954700011756913984417268345833605493855032658813209264822251492139433198176999799064981440530952334900821147810684996751394050500838555735293666303025091260381942936630919368314194853474439744943777106424575471213067837857292197021903048925474020403473961001112851998795065815259314263289837222694379433420254480641603994201429870023419515524272563284579803268459870208800689702148674156266296103733340336761240608675939042550969172718793842223644621318494688789504436847128022711317843593619193559930994082311788139225567847615730908448108027716148005514028297056965318778324626687188184019635137499729645701178861127167907645182747033327946952280521967606654304641659180064690429901855921403259920319770393018653581792610519412001280049734175954757170325056350485632439628757046409253138830805883224746120406907409598135855784035987060323898101893027578694508224077416862248015032396402767899215918200508878969901688344429217605695292530701098117949242668390908445819258431074222470616683871982654761977277588859815706622003194671835682318727597011943105695887085431255572301705324870629887586134577202958316193677784444383867340453867755032608068493257691407412065881172484909040786881299308656588944569989521558379974651561580950384550951444982097723907467410649128509362638546707787414969944637747391648555466461454065260342172917239890836623127890209429627220458586998592343076961072048256736965047275091799598841360135675688261088153827084338934687325570367934581985333036664751138584905516936021580330981559958605675728284513103153178658671136562686900944457243967900842938910960765776364108234512667086635028459742406582282893092627311471914467852394983109563054394142509880928295847063648700870020008180477907433434166016068525690410031030337655687853732767359366608282602659692279204636476362365099088911289611881318868849936260442571669253934373157763048882523589789834359428261235756174304627423675279437782350905789073590604405799859150566785846515893336840934062117153792581148766856008179032444711929782713180664177712526734355835315952387667475675908402950507317167079168759851741706216705870512909227351309116651586655849222425542153748803079166302957338717681759675243750561867438255596131867024191502425795140817560564933240629381577069723562678277141889753019737667169782473121478315699263937319162070113117930427244023297989364309413040083188194978594019496091345780494736436975541054650486453356034432700627969496205553245267045808890513993153048267210529184129726406347910243813629241688159079270793943809930128321848240010033827327154955254110496657669004923130243745261974704835301600191291733156742893011223969386787419235825144878930906759272079535271757249215736415228378957340353019733286434407880140742981601501326405915851153124661028082160993318525258455475814658018064891186681023154621441953190603923871761827959546807779955755837732382102347482641016614146050878600030232445944268388025933544837369195932427269599514186770638573148544379153601217716025430548519254929103976967409802065817918238162128219419191189544891562286126582122988822352478260337290894494938331620951432477449945398416326999175667637820258244308675576798465200165137873376828970970225410138125554478120273397422450347589252659110429891156712133051349558446992626186163596113819585456530139132106762183308998828808414931400677360814114911718477598367301025539703078275738308368842854962826297809001757235642682924582661795957680511327600354227775342165417819602502835538561819317249547082291373434157788341437266067498239238446252335571909707285202083796222795865698182691412108901612867652936142913109878576186282488275864863309298620001317796418358622661163280384011238851677554297435474792341370223395615765190171588997689797376339786583524677372788648105849729842229476518680605406230448921061150250779094635276670522452801684169458851655109381712631318396585053066209059218636402938656912148351647431783498089410510585516533511579819773289871604195570447449694720760758928607618009090490009264944398219349729210541440384126302113388992625216952221046926105122592214292230638005242369561888154233852985833338332828002062853757002879342037667371377743196798084771607727759465264111718129752598401212586624386002368600973112176059710571419267050010547653020929224334744644752612643509095680414463070719333147516610386635039974957396479362473836453824801874266206044515756977447227714250091916252034344639241036954581187650946945614408308388763954095886875074306327208023892143177090510520481329113121489505613654462202484541446419136694608176291998643820372323128030215072561710987342362981415091513857907020312206269469971754339205947294391167707123413122491233454956366240843179649588561853725120202785938347899125993958481969976928520323572536319458223121863566526647078658828254257598626816591969248158482532391786068918374972148553960600910902909256851295183772485218078138802993700901338396056968536774231115573148800346330323070944062461034463238219563805488360819717580998833842051722895346851068334130716037829636727843787178044736941065104263053296409285161334334772897837018475914616857371080874384026986370255563514990851412818568773395340200621737796214520202904208389406457612027700932109172622722719478886643015207862529614736038750711265381766421682152429715706264609068460342197883144175126724761792695531558552895776227789834509633397524907714892449035131765014497650349163900649273759196437299577404965249170505951171719939290688301867497427533794465038279108491861975640072726154988543974924547472375481733641688256433977808827088227799005718517529678800116243124933931636918618778340893621027374304851452059339618245775183438001872175471545779137284707158009447837371427180455284490518391984804259588631942377799705658455294089301884390120084015307886323456934507494271266811929242312030936949050869677053277205527421630668280263570695593061178780510573014534921040422009180613665723723716251777376230422039500106883192742898608614052017217156658868491269368055088982844302594312006523002389079111224476059180431558609848565278125310788143022853120028262086923248236420673554500216862583022560236085919840643604156546286516755243772442881067962651545936551683581722415527755122230487993150617943586167819728339725283115197277103451457391693297505546890587034595427388640221383575327423637262417834547067740438640070291532966978728718713371637036046863978062624282322609312142599483274839955518827995752124418377605033358493065687002596058057425245918858150988475783659699661168497770935587788483304714326092055330540274232584422130998754906793144135044015818604945553883264567620990459316619983244760360670485160092630664539005963076921002619730994847367057725430067779444835485854342548590563923165621260297479465509589312488016489061187448635437487803000182142564104214082907743451550873203806670346771057243053270138045304300225611040954771659029650179287743980313432007275644748233589557889685710201923858887403532933680086371757602713460512342046749410498546623736918752133885120385632831621641188761305756126381467330313036621004355729289810415065483754831547739665554661291322018257232123635997641330171066279610486090040524746167549780182089307071505848425496212550368001794056932864268001833220106101918383597737211157241392075333150903576821864445741760221011096727110949869558730126689293741378169199717508038075466392178729307567632440152156734138047540943284516666692709184809522849121173156431296960283068006573613518349417805376237921678322233100073199627100220511235050313000220087767197668462599264754937588827647788791496143079184416240591425603454798425901491288899627624289755357779597585896897535314600752100972233996883922972163288816938865556694991532110089465242255966466797219357744115422467296176229200087840245941701075920491460389279902222090398399979635293943861117900256555059666214730791953207653125740870846474300255877171201291307085704917644726855878305617398987409221457449043185866574578122399827286510922616694218852133266066523035027415864832160170536824896150029218101284961676570960209702348936366385504256702539708295267329275433056492637939306222408321146812388197762675581297414551345747311510059583926079205554112952625863568427689139320803867120468194879537112518710553624743051447084955579960785667680296956086503852220387518214860471464961741068197188174387207063126261226487841805356105777343518989407109714122028171530343811920977430268577418892374969463240211042183911116532236391340439848943762296545422388969225130119679236116901827111043288305776879433423239080259832081965217536068956886589381782099381810767060018366352170395639327817622928858932621514080729722886809144972264476345881355154358495387382714981252300231787048586650083444981549290449767197903685823759328050684293297859641721467387837670584839971362325571852013394011247200780872784831593716398198198124719700994836412899566320401127807987897080118240522363875254453977256199354322422567982539651909532608085796829889799582089072893565612778040159325814033968242867724303776613599273596392552831726602701987707094288994661620696208094543385482554027586466704133273948106500734073970583663743253729745324062250402771769700069587022240102369307956889359091456591391226458316242473295038278553703150550239688285627990100055694060635096212338864944721586201441036968503550190425460041333999126238862353244212206603086883351280240054071034264747500294262691723611541329467583857376520775330453512830639219006860792203465743543701660928210923002889953952064848376993900005045980676327842905092284910622161265381797188765508823172983092795955430373314163809110104262088565819002995107517397805929044223455328627326802193887225520599753770309821908165240537309423914711479918413397626385625957595480686946878007865129482635770363925747711095684804388208827631376981419698660698550501814958292870672119371969430731366567709900395461049284653199856859475791412679396321245032896082107964634944355768835504621817741952135633106054780963701505689852380645507009605139355557585696526146423964990203322314985256124596335183618734752317180526976183465614369969251495423842709044586632886034197090582872682845086961838325884114767939380415336432780001237043685353816442333867804808477851215400871979336950929495606474024513960620857535549129946548533855717958139382052168513110851733981616585789878538265063861874130137576385354153048667215011715908876488300676382529669471100517455185898758519014420766960082953993677713179802893905966901381209894894703224718760702036301803991139813546262825559982838601140960076456328237566937941347914639642261489016972246945695825041302420775069839230722251275595312907602964495234706019349847955050397392650018515359920282891512855092483664351414022439273586432674054020379750531424959516817684754872924825079204191974915111652380011532153801018024262896398843812901746652391884417834003564413046298831085212999916391041833540696089995556883862502084387327306803797849890686245824475938443911893738294062341167915118373451683707218293754728964503570798374090941848687477408846260086107449144581928445029087170902127070283975462381064906228575486761087285297331735717243110492957336932241030208939977504684446947080371204350035270476373741176254412442979367477581244974472011357244692756951614956105656280762017955716905032833589479136802061355858624494289962552391795547611476352196036869078122167680564687604283177324194832115344695948946727730065206755577737458959800900876980852459896840706276575951276976642802907807374389576220491570948745039334858748620361965318696164517137964100133426510051623442831029955407003528440684357476974487920794183512873904376723993018835841610312547005120239670374376030839130288007149108703615546611011414543408808585543176545884048957078347748649677331975200277829564032160477410832253794938775539907120320912372765647483214403180911871229370823355980715645497150960162150726671196713673766656608032329979474484180183948913506568113860809985902942628164619644696537310645407724097957085809592672524319264521304768530772609842359662507034570059467886059003997207823322460947553323849844310303923266282062160677315937369973228823883752849594345857951376029096145893610583827771919026709351688433580521090666355499599448169876254212685083835162139422229414391153145081605177084844937974652956356901195721742929459007674293159818011916762781993203547052866625893959634861485233330458502618373790992005552238162096380831437296985909449081536877877002701858945147037693543819276854967312181311911824058575995374767201500903632550287889232782215245476085212132453636647446573140878425883184153481331743220419488610306674879748629504891359521865452432442515366825905846865036990073563946168973936785628371869266963341693074196363591510033919683924973744588337352786566463600498641630715216499742022130765909222309004999220097791609769853168118175555189848817190706200708351666203670766941004302400419621915399831784188970407694115250733938813993005436452799214902354319865488420599516671577617003412870357371142883054373931435513019299331539862622650929523807116141371841728639458138515786900015656478679138016049300819533759701509894053896009584822272526111918179742327158730071708806074585305114616766417151891271021985925591941285760439645050257382197023154293121292464819562472911243436466863785166920624013898464611665797556468698855577797692357938995190859507952272957282192052812114368215267296780208783259932003615553956479647281061170486362950059265023430621195471863852336771057081430796986629207177898099583976603055435026608836022201478825315563845316868543202268941983640859184588056426534620475392513456074533866726876333241305598803929728675221848087013948017056170890370004026579064264894430889903885937576818116336659963672669075637537027758819615971727491896973693538595691741561698719245478374387623280634623576385768430050083083484224969836398957515026201269737134011107035896431566885428303889925413070497234414038878200756645548919150341098950510660320810546686066920234147841933944699953352644976375100917629342534153042694203550924648958453058021513792056932656198348358983558469765732164240771124735448338767392712521653703675279199310785347767590299797786515133893121619548279193002242845734495096548079377083210273241647765397672460515491500672497797185933058185410150016917333837725465037268439310254607546567939590008856019143500947969735167862845090859627200192211017907869208127888331753252746978615708803966040461204677382569811123744589366469277805827268786564274691015442316273026126881893946617028408468420033722216399027875363183172422824824038895493711515692487673097634595799666954154259023760115307961538710082778716177188187476802488764759596749767679425460502569165202880880709686084511401355343041870413579853179228628364672298402092337994221639868320583955021824312612828005195926752141913748346097039725046214948038530291259189067601772241868436993457989343367717690346745823883342254707198655678653625683178177762180637968087555543619055369298082261544784830009059102161957364863815982304028664443854409777619801127401665754150230962160251370487889481990856964546494244464700803371629376256050626757545478852804964955137730711389042911981249291616347010504077519163578194310330789368605447187423944900421598150899541921481769806176192681783485121155590958318738562902227154395041279263326031903545278660559945006411992712830581760831220475418324818231056184976761990959644964731654108214968386257702791291452079899851198082760955533122587599901970595122479762527657997784846022090951271512177390842376794741235117345812504095591745286277568569751496572044541382830716393569488393531449607567287473914746185890490128802063224190598253542256250613945446277793304850631864838514705508784656070546689021667501794117146829942481211104157226533475113994218383452372300070028219376668738887009867947976364744817266097258698102430761387123899123032596631137140975536577668803147559566804707001462391642969989417147849131063139580814198929663747025943742841517176035136155516812501117918285319622639095709900516021367655844170405246219475484111611858802937955170758445922371977364953224268348615720208510995075352523403586981271449883465374363107909741903578121278391415456019296011892383990939201968206734864577369637345962185170385112735041099431587453793946337813129753731114354727268766864149128013305790779193686882157182962129724065045459357361782133861475324531872040624234238838024551198746217759520765449789927098289990912047890897978056579620263111227509021404607863706751969663910618529707925584095170105135538985860272530051063824120892938836798689425889847920413417187217367574505872225247463945662366848831876439171560174063435696035938294935386582989774069940677277627471318450734551324076166597833544476165068983675456349223666607567600242770359940816271141350494629032044120544611041031985920308061282802615794715264329392841709154392555889626415532699693184854465475230068669919668057410120014348257017122969833082884861981157665862887181481325654369754635998489984370338487133277606369021713791602026323529201306738800741205488776511179948472778379285692644857468797759616505654572485833814451448341470749748119597513997805390723175818309164427610317000653353379255971082226765895962855325583319397826491197911068733043185835998580753016435227712762562261212963736468404700827330994658914511854609719538272552595000700239245228649745394990768447657167973295541811680288896253795432517621886037371033537532219519462203766873664229893779737663884676844240163673201639739024951960581909072210579679514385776355621798971965430651132190705085302285285369241280993986356009598375983271508349497835391014815176350482143738438892944566917165938665248620839807634010700041714493185641226864584763428932315206462215006062397354191305671632907910338809570686091993097899490061121374054897857998224289236290966345505742304207768322323370782954990421993543203344105753646748596415760327557183721259478367981153398877850926975426882044737542500295658556331197223278738285229226117408733849297513516427483647820646019287928516320092276731291430224956098673752765600548715932818386632312503626125128156290011144342688810344148707442197198358174720803394751336541029838804869877131435010703231801745791639262318807591737454991989274693529788417264436356428741502379040389383788595041080093716170843160618468808770504082780821152992179914044400891410199039239569366799195147666538229236156733166361258080034821176316504811887081571600690625228112096952018414507954141015313868395053909327817861415674243073514337656273390575190506438150951799147961982856988483069198521761874103768866234281950254383020627239076623173197526274981309910118961640681789132255393001048961738271078432684631394207657786711509341320505608527059464668300616572426546278344471004437777713023141158564119270383371396694610733770451612100551816034507408572239199093164234093893848277122079451872154804857063704651363842286310875537031985403681024246905678460020293648485780742995549422531712223373875005510644138238256230529890099914450777651252870276371011449303283710620100000525782216378034004756937180768492936253532289273224238090007669043747305219394787621658538539072462135316202066264297696052413157908638942985993704526031139625266724024367319362947599246826400165881026335775806259750364600861319506498731590466799108389501590457922906490593457316391594533422567222032894882391595619677913440374334756126780920557130505809740269475845849698745483929590354912208597287108910025241383959706597228276144807771535950469453437091882597579649853291645364479860568725110887035908977085467874325392344835360864099858424810221433099874200024446461637879158126036796929615968524364043937885805103782735148234335070328442305121358765277399425077896042251109070512696945612302173746067783753163559370967608468497720376136973881710728229031684924498452805282224846006407317356282572640666619737211194958541516040141430928724930947052704349432999457781267132030053635148233221874640690493301030282916107896561845755737935738576247512747438870645741826513031610909262934619275011776325325516500982960099807708046561748806020238223228231369877517757395527520002854343937459985856907784274009392363842015816142760274416308920739843213834294097651633112412285260091278981900264271333406138119195785837589289317755558931900966728832464084190760064183001630829796255614319632305660129416094303306074234993467354797243810145315039488858641591493808421222031350349275390014283952209285718435722424040823810857364487479237901935259463060927605908565627201538632516932482042834058714388355255576026034294247094956273896921047803381329213214659475240009573568810400727754157997613049934815131072329351112121803459331600833267355413698620143825065100170738153884185390024587577693685861474578182544099609677609819270151233957469409496444111654456142312584625325851213304661786999682757106210100313458305513533548023624347002961328156238149003821309749010139697713069118723833525435728853159139628022693805848458825795604193602683210967299374004645636277394867549656852406224217035110457156575033052850256100607343134068075383047161223303075117632513939827460373152558533085950917404077505383810810187021435623777170774612827839355537109189503974067678730362690348129521954788781054934391476646958413376504669987397318454323441542102551154256621150872611727431829084283958434172324542230225115443862798282987866449966159062287933922981894739595382184402337153686446909281430498178485774778148591403563663258404972144038716065880191112733006291923298410938546393232182118804862190806254711484037450826328315310628322228076693401922637971685693273564703173069577516243528399702912036855602519293013983985265227860441409613115843647556759817069050402353783624319758917000649569149558757000348339991843866340798827185834422916207640515392894368970695905275671046613281342370924484052430011122149783786188182209189620454877247031058299185482353107817804731721733109617372704717176659519217183679850925832903704865248769523290728250464348521305601467962714613134155788620641037885526824500599564410164184236421741582161328365263732894816235853462278241822237565260956902520825791194744806984085737395002888288084369199362014079055880248192774701118810331183629378842011038501632026656159164253138441332711992377781999514694779945472810689836295560864719669161204878643833497657342417694326116974157522589065590533827337970384869540580827361538014044972671933513081894191073735591282957679432286911319040250279268838699155845671477634673633459245553298424601522438254504343057022819473089339843985797994073495027345253172416807760057595189095812718889654106948364877966824323540206929202270126515785559876757775425542528509918465374470370753900827492516818924497285291662996732801218511261117505950284773549671594914191514454799987737186451464609101312122478012199531536014214012664772665571249997511214049609139411231280570151051963251288386203352969355977615268129951866624678934012982145746869989126303225743335445293817964225164019849943337713618018966257403665286976320825415066984912505038460401028586735136885570843864456325157865731597097029487045692631430289446425862852942228682641975520980930968930423713091454838963099746803592625759997991240921959808091608819969204200370841376034169805768427187894377096447456126934114344026585292250560364828718559407575769336867023159809263113610059916329738561629635025741882709993903579691714373211482107426325974627884594888331563297964119511148136400876959947831163550413996337805416678449947073392253516261930585796038738250753927676267794500351776982476972260801253868358754950731612625006796027957047056514974500640643856238492840050366565849331152921972217421522699155604239569169060969853041966299827328149867944497758609663616810444306847553270857024445506292033816736520394739511985711881445871551010749690749462978233252335054921347666303098468133418222038739108277120252469332523047920266110541133603932212559582025681899628151300877977813380122407281654801017170821990750476065908068486072529858275577781053917407238508604311246451807025353708077689708456418786870885690659220813244067249318938954903776540314073276643791870938754808981812541791323250687203450667962225543923969469448144666168546868905748178960267851552524565400531270100523255932316019992146581066104952343371786223183326008357805290393946609939606178376424760145165318488932364831858892669914820591417479327735370152527732855964570919887990897224409299080892884781292919020230252109330390238099111171411114420614442355724680149359186667042330373590733526800692287820474696531368132082397663757128025771381563351966366364694527882104909809039921739070039504329796268686793994981191615898741944442515971057124151610594715251742205809754821962534549391711028515320247325759830263205080830841346665108837346459646816048752368298095884383621929799350896584762112119277453532281409354718316853864348631819686565783596987249415438465362382872771756352632410288195999038401349066811798381295362725655165830252917651056787744973667300345540343572838236232649858189092514354107859964401634975835574248448646334993627492657089928834118098811691242623749543021127672619861511973131423956774173492439909273266219859028693708702225388810633673086991570304795413262187305240481707498217517532372475156493634675621520305821820891074819757480024350112776131441393117683309833946875549055059004887141161248396852430479457846416878026760799617988648388664606334119581697888974879090990614136777912045541435305073517319994739057760759714021619203911839042544013134603202060778120878114734914802826757578276764657080305150878243872442817828120142943330060211275477314530567740553697231224481413705816671794282354147782794042955909558961431327426233245365348999466830174601096042809144925474407640899892409786355846854896866190216286874844746674246624626591160346052079997057437286131910846951108258093744964469651267187694566380876831578953895365736140954498989333187511524864438244037711109991327295830355011868268787037389896591180926264928085274820486310903563343092113161344817710898696299282632601781260424722090503292728170463311137360681535657816078755454390755754677301307232569688263140162409959495093940875064611023923743522832633694095709204073379111572456671423136553048180955070903012217197267445244278490655371498961880536875611082242152507970452528249509056337442616923419340038151553766085122072107132548792440051006186103572797629982448155849050445445840005714945821939087025242588358786343489989807119796695364672095001015846273823916359799716629032872410689594216185763338640695724791374420493437675661555233822039569200126423660573483776044910058513284704431737075054548956632027269215421773310444013406025158252473498738055886121071316204757285010625089006115821288598971430543746099082443424848461133460352161227077483200219003056670600853211344212094343104388101691094663714378551159931308862569007253637962833277393196733857747739622459518731823143516600477563442406352661802515132789702242662223205677763535743410370351574859147815661299907947052725851854621408401233989841853369073136896404036648257388384727491058072784781045442439530758794978701754911859427569271629098121206506813507251675490478328121120858993782768450705452267785903895858256949670327098009115732483528942713014669902487239293457216287739201009439538297562132287934998180629038173602759145220177730994144396187462114210972906286251180290875820998786298973076861975042445160244086311382550110193758691043360036946983513025650364818305562651986798739461293270226626150761924020276902781703698863027976649172079919297819815027200527797521649277822003056413265624534318166096011418676609653666535243529895626080707609758530387577783097884647132763892242753842528026512109611715505722748986104806763504826894167988887165590632043913368432671768754237670044334971992286134073847883297063586384392846659625022618281881869158857855160211333412682845957660147241517444278874943261721297716476907559136700500548968122484259967702178646480665692405013878294764126972096237627611370938926605829593856970650218641560848760791501785456465209172846033745415874493709556330026934022897288135955325877954089575574925231818137134179343702940845142799146581022096684590424326553464932769953053705070543698202157614912360020646905747588641671832306079044595197787027077177265830332340425568014736267174189152250095248091157072712339486278193743033695409467853846357492016073159799417975367829521551186517517243833526364794539563614319415455607679258564587744297666219725232874520736642030253797862151912081414327775773144900416153547867990334819204912493996012434762080599867156318859923204642524497368540297795742274824864375368097963157663619140925661919003558332850018111970852777478191468735212791334622556501006392881314451922781792748468894887448125687325453442842288806438122063396257469223348181174103013498861286343451370149443667752307657335675520976710022490636612240720447738261043425879627684470619092610885927703009224895775015500221765281312133298907750583189118492979775796873522086575742998150204082727910971041696565081683606251021359129911114600366701763937419077332510556466793324014521802661392888376785126982111251984649995512527280912431525635776287038172297525108671624484228102285613317240653433482790353588943940629232619149780989626718883921242673763324995239690214925680012606923768260691233233328194583584235829892924214623557702424717457607436908599581085603177597058823118685410501171103471449166416088559883985257470230753019537992160774622703662987766349212708143528103881748408944179743870117714846644817515760803702447314068057280597137303640311809868626875786926682489949791034669052780504495371386859344415221344153296167790474353319335921628458255879713248619951366706488267421817475606088639346508358267373433697156477773465523459834286961732459468963582138098963295529852221980741707031350348929098188647343604549305457521297309884545270592246838537483544255608603339855121217838438225352574117088183434994986488275884875195122415117034923673991958810803993521848812265850045438153360315265285058168274150292392272389699562054586809895048050909770422798944480276225845942474024048714691826228485005902865309432975195197042943242420046544545524962310848326755275164716049392206468749462470720182640657192739589454785059879673946624701788621738545952715328399878135363695445316461188880410511335995463555047367479019846290190854470282975585255900450308682711455594585914492829127537044279881240820152293366055428968884583744468238198594657014499023134800681499048244447170029755015161271847996302484076574861022723351687981176805573920663294448283427493564497832621462953885390007920120053980559303280543522646778453934463951032385744553893841732123825345042275945846110822141810756620720962902145745489995279832942452737674835306716861440674024244541785177850870130031886809267466449975927592269722731953932847650137754813418465473078502685826545391440594344414448360373086298267779713271003649632298922789275672697979972357451809082250187433109242536857284135003173081351234285004482314648382588712782631455660141363928918099619849009641972386003187922062475350089675115514366325518710080855118020549767286129882123483791322528527247479246798208463208773885997109212125636373326833639201641273645715784322854079603497564776165201318432659473859195819909206563605445159353918480491242355451838006647546949352453688383879971722647374747295014140032254589553637621954898308594156901745800856192783818719883241228184965087000291235498270423078864092686094007695102903082954903460130326058850699822802278573565477174061463804654054262974009743621406336686279851235167620808259584379307028752215339415717372414803579379779287604086701102344055391375112502684452350328969951968873228722757413877206943478759381528427402195133031959014372637326107624027164361513392253789206266448439366861976800542195233944583505611727206730403006347045732928353585109610463010370976709809049584656138568904858225386784555950422309835131838063337209254060328352928572485527525446833226664700650577193952079928081507453883218876714040584939846760654286612419440734942067635737580678861892150090647228347381612107423154490762686181522898809004295697707072260734565206194495185522675177058007844291678757526168397078334748234157748676254670541128539930956832219645757155504142012604687507500723348001999246831641046439811490165510764389799558294950340003449043618215310480683493651368770139130601526868688526831487464300203107521472836612315646745580796977719953699333878428430796728783768693964012192264429401994403454930739889066581922603915391803273936376788770399633212329119966516973601628310329920117465401490640593297168509109770991648186708138074757147818187834080051278227157848902239408484885470006341810967561811178304391906499733948732982613241290774092895484448330270891477714140383984536899400499523116192088214825054849451995141668772624007781780562722450225882905654830123358032054555061888644398858062917349170762691643523574496451969803767217828137582280940694976637014568970382222736223775646565517093000211544747796405703033100059845647570550773429190578206209568870885705392217708050461677507195262239072923990508385514748558190025181612658950982065231922521038445003226225372143797996863551066188911202553984983308179835075750044699800719442375720924295747464623435321668654716698695436880454075356268074814557929531733914176853238305925214874400915733696967445045954122412631456944194995599173792294729781038516621176412495171315355040704104028011535965698042860864396592867965901711699084493617795561847537541918259902875268781739924374649980444810107233845086872286253779012369309833715170861204469957414853242947237405968380607947550875100713138010661803402700179031733643188170443654832226564056188381556216117867443389035165194704762250312398551804349810813785079352722290207870036248353409782749186801194842706159100815685172754705326878819360378435971794116309236827670422063197395326168516158934137680441515316332316172212208060702502622971681400061821164750266589717924574063906348432344060513912144941955593690487476554293206409058577069941244741521738241530134698261363636472808894823253631147254931719233644699899952606699155161508160355644863806741351773379888371351508401148335706209778486526936427013219293519539947881501650795521881906775401576437906721300980985797461600811456857490027352517784935752638041216319604162496058608741682843699238348611805640287178515714672022337812411992411661060614881606084728378805745870364504449745710437492369756603770095609428489358066394387126124618569131887005935570016299231030270808099576360008511846758081820445975548480796256089135132891228262908008177056870491756240744773644142531005783322513988216801185518574039552737251333194541204158858891335603346981797786027584288145975021000853140823585779808621064774595139396575985533974697503106394949798262534091166327227080781525165207937627985175339367572740386940324818569095020583363392461071636596285299594706054957553383938875744994895470690702332999228431224962161495607260852783784925111483189182482865440056300705067974673367276868391947178407343957419636349610695793941792968768356163642285280424419461773284743380026689185113841533590129869306935371790975258522663119340948661085329138829256193292518237319346674622261288208459254788422122749145931144166719111920094757252947978206251199355056104195896334046345833266576549556575368186579154239892620973398981459447350656071881912089502848367770044321394331988902080197455899133879986340516828303257439364641717126656280600752370071658231111506742474574997268812358608857361840029512445594153772174115200133999747480860421664570753726304200981471737894665232934809429956875741211817577592872768283928036172412472916039716809515414219121565155954802572341316328814423292233502873337004433756404233113826284180114477963394453597511422901019907229951158840750944551751829595297384708897039488407428149758854310977279746253322903377811273596524522836641224686891348565804783132588219871011458394429989388512678326051301895709071504451490928966910105968702318595811644399156818294716857310088082428827243806649289046092975168381262362306217597282520094727632789210490928023977693725598279084499078505211187383416174681417660184692520090558702017731176960799053606591013755960277722045002960945590883557865736652020169861322964981617335662785711672040849920589039924453155052418283780393862901319575783013537318053947132260675097139854838073688215905677776579831563716778983180864171269100984955393653952124709399252726427549195346300042315368843893848078864999098041153933819071542305280135364073171491357738392987215844448065183995172340158722041775653819395482267788959251965452281010683102816181412629137423410342360492447984012095424214824107645913058556718649700104885846299363070119008875528822572638721076406364313434036858437315637269554036223045523625049357888803749337919586231575906619195077950991295287508347556239302651575275766396059268838219550606962943137284780412109652673725141649760796550861899605140210508158049873089292505817381565200416848137058881748746430496197867251587358971663452562515235561768251159635450941700940504313283125338596582515354872697775289859232213465489363445579280719266521510699604810808084096483563723912513287569950178897598167814605078528759628164061910815240018813137738909659946970577376275929892710124750475889750119787180067263558758729228862979102253037228657466666356495253173802435448351868530599000721854003249977912114759857372703604279965224263155806662776337983924142847688061535982940682839076841504045358983346521792412074353561292295423175039921020240004949381594021080659325937672877248960937215498678403140748866426182216787336959935979550731029902029646358285949422848124909031689888002774849865972829699689976084369145613109524533203509294686253030573482953812796911913039151524959565487474614471754219348541184879293262060674964359633895275367035293282494653251844600499908241399752618022789577043525924912973123608122101696932607395391929534660727562177550025866733482151081962355440334764361398300999010324759899151999376794006723250262074618056088863211506881464702483016303579947517013626592830080357312101506460432461732030182345187936176732059790111157457175631619773921762548903380182025268928583092726178649346307355561700037316073584312274393655450868594035997252178242063858202865636977301161346844925772815919132940017645494663448926963938612579597884550408371913326023004459223147573108293791157729554251728140169350268362997423461889115285265713397465119135676288325112853631821929640110064907301308216592541536623388093338548179499649736381204737893159943972122393868397347526156021747657374237629299604035882127497548005673171283916839694075914241607043811009682140956996860694316792177487156128809586576815340823910563532610139830415190016426776806142130175510883251449390466740405659085581092698486100416195430710957491479447001811988347973223866461057084731371361480459037097654140647455213730830669127449017579620505463140568131898447532185544424554762979970546536098087695260323552880495979981985205548441888638215104138145447235528794366009057734508861800576509313589639767431312480966114763787528982666894518250373148624725888574781665226373259552234355603851332237621828108135668680972092168096719355838636061778102942636426288179090317344153043588333392523752979667818821480973235802599205710882274808866490088523379642213616537092058630054654865951841291477846653883213702778728610532870296378255632040114966203710785477067883429452164240216394324078884528361072948988775832013022249532287913778238041476087461330792614337339917926039079831068150297730425528251737731129829916697043473351940789072647412495177802090667417244721061881367538196491627230415534022854456297302561362314108322445074414801605062574887755523879345475880310957082834830199303709151900345261838827599735175832881218035610446313136604260633996643783698832826621585087422938628149177108662715670272389646584016691066314267513620198973090937252026353827681821412910970040229266753459556910356411485042764948881659987918716070167346121118472571364965888947721639081721494109052285044552213053619791108977325584919990981723540290329133994616244618010726758612101188041863899825682937186631470655585206546134792363434532825153198457119687147575468303071341291953136804570094220449234395572728322747370735125374577281049771075820439763008775688927947258721498988531758558492552592564498954248285473744530181468342765538153677182174503198948632864317628461100893853431023529887268384662651405525687314027938517209509932566963179251836204207412943388859691779022746863962170620958276643727779548871199831242630904745028132535507237998343494797346156315988412988718245111414959302931032255234749060874642488759509239960038113384578568981858076332114136790421493537003866918494937149116110734100717532252434212638918105597663234463139876816480584307554543076557980210049267795351841868504813869238748655916191862544563633010222251097022873540023002280594081806880565581954681359108549178605178103522546069692560245621901728772449669632846105214273659941789786968348939163809558756788902985248426659403805477946837531513108829338213447250356780330376029427852993226563055563391490556047253452605955683248984962481293653007949629154636468989987855770457153709421295875609341114999272720282317725963765311478918565316180026500997593682276117349418909174467022339876018665187557825064769613401367864125365635212557739565113985618597667114348780122402991663811529922195026482508194552118460810669635155124342285757005283095362974529205475400020565943978670989843455582757962377310652075581970528145478329302932117626651708413597148616604921590770368386162341854820535350300594464044022465774643266251390491817184114826370347242043665742688352278415051469337741036054173582579770369789336128424877186291803467882627097789149793443563593299444154484632689136929599087672885677863299352175582481040062929804319614211478804697935289927863263563590529589927387403101044705755943116908780591237428960317664615388259472981251822084323513930019796483668274572747567880015291984078635577909574554358184740131088840068071848944306256125155324700687566037583059625315659801055145259871484357343440348494968082306846763810772275758963922533645994530754516924638130001388537127277478286510459992118640612724274577595102007552820547840371157145032250985521484635271275940967562438210078092062700078815175671538446718321195776376633708230256799916867987721308121060016442263572544034090336310665533450767218063657981908233092948384814822380407257862824930005836171788966413628090657485532783171855031565694416595162563832476362346842346773500716137474663690902743045975738432957488903704512345559492514019315272468967696555458990601075840148857484886587971660035748698581592772278314106285322486023308468241191660089919142488334551915012795289365277434187721083500383585052893013874782941751406859361996105511231566556260232040418117106526795917374475192679821609036624987147235642670712313364465150568073332714042556973951394742565764040269378490478989281193483451290822300045775938432429588742479089208614930829093071093461757398695349544925352566871012149338685161077997741619264598969718663868251351952002088971797129810216867715734306267020152952149682015232152325821331323659459461677267194731248166889119199911685677063921793415857361551174962481989017628851754878447006998212936431987219081136828149866687184292996768961773685901602192023890287206818523645449962418232590832353095845589539255380280451765516681305380030120107825646714972021064582607782375961670886441907892558725328003459725316792825116792235515123451817654601800616559495788900240844241268652783847979289967856279665742810238553793702161345605497391027499035483257530504934678310894000649039688534875906963774993617372682248484239288770094012953943092134853773089906537280203964620609515360145536497420109215677457160001900601394315066032059611520895528998669397672228939083889451955001344025155932518111339737286389845933868783828437073273640066450413993588831772322919551275186946985152700055791326004115348484650715679112706919183421877333261351465902008043686273929533286066369899509157632586419435233131812462080636909511361497519101013490606699102115287511527524992128981228122470427953175553353228945919358583661331534745950749825759989208208971642894950432820376473259979341756718068496036978079149891693262300074953948372566466520077683390742508466441358676800632460092274533366240543663754739530334129904734783566075872851675295981966913331918787981964540109513259764702665254876075076851375516152076677323155762153419813395870676194595245661978827948794598285053615174866248480805347668536779072447103377404494671038665167163105079296844766638104964929656337797708547295656125888356137075149823567403728402497751208891786901159792263658846125097879333032216325627697189266198733926809930539808532617856438102423092518715503552531125363944868842688584523066656555638595877166523514823289672837307521883874565634836136906039470774315287185532035458857636362682366433944343887434261309867785879208687143254517019161099570909453230202118536378096965445297793484728375996825642013763320692518723904100442945404830685703480786882310356607027082881407540285935992187828288599181246041365866487043842547950503096751148010415888538477805560840171332992803461645551933341541439368870952746759159582672156609313342573295247698957828309454377658841436348030414498316998141955720554657069668378921096664863539588438294566394188808149446633054953907779033661155152334375128506050083408705470424883557757606920065782022286549532227820233157546220689281430047089081703865557737046401432753102179836100153236223321242657400716490625852160905016724439239390169093729454255179666668570746120410766822866071111531211781587720764379098835174235466033921593858307088081449940513853633898294596536400800680004986153817768538386852153163112106019530593285518849911176411367086952937574341382413832414757762114504001436890055742869550785352204228900997427609264532549338635726233723660283559188377805885540520501169359116883193953752842510723093184066507538717898092031863727462210810715575340444756896381197066327730896203527668849857789724571966349153363228096697408064082780749832746302187294293761774005850692317629401156833532201175257889787182038289837721016215002539336100302923425069541862248544187117403028173723239110262417965935041453890667873996684816888524928964162650806334885036429570695774133902340439479810737332170110227481178086015670329866183669903232571831744496592657659312979812335818110269779927460907949955918458463293670941766607327424073024309272029148210994861332731615456218905010490672427865905659931512385090841551906945419244087444958379341759187981442188223916579921430129198295742625303525105356196178930410844852373168738920717377696686176845885215369871306615550971833138214066338572879234071859766011259593118542996940690398076387484164444409566134568754358704823533719304925488992031313756050459425641148066363989284330173638932396004036129165874362378284416575709350977501009823063955500040792920455843613053335562229948641887602782824877296782941041585566459890334500845438855377756454607749363413144631336804042615960969573330307921608180225257383805375915135272140480109059453386248430814968802181646053838061241625575905318883252378829303477113995572068322183712394049939818508506564857189635428878722368637484706229044676950889539444544245097232051674918931592925386470515942740663721812097553699067174601085846066817513259391993179171853165987532871585634797192470309450069554858812512392576047449519859453757034074068172906672111399547516870566480338862570277933113867067902316494148040762200012572706548486463184247787176957865736654664524269034170006289678696876659360780749366945738120367777722621802742176371590688656735267301010439918682666180209045406727290787571973318726247268541981268321920997887175661555799124382336146244553385146011379824954241785223838558397852226240139308094448313536812544530782661764612779504173469726728935813053779851103980740948131236855089525287258968522150251254181286439924353351311465725642118497186062660672508554227021379101853453208721339320613925627343890078650404957936542563752136881636292644114385894642789976449945031617084171281761728234189430809466389491951926618952462370030516645064912356363959424457104186390159883082716150014603144817578127127154494413500473527639933442810884641490431862338614160083404393841533367595872761715232551806784167931686151217136692061010930929839827432848168353864316830886600288025028512791615334779674847340168245859852638377803992807448125548253469022123941744962154887354624926619576348117102669247983971079960718335371483091149459423398194226926096383594881001798902267130951250165543270498854712977117258482096944203611142928982517338002577059512712655958140554029550391206355728034040831740414808937624823978935781320129819014210151932235383460009562426730290454074566102373940627580959832878059335854745718738748424401197471547132480344990652916334314005832494509717140687045707608093136713274470315647834965238513832485060742093482975187475740690051733006890767664504128103567843627496453285908008612580261917283070709816019792536879756961235029334249814626234124766706091647749873341398311339633646187948674639931321748445913610395024331398150580530081943841084741649889402337356100414695532921755216614150232267873976223628089537581988101550572059548369251955043314618704819619419880849143126285207743139522885339219773160530342552701517962264557633212303506306155506970602370617389089400314002053285829802736572543373163510887805351321955566833183108917234400265947866852490692746336310439274099520430846213242065525546307885650426653946003872300031348228103898654935377071587471767300405010585160275234273949145225182362253375877032447616800272016876694496654278086965422434407589034351435036299552334778067675365111420533414584250046779871142282115041569967707287310395151446143790187085500870576710485410808364643602295913555918453715526107075799534359496976688548520949351175244961701844943450639324030477613067873766224174205468212454671564371666793311731838428389500495052306140579444366000751895841463241699845143239431346619857054153068071546980561012190431614243152906502839494434893251169922479285958941867836717611350645754679743300112198954259462091522678685829185101020420660030236935647332991751958268542464629700153996281564312484385986449051748875413986516278788541430629439959961898477432979778099117985458906430605570539349924479944565039811424908012209840423138023058878378128853492427653043372621498830869280324485825065014101244209204199737415557716822172189122590177678055742699954354787413679779227890908522512090910514687435446166578955031578968491363767253811926343001731313092038626157907813348870360519269659969000116195318652907469276948879448328168692942286920004997827642672629546783533448052408566184978361379217649348821624875197292712133265590908895166903751923449201841332016381277595332680298781622879630502845516562925244045085908639144927904415620344314476277570871855801413947761160091632566725070889983987152209549788265241060823472095057492120009888968005717434965764320346224305312766653154507403169235650853909883786536818458607232362105448331143517639176969851607802716979239223755797954010279849536922511246017170072397544151824510108592250089923574051839552836301645389203109940634471997033984336320370653286279083606929303535409468991795603367803646876792364082296414576940641080572778048027447205099893061520566044512573305311858943057943062164568409730256773130872231639270015610061414563978027081032023237922378401588561374563851054997716267905373759282051291309001884300109242424974143229187720230390752011324590408452746486514178095389221726447952807128666572502307693862028752109338524863055162090696601043317998362098568228930676402131517683055915665509771224285243331558901473565803494010333948873484857208088644771288842241549788834122582978848761117716566182759314783735220801780607476426109330716203512088595784462826894577001991878064223134502479292945663131264472787673510402125514718672171803032205295494218166180148330419869023469117928039150004543095270828698590601017474926061577333578145168400566300869892797835231502546999816379697457535876868052038158670256472148102580765643042099950127127111149275615580704825726803433835165271295362244133534348185211867112942533062392272819943891115676184327986382917980160024765888705926362289396386091429039895550871734882911760079061648161631117804867178885184136081653820595361735744597418689070337547640718109978097035972034638388766464935531866241346338879195883372961508423264447264753144735366434180522704887302982681188688143180566383389288120782281249716791107818276091006877382068725435597702154092411331386867148755750008142749990851083613856165105497841014703509161277165537451048501780428456709847256692199521443427898178138690794491223086943251525540601525699043278777397727871988171593470503017689279834680252892445995256976626939477412245954114972158033186936599460756374273714515600157824448903519299820204771418994649447557735580009240752584948617254784186381153137078265019035260940422840006997554929042076582649210194549474341547022532664592120056773040886856224835023270132483570653563586106927389705722832072909340195490171159375118645295559506020037229550645869555574046488806049086283075745210228060627996390640628756461803955765948805966985479689816595957041438139716458828306611425765727774531429486927024464522424669322701753676782392071914622379300264487835601197908078953051122985996611746158804504730685759203742114791442393644857580860934856486857222964102425300972729819069395902757399469408165537414902432243518436028167109636837034013475114703078542390670555544237504983090035009399757161681627222863108543262516892039129544287871036822895478038607603745625237966313163017401467245611067182663392692600790440511954254402655681213759200558883591134151022214298385488767985401249025535201698422887390934479112034079571930456043390381456808762525776455405916386614180750114505000219630152830578575838770631554705849897243074686198749562523953657506889156057617885592544137175561657981915369798615725480616426164639816325817553735188470707491593429607974945413418959432784844730108721441830862945594195609842195082744929552846099352842897303150963457665993384920929264295460988723626662464265362580850449413625949140925515409506005437331020510530465425041624678039603407813981658844031018789356097033362195131232323325260681150958837019678218830902414079721212083394140955159347113033606389496820844515104798045445076597365141799939564015369273060092578807460723690817892265807949755879775858963330164444676137484662366752937286113789065469696867792179399205000961233234569099099735208498523383815716309010320340978883761750694754165905957683640674213103052253612583110423899584056880196660366207186220010660980315532179491604873752273003172350140696939900472644308270739084048523313877400950731686101717134442950812792224979593788675485955373467635439637306968814617668055933396246431209875593240485430348966588052039301303547487977589376170516769388891305106596842728064637923491867229713663705816483989426417140012022640279853456265132789196778309240841755583688269412206957531153117331386436740532405797870645878635582979955199357607990932531841310035890262925825690564279286027481124585365128602264906519225390305375113937567297257923649767492785445684620026139627601469005739487764553230486555624184361052746492147406707570137119623714200800231987685386042267651222190448458161300819657255125971192352857973683417173334778537122252694524721471162405693439490513574079919544875438623311536752791499620671839115585277581986798854610933482090670754935381565447883577375912846234000766032401630863825558966079899428986190754112005684929284541097737217935589761561725407276153754967027486978687261538671299603454830649461140684159254017593195397330916042187943174475255936753608728934131199249019380383112389775629954673228422655138945833922414225317769950746585285787247017140707763312670450950092552040968732159478921791598965988573596897306445368920478382915886068079690131171109025184295218993661818614429353999214227444374710470457258797498124842906684589751372890675261920423333620775325425335179269791463226322675065889115945321167612742039503056984350981575195139175123289795393130670348104304162523547326400379608430173257817442561917460233727289164413234746775550240176243615421756418180725824945266429627780180563163622184650013896577052692031685644792345071965390070928191606123308313800536902672293397506594566581411199200334339677001231739370141620399561131945103500592226595459716681754165444231402705721234374896927719032210560088683658427167013236485990548988799646019053002531001379625042409878976859998407096790701929389428577395401074512372732790991721385670647645855210808945752828683834918202935474969975707236902874830576104385211375243737678367623332915202359131210833841691660320920879499878763423281094955281509224332368725359014562993826093667268081596530561194412558121117705889165666398587085532554315246649555132306789398892491533034911768368801253236937500910638215731290916124477438777612818088400185372824687160778394995307920588520486508175668195618064710086622558901732095327343348441909389640209233067929045457728287247073934658399124991211242188838905300696197681789113738871888864840848594162744588580579892722799966067788225010025082340335874898772244804626486696045021393012363424840999695613843171280335973446755789747301295677595675581268253576477080492362104617341940438514694635165977015094237795420341926209141166471354100456273703289310945648992102082218501919348700062670568051369703703028564612020222951483960198106991783459305220791926157072969598874829954171780506133574985798428784902919885705296251898895331233282126510969220042632231115056077638714582686759843540753164678288625183429826532869130439303281308545012102383807861560440552797752254797728878735408376039768767205142100541462330798626230841467331439171933282650174067756379504350999007213593998146562680912663780684402406636896462600448998928220220865017069235955437048621236853684537279834865382497268134195224848430219385776619394535502444745482225967972514843025609810618861015584917076149172344575254891865899299688709513855164396331581599815230725179085435860267802142619032097599550174217009407019466107007120048865830727246568999698336150467122129149803664340184519853051102350602795158278371562629571575095156156790121979720342592646928724543892704570705687940705951332672462308506263109753383548289478938678206659638831273116917585507716893358961866824040817858281645812847433042147141002939999762150218311523141308046792038150396559122360881258213418274572740988520184923663460210438842324282685501967968720082351712659264549582412699088466997707220784435853318585435453249696799246942073873578929131215444045609424342012069735676326047153517997390246282958201793573130723173578132478314914514805352806763342310210127790187232177515799288344490962356314505462807904459263781749928628062266691493447026949294765070385005860376112509167909022240890914202490090475996335901075968530455325657743073954689519209318076552074223504788543451984375755302079042643114888026526881404394368500859739617428603244554759068033778822211113274963777171985878252791049778782331424447081700171649482456368807026385599109016987772161875809841981184760883474583290184891184777781299682398297308204758764087027904050848703822569052976848579908213641743557487062443327932699865129059828802912923353542742937631499689693700453456149729514537373901645570952429738858211068198343915426551460622476089515242178001323525585795054948645948756788832414103009039145170330904530701420717902066389911037890542778567836376238737931725489878085759468920493411155081612055871720277228359203566377537124073474652974217278636002636270154005621342819597903414796436783276866101502319551778517461164110843160692300328100705518351319369267249504653043695695836703255717297009048862184314346180424550144140066186507990144896452924727176562512034512058046599637989544452687900275653647906260069905430185990718896926896696164870135010771923830951816965937261306819959667029480183344738188841404734995013701188591479437420939808893734743452288600951735766862982080159163222630188758354595884750724048112027827289809547264174203290277429336111934654560286711287574042841298645822042303105786275150221699077946198811460134066021776621949637740495502044210779305043025671190994540949902017111172626367353459350013145174047947120083798127789200803777482554286630147874023396659020143200351623092487360907878000800657429775553519905272626892071115480836094515059432786992189052673113704599675232009911473427969098033083939703556965584386172000666741250992525115131131243274268875040163487283273636080431746353371101812674262069143188767320647320634782319321756865352298650257697644145378554274149030390422350350775507971215090454326915631753622832967464343425490728047572288360135308623972501022077797147660666098145975548907015042941146029286923294751256662460186984512395476962756420651231225998858005286376986737814556382562868108036252558163254022241929845762129290502430521213949781548890890995171819854789877196389505945218556261749131598316915353680490788431391165720380316240611210819841258988132324431007544945506880894657374467407952002877251625014290318611835405908526350933329305397253426465509108902537608744632750209541544630586203849562854535311890517473181944857701747217725731794086052346662364800654686779743738912848082197263306593573863478513094022415198426668390927075724671997003864850096185570287382609740797546969568448426300690154622002010236298150922490938497662633805758737725418772371937686429547308777289083323839298717226136004493908288595607589813004581073571931583519771575987310702481706105585501541650065288578280264935790996576586601792489673718222152727036999449364328296976977146175410928787051329129925131461392464045880389685068772146230694076772632996120383546994692657633474229605801604272635548632402423240598305878833915650360371376121856808776461863837051502226170765543598903914434342472574269144270369461335543997068008351571288025438167975354006922793398675415638607517443144894484723422700592146052802442747929497947338919535463872208551058396031406542124978788110933008926871770131843610742045857504758674134092623735221212603637650554948470379503231845084722045104321536944690584224483213972897945158424743957540080386798619923495736859235804034883392661180936200027926944100475800940925516297974058034922388852271662526952284302775517921719711568157972659533407988962612478612460372717985095686052183701814600352553514994514177476813404815550011770052002318453367650168497372604243372411890948544073371219115726718486906694081771054423989991256984324980162000276909512035831226956853263902630603081625200753929814804201761496529158648329499684176613794480074431239509791303194411121839449965315794902453088628422589854326037960147801983042638199031240372332690821073007731370276317554898469041251689871231678195709603066413198974585935620441325122216262475001852849177798829247043484391260214972831785757905293558231664702340183024248676780053448212061978814398052375140259294841677144294177103463482031651239967470565381162382631124820352591099462644397204761192664446560935464044610919447746911369519044231137758784697728669701577959041876035735914747599560790339953938860364087875503315499220239404143438875511052803347656824333255154601701808949275394887992237742216777513418354055416092198640491572391557552168030709007096288364317112896240432303318063150213334295727140681181824051658101224792671122700203442262582717030133842083952620013565718131747876195993418890578527348012654300167767745399763916638671165734815076346510914287965941456256911386900767340616873945430454584307037080939480989533480353952268405194458387422106598327611998121772119101817171815518204647110314980043449922351034920209764400714673178352108533783281458222664084902674238075486502560626291660459764809446491848319762936814013579143781541408625210347380040006628228425186888761808101632850780402405519966426479740991518709785722462063992053445001052741360428973778518533707338185804039191531879658902969742431102277224069236740557057221123101061478843998058435044766913921877631732572385278446837757483034428602326868943993325706034558682113906292104901020052649953087567864985153591271876700281547891520191225673726585328455846017819993002975464669071749172603739960891024722911796212883580699267376129341529782817502469954611262331293670637308878559577808671186573428918463029135410771519018472142017268577490179691132287764201672052039147413628506600974672895300646962698473139221929142947989439636247738812832421541923162667503627796617718171064415617540976094056444890544224856624299584457165446511691887010175168810123632209312293736224276795786310331673117195081023370154295749126817695856065756920339838335633109800601923935579099967362277596083241950094051090877441103199872754366562629931970166325225000783705355509622318600290543266422543829297146520954608072476169684971156803268368069243514009409206731307065840110710455084680784380455547720655180805921844203601124978648272736933645188763759619132507583037947124446330164125602468461804998770721261621237316117851946769803951375747853275296824842107754199237308967791361178662229377658411355704568559734433627273598520269018980395078275587253684206103953604682365468974455504385300631130722456437589257403915307071028757615677720744470291301290853772946779999193568902092701047968492245864288308107212059588754272474474513838456879623903143120707079103678450989039378806020471030424648363981617300736552324887156582651786448521048956187971612169597114189959094260995045273106876675392421939799916124226465121571369337471290598820903672825219586496729935621478680435940610671951914258775799024468954627703723539740272154154311440958648414963889081784671926838194159275577169817244232102601725387530474336472812859920385335154769946897785563172144922040752830188377104836313260757433594714425140577101118868824024625435268200249160522479521506137102930521656361027147922760314799706891751735556075041546911413394791082670256770084730008401906061574916382660469621970646936213731145609189493401269091669321971921359412743871162032764741445406423576787946654516078105230105451604775871705866747184692998750743823660997440496633560124136707722686229788833467405408252587187176650674186733685565699707868797535883634893669931644030838006409686208388010005409439169570099063045019712844485311301916966326306331814830844482570067050607504532776409739697114762369768092582085135286069643036292383694704617803250197464233180585400041200249496953255749967631540181983361827892813732018217611085681222662480424289143248533512460581306191915921186390952617042620965473750279514943982405416065792503039689426172438170722943430221638881583841525162626183604940718929575206962973495527569400333283189867812663126163081128064015356211696244640043774069207922614975250445315263905086790904851812409797472318718053889034123149573571335327377288487913121959498185404522677256063506290576212007283192163085895977026682268691657285313032468417025183997067126388462839785937834415089420289679550995212220027434713401813982019635564461257506900041422818621951978903252532155964194245618263712519970226232198137712008338838659936645586952939075544014027742655896233505486120263063772794075066279162722147810646914429360756552673674578208479250474148169358402068084888439150353606452290155590922523427593098627696195482457806405738504453041477432403167916124999554183388645181346147758226362387648072280758660842208581265534347711273222175993946140430403874323127785618248957856828496963358735471961491686147046728908004357931918776921644270298345719245058709336741115122579645288034177789678959339859475205388867141651493195061569777084117350059987972232502736046093476517157715664690203012616109333246877843028452900921156065797747787493877124097853397137999678533725226326306357514660455097524853252853601138852321296738676939888703391332742512984143841293597245783058215765173804684019399000768691167293832695537373016932739880115271835004900767110759804922605951642408408477728437730137897237693512147736364736113717372787606027080482924670178028419087519091490385058394578358685790780500973005484188113968578214343566254021995914808451300424098076308165259651842601996117921685319594747675425243103072560301820819515805824890136410175181640112915993833267245132235725941674110025131636839350936987881274724960015483935881693342016275610959826404156806887445810199879973572709156239691355687982537771607373263184349216379213351682077716189629686080433048447016506729893020026975036355584731798650408883475948348249003634859438422772738565219941781641377097800276268787723075617512898278790327559873446505748431023370731575748770057324905221719898235597953332643690018647620115888700133985448833785376852713426043249046364201379706232811351248084420608290931460077440004047413257913406889006431008877184782453732530062828172665715931649395357482548395717663315702376989182011582991241733144687675139577402884963200085218189451617514776347496012151736550768208672455889757667631052829258598570272362756240101348243274244840615881125783136644610708108025477844991799564180330153920026214026740965605186699212581847462905109853541656117243554226212870818002329029423899503548108345012247451086903249951171819510585577188737910697107872592612114506698751485144727770442556336681081830258450993818179912955761213830905879095473563026402003519817178766077122167071314415233455271864968827318290252580211501249188869931997513918344812543135724742156763842237428976017674934519926328781500081818494258967696956613058237153945227115951509204034786136489432038829654375408125032137428338872988171791236151877593722697873044904667755099968378616582171625365460093827811837633654208517257329939016797714164216203120629182698943331285832962186019747702309636425679414131541327723772616427532253772673002220680650819895999518181791691096859965874025349168422585597561775520981927539106845553696064241527688872598418967530166948537994697366080995351891946253564751575799946377435236940670144273429897083803260619424776607295601689828310415093586519568018338436786537230447506454564241751681457720677887528709251271943705692992390505472818403622594287449805097197164672610505344154227469205692048519194780975005921349100243165804255354751078596873563849593147528695412096449991248641814664842124494265174814093937591959749102223602479884261750512828470011056379176690826852215222239346112727889470783815341258498628412267470121025744980402691946543147803077715059525392745716747761827840708256397980096824161232068569528245482197753371523152241443915465816553557415027416584841670774138632840527151333460145087797363869560932351743515448457915462093856992923641231843027440186992972170277852620938463516348159656809452375486978416790844429635814041055341850307047451222705143374692266083090053063258930410970213346320077456987881704498123206323290923001353633410670050425047854985368551184888546026224094348420354208121450623815805718329734883165664480824392572995244056737921649084069383130386979173844406508040552059651372432152378845674669461169863847107070166943970582703164552447969775895259544205959456482966373443083017341008083823220564309979893881953409192407814578684447693500650407362407722836027676363398714460445924020618180170494090490548908739810569462417384938719938280777062544272134983772599268875968228254442921090271663265560921080562704255543775835765966573323513980061457873388069975315901999075997638223346586963602555386613653209733798660637952172385607422083136238466889176699244528329586496165861540689706093401101576529182668201416388343908695152998659499101750993915837115103092569246857852432087034341406300597046169062225547777852976788453978162807650544553143573546340857100239083253200309662746528243141460555708907736801746192525788915413952741530225336317749257735660410565673110453928063497786578767654857188873675513737845049186478548267589930664097282116952314995128147845669448715658376033269750727380551702915908640868820394925609558139108511959851347101556412021727510639866241254254143046074924609175794404919781473855351855931956074558522655892124504083721028357811342064915069002924094053402006549340328672483025515570326991433324215980451987113742052370103204813032223282018338110899709613421996584906513482017311075681164915927843759869215257955788043592149295403744981137252222153779167061497374862022881892445375601931493439232183761034349361108673720681825852346325795167200863790348700662579345161451827181866389965610847086080642725859378491361129640898176239920298998271964369175103179374024400776703840092283221724980835855192786733472070608165820365923779553065651867740127703380849302189759741883902273039808415677731358706291152220888214268190636371413334121134005736689677527881416427730607079842159272914364565642521128837256722915780220455273225255763414304495225587087290909422517539656245532725202850444714567444959766472095582395670825126829730053743599901605121614918964247927336354455895321469349346537672700608800303010904781537675707602568828718427643093030564329587067669443963644442509409551741503651740723984282147452634898475305183977700660924562952764640117921068422230040063843726387290582285486600369412300632706972535440336379806818946428809901656918218781913957751258352441751354173477611961794966015583771174802999654125252937348153583449389432533411360515314957770266826927900396105881684779687033727680161074577135172565062226018177454186916274727996260762181917547654328600203274317941362404102093846479522156411073545059169641507925700588823308218746370975823593067301772838620060660644911281999253545099497216722564566745279700219946686118285465682853963655163858240853103497707540829542760058625014325234179741682332115344923484849680997605373396093337178976858263314271107570230805145389292138248088810716630687674050578847853762226136220204031604805080016509977331609300633707910727633640022114221787213420864468431961985301390385518275686956604937640075747791692931692815037584213787136916586875764642392565049304077821090369328688958916751866364151850135774960221526282500990997346216297164829963468072244689063226910952705286986375720440864491608237317999395398153603974554630738185689390381092546312056878311532134868697619893733918196038948167214409145878241573139235541329548609233363294541005796409736523114818691414085604527662288926501674213910320565369017065376299391511285574200402879022294752058316807124266762217617919846410749055871242893601636465881063015045262427729020172534978970340172420653575242086741495437371635109765190451475397980000177236546316191232472863677459013283277798442366053683278896937627976244963435881794005037127701038313920319843978301625459360166558010679364789402723951077391250707072058155205804151583060122530191633515737098169282520700043593995830945964517623509167175475418781999276415958256902529225294190944040960131992477805336024949256420702427846164854685025307807727341565643049561809095492051080805985447521008078945181880503940174383369874573744920573708634936624491729448514567661274922079864047248693955041976790688412646833095644400534599862502879974603157002174433332971873512695476331289359950544260778561439772750304369478197187482747003221937509963075015625872781312438633325245835482963664208079449279184463385500256060046883693185962723949525689547724914458455955388448549311255627188998557058776110434973198130476207643091092781877712529265882927695193235783103862218863016892090854370799358442014127498580086913175196038856065288184822254019287181571104527418057803963438462138878213803655944702147305289762025873320049449185531252950648793315124845017534428060868330748274429833612392462669951952005221542470128605177519973683740992619722474626875275711606951130384118043550296871101997656035300734658820999229685681214310378606956488460735388350701379753057829275111746125443245564857436261791861311480080399343320425080072293377278143513988343495392958997588644587394317730219522319820671877230273966778985282475837317451773792344306515814020790051720954636961726429548491429058719073857347550261562689028802116115944272700175844627810097142333147661744208687126531626267879164678524098778339877765419442317315989291773475352181226193205463455724006991797092177041976140806755749614939843829155577370953788554618479667274481616191800171741124299834287676447688105981315143978347571669575830757271434499586853561343713090923976051333821718904843910255993357009012688553749188707970355328107746419303626549572646962201090821922458031190956742872578832293248911116758827684988052825167127017678203248601548338485369877727385431935196552904040546385566134025047158618997415133079977410124004286260747883736974268817386020794553820060350194285248148419459662176501739704256080006038456239018522513248209877254771972432023308313198478266544381799547238923983730171863843733549302908277267715731275940570959824400150532502748550139108966929336980503738994853015237336044008524521120059757727345649834236605787797378994425080202762252960181866103685145866892465889399975522179415062860146378464380255280462915186015106082534158975345846496625167214480814594253465486693487001664031395062194725073968708861973520411738098277568457823579156824300120361491027280472804113771431408424594814679317841177408296705568146604625331597466486038026800395011179806673687930592883794656807897112493613099136081897360323435882614334260355229633566830768879317904074077262520377815701957152398749919956617270506382392190609489122722204736116877754482785921770694224754132548311500351162838927175720158801294428234472509136109632194609972050900245929631715930606697332434243051036221845067056051740650499385731167432163713827538410740439578343307049341609624204676195746179980503845750406690581840004643047096587298974495769143679074814215073820919647724204301570121097459919187418179364963338571841647559707057072528045757160056797814213428772887982178905027517688796796825232945103400638115981973960390164407215422910602361148039639983318345264779063814589423082540231895374998480866752515401671437051101843483090735024675534009724283573247797756232998996943045035002338425582387920919186239706090539111359299476711493292564554266630465437190273796521449321244307091309819989442302009459934763149891753585106366209043832105960338844536095326292538988566213898210441945665304959693112677150706546321213125425174737864839657770247281444555753890981890042750543043240568677153128097430336129441544374111287620563063767386026527106725749702932269614292811936366956040814184332558440026180444654445168439284976466885978695050287169624389510132365314859943451590913864284339379308166528804861203404600869784565283925766874464788874770105793957563174404964123392223507361623059843587526259393111491328748067032449370883575302314841992178769047423121243759886792151353428412683519157819459746196589628304568162136638236090865802233205540541665074062370953401203517220986213675505841487670361309286950428434887583325526979350443407762956837239771629292292361433032421430972171563882496937973543813430826493373072626958640417868104976655069009853387663658576305932997956677404227618889039917304168687335745242584066484265256718611673275162317057843589008951779054983432164483090742514841712002399537437842275801426990396326345631005470269906577388872802689385952882010019343339390367263396950649379455167385776975854035173554882902809895746979432205565635595334110868790266859508796905221375888408222284530125811869722140057332198377196975157175834777130189790728890753600889205342188837733484194478130289441555933537898253937168482258175231189741620946663986048522822395496028185945416248188904348075076535230444736779522824782608938780513991458137201125251686205644043123231099435455208575348447082564336646180188866700736244783855189714838889184105958748097161045855114520834489514831404439699669278425038084629178835098847814818481752590566868961234898119668497163374208650744782358057244067445829546376292552359954999684391229891695147421228224419826814039457479272737026615597677445487185905458059027795853386887559278088329980798261714783738223572067212019721181049442221081882311640722075542852937429801711465461532366358402947342550524946032892960100482263149513917113064826598598625201775335773557259681987160469243660957535958829445126490554681466861620760522610907118758311318152599724068349243064801269725504142165907494781997606133205272291835069007328956739695599089211867919891865736363231008008734907886909944178681036184957326218530559765593035921927754855137443754357373967856402797173445126913947645657310931096955842187634807033391298226238492800423156472151921403437989595557451975098704901201206000850177467870033146966077962489666390879989027928869928592699117109142299176853263777219270339460860672933222906413520007044545416640052728660327898265116160366859688388976966096249616269032999221790451839598490153146737232245794802018595679391335790144211509963109171933869403023976008985763459138643898714465041762252171425734848120043977003230434096040954573033557114608180600739529387080625173120304893946364027505876417259453592438642839105822686719205408153717106053616635297911558429421633295886774574759447020806906039698859336135662697390308807049318513457816395350928522658646470794740687064610812047247287514262301955614109974586435570897623192882630297965435968954709375270342311586304806519458809541817268379795462090712810150121653434308646557931822534853806224861724179142125811522764511084756717583077078349636040561121953962772581449655449333684511181518964647597368549722781724120655795827693735247378270709709458739354490647954091772212976425814495384253506081926223875438658077103986436020077484463288384733214621213602603098817095143232602563107047776017540356924080476061480057943859274893313061075729597596332559020253714446361312649533628860618967571413453081801664778519757342333326735637707707706911106796390471127477031914781549333629266390246205222339583458728752872305061337758463071879311847486129273390275496560721513659769811402005082852595288527264629945099060729292828161110816587076356034003759959503219121219350100289495650241291983408626129687570564352865469632022603596198455549946059067726786820817432460475536890752818219049742308573986369684013909663915718355892851855535760918834218977443952104359336096023543242654286141416322138980171333016425618958358548156117093624399242911476266466096523716042267824825876266476446930865270438479842975420963574695083265649531054857563382912070260805000932841407244770811980251237798734111183323235396843240028059844459229634400556475354210555772587719515305366059083184222987783266104720136320305116710109167300749033219993286309706600872441125399393093591248723479174758416609740466643276505296099388065263008294408693784568849281044275860348291559294238035395708032528336570906162499579440785037762130706151703508747977973683098308471692687437319880305954442904586974932905259628464084617655064989299743524865335651773445855143097331522466340086783068458179650022943493159878498329581441982068579744500786850855509958883606780018770845173251433228359867222798655823476882195711151877266554093826926793900594352639003956314592308659651014585144339932480732707410082139417843390497195945313282183519368391296888254840198069381716962197055389459669911411728106582108167892336458746256510681672350615886272638808437449448541447771147255559626328763785184111237874440759855139291773728505768059223744820531460974363531175610846026623212513043589162211029836740463520521251789830725907865052171331555103893197969071542536126981814065405934268064918848270964068511721792601399563801682933007409429515474743517926618230925013309327949196753165060109563532939172161067704687661157538655289420799677348683408314880192964217766753078013448530131419321302856764490681729979724459201293507802457084710139848893539865352704157411285021656159447848168704718411331439051552877697598516511368461286096636390897333903420282386858049969074397301256767193329090431369248930330793578339678433867545136016798016763518220757128975510387978790381958933646889663626852265969284417591407570878088286930583457868405305170638585713723720963703968568370696726174169467001735971843236349993846120962729519389786027038685080330217600507871773394415987497716520641348757082216574856594767615655804309113854577537186179104537489332750604772222813313441409051667299736406643474534892926306843133502241931676703351535764785311315044416455627946095262723689006423394271247979896072444963450004050292765840871827259641595154077358476142053043833395881774407670869183667762514895556873597138839006181697599313385006243746244537623547719115778968965094917251675911663637270808092576724183388176177246017843828205454935060978618180232227488930826401017902002984649428752626222400962579459159215834265930936219432205882044582217190259324549393379311835227457079059683366302324818354186058722092798491974205413949636054433247084107765603132675773557133091423879001990472642775179948736132905729709373805618615568942071840608165308257041628779800384576900494670760472454823644428098422681983754791711976047389686448081762171643825884380621117591339704674255697897144986761121900172293738393114129851961494423684506428345540166322577650709833430516046638947274194504365005842079246931931655124559995648370838461795712906652526589457542994750916630077312321102537669916713407155621134790978549434722052007403892898823532745504537028624769309333168240833961019168852914260868127757938850811827076755087664733991780913165589483266299727507702810472141544526529373132913515578342009134441622954303835315266761879025135970575970800416458136763642451148471641788614221375873948160119624268071599553261430844752094861536258947370800216605640384383601703157567384256350833669056306553020947903412267066945617902647824074869710889664624123510676504634462068695402396587312451632398425814262990409269108124865957200115072900495306085133494883587221794624467718983714187200663873525551632296515402702209146032003378921932383108736769640725638624381049064247547982283620579330660527294427874138393975990176782750733605090690082585563528492299945291344603164552314416960020727913702979113890216807044386609860322611215799651149203757712698319817571614158041625413617645658248479201386173884739844586957747462805171115667965738214369756187412024732808774896502036096536076622527625151294216223777483177609327757686342420667941763822738787468422788152780985814213398266626994972549818975758282962047926792460639755014092772525877316292051895071204449867289798475610343595041041691520055023832234639039054396365104960129825090023020392562235859661104086283692825159724581738019958878837846077810582767220526738298597206254890713138925571962334978345021557453265355516577732892905417116258204818027180182245673916991063785747468004023889051637656544503652864249641950583811231110156999300227653563203500729133555715890826100074029450225214062739306145261237750701458693404355839394806493598922147186513354114300812073599021195951474400755685342837780370278328733494762053090631438625094461120845783735508071306255138434441134002170554444157449861755738356188926733384412522856751582642594479792009399879032847633088347206078688696310864652926215495763796978522795443785512464084267472887892010894207342267064453344473929231247206293462408452045616844509235106611970225158608304084671224838722674566435292619385918617968006499868074950577935947170010988420682400026690248206694373736365481711355464782189374932859063304428028427905132773826964167033374572168758566592304478410462630090921295438704317112740246822968095209347091146322523592689645927642988271630885038234651695577627935618795291457264104992603424383049729899955419904880519641897796231964358634608605345756839841342520957419794102910709333083289426451638402525172095807180059179578894989602332541251278086190289806318429629438203189714991552578819912805507328340829851361860947341966313519028988623464762254834147368545105887203838494716943557801729783206887838956352697886348015547998856421265412778333444086344263239450280055037882601823888688450246597148892822608408321959657048845965769024303576106715400512375887329727311979133935507848520210070432218802860211279831058585832000080548132476241631997254996374177438870170147002071088068107122876050248168971941126268102402766163756445718924559612222095371905445672723152903969656927118597861219897768091775386745719314103441778453324904880469317959978797694963016944675552359251577675730197503595310752622146913185153638856702633561647707887925785760869396712505632943890001697292209619585327120925693936833442390685422295686676667947574985548475800841131828623446574515902852407233502719989221998526305898313416489545216413243164118914878606323323349228778114284971749022924246629642474872508192258607358875883687726426525717845333901248462235088328215442219555347777860141675833959807489189255899412223504524090899871871018733923059194285369483897353478192554324190099949960043933112690839822354051754912733426117614203931077883703282584005482010667341104495383854073881525658861633843502320214112515625981059609280935506980928656256572870750731693153213002066710310196972972469668805650535140794966695969700096346424768091427743924855610204156330905257643321344783485920117696028768737806845521179309727099292598420151409455139755912353034042631236391156350809757361362621377234526633023218361426100091704710508517832523148332802273484605524637955017143344848070304340035842002853715998185968786659981510068060042603278189285846462081277357390977988275384659758238978209729823785606027552572424748682366804976414783169974888801254242036335352030199991709681856432971274764499032433448279357352225250841755373405346050465969686867038409144010115312623011508512190753938368877930562442265039713731500284498880462649203925605417127139483801074308753903603238389948479497371902806615328725926427955575817018438170421219332143482340705387108102699718740846916963407225791231819445192288174631835815592286446808751079441305991435828342026644670583961010793672839512666541814118580660550348946339610177463283392382486814372774560062797942377755726610714354778770845853256728794423656857902154287128817142705463543429081033739656364875859083660939436497151965370356903513529884716404315517747328006622582498569103369073229531499246736397319345320379349070880360315947881882027294554611843748850468351119977745466214887403619185010571259212032393862183080923140763841329571709168690437802827818472686058427187123288404013193493803265620339309228973536367181520400767567343863278054084312139148820684767873146633151006847811646205695287746539385329441482159243014957219307044669607862630408311507919380252291447207176822757891298429130881512778269735457936784409776026748033976691299725381999134270814392987912188475543537187061482719159725068911641207650870535058829279753083868567970440664800660077216953623159819101790818103135111660359011797504471365206031785089230785263997370521347108513075253985029929945965557022805722802478171755407970111194829923187080690683006507547614993410657081470088620378137981410476948356041316336561818948016349736788306210944323287894461038810967506475485063203910697137409320334170034929627181688426154824224891733487415138546929074658922401692880985130521060228668164888806465816005057037031196781718538072488137736441769025889009656455958463283528669437556894380664842766736971379339774923269948674636113825162578287691883911056249843142567386160737622989042662052828156395628966798548831515984451668094962435355030253482400576223864783517985936255518549875382925172628969145212628313289608697635105150995205873994957360089087108602782112880428853492018108465019982832209468947635248979709438443641108647411253510855617982799865818223362300735204358038451072104439176429813428089330576464217549266771187039655085935818875181119451450737378333146171690427883252075023520079770449998788321641554013101637325073245122645384275283910003298971635624251718202697250041917516872066713763917782112922523005205037410275289838330166283692403963931826319192305280481387556203949855373303086917887118714018858913634016480160558432634891823400149738218702199716232022233629924328013774664851704352790453601911381811451260023468187475851377275335346009068794398211454049471865408451740914978004500524293435920085603403569946643293749268886442303048334355362819697592293524067318427868664415520694587753034701223244990109704243685782991122224946898814197759721133900897490275265353452251859748518845242251451723513952148466240072911797167899609126217355971373803547807129473318045897215569456923365663987437500117367869978967037314385299526795858209262837386889457560782802861982672571526526700501586553909537117294947077420665265878771291050294333832875694102583975100343802298264303469492002233213077995831148412523109372185649647155852749626241551282467424257265586147230253322527320416754600492712214501345768049858335562603832065437604660505016077820501912297598109823598871383018479877738594358520484230353433513069933320715832869945288836008830770706068009602830655521260750317537931697204427409865901689359079634033246649355072207714158303043636794017444674718428776573294408463471696652900640995326646076825663802373609288022182842504506942039289783608937057032108761411481238902190891104822027359691226346670950968217232626497298340235580653669182595505007016276705879865068086833590153601704458004979638199178954111245434224712810692353119915206853172726742926618227099104232419798332247277525797688460173656705028412821701931238166686237270222332772513320468408183683581566542217233857216765299213286196963097213276804975493642231189473879265540915011131615898560470174110809748649517848448371989752441372412149151639984168266930713093398562331904532530067533487972321448219299478512757923469711612041376953561946376616549313625442696428754584129964852792628823316211717373963755872488291383677527368486478139088152736613265781715486993698497658837565933301253012987709990059873294250222489673054823625555273607448417513104025027908205874871454306011860263404631564376226041756318830071717862195400071500409276051607493007969952123805291913564115416857942212760235930545124663773392982117431210337418742559120935086828635575462207141969171074547392646918351017443318746557876411980094452492442654325691565718410817641417829069450379905174487976911038872172579259131176467224573706123017324396636426380294623184399831318394172538472678964547750172172649197092823176940184190852023226369489521883641014249492563882489731718195177277848378426970320975426306811150731276347671663169175734479248132739799788290595659354741696062271933768977906571545923907181106874280622514693534229769795887803963946011541583208084989804166011329409988030706685456427624560436698005311232952443332905201951268251869764330148451991146409587218585830564269040302491109634581626329628912538714485069542821447290327918074606956930203446931280075272438230928939148689310644215200439471081762088166658508858085846048955912000508382188688128823567632365535788554050008708935704671500493534618507736533253129938258169609494039074829650197462354054504076710155241702549496468283462964831826749261336873651462203804556484133168183186626419485537555263128837043945318265305757702464474996586714257303217955570539490135893471401665988654542960796188500980038217398198733726426724740834498443061268894211249659758192415777478528357725708170680979371438113776401106450797907260228170790340703144149441576224105152505940657886233037973797441044100381626831585975416548670931060404243953856178395347759312702522853251684435248900354882248847607245168825259720294003924632431239176524510966036116739003781631204662075536861129893557976290615314239466615987688362024210665370481553347081930212632912023468334009208273384339477195457099639032346392800305704181845553918843563432576999044365611202499044076301160797568406661162810335369527900703990124470038488770228089805568540445591850978463408518348711222462668002423362050540508339486643064795910730511883511363361481522068095647041873740749614771331940818624608117993273316477776930806706156000854812410719362675926340286208642079770951506385597919993814224121683099412916235712255796540151325501196739960579359132638648326831566212922336123032606044324482663018050318768447370187921149009580101909500437783003964153391223426732893826926470584423865729945622618348684916432062231516460462033643894669502100199047474604520519792313302391136725571544832276310346163703382522228322887728474550321314719807293780897639647598466378839689061078739388585192335449122843508053779424413049037397911193850545574196014117793002980789240136789437603048042961502993898798364380743866245199727935343733283700428999627376894531869828792365271732708378287404647871433422518922271374815944214764311573630164510749213840997742221973109383720161163084199001212615474210932756624154464588894838572388015375475345349476855659573102227095579356687069814004456689721748317986094475388215769531647707142148811956902228958572950945294107434137424358787867223065046003801494282513819552218028849376039263713074005453612539324262299839850635555852805106533651228350330906353406502258915892355542396891614591996310053410614696874974053514159280013624056924761869988275332719897653035594647341135693698290155703076403831213653777760993797712324341277172379532302708351308058774306269361764120230368548296895480220487738079750808588643384687151857410196360579274263269207129045053836168214646960022437264880033486561620866603223235363152058429042237383499768281206055873291709835086068280454552109212091540365592393812251506076613002756103875462283502920179688397414798433133575501290621772141129110234188304662504894053656528483076751693759831445509557553993947097449115650212043746800358870469382409810058077724492184419517425721776428670836465895492903129415017714632391882783731148556319470820505827773737195011566056899158978957662576816707824326660148649670905742554872127406074820709807505877989558883406753432164988016085955932236545144398538184937314586249201490995138152145892007755209804687525873423373742565945398659843367924201044204204964363543225345824349111147927044877694885613940570118697818541930580232677032041055254218223606370102696968007684955711702489357251677241716388912147178003663749643158642821005819850606634328590911003364747539324971158265502847761615781216902026289019242137228098538200377741695311423474399769137259074484109486828485424068773920322211213709482289584708029035323761902707647184712726513515586476788218421825163780923392537212358841854123562178158010459022129960150171633252988215662518329376089054166688590047189775969540271876910317650529557738934680443215425140333874301005613282640109262336293839346275409482482005969002543157348653761443864554201334543755551245013353351014650321663790364840065811388096513562972128968677413958709617760924393966863498750011418273066616893956047941645918325124133290355779249380353844045537461449581371294208056556488645046808410702445734145963157332548898538789747740099067857241104194694382904109553200837856237761490930874865644142624882067378945706933970635938167484081850163311299189839664853366052564001863952753725072709253109891760926709831707231185953692016547947526044247778748744331732998222306587127269746233921145448615988914178535071617761239454671129031956051997888798108069795582755877732533290215707599652484513905045303526163965311552430875052634794822144278095134845158280712308468325346814302402889750308409559819661157812751029883901352760014877952266187144614592621037076070662076238455217772216338073776203101809949138916678946240617701132003312564902199520623465818731584807076488905229305044170845748875945428509201111090309189769828936480081505504750026543789259884101866395725642407862188660813003844556715309838934920577613227058950727117146410521451128941873417525078970997499176182436158117381820406754405133989184182778095981430920331226166121199927669441212831850970781474972096446379815655802140801838637031508469827207220259111996912726725797987485264680663161855107121596955808557997962745055990744739302682673775368649875897697865311678535721919672257932356741918448747177982052765629995574296207265962480956629893200895293449153263483881168286756174648438309637142803481378624908692958954603210156798158917995114011436945925416258691049510632756727498837549935417318040817182056448032385305526640429735897848495200534085794290670663197858708684436753558231951562704410760347367476317237001475981278890334654303352749031056522486479275059130476540660799010998027556975528912417587065159383262081622255428123362380784430698665154156523918533869302597721267484131314113704904760162077231939663620634124139001868665618779989081820200629921198341628163868735352940855435453261342572902416324204289487040240892711734000946611324925947418943074124143247654636920528088789437563895313933413244815424644906430661926266375962648557983342315908902006844376408597011686358539107980227328153510730461469670352335350764342127388111957658970373855342622880232518236292531703386548827319322688926081066379872283558357094945020547263608920546227437509877520499106805020896173363407314535409126000414199576775211584078151268238699698550208004508104062170812970141663847736325927152912717152679780853896773651346717128176173160588097026390019583100456580441905994900173715097469501244193461180110065488202955101493703167966188267639799069254516061272187165535798617198984344200642013849213002792265245742632588201239700558561174800488867796091076394534054880506918357962068366378199063985452324415119305362245074968347306194035889187036729211645816934002857035586597186060969913629311195281965510352490577129755234071584445101531271243865983250763073971295531923110141681552766814584545121168035390306092901005284953746485508387753850871029044520404831249840858958471477397841984684587329912723547502403401253512077036767753375704225688334346389495779662724502458191322764608708414845493947143416382482272226325382027637629089693760963715154925192910390972900702409376518569374474364972394743222493481488255163406958220699902100160396923186474682426918512521103026986019687840655272274275698867159235180298211030073961182780320072106383443696048009941336372094504293135330555178924282597020951302692366848771105133288743580854927864463713094379305466395838003618789543605237660835271943399952755959064226090674492917811639512382330559575767047311879640409283423943242055810565409710769436252893347668217710170935702319871381829213144856699113483226093414577639081632564867534701079153315542200999689257522365077067642659124041026660859937636487869615041094540685610105157199903976455474861346767724504112653800388617609416479474586026114296647331641986862249167782293783159264132075432972158052884851673730357724485302489907609893970035389141954879825359545919358678795885247591016833514090973935255112601289561780037555524562460096105775337495816587285737353755774791329647428928823935213696372118737755909844829612875780631361786804189559998330604452628347427668456115633755519259795097511184555373218087080567162154002039701830170273569084464605940023343616054560105933923392318321633133358786805524002109973235459669393868088508830082923159573111568076145486133098077739653623802670243306104380268069565290722710143480261575101344318244695555373802372932027684245172593705860452888360324935273021787582991306475518606745155034469550267850412321847362063222691207452566377751882369970324506647345303049766774109010003890323975266261974920390748003591947861001069239492673986989125290247763978014541547856305978598947574911305734613576356505374344861571876678619578927543945226375895853391844083471909734242183341802892451180691666433856118450181164012303419117114734064206442872031370366129013013368218149787062587324949358541036057358102762782892256781032933186238659602724134860897913965108269564477056559769516694280854535023724593617378054305618016278361208152200804297875888603668904647502745876666472592234150552091083987003282334056020036365007910791038086651440293984946794237439316733308858344362540433468242372822881915445791845554725284784303617897334274156273502227302598725707461962699687828865412148064556529330242395307878913401674280452493455987952542227642978828472140348972952302004776933958276366002056348796255602820136829562443740145928367516451632172852543379953639913482512045317740005435263578569470573935641902211956078960245736167877825921821206209065382340613428919433174507852616428823260442887686627575760285094978678844387296767433002012504559007865970650190722592971818891628438022886140458423177657672420609970138881219653065140454033031842056932738372989903755609367031091533970883330137226382514998179660384849412994717495257566371007956762162745915360506905329046973846047681955328322787423186597058173726370886892734703893185106707802023863926288693884723527978751174200729659197861271597941255356186468944385807680886894519324018035646846099452637130283486306299633196965944883306666615785382641266428064535527782022361889167006384695056885571751536763600698935200543344769882245285529604551552128734976365920135364707441454610519083631807821271533832410033106653098110466707051760118039095150563222533122407954413477906868942402999441312022562167057739532549633342448215115470391700282495786653060220957276591616115316320052555567097739546847301176283814111794343684484872723646667646202820588076989719223982274027291942563987026790982682900528373094236996411688787181705022046682262873488837113977790273226726920079906051835452354141020702735791364670895624399744639181966581151621655258536831849126091170738985791712937929670714167882699677340929407946995446685655637359678185895357370649129342219161116351154800298080882424058231895974048768184985941279070728781798800920928641765193250991753097788229284244766148359235337320147107296077530575296283310188908949740613188114902759889113368019682167470242882117416544677840158882802428841988254339041884154443864948488698743544377690499431680178756916961909211817484491127266311553615646288760615771952415555574662699701478487161542597628800047372405789457306789482337965030984267777506105909840859384329763113909514276172315268507751047538588000484551591073508525741785550643015424492956034432434428714885996020733227794263273657762624527574764154859610523800443382060646636495350413429543805676973053037087161014727833800219735871260255413981494421809110637929808826732443126024633252007130182431148866645448206919643751433660598328197610530663324719724176860573695079229433534936507342666857704839851181126478423394382307273482637365365294536655963834929342121687442113988047621348532106203908506474756068157538999110774246060754947094470388090983611300474444058235149815097217005939159908019059420054874197539775967159340282136469897687186355030049402855120311024066647221818109512497660607733265335575890594711596092700354292490565687734733557209202100341485893960186629343443681533496831973488170214315916996125380701612749501120813067038470740622633813408866858034809436895113055008119614747032008421673044756044968104787825376012664565365141813174405704953910758638877740149414888914565280288778754371116646274137422456278173191937355355820701041505375529252248073280399477593693699926187489432877272628370197826487312147583784062481930330624821463299318366262377390829297476567142497607300496105637569732678167309931717620176878301481573065746341120083230981584295864429217083590342114472513333396475467106778875322316583839425058536479573419378090246722416533634221029972986205820792694245202503169811046435897088999287356168429488900746054337968300446400072130489087739713041495883065085143818879455543220499946588678962008061581922340158444943402131902360314170923347789231288110146114308252663850666973552896037618253000332959332655955324875955699405563367644273148970997588673058285539672016595670545904586521621864009732786945314773597154834634448420757166209425442268817005397292192799468198602828030165628453419251213861406233927139378687263244857853427358746791625798379646888930385596584087899618102008356157988504389633792916336248445728112865088957816416267905315125507681770098539228557542725583395520140901768844505392598166219626922090250997556531197968162195574616218699523490562774946454754611321541575798856591201130152156345432323481464041781479779048302587317794509738319985980696828250670887717285137202618875384808617958667111135011586697730826361012574515072311359881427103921886137400939703668982542660150579144025869612036861632406082371067577951617809886549845212296252045560837323136058447862822726471282691116603115691904653094295173846292252201603228331250393352497295024032890854759270608139906692822329772109558056291314469940748419473049767378165619895316189669291783416196102298361490307447319416034997706466237546934327254038762991057158689787316944719769956433706567878647661570848953031106258524564151287302235916592235757063446055160876241041437436915422351369994914365467739068292260170841262056771952061626861631575384235741845966504229117886792808646486284127755581754706629511957705063088144364657511776441809114046126041283681452865317985713035103469184606679145136298362675876135316542491191580972855146439768181431826814767320887337732148681256346012706036650685811331898827261693352392829639026490913821063487421957118159370968982028414607475392991267238255994589801976439198922246576800594053297823316785126077018273481050286879591100655920813896622973948547365369718185007384658317421054466666350110463194293539961690370893853607128729925781928533789709685957427714779766691182141898195991444908952392145503616927134264598538999193658066730506662700931625725720867004073875383366745000563824960276264938178903265358200518731868108664759897807524743749107780580858677167495230083110053778371403750130935860324467634946731185459797924575514137278855050741821696862309794943450626345827446282848034120607008905856665555125531673213991385904257130323442272776485059049098723048531488549003161044790156035972293169337833149708248015462117469460235217801066541495792500017801922998804907661299882657725831140538497516611042654117128845789951885081039648871370431320296600018505068492535679208821927307810812053220216166035289380635232437096294170958756354968001106548206787423704930215601813073071917619507407722628780685868886818863557264164337854033633049746777874381516059768354507048174164134821241200625555792307182796383556920371768357080198180619414484164396678643693974438004892394225159687255800967986154380757413342679586821302339047062394885086826836679027151412257687045763990431410625616870096717601820298685864997901047510427204527781139051674395612046796647132963875396236304442364437969834488221983903239277792018040122506085085827320064081890434540601970888498522245061212055420630858308848740831003530699886833674725278316232828374233715185133441570382203189128499686918733646028808399895732757569196274491370819371409471188319380345158154973541185707097629596844911582076813229475831496943258231523256101686863382810567022215948283525461019375442597730797459782900553600067337041250475461861595367250771679124175814111386648970930429017981587632231988923324261306673519691357900818472881454855080952783783568535227864221158071347661278843368053745295566223079311598254072332197796973028666516195363065281091570187686747897591805565419843874669299698359369797169202208227228898801140916046512831111934907164372843934864779829177473617239583450510177616933502132521384053898736344189342288268648716684256701271410009910957265875713973296423139311174925377718781930671091915697961179623059499679094336436234616844314002047627364613993429854895655195203919065639371327651096909875592938470905360306175475864808521568087121036072206302394575319644945384138041416336242501494915898140445564941991662824868842976811353221974540846276696612491440823505212562819092554109918943422006387410276447269267654353085688358966358344938694312482677694155874715915557259434842218990538917954291803263873445233185489169634080302796491333832143613515945492752704174391647488826229939452680835613429684131232971208757424168228284752466326087646383187385713370232993981071304010426804498009590477119389205925158287462303232091754925283114264542491036791339454436009345686741265199453410713127708466325282476098427116235309773534417917300633759869476589663917509845506977399413926306078328049520849766768818235405963478776925719203418387909886982939897267350302555659553582418865193585019436656060318063084183500682408186599942396914152550458853076234345418258064283129094563257426818209975243634613108808040831488133812628425867577508245757288729300957958120181588828383815533562138468211265648864192727165815687349360642200936518431790112681591109378351344475880939804365568886633442713110150799845553954641958370684124811889139924345841398063966057028676565420359177206116759083751697334764540404809101653494301970049189135332516618608236318410737346243985318613057426524181309684856366587722074819078489233917452278042629027489176896118218187894511122208829472421220998420723825304396719884945923865482230077139726926182919402520470709404981569209616584424659979655125546155522403742762192967127594723448516093670209674296345221880471819706828810181558581205603834578078100455329406987503738152082737739193932566637612890546745791233644302860968873115981415233769276828511775487141859137238510732993339124073339773779864299832200681490519104934120869166474824426138850112969115323712821320214593271427917846375228516644346190191555972811339569237445375165298279355756763278167646928400267599473550596951284315336035891312006231054111499947327016178177299846099837676463699961821103360842286896908589834118086075599380944979226415083204406421339425265336259342189512689770774739917227134040165867578058254435664587800593528892127288074355909196733860754073169520248866710687308421293692106230653654983906086118936911763166170580984336859390142629694419762992567153605147471708501383972433055752222395808737919590283492986341987603503653022433232926749714981949907406732969726931317089013014242385748523418751773972779987540285294449844973906109457694565821940238093368136885356306416070717847444168967614573501021895872122463390546756808905868020333425253693836700776879269012872512220638623808340011073493154464698396334328299269634841187687480929262995667313623450658736924146759332644911862039490143346381517242727753138908870498809699673443827921564834436476209328759843272800260686671131928889134196466151869154276930891282486677806114243986783661062365575643172795626542664750397838636771378018234946417313316694850108803262941375052018702612610833357292101000860896652897079938109851777175442845798438913629239890456345354703057645704508615082403580505424841298514593504197950866586808030369355222706444088895744135686567764304244117602832960098212417187007693288048445166146726388648006211792322182484082737289349035375063532859600608819556923080155162308614455556059735948223485748931509735159703715990931351516454690834082602242600539569825511531613739264402420104834577000674866041821925556281738143199614149559231405898692364303976919802698913300253487215387080120699017361403053118407881945495309573762364266675686495289571879889891290401584849768301067132425212969624970498839365661434688825730476911842108675373981397298495306599851774184577796913158081088923055632120909308279509130823589735389446945282617248823102338856635749970742412791023905330661412036577380866234294763954163855020501839864347074927947083222630919964733917755428388231802137827586727928101643609530229139144427433035516679279636427680727957138732350141847076872078934950954166453864589607884645131873275189029846678243515581948098167972325760748499054628568405925074312845689050741682344993015289478439827491608786754697016515010978958272243779589062335403990672928397832896291023312236667433343194615355916364476768536005480171013425992336018934569248927172574847967771101228875207151497241975235766942983379880248001205757362540122020768104564189195677814532745198195239808674934598716973453055685035654405681035213608753234294738660283831658389971448570584900365038356419065603321859019322570495296047484635987970056292125320072378938736610475407213758330439115956963706795289788488619522893452837095940289806331798666101129283768852885241049748553375535745583277708755692420358563953161480651274617745527648610500886942456469431004852860799219288598833001463409131045689308294336060906846483323095538914579582290148694789781073651655509622620434568654794224074815144994409277666516061947191798693712113484123404851715366344214145498020836448684719369292650356395566217912006675356305486766790689037960759803846087642954065664616452140869183361745947478424272406322004872999936388034976978137897859200441764343003760517035492022800989783424291296100008178067732854468584390631200784793337748088733056506245884167945683894861977720396113128414732897664552747039832613905144731531489051521680600295645168403762828758190293439923854837633560645315329094463344401821754960935283537853953261679600954635421114831770213568007243479781400248427542227633572118454611927046364908422493734848426507616822685952548600841908977434837488723257946188945494846624705432529483685135842011677698191668381833049724473257286127366252233106509557315176422569495417773410025925288143857872277589278989388071715190428719142417742424306489647407407333839606611189711646726881787250850969891210459985485283464761761212724466661574868636017229439812976583925750104208304501471719853732836397749459228288328469410402437914853748633455048855695997737925027528789716783304922099664319273751051533593846823697453186537841172857319319972583273401526912724683098805669728088881591197736653508581712609248349830776920187171624088915623277442884192685953826059286701682354732393479114202739664480899249174675821368931839777098211328525264344345540552646966849422722533255532093663124237288984048789220819823392017479041337379021633208272587748149256158396491130145422322115048504224057605265260164216448695528079241373526564120496254368873641024314896890227489957327597218362343004152230914776698281523196123407502798191005643816619317775800540621603873632979362508675565059695735329744151528942630025886720605900043900435851491918551851373451055098623061923915369145915867007127447008573003652340958731098436155624474662422304574472427789936691669686636930572681817646147165922613910271642208459176290368598517270712537056950246491116563451840303658824779282144525436820282886004836428366114586658136206090696832757327285581386320145904132864616907006363710958035292166120733676401889333100350789111986001484979589422657527927774606634012792395865404105223734861791605624268910812900019894999005048188492689062317764336714049164851323017282049775363119968525069347224102060478489332112807266980318836925958116604785838862880290327676560003603290164422782178318449817548935256640133840196006308181012503194565069057358548163081075321027758823938009937695386546157031643495811788181134410336460985008236214569493944766943819575428191607537689106706375693974127347053346939164800504983846772488293970689473797926652501525592125659703909904277196717139953451657871773638862696071027881498272411367411186901650046568645751993422085005647157232844944431479122735839639735314255693794408306670121164794623760872869117550588390179296493084859206750908808657372282133595343636080238814160774326773623055352732872017920891409445925474416690947998143377353410134631487029165135245086536775867671550624552976465671938977311435387698679282869388750426881197224460805486353294569797388433898699910444922607238014922696728789994019206858886184636138427726933262100301655747895822201197983900507678557552287241795890442873392856495844653779410058437490882061994802403397556807528255020873524950084608918207987500174689146467618686279179148257140023069386422322941496409796479924815460293002825180394176016907553934411588793131917605611486596508945735296659983313689801268668148089009019268791074523251592287219436811126882002955247227328641235428209691526759828168689464590083937701076276237690931372903527779631109861479919461782363588907113168948650866256000156758510174433595244758816218002616118003245577744032617917979168094687358102450871468826399683553231215663363280617119589348321682550391923018070573975895868701985207349568908484137497579125499916997438421426715839830755988221850364426171608356331615233110534485409806951309863520113102403189575426641240565724447680579726731283321972231738731698959763304401531301236491247541492026381595921931611853290014806983134595337015613272857585630388974943910509365293163424159762407401539898053880089258831435401627028335068985209085724290868030945260664950917506127416691711226658421722446872375556488509335321742418913184179876134899874660675781694925824217733932533829822940815706827091360286969210930319850763820885543616685065871257007644634218343040851752469586319322809717443146868074343630025458257908964954085942308942198607516176724932358828290036685646387599573914018776527474907382847579528912408564994676615570817542594426837210377239498499135503523501356807190303492406247679698166047584666629234081900690590205173758970708851960711127705630110321657164713094111793093264245954019273690519899643259614744652055755758954363983128575114418187930158974916650927856193250456769266658412716944428231532061508819178261308341009151345544730181210980711783007978452352973892790389455695393042013477798545282764694672289869488962749709957097806261828704766473453190667146667686241966222654002790752231438310535558694488900789818457463490342582091720485558115267076037880461903351896252279509184538051325121976379383388215725766006688402856446449736857263861013714066861377582176429491128509119768982756856281550859886045389438916042829756924498112807166599611865265434862419269773996259224872759976885240147426020347180053202580744357708893976634477141014684156087906802427404583435459745998376435694858715356130618469673822315255114026127649942051013126387503051006102009689786188405990509120428568270213831655822600711910647795566466378466937419905442184569020542521907453887311228867648518536014823542626303996485694508349749030351617759351196725603400520060056561049877818305721573708791652289145968187969716309484439978045907361091616833801586289884615042275743554692741859180180892149796549904528131498113458788562081663096053790035001172196107960381644313406635035944943968782302043475175898087690418209401189661026750417310348412850187094311169057509103782889705903337053826439048901077419290925768575382671169580783529706641292997774400268152752837916370246706384846783590158603274939538437111627864222413183824091124327535914586373182688536265902406665195349168562789785820616254507284603640776867643870592221449766431313795563682838740384213960882690044863927062775100305013576633172748658983641505187430998166799024779080754074329388991956783609470049034067328061617502169236982739062682534888304745811857720029726966813516785465243336163433719847751988498390494834514402988503598806318639211349394654749729308271842105543446229333216768572506131126517844767736616668605499464273554520564750581935985482448805210366849098480210112755656222706222332417563058190152755245379258695847473052746185606824425442166817288877305958239638023222526229902502072333271922548782099284243122811283578247174496235406223527688197705701892224752005995675321697736228594957936329916787939468196082310657285425867784094701809444636256910716162457352374756490665151782060147879152260982422318107862050249431923208067749944624396713317938982812071471690295106874878349575382751298602096069566503606550510690533865838597149292597269771645668810514446094611075101133301873579802936417659207296799303146801057105274550439862957423957310526898143943711129146916434225005716061834483144657451385607478027189337492445246334139114857912112415205892376039833997984190398447257133382961448806405526671232480662424668276064189985386142158927462568432740863915730731991526413432175857332886881080604240148070560737488470587239163997404281107724246665715803203939568904124291031890503067671737318939977672179520997060683742812585985924290624304378785300163761180852680319674985020848273554727193173292090427273802863232081470433919625021109572205793655008948428951838038238343073151109332447793305423025506304585195739163439256058018101775768905078338275360414077242657039854751930445640783281811775119889818290347692706012476996843012499543813583723122344810940379327348939172064828520565480199095682068748080905099377599281288247055436395847943724970775560747772653184447177106711689404840855745880644877953317188341383629438293415075123423662401651765838453633894746730411021865003894636680487984993400543680646515608239733936130600837338717539770771779238004038113803867262337533949583746030395889078811687442602639535216102883927600497988568118530267082010718404237972365886603936985600303124462483330756073488341157646339378138512995755173944924753156962376853571971170470947939538329438610093023556940891963232046653895539686956328762000300511215671470857009140958277919924498103808178661898119374735714881814809555860790977104205222686597504892455457761852232530573178667985946154030087876696309834747510891545873375932397165500350292269124179712051691766569121558573973645429045239229693351590821496516669832960988245947771105814894701802562337126469262556805452695479015799013472479050904534939153876370747634911002274317747472181742783818914824329726592531918348929472747245876236085718068555215919093691043790919247251641707150053413354365594862298983916588967686091532338332403418033560473370997754073903458738473364310661067928549218856736694628131606639896388302150905142072197486473848015752327219434454678251745106819047555854297870579677190366960493541457106888977616633776832671520158459771049377374406987159122573863717416570821057314516708324526579612696453953484944073989154661519242495622420189614341718267212108752601647792353769803190932596671027069150007328674156515524457686895433052827940872213489001140096788406579736215294050687671310793827827014714341835758397207769076289694427631949971772192391524097325870859233697425973731875280877400736362027242151559853672371690183036254273041778581808425551585376365751898253554838427496291044380450225923836409484962875085538098799966015622973416508840848910768845740619224449341646551295679229437960622125376458254525892958175847456738245399063665321119373023993515461793703017912986552703775387652701407295117582655134460058257976888300987989496388100297166615696183942051221917895138749235696851817961546560360297072553329514735877614052495184034919968483593885608934657079725857903208017551365035090670598167977382416013705693054305378772108364067405018023011514230322597525292805390755082375803847095920679007691017921541493634698709080714989284988422637501179980554461417687323686071805740724291465606592700292310323212053656244424966221489660351093651691930529935183349352233101459684564950775310850010536140225374509621472997485640453473387187359961288478272379129856854990502973868132562064463184643962714505376859166244555739113995875035299283452362719391722671481106316554833449978369635220363201547882046549904477248998773084753691515651744407930031346223891719862584678172460787969973057688409844910574891943267100828360739097748849494666574612968785551239173319580615160956759057278326479052225201599315355272489593961668108499122429058708428589898901425395790955430338692340403054821790443656915210502120687666522497458233928616546473730970460474342276839880422999115936062357068968807782652958095002193668813285405240586395705521635047790897067443604519384373505628227342560196777877660647389935874733326838210858891478959925870696061052487381758846922921398023912443281044872410363583418443178399082275673700731289845069244169201851000416459930742133931000022152532954665752460901894532213979682221329198968432112312161732312912061570729443656777943426952481512310826092687843471377027430456739652865760471110237755549611444478655749250743607484154001640140015378908680139312317601826651089867544480102210014521066748529512629570719589322863148676249691607226211488624592886078524003667861807033178876597331807899044813318745547664026696038973702317174431328058389601055911672722883373069897523551082152036002105149701590794521310301350461816361775531061062669150402159520406717395752153324078671913351528049165022217380974983605708375086673303875577501744389061840121058369242832931927429785897864798214332456220084346869065430079450381234701440266610775602825429392082387163931845364239623772861613492339278798876787544110130576063941483443086580661494679036576581862776185835713822264861771552031121631899337250938084235148380779210418077529848453607585160082569030088170020041060604222125021477990068589039998712063569644905411169804171254248175778697300214085799030218280430839530764986843839764240716404049044839207491825060924091051948227550986855961140905458571946275978336703597704034764420890700089664640167140167790042456768025181188133847332947630100930159187945079432475696250847283790043216119649764893551310195256266881880110354856673132530866230686686591091275850543234686903035433127083698067528110843966330846700129053773982268995502969835043476506564157476079382365463663895094032524752148923504508041665408577514101623017111891749559907658657630233249668863055448624397785505329691509662531298369574053051025276786265899317280865616798949644294933096100850386369056775784472221829632365270721269875988882220905195453736490691378520648025146786207910998547661748034142662885886369377759781189117778854177356227959836232776789612447257710064823411362629588395781527596457693540262523294265225730177728333318971266469295940692832229133345317991111680111684892227141022873242243399358439572865552091578627136239161584126551861453028339422504511792870939738692262633218822421853232871981995992990251773592774085071238736158272187727249261682004810776140682080124673207479275306255561287183648278302086259366958413269164093520416065988587309282206691697920286489153924100020963288956999852846614444891757591554352391379161593670929354139158950113490734103293124870473203733991050270787038961892589928393660494516548445978192467064272185914260563338149603573251183204201789065845638007362329410983310806785822601324807940518566444190745198844709479739385806875483252718691503236549749867877909515552755944610270184882855696132074259793180879917783256107191680562351525688859656447407944033822680789711882583404115063019442696044349794563035599933922044685487978549045542402504798418626611064280611616638564756868232967635331793505023938519580976878249954658607945199432153492280959791708277734937026502320614632591720665267576556155341532954795574152944121346439082502485302879112094006068225458807099096893460292462324807533180818175952315760984907630527881348674844919120407088163408563052401709278800161482470922190447216962108416100713029026226207122785730979298716474061779903461814278141502197159890641785707654322345359541159899127203501342516448594670439043329731276654312058317947277039795052955664634616813417101352650613473168991001904452270712091312454253305698288160877190161138711964394159220537042208127615178194277031787325605618292811508603924567085355129378605102443091489113359079082999562615127278717056027003573912465996205957018219556625985970345118636294114375601518995513039258228543371213723494105861804150209534234641394928120723189458068867747357657615891924848497250405412626925602037964358434532491736839130346751123993251106047149760978365698261640160875823376204106710562179268355785960928274484803688986411184210592580677755478780695072949931136856753794096299898108922049217018462362029300178617763612580276311279388269502481557560499789348786937248355803794372241778112686214897220231710759648233794567725314437096218357269324310572913668797473419326505309648433146100597485074008465940658508235978082531876494530708534517328331427235183386169745809254899582675192732211268842058738234182459587941023061797097399209297293625094683165984227044823456788635919741944782664319256516265748296872421507224100445484734596422582298586428772738033215785228702064904878350652257041910832664227902848953316014565752396582496244183173660829256678654054762471193267633039339634215251643883355580282070184196210110711911026562820703638915762243014461716783890386244624158797554410928867790744511051074757537091317208397230874467548355797101482841928240277376618606497315545049404779003869232465570649262997017645285343466122747327780144284047628529990001464968093365186616530314186141299683247622916600021402525317713969256797994952466890222915619067668914696556713959234181898666467617957717365504294353251973444529694668282385035460889975568004577415840788331668860485966459052638194026995998482055294370588390731790344866080106639848627371367203124249403965219889967484353934846989718751609131157933652348620613260329200574612562024208611711026610961526249965888699101202548825561424367387833547711804952273226470157807375088865439548583687471653260684555517215410630405763363458684958889105231388833034037645248869797102859947229565272500334758135867475451933825495147221545861660367646025138973520751567737700726782807851377324581411752671820847271459447556360139061859713424593873135811988620518866897584164824307981268709031843722925874044780788015053308653388676331717068635068100652700454846520553218692479822952753178657232449675847264757247249109407855599757525985236394779496472798038601499575952927578328790764412972541182101949810026998721882545026171557447141021603742786158406955697751164143791932107822946379742844337087787104478005738016405388229789522459797493815669569246046758832186879632866416062328535360827888220145340945996722604376502926015303766049089916065440722551968754133459876332426100371421776643882604305516007459684791866202018649682587292367045143933750937531183930163650229434991289439719329674560135064119667543799765219625854781547494422387680540735382299517943061194678015506631655195222012192548165754372788932950432452421688498872075825440915412244864756561426558266420280807669829588232245508210766180297088843276946019587723612709826489211859427142347349600996370359232830379253293158605417840938057549385026942190771470403615201097813450186656405047745630042028476665264031050215090679923851555394594962342834426068542470806149962293444616959285166782068394635923974956082958257054684804940339450723653447101174239387287737148135759871240443328815626105249786217873898320009255759291801079829066431743987856293079264612897934661387773789989093433303173148860273723695151459573948109776475600302110385169265897267731894628411099135130187695819807396015600030049755668458634000964195979891805661918856245040431023130042682557402869163552962908217307175797361403714204614937093898987881457031178552057628471273111223985609123172994626070614784149139594706875729646065641453864252870988963469142243867300138488082093661034459639439362522818700309748735346642017232785508047977713492516298332846660971326023713767634888599416678515579409006350027713395494082788764809579524871741279399494323615999303390030363122208733621531807438262913874509258021858832236987350699951411417974271139880301943077306850170505064684521129857358029795430067377269157797719384029047479348337590133657245859663744530101007580778396383413557585689989187411142989289038722968464643177370247369779887010008814815098311110842989755332117437440830897124448988343951318783046021446544651337265938918327112494422858473875908346288873874048336398246490923491684483150488004618629324440425654890741046739367235501334649195929865009739130048413951814784753600926252159499978074281028226819264131258161240279762888322729308343293037089902173731176415680962949799231081539049121020088330581492231663108001267107572754885745295572579092769412901368062952014796378464719892959120544120259595848217346340338529011199727458993415969494835840883669720277545930109092079520942412134733182357565559229693071825213100766887598892853707438993909084936575234180559496634861531805514724138365499376251684822865174090974962458115173418332274538988849313161815388329483098493846125184564933880642838516685984668636114680983450933815722508827989798588781171615354318163661109324203155586786449259475028915226401373851264471249147244781942794983737018595859087323463954112191131559850253281852323463806984843541683669954526976073740838665319032703962596621192405466294855364636876266670887304963813060722477304401273950581807813673043153384516212231074737310638082996077053873732398984905585339995455472473093028920307429267559823836261286971350948289081691597663333534595071237095748816439236127552326060467775479060542289325080384653101177145858137331987919521354721551027214762473658525266903327699229386509300044775678897730772642144870409324233922011227550828728527923377420074946022030098376898348563052211130111740533588455764958401858483571562187646909565722202019417152881987927297713935774284163373875299900552929964663731970045856348303917040667053327110794237062620062814284045788060569203568466836678241562067843587453219471681470914878121041836809296979555888679423930338965931465675592932576532313764542387006388780297964853903986780547625949455673960197516952478748592550592574452273832434098423558397563048187466522582749837522567630258673088760182520061946235099580495763985541719899998832852365742324757600725254944334543042806243298420876542461337995618748671810196886895890355220817982583126607746477944643340791071559131850325963039254842515923082026261635201847670643322589514291461957530517291611727962297785002102378287397290429390636183419743037992532911493151320416590839728813112489573252992203458580575767101388252958896864449238686690099616933368940799860061263091756920160500519028666322866447555066054214101212621916521472840291274098659220871996658756894944380170061367224017421980587609862686000143790734119752415151505692956890194215302279828589983145206822972102762146483256399401853130126305391526664941717671293286323179745489551188179024268083587773438393293762216612178396024179513216435605506393546209270413899405754061524681279064607468685732019305080551697702566419183124083357872630287807737579479053785180477501240359485909166036723751635378974181349544508550974271352221467999038858697315504547102709241188757307456644507492804699316655168400618763239360503919048453221489501616427732382275051273444487609100141758788010910051708656326736632552692321083723640174453392848964067367573660126527789160280629249933554160760505943799738673336897141404135822119873105331426962632609196386324674617758614869097153692878057582877619760568335002726195292995888356174632018188877263162973089607457213003788749718273014723589308416823029159856976630078609192448387479408919220550726163600093230060290998267976892437260358515247292233563479423061715492813132986038159416637251055981745275145982595769498924672730853267487766255101348113521852503495868725856079501351204924910869051664163905170497455166727923444626831197178791230945059293051568128116098056357957967672338955529244919746020387582637223918249025024162402018788469291973167648448175048853846684707021642993257215732132329845826049452092029162598240741034247064019577467248893244279351661016838694006513397514756475552222510313470749957525607096308181210240889075852586708255768176606185109909464674411211387694970548762533684797798945607327243553211735567060412710132333099166937035104953561470071801363521983706949934428402974596737234354124487737526131316548380043716259202122663824090142507639651740011522625928996500124674550790836880006917793237006879930167041962460304134993512069938727456477456396032463736841414158092881007281018976370446371718977273569971759456452609870424743649754921212698279549045491674739737280468720218972512034736382098915385232527092850871440056056727045064750298238890711949427085799456167880335595576568794681014894233232034571444092502012371464746694456212471952110485374824904735597960187456441586260078060763777003173709070506717120230934432336630814779213562618048019960796095877891495714234005055679026890172581103994235893563422029036567872896113027075153506542030243227685892783124088689755793362743278736692521539745471557842267123872362282216035199840156750996422659613318121387972065211231334784900437629304874169044122108399563987847343945498958315238811092926403879849625325000827786050187303943324932702540068629461213030100236487306212052137731391899298401063612892069012349412428589753624909602144114106321809971678191508817380677799524656908067208158217932634851003130026641226379150663707602138995784089253007419526084275266864721266902115829143784306456263880043066912067013114787713614008011710144971948476609999290702606799882246751821606064803781373153494405456998973684003563962891887230882904301121670319226716922044198706157030283880596747931610773749132827435709366668560637732381568497163963176951982609929890157032505903712780894806931556520772114817198506305188529887436845726947779221776370516573266629137483969634869779507845756884546376127743048078877824891019274735433150067155452141601797358904153128524855986063801976440769048476051907964861201533636708877072040430056166638514560528173701039673560649712737366122504469316272604667323023467366389102588560487641057055201951920167689079963959735733767978231853162352982361065037924049342973235790295309822980014484243034006807360640737698179051763178429848147422682019280156927838647265374300087300116669160645253984431608088344953410475981507701977602968275918260739901100297468899507401163212537320891624553389969426892625326647602297686116745233731082980404294143052750417376101602877961266178239661822184395201693810474062443472864435641316079354569943498871323154246230237501196788684076158971982459344200538004983756135177364196112691790522401006221001693922010710718215681751653483798921852490379457679996275788828340682159899924496239159846640490138140784626393124014880505115383441146981457453797157673801106575438942649398592210286645808213912627034334429255738317799819652328562257390797203113626249483637317374170774170171805206021714467327293924662990070396029373897565831637055008566310093137202002319009044113375254390955344568558823760891784538252082723738012579250345541967699162097041921756804074194777712972328226336275044494319256927123335109674440796097436849398583748449733756426544164685228461168545524165640136504212010511380231836341262547761690419381047334588082447268577134606444518429715185834116073881779730234214739746453377022332030243838429098473672499529100935304571332378761031915120631056497320534275479052229200485512019767166885425416177118323973519844727002591064889172430190562038670804475247567131145769608582612597955226912898275135248752766166191900681962887169452504993531281030017969572843495965599989537317711414628452526483938574116756224229935978244422649580236463328263836965186579941851059779869662103317896049517145473986592442299267147709003384486921108144309898330681050158344057241985411674895623240142662885095572753558139487308254659994991081243738682374976670877186240162745830405887011844054778359774566021879845511697928933690388694880409361101117121052627584206574292448697628072160955990344024998173136717381961994250616374687721315841317211199074959973577834345351307146070893920018970674592247424089855358475861017326217749945144870215691511165090811589284729412054205529493796707986452394725229546739837830692934894524243910086306012937910644459073269528265782501609858707185852179069674873974936505421612586985023141961684615919357189119250183655961346008527418150460668415659334648737016406012416393599733600636264870728391368155774843778439339997381163454036839041639125633684503376504260731887080761158893906186258220696266377885817410417325352337047608858537686392106211850150814206236532022243172269318256760221877883811235572403652054390969388006010159439785328720088974263313171199478313468732696413514640853041573316161856254119121068997225169261572821702506558123747583238907987558053342493948846287193758251462633902981942333449939044769523164532200386101404482339205906028238910263537403530000616876801350059878262311889732380874357223601099864676560900768405085122132040299247907003333365914282008371812564359932570673942356985111508955821627104778187464027620686868688559608910621962235525965696059438137804622291242710211382122051157477586261937082526001565841213213790787579699292926848219193940210037868649728359881567072291915350737926685974445529717934522072163358230467520152581717963550029059692368317901708904818719620997010382508077650263128980795655063824597599218734552017874787751344501736533860442414950833332090322924068227516644243419208100217990994994715245284386115204147081604332922038424590783055390823957506397788566429262888788385410712345744105533493300753612834570804678219522768103458560424464889008012501360113908366901808997505322652906923545257127633983008994359020516167969703456662480494888162598652710846962295587670967473748237829513471565884782435300688816494192374250830490035797240806697197085581185527991198610107058854934001692914356878370849387691158124533908895207073709474112696278903287116189640483301008338993593992463968094503842426166420781409214413758505978832331035039216109616562238273328751775048651426736295134080217432627006983501227252813658974373396837618566272167028068800658737865732047303312599032007545211657283128718506331729538910094831646728553024878331214654906507564439452368605710001676315647176406853107672443192875204224391142747293838789140476610270743429666880977152887437944116968400569019744549510929925802300002887785760653786767601312787906265775841216049176852833147770757233270777595403752401554634286353810333330091200539644122866847476144290941394267983684842250713236280350421867258381676131138899506861309827519871785652920319036418444523772416561949777516753106270892302429486062897438897470230053107956813384936114024626979501973730338127413918624129092048197322924814749994813024833139697454091096174370083388789207563984865527057584046677524990858176820190013440704373379139443337520096010193029854955557726218103658874977178226595176846934049742304536789210675258138256770509278884773964167261507248661088415912740347965306867534082265176279951268070576546173313313593568106325672668886910616931409781746184424197432840915971177369041277537297635349922444803003635527590961845764344068602021637356250770930406297574956700065722947773914485481941969997852813794458100970330005561885769772541766135074620860028945841631623187214040133993208532218504403649219784968067776078580278272354655653403064582923760004705831994065580167379636545442291431934981259628636996970932264819524705435873528608446647332122496905125964647769696756697810077636290229863110051150719626512454915741387028051179608943553098157377786287014005124059378831851519385182707785988698583067095560276496017993729541894169632552075992548229510748105585096833729629724232024451468006645260716050151471872284661995123442654887330023345792964459342610948299001260755193505027886459699227638606591336884705946005269692099268394935548821110357720426234277705593148780313972593978600737651257746699124028234159495523702453709545694171168122081141312092376278891490563720152423693681474434620120154981774092315173402320826761334921923838741929319529311334605562759219057397643600415460043844968743862900241346874852030943364887217066439906743786726710228576392708429326819555421261941435938105615217017124666173743459345729294302373771326412135836208725387940572976745629685329213340703424991896992894214314262941963326195240745546123856608320922728250656406841842383986392965180641329254723015630347316841071419750688882549680299604088904914337174466507673454537023928876584381437608362488576842196477542736091954159388396499550938260037723324359325240829707842505751369682620767952151357690734255527617336427510072975160008806321571167414343994541455176601363776161355896335331475421832489104342824686970739338980523179401574807618936619880451318045827655570930196411237027473814585431969504305975986259311301030502536554134056905672272160799865851534651528990450857957759972402397378070043446508808452842789024253657324242023905356685182297871476935663422862836770382136045475499319295857981865890299837284855961708385486083847764403026430101786164518440127793831591007084083638744096603361125207684601924228833987560208506117907148373144945846421533574388474498274796730285692904902430333021477202238111281213516434636308894732041953195142091390211833772191980206637546689223711583023640291448404061774627006491842255248236771891205983467591301485715738220605756278296176889676071792595623451623805287626896008314312835638147994408648377591092373286990427742870401376610960704053740582821928043758754311398647032136215966320363678198221835392267957249140518725848967966956658735386369629967745632554841141567746657270191125988404288550995785858028924600746342843335611664637479961123515942749653200600769452830132014316453857414114907711576051560588030921522675030925765523719401019875537810481101660578148703003018613521034997730651050149559260035150206319840981671286251344579975534724064594640580745335883622930283086441430004372905983875637471737637284792982250863322218554262466900571571900760273366262726237539730912549576690915791135207090403304121585061090326326929307902534201892719646874004120379200302954684261283241188703780390307365036576866736060532677128253561023798197028257253284484868306457796545826959525448326139256951735656548727692451314200370459649207801650117770151151793034018980750453247037649140835016317859282693916807123100900457209430271153400437071339253710479007351303800064806421776822096172721946044123258708682921813369437232041776810332443341482209376490538053444251499458862124423362145792669476190299770890325065786521082332936163337954385464524437477220744135860884564820666438751867892438856764131626457862326071260305105679129504446110211480949203555868963228020653639456734510083009871232156727977393640110944181967633167584681163129231239318083536539449613753956020084737742976559342171575125523515195961275740851857757254434940941502207363351522257868164978925902368927586502694116370534163818306562140166745681363668177030458448779923032633826317473469851340363392812178997589315286365673732715977515775360013692214156739276779494869315008515510048354344852569593800741384710718148406404659895769089224862432194647168268625061970202690552646450306782539522022496244951902572571608454707629404178001433239043916471521664815754065544740569883044811736496784082337611180379337447980107564135250396117483994039951694254935318157497829319555655022716893577183652709008149004093151585929446829110569638529784797764976455586993819851844860220586924346587955405112133420808207859281568163299713652688824903750957783903485425008592461627215028171934553590635624520358188368244686358178198218359328467323445662907345336073963326538691087643313255785831280808842928461125625974951770322216343081109106568107304284970457906437923173802026976491972266705985444622323988723902576990647748702678478047894534751811344698501089774754043382873897323502346840182840881681157812904101443003294898240400303952482506334598377877323337758088794834376126493413062115758927428970297249888798084791817338169294040251230806210496706569720757168130878052233629683402496439419444644754244592729537822451205398573203605694354002406217971351148400164362948914580980397881887772611785376449609337018937389027297424132658136898196875298193091249602672082462313555439155691447348028020447967120380307754002245948293973651201359716246640826476510501398938863194160504406142344742797503754130723028635177476634811067901071301776523453529806582348762246311043394872755103561079839140605292540289076405823014292492596276153894975561815029977796988014881606418424672668035603154609160506925871930030751214631440700181234067038165027220134147370252759394136147830110820974469611445164936159206804581495428416690538910289730289882170481825526246662881426577471810818903306087530670634761255777258403093212801785766380705113769389235665742108591149675284229636305266022215414589107235608308965694256420424151912845638441763964453519986513938774865779501850307777620191345883797174044694383222451446393261751160126198381090172644720792638436668649785009661514375159565069780762989294032149761560811649388993339075214449292324786559364319906515087706341663396429611479729696882075614690047556916112465788620602631531626691117629545130083615978371538230812063562247532151240519923920621287427186650063975564979519072028666954849367544100103797192017880633643156899492570212952352874553103068977169614935588359370482073385901994081653244649936945306871199363732436816427103735474938460040700733508198131712493737700408978672122044998852089519462397733841332793194420526642432473412585687012730238266016886151908769206641949872545670842181455762786101215995692784129798704107670564207392671008438999997122526067583124262267515363248378192162629841200224952623215124965277080609171443274295180721830242349906289772166345198270456039076543491274221005794287505569507663155103208716123490484782855193030671643908825100311574596969622868763901328162724212501564667804879725673711613153214997621225017705037152127069570305195118949960006662942796375489626086804611264694954154397310975685067000586594726123861363414008457537036470773528189360472804590773869866007018515353950861633537879322994255511156180170205832497612932415206772313690427203058341628171834391137621856325714496359207889169996507792615769747051861514584065095985935567576519314307800126440192168301455871386486277676024552099954886873195976861407535448742809764594743424950615974385145634128936847164344778702074246524123495830539288324461678427700461388544941624111406543684988402369292729700575967561823750864266300911938011151874668671356798625136627700643923768364996398201734449356184201260324915235490256089918577680208820280527705667900328654291369241853739320899936841422186688252879136516673558751845670655323921219882468030084651534623252251744154490934135801068686895402141872128941441671391010339080834275025624972712806815055251174458234315420713754434282676492273680216168736809239191389087681981878550310338985976092078529694331315459902757785995610459797401465507218880945447856410360237179805335644298450509854227747109094949349207674522739968016303987648897265711887668818149191935979014918267827611849971877328607372956576673820075341529132583087899922361634125677364827599158417120142128931304775531822150805256969162920213203237603725065988078889504484878607030527075788393480077278300114205317742878129789563921462925755760637406956680275591686152975451929964749651030743504945217042176090570868559588604410632485234106259612262053193028609974802498144370288407165875538482474678522737687510145140159814848206390734409185938984205302216615334699311096685160135234233229470711702561651485438684587229553987143575722366624801075261070221053041743055141615552227195439697329942795698507108001981120338046991858507796816250634121116584030021348501192035183127661545203101009066037518850662519023488666493153122248753938515674882529216621503315190302442204207160646497700648292365444450350390916317705519503682247688617811011375450144951078816626580648648369694321421820640592210285762178506824810629286082887111585613290150486147907339612359560043294385478407492200207472242990630762420422025423271128110876136213348619223069488603477664135449945301997126200955949974752587783006427310609410553457388928080465882927047569060981587274214480785508351095675235166227846074319576796360008654790169677496474934707171831769659308616852845678684076620647278162064507931066502422589732342222075291466789092598400998242201945034850196767750731760753550767696196150414261212310623355244858171195344314409439144201184311859113409359685471055221004419286724151131091053156540814245199119772485822602691505880610250694435720068603752798892630646718083771290363462297264341942399586909683692621354537388691937120631095607756798509108839070829654808558968159835723220826187390532501907493971688914308168356637923539383901472784565008553816504114000322344817223500402475611381494274762725205105677085671985753755658951080324639038653517981089447553326556202765645906588279106812952312840803961540706532047164089907345261317166065109162309560263021271164597443416829151863279561962367212656761955273446894253515727207840163989429363475001935211559517589416869201964388436818791079401539604618627600197755960955381860947168164339060764395905994513809416032210927428068096300351499725928819992281859331682092649014574223978936240037874205100396775481170636746900031565812818410568910065895405897988112001786474307748767395924913695591925484882118083917856649235849726631150317648813716138222662191428270276756051387536833174345126918092096141546905867556937927632387998812958085893329493326032174557043846717334031978176718483522963913400387842544329540400754350376491147892709510143647833780648956044572091039949949277888661642281316743737695156283038167789961446461124622092210655298930087308360771949451932546092089171021026868815169845162435999914853288232953390256737816308259658184683533111937808806694196089066022238856769309269667604478179087462340456195362872762031940456087793759136103403825233415939768050554938341195468901952324435360055899215420970366730611913224194879519055561422899992730900033461401871113683351421672978204309021179453986448907673672715416541651056267573589448774220829532262081829574522335812448593356752345920634976151388649172216188737394469269230358208247506890019766022041088537231865528750127668207559715961306108609021307719495508446264913120838637153566334442003719175545486493591407571489058625035568126856477746817740465188674386348117219486594427916622653720152649579287393945969210722336813465033293529094923112730224324322204291163537058701267715233402459392518256983235576572795720317419091675222896419635557527197890535682758454709384443036934972482658794869152464581839809023985545904849544389162025659253285680970722408091137980100440851110088001266253855496640463304780563305903847120481359561979185258752919331585387725673314222921599137403473551419355326134829177637125086816102692664079641047987955500923992605509055114627861945029744265356100235539218797090997840719729754047249994652870379019333424676739760539667669888187948477313325467808388725534779455997115422294893086814104080623098958228926314432295024768724099363085129316398861857436800350599729143789999661897238519018024418355078140708403452487906788382139581370537586277683751112363380517754960097668837380459050537372091408709063831896719814807281133684220416782286188929398510988238346426663540153154606520353916503707308757134515209636308495714325880455774432688052612703555029367141110728530512789827023114076885152328959293494679280948551797470452958472133443172612442941311888753741866407078058646696205449089571775874967300689939849982267097607879452731498940376704265971947132383564210844596081898260069274168750041377322043885842373678807651993096284487429671691023588719097399518372420087476122380234493222330677528408154790949319815209933589508020685233509521362740644696541999954395127304408777528696015291601022905501043226970354516487985618116346841827340823188849578737431761391010320914206706859338870504818307252151918770129490863768092458487515387214718425465334225865824776718975364314671201852676905530708096658177809165039886629186176448277850241967701495527454452955597531064845833553035154475675471043354684893615194178242353670699893266992986361211315382742285834572491869799580479080586707760134094440952735966975517447019378443516635907136042794684159311876875437532569700965118420075471229183306390032519208418797259203837709060710213000355428647503194184378710207035124266741527054052468854064890280206450141193154294623671440089882676006648437199998698540172378500777741424383321010990481549494413269547613966242753888171519131794998691998040697543478546043830151539581590185398007927884780630901513226682648087807053512265219990415505749482695575354189642423154991766004736158613070267150207607504106408870082526100624847131181961210208329761385612971662852453339667504013426513246136115073042748136133118508304103025765803974258092793378157648679114674011468057505990484553551975310132572443955634124001061633684769378729760454326489688608566569028944368460801125376158644967907115977719702633482618026371166703009986772780476624065862135971348460813234912542712344491287111895946928591128020168319088876204649120784197281750024180101004069015898478789817652570734448007766296947809302870648418450633359744249758445150455231654352717053092703503181633177355571693233699525925678951909483528659424762017480088976707413107906229207582331695369572117901904093511895827251810053374777663622018231443158289083872444408225090231788203225197572800258474567661822889580319259701846569883122057736186195924368805093632460116958741337551315495096442537484946935293779028974710729402002836674130175510420827527927817582379338288025381363219564609112531672276394456161621723277442482078545696766646573661198677867439482906890710886169143814956346540140835309671502121379718432168429879928315965784591220764216294619888148575183996396987195205410559049922771082674266362119169955137055961908446945555635174919286695863492365988597537860358511064376866630505959247543808290536437440670349162521971453633937805447409245952519647483650651942011053744197650596518315522024271477651266286074765144499543684032940108020673216144667808229103915144356132120637034924514490215852458886635608060523331725824714798997858839313888830325581982808585969227998297534155552519671506512156300052593002486547265799927202093148434100642096485538128344901702094293009838533577722263875705761039650783315470278791141410017558022242405879176526855779667202063056368453030381847303725812035350303527668195898601000872642572757632279499130075690100743199787471971062182367332343474772156523654718894208359555372388236287385488974185604228501193028601817657472732218410075066479288988346601813391346521070617495962808581096116903943371171555911250659856609536511890689463347166920336335769185519815048401041259854704718070513333318855693890810245348557250720376416128442105262823360206156450963413925730625369017817233539594035420255942237366368923584733110131483462344985230493444034578573723738146509566300342991343423453333178233975559958320541299119178875717504183818311978516632942750212049760467069096958290731751072727751513875269196984235109983176157081723086543099749174348611957326239963574446701612895105782634045395739061625024502048654971855735012037366238124629508093038354445445659433467385652482313477711604704621535734275602591832538472433783375913616217874500345993618909856134908721347849517940900671887174784658328431647605353787615554628278051116487575415365951615174178573496434599146694798752966599015857457248126661630585378755550080955373164965396621553694052034404836456062376642970583439971763236961018212448976994124798240516599007745917828618877541746902196846989814364375825716883234054979684823414366082164246994659842711861010742587276945143444521861246861819594841240673106692401992712422039891411473123212712764330555300666929186638443082687173756442515866016825856299471941880917986186719740055753943579794960683962459767498074832966896046712689998463383284251702229942905417590582680625343240838351766527819300459678959950607329881164638876794769064299116249301328496846299730806278077475685054690810124620793545432064889665158595988791481259722369351794871355410193366736646109184680668843984632735252616764451290812792010512652555513101853146934970308487174052315449476397115683799089618015898204826276785950422989526520613938396316737870492740424270717513304900590703378271626440137629130136750462833273061190406226379003606968937172542679340932912803833509921776644879457140483084162141702553024927547177850709814570636596583911941644824022373437564536494960534298248478027258563343665992941050697088011584695058237573126762690336882710995264016091892567009919859205023452595159555128818182910815818085374164274809496700843823867157103486232995512462354927704706574641489387062652934006834038322717284144785465073020618567008836239245580336179335406857470032578678047620474504631091997074762099896329533270670574412400603229187598815165888089164636098690293373991403564529996587484866646858849296158117283981963134883466343386274373039395190564692343452768406256726135136590439666424733554991550301792364908280690494914390341227331510431938710123183304891651607651974914315451529423475242102547633440886807565033745098231439810081305761618879952150043401792431718744204362075763375283109471652425110023854288874485788504083338216620551486727523661487512578278565971994810654712266216393961190466754985502858050510871561335831754516841853558950247989218176941783788954550084479920050057106740222914780572110890279231155289068426474929808403449711773823705445517530940149711939109192677833916770047931857894977213211574131989138030603469910483930542319800842062795725108741971440360355718659484419093814574438458861476099091421012513890347278669967989489113897723374565626030643424945923119560340406260094901151654284635766279178775068004858351414649737001152511531110774417259576300756518646113269830554306164452482093182650560482970232100362913686726924898838966401906732285739229114527851533419220721539478012818471348353356971055830556716645560661240372463091036429191551693093571516601064910823200259257599926023904737746140687256038915865324043545430449894785195748236320134824564208495799298558213233298824695531815984519782338599242730475680767326229570071007449017672152284403025573679643988870577576103284597328928713732231679369709943350178146353061519838351462834833107499019189200603922250646135514828752395481428207332444278825661885555012449664169722365563590808992050899708968806838274722208494610222318210321522427667850577629438987588717768285532162069741697407987314231074850944438104424086025955253390817608722200176812513378268469748703623182222256068760550216897509966501281857139960505781558498699143401593565594494279978411815184522836809571968399178275757970100319658879003360731651902452435005849732368759931716148634803674746852027420502980817790140940342737026909155141691395872641422438602082964946794220353223944948424077383601810532503271742125207537732880729304251974979273683279580397304636583090960878919013276727562597660191710082009884580553215305802978444049749014806633496733136275359383487000030174516229390440314296109545157928766097042639807509941174832691532914259044451931922030433148622843537386615038454014752752635386299768238433108577124894992705244588335360502333900411380202304625767195768892279051192615446339568191789257402993572140553830446619864212862943987185803172979397581823471254940744388544227328651879385823722062662717959606990854370592843466091188892568540503881956658874200266874494636447328692107653279049826167728399654154253129335653525462530169258795103508343495587345671586251458304111816805190741799992942536500355772780996621591838061503159173197907526305596628700927496783548907681020087076087498477341718408395174399999337359139590655768572201576866777352710110237363761084124480562212223348859195011191175372443421510886004553061232840687292284246125778032907833744750904980177528137492938685601329405320723462984007117041359685416460749305797145246116085276079800454588439377143968990044829096014755284215887550035697289410216720438710526306095753148514735861592910174975543486361714167189430180775594411583317928577104201508716857226176733377679974196084001878691035003181439098393210505484031693680573288354393454242092211155767649825211028774735554262384016084689811573338303643919421475360328620671759525681736895551774316413472318588963920559403191385882326415926787385149812047410007234206744610455221502272531748685086171950244824155666221757755431979369995693142968362090017141701451978010658633042690626082604219605608974284183856656266214513326301954728636227597039384073983499604753306838949233499038235448660874184061795588035431939233302899621029430595987660666861639813095776441355189716363614519368719756804829488966101777737375956237479109448121803850188314084374252583526895568529093411714070081425191054172516287313097657776391170509018074226581985863481654924490463986721434881303610285806074945544829203645532671840172504266504951330480306216518823601139447509000234295853436018639748693554108487401814549217628030508394269655986277245719268343178536370915458020728541219318869088987695549488068507652611605012953327282939662512154810406955988247312547560210652069690457513307118795590605422374486243009825709599604364553806079850481529297634311184750514349246637925033555935894102761450278506237703634011707406487870805979308845073908818075422019769431245735233368356431200281630491167175849917626702628217349018548484080866766581892992834454765142002717714384732348070061080130262901109401758106719254827704875458979454051244369546819979113708880453735456684836196878413685889384285426732791898888514692963739067575775767255062529748472460591802074756539578097342209964505291524397286726863464040403437853940924540862561084959485490773196564144711224147882814894324491859132315593327630320613583233132103034249661188617565062444367275563493856595944570220944238966936469996671913320767430239825766941947776187089779695569887500692736971705554288406022114369626112926567782428034851829234801852496008597610880099186370930794417835331533546551218501443383941016671349982703969362734681706971324360531893436731555386358790665903024989606905103796135562986188576874190752521962870440843826566944749780618394331023518180958553410880622001410429174345202058691570964146496572643806873854027480204060899879976707311653012292471411707798355604409598673135277541613537727924746927904155912349320766589147470406992192967015661839442533403587788936371562388799942470467761939475017748281404260362669242575510205178805602847773275618326385423395456700202721409870825300932211059075570217837848076630528888313019365608672447713265900253345170920790970796131953997709696497338999264625915284997434164079872735760961600835242494683948218567412106772985776425090178738819555090587953573830481239020756810399443973366471118324023712136022863551540493672796232202402223365258034273070992142594584653562348187842383051778818195687515262684361748122863080083353139540381720958793661208435324957639632487502669757387710565383882702697123176553902122220289022346676650948798420224230159615784163182843039642010435441358747223756818352527577469249924798992395378215237663248393085578629254751199035607041538248193636241891971431783066397654306403635659823683015256377372067010715506283715943882061972016562710335085164137718963606200410212652469749486303422216841566944015383311918524492390262913075770476660253845462746204327517059920293607472658676560639868898252023113838984732066679189439614764859555403138946957877414840627783571358067409800514121757882940547813057077119612536776142451652689449326717311700751846194739531347519339184813149967756210500617909377952596895628344367354785424636944451066048275113913792004391990635497543520793024971353896956948779333480060948000457975102834728889664345791811299401021020793997510413596055003642336393760965574716002845155273544270325636046600044568754641479785957781763076408818408400628882524689589104578279654980544522219015627415252059033724791349361043369082000663026654690627252088719263435423251239140312381425659497647077874383753706235965401286541356305056523659970906258738811232821198871959781661792347033962373067790723743143490085591665913719871161943761016402219795634205586165767637367519545428338766250610029022505662881881075054348430627235030712852528904887016824375459917520049616774068715668269509541072212986444167708470049072636915533046221355229712942787036078675575878717413004414982456513030843338651369075183310623281730513110576902661470665384633491663694411638942684806774460987422197283875491802963117910206713644301881684439788218086227918388526205009563732219421061524902722800321822182358991284140173272583786870473903925461811947554392318012126236741595196075178556963420657196763401710074519615442137620409774162076298041106885759198284901840914734420665254138974695025215230853090849172577412426350425981035425019439205008841163947882093159427170375603420523261649849403099100455782430487038255828850535526015135186012592506708588048581874998604548966114303389223540944191532218784498970972322936729218814243130320471403707047784956714706589777124385471144551824770680889751405439007391705152394956832958034249693690074504849176909712176542256298986224688984169112925774901271861375243360098065374480243036734825719903938639419136078603474381178519969632888266870716909085343564826734717313986574427368602966419734620115154157540519944519708205417830832626290655121258347719993646399351793725506654468581838315690478805407403216130533849413799236608129792682690701770633890136315788451572847940356890581799045474559012025328942968772981436356045920873742036440335431014891968319746409683012944581701712286427327899605649510711965625939802962479905562449198554025589280657884250997481035382002012108847382621258182365163909236715840389484867743858072394742140343751176402776102097912733293632177029503155354635374951494981095952839782309753486821996422700133623630054495085959802275013148869453848209834345936509459080537026578442430306335515162910299091844926651897036016913798946835766189624315351554569409338572372815013092278144391861671943435172792499155773177155575803539052864854288699399057015102811762858346361679909220567159751932237744288256789565165728658830900475273596142095972090456839584416026670546659149412561617334424053984702456918058029475550953593768844984581906001043741668558787507120207992652662919387554161684174247661193165197882732885201212104753139661368618489817425088894145176688955620477121291120268325424580502524674238695302875599395718121388955442403175755514619998725380107903987602133623252274937117013751883765126837546614758912794167601481595788122067359304627538867188436656219632804213832133022901233422420691570579254990224000080723462821600209585836130700796134589152096065994642236230055698807410052150741711502711761862369028217227453970255733235996940392838395274982819859260181293916432317700240183629844480969225560008530705019925064192862184406523443525840875395202738737931273794993645880536318491914616773345345200377444065981492105970452323089234898178378447755649381403159893014204012156739691302049051825435654151586279892381930642416633802153507788139840847055070942857192746416065935305971385914855533861137631013069411429909227076672046128947238762212566240078077479224591565211525144338272449161760203418526015756087771347399520076945862695132612136040796214426955269334014348225879036721989165288886870816867589271123202139022086968518916162231799873245999290801649866012120091194135921892572032487759472103313270712539961236457985070351247819518056317949446883897610208652660950664542178555266758453418922138470626511616393650520209520773272393499473550600756111807634434938460881811794621903363769513556059845723582472956435252181833688928734581460300899077388344370389132391077632042415739201253912201952791393035099631765997458930018085035740884867550920977500367781342500675918823438735741501714947374421672842545590891501851650436083957028374956848243029546433973467112798986867041069056352653194698158835956802246680464643850210067635232787485884797518332025276750060512591052763679139514397334733887121346204061333954614571557126347468023519885577012594498848300027981109355824569277559112967367234918706629561308813351329644854589972281172862313277263234666365526050640900251830766537326219677327312101133865611298237398893587408796438314093432786309284361008398777832131751477036985817063980119519187083707082659591998901139993122029750606571401965927322747063325108997034042041892746119937305318828149171485767062817379197245788099245903497219444367271459746416899915357324012265982855726651188245044236296743747307680336853923150661245976453530155001842179319717272488703883888835116906257049863034083062260344029698692221179068566734588878943538339147088607143381806052093688028778412253004601028968844527178346476688937724809080813538164140174410726146989687783491558970210633100009604458962538949913632646325260224610729746188023963280414634325124636431820993339918178120779582120813480772533791910430408546037987534733506661654168184145844200391807390591312659578931478683749348597581814841954378081433627433555468054452532593236791510572102389149940818486224342656396141185877783816355051469517492568866139853422519453385956886995030572224927765752236849388819511136033605340861645375201808471718802697190912858737260716015138793301560211221045275915314763869285541806942427003190446330354290594810859050974761847469956120526438856418732981196276136023909271524498746495219545364822350798717085843453895571595458986556198437373383337271616388158591878741008551147082337148365960998475503807279831919324183538783564221564636057751300341039061543426330752771662436820048489077287915340209411495713221935551863516940053280480523305521964061447574787221571630876336361478685010490741870277315921506131185558610847510967239096901583122751106347261024117817474506353457977575577662730410919566466445509466868901630775405292242264341167150650800055981350527462375731729441629877448220819335644916097768858440715628911025162904356443185792005741459150647703119337212677421148796269531438574710658976848888725393170454553442564605200288516671640878017981456983933668586692656375831820691614335617210211332748100293788533741767124869445604433404211101103789417259072116736666186300564952999639877536449658971115214195214009902279864638608643607294538113955798927101847694298719668347569413113681348471296732276293337694277190250367833789349137745651540948829336520323729704015558564662576371846622054711271707759240757671937853860897622785625863771548604931951546586621793148644302184860547231076025837327096646549826854960280771880870351389218513297589952654887807023640496466727305317060550515949574038873646140131416588836734745790688900374619164743148930128245903072141228544322969349313749267276046940312449545106397444255606697768746082632071529643221278911264032404349725136079264607147689651316577754186718775645909795169186323278299364939672546666227708862354866552295468598209838253256975876555411361104670009653842991327155482827321331479159384065746184760601086111864097222569470499202953985052229999670522982197801246856394534346093619898339966474570552451962003658663258071629451339087142384446530918086575621685687327718206718301517248802586693855182178644660827176933484373652583453160050977700510677865676120830043389784580167153455748642111655580984930477539277537643538972014683099924995070401923554194838878613214609443459767822498579302902000389023800887424490829895326318247067838051968691143032924663691062749060319624706196144987587315071536110637291750021538960254204455331170717089051660315841357039272447241823856200865945463146493709044498293956187526080855036977171808888145778402723780398328057788534671712436500948376118461711488189489080539797459342015930813740563781285633911338232046806282664751859695324419973322231442018882305790258505642630388066739860959350253105985781446650377339374754373700306462625407715408235388815142558846381680549788661619831556602710952285362274116775665498748674832584078568744798686350285134851988331353093355884970621056138580240228025483060432308429689500525628603755027111557612761682278951532899831299000401443735859985388696430329869668770421800001350935225377146413219517333918512464916513556844602728575103722277182321343214743520158259594201654621785034128756568676051745235905839511798926929660973886444759627912981819563780191456256380010901597786926422343571530020720102592953095580588927970982533423176222031728760599051986485773472695002477963576225807070674599629772092257465530342801500779902973178829838347836420571574181282988756726135374333371071898689907007460665586420092186826155523395007986857441599345197525114260412465123524647763219392206550623770018564735116603021228471410665605285027527134734233404003897408896831666338587525602335902214397462883601411365902262938144026601686783690085195846748941191545268681554099464700065799622434574567309361635910041782723395486402196678848503162491560108291865524418744275698623423943719089287249513556176244647124589631100874354620619941654006190605254429989292535744217683119081207769179444561582698681750275656411220828394548530573606053968713861096350263637229806513983762651564579833976754577738388879109402042857506514595374835417513653329417988012673340981890214424595109177860201538393650674352393171019160280706330019114521262124248472396654696010910989230932841638230256066528044740194753695180297532365420406505630394723423773512060463897253056599867041278531449206771800399714799173610986141871756104848277868476086178614038278245701219878121115669158190912887949392223510803025505301896093974965690954460814567877556790846467952679561805194573580496171577252499234450732879560836904217182590896978406557309005432402677928943184501639832658631868965385484692885915016637000923607368932317695153632838345593847701527951577453094956117102850796658455761086912293452848943511755490412910367744133800449558402574095774254917670530879123072485373962583414620850184682188196208650987160939063050384312454127821731566715018937710314107519075904689728389795045011704307159422219960319059023817666272526870138195919124460714055186231794400136667124316594540282272100693973361243438349131798182851461224994376324906222853527795256181193518726146321845000200642331120461940534377989217235115744111997850974458446405086539679123718628145100936082773202829418146178957094631182605700808430914914842342370760156699968376465882114227236222185901780618568899501344351630551917268964098527433383411502240610408729244348757306480061794103995155576178925440480601715073233163111614404290296739418244679101515053389393754160557480463098344511685775964693354748932287895647875150586493809909710881610930307915575444982826962238383196381081689221376174062078796119929194760374273172385675617478098427242392732026813119682360191741359286890566711931943574690005984003339744749385961027892399185061576188611939540281215529255799454562692243135204499737877982001423680430455299435963351365520992562802102486913998687388164491920340970249333652204432718713526687891346278955700711721494096819479943614864595016026059889328817830535541490799434193137776961053775956814738374657422481917473972269102709906359867131832856953448175646099527312910661298360695748505660420544995586745854544824977142994038072086977172887393691906493068639886136941353081622587028768943667694982284031404123372179599266388514242918377103884506977149192181524983845473376281513018330480673078562121693896117761277668672630808759464324011444390605482158911699348574302183577434531709581001523091698906368640149556622633102447266929824202065849059939217936950567612791401985208838470832493724864298735429826575146828892048715395775244016636613936130385105951925442374364918046548126548156158497775669472912215386147144012736873134705020365021677027230581452049115524649750977540633871182588226640662863698612471382861453899708011482343922904852656422454401608983498934710309239661593528104047163635444579862137844140555127368378862744640340417913545655838212601426543253071649461369636254591757609019965285145846780420557684307815415845153879244239486296090909777190381837605878036900080023908084048366560062215401361937678987003745605185887116400012467683635544720536613181773960890357844136562926465046051447379610359895746688185130210742357086435498963034984630233800357462223587010203601356577409708108472645906427329504790667381964918686403168181795109866522309944193813016519496467282815353056421255598713060870726946746742304032042816168879507734778688410567330974341288074057398731621744294554603900047683411020770472779727364940135667778245483303233853795550916996712910209839621471901933791310586089431455194663237237096778383737612415857229062642985276871151777070095416000468094919410625320788779541407981965902262700772925893052991255237313969960577521746597708190220254183660439093495671381752645222127605780288036390082792695573613594431545849222794939361035231428894310994914825220731584518719339515545474358208519886127162842749684674265036031596913139524489306249092549059910287211999001057392782464501379996440492346448255136792905858661516872302642794396483946669054458637894519634693854143447410755276548384149966543013944675536394917357780105341430749159528372547127102865465631927498909573452045385524475370455767647976621807911598648004692195255080462848293382885455208816305173091309910783904675151466112836649978790795468153453130313788918841677557401113561609916986483879806354661862657263938432358564523744763368348590589707495003159255752057501089782001777630192995756988950222228100707523770977265113956727149696421570389737512382985736247120790990355693825155107121128179091269960639445711469025588732114699960001132537485754247389236268648538936283232816201684330940091499912895030803186523670878780411541498960787517033090791195865694973395435267737652440046806056631269252206550126392857910633303415204658627370137026058957813247794215523988290945392728929729299813561615925165796127512670967039530091336749322868420851919317428630089324582369675637270436913362501059605088265281886065433327856795932936078871414029484199513504211214834845887633051140707549060395455764462648165466556433751338010894459503818489297216231208067967125972837119928248860250048999132394942223781261164795414569285259057027992455260051753844899532335905327337940279414188517527767499365337223296412611112046145575131532267738252323326966188295347286915017432185906589345997907253717386706866355435058912236913400916086011977659541066271694870516965183630831991671855027641036322111644439107778012454160550926980420243870275900885770073324081366810932371033980092960697646531114207315661714367131136759736236335977118558346993072306843279738221294155260005027479408367330730414583579869346918731625474428670491301800705383364919901248076414291063028016641906720411603504192873012834114692019011874917779481878488439012575622047531945826877286877747600298810871048469316950499055139949123030607576648976164413178850816607035125972466776646890707553222897768583580998563621277729837903460732279886849113393971922318320686487623217658174699245365285494151934524265381885532597951118060297177041401943733942933967492885802938402557143713370827600413803913991181820292389921809382342595819062902574078876683575946524934505055778389479700277186482099610791462613275652817150805239183480668576604929015117042237956275373698635815086785299852004534665550069259427247748352592765939659271474609876081301799735102226089836553734097659151814081752544569808434239778241592131512173146727386027955643541560267259017578254926984528430083679752744243675272137247790302920289846752659415765404070709183604743022714811102896322889827152139876181787073551579310941906689836449992959912996182168278592889148476809910894675731941668764229691196336714560842851092303475811255134756855043387429069971101019026123905680436703276086010636355928283286734667835957813278543381376122139552287832933965083895657965323321665304128504082900583948858731728262232556190958643730277687766028441417629722672915616120216123174697349608974824679784527422055499445617020175701911369301527112822145059964172678646718249596327827725936120388022338092617347656443487351232068377303120553260590564159200888456493515431734515334409781460709065593236857539329748900894086165048197279363929006804889053918874621689115786096162735951712255440812957581206420187954569707062758028247195786762654872216007052574429582219316318877457278629607981189462755151611607065446973642000460782903644353276301857158737853599832231785761400481909844263202362326112907331857672303434912721794028839888040228717473017119362301401494100647815981251795541378523288116880787710427699319328676039707136208898813215299980833934383638083974066359708591451390350591363836228019555755530149298977468432180636353750661329103870117207981664548135241380594326236343451752063497881190324660660126966135280965210496468286040141727435851277294624478612494550155898253011460847628093342222048079775352454731875989465186157766996986448425000947221390475962480417346473930907848550861723455591940747557254248225342804259525929878791050316235952984757638032738033922016897877827845544554947190859125213771103652137038375219625663247657546121666824434478744341082533534379875163383075783769335701807818172124240896171578602801910564013120201696942622725825088330612891651304923117490089185372442299854200256663463381620773723617982241723537388128788923059220847306405755413785599372604924068824991509945163776823278674648944804716214395460449717851813614128247853026151014730005255950509148682282157316309252872167072687468938955827216952013839874083137643457446629537578051113292755596686992007545266337406822816291748791249186906402551451852524847781153335321993130316895459943718459098976223998433478148032788179746088711606783169015890997512535331765569130559142208094975245509854147397162319355517362919871543890956486298202686524239392792242382350803646559197838275898705710457929396815917367560226613174104688739297506210746917306817618944546185886141457566422409928250301802462586655875753606850282682503397741268556998908260121352237513338811643884970449960854333493701127576563335750442981392237647201469209105683557717816161894568602726787881562390197177547575530905343696109232865672692689707466149851044285612585763192387723165043171372281985471480317882300605831771531579239947561194048832590177316656649807159559120993809252435070063214461002426233398048316851213035090941336033772396153636670883812268444683366435126624170815279956910513828759200054049007786335543640993520286204701954507798795183570428632201739802359713106495901695997482565685195974714274942244184776105300811213274050700036932467774301227426762918941455077435206446981043905619194709717720533784197241061029851127467297133033466024671065346925208097492608195098577307833123704238342389245185416477128583654213450389735877840556680324275419124846024754431650247052286017219356596099977088741379599184826873449097458436940041514583685305292118284498067788509419292516946976809828735964035357978948016602277032633814054997416403015500188372729549906315133783697623715633254522014751813211352985211959010608502421074843532073643372791745443326364330279881213486034459443912232302441886147248607010955496176001246254145573051029667748480230429458481457447700840995621283737126773903381334540205807397197779536145341282562995518961430839399388610883584010865244841854637446269448353112552285521376057785392789035125773813894701998945016711668919735752907348962560211198135454397637308352538382903332627682201997289466024755053451561921721485790937656431423621193516569068978676763436805371323774927277633111071865268840974905541444544329686329458691411741294811137194795030542317895363854735540807474917078552036812899772288428936816219228285049615985884504528590132068782633439216164713568285970714264581654593229053560321246090305376560465978850763531234389791739853629193042784566551786335193039818731257315745840754818879511529324473958760705035053316426412002071427428845215143578903956779238897912845443119821942263202201960367573320777827502002055397433145870432126814885975360130918851063673565278467284661036847907131262723603905653374186559244479668161180304364428154971518891824694458321274318217088876500909397600789907832366584539471252369734007307661851573994008724434730860999120910574950653742620079221771556049987892030179139921087736959235937330370582389622308478797903698609223980153125436145304052976619660583162300974236969463944818754816846167801944802752260212929752576106409793143423685418902794633468947511475113050796707930098227270631535384886037074352452631609784203419437573101239205522734438159892670209503115167585175872864429309833880001626313779511559101810653799399217143943920919872009432214578234140736465451382887474116612656511004833972801385419900427161993555399673221237889140864345218986094370766961625522900024433717545418454279936491036435293959722440959324693469993845615402960571414050153230911454457601851917529707470639350569043588704478204343533682269510123346821025806412260524307800099806186911061769769169664492195088312674531925002143028745348575084337545992700650818958418157215072863773729197328848294903722091667999874938181546673263324696896559343858272966192454718019923905077014292217206710259928612670239285231261601049963356292916881190093297775174131573565933467878125764331392545665007975630729473041943833973503431487446280247176525286486185763603554008899688319545136134109089172097892503912857548256840657544112542878369154279057979227791014377900449956741347864102482613504404325785611308884220476474548535877563940151285429178665406307625577758180413185078275794438204690513169877712691712293059759341396022491313244537201695128001587936870427584976886128742958168548861481061472779313394934911897465367896889265475530873892915950904809592615100007417284514778272077397433019088109838196116644986876924809971490340253108805841307529832944178522682651757569371277224282386096456575580384161614038773578684583017391816732414185766774287625945202850617142879317402756349516312978740565338541634904889154782700988784906576256989595767704906604406694260453967677299671593085518585206591632059225445760445821501682776021076107344605106298712298105944931909658632146760670219240675556655098724009318685825420522708604102180845160799767253336821444234756614563721083461318913085804642150133999558709542670377035865897031539180233970495958038764059069662029006119460153700330679773148826142149177808197809702497755919489571733958894665416324580805548616787797161422368789671615258439564135114584984061250885151779652656214905692750131760729642317782224656727876985669979905791879968047790291724562948304086835564834571176199331916055173715789047812942166850830323682555561361626622533374410088304317068364564367817451856235217338372966788349779654817726643174851111273587693932182664920849858612147888872396320009104851737341585371640800782816079419078562463470579547690171575417192179797431557743234798823616461975221904269979714151562568990836271560125174387728446865559624453452365484707497582323932102629669773441504958692365504521459424597413461107087071984141831177510502791269344454388967227114708099734115327516827962263450842165664531498907830314697525244750037404521257812868611535531161891649632582367306580054513593216448998154189293940458043641019473606895323975886458584889272657125490796565414250506024405930697998403005184543614223006579446600539014894831225387421288201318185629814217598236039387264198272053580834820646678160290630922315330808034612792424380060397549120459023451766661538820548501941123781396831659714214700206380605083109886199698032068062001448060195470694964115882123413885152414964888138449673150828207910260518919475925038781029722373568124997743781968060884361178059654425400857316644820022771928023649065162838768940846741058758005721577024816994086772111448030088009169708062789134410298414030764901292077697490159728702892149012565356272890341076214153751153897204683923825697023967278107312043402282062581176896797163442234159215590436158964492710278994619567938243247643297767408670392034753307271508053875485415627708143979120643230934358697156222090820257252982087715932363982363049056927878119764654828375599885267532463341941187907641820932800134230218337475745161324441119566324195299143821637727330222062014859287918745669442238905891699901775137151699648879094669530677159258573100274490019680842929533721434590030251270007720622038475788477475827581428578213394970203531065125452147511753063365297410843555033789597615652890213154273648741414274287119642643822937336819774328116755652350883057919346298513783924311306956128579190990454483840980316556247051633400618492214814374161972045011146460373118524951571964966751160374171211792226522411253683510461674953484787701328122057215200314473089014468266003375113850647133515137605048764740192056707338236228663301048888831826203537750699761877795455317828841246006243195670791702837570601734755029912705961280293541742882158226759179319946091704261631666448020889460920623197793035231769974386532796846444848406051666270743370378083342162041285059006924702317166924992570562596861255913229264009653973957741616149469211611019764626759787261785826065665828147018337319419456901209931946669401962820491955224257188959921820108203141989712287643572858382538249735518432583772286417181009846365554251834453808158432765003340391177510248448734093180198068535500178479656947641243785605897039636064450017513390751877271981680136475541153313539849709793811819966386220077483024984182245454512726460944749583836902317181519844894306123944533141323515055498639905272482265853017019613950397974241035715790847590492825151809506060305982794194195430988736703869611935620924434468357360331588576559798894132302024881756790016619628995727416881916622077170610734902261555054984635843129936147159175767629070084465391519301610129440938513713989164183847702370993105329394695551544088423659781099512778133505618039422194705792433261210798630669019166125547393082735692925430489361140655680493582385488455564480909899852134474408072870552011987284428251284833460949510163104875448621946522328990913177513520421972259858890449613093749370051122825391960029899275348809005734816167740805275550900547205429667115988717147666085363710987315180355426394095738472114197891592382858525974414611470975577505851563757110795999540730895849056957060592680784494075934733370008651025880550884275679403963460390683686413232032336991342834726562250780732279301014172500754026959590970054648570101321720933932859187843329337709314900854635394285315207173712449805423874737014716662340893524277023210603859231243938039926336249430747396618028992783054834654930867142785065113486028332665647029060502191324828183606097895728381587253567134059160556959621610279414901965357285867282862478586758779014334258742078006272026379115330787873262382643542900145752209577954095905946215396713682457790594034964866848351811741386959185785510698453985620704167548108050066657551998495493338426480739160078788351086038239771056039805938936203135461218015173081665109369172083412271926267357576158565050901152767893910782106272004992396068305609165891038446617807325374588968962576192364337841198667980359438951890641347369924249716964479013537169634289682175228590751540347085036942586538149554515571967944931574454915913932332743606920530918876999565528188467307993517547236760835380472964492706799439448282527176639166697527998899125902668493069197963472201541672383542226243900026476144196634074782799361062354532949781794611361550257329336453211959261530335662105860474100339687724906856145481781363718391592440154795279510125321279976679690252013129356504498899174825791746031254454952951748757248935676058308537137516178491626609987329746312010183625672518040778624453971167182314193476386221495608839176971253683303357107203050349912223323839102798451848577664758077292573351597192453453898258920941748974860900926704418686619200360734238653651997223955010001328525646765408263275664722183468473972555450930780991900012427313769336104337506610207963105973878552426774941729396251512387143535909171164303755746848118447916339780290196718983460126626688836066300803825140652348781065137784827849779007459285840807277325831122733852581181374242254212646398834807416468283388556668307112693433000802039497913378059070776176913905151206865414451809967611142915373823388285238567917158947733372386973324659665909110230946057282308676965493314622918385719069030059893828365987266806568185316944656611470807856610744607072339834372383664386368135285436260084290228800737499089651942624944495437773595819507683210372686496590555284348094222820091904117823178633794274453567082537647613608682478057516485496157766505187595655337381591191080366504221927070536921155967596157951386025323246239596332152952759786655021488743797997510518121180025899203266045748458707127714369153156698239201742872746219890579347327674674325636900316128712114942277450107444341971181380774187593847797014615791323417636515007739321676455307921289897329228870124834330319150480100251138616308674672071340546967957840856443781438725989223331933426863586861177521327423571989358459932690176657669944397170710996372438000308450962240449461400657993263206823833731969138285976666008224280224021286785197155370743977181588270915346059300974603272963612891339398685883261303917518031981108858007614042420028614245658202075280782440634436419221394862308000783696437593776143553857782786870518450002623718367647447464319642954316668515800374749030799255765352957585484145613618685768437781835377113049527511890918135262419155054382498174635159311807622124135621673062747276992634733756888585000342212602348165558845888061303792571135216584883305444295615801686009883362915926260402608437873220681706639043796646338437599067916311235097738700351889111472275475743135855121513712997748448838356305389201095508166099510135232505599282685633342869151515692587625217376316838645328077073803708168530827796238779155670581344327131764888581702066429287950148975208666353030766820545114340144511360705270669136301033226308762846325711918359186933603726563538691872769072720839941013490245718129854211771909645307866541600216064466855170120418752258249431149887252037216071514209497268447332538087384479402651953844770315645278837617337578205203600868518671669804126832617214786594251157039614032037237102167019197929759834808088056922251756682474689195196992005111681354574355853108350241694256244407349069345466285039568615825250628258697804274558082487246856304220020206428155137666657039208636659376592386510423593665987551283906546407223962106869966023509678400570707671084914585522474293800553639054436089424275139613434351650839316938682946510263891106272255437525865679598098805022028790642942791276463789916840188587209474336236077206973508794401280216678713441342096818934670989415340258054254827072144681699461908007351235288471372647252939391604272363776820224306287763223953484978836859484012980427350408422606214600858997946552783636246215883818474908253632127524735591022653984710220677259180089476162106822503584770036265736800655047395079811113119549584877866857018875417214429967826337834345509609924446423427307544150683905925444965977754967151486211588395012369211357845781532994076064297086778427598564117606567841214187469559795418482615456567531275565461544725431201192504097957738358405342264615424893212559632819241636977633166337357355703315365630642306557857186023906079959064813771531138478468811079990702022316552619262864682922002724052590464313192511738917328894742335298419668723760236414856832575475955703017537581258176750393623194513611576520072472601410076706461374652110772743594378162385278530012789055613464096382629137837504497034927315697457752089684001887189509247288299395623626091454125048399567039246762394505123279488579105313143315365490355459810358205433435156757994559954602805063056488868044881142183241628180664845132738264765058590845991035509884877710082588649095248041909190587664327281704411095266648028752359777714380053512274735264635062007728346073396268495987306875093828822034533781680883546362220054604394699139676259717374991702263126830933614880444106506547064528506248004296224789656121397291073505898718604099116847110979242326766805787165860267815638315159502334839008243032867040429332397777838601524994731527126549875860686331883398512085711296439891423773409532696179557990671021320720646666294248639275734302795096786067650515747475441850961514569511068456115339136837401179394968506684502009713739048263760696819037759096059339678392397128245362879352107075024682750986459862670413351750086202471028836567541655150284989228464036654502730018573845601886273418953121549347688618215904440444936801174902936259460335309989353593200580581037710812535224881597186931668567819118756180263652986375850731593588667964695632595030328501067199470152919402567233495499649647370940803780537567734343283564223071739912785850166906467765863303081999154290607589974967010024835479447653485497299548018315997132331906177210290211641202499019485174408417681913856429216664277292145707024149545515771658542256868667711210255917205359027152100118274069493806334931483668668044446388398491004267432473770298929370925105553188237948615709374522387911052264165967376804638327210674070733823798506366355893267667335268828880775678980424170894940437823917190811918834462211721247629876154277485454001798089156590306277809885553562186708616263275170919496641240968383980679411163855487097446077126245917287598229262712323409043622769816920373639089502375081362825464535343653311489297250012542314484818553426786641248522923231421495339364686761623065667023911830435579833593492770018227278737314177712866849957276510380253493616104751472414040149361489831709350388554451342066483703747061146902086495997050153988945144463835399616648749062317472127374965787195520962216465913789488053184596098790877766254402557754054255334718752228948863061323128870184262229375193236385007545879080786114884831818725434819452151488037610937993239062824345514154123715640412674682182491485240879033440221124488851357875122487369165088383091301615129206044619555718164352896131130909363150670292746843460498864440223370093839686175886679038634554637557354977464631742672251129689817896997278951384007867733213486468442002828362371355087925696341500559030477449236395956549698347625505763248303438536797396337634045047650472622267199422929089285068107222528606619805878578332381322546978507956166822860405776690413521688228590541349904396056125766761637120109898598878853657730095104814553835449714902318536453254664062640767458001981525827504376538346086501945999686741428273005322991785323051710927478584654272916040901370374841248167815717682792730445133891668956461687139930879661036877590530738553141857746654582111595867733566839888126480153314762115513618975202022020832455748399913611820652519544340467116945693456979801240080800567988837015464499349620553823330727463735610907489419085275988004387159349312282356195764675073807431290730163650344242335934664113001690648033029516336012014171678697638965637722363073414800235473235544057290884843830660595236727644767639606524988621817772311157543463652403556260385405419268162623774715004920140888002402876793144480525600340172334699256852701587835396663229478122863987350203103174962757423729402333981768495058406722486726138981690749218606756044854585492069016082084181382018656553524269803034009966722871826582371614391666130800362280742554881161208436457577297843632536178331760498239502406765361405788247476200078861847206705035814157100155808769153054827634373398203926196500741050818342599016591555064210659553324197651393599412822950183427805155128173883033791499334114648082760826827418916661242256501042763970596199675239440524932133469795882190951850820348619954648076839867099974854266980713768534706791111297796490742915539586998144190064436294961093872669338291941125983599606327033082912162385569617561304152717886193580352260204716304704384582498313583916093460927897543422457889938201597187845801219498879880697246774031582453314054184795973861220144434988082049605532498593675402639796061547961401849051623028482747504006288081985576776353847113421319111554288437565070560638267262864493916582396705485091654733362096266267746033885445260919560225250281036883579309185490110772602711370193799828507171193069616156765820997508509834143211012919940647369848010106128325027573387403778951143774491450866704499817189677037987597145844737504052606541120962980906481381887282204922824177612121318264198626331305907574220476766737765870203752799967283313582821211263972469341313010419725729124403205755766947935925048366984389659023674583512433855670881216720018326631592881972540564030442923510074512114230244887811154561379249428249060634239272683326548509092474845750079303513495154717589615235051146863513410569011069912970188084295651658379564088630258485568331942419836661977134708291231530810326204762155123045960148386614422663441402587342019288554675223863097467566044593558499290090621145360932972854459624058455698111616580150507102751855331184830138110451303916509572850301083649688471181252672449415203937428329249779443702082712732497779516310782076677631732073428814110693133468354721666247761211673568745619206663609715607311290070742246780927562097736897237805712254887493847508378412325643065493920555721327716856546041011379068083270487260346804339125660158161297468523985194654158223183075377528257739433572627618362065654523857079192027562906213841282475338417730636321432792852161918793097587005098721943014126638246851263650540789948471445478671249783626709500614071409296658723580778352057677047455046367058231266106323956713618011579683035579963043098253891204091325796282010945109692129319852923757425911734934067749115380339726704869983114301235206951729633020940611384010849339742026927471358913869544573282525876807850477548695188978444768597692868807202418154750442477903031083959874176326036295609911581007394357734227941148171918973299050095452312768774938376397375598868838385807571513904317412039874178010687402506036007599324778920387538104650967909970934289055038132415046267350896242761729026236748642476281477910616297727818266331335715047115921613280031285680356678476730229565128647811407810278176044292834818269435021332919639120257743252139145451755076479922647957579030066435555187800335245186053628489969997977686920440216885940446916009288194822628866118231518252915511755840074044544093846211835477162816194973508971660303026030427394407600911346774023585189966561594814839393753516781984557853635016565608983783417199950278533917731955003252527284041502772766678755892215711457709984985242347080715780058969324274663418535480886626992469017918949806493713495858033722869845340304051258751357588354841640148175111867879466793219358825873564392267675841399170439257042601554327357059607369913252220160127539003722102126034337512745759161480006056374093322965359220042560061521204656957429929480336175641614249366401029308594503945133331793356447656590769308927168745414947220722031883712288364963271481558954973922118098934493035849438234589968463543991511236145537717940284126573741440014393837609832033819603357257513935816924915615443903059019609382345449230084363461599711155513319758776847740655780160941202559263120832432851320306455987885349726978837180441229251715132756875977165630539254463806535165984300696686124690114231241849744349749761197788002896681665817803105801640177449169259509575467376047735733268869058799831004300148604852791333652103332378999099606336726593244150098656192846582156777251709429290043452441453386779890654991787916171702922483253160346629900537034778150127789918361811832203578647783900721216152048899784077118612844510803973835476348016376303073341383439799226663345737250336477025043181206541506313112597054704848606968533069441369975148646771207222785996637318874233900282905845683351618997876639275527076839446956662884085205973928305313735944203964694958488038234307860991943557563698560748695268237169408017060256007328728416131149906584317454237876538576390187380285452175767129411931059745746601895113757476890978953392347901450503671770934765959475675258581483240959681447862848689319097907241041798252348470433954484475112306094004099102199660274246110890429423506607082625878227449372492300046722378792709727411503325253580490239967853385584822416679653279543873642110569739164863195850007600158330200843138046643782715681692043066869971817182120398054229660350628849216866762739222164001076800616734718627624830224639682045056816134878022376015088447589618908276625533704643932449954323877730758905211286282315613313063773159028150110243706965888387319975046187504784831950505353634599757165742335489846097233415511197772966544003389036889335495617049813049064654700634823700187431323892515493633737214397608710898570629589026930300651793210033170978354550276007292734983302669346740286267493510796182985455821664328253397198495122474284625172765804100946231879750605332740275265311447919465254961227646227879768361039092003548026229055290043228502657580955264178768070173290692298462886608941633274449165623422940798984959099330077444724231906887096049304849950270992574397766775472696224182287109636443055566869410323559019067638004522515390545583299657471561317953351883452964761102784440907330714905776363211724387744847410156195683133671511167379261521694882133788047734601109491905499568789433629643024708204260242321779260325496076617374199838796847527964945089479716923865873270374422963783024735684615265396868771276607685419741760888814865655458025082230557059406827398345212638661308044411521694748838828554591144251848958556268148142734912544307084371678583446009395106351112975965570063283886513503236609044309930088465683183616660588490268386247481429154474233878789761481208482703046410594754757235407417905699408515999824882573420925340852681757213529630727739144477331392469860059706862542760775258288269736542743356796419967932916159136877915566254390347794926527445442022372697080256383435536116614433233435635881545739974002212268557906471798571411523088996392590136349402274587254318430825355667729656336315860321622122251642955079435602047147864055305471357464930993382221627136949697504169055827692497062027926016108522718784013686375955146164524580857792250938904083651366248782874215718342733134748952862666532938466230335264888285566791796159103432205281471599044103988704999471725112023261067994232051457106817182012367104668773845801223342140510767683982211104444867402061205033098088057422395556327761996086825787661553069728306211601029023372254393094908938858563737096108713929805567698468462713436521578343110964864475037457376146623764310439684109270419478463852443324069617777857030136320973598137889038432984957073729028895821251143956773046767564494820176769350433859267786742938946678019503992287008206632539762049221728182865065489433489901625451383287346874763510518043597152885736140943728151985989744827783945824500268687982669332508424019929081972037155702153847695144483197491881914920495153018904602061663160568667266468852302539069326222432297662709138869260083320059726120336270633080700964527556452964725593136296424865062953576642946039032459611808863229817107563804454527869173287913788392933048877127179966206212696929047932912931349850493271626395260922168871998172007881029145189716015482690839339839829532760550999103414270616056424106850667470082074150779072380718055769818555864040243404276015188681388281723933591221390543928024740585168784832408516999990627570408644133385593815915713264813733308833345986910322053910377614933509378676396452038011869287482038533368862403050549116331068228753316878189284913168617757126811510192514392099155746032363764052589148447305266569905545393730497155476022084567527805960269873342076217828683114792279196055950501907277349870344691416786576280609371646217092130824755363775029824206221666016508009824655208939808964396830587814213539605875155046953462309227841590006879298310812825178624429190495197462653685550580283007722930420182216933563733227261785719676374092030471927294713502284018159932599389583136054795702627481844455093626509438337437533086218608103194312934763134994188839480359500212196524885857914955978055584051390572582902267933485219393506125100589406141228287233486898108487587839218661045035118535361149778963526518256920221519393665397941865492804411345883854836501418328155523430017057922463535807440828800235525083567006024399023409799639904574054321166980737542179618876576217811299889412532264855964671741774185549286266637818193491629070755830477652666230366057502709883819502158124346814316775883246530930438988223546966565966560578630936967595327726738818901311037751396350796463610749465323636253437188826605126447277130925590260582877893731644988154585674030524120963813849457422830008426998619022889829424577580335186546992354704732693082168366473030464033227535389179484453232005926495539159582133673094285423759292274000579166016991589242604505761999498090331984459547983494104801220498551494856272254394132880904339498525264307601468145936039304213441871601869863817782887915434546935188865211453465359275785226354414137851993426287556784035104214823456715078464078109490588114628572675863031016114797647773658139902482816862015605779679289012295684487206476409468636079896163836670708317446536614047598201142149240202417107837328726578945921840392287864225643392605111452055448027616713492479396928793105396058981684010177006170644163801831437488170282911897562697871297514807314036835465894651364849832781523144093944876428172833879033094754549994176148064774372607713203712865049637641860031057327945086992418551858008317862002748871343784054529007587087501625035358776823535691873641216520367211530144247847484923782756175597870052777289369593380727385115328868679619192243540593839210853271469818235217685730460456054339085858258167014049084512445599918258759582727978945568800099610018767686956665898783524216689518298586518152254888438391663213532800156303685892564437319919029457895008569582923481516331947060259393704310884526373749347482469525868843945112866078244200004008775307187341277325377630057144359693674897641870377214186223389338627358951241113714615373108856209203333194288937740625407227004637485844335337295391108957861696429538551090334370928931705932553125990722036300562460702211043483834642401756780780071337136088232750059966449536552404790185935884480600580000669631428905629045808702740464134777662315753714018284762528099552857200779554108774886803794449286066092633463969230311049022799946697717755604265245022957067394327673306354289668769015758619744284527001872426873011156980902060696758725339709226118221311524408017174368659590610660875583191807482974356420909162800646084229386493861940058251724669114347748057587199512765059342292272060575193881557662622706026014382440148097201813189121608187621869955929029782886854331462092555095925094562237335561785044993462406508840995960428528943428066613898598733958638775992788806699988475521883059467005887861645174667572359386043788208613785425349473922938349385517159763306167568493284843517889315403583061023045188979838297533727188901015266675204969267658176777164836089244775220027526523424117615996303296487277836463713587018295064889605626502124249981431835841595827968664624690699175459159616587298360214495799319143753405465532668765022495483987590976532061370469872893527116016711470103795940595290080905708336543498695667434543315071446307280354614535138461397762983508379115060140661439045303172806973980995373707866262875193112930402258755644310717105900056949621764440040628762643399187673542985211084528148958688174924958175571427614261033623277103043856950440127118301895020654012228086680160710284088540626712246296245073236451235595893412344699428075469551403199286692301001955481369484161970596096981342547911455899343775804930966203525057055872812323070753638566385798907683074951542534715649275432567125930290554811680753070216153539385485012952339584934689853357013973771622215501589770649290580887468796687388081271129871894855530398073413132096064477086853233182952916019923276985165367900923771675063182230999255781431579203031738398972479290924636775220144553565816106076688518108380360249637369710474091839518346110979525567627428062138694334292683951092473552946821601328191610208369197522015633520361656444004392847457598254472938066626667826459673154444878126551998121443824859016697572707844841658357343885963350893391864802733985375722425016825714780637986338868261409904705049371928490728988345372299869236375562190152942594876351387997860064436881099303521024587029461336393930364597385454070340223812423925350213861448555076697661147930086694182729341743223030712416914145280417176409101091369941814281879165990542956978595026310254246453167294948032064098446231170860446284594956434905828098830240088560147875412027784858196754121015926688447311126998014875703672202809451024619899520588358322559147648783691306128340090525623552469962045231060662830098377529581724515444632868024119472647784463708112308195628535923157308483890539668512572514813166630916213475196334945259322802959421958144128441117092841621643423650292953249828487642911979718546047803392641271424824624270147091255970964291934632466299023037630047383125341625734504066609791401210200676076798379425529686944382857714858944875890061200420042597483655326779569544621015680887619818919711736742585333276393136089250439790687193825910982316017994397851290529558110451122726542320985440684691843719243776626416810251855523085806487952645210217295793134276810045129598107032528213744770428302496329338015890971813205247748065955540337863003148548309388530249565560345647945819682361534404134139049331706046196438573809136187526797530220744534736004659143865603372370522218740250619179486071768795545367843292069158558477548487849718888559883501324882999990960401831617378950831492441739218661318795691691553919791820303371277023263789203000213409983831527899886123176086003189255315880883355231657468931355370532122488833749749955166624727662086211790043488060382532267154223853860902628589974193977406098399307620177112361123921532451168349953536477539424379167803110387423225699312720046749713839378271654855635583820394725260992413669303514966761773307305820589544115801064283490878778764499982123146104555825506271742894740803541624228290187772082072087784541099997707268523994297287221302431054719759932741159881163140236436053409168513342913063413969033903628404246213333692366856119972356135676666482799031558331095676935679725421213284016579435228033312732184078564127064849265562645747304719787803106540126682814434969187209718457597032714713776189519131879239105229837725985468522906889364025994017451074666863635170770781211858201771989639628546729937156861460755205652653668945956099573669753102874881525169335968521344830739650334209945663641312269610501781197046127596616302163716971612854473242799099845128911773279244212067966546533506539736733041548890713688145915688283854706517717222538088970273333872008835359590540358357843151638709183756291820054299669037374078639187936423402820410822954045054513530855974128159731782883484530302217759698590491422496007055182306209554244685119217503709631230271999628689644374357579444526714871957738523631275918322550107790886629990486470343733789009984662457614520471755541114405266119978651772177986127393999962457852999165027997195916338657428318815447829386374864911058400194111499648036859905906366530828386958517875892799554151789521874987518082216145534581998568798421128897329555582342977459675336503522673944429057133634137371743543683877449859163795599067061410518519208855849852659758528353052190110697371952489733713422945799552049477715001785715676375392413190424830996670688119090757756931139699033868536795669366430741842745529065536413669106694899649870519301635695299579328385863016490441817248709700097073806258465703242091832321954160001709694995357358215573032135202376280670748477022642955385326886305709307218850860038062673182278060536960774604699502303182741294508013251632567673403590642721882437609246132157136644161278450605974468767294626503514332507476015171518477299630285588067250585748738317252544574611695241418678756816940569226053929314445079411457324046270278846292133538098730240251472173749708166707184564966885273000728908582153547603748875874259418965699820329955908749539733626325523697943864866211922996118408224765500379003752321677922778616744173591514710257126626082590565815031254301884283275379361137824613239767729541445916463883084157852502914757612170676467959293772031003975370109047489897271553069851221046715963975307267261440986747500378691216667877129984125861219658221526249832995524917346625949890015808633785254758006738403594982072815352639570235401855591532920397192879701514939923680143574400810604340473150613214452874594125285501613520238131003365480136516147631596561888073069870470926270651035172523796368763239105449128454928208139896170612402955767298869100256668672696747138474011739434687839445582736329048064017516897686389738956158365237972933948834984985541477485827969205354676999813080784497784970072157911247780240396565925067151466148654439767598654484862391899044338184921172107247377312604828908587904957454603162451456888145417788508234952172114822144131824825984757391366308385362796713057026576114066243034337375742150248268268638657888126969747145726283845655444971861393778029472470874972283555112341718476561091956501216863034886337429371485940557743545793992380981861613675547049027977755035321065943046228700989341979823354950650102043618552729555707877529171075259613049313392394774683522562278173314276121365290168139406929885715821555731215112287458699445822590603259928905787943788805204275898635835480934581279018645513321577307427983815867397476481090406473923324826615387104790874919687132130627062391522373091932579941888727223506148305197930816283900509936607269246986926567576191035747345506583788435303340122526091251645601068483903831856822002380183553584417769572534778471574955608719169882812077132977003179822135109414150807575673210420895214122168076424025239974668714258045951450450592603725477188417786467173333872840328072115942829520407995914298645191105494672659566089895829739491305256237231036886254520599331285220876594361720416016025525287133754647837171510317476456740866743073705525240609612177767564116191509892365585944821644937351277632155646005661348898359571962469054001462455652457819634687348590093030660902010601513114088670638438173429743613244784878472583937282712284724336182518178741126600440689964787561761686237139579678749433773528051282874899412436657035484683713755819574391563495492240614437901603608798453945648193221065135924687580479379835227140931533344552765051057607243717645941993627336630706004437564834003314645178811999270465050395883796328869185201850789141278261064736405154898791535127060197782998018463483310443916563957884324735624716460287430000907059358161606752477427942459565940275302643697556637807248254299762904022128719137957515322812598971108700932762567944588493183069491022347938209913232974059323930714071111158858747913377289717928537637033483776336470526377171828529476131896715796014836187381977832226888718142968359132087817432114181878044277656694238807117179303141690892005419790314061721794114520151619849356226274729962122195393721281075551003753588357105278571781597011931006595596323968550588104365469823932658396305850527367536889579365786833483041561489828451612964415367265850225014778832183378633822152788610990842279207658424589657106213615179365599478813016288122360497339942380001511256479961436048971238172029396045961839843657305457304104148837226991619094945221743746796103481570765638618251749022238327605257923857292456609724683474705360647394886304091340395820442879489347725249331190685507652793575239104639616974887306667979977026541576231979509003596678357913380788688473834166996132564006502889348467716399774761715697906683509899840787854412730405936261860050230757137344696282754894752365050638110363056580367506280429842685451049099962221716463784414068149285415367256987622439143076654672872297542191537657485154750809546022529381579686493381430467542930509389447356448990978751100471773833079612684219126299549908652242187007373541615020021362924274884152697413652273607338090921951349103146952681391921288731401948447330613942805203119337585800237115907997943598096598170499931396257486170258116989890788287763189797198656379625812885956438850596372576905606700793729327595527824876831586961877269968066325814288722214923720038392616055705307300381193424744843636021161332845175463499867636694107613251532534244025706833483674075171139460546741027515238564988587518892416775461698001912758815585355428656918634720246877576221178003620736548273259249892933987865287406394025414775769341080793909396594167906623825918723403916334076446813948299749555627263614781175486692003286425737606356342842790268424509259195733184846042880480883536846340163052299007545429793018812551672818038086305763400731154876983842639040131096770055748586009622775907466623279050731647909525305830361153418049812462998304252784460439349119795359473979814048273167800187755116418634559318903714175031389421288807287004042199569102821639088338927025786699346429979413675224606777296331923324828207769044969774322677141653516374237374583721391776086347541056368772055910092336409166732304035488358992911879784250546505266846296404540298845739360512110903691874280346169475952043253089175791835994172157084928022924304194418310864678317781760285563808626193088752913489239243039068282433752356999806514676393714605469588127408945456328766825006498712417838338229720481032903104798655956652511466720881754191879561549235138603949316807662639372820203616342512714656543988344127680210977954414439361153281079562530943658417490275629146005088724498985238730046746910249414113780423504874147009241679776436715291380156723091763131801556875294244052311078349156771197424982323108086119237364595742760543891377798277228593368580166290631100589140118760503809674307924152255937593435493929301250187762406645376745383069579681763038821960272362343926102653962816785618000751988929955215213943010311971786027585988263835724033817935609817870093369361526917454160823453539547781229938604541459213490391558738090282911286740267861764489061499987204203225703495196663352673070082649409509093519435420330938448047072697163603559713141753299963708443375649011679285837464949832525425527865125639906592731954491878690491234428854991921711543699388978297972733911843707822487945649175113796257780587099710227425303781666255648995291188256418248580789380806287448578023927210719999287824000517070764062307074057578907076438653965553112830206965171450813004717566630108621020807830958975530664207438665985445505603438537771317181851549959760392158312440539544500909314791672553990457056702691404566833482558057717941574202910169372489702574459620913083156116897236210995747203815090683685284155427726048756514312302421265975836506829934582525881159071900518503073905670313556642726456901957195555023878922510101332547789232839061058392611480517257105366353437713155413898425109628578634070275792363701359317654524393504941588519507469547083561535176964210521287882628721695128966522175591773299817818604843396318007144191208096060994326276245844792160505633656209368917568882712667440347399051385174502282195605368925008525683746479703004783649363751720612068719144172978131155914082902842659236188775640325236174597452370799607260778493867717599553945991283529236346396573695769302495029190254984146472458053339038469420677639967715076391061615219974868839051348549823801030182792493819550408049705770772252841392456470690206610499153604605202187488837927347451745878300896854344882922006453585036981010857065161673144707374924516833634505754865439516078355059239188281881553222032266792461755792759525005850426134899308442634373398219456756995149004786820199514380168861968308717469899727882081308002275355974187386489580117899476668995725690340782750186841013355531733635972905951621004548759150699518338166327447445772048262612264253466706099397679754011117477892179465247861078349132130320389332918207056082136432316466472848375044145294414197320436648379663520630698336307665187372414966605766571706372939764646289700260249572234977155887622238156633573629599425073337487581209291924005370885860681375862167448408009680496152721803615858005113294623330874004015415141617681660281972387464083040858677455590663388386290199308516918362363450540277665912773111212404583344645789122626377275545860821187732436192717085528951140612027618677054189232181844571550050838661380943551012740831314268926466460253775139976985621734106186359831807412349224117577892554802744122158889966637544645182044418629874706763207666666116312047713939531526336933881241329022630042883823345676828608420015450962965750329869662933110641010445430538921814658009572957083365709042528765287456404827398849681954694087081117879086644946821448800246182256745526637939497817055679053621050418160513969930999206246401146939420307319064511779018240035169395176845187505803412991646740114023887013532766427755054255199716422708601964098803873731630922325062126016652086208230239516569678556475598349163597558673353372159729591834230006526536637449417780525446433360360188910351492941133948429192635496295763590618806736756659234241720544946120158474657997522180442695861764521580632978209496359421069322257205610892440616983088342806552599315688165695361837328689731332184164623394421894689012983229058767814696997901398772979773197757573228438358711413790697359034860390105254730766835186356918432657992608941105488787211259765597636571824659670520216299297118870398238321861813044311838678409310308574946459098441805872022066749189897915836304554083868087273901329157793457165080308568310840060226718566148143825092201882606403743691526186426332277280769507148343177483422154922047406405938367787418060711694375142617169921170194869046310031763231503717004544327901688362773107429857317356117385528978957230982720863262019917195263614357786776425846195066172179342115549422968731234478843576901667526621861396702896035828564845659392018578119731430371243930607078658531756296128171005456903437544462713322112446063155604748353532464216721868683892712528588576066342470295375875069769862399644578217885850727829414442082775285904721087777465391255556530007731078607677260441525420387504124759778968638579596869159650007472932224742094889581756319051228579758116134787537833540371327287006096503335252756679034684721123403510998168092882383573682501340610466535297908534726187808289906001128850596679097314854365650779739268732493055594115225707918157850619789793243663059699315153496461803635143032929902944744162900357651858984346132937621646563437168976660255840035186826151827128817785599984213150323498942594547453198251613073924753000848060470748147297319779622040469298563781731448945461769267816719451730453301905678224829316255128569139743169977782572215638663032527888349280389062279223006828343249780835447979825466367797837366649710123832220418309452296907931028931577230145637048474184616070803368334086038323038409085855860090914859073231944877343992398525112454555310730613665395638509451978000573606941469554986125715705583293360257437640614352881059196037316426433183000490172996305436661417116258454440797571911839290887599680184368948949831269373352396455761082830809967295911118830477260240241723821219848064111359529885280813244084937199441919036762058484621251762481237469437305326157555257538230050943822761505277617348103904227607340547332012579952764480351420185899685064232279148567538306944273110322272605694365399284984177823921206944186494908870168981183371160107938399810530081366114633436777748162694030762834128010723130697836329646423702542309009601287766772746220047274321172840682462407107298138409651533615281929432183394151658235979150060677620046401643978257152758394722566309753619050775971193716607919445982017986507137953043571819624685113244360078976290739220572623424231417890996878557336039968256341865975426039361305176283184912729256235385625381450879244119178373145939695773628550538125512523590158945146469375656483057424172101663151874462476057432230927217801271737549319484632244144018359916601714295792151180188894902523545135700318812704946524024093728036821575667808445285485372614169992704382149983525851943286527627218066343755458525356280431507255841167783700387390783143160217677483452411391710785356278204415441394616554957320444072772383299622285142928471566080956377422869287629745986700119336325445366443577993653962863857608207545828656421323705709666742866723279284968561139343408482180537728610587165763426986956665045059123453280339833439509256869734956311629490725183852194531633555609941051327670086131170552462073089924987447546495960295935322860869845208789796375708214426470488378354221172439420317190282113114227425299484995435923042201147440303035362367292554741060689707874679123967808381092772711850186182845434269847277157409426514586586825800610298506410756055614435543155837569155839020675462496016313897410709315067844777964641860917121231013301022397189954258867179967346633343265179882068487358856804267733206419378157954029040094513736543316779538522734995358016680013373209958971370045109072624511967930513157302608169850965846198151181109643448982669441705177665539548348322837734183143470216470539462236560476307490940409275438673668189782500557976034354564890541519468903164222287832695665270671482956602360403079881117354651741327996008857604308988758011307066066189620790803884781644890425100882799699404789695511273730368013634900995162489631440811639564413912271554947844345257630702803141974728221102991058588745432043530275218261587975662479262545546157316296442005510752833634448652140940242968098570584441452826461640689672333181986414222086090023612151762038121492133419190252788437378335437942831041726302196447490036673878602359417257145254697680580227659681188928378585924707656684409911898022455488099978704810652855080700389814051985433679799263435343161010202237184111501916833335058854171648954381702368939875358626252544356971775270232942385800277034857700164128465379996828774086402302204711942313471462630278160360904797051633495126097737241832285360046352339476725540418538319539263666880707619879862198703022909384200946381170921276553685789966510356447207698189679157415390883840574619458505658101390981514253063778123430538829745587543311790960732536153832999745035641539142231032251964989696213881373479929028647743549425795394685423093892631892304047416534334519889972827254369178260647399376234682662674065129562917027604254334371965638856238469486813757440982369955767449646378444240989324676245441875067578999509262494044868258574953299282913605355473471502816274134094335891923069700925233615145909339830558337921015290379266191958501401699569926692726161048981142340599872536789907604452869581600120656102570615590856039944152217155107497104612482956421664260323689255742884779450969067803738829558147200087856766789026940394568156115654285493587303894529981002969440580942421569076189685672496359908787001042158241889560870289478165991704920556486377024958999628858022147120053431154063487793747925890750127178628649898012394722795814641890034099438454862559459510718445884891048930330821844873073481913444628627899457171134144234299454563405622141363490549835950462528785687335743001224391721847541625199111317038648070663061342173841335874235926747494198789783628919459839954713686803032971640215620206878184053763055424787726777740396925056555339646946462783140857805647734920282702357769320018048270356699337290868804006618953853541662195935068675640940498203822357878427010289955042993799555366008329414511657898653735445793844679057899276895698409277880285532619375921930937054673577798337436638930608041287146915804342820549424379052342061513863343878205493349093327839762938102762839160940699830501789484809891613040343501397005776310610750015138079227128005701994835656708326794190906610186211739057557252224052605546580318656750345309939812389615969463775934533542024457944889356052828217945175196113741073409756247979171285379711556743283775848523936307473988967951565195911360775210854840353598030829168618900335025164785920558573486571525325540525037930470223442226114514302730778551269585322799342277724603075968727872083366129142832080585279632383364666691935122271152237102919889693603585491378547288537337941251550022234419419691080881393238923540643838175012547396705718532878603599600257003776230764281466911983415326529545773753983679820958065469869655745865526481705702918242787473051889136057133778130236868199679148059453836376491202868084507456521545573130984186998905622755181653899089591961992310216511394636626007916321955625018085688103568903413385629168271973998542644805781737649120883476222454996483754600586973181084830926371879905030018387437231225458768890270938641522586730429705851905041485988649513736829486854573356871451181089179860425369044975782224411019531975757162252434243958053530265094065499697301659708340744171219439040649449715148019187470983657478464952315163241463960045441168640268144031526385160651598418502593401189683864267860481449605390844873135198597896136381832321907910579506973332518390521172322429236313819123496189460636905313347640534822095484858696586095972013196882097776522821863206094271228448845543664869428131732816663063649206283120532897093820737377394470949115637101506123806425522631543099554964977172300050537198624657006709364198057961643199530421759764510331360298619711471614559055452080982138504930428557125860376351021348744451780473339802105562612225227489437285905591966666427510959917411954531793618808902675172193741583239001165363019766151788194989520794417360768225999574128433849398173812526596175364335850427940299445061390021029568978939040654725699732671519469494753670865867260740969600199988282586290441389792068114890339082339038611267102188958887495617100510671588669362574691717731455775992910788456797021242598098065881848079686300454740765003717607891135323485007047192228773412576460922441233356681612833387703800181889763041186791966756037897326007944599197882768552654917831851671762578094676498290434843338150031553636341992861815979523327475642942721839881155415491873295484848773272534392544988384010840234565458506784438925265477838776231745243001864258713981384802974456771468366831694312776709085424825783771566174980937849798590611459919345967687925552991653234691361909431230014459532171182865299873218868027168888537534667155463070023223957388085917929794708353797798466501233153596927066832675376627050055378143040780765421797718235934885837168571356541855668260078205499943807566457811603502355072873556233199638374020285784105907310184427704823947344119451871720601648479122479859331832747118901787356458247002233881311258367022621047141590956104973917748667546967244118427260622656110966995839745639933957030451356504954743560869290259188334113721299262219408415309486575414641956395548740175789682460899009155191451865906348779159656774604582253776818368053568216517368123945829375151956277704672496829555235875596869364490143586566454004356677108584761494939525188491374578357251375818424986586281731263415070329880164376655263208203997371054572264468488556532530123831583355333988666766633138224026453978275336666360729735932337295253913158593666500663921047091750826849252168257375494676830280854598084641389321857206415001284125139437646648306208669242645048217937657876649731321590749382993302005419226118583069948782567292924136472812695478682342407161323127121196948776042646992385591288859891564313070212913963555866981234803280209320497613917292690027035114174244674327615924378551908291969124351582640360333612040827520256703106562039211816120167035129831990801891721912255332258930913424341989558042106480091013568632122605949227947605277350100166054022085544557224122236054098747636207856456786082560717927919589709177000413480555829989691793802005690017632000845504946697429589999182974244903345269987664001193180503056173505430762170564691772451206280933720469326496717725623796456013109765829374867624366530674220581162987221032721808330659417140310158697297156462839375157542610761181384359929366080172091270149509098337586649681477724385041696474216637018893822185671801381488316264394991910538872501960041630810398236250145321918961518901579812871822165256503819307047024620293373947849164540839718286437579482368600136753024339992358553015019670277575920179479614680651858754988601714602484657505597529386231335185858105071219256174765448387546969255425850183325233445528975265724678187403999050064365485177132330205983722562528065631095136624047221473217562030358765503062903344521638493415433632441795481435061017836573979493616728228958210302145307141493695643590662231025358946500245380195389165318115041638045124886701501592487124698677060877238390111450599738573890693392790277565002015040136760452065141927367563508951747755501649267654964603146162740671735500294176918195996621064622370209089145561048188638055196785855704582170083016392761144621764740830474735126088319671903101158141246296244250786268267476418592800144164350192249352974551541740614529709331759913331961096184370312708052850393386665807564062043556316786776871734791754995526019674554270332428840427321653535496131494608057740379430132931877450309242784579529410228734512787079708423143048888440449535199774944973708668229089017674351500337332485111063644978472074011701408246969875573065041442659617865319767164924272452014543404693705380788975637128356663488550180504750353535334608584701686810167450956372202828373979605029711855326329453474429219066735476352282987389127225583835951712679510757291542279955352034402971648302962507993857181036537857565628238487818010940417879440395217324946578845113259096466980911305483798045222578193104201069561142638954024783089910719762422478927909445275205115593030296302302851487995848218469303227198895459731840176422762769976679405670402006795908911991964012500171207994483870355194754771538109434790933833392738606024952315362310842868289923986615190907948497510733466677741964077657971500332487898810176523965473980810116169547160501187402915358762924720970328668998709317997937731999967490516804900738198039348985363758199956869665622495635647977794919354470436626357741093554788151543949103079219750549598171955394337463394825608112281973179308670787203695027260972792522092655986755270874043555714570699827096398531271276681498987362866749424564578833450413140426758508201919105165883856022397095753519881340047007638366110818163022497533286128535999413720043972574915023114790360095848439276300753819869139850108561069583590874868383728237460554576420961801646710782023048346792697207378984774708687633509886911811262979900287214303857942405443835186767231693393486397097581369748334866437464333881004771206246206050037251633112516982171497858097456702435420423350250685271315083962362756790042598171120330423582302583866248595767202519902944857183793518828267292491965920506612547556942414240387056279988826947346210019189908848745238125026969805588936173050130141799469201889245516402153499943759696014956237966552877985037474694100481613514683035299370487539209949421119831953159103028535527827518959376237565085538723987717660294248968524162544405194760373477734412382917269406216042101392279761212445102327569561123938584745397519155267501508471295850512462737287401032558943471456870527477004701541664650050733495323537198329383324964626073624222782027826250158617057783642832118411146395109334821700730897208690115630958243342320357552794752679524312512977971101016001294086582161595087958349550446787950080342903917707223663548803334177953056894857285262355376780665318141893733110778252551205857559615980193446324714298949741218371936605136595189780690039569628047789797760680379982279737495046629331771101505234053495066978239430682922876845255571904113899644559187649933863592088594557749266569286292119852698502286982876164802995153981906672741893097637286548274150872057315649781554211443341726390991436266853600499699429545649814713165575064345747808976562122851282987342118079853552058267790268010930913037182260501720713449389407587723310706487385967448038928255525552301038189203623189875575471296624916132186633735426815452994084056732406787837025037355930759391722598826130616303753290977052221147089348690026531460806559656024325899426674852810796160543432247034541431106782467760280034670848665538545656267632556321858780571638687912163097867467358750449936509450917785609884882721838771346119259383709748416960658321141123082231275449910845391265496403930359712439118199022665219863858403418413730545813537859387661734708101894171545776770628870199873900970034159387970908661903431055974027123260080044805093244694323682730416850076109373307893619189480046830208027103171279835639596033775157892601370939139480331661921646358558574364473041381235313773590150620852206545976877509423635284666451059867943946526182632368728521945497397828519828206317305969457685798929205753527994978000358303005217005019137857215470497982461434597384283536850389921291337923588328818144643238060752053812556177002599424681709464546992695314871330901920021996201589780044342875692750149822337543028194288526623263625128095425131431937577156621211503378204713651656838654073703568396699510216621020033706283267947895134843377572632862028331095169564577087323780356038507711064486617179177794948179578838506487554745103356848233075837761895757523221744234418764625542528817194861305663079205248379115013033185839579174496576333264270548059628189540194813234668330552112049620200638576077970360235806256388751969995858699598082171563964705331966106878277168337194234925273651998780504736034549664506276922012996336699215512013919302774979372126269071561820633078665090237550746812816547612687143664447113609924934025487161523303225466427819805185732921774938317121969464995797856071110169692222135838691279996936706047236689364067468393299183735272328726102556784401484417464894889620334267855404159646130823400907132231046454177244882771920107068324627307275262688979959596955250669053050857480541923989830221256672028532694058426834810366126470243959696175221281167769624352191087473471470847121270591368082741191153843996254590070306117331801815015703925066871409166967374260789992792346054754298487977688504376227937390233324158751783574128696297850100799643707567506077564182311888797063822565206548692444568013863121647159636877372562869824405211032749004621938082531467093936882654880915953732744011653250925455777763177927245127063110216463493176223718251385708301024776971748278208382538367295340864023220065782421580042553259987352776739817258791633851229088703346922543249240722800770337007670051401463154205344778502846717074226011923374359838793644516712859810932074281875288758652177044281713416348699540826217944945193825038723587086716844031279682167687240117568849933834693573186957672188320169072299556586745679389753650375923498669213975174441015754897737171075807382730742620838223568086170529762311945524826397091417885205034606605785629066138119558807379511190230593309440069550799062642546918032957274869770493603219203722470966515584116218598654069174534600674654162918795063401246832864748448225394954734067536445080791903885180438828867774130454128256569223423533468680435556445491569515113289333362000186694171339987120826741679652129280773905272125961832067706058868961443648065789608567877050891628691628315782275894012941449975835696828966937539195455939727864222465635912503351917621216446210671365758873715908352867500603689788566420283929618689568924940156691562065484231247959029325152087369049614047277947062627321594630758574284110038659369412288493500615939333000527205183054180422037949996546833277661402783459267662928976039768749430776591236389772161593023054977452014746994818599892901234969248116442068517383081584811676532497566076237413392271948878795089691497833306331961758409617292180006061018601771967082903195287907107712108405518397498876598693247394814326173366781368021001764917270414080070072963789719503580604652474392225882306994102967511472094318761414848870625147245731387542022477615429897209709815906496257953868861796847822480218072882052501510001434524579350157517827745464870343046978324484028168785008610844814436844334493801045591646842536198743248538373082679889943422077179571318740711658803301666167945326525425483436457391062505639553486556417700835918871069807835587079955184811269285912157339282212115497659274477471305769271579043386910804924077437193114697908750387478235535710929186899087426597218858860137189450232723811017526452083320858201725831290725781084210044737715712328776167322819593496254501051240653266260207173665705564092239554870521518345615856182449135281896976913719981771436035856946848255662230365720289718935583875992089765509035436570737511908097248889906614035300680420126646210859709350284297245648028087108876367264256665827131175074032498071985933566924752997115133845325453339306742111474315149222034948944390698126903116309871237165126228566927179140608691576912097359623286591626229339269545408939736620498570369464996491076815531479147154871225179839302968604008806008085952557359332116568502146304791529185091086313920648296059297146856588431037681318962338501210399013645227418416059990108947970554248397521667654962808584563216380026370486595309964326811497439852700834712089432065760112728477088094487366483169935642014019481309243470051722316689584084997419209744754631583498254062088784110427638932867277340197732952061648826262223459697739369420830125251200379399156750653745346185881424282614755797739544091830752375877482719847449402295026218006966513999514963149007652617957040858989148629217575024717194863819469020968448256089151518445590476595002056092641574710954365876195242284357927299257988895979749882465829393318132842397983968965200585981798458664856885527181096133150974151965247674426402278497798615557622663952942531415012090972386014664836960631432059767914200891451995483384874627778113657827592865574416751218706475986335328983316865209469083294429762574296085328669443869592798706409091222619259103236645380868186001280207253970509387638646274100131265678770475412753529181026498862581489704842087493543012911066632054229798394474386638715819350331174819783675999715717242976361499302383556046280075217783317655460428034054165406085853158569272390628833582684793796056649077594620432744313892336038139909390407792490776817969444237433846927119851646551114360635908751455747320312475358033938534163803990930613129899304499291202105122983403626689119845660633698133075878501829423342237615202654928544878561747995601289822790984535505640391262355293073717171053541487639285012193313114966158569057690872742177569234948764627230507647186663731912586731331062744680423318331510581065030528262489353428015821240421681075471249271539820553601003229400258873471711716641091730547321057530907988332167984588048308643114271748603823629511985956883053435429568831848775093629457988470934726298370882707313311128316377714393101919662146758624744939231145197969633468426716495643249300307995175060799602350340230007813686602874301505484414864398171175405978519098513714032062014624593445015976192461668832023679745513400150096325047678676399214901888516848650691527703866873639030534780019553816348884169929893231242725997945769663877648913574838645585224494131603980120929968787949731466623502946645061696901790619869235953005916274843233370504888164335991276290475084451266220148856494365848700966029187797446805155037516922697706164782065640764555371129000757724257353742955106870245576249828349199224113322510120891822575941102258498570873486075331940903566360731255855943993234542533425721180866765255482475753981449267297837657023197676153257692466322506737172722589297070671899187728823837332933380379292269845759037052622349932166038607479671997865143438182532129832193053411337016356578817329149687372016740798602245431592524187490954704121986803398329509310686315190434436773397160690202473503178539987644026146035348377296371370386196018002423426028334489020509941456732755497886236310747535763519723653297059910619487947106915955490124541557920267652980720025653934246684985186625586970434338400942804131452271721966409038526178458073475788009927422820000350619647522509304579659683121569170153401917252401106659089284700128611384440098399208445780524706558949056412454271508224129076445363226362427580389470519043597410917482946721439675375168217334597225889886511221555288497148055592993921237915934121555708746428360954815366746143663250633114325503014253601609793465169151919387422681488632953513176186858182455836024679797877372663022115893775793052081505389421378562801813666136297713894514835040268344480982140338125444939506964677974370413961048770144552002583150099007353721774255174881518179024231998676860308622191538790181418441541114433768581616226701056679695984419698038604380519777932089014273817721510660801051293889169124298931489677039064863093145429823265911129468530397131299048296568050887061119931963138264837820683765222195357860149841677306867931722341680332108970931214064943301819495268902725383444448940916734133608230577391477547761907812910903436370850977728157704649991081332363373982484213966695808115520806737454961878318931941117184932892140716157968446717189662074682848519625584166023291496419768166450390493534895262275798710253399562598691964402158212962293855222531389062670372569824380197842982029822092159786157630419407556706386902262809350521472642528983379237213934181430526934755373612017805461735010586309281331310131421450898136626026060589229244968277675549927909178487732671708418192104633660733348076522781846429440400207547756752492649997911646824142908250481393254206301660538974607730583274903080242205083979003142681662118888864033469907680905450134912815642631505287864679228684928437523446182723676831694856635090602348069893989632891687613678174760160446580166470156125887986580924402568582601049489910023064184210349546375933781978377882887711590860048412550405984563074218248611094046797949938545427388485141647278635707516783303896379462309574163419946506216751241596600716177661391460219888935070355292615145092682578001231306587725049192014613987948479084422491881914371630987725778940910254396983567387879065186339265576219719542016469714668943100918056352100070352434259633670934032522220737331523639963233042722639778529614156836003266723249907444599545958086992240503845621416303229416398189094137478747482635140055610715940621437447467814708086553820393102721722566162844961734106588206327742291070614864963116902287653619283993360824049939110409075427605381754863732290170123759409500546855664178836769857129941698974941321913610525001540546725910032733949160787673486254299489432828528802682265441180327142395444981440273888692911585285876132072596121861627194725032726897577084632981911763825821128803581813261406069728532304084931861844646326616934044978301688347668341485857332353900104040849238003339319455603585295649262552199348574877697094675501523688120237033369478219388219007158778514108031561179526622913280749924628479939681472792284441232805046159755206168975276029094537981222815057143852026586285968107975908989985184833206346792275899192116807095180452105286374587495077456063597575294635534024405910482550772014624396987754357009999674714972903872181689163865958894042240874572961100043250516666996236418418323448172224025274840413512967531448776299462952296734121880535741771641406156680965502957863796651042502026929532352074763130102668935928208699405399153670927409695414170846920519465672426614564537744733108485929334481466038401958268432150477869867760006690332979031550670817919020175151671859276690933723185557671581753933132420931681274550205424024860096533966707734979251101659435120756853658900944062699384409787354862291184655764037131264337715746946602092589961220536700241157491502823714057389175573111349757091732287642730030005478794042011741095289116441234610647106954380397768170636533615589531124077213674261052191654428985612290793806621657872928159681540161198710924528828625905156949993010656540619322751586961253787403360252653052497581571995518591440940980163485391195010111453149447245515486433496593468437011906280214562459162531870979270867247717499987874308935099064196411437446776102144199358175595870736290203677645505473392092350095839923414140839879485198072133254881086133163186806771576231902537421763407610314032949813838101347365005902989086058028167066093510086826560427186578259117022446733063045280949806942402621633483046677685670019218794967363442270665572087245529785373828051550668017948532392016760522184702606957258636100625175054117882442864540105327671283720029619350302492795098861283263137518321694218904377499215590092403928309287955860999219688908510108153458049226358284035136278760388599858795783392067447379104270090759013765580923245517161834920033406838608137086996864977158685770172024408630802445427996317939294922575689611940162994827798049130250259548173356870245473684430471061314562387325810047738781127870678297970065238942114985804231800184327027179617295804198965102414935890168984135470910493098357548871380559377010551975219976125583033341792644124101226153231618422998891087673955986057068743220632634170096185453259763013768881786827155970883421378193381470669083212225444408705212196994379861645659883445835704786861229235479608822622362056151843064916740151009831277113093135431100623529363400673316422628392294768439905657690946065332268150116848567923516368919180036257295241198283512768600133144877624461159665772008678323281806928614644426213144756817914967555868509806476982538120200455115825974417132633352885404517570368422287842017265095364372010906189212382716383195478612869336994673370525701220515231734651946591292935577482478557356861167767843304132157609088889145083232179864646687759625646245215568546961509010575761896622590762974887816368114115171435388182083592178549474056559957761035254170221313654692678879947766332687095653380638752068788412755729784367914836262315055253335766988873098218343024470451581295016007458573685077309545519312813396568553632628840721532043698614836916055798033051657404362222090312274756586240298136030344194205942745767317935235622810920487922337914753382644845928901966321156894227932935289209316095922815477049631158875096435617936841535876405950750694761518172292155369074264851396198000968798693064494114093461411779511792915005747891290580802056910348039132546616684872858989953838582055261122768272175721493450141408919907916249721813363125263449872664179084717309690881124606231243840016793009155723389784593636282549573674022530009049561919558936834778912460244816904429921270628089905444426379105244442989685194194369668194990377446088065559158386662563305718289249051587073513057045186166707236548016413968842764769232993711864414850559059881231924810402401878648872322838385696214392441094910359266872012866739208749198267547737295312336820385386509999804809797835629304745421769277058078223517350932538290266857818921718013904897473567466167986007319912225215115780733465353802943640878258037801616947620829566507773616360353564637179824953458326241531794904341055329051680245660141732151870973593717036718985949003040042828680547828592700190752252489753771361444191004464288525324100097123826546312089699521345632169275620231137263906378459825366548215896005402793946188223879850851619817461830877439150952843033094866321684921189866822957428965689559897131727077343733403853554460259696206696490909511899927575276745246251767596514347716082422333679379867111768216282878665786894665386200556895749932393954374725657181506350775549316038065156285730140899857127386741199805240306741828479285919567288603528708430602311656677688116089993913109705551207575196724145367330850162715364148890348682205472148363808949895039464992597500642477549189915462363343342411294036388966762117724839015183450245554535005881433778245145124319505393660348953558508439097056551361921044741894584697712434045216131447702093601663191155140057712580787831976407509432176151783266764589226943309250137249706029955510649698960122335419627571180965994228678954237399911138664905939622602436662574468133472582608419741157784245264716028729678803484358187175916674831417170870189101105227472365579774696203414752138423648754779362649811832688502807729772920845218182723668759550886151879087999754774844934485250865217925889190992338165424205127610744876082937396710836487837849219509228416489796465143764929551689882752357774761134934687558464670300204747968857196851696791638891979840625637858657795044028070159507695444695167101737854558934073960996011353234523850871720966938186141436176897012746285128749378841812298864514302591026534614895105570326587396748515927645806563298698679821524176849972014266721338323228360711929265802374833607935870376799615437119629422575895337832461561112789343685676052857611770692805240444476624370821621547091858153145106948933091363666259199898043201565744886221362025268984892025826625023776516811875916109133412561225549358465519893711292178224215283678593570453903758477920629766336737482612116755187327790134788895186535895646547126192492235247675919375521332678066216985148523632386310094555319887872480454938249770652532368281382767743981791494118882198263336369382810780375512259028726821141872632867970805473674770654939394642886467827733966435070550656314346079809461219061134852848351697527632800598754083523104044458178157796977286073076673201827549395079626271771126772633744131441725414363053092562827245531238111792314481236299862619948424733728563982905396518624870405768813188014457721110772851261363080019511225738659625609228467962583189455551133909751411090126705847901019577962954945577493707607776065335952951855400593785461757206599534849897742575440467309556799420351154608447099487815163824853951364380181538566475579767922592922766176537285995529792013308572275274098474365647865135378967704432008825687629184921677497277513112945337479898062132185662300275142666420939352957480854624779826411569686219793171584221287172034830126652090848234563438775473324445460497627108001390094866274796013348568504612188513279754731284592046798014021443568142384063255252828916640716439364488406009682382710475423096623770031859810625654488451023782813756250627532209715607753911001510679747910400936959916027013277977126273256069882912372886558817970303576423698132367848872807993019325212108111705305005568796955358237514381921655102266417054515934442140624874789346804001995211318368224543238195124114975579021337645785686852833950733994635852504133833576120966881488107826686392904982525299278735829716402966800413827911124572935917649978622542501503303892816961872680940307164794684887705592072646251770880016670166552336903701796955721798449592545532558324480717361627214658440754790827340015674573346199542998000926388795378564654069214720445688605072309963492986625744715476117910317227626182028419574925121518889421562038295370786728330484277747073817352430501349923412037623444902134177477559777270919144885096256574330143770004277173657638670257960004722131196056030708305186488516145820618759266635022922090782678534598656387061039412882317045365422685654742532396777163623520201313767724943549021172517942627803588269945331508766301555703344860150535299889484046448110088573980100011796546257560290995371952747695650989230281497561275079239971017088804576159319066410778768279698569564098834823114220079424188219414770400090952341163500164865625651743207064382902190476104260909224775483257325729962158395785491865321152132825061754320458018848466048723779662023823989677316765882645949547522848303919206132445962917462226646730947364830157463353826928161494700332488443579115117306172449607986972956605524110602987202210534131760550040262425280121576477977220379228490812498957513243319597572728812381780931016099226122757171408903603736578866586478971589053960821301649579809783445995709857274646757968988726090496436197111404635532328386163331925050292658349946012342241265348627463499116460202581548618277460161141745923993953069582674710349279051874062771821159777488538835831289172422182547437038177195454480675058414034753977860784139633634925346272362793848799428841330162729620555788279569861839937214073082968777279360988488284674669721063599921472539224752220272309720500435045201146313052654877298597032698653051345257074310860171328645877034242000638657366756872771791516158860521635046290276289366816413797539144649764717820044013825082243971085221705579987983330182613068159153733433500824919455224575531627239585866701946913798198704919300474058904516019558189027218675352250475430326267207068157415584720046279439411993148386082757563719193188715377248847000799836317286066784913563724869390079706802564785005644984028378089969656298976892904161598403139032391479525660298603388011508440261177622768060640568901279746295126830124211957851902032682651534655345004188095363675078977139056398796724216140371525720685011930819732339810992784183145199840238121058639391005449007228192803602118976407606941913603709179303798899985002969358231848173082637960689850074473703946585418558135658937284559840520909276335292626900999841526680430234369234884894335394483819339159232840287442451622806614538387739148444474847086644916018968091957221980336038524706081878566949946331806004673331465210433171810157307978758693325440998116601445923361911965076145364924904591972202316416798724256901618604407300619179614485185371507563970960277116011320768892821069033120998063454986491780238820884947945469633489777788474980294170078702578348794541136791464205364173864499756479826904904821732782306636950768199665485127644598122705144820955673984123089600857583913616852408587239027255377330760281277856239277329832619408097873296849142427607381527373564737614590401511596362150859081959292132911674500562476750690737967249511387290243375904776232523250166055468884595227396434454950929402567413015732897444865861082587094269915601749617258448014283587200531331711710208754995067389062974194575879149138557749482753955314593601823370758780057212925235447472531003510461795917122990419043282815816143874924804495374178681212361969989330700418219574122189221283822904429363127933772978435081785647642004517876208748134937216419536278738473232157240404620228641551903862660812730396982118837104260509773435429582964500113529616977953767799268782691636478872169427545436627260717722200580331723320771581604895825366394174006279611409692082981808998736355392587149209705611538358675897564383872607296223526856196222575256466906497712435604753789791514558041323657318282633510204855096231424946694825231107735657470794953163493000906509004830145027528470930948542722259457025843972675678846910498956038912681882257127935419256762660468703992431506155384412733831546591130843452452670571446403418147046244414613584014262742262411565744240018742897467841102930956554055453100661742609530385627236266137609164668670346678041786835507322689399899932554869578674467029654992592779579389544838978947172785087651558745627110818563507083335347397703682413488293755945178454750758952362667846114201635079119181471641075151915291992698500357361724344453367259357237205032650634091284001536774464839893997011900980205539189437078858363246051432865676553334857083568971363729796488308985294635456466294606267867458418187272833645580905668170370286700902753866988160919148952026461643403210126814618052815070993100271829423118273465056253166430128444464930832504654203276978716839199138519423693366677786801381085470845862870124610621671349568513594042973970919846176677177579690109230579693343207186002755689985835053130991592213858267047036844804272673731413557918533348237488847415006368318893123910896394682001773883520372349931913156197529438059128229659549392875053830115691988321160662724982926928045792883461212244154401790135751930167315254346832252329332525357765308952245492657553706474381022490348597698349678438058750375562623376160173853520824744343775461143790876153000154012957034205770653171575941759532670106411204809366353805363789915794641096290198997941180123814246739888328125682116575275436872624044463190895797033469416443077002738451291863078426290375310558333177235684527523814873060253921567408215862154531354184107596397417335237117097702284411778716233993075294643498962891714213766328084717198237421809335649317660826113208336448624134378619949046951792529494490811518973304944488596453530743509529883874974801334494011463298598361687143667178810845747510285601118544049935167476722642088717190783639576933823152124621160099024972737830263210918174448697782240249955158409664667311385756773625029901690480261588476545418157947893054588592267507455061282565832737215702266439239842271480257839684675140490182570196583318959500876588778543103458578190229325720434146835301923294095606344479659090953985279907185947244527467249730752772346740728381743524143869349553697727088715948387794291845044235333434832395819384373154813083213522007702158483353366093317420874628016997434565124479721348815564760187744676914251295299708297685958363419197396724721512281380630020002505475088897436076397084761895462484956434788737602382814635439063216304313735285060453918995876116825791116445827452296059454325339233050024491064826648515001010362759417106445910800211228595874210141618574278739941115763289909696820819328487979409858350939763823764061917008649002998552803025830182383092353066621611967530968005371435895136711128786123000806370680368102376678643061335690365361620678375003096454325893743739912447978257821828136148619006109737142142421763634133395707005418740587646189375870037040662535449343005076911167736354988052559940085409955282349862632887522338657200151694600139573248634159009728698832071060680692605840378750063394519543271110236056621807348730364885620223824117321564210238750513582687470906370369554588448762519303205272699777705797427262280465811487396057527500608427937335757565026904705575629317700359502759950389734985377908465212378433446442887638641906770109169302769338842834951994909306931753270658053651256201973859600239860888476457067411615947147246813110823183770585583910695931664420904819351663512473402954053440892011500998159430354512953847133144906844056743295273923133967805179290966876653542723353702087129715014284665034692733242564721317908495331943325577674379221279955247603137910296858018091611600209131247326272199270777638615933616602127761754704282162471568184952077253184874303046347771049648186419648938415673707971962019902616191778952486998324162478215287519092740931543361824036904989028510574022987169793375044811825500671797888066418142192181812445926332502965504214324631474458073137952733926775403256771864331093990681147829301687399645705943083477914482012271933366001142949301486212239401684617816671719476477190741769155755547945893073431481046982096725243999429922563714650358080746224815751327131317694797710327531634172328266077628285193564747993777169509806875437837852708089952969815179032512540907899159831260173618217753351690831088733204770176067262860126722980338094028210519590787059618034267926243813292049909774458541706007400433668563633000138839074936535853037040524780346389173213856200655958573451330460066534353093415633892705374899763672428612739367789326708156566854160732824175800922881687142037542783690081687306248113572170465334096522954318205634897997813039205222393086060582914653502809643876912648007891416319824096027642401507623437519490276344793034371757233016484935986875776980488966556586198728336081247983931945180960104858131070154936002692420978735578788318319179750027324534223291092166040775799874684040795023323926249609559442158331311745414307046253786982543928036186961135642593022525291922214600484642210735246834645960032110538712579956380816912930793331066157028049549788163647313657697851954929186409445092453744787503092721800856874437987999146283251140050776521627774558315534459009195763102774730716584606937157683831990551663964837155965067748283478109431102927721488315266184879641171908032619625711592329867742758283727321267213814176673266226547699695896396488146503644632434892061876222254105381272693498713247159501670655715844950182943261613729939291988157257508497739385335994729571152866483332887422520885466508292412538865594167403200771167320366771014617106167923779858651630218086952269901479107633786966777171839623541250216743587134478612917427089731635907910100259732377836462222174480435779959304626952305185541891964013504921277822943632131473738643532227831418154167321359723471493037366814000750261897524449698425714286937623927524716129693526327186329061796972229597269707124197443452373262920878949560621136762733505362641438920001115800872929278329457972157379234797070757546741597317686555635446519693816696088516317450019336057459505669356944201056873064706854036077419441894686222235897560434477538760499378742654249993139799819752839318927310539868244704980142458100950101074653942448293652216191181993147547710889365671076806962462276792936872076666984028193990567028738779811398918741825918108374595931944598361752593926063557143964685139337468429647983470297041264666472254662100058945214063564489708943841456350917373674365186927463704127102424365623724978786211202483467729802549625190638012140029775621048925392703818071736826034588055412785024887917297258580891620625813796927254673622280259662207686221639687516658853985605557983939281567634028252726899320257378165580189218570084390672955602051586432133221142902501139245939264247912574773608675484525545210454480291139118896918133903839249391979776661562505691579134870051769617580012531664357754677294487759090850229532044679589596844290348913414934073496361503270212576080706304488982660981130232358663930526215330857274255578412574261944434479948186801111189183774332207889322815864078068110228692305834352612787265614478664003031557646052314912402570213138211960641682220210524890226095229289886295438476732874669397638494006855656694795897213157856941738526182226327392230752486936573148837649457438172627644530814397448580756646326139220319898732474920866532398534219823127313580672590827085448330810834298979373431202767085633233621882729800147359172133643276265860047008645515590849592560024552496779185051066678322896358906717335589872660781040892564948381592641883363607875182143119063488922191155661651256636078420772636255521291607960824093997660847987094383273304168457057161983243778882230185091765532027477494881279883528604705835286695077585471286105562577845789835448102866774285627641083055479893476530645617881616955156085555694360254556018596496851735607946386420823281343845570977406096544003022291049594087666932731585977647288683696175892055719090140064626784310578341107311313672852805057598477757118016292675566459727201159954779607661503838751329671945772509439819610458178785319471975874120249435615274285629868801575841061093500914735255336537391047167446354471279477981000150112406519336146151488043801220203102587355055213376300196758114814244037679103033964569601749644466083423469711432539233552780478094060386774699528378272011473393228896397067862996208226247300897336966785572469619779598905381503114249727661362704027315117952000370596769351263476822428872476323559888896765884264256544541846064404443899144554620858399893456251969363943901000917710115117643157129835112948998796140243241691995250017714231098663689494443109164250978630699250970081407476633691439516577607649721959941566778569708534580170240445147748858000839666077052474122294246415969754188405855601995190287408762502060674598901227142765912959604298595497340592170548909630644529980349557485141971744616102439177975884182240999484297196711721035301608321031111606310180760136350676243985273163794089906070300784064304087704216652359649007539948458377995667666855362895281309671892337360878159340229371544694650685917322843221603243686694293480727481397737748880724442826095028542240822588218600375846453913650502562725500877541508069927751498491417711535131330343243005801563929581569124623427972419840136987379855521280312081358297460819112775537916701825367310519608742673653435816994156812268894074733262404705221320380869598028661857778296884347707362920575089396937435497296838046020855334135419471578241135605779186811396556823569243232457402539766869049994133146560906684089891472897574687909431440670067406007541085170050527941757778345351557812889824540395543720613047877241743682912474917846414200449158532289947534071107180818925544237461092463709611467796039993241075072552167633571081341640624259994320836615634390649875172785117812016838980418159101317300939926886470959706044781470822579940982994835615766774092838067221903527171224776031332364076430764097461033281557776119348706388211216501650972385724299264317907200087792696452338361553238090470440597816329852508124137798237119237233974269458274858446157357457977751341280182306169721281147429803855438641163487760030422553060187146407617778532287790589384365265456867098121230296809129476204878540151327767230420499537063315256467322472325696193242228010709154026401197035588214700453071324396736255776804102652239688549773148679146881794806034602083486718335878189006788768568953275022200413792394077847349571686260138039059997802333304533852316302835581800272522592521680092287418131430202485595063239256732257230342382203213358891533374010428896820138651953079872956230130286575276851572641016237094611128739959474968247589250222606839958668924507883327649902674564339994568276683009279817797698979250435361863283080729609120996809951398334575047445504091249539981031750020598378557306077292010710466129129100991596990312274713794134613977834909960221126892731474766827958712392730629856845499319606119192478785196260268243103275169418113753272357709178675229035759280517042037618836036484641152205119895624642684390658424376524932247886448154062482541790219969611720645431767114159131133863063482444260911298380326893292571243346776818715257377656143593837453714573570559250506169716361555738654838031931389918147065992461652703212257446035276250123370318809493693067912938326808589868246275890530955438875830292707420262044858626705421167542455349966310463429131867262319632434540980217951809217609702277770814556568220326657751965960126175816421800317012621164174760098002540844291324436490565970425051754359897768336205177467237496894781832017180504838113324118882405354817439458561149707539452109777333751964474660737507815950906548250108060578793031213871157830581637808942989131864584032673925357464013773427351820495474928635745413014291035885326263119259302983554535162325328891176486786360122340507693751299508907141836852062135174660307731205718519108197316560352098534303028931869147586360274307023586228461702226336424731228183812628949522626674360343429123676692854929949473836408682536001276486053844137171343214379592677435438189411388408777357099674154672645929674047322753217957408303615510113973898663867919630590561675807223022028507261457693946420457491399738605403496195569313793729253336918791390232397491252687106421933340337327766523517639431548974552114106990794260284832128891300942344651829207556065510813005789375682115421168481684549948436415783359789353679942326784556269947961254050691571679340235222459417944150348642422578931551042632029706338784050878846452255821945583287321187034342894469404272387464677154023045438860274826546830838992944916831541534580521374842059200853477136671579830075070029340031599346049497464301003961512539882682154756928192575066914212680706950360353755188023556120873222270940985197849538619882490640509746380879889635506237992875117500907255097840498514120269412841284831405112063564352216407886696022833851467585752919186233534808683753446564137682073046500832255210927481728610777923774997412524429575924495604672849176282055196105868991686330218892345559206778628479040450592263360393091413998229920417619792039645325198890554467216343157451938669814283324974445047779335504588932794411412878949791639780882866141572368104782064278911949084840655159026489618548807191891322594859820289556213938356237440417064619518232077067980508555810013616357640701709509345123430401069346190347163885159962727655431042955692479104757569495319932097558811010748402098437125898642650391594321873471940202410119806983307027559720206743151488611903090533385465158901606537943335895255578380993411893956195675265969661850467290888356447618049728009693428873083189176036373874308812805636850998958162121726995924415732274832388813008476560298524922677549071564801792842052436268117178837835837101065425765741596364665693613364026282212664423712766105039078519346597643845110704322397478929962283288840700284773679775200958982996245088540024020996349912953205119479629249930362976543960609509914487831335028556929356157268969675354305363665217594426283264670541071972863266083089456264719453723998941490348436293569719643362000213905057393604848635104988269164355229349952703243288186588212077981684728368158993862895135507586187254474059580931143834116461154846425404223204196797471558274907881199947455028507072961400257971748952900161994727794963497758702010801423097320849332810857169710049061697332766394297309485011046978863016874237984548612734570983328465237534584703199187473413951239209180559380673875385095583982456753665052326141019102142423080048807426672724279820596958865470373789280926935426576544905053749921433440080228618236018800949747457948372676200782011655224926551516120008991941499467868595207571925395366934729819975712365567867518519394362536016213023548498492162426102672243484340763681003324044463697911713595431312990685970174976472334088511575045324880499689007350974633857047564290187522840038340640252817466706534174718138254013810586503366955343851736393477999015339256795381815333993546453391782243580633721434399594721733619815979511220307181109492540501736206015013528840623345529069529112755127328306985699841151607304259689776312911243357206212084676757350880001127182988043758259828105333488901678550775379433285814008724602057014721344032738024757028973016518116290501224217819747596515163973694616160463515977653764006647178512119018139477776799436169975456808589911867634879582940557148727996630603022991519082920333337732673574435634475880653853619380906553116675803859921817308655100784844500587098405851399137323793748604626269663998445443765376473936850886422842196331615413433648070946991786064179308392089925767139474394237549615661215095873578234673913676471571492257297589423262015766558976705748428957389783086335036301985957486811053469732194704775491246564957273665605944143679511902871545140838531680888483539370448512044336357275000167822574568965129407495188618551189369695674840248728019718151387764529353682174732943556757212454201851222641825095010392481635880707974232414096139379553551758445600630989235086078050883794451110896368749395985408138987174411278357854381894868980881307129431343537568047704878885363361698047303902104739237380587769588432813743254415771087509027420747402221255467947936508849490665111788077523649784483611984127937852922049955125836362786795704839054787212637497089193175360813141345861836401585648320333027653145234938252466495208414131493458897452241126279577221314765755360896126522973905110930185088043480604980800825321867201781280809897320150903555557511805691107012417779987125511384058471875285858375229112552653631407246549731232290943364007158155457130256071597836096038874573908023123879339975950579646684365745352748777321147973273808518263324965054367111803462738060750811900415857027210534020753900149234673548458306203274285935533809218104970246838083190375337092522663726096198234615551914375996235082476761939392857477951924766449542349781636834820124381046195647175542189092888252892370630758842053657187043379892150171130951825200557263208437390812004807392211802199817830920825121967931051753699030787373332682035698129196119819509092744641718816828619675400825065904157863343283381237878395108374469962012274095357069191187739437114589204186429350532767938239394070891931033786219377082596484211808329515101092752763736129456089280460333784887818380723026641354558638276975434163877380421140371704572977028747235287570201535491416801968411573904186013186682853774998167272750547874309748961826872521755204747677815883910206201216013002451900485324359739889628270547238492810094357156531740106114599029008379836942553072558335410337563266190427597698468413544928322389889265437211734098593711572985695745207143167620321572775676309707485414436558721601557589327556687358354228975532110259069935583494374071963305378381258649382281215492670768393919939228472751893007656118351214286640769429700507131897711317312955806866155537790891383004739494922869180696590216552125682647439753221627541094330237796379386791031310568735059432504113589177481702257844638661974117513242562833481177206712090653097266296029465116519663328157745937533470893886501707191672710427068947148585869323116162852025741508348871424890558904648055151249323066928083196044990528175617049916104771723110695057730576384193356670969403046317223674385631395494713038294706629520758390627772008187303815865007079969246730405904027936277368801814370766966166542548986292668765971701213880366994382049809672898077160029897108904739113962834722535159030654446291325205555999330964960266670505498111201413031367496851456997291169241713831657991240217928679382462556164927406391801521536167994975013281443674590591304148715772072578101169900501571779845191415142128962350749884997151916862118787790539746253658289012706661720537648140630619028979799151223981307760239573710663645222126175385667204183170095604166753630973920009238140821087431116035182984788101187562740526318063708485188142609633697482580499885923871639571697475216598542481671749465984492373368451838348928112698770109051729020458588430578569837530722334404281948762614412712966531503543254454447858772667572476483919696082890583046782189743592659125405950122585132741803849988406982516300235710895507467496620426590021996681967507071060042548412041399286363399788756825778603307942542353374107597836113886258060245890874817589751058324135930765747506764022814028677215693306531800535182046411181583886382708311636712221347031200757075919448022241850323727965691254284615643294290425879991780143772598651823284040648915734908596661700248074641132651567236170181888107473029417684850509064584305127317091663649567278224531706745106844708799237764127655368824763132261833959060753232295318510483288879732291362851122582405243871414503779619185244808921881068662774207750078168840261964109934571573872226386838982504117377771887783152555665318995339325210629318043478578955221192877932404566018706988347627311528410556253200329868328576247717729617808177295202375727755767410027730038982752305870018180353649979585785083251515901836499685131564148764050577826818809284491672969821727678453404812235670163140233968415113972471978345200958663840752508345414542647351297066685570321980729845790371645827855657175539911358823838525926501989170801677166315651094355003407364999748077472266012564567284395314573549670473814958121454157467326483130190920078675905586790932898228309245936358679672914081814762251554295958506134997400366536337905533246453687397865111053842269812250099569161480198225856863017156877195981956247453566221973511402658312195256027174297794355665544316002571134321616692733451205251517237601727623152437516900566316092832923911344061317611421343972302061961382682142458993681383507664237021205732236313405334297921488791676515597080826544766330291397959112323704205488636444722169683284153425855520729536138785321843300703057141889728765245198004382912207311443229364298455449743292829954200860402748563449905025988433977323974137058687823718031020053120592986498151824528170471145206980149964187465667664342666969083363616780021465196765290253017606960503604044812917845834890057018753177855844471615429546301520920288912602497839064335108835573921131444130303784072998652438120507795649198232597744767939085299817498469184023050494220066004554490211918326124801881346335763650729400650867759168031588552001847179233818747784820084735766759305422531673428073509285331697060639416949342809296792649486603244564625448607428857459364522863882728212704591579101302159152967037589176481999305432206733892828734846356577031485891964402071774608789780461034837739077727393243554176680638983077879806373987005676922381215635244061725308900913686735178138217493468097607488897423428346843854488685704463784195497901405970315178187017623938897360036657624376367469343825342480612904638319310446332137667348001396638786897224231300246488682876534864423232338814069603897481385222769766161985899489986216819826422242873908753333571470446650153853581819615200629220307515956202279407465745206693866615907758386142191740398280814106985579113038006475622492739330077582401034548958445053754913195975138627545790982321085309606563042375011875566559848914398682764187865131808329993914559509524725042620808122384073915487657135114407006884280256739244566106522658910917313956795273279589953108588817081605076713377797875180598203116080385296981697919953549597207887904329285597675083620187096151374526514249555161886039045547150655807574476221076327104501471546759647695106398273407293570679645388458266545429342763588691412252255992318706304443829070339981462383824937463026919820314977974681338965929790745030761442810315060177353854174208452866229366580315940269400197819230248243133855066473261494089800495622582861473191009757052169856619996183145130371482287069920922776035317074448405193211036849787937898766225435548450216877041549856221057730753143269330077513438406022660528942710064488467893255261851023614157544075175991319922984073412599254765868424856001228761610615545157440827578200909303534967371133352299392768822760025835946612886686904735553561109759553639485538906506120825717349861957001288547804539771183876202126895755068789580648307253037726133977999843462331547174420041822478798582935695510183432370568242091416560261734845473412531263594215666267743158916123273470490236187424807008450721866533953592977214167252093041705970904101766478521062900008042076013208224289496643226761305196464604851211370059564522508176504128668719681078794804095384156162932594831632168596906648200120809002574080925937331521531170877659180559806915939618835427827644167655698482829695640306165364516354619872739436232512469956307516578982525115067935510234898766898119771568482874261823370651644125078626838654099291987175273873362931196710800662804255354387486159717827330911701209701933813898120508234776710322086749295056372606808221400173105220359902588402664670504959768198689883844717837747787856144928290529998987410869469115136306200066999265390425787895116081622938100808378412246120891518862015839036000325736688623142195376246090906592522801314087097898986315381079594969870018526990779072287639165602377624741972063309673964547419288547521846269176789546061417788828009722259165819342523029318935109611786150667603335627121993278747942306858012473079518272269110792984096140007074252328548293361815540364287252992079910917974093209718399020624888074752600355803959173302203547342684108030304595242867067970484168432459643670263348515332825318696659406025042190926911955133257520480378279297886132209225072003353892921885516730577868756333522829835704095500241141789684064498854375811710159912911195685008392747256678928235280587628494466404227784535831432002477983459515882563892466871731621694509127570401948251221691387502056952160785776017736056558443378590667469787200482024759393840768713861733745785456985739125833873681688665313631242979213377653269881243863308431973925239918802862404166640167119361680141930456436589632005126975204973662696360834703972155015090184565453701528410641207695715052183416108642314821271246545945009963604083429817048233251072711542589012820701913447550679122732177611973142271147154839963918367423843323913947798132668198812429190811145790470536560565124503401803308695784264630198679571512821576752019795643066871001136266601631072053757811267523352354811063227627025149799614129102541016892783571097151722165824314985268290141321426022906502090238641688694626217826563335222628669782792116440833541986189267333284960470621808667744056405360702547925485571925730479463206509272125687501626515984513040493756003309236707089866111854309390848136462263811145604488016155460615145038597835813749670574765405735695558524371777998710833824216168945505793683816593570793708334264383252268773643706206685126181837912155266182126537141166205696457071035957856084030625864252389976964022576535429539778787662642442963894377359883898694003617200243427004164443083704841355009549174247368710817951408258477654640457628855270047175471106151700781522477591022980465893294513751458598688958852691379128200310973757163024189407374894417310590043289565466563701626750227457370841420003843674056582916751433014950787188673500367266045476481301826253614446345294279978481521904907785483392256466132845424308849158896508050934109265479076910888343932065016176202115493549790626273271356099131458665138293502279481825773297425615335585964469633464716446238904677664103249293696646869239907501643901055604656472661749916268886359132702086127583368081703379679086568887210674079020717771599400184954257688243401262822602061021363548909080960695840851550777999382693646578803119840113630737183301984657642667417500199235945103891754575263795923880059438945415587531341150478949826748072586609976648517748127249789452699560747584276609021919787717852283401694115482083348600806743127832319079337672457250624527733243455819560516613847996805973514460514466885637648745499427055440953455356736771821252121204464811889108272278406423568101265078571694726608106335196852797864387418642610306865805415384077331765692900573870956999860965960780350764354354534123545485375699035341445767911921931468159663829704250000476352242079816793984688481242081647695759258295442146238834110204018661657800812776305763961732780143754751879618383520139291200474414058747679716970799800171920221826128121197662838587539959033616727328507118329752227399562878262292501847648918224808150868044725382391271403082656538536168579819158112985827193292173272212224689851769170399927865918956041374363426157343679378643769669900641794472262848020177771086688641804850418400764033774089971683014186228929906441129119620432104196326479210247906379674362657226078766920763894326903781767924414698119150132184882583998566056654303585316722555785126195587437981379098564016907427786592923275380974553153785671049721418976614140436968638510399049258781994482750579284902771546185547543835216030640783742802959379963245449983114693605814719629175232887195452243606077586436536314847593927324090987746075977820344299107715353532583724931723446495628671934458629763949497379489595886450971018607764207739933575028574689182708701127529398216007083429977827700393998671398182807271660762113349403495873201728264229176162527453993312880024691178788434005537210120001798634623956906464217801120992226366956084285009854113668146955337103268112729649766848168946084807791182077179073473119700310698161391896851667889782485622609014129864056019927303817593784335804090442903258706366618208643972059575442641508586539459382092437781570344878791982788097062392529073409332241454864188075591994104639422226869090625837032380760534428635813276944813715072906424104737885975317458685588878887005090089270036657868183545626991149288229209895342536484805284760935648240439512340298912737137684437519036705082762522854340175390051541773725943254434242745120337224686868912390918885330384964224751898189707343678400988576294659697199023161270230919530209862295259381741958976658396944607199632481925082496659642860583216378311128657683529505666207454324131825434953179818853147189333512091583242461742880145985288574847135907376340007525172998894493011895655990877460065769670885841368313079540678791641094437788387818902023391398197230486121847153682970723405595467494184670854414044082020964312501084606860342393219720768358363206255878722829708191793462372424537058645743382749118143374950562518857098793055752670121051326567746256148670069877569290584577877304133025783103792954405580976647993153996162426614460787248140280702044657701248407906863115019296702485031237357706232480459030624669996103292830489025966588147932167768068696899030600313789201487646842480818794667536390983874465751632479059420099417858167257578351173397325922857064640539803793795768118996296655395844424168683525715574126907978387568509501316036829184627866340307057299461952407462144200177214344751358814548140944207551242248705555432128565418674669115768444771942145563790581156203203346550302750937566627381480901223279591999678488350443003454405674362866541540247825751528844576477630870312225170223529495928648906311613578443987603817523557100673986147224573792818034948225777853294392163054285534948498443652288880173681936330063404256767581027515371174713287229998305062498210464977633578555512234946095510441652230682138817831982754733726269082015061171096955868369957815157662879837232396463942004763985830865358181941204244312859497271664930269289171136803368567400597766149593245234962209055850780839691815738411613312542790149800191085519082498368056905529477458950459724955818305705642172087608134455474668266354035848244615260827075934198894227357015032980244183227101312501459413168995532869321360265697314503595305231839989676146232212086562980739196796905340600246640717704618049361504228892657437604073049776824913537955009907576805920752339346225341002386462570705310574422460305626601834039108716198992784682391529762507774846139548699412250987096235073311907614221388889350335399251124126149788266572708065198918951963396255641663683510294994942379424056192389572148114052441789187028285150902751076109482221154646623068750160499419912803507764156397606850748349098427678249419937603348088829167419489658104887719609699341801277057001774813603406744729346645966200270505574110611467629969273899148762291860357093557289965653606518705204568987155184089776283924343459180320431676035710170437825945082427311055684480827495824974165174656639181323840925871534827139175745397329200536301790740004172149747445272200692399437779637228172557080827135861451528595789353000835403350799548375970089362300204881970089149239982893400437476041069260466727649112757835293630395376066353013754230149257636442593504607398045893465100105760148440426085706474707592356096819106630570104146806124523706028726458944185218108123342304719151504220233149450907084449646037924721281530194236718367381192459582031496074555660942363021492778578573526114065604520597717905959904433906775506387565467661374390450389380168362244592509993554570980646904666553157846751423066342628541564436543294231963356781269209984023550887418283183457500186396071530783228576531673606965027023064581482386628535602605253774431499109001800965870061418014734300087752720828117974327927920024432909154803652785065233913600649556377905876677580082930775007616971097267082191651171542326401959409201823381620142718137247596069526766971196075522655341985297039086210098648531767393435554577025863180771276047770179739456585570948095392564602177203907574124696367027251196354672842602078416648303538740720127633520971425710193115722761401666906954180859933389702480287044348659381870351523315132254175981798293103111274086340105240778781473295784948947402449172064443445370574639822978912434999391982447727013572889176792343922238032091227964993897877107272020940259383121535429740137615205028725024966363595808074531530313780956549583001076578805344467417179417189708540510323426773709891577754488680256457315594241154350810603044614396923124190062485248837771711653897205827675591792270389750661636820910654754138022685481586895987324621634929885862382093570166417352591386754150370654644173985994552749348086867378789585350257837478084216315544529054571046959572745564480786595526864088368322349172783614272719069664472802771416553618303273131936746243117969785600022381330136283690947860175137543002534485743333716453238500958771265055955793043226776576473919108792906150169357956716729576536644695114907338575747447176131879455818228026410097214840190281422182158496061832571868200751551119242810711906589581954435358977882885658401155144830577168425364706337606340016305942969665491887400546295034260614787495390201639137421516148788186241487502920347973268932984686751569985793651032365729132736969368485972187455114675361126597003894521764189307420919437205362014877772942578430895495810654714713344584512444528192789244818234558673442101912839606297927701740094602328416226421273119529150081368091589599825747575611475986727987134071416028806159601651506657922919220345086494521428993541200057047748357985315432344630957910141046189553265783632518347904758077169779411163103120115466527203727227862579593031181119204993033602001530514161295953436441216456064493266049243748954726730761579276940149275135912532083507422410249394391030187884339223244715709867452668803561124951742741976985817897882200185503060053502651971026968542100831581937755032427899111976507106904369741002740090741635278194729503498062484432335046770981476010165948034313499460886892286413413348494663023239734888963781799245926605059531185611330899912266881385610431534015117801178566988730284505535766547108334739073819997384517202815754012183995538464134740596035481809172289655751694287203722109684083547217952962463838581923881256646984959721303708056474778853599146088023075298980857832534567379040336443301390269178954192600203968514169937312475462820480909216627648981022952476303692535383910505728075001653301531816299596609942998408765300117942025325569155704785914446659174909407404036007384495680020411496249420097395828595193457483681818320941453847837006474948873812841805133693040459131538484322071022728096491077593644458197806557688517448537238966488119265236067739370831181443862334608821212716319225901686793437688157279095052869432145191087343378245510556938050646585763685743122959088241088265335641402806165115367917028967300002783153002859933901054006804926288668099231492985681328351233594269302263017473579186242321532408591585283785870527007511488557941730017699489096554769462381943659048977268303419489238380143846254869674300208698843724749638773763949250143941611017716002783450309212261513498252705009868011098591135973336086031390936075380617505710167919513397632597418974174972304558821803589924543797693275680180705287772724643350113576856968719193854060251219897805798318296363676627345506498479081272192290672266208221099740908508621130570934721191657827883067385001029082456945659783080639085469047745911464208221777172902121938968018723314032281715639149073622653116185709583696403065113605841165571284570816890745845041300887421993549423560469634186327643891822246557178261938712331783715909107140181821192097838451335146293079637411419567847341235838563850394837301018238903082928330759512459639982509670094076577063881632099589267287747018205059597715560489938471912260063510820713333410265274285974101586834885190853498118045696844705232274335650930068642009498643864455102103746468130425704520198950554666043325751004862026398800636142620674796171084344498495590889202212989387264184110381181111666421238885813073518513080558801868998223006401202638143833684633373882803944732956909154513425833260809344438097652648670496370301740702312240416206267762924043227554835514696661277519538420130926873114506534861946247344207285655301885738687027393927899806737545529980088078347435158980130448300308363828146995834045725998416437111738856460658189395670966784045372411950837067668171024589593429068472682514165920977305386076137734952294481744077077532192126998450690609507249836533161729456462287456358025906099706087396111879455130985337960560522621124632060188914953057649345238333094755439754877350277583640304591273699544086569944295758848283327073244973976460863864542718834230921903821927889929676384046660210061419572265540488152003338902963391158563403487110084825541690398426210653203948464840646423221788265333468544702542738621404402075127088345407132295724363187201237828359843680636205214897520686262532138668751461989014621044343699007669754620181992173837609889287891310408865074854582652803399165576934263931063808078731191732794677738228740678914973576758418561388683646501665684012214411214005918446581794622514060387148932792246884371695179258412742390052864131909253632091204054994681105342546173098088825293615974630551757778029095344971993317972435816162747414735538420793522240439374370526175422533008639646257785023866705910818891861127604454013527749588314031864202370579585707583863014992664292614616311416813802317111040883339618951948394966170430271263937468628595916160516512917308058329718211470413472975994986193393761840729987809902335627281246792183610146987783891163850586806804475931933619159325915540478204952967781040270885187446072336020438904706801502353290012932389366735160887085474138948498858715655944039917470436134747548161483709146015013141033910757137079416727208023399011472947868882280735808377563809839719173155537921824440203482405641156990124030472233507376924210705302249503978420762081720616789968050821633882363221387421424445523782747249068896181312631690231601748119201993742889500362193830495678153180305677105715571743496479774531185813095947139082745025381839878707736004994799978965951586254256728927830122312711490090171603225868219962264159468243849685647471535023825354665066509062332295452036204546261845968131340591683861467278006540600589243520164038497817810659906821799029071210250865310879068577346294172710551173149983735206748745495479559065422770778551764405991146861735416663875696832414353606582322102579215694079312903642601840561000498119407932997331115715098053455424894383103204091966308803908894652022955433352658499299450116818882749759701437454873797943627178976214139962178495092424780850731272662277677536799278676322232421892742515962974370788614561613218053620652691776558547687017604202215223293215475079219593761774774696387544913147873134076911527010190591229753593129176018619209684536693699800099348711112354812073653535719492020670944423962278402166374708260560032219600415674887492531159265086287322632181418017491411859217787848482943694359217751519161818815202100465672070233828629386600757635522932411146433660116636144129425104009144578268317994130376359047185509614345486721940817418264926010430354276969111966380286102964775960227095127046817547791325558812151608616972641286492216840296409491583776924475507401197252188225429093041035681588702118895572073044908185445511040116856539891832850100485536843304115643339015191165059507739400576758791161727164853880014234706457520512242965695471325941942859314945794916063666556447712042318006894018624193967234230085064644155692786142905077964811523287421822030566135407635755224439622074429013562160637414545073159220357938241518518089505633168121583449261489579711293602415788237660722742640510525988458013743820455771624878717970297020906098480749452763499816504327070623649106631819229291861347774226734987392975336798378875242755436123780815426259731742354231701534352414536456276738440818031722797427614081523957129546722242884747233091154447517636648636044303942163862943810493644940394093068266602778452090713808768760532137433750284874622804318769501349098549842440085056603385200224106417532206020723907000107445329867739721280904471527134283604896975085116061920535631210829749353008755653170462630190618052619156349034062598145389524822058556144016260168666232723471209996260369327735071186542065988249426428040723356970293038683955367742660996350496468966572976094620925960824977138462334365838926989849799852146707408385118279995353621589142027766781732925659101491247379321951955368287198788890621105360515495061270021040560935021800633234654578693242262738996075255217371751209356524745749049025840495053923827704729593840743947318227913964660930237630329875929739228010937283118202005821657830964790385859442031065432377678692480912658407840821589417068971642268501030869694617534128315852381934103261925043943510803316180779618626867666358226839744248971940842142787231942544683592125027915388392870257367232321640653447343613244586554784195253002704520014014181542710996667529140922896433985212756807612805507425581161277604859053871697728405363806134326932417393992889479397291500815945143798614954584523053900908065231431398193188447244349407695207975477820083652431100139185927524026043067083232702961038056948065188609079492709698979943975625784043518097483309084021915197161359812603697711033430502685609398568942785231010248992305504971866271699355543617284270896195552649794487275754134117314255253541068729273518718070283699193828118252153528960284366694571070207534655781409517223758993961305970941671300164762321780892126418599332756056157089907418607228631656145522880806565082493092386929769786406732727141076528396302214533347510982844965552202023532567558974164527327050250673006089926006585526362168646181826474968299008188967078442113186462227900409545595959412007014202031429341031198881742003130062439150804745559936153676374504213084743443639797748296835249745467146598104030193236825723765120721303724242890732643006164350807730869082013735656251821177084412082489388360471039214696046263720484251485316674789839224611588337009158841395039617623729808217661390421062055088329814574525702200883265179302710595400501987397818231824807976008587060654043552188974105620570571233519274097347419145508302014469108384919645430800236070242551457158611567381226438161747435591203956566509810243979348291621802852446506910215619769614206583812765749611834188018977031189340528089594468558164508910991700239501303016582751407960769717312522965130151270738651310373710650016549487061090603676973375089508905811852522808428482720968829583001709575422371543812038241706227733545427267402028478871873015326138891728406494724952028465465311030866218183444428654567913937250894540601530878859913682944943564179263157752799771610585611127456885903652867649939990387174150868764507303719115836953550301983283389254611036612843915025972239581598457484595788107935210589079041031669631975525858908489554202340332055091342616140313982753211589024338873899771152483302864743431292755511757650909901570309068713267190299235810652442644659206920639062306209561730295227634564672217496971911650559807002587568918324500385903327406992768263726769198511809367819101029119454131484303547115676192704724719902764630291943946908026761568107418210361771019528101317673629537124033968391461412750108993814148004028121060128982652210377195091527985508998383956252129100703471179301682775455092758081967985320723510971176707584288381210249929794090981315374613077240325429290105317859472297736324957831047372302073818627258430194510111139937355304495616004986524883873298538764913727768221656519631691343287042564789003526917225892242945238440100306215682160083914044936518369035543581895377485825043615396312663833413279649760424352434396727479651247252567878426445255627547920083089221039895368308705765643495745675471392801537430457930799010064505060294236463888070164005564449621701114650056705190075600176202163044808898971985531350737556752596832382277335180435876479261245181674160262164449470861940679414143818556326853733558131510231350455467653349257778219684570851161664379994594065062560820875345412722880594840596737922032547342352770962037880544308473222257542058953879482075098381080512056174629301236305903506324745050742671411007866293020224219448112260315661101293736148336467622034410310098177139165319710932081036707782312336304079316475508661020605308801598835803895467616219869877159677674760099672684984901264320940045288323684344542495708485364960372028425640396099487826420266554990194004574171171765113893038194375628467646828730301108786775984809548677428389008895754885144280093408396674927462763176929072105702632646029415417701263008873629417380949888389766362747249092647243525719326335293912060078712139902425370043228970367723524844930076271250454105540973556586492642470817255595391809744431103000768400761477687346864545398216345702232449267354728122876259530033251821934130611956497752245134749794726735628758907219759993759424421956080317852467252813715123129247896467852602423827139047194834616728478232920391706732822524729549986193790753936302643856412921958714165770149353029170739361251679932730960112643446185128573850601892210433936004999797496653616465043516126618604191108940867564089977339005766342653173067942659926923048077069332143991403245357712958187113820832404925245372898776073734595831676491682740174587877636997146248342266337481714525633254682441061961693114711408885420604458399896855336274943033082093253571486614173579433994971934330300094034090565335265077653161786275747041303237043749368198070156809043266539941934588482280054087154869968283709306748105092720890269404016225898308108371259374518773412096880666683182903297867173258512017382837663440779831144300236953328370193544374824554497698328390011787732328321017274150090945380970767572026106646018711911941735078303892505986011014222959838191208876274894274918338626813346494227833060589568283504467377566261702865298050275590576429671238265801683677723514583106906394395165462322302617903196996647433812128956963306545352569006324206774618800501554827685916350293542743651767466721870899933299021022388151014668177163727231606175866505509143778932496866730210951896170922833219086346032442460844269048028325439878880411076452195173089735738443472890110004415678627750663315339405344095429915228007765368356253139578414314212957476340372703432860668568615464471788858878578004244225612379815000796789202842014396630622774980733682595044016283744677448718838948602383390041487048486083209461414774789505944842719661723849530151303320319584982050905903420914683512855776602157070891197755143810012642262291719543326301199149689646418226280150050692695774402324215193412807753786539279792673010375688249464534500687975582137652144583015957189891295386938129972787885839254745501058044621288421431097472111180769561292208602600078595624893879036067815965480360309788597209167103763339909291227400000707838360132158303197845275891512680989465909494518250160366242818985847190526639739382025587830788315921243462544540727783294214568228547775696350281069601642765088487086598060189882179028278880863149485006700258368268315124126181245436922121006016348460471413939695926845471002822127138608120027459566888800815316741293218926247500909633332508393304823685860137146061051366786283326658077630210912425032430731733689405947350624336762660505303074082332591204048298681878726942203543719405076109744841083022999349964947583528619519593908095136966717746000918955896952499516399985552636210175727173994696378679068637461176191391704099665213248817611796980108277032716633973511214397134238354675356996427323836278739676579470845428921051005679994913514735939846332281277334954690069031663172874966016452089111609399661144678117580593767112772851157189723484987283927410610014784405265868601735135435120491982333704520773478343760194086869919218158837834306465474328280690099860129790819524463470200695670892327702527001646302247529103007872463171465784912918922715451336197964299789622782855556321381342410905839895803511733920487824928070042146142704449079823635110979788858503747200407478471682799987925195037105372504225512443534120430322475802862143260196268374620032224366115036704475336486330693196778912806972213925927233451417047876873760233253905711382084814223648116762068869018650691918032695064876453313979014943591156360593213474168024529809263283482822529901910052972528230070128890512087715451311700071009375347440488005368248223670976274770847974619355732210688008410720510011361201896667029804351579652133090711988824435743053379256068502515620939837544165771127325495460239105911843772233116119644785198424188558890763212719911329436591969193063099545148663498306144815200464719207503774938283398755079429928611210690149424607293348313599581917977219896873622064404218485141999204353091671978787521187531003813375473241130923407936861848899544659659363418353973002541279147356037577437375471326587532611796968319374435201674771253685579206910531511053185680975453978422266749363861012638379581190127322046723824254240284339362618891244582608650825152320987638331039351094038249264759552630656738031262929162433443103570546849086866675007582745443280030959019045941854627886025749049098978175983289991636823945070469363711655281920647253666086379425352519390242890183344172247615667169750131051053821814116696972086961119226745461662245037593003419535518156692562005051588624003732413778583179252338781848475574652701884008833934844736350068889645379649914634327193890169383019282634533276695447418955120713551643824724030626824461821912387799207297003656499186755444626026975987050034472248547781886308040065068327417937835161951323243428452212966137545221410105111742677528356162115427769312345144397098238769758453263166778427931464314690775269289972611776699601902944443899179233790096843323275424878718627437592173346263640869063206461334923651138728201339720867209446601053125100095278405594970687290448594441232422452367533147900226080692976730132594275837041861691109841840395936250671841513337936536431761326524158566802420946724693457298440177179765972190275335043812856375809182795556232022912344474197829868555060828928823423870764128885438603401262658301541157342586819211863897317601826992904569708524278250815884720054729580958703108240977020114889858776439359937789221415171523993109072953886004176732669708454152861173154427292306573630055578673670263185801187795253426804418679838472114644054220576359398734765886330013713145822730945337134095272853819074509746664378529969904348557592177079975555860818221706902225520974966538895352280562066550286702876714694498010765751233952825615014586675866820046597344572405286641690027335592879257565050912631734676174616406921229194110155431997190533774340563825063694205418026744276761670057838095443126791476151795478999292061634289214131785102637920993099451272730721999175759613561004567283371107727744684101640251654507352079455102048230191900792193711657588004206119668803547977511619418060238378787919755038580382992024404281729915729573273200403742186205169879549312736503341337758534034520400217900472271733961690913558976955888044965246011506820357087604142877257826715886896842690724817094865985042344862063331128644017449125685910246398717590844491743300818599819212731666620992242013227765686985812535126625188744147987071457223945536995519676244536165388509348916142621334504579917716523388004868280561620909920159465607957500458379537160618651951827849263999157472857942306763708145876298375235545524750679559389828233619837819279009529205527611856570104899884385992379163431427784737809944337616271364460869528057502016427809336904404985363565525415804724584374848916690395166726494101193849601317556178533291510505424431374666764738918525942324420379072179973778651056127066700221335827214041755352548656733838982655221748222937251806008254520965498698540610997965442569127384293661404152140725463460462602451601156576278224049517278229713347884183287825067856418954458365832557946489432799753422330773035485996550520524524660650624658895020385293342983877771204345124713790859545648284940645100960495749048436114624333098802232831553304486860970435739565964685766463936123195549870613198670301293810522948849988977007094957023670083851214299099084521177551742535404058071452387577675621695155855209985499406319184858361029570113975988443218011564261375585988660310946376853438181318221892291168855283908620626814091115286440370739655817879580500589341876894239446348841718677160597694199301468322765468446471193657333913789283515713430768394891958810565688475766772591160620031894671198628504928832149657472300754819251194608591616417805039927738574150108596500548699669757474711367242549106310806974746608095507194826022489912434423868758339193471413113812628653171198777855032640134935942618437744453551156834483008555226251373966014157344340840096829903719240754784853680908990365798210148458650368708178638422431162522332599772135713080598280418022620013272115363049686202863374765459783464265011487836505596167336726371780640719431193401584659342923840991310392611267053691917365472308907836790230303266983135679768292107974621684136526199177562406970904847889525767264157383873320754401164814428944056320940263382748057580729324522632298699736310819818705141664652634750338928763094049165167456282322691328052283646338167328691162046034369280746769320487587228772161176721732730863263639806148735079435745762727799080985899918490068533281109368806298919257786506954675295869330622010419101770772618989553024629490172236557022600448335634829244655311206904298301602200282936998363516001407059802071141066789294570160573948337311218971496306484041253717085623056410730198044610535034180204683788003593785338884375454960133293113969072102464471378064235183223714251202494384735912722090523854870295740341596639534134557677761580335104682326186793000023265937619407039484282214461222266587762209106304072293628915770918110283222054761008002263935732196121960145194219166866913595503362254721297118645791746438184427721377201821449233743832937503011367424867636478245665357427237077510515779773345312880316667248295290672341851363994927075438449741795201573140437962135158257547532169121913920089655543499113981376167576487166120063815004379425871185422342751305002042696293414568235481555494373823222780897664527003538111119684213043237539753279160317816170331292903560163881556509527076186239693259830822527483101027522675333931409029921529761832112741522257426279620396997726774158628833481547420044392533857800687677178624650902988636546324066342593272420493220060298154295376176000290406367570129111743499926101846076532965851956809460599745630554975326271482470636522801645485748038932234944003478166247192070882562547674286857440899143805956059928281375047389513466132089268602410090398164508567575440143783351547019827853458415176574932136508398654071699394742416079451997141113290811024317341718874745232707212497634827986120813300357005343445665119218679191400654846753458183751197374833999047772127767696660466634362600631161165827686437272555972321946410925543274925644180369776196807300178717529974449531563522657186949438166805047090803837516136084132231112776431579905502530732691742808045413823608840729554510737177099506901611977683999896552255016737722524877214066730968933836298130582117510488971693160144492400008902967921050074858939527081496248089497115037149876056317890350711309637233139823849205497539331001808370312392725231700446012794227183275601076199161682303773772582176125646277493563690075469938212321673506357186311833184625057208786393577671137631380312021443854055779492851140143084453329439081642606531959965860479165410752956328676559503009794034843893796309164531900487752567060834353468012077863743517778974895144660754581681516287980453497310929274399571165769664259640246417165458619013483020080617398445169225253694656528045531163150897123514865643527846362752751935458861116400756799932458197740687500679712302331097091323665823059748365792589634165382956152224115736596574105120500504407782850646819095027906186770506789286313714697441499234082600368185159294276479721269432425292605908382946004793756902350794742554805613994125782832188092275441753233217028532001463634045206743331368540492052858338334700631203240434475385526445982325485851184029315096428980595447606729981493688439832433579886579891641037217360076926896402418205670830118486061548969255555488023402281858485266665462711308011755059352546006879872960004997337948506707291480193394119266282228082750079826671409533113862122055084803437798176516321966424535286817870878674261533122802330509086912956552985683378275003674813876422817228003209128964236460856378019259152456671938616885259850058388340108002547531552631059189862309334219222986750443039076271616664035677569537248888039702936399979621576659468207721841996744224906102999883828309708722331308550280471562095757342835523899772987621036331461799772382936073437418376973490617465337440790003336276885098567165149569799180419774244394094461254523234097564943090457787806823287477364384960272414602222000850403142274935846004833786340266822727119007662257559201296152838524119987507271805906031773964466773100250194834792458986478906762132769901376179255493553955113030311155598525193004463157511036786372089987177171185881998273083510747324639480983589595092174740289451282376139395785439792829735320457141348657949130575099344965603065778586973766609807575349214135761671257702038236141581493160271850204274007925283014895154779113982270607698899764705914260788226016192479298057956460973010273134217355300969347711670916749912177999642678199655020970864869269716665335886419886878837325428360825582114723016329792756127923315110770601056699299691874885102666762149533134059178462926963431977519546047353613798106145760059069308747907164397965530510959287173274290449099927384946288595029228833151806761156391452478862752536824216079586534248957082726102722490696794588271303568465113803658173977982051260344621003593942204915350082278775627429630210967898578379505926390497453160083681932212348627667691677141128463953749814133576450367263634175426047483011759168580076027798556488018530289524161900045712316287712548045310134374411514748411639789768002585774890345185421022045139939047954599221680692977719713056573385074611681474185754562878416844735989363144194835481303172035995165170517739715506600053395249799600694419337065081691411625081399000328571876467116778170265328246499139343725608649838597616932920395164890642039891009168041889650323255065438575083157694157785397666477314458992147796578496123641377875735881144036073351016553534222021044505977592673316040946280417742731284859089648235842690098405958897450749602517152075230490076588358549092159432923220711208819715356869704891730595654606772350270745747370020532071362292606651810247660220113622575982585686663297795324056231318702887324017791386144650454471354870460603688255752938761090740875624323769229165102954933689628565845487764181394630214422623325995260918185273824363185675652225739206514883651300372999979213956180118647436189199364308425150689805913141461629643496795167464998905051505408729598976224870302180056137074754568000255302424322851850528850659744878859273372505248965773612010034812468462640309295044090376671555080416335669904570715401844604355982528031679538491679197153095176372605734613005310575457549717435784206513663890180981406982714405684433929035999052999858652916327096265396890289442944189823529067821572269378018902917973279846895153034881277865573945298831477765993384951371273061468557553082726489290401109569862561498029896121927804648889383065106564614123101477671448518315069768635070422796060130744661587974854047340842415660023273604706983434916374210358434672439987637690108672141842274018712779491480499683283317621309372150560884538450783944977012170344978703732569982927570525947704599556208282608858010541702578223995638787306622110499029824162485710898798268953672894203000877201615078368601925279440415155509584596493061952591380848836650291051497357492390105635479905546014627081670261177432889247470954436967782828197776915807016977948343641134082563624662787677229423613842263950339962464447355238550133188106737470345240712296913158514108007669498362810185280607384783971884192488401257048999266896152531128675580943192418256575313494957713560290540890413647234508949551665861039475258798847069774949143646835466602860570879443359719419821613729198847261079903277582287935406821073230050000239855299841422002811946634266388822484836495690484959946017533010051137961807207058825421992170491303370674403532640383899309381917640102362385444658557899251626082907329065082274262384970303235216289138832194799432019647132038615823538133523107161509696410530675976849444587239549423833778564170700041641601428565773472051949421558385535520515419449227144407469803873748850455100081726133549124616572920941648905715620553481372449367350956169091226307740091339850593231111312967148601223591260662883416689503085461234140263756215624508017107821783262245941806627077572077248345227954651096644365096303506486833652530357492707783379557012219037639816868014002066616645130119638922441046519157603070102659311804961996474737199579670246841370996958238225356597785767242483726366727808616997597134957323365313041793901677603640059584201658449671201669116983619476388938129129348828984923339610534524013898784982208290180180722614457288620633345740042419835678776211351556332452596600045150731684511149770557883142937004069987596696998920502046826307087013224206719897317063436965969189240836113556027245517112752713102159199108086300116762910585277724704147118606766991012209103030208165714955157277695012565211510521517715852586989036886895200752431502648211684236579727531264318958331518397678211047741007956757450579486240254056350372113901434745523413923412996845560976508412785490580235018032795127533366804758051728031989405718287765269785292843394412610872997235942418920989313202551711221622420606900024095587417316183752885422149309575305570780481238509235441286666816072928459322659981527442984070090308840569173498842108703231970664132784934557592496915783774035637183130588437279643622761873658339676505772387848815000257981183272680261315498838462627471025225945042949407327736598546471850421045776007809717981859506016220453824656191478992355193094157863726524720031650794087237122031519816874581901844682657182558248937264596112364951439035582889663005184316934865631811775879018860556285965597977033182887517860064823368995701052159427437552890689382690361161774527384796682564308941877447512132240071685288031565349989673428004278044118513079475841710264751135149131350479448654416297704066967257542205622672125346764835233074177902783299698739291884913313766306642073285424297093229641482760846121565891412292143815809711824561019994181168588875781010007001886005544648551034249226756935758917165472261164021381007857352029519417285144961872494306513000191409188050248059321711864250415792657606287742098369746370425404771321979634585969181400272674685843101739637376408324203421239444372679813464894136688769513714238733815125940708005084721974915489368814799878418754142894175818328290615221535740062124122648195640442029114563919071827572001696908068910383071384612662574627633708136034144009426896705350465025177825452618273029775964749292734306087181176879942908049352826321363937976181858626764515201216792576078229775526140389389790128053044304399242918046621149912202880399373225025948655478802210134890924667620088909475376023249317118802870003804688504954116455550417859843865627902048408426361257476750168071812752409537970423474895861630148512905064491985349558988960655369554257345359321990067770852190564426763033546451927856578798950843837454005861817156538177267201920278800690756583582273729730025838984913878008163172195624783178871773703970205370256849149044060574598962438756602101852679619106022744361918860437558702237539066080283670813132332668723126517809865542616538059111528562638880795391665646933670228266296043444359694601079543710716660257878530086541697378523871031331278472851274559078943724365079608666820775195792534471582973151901677923170859641544362876138439687702520425565874397697620218456058381626489300907464239670785187983678870024675684569356151647557658910229140400386545651147499200824898152647646761658777059517065362492770268788410366661137938671795728331164652280190108887677751421258478491417921231401346183310315897457841510992605545785270105947609157577647449909500527898909489409546979187919499348736719269123568535046132838774917069142235352075614936605244820205011791967065498430348522732650962152282100043281179271463121860361944731026759182820725558072162293884753769482081348977001580758886140171584437245232188438034165803175626951996204752973201739757659304288289451359232396475851918229758371324721533736946282016468529770238145199367498594177566655507207657857773687152449981419900277150338016571284214453184938458351761952091900667266769839909176231378452935455337562151978061304857076391282367711991975057175527413330099272621783349187298607300289807068006295822076249782423762590173678356172964499752119328667483351758747882653169756413764677335422830979521297595660261164828341966488980990449556442218620504922211922679351535766707571278793239678027547102771273870068027694834222024150000187787511812306663506041326155834272722143361978415830044401959089343845993405207138876621390893849690210466214400425338803281598837175984557856184276575157350309667603100201554423949898655718195933113375306915871135544983183167272022714064805325341191512341201604066578270468550348668085970804203666473046419641959695980197481436307754572125155303247836017078896484737805039508744766793078161639469195614562400253348183693676424743108530393119830499774357884390791026204716382502108976720272157224469415131065425567144900267670921595688170398226017041689984686963286792435281799729281657627437212839095397634439212347490773479978558062096001797077372562912263746104631726901196780526320740788988016595892676229329327106517330854804220437051866810585035927871525425849521505989053405550223382087336948194336362152641735352045743405616149862703856748537394545390615663783419487234870691819880667728762707622728014175255697303962945630904665163730646377476009585583370660577853629876693726070579899932029641236597792955933898568126014472167543744230692122264994685053000976356061806141769470259601141921508508405499473574846016422212573124334516993536099200314975402551327859275799349825273593552230386048876047509137359177941065728033519667490495231413919913233262462851911439354058412813119255867302617339274301638545702969849086035513426253899833512544474052988082809760551588586269129552942170066272140992467997920285279045328801961884808325191067553219524460375050326329989653415554851450841050241032615237591118786830602870342889156093967156002816129127133176128723287689957620650363340197350998894845180083709609740033657070512581554911284577198915902769300297089336137015177158980862544471052999205187567775363481451058535571554838599291961252938161082426863670361320276234454691385980948992547358227697640281578838159766284426713803125273555673491775319912443093843204463032536928809593950810952302296151817627179185312268788176093104657041712952036884493412820404869913115130536743836815502296989611037118831420511332140331694652232130692733218348914424684668294531775239325163485645934014055805190158490445768476596420488149925675673386451488376598561898756961136251540849089759076954999199773397136806228131299310012425085145154561250288793060444581034492970744509101663722698525722264494156533093951224544874295353496555269550648785179913020373428630170614921146224147857837684531846751752666303379742220707337929975028151195768273004126251447236992561311408240859241812481630906947954166454133170240434080858470979120809214525611737899508072666994921892757853377747111144205618882249297062911688890588778004815625768052875353742281098581470980407761112930218341447892323911069108558288517435304257377650301732642321452205279508569952467190815361643726030248236643222669193416773289444504218169738483839088885951053055621442632200692013882726461543212460379344808279287014028163882301747894809204701146016756352747041712486454842060102679727805639193929417768374466617869559193755428338069498154153344868624723953614243764351882018153955717013128306978471259820808887710771433001045102353432358899266093406746043265382891091802935184635916223314945511750211446848880947945496569402803969619939508986968701644947006376155519011378137055054050668638014355505917010180103246174536932840769357905793203805493840188045970465891696277144192810426035179814989454104834820309386561083135128975113993510796695181388078310835409860509568254849467643905647682875802067887120821389510772932246144898678439064181551533231940574611783955302823557691518769275003243525224322286025065078291844754950277576803686214941524688616834716221065307387503358410683841440918955919796236409167479759066196260533411901921177761280499393898733073218923864820832895362037304721853678245198424836702607669164311987278509063072130409444187110627624542678456325706404606433181080110538614758592731372152036670610703950718011048936489258293376294053430778689783359650601608848129014973495253494289301520647965599772137468849577770876948139431865045830037297458439355846262823162564804729006749250814265682417269005569571186982223082759169827847262549606148063813167176694588870485129833814763661077792775922878455945357872606005019978163630326934762717583173698944491557446698070206948051172706015460220777407613967641333507829562916657021082924897540020364391750952341925019782841655373808780635676701173062097645680914002997579992815812883088011174004724755311481970623055938183656366707758318296613660981961335992800998028163865992915750017843177629974248464168224013849118469438904925066939697258012299662129502296058477978653938797804799959734887582894602103706845141374718458442556683045234118386877249718918636316515641900879594821064253723076528205887587163318125280604745099455195070997926428325590802017162127655766309071037632306456086881643003505256400656888271879371297421990984653573840308843223656816708880235661607429368803302352305993976711466434045281419324839165660802030130826375690260964415480341925798838767723395835434343311408061324066669880031158888089887924624904861165226435753480196777013469821151052203431388113359750713404513525018261376388614126721474538966559871828004673568647856195872501791902050519115402185356590453343704068436313853446120493784151730981061186875209225438346779791774193022078157681488345820460234925598248857967764521116575207767603673269203468649586510498454272494303396840283160574334524468736432887145335658491945585161007043700320464658671770168549715954387940922890845232697118439617692204854183521681365081701340110829433217014358725851950409067290736464338082179707792859050244426670139675203195774066123350146229526482542800084613853514701843734036549911840832372267809527697089342305877073093807322910772736226905798938831145911764493845168706220573980119746174977847932793945636653736587887342013808198596768302460949424555463980742075679448681765361160823589826426365012503726561816163631263017763867422339509876542359032904792207940088071802835162898816905641800894438397977487946163979165745620474361765986592817069541357132541903821883634244657206737086021284439455239397481284093345362561469989309826426447817391691201657606932966642346815972089827723570526272626737960292614604740494680959872007661564400073515922372156250756589897877308748840773466190067243287802029298924115903087700196898533012704226381626240330148112377106614388046233162262782550712934555086142437031063872245283637929635288723905741180055817437049795357323953121705590170768076153743098157647155894358409704252014481240958455798369224973030565072325736086097258216290504811760462745751610145375385982629606806845681417344607162102971917575117170565647222936015295631623926990637115582868646946587911811743359493599754310485393958220704385064204243363462848053828956432627238948832266091373366533390765040195858973601005902268431221316726637960470415387142560355221575781863614979133635030625874784322958419160491938866391224550397141176979923164044251572437575811814556614594254244512000209622774865485883995941289412709754037387582109301425628824654617765463644315847249358576614751998438131600274491963633404199955898488581742046550935341365436001234341887821237966748548350907773553996657244234202479964575261542189398234029713519998493398266233883860802529118293780052041391245485287837156896454886115416710251198736745424172956203904016051224676812484143295211462899909367419943528619246335903130850330164536958992504130418735179659620837990239532639453596442076302372971948795255186923897214738942218223540727508696246596831140803466480494947454875889902099959086820007312474034648655270615554274409878591261959834208844317469552050032976838533300112741622219782909716292451280311685736549930315192593201723039540049472168269742471566747317624149193967233635958594467875257008811760399641045721559639220863622052319498164739302552461725385411114577101682770175028251296024583346268236349960490574615268961804346768021602300893080507053501104399089808377212824497933441877034658546530314145983591812380250662323695594193463263089150330269048447737625032115634595579865036814352026757603659424808184557893333332762453136389034629167614349609178738327083841732494561489484600357893528884703957301205723153284114027691054883308547361467313764236755867066095116493254899264563075336017100732248647896970059745313728351516020782566287687992354258080863238476053678254256792335324233998880353727685899530836238832955081400416754510006363246533262674194396267103015077503826770344425787778205707913574855751359080324643419569254607401161301090346876068283289897861480151600613000628584714779400789650592406026195937867466277903690952518306361489686097766664072166422942329144479704664507041077925310423322470716821988880936820575019360165859222636101571502609542344907264080359662905245848211159654485478774346373324838828971496496888961035339502556884722145489498045975453516978374729573400578461835582565328114963159639625707325144486551838126518287277382331172565022029027111718110116354218177412338723049068067635341596066257441258689657359698997301335220255891224098837432370065519066928181624881062616249317295325076011916335401480582216398471911283187692472383415743175559564089048178412433359770027233845422911991084879982351644788214182732335299378285235619436195491206526324991913477137152365028323834122086116724595948044868087380459677188094294870892716157209548543704260784552104169577497018768227348448149710321743279480641870594015139197872905024475240266708155250661329299990307400130241944767121715648142677094587571682472779287097227690239245161274871112669416539080706219721738701643947309976487281964786169481107853166373588942769980421747262607949187808876606012058425399262547943850106241036324496805100229891182055110295361846078772216207221149678478628372862585852528285675065123901552666730905350549586954941145170972649160096380111327933720614099643597322401540570645294416437576875852637083467537334430686326460013468666072093968985466652125116424340376269830079455121382808411872072067921825707930477516757663427458130511666934844668283532498658299049991322126165585529167000557240963835968301139722501035845270963588661945471239555688110920826917462961818490973720995872026029337018740607992976477354382751458879319297843729489666388218611185403087305907402636982897448121730613757594099008914771770015077357845847985775401573228845170223614321862286840394668637487977584965374419412050403421623988391114206022143247615412821534872766778422676614185800002827613852008605622069853516199466378871264652279158083022135259112341577542695702436769440126124617352580744212926015841631859062328061574638420468841078313930152896053241819612345910264387163612987804189122840792281271290528159974098788831247172800793842836872635628221956685906318451040730938540180361246807693049115512381327633725788943214610468364002957456121153968207791314028377841899468374505983049087444411053163246532235908721437609611767171211869263705301677697427774134230833978397202894103076276697519218555344900999913581266655145504013742591724820513589409450418812029782030678900736169925994453624302720220604712582618372290331923484770725841434968546275429524299204853449781740507001509625855247723286925725350093823343190796757698773947234903118100521305242154344790600534848066282076104279515488159246582533450043252844936025012728000878127644364072735137304600999285994849635406623153393951045618469517785990516192406758594987832529496991750192086283489952076330133067328793764400131927472551322937841182775104102716980503703631641134536112544088710113092449786594687134638228587705263471459070725914583614517280531067650142409973325366499357819485932807984756953567712083400036488554419885578650279692281102603348883009030504998953681550752730432593684755491886079808496384961798548987665052744043820267528755223217357021388541668237333484164450846961535682596159725473855799455757218302363597774338339219964547592535477662011087347419048275714224094887019964370918081798561293215574248932066686540872374167005633961849789910938185476089159100427612819226573893525460671373560591169249737949201715024027877602584714407988024696022870998716203540420056056624285955323653968848665162143667519711120387826123525157803597811503270581415165730091574550407960102640532988298362105087745694591650875061210681231254156055725982725781551040009549711077873023420687514589058769532750737891567647537525155091537832835486132306323337954888716276542879683792265896176217250208860840002757731717429493015634561060351481794591185748394882901322771127068112535528010793034151416358537938438324013777904138491504096642966990890813016616012135348908685951668231775654122216617223083348228618848725229195206797534222104078833016643218835687781423731418842159928306034408454535875895690878156101786409271474680335661255804895923743645319973625099284337258842891498451274008792533460524498442344410615511024899033681808008876431071730047777683006600801801294190779246034317357156321881039066816858466384214996345298791008160933425912904360549510713889093975060744392140150148300880354386335577884938108640064734189081269156579159871591894567473569034409303133971658644065460753522844388974575436459960401052279606825356727070632079551166914789528966227066808521188172679666895273214953872378181137839155016810279508377696165835250381614574802741076746786837105190062867469169071021649841126961519370325805475970632344890532292942102550716778149790931133587365934170276173922384751139730116699709777357728250181887247598872831069352272228008873875134642784425670933282875565302743891123445690652947017712438129153035822990387854301981314278052177103088915646279138783687164610272875761655336353541510312011884443216867408944436751898978872355031449133817373151634288082912049809017883395788850104030051394030957770221603510679961424578594919511442213797938175806348121101607856690710554421756164579895974679056322478508178164203723076737263194837669918469379182858675231133478659894439323283703412798893988005765806605207219194289039407362720486707646292901543785899332477585595686734743374874837518217121349857246506322302283883249618549629930916762323161341147287881812699059198810551644409212626509369561745173919061002399139814759878422690457835630429875667036660811905815006865088049454938508930996677312646006385545889813212727019594174064189657897481127939551032116230749900663836746133237558929378642435772871874536048390892713709683775946355302265874220141257679986455425414609192447925711327566914176471834578095871289125436140806488359373432881173351435428167074274942175780428270387201967262555840530425612755122264535820024126074017493025409349668625395300108227833754994886884574657324445127738857951179517090852810937030135017315570330323037025324663121821084322259134228603576488991212193337792077016612517202034927898317419796088645583025695826072216232312897302474136527519504210640897072706493860793836922566528674311491402802821571157594234631942316083467508444873299662793894214298832818755371640309943226357482661182140390035779642915569313212676597747983526310687550137719634634545043440417003940754004792362368326304844947462715456750251520931444717219607180021797557248717318268536860032019377827662633532073404858532681499391815343641281496382372689144691153035262746933517012525550718249070331926441938356199256255811875321295680755876923716376920049497984204233875175530527832137968852615946187962958613231619749403068227964473198227198918298394672230683359608686706612788728997120202498373376830585864077320820676265700780730862306913298281266293725018557427919037723924600409493017310371993279594872858090589364732865841164526905378519644921258165351923216786972921444395285877879155794725731235814090299382056153944956663099431806116111041324297429534722968139457932488392146618424252290994854815244369271846296928240678625019787084519683002395552500828154835756143546620159944750255520168460810165730552699524092729234593838219743786839677824581692981542087251270841707385893233370148149107349947770580815082367935802556914487613116029655485568886220543284391750669612935581011162165926577012555977419595218999175172119918183488587970895507193457592041143455765487808371633030031371387177329859067532710200723014303197390610466349608786544656931351353131045128749081917357820459756299649263311362443159360305529772900910639852454549936205616680057390322907221334550962334873122071116075241387221368955698329724851896528059672272356631715529286157443233185641791263604879211014188757990377690278427083703269418082920856811170661069015634377598087541255439805833365914005187430099703393834922842159787315190842663996584736485473597910722533531051086022773412352253146356231532946043174440952976157350292767734718357739422064231474843235709709997874649822617681295233154334332580600263684435237101829505736097275792160404248398776863358181806641365890222577203560462681858742904057107799684001552521126656869683930872953627658078299977996791594061032334078377958184541432244810473087594049653365112416617775361234772415915026776375368209692071250665855306750435450041827398955157997356928052514656053265837037907443180633352440232196023119776762747346688818945028962097799208183355691345501585013553669869557994482058847363372997509286527247860892508766942309722924553599684902498628452134841168585235991806282292421980607542249102893856196798239241910343365864604303356698300156029732680798529852160368449980687925816179533488344432446954220246962946388099377642931528895161163079330304834942586873155862544363376256523109977764888878950347210388079802058504561937135459477028094961368034895862087674516910313152073715607121950479642415603566588565261009443886926005063894592384309765656499815721380705076078218287240548740576131140381435615590113566725038545419311912750524628869855413400367291605168963990035175374937189572163993088086661315148041020749384275559012194249567407883647867875221801439752754550505150102363720473358084003001677159098799186966373587186203221403928524160874299971345115327077018895896571560769466340404256023374887048884062461192147278339371233738826612088856826584474129491544632020761284312814540252502903922248768799464681319654617373250088761514565321204104940298349652404556130429616949992099582675748313214122537816760687257686002907465876670009358802856892347565989083261082124007390976315956216756599235538831195033432560529961717298534518540901089304926007817695087162579495941865948507391831597060996392841161857605799828356321450050402313151754833296720941931880444514908458965563303613827132715782671478388236258808833112751851200885394147320658984443692475107257375951086059217573113309515175248786938234798049091190112786528897380431132864812134671649494464961043037123282392785405767269689749907260752628314697679130331836510211097960960494615512824826159131261038697239399254576246192511480738997365814348688366242452938300898867473344911161011125194904390050689248868358771449778941678581739246246017639546908613367233551064367652634289139960245410360361218514050187973437876609147805847905752622912293191756325674718262109792089624762244780151538551678266640182968739776086901429181526139213742548624989066408965054661046339102380947309882620311808378655363514142266826990005360471085058269780792862340735017461537252996408237661651520278568151682368993508527565639745987677345535381131162109354840477102190156195697113141882775976671777107340830489496304026804198739076796794224612895674396939638937799013764495696203731926998662796635769332294675947607566449447085197898552554835295065947172003475322080268810143507992901513587866856279576455813868516141224066080232424975770804921871978940339081278383980170303483202354698090868857559361520217713198498564010891237901750299587161437340356636357114397075903973763673121265314466061613645301077115301603377526874335284908322079457218135863849150462772437627752954184059772745525365885268805453386804188570539149366109338466078249181425819525915695697847780096656461969765516506553864129438222127353899400696164451583445345911937585307975564648802279946786416234673365915671748596825026184580262446604933363212811898223796661767770558992608743302224732517574977205295134456587600717422031471525742389491696965595017513389870501465959054913227428909411572556316710581245175460634455378067582827749193265668059367278152982230992383727251752329659824247571184321915013462238439003391302045095168321064678169387831860079476415592560871947895517558007933234327158052133783116843890013536791715839344329386852618512854664243922999881195236823146989712536511333123967406556605189828948724925423835729091444015343086699491831832997846745782082982833162684593216437543712419562250254947568924382959989009466078488312861906171459512853130828678376429148994002330633287575656396492929367579893270544915541138923504451313540982054208099520967204956879688522169456067186943505904614137731070030467947387641470458354570932745476316054865143445788804821308158283787545220702311594656067828958324981690079117979292480931209457784712507120721064933122541324395134509744146384444547956898753054507462111638003715675586599690153586905258386552188472728774279830964406062151282338675609843986007292989670806234730657667577802566824857398068068038221724919011198803021869332305168110772701204619609423548009988834500330375227060071448407489855970042066858656748116898365041097168378884352472685978457272583844164227144124094470187973135194721711680329941848417423576803710491526929883389970654065722459844735477278453311750722577279907622725113971266980154373140992546603407346827629721944787018090982216817407369918522996114899156155108407680138273505474965404940462944656251061770799981848673382886588597320490285348705967797854187290680314476145065194629042693548810096529224726635354149917963346933638595000096112405936289059405180876890214139434301764377277500514977919051445474786700763737139285597950524880902141890432414048549787152416892622585147388901307795703369309563835386416929603345135512764437692896741114616302811742463922776859179616535736636799969637110399164672159935148213734835661413325010145747015712254655972057731704922757105048226896251252178971239011657356489379993608354042353714679730686630757588172957094181366349983452488080683640547406106834695346721092940017225982209890516316901951426242500325957537524678669690327019399228681254457434039966691120522180953849701874828326615276534728821677654996778702791153047662154057120826868730599545406429985254826087149033081343636802773277469120019277484691300482547708236852180627879886583710630344299662192646026376502365979518351827539741075887747789280262573269502629838637324628337566087160671004613458591990345594494796165672261459497659754438968290209557579359404548436128356081139077440253612607468645221929886206957937226006963871916015342058905268040686931496834584205442743588788048913925137546299409178045848694155369783005910193787193481499904767606071059358902195125328598508803508031307797879111286080688694035327839799701229368741350363990217408943849741681988052951843865035343136591624868927993301046486125668271815761020889298662012893395393328535635119630552578681808921744517206636060966677373129783854615931365074427566067986840584692210512597438666859192909405154108374016668305971757365443151220394510873179319184740791214670925530901424609375188566403407298053852994809084955065460393610156729833787585663694768939477843394737557047263861678830629042905334367617526736205224207386863726041688450288102559724992885643759365633587298391122007875436059391143575868199114913472081935873356326074190031717869160708738733893047626274803283998411926194649300941247541483842273084852760532678066875914525816742140525360525247796203389206758006494111078882391886242975267470335045312953980757453572271808255872790943084045272274955576237774495554900972250590451696028684400796319601903826249893686368292293169629044033679465194681167075798156545767429228382656604184711916526363104853585889342255789313305410799894058179033087498268044078171560141281362729027568528707533234946191397707483508269833908857688373447924723420357582679153226568213165940305249908455672929140523690066861491291338951011827941981716994515640039878947345504465853473226466688161573498207276859839547369641800215183507112854537988049857742300554561034566846164322980386825999347671708129092975680102235513881676129459594712725997967836425862115746582219985597054023351998074113416322469860098199033512065638733222480282724403320222008200002318109479488493605913318749920861185367418853874328988438777236444222368581703810064488939536826935822458195839649445030692438100067860406450871997765039064700998618224788695175850012295017526497563579619255994613174268408321490755713569960498706173579035829886261600425366676477321034676220369982493937160881389373148526961987139503492048315998457112379522073045788788462059422257939566237322724300020528262417732846945660711300272655906204586918135314047861676569512944179109828595666784446766623939021281399367521727033901442056544027567443311725353564607790573412018877721473510508383853944845671576523223831777508096365819160853588121628516120561674265255795253175906706919889688440544006927447243626914031025863326093234471542442229223740575300068564155285468193314632305581628220115887616504994281678520472621341545914572861422210007267645900155377458516122613336707544566154966343284535338096057432852420742918838516067828653492074642601243488340114873165149127752464695093611675724967467370318013645965611822508353724012739448432665519617488244943916843437923824851092447600831461300240643190396972468901172763858155054431675249409122437809358035891594896912281617980323757724149207324248004809771713871453723631608657465577278273096812116453110744251237710588576535031314450007012384917491261911962025249064855143989093677415303223380067005974361290202128646317685342127449654365300269415019756850157402759567224779436612086845252349331589584644203796581275829281072628747143646052668054098653362417198900387404393030630552180101864930387313262875027711368613203745279171077775285309971585746472855300226292938919954637883911235092616871254943667668608595212641565130507895556992748813479613123731766329991636557612682683021111294441538190906506087522237357302122932236457064103064845039068230294469308612374574305488975774339312654012036681545917971118291007007727407268038537455474225550290146619959156031870894504834599426088066627863306793060273466050072551757494970609778702333836144390218194674692959961344628610601901496266391556951760764200419494958652697749964583740785031173199054523368269574410113972623138997174758767655730448537184279713338123860150877117844796142205645658212025557849794814362287321990567195034774872048982216431607450366765003060044399222736732410210402496870811142118860661266906455312633222912626164661394454225303531735196918068754812057340535735355189211580904493684927775557183443182770688041989491754365327351578288289284420866158349573967208952883194654947496270213777488755226429468039712601376751499727942112682272527353947085089715473444250859326534999710267411486139842501245345659689528876881601177978544873017177742472849655376881921672853893267703012935184084392145236231102484709127810495959902846781503253417867190123372975239927167891155539808470288101023169826035689222342833310076718619214626493342016624027739890314946824730044825146387848612562187722537255470956346885315269766340119267226432989391377658629730520619071731930408960102064305525857691943027885180670273237132199222778011817391365451429073178220205477347778388362790726624945253789051322706226251462339246684329687097915703848440209508782664168310663806521630856982324331977792689970625710728127598739586260352883120696349305535615943739354373686491659424689008912019164469454046489560501590291037257629996509336748746124569811737774218111053874634651251660779403127618266556450675138770569722280137363689532818843836878727146212693459679395040901051979682436391311500003521923499086793607419417427631873334033319734915200538863187466937918864387295308680687690029142916410208063896698440469767233625838020836814631179037164710548408804694990802608896962947062990037618040403690854954508602674442140397556666393141845353957189865216164986725734814445508708677501420605347214576287481320380049640417098739037080402226503502381001185841378602809245083478165160301689361393263118496974157811120198987603190740866936238353613400429726290228998972938284000002727223956630815104417447778223385064880928596907138562889853501993741678851732068987385658400969308652449537965306215364257845075682486220598759706895926581238277217615858218160643365038226764616234058515174130830922386640978818970149429495183161967894725304764849718179590112369130309609218931220953842706993572330686522587222227912481879378404565138652333354696888877710320672506750556405658986620788802750261561959073274642741876422791638751889836517232958257496902320278057925440938713425088007581501329196720990692003740736471296454392680324629747551142578336249998633852031624011395112473925583351524893072554791835263303404661355155528388967420889584698115814072945773539071528504093641115691536004292118058572955043579166190302720375384559082051817281844008145125232497025420403741061221484815816335781956280912368574374669229406645765376888046936918745243154596636001242564888821192329790602741202594124792761262205847352608534904637633124352374416915999967464860471611459621895344235068137264435751445438399938203317549164587809029752516556942109584050769514548063681843570113796657734795686428555031399630236829329141525242454554732455247011478436480576457037274068307119194085064903076934351120157197774810253546969138486465740396743309374042509144592158877733528647819129753646210200230243540385226948721961532152811165452630356561434144895599596857882940056074623859987890277599219164063273184093750774593370971484722396830569891142788735299898675302662418449757005887582946128145648120332598655519884099463227772677832390992858201317808568825437386918321747604033426334205939942842842848004188081550656576515271323320835874971288747691852742986097439544997172715052655397642646891627222704418871308409043586002392492417530811852700207075164725765297715187847266687496838515204703946751020997067964006015656335257773804757703713778364403705982127173224740458798171382605489982033281226648288943428795616992377315018515219851263440202625361572174163481319388144945420919947007219613763854512143383570923653320908272785434586270790555239034696053288838773553999733756282520062395582307308370846876020709089672220789651483998222166148439104720408209326857685039838857355042715280951640987662651916212075545923029895979882977317412071906963779889393465943364899858405048432690081002706644416436247646874175247513805540312761081005946383181174525858896190072876500867251021341451507528805686042498867052713617052706021421854660276853881078647000472372845694227338865449868969139823983535806643453303862939425669875788012525506044192621755514030548725652894931562772363873437148946231839603378070211961929518539382389414953855300310537072747298229023791300235119078885000519340132242761261894458019993079203454541064220285051616195624284467010427291486705996688194232932538109939763072623557594516497695729346533283256030825544425917197610980548812515911979169748447058398686779742248302133642477550738224415747324107071238996288058379362779139683467070677189237950352511554693587910492563316505164899108471385290401892925316804829995224304039887495560658562035125563713255590803705241749221734227472600916140407674861265758885010520708635944794610978306705405667043575522617747033464832808315157101847178916983117472283915080218237442522798271355932581007911203428250416730019702707540664713601478609746661550199780677860867046688950517578902693570456333940127136976198946315557542094639554020350635869524203300574800386260315801742749465718097952011651564447999498784535193844589260729196419411266837345594288625353689916405533373952221303982443159161768852131269154807787231302329879903850758090635183268690595892919811257658208003609287901155738576897975253992511267990601215756672642907745611468270003814647594031283563407742947829944169957265651702742345722918802188220934620376776576954288356113693919981709696197801768563949576726842042785472636414112939353503407447708576132563750257729114359497109131991307804690669879868395202325869938526072722398791277303944135387414695266240302509597326771258247958848736172964284571223329089092418203155884844318145379166096413128759326779558522202897859284573064269275142633387102858005394936167032171395257225114856116891839227063221110108955363207554774779369587238466547058141475995033193081592795188461531049231153598388331087376798249898179640736071095794057056189909901354388625999892767474494754397928106377147519113066327911591647612302375739720531707197745053072680102968867434894725531968238349962094949151342946675776421763474032199888937899054021683523991678016737324591660303067827556204228552264807375067974363418633478711894330424810760595316723105044830379742963447327994368850501359860101774900577858119825561045336368325354140065791457073367859374833014133843749992578033561348431463514908895228081635793099909448006297046765946102943473371862592001982396269791353910260906406586588527508481953060149465359824225547486154032215410025766776655702732697176463110839723179771143959029939814156243502081629785835775720228544023228684870979359915039437688176314165278134378806464407137314592854211045415117207804285768008869300848391276491350367444840000749081423108564946440449289277260234181596484757219858351857116666617874007625009156386854652042838442181033244271523895944009811755710196249608746796330372334613705141699912076055446780386618471500929879879375914835528316995451603611068478431537258376084172047947877760556579058792969382679432947188451969020246122349499272911313563113339569862286687796545946947300662615783263393210037791413529780713659765904343751268110373478610883290758317006936954982731609610914549979767869394702515426359153860341554733690211701951983389606917958094331254619639795148380429825902784620426074659478383127301336713064466085083346610963550032392596103732503050283682611390383429376022913529209164367379402440883248423378219717070158319801258868980077847287766786620126641984903303609887994207121577465152488854043466855267502958483177161328502164549974844210266434706218494316080484527594111075865647928613251788528162946581528611327918954625614907813952151163528714019677314159772682519233157620338430483041749517961553674280172352314641343232824043123210213365420949287005288360111321501897661958349164243464131686289569057201908351806313713162255089409544178412615855392438052480003165784923669054810593287881010227592949304335256755757054019315825136241703067686120949505066904842841336241382904290087152044463418146205419927438354511892659930627482621275019531782538291249915458937029285163807081170190736739561877327385748125378129816372765674825527490644108029899906415675884813451552680249761725295921239743863933699986428568144342701166187167080989227235587764874579506309499818599961675813826415214685478978882074537692427424690211295811103902347567206466887697327362411532905763033474498452194068591290003560551449617477974393856910553918081657647807923423615311802418104781339194755292726657518970961555783613954033614490592045508600996671473703541002095280449396170441403962258668911966907981943959437485087193191363472734092306507995736615203089594373141738509261269577838094541864006714808580837000877096356597514879315282032576086955553022124730047214144488701884921664054392622210707614290768627863461110222519942774398686160204449827767890312769796142306231414350131048559800659608650860067460660571282111238594153173438370146685364200056694891465010179767444024218354180969814375887890080584014043645755506975138653636903453095096728121151049139626820557986121125189532939182139871949130300077846842546192998694070732248431234345165693197713713627888148849136504609297810804624001781894052798189318471894915517747132893851610440348259846291857436968295821098746064797242794214454432539766628818988993115952374694371735394799165068049129213416912335755332880833679438863259596086986379276674874929446586793503053283560561962646339388024011945265741704775002810570282818190300861413378737647483883587565991693285418048169285018309200343986348403543120496883426322929246591214055954999902719114894215053466924516055461469183896978077423754137129916762934950748768801808476589492001564388870161400211191043877329772260300319973608612413824056619752158542750243645767497001153072405374882527031314427598964413414428457012618663968511919279888731551999966477473945692361955949224833657326439063688705036467711280946212354510049676517618138033967888986013669536349031818081265576761260016439795006147950463140135724546348050864294411289617596924772912103593678347962321402233767412246894525263961853600573943908192150850946606493493799406746398660809793225339308930358286816357071378991869153846072636305447061911242706401185123683837199142178042701511791437031193005654646988830507459180102330029383060537421253054539244017986516442128655827418986233850887696170279398450839612406237256804397101811342690853708626302860294293740429687801532452901419094177690653510145151437389705826123964122692655001181372246211331509140226696911412730545611939938202623789032760556815353229063784921280466966366763155909491081359459070176972357505165783661750601925798052854018712615679314134892511024676874576788350249888942145336860010059487741109360375559868376914917858077135889526343575010989336637426205941361313369789118902490228649299757174342282310811761819202142955721979997054321860154135011453596373877074279495754780413920821828630695306698089246174407958682939247996716004706219817910873170505174172205448513983295315901125976710060180844374673008828290590586249971040140325841162836628033699131582652591305782592954779195203561505750035454662822981465247572008938985273402520526916065616639849141807933175176413679434503653183535839929785668836290928615702833468413356697776900661605330431321230227313600938979114638039672876941955966508262978100028719486805121863717099082087952065666986396796272182585347320648708336168140630392045813013676102799951634560398730270217945279681176986685161325879221733951539577792274576123710894045855382733056735215446166354805907666344206828162557852914557199468113381421019404634641359150751963432558528151247069463466018817625810574341386386749710306768897786725582642680786779150135152261945357348371533834857790964866229610734493261757859791605182624867768950582840885776744722580237907124949530446513231206871924112819804682510632580010207201984592463416666290614116818120379056230886238021020968533848944233708150608319756163175866980807659732249837649924261405040443234924387267980974424916245626214273976275506275851971961721373286206313449688320840407096973344631341974576745430701287070483948433500376071724079304684594587477625844959671566448542700861430782296833689840211557013428882418801972955687675607805216997179503204516102644654534504805252116463928011299763631062593080105924837934474333672457082353089634765602130857346386755821294083837295848111173654622064347941128967447731548190277475239203766969809237071898333942604869774718657164974231178202998084768596872100247714940784310009017800395751472692757589184990280033373683606555967288966589427705132542251271505717522262391095630398269230496572309094836808350258052758623865912507102807192805804061629558504351880060874102390849197723459607390602554120417931590442198507405402464440125091572647989505900346779460817485269252800668369864300934358045988411428107167251937441485171589291210419275237477315719961064840089507572264723002518098968162331699331199773874496678415093958737938594469882761831452127321110100712207662479155006922800835536086634804350456375661198407393866018204045631115672691030329560583366484115405849086562858579372972014404711562802120441517160206617807852948191944987671396837282566994456667806373650839490095441160055745397501567626714814011996550705630585311172461158624063398827552909477930796754474178181736978132910956954089372452864210930733795451332256393289572228881756029795180439180610757883575984005022165220578904116799572251098568336050818243432017238583028161242322938801281034765158214520929952397867733300019928735792688421920176883873428805527008226524402391731189461518597486225129856161822377883183085399436857431090986272697747825554731640535008252432396448756931267533860128954288646744908113856157536061026841191305849724096180669517128976905763423572367537940057829353686883326649036826220354861587476107707595330897952820211106017515153426511315254319893216453228892709418365011995448793297960838722856136774231634424810478233122024905707559864366687948386013692567117891352221768092388251409921081929385931501305225028473286844138626117535149787471901232699746870760612819857198554958573879760900852688357351127002156155045969737715118400025068488231091625797991003576980951288226792362900602206034542870337379389357386606477827085860012588163035722431153121699610208698341613912008406742767264860485235595747881154497155137586751642256422173213553686276901125218163686573525834295745463828786655488684035029579480920415351192935180210537192347173225411596816390784016570178421512659453120948324311920993941021478801911119056134681211380840488788216798423737328250383591905984224076983529060649094778107218865266697025606721039483144410217322390756588508774454891358881175060178510225149493719390558936224266415218876357398113264628962983645850923155755215077907432635114737421354891765112742403106028410742837679515414945894787892316676634741458575145152749531067858810447193650207233281229611066891755693461614743808216688075626601401034225730217497505769292357160882089471122949644054937869782031560045698307160869889516412256128283913753088520869539096246351387762386790970071327600242994931314217698570523666338423472604432532883800917193020092169501482309820707437448376595175045193198931103740871968254602977526420245527351736079954350998531239683496100939536884557395749615219658193527797922184730460119614966213694570705457900105879025526064472573221184987528505006855208457133688698891205613918363720305356653763332970767534699008136411026527072574570479685838807612852185151001183315296520040024283011528461690838945582746068566892805203173152059728293840954547175252919378803672075640045794186350915535248888225447154275280819465152658809541427967904364618760142530367311446559423623425968242959549101804705128977233066280556016530717017316536996963785462703182507243276187331811870895383626098346168251315699201927307001852502763098628171671346729078385904224406985093911229881063734842424887960114152196523998152548854979988750822041500158271476433818755841625629119618565767764987210123819363225706442376615122022134269262924293732278435060558934995211777863561797362330123034427527413522135742622682296554108412213140877672969278976105332937465971279880782285741882026548220444416275627507330730793697652303903502981845630576666674320168252881631637773260847007750169735608136105480394861683742433394781229307019141702602942606431165774704432653353880469652934023500369208518538470436886679290851504565352599567636469725497966461858941574336219468516063126222337290970140022251035318186827775286119475177462215277424231614510664095799747205655919371691017379600661753950776567468330428455727557643549990798983807307100297029860232126472111303908944247517127384668509761468185097964129158183971121227035055070878472042299489800297752266138059515304190503929514668041829137994094979199223210041001101159069284985796618518141888354809871526016684323862636050143374371621610525494323617733204873656018314368663286070143487800636276847253698552816096335231599784463655794201841800106513770494145888413536338405773785568771326762598684566194462710934471004309836887035313485774784269357845212975564157582663340971928319835335236708461383384484369983735339403850572369428079573556489290947943441941996700023965877966687399774480144354658659940235692562799443784992573146568061528801141945170796270010792152894270311941395225267859216702794797554453453692818477584046557001267602881544200635160969935901912052525137809316959993266855552805312203549426120798393738595115952871626925960655593530726783031219643919603457678856459293103999528180419848223008328008301227719548088563489262711201062186922424640598418616093409246627400290651177406914365504193020438073432919557311732277616401660005918398385038966977361064194845774893298678390504796260633377459665757805676539646859431299947637725126603199939865221997995233198597585853017139564885505201202754210477432614888990620239580549391791473948559758236595511731828077800180379667517407117601826173810944200455797998895943726055186296503797548659036479576132865433602008009522906565412325395379852294539608363560819490930884783290852554441818070160766759410424766578724581385811449662255212053189018890345142706613533303887310281254018014075850438546702963289264730294275877369306261850943742167160452606676750307314759923717080342838069104083151269740594237747774747582009547431664719562845499773631846997551527623366882516512014327649503443365848069539025414920616067995978597269939786124094639179075868414201910672739516097306304064072962626486889025483328333911356070973922567884563353983518351461666357194059804241296099715281389985319920966090607473194980791729779316186718299806883783301167321324896096750146274142153298169744452343046023133002856670430044643405337840820738435007479732045683772005571668422560702631428639714737352601737771415789379555559340579053239227655095485175855478146745516074301295319143371590783258484528239340398993539331890660215621184089173682054947295562242550506784553568132961998269881913786158003604123715584437842313588835152308616913686177941328055391626488644650661065555158846996803215681373473092619805991518741648945341728850887400891174805891804589220529912689628257414500262608060286501553057377660185679206798965003260496615517787852017898444198909835208653619968604939062670124543373906534729091897681347473827541047788613582418572243293763163721308245099543611666219010824004578065100278761618921545303701811095347696131742235745196992501733871607691798000225051344657223467564375380659809897126676127931290141985370966645328796008175556310534114606063412897016551177654915931387657334031139430475425612527999676532574749993407098184988502957713336190151265651121639894387805564544861228357542704867862433021414488272669558773030098228198166074566463207574742786295550623331597191015958355309639423966588051250213276251364592428115283341237418166837465516721791449398485409496881880222653161391158966712780068120421370310874213640898612134766334440517137373596556412393100791771815771032090240036714332563874847812334306965067584698776038867237944284961959518532252142103312624619005046197797882686872724598494046001349646359193014276236207571296345680913254926408807103437646708826466515429391283493926208550822787755672187957607052346591197439722469802520832087599482137614131405334848095632994880862085084615686873583341748028782466436142703856046577368897113361615765643041364676310276313405314292922349517755926339675754296283200913494910122908622981782482386216693829787934744335956122420315708170763268776848179287317574278803136596116861739555100994527551681306976862648631255384267790108310426384209661506662358768252620729029753482361537321331861109778430385600940962928192810746356454026762131599007257704425657606079828209968827613898647127082341387173351990361742058015680268892021171330417907740618706444978871611742521116091695711407486963389440274946320841008623729737949497357499614089201416386929291706167449052451778626657409294122032996186701027027190939658409437261323420582955119191762530801445080842790639264629569374916744625463780587704890978216612418168077993367655224642986594372890620025760207113091424807943133448886046473606850590183489326331413683369967630836201787504652305645488474105166278330452845531780719241903995266568683519958925238476122719629028230829181371369397060913557767773093870959507863695376230362602571143783053162849597070256316326116448466293744012873988744558572741548283719052919203646609133618247824861686148565544428780301240901356945064554750889132379722844770410081406528353215421464212048032890823657417693491787987044530134604884275011807862168658274166445991607196803193353315649488667302532694916995372619507550911765067289967575884333021769993973149107093669803378582511919593690805705121071365399101617081070930775140362570466801920322578947721511148000053181727758867995391068966401669155708624259661312154042611981072946786901894804877897689908558381519876569465137665842533272929755933642298901145015098416086429037384086251443618353122441179216140084474307938344795489850841437561333898375298865963932058915560107068399024748464438832539881581044714012834885597737738972670546110687947460964928430932604551948426877378584056900758957920566291930906942128846652199050181162326741723672362536613311846467489102055233767925943658035951253685208030331516398023404965297512067756488845807660857787077506349959350495320687124699672921991840547209470188740987679402331288896164096914061781234652274448290849607099062738324454971768497604291531496443349042462413611143353999229440190990429809532867726413292124579130691336674540822843173576827826402083494723426840330925725945362576507634129603669851603179817627876834541479764336976547240962295738262033209246367019137916809497320552818995625449372706878601035073624799603490692928629376919613452173009281089781785096199857895527210843620338191964524405528270436439810099092381554581027566354655516109091527105839702455287841127081446413744472157892068446554315309979520419212904260239770302253395923961835698924798102257528447451498613505148500893075653542066992934991179242703762507759794844860711725198590658721979147268608537668615087547469041352533937392489715669569414644902588918595348876691378772155712795587800814295042581917945413631324200780266891884287288890005379729361164456132169390857565123760223301047139521840712315853008039880447173047534522691882465171780256306410346751932876037245840654212918217546118047056775779220303406721753430656695274851616758177805621169317842968764717702844464741492562233636603702449096676748296102966258576963246750996405725089973632910942592036879675359003676364203803018520933117481895643672165592908650543831318309402504567771910608505828781402202440055203007259582856948173191995287378784835799626169376037560903586528591435511662064627492938896819286853083887548228921025646781902438783648418900095232280957403372805330944479121549030492228676822098350975447185415359970300991640202453409043911166849654393880715754926896227539026344667727145719163320095734582454475065064442221919292499930438496959052274225548127818296364118099804803660510597087712698725274764645754640531508766959120133436645650887483863193193100763820347143933650086119392307287006359885682808686104793957634810704238905985075615922974888761886140272871818529358666368152566371565450730863087214606837867470202438199495634653853126931566878129996963385298980500375451947287991877846245398185305992553683085724146482092588559711905539768006997678769449196317355399809648987098725865773018432464975225162328068429655511225106429133851324968560671832763311159552642812938215607478405935891053826085882367782814310695177734833647012901511597229969465076491352442411481268268373690878084762847767764424848251104321514579913324732295670322181874398747303460037733711426347874473982978252518125621624515563318910339682497859756114597263988134516054852580321726136980673858004890426605013143379506108983504176761188226887012732039258682938852221113346003975162053802300294097456308042352773326468813849297490321978293811961685340709683793894380237456947562797056804260692100082918671341645953835712289966304384579408933716293308077658414224933969026142468313674385992294444626869828429650007048131969701618626924442609954961943478724571668247764659242621595665420915811005841789755342559928273640691705929314416436443719600903213854165398301754599003299102482063833069115956688760914480909407345922087944251234078431002756850876862116989818808664159859395451629335091316780042908851739736530967128981103249801779350273685385784314021745607822912645132679826571340643520692734727639567339586027354155059754391351026456558019056282880723735832884054498646018700188760085716948540115360284226936308141803290320745760906121137996810933690035273061535053925451032836750925059780521451143649671605134228513781941233996242194935815414146318489553530469137139025100587676109414671005124114249787958224430102223205736088535651539686155835785774542710732838494813641399344299312293166586452514826879808141288846871732574428369280038921466696401307410131926678352843864840499878928929141932618844298711588914017286477037483257979382586256361352069854586423084029760481524185243361278061100225551040051774099411846106102559325344879629734670815678472415117184674316977166558610167015043984232889895331007203750678545353276420819062824993038248605351708324889216278849542215765102000865531195799927942444613063502095253265820207889326239871852187576279955202784794973871703229160328544388859748757481186410719249922626158055045996888146568380452993347631887945204659728038137614335010183830001805852654950651540563214383687696583839997877439290244325646687346157159208596650139341473819647986667689229380103737743911719079527350855241821602109753667390840585949969532551377609153594003127241267675232581808466317249230798288829889761813183463518434603235235634857450593607052350985842058774530998186590851640316717802820455343447535405504804549553355239238633998837444162197755127927989023497385243945028974195488385599864227148591022173259438822833535986675518077337792814421082187312722922735904316264330363051476767299533071432033036009600603968196459286902948994797990326966267500238288210604827530272141134301847265073529339615275572562012644390168120281346811249535465465913433945936749430209649509736487923342017804763418877031698364536089014337021352717715204549132076296292985421398554620023825039602250955283692463989166061442076727185124276134427075493551548893874091042647326583455269485065833220035859718977194699584435741275797674405662112827824584043285955048249658210954945041440362685156340503991886154003692144855081656960274423482577540154381957172170215505991135908140327132787074611469433725627636897821582474156638980610757795513329689581386285473698953281064144064168379423607882324811092772397323480704747414749765501907329990117160094072841403546357882096584802356976955823421341206428466356350423821802341430884055413604365743365713699342480261459993055503316894201380967038832482907439984197867153686269669399631121506592750680647412657224818830885020448829790009432676323553425386716827444253526668617569890302472590299250164931981789548443063010866135614642133641891659045628515397087671825012043595896360871887652830832632730831369166674863945238612287264374836654896618682128285734868773590613833184699922224459297494224213088458090520623724838412667882245766832212882852428360732103528012668235353744400033980887458969126378570160051131619749014835306506580274514030341089256538678280905832687733383640676251831202092185301477109612646333593218815035407082978607978079025947526152816649816255602931664730939866834990350064308078455158944232902383615727729823784548678027668996706354365324702449604130536647713423476963077964510560188910430907547346975854002119393349162861617364900595283028481809457539329006048605553339006638169152681319101668474054396614786359236096237413613642101191077886924500468059749183255996752679233735794267303551909476632485971620887212947048954578299027929317843124523753035834870345876025329410400924291142322087357039849539650306542052346255839212525084899302559488925789544441787283937271344073301117237762542559129633636286007436285402603429508139565629332957853500286796771655463623934562729601818486336291035447509301780614226873150542807398664828675341415138984047440102098852404276166406696151920767101178039267287201952610028962864739230898771094975223180462620797675052487585333415867606381113039129546159066936915100609117772567583042860333376419829437631505520139095383086099835150022168051673700370591503155458473228300367392958921890252156586296324649914934709073176806093262274209306133967340636409602807182350406459418416135213447004958450487477087746894747682105851707441294089176357038799231151473003020658844332399831455082319659389338955360294930971036569887733453141549211579788707937647550855957790571335918375641542006050559613338767031985961522421033354380170146538886834689090703641708251942450159233814296372923040324788724663481796062867408552764450177564996775228720707071180907025192500915939915819615102395847565235750022093236043968072394764979571887025360178735002715303375455921546417812944105545293088213258206395004783953195835662681570973785635825421729301754862337727016511835041606365695615890436641233293172488400611510159505284618293744787384584543372082764719841202294525777786335109375508796017467943829271746147740757975887702304754017093462863392882200161262652627944321988658832007423177853213498156762385107063953400742578258356418263137314555580665946475449505766965757758745439458572770384713603966830320323417623861203202803892607605384085926467895484743193005116023139611956906558970998690907813935207959218579832653949178450347177472088475724320511104359217095248371351332099020529051867870850994376990645048205889472403635390265789076380382343304629464278935093490579287717245521680871734121448202092311463736841692274170131190930565048496378973992246747028799999557786901110117564943675283940582213235230995646489612968529792144414543468556176842102169393411157262390160727370755316668395872567548701961203915897447576137039601167919495541165060054020781603778830093482231902131471509461570481320856683196603135211214612660949303529478532082014788991798359695808283182063748271695752496359395760103886776878728389363832770379892068718838054691883001456794417084434605092752622792928053497315278791519226475877233115715704465366884052198754327008493714382101348993967711746318804024017526742478512094180957344746142795305835186601567214379502770368318284107292617005704936244653494690388135776770653206616670236111948643405705613046582228489949843246858207128935837366841447532189558888715503060076102138037593885379878862196720444899967003914310756252075225170376196528455538350358834964349007023336337247634012130417611149282373607506865497673594133869115271241766653357074623006104163085236816088921338116287317558013186683448692072852156969853047310229204297449877053502886878719925585166528164294052668064072555520256770589182759834911040336335627854316001356044657327461146225750569829275239347668577803246406032036098284959147920033201647454939060922363994897791126838956531283813757758279371785869158338206615900174894543973189785168064895948770974610533548234351397806367833352751341302930374630441159751473529031448158311531837256602500284132192917236187387192438252591852720426223765320393908003360633975645076800578197518461816564573934354926811972643217705268966064939726904245527541318886438434900818236886951122364595007917285370389631851788428802447274191460139968302958054859362159539962368904041604532373662323915901099376719531794038065903342713670501530911932668674069090189382157262550889024957079771704800350968490884279111570563839697501577189846016481753881704513214994907734845656585358581606513777580684728701512855950718360982202864784505955107262549027905964705469940584677453866131420910294783413045113396858205048264502273317159768581449926092146070198980346117011523188098506605384415593086016413868093654929928402257811658681735711283095689800473929330619254838685475029096217511059492782292144564469136181376988632803277483604481444597623071963177278113481281374063662940977053350407957706509105760725022488423643552856310893535566874282180202845560944069274191324298147642967597247536771963021586806480215447990451455958001597260286546132913161717467123354083765411918170903022217297151288508006319715824460579163082474804186697618296887781818705695176820645604410294813645907742987792654358083431945387140905557261901086826645620294521842825386089776134163477432131057235951244924997818424880776502901557129780349081178853864313512121710445019042068901058174715735426266510767196629413400220135868036707465277566142725064655742713217618091395195323732601640810665846126892536813998601479189931821724748891309180760813198562419145425298543299808826383534313472398142944707098438525850346789821500349731697785771378325518758287010167033364155921941815869900964939909092313480508108052088372203167540764873615791134811429099217503000001647428705899624523542719912674771247040126199451783624932742354398704406341051003076396320825341098267791104234144115822442815799150313624449799928966216789106453265916159240939209709654072802358027502342689608997081878026410680846002833848799016880670229151025042597963282349891551765844530417957813223767619409444853252788225475388367837542182203135874226796955117492921094521998612587931904203291339222524970381477141543976167702702027790232728663162526078601231421358329151860455191765752893616578269755698840271492017871932208869806277180538437995705997357646701807970825798955896702424444593961149508086980828218175193043963958506021390851569023606879843442354177509725373266080181874399298833631209158504968821304187667274719846619460145185460592146438558342739627884312737288033353130031856404930348724589651125081524745651580792068318987222016190536120178431508726184418477057263599814242143059946408419576664062918422792106317547707915728221632749913976530665645049762738520139209124414706234394961115331706533952193768537173282066526093701410396100506687345350949691166965911885038639146026735745818925233426298153515840387572718891474187276478678209817813153908787887830346631164249903863310779218296227886460610028151056412440651371963640444354808831066986326232594097916951569739504400556039261611502709469871462310745106701794422174351497973295410420077141430846341654131709107597110520706590769848670403115387786047026558155176999226016625952383594760507356940470889259055802634734601604759092494466613575898137994216630480156506404609204688850423731443795856572277082763267194659528263489551229181342094833888872108652846930445983674731618315274959026071772789903860296100751031937787628083777386648985319755503032530814823140928311017861132795253862673371794542045581637837457426790293359329851726388074063471103388573023075939604471824384462538889163887328439160429292419546381809917499996902196643115695989234155944649238401238619157136299805706166725221158907618863068826799335446923694321038295008180163355840749311012711381853710049437969150897553335861759949905302746490048350439576120216297886622393568005585747626836529958569640997126499298895572497340263507683615691985973370508517022433821708808105917675901660609648586978385365816222688935022631173750405497474136042562894108735527970292961111049796543712924716145115026831051203470682927382580026095005459962155316246876308143180786135072303897046195764468000386608483816421049624907944323839773575568467173336369000748746544586063675618914143855345472419948834434519055533052293330846360801639349047558240415258544357319913232827042327565506368552487747043381394103404425081223825095164844758598430781826448392778883708539657637181869694773906290720369485757280374384227255533456173721301648751436921533461867309989917257524786219956795879872762418161497584117744436174419729278135880293153177511588728780727460417097786582703695781875097170873987797714081328144123989882696597060693006478787757766600743727360503066997025482631367858244876284582743468408539043500230404738848733962471775353513386014894479049097713137543812613248371075610917465009290466094535494581694059259024165765645046994835542276653090146974158251072820713988982101729175347935870731609973712543120610990901476747804493470489585214818902833787485828105196043457287695249978940609163860037207813266495902784346054581385162466547430604933490526156985834002787171627778079853578037347791606070673974275299285475336906581425480788850340762927393691850822953516091278073365248947004246195926352776990183115276630941294780832712373826696626259937771062219075188609494282093176222928713859456594783991691839225161422698083689804293459655967169596122751845766015294970479549387506462124472557783154860853982693863455022968979099303252170694891978664948236082916620724242278793806559744678253589036091215097339158672014526247222344971912282747132705558125115649524862637181557595710732035904003024343382177518273983498408885569853612556022865350995108716324799752913956073136635798921237584098878720984647979772979337214664682280614649127425536508161662258170533198793228020623399027431088710659154642834745164165147122029005149910930997228189199323950222575789608833792903323916032845578993957884492532815366468975841833790513963342687302183794161395958335316055573675559660125611825200069232835040756983389903460922499120584944938146139860396920372468219778746707483098338620117064430623497098672621049429707094839971640615782092928057658275497551564730018054920121188890897916012858636370611931464590631103229348689737379634539296188592529027845015379986767778847855623691549876696427880888119141429741393913389919644239583395203525744311381994660135594381726339241573405805307302382633560638566386876853622815254274942737706470962212612602176377809950420794754942841161106448229658324348196801543034296461074094790978692376613140161297156124041657635661247213185819829065065371747686389914709289410744096071125801311522824397916528560101355526404295150798108093077253935261349795640118689325012184710989992523370380527248702594180304559030603632923011030601196320524517669167877457854989276015452935407482693319932725029167074786539501548046834500567311061074607860276393936121200741441121477360243234248405505994499897777912468547394367422364291896301494110065685374126602119269858172618822956892443456981655769272375311022193340055670712073272851920286513528131408949532292474128808201498319234227702885941779429106716676153242855154927070684081761106248904983461314637093822286751546041159863171386741340085489260460119380512209442758406687275576106326705944398970899973201294032168057546737934555196629990167879562646397107164871928275593702381310235450075083621833776080716393799694370151619781284058440417743518669074997059961515900560564505918757737691520637299323307033728513301266170594863500804298799152998729850804277099776719886910458876398748400686950671089073306897912104719236324768581956898471070509716154728915030502211941565446888537236942899910927243292063448297912578715757216790062970633903544289090280320096924523839540559352247254688236559245333623848319446941439854158203711155312998179986754491817895487805849317113258243641301041755567454361098513769916432296438179091496088811495600911849190521253727368111029159987319238240579126768802252819668221474237037664310003916315971893762017146107961931763394675012718638449701320555576010936016983976719796010229746261733490307090655634674954660812890161199326721579937811042489192088280059558435058659911919462714814536491460351436294373348357724168795061405145385631554786247565509928586515021441179277992774463427880422709824978246343748674710190255007190399507391478472031424457603408854969541600493544228728896414801507255356715961839737929708809858562725066728646983513650810886085199255489391793732082718650414058527640636772360219783676103328518487868608111236923885980987974303406229185753268602745609109819564852831966997510587681864785475092089219525827751121112262811099228332405736814035795203008931398313616559845923738076125335014938378904800944864010304018261773532489914686903190348733242236925974412372491922887520199183772843676871202934864459560634866699331239443048184833549706495771507365279752470928311347097963278411537998256634103286969675982951632642174863032783566970618450084408864814928076615728558495743798160287784291650956171430685972677500342876069902160486391684285632178669104924804844142172806136072936561816983372474661583678858898083039831110937218506937550213412280716476438179405402491334789241033680847503965451000339934727529475435570524078581080603323264559288775254100704183689576518632781403140296346469894145463524853848858230463178071174807286471411769515384052797406564773966976492004103993099634942369410356423758975517095043515336198139563769120428105581847487703168884762145391148927743630228248433338553878971959670135887906194839650127660074458170311987587324696073713268212087945924355015717774157055966226618262062631219990396574218874187760261121440064279639787148789452415135987983044890313316325391363510727543675507018034335195219889623631690737313007882629116386346524153931070482549540935184874299217665303865863869925764624761263922749040439981817473661267565820203057780800787788508826911129050352778296643222829936565298639411066304000111875154944023449306013774319386729742654051658363006135266966526695774146186301573481108509314825723326935801038043220835218709985818030708155242095935125457287129778143522560691977791640363600844244749423055623396495541343937472679813589928759128265606588192385135881865798951062462035340138843574726456106155085715620725777761273295832703614832748822969737137789165285804216861626462723942783238769639702503717153866841939247595345415121795912700752699577926444070655094979010904660834972818609792425936108648246049625312194308757770050248303504451785650156147368559954262776271609396244831317136724244381031212686005942628312262641480948449067568375374969954089369809190695774586657721546178460594906267169899850781528351565365395255558021994007789291134300354129380989454789647979692174891538507563280710219121160221909140305567876717369856291085182541436100123732984950470113714029355201985696358406014497809817227869248744813383815363236813544666410401984573777754541142637718480749041303788639482829241442727965169472495611768867088870250768559884373007940738295748331815991989395572909758984788705542952647480223611806735945069907440728348233077815883824702272693112615143495071526212838679230962812895609487942430148175722205639854995819388013399307987253050049570020660802684779034888063500454540086983223832474343496538613119961477623311622929161085490894121321707461534462844585073493105271810415125692318829019853621132608727129721609698759771472429827971822250485876926480080710776043622334647206916630621990830789645423529802563134437693230194650466818493327199895428436762582370525497478933947010569489472525525824000859708977975628500359374882352119656999069685899801521805313443811101905632494290292173704530053944459770096231383768304685112351466131788715024614030943322513875803972200445330336032983547806633685988266068513516760728699209657138104165874753702762717564234053356483631963203747922253404211211198545184058480542146889708815798857243274462653389867069168254899711303111161590183641235418536546771909798503865108127184388776542927222447684385707422372778688558730366023099435250838892844417700204789555937369903420544433625911485700821811130376878699640789982789396373793659855708230050091746251238118855908521743901283451595380643599939656159260152911891437429580942626600952755018252769193780743868149544336531908952209539141562591536722739639662367942426971413850228526429886344041263016356896335782876153141466295745466168122558968028460642528638118537829601750564040401014623554842442258459582339421757385540380516159991144883951052023370173937965541908541980780622554229004962541427574442822646894393449146613094827612567211667167873540943244702632412220439099450027460788438180860065802274793941374374688231557773683769263411987675578624362918506237512343642127198700380487962832944942785565192995015391889059410265629119332952663116914374956287995342240032199565069117598695230213182676289240320947805719679610185149867094499970988416427335745585739614868545015121233004127413662011849763202175163437338824655750704637361259833375578575540449085161809871435241250348507782925640984007107605630247911511891935359992240468807331324211523598364636092122062893974411583017998939499024894839920760948259020012116018896177049629186845249010553307913691299388889352825385605385285315886391148769483138459635401335623777378314992558836223759715696479001045653219960978366696651472127544761091747364151333596353843935197749654814221561924133431734095499803968485997896866353774252250989039495308814861736843443117676453062320335246771293058253906732955926852921556181206013707978413121510347613427424905423102976481725515160656152492896812840264689544847669934996408216099323461446312345417919250356115498828705494436783385269954160073574255694176959091297465359196646935301949146225824102823579046830294629933889643726199558519699776518618890357662053518655811692759142163563426679341799554565748690773219171346679068815115118511452484444977199652874352998280665094566869216326545254904193149475322850903060997992223429086212439516491667100172554386049993643497819460592819040003494750188184014691430813714636079439725056709316445477080518164236686307968699493330942530601894754326634629164953070106080006797434794943838232159769319426433687947548836160859581201804047029949911631141205793635040795045094071778350412771011147377372209207450697797845646501304987803001584834451670160880087627229761397650568491424547467225495474897927559060566342203621853725125935281319863454428027576616854610404237060694832099074798444675467321406113540299455510353514361591267990929234327264337615749939502359950890611049352321393780400169290399291168849740825726345306338035233435487588958393795024286319444993774221135741716735323478729832171607227102959436989838318233481782302426355354486843619928071066180717756185343009125318076150725626180668885179963027674025948614230993952914575021212069181536682714796947699453126074009582452571151766888089122450402370501415095715944762239343218510456022384151563958833627559155811963832413377791583243361675028504698173666845136535214648916174911943750824299264177088957482032468699697430312865536175438706237080905237453488123830578161804894125138470082428318862166284525518209033455601473091603543376017180648218938059270923941375200609818930099034550628538253742595186389710808813180469489884069445417147513065733611958964241630699165359831388757661491468025857369763336834246530900621912495120449684445365581852140047302899455490310588171280742996917690815504550357558263465301303462747647857168626946800822465928355770980419144360997092386770363131321616673415093550998334638647279317795795695053571259915395752620692664233238472581301072618325703586989265561230567365902091615365292372924068600324981654677083746555994329360558890676815740220182562070971835655840468002624817972934890499440549187924568296478538984485754240344564979382862206584428648837579739443974447063959662517633115400378137429764092916040353824294517600227156385093448545516469423015865532382560582468505199254660107432368680165973664799155017772421893583686612850942886627545213038987425127658022502223745583951990958952438057691542324053262328773775115776659715931472032994266696214731411563402165455402030362264953233169739238862510598545966913397033674319016766182993633710442545837673141493299564025857506941358968115214997174313372617270426526468417157761240264203744203589548941502890910548966316363773380879663017401346961730396676937477475817779998483598739729426407681310368241599436062755680390728999734563616855882818517514482158641237251243264211347483989448391469234346979446254639932435290907212654057047186142375608540021473547129060632239372761462969333901496132707742417878992934182209923756795719571323343797253832309343611804512906307211321016736999891459801778034493525016445525481589579035503827397424128246820563265016952233785554057156621562561171635045594913282182401564610893646605410186120981268113376999905359030017921628498823913242122400962680679262222912877685967266923092314448585297352461552187950195581363850824059223135725118896109071302838483544867025154763379975994408717608467541702529011546671981555789277583950679640950786023238491803005303960985258157476732670445895299654506069481103032569294725030447049557260968786871895487475348183540946371092893816957412998904223307521620631363680217674598308346158566513932246382425815265951779848573253453861813584401526072900203034105651736797852244913015350433234635665618643103851070678777375594109542369997775760061944973065090197357056802781197403533684137239425138587624076397837175814799769520506189246582106330103596074171516467917510960194360548201630223131608175992907288868908329168353643318486532804020442960980600232332818827428985252844263995742961348142334269570077686317362388369441592115551907214931718831313898949541525496278638262304687305140105452443994687494205875045543753383509326921757171311253847179736446884373505374507101532052803794906814389155472036171148314665216467980806010925487224277659861739839231852448740183877103249497473128111563743145985106100161224404926534129511844438106883945923402208140152156980460199852534640024788638054567778982549773699740478991444242889836582973247240062183849549423784548546481077106801073568610001744323163006484453001697003505575925172333647000739473416862219387609845545539658531141753734026905593454941920948668304212739497649431836403185829387396046954214307034602323118046292062768969533408340352609032872490832564584017219231611738395336948084198058499597266641844769794039608066053638693825243333966958596316287865641763215860321001676487900408076918340534761568792676983723416293016736207094805800904413622218191814668039509261355251233498887742048068488811808106270613726382364649648810616085699691830178612585344730338023517954366834685213945784767260268617674783012228893349219599910515658105048142468930634667587495428862011861840818299648306033364480486226656399625771534816358854634527659823571980326541156460619354083964721686473969397195577821348397732235491678716929156120111427296306859919476719663281042489867878080153879634603782449317617223726597165544731859081486131075696792797976676224672148326784236189255182475842549136829928551094180190013548412771135416245123283217653684021664653489422439235246956162831955307455877972080797106292744289775396274299835957786452692481819947186407064613518431414030192978686953571311773265971937238993725560692631565089556537288515431536727443642809709081596303034543297483475963675283947293497630288451495265239634365850257486319321562137001206357898729973864962623795259700859951346479000374768589052087455760203816610580409953481381302570907536140345169027441612637501280888302139055085396698486940051467364598622832284554327980441392034993981004019567674286757729678607102998285505247303371934237053536203117721871062368929432084753330812636777153336907814992953416513627358992445165537590637685539630821800999093095571824268842408624138941157593967010164792571125791571582304150101929855900076892479639524507297544011322670836614321503743355164343235673037420083619686230330205655043207625937647152783810809633558513263750875696559577571821102449565510743616896411083845872302752378610879024466701479129266095324854607943674749146601756832817671260497476161385710607612191921797482317456156752259386639424538662411486440717111782740065641133387989255588405507208738396295156029883495971492018730528801770879867495355344825084376263438317099516653768543661396773333056789561995760472310954044634731091624602454370143099235360018577710023821842527958340490713201525929138562726769977164416609840089895544518930830849360932096662922477657159017423780566246899893365369113108708644768368696895144825387716546923884539717887211839490668513450716114906601179011397064720253899086835122298432919066359249111728413460061883366769795886057212099319812862105862722594698386225579639319746586741617878217824729970973451557875731481267855111560706532199958041027276475285660012927799971498681744186616536300569937665507726956179079866910615958444523857232014866043708187968136820160864050446351191130507689459556191877482402480398359636405598630219276886655484895730718012517409730150577691453344590239479598455208974944632270132713480898828722969911300475110031202792155565529098204783844813270122295297115818345881158053024977097589396422469346539969859940185018361090620520042487477470871715107465429037555506290991946008389777309697698498433467518613763858814467702198480943352035313004576155266614076033837637926490755926701831422287885122777455942078999904090673156228003923474692838276444208608541018066122563362847074660597798227976213927422641465505860468356862524462252923573919366302151885667155696628600301774812710397323697432930498111088823779048602305861052442968068972770300008998848293845985238222518359577998338964355647982498106647502813807965948715939655624388855920418436695567960848914248169620782275607887890858062740859971593545115156873386714868688455011954830339815493182987427644268588970702019869292991479453418584238880579490217454040626149770694575624567424926232844666850444573567742918286626243182102012685565483044342682363326780264284226255587180231888233426259742635778055277804382607406560927378593337199462521856041148690043118440039453211343518052555098847183878626658181127112679938849676833702906753992026910864821655043190887898583906972667755823933281251504934997160408097261224859411046276132832356262055991215027603997258209054359816923830108169069888159678435765560356510899145019129373476437712046098736250282961327212648546861627370426435966023819525479173086034627696690075964828603730943221329076787885234086266421641346603526668961988888408535101936029594079212871492437271373184026686405599934728569628798374622581772609896482745657049602569151492469678785460889828043562718253321131516189931776452439420400029351968509366234921255447273323403730062932219798710199201134097397208737632271970740721546397674315335878341446658204991697073832776840640170907164023864186256660438200975389487787781383982186887161014580368112732745855291655146526493263739378755706163984199865593440818218009386295353968805220530092958208616968580648591285063834288824683763272072797211618153757681432684314152092640326864531273546183510935009755783973800149236944798857996983982067668519007590666883473863165770886111615810063358640312416867489817443558307506945081608445632873189060604853633203015573476634279205925049059859690777091027466684596907805983720115410048762482733985196816491507802306641376756824950812047023693664862554174221025820437965230527473548979997328627717864097070772720497131120233559538440261400977375433921220234798960027278227549122166253628986797403379649018857794909954766537472837427631835488015421715118927565165886064222301124277431102226506876983454172874114803204289335860194434353694390250636245114452351564067930670017333954407407911697558460058860368484547951126036985919522971143393786172162216527397293045992583206122484124059051075552891073437283624520608048092753135367243923523889241027059249459820546645220846561901957108543600119255861173948967831878602628771111817419401209990473658829460892424105447219505249138205654358113322144721433360125289583963972884416556402732468256701429076557869446986663400952784459040285601852968022593870247624393490882319141087373885483831478879239886227779492683839598871595651500658722584218712908575196859881495350857433598297837673358370100837030009142579411713276413280817515680225224638259832337824631219153638678867087714014186442642832615727174060685929137463954959764598259728016283908551826240720263434375656954112064792875121808324192842614911801643954455120761170596080115911622864276908396228540036029454524494075164677077074799247972830447391343009005927624047180988331313509505144969507467098491258071140491358953893759835506015753343694426867397865713966171416818648440556200982006342291609743801559869724575783005122314736255558038749967190041683187832533791571265159187257583171893656512622333915752276976664515559522424797134057582926768698122931726143057651364296868224241035701803938215723061785387290495565142215775026484306079187725933244464952117250705374652677230699066545300497601165031202577698514579475966180310690171761894956230845945761256432242957424901979822994875206923807158333440943936327957487604063440223196388864643160722042665249779739595392971306962064650605434932886658239310255445853262616598435734349917345973671319864313610905913164569421547149943194400040859264035277298097121783323011313482406176881800784689106929092406451699852386108591389255754169341049269613514754125263994002970043548089940125232004206174423047500677668368439459939961768976116563179976930617851068559074195279504634807024349297923640187835677673375755517996972102873084927188632327914014694764651682113777814657312665132202983054987885936054645192520993080752755007536720112043360623599508900989336221092197648904808648966323150024513914142092733179767224128784856257875939616447172929807789950660281388641502732566090842232065910326616403715161071862530444772485673189253508791913715544167228034937802362058893884562748950182249920388297645972040930187601877241614447635015594848422443098013349286828514963125364523143703100479032939556908757868635143535522531082274714263773395175067587950557882166097553102323987481136606539393771772664022493210225731726608929509876579634810004289474882045116676962220119610653221228467223370699636116105359739516465180204148378600147635971462359923479666711578284437312767540012762456713510555362414693608275052820096313331016970093637707492216462347658949224987992743648860393345393824806367556431825193063215401098210769342759236042137034875693432069347739349400232543173364458666816735038425632080154580661478218984933306169305925485019107737359575949619013525133304516676876655268068234389472736564287086741801885328189558554956573046967776586148647996746616527873203973785246985851225608835328008899319994468030383650716829747391575608345593179813386423090196867234995388813963709147443168219457904222374966568177500126025970783889413221681969436024561078699840561614610522433901304245312680524021717358200394885451530547564766177618916086220652874702148675173088267452350506271509767696523938261301966239129026018666158977102638743841991329330532295772222414189886539010153327115684447622382317476803096290057260712229780651682520475231646481234914696327133573909637165604033505395405103091104436079314287811013741747576124429465798811228100483913082979731080718328667628669412777730627941667132348931462943105985394281171970720649846432970334917944074607700946683965978063541327065492435223104319309252419408940269071227753581850366009642226291887596221677041344487544401278763794982529893287032642974601218960362154495925724807492403542373336093612047789323422289491613266888210918145091532515325249938786166510747291344793622555962760110423442623513305560323560471248269518360972621418044529132756373218154235940735780707029348317410369263783800036702396342426589390714846598818844645785906189733139896445318713351634167860217342906420880477018869202228247874393513380698893215408911957439564836994386849422204083420528518925495441790802862730474870186024846049565736663332833539374885753793242257593922302392209785713374154247795039515628707141307216957932671853632004331137635525930084763174717502657762189092220429859566946611162366927891188368444645916046582946959728029952737102087990026076798359423418287635993274243899023127809964964266223665905707864666441948980793153636041740889506068123982174544659790270148311260906978471949960047854475500748801482540176885679828851260975150313505839098919741532682581529467311099951650323791083104231075797577230774678146839973747846367183938473842874266860155403591656820851271421716832506704292581408183649991981585798096375519050475861913686072231465971149616489722638616221909862363909969351109134205458270929697042738368941190584523018861015885965056877862419519088220068395016658406544346990341431393916652907290426382552236349765302934198701382656662440636295113747749728244801981419042496252251379270592787166635315065601335843676724785287917478057990151780902546756782279110893450653810042653559122519726472247580614678930278304167998756772765463720549744188889206931802151870451286800226561934582323396610281825158557246714030698119183108541503930304135435228634975539883795185385854747180837776762640164578469344676167967587297251667556903953643220366417715143775416912793023926819079894487194870544034004307653334244109232342964999130857870090396548645679432250214213976566802097940221228033742416390324294234184418441575700309313510828210866888897479421162203258090593727533814271276012013007887919824558602748350942053931555967141152327647434109971890593697661228643454840937739876571992562329241279890519051517383217055466384623446601882415959375336729585853273175504576569780530312382828227068700089713340973709664280527273145792640801390437422162906402076082173175868688238727835534202576916232468239105530968286781496575914287110484743775774142338705110760496322174524690387137265740298003886704426149454155961279426169697552189240224250708085528515059793738577162484895255773698707062677313580682740065116404087714319756965670477992614370479699165275473148926586250657836603206056395888575149227004165967906762116308872220836808221008089963340391965441363980383852441089159137307238550540704578566328661044022684947323985550545088389369707010870659770889996261106161726095548658148142637626185839017991587354154155934971903562823400069777575709840347542158330424123552239960883332054455586815682470098076028811332003839325476019315118754215785817056776673591995596347988416854561192519771203812701211721766781880618121293591888352477603575989610538329869101990047239272895691032521852529885585718299941411318029830938249465068279805397520340088482211424078635234564021278681601688686631513006028325428081361891505237646277580682097664193235387219257715379013292559181823410794979327626703417247659055357217844321657103567161603554930297978564600181286383025848334680386614895131509056372452819843602943615386340686925565008740446323766461911669668405160484871461788343138520564792061704328897742860633945323484239045465293367387721165499029054971291671124132838944355026946066501303382160787302191088409681327658154162042684998497142959682898775689122517576049712571042974227489655121761808887836519879157644059596020211047029513293813678566908339298448390477906423178048489465547977043351552539793345722035168517949918572802190292204225785410004553259701308885626601509522635941694553065360541435176242373624607987890474420127729593406380666286224615854293228050794598483986876884105999973951532437121085480064669878609890164961855662919808774004706337594987980461299877107336668050289079335825506458412745056292730418318092593072675247496205503838222423035548853864977915823799682690471869578921082789731081393770563262127360960034134150262195352852090817426340119752680116224946452127732287908222726789549818628370956443464689526711990977020488799293568401312817348449930117854637892588578114030782603991772580920806352724901682945672591499189384496809128245021480153583468096588568130070458989437272758105809503948391213832983661614840664696465952403243609106067679796069718112133713899569954583431826089524192667286947522369948100161871736776082710682088484149024377611554036218048446523095681763352946720345590769032793842686602582536538309415688107191023133136231191831951642556659613086686734389523547426785551223734049396640547000710122148260518545611841944047520965776148810192970122060258270487840384115486966902355384179607529271531849767810060531906496529449581889371247101087329650631649687190519538602200199165456804480617912253167465241006989388113259065239972254204654959487686278876900448987914134355498567784308108975654602276531746863599163055655325048230394582873709051445591414922705250415931272454962734985423061367530855036147659415710617778283013844274893837114185024214187043524282926936117610573000481008860358316342449340456514895837955273049336672722543503714799414392725944374952951956655247295298041665693058544624820555027998842977133202849065683715729288846083572051884936268503583635456142495462581464741721072310445686705632453183051293482716718034431963772669769128322698964643144111084991604966194410488009902351688216830741341971097348627808908258579104165468630764281748619814133181483146417404795272306798476813085094804932525479579954206145827923685273236093744418677866408147288866820698332555501782086200298383896024027846276385861109643786144373701993979880059626960440976060768897047139749052259309535568656291029595631955845360727849480194982791213899164911323098526845060312757651663407162010367751536272661346525499132462275928178468278279904285585720410800946249666484831655036930239783862867789898213313583147513953467966182859519003963078378939815621204757655194003275143915792917800488996753987048046481212224677791670645515548754506062955537576806896346497856090004970391171859516586014775407640502061355507148103246632856175452922517668975468249219843933763477726940118938742432909717828055734962273153992012120063152762070944352152080158604843909246302848393123672126749259336817227240962976528962881821651059473268240082932927992819619996490188266440945909834187051939122349421445284348309301358145955011334586711128856939393486220246064566648965305290462872120911986089129880496998744927905746621616887246638308998932924854393252183800964877198622178471318379848031062910160374798189814693958598917814268744542058180664611082883775023265805538837979552753259764050382859442943307337834866184167216649677739098075384326731175063662588892984504290161774737702601014996279270820484473358327617032707602348827727628428769170302019901266218995295623036057720103192638786184195654148516686501108303081824649613413140406804773901284134934989757569712433827749322785522375971191489215330941106009919010705658312544731266744739074515032107077501467034945850891576505898066714994489797285177585660433765929037953819506042972917091813688441615979082080496921572213193585017865284992188334348978393593396752467051828269752088683544736222453063759080878319880574183312936449447753655098251452634301268351289484981938948414111386457815294765215866227923751325519217972395767171153712660837082741550421606466355395999733876592927297673325827294051117113030475423706280654248384260675142269343713685634917757926529254606170451978677426279469652846549633872676658364329116482353406791559862527152220640439523612119707839349373945786496407734962048854408131384042941749062142276725336363921230167873739983365183205563889780517212329462082224027457176213168651880103165417993299397614809031073052730578353126577353100668707346671247477482423679424039862991422062519762576399325475259234071773675818655575638015851264467368322003090216067406069440355685285151248965170583940754762243449262034526814115048031690116513581580623670969709168043213122881527851222184838610536028294133581589967821352884719663809382547919894675098331288301778645375683021373360670562846110199906101031312930497034487102547472948896115042947761091234113385832159711016890843227687722377012746522207544658042261343054265073518936814701687922716582163729437819947950705936542472461181131042595624157316904047468514062731379244152372933567097356086583578975706569894246704907576993444654062972603140157175405810043722617256227709543817594961956626804891645255735260568360868914396261599371543158117083478454980941225684980835508468192909042040067582747475781639028396061297875933223573041198821166234452451435368565904450881003338377918730985018728567181126738203468814002272883324341404131541446464729831723982284801354091350783137647605424213910903822239164665214637155513407557908992882524653220031534684292894375967561743144232720777491933304319232448666853135564542734316230301730362373909066569461251557850966602432554661212396451365752146620875261228097129014796760511595551441379899185983662897081551622740502284937738354448508892366342538733969626283267747449182655479742325742578057437855606467282701877466197705415059832759130229445476129352382437973980758715740989113847525305738003063882741955523898615313413189345816346381836628871640970979273662823265914050006997207017369417152274977055569320285549122469154667567223353076864806688166671712521172271432410799099799609005623486872312953918618999787893129610044308343481972746635229155504498388613990595487237879658088287986824275357936202707074574603071506869952828233279470287465858778934250003741775289943839587566270028600778893043007976889995977005892131861093632931029480550084028540982608270352227607394546359147992382857848332609579676992337796036500841255447271046989930714251571751547219729154710537263839270791867822813586726382990222480754006453462352059531848629517786711337004474384278962674307188552434453787311120869039032267576049339817925342433737899014867818546208207097690644126689457887165926571345122143414525915472649914004735930425674965746412282902719472737676559957994795530210329494752043540640381942233698046954565367295186044796128076126153125563597732281437160322397632353380397651866920087519034906132713566100852866950818063112967888925126395514905068737811839173461098286746234327196558018267698043169279955635076911754540352692016869489600594481507722723305655220601219581265617322033463939964975026891442582461506829781084717332259407211978621948966184467776881998910599397975884455318316158433252486703720018389403222247352230296473327269183753789779136781111331005094422656838406957410759482768195234322684282557252339927620197684996637527242913344729027120384863140575563161801976620288341046005738323338471431355233412113620020648413498120955906782930950697620552333303820657228762328498986011676922421161384113118488433804448699257960362316305180410458342861239267839985968890688968304079110884078268664287781168079362520425832869387866733696514413535539953913807911698528103411116112058041089478679528454552780311827138181432507033135503006305813112344247250742398812792556039282278343726280425156646907575709792081953337555870789915665167454804885366291641227735681386836177499608315660012646283445627199598071669889339703580061998706573518591063101952542540713350164255225751575932098376217707011735942397815453920392424788728140342588410084013062734926918162451299254042276034154415105455144773651054409885600083150829735032565854404890579336220818588797215121458886957126439066286781407948456683437091882292535506553409270064564373318156933665001519195541844720452611325139615463505449505323810482039961490053834658235687726635486106468467196948749024586051161036770711973146051106470014638264176305672458372552555478338013185367519838351338563681566029535348540445915784254460394343655861798400510909825724721983381681452062143052448013564310336616775328306453336673935325187232995338707789614994342196968094374500118087208563361461618393257291687288487949122529873567941321525741328087241842625783789833436684443325625965550306143206868079273945700595569976322642403991339079907806253607418183987119964710144960886363522106290611725622358066063870994789647460936851583366222739813527569092014112943934548963389861024232976212598018180384028180472983037812794606976462084586238313274192407810448822537704272088003995942178403213608990249706429138915836879202134666813174460833262564227150055747993740275312550054546343401791814979331525288567218233030550615356598472146412487041964208178148500735427182546118978614440685344443540267622067218453950924202714771821328868947335650973375300633215722378385726499574595808498060673134322671390902111881163238840866355139982233754860112967216882599731229981360258090449805746497123460884826475161542636628141823690626646168019468860808942702690454702484907109395956419605824158652127745993647184001298152943691127973185933820097586166593979963050733653148797752365822321656884749771710457039331100863174631289479292953841024439583055200731953079551204404978951380284954816745741941437457661327488055606991243510844747589885747201857036780672089730655807855156442497565345522128438949129863085064136382236688160957084816441168819856724428085732135619662370128116740682857087009158079789363943591228122210366399629598868088261167900480203257909680268012837001861605192508134588020115663951700556920967164881191745508578485081408215127960889505775415996908357451837223810461207294264958627280070496960954232803714639682197505445142682075525159890346129029572848446207513332963461454961062503226261500567621108054589020172600777032057937209154090075897095708299136338775174597795238719588699695802530597256591215718278413554091586408270863605904444120608345508772373440254001054605312306405947712021489747328921986291960961111946718388869587174619395325544560850597668872377824329488210025849222067167694061447159531344324117253314493662739228911701019231401408838350783632933860961538939400148188099013215101791809655787365285459662012594630803267657714803496403960995903660793236440230096333705255189549085381240233914356216663632706029883091871037473563789203852374837145596097000076270480971809269459029475384105386252484753772357246126978798353859615817875235309440927856788527574212979456568266904060436712601468580873931379779334279203354360280015119010909931434415999996869457467274643657666394710707350862279085051157434307388499055302771778268937831621734720267121021600660040749765730474419900067413585496476203286742742979786858640973057744841240437489776815397868488786961926403824395124284526074151809201664221194173274043151204899666968431194158001418398180383935836894977402258103685133687042324376700216914592689108234668546064721153167287185689844296009931655967301437101051846616627878880977902852542290412059305107146165551258770994378792675284788860246885157527936906612001172569287414823550749384713547394022508293178471585238760546259266393813564017378191858644438557224606165766887392393249777673897618433605132104021633340294306467588548231044806845922178361768001257177316312404134514416823279969534026680361271805487540215701855612395307071638415976588431313463392549970959223462298319105528720082856133711755141682068950911243758617016398166640213278671902900374111467945599519753163727427430703253713788172398625838816347689420439743544778721121318698506855122808786676497201712933617661518997087013932107465629330621739587947211564792963084972492253521563571334042740987993929695166526870238565415832010260202805547569836654810974891185346509932440833384597520545987654883412524855752646511424897159734545166107164762042434280920746695740182845005792160944824106397114303442288937539401600691359572170403087909150448274668813590215946202682288813261117733678381165495613291085066473075046411384853401779189979525756387566280782041962090025814681165164067834464826155247006059174539788832054536876654606552587495690574842901522062849564511006553560312983535147597823793787009431802787601197969963691571652221254115008930603853970946939975006341006949248925234664088057237006458058406431066259904614582491741040586516300950432207966238308867765077820098533835914541295369607281307502861078478867806055570639285881689104957625323763493069345975069345005353997213341292906125133572871715943542813991107267219029658266218517830988382217178144216540382325270443722201297920430419856808212548492680783070994838929622909415051395023745042056189869261818376914377645833866434079093233791599118389534057200798831162412330248908504159024465951668942732687891281811155275823743622778494444005632417194611260515461207186650312251121588397328717048831269310596188091676350707797110576867966488956758710523805370621667383160844396236687073804293142614230632159408803256537132310292976850500372577285330129661601300680326135705173944858758828302023371108246358224874990976523399200483498180172643940776147452153517632672902013825467762478304812197787035376597933799532252564922406280295437791812460687731415277812806160868998019244671157587381572870059396238846062857971200268035520067537583802238298351610872858292239514411016405014887592016485924406290631069856365031173107242961398137867142637077274714862111624000941563872593001452330962701146290399868808951667598949776383631685573107612202071958164153355589179181871703559323701206752754892997960956902356358345498072527415988185806132702375944674328452033245960150579394212998097955042695119222541300405814763341153298858181354517541009017896780751329024930697740836864289559435302812850074102147750652387558201238815449556819761330922562791015786838925386356952182072473864620395902498740960481777400917608862496351594046006367541730266879037808660294636979692897272447929611766996900349019841805920511390292909192761218500071033825777600200043238910887314490681176106164008079847607347489515114220781831679503823685435371842757238320975677441268895826873435395779081534578502820184968959804485268029522729461958247414810716439827262945004980472086727982469806381585453622999711006128153683084012483287150103356453536646440562588418434886227939083532075625030313319452718040939755903401239057137635242368504675487393549738449296266885356965290738816377513190625411684052395919729799774046763042204740887538218068574014499100305865692819402443813451309359434968763836101553326492318158494976953097343789713212216504403965580003988122733786942846648790976852655543956093363727754203190804771526748065653868094440361014786057677101222264833411562443203865820358972775110411892415368651514288765146021255941834703903815182657543751685142508221188440719067428688386860456181895498745727514663661126714684622896371484705341004932760666741138584239982936105267684416140744693036901911505340773593148280611399673242028506880579992502972924317592544970365991699422057194400888676958680155065215582693484308219980645227135443251825674908681589189630034058411890566612493983264619031634940172155804286067918414262522800985371368940666335341294581056678443896252771746142780932816349938845728347976389972502363787151541899336308667565936086029265013347004851252491597048903906383057467940023597868926651411611905118026152603912713863246593592121141580144489561946976561146064265863517665222902112092870646595482241244033782798332710966178227806429266904582633845546599307560554438795268662910307714976126660693841792246096332844512913924724089069699106887917022854586401235393460336250579994757971680039527216515921797946022307140661083749627195565887794465168642249131603987694870565850870022638347580811726347268080644125355363441202760088069295007575963671822285173541759570374262857291690699342459637925059875406078001884780740889162064087281699682242618906459064559124617452570131116794436490347762970381329940660966386914996580781935248622241044724869745353952006700951608003547606549236164389796657195717460295560688813343880825761591120148364132580574019420882916246137964194069455281782306654434090857577988793594226242170263623017054567563423061539875104732561058959846116500682609752815970653805974810691564753331349887356066115128985116655572298571507893075857638014078552205637514841691803767819750743216280500728907569320424300522771951393347308048073896886121140735383196902732285250135548112644771522810702444545266466349638945460841396171706323249857021224707293145648195530873020015991958902496236315700186649454075938473338236622890857005523970286881320756478756425776013985277857281217720757850583094695945703895121063828489030896274621747973753888678998636148696417698689292750561258397694415815973847672355188237401208401226048058216952432225709866177106645823299566992458930342790811772797397343619434648611598737259817930293355800057738410346260485909620646661455875069304321888570300611128730210585384945680713903813307769867837176719506586539843004637268120508780012138347366317146282033213798313510609668195322862410253644626514680848288506894994025178000474266700895043936879656530874998392151536331422911815862094109403594701051564757208763058643860014167474797603778910110501513272797883206790228950040424931096784015893104581656128121781928259844166570930404673694872293946995071809974702667824307124401188788999371280090649954554541905395315069173187536934422786669702545876724792178868946768749921735321543113050523005534783831645805164767551895400021330362665811788926646721406285354017924392718451969953122580760610215336372603008103611691463471347756229386870852736560738066635039882248990703220408910535303820621973420682191714506730930915821236691853763425884086395029106536158692085498959913762413139301376570853633084001907791903072908653874300160193227247410432921295072525791245626855740318629361702243435304181205765903964462242875782610919338935023426933640032561210175029364267970189016929326908936783221319060475632603885057116393303359882824256176106507181723800692477544343640292730899032704008147798887392502087028308001278803309085725879733299446179688764541037564802078123751848266406179995878998196695786988024604067980932404409283921216170996358477185393072935678122866103494858147178305395047449556851614332157279582866446720943577073270169923930174385487101004787590140165340483488820904328591362723330964480188384522224742696304890818223780713429817821536972823701147151167899899537117846824591025871043519782961106982397997258264017572247397357607676530556056528348212181262339428523807837378987785849660714965508536261433361934199344493353007942377766615107831384935855701473468863829622339627123568547194878904445778236626042347030454415273815067586027807702434863179187384931976784169780739329820618241826853099040342238597216447427814970038139026157335754722688419883343661465896550210689731170140578871448476552271802299601417917373059151625555965896122937754979079902800436311206923146656310935961462476051973839090645207821192172959965417075557412831054520061227534477835181001773876185290619492515550657756612420315412935003075061315274155767045606965041208186606851928776711660185355136559081279058346404005530048032735032695772525156523943469961241494660406559148935898220461500327724197403156291335854803697597085539841740566847840673287353170294380439318654287268846540504158502166900313173704131780194719002760591264042858354412293127029936848723732166799861159593615651685549741851984679162382480951416395165639935898936645985197894049944067649012347958867395945591935860971488718270738099490603687949820657448314085160233122503801612883304350650113095888669628069353179625393251425968943035570872270214724285507438967582461642098465595172715072559090039998640688739951146191502624134101983405181449143451340465539307077955080695564748795825528215285564477934440856105240929828610962139911938624966048499353748554721747591784936443663963355765812470764508211162372256972544090536390536641272169257077631541700767209399761890802064374014595946485456696713175499450594235046337035216391692150251080688706450597672146395414917330031766851478786737696040765551794572168350318784183076815052626858156092424459071936331456155810968393751581762776341143919386621809196172346992179371065486050003644483498465517098401821925788704692067045191550640630806891764751443163284160231126511827578639421998132506393370908676918170783578529003654270355942749739492369914700478591926432066218662505791311541335566625498359470684101065745513603352840372070610486074320492372376424378011734637604020955537000150617386323298969302755603831596203174234360639602397467336786211095269764341289217561167153115179285402608398451097490457700469347199096565915868431777163041640233817273594416162379340389465129840316978637832734936560305416218261187418580701959287497975277651205915825192157413210197554902165403392605939991361746680033767203444859937805579865657216802274927104157236473081423578890203721651773228720184628181166134700933704159993061328946654791028560019763148252140703810567493587132360141544512590675943527386342781001072696517754530769345318662860987419306185245017384798846857405904709729278543221394590131553430139942893987384353596814977870251903765503476966307067186176535227348946630310750582191843818377597129904086954667024118068826992403117030669271139463739738736616390998750391674753605878508820161409083495975771121808072738646299866911977214277964301718931880825473218486786109069483203340464979281879516752021033339521880745747590273400186814882889480694204115416270213964194056974906758859721476912738731556658903965510785070120495455124787783944228677528556927458888381565756996187857954406878767085856457919745475556582834287700785538239981890931461822014478351345878311252661251810837536023505870194805507269842517221662845100471202612390073917784655341161194884580725328343640850577051935977345190703022039310575694697579220859395985852786691544748212587156079563610474410403883414704246261721991648434860576358939085231916190813414992849471197254080197658300992759354755188185938595382781466355206144191745666422050652361839177217937294453915365722330412904894403703670495901896765165261887278408341798551478472735194086394720029139233853213702503477659807739160156335133420163867735506180609670116917818112193198925479296076434616106196496686692250798434477757654341555415419631247911735755734041975217778573843477897212518543740480324921077851236246941710199889068165637216842655576750658745942175520818917274141090679625612461704981680617153928270947576537731225153291920438546016977103020760263847181330283045215178234589493095208868178299583366265789437276162598173673806222710673870076639303338506845270695214961560506523962705303573563511240178765639670229726391617400679770943813715954439254992495567755128818654622091144814119199889091387473556872876632044834950885012109500272553927573721023000467391087200914401097258751168344599037368230177611183684516270302581035094620946335068569030682839838279808526872933781213211438806837178932210772173256623502483170616184924928891197640625461647856966056524770872849004525365564050632594806760290295194768928777292281736054818001733548598349492247805380784255366754755724447768991171913937149729072091200785392069904338986306421228222803815589624747159871131314449610250216727207695582064972046224375552436889462468295092764466449805043664308794817332504280127830285128918044569340164785360797930087339252893147262297518585290446217544670369980707840300524401228882195292427354448884503859937515262514092199811923507446458397317949664604905458336247895958912462607752036470603779764555732239396855976122314362302222211152240897003455763617006367935842700192358324099634492009545164369503070968911453359739889239392981917304655493581653015235465700364256434465048652512492514850090247638954395935543551568909578425200275683344927875091218636939817664840699836717849899256912495940603131735958710351240997698480970781583696329771605570788450738648508164109938772547758023096104368789440193043229450417960642698889628235248356399612482547899175151810093842386447852265761522493062567811967551727707615310748031222015062116169484838184226202324168204275474939138987783712208978227576394122679889506777395763801697620868913307498970950537382906207032634064211187956055406121875407953363176237436213493371738108937389573174765854215663109574416273203958760440330226169334341271843639121116637458768463409643226839648820583384147740395388051381723561662437680521411192091600885889674849049004968127766968938595067927741859100475118264335004160132187339114146967842556267402445763494626052807809884385267040740392214199169072450683159342610569705915778445455807755120831939913963525537653751195922958145389061631349349850769109031749342090887784107467306694310674111773116554794290751114705618533593475399617580759592434598615486208792700814636294679313888312928114714101426210644379219156819223471375813686551901577720403646046860673515605717059518612792777872440656948205783574049289693805180529335543768933480600152032062747410061721111484398721375130696079663295014815807616630428237611760529644973555846429922201948227046743886105098992539202328936769760240682337575647895735999987342911777609935399967783625673627254822973893491566605676052520914164707105233341007332059399321745739235730749839211286282717197319648354322354009597433634528317900281140495503758900474036057720019341233899505600295490859321288149512784983412860585512504481705261819007819346341628498058345560779468717131912679593816290164955793146373142171058542114528477310606767477412960146856646926941310028595379083192140252956496216760967665005549236477973402912033402050881147466962282358998824073953568966160637795265726093106314700379342739027715636038587640452557976910575656183811249179990751857495511753604024473363064379568643035292743884301190706748265047934277247122343486053824439845668590385488848803859763354512687089552821282201039218325278344416241690687774700023376409694045351480691553362329088254204843390870445943198146623351690534795247761647720095147363015097234336257635958954254714529147166803516112495816056903783111834899613984785790709985391612416670129176117823497516811891339974403907664647015580171436993564247291824390501276606288346657098987117776199966087423618617956054328012049616538331179358243313414644644489061681628801585806418394728069264986483597546810069370097397362819019049178283104178417856570481615047598034118577534242769646175399407938167750468268468668912692503125449589001547951731206684605759243431628797349963203979869307099350398399751953046897271427612114752942484517199974760950389126633595575233402009405024224965803393304850174062982900777906790906036087591380017612709249710292374184104034994595752518255951957590502759444566582377137812426271383441605907009786049578266652485386465987420339099867326159212901770511220512084183934282558767652895815588033272057005952241652962951609236442090595389981359541811817320469899139585536115760308816350567162717950121564781015395886680092451606175866397232964036687501322718909177109178743683586742471141987933473978856259233870212749953873290719682909930043589066210620476972222919827501881973325530246248762896094308323975415172846087157510026996715393027820865227720181968453358000169077670977327271318485397291286160422247922617827612770503845384946420904307564960847079185260008925565520874415316851900372317368066690050076656348540536344764948706355758808851720577587529000432206729671047620608778056615178416180787047317451154340656759097550550927461181326663105319599468936180291860602537789639716878893415897425666537134458938809044829059710717484842487338836349946484190694008005889272337423213653547625285320202545804749040292942737025234338674945757290896614360748679448081085622865415014954589053331065566655310745539881493620123866507954496343007754072980579324448122894200720863666702173514322751250754142864203710209160966520990787770396466497199600351297243234622072494424767295154838163948036966051621245935318168530615204755423688992332674246378403965895875525424614691551996609574144274066619427574453799385595702265675516645314734570235576947352912993379098573452248482262040684900655309029531068651360359811035140949147964859542632958190569640794965214768553442602942059862687108270883790069394086793749942239601455869355566896622476958512233116950452236203457178145125263560642305687963800067538228200567945323824456576182101653509375365761691455251891727399428301848147203267802750533793723520529044148993372906078792039243457169670650390407649351745852331694939372046517210927061227927819798190792726516563641631484972549163379975048088386102014998254892437088476453254039533091546298163760589196414531063333870654976811790866453819634958418989691262944404993103150380030257023690154150249389275540169593692133637233323635712875409444068292468081729456844187928074186149037718880304755623795447664235750664538902472374489359795347553562923110556329269358520991103969350213316462198206287934765709068893997631623834754317369432142569077464257050223857213174022957762408058071191698575670967529442146274199541636365825797631433365258810957520195122471466467606750244198576237199088885714887875205854085604498542180836534505386004727496144876621103306139033838086309443111042567798128177803187140680933543109265526654530883653659984063133313446998367878273582194950534247158633964411144664194075186352358048607133256040413740141722375332175221506746584398739815995020656012661936447140111543979986276932841911251887278653723407735575306554190767819033010268407625893975682147952607270597879658060583414587767591344182692067767686459824150707583351508344245616485476217893890467510980601087623995319530539369902369611431039981645400304702090988451638028494897405404328054578132734609920543248561794744027351877848615155713051217507609311729852932500917150767224303367544089007775106665917267680739271069035756991661749661211993907089323841455010835233925193663176932170578331031139577088861960322549651436527777998520129769907378078624093190307448466494240929570594565306123800135314703414260140140594080408847013804940056382246061512072310342534317223676623241445199972646140624225673363122277081608720151974457106762285985905785924223836325578377278213077751049827940287072850743945926235470065009712731073928989084745286859395284288440335687035118571261955630570576615676708082361058953955821596772022810723430639398642000483867096292931478532169741469397884781110749631789601419611702038223820642864137193005410389879721803051144827328546948904972126470775464185205236672037740981492923259555482868466130372610821136326549625883349321039996867305474320626990360747302940126034430355427460390715129742815646156168970065349205180557304677206933947060567877860057070741967079833576553440215473296565236694871055591337046772520798715489094762079889348364374495155984898668601295224554427007238564878482603645033464415679868832902611847284037924001252918332962246516892133081477213773554854251814122766554855414763545731995157316707715100900326728494405231348879346512310871643255435456883832376522426105520364057067898634197411499201019878998647413705051348392626920620443754097625005298645823068979082570817288063785072298818202733286323305501063552784757714452247057253131958108545962177555018140951924553926956670904890261039933415343587176673752958231175982374709589454808495229544224131651429191272950796357462483629658292438565841016047764185896011176794553281811556905542746106315872443059373433838790978346178214686227366586452086372225958918459125728243764636350793436725458078648899508693402460969661133905691800162221903829973292115229109471221702097671113862945975711806251511143418719927592304573593250759013707406853968296537433680280291784529985555911229336902389094286438672403234929242377474200587423377109124561371074386997752970124947236490207299579082471320413105169197778937130953659525530160092083709445813945222597364045599157641891283885129701218775740551417292878628727626381338004815311019793462197943469694440448177919906923204754922915117423154560668959183388759862221023931210995854338525910560058672145766877774792763725772330893686620717331382086552694333569998998094687834740079346530264936743969866761811159095097370631348424071822842143438575245773473067887299704572223142541123207151291875967000450543296193947264722328189307610055390880842142954840496881968838574479334657452848402680466190043701748843510312343976539486831905761911314420575688926270598255515304469636059242776691401414871606705890710112935344198550592310297802795139913612401827408940758608803309628909641481435352311355143267838696367292755043472808368729486058152945728576937771241538081273857379040221459254784168049471192783001070965450491908814510750436451981818654525420673356368334962001815288572527222189926657431392376145607386979024223242816538162099562276380680687484986386723759421647777742582749068695875898661668411320486600358214874987780949661665142994996637697381851561729552198005682896770739890425469617995794504221264736100097735798796437981364730369944300546681665024798370953199136278104484884510538666540906429218848397589573447982395074516311583608208854027281651535419264702208088617414152111208227199234849476563800071997548377150929102381257945817090867765481241817472639540077856483603989007093425701386429045732015264008534798596624583080679879175297550395483307877484572721808001259391849977410248281514437173866114703700754197635326348857517762694377036110989159633830603328948958081945073992027121839743619969572934297956258580855012911785520317583641432788730345376483052212930194535526181200364850310371869680232570988408901195910693837433517934594471605216472815577519277863860186392725078818812971130454194242106836230968742107103147100911146565781583291020571099166594415151060949136291902227681942538523312368407073712457126717363488570095343732361413433681056770134060886427652464484056695309379437547634280549925993120833806637652093328769950994691145382185276032439480976896235502869130410028155383886898665045320893397826785564873172608216227395021305347031666474503921381401507305461641256169289443427003203486220584339138649232929550115705968996042521210687326676607909153061932934137836441210565890219948334845083414243481859316746587804435392235677720462739455099462897031623348269106474869394802520276787784241272394507069397666534584236825340705372414218890923575878499451876489299697389449179865922702415161087911313701744900637034106066808769982648488669638241065785998322847358406988763681291466425437637525655159979188769938166634294437331605505078073813360423194784571854048555076741380951733804240418505690127093010261944734256088124086922269977051491126494275293328284727039105051942191532160733418537191922569109765984722446060723063421516709760397278151266687595552901289077192652011515092491438402489281129853478709433615560562891656926867109974679828471411426912963139678204241055074763793000169404295203949988303343958108442621978135501359000708028897213685580549470269498284319892013397447830763905867134203731840254663769690839659524608393876802788697796007438368566553028523735964591252801393725622306048641699228902843767345598446996693909913839491850488178777736158706814301070723798963064919486514304849018460858337823075047550546851434566682658366197665604355807941993159948028531316500793972576366099481471306929729561661743121764820883277253485011391958501728923825038731394726699500901853779016378842049938431474327361195271594489498192023488158873173006059494021612891353292923058905724558751870756372613342016156842947260737887899642750980302385582782398759940403651327905492522331547858171962291155737710898710038571226978232265726307727855701037072107372802103076910368367427166536072495151733906586344661261339645827982076844935022140730368541079873378444889362558868535603126228545194593444971508352317039341017312493029298023792003650917365767585263267597571073559668558221293022303368010103572838556104355974925665670876941000381859134315735823425141450780290506422654664838768058252008532995679689871992437938250196179703181807455597561167633125834798261669701139661973883821761326475680947010386513842151993473668034015778989034196860960397120386513166735793334678917153687492431624578654728902153096859699265636542485950399875056421367444237152328071154414028647510689002128343662322447545484859116317504809221540645469244777503202677888548276244729529863714602656076497075674868725759880579291632293586603569408797461471752374699068623053485543781551660998509218769887686988677881166537453831422614704334095447861758699001677713311489829796398373031280915381918748105716047661402511328868774760157076513405231711995325787298933972534867899999401373306764351878554922239740272457629850445561286773382275506773659683040808899337736162635927359961760303223206114319207848142010172745147868129747205996210581719965758986980368242863767875286390663191879368085984185935861011659947653914287751116964630576970822049321271369828124332326552985616409884844639348366414228497446882648477706061236525050881871195021346612242555051162046885935289815117898213002007809214652606360531963773737169743158694192329284481219615184674019620753154007133393784833944012773602532388490273249029399482012485824626908104320807155528535379782025021086871539379141937330192125470865227744051067595905508122600550218662815170896314137851049767787530333507551545349838058031132600389581330131396794378951428418936119609101084306281867188349723307188147357624793826976304388459938997106860807726561465686752022780967153145618090294507058694434085776174188762085261887650585435141846820874674488821623471130617514877235648504829882181631195441586415512761098176644702733871601937811095525471930135545932268883580789896607658259880562787471781269177866672969897753506320512363921670846265331575061299157153978083828924719499497536152039063238911647151285146188271548888349186807546072095329997427007612189632095372754353922068429440246557355690702556029248096556596295909937042073369621346986980106632820702916302533610597062924730652718672677763763592405423523857981401523981508780950872719860553985453608178944463761509319438989373282982228994084459040762031999744981716668293943585192528869795749546735203714024123762561861259510590244811082878612961468504989846413040095036781507332618591488769380837577554657187160410695597172750737889379869017123585825108722871838265911301860255326490963676585974719013623264783422393952035036875343667787840707842901444213708487182870607427128192554515503981843144751206187308885220533973111473673030521047299253673280547223364515963715143485680502239632308762326646773420622919038945380124362289811156834927146805227154645783049645152312891031214545549307422107728738793573615648425640772406836039085346826549873148230103955378978635323920392577040998904004791485109441029532268087997979503220519272295736066539827468793871731414368308835372488661968623830073682701078324279301717294571799361554953490801882214170120433132740859997344315873273905107036592132855020234277275752779079644954590461287588368659869168265867707779531519293167116338965879731387585509991518618409230864693381515952037981593037983198669117220417858821271288866721139923623579311573840858699900907966142012061361308953716255813158550533030633923920649320222168608480977169821464910049180007696542708796007042275255331991983720435965163746722399534539806336214828171661185409499552444158472127410087408168598690360490159949046152515614194136561500030010574425073061433667719832793709047108542434916409096112478283618900630140684848722098091239560656943283863847769648472978815508624505351739606896125265274898546290501623674720582043518095021930416125117627238328018233901363756315207701290581292145177043751743767965335501583950432779250665658823467582731427866296722378910502233031137770899338724184178876535525186016652160100792243350871375977242518694180909569146362600637030484072782062451331189876663877501519397495518882793040444333359890136290857641520082491336990996740137125571821955830950128428666474429550432942939378326924995934157386025917520963819958226237756765234338121439882879501959367305118819867528674679386236176937093111745708032371127305380005980835422996388971551604829627770843577511468762081227348132999061061231853672556592093534135373498666049811080438945340627614295946860837076024829514758961360746985327383675879137851293502051487085231250492550379030120353543784100921737196629718082145950524091183154184283207143747863992398258181612956381978944742063369328871674892555922182280289489127539123515302955236659460183854919126825212555319300988571370953344630752099405830829606877840297439669997380675290562254439478290470095842385672450407418366591388304474225948543212432921350796575594939084626810585965342474294323016979843451238783011782336653954947542958107704812358111727171113082269487828816111241060043697692978249782249652747185021574682912676039345924003356325292944514205760092526752856933112417304109508840786800691828167179956815597896155047743756342381545172503263940199503176198333117385390965335153694444172302304680367880280267701218315832394675245786217689050930265712372123962703106249393407511741975917873072884387208067331608434567205996698270168028300029115724599038880453844272682792482888666591926379147775055837555690264007435541728692262841946624324152270839668515781805524886353884277525243758229741171206859040589459115632597323926654359212591895345833026036530622505591200637263447719820830332126437842016256975018256348187678557273470356177841038810729003038835530014679750123932303912833394707328665528173148901847784160204797570659495868936679192128605660983267554468682940740357222726295252980371977666498772697709733829467589050892764854326427452294004238415303402470922836941344154649379554370084194692659155848060604729227231829268163968587567027043697203950815747761193049323995731238538915765401920445658289801301464710786939021263762757579061503605543510525579894356627395921906231659592015844578125206688420197290380537181917499334330391293262694838730188340531702824830054521878263341328403985441699070541816113573760437570645110563060096433293495042910398633714944315489411429026031143824728965379165344939488320128704795941826907528375276377990468263865597810565506711960755467139366828615095957224237249321272495286855198065542081589628936965739234180241095929600662783473160782285966173919703804258284357566535819920843567987131874057138382722691210670325427810677364835430293762223290792769010301993011659321607490546163865761784491661633289086499286679111816130199568145507233801847653657627960059444268435899483519992168277532594088326191157592537331323329034600052140302884819145531201348957375658275540213086766883502012073923056098964478792089374185795533831477089750083928525056694180044986841178094626128824622941866488129346040058331658024055252274305210459866163958590007387957521064512819873375819928444944135441014426760104389781302951601941000469396449869988774875913800669444158278006683685029295086716253401597069247574449731350144929734928231777280523986855678525586541501050223130253452047471024816030478959596773993554455704277164294048382019636890252846909341436217056419946128183377277794307692706539093523698051292193295937726732642175810588333746019121425422732527336196169826915182351262653553418078905918037704718304793755179608472925235470097772267048062650172329476194133297686408542912969042482664104091885798779831262521521099721806810799010804570817782089994438873948517985686552769950882358428839034169660537001020972904617321184572803275479046015862114056026556424806441272120631402738096225070732977999201731737081631735329270311395561830833513603236864764759340158098342994990489600762250723611420440578294592147601281607047642586190019175176017973877928716067470945389702861015160192140645307116985263862969005799483750248942823873369115546090833099741935345643401160663879519220302324163676651704061350697512057894309037357691142128535334387410720831342575422236337160374586474905470480920079628268486679228044123077948595341088091627276729888302574408471903690715620537791161446363210230692612787859570727727288681688686336697981892073604838084156268826233566840395595129965439492655856902555219958693207193146095731392338697679353850343801331693848804318354329625197699187546054667825843557563883331625479482112153203663249889635562058886640894380330106609409683791599268575496525502303930479041324761050109266023873367584883292009474843768419014760382807409000110976239542097474574885178205960991260215192120572419619054790544851283122592736954530883299850804265848764570906872066354049237040796389922433983514308314238316703523687370822645921856469609781352869315564861757890665353329623735111972575841643949060353925365855678517865377604481367863132291309624993315737734452375179776242735901185301695352623678927641075591884523253110857731853222625122729465974606635937517371955790039561282796821056263805138801897154730465484089278970005533976876150386492612695086667618389949743456990437784634169051471610434034805739510512800567379673121304241330865343343323238116084620788514869267704192611027833549527991719927884355979052497534395906342897765557237869796536190492309927936883875725028414324987052879996940746738418432273658902776412976148918998453159914254994205094083838441598649100736744710697490158423371007839509656570784713924496620719237749710595258734812380068416650443552865712084208452481365442009364081937102233352801634001381698441120518895189954665256122610106504423934410186571720632246520742633950353806918226383671017038758241247350081302517333342776070324103338539325477851849926337430837811889145518598300061923401638161437609651872733350649000456307691020404188944166423856771974713492224565497368335288641640744225329507872625291750314807526514242560701876520782844376748217585653634134968189908680424398656466629639697887945264354154963740971137310228984544220995378448636378552281043326966192000897745992923140830105363995908647908342942358909189296108299357058802627113281332379426733547195998584393921075589833098677836328966884326287036879931061819569765374778211816651406611217202294690816610607674247549950879286957053996785875218306065772406768350133316059975249747587767027446363905718105836945500879626363426278398625850358916876123366715254595995264167321033544211721376628893453725299155598690599125312640952690206691077402471281013347302327345916998665316766751087405933458711214028590773347797794043557321024548087695188609437156777336975972562761389327833913353774930365948761180593681857019939859072668129993954781823343626031357322965302645816089550273566265199672294335222010882486221938916264634087418919639440530189070841588857761011786971185116195005947842261085785248616570123613243585577880926065706118870975624710485243467397681540263245321369082085292305552393468818339536216877491407144539209678131506588331591110257770835433992834177345630108738179197827266533662601578350349810714931728298867695396941142512072489783048474217195163446001285115722082378630996447730097017621982398992768177185543871370118064438258087929095012470832552276889647089512760711744077048344349348178472188214820360741856542502447493059309778969924405727357690988010951112623177763846444436180749575190926973554663985798071619562863730580568171613366767512033429468136998201388394114292869998880609123994461787951130373969165173387774526438668510135362240301751698993227791750891407706048997429050392222989704182449403711685333918349867878818286983515025839120939532057286274324001248243429255113853451043515897819544395761483511611603558972374639754694272046054958977571410255494170653785912922962810301949771114075465691018899315003705256221842657555559772094441828156708935206466099330964189832559202049823704483992670521847105085414074923575092106947350403469282559012381765055211733882711486487724311765215564680657992517832065689075387019158816422193523342360668914163110365161448007263601076542712746018919901799475883485430754012981861510979095391669354629722638923180184650880510150491943199865033877277178923075217245125208275907330185061935786584923214720841816339229338387036722992262948818139610756626010638489725048347911741333331480575334290266127113230371059228049465160608594616828008665583126915370426921208711145625574674041998277908927513928597044148288079561556935802606969628243290301532685552762202521888434632315881818880553446233719098914757556505135490722197055401635116368899063539237840333855268102533206143264847511384434313944819747230972239693022346294731597488634741206587783501109049150499293420589299559397194223210932851900656766932467083155070100197269759992744982055936987296825753135743055820596582327805563296528088351248649876050547240781512065648814013698887929552254647526472339406102963546255174792962974596471264856600334134673673865100322263964587374402662518282578607259106760563077952586677045772762061520426434856594573407732955960480138520337368193587701075694841397240626899975536142810619766993124644936761436893334935297367450338884008325477526345609750676859275798330520541165103380006230563591925012906395171838388704711897231048668791010361246095240416744173150932600963128632352871991717414424279709052336788804671350520427858623644785377650540721229194371867653522787625325134638539729564614964366990628002845256317404733346346128549349491499945454627477549729796179961965873479569479577796644627211296278719110285696494837241021027501038168745110512745489457675697674601022439269893220880539062827862939136796822444305727202404315146514436647004903539416103774868064984279732726480212655297466396043971168722411016282621841317441103580668237962424473515679279640864181230610827831306454361800060421448668464342158718351577001516635971734805850357733121049631714199664514784708970963709840248490341653990481715873960728480241212202521711699297181800577611677295870429037745241298181737866842233603388513876893281993071069176193902800775198255593667744686956232591837449805196106064622525023940604404918037955857256752960671536656681686249723925488455177674357893057309066267997982856710240803879065421852597791179396184302154600775326173686664941616401825356107029818480101032894697066426157519755452246893674618717843443474403832205764734587191167078529060637932555600164689406642016650800379297544009262609004334612926641594753010828951288262616523403667570993101734601601949937595339121285371804716534750396929944015249077168278056531008802910464355885964629647953246507028659622850801781439543693423879042073772750754782207960023880593573111080002799222189287888697051807184106750455389947386929346468417993838451500261586499750573745994485623472570688438762263165576465798552656626120289000955925145436454344810682542489153026435320316930927115436335827549259937975213322615994623549279372569398183652077632573622835848389687162632856036812264805489533040188263869754440284657082858845961214175599097329257527173762590100575257837862716122054908897743026545832947009643176802709815529002272137810154091238725440403637372553931270065106438380576151891918632846571114291174563034351583540654064746975749530130559447150341338659951832579513883543456336453761935029562731465220526639573480204331670555558125460478205746478939013753480029009811024327779052545511782172238309981746477123290603493995500639505230646848289031576058448211111501919308370742968293053736269583842739866062625771025920907896399008054195984534877810823987155185520325971881045714019822326189231920197488273069148876088381494566230008933492262242933327541523078425783158781588508487041795597139575902831979143969270098633851997653543734209881523310741886055157907023168536346976338575432194719851985077118240158649558715117570724070360268185225364117482325455213871145937459805528648674338537573972553593875179382801930709744828123198061160971454419240423232059051310125683421550010703114316953285041123783903355685093333047398159360817395134932112577997584368783934284229793991464780292982252963804428684547584403127681712202755320540889772502255911988619485635989904830943719592174227404422195469522303658928324713841208916044514309373706505519712382617797989566178629409504598381383366202383854025590049733484858320700091353957649969168894612855191832166689286874447743941077376043745460454378294815463727983247702366226301134178331289347031488992690807277978900583728425615271345656072412078124003959653953559161289788110597358839747486999760640763930869852062729507881181808500643838325502496762820226096110312001305576338902511747446644054871689184282390042338563862082149625856733399960643255679978676881406950617902375966180612045447035148264516255358152058690900022132002722063933965314632037816438141624670081582601366644009565417661018878790070401525755298982670700393056412095070899202592063869034590206620354069747399197305251182038384451648611088847266033245285570644146025095256262737070906688283400723113276396832267428523417473387808806751358313903575903082350177830878347664503473815865160366967635145184382379650115657036624101462638394746106113873091911344987528088925548393515760858746412746704224939736811448669767516261224806290426193546535129682557658110111578721512726356018731322492625762780432215591421886310971762442267969581117163431980885738749316513765107174375393612165420609767255741274123477855918677948431077582759125850023836983584757920303111733370428566136024799114902191654549492543604029978908528515574521685399258734522649989274392100542333634178555954404402456397862450561471019480058028926053077236012004931138363577128212120668748106248283197363777594190241417755202792324239018602855722546281525849943197540528786023636342834772344232546685902144904205968455364960956297849670531780592616010314448640675141532950568886747802367223653638357731404762230963740884972953988534804863354445649632047362760055231573358942222629517293932387813178743697133020877661934559625120669914903798344323254633687344365815468268274800761416256335294481304694718206569561159046662226848554430214850025622057062360877010783064004631873328146163782795197820080204893985541744656644018722749734999921328300190894566717765734693480668235340306885330426952765876396135820621853845600786498670162531699306548525860734637127542628548910367955599497864287734203583315527854570227835654000773438802584415217470506644283287373280614043288232595348174437129909129173842264604735583511575416303765295950323231271566558726905622502502226699076912647328096541583145210057640131758759051473974906365024698504698720493716148168527902549915164162185864133763313887512814051254185836022426674173428700846031228070780981812648854879738532919411492943920400968614126076391990188204210821008200346170351634595675698441800311711457420851684347805709399660672591542819230921452422165772270264180696785775991016031311264518857410789726973394946494370643758241173494477583881580144230261246927686054757571806936847696274278338720793324258248680790741172628712733694632665107488860896526059507553434730475862205930729929782075177635787887108362086646898203965059377268409571665592882103074019896307529573150988230883356116514479833381452687398626475195251211179768294369027980760143971713347338627446824387652431444087995121500985825742272246410861016432591217315106000281238400661721749294643644136159046317788322548068285490929657558899767144894551801329447074177262625739958769926429105358722451592585101419562495242770561958285465938187645601383348722848052353675522017727910234697345273119504325206895957930450879413716355150481629438342840590566763251750108030337567618871968153693158544895405728451365165153660053409080421268035397638027350724748914554228256179089969821530114477110314901011557360418631346255718260475572571065374470568940214359710051599625612458335845234154324654866913504948296686801307379060031479414295474213677219279772316843759787521883844214555238885523246702212673766452847500980348199166926251598797232444243857470644914978901298422467095583144007893618000470204391302738433323341473990723011699394552070224765435432573707216644119662202552680265098277781520154575764106819422519981882446070277842261547656500529442702661745456391984078570386461510607663676633266941585307294025268509045764973232958840902225324234849499240244508538214561142362089690315524692457269498639944050122803198886796583420158126226509809848148205414058468481870320022021490878829504985302614614035045616304167488286913956982752652906914061647613056272935993951122583275588650696438428609416472567386235432183449195244643195707236842677066254667518936371310666229841924587146215463988784965589950770307395668078454972165823586823118311539670570044613727634914401018998721137576190415669383828044849909172816942735424224578421086956162677282353264005968096665776187363112324808385079722873408420582708821386345145110088598976595319567080926262131286590258178138052455735067100364788485810696898113440889890434485989256386092291902266965918267926591577108042126581437709081862323500723627238187123773229396306375158965206655615913531535001187951508947868214597464117841739918661837456270815578171596906326039163987352528347969497698061906995693685634554241611239240526402133886518137952975912183712708815798040545321987742444188129943704758296591111491374582953087821868617066355362933748583044609476245729960590269256853973653294251227009298169158383805258417865787814913317919945050277985711594275086131313325258992363409301552384136394045400116979313968371869336261012160031939259315889109320038856426983733961982977666046270996912472086301497201514897756138607769183899879561339501168216234524534434800932963930567799828442962653872530049600629043743593757961926526787646156094082925301952963532805854822127679337733529097093960309040485459381836261598766263206107702831863979297126043309774296399392469556882549600510142222840670732937979071058604180383728609310961347795146897085093811703151277160023849385398094192921096092372167523782435014676553097830626437446059076848133395767616212578313144944793562706757962242233674910790717277585397812574143677772937848718411674684249208278835777966599291165066952009303455790466910069398271091549496093660727545461593496206843886728693141553834754797285742606908171464985522589341553595761547621677918431759093552594486316289831799075573839252815716528700772725172417277154292188040089283512620173617597990406400373482414497096819060361053223849102452295008065229817423610142912255365858259719328206079553990308187113132382274975293012976493796207975714565561714236813006467033189706844169914061430150776594274860228255349520969768387395327465412649707324179603885919045958601190951849775462895045925243313682385987319595553745083024633716862532071866258010915669107767479981742654727634896696291388465751773322087451403220235750102476234936924445240754397962055692033927783651551034151224756392345887725526629103726738546237314048091471633171774403820864595517268563405162459720853494952596911848313197700817350395949865789069901591571528761596997792034989510908800915072056593457177415741132905357393753039613686923611521390665357437609540676113733167783995988799506092425190402643911076743732482189009420586991898514824388275975279681790228534269371909053902406936849620700572058687731427522868324629748865100427222121783402907653619009215717558712451286547929977910612751491305038167714198860708058427207306912854751941893955654533446134449099212093897784487736021249691735845676200046064200624628530423858150181872830401181701543368173553407153711171448354070520981511954709241645010271857284461208740603516424658966723000822096244302740181427877998083781629544128926467838543223404893688198600432175303921027927044314352997730898303173263238424247505208727390947723378369586877509626063787214524913870175155740228111978377039750372541198559749106836300800688307843838530000370312857950258339916324082924367632072873022095605649532145049346974405654197396633111214885729450873053959823903805422998368123391864088454142411822244960198892881695210208763265800018081553927769377151035935423833452749417657820985168639295339995621181471934989814696310535826295568728728326053623970613560785704511105766960509591292198713442036920663990445292526829867198258078021978613506612169724521159965165331156846650808217694085428864280417153882951306653241831188832413753642173068256752158501284822337699070301406938131203325898295994690469136736805432319869279209926827421580036316355783806628983359713099123275424763430498861976313964579373124750935510202846755061486823159134110566980979541735870671718539980021577295421981240125867010898035809316645016664727902831363246219181702063440933169034193724558691760674640921969953610124314051015426021827584095602495206456079727937022324546449821516423090613649314151403974560546370731836836225172724045927466525068711337152122298580873236778466291905481556293901403674563884284252676044507595193388223217525276456939085729694397243331183082217876323170272956911758321667182413930411154690331596670305510007053553821098718265258510098521049208272995265544805450547845324969715026868967267973114126428163359349951428128731890308984539132830551812581807218111059976500346901550082745522294585736814634714010120334773028033768889716506239747794225958102883204959056722231094089333187604868601255270690434184246529188242734140096910890266893184520536258970888526954727798058878538184809411436415315447002196292484814159366257074809798683943695510661709281274717748926249405208705104359132375854078392959784797633496370501823367327196799537527095424288022785783838899478163366395703886771497762699110112873367330509113194842381195252818419959976303039013445372509148554172254545991205538533155595831216253291686327223614404690750645578416621852009624134630048604480166358123282812731150193773179819926259975312890634634588907181494721056323323509095634418362859360345610292883900623286219190281968821275018129721859799945123599754161354210729797957494034730237316891809898031030794016614946830329944045840612466020902974916645524092745923807208617357574654234723640821998280961203417026302877832375833857148870385897440381714166537494867558467017011561803964978785790676347235560591058168914231686323904430863601690715522766285357912235096953336254574506361668083029866378822980831972146170816981848207907870794079731869738719486958494811268903128076328287343328923669222442223931252364698043025346101335793098948115162950660166925507417119119346807269351502354981701449520623063836598866662159844331888112912498167325034020592233876945155317612669241066309396728787670985354129727910402850457755795117442732406559617345109153128819944530207409640826241143869543891624572092727237656241671178581703629134237647804360763005444423222987872725813732097214346614500601985481502051117192790157387377485893669156937316487688745044182529351048056423439960067616385763334839180324710521878732221158844433121081131317281115618410165515010554578872048941029286086742099043476583509454249135326200707387044431540075613440893977047515016066724176115557181345159936657213915084951304890928275089555717180543587097085905895993699534653389062715441436903462795298139595316790864172292462247772842145748826923038373828508529525732762858812983262843470221349490832535446428189393406929527150056607317442570532809465809550010634369802948514556366547737060574101911911106546796681923101193507739126200325444837508525547278192817783660364522497864627733754242639990044775616478673516417684677543448161444178040137858886009424076373045271472156692459389088601920991354324362281360253432728946476255261394177824191101177205099725925301161094770514926250605966608961661489177064163245698375575177845281879188889186867815098451313449614704621956149483396012619302345748517645539994577061052697591687165579066491687876048923732894360880821354411958377319295950840396998922108354277614205522941472642973758414965064957261723701724811710337884326189500471614527602062406472708893001241490659739563599627358008249170939156150876188933574714419691203858574065781055223256641199599474300950267839003448807916800333025871707693824699963223501000017590924747237863311221696847108099567063850260813202601596706376719963036137036231844920371986485264884830656872026112557639796308617449690067963730409254495601258174411119614352430066476938737020768816712974781458011062341402739857202543685668632511825063071734643913603258576261713937445501636077564880197207524733040719775250912975801384247504261333523380507125000327933168392613443397278130225621102080908431861426585727433910217370170921104493602353979103910982403957415903277880389802931485404608986304129374509899467122039503780763397772716448985901273391062142494736841894441812329829726006373281022228554845487622482238854887949977026640961069631073198411463365810703725395934064292333262615580179822710074371724442655043288298258333312176559024999099754974408763538881297738376152757789153125566125455789339044109216302714747402587026936924926478746643393435341683733644784116874999486467360307722996044228011324373525640898660790186496677609045815246378215047024638432718518555241569402642017067748883877290144525692847760695329770493888559073295663602066705566172300982523577162749039420013087267525979488635592652004006064279447922554883150405450388607015217149429257597775450085392262341210406000398990743157884244569007506625280205405538781068964427149112629943288558077127758126324746452363354087020185068676387121839226659130334218335042974021384186180878615781154122798780122634747736352611373701931622046302544672616346838531629420573257256555343606644394436262367934430713418291546438318061315056029343232471339161592812231228578142055651128490931245000724739759128061094106415392550189431749988270944572151733098371401489489127685738908854124312583149395563871729155078429194040935640245682702036878355202381469923270882949556481178139244026557250294361025214055557551235842832400801793973641773920115985354404941634030129105321198081760318150424958006490660610200067401637551552923316811211306226324263034959312941430581377906487330734714423835394558832885584703668014072457270317388059141303639517288756548322517784774770900441328467020128418905307792605216831012593240592069739794983402628655965892404471924530069157745238447320462352039269959071959187086882374373736810360921941924643308458561342798628275188848281088619730965195034054940837442813436980017100352434576793354185711927074698541480984001224951628320557660644066123041674287508747990340495286757962091615615281440367310189285277662223141496144879454146327098392435469821066819255971721575700621423864843698914512399371261236863460265261967140314754364921737278432798731727625848566110435151049116117224611470225165284143181523454068021274140176498057416979526844898615867628488252542928424783256665184011582062053492718614813972814046621065031500122103955460307355407216796082521320102962423404950225958032699928772122983739195166690502974702401283227050706122215719325906620012521059567809117172284312607784122299395133048243878743885697212494881161921312110329717740417116948874946528415376595304663373350834372751091877347003300303267016213059117233441533122561051610931429018441878970996162482813398593057104498105849057582685935681923953746333704282471151781851733233939770731466932916641065668827552810830304879709684266206460055629896678740821207002745325213693836595662862039682886437146006075164625025195194482675225634016027795018072749605751553120325845672488051192632596120377399916812192485201877916220736942506090913051961058007521794908984080785829293393150175249659546665790272355947333109381906114720580703866836474930587897377229166749449597339149090011397277532508947854456872752481544714770173134728513882001581170762184939247434226434646257000211931440193238565100793027425444797129425747025809642708830960027389017030293719359866389143234116084876385394067671096811202048662342192621289221171857731755331372025955843644970835417762978292728366324983269843479680451996761189638097276213560861489784632209640804080525278196931516503565503090116807411166404780511457314765096576073697856975343367134838903077559878105926360201484739047461165971326069771904973527731797660587584847544156567841291571567425295054890967754090128405498317831700224670465277665879804764423704368340206571795992879484153881199970259463713935641716129704659212500799475608085362851709105704614842294809731807929493976232176241452832904322782407685511560964588687785383402283505459024543109724931000769890473906981034850950130178149106236048345342255552882082303971815363944922502114931159356836844817961941921029180484814975783437872083502363904654314759380155019078512242746037648392453531357242987939691420408436559786205229922658413047463961950373011240353398840075529925111326109142201560875656566788849295483850957806529046151757375719902635232567052276293894068531533367601507854844573690738435574597505491803295872894077337676349339858558149608468343516188261900732026716631320788984340652133341228754757445550676925483500366211952061461779214326394365625072779559410142891637952929734231591634599417687751325399484265040193252379359413099927986392462757300345621887151105517038000004784064231522715056928065806123451944407263180612195668539966618108516718572310475551890121261842760677796312638087971043509404284349276579541923906949192968774918815873046787292757120185725546004397053504366335562043509943500320085228143077040660093675942421552151168274632651854897059865688697145726060660384279729844249120513323235733423093075378315606888305571596784718020950056643455787974477811718534885730099049187477084001425915634371496680907942277513586725816970724037418360279691431433625549976326489757326831748036681302139121604141050127927150373209226690674463250619207979418141477950978115554809830313627559152623260380051350818550025354823557351698254355901896166737082174963181612246760729155943643302858703617005058981536897508918335841280900501218624639639337228861091252749325571422932402999245326016835140582442588600425420340710625938487087942920410659315079701057304108131648005088844298034830937055142581059454539284876997999117301532580368967177578713110953895730985730064245537733314791567333052357826677610310010020163630621235456634347247838292519794745727454640441055370122961376326633441349648569771259962484886455023201977812760966261298640374254544160988933937783547067586542373290364143217796457370115318786244591333657302560838411650990197180036475682128221832902454858945486770131133130307690479571634549582336764300188360668896033498742599619193533450965829837877539763773469219611843823576501916108797225772938023954614035984829379538736003237166541258987194118359201500085668290554321482133188708706498931424969647797905781458136803207287886169182647952983559967537029361513830393742801005053718150347077134869188301454402326460465176585769272018798284945086412664177305965904215002463262502636036921994205382644000931767611448211486771302580775903172644195497499555227694567523131355572600203950647989304224317375070576017371137031993117592312499416869347168835224658616386281189325946054693685493400202405720566448555489813492285191409422034904071134888616183403628706835386928908865584555243213462237857772112350415790105587961294085117917065552899787180212901430416554594276742000894934745310357511072890578640689646132121475056113328082702394665983655470034533219182773685183808629553875906352575749494756252146792168817367670871272126591743412141168072153129551271770318205346779208779167927365397959441246309161215179029983697482038162069426100147533341766992252614016141338727745735789159493348343987896126889081686363141557991548386941699672924417197761720522044709186763382195095024219635423067851103127831038190944657810053763058025925074455436301456924365783829516759663923880474882646844510079047080669933301962430240811561087089068120428196262485385679052264319137136373985088702226968029505289461792790372448126704002246427283283729791516029517607929357018697169918472082678355572113586706130168967389388571006065652216688374779824735356492296896173714141456134995869295153828289722736334374698151486247561277253566881387201904717368364917982211113068312184495978445890712565043694881286579208466737384059426418785647535858635745014146184005485251751935293292989978314867861215853986241607490659295952476192032889921796959773431362236723213931927728074647433716199964496393377965047516621577942723133826593744922192584380487316024185954174987994413188039038249924704998892678298141006968744244534992791347617956861265382197654231973825237877284731267725921966879805450197936551210682984430160270898535794067417890920833316104381375832310091336963627984692511490081124385699520130502089843393583872572136684232529742760956614310369029796214238561249727843742828882653093581509157132166244601695013408431509857866080697111713879950909818620355275805089278466596517315690323044427808799303386405110769562558960711680199857422847501641805239447249905607629410307375431664313219179775133574920897061864835972487013252725170899665128985913011209466582520991202014231079548074856032583520631513680525775135097043780456526472668681901814150931056204057647632072457027347604749239088790019016824645921799411006656810628068878118406346778515818314894399868769145251098252865449673354396927855508201119545629155116431905547140558067716637697198015022138255717671752755838658618478367745579879311125780910776282825711533293659163623074478799726164186944224511755666096307692138555947013092071983084180260330796253465472013350811583856836173508859324072637219163896453614360371744601290743578006877272062807856812926537403015254670412903944575085000813340172889720050053263028275187594969017221873098532654866897209592743986163290031904588030946894838366576518442242077940573263622266133309602649334787223045898630334612386885146437038002634547786283890718728946658747729115954631344348634197285077389118921888149299507572436344440927779078657779901951753609111331414353331364867073357466471545839457141509855392252630455484060989672571534296928420832438105234584366160522078839449211122128133815121179587081229177208968663570794319941621133159197906326507849388038885496731448318994525459528121606011524402282299197490602511037449062798467866549583143912728428367350688465625807364662308183496733476444874510892992223087909837884593737103782766963054273238171472825770249216074301476532850648052717343899524535354312214343467228267428773998721599764098275582175982015764473681511530994423973597460884574629632462169364958622521819659368442479502568388103764044648086123434614394922688701022101002018041069482525108312198619552151946549129009817510545780461821991283938294431159974432647426267510091755755926531670054333837218314643101618472742293353943360118534425080435216870509227690464485508309996790475346886161147356045503770246148383256516671426145155483787735521633073626206093172695923275831156338375571894260248668534252939350497399816318602297916036301731593630025536658835140067575302528526473895702832702485285835340709341128712131878464282464651836607329119441618785067074790657243090048169177630279976810966836569050793385096853347605430182796657447209338104315470075952704895657582739420330095117375911743781778844475386271109042272745149431109575736084016252660613438653280461650682073514837725685845447087346942062552044433850343096650233879823382041363777750220666290809202122961181298043349475969945132325543789898183102819328144490053735555737048831560788685188719033231438898912843673343921284504962035146843005359572332323874917060264511906422655996537264477934986395317876531182003328338778960268093743351240056102544472830286657353838672432195209767421071181624035220787352152791096249674014929324111583451207421488148024293958434493460408505818475413837094047183828313662588705260617178089073661882636706932537780343566726420516643885951014972598432383735573597812580310209380191159026000671932593870874902951333197671083049730320078319318495912660670755946655125363314706582056256776764922924386874978139714334727051495169594153534154768368270923915178509979702943876624244973248463625853556444318716005000105854017201101518344012960976499825269064309154912290075758086802117697355960154180014473966510617492431332194663573542870659894526793567783600887280050720052449063219171081055906509557130322704853375672002902986739055611980549185404945288585960939110541795806873966752770713648316088139443586005749461256656049483375703080393216858224088334651879107953290237164031007131795318396452606613999176885047671325778519049194712575470559504695945285168194893307965501971283062953399734073530345949646680453323010669477552074341340459010096147267922241378476820344131392888954132087569040196186629908497037729943683114402993767383562741778492018552588927392705228281477403651675232256492874451916967994924009641919035030216666003059861504567335600653566586004078936770041922987608989674179125572954515218174472127210352998443381067326363726343239606029507180653879551669518031188706536710913377167483749269332328755204629765564622775085357956016249708807825309111250268312138032651990269540233428523290121800479400239002738572305493100748425185755399165437931993388211303455434357088626371831393740863496440588961485224863007045393316910312391448824532345916188794105010626067560346620027545866255719657600547480623194339437398358492338798612576102669512501767475222215182142471698490305361666881789396364191670231886419064096499532502276590040361892259575456609997801464589652068730262459312637547114077691048703380525535298059512644172800396353367946694782116674613985792121219808312328850474267262684994374569816668099376676447995717026230715501864345410479632553093352445244409829381422751009577369772153663399135715092851771726652270335521510300273138495403244722889724601235749751135324323393365852166034087989538302526528639098943617255305983045427412012531730129962183089737653437574636256274434445823865241150627549365721917997840954374434196431285045781914525408610494359499437136185920366818262227046317902052016989917275614918399664758754555920274902787954218266068441811694801916996142435842938068174879293343549819106626156706953210184804212034816895996407848455881135281080190922797531082877168020586720172463557136937043131098131770250844845156531477646261333408716539390170395172881962674173401417505667964085574080304876302557423138322944220321377046380224068640182551120126285206472430421334640295076101753080730336822596790687985589960087849278454917558537157508371315010406452670913995967097173446712526163351842399724181189004969806680525784276493718655965597403743443111708658312485320974434828618129071906097077125734307379935910017491287124072344388350069404898585293931321974850355658253316858543539559809867859106971188476668478206551200724348403356895536794571115991497418252558035099678099276272158129821984021478685379163370942717736508560183754967835851591312295080955549924758053675255160537700960088652608881308783349373757137836496089631211647566591573110675005105488182184563858166328554956898971383853007481656463538650506404578441377114863098416494225761410775480431475320275421306240328171979546737212353806081878301503340821477082139492637833969796314026483013097495002874974090534015130652614711104397826882463080258257032323230761143515069464634859520534705535270302111492701414372631900890904821555862320995729909180297584762496833164381029646423025188086653845456156740928421734663188356666434948765651948502220774709155310229079598323595252774394767710474072258534739850687746499827363430683500614501494947206949190332748516777653884216246761575826591716700583296668220649454162086814146577324418136747426900387513017426967063137995943771673293347642529295003481953071997017611243071051127336824242232611407255057910612164159736300556437532497947544615464367974225275845471781245369452838394560477459359569515349488146153919897716430223519198284369202467079219928309395144487233968800192913352395613346537842331596738611177795949379829421875054186130971692359556536508188623341933324709567268142192497112534637251950530055770421614607694280190186481536037800059044922513980592084913994299063325519064353619494151493630946604448476938778501895295915452355336649959569584349845786088344665268178809637908804640276278492576478170947140415576857891907226895484266583998125678811354177653738811432032273757583168025036964136248121589595193392932790935504142527173001027347967663035705648319479819239202398445880726971926554613012739216867929185676758953781112196626168714744477532836779634447357810004536580575738553405246729346485226553697587640436368064868005958750948852290438776299298575340207293239717979609558401877989535230309865919529973486941418584987420236339889794362098795052668066615871294819822250471446672351642383156601730021136456299036654766456184974523408518654440451495876814650498507963154109835344379865055053715104397928990628398424532419342410761189014831322417700588843926407645029816322343606990456247198003524730998613819009292656197438844391816797229465340529401984122570074764681165798055730573483255028482656046568921502914876933854879434771562092607170630823359221026597679926602410051063532421469971540217290743170236546832741979874984400360923002371072771785648433560038608264390830669136141607158545794837174723453007122430003951141387589736241319431557191536585215411994751506102086986126974215407237629107842989094189689368207967474111132314673203536141199875172661297964241866030655576963901194047769511811939211019732255331132573114677804811172053124628722348703546474618424247041107579506400508778446826643827343383784868221501331815172432061883508508085446036974337440456051234521703004694790208927994791282243227103426939129246555788495685929760812183792173650428976688664420628841090433004708103555371606384905426527791885508507441683306722209163054622732500591712747009666677463719067076296952049156241322962586167806521404054798256950918275315345910587345558282728278423511650134166983659104921836293046122556749795198994307606882687378947840393956209267427235447101778193053441304562608551928910519837382719616031440339667252294246031818067989003599147270975886142969365116332095942767764935031781674549409982374919351345302556290792450251200347091960299523861707547993919951777021441362877533275879993883559736353037053155303235133577243208793590677522061097335531197854748197596609057232558535504795749121886124089001441462918130575563473767895808699870650019570692739478829024020931720335473109491965556504037890700836353423691392705740830815276994582599550335685496967913464659167147157593897152830904780289718924223810962169298866187747417695305240604495682813179207570654422804907819401167368546531173452756098587340651453550878344253080745643975288820261732075156557083624518504803339427773746835565791332136686923195102269998512887640501949427326833238662802765162313664387734447263069896556286524669245942963517759450236618424169995575022863839562232981729647046899641629179450366999131259072473755674884474351133031287854987561460367799337941938267998699252774982395458667737920158091211605492717259598450969532624868141070932907970197784402589783107343337820950749214708307255254385474723118802781445238388339039652638919577722806379371577891563306149107202560723399864230509034687055192411100915168473119251321083229546430067244690872197963600659540386750866222815121369058185198607323692181279273034420858379225117837361375755323559241168232202097157410757386762490142825430263677919563656570648726433826565257945924828388610414681455038112182061634183901644541309284508997760923244000202866955883209077397035062377085421273793701236864163068384065424525407836529057262165452732067392533392488795237292928308399197919242720484516985453132087635145840889386249473168387449361930188480636670622274173861951833545127266162372464143048238984964480614361041382905546884426975430696409109398487919029019140800807213626235994197020742835195197127681232325265407001519662340670271070275250557544077943036128718948279167457333598912969287251928771363241011872445942768050504860431672051989340904853208920781023544698424370067382788605321063073723857059286137209653513017303126843518642915958123953622925849256628886608458633477426152507963894863708130279560833802509270898514375463488881133456621836139195841888643394834687045949507234506342529838615627785653746574519289373833537278717347771469474300991298075140746497813240545564448735422384831921818961568581630250584731545191926766470760376707791487159937916958307909236613285905395373305847744170317085774045375449083372002700929072444179679522222879038259960910480405929664849519239130258728338229304319731169733927670809422014336948501584214573261488003069366317866458222868427461937386028135374556454768724788899099578945796681328473284123635406612188826972737264178208232918230404994007890022620098718990497567895163866770027143786043444067116267742641707862274353739543152968482354730338200262859458618970319935700782038128564809124011108011985107647037043055468265899693449793085187691891895763618352613064943522647025834374445289156901151772337442765962497133169192859249759215826371079750203678993923871973616365999004610098131288745767867539174418156605011005386004606609912600748750534557621786400383146474516590794900092012166626941212885822857886030764214728490255456633094012110929958589457178847372854925111467862491824225312708573426990957205605115366307128495655318365235724842823938976931901201062383390224618327855956748651661627381091949609705053108292668635297417661069703377758500140559514100769876994786900305430841155555710636456271102415337727856644236150614657772694529564812332542209967466512406585383693433905813295529068554838680466759432969831773767518022003647993460256453920557508905975937422524825408864691886033444406753145614492523804834007863142987524832974346508276310606224450238836639496320582557579752646892818995555568208083040915928178022190171387459636186808879021518313441491386395667670493835880680628731304297778728246660692542699482445608962398803299989576457719234641954487245586062121539917622719591079243491541078249676128400826013684971902602875461777624214608086615443391090356690354699447742460276160892060869674991823968781481678710077237081384086400259467089916467029122800238635728666821352936364872657161748244374210580963565760650898875592481364205001821175389382359014462948328957037962115081767643212547405901357833882891890732836501649194756741392130032597360690530997061733278771458530122931661377378744139329275180556605896820090411897816034463199261765053126393094098365890100516538116090407802429406607200898533308963926937912316719512696922040681505308886191488940985424547948094637992621441548321204835149843030526898282293401411158504984378059502631138364629611031824076187849119217746389296224041497892262387048272686597387758249677631190221392639712498043318290549484071552691915311111426276939467198583253350403685398354665173523857575779584119779293397087871288455513029960249910575730350456677129027944792260570171935307078149109948673362394785516364520222770490362013437292988078986704726167164738910226395862372836920911909740330148617496094014530032802269081088351067167847545818631210438509321300129436480575125227654293168054083834749839516391488555708641768122339639123684925839436961341360547488221567881165063622850854085300449623211971324753482714928273413358161832799305256216393174276579325232578989082014060662666839710864295425675277820655443552578393682290938341314955794442398792361007657555739813009554542873023451100913840918835250086171084880674006086757580260102114049004155950092401138416512229223022628250984721190541629093797094351033936653242828464603329345429024111649045470360038832492683053612730799435350590689704763256335663299807309820356003379072613720910650183041240436597528631009870145925154212382465270009256310857937913392046703410644047061021996529338539670316331607750219382924883026656263770148762954561653241520210137949342993066875504720721944631324347936474412021331569876823073111097900408638893124101221118047022682802659023106534377802263712878689718291663646652266416777441905928705334770666406647510937085694373837340490119334783185751181732146073940195563696058580380806096940450038564285854315217367707836011984354302258054143234450163641917544785852166723059609911090028029375017809100014703503852839817795626986768560475413567733883208494345230997153259802347152934814356158184917349381106276371578030773471962978870702428942354244808416517770182178194661352554646642034789872314438719674910052072278509164641593691734994075437006081248129634419728215377003896437626039545021168005405593863633630923896630981604218633434251790951401120540444142136548792109078359666660960731568069883847720775832659518921445888825197791087157124753966216730418135886798359040733242109270119599222844546168172800546717990234756975643549741051262986178775945699954694067359479220196195009497357331464783073359229085963734477760435892258796589174843278171776099055594630594519768546284478916963769830150635171028161903296676560098016923699382853913512980828343652589701725080704069461471235513972719624378355136603378966013304871031812181887908078984060472373807469100780212582628226839322581635074514776120460374385294287222714043112868933560965609632256511283210337658938958856550119838257292216058698004374426163473586215501947946766879925246862228371723959043079104090423094013185663123220959437782476293308239511889070247591973326543439009951248139517917681748463892337401685072994377954606244593724986570336015063851150283647640696277915773286070793158001318320493934155651229617573370320933283275758144042238716415739449982448413943112405558860473208426750186105817167101018748527879494282494601025503201783320928605419149001278020505124051324700107221264992730264391874565507091279484831379159101235987678302166361798607830645896169290450473669760722559529178221777073723236701556654135908748099945664723059002343151446409017700882927327021617685390019785771962751168725719182803335355940169088817471734548476034917949214195299567425921676620780946187034008560659440036016329882035470038691019055514067030278550753967135490992670493562620480191034313074191307231602474842898674794339105038707628403599432108616048605715672435364688651352700447442884020736088272582728802112716328287250809549734322823956672532857785278652232903125557239505978103450080177930967980885263985414569061773309572512700410948348561741549354656111693582214781332536116668259048067787159356387350463874352565326267795212003336049974061870940510872921485639251500964893800573087088989466796185276199459729046835494378658507548237666283990117902605201409224663711906453266596444765134887194214304804475509133959510390793250402716425205930760570039801058491371571000780699373677015559163774988335084727289640800728897898946794514195418503582736960838174444263091837504160793900473014452382006403891805296104726249338008394744157368102559984554924667504406473253457356331437586223807011055022788992759436349489796056601552396904497738212793973430122098707738183897123024480924700206961377190709813251075172325192957971339398318449579939137414076573394440115318466608857418286544687655876702270372240220333904318417627501190663071697020659136276532368757624648408945340981666294877234794553987364852015042842429425549958197406687399754300442316803177175014718684598579705738402554688448725489680749258739423801976200036422853333079454361631630721227450283837990939372462371627791279978808294972480269760931820383590587439175750413687315729941171943973271370724242730977904014021130882825615992128102775740309894417764138034047841759413204335144467525974955381588479829759217286877949153160358145269356623192624904480148545026356911626315423108607270026314155979890075687983998859283368862224349963998286612472267566076560983526630483592652914723536961422542943917365038726959912879309603137840704468397996287717084546397475613155695318904766543350823064518802123597362491554141193223877750636968298967207607915304289670868882101341956632986686812068178741992458854561809812099816056162605751846340463351270637069808995232476857478301903483900179032458296309530197948025549014577086484322068995249818807971720645427368330706639575918969259379124902556754618889116047581512999177059048980490144146579491186794685613281193836489698408531432661890774563626920982449198784290594490755280840631397280909984177170946074595288826150424941994264635643500163386857490281220751379038985912821551503407578621088669819326567549375206157537711879049604563672178978761126905635548985138879145171943930694811563438027577591522706360924382677149067865335244336905627077649175670936013792699364686535735331939689207657425720090338407182871151028712335048061551251941499254614965915746722444508104094311722556650724958573493243354811890697832500930630924968500805570405265872581190663554802889468707122480221856313988388276342143483176283284336841577461007746472894203728525163130763694908910085762833675280450051080203951624123355035153188729934032343437641924320177705073019336351896158029562132449257911402138434799936714251487107714824652188826712180594644238852105955424588054164095377593293571840837773684042555260145990076763479471699659092214733774593518869668764698555002961499313601783581817217124979669243432456100228883815936051014849837571937308168958241234210037727035014711642532839077139472847462622214076010781673410474363798211596170076185789432109714017135554689703795472887449653987252419084925399796701569648657948253123452515811875276132499829147752518019497156491769957972029483360545331667201452045135135706670976606704206942299522908881580625446423830135001572328399615854676613866480734316231210942740655575076894546503006121143999218305234183283752543977728434218186672444853898464952733848946412503128993094741617762659464389349298293134534562445407964588798240894089667760252859361445591713007015257818388573016634820948448114722695815889177758006386423398779748204223934447118372800875112577024409536498628774677357956794574442202039370211595675931803567482983236092702794725841920096706499755329971733281565673151055674816738238178307939473182736423055792062099287308480195705889744514023467999790464264329939940022931122499494043183953464902981322839446871769962958186744846627245924634930776726304471482205839242624661611401634969582317510682921968362188454236591683083275538672963466736930979177662868260176865416834842201858155674125987271169818663220150966568402541800833163026047405966810187950799160332505358878778472196862290238199898720516148127459415623061935862839028990493459086367262795582344404453536687439775262011600338112139756125726405538789737569860255229532890094790247913732803466119256145488112301138756575224167898871456987002872346521415636660273704602336548882202008521282322785329830400934727859641385200677622776142411977634600887700269663112001627780762123024728103773742051822514874663419946776406793696868155716200479762187708556306805348751805369619634417282576005101200652297866580716045871168730625486911726071133093607802855148380562391080242013102404884662871113744464525642607319527758928838733511134634648544474189008402314378881743365187117187722830141064169921793276523425607380882421945919043736093085227181883316555136355677562534218105638116961687751715571277394254457696048684374645665785140227819745977463855094494807443068055374585941866887579559535617119148726639274777961380853572941931115217342971207450421802258511367787205775488720229875406405281752751266791157845260058645316651877528026253626018003338965291662291381866767851171827752351736734159553016259089565458640079616198689455431800407775222395816786439698494682413472223665171292265941762632498620919434117776039325191611874228390161111514356642217154295473783535061231542384657156080899529897584440487418674633619333143109793351360236419310961415799152108220069887200980683521152819847202162582161201850695845317322516220035449886223340418314079074853460382078434193674391111774228868167214553260904356518201676197176344348263568574433208071156943958328960049131889228871892719720719104576664949415507942154212951712871119519593972500716837817951868379364430115770859854987555483223095917503029602985065190600520884276982579652671472535608667451772091401788267434414394550395380113748463562825873615442808342371158431016060963924986662962131629038541687816664188865586320043599664133575736019591382594649322396493789395241892148327156660433726498247112628259015512485838509122209651904892655315841910399327955338472741249161735430731391597568265952275383616366878480234348391451304457853233134285423899087199109559334096702606689835945193440639192241502908977032848235447267188620461576977945108365678461249605487270689522003399935596769964832207034058366283229571165372953577285993606730529901989237997831070425735943823927092538652146989666433732744103095314174515991935748597140630452573600900278798586068924985812537362941475176626124834045207730343363543433423885133372248189459685291294028846171416772419390300551198778781193138109561337313152225906483783281411930979855610317549056096105371045621703135245680726530855658870652837025720481080374570256779599557659987461990777306898627314622428715788141728646598383700115454206754443245968739758115922715533443422324865887211431229508987668380911973859269555954000742215072185881689031183519906829586423152131400174128874026723730197563964162800002892335438007886599740051093955692477443304717705085769561852016027638527965534538328733386755704894341885544444663277661579712337333081252496928678595021905174909986115217614450723320612457191367454142315920372950119093605544258275686014086757221039425269078193462817690958729689768473857043303068951496295325197181839163206729131111188009873015996502378330499554022906230519460532372108606914607523833541853341195630732981963480866994498142987169622661467997422698315570517464479659213727170618291354549493376149944622678334132858648323156282391403784274352348623892909456541816898530750967261485916660394592894719660429911363338916381271564288525112302871075094231771217811748144907230921191722749314656634516541858335928252522348992400495020983695761569352107424291434416739755540660261337113529411700715740156343389882633567961264053351772399873509511821429938193904997768430433827537507466895487158403686308386812976760392945547474152807665139228397658736402743903458221253730957120090185340833936627874707483448873982626927123664510986127331490282538292364351824746348823267764568749197482201501051896936639123342589066987029469776238543242551419508752640732425659804872410203952445161677150430097364445608483534781901168870733349223548882784623478999436219548645503434955653248755376063015446705928517588361427594326050099251166837671581599128982954152819307352266252442697513554261822408171927609606264871793290726630751714786296812883448610045305338592164120901059184250347087203554697908452845581162211186312057626286157306398572159633222633671736951555509380791049516377034065660669686248369879187322672615384749447059969247473278025642719705477226433726835264769193789654196059541474507224927548760709687524798280648782633294948612814527231852587733799925695757091572894064849745104247509217938338316383012811216697846583015632462755128823394475479946137727222109646140141698717579672181050254929484090803889966174163604013165276332405919028100214856143114850279081228282184437089018086421212445640530698425197389851806514994154611173104486019667481406263328851727278594882009925301224080863494300828012658468241452894648814583297517234302077589893081218384519712110533746033319945045190202285436995810938198226870188821185589723350270281432700215375598729610241423935140776790713755784129507295889518076810012534513838860930352765029355749091680544946609869954366629354018354238345494207832903010937718455003496684649110568897354303951232382125113085370052177001396494965088319016642016674746159271632579374068136945533546580610295886050029914896863166362617632184129839380445153636836403219432138642420278141035455815387906411536857466396712501315467736942927844900305713844973701023658143086698229777906478571015271313975142797569607291795774521132130150818727414705588054043913343844686413996973980685258992231189108704915789577912181554022619172502780085016298025075275246099470115730129128018265337602000895013601448814513617131824027757601363095979596077533849227570322714177254660078273612729096226348408726980533707489390459387943634531470989177760745180879105480075589342692810693107066757524708249365235950057340557724389874000927994133619245775869619744041590306394495712361103729073889494955052910710401653130149968970417397874953078450246325042649995089955600419645285130368224755480286871062538442583683821543365671082212654594059036062041384102239230725829186210762275639401070277257737008529090273856628515909246181438605089550146840235514146530839338306928288517729262753081146762301571451810440228565243045058720277538815564819913560804702457743102086329286020396677555046015593575095903441265065498687314777050381758011973106130465680678031506325907238647221708347313310300070874425181331181935640994462910162768177171010005919189921227713304748399881262973017154703383614326663663323148851110122248513962235282378787639021063286889134382043284447123286658376826562339540957015928073740150000236952687183534032276764411374965142923541370879225581423883671714110809024515573395372541860274966105682237273808524803735143822308460218991688985376006198206225254476649559265663741431001145085606741404188018171345375673755360112458153163179955795831296583405328459254244918023736295989002759497469992257301720424944551244539152046248096883012879451741507209387338294849123205460903311437160206029837664472007283335699649180959681570883818914564098149138039904360250198242152694109054083430445874514363557313321505257816468525161647462513338016171864564018126659976683984480077835821003733188952978493495006737855169636897259380405264100818710064414927822502304300241235674446122038099757295357998220261341632973414639070811590336996657757509242952131894956125615486966551342041411582682407774865964109197464901780196082449113511389105543104266449622043285974720039654734754986832336786032555452450600961930385863257091043223872057015524236021923622952852511782682417855107194487549643379702660356049973467568665318420046098636719540223182973626167765961656597404718779269926587650957881355382145708556605286227490685301786632435725156130480878143088405229439112566232644465507646911462212663206947479019820387677949097340230371106817719830412103556834014361297130050687663505573557030241657012170721543899481022352333026137677354419405596630084747685695854955435212316480754029913308164717888394842919847549519587130573799257293852727930328837833624788750953315511464556051326166340826608714320778847245390187482345659107038551448710783533406992724300500542478566538014155480568584946057201309396693393184873687757892038991737108988590323935990908632765843780198422175813116975317681879458741891775083001825252054901488530935250762144063590636716870215957585797659786339789564476006897845709188708360465776907285457765763152328941074760613079805845769952362395398946207821954310487238473878261235012773786943869582028705604249385120847997910325236511947872406748710078615922928034457868623990002880801856412220167201807422180861861945772970388207676797244478260000097702927073661314224975074510752581680898921859727925977593697250884772475681183329864432283345034612250737914982037349230112683091285554953396818455952107409634719474946011589043691900611946280265887970910098996378973359294553471570934034993860573472431181291591782438110024543906834100623623801755537907163901440829249698687946734300298194260692524834014457826911248315187054362061344677655120990798487842392474439242214687242154336945014744406818276351472528066203325438036357795644670042932435303697653595895268005535867184530625938099287669877820118988878728215047780052494622951407522816956768851279805107337414990605998275467518624676135317886925138717866734191680040278662311317991388957939905909973218678207138253468765443202141646241889918639470737147942722080853666445209645364723300677255392024973214972784313134216221376418315641462410385589758943471908793407801154530954764877113416701540612354716384840713091793923191976649344995372798518803442197466493643306958207815030814236225932378988758331038340368706475876866397144695859216891677127810107730913604151062943172502264951248148391033515866098070804856062929680180967636177773907377107189316193795504063181662829565325638691692529410203134664675325125030766844557954758981046526226688482197619534994558528271065894638007120761825122016988865652582597433516081634363850747982299124798367125934252261917546999897642814403854695848117814634757851919558749405884108853868614769647825832000548599235852809014828291645992148341407323330655232729515674916916107817612852735339426600756551387590581352479732140989506173780986043386276416329902681137394374169278406046389923386627360411418909819514502310668484089373513163204203525698926145365794941023380047615566526900514554579083232112669572295615941380593803703740068207431697743320659972365050825883876291875983588594949023335283565199137701461875618248149930140288296964939121481460471429920857390618762275939920664610187000077011877549983003209781563757554248613552099520746370179328992629813901162091731438328483907304023444030971948721191032952427399119739250699978493717637623292447377844212486170154670220750569646148787525715531126082918974666160086433372634409068419170855386958537772663043207700893867914760012760677764858335370205344798771605794515408150762339293273251581577120365458902585144575540218603845426943952300648490365407894252878104621854998687159812256750605766136718898547729833784433197330586603563835589934826556960592107400156735936943824598822676834977882572581517245722485581199286908226701440834387711166399475574868356563069964245455174386923139850313957861689264186503585476777467653239188838865481263078583253668263288301662206074844349060852101009355863609350096305203314420165405559978337978656410618548859534244123661103565197575031503716163457610316410005288276081279200161828593857777385184255666198799126628345693327728914941645448325132280189414212409168518326409703450143656981678117458940389131179885990292575113388809042156944709644201477013036243184024053199766937096107012628317719469383261313390651495256799092870137349734475022717983547033665329672106169311890968237175609453933649608705945039903785823759223498104971879191157481164874337966271027258460670516951128714806914396197949726303503209701171688517653140475336908583688002610147349412460226306473974197551013404606241815494782390622009787271401707689120583249390541259306626576959272272227532582325122696554848473998778532867824221887740480073712563969155412138942744984538461052849835721623950770138800574167796378969384329210432543308356183892243897477316972263628343567860618194805814079757823213362326270349724628085242361568334103070030444944671581244300953883001165977052799078354510167684114140312720083264479834465844231359479490299269667101400830191733305258867081092722275522239951805390145761663955277943712191382565459170191951017028185012991691083011689793105625273862667572912448515540131007461596152610255967776985992995370115505871497411658604190741083789967105818406170452210240449678012919897131980217171783718688651697944433368462750148268165389290891583675870527337563112854053037913942084655785269436417464076987032935753516870236057851593943868247591809119682399552616781009705648107949734837670542625350352139885963267290563463572706619505654696905951407361679338683616186053447019439222408569264584093339855629981570543821706647667219248164663180926013796370151371067997502771079987251054236387743784847035116119966303887893385114423406086265749746927018968267371983154733318024537459122202645591729508245046229997758229462536704206812771365441212861329259076616521711518534087569330923262128034279179771885735916290109197727927687890517831246990814520137252674023288307814954115779684200025024787004095174048399451268536619301115733758575191622427625042528621290900532883199575966397768513687767155838534018775706439712596114139470778321073295482817555562392911151642102616624401055737219963078172412697275889015183372914484738689722644795734501754645199993124305202341142100790233159356876742279538022218639965166648348599974045935747886328823084723223850957533306233098280961439710997653672910993255451919965334947035693145034489914359021484314623672504725160121390597847895206101821465445439950029941601053750187454674086676224420023425392780404701515985803021852750854364405049323995359844166578217578006480733405114526922018217033407206233670240609655525629129455231271377727451492093042464444849339553566957179755777321453882132502011090281589925840912976077014304747505638695292983772967042388224199992616991710934122995341276672186931039164508596234471443739137512819195667427262858080354773758823668603642199078263997332994660882170435325300335238805188925894896384610616890580176166046235703497627731471855504060370685739704514785278799773592807441427284901920937983124871221370418888993499393141827152218732854010549277402621450317469226243888234012628042491676305934868169700864720400618215532531454095027117325902799585177288673217754295266082966787898527577293014604774478281827222325815697178659185023321344237357527617248426075831567279751595076222713019653330402079902336715852706611474583268156358304763244201455407924491853070310889414513822127937282459108123089328058663225941067057602770527588709475952969115458939411665106571754965125456998055473795286414882275877472783593256679254178606404492588181350092484009875160656145888221579373879383293411303290813200212559365752955865412321545151919702424145611881518418701486929239051460147240909601704220328322933844908061416792160217051165736113525006927482620484850663542522070902957143388141739455991680318800378700318222895038912696769066473040166127556431241187047957634164704113465015756434293906332536121547172470106359356590462435626321968558144295893525000953006329162540346272433346929580010207429156609488929795593679454607780497383388775451232180003004746423360729981486168423259747596000880476227530772672169020059127842917694781459698848629032884166873301976431266181590976100292004788737553154017438839862861771386939076921352520896198316985851876019562532722711212167837269507427752037257675064341578782754713649826774265675532911322867552427101701035226325822358405175408685870054435700818678509717720337744797484870286135294529984429475273694628559602282549489688743468922796784821537513324689459881539613272602128565156488447392117204072624070742429810932688061848921273549883292126108215801400157858320139324821992300250230598869832362303839768146864456804050290355502971071671395969594734599849459577915057247113172646934208344253178867257782387622421114709248983993260640949137295402225306176333333768557547346590725399248272052942467073267722523103880278064492998842028274264415536757252942138418124434576751066673098904328961997354728861643607750707258067278636904649455596857076714901976304623556164383084904156167912887188133617952529486503205058272169528711255429737640160151854364291248717574281810421973530121046093649958327630536583662238202684684181286555448882875634026659029235434874643310418862175320998156759101518412384024230711417687568609206456492838011786701392741175226785186661181002014518437685027156954518904992844840009631857431038955407718034420072747140344254050273986774180989485491306752997851531310798891389183093016359328947011780309000813931273111284984602850274801048197942449198152981722718990559850896869583353030076684812642097964040675132749545089600464472736568822370135023498258381819033765733705335624717603593245536960151409682159763026868605700028322083871116626041086473035853007095346605733447164159143365459414613510898863785603805195313739342851226491784551965919605892434564015879675356187210232152607501455916338849034378007240229782102041318037962600382614993612668234672243520883189204582411927155177706510661520747746719454338794969656922291204358562511951512774409469655925165096279214546736190513711566891054779856588175218775767890361999814345722475694453883687416063692191703593060621853655282751528548890262811657542876969118394699513112949134064844939801208447983123054933053278770078238494254946301497282578397835669951450531773170182500904001556114493760970652078740409260219637795143677691896920978269785889117535609055215984128892184220253669274665608132716888249907321392787924521736428175813134141308086447633552681985485271824859321086254061304113454188471871668259286051601715840007062563698222404850264257184252797659939867301702841919502823662686774984993370510473426900971299880122207284203984972336342657890982461629664828756748606052199182688867488722715348705670664044538723039173190233038102793818725632752603905855953051730279889565520294656833759501429107756146830404595451364547702052135031999813354634495976690336314012913012502140515335205407856248268012587906263201646793130512839748715436457666009270473512225902125003359785851388553952954284652500057290413359573407673920921024629179738579827737352332532735569590679523243386372729933104342008862208828141091871562227177367716241842340286215226627724101218557352102229945235133948945513748695264675301249012935492807854060343848065845546350168322563904672475818274993185168405484582198092312518481162483828197090445885059999061685733157377957056837370830946232425563181326767964188845103295558796588135939226247503983283347687883304761978587642205520847300424751665176736488958525696695542004505215730393289286866966914163187638013325117262469274324418293356544113056583528033268964532583670175260125238605170148483953472002112747777110638305173816689082966951273034833787254910221705080743651370205568815016118918538058438409181049641681730367440987545335222769058935382923399796220943597783794825607878466321654041754351757206504101070446200370408905751363103290065396820589049060782250460381737122935238838632943672062271550999681918071091082277773017832996103737524065278017139730895148335175337383935963539252692981477948301557820540450143724785023372260264896674179045304140986936525823651010512617179675320142371735782760835280532839015651485160919902923912700223729712862035082033026025132498696127873844096181130680510931084378741096511929538072730550932394786576631576106907789357127449302903924659947042567743648641171215921577628009504907417359479823092999311669421395353056394402824901833729881968867718289348302369392065085914248202081236633900414741295957715070480964534603477055202255149426437778967911715719346807603709450409666282312608159605836746765751619471271191848875491364837870051667360041518588962479136948043300745368118237017419397414183077097866038815850983015095457480287360248397838923611869727697644346129976109317561983133307510414166421331372541686946686901215054081489239527167256519118796753802141828275699047723536870536273773753974847030544902543292018294473561138439659511202684686711943766776949328482900859819696931255789206617562166343541951103468957603005116062349963260694689496372201090150206609481629641120140256235673514443972811790338123631793015540726148446582428600061388883397107647335981311083567650550273197825245214622989792143510584311625179106642647110924528636260196281167490611280340888274992794307656982036946686395170329674149640093101051598858141938223453456613582646213627328836131198154229835216262108399664311006008138144983521179024753612029372957545317948587366511987645540123552200956466356936262546838357788932652074778221304962167173102370177333536891204504198242407168081405645396697381611190911036455868015239526403219452000888442010495648221326578014628396785451273325404194143591101209343945493473195981393924269436627504005011431948723525516531886066056069013170567345442434573352814632014456612561317082005223921215913485133705491980187005955565047551300204527803634462117793647183257183959994645111960726418929845269258826393252471344684135451809301035449545034895938877094968845665684725768640265840512640845445112878589802364100741472520277095727241691573799388303940676454544377237776892314788656789237368716024903372342064143685909161778212189326618426312211315934092310737852168988564047444122034876794365755943473517115459104136877543821748611213701025325931775609789166819886207527281683834400408709291923402112295962175439636046032712157289422862448358582785865819712370232096778259049610796985931327514918358053527976480450114969327763680873624803702909543505127102720473036318702246688613293281817838691752749353739907444646550677216292214475820985623638166594705454524634935984030985685002471251701095267357861291276501581585973266960414841142722692234370344196647803760980653491126746803477608583846604260344447775840202894080013529117716541788620907602626921075500488835494336649573530838588181420841758425296249154197571798112283277533933751837422219989396646617772070464818054643251380367286157864900212632113598331748021247456781264189023462612778256279274148351442268087324591252156975966328556377296821196309334658089942098349362874691585602615353429195590078114894598959825037702989609798827435477237011098280380661592786008111388986943641640808495994950670848541133971943154191654775936021389533716095376341611471853085908145912232314465171014033351102809709806752943558686751441360086375719798010140415109111731312202107430404603478786286458682273043397857132492069554991597537661196044765556359690629169396470638074471577418356374303195619309519624999598098699334080052505788533631608071397872703438810727936007415179754151022979607865423686662369263447113088247323030167387372103736315912866391053416756483546542865239125364989018847440241762040106285442658728541718971988641657425947424919371503683681100761460369835860504197558671958239319860627036234611856334422782116956366778640899326529299011161156336243842278211670368228467057306358991297238181430033495398035606259569914723348885018265940725093930859620008564091304023610872147943917455195147202661303220780598943687398928574295658281795723833763844555784275510295116987742682986313818063053804130237796906226229538847406284293012515410863312302875465920772745606754446474025912930021560145720308747997948308718976595875430449473451425007754874627486923710572715609851026454949459612676657956184880802940321610410071011356861372138196997807299678347189621048921961007498018224364512478339229217198983130124283005314049028605941392617112543995642025905660502299957490709040581025493347493768942478643795889872412248425156315391863079913370007339974402015880654736936502934988753822406197110020126580015603758814742064568019077098921806247224451481628765011756352505101359242088870349061161596768302636966421310207909599275371551521040293612569043234747977019233350440418160473875306178833844974994412200365112802257374059365708090589122599659322947828391704256779042465551833803691804080618555763033095362131567898095950696469011213486331472463986812669172134807118888921971272543083717044945055744633865577744223845766767034731146321783421131310874575950906307285622348441877436033638300962296755260721298528936467899161240187168481467793250799048872860342287041987752194133115144511986895247158491134491582474775136804044150191420947240639093336390060228109339642029895796571706000507708804854290836136206867195163246619423667543497534445159840103016174029996931360927278693541509624857254050209490527445282211475618159825188347081558016179435154643933290624047477278995527061586024015578489513056203036468043207973624526736229581431901154126463739851768711268271499954355319816965126576776891162788550776781214531952489068353798582792977366543665838913187352648376791206222303015433074838967348164274266039871537089822963948499221731279494371960552196353005227400852822665623844062843074154862885211924111187456705120280151826770607646854956624656912001895482262078232026369392980911017495922039051624437869692220115351336815799101233169782076990739030531395400151853905527063671284608994925562952683350067163772194777164304172776660945041675364809686369927740446969241062392924328486135745952138154669255940295309467797605486620872858302406878916790776805314361027101290498025854530041331806948938331107911976025089772385120877408468363081696502766284723640831345212373515377154088341679572700210360895808796064253056380346490362384828238300242579184440147266866027339447255997625053243373108148540222839129472251024194807748747600352621363234968237412495587509630733600314331673445217907942110046734413188288018773902368241218892806310281561003593010304356892167472226147669570443481007950802770623904697953140715395799186552404772228158723138222371361018798635472290453961453618227168180190158917441010670257844242907737609834403529055265920058500146275182560672335975924140724134651001716567869548819826938254029313277753555772628929320068907911743938167471509294166797262094175113228440092896195656822537629534362049339376371318365493549706560916939152100522582584576139718390310275491530378464664820194915862326881555367379342770262008449776201287220571569343898756483124571834125316544333142861535057032536220572760789833048868856789192224212193155361817964297840838836025306078712363436511536967761127734801723881336635188050502715647920335751804815762482067523870744426483469663259726012186237267378740724281305604655558728741005939047556615384432603342160528800391502488437443910811510435574513427012820949338648488207113103572920901484167537125510021005701785596957273606028961221154387112689384019794729089665133262541116781647857328763718544229011164028978560917560575988640255906213986289196999470966328298646370292348428422356378013163609256278027482668125887168846014113550688511161202069274164878646253588715722682375821161130108974113494114157281687071620262086029407280498424822360278678209540914064423054099487226473621368655972882487742082737056394531954170533838827078600741501330246065662272421908819038421785311355651052545787078482094867925187242354469264717646498583813472538323618246212052880440585900975644628103478632228523347695375274808727311425127148008729511395176377713723579733977111053285417668551647830479659278135534643848314949412095688824157936197649094549935869797469412680074350583170773070540295303714909422917775427358714424255564251172552898117371302056035559286364795052062754344495193601620364460883122909839693148704933947012378052346277843198389555809745467491276071549482431544270811045717471858927932286353675054459162723109542963934546067438517619406561778938955121698769586903840106799507051200807147390241051573425552408524010786831857451286803696143626232921626351749795797357608774246803403777392604962996175897881703218299842565756412461443718570674323158592237061584532848101920813418689905790101523045952124824766248808743089912365163085058117039857096636216776182656402474673581092275733017786553916469520376804498514169035610604471689032225129209704493637011968235987568004524132163253213391937054005278606574345709590604141419246045102135006898031984536179236297640184427260573570845335423639439510224218961161052091214533148470493302115833733218531794791778426242873003214354551632072386238011933941388747830147793798361331559555636047734666579313102343265036891521733705252388683313319348013297113554509238154554568551954283904595677438132039669959307608961770402137759620125378523398470690977037325634134540297377086734722903467808990220910061940746159280913198034774413734427097013314922360110349891976591711659243605216861068376272171958974816401104752668461379069131543873236340734921116622270332978595499476928804124991751448946093662892233384239293228760288302296050604608889327082779740750473090567827666326881438241434357333238605023083218253345199718625874520835419994703866236134771209761113808538565588378665271593936585986236986492257647409963507037168143285039718620970785489146706945742097027670001806586729864577031879039270826969712370574393549333041821015158311884289944354927690694156697070490200509626278623496237176196219249905676587031410339541000848677842492953844784489415551500228985330531244414734124209480343577450701454785845938354881297205796832962083298692193475649534795884152531373760203513838661013872214506601145250712300772070911945860033430216659087703969920270245583311586590055017449870781403098467182492543788872892351965841573828715832129822225207254532508259420177379215328769395297017648473899997110562294660252703411342672921530776035764509285362323056129164449241589898848185042294671428091307590975866981214410874231233179763321294013924749372876913086991755407490707659095796877314706245047683610878576725356757212810427770762347763387240677363318332621292640917690815265394488712866530700328079311773462245898628697509067204518444704479488297527073877382638496790091998665104426801018510504605288305096544160812091851418485969368156248979299885689941345259083716517404701348294133415982053516032917844927099430418172296125017923385199365034842078218778842369674933176397279359697192641635485096718411095835676103575638143854390279620698415250055260152320562858100834847994791382627197660855567831291504321086937326702942758990358166732477017766037342345008120827647622194944485043491204512212930401784547056740212399729936760283429150340268359102792418548294431108763460928336647530927548163975089856510982599228583811968274657058591584720775184850967991461853497007898521566101679451391868662327782478728004702360887584537303321359812959354537857563630886307048813356881739019648459751058130024504193019029304355269824729547281509037083137918894263827475644974563312341660009203070764920518873191497328677025588540016444492802264529872560720779108873258596270884586006023494000673722350858820273924551231022527857255954945180801889857718243058734639674631682471370588801704683101814280010510879031584000081169511616069652770350675541302298696073868897140062928717049436620271204258384742313296822273102878064963346961450310227327891847328507579203402090074090618990372480615417314978388532611805551085002963615468560660032409596649765633063887116432505118856150787953645730382766418453186621290768676234160315346723798600657608037425898836871615955859456677768124576668803159187410037252845687279078918809738857924008136161499632588759551172821094884312556284432702173163188885426510333260197318310825224163261812449230380010652302215077525729422586560637008233952103989351606629559528218696524057440372152281347953982884015202089956801329021734257446845582614793827473964977047145102169964862358834948109952420395682789004793445691124881119116006451921586376924325034243720520434915198093400129787735923355916539910375646817563565043931834779790970233519043524875596980779634820338583203488438202123387731185005197934401803554385731492277928023931377959082702679066405125869757458565822166221115164852514330280309323851380979884241712969472001008696351014962081173639114879704385993296043186235567027320770367270914943995899154635107691220363184377280745307232869975525920188058422798811102398944148843741911392136347288794335952568417546409436029667926095371730137966477808584657511985160147967898293491028897131335032509229006884385114970199979387524297890625012578035659277191149537670834425662996793007875222966346036494947187460137415292820262013259694977793636789197569866245711387888065226810340848796269007682288809599854921099615445265636217453584705157022884555905670284942464076551374321192107256789422099985882973865366904966088424730188313448533498646342524319891452541164031313110677671269389854878003171559084146456634260019429858330437519080196219683780384066329482837713751081236949419542154838476178857425843801517003377646454088648800528331889587634717440562674055681540789348329217681043409853685772639805819624069876688170004671923621557467487937236330367124062493430027216212698673497312139644115860045691747922591629071096785393839037170512304164111856353671391144312235367268689470322597825288906060313612075101254316383143116340909061257265779709860387877534671769950256845531839114486171763482782595136424114050922125097477805919152198957572885126889318199810659390074915358546548507318382255960442883981538920844604450596528425442412765602002006528861647443315138783384125433674575500670771198492309619284475539800079822810687516179551228605130641807598070971450022344682531610539306281775809397509359665219993982574568310336638760907895223267218559994220702363865150306410411073307697535538566443353219701750028786052982415239498937336044400584063902202072115300565867729981970532665978760261398210796291301491136550373461214890172113466320415557657914019090435636512309688577248664118826691540406288618775003539894569250191697330339141966035506574837230157226790122881369512930578182196173571226381769859364470467614015629830659909207718510981196606255808765852219265640981166747218630718509852999920347763780428042936653508018484719344664932885083915163842918698576373498176420792337459319967350072489252428217140575565486714149703968075206020612597828240463274604438370697597330627126966196099885892006447174641247066653680529831789215867567850994436885867736518159212326016012660989477005443346436046180225479462983222901754768680353211968921768458137320813652551283623048006683924343761641009426961723109951054378798860498203330586384704202694511135107492255865699503438941655853732471523294883387193953699759148701092020960557289306803043527983421178067952199262522027337386544769297452748744261163541512982128102479236261427313894951388515201726740125733998620345691552516644150046200475231976220932361299982917990764295031160128128324782511357443332280680047863937500469234840040702816515954229369351916547286918171509340543039897685640492765716037766309019607219635078018238310294382276399910564833015285719168883427937633387240407079137574431586209926005149356907581402216607742587869149212119911926327280503927775845503233931607191575373376072967735827279227847551962434009796236431005208959307158167966389237187497447726823543100706265839146708311650059093995681752285250114748313593949763575148596474278911423789317061835692421440986539361128793537205801537563292822753233250395191266923059447501424514300136152876163598930853579081075835947901376743217051742438471813721288364551694083808917117428997781073568704718837139782716885939948667028658425744111253190801520520955224519223888056437652032679131225194932689587442564760727770382933527169971728792183173006170695691042023348985814602916374582164805284282181153337739636908953362672073522371832519698333550259783801581904499160036337577206741093287900283043821267592233833000093691294702686521015193772540941217787668221510535048909847562359341396563248287363087822683827296628714895495069159074065247404404490715336715434282144405320376251667821021807588749122732859694796827818422879431786370708916708167051753699978064650656910148457754443064323931450127377509246305120826131078582665802183365318424652592066460760758378337206069408042910718679413804482274634324101081895076567345635653274743190571871078463706900047228040266757240578192664281167101768930712849634446899886672106944282226797676566323742109939007611055450002784484213216943928710487686330532835090676670099806214291522077989988531364717764936575905358594411687014952519149367678954487813069318818644578004577394435917369642837785664912033434038492544866402783342556996213740750679036286516554612972038006685821146930582447144687077348869805806834466217743664529189766046316447543185686262604748748714774847823091536128047873834866185528418651346894741707765874705246474665954639244254028150064835188346817059516149301995330903968104219211800645604743339516030173048373414167757425788030221336312245123052542422375314308012788789785063532182992868502268438011444939078156093014662639241535894878104274457041781336116148075842227420217392778325336291879122013183865142383095470630393610607554478684186658467017889915616966545187293410075406520035066749550085926947515394296501712262742313318530077343277647205834164229329220144620518777530848431976835705836137495540030173791549965895584996079388626076459184797463031894947534154959653086963685155661144327401348913488482978522810371691980180943310578368121900222410256234736781208752313317268878282668009963741089993900851301618764000536685130192110959631909399826035276521381293128716380145522123305296052061138402494809946855122771068236474422945622970292153823793668088639443006440798522952124940442941119806606044815095145819824732340928196477078880599564250105783716534699097242949098294956645224770087833158996424898352708110643602700687197016192335753656751265163092884517685996196708811174965559540005396265078013266898254759391609572173066808560867253277872063640891413361742633491691419653958809289207563472831137637210060936939665195276855674839747012750043921380767339346883902321839716519537806682216075468877788952549447577934081997451315525938045240588542326433748588037592053382733643585006826836925742575450665152548841837407516814635105315562490525475349922835774680986941529562540524927891051314988635467328625432240233599212305886676531579204391285100285100350229068765367754428966944463890890290199339228413584565038008788528010722611315628542333616793992619059896714865654269814346789672768046503265378560360444579699665300994406988127361185908909128502540834014641391152053443711557988917168784861584241187866414474976858862636121981647364247809513292243008390469078032080075620421861693144291815876967645941697899785438288615760589423881376051567222132242489233260016333412348734339755556298203541531216042372286527278483926273188552709217005229109782973813531432836282615513640922268146022060093915904959136832025797972766438310802024306358943680114372057159473587432660122790121989752037285406677663675782822671712880818535844136682214685317000517773238032652184174355562324914191451657272686938622633105128077426375761725890052775091995041659725507853109884892619406267581011207925368238544469896420945283730758933799868985053599674635669112633252787403972492230020997949880745593266259928366982785832125920114581235067239050558235239346571269316213586460544015228048608437558371052361734881450370981036263709089676226031892324829754424533768105805810067054817900444503675148547191557392163727270655016556424051716106961962111133677144400196075159816468939335250520805647446442190084117640993632710091134202123012826253000385035247402026273000186592564725493232469228591601171699889097365391296254511366907775319554367541843615883044943218557814629924998939363447242225262743747842710199060948416711821618123989882342026060606119889865897662829768246229128187197061888335170628013611378816148881706847244920570620154233642874564166690155534782172931504886224502015204229253544410669931332374413161027717748970236530965988080021006221036946047579560758843839184674413592004965050345670835456146813279914377177689689926401461352363526068957812399734944894811328679691239972977136327577189447794322353037573231663823662723968672730021876226865684207466083449243635404669433218147019136424599543307138416789894955241846977211248704702097196307586099638249880159369890380170139834731055793011723589205922006418595608360449180104642188273924357161717573403618026885892620369530945731862811821203607539475467479315776758551000974410881777086832706702312755452962426891225877598330255400247959532444037466531238914192665521317907162891217225256788526713483434018734255849140031561973579383123214990008721001563053484225810534963313524156228971174384039318914388158568848620389113493784203562555583691991125796013578632126799367509073512609553104622228576732517871500299515316809104899051889436387120030126835470072394713376540069462098598421322061626742138175429476270202500875363426588800022118838128220286727134874342413272321941976284748503775341174616065628921372062461359625581885449390023275241804305463778558766636493041462389488035571578818103156234795872141721266637318890578422741685746245388282394362762210073061653522768826747395336907614408123579008475428334981722549255661980531940696610107477625562224942602643961927731360010551648863269311971439840891345818408498350500195989517404849759374305206859416632314502796708812999551680468266056022498178668554709952760778107492804771267248794947981809387633898496990589206445815291097175756860410215899734513540169283663178523897365725572918248872921706694757724542604845288192843038876041419960434840190179900385108263006236969234457783033532551245314752748977205097942374077384429679996398523017377739401032877479340445573204838832932407995391742774279856245830145872993641433074691287544044235057190270070718459109389072899993548287629808898343599680864333230753573027422292659619014893887514001626374846464592804651633786420982421905442997111053023403787791905896363106390375461916052851461397631694254732315961398592792266295763577403918436903971367241241433767253216910794572698912398901108373231197702998982160199564925756820684585157522168251475638820834183358290025458524895062405319353860362636751954034182127538389912868006094563700006345951185696046792428248883821232525855755153552178478078384881666987110920269031533818103937748612496782036517083914633383358362667489914447068496420346597612404211131834159053975768179750598775214770557396980889888987761351527632662209107165061589147236217924077281693587504835090128839431721600015080659239601863846915722431990140365932383000139497443859087041792183494728872435746348391350540751373489277361434087385166778160382216892676879576027154641540235878118847997465780011726976122589194390290088302365822781961574332629784460109842390476399417965797582622097302422803844021330192972400596937561494408441403331724745109516284791887340859723216419911012404570101514018284692524127947126496831187907819509462077114953059998048103329712766593928855250239695155225430843957209068569344757553546389787729391987193927133936499745025099705531638212710642736418733816769081298175904757508615261000651646274140439528521405837127477478106861573879660021557009817734263296929437429305034039902461002276332374441385324351893802198777098942242239300882064792302772922169125168758763704504789117430129545333143571187666456385733528675056142413525067905742147007797959891356362413400020009074059544027669534750116619279870185056512287952933285584454119645794857065252978783008668417793671463291319435888313664451238868881259280435431777685691319879056230170536458454746621718016652958035831199151973998928568808757528235758154571062056122373341177501487194172472353183255384333050927100856903012006555975965154211843357644429523192902264156971762239539934325911053672792007305497903823676405223701156601124020555827943291356731490391459198901288640765169966873113232904403632494070251570439329078091828824484552684366413450663557622843057359233517085936384555705688202094952898517077866256991041900309754384560483096421921435483186847397234055611946233158107851110865983843424458256696896124049132261913187477193278239803495332858185335899829725580516677581787671740078502776397710196447758151083210909917479957604039225763843213729282267291750021568233074434543216518751324279138626975849692083887715392331376181236819395357680258523850995302956045115181338904232546861223733454188132636822037270869962239966983024597760430312687809148998808376856977836066296803618610265272275031965014735852245483476429386136434178113216237925318122243047783703588391504052270764285653226873089998123504566358357719454790149338509044716272301013425168026513913252978726382681251115888119785198228742268759548050923288291309663080695956980722451393631166169995231329893037395657683069558063963765742394962422773743578271900734890374334777360603148405829316174091098174327779184226483980050989549903052863252453885903321566578921903429278927046099922019303457313406586765630473939244036477917868897770473436753839505054404345408335231956676087422370631371368006553010478574911885181232726579359673916871073164642326112008836400314371610323337450615193641069760152445081587350914515946532931606762523382423686611075223629154311959458866276187481814336642844064960152374953319918814790864996233042569250720445696963999521655647178840353870294916064920932607531055632075358089574513149374918054181628310741325692036547422982243039711152120120113730829219082679653378219341756484615405311943730534826128040237628638816147555433030829019481959740249574662815255730365308445012817460429712680583849899473849201635441428176577642912862336506887915851368443808932258686172329105101281967773447235419375680562033254855803990777127030862829332394854008076065699905820052099815679886244523527489232342112771710480246732178014757821603935533902252678276353597534017363251049038680357590352133506569684322068710723795933743437546522102773585118530441727936613191989501332651710926426480470278864274024810376628301383247682461247273644696242177017480713402409139094884621854250996628911609325746217790079612353724892125865549200113921939382297419893877504437747187095398533940619139424870229313342805615219411407464534522019533243666165628118121417205786368412136301432732768320683086095624887415908294332644591559721779073724029299652626311662644354250767767657228217535016581442993290778808309001093939606667849363027298227304968412979483046853210564267942946541566282076524203843108766720302801159234245415765516601421535446261846192468891072225120839077266371825663594893369404821792731184874896831558925231282834227876888768385053054525959490357286076385796232682336379370175879454642653614690744673335130282668034634931052788555275743636795840873907674995661445747592458017629926047666468005204094466163684357032096003404895908366615367796354685945760102897401638716896809435118872728777617428154084201113942128985071482040780593343738752293206949948261281955658073857763290086320842570175750740534380959442694076166335005033716329237828439733879406674504045607698382663695355021763260239527662862683502533577254941550149722542753596314149336814484201966844344642845393559305103710204530409181815218221602572346176428264427836339172345267064502758451758973248482882543686787901545186981209554147721317957723871595594586146002972396677953030141925614188502625053250278335144872541677351561704851348695684148304543727531487354022967796808628645999396849842761644124213163418660190087726307778036362809767977810936296970846115039805072461946399912307039678648486805060331830683027393383244229154322336333641760850604138055802833579872026311414847391489523095100971462465987533578758235180682599931078551014145576092523646105507650178661170966613920795394884104740431113839404711831009609031487517506269165765233036554822181483067361412579274556982593337813709246579590768596669359361104946690315455246267186950169565530429164141968852809604591083878167099119546138406955026496273147561726854878619007884657610336533623942312341137339077332411673265746306053076575932812929851959285521990043447589660525221160075353557059372465707699871390127428760634759169728141934077944801991125396843337459858683380393330563554869331144677516923701260141823688735399981101668484846039789946716851620584054118891094475824521805778019489144802687599865463191319990764359882054977766801475321881056930793152567196851162789987515845829394670743662400108105952702318309535426494717172812561319902021996827772480667188336017403548579671711375038280120327535091807697892838538270387942718691702822970884689977347562437201708225529550551326841354840932272605016933273055160756003248860883034413720665769261854723513238030351900788448100571243913291349550317262130332758467689010361901078569840860481726940138234923090804703486538959279923040707590799563164731133666207546819173470995617291837090425840127138702703350937381253058698447228472259964120284328858725978602652775277296622994606364810996745778850117151113063680155617023398744035126045669063710863376060654932854523612254540234097763205755133195255595973831718763139585846030695900755315078121695666153348686070218203276269045589867281778267468348100163987553355151771788767413604972297305642538344225419898574975088332305423938373402946705730602764832916256532304492182353583799984436206414043859928250235935028673131010138944133106356998694330003011731111287542222142327278953348473058610842110264762388431987354165421727971740460724520399203528610766260575505953693068516874343779312695957979178476881094783734736558875738951435153328489420242456164723931762210413246203055002516060093011429077440956733829086131095496263485086747192709606821941603726418065734721430962246851341813833844882169481223880018336082983545347560672164591961884497891617273550529774976950590806227795038148610260522545845470550919042699591570174935298982262929099159294131910415796656474541875214608723759965173643874024281549251787090344798880080594692280197934245099282576017773785301435437925618545339125943893165419979255615511835139609477325784324473257149053531847960360451982993262597518861346546830928155685938904961993201687230045545118503547438994911218736812281753029311910120290981047399428620328991003953356939153326046807626713688672447586646206472097571397127651467245728817407426337563995204524788474176375445128100192294630489739522918542626774566715164272597885679058305187056196959658180389433706662182976571140458829744252801855131064569863766284763195349458732594388641766061969476723576676402619975392980857167438367085292454031148791021823307477258344716065956327726715243350858774248499811464485146076538189741189714331517321001898239734896825678135054402845416111579050126192631450106504554681117772087426492427535261308613437889109728580130922692098626549500493647770575586104415361213168105238526146046685359289872644305089476945771068051391861370268148091058923105770710798902087230948342584628203601772128291384901617174961440465020269670059707680984983389019636161817490905077789371581008894271194025407023784505163693850605712581071714491173681807460881516293472664208943759918393061203158580096192901013310633460267038064763400950403075755260518123017304132951667368501552579027895300389771821844732012306663003364375288590816291911513487281388214335769684133743854624809904381101470215143209497114983338659404341373105442141742784004025939984744216142077633424834976391623550326912206209108267196455355089570744846576063120447976072495916664770806881511759091976188110342476626944357188851090584992096283736762445065555978443691962200652931916422555659847704019793772179789876556504488755877186343160865420814354238510395202914178459854479372776380727713921903703642464155083966916158839476201009734309293072207899653870506817645514486236422634220146596433685361945683232315178824885896997943957400861847379794848041231067627229313885235448161985062535164255468912912626453986481766348144123033030384077312471373664069367400603499326669544655891919984821293858337521409541402052051067076760044856289972368397590050784415358418137518610182979732491750185631740773825089139543375456373651374469272767504200748965850562009695661136097216519873825573562548573018059942867195307506808801685512472234619273339443857800819261193280623163097656183915761900380312751665813965549267663673786862757612649020794680733237160246295348099242967060952870779247988624465695126172857679919997310107595378857480967782193571786500614212156895263754222736708902214107083867034686461244332274668981181736974104627747064817086201418678391342236466397156786226790184370701310618260341384452243779362516040918740922649820622571084014320648338382055011102722217026356615036806623441797059824841808196351889484067233396033820240649091629979011134995305913424138496527978576132253238999015332259048332548269700818696192572879671135662678392886501326349526195475736741951233699556993005132602694074832555656129233669558730942906340254108666066270446750447666451310939372669399478947883912149991428516674591376836175883562213528449650299969321072533845819287054169351313745865717682312449487351227654036842419316384529302811130162752615591455837018623017956238181554846822530334837294957402741597426305270431079003185393802628602584645409094508636622823153755253492838468178705004150100441701229010457513135082087619655918020677732370936359972533145307565545949929515832823497599171495559939902697703598420870040377978965090317470111248288807383811005162515339141967288244277565937669652468112455669795516140396873365242806156274388388474746622124427907266661221955504985623964881351042944532173336541336912611461529083922356060627671524940957692843988766029602545453201950085701907838686926965269010560344296875695853920032173594006775570379942026387638784418778044902516681777979350916552949485094189761556881593189694247701297235643314625157494105105732751729871929305426938292762155329020677492189022895568660139694679342448798033356861797357592013801813858286660409228782524656342258911264189148776381126773300947504607194671370652312736645805639734618958198448557646894376896927398068164184429734166625907202360160184500828358876573079215086164113679575360139147543147602101772122357669724086006867374254723499125331000956952053601794689802831449957271940980908977039915082722628292751655080815407791704078560446028655146598916342238329418349555318265713347722152638271912780823100675503102480191456940461247099947437026053154751311849229936713960127072641357357960180467836248077941203290540412373302973122939951220748830321775518340585557947269775454494833732038673878508176490953891869569278765978110959225312016712506576975506740234299447636348334369264497704325017467546138807139653521548137922503701567978493860095520462233909550061605104510364257668193971914354538173299762501169653876997218875983838165812147187646471771747558379910507305904617302485111938143159798056570838337450822114003589082425228234933749916641789690622012006763214574498462315707581804895040866762974704772098648563246413603223073879450589887767369186906730316085219274469374751004288504573303632298556622161427218338483733850907755401389441147190469136215659128117098221384436803385177522731358385796894032490148880135213612062655448408023557227449635712806839768528256780746843112162589029145409508512464633133097468885976489480085404814525425196888547387475282627344774611343858745435203066611703623026333720645884181459603472095060144080268472845771679632080214799795694117537005652104795137372412465762072321154516197489870220324635462913302163718773619667861853959689750389100029759237626578918207387296309606527623153550140000359915166561604637819994628874777100765468736857984005371827402154619865248334022919968621865646462849237917354544081111039647344997525161932037239376839043386709989229268355739668085294105351277258332692818840366910141132266412754551237010372768280345061953077491225124454231562583870063347442251027486378833776297019500786919433459481674006876224537903183710773825234541882652343638576322443252701057419012352655250699228066108349161734029237250992931213664529974381642015944794185200340489245405526955663260915112518514343441778526296901018502641373856583450701290356669278575121604414967029461919454242428212920241858492304858596100541372759477975454062893021221490992390416934078929955171337538878550549627800633738169403040282593561117682964760829093498702319604570161575240341636527981064592442927647288761892435909156245717619495975527651763338332403601006999878843817444379470659037594013864529511377105679777549686962447271621172723966061342088707508430566538286798880082664552618692914960630248077320941592538110621746447177558465106912690807441871575738742062437640229260292233176061924440192716794212727116847112799702419779794016393210136444914339584390199404166861062243090484088706043273955361364985801915374789189642978485572349518527119616396457021092259525821102760726513953656830036791630231928887544942209053277561700119719278253548674232883474235441567188449739990727529544269600284948177187876271509805241274817099502568744241280937253231906123281411869398919339137482633394465487743811442234692471094799902112335137458591634430018115678199139905080667649852375451864253425548935328479704262257119799883857599255792991280401011990517864263095688546422285665451778130539282511468975773751787127934487813516076668431371358132814503338034532005925728486602616442723743386852486036643747860138250528169348132240285284076612970255509086826452752068110380439613537619411129414338881776125103740911755277748827639807635213875203526550041389742734305994288563605337227782907081678261574267541323045746986500634239901673820250286784987561347016163176474113112141597467257194734904751888914420978282523378637215277870088019782645801350623867383345752493947781826705455427513640355839469941146998911787552007631346346644378865768847602449825154920411209119609934841171316890965391016465688722237044435443608589772385322919207821810637742431796653053395423926326508428475951032395875643046254636535017563989893971278783034397592295672722654963895771462750054894383580099211821867523510563240696977937788666200418410633669298605494952529089145385837758365721806356064804477135298434533860492794625578191498214551598832805635020500014065687793985511285360135038717506573057885947014290542124075618013511513183352263330181692220728329932832561971320672930844284092667683768747649951912414706539184464179326665787300627120696005400949602328215719931099958567168705642312178337411091548732570719671862024452763003262014725046188780826104442603065677915798267895934716942939754764576194968028915271645193444986002682823111003413649561374146923639247123091453415207930575100477366617007073466321223509481485564568471508097912360521974066180151128548423766771707671924808200952953268798494238474944429578448602264945056521900352840119960691552768367737223602661123352402867575016843713971425076352839405543797196067833639825862844596471035200158472661095881953230291791099016190046691931235756835734329601126608995478762447914053371015308221291858247300471973170048703883808280712870160845478296900633463845060531543537505659574967505931417854945767162084022230439387384069657595273138394608877191137035693557674571666502500558178781018603881100443586591758998099740043442959424930696294374640379164462900980137212962815438778529767026849757810657163547286968473151110791537308647322883800623209159328667186152853226277357664359022033623861015604744225003815552509735989134035227175250235409746074598146507727898004864599209160861077317085777512455523293884193049456953432745080858190919246481298835033920182036243147524016189295815146302916748438920828927828843999629104448315928909578552635225335224999780134125316803678783635570952315558681812819566943786456417708888939244224820560009220207754759005389500677476796205533774889585981095793768425431314199183199623895488976621106535815529030358130529741307225626833187727648799152287817773194295996971673075148870838883712083657222625081345594498020782798097063956268810364375685624974394394737166858860776627909172517340288134849702405477356083841194600592624334585014131813113024527654890212394206288067840542092452666866267062908429183098953638963075648396845402725304302132585562867808587003523618157273430523600316036523306638294090822975953389143726314422041728064610613089578110986770315544164929173159144039447688441565655049334126919209729271383993061452482447231398164138288873228110549141015835038507970825873417388785664082989559281834149159961450396587685535019329466337958489326230510991404352535190955823134692049056808998541671195752107348475972591554167002354116786069703331550171215640795966756967620623421955312501091601644432591542616705231334147666526169819469294243213364758572654804217949503069144719063962601953723155372386905790396723332373685979518275367842207368341873387371251511672344112646026052638308408235662450717153852028389061954508044058649013382433874690823474454100198731854886450658545842190852381880615992021618954992980044245727759344292389371125186062635207297559740094052508387017237019294167063369741270862708134528800763422295577646414720752970209849646531969551633583886984200618415083493791484069544903285992666353379594623235250533548071861694144254198788453207870249662475798645051438896083264539552715301626013594221870519619223291893591167782100340823673642171950177626893888503484503476988996846792954047823398846127661478904292152982173003931170813564109057457306568692000826347451792421841632145307982669131219033463531702993509407006816319330851353071476780863513418457238465880681798195503515754089801607492266795172390134758350309587616520359811587901693703680111194913513094974419035240271839359136898286226250315450856046813031357473241305315511815057626672743561031467117060618868317054784411726632763838237080313207941879596646744497294806006550517269664355669685014764145949752766385835520669966967527872866214959322620641339358427442711213080057887459836902233458411107840425686537682097524743954880371180044359838701450734233055554492114350974494563191113437326132842388805407216605291051409333712363595258812646539726000940894589143222711602537384726883405645559201724960959674553109282115516826175020199474464244830698467930053900073645158844639772055763576826414274205059403738676203615463420348097025175765485782085227751064432982116757732711253961837582038699090384810556087031585283842746260316727087676161337278356561764228233895164734408619195857059578503321651293957650531759905465045983338537437956256576172272614427717531734387618795263519191955005680026409692536248405377742898821352448200696882415321073353052435451927363335530920486590207411747525289689300715253793022795318726567377822739724317147034743866634884824922097511443118991937537022759288641239904853228293217692070154443206764760580858901255226392720140502486117632366752483248843529988490847273511234872891356778957319114527130990610251478185727280554742711028979998249140505458292050991553424287349504488461790094882890602121983574702328275692773103968162324244743451046776740606843094392835043306384108295397051307786391743367792675300757462722223303049916856221612712012692854768468677709534792402135054345425217639413249712919636483504724724843380410497336061804385124262331027680939006027323295793016991457019725804803989283842168315516179173670606129412144991445076589722973739210525326131766479890641301313871238963342115445028726806727476881251841793768769651961096932985361489729541619681790707772710539557989733047788636646300957298190602182979323510300273557573119937219897565530946620282658665961866746010394109639725195019575003894159869731835855008539772576465443051122081865109850765138788676433878372689577260487404932879629190900878187773559461310724988482873382493451531781764662714726768364797668059264668265514604019090646700151680101653322607365610657911113575037125258834638248868973636131825017041300763610906847860084169479452471723684120983676702988911790559074685715485191815493975752570224896424269529458965853216608190766234926592353086379945215904294945914381003192162703653091113540590932821676883663179010533499035539799223817181155201739114085566782743343665000713386216124554667684765582605134349885448376265289099624066495756770008307626327048877765811261552651920521482470084892867171742315770323237879376518077774918133395032818913763443245322202737501438772242253325226112578577026940004232789274280992970612870432221789849493555378650144240197625722562667003208665415487510046339731078560093542857020538095363371869145347326316855761793737141251446619698907127533807261293721703801721277834795248428375651887089781972151075943124123144681661553868441524142802511403221800857108663134040840291302758120512519395541431460238975092466087297024061890870577628258310045636762792539531721399225221689825956854864784106808698752101978682594805931151166282344763716928513622799657220623431722369045389417525860723872679021009372213174952860192876730191950065769022479433000295664552438192673136884579816528303878129221471801912837660538900733708867551350059212680123612965141876996426105697489655232507539388058541553906258897760946122169547328088082799896522750140953083655522756584492331594951225916103661602533330519532869907820129238265650368456285197151166120232939737461645234649249575079424210326992586030706507967334153369741294208944691583513368011071765070440429131719031310994593685143609810116134280582633358511131108293978642853833586079668634187411913175752114072143320393313080779431214038156743190551961988197327165911463628694702700106676736989092392366869931861757519266428216994815833161256277052123982476876216742837363025400051724569523904118097534802746021573092636022714730684740654428334877227352241758538572302583108144970799506444313412057656502483763384382375117605770343279644739748902808650559668488114614383692504344805143416160581848806874228331706225260022338340598506309140627717222228946681566752886263094827777489410784086271313505071586464231302645172040198339522271187126472229251427038611773114286011104913397535337320195002173355145834559190390179242254895054387217083836424907087082710194879361525217469622956824828931206573885619165689744429040239695965787372844341084064957787921372975712808052032382967558423937082927859501596590683353406496012109793371777550926031552216909973646074553912777110692527202077892978502112480420479163312541967389180593448856531941789150709689874983329655712175520682684778334510035352874076054071487197050987547921822405850552299758725266663039574839939457582243991115464010369194115719143040432862222262821633532265455585684918370767280242541804288321196306404400482005953631766940305954354540078606198187230492847595906190728836804850297889110135960602664537874271976637108630992694894977119812322209026491351467040363952520408891924960495099628249887611267479065417931503963025548277841769000790702424626481058775878146255473343437691117375580132340657092358574404996621893359388381530124130289473957166535248091304733939017668357164468434035290521424500536924028323327543199639773156030526148620596497724682875693706814376454527976678269618891191255347825995764714609080550914253623369239460037496829407846165514992812115998385050869744623315695357413874040970689232434879330427900591169934046483973478141334165139674335109074600393337986968829763749077258699511035691357073456706479992817025123994595393488380709344343608885402094953031195412811076432238210984743884002693896700380286979970903642874223941019298971697448323925153503760633310575054805227708322541038156338344229918762594690857816769876603031002569282757725482423592892593040454330097940918412424281327595670257727834951779075392229134255694925397819225526062973282291652814702667587441643907217723381696697437611219212261233016670340172875264252848454465997085018079656904889434806498809885018834699215497009377953679332180207443777776812735742959548502840691213337461784432083692963056407567934823350067973286693443642543302381243590527593764538415189561393172861166152669047285621261271260713181957768976805853015338780745498545105355119970439501963548403933454856556312904485442234157416736429146763673781598693913299950440864264847671280035957861403222491061144537545528706579255067492620271220086179995777584126768611284362236990464962805156016851031275760083508722201420096667404990452884542651679461447501206571325873693957989991772419146810367420238788697398966526580983932613262138909765998664405544709862183713139101155686492520276703700571605365655502908244845255073188467389655345209993311683061835332590520900261724907883402007012864443291389651573744810058785855011796511149613189734045938853229126720019779026656809756572665885357310734638763062458212615617609459342571717922998671191383452505443064963350290453068972692870545167211513263918677113900658296793139655614910727403068911318936148239606975368233419001870346141384327850722060624726818343618450919419404340808846426329506441919493868252672258513089580217159065536247268432104175707854770394117220322512339130743255519802718194944955913835715345796642330050535379027737772447087757138203927400837738922268079346795105297555538280710826673588165139093364985948257689722686303846972890176345088847264963756252156959668208739204980624088924392766364357254025740122265244767184205724013328702321890857130315796489916085072502083119849055626590825481352345235386379988012531441742224974408452165503477552143865194424540244864386404673717396250610217478352658076992564362384962382547545018258693802547978353557630715898738026314457518406409072946833046684523988685676533636303426136805869408141332889530851453063059003045887979732514017465971374412669983007338983543244535983128229853595978952922989542383429815716738310955585080735190581940398649602913940079199480916543482410114649956368849888393783584338568045372285649886605141737893273862222058753918273691412683389001828983024821922095007804410562875435103295988431055673589800742656262029355894745326791752562155382343206115901735875809998674594322376510583049458122925858620690584540786029334565134464772304153802810456673844872721553620834566854003184463333511832156437777999854955823545399176230988150465028561035293187117874857049142741980968550402606601907111757503495349917449180248877144419236316496458768106227218757079077899998820832307052367430553553653430936898771560602724328897736116646183540629038995760924319550402344055341862070405687350449338274715692261644155677489760763141383828795778128565176818299524561063437845906498293560442446879090193097479290516124581306665864548771728836283809535061632177449927661257923058140902134483836167351518097604076028890564064924056071113502672395961079781109344720975451502055017518002138483842886167573687485392794531383134233463442785444590876393376006159193336598060424744658847743372937060550116259931854244174111619124597302987088519270776253464317138734229312315266812820727361549789101427754662789044308081233009975430378351571084141809345405509121624614001745109477435277937823007401174797249467303111808409968803240615069875083195010397351264955764864885958236053560339311213286719763452815557940781252833828109696843553741076718649093643412830131429005472596456404248227313095566709323584260652172323763756841603922258722235473720284693471998499495251728011008934217972922620410924544592259035772069991721321196676037711109304451944589531603862651960616735357076222581222359516893694794047851954108067487104450592473891898807514733225078036192405038628080154101927685073746223536551968565729890108914623304622341108307833676409785216313793599342661546471542759285513546676662928442694871042042568531206590956062029263421748283193705846175336100717249924269116182054534817628598328886177017689757477257157355216326498776206814232686374896553135557438137552695361066520683902260716475280915337850221039001700815057733991498444437431746375951707177008250175904417485497503763390240825955317977926980498870267459757339223735693214554906204900213959191315947202234496077939478347771875065922039587900011222712856401211821301002041426605902406480816832203421899537670830757344731443359158575056523429028789525622927819670529884199409445692424040561906481547880207933564307233549683322804907476476981978331606565032813305763116169165172116078599126615270466044701188351507794495576110031546698282520677099760108370559289898745059033503218287843207182428288849969500163010659457716349070982598131993487959271423999158755596553600311433501115822534736050026640773993581664845947682342077312711064337836544360436652584215207110178057890290555283713869539340436321286256991439501821576219448844195099668188693536746779573473319067152311994159585865087829046347452219571155698316861447324608513347225385087347598861317408188089821975386879162390756529829007008286522188534725210958116520705064332785496818317374995922462550517567436338324535471164150517858009609419349288986836647369419845081457287480725671092010056139058673320001001477185196893263076563724268168370510505807158388822404690986318615565363807290994295111985626100590460477659620310979361906292228755387294559010226748426360339386579701504932772087208225819486642144358719957409526768508275443312805489808906116979624975024331746827179514271122220838873668820239899971477050377451302366716512026970310634067406204869808768404105479195218006578618957812831679920932184439186655956999297775904693550840492808993858198567655271189037215247089697872331984307052210247335137636374444497543993870947308993446955893477550024593827416325590871068866172997574935024146588481441777571394455775119718900211126333016972596707330447724443380965253336160911520800221573173581933283781249472994818335143729711763752179453790860662709146474783069500699704288705482807923827622565300342142510105279315190663312776292473085019849265649163907105158433252264563239839590160702622369856739176267098683915137366936363319918512310783510427903515908335657282320324371594542199515522697586736943684905671617894709422930548798773372888361477833277228477276898634702207838762698906034516272484315335923215274038038345076118729251995716740375979158503781864291523982496167380890694445028257561539857200661363913673714890562198638455876754401507636032904833866362360000585224947424726801008902137647933399079634522793509166495777309194265374074162800555271971448791117840183716125154328943473419582556313662764963713485449451734139838274849158345235754468601259166635188030333852612691551957189250148509244556719164574555488269810029676381866392397001861870994791925608682790437436411651572044640373719287625756296527522625735719904296147096839871223808649467160575965305870164971584926637463313990557298512316460814239162821321478708415530670329517990965073186334051652936379882489364150962328643556245206701425087554776483208118189645465091386421995252821011747679078633648441975842090641275417609979869562819127598171217047909967733622462269765483391570473309993911678711057511141052516346557729841804307938596325019130963804982069487599519097316407842613818408584875149935198565583580682496893603966146625354084589813156937914625244311758011793321569771040813933834118258766629719602633904517270923058565739005509784763185811448046355122026346425549976678511683123440205422399106929009357022603211594133722006141335361619261480150347691584868739218135316703033613006132446926426910264713326862586910042764131637901498660339614003572965529189445291713769790166421921164053754531426499389340589923842442491184891265149144254452373613226297226207763881410199644271489431995500314598795853790272288140610044131177504559438808479833883951137160480417880497024691029348619054401381006550910362284708713130376830577346928321086106820534924839776723923545372144434735695448727182273913658593463648267339507295101531859336830050690394738542253065756294171824675453561384541367461678336242052465836553662317201087066697525842313414400956083543557302841351140329065699508260937932315494313515359213918495012072916508365904117258371883833772049142859993804828160368084846936685559423058097414399350455625072726301211077013218889570609294283575283340967672219260457871937728860426502985795011519965018532453362263001899690134856028102396654733398788527045460721633151901713411437952887670163119233034349604415221117523523835974632744727101827923501153858343107789272289047629864769046538447931203888041282162138929141529432216197615748901969717330848082349543745892869707636325586830861101310449261024487970158081400713582248080186724417245290836714607980609331934953980879126798604853375701312396566349553054106578349635848882081344506530767975847188288669702050064485378528156576287601470504596721420109952990445247506537362230933584784480982328831708612988761202163783202395111922368733569581113445773686808330055495289237734579984831004506776766685346052179944099775476772555375729315499727670196286209279158067616513615368126749739062009709984583694075839207671218334138946211007346655762709995258475474962789223510979203288327876228326655792921269331263275286901882707486975643962108335164144904386608121960723759497087007982423190048472799466420672669605042877654852190188987299691460594187069053017507881586288630669308967940689387153050374054174225600774176150169788599060914113866979923252642475363229143452238050216552333292450073204905831219596013455517774807455207139926717162748511935255837412827737205073522626447330219379842129325730412785616419803561569744942674799012365685317729135444846977111525759572160160037126372677847343555440096091452165856737278076426430015176453746061119881947839443696956895344722437863590355436884612915822923886400728715699543706646311433230345393901666738859847499628073344589683772878368581339018220253369094487483941113328648094430622073330812117905589140517786304758317352255731605472100672555203571575760909123632857752523236987813266843051310562363063744424710072546440050302681372555942104207421728030657993343352756505702521331059961916814300019487459926918897415986748996290475354620718956480583257070599866311325091376318772468043257242058718162151406629475028319535443123935033726342167708520099300618472763094517988917223764965010729985149551103758034063721788479770631628738957539501343478008283681865827115608860997254069264144358379661828973150421248879229522319454760748898652365238970482122577873719545408566912869022104747458939515071277706231536207911642588396528726166482856715655405396142798004329355925823713633030065134807035125421072048652480337705031155338121639961783197670138861806826127042121100253232769453204261045314635531912738174637712089292790736118340158524144620245096532352979074045408119286853429055517558285645265686766004658807580757934025484579739454837425098259832792848200443731389403334526360043796089817911803973884676947976094809614694974096385382113192645175109526886515647284184715386094574924534761238106216193343215366202493201937087598135932171644740504153377248235381981329551152672776695786229621593597609969747487486158624226244804721142450184548667428831072924534368735755083499098340936794256903858532384374284437898887422103557287207995708465202320504360355904243331637131783825438693996561792599978222825409659457399862386577948427302332769259089764468980440381988198853787137885370088447144416204972651705076949601051037005901751060490983346999229113945193489523595493404905482320145298427662020523665397881270769757896860870638809577725283754930654740759218428702341507717192447149882324742412980155838768076592616725812924018703375521658827597575000671293953039128987306845955250877157743759257301913295332903477691920969027317998365246924017897263675125578628845513105562569439882435262913018988319194879589169196991229819450289726895102489984272451929338689959924281113493953961620605076713784798373400503423244057673435541984576450166808729211717628241015092625355316548057320819312555192743832739800396864511585930889379884048095169606240308976516433854054411679364774251234168434692914415811100919116146351929707928720451760751196338208523224508976665143048096377647316095850429788739901865850776595831823848234341723800377551948663821066461589445368329310321364795438363176546734833927931673702980766687182568451735196083848140750795447818880841216609444338277860028819727304496155537428381136138009148246330497142838461333515208851735129955553985716286531522240294234131106604307852487244207163139491731219622189292070890456916597260823601779691526439433599493063995339418441124276053861691845638261143174621008292508300271837217301967911839541424376447719290864434897274653846550228687743718473941766393328967802610851032463332481994090524300567267870185746374857381880683452152677996689977165699353004360809706709711589581244651665140415040628212095272083292903111016793441766636698862762055770377294288956064324794654355062203862141031022084217615925282715886059614115802587892083675430334778718792735241603737415620015902910315350331238109784941980640947741212066950912914321396441053956452733715083428789991213835256004750346596886501873734660853781558889519522287223933041231557136539861105515385808668602000967421724322107378007290479233416286120777197341799801540886888517455436208183226586787364538754524326234507649474732642957545506329960867264457922352053019285185844048679859357520847645977833669076253838314370452051873290748815931476773404296262861933808465860657639130381540245436790090713960999279237041793065917812010192320412878108789515207418171540771886153758871763008343268271235134897320661697719739165777580741979061432821821011333308906850794103987565917768166675629317429411104005935276516574109906396487945844327056581933076191708699274379152054123687332552768999394941199871696366313222608908871988004631645588947750743951212466741628411252949774785216026308581929822926735401867638276166720464258421666026902190609436318412781146134866841137045852343787259166488996109960716553484875367119087857532589981528990116805307149995998614787942899909790461335692815359698004761523226639440700805119884449066249436172585465197295164574734904029885510883662742179573481631660361566055261094977619240853411859243668950850706195138101142626361933589067147059063140876556764829284756232754144661010825609625939530488985060302353048734096727178671565965691467207457771224066236428830786697736227164272064574580393313931710905526873455428662992728024670130673367010992102544968130184034140138688515875901237370397661170655945346022681940644586958725929346765910575478128307972858161701656707771164984185508947992327033359992296661035692711595548342783174645410894606176762415869208609817290918345379340311502328520368125533748679450524088145588127874104050389373993185831106933087759962370259167351416974839550563248444978805289001724448846831979849476905477892863058965682540379755769938009467151320044534316821819109233531747755915383273296720935684072397800231764109199120932227124931256656625217988163000629887442316839259735612145295948641196813142994252313376418446146492158077484817526899464297407288666952748128365260144850447644611658048477288189167499142240694516085838741049557530481802876405363975819839558833519134839494157939720866544593819061339341808626515444527474590609254508596975601790718228136542845077658263495687126519265500984315021866451603160121875836116450075402259449175553778309511357245356333144784945101385899831395405268021284897581651938550536240955894771587483478316614706883922410114873561331577591868390629581997111765000420661199927000244992832285093870356509440779886472113956559140884783294529868096429505033117476997127746655394258140202642244900998185511403589344356394371808495111861804956999708873513464696419884660145349230916566670313410813716067199108236829709302804356820416553820473085158114392927937709527795148099689907801385728675934640286028071550922416265522125741283419262627882157140159011427212066721423301729405287611376236535750274260860803147998067983520736253142953967085187078667897953167276750852899739447888593162764109039609909120402088358748679984671134294326125716964699668643557986833067568488473055643859714513384013887906762417976990523537745024103401881756988534208493202208434945123136322179529816979067870809597733007403116304889218756916005131731221119908076655414917961681973498748419447486181912031157463128180891082606473847732038076206338607506345662589545225347418281349070982447813333359120134412493067425110973147464623603926690835627189389453660044817018036003216693040099556471193312983207325488897883231354425869658207592574300059504361233944404286463739063688294135985559652936291860648378534461553925676116915666987942244394899254993335163208585077236417569331894861850803149413481051818945298920513618280110346874416802899589657809684609194694585996589204888142949917733368034191886878741177951188419269139667350559968897193843217481258086004812691001723947551152070478908313945948588639047167124414099278894035894087286933863443056046997145652895313575386128611097645886050934659417444113695683748113431446501368246098974668870326186521696250214746500651491838761971335994988135483504088328927838086446049914919618343950302979034336084889942180767131827621827930482781721107454229316448014323812619302765229369195052402560030425130020864484717701944338188727698442746230079443544184342711223623093008774057792596161242090478689946372427734397055219748389729635473373326902239219629607289921852241508673472182292011659633714776965194925378929083654116751192215572833172260190085552315858178083775464560865016856916500574341387058410105073635045575455854716059281850293421620419097090759247024769217487105111463282249963793789270139164862229359301344079353850411702245397331972666713293248008596386913367881751190583740897152623026654041207735162766258445429427208865803146687047714714552163285895598544806998153903712601879230222504409456172682337676819074831489885158244657030819634365141016942339938243460715849156264121856977876595103339919433973393813408284743455806068879639035968277690201074877127940385578154891825288647678991318830608160718565263933205777503245374910662130337952250402894725779338477627915006883307261399120237108241375291842920286251743203155444328423389428333923113396517360653942112666449130373008993895621469558455719825367416801747124646740443569418936177879567078958411981195725620327489502786610233824533376825907037551680983067113502487802527034736241775265824988377118669644211547909585898447556452625641840958336370622698972679619755096424962810973310264687945183061322056541188521524630685414052789556596224948005015991053004921538360861045192337317025358247108118801866030191604083465638476910375513317372604618061194097100969857874414277484132233990385285195986933322889029294985061860436403422422984409492288660714094781796694570882441858005294238279185159614408624564617067928630361687380509495161166556664004906498765819499494835550335227462737902506643294550393469968088182341978225530842970312809489670304720167219975447335832442808988001051313553396422933632990378889502025544183238067155232383453032090157541827815180525220774447518116601004423504721579980052142555055680466510174529634395104161879534251094980842388494586298494353628047239985838830436420135243952397075568946548169217360872115674106041193574231065411100897169992663287043404194589935145183591105267269722447948410034544243572331632947231502947159100107511542251302537215649407443339278484386822701932856087602093945124928650545023396159644527956801479387781576334885748515086792862266919279102637726542699360336038714574621381972517702023000515834122285261207400585049461608108843900570203085259875123395401765051545314704518042717442091960817258189525776212921448460166743512155502048051625844771410353125699597607446259243725328093307229575748846322612784285845949788540685346573975435791102156419434401966292897727175401190865927465639297840006820707184121853737509479526680006865719790005828196114122182426166194406651471194730475054104962608014883150149752774398795849000176048859889611418650997656377460293356369837812729276433476743348967440205848774018474229098900047593977721621220453737394653641553879268335828307626553275339160657047738868142707772360946257868075620197295990538404233629137000221306821392952246880707649787665224042599302605595437664866899302887428537196008043961233788161533276646890397706045599526675131325461338265319524353879280152128316612449331257019975761517407536934491707151424791561882115792120837184126485197222307384902718190104392749301955813281018926322278693373671502098163240546709264279821885890742251409418917456559355283874053053278601503881161515515958941897422985592765431438362497819025988788854458427558276785256314123611397986749519001224616887905859568737896303951197852982348411671247551395409075322708983356052635906915773833546634644333960874725660526346944672736305387741320980764911988083255659085485596005632797696018876893207166336427563193839978256731392924367668654001570951582457887869448664966727036130570054810608208588323914361790669976121069332033902645592875540069435001756892475619591662399595790032390128375793994355138392645395918882914699533689920710419988837427715630350747005625187821156554697303887716493606814521121264798283346156743322836025077010178925543374073484496618418705316439358897189968717984428807100378456052778245876809973312314888115729223395162093069160137870852131977925070486538887692482322298628034969889637709955027024840349841574954569400447403584683552979020761074311909500276280566686024296432619345791549985763308124466911933102324623797744890966409008579263971750483525966415238006238204923065921263139690245409516154733858423873874429343589484984253040629188221895403524116137899512048825736969182921737161595504780492312473886995141968845290288554551179702119478446297643134871743564065285607890821116883741762997725442365884152064069488085034794857012997831253493163753768940341919787717363963742455060212420335528306546861470079890056807435579882951181606148604456617536704873571828242867981627233745719978059160372406737866106095321914347825171912722500657266667430419706505936495743273933440950180648449820310116063664336128908003381536937662214572214357600662306954501703968364879818277691095553510278443115734976436769091519193655384817742705073168003010722662887494082247770598949021516158496689493915771779483148181404366203931390200665820702767102373389661581030635370623074452846835781326060424403873510118647221044262177965700064198686177264309855963090555516386677456374949606870484225588034105622409905547227907558952311235432374028926869677695877468655337899067015156426126306702086001805204378957958197852445133767080848860282423369156574270245779811315776062445130417436946666375274840928712055022873328585207664162536624342595156512639650017709404861225361158816419928361382933114538096541297410017769211711121940803942942518714525805230980037856378684577112457183551845230260641435323738525032407414194101320536423299036106669299812981504789347737840906163007118656994687709469355004917529513314308438948254363927430870200583602481092549760842777105087554496495544814547330978222348545768417416803271011571466030616389790642021558907068970659859663299367235786215650395756388440390965572403060229253951468199940048613033060961307033166177168976514432876443184571718779694983391748245610791191323499296072375085612070470900834365696266157506352645464101831205388551546403209427556976635931748922063051740911040898600311769423556148494309889532373576154132620514998537719159554919193542155545205638353721095485722601465981128778019383142855508519530859175181249893560614544986868381471636309211191306128313219076113634589087005670814011594765757538382191936119456750499905194621393054935414133006551220346919313632161501470558800552955118096627682062778818245861211466498420141220709447666813892338090851594105156852496661530731736905127087466208693790984985615413127635466775117187346234464448240073073098141656918570214168734577781032648767270200828933971424954960950452638171481263338796367841277769506444509942163126190579929948074003373737956724809463100449593872159095381170780282638942198565162803870796101199418145443816203660428611334343569049147150824163211638160781725793630034094683708349272342239658001775014567038668221086718648991188522930413307728880211033786264823213499537697103547826516147960636276808178940898337562852852746450862136438933003079963273539711102669143510729113009167115446128456880272430854067287755334549865451520028950611332597582470290819718523036291968191867845871826996971855395063586548549738549107810735042339135321502750012462523605800824841755599648285600860089509664607359841391430252574473711533953147571130400678782168128651916867451480860017973166225893709216471280432836946396514373714977693006972987572255125385477428886164189936031885278310538302260785170838975393338553549899216187360474752050458806084378104887969336708601289827913824956722637830391617056485377956786758798220246168960748156563122230042684434945227905199879410712308419721005567158620382083048905805602399169804329877687506345580332138392094632563264467197363548374684448697165963868467276911846810086548827977327741851389708529517581417446374647287349255727196510574430593719345700962238103933400838427470915672420653857113349445856265522520658086116493600302011156411536456348864171528893158752820958907820163413554898753341713463488236574715810534609825563891522204742551184273562684830205069872463333982791554245350478543956854916973388766028302298311151300469027416007227223115024761184353238313969066115731967203188458668638257039815021075582451125976258193666193591555390776780758943350473807691583856347785783114901010175824768006613260479169677877105442875220661252137252435052257210787481638237690581971972230238396456043552054132639772849202832873909417962527324126170309219765402372574139033698478251448227685165535993483758515720584147480168640472440177021023171263937424398371982890987663642005672167961970225226011096349545710676729428061966334840286350326032854420605063311270474597803099642583553889161093044003936652667559763105436022773393846630435637702557564985480864654957854306301111723700630337776037923709738470669725663494123869058676445217549267349227791086020103982582747280179964900725960312489289669497956061849258774852613323919299810065707605002345528447711765136040637816232495632621755890519267694474606446608977730674056494474737735016194131390189638015016695219849180960989097543795189394991775602820804170698180090968168953563375121960874928058580507480521083431775540982791321008530854797214034921711746425638453471802563313953675446047135906686304536445114984104820368075030789535149476589908520161308108279914789391040676287034174977178705558861623692002869819544894452317509819273705657393600161999078169174983180518610156291962111350011780014463856767634222138960650360525038689878819403290730581021866268553756449752975520601121848613952204569368109789378520474712113599887596893589361803990383261874063947750560562840474270843663261742652527319564813441675745610778588368515396832888288454521780753975402610181721829215421155617616606625400080647946691829705997607073191482402925251697218653642711942087023629497954327232861061488028784878916356482260247453015524570492435267700179728464855825184685611097184848341379514413530666267231451122479295983917699731625268882016822869961140310740787950528636452797011860386185241372623005560791948530987455934849993596455533243664269718977821742209653161349976468070544827654284563134033346369776423043324247977696738125845802927423804344137525933411288940778965104734647305986474633000107483623619377601779487167495433845982682191991895149694579482898607467700752395200020350311296257110067555457955877556745804480253592538577450815300391240790739728095046806387038637810941088222849218185827394371546376080154256350660451481588125511875260281870925263626041872662888340434876457709896811319302327505678065292683202737196599004385487957281527477845108966026325488072173992947857228153279398999223991535783596520407070556951249648904286745917860132266070953898531206916269832307639433432364170008975882127056683363375342921041444229261400174235762702894593998584532756285823090443744733596561626672250665602278663031415209955516613421683593671639502128176713381458340753507224119090468175809158616790440117559600717758754246677668805520382289445226860327621899997024480379908635107324906782658217232430529403656903426265288372764806550199307175952853747463862421424313965592541871165748678412157849617672991842443614116387418556110998734335610903569509575185295919928977168129946404736719371219425256574394562584819576012445348241773295920027023302020656116797267577172325822239119872345039739675993028556926323124224891958325579345775288912441741982898824626279403173611909804136424578795706871586685197349819893336732010303512593749437835825749030951402395342231429587196993968786976461251602825363739763136293488982927162209712858729970254318215952393184985196401971072449312511431986805914563174636678142169172016666111112280255293936736000850391585820539320246709759824741662576125258830779327961956734927771938343146845997128784029507407681506024915898164137284295858722635976122692296607118307750357146711522203659772166228254474178806379656996985306513698288460094517357476562893230012945532258752907952582726040501166690696261922156955256073386165646263024646625210243830398122291489276012877088984211808888774445742272499499265532192640096188386316926846574763060878828391856815351201343487344868630137436419000157609565106939123950428060279942595340948345118028071792169917199370480554767479340512001031621633843266616855972860872761169930481783702028003930947623796342211770648188789946763374789036462244040528537062888664708675324909426286167748213428095092041822010992728107649292273436536082405146400168855264039979647705043321673262519418583743956409350212540667954540909102291880334407612572179668575464177524101152675413058943819108821081141792522969044621436986836570578080025118518983188919104741032930386779202500300408025876692704652252432278582866522344453592345162133422517064543069967803384001850921670499935763476074666458850212784642619778163909591993833367667766164866465469852249512346995720139799388758228148623107371838229386775434292722082154264408350395958102895488495282154878562136708281757148950112501040727838658958094394000247243167267941038459327750403712224370682086971124694375977938470066666583738034308100267426492961194821152209383135175031421095072046270557796874631817987016700112417992551138901812560550112372234612702180548304080711247697583545707674462696271490070971290454478294320328410451741538329747445543619124300650717861165264334307810091775917089872613518166253669956308661600805261952187190666841159544719199965124264948969013776199803451745804288808578817988813890322642144436503735822121575575630608082029375267171891538678075862045819431618944224762174406214742750276606119755815764850249997060042309742404632244234337710364162460144243748034675813599806774738619390351538184587400908309429376980635637496787832346255215725834710320681136069412869065831381201279054779123773982490249931949128280624008599752276781372727274788573134090881457228052657112030191649543496357966849605160048404179762929579950209346700837388002586523800778588215670379868725025891839035567301773580882165971503501325191678546679504945121936357687960701052211669858596972332840948054046254416792769420233348676838117101153519752234985120942307797146933197665823482357463368368800201842024378967823426599368642465257477746034050167728493423717569296291863496042391923311187887346371743939514988560485378414899801730666678442217301364652039028058553389096418693398617001502465131414603123579772507668216661366881083018787760482287726960648828374866077955384504992488865164166048568172152933141367151184081013205806049333846047203710975478957033903615297111231573081205993720704880744347521758241093208310379575068470335716580789133869943723149007660069263452154785030040975493078372686285435731466390889738238470620377351699306113571745605608458101219888911147136889703193569394387627250704517575139760590612952565567959426791755380993827610031479605759703480375077092175370663281593441076128986192129496557875281728475153843756100423551524507345259151630937827416999004538013131992115455835965834601560496642091416736348285295282882425137260474480295473021116856851349409426727959978885213965769860335665110003070437096504514824735961690170794012661055482949623854529383136120638991245280598917739484108111521168813416795315941297100333495775863167410980398520062237900912251501854145668572830667704069669850417524129088502928963815149473106666081978619041883468221261179076773009751197248157092597120147358306258479805402745125835065203614261743156443097264586514701622789133598743924462139612131326211542831249826414091453912146865564523610445448078998486411664196586607195556479645521345341625982422709021558225338223396456505821401116123584583388187911529515800339317939523807861053495280479764499149951446835052595284393615671985706055134231582424942070016269240842283120783410669081407582933090180353860214165730866464414750952580409017186087775916540127719383948129909990982733092577589490164631758894731383340589494859954358571944409288234763474115378777896668358494996049720566838604651863707594387423789945086393243496760854481004517726247600633229750422172253015708876680479187419178659899992069220991828918954355831373045106107245297493149999597104108533579709995569532103541162538977984084993455470264778622070167007302508895217097929246746513938825488128555503686006240611629461631995194197231766988557333995483772485656101035514622876602254620238680919647714499774933575012000196452085769434876639424217513536898704284313877953171685155049602570654159430466979267111573095132841912082727985451479650912274618494695308857401077942172489303796401565399814817741210466648578095324950051641745252954487088361056619129596865619137514642889835331270810956072836098166633232534761865157975596336091332724080429703406237038846422155339586602712861060213406613051621667659857384824215750429080965316786965419809644997651099851941298582014191643911068657479691248610494327974625691585407693143434083125619416253547095135667895468841684534479410105729468005815363477123201527258844926699533138385645086687812492749031372137983556880757350332140359143835312843885579760238234080850451814562584697036468357570471142533599245173317497448209766883190044999415257422275845232962542089451662487653822172204340716562957749303105738254312355791243493538693811023661615342741775555207079232935583806544103931142890331232776214640792294971080338838198506423313137203975430051868324361225966087938506347444397959315053950173309804635960220663019447337655464640876504382706996743474183694813754020389271262220069725407200972855319324014713770973399220455614102364763919752229715669371633338138834851331905345045470059389341857645772738449218393240436243849254890477435967628620219546469214048936327133288722150057675817548487101439174286215996281033375826934611320447012165700510233412572656042187994146250621272825163009085798516385822772572077867263481095004334466455380185293091006290639754523606385342311339019126469435680859549888496683617089765914956488927331094915993352523796203459517770090243265730022939556796029067234734227322472371991449896225526556019341112895271482396243020187680148145099629202371589861411292103096335491545528729187029248610126271562766859367163332865577299699724379759918494314917573839349218582553835505209820913873627655140349522681310433452442834471802467849014756324973221997710445798509462352970730769575532457442028007602072506645767216293392861603457545193066914767123180835465146635642017997189547664330419416667821323400856474974124919719688480102099717341363484488001428903450880365200246704297777634592149444340892547695974904567165550469306322823278457067709661346850500850808235555414789630651944127915831145503986574940730917739511779833224174816313663193318922439256990238928218127706189646824497480747546736391525596793346974450787033478918911522798110416961116799137827064877108158750459230260456187108120757434067208655630328594569025957304104418644630433121862802005159314964149105690105210333571761855049493008504192331742741787768471963925287137698543851284906851192808769076964845045253181086838475168271833983109666276281002864507969196654994462855150348595445465769292638024699620124307774444117776342816357664201127262951174895756189178391592488857156871360279075106854713843588081359553221716200565887727496010233204130543831376049264213095945606590831338526030414377906124136707451230500070251863395689477641501135769258336718066134238595032320496700907988382406650117475567875807554017799772990435947591388974884923671711464947469499554464938338491887921530152140168051472455817066219720764690000862868095791515270267703300395274909641258077550206136846105751113109130912208004852907452493783538192312757075996674587691646312993667414491686446623804812765920846187528714647153610469281790659277456611541735633654272737463774203460957413954011346823871080974213526549277243098138703038896167739485464292890856790867643937101050840995355084624771884111431351755580333847744878854567532225218080721108309148780382634545778689199669755297100586082317970508306661535056557244659346394080019128342943064817182177301894205139524211400110244931824535483427236005390750487143474004359174463940034614613976774766588867742140637412611880395552102016434573439864706377422321377598657390049510198955429047660867711722147903506927641457274619275040229583565580369658537695951614486398460109360749576148418399756889683321958039770769053381855168262836893629519240942655348601595728186177062908048893522116933550825603144437224549643886148937908586476268155967394581176947781022905309971879552011106895866925067394457954578562159494855202328909612649801018962123347649461324585883289627993109573495792935986495774923825341647531659817392902527381067387253652723618123755977359293824607871061467494979047348574677735264315179330704274609130548225127905516437163757221372929210711450350940824849041142209108491975591877289435913742956012798448467904684636580771218350847363044926721934899164611591991646824118569809167551741560010981989525500389759719658552515842040451196096769591724405139065576565994622348667657952768212070117815264484048845025230446859303267284778393135692067301930031602742433314334337443872780827370160964218818749533822550930751971399299329653786806103027597436433278354587101387256725860175006380883054054846689762561587337107637759108585815661321550093830505899353278662979107981363583681736391622449231858743007492030093185979341302719097132147510444896137517624155970952899367913247632670206257831815939446755803000841915209644566349075280951294502206991011317216768367801147268543357219209672168902638805129128273912252745742273588572446293206145837472030305339397929773290417182305785892273704916071122606842108960506776764680005446268386373508533706940723447430554005357826555497500698051312651359384238328887829031032750415360461378544462805796897246973355201487932880546692143821583680297075259480207058556050210629792083847525517177672805877415152938290511961292650589146576036498981619427715183899890885235289077495108299670095275659382053914221503883096160198507613068431384179707850484578007706912511961853017963829760808215870052551610510632553015242691705802972445189380524308029412142002717745603700742092832652430813240722982196607818076683211457613014441542302966299251322373370640588341682754843712484301512757450038551623571080101305002831332386776834895726133322709105548968950747326588876417287091273860098582856956102646867405413639315872036903607442142628207903940049825394538719276537284620222252604605983234176380350257461646050851015312089889507118655291786424224552223624062028220315309506482826666960739853643350399741870181639603969344062480302084617121493054554793289337985688707623705203171936163599390827133100079804566356352887742120224080544829865078284774562318951670135951405443790000190501775686791456972451187099730915908739186618900286324744331311105992724673675299211117162229107111233217286194602842142111109329275232921960044084594078088380072494363667132450167590637351247372156901190225066888332965215821044391277052184648514469221729766969702894316304169103651653842094907894525772050169594743506205243687163400874421853184617688125688062181258195239680257176746890177846768279955648370876980800113664532591294615339909529288864262347329107555428273115278127607307407152189238520044707024295580966181996189514134876107037793202094239743430297723762898892190045711114146817076100729378878017207284456799432786483236976037270871865251630843936321159212144966781742783483881638909695592676856496294485508400172865130960646335373019145861462748849599219158051633870146690360196917378722105685867170886387189019104309143338001947048099552755245321762918402643851936745128113725525108990350004532255418367174056003839204389653038802775610281469253470465670161052935910890216519468547530095544013119788252792881386540536235987844124007489883071501365318334850561628906638542532472294801632218977475108970765222663691481668402339779259085425986516531190365805593328566680888930508270319800514075491754661150377409317872506174957011547148976786084965202975917878823445301113423432436115753179433519458940122024881665720484671526731442232690176559645593161871040313235542483962297136215615945908358663911092971990254970907403033229104513848577322375822460282184757106810886814519913897101007470444976982134187150041049106627409318373616384134689228492014093262017389385285572990847073897819920874770683418550388678419940278017195338184681430853424160828198598331340636436194030652594611061632397650889763345094224008913412599959844864254662849054556563967528918389054342242555312866588308975450335217474586487870266000573985785109000632666160998872887270599357721501019072268647261246190174587962870810522621635360019248487494649022233455361545949890553013410216855940340014822218257203818906954467109274788320347057039003738190795015543782271169964755076169787852236383279153058138678289555203950501917419066032611878943079220573063792351825291985169646034041259486802206727336856966726682140349069550317614509097877958014101045467224793652343945432917867712127237027337424371746753664430059482919861809852907644944987835907221817241591820654170613935193826793091617361400217081803696866398703260199726887856943712518705675428640611288709989185905639283906341846704657524354739979182204992429498491043464276421977329756400404435625301569279534129274159039441840825804642705465967349778371384920121665044574737003663929395192830152108124646152423613342486609072001579805672476457240951980650428490299878615775117444185344951073230765902735921251133219969981669342736542554557327594558665342350239133657627510939162460187046102896444410641723614058201543873745117057560095912090008857433688671367187449048541921740550485995458761967729119509732608646586543214654491315474134324340957322052936613592220626840979302699952626869889046639225502178645412044051610708252556950092238090199491206527223054161996687265883156887350469019247018991135637204651702640397665114862789530409285042007836935249648552850180659302839897810305409807909279597375466695091211780528094765699948825677861850828524569997667656593624786470256832015159291854047045160358258101058680529791974550323838063202472941654121707245549673678564484221692962791510023366064751135595719334797596712151459527379347214396949180525615545524019124463595993094543515942026904711186979527007317084426022280177252590090805055802339453811246044721286250042831292277864994281531519063490922705188873806718224433192560834742101003919471692478495440414145336358989969459316068907801880861379557607831392515026639510096413754531661509812148807301453699282168223408214314167735273471190889420153100922301943537456516267774659333197894460208873271705088363159484114805098177846722862077494943695076999507042980368304751645419260512237387278433177601687456129938884144047867655355785953723670850280332622411117294221777931847969614022601355779635409075661459742698506658573995919924588107630301444247331130890619665058326190373390633439716601655034268247641923340103598753661052883620043916329934824165818405853214974131618554475890461641450862349966300741038920187769819223542439028933867260735735715849754093781337946458678173002139426940638324840091325452924805343401104882401459858510397315812758868529235725425219151315149046739940016620310277112197017174078575359553842854400996979087673831980539170137339029830941226439742202360693051875554469552224604162445711379629880886453231533110219602689593305598444955001593007707144763763133812408790078121740348389767223482575751938938399235860873088451428362464584067020319916776220946918996317710120762903785383549212315663360733872061396597953208879190138323228978146129368965976767290985667598226516168977993263290385715645270940510753786941195137990543656686371140545209038476396842867650613306556851020227447586726897120169691820239196829995081594562049747278786267265618499835505413092866759096964842974099562521273499403607301107015627461113593737938222609568872491824644882684815710687981177985925549302926270275204288230947819994339932384267660031072199969672389652049766522841597274844190460594595851260643701801723545448305011953484986118171556761656292934655156112026804001323722347807509502239049750162890066524384448851108098726168920489364443679917012720259766836303314223724969565165785997686866950026925411742781528327381015974194389298998454555516962901665713385146504281144324334129574348454995617613164454573815360947857756596497129595788221854795687505064218776636024591330772635505593591188445548632702129840272357513355457519678283718379862531490545813848091080650848726672407450433996015791562287243077275391330477549838563462840360913949284872416292930029749219098811115290780593332674578066153215412535439792519508693192860158188682345930029768274319065248601781957502376886536885780230948732266891430350605690169646560370785475353885460687959503682686990639412392965598380996145220115345518270532023954990270212055695641275116117873951822401357777525362298260080763328053993200291665226978737291160907214949355947827118323801325320006644379842425331249483116117952576818333498974610041783594128645845863954591903594229712634697507924091172690974812752172581275120000787557014236980153128795799808821248352993725111891661421191137213702846682738745810762511748227264282955407199604618541992712969207583997127574458253674992725151268818233141515970787503699637880698342219020619307100879272796703831831885442583797110121229315935327260802620597623007759230665786145116981368491823560625334379237015168720187258643899188060565414687333621843535719303010834579618996634952752033475432411739401067872710128239161567983462931161338902326736524049470390971127656932621078191954427630175865545634669557256373613560918921268496233360251951308478831943538923801849491416200036068014134874469578059191818981645034241503710682911206933811878198515195542457026340761994555499314153705279381364064366804462392961335955537463829506363781150952125512988138169561905376277366718440065747042684177920762812143196752317709267034791892731568474467235605328265468098043294213160980018150611396791049442680026507999176127423869382076380166415221309808046964068432981485632626591028618463961961810856185169318868274685660388527207581548686664289941474059135686010572758854150626392980592632425228016108958733535034494011264650274667313140861675903876175566448318250780030914524652650666368337181398818856631079070062212921011385895628186004715899290949472158654974056483575514730169007110340636757245086999460803851120044298933567010586863066438544851524628696422815104559003891152666221773740311109549161179540442273398109410027704001147760113534077633724331969307607971930687984576497944697962299454486760432700319036369830915337890903848335137936047352268546371964228394786952354055262568615141800610805386599115520695028401699837169051173284261116463465129393084933907851030691012864600522165751254271877239927600154105622332508348274073429641769921313250388359914307024722331389248371637847248751481221171675466718566131438984519577440082489464446649880304634285130742006645035490133407471248348046422268513010286391363558889620510098337651023595129466872253854426211674650000449409366233830322265801058637638596068487709436231591513041064892474872908606610607259696439348050803982798279432627809088363872243822531705673206379551101304450132679265279063787162990205509133958218988298598744394394009457674606126357834073181761543186803822924406674935458555452962514783041218133301272688862993739467298990933739492749109222991367541716195866478932065139254120604018023430923214127640275059360679720096638712124769475480804380105331844016647599359090944607858959179300497689854304497321806865869556178968334715559077677235222090264923400402720822843943920750214931617543034276283318277306401443906368689591624052206846389258469961532373620847512884466032855279689966244919998045928060950343203778119710949765535935383266346540876323046228545127443773461598737176244196847166752227037267239524649941671147530489300098712070819985525581664900808098902512039533862337305638417226415925819685909577573509441831546720170328619650790476488224916368077314771247458577211276928962325483782070046259892280439736211281119920496837197020724735071511080276629909783404626680381909402875742322937855713175111971336181932732022013096060710636339878244607472457630782282909088022305095998487922541818814086655450665754512702778888649779346628812584622482589828771555599034598457907815181857559206986475479494547474154741332741496159570027479339633367348362805616780170380500022190288083996502604211292923329724816213838210294956831731405125918459457106267146365003432690961122702260148431696238270889292685784536948068074063719075023274579000686247558910644023793360915840121866830878306720100030560432920938865105958476415450047840490903074089349133726265677899900130547810017630718287755919471727309185197138979704418632045483707629461310838569151361017391542683476709646725123454306391172399710720764405673547401024096806626193215229190827436192871327574844232647156156664837985356058869337061840095822457242331075695248909546347140022275330407732024678754431850950771369599191306418360499325852961987039741625453272336347180158704683152944294784982044253407094706782231313985120257559437464279807472496848882052261733725563045188451908317142707482079231435234085327260842420234008879270592583458472908512324660934466807411351287714491179754761592924485245138298186647978418124332603724236250585154467264005816711115850667054948177475311895768116248290162800982115587026050876941031734611491763147835619160915792132217161236724786377183624523440593295916059335196906524731465889554860877343843196572573775922174274705699651188048294330234160585365836044954931767808860523897890224572176674892546183202784481327821348603836581688444310981232330414361048646027956444577615938629908328342338235383564997868354163214256751149596485246014314073292729283384902856140220917880617381254839679906076986270217740082307721399694841682652527446866143755055579040932106372217810216584479329186620329486371496441023766477652549566920184398505123910003481630461076515923813877432482166837052512748738578211336660277421506601609270028930229218253728039369259649487305486592257545657147758295614105756127362175474259815362258708736255335833654044798413898906861233219007984649018958780486229413881942563630231916096924852561515079681489856911434201599437317016671752051864137540258094271382240634181654209946440002855073638897820008824468316943123355261046161779251057386715264187503492445109508080037218197337556403034407521567489385215194450080647410224286919796335812186853827705457513554665147953307744419916047800924490967089805054340544651247575670424752881744749725734476687656736444603281709248089586973938330001065521639749506039357786620892571327347678476371111974991023444697524037706485110397439939216874555016395512157917731660651502582799132173621298893482840579911660090698456631253503565810734597519555187048713184376532029893505025755291064076322313080794136725794605387707359384804919611724925784688555908738710553577728177080774275455879393217326264405777667071479828738315571515805102239960977239321390288587324421059905065192853321958514718527145787329672007353635031236497112213739173176738686885948670288129089204948539056719471979515797592495022406008789862502784226799004267771903606404719116692267051170880243660068351485649915721965569737203290428211241130220252397609000858821741001239722425436832069431673754665592431313919358123892240441622549707200494350554879438390857284650058378247358761371743089070685632442683813692520771688328957181582087463744929590650207511204786686513873610223800893430404602816964176401150007378019300675941398958500184621498810269515408110245345978447758120993118648574779703869621534667501220612945160131973579980283536963445943163653976990485990177947209954900738864176829146552325281199222112626289593188394740250466304979608861114810625093746681558251893566478712328285910666843040595042440272268884310232729263643265178164249247309690090621132145557322602378854510413250307890447928561598623096835610206345971368391837963708014650942243437234057828966490767733161765153843735579636995143918516826184460110463110774419574346430531157494908660205352375799366079145859525452081563766270597277082457923845357087125836381937212804779381262528420135187695443031196163115483518121689008098962855691274473424390972734794035888702985526159051597045462884158196049271162473897594101475270396983865413743712045673273896807816752525243316597154831535230465158117285574160513274123263041634489540965020513814161560215103878135211248361255181807858875355110291385326531301954100952832276483816314762849510478622426496720795943345249175711280302776637522906935378361246579363720996790947308297069091449485760367129910739478864377367592719468970639310963330904687035591820571599014062999747638543224266120799828964845991547283038124428732346338692876741408266032278881301512093871404147661259692983947042114730798256521722563378734225664105396156999340367299995182792968483304872633939727094572802903298325257339054986945162617532176894721034443261026639947940668409555144465139280521145813460727899153547088956341722798557224275533820471057113942282951328895181896950683708412292265615612822831598634362581896538401383059421085326065923259942032440187462508757133652860422388209680307544296060217391439425045789603066072002242608604154487584575975943248825179715671198002821529542356127206838964089464797484745520621343403716201458577228912695842935475576996593460622061399868846168878580303566564987707515310580061861721157846084341545502916258278573199160294790422703101664551576162238817292769165472300541519757938231642100804015579444505582312032474214930658617262143325465427327145686176496779814559544140914568843848340841135813498058862582011227033933591320135520213101515044905024773611663824995056773444179658075893370742489667465645842017286651299598133514309052721521467800664772788430488764914348924695883856597060345415006914941509971820185648380936540657081643324491196019663480988414662630095204025556253842423604867649008472405163894509878075285979510376490717905306453059547489693670235328818159752271115115054479053551308539187143642611126356399191304368810125156254944204423308125205860851732275835000323971611683546997260111137754752786086243867359188714676704938436224709927669244640559504060745007785868220378115929744227968759243485419731251176522223373895349088656645594259814579092024098497593179313598656241004611462721988630534390937718164512293807864563016943222256110800393854434859225181934212910303758057776599627710580740475866901925488489232179313795628644123069698204745175597639543100376400244202980767979735219197685390346124115766763232996438301642108662719939039997884856004202622851996051501063038075830106956050558301326013705124912963684109898659327242207843578777804053713505269747748110027870930253265251645345568742838277856288957968525234299844809238461662958408968729708143447691379812472743442258788242568118055847682195989719703867629132298979452928197082446444653096645620124931540859895691409322444639043497331522896852007680570631025751577386830063999309288988514630310859518272425097543038587104969913084319814955766959651563224295233040825951443018102299377966104745644830668964806801619616459273118363395940694831190566277588770278314165127251271763010758090459395180507379549924619609933374842309429229742255811681756092636489101711121121773129578450335026099841731148634882124366372147981541218391599565150270316162218591579340329112273084274659745140223440773864324200949887520827784161493410050117725244707470460179691711685186050351812333358757740681926182914201496307517374426729117193432044883607792418170728347439419722984626001994015258435792559753976737561843171497182547659305420090072247094799914996041171731782311596498038251907579412642975592827058761376786685440207268750108638301956000142049778123954951230287149775608151581745897577653350443522795739730821858366511057184215479095513420913507501507904726392427661004494252415297064948013309720496872535721942956925039812570379784775659127546143359192796695537921710947763593297723758235322071283801710128728723383227606750039711348595325931416697695094475307634993966547963371649028500592757833445683966550192105669683801070658860592533848016416303706613461701079239660107974230289960077008925456032774669228296729203323609361645573588609231744244234328123536166357856583019534810944157918610639791815634121161292947820841746761226884656389184556386467708573219286986762609312414093635663507694096056568824419339935240296113449390054243199226135706441059006418840461045230444793942072545041500698370756538935640766856347482953185585696412813434027050335148289007612054468553457232863142544059799759522091383155455454778353701785417464510152904341392823796925000173428464974553868291093780935929897761674599734459600713569412313357343757899093797583621998788866350254458486528534387768739523656149964252482783872976323855833283497572551686423859275293647201914487044115316494739393651429549322045540030205398161018137203096131867281045732383892392738492510067066203655248198519522842414477059274500375974676706878562155927139434810464009868020652687619273773607865830655425955986996765936531466163303538598240379901047884693449180253750016412695700756386983226722518312480690101308157931764102202032751268735398157911844405036395945468500956745068927918120160192286101252570499557348449443883511261871398088768803571528071098336621817916570824736269810143641555068919648118147493930376190643807425287293944564382507251317733905322341827234059489259065573625353689146304680509926705971763109779610699183933460205160386946217444828098991936095820740375522355263327433740046010201727433733644037762524914982003180365502484013947465249585308480402005769478809929381933548620857848053414307787067976956024530545740238062485998744607236222491708999729436912031975396557136950758830818500230307934612973965180647111433660143388586673031176439403715349803890009234972244587120779618891666851839202441963623954315511923295050233632486471083015365592575405044932491701600484038407583947908540132145935123764795421104108168861965929345267201216448496964316710460313070174135937795771902781337568979500303678083131265818263522806690607367260582442050574523175464299578004061776849835517564412306624770179852569363778628683190867692953882365253434519387438923169066858998927647899967697356009233497643067992461699849335396512991390756039641564595829973725374986073921969296295238508893315775417188416029194858801803969405795324287608854292736874915760742840550202498512383750093779972545558358473819436853392728601164535471480576294695282482650361446227416904443798768722595928239797908878156480183819006741489338470891281963154311357826731504057466120878761287363182842365069877376905351578191481556619573366683263873006294578145878395663839998547570124410057017615071863511679607650327071480691521896488951386753663589468827310150647868765407464113212136399206549885791670978165398852332481426793476485550190463245220688263614554142427934426339794575754256921585640189141882382007729343640795904325689976871528154328281616640580722197356992643790399211129451767593825651532290572110410100587414427989066016199734937713580447456206471493074204743704593866213684733400847977961297927619383106822419885496269333256372014446162459128209803811583569626222557068585443308701771671635736134093390758975467975334530018355821745458425744402733413908656536883258272421848366208579466466622990157936236175304637510055438488916460164971339858024534642793944196215806920252756288041126420049343286930161512204674258730714218300942584458628092538174765390061414967681794312793775591138893232885269212837155586150897030226479973529690050621531888499934928679919418866552146984740081998724670467320124971253725496750616805941930796800674779649805686973764859560602341354832986807908532329531434495853682095031507239467671394877423224101095997191656593552276379598823753273618733579640139409501268697293515230773125336085820838758231425622710851436295999787442153869318824836507546246544941564998334513425776364501078832086177203904804125062862234598112821479181235998589695008183688630943681827778510868216269793982454204203622651506903494922979412006980301079089515999435199046078390170321485733121179169177315694062937491056292317250939230352300268461514308700881593774815299468066623668026184325793491190718011488192650595686985908446193850581600617209480794461272365241103763724746129523036871419801598193872742695160975219208410107661900240042431578041833143049530077173361078004762094433376862697218899885814323294920816048061131665733470502256763668855054302534608121632389769257006960940116487967789156289370184174884717787608225426469116320421621054418913214894094773912966828496517231341336294169789069712164082089517711038986084311192966542476054869191145283592277203362273674842658370465737610978503777903279578421976567014176587304852838630745996766487694770157784095608078238315623459607604367022650730582915050295677361446820895742043205419623249988196336601189520775291257120656958784541598413680090385607526869029989788950833239038187062367275331755073458129152637843798077146047867504401614272675222069117677230206184982779161983682349710822773473469025529027380123990418630845307485730287678476934429186243539023615099787425869745828657550198171161039233306035282884964769447207779205720428769372895343999698389758624011042729082457102122394592766478529947274368462152753011253721796147604606367352079912650034584041016115954278148402973329202088347180850620076428459360142216507131622380434953877466206421524987085624324299575603842220232582910455976411485824262255161798564764733518950632241396484064782610100899290658460074894894823292222981518618762799722720557242518570326665353163763386204399605365905022443593238469961014502892866332048583681492170177562087458022244883765947544009684155150673670490292355866114003262686674073593484874763909650352291772380493947043541277390141527060432277815708367599257831739797808242904211114781979285727950664133237904012559294671879318303378505611839405923094227274981093885486480998223654880244228797369745444389865537491375812900556585673959310457046924317802403345578341044163032660531943479761114985270905283163154607028689455428342776214731514051407381821126403501140240656575824790332834265929987988459023180729385829824618955797657934398241205750681309898247339670962748539887092061952983721446844134637914071362159717947363122586540121353655295943740083958987335878340833479796400783799638355522896452143034050940108916864833163572155604141753002759704810471955195017163130469964246534135380398784348556486016400098236158966937235766375505084839412499655004890553244383737782691281743883151820102027674224216884038479408906922593145614539426310664976120048971857328010814387119341996759213017610532247398968704327346615155058996213062521774329490865878792023624422954806793310459767838321499035537941714668389779293284328771214762054436597326737485414058652482392449386869366319999588567830462709725658400383904834763562742760573631470468118051357626881488537385084369801904069874581268595693138402517914048236541336091584773041551718440163652389446678636976665185604613047820159344788017653591269112783221770054300863601464732536331776380263685443475440572456831692986758422645299537420387133620028907282245800256481539862505324647892684967239048815865736270413300314250986401602105109480058370291134838612011074906949294005361320203708765843495468310814751460446035681451052090648900254037623558092051304309054474457763901569059465675972453680602686718470465573832794389846162718408645085453522402785375968700562799513435499985558420513901036823425037146183168574865972028833120518240057228891865919846627383986135066369805387316503666870767668203008437495975604248838927377681768936594558295718599794195643455236218386426410402515760100620768057030616048894249645100871475813052588741255691669381046003935941584393811910509011051251417804668172900179830857874064768229569557480590554397513371273813685562285756625741156712350858483235183513454177343752299039933871020702866599174714423933191507176312358175068960133593364176232540603406367037422591220226005884315294844932077584547897356390730631789944783517712052148667020473542280705060193137789473032814010574585099202001640319825929407812377327217796288328980946229636187178438402543040853354342878185495358918590341653526902799174656709344983738059341017663402594152862199756572317368843835034231908210748686878765770132497731879059238422759634171211237493620629630468604247361557427279047944289414202352406179859708929063645116127430915693275204559012869057380088440011552881481156151597841152848001181690665555895052054123310008024486489398544875525473461255979688972304891383306450299389976127791768029037257167267946387879476440141732312683981174480712711907125298890155933886136171729966520981263562460786238104588353243069838574702217332170005951115210704462051604218279286254046673811408729307520600866570931455965027132414359026609110422561414419159477031650408019388397257823508302993255345487516704571324803035170531514427073890734763592720846671244976827755828234612501321445474876963778441113613151298855884640461625159781328912448871063820335569648246878516643630660708700695298392434831861351750684864686208307599213964039094758610514844221021081359317557678643677860223434838577548440339708517859526828163967689013956153599014726664142854091241067311183689236362819296722051362383254317096784314270007597870003540585964720154071531646603778359911239180573487039775535401888746480412937945308155408642925459008363107514587806002525194320637523968719188752069022640954032631454541954459602333257465158449845596495281105483946694792376028050619038856697614829098716316926199977587111934346829170510045347224218450757291051458531934810929164681818136162566497440215631493877812189130159937914224477843418384146712909089868950713477789891069264499130505793016966344316916727005466160206662529683706827942173893675749132273197015076675932752758221975557478399246862677835718337062689447941140417033153018585399005758302246633813240349866733976158267234072886100267091111611675510117325708595981638095046888515849414298557610661121205461466081023418870609958380199606475094702732802018123231094875817402885004534119571082702934336077305869377803537795831774177049856243891686279963827993225424540318265706647035672814206827262499883027982659875775700067879635981164657293944381278137856344543383202711118338199503243112491354871604884673811406922786840452914676897754309360249453823837220449893604892416657386187571461385563688407936140906224823905235948379400899162349919962482930083916593785683407726505727086751497512124395981216145118143188829284214822274007334801630186213814497834706655714492076598218983380017605557080868479803298154334901773050241953907297292645118970915076923007930531806903995670887570753712485818301511861709151950810548832582285921615092151455880551191539140631366477166176960653355707290917085009486823843553066944767323546969681516216250517371500828432467989470246112283034702097190291550575890513232035119420857835808860552683118306372540785536745002120381833910291565494682572223157143293500745304418181172106164100904286556627860944792898363943113474989934935532089839445510215295291404918978148554702305082411501490264592261127461225129153235813061531423456062664348472121436524543337010306839383513539092492974585250094211404162182294471659214800328746300619214011884091575636759736813900645559439946985889177908201277161252924781633583581293861445284289443437563053957528101916585326287939301288643091397019379170717870644574167680638669706408069549319111552745901787214088270365398227342918911317371560443049883538831573526140475963725825307981737320841813416089093009738658917505705813957267428028900034901224930479747493350144251070727221008544097442845871766604030323508580740545456065134940029389703284659803679457418616372860820279233459521509376186280333929269999665329241170046332954235452512609282940550588487922422254313909602604367615618620387565765549269876801699638436980197819707064957659557098888205876416020627160863202690390530032437687896021076272397422012040861985284595618018553737763590941602125273647088024282533514179791214305781057265153643611020442681599899186588659062662483407952316898734608959478816800606837804112178703987877821147592721370039775067064107559409961406416119760037973186124982599466578513003607053321652423986707410503117561007269583159434164649830376639664210479139237503069976300232929114990175099051352609803002237997262780448402656694283128789977840502470540145538223156852083280616269535391153255619653143399780125865607426500528235679762268375944328943257172014063098898641505570015415229927315652283296608591269219786294686017848187752053096857234281474685541740237375550871889780714721243022643650964352330316794705592706036245899357285282459352019453229433923161910882123352323206263376275975275742602003103806948163320158218680481273067162165954177523991688339932598617438529076751697752509731363756613370303630986595268359779282000416918455980381472089949990147884252497720096930698141810865951548181090266478788434412396783783087270203371577487167830865979675812010609009538626196531941005957539364614458788897887102958665653722584195278285987622030084035636889452374677897429812407786065387796755292031369829937616397709907410410861963092646527458417493512207773195775732304419127746559056724306047452694613673209747301674146001381380250478625842601480278060284290457760970297945399419040040023742759210522110469746693640957828599514107087277313157084181464955162814437390751297077469852435863626399252049959752721119312265888316499284635912066966259645511825501518199157233138378671247655166228482188463018314802849565130569355768337205668526536397554935926098429446912918788683940391561202005687707028414971615167457574217487672264441982139715604594752249961029397974334261474614019465147619293988011605954674888901279408579643167550148516822262176118127582797896255101698037180007734981475400210004056630960803030227468453556151268859860143267285918097029796654846830430471231324352253144591067338849311793331590453301473172765127723839665438001325002388084568531307597144222515363134205494283827377126544406769233053668573333938038875546621188811087438799038850548932279013562747718217118865942398895957320299537355736652837430602060409316814051045474366704612654142955658388323134798241352237320418041123057186076674005304711818433419229079106886800613394853910643569743226439262372316369687337253787187474388921161545631768357134415140809719579809681065907031982683409142195091598391473844434325156282993157327591890845369228112222774202039886327137429996358461560959309319942472039638887806713736823385645339932723248096706816848828781346902534173140116850784302397261963615199976420086221180405281370173543089873972082304290618828437470892039399931674661867003122558682231684051535602301130485540485665212732972784578084071510695028238994635672017073280979727597278926514431373131415281363400731990157646675815627461527853794488542321424909689996676723305586689802583573346104803887272127209885207264420939079530021223281412101066304331474818329185850288833888122850608466599597590857219896053363385269165900566748898498538581142611549533916796662364047956157959849192757398550194603533330509576978787149985771068744132299123971513125695803141324185692731018259349180679928118325141669890692959265096079017328746098290165950186529196523683471471551350911390468095987373252584948326483360681224611666550138823381982337419239958242279641607034326740482549981405636912905487435363249373883460570827968880404606742474225760543351599973905391823789890223890069530165495227328643221243442704942219476507500291495248605036937198725332477108147183470414693626606688918498293307661255329334977464597220815550901687279671003560439182237062464937166355673861858740416507062920117217257488269132342344800912551407096333031019738675735900930034212412119197117195937156728044202774018342855963809690087342570419510005218683799982701856486781916785210809908899845083120768553618194309093511613158401793708957522264573250880253461024862470169342244001195353223279586715138398609345033502332823871212269294055585575929116562918967860096567014258828824170328236657328165611060748504342233358141942462508618862204927957113740172773296217718325697719809801474889397055043608774159919302372633196031934802052339519296069509482853118245764144442985207785820678328341576026657714106378303280508642518515692175106450726390148268794000502606507756344210833662573647829614277407851468836408503113034101312519736452162093905305320771210910572979076622767886316438023762031783423002593965679604933658215289490986879574443058727239368033146206934618911904837393824069761129659131992216190560589401981900682645879432161116248014794731632195083492308820268084001547093377951577007701524411569243140437610309677766954563021230071293345206472783865226054150947158976798115572779240044792204011047174524151241451274849887385677615318574378948477917718111172137565847759454873165732537232178643653246435533469447111384434110545195632114384627837241622170074709412450317058411779631809728503233237353963079623316713447660542626842558381718920153131152579814207041975375027464783507937169141485552308366428181358671740916639403245032742267917248849738794498896017207478668526146315539291501618081971370692984313848936296292610060025213403140572715425909137474397219668963516669442573631008772940328334808877614194393747566546529031292510786647486470423659825124029682064299094825388627356187578958981393861319889593867232897348094687502546308476766467059454746830352028048867215649138801542092526598351178259618719642211269525624259337455964851196708075371330588168614217722318715395855203397620665917560034686682854142025005405807296401685582489831533032820644814308455458653999707353041779230606852860085349507088426282051429896465291859567197660427828154185470342751435203189678669780683967975599885617190084293412781008130673387187186245317734767923382621418608286599016470677928897385406938416629544009854285633546251740064225297135338764481982772296600804028129869653242642343717157127679631184062034316796648219497404139251206170527565548251440740677362460698836049306514725632808475370209141642736965465855605883219069229016720947196885114084963578067453129418586311272566589365779867212897607739644580837043075711394274898063762819049621569419473128449981561836538691382529217064847283150510608036966567658472440099243207931683108611330437630863160614440140542492482553869553155526394693229671979300741633840450067311882287797641915871901152134533700215421198331628432892034677775300587658593605915432962938187332413606325350555365807016631816680376503945000059590440315260101405963186021120335901154557745447894758516262384730819590845260579243877939234758566773631444976793395770623878856007362097436022825706383600611854571754454517753353162682307035289936729831234544091491595743862325619204162172807832790808858220648078812949137271260700543766720521471252862012682716998321929745510271215778623477649601253226646235254648851644718976535502477961586003656156333491515973346223782582169827674470459315240985943499544048758017314857646488792278250813335604500557134277562712602939847174064760966091510008739087319615668428443307241425831049439446199434083650631412412112750230205458870762363423026417072011868337997361774654775926095683180698607028522801645832847138091749337236658837468167283662707497539696626104872062901999552782983655424324422010039940791282988443214255775603398788263378911596038682069688410164011955709455700680841941508947383696768466627363897022331546610588807264409902124705410834173071589351353763907226549602188656399944947866524359943302792991961540742859616082545523596727596247080260532790023337076515011844257050209878631259417727516776871511598522116087170797428458722405907381142650837578917816626002570848222004532617325103368942084148381423462069413106294158057916881385697737961727903949624495579768733542130572410208063588457297802228571183210881204915993981034775444176559684402256983217010448834332307189975425763296931468574322335141434856415280868931681247182297031859047967572884291728648192893565321578423545082408725234477711838711140631900442447965623722352901296889732052515094007972510034024443120407531220397492925396427064967180338325915762985365691445513989098752456582323208291272629027544330089719944276765099037614718065942977068131651731590894998872337211621230147755657494183021452196399185086429147495187836195113013590820300805569473607891729382900308675301387000699220189105281583100780816839983612800082872463709429933175361579369409354598025177790910909008038483994437580084748319041526171188393341500092520081803792984575276471814736339891065315369073970072875593090540956617463667588290047934661283731175832456410374549953994733232666024360081576457757318327641162506389331174167332303271184113743815002804853886412530049633031463041948468196291605825566984236893029064993020200916662372783861130246140610422319795609398364636991509146733042089117236003771884214659062534205023721346950565057728463231320582958647333478744065657231161251963350198367860493342674218045381808126225204095783469090022863471545389621468765538182745542989131094559322855721590449051008026094650518110548594136447699815581339553965061983827098353014616068059993028118267286787823733944586770970083342854561454167739139863695223062976216476407352145026253128116618284969663155501248534436268889831665294797720548548787581597653291258552549686770290722664306165111332130993214419351513371699176768635981274800784798364655412297061789443954213931327231175687888947339820464152744967117852221131037846905689395439941785255527484127172900262048036958444581078976997673666634481172299486866457712376385198940517264077553146033019389321959158542506434203459790687988155402720373110555119837119890601490473080162802664163514178607681648540800293435336390880636645113785459507011446937115624400731526061481569704767215265979096351989464373177900497832095694447111943612373819854993114845533607149174304408735949618346457168560074063612703822138630850910433928453847126576843794491247404736588379731544880968491185745615641735368117054500757180794655102668965027061743119489562821162637492129961089654666611929676214618693571161150559190880015411839676447448386294538324176251536193026949758383049044552504963682136828620732861526314282491473025851902162416509261520768100075102727381474183033463800678951334867227107277220237291844041390940653208447685901744859814650426701931378381791503918550696894356921363611414268987461891394789655393459205719127627423499849816750110008314615710003938017456620180633444608394465065768881720789767530479954433672920718404056116493767964077087804690089551483274908985358603446573867261452951784241018914184450549508674106622515613494370743084807846999285629784616246702066368001282561872395619544587545650797292731177971799709260760359474627141355530846670462344170009134795870836761100412479694995666206175643910436545157196470524502577864259245575454051263394709642114415605851809294874581149528340644585386023028302401409971883523449271219062275502216297206437318798950286746159361699777227815896152206103522793608891156790705638001255416019216453615877850032862663161554943919852424200827525041909849081261669443163909611442866509980477669625498112933569747212832542349974606100891441653416655293730421573641804233414815106189980769988942314171003871862585994064137585224107968013137912464171289533873516924838396493791345316109985501888251034794552385254538316176290403484077524077051296391590412898984700470373197949562299435608335295317098405708029218287083065804635310580499857082171405742600692802340892941200952989712930736720274932150776331811043276589878492684550654765610485323205512125460274807070851640284385655051529402453441061333043150648037534260128525335857725902149187658898451521505490355720303841494889573717943793160212274250214116147113533852564436751120115056151534969614020876438152778947111755598872122413491486075752280610767890855927293796526551845054693684127636130116882481975997908389647484675670853561652097302403255444674783252145621963810497798424122375863587669739148900511373786151168536833937802271168861723686513994985382810850992413820979192455347457954567750719114170841287212057230174755183588179284373461804507983034977277343468395457486716589895506793249323127278558657001249128983075316107647435002699636863557039860596899306185228000281432653563547034584217804775294484048296687148750419238137331069288495151755281695823192799942079502645956509880187665300189319745614132027568450806222806348976582002473275823218739235114587537748259246472920833841553371105626634678752466272497654312331482629938027670061034271470706595588258895065275038301968921916073212075268671620407378435529204668286315151990914040702449416788255439079295270908953753795512222354726400239631895745654971622384488213367062989420182220939890570807087737226630933482805740888261068636553841655501498289455287537406693140055207560312726007293651146889732218988988216360576871942052752612369272988221534408326282142686833692381179587444079959943284528779716284868608602675352479205941392469216905020726900861732109462444196553096528768933629580741972526356990550347765471176271448831565009254150118392020362042809977819725210701934315095411091261279224757674186315839063283819230609411091068417828525176272086097257567457029822489710527660380857042991723393051527256675307817763071583148720768178932265853076207680331420989625366921296086418698953686865842336764843860446164426275872830925690883791985380268107503461689412836059426640369950298666269314312085343598789565127528640125305973384325524007210606151514598745126361484565409338217694154148227147480988407589249896379411068470832019396072898564988433175526173016683622109995229755890673474401880758404618017736353621622170408288797621187904299760015866966106269424927206455147463322544072952887745503150780190758613943342378079900996896963166305956173759605890259998052727940777171478972300900588401901232911723472093514660056485320085808975370624063266563383985273654607946543888132422136146666464829846220839934553487496490512776753671130145608637044192372596009942228499029908895546187623353412112658293441470439659090383465485072537743423152706214670510468367760480543283889873516487356276645733784681136973934721235485369726139721951795304334553827211605731319127059050552186125693566448338536297215454151699955060299112478122345134118640884726750420509021754316112876053761586911598479097806700180643057751084124775926443987456331178110876405579382401384026896669786891442564981842905287339974479479870546207628793673077605309864943633201902909349747797316012622203057393445114854193952948563373686301899622438761850250251837621742572425536204146969472406548533335011572133955960796862202665955117736876946490462376074257674175837863520402995709174063436392402834016618193306993704325257635176015786783590279234685285467967646270853686225149992381253640314273679761175614791765978466224029095099987543691215620797010357400214520292132230871977480181589295314848511322598748257845828188171656493277498935298019464187416420820962857543822384157203641074484027117790135643792645800862742207854933777284254753249639452350970717379906997429186300578903901625381334497768665287743630696331266867379374918090891715497953503617001259436180700712642334054496397095758445714492053305393020605741449603156955078626119938013861732043265340141685056083683222873517598281066827273466512924770349172808794543152109354909338916351623164368053229972356539335588039944086118810390536893750691372052989848201340296548361095545917746562497199615158731593365680894396662591903388212475050918573854161636363796220120305530017155237598486804416447983949012905935455654268769631718275231606810789874311851896353489534817493431135165703908822401416266424302500238195695775947138347074133954555082209329552025717548078658182557218118666776441058025932274345042235898093709612629786882798553106459890786259890579624116425608639658755191366088546340147519361961111080014158223476348260493512420738288578552341364759145137942336082482251110006261517219920919848165763755742937582681128229822326958992260404261146457856563148085737430532845051806875352151498075656250002835441796100142240830577175603704722091657715216170740298495815887255749038527896675474380635636743207965286424551656592515538896114155433710636523748733990937476300235156826671097206010519643164829964845854403495849438339742365528041351376811002655346394620527502997895783702872679241632178058106127840230986224372832855289767718936439745305396549020567290849874858897253008865159790680936099763292605174121035088969842492686633409458023696110087813685289647093700582567179091302065645342665799441660205662590489047047096691317385146210979770524690994380763217014807110492525926085966770341852948642449592023164845670195967060619457832374433287776484982906960638997863245904601999774945935421608678724744141665563212303668205864727446514867381090505167905432529906380830470846748906692411294281619822297163005224264060654130319535105456435014901740671013128421062806686108931584061714390762692213936464239533098277841807760422449903950349236028737822012130789842824978944257946130682847129032261325692663141823206394477123047517707301616198369117617365863904071281227012333171477090828868454967399163087202666225815662167260071039079481932343317563140346828545069840688528730792593994315065074164522687824701846604605400447394620243770997593198895411918456767871444108376475143200193902139772163641338575927544488897976796334856622475183067667268272681782462544273791683987490019925761079136084931086046267140917600265341420312701145098898662387004624413961388336113083039624727663924105677551234906382127306656300556347081164609726999022416869054531304943225027941883790511375429885653224341833482949187729989642519083902299594772611626726221761777773694219117061719759348248832887409726667806096925469077062432605696520328390659400814677909109320519620461120438375452869107525363883446975747150568333174685394639010638122318325969574197266940049819821546574713963079285898553317568682855339989833994842574395074886692713389994896360881004128197850194175825911983226715851351747583472176666421320007145360089815839706458797938790810033382577812990639407111420135958509415636197603416707413971437378718523113323811728047483060101349548717904431499611847464345070805714158233099471758925527635424517714729106913196988095922861947791079975417905142068145078601858952033486412354014938645092471665304865450149353900826741602173101753453626410988645942225869254875542758814064101426321796622569070023381623524825489141906181350963591469592944747151209931485564537604443685120330086153574505559632356541607999481075146679101827664124873818073573338834559607718653601649303849185383399641698398177908601187739963815527870299598066599123224178408874239710711982198486636931015385836411387490370618953098940657022271536970312140921104380001168221336634099276261437027062691398181039396720962639997253020174242038031077083296219539156484532133683887828721720482498798087950255745723826489544275730512401333191400083360660976155175681754321700307226733819796701188318505427310616480807192512145926171238821017854224186210323083209486686905209507230430859188890107317919528272759004032459635079337627563232204252106626118125676416088021897502489930492079079518495195511592270974016512198711235500050921989424307801780141224912790592301794482532538430626817943270833307949760581356563831952582859010833964996592593351220345290018409018011681446514326954418459621848353180322818688896617562460955436699934375687745615899820205746476571875254608445838782336061466965801541983475811646418302306960719374382057712893819414082342434702044230532023837534734592007594119959823407468779844525054699828948708222923451532421371794351618481891650330852881683008623888296040999763470465713854020170601537459967792941819601915515202185405382186459792105665649250481370159596001706199532630897438256423864740761836976495965642193725974513892595323919246477235469645357749092803509078840920540889100608845532385937680624853678817709531918660053938967641377730750841264006013004183473157400225341937259451607925983978841544295415776018128882396682307919909137400674893390304985949939020954583142502768334369098269648619493273591725932715773739167624205328847824183575000734193369784312148138091305435354157892263819821894748639825329854096160929932545985109797771720539732500048031802314731902536924022114637679648758748985571404543658297864813218472213673246073831932512034664765835958467813064908440826340775519934660801633910903868231219149669983152817737770731684500923519391924116547493763463792337311933966427805945066627433720837115464770374146504665711237181724012423749933116967249263603705324514665981839598549467020168393260079964128001917981219002836754827660927329927569572964388652870920515467393560901208868233589731394846165960170491787785881690724943542654502427278842474294743265868635933351557011262128154346248427429870045241329328001574109488598853079055915870974163770745025658973127314948126572479598195574739699089830389759035668360962990533704744805218202264916873429395230224860091910599995375611830404451494948530958709392268262287998340427371009962917379963310910518922706540027774015100600768734176483179695258680506114013783322588338016075846501855708213804105582467487528559249772505441402350466495541357845631592294957073061534362322149024659911320619255291092245493352703026647065253994689954145641714533127408091961030165907691785473196440120253002666129434390371233156127064392896298978884642194070996265035221751186382259762305911328592162943733028007733873370902526272246919846178847686321597607663424838739085269510485022568894347423670218354227855903950869925006669449904158805233063784531253966156804647671634436875709118263755516653608999814346495544398495784234553466834279951419052268691846102287504607053075867660259362807256818797196399192689470181431406905290358180164010410159808704026831544058987629643246770884786760040840679031793037938195735094497638676198817530198636832149904766104766817845559273418680459072581465549913145637414886500304220581686128007861334588605637288229134510910824501097003330976667095848588971134487144761167303436950838412629279826434795023189853490577558040165165799524393349190386628669470775837256702492553921170805959779929462756471120345979934841546793188892565514678156106231440312688771195855190237483933571754190863389079025145615561757764561608355007535964153963358365934139878094740386385164554902301211711360431342991641198677680972882718516625612991055348370723100351836665277895814596699733424249604479307746426952474072034002357872731729517055921757288425069445833225182840168083435496614137661518509838710035269910153191096898886510184547840087240433837777129918583541184666230328030102376281136300586742640081459922503699142680858404226561038839778714354956422127318888183786590393413226792860308041253582292638185266391609668362107898155750142547356720054461869826335018523569695704752940954973593848452503625334555252279704733769285631843405844372449449470159231802554406320640990217998461827270639205066409144702480699948725172474812220567699430502764429393291963393591753796429787205134713577273758492937568279020051016299798139748137098676617458230224227691926520723709425030998344734760230593346576816133592768939398344078176719478741241033461973631527225508929187359426257066356082230019374584021369299286649021823712748516539503096222962261783732544470929323172706696306250172103154914289680354335230994803088661226578174537504125186312716134384029367652211047259494528803026647813066390222054923766622531765179245533309589146679376176497175130679257011056431876289200967604328837307478666892868236542202915737974459544848362421344016146187743602998170900595240512247254152796168662788328833051577761140568520816489541466687456472382301288505291604779062018490182043541128135204213703251612919215699732270964913900616660011235326651310702988547455111350079403605712913054041118237112868747331529600432754079810608466971104294392159026365032702181059313498415862538409641590556463612323668935320289988069699528178437198113974762812033439863001998738427210924333578247325894652641988794411204133063859418686513443656455423681833530427888603118685120786343405477960606275941172298060722794130140144014511198031408945644378191208974214436920930709223831528559735116270636078529960471776555223977134991801708959393759741035525806485672933275505517653323438281205123537159955471466567867697458005369798171504521790958986904405399315003750413725067307411166867282941787512770566155509343386423511425174771380912186515570370460226027407999939495511298075527493434419605446129559191448857975362852782947236633651242050042447624153257620775664105391328095126279890368380350501439777507043556995838378256796858702954569680797428051983537106326433733013398506821571968366746224258153364576950316108588733640731667896216892437189754539745680177858392335190623461842530763830792027452803995664092893309903142139440371211654302102398803144654531142338244892308419682031355977960679725396950044264039740802821888966341986310606686548630145522456750084931799140225221658081364008000943634475956228287069921323251643760793713853942572040580379766882981496054687777988909566837274191891118670297447346094770452277804287235465704704293878363628954917902800216790891163808983273847371334833699098965300083371581981419101606334038314690093647868345559611237098889739633269819520244902524092401811669788294654893841936812710298808159815649605148689693196513799952786113572799745969632495261182606756552640858628547306263588763773614871469381091955437626040290443089724319700255162798728237775741330784091843593306570056310024346155657018011734337204027315042317968790422693884735551622199645577863799816053431217314382812671552667960807006751943353165725796980871501495840499157539204240843295401009250335940926667462579782653435161537884350197869742446567615614571402517689232790032696545284552171755141779837023453049997948629427476968181964875859067109630890856430880644174189250304753347954611986161171650404347430276477575469726629964537738171381532797958584222816189927297749244549812368894344029742196549254423256326958824869022444795759266491105302062908582015293218682948450190046370190577431142775140210959295292122982110958287275896768017441896228295110387719200081530292291443068124463153049421412578335110716606576041550538399247932482177459212092715192351464887607537324087010077126942243845541565803131042298866776536584239425625668325791363077640004869390466438296425063540060682343078400562744917020307062337212472394332503913691700754252731963827294301595517691357719242478521318637923132924930428742051210877403315151399223595856209133162404797254096025241372042995024889513363302347771346208956651601779542053488165948949941035353527151019675555654198700924320091333421693178213388309038582125350865704591080034511263343846069808168343006460639620723195914067556463571409374142553478597026913482641543061842034446342218049637222418229598713120629256650093395157646497310735680222651465527396902856712798075809403311408302595869729777237407347714757713627288097341574140934045069395424001664027208223763811028605736479423667259349174106864599900590546513160069112930166577252973029257124596142606431306231443153323124143707982088007847466838686694909805361290758620594244365858327095495283275944908595624432726865287217665322869080892105068216869616802557583123298955845511766041205073190058927879974900740288122351640471457696112944848478356054336387149618359645095994890663287386816921401803838326242521707510022724205070372119042018687541485701018762178263400861459774440627818276141863782752328005126631740967035195545510192873921800615785858826593393881630676140937350407131297612358783080214510452501495880367667189990825104593170962781422107235616809542489963229192798254479353211505330944378984867892752337963634026071639814428918992747843917966861123170642457094791181481215199738666470649671071447689750726216210641449285371073110457265552591874967801620580317271130455138116332449573705889653620361462698473360768422329661198289468148705356481202026710745558170180197101412715419680080695347987533917793953522191915435138296467019795981734431462832343262947739907099689002893745928121127999437367220107688068780834984236281531689482618766278834463127542687048355110173957156881804896063700930343359192568443197910966298901071670536541774832332446741871040673555089765115378677401002587057344606763012726467672251162192922390951839081529036234123526657467252434649337725614241569336957696568071743207834062098573877549229573770126875511982974897537275079511981354507964930534484962550379878093903800202977710292520311888973557065321908794681249538218399378908037720569533368501283243655221786790975509695656312104561600347968220971329146153684948098417750614726638578948773511717879500526179455733825457372520512858372956345499020902182908362191206356863006263691803956589530475064476880976817525030228480413057249103727110854698565973865410816070834719599003457061708684397720210680174270708625315277074133134147420135695933472009625102990130870011987359217846811538643737593126316658297849921176761103885299379541885008349729243061528452492370394038129058669299887744811438474066973258413662918812304814469280642102316607457635889523882234390855511268332931697876023933359981210581738147162129342641378606177471704340300615705025517516027383860300553093996369685181536577879446252128426531519427936277578593428961397631529231777995914355209927454979783878708591176071715206268498272562778196479559166356365627378668539068501449526006682370501419897999107600806218079039630839878286651905735510868284060471948631865627843963441150818235701373474924759342730930044257779799095467653283543043540556995783590317895295312980095909363711947740113459443677765580560610194324349207569162258695499086311064002216810628075860407584755726219000544664083299315681568174587338009315591181668529210992631661680678125561251787067104235545861489430624995939770500101303883187472925157413006974992840030648855126470140897683316225969510035026874325797243041558711172075075976578449078400951989843347267511234237949953134197938079426797896043947386136147674981724475992268959999610056156285621236864860097418965445169310729679797057005323278045030773923782537944058427738888678924433494052665958869894032113152377478568619345530497336528318185460608112184034285102809287754402648701563505869706877595417065178834478347441718783620587807325223228471563718387533248313812497719687034971365732818832860291885108883341201447505249003161065980474660782694002134819167430953612533058344654435866939699198292115432721634955390465126618070122716764322482875994633130484940055114599825525971249856705633136692071539331912528429063671990003996099139135535265059528035407833060600269172939000823419446665818142197208832465513695502055001470087412326169070234378669702827893437257536243259998953487882979014398221008357542978639540856312595247493644723165552143915199232241080272957061775050029447021715592753392056020996432550595005386213011031816079702701552868681859626340285737572490960464806296932346750800616682945567726580263934125100191229381909323036434417440237783864559273903679086736472445518548603165900399884373952041086604101548917780476770558794621063264140243531763382539018538233857286004849922105893393962918951454916517238587287294674618876554587042108089498418389581407020055887248316220406834888964433384673411477800783585913602705774046515355514871563290238550450849333613706163507982859609359210831230743567833154364644461126162573783680178036718417734168375113862508975547584350901964536043692067192673567778932412705146000939043706303902356079013783607847772115696361564009899782301400029558742637162288550077340210943773976023116207448145205164442881123482487666152153467604697335874373201912092377904174993701306375911210129624389366113015076271352565787376377463216334002132888955759509529310843239218076389833313411533494374899385486436304436087498544018604150529075390677033114639173328328381122998585493647045239425468934982274094216536357456086728047166097054794091721598232694548835914705432948176354430505773624893159798737240141105804120561808506154819608648892487228478872597560156355022171615602253864953350946555354557350033737723656183643936405436305652681812519114227490019085243789726663441240355898456921728341470976061318446898109104592631839607728966055146759612272614496097147088138757721431760579936552297658622773112343353354271236821683800178498914908660457606518343986330292451231710330164422327721789614592504944377097826400224955711222722028452058336585826115567431293792123001262944760376734318514521786084241499992086036653569855843937655911794352581059823236272681972062229148657870424229305836561431493357641330841618431726619888990988440193000210413361908847157517064553850054142662504327102258756345944451598376133338739740337391831834679079035348770880326808942252320340313060510851157744626008092439088800921816292699161474265743061229079199173597117657192692620584129201141367785961506781145465658372338894575237687703976513994415988682763563587286877946372477699643480451166023798349131906126470501893311846455352763513468761756481088228523412438820106383495815380273432521553617282017448173227128761280806189545482703610331471289555526236977053166829268861135259454412680148695018844748872528329097437074599230431367338002924117528658301397202791353065587053505079282269536998054351542564633144440418692930600972731715383501817698068115548438621818414260011646777947683060727690405357549781990374323245945591246533275310895645413392493109942914199235481505587161999734022825570296408736825919368945233553993984457421296764024589550095999244088100698025772281708700838141216268073273919779183158244286516960048038290188353013964904236409267567691926019726315332251720628593910472165908153789100211585220985428782446758450508785947956733791261034041178880513452081342242071066078049008223525480895494845179279321552278634087208307435233540382619353531354154919403259593524874001157237409785780477548178138555706032199442523595871280966667325152268079269585250213008424865044507139360545795709501770267329473369625851317207594142389651637941477679976325111243189516935567061143906890160646294922429554540178577432094136884814235505470745188736625841632545293308661293328303209326394516224492863909682990079090855468732089538398639288783823100086383388548766049351791767535171152641942405798470871986342697072229791835769813030946335327068828567670311768894919434909171189144138983780167555077784365497298741654674464364540259991676545570123902200960426130537813373086354983992443397059312510414344533412722384009122008058913904045578982358513473276689646164204675305270819949205542773192417106616931443841623401480409808156589051260754256458132626247959398545017007023589759578342269647936887376370611216632977912914794783108874696092180520080319221099859602934397229866541297546847528383982588116966030852698671745138046365333202454438307672775204443634449270311907236988495579715267957085218463233220271423891394094440840959406992124385176162630603797020597234396373079389800026145746629611493064057015761579724808056245887565913536564184113572198832147370290716355350601363013197337204394119180195063054428106604548646245169667274786496300307540116584763414292321173254177949958535047071160457522974487238365219409713475824368811438213712458258492048876909313036651965059101215218221154946458125199041378607801855945901583463530149209516561273469037757331211601875924508275155109085083371003859981777803050095955105062253584529484655173011451724043381466204087518396446581356983395013988243783907760349767202202372079137185073198708067222935994547430560447241874993929402668205394287758935887441742597148094505048579682364846275065556774632367896123745016657664408601535578513832431727317270994020985931897668560920861873563451335825326264842623646621560255112688768034953980273114050922851131777398562547819022198377573636631269670808984317254647639163140816214280715575583577285231116677850576047975323938111449291938735131277959988935364119364512601357706220332135156252569522496978936808284733651610540802692588426443427364734037010808965074218409166117214696068241431747882205400609506079103805759526537912651290494212937816009271460409042060958277415512867036803755737263339118251974386527775054167761859780260975191343570416983150434478247662905978801013079824700919434392303327899699283706833452227330384757935417300133379735705543697881486333294458110361650304936741501888944858249735058284877029869892364211694039614320697711172476692627116528281809085170354844404565706708398116145050972889404639686717322535018229913452202663007748901727999209117093458339964797604110530776679561952643520205573523324194751466437289154645950339014215522283312812520735335172945021941304240409398350694097149937550609416836622974353513172549458583366330722506849368344893098634297853695269027171349454743934143284309867499671970416359559374868259086405778906835362959553998783028270720768149604096295411203323306290026153533524861032066441763930607095639154409206454820392966208152340747769097191004962482611048222724797346880730819069277362516399316072907890124003257699053754991315094310721000248221593799484169258248521316911597494441905369044098189005311071535703179163892659423048953732184741968667316802453430280122151565862082101222972744972644426563646848728802626814284844304481336186414151234616064937268360771498004270328763366312889583082161950568581935156478527945544264727150305400432578438731525169255070536101887907767845851157222455624194081614173960881471499330220956043413182586004472855983167513382063774590445042862622942219597093874460224529422213103360192100349006046259495921611836269677912620541483323187571812496398819517509553879036355419335916649803463846185969568932608204453207947958900385615754263538593834282611946382684125740272683985765024500415108631366290870321965411403646398138713664163064183799947691174358785407020046659392046842896080812556119812113846487504911079333837359387838391470597390159262166165118724457717805880294180745550671900823567281679933995938997840467616368027630378015360665053436534363601699964676762611203616434984467292606037196725021839611688218591923312471434728642862382124934590506095334787004795262850902191612781587942839155004902747907001188368177866487904878812652908192009434304922139861806642370214833484755062800851718569583683098004080094860637786634868292322401298452564748437349541627901846106846984016563738556848724724332886350640016857221503502762257862606312467079873638165922679621138665742636966581925937779241250143177297127444843266833872024084978539783187156613593819215587650654855435591735005337800457334459382541822816279514434941342461681453128263575396589074248721638002369420038615660445288476902461021935301993511685289385260581600750954543954691156554047774520208953286971264758753323611260947743896694894032002744009676691312984447653607145522071439161100673798322439308975439518555498982874385185888455296352193916992357489328129042249162079227956697659781128674635015508369375200386495179161649336684177383476024441541035563788540857300769940660847003108880251835869833675990578126980843747266455158208193965451328019929160026508371384275987515119948614678816940997462880888363338697107454999310030203455187680823174907237610343724159065196903793688576987743362732390340248092315850348392157461144939341264213500805271512454294820129006955968747531199863643193250876370021233736022969423151713135557365155436168095204265007828795102061341163184578317993391274490386095339063301198263823241586392643560324318547042216316665102281728320221478612697593025775207385040180620060965756708911797701013968996836821349380188872485111565968296558296945507683280807466276872188385942266354667436957421461950025651319087671631902287476257455878641140568091899555869274705460636501330754968318846236820395756781143139000171817543739062314907895485631075982788549586057074294812859567203012430031200646991716621959210681681764801989130838323572521391879126817528984043121248952562187096969040575642359097290052224142629246394368990967995774658531110229074359105717493490785276922084336501001670108025795729472839078868706386907730427048584019297306115397344486391414027733086179864772163630256834048918734586883027228626126419683059616363146008224813081164322649234434456011848917303444479912239311906982298005535292516273557083929890794326195174035312671896287426297766571022622098576529799688894724570905907124837237992673577264848719947911034513045564709342027975990978885432251684062279919192096238476680868197585542009311904561492126064191271177404551419024397479843851778003329678832300699457989619025152265251324255188076180511947140437258436402776530479423055022542796001892215162699908522045063158653001797646399574071008610961341840608615087371692155845079519463945031948306984870018566808608913552260015744245070149635422294166701163469312971775301982493787517802117187485941532717104874046798241831253367662674029922760284272063886339280412691859420178179560891781803206039945371708125851115067369157793673912587066383035597316358378305184280525798459696883454312478246295285601432763713680391174915647134476108675780392163307301650029392903610686002586026046115171481928914279056110039273142763938514453396668569379228961068524633630783763363926552805657717273079099710386672969899175037863673545076685246120001758847492487761378000546668976597143873042868577740870449098803583251023906371370139455186411321818631243981756679914649274543002497747753193901374198989683827964611390123331930038845801805710696967812657320336613239869227936083532839446090970807403985286186556202911108929798753622960447500950101470282898655075670362688280466461968904430060439893602400687031928702158501047407001227029199840625152221123337178968179805736192258479651086165361370988195852162774794260326067214189487612564562547675456566408839940530193935219704366169700017229358278752443180780999298246381410870251908668607283833878841085860210695359926089776735485519434375960762719675889434698346355717279803647356841830955521707521885538261659006689299454844870363317261066498352791987131143526884269273008492025032210739457591565627650466577431449397259208715841615364388315367340942750692381072093232346808482770494075421797184721475991283025641350782340867755918746988016221673270709490422954950397471914816907825242599834504455333183937725175273641441619450085709648809579149625098785344945229538663038721211921139381516141082182001654114275677529989360772512346105156779132589771728942736390854277397630226289794537534344659154135476943965164932270594151360486316588643354009460656191887857098184786858025798654665193559679285202075040853957935505149227282996780537805245837694222399810792873834769149657172158453867602999945104174555314959440297100185972831289090182330452361091117477430190607364863267595008833123574372076974841884153386791753828115251870512304760422794836408352021447953307372955096011007678744093391449767683346285624485641978800511753732790413059837798962834213087028393584475492233425354407492112186681604259939231012712146060076188931834902859789239133808071379170362897188691375999120067543626460347110741581618000486852603726796550569678829155681055659914404715915900789813038390233976186289152763331715385900477463188087547975417448974850621934370397928177522324021691170705811640684028074927756758626465162712770687626336914378253979581134548336589738743355630649255477661922727877412595479497453287672354431785991206247266166479128509492059655345190362932586438849864775926063964606252688997534949502157670546813248570990860360727473066445453772120346222642939671278863415866739042908824855714318982054912757110359141433817277360561691924058599838634658538760569800320786565232832237780099007934663901423995707578487879889149285798775265862327692086883981522061782361756222430166010349303630899287807577920372660806123948743707604984999405918969625158823274113395566136841808946231648756568890398223168045678919927672922157139343900948447714963559457677899755209137753373587986259808899140912078199759465782523999977629185966684664692181496752876201235794870797811876253033051216212523607385405097833514970222941524610386012121009967255692142273408789354528274859955114048697564506317773126585274073763412026598195885818012309219018045835123571163886402456927227039069591097415918059474270605829815440187135476433211948496773657959575682190675350954888019043337251761360523309246750214292225290337929292237262293463760194253608827140970217869569449330805620174904636017082212477492108867581691948305720104103408591807031831679581920844465764106788818609738695981662127503728839711630487663368881975959300924270617710579678829131459107370366953644512262407827009821870694312591786714480464753768709019989136133223983600695958442817076294026189646649949049388477360949791792747305612944669112399299126362138713386403094109683926684853536689016565788495345658948023058014908457287894930612203274474422608912772982007809655360838558440588194016536196743068768323103237890713203967405006802896801394762302514054427970834539599105103203322178529205695577147029427047829809582319858546859165824727290586305716018224416999498062430566109646569163149476539653524254465382711390915703435068612024252536385392193831984331344232710779727329554980504175865332788039156717289730695225724961183816808471364561642049719246874467637337460030709560829408405227151586724498936691752551787068109413254348970297169542250878206064497122965893587771438517295193404399306133357618658820936157626474056374126636245028822215154125429936242690386247934889414568316133797782751343087707903354657744689971851420351114842222237077832796867492502968655394864888640169722863952105465399074014636705701184961724101574320104665348472398650769311653191735663031398142087812009574106152144037497500164833287990907249403672063837592220311994191140619445704285683390298083944741144655917735655665137706316846877745102318321804138818456301620163756764182262482708753830627835363878050223421568856786029038028954101111803980712792288885243857988358039511684472703258149370579276819276645054429181645707565054055171206645419995037744443719397926503167234261666375702530368572013965381558854686220373893774750405227734341121126046624751317291754119006989702490599342077251054669718172485326940037189324812935679645255210474027179519653253027400601767163227158950257195773392637433056328673804705012529654599599410551885865554262862905963349572381506628052517048483496810916338658904103891294687978080926900682698015737779205465979091964774505483595946041640027320057191057062674144722435738622568861108152881432713399263874601177060486922916413662133482286696799808258218532129616236603692391661947125041664992774098257115078287823948134889526503103433899069350001456311921350725232705350171608477522254374571883749043284694189518954876304406420684294947956352139617101472272996359035534702535077618621314977156165493109101015368491834909065048112523780503436441160363096621637200669009659139292908960395777488977628167692246741949693984564391392545882234626144416941667573985626674433626980755200876277755196050081298957395683074319269795554253076841057828337175125979299724639407355343956115022887209513572900737169553138284743646931417402218801496344710150266262030515924064624192932089424759179092858593595773278882305574502516000522315728391385032351965951655816332029552192363691781461705104906007763139013165706961218798808639652361112066693170408441552387502963252166528583184532645589004527638323706234444167678614213458031252595424128076244185562946446960916821108195796944262856683523889022922573326452930537412612313128694746561253490373170346116549832449242517755323484067305685775395063485117806240573129832341198178861838459759882031535104025405350721561119575776781240449763513483811946094577002807920390784316540094299216519087077703038585894193006285404523102363946835814572907115737121036550193708613626812778297869529832372482614243505599579530022354798281701418925588483872735443515933790342843372788197584113914937837559564472966098494904567954892328839384184425489973671451205807274169029483543374621478196272128297482018029036152514186156447410076207961272852763387933378676025645846426236953627043259116667182909595414426528906493625995538621222266966780584121893119055855606434342662555065154255984910271082795108719932713487931908162820022842785723476494885343216680445168799950513588051465452727827522504518772902651598949100630268880166430996619493177930958717515831467367271743882781409612787437969872569431807218463829197460480483562909369652130008049055066033568432463787069769554398247441815607085081452435696454378323694561507274275318478003514249304045579890271881101859491113134187518890485977351141142955988738759519503830794679949499330807024594118530576554140066039240308998925026709291171158567061715661582825237369770805072760888514403143392527449070129716086968190834311520965416965800567210691275871556494004073588068983243405054857096811009828804604472014610534679976263106541362996730420829832067128549250845678078763248824277358210195558866397059438262227587433908873592098368394746453742806698653627977775732852912832285431567811303717848496733891589499927652236533591405596006388478062415329677155514661963560171827980493447541559416545117815082295432453288733219778322383693808513135057543683569353631142672285271360250034224312900932347846628762297411137240353797259755633259688457877358394482317548765703509670714622433364658074969921059562090556061564925420364219061954291068585830723767356750274984219265863480745980750110492774799785405567266983656717616229465572289286673087756949655828879094502610927680784151746035454103751268337198129529930609616576326531096950119941063962455422280805809296637455257171901353499594196965202956510356653562075174846138666629345461548443381864053818191388417920368733861154776915697904941723072781216468874210554831496537818248080379774265050514482485202591607062323398182060362371906488606366968078167542018083693734185308752472530228605851062894048503200220720330019910114472111438810414956476948172421379469494947473712268100892625839719975031680190535326497287052051580479414497362536060840523878621497075887247230914864956399429297692920281340881876653755452285040478256667992717959818032876790162393378919969578961147716756358689584396889394262444301354952366897731197233333044659978296828081563307813132282219843881225205224545474373629381917767056367697754589027721260866922126725692861432951751919655713424539446479390386793322459947065180173987018440538678244051675433188445510783036170838375092351371096274236821917506319418115127368569678361626394419615880509272690021907405268789090737481772425899282253822828925345798525488046483803889127539201067298894227801707058090934124771878913424999373743985541115469654470156395736921248149396930848599480332987341947744507699249650144005478425275782525840821855922099329211200636374322003567889203511622575995013994788859676070211586819898466952767094497234408617872220568405563101270100419305348017102669619840854358054220180218361509808507091576483616378194643000944670004403402959369820020894792320431184702407509184553209350249691449884223563543895769131681404014909492656533424356908027585461032006081021892919098508888006555519517967900481165113210979388193550841999278561994390701864204221574372551040235240031551722600632679134877368838114821646401128459028524508050623200398250750501095786286575855701969897839589486089433041052762168345342852858327185214968699049313499395658270791140000014405357788053172990889210979930626752481999923372614868044256807464747173653304245475999265878239019342903173174898762274458401784990010785267906543433634490655026123760398112173022781084586395575105503073175820362255797078683804866418451936010371507873611553437742293050413308484222641693586367404274943776559996260390396546819351944500462859450636133727675283782021900249732256011021548951749241110629437738405167239871022909674903363938121745221229882821172992049482600371534274245322757372963249567098942050129625487571854741346709743290378634028939444434902358317967653535018352464786564588665378102650672798320879890717961891767289854904021516277720083932141677499897154889399190511746062529286729636139856511747996669105407485029964651549875626187451387640290560912359380522143305945140910947041357105042050715489326118677563934901832191819572044405730111868975733639406338620716910174438758381142319394297215478841582748830990188203565097907277481356478231539778030855256188926890358104560396325045507168636689094133003180827250841990424130714487856234961313446042788068943623159667637681792189940952894584380079126750677863235447618057843544859556425332197040314565752902446274096796199832437836980459495441789716676254000436526867314358100052331764750562969456855272818878669114637247539223570655543842563865890482511101578296596793570807212993085491276906007781111608193882228065430150325198015939754273328077190024478270184437558605264602600059116708863102123150612053573196146136578939848708572357836303377906352003484744704641454678928330744382726886248300735909309770695041322412049336489887820996576003439124769632248645407129428759664270928102811093619726861794437153305031100579879719132805816524838257737999685540953504393936624465964431639631697225471347670065274128693884087983381414221828306871147045348607408845614019266924878873262363360392654920102799568591068906265595675274458176851515228299186184815002630334093649676222760737000889356810334698024003427305178394116973841005968554939575410316913946081139624001348121124214350885975458269471218166855918642778204240354014414762887133081681030243618026945300677256353310915922604564499419371450688636528711165115132140662186879258056409098347948275119887609859809398451988233373870527557903207350643147497396721488512370250248282620153657964830831361537187159947902939113753001893146204283631228380860536593046858927975617110361608417600411574918203753013465355947828547541316845999795895581918983956845396793440535876330855318093288485600923914276217817476959406340505650284125681292263746559211131130259683630866120659459685313921947983575910073867824264100203174876972630286673932658461721473910574547558386109643106741096542779596866101017538974759978314917499674007229190871758463555292796495239338990435156724059868032079615591343727032571316181204754922922081995204893982843140584024490115361224059436078788279007944528221041873869063416797809019539187014387851608644937390628598954693661445508625908327658924561756664741171632195832722521827346169426364704166265824899988808357778428165284946586087424821084396373174043994710530242062637363464852078731211493472816756510368904177733492594140128716216079681263078078762846733701442827440104908240243883574704501764473104776790144778081812639790489065232657206209460260559870196044314234901049578453089331393760824366629744598601134371694554266673690754633075078532732366504510633873422643788575120597336981046967059705944982008922551604071615410300172092133086667820208449266348832902114846442809996002068828443017925908541622821349785931396628883440022582043176572661660385670869653061472763560671761010958914240764089522874612683330069887693469143905952810645601414450046267195798870695676201794656807640260070740006982706281926739859180974009225467989676431919669935439720143399670010027540543871811839350211833149306278411931986020498442505175555839579277095532504161384537519602433716256594813454227099434245137668976167185340019753794468976575620533297188181937046300675089099868301003836707947742792415761084803992950329412066823859408046657831095460186915839337586322572177364428763823443224843559549036855621061453138542924787529237968373122685368557602439607439337624400294487572283770975758452053709624317649797656735896957437688798170029676330394631775883808353605588329261798128756276821955187823539327584818300142580152664142529338537459973358919868140653610030570038515309712180887080618475462062554246372262453065726631880670818591888447527718213921305303666146266057063369102978606611084693424635023997319813745035754223213711596101744647269081705082751465395370717368149540055548436433790203254556198828936153620408604412231663144352927608744112720835658340649345401369325476507198406305418052194670636834503383726820561291734909715977599995239769888691756282117171516813123130984157914266344706601915664546239121359494109134411317009596861670922529057932337882070212226718092430336315835276523124384450191738041372508271797327676691200465393328222841821803021544938133502489791309261054357600759800313217430627841754850851660314931015407427424092992557995539471886299647688477181292883997879691544060649903831027214997839219114751971096539536328792874090774047244987348579505698724389155911076190593861315713528546004423615006392379912105813316947473099800970339430963381531285879911300519484827541048970142612821185929539448995323968332928827179664996922067800642442089187933718363407297678290350002299067265776803496502679963252185902871451355314098377986376091102791518665339467391111102304406167303515701329337894167013985579777832558284670036740054386122219874055349200408683481800974487504618681699797549962922863929230417596727164111649473391253528459253647161863090658697607747086194068361505789457096048903641602073276428374565297915841948573120283909274025465261401443374209008678569305720375537648064744980776132127533297924582890003013841995379624545687358105683689916880131822940017137048034612009601862132343779989167854371393020425410356882373484132391927677349391596844831280473473153982021379097371332975656265963306225384394380550618670832548206471529328840790940040618941931758152076438947196077680902745822538990986824829339518366455341603326438927550449346432185227187465599011775344917134377403878672187825341947026831713485286057353368263251248587385354594424322751430663416874461731588839342708119749967325314148610161291142496610235037602965736840516321892643050313778338910215860180913188929930265530170420108979067391994762240362641461642561047787563564837513126974719755196197764783256611451460126154319314072588609840025365096066099639774822044475847768816815392343313171604354299987184837340688953501627266647028025441754908803767449256892382745118849300335956663317432452679881167883735947801689354866721472718405366389642250472735464724360789208603727158966454574060904362785828560685042831903477225559708435466744310686736586562844829233137622944539855008994894066794283002251236076842471640606610079548716949420623325175039315403495369424975805265018771968131697901035226270322873424726155405013258176868484403633372507047770253259512596902120271653102636572439969886262075040172404186697354238681344283477255154840167282486174773775907150579225872857809226744861738417948335465489625763176143522244830378335784194062602623121005304282778819513993681036811379459175989763499828282488692666460565077845546251888335572655199676164854829086267843977094172701422757372022023381879359729070853727122590050671562244375976129641586208685877289350618472260017285015246438289934417290226296692739668788013473658441504886225848114684275350107604919011730480498292048649664332442440427716986318799700818594103383901367433819641429726166842843775612175398644095002775852529783738446724086438469691815300628134243031642749421791782817173776351111824148862624472792565496780769268751035438689458249615339976993673591579436006819690844952171806758382577689805189000990489757429965530900637456416707914097152350186242559690475492440760923358592550651524758859094170069234099879782876976203281878038189828281780393045999381987123900853485283291373983330157539874937380902165368993788929435746411922872855577952646130935620028335036225447948744866898228933439587324577007210921431364953358852707059659408566634957893527617894592340377921942643856040371008130509130555149438656793688539051774543358559273459551962082611837064376330571211955628469021128728873124366791373502520503468333413353153656627446001606988104092692428644927186034269328185728744007862127043731098380742315313832002599403808119562134004560944155775137026158740791533951406244122491904760129178479535486545794111810420351925050331260354025348972700241502030373193742141956959410416106238766539103986016919995695731020420984701698521978170784130069040172015512598737227104348473330612807197387913501721600011005291946154998284840285232061492131206274670673648396307258589522756729874959400061128450085255698977944121066499002464617973982034475843985371617275971630874695779811342925685520547422203620686481413325602234574703015459161686823307077656537027306269415731293477337496138508486277015790121008592902478327773904430052563502723278424702554927675992674011207287948218601237983339239277790524722254256899331650440426325759311990698388130488953238740068587438012192551543844668743381635778108684416640326181312478427395316369967307204432383489466389047269967114795603178733502010771176038078702146118569043079889854239412141916282584402638964151332465829262282507722528192289055554272047462559698803441313791766395499534271051546907620716594588022274687714964306204318844664336870479670319735882080206650793578602571557671576929901875487408740065128389232985980096364305332137726213995367838751443042396855403577130006061093437345561196506729459459455072387781760424790130301899046913783142397127816628331660203260301363892823087622418573198356447196305323112512602791313521660117666971623963464265848532318278359719626240948869917083662849879450944478193031581942831873185200378012239291822584107763838395247185143893681442370593955712921548857691549118891357399937253339814018613250758761013941977131296419018979663719240771521405388693550415307829888808992851304255380074336670948226104016153931895906383082912685484383272265985012062135363138068910276667466947888664441292789939564567433270849281001318630841099308937126112045288285765402970115766560686633234447690255899860431057029493157097091957047148624697273443339813421801475685794745947161541374764165791524820105961432066292702234008990640588332333270427150124509879357288695137388828685129926047953846831220272985425006813341544651746358071681540857006583863514933012070684676120390391882667572397367634473466590187327165071134025508077656914832805121775272835344687507787345306556758095723490949039199145806656260699240286966443286631615421784795433495331120810738034813853145820139866475401509487836830013786589435220330382830677165716517155835176375399143219867638532416936256732390981808371432715950810460917387412749550548826578022661788407045982876325263587811978300393877859382072472882280136135779634781267586189580053424313432320218625937259703939772862528384452531218017328692418819008920650416296515180230442492802255281485061566227307474194966077077373159459490291102970387364172629177169054092706561292129768625436266603323019598959003257554708993325692428066848595631061841040143389510149547689107951975973636104020588776762205617549907078883065235851743863604936972934654502320683221690330255448264170777834610764537824214340862265505068916352090994540007467560461415257716236987590695345923821039629941510869512064858960137585051449600224594529916957120754419209865053254849710000647865013252446349255955288769178654821076457701278178884177232400746643961194178805640945433114505918499370658424135227231863308190359202032327272799462996349863701424020642410170879419372957263796578030811313907160004571471806708521157827893527240796286205884797003713684256023774103194639263727656484592576086526149494937497757234990948997016714463766662214972943519837534838012235122073607064135588229033448660747175482280597585052733655629772992610168963741274557275676292962835252785544019772409494010512097497416882092112125451412738576623069219067763304629348744594824136947347533723509199809538270893322320140932745307915595818984578074599075124329229861230410110122815931123520055876381292300470696453005020137976916666018217675915189294135729772929614866328401242227596461972179146250515827816703197536905948582750003980963793749718637154156197169011073144510951497254118057216126600483360582374676813248108142940835390171513110497083751213920273315342848784578957691580963671269442681027214374321188838526963970251885836525456243834917413449283753699630325090009454813446535287707964235702680969010755465071745126927139645292343738721954930924290282643837152587767255926784604979703988449450360482804652221229932604397132218363797787062194172375002326478505490131252262588333261107984555031438138140412683065762786925349985955210275878782668582397315287203559194804309570701382037556990640213549004465324685048165748926610666816163914463110794168451160824966409016981225123425051620713572216084250833178813026177986505924499858697857956716389014906379536030222846400014534484271759994906141015351472929316239738082691083610364125691143553751983488244675531155335962524187717429297647914839914063312411915536245876953901628545562115483742516089236765311416310993578796427101647694720695339952370017124336367086996457302909102140077614932922902868214308374053551359259887549394524918311218922766653154901147971863477237471077243672056248713675122940778086771731417440833930530074163200629412100029769306382784905817509039141542778720451280873893530188353211620055480076477153799488722848063814632381994496237218268894726575664712058580717682678338192737048905013470991187432521905105911248493805186556487840597317575557110221333206449783623356341832838851477651472000816393612198115635981909600348396228440719166812693649518139164455433543822478730449385216641875192190112052773332510297090647251567512270254541430096780412586044063339439549773694162926944760684298157483946865227758669872463069969879445991798982738723438113535944906913231875700741194414194879665543422387944261204785869511177178002237111937965070295840865586856938782764117359045455270515897344494501330538790686319988098749010807412921774020707118870783527604546058524017876982238504952115622225260782518537499172796480657636814458878833204905971398147635260731436247380875684667512104650154168011643042578560608732221408609274197619983818409844872165408473043018516766210516024772756026185028051855620811976051121676937215879250280473262068650909692037834984953801679040216235461757816232201233519875480942165364582636069050634584132821710551190612522438913735867962941922768940749561097217241156241062120131220251056667266065658030669594229509328204840760620303642162467503130921078211295397453191251403036994427096234615956969189550918661353089003967273827451874940943487490225697354817451077426092570360845080873211915270177900092063909182996666597210716020075719930355319838894354168635352993746151394337115498531679985491360696695724854605559778289888552113709944556856752787880568461655200545316642409146050807274636487595320341479872030871858928639471376551478982100245735035468935868053607095314145091949822079277735500062455173299974403600073499296409673878487769413071375367914170655198379029748771109426509813321105711998840081554049607385547834753758638471227018513152432995707044181192739726917204969789520324375430473416534088424630046299089237135662328101136220651926969844843663424097235310311185949580381391079332549970368693819723568162571605509709978816166362479233450995384841218089188374493098007670961368238141476725895935104019573472568181791653622420914557244127914652463576660572653980394344456237635164328383173153503078823251775859414562296401473269791843274345072003050505274865196118145688339095728873208968033647548871522127813472706607856494095503742689391074162606739512811587667442086135159161849549148254411243186540838828108202305090916876166860422277994242172093088063332821510648643397116307589161864792808381444145112040920829522469285805345036802536462378844970212225483515364671795537795718565053047098366581997622405503311508566758663340241126610449708501517796681268418819156499859362735250113755775902411168516076820462498163006114672305347639132864918527649210247740140671890316142239577915707805606420210216995325005320201691251677008936328317837509787256246873140882635423802541485387288608750331078514494607655465179719860369674111716354197268913290221413570410554231993180773371458248142239433704758440027240544495414008548509536691468273765846120786331924514114464404360564622941054658622792034126351720227632449526499149463569792044230212791909447521179537241567273625162498453700159048703346267927628349346251029530413206258934912683811447774180571194505666001434776020460854987089385232741507284588438760771309093813424777264729631833757152151694341372654226409758107657177530568728687994791870762181419473086973409308458608247553960808493951667947096758116212466321405486253053626688051610595987252273729838608829552643245744321029769189239916837707582717931945335787796345415447729083563959207744242306994371695477922800594881057694841359928785841643974740977478006703853494942694880883607219458314690288587017212420203677029478208768482926778178000625607124632146927030402771402109294494996577054111010830365705104923674322774465491368847701959651452683398751928853795421707562852764437088178925057052737010049511486614125070623390102659588364358564214796582801836930996480927533208098291825361399363128553096815900069753669673539978431366392527410935531003616992268708572472885176212843789204007416940424130776032612727247311792546473328006551783990100395781712649884665938607640320656771329424136601215001105637528807121945952545645037792866789995100597722485836722676707735757431761511212212738803156528695284590475921491307018776503736236376095061139705070487667650719640490508275853324698665925899820857299275958612101276570550066905506741174968837842481500765759523904880532018960669317263222685843502509665884321465944174831819547623234194319225694383415517319149024224211926615487846607142126513054145432270956628747566058780323966491607675358395390862731364980520463781590184262817680580131313013188754988021248276137967649187262040741841286271248534810340744557668047501804605676163068570223934311386819210391296997921165392776869269937218536140661644513396720102341093067208768230507690577893739431251027600916620470785845147543562133485286692654882191435208443969781058151221189727253622282464843493228979073713510748739155366575014793917256004656186083403544294566226356823789540796323184920009850401558558060868435659398791919886856329990711741701497834003589487154389527329182344971831936513923660568561348762792257998433009194421135218421504601215157647935021785482093392937641319826150009998205407177869275849279890721657154280976718717171831675899915633853020477639384055999387529766602892829726497413775030909406829134801562118976118629553299281771681821517577297634803724786258666494931571955094652994731927992517280349838488168689220880268955569804642590278951412840620066671472227917208977433183164601159461574886248766086568129397641261533465542870836026606853812253527343653662510684462720368732204040701261484441099289890576028920165579087695415355292181548513814251432475587224533111316585197323165727032643130863251017366952828555678925383161354103893800888871965752571813876358418900571700940016245218562796629988754186360024783441608996493818068921402431939900803941183271728396070184430307694892333286283066586009997538287804748839255996138344306367442575054056298230355865156758999173580080689562605676784255560788593822096883221666812403127561637071962663147446029651444737200802042353847974154420436174250412611441377010823425613054776831944289431441014265984009891391902675059417456037962416833614459778310827249742088933306507886118596853136827879015516324977122565715868279158305758596929941212181514475431284549937902268522114421566741396921028453374567678925800009949916761512551028099201831167509787087748151315152776868116576265153237820620963093057367906374124232664350590601809014692180514696068500338857274783566579685040050759555139022629970080391017284182275026308052861318724276463980859319757750336485457121519162853226819452697547032877497813795808313049065714899840602273942078158909770668953391810381662265053172854031928645423251481027300843248783300957772511213125270110508354855040869586533179648262023026448938082311780457164033428480256356566549013628726428328957363015755786131313480618058412134268578579525686139889386894375079118659845177103616093606556826597721657163263606371594818877220704990869007078770793317483327570291845367130177298330853586669081767868362395519406689307978169706176820142587968451077748976926121293974658587996289855175240677223692205482436298796384621821486080937321056750862536388255098003844390517418514327295953948561125509784602248402596894281630814505532792543738439375690363244512241854412837779190024108553688379632386890907958303848141746269032000668890389564699125135490212739119361244073708370936528831045018969866669854490750981032987123296745450692379863896025718328834710674030191697378592728317702885585667376542063120953241532861547789696808126964754374311248325568790407959914189669501078017554460189803901943993801623352414603257749071743298626702665946207071921073932260583983464486521903418035908652939376118305316912687670319399378458791959780486139988755234567408800058418246502759660578948535638579832896070524732784232190706083281894182525308099709963262749538504905549706916589483724865887095962287983129393692871329659848298854333492892712727678445169885039203261049618103884197355941130830134294997537382423373104469750139750654508770786167818516301418334717295970424128448644405586645522273582477220428600559699358575367635871380575266986186259173885633417819606505823937412219120834774139418497130852308344871614811168194635314836679413340676922944686349276518668827156374492471079283643741149577292274290654057874909190887487468569767918354279295049156368166291099243531979451485715342483028589885373393391196134674341399302832695449063527088170740292295206206678826242406668148835544298140542744608467017321000177745229985289867487805115789862618019779263785750562599322081585201154724414910403893051969686668074199718618559768665605540737622562593825740749987532993051753404055591201833987785794553491493228027529707071726578345657967748339041575790229030246978120284688306324482798328273644392979032316734166922640006663452336423075688492692677958254204407909828448061117298868283510058250953593000355575586545347124032484033910610526595796789380216250972996466175143673416642611746981903528307739087171903311601901250262421255804695183529703162897248381962235850088621520335304953939095599167616318166462746744757849293607478211655473089265765567466660201240109842109238104743209195444519078727323928744161158595671934338435977759898300504500857510003143701330604043844683450691569589830453149827495674557569215587091891597032069044159351888943792307038254166556427618721395095030139593217741409583396151722998200561946523050781197867455467943464949677438646962216663788989614506305680446355205993211739544113481110053753910949370045673196883691522906123419821348655504229980366460791722858946956881119395246677188930646826262372750411016993223079641164571082523111903280435976168641167730235472579978717746740894672788916688755504325770321361895512853058579308468127709111570218563107617399545336496574309000584095501089733606848162413972707701906153814382867867527446492807680788783044433042917410332634621868566536754605593289010874449910651108667356089847077950814266823715554332615727323665818615508134612069448281411928330969055651972986060433770524339414915961052250943971008362570307285258860627378174325460120544384328586271947864352516824982613690403535443468515897313626306113688071946158600948321961197867285535204932034158384777184742702679497050703975885883378230648357727023246373599138237247624771752477871337328925358640834830833847358053972706341668070295463043712968471980441747493976645962467617929681965837096100532162430802928785857765047311726461307067190609410753061881290622421855533415699077445209336712791004388959346904132648794218380304718918295469442430859048186444186763802399558350530908452726196124764640458066462224187569763953255521294111687752417644677485648130569877424620612849796182865025713407091251242658618744227602472205210405716413488100108277222050779459755643664787466843867166018490719285064945359822100381821841088221609523495760776553029216547302066393849374586929755012279756502158328240124734546329093574419035954295743172653681008895000745100132971562302275153861450277349571350659249339123799152939962291709026289903289415305305100845755938878834636415418573241968448611761896742661007072648101220826877724917990538892915953412143461837406717796151027251492610968695925076248278400297317234311170436745864330331387818505451175495690637638725848973611062700882388497603287660774640171638998034161779554560206867791162836125532442265524365445267577512354518860827731251038796660516097341615167431451826025484289094787239478791111019275465659770890285160452006390574554444546792805702958483804500826809717439185101140284516708399968241789248751738671380955928275257585360380933538949066468487941817519643366817571559766433861828178300284491941417520288124376341144021751472508539792454670818411929496062207299937625276916266481805718091554728663938340296621204279752992337256451902768821842399930593327016666621378141915347938309243206892658577950135664966166091869235074339284808084767854065172336410984070199850987650713701265066309386612936501431458928866765629506313741136122034411058972935128475467871394516093708200972728603322548358759238627020309342056116277002498075279771493924573406623284292361970044831082849541564498281182567067670784820325501869597471408065588678662273693760694353195981173339005061955510078669820811039665570602671420344957454779810392632279733473321765339578999130064357611970854886435419151664797348711340423792784041571170543366898669613590078483712827168242260527152419974766866968703454673026546597006553915421159545714385439888762047730969306658407410055823109741778620115855295972991757160795645399964367625755085573814350483009786080641726634142048734471928659494245484488425405210368940831443610072122344348686778385526664595312970070965175496318906046556417583963807239905763769884389664302225626518263217228083701356244771075680054397648408614395731279456125791804071981203152313332653988494214644187773792999589081039130263462028320045797001962676349582360624016575669544146090869474909068203321158192291074446780820435993866817143093345978781965107132842257783995285873132524435293896440087313798454006352622118790493953035921344586380262508008706211404347844171197863291927864501949244197979927517648570626902329865920833235250909014127601113216439322042657342495392339962704067211143576533153956824321096507198070952508288555238252642938162166512307368950809444990461510259749953692999652969099258468852634765363274097015603217032774984401672990857754513159403402545818402018050349296847663051195285409260539180502425543449198650403179466774972813390189297137691606391176395165790045472488774943036260388455321744388791161478762924076662807713292618159382263245303801652144948257383325106555255586990806479524099131593353231519572238841333239272754844570007690178617109734502660777874268550942225696214697262931034605528013875207879094673204964069413051641889815533050066153412381230619210727914638518607782853724272716090944985526173507828628530675218126582306451093680596727514805672202128008085154085353053738712088593561395046623916867051503209556932416837755739148807937556616218416539090155020003201888113510112272006927743357661451552068932955542515834589817349069942062568695374063611057811121469332381861275694879240362467333473386385988886923809807010464573707524974444824178789265653096539433062110678297814860820184852752768963967901492017567435363740090239342890396313744610395135712804207272526519833987736455849219509605933326161215024092218327227505456973540520669763899166723898916041649446310530464220016925003815946114431352624459258152311515049726135000352666379278011111960678443191185053810349546471166516386907798472286740891776324821561943387844951614310980116095042967932663828733073610915422579753475797160906821432907657163188726857010230681207018035013370078090632499737724262431835464443184973898411585753606031405074258067552198194612603391858454911991497471506100320206213196207361110925219505028358160817326032398521288091683843455893653421930140859215687245027525982213097668294679612407198402681339739020504268673351244797685509320490169315559194312044049957987585387808220125915118572069680473912966338042691626297988332276974500583628962353267247345219842287186562332456488134749763814786046867254781672163709611227400874037387472682988104538122723247130813970254102092651525684074930647413310729671490289494991254422044445341823311113397209731104504812727996115872474568703699928211141957295044296547807048238237943087592469918126922618320591314097589133702823251058646833090279261584474798104659899376955769103295646125334071489752534120023503340232196212108489941367713472979524788191911462432190750430499910210909657246568592801147753985486758417611887753599390330893658180879130417115425053306807448793937137135231448101911021958602218687501952320803620738709857346962178684985883261296058717586495127295440181233837099689140599712018920787937724976952365046697650227735808171779297165782230086777211719926599754635242352581519288551979634694715177570623876899703483344611057559406919704979045782756307138904878649024678646905981081301254360256124251267633653946586614844908532588448647585201718444053119610034995325766782264169835143207211601733814297728724499052169535769131699545845646950719970486458465513935486851833682487192984080479595474639042921496754053231530289030686623893581878854885477821998708385703963192952543505196613416056319161785742555766680585596857116082473355111716942954897061537243513206479547980959358045380792383505120675894841519597731854301747547807560934294482535069372197675415126875957531607800887074983572506626320124399790302833473285809869069562617862067517026090749869715451398225432310634186909606136029477029384467011550788763788943452938246533076754252908072492620759494628554324442487957752027974519476135570063537415116326974628076707457066819465787039587874209802646899359279893270750390596289194992958504604153028686965832372978864888662713929142421746869509316081131124474417244971463451065203996539111904166504128257555772260393367912887097735848099016250389098370128682774154741142452641968289082899772329820932679357447739777351452545936367971546026865658590177513808903561075929860488674116651732879995022857312086035076970442885695650149457013169381539848823502407695991598402444489206297767585028195372915625574867882200508483099131105546469058191516605353891273706266902017042175451032453938829868571522534595450689201627514633855201719062863122713860833608803797399542416139539822024664077921778981788185311298519586889498976878642291443815329169703678785515258836212033618865846679763933437919366505759707199526759150153066005770225948638389919254851522226162837673803592438917123849764753921747486645204084090534016779779524680003257946659908207520138821002720398493656374620721700095864024160733347649294062311584250344426185212142853826294980323976906814882752286275414926222412320384601465966977976096506729862046984941507347769280963739835914167211872719946860070719883411585795570602011209306015709254203041037486971714435640370512558271539704262727845355663919053000679007760857744467867342682918659529178564154868486377373897798324348535634159110578546927399407381169945868491841611838054159452697555972898692192147493319623585314804987768251277264206175119868307180728696378953746686491334761761599860254407762468893888133386861808166798805906944238875108919298472567718910555954970925435956808136639674431597419744715701776582481338604551522978803519074926782382990689494445283132181470971097909826944905170558336482785722236159963612256774465888480528147727191915813501482037554334458191730755087310595328052616720489795859635752775095995062468089579076786000648845102250805160095771483965306325608524231302333503977348352777489966488365630540968265780305281758920074775059984108793821290932242442937571093632032249671119543613184354662152890687656992691588376111214950152906392971019643648415133220736278581252080276744421276283773070227782877737171401391472226982148994037980053039437455843728722792599622147373307955691290095369686905206850550843668889895077754673521219018232054876895422062879689383611757241419729309334971114489038516217814456616282883258231323350180317172221775990042638996727641307642132947761092226972435882491562228901073845056126807454518741811620078315280698367700702038395755353251605401472093246523704869045433307524706752326373554096881485940660919542867795749916979193099428122102252873987978305606129414374545853803753112188050830839637371430743245078311374849109341453625314697752578358436098998498127706972032599012677360714507326325004821371329589957730845542892758507091596456031371188326589349869947197251354189182938662631613361957269829166103103567314539937074812254390995564878799948503996136167331802307193486973791255970836850143967310082045346650573538094225990023145727880274526956065052063117026405652418986870767827041254581254750367138747780194813206411309488820087869728404930560734945053862444976740169402716954244306488415860768706167472042075683822866437207838304994421200219298127863151609427878804793948837025741880081681188073051213299525948319583963358497997957812600593905704936323536003267949665043604594838795371331358657037104777703757849728685367289872190866474524232501694354701844856491887519761704177210451546440658279751747497423572301573139457796317903600862347376977901674524400178245190580119899955563713150437654004486041168314987681960571245066248234210123114057568552551482010803604297969393058611251383405227456679161904925577195982343885888930328037957014551974245792128944877837305030171216924396142372192145203190013515167411699358953325049370366392686896468867905648697868266733829420040736733978761170722672697168554959781256375284531900502796322471688454514249340480530073925582160993034521062800591534929385683478409630192566688639907801474777780162710245974989866786304686703292421841405146989724791283071555054996838524905082512482563724883502002327770364466170628045788941372723480204472349383660045021814931552875359989205450448135801620523066578258954868950740744441149233460895756214268451008661685634665488144638856029962111277624877545206467950519736979087355932287174591114670991083160708345049565523506410689046676670636741279168179463920494613706269193943146103468227937860102151689300944741090077106955520357915976986845365778958361359346048875542886588780244985268177570779724434515981220710693183486650782473397004404197003346932593965771772526931985696231531698336900065671744227540342519331794887404338465699519228192689917639343435142467515165016339791735618578662269707891120883286999529516651076060692434585613205293495130704483138366163408823829269513510617091754394070357711399502677896055888170227542985579409099674938191313584006037118357428748498518680009721056946464652338643879875101942474691587049840051461771096856585239388079578187799866018855523262210973953065157572539769279661216800178241438424770063599348236040666486425668430207886393045502017186267289847393757505730767766422203420358703094004822177077118664171727263518290279246574200940367469351910018098949705227227388142734848708597050889067173549635652037052800646387705732603611723013560809555836248307343534954439672032433851855541955822448380079777610837946716324041572414493648563094215906841023078673723055519924879510886258233804023134818396863407838339422224892154984521791929764944836845124583078332174902775836909491134342452073199409796308090665442421363510422278239899992327013885233037436256818825055320655617257834050602301555482531641191577835480622727168009289306220244676307510696155340627152758836865837939055706601554383966391056465804421138414827912715550811802706584652927726999532414891331139370679643759131557360381124124377431015043052095127048427931229355113768321301472764580070476373387725249815758440567337190005113527009878497700432467825897026954456379737191215066387269084273322918421346088849405691483440420430409866568847982255267460817266809611086439859099136703490496421512718501290446999307087783690929739333146678386930019571941276112571983122657929001920310090791300129734229706124841900211942229586283319348521965822107597155405403608219280692182857361821987130424517955340033802594405514986242433115339834766486038834664814803928625493721456657045712429355304484865080295837954645987332532072455105966558029178679823728452070730785396660148608421138329968872588926661411044801870634894017120531596295888274340676217227440332210664181702398403963058544522015070778899832355229103866394062502317150643061061371220336470865776486145235012808609412805906272607334434719097846979865268249600264095817586882351695709315066193484110427383870108606265681551994842467252624834178851808229613170581717738075439026524067488131270263406921376666595367772080225754146080386654466445747330082132565370899366800401255607700417819038901487208601858574302726347649997842019709998762907116784409427180131689007975998044172889259660144612450146457995436061491246141769101656041902986676384232842428398395802091518092339907011127862624489060828871713676645745626576486760936973176680479777080908912135893756406056824811544731713158431155725108335548880622643370596823830864033370823379642950361832754780510146398213349815706527500602735959671504021489688645987500057094908871587710613975932568719955998098410488208555038997853554701722994879351137485824275441128803054432985359906208242845360792884434897253887296484574436456945009972507740621323500646057689865017530127980578930172626268828617657284681766453243279521677052820955091765409840682895431294666073629524573896340661396509578353566830039071101145388243670881993429360539060675477080571606497861213106607017668096016867892352846780871882503128159757398266677127709909699431212597781076855670409889422519173021440509815971230880828776352120571743597395592462770522435254370036313724728531078267529809469468364264637097750289968912107197108938117827567352097869813073654362092552343871844317364198330850685136146968001041823982974043765900269699978251032245055635066156765403210343532718585514093995939515171977148013806709817418944368136493509439046962599445714017195218847472008078629372147325177668542566081996207978324109459476810412731965050767319156313639330295371658967274948134610600534316035504318822491973592937122244442606334525221497667193751392861994289043188229848243026290055714251698350814108988435902589907381097443195288177715481246732664401741513096006373397430469657186343950782470102852283517375744878770213604878301806169615648391896104578866980391912068116831939517739801694781126440625486860223778577738542757626480432071510138945452986592695883402622498314089795702339379485303292309856787214562966071201190460038785119963072929620376554835667490683413995177373532156239929271843337004833058475179342415735023050379771444532233559658975502197093104305355614898404966941327157425798909562080450916976734874287564177848765571088853423807584104611210894583561937304597432001846424411856865031456767230349756249091028512410094776740943806144036183896628752268333016562989865941245205129457911037659379224807910933214566068064417362135217397741727851890018590875350606193909123992535322184550714512864674236136106126069738817671157740021750016946885700758474246739620841319617680026276368496089152524364447595459757542245438488692497114312224094974441884831350965290280412881147595105122582468803991143626880307091326150778858014869592520017897416920575726792760047224953519334642699564656364897880615678677463343274930369011484024288103506646393745791740023758463427766359118866779183180017117990741253610960600742941072942385003768751847917010157040588319892514875041752101467384007774358961175949837554584956300105680431729194032214513732896975398059363918494810105485337883095900405494605761266463156412202095895717589699796756345307266907095228904311380589684481295926771149243954024578521449841174633263423339958623858970660676124181371174761478640960210624778066469371010595723749316886525734464636329556726812670832711562947021205321257743464026089725745230607230416819885842616499528814252104619398444740575428479986941328356573245512028850220520393218156556909276100524777219884575064553444525759281177273843347647645598401988021939140518992849369782645799991308318986562322071239164328403737882752699482634154180877843092542299367354822425158364967717295952183782195204008585122197423319605233840666740343444373083244242421312280423113475796414720649881975850445393053288914062904795950035782507644653572919991439984480450155653469120915207787079720306870328517560220453350541446225675796107432770844571953619092579310003388456041160811410028604368932674255047240298223725391390798971879763597749073107601376407589009184757852586217118041203239722552655804025664288747793442840524505031148729895963997761320876206132172146636514597764857429207065659163065914955132023121794000300734211534255560581280538586349041358614607172961391429784105572629546485187983635524661856057359147961104637487975287851135714907443423586127695862438700463454790922660073447829969792828317141601308435363529039202911103400474608824683562797278716230382031650856107498848912441977979338000793705392275067198231511923335482562210533509447791853988152734161364689132059422264421357586560304952571977448821918212818647194301749417150021193317456377716374541510441661266046644592968643851036561038048350545815629980860813166615200086576846880934381890886147101209815628432853313076518113246762832245917782882996879518192232767367389729422330511067404705090782491316234277668026406538892908129517457140711114491284797338049985421875746040757348562633993966691765513185540169820476373552554658308715860260841711241477231254723605333072183588294720439818039702973587074522523459826811906063189049245687384500403334327872835603609359102250801754141601767612848980800326136410033337110845850235125747355158583985224973108500514769537259284312530893602871160591023630184860733891868330764481656299183303295760590034836895551995234102590429868673854182879340192870196339977188919586511640943417485914197114954375632152748861490942487405855117262062791823413163945916249907063229762886903294331554329282014340428271655649060890425887671608052424907376160996001265586129522331244263533589308054930330056582138054968901033196369633664077356499747451199426211567636326682511229614027853713083941439028083013731561384252077119077554631143512504363178685196570867578556687320486290583664677496531254508382614359370330503512229316271675112295255217149680513926605032433922541641002482569338207443603378205311966437863088267196292776552820641591912700608251384679034512795453344831652661119200522989943158718974460508803231893467007893760743969233434785591927262040828064330537483993703450231952050647528729572221974673682972967400473813699261353506248438816785147770949489019747945730525794990043771741620935014104608058223124493580138980601649141097688960825479228947930249265714322670123764998473881761077797346063784409832238883907923867403948602659389945380064183990839080111271936339107787166531962667666496268219237560995097167594941009475847384392821644672131367473634900812479092649171225914330523394192535925157222879192314045563266556352133352076343219447248589274669108015873001455106454970660424613929977691469711512487607352572393478415692904635876697831087095484159174214287057327882101774812034404451784871085447509431864112222129672632110907208771051853663724516061406270807773735851914948059153100809424970041579686119017378111727957847483216665546300447664080075581991783243656192174538794826614669362218313406007989548863583017089533055824830938775568203416376075004814116056969313072182619777857242281557415530549001708916556371940067861681900912982245169204373361974084166455468832980703509789065319848951361377256482219573436489304042778417011531067155724239468400299776168917529034930966910803497584649008269149885119255531589889895855293705066676562677280896717269397409209176185992565303656037653322649234709888361686305147489701171161586442529797923079844466641294289673159823835186576257418051821438727762065564345216860098631823518350148059507060552075178371543987952216603449390088281527517631764432216440167096962015010927760168738376579268009762720977035468743577036532113989325377886129581823011845297786766316660484381843080758668477790838694432177095191082343041752465982683863343459554745443180422851320071505825862096181485547244909638610908309779955153752021118946334718980129060192649935025776364896016714216256150178512363318432496911129550019365744338672921005924181443906436576121002343312493473706190499406228005183186830609511841834445231070823568436405243773634397226098102150865199108602158230306157138587489380904961557257442346374581302967827743670255510247973176648598462588868074811970353214474924504213535798634844324219808084756885749157826409510669942079219302402957261335418865905483615496182642286015751099219407883080638038170263533382185704153437331960690578002882768564265663739583697897527902918493092389732938511459346124224681351854980902241666314861640022965579735699322064399233805263634481010010551990613792553398173655961716067873700188382096806414027259354511497473854135266324200625435227338341527605819284525707750649761512586607807461180252336097209855825868074355307516406542448485463355542782101285101076003272075765824722795537537886060434301272822662806405252115710406342638668884242127550468051785319548906619577768422547915702334925193388961978269560693067333602956958716808992069598500811205003504076690408019066648249612420164072634480308583433116704191379522687877323476554355043772081794380566071071093657635410520875065776169866613905081616217356880586125963841198024801070964161753668263945393017341862193759596344350631685864628486080295882404966447475010396402885440016508211919544788939371135218067770012148408226397625207803555847169555140767104219095759643625282178087372323088474059847530755159004572737559074421532063887652184028727758270891036156487444597610131538436819520269694896143213585824851825812883672290100073838705476414662955522916991237339481055738175922345808374634570220755964295447527144601014721632242864799568692968712494105098472171583967938105909795961973639570444254356962315412637919313863094909100010340887734263154624766501658306604406444065315300863021849366128917757779883505283478557622209713116140999852118144744592917069984538204755369161638696523559658610090101558965067933635624280634396304220069344375577930748783500843127295950056603248855036069825025828511921576108653460703198819319692791266213134740687151113314310213491967499650174239460247610810198987859173948621447239588437773275437888882359503840868060575496169162566836561475101909658898135921866819903718638541429183907441560383513280203045948270816960439129992111525242901601945595053244702441150049407314210319348670276465334663818617985149372708631775139266734139965196578876183525266495716655972283546169975555515862959465246064973423909013954399806392016380113024232008888788580553830141949201919484097240954734903413073223205576307659329299632935275466424825562008495167941569094032567717271498096845776068036016025139032973257682062476607623229207073774238329718286143951879160507888215316890722781471831931867201922867515633329016927924572945287342168704251249053913640758648001959541259781609359482403024032110174927069025549029557739059742238605518381382890836320558981510027341741928509486075850002711731415595010252155103615450417616717348365895724704324373413531659534374605058406052584837280752051039053032196990796833252453278255247786656738877367960307901007555390009729753582767673887179736301990057735496718885865602669011998996231043718034297556875300699183781620877730454661225868080856011820211467604429804413095264592418059006593339533754079180039241884114734460827841498310816303881273400323043406889132055287179012830873207971355911031101151472249136469960825909208819731423811879091908378438522036632897460748132495680890817334394765615268888436643584538043244426035613522253922962241336160089698506538593630431031157430644957893753238785632452156508172779000584109814576983532953175825972419794015132385891083209812370840199795146576244096181031324555913641401273259063677760013445702248833945330402441937794398266373835300669085386572948596794033744933785544235281841368917167408748375491606791346005526822611541325966037525675416323603043637256034499857890609709555945261177132502012063561525179849506727991515613423057273970667397129440289938831628688788318087396895420935716425156815416232958403116516171382341366918975446430166153768688311738693833861057202994676399601546577160672761789003331123617715056849009994023587666323047538304823814357900995715498698815612851011256422507194828457790469341926156710757610848172226802906828707467685943261166795473978243889399093777989281043114529653599291727395202111551245268017849465566096208464391607450355773101133101358024726241997386905946248089787424215244427335925549119614685461010555088209010208946728156757593364104300806625888684132796161999055820425834110564866233919683892967532385628811172523479092572856194747979822924548558121110938105674762232802425981307376241552563894411285440542514043356207870453382518406131333267016696772564654483989194000857671272362193874428470535506876847571433639872924850097595634970996265984258917892305017986933134458219417238814742790410251723720058676120327761581537263077100724153863033967527925535461868344078123980185296175994938388561668885833122016179216473701835832417766375458142097521169813318858777842837503018151444270355863170249943342755754911386163234098201996635743476654140627556642001160245249924890145849995315416972312937884124095660167221323325626937660805541075894654730552487963248906549671945576897592168898091538063921544539241175156619518661687707388485315037710730716072102635839474981558604210995118455474456639552479630515581954814968882914217636614915054483198518706887608777577868879364704355705359500951616319495467336213923239067835840734378503742517825921168961193432734760440516125826478927322306370972334958199470539113864093482435493309819874862066178815576763586567658349505310871268409938319394637731539741441806264607973746878767300635933071424118029720719794031196490071162848033852170541834898597733339151704003316835888437354753389334035115277512194130478136134917061828717595225394017520681230081566549340528841186839624747804823510671099732173619380039736729255161763650755947394342082647182962077202085659931646732565840519720610755601798193068634457728996102347943574954898594279197769774666922848162036147516659316814271726568358694940973398911652351666217009782012596886311155068647692041498620644387227965697967188559318645978548161247902485895629026469968412472980111422473313739372952983795406898441432100765095768458880367625061304710745699987930836691907276375393461349040277028037252903167556987319699605893930777768186077939601867779160500426729463509810949514117136290659701412607532634251181949560887417428352014431787435900516891150269778781763957002559926303432349288674481284760052378446511969651502826571051660730150783974690482468083857335203626785691364838900497770747400576354365737846242769301316378350011354756887162971851652318388523266643815126080789440835903382430787128361391403039912672942728994049299553575450884593017405221697227519254535746034878837354749574908939979037431135349673356786303637528195892060958067665333353506239373905286969481989412145441566048465058718815572857166469568143389023800747539772104064954613457998427325079523754006146398205285713614413073812423142586520969823807484121880976090413289780649970005068850480003776232941351875499569688755922770046965163990222716709617536943013737608597495600727044146462539015763976596780050252689044402594598780738197770974198692844040581512389226706111960268780619912916708023923321174918241846277507388400795713491935753164814721472924189759710371119675294630423509854812252755180533912023063775837964705789725995299099394271138500874856048319174355569730161302673147123728617708411733887576615479808139639012363321040791587543559714417900288512895693429234427115751038694237458416217827302137776962572103308174014246918547026048549515488172909418022014965382465852446402991278925168097170400582537048491023594897333396038243198171998251586365573919853495070184380353289977588723473548003120827286688077761424631393717680124331933563722522940059494132552077139117531561974737112947257417753234437788951177645868855308051327140272766129025895605595186742006355548006657103001565206528256733006553724543539244754478892776734900259578297031752868158354661966286441904212809041818293339987456181636770318144109215558293369431550192010708122838751760436233202529801679674052565537373445080197526523988781429359810001906382441985290279255807082761834887866557256181435232334786561089542773813748777215374361459769483624228133794560442018542860736775282775222255900560620515608717851286935698565635051597521480030241381555666722915628991300415826068053745931465699975135699931709094967863463067944003904544276337763173082886003781821321825811049053788356252463315939803635109461949946958696126009838330538515722200985168365216829074571322722179498419687542758280019023544871483155920493096192499748547801762457080021792336923338974211197669664865840331417268103098084224351346111783434223225724102257536070081160854456393235559509483001037308864817693243175488897768940932944118766121149885166157279004356297523948464838761190182745041322350955497996626665754949410305007664425504565913229876928001398451826092246296801568617154724171694720352526619209788418923460888249682267415070031755851388817796184273576729706836450606007719279417750422573739771464300659737574075338242944252603771777755789295712260163856710587463534054915060400108714924392033923184472075539901340690030684555962338330120043319248285708869822823493468777888558612253123706115773773677510371362962900775666029638713392169804359196748465631623883519794412136765626584125800765624281642454133564149825964649931069453739705735660438091541905092616750031422714358922351940178827837267803726153957613979361234165699975961136317792874548997482776331750294461176289628085799032221686764581544476136349168893833674710247011451140541130792053368928488620957878176859425031594501632495480995689695112187800329082802617512174548031633211560950579432313538118284318459326339786394267790941736133059090950258597290925889564872705075688570239544386075638801528407216323130298150476297423212979988450952728875301936986872541227254711997721685989195736430988087077819474862328455002710909230963048287612967328468854474362843837897709680474495152598107539300484978504186188102829585130037605674889220288833550155932194934631295765349263706362170383721371594325541681843718817880990204551870524916484156439034803731943601412505335169331104491186374013304327208737303740602938613030431890809645235924091494924811481162610033217533262274726525422278459078241190607914700953997779064684594517674776800786391069705632723090193496108451243032334193233701221095929113543605533422284789142934302524289929142887630696120571712982311830516232887578485145402078255536647669539156952327507588336601283292668444136598204436747937083446504752502548825583601943417951232265289393700122942507448715826166030225220166666957775311681409907627806820802492248179680112911039077467111435373403340240249260431760000656081808320890901285410767550827843611755520984752502606932714033528645277854080709231008417669907070169762107436182573138076597433441077866915168648694820074203625494987170145549739713130212675003769144513405478691809223748084854851181678347930113256820199501906308354935923653275703614359160681155552696794138078928175908197722527292781055204784717210676843248929915665863335094166470495876393149191225983109959118539327995746250434178263064079811997653552540371766721274971183166385528708028867086462726210974492662648968789009083796809094584909966061731484086521349927677561020554538392307857028223126028710869221526711275652618989008650375056861217933598488070453077868129939328971307295200594820087284118594777247165893585661950027035015456045090825927716869412531717770545542411988063964130114638375508134561613090499976394034906530707162923612521218404121490251043877928133576604428269121961359583825226026033142111775529737363698809439236825084438453608483489065321611812312012834213390918929049058344170757554214616161387536434962206239083644521001107086866179360697521015539501977417051463805166876893608129645827479277519952570226477980027432914215772211869240225237997413521749481607149575450996938084861185505170467395946251729325748322528325192661070928057768986275035128033045769328368725869207216115022392153398135481019460218495550596398257494283355192784028305792723091634869237085524835291220776474359607584249652342062247005052063837315083212509708622937368390359256402905276022330495857679861214792254215360759254451926594299418672834276244362263703883255319535220500427314203790241296004818559143200447885034572262573595804816025592750983709304939948212685794499503664271311526315307276817548564541165829624503546642144534099405925783907758312161622640066402354655375439118712053923808178916146451084762751058623313086699211714599036037090834010581561860107551462415591370027571576529448247586752243074494628991154821096666934451510058322250609836933800905071475624495636418287920946828395823210418424957195389072479598100731119109705266825014317197698092585593733231643679582772489142344420052078352340556054469575260738298358474267943234373085191674157299066328519571552005593606893123286069567749681583964750875732664618090873713228842027146906351749723376488650687056253592431909846582610867855351725675079338165235959007273262264363599535482104808139556527132524332687798830024524322991813424639731529787283202052502799790848053278814089761993912806673977088846754907074083164381807716332318323375430800730547697631796968165229658227049435223113328523205573408787531454224199430505941261009367775475523367271729555683837979165754417415855666180630755534431476178805156434339175931902263744745797357885352346128133846964318932786101458810128597459243331892673591153809682569141100768626066617089961807994779397204722630081633168626669671759241622114886097536824133867239198198142264202125158380602039815455116053788591500236339478835596740614983905028497615196270082453794684945943491125858252085302105473513738851848454824743386918791804956143348417109843039595303260057771085226662522232546925377644023065542709569066211519781619222107244605599341729600246399420318857580845087046371051402371089209637958742546875548110904242688069143137820644757868206178820340530812835472492658426670737806178460434149402973802059797670273990005513481981426045728824339062346364973156662541383423632032913129742494610002395570713032566216639318320786434864383155270055103788507790647753032205584409914247963773201247681815328687086382470219465968251378208700728765293718273712832018714517234792084607204881537410409445396684893163771789755535336628044626620377213238747490346153574290224305468074289841305390874478915344975534241552999611685003749589917855475194342002385777494408263882653064645252067855516041938846078968771530702462667733652009359340739596020117359806057177015760964503716527692272033333960163975305208007806573826986911668003819889366513944237778015758345874969944354054904090617916523457097639623488286993771487282173701141963341507724330837174447970996721500531511223450600380524698594731710931241126306276157284556388971053871228198265968064584046313873115097447452435984131095418741722878103954054730166602924558975337964057471852030633407718486908390131362841525592394833913243445854241718954726106470249229396981919819372407833856735971961157073785810628113700542600596369251985700748205746131266622428996276747035281194845108463956548005540137597114550553497784468143696523376016302304944531338125122925478774704225977059978452978073750385907178110224595571402913063001341668126026254885211489958046309502139476505490103405482214389838770091055918763708952610871972940748180239386008227981567518918263070172261026569105251258167639551138243847560624609517509312942373045113770469374266897914410837514148533250215130238291274461637880315896847045258530675486074534952280464797080636253971051360093835016572404567662457389253622460485320029967994172619802253012401421253123559657906096022022812323175577875523275851541300644161878861456758718201412618864054010489933690487159126139678803382493581643762293686559336600525726654709001836289950797259004945811527004378444841061777637229557284770553474200275382383497443955800196821326387997526916279271742219185290020182862073953071349713527238380862843600759795261768844446878791465386995592099443361999877353462665046954105752578907130151127861154689338646993183905054791525116458894097634044440633505802933761113231396590395502771702086712686962598120604437788940764082355567902511650630206959396810996448896931646284637707727886592926084127486481227471691770747611583879475730343064301853678919151223253750986075801430703155029545496719216351098661625736717158996915346450026497528001533759663338414234231224843226677892905589301246316860134853432267320203227096866442829422794641287736940816664491653303815289082838016992825132326867298377751649076303062275025561005631995609202368220135285012177484636071158710055387493041777825154892888861381975869062402104773675537403116415789444061890884200693088881864948323663268624955402379969208231316416226327525925829683229266646063298283871893365928411632237519193015219596287545021074092673610733360411735624621290553620006094730430979382868096052640512512551663914422175165649515334438348954943644876164971317747955727659419853952649443616011498613488026505947044283470966949630501342928634090995792646622854173710452907543294798288880991405628472610204595785304868631780257514049746607201981483301924773444329057793024020338059427161284119355390012303344362727891879766767798772387948284588389028073434098756280359398119426863285490257478884333026443004162580561987742798373019979566291135602872941080630640299532217542964269355533199411199022040129838586066651398037775743167296634317674302153553960241545298413850641619809043450385475495792468890776959587274598214914544354682020190922616672411475946446761167128451495933367764159616390937006123315580455120965899064665644951296830877334827820128202142493816081136492865971724150004330044180555628781868879372205867255924497555021038601386723440779443634865263153582411199019575730560830484355118064254538855601920175745040856045756357646275331666328206817294358388397534226825103380983386741961823864655920165650985377539791457077408640539997860610493742911978925681681667632252112762838282882636343737608391430825857119929537960341849629972967157659856327721123650224159336395132791052185951247158335289597208643597555716021486146399725951630934303606217989275759298332148957697336845682491838262982900215939587193059236242386885299850798425723453609071893997553720404102040415265758049769016252797730098385561926677108494743910410135646235257593507732236990884364641580724249280882944284152731627541473287450062115601304401899189387333004944309940622765371609203721606377232014200894644183092833331450464531305450137331739324836399183878454993029149570932721122052568400864856841559593006255980217731189712316471868969765911046826125154050860331195457105978961475061970583036449603207761074779507197311589937828468682388683746969955818079572487561155681512317186125429829160388871408042995878360926029818173712353137370450436241962070936806045857356985084775889103812726862482376009446207426655087160662859206905645421107121941741425131726323123101025458183992895036017729283349927373586475083708516285395248693504346281753560905927636885715325819382602666344629071371330392956295866295223739412188742234362431842519249576267230037214932779759332344088197472764286792550210023263165162403307982401844977587367405508726588080545131369156961132296196014019735169249488597339501717420207448482292965729149282968904403953737456138373153559464456398730140183924916351800347565923313408277725555388443676944436926049617649594869157624728297438258837565232349222010982608431475768161266605041711226799365032168959273550786258388365454140051299204498727079606290408546922303645905600131945116781740743444611446941569812375570561729080927596156850524579665590068473933435708655223459521311912565086737876373030389409304981661925390229627083807177537286798950152311322772280465923942767282176732774660561112879942045743538916179132462544746114977214629398742873366602233173758601247453229510497880165024542199083192885764345741500979873462004979761269461174305847072649359521000356811762537352389033132697727098663283997534659340140817091911090303245485585362707687572596971419685324458446972314740181063444262600109821687387443646261538913856196351768243272818716892794750306870160961726197413355100576123431288567427825852593638090972142740968545994995499375526673891035995718656269898806250000469197274759165376575350623559042187615119313134992867380516882091256559716717940895994927079035283170750713702819748918637008144612219589680283885289420364328736598795953718736778081106369824493542248049609911731520514533115303389058970552324610166266205850159333861772781454912592836359280801914802272710712265897551631332248511268530710962570596264529376253182774194072188506023477042372744267554866840551299309698662422937634629863055784284684026662779171912857708032815350167123384430479336086487866559514678877699733443387947045620162203320027512731484797745141390722246831557414865929981285502925617837574742167894637415095399795554954459058390171076546068275603915647110541916807745602662519258206184689778182564430261572419652473721479659093234137215526634600097476717194277408674590102695762629880646876191594517551136974037881859789081582533852218893225560651042810318157297675234638781568727650934145160297257697599276698688957379202982906648717960319210602321793285781596943614474494690475084704716551897654537826230158718097151812392447822587118830776385382875144783855617027139562157413161078847738288750247283894120393277281840629134444758206664824954903500925348988974422059465071177854049299016240148058340231182812942306203698169106564248403515538942125242566840115348821399284323009722157316153402641999226372593093758904285553933031273002620390501310198270306000274383710075113541226004787665689248064965012277957638036658795166327750405896822102176697543407807104955150174403639782497606486896069153310340429861419501114113151945959437977471052402728324566498407676066570204664914860748923247753208702163885985096312285546693823237021519274778452884576015062125626368165269231765182339417033117864141427844140257671263527066805552134869217731103620395715208635930807585378247155527068653451964435130619541135389251283830131831008386975042288749684410253294417539390015355871169768820742530819252685004959942849349585698278351643246961141610244155789740607943280185006073153659081314665088590136713557138217669937110310105667199894161882938712661587502548723121692510586927205636481867480792557636532954349215567520294905299104128820308935937539919588294534601314323346828432169158083073997210194424637962560385281456640573646953381286576468176536887429577863584091305369094199571840023603679312222478916587740414453331337313916202922783803765034585505403325457512630198237256319368115755042944899509375340478212689743319342216371015681568231078968113307639774586937385731976442535946324905179239847438010586982909636125479043833074439379125409059610860651302880203156115159402171598535403497056580167715552180401702038028917395677583311459016084079117752867468707770907703809620467257524941838400082302317669048427342727872615971794635568720360854805241524044690433927652320338212325883910263382012100905682670985932335213000763280218689760769692699379818988373569673928033298176347812102774236885742008721729248234296501941822891222578218110079136743708602172837975993235274591208850223430857549805302114920643780839565728238992536408826656744523377722596900843189898174698370691310635669307405950860371090680118715474989671887100157273244552298244165463414682516195978519398565141464185460619977956468861042453603724171997362533765549161374554975378100455613168697859653765591659268048924247873854893502087910786511311692207823594693507454193070913569198995876532223215452146245812105007840861933459724738789808956788079654925458179565280711742519392912576811694178438947683233024884072345784428559753130765240772723078040910822254424562625221691527357100300756382197349207271951115825674368291360175952534363311554416095373328483890531490637839891514234813075415087381404518781341219736411967515985107793802603557203274157740114752374739837992525977417831105298502440406874099583466909567309092447616303244330536483553620787666976780815026902159795146316626802604972155721330680796628620604078941694155688130615459176817393953535903959594180439078398801115167502975382893556738299473488500619188320578891880149930995592522072697449205745863738700574021285530417470443243069920069956571120556949800732819928286956275423788897279370712388380898835757417351938373765271479278720546679031422224027284416263674503969051285957888017358687773472886416921986081555792424323813404851513290546423384566450885612535025789649538810189275133077949587650023659231609366664892462996898102960611690530046456636334885208134777120305756670353397468908009355966065421265670966054585791123953970209406179447100081420100385223500758371900699526395701583070691513217215578918585164830202204981226301799204726026449680407529698828401747394128555242113916914810575442368992242744003458121119469587270251066648959753306985401694178547796040185269400632318002703059155949832673449640538861160073551336334019622020119031864548398113801856111518801373230245282331730614960639609565457577304686425937948714395430128528614222342148299028388850221587026809383072178341506589504039713467676220368570033946408150153125760316101977581716948804862209929055196511490409476770321572118705657876591141697317189469436193430808756820740997344549352155122542550344594353239712234166432691160533612416559211441715162483626564389659768853935224216557654103221532593404179903994615347778992539996723963639820894495872188688223655737590051060080704185128181944417399623254107279744561447619977053928118635192267127575586713144947798926121640784611704186627270602159572052442687857832724487719936726596911653787001410055926896491163292790355503398713404133678268420421065368876160304289655116693207384841191223567666143432218720312638090355000901397876404801048670909341344437258092418489267399577137363898304800768893045804658202258240223872181885595056746303428119451958546580264007581753710904058344420565001262391112368153216482713802029477835248346285520250132659526656407344215892249903034438440958166932308120336465861200713819869131833475025032292996257429661059078144739782232091694806847218346462599255971031845517405701814038805065667602013098291620023421891100315603103087072779651341663863909136670225621621544589892470014303231158481637710545910591759001896935430030547562465108624440028438096213515082856414102600830875142928766131478187751699504065223445202065883464219457450849924746572225085197631389536321760004027931423987487964556753783354424509612540708014887867549188735866728556983605991572370029499314996737618720433176472043723592740768707885365118141297585213367338887336890398502756242978189601397033332874141135932577283326027777416230841680896582772821458673983795703622263211624244449742659919230051752432900806766821490430513316363250850064388495032956711660929806812008075460170122138473217907372991915586598936925481365474257714678852179269069943914032753678484261839793065476767586510606479161836261750087220157305940510181897707069871214493368103933838036540264549437053410099134596963174865033467377365863640438548026774066150582090494527475295851460209710013581773427584796407556162923548225624183969958447869652948311788776226169848941251880591205370491004565129205305600634051684820816946815932119567194150774074723601337472909730636884827467816070441989873917717865852434307801022661200733111469757021904784941603108998342005395614393792309383017874797560115644272514549316899386924713406109062187913487012233468880087343900204665577922425456289311653862911876227797315796315677760134445367175503832342011074489062337633506388967187848864753902535137351563711989156824740234682770739882325548038712513738269820116784631999525961123995542032369209356797231500847655937261241138784547756850635717598413260024710667761080541043089583828305465157257353213455832776608343730359839931643707270737623467404573470820952529449793604780324592159366856793427380012766882874602312245491635811787519713486972777519857710331589284606809329562117714223557943833913382187498585876785994640632116749506685227414633402381396889941343825825760552588405878674542024448151726223171149254863662956646242645650844023124547629328979966235286366332736653297374576906711639066754640644524111626022540727673648261935636211526563520691946417371451695895258603819798996318456287184759275200436977752078436980551271815005686112380449092056493044694280957693356437477837992954150929845019968594837339732159998530732848552837199095031206994489762091182104213903423387802430964337443003898707297678278032903559473870282148324573605911254026864381594686911122038756155282587974873661780013496738310970104904727799904470316806584200279428281810211654990962874022545066487948283550772983793352385210451269680300020656010234951816249928681621060761976696218341914237708587880216561043028055239980053631739474481929025566953285492004599160341136572440300808327506253556408129480834059202819521673018144160248496136957005278699726716979184880964576718348680988713129061168269310829540742716662773080824380333014893143116258793441159210293679684346687017150788841073320197399054683922675022157227997836233457865247632235211280657956438291067504243552053218244920789847228688868954918740125739542284598335891210244096134333469472890846903595724854158366459134369716357095861766197097258509085183499683011883787238920711562243242751729412190365475256735669995668861942817550522460371334585915257456840130750014772297849478681427722428316232355763667773911248860281674532490905854562831440500651034870977948014543061489060742418394175414955825118243239244179853447969999274796951930329160861971634845216224675365128977527770071470367207348535073185265576347422010933411957047808624564644917429140477571691686011083785401497357863972435537780560769508231272571379196294696122602993229191803305778409231745080128950469095363126078080226987106647533230564344251966216822868331442702507205628781357491305310553735358154742012234584213690834961745131724624269923716504103579516303228779165885980263524880481559931502155096412952253289241649699180315886428449040878960230470485953525714523690007983986884061190200451234064298152718221495194755261480009926518719232539467983944029360068169896956783196788794094751395528391227894969915553681044259466927453116153362814569088949471519165589250471607962356955683195771864523951645989370756542593788044756770758134130581585709543221071931251763383024091079881022106300138603367693318481878670517729847128740081145872407529781504621101060938935878596351106735066798933577911399940234975695054145210042997431347952084441700014246010892641386998677604999512843133303526467144248395487640610641569909368039253081506923956907055960039650906563029929473714668889000084882127551029821146198566620491307412949904564603366429446531872127079534886931244832945723964343388991141490238961950778350974973279765825354281739580400209155275483494554111869641847756929301630251796129367398960429928741440777528863631058538965137260009395030121364525114409883865618663258357680738191542294126900660250024805523088859378206317643472012416736762683674053823925369422001929798955835925151989985316578326607941945724691067387203565844470679734708317125244371793151877029520649213988764539948080981544297401086793039723209906864280352886728008402322552639975952833053911171734360532700328544923629266592019175429353636844717490512704517732446337225550178768595955625287851452516123251096416068103816791137906449751847198076165967305974441961384864808544632396227493037819300629877441912790751845169935595709565169100313056482544144510219683116765407195831773716079817641883594081864500357761223651782474753781006588847943151539019378493226280414487521353751703314919005932784605351072085691150149756067306784831204201817127059475319180900494932154872408881756329563897120400858335110099860831276705228312738498523776150297101943937848943874484014227845736952078075726378414143374558335051450273528112926992793286164895862266143324193351357879603878398437279759822439010574110058129785497870335039479718305180719848386570150012575049387752340607943111170666695573812167855755398587266877551907285420605865694599321334921549694534236590740234431065964942873416283455689822322249060367256703474977462898029658308754293059106774410293844188396386857069716532485344203110704259773248989701839945382757040964248062492538934081128664517216858628797351340210509753329053977612566075171293156781074237473511918346913826709555697412803142805391604404467239838428722579272675953615223344896522385954668841982490746379508819859526025566547251272540421511390704750726486391667739593981423105761937320337059992502780322798072918368570779354751226348321513904457487889456397067765626994724517276151713424826660229262421339926788959358615365929913474113286728759678906535861965109480226261581210380291146100834584806952731647993789044884242916275176945651803487726689720732125295229751633555762407499636879886922117643110565939858962567933026237462976994554457967295040456474561037041254937338130529209553389702328524695589535044866170269079108908531606348213196478001625842031732156541937064544938176338546503684775820951081329090377903910212107813609485650737161778491305499232738150471938746943870919117156883208100196027841431288131422068311196822981900596631796591037411123957934069733875437156124682497493474259037514136181938072821589293739053689307175544445347536337892487171823353467802120753217468502014703068151230671843732987262903581366330633295406713609223123036596654420256912602619450993404101976298843244382113303266093201727623719389188764928596374426904475551131341715405704177061989229165883374254546404111117425953412787889074121447370774186014768562634939303216551296315785846653309194247467087692548059374118257745814369164062546569496073606965352624329001256192138696777868165558340715945319852097621124170291170625571204047256711726589930644064103116748658024161283094507151392154038967532343316091835891097672948966439758424270696517832893975019850464711170402281560336269254055423785662621499195010391019976355288534378085158494325503269959390808496282413031847322975491967015654232799912015843034269306834858809573630448364330493471402285471325709859018198383456775134352688384021572113226798232901386581282747989118447608003409031945715434379679829656070289862936046803603511981480157506709061605284801217228278088392881661216597695934312660009615630777285012051479597997033118306680401621945117529685282669895470779114578867703947956012774805356817567062573411145644883528814732808481889725217766281988690850740822220883215620950133890974522441447552386067937354122797957441549407937394626275404108633222106093824696605815520008543322356264150746505848014236485084165922016800417054461942823414633419495418494871254335769088463949123189104020092154294370149026510974646860459962196343332113255277081299919358825603190064599902726659868913557322030304216891656109171035307787705286255318490922329648224661484544741832822702972831421479433055764402183566055854190009165313290239127465792513079770693721136224696718172429214063924160750842344503551558906136177186965401642867601890968833026533566677373241081199465718790676119322280946761346557365303980347358494453499495277453454751502558437356242478554737587311755555482833250562898302578221099360795362829468228071566372221441056851705406872204863058546308085992193187501446035030334331345258216984535217054357935494775692583191652254014542655126908415441816342533716129229999077120773291364742347150554187381753067764123008168767949964902810962509870526419880056238959676387930188382810463905809924178130621005075422991912431146187965327004627982465080503434061101684902143313319385076872587515234029616577482174870119093438194727223768286622993232782914358807233789261192686617380767960205402392914426872766185332918985476593116845603019311948319753975523172879992366420340012903781239881507567471927318481864117781935060556225773447901678262791739006330922068460035922133006794552296363824549685354473392696009831812325023014458005839868939449013259515132234750337858814611407608911864770103828584839173045908124680573815314824089833467209481773479832515935380661039563379123548301160753233228973575859323742848173959613899078552302216794280282441333763587588459588359299422848311875735109392868751803927164979674499223223223755975716752757761548840253344208430552299573270042151954765382939354333513730560177322091839279904907295588016485766558725910722673868342176617853179133431732907267454031824194550043964465433649868576734069894804188782565035435483555485897500077935800605663485566419743528561427607719466856489977244988740265772464601718695714123675284745120828495016873523574439966534636498082854547662350754234600420578627608854470421365287903097567376144177661572034387656892714642426534317045815352892696751605695087921134041101090842788555389661282716505621594693881611848386102371445909279732989180052390790812108956075345090256368487001310487589775887506033478434282759619208410213857387769173037790518191145664094881668919555202246068613691906091432657889834561249925671040775871581060621671078547043713474281564816266796870833422473065061761899608220099007281967302558474281726463221881284967141373886641624895855114015393665600099515804825353252474444056185124634559149528318577289919502134877855808946419061566006686018685591375902114402696747733346878972612513149329083774008542449390438953565672685042180801889332876223561145374838172077978455873577851195131069760522546074446489200043769536208166113876133393290875166378809946602870825508128213575095184068468313973511900352873049471869569778325915425891434404038238560637224500277006415022424422136320943269964274104248768826153565039128467119006816917326970067438825274643083005621131231569597032660420406857880241815885375940022517074466770937384245477252803329970163710362435299386244913887886181994081436855403825332821838828197334511659358739874172398581654720854283609571025907651264937382308633150434641908618493639963194664056112134837194936108478178198527792388385660625850626950452062655936314109190486339491558019267541253577148665363810433738205014045939446309648734400087919128801580670923176008671586378041210825146430386646161338802847696612096852168161582095431155720331989727220765637294438584365007308409386659305369655398457081056744946690462462604581362624017872430498063008065462926853000694582237191165573676385604961378130373352281216656104595839835859673829544211307538098844010002926890627829765756776504891517699819100855209907748084680693304034473544499322636979630074127497794964319080841613342044740063955955141638541826968490339725564868999053446595107722918512106071436753666853062415514196075817835459223517639772446518502243651759891666172490308623595207730703610489120469566542019382900909680233013474802385517802103609630009751389677846558725334635796324966176535412351459364630304758302250586578971685966592932439122718596237276063356928539541879575024902308015035096303827472676958737884230298383173020188491110087054536567716194362312162030355437996904748900745080969066650405037102425968068148608378355646456502664680024524212304847833803156616027135894037975169837796559597037600182953252664808100336694306436275960093626069429665398608460119677391667956314119101561288415790888602898308964128893297713235682687433876151944953719667796069532943152385447630192533485330196442842115039367188444231873937964030323121944244720849727880738067491355017737065587362970296763805613149791278014428699678335079835564500056995634624660992127767086001279963703589705878525617752476337310149001270074723416787913346356905948131710863488657005876898799725074771591427801400218145983480045188414972279691441480716738474161971744764624486464023558080642626090114564727145128757277297090582547234532189546533304769314849371570468982459894298627793323911652765662183465022580166852667227923791730534449404970359755761390449070558355146305703737528936672093870641810799890832759242580156703995237128038798109090462720248590566440998093852193636978807788271554893920269457860864618014902505516868920106994081572273042774265913094816150390839550375740338503935018206823037302188746038161923776012532825118065313101488576060429851939794721530867028461969666919702826565031733646076213365635395009998354900766414863469119310491158041455217595449991326866869653393922735603303781427685511050303767384093440228672047963089074841914566931192556415001421544331432590603575475940196785229879321610002961832915482228853218486231407314674625615222967397335923472059293851458945116520750914282501530984342841616152177284766867565527724124013410814336578938368354220269637420767160571393842253713028065692231368553814282772497563512910285343983087989876024359173070407642755696201140353340888251766471608379358047694532615471723114849784507736854162539117543032963139830892282443703904962565421499370309593997250673687539781538842242088543998155083678459251411792782884877169563427960929028972196297126975886317285959953797948504632113648592820952036040606043110011085146865366813775180503183472542724540378672329355697560728095423430914117969310313234954270466231764155825903755702329279356759210124310262314885563075005445608467755441843838035998309517552324631636566490839657599839278750689432706522101527397190395706903349793688329278246439186083257223099450330737638135644648409630554036483877969172549537793714560681908687472513530886955697520707459264641228361878181798555512799259035207156433147298011073061239816526875271532261154039588230245684821959563691511997929361332149094540864275304463070987307927692690819536471640298628907314466924721364039301197078635597884576530952312182212168270711785633679373750444070901150620881167512730214211212025163237062233889362526177854534788500377592923380796833652794420765582418777062038012316453492149322131353696709032230820424999725667260614152323953143356381229026569767848812043689358876405043853040545318584446998002610228523077951975990892829734827666227140146504487807443077913814593868946657792880018074904823720928335222220149844972942173434379014524871515915627817944387830431409271761521092490537402593751126668592739329086123045324763017494789788449214553861956553939417163928869426573286149276542227710988247063446621846648697066977955672508646435006753438044681746231531620311434154570629127187280883277212473304875540995041425833021180451057485583186464258126527204023770457291125116339567142577584618734721594150797705788297036530615669747282139394567783421612757969817856452939678333645068482855526856664168179464463608349164514404085424821086351469297441344597402407070232659722622169558583394973134889898060858754372097139154437565326961285091415424256845900944927237205080256709280490156200794376213728592865425618861043038452432222995423936413027058879866487991852257638324039605167244621736980541469062208410692504463912709052169560566729684541835928961910538396946399679140523032622138653587863352280261088125381740851079013191101010918120444864246021984904503597819378266490630995241605591653761589878686609561437427402682422827642880022266972194961478140755597635082942822866341582648898494469469582416801180072497158293587516152711006743965735918450760494337174416668698800067416545428924866759103162218601717655728685964900164684195802157131943666279469641082728109413667799746269913529175231500792325386897298507650449832027906393669370553526197303358387724554529940223167750536776579657539121150922680626128128996068752962397536584833788603004696513459244610212671855729191901614251305965249950860979055129931212452450189633218577796503212731609675313567229422621727989834321287210784187826814407709876309843488308613766342147706542606507310581767282031944083473852851025918346266346978112007684435450690962985440031274729707917065533768636595860350818452691983160125886303741682292043610868753084092073475001360021593311682215314694714241552264478470738824241121833965563381214522705348970093264849344614377705839281476987442404973820642657785207594490737676561743181988366021482721835686508275331069585282508749668813613682912829537610681034698345035394020328704138855042940469267540480998511181926591513662339626414503618283793093324416503686654656305275454546159811350780508250967679819707880028616931868066830772866399756600049536486770806024281178203838761172567258364472734737476123961557577522944763260057658787932442915997161377986669312821677945905232554663017182504635646885597339104864674273504581660838402734221744389132736216709978023111225692146596575945059156015025029671314433328497033122505702475720006976593904724091854324191288361274333839920736418935827099964016164179002468640510156432072013483673694871801486422102166480051901798146423029533893799693083515982268587055402973776894607454913543152573919512144024940917943803034689814756211739681149989835696434046397445315278519994077057935965248537898274531415304853402000652112223646093873982463676582829000591660343311430588484443677165393038969260915293249133507704000565221475429940441190377823590696655972689294313379000924749269985567646702892265599179952059611002945507322819320153858034338663173996105549685436236611876300693957180302160949737780533798195668190401749804738911408060963269328192871857856013402438151897675553296630373456566570566255351963269026420943858867386204253164433073862592029416929950587313000489509246221114782800193817793452655729533759154402894040787154477367742612924961081659377367761998460343180395312358565467314832628424581461250284730783600118683918616631951175715578869758297272959050666529197436927904779450574193131185149066727808691058982641150519205915435468858404163119092079220834959851181633172801363055591510089110410425796734811520377516377445493399398837070064108146876693787998093222580303923323974046300299658421918577583565518749286106928667855617823847238521300208991438130133997224470383541634138267027315997006896624395716982485220588900581754336329870566066248317191833893000422910225529163660274801038891201507367635016758995550664624475353719646611406568689584196303128056978973699052338528219862331868906733806647160001580625395137406973081579510258621748071292678253729640466933190604606110593521622049981075733156139935374606194150550892146689083545922732337131827421674537067227708844141994762621437823327198628423353338332421276338173701014638646699303175308515692216680767126396444449704875132450034367976565671656139151215007858408890821931933627603411781898559142755468454334240602007124343320337911460372126725020415896039402139330319356519281602782732434078698684429694850037509408718718662059691861500287402618282737073143487859622319733644486213124056908332867245824746745363841427153017434162870425269197354912590713030624568686147990564022370539467644014807603500849729284588845344147914000308639171900669030047821308199003474787639886738747796252176392377973172846951022812473850826332331116422323405722998766924721852130398646023996633506942828476623122079499185865198204925067590982041506048443059887719539400618694165633609263131894374861094437018071414259885632520277568852557250558849705247397480388147763545940471862566373255191905227483181895471770258038527570365093100468656242584838698589203405676876178727794591411830505598879381948772389448638495666760848272357025667844688542865770223745979370216775358827175990589606017345598428592386838168042456270236412650966622149472979756629483234426413365466068703147599219701990752367670154122799871683872739044662853291242460670516226582226435055538116943954469785595420602025084262237644162713877889081440720953435743788056954527768319009027625239053132250415912638185414105656595317804635577397135679122974473837136710135367944844372714000667444994131792055063064503836522429935600381389696135328929809798002904939099186111650451570465678328222407251944056059473030990329644290550444071568634794553402403808945287574215549577111338710415091247037243553861529568857999191837957555016251643257429531126371784636110451095852957145588529447435670876227944141767350161002194552177178960641525279082795189923166612470161548247159480074140295830954438020573749556156936104984804150139987928521669157511079835307707171608656339413324094161806883362788881652585194799858644490644778842634707052179056143022713835082620626035869093185599138148534715960501770545739309780201068806213217496758509262983790603372301497945368872125242328957046984066879484155875432012898923646900927309005937159164926062896645747526141149686284564242752308246708649492930145257828666133729646935550526197600980330722305063227812762822700759798407454721065640293436072198938911849702435318142378158357646658414920713923801134681967623676920788687576745695225951788410045412678148377588356128950737405473979301772827893080347319931978896002856092315532485839026480060451005765837373612819643565539127039292627954528337486754691002523809981464254647239295954007587328763828958666120405922393260100649416631024139252552235311988274925532322198558666692560290155281464388431643124618959276867359768546813633567531508241220720588641786061565719440626992609680281804051754297061505297219826598437084959454108821283445151512387952953753199371709305656991346153190876490951484626376362307055090941258391208511248319816716837403135387965077570790932237624972191287146787476264645922850786690307241523907783231741213126018335944191500192949576787626275902178155056044214854474813602688483645646202562399967893741867623022531122502682089129502071036033411915271588314319717574262801975823675570658117208452034891650609315937437775649595494109004585687668406883087039577263173894697374162186744543414031224194950893616795717182280584134935808560188242123590729941134033108424084769813903237402728845469974793151722105180955337199254504194810469213732735113550561960884009989187577563104522050154608564928832834764611342352431438898770953207177505498379294343379756823295304099510041812063806239642710822766588192443639678041127387123343753207149717667436917694384307335423919933123112358841699230874610988517926851482737631826020394657696378479747480296712523772385496303676494752427790708632830842840893055355547941036568765484341646987190647717904434404842698709165003541987176498744723816944180545194179876534735175544069359347610064111878276728587747183936010207356006083636002310729328268193221133684073841045223704751122901120000893873708168374103910093060042017212973651885673101470372488997737256106861087514917264081131823156578042816162303220735156896964534856872950650851450030624183299470225414840885435249095521688710084506789839525153724230081661075001753316877018358376660650293024684499505702970425276372294889631979162473592533781905231574337629723204164732952744476942870904563394687008421196949768256671028198936477256972218709666318780394362540445594280068196610659514616090993630694795105988850848701105634090858317053577909090912700796590862515515097488494164799692187361232435360757056731582981490619065149691542376855574387307776348764642780618585435378013944512722674858111706092146693718754287534501222218145219444782954874962935360710042406729116309159067530323678095410721369243607202327969868880378885386774046295403656666906737436516833570123726393077338702451187412065285396430447882779758178124416948814259446617819123252896329365247745902497709863500901146817188139950178623866360754284277207497428693356841265882504043725337252325904769593343270252811290906352000039041567067092959851361785401627968947878268502272109408557779330673807429832102850524083474676394330726735324959106122433766548073036064555644460704302976040221539296507409320271046585741340033418130617881686075963285663418506211152515326617640292414587581622234997570021390770474466646866416213468299808129444263299491817564013179076838241092383406149871258152772759055408123266514266817292988177357862165662587235647166097042507270560470897067881121649504044738367557787707483613888866868949606774300365043971353488009174040945671831629484196798179679194123891913848314841669563465260661003338601702945748983224386265715118565934492007543440745554768278554829661783275281999960777203602439394473251123609274855005819940708841898069872751327603627792702244905214867352514556557817500399524055913693424418291962624055557236378144245743455245666949743914395884344256622674343717753148699833302402232235990433286292756504905310310938824684598831393996074876923593804159644477089068201270327531054016330833586703084866202732916038138827578906413368981927199459928479442726280754824240638641113169208705706785273392335064371895199746971089301060995473431442544572226643625134300749103083167841626345651403047798692134986973508069903524988761230713648350511871111566385860955049422887410729544873514547247882155298065354286622617146833846087628115706941153869929289448361024037884285668017251926818838872669521728483745825939055678499420542748909745732706664956778598914101906673156878436124487640773965115424697400986477110746729305555686581567255262716432023371815526063328006109423813371251463550285268217278014341915004870916482158108497422575893097645181053896911492258093830765577576763195683826355830060172703537103714242876211014918280999021814468421097428976093591889929252884323522584072586412816138275139290831164236687704594498080834277209405366341186131693581120183086434225365491759555659356306252187195737165813201532267101785700936036328715433015022949623158291306619379704096324845735275227105149983982397399628004688068259033092850172801438744891820686318247988231096645669467381122118165858867580196605737920188076870899944192631607301524991617213915317991882427049550239160411160325608668042232363804530320184204943596689869701303368220191524264244781041207567439994121558279837260279673677667336607686131421122634217626200582547222004811665367641395697856742970744354320345285972446934563200933087724257058012739141206865817132017006017410896688936050354791056475483523525661066188029694028436502653551049915265784795431378273806178857921792437567060613992108209433399782348095807232323836782456747446836302186931537753259378826712881919756492780551870325495248006764502256384143523937548423739062540630414333765991598959835400083592031906538445778254147395286855647779617322680417019505466532525908391137433592252604530154156237085306538259749224601018977821690521061637324081731997857517647369713936820988742852278108194505543996908016749188160025330051069493929541125297508856370427578547957070157360149932640713258067357571587640362169804071677270493607713877008289011428651428427012913686985733831780203992971817184898147170056687485711189837748993512451720946350773190511321286799049048463158420415726925687516841077658783083009725437135162779481481990149624141023722215534799722334911360211352780102172002578963001222404498449007413468324783797365851222238298249178247751483997369285746938992870665748769129855880657030639748278823484318187345436607168719419755760870312432169063799882743811835722273532358313407783992411334768508220302540336161229613903017121726605442152061503567601361045559655395358810103253666046740934851257032429038376940471066231905675093854062352909869963861547359581599511235290478478157246258262576933412734430960019141660379092287420186891954374093028214513123461609720256506370597173024673457151839353975980452635585007645725925780413749275101244253917945399735318144668909819774241106104466032141895112359738303102337332629536855875032707016369348067323806835243492228303674916094319711319647321551458289295491739911755869692596124397548426320474155577145338448658796762671235588082939753771067075822957551625227794452100592933480188348002907122503267051240276619287927274619509627592116285079081596172817092617195575276123820425154236404148086324626845125147927121947052107430490949967320840883286346920119941769726308472813287013159791102117519537058416143093369632278850178812041439459138466424442807366545457418736332383048432168127185738228782203734812206507602560115117511937619848552451076510130769308536588869106218137882406691304581796788024090619348707942494047162356767933598957832982555198190506025676184057398592887300089404734267700787809804868106920491944607248261896658370942184207544009247899460408897906248114688795249510241176110542594509197058975322905783722724540287887316120320663853601750525668068921061227756436062203720801978439175178770304151288721685243992231614133843201404553510361239744145634544562992064843188475713303765590768168326737263852026640988109621991512491799762570407050163269285143719080287663665412459151253278181792652947548433809965894712790704633322621846803721628109242046710234046887953130076565934158382706759207269909433127407040281075410063759107624366413298037118804876545084990963339720533701971081899001863323678252689535738075912521614159153974721119101500378966114480683691359589528017301329622594566137169448112865428923258223768191091453711462482322572366451334329620558251381401577237336934148259796873526774917602508174009140178917870147400243706321067845263075676778218577603266809163453514378875990192092235507743296669403845363499752540047364185766622240377274402311818281208241084257181880222006300569328634471462201017929732264462927214819518242364293860846660729383666788861080233557916223548688513406648368211514265870854648196585546931968681875382285180195992566460685619856956783630487694707915998434870664748089374895928698382127952434053394255000539462473045532852816269838667868628214487992422711676531215979414798750296101867963143094038295355268366638567586139467058656566002820104627509802582653362313241601278351391752705771447416320244839606394489792166073205479981412049992672895899165031896444929203140676269378629592976733947571076979938890146311398910282147954207674298801046737714152854366760685123827098710007535293969908276089854199184929653957034704443816133506485565498382557255473405254945331430402149411707561048742472287229028901829753911107035942804138302674700319296645141929795808529707977659558415564624708679396896602192732699255588793247776877419080178157492734821806126734821627093308702136903506551940693965728859683146732972132965340156797798041327639788907604699848502998235763923416504124574716898815629803416923289958404620251591737415846316015275801512336493321088032673544173883018086472668034520444994803750417182549690993405510856037973377341067683364242756241497145499140082787952044112327141929515844830360613686718158179100396222544161511775966096077833273262388869183001238200405094344061191516691312569492599796386555033461904823806663421202566796987137990860279092067692940744145537854947702111474909522039310969227280295930399316224292504802094554428621801857817460997165683826496563215689495389465221086687261092917395175854092463199044201547873910845290521693601261882609334486129741835718400931381426755204583763285908491976893014365595631855358503607146936859274001551897702666935348948702294591556550642137697776694815431242022272777778006961797942714188608098215984547709806764747034011891899904908552933542541430852581847971355053542945567363565612271873512151505458842657187574052487380535480566911755117222694675780790479297645585576137277577823295403288344314968402261902317935644942173026016695697933040725273494044696445194006323682182625577548260886989524191617395024685311402228593426406249281032394668497349126305348325325823841987912080411048046069406217596256025760037304020295399127427903573447699763408468184446141961842530471933351260152293192885492121659521083190623745965646280509227799844736956015230907777496341007284080244427771615194843870514960937830979786029435763268328938364861535179884575418774274807399894566235993947243383836165784506140698959767032449752728051172849275031192048533192370228585452685048107063694036421696366839127111519151074026627014125347093125520559511794140618035914039583306357544147099712090878045613687006225904933035594315512484062524812251953761150938598750283050792491386175075675759452278236507085565785170732390708431136549666958762904978266299586936880751016608863213370551147504059697390153505031615769042708894024235745675504605503838250839594723330433218654816222904766982957746611582994718437854786712525844489092779323991018003452780712638418442909166211400223825025405137847025966378620501598094398968089387406705746570610387258429249079834262777560217209893720185964883868804678132911375153134698792315123526441539915361070058426791836377331121843331446407644540076444230362324709679082264813012055250752607108144056848135404477505175649649727092240083591638413957406337001113438933162165099158276880242292249024997853659948294119192773539762556460043542479248286795162483336259918571142431122756064352727337014308177395848918870650578021897690951636072677357997972308181228843310529380581056649380893748710110304826620807287033086091165482399485501211483094944815239567490034937280641834582585751783186529409586340139890009535988366613620674659780329592773415115357910932799801082951897020289906651031285231584445679041923130312916847876670103236108575846912765757170014676348750258079038640118725181598363451920037869271120294411342674383774060132490776509892884263014476252034898775364059685388359224484370042375872726689755790410115722223535163063621458725962101169317048677594232494590582770534646445497043061948230758566508565900923871575849364274032568520376941108668530786792903441659309498568399596012748680305528610808295832587192548390276035217761296954648857230359044259527422127198972339470302055842896981253877278819198218151592271742441785260029816438176766596273670777119032245470142979827129872838449422159796560797252079771725399749656074653822376405707891031405991491456931084461301216043149595056681544123594047821582458879729032655703799832435208781249598149882160324799408245614070328897796330765076931686457291508196736810536345764216230849396798940857741425222348867966362096986520955751546860379703340039915815849886426157657549607763690725712045154373117510493294469352897730724877285168520908772884838105690364115455039449008660650899441081722525072630844442682246874648389590688763770502834428176404764451599252207407729975604812483742596002194991983885071559444479785739597247352772466561744009685333245043524579430812030802944681219604949807095138695918308493545292535707428246369666989975328700552581203564444499264434091117534154124956621640277942265353628638410135466442247900689599531053542636250204782725336959188650762221262116233248771333216680437711960556807663319533195988382023908890120972032716003963331175457300781362035776321167637651595684232310159423306939329409222339830337242613372914146485910841938236030417622539120006047305668350985766613770752196397823215228841620019872044190885410901889265912950562053894761437470550237428512983538436788879103145438999493267258271195429754227228541283563939068868948943479850995131626252886218353215217345136856811793601888962996404568881580332759494839226154747112473591917653165629228736786291817383452131438400289839132499298689812515269909729943793982753415075073674674669667002810853995278948553123050051026602668719166560555465584312411825506984078147240673858648142067548422623613597316934498442223454034408329094582913173118524617169351842053236891763760585797026013322394357490056020300352954028149887721357670593693916697363115286160627816487714759195647045869147826853572908985745938764426570171336093501829474303664448331084030957913073259122826558033365241275666562377768481168691115178600180789928420251960575849070730752832713606211949973519495349510774504084466087264890105208702456236627715609874205660458737777592041411389243908814889211782574105746926738996139908402548273185479026646454599568817149406271837632444472701208296712175077382419616154262882200686440467065761326669315131081688651834794111394598838928254109722685476493173223913267379197568598005508811384119338346250250904265877468923018021460351597476830979020640495595817947200271366159501524662520161041500656713015195655772894949935878528815181244947006304278358380943622930932430736313586278659382632118977791406215732725030140166914214423880599904100375103985755496401445087137257432297151266470224305059072603525865953204590296000569422053434323698888442080700251927693752685667738639998937377190803678129626431204422917249999505444909390444920383942703720334873502540848525979287244971530842027744843973297037302073058644140786537547076513503222222690359373183751533642276550887373493384682648953264096976921277924873339841280026668663764060260970551574512099124692786047144397427377723008448676794260179537756193296373540156222773810772217244842474631808193626533699135857231570560407081423401413129469384671105391529198100706328391666242084849955380227621478528372433243737721952331717418146331366978632385802531662706990784772624404831404719150376987942315124496434911058152594671106094387753847897923576331403043377936011815072934890307840030926376035732544146903485542567420141839431321582829507146282842518409171686620318784688288672908754349365566139110271377971111058652422447736583790930677697462498933827312989491786769374683403969417292322077491026866432884767817118898639613522175215695803623775135538954305294201167872817065681688252609738623180452670794924766907343702225260943148217969550882684871891294566547758357841521623388269712385606178941946284465590697368873025611387976203032777505235254740069682400485007334181870553835094274033649692213870935556138377113176662974233261704270722168339433971405577630819826520583869120024773753299417497887800131926654305406918824263440101242920398603478183065668111889797484555592981809089225146521276240442329115147602163647523804611242298346672277658756957314694167044492889061172490883666480737085681142435657645247339850504756884063922239887599376970406244780600126598224586484995691429865296156913570797031286541540711150419908676905953090214332519923403327083414990993695129482424593598228916547537182313741357759291637311998039555928699199147438280073080818792793520536901214576704176209936099197932167349895931291973419364302570835091531648680628368162915745602793355159270106350513856238720103178644174351987508972177812752271355580957814122302199249159289270990604667209455912008305069452936912081458544175594104133471852217093656147027709614451048774577575023389734689554920888552508767005449401852294885350087172196072087167902791237050513199373080853868721414306783115566417111283177205315505339048511319253299732061848672966442594869178465672810341234906692668044068757407705389793587549456859350613429200687685057344177996143615432481613664404050458973699606488671686871184019959024355926813126473961365389031310096122323767753828792353901961492252264450435975513240087110934223807596592440534152328575758044001764307172600598100039225671990588069173762190162277099332125501802385180399343178004775367948084785177751529560534805469115512346033166074623352039058246371337432293211851930286869893611073760073854473649532151700565630426119674793671515958003093439244397414519931221788499486289734394915392086987254849692830618071378405024245290398752387389868998171907543005480549483459885617638825670438084710880301033271318774513295657604722185018466829959945027593710291649463026282971172859846900620315390867397907270364939382965032296391429074921385309466860769701016344636020287536824527712361307756177403192099330330362401164281727606116146733142596303167327400614190167256762009880160257455690816475852133702723237434499308923922450415098202679638419929081534040074219346282794413227034991159586799384596256855143337010536726699138305922215828170495000320602907686942176836176216213020553110252133015305629896657633600203111357941384284366367761692820845000409526109311952586289531526626826403920660297648818439471509950613681417124221178702758813441457650572668621964827555316884702354107105936773464083844226873630318082318161839328571861845632136046924632759039256772293145366270498201434642933174614812184262367619008832618589748834959713142968539578925594910820764000541402126117757136100785149901922917997865254565038976936107822930146973879969829936894063179839257554805033034517227079395934825232419346052449486442244467939151335100921893817645180114879021295909749468100072323305971033618533464525449848196405726238540949196702824352296853480992410956436635107638567901706068725746853886029578549959466949997581890264061097738087961968538532431604093759637070523478625841704224514353821819023970828170777829298013929600541714550292027368985466726763959999466253665054278025383235492045901996409828961602224466160075897376372272699885265825172298696723718580967016324042628249663637764562660866048819685019728199915222973270722905876716912193183588078126519775010314489911264079539475632603450296988581970438151077201760189357961299415992131821520255314479631762201702727821234237453222074452686818755652009566691885937346391624421737657353187276898799750403762343601688789167856352869660303770024735472126986247070996361130720818991534503255407880000825098912081039543183110533263678425249894505330848076059346664968563409439215071417795943135401797386423965815843962861877606144420693271181833093329450791152929014914392682725691935271319698241301469834244001645719603374787554804491827183736916626507168433157703801359496874694951899638235993694611395646827874125755785482922393024563472168218752616196486628514124783473957684727980866398398528389487445493695121288516528150863471386105019169800570465138424363721417459546347967219305182163182341921959014425283873189691810827807279846383863552288043332602059005593799489761709009161470943237886425794601053529257602863715218080431680432051639402963541802218333076830608915108289757172962022593101293803156662170686844284841766753431055344272944676885344543050504452127496542753110169194397245839018117362229580069849877107021880819859391433519777696392899730348616491576409479600888270411708094425567165766809367998642288973336021522632446189085159941581559886447384642519707275030103587617510656020559978538987035570938940495839347971481174448773287008065094543320671348287979998568388027748638406933330036111044090293484501153896673291925802613634344269923125502439617266975539963779693182108231620695527480701381984377794151815089402616108016663523345976893705222219620988373722946401018822325093390199792700803610194454367115860357090419071629216367273518555102048563305525501204819348151860505301948257467831028037051264338358297571839446429881826569967309946851159983729837996326616626446190055658234226595939531620858833130032857702491094029971443649493756074029068973340779349000923389009865930315959328565775852485146635697370765491660961671242573071987196633536789157389188638713765605476654046282499311231485148470628174579549097671903804266893134056036273484726667824994440824784764401147848369265462888996315321711034113131991504567951996997959667484115583825459082550203501646687043422250224747494302185608770468103924859522386058529243731904002380809932366893946218649281989415403582932607396474088418235110813161030601743402301265090618863086835335058393507739253975653932633228462007913282411459511815485865687048505103481936260299355851000855214549656138477198374346390312295392760149769655413312635818946153605702129168709681565025798302329308650457433435250745515014927343131167275844114873253611774426881170662088521398594352579473193826934980778184324861414371309443907134574193817525191520194461793895560051694392077095796055183773923618798790120235432067756307465000080393081907826206147287278216634374263123641963825612362147867741546815245480041278384892774466775385795478502482408147823472491917097127221872711330817578597264002578198377293029958259254262431754909806532985243275720944295811840065982971900219205357031714540316366273928935708266626427329522714315344504057942907661995802172886341539248913355544085392998079080340701026631093565119922221837525950410546978198449746030714093068026485896080881642044215402849252045247015627464895533343978869947780077209579070298482001090579463298982879677546501977251677818282396737393792742617387582232302785270088130589864581658618566846442821555834240304242369123861579855389306532722612816504112713188045604933902196047129692030574470650757852624726720632248991563436863096475252680387861774319352617370130854180974635756989662867102399498191254325611879840045579044037461068378240561855835572602980819818564771898888095370237466302018525670259741523875221459055613654974797111596547324952905579580993271143653002730615399994904891366824399709504965487222659826600422920046488188827215801597022362051505307189151720453137836371956032181872303440303389253338460622592589905984879541718877896828417083688244763388087608298873048694560053729195972557915487699045515368048625693998483326588813765208367724572586144666446949729271595131848640167922392051594158770837266278192820227759113469762176125405755199187800003832844807938015761898185686906051617425980922156791111610530497348907153629615875882744944452606193654373467339493074164987575961648343686355104098045756768250816507543896167544350285124144566726178551598288315031962052904243366488812276759441549656714901536696420698112809239787397078247316981947765627640891378476414446856722203707589994335069910243845301275417254488748618432535130969238407202261408015850230905778372175674139362903559449942563045262580496097158718867895122814895316460477222114228694190858221816756198396895579364273744985125914226780428975017767025174590064494362856326495817616394422037949844768576557712501031409831805758147013807275597938223183667440446462533384707667409769712481012205015485291759712533358188643665918083560142585330623863709525612818873546584112786775754135603670459218766488223201546498339521003419540122083158236281783231169104553158198763640567773257837288277897347078922803612918237328918401210584429519137469133976692066471094809109925072066888175101614312491792735480208253317073477921811987077236640604902786900696013286788721086159139858461965507336897892794159591340526126161935566966673080649460564790169875394875454169355388997046315637892241163632558294521850334325072147503199464826588217953791003024104527527456374330393765471592380604324107633803334685005833905461016065917888780974630212372678404178318367953052637484941216050604333934442463713204926762138962289581760327680920257948232175200112319792842509917887421016058368591213745428262283828504148251235997395362309300465764325829282279480946146748708571912113552133820611546405874629152555569061168865230293650691524519628902730855358367742391017472563921860772610682016178990553444091441053314968932019510971000674990437108676838800348029211182526731037455667286850138223714795329701383396833966958918248229173061121415031449016614961646794595462560299111774326845425806317899354019675083870409412124300326107242831742605211304588028398839962758865701223886612161510146308987403610174255732383385963591283272427806395018199653133181295877158612122393748004603086030928635261239766471164509653887764586519791446180884508466407462011947081742239624587166541084852858788029514869451847439771082822897770891055558735859786557750417342667685957886781826694199187338038723904992621462178911813730604037468153437617179422292723547323100416943062314586347658543676854632527424211990990196546526759733187064941173722690359186573971657589239875902724924204176347652433954219147912521998689445262008574135509249319596217405107871756244735068957856564988139153495453800796967574829522734955753112163023777204858834107795033918767862775225222702737326352946562478673419094361529664051577501062381722315566682768597401256613551503562964161941878184006159484288416216155688298981706348863417094849753703588192793236762801595282234181793998253962183005526385798181493382244407839418754077773894758334885598650452761154362333862178015834690054415247625059241278270714782170821003756974041446043742326363812931435339956429322902478114236223038524022967258724597347096884310340523061007364586405815408568647480042917162539998793353140625161338793855676025311442860623700497823282134718935071057528639054943431241463482719549424980614635889665764094114119134767825065958730747770877035333792020125931730742097570408195580483771480600069488251423862661131619542475578439940963291171345584730344719585434066395036346431743712362461258545427605482821518927790521394258438210990470501764977645391749796556070681673336747360326504350823114438393208589108180373436509595622677877340972332199617398515389642681845509186033385928456203045938749916322470957467856123460030057881845541614456571001393683467732897711675502703865870180998083902570959084119638357286297724590349039557240908039961002417162050753286531934897975536129852268899046834777841738088188268071790325229551633323207643385556755105921367703076427540339812915973146528629833865811373473932555382022472318654783731858948927710900552188578078300824095634049464881494622604092975249203962444391312017289945167117304711108993409613851856860388866343991377284032513436563162380819049598625444966182484972582123069593368629356778479047561701930330997948574969457615625242218741594307289077223792646141197002192288586812678574348070723091264388506315552980879767655227474705751039018849629677541269353007262006274775044327163621355484181522122948050731372088789469485907053377508371060301689354239256275092752811417639777303704394682433846802383473509172612677204400983399487307456997981324462086614097804272915868573149600104618876209249484135937687488238368851779559575212109372014136214831133436157292542765484296590584043595021108331632832173773451345995738039076284872984925657414136737456253496658417434748561335598107205193418659643506856916373669492339909432361486024983300034068391465652812193215337681178492681507738616653136326607603139198229472404476840732201602135571607946922702664569942313388320924456642257705640707171904591468723785476862727044066671249254712999789613411394490798928989761390173405043450304536688559377487356156596353840764281029011845410741064639891186177421150890298046449501072560706306523269381969044535240076808050255835919305213313627493050149589487019126103459292649541035047437279362740467092640297933092489876674883519875559082885263246411756282728215045384026356226186402416519958352003260954251907514324711081992623850313537261489220562928539996043200674151660083595085975904547474823596171692325874751654859898764998919602090143838614574674066048865090626636367298436414208333035849286873837249842087172692161526485218693789409290111302920888104874507397250712544323916061055313042128473451746841146934940339304395568157049003329017386523162451537489967268016957515071252368353432206259596770604232937238182812882455041778970800886364603334765923512438365010232366215843046097681637075032388476411826101070183081191037626594590683797065656973555212863201688915678565048407014375217710357598469892345028955649149178513409021209309722345587103916842588951661357616430785125477306299938083504304250025429758414017406592974869297828347009635900666702639951795592227443394251756273740140662751791069555316517374068837942877089913318772831008088182264439911428783007049449592069792142494372015049746740979603055424972239619856549600695331335228335037801185950105445701805003207076117757329944844400782141882369947581212763760331837644506108391082435269037342788392693114013074805746381623349350546657998154257638168722011457507098765617195088310786925453652061755883749994635934331873139902546164627449100744509627123000680550545018604886346131545769515923081965879791134579895023838992625231661500950386802199724687421083253200823406884187161396913102210125662108638056241043559790371814796964570414582085719040060146105130471962273838590862891021527430110044363778847346710920826748472229450643636928325073586896106663959673842140742025598085489783146132219480612508211324413602848670069023172274610261051658992567150716952140841331526795285072998034026179746328352835372047756012565022925340936773820549727192645776455075559947127170851416881531395815919076126972117936638517334073281917346496524640188320962155231616926553446284432227353729642670549450604135384176874644301860499261406871740222285767419253720538519022039854044916518223714954814662593598894083433617728962455661163325649391325390637665722702581630557974786163593698267820598718198529605087605938658052989152450968758399948697603491791075918547290456686361199054993454608467345236136688518868138364766504563740514328037634685736393115911294757670698482394605637533248367979763651272681185089586439736656767538806752859771237838116030511221249848057797948666594933184326561664670044676940015494694438132735810062099549746343072653051251763880296332564772889731783124338979078319825657856636237618904116221129404457269650809321593091083319571394970051202740542919012123257247492404599502544923958182125974668359927699492778288755499959624466441107714388986333385920756192652874848555241054538504012541692699047071746423946195046797128738037200981379786921481218458760657974583035719590461771408500373418649612919583660655616128374812285182484646335856867092274515759066499105984431920063549931414606062023373611774100445167239092752903895507532362879055967719486961483005515740620565509862287900749007766957102930494737091232578829362631456496473076981469946211544837740682629252333528920677112815913820789313048505667687775283237454575934229792077409497482534461014069641286263652041014866274687250396114427371703873181906838989398276379841890214156881803919630829189191582054690502534591805720191754410491769745915745983338394843708771461488806646048680348618325067331830492527179646574911769854376556550461567338267619466967168025508076605165652742624153160244557599105763284535307590258382202192733815156747809082844762659876942850657823701426069675298912519274263129561116522057931797360902022203239441229294881197162118513564845590981007621652359755199120347494447323389253400001868136018385876885072646516319120549308145484102887807717253098262883441988334917877999682562712465660497722864604689999352224925687622018774996663124379933607416616629670336277203351795644614487042549729296042217744214589101097339403696411497843176656687429734944109234874210908142571782264673707028230637735772179394581383510495422330125406340178187697644367090216145509535924696810308626048394945328514314311434449170408248779872483744375803446213497775762872935374240690022227662104458271333858178422010911590353904243036554037180636174486778130377040886532797595242599405650596875952725023673392303454271296568328200160850746173912973664166809378556056550328965644220311414693137573108161247374268517046742237045420051365251809533421097343517209177084376219012242221411406626526865872029117349367823735154065379850910700036221376086091014261309900981560098701660149067792038502387705138417686565291807968120276887144037366820763018358261242786644816735566213914203887560095501905178039376227866520708817167059437519861395887735933670373324081167979457018651958291972626018693222206113836164042897300921684877990678745728054471371283754390467427501332942273786197650396341562257664149765338486923205559136836664896959152717034312704461539293094978960073557820362353399246329112386228228073972102223963717568298540551287929335429677336642258110788279241816852792575625399132668152513311810231816720676510987503646650830013620994107052166720273534883846317395335005680813861569049496827163830288572884173156289248234424349471607055703599871855178749070988732394533244267710342191855436183000647947063346517454883146946171451948188090454345584972757364247204182882923146983787229002173842913998842036208323066306210176540485063160099256264028227710652200372677869521907490072614217604180486889966513963815845991585194490482000855786323005709925633213475397963532823725058998821540182199691997432423263416479005362219432748813527850288088709110926574801839329912902741408725846725209578066329220226334252656207367328219625988580826982171723986332187437400464314972094089183492664586478514633372819536018318085892109921403681422828982559331398572539141014391332967716031924530443276717363564932959416142835936482101808480185697168572871533619828732339334959484539845256213655208352814811091500881462409135007478608774215514979608431423222229468516123395175521772144257317489992634612311291060845156211734080515523037617880245988217625965364292491988927568456955349582779472561954481823071410543874909182578119693178922286814442752048752842461889883288366139152446672234598578699560950212687923587440685285715742518324217002380829419991232783350040926775939361854972139419959377756452797100254703673492536166244390485296273585287735638163049742588042908720511297508841559962588584488763538294130323489693099922940559574333573145383615801568160236585707050512659544731472940149293043119155380187089324795174655485976280773545665286693421798284258715452055390440224039067944310591825922496491587129927216817809776156892761272194874231951832710416088570690109250362279453648707409236296123165382819489422372413315016316353629547217930629980304845532653469246255417541231628444651900238621295705191612373786798240471197728508233745337143699933641654051885241405971854806183876114044397903032172484926559960486153417207869125879302064187741644537970529371007213596851300801159461757221236323413007764465058553691537872956851211726615711883896594048011637875868118021944114621145999907106045016570578522205430459687171178118738376519252287466089136795945630279802532303449283241335579816139197039766863557300926453848273295198325705879117109711078368447378656618018874733848556205445035176738819079010230713987738471838018398045851388712658210406905301414040748344621547866392166249686615997042297858773003877102231756158815338660405933269554142091362378990706543528915808829279385453842508680406869631544555117539277896396937953157496182134901044921702842473275739903082019499406737377337255857288455266166385200679076661936966276601483455678865134859591051417338466780468325895226287114707687700609821165365539231863128777501344354846992422514611231904555712549349837656414482043322163963867964201163772067816565996912116649179849335415521383984296856885590260409901597696369334283625676963174166590006833110619295213160161723044445028102838572101752815593192483137942931540630981859069624465267976234222590848043426519021892531416607886614898779765062464947076238069891395536680478992946227822527784137247414687797379309924437336641385163108904607232209866342792278151176428784844917988628400714137492521940246427492755432705829140244352641636916402293383104377744983960095467630805184620624160982861149371904836756103271516444269329611809375406496950609317659369422708228099927476790592472217266503932478608300267835386668819967489143857645762006048550496818753946148386245556172088703204279495345893848880137898003437231841724559192685903119733203489044614683344668860403973279064553943435315996674364014999629163332379103347083688394478066578399304949912709971596522846327686373356596592468250467000738179724225076971261583773940106101810073145094435497467083423456333201004708048663627242329385728140635811571599767113063495812526367189104661249199095619501365304689230227656379357760659856537977614275175269428672907769714662457382167658353983262398197284706350807274364379224434043891271722426867268158705050763136006970851985575278924619991843464234583061999503701865836135117057138211987497350797739519241350122002874946086704911129593325957818755922861596497491381339088373076643047685945819035619801587087025177309589519402570841019661244613638489562944145594236637145105158597483381501714430808533033759160752531568319540654540228538394880652098417803143957699715873678031030725069960910120880299762477798363822318690503278516705448852583085423289337117537975371849868716247615775071449464332521256394139446835455039555485395088388637013185517075988305815749339745246556788977818030980194287558930532720224917474112184894798715910910116809748024009470554774203138421777484936347217421287277334199910347705333139348466360019708155634761578883594949841497543759069267047192841489764323995743104933970929320051946647493074681703400375514820176855850936267260464584557540569902130391936083023267397734554853432931378931458399980412529632692680439609346341031833686946619679837057917728648952664606816801330200101918080608696947459948942314190816403878751162608443339193090260261073064133879875359010401560989814345947835612755298245294188793600721556682495038113733521225411718308730659993942549708937853567312827096492869858942619618167957500161670871086054278027425503384889838608595949740358261266839981187676545929289306869032661802578241055842992027479655765320495629473987646658708541171481825276920192860657589735549888952934907951344111793438813002442169467407357595557154073693856120503260231046351357425138928446471819601351185741394914705690295564700060493215034812221469302872968901225399289468027364125525319557694812067238523350561937337884940198384945324163214356917818661397742028410901511150856771982101358294019314226050963349536896278417160141144347021169238871265746382055036706229189969270703460528093831199059326173187384248281331644512966030679261105709270666488980242288588496292643836331328926373913029956733269180987098305983643442131105189193071693371646854735900465503291221843873350857062313610962012622723360732716633211711948963970185866034381911107903281525274719025702922243828781559651298521072589320515426157057043263759491791671761809245367011704738623382917030481909218410271032340183781994651423699275964475780011336708952171766877330786704296450197637415401584754797611195091545326115023336069233816458926112791835799393944876118652536687784423336767274908585810928959574364088295565536797133371125929651557810149111178726361206173550036829664903074024608993391682296737007214337519898929433011673022624658962311068793080665497555125267321260006695149922523499941870008104592228703725512117329807102532865933487519518467076357517993505990211275384881591012006378303582434555140265170925551473666678604008268790683557919271849441495935121098729547009191581212314723965515194070699552772856301291470486260385673385712262918542057318293814469677007250520238014727668685152132340342994327976476926815752120867313270813801757263874876715039599337873689344771398466622002369136738128980068562679477101872945944984752131744722218174224325969547507894911401929068984592704936006264625865087381555743276223056080115755768275129269710846057775830383662965719229822878560790723618185270726623552455061639071249637153572519267445295149533321582818849693763772867541448017444305738132701502884028532621909180304867260924231415224940878654336805597812249665416050428395792645669896653817973663314109154507737962539452802524296649315059977618521755831598297254326165227873852802676615865370446571293547758293759567132597970923324862345617532145650193918485315341872428026068161490497601830665849438216078734874656886050502669276012192477604143614748716510114937881462337295731077157803153902254945922457042534291315559615301177592360511519741579735732066756027272164383984616800644729928044022276905009131865841390758573730417521132567884577251557242054845010169504478036749163395179699089655772978460803462355610932872889180170744722147326090380796238391216154550171386115363327060129129243612546371335148715174830018315287318357300857283686588406151613035256226893103760051137676722062213835232671006816069959708860694923609692010685860644097967977171144635762652013457527581689136008865836830422661992347069481938988454930587948358566421288992963876703602958754276266726879526751923625161035113550976692597151072116144326023203763953302154472593236129904795531352462889041202972683620452342276479347468112326866506690144441858489407439067381776967479995990552366419463596281904119078034368039513094300270327488508180480496857652902607751535839654112816684962609105923845887617389696205335086650580502821503013391106778529390150442537338599494079702524629479722803596515797333342816960868114075449349159321855657746979174997340202510376525290276990351194364498204962114588903259159694556661322923375117289697536579754001793306580163481598745748318143141220500720658109770286612743071464943780869932570863282873984852674148202020888559223859107062437451100667549871879369463742506701363351482424129746725192247248027966731420840020888485013638276546242696258499870020625582210337331980268978549172166617763738993928030117370641204645081310579920840856074664090323521758870350721945647649667471427737379218873420354215049849607983183962991334265640584572978941315809020723878556809214064084133251430810437623608938204837099405259635466500547025325950348074986862686119654267109289895272437905733960628747137097862734297951842027123679477082831513843153240536356278159000684376088509265370274548420048460869020572733242310743700433555034430277874004169361774512959302003224985284873644563505782798143190357754655949805421583901507124909637730133566517384692568266493094367039570176467741541973503562078260956050228354824463069579929984925950018105188636021775239151039989382035021234288008001716481793859187713075846809537108646733810447045458313406071589724891150554624263940196366546158917304948369551605519226606504276513032593607880364278547834461426362140233480354135438597543360698185396298962941712138519219605689763803685994965869516480731588532515133380993510372426424922615053078815321155706140028190238707513697221209547117816887449819474490901239246868968888480271920881276642624373279053190241602972163455725463817239721523180886926105037669839643842385615321000493727927187431255193669560243989010994239336713788921841746832571218186906428690371836107756534751628142454928412321889183469436866265877674923074958764579672830861287691656684087305622202987201607926836780738717479261968064625439104563504024357904599840820466832665647034058664234261180641302213685820980571180618570130443770828381743519220372055914924283140562598337073014912359794638596467320333946633883869840156882640123191028122203214929593412245417989588501470711397866699314830583510087738609452893178686506442955763913759909379845928445488471233971463564819121541667210765975188654567029063771034911352063108005823726507985932506216886356727104037183158552917119719668955319713447611823902513180143727300687879120119252388499576923605040833026114964450095783467552396444883785974367221560811961908648066458595737303453651148738046541318554798545956988172408241884293874462273769161366487385692588763229676183120687069140647058615878757416211401673615571345060492616877269951453183187841371413739244733330663186168573116498711237525910462251232199895653905362152939663067886648577510557232066352071237214507511612937061042416977640696279633083088341212068419184910399908946421441438252195410860465857760262052486643773819924473954487437513969253499059027499843429922535044534423811896912139560864514755531390046226036178537364750772685834844067369485058058597332988851724557201389959953620820701553731133752518076752911747060578219089506625267127424916567046753262575479755889008915630867988567747300704549482566734916578058693678334617245114332384834339421742584513952647620886871073245171942733269973121511748234311204341450858521120432568401252402219228959805562362109951052712046662412373705736329599136722441797323118006958112361769876450581921704043582417691267862132659282549110098903699067916702233548720605510688812764474095060834176341008397635784568920505778093016985810015526578735602140140469759503423539255717580957427454811570270368413978059786789560306738846238687184026010006985699653563378469983818754940279871480534885475641520554367424303450711949769506194743560749010059864700772310501915895709215483908285016272595857988123466997955667348491189581752941009268162148588584788334488159385374749370986134901919735514383586543242215457483947643958503166731000523026936671092387972090950340260132811605238245722171418732406273843978222324479324800971740261728688215294638988067727238411739310368290740686023162748879052580850343507744074719899213441633135904777298432177297960862084354568071417615829548833851299462804857365906551878539303674791451372452054197666390128528930657861638815292579086619749650166445244213817109868032294360723294682734017929819396608266509680290266722350464251268377265925656323123787045555426356622250507560902140327200329384917347519221628129512098190587367440871533731755951147249812988672962115155299102183497562657944794854243057145315513626816056004605644210364718627101192528537109720465311970215699475338060999204760188812335818439100732171119697866870322906835889840457181315511544878620457102955416793513853292028535713693465077795451865901876877688978325728566655446173515052420039025386135791745457204979750731665220168557392964950170738331777517790888400784800820619118221676177170826506756576685488150188285329480212559885770889487598466856555691908493116547197826211449652500681703570650006099439534950202197341311055229445994075464433335598667117338939199021064540753841546264356618122383296065492630274813839020333177731477141513979955889530817155318736405476208659064833383972186345983941481669502472813984248264055285600352180177157693879615425015107473437653791270059794710430114805344299012600766519294606687880318133938745427454658136791553980179179021512327807802209528476533949891011438824957833285563718648394315391171446295543246713166023171036760182720779813508096332144640359543137104865378538238526102121902574806495349583058887763847178335430093791032518177886747651924799555828996616822485525044118879267637715242636130285846597074551963910403561878741653241008918554105391160810353682421349675119041446574660916832035363936418471625583256452773688992559691154977812379584167586969986273576611433947184020247466518712910154930436666346185075026085067175448666517598415547301322906288067947716253100227913006613938475006120649885036073313283633062211306535847056493383465878976147924164782405743740825544568325299007174482267831843616391050691140475657608839619254106979699096553245380305341436649462156199820450838332207705239150742448235930177988841713810184515809994544465842712757537560522881602741659000062903345288738775210663391257137515348448156245620855096574520910011457429583517510809140618829126567904611633339844400484484764665303320354323658884954765798620744995158308558145938349161135271056929690256799506475394726273562263024525822452519335342328902008100834871719351553072981406759407729263537923272041070184101430840795822219674316047885351395294404765221736105503757908962406959240627281649961459663034385875243063316622289399972320364649701552102567481541084158537486246535589359366273203409534627132468661037862922710595681318152367078963858969612937001393888742543940535039260117475091605163211725717333742837376114755829250445825852696970500589642065872423389557624040394686161839381727796842862999455295158231782187736821845515640166406423257892702519546450356801904948168930093977519728094571771087770845225341047869662933811962350699270762750609223201012648197322994697778585879620732230166523650218907862398191161039658659287968879138418501759545962769710925917174620324093212368874415519833161134208860016489462909118781145927823880317807355679273728635148363040192742474097807837842123810204883630759010941732171301009362928159048934337030802449434767602504894643832836137831253941518428193337998379986778482786025321665588976793327227850238275846199360674001835854646974742320458297809495144142450531248980744887365436138763303294593908568496568912819476020811980409328607459033929903766535704984327874900597767522788033922169286649694980868855286435051856044228617539153154113615710522293001550007013819959680438226205499259375991451729523560570013844785864471032003782021207324130082576022242072113762637077749339337553904169969832571555059956521471510416478971187048008625432425356222611928057778171964041797692166003861407506377361727747528728772563492841511094045587289591478032104645979145878608207310676469249637089629215904870482663022264961483717840334668323610612344993224836540475375343862985949166407225867816584250025178353169530834049242945887796746185726804137230316973923790083269872216722486631024367979344767969167219743057273105728643555387215313609303359394780387984457260142806858907846091862343815301455262108119615803801575792936820109977989232044225529877117352327693140012236468007134740582206101161722985300663018510368870956416637212415494009581926498853981537179749891172457002345870721302447292845576283800134401505666234570787472098835619018117854687337534624710052990460456338529521805999683207270382661830328128156744981458918950980740210593327812211714665984655334703834299010522821876934420043343418288393578631948411411112592309391724324460647355391616176649463959706825789917573375547847048984940655571275657850373895804587623069329525641979175238638896818714273942290317404832342002911130864605287003164052305463221454204881029892856276848234097727742493582094247012440511446674078002245953394167207362384880442438022586866862004092358890542856814761975678748938266714260114221482058718666365370470498044283997317201434377001430318425016659204019720362823623956732341295794356045035616281612232601873933104274111454230875956444246918802916526527237817170580385198083575441320123663868961435601375726722555064790136108444121313666557458152907680334008590876313430602996474546678627707064711849371939217217714371606059236927566148845645557871336929797486485381775384517307099694135472369389948103507472727133290194312731749480150043975233165754769185387171424478336065884686377489907993602142554699820929619513954495933833741407912744643433908549915590828235329302327535050634221067065293271530165530583347479325952429978313976567046314249640739661730392603931745580065001227019258811916925231887349856891757273747848500535240611830976036959566443232392959971131795685518514933292601190785765457028008141336245776883585846250856624260832237622326822622111213712916563041140335507474770592724015682131639847104961557123119557526763272194468623197600342476571933241672524884936309252249163581310807089759085814273085355485808502125297671895997694310612355384969953364915161676455218049213528225793236951867207619886795739184701377032248043715317305837816363335744888498959415486365615334799473908987337129329646195594926315192292565897117488368014340909885508969200098452244590243427265303872586402462691639281500670421302800002233668366750994297592628396933601121094390492459024015571424633110024627635449685036562115462789098353485682555572417197987485678665417734632863666262559940443136441270773884199301665056195196524380440085862959577784795540638358856441176538735178006729384389283201132489380254985789895092700473413252344360966971630815835843367926527743623262913810724182357277527897564996112250513541494384589018335790106666800486975644507029541231507373128068477352918955867749042664725565788324733117761850270800352629785206317012564902259462137785233566344504614566374074116189649080475142037243070688824027151253698100928674049383021977678080108056032670810928633962138593890450494783782016633652624676624598408289032746320381881807424682429552436811392190328568973407444357844712389854225550776914044343417799826583682973767860135378931076765246797190336458413902729112869056457503759958156141042675599721530541686514577503039255519510134732207795382585566575620093296477338686411470090880053577283037970900267964253088508885084305697380051687974858692515388825771402030776303125495027904416274962253182263328870300553364816428062100444583921206226118700191806190113383531707466647184998508716243010454011595484245334324800204798384746464518641731341532548918704794779007575892216356768278452308434886409676898233513662222533008191577189722030070702246009177240473634161232161332627994097202770288075920609019456566295050612517507650143012369115182763342605385237590519182441592320529996364897058123433485449572054265566896415592972242112510115650784199169873695390720966022338477164687550908400501914067703795658503529361048511919037883592213087875405626188980524580902502944714104069641589507160237652356519314789275801215684562836127279677454210863228910532998159627207319265461422210078304030709394179534621014080284585906155732365952733574562551222358661078391298317710604680065692120022949414637127218454140523725131823551459593622221105789523412635465595893946894406451468696340733615886829393935731750421485715935087768036596706631152494596565919420299185817821175087858528098070990573564062829961491290638334077074903144821820959324715977613240061557421318928752291060977460206207839778629532669110246319330026909647619852815912278229687799571814919218536574008304155090874767166072320938309900289470414431009333959375971893140924571837340062639619161408112328452474059483544656792339518091140182155790758517402107221024175085370677692486200469900377006708968377408913956376190757442806791181022608714984142051723298316606091689785279023532340198627737672151478797539400008899316939557241809937283889071845706517304428847164455242268263406925539261795904643881274255910132090575922186374964624250295694442027856894739704557410638142193266411270372906213681635419256664636566379240413349104612519343024054217859958269658963120761774548086135304828233741292499545984485479472883893029899415237402625037280985289830876464690135480661629901263497592639967720087410791336598359954911138527799035642494190480147798742003273170806615399808012301537931379061204995468797910123894511628687421043530906223857081599224832871794024864105248222721680850771661321557156105459864903417274840154382167050466312596838238580277249441833529516698920883373614894081170668666181310530027200395266651223933258057603215241091805224594411767473828238458652966594602523055134965832640069684471975439077776593152785390876529879255141751247018251748727046780552554648876713889068901356250397976463136298111542525228204082118692089402987791896558044670526348218310865448007991598409140825148653592347435170974898533455964392674574066828470940877598360590106353513563418122581759443956697696977677950235955310554120356430485155916001992097607109532856258442841223382365123799331946019410236772349114594445163494920579698007921604699099873660361892759824476317795460678843598057880995652288336483730485817835754265364951140665516064145432986109576106134580469333678096523043106730458468554922548226470169208699191634268667691252836767384183428979922909750030503922253176920044174955179639756222317550338384731906932533230262070012459970151447759491597222736838720088730574110819463066244701406591776702479166536141346292868881908352526384124770118692094760674554796885736161987741435764221301033989354151918099293816247816172438046650747632668337119096259974047819482097267434452151868869586383537446678346439753820884795931551213621436528347409757389948182049700740261331441751000690336635241697323684569458427679723596139551937796861880151095835048817177950474575361457736448127832766804735795476482785996013370816268498713220225571196848360857888284102639363558185249899077651557948650906952782568560904762353799994732911198636605002779729429619325353838700750487096537346636267334785620248831641029022087597605334983824186367427383356508007717368607874579167134425366397926574551013919487904537311085815672469894335851987019039814139259436682497570689265123761728015411914515068918341878927469295656917141093403062109213238998940660819286754605144154244393383879021185880924505025526434981218233363388977959446839506531736847757049917984062543428420055479123568211512417003188354914310628696043169014460256659143012656171419000190724392805325603018690682876322094364836776963391803839576660280225516372069229564106399818231359888704682763394841009887509128902983537323063157192568552687143485038147711967694992948157560349421833701588901693664735864354342239055597581574017089780624019191274590697367776426500133197599959867155613764552795417709315010954093432849631166311430009129370528765534659025578669195868239775921367004228112956414743844146515472267761301686023586371228408324171138608333963621649539887247473573252801832764780070896621709317151432537600640228554614088991211901711062548431516382274984519584085846728490056188065868766215088810988015287005899170169801202080051089762935440367265123552416937568616510401404201866713664476381621450878433429110026222590335126084295416032360265152582028727574067023004943981552867821351896786620790238906921291579003520993821466330594389539388494380600251338668819288753008454495771510330016064866905008210717060107531992695983555303667986265458865719888250070350240814268166588347413768473378614697499133435389667870611225789373994688961954263442823087211576136248296674429574125523806065979809098646997500059474268720233646244697375203446056063606888963004094417960631550216745828201171054504053443564356239358554672494304652655328254100016019020858075193554402444222024066807312456545794791767157363977191617973488881659397922989326784389596171407399788330847675772462747264445800364085361494227254268965515418730858369695997476025355963881762466291518848653019225253309201777594708442362973678075553849138690580087678871934533130916570742731905077970675840963078675747524897661970554153756889080391197285251677181610876842182684020620709283027591307059857442854255585747069519529227859268483619478529658794503681701577521405220586465037492809955542113950195448338962171428937242768832151968161121504964042099795288956041859690766499212760550270472946728107814352546976225183459791453478527631894856595134799453200705132149775674606108187401524160719632597320510593621235543744082777759790117717200828492697267002581857830102577583932422733050842858175643476017538425524464653356205021289642641282465990508740694441960059374632707103165665148363594011502041825553133102481356628913814296436857430158288956289245656500212310603934453633832772807484157765676933600866183968853170052753507864148075074230487665998788589883633676872180969493879897022355594679981277124904617801732989673857852079022679617491797121955897390170901868786594801155510215370374917392548628350414659518378305955826381260584023477328170495282878392357672222208523300918409788720340057346842414163537836727240213974343918204877954402431383673223708106300543870044726689556324784282975550066303650087170469253832197797592104646471320502279359314583528360693760416303591084004009443939893599029307279244430640115009504977273938087175361599572793492157955604489656230193769297057583551893509182160472426877686279983704494846542694772625276792971131532117795101823448645940937616643263473293218132058229339401172365577853063206299913100735170764472587701761233603726441103352916732614701121833888394247578286006057655259712103220632257003244095172155080791743620610476908970442341543040398877502395000746843532939674264681998055037731196180111712958208121615253455926233556480422928169759479350647688783400483119282042841878862116010515851747088453043092525208405433506152795834203904140967325949806898580050711692054867761838275728871047410581039610443343789449708857758495199050128313313901783013054765003196637075539391660541896042864819793593964101359187455318070423122843518987034828026699409874655017890748382375260946678788895503445019115486969318099333710874583425663294905859032119043340445003783917869890179973559281062070299495669095429618251368558583156705566946529003355703651293425402874917072326127388107565628474698705485424424034308058254398364398254205748253258249116806781457771847545866769292091356986820449668162091742320769244572687775702252273752397542423840207293982100304261755265828658826780575745028109923125817232046426495798196219095253711643977225614487730462861475216162733628723614419323722632975932597407991116805695692336983590400925359107485190429132509441944115888636383206532393532331238943960352789866237633295747007063400440680870051681937924966468363970163123586593030940581686178358940883968053529646690104036433414670888627011569345375886736226340727209882672389799099137935437013487989165042826967442173483253993098021374960056204814251518729736787655980975369778392848827785691673848087203665589743695821772702276645576419790729451255399435371850408503719375583832204164930903374641217106178461739934309330492312084436918629212313942029523691859685079081923730449764577343539086843471803162730986344757389544585907789972219940199998731794521549319376955844897968834860631599906497216920808268863177104227018783805126661959512420756008148646517071479640198488878620005478405182657753255081011498042357150085991462018350069167750715819672076103588216474584538666559327121676379601955844194895697987812754578589078831984157908389228626963783485942307007020365645012589410475724390403948431366551505971258984686072903514878623719195937689107457039939977778234045475383986701627131739678780791899635891910066205510750833913727643691983511098213388876203331070829393964692626140257620648859642199438446270917602585541590748033083167723685299657358017713778338439781177519032085960443566175593684302457368296312751000324516182055268611480691410590867770276825534563410613866419248893153917468662036829844723236005657983290119755557490388213406785232062818769896289421118621907614629507139759226980615602716091783711625937872279995861315246155759128985945806987257042013066938789955142199745502092937324466656024739436236648734567059531784337816838841152022785630646088076824344486062181551786622423694088379147613056195156376033742557865190012415921507964379875728722184120044803434721964935866698033394229257035031620685121040343232863130294895679808689957595284474331933112664985321755371725576725393399025494250666597710408827879658633263272701883097741750319467787414080055091230600225749742128856344472531881421063689497280763841697364181174123638777577483500872584389723098519943563682269572740695886061289686924192581080603726702978645053479539644013238534186153645719597690263556516346694925597585424806310101898092926195851450426226939462768295563418305683627888031630764018101468388255236572812670156440856922835124938608271454348299425753411912020058668498396982903885157878398482580805540135942698882510418058396145461218316341642001784106041508794621460876707943981604167254147646058317550554633914353721876609019715557934519431411961928332648814441871808882110911600091251597487177520574158588245102354909401609107442698071299528759400312341742422382514803915396831140431633022762790359978051246095147703149719897849201072990469377334260150950149501859193703406845435787486335882233045826603712100256945773207222281996055258698396754477186132952126872316787129238217776651925300011653709986852882461658528850515137248872908552330656281059801469073203225078694375721503159931235549806901602043508212277382018638297268988987007385176764431108589153719128376199379960001328089933944746512573404223179264097675053920902237425746328481432936081753425445568886892823568732736039405234241930242583839157703588811252851289782299225976750556390620582215154113669485942683942215360792629634646385165849822347874158057487515791279763457719321698955748329114349639013004371089313150752039677915707848078690777337757053738480168469877663521447219853247175678528172531317983653823364033489891937317364689327100018147709596452966366522442111286012151987757122242574661272734258490674220531714147432566093207190662053395067330193937774636240821699968788557664462839669015642564874845324449205425088025343130007247933022066918987432407061091931880197347736573049832486894452209048900786317538039114899376322780406083345015898813228012661715058720867689194494210664493495470602567613376088227132173493215028870229115586528924934024701843286591946071927622869904082621014294855716073179765473338050589984974525291467046496958494163629889679568009897541923779601665666894486968987295475573689669348507780864762062288108618269146478245920630360854068583067078252584465429858047493507049149654807741907717781807161011859870029599478083100683421660928635170498865164940503711977859441390704329424080016930519163231553049645004501792978142671217516060241236266294889062101621824982163130781474181293234903070093718847368928698971361984850765471643914660347451054118535185916084457731007849078118277660399754459284704547264552909937964373623516893449154862544250029378164089275942555200836793217028493504066984795335128569993111873773413990316788113731222671228773682166837568264603864036948406185364356411304258648809795319498643640102075070883660550968565171866911143429176228778093547514266503664286765429268439802050642483634360465775741170182179244940910226630672403543321195075222081645086009211669773130330226300288604408960284130592076369066054546500192463313482784647776549379389696114449628882731488619544610310231386534564662228053173865464992875109027961557004222884303884637028919233802096392298779088204614535557299051992535203451625032582092474420626831557809746934147036361317084391866029225068643208444455335535698310779169369809629129897508862853955581370302851053076520419954666807609879700695268247800352934371673672810885574450898300361069101550635143348050417564772469334680600196021507383661889728521296965543142539586127915983966584949789264343143893258600448190740201843384416822844480720587939084832660035467061740037098196165089394618410170681069207842312863276942205886516128648460243304574523974029095652504123551542195116684622530226803756607469569019658607311930559165211359856606430789473064471752733765832959449793803010081552899843928984811326268790847146951018892112745752945351157925954595408750971134222309010411066721355056058363480400460357517319473275404563797041578778864849765075104193894691642999164241869661118360747037706942098838571070293436081185215947651113854605307973205510296453636879666032432955400371459841752730120024840879108595207824144134758123632768657871562046939850070069106546290171231070008256660949266065734803462877068579904846855194747466758235310881880034862222738536024767540496047020107998799073454020016351936929300510257670439523680214032304206502423117415696706091295244990969924370486052981481628692822469344690667217687951860054001613430808165807038897273899795353413218330521663836304891821871704674094155079335693178623163754399956185692373701026410876091191345397327637526294659471808686641483881216754748279904457363486482075811143099340442768253515427404927737841987579370075392393566051315230494243025358380012784821968835977063590934656588517020003400555980202513162857426260867414956158306644314945970461201807954277240933565013214818974745419743344387181553043199722539669354479204070221355595278333774097474961602179979036561969606155942208125844523561819715783963747377759396834029216123482708114874830711401592253317215442941122471247062349478933640696762941115844044568240502985843695756839999356406222497737425815626254244866576542605997279551518810385460648741590444284488635204838486900569183354024874674839612826657823664799933129889298853220460604101955851492591465964251024788364624846029093923115850182534632960812986789935474829975362172840809497804020647603021978974875624601736101016052244485813688757417803114390519097764914240400956517155496673726917796811631914150871373850092898901926953432132777974943918476852342030452965138891157246678988296982177519817721036194135860332678116817468016815852645461880133355277385854434390891555941009932813276503060525552328905584570339960856041427849754653927361478169863132252825028552856223549833094105137055253856979882481837439792631741278577462302987519779027221967025963466314963602482929134415004414950325008200663410481492553337309405671915964500076763640404371525584334882302807971594910256188922973284276352854764041199113948740095768774135426642008236586342905877266865285480297011469969498598436252019485609186580683177530288907137469271032316851914171437418267377438936683846728153504091896958678888659355076288004281367043894023746867336208069763033874679448617009382441216470068557642993124716791234373932876751259032035375358275191009469070863573368643250696828245430501905087108972469865755833844005928143010764080153702907927358868612979770732475408751902842206455619518804549751333373297281465770409897053855934185261988854996741500675031241312961712891760943748618165909213933011293856555948905953603276868554881269870798756072889937291761993724920869478894706118049631112810046521833296118192306531386158726695859830725818118921640198096945688066295315535609806390766781321625870839722766189819129052547332883591893021263612280291171528639952043696272165029964254109668094495482991060039638137030114314692210672127711383046675701817138956366835978498771551637375786418169537026290728256377514112570603689365634488045000247668424497785155543173781842615708397096489540070643838069141390524315744962941003279693551115271339992903917298050305440894499586763749657049696511651919176421507449541140048101271480914001218873841080898254680985013196536292470609350205571309276088864181696977846789990737887708153926196233111952533977281902777649519259553966151590374719811668176845349422558531126665512984350513542636220119148960320019236602867710199883922281516626165288095959003168711134261094360961829259754447031071276290792451219670453757240672858634402168263704986102121290699238899933520640609700093650423706233205359551672143743560109690105915050146291771640819488358983279401032019967226445681589508305589561689453580808631056552500000615987271265724549938035596483831196979588412612448778130556673178984055115721774547063416928304930951747809510009856653961699657480087864415713574748241473121153819076695833271346952161366981924202178300196217463502485111707087711646544902005657583949338034415449923909335385968337900342089615962880903330265726061367421646911195992363693456837116257211406191171028103752869844781762393308466193993028101672573617863475126280178912857339607524197808219423103801668534916903002486848672298092113139958807520738285415458472740594969730740291614043594941248014026211699275655757680861868835525151249177776525728985741708003796014634912427634635585812655143820291998473470383128514207458325218555647912341095662925446569392488479365871834618694020758103695572840540452755971826099037173962691828733838292751448700166689264742778857539859702647537691280717343631705474535044100781525432738406121414535449991899111952685479021367041362535635528627141895674940180248615034346184611970184729765995886802550098557777273847015538080737049171912758046568694736318142786041870109079501457306541395397179928627230517494023473840948917637315153847023839566320233230913596120667643919343817053462526384798740143307497447233945062467228105586030251356702836531859336638459848893292752885671381267917489494220843770743816833888530396355146897285274738004579444241035185506896799413491917924691482078515535108298375090811982656815834343755113345404765564500383361046338970598057249006047041242132217265641370323839703158369683668558132437615430323971286517972198375214536424221258904286929183775624464664690168814543828526037037860167711678408339153100147139674670138759105073004446849462355285708864092292652659060163777950543349063662630368029284157662973539475617674196239059285568260481742337039443547533044422553951687371846086732456288988500884994016915177853674588134061620925148745495973061305090044957586421945805283594147865934750542719941190701826840510591604538822095226680353041284319706406123445395766338785581688621821939740182111850304910205635321127380511554905307685635616928580523883595982074976647242576299144850067445241621952760196794863976840256779578923347965427799097539269122570718455946334243284565484149947643897598297660346857734672818581541590170250425248709520433609113935649376459487949968080263584916310532468200360151725591431931673066904222451812280481404391242178059073645354337119588408136102722567256766826355878665109744616022676808002299083899724760903335180497218223075292321757431320433489713026533376458206565798259195155622718572292733930383537254121332538838124796689777302236030661374664300523012673884169041603848671135538586452797530879861107261277539181815036166172875353593168481186071568006241145475824902756472638314052730077253096068920468523392532202696292108693623701204098627130220114146621386426348869591294085701422288463984688220963693857759290229840059836305093330699631546813018560026036575843464685573938366654832504773708712418382339648924376469481214000166534006243618111656352270405649827920970337423577746630703666243216390019335767545936434338110056510397918540788755900767944090275030542702305414362720783979990659110988184855162850683803878294258420328597488123904657377127094258066927004836495949856570612172992941993307783929906950477003105464751602990477381437819163586261654759308874408804948569159989888986514737257319858622545784339415500320827621046108646875023641810513754732653859932277693881596918072929590320387529474871160987912026307654215349066825492618005085329642973561423406116081457293858552843861167971662705245058265237678058360752023195425755255500617130564303852880893626958013423517527659409997469855264113233454607528869897787651433657819709457889162537904752165152880929940468476249651672044729377581677726446422357470146083932210589076559712574800324889615499904484847046213419737669419729385715246483541311838612296342602684188634267806829584544832558896061332504614838944635361198899735586409375848760399565199717565035867725978138857767869151321603730210434799483173041545252531607605999149442927191000409462096637178346551977874529260785599508628292091141160475562834629814587265713078035502665780849516427747341226406357495136285322561816399013702055151965318385895485627091113190658185013312995537207111383935461761662030562163894379402233833248762359940317398536507164118095130093435747350830359148311723207697996994830238259912428501795552070019156853011258086922849457837165822916282699623308252748986993737213359329659724657177794912583203236045365501333064689072155099444925034495841273662129779878149748145230579873547757840961280645865329278334473823004714097784728695662087324554634223576765533437742777847873364982794703638307107075961407790724914853201961398367287956513273314200580909983232974689328480614047074432055890351259700677650581738111735518866497703484843269323279309287929612835071530892687223414138661002008339951162623658445102651444732612097788018083364504620812891435236122184555193212589515452708292948132866489177867219702873019767126819295775314992329480847565283459230351051878272748966677958311174209831940269053265574620331481796237784613749634135264578549155606400986065036590881799646288200401975696573611315751188616466461516710832164725043985400080995388344249868907561409682195359553794604660576099319804710055820491315845811578024887446696820969782942592390481616108596353715313422745223507092148703736290708530538037226621219702758587527266616797904726305165034531294178938001549324238869289342465734877716906839453603479556126418319564374032568710572382084007901577270113965438406593384820936735790615151236238134138240531194360537860014913480626665328361809152026280852256976991139719078865474063149017447334522730604082012513419254784197415924995880102959415424292348808507960133726486439924355735803630053891593923831028362755663338905887336713784587888809424547836648081892622407986117595279762924572099601203350131371664660659224376116555950508548638163074886423247104901805708930441879584698677067259376960284617856877713609991497731168064807970414959131238964185550254814113297273952930356749982805713205077535428085280583668290767145118369069830064949008634659627252543662026004897957522871224295239142679215115938047480279253632459655996338951886386178284143671190821023378171717024738392236795558799201569955405464832390114892877481725693334443145831882510240883420011659697356045744727745002386846148469823543220107249671486945617586196212104637583960344563400834239714124328493303675075683512673184067131374851627559754710075874948363846641561494488179038010266298197771313538534597555472026550330889180593089990087536113115569768034631954650089448457670118115387728775719355950720289447330287307323524642028836934057863892457899332866069896215431204058355671851535477886165693062709676974644743972651149207302284844908365519570971546671454066437602334876523306853696119950525895370625573223463981955420571576065265841043683267300772607933062706263787635557897517922878053091452684207714014837484783024140966771427734685789087288479793538287711539861400430293979139574377018143624200337616207592298255729389885053108165060226408794265975327075968971695259694285195761867513553657277037379260453023089182540734831607100063493525766575599667198145924400164071125358592456084083752496376086148381752849546051420629212092162854840694944552628330381098600078896765273773366948659551585426940227008235556908306400710522391293625831843834523584662758963902740324162469846879984690334893527209758901630377388462422398288209650103910696058699582697614512798786846067756375171018501177148754537328464388217066242257692955005759347198256899886887844722763282803970040690109226178272584520596712246597420975803910796218772323469210916256467253217871451424898259409718597426325495393102026654490806595295889844781767202493745074138311142485059454075710146196880933766588444341249905336290577836841312877606595947538673528202751373506064616206046584470976946573405105829115562136176777747355755099173605941640814336288352308095717333739043905892033045965285346356390879191243803666695203742575886526736765117675166718208244123782175806639766448682224379985174979362358645120361365539840633017245804501832812049457414791327306589236555839921186574899476926549242219265892073398978502131807987610100114377297524891265205815888532838001691205818047363946641903926720864344846439152138014866082238618571741274890072777065542355696981243373534499693303430306499400767542728743231404678569192557079912170494124279450288348167172413037036975992334630480200718977864267426769084134795992296929371154800494939317983764649907782652765876945928035996926917464451979182620991718115335545886526261553584849021973489394796711704967975500379065169363261041506840146632501617722174314777142625690795430953359961232749455908835993827465899315998808094588127043160923785437495174800876253988154369208185475681488176990221661664075943104298327521134381346183476458906250154987708871008167135344323319156872412956540858954328088879368552638191826445159900411645179020629880184011641539390801529616598353785214899394127317207037436440393216397935734835659164726195770393259764543143176825823934350197470952806697601804075318367162239301922624630506717424657301026122655775188396656668071111544034310039054179054356015994891696404166370698006480710672491027878173912424660719368274747561341555931559379752557182484178040771224856497115638984029444804301476340628064009197510626270766930941332697998044514896154030020606952268093896068595419266204192143690542051313440304105462173648996396805421270882119481440531991366940819242678684948877252814422049004669129308506626799826280339780312201272639227203879149856274228986648738282507946906456911063932133549090281614311805825270063046643202377491529907033564849557064502287495407118930603988446827254820014065827856222816464005388429510960945329375109817618465042702531500073453309781325703768770890198808315918898757867943740044428122853671796200550187671177950080777278918058243081707235946062824287668050030455586628836254927800808985785586773688025130436784723438014895570507776871613154643915435142166189600341149627857919861030560151454113221190051215728463975781702279156772108882969315265081178590135284774090307606132605551450386872545605861315952058133534089820718619825768620313851817327037310504374298479593429395994509379539470092380604706205682023594295850455280765636459461120718992151784652892194603621288985416365869739038979300271956356166410529756830951131426861737267611695037931051059224223598970810069144356384285078578298343532743687245676196212463854144449514687145868994445305011663129305567026378476751195010597191962533791298663894318112133354306121649264335710037026491709861311412809000326701045521563570305670758624862768372864701720358861283888607570094967225935737097727422705577645855427419242164976528122346886119090934738410991249778122834056037880137913371840867074919315953646043834438786834922487743629541230648219297628670888282031441914005650488824342878282692458566535450861064118032895986908207263782496098173325394524405013248572908150575667621235152693278014138333931805635117277777174726465616729500735003403918948385742057373259184065653576699155722703310304037336324870384782487614633051802239029838410838172782593456547422033075292213069049698814293275564550116134572800062528387594014903312582002081221050261863364405161474086231334822263235542196148568650843837363748820305522852078286421487253117500680694043813551713510270266568518575340348065727062237709612423086553835236803002583894283799220736693289390117581978988842567156855704284112858105020254074152127381770471487539557358337643969723978839977926823548800902467977049079637619829581139529863647867214269542497731112821865303542825951541446038943261078779250440274929904507210426456334712979506211220203935855085553717824645612701593403751671520819076097339840378950841434370050608524817977607433649128845740607235762135675987516996699398461429812390362847856936872173232709065115219256782138402491549562606824380339100140242207054856238120061130431041539790087740983829957772800640227460553812496174028685182150862303795717141750069601255874005061907361652427607927413558864403490804799605700794846812440049185215176279665408280159185352395761361478492661546386762958412222550933083790736923183343743177745493126265969015376361979266583865887193092029829580961536702739261333785601682522216179370423167509619184245666472281706500063456388442053190806419312295302964211228681916919430290876611014951520642654611482334214162037937363062933585024634170184496688952236517894151248903036895728078239730534462937618252740355009757886385192434696523515250407546716952413683114655462031418405935396318843359339751368394419445900882522527629151930827505313161512491653355474374968379311250757355660712633668078368305098334488715685147783012514154235723682497083072172693360041782529002833725320848780437879960836922685041625327570755477821481033912704968456621311082672931639687247394747001298480978327828935916542957787947086783134718433255206617827755573586095945931978595321709133017342108461438524058874161993153994910234710615401136634357064444949539714783583102112908620955681593035937261212027419908288139730173614263215406915972160854274403599707260335566073293994328820419358356951120342491103261007426770350450833178835908846456374653866859804778361808271793638493139529693296204034139045120181923640591100162662051728402649839141659516195775927355459075254430823701454077905267242227357570800173193302297932833209985746806987442754299814755234742075304073087956722657415494193307813901227983679384376411877538850454309035195418828280483403794697777959522052072303180578462867249329933925689510471186702280514718709708821969919622513585741779645969774270255308549975439114133715970192213963206711551403015558230172989685146236337813593681709221074877825376400705170253070282067601686412801477634809814860719683063281258915230983302989555120521795458926432827018744006893102626019844608028092336417987385358347805040394576224038571636993974788567662583390056795526519906701533554442094959685109542476268891285157676928044648255575889006376819322172256256848757450256365811353412149889472179457097687558720469964438394735776034008289741447918627270729453574507304740433351054920352536339190841075894304883599065779154078753154265628826263589671727709727449645094812067260026687874096455868911695581460642895095334047799771929403219013758103927805471330662850998450968494952756840001825565732162272146539384487173247574558633418350406600841055566269702163281272569724870649220676353485523408119399090967748012575611071060500883005968932904243788218925134675399430762458120345358982314630441352827319120320906508555329271063276322114146844804731778222569620119869990520400708409864853727512890700727538053929180119808092290584255995278342479386966587069259652846366754748060447379104103340686232790811399442229989280612487955972080414717455409663447764745918339641566003614201130756913329531593188698068540972643935074771169359352620820044235126541079947141091838846422819815783800890061127741732584206823682913527925769164252594685930849442193529492570654682698644070299701762241183584711383518301385919470488953072098308509774728512059668587205184132023645157547252556255640664021878326195605841869383765590098780912532467343868037977181415025215148390057650040379689183198691401283081387757378139808857525974295261460736662499061718529505118324412216882906972331685353634031847978159372626975148397633640769621931651073830910600786402740456623567674703424656798281388366641906503802769506975646987685508575600039145085216954634373879895765910184289172309387613866368198519643849787101981699269555222296497277297704329227105156870552031041520772114181012687010040934771103402813384961744006870435763874275778834436287161267497864088920135253771887832571640866351911428760872817658501815158189545700318149845917118160396016564504384945773406743656620278449130183922470079747129895237610957273891781679337145454111202479536786259798381648437220951276766081934924909437372676645863951052875703293396994131423264666026164530018457302413313054783026621606347097881973602590234018552187106959414636523069148908045361930989620004005353866449927147952650355177176890276553296135471400024473961305729487284963914177836370555782529422570960582237513533112004767120840056054479116391888542396285777537841203535601045531403840389596093539853846016861541707546775688186364301292422493810018344825002314960505491628035917404513036316630931523462461354859308746346620940972521837908221263324182874661504432409946835913088577783867651038258070483995764232960555564565402564135451116418637323560476065875295732115255960956545651779638908077202256772901912584096176570940735908650633327545026513255476551347202506639715627458571551243232731336129655815703880350997102506714091667164873271627470463965606784806844373525236074439849678271554042142183760996520302704721320527425385071295146000144843097083013911778196586104584752362234606968987377703727159710970437297091539559957329613238753407303051841768756156314793400038351557570998555751935254358352992281062110946438986786211658599431229325831943721640204336127234105448236996791439603157216851612766825774834122252286994365432420144791476255770805552481635745833637891046451304397310443694802675483928064395855848383515399897801841447030063127181702837879122418613837874730978034245114463284401878876467000886781627803597760039663835360509474819711930334093463621420430851396965487311323493186613518730571249862708606723429941012286603107564956457511229763301524123554052992905186020283723930151490240741271188419196451376508880749947866271379481818346628570442452028210029828694394036588366493838820352272235726330503118516106100507337461604378479908561415108965927684832222893819061556033459689043290972604956387187327195966685388595696511352282646544422061054193718914352795452001313811700703747943932513012925805769516048029684588775323400769476306027508355352285077276325100158790952809277894837044934847943598906881765952649826104733674892997844093138316512743827691547464706299748435823844070924581653895610719730823310699522926990362438961906873947199067751789324663312601924852393010767308289043520198375422481266943745566114193591753402556019516302152720332786536474857479707740497333178138493677264446230229258398615120363350628994322159437413481038509859813798456949054872267576791405422040963425123318157466551509951297705480003102537830603964165546896834003483492491081943218516862579677869940189434162377913847244727851445805908131584431158822655414766271298981750880299429461704650584819452858611716556158977231902024770179736213274391123564721267336621421977033117393114894650763386313691622180005460859447179955060060992453355947054197213619577090832420465123116240461091140175068830876377035420928212656800572979357222525427967732555950037114976628280497438732070491998766272471443804115770192897278272390191252506449551158900058867582626426678762979866091455093069290242153302226906108760915100972879076784638058021692532392372685772065311544453860376866847126266553361541682708305629227759772607580947994022906311294792287622732034437001888246529096697127078710493891993960139833769168636463956341072189826949812589563895065231743197939250457300278880222058538601916254572527679298226408090663941399307258514887473832359010721257029200606073225066108404527007797113786202615547122018841003705686365261296983320528841959281312766361992694558230027365090708461308986600429201753726162387723273638862441363734246275729320838759781134421664987092774832763563718450835771626755650515627324676413415962314087026580475478810507578767820861561500204502398941829105718025399873385705694773571134509842510308001966081962353437283405655062949279732689370209189297861432074928649362214262926022590349454928438353471600194086554703398906959022372230432734963343425526338395831420850598418196178236105717567003869791884130839052791394824881088124691986533147329779579086080479959214080805618956104867532646109707780078947693153473371914131992985253820550135615559959617055501131241497349949434021038060785397816761792645722239333216812473069562146280766703556848830353345657279442106363721003093092801723365073812202996718893127559913869104968400903923014875525395943514319406242803324278390839139282776727394718596749202846851619661663582598238024872975121687428592153952985184881923506064654508206425970470483693679262727990316893902946681727364337117441028379060386250956061507526627206676756882452299422791578996345492375327113401277333461358563692993972056348751676478526669244224983210292126813170213586269050411577029203195344374256110047153337967706004176465848397156946845080095440882950659788280366831013186227926423474185301939284178703031857288622949583909093842560390658612504945289434854880858777389614082849567010074317748124400354654289373955958521804029693509575293056801870289566969376217356182640183228305373572842049784437222617098168276303801396826254849202549711965135756401413212578606831755144965583722117462256909430052236128555486178530071406916819223286845700973719732891178985475406391433894278934791984070441389565524634947209389819786794861704234310748476075464610772614645225762033735450159020746940884204122403540823097460453909800573790625237247080961814616899392049987398193838916359108419515152981741432807400007652187089113996954782026662295154728855314709827471008509758335300445676624835580618237968550889118361774209941838863520967732405266465233256101839415080612660890807852687671890114309900332810087276676209980594487329278099586680844813210087678496781642523552721817932938335966972410161919645788223716485785931091652053502537711822415662770655939025559306759409371331357098678016484799186082864645546914504965246068919992464558715354586391347163344349495837855661065004952044691529335634682877278285600396845742753578333200752087078420009437064755985414958876313592853227877994692226384505660511523507571423300457830671355583680381990606794397274256761176215696148996656286966424943503771189927797397255350605874997516636884532749671505779914586963194166877427975206088283637409254984294914269863271064975071174088651631452553462018621669183143466343961423983655068998037410556718644127268983194352163105211714200326820759846212440314250349874783213992539239020976266319689362847697051030697717588637379416004228906231405846264251872545736306960197120038552861962244031873449428544613129052436767988249358746133507102773607254134491752486153557763433126892449445059234320032943683112455483948626217647468011419719165033242362174424287973324385368415548274057508186008864823204499402887021915820393497234987814636917931378489800464161967589621326414086021701770533221013549584567469640600010435467288498415599751027191453877264568081718179461940864989647517691634706658497206313880111747138108414174340746673902848318711688355442768677648166771086645976465725737402704161636711655657064817509389684396866312139402603820028652346275157028214872646809933886782486957319572635557676045880249664386838114968924477261877511933452023313204582912729005635737911547096393293228925063012754033957177529207575621751441618387037732707230039979330229967534580719217524694759540049979742661311985551526968580916844219564843509087714242868734437386103481577773677075729470758430128223548467980602354502355368747210576257825075109798550521612955419453282665415451122755837672208910468104611876166336240242263920514476982442449779924741339481429219169162258349289574772492306127058633582583279328151507294042541032278442040594603788176792827445921751351552917763385002774064050192185071607556975913419657836374883876352707701556300685002119909113522421734019492588873959668206875569585177453714368046011188207601590087890139688684814779598769420497199230247012258660272520535898188225939939135643162609042871608137074149660881162880402126029822864920028703567979515653562146497910210240963992065402321282462471169221102068233300296262230554984014638275497259979585536877311511411688660550259903999418952194704714760155992493525889176700312582001404204062978067468128135157566180932823236055923512893412215861797642530161279619127065655717082621284601721919851341201236465855858018419904041325494035658419556058315536946120356433534148713583117223252990621582608505775343474190422513475004297506601462187084332511025189515462747970650133951201535755851626109300723331736021227517211554248126945957416579176814343038420294379235933963114973542069124414502667423625149456294910494370062533907125708055763339633145009798518707269272288208136065472982191839965929005694055740786896161856741497363610625769521622194496751075301980860900610631380737738997591756866546641776695020069664710755186474041452236841717869967586086512792001854924516562889075238749278985516702702238659401480188520507183197243513517708929136267485223643684743744623031112809569857242542258162135947078746571964175030446677606874736025890792461977792899025557822578004275710598980182393114151929824580896062536004382130333604139095767373005257704123853971579744230200491992173196274095820815270770674090890587112523924871505382960091241905528640077674268725561837688346237711284986588597745447991441185998746586943846264479050655954654725442340872117057644565047376942975855816161613158421640689866905959036067714715774613326400022903978573857685187923169867739739454803384124824622669469580101856939003018813206634650763070414125482530514394062431358787594324676721701556831797497230506604279585802125759297914572171719622705619865177944180640101424889552022648161640574134794822198509243682385080285525538986839002161580236142924583999752056778802820903627528973586564213322183307193642961137990206881769699655901926416467505521778864706819871261400285557034508126937310849534661026081366982155891657244198570818321208597720377692684823262542086689632567260650654333050886295874654618510981191280012770353525384451845071024687038948811401497723821271661574262610860163230750969774320731665498597408051816870576912468788129872451778180993745299167273303973454122281140612906524616226589291110553302627648810611692420326320701702742530577961694734302868293527650050388568296584204669617879238402168930630026640103911107825488871800990793265435383808516925307130530612778398431022034639862645673094182310888133619047849101886253955625319391214938980572274677490165700158950251656601255566811215110877468159298927924313055154937457205212299638625932602060037212843452048929313964413704726387497491772237651249099995243479615330685026271041771816970262661673922588139734584746866110777804258750222665889612572740896909950798847353557178228163693353487359154074113122336404059213290799810324193053719238081475017156428808181753108488085782277036877553616671283155282695274694733742185774143983717729747731809328151862562108387936739655730912827311790418735672252289288051778883494581924732881401845891360115108967474987430864078992519131637025700816757951680867373925174955923782357002539462667648533339946560319543078191585533765005859067832182515684969214681726088373400622134912589931296645956291860127166006256082480214130264723548558843149862784690960733353328065705358264462623421907725452110752442198176634104335649153696147961221472115664769995498737762610776552023172400658019829839599263333999088394694517076393791488950933666805080835537296026892096416859318876083912006170784873511253477658940535246219180428622857929438413281688396091874343156973104682956340126037611527638952983373614954929931354051979030230581987474906608252292396284210158883337073183442937752549667701628803901012297343612915286807265761873745737226235983754512956018635186270464927624935607645103710436510231405040678073758616160054634235780594543976540262658722127147626688222968300984086145045223728898209000664386319038800152299911905243086486009832974117727954334485371696587385964073704758124588209910720718192844705832650562786328251771334145466393962796384952639442242822071611508495714379480513585623590981091662490163976336707580082980402617850553934535668456976933389227043063169390454149798546322026024158610116540394351191542577177009355202922884832642431215355131772528344094007272886341027300722552205923082593711539279011280565808302769197704807913252594772171295927059778569353799968235339200104793447900318553836598136164232437998352115522736327871832250557330194035865873620843392839810729119532448016986842343403955496667322082688156706985464465114425204995044979025070006195529150694353914474207048202392517303361984853288859159009455754420056268310106284580881089167173904053169922793225893346764492039195638381544417422331680181049651846398594940832944518492748887089160185134300621729076304493853888544231715754876911161934307909235559417112127450481025884373097320512789085471377025040057427585304418928217570991348579430989471570614116238428072820447611435793513192300063078170125445639782489476734907210149601700060131710897565419348996991476318439058613797871022189289487694345853329713940273265887835750989080493438716422675877508027199683872267277813771928759301194543559425881715991022576792446826396136215270590181332818677763893988879810167622927359815085195541795150071072050288039700804373810502887622698243975753301594425599919065573711809256670074053593214719003084195835323837084747197665577013699720762459789757912439896707813833041286732235416606147978997241922013452074756456240025062333680926943440330927782726401338668324976060326161890121789721772658536355024904492163588094545159378526223576376935062750864244381111178756145083734892376090377834337160299738632130264304043422794120205307405154425630920039884361889226723109509998673749165678535718885889428164693897925350485093064121807433619915196742201430832026835829030925120952159266682611411777174578359294497289838365584108769434683207875409510426147347985267165833967402724562686970762631857809555182926223081235914321405819374858518743671081898330953616799900619388065602759125814231355412541751941275408443173779804282477157955480739356367225497638850388881552785536299907032408355124579988278502471941209653129854313942955449637474423486410602476416098315457998493908980955924295498465112510145354847021647563662140364503242992295345612677664003420942106179985700062558736404857840497688170848788875005408718047361338743613318305597683311831319591720745148340330494438011921007269141391505450555879519344901215235598011266760635765694943608225240829553303118393457247152707197780675749534424745725788114023953960489421559525783312374818422919884443442574840541061069080293070785266575050941001976617618860598477301291191254033503379014494259861299482502818099281723264580035234337380841875643392744172594277256217378445665433283490950554883953968880356177377471137615952716028021018402467675810048221281666920999146529127128680433747716926561334092352075620048711823802362595326141618434239396403192656440357446084536249200625589560183830937168769179342872322021277148437578349400822711121642767456678358832457983223789611416359156601683566202797344727402101971888950893738615658094669713174884351329135426930273223546395695820935050203063013329027594691224914215535709130719379330116595674389872185572041564944292812677718369330169102536126875753325397377570845097232804216374444131244137925936714036489253248436716153405863715845696726032950962891505204492268089943985612564131654032839374182408379898911426376291024933657590283020559771049597518816106754686304878987920928836173031290089796387679029958614627468685252345564524062986170694757472742169523389876287586486298997499862466617788487233329483325882732125533538463033107423129034115756760435236868340980760113651118118585969154391810863446058534667572652601372239684099114900223135929065032015981440569725613323849641660096520405656616284111297643481748420903337185562806323874821846532328443757214029645411079535997810581639026758782692705489796972231929883739362559711295516472683098951818408181910826562179556490537320400459850881554589594288038083395381835384691060755336872840978107697751085988016234765494701350433106624028750554945400240843470001211299655181509569940872857525145453567457757194507717928726945595548301521963160587316873039448276917523308569029762742205613068820766660728723889572187631467339776468374604397818413684055766421260805922833280874305480935280798570145672999335446743449878920395779290474890569222682671118597664922481642423881043286936884989091089913719453057975632025360600117930819672677525336320881080089482883436056568595247815996538667769300199039671209341958298330744129482094454451016410166991869504953318646984688825628108814083911400841549381296454016963305944874748605560610914004752743505509378700810711274899581443317164540494768632078006560457529065543743208491891325865713659593915477421747711022011454088847929099906265755987321483970472520328755992302066546396767562742007634248563973857721603533105253950308450197828741202048318124316381652907315516960295386503320913354710252444975516755262387088634353237725236731571383808782023019710201055326766178456669961587606062416498723296278294469245945414118580729519333107396077231404119029398081765499161841023471103552884815375852875665678470831537267624536350722210847409466370442624138002822384646273571623433217486193833108443553317712994127797794820965386227211544654907679385749166623144769759049094502408264978259994312476291816628669519232797988092026872786159110172150115641785345556212371978074017268262743250272025470921704593574662560163181361206250295440270194436948622990216525736755914719736245073337154146228605848526190000058831909750584668476076474682391035613441619654335479172472834251897891373553372695777722091189719590818148548858934784196998379067473884345765165346354745281887497672876925144346177525213176827280282669761381515442470424555249358115690477141620287122705463591380884324351290972971658021744194067489423040658076150141149516533878785642409597946705275326590842248965459853682204138081541392405869018994987561454340438317689516700235701906262939562407652515729726542579328139342711271810901179961549847804454068786658885467159976054457487080555782041604926980180372153666660591307233191722447211824640496056248505601712641111649825511046964749846576739563871252046825495870614505717382106783789767155316282520927537756077234487345211631653366826859644339172409364727599904274022714134419580341380957245424009983852227654361823651451031930316339265496745953953354747528550848994432454886431845208304425478441236145731720212150375622639516236928686513220371872431934185649383823843697921614548567135416157254389919327223375978777779392627434427599236333086898992700860365146897316563482561452274485982098292207123267792843456886807251480045322722553521444483216279117378915576419561372553076968072538410571824072461412211365143280258581380421360341133245637694599231479838770729459153357733462836063557620130986231898872096777432142236205234218210313202841206339863719194152275535268464307562395749911125423111797498170343127573553757468844185871204611959859833970015601905310098749232755431595799817296600945630909181696871646105197138534037480288060489293566954159195659387560489581980668748906764441275222415131748517758563470939351820714396110097784771534872367898771474345888326318587610963832501077401529795459201531309668312270883193804762155979567887485867288935007939977448348986290855057052292050098624148851490100513550146235769629080931919212953386058444234971272112341683294254123479216032208604797851853895417389125890439655084876148407358715541743924631449926584753931589922928086884161680122942335039820820721502894010043789846597844057760019867357097702687633057496018095294695851750987878778168902468221086898869457002438254257375670817756101552082388974795201512608421674094299480272367791280207117171377950168066509989402377484541542382963291899343060402684396840983896828806460932229192329308354103628058082230343558037032795597665253221490536893562376209275295225427680889615211808182400454123315529133063297174951203209800653180952045898063814611386101501489215870110905735145249570560715530712945097142873208732901694014952158414485055139911664346702873508383663724719812045561628048157661288908881588284655991629951580804273928887886860095724453726232037616446790071182741001714007015127748382140236637904575067813157082400164448947188506520084466587619282979279905225642278579238193880574869465071764382792393425455664024124167778823024289544442555756442772369248151032276157954109042532968480738834000052757103019773505713280384713106654565053415670042796348566317239377687830767396847772850886515334712451929971889126655107060251071196182704102784827896118353676531749396375917396654957122592510600893433411377597998456133140271829239012082801685734682760228545422825160643142666997391016226066790272038964108754009320264547215741263105991144054930838932416209051384700265580439792259542590040331343939476026470745320641821604104381984431826335465345570309658085676275449312665163958938650676294565843103774937388172809386356694105866163662778339732280131285741425272364070476044139548023529850678615444108117706492661534186850797294844604561400248250552051441481609043284701426303384266113077655678026203608323249160343634757524249316750829362616030326617241771981528743572415858571754712036088339050112597759548459673843717702263626735275978641791711910695063182876848381312070650880068295682508980757419655726069626144529179731084126158058198595487258760270508652519607507168818956140034928684336774451926529575343845313891160693878597932035045435037505177497708748241211972355262798461386843045572320965724051681368044283618968584047750671261633223711675046446508917492642957764733998254848289306279700725423457793819835629864215998950523595784736669363659084024165290372530927044353873161574315240483219998058295896021377475349594644603873328355653737923744383482998362374809177571052604238550114654791120665154344993036963529467884724953685877403424653553453957919424214817188217755585902896995263907452739425345068323288090279180846883068199613050836222974864460404077461284237691650405262420627014116833463219793792848727840809093590304703607163124689884597161246811080505551429458772672425948705254112203292855927341189962161835123003922752575962588304398865263308038431802327923311188830117630610651620341344073558348328450067362165854943612890868871985454643506644766726882218027688627090450918860884349750199122045042489582693579367403436075294487684280174677524774704955264217993675129838858772022063936333883561403971294014439727757579557347691449638613966910811558724631667929585332549510593438427407381799465552855412653698879986137396789890110921627788930279377094535924184233710573688311187367669114905306986866160221544612129204376415234350835650519820329683189366247191233378157700841646235879056305803497633431680596129076535895358830649318889824927966501859407891255063216967300919392675947652700937241491249997356167350763830024187710021594100505704518134499314430184834016910641999105040965395678764876246650874407779456821269651345514228876457740429826108007098618675263714479952676659127716644426543526983788104739680277340769854257533122629228228295865049696564067971896983020687276548958625749005893859391496390727639217070100698097023139215866852900176862027143896366650587035416048085130305776782841328024403355010376634386814832681409285026374007738768129199385707122076083585806264461029738279998539302252714139348036181958341089273195983479262273637360176717310618092179206087794856965099142077495778391300835425980181901813529623482444980709349620524798776333219950199999358766725520442255575295218404568656525104165540558069373124295133224804846860271172030534999793791283022219692284591223830617856062180339468839361408194645836282114334151243698047233775442657173678363110409142605466500285363115144375780425272031117059940481497435293450121952789426988402701165011939471135994909854382919051615609301868797000947243341158457102531103684476886178385129650947538112551179318473707615233388796156638304874668601712098173669848533276602154448091897145987634566988180554033810504479245379483670481250160008231720740109239006135273387223014953411983770451360903808898590856538770318892054765912013623305321179807944655357103275929857258574463901484675701603655002434558950858531697972665812034640573941419909347206868171258500516355498277213593476450165687250941782257550407061004533760099988965259620733654554445707383873367897817335951655167693614529698629964149192240271514813503527160952476932069950716104566976841862244049223964525174719213891542525237753194205863441639531348302491698066378374715091641982516427291669452685148393877216460705730545105403257637369924193867675898283027066915592168951679047171333946708630056790480858458957850834296725399107461295473216544818068257520838790611048500854739834815258511660484941861999788972012142893893922558870768936485564943751686045269455511660195175807645947516109211235582051064812325694818478293931413103787250107310699467310437178958637124787929544621694923433815038331248600616040954722598034301330876778097249325263366040987525140245133052882502066851343577635027126830597318928577641594337192944211845291667419389184353657918360961972187122290503210854936152668401403098062975051180450223004224519385184278047730618382923057459847641948771405059219961613475309431224027491788767875238862817746809600033340494476208556046593592206210060120167279479144706478868527145992447703162003192526489814443208358966836957259615159094627254413221142702611408012980444929221221079201504971795148408736301311136810215268562725777595956345465566551293331245883740178131297022745346334037793888382821190962379947424592853609451906666161439227366385019658696913997935213819789242804566049373697812265709243865527967823413023129996008634014832116015138240351544332812999278038040693995942436687835393332086394311588388684442931176431349165298191136863733383136834914902798607554272289789457842583392251326874156006325647146682212271663443637189550313267126646004111277053566629047795747801705907625474434576227079539680585235440948416196019640258434571056843906048638245154799665959562100214304206862505400025403182385624229390442931919068031124727561290424975893529343358437537172597539151048604916466637414580277045835374521762511723319621993551105826114436775926796200257493370364408174311398182989256667455313218615771423512401146612320164601195906683631167082743759233834901390997511869340253234840958581255360759981100738861984793674639856582324373389806542710379931067222142214517685686435552892575757480862192581479050130500082429453413781209911262716013246450762658816910263149832995156849135357268773238473864015434543040330760762122068408394537001897993185916034621121191386686359335217607759577153120532323909765593147051403024687856359452690950170830726446950809210314808549464598866579494852496105878443481928397151077469600572448128959589267489946522952646791992040748307342561310918436023541530577527811214532225653566475021222556665435435366060996262878227657792397116504417752322371353278931468744159869425352669836506047501955783770528043586995210943102199793516213146276416540281501090065175958031185589528992708123255164520370843466275739558319150196901540665291624606865487903899076382848150196878019173861983699564904069778575594836444499058357158764700942698502839400847132370920091547176254756848536524092018138102493602992041682906779715581641122975338923363676714855432315220131163191444097649554420684151172351292641965967013825965944700608869873735546596937010188955118273960177696941884955230581604190457646962029032164921051685769199674196576581681485494475182508536366016801680507086784727568318099389891675903113913517252374681771365667567249984596858565782829295368414706477488936764680085107454842638929466680893824182004238180867837109159647134673287504271180691203580619168251292676353480963907603564755667590896025019620353748790753362896085499295375947324376713586451906643556860361574596404601153642027035879253993304000268362008869110368618168430105492638969654662562305700826972110758965461995104732588040764169456130219901178896005921554261262813533308127532263697356000033657542817112209113226222278108855479352784934815310406437575734785976933492742979581324886662754252701306601211081933892521051913236212042655397326022532764508960318561812936546488335778881583816306463990316087063363768159074732474668264773337524378982576054240312409362649638794296518338534550215698956180504747580702331594545762845360751511770038134800080376464192427659343086266207428374158976099794283124965650814709525694852894999209584810123839268488063407419750879630261433113744465958940715456295687529651290161081579683604576676397102338543171221745635792586796087320581579689465158627637948399956884473541121302446933553000086802126869241421633992759507954806508646619655888540405131286681520295639325735217771736451915830748738556729706357080056734686811980857796116401554876958413492513163035181199386825172827620577955744903240704615165562436029642030014350857896241359569370656243935106282351684566894947965962242299091558955636315258373569500871255895315942964750290314071286427768978070035863985194941301301535091163474415687339501822365394275611385058415335893039118095940362326844426936069675089988129758969278512253646145044125394226155487048155165686825895938801277072465497375811959457821344773077527912150315993495512124819905654577729452235704249070708893599430191975337224325169366160566822909132167031035898935970938107365541645598887949700118718959842943839211084726817580674003695174138221959495278336164670916165399723083323508633494637387385423030169767788072958048299130752668145330880509494611423125918366898286390122456958594638474427046374045715926315900973173014516919798126625849524134038609590118365020514802091440767078447282179804996466219659943516732369139347400662443442751575692157888657727687802049863226416978977511148399687359724139942469793749217410631420259846297854593655380349904504869663055757124623700062382706124723443388681593655407223894430269621278977458845454328287248280877319825911761790890647376305974803254498638326389110614061126235969687648901225831453176466819593352958264780337693075524909237054671987465103782523442387350786487912477802099412668091450584892066379973004022956186576277555740627954290633765035086689161711143592319889508743573978952643821635560755387589741314211867319971997652865793684856688908436417563117874312391665323214337284590324748086151599822539041918072483104647526301166880616521267837820239150001292830461257942201421033736273144895872908771655768181254662987377577646877676073251279547461631413373259267913559362374057161322424128040413688018215727296565001305226697406814002752440605415161285849433296856629123828475766149665811069180012618885648443834341901129756160823037992684302870114981352187408243724497780943795955536911117195676232431158653256670369853930561217894320814372161498883023455531923394984268474930690351553534555873110814972538407494807160269510476755981740524085437509141390481187748300065600750148181242979395117535105470465597767663514336885035397948689130411955598433429542756503266055892242387496020382452838887379601960425285212769302987336764615859561841774849827493184020416636697544358864697632258842843904688239217158023974557852996683497236152929448104438561831295201634611514567428243376185122929390294488316910723098040558194961472166103973127524635242795345490791834856130688210180587233579272097016419841058254639480266397734621112088889458933925135706525351239356097203077208471364769237113952348814641192764149596363513670433785320816675720374249440451401513910480578408077931705621107968616388719477568585995124972433123400570074866344048112785188118425736468329767128346635837628401755450728052611909375705588566837015301126941587531438642615056258843961466964056411875847923832517486968129379256952721076916734763461210084649853697482768166068435540970656203252153618036184391893358152351238961582339887237203392766867754815362515986495806292901761555009904057631007246902590557018067393676385033165806253010629820220599652786876940063696784557018668660212393814613377204799007864478722486889424472627999345282703590628407568865357533391243560416787079498324742353992465215209653628916211786799448744079117130374877271418459496710140530050068607525133302437700756221996468976104990392288938585211836559882570602437693255524504187188158024803274629240526905423022627688866756091498743530654764419295085905354070389168675750009369570196376991819909411791166812799438446382920043214604762214050706015288239655366498405784907176646192454243012453774710526287378978388189417522119149029098243984297112145010988771906333716132500244283804661380885645644123872044180678560553955851260135776902167181774984199291780222809026374199296811092006267723916861113227998090986335578497515865973995051672041837200032495851030411482819568773980381441555935274039068680536851084294421198826552440096395160601516169124978735672977610208263736313603399129908199165037812053760970487100895543335194621454840959968661109927793681249492060293873327864608618650064226247174527967680278816655079011060540162932131155402912209051719071556504834994273975120701460987053447036872216811812747041962203901784358614343859225647365047849826219843085001725137007642186151700019538718332602825668677619698951625030156569650052951879153627270144514611904686892405839009221971137798175785655888415909534762963957887843094401602283461706711067371836828148226324804325655859366656011982778563884466474360032181848031911048632768724472949267414181545427185864128610344830223658185379614252324410672769187040917090956430950968984603285750409054157217483759464979628207109791840739643118891181793863071164922564504218435705650239235212353130706669815189237732065814698207223198893240847475602130974094401979001356353001860984388290545001961537688110791005719432331064298579793947404132152569677945224651202479907418371438577009393270212745188277286353339981035300069412914943989826808192056371645293144558896643732813779806108766735555501165910191660118929753404468932080890976233501483395542659212429522743970213720314456400724559623472523807012764335222673873629143632759727572617967139193145943815200904672413871954015911335995857758772688434810391874497396184304225935487988681344404469444494303892485986843753048123527356882369870651391600842893126841944644906254612684426094553594848461045243833904271563521635805340283857462927802573228804100854702307864353096809876433909111276669458855464061101076388362676668624024145975806190345221265164298772946554191402407976444843302840765625064252777329208926088878243708607803350420606334155944021809091179988313798896117040190420970889248444760316239235446977972832010307699608981480946979634904030121802142219011949578831300007144853902522382387567685003888423533119577622336054211110810187160624617164714276812709186196214549983418045971597386108329284358187418631557870500158371545193146978707156202998822410662094864703669961416565869984592650262925448603817612350080646479525566442936440556089787315796607533829462938562209791428618124062530253815396246054831531537405890300369528022208375184474046344294040466649741743342126309852888449444931648949643705080973167870497043147750029901397588701198060993253657344372557771756959101180192484343280301788914745237185429128223303569668054465001606937543477692371726740173340460536056514420251112375673139925842278509375648695188573751210313934431967031407091473772892094883471496643056495799604590865203391225477320353571861013444446238292220697567429771714051364714889582781497269261718122861874212964465234553698552716414268305117935944192291286770417466930668054245560808087997325870745121876664700260327955451427281968034859990309545997237615719337596641532853626982766508693237501155486482169021084387508950816575490702654637434662491998462878638500680932986235145820508743288146444442613965246036257328642404457075792884361374711451109437746283290307385188370026379810094029468612658985659653254706935061140545450114614343410772550812436101221101708838752748591452934376571943233093159587244552561478344199024985732030818333836176561821543454876228222092017665317772311556804330055111069377022042761498384089014243520674651422941012229691103164238477126262079328275717323781627510751530987647754118300246373947115410050942480852938253756016839497546060019840933946049897150277905467456726015997543463351004421063663779305885625222906432619578844684383723889421608740763351507285718644433001160639092619447221690420289254909925345494313281117435175778727424026774270859613121262635697909122538388936722341843349106980653474962228893702774351623817052623589685885717236131032567306884622376454611825510879297319982332367317334495764538887583634149316576255543705875388076063216162925769855303667788184522770124300466592155535704879671632794790957535010575704954342335671076590003218955456110955414793715805899917177051464190841014688194011598552457833249377887717167080569214224483319853374114807632424015550742831012839251498287456238475004646600578491946602051084974990648872493701458961093052809231952883707628911787578828062091227704527897446180152776654088671955323455371797744437578634136940586273852603728383196724781917516318961710429361786489277543125112895969676474387097777833008872470994200704236265082400799731698519597770525335288308481820784158501143273397078149313740620487324144149358150022517866638552458643250109637384909644632112516889102064498110748382880253853199984279861134895495370574845645598853354066159178578482303900108311859243161040654140954227822512968756358204149863453410094349617338905233667795090312641302340021150460029234439737329630636189342277082753649437129073427786251912540243020420947418115090452640412935695132396038287278237678470258380278804997967488537340040667379267557644570980837184493254654801301768639055740230699331325199145394851438119380079599738281127398071232497581706278100209764148883686317116628913623794743442785411339216936592847747074444882577438034910131317085170195691354033280578469646515792641937665347683294133370842729988823631897058073970250974565469405669545478493425605142054257957279033395244879513468234042869363479976293359340748368669167346862546491431983166159671343716939648423977565672394380869580829651479238249417793061267127010474305563500184294242591267299564728037626852157126165135581600529405272926255430348604191035952822212546036132718457836535933729095155347465954970592729458687583982593150422495866842399269943843798650475786514842940067572983458564007926880969060082913826952704209868380058701311587585951874730864667939232464525534950631726770579817177559867634052250625582664986620880975431634753745351370542452516815472515075522219327432883323797988433871244696488662543385733841291604984851309966441642629897893845027335413955154402653432529530193528942475125908197234966334197533166850441279291659557754371101835446041060478213155119571263748559882039351675864858983054219998742949214173046124701824634450132497544166320263163192906213096219590127553154662026387392615674639966207517840590853383655829012989427018858206706044429300095072965742853170546254180798528727281341042376887393176046348324409879479851126594640252444308420139401333039071969489456936476944072482679148201798679496525328604211811769313816025904149986938632534950384490792432975690207347813685142732978106844146513150421188651501429566837959008653433320572187235450830849942628281835551034443979047218244703996009082511628516401004816367999383698487322537997941002003851691631604182779813524330352876121753469862538528909125175884641032369047686187136027706924767871963519277562193208157568752917889868177838841646327713988096871924334329755650972351810687580085200222129743221295739615838788533931305478737465913955602806371481820556227416729230238682816007540387661833272394764398128359182369089254879203951667426498800229128989627221099202736128322031252276630455321403966952029587419593489057013028027609162570061780328071769282449997874220341928994983922638711401224511252772653293323066781985469793793779840384654057823507643800885620485154882681254813130233188868634131460498307555501780096539191584654205071620122552252406972240720418847291705597914075379715946438410777823806592277488487247816190880932571942460228020498458500258364429107630649644089795054565663290198250641975677769499594614014473590854201437151683280772484992070394519702470515291502349954780316666707624263355476205688274634614559188763895330311583259161832846840206126696646386282259317835927686471858831018395250503757437375366533511814950383353063429869449747553002323514474139704327031467597532002132164598773360575857213095960179672796225202030532265778951134115877383822937043286828443346067874762444624827991558349006560762372643887441737771595469819713145727797618455056693598600569570049800040658234902053193212190551082738817261759403832584512185247646205997354203171462916436164725680560575184489429048968003201921231218061596374298919174156197816848305918854323823759478866857578591829335077465078802622067385894777072105205753366136819365989792851577918681622185657128241702618064646220243938454119909395622919778457932070556182475891879641491809998904045467149920733393570974661180830379298571217112746971213483258106496153907453765119686836174056693013806769270123079242643256794312418352434314574202729242193878391198546718958386365628975879364553539627637573786432056612435954455188554657143024410425883913275812556881587504530855131729917374735929179203990069741246551364898856883248664412525666152475306792999531348998265980422840205581607481899122445105636842468451918190835514714117530518153911294524985550879579156731747496219413789070513815284306152452972193828264407134594195624774830505755922996380091468053987259092949147610770039485317072832793412763853818435263157052973952233839296268607879714410621683189809043085770687859108544390211421899014312187810974621758608266527111175809880762380492638082439888246972900312528141873306389948890120174432286121111464668446019371215595013305028302824061109859736962025185215520897319135377745016345601176559437566588706920286876126236906423713653514998033882610052470723428814511205865279520805661741229263683473366391794264346796445715340194575795329359690834768238781624390538686173353432374129587902599740711641495280084465018731161462568428653377400113009215664932527379800459906153909997497543564264599888733116451875659442481434945697868763863226479455249529449585466671438680406347828093572486718981853357685888341693983154849062517359890687199116534649642738925929851952855164860133736316985270526499020717107579816768390877981812197962234021061749359754608302667911042263072619883374512791802138546035967145133035903964748687990486063452418158673785897506145344539080662241518622851899783091115851546142688623389202672724761180733220999330434027030189262087090475651497766745818413507592033098759187943262298650711524754935831996487632084181843372328219543295619996784462697976579300593869374857971307868079123271582633947749913565625551319892671950716883813720228135886462886989542472502246499669374287844306598747919409511965704148193407474102387975601243705687286549547491791728661716125781292865376758809627954093701464643018286457467500068911960759905399923728369202459346361795128969337738213269378770407790239433709960764034138149597301584408502815311002081203622404819184190932208301642525543904501894617429234179817436645528706950726048175652676479097199862738093799765570548428106873377373734807893871631694419950995912784407785100673335521436116428977588193950106290444400138086703792925204338640552813916814905643615451203127313166466654273695959533274451953553838274761794020623744881566022865415296760395227406838808784231216417468814142391949160110333540689466129675585335100311680621776907251777948747868913268962833660970497892852974634368512740651275829220016899930477587088069172857834324965094363078061184297053946316015872016958046580563748573266727663988670914605916257405830894221089297230200719933843748512507893631806301775036810300390395909530523791315395482831133004975030997103613348231499058185824476583527268294858374365206434208240425200417624194082315153185813835721344388367165543180719162273487538557875810925431644722763280523088788380888933341979066046922453844875884274960248935048000906946556341370103971089229219117365278736532452480266956570524090569857491207983236473745687421565732989723767489999513987682491427252062955114439076522111252688815781158245144140584556220650895237903954562066826421118074859923284663699351205410947676547863553757644649378943535696401213439544976999680020915439337406729591664036543922882568364836807729036953138314647756064763765022629596824290566755452556986939336934027288715857026268910028560176993624953867766393640974231155689268500347865370263539415486900546395388071932864461160097786298100571717268384827733399818058897715122593344006609758884450733712162848801857919882308401020525784997276139448660912241583714803324399551507014907266369944362208014952612941823824571306963279274895045539504682975546121192641495215538497251871122452326700546811447166268688854441803826395189676009912652788636489730932229741950602872726150673905536707666424975538673923203096160747393364417893802829140674029139915689462483200111930170122101210342669667084648013192208724925308156739003562281591260092056180183080798629941554883325289347794769427515027158342591686244403864578641690981204904064806585478161875850921622573819053863627385775855702958999935824732932814802547904483774225291248459975575087683289123147654439400263920221856515264891231768614683981511227030278241449589590744589968011890991152844520094924263343417044853981519327956438276876363412102791061237795652545922010449020509108677297965358112435092388252959679699628778187027250572259759590207044078637488037501207078652838823853195613247171943392210495840831068556939261269972387423556061201890874046958287352344517678469073258944785354177705962920879615717596147897806655646247784687148655152189648433065485002742398742471556921333776750790385541309015383770978003010490333232615797413648093386282597680756079376040323735998260761370690578902698914682483496023478775333067639225617665441730374688563847563266603376567307927455770428425191463953119603631284081741566377518900879356668297326197460878568684751793036102146459855420704258129252469640101278857081646110503622620706654478415358782017732181504003316177078769781966173101180596734282351596427361620556419060859117618837877294515612202834903354624171898619381284142961608485563568571726879470305975805020686649376791985592589657754434636302011898206156367936125678314215178345824904579080724421673886457859492456142657530532015492572175531616220313242832229219799107986650517862922951645982276345911586658317052077460720132565967059338035106107058331477507866102223413028584018349644259836650085102573603530696048202111976654634767721714531909804818199119094671521329050831922118709845930651122674554308970364945088855350981639936626431880243507557224204512397787797594711483948680202604612683212089281214379689563878067845118560216843201174404980787594548779302151183784571050726104994771644051457274449634553296396593672220059456115477201455669421641560711299637871640654159855267814766366487456910817201136938603564203311237781065085484648287441157336206096527182915128201660037431037581325968792532146451085631865580898241577665607763584225652355342218120769050879140384203408906383602637270533156997825113876057996575021827501675643404126145699641007680153214371989308350805668002247240998192039975823561432758872377963050779007199999482913511052464047335709075762025527900922575724024339623122792206558458258403015791670122058589697530117901352038077489845505918860978287063016843277390101177685391244031328243041412694043066708739338932412261645703838462676707596702845988231417690401747304755175791061535499626659782288254620160332062716121891839926676030561658085822715475818455014159482333953417475571113099006175335534101543117881200403770444309463069708141474613043268556486755157844744369240246176080465608998872210036712552933393048746337161021900721153498299422444108435700629460237915642412374761576028067023575770204812142451820357266033999104265347310973201914170527865827650500497864634471864608269038773728048515851057028615154325583552689349153162200373075758270531905742331172470526908094883271883826583921963721447651287614712015612451772976039887662184971556696496359224385064921196029600158168117891972260288887773326643624174631081236671829685663163763284010132349737363116739162735988258330924101617536192789045957137276892256852146504221211888659933925549090228477976068926452449395950921948686524056105757657614260339204576144965445369800935576964421980990964433044658490831713296230414640943586370117183642507783228745296018995102965806759349145314463800637301365705797055868429995173167528801826999455993485411128946085833115475080382305572195991713749510060994416251673641222443850022023744220707148339904461939127305851926538212295372221569316694272709519464656004063756651941254163545167574901446233900936483134863624401428827190587512423548286925601097838555449165223856642061061068724338988124286873964826587677577386873570124250822644013369657265796457112356637466644894578898872482263440688406213434039726140329729993165585745299318678803923296157043855092379214183599291776800257002922395965612440300827321766501154387278065197477756579791089935531414459138188745095306176474518498919616040975085241388109783788472640715943337255158722848531443494938692916631339606074002661904312067508709567585938235758737919560385423128389227656216274396869794223135934023035807094432958377590465270480565228730512204952860431373008694991903793485006036135167880163310991088499534314015203558793377805638380319318418508261660890337295091854653013181892522265390006834280249657818150072002486545867605605276357049745313201165414767654624625738725686510034182462495357417712046272947011783071765791457166886892799093194567312409293157166891345806294807544629127529660836277191449578846198942360729792312885305219893912756601954435631047659565449085987003250136944004896909464493426398646524341153542298574955513937856704611509878383819220931949263832165716377578387336818129055449274994887650468869751515266136812779783333302442565958466686268276055810844823387988793966538815959416463507821194004196316415799057191408358744103412782728167971148847751265035826782721692335355011806393809377563248062105303395130477078370784822628592348373222395834483608502383389761703609774767723277191538815852963020443543517407950196557512159354826884264961005250831375512315209533181853429610826203141677091940190350029033067447986336746190305838562214116536949899055084540693261618165023719282975680828883170129632869348057062337847090285006822382864407761008576391169295804829233558640677055593258807243449871166464842252304864214288397052938011489654633241898648380543349776153311243164036979562451345074022735365469424292917624897210718772127365809070282250673864637040967872025982061998712018071995144154475842169435106990244695372282758235587302276505733321361906418150382286619118668795302960152708775788824502023510227011563630547922300432127291080296782457161168600682217238006832283664624756248659075880294978886566182619478033382089841399181435150795856297827577870468262032492119116706664991742573906684782609946850886020468182163109406983279486264662804617280942709275566213219364099190814043836548735781400297836857705477719324671059345668309616507645597905690070615375771987283056016578502558833629700911108835869495338130988759520318993653470063334235316614250616559510992362225589519417693102157322808670290145281027571762942477699105099806305284318606510398996878247990441183662460712820686985989889062869616593288179563871752141116911730049472924304934087367754717615890756502901191025311748166236923529145404406436734635440611135448304497581345338200624214257336252136093169378986442912623144147131995408512920783502921752196858921512913541949105389040723767524288953086394847602643818617637242595870357590835670968493097244613512636664693076216408007341536256432563441518804911995055915823736290146705071489040581654925689911661614237784417466689024509895901565346696604961551642031778477925198600802034272459908141007545753272823461228255370185772365901156874904271692833929535571470562563184683469263410120958495978316328065137023623023804240011489597626844706361239227714045793865055930421687417819172475236464902751766650834297140300275815756678496853112608967885585495604558191127196379417472733450058154595100726071326224718931403332328032162451572135589253462148981322816331988604938250940552043094102527765880820024136197560828862013312963734658710111913786656781030484973801810241962071648694542920745415587721820196491110607411156439534304741293138457175905800037949548207566895985706846898123550721772645751435220149952173469638831859724977388271098119830612114576203923810726737471978525258532893520429104407433621572471498729500970760385756117049111103533073550230303402774721342347193649224028759308403862186735766217452449989724229615367454891893558561583245196978615766704268828790499269747251318457384955699226607933401594319570550446530763084794048124293368233570862075727235334157390556185572651070232646858100031579517999557712558173130768112799481550481000575781929639900061133303339007718375096382425628208753700850489899677943803759027628869846110681302248513803759874609830128121149279128915337598676817637906522030098610499669746966661346978270368587301014982014927169899738776219538964033987010968917785828225118209788384717695376866252457557738622740777660892242549360072535131666982135689306530282008021061973599806231576174779138111626665728361393280660186926500467599795760251823636390739134679239001369625468149804566916539249569359252872102058336778923810673411785770829471754349435235847742987428423742975188105083851121418278513124166092646092333267967896481267825892474804918420688434871618436299125602956202140917711813312949409100773915561667875947827469668991712654290395979285964166381170890363463288521275072450544441498845087805002560411321268022459306173049597838044900836575430525526728930190048173169870817646862474131624046927914802886081102253406458891428711546576033419580287766080481652793528298753605995671227365305806543507729378332016616571371921841437699951040548023421376470957875408513394293763271508715827379383902921899320796934850390743070380792632824026348403072809903237055820085265579236147990885486190752736359443522883262856847097079241755558802579951255526722603638303223039497882320372131939297772374012064999618835982689191777679928817270617773672961275025105401485289164819001088192228668659645194363241037689160330153639130523254077826174817007051970951071553906950373670002615205003269227571897646583406694090692765395977161556094126854463002493775298029514782276132853436256390959440260409458391958722590854571110690714383076920255725254261525750491229738160471817374846561170661972148791887234976587587267096836797364934066279031718852378342411868103846483352096743067063955322839428316983991939103275673845698542449948260293051473132465029477837694159127368639910882790966123346605847254910816549021379659797899460489014554934185354670644374236249172102276214849198747208809435973010768344893889199422274521897870730962481778481968429663994011732255169173029604330820913807776111837467737086072056191158968380065141483217952086137696340575186799250992417004698761975889782025172463081672223711716792149683795891309310520028109666380775448074101597227735299991253948260952392742365575246305556988671946677813987575948678870573714560747915936011661907894096406986208183767361656752116588157720774898042178065611824118089863625234455546003456692637669578749947618114758109477553458239882978193981692343866377975168064647007397830208388190092223558490084921285513772876900871361491988679964273112599934810190895591379443638057583138740147012698694755262710558942458063924007552255515220763554367712597205837811443308173125735947536070158961686607559740491501716825507366418718152821653024124927053418065205940536203743406580649046022582668243927778750467038320069336938197809612943665019105457501082839016567588581126764536752103149054617000500537614303705704739770369315505652068767929211043726390519447262448709559512962753480140587820934835859979693271359397667417568026301010274380503665488461833554421376244617828432404624300077653829523486082599515084262223167436993199468156441666962953577920337405950106463696179382615429203850388794651371194780420182007757056754350611645318894643414630546322228337681221994076302363953082388361303926414953814744854275655927021114769443632642279063757362252111558410222609819620569012951828341363049357223678366071610181311699803418011705542119759348543968651844879159000172508136736794654156896563204091810998584857477620631554854178566025005417224514755418678595791136606593491953801867671898417679187966837993453117184133728836141238347172062526838051537567000387314473279878489455542051467890500045257156524484065234147565546419639839574786239720958019604617407865549746485281958799790465812104364173208032727583875466083599578811525516222135071737533087758246159836886762423877493232857329155413591425734561087790065947977413361946089516127760964456908386391012059357253541428240192241709266675807511982043015053015883384246099763437706024324375871832755530999976648428680397936073102901464690523829767572255192645497099780188475043550683165519930533202464420422475294821222509216608269815452006318925852650318831956366375257476106025326598362039048383958796576563613666788133863466818896180256178099801675288125838004325567557925013056206430902811875654015130277718956403805875339338864184226185361187644528436091597963448424121059880698738380847798767983147657045033905788654743038084802750836182803076912258365370461885764772958942788369576694991265902822183399405791324059425903725851453683919841662261429719647015469286679943981789725774462917699348297001654383184851975982094326412774776060657167797000670429112454816608826271993801407039120064681229120916840795769046109061837985692197377386868626678253181306637160879542656349758795308576085841405283706178314285084635838535280741747558023765267372697574288401447686786449987215493922394186124806597409501203617170116544540583069305341179623181166088407610131286008877139102039890255125113395653976506483825947681306851134389603155680190502139665977866157183815771089859453670757731324708528821549078741646524447722746395751927891656203680578537235012070036728108578277289001919023629645125413749994168529022040180904667257662680781913542275134834223332574064934973099548722506893239851504201373107663327352043539101315717674333745166816189112678097323572945749088715533823243041834426651290190578936087393656361873872171715432375226214121113296425955296433959402073746834909541049426720540388640404326255970273348932313844909433539334255753230639114581999321221910677910574152924516587678852527446654157743302733251669189106442080567375030990745106086870538169167446287801587271289039394932698906889087897668185775793983190305266962632600589449662103420100433572538430981652278934948328262960587404108084653197890658590305289747204840409822619188460268282778789878062363677082055707323337173819420421899037136197082652303754237661759274004338463602744233067075334057541222929981457515433553563010773313297791689841062160524716919135989261982303036588026252626158010397237198381290856493722238247381671993049644592084166025502985404126574947535327044015706508338868549802376432574832353265947291146231118736164054484242496959166205067113014947328547291006448142701070839244506687731080208146438790855280871865535770064451348871863655808883017536114745340003156144783525328723002804344026362589549907558834638979815293919835636761822775518454542372712178747435195732416576488602227797495596886542868802896201019094013876452214276415294050316954093014710071134025774416569054262763577188738171847269868431764590622219969117922229132344972738792770018560616638781346848985815168390942625135842209697414989018555949604756111730420084926914271402167683818998728956736270323692695563653976715032377227684785686130686910082229830562404972844698510673889080160071483569262588394888686236621630588301489675555971029212800787675238094357824438782821207580400178376923492957054911263705219399544842499882827025180308121343986427521200923530981208204673517117872322918421254503017752976491538276312429752963899786770685607839122739607222170717841218905979405567782113569824153023802094874045372467211950321069049304809644991206463073697399429662207976867482955248584845842928896879016643459716804431491861475769710272101306349465137347174867470107239931052279543864934883325841318540344034024727741671960132829376571322219025899285889862382415876319097604841932089781131881005542665893452863831322813254850564241448995895734575477231977437500901651379637417394524228743944927867312116332097820744091542941841961663294515573470846581220904304033222659294847045458419730125323228774113596795143127855929892030292270169760593503870204703413670585846218460832534640916429120757979418318301456062320819759674646188825911648332729389067436896791902099121055706053047160072330486587895910834958830362441391178858336806010450646987916418963993259679148411599794427944330611692072046338330094173153625322356609361226473288671835900253301945902935568906453930491399366678138370435464906037002363911142934288356104780310591338718981378508218002630903306604048202487194372844850108939095975393044192500095919766280787846498764936445882574768140834597717872900470482011115236122613444737582272559533538925679993610024966374904495653646651191365365862056065070069352967237333924665803145071226112238117753641585151562474234134612464836421103055316613379343768905408237844985179872943010299812372213568085642968278967948497129915288810674489497093721956030033563738194579761995299508142271176553722712617896013923437401925558820781348082097211108112245264984152981917499796768957550209602988420425724739116300753946314127410909598853299430299752089182392246493798086532402560339546716364101338303262239198027027068211391797798155562071044893303066685070616769990503962561581744435019237075635282048626927640906412641691356453710409019444096511289431149512309019438536571539441923225576271400135910184478714722448162332326513782418070078078177140592391903691201710187467079911009910885718340204040268358922024309809207932404680168804418083779497619250988193949431246881329661903953729283374521769668131065909848613548531259222924438769971141937779126364713546003332897871457262619740594697488328542695447258473613341053590823697183319103843488709124703187163691741582413165428133194560281364563706867533976752539395817302518203549427398302451931250982598926594008218203076217432283354811468545244571506662831337515532590159708474159605519948825560318299655492247764965010588214030832049619852798623057429169025390621966107663678137845628397709576377823354418303222042440420981838781199177488741727942524354065345048447772070129443756093851377730356289290877376087245701692133958489246698145744418333490458432837280876569159904406885362971392972681223086278981299763690773804770801926618075184526884006515801198967818044329819120220393440713461793656242196676202034502063005999921695673177167333572231626878287923339203603212685451870240472391881137782556726361396658720428038724084156766221635078389719251993658331466892732802586486760537883852807911642244630561340744109567595280832320660122676579867751815626088928276307962215841583303382705740819194040930500665031335748734979660505113484510135199325881698619254600446250705779784300669809551988561355463974523849664870472865578605679007505152007062591330455593923647980091400970018612791041995535118606742292659850357652342807880547250530602933393706888231363722745005572934556292374559585341406411050738900016772367415046549990598837630309772345283899525577754998476743000771331341742252417307344960992204536022237921230486658717437121926169225790143407882700381474229594965178962389153873374919140668089780307357542655347069977103643639312218188111327604107698062254703574244976326965885148990068975838692983206676725552912209977511827249059510165092373232174582170060834733105224300476968646289886177704704338571798549396065970007581571407616512679637759965108031162233899925466387233014753288420796535784568908471270681124075093433722356281270654308108772144411678600795023155247152583779365500691011875807679476455192435405552655867748449088121453640676923795188990714159018565102764652115757451343484130963870582630257530495915385217809606199436051343529081185838373027504183907490309622652986389611982132315115328808271524666937176018166563200208959729315981378337525030880276618477028853713707926140592871771463245213018436256978103614062815771899584802392294494583471268824627303590957738451998332449008569870832089590985694389986534563669464915899329890407040622985675671322735838237701561919542410187380133936685238949145644447676018979281130059830118589005734231114803257293605968945947143877363873897150608991382871941726430724737714877243747735523272901365004483426022499614962904918986577261445282815944264759172854163513683550861886861534313279541957384112650263351727741962257210842715050154824670680925505486549773067595993483397298235984592682617836763970463377391874390438174328402734595482903099902476588416946192730006121024048254280089122880741230709831658256036130537047986089804352428727533810387835978729016591455935626354478211264942065124941842333419809397060084282518345875043598797540679331398101700053663668689663485018715770466141687946910229988667279484238956834393496050262424263047481013726564165952854133823946211050631983771397942685295994071833666177916443927930759729988683564156093675341320194459609453068066590206947035220285866755081639304601786957320307119312230295558631635714204733657533423888627290902814319196127516954806562985573107764249058948840214946044669291597290634003891585291719888832822087627372637956467714194781240891477306187275964005271974903163988683849670295800224427724109313964493708792431774184615854769796334807985311498347596091275524924662305648632765890723740151874672432058521353387786047920586289098854344590190131713846872257221799858729726797857131854515414101651656412147948359144140409350934544258931218300474219877211314089193682354569998833011209836560128665348620633241231996210261998432632613972515640218556201107062596892423039571495847527535656402213787698122978255154685309770889623374902111389566456507176334702409227712324120595528724954231055394907983613044857867596837513842548490737262237733620758203356902430743133656859535568403842287962389852365331938804739987536513607853508516392826895612290667517932870958117413258568382570202130342128493012368612099704297587482307790393222937742631798730037672792264264887670486629313052274331088626329770349259061350973305173296237183958526797702080670872951210098398225683436534480915886022526843257932729270916873899508919080802860643461169192206667424823994642652046644176863277191020376059783981360806859385151150010667138680846250059442780746213595024740535931351302920026308207446072846743717524647222332206559125078249778637431441807478838243488350425717559918702299208721830720579439220588394944381233743066387319449678132916988974111440450891109028641486062435173252613586804865149206398181094451720292374123973231115190094113940136040209291141511595017413615313167883795351503159398029004414048022625644557256836807049002949332519771122971668488920016272659917849909840042401212245945223405955319886708041527109893389513420477073194546670587453886895197266806162380572593186191179110041849287117520213090270087841535899631646860796331686421292709592693499441275910693073701035355858500097783136288509978842000335785293312756762742291574485748325007645730952942301010164273725453289213146828518924204699114751644326425227509856079037804454144010958804665872610662650653075561658731222351902115435282650024965425029330483184583936548530516685869963466184959281783352218707861217756955994343943667874491940573040404470025671162789064161501712711441275073192256925237465718220787792095016701991843773612087738176521849357689224978514985612567123501657318108333812265017737160745436078158943442975633574406978334921029118739288646894715500802557265808010763394767413796524016158610468748293840290327390892197107679537547202621196630169302639759592114084277295933983188261445134954313969444600467737457434524489141303738739468718574202670089236338175531473432460964838273134756749675450188513635147921560110586337342935569223052532758472442898492830262450394682750603892256881015663850120912324084135803775145555408075319239930371224278814938636960060289700279802156606621359397993704928823317966448405253271478217172693127846675801021365828501265722614565513986374404153274557152145717401964643341700649526140038338755111057977043388478293714584725875255107765444499558529407491726276342378220155449741949166962340983955040587304712350757024972794082600826762987853790286307918009750933242645144575310973304847479609891702414218565462587468979306433697721649691198440917425524052672920517316366702186389655823216333440920027875435618378532872544943014806917032694915714279390764579800127670746271859044054101456701046436331322512960954231157838025736765780425589704527230507292208540947716903582680394500174293071469352260715631772285213834714939021623558059968992617233713034953561170629309908805613203702402545946981973214895091342818088436106961185909115376373268708976371217081372241704422647439496600777018352181703566935514359689520563213409173093298804706638720589887711180374526058100276190624411231999028928428119083750554868167722352049979649198323992705912579635770073318486020626761467368087896314642339529132376476755679265201133993413331323533171374145164907521690688994416076320250940930846795872751580463511164602574353257276384621667619872205269038110437847351683009096092267990911033715278792235520285231825656348225183172993712887120096597070227602923737015348221051828035250123046626680786115070737830320311644046520301364760298664620510094490370764843071559934471328573584222907777888848672233961320129781693179030952287368399095380822849961445716336353362706137008790491902065306721844113580441037638407210624025590862793756709679505418250903757534727680028423580224964874819436158467741710105001474727943519267150427290191269926744394012824610041865876358549883662817359039307998307537461006362828082677375878387803718327205879066419621426457325907452322022703654882793990516777373148787263887269563291016286187090786249065111465882886267219027556523768905954069272444630939320159868462254854232537419105997890438429786451377549531618315607364517266928288284934021665483657885869053802598386054635845244334910296518056993276965644312353509790421588210025921249446957993053920644022261038169350315602363881502250564031988686098907386734457870656127920243576387312582659211137788152025024727831983393812736763373819277399184283459381878001923773768598211453130857424053875662874177147419503374020196611546517360781918011498588230447110339261888165902366809540164509852013869746769251660735771363837348365316802802557336157570296004840813592519509765044200238660905237365465265139272041414902835978844314843978215211347707134242916606729496421186204185482405928304893826709628817128531623744633604420343142887557717608915880860782501066421753555056464119554127311606410022422170666100970582465618547176838835648556986513308663154757017988232366859681119506804989793180838023985037773791465525872429684722490287599358864051380103270741126505704083706982928261761025979645329345718104199124439009521404674688491117492137046512303121866421151895400872109278051311101708064526932903966424245817017988255017889694558200018116208760792781406642272576257213772618278181194429222547270567808352193292151529971818813211685262254008284770463602288926590388912433093192353959967417853091813928563233204796173154860517490415435562641115104192529258502896324185045720562647589517939074834217972546307227655849243747978434514857596827618397371868080742632233731349191372706852379503129861487805845477504783287795237305984981364738213740332371275481621213513320176964665776561114408487604934737969579117685469906996793014912670779435057772280475312415557095298280194232028889683462221203173386488471216684359749667673896002083605017971732681272514550120129511041931843596014802969361316106132816349468330075399187517522696525016589934967196755566333013313150002009915003219251901859931009707371524462034021009596572698025573080732308135512110247419752593779361716771946924188913720626309377595484060145771309818312148078653684446660936645118267052359833252149451745329869567414192156862376258163982841501989233037691549973372645429644379677024260346734632375967953050869470520007661424240464555972993674557027066321186836782508180814715048991879726869440335419641835118776409440128582516406902076909156411878593051067465549567099166817017624957772794249491334603309537491025058491503996557155143487751271333561523418262862652693018783584628222917040542509832011939275815757940143485772587853609196298859899379426117498705839304253883837254528723372133214992812834874061091349153352509183122823205213038976369537764091233906013655523241019128383281398413576337879705311497484373537103025005244468947224291521474939046957022406405562758559555887485905259976273761086816393045001345807156953367013022175599531706905856976796732518537288869041481292786155296352817894607559966917622317613222301250424967061066988150429873513481653445888983336414422276712260919211873128476731125963623902559831735279599937713378492718154515759393974042177576109375582007286342823170608426736226290422248641928439076264687373814662821540193704616777640585090388771022185999112410184917942582335349273053554585353270961582863379108339211048901526182487201946707893276102253854623225693611342474345955302155122245292864387776109119032320637068503175419598746903172624537341375480671750026482966248286056606398736642316349332984580740161889970127522209724561136144195317787555841389799125409490929649327123000252675400072126042025338207107314637514705433565930524756101986293073446966064190138511833799466755719299048232333771623471137387648849602216254093869982243290313241139036401420091985664679323463264806996145297097834071132040840199336009592673081616507940178729832565057020165055965573368491784913061353486711631409270769771686706017580858213047431381935542517251820581554474635661137643890638323112510502962710387371785692868855128829847547404679217349330219258283046749991624149101645835081885793569001419353571767938433827442443451627316352690013158691527717302818199696988733673810636754648719384628104153642678230110015668362188214976957774243292388254064181774199213172631742276559565989469759863080664856607402372206783427252742502710700303690213702180470982837638594202542434720378736701707602198700255440503153897968651768813404252877133570832935024965172331687240871167236418649126981739419391218559583324087255358304002682206263725553135285517041323904657254453086053688107730545035159400334481481139297890474896731236209948466640250321296250144849033660298048080766794876243163584762539364014059500229823204959456922274583853738829111621379505588224425670510436029710364076547828609055509089304207056082860661317935076638095232685662774167124708549359410214492626880149401840005260222260302582454211904357184104014342455101933093862931631713799824002451859527407208153986043933750366793754221429503447835881923424195739656109070602988761739631119536619350596344746923083036088412091770155456937643628738678835263317811752992638887977606676013035689287090494109250977357975394304314193834042181897657234042568402944070504932811831221516579754680557394869371745235284746038570852953460162313380869083955785804702965523223612013074892722799813740765945321701332889318795171172506647014798334856875332125031124221785871516518146281696456571158714941590412585645284397121884349165766755528741354402420936595708354181969231168809753546245843235575980387867882892500284771478501305752399046759006245626740270845833506609393227606546282639401854287975853337187505151590043450024457779104675162458871430904230156047514102828586831806312396230670584171913707619468511934417268453244148562580927249068381723476058801166966194960277102389918499142303124631570947308738969410706758123797486225610377688144156858522471105989161707461533930909605493024966746281170679034669235047609827899289726398923572676858878860156276318233096330371549594149944752534259224313135143277399848415342071377396473768403831357029439095568565892578285468151656177238431236350752932157907719571935863367242781870949064123725340963457961292424762029156885534899059225589786227101155906181929432487542011359954422257018793516789018685570905119026162927321408106191826242289566693043978567508296580267097839559448385966587509398654631701150447379315279928745905572508950498452676716920827866646360951058321399254120304400484178576165613323587983075357055091224647070391888046692535461664836359644534794238720676658327448976320941005065412017528629071150021877740298567644945772282264036006548455754410668983515536211127499434385063594246291624970060410312977601069064120741529953457706867664626910239027017535584679781165931025224871130197078726630317903856468426503695495791850818602376661097950712545063315047601195077782800232222703326789598658451209117095972822533192893320179561035559130666414423640803583826698094109306553626527205718578031977566205614230138002290425807819641165932982128603617456069887978667920770819874453620979384562259453287962462986795707212066340580929233635037030377801466999200650837010013479673289545478259367385437799887646358308652464655044871644657657050669618770803286124501012148921597558453768477301068630804384843392068237300999028650727641161824288585321950738067122589517487103774109236849075195177859428789990742308891447066796409928128651704087066261616166505258653141530465000676143118720160396776429255667854331902888826950583774487651040916991744973502953539326412122858147966053410146265715266461720036117991911725088650237308797479439528332718582205355023309238993017942543100533857728231164860269100343106938208327096400853065797231874753774478030605511908504114658924045418471611242095809093788179960374659127573058018035262913444843442693316592158678603555798121873495960886187765058224977888548523988445761085582988888341071712418508663274583629683251921935016861425862428571669417149230289300275215091672013593953820074380446776543335784740857933519923308195267232988246125065381063397545978200667249028220345512462125955415183016745573654800152788734037865586700109078960821428268112754987573476304300594530300864904491718394446348477943517603770158607697417205425830869321954843675013119897086971913641246923725041924286594358321277244578594615073456746658535381115953188995264776120229077631614503141217423489675464550693782844375077252874811700163585671486480147540331157652806699939612047714683366523773760126071172803383775963468145977669282458799159913384692775682041206405347805749750982232600213619998519310548301787074051986072757018873185661443819522672673887779539603629081220639828412457079605687583115156385533896400496771254483294209009455068030422085064316221272940046698555955480343723399156953330341700440918008922663046776889014784575105793591254186429736937953663184932119561869317856896640157116588336388044328096827781220783549299765870775519081588617160871305673721067623667922097012389957621967213057461630666218939950925811036764948745468169761056757499539818229153527284248587460171403871014629957996950631972465736524530894639365197455506043162024137683500630764040577024191000343258266485154584706792015214894227991039797925094438923905785059357735858938177864533549577405133603215063665919661812034429803070201548006650301508330829061580816913380259717804752618357690648937316401992569672702167445891190712316088231664096925533919236271806982444044363181403334506492078390688115278278732838114138272058077662781419777455739362111294631277710598165325475413085194203574650838908799633437290110763146707648241429358243867571141195610526519470843428770997489703570610894316690644792073497592905205000514656854756916854374497543089710381835468805896056349040876273848716853478638576737024904797786142277848306357189627528900951313784935273782428520255900264335138980743657531601928250253466549271908363628978535120169798189529358636272603718639068208215864713488308052329191184037049149835666338092103299929844942149293168976995185945499757841922434954923845391795860845913832297913350418219417903049728980592224842240956423484761956733886249862951936047187881333300656199531446699786344026911281743766212037070254204954130897892002595686141893243624234942316055947227263747557979904674159884972529413243341584346207299394520609594580084896265347243569556371804925887815808446778494253208971092980842458652386328193439262284650873328054594958879520163066404753567676435018272170387433749471538272159718014965786727749358852291670180810443129759380966110862054424167487319874123673782162267302750234808161337930754258137358333669056013470671126378472218374463853606673578761305601576515008523183910914088207769934777082994221716751200164255849082389492092546756331097862773204333886574786884339705551406814473761786099279036904970209074495199761077920306762519249437395502804195125746249307833706032817328820037831561305377277131112834985118625456344700901671323986304738209944852421549387021011854474882621551845613511550605979720079668682463389731237754413449995928282993089700591019790560230657295176334349013799541900822419089302536955275615539751119396795806930888205824298377430827279849966766824511646307143729119785692771318694217901480563114186533267837690087798958987797461114350277893521045034009389254333015713760353782567266337790169136598983651478916500373884195223039255799933319180326730378760017927507099753334089875753999906796787910994612777080717047820190090006014260489390089223262774872329715183390091429555561225139924730346863905315302226112540483927860328183178676819797867533103268878836705548325169191204386064980882351279143842100309897265811302233054283545717662459702226991449617635240370035223694078627094130373187779524049893143276295468947767753960181233867534439860487519230317463142300540954607239548505761755263830722398548968167406660497328888712883138776923705922216168274017834151308793051166227139712352747610617668752605231964559901103465503036677343049074851693277885832632361188510044736028668565155129464351346143781414754252374754457103143694470792240905779258921144219355319286339110974919404254564616121723640510591168887624786941084105233366386915320668349045245044988720376209527031983445842846177688801432175640487621216865413576845275525406622870390631348012321850002443504092266227310489481115498918015061999831575638390040573212248231819697089891026447018107679520755324528029851474547867447736535467116005007413813213846840006549929545164916580770566101522990184530569132307858805621068459428256622413159157831455020475305726925863079189589223962178119084065137291474566412896346422916976553051876541879565537241305008282012402636264910676074493655006168651383267532023570243923960215468145915561900002649360182856009360661993330142187031006932574261525731943282976547941767507256134592702950235504408209739797333439500009373259706289779712609628542875589499351338102342357217998377661595789930109752457777836551793120336234378399094073360941123291952666365938633038709518148070520961748259059235785530143538799123960914050569012711313015149256247277903212764514150724515001418180428638504881498348201492959359479307977266853282173562521031530726366530447447316976683459038450248683895137358541739826794201624784426462875409963603212537087284272368338799854518677105839359385830416995588406650733818373856703214481953985382237168822560151843597384687291103610150465975724822611618828728611929687480029346487507354480686416762518215364607091978705588786813924075350774782570724600730868510993284189676280462664531412268293007400219936693278808540760695985589040463062925015460055070557599345022226879146500112436907860136815158506599678833568907103629421613075263294629876057525866299802295247651224000768393357976343126950712600785603575002872121747790929384958754710944199226927156746605553131206606576787795002952981791615553207865817499122499642502279574374438316622507304054107815176643690079520499185765623845365722050403868030401201423272793104296584759537566294450467060205777667643331758835049964525822144589577173303333465240223607010574877036757902912968726335111500663782343802946656263490275666779491905788173206560155392373211574729692653597584861266053875602672826178096914859823660897610793130656262267294225448962916056746530306068135933889170205539603282117721588982221175238762738997753712226189187154773996784067397615241484860320069288364685231832441574959827342721317987628252779914436092050555052222862087554534943241492570188740904683329130357779592000369119307513638400705288487384687988685042497531703251104419896057362365565407578169071317761069375941276352073624804340659529650654136021771797032724791795632651377471158472165712518595887666873836477380944583096561193713708907804820065306708274914021030023312158215400105711082914004446527925503097439932602065638116250803652255999417181412241053991623269325615666597084665718565943176028845348555655875847974513937646793603543431235194122776586849750088007503338754035100137722023149792134565183920891406605833630773962037146636278434227772110031328531032963529553152140594590992388813568762460129877631460428133054824714219861699220226298500990424374930882173007294046480809665854705023287792750625958831559995390955279782019866225696401378474311226190696194359008157482585994129292718401782417101658244472828882564529375993678369088573332740378413654001018242514679298786753747264965270749824968428265539842423635408720342787409627357786285624981965441916474419420481101796268256181899119357818304042144875546061041855474169003688550212598569559428883666863273512544480426317148400351047226093819417488701896242753713832234602062334524534515865544263401417412186845294867206339839005128622422257429908748609877954287672007417596276638531036762245910024711523299952164696696252581883542754322779009133433534093148602650677657337246831861273492833740563787215702083975468566931154028179650646133585569768984756272547431145417948766895277237348630137549632132206042862455542203473593372845981564267722728522020958914417446193649442916317064481233587482876812637848848358970963032549726174590666190622390129760155965472456112526267861688389340907861087163646280798809980155910397454318148766203184934269650503520180097694778656711153100023041932396656731133771862407255403046234816193857119510151452236174854571754971066209163583431938707657572885399620731281165883879586878073264279363716911210729553343010273912707550883396357301893664087914834036640063321014958232156451958794504493172445566093151606328976780360759667562506123193557887344658026137646096161512744835133779969366064936560638564648928041288366937061962139387229822615051171470519610031168421529222384719113643743919968702378568259096282167488228806322855781061326095902611071386364702073430701623604261685169618425087606104977599111718525054104143312614630749206688660888677719919456930939540805808697242654275551850307749679482836201204472919450571434847434706809892512189760949799822677962140613108088061231670615651275005210332168756102506723147681996714560993856703356911419604492443565812505750411849276613242403027624980418082268643115265928180016381285781500295290491099198244716564932850472786435345839911992760549031787003428607408220997877250862508184850207837509459527441001764173597754844712939183522245535231763615717927445206024664027019532044399551478296730372177449907572316453787316920834049387450967850951216138658595707629559688034367744816121560496114337834725462520635718748233209518036628832662512158067412689972153684587095672810617388815104837579511487458794198746997471498904121289839990444709443129611441079392383718725353959434582602434908362913480416928159624484704678476586215093763958332385111183848283889001369765290751018838416123069108597915506498014858958726939796170247762919325390798971035312951101208128135903188514088147453402002808878260109028692281004030288549887406249546209891341416219089715138193066824157069669901554483769176124725145192123124593392842560169504000441113518323393190974777423531933473616084629875746558548747670702790612157699826649357687393436466036832295517150485808158630920921161973573305838775244738650121957346698149248255354069846106599314042007878177064708048248599815626889014286898000143156001661278491800244842081455960121940760518779742844030761406211270621394161365819951675479247234061812548547761165691523949849442942966989939028003361295764777242754192040238233230164725660365001405618228835074942433850422624151264373968598137449637115675464387129377919465744719215307953255535698617792423502268967232348706485725466947507431649709544524941510112553334404979911397346386034790871470046400616179463806484359815479016425798413589575808142320805547513191578918820002784334536836060571705461292454720368815635731193826607130520387829585928376418758897583633746325459953829964494224756157271801591495892168270464988445278868919424272756295521529401280706567736343369677673598317152667251686450178160954705983298702286310042939371916556153369826568375109993168636600348386115022677705288310745433207509483250033481779207335343337411393099525440393296963142250842087869117318925358649550304749441599509922650494847867414377225057468239258070757200674585145811339151631713213609984271220373616632348121910994468918813108121145895454599029654343168022747082861389904591653947703157841913411935810310236319480136450175632812777309924549195082242889780207277130715537598536337255039076960156697517817997741736174861192820540510378397376137469619644020389450737918868156667786741468644884673016326539485092294227361062513642088018815810444877182933104453757069666798715063768047219172698824424757893618019265354671328667885105997891529730393163528989422800306922606312864723963295190639121008963425888334583279185359885149318217410208946489324584390432510878450877977992176872067928302174328350806004639591561461582579765836818806540603798030035267493290781468878981089039336856170428585467783814121092740898682014832433650828143189365208619530979861652298546334942016711171280143232475962427578165086111929684767977339264282806703785595833974839544422551109744302510331972821379686098207019983788467491720080841944097352983963335394869744016572386198441189925816877646140834849064690533410287568199467083197317334087474297376630303511669829948166373158327089611276393907254889002533805568405685645828747071140005095518083727691760107994888702214172030981574067203154027521025001885279855187023698471496610073336424842167232784712854685476140945594169257849284258232874814144087205424553569122749580699888696248211135500115972927928116960382659238365059602662858140319589428189782490855446618027794457436457897118123004164564633242679134559893431638472504020318994107217020956325959706116091079342654850562636009559880080187306441411341632405426325040436756613050901973932742081833102784673061431167873541458781878677385498713924344688432209723707909398177532820173248477262982439357354953136311850244432814229685413171405983259800089631360899732230934618228732998608327569801282393695774431053134542685581078755980997235770543415515967189722063128390543731815139352942392854737473142553602096042847765449450873522298673277087887968624628831669282205824124317683413895498496462658631172727087038613608450237049722672973963980953549797005019446445349565482174735925966414494911889705412078513695873368073277322396805890758216428468194327216263317181025076889238881573812678607975281980919721607433835901919559415820684317313856186171592342082976855335394735541712918499238717108508401541047697925876202418030776614295746498026431505285666766892117459444951030005392581906957985243269236094220566147254614556066110464037983201454202682248022622075427428995900980460008599825694261833163796663625211724497706164339315204611458052421796421006836626526913628155839179996076171459257217319325195918488995916123842565114157933769705269663027804340431038451234426065709742811903334286104314291287999584831709073406961953091950119776223623266214565406793532140678345536417123298646580332283245246816040763067200328498475617000633935720553363390930051237836990242391944764276039336781811743979366620573620691308445590665110747058714466704499367049265159373220300538311124226838218499951548074876288149580595196004125481806405845867350684382393828595446125080437979776842653848137425694448217074302248949476395478927678590509803797128781276336921168503283004393858676334159893444333138576563561912670673143843902705327538341911598860962340633614847367809644923265974483939155180180088779786603387848274256919611079501778822730187489619193008937852921977630219267432224028094249140830981238653054981060383972302219178148573504776516691222212350942827046262998856531197652961154635505756829684314241789914776287621050865053543382924080799565442130589293953258005745903353729775234972030341903875518440073104191180950395451340767844964031411147978312379447161756457404366219189831659927406072947170551302368328092117108190502455339253725871727763318411764990775267899727164421913960763980447977346402702230012118478479417415590844900837255606492037661105223215690323779005998428775932723427012403377181492947106862309682945735886647485975986564178730349162929159902765822675284005881319334172237203440921153987378188229800975786580209634471363689071126648296588423722483311270443841603518922114723320098437368776997032234826853536825712142287739351129673377751714834676177621864069386911221348012540099361200743868632497073676535427045919300301579808853846501695842840062086298267696648140445532944814236060744531277512486096399590608061009384297701274043451690898078790820310219864523745436227173595543599565963765335425335415991537721062468592979955770358986477388372516064583793892563830198956738475348518830021592631658489779656289296987745143872919125715173791784857916711873673186712110175541840562314811312164126010538405415846645965981999654989602419438770149030602086589726300774023374000800363098515851349667944821286312155127599144345704883743029536161179509524988534906349459023367137843067529119733925416547387456778448409185113684974081538925735824129247404139733742823662328070552252897727087347049839241619646509978990177062539403861949432288137803794817326004265644796422507469581291248142110807778522856656146490357393608644116171845316571767614822568178557615425934997158054635016026455129059228919152753214560463891683963347413294634920181699127848775145084292368626284725687836470153524985749413481033847428986374501727593609271937386592025971006554721557768044284301740409203680201976808503624606216555074389375949577967055473543262020697792138910185133839821205388972585455245455855890089337811895400699412244111076327664576237676428223470173428437718611557139077439244072791387337355662441098838386580988730301413686389530727249073392626239799787355854466143539403506074766400889264849176303351874028626979779889000014575468732625901835443083821939772653831156527202926619159181758468559911519197887908725776765377078672605341819534655041103974557603393764733216332007554932628307473856901264876703167293207416740937989885222389781305058080535265794110843571628575920899496238649499865026214734248467050685709742850584069707946096031762595724618066601785705215611347652487380712550055496210406817675152559033607217317690040717671278173501976841348770967224690622480965617736490124715439640595416235526588876626428093211157737938937010070446393147955509012172164787649352577698886843622967119315868972905690434139350106291887227924368471280136719502819705551457606287913823649288434417026424196914848974712422096556997108583948441265399318428444577916402679631778274692977562187824286924836887568046779193002606166450644075603077745292991650052657467272962693686824640504492075349670613411777472793846399795453732189990491149133010196388810641416840069391964905189736167290442540303374740030467856110407048186950362625090451372626808576956953688382361684023668542279120403351713238839457017060496767052082965475574460356664358691042361643831089975807084371470095775312364182732678511962585201403231593933318995079974392758611859898372652568945676594688552074845669404743904122020601917160120897847433056875368775520578487757451256881822093210037113061431153813967173971014399291556789817149269222945904223391213668213957807173923600281114034513049857820347078689662300066325527476691697512324737017349958387858389659136856186898546893281799587982852392634503671183566390811480032175051314105178937991491290906231276036554627547336779044472595992928597330705722096588118768580644829113897749954111023230755338496790219118173363230517229403933139562225332940985791755617962088939781432196724860569598426842223324737578122078857413071088117853580426789861748275803567253620969406863573637106553577178301903524340911648146116988883480355550299915686226634936694842871642847835973776171970268970828991469521547536239657539004533055960382822910541289213364889262385772226517306041354865284233861040283505330414262731298969931273445192493741110490444033157929294878935818004497948004616163955273028440722876864433945662073390803274528832785770773108755410389952455624098209589066480956015699211372960984520311288114739053231447101139210991980288292801374372974520761056998767919817962577825317230803800454681694002701489873552059550062435771644077248832809379499249615670980657264121230538557939942424122161855128367236588739133430762634130333867005943057013734826136927043073681669713669534387095905009628014519922224330213356391455094077350101213888491685708463896270081228921025096264136381988371176244172052180290124681683594735052915407838876355915870258832936935884929640977168724264298333694158244033508271001998369032688676939128243463519945957978321232692456507357175783629779888443636585207586700789506423672107157692706285053766305086373948671485017321441486170230977833617761417922125779828615717315068364911646290653603658674239128013723550113766714402665585301267893811961297925074963605979948283157859781587405487876669146548912088054649571659483852543737656589183632777851295732986687750802775463004531085863644832268163712817115254483600903978433810153395672462279205375018844842002433045012235998634723063630114384892799639905480451251668749140024370567815665120618153248261412815901403474243136829890889373989210881441196838193448987324519199603677430736907375100763355187978234564726719525895760918264698581954646389329293150349537721825121424081964117296234327239537515818762338789693432572215240687710185840625270449982275947777016329999931682628103650494492893663087406288321098005772401985935852085065153067667239769227251015274762229617414361630962376285902597664098072998253110881164594655519963838145137328151326781358418415107518597744835762611541460363820440341431460294807987105169669388889368917008961955240370159474484409580147253707387641700979957341247783010471345976760352616320756787298331720689418954665542725317290778196547454419660139666338428514569097008930682096281100487903028772151781793757402476990761174104671818037619348926329670541671892533944189937504088931760685773974599562466891141520291385977350642540063530541941141852617591242642649959145994187552182875250661888633162631219875377739886778193200194354602316846993146014829764574154059449866359222124794153217379924570119717193423121200535338535035548762836660382592129951865035380445007850746074432455014449831898614620595708713584970159708594237759960065183840422704410534311250552344858702220190076329514159694303962898840134374288903103805765142566925060625872993051403612079611143469729602664672360254957736165878615853448870562979218779548894231538686588734343099806815556016437951910169109489283748825896294380012957580981937165711086779757561938406787976565962930447888762896977774534498746570541172269429381374101219697354707447387068134638777834249104526222383733652264601167856062170273390816360090600887198725860991776015430331374071994086833467304307771521523575917265599334005689506345787028130140776823647831293739683681627543372175658753780051753147565497511501945559110640813742346291577369296895351800721008311892660561965704311409192689662029752972662813032258589477865065572971440488185951554121351087061678128430446781391024700668524772950055347342902924426662889689391974306754135677628892217570810223073261783764961882124013224075086127096710614855838572158780285048759850144294115359267707246421948879303910563746038563437983029483764538399068591008756966749103566486358565601544261389371623657809979882670169168990874433791060101540935759213783014378494140678077465451047140455232826388816554041724317329379299286474613657221459711386877769171648717033358126002245313498384406548832209154831850712006018776565180116659348364080422614774467618788039705176809717048437997977709328432086986149483940619365973123153176100771731778637423438133415369982731026369762003142671098611578990552086781225215244535391267762317527914615668802401392694688814111592101593189662925512292270355362593190043766628348825838256312916934087055930969039543844173229377670237344333078265668827121144777861787874905388458722260032816836946215100185474058680149787633205165150346023576950082595636686686184574116794119607286045141732424360527676879364960213209057972383133385534962149750901358812404889171986833939046121147039402020172557000816653774253305816809218789477197620144229968433528579607991052362348169910351719099050569051370877371978139559717325672562473022338825728769179799088922137748371776861576914267435987684990885398252626836362600154671263575618951080664259108020518114251284160958880242403641948776555387535724022250113515212204678961889722166690170091355154342151348822190753173499858678740269287400827936367087327001414359765345703899497684824861841618446968749903408920562592416171829325556469498257794579474092732546321419651156453114587374402585658021342727311418685616636102654995961564220688034279384209399746657333023592527260608581988243414643266059714547300483748609804119471980813701818696783688336530222529121398771240775900224102963776629959519925735857300400107908347969940330726148292602404821093384883310693205410945139432546238058902483689894428259105463538377406707724523770816039813009274759076657536033634918873549017970075357384940996208949459417005345370664328357043881517997619092237144723969937195019761470033557412625226115080637216027034785471432620464483204868773486514071245089941488449390805533719125664094132098704504457086443132308270682831765815848952419279562495052067229203248561909744811114379368184331287476352390588634441295678465825850424513836645949574494654597337749206047951943229727421034455044971146744152420497317218766375430376884676207469450707454693008630742367481537419977751253563885674043036775458770926701376433801678535355074604606399509906086275108751151990544845938488023928283530806619419730707086632533459205888465380800030253975667061258083531352743211982145173586077087319339077961059661438898422331590212287112747923940510261571764575869629950905223154200342808027804053669279160757415118859132905255054300238669867281016665230295719751983270242680264930090423628513376565327412241460287304297180881773759555915690605860936853008152129758485252055015927379406668396631188195265845448492980561317065196232710619821836930647667367320248108881728267970164957590180406590011871644107991838036362991802592834847792965974193864940225646755314799567432889084488011272744323988650848015195507446674457326643909934357605528091530517902375191755898576408520360309157475857399040295826078684872115956703833887213989590251922610973798221555516284633881646261478891092763969067836279557646777321007448593454600801132247364329197219189297991316435732844703241827717378617125871396409247299934212316088039616113768577515909997565443512803405697391049990311415219194523323137546678521687679178286962381010479205488974389393451609295782816491947888708162776773827375045762721061011957026419768973893635501203756117809590484864891182223076974497462527115385736822190087391246721125016086804509998339667391165614866255682952586182809670244056493092978260936756773094353377091011518609044073550273828543994842815538533490055765727429715865342598303677310909744142966861758660306041000881464403658496418460147211696460053157466894533507531363518716148517028572076282492220231458701479399985895641618841174500258793815573000226923674170655576746667633420784047802019269560409350070403676334118841646577816766098650872481522004198200226739661130358891496414362836104093522456269892736185003013941080460542434725459711219234458888406169033682772064432277600125406274770890724098013693810622735220136939564545744682584258152401041816630493632869546160661487649209125061843044826872242029775584443149448965403062434783676214567320853094991859989263023449481122670387548999593269595378294619005148625402965711301200897610544341197489301708918745292559906115125058666171005047408445029796389494500998627203050110902876979799314443873814038413356209731960216932901537638584679104752602031744448927520178637648924267768413832848165204176870190492028990457118981803949251372081615270507819491652138637792427631012844951758018990754870931814461243758752112674090400172089505663637926082017361728578638432518457232210275018725833947485446501516969742856751238941565217272865630853391753573705307117213882951170690162513287382168467913476580086510776039306151236547859506446510652286992234768369754555240871942571508494202610460579817771740610260553013470213040947707431705039845961638373344669147484841700019189373438366148757951772346061267840264637733027923900610625644024897014818369844232350498607893385900951545642027632744190543710807540441368912002189396438648494962736839255478336531334602258811633593951672089263537309075305733337403711290777668881832219645205397581549404629505768542168741641865518122181699198132932515936050595973545207244381098073554331066148093238028937927736655348302757235030992325546890501442681050308403143546446102720742448416422386193296900845104565259193806546794662073025539296478060158949333441082780419344894330449928014794504041284974667336074269066329012733574936434090929755346223806503073213762322919450309679483084632299334510440829753979716574277559014245548073770607848925002814294945017182270403214043039460038811398319615386635899446127140753492721055800245777542964849509592273915344946529722469514505801218325037992632571718132877633016055515817975170854868716313878906403847744512448083716288924856977970827931318113600591542170715433136897385635568105288501398651954243623624577181668459722049670552488070043301192886723046577109926641459443259181288132523119714836186486485673444855181109417260194889828085216273022331228828533246569183994393105194852742510593355677115441430700522827904597782371015964833092373382233348888020865756369484709493642695217316415345845981808233511702011751600061306097666655771754122686316699036073071207914052238361221352524360016265557061157625505024658523424204885976062919044730119049569663065792994789097790933869567830615891671393130736533090264291074007817985509847218646881848473972188975351133429970770117392849441615970185567292389032846898200779924940585077778902847496551252948965329529565622263758239389519500681796105132484973880566990810137329703738788959289476958932938742241788789703307622457880439960722916950365105796720622245356614811607077115554307926922669671028633495332628402183350820390243349040996789199214175271619673972286442144378348614581487176109494985090266942247057528964601949168713265734455881462087608531032607736005736269494501850671385910918450196783099646921667146165776676829827557632372808685822720415932802893563605154923537422807381248577365728130787647456608939151667780505381671890812740165835949726819026911359393881828220041149066583596701656653616543347260171182454879733534647051177998472436320347047550593903590589654126996771077725577087245041573309212712920679469884261573607475124304005352148643579007013673528983538258177180657592095736376133115011010077178568952053405734660181122266767438021467050770645424022159789264550450458252904251124527916784836186064929018970115933100435882756707996430888404071487610985942964452852100428458729946662267036469964971444798054791520361247394407118341844888001320799225842005572356989310169652013696997879040648632289561261842332239024126726105250080731891584412669903805684751905936846548052979021371213820753483045040334263279894106327534497568482154809209074912134347065110549034593841230878706559762776714876413794474182166567385046727099038029872012366880966198417289538849345579499572227046721752470822326390953386693437081809050811348917421653768229984100789746516463813197948061813377585504304482370575829558766735936373676942730773872935813511218729267776117315868625211827676141932083318025679714322388491858518451676657365285783996464442212864229004759759516346098241776980946934200280694692876283720120810384522638145737542148190770888114928805883531336721832769430604213715571839781471993131096643354160915492025031601030972637338908467961686521689285564125218992856117584275744103720561579926487069711709170012589211508052003915189650313881120610936468363862170632710353192504824971419304208003818166087718888193363789307301975041146771215229945138205910420288810291720177857473994148730101249754882209148821894041637606348251958292020573090643831185423507914844840637990974864333218861647832019803480813890833268994468370779780058131277060038098919616383618656217692117155400786194485321637327188263271070814480510987101332178084207337985741357322219364008646375471316200191802505213570433489996879287369056354469243367698177942275699705772312606944120874651893802167095268448588948076567146551575054823146057794151196582101277418306625033487954751734978985058097917564261403794757914017915009402816987807423149148246763943080207652586854324746524808442129887680008857730928371120108713409804782414391876074996751457054498452460590615881089700915170435222502625536751337164999874175436270987595107794910994462968408253828429884790885756116967987967940523892740887415955322291082711124729667960454351480694395055305499729638646916163961922048007934846677119641033193241679591670905302364642653842174363103648942924312114628622785493924616668689155351667947963870101033066188946974249610787600931925402029872969603233591841614739876653069912726582409234284431140879752995792268603873937577406080278174350614244778202444573948649172828705441642536673647470798271527124457255961641970714023313428225328797785094983803782921390957975772813000497714156796273548448745920746870203188178017228256767526302723171981809012840679716064965441998672078693475481273025368466073907774314101787214259201107722173238759941982865430314499345702360103812641482681141681867668243404129998626937181739161434053015343540791783289001548236420753390366477690808353471156964003594189055269811871949001143157434100535170236151669073991099270047539786195639256040666553019823149109947184752559056691983254015461138451602203578714366028373480019510890645899466957708429601130860124915866472351581838126727326075727173823680834257534172951924668155937528704326630989512811410692110966605070674994208987721231740660555970845246005907708145680699147901307382386587558392845707684637059491533669573277674570298338831569133997618478496437793014171848397287664282329918660977336934075697024438716659684729944927533478442817342670598628303130150358455353687987489936763292185762714747633366359633984739003575899951014642322362612278528980032136105863880319010693869927657355504048231403947747939128851437731022722250459782435001337975706567653221401787506445507732444671896842152617276072846649887748801123129212962296289106000164900928950395448882922564666827188270187713772359142753036726649107279178933424027842934431927198932468581898926157380390825820999749738565123075031103348807211354576836090142322208500846646291918730040643875859152426235771663968633222964644423646581065342121341980477665620003627745839117407828412292118335773375319093599046042071939302532173898151229363419148181127191088935322206884359734278614913318606580304044786721718365516422514724290627273952158774503591393719165921549742436593526580259687622291816993952516353277303942278251349308655531395743614720205680930376822135010853908315170183105601746601857580012639103375810186571233663445561997681809016243113396015651583097502466129521333078892940095625469918856219057314281574185158943969762041578997895960281122020669859871411118489473602615751048157384430684159925523121826372768765063145651372538310001657457086744256959250801120812720664128902239502465019701216404132803269688584007997204721829718759075089252962617755387021028233705249470141204279273959024305770619708842862033080751372329979006238680677992969492737394159932184462206543863535963799620330259742204688621713227102865985203784536911306066208069710323988058931369030931345606553937969367861286859708567640672438423595246814560751063573284006301318541918590548380968198771092824956093396122506837012841593635058353850173916977200275861486611152611465127072804652442660012707770427233648017393160369117626735478280298660719938233232568503756009508043199402276944701122133354824453780960617499037313081175257166528949089221251970869289107307268995433621011589551391529234653071329345181787384027069023042792085828388628692688858394027470728257420631203779439784989608341804557476668787684211872598658424501451346215585920502340371828135994488843507531446096840971267949130705412797797176472263894422960079378303612011228564607298545011213995276578905331906344203300098249672217074896465063433935121087236731576136336042336762887849447668833531293635944359702854653925017543271545001647653347026937591941486304482685596277774109045295626714177394403782949154036933024294226865746462570056439320082265662586969566426241694797388482722431077423412161884838219428122093226004058997744965288540130059044152181117072189017013263863734993548387622135865995153200599139952393022965614614726912495419531464142851527103483481577921690435818622228596711125275720472000777528217643398457361667864019165482869599880530841517824772000834267563324467250863538754309314488049390004987295631903287563039131729607630820576032929944818370671918224205589533634190579111198463490035835136505050394037141947501139833049712605685204699494762628191052303712296951366929208478674570565514950293083958888982367265249313648379709724727018511200573200611464361174084607359305577027418836093108677738377904017519624934092036365302622016592866896852042611908736752353616184404279811405620172872918532290136407983288680830438012254433626802701983393435395171352418485236737761135455187612221104716746372817721001470350296198879400202375929626631904311291295418757521174608945905414345149995407261993049366932707577767020462190634507432054319060153305601630877925318696476398955586855924948945395685930250265055674738595326532336857143378942451496558763596655402913997272222534243525372472221608546365156931086486410269273969834781828130504103587020241461562643490841015734503493619147777845597195472387083834030503101299886328432363166278075050240214042612521518460005661744632531367339848303427468351976795697752233857874866312027671335152519165512542116613646045795583577140832555944780047342801855781894377572035645617597466636278760533768389308496680611363267935937738426987800355303982076732605026591781329348709812235983123783064123016522695668348631076891698944148054538511278194605166818370272450240320870044814862123481364448689374000754432359331968318111160810804893861987903722887303527639106541034541971076238655655194236856841195574844567557926540579659862994866610280590647707852033957346063333017658908988636432013851833182118732733971881718618109993279536837542986234097271013100391063259020848113880690253135916662142069608009506235759022244462602217483900051219873519978473765127395173799114786707186137362302312451805238908939493270506801573838423782328929828778272438558430389396905879395731175959941267899161543496748856921364071779111702626971619391591962907443875883729681222904268026389053261928528631519803063401939832494218446156910476987327891178781112565340617166114023545206213511479936802474324668832018368067184947021502547101269341063016311289936976481519264650262520000986079870993556394709236658788577295056520892714225660318072607562070317643215831099332648729177987114236273721586289836667928132608775770408981909693232698312040098511671150016416349616008984260429100654930398781056522837792302496229856004616176638085982646347743630410207972477405028758345256706345552773939978747822996469217121238377188897514152246571912650893449235095836383829303928538547373757415601555408716709622965935322862076382514973151152540578995785526795875503372615544382673475739720446515922217227701176813106855138138198545051932503170000642544233890060624750819639948833231229431759680029984606321057877341211406242039142918239804156081404840842241934877267172018012589377201437749313414771749372417868336876443607083895730459303045000870115537148086809245492113774664675385467039088572166587147944084004842650798166612606577380320698972255671210911374915282710632338479508558353823004197492877838095033012154920906387944944588355400355268336479145871726668159507214127322614541357424286596677864711084110258283941732882020008910025246067804733623901522767695907676304843652420917697994677998463301986380349642780568936880974138124893773552683118199401159136967776294909362924256569147248296056551819350622983404678238124394105908919077075897047987495443754450282621311301265130336938855521958244732274692704335079204792792114672460427086546123538968184070587937009264767190172863896244434520234853724280125015820944572885099033142595540335262004838323831495578656937982259822805104593493315548153988230227257592550147181084349748933250992327498698447268533463877073221740234806668077020805768083402885541482748310475426300690683162745560958429198962286225227481655938922464753999192166710792043237371980537848914765743912291138416404264234225561160302375534743399536381831230635144660744827795486102369033685645162044086496889158186984373942083652487872227256458857937035517484463352353757412482915669145374321421350017744396444988596797512512699561606177453842553627145430596374518818553636143087273570247745641029910976485018328312127208515743432603934827219029411361785318363686820709301022341483450499937532791410762083256519146652486621797312144127552010168798374383786571921952241362598099985688998575423746857417592654121002402982967336262780553158667797462012672442478454688021757365742387496780030707534715065837735582350613239189004942568239049681761367831435098556842704138617211013406050329892243907147560431891615677397453865845275184502511497469722056546084189454135090347861786022243692070929261688256786352347407832486432802798021301195321551278479919407549560614351259466396516505843268217082472815882474653024373984162122398796151689222190809150522737743472001156504273032580126374878423749550463785699099373063563354454528433820390617137092713616541579457316332031342160493242615178125405007701733828378469642624900605061373361607317088625998949507274272818422385913295006709882936910969842041421196894369877517071495645714213111433100163632096472028072846459483562178043430804983245153787174168959202576674070865773251461780671245147254710719467649467189610714844902136417128778748457294621348359489203443276603828095639134772370670700249486084245124238718770394382686630140412037879241868430739309344751567267730496632580703966739410813539329108736194081259347671431079150851920070271375232884856016017797939798044734079768905641612048746370377828206414811305516922494523413140132307526534414868834157192263857661113818031916124919923003525327964037999759684024786094608176491825300547262903224408345219129557107344250259185569155295915155980287991257717521070129800289821035873686544017815450542184663950862726118018712029144706483612698765863636570056035573109475070264619212644700689677698129571857681532029063059703958879781703613681778978626068807065918916801092624157733227322257869615745864908285013877105308945000359340995464227548505694364270323132377550038833852917251151889817918615399127379618815664931328739383353212276889385730408922695150924938563447674357764030166605336205150531840108214811763426185813360689385360053670489440678111613421050179886684411923110036914772745551393776585435706539110382527040019006490727489830568695049239466852531624022567317056469074220236206955216056275275938944724896078764239853007129877035901784102215908288612844945438180735776049786681376133360344915547556315281840293123517041213018410851323470247598741529266619182488489916439872034726282817563808872637940584344461889986756306575167205080470576218104541850107886031469422354695010126208483195524879290262405116789343310876091145915902543391362616556192123067396294012008356766641903211463415843295124150530565102059572897997986140447013851152724383325866688925938876422142901656775155696728602645088489124262242358025310255785647527634743647025732253980534905054850130848443142809760069204157429465449863491609605982730760382145141500056817562259971131264000909306667010299903523653171871617982268537911125692298854871796013203283152259919341161961950747310964686611786471963218593553746019170603473122856047332384650132943050641427980525930428037498383452470594624165510623525636315419872822128077074074694911743178385511229230836685108421260961431197681784626039499999829693165193025229855946564614824497671763173442386380025850175577756317623712754357718736189241448995454048940994002834094399103077620028678992659474443162036404738565433845435907134637771737712553345630141173335352583335542906436555064795424249487583283646293984404552878892250032162712231597008401622371616903235827709923522721275736528603714627625751255703604515376990470530300242420551155354550886442909897454914249535672347880156853604487387666823619110964017171512129625662463864098002781966716631114372851501369676330793347474264797722436135187084560756169478209119168960172497583647139268538179697276589866006680892406303397002325612430070996272130859636547983246510625786110792890773380212517516253592463616266029014546318685831345093928133408632194693081574139706786162613445252531513632554065377599288005315402302428837258148667119788843915671036587451307225388685548084231287188946290397286393035622147814614883039755696912628657298145761875256164608641629182317541132735792863851617227548164714962445553147247400542274031772110771220867682552662796090779646222864506594534906821722699187953826869166016928535658827355097170430098340923774189035611247809857085341411611621613464007109259351619764833036116480188747477529650678347101203468165834242513526023556808379253705440566007916807596602332869708341175733952909384978867688883430344666924164874869161834226465508875876817197707756062841776633045012263759139571884541626322119020828162415273904735590644242366608773069691080012437401264010192851848431353831717972847364572537019253049717665220382575397837241062103160934701558411203287876383017490945007689354570350087356665258101900105909935802437025440036349371619828724102924202414398048189477641115317379411518525836212612807254179291687457859902299708061291787375926014928806840342326979197813376617276939877329708525515539112864228482779726957687461808198913531415266065818754894304977587799898377788778090927847458125527437189512706505452627862211924508060149360531251137772488669289338183783669654077706071769118066712439347033913306235332606077802878095085304386443537969198057773101052215687682244882649908786311287097025322123767198128623071985014687146371990428859897112145018083374594857947038953744857991312322625498789307761153422931900931637013820086504150826728079181214399961057086816711423745792288514428865632323997922075727051052668832528446428643764442449062357036923804694026546564114155528837529429519252755530251709993965111474466081674820388275117365832323718885584032056222891420424708504163577071971220074500853642301091208704886823782280046310141316954874935284508055356797670863797206895642581519101828082151596143205421056075242942289578987165689901351493054263364848392834652942607429531545946998409347403937032373912968797246911859976252440163658602505092074866233751854066403052021913985405907578238128010261849438387865516145090426042503010010893407111959433063126202990654393365638517247489790532441978160501351196943823237190376419195922132176137169608298697541988215942390441232196208656618271125831842558615984085739405828192275388170238825549556155450943664634581052168884470924870418605478509879892486675887961255850840262112210731565447294880177215958642002735276378811071380271577410061777980631661583214025721068516474026132823519818561295063725863964605162649444565512778683531218906029051815387927797371028548858456760901368654590973869813340044634150016799928391371463066727312548750053761502498019870784764000753424699830091729833974015180038920190449599456810027208697208031223321707127728504433014290616198742132218850907007587436252630187768349410808456490664085559503360216501983029579141613317209654111184856930566537307847809339401782832923289775046229014993424012943149636023874271773736357797267486425067580930588127868458814956228548180886711489189013597216908251054832870486109532187051874821883799216536788364835698196925134598467562118143291071431719671349575584088578299539290287917162732936164224775278996924900642851005620203385274711383547636234881769178821095034197597770327226240941712878289050097892688440333687402425619759179421221890453767820725928957138413403462556768040475155844068440244742023616051274314166206791033740194767379956101030428633023615226697987569728720637001218875191063078741535183569322042807700637022494684048212562373248741529236328015221394849347962824668557941374359546717120359691677042726391835694452308920784683627803230040032090320265346556173973116165696363112490383550569568699666577883617323688467379845336349081958087157314658484463898625994339993878379866549105230039725066202958538895405596819308856385469383496284221894368828727140659415861835305002312259319558641422527989928872324855649935139550448545532719956747146861515815790761877064356217234251750896391357655152785494828154135301584258484758930523135294238603999026135608734249947127357670056291566525194513408330861265101805372409219774268015042022582965753327772729215172645425586165199736642029679660416893518403409586627506047390262473238351769055740815310592137755681985307403440394302511233554271792226733704773740842720449202879387753345889197404504551148812241816448345826200216908878924869075171551271908227585741923239468267939728247965282332950643611321048415296759299437821053569387148622477767662576275943962817864985297840376043515282555245461688986438077743206223482372418440096047120832914505014426798728638213902573373348492163308024984771898302026378109792615533998187059475582355461333906843963835431155969046829196614137453549822304547212565088638785672616874016652420220153231129099981799789692521647867087204822137221166601031090184521384073382822357222774437377368937386422829712437519689834639762550784647297429469928588955550531086829865445936668042536607654342648454358981386281897787703424179833497985586514756126695669761734730250157308724356335809225391054664863531380683090655050688274028721672767313321039056789909609875809814390250156129093278177423256211842143032537175234092020049113154690587612160814261367081777470777227148845999155567433930567857939280545188300026281095364828176807444291683346178229802892261890439752782317005169340774910743756840040278534783314705156294831199907213515037423274860362023232954923317740005101859836536191871036733461381298467648307768312744566082756813074741834362278846115932991237777460530246954227761778907283326872528126491611120573598908711218192389926860328696801407488899157074362318383231088462102760139718494392843892669543518126545825985008580488030661315649948814841743721306641722333273619231147756110992307167801202104161168124654481937642402796498264756419846778100492892019035027859043967611493879998531976102865553171513168614922740733853799527827276305357322352420103183250477188104329509636636104854522243349143509709373354396222121699045302614945832577536060864646450938719969606087923028070499487030529489618186491224437670298830593595768070869728396345556664989174565551163034789195962585934180863170531097380676695570420188750003358898973866089903798784991954272475187602473860194303207523387230330042718512498554914927936855353676764681587453515559626809869257452118702671839217308293140795282485899310908624564057424019584481284787693171722355852956392524541953941954232265524961497708968651540520040290033921007843263625128771188958669475826591759003274319159738578875605088213555660242697975252523957596887528398363624029079086664494584911337806392066590602595681040744683596272860164356518837405620428417631476936657911230926360059558012018330440558586961585764837262123264990268613547743579547672548465572017498526746724706879620725214007512051970578897982412795837869717574366460176923439428463366540314021093915682461709258195462205680303990764401885140590933680567189294496271597849739203858503506884058318683791619484555391721629825287588745437517391662919747732263266137940922026077457330139463566280481273479383358339637918157756050179653341889749099329718001849798639222567464339039301930810466517772006058695820168586821369435435837251838923814569879449203614360838795027108209290381589945727498692695046238272136571043623100652801443699199400764665736288790518205551614088601113785696178612327330472832115728289414226722071476092180663433523255410578225739620812784274534451632464510316458705216526285005262351144056202889214039390594639478553289097136716402783668527057618229800540899252661905908091103866030269138937982845576415727111406428202973946247286268844722607548462133113746562058950369322862527716958284803509953154800992691665798582408401291082605918405590279295575245761391197930174027081487364786021613189031695483952242425018820201379717705263904844006652665780794790682982642593705136806693997995840139229766083748295761168025923745752217150450686467060673275715199105803001983592432606256949203092260127084730358764964633941042745542854179184903007721119740946664107340871185715568152523677452008172231775104511350956277917669852500577434723437124712259294904623541910976198668821070552851774611987614420254199860139266914189519617435957810141112594344372339634947981681487207710225679494697933186852015031641575431241643198726477628961089984902986513660443593293756453885613479827622326235534633572297440246790766919916892170487059556648596326639155424626670746218953573192550058320270687001786846059217521879457542036669453565899368873351913190136820233665702191729517076345382431422150444406139692222876551440090601487953281516901632621268959149606220344239733215315547273012708025291847082926428757739334835634266712769498152327968645600833948123777918709763839931579250439761807381458896084873953597216507745111639321651435404577495244850662190085301179668310091440358007110097702230951918209793147405697513034806830882566215427048883439338779085435537680971680656871106916289373438943560251512489756290482978507629675206783410971062968094940034891248822227722234511175724289926869157647715913412364548039825592674112950783627512589493430084008204959977752693163147442527692573473558622597302021209211726135023459227280163817459706679396334215622745294670966501857614821551519050442572778661014565999887843815692217892505685154367302219359405386633915217358246707366775806466442414127751107516152633333441536223011758311373231396505724935716124725384782926293132513105881260315221288348587049608244102889495200384732834564446050672556893364397384861841137643465829302645881227346267056610408536159558751898119732153666155421670707969226155800803855647189065135558238314900722122450371987414593797586589543520893614387488798638800494274259426595462633379443067911316460477390392722037744668640370544405731918478145925991583937395600349321892712156150374393859644205601015110200117011579798801683392544751097663099016158069072035600420289214733713604632791936219563395246398105140352800480997952929474611428273940088892089154481916377745661786002896718253462972725106187308547027267206552126213470035847888679493489207073438978549426445467361429833601876401165038276664630047282421183901342946833442523982266920566059396743569185336293164916484588719705421029135389948653810174009545948309689017154820060266984984541294007104390502608664884305930207165735520941395738067240163130000617711882276523523374047746290527107607071741482758173021631541105167872527024632112527104645585195175982139401569494476717418833738164900588476881864873256351201649750629844852385849316236177707392550822037138313540348928727083888447813091215000168427676074776717406922937867437114202796501623876737696557228819328372795566861987500378153644031268843594528720482607031891827455091943047267833758609355311380411558492676592664331325227268146536905265955673181207267436138699401472922499942278167477424046947008798408274656356049049998910278798001587712851025033452512608755305093168051581109398859213256408156250975933359048131611704836946340060199764616365917996616473756605364257375137881430226180121306559645063896866886726962967293563134954670109859439622216518361195950751478782230622935952049841925162067797277497978777201389377672358876010178614874942330185314109796699381833036694280346596977443198315621347528750532129249375318079986790602354251196365436529198642400373086696263186334496829028863893777794688874983942574190682803283950057424841217134304039781567411751188316271248110245690938376954820715966979839932497469110510361847118041786393123551741164174532313840112080403996753699494108907906122951702422893823974713957412409378248096263295684741729212762564229297954279007054605986840960468598765970936470143085352257275121351441578884848815114130474589451583783130172822771458522954176149536621067519373127639371223441478765536410045837509853211398933587384520653724901224558960070582132427600359458858843386009248549947891891661862930088557044616698882153528350832090418363241148694507988111420528013019753117760083825607879855819696416138090352303144225228678011587116598871394207132332645794035080649343411145112999558071122718142578185269375449679857678294967117840103345706409975074340460410769112890676521992455161705162991293725438300309528094512258376334708100283635589464186133916088654336690590929713257292660908186564466763446076608925366338847320433500278185218198390414531563432932740159756629891478543924929597524067220533582251698089567617638673441539975094988381645416667984707547320348972581708214028451225829819316415339788422382102415945226832295837138786997657233267356113339447701167085768368149069989208629063917081993446028523743446525708892086246081862241299529838758230356270842474937691373015200797129633161135093199522082476624058139263781969520267889799940780581121790514522130917438172856657980523392906619127232631208223751228278875316319189169167972648918704210317845442929168608831911616799041616583188613170956844591481726665268428110084671514170057633471585692713754422133413035445564243911249536233652527061158320768657710256371051604554521354660576732556117189736685286628319670738046690325115758643302926377010215271108331011887479143465332670364192194349116820912323204201360866884146442773799280816856513368100407387981985857482597102266837558867496697780250129150284061499797852411368522214852701998931375638562235303106041199213627923982098184083859713952862483871395768309028904952177702660771694142605925247922932115050089780791329704457557217891240771599705369331974966869208564444518397327290749022149739166388665424398654263032278092045809019881771149362558839937515116492665773251548619617523515893746367640785387041930642923131928680089963154130044306449470242535626115338143781980754658820298691997732301611620166684311016145685663691051306710843872382852835357656939109208785348014582710973324936470699126560141435588839889840000584873631123186256259275187603742890489289177159527202980751834158063280294171550176523358411144221636516746515435592812229875135820243371795996690565176532151740300240079737072923742650622551347838952534808569599453147304506578813335700319387178897327610945230468047153767521275181642245133826636520056733396502176149995473849399705173393764923155829033062275966785650597396166738746829204201401108517243039687192610627021496296014560861707665329773943612656292922129849278779384062909390216049130086649337192839173057416130355541683017804292761119622606904181397470257931012542234375243192333855750706665910137195379041647948186464759682768582219805202902080571211562189410745473646181515920664339220681420941018245669348743923366462553253921612793695329902554170918876940252722993786889290154202890667285890308853862278443532783762292626238130881656287680241093913845133938694811879985541316309587263012619646294008215991777020312786772808255422833712020463108824692662675727175598724703433717799101920274308078739177190441397751837703371447439692676245295960741775688644907558631985683416867952127924474817240618060184366833343729367036997058144215364182653572829909755013967469445744400988248450313219885340287633189818470648603691518677218758529263750741960080654287881510407853055944645920521639749383241788718255622534287274136442738000427523580045372971802799471043504132325480426192805774426503526958311706043068838370530133742942421697388275989725213768289931607884428949551882183412390569340709131641605329762146964247280124729984207688497095863107486499669754911551025699047742178602370395574593245646029258213185166489389305301206910386731163010661217137732043157254402028425509896486960602893569777177116167191226528965158075530365350306198738662184446781156973173878139974475987216880409014150420422002502987632170557456405509795757506085026384130712111586325972264187222636415000899571707646160743670988679918173811230915231678281333656834771212229898251844101575090898581353223203196599745369521410954785423444710762029808322183923586155600580701389328500413748602648320667300916426161334959730335607882968064110768521924259393494623291034471310586201379747323678914077484380231405965237791374762718250033100060798375781049909421990461229000591208557517315153879639712057031380307633769995266472186933479099042483790243482580706524089219312023922441595779579431755301130500560127319465124437616572185694254002299123860161280409801509068578016141466420987121205394371275656127280578379870200917654775031982297666620666688237141430722240384749943822652547995110341905381214906128494960416944233020903308219473203133249299931718981019384302397707424959500935139657459976169211431832599431922105713648993980327924997604629101238144202104250908541794645216407825721225765688279702232908128651568127475679855480079695826086852057344458494564010582688858797745825807677876861551462964630981825598656333964594222657900814814808059283647285501413065894292386915124831170802936184769340712574824817608579616509381690136300866213813248586968552012908704316929829148708187957123780467118802501206246294263994582758712397838767551962984057561360839655403280280325553888137618199208844178767840827681239281919469555289045851472528903705620616379307941663286904139026826035873770949919623919648341145469961894394596396634299865491995788102808577789909819273976482206417732408872066181816964818336370641004562194113619930690209810182526546672844453013718531136353969825907012235156748094005375027436459103503502113207252978243249138216133020917590258800287667586248251632590593514387978057612742904284809750003648768993046234747912646068317701053597109519217036808390882144349761983504665750686127321194198351683480897173546242241734904386784626171136142957579996823712145585652086880162882467576897401378642073976725571353301142838974410575561263647857711409271512902967766548036488471067340585217697689676853677035050056909937671387599669407495530209776280025563137755194476769148515323208622769645845600795900361938440376786903967430335115889907549099238663739261273773095686589778257285980555026701177317845110406273596176457952003910383960255294846846900104685133826216163611260765740618204033256004799205935672217721001407690565218469209668410447255965025411258372592803645990837749260974824321470711098931504857453620587809716635938398954627106783881545025150106458512433781189822084533914340629803946908725403909757184214691738699133481258467157938396789889848186540511555173178701882521945962659142104672306057321744285278321011117802830519543658526198445388294016118922761387521055053390033082367977768444049689162997267844717317455432091463896805980502257179746900251096082723818903673576440031112452709842409050469488332530706741066936053030490623872299847339894008432090539675113887134795752163068363321208468665238387788447619371104078222203083457454507584696682387079459877922633905788966187511432055742824325069492983340505762977436792606009628546015199740103087936499777862339961131688073992434911138509572292181619840582601964448641262621195393229705543968904800601711311234271577269258574139112877234432438538815936345110383260571112167913732391317800288320852372942711129806752391647472438590198759046429151664455653956216819990553544841062299538503764877913756931416726007814636048103961968348886392724022002851506198445706676471427261781102487955448687980115427261984708831145460509396519252506416385132180137239925430737446170036479593932646505780108584277441304801602528386342020567313796696352739214849068104714182113364060827098540240722178398269149464364543817635103847693289715144322138753881651110534478709168967898219272293837764361035853946330350272139799453557368075352154297037842631937403909053419567948047368321445499703676545469880332971055206354607191859106698497904990822644354344934097678628990897092239926209355823095221730485250300101571480892137358231157128570820862790144663512357204182164462941960013262608816222914248726296337284023761086829702544348142621065179202963747978211253764510322045926296258348189285486880217440913439055030214403150255646871022519843640778768369572929328374845537775360227482191784438422630329568693664270751339012933702530698158400174145132704071914676934338482955443884268985890200946809114741994361968433129494550016798779688370481647625611013166308033069078719124110624568169507225857061423219580388873914241977868406269188520706364944743459508173433701754453643419436983216472270044628827450808096315879595386894347750272486644277326597416874583277658084487321539975549830431262289710235710490234117329993790476016451093716296454090947360717707518357223742453778426854586639953717273035700962406547756832679055618390948627182429123895058088904933352064723834738386578408116623120603185232428407287123195769950158254198769255813062604994939515121992028977230651242213296747620027164822981088918884530195608901890650986915826160488626971430593015142124932078657360654147001557896362405605855576694808007666294127402361394314753085183616768474202346009371870742286268346971122329433828423588275652272164974766689394544199133827109573690631499520910807955503105309053489927095043198894165572061834310957840401131858371759681940989181170432838824028365748091014424017554788879338220257429753341579284716876733543990262836781188391175915873478457666974280179979351887385924008172158219228208440293058973656914252187800533917768608479428662529215310198823427321305262489808914021207465210823467077668638133874108532042316512461253419460247697693048877382745181693513966132553840137225158301997198910544151768229248893006966353566379268779398730361467696297134878338752334962174010068290216238782620787452447221086276036970445907748890203291167706318317845774589846292889900274420068460071019618027463662490127962180269975937358993949665153381145537785281852529578252271343576056053251574829620832161710939227485298777434293638043326486471298303575045350643348468715396057285266516943263327189613621313624343315225694326876113292405744399409918841136813306725029024781751574575507148783124141436922863966991744348831990397221384616133817097735362188258002606412841025123639402436707325430456855383876456013478557256916055521307250901314299554969054662243412512444383656257067745495693892783179017342176122642923418327935014416572447105711931135335126459066104093104751714119494083655673761919544328042580271638344861503172544592008644974010052435126321288483258078569729122702632126871641726831128894103101969821168109457526091219876045245512793122604561956267657517437729618818165874062349409542862892799170070799364884714351657737140924967966799599789446491907921936106095876360191457643843308896907446188113657694463210242640770373012763155086178264885052152784133463914729449470741897258754498002347987985576091322514730094683067533512247856627958980962332634848664722684972808224706188594645211863197498145425715935981077750210640510394176172873154851029191428083793298997363376453142255232919712822407270063931989667869510507365605088682349864014388461714465550973624432393074047387129059710377973249330212206915775166564122533187636066483871274632202642830883964249075792890355868008700254221963023909772877480588042240002489927055955331431188163432038240584915139206599978390457150288851563201763503132991155391082585794481471085762755152845102365840740347407938191169825705562774115109500648380482026757309414268919313210322653535813764055097105986566060867241116044644809887798742950776706928118097249639033637840237025596534078647336320554319482079789755652019138701530885342451458601226283422930516258563980644434790309659254928699122709288301519561539724998442817133060060191171787086643433478927617997589079816863973685799713632041717965216689324105920909516273666368127188641147210710518423789096072989544621412204178312713417659908782148593735306010909090535674640202910948297040992459435114800429138013571692411148723686928718555530522373554750960974317017051328284707585442731605775157529757927185035223364506710180789154648779693624611405925649373750375845173775770948663604644393068036910973918940263500630897357259589070479218462507309589891538432049166815387485064471900061107861101398382178805703537931026525831040588227163774869758952683557036603947643168095890668138670356294187259504239468487269146277682723218241357601655989556233479226930775711751487235373644520943572102171349091178285956240974092191592465295336127818486414858309018215688901478779830578120442099678802293425793750014978281087296447698644425658060172750797307707340378300563260297566056607746629757074760622660848330620008802214122547916815833938085454665296781029019947657750870238824910489165458876180805664501476575306288021905648911745806237072694758483415976296058754874966310500132097104037567135261522638939607405870696542047722417000708628276519714032591491733564931372644915552356172526100266261209105600366149586204343699118045143638010898533269848675672794427749947643852555609720221520151861899148141516104494804300433938944283174090718049726055410164739291587861296746099811705637530780190097761159840837449898414265502793770435106040884993303307747919881289662309594586463043711233531186068147491809471560295893600960370283946808681681961265050075665908683842572554360866583470259265205593446984117714627049870385967309002581974616086837652607588578279590477121587574402894379939239590531119845523535269694184547578389394917379338621394304287884595345265746327670948720164791376353345098693965938856908085199588282006950843043879629745934932107951976679676900767154606254463148037445063791220139255476361683752712249356027013453184988375789873851797621527830451268282681957316395812927765865557633025302365436738136593626340009864513767323480377375721761845336980609074423871662852072098960138164400581775398724326223903587999942899096269430985551730368565702690016114511021095153966768525272550965582471217623014987942879324496188544915426308588978656765962028928075747000793790976415724453293253001442661197679631364525677735880374401158919972598086233857866974544988146928828412630523712778129848426204776459980835139578189449747063394147846890809924341849205822645375239285278678244008431583107028728935819894832794414318689041619973281511057972348382659077912312342585873759991048300905031745692073795804714288056377252780314648166464378227646833879660076412451508498819081647841227009016711456475168966129160000954838232773536773547418490241095862405756072827092610896540636327511835188260122456165728504062717643801926714313957798501248695544062314268050149199224981666177812672367017455151708636615474773149165906344382425142677362936674921692588273877963944513165832358203271984278800812853087124513294649524819433343199294459625742646224034050900041176504693341171013430119654132025128160346160393849822709999882312163679925307549399747940909998058985676681810960242291556290143212088483286626545503341229499837362762281265897502226897853866119401015991089366835901572441621774522329334242983246301140072277492997851150046507756717005618169648909543487124683372240933153189965431862460863461913894235252712665417411777802754890981988326246783192623895417872273426385617685885786055018224613632577128293697888254685455823896101657750681357097946821724583943246476324658441065569411533161013444765932408807721709158037572851627475573126648887115946617128569982481512151565381069599546660738533416555300209448061407408018478224938187497383486669803740857252728991922529876309165185499288765528989794289648221885833017437667874654581425744431334871834286958545081588780570614850449743162498079644968165067957938685250777043549234323091263459499520858837667126884380659537014331707520954330088926266339916391806182132115603151441153022303360155019999924190327101785005227118694937127349384410543474916878657190018009067935854879623893449788012781242350410628751249840798772254389945448039250878786790134133992145289242112766308044743424932344842879444684550642178977036702427620807387364668279249017013907237237751371328706429408174269874657064776419136546107783379071750201403612087132283628993359249647315249204762242585165161441358007865639207543470328325351579538664222385642642706101600516444139263053629553464629293357868323066048027709155059491076722404147281428779493886426166115568320685176316851132860836393571862604093468813634074894256693082038221045522133132569592408742121640984639044683644776385718425310566074881952830680054470529425237985502035005302433127620551273407247782747125333874206227093746925124458305282398319071407795520012234421734733447652289681084377970853591441379782688649867635531643017874507563829425571611079250052388063477084941690715074691492006850659227646459960904498051615192465666638710410168653264293149292059283988024204153086499996040290845999395318112669606211728970213073600174318278418957686448056239888478260787544884550738983499013682930915225759192151427592595874350293930166272509021720999125189158593338329464236319715997650833908728789979755342293379247867599178387172620785811695439398685432624291632858594119187436126549140569473166951342615607348108549979680036347913534690080056660043024359212872313741752621226135706222168518287370021540550752741583804471306405151588283560971149671589541261141716466808312225922649201307547803491756556319350171310809016817385801270788024631821549091895621772160868601531107583976297861202322576982420169945660710855406792681883078017707215513147447261045839072988344270763055638919450844685165102092028055807780910116254988036671399675446098160255676211510823170386377699505405516015829478763017405927764572758010796677638384795367096550168644905255010363298099030638709753647489746947494652533957934630892880381754626112679755138641470991150419335755904163023299595036617651132982283953513841178634288283583923304547940785179787918545232975941654337478528035255878601630723517050563550939342978299393530932754934592529368095885728617108497429990155841357738777186379382092965705445572929124375526473431315767567937180790842518682310926192607974501711325926102966631764564309273398761307072310528024248137396148191164525452614212640257426999334470252353894310092813615598019450479199237413193368553451648711125426594820405134800756085485541873948447760451200411051271009823974769679352214778578020728818221355622464324304639813512269860131589051402838113480960537101541918166739473494686438892220960328374576839759176907578016518530495666080844449852681474303025896892652658489143293782871460296808954282350192919860480840682541673113192111885788334149386727150392407213886161076788387072979900803969763974573076791222596600285538854811104747074709721056420245567869172680650192617645885896253486633038782323664720772497406017798568481380795321055896762624755053466704857904132963071532127418626829078722094795385240546122259040432407382192504840103490653860431582936408460861227325129237533612458776104376608832417423740328264816252989967267307596190311498454504527957639800326747239894023334622561493628622647201867894153553243915719790567272010329890244251052521554426791464718579876938049422558556574375125210125658406681515053080929422340398435720177364462000842390249717635659710611938557930034146530963785448318081066248415180668015189553548095685376701469934410943742891207298162082781603524846921114117540830024382677131887801542202272165385846808692914419305357070288589009004240222273464421222147336362106242902823626964821703455194743422080262884503560173746761381448351511559715249697107833987508035490005895349922877540584991688483671613746140978426981275454212697287452556580187592318849221200577064410075771223934434708589334802062292892427640658022705540533153747008225912087024640897063977770420160411572585430640028341000460051384540094604837364187756667177245717036281961966798193301622598721390898573453347975176694564866397764764549707415970898571306664494929775730075608854847632341609448376017582225440835458491245976404684212493957111538475627230552684599537930881676502166247225852808261558437699644264852732934964930372125783533918891756022021861384697969029435891198178660243676259287230815318364957145283092258358977129844477556455945972529907779963176526756045875037662277970901760501389798829705441020281443325463477592360210733230662028377304613038601716796012292561212266321009403740292961216988788161647794770695641802427545080315816280377914302156772309873493861667093420198714496539724694513842628376612475382502864149714033663314939282822280377039767231931613865888496192461466848673488329219812494071165906056223236799105796287936573221407688898501659651197988096601030077371837014141991817594363965797971568445481891876445538803139701398986130145843556329575208719296807041465811672712032480257029368723034055574079185693620886332055798981600278693483631764583858757614151757421810688862377251397394876738872369193601134729716064627073798302614133281994367582744584775753071202762256371817224427795104313267387218557927805585374899000224812892345526337473530808060825896502691423668589455559264611874224396184584826811192506831712811715552340857550187939878913205269957552066533635039412440875591927152352280479865136927632184499692912497905461574026380950377398575919247440411491684882245498111388861599007110139379945753766194522906244022388326988595800484745343786424587553276502871855504799711619148157608359466435623781855242063222383896739054608067915566970737301877941798967522496980209418771589747125400264480976328145069546062971848051653229640001009381791783088187144868593627989939572293081407915300900938782608907525242109477547904556819270361774911464747871791524513392963161915414880060581719433328661184406295726835896758009110674817902573255671533735251669118742905962303144318164746359225244686188259231807371835778957469937031098313682810067981264425453379609465308639529977124905361210846606597762470251005361063398867029196557297127028291556521421530798965940067874184152769919062511922409339158819809898748965304992040556163065983297441552567508150116460580981076651009166931304640604398570068581572875180599648911178870468935252003398201266598776522060217151438666413743935549497644806866291452347312777961302333753603782569303520886657323069788202288490397970227444056915230014891386417164549651519719417420489716076789760196619348244504902650213022831576409017900640812566223550369714321945214607035838584183931671954520803617310171211936950115230138791613378500820279944592807773930100728615080957361273348171009398155223826765940144006830660326080500892864049380443499588286259310769996413145623172068577216401212821266539323404264901975506015106914926657040132965983815858302513830585672434528427145772804652836472388250042049627183757579846052774787417012459004005870673439566573666904715742818619431672071799394061630526284612295712562913620009250616895863973681636689553761208606948416933502785692284401425598633085068762355635990222910777235151015863697513447297860846427889331533707443455531424769538503277503193290484068625409145087319989155486314724095531753791906242581271994694317980390470161858506719964305325891932367461357117918771409092696860551569263464972984724153307976998602625339204158576214624709255148509870170166913643415390660591891558009149838466409256049815542134836593936997668405146645516029154687908141279397178673183391017616343699747123718444271554820341259886282131609636951481606880922975436008192957940776073524978784896639478297767833405776415121673402536038712115221088108951964348013620998370353529157011036826044116877209512584722265717902691763080265870726435868662905392610057190346519839448151012460617047641457954502369031484123663860758700372975281626665173667684243215642254027519262428982399824015521787678859183044237644834327616921462187017905332027070216787367502715730120075841873200836137470548732724428776438880325457210788543567513139308278507549306213589645874345801687208007533801630945369460274957093574381254333506832354840201525940402366717046349329748040871368276972301262901808143150962042713450580724854041608902366342841923202189291071368186041440587656654140383347008258700801563664811548421529328495777085059680437145767033100950192284066784349724937450561670663964593698648698268778486380554869297706993083393136156958053616365443171982080073374435879143343396932895812620630842208512431680961351919291047573323410994405708820470501711280759227169432756697017045530513714838318844133905137389242083809649601183545901310141317273751199976632402219618950238343195071186005414429761559514897726730707844014669375077603443905406542430994552005542048613025267746892266804713480363529808048675781240031074312432841604546985369865901225023154641004564950651045342823613542209246066356646498117977233672705441773528300868695454040102840529785604304040720227008237852534626328118180811340807225945687932048295447719264923031700084986761556141374331789838503476397452281043987052768230224618881719885273041025340158725622333917147416539481532926541548636248327644031685171521037820399618635762337375939486728064629954027641750476084270291935777706348773270616529144496440185049553962425020762720377097427972751159416862278702975627485087399838518119003129770556406679086841341713954142160988129279737346345418538917296390244085404423846117647132671465174666459637274463657827850139247118973774985484061237070921531971566048859608596806972075360095914720176708368451677327833396534198871824111419464271185269979672141752974389387793684503206011457049356312526230917594179956557016995701333794650254540305114422772212710031581863069851500045593368403211615499738166292014388301938364773004498807798171932991219886870814192779238461950551737652431833068050726471164342623807355024283067723714597937783582403939780539906587288084301078279805325880508030650771537169730133892750215163948023567710682578604335832315574754122526428056506204339583173600430350470055833144357226064963552955728622710439835274381559741664202850098583655639212264396382549145909490972242513312972847886241629177960597883755484066070777179387205827401893081805060331785184010532976172160031756086825446857290691201001189859978637068976906960127806134067008555830554416332617666844444793999294586866592206040141124630720573000393015012214587893054747879934375908075955500275343213063282013719629214117059472920017832582283446008301641793909094435497881114118230412689653233409084392673936622041200381081357614640686303567352806688337250209207062340654120241807760435808146018629380268046127127389792697740007703040151362429962681071675244449889689632305744677905912110554859808320222646957324328541398756964679694576309394577167645134379589611982907829578056294925232694312463957719712712538712423703252646104509330923818233572458780737256550225090803974969385940435753010065492201057221723405672025704783596622408584132156362657179267513573446712009570754150050375422196602132594166605622436760756751527921128744946387670706026256326998658457356000163112755734406727779276211765320526631924559531042466391298135079211596689489813390857932503618968201843745429972860055595134563280088596904492569377484256212362403401653421387734720490281895063546443553396777302540953706896845370665774187143588475410125020318773232525975909460825101858373274492185527578428217338885507932823372392835755377523773707850400553448809372255320640662637943693006163563153865255262437354512118801611327796315429824062158015344841889645435185148475478370842838549654705606961954121256815989652781846378172044547798813098758751669552055726889374509738387820472823056886076491600408155444153403369388110757744540388250056662197326954033157950114906942945007078825934689470053505443564743229056417313599490048204416646590291810182078367979650208221465553295353692173092049895264869797232976494993927333431099820232877200672815596127487775418740671313088696487571141537534886059523212424419604113533410131561744239230364169595769505159099444442852831142024871261727121289610831775123200714074915901462310754964684983270574241522581138202869638851323963888626064570492162757585794620132759837791535146574074385230442029814235980491835476459468910847178014349944308682187602895487239459077947862352806116660319415660319036882897001752946775395614651011296307399505791385080379266478812416349322313138130893822136308457097473395876724201141363250783984094888170312620172572747272266313328723552717539017108507818542185150224101954234435300059117667391622143107656901030603294212304508025469414793514622882601867145779060674813056224189568536657388963804103241499121928455735253184590009807765246695727616684410965764351078748465679231843046110620223263848221325670515395160111774266705161567737568669789566606360653789096818947846752480574744692161254129814310656110527469490052953026767924989144901144552946491720994752569534602107836389049196010116509097344822762963828417575580625053426500794335969208567962019946825337448737421371590062398702027029689819740259321604285228125281813540515110545733655149450565461951146475526485385598698965198907649315046843288499063825485801858506450897793174353868683124087768063428526894920253648284749785842753313912171192917642146830234303407959791899986109187189695696225025094054745324520320868537076590197699923944468041199401097345103096662307414819729626115418368577650241801654714369001551983561673294755802102402958548502161243533368323593973704193875435837397648963621383696809978100745666358912432002707848909358506441833305880531541049970683130205494443043962443389714867262060389173271775720461058606090781370551895449158022490243297132153167515775487228163049296577503130785932206143005699432771850782614253061203768092341454683942559739096006742582229480198912646815924466944350960728274387406746764338975732130313467656084342480455079514124353624378703563160186008666640873139737667664116348055232140740733533432066514015221653947251616663609424486183494728423092337108749289654263244639076323811112750846142201385919350177949078564956039157584531438434001358945857647769122414693938313959313299112513050223821243776828767054563967674853101865927515464786915205616865061031896633251977187489893612154887072927081161719910777170917191439596836399918078301687521932338987840872538617648960578647355508618880480140337455035080455839188369357277845134786870095622884368195318653256318260069755723880592789299603961105271069613734694011811094597625808125330461044656414082050400749301950001558603891486970183498483102546604894815944129646397633879756530594121907959662766955298209563266084176774551937410742509136321208734567367934247974249839033365448748040622149447629428365998325701205924993384237718818231279590239458914881795529742108738078031995548207301579193121927615844451921919392096056741293980661708819767375586165823058840902817404518830550434213294223096198766470631091849872796540446626983322981112511134267703837736442666159260419864416781443837266319317462460061990379738980862608901198559000385042406608195603147358369568990795475078226583747172378134155005007593739362400896034922400097170670705573040997098078708851569494330767691209996140572251751381751624228843303933570783937636982879713317912411926016893765312500127113000053998862427892605150810260896427834932518581580759238180245352163929934704329632968360142238696143286946588150912405834659282204762463163188159468586197165922961764982202410939727190729642074430962039836950774885109149936971349868481910028581693713829297510340268133669552835857305367122161665456300522256641277705351378259195824113673752637424258463011941953177900610941638475785542766534003647971997861328441203944733155031339968660033549875853852823443736430892067439929785545159751028340019361948743037647956007118587849577130050499555332757872459024414185655015055568549268679313924009615016192881608199127497419921276115637697424517547158340979251844480442280254405793059273340749448929103869927734231669917344063506067812073548115638438040632610028335728104064749173972257686463954534913588736398473443678282388572200775987917158950299008233741802234464220830989957762322477894477483453028237239022694408246337690215882296995322209439838001867918436236391442359103006459378687385468025825476573889619074363452520016111011450748032016861638912779809741997408082038058862928303708533519158744819002119779804471475821437751064604498059642630674440917798642067114156900631351929610151336814796699070442192754506104906643061413388288126361341512303264251727294965574885327722041859724973616926703755795570933377993647693964873003111838747299532040125250627740149377784385074634617819524818827596447321784867416200542777457443743786184576703778528274096006627948555816454828346088426853392157484058448789496653288767935962539893554447781378987307785652085554351954783525799512159332473405443477797078244942616298245513775230717719633777364351957819284545880372478067019683853070610292226557690387971339854485095696185141308969789592802136742322905678571109004549432478781798727332671299122992106983632720659787702926036589242239055144855313451664821615386229690074524967959473933735561184024953927209276825432039486677423854578351680995266366675732214025910298518167008589718644626487776278184781247649983318828925670325569946691069529362129200462861590297919936096621260843776396967355345495905284667786678086960540011748143572500357403773336060545562897212294370958529676707976205938279608634446054712212840060322678591430245606492265571863688132345019862629110059203537328001272241426142537475458007480212592942624745752740257289132397176642186516413492200289420797803463513644084002641548907221642962543805809646140356172048801541541401635781671664778733327829069956583351261780534769169258569029238316068915308360417798134054818126047660060874483194069546967675565901229385045823234715048467225110386226190028018283285758588812659507191378545351989778333292913111990841382704047646323465440923604681050760908195534003391259125816545396381483792652653951720329873875861593548914834898914232601968135649325839463183549216900800377195798143674959930782347280263515115992162847723962019390494410201922485214559150547307114571187563093796936658004756227803148409817530113243049675654101737180965911579620709426417469123979915280507873922684724872423959120390078198975753835017706905635369641453204930553497491092955606143049639901484354836368536279161332020465544409502983119011656850217670886003104994963997401377820928958119159325616755617353323793832834707955275529606778356961487622072107413745978688982710408865239808121992147114686396296245317399753322093905949816152804856718156496387065661434035946475349749629800229056481713523472293096877754844865236402484499187773090871852187223613214954635516361124776782051526935242539913177278809161439895874404827226902417374545569765129696547569672960180636249376618166972676045000483583835272274726030327705938764831969241407428693577085624500328832197756939084998432206079092857140575820479916087733085543413793799642922522464755846694487048923071251270264556445015313296512302251471232191705681693536092671247731809956171542371288223707736693687834919929899762037760016289659746543450209326877479428822588563866588195622069202707064104290098249940356962663100435861563232951223346845428710025666525046646911862534779438181185680448641249796798337935611152488083513493966109163679059217351843134774699821435445694233846103350178633374629593601279769404779085181296582558299569077288706640065351264496023446632595242733367892806299255601629125735651121662755984497024324521757406440019347827577849452572171798607178386491010490776965583648416965218292443585993691749262075818841714556408971254484606350311870023348271331017342676197923851038455333259529733713450284888295927250355567664023943669736857823376544395048434500382269981143222966367817685163500839003271421524688680637846246752899694858170970959226753376355897216060374927025405321610093399089976514240532933232873979971313011987409994169791716921368354936417256052137099248937323996386196719389932257695277396560069897609283661807649066431029127286566763868669801747997153094921603946805344537792716395700371113568179393104600417132169308082484711350094892946048137655906872954075211013373849905351440563772861072888138111137446451831288513425268764146778316986750625954833404161477059646685059198999309475294266538055375279206377686145904340899672007926286339756833097715594681420423645889862829281083823552637178373741992938432439091003261710751699571229360318505605326498314919633276246648605665298754311956369516979568411418805245713527674655541921481717434627145398973107760197415255400202619455197137435740307056006806637263943390992554386058987976630720546465683800538576352330660622070847972914550051101668520450925031182284923785021030958414345171945434348181908606664224279577685738792646122581623740168271331019254238420836256202678920349554726719127649893732915346953811778932943414063511973139875869960679551698224844657036956372852383420059154376562305041862086104924711957206969265024731180935144041391395659229549702322525938154123482271592175444051109603223047228271439185175926032817752068111864977040981384630376699705004554831104270962465221683188052507964948467324223950284173750446867716911033665126896883478200441763481501515857702258122480942667272431791180566113223049161601518435137348287936170440156631563278419295617309999468902353638788687219651507100095458259080824990645201249594080750622126925020698947520230307618712981676519813499532480735831824411770791842482638349918437393378469697992627487357788393770326673581414337867714820175823019746690821903964234829112774960572889034507212357239938293472051685801565938816372263306927478869132985199561820933956636469516918821963779194493455057272385063025662707019316997192294092152810076970192017262009476653704862694652147188468204836937251384141765805010248786308919715924910134313497865008662776025580934564451910553248209071872597689999360304968752014202817896890451812461690226394994663451376119768764028229631797736562309391514410560737658193880951257323611211406129014281471703703727540338338683494604143080558292860001944131155138167241491826407133639742126290004649993931048672389500757310832554137560915975115196765194706742408067033271394318223212778846907056114809952916317516233567174185112146235036259358517625168941942594646591124468133423251711883814597456117283770404388645573138611522301522450065701452842386707485187126064892889694352608731440979187239449242395561763081632778921351453381164401176200198194404361053561073865228214135108094695985825824637330085444151562198822207701184578159935689171605126071899400857050901810111703122683054503330963296663886945806946217124797388167014734896121145068610423607387275459494065231720979003772753479880413286395507903017427285814010197224828009728801253411521389242166212865975895198591404381222266023100108282497171627857392073705176971475124084677271622492465976683832508888653196305508569688799981231171193280539284808465320918081602377673733539715747801306530923599759705786456517530980995714611064737599338523183669983923088717004161003489692226098094254975161403722621502505556473763111291872243754272291291009400347575178563666089652683185030631679655186499397964180984907023564249386026427280241791180911881188906600042717005736536074466232578161823635986117537979872429118777723639676557522459726495957116093099013286929705385129876458795343674479120049385207268000569344588285433295811350674645457995722703374412675441811276364554468783136401914706171606724733568512832777327707330548464277745623537432954439602133345417791338671527149940582174708563505452358991114210238487441840270845617997449829567707794062669560809997323351873724693873509625340198840468943525021468329259195961314149142489217347320876485202406733870671893806545849186378768231333668885718901407565506178132818505146230169535468877465865822481852960595303202155711919147864622535931570906291191023845644594066182827773757511648164333065837084763635604079847718141307325337637694961891144787330231560122044887527071751190669325044849585054548454253625249604898295886215234879317186694940494002464064417088427186852924475150107914609819137364954258702653117773544148510745141318035153210095868753464464602104664405587353867744972834775245683058004904375277088426543306485194663409484390610667099123593047286119791538041410211945153833866138584280674908167945691478616040421753400973840486425451319628711081450180119793449128853508747584267335302813035503808922462974550986214761637267650183053337324556433309147333369610563145456277257760762197478350594625038318578015184787766066519163315532344307198223780493542116792808693747336710403135809919109828352905463988250133089358296607895344276597585092046098419423115456781969013783620457180894065644791186736117114908266553269646625833683538847848695415521703997462215660095275475966862186600263400237267698500737242624082130424190681283220714896964187975579329589386190926445536151746980745087167603587525688535465620980682743079857659919702154538225819150909987493391426788927687362422050374908995294587111857189392341165288943660281063912374408053187577964962820945955055123877806226160727714297168615046658227495948434662034886586780094126887472056533603854636132437843279967075762224946909122174825365142325731662685796683509159170528709577069486818338758478834783264587074960126023742779241900272808942376132343324883960423109601033919176795550426102345622072601975991939229106226946612970340991525646005264067275902527036222569249485959028155921555244674825602173219124186485067989754235404610275179540473794502796233009793732696548939118843653878060990985684709700979282591797233134692965240307791364380383425925731265457029074903619193030496603213950762494626655997741322779404506281209506200251278958642775165250823296186165852229156851838721868519665204640808293253025650926146059204451870036512857933729773716996231166965329022193282369633895435690748774797320754510341321533343205786655809583757605994635315914355338394262576209548732774388957497147604094260642337167662309735317219819021649792757317140040128703317833038121770149309870003444744933752040974598447938281405192085199356251036524327804151828203718573097694125969484139054727560034502836161002229178582733387775945691853881670291204841988743658011290962885915268867536954756855166429633086485553462566272749267641954667126548048519180221120559209040501366970911770218072715627844086442252933068854671562001231648041284271894019309678607319623178703259959131385955805918430547298929814598218498633719550972943209081793331063902134255690720207458309966268205860832460899682183972745388381086482372102792790288063799732227686730542192668958508101983567883803672114203956024415338343769925869619755546670696027341985043535853294667619216667922671722144885801359412457230464289264673908560908269677991519180534803929294385083074904613010996467729553961765124503754515971612871418425307622517780279837024123067373618647727437306530148258719374912192757338363370973889002658044417685442828515196050595678682066797476001001576472441718755945193703460664909095090492831576945214285273633016456597626404196159087120588964759766281953294499899071311386900343893686722207999284484281824497826251753139483146572841675559803359110026010311751969195309127471605576242612859880039885101679245088929400148339554929884691682434903513874843016396564119499086692211478026115078267194736221964267275132035632138343614179233225711413823793648330297026995526592687563321425762731444062264610790173432152217041584754889031005002491373690532887011480206257968962804509390012668609441030629889723621784300111608763576906342849986944094757564517551151085063535459052745817116076331192628115952553521353857985740389442257461362588468518263768520756975695472108787071096894414825292782581983156199363254437170146552119323645193811529012836325070790339303082437634749052071851202928999625688278529047233217186544413687904640235931015468758947102342172002939097306763047355661186713812913934943464977207769676529823676350628366198210542940950562109980182723815475715774996313445581893872164671583783361338217450963322383671172005699753440118796400006764729085491362158533633810319512801200488100416745088409947228265357276569808864668001030469177641954584637464986712460089161215448057908706037266489741627282308694256188272588840832334561499685284743383536897249257812182333427140249491026686923763823287069164948910505281148437637616520982238986638262916817550270136699447009988837537751391614198482820377201882277433788398150895773093134589418302798131213155336874860289472618560457209943062404478186404616106835032807398803269878868057257643659081346580314790259522182470078878014867832860970804883586497695111457801898976413066505204580215926541044971740851170278957960996598066899010106773125357484845622993772577374651822505086269370725781374970478265875948081981240774627605609963755331338064860477009210166275839689987596469456784442014586583215718559356122446172340871067875526549612012792311782298044612350747074774021002370968491010494405159649989863811466533670221360980945368037900969399720466629997148865474135668906828968154631336188030406659056132621249061812783138866117597137942190331160695885899180571390518760103240444823925225436285925946335787329810466180273085656635945057777697641016036423294929739193010615760889643016107776606624712171357486914361598096373643158448711419299584392039476530569659094946940717895923258550226702754284369695922018748421299628067325984637119086600415740468819144533176132575813687686136101786507928285557164417360470090444592006206651249890173260453444968617248199095129163706653228951041541514927386565981159052944444242175354415572556964424859033247531223401162509468196396224205314555353903365228155249093127025106938531118564347229667548812536237257860010393434406732780838458622599968659261437671376201667401291955172120600872166260862847811784664432731502583193793867186147775982941394687899381925498705028142826967743954990357897432066987526028590828958545167110912331437076626394462729828546907158960749368709736428138946654670837208168273902151604032792976038058288927361134738110107418841143233308521537345416422261787696890968619686606763490024238037654104439976415022659156522540536133261534611856031319507728622366634450942377740268928628751682028872712674565036956615374732453594374140272386734214776083987356874061451788968198374407578399624391650530203523182486088170919629224507594730062869763112074757515616692274205089048472565306555911549774723575958897808157938167258611208656003178340935017245618140475770303357398177787964612719885166311158992785290284793406672263470600467184295369710161001049365311864752019886735970456601924197332641198059706611567342190122220450924751927374023403589268107001472517932213322154301707789291225757105122349185131614276458654284352238459651368680113150681776843380002693001215104654505436864125834189925667034943679500379354393326898172700105109104017089369827293506961275931430199511954491021799707438086615905592686627733330716506331866838718430583412447640894283517601357784186484802683379453586409338041476187479471152696882949448986066059708132712554730377271753952350317141372133468077435729065528967583225626163296106534859515850887467434719543143968515880201057655215530126184274340169878621144491276598450798659885319659696007032840208143101776341202712024403906100828952141342675788962834269288237967231518722565464357397970706358026280212625606003889537731936503244957117934760217490278233271192208934785994335535054688520010472178108267467449880557552876744227231718524254522829139695242416789195832387848166714894907405615413224068270290293710876275747895966325546303244276450522890155578896754241869972360724721769034101131994889609155679067294108499676414564977888292724835192845917959910854566553864715086271645840445222618158560552436690435873277147703796205369677198422853537680218956303703171164504805959605940502866566067642549050288557414283784114366620166086868777836227201694540433327283246114627979821528119455621881024100893932021937696980150106462545276224775808271291459793882332340748263584836583400955723349334571480932290422792102114548428301651109927297801591532215664822790457509965968888892103503958100557211285729311216842917507627807063387818815385776025223950274100954130639910808064335412649463680657656063953933726621941363691117556028016500860406985415615343190947834491676460443134440695870005034395972566906822275941044437283697793218083161041830497258632342091205734446568070534981453272663068478040977949952104273805095105628159393224551604940044258169064187525488183739961624191263753420658162092504693398713604795199119622357214384322995283353402117973222136876141861744465761959487334837102788136918971662141584566648457850101607186470027226971278529216127141315229970647163154273004251815719411478557733543601112916747416502985541871215026543908437951521350573415677794331718163421203279764020391624536082118324436023792597548240595054885530908761336823710198396831519149548279614405646072785017997263563114878618637083633312355303403484058753085664065285452121468319172385223397426161638563069986989969637986397938182032136554885548379170234399412432110822379365577220881832485605186126811886453242335948999554165346285592218190056296320050985506756066309445969742674046778898594968820525720654363896005724884622277365848596761542513955864758022772033287064448271626144809736292942665887464666402252785857869054664897317949429347398548598838269970671025004260384291116414451351599732601100892391488918740181518823726707900762882270498608523622518740451511559536266952837045646766984956020630658546788086893802329393957825243623038061847232933555077340142046572378712137217042182635197717845028792930805275975184622856184294684927313508563828724661112166048450211453287594507339395928777777361756957143424594371118361171782375991072949894527589424696021011886656501911610286271688871344728236087392796952359075776787871178782424744628960831693821920244786667810793711005561666869122997136597686376067684087768048741871400797620253731898014634260749087813591872373294835824876060381916810164245967317911548234022924546349310243802659437507456376143116244233554415972947736525095241112027740299235481750829788253331880785702121579593276733010258806569161104321324503205133747338125786587053374536713328314272075784147216430694487096902393159738398133113791081137433636056742100478729714007665722397890297754027861056497314691575428398691323382429899460686895690044775799338967729354495120968932957900680045468079737291518730750351993958554318283784283928672715328080651932606868789322163360557248915133291374208176228399825329862648251984285076821335779121872673789316066999709638298099590293035082059242549365519475780652377485029326508895335918626282316600375591910773362891003982768529470433130003102819301270527516565655192103219912259442238403170024114775970909167825203332864287463155402262489476588158024194442375488261119039421772831418348516553695520536740828834152178693571503889082374470514389920225240834895841715269026752058636779021506442821982382235950223920583797219121929430833773831657496733477693570297848236263701294044880984248118465424638768915092962047250163983975294863394351847375676826348123396381330988054382586536384992214097483274914746079486694234289293719140362639733731995155609035369118585079238186971323153549635080978084939916983931976319538665450067602521842291690919149622360377141282912362299669406142534670858310972770726412575322611175495004393353509221131689033159121578558890073373616297599185212869587229463388402122551308181808399484117778642788829471653492924783643749541688763347796640734318551178831316678040495314104307934744176577308092685725492313204617055611407872766617818343175195059222450188721854460675361233251945258072014408117005667764158085713980950121805407736525313610397452014420130872772551494859215775983205185527583853119806448818583599553789000068914412221674797387193842673607242632501408054002143194934862063574219075958134316321055287659386896902758253805578469776026686769659716307181364483955620384832337309780096297581467909086034221881542791985412043983719073116115348476419985006228241830897049212336104043480953804972608753761702287922119554394699902081906175452401084599483491608693940469944797674116588567286761072804944023322039150533584487885757360057220599234103247694332559048349618607969485002067063440965963202891479466243768651236847882724097763073898345436778787379707288707333044935149102916234618954036045832467262528693462870915948150950693136865105565443783302090701379499627443851996443203110502158373803762586738726597338571375770982445810577081376361026489201471983768350732362421750686379297211090330977971049340644578282307171093319498004414039876727672844011783626699988598045173988755878623755154138968340746738010796747386713644098651525948531593988032701354785080735243704072498746427081509562228546516834742561633284807882236762576472110789847139811963000150154275236401451338628775263012097111340217620830060444078651382567915695297768414679991043785320101282229559421974387347522038007250224561571267930400212049137634002367438419372374331753848510882939082800224655043817237826171573404312976487537905639047114326917319402251154798106560914632841563118039385242871053730379599189852607976280375424876047922095561331299940182183340572359266100176208289889340981123429824002700111585158136566927644367265312663908141816674621700538228741772674949406744677233180523224270419523362738567907935621221856328005328413380167989717966528845040243163476975444885690298392552766893428406411617724819550569847594212099355292717860002473103483927542445642215084529633364578596218819772933877094288421649525668181475103419477201559493363798133247370724700351405391669538439440186478279382363731412494252299681621634857141319666987678558524756920233879857551750127931255162463111745327694077821392280226835175161756160680863824004022627611271945213537729218574993153952651350546280033410035433319230454923946422787214497611114076186521725925973451205256788682451668634986939729161683751619359738779340493779294181835326750708535050038956592638876794512417997138722737055870650268698010810049857932902880259933077316556876071140102323389102325729235510992144557656962694926058255478098055278728623520151513001865793278850495010605144063808681105184936613797315849709349175771118206990146656389182477744441187433629277917368028834113251586064157943093432226923052851151305692359252014625048563743050635233443623124989105659384608006952554106805018063753962402245990382929613220479427489548374546941728747058750683039352091295441115926324988353457903233453819657829279670454635179586362235045246800336084341488089309707952648117465356027244293099366582456253197764952012638438808090409257421584860488542850665074710628261579959522968669306815526293828533346303465963125658642271920309282934580720468087047530157452579332631920867407665160565959438802399109014480402684804916907184616079976751069685466886361066132996678564216115474302084750453700016601687848244984777065616933864982207606515029728567453736841224410202527741126405685595623573596658275718553162679418569656905342919200906782522058064794852369631278506948271674923717073068469809766838223466141972292761136972397796069488531941638782233314463575611950057647706995206858590784110331669913640300538744386513841867033304373324970371306552879283029628791609184705460988653800516426794926697254338118169453209292080916070049642429806624756248590284638650107242908370916009764143903700484419823446745649968434813559651340120508530885421707534339328789746985895497740693978966413761758521686702807674873847489451327399291894798862615545453916401228585696278084991937469021284565716373891750080939829158216494554339749497234042518947698307199128476697854693332994194641686598356796489627218794148363200694613315560966581279398754859693790482971864616791820836147482790169977282541482415017967441488521831734347065127972980081171926612378670961548678078136949250031838111173475796841821117290428134352751358318418651817060086295674779891616648580313497121542794364468470683882391924574925312530108850957158619612703479176613925219338836261291780538514761051151649141558187477865202705380485484283490950037435220440472132315259692944712272184056063559816096799841687646405880107561206097072133995226636411019447033700900832496373835143872311214350028830272575783492417440200165572367985467886870633591973486418780234449456827825544013892171779646173592774681546547064552479448015626828450516410746661007037555333997995374465321435454979661485721601173112564800367967866462092743608862356921379230902464253071216921638209881517578230975160444802658484655971169381692989962925847184851631349958082986950652153803624220293025507872669947139041122417081625555908879882562539112980867517799864809671374910165693311866260819705635428220201863675321199735433804603184250745485052726460222910369578307352679618869663576967204632550684981880976686445833707378882046049082678023275042944389371686305794124169503809374941674681880745320498644685241157724934949696496078255071874046233359333121476482717684330639341867057567090401220461374437853196827972546341477058329335888874266104437217150495143484200779016554950431000706498750487762146554525726377101911241142721788576535624128557683107576641493240948461621339364893256712432491306199399480927293887433687538836324006348769131998553969803373934469254910881294753525804050987635308120798722499747782366858611524009782163732472044802618569305108784917398761599578059570208483040516606286019098080174304688497538305635803472288255215162230917878208253083333512235282147584886106305297972898520572269651722606186048347224012309622727491484441181019379433141913982997016268582461191550267089252024566807242220117840213491501779142900891095326875372174517189954006624109679778275523350723744029008028659201070941964148546105522095241899058319764208958594011321790175633921550724590404213176977732893143945494206334256054670424557776299160244764760968533868706434626731709673266219974052990994488955087360541545263066533598195492132649881082090224459188950405704597587703083947338230684160489122212688659354721900195373775302457733754994689702840352206412169395036898447394737953637072883859135699253979984303844764723747421656674933513904687938725675506417629852108070287624537925449822590518016179783599217830087046870242800550326142555970501690047012655945868635990530145531033993524388397628353567071735043810922776675543245164630649030537951662699659777534875532544759206852700174326979183960589983802835908156889198166095502305788246837519806000070986479187955297166331668778429012700794890801580574199134121223126508213043716581432208767396323701613219438151754785798711855689664286716053085861277514300766192972990384617688532868339527418428634869902305353327777793796806816835579812366407035077608403470722683539920901882696584939510211836860721082447040325372621907440167049497977093230925281505882504010074875076258458835119792650217850272795799745458825383267119737947370373014868746071084085330808968949722772057300449377711946742266435356993148458598451601030447290906811633759576407788052116476020090043729783720365639586957682940665529958684151622034146899547187011101047465067483643160875543950917563894797671383630469436825735055144598315502853807257393855457328732576154531845234204786850693125447201012826453710980824684923964384419888639333224410179720580543402376410404582461777116796259429799623991383693969661639248309452789707841102279904106385666062630262382520932280601067795724229230357436544603566173450736383365000477070805818654535000235131409013423736726892377731220502252614623618375949888303084443218600223344674249767080048138131332291548468575074541992308125118158449326644328534910135457874403838535422045161445877961443297434143666170309739868495403416914960462999894110670764998691461548531666168728429645821288288633512130330296038557003266184716973865920002985038437565218751984238591934262923001794586287933914054555420975706225522522798925229802005270513134402631174665102671992534960950548725798558553389880929552576086340916622952194059124744533188121514539840640066769034328804317889442879518887038933193925243155058911673892333866656405473367979058417221394568111237325525216856723292038488620109200603062048168440500712924905350784193785024292061359585217220885526467161349633898642088947807608785318975068486502842035311406720713311346754234431481141674910014578330480333893840627369646591674315302536823633552896512201575812594956066920239080054504661409539971226736085745227320189506498815047741487259217404593755756320476599495964044725883993695446279586924404570579220221086445982259572541886310414956775509460387436150097458001243892856066288257556320902414363989862429043469595737331290651683028526999157386751115550355249055108146201440948572817488245400359378618009248297325344535971211934460085218557798570767315707711196494993050142823295843433515390795192487068735209346281708808586481930398561815544045177803083249472600997243110422508269523110147293487617815214699680559009225919872191056117214553411574349376046231529776408771832667761448579125008913736438990557172808248578695429990582993969190750795713301944416744182620586273913843313453105384925947790138374901677809028549649046212797109283283704095646072759421942240713271671921448674840222170448160060082019489866059990615206579126624063035076446818616885588661299073077046104904095750597509059756988923782218088188943862491454201080817716123051169863980480687717654124963598654854559049053547582864133952546533710592376730758704188567877283207246448090959706138139481068536179992521082184654025471172682488875756147003687485789813432609785921111451164136618530957112131879497860529903351252092040928474498102805080910664495438924822220528307125457229051366385778694056329086495228733247807862764738317007652413128345496715895998508222035413158973444583754078439009883378807514748267327771989542112149923411082923102798873921699181035253021024434628645041500639047775601076992830917657501915679358572418676791564533816929382433678129642540273105548022610226729403247827560274144699402362515171086602653681490087156982935010398533071152541354631295325709645615314365520525835480296554097498904448349605247740195787372803498375900028404065156452725185867609236685970855752356943883769056774379666120711470210706095366309775976146873372653706264166534479560734162578995089421399623953986058080167770161390386268111575607283590989136963310843073425865869373269025414960736995472765935991537158347542499301041531570154171570525371707748524862879872212078722712085316515148870826695320206736120917851944129499210067174090176303894643893433333317936744741240267454628879077780393307196772356448562060877233053005968747687423170342801595062315210984129066762118862864694052269233158042391073028672977191682793969552641613685032656276104456383075284888277708853517887739999434867492128233813476093061263887780840481627496667521626623980463045282485936449778662203397604545934544638439302067116703358197670838206707303036808817499599770256194444490924105607522059998176439132622408088545981038844695997313039304793889910078969082055624823366215898848945574997980400251927325719099607868066754003733856712406856798034634815420154923592347641645518536551218137272157250999491464176359217205581740204859079714451012710479869594698714834125599386322948227549844225698981645122224604928595890330665594546815771650420160520694356080263783950027431700906630767477529618734567270670470603828014675116904268275617376494401904898266072837971673909409127363637892043058609230836468478070346382533832945732425473664827568095737614022670845414274427429666979383985484286230769912606749148138254202682912906499156265056806673149339230118300551739913573556981961086032743468838745352158271957437462956381561188918693212685854561784115306271504451285136973912332026489009597975121042229423205651397925845477133639162174126341387382431081489053679657637311370171992222286735879676543628126197364856897919431546207955474153909145432290120887070953247725028204358435523803038976176873784853119537808439045845187964881484811720433447757578644110960080666986851867980498765903198743754777311047290115835630551688120916405267620321603277044814620265650268824902577357862828858788323773179991223056237301378560817709270227615692382383459007126404552583398366982121540403253315289397494028797450541874259389769473577219427856089309474819723085439812081957608027238509317987808451519797153249846642903361520549668686498474496013869979976187393785374939679398625347101763667543790021014310919775671174690170568184922649971366926032899903723800699316051350854411874419770009587843205524391567251580719184526702868323678292681054694819307761885617615930654613377440645072151699006474317038218574096518498533478540688574156053749105501594658117962988004022658108144371533740798292625940590208320819918818800859282111390619954221592853026927326449838385113269414453617348269343176216929988358807691702748826082754110950342776662610766202681527499541456004334387248530100149252310564189589099794840208068148807839859722203059665861643178083613848257022529787370598008321705151235353424101055242487515093696712517567602627216897648812467205067940318383852015297246331480555645454331001291010463689064020527432025937245800118036608381647323498156605704423517414011079737501876594975212934063073708587888017303690851073104570514127694854627998403233399311761309019109339311247214774887148113731678187770403668098548107879363610522496662480433092446304693751447571075809788265330368552587143416330735907602899841179732213912363706405375470014443952064265592098219271039915839407973685044036192705408047132945443048216705833115126006710131279116026994749221524802345124745014765549001685990750611610795250851929058342330214370965237076958387602682502223212485151930867489892534477139652724592179737345958281480643698552818411761219291947199699538587510525120848994346526758872818792684540297225120310295207038308001317517634649699290285246667296393355695101511840255504088811038982850607104559737373733359895814544528420404565908733250596440749970670659371638378621180582007736170079046721425541131041077686525878655683612055451437221488873905931035847282098077660473100266038981022120227359527245169235423280040682968937035348268321570483513435466854445418629400896346878786942500420422389530957438519296160111694148670431869475745406239231873520359519747066616445643507210440669630290942977228600026515363760792083773919546332676378613254068331573195420543430434492461413101867377948036946608948068484773858010640841467205499357553486383354769498608130713684286333025702246446739121523749324296304321816300262996687298213755922126335183150914392375641221767066666882920142730040159124220648084697749669819871576718371059270750073759182336104402377511021112152345509266010880887345921683296074415111343301342720192916835961987201836749383282516301894531336846491328152128194326677917015169695464208554805861276240966453114045965422944539583789481070010198522668260173443247061443805983452944940165803875554579268973356801545906736518836515282442037346554305384775494395245353033101350162401560189985725555401295562829257006974558548294497189649687592864684049857682080645551399190554759431073577429705076022811632686181364679104012649720636373125022972194134742827696193821776117494115978024648466792183081615536534188098727571842455113408882771138877506593498701702577659603934970152582422847002113629221513180493081250148169182503846420107996432157989486762773382617357205523404425529471443010598391794164823735507464405094257831055222417818315717329295587593291218823493038494296018225746922610721850278924046973894647612664032037623995556798837596894577582809986202338186327015739109719166918863515433342098716653541808067062938794890452229366789108435251570719838006702892415092645780174234017623461914615257394561125739607260387908975894601949870503193751585171624002177859964389399452224084787468310686470632351393828903667708092264384640919647675148521158830192237610102537436680051158196134786215693922107226121146130846039709767810141584958866725773626675486768029932201831066767357693388550434925070379468998137188363561640350429050862423443404809431208563007980863204084085594347894357859769165176994960917847452379102760243029279274376949667092135975813357982610928015418171884649553961467263527396217495936033680033520327942906090621389199670721474926972259758927374667787617766187802325567114625828878326409960992606570903989450223584385054802468394383443861598997756340786834193928963847615053995144558581720557672448695923301984872574518094149769140328214178427865070313335946709887481144204859896545375390340333001609094164832036801863262251746753370736970638102376716102695534922501712431415764585970754892046950891815023962098040948319079158713847555218189791037339549433072625700111165781880308405572274990143743512505327249639264201519129694280448402371286220629183012273758227348774783985383273233217264392774459214361693840816011763500589546278086915248009338473131750774740358751041548871702260758314513304943573298300411227516898085563471216887084804217079833591471871324556085789610538095812937881805096169201826727177285270081963345782693151993166658542013633871515267556390418320676611099853349150303803602284378087324213759105048619561427202261251904032116189845992947912891358916378750697171187794817983018365089212546281292062212001942547573977703938107176296759543650347054357322548221279373458399527548562765165859259280829436154647310738559992566287689522896822327880672998276361031941706148052725245836097256146021137485902977177005279421032709039095297254406528398893371739098971950871566792678198978471666883004950758009999182168545756989972596498379748087955125861027271352155559140398947610614916244245022511142956290544276014597488763399518382373797735003756423548566929613074860281964323889911846316753376307854748411676746584837572023729506173784341348288576435488790111182544486988249037047159235150749248557873340726061945038559730304699300666111948021036260180465281588871519411033801033147057292507530264226255852117544958780628304369026977904208064932413849971824190871401098622775964375357976359752895817680727850427060130110122995918901868373946260853179740077258804578354604216046716129828616811306257232088540075338093413902104383311415603111750586304278694263712028338510612617835921051792534376009996727405642791060038207770414726379595088085540827009963886494909892294489226140621515657485610890067607355456296302911236608697777469613831177762810859085238467776700151640716249333665873236926613809102097977014603664713741717070835429931445336392489301099702936991078848719456724967634965046991003991463803924045810560737216052186294063835849659835909159020524291753459911636401343833518101952162947271626529908007172448951401113350656594622379020106583350400277326383636611473410932204660174422577049236675202033995779549235969940973992000763569515548974205784916855416943759913870980954586949482812471608484088449646352312320022800177827221618840580385049797453242692083443985895982772033056576298319893683434002913438012180542042260757076936662494411497940233009252911381387940624525546672673876198906338932735963549826093037000591596632571651907389225599361687779106492556556760392548433890855459874874791656065287636647678830573948580819025211475753687753244707928817670424449309810020056711240370869103495459812436874403840449970279610856619310713828171787759496421639152441658727604760227493287997248322615865117159022951736291674109733298463086927328961476351125224135921846542031642323883182185892756381724038145581054144363808203912708170299769808371873553865651777420576019332287265767684071160853861663237122539422434475541324184632805418998941976917601535838145467885222850595566819461222403154667920229375963616067556214626929534631977747851226316252207795661734252511280529107725030300882894552415656422096492721058727592641801860710916225988074988205017507524830653155788429233165777316873867603341667848023835815374996376898187879841125606809769139867519136285657568472973599041245988268621494423575704651688951452639822177932459821906898703494574004213305676472255483192217188312003385590284694037257616270132393344536552799434127929521940883769384409347896882079307092422586073509288967875145506829921848600434837272941262390699773536181653834769372974371229001194033279091287829683268546965315381177601270047326024870685456318766298484678551643585132639922489917733706815753645309605845392132354136980647691170721443648775905370313344877781510037527893871462499747568962334981636970658212695645614175989997464666301525583818403035487150222077195552503010581089509067641935322039593669694107029757043142211902382384443692787427569118993199046492645659007052510164586210754785467190242692588982044200647838691860695001799294890281665400743462056485120403587718937399521753625897375045527238522982316134036369312465547487047457564131150541886409243499989333496260282911030744854649051120136911745361735794893410128436352799783723940709668294347954184896312472451178864831240782670701225375267886278356824244590792824854944413772012430713486117668999395688937004563113683363754827838125749264194517639864874567716759062484528058800228774927348990569777515308957051976990072970309882510613980236208524399142683407508868544516189884046989621847258965816482557751655463030395062214657250084928761961331866461633746019186778817318164414174145127450020119216519606294940817108334513789401915091639523223250814500879010117650408177937471175416070264987815592017605856570867043686348417601625004994103368628158867046633584961605333731056915836651530150849174914098496580557882695637894393283418217368660621406660583316919837581884079882541931012210619715600926947004006396359365924425580898764955512959616824854130937042383840804920989807672989938640779609516862901565273718042406231431782742858746653837596474147259482591725830800176609425814391709829266181144984645455740381275372711775472531475100911804318290179609388444031758883537998840519846021574269525824502761374791217436486268876459123954034274121954761089362325863640107774590332377775709349237755175289637044992282318685647598366596020528393549786899133764216353111609883057167909164595138758857412013851300455593273902898026823511138274864558706654768243508792432971052573649696424455438610394526684019527849394588874298032644696010306071459130534659523468436029199347876663717711753296624192600422979390801037871428597049550237206320134485010138613541224352477025410250963252316271746296548534306255492111418361024427564314351563259587790731838674923083256947338256508925699244009332302906478320112386611785598070081310902294219352473298249852980762169466730045871747800373153814390741193023544277360417538257164172134655183426003753455822273395529229200205640079277493919931600629152360352074012701683257931324573741738241455741442069828195053598848915439310250562812025511119524520206600951294011184402760738506337022984243458202833272441052324384751849910500076335806411746655018547209188056388980740573390827684887187559832512354521370264636223632364824289312804347734589071643530946912223847014127549785734904467331832225976183124569939944678463809467502448993364701579473428588484292869590457513717510894891912540359386470824441826391249769869348840457870884195194184308010785629650546068686196547972703237157075356346710927444405674382104519795782278080618270737754464337893131243420953057935178281809841040486492441714613816140482684817578858576112981267002749688746743354049309825821494299037749300430880671738552703494440424345613873690798657368776925269097854369097628128925072198652014461833159521908611127416809375316603347787529418861300641053871429352551785207259415057832872545591833879947987602236143673612745141743240859795953443630032334045741099980659867674543134159997493335877801020661692337560288017732791375404825822328120005732593242502710307140229171928466424671107743554979282483675088446942099869111334944189880884582544404390574563906493039802694265853084821812899854726870559815104342218741492437763007943280585872493727108046233281160320316424825178878598180825081671562222600750315243395398809374603103921862444830672368845894581319571437932494247859162888492821216062015124970264267877500416270414114072349241422588052383966608184918400528787329139140801781640548413500073731778768161547284840823560140864342212958352701847128059811540442455152539459877042389258532311732065035839890361660777058222133917981821593504046998037915615458402868894168432315246034036700771668897335217370173211780410121774211584255993960247729276041015632671644880099499791693688792615402820861620320028274673244178918182875475869115060857985944956965832041736603405210123879976243293471309749449846257737544131370110191036400675636789401284598322155471729462253313168942259548398274015091525877391396563943934361526910249512344269972538012274602334486210768509469517118142943568343940496731391150797250438768950177116393235124767653470479875079411912674706780797780919037459702471916942726320497656806568681266082548195550052237375270491595910116955755520420932403239218827966668739468424699043750838274895011041793114846113300493423863745272184867888292696856763975951878635455025521839098713371765271780655962431024419244547311528191973238123505194170712687439351931086561703267880428984473984658912912897035336204513196929249102834392958609573283163920826057043293795677490603791708773696061597720065316778016927840383885724612180693766506908297271092585591662902627662161148700660989257513647220226800288632205400830212748267310376161900232054876349401324844211314124554926845104512292542304129317441322995079758029544550640324149084880427843608041563014782471622277350511006839948212600949840633246742979205292998574837778477442603659072063015551286530552270390481865094495200602541461961042261759543351328854208485680153534739583204075386271091061857668596135848641586717456655395412390214828117935859820532520014205080221384306328566495649695218323541180670383640685848618263150377202007191955774015054858011849716694671937539164128014126585011255476063723804281051750066629796277951710496173784288224669405580842262847666093800790671470475883064470391602276635381968309903572360356557458974200513578414670816005564707733815220756585928724754119457515804333198855042486792690796922512847856385652375297536624382385437390280036750517109182642901260374606890188093242546648441817900305409742639549860001500896613697222885358068264350026514311774531214665438884047427523571316996124505808698814600875091940541451877481626735518513657361309900786802553505751735954350488301902904370930130886117739106633733752602590085341309150097694658563848548694024938096616321436629008252139143698369566182327542637831255021890410172358892008601675088750820864250535670106291197994306745980891151163831683902402118242012986119527235614971773918398157417946605531831678359634973645250754953960006552146877226118273819586049100889397222756195025576759253165070516634403018036147864915739663984471213880798322961885982840482368633654140855924173394101397383961774544001655070344148838572385347799470952404089006163815831974291412818062517399627260040471743448833203021238953227877121677887882239660017432588307595130741155226459330010607538056975148644338632204035994781083605359729649570549483358554936589730993501812565754509971863636023159489003596190860782939415551648470305994183744736519483462208633839088005510754474295645322629996370903650719117503340593316623186865194666716473449949305143499579993216951245770592087565936390645895389288236776744721665667798383036474416248253341597198216000192324632384724268500321071935294175501209679195632767175068126690861361171611983988751714871419679761333176854782663699285802603968634211616710659148155621530627077611823475367938521451341685351411431636233520113152419892760296880197134581272202876656499475968432624875570717477269225277805787047027585077022103646130906952344467060058075759091612030150773822378819902424656076147109134790946979798263795251805392576802408951437565306851214861088346744306061094378380887890859769832465837211345045524842402094749984441800519126458126979529503724310054483296969998308749136801656205253494017822867377978930219992147236727738221772808405613320019836194266760712735662946737033737631732308249205644154237253038484014762004555509907391341841276707624752443736588481095725506713202797616870358435854944189265160966045883582735848021439998910364815908073741524614012737884382271848698899658533328644791510735289603377913542283345063874108884384518977717667671883581133094774761886742466069453224045245450714175636869402191645540868636011536734249525237062851066755069104272909406726449464003374101242554041743989747965881094266893721311407317433675525129939008198325618066587814685463572904849290150607802264831578093981513739923713288290473956427297439099339059819098825758054409817026558598914307652426087147774705866014097951715163116829457042140304240818074275739521424116775346225709339777090986544649087596009124716726292322294889358873916984232994667958988374341022788763073523926839452065184016798326250461371633728301870523529400560531563138475415869607693626569208395823331246395146631842260025817615299914618440265705552514045912036114185672957516077532311979561858817548328534949951577234910448957205299721789468929631693067510846744387987378869122148809776027033256287274325644616060912714901596943682787256359210538248917129357766128629534239366722488052471660627888169310628212804421726056324664363695683456421651683673296744614056536210310623959429824179800722197427293989938649216299243709539961937571807118414996352630931182062606230366620194293551679862802276040022277643633970833383422136015550424290704022567103144192555847563233818732015402224184624363285932118731421871131779420338005805809275996176362525673952871079130452823011756694288051024834983546960264872384965369568480092806944218157480020436519843126061405925093031675295062211962762505495710547164950532645056938230960789850710820313806546382802455399962300548926278575246700679915849460060982182351238632653865137419229220238652686202683562819850473195892943946225411316642962389735971162648738015855724470162395933621784774843947170964856388827218358901316707898396931095973583016799886948623794987613482308685306811291715228905202892794591199245088381713046826750857614622907140009775362053660542802502599419060720060559173058906323896029013695072710270632676755703947138049776338265911111565059313277253637813059748826740029822741586253546819736446525937825772340910268141022886832317580364032770783209037162080149484914370074400748799771414337089529065230437081911912911184816570803428014156148407259071240540106996381519175946497465913878721937849724054524759410575668690526490715312415532304281852109964279098228425633717055322005538258313328220280726455479527492772404310667659911061636070038179958563604629844107391731293333531874176173817779860543227956181021935717371592244332213714850357966732431591739023154596655264516666681483516033081169942060075160478873944209176744236346459605854008880708113714928020198269943048848945437544123745815647000641905304941185052034184762614817675471035342810142634354060710017774667232907643425569274755261211420997599334170152263670838263325607835753965080010180522629146486148443648340310425713543909915510183738732344429539126128942625077484349568140025441499597040203129310463134255795075359426014270562820667992488836904185628008379190105801955293313169515423717092818800231352930246375110383437946684821850671854277097593622868110699368590046905054256250263912648041679055003497945300727437398798713154962071302159370216186305412727845581098005682149717801580983763248918083610263710923464683727126062358065585013049699553035261608740817258817518416541312728780944100684537187610846731996392775396263404375222707573574677352276675281290643896651102682677872543579700184049368586417562064713159888935190109371455844614867170353397718666226714849093761462212651148827727590628039422498047591048784716669006393912341937301678675992391460147031264582574807285826796979023414323296813623417734158896727047727161610165529606353011012334829393039831071232464894183149792576891078319959641547895091910172902569123261150329649850341834269145548186132585446966133842990450415107590179044947296555535701702134355559364395646812291103167303287310641604107111685167749651106364066266132530583408797439262253177256403758593048664899164652386649628347695878103629423179558254631095762292093573240797593012450467107080410791379471948483710900866511584230244861093875384725985078959246287786207258238312452866047649569675201873223729933729645013667041676838015659063579409629264806731408718847769606410746255838962472726877617556922749590435067744023360726938955941080581924408781304556265815359269695896347560777989901190286721116270728317802650702222633836544853372081267805751292536491952911555474661208440230503243025045238413331524366473471793704552146124418218883173653844695770525601461487358976883867481928315414508172867290780786558083795508196474558674379839692529937364477716258435367848038415950219625858018112603668135226663571142640457532094571213695827008134018012828697948011414453105793840108878550968229349686135225569223434287304077719516954704246283063159033411142244738458712015808690665404098456789115385901277208831546637142875379184390309090276812165400349105120769768398076080764177707017892072910672823595005426797150647256917209858063166436009689124507301146067058631330915879734381334154112294843969006739325406663220262326114812381008682323668387495401865289213534400042940337539485897438143773847993456247234314519815042776287541268797618289774992119953594063882766060501445651967329558838268178615250502885707897674398217858328283371014545462365783649078336326899542568432211546847559406223240042734531440587196340628604072108797996506107882878152662334450900390551082382283758530959490945268317140906313924859627162186004529196510894116327999850366061229785209494152643808721750062316230719523294843880202433589014912889133765402224755599120476760509409921795353050015804842371042805425064196561885511095498733993902189097028971582126486201058291493388880275640084629913314840004028398489452743915472773110619461981140825497404824092746177078239613990107216143615358584991154343376053643473683662482197163239361996916826423347272780878112574074640839414200978734197890117521820298648720683075796124628501110167371351909090526326471877910520264554171635536756734712719959204696543476429478400356402489089623710948894169563786558792365893495097574951241736608029955055414185114427263522256091285122759943846877046014647732499072041630362715995231757137475213296347034852479968754031224447966801865886090185068224535829724683515665428697115517905312747938165303707344035801064413167458546954359896116493614247881885900639029220005789902310476521485926478591329577843424177817189356583519275067858438422960335289952354428346142375885015592658952812781444938789036254756874082502816401556947173899529879300894866465243132041046208253345053567693706315891352324803817437457695355492074218724686501957154737337477562746566835751915612493423175023256151437100900744926907841770226766861160659545316018740534803299278888668989999543384738738397194747664711254202069531658945629579204117640779613023866385184943738673475571899867325680939755948771969772204419678149405653151533203858417093057823122418846695083204775417662830961645027240905720600993358311879410978294531960230705614820016493565512305716215367833512851391779201250566521987488859717296780148425126645371066328148570052988372144897039975396496933851446227051781113965173919352804766353840427441958892274016808569733309494474257026954645535235770448236958727723338983344388810316357231621641029450697386207098473464417203005229782264520672148876287172181736436664653000735820961599889295975012958321870118086135362748664119747547954298061273023642255530036602167057580287714908063411665013910767610821236123544020726761933252548233838997593792562340530659223127766204246259570355968847632985201984266085671222630488207917317225226368990919588714960568291826467772855798545670004867791203091922929380222805095069265860721549502354327618667196025692487907800934119129243528932492650575298427328491796630214142167186370747776902468831096395994457540765034746083576236216867172821736336388433127975833733018762653933522634122786748764315070285407056142504989897842485435963424154637838295625003465154697759106684140190511146753308582925539732404466840054593947146514795570587319384793764134126035801822118481020926451565991975116931286411278799756957063631647579108177071180673359960355699545958670726264254490875975858455108615595251182134361272745213274430145553750013560506944671640750122085765433387527612209261681204813417137934291375470101711149382174271336202902512255578158314357726276572083403548026623830789292220271985344745052449636009109324816235923948765228608211162965085996913228227265573315976159837778974849791849212605037888700082520830254218940049198999402638231992312072219638336503027606868705282375586598389792733310825045810970639868861859657797868285439976442110779899597990483119379384737749710012093711585109650464096503160698359797832227477568060342022134474688325726408604379553343847219225918694987296798630394490498416006878591390179136780101331066324307569901319102317108712624705143324125472135035513776135060135685484944923522051600095685971566027864894403322289788627612911995870291150172863013346810679610711484767798269736703717872757493073659810343553766493726845054854665020550532326217300564191580024958406180078285386400482219264303847266152058638308787443560680942541459972526581880231211725189985746882268491425991963696650418261507408011968185197734609210189041743005891246910098948485183780464012723427357494267638269605287432263696334182756556300799254815687148094299546416607502480104397007524635318727835342657367790406965639282044278370980503899361742494482810997316169693997296291934830789913928225847924329550354004017168354826452484969145233018498288018605559733202809940890157576058283469233353920525531446881418442736332190747141670909958152683699651887832849459115222207787287312000818328376674956196937667605420097248207060844230588488551150247794607456943919870661587418709152701025419180361465783808327373592016013985678668445762815266864667532577870040054912267797816136166791804845677687253804780118702803550538352361128638574765435745243501446495681622595883592386139849920270265127944633378096556912301151736616752596030738178956923045525248302833967864025924644469435675404270113411583989686977177996295568115626935689639264181228364746313704373704097431959330777101196237759277450960129630001078306038255774039148926092121388638108648991920178988600684449866363594172837931015603948549906468782996711122602183646982565029787037574775787069417530375155553341206643088355013555123945391506684777974543229134205185983030246381573190833481414633437416993814519710826863886393217266616501082865847681313049431525556812136941372526615583848471897009754712783872591051780754788162362478076063970974669439272591925450103956014633907658196819312852102211976588303557687192078488971324445940118804379169875748421500056961187911221614732116881769992002510757149042791550909412856260317789971895653468472163212417800093730139623761290452186566241460844584355796135539079598877991344977778993145447357704018066392628579985605606274809931975063096939189804585589169334063961128862533135876303506236353156941608299491276627521281632832756405096595259985444182914894123884222473345781699315108509853222517078813895562862704343239242386568381559212299839004704667464213575951635541898813347812750341156003608967905989434752370999872148898797825431840241495071723098981828964122232073726976427629779939567603376182411946552634002254716086090694184388190716004780235315891911131315803336772182446270510958854240419894340644173316302617646357619153492642548631489929843569845805813824335756908989432188307145195741844150477879607461072302111743159015881023049083384320127859772680088872866771213804496838868540173720623173648408418384578614143819220231766377990133225899506288575461292092065650909894038523700791219735004175908031161321479692398856570167270908538611606377539281022783677889988273876005133398841881776009824877797144672948673406643543232880077819859366232791594715381171461952702745111793259706418931746101928140774842749808260615586721029081563043973902707422737383066306190728803981399766182763675684492487324759548042377431124952982523437353631265791290094241721724911490570916140103418713790534770402180118785184076490536429942141382042504828344000634114537782773246952182125429030292890174633795039599138943241903497297833566463307093098193725537337539396768148679628671995145191898096865713159514165382039070107910991036091987155873894513753988195381356368876192512742264220102285904590198096646588532075669606253563824384512588533064087643091328692442126679882991540037594895140711994055835704796322190708059909520545792052740528497767524835741775258339330112027828577568425055559885611397115238609684730981922981157534816261757238603130511861812568966401625844900149939726949811066953304291457016541876540287878256069811895620539257418528767148544433051720921645219389608261455767369406524458526317511860546976054430314562879257635920341934015525806999164659227166054552925464876753639764168986876634429701852835441527903488392487009058616374959170633866679233041058437970939387830709377574146021765258890979889732648487242887726571262829919219210499227262032933944865045982216895169060687657634539337993984923244490222040358913644957140663777687995024260906854222402238096334606749998124922106311481772399714101909552859875885878921128732652104502092687257684937494745363186388173977806833703586414135184381275704227566375946354193272833617162130244934540615282991483951865281906541956612920297555159808037660712241602239006750578882874211891607505906991244568574204155230950379670569760549174232628690495762116485922016539812154475139881547218649445036445449782544540216817156712065013341170581710868746165530515696441211372918308316071385681165538279449939017274506716940369625450087042822992203147776946359463647501708599037961512521213134289255704350871346578219238604739802072035092840963625958508940759330830482357762761657129412743972295221557635910755886274744141178185217446933636509241168452331700682036412786690283982108602939631298393086048726573614784419342649630153222209399384821676500389829971906022451486146111135955352988749959274861483828208070529975764391593317897432276270705605659152828436621048752839915692980468919839611191871824633145608843248753039183396538064316081628114348575214700291826397157175588077871980015398500630794820224162751686358925290474903098219947256708049392881598648431170178309941652001790516985824285691040904322744931047968418088068036150719598124335863161877746756206305669976188195069746214091195895418332625587661349673765221093243742273222489449701238459922234199603350425711314792562433607368411080662647939995315791978529388136016632323505061340100694114858917920236486823234201164668049651524242263154316501122058727823514014542783422997036286381530085680731284483093553766700179978693536615330719938337647050376139157725913712181932727499687173558478363773110518897291206935843808201638393382434806095102031085796071905220427704904848417696165968988613791577877876778017349814381136844286864736906809822805467203103379056228690929336429617041150049560747186220039773630920889579862807152246387625538980683262015812519751195468574386409151611682480309175312695919869997007531208621828799183787747894462188950427264812489868558314422665221391144288018381778793370297640339702696537517494188431806631218266616535630120541102760025982523518099244737329985465911965842280416346270303709125413401477710344815702137176818767510354351532938259419960757332415248509032258720763783544891990952786380884198166467201976207108381266235053008733962386637620082644371497980777652986052944063004967421363693660961961725348013552253042475464173453584254275122374312349532557602951693848622860544379179574707569466148859896197185066126809501472382745645472831656902999092828954016197259550210395836688161799289846520127317126230534996169448083804553194440226357449668290173585072624991328384546682418593693649922355462096804049556273472085693145049202424088924221755211581881181173570312491003767612493100624208972323772259748474971434397239601936791082556106706513416290030230278991193858120441331700971488036718872341319488771937246333274305742658014872194930656360441137326597754803867547916899817273518155924520335114788547179023761790220168349897944660321587576484910492314716011441810068126505090966280844156697521233700363977602394181316207426937408404358872348517942247150605191313243149172689667873940041449840465679418872228712675868631670633248474911397901600278118843711866373251421574762046539296492722771217341283114454317346522093138590113822840522228045800151166317029697608315844848983653638231858284246900499346053126825714807160740328803399196105533522678384599504954417969172131652166150294813583908473982191403708791426997822239173298188960153552350121169487953567122727212977747160118776824262046387776777576697236816724643879499293349206649375797980651944850017599280809187950782098909363455354664436736378364624225455318839660628544529799858771607401302541324320552338928762225758125311324363984655296054868669782607964186123894558705500590775031384407993068701994253306546336579257526015900577025776545143024841684495234182174507158490461758178755392316522269618593072535840814356608062096031389325689961768404898486074567312772267569782341059753974684777132135161455465296344548437657303841956518409703160874372430655990351739995889554530441235446121759511343198552198861604260353840659847685294791399936285402996571409830852288932448071167237777305819255695943065597206863637170643610206903003928931035920452549898545822067287955477166375029467904188896602455460912965153063701478700160526933487324553116546299740854895060391513400394782552628891334852916694097783142360587809849373185010503388965815164222708331510793927071848849535370239376579760211849948076525504397687913770891816257373844243353196843895045294275661085010635061919360508917664133550633792529750395935800937955517451659892520695260404620110036085283621265188333079822039983017605068440819598835756850239612196279481401238014029358007953844027559054535963531295332415234159525210989002571247564066234975085497263780519271334433348655825840154732106299309074384113393178494188240012904166335321824710402222689115198187595669799539792464133876866075672222824903852916510041646689937176154303506239075864307016172806921036988873958726176402801856749787052661751494771917608177618285770924252425554665506843027533736641373165793258276927864849533997882956943805642394107396750922653444161916475670595679217365495821592345990131516845428284979054686288608637670600582022109374722470726173682971975138974913679070550184383890236406809695159421573259675556912209516257078191485491930100391353717812886209107278163498124266877058958091368951048006499559916307367937932156546576110637502704837693263391122858907184648607061496711520101440403091226215662743640758716680811984775045433121126554017866462190955411796729853047103990190237621678991480960400160607695814452192093535544418451266236894167879515922364248794698543832245062407213673636822460874673652069330878021357710913245078629196150562811343404675170066909545094524465807663515955486245273581854189018899621164786568613132826112341244008270949191685952315267287967646298765856341156684964146916072517884689897032915956562335052902681547979582400969737998411667751570910390005013574617891594135994958339593699310354423483372571946195992604179262323198395044930868702840681958430955719415345345269477949901974427453421307694667766483895425272249274550677419893191543390626504719134586723394588430308530904746465412398062781939273577340884692501934006700713671874297832253368380379071304361611196599392175336939856986485965885789109136783529509537564718954778049406002857722329758365485611886489415619801436452382083542221842276079287942368224125974695246615335984133706340334983839363827876765699761403720438855755640439093379587428721101131651827291594031647202837742455930552566965590022992485891652297597467636481334150701314509611276191731990255356608691670305596767106873710086536958515356421930226030607364939751249754067286714460865940600224419970868961745527444591216423990630545103258617573220628526979529248471801632638379418005935791607394699930204941182251384631734876654865383974634586618190321063533875165730837715778523348927823441120581508498245564717227667341589956935695650075934240303369442261996210918093704455825493228472961215415106788128676514133006924548947540379197476519396330759208012310560247447145146392404892389817311725392656272879990629732858330230977109658440116167577701563452640479351400369115737770697886333646669393011612171530680794666133608116406569659435960996513109692426345006331300642787313084177740346711159939935666210675716615273628345088048694167054232099082634217008174210747124817829155638632987740246130149532045110926318723233796758745425690485049789711278949655424344867255571110046612782411329708419346879760376817224622979946002269298248766108223942539689546014935707162359853126178889646292538018978810803019318519979766230905163824586600223644208786306825169095066771739707439259154518832698972592036940703763982472650729913534968520404281507009117367339403648093184045964390245372776928412061047995203416025332682200836604549059599962802946542732656560763087914922342422209273929776821118127540158780119907260055329737941054513122863393852563549213115785184666825045322209890442383627437646405719626474681379581789869712325968449127927916614689709421630261830324098164668167633902727951895878281734284608421230030990984181374343240748550851858211868999666177908692285188287544876248213053501500726816543575463644682276513233583763150067523269030689369695232293966213852087971986999838935336831662218783005576795707117384252263958565028474115751292147611672149262714780464275922591630954124932407980896089344478400258104670257904419249984436074520645532485002696753594641420145597109880364992671605111726286867126743675675144868154040949289124356554409101592431919169057176457307613301021581543328660445513701820280796192033979837718811357934715679413635354262189378627620590397874274964663653525335436984491345266189843444354408035694136486675323056175927474741746593279582809766942647736037812920173525572830282986580279824475540506619471796847505520510743917320447560109857050536851189414173131736188033060396713475611402076614002234025561428056472020171199092608518977353202768393578434496988408815261642214359068283174745617913326348932755678975049024843560386667985569466113972358592374443304843935178262847788422192828012149073228032783102146686342772028429359503949554022742172504202060250033452287235550360392670367126655703393355658142024540602006125646113562942396150979728628432774866880154265091962834954185155571486736338791879284521329409291846390352178366360607243862583875455623645462782022136547731795076374505472178140124760179842031035784355740913292596834814885143835138050201762057515827154231725227354437391227091555040643678640964186395883147040911932566338504262560389283793348301624237087520175443132101855187295481730434802072595000593491945579535015184868953617917795362164642487305653131254589351321440252463963078666048087725798195057873118814358012350309615805709009753020812806808173300234114531394359916654770742656406791513402886747845470650299373948865258390175251050699884851073206633138737561597246997174797919663798828277103280933261564299461522923961762839825294103406634920190718627463477847936879159836608077679964470007783054238909438390640556062945938501879417499439185405398526113707286621180805958009897278001879584550763409835951315407841006773281970348541655124302885467848819950565235393787695119017513023082911126485642022923639885295300340798112695373482710661476991015832689431019876441700160100591718383563656153259517721650277328481270698532579490795693503722352468325755454408171786129773842771271550069682744232080494899700060521648162693280830987178289461322397074360187320015500289511474557640191225013870198238981371999831515525469343560103109678545949857270445117280916103134853852297043386880737817103990811537029777762430311559259569661399843126713373543597771642172681354792081779643248971326833638795377944536526397517606026891538897146775699212414661124236475324462940306549072128184675082985167500117346316241666842207910553995273487065280847516492980226962069810078228824470569475979157562809201106706969609550742977318090068696188203664076336711779912365799570538273276824421559680948807529345129215171416561836083204550405805390458472305078841320922436324343033897236379989370177494390380920114652960243090288612170901771035238526609913392285870257346999148797743257898869166441593909962685131647026585921225156413403834206498653250060541582733287742174512957298277761538055098643481747132695683766410551842607689108097079831587886889583509824872271500562969665323994192731876169541407467334787860843691413542864769080883081422253070531748936348789494015138780630951901114825649254466713243450414008748081139797988703486480131164193836884002530711226205529054391876202084547583133956776001442941397485289959362335445979847996620651588787308115605359419486541811811810412600634834293672470925526093868819902323661700907830309318368416020266164840288399126684076454175421439362371141615886411619897997181130828569427030208243372066916047726560452502170690732063023186607135894211343512388298328694637501311796895097103410543682219866988764930593378262741312319038071476942274227316759108758773015415762205166611940958438267210851718621645607058571824178690380428402355822529527556289281227620027987045024280882919785304617645261590484525298449597592909725924000333370654044392862459857806210553651398647907903287812990404228871446205546448362697424488567771008269325737535032262432575830171325900887853880641917224617459821496084268732880727722289201434210089531523935064728144804590045492439800187010186497301097996825434099451636158362257024786104762022162524717550345549860435519477812183915647005199595400099328571825263021231933232858364397597811094546357061469184874798516051509724552580888818986848994674826833146633976036203773086476354574636772465342567577070584944928536165837480355550330186549467945601351717364021755912521658035071528443259058253636065257580409843997786329694952600690387342775694066217423339939935782300376197777391128807070491796593955747913291777287554566886597641901085694913994118187927580751554296819820145112028362663670749503647946729833807656480233426221690596394736008894399906435781992207208794702246203152710027607410466404350741793751531373230977691246027699288948735214059388728646000286149178123496165228445563439523410459159903943258226276797606169340267304855323687076856864212263431020533603407424705278245152239771185155070842449505206471714042407196709558795448266044961486121893487147199231293085030356676801983735452572752876196738909859752566297526254088785316077706499172990626680852390662853322761196503898090032521218712898048582104406488734109181285102418958121609146768251848292121503490368908926675336481515304661245207320459173518111135155351383339609313955199802619239288114637736553202135257474780712232366116321233983046225681362399813945305467104302396466516280958621703541438250348789430385424350729555789327074771396157895456858305969395839515097870069477894453872098470327229211023238726350147548423306103672905424863330468406000912737954986187143958095915765577317165810125102045508144134512424416587579053218691929264544046144412137755517488169110528694966865077262728058221300076098889339950018827560843993407908954543213967448742925860090114417005040717620105368752800527521520798281419966842799902981712414573453559389202389875558150894955805862330934410284946334643773225269124566896065165565707421843916027060122088042962441403379624446517568270494852089793722359603251980002802471982704668379367873460942372327897703676989193260354850297616626649524768436890255695057401837650151689975964482553602084385584865035907219391206753782615984621928340736595581325442968102387339522107556258118641062990295505296511924004393905764280714621021573467696263554024953107915044817054366575602460246175519639685025382478152791255288374991314767187203964678068150530568157458015212267031988123484775824822502461924402798581932771511863333550387795092544942151621281398786913709817369877408135993934059800345930864528988796638554215146734403979583984701163530346523992639722726384692895377895437925174675996936527966265291296323408280671545392431316570942768954567637021130172871835755709331583173216732566849710375923557434811111571612603028579683697683050564700044729684171449515201288850042638610483438528018250813983117359011727120887354921695284426901784487709228861194814321482174293409803060341266193631324029863882073560230969501502272477925504092503707833573893355516630406062416658404375267685126144042434478087614944354911979899572586150882555969762315198704762488480198740978831013522528503887239239358939137164495993479661036022655485244307889824625782711038724578499511103866150254941110114842437700196480978500934195045815537390213449125336223408309809481232408780993232637104551059912821385725224014601640510538061494226698686905134399920968247107674937414389862286742585164978491213118570247706247196282932122336748143024957372036989002255723083262241950854245613435384605928311729522590696509977362770590971141383609118864593765272276922540762355096643119795796166443000602549009925678214031450768285036474280749611527351086675126262911788627286259784286689571409695841594633829019282603962526533787363640452044231879704055904299970807798593259292399233034508020216189520420775647895589403271011154163263855387338410036941951288139893365874359323308510338244109956625643910076204188972622339119689785642077015665400653317464013187343703907787473629535931257108314276805238124247138626339156990930485368963736929991688366643754357102871487724689156901116674630157028112523927605259958749196771644441169304294657981958101708829759282134483947166015767832238680202509517995982129547826399754104022313382441212814449793764462566715241147951709870050444137440314183674843976952172067254781849069246495312912691868053684419509576376984025150600257377754479849767011336714586331219228179165510889600405410665096840862228946104703509079318047614030156151706346701975260489881674945442988049549865383204890881802952023636661254026950172120753644957521532857579046813787032252211388976627216936409033820678458486213126913991318639428818177358237004214744507394831681917485471678480757630388173186824111163893291408048755860476795404331667452713345616478808115169130631206615991863434645172319326555856588066879625705689300954676758668311376503217209661339321688506577396905369744022572526581629183990733003798802095886574005267724498533121724957140094739483478740257795437141740863743664042901245478013199802386482511981595408952324560859506210766453920013120601611133162381172445750115848404956257823958947167774331864998812861406082873692088047079069204200087429382350673261236567110603678875802069149400848274683365567108111973910119401609312331512197877981933594161258400796094215778361716803388048979593676260196878634771650503369589576380623894030666464893825185062437265722286839975720857468376147693736109209394784315843397334505975334024369305922958935977070494043022691744348989116006955036889523441153389410448768629096832739512823089601086229166634718686796078356211159599270178674550211655351074884393125009549382060005057729987720528882079664494569252016426635227465542935747994841620987180807752930821459603247514833752225083262129644261596537692466444663743114932224329185423816689859641398423408838803371245375270628039359494510195520028375297097680024713499971229619951984927277601338018551664635127827193800189458328877237344249840356953403191494115292531560528103381236371298897765734915392282172151908909431534501768701304118012059626144688565737086015271877131613619267646304634241922741495263696228089815430696759688070215002830387282826032393028442531167592899693997247970502423515322226993385251698643800000289595675597610387519884478814374055458522991539210736674556189713304176963367498253356195524701477952059565176334613491744700028685005560282702063231057111822839761980862659373869442571793036158362801767533818394034535966085936821169749539241620948918801661372976309000933418605313577007477642349537248504405127790582955740473793731167601569867110532645989791120982643638179037026315260952060300411802166479464354048309429472954557270591271569704802180801548592881465690998656573471535917281784778922547270012998227314867469228240863379615097020941867586189790805256413367689744961278563581580035165626739994635575908555545908993097819994768761952729391689120155843425490250692797078080982632071053923256549945193708533891934651120035877601234092358627088285187764794986721569289482482589380586445362119883530882437964805850850850049270825690468010554503601479159237571797769456609767135559901222247233958040371292663738829863887240013563723684853408958113601525278032211143705238097648655166320078779882662228160109705038956848503945616967857213766273307854411034003236686339443810639275862830625808553991615468937457380488545498515048572955850792449937822839350943883895357184222474490716346373011573566931210289780641643229685173176372126137783268916135821049317863560989926070898810353187997068386609144013654490677849329932169056024819194729203643752964758709024562761340374305410122381454927758050372981258359996122775425098964579497621873298932991546038171327196990829918035697457875796675312437079763250791981541300346597115195410016592442328516373971655283088466562622308909204150824734669314246069144297463659256141204427752804318799410864950598168333094474379982189774547589497178220893997104756608985211092021795357852893646904803456318666002193038491506489910025400315520983367559368526400087153100943058059367779330746143681531780110497990632048577527171965052688102556721411457373748485396961752550085093823410771121535547533165132816528370268528139674231350597928027938582289931557786215993743549195471901079543536020105552888970275446804304115469686816806648653291178666264470053877212906252084233078258622035462087395513304360158216742109440878660042337797151245272898541106831449516805471510182834975271041939437132008390331549349898672660691741982421618290080713962388042228679051734801850663859234762045367093538029915052676297890459614365090295234566269743810872093934985253977452057764421744591404195057472558392969730900764477122530866251522396696639745970394946676248529676514435526842440050302266593607610675292947592596033077970654590271446223836681359348438310483349205065341943121047182905360808823864001495476116104432826356904488246701284289876730943774619315029029295855288654576654832300312042520392445701322408915831398966212542059585124834192841570724054334880383538007056332428421002051253941955411319184316323701627544726754247685368143494016383703431126818252818695077979596459551276918516675400185701064362752779280006543857565742437835007905917859519056285770878424412852789446705610028405014384785038536340594203925238054914749663444850158942259283039635201787540976298357789499268964573889893895768771339646950261050274553957824596662333606691922366394621393855572789696207774392008512170809267063524911132569020821200391976514342877395742963172513793457772456893339953907674455763016637179587192963759213860168897001626849718922077920908758396782843109367222104945713787453616709754442156506735968889214852731456193408709351617798642810059245787562856153550238344365322956978588644600698706759226561725926413057401296286166576402778896130078157282245257920258472106746391207757031682458917409732595042784543303898940445376077024344299423564131660250734948258052475629589288791653659436662153174981756912487231957738828987822548462456948920740223760008051428434211356446435279038171241437879301870890526660925850652541421538863961795818519930150346942245177835268626879804963401833434070867135562799598436011617637717099056452096277718747585755243670750886918779872800995225902092627556618376452619563171551694628694662007801773481494435473618780819370040930140373140346536259311934489214206073209564460516759302516350418512917750919327853804340205031771029115356735246514952935175333611027605256666392050980701039148270060037746715331259632250584341201705465024780321623089396218108823774423565739263333024944859934029546562511926765884836531146652449170296700307044678143799565031023686711778910452796376104316462689063727225818261779295412007181848816424957584554085244633380782712875540308793815073014256391043931615810415643133269863562220871328363734274928866906665327265967734559101887166222371980576307949727784531865397296138311107638967648072205070243862471233001311605773544707912435523558795337214608554247703321990370712073515207113802561674324598342703976852435535025798986822174294837381128880140333244674612376209214668059454643792783108617812482843713588295126862478477982818459756228470266219305671422016384459405267975824011045000060077351007933183232187469179557442834861374416336534938178126856704256314226162650727634452126415544011383650708913402252183010361584225410223244774100332932789332601073372529827895312859498510153225478100103542418211295328830139259532945417360778343711837963013323533679367890560640929499711522647340633298164095449886105527338192509878349454619351789473516083290900442195254442784184832177341276867713057365851444210925262149619160456816553806834865712753805247949993170984713580004472329867184545040028067723452315929880193900694203712270325900599180338240292849364321481830498930878895292148591589731460756631482389611844202289125614048167442819028023392547044187399639899337864193583160429007664315893451069338970705273425413301518960636700419932737946908779560393353347060780895756971586663345251034595791496048293517465111927320243286923911614960671852252867404587672132560150234531231160928226708442793749883357373032461598419548537894881278987177737049438419243819558604990034214322457488428621301441801289131706411441759359380359535307027979780115253351362354795073637036585619693416893331958818661921829342027755667173696904474073260888871975957310703622118868782413210443195912095852846684525030650705506038617810641524133025341839678510678054744380456143934008803206279065468387223480227092494612969377666093274975063099816106452344217446913183529443511132710706503828747347486360429986327634962568181437821356919233768373027350685939050681374795765255986410666458653218609792238882097553542866386238244843165074800748229465885161427988694018872612358711140749787467463799547380811562328347413285411219011497131457773661240062255898664369101962979249716137821607741845669846571973430230850926704627168765893099856758519113140188446522868564594273235335745591874096433664097547711524925583433106123684342035351659580403534330602967287047277650769140302809000181980294094893024594072357261085297879568066624975115266988916806105384767564823090197598998118796242648196585797238686671868893931377703564426042908089787232412226364245400755255351204790785111496081237723331021421337159009957522015334970789853828797738653518932703256156871790823172184151688678913105176571520570743567144835499853510020221143178123345138597659764585738426733347595383268832731084273438076519507318791939754819155777898933796498351362023836114682875944024233204000599687767787625109765255046185463395408206913425780392708864207680455881229234113277983219701409781694047892185305275173100387469875044720288341919444957635468406074018333350139562722788556620062285907066467374358404149462881324583211864031275565969085594998110915819128176821924524620143324538608058544517475296497008247170037220288605644993438586000619875189956701057226133097852344117900514620044014008780245171401902378572733917141017892950134165674635174474051710957632156916304820521792011816368741204229893251169778151154101614696026426711257672188033369605977038150962646036764016591637313151390839689223139223948082636555923852846612462994091219037235688928136822241209170934903522982187842713495887237974034080649429295441868671756291495151695921374345040666325553422558521599566239879216468519732746297570496600930091310121748013622279728283486490954102804110049936485057460316564384000484673435779686788860894087266497668412929964832191000624565676852249784530982956562767894324737285911853430742670216759705744297658435623574166012451711122004416821607598922673376295772768965946303405231407672028543850966138668283997399753563145417227033114081513610035211716052400763095089243357827047438611049675833751506871495217465762042329819236845173529242594288989135222520451174146866289883466031186784136606175513200942669848173939008391966489296156974228153780494815888117457344627424402861096642863270950797661566847260480730343162116299127387244230157205445632196275211264866799362175258962286487140635464641418380629563459621336829336966073230771390567634773451956993124972286973176512879764589307414124377466896890509510313124484834062581726592064158982680677122446765035525021175729000638647331783172102335101420389464908584113072358231065618383109740915298413319729528241828158709907869651386896602207889945366351677102322919044818427552382944291138230683482792262140361138072118548255804764800275769875086973462456000260218780594517828724707184734297564932639815197924506284542416342809106096172406980457961826054918019687564644213550226859027103197354101026703347546964437697839950985665921952571055138181945939471120841201708311361882862877689476975173611967924848617898087992555416594586855070802042375765299913058865409106463174323301250238791535505547437328661737547569664221885120089662760667234553349336775649771300281414976811752963174735677240636531767188323489455066356216316190156603064159973168936609039616658825414816075126503578464230467544283839814614610843668772723430428136826502346538120801489804517313331428547457425205153131603023892772119025832894321591471935166144199086737356298116447949950649449889427764281277287000964243963122219111726469470630278555700580042752671649903138285409250268261355723976277416869054949534107115545226588322073249466756179617060287589158246875187334803846292764618693697414811443734075685823543791954188660933964328644225310027091364510583401767064135963534728847769941263807689903135262851258947142393632429885614469676944690922850103195897034908828017246330464877496242203336859139324363412121817297639130231873854124240226995055838194066074118743872954150694235425653956704635121908027649622133037838295929135322427131102678222090815393400796045042171145861776277685046718246749592239136920164680082274352348346948329534688343034417811664523359344048341494148130412663872897012606381302946244453306945466181398637045326546128914874900870215450023310711318284286250865069305314529891395821466289389337326755602399822703256022728571404613431741773961254104000072075714157106121646030850994214021351388704615665176353593249197034475369947730569603233290352985542388891591434997590801076163633505640370905689202126186170575442737468994450634313072686460503328447218984815822380721704925117767061280737008584779131489722815832585743843962169157516454003095241497446405544517200787839456778909579697641195384297463359787988775692687787510485771723902004657189552511147062122537072507361227477272030624906793435175684182921936373944921630946616075449692563800357332511375912524581511207705937320917323718055508056342023198284285296835799289087709102841975182168616994272372450102873477518763502381101645556673919544274995113764500356798138177911625149660639068527271286057354841511286423720892521913699948794380681759756521806925775224004860411206729172455260679709008489674469564803566193918111797788789542418072299099279418192671141223177256898836342520307597663511869959642340942822700200568233391342073828371888254934358036580844831669979392625670781603328920561162879003906362794305423321956829553126465276275333451249466976747703307700294308359962896920683959370649177452149679373516622804609230944522531365968587844909327800259296504880811613773924480629110286819537245345419747264870934862618262069048907087175937060027869012572263736549179419583202344921026949065151281207371132075108406639376752688370384668987986887827582087358686393415657497903784474993496253363393286493396268928943269539731268316453444271838357686729166398365634173569983637798026058217011219598083649411853321609852193110695681958923527764374748233072901239828257599957274624166467356150459024359826687985040841658386717518047872703894922203514773643473997703607434682285750311276642931890361613887536217225398431089860047315391360206007777236214002300808696158886956837009291632701184561699879556880035283465405210080284471499528508033459430096356750559821110999265353193288070850143693738820347397099102976730806326361566223420419666716419803113213886348749128444757810229944862194427538727262982441936899819229646024375442743423705084462487499714414062222935695927164089446026532448912092748783415975287965645315193716809838229780920696247282267061691510881968122500404233333088800941095585094866638672294957306676636675032086462138005565736933833733422182746068428398758778128758084917075364581254646588425177666756656408224806617625939412146478110568038718191429588086992849052331446844301385721773890080911158410134511718017474482372546818161516948391543523904903261069047838798845836028196065188719343677810051276373355315133613159415907909371381154915092699755304578213055255100135728856712763988866040747003886859218827623588473329434435649364181235442159730329545202623360671893368169232938937072543327519986485184834870827146573184586202835601578573649123447387833427516970660205288965842974892473459365332607842582608627697151045528794614454832253106635256958791366690524390898277287351161445959090724376611188190184482154689172436904383596748148275239043463132986115761940785156509177570312533196290614712677315241506090057993965150814439676152452551920939506126670882129269107462840886695910800418618777976966021366819854842811129863386103490947195609455202578504768798340316665763874264065387028025597704795735585486248198306731924987036409150477493650216702570377098362636630562240602344055496462528633934910350056824042387287568071356806865104247742287981572115803877066732122968059559145782302544748716522787706234827375486789999617424558229597630327713190222368644416618700629734179860509318448199391948189865157950321207852014991452850046049310275992372719620661452327605176544405704526281798371290110006776205452796797746390856802839683180430128629537716612133066868790911690662703263807687505250275199121432220007165793820676886821050194973541366759555899507321853458098757303945216238242616024717331975951282231320770880487143575530129628800899662061983180593366960399917038235874124742287773050755057359278363362216567864189363380221737801361271634711808722571388672542560944606193258260709143858359466190287912337922715595574182669588015241905230905306235119765215393367063412118607457903162404319054909514036450976745062467108108220521192738353622161923415522794748831660353811318678683830523907746216699723066404902222286139587041306415659933499559772643314253066467721170822539652321674249556935393354002514683700680920379770442658544286795278391553513112854734866743251551109533852126712710906472990411387719109532536505512878987163792307746116495072952149425003490470861457749742670586872864086037694392540557065815235908199706000015221755978755277416525984379810155778551525294885484178566377165138799185525088184793054793630263938087213416259538657664913280702786199975529259648790757994033692921650469702788315469334336483145130638398391885242351558999690236855597169268579057630359768102706214609044725354855115269382436445654819149856191361489806566593173747187081372315611480753197689095706979292338883356165544716994334368472725738483118542580526926588787110744774684223250900750447019557782108588827695566709575615715034617896473637243332238694596415395023949507359190574521564358855487768341690268885756639087497883553128787382604290415042783717190666822153401556939230883215713487404051673475735570269184609503823303314892783741863306900932827021170316451595088524124840104290300056857898891563264698439733320752304310412886605843522629751758914248185778122897649374853967068694792871202226892698884926030416343223035179674541643115351274937015605019292745165700144982563766937560215724694113268146492859369062597962492049153847768920162641145130541746563924190106475652292775318469865466935602854606429280963530840725628492638836945787920627545245935348733405093325396119640463270794312392465642831863453870144951682518540257105018073216422199679523651991753435103755447499677782601086318018368594513249674491188162969204833402859012816756298259069664271248888835927014901787121284876033613803937674398608633157389455340686628552172215778858984104297012402383553139004584192492431656108566672664897776597203095193373429608197722984215766615897525170419344201867600578294162998967315544878917228583892725898569961194517881944805249351435712004363687945729384231394864984780086594131878487292470554472190325778284395063872418566365493686129526463321124245889085528161783801817021580697438592173915073912337528920539298242589493027571872876859787544437144136062903283195090361962516292812688667997532303156674126682204009646446232440034506058604544579079941004919350182081124508894350336557489849617611327345544423840512363655145745222481092325122079484566985698042913498255413262623219829780992817387053334497321118282853350767216979140132169152328633854164363113506542007143662924743212618000447492667225371242717397459668269947066920247598239169315796721644950000530820426858503403533996115267819502540559242708268997131772579764755642794151650593505501938593118500656692782397770916222769483441756156245064618417989099742394168792544174733627554601588736262752800999153690649607948989201118751418078594135085520616939262489202997530188223544718731613324290593794509685924786973625302229269119894581749350449364016962130059494460977279666219177136995398859909101702422178584087947992541276047812250476696339353892948552211244524209752178228322353972554226214898246136818503094240325386093289829135123747443601469219091713284441459465580168161530215097244589507775714539236311976466653874872073234888868107137660298738152730206540733796826179525342809840810466175634509060088177894876665513879232350102544508325055683045949245606481721140388765716760513208146786198764974523170132487294472126827895786892059560078272049042516928140320045232815242775916855206978986837097832410478068639233333433726498698973735825275633407253502311135171148591586052795121940572246518638922839558770774216564960863770508587833839726338432012399763553072155476859804993246156046971882411720766202765239893893417870601474572303011617903042092704469446231382947345350544170162123820419424051924937606951170971908664306688527210767990678195215116583042635917420441964694251696197333339835486258496054807099435362398946940608317389549471514751422414905413907822303437992965014906377699705203535019500131637698830214909602482487855976813154884687598988954298301973740675797029136707930142531969844049160353760237215703854334672997415057068314583571952412768673299490265961688336345149965674071555067629201448862821406152144818967213135134968240999303177089895545318282245341398460199863480026126922118235604775241738985345873512621464049134217917998502134099972488146191193125942693896719556105951705721448134806390969452208722601028876927439382877526217708860248922232655779432853654505900246477296491306693900388484481579309354895125956489515181222679685660096315757609839585958089337524184317936772412367488970626453373878274917724603112586082449886161540795604212723161745719940870873429156802099403221168768622550621327922604900439693957251076902385314290464528153274646306011041451486522631576506757813769794457578425067430643150732855353064827760812810926895611094145848962276726684067225889929713017833024449164864876892748130666539087944823657183684414045068362223680309817690891966806483214947254047441110737759158606815562027183385582559046353369086819921367460799498551435879402728964320108012019294270021364449320602421790438299815591357611773157437577800343441291644424766543688398111354971728157087134973675345731777162972846476218518874136347285718446001022647921564122524906974568317646312809368604637826652346286891069676498292931621871657711124690023707497783834615673120410050557153113106732938913029392742091356845826662664470723738436711889161290266007696851013333105339920999133859569496284140833376177185576847807843146914758739135658965071700598521074963980224401552000828425731186311198822898639668874674849944703725889207821560769977190816059668621060882044109054261673565645744718021052866692442145197051741012209557110924241129813289639995588339636570021618167988813200942576502758590068944800151015970981928744543386424625771356869882698241638120886526592877524039059079602136158261563182075854656318597715617275145368039817516978076541674626561100614994631881202311439423649126786120182756120808358268974340911906022400634108719863980967566191490222826926705980994533736848266012675635144151888751615022278582568213326131077408291648625438529328118649932176608766999649679737185983135066025480982108895796941550568688285570228306967035793173189051459635599744137688827357045211367714865462471132088612698494386329815859149723329081261260955740266263033611815769209800122971968104069968603120107989281420036650855934329007557021848140719384612832301654575430433081120384269025267083708683732400834860639500492291515186227772856551864282090258547159538109890457986476086885709757610442902143386896920826904233041487057871116828688259506852744611605875035641626313008324930880833025299400952149422408363972909275220541063815531412985156202362660071258477071075978390015072651907185595226423160923336992279993240619282842748699760630120533774869060648951943647586550631000042394994782999951485869841932122674255966092035521424510121428051373563628473354357116905550324732388103176813429465688880368081968687651414842794976868210905020480605993161080187119550043622452600581866621302179596006498410480272628987176398981566031331503762063527832208735517210252783756808021847318336545538306395261389548407981094300028783154816366958292018861141225957983175067541447706517014856091026557696223829765707638416887529049263081665118918369501450016463294136546254787558102066514753549094012236508892340872764563369860501877960032405820668310267605274057977377209887769958174592056578099998571053918557649402868904100696003070538335893342967787169229357424150460958155335325100634216477910566736087920499092397436021292725708202216824335127713153959163099152335945820839628101568964089145615792463617944211112455075827212795026939031178237489064884116110767327769654944367941297845572648312220970039494228990818841694874550598028685720687144021873382514799313120096859919434261857028184070818124146774045164102264287457576216235230147088779015353979594694783515907272159271449148760255002906971160320625552024829714064330308839379816092480822936512164116421165118855590588033637484572118866295124766380418168445632789414873458923720697854283095851632399377708106223072843280233595274831648505598339474832932810599731706502612700192824203177328135036727532827021623460009341588805726023844555512266084102169113088199667697963798768586214462901491473519040197633665471216310545730386254164195120721115904660021656256954803741032896120738018600025641622774472326791335614998912167653122747231015014637070509688688742079752301657705848141225450471090728059511390854158032083724734443394436932424102469526049978213013843604782515379826083336468961755830546361576604633732736109936192252947390263047360676568904761298939013076691876930902594515201346895876008606089718833140470969306127237964946236903046345300099218260977902121484636631691321759419703348568973698625265264328697248022608729537576219000824348504352418562679319580411838219501990779015864932240777423357872694079041019731314632272869245345981516023138220602045178771266511771325950329747556006383993607456225225641670073020316066954766064128140282031521351535602775934105616510338336252012371061323613274088037136238464870346791436658977947058940364138492758035688319297184348256540546248194462479182360886795565591627355861047251833625788538151140839216847318583713598169816585077484013640688552134595785075463858449863749673193646243512728295159541748036278428871357930649993089486624131173358539674941063628305298383828343991148458956324255033083247710762048796724368753914606055064532603684387924700013061864707977272482641684833220572513900075176557943531602879268750555861791596362381757273234119608938572806893546154129209803434867694112654569916069894950912948529966298307805818898647099943083718580352651325510159155814628161831872112345518739760974505402861561844496058474465133981924812324402057215381386348157773040293914176804195265011163725790755352306560108620174862427437771638360405688423394398196441329339781018898300887855999916973343768758009573941368594414745455532825630016613282396901178903319989922509851031864631332922731234915440791706000932619190104094792046918268268873325179574040122681784824167808688717022354410955525038655566714522392690522502544362674761906374692604310466637367895241164492449652162475115352586571188809017768805016035250054230641840244400832591826275736388018080884470913306891786776433726087251282401649730905498529493139310696416079111210345562204321112160416256707484073852839591445605745659007342675355211780325644770804126221577102972028500273626450459642069569724885737696831445562059377443870435222143496981503283736494225396526448487084328911851095960227120804609426382201805232703460499076438784815594170732389526301542958108308432161809409583653059700774960760561729172625691717991606273779926070364002334512023321333535353149749801430782325085510300687326805794939878583936650175455060238800835402481820750296578140061728175322626599967565582355630896828263562929836929532298324649737197659491869560122555867786601678876928257187515293527476732035217622572349996839290555203454936087955544179299381397711988300459370661750178050188819600644579354018762192058736214122669365749222018888355231697216923775258435355966704110071637215975672954050120913358753346848108610773434854227705183060729856554584160472125607354812556995980943735489243412627766482024877222306066231108545543738005613518423513968525974018689221276745886248623859390133761315820017020825487057287801923732646644977647638144869191231690263952512898835569527514731437603472762797701871539270035869855260851014139192128844181940420654075550829600427562752542853701609180634181163308965838977527806043348972481166663074657850763103435220505119182092838533580078424241102584612759499976486782505771338196305571803741864616117525344440700371486993430249012544370477686692937154484103608604115527322603159610206693250720976460518402894568538023640496697843958017848653969108093120811660037703654622825302570519607902370753549372351376359045934050390106810391116791503847956053247320420981840923405285617714212543508528868815604912949603357376261478464926851279655379588993767986534050277310382723600242719816442712394230303910375952773104268113921631112209473267747920188852176802248290092292356587750920559151821105932011970768834761624199050378574385105624143678822335260495277941857869365709567242304474549126576264670223584079096659467800679485797736922087380417098240020015742557574521136596868957667823735071910773641014034502660994369311290904638758321848106288253072223843974227199884174673311855175639128573341905711901248216905341955935053877118268935035034984765704990418871133357441697828428891294878834916790060204626448401648294673121444368661482112269339527301506958058826880969767623125925025403244425127706791750011707995859296199451144635212358924107017983091960557621285831492107540064755371315360929828478342885612031379931622562109567651609198099882127930285557128615593815056418190057511315948651906044837054379730440318868197897971696599353058227697514914679194328580645762046386980029766091612511337068054961426815411799827941827390498531921637309324648059788230040796021309067026607254406513836111294660978781934361308677495652200245383755259108170970678718945233371010867541520877953923355701274769675531728498276705428625333728039306135233767230329742255399925439817197404471480260507215844558825748704174531723310835747897033564024900402520893249503511883150780908199136412927918880536805025176517243502872408934734729784488791403767881510910111873619499138598683335941809307859046682055185108048069988725625585198440872378380458046959939665539411715446090123406467483200950325709631113666841584574259994704299610728409092719933971072929320469887143218736413921804527017021366271033896386074650998739671605761132924266389142681209594713026628597182855468578213717551075400453035298026350855531196658915415313325206590980074235052899076968052895158428466961726291762289011574499347032027368490460864946962464436999499355408852309784406162589924122473315014859520668230549454902158801106792190188914223762842712496601832730325022527927452065532968168303429051471755019504924322176520262370946100439514878027932654769556422881680264392238094104597965921691104427103419865338114158805580316829177611196588117907259242226480021131563645399607737724414106586216562597910806332485309564031689444298131506835116800795889255621149056206751025052365266108084730179166548222909377374740314624222418476690811182373651792900893304626081808276862406657663644597335833659149291070123823583775681833373880322304321202855325839714692645162094994314195725619724097227633192061052491922834893651316324439101036698334947371404666758827938368859229845751281969133385770461199262025680395274936753175159722969507420487759609218800496644828648601177300018653463816504976737171971302886653133645524003563931023478228946989586455115950215187391307976621798880818698733614260960802862202656828982824877781657680592487405711800210632547371747411956873536008789568551896817043279367725334828338045729214309154289000773789998502829995506657575345473628133131007842475872857267092928570072061415198510245465544021597581822387776449160287488660432717113289027242108976688703819082504355673732355455190737703733526407508184757285787141894482338621952970023628976477109882216821053905971794751030904105818279323350090139716952040161014127796581199927502866175007770017447612129379871570125773492467898244557315784870756875652482209126608560502323261101792891931150186488258572536382675852545801402376561938386681943296210491785065619682440455548401617328202800360961827645671572091508475925416770816530213461083239793729666018340344476066073251925536096602425784724097039171148314204946617618750476144364090195624392534092682555232834308569808822607092264967820966587606806983075669946902184875619656553779249466069273164743480371607901921403309432387628408968674026342347590123886009343976623608290819087779965132590493357237400047439889340916561971570240073507459776735837637605641860336666327187306150955219328328864467748042817427003918842814308302974790417576811012115494264144510971950337109482933359265282038540975024712162803874061146808291817634476146963673600873714602970546627392091833830185582684558899479805705963772491475321897840236794493821614408851323893337304186132720043006321925541033570750420507197730319699402555269869171126329189899399084548185607340600980970742232249666957503068706801365929145292527055712677938537267609629853430044061566370049257264049004365321459703717190839213935767897415293730888212742971250370847679543097528254182553485605178619689967231632034778243371977766698565135162739310780768342331975024156506478040920040221714904112863184286546326398299924300196209285348212168365256306484130698699203400382711085479403710299756950076289962015212254782017866682365135879454726455339933675166221289680166880404114080910488231008367256074355996298681933173825527670245151468491220548430604303275022003250288730743994945294266541907361128434169756667513568730765212423726906512877700241283204314021289728934114924038257031317072083250379835109580902963438552472017902087591073596353806303215385565401690642758280555902209857636127886171143046230448058507529787073499922650903317150144668047950927833557839452423837935389423140549479542262728122790279213083775444430388570622756616078628898099592301968571293601678822956242378791510549879838680014815737726869011562147433735377497842066870444312497899818889653821975208361652011906165047719741926103998963369779226400871238923965236773870064573331631784624981504605006884580908150459165771735676091151604541366365599674970207592590140225502819475666353248624629398968701165012520751362657921523821800749999355574260857120556158332780676621078213197513581586780708818008442532675969801741751592881922043324914791422953345778922314637204706818664486076398116278839626202567460450653003096732938000863264069542642516278930250431807138642748546211858082221839198405112916151189837206301934005691982972061719757270326286808494230483819736381628993412823388264050982955455365081235378543567361581837457974346773433054235797183698150709323755104075545409643423070074805078887790115302449929592593837681817481916255897034131344227888645252561049709761064419301836391320689926993098249685028660854720116559012935004107934609086183261057266174255831546524979700141626736032565325506973769705383413133913928286408135301964806401449724251422336590407934478046505259308215955389485264410237717734130414149599055645711207324509724541843159768676428295356269615962282281668597389851726784263199761383758119060675526692280306345439816007859379136656127581015686331794534031978857623952969391305294286423012106549816299358401557465102668361353190720940136779182900517509046270273561269609474978486264227370519536351915660120549174228236491329539153254508174850186783849144384494480732070649905258795522908553751949017653034234313331321071122360264243351766442832956577633006900437121581910486925674949391367242543977615706627038695788547857987046231648593715184793993029053558760085848495339240046376566755049012231151510869643540056636555899290394512869912576579540505745247543101330758682727879955431208221186998864874058710826324329459751286788190116134878564794788207471895629249102155973853332469337576763716751351324698823639147283518414781651505205858617936311765761764009413058416451119276939414706941931274590177138702232343465059734614117178929500176240684259400579812198142708452207599954567346819641793558395611460413078772296443658527586748239382654304058542000169289498536418426207849358274148867917359774395829485359777942667154143528688088839273975809295759953870742467654588163446813210587411917700130052950513375210515409507323113394038461022592757813455071818874616477593280329611029149197733164173975718286303177046896024054821126367495613614050709147602132706930071850883486586584522572946385222042298109291877974263954181438341825320716968023742230584925531848209195675355082036749586815318938175870772162555765894780479583129632362972727327657471986311211945831805753852107269249234939065092387516552651794400733301103969650879447686423416875219144575416994652276882106876470645924595483216094870671332954604165706845844528072474868853928159329625257151178569888192315327939016490537698595766735860734838414084313785796615884837658978029333676025051801423653363285683695172290551315324110743328450495658082483692501203750399819692600032603340775203244168624666340833654427669248299950504676059915512673391467272730737119348405755478799952534075204198903151989047258891967359054672779762349946620191820328957754814452193126032013540997144411092105468703928416211946384006038990954471677931250987575984342371902489175138242252392586628915771459933929624143160913427037821653777827311391514042316703131493965293396374992490318882532686658862466717879280983630420171997279816951517747904306370363639004915153093395583096157978446102673222472394073686771730018204334336608650802161918973348810548002609816895190662948118686105073926496549583936681796360876066581802313857028036512903037513738315773321156204495962506065629497012971413636011441011140644256188537760120227760552103306019990765440019836527233745932080495840167078317542375995551626617090696142954134645485636253143651684442219401621832405988900314885437559945184693846887668469496867020602317820552243631845673057281987035854386146358034371165968726301675842380362337185345508834901689247968700146742846772392337394553573661127595486158988396541583978080535211618121617324653981740914244966169195528974396197750287293242306777502990578344263129774722464197013068437410279209748158272954525396291365974167828512031673131746259179166189656594248424150576685558225726933060779737490946057233710735605501617670902894667206676194983738525924220281074971842001294190847607789890104109917235272319350618274913769252417817010606344029094227188787836097817466828656819752691254142897068838149024892211604685948534242937047441793402767935666848948565992926738254642022815953265697462839428908413997688856604689764585062646248624504558743281578867332448769592877536339813711158271208349636662377082592657194908213022491579044432355943609245244251287097915640453131735866932711568487097828295831949385477892152376324956475886516773332902105847435891786598211737534964066318683931292149289240605346652354281801832924536357233509290536788289897977833098339273715921104141320322722228831433584809887696117363654576498263472983379908801567494696716146688233772193950164667625027886070189914350280487300434999612571373160593438458463584610309200398395447886019977920831367355600310306025639985058291866257798414146215406551408163385535596207126730156411743720729340833636121368738123858923751501287960848689018131016169767703895460476926250069316777812534063997311951785634580019379281823735400701195981749019856605599355094581580320366259231154639128243389220663930106682376901714820618736608622505338664092399744976806196934882105446162362745360482771632977469554501925715818659918528359682080587207657306237892711942883223707155349847876555763610810224713701527845746021748113244086639227780040018647453469569247680765919491877046620166243340487314839471827019471338986454990445331121301040987937490282231583036435932870438671038043177366176754384465080106419917949603902760312785774510308458726812942225042818926739893920632711637152814738655742457660580580824676440537635489807213585157736379720470547587863171555875233634833153044699010685611021391935737480842607832232990453272800505310701882827917986114302815830650162303264639642727082144116019568655530257126638858975745856258264684880997888584503850605881685566144052557456572175255410987989137121500477245702670547917573766991116019955120464333519806040909893412720560631808937240526670366973223543532234524458126614530039260141215372442854921558286832377442243473848070563172657104283211307444233331404385658255709023757098315436663718825202752660204405418428301031564202358495786245237645658020832184375269029123945474072044723398786733008425675253686168333194481914144783603280897889274901691477642092937521058432430014751266644920802721784748018373589818268350745480092628342598184988541217815115062744464574174494132914067723528554837465508525765015873523938018307618669058193827543972737258087743932516998947869869225496180634265035659584319262771480325553647101241414671628629272445785753844524428377820940119237980441382471002450902441022458515590819846116543912980658184515005641185499863389689682721025071852181029012806150864996670015721293279132384335466514306523805554068229010456310992046183814252554574290505847943035275888556418638640267378646926002133822782751709345759301815412153808212505059906837551393948402301757449560247764799794268798530529417290235379343935304185372373219933108787195652661919406226765147914414673177320958866736344365507215400975185857608775936071601641342609904866815739803403172372684999168964105965702033503655521792200138078817253442979541854279353319510868381507570209843391383952371922987752848420642740472677947229363936825758273560745071786551276280009428366189279907652220811792494534348566980168891318247757944549678819793922463527922778773502988298854836163408595263049147791177130784038748998751671409684680799614608315248859457549000340858226804193272062144064151807302087196353011016409294524401076738426573787918418410933388863251091533205107777888042734045204668202757018113396466911338107427513613639157993602218034635585599570166872961629979764667910817494130717244016290000154318725326460249931005151376333215092681964822213539019310006454634187173550044224848237281172094242552937158540316577590251643954980575253447920555055466366617208322144605945153772568193105893477927348295062401623805427198224613264544982251541982482318588701648311587895375664276977003643326104922657004244002751221602412113301207735333756310395602979393904317890051645437063764514918403228280526544602709195030992556711952334408571372246301514644428270755868469043380773294581406728683900294981353594106154552241945850681129463585888484911950029625414778187901786779988762460858752026555574523475660454021408222758223555871563239893827391487538435533398562825071444314370353967761688675248212206662063077336934812189377669580065620452018371885919950591519051316600796523011522585470813621134589300857773383677462547021341746646580829276494356183172082352518498893955950907923476613782240713780322463893478419430250548781276817371573854769241969490243064907423737583713669113815066784422789438070512438329583747056057775437193199916947345647643854214688801857450269029530064251158294537642410655019194066200843797491479004891707291729836488124847926260209906007775837620288684563535148482520534492834832881873401496890039218686046981396052155488831787756699318610970674851208841421949619311082620205815989083091543649674370040723655538339477901312801448398660578880601290271287653365046310893537571683594157533528116896250196565631534768063807318913844546536883395859344797165176200723347165173429676871251462869813891905520664705061420643689694040975481221130079774130360114923012254282481751474110672748958861119189218226215544801324390922744182640101816496519637645638142609105919205415238833754825967285816645932715060492718134041170324834064469176986950221924819145441532824568573111749167946726819141279276470680499229106555772640746260899977078351092522438205223614642427045082172744030472015145360797330178463696617734222883803449818261369856068994032522169383237907841915161162925810614749946367914020745478985193322625510826479198474894591258990846868579865221067175178392728409344882627171652763856786375663320098960122147296061500194248116898098221700777328594297302108189682673988385827708601015204094360142564734910855537466487504477237913338773020861317215260625934291177169313514775319091192388334662366599557432802553504844471077078583559796463269322404063680509123391375188267726107068801783149518853191184774604982084617742312943948122339479259303280855021181998324717731195539952780703434442723504368158934368951698954263472879992731501286077081515727469910807040566881936711655843374753077652631483484997481730248349143052876032324047506174150130143410464738320122573908816640801803566130689522343468772213671970603458122925649287921250364614144032979237355983620217538675355684679933056227765112945195814516589204405774408663818086872397972637144579195522541829161036184810029313409748974168809925365950406869852293106859572429051757977962193422713997549333341962731585571252577529763014854518965521373082308813026949464335240070554205123294610164054962199442196587097056237396729997835216876248215404227617962303025294623291434927279597526024516273260997465785828668939332627740006274296565148141248047558006471321977021509279400055432105049383849466866873544896495134951569400569086389707280533828988603354373662734253495165906294053706451429845810438214162020152352046542574225093996987608991468862034136921322849730812754060583994218676151704855957111105213259028865204467471326621417633342174864797078762649045526905523337091387091467300539615970561139807413454543772406272176917848420630375114974574335915625961774550841756729561629049871812203278201729460226594822271665265930709327447573869049060285979969494009996233801457875264523121233225367577272779973518251483818820749823118229787247593445116767747307765740657815420656101199802674616252654582543225236354365713530714996828894995885362830386552307218131946069370656606417153076565223052725333543801880670815873809618782049851054415041613252227175910023549872763946269329298885300532403887736532793789607181649705532217590298395776650592292790726572986247868898717837408274902908497259603344472002786765724805613836803123929468867673118205965243418726118443808970350290076523622238081220799008406289664418630624649079369057455007131673059791360651040852013982789567345548551755961039462373723379571478808947319654844636474155698818042391574878448821444834194593766602338211881108528591385166632151000185460135622662802192798429385281917490575383253337136517444261905799266678479055639464108854038295048460632975787818911760941524559220324405272200467781685465388770607796792025566669361228867749674246120197467421184057613850271256165838926696016564016297074431999193057233648799833893838972731390491868072489772222338581605023038070022069357563030754296206339864017910267739878235590366019369396742508521753005726372071583165696898489384920009857146782419464588786821014349203424837444570069827243284641163515527301139803166531456523716745312664930022090376811928631278535231032398911778955813844270705988992786226131595648340311471144848029034414039329186619000768566825944670186976982503173873156755384904974910565571023503182540697761283809395249905738552885933361804557510671472915100756676782938592643843320306554118330833567636328082683510133515700702583385404646040503873532176658679873768949641235701431105869854927443398881462897869105158467556968086776398267597528711895330425566769559737371288590823062422598621089169927039445422002082137106347015285789649214537398012959178127310522203198115831809321966166378082924377544740392262309884677725408874408931267322737995121144758342395624574316250559751457765279762953139617344334644117480302676505038924978048445842014200480768300786881972313400068499244002461524749256451591924849935707832853768309495702338394783754907027523485462432286670599176480526527553789014381479103705511751204977984436629583082989730518415921767577618017680318266250211747393300309795874426609363911622296660445773725810600445595218732650396442265192641963132102944001425450181318239741819497813718223371935767672334301377005945574715034989170351195323998369361324838884791689895914363474350514672368570423420692744390071228115952693939883417569605349798476467179777404278514805504663666541769436538886539431248314913191884474273462287319657870764469546771223503202564514528207748130482915544453732209312584870511069727203941205827685452036036337402231620010411361085426473193688751082421396479825438177624799006313447456150743819871699708673467227963455338821261128099362877120366992004568094648722208315035067808749703066806926750860364543911532902063597281306241205884329376085636662031292312700142144208273261517457016795278952217213772274108722963123492940857765879278393624463110495550260569767758338853621368321164263885372482421231477376125292031996305007772189208916918616315239470651134207999956853631513221172808074299155365833232924582894790176310269673335761571219506024997470222298963733474344158183090477843405471448539814692247533627850205463979182798623799815136068129382692010366039160414136688481124335867457397000382182892100080709170920566476399222809530375602000726170075801423324599095586375519716218036034680341769130665857409126520964159635716523423893063720677548805184621332830691732576745432765128069561474085769600753037899128624076976441088346020541613628839305069990313733386118988491654457593298164661591082045539782953813472471810778452978874365000380419029776535381083201186660207427553504181591543565904599116911359066681763002587668436316735836758938746411186494197950544338008344765388252410692169224649660317005992965737407915735491916847773511567741947816817474033203822853045577753902313607510835844502653914179794658766786258699603573833195768027461949250036847865771022743478877651919983680398923894071640798452891021943399848786689658755379195599177740239481040037629745384392580581601022069197731518915713247241032815778393106014550860787910074112460543990404480869144870079811375942344358334329678573559570062315244978548973003774910353641855542569506187656508945964801816614894003732522862030515783062892415601705901823280301802109940846586111845008155371972767211096814022437780466871610742702826198181864146719244259003908867490680717071844090200455889108551320845568057819136110904344857671120109237397553541747905732757418565912521649087948718060196321000038136749033644921264846357295100654589114025079575319460662178692151367884455581384891124883735462224406543533014629867817340931092224904161595995157652439750855073010835062208169734335982240663187196609918837066742742242103239813861799127575846944556411160982743629629177032210404554920981934544415166387225121987702811761056865468961661143516126283369901298150328202489632212399545648298854334782342926790633715498668120247753921993186395414255272455398994334851296224204978246609972982033609906236641485364281077966643978054122295351331290541932403537571573838923466662436931556581326831548848412648226067960459480704477938375006482097614845335078181475778871243130829881799909429063143637385190727018066041109496061557306183330853636281920829968253524872649367216968693810734303439045656616749114502442866028850588654440382979440246996474243623495747445630226234712979275534070631198587656883258332986841077189547163438305402841637725696635504948735174432638429179382675161474256690251538149016586728078649802994163828301151991212883418842889164306400763615430969353179246552361575177819050692192524423721049123116969030422255038343862032547021603013380678953392280281918880461205120014177415005061502673718014919299725336199884534398590044261647039621556170980208979623517553853067371797674767906645874203447747279423130388664526399000496775963650240297028618593407378882694997014597374819405057673174539405951832761525213589538313535884096761562747583559558212225175821172123630420792380478089393376468595931013507173649180481866695460264016723154412757768746888015570805458246771949095390449661830237200150135531358004801961002205731726085393799075409362139966773591057202454020759850278585644441747913019850399719639840324477955594102052276066207349821795029356705646562929007650880636859632786585659740712572994067588713896469358921001841768936091536434636446553023495978761100701851925959718441474232479877702597896328725836191875031575700658711949075731147448438388003398504625059623669429591894239817153230109951845799572948308572362829628081247182200203198007356909121881175959124647291179254532001706215071611741817424365604755333491010393481862477468797908695240034887890577064940981553318966079023538336149182342538312300748341444061159285872048231542030595493641830871951226632301610173431806521709951495389000909926295298262698760155699285871127568532139069849707610787573055515376558737425895729121389527196340740382949291604854688930139543596191574912499455525011048052758250451584637978253604222528987771041173460644695095949597479109228313855879495901848673783720030693742456021988964920247093555267391863447089560531157952322442858431560475358466537318998405148023043530743990884349559004236126298142485105533956217902735003773450281821430664305342175589786191147672464653020068808122576515160952081344944008379826879014244027517756545556064464605875190554276401211281132050502969663364093437000447309486130175377875769351765009466287101147779300165733889851555234767615068001043172086124622321648776978142685727205572309068118993342560090389647385097158301896760879442507848745200998752641725378028901647252238946483522938336929556281526951228230268815591537724819327113983292496470385216831895162688887208391359427106757252258863715319691476575065265690792242546998337351152674041783028497291103111198722274976464339601962337548464264819837204709284521267815833492714892164890623385260825348144650232897622579440874981740135585202935206899653726805002900963021195611938881165830545264135107851148868407785736884522893034763940224918333430945888569181615156427102071061036845753542914627814173192997385812415053763068950890334866392018166943125864865710377005191560425406780894859000660252455790928296628512685124924299348083761305794225776328975755478648055886625785429266377685581871295889626330855826487265117131929325134569670225375597061873888495548493876492566524092082579655532973572831935526835459377376706301376816894820821283648928943981161278511733455794278416834226975124079855528341003195276541746738928025532782097017521770236197658343228833100762744600119908970776073238161940262693623552302481129616982839201659285851683731251271939861427733751392840163059255810330575836738613290808797003450020817329432531773345920753484953202904879682400210874708470891791831186816559158704990993211890269183105139048761412450258620348406252820756938107611242974099175366458568591745606661116540097961484631411723567220979300197303217968287153436826744699349479820278179817366965675434285588355634024012976703766957638821921119516797141667835114760738159268892650369953406964078618537863636040443626219238448783997300476936265906516091834814187329301736747747454238195903646211469362961774646928772987457056579529677877927251776213311422721634594978096017906793672539402234186003859676944147591488829694490466539950479241864414817791710863478933859583543044470236347095719964691605154114666368739588240906754637305467821304829914028020019837095873602572030997107567426354656016560585750895277497268761604223612164784693270801015655217573442484675697479376654033382974364419875156967351090464856672395212869628796158256401656072824789067157527644547263876327990101475017538190597190979986200864124271813331416415863448184866264090849065879910502174413766281384865070521926348520951820661540487581798804988592593924432646899370809026771580462011417492843317477294674596987616453061008947917683330387399418535968390164416718937695307087805695563593699425395968096034214765424460587463366478043055223023767987729378161088989651879282026351000703871870920886017201589512245099579913907762914571046498855352627119524492910463903963419606997770542642846684369130521348989452287309529563800070722330955463228560939948496492059337390474977991046196516663630948429312651180075764431921421672077995801989125886153733621410776331911005526953422745857997440602544019387695625639873040976524857251780291213421741607324082753765421531713396341598711665173043815370856945952084658016104880908390288646950733075882720603313211270338993791347343504119902691537130273621247533389645484649867352018705527989285498533420984070315039764279761004271906705120967185711478360202196175089485968208949110392271935817494943461013988234295949104962814128702686411250249995223432888635270855968531247162647316444166222646250456165009755340691704703828349487525617992181364743979537357419967013509124432356098660808490695917497534970029569988333681201926181530088726731301580362692191954982817175019278708914026332891883270265106844783161392411920709889902012003057606761467652276232802503398638230393422759847225618282393749012332374400810165947201373579146493974783423879606849596634274570954986212075503770552650794518571025396961247945554678955627084138747802254753105878209245525269857489690194522772580250074330376123622368224755349558575458324506929122683879899850845446064463353057369348290981364268514549306977221798109921217097890437878315500765460475384065333036137301402930102778941200442733878365937454816038519232444302362350918750147785395443889787196101912632391826576652634954984552507987366462446240350675686898895833176281942697212010907538285251140116607762257380694618170056862203527170461577102769461549461423832065258778692262726880723121773025475697416923145498078566528126758397535176623374626102913982442400715385450362827423237352767719122628363340939399060545511890414021884039808372075597006133326353927964562610457779393670566822419182931204676623343683732481786050262014173897888204675318292270926767273016729241572094901606010437866915930038667957470697592018530287302968095406150442110469127646253153300166239149568424245141341326268661630610069567325504208664797410137851452138107713641159932092680110066373308872794612263605208236422549244643811745556912140979951582240400833662343257996261403017695823946010105638009628188663219089349793312869619051269859300337995087417355651487285187929322909292361775896774726776986597879310076785774906927272568110979194274029244524771419600812891280904094763091550154933687347321780289441115274061030239659401344116677893279064779059274122684659214826688092729160257959252209440055182618456083984393240007079990276260249389799425083803035655251742878691308449621276199294068840576128498912203000356884012660712960994077597970070647485376256637426796944615065895157915528710107193509795248997873304331573900174419611828500767298441550870709684689383096117108725443717060126996053499368328907859312453836692421131778279628559607802208850920441611851640769326318565337579695339828907812317478736964914947954438879126474198857403920151965635543642068750321169501364274297904841398405233878248898891450398375279108563307796677959114366858696364758165974255760622786520457329783619588373778949093487301522691989242713252148540830117919846135319135936554806042842797793376377698865749969055214219531016572854273867805873099523799106261812046868760878564758075188698210552772820857851449020705877200621792775567106732014001243040654230747060473797572753607307341860120908913261462087689793817611842572354461972249594605835893330683681661783183083696180763273983801035690064097481226183618919551640533646261133598373661562766804999012486864453934710538138652846946827665464681717892798291438515623556385094096173471761899080759096696252690881835770785027707241403192388832277247357625956794279651770242561022330945405341534630036256407700286972900503472927357897526404525415985076973551377077557753762068736730103125841101936980461023859267749598244882312134869407551460804575912967325552289974480640740470336875304023890765934379605836121027401245329129021007149256117287512540602381446508165730777424246253526415396334169313408235000097973872844849225663794663209375447099053290789811716542930449111484853213469259202043437231590185772477995641906155048084508896726725840960417725598089428876757440190272020642513642103104470335200853191569236798256144869815814486166075753259363488161301494584050293655688400014178584995040201565772803176439113691989408633238846178730194454850413271618293101167820425830896842207227506282719965804753330689053932296740525187928813585400680860526497188737409979926440394624540848920033385172222005890323673898866422492364032943747378755102944934728386274245613158542330290694772769190059387317008263193435363410712452330263000768445722343527812140505916765502722178528453321822902221397350884569055976676722091491738601871638011556323187224511388770690752710970890648080754997748138951615734321266708775046022189041995744942434864038984399256913204875872604956614309159100081786572873561836437356545345174444197410527331407021907225976299228101610797705025039428466760672024675369770903123420836040870586366589490446981807982369614840982127590431175959963950278276671523986188116056442817918128841900386821894592941235706399584644209670485075740676458993880450197832349416810134993809063344639207345241478162940873198740955684619092896137941545497390466242356068827904584665230827769321857887102490282748396069732535835283796868568477915059733584661953146168754832239363357207602663719635305184156180386812597082067536287443311129688144176615693946532968928594614451899272478812201427990575991324919735097979301934891051900137460023688481222587224460177679297076891511321315818835808133299205390536222466757636144073958943045665736096122864641473021787433518702504013550296614737904778287168694968762009080798022006238209113104987543129353746172750024719365104998177050438110543541519660194934495907789411590787880422183789147554237042607011708114208632497150369139835379792456531750665936050377024894260211779983295096252837896884935071982922487738016701768991005713746807280547184299246078969045027537639950677632530609530220472151546826877091483313837605697866666500618807244756570015789684935018593764892160286716555660590484142291139489972535198216875730867696281310316572520553406855922051607616173725790816254543505878357855454808031313232139278243336443001529597066287066885490917363451402433143219360231505002631338002782729888376210100635975667398431345563783978848003237027335602408644193155370205208533996571024512179371425874779918022990061019213055982479402500172815492973346957699490299241524391667906061771303577082331728418562096880466588100924009666749156588617843177762230060804075669639397986903082406032225277579477543925766841615815930838877195933043010536143832742104242064165756838936574461264166329775586897437506129969001667349636704775162853635555910181710165706889856528967661060990094500749263012310631984599528600458818104144448551679169781076263110017263050732753853544533181280125232466272888154694833196415370329254245195232781019940556257526550925529264167952742119234280258865463315333519805041538409919108300772313081842166981537474113013856419945191705088343043629598440387116182527152399855379699638668803093405974288559618331890723273789514509170024511502558439725612891231741871462350968260680118634793167873490567424218693169217395033287721597670576773774750227644700771358265903361416067749172490337917852583381410454783977106151663481918450205020483892087482147590518516684029915234573393225441222062634881837341505103790805478594006805594205701437752599456989491755568312262564654688114489943772419707175829609279723214080907893683349233811768112608925344511600933440318494610218583942243583397555948971040286521064861385754752393136558299509785315011838959808875804676963925688459703835334173337685248805950285827612361024181332705772104401314885565884182326898294165077446569930755163638110941429898469542533966175849415176418685312275977803751069708127000210036523093918857284006379359255572381945620530970828861445825909090715543533728527360750167343690004916144823355241265043513462818769487491138415248160623404202735490804688030718690102885627785160826203840432123651994159155016429978397418054457586944099584385629296310737218833211623659485756525963000805854963146247557863917876498072453289226657835187857050243764950264179046608532474672688617608815623523474634398390928829923144607469539548971758951160263253392683646322814066915193078825673779082794386537720086676216877909518372384931541503808402997593648680254308665001743467627512112276499744570730765444595045741625755940037038772374210847930574657733736104480923377051474964472100132776268426429620687593908727363599495618323247713708494884476691827390993710336122061337483601290929279700121942041454534825172184152543257272762353826877272875323322142712049953424017880782512870711034262344904895030509582649890112634239762130716198855153271772769600896716360584589492318748056331684234368177190809909243186992009757115530716045544324661643640790783048698410470877185642125115923301860894465754165146337942676818385029669123951392576393418649315413848900802036262574662101352750266159967579574338345545012220299584554212115615387532215350384437117888336973993349923582880076461288889242974906994861192941686886920644649384608796902842724305590941990667616353924005377334657135609581944284266815292843725262670726094448977007851961821230693871747265711136205688589082350676057594781295213523144336140829982229541355401226259228094383322040807485160480973693102048338596882468033954834121254426533697514533784151909752783534751458407052880449418421026629588435644539573069360618540785970086568896105852784607794221422606365583573910435464875901895535211184160108463591436020756988626573434890198668295382704738705450008248085826437287159307181146215862943968951407892596204778999378761876489475152399900140249709141257571061287031858255477340776146860136985944453971685786520868475351085326009031190550708941588067840678856983997695467390476661793329366882942882115638967032065497063957643838959198382568036656583852972239609333404507196847187958901539954880948931075825552455015421588967699986756469507100681964415483113144329237815810928212002700624857077010623755268573531854165575482856406156937722545736388865691288238519741217044144773178737349718311355320107063247668060319906341022839106996294998017627697771979865772161179090479263286522785227726950008736970728484025570887761348425060629464256981939133304334983294142604090007953069498352713724037256365277703876327932402676032207079866049682020669322019096048472463965245812898687415978294659592506204759395875056310153717887599582605002339920967089788424781342868463826400196484479506318946189100002419373554356322562665828937847750998087978029236511504460822177248437830279368977468694359184166995740076495982884126535454469623764759916434371551263392854795222095670612244846835352082409342591931848462600646187024424552697786163301136651113929745235039664017203777307493001932368111716876531146086344408356540272885424337083093467765096122405480169344509235188488010780967032984445884335100735069578676128313082097779269543970770471983219453540362475995162057364402147300045026184802574071684499192940504795894642674311151378701986470906564066399239280627798592265726006648031205812614971874652120680482513242858240901135267174343507319344374699711683542635874884347699520928000123856003602458301034662446920918871420976428434675933100315132065804309154332330592528646171086032353226674744395373901808245953194258891950240549661065365518578611091710081091702702044915719830303938030243809690698474372113462034436119130056037868563535372808317733568480072920608123087841396045693192730351859162222661096312837102617988620700932993559326999326611416132508607461341296117973004063572852772174574152269552934070049136292806597239613283112897808403416642774567592967951361956004534921387918510102254075913901205221802995885632604166652864993269367640069505522502156025475251674277583132255157162781292686795573245894106102601559855466019012816609488616765178724034804185519029650151178237548401053650521721361984099133626498135168303779412631840448744162087483658719716865133531066927271071191738470306840616181510600939742505293947993106760569083780560447129759393291900011636035735002322124315955325260063990349106604056479117655035010366330037856440053744295378895749083199375924796351666968186543280689086041745949360318121108300508090005682298817884969168745808891357971840169789253311936369208087889892184620409052924420116947154629451146852018695496776576458795647045281356447602029657031015001290521326048058645923829074010960531911806733884855936045176418651339118370020665539157348308219214653503519921501803280977306918396031899411545743196957009172313462275008620942759819324222094180336327971968966270259236684616936199332507584171220736551261757636585269329435740880558029010193802302416275838617357107109960288937169371344717166391395229219624106825309162220829455536213318587728968212694032086807974512211281726891239749448413891213320488809118595313579137883427743425333134899109586144848996833724343438372958611717255567310677993608213236689724401957403998993983667329260448908612309453799092939456090866029075581701925843890437268767326889618637339864652953982799003218111513950527741667899071747799987087592930550971707373034799827947222714313372261904934505557681655501963534504228722874829631894601748819410751834377574284086258841789526716820456552255882615440922271941568610034387691293570144828635088700432524024383449936340187768728228291153906752790337427446450462333365361042910515289700506241128103190246479217267391678507907651751617788842555953931483178964128029918630921766333811908284702099700446256378592232391985400763356472798803124704693175253264108325986080256992565690157559956868200886222114517570237196273106755850732055168968463711782745425108916581598558911116269183030754294400416276292895951025347446279658013236529522475572673064523633310865784273715920862476737333714133035561826813725601655799689408885746091005903903358174948327782562980000056039172111878638968241679661140548392492490855336741039201496581792718915839578098534637707764527396021438414391830915541454729497286566593482237234158558109134525144289649552066611452164165267768332883342560104900863169960144799601132880709862638551629595580377843118591497404568102730436747343031516353712774075382331935698089925073943186618660836600733183828273840692352765477774811666693371996110902340004642731178011173989615510436099828235875296864755803899434902931825251268670674371769078218534232796639750374679968723489617279043831886068176367218905057014418731467705668321749979368860941418066666869286605479954185191282954791947754843830548893448631399145683711655585298935286251331939486106262112917265468231164437839872409294763314277693271823276589126596376257773213166767429773100978035165403589868172085899855291154278234226900312374263040629937103905264151395136189684704608087336298213670267473453243239283132652560112924378467374854124889331210696676672915336818229397586200039806477070020316117626799972306799492097172422372095925398500649194464782782483557675504259011492290716389723221916620012632302260017634326333920671692520215148089378578248544633976394712180932345636063357872792389636104340727680295521648479118634102077445869772346895515885072879182791281276953050624032743451909442570565133748557863076969941293045383164269342319841362150594843840685092273981126059158308354996267806324091103700830879722689634132434905704506268720174738485461112566841231598435240401178928195522566960223927153948411753325305911026719615633902346628442145629782815189477613171675745489085894866842630945054372802291600195697462941307785573947120658396713650287145121651831698453576466201016676448134839135845545589605927889357004996455867678270082171138257828558935561005684728204159933188828036757729812279590402559579614459477765041683073751673689450115207776032286006996896291539567695157290461505944550231676308287064611428516944201797734237272062066761711674537466157952277820730817323701305513699425246856128548794561344407116257753613435566992712163453579580721511824533606709149635509165728995403174260142896773500437376673765972746180354938036404420143211872317929367389308465941657522133550527402994830283742416863779549977189414944862806442946715580168065724980118022060591488554670135200255659019093810592625594500893492618168836395068691402655808952487607053094994329714404147855860339636547819055219821258915337282577307046277552593381680938057426876501759744873954678638655453393132436443663580839621002082611421399153991176763292972856516537856112089448199245526723785905534818249275161128861538680801477131003912608527813018916823764524757007874349579161361646084404773502446558201999003252555131917708423744325499527351585718030280499990232885673431935057183659478973070689610276082068719981925260170544152739481915717140984916958206706735617644761975807355965150146342913255896345134243820641951260925981641662277549495441191537539356797267640620113743970653166678748108477104454541078723086459327094031163866051890968913413700079803432814115482728019311404618128778300470261060779233889936420382096797647953328184378843202142785377655801846857776178370801896096129848444094849564510870953269263405691862464898828327830221786510612379081342494669958466610020994057139878020968617355114365136817440421485070091142969981178882954798929893064673405721618475455831561238976439020155226463704971046062715824266913344971115021104489626128001514982665609422306560158339640801132422781758858011206384267365321968184162841705132431747349017920590682523004987122890352687888558587196152259514309612281648414347118018996792296265649843888077943545466161059456408839734270501073980477088290010054729424788450899560920685953773397745586482618740357847207320089643010637890069651454723794736133159392371462679248708350623137410669611144791658223403396890783682888940158068601004986349314257897673917604938288467586485030525424113132503611538719726751860329921303578896284391821839847792039561209408813918092345793083331888130531796621868414997497456619856434574546405399826466978892075709610898687570447139899686295058997944182225260272407606310963498710663772897422097328642393978764601515459412502428421650314623464827998955762510844042485543767660888740670786604849970757811284511238502247583172162788959878156576359083686090998953998445980373279632170250070261113756573623586227429712939235740189692677396774649129036044319335328948171520077648187294041194325534756809899239419880262088345526009535896755002873871143265445464006370410769442938586929926162886248681132050965128412597223200150222254261877941634934835351780553375144785141369933604641069676392736365034537403322723462783225017746274187541168709438062038772865631461654427533226103133681198771939978987651546582129682083951397688534584090088281146290091796496695340983102819987817708446823974967041747641426479235289850552828964263385755253177152915699277799506840717848397863757887584786764430751399968765151205048962591057476051763591122294033765310976976493727758970386466625688875446927021894867358344752424837930134751131055235405738847062522056730799646270741308729495086072568310184664193231222302730540619174868137657040591630831956131500695356107645062377931644988727894548021035480393745510617644321919569340521955531720842115990793207314745468044712938933142205196296744554857755527979185603417848033923120926494281250807596335215537817526174699531163757540185243005647394184240482876083925135218796738822803915635423154186488464100227805366628827373474735478834693756972735223114442264867799544400051441473271453723764003424387684922194410171010027951536136297211218173782444810456600139600987027078277418997622043131930583123802723282470489217672536252560404112482266453606934550288820461763614798814795407463710697033437442502279740758363468715835362358495019287827578885643928106311325648377296225234761382386502870807976309645404102479301540072711613695521969772735714336789145877624454630899029270808381843552860816394415199412786255320819700235481447939909725389265471849206034066288756973375572089439272690630877392251019369178406561163738021833038614362355744559322174734257185070629800529245946547235268911139596131825527676753178485688897565234886736643860304138590824553458478875493469435024216905427667157369886276474784765911195456072082236294893305877531134127671778117046970333686109851207109515336257408693013978842631209108608228606288863989667067237187628888784176944720050047867350126260660864392376992939670853438973835986644566111027540999318234784698309057973706736772656169385845697084759626101727060907024315575773215630847236264192533651851352042339881369275478529207083092896738301349600943534478858891162482329345468461505097034955844206811977437136742279524354365315011930512475195070011085072131713354976261573305410913695099796887946525701298662651201255703992328125568327901203723286835420756400748928434678671418533219941854892989141507224628258093123078888081170338134356019595760909151878252291128998611341126635611336912224744560967816832888882316598588822294248757273723844043565957472907972414666536644329228725501872021030940612537613754154967409559571223891902678959758437895312622045833090979697232586315859518664069401751834715884423173329855498237845273816004737883373237680322888297775039215244664596803455088567630991101563481003751250414114392331547426043171402706025054356916180987460736224474216809860494655720758007720305578267267910783066002466705079503792464480921993305858192528208868097644910051365518738218306556310436584675379285813152614076141724689616377651886281557452925958060979985779526057663928012663190718923133735013955502400071043525681063725003183323379994920376971326733903728327718488352832496529900652402612753404436563183593295272872061728169976477513600077931016067223225460215369421521970340897594755340534625100494960691875276189172318577149836566018191442886133943968177261504728749865942179949885205682106058002822032997040049117271297487155149464396871237512479225882205002813104412897016311153382972787690622653375188225813032801778379088655006428878424313589762783138523664646510675010215263775494353727127838859151421976612833260109469605536059219513365728803778469138007088512429304945216009331253415798672445096028442327896384617351395578968413199570214275331247785918449945838271386715205396244052166295142377951048723276881854716406850604346983339533309243579370324567380973562591134208009693385118767937563079029721505197391226928691213254871597289749735809039864487627460872893078999962380717829057142539489871562615120687530275631956748075618944885678188927590789236154763739728738621636579195366957835025720110492195095208678731821560910012602203668381050264645584031588966488895746968761268711769435649275110060287771795427534709065485825524921525036678106595042978373128283556090052393812780691633603905381307701445137729560248233290543461547727881068157230479574770565939926675506705367054770625065426247835105493971756647513075036743699014586190602708999457275236522689536189188343027981919075099776401995647273994498385063766011206101718521490649704222394740189402067100059865777141778402782732007336006541277554823784126805910305485597795891576602849877411907081275802889777532212467923250814847447621838609056509314796721697397475713662810200341648432531402676369616815618395750398246190026066363039034739689717200649834681371086168187262183234402211320866028388493107763373531490601262058585255040003925487937448596738626943219771982649455210534774644561101342089470184381749878080181645320315084697013573300437104257620554930836931448601760593523496540760654272356596995688905370108413460541376467109746291552678803499921810496204179047697412440022877773362860701813649564440304373269996667999576802765440124676921270015771208178946897089950325324053795959380941346439723188808929833759483957591827575640406654260798587353753009308893352105949249495428798417627576240389619392278903322891834347524283370544016229934774192068950318207090102597561711101178469125264474292667509659493926442504525571125054475790025646543987289047575085785560576760586132959516503590694427948499235904571418849566808891314196373646304470809512416905089467754937824415983389966288337206185663723535597859659759151752674856929918204134863236455119898001917407441988227143055929178848094450699006442551478869942206534118135191910694598392151206711487294887986219017127843804900132834363975321896628224490152424547226082984381071051040782906232356672164313677500991608026567191654811433643214993089445354975150199719517879267839919391789351189520212385329581320828635443846252017884925541470418636934928977522802653580044172893795159205767565881751353154106042544817388648700330192902618068786735021604317203672040793048619272491112950453869603083053377906742054294155345321914093847806190378121070293886661223108258329681685411611796217191353686325476325220497453721495769068588315360001902487921418772307329848581343069389738272460738546039489678372373240991959739248185890686636843763518375654122206020213026538730524279290767532148922030966387577032974523769797014519745954638294374860736193319449496906074263689400634593389000560831427923295524771669247487912114444711541682453935904878443944915111383136197307802389169481921504580428912366980891964981889035944461196864602132858888288488515068916358674021939820231451244099312462833782034632610663457589949042340669935384965784420369953065186934006363062022458662638774645836024589405784105452458960583515958867227553779460382702437251809547720957125277689213360784118340481683819160449338768471385083895670208731428165111232254401906078599566251944355129113767697949984466864470670415298639501539391264822250300534918285255177173602029742244640641760616659516931835503900679048229662216747716525527230102925603820371162520950207733633723632828916440311379921543030168486501572730257459831858720628120282828412798600425244384968625086901307368042834295533271364073468271889224691339690739792739018854205894308542182930642985056688533287669866000344830712106177196471036519472467341736093914072185090721412297727271885206502525300119146178000645073712181519691279493798031597757019833786088969879334081371555678739239960141370223844346363864944754884005871728889828468116575823251124760572770763968106874279288379527343003027417994211062941142669674238302438762283176388210906101106475950296626231749733500148955363430815885249616808214942269296388763506615436332514063465959487845447107413836006659560254991819204614330481072577627979328466360022495267185983418912037833882945313433143975931527648863938357626122716212089309458361136947545591439240546817494965734425006886408263651220856975327162172510425774816574451401605757449736989352809671880629757634243814888500851906204632211537545120377663706570200063752829585989490669777116617435021515215093686212674308216723247879409780397544885720087499468421605169608011664562015630206322626510429643517170684419487331244371151847284708323076269838000702960151504280683953539481347993914834445394654879597855139658994766987134981620265836798875770551824727008191629367297470673699763907057776924416926732118139305293856644813296336067708057529228722768404209413365757495877318173677919770665142648322817023183121556236843998228255950927006656372232163809533749918129580876017799485747625102450223006824049397364809712358885000574714893253853239051190569877206833160161516996327090946559179095832982733749790987461247075049455436159765815277131427907319098957628301885673239295335278885959371000007639017388304113031030945249931928949371910610985013452668119999727030167816040112748969117424741532958713256255114077941155610231587216681470394190825062287354910568455705993928721895463433086446532293346288879265465521786728591807940126957563436888148225626248272524369200804853237377719672053417876632518534792251664051425671236091088419185603352800835211090165196624428471771820423072159012470069792044198681639353312356252458173210069407222933166612058066243747529432299440004754400501156430917894943596869250613093445326310933638514408806382344509215841712852948779265893448796408120755374107829363961569782941340112446978827809087691080952089678592850725846826383600624436163675129242929742193214980468512449317878028583609978472482102808762461233652705507408463808380064943790011510213424739991551469340722157948934146906337374969543221166801987282727612022786973268232211928670722975225558743795663475727481764938619806806103758198276017346546882720153644038908942256903638690246731871767983266736126141015330740257393263402150062046101985361981428711848010905389638418189635113335992390918610207895389955972496227857422553230579874199887307948964395178845532199483200620782635400897466534317422275697810184053437445589006641528204286708894463693180701995518424255097385545627087597739224358681268029106355648058080812463177798738708200496925736903943612905374791716803906670385077746339061194341093246758507623307146088004605010218465831880403740686526836530771134692217864321455952699285269643181104469875221953914772811734700641059882662144389994801359095882855887162933135163176287254365632810270542481366999884895148916313854086480049195545806996223619114479306147215062234547667570218906590756835080769579023151820667641088611217438691843331089452072418142551266783610726006343479428064784546938116433171278265108175101255760557615658289026422265519670310683464809391285670514110740277934261092639880737772854620243493130357851313767046265643215652467611764134352174585185173272790623564976568105202273196624611676474892457898162281810717181096894917930452991930940818880187342047845965737975279915129362870031361298208196066177281221535665602529281759274130566960069686788646794876846182353294558476730316271075063232113816056010779006775139528596899808616525251272625547589240450345419970442139094564681528918521112959974311764856152970087469297434341089595758828662040432558615254071794730260664559343799597219356280506028031091474585675233579862585070336802989151109727184345621261226240092986708494668118431386620238085684092112032205534231222383127194949125105480423893501745317609177651732890143279918619886220829587659304082963934850857568271127800414039660385262444684770690925031862724314883313986834076638982825973871034982720274571345136212140749495507173898014499443919767328633382079081003950752141474308159860784594175193649979216701594079358765102332538414275638833990573069579526575750945805155552160808875306913403045997015643320399618523966786568091031179548327369697761324821485664194368384507162066166727563857787040530517763594397360305799611390172066027912045968053466396064130042896263438497720919963060584086763681016702974397111316779610365687469677013626138183245266662557200400747302095719067125580617982327301810631470144440622104394313708645440198742471733843728415987995989425700027915341155519975484082116625364644979726027814137307313349082004698114044767947083622841840817231997363822555563184770234167329665811444567045988570813221124509529058833644028205466530699447712271242799205734779467066011585472608053744876236411386128993057483552315704493001608072970548910131720849013879274777288420332075825205357389186564691815946908109376284310851106064615056112127838917658311740869717491027894717092854053113892128183457310305124111503632314471258626362711961282525898762916830274014156760633594286476545890589770877194604950163889767181948540732002982393337374368755153318798570467568116139669964919062188891482873478120306238035044576625166373428112306245931993115005220972530347085958349226593952601571579507354443546695651453694890232373846811904241697854017500066937751253094737349502879772309051923485596281421380142807494835889700779609083818107575025386996076361589015074952054208806807881519447974549420249511335331674025646707048018454640265067367494150860456303370885495402045143383040594454435933171645215929372406928583439244597426078283492988050400073708319454721527977235143713413811164379573497930868033179273748190326281064247432266174677336304172159952756912554088783077256484637122729786377420046002091545124623014869210312546257173153174547691096502168141715730727829155999622690221538090433998027173402146561408011767593989375421838595092811383770949338195692537236002354179920365542838611574181829926387790732934374176942165641551183719722042054159624030834966063968790729765403517815288949116340088189137656482846094374899065220110178434325909418805196607085386101421159547368757026361032447957439475193143217342474523694304996322311164109888847417161255222640511528755740108140409188398364731411760700273389901338220726478858935444194123733191766740088627215800995563607760682136556641191213222418185308674604650954439559408777313206051944611216616364301611062085531625899460004796138570343373451078830990442445465793229288641673823059779984451696744679100686689806812525989005255793177732159780800604844713460239003971244344396503024907348208819066948391611211552899182347985021558261898756701541004275626940993885226511397261821113206815474659491782600340495689805800261576113834759081540166462919253489897129394889465308278589914691739573052743678956941996280709349541357110774806678908290868117144167294412961238929492004724623262133997419214386537990864677058319131910235274488928359741870268185411996014702966563419720021120463114976616467517902988994171290926408149746764261020837218268466311708816264814093317343910659239731768361320918829070079502288090635757886875039591500111672842265086100805778591915535442208510058085575873768054274292532593223632392756049526544323021267880084711211340403603877240178579570512793665833340984509045312445414639775944453681383216196857925347214396978041215469810573748802074444835080329861631956254692760906203742312785373008234803825966940096276859657119289151518893198822699096080084072225557775038401728846039347872071802163044361574956500371397947678795578255302314275587165889855312415351711820508584909189789914756539083675990813365024180443903674128502608637289232853017217218341915301393452387206908472561675253811643000005988890443729464714721591008715917116859699902762739910202465410408852496466386883536492321256947343549112466962255470969325954805388163002081878682346389529869384442109497783567401693418964593923251533536077052239071042347656603854482786419292169519829202388212481272485747824052667409012055247559123480189282156956402834864511621881875926528346024136033387446420399203959954672471244292299697595367035713679270985184633454135355448097297834473879560736709918593645685876860904211746780637252622880601753293966018204095390363016555892131293900305820858231798305894676848055508456786940909432432692582798611880855423313229751096022984528645428464449618748378962573215130907496578258851050622415774218877560205392387442784917837758142010821140838745156151023521862005772551415812585743766822141727568344639853558067535714211469523535207393159736717949133624846343673941541311738308390810664029332504254369467786313775873359132306747937062100456700016892675005952936783844958209967700226502769869990689640685506083533838692665099137237357300168165233249364853324301491945308571626354009119711765949082136330751652507464390580070568402629962055889899210817066343603596166281864093877365827736750603647430351959999008682989887469735102924440137115975132073115956195379059033022630749602255396566932587906615730186426672472927760980234654281755948668475188097280164279351510202462113454843569281224576232589537408175220579364557222642848402650212045829452845723953037301765223550474757661208246538785771319333024272544115270267166055555392796109105881362834513127713259440079098567092271439168251693508429191015550987419261717184427321552499276658812468822701070173675622900759130558123649644791564006640703603290547683135883858313899020800423345537200676439142488440990258903914033966412534726673340919727959397685723541872593044666997039127959871826491536433295720803671604846328264382703587729822949735310376977387978417187198516423915645171724536165057910682437501960316074771310572446096718342988051122383903576032050299678183466432541816767274653812400031473126569684587415054616733362553409568422276462890182733193484575206525329142465984751210077717893197824879593264276192782152566637677008208609902203929421742250805447421258377817475326396929467113229298900499479061336289080785886664945857339422396810323464126122688702616057296507257349438585617864437836720708044417034752910783831803989365178819898382938715054727338243168715622829160138017064178870737837107492333122123465867041375884138265804134310774051318698131988676119658841266373421773504273212403698930100406693107111153528405172488616003338266332445658195729347088901708702198617347364737571169263517023088298744454670286306317368440109204678839204774093992304489804230629396725906368777358224463020314891985719571112239257233372438880155657558273199380731603937021592903522921676727281160762907116198417159986868479798606735715710410901716073818807172797313990874454237871474729394804979646430464785331623797650576678189644423374893855464046693557654162368812504351838853076148883211489852993611379318506153654391321236758463850988194916690473470564790383253935609232723742477164757418638269293840649192196340267786463281605192844031757143782634010341315639952480053844094156841498967651793973368574407875979144145373064406330750594722993871428653063431529630150139639922386391939670316791238688294340351511351954199108461292868493871323843042337788387488882486876242187454886787593642171026764557233333776806605780781337914584895306106458540921562817377004314362378993179285942421512298613441877051851539625495392279640797261247639637771415235514356358985183914404071301327810209347743215243159131956213348171079023729187092010374426822491831594920542751630345835001741534009428942376887245364083357834549745228095127724604943397406995316279029891126219401092466946383848249057256218865155998987720460048059223980366134339531434684421563863762698423551186912345015730326565797109769550228492066405710661060719754750953033557203547015219372337863547026381936493598497299105975429282168152578535498201008256171674163711566056032555527540426589626684523766413960703706939604630027842723139656945496030230296655766934233135677406708333677052740693610473585877666523618818521286874326571448594443305363707306749886201410026110250584495423730078908257755796573835711983953515659279401906676246295918493484932825474945516381857397451550763379385985898487278684170790021617324514998741182779048321150217990607108138120926253285394930406961996764966392453080787279685073438699542536826415176518823816505378667634229631484908994898520192991461819293564807030557390293557027594151080391537559974560395854261641904078650583865386348431515975514638657714727106195059777615489143818297005580584267095926517102125439940134954248898718654864506067375133367656918641993509605318014098225011802884783910391956145527369741681808500067369146975171095645701317252795967813569652554827071740186456376347933397448235382249897830807114831616275792802235575169532239959109445339868355525139619085807090765536862269933969036708217829915327479385131988535845673417039767420246491314589129298200607708517921094138881115448875320844435533980567243883576296412309313178287184780567570086994010059268987171979731464701704328854810292905693778331828976420726833835763043876011455192321322316650310297896430735260476282054209627566815899521623585644625447740144377475633114374740238665140756702723423256440333627261264766796574852053437895735670096071614869062284433873364919186484047936999772655098852219659402265508184213250256205701776309802434645065066920764725266350426256454567781365838021886132325073434938490550039912432913640333545088536160685790793339377721107628289329183502133241005055485325028005945906901299705287307271399896460971348226367426467047188031621401095941587492450951228503726214959433327251007080425725172871543007985911567557029314569439232346481546629993361010854540868253593906468291889312813087449831715478359943754392500285921428018838407753357346468964522573040001733439481282257754092624437598375509196490686865370387052734480440184337701999958718150420610162270551569207497107052289299777905256964597442803025527273076310286571454287368248179552273096985837629011926659410565101663565202278394052972159069901787668939611699212071541063566865689283704655159779887542733167496641492402596254992758184660859690113321560743002042057584254986738374646685220697995439540756881280864429188477393237893727077768817654870831409502510431522547854263372878671032567892373404891676922475413506280580648720687796566674602879162124179999796262925268148188062518559414042486092829086144413862481345002480497476226499744514779447345134801559546663250125672081003922777281536830579726497435955070095737469066350919769823931858392381089956393169032489441502434558357085165838611232442790309872273637691372804429214173099560082220144046332298033105010004889876887528083207468268816718295058457642146624368064941356122225138627784706758043027915869251657316088643876897968734202362876928047526544580271032189038401099245568102133531339615999203646788234957408125147660001102552930802254688039489817670269667104084198890922354176360448310078505054922059993009230406243172151073417518949280094704636948541060364684842480534089820371956012647027836949665319658363367685743956626330379104331507453705981931254198035170202142187473575475323938172383854112043117461651778378494951144407731353435754825288588357643964372205783629381344712535123805109069037415683684659505876856217036711778974815900960744315945294011519620650192498885567948738472583742157917282253447458333409406555766249600231402694864827266373504286152112655274502329346248015132331518513729715264277416866827574497891889777352088641569601983754091533907797919965204205772880966133042804079014717119132878949129383438680199670080556434976058624267647761064858154428527596434436729700586252397630784254096863937315152751813412126088020842775573949568492665452664672541339908563159368645308830175570194641026377518021655048537908366402530819357250029447250319757572519753390058324552418413281054504012136284750545079042693006386261978344036962933276419964621544737498457616314262353313321492435481695277702355806132987586872503937818656236254951884823526071051327596061750396185767845593876602431553100413331022727537772322766466780741213542789055636293220515818252246554883951270022689394605836260363290340720967398425666539654250813604997616934928803576701544038437040466999861696082768750349726897678133268223424131291310535441006223515543275942290638171907955655171113537810610779685766359257091661948775784785345028408369109815303701772394086245671510781257686479832626412463115058017637827049710966117602059815542816508304630080020348958624214468568805985724905966698135340451632272347580047584503887563089667981288486460722883119952094926803648266510136167583649573688357893125736169569357171522332093672660667240316687673602011151765619635295553866412247489757030531585081746305715020560650135728084102865117217915524320576197414111046443962929587780283606483413873192173661677784048341769534121144183151448301929455140063531833838124363844688688098548787867733587360508973758807682301837405915583203199573018609146914527694025433041605137539485877436589999575802453659921441356754656943425385213923605491456157056957444622971916031498759132757965902701335304041247008556288123913367232864633178715523526774698929564193631300358015609708157321821645792319737223485114627805561296721239453230804417725703879512999019950940252744233031158908362998320562274048212990495192838516314842561537261591237280346409783468211155796349361889686480386349073678006389017281750693369763872981827379757510825429412787409465244547775801191836710603933124251982810323629409552916934062289199571796032928036704211116469932577876216645815484517457332930221571327401885066895316680981769005075655869991665169986290352900902273614690182640882803452001289081883308327278226613813176737873394548540640555192296892728943977502180175802703630694755585771926444748532986653027635504516140987854543324962042635628130262303332670803429617014647862421677929092622821419579129148073674037443293706448136140056194461161558307220067719150639244413010634710831178072755998059368417207824285865978543262352404346172931538220633003206388315003291370550219511073169132374524124578538757238286663280049775895070022517694058266902803806466693677896067637876851281504725612145868175851634844795033510439715256450649177666299988191606821750628469728268123412575070385179794756974156133234084724533666713599535890122760031193475611880350874113587206663943785606359921973608034084975903334640381411891521561659675246903406972280507356837599952742798582299292585800243233610970480696368593348363626806941085386142877763117248514943625989098720397579290188261511648968467386828610125601313304737720612469057905845587294548096312738178508116909411311601081463236189882462007347470663688770246370910733627684463104434176281001842747502271094107166684148085812216798388817792982263837110225459292975623822531103125765424090369532094315794306753770649287753593041798022451797912191371803718721496666014482771603725363909000844205296276103810159670507822034565642055004766554550595671305607265002949723117347565214431175738771163222035964329860143029933509864471870995091947528490312213088647606013793495093838248926813654771275565874586953992086072230403893154777101229843248772410191515593331856324828940000642329815544712418798275505173039847668029886766914160718517936218397931550177326567844971746038526812548112347617311024239704110623695906701528388286527933183149552519866311069896146603816589905864511002024694283669433193919029814990805990892114139926848042864465010522003127679673941352389200469124429140108244677603340930158742155599493335489640042152149700098976418607809791089309706238791496716686295730513257528575393123665846917541297097105414061232532872309680506431376701349118255774649263870543399275080288482787536971952572899143220180418481050976097211126908503723629693453631206020944046745426301590908875642123662113891698401307654054418351556895486020967396227100071508465365972370792171375028558619389745126495629778962366831278873482578745493623954251606499528614491682997137623280263452514630222492206904125463137180506998124470245160407399692623121452864874027691360805510987531390290185730628154338771680379296137374521438516618223281239185357908884732522789873223897707793672793124838437234413146673649387552644759283034705281888953878955207265677807157295516932983305498937626720660808009037652207782878731451439879234160539009070924609396237620620459460882575451311830293138970554002180223268556103651003318638576677359653155995894952980397754427519104924404365871862996763106014814121700875185232764046293074976433817504342078305358187651748414892233762061373577309196557168297311630724699701152441756171354238043098636313784794386557055863074040105032904221456722003301109588229315075881790421381248925417820686762516082845685161804391736073148708555789754740978321165691031205403069806253359166568966262805828256229416452120074397941735522980302438108842861146819990940729525346587501791940115050257296003243657564138332163753484058630955250839980951239174564318977244002318147024223830193388612419172574164753932534540092905576263072479229582123471479151816462746220378527963336701113546559499240368059295331704352016694842943020029234678290956678034196605874144935342194542767362674008363983249587389753757057859917855716626214176731770409233333577118003957668652856846843863526612108319253606650260471111256699540179959057105863837991994818471463180683853730797420622895407140258610895319562766349616546635158842629510977801673035844106862598763762951215411064438621457150195038270731633659863798580934288774278073091710257183403242787269597063482546998486697687153886226578266251735980903489646534799531487755933903536473789309031344704860439404693691960036761449640464334966939425373966634385589998451158867309822138843401187245083268514266552343627706889401859540917421364174852921850849196249334252785947247405676818763162921457133582068502530402559191836333276875321446435427310354179353299144241626038752827518544798745260948755165481683587371786138245901452195353854985143901129788993608638389674747074473636008045232098992073300457194663200269068958808150649046622873980456279600349832242425863795157716921937873934155838943767300969327119477230138541177491402206817009823638893653413219820336544802764073362305240664895009472379802753232672746523218277404324123946484801168169510045123889343450489449813156221002588355848533358845801132746100893578267477049467544665891839449022909375059956419130140859635894150324163882576041449537131372075952327404613888104846693797198805697204770669762322319680397969672916674653489264307043124367496647077382870726398432481954383350372761127920405931767842624926234418617730524174261045750071156348564447389432119953338825203959716688620443099110555679662449645024026540706279042153748152126723946361434960077514604516177042173231709980714985930229133114348536671293232417008381623167440815449027490519179615271276538928196136609278473546283507607987149408446143498408405245368636736425056324180986520313399338984373020730086059083666066706923855185801278261278047683214749732110624164709065367977261332034481467512322553791463122296075133942414920481747313166250361298829907199898582193274610057023861974033707235602752820481776089783658003495962680799104300291829440980005100856066214008789689288937281505108306789346042719487328318931124774446870680162764780370886695440779597742663004525081624181479288219806262473780792939966141830991642003278529155086292030252358488884173174614522800269036970640342037924795533941722076393987239214519051819767554186795669333846402324125395791390872658593517819453125967532862471469974963151830496221404112025580457524651538885183143332018559487273484359095961453537487165464030118742211473838565449175306059147696078683893188953786601912897173525054082932108896108161532230270633245378025032846335006302197255497776032857330358083692251540743597754417606944351574913283289450047945333684900551920467872310675948251747324662109654165181246004684027659237741615767571513934641694269173024829640804801190381221309742894315081983455727276964027835239361153673519810491451889023267960303949855807942703530174703931967126186903356682683404626544802960935604386458110539654278554191912896168486933913038829114021896111059507291615031552886899162989345933652656389818331033332090985554107912416560611907428966251820358889705045666758748662265359192680409508836555979571005727093493538457480763810079065067402734040656701603367325704422688626124440647810558042733693766966796631010624858660245254958344670866564890752867024518180438204717362042538955648831091673692499548167847580795384162231251268275019892791430854148347509387641518471116808728180175583695636383733932552949109713588782954798187320735723980934302930619341080509656961865709300417411037421578070752636926347131408033935735938467677231411860343377892352724083975657509605624990680301120581491011582541992552270544254437378399468316095942565797921543357719751277790699667076716692600012804712712790662010113538696092816736465552749305431651559990150884816533408250913504905620714035726825268706565416888221151818940273665889218474345109744673103598369202364606219755017251879240755048258136061252820210950195386434951830267762378804607321802928139976589503709669564449854297523887250687281605925624061717711575052450517381918366052671109584819496826835666771808655656782176165375273025878587983276339191211016331028866401423423507520352339221374367825670113101544342221150081581065302860950655740178213371716158866800708467806113747019408175214494483275681023095274177081313545142804937463842048124546868818682754272294915968338592864421652869329851310313615267914482071132421529483528238864623313725713107707363684168902319098160016028519762493878219724346012234692326729326414460847527426216539625196237139130319453070322255789314572975873944424894006445069686916464850833383116959719680842376969054385770773155254860707225120872463186680137757592843083785369271034480236343655403795549869340358787368098402235277345149289131428578357646636350486681370709056970442797297040313180391848045475905285332588794996524392056008593406060763826038274891537781653716241596868294818721288124679680443581873347459287505271197270609770254186953107060906839145981433595824238873566960021317716118711921466372905603826305644969268957334567247063094215576746583755430258794687047823589434095565856638652211984111696383360230574284646555880496706442468910845268904681606386239719273468983011453282886572361157740249408651428167577263670048609284303825989685925047072316484661266838050141742108923360187473344598370917010694904604287895385226296223615838508284201230524896582457285544759858131488721929785384653016455835462628288433535468508217901552887080898573013257214766822725722818358315816379165128551426273458647021293212717528917611761498087557087104284374444565058379585268503441572631703177224531807156439661059641588377865179872103489479197410264135799243142799486894964038930286428506230524999489243117012046661190781471575085500421335593163664601729872098192656641198468124573206229013581787802414439992327005786092052570685452143889358558764088746989598769687082957290317594902336101148633142315798119792949797721879787992360312457231776977853280820822196691535984112925451354082977595399188866058329103642653407713413426139949664530943594869786213874980763654052485926338061589009125698538271644860171200777430565700653711103347267212567318102473812362171113252971069145566364993280614650818346924654258163389113151414089840068181614915241523541392524583606804622103112717200747597040917960860475370670131039032524986763446429613268402307817906460073607401425719586520163251429630374414856112903959641093906575181110265943407751633770452572112637436175375595280237051399468045984579987924863043592218523876683655995962283115808812075890471347450367518480255008617869339836512596454229241373851381449894773879400835664159098507476373859089932431643665957675888471631948823164991328001782123192539866504811681790518709186415380829741777465254508382171715544544479605080342848805640575646526735143758806099822209979590283792089560958014060383542108097505172224211723136546817251532434150909196209653811050152959706092945252212378402211946340292532338617188491104886964609657207498596764468590839487858954318349095574654516631218531211382015530029652044029725753966020319647940386324235523825649690075934251815540527872967833268585445845249540709477813727235304102272735465896772330638354823987150437567322711585835885273756829610749038219982615678761219991219560694736442009887949236427918414855063307235264223573546324428096389831327775597132743560807238164774948697104546570627469059721923575539954150852739719397799351926966060911168227074154617144000901382877578618277662928688164414762040948533656677979001761965192634965063363430211528506534558619547972748025214007955806311493645438343539742181578818669371499189839460022890273607488227075510452796118994539224578251156135285838740115891138267817010016715017907781191080190494095177007929001217031814449769094183449325828614733521645185727308945305715752202355191700733872034183303527552988180462971520297854631767205744609623233129304325477760656325231070183190615678140246952532374998717183163005341402393168538451342771962360451424166483963805689683908200492944858769506418824917778702594603867920422819030848744230051633920269271341397440550650333207140171332351080870319535164992922240317585346356843652743264151114984290526258708617107793826363563113047259115430365575503009092380058422213590596472864976629112030257168325085320689097553176075911455515506609490998770513845635568886559409163522384805290365683005557253409632026770064079896133130654979313693242346078415921589531737249499488720505863087587934543105918752299547951586069645983206887648217771894055049186092083756246343222871572335160628199825091478486838807289328057895444189205669445969492250193484653538448143580213724119398021005458070472540023432060978306202150820679845261382655535112608789727945944165281866885096817349610763478768203013105389644129536314432987184327051460519617956644799541812123150492567278631936256736753012247293022145312906106825426528015531236715758605607239708105750535622462196702144829621207924803917167395248921355974248638237938781100937165950955275573937117312376567100192049122475948227229415767469073621755393547897660273795652260746982832501742872609187026570718789524767883328776156435332573667557546804290817569368729347707717853752117910396339504160682487264282455138885525787834305950575788138806861338955163771427202035443375046262491083556948488611032097030564941821981952431039611839612254119440135117182601981033631162194155013349210592201905173584820608864106516495767275557339062081043186482619956669553911734055864766943035321559210454280823730989338036260678913047364529466004025983853284631027317887310249165947925545436261885370977345243201534931710050916524785897473000782876624684696911150111631217741618646583997370833966476192518303157672034184665593680349516378888308300794153741503177499450938864856496626532915336627021427895990206958425802667735419264726197382766160089579271908440813414797199564755186807662300707264107580014432389572463236713095644550473923218772776804015804283213945183948809731917233106215441509190952608955488741087101586527230179356821061756410808981718602123601549915695756747322815198683539246298260216366069505636423838323229021070050354639636614486788216154376680108372161881497108076810026672281222013101233487795213686390697460640640979849277354783409060988397014438929142745405949245858691370420532645131639722316925528898309625887101697245741163240600540807989718711206013951878751637147791968198150358451910481760464816636404996089802001495098061621518414988938533884947917807684009020274597947619200143058674122774857258006976715345347494533951311300605960729668630015926007383852988322583690756536220753440160215582565898319415541777611237917016954122780570740651460877751458157316740977908080224126038969334622154245351471038169783878080414364343161517110344206014321922559128467317580693802552432872166863895112628570034031370273824500779806222960914729041139432764830492521555171332001093675957928704376436113332589410234249878094541229391019344330808174000519823025862444696531205723244372107192004458378177123006842592184143896588300550592716468170935910449615804122220124834577578417909985991355991055681029137996342521319781463763550866761965382334771071144771753285489927677335535382810325263276559711151355946615353523952168560961324942626302386794990478612916815622306314650654587601747655904246944501371859879851314814619824581400854425645968518123261704439391759958549233574082903346118651408674899410727404302580600159239826184878182290741837700668763199043668238301081610015551775952170196501806324628724665006444451025680133258796840059303136489826140488512016310760791465705112712685036875845472063331794458913664948339490363382556969760434286037792591631110004921164145823358459581954456993571310230188840128138691852990164188688940533420884766835052174669362179044433785479098997042366114081982351592646041267547132719655040053410990027326474089385315286236087218472266202793443045007759444538647612159504689722704973735731793454631215247851072926548472970765544050610045462287657634488344026856902148796420285625891512899245169505991070515598230390789117422806592931137217077005854630241046772836820862939560660946748777668420709420215523655442363648668221939156461025287648179507212018932595497104910285115557774577620015755214219962483067526554369447328475963015422438535360495071987113654753423525950769900762828255535231714878369597790692503367495295099419452709827814983690802886049658518903009475225916095566632371353617920064724458374453234614105406335005076953680882932375275339469476477250630281605109703545352035138462444216088422592055524006262484135286941935152519720293988949085270981581735271972616677210354665782118654509514259485945150272140254531995138145989377581938973032964895194670468520227241680935700829083731816281859840830931024764742091915760154546529785840862937955590520978892551112643970442200570058318210842445944331180868945274983361337080933331866156943263388287424994201381767490785205602406179887063684437708809937385969178108719854506939860623121097144352221143580321016874724834330133320368996525727680096357135379505765975376179666052209744693038149658285937725692131472369477141776789352598519582156758656906178109231859133206463092712462288340802335120764330465516541052855584504877056322778665640666004474914868063118920757664526937562986291394009259942499744750832860060233137192715517786891599946016831902343896749201393719288749915254870837953827738956195951833555258145187420679133630524279990986955998788624085462235830090210632012363727602513257400341648586529848629772566251243619919492630576826101781674971681433508737703293603227506119539338040321754929693897594962829720796884442394114489055333468589431346319007002477590931527262468967678434134748002864460527810558853245904545682956509561798580461066331535737845432657591139538962903278670453441086989170439672867306514853240069567686949929322995620797868216268402770091761152923460994650402409512931218756422789002883260850501454622031289957519340270744255943537393404301876973926295064652116827162499438757781935816611731042879033533640581324829376683587095316021820444828209343648202808700952335161420052821917464449039943664200579720917010759071330486072016198908179003724688469736488787824213071108523168760781042953952586719320528796897636925949993966261426245061493985911265216716318509884327511141414651226953533950540071158352227380142522269753941471470574101717567913140678303159156388283102029606307246096602086799549845946109236727732636166640196046939565660381535801027685893063267566710713546848201766143223789919212825443955101919853969835306560656000864148940819336277831307057987865505784162024431961910816912904956610917266136482064528961609870942556829174178299942906370213071513288328390233422519439477727958001656857612144805973226292391921707625655897208068975471146238849287932364521786510643050682243205832555383051766781794776462791305226740325903617923309431872271134510718387798200073849690635672229126731096448244992335693292301004473922445242433773625153561290691807424362631402188479002814407838619636486573053602370960358342685981999914981440996704906049137383329241875602361035655833193633013972204657214739664027181374412422230450742771418429239361937515216206292784840974086603178660773445448708520672699773805764307416250081814582328562595275941317048724025128792089506433925730443045075398129947757482531627376671680834148480501516727670350624389045645922259818145317938631040107641505641151513696858363092207282507189481575499465408150526403160033052175727312504262253208900702044111395596673987681202798658904832247577984206201809225936156169476981481958302424123420345446891237184635866626685967412325638354375167689886020205405414047520819169723128211375548072626130575225804658918846702012501728833766985264483539176453634429955093203183383340701818492333372010870462086557378809404567434427781909120186055445273908299056491114974143859321002449456857633862716360160365178094907543518287716741221845048217685693938360674188432055479683695878207490843022391924820802169494020380330087261811799774614376403920245267030660375537568595292311138027939796596793209635878843079746417163060092508478886461803113223695048143791353396576266393931147446417059457195070362083376085393938351366658052885531371832715179115962728441502641942034243912007053677755355107359732498143434967396454670488694734505372535004876689369102472093621255284565416061156302831821628752421858151848948713520847019122914461568568448215524595269929877796972864544536293310452504337136155044484064358642291100679713256890692875936100674563950228758219500075895858315467606059911326871660867978572530433313535582439627986779100477999696571144221383137198530732475283241390394761973103990665621804607242731888219936936927099811275737976721353312945970891707600407487772690256032911436109379781261413764872530228009928298350953983699750951719352200510301123872194888612728212934409979634953580912591114954013387555822908294776408039262608824537006634006324202404735766765958316350173429473916737488324354144445114041242597285606637818299550597301689961307568587340524346198616846139973506151041588169930755596042201989812744144876565701767888687319366665220559367025333868278435627783906185470468444310273398710969194285080501715853357253763226651598708027729280786785111134309782556480174431880180137369623915234484373192695025544028719804815792170379930040574055663875262319240024102567911344103384734204165156418282689669963457474748028653073973467908636805916280772880297700839476801559676156994930860994002081156797203942303897807308811451446530234945794174343921033965596154780612939271959843005910332498676364042736343861515511508349858187972320216860028436958171252419083427344504121892442729640382860911491009209638708309738906806512645578749260115911102756197443957616353227530362374785646923847648426766679005964550648087983920319876310604695665003636091864609598770041976059323946628821621373498635151674176766441192678059394823061845303656857748727247549121844702349657447928910069330261163532250834737145175466993917154287528369624928218518399688291834851103060847967883499842287371294852387338357828358034677564412888683310023137215950421558734910844157404889371845067207794454477957042987426286465938981546384030377478025680075282046816303552524467237296208522399906754727997865907177878685248693050400026484123766628113778328591741027690540947233005848619861726846194619651129770305983990364214085636101720706714846921096184222787372108210599206181679943043581846380994404770800934249473794032609222417960236256743774350724902150185109863087933079792758258942831512244976422740566875936145966707170052643448814151930820681447155939362196000870329370976428641049518642648444702386901061808453300876246797514777056991954982581379317764627191175276853475998870135256007448229829194515333643756175057357987045981229501267645999798261182230806016284749503488783077948757850373213699473780263018574564325972087614846452840137133213407123680635520070156237815581288366323878438983050927546643236385992211260159998879528902724630348652693792412986725964355200835743815721475309152466617362471156112587069929308076562924888385200270518387370585325871562341988019731543513485358234480947164019650899643115397669806434755843671209046875023281454153283095281229120733262327455808735216873627301546410851635380330388923383523615053644014994698380114584360994114502933398933866496292680122169319528597143482986557252877382261502144227682869208494916365195594900754361673182853531874938032340386109385862021101985033667931723460451004309581652317055903913172098755842592998759955297295404015758126607535958490815576920503038810537932712430914446236133418281324243970626189140481986276359855644962272284952673295880060924601585444083338718994634210701597691723491419372375876093693020701668437283654401689902659581530974647392355345440976112331100638525997559023171042709418258393462207290546568218570712421687095708017222976883824773570940500876168579472920494224359056942025793736535085554377835262646674884752673292082426843757246197274428845615123984384474556152777852508643357860206380601451355174755734808541293032851355868631767833119919989961901290682048576924590569457165209474152481440278064381970751823402014134125502825113028246872718237020299510362106899481021667134019454872648588093858051472935324702082368201198457838793005993289852679350268656706342103378548846139929595956417126014291332120082482267900340752608604809918346594663760362503996711826628174181996057761522239016973737914915350132041360282717465665656484037951375252740174578577615597014119232821917413721854531174296902625718320356997665559728601393442107246972831675984025269344740381286943502570058598399898778967233546077662622123297165231698783011692312612818752789290251540797087268239297752159687650434034601930884618953096665452643289398636909432510574410856270913716143988652860752027187414552667499224847960506827686403664786026649154010843133936691663703032742216071973581453111265555970404634352103565886710240285423300749244787079118990177682977591594502952741875396868538578846167374289823315467727280769232476007364327347980617845433402350019649768125586350856847305539882338707500898652375766022349465371320388798439924977525333570279715764248842354591661611348465048972574618630748698231590918936069483094408916860014137292099567621222166137279163216775119663326011083082007523600625727771704994276407613271202719142061025134875315228595910688140107419752484695388941260409894338712406080592366097641104708869111731237857334230110919984983056906967705160026516819845540170873867219448027668563278457336368289289413780412192160812455067134400339951293115951835222611570766102800175350340008314237806593612258043634421042629860231198043380413815211977023854715243370871510360211571741937428114304422491720359895718295520340362639954218880982375668845215838652873725734901620022938029773801236914820883658713430226430613788038631554266184870326893463832198471878128061810790330060915792844440308088632843476930874587898509656597162885239988079467695306156210597125077564408073129380893074772107429158493154065820758462509250877010537584556896991919945042860995248316051540430607908497427216569692993502640163981838009957680315400463929303532560481715304144642464488978445988017238721795637546148923133500289767770856013286465661302694489075824517410132545117203961816918206590116655362508978133401826629076260773385403641638356828662751162459100015879470754919885439950181176547183439471166235376695971452836502772238348445205351349203669293024525626008147700303526140577256347849969187643868129246568058049540981305633388161990076143817204879633891114163717954896516485514557617855882456065726355075199276692016175572431468702759348572202868905876310999516265698695635742451052931361754978747936617305440059668656836365435014641044662613313138591621196934374212933818573536982372879258046255532876113579909110041803409942722458643760006566869601318764972387743345941650772626236967682912238323488921326984889797605954627399415900799196862063358673871034848824816909738883900594986063628369472930679810819013055644534961137056830947344613923466417002855885509160181477395001242557850887221119875855562849724203352662698906875227366248476803335042951160519200577609059547341070304508865008126880100977242378210761552412582214536150787008419983878571349402639788387166032017327869171180273075501841191736197728724390173186981135600278698566508187720053302293768746738333289813051314400477052449056110622349767729225995293103512206116942421081570722311587762134055001539461832537246728765967157234900508147224628368783873552520067454997537854743498026461662132920192737699112898719838315418991772023447940188506127809442961396335967957096622060546868237271912077124360156572548745948384125237220174223275490943049289656971833104875402707644074054044072944875974870142088315372186820539446566481250863116460297497104324020116334481016918041962373085030928389315801391115732204421499394079696861777227595492119990743813239420884828042728433346761654234115921903353794593791402934341948693660598055248444014745140950029648646930053815836443433245480420665271473653506180029515821149785146935452711199650017403136837233838337173314813755977365149472726796569487493779334650280010736538889683017327805838326474363183630556037692726003259081802957134175186589896924366503637196571410047350012487144022318344033773887407990480351817752151126032919820863910821079052795543532654320517703507004883866384179895557264774793588121586864232974462850565198188156948272207857849748728029830605585576271966820309194286538459523726666593326742982732306569521968151561133992433304819867700387646530728345685032231666815521230785791960151752517656034168992530503773861133400166589928892299583358917423497898513929844624071373571640098161265324878808590849369524337845792060318893386852546294875472583532038205818122915682198909786584444528037390815390443011780670214228713975554163201728700533293432876471258379344964770819558179488749893610344347398790546482815414286186271556654877889716463547229449320507751938472189578386581988249526040074455302925900813420957730816189335339099495571550799481058065700775686078945531494812305798954523194222862522751686045997763615477223542453028589652811085911048910438691688678782358820938508253681945380786544911447370510894893349137767018908505351486468600497101704452702146288227533529838692200671496842047665379146011347149087167529341502256814217429210774473576043086190467280027054057702423042077612490032372456308336405055755082341011581926495605728607897598559849702835003902696476731258081109866787992036685270612697607476934930101372117625409008152104983486895941026436925185933268236904027101936687545728567867246612671076512994607815151235844878096623834271194478090348199150939284217042496825638981942781070627015603662877153956922023223147099046384038882017870833195280699881249219773947940486801764844552818779364677557783699663805831231361209082500265993239788391113861498393333344073017162961764776145384354499095854220602440154058834326329978808941021460537705131882546548820773205628031412744380527343817420839349543913559734394625533561411259019436982742168193905891831286701027913341161183464149907891743228593365068067052872431930287830854139752790512615716532788766965642688216750134609011574417520225847562668178214666124801584987515412944485541091628588746713436372635117058782379839187173270859303868300730787973420879452686096291228678323778433406591270707971957292016934635145100866204652872715821023528205816054799116343919921548946054568710295158934885549920123586892238818335170731603205757232663911041217582349956049602946013520318940988739871980070352257832651287186381043642644250827646733890222285105676804135180510642151689325454243369510610456599966300634691275688126342353408879113575065427197954971028162266000087572326324030800900843854019540776592288345146931378390658458035498256702011331460082379584248823050839931928850601131941174164987486851512333065483639911505706371385911486771533579512899683261048228981313282253781158786320041897114971853389960537860511538333681346682663402157902906564139322869250007214631111208257745030704561496898743098204248738446164075644093242774471584555952805172624249290931931654654345962956253176988622421752980213608372055722853259702850803776205607705760083396070269458790194671596253469626456102415566427963455489979980701178344222954675005128331218383166686653743812123305758890108171310102185354891821512684854367112205032832804635009509216666246326401744560955851503455041384597598651544286840556818473569829477397633214066249853681553593550882718130188501417364700185895192627715692271339474389071852133312591506657116743762347024851112879101076146667030569302557646833546036165547153112899775394999783145528985744472303205342994115670207630914086818059038275184989200132092430238776934626313974021553665558135052917989928057035574271576395966128631669075895738773025729914333115290140409025597778625502987609432112270900996932827133835035429086719893744797626273644547781362970330314626351572964968812676418768251065711567512822313393360332319038933896165249180248181820825961945885974619152048175518873736807168452295255644087456128086636000734338485176130312764387860469908456828376837123558618608259371506036115381214575308597019720922406445234505264092034077011770558842456662558828601981225349799502257876860911302893642641988437558389540535767620635889297699259844587587570015394833479434443997741889930557077905943201393957797716330409858837460008077978681351027869890266365781168003507997480142535205480549677976344998504150911132828279030215733926682387503696077537108052361466776244609977316010301025144461095229960828457300102840180415417982080812041969835158836417664122417948795472735766478367148279749386350832815456775262806219617379450820392124030627705046166481153042309268590996313991084639359902024751872943649271334699158051058407936307434481800484888064623377070380720205136271743856964828170049201987792518393084717540117355739167956703240241577380573809361576934912027519557651144727383991366507444716640383099291017322644584060024998283765884340192198744044634332242258246603892117394114382135790226668293240057997042446725135965076112413923748400214195374297810942280342730003769963317311365675740830457161898417252750579576115110891355588899494267616802626836579880944535128047922997009412793346664837449955208191004347310458502530080739194511498327014792273121349418870219517077617592213775471227532680253819312566426374390123636339785835753797003561859501410226045754345047936193825142625401469662537460079247785528870192666435144329898476748934532009054912180110434332746885282929205966634430692866444541912764196439358306415567247018994094742284079982447760930398867745395122068157776253109782894716635034191163329311120028763488533055269702478588210873071827322176871666789861317147240594546790273067582825802207796534789121863595141356068579414910666548160365907575450392019161730449871967438719068438360302037556949850449486062673973058164624123138276046906208253746503313281962714403175412218674350787189174312304333799298679801078215004255205596868965240561127041812586007294385566814352931576635998159028365414596468241796475916936917776207810717303258212519187488768945449959548753068871895870990093946409603391951343767652993366163839928996643551566825305181567076161580945533476000280670798815483742906110748656080545917687349246579276970718778581361511720047284508688924270476260129310389188544628638667549911775950756621165070090844056233377010432837274376221553753143128975643105064719140730830452194194955356512106381749820929618892326455288061733623942660516766832974678152068237276758695632357382021229494074022138682388241909569378542793646829702445904508880981002122540609256105955665937731362978953546814184028537900351419181102200983404373429988041174184334205703838596044784245125346157529234665970327970596018242414813310398162013199180314373379345483697096561650097305298379176087543538272131657428572089048529231832107867848001570099595578030048048290831532480880112471454554624626244289902103295639522277620030896173600693123547860724976690131025353274667350572419790873764570395545046838000634317299613438764858865056453081690427478411728052565279859292467101411310867640885874710158408681745789725274458427980951667530563136676368760037348696155318502108855084383118814600746062918475312047166001836833570465331606881379745812001641135133218809276223208462736175954811071253899233817312946588613147440440888197098835903367204431734105055677451212052171592254844320586987107875405484165947023980448505261530287884905625148222750360455274728882961966254418368967158770171021023406576648235585746054824028331633522170899243797254797473337827325459849300656285073477868517097742951866664237346391996340022314770701623533763839034256408510602841576511330191560326123210468927385191379865827115789820141508368343317334014209018068628313738959397349599964858161787510543764403870045599038402114723302709187415145003778735964538883323558393431549366424271893073314830892799039663169345552845145778907015288862164841422861922722176147967780425374043776899932682792789622615944039618527401015750463264290453957447578221119322471578327395691038004198360405638541416931476184225697506792334088522546295623134831383906170344571524590413763077508511943566834691903638612013597663391474833629759972397024683716946722026201376220069278349193406868133414010876420809792121280365395280521859735912722277889984584654434877678196902256337812784154788286415384450495700059692230108903294028097411438766356480110026339936672260756300596585137352985343232907602272678370606254136184916923686410725563158243240576586804514997604556006201118075396144082884367854463674584043813922466656648053538112399262561991614956765464129011402489288467128576054969192281334321258945026298561101512518343075445303395625883220786534908123766895070127795710345177530334355512013756449682357783753869076003565453241509722535642317067622416707654815107851882253875219300059301844300705191002802690335462306569887548465877316159810725979570743052445611203997865267626812150987607115519349764619821673970608798798395750059618811806627134800250274990373285353549318505482043212794135766565008851616655741855021056708973063741405044933186636534143258670709184162271512893919340700717130243936865820738713164556926627308104702794850554289566709665517738446195912283699249623451855813033047481412201089018574124886207111444265841257525776138239346722506204511285717901622954959112679614941573142174913891605761523859138222079335850963193028608755801135283788120277928543358257317786959774680335918982383909276174356102793134020819676959642155694193180329732451291251006643930667895881038990281744668239539359601231353052635704352773773889431732430095022752773170638034012947955228416414687058218072724370959145819285855974188648523402097434474151588299269964661163057996285497340804905733934056478581996867382190784299412274013926535287965999169464334832105000326784837498459954492561254332576763171896987072294956961183869350872958295937751683847089206805905108973787249824035459223987896215548665846327066496628940271692051789657552257696085392856197133817530926769195701134485648066886102519940852737760201234383091430307168743070782360138891545933947625993934826103596905925892298114995654760676931530582732972146217865498530867694967235851162793978130648321128129467485422582344469389430632737997730745968644483017871415696929901120463878156064075341666941664558261641594811174643780744007293882166629059402751210740094119111223999489556820592376175541574973450408044777429819578743042788313257664127211349249404861036752405272588745051962393413732679579843281522499062918571523603410207193595515162404152275628216060413903559356358823419988109062038696756789051928184216801505406062805740035539017749860832975945492924343820330588641269399839227039500260025364740732448031473103986691714309689258716682866756007129164407774110282757611674992339530514035196423419583762996231534752525854995464678501262763484284197302241887308392664926639771829719402565844701641308730718620785357672880030266298638800742202741113149989588956614706978550728875604271129967847327403033786983157637719117928425650824928464768949704905251852130226860453099311094199425001504469131337578853199283375590482123561720014475689263610960005163879014086878739884252150870624088967122932820087816185108702762094908710707813911282335275116670545628164404715714776807650827030000289134465928244479380785436805825860804782714027200692890846353167739066611783546263299342187266443665232534938629550501679118566581984964924521235198542894244867145986269815518439390423770504001878989985938690588253576637470533700809441045610679796075830327716713911676211652899834988867955301823979440422774743944764632674894844519947296272165742102598299650428322852545246543747453009831840304414525821054062301624293450615593182408555994000181194203037068121911236356551498835057027206807658924479372964093230417031084884504553691472956849251855987171191119532244100110301047079235971073128535320168468032928104014056257319195039202225517282429435422084593478214320504738712102543648526421569307610773287906408802782109985795010405218638215516343349371871501132847462296970802572932644720853778244792672154817168041186354951784790747023996885699409425541567896057703002464906344198286230981983362712210384162098451587660854280431424388085109591044082470243565912192991376757034742811936996462723436037618519969446440304001326872783862543724590256983464617020681047217571963400305909007470909190296434776645854092629184890225977984393562740860007303940363777078729610131792038681939964073231558138675942060498745664194246369322356290753254690748784979012792490997079507327116907628764224198369613903192449285032439697243000978957208412244176144535182736450995849660292100550599472708022765574588321469282430676727235831128893122179188528036753461106483833399758465611901237422161736383765985350099449825899444170344621823726444592551060422241857970260291369916601212518599389045773839826493656615042425888776771498526133333381967552484494366323429777212979760837654274987768465384653173791078678587992570470437331610846100942577398176625345298823614399509194956479204481523146827547378759153307779448760708365767438514434386242332401365354850790580207449019849419783885794536143667369079844348606090278117367504983853663329336161641617816173031316535943286151822296779201798877873574041509676475906110298740253477861427253619667258249043463402350012246627062660497065634777100652305858885781919124587774633154039809027060190473117292926407894908363358710439694870838016392121196987654473477311429049455866760941938154811128254721533837671496539940259155383729828555889849649596174761357516602949951465336919165572512156444540476770666144052338155683540347449348977189814485045595576501031441239902724620010945109826776326912649199224518271068922249085241036848411499953727898009721815247538358822137930869970765225286175929333976753528742234231374646145390690423290227750713817539913216215983000932533809769416465793109935124813479981066010446838590412688835577367938494757869894756826594630316874065472352203223209887731535889503000153876378618831533262402668157272708116203706809267792934505547586367471436774426747199134454756697394067424609245480836209161727537151546423453955345177818928591047630897141940572371903177296935191771970205446669389651605052481916646833241727214652668835922032019454409286289156749562506585106398752327726534144654471350247026972090555154125928037595556022585377102758412282689387047592457537873232798834065154515524807838693031290980086226804023569005342424075717612843436177564591345361930963405260697313429275413643682076162154862981268579686037387090201325807962041651278117995543342242563820937537163512277821995503509138525174057245891886554066554315104447785885758834424372093588747736663920763098230465978200380268027240589707775844252766158875611163450423845419274420039693722617160250019907897936767906148456676114680119227758573750438332413430082845642883330926307647971791289029401040946920818399373605846203717452933429744609516961374252598300347182864898838162112139335119678332067772671697056576826722445397289537624415852564531332789027454549875010967977093866506543532527340067781141024391720870185721542772661750781142292340386540305454148590212947869136873640668045377309276892953469232858020738913382170899323988878566041025688517337309509841769170916659025429048070906267197148003321830003725087798705876844912288112614646473774753729724082294293103522017347534506115593170733217457440985836341679483194740795763452324244223718298946930722117646595430105876589168841061288806805786903455193539299089219571869632815147130567190469620879071046724893600019034724017328522143117004283145157268933609959424160058286274999633433227862887105915384951544230593858049180107441154590380544192632425486545770254824229061395235365081830198709903301707466183498785653699285630917423355088266729763235416258698646514649811725136242361347695832343739189726911458522024587907001079878353300485660258765112847656708166746126543978940545239496330749793642868048840557178061280992088018605575789444611496157608534136760183404550930570900075418615277368074478031425606863794690644227368898047427395497849887840485843891393970542397372201463458479530953319222351016259062223416962573958352447339938596492828596528842720020166644475902073478731360278880590814944422631319021369399219173384602347096744079665171835355943832892875482395660319982125731851281152683810381482523130743947429646114124026828531856090244429103171497473754727854621226768906899489636399473172165095687844961256849262200380429310653757774813416866175206887507030635944902552642999803287057979673341239508922359326153290367651927267141511828901643056639369698515081406538496536038135064615034650480989640901034442697020038836688495933803280422009366389799495351145319319145835317110013301966997946635142013758207239580656236134462134071244160217844353787209783246742783269631105043630483717617172820802680589515503453464700786353836023282616876396821399520187350498263150934789325565715456625108854473834541286162362844017335061506096533770615432946723990808323482102874055037724670416163036425768104290092849093978107391676238925841108482340004620647194520938411146681452724170658676441510573546802061408836034712069539731401262903223636537873305936124676024999374383190445134568670003858213610885405068182490674397193359515214515435080237830973688057402761734365846162399089337931591407775567651366469307971217374742455143414743454315380245652738133572008274952370621423296212349505648456797738415960726254694657436487641555974318165664770146101505747686749664518938676791837620947382500720881409884140442217229797320726178857414555718544631573683467994356342704653877894035810483435002364886832937048408840184824617020225611009950534651725381649407895523673772308271162199051583352445124511848537397534597251630478714900098385479494270068087358343143147989083741896548529114010582123233129163553570125735942870796836617095345996545814256548863276123140256809127079290341806417487673473128232892143953650759704678332532506609057758117635222843122736266532645242390754331833050761942695849023965606479004994036571304275729790665705393639733257217058950884959620185848876582949648898432692811904477510493023838763429583405514693996618175157630915540056173676223461322062244126447677740410044086655992668805775293123338180051187261856197440352853858292773290314404581070849486219180626180720852588600813659135725604833346419476316387811644128435370076414207788306174360834449591445077208792471786354917068870131992505453284369976506260878970473338795198612570441947376275925394920726618283495574592719468162615684977150271179492155583321003729794276571265747897145701688529268683014902977908309338380352425879600110835577802275583747917239176634814787126931150711740379667579239614248325188946783322354734937548993936308546563977703777552405582811961552485103590294699846264790872635709249326526720819256734425808217959154843891346472684708479499279897952922098643351362611066086386508885205090694694779130975211812309986543263913600620926173255373601101646184969569849123352865165612609596539135581061148840661867437190199841113755336204176635330997700052902616730360778822217196420659521261967911246509587075558276837972655711016852101929412915363222463832268311689693180803578965692631551574519331745709153083131646528799607578996761814728185250507240313182258797895573024077493174639108450462898439943494254979807265499663637000577065529143345875064765443462552581698872337919261186471102754163572904239028812756930064327002486579700657285074514052060761887842101757371527048739449464486717775100845471175822740730600409418130928539485877216307190893115211597026357535033391415747177155706023753685623944050453055336005723459233190612511084574636581005572492186795270197870140870201306132931562254919734335382923848913186674194597427803933026524083852000184201459202100315268135388628097057208335093631835486041140905530578106177222569514354330791888860913132791590795487802687881370292179378033529127459923543395747486299061114168273539922239984451009157892412015808564692548657911731490239261524191692598294188156828926202214652486391894790546792399129684714625588584979266841639251819020242584189015734693179905045855790939546512447093594707857349483267935813445522426630818295263932815661370849616485298308063554255644752017100918540429157129642545249389000718644871846466869258751999738614938341135376903804443742995341423491907270865478761364578049067246395866752580612708223143631085613558339952991452229393258812692026615972650506206632133318233069755910194915382401299072804849964055666704498298525904599474085993087279232507654264330851938208613254789677939657994019668626299902271422914051506034835321147540439102183196738531764228705746550605804860520945166480663694193943635455843633122870332536663885512386643364882149241368128498505175308342956078176068055495959282839896134040292713090290826800481829372334560929191718400194708833026339607720508207051724240737407110598541189649419093974066889680306723715157956697337607989719411871901243322476536904180748075517238678649134631591969072112846696371209525329539506715887200018932379139961778836262363498766345066287781951715734563775090386036234285192685410847593893032993892527996951695459174794738853187756198333723217592252620093383807346071625389655054723655570631317438631795850022567247871249155655314895280555025177423392393235174847984206875095986526926466735635692756730709876287283933474593965852529566512935481697627227432439063505642962003428022151340309962373771515821361349091997692620458053199592020513704037828383148645977642567166726428425439703042013443823058221480200091628909935026508850345643716155728525848700356517988893010367044466221702510513901687278435679770774164170526836218436924769258086661606038349896314933163117793692968635535218310634996417930747969269736015300436889440059538286063376848719768295139896216293534960237755533065121906121617555081169889218293548956880891911444436687404149044764826302618071560058773757252769987106112817003552277881413154252763787284342598843620228319029853052057790809372356540479515822838117373544505781932960891399540487634358016546460490760159574203688773750975128598357998406910661378069790051682927745559557121146565065159598483673585962788992798884315051716782355737881939573918781176310896303047692922570116074016303492382854864251528521180337920997464058687095566177587143645414693358684938640811651187483782978860740779257414622941800478829474371797116079213445585271489853989571184090937684465975551751724488385933861156672244035911544601526730679748352851423976600309129248699134319176057700854055115789222746033972316055331661305816291848354169477685003715348855408935476539306729534917567058801459264178049810061090984941796276301623046823992165095939316918776822957190657038060228957416719417561078394868540810843568527576518605485154637820861277119793654663785618810722014944952434357519447520410905917108282331495220452773455066286431118316145766494245247945232969765779693889592720047012660691467018187157817973877725768309181410685913433667005287041983945185200366143514721286988521809548172304187907367757660785717945362983291795812819732598685645386230972718111037433939507259198611472023036234493821625397211392431422862026019416962599330614372487879849317265332403964782173227155003406169064793588155230123297332040879943342761322309493345346350031105179089389663892184067278897235849004058694587639674243250015582786544000098277392571594805119478651723564127203701362891509310532586741976406620663563827701867131434105602390594747190509867483214001967775406794030737572863797649268150051552509110821969458888082594840076820331118079677031976048139390700272872652635746459326270243024564683226335173490087751634817845445234766785842008058723866756892402582334718332537581068205967698789433363063157019396271999509525609968438581303150536586636381628082775326101299051757933650323267034996992634070020479533642340355761475275715116337385802089027739052918951112575014977390530411271626075553008792143944262020564721951699549006001222409246216517392064302421335439024594141858014443698763504678327653405535323483429384134366911918048081684252310915015352908121698416480691568764253718735943131988976227121830345190255299612274717452951678156272668582360004734468684292661219325548323424314297111417177423137352641442098937826940024771287050056049080013880204264104334297115391460342634474021483883052580009643697315876325627241199509305952768960065175081229313205957522755482154746349872153436314538656634134696092027468052804761604867816061820154696566985321713772928935768075877811188650958133863141272133434927473424680026741122347126900225356930478885896672492655681133467065190186091203359822022500847905468690061437136172943099787558514192450563879067024727390075158390581131252680935554048038583503482877377719605054247522175111731252580903983023201100915760142057279742684224610265408410559131723090028139392141915779871095648447615270416218428025533797443349485261836585133034416280051553741430244299936822315718279386962150086060969760513118201417770105802873665323604994085151367115189496523878640032182745337060831553277853824758533222974856319314198810646320642397526864255735313890847758165493007625949670571383725487762908442803348155138827512434682342534653977958738053692545742865241995509736471203521250406045858795279634542831074254285892285136302861370004827471266206349502945530924822177841659623614888002939122098054614786575244606266182594317410544631853123628472867507372636679159321961063372677956060178842527294520372680633362304773685716068668419740742514046025647513372350779669709797163641427710678977485555000830589896338896130065556081639886119638542887018309295112249214140408317161619918728107239986116524385728844318020808086007608482314560709131735016600872767998128963429408697094137633963770436253682776493523251793833703948868478197916442393895296965961933882577309772262008175722620138262509576963499138387142871834694533726857143758216333448764701497872892124461507227996531940821799837368959995906891928129253583422563529450889921697264064332860759376407705424854609983403366980035984386345353059653648255220593989141049005941206792836243132655024556893616726351038262078202693829900549952519900875437317423546140285131687106649329408755586670969807776353309240858566510199802958915461662634985565255295464419158135536331339185390804719664539949053957701804477194035415804497735529806602744315987550778060315826018416903515181281945337609838217088493422703664012876209656199834290818916643242274581708583956798611016823850700005350856770182705526058031128048830333015227890965728221557836569788213975544157172339179200670019219037909061271259213289755752081299049538901785055073663967783191931161385860263495345609701158270383716667180914709822505532218881927950936553700941021169075859683528475980495087920004737727110962104320038272594872721562105622868885394935359225127125428527371037654867011698125325337437876625939491458020170822802655646758826027913749423602976266239416143165610880191062781574790837584576921246015321991977110393209941606446399378945433058413027273646122556880684974731051088551032363921245371639329227360512477488428086534395228125543392529531780634838642779748770807736004865217426872468354639128599574237059628681218699537808265994864160586191246924164491305153926061979158781578172927186770453709561411548435767231228092314866008450767198158972558742844955714343269734964650334185966554391278511660168176917829465512896711533386641492555286982958438114021393251764858495510391086197399230640379220536616285176673413900373585317273066427355509431181865695418203228363041313520600476953594919267490189883031825013612578623925956507031034993989301821719037456423631318247874603763097401371569640274772178379829045285422632711454001468717035946278562824067866825967549570814969871498199303792456137048855261331344409168148206617145750231328292615836196198050565680191753027225858736270769758040027609566307463748669463841013462471009603750615213097791958616028767777552207724896457722324417836644585720037446448621743068697171847210755710464270624196004588068243932690972738732041532343041229917438363978203018222273887501233379670949861072915798412461052824200264501842695018573484117322378662032295009938645900100237733331728405234172286100557203500143064859054289164159727254808712934595851316441934338970582375094171885237559724016030844050165808650669710170871205273745447249811332743203386940609289104301224327229703773888790688247486101852492833946615550470325766116175576969036374822444174677843373080303928769236870967805566340668965638781757371256299417586617380943498473023567536450369756931083248871322112717711415000791385320393172945965080856935207917801258282746797742139952660645975168080919269856384749367068156719824104989498825804777237079219826502599468515222973157464420921169827310091736401603806664272168289025132394000388476089589337444432965374543217875406254734927188728046219563207663619167386818390406699354322335302392591902525894733282027952243249883723184645826923373507337664735118891363266693064330000168649590482059325675600641231573473653513791026405130735230199129793418805209857403555161646383342644797235879371072102881016741060446186704259823197325701817820405288733964913566185224003878662983796213532194613914610682043585535591328866459114930834988964236832272898300423971931212865692759272433820339665735704196511366522558089946035871290388061567416151762431959650497392491484358269163362023623176784582482899659631998885456422356804904881419426822433401093536497152876714551267902630026937966812547570768799959874491906498453618022924962413780200500702564158751456078995100660338505043517792711458812566613527657088156620221060778385780551966393961964750374234916461617626125085731610079092835542411924386581739840843454990804204498549814752275708335917001925862654900996678018023761018263174829107125734951589755039742324461620555928928496224457658009514071210165999026311850231190208116251433087098630916826611824570191967391417751461403459424680097758256478100268009480963264756050616865407921982571296997441897520433882228746176595308837674316193250472678449138601364856996937277581938498709854487170530959968296423047347288528364246868877983079876263642961250988646638033621587039406346040808299942555110314981502901720640615107283328231009085187186335061840846957662761843828981054890050004505278308909070504479014210239066945631409879520752190578209830964738147002731229490700472835722867919407493300921584861177063422135878666017418043682551927589812255240296912419351406217901542509910616191220574382850897629135166719655099673070545768910189399836930451754545271055812540275250259477570068784681793628755276325665898593596750093265047618211189871457259966543273219010637915899964916782463288885666402978331154624038502444844966848423445878249466969208013199065000990255125719746402035303164849802671600071377673160407017032780129941719108880850411484732687868392788518062572673285436123847122212467619952833415202166663559731710983271541930213344837476265058725424805530473806628333936595781231888596606216692181159949036140932010783851436693626540303522413961838308479843830638417060782134709450478316656019888375703943566368458927715408462902454412570722433617554278968769462422099687490133761317811361392284854068779173672257312238803967566328763447177920984713584875875301632392341672118336230318420468836760633141181292826013461193630854801384425673152403270840837732974299512229399384297425629738730660031279735778235519790395151900693735627135285067763287977098616015831299117695635977719303797294117731737851931961708448103307931500993958447738218289235612649662659932383684215213910649778845000016873690928542099397441920961786970313320398847355750231296583255662067251454889931817711842970171357042281162440723771122095604619647239644303275170359010196139113782025424237636195793285435805275886321637699794252188458516232697244565769902908984225191140195347059481408980009389490088439971800936679964232714514088419156377847647159948414250264404030029606260522661352306155787879784218186742880186338387774193719752889859321824620363839587481265006568688615360380800286572101267468425118756600070781290746561655526932874693288253805503898284197305058162283398183893892805457263365801082825910079188305477585738782187076284621983256482074400815718835563304351862039717996610786190815473747339405279956559499351694267857412068974091085295185496823448932956278122034333047819112158727105721094165113724243535573925891667722912978863555884297612696632720152413736081592958056187715045930609295971296590830656777648577543971837268781390172925290610129100232542727936478581980700059820229848741355396917597851316612746599295023335717095323065378057594715934572175955317105206541082212580620774041031334857825405042673375089034576850102740024220704612401613435465324243992938907782868088205544512728170308298798757170448584134219507655519989433639351590543210222698880323336363112692445047542694852964107965002721314990711102340090709447372439184128687502704484556588496947414037501903404720278660211449013930716813871835730127552954344568395799352566488587832563688354149774792192583774331769527859577557082985221895024969679783033499258137825076298668926684999737567854142806203781704992760494131466212479417301589389636673266425528699582563002670168247559117272471958864162495988768032908280014939632017938613813386718882571227598704352696456091288605412989839051548339314218162503139674983161435830773708515070602631136220292278776675387779178018725030582350264232894486428342068727476842507705001502387071817595320680027812060334044892373227496197515361265274048978144037663094844589930593209377065972067025589121379393220880292726365179648328620325900234381700704878531135693223368127543882350157797088918803261970458682154797833665882361847494668258890798105916942841682403515083431834391894623538749821253389311042765013120502466182145038718186916465369247427121489908847237861894580909287969423905871793247653690098852393150004281025562942104186072190432260261330688922634792954006214697454697631680689619200301860924010955357162196298028727340557939776141953843712953120424090343648462580448506941717078895016384650742946851540211507815417102706311109892529672094966988904734585369797973494684650017050992528474233552226790738543991683658512163756547895148843463295871326673235841976639067321035470564754906616722300894620349080919676739067526373091147455484792283244799646365755236513247575068344487827734934046803355651817690943390640287255958736364596216340724580287984667036711130108578084463481252508086942095354433010089961000889400432739632329113583072483338492081427794967211432701984143010104083752469380929037761367937261319462461192640394450384047574043120839318950447881080555575725215963589982355087305321279267106496523077953166741123479479112327297425534844582045108046776848224661945433142455080710158566715783808115909621589249057095578937186027194093488697115215301210691288426234020821490581818512538137826175696921763932094417830601970811568372425058078236096019683551049795540901219565402952897420085200476822694009478369749103573929962409917818228210176333395056667836920005749139238243728884837024740892852207629625715204886628292674700093638368968947717888269987360246370875647665754708116655178025307527319516615287543537636750611811082290508521678130309159906625913186543138014395591125159946155073621589098807793401251066484445932133290425783333279093650439970075666663851213761457671460069594017748971791963147111020360393344979115915783080928127632120928309528305805884141174174123204150354325884189036733535176231096795372931790301607773060076641803009598605311525999757284490501802495414218400015265749347821833647832532107990478343301932986294634777131190405588331963063669585229855556874113001904765491822522275307358550232243342885133500851193195926186708039905173649462245187809811626455253885516919350462640077692734997020385212736679642600221286085166305123810429943014986402756007800175266317996319667690518032921015336168994220376943347189336991508428347088495969324810461754960101672326716907135022522071131015427788720750846830250076266638305971241992454268706683406322831827866183010085566727509073725081060208501823243313213195734522048507435491152705953192840142826259934049365526595071603073672039496300833757223833513860548473804320449651282175441777546548445347593540648278199050019629469122657272477318591222437068019123542284154273030277448297431404674632050048689281465568856230068301671317010030763162198944347981080524418036757258669746590253474194478119914685156802064726352028268241814251075112906707451406186536644163626976324169670836280719212542018364926281892934232611315949074340399294200185089033756342726663214277032611676204493969826874293229856183601920472253383622787746799229629014484358521776544343798585421351229862663304240358962379838308805426241303597767795020239637914048800361775477743342462559108338879344491494580471786408456733065806249216382566025242670849861371594692250504441433390614542527893467911063191067437657345160968236101148581469577795337388992240156785827147314551007686842338675589246854311026514455471033225978682992781629516014927105904457244606952852088803896434880097914361541333924742721513981668444886142817698920249321517114111738868375114688608544716671857598706128402663941684526059215667881243498509711334612358461659293067269179522165161705173862037346505782588686727644519112028431741825195750318163912019428579089160831170751946361231186922151079145283032969054283481423910244136753486155040720584899322947991299543378046753158809364216241925154779244012489053907514650729690321066679248432599648640774955643414100075813571188791581640982801273340292689554386658120885884294254891957533252959565051608027576365556350151926882614751175475260515978045421830480045091783238124978907002896868647172358688062092879694624734179548276461174382564832514419264482639356235840315110504468437312930920377687929312384679864623305779915495465109569463882152025035716008431100139790438508799788435042232178560135770516704713959990294737084005955907666914250786543571196804940704585192694137821227755250245114486861289174360139652586525050234055974145869736752361596989961078035804311169864592349551620420664147292403404971793194404640232174015109374343109469371297152608325492907230739634261670640872778075838595940157208768693855484337230841927489821164271170511363255649250667169801954656814510185311064616745295110433889355867900569584367956022238003578516887721693680196234205059692724600595383759402619146641432474689053036427427741533472825387943405511754562129363942695788589747393653321291521022684171228885841465563435399857772634484368814128121321086191353510380901932298051169968417421769931821302971330286369857580021990209155266143311029015060900906252640285960161682575973302959048834214888183568367210226422333067477859626174089933595669858791918266869626898034833094735230233036416060462443040339693685115368793801667372686727564910381811417409198420886925952361567211722680306005441236586421590916464300749593949668046044983995370027900270279660541210159075926046990586105491843330761037809329337686661093289664914708973332937946297746688857419620750342336397152192397367562881270055141892634651960343188551449126824543479869963434923722768329205197872742539754998781372840222671944535980790364536290142462939320320873891486312089683148876745195986222280854999139515555056134500592888287589223055931615669447602959464315977252240350277488249943344940892471815952727276306600256875262041969761919689377337556137357424773133283496153020857281469563700915995361238929493198217675598941571473332254566935837514245065759900242807923542856671271680148730633403274853732224771699271538826112984084745186277019638858703158265829013414994931241030160160867217649202631404143366207015728631293372188108599031449134125800070688600206284273084288175989105480395212817672098128234538437265210894700608467664928538906587901504789895606457871283786446532049377050615553723111183673531179682424215811122406427298223397672422230775662321085641273386432791601887313769419114093794448646337630402038422029299478600214505258613134793329445514091508316271374775503148834424853270733867576410890020621526855934247843023096839393467478848897715026801256903931357882240895523037304685111664572224571173521686842728250505540864332746630892176274098949855731328163860008671485895341186354357526246600782861279114848376762323495943090922928650860943722535494711895583038737600639729639814138021990165133860663334602290292787832530141650162034365950886687938497850844449031177993287396526533995275056726087367024578812572901051030793496927974446987326703762456151695152022275111947382794311801086717206673996586224088123035693060688306708053414433965615762698912626668850396434617255849785634002930889911619296256998359621589996568956620590494008814493740401972807384107625765649469572352708881236016742537756488206845520896569850987865868376311572631047479407079284473136699581409706287601518516588090071911823383296740217831399064628597127841211761028374132615751786163775411938883136157499849246557196144975368033699320021695273190048509806276153860228609145913385206997897921225239963729372804395357583392115326272392048994543503063137113599793522420293391992460725309377540429619286163675776406325846852592440816566326250877457345584693344335814247330187099956787759490450530177508528366590572551386829217732472647262372649503514665121089278738468775842100599067695540111750992712410640764187454015104948770731605896420006426006472124900702697351113092343318081504333825386100140679458041268548438982335489977813430989602841586621177304892245054134120427903207118144529595831510839712799133441460900553511981701793618041579797698575909478781666621482649133135612214633466836889384227636369709344157290476027816312668619894044607927060143955580632502817366511474544039249540583507181932231106837753773334424607395227743006466265567246371826553165578816132824540902892404392135149744927975897549214789261688569399487613212614272916453394224672502294809397039751952341643823833400139516012502609135369162855268494043041867971245182654385570229507132013791446416884706201839497563083824949248143888311631837196392780300094695160870174267952551243169317405153420038356508145881790364312623289635190066820916865020647721117237064359465004321316672141664908461625904114267642579715482499181279564518882083891513419909715207641425289434343014355526278130670787824834306051773650619277786957729188027938453502448488862574271854100678677452383637101973137097035283416725686752835044417380443575526001597362639469852116653847829862884743488381318325259476597134660131224956589241042541384865869677204633973745001645478254253323608844836584128823752402490501112949839630286415602681462147235330637288279143437992972027677289163493878720039038277838917562781718008949751701597021491161633466538817407926808385385517565948980191452466965684619758754201253086028431997534811047235141213436345902128213265220128406150556263445150888354457285048753555422687973396044043216572411237752707354528904465626929024610943882846181437879738851279972957787766962599209838764969426124839142651688926610857501092746270476014881427146591095263395365700874975539469372979347290133998314732342756905536566719170536117759850046954633007873841979250275009561290409108511913481942888428330037782090958882976531071325269337916249276955859785183187995138132075125156161253399013074020714345877063349379729216963979913136158263401540945547259400776771205368021769620760534321747716073066892121199938328088633002744934221659778159081889627040943452906975492463869575726662544510509378741681411600268685962592725209256978228949120545905927427526459495182880406628368484619696432863801374214343249963716753884204520047189480634300670480459482684240711277031725757471959634125345433130797795516529941654858365248321367452330308248339956781599409987340263339797119636452881660020281919601824038797786692148526305282224539210349985017715666153495941600126918639591891278029560485155679586452539610643758223108224345486277231426728707560852487791874642402171777176009669959270454798970500746956513549732683505492101645442442665341269003453558917127560304902066058237352289607595549196742420834555622804557197610182451173355182734607938218793187292187129804833496588687962007336800584320221713514193706820607781171273908874121569749888359808318428174813518802607707678484072903561398921975280329582016636748510400932502059562798809260411454570977733524382876150107145671583504800202589681443926535166931971754394097997631950930088745077261653507703442116320591440109286275717487737240799895545700553328956989047835575107143643973269027681864206365940742058984740740320194039875236165595124277197751930483533104867802027827194609835126413285891040996063264553396420328912217026953628830223608106279585651481882538217430436946988431291819733507283680559504826931139987906220724615625608918656880467986843330399921788498189082736157488950783068445914193668099824693668534191423746688454486911272838354670858662683497825993207370116429626537303369074647880926160500124179575454485797158123140294468298774777670493587616771490845915240357001127179521819336875113633291528494230580734198203479576262120898305574418525262670344044144458378890113286327857545002179007226167080094020244891998087991156262204325542224036707317539109889048041474584104450200244691354841711560637871222582624541394389838488197130335365525612599360006899990505390982052103691697588304465983432730252217407453010431454444530296156979473319570804170125660049598406451878346943306948016407835117585130837448956660915570715875312814893252828113793360233409024188870607494620230625036219481742096776870325840737923713454501281677814352533063905098962183864018290087430781779107905462124421003987500696614179963507256738217766493895815138176965153379799823586808278322458311976526573193981824126822185397648794844347591896178058575827248325678615869479553690035523188412498731861856120687145691794651974091232768541637369732537249556308397967212674699195583207387210050870805044915462642389070574640743609978111425959016163964753687888404584023592919573985913503244000214142660742795471239002362364852664537672585919044462923625048347277909999804443511202809010345533923609474050610889475564767365097782179414119151819491104407056061865973041047685842473487394410626989271545634871451906815517440582909743205192121444687341888089524227286186312296452866529828519770223501191497244239773962750222734435493180641006161748179428982529173799981232634595533284137496395642255858274805159631763324424178368528643532060531182234872773604161513927701521418991256425062060511816876784305795390745249446944344889937068576834279814742608958106418418700033662533310536129692255554431316426337624829762150549461179605681785125144850485783268756166006414410852424510490132260008295249674210168493849918533167749931183298566931460531822712231116216576999467941089484075748487139941668048807370980949081369775623268050285529577855851020922143762149671970619955332148997142218132638855828715373122603666042286128611121525830180916268716266627087994045644392883519511279698819381650892555212590707239955807255292386199752570214125543256236615917404436494829521700579507771111389242814703881582667484129119193150992011272035636466990471864167370510018277635291427593973054718907967809292839446312035905917962846551110908222268331780446156976431864598373039192994545685343888286124435974771053510942158773637712506812670456423495360034732780769803830489391361217380537479259595827690918669964075688500207428110094172003426017237138026902927529355597994385723444665621872484218011527670203798605368100776400494877567473853204217138817345908684997380721251237198926805055736963003873817872084985193625498377670647419452660346067374514237832575971009161174639351174024665203426536818731182294840173792172538025230056422439494474326817605607920229763646151485217438028651403049829568162404089162465393644226077036863473616834720883320300377969177832711048764426240171998377020579619726844874244163218274728832985383865117375556205750215873417688031112626323749564600329230271338119626027616426325634312822335040228515621428015116116777259672790937524917552014941914525193417938533453845104830342190057709932793383782586619221160966305621928267414105200265155351739159449580029923113913249019533527199924303694269585797114686299294644115326607435038578483139450392857249136689141158246627968024106199969252719727376490736550894522746973568692617340947738767259899336953039318194006532378883524853156327345540562074744105271468569381324437314800380612400540590187270439405265385040680085763836433078733402902153636057040244072887572007887624517088580855053032503281733281563689312359002419185913794734212591657280580629750069719844238066912985050741623898588890783649673826526276081517360446798773148569486165932380537123684382657312789740895148852511379470097943800544861306876506960644793494546888563660349108852620574594546961695696388411845696393027447306268735546639921828429492272869225980813184442965485572082705230895806151905075840187645595487008273500983834180436976830147675874548194956030351782232205204400363783515338715494454737517548356461227273771389648125518831649356819593811222400516048742874116418998143913345961601476495548234810390256859476167856654417306338861168763915311559866484449151116474253828593708224993419722411225480022478982602707774678615647925855179705362666713708492482684858844754554421831240634382865721705742740063269228073224748175060783967114459837703444068818410379550790523030415992935095356880106811330329724959811596556291799049796085370019917939159764354020264300148920222347933613465947570861902974005189809944856561738234084094063350793691827953218532384302612826962008445918660545239396119607475102764214352905444618644208745189903519147330020241183598537644416396136740434632357413149094549954386283348664459481342600213865779023798457326319178446965096986412410474979573886873210263560874652047646667651803920393694490731935297566550445516247287690835395913863558851290014620136280924801154295793678747926885815515993513829328987267600604797058199645468802855780073954526035234053465255824260806501902368338584162119219589952159597629333402204688557550208600538920416942375084312071469185457109747052759375372176355107935173870848698132066055078750830014241824170939844894894345105868126903658249059573299943626243790463520613287484915923111408232904538233207287341943301179564671089447408360616212378263146206304361706654210797245009071984940006704546807292247075985888027415209120198767679993883333493692237041907342314260042652735656632765400066622193053814350411846364827199295822473437363326419160549782905487590994218702720384980069850397401492609537607031462199828529934681810585697875600980051191417021359414732461270329001460534757688121634444218691728089631764821268665025672684901643627743493486328886190498772647497082886639866794174725173702554459491472579914876831481060433954052326581560262988051363890130126926205190264953101339844336768823261619735674244783752321321169435473691880924525595329359925038676992060281380898714732290057382699153249639009843091866746821104999286794430689420921681402023215035559799281127604081924070297361246964206258619558155893759787462092303701688611422689743787520883701735952899452644868038086509859557797762240648956299119657594889349772840525090957343369837820840774935816255311410425399086892893315982979550643396430678127323585573894944290839703778976268483898899468217534659355324687733119592174343154740040960440824344440370886729910821922561367782124320099744823714743944375235977177354308017684414557159515000039206943828946977294028086614663145152881850176497983992500895861139773332701433036400079639950764988666158567483599357653313869881912274716701432576578096364887809051310146716424610385323674746822402993728207277462037907870706946145413036165965484028609699442592863946556426489103578108991545259234765675478173530521906516136239962270841975585528117368140902604525206507667058854241710182474636186983082052459652645235648154435518429041584631656732661809626264506700272737821642035392344667526577582539471280953020668601013548374796628974823557235768870726902573733902236663813244166992699056608687468531805317067079908791330314096997976670962904991783536585450051465811348822338339363492241470773079110802028986238227668437575855041466750146438025885359491182189498470006459413702814495921926792150151172245155777424528994826484039267827369808896262642793933113548318219830576618129465097839894186308331728682881226192123539813823564231570216558576641726045275692925448362039822699304920255174151580375475561014769103308607621941428153269504921087566072669555029283101250241464795232937203516000443931508389546787520849493923844741388119403450811373003145257671563283250958602641588558320643351359190074981224540209412660719271918005734312879422185225216257762643373397010596349025458758501041489892957608080720125897308518567605623640665519726746177115602563128023144190343543382670493649178656528731028082855126787383935558484302320186927258942529237020982615410040901508877413836210240458646530844112544825922833035548475667972096603301259783337885568195322169224065894372246892463347614630291332968993777827429538499979104176049224040707864028992037776070664523527471550693067670151711332509592794944802587220093984238972515292050123871723693669582906174760092167836578593153661767034723722848922015130012819370660712280620295882388826539260696519756241693680357575287266517174840301183607086516327357193626251705039189419473905736326645826099480560888886435304219646812498018428546635282532029537945629172525398017216578648580462914707742628564759037459693368628499179588810715131260753064344796512140647247876886318879084358714087551856120982267235922568814991616862125242509309441051451251708267114002297580633915551377919358240908335032667060409666927184199818711074642886842399519324200194181316591341109556508319934998339401540580738141340533732676463461731694089387313397349701726020753523877530910311596910733669690400865561995437996546607775493799581273262322421750371914807490999170035439794134144049186795224843273362772892475666871113769818196901158069518388101184255125670264346143651536765555987383026648230098593918715107681372294481193984235371352581748700670685953680593017308913545281773654750006347280381605281793867517122392935447658747366030915995640869090447143103130285256862165976032371936728954317248518764294156857771435488674458067130935423454102978796181783998710185170931818806519680008008540340020871711410426996994038151562650335527785131718160553139259809289888372960039723777235153604686519493733622512795251646958893155943841242385819154502408775082955876269887344660179665724132759516917713749693782764644979009865649783453448478195096757588481283973998428930632946649906124735936239906208246580219381043849701449272996383708152139136755708610925760130184047253288084562114323234933537155302733926604655917738743828322906253499476171295419755837830850337437439713348395374158483734777412819446356680225423058710013848658790247168788181231603518323802021046325662468218547302181932905659341349687754971642600478290657419847889192536216921978860596333971752128110783387196393020961549890125136529839897064119145771716302371306006082916718364380765810991846152279960593396692342419189782023832495305986930617124664964513450446231069325864537214484191891957075158623908156633063152559996541179933760799370279334287776350864848396561518365592486584912663643796936649350686367404740660581558706770504139111958837723601055956810059866838631089507773757004555403500348685954364644648791536193525966516960079767478929166919106296312016637612288704194211637483550353547773718115296295022697833501393068800597771757463351797015149503990933461686378550225156629881013604035900255453606461228225127080603884362424236577882086094118384851576073101583813356717451779472942556461601399758808579408555073674952416451277323224623629717874915992283064846276842004438479004159046204426691789856322468057983007878919826467454798356948995953161006165268086862476778311367930045819453065504379260419581211621172526568792014249299924920773559492948269032395456898886746509814608047070685068579796684812839371286660911762572435113636772848353071950707756450086360385055976035770572081618110142199956608030515074566923468294881377023619127446773068330207441282992209457544905516040112184238692378761139819342990320149985625422159118210747142449657725597730073901206801149430821906766227665782049821699104876560945719981060867144607816321381530929532662901116552123619601621745213019694044616411370973338942749782287215483189253302613777552704382079775829583945845011442567299852754102183616464519770530062438937962601022606396291372351934199850848845676795848567740569150281252865998659350992144141694774985383071642515061456769046396520007448664430864046918004735248403867911180455867471088676761725691626611971801640364538493462466912088794682721407865678865086102256642647109566703842704445055431129744305896191937769213113527901406069392024198697747731542565439350270250969343156502496889503350203967164970411637249611334122501780257141543531544539963642268885509434934592074017683344678517647091124843838482301379013331033845007025279506158748951777618375413357280637552928947382252808947613361265562066485723341452632785163873652930988312999236181778332895070196152114066640307386667124566163127251378773196548614531371233528240907712888146075012875113107320603369081565253830846522756853758143270791999993231554822991931940039026721799131625601150438281913508148585397132580463061610824288839673054364207570054583042452877291757004685097885192207607300351716987697540655028120793616986677939328533913289785507047418372198653926808363459313236425108983626733485321823848815359088087971278157549683842527208244380639353072518227211146002219640503230027485256769445218291745685296268292795911716595952153388215949884799403085493532657594353335709621183878061191184046505942437966346625064916918220588869655615829075030101470997899096942596404456518639422978877312517096896091271850972751123842403721702967492117010883601828352290723659762174507019706434322456648895797821691621641584317116276686874976883735666915489669544472410659150966689672497851569507899639845002398601450257327276224707222428135214551828989441341322222218795032656991186528636911942358382316732939344021290563975905118914731097753820865200041133910407741871903825326166507077458025283041593187496138769755874879460124996862591464889597245171823888781215512023815628196429230667655018457955860460747890743386745361302451731570378335573880833317045160422065772789066720597033708799335767152067521537246293571625634126638996787897312216114083573428921501790094759900056869867643675752935934399149664444577601769068302660567462920571752172156010594504466164384079933385168758008876218304894908054798012538585762850430127825430006451429098345217951865972418811683223041222511917462754388255173541456727206557971366517112362321622261270114601233976086009904983004725310667859065399760972015141665284235116700256492585003012839000230679100036784933600122129799550146632906988113231952694559664556616728457087001816555689402713058655177998830284724836884598086658604499565387216531573978964686806464731212699709978318472545014767492964929932969128302948732597166952926886690903264814395829255723002489667905331605231935936814057270996230417368144947150182506439553228544614390544944415907313145877087444076256706727545582144295538712779204887714272190016161722399619564658214042971159035008322739012336050555830605337320323137386221275286063851572109038966032002794532616007905947373311430255458680783135215734424116307159605199368970837704253794690520109811038664931437495162487077883555430730778859650886059445825987029422516174501255315335103430467742134742624480885902403896304939085054574935134808909136591831332255725651554093613412208349345618666949606346437547993422727623269440364886838670649367720494112049806313914036634920579835193760221520001470549026302604245378201820489683040400339657763033861373222245552319827057570841079346916402964596139480449159710267727862686639543253134554269587358764919499173128600039454504575043227146230946610607431768859891161764068008702631786183971766096349684344788399467964123754657462244034355920602026505830283961952171283372911787115005136430350162859945647869986556487175266587757815539630218867313889509992908073065849047572769995836908009659162266966129741551264311092333925677597640787581506966192852162335477868752933586301828114438956977375545737700904989399529711692811308794895116410482212071777349153013538607718780210663981845467952368107764013490778591805108025113072978254770976774659110542134155762215399057611428527979712801024220709645649415386627174451674235900196734049826909004080241150035985822487997016847147265424047621749052522753434684394561959443216765523848972450323728567729997773941614478763291797656291440930535995279728791183399389434832502502843779431740176054798488924707834530286523408242645341090860979414509527567358813362395026566859768961835636793172744502510475767340983952481832060211054703142576149536241798190224873014119105474277006653360845099670605382895874148513514672760803238685708441835843570789328275478801376254162211009956060913129576761597086967149054972178688402690195493124331521515125765117371908284822984771108087061719542458305834147143389890728433652414014797170217759330458764619906361019544173440887658641468833396569017080876424474433335910592900396135894357491956847446762803775494303668914393477049875869267227280998115447925007281027685038287239816120041785300448454285144347653724581820883717804431428508399991797073116127179831290944130684384127738560930155387450568317714773104507262861152311925773298807674085487645359812050779860610836295578054524797457648855873584964109193233133259410940858671369190384217364908528126479020091045346172890315592105693576894452153757736924964637378377285528849103198781037931166134337915510775852054326918924370042459930905438470091727567540989690629284699296384870250015068514177670434917012608184685817618660116099012734502936060385808101601440593569078357840870351745467250435562938015939239688053448468248386848687434388669186387932858292346064881109991902919128797095037872606064166708162840877035106371174829761012780919553696821703072919126339983206539931541967244331561745023000943780988418069156739637317955046843292981822540223839347992094203163629997857677888297952208830273883555792354662074221658311834338250655741244907712049192279879126489668744318670543314136751612162145902984439766428385184998519308206671842444100464083955116376922264946529415945872446573773317567441183256811169075560937445331887296896232613027321388631046233022917996062116007474778734242152663197525803826892479882537620100171685242756048433949910286575079132978385037930668462614713305934720059653320901763572338658709565361351498633911615722437212563150945422932715495201478694975848823834652270849936200236322463921216694262020607838385241500793749805962491937874349226545711333694346679736489306805962356184774025018208764716379104465339721710824978288288890336836578762788654388146523457931341344334037613610624568029757235027053422718050699313138876059120402508956954039926860324128330291017714578195612663717384987348553011247216809969215637265431945974025018202329197562852853654616273049680069536342654683629814798501382158138195698124513392796015884821763634201247881159587834444892969512268669284076361961821119149956280135862552676939670328819848445566486392751157627648445883226532196936964855043678049967675848731378485379016270829217370266912293596128423156323565838281059961190234432314780718823763503537673053130021756296816511935818200163346533610235291327952939122026168252556590415626752213925233735790017886464609777114526351247667708307496548418748721299119475314402382158103164752718407221989841565018519594984925362072891723659118119639913812054220672379537541392752591946750113966601816174912798097834730776297388569765901879729749271341593343178489836830883483526457836816148827867421863318154245948069114773903154078966535127527193337237977869274319899669057801876666014198889363084546436280143002144901233866527438852230522122384184832501966455953206070633778846015560602485825288176767576641146164371701030209071707866140365302601715065148399125191148017123982696072559996109288315520460047382559673687269738839658170970094607985321619625037769429110282799179940075092615451127768388997894933816961043043571463954370914839028505355784226602082597864256253211355726736487779336953756791002641396828652315060988418465927777257198962929481656558264706007575777711951986565164532191501838973773943811560377552760172613765214847305298564194726773010550230612454235910769363335978618566618726413372437440038237953323180384641624336311893506130693252674923455714887279711515383157433673136301249362871816587359631582789672127939377236757364494260104022647336536096981739248149829930275520217550790873033564172223286898162877085040552065932532164815696428100839280511297900284465439025795639786831796591866109901890719361092618701800482063623526540190171115875160933184051313372403989102923747838200919829287016417165420049617098655889773307947127178273563364610501178263969438886291946981057197422022371554216457755129476687571917290422556698865875277777956501391825754787346668877965684500120624053203135839773214565022299720767956225047005184963613062703513173265327945914337467409235594087022252596700301588175526126188185837659310687356175388989669456695933632591343256073471552873430289951482552042151263830573893017031996758784514517340545925761735247391885909215968512949304390847071519760466966340431129879612809896773170964447157246121499729310756916106161297450341033816766995646514661310416016265926838572014486161258191979413043461148926456744937760890102543373066030165003954110248280742231269129936606790855052766633605037018057214839604909644530066204215143048147201424826632856557172700309781476765589220501979077910656868259936545702983333533510107682273059263808118061247515887226566211070673193268519414845893900994820542597651569476299336251647832726098882093340828700473599263735955409364248895743192324381162624195674402305317675033818034583711999811308054013469037964027939724348941858939298149569953078092594347818844799770321694615127047354878570454762814507357588481732088204017003946142781751373853019011471099450265670925423885573366935857192660322395452033424700395654108119512187333361734506896626410322921676875143380382872624512782878854161621038954277603053633907574653275799424629986714446391471617412564008901697938914461576275740163151451946830045531396963110517967990791526932400027724062113102681422157713393844119465239057820397174613704944997516848237670544400743322312051837496210776064880912716060048370147141041267703150809980264950508056704084079978929708596305259396667897736309702682727071245007425510428340582250928641102213266682546222403988917978740212659933398448669049550980599728153553117846066428171895805743531926579853191282164502456854462976555793826260124804588162509669811922952347823910182068617366166225722905596963928963681407892059940354657418167080387414585091366764049023015971102113896005388466146959720610057239621273432929057486436584450773300099023844180088873742434701065845697625285535399853927770493226883363747442382447158862484205467818490324026228327763781668478446588595064371153865468290039277012754695608811021651371441205027064546389686531402802968462795141110631014801977737941057559127192004249352291787569717763643230578810558916543293769861473722605516015909889463057973774273758003043888699092488098004660581592257770949218491243371064344349179879074612453414135409725076599327061310685945520258584210842528170106843993835383747521664930236913828541252840709718905981974263716640000051708078240516128798550771259812069707644493809475188693658149989173813056599427046709613523023558390787418475885718088293914310183804695532531468198405957289695418926484433667720767902976564547015932285529730042927556836375489366737949855760677801535308808098965468642299502080102709980517487692128705547548158891115091877950886467527877104636852038403051054252801840376744463585885151703002125720441178833435876704751000290405910062826236765884410076606972828151993945394947459078344297899628410714328443011689560818186077625717410792359913386536644060206143017177208499402149344939786249847979690255041579654281132967650649160313642604854491134745165398457257843573465410479922160400927180097307343962817406538953238511191567172827337506650373116680356758962231360338435148687257364613202427844631999199971911954158514895561826611506387868435410318758678535060924414583917890124163233268187672127885949498079355556219941856712402708465216565733675812873525000703088402599094345377067781248032009715438360120000568897734025607242601601597210833206245369768605960124112100935322813524573941859116272273243447436558682040171041038828888975434132083992312167455631011203721557135274338526476323620262553522794034777761614418258147784659258476648396104416215777116323554574984539354935498186738658331314357273796140367419698989775387183895524152698611232846459122866828213452050524682766835990272040839558466584058196194065408944065091039243566518317541592486760788328011946295571668470966922906197364804802253610787472216900174630233173797974488295197272059235224921067685105398458556428645543434469633866924410983460187486594419740896386558093492478452048445109227016992030194857282258080532485710942152771381412594689496206088314918905560555027909004766732987463558521781211528886359417740009277554304353306725236670155527882091923622088507329440872448549964165399062347609663446947767277273985463809020975649130716659242649054476643549333458486040680420248528787186546813101541392708358170632519921948849141102565610150442526442636371901426525511484170504579365539628742428984229807956189106677861063633450305126272077875447465196482176907252127644006743439944118707723539695895121052361919107171310809831016228391834354779778525459585243420710661599378800223058868193199279310622285869057633474537224554449015697999457218327657826909004624892500444835954365269843429612995064871803903264084945419124344044831097192497510844787865599465764622958385035645404658855241777543646787396847580165183422122795821563750526823200432646914263745890838343557508098763712411000696154897823523525733304078815247993773184911382960575272508925323715695512529531693622436795756783596143144799228869083786152663702116423445259186190207859898909431228423176320226271599695883849607183642325836567196167486747294718152995098581177967222744946246747458784278471361956064627566206166795652277503947251407588836449464307288006106118160909312217318160651534289037173985683530133445628519202369064576503789697182567370873958499081886449537559037528241721299085643481005037851430959882267533894974983580541711607842188217927198532284485412421043603720912198109897766608375165375960498734063162301226127005742304102529173210720047418541573920449424544492645615385279827647633231785208197425609024944269816911942102956924558619615529304693136968582689937804275473553225826970319987028853489962225353793609975276730563980102161459547785259265570495816181151492759454899845744322426017503313836517178006518905556418441624416320282463847585605741325460857025094037892042400287325639712877151903076908517963851979038219858569896951769981243049165175885784984249436495819166542349724211766643480065864759671430011696464230638881437982647775452669806903738339076897086926700730794506296473878741489007578293361005792693032542909514852426534045921480321831438897730858816227915264019731118393235236024234627471725901403595837894093040877657897204696388546265833535809050224820225319890380107962852438312806134098687480765404028164782126466839356848718269896938534274565589419386926333634597920166614682356611746904138398718414648125906769559097351910326700958764763337638987263482956847142869507946971254129740405263366395968550254890998227809301827745770899513470461438909910015799795322000791773470823812141832241102038131520798819632354396785686957241754475839835667205578517255733519173379569471202141794804609031778126598594707649198779305277019066584827372547586424402611948950716031958789249253062983764887881921441798609779115564551900098564887026912241554684608648836287731843376014965486187528090630965987176588137202408713479981113105342911806848918193823395686552710286014032725061933122803232258081709716620337521363250694794204526809685071495719651229939010734679956796026039858067648291636700950734115837340499687633203079812784811704796732847994014979120551352990689992977851268339702698275638218936167710147970171453109073732841716299847992043221655878824307978792895051614821359195876044489499550289711868384878285339486873975303015918222710934767645135812461490090408310382071159663022745203891317996545490500444238197573164066842114456966259724372341321705038235260805663666462831457985438908121656291421442300890636229746435180933179890781674266057942630217764363424196853761784288341470212414461982256812876093284869988928220240778042442066122696841188306150553077669709575274737706308655009021980897121156877680192463597311949040304536631444092145029731126483604451163016689438209643647350231574000899401190545686417603470960359464299006330780265685965505344807750509120457614962947835263411444918808778473874251731752272068126022430966960332908942554963126534888520280735171571315630297329622218264033184322440598412537674137815519185624971836237244636311012111496380402160432785998261139040216598364221054039193426155176093550344445926433366671413548369776153538645232632042307773947238912804831508350182355048124411189622128114757563687084154572080269891129889637504600341226054814239467608239950410530883254783727135212444916179605389882235442411466797516376229472347447532465698503098460829293853467855164253643263077729217448904163449100497003076675895270801996417720191687573704010542121743169035389121973641061170194993798533928208721240165094249381096049256095499973810240532159473148219493886479170221080580627015390705435268545160735082837473293493035991458792618574420131573095486393936368327681535284248490698132693594430801707154056581773795433390664883087085041536519449546726338747388360492138854670480614682959973485987341374324472325930174908932982582990247523429352299327900591170631391624409390466492071768587688228073542431272086303656166930574562182333858690618326382194951700356761049097781741472682850848236939940712958828819386683005233561605445804233970848158660454002926259320685725485829473003673965152350115354977706012954649730713205769764925532269089365285849532230682748243879117966504761350767462057738339559830804055285873270508676526017396921274851751387483996345007235235337255960632337136343318644332104965943058266879960085975542272713666193637748035611977332849160750609652296027499142398134280220845886114665997654674913693971658927768325872922574146783032419086492850276675331825320119477816266576580683366218158899791738074188081526460680169707049531532607440684156390114522181590290739864780027096029368295168673959118263373184409553867912962816209823564432086539021035796765572343496901336775942795836510380670591655506001588257834426966544393296938798029418645194339027025416760694570252845053075518114710723562116544798256900893933339987699884016397298532229987219367513724730025923599320654803735697638245330497521739189778856884822868174704490264565234204505210924493159520087332109609548248910916000995935276891623983055572529184855987128513186911424823892336564024448051918171295127497930071916239405376045731756017128862135797248211418190377664971392170506756232327543634168288076492689907329123337466466552963826786182020108644280816033857878278552757070457454212648612920794732671447432078575469305919711901832780439982372949539169814295939279106880170086288275903464560436232091414008557331481728678511260949997293741668591565712622769179644839794634213401848359149134931755706956879395810772967958949142409004864775922861136783425244994453084925939098118307125309316857680758146161904494194354273950256390200891743792899159243010997566821112745144114215092086288310989282970983359963446711651545569853862273116953722052747491545931704670675174158320313137281595772922551006301199655200765664584237689975093805566905927301001255245222504751321709642476068569700944578997462632505415790367203572444302664098639502188428035785223244356819227152825116132655094500949704272186337890134099299796857589993479539272263874658777268280312068987661581008587180729240963037930160937972576447296106974529598082658028720194760184239222688263623704254994777158212197532524305202350952086314436169085753673774127436964149004792875525689148756366627208920116500419249273155409942896892496027555268457331224873042356097193847887136038128427008856817292071503537814388194266447156566557317490501604760681032509717830075957610101421143342235224544647047242721381308500535448809875943443072473033201733302131142499731891339407692250217541446353779295944844153955434931544345816246594460979692756226406084854075934903719623954489148399607059848037270399770469517162267453428871894173226865369902495285206467663857846820047688720262362682012838203737328066013761257737371184881043535965769654631451861099295969785280378716922710097161512211316260445101067949131636887294937708604527519491399911754111893827425364818882638633883732407030366026570380492157815009326205577082254469584234348949258838900639016428103451770471725243814313383527793923537823430466866304471036962955797890587540545531576037513583239352318703855931779375852903144504122089725468502303581469896249414594768477051257706539925094871467582305885958481613454218273422333364973388923041671214723776385614190659824547923069030868466035824876242418746637913105821858852967281531076997765023583766474864624032997813749809770879734420592494180049460920269455275752824776560969151007972344265457591814978188337682943940468687511961976785888891405292741990062703513487404543449576825330617357794987190739508014230111024935531539323780247131160083049203892947915148465648717132268144906977995523939168662650426769218167127744803398065110443872676755960587180424936581409789847482343348586571951470790385537862815381799758889031399695061615412748547063387151721797236189056927115602679176234787842266525215220449215713168124954081489261694105891966441964890548845259427288162565048969956078357054086720818965239083369403280516889844082690713935573677229442691264800841397333590713026716804258442399912092860260438365928910395862982715730491830029878130728946313580250456156059989110243454622424133043063718913402968059349417612206993006491250869629038453282854195410427385599792157761552130902752016300319535679132796096026369325908247385274496555756803680159260532118027192213949789528537113858098717763013132787194629666617193783782789718200646174491040245678080671179042559503981985356657343610236116315125710045085622085216564917972066527475706924639446154791466218592001262410452604084325444111426532799599340597454070241789122347222569634571328776906063417178860561038943380397623757051390021186955325321864513576313780158467774959361380651718552978942892342482098798493238031827299211781187587019976561972786388850822607027724445274620614130819044402606190291707722661118012716730589905564784099307092446290000187794830986746137912871453557198947628136244400721002750866887878147636941299068015082032886225276258571475895330519481565911921480618288933366009748728627431928951192534237491088293621567717159423842735739512271052566273220407466464918525378094500572386093750779771056933054427369664435674468523215261120686853396340009714984122790336651335776938198123676905453675084315505467389082018755165096701878894096093128252776975829659745375864064583653893395576552467868573053361630091950012673369662138470800245214393387417496790275147563848411423489293331451109992588985522711654667691561307824679587902694661851085868657159721710506817944377744483462389756813690969006332409405632205589637872620767494646211531058898409966635190092104971306752885230682242899279544332659675460042994099407874591266042345962083611553836388760254471159869760329401550493840215921259300507772994248750389876648473036030953369275412068189854633267719022373374076176727713287239847386513320868786431124964860022489098714908521208811713498492588080454702297584559997376080893468434982141641701495905341682511331244029537094796463493551771781439880030559337148637864764799193915029867475671107851236012911832488643841213458133967603867853602818917960480970302857229748220534750979491638649728968963548627298929896417576600343726840210141990509724061447086545889975189499365506792947707685477619613209271363481463338227554328396335129325687560763528244860163646628979215727499118716224219103209796042795842454648568097589232406552485360481558293862015984107085515828353172831577244959054872619974078989793928698726395789755183228299515256333962063436426090263470875410121393317474664228788178460814594170686728072616463059320328704017045092965959089556515817873631213057977418047742798737878073305358733527474454471091949105018632160515317081800174242582098982495950740111856765241850695626285138449286340938990572303668600741902770404932698527565242572248081940358703720423485770053470401290640747139735575490140799894050419494033800494561620309803694229128182256167343146925137925017410678600035902949513576354837509149402986057689260240275836312661295702737057256229202947123635757199570515184737297555641017764101000460572329428158733857888795257234726761950957680423583398026451701175972011999356902827870322084910926997766672228265005696740410020826400509736754184928804411792441596692981669260547524893927430436214836261390209693390980089430896824216217291714717964970717109612535810468302751965795359907715063459073628913500873554457852162334411230150423887402911873935129715168019263905286042272288545693398984974564803991510733096948736442965031271560365849912533047096229930814951773061556463460143014903644908390320151600190589905337703767052445083650473637411912017993953783059566613235125174468414443053995169196299018451611937270394987211745445194769416392160788247731324488292209287027336272839203306341394246065451874727008236728275340434015054754278392824417646783219323178399688821903491949274360549031046465656792060946349974532177698250955122053583169003745097902267724018051444952497618284749081703838969180753743650021915320283958303108879007593050132336547019764738452779853727837808907850126818158871347305672601843556415410424146528746696866785918793018605106445569541713047394176017043337416465615610142954866569965321709426644663239365637859731455039013108258888316550861597075863097713920270006948904160634062858475500884998164178234090415296962659753309320764054233412846424804902710174268694626018598463291765984067591019659039720607846577417051426508679129497944158554927440639811308320794275304567955182505137716158971938677852033081464010189015649409720507190084555690155595881515917397928181182100863086544148872170922483906129887897764882456956072434600634903199033882689928688146953236981829615313493715860422956740806407549488212722972884180901092139002924901081367662917448104098851145834893793250268653391372579015855554319355668031095802548266632029595658978710440084927844979970759579568523040182944619871700851129422033250381576280215269268704277059578056439852062487548883163967777750121525062063429821805255551044237151133849171182407290470024138794056354441673499771017951285677103692519649039523699520134307589835568989383791066222511974121545080539996687807069626118560363291214731576430640332694616248435619769867633419959118141198077616712775595552577171161143935900342386884810317679391147806385106638743207629216539190037559374493375195878296099799063852104928803505740961190915167535889421605844475578609533925838930067713293560159733218346249825484022550072958675752352621297033528447330673790181743916834965079538380486705558482791670826955577309618679496729151195379412520507375006165309621148864083167863005989878106808296861981370031048376104017146622841665126028094455951119612464962989638642298058734850017860148428223008350982465502735915292649467876592579945192666038999482815279596705040186636659279027818019878824207901913932321535049291804180026418257180615852395454739442252530779166679102509974533605031387284052678155321058937588840416026552055327728996906211698848291015788504002005033736293491639161107520430992020732299738035762048793891892593490772985895827308325632444969317592032280047380848409970995975109904185498185036137592690697185456571457388221405327206394484173590350023564377680427469506215584975831268113090613867180929719980666172708399268851710747522665247932303924664519723299844223726077992448617100512713347669947012079100778009069905592734876237276617877709427615225750339025962116175921600015917071008093569529401542885108859289478000734524489520314883250871394181381575517572236855587515942309407475196170663794915306247458617112279452056657454834435442755061613617481433504064441977536927317826517703259879886767139946848518512419127891044886897597850112853830013610221256340689869845847758043738013503728851932913900139405215841965230315416909290100754626079212904595538378728624398472536323464111806182865200034558784142391324353472879242114744176651944626869218418672282826360356403482270710237038444058754059551671851831576173612129588064218041136214777080985116486406030371193020340859846445104388517995585839130357414114151528178916587993064053918461105101842356073682521798627691394700010406275684239451212085061310117303700929902110289251107657837364332100049421134752825572048125073367826775822628028674877898854924371538177905129951881167608044666184322734923694152109253860802392466674224089409977533638093239908025407290527950903587809467770330342985090961831989226832929760703223047441947392679457625292295843234635688961471800336684213755581394257383260236334800897384931531455634683276886223654483368941969095090091583867064626959622320212539167055578154886578442876912496392624423904876207211872559656633416079327089891351347279950438711188461410222203428253508402907645741149877985500026893317034478669008569782455833659114200789505581160485408631551221118416090579257651049213533365013067323390714011521504484507538266225024614436936833177606076395553720788764464299335745536545337394639479724592062095292703785108328375933234974557933995695810913374153143749956831520329428647900852398574954696368426652791902619376608969663926891897939964003908686172046737788255754916697245648053198586326689210722384046614858636981545274100583994897617597968673804602798232807430369747979561604491583728186874227237643457674362103466631765343917721955987485991158210222915500231513282177519594751782586750424031662122634531611696608919785193749287903177320629771301418117462356183097732829879763788602391630303027896290661414400799089281827716023409651613629349808988881311952954152833344399213289711863348398880961113114775270915151331981454933469901682109889648420694830104585645352306571291117586082717279224086418255033065309559650376550450973996940850954873648776624518015922042959898787385165609394200775917768869950081979263216313962681916123291524638596275348559167696832428298831397741806426642677466133982377943339695014143341362402393090359459722018602232808129235467113014846921850071220485831838277483833836786770472604804390174578444599834441242331019675867631740109758767591019344741973651398040460220947792582017998569258145089716064899818638550305185470840731310285553463372294660987989907001697315803402029026913935370057348385409447512987851680887185900484249828582972938778121325430880620597040672333461361345919319664026801990344050143692412305463519850432062934134199632806304230659940800706278040909383394918420557071377988892716792918491166337772087792827930430413650654202205214618140564455594069470525033939881870739459837719829032335982087248477285924262661154904331475542129797322896014284498696212157214724082690623030860775062874120041837634075498443664987832144871566094765003898320344124234886293169541018848621971865798367245104441572270109291269259588055072554284172822654144283440208641121403113964539489953870688845248314924035731160180120345910523783412034223552698497200345262956471758067794227890752649552390020877897610721911853760101774285623117499818034079894184355299931067526173533766193974575996476445423121231396712285370786937438805841732849973252600441952318693079222489585239912358301022806875222209925248378737421101358902051246333686425978576117926003376471354406043535984882411551371164329496176276751297141870829215345824252233668715092203746792247519125812835714329624125224895306876129791976091937352682751872708239060221046110425998691267672132944614663774830847259379926796915100297964869592189735160369928318398514228799446155395705372808378716922097346567539001221936593522387971092365919545562425775061847512900844361573714282004907581129033243532294461753785063411723285666924754301815134954472179433685505950285442700408116606036576155578193540611088061826739997040395144220677783562022521032379914586245707464378207759935782675909113568283020630565136359213645893304102980094026413403419425935974479577728144634637225058148017361383042453902540670628786897003434807773243553357298373434788400590825557874569022523779516318749228007937718175488187488327311402463155780714867257069190150973846424770434936562442363563261600760470015429424121579279934098720423024751296031118908466771694850863508598283754873541018393777662479411257787797644701249264787246675575422244180207395386314610977101442003366864561508782399310133991609020158942821558900819690400911356026183087406660017877688243556177821179748899311858950044636044659532644109277973285933687891694237051406127067040141015375160890927060720785541301997829784856145292938332940269304188440733272230718532889943551604437638847964172765000650409017155507161032195068182316668898920758729211367873630966178754167466689166037290723942898389804568748713087045382259663701456179978890838897625764950603577727479637965953371959195677285341220419529574402623776525340539474247881270100662739133214052862620683173285024147750617152374133131393099091824406167094502701428923390907901730227504181951850527463171017617482115648571582027734414745417155861593890160386952826782910925312048733965196143952892836326888622337324188465531038071479599314542440852384106346459145999389210245079248143466999659857742990359242147591263579005397161142002174414994343949640070795447377816676846698991259305293194475290897857378047295782549778425833470821321076797246739939068068742149076967535424637326099471690559863184360604915141660141485042401819676450372620968090362778693943965452170970393003990096947492571323321396799795101959576670733506018682008028915807355862463853929259409304751040181847093227254149574324107494127976022717780492174036592530170382248247825645670666673580556293756829597088913757907142981581805247288794780941988488484345107479442313708689531817036189894352857443082228041565927691192971009367735646524362604375827823080136330319716185269354206560460794774479199328382132157723196322780285984498206888473156044536178862390623948158430860067471343695106014251547679354444503939571928003313512138029120052972110641030224953498207867584191956500578665232316444555564014015517535146975079337944710431634255264944978980037829307452473513077488552021378735071148666036826751079539260973636839836003610987242032131459739165935405122365210586396033644837843383864086850520231245391505086692683959049084262953653872592682670548964176783527536616444074776813404260259756141343429911663243328559743731259497553137897110050588554557643429791703458799062273877659936852268760604577027964971973698091966342304043449063581283235676462216036624521158767131308676702991177138719610369600089790311559743764779637368385443241804788944762279365775021843408005349932916367950857256661401478015967540140206195908658913403943447957426011753350474439447558086159862719613887775552882118886817119693378948971339080376577213644300781353741180916513346266029728858074033954840152108901741511432621477772241889603319357788547942472591398195417760731400531728312323672438714634640167886897097870161075116664033440364821260338926122363228849724349017544402171101258813051578283498944361358106914411852676095037579284183131690650411558398472641507737834014494017628670826720884416304943890188805657231467076871640121541213262685370828859290373661974269515756530814259674269563960181099355626014068880899882607778838059364121885850088856304379157461589358598568563065645983899507050501519834335561630644558770949956026037289787948690265330300557704094810494675066252049395449414186546226087964568037522296024499856020448062751226285884167305598051753960087239005302419614267358925130288332178157268392242490441311897604872372380043548176050210439202122155884067742584935530550096074073536337708406398756585684305638280418261685458248646179517752012189564008754362528967494416470404083910856039897660633967863702249951629832816230417735071813075438033218719043855413689898649241148423290230932787937973247279548240602523142467474970151104250857289703444166781949216398878471546686589561645775037781685010237054718579683632121038496634275370540551050573127965381468013051755749735486291140876178996937661054154692570676160442420474823710916043770730307083779265308926986931885769705131233271552708426930046102973375736443403133548638538555310075670469298638260168421954020537363458833754387797634361500736900283753777835804699549157186024806136281746118586103866441912751134179233996944349645886454643294959573036828057858942169828507161237375022351031696110421070675279395241629558251099646259500034634259051670445681117119812407246108041095099876830537439139362914600209504346530895723617434348683217537443395312943459389163373300745557106883781967913764095293185177458527988574953630629473806370951560673311098672676937917504731448703548781108599373228985651313078420549860147664238288603925289387888373509562041186638628306748407776159758335289227998866550987236747012170175063935307244522929985750994817538947893263108896730043868532920367257898475891768825231070167383912606903721101239811645394891341010799983054931667879268155257181801197999122494739020840831090451051997447661296937913787298051873271314753844588721650340593665473783184878905114422965076941945940911381745967733716826860835292904969344813906125615877168121659508093610594995042194175239800039869126384945124782247638465946098632062640030568840188630573405393076709597451094023188207955900074624445774813031139449468187135563286919356548313580661852119188720468413705718922103437056913046984103965366938026466901687269972292369173073284882485867961750954131566095618385697117724505051637008412617185249236901438843803047724027975208089045743399873780521144769628426777173559722157842494799123374795938613361440713524228597117732871395710967088808382632777894918017793180358794014300289538153552295325886841762598122328667132900340130322772048130365070833852401067541961364586589974462890248204572253970135726344937084916196061282712201238172744483888967209190923200309032614729591282827701084676857767620661260925919858763272496304953565119168102323135448823587731835370260043077360157159637779120877707559936495773038589449248323357834509580814036658326576355576002805962915571211066341450957961154742187098407375798223386259391314869473277019643174977791769749316404643178459209505977470583754376537918339613444397983058146467594772869270238210678144190532945342226852519363268681658783804583341113166093575140365525002586657856988697561265740164769715921871206050023435766061869654418399640858507179868190793453310529975682467374981136094992635978496414073047906168106483793780883596463330742991447831852761932062846078097338278654412088203557466955120556404771834580893163447121306262327201571873960510240933716744734966368052851403071580080237601475970249353587582119247246955261691375083881373033373392138259495714936512450841063826765146494908319790882353002123651491314269116101401109182389517450195069813351994486429439011414755869742974388353947199415417668633997300376698293520923158418734242697562763028905130317076158989892134606242104380961503389809081711898713948624450263819265189767430529089228203189530345460994718254483785007997692650777946537671573197812244783666244334724948001021299792994818742628426038688473119125815998857459937986622627201317776830787246725012260715391917229149270780014044499636807899117821078889338910874902837044150370780739695659925358018866423104392421025041070076007914867581199931954759547780464276107317379208250230743332871921285872158293988807707523366231304971303580063150499478203738858680810569256298352495697659057240009260641240739207644487461134321753880005860084807698285899043873687772356032480701589187036701022755905536102625398390170313354642900793367754083754381293975089957280446000552675061390111794102828597232325707664851245672975598853377750481663645670754664425677922932764732378903821753743661035980625469245501280590819243802939786423712599559840294606382841221745780440158097322048519999415426155738358962530033043837642754651757117428740596906217155004271915330311498845899087409980938142304295590725364678521229711653034174932334526060108413921029580419428724819608296286270204796065715939242891838709936995561950792329276600909365019089031603012429864147580658970026710553221658158507891310052145370029721486053493389535925066540627581700227245482113388008680892932813255930121512931328060579280520175877338810124685894020439367656132326198523277985696407772955969179525310187119501801103419937129475750718393942908977295424991167026918756846151460659365516449688644200389437023564261787920110278042194962705477359327350873449920559258734316654554690061577817056593113417985746230158929920963194107852704333797184668913288729031872017080090514730937569903751668678388343942175084551727090966066769190055115901355699840411121401678194384119447034912132159037336518223153057100386637648048061029854656941084742660425857585187162217808144129652373651270148375107438056455931179315825743927589313735127643790671191662097057733905864942725294967602833428241659067245386063112465825225567454433934364638009339305910050017512192422445820800149726905339552306940055557497452598010434699856692256784961827905431619043430166649652871920095206586158437830080121708711575013670184648226065527699269973511441100918520233194456575247044422282368943735104826393106759078913928047951983944426726141111244256584645051625513445519408910745184145244724581505754185176002713018963041853717349991795452601644608727276783601297167699092934698223100290115307448641366859735799215520215588594042044490388720336552229421410577900884234332350629992946211047733917609705360105236012576965228583781164692783910228135461253377188550443582329714110670154111392515673206431198387678606220856706261199709481795605906633756993904766922757605252724263867400508926512474426194185854979782707317096190958301114389316978570249579011092129564231308522549292681032288765098877268167733733327022303241125894990420010769267242318174918803634488121320274135628537124216433558055828976086213505666988800219074457221091377979592737470093341258406420149396838646209378878314518143184261643151991370879481992799603247206900238667890264635639553775110547698073565302551263056866837228588414970927687085051121253405243970036488757904464143819114851242771209548395394823761356557044877652326550558935712377650363319391260240161032216185352677567047098577850105568657517702316422445439164934169062720834242013868686942466947523883434046729304096922803101003436051464997778923492629608069102249753596132823908992285755098761148393342631731478652749534272601649754270777479676506440578210539215666540476977961652190965898953900619201648328252233473351879208454260021891601922418794810022328027482257063504041400505748717969452242006131620989752609392126030459551474621244304143688947863535849234099761257540663845995326722656264196316547181793038991725139796370463550017752160439388219507883313830987909159278017722172148826912205752894673730189268084001335629084625669822125846287882734285685198343902179457726110887099330818711186883371577233894942235667702550416426744827226879065273329996565116705144225779148429535226496698896712351799597660834232663763575555141830746219127873880976142060947226556684162643993587538704320857401686782826639856040713967950268130698458874008932434771583785608023139581844113918706797889592064036875210371828213576499840436356074499512898063050890030522012937742707672828137163746201335157689372076430844069708024257268729786991792337707380732618185514452271360112503495036814680423954593057187214582157115558781728850115904268321183546533758758862207249802321319557593306361342052975760319768771077512213475033955585555362831298089837532408793714836820405298636338440235831749493559730036118313946933881292746866767680829794597535975171309958938923073383188668751884390672476540889290231590955178120571487193505875027507770021788220095272993023128402703641134657298300287605469368187135939572914544888999009292444344124111066536303859988886615641682885879463760073520881363564395665664858753422736584126088527474015908545285775823393036848003499053459572930053551898214299812887261366377164836204051422498842937783432882759659598287915350958100850088272228230440587647434824669389977623191256112239485923650492607945394385847567063847474864707614427036646135722829528164464421819749019640744860428108994610341500170001295992353983967337746838386361280146251627190336661141442787300932162358664451466737176156701989744788430865681522467246259246697478242080010299893777539080551967703519985756811332025419291586459608972684740217743431214073852040566209159491047449205326161718395055483481914076377531133359927146015559938592560985844481320494673235132390857593411575241282175351218280077542374457760558571359281875226684464477769697510502451815504885340194206091323992186182128545808547953865770375211885284773263105171437691769661010766806481152795183222708247279011796172483785306816595070876706166152685100517138532330418106188047426028731590268284976178047595589886340892603059163288928156285621479089186291204649921176423389274972864586863768488991371526236397784548201601193561970787690433781050022716023670765908465887722586577360326210135300394917027214146640088157051763242935483894191666062748226243087427077567168877873354699111070049891962877658913278742899368208546205039313937835443557373677183008308569210251977668856783316937975067788287584413567074441011465683527285683311513268070487776532731614308646364620020233705269060161210954509322314232335583287990157257993467850206188384135827871852720967595079111524056440963655214887766301271044074761483471833450577199456645882119128142987139120965573067465093303156891689860356688213965352270866220555089191137887885392111169999808633771994894758753721182992810588004025104234871403370212074772526464787299312269326587057860357190929379753989892337785325401573009681254862882911179447607185022779629954121991117128805060246339545423211307700982254161783205247782994767864415702324674534669759116863262895401636250332220924607846546196892476679237372217134022252475567478608620780177888786018099519045538881420271732797295707447791601901399932268093021714654924059162767567888702487637930525670530679943836976822964243210745727383656153952879506466737734637492416846918544386369049934003234282527803852136879051260326785601277762076429045344351886687336725054003481495739755598435381631367893116803717496189661115106922941913091941234914904406154102192469121418597386459355089954831611049374041567913800078872147288706059511039912586748792564579819277149824769137926139001992677598043130137163696433503157822704745125293153596193541193910417727571620294036851056573636821187036762574040256698890052634019770008857809318044564100745394026376327336907315590717326242253606735996372980750429924904401136801766183017878449257154194335607613232285153318877481680574945459030578112700615386554792982834041609648846442015917883722925006148491207053713864694267631024065910728664277115753998215067901229884277505476981975814973708059442998470613282116398478753963238209844746112295906293049826584845945782786457899747728800704400834521807095832658944013209281262772963729519575308950256046012231243706898148047916886274477385871108550335205764739557282571181465851495790729739706358171289430837076046359048113601866585672514317023578357439304494735066886624917994950507137279763762050135873392293319779075249445526164704976144257642278987845455833986189664502252413312529659735161778641865533325304023788848069285541199001832850810642077440919824376953403557141368577616206473597525113671426873868966510883098090699350892929603576813038859522316378246480336224374027629487316318053994049181251827125510317023382516356765621116735834290039796413968651312889308075361292066263565493101147010544958822255347466054102281856766113283227105945871049145365376449143261909080130434562648578288352136454134260525232344091554651372600159495462759091348574214645789954436441476619588953976775479842349252743558271035421166806249623525002096904213996456622226881398163924213771522410081454299812108948374947286121824644946621022702936502512888072249912617977267075427028529310706096590103382085353157504994047566549674003634385214851313200876735907494906150275185731395602161411179275026262500120762750629599630810258251792354970229937381871565518245565564412114288555193582454854864032005672922476898003453225140609617616829191387152598269115828681816947376614881292685560328092002145351108081414968690110988324362924164056433045132351383781922173891385774228463457849937892796252600499259341975099768885575871892525685853713514415288386259203813447506661538204918186360517392468798070604582139875324567101051160180387175499601096879888146325617763934100905465476881590779790262135963609285022110519852558388250928087921236001689398364318494866411780463210428568633820959410607902724034619730165990580599033408376857846838923835749218775938228090531020317164633932855349840713012285577702359508329056589166834966247606442024792245746619258036239699629244227869006018494116551478321494118300152885694771295402815990153779342483647321504119701227774342056519524212728927012127554404267523827584939638123802987105362929541988138518560390781469986597756296031354400644661993496876526201521156066699796768798064202944153739790234902933400498438648564928213838169268824504488787764738729039752436725764238324505785501778118928882151017328702036755747145078688711408031566960333669667316056187524554968314212540298034724139313093333502317710696523314705203736676544040889848463309187175678597155442851371587795814767951437005531298698669619814643377052890026863047861006237262656396210962280630553822037594786058607293913096009178270822974688670601345496138408758900114150695296223066557102347189846934525620124678769290332528643256610193840476988495252478538219022045255212778956146877238203300278896947052171684391808016130704673435515912709507751020557783342908549750224746510423000036511727041058502308256361890670823252636714244365689979532272968946341826851564446841076321861677099901347912183312738939215853406384951230561281530016615849981984041459421181073922634500743873643531174541013965831634768689196415564757535482783165141790751231749831695318081279601767907237368244391554614857605616772798863772133893340425355733543135296200487863160162145925082214732610810417204872513941673569234898134756010451633312367201278891991484829865593598103386419489960647957033597004042415164010733391998481659456615988875551361761511780040965829919569872971360436688100007974389561818661923537298022484897747784986040344493644779748748048301779430895577757022761660107028020444427075576603497219418662784612529056321198969570472989417066603694167161076052369908740191112001194732043116212164051890797681191798216818842343067703872531190445232828201352048008115019737286988210971455911380570300645000908097060541742390066246531451486619248901329432455124828843268376253589175875765664421819107000357891385492085060248885406068836234929056931032939023370483201556620024738154792392544890090176197626255791182338469392309348185674017572423989400927158754321697069485751730554858094369103038009761431740809273618208765154689903766089922793871076690198638926297407666969302772285526095202652366437809148412522819815576004187588005631026642611469539940752500053430644338914706662301682538417872146015810384029737216159637454243054051046222066285339122643856105310885632666236122511761250128573812632394347409828618420009408202208099647562218082336968968933769174107455018845852088514551771982922241221107847380233464666058033735657713923398093744480048610952793613875659464411182741468379813170506871253687912641835760967096087928966630025406819796833012515716833289266091914190402459770376289006879820518875229143524694335126388512386149253337519526329829628854165495020725728777380820312035396783025827729231667130835040846009685240859151182000360167183562295138011503445332390857774208531855194989494593453506087924367811750036263117276629898644386447427281458851429932642913943151498586261253594135375973370984940775453018034010953997875346658810581995836090869816433378818575586919409688490124089676495989363572586035598999127141356681094834906110676763687566289606146192199147504053498181491828704944247464700690117352313020440176479443212866019818736458890674454534272932413852885589395082374245349736501550480336080689107573174091537470949784789594600066796436603027879272543336556669075910535586934975278919568600460590434367812390219466803376008958673230035020642395652515157790290334970066791980284857293596957889815644987012276018047755066280703447501871663891074743758153146961603963757162872726513366999108867429198782616663716865569682383552283197586081793980536012980222177258319968582682415195048524606561934511600877764951425630828088034925731022226485292732618714138879368314456960413267324088526846248607523747252798355819250870279432805653870068365889543547345891284707293924980505430186745204077190618993159528453742685315014969361418500035692656624044815467394940066097649535890058360909357109101973447899292114406490817408306066603190737986675319760188005168431031743931885904262256154186094408915017865242654809557873768804748944308193786032480961978135168862615420371435566937210011636607226702886668850030212086592285714160781666330611480367115188362163313006766355902779547845930388994591454685724500917744481294091340821249224670427461331046200462001620710348464216498249649299175366483122745138058241338649354581610706997937245029316043289810893939191083304636685672318482760877324437295209706674938311860366661591504666802905597147355579305524269702340504279411438784036516743770299464615430895626981588934547282941040907016363642788621746155706226038777020325341387222940295347797831740388425982606321414866920642221509617599608573151750891210501892864900276093906391522811444502060957078020085481583106329545400971984929925676476186812587572895899087235382022362346832847001912290757866721953696900808515134653524472249320623495441007400687701452498096452226256184208253002509376052914788495664368188203445337886734764186949317081827637172100138546549511248502520532287963324732773467389589669731433304487791817322436245129259590968825179144150516264060602197362687644730579288401220120532234796435735945114436879550427725779041825508572185540257528515354639691788758589513085622896493975455119850132358195727148875371064385097550351751879919455241938640693106256901815628111674278100158105286719724961099350517704348166279563753989640893840004791834460215292677077988355904472808950980566355998619018391216690152430513497952165706214539306851214628058398968921997683938581979098593688001158753650926569734388093524236915389312457904728966842773300725853918660875751202810941659839557776637449743239415299672417267021518506291879098240868632846753144479116201564338870638826353445809363504900737879689690899686970428070306929633739558606136769797206047178730617150160463170381602864925575728494325086619698480251919037596158809817679096395466249512289429842499007959126574844749910306311764959748444982075003457280320444820052043905488841326013403892623890944818491734248320245862039253990164782985693907808872546031559090575395852005333122985463452372133756787871342112758252370127666302056616393846695544834731579193843446563304183382870713707568698080770562139020741950263470181945147709347208061476196555072407796966559690715449983533856591512186902869223618986939587260545790400705650903888923885419903907151454871909693054863784595840595771515591080703826043497582480733176175720044334223174202659894312614850612180603476738847276147391770251127709556610636185790073159594079806173292001949686417819929794123911660544513838827330566465336629473064423939055868379550026821732183903198027691746439834428354047398005072436204741261333888052190195079380242476467273408861589413190373460899881650312405259095082833479307173231518327126680834038367453292133139225219157704133531108185991585907664709916279551968812229064962619634600310962654115161404192653129729139029589042657073065741810951697048081310489166588675269252410295707874857302383075769183119079802103679597167389687830818422772391079717649858014013947548794841433258982971911529417142429571356281638598941265527378167974285533830759714062519447013295027589655886276275160028163384556800681004040543170713126290966241188468010096193337881945773912503130452316685467262960500101178240612164970516582103441261096775171940098729826886061004124995989148894933738861155343411188240323407512533505855295810790005318331255791356314839404823777556484071015113530615760537136490354289741575090113825027114496988588476726076730984586752840960523425399429178035009876610982640561032465668487234664048741179615227016652843463347261919111592662589665644833237118017984736377917115792176225146470647878784329934756345418598596020520624895484590265418105851162449658337543653819310406411942546949416703219866626713561586337621119434066102205130202446291436266963609137260855488723851731132593189840950405798037326533205648855518270375653973076362866131788622400197416029020014426762066917527547256429385645732601018857166503280600211623815583498830594423259915319249752656207070936767882891388356508155607240680702787741600672338285554767871857304175294029923000174137605495424534104208788861318224903925947752805078994861541023023155199067121020565433557554286170472455265855046983845254423714623528436267974248393952550346233452257917314214049994786613164062261094897269503496670531481356444747762283502001694684419485724697768126425479251257551037821812415195898443770645020910981013936355042071053617761518867449467965812919554020907845521532908175955208126786322377925412975918698076731247087186216211025121912162590456458037360916296863524098092089142359847880702814887032263985021885924917192127346538165377798270185068917484162435720959527771689439286659103767383100769837502671043344488023504860806729329010861818484668758488315326720311631687194239567981820702095185297550268958108017198930274709934543983331409082519820334901345262833926103569072639611864677237941081957696063092747671272237925704759848722610183774601108106009010536778426838949767400868557298363998950936065598787433982858322502276118958646814796228471627696145457473413993987921048483672085476977969119301233887090556746379208148002502031777510810139250234922730565814779462736760082653587767743178739231336875756333383315143689425437175443428992337096367053317065744628322215201527080538652006430922404345114074034491288908566285431761561970779670952263626351289935166044152258585485100939561160095003884805862666043497889537589324286087763192532380442615073094111751036553601791479620990819242956574183091361151245873923264073252986964261604068675763357878632313120945958282943680000547643440842779727392610118377965820572189179965960163703098952306592850288778932541697338605377641302085972935419991915485742576990504533510787647701069290567538025590621647428296564824376982668163097888822820300766731369034375128648399032006327967237496387020995639708668202449983559167452140505061747345810275053899381611837270157619390655368847206531919349673896916677587852489855003552583256191698546033922302454250569792461194886504097547473338538461081049271346687449124169391879373338738327760189123031470072954414250409779779861754398106909858264397899201399530197018479013386028712132139807088008558749178340261540057951167104135937939497328928776776551106704853528063508640760853407206771208247738174420049149919903477692108066208977798550152303396558733462913653607698869982594731896498348214322174356358940313541049404983463361435435885448104230832412522888918987945099693027022582015026811576361489270518349802916595027096658826374684794658155466705298913331445880360534723992753213474139088963756463985160838672965990877270817602330103231709156563252941650460064427781348315416044859256654728943977742433686233239225941912858377168814512480097593925185121637839573610967177003016432541480363905795890363254088548566975519971751204687500536384009445151204221204622180753792565203885165535789565401178932697876189941079595260747344996626856365185474357854521555274129743844867855544630169740433814823815177679608995738735718294710393912461862394508978090064727011095751962412786063121520897964121915973979246083038743647448884693190820884699133245032871974889074246732583775715854483611936154104814960072407502997352394747915725664056133978466350900416505021181688275818687494583285841557112696701880852057885416187602969864822919463125563006136912006832890831785619078645046511879052212899243777222394067506498868097757013563246500152562208055077697368246400649096007092579148023035879725270334098881002101296712598241894476328864125062564861594432766851090173408830908140954220223488201388658200943708599802119571280902981356130975786792541606677821309602921890089426377200724333821603063412868083981375077174003569259312649405552967224788213008020293678540857568154117407084605990726841977031265870869447989220624100841261594285741916289942882601788340888821676551568819889462948970906103379044310271983345747574117339987298921780537101935897091593040647667985505511296991051398320425576479990909783121050705763414471084606223185141107176578734880310065637268033160424915834855597322465982529445119400172179323007242296853826400577072771991907665472837511307890594340333657658979506506752266750178607186910210122457923929534681581249939551023682597339950179717076159537613679911097228404270685779191725463856698732545063575998528403907782638968479625727503908555095875326181738579626824568270487223464571973827606478574741604524099596988064566632759659160376120910029968811851880701976137201866707642019566054557515942344840437019643211592016467993603931661616518010610106242154641956719354150912539016641846219128488788796178416714045236405314419790042479014633420322965364690991949793938100342973041061227631430605655250793189144041093210396572457198253564055856672281665855197412341628141631121959679221794421339703345937221750820161680701516997607766740021721543130937367551680996725507076370255934762409635654408306279061817078178568750168360265609621623144917443276148276975543763792320641385554457594105862111501090813098098725110174152055960119846647947439058832589732580329962728963831229098891109080969717680272311074287919215457725632673060374268259489726085399622430110951079431070858006946828172895617358712584184175863802285895380750543263729934383635324310045751502450745581037126427450478844228822052693822720778732842207484787568160832427200538325007563164385383068159271277255307331495284204213103223873720517528842831424383867068559813903526366539417951087209210228623320681392795439356017753946309883672039802588003972627093134841506772005397796577057266707139402775167785570952658514843518283051017523180118284290745110286501376113141488845513430835720788003870610747635746523832150531132102967320202619788220802634916613308064388950938674432581336565254935191012835983330321266965758087705142792810772455575140745729833386588281004157134625497851304673733747466606216702633270584771664899358079091397924337169431480532439378480352441014426085892045132340176937165482723186062757491791243626573084634992256081707911169171689362448179015990489477348456344720352973186070695060039211544778979784220383355335018452867571669768101947431460618080191769889950947977595836780770068092443482452555941262699308803005063870538720844190937003937897322083765816650173942676769510060694991000846319737425338281274211862343166710809017853643427045870934316000890422978440303092736002794042262362402152190230857815952419521576380723906922693122447257331156273017829233083023164400951475028445997228953060614763826046094240085163598385990520786465712952687224749738771344311052806505318699162276462575027223343361859941620598885537440248319831197180823547914934573690215535956593234751570627816558929616347546377604860586031165897254125381687144210751789213334523220556734377642423647983302142998724432840773542139678968485586876498892488328557156573884790191012609047255607850039419511759623957805313856771732272910469950853848995395805478649788510973078491250453276270530565975513259763689308984331803373665697025876453169195032486594264078584880107847144342969306821136507696777033078612632720586216269033024008247278202840426308478057273062106088383356365001539568040356081830598053522695825799840535063214986289872614689246887450861786879279736076900658051873128825216265187669677747905868434318933632395240141723392313257903027932705496119654056633067995756077085577125604374858963037431954842134608280672838018759147378515623420833947903395509876354652721834881815055956759178541023759777804946564233544383719249117566421544527239421740941519171475529551582631082328399267678568742718632485424186522229477460470808353814498947329810556012035989763459118767007355982612072806092893405020995709859571689060669420721371029618584614986548064332102658228973323135128988860087796135284949050104781121184418911368548713065346470442674556030709250826004996625138791595458758640844318259498831687841596589116918638188546212519622732754593521230502683021066171703391100963234152357627516481864116876867512517148323448811553230247962327744991100527293112369269114748923248837183936007058610567202708750962680113223403878872675810750770410622241102047628230124782822321689403352805962746605359939846112527960241453961256505490288425973357106881386463886958545176071736517532733220831337438371980544138933270627261289924840870947470336686329858484606930202845429994208887224651476386786112316640495284722017034456748557315725385772446877680909017800707725891090381062868146064617112272355130476056209021460650525134278669184680739944844105500244212345096957172126732409444299716821471467038472593524620970104954816233219882988460555794363355672620346073722720983018796396658054925814443612262560695522540336352506937675851269757279389611809214866132200618577370094919976323573410940961280097764772028762878422771655500006216096564605286110244523614135149332229357586697883494929218839330555001067773831190612198656262203942754156396435136788887715448167950747627536343361380866679092571006408088056512232426803173775483317749679992721140051242620239583627909958562518437596509794728706311627402484510921799088901740508660995579826004294376454097904126160375644247824400460953550493258403895603521171756276549496715300168207662418905240321317769938573173919095987803612334552057764834475583446967341612766144769655879403361104879916029230091762000582067475095417726106054037081506153190060447581488929437410798463941101157109517006770072820207353292221619819722985562374993338147312787660064318663929258635286138228123417000263930964674921536089956110296364296580895340500443499445150763866410244128501157769718962722195380378821391506786187084958254227115919001746750359300647005673314707694588966183733232156777013491842473273303003150977041581590665836817286595386164550306526877499244724029091241952367585973078339090513135504512015786853886614880475115149962630584809898119015818312125837472131247225968539492505207287655322991774516739505822281155125653576828948559487019068859370673455363344878885406053571556983941840478705408687944074258342471069252978954678991275723620986137157476373773814230876224431158355234263899685728728695971796421488258377657788382756529550030870944457015490934410502160213216151231942555298659281762097374586879856058939004055826129144804421047061705161315838820618802497919172209423787257703290570298303495488756836523757495933080638166875548641098970290460643938824475121810766466761281411992524768306429935588862074703742753907696975888430126322415365474662015927089745464951186659911885181034917746580717052501190655042806445763981959038391220046894750238282086934907588547533419169356307824359786115502027351952606484957430251020071754876195207102510768570436218596656054806837246363969398191141440285365456087227715844801951611644675067255041621197861412896422199466569066684328276592548190800405205550445291485630201434689146849435584815335674931687781724984128649101105223941282664341180366417269210408555944213820688812527464885398463737535201071566158443386806802423910636659289726942651871108194286710075768421417610109838794805671838498461742051539056412711289110934147124574132843024742788016640660955998239234473326667334768225368206023279314730349637968514024139886023667189753793738397501093756012975357032528148729188023939237865730461409219181419458818805654694745817034266276796534299022802848840918601484476164318254767793784283328179742410174191653506604128826463783633250495650250367140782680485985564930918809999599889912554958450042889663122063060594160943506461000485576047061119866846159042316917040430980219756246486469180561539162450735258884684741381349305949574956930215905694579898141327595209807684556820928560106747239028912867066349553651788775562975766485534357291249050104321739512055189025023829945741196444213366840207127021699444172574638143445601788505605690559386138795547353930239626969752129609931939420619208337656435397898574650436203424879476493088358101232839600024942623845965670096869489727686488009614605742560738282901987728902043951627641884598377335121000381143093514077741386319881727422254817953539852641343795218207035835367014999527430995151318107990707283460743179129391197743386082732654059219956059550402986705155520573955414591156254086972495960555055820076457082400829203013101948295732414464218906187912723873217049421018862737043748905722954339942013673491887233989150402136583647893832247101504923170621302736755916120968367291050995845493462014399623404105087185398441339464142292031514319427132028229528021774707811672078981804539126042374572156964024122151588990458722973116525593444691838287706078097799698203474208753744719034224258687093432817899412073800707885260624367555565096704108917860821516149127098888220666158991111724844261948129948226479132423509232747210753720640515300431408438240134574119741833873115138889571802425617854009937358689155055122083625808798968375296329096467907650095666740847659221975935438134117922259478475272105235643684700469408161986529946503844231223924923995114782467053411006854263409740138823448180038929469809005274016451167364734730204925615348878470975409919855987160629912291190355951489921233087236029994933894989517134389659987964494846432075121504903925084463572489881732744914153416003822147170156093696898245266218795494850994464508932146629858546953385765239040767349427480074011066496676555860175982558947912954119988745266949319298025275689761605850042723287569796174078541466087144556034163774296367296943928324337275285787537096864893094221437777416323045981820047757104656083435824833943640842138984451912237129490132585686866354315509397645127551491693121044203371168421888158923632982396865030154178336594422102554361621962197371130179315217129747877119467078227341126750308001913732350821803860812919626044966485724270608181416652602435382337042480379289665988649340236621485366017565120973287257002493375177075560745490250316284896494831525732700151276279052409601422426948570805591549711806471864204002401157847005579377391272904705754465089899937102442490698229141581937116746225415106480627884227018459911359215693746795297114777155269562811533693109476492924084392160833326561737681721662516103413379767033965501506414287893161134810581550530480225299797305695509806087594715730768859895914142732159248665571655557052797338445241828361198843119518624345402477812375362309970167618087456133575120298238099389403613445094056626004856960686333942850516908583198755328467835424676406547942309491172718227417518259251303962994505840406639075741865196441500542279412864679335930360724233205095743871718705657265580388089856877929410170126381704955710760500426122504835876248211108983156983666051530791882543674583954582034956323027809737877573576301683928969412458467793868142619061761755203457479960748158891981602094108300101587835176696531050046779354649083003915399034723661452493835184379722249902090820615399814712277682559220870308428803245312371671320537369428119394254881383597320052651129305538065331172691682391757086176834679760412970170702844429853952659176077746293058490364970467724780922221924999870540585275144978750149285870989666648193963931297527823005689076921573101949029558233713169815487428619233485285302755083789100445505679047154063186155310028680492059359765908444258317582731377555258259477029288495563530869890820434877235107299370402156884774331481776318954619821994787305195739988311183943546525495436521178532372496176392950860131268726795945185378172596052916225633359538858661984507869502221580665130325589248557656045995472872388638257070079157690614225095639290999325622223460331057024883845689853965513164272255982175757591233670907633340041122183537398660224067935164842388439599767782538108155145899944253592321441176759829983177286164251456964513329085772916214341317242601005350831170783494734784418368885532497880299848843454540241234835130463201905613011452031658239345503433756930541379877453634401881199730006138550188501806001169669343922794497271407055385319450773112720554559267683369995906194537147802051487186279705530564289872011569078874954318889543403038326161796409013341370667767999539704424602499160133297085451709847010279065208124950293144463304204280161105214540256714075191567331775157547431305443522304746100426794537044176148460358325592201186792213021511856042227808513109182999978893925211226510027965723843624734587894082345840282495416856511145277962918414696368762478900309061146373595835740078277973869469334033359034348772294712515822012457617357322805599801785298566903327663130658672016789793042295447553235876524755839821777719946241722103642187424277738787517531002917042175264893885903816213738959844774921441132563676340134175246439583309731889632206809621046611400860168066731145350720860089312095224026459763691452518603315156887595366259948108956791548252013129213002541795396323452362528179640679369331525821224052316451742004820652121343398415724285343390365798997231049742131936208276588267613739187314790752589256471481878761963238750515708774628553921328940560151424604022217319369541083915716474486484523363308922225641410622470100591716886451530198431848454334243079747838432960502009758704455705845670254941017915288039906405277138543909329387647357800000519811646519616493607431893817401983214270609392757579157422718990372617256879505983945113083483761702399031938042286563034583390222849183327338622240903154143411281543715423489714188103113637351462570290353392548609423992110773183409338857358911867344986063147039786550025139690920513352001147856852373258056098352830535705353948379185971564769960699333895637578549972725508403831211375960339299737172687182163845789187303398514143053020398448805375582064450301586573656216666294924101558526107724792917890319012963367233161474299338568320012912436265464817920515738366575943830214929740079252351102721497751066365131639937798732222336660171786396719714923916065701050799472287225588341560357022498907077810080152708972106715348376051816468879498465220115795218737405154530640561813289405996645158204667857646808520836711253818986825995790797849961202220856083732275191955281637748007241886186009560665828619186242184314642464289303176584008466869616525584383970995508948524711224108847922649036395301907108370761898710349840419996224766247472095604994422265675620566595687956016939311758502526506666282766696406706736519446324462796001171116795913652494022000610890818364720512518787941834979006326506450940529178766033855656397188586204502968548355243966216846484897893367983051239077763753333321903429870058311284254211533663547029184417233034420065313111754538190599085499024582201384358807648640860598471746594101465314777367622319329431768759945475547326395175969180263392700471782709773215139960959737163971036729418606908571764176225918397877671598394370413409070952334264760101148131750688619549943976605168648496453140126307642691216611029976386520976640498777800221943355714569012890352935958776974173658051032862010351248440013134483582057412496078147022055215700371061895588215661245198630337851608177180403040262289019683827531702314001396809567030620412535384551370741567366627682231181234645928834787721672576447999212920687436218076800632484374710244760202052803145687774141742008895548254546422162098209355363811662282192307725526258630939103107771960225061268253142941222592185163871388600849965590325650910580154962588650285936882563411496340240869252382856176094686681696779758063713113889819077067442358687354090447965981163438215633422412959712855751862306403046483733029954881039094055000617793625279678496989364336576667200161566025617522113061937343993387647041416462619907887091367886186017389850139220791566110775865526964591844991358298596508054040672946485357650957349099666336005271059505413089477485085448641229462155483103936273310177718839117342911094857273476697113997959843134280387600107297801235160053815611393567388503599747471859452734779788207854986172355198995182181569200076952741621880850864448376902210099174732625104241111517500483592151311117513981613262485787623269776419813906310013299016458194632695044185042858350272609468670976007137152211521829248104491794894603727684001499599692360463683769336973406338369901893539764055785195705600115184929414842413319767972309073801748176216754682254346274420120052348816894982468388815980850150153105171069704839833931994690324880462740577809295670945442007427899610358997583045067029168910868993065524852764000767282253622067332727798885902520419905944497731372892532616718469303529470298876098714480976884967592505512358354392380525208934146403790516242957459372773632989483603386748600572239987796370784451652607590571179606948666720109656740146938322956890227132721205884231034248730772417127042586383490862886511298574698914954492389657345534451757047652107224255817593514981298762476922777165244013146770502760616051927245415538840792025944209876685522821675882382786834040624085222650275675110327946175939374157790553962626524214555650991477429466440712432496984725252873621792725564356129695104334703408429429327023841152550939635597710964386499776372360310836502057485916511727987008716820330740156470799448473820858932631018235971386249624139924630113218755849316585424568384377557948287279209531161348454385114099907170351589354555463951640392068329275609845388398652341522903021855795322404734562864584974463656573895533847060893200326128753821615289001632104005391068560545824078315234055730864985831297090165132282052572855631641397753071946515513531774515176521555015396778437129887372209345542733783491090150519424892531011919082438789179642400196244542900241479564898713025333796389871889265925081363461627833470726990231179893408154220234957965956110834078272380022795962794249840060751656514743184199599443388719474930304376209740535386910801236577615247935738751219937679034450982285303767970813561787380068195990330902071929809406280029405247333278603113363816525053353313733382013426834000475208707138409182672506449726245817153716035888335139156750440443401046265114068010724772353559887565966208063071151313829435820893978102166408327772236698630350566295783988691099721994782738111790602296990105523533363321765633514097755091946596995512485382880405787165767169316319430900918656361720978633041971208505113670084026756232917054634996339191478801969618977726826786052177363099044807665291387761797733965956347412746642661673965279039071564812971547170630308037606775624096527154340097192473736831863321059288774979715014666542368656609475040765345780832764324983585819555074680780582745817633655926637881257338034456959290204624709958422143020283143040113161561042840694277420107251238664751289653234150526824968962485013670340006494065521836267517737162023463441329641659161879317396927813044169941624204078145834145699592082212470335072371745566886220968977877643221206407287021130207004971747840420599538549738945539664958820872805932738809397808591505803708156084390162804989107201459827791353174864929107310213711078078039818355609539123617605249834762200760659413003053731851683848818747932145813986614132771421055069153875432041989696689864702738717035715029498541446952631267277171721715248943004433136836176864856421865778870464418214349906503636445057272827793393304475002855869899700982927230387137671502041392854536442845680874650092278161597553015886870697029904368669578424682810681664498256460991999657494503271701926669033851458357886878628824052129169112900196822569993097322438172560270835309414207865454368458107425632060050130738791851825695813225421093381437408372739657014290638150923173872035624644528982254636113198517514522803125580158499148214914382049677282064443001016941447397864295803723244871607268593035538002199470491482749984126493333957958990660198403853523738296460286040059341148569312972036284607255971008223885835699275268397528631523109345461179592415068889459685841556869620228366284259722869056181149410795733116587892085643006425647790652817279027681980339057641184367313633444558884067070467520177731813437815918492013860635996252140342709371479524196416657372808585630782635654933326889066079569357161572174126060816593954215393411697864943416113971190323611451832983889902658072830232530535738671451988319333890530911118064893370945814076241003762545641615906815351930043277105571307062981682749678146328565770010747515011613987776720748584182377034373867228284478180861204081017482382276076740973351391031595051955675142207105495992813029714728258813800521053466068534667144335911158789155239850403416826321203335333816848509699153243092904434812556642061733140790193245582452594990113962446111678426802362760224669399632344408231551175193460282417004692865330596774724692598368960541484816268304431681462267403991968699699199724482273187786082408335994942617991707739993646915875084752761032900437114273727030850621447988429060666748751514449498082805009637322223143225057012028187997760957295920914449163255132178227060642082885442641928465685175164570785660982794721979833199988070274306764699313728907696641858049202227008084989358991819606199721801582397936411651179408299051358116227797431388636872849665507156829035293110866268798538409203292465599406186604726461799613227151610667485681240398060073470731634186845090693826920301174426765428487908405697490444252923159877878234930076251121035310524797856071001690173492956008870960335113944192192843831764788679657279059350268750190562625821913659425413063769543058235088703905817217713350737335007242685277710819837661464129062623571256612385316212016479802748357175287274182042435981823694296902006509867441334503911958472145417833473603808064242805286826667393241893488608493007872181972279427990292420714839775774607395173784357541949192412757379852806127080992541168655447576393840565745753555925909985515463499830073177221758113525093184487663731915724898483836370613611758583169687629556564879551587865243913928296466143272013188300002613103472434765907853439181095212383577855489576772593513373271913506524072730951998310703090811007631001601915366086878230978307971839359938580881118124346888738891728104371766251708965183197381821499472189798364872030745697682138407821057528996789939386529073775435663287465471844159946362310564025214755627412501711539239806474267545455485272740434646261406392100043264743422043574403619678811579782866876211060193982356623055508857985895349168961597422540325562528686508564516912803941423443089197242276793152789505639215890638587853972031762887132122922775352464862837183577470432474473639638280625238894335359510236512143705609525268126623432483651955805127853434033714426790867800938441355055273848246786711532758488144822524049137069807881361575772764100295331037304100207776952357273786098253538343913351456058207694588034273083015139150037121162149515023403640298642963204577924964733310696265136364111253895516825162395793076948592162114309649355801982988305204803966927288787981830875782601343958070302305978326387938603934915816643315129457415359051677383540987650120463053006866125412260987583926201548039295220279681854577110410667486688307726831614290406142178111602516331552837534183726974480559703045478307208826843677352493654842320722549740437474173636667804532196430849289753067932946023266226325181853060358428422682929397073177863132578461471638393008873321374451321248249499338938843524898813579776430677748256425131878446581892490660254474976687200262409178217314526492792218377560808168820712154126567097428420177014817503165721058921176004830514393663335872989537203624196362161445691880547170881449981824519195479910219072150320121020447023843759771067941180860662810477453893520002815326726954263576388980630698786597934600477588011786577126846672837334183933496442739321652142469583827281800694656620619815284771849753481939293309949124432468074371223351061791595061379683448197910848596968053613837595381671664705985389119709654212266637201593317406025932671801939768032764924480076209577372411321743465126016214134556620972333052625927124625828833062854520662518486917193142432019453915731708573313524519812543407308371763458379807837024735541990863756307199992244979545201875497089435598505832942204859889127535685078490855065614867730227684160402021536044542635387355557780829867966962816870840708220905654480927723688194057370187860879819803271004321726237838274624806254573679292824830239053844197483697072409476924113613572980531765695488223477074032965602024698241741248627769315386762440952172941136257222723510562494509041488568684130874281120232424906308279323372400636850459106459192242081429391621345815230633549388072017481145476253403501914643391233473524345727495491064548834808375922576161800738091962743756493054396385384102074363461034543951563814446698020229330593104244314152059281266980984192901145831452755807221207495502312670534430216182644820055958682092990990310642281038291249987927271170966452928887509822625399944887176827835040902500526778817969147707809590626545774082842299958872757087435372315686886986255267273590105687999519093816582060950170579661818651951631348896457280042656961926559693285945790941389820770090891183562103489628289969105362726664265782067734019492271512993090208086784733345152666279007010262227779658083746683739917876821711045264077481382223088795476738660141080305482406706156796598955909249471423618342585945363175655923725105628115177346316030801542060389988997314044669456549420233297852284607291935779371079306294019564935655152589840909607986859753404123372518630751456520978458578953050336873803449268475315789927065721698543327248685635816413636085848755586438078544983099392180260113967878242259860980174724758255617940818052972560408460524093443088268932390273079287282534094794574047262033347808405184602807053316033843573868737419215537839238269502100293141316763640969029493618516386015787711472228436150557606640692688077419083201257412207115231508620064403506787341318302494757217406540606781004896971554021038744957245044150207362233650412138050291461904050207240820053166691373957404919491048683380356174862469934779675286331662532070280297779264567632609559475507417130965343959543930657725546273606409840057409090041016884263779758320621334994249688483954342584690563623762033913812911344021518572151464281487493967454034545912223953959447754204265479714149655443637274833850564910242366396626401476345440490698491122025477285548289032413409079165658450564015213584035172622942250111494992180972519043920837700608536285452953278852816938726082197750653221404271482908524871619412935293261367445748984504425411416931976527670040271727762062964383340248572191882829576610144731893447126393827099309784685499804033095719055477286083136641347329025637479943831339668503040324024846372868476230316311311599385782647628757811576514970545349718618947921470068229641339812355681825857195687733094914291625719279640978521190647006857787292090044055000235303710288601804678857709072509696362379899708186622300066705979483254237742839193433292065632229353923986664868507505878464145093628565065293753548092405116727650606020373035314571782776626822420982929673638505340101936183143263883546650482721815472937662393360424069449428076943543377997265933774563632311703468528100610566806408689074705662234143085686457480546050115794551940145828568471130274626653920662188121539600422126802927975539732357820359712602263502616569996678002810312910172838597046879849292642157025805578287737996499090721818838449514997944048379506937393554161671222084704658630364452180866642792629707594226439575104399865719620889058704697414285567024967914839123202534396508913707241640957106604094060171637033600864742613322912603255730154083807418452806176746499150002899157816981217716602913812337700357760295774137926364192629364648163823291150691713846589094178756164699051474336481927256865889798183231249937976326164793511681072829102310005891169409395915460292522424752460616338082951938061899103274807586805270530109151159307290204040493195331425665769536305700816224106165271439373845898095521207603653140241489027227897538365614929626399249768141871653702546959018624397758835254211598589496834412663790823703665098000957886412975629842837310934741681203296264158619457334488072255885043270824898868860600790238320992595437310202096487907177762642210124107195059935771882100412236743771921903764588591464489926346217349777745539452388442044576572155745536440969804865164581830729300046051103988490952429694065284193900031714950427115856083150406780402949463238958836335452440640881151468312982577088250407692847070881644503325887543479905348938799576001096186019569600820918152499102481813302989111074252190942433756943291195207981618425209314096180937677005390224643736294842537626199993493787885083977359247970996060819993524471480389347550262963167009596457074430667999293232542253707334465408067648168938634033899241728827918538591286304990571174769061584414787264551022264248179493340740945009835344420945933671557797196232327607215160147236671324937221909458083492669349447329416748909963116188040894483840564770153772490750333871085751906437358480467490450099562744425545867697035277482880715264779869414257378735669761381302276240263005616813376799961516708442250231501884933674305615255171503262699132140948250319763197400289571993352170572635542366269703118951966247123481177745350479380233327640222715448555408520373727925058451761451035232660784342102525338914059163463811642715230553253270790507843237348449447795392192826210853749461430120252858023778884312288964622271672581392298301143414986793685222097090086923985262786399797628724036595026872135758356122017881399782800397559802022827283058041376035360052285804561206298174923126039694858301694093598400174364687211151034302669486796259505652106867237572275185510995880494354208094686721230429665192895743674698105710556362503940314022290275646942932786013878799729215149190529585051561009407392716586591398547184968179729264038031088099569247507054276078027855737031882222455947312252055339646022663031743704150151660815389601058226020793199237877887422673039496638965708731669720325147462373388116250990071236320189616303441740291955842187923888336096935139804210625309173874133143508608005996425497051355781838129269299585710133600925175029028302917267556957880754671833066823836930267457785113691919512492012607644104007379950007319359783793118805765959652159753616396642530581476274877869029766500077049857235189857946998239258844419606262190146067181313006044110492890822118915525815280062670084526704994337951116567929921148747159741350063761337600667219887023822833846582929480448355543177986415763976505019065427865404949803970477643722745245537224087406671650584546269535261865600214087538689416200248749733047659172498968331509016615767063353597782698866012307158760815432990669729160726345280122448509638626296414638734530281696300125026904875987658968292810518595273203732369459320277668498266012809746822312378433624147225469099727924890969152497958315243583073818962270955450615382050166303594274025932154802492645681064079504398876472326776846648209689768548802564333473841751794819183387773889191234340219302534789635383705980358077641499152848544846364731256559660897732260749304328011858228676196619167073089710582375612895749699153007592318764111740700677284720462699931122591556669099205282916924749542959709626139045050989623812593126635103619245288985764067817460174105942188681117327148679150165906602528420071684450634634614061308267186069378804483895353536939510307916320186194282772212676974354316603557507724119915904748041654050734769446499665019503877435584281775769765739543108029418553256192633732228406758438997116373160021707813051128727899669269903724645289007525503692053928284582499493528300825587572837927147524023398889142656902597086616735989849314543735437845621654110573473542554076670904809083394985756835635462339971710743902110269723854846316857021331449404969257708491826947842953657973279799113444514548743022166648733464768264548414063121859131742457257299223929686633503661499846453368279777126870736885705498367200472032870040589378818907454248464247821674169805175453841010835583284968162608795460612793750373845245965304286744340949582055031355884636580817301417601703291676341032131037104627727990277562216186966909980606030999479800142670898148763407413853295339594319441989229135387940184640476385298052296462710894586978667730020028772343328635661410896303187256694740449614701371845205076475046334210484937078549993756389933526339615860576617851314682065281166549943326789498954361343337634699527800011032227325232912963445534257154034980133190472802245856439917462024403607840075796549932085727907056841633015362467034890399681482070127669022292904459475996704092967185593783775253883909436355242116135179949951071501195296503172205514334920404889231546026247103939156694020443695700813650489162209162946826674820861080334257722339090801506049915665644480390125815570476826560357152019351896079669124579146423529036963159984134271873272237345922446735019199608001891620244850003584691980526674222807586629405603409732320720046216775891922936790498061665564116141944919019848825840028255939235422773030044029263121224991279684283035488657743840484428677149953145400481307098726262924401728418331139921123361473864277428412860261184081256961161249291606737269918025815778461580875412521180904562658021542244348846344503642424736355584894167916740543949222836348733960807005918700605672327365985976309414693916445581027969771619295482662316330843624529792122659344239596562901463585896137432379726015388583043301006735067336057050824773399092266634916697576664884157621389040028307826268863049210353576573137304987042448027963185621284614975979923041215394132222654496295626040649058145339342069031991853963559740322981572735400737906820605660893569771066157993246056689284611477225131884220324228609277505539311578751352021839992146036647374729978024968564367548209826610534498204457225507070457146549712961949236549787174178280078559016812344507093146490104686199131913815419882977796488046904709406430723832383004107864164391832680947293310817058373078909016239870027687664191436449123166894247975801631209826280854705179052488837037509859277325077425845849098396620674505781899977449002414685543314890935174179605936797095523182943881952422728063109428768680724157060668570833312828496350838588591399422471395168876272355173399823336980807613240928402145629291415858517245377275152635201763622024089279598323659084368715948296462416291025139541616224442274178178879357192330275355560494108623228313109788237831471732484738075752928090092660088018239653618266973275868961753130142359466236467361348181797643343478403497167021744713566296064730197841346547469412647076355270164768362690721826553936929195162124645779564874767580678552079186610483194120841642052972747717371874950435652026667613803910646836712988544183063686739418345995396925873399025807903339620119519663564261054287030250216905461015648227846601510055045896861445557081891022983737022316143403512487993821333024203724468883775525983270813084016441740362303780664905881679573729319390522131413010105088080227352399462470210278471292651407616604975414283630791375404471559489563642701442097998377316675784964554885486043699012751332256735758023578048061386893378744215349577166563832417781389671718423336213559799510007720292665213165625515423912502303908702211816311001300294908881224566144644381164633146348301624203916415058883254843163629739793849934972215115973844061167059355026741437269204375299629212014825126242639865508677246678167232627713959429902041241256268609082008690121782584750589965065040488165780760230299179055118543191097149864359265198008637770581259550881364533792006507729856140473978595615468384853500670462337037112822655654259422232835975755480870068992345646497683657618813518242967094778039721552430742972560451986631517396288531605622868221146179849793951041987306829383586355419129750833551910045703663471223147140752946752371861599137463317212804842681790274471041584609175549662732003912098204411373118900508926752898412315601918873099979067339741760124001372328827779353592297368973377691235887104760836223617564239027614822312185500424289589995562647702202639439941263843195368045641072408867102248704640725569997904834233156976638036024998014071086859363595323690792663198759772331260999909786751264996856012641236627739745847930056356386164715293417993465907998748762542160565215521695389716074375580299747101516292858731846395053518788583795566243438853947771036972412695277539807553619883808506682841696014333108566058442338451983926593410885957049762661093760558371821127653846968231424983949854899461243769047380025856873763116570881863900213072979644267465526322421906666779578732723186934809903902934771847721136054480700391972912710971823646929475248013486660111857544033013084205193162774903818259072163402261661543992335393193266652233957624072419911311866152458933296753068496919401209574298207921511848209781864072518300134596934858503935677728411255164142226622112354561229569285588912159643061605853588883720913599273853785823811808978232622650228493780888652336144580680352397236540235328590489705867192819743996221804259076616031360238619579076076648655188399995798057937544141433625756883354575403093344456200967142074323530343323275553874367739516802153046214743482163303651023781875122373755630021716574462190051578537190466009642892361195774331371343748335197533012228323018088208657366833552954361572873922077138694890946659262498002870314924929018268128479836727054700127048266471586030174642184032541054864863494153897325492124827430483127789617105316964173164257144713933185480574944376712760392759021463529400075887719386495041911911698712374407389597212401628040456171267678701693616741933656053460880795412612941808078482078251065170551739219510017158247818033023009818486528927004127870520251920102017461114541250602172581421789074383157168267805947817202670953802213252322696872812683284326038563963484959008509340674969055324365146456785541726146557652091383476120013232574597973771674500593328416426546274808140948965188267701246590707049118453861528320746467334645285624412760356204512274923047948422183425068054384020492053022812233866642524006308662350563722560297711917532680291963616741840240639200071042677373260265250880965615137084253179574800289011464586118045443850019344699720054588629361410698740779127295201380336423984788187203392881086340771780667880592867319929321696337009771639948032468194428720597097474369006429490164575308626699806700350993698335036212229788907349392986467419211419410861944599075578963587700267541580297856421717886281929539129690319307128059438487793561710607143948989398130707991395658129005149721199938520287831762818662654575938722398415427520683361486956735191192292373223088239786645341838148055235099197730537040503454781224096267259865427739519105051450148993940073163538041269921992431435176734795491936835222222072991668396692453136839029653538393311400654526195207349490836484911849895357578656766927713406981531176820800527236759936077724806748459491241142344909200461220260428186125855444572043536921154143323681374038473678008651307615097225764234959731370225100682872229260008939960994627907746097020759288580651157320698444861167165984881405953679061164055579192585228601450922921081409871338075926899635427007859269317855956303066251327035019107665649849086541489072283541978792265241898451521451760520200286551442819606681298285998117257262225126080301579465252889839108481919886235011375970704627140517395042338816979309476187478799204436570293838835640439871083915380067058400134454774809094840344139219035520777472869027397871158587282270326487885763725687042291460446991697061235298998030291281174734532550400677537209394038960464440878419742648153672255687239467494331260984118542306670854946393635897912967380078556208940219790307318038770583613889370004899864897623272023428204843020973945797499071249928891784541949340987046847368138579578135264895841531663562760939754198093195180434351709392551172008538556867619939966210294255008061548870330509611402382208537573223741075369822659884664156913088067367339237240347345315476995466977351303544034642340166234256830525025583667273932016236301788288363177090803638120374851370953559705550497723820710567981527882885453237183486829416021749876203890442661967517998127590382448418466586621383330741306834206962777853789911671998953352493700331639791817380872160459316127743063332222680205147347891496238280844051711018964487494206704992760188335235634981640401066031258861963804299104923781344800331454884953775177762165925518501138268482606231273999457834243860937227650709140728561772311787268366795650008123934410237881782358637260997546685135379980695007833593622796252440747126114912613697743985892696109778089695957399058876819428651582663396056718218770421857763416169357820578715037558391925534517134362034817453810352775605916067584354604238659557747687888783051991812270864834227542661729336108683972486597050666133509698027965747668932907415505726678067865362183625482278461784018839383732039235610415042119562318451931704567395451366246249408810548960257193238562818762054637267758681617250785695848007268892897888951696004039326284414806299893257086705346685786742541229117547660566395574223327609262249328032531729496078994941052664910342423876996991237222390323456702418052983861243108867663205049932993132449793390932855957580459698559426817744734622537886176987620963268044400023746339626530965390615441007081656939006466782508601982690175552758691695338600039225221749522753533703142258081493176874847827904185706121083486966292667609621759439691453322249146616351871979402114216406187983013154488727966101988220261267248401696996139363275021103525910373310553664456447932619547279848586632955935950647992592089997071437893254953143303699870639561119855723439913601089379468551886760604146617744390369045847682012750162106918139185912138085420523974015043460979812918679243426035288233627909950936898282429791913810898400258416721146510325850981777909229134914011273471201296999324752300553759736990451478322959050573727049965698994019551965683618201553888253764614552765263587667622722915385325299404386428263214788590446800867344346345103383626229917144508692364720951821501293791745662322655933247759006089250103196662354204429322906918383891322536991324143433295223320226756586478580382077243603354953295100200150092853773451617312043814102793105850978850305689116186143965777981409895220702845189355907298637246396838503473909562060551146444939868558360342599052609869805252074913053527673998633022419328027366848869991000199489782792801369431184528138073207733612331540385909972554842239222226347662498898440818013997363920525841336278736609596980592712546634999681172611675261921034689014541704322257589607024725061746296545685599889813560443824380994868540082767110543316166433082813648927898433373446631696506503957465032568348674596989476836551544624360250386693353143065860636549511872633672863264376891857070611436384427140706846134358145793822373718948186657787216847137192656134991888074478717963505656944161419340558289093638988423378894754010738594754282535104251598548561163625865687174939132174103388637975359235519326834139714903963446368493383010824100611492833595967831245535511290778776347946546124109708370416469647057581149532451891420968519232927387579980674259425359053811312189790099538914567023044531900956050741913317013612168551565002090352494811582256028990685977360335898932429744835531554142412817127004725370063555606798094802850360570851155341858856656637146270790132778756593890116728361592918953086413181634151545980759097479401237141686625255351254516888572996023482683104166642592449201201372075348677832121596123633501350769182892012914871147022585708014109319745468762513923998018334681699220153091421922445811615609722009118088409124804584036370385887074483533402741924829885199656873432198397904009372020897225784393449388779159591831828396282400014385245403197033247028082849777008906414617586185382147839484507940125499365205334884154824184636670086953899853560346899674919672102458492070186525942690643562394024065862043382124452082853396308818152224189346840771034134351150586918777134871260308496717909894269709678082883253936247247215878595827616165657208333496392284166032601303742483628168024925750480509463053242277382473683876094073282348534359405070403365842262308012013643989593122710667243579026363840727790006006627924725364816780823420123852693813324555140992180559446930406106841004013836774954752504375683831717539293188413859581539587378887903274386366741903946269277590069170919773496809079469063668169094998388454226757178745333851918593106320147454037306870385058801424459105065067732358937722207462480082059060424202999804748891036823506535622764217475469446336061090650877935073175657758183005562210376518772344377307291959027867901126780434047084720235299837372794411549587915766058649633043153326875896203522300326627567337747516151830134245653703064288704996274736565785649551323720038780763544936982980034584256926950431346664744289313117714079386833902198881772071471863726361645763831024110721538904615198332486214878416502865083233531602224465617432530328930005943512359218348193906581345227168886836158132045853848935891152028534466888597997573217783145035929317319587839766116008118084741589134866017224415338136866230345022693327330612803764815153114525957145408127012741479620140773455144082433269993046167214972844173974192565388408785244681394656446148238197677973073470367215254346493016881138056394010453809730483433485295201344203410721535824013613198678043805527248390720469464111717262832957972847086972304860569662909492417441923028571301615112833873019673323439797880248433587844876847588292288680561908932157409608159472387553951842453712644040001215950533671374140459876951205753114834536284178268429673219530904219784803608632722020730985106132380750006022347084179180577412626234995067220755632390204252737057442899697645707076622305504746343834706034330723219354439506231902780957250502661067958154804760644039179354311238748009636630333040388490379211564725819843643545216175642996979333325814597267949583510722884516660988645445486286592504421684323015876185716689074802917356949990473717737518650994225991258811453497603350468693524049635319705519094123950155872113981610420308750334044586964274178466681782901824278894703301777370360039857766642641217669609712091406014758327069175684490151493909651614229410130931947512322403294420919897963931582227502139661406529994293268422339210208817186756913486097326476315786241694743406699320335987008675053760227579610866224552015163572084179456714504707885490765788832752298711542375111617653770586874536692033451542683586907044720744246184550402291352816461088263193685449448929425052426363555497460968546073450211269388937688315305525088510352805280264007214632532645284866681471018747626192808360718802848330749142884328356689381456484888563004737284332803358259975331486846086506382854569847715681419459097795117286709469206915341117528360983629268854254578489608060903333101536612312582029547379996115130447518266819052898296582481033875509241363120776277103520011627778856269952354087476371913032466395374523414565716837044588775853747262302185724246249197207856076810237924800375984432667367419490115195306175776808590605286840946213763002102498261749207837286539078858081478710573782034324139288705051424916963132313527446369473965107211597677676952913664628088846138745611578201866947896877740128364059567612821826992974283517498462027481430605169677311531060304458539913867115264301959837882740582260398553881962661341277788757135295862932293236654037128424601162090956693466671146609973363036242944375649401752740104875839169470011409130445454130648267683014088989300654515908254306153408892408957992827628699084625514797164882670559492164489699530510855470529912079542571282298087435687682208936496157357199489070659860732328755625567181801073171184898004940453434939863535704526960407802976352257098833289987326088915681406039625072423797385428852167687027591488664334747912501632572645429523181411208479560002919170224367924367181290408433283087232695177569999042893234516222096545680446827611388757021646556285478751456934497464581445300273086567992626435070263884646866875345555881644079383241248662836693877586049765419670048489637679270291201572306673087068954540469826914763234995675422542097331355433165167521063554885220769012994416456025824797362781391389505164695337219618894526918244860189540101128307964316336445285481133130471251236601960088799472862600678598492911977360548337626387250929136604631775248329602894707089190323411688862815071597240553163293050088915809016128862877900400431659497014843504494775725661482586908447390001213243612980977999816318816690387422252735485473552100070523820596555921401478621435220761118538503333093662168087399504410671545948534992903353331782248489676648663796265474942821111817745707655040911468208817543411043551393392614638605486586079949199840796295290274871979772172838531267172024004764257074428843101351735903157487089881790395211552271977193842171131357441469059275485870892053089659903513318047956978088483582280751461281162380855994757255312194980257830284599774131323565552706693355689864394601101572540142961248287452956139519202680916642528172417210732474589728025220020846392820957035840962532098433384789710739507638784991149110302088016745822997846812392336525682530546816837103823020440228318812488773318038157485251025351921353692323616401145380480726721389217563075054552824698785401058356692498045232586669587226359834101297507185781388366761703163391362414138996078932644803885841545725356899496998942190316931852978644128024660785660780511527541079752051137437865653363265114881349548226246780738614437051040408249133647123173502929540612613039826146709595025134749257452233546734769045444330737825889575095176882934030508476275111143478967268011646812052896076344318433480755915787141967941634084718126060597187771020804934305812390549728454105010558329102279217355181789043432836813736867685688827520033575485216809356812471662746332438439052178207454029861780685536982019143694988544352630571903932257079635613624419200481254742375152619399581223726616569772509669965036954836017989534487632497539493688588395725387340169480700797388987620293318068380642116119702385764950317962659860034980524071521580010324810086261936465560121185652910000508763491343107465550262078047564646272918049718015178594338053451460965764409738994049467250266743764210123444359479266151522522303096318301839067465987743054268943955546516202563882772495117167526899384217710882812863437647965845739597776283144507560761785848739313778452705313137321713122293024915740677120130755500114167347972310416839613844465990414146241181131148726453976880267020639119798165146289505635254793170335596196587218774869021378119328169583632152516416524461734759962673641139468605428219102388322008635404874698073603630412940034448593857423527803351698504329461785290019181503564392105905936410591729450001134963803482892210915834889244275822838930168748996913563749111900226183083670101694799220240065499289510511408263866225809224800304012771269158232537780177373868128215570592567236189896987402480216719904309251058842027388829456377675196911305462143002896573894313715924703100314646733761335576366635985008961965976686986417589064609231575654874546929075961304929988235058590106518079811119050144006631827345689514969316620460283774251350319085927411411107645329607177522550403599468671808926038954608378536892703046051054541321734625413205661768174381674636315688714710370197452306622209549290880408961726874004573948887941194419865641437118644637543306382277392076931544624618702589935414056916130532164082088289411000112505496371749387389555885609374877780373953044510833385555029981830101677691419164049298409948856730742384325945941577131165972069711069940405180214889195893969459235273207872352802692164280781796079347215189517329590232931544944045303072855851068529602502275781008586513057821698381403343419856527630822359725189941807182139623440111160077264564768886327418858702938097613958363864638773355448890320027787580549254972861279753611661072367488928378169721152267880097056884423793053191511584503701773701586418158102228438192895590100475729752967668259556159467070673072169948540158832427830234341983833817954292346914258727130787480887953367793191243251834548159393126580834582994053735423006787924979146479401515419348683397187794849266729482137291010892035514236582675724272503986171090806473079783290615210498612599073407245319393722972693324911534999152559780486482593402144785308644251715077939819044974988045962437155309279096688900549978116628248940056973948405161068477007285105557620617324078699747762169471857582576888844525235383533977340403593070764335494464721081254986217433334173614703047855188116086240316732398471879118359038841518856907090408929636679934793640958901941773081570109475731503828552314404851277200248522828904307315032509830698202437026627326202047960403417769224264014839562350344558388138720240922429923519792577935425968677321064062523101907461845350745244199782872812950853337454879767473748183876542093627590827062013128783312323200403184451640365135990670891854198858312266245616637020618210791927068070375534962274598031292888537920453399767093351653298025387155393754507278948605990377016572659321642436263586178430539666589989954259405708652171609362449759985634828519754286676325474249302130841083444982509415738331585229014573606959643266496501883510045716981384384667327670987660275395928534542729312441413349871705270865784640952735919209392076117892887177634979996199639122937372878270229486031132492979951133888295076002628387929349729565793635631572491605855141887552026377010287929163676162924348120028678617327188617174476756002254510552443391418723672162367421257374879208977575494974478422579307508586726245069022456366535572295006494874505605265117535398118934849789677796254039996800126159433175101075198522316367915180709953811213871837870128560769399250927417650086595311651813136443397547523936019683516869206144601397855621848984210393647330001604213429396738839946467191058667956709666214893234884849313605338033168347962007964935893725572292302454137465920783178684565574266968792090695833687122367701329064362455299112210064298891057256980888191938561160993708339174272007218453831264021963759300357450377008641013049029679997039511695576140940250548796761039125616431501828594475393169107557212924868965526852398035917654466301410548130847759933295629719844567527564917895047086991183951028629612400339654620106121914987327456776608327765497136843150560793531092025621875400963528531650221805147597904668337682587266070790102809545809331805697901283025042870686750329942719302933786681902470129949818824405668541044740392002642870678775442784234112164538153001886173978068606008608590322679236959569521223743826665282948996907626201408761198930129994709639942605135687472365052461623362828882021782212815359168061325521032629501229404253188544190342994928155343263560093954785018881959187539516865000830169018085078078498035128683670545373388545046717880886613975811780518258295982392767499029738573317110620868422549490890072268984014470049370411814455842444159099660471910652021137664642429326648252495994966740095411100344341381510502753771855742006497660092253455134210802054298498732068971732847816997142498837414976934600870764980013282519572341231631324289188714790772823396622700944266850021619981821771667233175913372169944457227471557291917254516248804467809392358054229663529515273762610398284936942222495701537126198358966913335155016639978134772331607493275168213206706231805536055473777732404190581747088974623203492376008025706209787660158486808158142343291356615256578666442406135866341527328948888038989915816159661882672602863220050495851616569547800986891283733074016575786010809026630675561156011391105306800605369685944525509749860894396964441192251597074306628223153517108668361003726406906244366854978236896932743043199979009815020352361347628147211590520051966656465752037679962593768817187071361327311968010982454880267590046572213618343948178740490727012718721914537371256713642240176934122638078062077010282248078852030356754693132470749493389200898770199274853646507675674150677147524819245942447005931269110728886218773451534777565886340610940739518852584019898408583703550032496818621035998512534532900760131673355935275092915598752659665731541708560478102099064645377068300439794544028326251218097831800545468829965572972809019111809695824705137356378572947482401008062878889531382663082694741533974903509438206147130026494142694147306350005514800194396675222374010081385742879685958876804447613481041918715298678353083088079804486209617163703522049750814382947792077684257067017341451315386289674044167580063379576561450828589042643247841384325859641041757483155237589071200397679573037788000461947928575424600019106564763199081020379218732113488162975385160535830838520888578586639262214376872873394014065152801496070879160299121660196227705827971867114539423300011117057708410024499698815384561083977081405880619088322176173062385989547475386429560057903831534574912347544274988433186829249800845084082640433533029909228335397271939102979913734576788347182040808607413425452967861745052325750648978005938682463586347067460286792998337521296963478543681525436554769661356229268263340303037916735310005150252993547986661595037039767543174173274215065545874141265788573399365059846547274701388627064548215015302664461100921227294025085422041186688656700988872147573816370985264990586761197246069724911836543346194445537034814808793408348243561346547679497182019650440009791968645052401231727509024197988810021359856042947081344641541646474345938535654599722206187987638658180808077599186565026287009322682736533459544234394489217156298038304351489938581050625895541457093944282720570424420610373427463345506324579230361574332728613691924246123218897831452055102859104594123528272915067769324512093887075348374468821168910519342648878719384070802403475956389675380791642674010605433468778695420448263491169303739424066065237566665739740592208362845376935981688415073447503691811105711538986981918326725873790805520908767089355060463989956597936689794939195848044187282190052206165820463147443713475706109459750558808084402576522633911173650348846538124366559570021018741354790870235054815157501338049755972522506651905762963944918840969430630460689658418857330321641289662060881869134205853895836473118492574674233754077755563584364143815564671302861788995438424634018716948579848141421889801833419635928835365746927724328361211542992025213461384159528943703961684873206517681642327383852760978739306243048447089414785275140699512052089341946141635166543327209922595022341353475632316169089539016154948802005107564756872313388827438881543842046978380837959312093949323896725903258333359994071885621857261906104630558997131192067645741532579414253656458720902934217551654519932687516877644340680935323581088631893085772687968834504117710372405480106315746613674314783822907591093965470028900819887562873647151994779668030625659823980013800154546364168596811905654779515363490955806323144635073132892846392947983892946688052790238130869938070901608658111484319768143997637610347547180544646264630029109282834406488322820450137895309664060223508834401096757754426924194650803105136841219662139490026762313346444849524412311826772410447046808497237899445339694202741148428355777300391363444976630435345856392820743198005323296522458809804988576034349607778872494852623638428514297461204897879907069232511543419857428277526497121083563972264291996969116986756368553539873953074827750001884109539045614133512313579527927629007119926622764767676321320723529420481378118675997329877579039522186686193725889172040144776365206962774908787009184929458180380790868569128475322988866402657324446236864662943740654824570974302546221865673097057687967243413541504080404720564853996139524753620520096184928574077335694336185495466920518865140378692812371864908155804127112798845984073126906552346297100412849695479857006830183223605768380550814248266412946494062661114778759035848219383203581853595522395058501923101653823083054486513610731568933028074855125794797839479381375670380467834797151733990745107644674229619937202164546778059168900150353679770299859133791546652623418540732575809206186258946791507691185099986993188729049974145059685694830201435629424049568599253811470423143711003024034390041850713573719702233205966432544928868508647197198625121426896375863905380665754761238336672774855796799772803759601746795162358174310814066176168391099886303736903337524290857794752072169983579217337224930843290881029676936394453821497918240397707736672283095108984735810699974939081162241512372980949868410878504805026179763077532004625757172336095889862706049307608408782322797008192270549770173129541148410218075003374043171191225666182487413080398729612622168605256013747110152142628637701205974439966839311888869502580785670535070011616186879671255614749882416342089823203316952194992200532341886273008266515116968850403179060118579210659294265248390026485862729999999776265636628203383009760955571399841783410622758642708731582262020943042265310227168460692632276585275695145463526780516967214798143245360077345702381166335114808510293128621532438782191452888277068387635982068530395205794418421450051318633652889598802275005806691838195607406015005424246452503803922386902097799181451962326446815903015079570643600760912450890477939077893115244499864321982676374486963381307345099703230978663768426961775162743560656526439614179127900822141883224676687264710115948018816936431511428428012230587753096947756836970889290949292105993630521704895894305995105146511939269509943996963578630433009080348533941121886625515598965016633517699117288732367272720776128423744532575583491421917068785908039378988198456737120996588925741707592811646935514134087563538240740239010842520517541484299293614293425714403448157919119168840720226324865021045773465050186373735670781071003814477957704865817588729177390658289369988041711153436885737472220625716911156874668874555853655668714258053509515374363736716429164267608565828485149553525040566242741306416764191954957466376895878371242141988744011456375626969552090461916831553220462030820511365315337009292893541462799886215407244062255009487318724454787940353115237171257891520287520839762039072242575593014250074467027323160501396665073925323880048407770528993434674182756196392833415778416109014186869307308101450304988007490943470036108326376362149329286306750127161420782960342421309674497030213897222666935325769454337943121328573450988754115517858683702979253758807186446688301607740469653633885472809368443391390095361083949137577869444632642761617256213479779883897579184237081117097822356033661610196468282364459091460322734269244464235356727621438491314345681069854271480718623066315270774029166363379653447797826520227277889527713746232398515211045364655495257252623519925097806964488876227481719686264235028775824136032438522867529931532473363629861659838255123383760627338134078355406815041863932781175683471638926553638084397542163036298406291433269967158463103697029690163329998373122097003109908839484081937055673514680218013131986848942822414856432477010918161760000558574254461464671168258191097966889411207507943088698840850076780010581658863114986752127730206157859040806036231403205557159074629060004361866618731964713027948752883976759929846952468214818283927779290190328052332077387553751987731826959777340739584920044580697511843348163593889575641337048921955649217588881805242810902358262995812126490262954838509577514099412774179894613085412822829983829336076604484375970232779408417537154532268266591088005537007628840998709677880112706235815430299739025359778497569497116970046152713257988453570928045818604727499134956615415075856108875978546487787207385295569369360204113671194952547595951723474755500016536439370005360995856584623601840256626821141150308103524296400972731517926923541861179747621651583173770203145124347234237563621864075899224453970741843159121707844986670320008541878341686093029375323943068442696509040328899038062066920145746765460161002513928737137118449683098679973269076930149801406499193279670235637774795434005969935748409394335376906130277647866914440467201062319119961709821051256840111277030571233760232086550748175117368970991863792523256958380101823924682602124594727752781089425478481915272939836570032682995293295643010500708151777032245553084593124683545159227189115489409938058456762382592274410131057283917697243099507411187743721648921498133705293919867064188689060833697787704480093121474972348275132171084308452214488564594336393591667460440787123684512122526683216047117550242039171966541469495547149442344874762292687238970700959885726608046982051057725739973158403201904736728724906197370873628999188624000764788885430124484208413353564815777660820694336401292779909515610951715279241919572321725877958896729703454750667475097176330036271556451102180625895605126713929312807364458850712309627769022994498947947617829048523742561491435651687362807138185422454953763081437702546141064738786447013653362287865502779361834250186882426864932538100938891013687426378509236854362306974840437324938484925003996923006464023293155147949974399192481417339110362343704031696433578982217506667479857437784048457394330515288878982831966766321042471084606762791003919722616358117783519626171436079175009154985645679080326469784108597542535466210860121383204742282865346796489645614887761293055910550058209233630584573217998831577287355531818017663618574961733252992824371389653563002476654636355677853111557192984680330904004063003710454262274737744954663510918944438028755442152253619692198101756565745650327009924669090079725247538137476931967162751895176246409561497868597622964567550790735247228850787460221907220536865826917825163710663020798988575555323591749049510265107656701682629538890321560015761934261821113180627599740883933435287155766849786688838367584832089881513423640798765338180225432844560656342965599386425647045845561672263867094950218326437247668351867972393974907532055403166999472083758166578428217334402002780557069139936039767392631373802287013056717958902870898433529099621779394560002878524353006791145161254741110825817403607360646261665541482981487532823575744364517440310164643313693349905423963616372696132155723890597977735911329434064178410932042813667503882777577095060165123419584541640352792818636583805568264943828399737008481910924077056545556650943738561176620614189671754754156353919621346328097863650266256137351053243096791634192578578576317544653467920882284269659247632524107000157227939165643700316279431993568907807270197504403308933745065714348778914541997446280789850110481229124758536047363744051282511038951179350520590218090822614435245451279264492050002302129975021788199800462485588014655599847320373222142643913321525139232656617692301705703383140885919225295173872895497832167612817733051048419097965899682178056634907417275467982073217234375775395119798011609414786494463309771906524287120280201967799957820507149453005651064738352515235200014661709528151157610768902332666061864176432669875807768193115592565427128571641691536230342696331852718060259281105730237029105003899716747634616717804191466746198062681907452679561306927709451652369687476817764137931814623365889395600185489772046532865045015675987256329023087365785335026801142685331159719694115963763391837055010722179848480546297121381111511807550765600430805787115171271069429558624956866023335894206070462644242452662695795675985123915917451739909200385464607131724055299382663144630669540009044998538953839616358012079208438753959921176476291260221442128485984865281732273447835568063887133366030396828944568846106965284052345091359868494555658305368145215271719540530620720330344169910817860448372084092324511571697907945856923369082999930080468502113567855225629452324814855801162083270062369372964358002490700617328645898822308594740196456241615437833234053512772412097207710232570621225083583197742699027273017470401725287632595671731958225887635247974505506051471417524297411763088432754378862458132788428041300797515415403289164988070865658734640650503719561560464820107128077806400923212748640758233075153444859203182095140487602099055043813809806368096169149220639956340965967587241995207325132161523731121960820328104511707889178383926052862775117673415638478879086414171429843959623922535357397743312711380377869815207074261769321851573662404186491944926843729302191181582343990870069037296279274659451475870222160194083550045353362884024848080458268037884112563671567814618796863278851949112489629570594848029968378518398777713996467768130684526547531256230391476361306080485593332452790245036079967734841648784648537405520754426911299415360933663122522504458417285019251028226831808436867619568099601157892638022793357908857153305774057852782037163669582896383125234174789439641237070958639118568001074990920878344710667474007914515087951259951856744719343972958013236167263729792384631349747235172808735217710512765600831409757459102553351803322686780385202485537208314801918254788630200264993359607796885892350747407872818442641961589358979416170525567167855967279197655716237955428927169085054891124892593219917289059600701199812627294007237583597112377659534219059569170617683623011059226517953966720839970832022889386300850141593369126223519737751320572719673359687387902332077239528874879501448360676842336870138016839492164474103249355797343818867993304689330332604844019690096966945686761479157023912508925854016791856317736067815152743672651532848851699863589620275226471364832340277469156890579200438791627176668582677222506591338121520766405582263877755251250551297731401254840632855907986605261278987011931073347312441849852047571191869333540719567876479295087895621052747422504138782400873500519309829062301082031790719515923838762946457186583077266254623340192383453741531703165846881241915390910031035576329654152244316504732669886714906429975218104243194012151144592443682750027624860305458106509818357714149343659341613940760040122215230201953300805853706551962612096929480957707973080883876576498659081921101328147396542934020775272258801436716948834964698325816609799070372566696576744691933978434552792417864157709563953140723160660485377137902365997249645237483325528341090427392492006957060354980236976046840597009214859008577466446117961010154103593862146919650693946063502241147109391178762845804983661640774956176752521852365465231176295309685506280594254811284328680525553861340964660231338382728152196106321388914017309318613677768988893262067895291290626519332180484269541802202698707166494706690061847224164902075031574928456334150003334192814664421619923078905923069003329698312048707980147061496672505712890848762047323110029100357106942133657422363906958708180673291271028974210705910317999270808823410948813165293930369550992106756067998318363923032100176477278061831086518018145302016699359185705166067253501291323561909375060380606448038554429033689777587250125977301246815616299655793418950257417538322519551872841926671350018457705706136132856947713954654156591910372585272830123636869944483741203329328918464368470876361698811606587879428786410797777403513730243549312105632786310388952035121488179766094469973154010774224176139352072488684558042630823570762536509739561006139760225463068477445932921427183517521897342191333790116044578070941787905733047381609875353222753663174382176507222926800430474482445205201625955087860597963658959268612159528269810424826853182130075857326413178514137997919101295955120209950897264859221207541244069320667046791929433131190629146823678166766919193149639013902837696341937980945643897277364381956237464254572218880093829143875263896834338186760123645218749809407390747159902092666236086730728301582301817928857057186248455488803503385884573422056514429356994232888567376264785208040632441347059422465704452833716994458295158423258054744181753884165498671309266470017161165057485209412217135113026649829038144347663630121213753167058982670884878518053679959686609710826042373627738822912923636034049121061884878138986605484161856930442771924732592619419631276030822910891016479505879014590721664122969287881909165452984136151772303093901733276924951859924502598061775787741635038913922231182116213655321939922994056621803034785653402975327249574163748821462873529414976538277524342898263048128546941875942994528416119728396405339670145506591649444228410045682457873150941646525715118208935332988943063628484533923363156317166801697490112286354271093467850418830307490050218258252841884286810869708549771845712322672487894893304055633717399613342779610893571547744522451337521730662848260087807409486000054476931778832247397937546467372079867145106880907633014235280284151743064190353940921196949227212670517209625231947332615929663811787044608001121568341541976499119493720501982981528509253434361255726493822566240606768936035085677494960440429884140796417540768785147078592736205999497884043884735691152939684829260042482624026524974151711764952327290906029030184999053751221891736611026852369176928746697662995664252761375438887269308699042857287764841400656533431814095688486957298602777990008210913072794847435187509888774190210365464489344709149511632239474086472483121870749057434062102328420105813072503398338515389005580917556076808461753481739458560129883258036551391056944416152352266521066655050709326897447248651598248586472936921127007121964037912314931246351404537133194977039341944063661321406171154791834784286542089928369129440878706035163349002149555620636939222635507967345792127136013179411226143163666192609584242704541213654170672141968837239872922666002055337808901901669208334383515158616273585400129864282061254018682238966429044255220561043825423101507263943223037936872960958627710319606569616744596516801797256681417600496298111209609570465570022632515689304292514061148746935645056660156038006892104435223781690144427328372271993736671229764141231437150361074842086204514523584609884167182915533042985873937037584610284028112313761850095752504826790579823381618693934455163511391661253748990328153996622151800425021487297153288393798841155810806649616558137297865455919459926281334609097279029701239760081337314932601614363480781672286365015211708211297653396003111663120977034131457117015070988509620091068045041379182667078956017328997362458131498796014070149512468336267407397646952446810480301510311942634538798447367248382636615230936515848163954266908305751500179573755718815754394356032541525370552840949760976435967947425747734698306296978535115882340495242842833239209701008937622402528005596827441118494883999158669294698015313349238536740448610677020945722058014946685452355573989665545786987770999107826949007152087281687897265418514292636598430941621445623614422286286496025637939056162387939386259453378773330961945082530667539228023996219367854005475061695726327843191241198707374090008601840358587721504449916101120890691424402224046788274401799113439329821292554970004020188436158634941496637413610541847789046959945070880638741188306612099020497476878884160508895197413205863025099176697510968357991217714656073234131076288058035770668987289387498227981298798754682147975434987290760086043091906351217538304275336732843199416711201935684213815965665816895675946072367852288459883769515619546934155198602242722745136133499338779269588591815266702016424505326871685191493553742024043778963608004600582970961581326826883605302353899329853974851192005506128915021325811413680220970080298271953226096401493470243961646044011514735470697996780177700185575879352661489336724114932616860211567121312570038723508970617083211918820356885750972741671265179661489414986749724592250365138282015584996457245635943281314984514815561128951883858196365005054055358806159874211868430105024251468312974973301121354119282136919683648287488439865204314507273015747592752812153929694097319358029630771624057591688255509588991199283089458087122140924813394169402954013578003118356595868925640795618927389945586622662160492245546505465345640195337425488658530897390448308944737926220948265289067928265740347918450515807116037244246319858640229517195790493310761188514781655420422331949101086986796164738762508846968133052380855407057469339308319478829176010960724299348779310825611137885963289890061918136190671384602499271088695434624822309312158067486572720691139800891231849947931363913334252718547980784872621863104981112286929223749629383418012750272867028016991652250602612613880277440017954193850013250721289889590051572390762331589548256871843722477749559225854710450790162457678789070540295170466053628926811567546857942697489602738685948134278241367307589608519677053768457285320778099556080614816099155724712475232775989750388362880519181322296874718029921851599651249598517867206192241959060751836039285865317093684568409571650162014769248987461768551968375905168111205259543870101903452790237224754529969811324641274489822104144890787018693961002641247519425850383421063474257491442041134455590492444505632755909906350116008135969687272352702079116783874880167321494154274254338378345082026800334706507823599649009970565043614169882644241264035034737553186998209101240827121869744173217880924017034631407472418182588109553793271119029425755094305297179839507650247710207586402713446048567105514518077469767888100121607903329558253677563496980454343494348510944243159807836821293248282862282391837210596504983698701736704198790225511289724905134771337435547365204870692753238388219869430100342174247643381729496125869225494126134942948107133381814252129983087328955836360363726744362105812883287824027401625018372770192219953474632937595984727515240103958213189822088356720039695221818868642583049645828537508890275963127328421878671762848418274903692267087623255557834081756980711935313402332257897155758106134678022136990429570483597793158856879897426053623765869651184348146958071907277382351968144026719598634049301258098581026881590184713497646938662527708757930835311630848884191111237331474534261757976503086910924635334133154882630231695331719073001519953326495409139476054791688106961851559364344303046360457343999193249709853190329698006227765849030768931975467524027834789666109983036842653768307856910272172316618902281037494251190318375453415472920211284717343799151470550298691313715228686944683929797632877647458670694214371806633873984699183379956684168141021285087322171235138618238295466240547329799743568664018477661039348281130958706051791780349022375523947251544956134284062602861180588503403460266858736806008250966793531126025713739651581198264627231771262378002879707878184615040194889117313392524598817761278667516449747492406684002060812447078693107735310774249470233023000796892520839766058280348098402658447809080453479825689984722723791140273797157760109006007781061959382380783491341019982194392444041184527937576885900441649730173894988360561497019460847649864524356065816646249621394382178390523966460959647182380919336343787721883453538787359197202673961538857962849916228524797021051246999196924136055255586734234865265051965621417617761513760196320559044110237298799266343131589126729878075805931658813966891256095789873060270434152715499301087371393806795213914005928315874472265196475790921290374717368732015563893807960245152038794969448668199999803995831196431058130494472817495478368629110457064677439754540982197854020807487562158356825610852056035830504882340775926569497423419760469598807816535233007427404850100365401640829715273360302798046984948684478861589623785661563698791650403760744313391895857583187595882718719176728408532681052218132166363387531821438638884367952707032459469286285670002030579667055887998569156462875949202765845032366557871430622852724041549305117334714368298121602721057035197800564156815056482481469736443407320437027344915032009715940951085329111740245550605712107182858479337581228697949117045903438520918061465513443309144273311506480075972029492183351225232934634163959543862473652315305088567977958921582865335478651543310869347627947238879950920593328204849036417154144935700790238893817294144391902963907353174103722903566205364701464363766592201272573453970003079012807754114946452696427786210132395496151048925780958550391090331212297706690970213971744035103016335530652022942513872726587893775664125759338070993472648572576647410940122379996516367185464859298545366780813651997268538913535591235527143029859962789330008943231741621866778123487917859888345159193893629605065217850292208344509707674092613902240356667139360964748933000321862040067741399390462443461556867607028864310150365952929460580589939410790579816094764727144837392597414332364720063004780867652225968548306764820772722901985808825309146746448001455217883534892078946459185477457005640503359959024429813649728377061776048310244912075698946233512380263233592368995082075277833680757304955328623043288656877044464016729731286390226823588512697578860970582873131265227822253819448357851167083847980807127203411139300791528384104928828354741391008992386243209363901777262916107971065754337104988420312799772943810335578299282770451927214771095938139341687021034839224990482811236048894360165693634870571993539647324164505030892736647682758940191004616814671243023412546038904323530220802403831950738326607418104617743848476041757419607232483487787674570866756327480742823360899919744034260188173187881043725066176490926636561451312526168931992748669615066056053330237606115354485981194490253073328111269374680083673212779380736096671354250695644952522225160077324733942183940293435887306163255165075085290401119656611312326955748630688317144171132142705535258873083951921208682980919186982880329528977644569000904913630228602875360844682808383692217610409032316207821579731396149484167751049144698757363896024941570472681630780496858423876988065925740597366661212403357958627028266667619973585820499027271587078913087467590412058777124571416532850995286160874277058591089605414544645131699273069065245190731737394608847181329502387430623456353073460557259031409920809546554759350331146926426227776687345697978760596440968326285447087055646415857755171109541564897725998503541897880841386534758895559845273341742061687240872228281373385751331199235680271812473376217731039423534580501168994312925327284476061677489141395356258054994359321596162892109306706513452875041871139955102659718598609492265232277322023307278519190729231548409449758129715772850924016563874466829909937920464476753903317577896276612801346532363742568110232494668235485513972112669253658187608837911055207210203546035012165291008981109310355828425418229532753918482167287702777593475237350952474376865164642544047144114816193196565886098954597989597496279306724464976275463055760728242254343376057422231741673583706352076460898647695718656565884656227719721711245387853596353533658418608606441518807090058477531235714195958304218484903905918664602014609344252030029472694355810330851870076249382454482340933936741246523692297328548232694064845373978846062865853764278518936270694168504860001559141126931000325499085640794057633636391920282168302826190125379318979716319064440853499371321601422666192233225063565733332855640925308155481628025510437933475926251056150498886042674045736396304036479322850785857784338160038438340434564555439228188266304643853936013972094780291113550098381829257482071206685010878744011673253308306784071215746239058606645429799317836202157190361970483891037496066182030846272669717889048191532339835262965002930602154029172047992696857341385081836238979268340598725506250727163484709981087854844775210987169518782138253106164382678344929214067236007170887372771643003388283225588314122616128354969532518385046588784931717107806129300067038595001464775443442515608139376339707748998833942359361883344492468626626908540728688547253745120048666848776411483907556884008037910561685843670590283083850439819927312882346907471945702472083353215037748287513772581924308524725380229374668350135871055705895484257577519914152362288126041751650602189049044912182628001481497307541855978693156693656461951859139426523463756581915127466820223972958623847567879775114604632146900930127440826365390103941524252875903825780138088767366270753552788677770766450853025510276253737343738507755444841228552954299335531680700804299797465272138686998344643917408053068165345679989321966430680105269990468693766836138061613260612648794432845722755612828287550746104585516682558758686080737106885043653579578022564247400694979205617346299649799469696384857366940713999145430784913576650238359784684809472524374043046522426573465003009380302275455182866220529374415475900864522027815434331866278240093757209911989395294722831999702888264502577388488517829236251539691170282786232546056024266855823268147211088889181601456926417654949257748599606971231207498928954855664592964164599036710411838009990432725696936179388505009616310370459931652553410245727623402888894954117835464790694774608910151951327109959227751930943290448156047408144769213494750596237358572893756106860802681789055655560499789653623792798654192424844239842506592737629026159581601154270894171075914494714052459962977831292373765638263959097636603779869647727324608177518145555955428522141840740472658214830673047990623552262336158064439070721300778317412558110793277312232466814927360103955195631988445976579421432721459104495254913640144454123506536095867094593896260586539318473737892298157374428625326794661625348044834632165090490704346991949599829013801072722355836601355646947845895625194553850686566684067679891390588414293984570081643531807444722947003342179547106539090610750792587563243440660993878874925255994374221599159760498405830660915101863230834765251089705533825560180403427726839539375427152096648131601084151501949539993468205316643364205368934715183026898688513466730046195469453094877991592587819136113423894438356623369523158183451504730803580367480151629105896898447613345023941188201907378269959627843336959182376280123808370280346192354402361726551605985433352263044310180001178818769293540714749912268739810311994087901342936469524673656998739758351709544145071576452294766391441440700613090997341597194651222719481807739109975082753435014726109728422685730663732767405178419327713213592449095284379440224176454588857543001254888801115088759640600853707276921825808279443270257289127947282405831069004803662206087572458067414922067083720786585223917902927757696295328072374830262853461237778234482238764001564950181164995439842613523326136705851915997375519536355475364937690166568130086012194729113643782488715496761955547260392068274938891291465509290604411998353767529645024342366587933156673429172436766767497086217559154414738886658715735456516252790768057624047240544499326220984232136920395932953729232680076924110531131416783654892318078244836527583417592771150967621938720961238679982911418826115502465561031387962804711686632316688217752322749688409097675970439751375943788379926396865625548249508092321849625226821555797268143574063861317909893933788175126438799111236359959293192126028673824129326994934953861427866711255857759284077133474301381114134189642740258807609216673485473005740638173771518695266412756569673376904496560729326820179940472378143268120866873519212007626033617544930620199096962232840313394784531777919172985236195823059936151053753010191523838073417542094354829798801718723813896258548772920993664701320453022408156954576994907450029836302533364955674029549601312160131165161656251976742378774986407892294068289358290623554671514389039782096263938775342690227746961879203732534185636269688215930861233873566775639631141376865459604046337207763305982584319197348187814707520176224429926029776410687194143060917645073112024992706781565544199286048249311800733704815066554896058190235794219403351078692534897768361592441202016749334060350158010147378296369173116767814174033650518583612495405170962398019145055451580709148751160951788741352571920973396563971531701725252195708284011741215689880224547670990151692603822086123005735005898042848863660876805193872107213786812730599369839852307709874758743129004334827034237755226703169893861217806561791871599415906906658579508184865731567812733129793998840319764149070668129422888664732933826614397367900456449856552078232530721289279544977439490554072248556801729744304743094768512427148654027452361465661918816596055141851718368937211289545337039073515446414663210401174562532477743155457479406728930064645317772028098395470082399070549457491082196075270167036199506636855498614555655724193411522206887907645029958843731070022088804448494998489272308994593710002083957200342559420697935312915929593865801631537269041627296333307123794517980656254982628917912162451345312790004551190636617366649875794006274210359745406183196522947625863708566064312045958436792257176741739777860267112149352331947657751604399840440209100756728240370994441472478916078908649685104831184502276389248617068362097765782048091669380476706627390122924650415226253507747447477286827249074701835037941034515943697880971821009286343599238816783513514437479918137150251399798782961240069817754588266343235907100959408377595054668511281999249501945523978997151332675193778613308558323616884827434569902947116611881352882912579250480704488237274408251214267823418704349415914619607108118492078806472989576935480366843238712908787288446299930262649822963556195167503541643599892327018995871169898000722302077516299087723774317495714195365189789022231253382635858054384481355680376832707796553066820074702686170526009280292313006851177317094319580729067100740030745410138961741645399179809765118663279519567594351844789117421173398819539879688932865231739225471141005698131497681339454946577806750749233589317562099570907483084762230346298240888019331066322671925425112066476421866954038594391685215750534042216496937778659693568203511601507512827977919139525198448622948196518086273521013841216496737389709032972970157478106912699275289069432312581169039402210012209535369022988923696439922416880535954269644289564917953652500024920691721507495342036850935101610557865875801841952715699076377877277307602064553698218276809545840039501499052733427930274244034840665703930951213817693454988448535210309446146621297840284220739733612895125692845156731226744097223282311484149486603138996460880021705906583036764246314371282794323093914734914354067435622254231742118073127490567077709773500587091331982622022719354090494049590188969936092454620399209416656398152342199250871016550725392431344276058704571596188085906606855202031726408407644485635150712388068498423471132558430014939967096251292948241801543130874212668113847499643274964112514184231726002354521851187359637067994450939876442591342349269788471596459619163499191083747186871829266391942015918291164195110404030746418441834710805188408395576926959403035652931162521392619520637309821741150064043921666477269158353849475543329516062872433728180086166394748745256837087924209910885051087721955772388466550807106232319863605709836547609214602666978605726615553720310015912897186795084204539582887819173179767419146559785003789573039582728854771875683834614915930238629240749961296580369689387992230331586323197289416227880346116496517212050621592242121720005263807342866956392011115209760165825450042863632368890815173981654021091368327861806050935186821404525969918229656712043184679582110624524895401874265208842581194793651428495751244892399463920042789658941962980132375790951195373890124276023102824419757494826235868552923418872498969600793062842263347473377435332415636400884261292007264112325836353347692424241487373042851868626805922539765385204964898129905080975561236106141399086134677930727304451762572308341592606391801047996454476283916952622225118925460196856288656865248420234670080654736985146596275425965026728107795213885880344403407757069976751619070383771287873667532419612297285005401109053720197319696559809034854484089634734879463140310304497906538695023907860093644541342069833292332769574230107934488734712481553918756353183518539463596360810653662217015361438736633967542908048338927199985836645910648220196291822568436117220309473077825211063467768562015886446702416302215040518484558153949917422772463041153771227257532222334700033535809251845635632949945185304754874360972059480831467808247125845326869108406434840707821071634708274564635667636339926223972797612916388375542427451352591894047973009968084506152590871085760625566793569722741083041904515032049622211931719359762909465355425786988263912167394616791675296722706266125644612743272819426340915196862832253195164837933533553869809140240138384236724285270157085573285835361010706039802844410299118334220660338203855383383688349182122424109866556855194971309815181640422441305637468232922852303184615393930978248061696742742147352565451593131686883914858218870997272995304252474815964134268501398035398565765512635266424670602410020205182144649265220106545936572925440955946900901819984556061978486228356256597882343786444189935998268032176617396545870023708484325255122556594051908542260363254483652467364040911611960418288180611491471453955154190038707152799922653317605385141242084458050595881451017847897495864668995044841707712506498375372942107285774312782320050371957309355126854121090167255624432272482105619831542049518575065770853744481949162244009683122777034248072108680187678282324049928745178624465478712471258819769455149100098638182147854847008863124523743719294250758308670746230759239969512540168779946671551069297054819390179012680979841859004543805822030607437603426815837695670799540491939219495401352962667501038710851242434957840579758787654848692073785592671365039915456697647010445349276349912634089036277960373259178611335496230994895596560190754996259355009096474914626970236134786210628433784878979829691512984313188597274561955518414876605409996407307714904838107306437839187833188402239175182467548023657197397717216633308397359517529943545812424051275883212354626142311355567317361522387175276588786581138992292356555344009252502237279005811206833225573991305112432096682514533198068886409000253549298435874065206564253353118611758170246290552517102340567891095302376029478632250921117815748929861592740397520509993752730280406305497327247133898246881746975216072752857632448803748319906050661137979052745746494413233317495482767570189821586920118719010913027051690942559144630810400849460394326345722340151494313623457860161563330639145397105289255903447900650708518149914988378900445396714663447918087343139682129309698920842280758540684619850027478787599402465649539881166044651175149006666657998722908328397911627524864373801845561356751465769680510219992396417517355812911261992775261908945300208929043364289246297606677968590614769661020680592533662645683325276966772684426190086079812762410094282289595902185005074711377956094549322794865363537595256240126932050549728869609668261377557592702846204889178612862164766936791712424161935485495495638077554420613368044021660057265939415897504756732985245536843983814198966625394189936697150012505293707067910233063735435877500688039127962715819120234612902198397114888180963426286076389005544897393102888931407480378343937486463584480090417377603492232533713671680205234717861330906249917404262538594110829759150565015599659031391098517131920445372709359220559595213575183319331775567495844432860350167975619034386200663830478838736770943851135977355102728258232608366758607334821931165860561585513937312273139980180827633548620378311346832141348838694521162522072588842696424032240734276638675953391051886580478753715238586588004918422525107820067473077222632958525388368320177043420724286299783894691908063631280825838174248123706188097948465363228468032181575953619460148051009179298441063355036421809222930320919861664304050967363785343217307933206878054928882264940461692641004941742296761243614410961588484894631903522109461292603712185716428778823441897476950390066210329274256616455301636921899878773411865268603224279966966504931031516453417521013454052002022502632081329611798542591393957546827155543763381034605595484225661370016555267918225904010475796293220787144889420602911498543594372655187222999175091799939211993504797190959635417272366850906416622246598619098588331230618708233175324304301044035599261259186374553402057168620564162066819473996992896571063155166340166776161839373138290410618497714848291095927211460109168384906932582408857560325262011792302098574629766178924901329115591679985469287125191184112962200075537942420603474346089760108946308651498851133995182427056435008386930521655432856714606868423396301994912108988539221192164157197826695550869540310977214343941840784391190049680830591326377156639457131874063526260690936623096396501526041855398432353930733599705259022178149374965942618905662591209759865046960990948116650734541749506928174479734834501929681178942181407178770129652174469016462661544975603538194844375877950294800380950090084677936351452215683784513924854833601317148141933992157215260059785378489922468639002700735800475780753131506262427804987357284937616384952387588108555495472031103826635598509413058340815240910932835760585031195461472350085353736934496788688342556194403705712279979623945009784115901597477371857170221513227619118475140041572853466379991583258510337127660648113090913373746409372699319600608338827291227015671586828911972511758925670259538348913846483192278207179164852207208917168644435273424299349090469161146236168418076961240445324055614915576522600411649957859352190634514359901320008937566194995944726369223206291660668094203859409736115743233689207449571698051474878899330147363977559403347905364990715483032564173909301861450878259709575638399932159376447525410350424315304738653585178806008468245873908184238136632442937532139384235542315512421415427943543748034180683924230440164200033719279659168895325849409024264099940721859291401576606017648145463679238810775814196035141644692311385029736838932830973663916809677452286610624898796912203770152533789081866007646728869466830405052295688519710041971967886449682305860247316153590180129031333191177968627411552489538875679978137857861140674317987331800184322472331776969187713555694311791400714764517477816417674353765818266038638384147112817979019882049891063380496224254220532825263681881160608069569600071243066053394259203072786326447922518080552802500299562290259563285673860351854084173966295803538400870527220511957899512814817165299580772784713186464411923058176238297454172375335758714823880091355538647140465801805208601843129571341099123120099894975537580182060997976290050069976876563077849226332389398790667525220443167475401120075945121941197135076703872000330439401922942459499358727405418704919168088574960590304896793913666020083177196426400718670296091847879857850322409041890775925571569353778071311436067285930871523684867177009824181639362291204784236596771433125875053056987977108482189521473496465284422852878332134231568237045509229211327387048211680934507684906112724359966752550149898834165844409930385502113513918714680178211482437825076513456994810311583859467407646771492708982246261500735135412663442605913690216432634031275016833281648979707953350363185546022736820843101229177756329070669632201074963865461345484274148177761602006179046255085054495629596801572224082480640645401286413140691388430806969211462705546661515013730632786538511645262492567325739477359914623992804183263702375153169970827817003826229300527271638825030146442067931317317256211805782639137815420924283059945740229029789524604094001252131562126360678131558377759717592251361240256366695307881969776740518631142068497056995536149995905034449775897563859081610014269816474395699690745289125598973919953429641284009782167390488507108654193492953942566000807520870655843030860176491387918275371654650715172499738357120142290910886397440819818497161933241408026070619507709792930670888618045052654270539558333837419515161957407378653756253373307374875764522863755834392730340116605737214125877371755924590777160457279175994854592950932002235313246586398537759727509153589353157945629556088984738006214879452059693113081502933272894224275286913694072920647708171459813901879600675786105903675984186033938150437739322014636852673927210122420412640103827646259854205752854779790255773551758163649996815994719777504011501230919426591768248645196781349560792762645418946253252225340294907835145991178740945202093618237177758159989859191194862173491015473258388625920915030174220049860020391389754210754935943594760702276920209091952800607378253374962543361629725801043270418206296539517451622968653722910287092609170590629039799167612427145702751059092685025922689440177409230538694792596475948616383905211186613252818771164665572455758496401498919313970247822630868111400757409344249376285305150798464241193776888711302559487995907907301022734991170235641760271362968392363634599829289113249507229344772225723169530100014635039521890489708744773743082330305178052872849815526418384062990412383163567720980029867090922220004935463775646076856665011261058391696763676445974871256222085591230801288342372414461453021865418580347162946287961078773846763030663127030560856257743209002615832683998202272972782666440515977923462102187437580637060091526901848967477927409982083552512246457279592509992338657157782961638885354470882503064825104378703536139469181593589640004644631355614866523368391681913527620470513039727874895032412791092260793085029602840662210590923270158439641444198977052237864286064894755659596120122510373069758295294037848076048394812296621537571920953052815136681588078635895976953555977421794064676230484958378608855908743373104361706170927149415325978877581165156005130556489559213199004350310353245878288136591306800211309144111269332661904409459504273955826229552721961236563677269701329158256039302258722292305331460086152296423745548091850381189784236899867983004087619028087314147085863832003535837680512792743663156204027621627506149751397138578539806835055124803711870339537031994131700777762392865567478500906834958242501755702979419736380622979108671561304335184983543048173587353411586381408429201689864494689190118566919173948746243411597072840444682743968860144490453646212446686992582340698288761814645009069388950701694603290713380972998113860676008797195932834097273672978175596425416836923292576462662633398089072666237133933645534058109922395243383847884448554264265470258765826732915204751253776444003533234747927356751418488795601845041708493804134578454434865045562788605883471555907693283428281781096436054941965221562874527692073562446277587774467142708044504957757523784180903663780834935964365487510256091862100185465433886742300620217112457241969278566868581395377625937807982715108481703090264739575588009449839398399447862755263721388224587474927973403069997869920287633510082385977218722761850813462625936209794286273793564361983849237381123943001313919263236504489788272336929204947096798090988707493147351862358364588703839984972458608523941643533718677467687719281027585349153673917014433977481261870358591976230311269038492352557931847834019238797677605389990686785229861594508050479871351177950524157514801063150913089703491139341612989064833140830830611511803742122240004335241806670125314536510394856170938550828732449583479224408788478175585242322859131213175558126478584340627764542369362203534292069828869484023664877438476614262155485768312835237773732233433760391148269766928121772795190372704474154282481952548547594487208516873234750554438293468228783717226435989479141593566960020866120216837463999601738747962811575750368363953969864931042040867551977742400474548451174636052065682363333331706578859247747631098128510884641712224683143339297870655074165738308673790910982586168436539547266092971531026891478265869667420135205212111677809702394683456480576599557360373087527340882720350375636284702641291233342149308242663907260106978079035492979235142082651620659237638855744538006846240601932667102534666186870098024653383517611351834561892521126461671799204059471502193286211672796605093196794572833718548594742270737046114262274190931266617472193358249941500141263923500348662399389696482820130275671852353352879781692429594764283317791375858295824536222999478614093593412963887614234261878513714098832578505900732194798365277516748745677537826640589608263948839617772268514785814270716094960908157530513097607313937702520121387027152761656820361810614333540248623627383336909241108633517832044559540402888621491373170773897238491886264827790017925931636426005882673023712245320321249016917416226588603090499917888775322122482436250448228017503813489945083573742333804382937815024318571329067077939128233395074240748160847349004921072380017512289772992684426025477398395092963807799386695423059889453497121031614102022207795121624129521975234151337452045606599773931901124670584984230579194488563000020706705506517489517614684827355104331077458118425480449795881522490172166880119000458334974365695755376105212470450308062118884354880148813741037931370718582141105888620878005170259034195754881095877971903368919333590134242734374238966504441415660629039244254589257035311453971771416518938359429629233187773980992714318143282499678281343818992704838586899603645664294667409412153385038518934877255144739680719238517259782889777149274515009984334288699311081775018736368193625846412767069944073014752232412026304960879068281134615714439968996255235863222396817915706225047379007114568806480162588746353077916293324700301578468029961139733963515312141779511509545956548620038074096414362842580786377250625658805399221737250595140114767654357226656043262762581408460804676684905993909209971934864190567911701454150235478172186210378663609892913854885163240576211224986690629275409680755796892812108097857012293406111224469056003043874352139909098147421822152081408099546496568675785282715921920524264026255715225853135706127371825702643787529279265571650170277023478210208690908576793359980279007841547934764030422237483219847765186700189911161608204827296745636881084964615187420597759314519102159256130833198182750650586946063554210513157769648746491505273606353655200303768275427286147987655462785989621105947677621612686120543135860832658982290970180976371757170287827873892305189100548252875632814229470539539374881863045510448561946580369233859034103740619370670182400194691285308941208060030416511053209949616400234672142680805239073669475852111853113161681183676354880929499872451879403389840785175243432189478555518264706203655558030619649453804742779321021345473063743387096370402348320261403295330295369015775140354758404672974634898909949000982943130053882821939943387958120181184999390012982033215361708332930981195637659929411348067927634550490054819968851919279493081965839895450195571219609201218627919797436662070765176869375612242121033643648104771716865826227680985524802720793218930595399974871462713981317949096063096429123266087784871724209863174007440224300577242172451470620236727066338290781153333300847905179447190388976329280606699905193128276762140962639891709876483732754609296962319904621374476699276026053743857913101734912290382153793847522094645314544634967037058136014124842902633576041298316746682682412610248804663844576456492171143931008416690999379981429882727310558726521964700783850662420397807989457592749200054157280347772052297886675078054089786154840180420956113710031007406877565414153430451940025016165643981584633640883760081022096918602895214540196759427388759688299103879816821543056723009401317895644747917094385651902425310207748221580147614346637512225394068237161665869436901509692526990836206676445622520076214642581299420579093822396926593136436424155034983414629211190180464207129287208418737301733071343023712304206030706583783509779623455499430466283483177019609000511421255667870427698169208426407736140800651601083714575869461912890398900218376529579308778798093803726815031004229647984380064395844173526513557048598351008599213277194889708155237389955756434085613478382689100699739004992199667974224623457033191375990832416083430366812141565814062358097961196473016277200506858183656364626552229749870527879175761269265464404091439541712016284970043759122866005560811025601734205845478605749341785612328350022309269402644060532086841634155205875133243964810995100324426298146066689830849796836279175427982824393777364435921075081740057887027879537282510474201795275737008858465694931087499999824911851816042865842168692107508239952462865226057784690271611417608068359217107882150373994898790848693345278705360303076048529845143351918980201183777313677114634005918047298899013949459960184133822276044518564212219216720100939999581701215395633333253221823492180227137854825018081529456714598344286635619637857075619202062356438197323049871865681485742445043713183276133229445980279224200306122267563861255323784283876667851916317471310846141077580455422166904710500237328341591744608909794059448728300575551563192369139784654856447785805568511246587845141495275811369918776740739348602077103685527219648928810432662783903182276416347760527188510016643690159153972629645813688025521136614018081369534456323920151773127627269930548429444622438942107956003922699521106262238910515863657855095141441445439393756358100727270740799649719325325573086780906069153824887800941059719674008186007570334982779832169759843800289499694821836409518074428054455367023223358446353672164819778850083494021539716973979402378302706061548022964311849304276273210034230196393991855899576452290091294796107519229222912560133464800953370171756274301371683590482375485738593672526029493639107512119025043571822610305557154485610739479342582094055255904565960393157181933996626533922375900188134107160346907715434408130896175298902113668126897853947229186173835788513215496528952810061499683656474532005364706674513521986021425462946406594824321493903691916796055199135915649973733486351749131803217047362711825547482835627971954363882942210928608360071161489096949537923246649860009409190594137818168422706402965725409985479273625483091982436127437673902772678266658039870465730393918992305230200582365197655175021087699044773103079487729325739072268737429713419793549233501124755742269899559263030518462467398660883596732681131167093639781257784697793205040174518673275767163211256967779945587584693974997729641221893781972488176018968876777335137825632601343257148169814403750051887175154959691729876050794645421277345649588354589768903991885615127994588149428354705351748088580963939867970974141625123376851712782831148287828733872735691505285813600291379517891448338424328193363713068230629242820215986841905436879898982070139961691891657794738524233450343516055607302109186402903992587054666724788796469283950252808404371351187742320357897357792074181343815990135334900661863197881938290244083716433175062217828940975457126277344383224749141605673206517871414740122751862126449366752731252402632641681920789860301915646511335567566918441172478936408494234332587989014322944142260011579045231120772332618950101408621820387937299760945907255202865977448783130673206813143032222468162705946994531889023235336181525942696157115089339713597753765352011058940124338635708348574571126550779475489454123571387544677181503713314409881565417650586186805369183721198601897571919365163923600864972981905724287870036005365626253196646935612616762721476789051126032168161958859046227433363908792854058106086371123739572902328648972954326060216988180553374504049650681626920666448462625245074709988311174141214094026262518130477565567963793953587257981016960714026380469816828983210775368300097450118567147813203008396755164646393012310174669331509517067225387325666544259923969030448977071735066820107254376159617049557720165180008800747474976374928042684728996522080789332384580791127615511639025258616873095855669833047437455126763589498512939027043217946756978330484990571009186483493733526612313900158730993634247233785574846384070353212292087014292742586684455110684089575342328720237694381978267628206526073162993458018780853251142262254198046247003626915744875525205163812240940249364570634236040867954937001042992126372937650984548146188892692965990457584036673825717351712302473990011640785188561858957724584541794182253283989774125825564556953060934032899904564897853253057266265819957332100989687557917475978091371261956456941101996901841188876566798436771649294227074590893705566190378919498322915876535818790978516559975981799211620788946129365799223672383057422579128211053663118750696251834533087943993742586021978651401576180465855714893123617444864050057571065914982967092474445635053872274122604066471869445574618958533002387933661723347236680038817191423208910050999682126115225029555888824721016726322390051595646289920426789150893109576240836659111576015396336801158520261915849009641271692558041301949640658817156440958155906657609036958878003149011091677471176085284851835817614014335201431088011450333209726726877714338830905914802780515285540298404274044657214986797797698568879479855781375591845114050707771975643732718734680106631499650771690348647041338627663844803910255630283111611358225912666807233290673331006706919145482930711999492003048545685985019307784763300423223758541912998061993606871616369703479011923210902412807876715523566485997358676565254451290969352877389329233358489269152033262635369586007677053865976218561961404606891344276620429323406041051136013304787966983201463595952042684964635354655657814051114172063931757561216969812525889117364770084902629140792562617436710113498969683683425211554765435372843547102757759503951747316119152914966915849472341747833120160056496221627702423633500066367722995054322470262994470427306140837677350358666019526399515825237504787327788115344490122690225652010033497569118584141984178311442201340306712393183062219208281455285027908412776482043774395107566969967942490017034554684109698921124044162880418415613920986489322581100737443635294495895090447434242083948307968736401494310709666145748433720430181747600217229499631887423337328047949732448796457155584792451022060686323168421796762754620776000650863820971235393130657221339241138708552462216573864890060673711009302424002792882314269745307224406289950302393437554505122878868913022974068279273122595552187191536771399879381484782026373254634772371258170940141496291766724321324282623960740285436434113681768943488666468501696401513794582588886974826658479614862564959038578668015033764734212362758912745070823057173593398097510772378618492074883782679847706709391139853707998598279040330424925476625762879177545454376355792948227993836310074454367171427365306996136841664505979320562666058258292133070021619612546629028423865302381568243979883900516474245983972982262776479049800732557215404529850727728781772123243449831028087639453918714836883896449191172969931624173634273126488170581096541429327913244286234659746799046609936648207632501596752969115716761509105784898134262068026192704214175432113326680391025608477876895601344843827865853375450440167495408621470757046001840385441072884169498707532960130014707818747328088177811433824906582478071587334650745137257970767047383893104667710773677138233210091009818699307608713508234327671104214566559501476102808246215302308123939564909073801650315377432952744140429884329256146696675384483999406833055864851585785175915116739078540902144592209739315872970881754368418780909146530940802118894534559204235821875442798799660331435402159871404159732936862706398419407596645634668018762830622196708435939203055628761414240974405580471081392003062338368936939590260718325231173232277838319253268660924880679117203316294641776762369141946763081004066063557143317734436708867177873640211557767078068322779492633884552253010305859170479802222412872224231231691149891196679667608968731801808959874576177876398714802038670629001682457123245533608475683955027112160319482841103332093239478408557775334801948063822136681007065176854925836183079066757843128787340457861525853262844254344682617091005941322054003494730716222697472294101781216400397955184050045556816649107224163491762730907915523751012805253236338321973494971472733506873958904636101240801641326405318435056932797513249762628550199759425479109521266781840112559741673456374800327257483031631637449998544809257813500021619931841699813077790537747760999081083992408559161901774451817087128928015509693161818461572398030010653055923132702015691905093376651362264189379469060367760359635962097267635320009014035085477916463192364397823645787977841196933162260567838007904772670205441017549046866876983253931211285608217512067886168109264757705360554819798748314081626996513520650521974449578917001616775791435636101186206764291727338986667500732330416113322265680788503737169283677323315976289810282802695086675944196112118245275328437434326581971987109200030098067324245871674794755144578832596323259665834600229629345094288438161941671433046090893071274171822707611525222891130149384235948563432036351974333458674078502287489561167779581391319166421099150571662325338726020157315749038095807457518714568655457019324141286716808855016263727383527576176519126003969703787811379491883363517862297093738975705342425746196864290383361775509546276642421379603325590895455885522499405198080635298436102678408008175168600042306718585548205052055810853431943955338296249626083496462506908075871044923637116533976413707591798111505457258941929365673130226729665947264865334846357381349644819984812081078863742041986735473017234632961232083718241505866101584883194800087550980954041600831069634578744492420755506512967994065818234544555052529651506511146303326805513838596217592638440874672783687606662942661319157433264149883215299976908929327639383290435940480150071115520678301642929670391611859611950482248160898158878647947837021627890658975068944592791505181866178844506006072069666163935826514031606062493143352303029044500974439055812982469616735282370280507939997176167165076702379942923824101465437511459661565391580761715632723194899863329418899755477737406963097486151581492153623856794657947688121325237102221933413939305129867973693252852652498144046180212649422217621975457649046500630284568272156087886171358195596754882949985466384393028302034246037488129964748557547274530721865832506099299799644353570824529384523935776125169535970780579288547530100077820468690374635195468756485880732924158293548936719914406978321891628360133068560414396293831921010630239410155533389891724884362801060053358054374486864144707223646383302703011848805846003459764771302939081500420071593370870563873224483348566660399395767909919844461869435656258626155991526369422324516773560599169073890716277319140759583760924411706164252292615309218154470399357794294544446497419001841539869429191850338667024868001316791012086979274793609134888418860662199977399693965452897326193952287574405725470680212214348886971146610192443997649878186791409768951145442615589399610796832539358182771622453736317627205102458329991226697099328719737648801207436866524695587292837633910129226516846209322557190819667081150842574957926579750659670967284100710440678099256416921796160797547302694316841769823171074018301990369100304345306876579230970569910155006659839029438395751152205356576165772883988320482290411755466882774055982438987108843988164546041345634112584015133230424732226492180915680233981224699278605018217204560116646050937261486442767429895996628308612622338424086009241493868821000398359998295985694028379032743052792153608314363345422090297117857949301676545261656911520380841158410648805842672407608035505440196069067379062279690759321682114938406656929251959074080109586228290716248566206558818868504887723265427254731637928494641389662681183064261448395171656159118190103312940820018797784049174635746929040824519712051228543619606412270874510448199897081822421926844446537650362634588789308015944980334382700477416778495028729427239205715848637351367852823225510838308593256880530108081677271225199961558481398600879135588176456132987676902934832198121254026046803985493777951856848367264167443553174985129300360838931061500240321311261863038927429972337473650191757959577931667924237543165597302683838852109149818783241340789196740740807099928096497330873351827499844172222166444053014407812540943839599643421667712966353674822980132215053236342268509341098162196796803336697832039335741105604085894577548990809639680625790082730976245189752974611150842737598321896459327917287513414313722310605592967948410455548523661907314633742284611980857013965863014338809117361423721297409222109827560700925982153701413030892457654364651614296618866683379619111167488259213185963551878430998762609339629939073085859705376790414749047627231848999767620580486431562387869978882260142797861853880736835126782016433177162715384511011780721866173079443673901820890436576742317129430381509001206680618886711090945630263174199782185788963984608739227042177102000537934216628065350312869990416928960921522227046921630627936843671911188288647945138932029059037288419050803605381299591243566174780758977585638739926053328458219897672543118029031605323664370972446611634258023335442677605104462747033717834165232764663624271282086274776760777955476573105903631379630374927026711554202177504999586395865715066942880525601241466905746769387557891759616393565146722336854659265363324062614979286665843043965776986293230612708767061598630364221911483885731649452964478379946653895730938233459651185574278705599113780098596714054236932657620888778321215309445311009470062263385419094048933988801615558636703836772282454195707120390671675724713027328377435273294055923235080159802373575918335319728499819255297532744615017923038015547309154805286775040752467493256412057010185225187339422498041061907086744263284461848566335491553580151056705401702846725146316480698853688237290533498860343690542047319236567146154346007669540470878678787440209451452141385760080538649342944186831293481384234444026985554199216123457409350499950667363475755180032077927658164322383147139841229037436328448328687983116818144209132343242518424307555220437924927133193331595731185730117063536939927146646271337207699876573656647218178041165207546962032547311199370018772016480019940899086322482092421099525043235467520944817672093509826468322153804242750182865439888431957897771069485922735033527331475462463571258218481394614162721148118957588955425227477147228109059948071581931929874437042880244232104820934528060544561663798298527135446864925532196125527974815176819184823624750257120213779785905011440084932880673445833138828964126159631119077784902413121149394041241573905559865963174066007240888365710990015607315318115456158887166705814063423859622659085548351497480838221957120829892015616679973294931586072136307315964494272666284051212653229015631022362460930360662207094236847937017981357151025740189844294676207811962026140813529370177088632162910479105196088787248273213175542280252898047347846223645940741689331166035852865451629660457826926820484246005112835384338841889363770839967527757354977855916995034447039189547581523236461343879272023918183688169528868502022719025082332558823876662602729290338503968802366760305863185418747798744539910223995297520122470100627691693724814500614382750710164041758743165281839928573090334174988090229137410335135498141614094047687290387874069038747862702769587696797349681098127611459578367972444708374071768632503683454973954755764355866657827214621014693919001379067188053891632298894160469671405885000044660202825301976350905330034736075216642879803476079768369944105366449152486694084102543395061580298449052491802553444463210606054903454595595374687564769216526572143747075125882516146506246917962253996290977372264347344722816014459728442272203666737727766648705703508116163733434801962422482283473718987453565271140944034472198646960666484826932424943414790678333942993298971158741353564489254055644812159696101336395460559860490725107649391498921864317571101263635150705852965004027489325019664440523297460006341268448754363664536726889306157930443870460138951407840340301257972253249056850181737278300676888294333866725096246429666526348361834375353275409437863595009024026131818370498689892573521748256171740938971363681734171311604548757579260203163352369168901885200078789450469024794359307769754692816514801477578115935554098889583911790541891435506226186576641927819420475414117275317383756522085743556050750059521345697853826227484895291680306639307499865676501970773849520551516762208094426988799293641815166711632451223727117825731965025431450019747511170762977516338257355061118256762694103369373935693113369352694940191750141031737141802912858619886460787066140483182723709207564553337622628505146646747003022416234676591289600676857360142289508410457639828212824149869093484025173361779360846997919165822940823206308634137830967551864752039014677243105344438259276773725738872600972549408789438530264588879120989921459924488128008037103710768172181646550234724162938209746979147200297504071880786086020013910001850545176551516232559888935095272195179083762722699393725753787223099334731111226688569305738248497054037537185065490770135463292941669999748152786772101345223547649875755638826483212432734403849526121879359606138249276409072445001555812580899805039353581666310060426886248445365566894123996753562376646453791882999794994219128455421802515877376044372203416904242141732452380834970318538986230081026747588341642494213422641184489087750215428831577143925013702509875511342421582743307020407314169470632759463923098825271838998192425368386945086660322811403568843979154038195292672106776448208849998459000887875617301850776390985963172845576996702999710501944713891963098491470687904665978361704024711674868800539389339783029399559029756503867369657437431241230607035859800137234316416775847304845704243098713865551917671335399592815333226922567735657035827945327287464190699390751663821465697420059767463558465060123723434903128114701119928273010058945325438184523698081976743883476284413379736986599369437962096111955232966862947602382420954543287431272755863136351982687193705168178450799062084121551138235659338064353130179868398500860418669736167378097510584821624056758193344468736672642391008241299396679351280449069974861094828396020116185066364271147175995362719512734811234746958950640260916118834814360240666825511196155700365658056235640156805408130131136568090217818924137640848990070373537436303876418368180936001150577509841007403772791682115526506873570309707362540831901435031415482728023032276393420451895344433780373220142857702896606301568696394554166504012167329554380114048026477177104210387762651179229255195232542544585093351034775404347649649273284288655013323952180341576375142764487614938365300940318198880983372467852360848588979684242293084379530985230153558694824820516489788418196947381946148217654564977521804222963641024642624517850191389909408398725022890991518125041075704661871564877566547676390393780131519367029008273991707607559097066190983046836216174515627166750429621792181273608119147056836623355354906617954117049337870097435496041999155694258288165000137679498452350147973404198052909139162478249766428564422653153638712189599677101775563841362413752538611961261755834436074350716700197363593739714618848174591699022525362938177277781070929518629986894059368637147167029629153421080255970466902559344391401944291756112013299189698602027900696139790224604000893863791823414054074100684459415788132552235933028022774254366156234345124018063234731170924238148263230290744604740792971114063482865593020680305312624116698394772290305899851277690898594621045257557494981815543560171538675558829883552005938218816813778942696638223089551091739029564406467080709576438784986158487848002078361458720301500259396780435000458480716289867743291220335180785463701193153416957514257171096638296142866769646190624388835355188645413224958902845598311849849458693015050395631897636331152053022448917138035482196662354936804492280438595206401435982388751319874381598984965051679766166593121296972496324664369990832490740641354630670564642573690180462261661129388047244844336566040721401515462313066289323122115461292843476571691655139879619285664973619285916139403943432785093794439395839707370911960124530014588118407810038551568391273749450213747084944630320124412993705811800889139205817939588368149930115651488743767586059769189756619992507044278977764721491695563712514517237347179592871545381603153385569177167631660183401565344441200026740358896033183767985669887122322007253634282739879394040321048126386991870599427369337999648479304403229835768216052061925189619647898485947144366984486232112916286066760628760769200068308131118549702813943334139134993324318229504716152190039151539509989850745142049688192170850400894376103102283824869682393653391508024579922739195639036900164199995161981475134327177983103014703562468863504071771608068817826558479854150346135154171610452569870048641820229308754076927056166617422572043302613756821708698902229185795503757755273556794120578996373540492243491405072717057038607787912864509759682045298570744454131483841570921134145595750650864022211905096942441123317631845248688129931648035229289684058113762403246905193200524850528554963585411424815381969763267182884341236137840521110714264473677922908529629040387446782043875648709793034412001079174948953420042615800617730641890782531326699279713407817220692231895715136869368724875663159480066616046710286164753621982442858130715035690476047467837475860951808271725575650596330442089896875892551987539188047256120481719341846593053308421632374971047412963718442576931190504341385109550712995358200140898592840132241534876050545900162062826061952458276397071833558904462679800317501094894677688694407974459117953948229428800414449922909109262283374099183899279369549692285828537685704479857394509406052442653980076801417037595405418327611395445051888927280434104729329463645149571364418205637587170412473389091244307252891488617325798594815024705341985259353275388367063575475316639860801536953050519374393568580110306903938512845515946280273186164189277671872502849636853828249844067177844416172291427893987336294424585348151887311057071356311434218623471761336993920385276810517101065227250846546904958011427564438266025397715209905662793945281017765199448444462163073093609048697086793743015293927571841010245856039230230394495348743866248914602579714065548001718083814606821475899511777894843464769161602980477205660074907610363678953812067164792482543720098395350475848129160101247472909491796162596910363644516818314366575641710258185639847912319369662697089064336190888196502468439819719872239781607028150530273582553308197360045442004899063117272047080459764086987185451605253976090283825604663044210964103669519951002745054388730902359499721114987847652609249433499698887262783714271714964599875648490383953498291022101633326345544411846287459925201508087833037056985403048244213963880978220257069268261496541516150520184552085019425759625906780737277133408756622587333570140515100348195294559019437205864561005482929181202297548652767244928824304514508463489512129544999074299455810069415980818245619526684621840482840864840923782218452829732052163529374841756096306695419581475771482529604538416924527816471899456165778424279355530336571420842784217006299484426338850396677259618001475300304211741008118563636276306228823591866577501510485685154936764674134363657859219742700530849805380292943592854142932191332607495896062951105135399942793645969624677086337795244064030633436064853223914478079417227704357962362280645096205543438348621591692999397724250607033225560662018218571424761906052994083970742640352468445550522743940390174394979518217203865108161388504881194632120737866462314014371671601603778419036437623480600922281027513891675795386429838444401405602108978817105704760968352342195761266263809491137088458614915581230556563377971729953235461912941836004995399727556277322568713220534656466727780476486456610725115830408220722836218957622649358963853679879856746949282225438557600559442437479936472983385795679610695864174404672489486415411919863475256752842603095066820284657621953889541809359635696368616769860379841787611747259917102312336116621727351237960985781915418675935786066252969828168748355762994018351210456763135017315246224576935777807641682885021857523591184512969492875673566897552673967120624033411315289289951773922621324910555162114215935885994794954699933573758402121481769670026669735146656838563512006265005110628840754732922350485659145388328207390274460902778530098508050627208426047444004683727040780704829225360725391703360641331138628853246656538715726570291866842161690053864635298465631834073291213987793815635170156682535743121271097805615155684843080333734099178710567152153325544695887634792506622017287794849489233499438372543931331216084681564817978711562775635594573462094716758691054653027448293570171387123428510610379787898816996641540916926930609548783769002460400068672732496795454075324092781595178564342497872268079699658430813001983423657210188012685364909070041963801041111540294807581969266647339777459276322745821364824406254383066487292746415569783145841564514146750527214842809387321246855858699135001663809666395858826673735745494924862194929307388513978737026419534300837111790990133827423374142570436631762893825882478078161573475008486081834260770044556258678475499276926829524694347510676643893193109478918901521057827675062564366413728977567324578765966569326721682152129295989577525879821721957099810769951420813537005922127000825928546916205948643230616862654097500149263485447194444506346112617131422805478763756592077721326521208272311846136682331357795193909168600773655282011908490906122285786879393618831967434734201336183288330987885511624582619249003266178027225908645227038220815121313166780123157362781058505650321253538067701447452824875630225291108416591654677201505383627298011135632246840233276044520320053324143239942572460834206558210823083679200851580687264996756815171752762315140769257377805303057231667103029280925163771637799420712569651971216813181207379851980767634673831670046891708128642892326448039554702688068757425328282306881425905527098460526793060785317886810495394247069796296629583931384868099423015209842111082896896208171382705071304272343976704908659470045251402430532025099720342852018856190203385027185936832276711174235169293797527929373089161756869249006923720318591229826065265877227206818882125729806884621081205054499486715274346509546481172053684048241303342448700445720973454550734636565777809331301829229941302101004689596596917294724048059044037039474364118237024314916859296641824848984071863056490643843388257347186293380788622900733299366909986865332437724735549622433583302687036529055778805207051064348824781994755707567565965123344373584762270678386265694858418161149303702070008083834596489617991616227927253781086086902416326576318812592412847823568559003196317680407428751227516543226278123683061396706096131795333967484617375698669892521594491291618476999391263907966230339501631431729065593235270432533070556428819064924472011242421811644642999566938586974530893589104842946908606639906476681517156563261818364211365578000897329649821746880572375514459481002660726492857940583466622115793156627976145221617055902119728389283961353623524889403733223764102203992722743016719351616975178695994306234747385845067858595808536683408908882928134991157780755960929040683922488919023863019646042637299433058702711818815509631145934084742969336461524026988942432083695223816849451155180755942958966394471818719809588769417220615435339528654323533586203022255074790637300036724167722623982243768692251384147335156353165080388596142257010890169600843980111439285456354406528288989175372504721709889614032469742626373426649194924645499534373681700214183794505383246958801569440281540947478069286735047032533602074913070039630601783105344706685111984468108861816957906468780138952281866323240736945408483177459457031549033040628719311656919825626424211091604202115215586548793549805528015505258983381412559971356409645069004914527720154311890049052789136185528622317744757781257430096103725808962930008095942519983080908931954317673618014703269123581486718869152774099759276921606207423822854569703024295602792233713249046998787727763712842820056134534212401356641593283469586694087440685106351792824553773596412591445369007486962565787283179993317219325732964427458235939583235667217794107276020260678632510833015642627570809812959650207432619798587728668673412602888792308588340780064212088073886153075082428604290051519000810629818550505438702670695224307213342469424595594273661748513898785274290874945085558434923057612425322932114940762322262067704240837692560851180663257399017691697168365580762699228314107665784530900442202760282685706143611687253228807085850350258860809724851972677012703842374178199695140282023240065863095102908090751726563889385489465972945745854897003491685556601200346241960613883114246823716916899765246455027199658740785526418110903883085854650287370938069833480558040379894154121536933631673893063900852913756954259044565378613652887132687355323802641504483001076288431644451237416123913328217763307789409832313953773353923764343129721108385659414987605954544135992061933441578036924921498747836214101746130895063608317945411204015811024171432124202848828709733233950651849684027846500216971429964314251050342992604781395980803564398373645648949654113205937025469353803628245334036407453830120514832493729759693526091609778195837846449873159807668143755995126122428899612646989869762254887840058669377468347422414983486204371686587697508347221575367702453370615404806901143326809298272851041488061160154499689358060661149674665787074014421279408058103750515850547009810752997581679638072887717298102955215088923233556522144941652114051349765071830695068544882858796116388341443672806051637188417376052229474098389140421946913634230039890378139766460155008045933743141805164126020613983590829859841542698699562357682889230219975940351000074533063497218085487407837809314330936097201137109893679812301642606638365655766791012812488796683100132003320614362866858209215711196431193421714124893971100978740058123484974841829679029162170189470868696406229718245006947078477377082167581642163630913962379695244318289609277333248836163724212299094199457592477135512283717912087675115069880302569086174516915712367662269575661537301203754143663113752639326588554682898044343175885001941781694813153243251878449895021920847811131263640347073392222831499021639089284033981019492239648070033375860194220338688598178813297653470905118412148806403219094640550115755146471304064311194236195812385402723271619675729299157052930298882450023005567441464450726508257433006738187189363137319329210812549006188247320047425827552693808199614375611993542804404895691634351581102769446028607239269819972953208472991528280624281375455244157727924254135470300187874340573158836509110290845159150006885728217939983631604310189894356919966866167210845804729546266446360607832687204577664157311778364266174589959205101062746258301024623544163695533533691161442769957350125417412116256127379927488943160884228321482356640552183884366146251319320285704914861549788805517450712267606402365612484071849319473750715091434661050733741673951344381797616143824717720646628432496389612610282696014914420377725628103367161394952785795447447588485506505205922872699792866335176633293420438707443964792755576220571444297976716082424572533729042755047661327231978366910339794555281697108151692159078625664899572594425562900546269221535953374060339210342117723337318305536017422584207574318078891043843445167469158366280227486322005833786373645846257149019425770546361050751644441191572594280253156354903504753333014109207405791096058588083165280523542747843281022149225582746668616259940000120591945935810905604925862681026411699714260441828048340790838897090417584279026897393942350541930100861030658413790246505419022546772631497426472530022312338618546252557176706272276773243476349175077824135494488673666793143584992183084381380541529428948447483625049744799096417335215060597550763756960883055161576595237101480103439083415637268300197529392525126205279912524299805217516037593939655301049824796534543793648653154717829792901870163249751966604268820103241706712256321671065525444020358338397321582788173434284975385474741903848098250658806296604207013460005625716999030850526682574178319850675123259695662121995645795016986850905136318220832260178966907782976639577724574690153280539422048145163925546387855603189991850533090706209066757991427972451818874405431079617512647823584436466907563591382566504478213778567117873144758606140273165140690665532516348814137031122750422977396178216988498493400376371725657390087901058929045827636193964829790922881595143151257979615263912492164876595235000323819969383819266238633552505655755959051921900145153005783565092353101414473862447924567415835138001188700532716707627333312764577098829177797721326679092835689825206151179582177776479814316208514011881744477662555394917913264706317130419896407154219115397585098737352503380511032917364220158500911756344881029327365890499841962038637216213148042499952071083282139410376106689060413348403933048180189058776962656837933758073620714289822889050117358822175404705234384152695420964094945255083711617944981314448183769486992127078122271144008049396102195017614545760347575439492294742027443530022462917991205343266026267418404511868104106028044504920963292710391261044043168385840115669306661968257933392886887503217923197418279983708712191275656038573032492106264371841102605714947951422072463093286872548588331823637644463068252828236306037715553264252492170077503557497386478467624059995038310909786926291504202668718911443437981249887939682129789119348055066173220860190952895026434916855359696485139770590427229015714619289159790108229732614633118496649937763060478509625898799152497915404635584559831610507239658349826030658472494931229248534506009052827729728579474606565479878476404988952919463637380526859553043692567386877469533832753683819124072782261254368441733847563575785692608927563032203151469284620297920022315653777846633414615831045377649414289626490736504439709050750010563852360703749444347099064539917147515584757398733220865089817551843470197752863696110229397014748835226475988214324936336865664821198352356014011007248202888391443200001083791416169556737411317779626456908512969449411223925001780444558950046648089796186438950375894253106478753861866731528856622671910816617539996931806646516913893545385760177961437357412918940110199932321896323741407168916747871871824686770918748673624211624914095902152267995108780840496693457659452049315175983327498944284525855297710659353187997487554188130129623591009824290532704393768450427765690487380428856125165298221854605379382842260171647888855625027493420280313140083598511339072360941165793611095032007167644776030278415608819260861849720510665958174331878469262476891873335450798933466249789071475431632292282562633515021887411475307947668384476404549546558902021305824771180741221786125016976486217384655015205101824639791855845930589441062227340685603302094262789915697156123068003380109436844578621770509809731161631751054691353545814637107920281497174458232173025532245010370725991583557737446689217414575778195583129440407261538529064822562237190025014310485428121460679561620523801359701033773719023497660032684492434147403441436242953768374830870505504021953225929697630898294830392663558877894179716524137320451541929951839468287730822413163001630792541115386335456327309252173872367410000027920527453479047337210212942351071983510608353289565291758791453104873603814342199467567783614965728874505851148231765252440862529866271618014394293964428376870100079430618816497232773904701741889163977278155890035609412853619888434962659184035345713317065450262594538767192492603905776161054110296682403588876968742997672492169808518437918230779252341766198117327832160085095704104879093074965634852141908116466838007939530633675211568094145655346088531843112993277732243514797703075368983970326869074659130294707873694890961390818601395154693402874836985911008983014485721343054810795674761964727306983481640831244667967385906765174014603324400807503240542089300406774341490193352301241487910275622951450569777204694011692451028646440282363953297234004258419932064840389543425848251948803467735852762591049338188082476888339805309946442090724151735995141525078968058157835510577407025742635178067855263226012753560107508587803047832347521719168562421338078678508108931017292282382935352292124452979227734054579550239680095341050706745236207933581688328673347574524447032676083277640122750938945845779113748536213590777213820077161579726405959978303751133656248159070971614950415102412461997349612615287864153218650052091465012742792739245235127827176822185129943804343854932311498463839735565734916446561219882434997412282002208925371365565542290250132300097956744925129871373915200027847762894044432386491153831108281268095135083950431156911639202619973981433087856769907745323826218771945137789351378930262160575528980233988350556347397702556757513829992824521284810060546393851614660447025510163590603918426622244229682631968346994909853460221827423345073944825450993411013458156010928877037395987839179959295401360827609775729874055603387846995779803519365546601887818947746680723412205661939588218833498945338375107019680989281581080018959999943603383820634628848621962945775034581304179554537504874878987951474414172764453979398230738383360161342101259585563429641612825858558332227719609023285224365283136406128453341175013348572702958701566940469372886421873738393257532362864409294272235398870854632942500933616325269384980162056149560247995758654098533800429495556790605657133694704603115509526647525847938252401965334662264799657771110237932991316436879973941371213877143676349352673919109718372413199130263992471786974566471426518412974461211766885603883466695644842030170130097477845179869465827754656516280981994942850193532959317807855817861217362669660289364431382589118560620851069875496446749398761269855230539360780681807956796006061555589038130542601061381963325252642218130565067920542198306475655287411686606070206342172499368143499018771171020101573137392901046856999828418174309119787142617495064792729049994913138622768742559372379417867249921914049228273563450705306993028629973888641425840719416905578518877403917504682793549608053240822262979493995601094773536414668526213894161292158036710442746940013633967743455493595823548491125959576091478452489317908554697836206109127569631107714026699907071703059493426614192213235312574048365169140411299377300675335922121602112975753734541206787334890214363723498792682723560743415320816773147699930263952371833702791835787105919275780878055685024137304217519785090606631389379095918083198169173746075006520358014519405151061617632876741147310165025171687662849553324061145130233415666660630734356049526384790506795647648079174713521113032954942222876468226089796258050453391050268599543748201106897555225676963378009248942398585334694349968408578273266802187146993658439456570566958347546051204308049608847037096289436376355560877701100114283998586268371613904905271761780347375813260557470762455241434554364386849814190884705857194362339789693483379810920898240608184547991687628371431822672097842646018728906079417621852423344462346716505975392688879754970897625029791852226630477214440250925223966944625224436778016610772834619172514164223257315104340514979154741997265683336485653040224502707539551203523110239136334827707026743663264986883467240728442808642296993542231252912655795069252531450132416147254482033932784360802859661270392736583259021375436520790539733626980643130876194759324229635577301833740502778710827867803635249450099516414672938420804752652846745428254624670432708668941562960869149543370919216511691240000113960293045342121208140311992092939156031933659659944725799230582261716667248155332526653848791814402529368823620424621465269056877814935230032823390327606155543847319962065702539077595886410369456158851118983170829553378893237836138228056366267120991432618193731811022101345947437858125789337947265765145848888666988323031013832650306658811751783787132645499185136846949227476127579329157738216421334890572265367610939538748662804444680392980318883553513656029366056767084463532468955936303743350241747122607338243022132627774402427002755332962754263866092987794468454016937641776744183683268188054947850796583476334726038374625875387843413267911189229109038602200502383687448099866693330702460959827141356690635152975881145286698333718392421621321820025639115954918140172124235109325932479387996348499598019996844272996520827163982065121393821080835681637453945405749814507621030165302023628209954076958187442531131699609742261098763219356133799362749287914579543904917400125700457267891057770368495815040630943177335018090190507426221408331245572132425327216013111576574804585511082371253035459038112441391787433378007504034034833072535378838291456807255228444185032344843602782143429385804571004101247681463119619138488092245771803345029193593895700204284626104404937729205739868988278695651490745306336774632099704050911524433114708583701983772066089764659823289222065771806078833488659589006973724281757038820570718084815464089044124976673515371542728836418772155598017031878810521886006794595114791619082466862908031245798771508662884086980257859522219056299674843237519906499877801800442777059735858366634857556531290934321252019761380141767755133171478276559591287053387621983388337994941337791350235450895854317161326984852184569450480877355594401511741081227512310826805309997043973790775719581652335741092014136245263802697400520418301133407878224509992594600890819328726356190730805577410988632430060166703527700939903206599106717936554072757615559351028926805697815651436852231160940513804142536447203216046134801486760659312130686025156799569670513515850168672271485329626391811092443978943366569371803407682300114449497170788539430113770897886838400792584111186310526633177746606408688006482592602873017171012841675585215692048633217738547112615241545550890339129612995086279008754431647559426014092773527851419540261331461827013998972492382459664248917406203564810864771887851461154531816891256261515070980761352210893234676421098746510751190797725873532866194780000974229576334678349293875594744359630412361856309348799173891937155374949206574223580557040669698237798243418562986470659622757181736487667750693072862499522820077344620419802723532801497575078262857586354697605365914912906546545521802782768370480616559557214104366370556370293742524786512630854059088581880815624397150197134641290985961375072070634191654262393871162798582103523147427126111879476279564519498950887917017005549281311621487097520574275820202313672759086832801521978795365740751212729125963111204928604357017513010150804465895667409093585387421167675574193518471276333236927414565074387574212365634487774187701837020548801766598823465434688176891124192854711081271293483511900089591007468863158960595214091193835429019358714629817455765620163264316102712161386598425170854509017783972122506794740973004972262240287676966888800788739882851830145937687507158311516086009184363237199479580966294907887980603390706310342042604927015429235757715006577280130932625064831876523882258187090426239703650851941729926640011406916304152448426834918892521692573426287048273186720324927568224718004617275793144468100806692039609742718049475889384150766216504868007030433290085140066474742669942612146011141272609992050624599588415048640513869545369499379980598599411483362880502351315238603397252554910214078331274848160508928753224705076303712189975629999060167904535649868790897150496414419446790651577858322893251213238655524458924241844144625331038746024678658001307771403546534239799920601335394959836048228748803178739165251915006012512167060532771384497674329284183049039108812011889784174606221938885669389276856530299476000689564782880141912258797692579185502482816016395376722515904091677781679461610495697176991092270387506041233098997925839843771606588788730562033835042683000034959920240849138307599009631177462968646642056763820648102994080365889461813809598310372092534791783372361945606100097546507291879278842206401399617241330172580942787809228366540075951910071837018938554245234314833214078629211722072766210439187299853377179850790197795898978358891429821219795145130781656492556730714490431498551831481127567978522968042244451230693156176508049930979333327045848917012287297252408337510502037355819860967271701441766223056597315023827928220232732624059557373895882029924095793943022432286200511129802611979677454273258104369603399588628948819098614009418754295556482616673622822375079187340939659201875371190790200933680725482044348541965121466320653250182980873572832668018517940915387649596449898383716022662738656021203462209308769294373870820319722935907572457962191012035227237826893291627300372410375245315775258321529609229616404272281617462254689818998394656847616874188115627699447952796648597446211533109920238243556466210816790061880002068030138871112218287514898174004423910107699658417035757446933422397543256048669661252960691115036712203822055965487326440669967636473485547411641614507125007061364231926307589586185989001145362041031171023316265020502084401099598948345256878079738356410832536133646669259120376485587349857976325190023934415730358728910430501144746118335656007954680123330778505719017124532259738616863426690752147046919629204258150485191769320014145553429557042601448101387852699681795880065876684419973335827645129232725268362665854043420352203511013152766890588618081353127982035178222789070942436528367750960409266891657642957653197996336765472900024371462776625040207412647413862851012639305638747445997728565362081746052127194035335027867638228613484989587464916039685036975868467922820953405502736199681498389846716196896094784833592093042552080015266426734295362407310848721005662449308920423418843402140546477602869532969956638737413694379489768071931486234530137179683218154295798092189838807703336549358686612037022113437864708201715580401923736487704050277596697955079892568962179189023203823317045758457500288627018043205305532458936826710157295412260691199731005529683754715167972676515381204954213849281925579277166140060837697993226866408117305665686887098479991911210582810930284341430085035071885512871939825323038328537234128534311385568977202842539527802958046576174836476157545497572334030037148333007048549740179573931665112639862877550913569040988173770765141637944048198993957141846921925281209589399969432448671482522597335660643490236052185257303564293971011113315693955973606765837014740158144241386832503592205598293338690551136299375787678580260747470261527040191726136339368844897462109389626803253233663055734184793461058339558471692070994267000741844846573153941025757790921867451136659208405752308719147766607085975094733376592563421107665264473198879023764168181401751738579769762376451464082042891540573692756795697821167779508460526395590996054836632227392865226206253059843220801976593191463219845773849688927176034940773938823148500905882038322807590981429590478549626846175557713253491718913422985186926688578919534890524317749253488959439211287131814979938583530470603907034076229681978435545804490704950434989586107117437080019643652717962867449831176019585007819037617442960078730807224893278937222162190279932632178679766874240947547602386206813209200676780570895207873135948532247044353235609758516788836639110372315063250397449812386046619499204558655094413941183708140346722118407707283953614908324846961335407854356184685488096651097785593114633208040278278140864609514804474401091429030895034280893451096208077503893048518457156908742386225250852080387109544296822879765434155160334533843032231109089008612905575849506563567358853785341404185675892401141997941142308443416960029466436350874485710692350578963842974587297476280460926742129436242979682179118451570535025520320817559740268093822191775183393923452560395705565739339076580439989450137302342286354252250875531326324808998102727923060950972747508378137620105667213740857989640027995911344989802291656636058017025354933942781711013938439431933006105540799807213137110865028708011409395641133958840867443818156083749070396344035142803205045971723856813574825649893811937321752733636530743775074657696092766234797228438988243089673613762869785056480031570267331975130208872482246346867715046270790210542327129801052513655045869317604229452984187181536617078605179128749339543412773993283089191487028363208561628968067543828367725325149093481318145590307553311813704605684916274334948155126181448120364099056765600738862979068118097311052290892402008295929511526416490053795878579494968776611807170334090583663158415581343884843282623147819511748060337494755747918478395347690412825653407484625210780013502339860787989285945957005890994831442659386283118713304243596415881590089687874705545733161201361109157964844101424649778174889052739035070913346758706117984352255887575089911914131001636024054358585484986650768036030915439655454057043751532248292238809111164948376478721214919327232597371200762391847853808442270929057420238087399428584231030491116413898001878906028163084803947505735335250594688766688434447915167438517985248760557459288678125054741658489995708075184899494546830874848822883894742329101248791062577996347512564476121067808658023106490708430947190816859366839562071757859900487248754843900482491506539167054440656016096836604195118239717084467574264882231659204372721506141995163082338698808750234171240402000452846531408191742833242624781215954124297621218273273848518444380073249057594745212559733139953201942696511753884895310717473160299193460766776025884330511567344211237236651462923911776569048620274000536203655513822566634627705107972565316077013901011873296272337288685126666004624121780514109930898813117466887787061791558818263959772046996987927614433678602757170030181062720119972315636554567275021966508067939809433148983423024452226493048401764497599856839362043337422840973516323065710126647249400256095868751833007125562106637701975685319134115208210961589494812214955794700835194256293615817702280999130999630308686047128004729170263600954975784049499496483746300516002189955545442738649799615518795179120890887325816660661995638823099361621423333743529350273700394759085271882540368409695019541936024961460347581277643830706409889750668964250064188698173763012984357827707847899152977218857627330921983417763653401688669019678279825109246867663967230421207870849945274986454187082557339374781514783818460718757912410864796542993161598130924703309594013277482527868869563228249761093101328277662988851448760736086133180909119695976732795737903818699252543103159344236736104320470145291005836849008102755320202769380103277981234402823963142993960593735885115700787909075727804062957844818850683978325934342740616869532522335119464661231011415025337275454855996710630874374118514770947976298589684225652800465931675035076708934152460308440857662234075071208563486531146645421338078345351800400851993223445857096426188431004043517517748461595316666417972828219595012224468308645691305491987557987189403035856154668830690720158545974014896562682292390751968458165999402147153373777214042730211168334505656846846992176282694973718909763757134550545008973196987390382796401508359394989162208798674412713269226318370215360601062912016186435531976653639168125637444396862031798133008587944431822616327798330213641533270221938102537769924667636424701211575710871652391630545635830428079102042577622962011368546301285142362051970707443861332413869304651172928641224887961228593686222432454876157093125707215667730452146593230173147916834986194822652556659336118551258622503542356172140486778745476018297531538531785400743798118488702416884358824418902777269307908150452970595015575900877745119744995324668116708745923245825909791048037637789279553908924123884850800912665575433509371579199861699777134911003988515529559391810736291620338229638077834107074075909120538443171568310512338557851512568679161928055639012936400591423778247009228650164543727653835967116744256011088472611377868270052709592801505704515475691766989665223815569074704610991528299595294818443123984925117565264707120988336826467527190953256888497844666899386937651435257671292776631827141696259401449405897492328910209567763442665024945856163436884536679417739489160099280855933418329838481166437486955836923051958570587967870603364281237763134736331601305515528794785472301279095218197907185063013526080658978800177158537932670962843324466498246167672403870313063026548310647836496635590268502092923528465718937169625766618009206803929916121451923268996183883953387779069330825093435020161375371474990037194885637292561264592632559736889708404350974472114366531529785882330695627489174075509644644054784861149758810604767743357947898920405909620080148032992481338655435796700410878424284231080977493610657570331303637994518090517929161264037853165772807975088061981054195829536236894829355704925482371276076685391741127540216166713574865249259198635416554205290008329558170140040615105823881883161289287102263615663869228641023471353543935353178538777508850102179255014077034259964422572466869743224124642041706259099512221278507701693436731031025437771965350905437406852878376691921114962420103395252369447445140430962681483967585328191273053420891342056264911138623250570385063872827489643698373247830589348648874159798756829628451888139052908359640284294194757125495485354439119494076497973474524265902768806831150864144723327100093762353442957798465575806589050508863401555372733088938789530963743084435428719142931972583300090126500591320938580411639207406375885217120470219614301818502805106049643274396086214403244562486987510670422429398130575466696818816647854642923906748139107121399969864305612299842471843829926616474585339141114635273831768151468777441010934961422279955910448068264236991702726299539518234813501394972883395449347333184199253508038316275141216917746509110331822984822272869615646339780041818826921963623049432597387046404302753757362889247369981487859373156927988292110911414122167690175354296227320114798710294425049849724009990348494287298176169069983585578144690621671631620608720244904955328639009931634991489817016194602864576549035261295012734171039731088199838754168741010512794179830799764136992910711747472252989950982046493548253335661307987112981755128627312783608159344888032166501644453580285541225448235340399814505246729424815641382388881925993206140898716806307392871872921691771054386080540772054908329601830499209328993448649221634979140623214476290124733557413937020009882964937592912913232526657583539737717580946794008484362109724295978824198759559159362498487205640196341209438676581367113768713069940528070152561823465410777897281831021321512275865966323706381346971476274640553343740909978893588036631667472993902621795423351486690241318477850965087901608834437490451129300168035772125888968960477609344215220982951848462149005365767137838969894036467535147679928314580554086353386733704522099896399415245479254326196426759023365035235788407621276363574959994058039993814182245334838152931167726230976072309387732761033566899986707903959675815870456905801484748429985220372783170050347369381672007461934771836146837055933524383904475942949392349556941406851120176753194597213846649284869207991813290948966871345753481284029291607162517015143469359399901682331437658095319846804305466736883978816280945961396906150237714850904392513125359399585046315238995567872521516151537293173532691764603552240540863594536067859672537970660674123918170968941566016150406363651094535601579341287427988993386144716515967386688905254956711907984116661684135119316535563551242055767722179718857323132764792850761133945897190648844422413263385285235547867179980459202614349882625499675104486503869673850835019108825673711735107648465197027813329707013385525358629982112518868030948683761825349836441929735195825676580791603570785894503833679397668454815009369534407855700028703361115537724458791775389336526263968198064613374521487841261838794442392816902546854003448905997707464876694130872434327210041370063582889707255341698310788462209176748015286487592332546291945599636104795798860527855329334013415072056885507750100808588110656977371932522672444678367800607584481563538323848999081922604427154270048357552811774184264114168224039731625788756559546034447863074678144141838425850360786949478588137873775313669791188478076532769526918171021694904106086431758501800393962614842751893879850646972452945606131205172337775970434718716355568550469270291524131412102373207871795519958051405464912298202341986745290539964425382226494251856502096376230383678976316144244508944751121761238957364592391849545468448277106058484408850821870637741561364636518160976965881938691226495529268419855917454081693230875077989036191702032553442716332608943884610648553965936820713122081223282860266190834726704589516558892356719195040253266583878239927790438133017986724489318605595281348489627668152392698209033715227232275439883368400668236623499593484998643980019713821526374600740899728913074161099431213761460568531305813350966100563635329736937042375195174856447518591566784520184952010618388150449654345234364813795005605815727705767496380770057645137703773272943427273613987755869931287905008195180925135992115152296623740792455923796281933871157809990323878259318184395679643470974471247700659914810234947985603046776148653882770567176517935616327710977411977341108716654253659314649137381702436159314804379345788498497500179852214371996235004547364637539580757438898600922162995475715979842042611367291969544498809630102980741456073731026561238941716260876133328657686942700254809472929705788072869413534824438942429972802309018478876910761689568922671380058641306871814622039247306109196578487500717563965708609501277559790186390066141763404884416541414257048815059337807476123303266522571526006281094082453996096288405090463952343866255273857368573338208744881516185642858913819372663083469796805859107546988394125211423849786653859507029633215498256962019363409868604123689821121077563758554440545446185209789421186954633908361023973565949834867857566713290716224567777365837468544959620172629288480214949768380322809283247751006006406694759118798211253510568666062757244061464908592493591541198770080921634439606856896315299928069099950789893728722124055504032903989660667020450642745494562953177831422310923801951660562226873274591824801006794146609773122315353188093391363221343974339310641085294687741981341539410333382663849076634953030984417942664825945624883962112760890333998650253211429713083242803807419712410106086385698139960578529460320962587168658194989031503929680086579904531558755526971359470230554839013109409668313094850326455501144619937761007505844578651448103312910349404001017892460175371609150066161222293239791338018713357106978124129316945015460821894717420456315436177939340159424828004405007154306636407532919761548353472973751152662570254730627156898348579300439266081319987003309480219622720284042048109460275903866382553501945586239624634768671983007009716839618813781583350696927360467852076346417717030996993163163809297237134448675593072073807401364923666446625232680127296707506087505243017174346326682591360289030192909819039354672983737534177764105709094436331498925859865628256407637632064456268887280337441909163168965983673214316293965185931667775149959494215675613558910034675898043802391483784228726540540185930103748117906520182840219568172135427523897581734277313820446943281785694132455540585483742282863002641715460249312035033529345708050610444468546454735700891158937317949298695809761425965196206008801815327704872187184662727618867453502291084486701079047800920159665194531345667741627360082408902651881801323170603250520038315389948413685418277941919955170525137221447321710815016956283845728181210989128127140177389711495782984686872178791372659869279047075958894123367992419992667015452551251945738735912275003876030863120265217443394289651768239024866820203294326876980592969982090237252588560817239675318958049917790260752782956225846864518887253505069478981565922963530161426318896819048124418417699434362664032896373487814573674429365636922188250149893257917930140199880214737035397653898576271209891302709502394579842467604498614330360592077435031348282410911416311268882323245495323395910580234826926545500250297803811066509285659515456523255324105743611997620549405963479558585806016970182801277717992826680733040234822309115782833271812728410363364601001267413769829304304097777280145929319529496130582619543474888311385716559012632690786434732025227875969720493382100066816500059441397047488516800760589213201166079637648426327475098145488639307167815523691147926161802252243515974657292330155650525271738342052857815889911047254593449586091400562562143724451307517648813779098940362294547353534249768300704279934448991544179948278231945041934191902906228416132399504949082658557134301748066741117419815785315235964650069425654912247800202207965992613904811798146448317536036672405387718057123685031322731174980636783851834116574785366273931438713967755404516046359409000904475588044204590229096502547577646934676295940117070905836534694233209309461852863796680103802250759794884515091475364757537287708817901197717379061743266379282308459913374755696863174936671486689641466070432406972016214335554484732039486043286537578856217166277263515940681245275090597210059331659224839290834945077322860753046565233595656087768943628841140506627086582100651930676599409399872320484215071350405968967400932772073641256080628103572528042902183948929742079441819034101838354199365738592224849867154704276025243041084437690379023033849892207627473624526406000479837609217893582336449347503357852151309620640807368521075859194721359277413140184884966309287273577796601911234873410090936047772230344896292587558357632079194478855179181622723172479423125090026909740763219104689138568190745801906781767853213845908510283346474553746515843909018046715809305775486505865816362907010073264169605300902668621507998751791533620349469938618009533230152180271482866989453824925793548370538709513209636482028581668384067251574379895166785118540385687940874710218915375537819562163776547741899738920318573459271353321082109338330030381922224759075122935438426347611990346782126833002291222129709248974560311382159675227685812930087144653741144726640399733163998795558870300811436620978809508846585052219441865897235032242109437578995929136439086098474068412909231012782405259314902797194302872115153672356689605664308066905786152614894960101131988136522479318881162245974555454450798491726024435728556850348545534251949792001645902010265437006532716794393238320811679267200555010823287835264439078288839448677197948413609118993106009830435309414187940698482909646714409216861402918518660043458268913865416610096030545214072098097872929694485026004714289191791869645569626585796786664490794076925954234992270066598755921967758332417713908996742690326515696048026029346164082812758203231624666865377951381213983362854152693551581672408467870637198971280279152759971555128607225086327122028600042194954456556382334176989961206774105393358010101389069017537107301076388376235668680696720602176323719015930846063187677233263767957177313076526948148077773535713422850027517847265587491199010978770816183986628897683731525427751182428997305532054688391231278431429749779040686683214539291496065360682027077064543989171141592866927817116517517689623909689001247592197263266941147540321716079763991697702358757013009604631828358706841343962281617844654999440205192105194558826726395174643014657961839170240035549673846201913759056741905931435662161172994903091700588451328024581162662985212239859873784963265159261133708050651246201604390668268634388247306887409944050906039705384585560372892471287208549013940295278327391854950852992309976185517265078887083470432245187494847133076959951291886973802895762110180931138023030391596305787925847501225913438108707402317518115999917837309006874920174032090025832173635335263171942984521281540698285575684089731505583852145684228938951025812463723880634999123043160340144831554393988669864693024636883603577668102648322738138488747195149304889076959606560449263084158383095267353301265009351195623529755394613251650161368391076650163516131730665590327885180119577690851898213885631746686068463067770571479712776312036988551150637995954609956901058249625785908659692643052237826023327385969553779484023578453435631284592846987077432296732967188424286473042199384847000815767918600319363207662510291888017296343292582851295461377461980881506125245544867203180739290429829667671497362112868011492390449185364899045875806755554311864198621066338425064337708449628098142884102884071443011515234795805533164402362033985906201844972863812717856344087119366162396452437536659366168567310366996439960049512605487826240218092996989360387763988601516996447892592971678069903952115323001863244422560069831051898860170977191521355124585492892819548548999307392517995965283803034703432648080001518435051286999671426596874663339584207642404893111520961339598242523324836755138540738642083459870879493015434042477745063475816878734297067800105191189732200928067671604571708124186273452906645516526380018610456065866674075989393355123850961652739945534271759975399074678101727516444592112434952755803928751930700813296822259987209166635116435929995736484280939398470743240485044478091940963386648775148532081700379931960733889042014798424666487012363128962088172242574895484217092622588566283227067458555584100301274350225360765748004493003833000571865011066863784892686108556923903797581693784414499027750381120211844467563626947277365767517760917675422230631171092831024209928373561454583660674800059026056589123595552155338003397948253603432158733697949811196121273649916792709276875340885744313257487049819787337370312774965411407787937185170945627022745600988703881682056566406705592165106095734696559956630416390529724941113402032947090958837395094669330147369723263180856524914657543672926021439101717995340630004936194955784318445532481588502881312497965160187972526902678468130255975541821873154810290036463303349084667760909375568153318776187463978874246055695498213380648902860993366835972690156607635446735119117662030402011843744191384960466235885947112143076814804814490063504799775637261071930122200942415475143169896612221602503497748693711554035026180698489744105196741466793771567819760944286417580646504026320177077204996724846514177193625009309929559271333895799319516907323250121587638302041948026063754991251844250524966908943834583280467750337977444189381573329682001664914667612013478859086750068899382274463023101651669032383338843741215891060755857784968453554845218667338572143297596457269908950842457559872419341640426519919701330315990074114677181461733494781705053512319219630024650718209391395267798937443583118620409531261546747063773260811399613639789996848143958642704326829085670948958706260866904036034333589093449183180759770244701185858902404701856821673353356747906878833910235598247413138254168009642478201838798847292644488668377374612000070709854057097314083354542773921745575455546645430588950388310998213691773995388657143295187812117638905670764060500277587836523130704881664696201560620877899191008916675208561402942033384910122075674575101614960562496994389416087870986788942302176125351657970190650347909088760959927017113031723194397894321813846165890103263354555342145941002290159437030644977730526686002377880666278463150190406600919216122370721295682526588864006724130603698898986523872473199305796304450792092642816406154942864322963386947175617153400826930180369157942940259477400280780000938061124146591942656853160490731579170449451981760224943270551961172177734844361153132348099467832152907110417389390561930475025875176529545772420343429976955960217978720328310679330564207176973562916118454812123390614965921096865849495835672141284527121283313870610024722498273781475923346606495858488867744373370895796361596048439588386747650239941512153937122218057624713809205037565663697292954642094627159083444314827805538524411561982364725410408186464470940580132831074607320626741758011547092860860373959259017964911696750430239383334482979384940920200621857085877502772740765793120893878281974034809389267499802332845534265193985905446914001242190833191769870418460910151856494503131368044831272751370026363275724798250590169419209944685021827353088772060970731798889052587882829219181502170353435255182008581656955953286449470366069084918326980408185268964338533621215201161452963155533849952200990483233230075106793815574236516119557360223480642834165483040670320663902653593147346873099193355547600884427477409119729138639025597514806529887903054105987084415508691756357503965665225120505606232024625318936883701739978011111900891762557679604948142818993340409488895048178506166808464632753259710565632345523780091432002130886421945491369872880929359075503561995672910144599387837819367458183866495371507960484813903518409064173657805161325053989014560896889366966258908652447188861167188743784492493823922572197232669941844523116941894966671343734939227736074005572150847651230158283527540906326737964961275991978803343751666381763455085937425742351401610434820920758431960662439205663695621062099938657986605168160044413432478274168512765725711179437074750365452315042202646927867732913378922926845295715132868710555295061738666671396748654078948343330470280516887317047562057406046126729080175253128910457760986445273463716887194781877578757127427210416305479948399718402500566658897374670199185876963538135875656053679970943944668942645448323410848889437380747342281044025101452666350037428737453513895646071844347123984875350851627849884338833913427008087082604994696905205471184535544016425077533649685993984286383749384829479369532249255801487790482817112388941502207364283223097428060554366272411502759796692975426404274974892540719056480669499182145303543882298883283209797422500547727137944133292734142493632985194258200812666525449750307440644928274519641910555457983444344080159864920520782808034754181189737749741113397061380924787526009285470602281082520847023066866748383599542208585810942810607771405148419466505103454091486981953798021212048089626223639444511769468590875792505678071024897106839179435741978480027186563733811133559070507109784253034939143020326149756097646396488988738039865444810999232929528644366148599597408240993918458281675418566675187870308156815913684164308512564813770804426958072768699621917986761183121803219946000550203484139436424074358162380987384287453163140610280636872400165172119273710851392566045991643242024853870316785796894399385219821538368178594776590324272126575523716683382914494226835492113337787177615541388833262710142302348894842349423410383508842367864703499181552869467883619618753239137426564754751061752354741508894431041133146913192710703744107960511673556185340616758728841496362778054323998057124400336339611095964337808446926205950773227869149889982946428699811175826841310468790625955191274851188401269968665336011531185400942247814903388804420945021650242181817465341021316576022838447550973751918347024748251380791264800038948661182577438797705858682391359200903046808177612178914492312334633284773852013728227072727756379551842687630409295548655995096334174694272306193735869912614739313535154389085924740324349863935299339990695482958721738549581514852150945162918598946898930940102556752820295679491786836989348419139560509407204552795023696029033988934391801474082432666584563909353986534351086992749654391401762407662134644112029383441200508417692391067746905803117153180598048114188726994125940045119744840837775668010295925919484280637782893632185482232730909891605894287778331038529482509573351922242179703645744971335451293575999570087594475395561299525462098799845302352436481011457222897086790419898773064262947943275793556466587466705323459251281156270747073872784324153121697517786026570067623568043267616572769705519223325594775541761960812804171471573774557204283656292964339596827083385505634425762442369469166887629444210773697543429502102426909682353482838477957212833610112948041308894882035213402589068107670228738783792320128753963503787671547940152451192005199520144856783037108382754438481221109196529988016881650548191511352447360814648240823708037284477341414902801315226251450240801057415061864608886094371720079394940266097357546193128790189462603488374080993414608376566695660227590437155072191386122987027420605480032014569141407444776700701835344431739269326187863764456747422348838328409284005347008508393782208694835083048299362016551950800055019407301711540541924571860594478395560069434498467345350374918802730225718370637869211284630798865471399463708465442910686827632908660586483341969467014108919044648213100067115420789179213653083575110277485544756607222191983599108399725993106971624871777132802335976688031545226783915469220372932479735247844037636832872636039295416904917703266294644438793354815540630891601403039534981062844731656054667552742721169266709606642738046762122995306810003624820028614971257936763337024057898664976441062573613183337538855442199415017913544564334203719064194731818081903472176130171895046462045224197849461787765018591545573877906069913836576029492964745981939305154172923304135346974888178175691580554688345908365826390179175244782407272820619715814682513577960131624321062042757604402289221171358557369172778320786557976581895706261091074825098579558916859294289361337560713607133960870791901597796133230857944976476558778645463075372189769216409001729473289920914776531463441840216104181637385591400746337170304272620085876440073262140678355090470598228324378928868809172937010907811096701349690282922704797239327344035270711028419328041734947383003352190853563099076756044799813686992913017722570343380017333599224491256640013493690829909184167463678602486212368823095435005967623936565968685768524068587008273913454356576623117809991259581402831206656013600037169533190034106884688589656568732743991035421879864698875548680252668329121545908439685442754485850544466450508725074211038878210298655799822871608402156636390472183014008658284103686825001677913364133210955148486127422490407453808401868421867834639221489507900595664602900220975559024136909405284163301309513003763675311905558062926272876518989894193546175952489857098398466515944141226606964565519773633018300461468835586590734151538793444981579485289400683443510235918156232323235751874757850088142120845241164475679825766068368601136139054365424621923942799052183263728330076005271231501787111773014552393666865810925357774849050101250867467461345599948193850412152997480486497640573990702961575124449583452508057525483475263716006927658184147009539997740410049645330372214537356272232396139244319919872928611353069472124237806500759502450460967086147952899168061057335385141477766829151804354409143633039071745572180261867378525104948162783349971075521804669944077443622494532632616289473746038538773600130135842579871626914905498182665796680999497381486736949018837886220656102445182535216349447440974209031021372637056836612649214901759011759257827630335635157508024747622134810438556263524132413781233328906895111396785434865252779063621183131474974479496840937092740967229079093686964443842916041965588429710934294271545046480993240957015484823353269674381733712540869486263334865737503924486076888822937152144582822240605016655951894690397170593056229837460354659469567868881292564157042985964217709219996067404955407701274827042863274067623919102465398382405728672823626283653560237679508613525769834529037143096672121390127089007799579231704920926136097256282012463983141017989814778097529494274592556290224365815821729229223017960944179436530891034040083767725415922465010559904010524404698098127114605599734476787130776772169009204311968039500290978801780873956371486177866294716083204062769876027102569034062451843769728234978766563598879809679216770268296161446393149767048244950004950532082368510369771481717055717094388160366806083755111803552604301553432669378925792025567973140150243462774514721397712451817005927744698913371361702827070857467857407664113378980686380757212476586671810455656404266882922198711257322714849727839626745279466035467357118134599134382837687847013709290766840366038494918886009572010786994765400369127449859224449388262429551115901775251885250887793519814690964127679285285196445997205753370078097687566711352016629995464429845997109661267518509031772083219328821676937953004575460052539835494007488365330843554616427147415817924721536587018363169221386161788645506506214442958686565224764435350363037441207249971142905841287551422184510226656717359467453306790212272011078033791646399546330365154808664335620606063930245915647641083896936594359584216634950982185847567607244204321572970184271385911505922255734147077764569268340794782794942384829691338356071517522262914045164572867452321780731767646606524674964062735784175557590377128874609192816902854200662013972980577355009900405926049231176229029076869892733139420199305752190005485344694122758441379678450525873951870066480926238953307175549530891184423316406047989081781654226580459890375435968086182330830015516715177404187515803526322047080581166046934062364602881199715426419408760357905882616290811352471194313125635611405456283177143774201584251272914584421282002155168868487772333067784464911698632043235352556169990342378886088715728153725441188445769907271364871669684246649395351453556931405837029327820498389653627805403948943451185343432142767487682167228968644621186780364042141538081111524302077907032332048344467786081674400965987774050019504932967048220551081082595248507753787797137001900243990251009016265481851885334746957036925117929918932840815236752249599837169045763889855757282557083393648532030750438483347561268508030027564263346899313014700581185781071439558057048627368197114488956883910705203629035036344152597401176063031967075460332889499296251121858724666434859555861301099824422337380028503978738740255689221064700936349641199356083524039760074063772094252842967239031661497524533189125364111532914349430614635980182483157999613838609612371119022178956233532694099850976726898690521755200070043326016797248296976380906437632042776679150517068039855453648050680580366582461177731860747624484795858699863806197967754950276307491603045657332215313441281492279317113407295379361555735502461192369826506942145045787058318069815761013467820683132507847990720494983102998140458977391257999151619537684849112933506015551311299213366439222072484751220478163967829298177668785766714757086545981303976063817050003487622410317182022506486194886023077373970612955086198110214191643854637989969347843918189294634426781624170029638103833387177648856090408868269117050605666126087914121234224034493867933625998620923624665060575483456582169933710413742735172252297316598784358852764447105747285121221291303031570957757686416506684012552465045436804957631530116677330750016611193498131467383504964998894420445947488023874082186147847419107006666294041377663426035246847317869282982759231524391301437439540156966025295657885732709906844239376052235072101782107583044716601081549592214475592648432604112194050916455002020733059048144320169909529749787592196039912992718929505074852660432788319112834647872211686857378990171271637170024010785719690955134247883121570405104386844757521739003739229119554267846202860867942110612436524950572560155359661550550633317694120297230949017617775497584533190560690618811846011214484424817847705779598954297207827564304971227223879419148229039058629396806082545688273670741119757775653103856737988399581310918765656525641097092615604702182513641243921115568046292191407913129727471830780288009039486265596815130412000133688249708834487647490805280658087777848720394995545917863170251006078954774006574159304101525358735650563419332794496682058828449104180652712347899061281291047268089971014806044185314836677061530916116047313739336929893104146906021232237788321948720990590499217854079388151839179981875106679842722687434810343901708950110507980075153808583976086716113318616342716850948694328349332259390226021392920101168445888237087307066952490246884698673990059844328378643295728335167323098898010549108479196083451351761375705596643505809205450399318830701010838537177241194258149715054556988238349366135619751484286738480346791552032452321124774462870791218796050400361237122776824364179795944250596384182319581839100921061569436107395441088587914479268812348698476345185269247743379351982085700081516495345925812555659551078655371656606874006033254406623735590804021860431180596087553577507221429785991414304612832563191495679754979092830171949851564861806144721732884900707761312306109933398652970763525443061162489139232013813027039349428293288256743289676501415947358875007497738737435226710004556246175170640368492550835913917472642242323782127791029517853888198647629920021727533582790088210113789373513176942341593222556140160016213668692306847429543787241072298162131788893734906871302037894168936546367290299523751150087886737874861837182100290973196236001578737733333503938164566960449924773504578465426764233125805132804060276815206422623849995782110410586147245379816849182949118726106937760879639889354764162343660822608942596640208761837440661206443282615143611618273694092155163586907868389148864491861461554021993197967860708714886884179713828338188268187952579954410951542350834434472202294079829100165207857403991832081054089838936206378059984073442388507606875731740947246712837455262486165506519673981822389257833389804100934914809953977898867853321947748656257895370609436133146279299965654530081540377331550574452168778905974255535717832720275382881119357704767017034448604301043799035358756149555038962709202340330473085871112800037847102486531861874107916966638401938565034664842598446277724097796770445331006420981790446887124687104396403418816312857171221383004547793038851019061988455037951332629431210520096645590477113051509693575883189516587190691815369934374684662527895031188827292811493170949581105499427417911711544877152594614751195531287244582773065835326658219021802847275479987925021355921974210197766042522670348886426690304547182985389347556299920691133804399438853774220916401145467355952155650864719905500599127346326924400529622463738255481754672324202135890229722260925959212786441391357969508190946049660383270001902834656486022849003899703849854769632987606084694904308267346271011453343409262219107567656668840345279685597576380090684063247924556916574431133303401863443063962260738262309224895681365175006769018279196613303727293575988169150584452883308750473124493736593643192676121458752005651958324220659557732645593963400506637680867536685771715325749478359478385294625241147848779381305126044661962006173757982344265618935671794439588521435947681218505773753450162453003856464686505201339949900645659168269357126993239865058241323357017238966390631333084058419012997739979501486675656812431234285821719577076502729547806793772565900102582125127120907234941035459294332032728986160019539773403394120603556463781832480712049978642603623673932442466144960078521275536170495219908757555143367619720160226007868433588979803679040257372576989402861038042715779990353791315841574852787015205785941933724392829742983841059399993904158752470417082207390412496202316541238013934886504493654098282517785366927561972662754586459305475514477380863722437011361235739382722498011544372299566407657202083684247974908784207780636631469267393505617040017156582616382489526770787701220742541948403151305545483142222570453024156490012919637324098246078996400336244994715840720599507804590718361287370444061671626195945296537588897057843155276221511996298655439289608701976501645913675190368927371315595696483381135782007571084635421967669610468616905103657861417320541168375941768246040278944959414961889169324490862528023172424933096363039480052897651521631627800624487347979836236205826924614618043765814029610383373681063096884128824204587498839409726284003884190617636246111535359648833416356413123847332786562208134082474446129039005591541790322899127394948726816737902061517701051766139045621250885478157865704591272601757968946690836339391901846101070429450310431377456266366090802213918363408842564568815281819805366028209568719265545329208034128423155046539996312345409974502166555087370428709541922936815534123408090322092933993537081995455378614872501268155438236240060644353284936641253712400372706205458042794949940288419214891069347725808820130211642321904239208601764450234980230048785555580145811267696732063326828015382489019180546660119088699475137614643935388558798629152895969803928395310449406910781880767911639571285696747742242895979243221528610549031190950595444902489522082639756289323336570396690523707210060302472245036568342173976260973278133477815614587419692603711116274279145605642251567821255956330854551051452732123363087631080821996716735357453628547270636212495324326427655258557996654346097456803951731002870934212936203358230970002318574171032352739942428534473597114988052092670494878735050716852776616266664676072143221717830922514180553404891163775701042783312743971521250830032345281382417565772626028344952261858613855471438167266223720833135211950398367137003263591995216812293275904167476725674111048860667062162860200595920260602541386158326702684401217432924212864191095841002967062417008506121335784768549264383187273210374342772784801387109381883874209213500138753296355523834977670059473142164267663523694623040446915257398912678618575372649260093034548881327523674818704754362233109351963346823826236228928916181910443568047045110197054292475622417510068192154911732285259850021011757102816345188281593749707204729711972042779856110271794965451604792077261075746733577613481119023015573488836047679147447051872221873603446090829845985490509313540812320282474550722187844115212994773989010935569279832453852655344675726351128430386030663349873137136747908083090649926450785572917076989410948927300031753311211998421040585570725425372057745386812894177849608351831234368935387251623999196602305431344313396340796085495107383429898893114226029623493540206025239527687949376648424089089018306741006193027604432893879831362515141655384906249782863119597197353146123138879037482017546076615097794208701054933736989558770568092241331469545054995662725964032686650653626195519225662669708517260606749517997503431990054320120715686266747527569986138878708385402224442281000280751689340462598723938840800111439997896032934417916603592226418999987349334931447110831509940283571867790712832557117819257964034125132136879426529374276373642159460255582278248901373098055511213597290757169696895264163163716015655854480628782046890806367772435176944914418879522475233790222868351989657380457239823560401870990925450230549101278184746137743090608796597409305731647582775657995912321607421926772317712832337925705279643533245007271013513085953312161606118663486968648313905616746976316547689472301891713798716474462399420712983206452855410277707562557966805705866450250960285534532967368653461921389917672894289009620327994853277937344261705959730393590259966703210991412166629055853013941920358960394558621485809203435268867465930113119922144246908100959345012239429061250552665131602234888052616703541576126971301766568195608605000501570252074706345786118885917030146844489456721320723954272600079601945055568379883055499981463059428102653910119881189958101892207344596404957639031185047153450658097334661530574053927347240848631295748994655972414518235489948441639701752986921612382570275607179050561996039658212592737221405623032544996184047810600283792623670613502106231070208011831226595588190746132632482265098664858768811859023319118367371668639887597071751355031314596429200383300023199096086690652422844454167457121154353837066381999257321065315142639761745037144751852906179948384144552556353048180901946762876840681884337254244574867037915230786447344204760384861508788413793512172529652828895099291328238308142166061102993268258839337653787031483153876688500191710547893969042391277259067959744811722562784456376699453274823641360908621754669055263483186965958749277603886996215368575335435418955004049350155873113929204855551661852130695975498581960327135586881894789210359768761067132162921021890370908216879014023098829240180795048941229232419250693994682164986955991847747227514026299233945938556958177201520140394573451189789901676454909862185796756162889974537538889882384078532437216029068552994131868837162350416328688667657127552350673789247273316787970585838199319041444259386511061850643108060142572492169625917242301610929206852112162444290105526297248788832851374723657138630189422311969375503408545909873451369891560164991581781503758749831190465951067809084047496002776459499972884702677008818132983288092329579606831962781055621761473817062507628007411672297676574231465169929763565616584453090398709753729065469128698778555720179202063183121101461843694230509325877147429358851782489141042768462640660125411049162785197236361440240696647261751774251520540176906271144390410897247790954491991831298033694855475540867837641088942686097417769669549604438131828403025536282675577194549870291393035737400078033273247573470499026352002023970056603398556172652364103614408056105679259132287967144506615969481710138036116641317339367563685861162468312576725424229451811522719155660209128134890825188651873726343912842675588776340508732172502174176562780418388448319726668899851225123598587746982064344014779393923476187738828814181173364203644306936654554050317198600399500530559145512718387675866320384147057580556908680244062461149390442050268007705827669250207101695789822919309092263368989307998422747079870885510272141426043814693711789188051395858199681065056431491619087194929840826161451470998089846710673570883050654252682567206755787959839133027424378052897111905165863120499923564895432549598865175570676978366917786667334876697847151875756772553937996038500025437223503520102661528796914758013922580352135639349159737590667822913957964979384690509315913055352687095546318222657492070881408844674626842201224559896982373993783970205593184327742962371881546288234369631882790986282778106235170429641275033928497933194276115401055556031125501302401055503155725912107670689047848221083375598843026372898987623735233266168103776105801101332438204913341323308716985292016264871168187803101508692665152502153419985648422176623803552917287536292610426531954742783913988331458754976396612154829701849768816818378149149303042424565908276589385279997779008681807602510835282846665985948149367418957136420908114556505839562808323532001422887093064559043807764564910709375190442711247168856221505417624734521099686073204219557847440953000926008344017040979062769499823178726032374346397390706032630300820747203517746859340545907309219251575607076597244993658455495838858013932394827850668700425683900255898971064457274175958647286478690434143091897430097206592681589259699779709127306851619029927277887882086032745488196691448157663539915750519602718471750218721133643476967745634458258122830501067185217354199879009992728263077075019982534812978382656797280463557420250065236443404837774088079466474153443952408963356916698106551941625419601526538148515836464243540039234502735841010404003749144614415095067532023821778441839183141887181489102169865920237077981658865180776778882996368020751505246425019607277739382833868637013567756728067566440392415456647911201667988939265088715468416527323540869513222805205424237109835044692481978755657510456682659813964398352800783795982377612143302669714979052240488527834977715407754058192334523471986347744065693861690382626097200262367411247292305747273259050232369545756929117963611727156119388617621683196379044872044506773636725830789478021734763630129557519361182306437282665574912061278089788296726441411128247127696788518638009724571039596472288742156424048372233050144829816950865139968403890835305996809624151851379604718824822671925820523055475081562060211813077945591767698711678989334689603257306718149159438566538515734042676227529287004350486047197507993450134496098406643887176514664969276153044170917898343973207404531780661106500516404179224311896877502192924375026334862330553631350805747614018689454590311139201169056879562243358570593205069427885361447918088770822958800676870350986519378471249056485361549855434646395699264090721643343735668364912244694385364011147920951903647464227218025351713828385526491845031604288423456971922510918566086257662431595138559707626896806973198019489379933881911069572533536999047312250426137110427371275834846962280145019324060703111853322056086522254267358986776956427160305253016151177560403336832724195971657165155122844908470078379083713651824781408743607716764212270770265766809186459073701714421067179817196264911341468005809052056804030101395354305516756608540257324594359107747237149436231712845034075933061134957412043780124312715174970925357651748176891740377231818679312038930811864511058829637146883604232789693358800366382729961749578082825967876285292816295030052832783558477191361313405627096928005529166884164152134118924127419132287880443860729456820647188767602193412822144433018687149416368548200685446415655405694084451477263101949831712147515291134844920913354010658009172004501450347352449354936137827260175803628227557894434070052321881154479787854393058291958396940611072741204962636382567962261464717242901236465633878139777437337495910409114480100900176133566610501601542252475323039475475535612157657812782239494992548792478821801104754557125373824027887063377603363446803116217140223417634630290518420608468914415476649065166042444833504542794252152861696320893148797167157300337644558673480880699588475734071619421267920415776549463494879251615486437849760425437730287369373895028991349127170950041894366332526532248859438937001069068527999962502843022485319802703164809776289568046875587939520433720201035525586585081061718628846306435395022340108849687260884216675320965029590460802482232492366097478991547506386646063065440642304284200352399726492031597503188795412468279690263911011384361817205380000793236430787409985163835176393106248669807386829006109767613592485996689353828201551970987005038950711433450960757481247095164486965001958597899891226478132497551344975364122690969848750658358125919470610640378081518639357092427598085529396089967320620576441293524397957874206430408452994159539606725234258165534106752736721822358447682023614609922460159523821963564600867227525747207192849098879365046109170657609702983835309071156751367493619892471640448217632419110378981499728970190748374478858892477506143790790028242599885535109077221833790694320266808814501336704225679638749867167056886930320456109420483744241265195779716552897245851756879866456867926697437589530714632039494686679255140629983502979002479652606550616693246077834779155953621099938040886218318476964635695491453304578980163744795739477582671763597974126165165944943749729784361002349756073759697394327784570051828219578747853296264498945711525799456970193877599867540135818576126642368383338519333425641652142528302222310049568333699073886101053703330888219879856073392641753166293625926636147506128687645185055043063781905871925268454823573115245064329591116205384564230828013050750419761374439728445888045290394640600900360292616644784327782976957697889515614261211409407021345273397978931793811805686909815536817334912948585138997168098395208745982910099750452204761445575818081499845724535363924335349992370674225518276310537824147744882495829907374476195535597596701448782586433431335354748239357729902170854227090966043253300656212805650936191559921998457430868947048393895043574340103519874776373723079384814179138278529573304920041171139625485587140450296846909307044522695379699599364721895038016927030081093552944010442015809471490162790346693391229812780022356419024697332102399689537134559854692878088068995871716783366072872105717143080447016388403630802595349435498962085291273102921900362596268305609501087280729012030267540792657953102771752687617800266661595923901699845115344370309577990139912127967195800976434983761648605903209625600777879886560177192189997015583939506570525627741730492338156182051189434980291794637527305429442403366392012262774481576903043901627067705745692496521007106279257079841689128862328966821805528042878222453349389202259425530610215711451845095468697166532384271815339208549015539121774053426722765990670250606475156890209935402115387041602847074586112003468470769959852601588980219130599554588940974444685957315904545574401396755299392080958351771839116671140418227820885835073707394715212524986469347678195038051511588681037597865729701122356516845183428455043841467740811225962579571051328734022582323974617816558077652134354145836049875126539809291564806029965508212915169322013508889246673485771047405879882508089422328719932552812027045166735170665427984441943733944972284885913115457391016454723516702636566104503438919298811292665165206154363115443052939095873723069707674221346141448162682791192237423370911512979606702103286395574031245528756493248236795016863906035619482529749548839365493703467737171553115588741976535237208935573084599352313181206179973895579888006803640331322705465195430014407790114217523366383759390997165577418151167564658410403945038098625171901704584708627230723619965373549015976026870985626816365748333527844313847872887351126532163960306979566550668461763451934357342719582110113663416145016639554210301893563092358695334456744317658462567207099425952319924819682825018748003862326658963550278116905385269117615567211796240708105817301551735512258521455416902113966751176733144864626722908382451762971821370819176513959649381929813633840341465670901991576085090361592076408188288069901017421090489869576330575798636511032170603359078751668509160020989911144605606375367233788779155382045552231775766590471219142462071798133411334956956248172142206549141929571562341511822590700903622797358960506559910432425012039356524816365898864857935689659437183392025374685779799386199910986128417323575245212854370143369719038546132199143645048111737956628402602903063157823466147647842883542861693692592169861099116326826843662889265306891890665796804861551335975431948605037419725778952642006018292245935778497455700621713910735541447705445224726527771826159083357823045266954524918974233205128430990320601067131385122872582812201435492606619578220768333295950165519196040385792642430362537532044733452511042199107030417744748831597434112240115775578445783808564380134349862319657721580403322911784454795803502960275524464345604275212763528598480439918516826373261931709347925643703264604368995238128635748748228979236758480594777365537383430609257208677076884115828757402991778623541732866614403413111727695366343439898129438933891490978516667788217562607980319089262363272349127154799511804723925741268996248443185870494974400184884258903610762237698542308525056138171088055831012993476610756436976835569545262822857910892450679435395401226316860846756501990556441771890524471825707426976871370407348601971536406120765312148007442709327317286568999021562602958084395198523493780654095151420258977098522829686192625213244033311611805371679785993209372354010526590374799991843568339222718936489150034277935596370434075357274616633067610939068927798779697119185394353371901273885245505815763953407856301579658562688697793956736656725999524761619840936690598237830241108565591578865723541252339536850961086841772305812551736442035814896882186681688105264426924347487779905338102698021917646235289271770707317843358132031908838482370545509254323746635568511608629602830860124980367492413744335805623980748623322235484361047149096943587368938915011693404946337942154965068167429261273475098201846992879095220265391752359211571318247053211556043285701621956427024541834264298201565184175221327821191221128901492675114598318916856503681129426705857749699805789591614359379710634454559844067206208478461111229568145426099654191165142023893328291447480331069303907399385172361512237592063225668537789058425918403386341569843501130333634567119464982065631269999211359583101833313283179870631279773657236681886173027590446452182150530238727992006149093235353612013077288009226741213801117419214737453342568207319951048226719832964064763250353588508110971228762783317110772635776777772627657861332969708863301810354848773286280403677749411081196121334626833127984751777067261319442506749186980795019253618214383805340375818323784566946808478658421366603569594061230798905485458697586761827706659853897022351536396161530482124794980168964023655920400247633396113382746197551711242167423965111722742441262683863697381817578176190070625251801098656991928217016916138859294692920135680397478266496686462051206022683239195751572873182055445483300805087702461026500322339206797172411519390615411290174312983978612312654450972563113670335031498990317073411374849647766204115440378641178680083716050058200971420973216204282707444663455039669935672145291585382291592180206160338636754130884517997067770504835344390782667248878844182149948615721177770362010042511398810683383856165856682637638939311326651337214547855546251914806255974529998166769765941046822235561116533681923219065623022185738925481397808749521861741823451289183731226827061388246498926738267638026356179306177775456182934193219549855614909641232141180092301266774046500956544344466155768956549031645064915177743039290806742170205637722729785419334435381964920031120988467720718083015317886337013814485528896295948813149270037559555634521231342666805884675702532472138441298742630184742100125924126418609899567326255546146975308099917367353760874632582579615683389072833434958877069195892317657820681307149507264376850896050366300160625065777205611098805749049995912896736011521214509004040036596673997391993802715237983088151741103755872836966751020493079581477944143976577864615258320959952639986160460838816359483675184691266686701924083155995294267953140962665593516606945506814891309055686410480962848389364843398880964652053497203159386868818217003999717046339444092740123879296709988467686422922706954727311407049438310390677340006018292297218304409623732591800415172277142177015623387280751499846138081573368576419655632011506682525352742352146943637178213078467818452008041885821241694728978126107996166167924699563825153254298703889473693173930569772898017166987757092861433775951887411156888160909841166060149083365438592299340585983072741084958745657078075101328386643806829291972077665988468488920414004196891528325280990694439385277228825359840767472422069718370302066571729259481237303917411301893229709909394280312028256823883103327955448986180428589777711936301725030337058666434221820564072775573413340262789181021319860938031978890185589807620305534759484417771477000053601497085759311821070234268551068755765453787743777576236229068515737476540463474320779727651555276035649259355415076797201664354083258610070188013077250300505609113084844197422986091519005352110512237318405103374221772963266636712382170082682613885289083583115359347473390942924250288076430765243004028893814305922454266300121384128534240602743779035134248603688001102477035084257799132268579490742147830475523069999081714042941120508450610694325792055723689406903789683557326783076835627388442371717806103480533185691092014196151295405182490185852838538692308520105057497670003913343992506381201048395310217957712716574953205829309247177473695970882088941283098761461295255278776536540682753552638862879129996706072066828571076166091556847455877473430754631040984623859858648893735079054530341664749827839527298621188709639973747631499339918321026729855631826281670386209005977771208886555690295355341747665367871317241280625281330176237675313052432386976177978614430038945902582429203727503992371551001472524730639922564661329399872345282009138525614900530028309661371001318932058435335643828318460328282759689838017367755218247209942391084534313422675984509440797227789461475170873737049360752696068877581629126467910164919905820539810714473713631496243586495681817660947462543991629628216447144362434831721832921189904979167689745750554021888939015430683838046943300029489436194526508899005242963343143565742860678980155694402300130910717667913522944564391795451524519921455679897208289410940927742278767020751276776973699351512392937546831788825176208563433544256684636613825067203499244667906955011774771920255916239429143695370738553337285834644211145558618625669645393665993708053144295016846709647691551301177812114445262723776630452400672604309047230257934107965578105792470063722830438750149941239983654543445927191620031783603479797636830746795346969485760938439547466244056799569768167739060141635302010163464936450352788707169792411860777376564931484551504037598411059901780141319534898339408942069602477528060958979189145371307925497148791946699790265606651980688677019999101833460348638567910859100359043328460225598029090858201371226690808302847623973866473811660696135812455831722207946693992101954720988590723724659721262861393257751788480436676077732701236820773681868726159775867382207852811101714695344074248454464386349457861345579433404216442332347439938399365566919640805288011863326508816163280552706913877997553625000887279947987955155084963260470149268416328714019169581587833805248401721789715842790127707167305691827893581258209720503985715829068197200683981478049410101114636230346513369972148749574369578231382877982899804120402347711693343510353944641851001406826017842912580716251348304621357667794346245276329001822345862717594332047360142687500452067225392130400885108280178356036601091786085621708133134849622872441002155709776881038468061329338257808031377733682610959819111887986765617405584759449772931280688748458102746952791846129376745603969215357034657284148459976157802984364558435246267670052774299763362661036758754061032799872218153139290506550661721250720596527721929231097819546335857183496440775635122535429010958556888964351354236177546913060612925794435953256332126158577823543038553228996526475933167074938113667860016969416736608023636476729526274208851272273404052413011483362278382105797230020938698241192610674504890455321555330744243342815610225332176961456759626775151976309642581430599660891044880394365751655194067324672429172269519153266665045037177724913709322331567593007070477213310518803156973608161234556020064430895156838000112779477658440529424353979601587567965372700695852380262963884999470414607109601302358531167623271238068484172068041381888745681267492017950500986379769641680093037675371024572549206490231997858820549195123199942369556148139656816098516437455483159498582182589621654792618709083515965358285759108023982551132832997466686621080570194854163537620331120322042585383723180926920491451829754443951675256567813291827158556453257373881499320314810492430542558837799567329176436044203727194758170596929132501168898267824235677451104638333290007723695743151400494682954776054687638176113325787663563070661249744634854239903137971655474161981749953770756626070935111273096960346407233806777628875492817466371669689952903903136320490935684384400570737629376934004245398465361643438542783110884773216815600137422120834414187886698521155421399558664629969321529369308537056301525274735368589003764381495216600873737813443198210795734228134991860648296319003351801421849229028367048435570245377687588548363638743820603948247072031449045192418141762965868117836802263002268913839594601835611596321010434394086417058256961999231044909401968825914756224552890915190051332789129884165816717030017960420947008670912722641940493307279471717244126088439776247761784446430971619578461497176598008735911684761366703579802059017029413304376556299728718140474468449871689123608480829667782035851341237504798041547358886401349923293419072968105180981485556015030737744859231305421166924562720758760355240565676130735349022834496759914672007941114084919859200903770257475214850744043295255594192228592817002346456181174953028367041863642792919018740964146399010099287154781461674696704465580329840623189138491924855881874518691839320720854685911511459810744290914243170280431488691295110990705514674521888891639494277865788793500298577345238021354572849794329121858335125931058639824293306510285588537944940046812663899375624535939531121367276378547713558021769406176297235030498328890254022950592059465420274399871220408464690327126254605632609593170159040494564209373972242891772427781831796644664002691258481086652491558548670078461835631847320687964311638847460409734055591173794520767046818915613101453960517014712215203023295813501904101923839788491795127197438124249738308092250815660903654189461815731118662801700311914473376472603700130978520834785592031278459595485198970219249952041536554086115069078297037312642298968911678014087662485800512868097541047528654502207170767845442752997953766486663829516908648518065360772860242014549014171946012349631955513761985902339572026946331260874219563694481949472539453226231210167711596221615427743631894241236518197916969364331199652699248173963829518218163713063778412447438700486861601293439080376234561046186575318568999620022177645997863168047503146797981847660758910780107783427295354699509230856362871285026145424062498791253860127469234821867638039253978591904217072162046657683435653439279567796907900525166558267626526227952983604194906492612465109742374719383283174528917952597360998821454687322040974618401714878028241977300318404470903634583267983591737996662154766909593127967870982308242272180164567386533792085383591256953455797153208594903011991622037766585514579168486693312572028667353254768364241362618583163167882686189133208051266003774602000946725417100080768808936102561294851555893757841968656753991754553991335498202948037053930674313970250576973702692863755326144896422604368206618329804073441179336536604453112218307357258812440432901845775743862674799122172867736548487658694358420484278877286966784747694744639253489760028276062410782169820315257604506915551250034402156815089715298614965573090258386275139255819730713163160002295752062739097860418549455004530744085153661987612988924263850572349140857707888345023497814567199223038159017219772930348382770052882079254211369725378909148114109497317403335518109266406133612764165252883309266962864429716723408267659628327205468650125717474173861559410439694756420082638986831792197177968496356521351522429420969674118784087395192809572060596117258344860458767277909313513755697732040794036825286588367124462211169208653779335999427212465879178529956851714541436800284648895011087273312262527287785865114504151826496840263466185398671249896628704217207777239932743932911996744858337878040718288071659162438970395650335218416856528813190072221991293768367093493498880492955508255580378052672962360352986006318060272643103758709910087533787580017634558290145645718641827413757383149685073203590062521510888868183022373180909040347415293428694720998702022029207007292059913499695802325288657178557269337448533780263742014743015333194460640100629559390917938188618756205252451202828961887437257754878221728690022256209222644010286336420064860323875195493638290086337188571064018802421350814000110191449982726347552786816885120915743375210283093824683395531704193283963791101282481486680433852255269314715284548454891230136884417351571232308472762835905384537992179023449081438307755863535645416908811410406424269153962603670164184444426345694607805849790630711532652533741620482031476532095610172937983228800370712326417225052296823549550913030438691123392844715091562772927845359231249099449504036048360415909141612033575026924749312830955493338825895673586497902020619292284384377221666031722252083433638828970221442214758460307185867965090915371334245373671694476641057004888809907711079131091163573579570042732848936627316796002099587915562505276772906349118943824650045426183710515232173060929559801010595793472473869694493291645428136239979867135803181886237600593967283345214690479865148096040440421843144561193715484555457178274200573308905854146903551798613359851502295161396579273040663868688424549231757105132025473425758357750162695895535666223352432522615949562444372469830154777227610253175753477985752971775839757480290912836076144011413645030889309128683042696762326161648579038091216403324933754890910418409091615020478635958376640620130218883154393209220218684075923613356900706233528527350528397165385989723323427291905751400150987996645252833565507459281224759189139452163201680211580942124394299104726148912051580504630795516981210398925170604023705789041616048042913886034676185411310295180791650267627305040527765131183417042449499539174025869038224699574874679834259911119666105598565808941399998053348378183694288056803137575180547825848643695280076807452828932070751058997277677525788180058654618462020719145346103207741535525470330776682732949276985540638125855621594320413093500941270446574386208151385933184941300381936473092224336538729627521953816175909309171551364581813879096544534656332584719718656249060733338199794264277437262965859159460002516294487870459593850585963142287884250313859372474400382000186012067428114159310068770554210723838121755760954557334955584181865968675173019130613688052764156414961069016761697084744452910813247338251725513787339651595882756200052034478945617975315542891828419820042284033495488200867782772609643526443238030494003312085043831754331548664510518073599726504087873235290588893650534193747425540030822900204889310678819233310128168989582226702048976103162606956751723403403527990264688614996323566498328130735749317686354327690425486424374395310661913112902653331819907804870550361223826718125814383408656175036016273837454481257880645277790278711319540451791848175342183351185173777936684781382494581840630552170276356309832808375258053370729348342836232628824649871132623980214560246349028067841718534368025999565269528472661999039128395846947033826736896388372342691072074850974874674017844131108080445301487455052271995224315107085096224801322036442779587201645980392681709895477975453320079535421633588827076375473022564749698084602642322353806792323017942451336548433832694175010875040787319339152341777326758327345434938957997968018170768754291741436140743794268974270282035156938021897059385557738147866644921843517161055491934709899748315481876064212253395588935186805892630899043266288722575521089678032772828141733646946318989141226313822792544852248341081027578100926014852989118482329455237654342656995608527156925512041812236651504226674963205043265597437201702352372492043507275464666196365803873334495320059318455423227995944440960138796293595464663644977709584774116207850112380513615164332504059654932482184674750967691232010931135625422448476539306689389391906933920727248120241573900132166143433762370568754365100404749585927100412927557023858292757489167030182911199910554940404829574260384997824788428177563880717491109005884820702366564444062551782209961320040289832935252081681418670335235256327462118884722277182245144284409390079326617591949398421822874054772456856031753431173949811435580455252452112020186510857327747637563044531967136026517192351959185849362872715187478462621115299307980202983492230087876669496040355777698319947254605500462615073687610887268103232393729418343360538489302420111523257383245625604374018492511127436820755285015277869999532434855992339232194996293451939658878941849712038263382142126836022891216620382250040481330541257726332954822399110147263749306454920738439905299079880043845766420320926348841059571299671739263158489372109577501870563900122532766749504671887528471706488940743428712047729740159419306391350249041557726344275609551170777073466335704891013384746712903568599741248979182701866613139865731020461018199731599392258778590625339483940037649819993403051802793326653723322118097180492263159766078155513433814941000114059588846248324050324237264467889265051508452840289404993446004038810685383600755404399884977655268317483167977753583095242791050458823428691301411327474090468409788828533308344231159750029434743034265375498929764490032335115330553955726617883242814088620742275953351654020352321827871893162518689018383398949051037881584874976946291332940996950548249052125941446766273747840110672607840144856534857246109435379005440218958509992728978215072030470783134421449785674768960135069724661619151626266733864738837797396636350390908993262842856200625174183998815545686605446793406640200443174631503473306767444419800527574799969742554161110044654983351642518417693979299679440717074537865427908668355588304515145596617608270352646447560197903875282860474359382263321085900775131937970720986607411629602712826586630920467394435716655451034990861931580639146395259890599569608344072376222563491700985597426005679915470176551449983054542340092420843730243962373924542699370896908431370936494058594910333725528144401419927040915742737924053050342288205314487342277513809867665164407439194384134765233761448645178857399453401082935111550950242127915792182584283655892669582091136525360841701785162364660563680407865075893867336953372978507729276444591544123292221241478550852765176992254789792086138161347436134856015984392929637598441623410244669972496431495828910092642482048119276325965237125877791798234701584566712240992267618950041870357450991234473470604271839851358466012488544518230727494908935867371000379695705735016495801518562630184672553309070683234678851417121355816358733671861952759471589581204549090008320870292465574605992387312494276821448239723906500072835180195133966493349052215225517029253061967522176936773791936795517935758302640067640271990218893828180106416548610844627771699317730996897828557840501391344144959174132082180056592804746288393264042105142733135505628822577238326377307035939238562370993570114179483117814185226200708028437422427253165495159103306601214744804139656039523416102944573369079778440854083162800932526182442916142492330268297501039641579511652593440291495632703011988869755439938623417445976753739965102516941351990986443728075997889308186047538784906951836417325543863255601706321324146294332199833947470954874316535621753687580833163943768756686889483450006435943614416437430685109490888107773460103419449703773945853631989982233440840190740898449971805992567213627916491017171362290535018976001940444887686437214550611386016576742393569954077254891082954244314182108890941310619508713578434510019931867992941825649881701796852883908736793564876471267044975719548201068261862795037307955730492815253932958495709878579587071998004765795415450636039971410457426286493311475779441473384311809819005544205499259095307446112533265085451906668377681851427908615866653187905541039280436114658657884267777283313868173393554449060985536395506642803090835321393718560401119465371211951615297574931632288258905470585541764264843876500697189335462128340715261435408546144432010153497170358556963640749146166069146622111722229082104396044730796823455345279237444225048817264338374907276182465844936523436529166378728948814179197911054259374869582405670442012206722205207247499816413649998508299695407534114428065749939973346313481595260333864247501392303424916782352596530946562511645970569927461986091928477110595870516836325984329296697604735316053354851589819038170499710177665744704536565514389806528733809307188901294911064368293955763050448159356044140103116125158966086851956858994855219619347339917886066840457849343666119726256980054221905728478638944733351255997012765595633371503421044591961787323770037506934020169395967284917596222559810807800492512494460316621440566391023196910793988093100610469547248453100260371790655016017869288192996960250217760204743365708697757991441534871084005503691578055826357381816835396333947929773896000704539616791514142149446341691388777613374709917662896925212337167345454933194094193818252683380784862391163584122351525334429188852428657850673341045619142494235544399891188171948002624220410112149109325714152519577112549620057345721346660819100389622761105734438384646049909212547592884908557319944186832450178136941018591315067125581412068433295424760526247439934854582750503093282638245626585634586422254022335208536454056232323713360186437289604094393764794097745356418651688662831337160863448619603274986261015414472861186156707600285370606855896585553023610976204718378057989138656253026545151410805625468274816173988711472021423570136039715880066592865693313289003166991583100785044982309473469814363938457900640068135880292793638821980034986404716500427379651549627006502703586946505302134734790313543681928370084236999269595945570018232581120998986592072486643284247958881531692373220848346007872097629002667092051397427528806627464332829544313977273028308853211997503079753937677282503852808756094771915646402617715035982253189700662491073768575139969890629777011979598594885219223945501311798559720826339857328297021045785798051120604268273132374301181686019200527980472810732917203633104895455598612887078294815383124059257709487180969600201893134450977327411398662919613915729982778716582452688602924893396638911282340374358601516783346072915308824010175377170566459274243308279728665334758872862525876919181166315894248972003447198227261992053576051037827330929263532167362935138665244117155706389453421250218169889540485893758023968071002973367807939404985986417927095980134569887104603396455068259458733042384622791959280380571225985093344953265901370731011957924869658100727343896909296878259913147621358663203686456731131244511614285192312302507257123467156967985767917302929588774769929692999707523469873638307884112187198685552791533690742973088345069437792701747128986091111673289452029837888902309282258390532705754304427814969252936104618070291923692414184709691104935738598449482057132715220507184327834151521437846416060835532472890923298122382506199239003251595030728597540626835348964494792042367833795593455209303010305976539779551464250135699375268557862121089743070510915430551686437835061958929887206811789589613263149385727632845740750937189526079611092054956769417286338370645601041981827668487243545394743964072495369785542411353175047038077504132260452283175681356208030793241670809944793588655572366948913784209381076198697793227581928659330587854482569212427166934935165407031711038665369967942146517250099085767418356692663291833790064884715937921213189688875816385546122083571708440235184579562967336011569245485021879544587633860082648708955959891770466226891028841828363240423239842568947947289564699662302899493056201561792314416599974538967779769116818984475758525521516995408156314053054886644340114964765490837176541035854365521963300574239296784985897091829851680553012088752506454845261634427015131214549209377111407676894768460172350432497212628352777281114729368593071279520239074930757906224408102340397757512649063496398891653654413055363325358527026684340516219762455454240188015023830219054842562461149842671111671772720624166139553316652707871095399708740401140631630207848777716787274526053242568860214744216348205124595883556187625508823330489230226926102164618747059771321803997706105796395533500174280713366903838429011522650080360311928746440140059782590993501193248599951159108665809045352507631628992932691397552975556349976183745079847291629500156682553009347644184034452096291349091643858100611488874467614629460703525651323410240036890895971872833544259126089395354123262157628328052987447453721473277172564350633334806464735797329815789640176892777565136147400134237340987331529267187848242068069234259297615764556749024029032480313592805426923388304548959890059532554769622024658061958243147414423444897518316705446561080338663667540233096387069030296400138735941821342763950173387562687330517412296943972678632513584880845958293488680681755909697084082172009381025779585587638235740805815262871777092657748874300805262931288002987016863477988332657594397201787698691336764624892538348986528901211104920780826664898525621964479590299479559048726848685956950844432018876021833142030887345910254634656701451086096734681449713855779217398432199245007733845498975077983378036263592968788775361556304080309024130248250652691708888193195354046469451441496862087688597092704043653689223347963135231087583099499595699352991786860841876400522773928253946717142395696911941616657300974625880060180507590319355296803482362954687029300981102918865847368150809709064202938513296472819714149700869812111071301822168450618297325441265925246571152438157781515221580887286173408448508534591862160908747914198269278630901464258176411637638145120674778867328764197023388038847571391845923954257747934020478417891708078654370224704647627908043453344940022518607220590767554989900085149464045803809911305845414664199704756980701430660522594188822314021184325280471596423287337269989956133039998391706691988865009621226843823833745115004723688313411132187025333189604043595226662279357331209286329350621659003262267930944837510949611479866335024383733756476403611147115797691661167206085612533153295416205361451300783734693601669543835407625760124119625792094015211605399234822567668778439643077395741951809530595551462970845506009556808557895138210721422716765569437762734363096131474084159841761745499083881924717417940325472757724222525038295889766556175476313858876837381506082369736538625327921483553564055224476183142173278374847488325862727412719595918540629714321334875465081453647580330111868970609440000655975624725458211045533208874074171743836316903309770017491103629271279098610094780551098691109891850078052351661609487051728448979089160595809933853894848925285678412254454411163135178386777216491522100501749010461680731336986707993230675778070711108847071751702820121309233802581194159962921980003744207455013674110713455094262568266482724465888421462664348445923015296835510489562134550227408839683259413149764406087960190099556336034024983023900601672838726515603691533226321737559262538341625305630730882175950798010920515310754289943950769655756095065607993818738085802403924613371956796394413192057358587405991432102398932382447023764585359580502866763214820685615342004593579110114584285620067021219148011305131020375631357710295550440149281445041287421621962276417009454884274984115963821830956352510673179056981768893049483067586651847886949245436943306520075942999553313499295433025340206504007327749558599510994944090927991810790927164809927246948244808500439559405800677720911980470352088910138914323911023778370650420942755364458684458602767629189784439253459591612657315118441039891436173242646326786128486744788384223241453780811010383175536349864088683766299975948768673454661096458276239247593913383743104683160274704549610359835106205434763196063061934157248101683251838434578641807062281949079866950791099574966784765413271144181194079055795141512785122549815450743856318550764607745681431966810063538917754251264280599208190205712083720303102799640288717267655582676469156436318306580784611696724878998224262551742359515739245824839444194824282142559271064098743899801138366022423653449106027566690884355682413944135788922583918752365664572504432453367613948766947539137468255349386763372879319983255839111737531417907542088815795549422482106062817417914746989894943685864787375784091252340272382935861801328053375605369436610626015624261288943139285545195203700178771544400636190301277709046666729986777635431042946390185930349293701897741458206763883856915616034956541197335974810041438957111197773099571404929294633509888027534407158082249716730291782944891554619244215980448799299132087916844269547089831407394471050131247935473946663415683485440618080787536069375015153904284490143839145483927219518121817576733965436442659100741785065344602350685342450767507666950680922676164220554583158030411388278652481155199748134414523343630363060181073485385596554034616341830436637535671879267388863456385969689954757610108971294166865234597981729523121212718184363283391434237303236600667155227088413818051979188054716862025234434196749130671065207825260920613480458557794061593060672955581989555779830430788772947337384447133336962533433508354403490984223590618643857335808828980480624901692741532061330905954367463523968268967389162921655970329383159590573988508992761822341290799236734202391324938055224825145919185944557014720258242827642679332092001532289826332234650889444529972833904117406901850476049969747324702983361046318907795566153662083031825458812837614796668720345553557870205793178733844851537827916028677394915593397900822245644062214123465884191040137999934397231433337626903228125311149237038386671779440207406844683837007349680137939824952421862445044456227750615438498286815652171306768376191522128737639251812213575394955666772431030354456238256266414584648094415344069417449264021652580125344229063051847378692168898519285300707935827123601502976208505215626140469032928127327716523334145187363473092888511379963379981035453960264258863799156963029491191395101348823967391867077721073997261129338923216242908558768513019738712186393929786083622427221913374443857869952300060292433691187019300777243503324045833535187006767253481680559221679591865183215073173963450935715179598477853187298628314332956642050634314854889830383457922239160879240037889963981476546275532365459036476327030254014748805153721413786271110390406531229833745066397553347213965428667064584604448190374738617282377908804199610237610772766686329018746912655026917364487310266640821355785282760507555585788802372152782601802971436810101310477959058520971605172747389797669392842483826331260247601957344167582353358945208218253069368418944196546951658525517918362974906871748362799790110388753965811539317002314908119905396643107862170035293967569088893726095876290790985120647879070069451181268776595713183360785191734495144046535218612863263646014399399795007332887329825831769668059943059034536054673345827209378912374776932506286853174083287329366389181550356156071472510040363434645579300413326500910916808748122924359874138058889947467547329556682402598048878180241419145645477999679107649230994197475914649298297943680900310457517317514557053017219270545290991906055575612115039870392530919891916043180522158901332301577577042813318999409744460014160951387636085521562667764118472491672268489738194029415335236504575300060236635255394468884018876120710041823287146883310252426838086192702758124648278206966238863331544099973000826537240525492917321518215725799001192646260247355750353210366506497283567091608626423078199500721730234000319542184505553177162506172227538299761474101037472883900511370325834095298262878164530809392673894283375742225044191594152705851402133372117321884167359143305411224300003335808876830874222433329345334947807749237227635203227339022253022945938881945436030548829005381044920717456599897072043883047841970739353305844221490556697014976954309651903865156594866165452522818694369930594439529027468848106033636342310682531778320558423016210262733214936078440034418642409500249109228657185983895629856854986269481613371092513449206445627912514308870699973224485391476933979428178926987677105260290294117999506654877665384851556013500154025058692493768078134877105870284337171835535629704658265094314945286080042587368870474494852963014626672027682414236383516089473427401027132330525434718470720050785087051065354166220248318062757034206021549212101655065586554266520905039556801959278965884218820295292467509468911248054917247159669706288590535039333928825258545962200867922514359064327907362845845035841781061191391948017801277089315731173701659279298535778430242106120976070879111668903719414247342915683326148601715106873227942073385661626763031114445656855508994649964001370884431367242186507119247238165746311206466158177772146855635749292918184489899890891436239103391682913081117521024195118144279994071655058895409548320499825193453893757987597322214460831492137735768271175595293275731889876096668618597794307174527606615071522102992711004177513276759238987376490356327019667674432703891776301590003083629787181704096795668030854500429472088006044780632582240845739277406837472642682598142065982456003966256028915195553008988929559100077791051425382719732488674391103624078065071735049263085569440315556976312608659124342045744246189765366841007488383390333303132116077488540191615741342549079837940169738829328983327732716570261981704326874604746241679858341533001153039134020545860191622151074789987043626634522628557647147351299944669694992677984257531686666019649005195127921778208582820847075989295268105809696911192037737667882791625285732943253759053945918198597641708536442789357735435973463787453362292507656295288824632373781205707254757134439522155190347598966404644675788037536762558144054536462393105462286960607584966963995807779038255776414124469070696819477496520560888420279020983220447026713277811068458566944524746586889565168316624612500485627175885625359526817666922884293871144082654071848796541192840896061218395926132045438877338005892698963073172067653334647442050184122946894476066043887708529048448497620765855859367435398893511189314272226439898458498774152633270941984406383289751254815126917450768463838327699296138568452346626984603382705403784202301657906535886166122416247285833324053257285138217186114970705221633266366749734191903111822111841760146796210279839323234134848667804081550572555360565289328661432942693438472139074004400851502158703806198499545748984763927536981501351494208077906667968874422172853153095768036643952698875400674429497517991616215591547341910390811709564490531010633252954685420168551055401356619776253473004408794452504024420818747061846565610044810527274517692829209047731257823559660998610658937117500969915416945351575194254055529059675590951698402051914168881076387146732744637314265175156442170390887362156504817643914692309322746320346974046275269525932841149018405359598234286593159335094761792603955374028297082171295544397102092146707357117936585961439468662584101308960167996896261806080264525505832628694015322455261529283299959391628924527925940720763003559442436521949081705781642072304136663437206072290370239870129938666665682507205592575354878655444012136670458587750725838462149761918438202601500188865272555879622380641672999535808324897766257477019983839772781255251376585106008281681924582743221423465265966789796878931443742253252366152797562442799149261868351416718518782702859062791320152909444010074017252138773302297628825726437370112021106905711284565285620027564850206666048452499642610479409749833456357994132193779708116187174289537354434425148556044858912040936769078283524190870920558244574786442187262868216660871487978669400123622684292760400027147394027444143249081113618887869812499927262460727578769838121195052028694721110011800962942867681335577081202371126334470240004924512990223548168776873903680860953047698945039618602115136779550523723588474392829143346677258461433628649492842782729800525270687155225777923773652812138062379685721250251381735748337000104849679254110270045358563476558043242511023366187959161357139407881207541934194294047136648126291442423549647282126572911082065845207363082372680918362440116161359675272972495940242043663894418558911875437917512118299723822328889453681761557033259688117828887746660697480456038714047391871594318232788054596693741027407960662566666366115242761098648040801050561027728066969684859655157708761711423769254624125008472738033592711385617900090803602121917311400824281671837653682525807301813130070064012291708228685670998937520241732920109982181460366634951889028495498637379156602582235114895385157883777862894745221321935586535868356210670668194922981392538609552776897150130569773803209028591652147083181478471037908059073441563218941574602278546153065696285708464281090615310287527004530574069265463926973269739956759143913732196276783713045576486045390446235777166999248718191297238255626299989475068744690978167040150390277202471856210422185248627475274769423163818015321895026516277602355227390422784676037969076316322270464071028453396649399974245631736381474791039910837270888555181147159654501193809916199428342080213778913074470239926909948237591359306253013677150308320318949245930909706255464026089339569301646384017047602689916872407148715828644078402911620531620625460668473181711813993378109056678371901681117780153308353382994859481285353816292706464270666974171233152906649281438559990999663792169837577898667307247054539139469602626456117055062279137330840887537201989997684558794967392941456170291003644279542127988729007846537504961515773526485047571729097313808364645390684970834915837500158236540106690785890932207656947674010177909820055760358978060121727393371280735841580339805021253533840144258943414510115044879136207085505903800837724468913552781602685550305536282265954970745347988601591488131271103083407775418981994478581982617819582665396689771459718999137166575435123241373785815535875741078031391076587273404378996914666660552636196903895510129763737152903350409912927992286166948865126862165325264468680481587936401105217081841433906568529537030819605731433515029359009034352615387587658416293924946274328594997339480273457726434624961032599915173268134118310159416246640649303678694281772193490144086438187376213917928887884148664478554642821274881896627212923712438729063736137531291983088376738462406118580537599101014557910587709570305879258272548562054828773045816101283113968253724795679783455384236283108036630179662599437837452593450179682944846285609479257758051442257899095439853130087347153798226347971419346985118904496779936888745390197639473607475120267103955347632506596410042407371552543481322719088247782515962402556108509186837731193210785100158222518698202037294156368853852461881770840307231741001399188491898597085634003151851470231858959572391977706440542489188021221923253399847906930228372613870880243502924766071333555267072063577197123390847371011715866567463340176376108527908840259506725792138332096626209362639130121503730632556305152625390269074170100224970918959259323065898969919582161012403694224130321616810516924833814830662278336979196895442509832260120894575830554406419581762509733527978283792226767584944997164380407339956829719617303989317094702343331396705612628303347876220122019746790513592714290040446858397996170977810116087044768951979010609027760823576622522270212155009139809029687014432002604388495325230696937483486816929030561747040889919565860753709098896540020489925723357481105138233878223813515361958777027287164426402281605860789785585928828623359603332377453636931689516436741388929956161578275994621037815585659405078135545507118142010300972369573990496735353961650263401673021785845426206008009340968870286513954808734200123396668221923394124069531680252384248572284822730277477789650779289855089704616347991796340437755647324659159361348557819257260068511819649100613887610262509882950925086781209921339443034648846704212581669707892452416614450927798677145479789169910020352206282804149949652515942094600365934638218675065959113864438944137119925768545176946692768336117079651925386966564300154983833388763619946837226314462694469435008376902681151631214158079051890447099975580363955363746980938359495561865811589363186407598040025669742414601745860433500279927515094899203953738226049824343957082321032952576939277824128086459188303281217007751960745285680518526026823796265688247293349151826828883042295917217292218914136093491264929741703194618646542750854888366809017764923410287298467891897723070144297498480542284053608734950971230475293226067717966130390388355616461334797577412807546918981158465681317206967327328048724838184326063193836127898624135037105150678996630278393168811227405746320265787334609644042583006609239465645905217858512370527244720886844621620187918295285455698729587708372353758093009162472998978962077026089631378578374911836322194200277968357075701702066988554039312051477334427531704337403201435634372469716338436335607689293627922803394287429240504516086430577488595687811295452905285579666016380914417529522715347902348192175559952017257138972619349142707063845001867982692859574784398099211056899834116901089234565989869593712852376875291736724757830145191070825079982811416072278909019824916230249258580462091743856771709279804240766569383647119417416957076268777334933644107820935025480790719368798318625278316166566110384837646829072778459133169072538453588019682761648225761743284954179412925153529715557534836032481180839299753188477793866897365785144919151104766713202695717648599650450392810383677256982203288707422743927729477508759734663340410623480267162606859336978682607653204908674619652629019119593631169848501834037773637350542574248009498743867280569375669486444980109327941763243980864419174400255009228954962981734422675037878133805031324596671133411693311728166403721957930774340437865144674233026902433384946110656287523149843350031540162570389855293643181641104218242257792796422593478603263764673735962253832546772564597390909616194116249579516810215996377604442403456928218795535332446319295813624036247044116264982730960810643378848216692879529183904449760808716117898034611572835725392874631855181020587618006721396262841020546448411019970663628774940444907385156606517023645610009928349464042380377446153615266478533352261910350710764563008425454254218205282495313674733077475612798741443948149470621923792849388740083530442996203847889299011098873097583053013748874584220981679521053648451705486950148274925504958622650653364262792929043049597074400118792489040859533695064729819512167148996422076454010227644132276859997188626897056032785840660742294998170361440776809335240603359345073839881909411347236713438344158276939790781655288184832112626857441048447016406168683273729405245941032893934100115778058776622178186591677515166237132197557753645261868702277497550992580587628712779581993040916995617515539623147798879723089908547140350294923706996223127024525056475680132902743205890138312347788976120575201736002991164432746864527333916379145472669234786696321885153333077365131921444515039170402602461831203671862172234518234323176185262597087434683373898557546550328174202288780614058878344805622650670322193296759455613593493797943619509427946489184346596280817097704011038264489312590141179256539614870061714498732641906763388975976330180180730109020771127937269629547863660256515521213957828709768403974600412468835356754155854723579220806445410758248707960891854678023996017227644601553040421088068460475225528294056586239201545608209534127572648268529507455315030162826494633207648804608770997438110415152432189956069883816567497880057037974663429270180338333652284640336510816327723831643722300682315592973274202809429923826188146327571515795516307692877772463255631787338514968312187544852018922315225030878695038050846272026690283293668373194581649827935651438295793183965668435345487740788792524092792038489512309010987649670553621974607433560174575083554004809892907214881754976649675113150550508004410488921825183868431146800381547163707413983892636144375951064786243258246204097487334691990726748642975950532706875752989446747691463492328686155278927765340806141621410814578526287663032404170943050302741396533982554621643154762122364846574156583949724470437626974975335108002254896073525113859283172566113512179553348886884989178402999850730371480201109194292919607789133613842526753322339624954534379695325560304350043945253622199229030012891095436655699657416197064206987660081040893346152582380407410442426728540377201806147585984737281224738898818019644573343871893508583621995414235737724725735284912967571115032145630191696522349962040202632085221374744897409624757992819691487089895003111633546003153113860943352220645305285147977494320419604575131297843463348398504937556208256738800284242039942607361369218122289163054717398845080335192511598417287308857484057173662014795818689489114496840359308071870758466024261939259943685202091478008495674094524693688465153782223716798360670226162632105210097793880203156473263284142355084036507800643029128103373690037434215909151171192096637991565681220275503476551340162937422071041757767060698205823724680552677659839381306064036272011956184613066715183217858918308881610206809003361561702724297255487273231118593532847445028972350782269387705220601084282674552463349779927407151023534103256488966497843417498106318549187410432787718666981123259499254586463486640133576069957175181188026739119681459630764817903448485273164242002437653989356797883501976321254554953267265685551386133727517742420024965130717900500455802611889028902899616254904049098338516450522618478418190876868683454399733810890050441903612319330734104676017263785561075068859383379415637447483958133741650335258965413806559356583790048005721186361617581781812185121503749992071661840401701138102383485418103705442120053109468101314883056018243009565168138874867220922946302122546782104828769954858033619889629318046417891000548448638381273126385615672532922613939546947074851191565326335255883938017320647136423113280846874230586392237329581478036700793467112067476282128769873391861430197347646139144340670103302935656140988031913565649688259647765342562025977372518346062345537846413206165722740644458477877665066346918875965717206267895640530368314371135792541480652108470618902468080063345175296204820056274667663782780279872385292613078264505076072924249311013091021100839451288294226108080684083897165424950738252761543468503434118889302099451575106605821643884263392859656823359424726230050335336239099843943967957513219921057216149673596893425210673195527196898871741290862327660048053207194759657641159086783087099642440542137233429323568869840915140016001670101203013549006234448567437011252914323497040024956249461416459427992740588481817974580381971976373090259873289732204118203577926794939757278643013294705968143034354943402828422670161060759173420216212106845830852215034838215185459880673603061453849496644801957277616109854611009669249997853817869259960138079789195996423876835321483944946665653485929328946744801229695822319557090932096323029488834378217939720722281417543255124085642279392907885363524226107801568189657760538340902675101054663402305333894186030587405331760330701741751940905010869736450689073564383928630798278281624385712008600777520959137763338627298274159760545971722878768891507110831984599228986800371032750691846770948597116279645715397583958700007549022310109613131893817500999591255140982401088009731878486972451253865271969972930623137508433681952012891325710554624652798625163409395388112664465042902030835028506923915157377158858842545987645453654436120298818788498752077797791835130372864866700296674907451570767241167475888318475795642281057176317053641619775177827449214923262498650832688634979855160878104096143150501248045092703751143748691953886109268516886524928032628541980723900196925769662392638493620720783612941979677329077204350245552105206776301181935507122860891524029422704642974111179061382233792584909800119057000872916518962390108323208471212436404473573302907934119396448594509009232032128600659276702182070630947157412848801434774696948585989841055941073779424824887355341184375804271567249539177324769247756952485537928631353927145740675919245647960488122489744061839313613361828462339271490818446200815552303361498011800716981234510292417438674513994282784642129393020628539484263794804427800640132717548865050821366830974022051727043838278429064189193782531913115455433108876095836242291617596602881547670949680489380595213509585936805586710501800225641823013280209515318833250082183394508775766865068172425931909953639169021719928667917776149126209500060997490503166392321404664854320044001873038597006856723424426378310353786094458719850960456442171537513972566022764267894719880180279785176837585348938550507302437871564607332412482005050056546678581788695303559549828720110646080422634709312579391594281072416534869383691383959422454861161695714778369916563550074478662616646298912684250952679727065561851913488408902714165987849599182514074024663552973418589572250952388901533613592737545062283619086743852723871124420131398907414229775248401160355585609070574970004095092945011617434754908623583475550844372855789011481132390684593781273000243355871821080945284902423872270893302047737526537285938770650667363364834214379948137206360230472293716131341285928345022946504155963452818155464851744825138701828777150755232690380043209351956139363852754259069069472683280532960517249540723365215156892698473677382782295804268177553894670436470351356430943990199296491591635052002794230956141226722255921661800609566553103461068486893898241588708124611943895142377993655103998768993090134581885044229942919190329790638906034300959577848749857767120567059470596384544841371202730010777541679929434216845267334774632373160716408073481114169925462381583369416173862847490273181993683479075570531878798836822330926835447788362273338429310239406063445805020939497903531238606811247638988543983932805603506332737877927906816794880718165914448651194318328363851809656173681040787968397131984414591096011806255941135812013411699691331155552631243310116431435030416940446141785255865359235354477389308585711778874839584052376567680131279768850434996401241121570446292295893912761331308569078301093814739935504018816447343485604005107478345130304702135604611976888069222866412491686057549871063267260054400808239949039743835235475252524091671464997282766251471239757671325041272785436778052250931777134886355367429212907111658482587629293930123354543950974664210102621311142439189701593760957305869667272515281618293751925073819683136815702992725252800531492162407254932647056105081367828202492008296610131294138298124107362509417892049386722843763069813032187172843526967746884820255845978717204057475043037265371100686972341606774358056699197782875165637306363012694243729387989929383135231836828225322953477346671214338646415618713275872921331065018378311458378317954924579634056475710692557900581990925250958659851942382175854474583943580847970451598568930200559791185338322671629393020532159073753812610378177283244005801805573959407915578067729769112942654209115039703460524862189096032704977115736019856076970334663492561617929442664189150450059810089581700907413222475162940041097654094497199852450379497911902092820049396581035977952099605631802993236514174059048562637926836876957228627300708457199650944464885286474382252718234430583622665688078128456896278649665349716032456640656446862778698217145541308587078946521894586985597903957806116252026300592246722482878694275890522801763623128279524132940936512585035463481709739712438944525917440486817563764432609628286298841570431702439888109340283152517827264438854707546769549650674003711549424455509644074659717524278441055665205174736233042815546470310187759183878605262996350150311001840811775015841447943064814447712696694951276226233476417113890701128487876598590182432850659667291665807935011606266032394734957455676333377824915430480939543554924719821151420022241368110679166848311277011010447368088032332466724208319633459289190917507005412862282337531215795421134990351169593396498118017600895221327357974824488939168711593348462670252221186231834647216200787360623321924188950019050144995660767973337791837243760492841100827850771118320540147158467071196406776550180474758428384224720634814255583667828690011486411839736859071515315324258499400721450780825727707492006365171128275682503817037711635056439545072999935342641419242880868018977321017979547650039283031863749450920848487985229765637875158932641804631079137934501196197257441246310050630621043438158232023632214606181742332625587554130391275690023684912416357839233855243890000300186251370344554864036202848995205684090969816910010883799940878610037168476655814134646894556452511795878263658874041098684175825990833317759881860537796679859211623556204583134601715524591372511735353367601593213499300080121170491873939309344609557277237204234107112338744122114037921931969698998420135566563403438209837081414283832014535009142866056281111246455964686622234835304863844405706742479468650589003332553335111233559401615161084977524513899358571042203539995723370959516512892714525069424154235207531587765796306141825958699816975973576531034124145282938623872058725947351695540788975078336456932025454786749448988493854926118008537889801580555132036184396499232036493888665125295945753580967138163943430052003488749013923842235253223028940901272027528335502946322200757831918025493047865677510768870334665215576684489412139406728131769915226963200720624934490157851312428900967233468072856429103384686418707374246200535095476802734612384525209234050878414038366742318557213764682047530322574738975386368475779305736922612658923897316375384417242511730235871599464594236845963608067089576696400798616608263198585178544461897933271438462216570704054444017309638917980467012109734481447892824269502480333068280789378379895490157654860828909649436478642459172288014103094890513760293388714804607076709348748171931057218800289808272514631107585563201138684087302382327242198058279192268272690807167348712859009462382103611350144014040880807393116563116951510354963680803623281538016981368556057018531984130894897758768543840304729050748277905587208159368296200092989143390863739073264814554289877340512702508554009128221412994570900021016294536640371274628698287710226391616738417307592044643984373620050178733099232260179726852971833259043590002311954370888097169112650651078353327589620298606558012503213643225006479146139375760310409095875229457866786313033855592606868391035413073998698046466745422142153355769346160273608742523212530457730029104504172746431510333120885585166891087307662064635587766587479221403064146983251948216533527712294782851903693768568215609957877563452211507409943141427036188974403279597797325768464503093438204588119312823137188238176404050934550285399989720940164948635902261101789405187204830364285572629427927900024285893356199182677207000064344320120141415799374785153505461795353566069711350740682713376975029203703279174870104531073405380659539410514902077635551674513449491339465401260062460296111218884243348289571534372488463806068298026610737119598661757156944577944020739981020205739993184235529552782195175179273469422914955959978839597110907654886812327153414388597905854081057636660152550149793087585108261966962472058446878119561772768281701937196222570608583058026564612712344625566633410388546412800627218065115304173788235501866123680886512027773766771024857741304523308782735378513436806675387230938868972282390023878079918711606320043413386287050459058355783942702887329213634459327552919471713659588165691284960693852560120089785090120167812263665473132114722553752736177476913704387446205338051297486226673801002201338459773636227230264233986442541711221523600652476807678990674394790440034417417718436821203385006429690659458389282088679264029367288743679174706412880759531553052892236142319598846267547491813639351877260359586350617059158976757916090945415950758364155515050703294071439752535662022752988254236783305382084539634150903979175070165480612149654447084182253654850932832743303755310324239173940696937625885146676643690016128084682382474841600343174163519320778447359509629993400357114596570510650002430039679574931753275109531458465690866153991328650993455991988247838810082502292846117325033146805623671185782736199733851355733073924665325037493139147441306621502259883509740661366984828606578495524470233798538149107737071040375667614163132751711421290820663147455356928968848786897036310986892459541785201692630668854910777324570343786061753138629808275542425057982009579255625237745523558620667695022261337851701464073253769542988534297831988562237915789582635861063301808725564024399774738110184103021684092069369094534823453406791590991290116072154512831211195303132950126705104993827559945238216906199883844917623951573383507553799189203214864099544872857471522121544999561224479544539430019205205030452906421659686912128339709946246297969483674151986932394793699997668314695457205224511757050383519385693913421045603031256773227508658755187271856104155715452640202204624722632087007319871119635885091337533160346915701107840858139051897966397291592126254613381906028657321129107925767239304145928235593153616462044318612900296211782389657427557470552972661559973509051001890917753515975462532046129731883375672748519116471883024932539921321442865105880209706036549641424759312765727776941711537364041542139021035249823698502442560096860375579275197466897240642384116743645979071656025857315420890082210750699154276476520337415737855444898679754912170529811890629248791797681934516512237831945764066320584574668734737163806641846128582473244743484997376648556707001672749993716693866144079308992990722317783354910155354994975905264625137824838098036050497242972852410356018075070296667005385554489057042365311786149316016306493187238750613321572610433661537332207107046893475831264812699904997509244904772726246568985243056717717582524294438302978555287639434133500321214183519518256568371099955503338935759242554915147229766518437430407083100358203968048036316244546534749833082112176437664249106644404324764778193123083927741104831875735995258579948700654081883884793500900304470273234896282874614198643714827066575241698545055084978294102918901632970742479106029263925167610878621105812007358390243097092822470884515325168447189960880718388293604549331156526345645572506608572474047424974225120287478698351825044274918155303231932333176498591620074007053046197166189629232943728132331563805704033327182038031672888104718659770929714833847348068795371531283764430021188422282065688444129586213195963494354147452885615964810378163752470674473978537627392564481463294767397122917722678694253728870786260449979448584391284583335290170657240752340109588472020980996059077774919342872644656385914652485885338012614726396082144651791096667583776710391801731695285476537214525900786357337243491330748061590434150109914929819775955020323070001565813998509783271763301648757757676333308015876668986767128232398559801045682254468583178830296708353206343191562826806686919119921277938032061284962884254819082975338005701490006805435476039566713637852367086108269120957664830910014059588141247386171754919859147986529383458361625216255363958732603407053904184767918108758513638913873267711585882576129710196557094570222511385348097274412261027245857423502802396486447160897139556111457068963358720938772468167881618411278678991480138836356800781485825231055969652499687056777502010716330888264430641916972256025867170864083674576499226390567000123453961635192123794205402675861918080542100091602311901071773460498020698067165344239002957750563074703839681721362204995994138297873335270903363451326903457670275358181421339131474445120616457487885428409537303556123210299996522694209055902204921613522646101343730196764636369394107174746599732297635610212474285780198859485229354817988200412427474836873500097903975035192488354759910057001389208877499126115822731364030990284523127931503748519429617359960641934736054848735542758637871767698510800146961903200520421932585057441253493196303818205870368037892843296943404968072503393892826674032366029406627528797874363790107028635942380435809308374371498632619059026267533195802231396971829665667551888129521431860869217382210214767405696146632100740245916155893228514473808790555546184028630843246508148496932117559994826298676037478457827732244286422206641984449287846829953013832511315122821777354402354598888496733079421475096988955459149481014618349774928226284878903513004321025575000443045900180828229311514881547927585299941894178168731290731370540083975153075637080183332429631279951662750420894688559832765900633083058479974779327709928622334647825331077517944308783740553338675398512578614357542550702678799438971396276912094894734270675781229764071506500634598117690493108613535802921650718003431603668250887711594671997449417552981352277909571958476790457905809258022771583456023752448716604394880654486100511123821673612014352412854682107264309740280814700562116731947936251477209207481040197910831574931791422146532430668563014002017877399508431925586534908838691500020834380039360492931782886670749819355123139459901536863886183383869961838358617735522447197888319216661513171369485123212838442959845972362806723429434380633857598187499706333523207720480586577320705052161105663088335704108366171539890795640689615069448978444444183670248838842478106208370430749564112546454900680962129340629244642531694749331391391045182014372595579599517004876588761662037091147264601922522503686877793283656566020040041268506124510861087012273207862347727427681071168860520271218477170889329388595321072309047167510241541406634549295631440267055165306964507698525428166483750152908297097764513958550115144308069252629525373679230814719568794387263326765247756334339131324558604872701906307288779942020573682155257048648841198772901324259214600280434011353121467818410257880997615025702634396204331682770418589754435130253875974755900548918793172702207247229673494429983911342380387815652957567137641311061080293723262606485279725637610594036424574271643535421850778888946980601610997534383394960268541681296570620845601348876557453838275565816405790700930507830381272048350848950213307241005898095537163134912401169149360451174655738118715706812133901423946346811099452178489588361787522430755193442443747840336487181440492104933309913047198305909656650306501718710413001915600103642949489011513178752575232864394934074192554916358335797355831561061304694234590487269041806264557729602045997547661886223742086250639607350844790234099495441784900892358963528976560675561089569213962583745512291904171656250833840418738292885965644052964688187389770610400142722623587576806851343608756907781888997770730492787941954505182221043266180055634430381778682514014413049049754806795764289030883773334852222300874490325602374588236704635334685597584351629755018648673358958335354907536397784865381653273111707481922710660662977659941853711310181779698921477049781056207816959130819190726178323884167903296538487664823457107234169351729292520359053677809149766425360713301700206243219556693849166629527644951809331577333989770240719285893995311936921207196430787995586135051726614787198593114335624799592977860448247670252011410394983556735219372629412754044284708701274672408986874502165868634728815374376780188475599971507110956113895788514073847468932736896371615048322776737915165048385570391998855122070688519706187613776971660866712629012740158822043313175885485075855638611424144157561773571944679647212200516647120028243997356092784275651891311317881052538492306076166049383615383004871206155293151680450824736914483415547849563519302734169252760568310298729484423084439827541239917468258011674062489310281662936056102687174724088453327424502487185189246297162540603675956230143265107739963685382844024512664673758344727724252477583452576459786450741907798408442833099720486107370299121763764697348753826365741668609379113048745455734499686017503724682796827015600030942215900938186566975490680560848832836544319432084407754956430166918684796516228039315983147542728921212163599968891389642613107409878559047063190470131450231605352048151664082223572965703281153833073306746437602280625243086150873279809163454618354773391895032185753330973916418354796981553296075453447725623805723619715995511265796435939372010884721787750582520319064218309908561442304911114795611518004780185207261024051432020899378229755738834625121109788564966852633919834516334449897436645885967125487878807870712384141349691483265088833909461187859992797806239839017735415282858061683712309375592327096818902121475680953898465003398768554455062164405758307651240078520335979619511305301260185711851397864829837528409208301899149019387049166989578530027982757626003349760030944172741797105753396271280469801295106597618256650645543509555538509219225262835085496805304664399202335128091842534960980943123489904592712748683574680598351741644112919346320237452622277681284396826225541873555576010426723288224551389627211219777912706403732147567350998619173887032639156364048403225063660666914338267710927807808098499649256312570843157653960426539291461057860855321611532414455798564826349899040551722011690557809528526148691240278508950988810151933563296624327059885923623368079426038229498722089735871974638013441604282242353999583265226522473257797958025346972375786779674054341000454367975393541734826456147142383616512748323846622172158594207728892310666698266560957929644267645599124980610206413470524297705902143228650993991589489241666787602462944874986211082241961750099828968588596205874896158349773002231913052578095130628071253759459140680057856317520601557994873033538243026994335278258722712774347949893724119615035589964739921663193540598583029118057956952753589674273112111358285966431654049292799308679140836593219412429755844225675884578019821256111593822746178214022062685481704914173347147064413527466722678724538364487072454186517079543018734446397908949063678032439037718844592175398043504208828147093974010606944394100139017445236645823706162379153492767399704073324692409115297852896096780064341886934607738441872443944789653509996023177595990064306134598384944051906500912468661659363030298659924003202228058205989706381787496044323994120624754663471392504270029143388943806173449610016214367607064736109729136531652369738509764073947906980901523671767567619131931331530897231304191896246462536977750201936021093410482548352765575150537190322367168828288213693353304826511205805111761098859144539919087813998348866192801490965195287812618627055314243397039813278739252694015348548352973051211930177643605165975167299922522354706689910833219583861594471740697420634262802253350901137969442437208507162661570857537995774590967803413820555864307725261828809544633719644931353239774011151541029286924214309118568766802167651264233755981200033714224764275486408882155548439487281608401379351229585300451785517093141416978447242567475255612624524579157388337981303859815312152180461448810325762820826929529903756402208317589543818432151161131814323169116042208585244473463610951063168741658189061130687695617595170253588998646016381255723136871526789110409247791899291792545983187273768233287681862314514871177746358407625086511343535075996594036607206962440110266997308524998331464002660470513254780644341370415716728716556382983553129414476986197718431951057558657932825348130247779621342694081237361105643522160084536273780208025230716931449247198820197714874021372260145616683400423155120602677386095352398150750499292601860182822884100192200267476218156738498988099100219882155095179975529319733745291737135788493640910417915686637272545393846662819356510415904250932963088353254184725794963600805217996152772735212161633812522921641337627107183293965819966810393009024543821824874815932482774288970852387398408041471383932855253610497412579347138964839333354997492220095464400625096507420535041886388821724401144322193520042295761790206844517249540344809985362500046525588705870678268981146611534569737526116610412711977190331291259509160798751959254401822193369983283932691635938492559106022970692089798130409983749087761010259839882935641940381898128945004176176762417340188982162847680892730615253564803406813550551010179503623336579675888981899736453536373224489053681103671615745654280097852405765928083493043012597706088246201764518994903141241372778248035285868181586564441975475008464613990755981119389868166841357340276039031304784062649802658672934155485798393991977643825214871154540876713822147734081539302644557139403571405732251388085893766258307243545763895256591819128241338038854434660242023099990687201787892583585390257047543079415736847339050239888788186868373314686549478619067980634943902782302155949499448863079064958698573928147842114179316946752235147587939086990821182698322750975348797424817165060667479107397344986538377079795907549986673575943917040101840747945811831348809598571702507482642580809101279286617297240735922548632191844376213824934403716417526247275518648776093201292162473797056686350081602485505771669206283755472112854615980542537229953041281651114156674692529355219379515837586785301037599400594862264851992892760640698364559052062250229073367624777191880770245380471698725102302624471852922108817549373554506026701444309471463358084488763431939520427869893300213257684361629492870183176215044560510114838271425417730343084839340656929819773841500340796540521067298288784592536050447773173564354115949500390219820646297269784360526701820031343283949784174576241290759998330265447799530674365332350766116202919114099380725457069318575906842590299428126332828535444973288478802713640244420420175770982895465049540926601886759572970991494209118739020326417888988327509183317160200470682003555682776198407590808303719612320928532305990313385567697084862081213020338748627723117833642784412014284198178659035775507434006443171907591062236635745852673194123127722761455126026947768430992996578786413868340640887089092311243983438124273086020335870184321841178857748747761215691282033991034276041315816246242088832483633594330853246864191803088669402991748426202463815909205071921157714361391474256296181482119082607881978520641568258275106095709478360065382006767400338835968385357472433256989072959692217524709488382849882336719246588522693772814771056293702048868653670953996147899590661784871968822225836090408960307813739843477189924836558395156663354435942050200591418060417885818291599770764746982377365183373611047500322382797420574859412087511687946422208865915992853564753992796724962020067640599162505947034503898636240145216958432098992778974223123509995277408168923645452382197566268627430118878954656835248693049018134925294296466203765131619101075835303677707968206477154618407197727317035146051136270856617510101149891442124262014603947209882032374674004708176484121602734056539491253289099023576330851094078605228355050008720058440282200468419227407984184767534146965207700538121081665206945999316683801555980358630983196195476577554006737923063535006294824566271759208842561945766533087414287321315100880601439716687158016715130719666134111582663136580966949902732175876145291743889325155085658540723054553173877113633616133192023356408010279766872457845591022761773035930416567602756216044632682089852994845009543580754046127275801793915817384480301333454796968913379902811812988993724520006711092851414271134077114570253022019442228981354603394939948646281067915327216243322270088564494407778141190781416655110222357868993658948235465543135399716701035655245953138945438182790569127341140718460871190446695549305095777265891670511604366109766062806684653511423775402511023948074808866114370087108949032911921169913215281469801745094270701312505403103633862891729263098164376876712679439711796575578090108460024889685124293881083324924711448910800514032905868173079445003526473031074311049837753709259135131744702993273526441115709530991814364137801259227045121696059665401013623089013436196028352634570616027918592061606348338843473326740830212970550037858797941326156558657910352455316281613621767134769486285733705885356078704670068128025177464652121476036571922443610617962479122347176865354753232243381847978928152634939529120394053376706964299541871203926025446717714273188198889952231082388840386230664418459828868308758958130295178635796378875092497629107523381963614906728818705983839528853303173371655004863112802010784763267688959194157508966279530619722464235169500771033039397873585377772004814222929238798636440659826134889308342537713986853867785897100414962351191103015377131016887112978084889639248099116019043541743249650984197414849569859041282998495552329759051212586886073547012293685769405333955240476807295445226665595722123998059303641493076556321967747141831843543107848160950304839077780026149366709900502006402462703734694267557622857288502662660910240169692596268821724530597044268891259609097545994986792554381646228286349680791247491927143005774436000324715430289471345528885020656891663576671202725899527728818100841751821544930133118615643560413861798032301357059939448582709807470600926249332088829808359651361804427778402449509541218462527182018436663730057563046951723391214769764128889323177637437014675315438764865689666134999495650731434643913550679861413735608310258127759096863820705770108575766553122274784436758157583304614349302101360986575360802411674397665418851895063315880628725494951303195528830083230455944072658789738291312553925471590373767917131624670907467983437559429649572070614960304435276712686914710479044988380603287958861236683884722853148828932496948891592899461291457983224166807149975273930918042620257213279131500074415652364678625937836584113955501622166286356164362134514255511739251547401014634203765795771842866895533679101273583393171362864462096144069292634476882712789683772909871003952808546186344268754160422950796236842560151487945765539228435851443778657467333246070330780069709420992531914962656256743887555906571298065550747740485499681104466474508834314916296651222704431456858352195478856058117451738545330193407681221702148259758979694177177232560917602016146478050706472600363029956560796239246769540428151507871920813337610750374549748141695187963014261048784791817866489386977874126585434078479844212664893117304788746063128532488571009067446410420190768046697840482291211754762163037184802618913261858343368757765926121869485118325216202972753690919371871615781203730001023421269431115702123703606614522865234450754805632155241803192922221560828145747294539664506471602615661108066469922636222491841041606558471698021258346328365731474426350415418544082534141551281317000893689726378249254582611682576911415526122307455288656207237784265129706318593281469427137751552412278340569290648928577723125295120847101744259619600081810421723496327520885244565265196826620303316985415828295933013663942562872067638450292132933326178005351831722529373383142369269485136744967328377458490957897138954900373209528022404422711522336284183711704037264690825764531051686754766699565911163594035285635895067824253669614705677028360727485384819361033843448130103977198004426620314570437850725872191262348150222369348112180799039175919607166786765842160696941986442113630771416889248968173394007992713027239227505790635423719505988491110353222285249366957273847453785914807760390013705650864643644182140234210989786413950885760185815582401162435425041602264211848356764816831768827186302238183819327768088400270954503991865696740908518622708424091906156957768166367967600134926158760712162874072596433253655931461434027674795625364716468629519791300922206992862030460131337629759489188115731325299952977028861700013062601624341773037498089531806719519502767902974847726456981972348931836438036888949429750875584610974367497209393720349462813951028850779578578463314807520013758307041157534216308291613340242312838397122257875333657714225175232565079379741610379516758157936865471446689207994002542291675686725235205592381606451116089201973872001911423026658767345024973495799400380606378754500309516133967581822062771542186180114539771879896548516256350151392647181240966645144135731478859101694609237848845471522733809173251206298751593486340273445034886866264762853865662808477996430748996060823863157693773369782660976165655019774980160967266191744312077839027221043476107988348902220424212451149898478932168966967831337476320988052613318178478231253021035383389607113483212244696122299650151903781306662349365861334198218794125289969152038560194589864371965258662506037774757507011122395163942263012256006090998065416929703285575211869707137574461843948444442875685051803252046002243756024026041281229321370582490101374679993632741724756564376090368990656699777524593358091368755654083279672253047684053881410606165143479039655171228769545143898795747181475836724892068670587100701801157172453863567759584228293806689249407432220046025939017767934995901311180528739776866952449848750498874371784848857298267641722153908900163834363126164515756653494328580428973453323550252346980388005357540519713769144976286811577023474688056824863645736218766039300017651220414912678301348929931863759183533262931094186026694688138791850266789131433169514767984832645334893373079087971604572673061424833120406859369917463785695930002890919556026443217559451134907621069629373207652760921090453025358963952387940101290800400366731452934502661588490757208109703116046333863326101057123823705209325495915409292317246206249792706569279163617917443448438270716920100095315968859404199542535474665366191527636670952307688826510939312611568286772128722636697403449409460664654321174862670552567109731908646081390750461550760387961287236855968200306305898484870275542852854627690843982634473469695376480810688127135136612595406400810095736435416955680515675787578857683139563023551491094759758892764715357943304600907904659455282719182349129331699731711675243360476620929830453274326364559566075493874557055508312831923390430905230440865477604807834515296975407633719612125951293459283220818590593568532195927553496625844564918811467156315949228687631556188679952643327849241650843896946750100309304061379878503018251176982303048524898314748477565535465635624783660494208373859400605879159357641225266620823899237377582611834562437614101127192449723011887329024192689765013461113830902781590065519771172709834438547232861448270619474389990357251978456429515063060272832535447727856991045111059877135613863303975347630348147645547169092740173415016349636746194948113690631048004623712953732776578438680208474733035925777637761964188435597165542721543358883339495387903232263660193403384193620929549094791710845764919274265788274654512668470368845033294212162973536918129030617992688568069117547133288612385374750378396601282657827298804839751372186259866348637510393912105287255016710616150908218113025969843302857632002930675012610636624446627589859384640503643989194443133264783815708299695404644754887614851023444803610937095457711196983627304122598121486327050557935637919649560363746411231781194674989680269293269597349089304282699641660641171132042238516360371971406612333558510307415503944802173671416913792340043933650232147990773079481563089527138562649273206803713567509042455372406757541765159545431120927899105283638698477059960265009932201405723438456463940364340713533958571933420294951638620716780479446958684952968414621384477806339573175972234341513281052969963325304012439818122817348585440624264156153501515478324911009417584212160832857238122997476081188132315904307304588873641108519581820512278259428592813865670963053722288282886392432034392194135041533752679228545299087849053652198184911085124517093499958503649549028887799390576189076703846353347045950228845059265346627733380572500468726449575741043394012992320772532871133676967923673454952879810216142028954040662474154316329579852005972100724138295735717885685391103728545913214964570043481857471240316145471498601739619111893329677915615695784665476504865845861466613318370854654659704070723945281770347352943695371507627679105051712936147059418433138027635177708841386484845309336777576355880920257985328090147717010233649579952886435447010377427679276579293868631542539763639916196558103657107985839899215816657737464517062003333134120826747646902601541588427728989710322881227232194913350797790666036385867221984755663712322799937748434213641742593963429557962695304620790604407976484521956127318087120233573576749946563107607169920470847085124922302665684359266377272089351992132031709348528755592364126962404258705317327508708545447546300817835727518335405973981081408901870941395817030507009497785625912626756745318842195935864154061661128153776785261941082462180962010605982602505553564522037059730478293809399729777478019341079108271296106910633343254339170592765504844948358519497524814567607498913341884029242230646723926091825849551124819280693068728224553869400880536524690508947633112191026006437792889869871978384218021801116392241693315205375045208421246574770806464417814952822705278417493329812368191960594798452366868606852416843211054406083719027620980484310226694607658830370365553039175052617309790794240493671188824779395522628654416077272648078827992090070547858026453343119499032409764813215943074815521730441936395795780009827292162014283586566476539617090900132058452506130922857605991966390666214719150412764026163743015866259603603426763755924028811985211942184224336302761972994880796281180553155385879812202590408788392514115840990896600830675623585284226249354485551568020668966474892627698207477097976990417441447061116322450067239004328480417617061500379049681466466129381291372242103103844241552875389622229124570627490020666102974546352596778915103030521012519884772320846081619366153714787798822923843613976141011827845093592315815755920259793235641550054287994639097978270348176989906541437822578336521246295925898449354511886388753581147031015066414150671998119842881450203440661936726223056735363446228769545209032556042190607330831495697747100754971856193115899127737829578963498140953338974396578625665791137575560720010139067781902668032261912460816955079647365712291964875192185782924610261644812881092558092721026958792224405674048835622558650632207632899970797817427554756919538793922483339532830897967291331093118626991831502069351915465285061318479384132037260724235614574369682005571109529482175244433756145589753105818258993363141514001324641864181347891536455431602001020556582263902725993238512930829467466193984169829032297770628298768499726933067286154992118720628702112547895231462743048549714572349009108737111574780091770171876242931398987352564749461052821715429780880694416971761519593407463178349054356104082112503802913188166495732720410018190900977613743642067969561251196005865190392691872481632705947394667699073242052888756340092206123263164876060759138103711326979623190869112983546419157380918386767206855531465599324231082437448849271324659632059886936041320991441220612861719385078992113194297980029155812290319388060072678000966067918025279389352992187681371780351996117236694168138206192660606201547740645754394969588609629846481544784628028057740889198415906630408517156978730668043112861983308008165834363844624143963384062501186215938734237326467754085655601664358176877259938443700771753915124807935495850652254807410729270865060089614250074019652296916817076216964972919490614602499091291324327688741282540432283575144639974764565158673083903169609206323925422893526278551007913635906129677170655326382729304576205875575735765491399457910336874689839656379369908390988725465411446674005918343297612778416895772478563173094200198516437890527891430682679762241482156734077520738814819957752797039237779000967668916622143173311686724107950072367818899196240846685973827732910993672251962502970033349609267804972350524566543475388126014747618468489092748066462048765815251564794158991263717336595383388394583668559706803663529097059350275709909374224098158189024591066503556925504431836928301276667202899239010017706824199740276571259973091187970711327294642527538365139476826608199769851424253255316229424397017047276078076127983913971758912469853232005730052738159903363118563563382692390766417107065259645418124246092974722217916689755393330547501085355180166713863186834169522560373238543141054027413782603256539604551488633278229516667712991984243979908307374752064139071319538205541031832259915382140631685498910746767914079299263984792601578927141161058017564879291263551770105872558060346079706179136751588247431135285860597646751967977424264132459874547301719589022740904326908337779059803539302578819384091608751822503089434347549178793871645931904943821636324954786795282946971792927379999992690274306163354511567169932084550063499546015616498640819008013849242865323489162606516601661499302342019163448612534451631985065041855409640155019907507319971754875682501299103940359395565226841961474528694049192870375755300803174771007994242726601280258452878343890209652645214759308154588811705418408538569425855421057206586282861937712000944516109396344867638044860143763778157515017849479724383866207429945482835746182174939543597646251756801029178777998215650717606992151330144600270791684711706185634204358363841800025305422502115515750426217882532490613251403380102025037519384868668649942037893023965754582221916219347953620883225136864896364657009515950959498297529522277627388160236713783864107736225303881820681653434221584784878542820998576268920188614691812250540648194438653103251980119654915907581582557334637784327661434840600333031958591132942810162671234115633913743757290730915960762265076592106023229944815856357389685575843903352517285316497608686106495468809149255297041732495565041556059681386006280413250517923196021179943804067409060848353638475676986233680917149827981678733916893092936126377207380253351904882798509720424602856807060134793519305899554863639544851006694536040032034370798437809449640281352449742092441750141264291166837907155739218864539044710086530691412783536731176273040390250509989341078636690496356972710537993205902934401566303781998267834135539641012781978371778528423404118176927014412903346314154277778325913149141708965786139600968121350194596044907197634840287492154538071567297931842687842265091244909479412299782891183326956173253368927317538704722558486941346261916258367165459135822383298339179911351755116640487871493141732896558687330156154118510879590877205407098525886019285162434920940185060827402723755571024667578736456432816715957982305478680635327779676931015203501998984401412778184760817923267093132619606028439910078017031359820040015965767111716887458247845657500116202536573714696459236515850324991165903408635454843553412784138605406737915709794236061427178785457143159778411274257671573035383282885274631639878585258495644948720980246982826603198054292185715546009741113024571652773008943183160455038466912486889330739301873523183820233030691996533952709000472006887342585310240871552054385242598498312170483987709014406828825363908887505523561703811157601628051264249181579718377070994493377182286342032196055743576038606034892341976137476635582472065246509570371386532114506390930332229286814607600955182851929991527986402735373168445438401353030872020885073089544956370312162199592723752469457210466429371485936798136215025776382288877682356402602349848957298739795778385450108748590389014945248890046771831415941144801884587429974079275926593744823234573523014027351838786942594595029825791754352077711273662816718266115548620850414566346981502542645355440529696874511250167046317087300246607787349823652588454314782731630480828924976432111668061064223089910423366813216374429341727936333383575728172745182790666250469743277424649548195338016929101365519570787181959292239247112478189028065685454166586080232616014913772277909755570921213927399810477875776505479122202585116669075052265388662649404278496849179998007745348439390718720807948377801570209526080969919306050079581797514162027847587274947883216936769915823892549091678942188474037628540038738508768066330721160531263095936598756252470627383570085387871111457769690535739811976686227061926536950218219607931532941774621828719729264981490426150300230877731332188756255783262816462528249654899507600716693699965921158386895091704598495047312652356453748459345580839864772386261755933203652661730604272498846572242444664431057212739541279152824371906853699534861953894635323347518802425299735776936388342198311362003872687900426533011185849952031879042634091055960096686118489293768869186840000015103692004046884114199091723791806683020099173015133644180789330288714278753179606694758163565204090000079360892039048757823128672932264666408519530818061508961196180486403241768120407839111538310355635200684293319943102178238184276572455589991252682343205128392356090777006812148097796649781590810540158147370061847540752658461533093571169411397336180375938272064428687937363328373980813443212063674997395991951671779147537545238262234999714523176949609066363675159346433849407265270789995729453113218167834071197112638858496065713733221208857123347925515277002704591840109692176482917215951276430160071085911125651349292741878649498497688230597813794413153551354164003975320616572800571289477619380634241079870878509302087458826236539000986281371800189472436774836714454192903237008313176794662741139865750151352218654064002645664535998648931233106399219798667481888639800071749634932413333352217891491283167025033633566334008492446849834844282240307252812197551774398315682276968066413422242160225952884363473036104719805730959344192822528103430633130663518969852988214337125966150023517485511123032548816703548263661216269805579075647373915964894866230824891701566363721910178796201361991649991964190363932431133900898498684408808455574774458688418997224891425315869124642550388677414875302848731157518516665262728755519133881784159441991074689151516248618219481931426588605159920068164157764925322623736399384239234600329489618546310000810621604015968981883340762211430457417690639994642278662940635002011804752470703263335288828184075049716114866349617318182311921541490943484581883992843544719856225436657023716363723535308289912606905014732396884995493714119643087174961941453534304884642440293644812331112975170089388014971463215695913751922213247469275386029102145870174421400959178390849620417683319439498398788320763064618185120878064402295572424051809042641927898581884815723251394804107740124103956182352025925110678624512958023142846574014565040539218549732060791947373368244054770973991145734017999751620618870457403627326055885661015120041453200035988818865069376040745207372817136897960164410200663758403987087139612036468353249748909395758297870187640419989336398701632438405794084492471944408127896822259846962495055961609945485204641359174397880894927660937634061502859926278049103196164206463146142705877252844201673455460972476084305981538164495111641262142738612342362104268635317350786354866575655164731856185223585414939226522677022332684637602488118173437649421467553278089303920763887369186520005133805065479735912537127280202581931311284669479212819376207403765183196370705117551833913500062620368309967504536626946351041923639933456853674066953347834386589276915372371326765252351149560403150505169834574331422033475210199360919773346157674906500717246104622763225803728193107589951775431624245614895411443043854053869909369215785403935784935864929203388519511299191312656494751065798365309273333018545269725999005637953523618211312917045932777571280794282207685796943621514674568009766513002391648358380680302594421887346672885008956156816490026137948874974281891359606439716395540582609056694603159781710353743557783242142140838470599473963352569614964096430036786012468152924853040033678560039618266812055545009429961852943448499009816934956642755788044394306374434067561752541903107173340399985598514829175670965978473682232927932234319188516647410451107861706123874779680242644395558998095772678710439455428832616919035944842887605781774410251088844544746512500275372968353045387777400611840184922734820459017944732992539773186942709963441032232631049100813969455213636016902998369322273410228434345119226987748778100932792192370750852383831680848943466996653010113004849770204951526864893277875402971591130461307808628862591038267236489492146200340730226279374792379506141300155792491069199511771450369057813328513161071166754614018581299621056056788466835932544795337584643335264611693055915647666985853978123478211221399679096145770708308974213578059851814147538952858108935488657453806328938745253805741346185640097529120521897766784557129455700881615805752736225446456335863895333974378256105139907590455793892428868792665741665358627388256384142781498727392930125463381279412706915676608753011559698753292838539915617894353376614355530772448904837457543091390194272286498372399761472994700884238967008296245930589267619765744255581274638140011458968341608974521230843321331072718984901379900149868511022174794688062289999783319272246678850901387835445953370788790508763421939463167813284801246625054544248818014623344501948879992978602807460468148854856897418026090364638529768810896522613566611636905447089015182942391104428853994776614098923838953360919566732140767460953751378196566748269181290781864039785050810420040952722300952325333927997518023225538687703270740930686265913683529977295166109007741564525419350884277781133800887115003033646957094858368412546669580079176155110729257432355697300370034438612117725899124382792269689837022308885192555658426737164590911679227592597646714138277847343145308891420968053157131223879149521876907270115691197219856684458481645476711198077214119074075391441557829776964730720855581975602174532873008044011008847327239262857240495659607665485962674463258640889488428595672827502635036499757505060459958252079616555097552997945933180978350248303763926282739527088888831529645551959019815259525342497055397684427871572549802958073687646194480165302201778078606233556540464903352570938136528037336621675619026502002730336457705944775773744462993289007639330321191044943917394133266911649554850228432574258689498919813435355985955161565780245956361365397375745323953950184084279040683862445186125572757344490607763134464601948613149269774541060003875526122181099540073117383205412239894256389178474074262230129951147792834520948279187946318114748419973747296416965847678453908729282430894972820038977215911754018755269646316193621629849597658481402404839319005450292064677181059629263851983152721431069238260760519041992254763007279598111850236492947363800586460697164443526266818871548640366647126393747550555747499325997833458506085298361008776466578595675321166280050099926639654575335836946648871626246773611759697010297840489408731567846121390414671929149199795609862357013882944526529207563893958793700903516474073588865932756857100971081863504073285758233967984879376641183209668940054984843641023592579278349098801875722453194486740596558863449521145451215516095228832643538885417624499811131619377720376139134269213415944892111052126516719150728317073276819000279243106622978573875471173414637226790995590028646107705596786451019406985435357771478660701992172915258394441926539722045371436721184774482964434698387375125608182019788996691685072459910217683858193209660492351949551377726770046277876065437470379565487534008357950880732873354744136374214087887046668394929744481769497904838552613775978082050688057012703734374660396997866835890054166288870586127229029440268669163966122884010006554823016313748792422318841216150151455852531769081894163745284664467579901907595858812460875032982179737530664364102324930612786378421296048333151164788038723164028723138268673687562563417995447278336820740635066159435363007524139144360315903735245640104546480721513433522063849963441217021869959951596680134970983866553404050949622652585065916277109268206783526766433093388218400174732747533363644261935487213451811253335936592270304781547417509762130378573047257124650406547177663157419467903686719690083996288244962279011537056249165664887017116511319923002222797537503034607117243059260610722857004374282079018728008778458709631012084594703081722373922861476103889367556734034434208818331862110500679806316878121069209065512416980264501298178139633938684604611398513894252743243643261506973175290569184871800672495149458964911739793599912539783150371709562871679878844566118088478428054788705315877046380651019799583527317805877668545205269679598467960890700160598419745319057484184280905989898220012335427665365392658621674672014159804283662566380453418650948609467269998948390318205054158362366865740653210031233057091918203396466392718720285563229771938011313411184019772978720390165294073974822743940501846365705212203683507812083092703029974615350221715285676541363224681843742803988525105431848555151148458650119749492129498851180637927622412135086098852770379637483993077588584486555124836822309054227938006509787351232693326019413765109412817017315140328919256312745502186424368911918377095770720443267283456898805449176388999588341726958868636862202602641612124182627521060665735055052574705762451779783660649269703216513448309109436198415887757985247225388888893337291325519047844214398449887106928774620832220523182147525103620411050690762833967012739141034416600523930914104090383508246831491155482851690310174172215243767303103191954012302422434978386117390055713483200941733686554111644018857374117084223215588257222395212377710833846868023409619058019330934847049328526278634774490933972449687975391152273842462866989207983884821799413414038221717867105008343435305938529357783347344688382775561753846831907521992349702282020889211370881697367421865037541038380047162380117846823854600310616070906319033419317968079182644686952570443574914312300323042464407829778675081661503644082312136040779501921968699055081728624749244716639052384770635098870517272302070513235709349466807109142042720247694894744444889074109127373125808804030084215165460338421308589845092272053855784392819932403252394145378166130779820727198057920766362226694501510054261533209796555028457792360406891510082946669754827646447142766691608671379170383148969443867054011074330335918305729512996438994932863221317320861538240800618231841830507898114685891763159359752617722659773024094855717839517293519250858376414553808215044890009375702224042168805720404293180084945738106056528292260460165526386550835677689181951135388836988856215493743297457235578691180561111578323183083273977443926247916117592231979396240057290037438836276787272586684004530448096651850283958005648365970424945500662369452274820329544025264313538462932626310153711021522631183287650729919535590309713547950150699827831961791223040830503596931609905517976211246755618909668479039036659017810214443912793660992939765222086894730214746846834758214898272723133306045672295749594284377553903561334733143090818341054403969187339728697191211542988397139128000761446258021384357404312453954778428065623043543181656356111711288063572801420837073316488992038303917373383591888353052937900270539521592569341853756269530085770550151455374523870860438025707785713466293306771547297629660675180513662029918304314318924912745865438869637152876146364706837703070100396642155266515922663321608378523707845718489549063758829714707136231913961806428521878731509091885671949006233928992263516341847932846158411403806854016109881267158235856562018655232627300699271692532008823199349888871120927975591873178925584199080999625414024514466957484655697999675800691765209295645539529602227824286989810609895134598883043279664637234654754211880478127983436464762572982488608901421690820631319495201693595001428089320696950517836860999177617579693732671310996695383025599256255831564572058990973603591134418792210718049099894690527965704786375807755201099869417396811363290792845163575496991863788234093365492880652476726581374482905694712668740753658641074761808264206064516074028580844197718579250737126571391225241211363318631313165330493269964063237490229938566067257446778860385458247019123362636417420213788106448090233288546703919499240816113749230402112590046686688301448482356373479218699597423480677262902734848593406457021956343988206643615754111899983514361804566677096818682638388181146031141042698918285289886336215065419741393773071201836893824791453379852266444599482405090623782001832147528593507323363730511770988282013573625360251347961178211210610139160645551562229907722328039070104483658668719728944564879648126788885217429008590678063449066964551799212670563332967708643524354255980860027619934913924775081808558275442093172391745696261771027569708168092695929421537030873205960487364605615123743010683844722954842692368030133929039758104945471392196278123999974233453856740459792304252783853858304402883122732363067948276789380967178958169629177438237459700578606268880821539060125701279389720921501071430210109370257921960088044564916734208678914710315743206806207298476640077943096715720667377026033496505673423398980146275294042944489437139652445704697151193671571727554148410383555768781930730284074722624656315009445285207276883027158261672255298935890319352898681406269795205703726579041207825065234159670031302899528429820196361718864773466800640646664046342858271418463197680897336853479569104307526869356957581353971236608839340996151874658467849326162463236880341140853996214090112507240724563075434857841600391772623783449589355426188901150165312148035258534827079849587384387960247784368302341350708177634694879123017208530009019241445121568333170241913219326338206933216681118360074475110901230925452990532150882451449449319166679667921961221125803886067152795978893798012761647860781878731550561202002861818142787149766949450166203475638097055482413661307701639016839233615485723519893787051670840797502866185156365114744160061629531584633226551921477095142569052064986342802789171661943904747962831634567916307859487360326780775391379061863697136199058986852524491432378061591845990609924757720201282280413480403652029659366548131206233095695464634022968539600925746301008100941666855629431035327418986134447001494645833730002483113661126578211203941323771163361345464988070786586407681013642297030171335958345001561874086399621761213808920038467730061184024710712073311040069464570012059650996324592670953877802482567892338320820624973160933240084258587689856401279035059275961179736600166400191396030454613387971211851886436110272668751635833484716148954664386440957266615648054738509774694642818937918450519657201086050825373878751603297243864268091743417965681015493468245147547557702666394525791203565516522306555428882629896882805456019679612710880944674397550172128796935943367666733782760860172938155049477408954712224264648630426625293368919219468337999105856897496622818944496127313731681029931229039761138615030110917229767653195842474008493744548805112039844884061083809157367818481181895608228778496154657820150376629891288072757365657140451943154662375293506601693031558079668389271375376671551347319012912641876092907996980232293218360479108996312090010243266390121972200556575647499852674126718237623184915216467007779891950096496781120840984195132902959887697952874951217513795174455695045740341704387395674950184484587744012400743925092807226216534383077935355963607120170697962770669147828772972870605882320593352005970334396539780353620132701194717799144218773811947057252483278659960781627345723946658870206953875187069920867462614464385412606092929875538423838019758678319313414506227425888530304771054089113238921146781202843583588923422569823710073343542380630254468080426782909866701559784146461073271506225058393302215260161610985317106821651591812903956918573918547002683851933780841228187617256287446135957181226686447700266633358794623650636211670416336369055568809811090127546834428534269727241685177793943120395973137287700368373223036080597206781894682752280560166242813291472633833299659091747179837609528232679465565033791272558007273954020479410148599269611436548269565905813190560317239265687697494921749218975491817962436264083191636394870483128458836224318460930463031543949706923043522271020401884313862633294544127392468390646255993006232913283971681633836588589613828905884251851292660591268276588728694116883585999107960458893027235327768341395711588111748372170325495049035047314089432790159988436827906007614395973422484845129014501183438104024120723032788536647775145578338242308393019102040638231091043143287500445065638985572884677369486189587768302124789098654268917652726156584658607041711156799231580301296316945953215377044742273944348317909415228756092786312363914819354489460877983055991826308470485053355203030668611455768386922373908667349410886600433784392136172913662455553037512883840519538402632207166733895247281684873306465249514764675943171478122707033217484251118219967470568734320673055323306171305351674247819863133032607312392237778036344532022487525345925237030761085764835248406775832750454611729660208096155225855785918316529007823524145138815472437318254058226527483250149710042283478799724028437971815557389679668832987264333255244691811925507378372046674747006159926828387565258200611985610261613018752529979542901710931965087795700719186031444465635447921638754364146394946642046902377415234720788164121615103336566045174867032566427442461590706814641448509262816824353879379334434933361211659224827234192405661100736104439860768180555178094769440298956702983435352599095596942428252885562484610095929990847163397730097727645313648596186007270604185750160109880143235679930865993632168847961720547476968862482608333087292084392120679366943828171899607229520443607743102469007696879032294393520229022245123157099719776111912712910041327038678293361053503144887425575367967186151169301166603752629268298003134860443098324255468105121146567649236654679870515929469080509228900947840631378410373898436855927089823739714341140624730032326115441609599578909548393697228896574266499955165629096253923363215620372356771800078117876226413606868810293825399989442233129227948403493833149855312906188442468154976938208399866459384545120808037165459332823305435577395676237279214988029026685913068478273759263367473989816902814663692572583690677136858799995842468215624165407082572595077619306057516969054943718782796501131526661001072819152823813007216257089818938447580055434932792244716135440900198779145885742528727618089202216627342967580435061103249781483413971805402517471947499935121195921085330452644914166761455552400179304195153550316917737328846843689202781498689564862492071792205770744880513648440990966250059046625600123753520380410415161339572994921310430244053108399005084818098907272236109568062351185291077194792300448133610897167935203458685433616807278916511243892224202136760911039216915160264557592538056025939307431778090004158500236072863385115231737265183770310250350669236334746797913450102729298301724311922482270828290193775491298564803703288826518993461038886100135334348646023559245375471674025687441109420138891074416718313255139415694672531163759813354200139043450429455168208253645412118942680216847314874558274204121454271938623317318080305971981559716500914451093218120208852081895548877740952313221274263083003719214400324729965578006422317961723813829550982707448724909351191956564006733468321225943852068868970049371820121531980205969427899623174561786850304657627888353550526689379789504958630978863621946693206909377730379966232412679697651908640043909388655012706845524821735893545974442392200162035284203047860006486624054005098633390987580809380788632602360117660022036916973989157227962270764360093772459750489504075853235081115801874413404664908905764176410003247254811515438626797649928343722576265618129397924583307586439488649409478171970771463171296387396188003769097627716967313790333551165869937892398185979080728279212472655483114417590265276865183944491500754671681376174835642766251639365190269148920581065903429752204764670822274708042854579084328250124250172188181516920878169627445963923650433490652733251519827806785850059739120002276278338727734984146740687343929052669226211483668813108442062975818751508152250646551358026588564550055997940801605354639031681419394953885397881572933325792166288855297822512212901914477939643342104485775724352477276223456177154173675610345000221310406469226935644674133781531387103947830461837888567198941702115259303484280237621267103845628376665656519434013713212554172212071343734332116928056471331143756005976945147676966964536517460997259848475416472548318246424236843652919666467536454240203771197521457388529428346337260051613291642823715906696196214532290815758590359348726001111627696285909133085962780434935021664725910294656354438031979506796069724066211365311224246851442708909805725978814687741044898637312045740790761504286187786317451879219212595117774424352731550483142151609960653427854980500204980011588022269367158477036855236423050893266888653613650038418429943414725791857602512619061849782697569764235687402201410909815059904447277806470884553057863850049120302912790609292703598692550546265238548886649129736173914029659130238149801543420156034078153668443308940166817351430724427327119025354974092176508239173420836481899575009885425945172404998147772341581087951525922939833034050129938162705265784212485325095583131215673977905069199430770948652934784172425885376838115752749728221351607107187579488169095565992873055513508645886831610734367148080255454706769161511401306797571298642658551487209634789230911562849523109676936725203934963735299675431823876599582109736748085126524989088302782801783315626734314378081106893990254568165913099856488218412292678087913841670758524309204224249617460442760119852307544545153647776937030614700475975330732336907574559765721273970027541308626215621518476522323930927500151126147688008829252866751561225953710002813532304184427347365373855709959149791423338383477183583565866357909675067386395519491045396915754060698863290241512485745763308334361406630617431146978726390310572629508728105179680650206695066275466410794014091988498918985321844167044875381942279440643748234891865950794424481621872805680980509883136424700186328850308598881665622803511426052771739943776359373379597641363065525949007330359135921809849043330523325694422683914462778929029652108496852747608017455493898954710845279351877860449904981439463196383527786223855583548303159297918626021076796588702143580156364364831062856052209112671084198845943777448497313423268841211806548446021627466512439618593051796296080225261895344957951232325151182882262421461206042746154937530328495446035981810831923236830050450555029806458900364617119496047088517332397549849855845016614316642044317006074651478142822350682858076424314929686013171883781573502312110536891949439658792890487613170995090830314237382287139138855063373597507453386321469702495469290373887912860822200481230837728001097921621544123415053973267213412491596076286342289081096171156187285763772594673121416106033471257390505900752978314945407191939361341318979718204314911189952721565666349000416838990864234144011773751376465545301080477522796994479403031110859782220996832655145969476926529138012742365164017646473959062454089503610681726465708225892183420821317873585708929455684738988981194914683295963985945522588233716177302712381372534789896807412077141346282033116638261381686299352675672681287192462837374388547011464664647313977573422887237664971343215602616364208107136295308546508991173722679088650322089406610999448091993801578369915306909500697490016705501117780597695643980645979660224624814217791727645159323349636611274289709149010875838774946609934902579480980516042997607224661629045073081415090694272160139832445089835914745116312717418955986440618761195972007077796994757207410066305925736082675997330575462307392800123591834923065590540974153617750654521499938014870942385324649947966472660852355214754709408535051465146876323317538648846357130277200507662368893873991953145434892029854580080339010136772798461817335760725502081061191791190380806925722023867968541828315931123460430171300934417619147302354952955598189414415365342933374467617708442900311747523207120046971300901755305360318849873605297776962315149783027163579418589761301660498070672482270496625160346049837106491191230389350332476925797116093570905004601022213421641817129408629125220444444789952402941829824316746615995768958849111184407243353938588375488073276608432273463620350074286603420072931722271014662451197411984129246031993309454601988240628733006962308189760558057415904096962703265640205858830056189754832665672159253813703636923791888235648817721424571660023523980198106848830204413922507177527752824415090919927267308243913078514029616919658398021157317423283096097457505877055022998705763107776814869146597278723166326397363855794977739967180181944489958823767522475451183915908246023277951197899488272386435500995778275272638462275382056942709205006391669533447552586475283512533665299995617087368325969687945471856727697567696621441731940555652378045419127953275827177484819387623514857512871296599892604081189817912851325277526529758100823023225267044655296118049158278641849031505514511613883098366082481421883148017150949725622594208563231281078482472473893204477312295560360868784454451094775069726066421514906239674868023872126794828457220802197581852013410642672171594621417800467150915369442296892544390204096302820315688685527858590267755251165343252515937294487266511583022051730303534014220676779939674386518011886803027723669985967571886433325214055050515414569212015366241296932634936716150841011538842314634962332583139618079111130954136765041443981769139040103111155402871527219589731101728253370149551993451833610287436850742014602882640447254557813446773172905385715562573989365561928538776811094130596821751925996961329431405837521309549287764292714539135739644158821155620117552367369916200288405067495296708791120348656805579456535698707629674026528133806424812932652347104136590546214125773164648595516181141976868835325941277667205695434950628393111573056303545398294999577154528775936908546998049638190945387697334585048657010375121763102127301056919358172527224047034748747890010235354286073544783911224399753498501183700806373334228232558120853336014664689934318788314343635482804933197520441978770223206886617527200597524852346644966880131121110170208422933901668222038882142914766753623369372642270940417095308112742805165716413473938634429729524653859667964443084431714546036766603834231382708250380235959938095675873492844681431821004166918560108983192548473827960264850083945855176115564114682941697746351792926358072930591906010610207395738688930868380929739371851601037171403800206522878773731677674335120267264351992640224426950606975882319482612138138083340074149642841989263009719298975654594754095662586210210319949581513566937021430111946553194165303987805143675379919232677699145062097271082981052943427321569811647298792652823175761460861117234693671089741964786691921127976218797543330051769474195801749896098350794221127969927045510310680219197579112600592909980371694208949725386162631266773562043499876840360857957240845638129275204297391582941554149100897686674904193070283805516049174853324338930630014574796848505963415445833247537409966938276090635994364077925067460758918228137262442212041179571523822664775475887274226460001825082612144574865484578391155916131784974926525350443813261981214246031384859785767176294679123188520766796503585442776994864886276170908999051729659422253171867430509699682717220403446758024495289738930651759877298273764190493745124389642178135523126941138628842672688984279872329459008729865996864372602841546315377831099173100396801697752754100546241625709170318362809251162640759080650087669839469305161957337675772146697259739643462080557629613545677725487484097346032605766678619255963321578800770610381450048769095909746608506164541724861405458304563612241362727579204288388213301635699087339843382055741641691184840060954170779469519107606171229195328876460682473650148945396985270109309388890392907963948647966676757884890386197847074052635109349460949688915917837103669422028027783126430522984157256352766613900734776161909834474689913402705069782381027148952526334930857616669697631352553703780421175475509803669325474088937630300447944408473189578284840840834962249568018730191101517055478660869629160410857156210835242324104453351743396620441551657785782576590543083430700126217043293403932039662819624936626081012954541172300599152392952304094789269134768231541799599330527661196559810012973370843212326161799990235861993901687838904008971887648249578057268900133853238915197443201880950810146761732771691164318543351377809606714288533525656390133895911857579800942024381426552142296036923680393250701432832594106939363906319254504513454516400280220781884441380352483143145247818500411937517850226159483817691373327414676040723131040855287486397792185696014527976202792623791204653217196785575664100495542223257792113484049395794667184471299763384822618847943615421903315019843735803580011741795905985330212557339531036566365683828170695207019039654386059235633557945811628015318140640462084536640046227078377503763360896910334769013254896218011523448906542878548606569841025156213648882244335712555710019717354352813605020376712192802889010112890806543917796566255217617974089853366081595990847795843224283546808561738514720568819777112083870518348257865501494016287291127921648515775615012885063809767034276574086145935440808787025115102875492989103494444568522149468914677293633738768331329609446501950794469787838226303040093831289142870270965181987500646951002812780233717944100810225181455567931562608175862757672607882920817716416620858711273143192275446000566313927356533785027570371627727907750108611453496228916820913761326787677394251020743352940210823588648997540973576829753500061595688989264072248149875394770556525823413433796673189604267799798147560093718193883458817138232447473013820041285800474138503523007637691351077641966620555417176106092352915894787869421658561687097413948767148321725409909113412293100567733727720592942719184708291328443378883300663585857004710066732913759334510718834675586875666940676021884955782515330510841257891561382628406864924106164867907289001084666629932506858709819012825635000287025833960850642821237423297592072988041876579301749779130803863879976586527099248597225308509759780820528306339639933697815445431401953276000939974637777654728202069623143780011838653056743501745003724678687594846875895144915691009317758977285926351738261917035187254010022934467363384696433097588261732972618489451746489531314003111356673955126748193615684308848243100622915977327391672490000621707585773944343138539803986712930732859595817693545325734809330387931680891511464594045250958551150716924883751740627720336726977323222779481994358587373772219490560172680694841876722299361712036843700884579688744184287368678382892189622106109350708837034111258255042641732389007791788108565338521214098647166822197377886184986701902065823997581626823973462544659901012596571397789120016741191569415086559292123566691618871851687316049984546648788892014793507609412415754487856768040272166841594661734810134031449287556255042072032231194110975630780226939133190806815433546199187942245900930281623657708516077707522033112200749515336655812184506129495696387072274244128667550826052592726256644135094173554988305081484334032739724275200424694688726149882856022687761227855835349324125558603060799315360502850846332593162950572406619109978781511880715475601275122904770408415817195409672337451199249505647375293849562397688569214396908341860207000118246543956908926289931809686715015746359584409720901735701168357238740933035300254599764808484423160352289260462162548524353667851404091212750798737804789754307503724871700905450388363425570914484841675671799554522209059858182521690040146822508070775889935509538845727800359638155590340214226538404649085371956091054950626498631787717009998022351049154244216243044511280043899000187721803804255003152187727456905304345427232226438796029668049088089031830687063007541257461703254618062334747316331278035601135577161186200439396934126993599575770320560010438823132465489469594765865710623128628107768237505392944240047387093288718822075208643266114502585026402853589222968635713634987845792782112237510999896769641295565625341761574425703987939375091085620598426770752664704074200285874572410478405336496570487991776297695451892474383182961304399549933557948898087585010632793477245656974224517964988715167084076448201267471426135020393251184463820993091231099846110933932241768646179266633991867651873733001333136657382188529837892450008100224217377680175985948072604052790786763298363409766801927847326984977253985829396094672722157086779214422843902455937318003881792546426359585624281098339672045107767489863396121766447931402299975319990624525631659813262735181270527764185675736765183434167995620761371663380627805978123184171171344403413905684432484456813936108985388792285098999590779721658643962938401878932673059454428607307068621096761317560141599863440927350493904826141461058686118968482337474466326427937865950866882311881844140498709062180196186992360175931222312804955652617818554983271232373735834047108332279117535976299915243762297173256492865275038539914971619493185364875423064199097199568216683451173516973916292530236614798832980873782399343084635410678298898671089752733297104307870475118199812849652741030625070002421596379586003552265367951727507349947248476470339624962395939798193680239415826976180624074685684401914600028839366289156445961194111573774900942950085422320676815899223813061495638996321195246211759845588379380625538328879287843995090064101674083222581079608717473809743798573866398940678182792200677708577495637620190005028566158155923996273589926194380153663554066649324590691503977337180497242835736797237761307723963171307669688648442192176952223614577640563729610975260462773949842316922530014634841076776370099809570510891323799959667976505726284679794897576769383692740571734966814322197354294256551688289530028968119308870675298564910904800551808890171144992617707385781391732603553428067975521001073877623205333960123368345368657990124820261541967506360486252505081118355415118071802527135865937584985705243425571983929704669470223134569241099902049831232701413176775272636986713901494390666942836312244017355834015295020979027895808298076644724585478129697686123242036428599154055220809069449689950500314414372573223345267722166487463190259914047512902853564513606390595934067598797847891931575783331539917775792365969205536916463059775498762071652428767420513163774313955988645034798825380099119467263658615810696959168182290173577779421147343415100305869399311015133270948035997129697989929576586061490515174491989625465699255914628575347776753519488295018702602084153372851976318744624376516253790889307161940589401982199137371652342982538625296773387583109338530552776149754970643176050184628927202577371107673727121415624210562938655417938915947801119624548882313990520866586805252484163825583705774264618003398418999640751910747608807007820387373641290979152430376147293639860099998556807967106723726030553229186514371430775017753905656668183021273714376045661501336117269335979959782978772140116734139790936805758658059005356536628101194422273570095094435935110207070436931257578554976733264017309944783308766579647320406088101714966736334568042829570466841126052938984386503144162005911890538558404710437107130972903691990762478296578844854020136375251818824774355937914512430754956501222341165002660277267083631079920976089328447280831428142274839814893807670792334087732585414117474195760716010812307889290828272319912016766358354784009744381010019678542710948325331163533860091283766355266821771966808393048623690199825907444417725260696498338124760941402444622325583705697866347202176094877005493371663951972781749517407912556836602557862878297743124488351775452611733790480347294495689341754730993098307551585298062395182471745315969166396798961116242150652144214564265095041248591188553437195749566303945828080802264879755956041034978403352374782047006519991863858147158078439079965002623092070347663691328172748627010548049498959792856072777329232625249556529585618967000217391769768537485951874320803929003082966032213781139570214911185995451286336241694385924890792143625430261834047509968922696088409918057515791619526684930284445186053336266478107686441084131764954049848528174400468161076907582412585007629908013313481419364568346134793865114663105680184371279758113414872439424128937585720718012478594156894983768152716071797494507256121108636026259505893638523162609953863364322923558459450748760514956200870073593817802046650662140546711973236920960100489027161325217922890411522566139809544152299355784105566430772451617029740323391583240873573066495820783088921436984326624403203414263963110100522851393122283896921984260160220692806582897186517716588470485840428828813589798498190826380242448620202715884945320241984342885844831523135699110694627025409120043916260626664802013766344001791116518394453531289484270118308242571010859437007129090570256290692486612479245532452479772674351801968543427051339949683485246308319657146374622054085732791888103891731738122166856178904922018330029017954890896051846088326289075846995520476895670079560337032783250752984664850608027847054815557264576654309774367579883994251591055999338191186144146364717607510448330646288755737845072863164999454043915940226891477641630032964267419773587639468798272813149931268352927522844859582347301596215857276327764680261326167123800303845752632249060404464940666457282352350558728031926779592720573374805654368385844958279564439807193671504230631374455785866424409530740468512564557939745548487081165304977154081360050288883942849487998293424019535164797790062178684229416513079793704160070888564552135533527053399904421038299627797846771744628064460822130360576094210313720413148325691925125665010677889042703954629803929832070398691635028062273206922722504987756591273102788064929404735867358072967666240335485901641231312299265224509571386624041250803839791176788176828543311074999903145041551078167326186521456369776633828224596764494379394053680140892529101810785143600913987147005292925960326688935665077387043594989281149586756045119000715841061418117978833939265406926573149710724789079524380769292893844224831184907480453011679976339186372738261146547046851087073917308807425268353182521652815121304779170855237314089853283393728565189325635473055362189810960360199281604983297120841592758375045987443412028961841026950516329900421073494542077009721475947028578711264825658002681646959944307384017412835532014929322815667930294182090543082121750213279051531721915439518560439214063261349721362192518031035613905781034800396301648404060441721318443645489916000614041907938827981859364920049137672121775486238834787826044270288791507141423236999316194765291723561281594696702046517394487454507275606046481676604697583192826511561504569589919964972353307927112491902838716988220395818646644074763083815112916698615101941954110265948114203276668519100401917780996816159929736363937072616248533835265343985179074084129436015086685233566641581905558455743934347009678280447316280700550211891681566207287320261602787802417406256421490322868129583945890043351638941280498158242262254132694550985837957491233571965603454271932388072533564484869073439092373795201389325392379203479204733958998363253313945110287979519140525864088953401012019732606862778367295487112527684659376028964569692220732042268035945082542241192869081898459708188434945612563990629046545145280547940061091218408062636924835035355031928148220767559149707530014046034846791792689986512406792762821401323208026191174348091641168613437070787433052079003566614474957486839845635082774678477332645019561852282053134644864228286498779457410029137612002496166637478213842313077501129203427299233276500053978299849617795091594406680081859118807951752847565494682106884609456302224750265150811007562652640015281939167949048366659237188855709132933100291360900379791729203839306703188277240342762454405006325387656769404866699034274777902510755696100656737628185129691805433927508571253885357112959476919509342199943573366096320267135116870075124693522247335739785279667916122678154606702951647342196489580659243875537899275444194739598748226477708970750139389965557207100739972667833554531495901514033334388142766982254767959369784917619967469253572021418450481285734757979177606022535840557994641466722563334074303158947901537455687662216310372648143468976503143929322751205053589388884027439086820750232255715857353154955213783449409988500784181778791101159984382406137591128471966486549799163533646321705370634010058528568785627454524825986658709733065258465933411521982300845769285862138044406822099065155598604618662046339596086730749149618155666723178446832987699783516369325792143102925474377214962138751575091197943450878548464264998479850660581056390065237733296296175244806510305697433359399894774544488338662738103442162812986110779330792511963789847946810217738613566612927374484008686421861781176310583537106068309499459785224466245815295787239863744871064104974433468505427473773548051223587471415892535314916809805015449033463372889402370062776289746764886148887601427805204986601706659904918801261523701112035687539063516845878037264054556399750723381388938330952584560060798865864594953495563690297347243293183255744303363919144226028825360876438161324760528568745177406722806800011660782515432060372495914403042395956986705724614285985299327724509961107572179477303199452106096333706111498074500488643123848450346656306339144667485974292120171574312878275274820338145497749469134776049866404483142020653921501209804204699376739606552161766772175495817939565616744515208785461957136644137391785169315713210832337698849463643246734145519289987850828943661608724992917869820390950274956622551003960895142407046725154792452539958330931372432145962763084667638152123253058704185032834923063431140365155919436755924941617247035222478208791628638574131407519494171608807809212880632061130810616440524627100011697587800104646654978479226317734822764850470604173765994353923598076522063211444355707359643611470046340909106429619552916813266620389199483312753786549801383983644679116804283537472984704959088283154299306859068854351421294650499241023245251451192315076440542934577568635013415865716691611110959972791604039790935324482515036184746155154135424404677518883585316237670722351370697767516181890295207728801279981988021414925137837424539586775747564347542085409889318446722764170125882410360221159788092368782962742377685225059694516354535204391798951016315392338488820016290966427383548595529504609185465470270011942939134262413792128955389781647333941086847424496524927876741448484335623843972875059679064572973660981719599858581235298589716476765176454868890532692605450430807934365447317590386254315987821207555703249860332020330013473179291531957215994859505057746974016675019778865536117644416322415701075754652384700070744728770711094957057764665271639237953895576129563261975753692723445401781527655327951692775207382201966403648922846234287144255382117256735261742040607821330401197608424778206977491919414458196606804739128672194413053939511811182245943643483851652297748610704963378286977797923555525067691497181653257851644972549065238371435953509218701665345737094666168181828258569769361746269321047018517050070645045751925762189746693400913050145767157106210109977213935271355393811632430748827904273297507774023908725374446680816829634074794313163705228826956440080706365863404062546767777135988190695859416061054352586025404650694854855503364061773541559104094472208049778283432883096660510100938149063777661792133143374513271981557631563777254337635552796989504133426439902310830000414140430029856642469303986328565685222441662580697891677216407504535748912799336801060826854980083803694793233253225499879287712330560224729397750507895747824639975983672638928368941214914345249751547949800877497960509419586550381961868848292410161277838464544775139778187068202641124419606700157635942149313540240427175182135041146416325580395885637823664495040171601932379912881972366149402457719759235051788785160062412655660330337192798345724698556374440833845268250601166881294713235052527267894525936641169454934870802058358252432420756822880052860539535724553375013254435624980474991062463314165294700435519229626138664232528646155927690367033712840828644000623649474824540503910338934579377289820783692162547386893443960987887844670041571620530582362039844639822282193284661621692702874375283325380493361029060821634618997032776866400782570038106529696958666879483796264642211608220740526078069820856510242307721643487552732936589816727914237064496543286556082207614412162544739718496332522126654366091380553961451226597581967778561877117939230124233794782909398388592876826540092624043728141685302823254856972652078584645404748127246962772838930222033308831674325701880879155923944341074597566103701605485101153875905387541094496411269871281993853297390053795461113842420592357143292851067345859937084346934903013883946818706678681542187008715865045327566426977926269996790106863863240205930458593783530656025766848537237429964736644244235540033980986444580561110007261310491487709865885543142757921602888953743324622766782333075650337133112094975854429587468825178570100172745503254550489939700667695988808590154851864634771752551093566244931444975819428774057086085598104476165764796807315828026554222753254351524684955956059346769009895118481755744569326453775526524476575373618676023329859116844291890083534359987992830171743761549137704676405209242462911374908350658594500905692984040678726155984545622660677443704716722032354998563013971916270962769371949838531492032304899771909840639433196334751369462602415921511704962576298237634885142661403994589574296159532416192040617602642517434280398654771341422338520753073406604298393436641831423884422727991634069124872161572969166141196122844651577789259162490238716243001421294903877726267435000049203893019115509940860579820179297660989607307192834061995398532851967586258351590101933716056930091671520309950217213912892451908628328512499639292635590941281662393201555836966006899403625911739386108764487715098839930938480013184264587535689704120658088583649450962887871244672767151019598869400436196077567625230699123049197923080268546392884290759590531104492901467341168571975702424808341476458567721039627252810648007231673450560882120570330094756582788401958307266406573540094022093532518382545226841870915988546743955701550714682703892198060388329903923141184991131682636683003487843938290824190475283347305659974543019464386023862871605604136881285563317479916906121123184976317647690839837709558308202851312795615829213393715639670019955325341197683922532037464844676239584236953405396410955432110629678742863351671126030502731410403078733046928337410294984575376398477367240232103600138057090120064194595545394241297288842042561183837150954693655242537717762707436579747367090916356990937963339038218954705173794099710224149186425952577965446364067863733438680983273467429113726483677247297461774605465045318060627052130575910580653339454843098344866665803004102838973200189118721932944063105002053915403521333055151247151955406653232714162963895370638702178881958777882204773112345264099885728401063688294036912633227942204918281268095446562672776986487980716188491794673763696344146899905281226110793289373779168406569408995335617272417108743201589285386677854132877838949814533832947351182002187597190001413903428196002311707789476723660688356585895146366853915459315808615770916874310835139060729929235337932389065017728066623515469074951050597260890040960247767506409498170215757684645790529461120299547969712362540160347474841428748946781813689619343109065692752677513248380157212607516392524493045779877720924691891418387737563848077130951905164904661204003905560266027897093730040068370327095327696231418056838077536787239541402513187729551563846847064122903465694596389377094155898534232832410621591131199792511784416826390798443507150454068693193547420549580082166258666903849770733011963954447587411892159052757928324836215982669107993626206985360167637104722025898042047970118667861892477862997154038810185108519648916680712500195114764509342896121334475425306977006590764990369697495654389108510338037817500377484663693169240993176373150097292026997521804719916763866584171188237445269944314366191378983790897680115863857514867873402966001999772051190957373634445855504531304917679361985318350489601488454809513607345625546824805203118121178461601543025248518466699378479075726578984933480393025896259433828371125752292410543427095467430491096313956168135320865190471917740883955752789554068826381882421564798659541512090917555749743708317483753030836882497260841518468505630484247247534180768039573662297768430006427939242572073002541731098076584170760328394503127734590354308635084884008059924293629498464889225365155997409836311601935262413222093166859031087979634604366751129711673512817580637080288796963459885485109958840350415052784806140189251776891709207532194656041231138176193723552724878059673976157663167789537788328230846936939509381450541709852129806553376009950634602539517112917774261582030964159439154143120216934452287404539668115732879378550637776203287190416866812169523285547633847828092347131937469266343634095332203618789981096451263649070079226947890353698459270314219589482383681611164233926642281991743451453465432437742615975110293253542988765130885625175368294043984179948904635235242438985071273587495488282372936574256934764486109055610469303394442880297927899876070474433719169233661836312160199660052784961189666596101719223233681285277880415380216745363003719735068464458057543795131855795202431124777663018972110856727006124961740408671410790237466948023906650372512194046170898006775377102347142547331682030444067437102073492162533235964597749158689476274870958354931784718706854504296580824175299577850886656650122872499298130061594813066108507190731390389502425443363833469779371550440512848929744323772156632124657623537820705564099433907296015253799142055415818571046851015121459433833996681558984073058224610768715639519995748863450598114471638934087922683559198466171509207504552902285052609827348590606516762216514765485473905141465032734169545521626620661195809108233166950166613978771150410639684416655269773042933281451854366752652987631529149631552520802903180152076803863238784959465161484683802564418622183831153087245704985207439635308068267390905458064831659665870420409370795510149134346219833778159433143501620717623940071416964296432551835403090161849394273301712955333180502865898614631573705367054130883705483512467715488234630984273212082060402490238869163907679545744595859702601718949110339991032077955228083243022590560406082534835815110440472835274594605513774405492857515677122713331302835480743977466018457325495038105817864292590301478029173053765457457470464702596198661542739485022802613496641550617851070384937071197182667193221564273963702384326510298393432936503668264373765308063388657454218426147920453186502531516610421993979596311526358380200814461327889655669678778810005664344451417889751570265434095747969149774105363113999005183194598014704322812189637039060728158720947425532887116938937999881364714190382172455187512956371876989995355490588343134856160012549734823074289429226760863575927975562405267641815154457667486828810027619758935970627364344344856870449447000436606187891737207276984258225023610682697019765984942381515167099288807950882363279146842371911438894701989619079492349980947831350807203684495748187667641667624096794440785778519403525099163738686866332332166577555729032068662542166268981468479278223386005226068473813871637127843783082223557477765720444336280241608870831979972877722797786381605058483785233249094247833074310247322697320469245128082600425890931353049977982817092982236520754223075166054634761800117133687538774829132769136719444094433258829743080446152369949022776639765507245584626564348071646666868288994541342051547648196020504458638225848738178325675445462143529179498218010836469804108943267053591727460935274034852218518338282849207768616603167998669568849157641089623606856973772086441074671003454618816348960805720793660530224225279726482826417890575407520431302689853808066969976573757037563028898640024769558673582465476346837668517936243551306625518498120532564690762510964353545646983845821927090115089706745306945047761822543751027083866223281494023251795280184500450607614154848630141152667566867622529593004810301738809400429664658205760156862534910697465635091160762197157551592628763504186569948016833558163206863425865712714795311163001855262708465285951640869534363989169776835094637963049746268353600821363635171247014392764021160296911057456200518541329075975178580000456704510623523486094974121595667196543828892309915429475409112500615973654652422342930143703992071336605113283312598176625982935829664817033960863267355963486492037450932178665969855346304607497512562937753913485829191135189074578606529916771160614595527713331963518675011583695630908264651748141793326227947526335361283526952340286906563733260847191335089818859647271447835532183965762527731395102735883031269434781575219503810481251643360586268808112301435775525508921649981324462642017738540765983202951335726729496373075682430560007005300351178984814292755840043911567557630095257465551804979505481249133217857869987386264203083467807903748159052641136354925427565328760350696359265594078823467605168839865884658990306723452897412741996912827348971162062931754753848695867915775972555271742170442853101583282921443062536464906930656602087694075903527480698725635297760703601124578535890286271867414614628119396810440557874114497874021602529012711142707186833812803165081467758084106251510355895335960388503301189658441790742688795291997796295635314092150444765917558716567832940544469811299337818548832514605674532739472493590373137086966789094243206399655815071203222589712084084469324089050885294027661181067438538893056802325678381539243982919122864471342903235925320920666426398991145081582296126019689888074970947965375004336302479259013484297192619548251903811653172791778290485068006214249196784721606861402717830032487978260054544002522933593560261957429197414194701357107043590158806300895049800814826256110625427541757167984835545744495666409261261522793291520126504842050563303609266302137603651340683100793343856599908708314471201510391082811436414919477876890342122298435016313062449664131889603096854204452173169584057049048616138321042996902797193810235484671745711027719546779109263123867418505840603928076819009402811556860352694193578564030227714823881637239182172898020108609622477511390362899565283191798308375736018702886486040066230629107959699624352287055301668816194400393003585686108631620274322993295008256507237153938636907687532485061364356460856806374508123516232960569584931744350712419088400769068001337927774053758470499152075017328219595676957340845407327206562980658122429955818368489251323957623875021571757828996241882255828901617544262934326869437364666070156765341395747262752896052647004878642055406162162800368620371729252602688601633449813575809114331213537072035696289225040097854872859649955018923266865748144913188186478987002528826170717697226165399599842895770629496863304765955506973992344773165163934413844003479179732838532225439670449965028075741564732673802623189229017426403154390401651241597634868683578360337760790101714625466711247101636047081562235392105345650723493116060805483409819579511816282383413563845881074311322248655407978391772555779139503483431485408947543772854965920117850772581822798069625371289667463597162595039018303242165325817062580729751247319773179536211868671624501815312734861499184574900711603422305860491195453382364585618883337400543457365851926405257114894875153361931836596584124303632120567864864424513481782862007479503214124025818197544763808166064327734440443570321592562649038964514555027029502031427522754729788927866294950491825045120744645984547470644903342462340831693734376232708949464130229894345653890053377344611316086390940149964458764082068533500203475962006630849441453387947280601674386981260720058029602301147081265553033928407346623182127532897252574412742290666359058994180903156613540002577545448413784109112818695304395224962990823574529486808278350147152136552229590430186107108527846947640850722059331536982094545380960615161161004078712496222420257839157874132499422942279892041706852943455914324383829775963027147825422951808115643752536382919455375531698882808891884932612787135152348224586454803746711563050738825223352871503510225119475822671430931430496023180392124560900950917903971855096623801148721227870390536833031445558820870560082542886834031135802793470121357117196423883165049033123388203035224813549734118981316791822637487468317554530651940375752568386756341695420582639275352586212660916498091209522555337808274573037966592090020141803852353193733099268657984850330113257299407609327844715419288814557446408373952889023429765913780749534888763084952486300769546370788683954790460318167278623896152905252551662985197315967355626368190168352417624486530153036906270717299378200194824599435598980790027929517404640370722123144877891443213318945841789443277075520700533136025605353032081869697713415104253209505085568191042710266803005596685172649362588197414176581399226879716818721159146127515952679417842609098244012580789738461468576370239632939120548128446468270559471173558176580985004720755225054013740706496438862644288407111663786968160858538558769867768048037272285089329741834236355345506618282915931451093294964745262198276526022543330146263053232761472271207528331503650881020102756350314884013110728788760077034789211799384516684108389750719519498444741255955433297654190273659523914578030769609882525194120983992718783379529300884516124925235232433934659824153854330357899776118382621858760771852476765883908904056584874719713730201704519981501021262681791037466750871935409019285334319681383511897003709390507342058761967791371302449468289614034293148126506200322996293858458432318846400306658301717240090765457678170744201149488933599155351900349054914772687670279246617248044029070507690873544518295917956728526186626844404492032757016979593390848373592244553696812039586480545261353044502921240555011018161907672811480290456517127401386834046539345896043773758117902035953629644531287209989509593601922262508508314797137544131056601967288509924911334049701298470095193218931055382157886624640544027633851608304119747353400332713038123312431602537527585663346683810939638164983928513598292661256643105824204889494850392235964002712408136920831690237766606221921974146936794736383445915170500986704075398909590851937088346807593615031671346068828894815184249756545054793081852801293124257844695985473004365291298688674387576381420365540035867798092752190745645304980016305962898651735392437639523729227696415315528233399665659429003233417233737561240664707823185021020127014901417911824340304114582447208364236389071425981662461241870556462534520906271762630404930478626387932086741515102594626425296232355973229608497150524865183182220825587791483385488313574116645813069638840355337303577281942583973960048872066024743653477719557745423007997764937416769174375839248869060848589439684912518916517963556966426360178727561549454115612526606906532525026014678896985729421483764449261370345313761272649454763595935981061062989634173050785933728384469524683845297600304396390939252112083784634918249204102202709523431679842978410486888683387167598342021366955049928276381042785132707693530681534692753574645188801353391658512129268895373643538706091697574446883934383518939025602618005683890709148537506655426191276003173649430968487905019751063684152503751505667881044045456331475818592089761461565751517881742058680983159748534485386258045418045893696989955300332537194624644002774227807220041582575817344520044156116051224591552772740093714616718491433511968071949662973250554931939305882117145799695837377994039297943656116548971516861714245783736113758520650216481627330525050795811916613837791220936502113619712974258945706953181422476212235201401138999611049366001098029697615553090560718849391266390918286807523940448842963191721170577721144133708586900420145948930220299418253610942530874868167579406437844167044810030527753317639367260973374073035294395720801301040807490156383656410866202423327160774546196000940828411985457478145369114715967369394471375325809684252908068336547781755134646219012866032133431565039424063470963277988201813708578353584768899008259775894855635477332968740515646298779786009291046891782508829786078612783031128277903289573822053493077717749963501995316608173273436368012606205989495110924851154236828778561129606157927997356858260676405816123224037497509200092163341061184501598456316040547581093892585428070470780400098856498261456916816221286509216260166872670630089126505127072862603689520990477386521762419697109213783026285317273564220340633672545042178385391769771489795833995448061228902842492371041808677855786773424385380491447076741309246985120903433044819412888531782797290283442173988002996829207183253459539564614560187885560887594295725709816306253534741012813689110634736895161830418387201186716090239703881558850357131713477724271961076607165846081975695550737482912092423721879595632509041273726631333878384935919080158862189785403144405612998265445320198673031338905036282751734557904835733250146281034825555512331190577255382879121239589399353495921152462238239276782875904743783319347907184836621737818056637513782746493170321543124625829863616691473007869119648031039678583571270720169999088525732799632729372842119215800653583191189180940711414623428299706329685598994687668173272219096618199568759067557123636028952064221237961993475816373435572203220940777982690401534387099695114568104869640517996181088845625197783195952214251676609146561766255060797747917784034748719328010682059334929217503219517069813078976291235728460984660511369660020618542427134594484568041958961419445922851407030227862492008973928515326355789852169572717475481681114689578285398652439735097760777945689912121919893671436793452171466559922124313290810048993116910037745518071192063842616824626355829410720998821156854300739823695450166334403112685632441739822452631086074489977275980809423273825550172912923995523276898844309616944502158715015191332972943522793008629125939365223338328280681786625437883592637668700975830572807699584696493460503296063383399884526684519571452217253776408453533874510515316147884655468738510677201692694157855115343805124167993807014051664597301747429012662003737328934684070255850015096451262568083674876968651031991727937441331426484900620745266371733622045999226560590134122398914253153415548640336715002651920812907142641637459996820270138892942980367698477587494513053582901087640753652869747538998709293035379955347963949153616333324060981357715062029712646289544151494989420962756034560674880002288573569879759329424018796827301324494095752931257710611155107911574268410470835202583351350995997875949538734262466054661808712630603862484061154146017249052927228987128031655926276032635595468901229358850756396919325091600326803413955996081136562490752095506789244855970256476674644620425677314527409995678218547632381230961652089553526543008093647537879426081872189819351980221301327386035499288914777723361921291923324531161796833202484453413472927191512851128500610954766068088593062927371052699664711481028644575496284865249689860790480850091421133608155023808945059489676890283910008615722653127073380709108157941290911515055189258644096573333446163547172628241535078703676387116079080880007288388525992792584057217719294519318672430391618224814377673818302756776562586316498105341291179872170392721090144841546958990929253610719717367620257877878421946908822498728741683121009760524960784166405994510329195249306679120680841743015093625743040153267675337012951124525663512046993088233983057510274686453137189125773378733772793710481777480723010297746934191380655088983809563873052230700229731625991558893287653967444879153834038141500427643646308937977861438570191678442658338341998594893929473688408005959699127960510131014711523571964166223362687537030853553537049696769167879150255925863013666761716351909787083355825917365649775058598746232776434151292103034606905899542029957239885166074258391571395180683105534665852652332343089679854339744169630511681248946724539889499757451513171073835811977572250284874265670600010288067790099144509314327513312809813703055647509503996760157640560531980926735559613005846227972671883316827549066108037151777797803285722200396949282635776443527786311371170068202080827428446150032745293778434743114128044528664276425951507631466625669136190904117228116901511537749916250559942680029522240147152943014899584935997010655033655648588109564758909341320114299642150227095967639098346964388215391982445147654175666864559981572235760585090043219476012669763590425437937032030598531312969050370295890477515086894015948133012576940989302202729307766276109920976738053950500973106131820858323189730199287311378142299778018580776945033046950684561727267703256398223269923319779881673708091307458629342862411898791030233311634355795911989527787817512226968036787874688665239371737378264503070748581972718752571603537867583873589855101222946148141787265864266974459254126842652906501552371794701668837273129182796872920102303246440470315466867553197268744496261622006014304211605922597815179987863251918718527013453853777995796779387336279879979477784057416184843029690510088740796410457354913167298861342446243016181267333113674852893417577415729618575095155531873800625907922403376211378652170248798493061886575921707101303593303220346396223215498978374619209845684674773670752264872395095384737725135511948255961308108350013708068210462834524047544067337654913507882751973163923515522517633707111919349941932886076990369391234288479374229724264175236681780606785101503485832232681036474510845515184687317734258065818396521861890527273135897791677351946715811839677963717880225119985793969012405005717117313158614102647022427192766839780113373545760087111345633133071342377940148900000989435965424829399101635614391665863467649510157324344248162695576004379824723941253663589521479337196591936173142349896228089590501507377640845720536538697433601180531446124170821275852827344915867977004650075449809957803511062640829254002740900560819543611718280291280881794293553420343819940222398385652216109740284550428944853499746172906415030808745942344161990918154329104709954875241312642176485834091129258073618043028788005996154732763117976824322206067360387928265018110783121071369895450894132618597343213332247332995165339258133615749370223027522727462482989635451828797346537386760659318818909562016511220798470770517973407870485773144893591642359716419016516673963728086522833207006013635460183127219908618176169552891883028674480700928337648350725426495057985627994539453116822367635693956107852746054233010687652237198512393782066736883053049647920464056642088392793482831599820646934918457681833754542746152459105626593086006781530067332430773027829883272463137532812332262123588506542812257630068646472431088125919444824860439330413479030304608144146243812721277218052721734688878657742857164595505481250516458726920948807999791058416989098288934521415508188756557863102837677227033684654056454671302416762320528958303317208836459290086796525406123185008830317124845667944928438908583947511705482751955966873812535602125217596862278484248956342887975084644711628510653127196351888644391945823182865933849759067172447312964437108860941463882867152104566226268733441716474835699031624669623537912743489290595645141787979631235505075391375191645883997399271746978142968133427787967560775969172476881911347735429205317973617191311171667268413349828723581781159102306679178729948559489295429534212428441548859179350565695548371971414573584423921951077136927200237074199798726947997336623145942984807877512555527498339323426893336255588703565427405766055573136329407427896315366236862436560785732938936714471262817821574374733508838413176454115193363785076696499724109951153162578768506824093155396230366257269326515301680847002944395046757229367070229068001980586033876789279844387816784841142623564042713527975049934830454104873882340443680298986049002366537743320599916836186602123465449459761557829544969713965485890864588750037735012410298187491204867036000710891762358923601510698493616011751594032753038238360465581422971401223558933640711267781434380780794803956055092251820785318091082467079397715728741356748244867974861905765820988404315787457710959624062386369434244319145638664073250582981563377573460442799976372280782962461467802700380744140569927441255203124450546291426494086771134158754479062768215305619245185446963617330522952116338827669955352610067439362676496527363865742687192501462839353363594530465979755236241034319944818491179581244321626995578669135640661037219105321324030072749588321884091658503311955880591173102877329240228600622984985889721315384915938822028151531058669816926256002878630197970813664431497711426407000571850085200373771463264747877272491858876383989310953367618740074691562731934831945230605474202884046377978997744246618321754143912663420946669666579302777746171647529069037407924067659119289277708146125043678536723721764847328198435653422129194309939948911760783500275533821521483739936657005842325050770879089847677582899591536530868568743003931779863687749676764533178027385095039253003129209480789186059101298996429731612896023899072117733467154801515510699069438848185438036453609569687710383944817815616428761765097104484972012430401966052474954715049073477321663879924095451817972960388047208660662459763953017550275492541358722642093062588880281443853479097205841075462432413947017463437706814893850594035638418535303496652819489741123919106248292722173049646479839093868889922723922913544647898395722416255075243663865415486727308966941062813969041976041065099595928689689505985019851913874433598160897071479996858125924222887013066555659340181920564095790206142930397996126151371596226813695808632895611494528280900099169556792501745341766928970055330595351405880433869502544755240678719314818478150320411410195141825018617923983163929383915190488960322135998890426546883365219141407174587941927070918784291699994255855789401314806449334109485485748337648173680389591477472013391627624354854030277036835885383697926873160478759612967689260261353304765081870456680574460839742304504124490245904987592355462549506216649360592146467154361821211789815135376696333391730507824316225206027996248360589893221866267594939284523412501275999191357382257039967164162184647418483973816821527561410778391593668539673706902007236736822924095223203492944765706487310952444260777745583037233687173005870702985637211540421837513580444531084583784269203799891755287963399805691124075716172308526188219168818407462514428502264856977656678011745939165414046614633564585730493136744867587099744890985838577396978943241687918186920078742724003281890023004095818321290451112249660469282366185467411071545411303097054634852090910124811768212661889872521657920977592039858813835579819809237097891482759820695808922731502948485248390574009189354107194220145177964073151685237105491854916296313131957619735529482424648702341729124235779560092826132153467184865442962626567229918571431669509200618479770818161700758663463246432478455137221519256213557016106043891701339570677090622069266480004170571223565946408447571355991488517996733404104472902908836437211772647169171558213779950779684567671210184671536779797324837522498173056895683882843881186012182605211135481486341892915240934737682880886905039459717925488091109873113929395823293976474996771524379750275059480767695688285975093455471194489241465915350437821713120659618379822817743208331737228227332971997544035559815120289117091248403261928299531543861096369505984404004705719576850611348648517110107132138741338757077468646680016384459792736033835218651891814005015807252134164985395583265447266141695684322726717214670952870764824967810391772863561334198143205950990645175540857875405165702569368747859637272890537630853838428537423241041610250263653014936224765108111585572160032925030130462506481324953976995115083298478450483059795838861430993565497838531288644448147247889945904224502632651235764619001231974115752668523235356895725702763117784697507126233624466634989158171080157147944168627572915871416924769011744280547034480376125541230281071291180394685397668274138153331596808521103459963442974767992438892206492859172324754824501737125448168191102553812756659035967515513939416021125589573491117667636017789540842869902465641374665444902260110835114837875324124691145883102295779961986371081509099181480914745861526457543018393973794107092101597618398188458050673473244137321346002179037162781610443206334936011767787716097051332590372739647237860217521691281168915562136399845294272326020629033732753110913301009289861053899794407757431857663718801537025796086118626594102310356509682755885572121902397502578281992035915484156095196031388070566398018812330139930811373249310706284834792888236166423536301446401327401035070335047078551844703676885190058301009410420303278730878902177919350099731489851213592998931900550273398710349066588472962630976395058291902522201923978140565143795879431462986889130382236687616420761483358430167563032640730436163109550125927292514941711029345385605682535959534658734069603936925317331966050257385442591637378641019176926903806920537761075251974307528208827527771773659219620479968787009577813443314511526181653879961829442265550784866669909838444706646501271135265359514990203533117480402533497973937936693280742670905273156436861471871159204876373204150742007709360720936355275299775857718823582491859912146772541273241654161355313942595385204941245243678824501680942873238637929682205453617968586286768598210699651737220807135355025323187550749344261063202607097058229742215849798725737049929068595438769544518999833661289062171423152251964067270498192975123102529210873717627955763499218039447688255699767157736579991930033558689233968500756889657317298605528553728394469832582163878005529260955961311297310960455856709203063707973101189622332210773023122579798617410098689917746241765363270840184297362096369249800650861121411889011847952333317419566418803029913181225426699141592497732718546782253999436441687088343951367443807585709569842528773269828616607616422666439006422412802944842406769782131905621368297215593360201509677347567499731631734201698881111941574561556109975531966531372237546873631916384762686087123317692334273633884801614462113156445843114749415386613822937193028077106948908327288981504127814523119859816869391802690662309564156882851828156567509468910210300635708456934239253367108205200715449799032293416483877059319941030621277347960897684301900771483437614114920132430177830547354614820714541651566750101874282185789923194978646484666819635190745115302295717288376428988773121467033094104565939044470392696861315581714175890182540267000891990647344387344703886343450896527446124193780101226595880135516465875309449903052037554888162755742672428277616409791476014277602071450505798964823075918508816234400368980191907238885150521429425276968528709239948371154082299502768125823790908241485941492990535262450570103764174436021057991358117156483760281506339332162267779021195132974811437957611351676840986017685641492831234818881980610224304287368172606732279204653738900119306640449747818200298892479089872702054938258578123698078491408703460222374122547263924217553547725020436556816249990325489205103649877470287135635633884848863969201913964973751885641587962893622309492753035021834386291195437833393859549761126080623302066804278424998322122272344630202249793295417660211648415209036328345519201015195620823133750343630036352482608753151328737785822121481487822714588321796475813176191779162317607956572629265208863049961311447836670289704614996701194462420582289651431842342197199976454685387152737430717863165336000882119524990945193386067293854705965901794574899273737018772179003379806353216114375118595949213256824214203299989672284578361809100393187570202837451045925524809956471643670256455699297860449765812697362778603817902708179888855002296100537586727368369915210187277335462264084375648047506177322880794351973815151496048074596344118946876171515576129529518369522188855396051119662273526984870252850218124244338003067167927931436298965755124398024922064800734485848422426060662212130348248656042037204620578101881484926417484393219407520465269146448297436050297769005875809909207916783474843778659206390705718105490538670707388040650925425242857842958484797499297278949515742324047906471226038004756414626111017796209630998484002471725046660992019397957518574178067401535280638317634079291961355053932489404567893028148713554761713610330217443353596385164596233974092983832915097582096103995421805765459442056985251372725622572977544649700423616346202822087069164374332397346288592322248178989253080845149024667216011560263496568044201049531248545064374504989263229931025579883466332833422851327154835104636023968361504948112400770277349638283414657607125131522295162165363048583396228740444818858713331669895458468083546813710177836895924604261355972291269238548899556365541064985448958727222724187727025186160740688848944086127544875691771862865484465237280968087390329406505024253393512866487965750455944750434110696373918474689943968188394008068742931790347419103418483140393009770105744486548725523441484746665340021344060201514470560577224487734953891966298718525025659322834280642236837519679438572453826018080793613873557121773864700874345412206428472355863386775600946922395773242590459942597812797512837658452817190223693125657371804013620160382677343574412753990535250378782991171499109259473640688726974466688720069130803108450117273722517553451001311347843283424139753976776192962409294961120295943281874869464187417927111856369980735890320629473248358164780119950788560915934764937761339057803595191426334381993186683511856263762444044488477823735992022279519220526333454504366053127060868794720812052498637521702248790901017860082791038768088141393351410143889501837294080511194422203488498596745520702360431316080008845911801270891001549911463436235977218377194253159098331996995574477313400998572773399614072999142214913582365975694722159237843400354754140172989555214945868294934214938343577051642625817342148401641194679750073717041590565845498210226140808110870639228415209378312859978539894125836520679951170889785388608494534784902802998763102000116652758775818976317093407157124721052452959382565242679313937011884749411943966509218656237556114266248348225418273308611787760054390982567796825385017901580169805540689836176428152882102413678690154486784375542109396880017930838447704338461345528585888763056401565359782947355940659287470638767219631034909784957115529185379963554215670809489594054004635039880297662472951156601719816517916706403654267370041486145821548086539482740574473282700572381413394055703548525392051757647566743296466459729094710956885083520685803255959130752064306352568455480807025597212195994447097985122551465657990986665632168634602784447298209582575575184013177935394573837689990750578092695524308951216469621633959696394332854008886357503077006869494651722948493051511864707937871201543986608349335159567754115118635643985614225786724071474579170184089429231286341485984544088101568768890754622780574735354544686641839083776640486249111822299699106631745240001708612425332622172107470850624895860085156139984519356597709492913686110359538479585243131780497644544633481233132674329556227826416114370590337196704110146258539801397187608213689757955185589393229143790613363767439306418840256646188121472752923799663778252569725699811948851440395532227154144845188195198817847705119303220136993250874070489903669801679732802397610933043542573847903761545538245720491848209125081807128039633520278325573011946427728383596108501369124788517261783240332798126086501804333423205980195136418911223383258405758308615884100589204665381681250483171357083267122633290480986550959578640495287163966622407989710513088818282769249555443488156121310671487243719867062494335435916970847662268897699013313966223963595301109803316785418141463387746820482986875866219642530322394572442373476109683650521679010772293966560074660371492464136720525693329738564000193964443180939065318795915625354825973827495493019881030912145679499485858232870535120060986735372529637369216835472277122397538970448237710723536026274604760933602490425631332678347023890195793659442991594146711092488081932084534062960266120693747840945972584032192476072522655893337397251929331842991471766139564756536023316366652289958070524247792218058506924634167746971450696720957952992783268530095694666524660342450992818795803879253176632450648893273357023379919747267800267307294880591917370417786220179643472524146786802255305933349207866075238848095661816867596182991156969434258910556283542101569698823773893453264906741498422516352256730458953117697185745242563970470842945437845724125973895865728232837549034712008626222101067699677566392425652992612815779995309844019364896266499046059513663074196485754865895782467295456849193973282673210674697521757291111441449256936185201588281590625997083534739555943465941071594112926597357092642059430301433746196822153689177132356694367883338622287493788134995388602094642822714252403675646684233710924184901973275697530153774771359917056569520242223263966805619898813950410994755342527535151605128092927463756719077053506403630623534103029800343034962919214880204369119254535861486357718073680655611050503213085752208211568219450999667477004409899162669994309288988738815152450218424508687927899278225642719486294380335972970855652296726207104994638621708058801119825950998898645813515779626416991053641329604361826480093807778592368672890371911613515813774106336275960122318382847448799151624326091123142218200153042449562989719688229670084660408169504212045296741091687323301507771785948957829580132374741318770660208632510841069011498086197706124528986494735288083170573986858887067810216510412797520520183987423495654833846567389502811764707762189960953299905487909609185801224677928003154215605935573258715460616347616653179599782518513309029366572799282453869613902779561308681563224862251507018000542020951668442216062534921214800916609990034062679359626285734656347253047151500437710709185732690077979682163120565377625969872543676027834011107333826211669544585291673139498415700092651618170436435671515552048138540972812352332216589014373323326703990138954209508980928919783738281325907591313752287436366070513491050395727729584142023839100108154073002571842221095781059842604281816366955542119275085962153113745400268613072641280401937236843890264907884505548818219088758455113688540248047772401409964683148608343224973980803510015351547879746963688143841426536826357619618996686292194466158027036784180987346505019748787580444548227238113079842996972976238584200828259369624091740648498896717529821407922720970509773888607713881703110905831136792118697145327170155205049538618188238761521079046048913569077098158058321468140018631229679830757058725663374640722649544166419714645500104268145132069387325601599906584946976839936836366413084197500119320714419586170163219824275802828550669052698714574573533989612686117202488691054942843332978558279577340101682890826289885690585232912932171228776605234373699548073507106024769598928215143968681368604111589919805298908014803765415926183598980606257069708711067621351505336701009655758218740224640361941738523992717568479785630778209237594701263792994813132299088762539620221603192817434032069048792874477959975674038045328716279563044949107880587258663006342141544752185070740865757080459020871673492110060087016546786186411271971827591683642313335470859927060813272610518304514947342114789259571617129233679019524198470352294207553134293344129930616073755042935359331350515086754731601926844036399156011882096881677761277554902676866000644040862270889022776959656787571844774964492985616771557328966094642681401085503443258327152275895036495555141793661352979442941841356885097158627775840593707445253565498752023184160448858226496495452307624043997682870710049738736075155752299959697343364893734677052078984593472808035893858410125382498016648370567345751775666772860545157309023946266581284847683019933581867272208945918099274969843188681972318086291569949350632250320146961162113503008119821957116647383398444299719091392794586461078750448163969228936807459303132618301285817563685730749628582624974275856463396285840354867784976352115783420171467123552179696172777221198754650334340965301616883074876175007696706567028253543630102198108147400400772435413279749764836185542488923629177857582094235956234655153638662609230707666302508836783332061414240177909908501744058640761757709313373736068596856645271244188114506051752845423602066504067398762687789512484247331248608884588131335459801579146163585755672845417104652376190854048539881777777017934990331706542653275888880604343893315195551312394084569236000931304838648464007299858750289174974008977781902596711276565995488748348701084939638832902096436320669902373298428990036515203394714044662473958026264881558793197654625339815825109590041809457370223962665191198130005544336011909899682625183531491536022894882282838231749031966012976990931835704889231608146713819592312228235487627674494218774574657202353028938685526853117677276734674210321061533944881928110824892600939402383295312832960293353908351047252155615990905038048699315053635798277897559112795736737056962662564799723554361863400621061840571960406672559482848563713663031871378607471219333378568373946430425497704146903095961925541525546162009665867644678216080025507306499314291929201890336384551786922800607120841112714802935199023840517931339938747545361184384770267427586871148665393227656088762134846122971852978741334042145935068253808912498231152285459458198391428621383929360549799994920547772955978027045443516494727625024796038346167578187838876368987510782897373806932832815249819776459459020963282991921349559999768369018408390958198475401287623636916549680819737070776063211756420568105923024886415264667916991969012630744595788319788980979578022514402340261476745637582621591937583707703580822346405240824243764837852998761419009908861202748881968642630373229762142749665847940034964444496326691601252382165831409194884500633315779053436830485574060110770359487453825166094423895384322156263282046491494437746836123699317175989151609310168996834412792640206374647813207069511667853116182745754037647352497181189499239895596671600509028568728455378320679094727911492561819548009532206132504220498563287587545365200046474068247260505323741396210813979884931675098523684646475283838633440942554467018341806877388673734307669670442494268485906245556032001863372118010414376751032664959581506805302146401717429124411073993638419630753171445447175442841701980954095975776320648933918225901402792891898442380680268072150355920873474731498063319620593380411197585346052687626799839495189487239061547015187078112530389555308946880093585393937217055575629359897219178658976387451315316146128034469659046076969059248584582359124581518094342401355916382681379980939977515905892713636427189625667029494742856978627254744313058316897246962784324382471389921891331708516555110116825641981086372010396566139440379922514767308871483065687886218843171994758409182319069599253277089030714169663666462782315639409168113061554072296467389354513498395116047379840744857010396812185978343839433293294027169481163904203140869028065609925592955793153513517851904718109934834253481124754155999734130228374582183829529471500266551980292180626789757459755948760959215358449350957424067405855136833363342504893429540376136235459887081300934521441008886797126432778791352383175757851823402863369392351060164839109894839442276093539783716207193413526252140327379757146691519625847128021868216745476301696829455745565423350070115628712399624710012500179947223409490302065190504995055138281103744077528967136696671209059065289753257657498635028779025334480999604326854042185648247300693922922001957737295911891970312423316944030244010437982354969386249168901610084131531480012428536572194391558584098812683374034042388870461204004340980409282470756017144311714365844369690079741326121030937591252471605257600103866748991446307223269153871703938965685033491698441498972383938740851485287484948078297421806694343279184786057585286960182747283964494096552841103959052139159658022707757250096364882006291821617909923602648720243085673413106848128088480019273144190645153290928515574329883075320594330742648714514933009755445220676068987892942839694679314129221275546884028797793137242250939514145849972437778909489841777476426018546349463288690541217561713360910013576740244551114725256244283156601906804075492042754749148839102700938851298034299982077356449325233772283216419753897880261586594774946609249077755765627970923954780080812001064433602223305966946443918179411688913421485771123112653900206256377313934214850085726239576159282223117035747157937507181557469195859487202004014183364114398054620599799282297968614705197124040556068431457986506842656480839563767683097857215594362669581634883074010459507720342660935009622424295326050840891940913313942977050635975370060321607615981726295959492294966000267778226802491068953696607692869330635154121703358760683818404210521943336429388245769576909741184019321332324418697201268265970311476804743934266805803909588895542725802531952745218626243773211512600749962298227506812622741203664256961549893306349286554262508217483802185925665168645148251723877569038715048752871146147402168755058573710803884401689318903773615053094385062260373691207428900022145928267906074187857547487530086962094553597547461324154658473221267803535914296168404624692721950382694696324520534249792817663575945788314183478489716244514444983424179347666365607900986392837128821179031985515209340103311908706317552767500688192297957453234637629372761207591560371510479252634849985234090702583598356552256299854418302629768267172761348178341562765963489655364959041404873475460780329144962060638378967591756164894612778531765597184778692399148959087028600838105201039082746473916580169839284192362464783487171856001818684530724232049271674039148322054888696895218915009997585886420677916376302188055134753203180903010621032674128730120367441220664956182570520928728908634566496322276603268159841107867076335636479097293785792727998656732098310832921925078438601970676791861774612441575916608508563564863965833713588025883091642929222524245351477253121246354631000341885160027553428790030549748151914287061539575889276053833134440799695648080472188859376721354448104788609892703460788143292251892776057767330431311901286291526105413086011942446894583755701970239157876827591609102819891326752273119609521087422436490554277771985725658001301648721168877741079506234771003852606412252709030148742362123121749293469285701480695780850469196153871195974222769605778478658529561384389079313683159030005947647446560928926560646088723603939883228114227214397599569872736287846362235683824417262777744311807029012755697172214902226585549536747554292515569262250368314688400673148271384780757744642074033630435989647772720544559038119281338076384646849642457993164898245761492803929764280012831111368629915088479267202695212512072034194921437998491369884059910843068106881329715060802416592670507713475077256253616909111245369685159483340942582102407404899048682510652843197547976772826849706671707240342822392269748837651926149359047899016745011399292648165218333247521075759453932564514889116228125392418829625573924132161665132891857362965770186955772518978239858573298173078598480453778922732294278828117206926695227722797748293798273124630083873276240487470751641035569974469147502919785938592368288436528288700137091031388558424121438970261236798977268519200231877123204212016767036190837470858560711251950715515531837984572570445287369307630540275878959998599131160322508695127846440246781063841468096868090072631030532230584356380904261248674074010291334384240555849998661871429601935027623608332715940414613231508463178383662208619821240243945766770434091442305091314132870877814427988711105825217047554308986040680424832432930597725231277859020271346542218139563121666360621789927351896163639474695765572396304845203178605479497529242301989207832107184678483067685202115336765506532171615272114345298572025210252160683317127874130421268396094385196026103452806933439621897085099971036302192204693294354602786768085471730625544143787470263224225972074352516990017003301668150035063106475805018907094330636137342681526365887826739030605845738145208807059082132887016465661841699198023176130685436849597163157904108164534553733965664609663077743013214553850846509884313753493981332106301240587602143265800611783872724859133339101053478979950285385922904133633453197812838203850362081182338130143868025469302129421736377767647251235470494739175078754241316361276332045826143448191754707618423975613085420581224029541020782631037824303423446787671609602839923059341275702010247106032655278549074769301283041216437062620160323848129914925512543214711973116812161271059192734017687928807723043733113495429641985047015563869261341789853324503716730046948692475840246725692368258450690326728452894395827012867633129774210349194698074008000334529068575913790148013268624740483669874242310205692021382870059275639405545374159769159747297146380965442094811412770309595065080980656167297796808824505216224383473451289978942044812900587079336403331048168150385054072874024494210616935099439790401747015298937078354808086286301614303796143192389248531823242321826601965770039435928953273317418299997273844507814982358598681272064040059325126279803956140697009400885709631719156814007395422505061888450819723495079386490249062709483953493591156585889198485730054168442346649945775147472008804453468454973208818859100906751487252691066608229312024050200833201185558922736205186819308778082133634376686644621433907520061861876975498458806380879087926507439078206225521129680841444994131814358007156526846049767880916216331225525773849307205926993003396956854255313491640629760034493049915154918526148064093724051978810520591023039503445215113822883178154786809118505563970557855122054910929832558826888572370487365216191707046340704415041701977495884262833614926272992632431900004890247691456462549985778697096445036907263883946731239543627263680296547030883610993181231024397922277015482286868041265787194560705647057095630893579706394024035235977736372309083671267353520643185754187723200830242112927719039177283621211346671564788094576031016014292622253940952954729993167747860405620532698766760696650207572692329057264585040311876168830085243198228958603352691058004164425178675466244707654505270536213376542155889026025144380631126068694772334085459528406820463394779953516258248398080820087264949594102341566512729893292747086933951717119203955246416946533366452246109258653004761163016250291714193883187629386032984098739618722372933399973499117426302896210141718971478045287227762709379156897004955093731485480567539434648214163890599592192642975270891903314383550116493531496415451373212937591091320927876178529911833873616569866127679829685281737719672312949551116540280950932947199416185343110681769829584774330334683858918810218839135515812001069506624436568610769427338781752903429203164894411251100076205967710523128402547330585784164068415462254732928955670650177114895980612606965209280090861945042734599309890063087165022643141669550964574768857340642890657974058183215631755169250076915314766687533846859998549837662928459538105569527281061958156896388234593878792596019263297155736050133800678705228285403620211000167647162252264397143345005388632099131349914960234469783678762859273353089034109286191287249129437665337773140114120917304409479310889433651631143277319303953747728143352982420804463048426271863139360786016216597806731249566744912888233993653243974240937618991374814051826795154276728305058892748546311074925643416637231983732620934950874891253636443662837235403675535497449255333223772242234424075020550960837160033568653113870187578705920835702114736030332401830264461662433213148656555924453832773983642051402873075069285859424015899797293817803183596158795980849951907700908876906052788114602385654287513602297304245138064491145384692298403480958969076431086773908685288679789853914583512910535356285554357806606921319634419366991749112160256813096837893593941018403821659744923673329498411953317247243513212439812662793434225709478250387575349177677612221245948366216457609509329655265658938165993336563742192399848509476716240467575893839271167914234818758544285015210221048113048670916321271270400751225122576423535355252642027932190301872275573482374605952739001354395779828938097065578199050782611416964602234570657298395884195910690141392266994300127380801327589311137535052685746325939505741306975300373500129699925545868795930349386466917875116899266808385504383979086976441372111446984502537654303498935172670909716896613838366292765030624245354701228958474542131979557552539815188937571147761439789848977792271193442342357457589275913539531587068609627682029577568676901555789869442669192932295989583756128616384750249010044034087935555374399347427020863507432677153762393509266606764639242787465608859349705721187340352867288839412953472243828793498554200937823960989890353599884026531860302597636667244475159513201323186378385669049559845319368637285534680875654854773229037679593605397703285215804577564048431132230197450687172205650649860420598510356063567516271312134692864165530488690764991083556704016522438649661059848004354009408277395117550803442554716024787771019014897472010736518996854975678668604843364112107913520006455766233383700132879811158378892258928755277289713194593347339543906690354118504060726335374117063251510552769985682282898455473720296013969991241830919693308749073020307986034974642718585180948366682516184290933371184198752074326630693661023470096404149494556985609922571573379165815659357066968044294443337773919693678511934499417035099653645364982498842279728071042914509358114606303016703410596805327495882865283853043617937669527655988691799448747801286374344362542186915657711613270982662365102293928886895427658050472800733836494438416789833842274595442892265916206364686762597721778992945262269827248255968678440462418762097747847689278566793515633886157097768354330031369179370921856232284431986426739131204503254539682349070108375337632044017016149402015516280915675776500527082671314509178857988439079992814720116306073860145018734031847073832110124487625406668566136665243344573088326098787851318854929864569887950600858601696329588566770609770248126952652485070849137698510001066618924888768201023024071167770881843103193858803564318293824574383213239079741499808738862694979553679187466210133263001732525614939833643748242598678969076509283258935345024833134654645799668843630832509381230235252947395833823185855253108435119058914060168180088675381193112074984330905864131486735328811270453762112813595736648158344105035500977250509705173857524784899876580332659079159006350322292712520057634876127445209648301855283844359356901608320222978877460588989884833869268581025060883414683019111013942731715654285434581189986809042915026858559262798357369069940466315942933764124469793995651396585424401574520664308820972535847204423555099297339524324695135595232505442894635490305073433992001710906256605759230179076138626396261581950892024835828608582953671728378610743306829037495318930479971143404288743929315726132606112393870363924000175141366638954293121123434501497676927383322148979350411719070563894383459577550509640625203921018530053818442586790801849591136109932575713039653211270483467578964682228686153639658444198546664550087832207436902892140039505828243679612205260124555175699713676557007350099043768053337618552431771172174042383872061207071764091917656720730280430640288878620209534878745226686790668544848716526629826634804002579838569361172138521870445729457898439951110835820142242635294625066384024412636065554133611385415766545756046643036621701016179322184054303927191326028469643538955667280288608041944799249914517366694250476451280424325372086827675949199529691050797695870368566251994311651697344677191631521384470669899531999172125493121460759964869800245618498688091813147138064230875256495605613531238122680786188778309442583342676415684113895752765362599460149719805813796555672304653776699830306356175084514925672089738205288130704532899666317023455781375148857736529953934592491752994576840320062067130634501257424470888985013577884008892805524388531042100657889402469228642384757953930625547268571132710753516002421163733806229857900288422074351703378772299201252416727763187698341218043989474592849960896985286874262931088372941815813954370810174958630529712822764786413426736395156239742985780399331108704692615029890338087446978968793781885547540405595877359825984412614077350256766005816606277177927411243601917719239240669145189352317893346337346034990757824787066458571490591888348787962549811536158396436898319414390982975468972525077781340808973212046106838828361505721534596943092255203741143021085880465059444906046456527792982152998697486775854332336854617708629277959025190527305100983944353020910910370435698351643632155567517997908499460584797656420532508094918215824630773057615569887724956748623583739407632760454249104706861310946700490013885773763600639763930579215337187240442401631042415325032358415231466671161648374463923005916781177205720573586984037100062414546330735319826567330060558545851598687239628337199842629855746006835185205935728644132042132370135407125731227892221876084731616247243908395264096860110887491875297077679983673963767638505021727640104672359624567033818388026382046407675695690006655366579739271566073211980256269742567848177912659913551422312889285299846640957459113487549041972914939851718665901540809727471746185747667663051751967229737676356043193721037657994978681839862215242613671195797674359782033457380222774295859289767324953693902006993783953582381119651696672783053614664550189343770132836465561044179784727516708003045862715101720286907883399899258961676997493094478878716369303021476506945589593050167447721233565515144991499928153893833148162364275913008258926260772379244512027261518705424945748324776865453621456573147967643875214030384780543469564718062054644144273461317097883492235529663540710379732723551585902448744290511598332950034459813429028035843162589243775912140801380313601518496678934934934865746677119888224057516694186907534658038220121126674506564204704400783825232407328388380945536417451916310708588988254692990617404400693617365155204951339563604659409286869124993337632258002170127684474006831825487798151149251802031295913856471133617930369954416535492942661416888696623756445052542676025259894608765847917901292096115486231353218389776077812587210739668418758756887336594957174785859469214829278526187872493218817883003961001010644458487528663282943155984031097533242376780188953350992175239234225608487101427079519803470280669621117914520910832437450232842439988760831364474517407159141177144671986631439294763730166252759291256014474759444404599830077416837122233575480979835610926658934415928025778996876317641885948007179206947951374426292998133416443061333791056574269049399053024870419269568711552790229380103835394051974487939630657125098765983834401168776795601769599840732412172087562707328773575590960905828527532918125507342922268019625214186702196364123608546630961142826561567596077750763048577572053801924135033872264906603230915989714383371957894816820200117315686239891476418200499831578362411943782237726022168941979856853925511278152723895385971296031443590277698619478153433745857293196965798802887775575053468026478704190618019568404242765918263616723315204993807202239986310891776948075367903176486411085692028399285329758084810462400406970324771252601340331049332062041703976952035670207142814425560446840706336180679973182146622651202653423873423059954273011628828556884541857181045912080280203513507990381465451757877969607533752658705080322877832049303382512444297055218134586374202975763528721998070707492560109896372398768647265244764573345572512468416692293544986931312058697147815330831474371732384801440307767740077670593705969832503031544648551574959804973545473263879616422306656667286256800542117589970544090496275275963823070010951385458807932412568492274863667726286668193584768278411491346335213886277376516462520533948535572886922119220227929077483318247117771551359276625363512286553917255800014677160033211116498835110421265491719314746315882495115453933331026005131333772298356314152465913054729606766331785688817700151397316073189192950997213704144761234726224842706734328089267355669309379524396371496735205263746018622409048555765381448439401586316017716273934113622907114765603483303857072131478836249502252928034824042456329540993004326481822236577585120569707430925913438859780275319417090028075626267704009494645343021356782992486119457097576266229473626623930285875794720022763763354617172178697352134632816315756397098316740203949907806572334742406597564233471275054373800916059902428210658833861927585827145914462162112049147574606696817071208868317815791377934467278373998793249977625882192397191527807618169372829606507496581197895899941361960827969944229652950772910729616203682445691320821214428859770698951236952481207998434552457913614349377512752496604924861801142279194520648670345479662782445403379568215815305174366733524446995866503985571630019137030899984685945340988577120862193734037413676882422285579182689398446875935254751528432075921887959197720261281674765322575583760609309224823633145679739658901430875470005195397548773535569312505849115819733839408161428949577114155060351723261592323614587033191099719174831532368076032397516011438832112269045181591169282035905238358494676977093042259390440203591843170062459349373849984877235122457101925395198441305485728510887838108626279403461718375741302197269732903244483023537658346387188320296853066444647017932801335409624267409077060408943404921187148882368481492695259543506475316575910561711897631225503111322342726044469186888620991851436719776557740292638800301641440041945410103702861587712776230370271804218433129165194538061437448792211450413284361103341811904777865628845173194554457172543414935850144318078186684975146070047294603639759951910500056077249700087422296887144375684819807420053952398047194575983170516778068790454356959858697405965848682746835887873786350718749105583685892185284426037879412402811654325690047218439323805578074903606037944311918810885733556956356555952729690144600402513960539296497480926467692779261850388315183951055689679714611642908287871121023108031597644524850231220077140595679894382991259288497579293323287336706875796057314887197918864131631828166843067359302217962835216435493152628323704334686829724864208205189685742736368196255842212344376966319437162545586928311942703870095158457703505063250468514631302306331766846274752679611522577172988478219581929660077169652073492267819513566619846206221612306599498646017097470841067952868244521939528136397085037880630498523811310495512102006101363948563745923314642398046085128884369289277309932928082739265385406922463537847933323374764924656102409743450685943721911763440451957324495100424296420676235260042991160125589155670124793219839185464237258598966934198458222040367397195756525404658113229542781251065163011454796605811961385977588877967742134014112488044765428596401987621892261595976223898906025763419226849902903984289178886670940393251326351816360337734990452899299034746806417762334080883060375240941250957330246788517762290499025998894805684033372450198208376414792262358667423906273568181942895600034373219294217734863368206597441830567449870183022862208048258156483794117803442954253865743631847842858517614781265499226411124078172511417206722444785949419992664620740971718334051567046420293652172771723305866013618631466250810018653573323208537092237223913908701795882264593207606406033655812075524219816789658199705652558162565304154798664243581138345216056579274821481732902476795681535731323506278644377505092745459681993083396634812400276939565976204412941142690058876819404181918882992666374386794581286980839483291026306773094808185652137267198931075068973975391480378787478451739967853625389695887627744884360898958009896248568576134162782387374771542735814155394052996536517233953532747031745691785802977815964074867715835317120820332538521373977264901252659445579402972629703504205021168098156955738669233319940503914659506368189378525292015206013073651960761409940222751556054111157642308497701092238769304023596437008937263873811858639399972904842881145295294640043908004778225094850548459456756565337704646451602702423239996127868551764469128152656722814224297980539930859373144701060779264571026369553715095326962372783633519195887391858013127018169164595221123228380873144205906940748665371469183583893191279304878130352047972949839344234211802103147405856153506867287744638736018095857643662301371808642036438363722969963795737748512936526897595031020188600325856234356012812446593559910589076136319411532847677952250191909406551827952811417001252506999629728664495446222786810633609610714270115737161780901220608574429934891564304290718433676389912500819797067901797940833719750075365258531086216241359243254232690865907767773795127189281477637518983673910862528722463848653139824752775239560381732110935294234729066586991896583825231821448391131061506794379294868256461240959573279859507200229346417953691413172386940546404017260516014658452597909303885904851510197916850756428253069670186446533354411387954121686133660815118061978598637356855243081152606763749848306971746125478358505453789550745764072467112811594872845851536991281584369879626947927184449411506627309916404525622086209141783073555528618915308642946559001117075841086963931637498516614029572347161562337877053781162468780198938588864374434310637295284104901435450938384500392465714596070455525735723014433072200039782678054888928031530228638418349843285298681514830907925916250419672440682539897321592835774050306202405456510994205322575761727875417438053881004266903475852247141491663347268383958276168482460431114512905062131053578776518556315095401700016432765216845724216531567107695415363798570318734910917733124935463150702942637435834205850130653056218836798249138630619818565868738811857493045590696462217800202545654014037837067797947055877532702015250632476057899509405774683144775867354284939897130454287287149101159292546241713396893967187424010297145960948689094760815850450066581883984985806170243165058369534734355385678500994608014185241206688906327340717639660025497011011076930933000214516377687855255069284463930633110204846781966719195655756579775526372516700968653162371813715178703541863536826881720918686059377143834065328242547818691163063751819365454370437556959162498641323950467390076164698758777703718095699295145436281686343718746355576506466399387947966896742261581951628525430173464307609896159961426904833031987228595159217815056654834979288158498209286357609211380556289768731786709439160311837935328637678881462006341413293616633382467116947827802976051012490234623578574729398037728949679647232293913312904791228124530848828579530013263140017907895881174870758733504876179280735905292317518967388598485543377634029324476244385573325552840362617277586446667947723993600362938021956256219805830259602115934621231124181973576281123940187332054555678803612928615937604485696170032228519459897148593409304911318463450336251665232399006927922501602735897277982723251467941338945132109719997660096759565211733732249465921552272803555769253426112535715199890456763285060553327992366835788051085860389025732107957655758671142965771121739526368831181939272100854542526313393133566101379179407394275489810130671413892933757951255370917296775519105108146930586137896189030207161016983312493514634750590318190369062032190661074315347888437943282885235657982695738215823701434907113007154860172685302149330594207511137343096746712674939482148524302573006001253512722320644571334838160062577086561737929111022219348192208168227300361368069823133583054774197660979812734070178909072140270086213019004520034570142129501070783728956403990658809340395087451478727526605688956087539147697849572183842566043661304160647702706732220431843980792211280634075333569408435352533028419988804211439797496216039746448443539905277792599796420347413835697513353823265862397475031380418028046844162509546980971781731858419441311981304211040616155026148603394006604090148933114016468246877562614444164806216159963560265698659510058225936646740238795664492761731917862997058180411743343919414826157406449648778832590028639367396741179929920828985500194137622618313724949658509744490634650724432863716989779150175403094524778898511926281224076781604925651816137829820833117702696410259864655676300901669153457812916820467916095373947743802988468880271590962266381797459272061519345598050871915393728884049116617804691176218589688946083958749415933997339134557102339651969036736462762797484949519735666136004532458644912841078064622442091001355664450503253268873681621440467334041416684991741064407899810667874915056626654658871500511483415401881545457307615045573533429581668946320557976647858788456070153093203773559615862323647636286493591305869283384554416946291379237898044858952401408734972945185496046357161946649516934152460143395893540532538380368253755445709904163486201486123335000503687510867150678227909040383233326514874610538092334858915955634327093868057194631764842743543485731645778977866162506813556442559203079559685951388274391631072741727478228533216726442895463268907155505966649779531728264879967682726059501297774561451362741027744692727027360890473556842301214652093392971434069478362168206642591227838127629035091972851416254699740919278360459029729885126200744987203997471553435791869555557427146777210351607299228672136177386399421201591778184585848640867490115455098204323956086487802903688177428364595896503444156570130255015597976377630850837010150641725100090944435563077882887530985656036904277883761749827422056427077862581599936314024704200895555800973246339764988340598531553632790317445008701167051983369514450268817530983073879814856681772536009669927017120233912084212415919698817279131716859655456238499099435658769335607373813737993286279028402691740865105616304918849387218251366525832361379794476447162630097717131128528874703586592806309899363124786152139660565889596622889204010964638597644054021766045317226939665984754715918738692465782191833357142178703333611591265252927857484265074161778148928595563923153840214973603700349474507690373676117435798878714114302018580295391094796387306801174147101649466726948777902080139125881820297562187529839471022113698430543354185334023593221600450553471981558848833588194348581566857816779126237491335769192983249065792124369224135988142901235566258797180903841597749444131209424451645681268854896511960834245762109272729021699211340274097698442117087454979565166874759345118674487079763709240032277868826099623552847617801710674765106952843094998307326293781932026466152755925387389478776645044888042531989308288857271828666297274960511959446648751675537585073012383762098716825649791291125768250168328434285167401789006525113334852275377974841642720093047189207190441008015737276448446593258153911497665734000806934013679940622722007132624976050950874820654997251526391114222817714157401714378200645384891599518585067726756175733242060442382097027494939255780240637925005157216231411891986263273988476890062375119982549897648206719954477739616262059304183122693325082248335703422548338258023656399752708401156204404268852446808457841587887700759922250862873038052054637222799688410654050763671853558346773386021479203888201149897529291614138482360706442041253105021137593288181894322334458152477807741201805750975954586962119827744960720488602284400611230554585919709821947544616597294562791151603962738546224095198617294625030868781322860492048766985824216944563042251400984769039940091137472830101640338715575098721889201750843516245286991444460877869435359530382608122610687706962078352287363373031027129719543604390638345063432828877322107369132037383465653667259911124245480951324011920697103533015367335665888095347221213347694820902441510793049190549870373332222422396889056295153313742437876153876501581051992829572176021574095058926011725238593522616130059355053248384227872415602008419517228862348095575347387915470056732426495835443458444480580239835114997809961609922774790973493224299624568759453489831024023714027957748392810041109684164205186365398128175201305199991646064523854773514711820251455973774948527115237457242368186938232961090545338166537496022017198819715874201610245276534785599305538568763627572893579792629166917301737251708849333188164013905272105843193347571272756127953851435352653578498363760351892207894618618878075167666095221311397174054152235500870275262514385270885059316709901420006479175932331727978535722299248535439664979633397727355534087816381850070949691724559593244232736423601822444176919846653371999027591464257844360482352448589933094005621392955484835053315394657216650643236945235652867271153710445539848714218431847800163215125615577218998516673958704096092956324613256489597457664952561427710318675329390603081201431063486757842101873026651273593326721467496910184286377820341507841992666439119611054082799304859108673841753369041907300723458203200678879843330937526312063866625691194414743436739264312305732935063123956184085171848722024038828407911167053579732011321239301301358585624737876639629824980473543298008688277113454732941183516801519122135699647348282488272683393947302149437282762514977988966197981921120899293099186584163292955206936982719749528915087048107689409013016714541641464420167289842055339267773640187307013376628324267198109620672930449418671766034064299784974930910118076103051832594756334906701499305927102928230529292748546416107662605925446567867074608456908813214848222488160425964650319020588224999253141782902640566104028426098681859010301628158154977880592659340097823583475072628309003830600180648803289310017107471706970379780411524795477725290489465733755324327115030823563382827288444556417536177651297883715389773346542223767311881079641847919725299517963264928647792765475488606607881559063362791520341286630949079329314454913910523255887497754790506818841963651992957767468148669093961565120563580660648268878046703586935364399186003368912826369563145268663335839719284752446164556268194389712037458165048143349939676677021953542389103628727552398966589496109143592891525040106788398317763773870652199946813278280595411989938306877537646191097681752759342792453667157978576939955523411379722794296580899182259498514981342928691559279803683608212219808946749587782423566195833363926627375783293030471838782139785560990467808615507982435175495695891138890382350473968976352077141193937252043944702774596652468657523905864621517413220650261324274774925258242556165969543784402584496760434056333981833068312752828414583113726146121528743919407839526509481979117251338160501673269941766948347806840717200198483040186510509688575623118700924081903121307250099684705047231623489281085866922625366540850909250094846664312839981377380516968809181119674687380326539227458826662548245364165351047584122728566638192105253709365186721540243299678364801171899749157707694258714617658527092731646825386073274033176800412830715137071380620483766350007702725027399191372609857843968378496065060222709859345771937618070623878097175375847510834670551157015182911505494576337790248993252731424239152890332917910871748268612957740067569782159005964405846444055833287388905429229101336810109513346489326142957681768116796949933645924546719347446433451505868313456385240123253750274808080065312037256770980511825663210037657940894281169433432877238814490373626945353373710444468147713633640702016021087922795343751702079413981638372792498424512335819052435737644266772799428787503207947604649222306584475020014196964023429938129634982614445683139091761994283619981971870943587161896515299378889874293846403190080609672425671037325461359024930305625063015644179569904493436736325169236496523272693948382645882384051840630150478397631452580314721208547168842232444821928163372758129078607553567816605636841740801759653576176628420947492409834503890214814994642422196678209761630559996713944560321128634235978079256887906790382080090529796784014681802302338378834731612525236257436903669602847579684997734062447414082505821625526076081268456929239131550311041637989708722953907173559287076815467947079661480715123458260047809186367834581807490997640695506385903776404952799169040084194681453940415952312069462348538095810551325791126109428272665232046936934440435784155348660026005149874373865253354898177730167667647386753916699822586905430213647192676161029112045910075393028662846565598473858219219368952030411901166378813181871247668937533294941707685817948920882234277595622413018147402493039620119345358718518773373623518890332811665287485947907151365749604011840222401346312840816658135322726235273545250171673155911284701936099419819239124887831687576780928388611465431820909547180690540573960402726989354215279909709455041306529569082264803856027732391582820513696045745936442637995707817317662286166470606743342355815712374229573923065938933483798185362160601550273689495954132534488516369313212295924414295164351892259268032512984570073727823368583306044926221274419326417286152429096619649359268649436856608433142161227189005292958789051449597546009810878721503596006124840013734797237297962991139483687700638249752417012064629612111775665579248620815444928910177163549111369719519208846222201934240934383033666580675584380858977376400610982051663516094046127841426596062531343476386333922342412384725803824427337755309366568105941398518285833862309803830163693725758987422172761489586950959507525925329669517679921126822993494568910685422499115023006094007683300839895446000873443013912827973531706190047183897860911289513211722903390212299292787835071787773894503059940192495207257140504201151438629808678411420858505506767950050279038763244234670240837000499822082297298198885149504853946062282055767713445904367957410640315953050055456263940296999654498359034532833323549242420177160298000134604950957581971902968620061963509102478737041017414538829697381456542968964202584692298436185239026197598265959631207611042511789775831206035818629308944393125588535978273415183670675492867380824494301689672407505243670745936825473322192047164537733271571650338930432133162991404570590533783552703345219363788395308575676656106626473161863969149422138539610431800505386778370543316451573652471234135669395797527386139882135642958903580775410247847684514434118889924804165648695072967046415582260975154058645179531938466973749705493557047475871067294565254576167415699253413808372450947835419890513668976357614419884445444913367840684525635858475767286074071349628049846486049590098535269281072346988454126577725090493022332732495736309306756056284732121160192947992297440389344400344872577261310184786785286362037792206869697215216707280655691200550637508129655764385238425696950454187755530546757593235596409217502030278841060482811703684663961629040935594956439845192880789956035705477283144522313897575755474769896527868248198065491363740844973880172492427886181348740931412136863556937819409037978854054800122606644208012677536799227772699529618463970700898615809178152168181447823849866994784882714465010056975161145396456215672198089488765751933557266801665090684823292113954982508348873822308454636041122364814051145226901257517122869901365047912896054433831505683144499609158683945178957231866526993608663451396522316376373837194109258737441059110601939647252317621472429004139427780667806714861772230850065937809728201137735548794440144158187877051652827176774207867128407171568943254901617704312178461664947601375791574976579898810392423064446767353565779212699245358563140660457223625168829230719121454624101873016259774690768985894433635993202825524435396165402166929708035953514240023193211467470888270606396762658500589425611971057221324666996331998910281996317266539205185997212813993528734560204835330034735364753108737194376668812658054750023663787081949108124605939815042765106392908197742545878318822943769505572322268442689380104985380711069363362000963364767673457387090989220912881481116139647505757558348339059340379691421375143739646511264788561003117854666225108254988082522361001761077961091459155031526238737414959534650412734889428519296225722713581439953216976010741609782996456785633795065206751076529314842481936950400879772669846862551121321910279566542092892903226267153761734596933993697034579796964496519445732059505410971853514588418323762822729350597184819876073604379712331626516438913747746901181691898380494694160415600270128988066564621226565105285939965731315827000098368952250078243754396582452203800293777904866872143370871868200509660812806026071284148724652386262170548822436679555369729076705228895072685265657475010178737772588304104831877832052306080228512860427207418382493921316928278232673578250166842182057434942761397933866202935320081054813794362870912572813693649098248412176903405988693364081911491820488105290028607964455101128647293308937656361098225747827118766840880195017322841789184650378977286028538761066866687656954816727262072088112215385277193654241936460502041571078921602402370094020830559921596549061707928528813641560062941862177480172559968786817698745926025142678680903567589363461184417828821304160425942039407937064761558099911902407566025612797888247865425367473793171921560127349751748200826716841695642538002080928208460945153277046622075047924112994209013875345651357544476248457133806832499836993654479659092207062213876222687820746897644239860577075276290263864899528444478503786671013677110391573711829560296368885583066520404854041204036821966920470888530266815101518213646293155334428792756049499416530358382614219124678360874285570560882552843876792733903457380251808149812417544137452118173415743799467192007477953872921740863472318065517825064147639488036552090988125806742765356867991638316251670964034254819119987523518945312426609280821144837431758325823017240330795828658514156489151985974419280844852040141945930764086049293652654513722951099116850902497046157139829620873912877068530432414900318894098727519059870412611171760159248038192318618038962412060827662951058876584897499517809695478506325112713227085907924546970395883593551930150739892055117354688847630149894188202186439868745216914422765730097057503127315188524560045192652714463889729485616954207460598133620438127004265588816769382564714902468340543802556055146902016620252789170914027774764438303426255818691905923106374580861267900920059495086665953610821427142749918307754755108329988799141645975328494319519382204765057004153089773599513142254180856398801308715969315651663388113537951266039061092066292832943593399102328802675087935317422225681450655947069664511837115398506476190396936686871559549642021278461430850124023538946591066880445822234766436173955650352485275509765514976316691707082466983529892992657299420898687243711801129866610091873734984529870307910784567398248709494271583978960232872638647940088886921597896410674581028537256216763573685132858039749232759460285168064548732431590646744653680264637065879900270962143549358387841612554742157065300495170441265669268964552892492134259604615364594063486799454214354523826864596322892296314172630153670813637700422082356635186711521825087321166775363467678528663181767616722611171354330494587482510855188224878808364187965999270074975057889364866978412193842185832835209899661650666271827995555891481512357941844057195161124173814004049114038403801968713972685673514806766577553481106071057428456800771343677605828510796133677757096521413412870270279061058942643519584337298650920101650114391991222846398541347383706888916961831108650153970649695049527102520498671808413013596883088578692930865731030543858271827401846206739888938771349001289691205734212845431880136013597823961964664345538398999516300114428993132857486893321885061082306298263456040992776260234464303682110101298160365356624460832173431644698538971199910994405148233468455699574867836522345135892288122690267317350623756674963170769460712622093378030433569218531290031462193827656935197428626341061337858835486353907945638986880643665909459068576147541907861039288299859225025595485572819901492465943440571466570269654096982073644875298804480758897997131169310736473418465749983418334813077170116147458399571643564462322546646225560343383632228684272455653246476798326143900457014655790937545519531309643114103548185472624088323176938562829052452689746004630598012422650454291279968829045655154860437735731807093056854808443570850573118987588497319957246113160792843738203461275893865552642874068933145937055006283169033233026190462153032183921389388075859157120627192336299468252946109790806349055466067804375703842805657870560616749978534014472689171985037430023508682587157792597315096731905487357986560841103557700424993333878097498873424132828387964275489100067210805598124050633258163492053062045948407744080647884958914386979890424814185097720940458458017273071223038459260380878694796283778417334256637789709504401602799218718846389227113677744889646681954417172923775834601488328214827169748391046995525488070392041566372589840759065581748631905484509638186098504151996911939370158821882419253613615672118341460181261523279687621323482548132942981958886300001909298336006526066598919338233975866007195095449575823744195374226644558630454264141984826595230904869384800200809814735496648888778031557730443799377063810033507361169939505024085320476571011460156358354971703450396374249478233502453579707224205186325465723121232324845898989600207703419149201411841689928506787631396382733139422576847695998329076667559617097867924763340825217858929089508031970815964152592003794547887121379046769114265009830966693407435860118121276990249034967266442115615902995633677115279198417809537516737201878147049393429772765486925064461357465931345783682142917019826859403277543598448077468485542527541780668500836743370719763748112671301523919630029863843425528287326005342844285366083413635634455868774832400018821215021716342562848688728408913388388206545847093747055622511075314677655199390976712072697404554435824098395771824643274849930679170432252051752821792088583683399862106598857136218285786620355826446313043264934350911399614313867480807096422971674421044207964648000257524472886336897448207449632221406768431850707990003625167477251010424327404052684767890372057548564542908249948891005571854170721024542212388475685747055987087758088160353626184309835234067464676777557719534253920127259041151038681440322810540730708793945415210177081521992542208470663422948081277137475658516435650743440239564910841030279429525804656458688811808255417834280262990499445239851339102216530969928607183646372848128496742466034036107323889809317003761114190135247066663204489346496034297922163112405682007128298206175000022976941353294441055781616217443920958536919074851178865270629230238733198369378004902692057280186897125626306351003621347534063761803393618317026716286567496808029007324775150502513156636847276467217567623891991488993461020898920177152657413078271472808154357183751567153326624701372355945254540055457750503132435714356512581481492256695237570605886234918154015789916580000906520543568224450486609901763669917637375054434354083340014917157279719844519494013558514431667904040166351760394480450880618597855332637724690873873725313406299577386606448874536027410651926072400957596332876293076126471742542893088526291106932227823815331649985523373895595298519337656828915875176987977572265787777372529917344537975144384018091250442779301824289191652753824923295893711876807226430585187659339056838515857255381435504314468063035671869541601160308438846317840892578170695019908945010877801679262165702690481406758376543938929238558984810781214193489323282689181114281783119137864321456187368365254126305272396842666832483536717844428850402429689107636246937604714962803924546182403241543673786784988850518746063599633560892914422459106090500798748288672297176140968989729700648579247739186034261797234460637823264474948982766667260521192375410449904131829799156258055137549487551109745223511950992918552992330129481710788669089678826103591137127751164792901924435280312068641942318289073790516746472729821735382248592339644962418266280913247445245228871018246360185867470930916740832307802002901158101420007501331563365867938645675741335692346743676325511659945345774228642336541823257418991667732692160421596084133956584821951834939864064701765750680976519285335999092679025087822810436076004798622298621448988496010808354190305065062958581035369588660482449263268592968736237745616668255413033028457806041697410741423508527314826537646271435735742108805185922176682353362045270530703793645835632173357523095334049790778798055840867680114758687641117073073604209406241044149051566646067005257934623993906104868205728033040404663951229786579325864849361414497764050939970828595876506245844922837626580233181567573886542236635017520324809191756244181703549574286494475696161936532418282751762946570940945585573927902314351928152762540274684033748714265028894744574107955973822629414706923959208486999069740661286291228984829338032247753456605744896462619715152594364782263653736303914368946072274436634914263960450348200412338832415871763009488984816448416215084505022294414667516722232777555937888433538163443213451194583037040927801863886308120057642376688797286426809316922236689849191325244722858710755659930272692283166629357544150105374026397923428215273531778478452564670262313888949864017038426163119387291958660369412199679698945364036819779936551426433451212072326696842361454495281250462215190512136419639497987506621241115561322221323597014001764705991401698023179003516712360977367652602604873718840969744650970882002827522522561242226163974861973584790837116529198769653048554184756286675340214649813667311429987407466665747656129522777277365595690168184777636296952304556201239144352384527866821465971475005043191761078997129769504703184975277236342335224775512148942753132534919010384629214354883011563265685347529050667404265456603830673227984306448789811347150724022009877436081350052559976779385248323710773919478219278763310150168200545493796684357609693009339183115058166219540457826871684846667644383660678882266708510576510764719685489058541216108526263928619890647350206710365581353126615124272677502611758412972668729014083506190874190009091659832190394511643888431808218102256283738467591626388683495686399322382207999838549576490804431268747275005543032332095136803419521782048395053551075618212447802815649672248464881981898156223834726158337729284198159219408162139425577272713731035867811465159984792469779798128556467430935521336656976424262680633033067422318724899266519644871861688459357046449953333521853756580654552196313383314471732258378462900480478093844530327903702951617495723232401202112798259112884704767470910040800366940877241682572396410072296455762019035405016919363464337790558131128000158320666672216989851880910305241308313121017260131483649064280755399440787254937826787335964014936158730528672420438530867508817427967720220110186755435573143064200103171615551079961773146821292208499249499387989829269073490574343757627023441730518347284482498885391632812525386589830273299094835117567274324374655312711021544673175766139503251151931774326607368126273791481148935717035145305005853313992216164404320766160270989920953625880553114104555710419569741664684885857298434971860285848793588269372728437094985415464567942817850734214257477695519082817685157369544189291479006551803327022849569775976253465539821715589184474729525115440398653356904499317009531179522850741219958282682421226587974816518541233395450962487223166804285745745265306977696734612834873888459802117916091575062795428251351497564069275404410657259169671802714908691303738731076686768283304752574203412063667571125491974363248553646949441048086963249563797128462115313534777861435918436866295912296825898333689071830559608631150847391634982355376625192390923723193558059211211969169307849031909430396266461825540592890425474668536144722789240460142599345573826236336257471370702420816809750788292236618427642471409671073795676119599895393190657518991871726988496798045062435898500748506921059182951523834949266762551398655264843465907681167515734569513679445432977557372556800993912482277891239654762283787020305041374724143484766632419384714873907882547631091948231942242502147197695172009597539856261430766173773779344396973393900423276067738401259308352975411382239609938584909772052334160270592404525186393161625264530032466366780263057284400288516639172653004813182427562461354909656666847394612568614762832935743866417574201954620712825017914334870202247457492678603628655171638441457918345148088294249868514631322093096165862917616782521736087492378087083419445744224559079650690923295647583878961922678945408114180041521045516353375929010582560017136266935811628449797851859340586911137373809719786615540876015140166827361191231276043854767321456704118450592826958825155541695339842383972224143629029482805141273327120758010533657616125572298561175550691960740816934264690023784234471628514752100832883698316579542781926542783804211581605155240935693745829557190603724145815765123364947979224828408249925864129473590980374678837532411011514202442395187238167211182182218481552610370786848384712051060193840429625482602133168121392790639970660014254888955597273483853105681957877253438954762246712172554153032902804377593012567101896365883973418245716330529036154476373951105805257945465262334350774051138195813276670704517901758603681247226653542665155800912526826544913889013161885269481655664816153175641806367710117951138925526524479953633604680526232641407667394051296575205301369227735910197512143880793578013815184643954544094879833924905034871922729563877779200888110378879409679530302344156056565375274943098331673636162031652149674691830347688066534014274508672341017453691448305381774798731725810751103197262573778457372041086734814369150455401427777008488986916962056430480335144789231902186777828070631233284436571733926633429027031112745919604508676061656298039478481309882281641531549107364824221215602890275441969456102954960974225224633705236044308098035913881879039671415566622801661517226799840945991232349462906178540483825989686582798261516470734701204122560594042751571104990878267781279763848040644167722779524673217086957052303417239899623104938461261817024801265889539414712886283521650529121024344326437749440247763122135502071378145047158038590552172082905846679592375497578756761977832007584839639822802494910324442875431239733876923012700997348931211774354988538662938160176366602546764667011223122740283009745862444249374648262626915746059212951857730326928929266294653862646066993344651475806139774306869824426252054785729037056798545358688908013619415176018574478214288128442570059626504782808648084686340894313596659783377190174046120347664050949501243444196592716516359633800222760866520551538149675439665519771625346734869571764370334356240029964553713512826823437460414138023120908911056821217173831757696258981033268803843192489039446129336257194550092643187627337159573665396193790293133426899068265720078126245797094081551138523118556480152049367033320636499311691595573128501152946390902366559023536980549722040518389425389995238614359767434194160540317477023024705962353139254474520356024721727923122111393361725727706802295251667028750260337959805503056686525595791944621100378502670663113622449931795200288785462000947382121877458825367253558117546336723826885538370312343729173728273318965321073347827946692737762304791366798909180184742317636469699767279740251549404899983055913244147046158586122472929594863883745414874006689420220783813782267943808130553379683603963701059764004320119520594013558184476406587074765965779347268686897463022770544039304166067841855332917468801122707068019659998069733935607572148607252571258135063351042844532392522010123963322956996172839288933751421972611151486866344506576744356026228478039781567489608989152368922594802235235737583069843015938870467289552381047206191085533541941208651724095212968101634854309589053734106295553459916460650552432698691613629992381613436896703348178553861684844453487600564039623513559498851807976062141724538312120972287273450125660280694572082113658137050908856208694356503522425345135398975017715988311974588269746171633920746791851636695306797424373017836957826512918939468289104093110612940559735423361305435110263510035683753466221128169395465439400227858655571838876095496589374127243690987975117266540475484338683145179924841171417892457775507078865731741953398477888390892709696106946513565538456102693317730769217790896356201271985472868879919990036692363023635489824556901990440992847322745392115375173494712963719360277258700502075182390041509264656095228367303611450581943064043695707007866310173818597626082218208730689827367309811840337518798537858799363994794940331757495658146772833056749482041961852048395916729833987850166614902417151034266556678756269666577443472591412911481169786877503990611832055408178996156199508211895360556125223246255735333542854930925121601523389898373043510513130545715426778724959811771845696987375433109238432081855615413377818490804502755651566727313223260422763175667623147274474740114242791877139580971526083293065957639280230819231983549602150791297459439544180133132057962114176649508704130534510899755328040156151003276189580037343552945090661574105002639214853658120206242600159269984135353495081046791045333375762619265316065896862192141929748423980068327257951530369079643547020612582734306619192214284475319431631544951846661733533703537474442905734115054938336939811467224440336093663058407296938535360480587559905920635035990139511600924776172543238834322195530014807041117630929748571785901720386147565681877483520299127190987789802763147692009207360524804172957713757256461684840908614566102385491547016360396990677948624168320351044860666987087414086474866948374992629594129727294959146240770426245109427124801584409289400183650944022168680448619074966562372431636832651898430799120107298597094722648166726259315358116380333026383722967196733936302491620401485469335932442847485285557606347173331737374163844953211353811651711254953121592599145622890343894257706551190034062159072831593299567355511697728418103086094460914137408999240548937292446557820916792631703927542031392223795879589025616581049526612064632518095493517726347464854534970140627146016276076363588960140344839214499025088691300283435718102447514417283454626899262391301610533618841061492523002161416378280686852844789173600832929164230056054859433054759132461134402650116174860876991792031405991864222704153413675889424208452877274837373873117226263750830482177433029755935091201693219236496911056172026382372924961359075631190491566223514237229772235941104922018594488955408872589446226872905800971611470002147250152492103945602313371539326994302312561458666958741110492172535286827083321117617454811634221564172650643007445369314120193027431205292347154676883507542801767161625304684837533609097526824415935704140316942926239552454900113589745501714600833095575465064055176263077538391162937554580176164927616743646462373553779716073546011099041618676180323726875708901629067322000639027816425626543815382721000601111545433540491074997228474029809072404186150987068518836824367504838967700003589407455949534915176299860450144725446480876653211254511078024652294589313495835003124596467651210915647263051673276287652881491379102561131196066117862573106984058854489954799443162810241373980274583108101655280588208414048786593476642035465100927630640857933941622182835067813557049577180915994899677855988639656366549396294352680821304647851716820158174299392904654202570731138192424474212263255817785268103741348557370022260772370093709502799229168965719756391881310119153359608297076934534848133676759921523519453775051573205347659073987897828425687713295133495444964879941391200883450939668071591590459471864172908004991361527531041422485271266794432450828014153368690526844896761472799663669466396181599327858391955905100166235778498030909492181249201150628507675775446601006771765783532692300478531991668167806140598809349773577065685753286922163978238104009771882705471871663836901446316483988182237122041339153826729852773516680058279746275404567104537399743099693402568980663726989054092198574118183107753719465250898406056813203844082759591918921188746647321801493415871169166612591208376803144751839273318314909006910159086870037422064130646754263829924044961266434540684259070903152902811514263828475072954994116364810482362424974758717330430758639635735964456340175590363733717892170447372380625031190284144259415314480640717167696450091624109028825141922118144888428216028729668597236533129384044280641428368647691767806126880656600680632031143073321794146273518806988501227246041369618058467336474206126048468733049065264099513133433290425188417597541712120683857784054796350914754283104634727138637560795940457886500920175427242528906875611889213870224693506051884319498067014942168258738090593334699275512583918929027872836017782794279173617225446866998905699783364801571599450098520922947033112109880043871332326059726314689834166807584811357354822997277361248857847702957060597705535008078691877502556405040767458699269009444306607015533739182594789434910329334556492023542524435191783780545091343057188734187193422041036989153816591325374122088242132891904712791444009174573311284903773151055658071998694627660444867827550215847164453851466649239877270074512154437800595857851063722799330652981113762645722554273504367044954974848263250367009560700700840943696723765056153608892918572515542964485942250322858362008853404745974670177742644656172210078996278031343203406812736832743878479381997402462620305421240159261730428043582218958501046696856010439788369793899199561438341554570493626216586914621254188757610831038405488152570475122498357833133688590933080991570849848062946666701565509501993407860037285707559044898389350915468138005598503403632061835097626152912530027874266221218077019110982916629298572444621105534370162167429479418792542291538123207186729724468035156988217710549823117229610050009649704634466759754808993500882396345146832712076494763312735702298476502390969496245517772412142987684663501311813244187341827652683509949203841503417115247622258754224260794905251206950658609514363896306910771043680427576825861409767459218189669888368897138569327013873207320563072014436545854646454406159701516936194457634409347535805318981629888489172729886406697754528106893721595779134827406858501969370914631481036151934409996576495369995400992572059284313733453351573316640844928718859083870629265783781718695837729026068450069229541059607750469386051145946839764533242155656443199077478435988549040233957671456685071891942754340447543364488021615384654917069820617344946009345296134431174308295611792669943615251197807000098852441004164224251864617795644689155005787384673779851425155173390550325108682020883904303035066703274306239322434455786452247651800748774611157099398032254772171440359486224737081886241098211414282137569967563809098249955600807190090431226437362777841022139434104627497287671779292827051396332886394715265331723143465500198968099744263236534781776769652776732578801759136162273471699426057168716165163368330557178115915104410030270069492818327578790085412109480051135169689819399234863152893171947413113168701133988223878180532009049608484929290198267671431525986635969861171137996667365409250995261786059753615910290816677600818701321036636621339800742636331728998410620007563813672693993608564628584819349970250613544326821571453905183740525605223048343327343192203073348310248309632053594038958713447347286622686900730569665287801952673292465143445422026219219505269601707885979220266483227731436141369908841508171323287551284885091534673002202569514247217296453920817241589407009127947000408995071848204779272043241628667802388308443034060617919548530197875679784980762933468808553961259022137634730209894004112071200463363436075319126124905206703821967737468008960763805502141208422167901466447609696185757690995311561928282214379244262854838101833877996919912436031846160911855912915202231431080396603289340544310531542938251646459450477232806333488474609979384873188248922557348416195187025680697338382267886788290663072218087334359147204641789240200677926903043775563096097264826841798046933661518593855376688932005234390057995758875220624581980050322399472190165315772073419488776634975260072365857576222535436066630247358569335230886506864558324757887682031209197526323522003906785982259065081561901373431899952906735188208680471672975546905377827965647318541126145344997383450649946760733684019194567595195764124762274864776102219346920811008039212784499265465321734012662158716933016145373412367984829505255746112924646443161501437699892495332409582841399879528996306123445043836052934079388903336981043362361609193499365330072798372305410276094995365681011129178088078342452259672038444705059034205863618672882647972798017026543862751933841709585668869161296140763704302324776004409616120071890333989723133128737977038823137206149033539165306847408016493441106908042932037473624303415376662293310126421602399966566407809043629457077550571288667938864667931752166860554273273364265883402308130838642721160572199323302375538715067128590841953858531775336740935316070213842194570269473131749064542426164765248223436389043779944341697168147087329217008658661913527690669946462279387760862735196030716226114064874099458233858173482257885916210487706535275163279037772321770994079276839719592587664452518275735676737374982183731904682834463343777839111829127358782769473425015273452749932030825192077528801455783489494839345313092373136002214749786794765618979152000059693037382635552736363990933322611275162443495858684007935913783720320602450213825320966763385349175978389466765118616089448892690200525310917145224257681339097800731631190096611282597133282976643555381440086186976501634136484738472155293747529803227439586318317778947042528270260615559732242586633248989815071089536631389214701942127007829584659005896083011555740796219009701480061489662697062790382354843846248527413640132130883628359411680521787369646598162281229898119092495479299497406272586568237976477941769521667526542695000569054919333259077209989323366342693648050589292318076205719020821137048968455050223767651509976960254015907291294135583167837849776993752137943673740622423445786892157953375109842522252718574662303390687687192393433930733948112151602419832650040405847062694187352567401007484594835155295418539249461096539495736947078636939662829320324722133688338816725312262073264614105340190277835498758317034196769930995773579954663245969687619400730490118455116637611079889423988060912485925795833143464510531880289754621679453902448717633954170620978881056400641910834051220080963181529870034721135062351779007880118208597829469786513176348597974491044923049250359744997731000669803049794707401329442869557869727721013512247018476060408433193480448776165449897659509148630113403505591765743219505626755597616431313639511551611451747269693836032972665803204069765895053465836704936925659799854097045020924968453388684112625783977229601323773208663813547006256431159490722587986284448104744123570561470025619441677746486285915430605705877524318308429355400175098671466656468552149703942281265294615921810350512139688138162167966334353234044365337918138018294018457392543183646058015753319698317873123149944016666601418074890935842757033773538472316954727326484869057579057763805485340461056876430341062094088747633572750977774184569017144052438108782749884069516905093998537184755249964467894843276449747514733304415734540221113951627229687718334324655725179749986827950937942979878714958229787513471026087599512285605438387013579484153990571116062693644496645945141632806019160173181029881150240032450467273328833648039651443375288108487412373201832061366311705021241204561630713187360706831857369243543538401803257313770369494954285059856910821807763038282840962762030166040232299854750033193088328994621199299346804926514082479041274705883279717594617281024912819729149212337687273005556620970701707926043686892217014545774711884907396829429100391555889733622793664923069908306488770123848256660283922093550426310138536159858561500074259232992105199073403646272128877465327873679830772611184060150399735330640301093647686277425227284519172231906058338110002815749518824702176471516008219692975462333385686097033013551998112158477693554112110101521198348803284608072949696829603166497105659026592277843324354028599959548498745374574925745580897171018445842320720793984196229959303781461423174734385298540668271611127538444229465739083047503571113847957980891831413134918438200242491072815596669320570376815609583131068024639602640372352745816075916576565398995650334641137477518911402160338735971059790456565912775758194661508144078295888915882032654384175513648244695115559135762354346835255997680356902082432599872888578874581999430654238881618559702188688891499338795492570297923762162973736195493474237753348760872283640802474228483221397201537402275293477666128644734973823316846069754015284721180554474177870559036102607679136363724253462245829729860147158844356487607959602326046214843898464048537172241960593669868814748369000297616261435780280071288843700911112659537116664585024096819170631694002265294117866936593325868347882988374695694858319646395981557439434260534056092644576352613970037000451212856580051202839278006722561560287749859201113481608283301866347265878106338977761232803280334529689810157795006663287555438387340144245125402499607864833726825242023520797127220348106605699027744167564706682242683567438371893698779639206210287307819571159926430798708074701075102025493867210286008383653835258951827340055265323224347129751751008258152723239149646459680197373109301935296304973067004482539592177116506330063335910356870398008359556527254999535806170548205531493670080092641922877513316995997704338514816733903627829502570375943089979562986534678897075053380062031960636760402139856153441127378412652175656874738565376249315737348219533258833711497777243236149583845846621860081949569837790193087603474710267429088010548542898262744554028588909713908628709323889972402027926491986438992501864892421131264789262356433035605475712297173763085894214306129197586885239754672048992260107438036585189469853891633543787195106805465447334456725754587293172555161493005455600192522859294426820431310710189611484014508509566134776702480725981484864101048879057390222114602449153888177672723517372884419848651923814716967050454376663164693891535529485407607734429512964677270246966967431365511158576599538401004521329928550049810813318938903288096670859957200240303037671560684346336490492755292851818783169295137385023503304473951434689277456482712749839045602880980181803537883334953186268629649170055195898079243189847428096745864571272215196434201513235299863556327441235322252757948858400048130675280944882595456705030465312885582007757876765668369014259563377591528980137410351180345878073193849580323115509930420351810067728429308641441598524781000301665384933601815213986785012814259038555820885104955112106167976203979710110864454237632610155419063680386779373601492775741420935201103539203904576521051348937969654106404849904404287506262740499008489952668879813377278197404898011152168049813228192832259742409396370815441331413606957581898928261602189613923260949569870239448198995351013599910702443394391893887398247385784487222267351775350063771451649219570968367882000175419763986940233828672166059923267787357956164627606411673023116452238901220216274956371687273349673446901510332101448904993461960352585575607967246951458689634697356174592172893355282462036233714936444883661257623974106962016260281499775191451222545717573664753739585078968513145519218391551836776042432861848084160145940921946335726702725099168287284680268074414209430050161509028906903877875544130658106526312115775000094009596439438712427155914044594838159375680337940522044660813735512480351227305965569600114329588489509589163615898994156608282194762159464208340066096511048067167439845386210279218264364242779682908803360072979666999382706393317773792425663256167517035109041926983728214191034471084981456874089672585889964239490191231642966959266099787733631441825243212100959994403324005374678016352496004915941199851851956843068461718521327915397952429234242700183262694475222038391201250238778123182535469866383796507504838323202028234535022036237153946204895604559207309784470452676632304026937493678800379171187150909008405429850100749464717898799864894804290890687812996597842399785216363448543448538747661847471845370776476736828931335844359275728528178817870635089560592219520225203017579244744550243300689426663632668951004675940007510235079812647674650973484920895768373500968581134978699828753524319228045300952259617805280164280845615524042234061544434438252208295754718347093887579769405952789950524748313858391951547276093623219595821524813504257314418452119336522722398982698920865505489672471674222674842264390736609502752236967180690820646916361722383528898719070765395149917958350439452695621982008353134222598794386426728617006656059516291311795888363063810953637077984929494225621206246276726499829978392499760261713697312831016543538843466458346110327366716041229080982782467179657264336130753440824411600288807335645329931562933753248002093616541478513346386674323155551844703902426627448278629918103534440335503791351342340789717775533060559243428975813892819908143165308866811703861034705882906383674137683267346583461373203533291653074494974352734559465660519722279464827859709777498935789585178026513757555122236506523972393971689838722494005714787130686512690413461846751966449530829949804177172111989996656248837710762860278660844282890412879106738239251283017125409869049409238243494803571796612137263193836547404308296577333830527572578573645994764424091102952170820521168802848422847300820307126924267285398251022162354127998442266651603104976209695510188101687652623040866478152279828350630098040044309785871650750584179430648875035047553039548954292298184253248260265200828823339583337155809427141678598440917236078433553067486627045540890841922881035026900483691136567886865029241286841163133532219808842123304124199165277800056950306137159108439769036152358801023368025539800119449750080850943831715809233788696222068250493003519164753818288611561130613445998753159466939798340278856125937510881851233663214915684962907147410000041752894346296234027243962728019640661999477673076384581528619673642339325523319046948151360341226980073358567791274871458011178139546771781855586938646757089603306048077219764161531400305610020061243736692454728651270666923177953201874988608534454061175229229347267625946468037041906921420643322585485602570720502220342437807180622428160723191491776307520395062257926455952646764217428907250043292934868567422521896406241488761652837428330341986602705577773400065724083351734905173245928325127940158514856019154685256907432509721641929378923640752582628724975568086893512958785597523713808597542310148008772856322488896077538801181862325087744089807242535794439764216285792396458320425141334176104440369208599716191893991531023881918817372692567541336782455690557623807152285404694205930703971439684776260861057191625017054967556041571656042313331416754237918180336145576054342388728123125148705491633178405621522656235930677763138696638815670966300817654357008465887197575468428947657192681449670539008234960472792600703225616579814538349989073159232776393182103698511972907853016001292002743815398506786515537951823225740311322461808944218093714337370398080760447750968803929554735949054290703495236756447706140570395903721391636737537525273290695930726886493678473039895324375895870087788055310610564005983187190364839123005613896212991117983787297529582888581685368021778025452653863780953902907395069241246196589118036436527740691218497899470528576174485134980632752091422920409292656050917324609430766969306347119532604303949357310724580710611972386590102811658083211644130918703188400100085981236964003803983789692987235718163414213118625718311357480952189544174386893397637689462348391607358518557486415119459547017814826027203484623571003409745499495472600682210877262269665640795955386662018460812215507563507000573384823584739833311665328146063212933084624633247469970209518612499892526180154245351756806235936725897513824885596103413578960799251085097510096646337757951045546520838683638961202347796954138245671518609105015189585110172504793259149595624415878478419049075821712471361613318415438943952088363246198515708038610282697636555028099063933365281111296145386021288024232710850257451270987440395475529532193973374301519246779060826883645558366574411321936938399122452975380811422279629961251463123194337914332165290478275024605034991424985754381896450304051918561316267390015029529619278050726297400288668075978416671915381218995999425800677393666465250846747884307349759431549464995880164311791862381591891979663887478094824054936030180247749746401873531400973363937800641787115376788612534225708578794082921549913524298458788342146246565777802714113828184249596325400180175591193406616879904500191478832040267129299177714986178941517299995011417487150865093872897244442137045929418605884045756023252549359290173780170120425526983147718758764102631206907015375141582916488955153276596400095968690314878903370639666337841144626807602826978226048551228350076824701897612926854018912549280443120274951513580130585668654098189573416791330463332783307640450159619669284742259531274737527103975005242644751711317989191504110164802312175207343496590345288280478549975483454644732336772630238381902196666254820175736651383006745725276173953415208930121495951434212506591047719290484273929753655085482206585133280834532367040273592962836412142306300167875603631883315884905900563938723033171577791678786673752834171306424483735495633008495843423772464755138188205619032838790960006611360712584420287966727091465254084343647374698366991149068526842574295992032145462809166853509243600723457179428560205761681098376789091514040846718995307437089457822590677571169131296984086227987841013960164216724973858126280284361210433091978858780340841519424777025941190991120010956318750971301779041443760821070768244879228183619370314426226240130195867979747433501046030063713281589944711746894163162764462863150026616298176907306781437009031974906789358956336919548589838561924302102463956467634259356543014120751769101126769775160406672003289003018851303632039834483544448504203613413191214530788137936000894545751896800510197405815753598521533207552127561628301120700987621198588311642718056946544781775215830666528491067925038040786017838534180098516728092913351548588481956461553810036274603887684194983000995193195383729717089495645421650605287409486125933719911035216832105489105181451305391426018194333246528773600393914806794197780920833221835488395147420880810948080830095054065715765977157371633011207801544220129754530416087716171548430745919283917906587681796786675602605901754072797797636514778460452423385157043367848287339164878074319905528934396854150642228030583747536551716020297904878018601970386773970309640787431099979730168519258353828843855614981142346596319502841609758768309629777182908066297856225857054903239827305505771163228882427025669414168593809631340880895411760190500934058432031280741222726667542700046207337626125227302441716941447240950615234188665794757854108831677493283917018089506629942421589846568251921044545549269001306484291869245828863543880071138736138180540389976714990033940054355666336607574617846841275614083135625359668418330303846129617726894937243442414735037195736932134895443938216584832365693090224247436928990956702169791225858584806604217304226676870214918799666873107830045208421041399392155218568104392970282705969556878864165032404474180021187896074127582851939290665956285222491958297220730276015359905390747715904152203273771539488706231721354707076313605002065575006093102442427092230048785009130429176613442236104377529799441122553393360787584760819513806547053452368733995876661968350740852140717030199010203620992688565655296060410514396752829694484080526606488902964376855262788594024552980292339915070186121854736423706845764085615931215639728527645630306502853593610451722306444016027333720584051269894130299099730674657520313281791283199983066921072199234745877957923162412721042384082605605469057092387816120773343456388536933651263961015070238998451641062171302309091039981053732558591126948780716072509029350818388630470673647077628919799903538662853491987360126587406273110219516497340443496083264033617586211377803799530783521871001651971041779841424710862131161809299143213687341689051707619404225804662213810355892614830204545254951747828029790054595312994456263560279060088260040017741973254031860285330715206161607748366281470868090267048260167884819186812918747664956856387297061674425064188700565995881084486220877662276721978570182248045391954189334460902432589649767422178543903637106927934251512662079397798409190337222354651024984577384070613271020707137896386869324947201443993807766139637590040931525950946245266426805490677426781348215327326760165006216479396442632301175242167412670394273312681211606197700028571773511130199936764739637218264297174679047054530801222330425901988434902687137498220229089261286944844127567783735807212998402786977893350311963233251007313757704654534310470474703078099665702537606930388152698082666904444945833376371531520402957096167840818451205800815023507149532742995298622075433604833725395800558100844088554374989555705059879017630869403017992216167026725062776446742376741376719151702289744347232076468512016015364023403423190510892329613304274384032138022406511170394650457083138947823145940768980815413044445381670117895857889995534157746225724550464675383208340286011516361192251019754802857770299031481972643921497954162703133910711052277675664433045599376261184612270372303999958047787465516472729560860194845450560222895575181120126784062622790251776315039725615946852681921271161202384678818218798175979883853616078093852992820265637250977893573569001489813689710406881747023905444994763003960775569381286649072277592091495158429352473054081248312836464965364711104471703091662331837887777713140455718953600610714121707112682323519719617886477747982750174228312330256928100952252189963009508225268826872339499324393857545620881905134831308541946032700506601348452250475727227899333459567455440571373579286038268146314398652650111555411361893314510103605452474717244016164318528029778963967685128327785603615861668248891570849304035904912896371628905251732759632841348037082536861921366821060863211797381668747342543253846342224516302641842893015876343813042030572997364690012251299782540332840944327568034697319456973319305859661396006447147906347503530049647969437492871629860719624303163882653787114371053181509770122055497476231654221101446342071317037555624553862139565586190809360074825836390424806185623610890006755037592462402705278931668273478670826137483443513551471303389417050164361301519465144548276925653829794076200624738413738446132838060910565503780168277980433649306038170402338242335202048458915390074137434789853502655995807897667659340951667494316007507577215241068741903047895161251786637664068573037912156961936963730197900282979477188183097827916799742803876812174913550059811182047438369143005978544416842051370949265066462367751366687066735139898338607875111701361508081437674669097021850874254571496979576551017190250176944360430594711985222446402562118608118340276482091586367728217997514502413238534479989427614201186764246815668621626092964962205570981079602491951335103375373615452965464003813034754323073475656226055357154143983693973764218278163980329390994341862437823509473231656097898182943532215240719203359661581679584493552507685632852929100646326098457340298290314087997693076532226402603317297181108317466276876011649894197082457479364977944838585037195483925002724561554902965179211282568236673420326304108512183718966488379468781574094866459837956488369135086393195595892612914066672470621545599222459611726830770563990006749847957689795778245393298361225749149061620427590735015525484186471701226252303194451578520701268855393037882379911909842063490952213198898174254553037940862389741684893562861926173362667319525909445485225760636052605118380258672635203419941910585016517523176542173480152418043003227713337300689715026950942568555576215666710911830099937370082339537388441453273142402438617802995158788514121441673559026224997495887523694733337468599068165509291080963236995170414797160568375263547148887642409415388682684340535291419419987724430292342538898469530634325653876896367732796712434273616754011935297218979074095032568190965262939159950062657741270486338803201295025201472878639288171407813979145509827477847093530976101087133922360051008596367424419902408937077905338042208838910665642541265992446589396760515853061425601689396965476301794050635400788571508238359475735367490928877153955625199258466919202406199841390207212044721137151300875144448360187791169312136821267411448829006298445997324084562797714935183418565227696244697384269958358477921929560822443820201041091294245925250738600796808323697716275841337155776859907334400190670834162995985363164980213464004019661201086916748782592186710039858689967470166650734407008451263358869683783583230137675396510907854662363972371294804456324583305687904941835347871680005377169411508890921738628274642793563588540396741849818455811874811596928419973932673327403842414278625217667314747751189828015332828318917455324333443889358054585191791070859215665946071378587683606567960844249623453365935635222187649223592189411313230929576350765378077718855156562900279328978290060662491775711316095491988830412096670368514612459068447643858777968219825325052653008940908269628931309491014276879106461535223788159187904167976632170873843717175888387887437919452210327719369521162193322711242316173402246828585602791870481572396258558192049167170230389151779798464124118557989181475496287137280097785741093744524334482319434894505597863718145038110148253402913987427590721107442361407392550921767591934277900150197336261563911883197021117195464816378116552366884149472321340224606604192160429901306319993693941182014111033931462239642720684987398812615439565617495004509461450114462108307067091015185945393666448339399378561891987339757722539060347331418942270289245386074566983132581404540559152908472278128048960600666953891811150955556963814429259937840994054175782574141379760976720307982818643252273874232697500840723672081514377744946143735355068322070792699973860278575431054003608684102636255992209369359863694172559653510507205155129313915129539343510068830335819436606563268226790520353400850226026338982064825517741737404742563414544925119534948960003858779778273607051924554085472235829536975051796102608067876778408193652472264960255881787795046062901534620902011294883485901656894898434464039162360230814787138513497145094778546349589246604937797159553487249582874061556868564474052034200826488545389588985077997918951830892999849891913178297690516632506823229073287353328053809067627216253593222702260263249452026934764633650540768892459670786589774432389264788981105833128929707756506717155859347854421870841803967843524314258966901114176944590453107007814096043707965878368435134902024571389623007288825856145403720454936073221180134506331405439963531270796408616712821885579830415379992977410918322318458567301485527622377223243845001471507864696416522480579201742170169670696253777020081624205731427010952898052436565393078901697293887185941381092672648509349635251250401486430005479594186618507952321547470372809239616246284671071223504535341972835431062415699714592219655321690892614724649042352631165737676500646256249755247494384471360272013760630081970324197483040463910208154812122600377616446381436453421386873534112214087822382424361397355716878255361691586459928218667015184471001605914109083262553398959541831156162841593778492240406794557151185954999972367067358783429485244389927391273413323774481431549811347054917797361430786158655731321469114359859856097683190098352281796537790292318385634327639127085751088070826090779198545981756298828011154071475430862140420260406174700601565925703704737763330152685081190923931596822066638909945200880151801238631947801984318031459291153193186694899530314038635326695673716576241397954016176115490967342431605592755259824103835353346757837140774641629300591912052951758812838862290384662673178271423971361746381189471174272524620991066557844171119279999495688216989752890409637714221621198173766863981676351102230254662247528574568724659392031934311707421099412499278348783802650691948962732256069039025636533816525418867602007265918887766095170965845547200790760585610947414945102638086748535537612092922520636014384806715605022295626363648701867136404952069840569682086397544777459385172999817204057449485793063539719029499372051116415316449711082783189324276956264430072906871039737789793696293623692188170988704386763935152522045969109882770124298295153582032955128473815516830009920299068679036857992825775182454475881450298470948693320368435336393212142938346143602578978509139920491921835446745906270689241681288860369556976917155347925661285229054158026442652580020320157304795657471086186911914073293206630278067677320438429352463780798600010151279716407547059352801346007774828732374910461734482431104119002997542482686666232906494535766764374493635455281490251795202594352844572039432888041783691497154843240223189908767413381642310534423736388392855451849708741627600872128710615630572657599662460349539639376271817272619255436111304273381581096975967733868458149274373779968098972377249972889848795852534293759182313976005768343663845685873981574655517677599752875548444723657820976720008001676166041219239639098660781752415785674566524457790000344789130468043531888557932759671234569750379122424863483709897635840465047644887251468604881489490909832507359688861512159680379364807708176494735900312156110085851336898934554519450827545093616411598565400692200063474749037021217460748856136803020090584367874971776234008949275847958777672567206337546689416140243573302526754690262831378751920493279048943899697579612522681119520803063789947612732234162393105283805010544222544664701991922476512733468724956121279848811434767643974436524055037851361577603047916354918883794960827381730950111408523522701355742251238582948787703346800899645306010681445109649937326697900756616973410911590825966366501052818890366963346834019022415023944884735486325181975928622640914849359865138930617777706673786714021955860852876199636341088410981796643328938755663273169191140832733441604327759455990672225952529413379769663603214981687564067283757955305801660116108182122291279579905537161937609585517486646326624709783188617014542818931147622754022263666689214665754245246962553784747407624844776404337429250186393150579750812506198029538659874716556977736924264021945464725809733431291932032498226862695888505643214269895949400110952747522415963074355245929451084744070592855100309356144721826421359039738432205547118388883370348402156978869788610564598339613632855597815886840548367863060618703141606362890236006866638773005259186219586928504921054050520625088646751456034352041463656820885412668506339279326592281734187622822036358883526478660823011862471730765803475890964597369992792659511804643081995004873145146328112286109048480722444841473817777595749252509305092632375920755734219572346500289540582301521419654874363847038244071860036308718670028310099533544335481012791848800158372877946665227308276819129291636929878776081458476925936182477428671162403782509255458293841801737998706198633165547003051305630287506822580524304410363017967609178408969542844894423181354366479692647964993091731685809957497932651263399154243228378386262115170707644336812116990139979891294382884429710707907412367234704045205918063763252025225054625708235342750878039985792142273937487272977088501029323287844986128759989308118417769442662413513223019008991617429626758679939892058237711183680938193056706607179738749011417112427433898430482258829010937068943274056954426588602010917753561289669621781008396900494499983865940163892440755532187576405066307025009194199871506131742313897347018750206551083697223240973614223757663246388452875074886255280142177460283347027936118434310630863818681128775790036656476804541598404737599417894600106351533062466639852873693518209665200400699156158678566028314095120220537630008424023360112513647023440208217114913376680188116376025408345282872827786891214878809049675308926048283670949182491376803671471248192790063163916176548645245567038339062819606012626390394236899197855291798161376478135480631755008837449104964724002604639592612293158494134824298915172936305738594125446047425271451440528903112831978448247672331339442108435542784044942687593154331511087156622969753580241626406872261003766499243806285597295576106317255353506570135028503581990786380936775249126188456122936411140075439005404490979518513441362846081814439655028658499249812738775884292385153427698424711127584600424276518019924960962549026507752143034161177303031538916277201387278581761760336550806368592647212187531767575882804363669007846791430233881841925923282495068044651774989726380470557713572902543548473030506881530727173971312459414243732686366143946267731741545523359985896835079318026528838300790340103686998830605464488053764734027959054873692051468812052819955794397736074832370295988871865888548898603026904094206775438166531615542171425798080035958606731671803290694323057282870294839264981396810873774433758480019625081919041999260240203976280378518483985301879394752971728997238375988805889494445204135039600902314371187695182943656996268881612592235301276927773051299910375795205762663796317724922391284565621706773620726326590528541449856029606298632235252000679619964474344783639485797400594355837875129402648955225591429038684602971337012399498255114292117938065642237215945957328394029499077532307761420355654539809500897271050841550386973988169668145458264930291877149492285298436187355118705493030209309911582955034693718236775229168764156671367735020091842447177943188437486494672299050305493854606486151284994860457067910049014302200836377645766673807487665341479988507375562462271388178200507873495971341961562143920946955998244852010281467194451719241159841256638135112433742244262521211470440726269474979464045159436009033091951545262366493912799141729202394286372992704426226341191560337866343740334220726534790928444448131775805707089534618456232301260884918493519876683529618622657597727064144494110302541453132527372349614522884416191301327872238687821867477215805931345224756999489157566694554408808722596753562077165746488201322271935031517006762839108146374377749742307149473375692060889908778220589834111086438125780591293406475075723024733545505645634640715677181568934969211629225997329668751186259229838860004798502752649237026836902361903439968707326567187449118836017834644756396436022422524746458855791357783504595190795760191516322740565471538012721210989708061393809674992050726125107361197665588365522902452758782110025395902444159265636368851285730637367907946122924512151926259836518758346918727108113152150763897686553019740395917294436729879037799022579876089919736892546746257868886642803823559996230552027616490683155605040386721002473500539454995002537091968775520365447348911019058818609043748786250648658009057622540405580540961448019323335657027670688406714081348319778430678461446093838649299664431643727464986955204327401958853964541329064260859987980902762534417107133658521506528053940026322407344534614557230319076052990633555748492464684028189209237175220085242058416939651697394238563319489860181268720981441490227696781535935306908716383669724934082969593743134826054199164070866576792759655573515502859512770288035800953439950222972162429308904935616582852030010275981242594135535398907019893090830083022613992812658251852298897051688187642307509534790546673960635082132062208406479326561595844179846089804520779056506456042455795558742303563033303722320805291165710938556517956917455142557666505741599591373879780542139986680076237193978864562099247579402708291102969850404869128839551529292230673942754311530188563375262219513434990375067400325928049549868833860470283140740896431927815370370140144041188583000738318954063040178044946914828942590443759606866789611324132529917222291092793327929992456756709819101637685657382078664086885871357163057831400146068707089210398922209931902961959265635889315586214276926891308556910180668377910208887298907061778373494213167709595760462597273590018746703731885712235593980641899530140320914463197778535657702595510029674942011210048545599193762186898014640526673335779178310874264848872879334387294810244099678916704226725411519770443962271670494678655810315776654525400910532835907133467665230229645665058974115705765170676916241441485189155683556455964596353528618046689164071094611911685641370602561707198223385672916992915986170278257012720951905066999942166913982403087419429938595675679838560634964072209458428408343753776708569534324673440436175421380386757840196962460057547554640339979317316229450939193928723683852822927187022047115509637392352275784276471155226914073764370480260167336716720249089135092156396618683168490885560843404042250747810084201964876039423055207318285769221889091731843563573272740524736164386545758383374621083833490965222251625181547194798886081087508178869952933429920205157488379853357163164363876749089410744950232485217867983759683679155937744873208409856610745586864245048809499150504581861453273314533965016745693884046868917834106767804115838418200919004791688612073487567866083394149559119261985653190096133101096959873111743738157440562484728000131242266460992516721936798891903052081489177612683086434553495834276124102417017870463664999766179681980034481506798435041941137704258591585316577081379400466383636481183776807649228112495065410193964854701086902925135037996071260738948582499891831445550385495453313431833152703905965969196752834496507629149198318408787121908492440260600259817279392389080126927979443270094614829645176526254822416332403434447181408760429825833470913063093966824954050810179539494562121755095866262114299252457478042779372523560593394323051149595296489864354929439572607849162057947840614264725557663944598003918207442889044651509940602944467305435814412786320905995762423262512776199408897137995376489953280928002469410682315386216831168367090879692532127424715103979822551926070598016194385286853469739104297341366643274688165562698314173605725772180411158035203566777309817030445214376551786153126768262446637849381415796588503401337216371575752096650808123400633139136993311802310605436521837281131221502035100481178250840429666637972723644224901633926823869629276525563408786837651621921300622881286000615418926151056720659251012586053514539725946614724661783204286247834890223894370059978303052607683350997102290717707007969970920357635189723304570505882871869174469252111287103610035358692281082623167786926784080585798383542585503562060925653402201640245638244529683287169087308134992215460040112412050660985534051920956999030711773836057728290320703167327837880654118942650016125447272810272376264398448844779233354402124139394273440488169715817942022376842976144228326851465332289789099789142816559158192281602516246701974658515820033383655870510425276963527376841960151705283248809795659067734681717298503050437616918298494520012525342766737970330864542240739399487085862640083548261979772757204528003835129637588052655974214627906747985588018275322319599063812300152126000864009093036675722605056786397874550011649336310308132230505422977523414534057968099200695444486794024822253936385041384291563875993255827752083101495865428737016778043697639837533019352762876509204229456889037617599153079725071156885102536032089790516789123025574633141359962302892909292774559581145547796023342285839251752038998201836074406455930753622653433070042957596976133572742992338845834793732612074505435248818702686936474273496510373448082686202652158125601160354795128150097980662240459964151137412416414861527541546811364879520528981601605949992340978393744066466398352149930576053217147839929918320168987658110131712241190937829483323472722835499636968444255359064033916269818848134468794637599192215001827144372348317034348874847655438514086856121032289038711330089135753107418629300118699809566827062534753119980567399125806075939005374409704566930850691259788794551578161939988119604311613320623160387638420206061234451755340837309583157368825133050905200123518498255786968229163760818600292129158704818162385800992093120429816448391942199437344899689546938209361868976977601220799011245900195757417766059796718983869697191410937141600751195915901898468236797025478744080483560893833765701400384479624073004338107163167278772283079611117427408657341284591212724252110215906862873778982968370666583129716340350987348622432439726276061460941847084159320773218036758987452951451863794267425611972399582669334232970475533441617960470487525783075667114120624177506204163133495469144579555997855778635716350716362268473738094055683163325947434444550410991439185400236531101691107772079662918762824568020907465097396171437049666782378773535908401158880809963322878467010973267832421988070908086468779808263015163164602185580405855045720134169362396571305544798157400276182534214441775695655518794264578838512523439136473233215617702742850379817037878025274659514988155269721218944330655334058240821678884579149076015832390600452501203668578604059188792983672752929631792416044720790372903530040357167598227545784160493153748221539794709699535994140138319435292302834090881259558996061998926062231924304576980142508282674222183334586372952531089257558828874445841667484335493425640687918593612305734152356126807900452419795472798851988144838273355582174463802952477015492321788652767657350661320412189261051663337960469551343423570215697651831175399187109698199603165408774395419375311677250551514569742753175473415761589098611254901659576167081926611926355017387569991184895683581863736441722189116918343701336894521424486099702046670547122947901932590020182700237912318495305508042436307922876007804542491921617100935576585705298158447927374579934299278883693757517023070963741521401594675264516701558138007385721609190905654191371652012791191183018302544666895648988309820103857275898700873942297273984007090783241594341157350625004806320643070084194970222966545081417171934053765976475259511724996948361998959422719216134107446526754792133400994342198622897472824074058267708387755928053253802456677046493260860773777715716743037937807005315971536821403905255524423098550792995800813258250952863928772602607913462551134708431971140853977470341498615983747250859478348278959805866306916413021999911021295153820053643292833464637521138897101592929013098436287994673247865011522264378222686856732793076466330283902101184936203034079711000412069349653149611011425984109239666958193602371553645660501579579279233974240204783534748456963639941885842816439468928288104622600643191630005913256662089564974479217877492332014717364904603278861361679178470728807415047363781696848519178823584797879645219766158998011586095558409175226883136219387841071084303287093340509068835252556940134818425578057413355729905056021204456092732105991166008536921250089878927001550307724123967349191162690267832529621926507086239013631474809590341096798294170113780965838959930475408145227717834472850227540658293504123152925723864263849723413709081076667396186492822090214238681973997942473222031819848770593889756533816526663111294278190551901347670132032944915042323445134671672479765734221294042859295147911025693917098106758109892829384741548980641427443792339316100599032346403609097154174809572932755917931267499115619020463108337984755652965215195739022924519211943174405617925371013813250139579612561398268260547932350300631042627325031552742122985772921021839756833833432604694360336466798532520185607818464202571283865146984516580418889182434669369849839817269129686402592066200588486637297151046074531740314521932845348823156201412405163895394942259119749831965150352363715328138229264804185897412594364024458165548228916671513460687592983340754742007737630238921068443234161265059881186394029363404268175100197388062587178993597342240017378346730428414411835582984842207105045462149624364583413480314038040021180243101168796420952682226413890456230881676921900686106393063106577359315625575730286896062187802429191026922483664250710242699804220569879016562643060485540702973769638746623872980060767786109741958349788057585382461421380992453745739956507000817815911938176109760798921181041065203321700999024497964661821450911530028824389765060556979205427683393053615432845558803531319358567215384088017525926694238256409739182389894241106763357111856705887762341086567901325522819857424183746562909725957773569352321661798742173218323407892753920104579271035959948084873601980816423208643160401061668898151636440885056501644981123592433772673702047089052881806986868002749156571528380062182959094918012082235191723248705614309570769466106123349629245825503540771391119525006720185967622369425849045310993071532665244903354166990292689243266370481543243970668789110805509509133467521477384624753057789997048074086308752973607483548743495257440725502260157893211702779818746436903201698274957844983864442006887805030777563944552573627342620360930969717120444404247769472870414243070106962411034208331152382731050008881498393023722940662726183824823527972778965217267636561779102649554355610449166020419483001223719940610813989509363919194870380285419606757293893385272573552454127586493109471073271583158494285179417009447617051863752487437117359792307506758897873945278149836127936772923592178486067779624714905529898444022119299260535927532647055492738064275749311741954732126801219142798870605527025909509397272270426358413734326791453677974328259757064557778330509386610601848028220320511790907457539734378829236718984499941500864959030603248622323911956559750430957913872132766818001961140862400253612245852330577713976602755577532387859169269296272573595693218092296109531528752817383206754595891049243257102485594919478398888705532707701646627398466126263900493610321649814575789331730193256773765902557495123676682735186744893050512178982876206016116903017575476673284701512372680045291336509158397938895916650490359373339233293784311450499232968586357223694712690208735163368491665941105105905573041458451758557974184151226861524543232053863575485519026471338750311753768432432967911761469074157514277665587832522210001188480892066284837580125471551260841000636091337265181556441304694812046895219586112656439762900910685226475965911359177396411187971898539742880491633203796144982393171236594685020292466724088767087625238953390453121972756996113930612187860235140200189569102448511463884316636332328690069014860326499713121924384020945122477943469544123445454368346900225742349757939216871771264331064230990083256613966282823792487099819629446071379341540838027643910341483455513316171896620075857247897851239093747644089194818135989712639565266663799864907104892453167414465726675865526063428758419688440004641980340200903252205716851079218426265446570981724338844318895847993639019914528665069289627512289129109013191733946513483111983631078043694027573786295871984474225000479539822617006575003374242476997161012185488096191949619070036780840299379655459727895457916575457703754869874563237724841154344492108136355970569412360956367819744709422375072582654468154690226712367196368841988336582494597263583537636958756550761457045914561240753166132991017649770108628258196319151923180527308480105844225206977461203824888557870186268520833120957041209600430237821006771475359550021671369030954038796148262869875662751276830853245234524405793852332373871819354374863233324896666138672528185028488629905062254770748973161016411170387993945471950563809585767824648521874942067447291552728725615646600006825532570190897381313703280776587732019345659153839643599090314798058204244136263055954963056949986352739078380694890219624378305351576404293971399355050334181176390705204820146903975268296418992245388890514979747572285042266768588846545760996655667854295266825066797381131111780508766367088817733633000493268937685451455758209158324847129788947005877763092210841944644049233269804371812235382435749358573446939126366313156624783711454732131330594948469506349371143428264410601587821788164174107434102132191750142580233499209391126523659333205521433748128785958641448609259409038678318063441175817473537921530608312164737493659904672999540343413373431298121367822085792374573842626996950497367252622108274733253237338934463094659366761844338736111024419611054244175363136596419282811010925323279101038677114725522482272808084443823584844183171630293248434349417888723405145909731695293127251728221721654374292680375885683017788256458337447297521697079937276373314251234044209341680672158880090410535126342678580235536245585649093516427827616507001226754517289917854352303181271165986714596825046413282471901202672196831037278485056544296847532008580871678968657926047406131992058802832605243966743721001527257406450775413071050708860947570971149762535867109901625459933802877542397740823662967728642364924261874511076217641891435944118284889847301676058521503240241152030945797074868487254545211260209463443277796747598455297015268465262237935522476271764566645762374084632741058048990611844955328203205180858850702298073329335002511237874054435172561833667333920031220274562703066452178280447110018574059300053185828717244779622521058047666636760415873574285647670520863764067702035590192062448401503581614284556809808074014894135323097809752565211916049871630620401876369420448343715032329374877440563377300392881192921806787256207443261458901004720703908760315474018089705235441856218369249841130691949069371251055422401100770042461502162619440466109204702660749218749271190688559125932851828725415704638317370388868702726011091717836530012078601882012386543820321675265270339114248332774782271644467191605383150980273043014817416265398279094913680602890282187506328740456489175480591081852767391481640635472792260644475952041543522452621136895420345789200544610606132396078934852355360935876995013614373535560901783191832978515823419065790420763957115946608967724411201735235699292505390616046190548381475734326271295579624478206261980581292619702833585152113737671180535725157376652142701616428145297905901726428147690059075762309824596708290144484356439606875873791837737956420662511683312564336042433044095200646591435108681010782363397174691482038854880442044825979242926937883244983924357490635984532060091230704834435166921670802749208352711896749043089514659532677792528692272580312153226746558586800314570408015326196292583993691883395044386265236077057279835243626057418638803012105351488739816335110061989701846079439580532662978838197177917942496491257609129991467409087840564194136622310675072265094499964528697869609468299729285964370209784829058817155027964947591217772428559569493841619242333933577505219277489646892298763920526973880045732806994858202615405608360586408214291792832937476258867164112940917852425739542372388837125691131817353443057294550611175921903047713629543527469391787835808028519377805594492412288171240867424603355053615227354039594581821141777831906828119509787803450924163169897809611080300246315453419698282135128515508012873315873470468517349492124540184316301497196784572476978121003191730353023045999836622320463014080596657832477700333342838270710553495644312901331903029929192140575140168656097735408301235504232458639060234953655926547890598972735394016038625603647316832294341676729166999183990100217278789217225956605177647090928232666918917078359153702736378435108012565512511449525728229904275581792726551891026728189314556969443766516421189594310889033301924962778073163403356635181697849017377497900330215584420625084174456354049362038036092278525397663118002679761277431032192486880390711411761480065682522468694107467911526157658296441310884511519915514997834352435067580586962198789108907198214408495471785530177622625537274904554384844139002338807072235957502031810783883382620358573941589119673730466572473732615362214791301578383239049862347332370400515964234680919567607794560761624187193913790457319668304350285182655461939392188730494024344146494614873764553137575034585010120167349730766841618020740082129801560429537408496586767864535368448966182909981450013723914219492054545245859646778704235516904433794440881581709221488474541109967958943792321911520810081163671026074191409678388303552444717668245672037928132232111148780208792933997182368951363375462762997117960631399632634987557888437338422051237334585440166039291255760466615879045942309285182163538095083011306631150358114678417113817747728163545231418718943955369215179354920257854477914244570163383160224741615466059924103212555415182158373521500663142745155578922368212981020586236350165095508488869028728956040283881221181515163548076408802345168063239918239467537711607792252552753666962495599517937030503759848497275136813689669676103029987622301808024977671321909180213759346876149218218696755479652866161572969581837525817846955075759033314806298921649285719652131922528154459204243143756373671030929161472786123928502141953071742417662167599326802601024713515838110749962138242444090188525436609422805200415762147213502079930899624547272090296494644250924646195101705292255137467371649548066251489287624270595719635368030032049257036129059722449131041386424944192462664439039878042776776510928044624976664060949270038344656156140623111129648196054892476584848918400459192817487238176267705124485146081008425559805133267940099918146718924181468713909619344537812919052851604880869561251633087830712864257812957680882711868741214672680654200600439572701237206747076229817093741087087236693053571340010828757612537506175757716472297323569790447200402913006598912523093927064466105944807069575131151428972018023190488958296804134986796705976109160093785292772861609439885883834071248138055363087202288930631831501430342150710578001996363498120847472394212998112427230466698540007894007609142040176056452491018546814861574252950265019094327595007096081746646090009888750199118806275162966233800721141874432032247536781928396840242836945575063051257111473644989876224467750829024907432794266266983787590640405296348157639157543126798942664487675720066481402092306972843639785089590966147672782326840231089030868995806718780151128274908244695208241508387786916809389027584406429339670745162100749635083628639451574295565253235308523613623106890455282524035738348112087942735518319395138438805275627934307171183835586517748990264721896839766223137535458785502875823266582671563886142696918714566669038508366024759470607956068031542948266987771276563266631493329035936720949297809149135063218303491288868396596976951328312225902342199937024946087687432424264481133121939087519253014261585543054342408520874012742768997948174058167598231749054163235047391313912428715351014092735101615556072316761362165284827225154632338871888621335317581160138340538781416863972123655980206602024889680893087573961317744589963713950086944777929524936398460899780987750485484937539435219240110820225002476133595512308123842145648956407468387377088174596240984860047802222763773841704751738289029571838109093726124558292062181700966331066853234317763738827160196024355136483122738797415205895887396159139234997940018190745855920004878635516323660403860032281648231983287316290175633468661097124261578455693796596754147729428321081138633431012533548299417132248503085208779017247733857396333717564509381526670922853856212693225773257410299435178502111123904411333121875544786825075142437785925572094020958730924444571633477605161610342253758217887028647816176035962816479168523723978778194902965201731058131701723116516484334916453903954914497708877870157812664785418565285255283555703622166857237489863459320135813455096916960999258870236856568964743826260223571360750081867731033563349824724808180286453032959543323335660682477392612356369052997069340169336635386468328909153147199284532920591165031777471503523309063792412215844135405034515919876558443139115090538579213758526352826990711499328717330757309751901510437218491890538980087541371450281074570553262647855567636998994106675336628205595660316028572444409567219943416034396415468345456770638418970860214566940571793716858340818487069596342968190312507998391263523345621149686962135899075916776288738001328447544504316389847290005843677640979665077570067905387222187262667536337065235906916080401751425203269877294050907495385223621734042988209446356629734926507096426721218101076583768666880937301468480359526208060084864876330998230081523065181801443491464107426403730261376666937536045940582313865861882472412823605744126760035621094448200953660387236907297679576595876984647892474627949643132467543416548561638614469245288262412408261335445282814743533372039309466362046066935258231135001355972497952784521971231265349700494745134280427867123507588957058494139059225232659927325115646639851813144054268553849594330757733854490331006263400031307443034954299181528402865781374827903921505881275436938863974191640933351630309505056971306671201355113874769199742966858502303890734961531544864241614285913066801060251854481512875843551005262579944627523948257514054805063445494630572715879754388320832494171225821543109158897408095170838077707058067677617128949381129693683393462879879834259881725143319576772679376087796793689476325527001438782982262441598168490655322207168089719197906535476957096549164733597784400323771263150831734442307674270367826512304157552129279226190224834635919393400482094107269946881950689503102501959580869871398050762485354459956941928321231231619127829127167400707318236053753833824039771628256715770376773591051710685607653607072613940709649652903458764402559140926210352387693374661288833606557741981299899802176441827801930025978673738379908331007068091531353654089619923903959904827357457276257872708213832585735156374065601812604389827004795890528353771836687686894912891154625598504722125606168873966638502873233822758424697907647577164837325167998319195559466448891083486553150329899424622253883293918406704870174878027265436286503883889330040930521232743009972656457689895654463347605568163923398351045955945243699339998779577070691733707148565795825821848381459502901457629149168716066148656797133531460823920309667732898420548739931182980904534368657982106310788457374918079648922247168898298018496399806707707891080126628443156576943632666504516164107416150669262895813204095222121005509431953817459458207744624445476117660330241057305937653029676285747642679381180863120671247119192570799255869297476820489797416371145854259588678019754865526050839238776481814117807625225398371160089523394741157935968666442803319554812740532348334387576524145675606594589097553363015239538942191012006541448789344989804274446806232150305110877222957495022750197456777022596248403987990241699046171811455517183809056621310073853447285092973656220915731798265591895343226021899912749087237881391505102667827045423984274824313973871165231241458020620761073487680102939916339546745077892647584827462926788587590133940596355649230618516323840711039479111105577091515305057014169323866459958399958111875925887351102556053451566213309891456005408059756849185176540225586849371728312142391810555447941148653210885614325169535075947829050626609675622681307228079862701391136050234520919162090826124477078722737651862723619426574307369145712874476082355493580858043703574059620311621971459436329965388768813027035863576954376336845898692258595429335424485941713575294886628554236529498643525291261293448505240326091724169228321205117651624540353700609752761243683710066394246852731758991438803235221109423389375878204430894973989546291491975753953411315542811542833160193995143483421562985529265386881176674873502498320338928076260449943692919397770232735827368604058431453091309100438382210748813560350128097839440439162027121724374223924400528576093319150757913397518201455361936270597086660431712537474133831471132557947144516288937197849108249636634188351446040312338752283718734977728787696856517788253871710276209768824098766609885868846740297015853954126440917662011902695560766896375339531690569448751083173917303367974830449628390054696110186037841127726341715703078979637820402330041973598127053685365009633644231071719699649154224070665063300668867424753255781694624007081033597859687452399430596084817155764585366869981715763123462720327798767822191040752464926086752540196159424096714731938332108662782414439952398578441044645322777591007310161656610222444535605545358579786468177344738387085701995033921711730169368998458382334626654074314727228718340074391412960226033171238737008211608728407051747742464731720844369246205980230391241050777193528582773500288923101991479099537217456993073006014227952714534853600561599992184284885291882738746965259129010547700707282270423038798738964398523613751976328537829450562578705006105701844430048810126184650269087654013676973485023033646328065277258909367799829738612116215819036527336134047859526688709310703929300770878684050158733868166642202403339863364012594974330330028217944464370232573920548861316078081206354671809877912550293096489043038643536594715234410382087731467775919769534056947025918851296580799286897943736878654909203658487422831500048841693945994231759175864635507159640730696660670758707724406503174403098771712788261355544441168551473219881079454217865821445453214745974250348762432572900864866721258110800815877242692949535528760333285889413064612413787962212720831678436381534072065704738393386036820134433003470060457491480085896868214434788955037854374435078772488198639315621862949231984154450365004179129105397270285578771836824874784528580311121598993858173331077834795837865252807468019732974743418095070761157370971867864461132859141676677010017161614927179330881898020062814569293266941001324463254219318838122746307995973363289885713313717758187799348758438560348920861794069026521790811263828460886781003056259502227058293344822931311570990156689129296915695131875618002971140456915348596338524659970991666079841241160396300136240905692478304350733338740138396920864006161704352986897102173201236557656485187446079257448984078809038175024384638081118412862332136818449692397882862528273000804771489946233394301960396576119299314541568388688760034416226607234001281886225552988306221761748446717299779462465603059982838898239601485273664676872051422236094791286010760397141587338519771234514204246292667752953518686195226719582623801482702072366100202750246337070600544512129947399016142179502596433225136840428337231935852716939978427949899930053286484916858389371990558991945120697579401310158482857462925643866707420601384409467890758003772776530746757939918733498641351567711256728739808701410296586698884181944628855591076193915413493094488157511666014807397851939862397009478181483761984550554760493626963677910852454897678190957740377002229257999298089688783202308203645614083775059941590570425285279963911999371436362549036137788514954260992353797813544851319021327075727741708077110404533601828386546639323397579658083188647269319476136039964557118345698904226777502702423498884302292017871603675188318249535506130716863463070342767380963730116736884411580894010950898906528793703568400764367928000665598522436817016353891023352977372094570296153110923670224170308446240300979745782053612122536296474734537927038677422399588401183965941503956508370661391151406135722296653199866048595091842093955862785645501477198863239402477056778931564436397786645466113148508238743892312266658667857009460250586027041349292906298235507944460671981813863351471194065139366288774525767096295638103845398522596669856711716682165393317558291756704744452421017795566395334828146558012927429238206067352899275233070622260026326342188779850978481200454708923032644340788087705846711500368826987477742396544427051221957056338738538965182441038748829946554752341942409909501203790007720310658620174838513423425404496469711615228969545607346641242332506893594681159615489185321552345164708414006809804429590957676442757088084145792493808945080408797373772864525178587611558411703395844847706245493217505067781145599972367416254811725130930409347084186420051008245152135288765329198955947149315760882017970958342783457461689799283196049087168171918296527537422366437338408067373492003538565467617611603075157974994882759194463847943656059203314465379717764967750906347854172567968412230560952836650430358605010997559902795861879026034292108561458101533608275213013144172378292179440163892033233814367966003214795764845988181590960668534664621908158027476589559788877185801884531055477725341290398287260963450573369149220204553559924710005636816724938984400684196902289933895247862355403789067518394452201995241471899195507064109021353880543594364752392299148654815395504204616310661651179415565336224367063299808354484940353179752122257802802940339940865314227243524646425516579386626378286493980072995703764672476223149211605320942108191316287690591436576128609780117343831427877349875690110930680075391270374467759609638551088152401456996301641704779184030017633430143081461567220831967962310015480236878457655973044469777130616626966454335831067963479032928535407737746570148825000579432667281924059609629175306916524696073958603249062296444979020354061956252937736877702510011863959028763417407966103271563791098419086225125738557233921187242619449153063053218481518164813821199751884964825846570688269012148602672227316145963563556547224737904997639216437052052070571106077836440133410713971068785104210420502712860001607195964533339096842084956931303657439316657723909256313125383700420755522629332833686466562352931035232456391727584911501540077969473451829642919833357510118906539640148400874480605913238967677198643392861424761352616156093896912182896929011652861512562085333864544840599215158858542985251658178815513289458156390778774891029044838763869005366582383006714521842619481913222265830770273103251185556335644798861131286985604052784640448359838777159513466608721544045161129770876094141747094683797214967010388758960830113968252724867420199484521076319078313246956628046288061163096095652950188674142553267005889547035472599332767783715652348726162049924895271647561682657584716099729041632584225615154885282744005709219084329205156454619021038166342001624968035396854741833921155660998255581143074586212146540810171098549451830420494184094422200101296453245888783709108584704806623922797372143236019708516027171064945153987838617826783466884548577342405528589528953994971656543525775463260504109164117545086949237434677204212332178648360940709227717007082157872523836233892133017062884796109712108506991451095311797505340579445591561291052786754489686371416837867775053488701363612350085473313685155964748467279577390899546721671439688606311087808054753833474482701193554019714595177249874430072499432265353842422046548806832865919427710111633666249048005898673612040120489177325547667075827850774917616810750057690970045421329447813689198018172135789419265922303990635071819042490708828947292036831398542919822505612348928485372505292132622726732041034483196745029770831885946607786035796840394654714407427755184762099999660495743112831330781909068524578990403191555720889782051390358698521893215355996740786636240699752907347252473892125621219409839138235343536248218216604631743684694729663671118353717189036716670882593481988578529828302004025255232675814261178213329608543390586018941441939385615497789256540945713116737334401020370247679603598100243976944374541099850082133530962325935719338686038999588536581649012816197665591071938813133742509900364135300976459671395419232037556873983840552739061109698249957600658930200721230568802596575502336393938782525040936738174867207862535881122647281882917196061224898235434745811002749279172969706530640748930707148037499076474805265631700754136411898913726822414149723261906544181545908187218276004022493934389023532284956694538977540739215000142094916552010643439225779959871997013782412163827105013315124486141178054475731352861391165062208027815030482532945685845968031234715387656079394880035602257856463166876392660574122759680866600381806811469772633770267701740656793716334364434980857206348748173897264001268792615947826266699338994802103509792926295630112007682529982579611055757957811867873234182334383181373282122482607226766260964578766856116230913844699746048110197328145131169894982277252450871366925667637321127334566450806059514060048005032247334079648861532700693005440586406137363579182529053021847591023038768560504056690934740495031224292285260049247229880820713748096964720754035014398697473050678355342639564670413347209636038340702177526257260344135765795334603500968833593918036067720285193914762284421540226291355954989840521324466613312720602336998165877140037869436385104022164491036694282789580319331701143713780078159830854244184907409827510784588838404012065396604237481965432206540521013737185086760745728944348965039458855299659593465782660966349665845349650995782327968679620840749665848006729070327428747932290152226482130947428065020524079375027687017330757040132276687565675297048146081142851621633864860051242218921291027955167370638281157693409933773085976375304027695533804638373845879921623733053188945718814861892180856211392388778700612553081318759350647947458378774016422461206814561026120014306370975292220706995884072659486816960264048116487303477306036364738834757717394706894204203430390241969032051147312563190986481958902977728447231497934422384147608339107316734618632587377102669726921344730338906963014455988196407949357286479316209582994774742433118677105546047348259208726104959341300115283148504828603920643317144688700542803770105542430521515707859700494868706080405858117942502754697362876897390315466885339964338379676369354204402750017102523654821457594820656942184727573117474968165000132513829776408173883354336286536872641814601214594787913757208993033749171017395875847898074258662492232415162322759192845608969374280244658120079569430008593910862851046834449347683688124629888086134957829756968154245773994701748379713834633938445153909054185797389695166852838340090956743758699020728155513015017720549396838424477948414539500417972389440810704132248013145259369094014748790299624851068787948756279472736699614825440704029373591229886486316783319220264109344454276085562294822631864543703747737811186765877647462024303230368168587192975097593563350768931431778198943346244503824628702000501174147919475298665742654285764383547075755807716495652346953719159748598864655911312571061957114234106765009420886479805904058117256569575651091855829118844661802401555496022771598167314194338319364023854174389784322595820935292284497304933151541573167644662439409934933769218262664759362327653210515810243682643363393069115723276316916377665440033124696859922421221239208454822991511875382434842248650162653574402281044885773443401897667316406702268990644339455251895830543099876187429062574093892596026137568125058188393649486313154223569399902299471929586418604315843848266333936750886582769599306296289853358833286079833130539720052644936945488374460130808011343217442020268225692820586764322147889188041457415344423111514263293687325089934635493293135253532407021019811775813724615800464632497995274112831094873624084897103052063465965201823105230645595730667002836192971907024828566823251364567288234651170244909395427847334789778125074897895695519407661062615225378962345389075708272397191267068439631379659130081216742121865604082614027842743341527005548607819986708272940688733906973061112766197435509636217821463849318250975191072660554439918128915793281734981138747462111077806163527669766656450950149678028310334283144371667734162573902062550119037626794478637857627487243629118881314824358843728277712401376268588921589689054873927807126452879775808102528476837069631847572878322831016353721561707783672066831275686440482125205748892274710572848290350580586417634113196911354135200297013373823985312652165041607820236770660314602392560154114138303270510849513837394519777029514304162163730666744784296283155951500679517619979834056182611760015929408849192348848522225792676409098801902680848597413591182121371429306616147579130213002841900856472617394502227010580539673851812633238071389746194955762819232670315141236162816743036343419929056328008492765735773739844269639205626814695118871888945762588123313020326438339691846263614872338223457277864039757017910573905011244983406989193862437092625502282126458595059905303665476054554173455591417633314299538311231958436046818713251149712829215182631802042326345110985923298275191691027686883482088712567837067287870277870173518192344933216554591776186130482544950127937799726069274555752577533536972104337745313547083856066903472108631612665685920167559909625598964569033756353884069439784268156497611378891186633120962215604194671049750399092267298392590878963617095939045161601228895797067288972154500455754482928498670536654529094569667303446846945137324302225642611815377741530279927462482555177846862881371993702056364922915061985870301925106908294158466264508248784321657224334744073585728206592190106497244464354753125892859224991739671421788891156300306988376523897862742047296203768175849667472756613100839917975533097081883696575182490634730467501553236276629188484914330514943460381036227417611091755636599367883190933589723531550886883206086471480961453397412319062525239218618049308814294607672164271575140310927524022348696279354899293966777310067559705892858615907187525798178234398228115802103386327434629288240227957471179947077046450547415483148212803850494928781842137474059470075782789879006311634633550782945393267251304969099544021860103388101860081713646910566312500395169858398956254757731823896562058162831195233105287063176319609260594697706515411759699888586462892121841393534659172745870716332236360782840537514874643482431056160578477790950011296197433602541060564064016848965637196684494831026511614011179758538365434994699609110625155261042765988537353932683153051667565633959337487481234986292650564600516437590020844260623670995650950880913929899156805827754696605905321821003942978837014398870947836440112198118633015802420117765457182262280980453143977468240618600837491938076294385658078276168405891638133623898397827854007321538902265866683412857463821249978726851159277343501062652154808691697198796360990751798319677423726057210614615309295472381887178871463292650319540268425061199650129429798377759319435841486744462790605629581613542399120843027309149197281696956370827585265563367448097091567990358906884003934459752128392053502750590859084025491884661542620944896608678248069320523076761121950458443037668768414576009327198814902814531956778879210226573801648558862113071518673109842060874230365785525923394043517559418529315259023958268752927679287507012959812153421278233288329723873860445897536482284090688295902165948590992522987715638204703949512894143989026882130041069693780086037423741156301797863485181481990400136729389602829994612087314608208263738219938590732267684014065307486927415763788679454991098719792570060768480961471467793993166760011776795462879539518384901689823512850856727813946297128139154561169931635931771567915271690679004527031839400358989606993162889262981643657646097881669206690056079519817325118507185593477396926132298012627392109072057814711189298135196966502135002396763158286441657569091370168559395223304963158309029245300183872491542524673065470472263567377285312563064908055731853351059663677037126050995147448042572086228883415677434735409851766901884988053358850812221243917052088411399708367096229997278847347487131784309060756523435814594273654770999394208457727982924449125894753744910950197144361168104496512129662680788458035577240092188393867347679184767617897788996412839699155104997073220521290622390009267894446130720504565210025691781257302655671632049379784971764517224297567481159732311351820244583200625663830914434198290254188307926977791062997683313893359983189243232458613690251994130255144853804830063335316557012201114170090582793699430975955262079321588360147103118822754779094689991071243135126702247566636736445617177037478131579596141942361270591456498197728205368738436521147029041421011679265845535940091811583331608135731670740772318887891056909813169753286108954188185757221146335979947547430091321892997336626553251967061911830106234913118205339858892779081466850217627804486301146595575116377462948601723958473524936212825242938203007036543590389501195878887346908722191105993757189912528413674122250666621206450202995707446744190104562082290283687214480783125559646190301543207213521632698451180171330455152761148874728739833592971855738211031845573374641084038684859247289849212200848637181641374025620222292463404359656261298421477178890117847138963846366137454075405409359860995695822228982362464095739006032951388782163447465577578625669510508048440984045154208319389636357786466304873274762948435397664227739169356031819871915955165619153519419619970653886018630316709521219558628576459530219629417831737293061585975788215476302756019192708822075533766100470827011952809827592490926390247521777126546566088124772988206582769138913968863887311365046831659984918572211236790157577556021591264505350986193677521166247123019440899083195881167333647228295207140180719689497981120915630684444234884955454976702006114625876923613454342353528586551208271048093023074048564050401187850507591989363832682654954901148352278253679267897872526231932085039372396766215127535351207497829114805132539792614478294090422965179673954211942753230657159203541155814654671168611847426024432925891248287533606478124328545569726265789269094765127922688534085929274852513521713368288154904713691099000589670360459747434013428513834267489337392238836603383193420180343368362292735348550637110326852883021216528464990982811013999822649958467801955166059616772937142749874705287775519340864486250809660297723006190929049779706135929753358842268245067133023764423256596473896445875545761520956458205334115442854849152173017556930169740033210017983888419800714186876407757227754779590864074395719627202096626026569218838384985295693937717088875836923405684290744001781227508143763992897148110589061665072713819222363950705107892259602309152140473741717034473771188945995575183121643801790492657513647419671191346205831346915282116785341021961321972138380775256166425453795532270568550571779482966620323700435837266604482859956832176164962320431594944598444667639690094771449215818850151260529929069450098802089997922136174849586151630662302047066010261055136506513507969496000852767034016427793447724029121092344910268335397348136479251538813514984210685473028344724133897121877452320436678666844306508241609282518782393843433254641795999777644141529237462788179654861618743773174215223480984147866980607967916227928713714809558397535610826071697803776851748593692392073009365606565676472052025267650309311922342686191003695982136800728529398490475193215694961415068967771877706380272759878181190580755514724696729498701360050098165098195644414860723888189831584455436456321872799085506916176315706374895990302017051306464260151429304715404732630017343229426959450019770861307153969594740677691049210260310001215298367763591973092293587499024584421434835103282227422715916292390417355792790085562814959077034975055075372864084544154118425845670418871981077438128012869305636544266957783068098366049082691865605636932914221715594634013852629721981428159593321186312085468065601174898257256730595925810746205541360626444121961461570884860148696263957592874030736419928965481975434585205914172722495305889587758394415336152001437001116445015862243126207631814270820051585908460585145389027574165035635864211962862294782594516950020084475132018294795823485299790777707450923551145689502167236036486226877582374213488136328924438303158059292863273112622768632046079554800866078289661910299402250727079574703616610140844624394248997061237048578929975368138711171056361126474925953636206129568498483958244648777448634399647362932726571184709915533452979581255400101072387379724016335890156464980293272717907581558129902856988733583345578942934498332009172687823409015633309096521354665022936672410242411295648523402824393756434583510789521207241861576535928799070191434947065276823724254411231357642061268214178005177413870924615683260882128147633577357466934090329803954272625427897844546169281270770602940914793711178592189221093269410590468022276273097707117716802938982128493651321236802463221035718484957645424678729375320117929639575474595658335078887927368868377155649172834464360982622738185155639409033590858777038923880726063316921711846714652065664014733191833464213637027984265246036223254290520157077269895930806246263543316264164328144514318574111395165990872105179377016725599222645800556674072723618559843381452462381103335917854358411944910676371998009478741568173524751659687620593764308258722441883811110482263916390786895020387967744838125541578672035205242257388188053992024341721795713199722706724402789301337776668542085891019313690803346293259227072122319717686530344508641280469265178524299533089297892493012207181616441710751100566682368834774980446365429380915319197444583089944953689209959034137201950806947611544059311487386133093540816810441484223004627442264269493346731825486358948228544497718107102585033891466178462645895616361547551879418409814718317086926653671143966927141772688410610809235923757498419622352004085743336243214519021949527756474615302738639149903599896661978529264152571536177498350160181804201459382243611094069719254161950060591616606737376819171912413384177789904698216669203931299003877155951340751264576278704218639389156266846939059191669020195210036614796386125135241899432416244315441596547700851037012257550297017404482962015763388571373128203650144296321788595745424795719891019869166342201971723123878245152568360792410754852966806796182909824753564858660085628620753424982295780085808471568551541492241725541724457816634283157104586041740012229116802388415495411755669531163533254643049303466972514915549317765693532924518456970203083138335447641210432601146362922580661058217341577030060603162559645583268299184405509081904808042261212760269880402352461451091695927885703928256183285768639993482879394962750007123970661288966977865840509410873902808813790746632104133541752670060221862070995384216562117867487980018332779924483233068121598336259900242867721806978922201141477421382735461900850413929697233666688870759550268342737651979654622696084736529966267841371765354498713040011725105821617286220055441083717681726326407950637918783554019989684015944972230351512332385973316472890300776241135430749971627333660654398659664563107791653955957125950102278843860808951044570865867426071120355130506625045763841637840233277685619478119475590334947057986858014878806985277652135445234955742802311322791388245538078467304209422404104717171941781102679634207481647093812267708739703437157667073171843633794235862629520728640483463442102594818589946158084905963463604753356167430049254246002852687841332272258011409168540427476151899649341484944879026459292654817832638397534301960699314610757964213734515186540622892958790582181158717674087547134848695721994067845909523056035194486115791701099310325608871083337302294069567136177320074354482819169309656361123151646249871697466800849122938036612245075213363997552582964427917355276141879318395652672439229163480018288290296261579410031595968981206565098280140766333131250791234625516802800134041549255964755906283240466037494957982501387424897981786245760606644685722926128889258546073462209577472979410276241839601727708378134020718451497339719322987982736428957103576040207668780502543928506745450575348161771752606089432659606118845443492171561881219383633190174262524295438853561421898289510417036681815923352751025984587828570709888662964478053111331309121253879339653702702202734744214684289587128683650498860201843796586802878361710986269016155900921676448011582836477633956896196242360885800753699558575895065320435445286662040657797983135498396350249385727476484917569737357937251229963441086856503771861437865486658525035890069020793303169627446560494848995518226566479758894421519104022911231528320009415254725136145132733983486823180826796763394785895264430319919441106296392161675221468647344683390296968777363853750257581210155949587558730597761972746361377614435301523426670246849159417704116330930818722721155870267403788455610021495885572886121695288131459798452527087066790659127233700244126816420828583056801137055797758346285747373414780342941664189780384151424184222026881607513596793084682061176051192807507429529483183321976835384661902571931150977002064775945885359716989151379888165423827850110451213980137523466146815496632435648401995680918917012654876788729920178500505667195643918454060666209011690365536227007169387391878491777026910032826890709757616459810904251554432020153186139412995010553928143462866488358261308990601750442763202202012656730252069145926949155759448224864256961729514390895272754562000584847067108810001092488647606460974848747130088590797148973391799299043405765273970014249297812732780228873216923220296958387796318178759201095671203775499398163544589718873965220688112245051115176483491481428745725814044514032726989732119507686132909747865683237924433182950091105278522193472331463020681739135548891715975409895746756039468276430884968207870153803397145634598097741160569226552250169789639207104168027544038432898292699941227555092566285554801658123097401631275609274142809913386333575852871765203289715804326491218232366407886701055324496874641058840007621790298510936222277277889150523335045869499975448206416762267429274114529534388506343042508917660617552514065940840509181513712832505061519065936667358666379020948249638977563930289032758296226798110255409721833876070239573668300917945261681995442430009242534279564621263553318457421392395495239161804099491340661328761370726110294158272852698620627186939643325658590996570577990966748357682315599329946200465220154964314752070092183060320759276264277052044970701078895466567206797784796882849415873821745436474656862183603194895655503326752568382602864932652063563875212455122462448347417478863116407660365098180122942344716623856265395593239441236029653242136205131740663402085160219168010036575515491597802563205326029533891220193544445687990293747253177527583428283800389303878102313146789674948109239044033975801847393106810844398159682216372627975589619527638941829447282401809972724373039804633902900316464479684533144994947422735162287413906610187998953056178938999063556947927628679045510681249870728895209997819400148441720835490900558785144714125546186377003112265683573690611324659069834472192246455259194282673671300471674621217420582881965444291695819097015993670070273677597332670582227953386977735279849478020986151529609834945106236829150680222151374295365277039769926368080446415511744413812977966299425447601490468617374400571027456545805508679111936124733520621085965143389791516551915478602715487489356097113523571229423306465488092615669815960688213803166522804856776337161674400907545922504586711683432687347471370562827192504601885078989681980351330856061792939749857865673201489939013084576054610493368492091629176308743196133317373705851998213002228357480759860509626617845830207715788247138490588645892624065127468606521040842700770674548619478904131997014667324334334597969541847945302080588705458010699376051897562810519135787140745542959256802320934256241588788383041792466859202218019520177476407834039207556428583269774001887349979300156785938243862620482294180054960030312798561499742766469819135659660383846507203625597957224459114564474837669214568280782319897214214356499554394634798217078504012969833695807646494459002807727584988712828590323763761878779698694977008529223921847728459155818250220042144145022867194278936690275312723714329605235480417235649755503533977767605529272715769688422711115341118712236793345064069897262128351819317178719659852472223993491862037198194269585143170485763034780769550106109139671181942679335909698436344806664186318377654717043777650090493728792670474431725594171011953055466017871917733297642156401236984492596595724467759361267742417116542206031979370494974089620757861388533874932902209019330220461363115118570407924494183794919059092687073614527577757242151659333423733274426003804036869178029365697663542559170636333732315395320409268862638392495324144803693093228345842910723574139541286063810000764806039688848129288344919178790853309962205227994871212307638230120669431342849189059076493866439717793366798879435288680718671939739329828911161427131247814756701997820146488608423873554523011329069205078888195094783193117823498581770294824934762672871671990219810051232890228131010658119558865980574511471726693451752916271796371454228537990294341827094044316710065934005013970405478427365873932288274994529689448509562433602697944468900175910593207265054418119348652260427028591868939897042778957210836129303155732613879495757580277981829162046885334951732802767816393604813444903882933852044537725339375377590705382218826307391276144490286568370640664082632926219800705580454244296144547868406163754210801489509926171891588797984939049256166744567692801150519876077028655362840106487770659563319157243036937395121015108011105334194131342371941711577094124298995440138116561827336394439426221738593307985242402206025442969620870458839985610876230071148777141319482851570213819284128269072736373378758441483778040414225071456956922344298142856714309652712012303085096784543237862709669265765228972394480639369490399869663804165101846781503481438302076773007569507898999489223633673393209782058438777326628844495021374712592364460869918641681407171142016181943085817411206345919680226639866542560534951142288021137661817061977365726911324025448012805292407031732042303917410411628975355295828342894734534043074704414618844752472262812537946427414088406446880179526992728686860263189678064387595190255915417312824526214197032365714234711750615407805105507218093583200719565829242265967354870407318081994411669507019771949259783444629672601670536998709068642219479514285199356814430561551329248902105414137943804122060052268564373599008770456261355625855252561731425394515000862382876092719871187248871110759133631851694028426926335890306098754243555362965536610121103977651040784987900306803965820574607578951166721398682033670387055508785582852087705848833971600636360004596324564011866983156365908791604682048340758950771028100702132745156364828510007566057299221322334039746081609175986605305576219723624816834827384874391340829143868116887262395886672953056423762994552369074992069476045122793936932958674212313830590358818235538841427974994095975419346531723952396176187166922050283148584185247529439887375076246544717616694294947571390215934279547071850680743792915960694445003748015420772956580691380219724086614619270873501744006904355797207832253781901065231184854350037457550555758477996480471130039483215769822537834144989060683498949510053698348499199583826183410606935851820150362143052671387393215753898597577164924732818303940758072128101602140947856687677551942307271558893252262007997898468240792007694453188837992295399128519805400034883266647269255925132780098989274688803918881863222434110717836486523481073027950665450667803038703499869125849773309453666942372790284049083584407876258322638144442458480619248894277279469653949521350934894774318843160421951528609464473086033502837440194196969702969935888590140701353100224042190300523502996679328065309916254044156311734942231217179322261814242265777744901840391938389881859958471784476919371704476894502005412401739846023606723127170872923284854542731553048793978033928448067994850035226136983025184652038662664885397263551690952486016890135848781516761894254183991333652345396537209722680930672286947092154246928799401471598324468141767860054810432730183593764112367014038724086457908699422643942148590829542585144731762479353835513602874508467052082523497693029152786745579485429310585467598062053287618677875065905703537008892026763714932538868981111776091425265177591019985825629720294127959136938378818359600534879121420917562274986798082511216838175678178178055788332758474238182403230824168834498189343458306496276032433041656176688247210190052989546503342120961848334408565913361261824413747115856692486860187798230982331117909928491414379866854314214348332744562065252905841832267297258520103239283518076416053291206621125493641305824036378116048813587985976953508994678820826018651804616241414854213882684884306827555386819359201650825539583635574860227459513808770381504107437634650797805514623125095756775378127983272315629704417342401567185730178884506252553489547338110593878755605098176862913647780894396180094357414243609733996182845770191318989834158387014202986329725655951216283089150224840875655167583944394023950970477529464593591123099438077196903837349729089935310395594119551387245008220809736863658816387851862181308997306286332331816833708112112253852183025210125386145901441348064753492973324801317015529768266953947590322024766455939716088792846245874587437441041393363720711764337996174333264452314668588900907200596760589277166413405534049996402473911817887499894995051349738121362378881758135375462918671456914690355184547646279192835392053689382454012213132383765033930213889726323941136861779137551827089022207830825082782719797118473884739052962618407417850399584252084757370951628758405509742455150900420483444872812496536165334489315655774400022410828614589245444378291070444247428734170723338299768249300113323942223198924779182512224256131954002401400382030564125879274777594128314664948938524598098151681095983803580635657528743727757923650550867601247814535386214929952518137783764132143542222701031332299986324117374536359882964251383667007378669313872415162107244646696769578344477161998914283338381401146443018836514737105898677212631109399641429838351839622105967059220548589416858303199705884492831117212142719324685369135142543161500068228265510603184499621960146430452720472153248385269558634449966540002396485494724951400603854963309104697926328578292128189867382580646223066997457490344468003862845464942042761632256988911458818554965956592802280150734453420642172762597551795438187420105604961750382569874845988510693143586876193249036850693380381218658401171101350950634556277854080845466564910422218561785329242781015163008954955114994792112388257445250554755851092459445233725510240344706960909366424728052366015634527009204355454761079571304567667285284501676193747400125272639320900370494773932035535673723133949744296025244399042887285875242206833438832583493953135182303983151709314121556626711149961899132381171315956112421217363220455915224503390418357047784075711951285745920820114109859500592124893920996944799605088777524556631974528725143946166484718729678888392776132372100111284075513211426351510725043412527935496220361564058347559350157006297139598222287877250884713428160072662568152018370309079786632211228355838047358845093553486090833275543504543490502972386062059304215926147735217113360185273830465354915159253204582676698416437858059993240888296436494242918656502644148283787780480361888051673628865006588098197145472137225641484712183641321481869038714177397389523897420838698128313013872726019594168002334034197699026872045260942216318138800807279748797360988741145626517247300226852332199488606237775427235954453263549697194885016180799880853719373096452216610751486770942460434207619535292990325723123555246321208830702830147172804756268838256256245715903243231091081285746108316460051089604008957080202004044582228757472488695037522307257226229795795369587843810296735065284251755326403859165411572724297455072310401867164446543680539563258373186939116945605939406993978091765787959364683328982885919295806983776240128564077162085487506394294959507938965059368170709046757502029297768461441291752252140678251536727756247812529322785234765760271134066210080050992270956747085937029783184472735569589107690836729412718190525692682626814694955249862680622821703289284225225540832485930047749455301130581899523085874574835950194408108331304074948374149360387895077459528086987587556960164942876557629642848599802118398421272107276830078052059959679158454256727146055917895797178973766493710095194665329843173869939075532396317856109607167091265279729393994869529288413299827348001273669447415042194041891974638538765104888224276616958218540969509353003492676466260662981014800961295023997585453404620317949475198242693801312994675070176329365125788512673388284429304438504359729701886431386045116830887025873144811133544359860788945330274821029154525053987056228284270631639316379412832914866180271549534631142477060285788176564563657398823955179315361853962440167051480137209587179912745045070440157522009407031271326397761452219126481119420931820196639308706957034138636643873362982513390068368520383728303219074162799441003218124163284398314206069594431415547275057328235017512099191720674409964710737934050578172557042939592835525977791182802993499061212924893241583139196821567814746283648404958290566468666246332227349497407409460597232850205262772424766475276458565838945638740562894326220074948879398368998730666480452043881606430349597982893134350636390959860092316795860306733309286824605347464567815105027212402679956787186941243788497273437308455133484065550538131098502736085177407868870934475640126960478589745210873655665608223480709268405376141176998829445768575423774767309670459870669923409403526504115248188929988782189576021853506709559800966395693335620370253724667048882222984444716959026898519362235973358128122703264219191879635343634035944198915979373524095882915921696553230511239160977663385796347364889580160700687418108456607288037159147255717788404127193999794758773678332318439380164845360148723039163016594204874601297869576663455156370337360106868854176655182735035153068574557424116693789557870293369758152627341952250269143254447477147470029799315217496313584063395246237385113243582309956803046421493568355675514255798805656634494441451552671138611041225559104012096914761959958679361345204668260408591776564664339089361306339669969570615799364964971346343129693898335051548189546305177736113082842651828812933380856731991515076849732303580483780513345525779648071390125729093886387023119037200221362388931442024164695602206361462496465628141196050807833409023649001657131214874089114796808711635295007263571070564558152593396764015992177622050030524556776086131619258044188171053626656608951129686568696733557060796741265457600601843698891135099617441652297606819259914563779296016113868918136317277467713510694278552757449916258193813759689933273315753653893893264474053758251656186237801430279927756258451740640267954345894327201384389609140989402060683207620453275489634896067729596394460695273735519138387422423217498784392506739334773826873975787893517606692500940974819223740504740629579951061346436413392497629177935503447773181735619606167510317114116566468535242995060111378410280294185545568481068688001127220618165825002537526622225934630219803957169072923228255790019406510795983374289102752166230288051770868241694176003225131822668337759065796593018060084800368176956508403321611777101986573427920261471646004924903212032406927026122230901503349421171001513195358695004718308300105812378133008154378305385706790204335401559170186008863130045914157697682626090003062415915379880397460471805928481639300793895716515108259280603769363865647953493273947408962002321129822313819890192149625685495445508143848413537951580128338641229206536575442904912550482775889270779396696166196529076333823373595707532563529460658078291115827709466962579062940323194824488411102808312132270161632426730142913275145007107408505557944112915561834535646192050530449385466529523530566061376287165724810682848717692161909417028339165495980059357320186306687753428027681750907033296531346468229896585966816423236635785468940924884965656691670136822441742674979711489671855416850023155315610412876289426473104691216940505375037435977106786684109726577462226550814212559049917052578444299893882399017762609649663319776939727112029939918776931631012072379255614210499825555496003154592523402253207473297288383969491236237321303570636043572401994089082067333627211355000290850267754043199670060480357135935323764110824612552357108720349329685754558390829851618414650304725007933130090391115890630596330137304900148685521207521814002993137946907244207662815467671997472359546973827167716553319886736311968645034378040212750653573241116002157889420846751601147805383353688843527246140881316482560351040351642348582745248429314048224648288790583391611356978646592836785019018880786869914667514891324111228997403466072197015808858826085495054945807052909113761014827058909369179212217388050926326368718603286723396146222894916433222271902086176587434539607517141486486742832306807948349045383100513187627195800342974908474640929711224660451905221085093995465989444034225707137403994228979584112128866902643167407300803244067510881692840712010558389234808947338976642324627430328063320021445388542005173552310886851704483701707917835912003316598641528759695077592732513306293400986010524785486855295310859731229202991489217118741914191150800808477911135172836024231924768712860349325580668505090743184173586381624890678641094424643514320271876007810103879320176829943970848258579183682572042321087796314298844186051636021421716878011350712431892987023296496534329478502890999673224356661455602720361433149592623530418535131289076115878174830196324043319914867680109458908958374333195226248327786819193822277854108477830883771711768155485340074448357221246207824161865515650245172564581209277975542570284662307146200239086056535676648173458235565950717957433885520096496185128304558421389427110511169073141647034828810963069484427091365460244663863280224235523270912144852302922650654356512536376991331001968899046754763684599774052372202668957568117285956025795862848128672519250746668077070678492688217111602359782565254062758492509770066984924749747548218400348547101973702455911353548230149455087838722612049956337768768778105938166843665819353752144767190227751355116578916333183111939464105774417300329018981988429109591794135063607881442140306414027685973583903545274262688361993323731515814101149912602629752536765761086068553689239551578677726960934061832493839645726208662269289896182567243348430474113177252006291753053316158430249044778534797500442290914637929627206142514276791956516030755022406647510999515489934152222875219292090447416440030462462826655243398017315970939385166384664033409367984541810638081615379251760780042742600810476927902026013587037511227505179405853359704954102526670645112661846012955120406753444886852411482667222647528014443743681580513303404841213640586148975622746624679655644830086775433115463609150667009467537258880177074702664874948748029098866466532727074224591837975305565427058912290431265288428383469402110342948885926556098055833084664103302005233463534556619780891038223392256973255659259005256303841549717388617471398213038115962406536959946084408262760404780879421183728381483396157555184108474822398272513675252939792420364460025159298693681458783146234056664870570197262482674648338962055793400347517208471726079446237726657861754626401749022162624991721118379634702467329442515101081140185318996390045489460429494439470676505751548401278660701671023740822157569302820800508231095583210619884833257338034206334257462159622938126082576780699675607869088541867258471764813636024944747446474000610509994106835101598084430444910772270616801418119326428309530797536064464985589075715197620099594073619138497887913175647159912806204028463780035656214318706756788610523203481050635141070007950472710607024628238780713298497974016663017313366337978206368078817607085850821675164652499406510469117207460344865423741189009528231943295902149790262902778080462848454757472217004522232526805108329644982296168209295599550380216098583715141166983504347407694733050431052887706783126280542845781361590333336291520612165749039553987237639494850389130357601349260649379118698427466154724502333146840427485793011983466694962709403489008381193560180326683502204417259393493602710110010390949812394120841702168084776987805776364996937061791063806271532929090870791191760503658989306094887687480650343417086961931811783336971495641970393951494730597997471020743407676122814736015386050025263359651907101938692684265269619419009393970114419708537426631358642202508814661985053035103528960619104896759644813954706373612274384992184479759041012426886414335808066784913508623315359295969033724205475705061774106559057688872951655640950106388194434065021321723051781084173978359964531947854989246675974251983747685366427453979522943150508749539164427334623064425123087187442500720438545009012002102546203878406177311384042986670958930783624828000997619215023970291799227435663342929168907834231938360822971183955641860402245287864443195246031070896470614934361685091760244349081349645540911894919646173565467568277192129152561145998645210891613590517753270708742505761424873972720379016576978540556639425289783421517232216230922775604570881501842640358416854180345846616387467684591174804256821137644057033963833473535717253318959251149132883880586192216383692356368885518108918894194486122476565278177110623504992270001470098825068164366010233226607087126514213702034486307512656315443495520135464489947248571733780572303901326134578092961819816159929819398742371590617037406517173307104360869305797974749003063955141645700517398624682158552699865967624911996539605086230449876795885583699061720535616095299242174397164248828608900226940191429521697609284308565235510412859581127400998089750642702521163267532532686760627837202667192053958318531902200624732769828632958291404321071862315966446076269921508795963458300454656583488201727077388751105482491332292124425200348522980536702401334398669052938223975567522157974716579004102661788048501638492933852311215818167681685240267564993756528918234285752573090952012614379409197183903924949925618786067256236071020040583077685120844217634023120957460412036381566500224526120108029961347563441494892541340684692902317356196266062340725283004291558445116572015924448085605229741523367556272208603387553154136899897369982386160204889741159491146240710690684493776733841466950619548287368765855343742208963844424999574970065099924938965699113253875322278745136699348481846511495645600099019496105278461140947030733570359961693683980715701634851432602895218461158435599432337488619542786356945417202026852852913107728473820329099779489311966260375900667196678994182490556714084870222327078131118840326459663314165525495116080952735429434944251808545869345108185824418133822569172328969680775835885898348560346925997106494184859661081658349355814820892973347101550853970575230007846647005027099309998392879907096425615320491780716380149772120291104510745388284358607866588358754763647161974396825453839917843184747695519173752557662722152821797269610767451563926012011796023271730476567866454347418355489134505269979784098687704198751400361949222531117582799081252673040616852876497301569726267527758143632148826402548861907421330680401750419453963597353076032098299790003545069088303975884232623699910360942330548048995663697956092937166860680298718129939134089171429562724417672693805816275365566364119661778149766314558479539774926541077198857641644606170894271107206544635233620254273580161903608280054182016072053888092684114457764503780297151417015366118000553746154379665625225332015117260228340030324722004670214405845181277402405345939930624824454451672151072478066509295896903374637121290747549984295127133178538325302875562283290408766157259432598655278210227960159116653656662746184872820101175829026128423152099854147063043477381691938202518448837519073777874765120121255099007187625600178792422034078107848705519339877279759733036302006975220650537227824065353386594065090812843109997400158562246626574385574777791539280553087450174032777353536908697793465809824994732896069558083374218330618605518821798329409544260715872718685633864088857514895191180753279420460210062382810091571247343346355960389035311850213654383705177093986633483798096075233202494511446770097203948988104323511083258208362768144748830525529244575034277625443158540020758721042560236099781642600514114185708171958472200146066478290184563636845566883589433247347252168070112705071437677896861215196082590966332581914751269979870451184680022776470365845752353346779265472523090084259295336347400886108117975106998936414060202750837075350621525990720543956422119541355414836322821983969242911701174388183368016785967060282499007842052683126475424497700429727253723111310007148522391304349528778858400903742757407156814190241951889602655232809762894715525991467283892502027051713382881671988049869026726724402381641959018771508580582001907044072856587079572409390400759706744812968162764133393003279397588350135470588932909178685554852779035078000109101335808700597657044575431560813573292707653143641413821921365552216737212892613700170924434993896247927086426852547958402563675731822148861967648744638236362521433761776732822699572849069572957609648379585128001907776762262046636616301416222221069876405240736027019031864245671402647463354739033102640403860367085429333157769262437617670537934074587550118051130395451349999366897066388213882047459453507485943298456030494082541602986809405823524666890737201379866278436741160060705234712779588624721711142335421845634634122901302706572399702227076074284753319527746450136392025509452978479412880215653563602309332397070426831579847422938132638754596318160051592885373815155633642226601213969736704642696550394747123339399930889859700258717907617571608737736428331652659865178307527349852940137230489375338389698606477862012007770421838596885256852963842113137672814985299063475791533466491247471088973466872234124873623047209137093213916097364803011374409386469079796767233822155854677877070652223090535705316143197475440026239093737507365715737144146812508576341761295199359381305274040074634407239258652896802309624332154464654146395339504999191707072438168867850587531038440271654976413570899348730010464330731495578641294827783537315500154039941636642643342882274546409617540792319090890734303237241213451758556487888910108811516706020404576977271284702863146541939788157120418282453746494397921788919751174227141343756325422751786531954621505279877128405548449872602015970563980900600755737937914702740533706811917698317530397302306224072892705802892584501558581037217598334300138515404659654381011283264555599881625960538043307953946392191070868178387171082035290614720932690936906106324477012897974160853558299198969824681873876454873894247422603869641921823094984124088664796994377749214294453723930999666148174413557066385751558949701303049421027469912884031078565064878439654614551874900459150227519139496579187502125170696128538388485193346064737744933051663200416766318979023291897503815518582076175576558705478737747315798936659326857672040283527164794015783991849446536350202277032939453813444247841546771001728979937096141993070866860783059848127212126357323472202226469966942751410458937987417322081007223872466802352824374418033295959965789369344649927131125799933610294755213740074880987913714424162310372515621093259348208891223825495555568874488513812768859042352038872666184487685773702720818095243490306911537280378233044102826600968421477613080004587104659490426208094252032958594829537971265699566918690096250022095985307594832469114753012703943806250293930343075193758291222953246115033977888776810308368302830577832181313886276149779854335224912912854855753671991691672361266062598620225165940655381642337087190648265362280048921563345268127170967953036168915753197523919820098643664516056531422543039072274517600899659595764086428456436735008321636797247756134883279194425770992940386703562107366583952534635833098543283180655082916140519952940682204744169248516789912760991049453652258102895947109209850676930925108179693215113477859333304324284414817070395878544513786963094565266709577275478388429799590572753748975005665897123343182798308310200917816331428845154056425927572150865669469376293262122645151478065459172784097655184709134407067905239594530795346576271722138863983961651334636381861000827724340827751634766319726335493693097675515475151273810396923062858852378979216843213002268554566504294808303459046586563873785760624955109982804736826033228314496913221101287323142832343205232698602289834831694173694781976680592041459486863257337654232624610763381951896718725228349673300575405138954612178555595668839270497772533851135957161300345989572000139927083342403125834968395281224897548729511002640079858424695685488588938082924394354414400570205603518342962471654931550108438539766396406484841953512461490163881327593640200332715820085385955951402051667615803087186754079266886769174914086833562088549871213301317986131752795065418866122047136570612530274588433636085712486586843276047206023931799317080667465658032649137123308069275430143349011467459280819364292286463270319606401398640128551273501473452114512360820445769731507808237257306586959412725017883324830995366617965176855606490296788258804289504872392822808441422985960748503443244696633805084710181192658329778222119672280844044774839427713970260978688583389982545265730513925721438077521350829108813593106663467164552791053172019469182124853386175916845069109109789977596046497964514879964159386959894208472222886741094742918725561799756536739247419707484323711565642879305399474764234796093219510426997769612448385178269128810618141936248007188504276471979889014011501786518365433193301872621146354007903187900120294831553482527145810102695422226856635559459246132729754564732020819603010197454173197344240487482352964020126094077329122419182701265219186812737799762284630622295317185853267910695647238742325673545229357527408522757475691122382662909665496485164053435842128155311541663753754973649832220845940269118508874101653348389172563799089814562471995413240154613519986794195538827281470480658702720828016168988021565140245116548136076120606868024639856240862862923265083841841812287054346180435896342766505455932668041062252825206066198922732922807871581834847896707479079791956740372827741371738872303643386749245320028098971690173058258973805157166456621485795732680563810807987383568361781452258324689876402861299095674874522802216795434784975662937005315371621737704551748546556428648668798509112101254843963436818998006402519557648549289322008739187373173971279031431821498066779965559471326138842610008688373742560903721149075143445319924454196899340349703857688243189985654928458464356756561937099119453075852855842596850191834921423795357461697097813055811774686766210594842269666985366421391676135187265528886276827983890783553797553016705123898074699595240319424845760716642916960579875525555878657044419098204017516283513258202841283820095695522121345621284566087585162710209256507277967094502248559240842519413845474568431689452708047618458411287357228920665525483507827952504129699652693904936495420903803756786164471742273515304628768064118313330893774444395278925907691242089287935908784561147941595195857150659907124966118313875197402797082510354313211199362409361397006109421481035262862027287680724739681257548757664965981497934209293306724591548914186187521577639251904460720725933765576847742571694820536729159094521528955321036602369155117950591215611564755425153296209859377157085073260010587156461700882694401434507755069103962389880754698338804821449233133336118303969614351835562077926445124902866249251246536334473638241085819398361222741080193548844326908920656760012539364490016443503175477291572740743985617175958702102498473855052629584329570235719223764428934347775584982892431039028454091672075728372045031643134620837160492837639040527963326445275357035956971739225628588955191055046421370697630368807289862192320849433905426658215779687958010659822708113275281358634790076485613547553924490584367090949039476836493931758786787905990805479337442686520631463198529701408210738017096456676772655352470106360391318431235880987547895413160160662572046683868362705569799156211426447424107305279017018625936880375928481721782350728485808037189320140596377370610712956916487406025815179237333723201820885287897839322148287789383484552595324688034636394600050892226632490105689206640012550623154569265015714818697080082375489086900693184599898384028323259590782357842202351107156860161213801261964359281273115859640362614628166363508198554752733127066298580850213276533312282379662378549980307665700331876770772683851509727691691654313518610934503355003667577900086958519135372715697117468051753741438847069298025691178080023298226581353873628143938473907639481450832100937459955729239062352982671334703092953977540026620182075929504678157900648354630608842139243672875448122311059211486460833338792385600049529869785499708407749827696839443570115981698577963942863184392049878493612795600604683838687890680085258099597006131845355864229021049340178187216666214853478418020171093884796405973192786835831413637629167297970975281907905473286392460100511591099744462071745380366899812771847707476397770548417048035576995536431441096732451102581223700544009405640154031080441936308360316713120186770742189533538679992140518108804031133581671954818693894301144232343925935968774703017699581206375488161580851200672111631757855726761966071961582510177911264973348460226810354325030297792265862078483606973235565949640605177026705690004255196979406207612112340156356081129558964806916627208278433217643975870303075483004379392363873056449242419055975283516553406662914237713743456111096393161531346755888435815138062333198449104528396429375877382257692813275784727277070386367348934096266961390486138282854141920203867368362359563956974436428890311139817702599904865404650900701044550191196682723774278411993321129643786469696486783236129428778540543298753782674101343032376067152724915141453098955677423420665837551724224247815982064788316389765142590540876086563709981830903269045848736742978023858333323252039642599923994846524664142203238238352187089855971305334050652534082330937341082266690438784572594213737784813669309463563340746850909875401197748523790135322735680907671635794377558420760533656722094368337726935002055081971878947789719874635644107160220125078862613989467447535529031380094632553656373882395308021477999412602714633902897226401077612398931519929990806471976477874769882925776382062499791148211610106854508401262612800718085935696621242476993709008369911059936222881531576540230159676206670070594797855667334448492484073908200877147228535062782188271066875925408507982827537127240056186566715287068850324234014978162279334531485111771632981141893189361865346713753534139649718552816748194004280591797408306746768313262071950105248808990555698904107050200867673317986694038476395754893807887687362178163289336691144589369179239751973636809850876967249138555042686291587838018655971144397012170305568850626601905231153361675515017799698663785153013100094560439462716325918658958660706440086905065659532237036651092595526208169908323703225289997772044364813023832524683424462334412280380868763509707722896753643558284939026175999185058472932351288374967328031005137180855293427335868703254519604726538056780347408504929086265062127064852921624254092569494147101937813948779501267527093057606638993314708554776628890724799863400889832205633511108441512283531908174050658078827537405536599446610093698787680024207521014950540086830788290921183144727381680963089521312980705712029069176672342038412471812584374782020629374706689653236316334485543919920550620518702223883322787608095741917551373197075949186162824018966831668185066644609595502301272647498283255517194297777043686276804965379807084892765687811284766068704212891291188409338190332399192367905590626581564364092947387384142291123746743090567390642181054881287318402927357729172196516652353325158784153865445297491094152370920152126873436537495740013518746327249033350202208619324405887950798227793971876855838675935037292143863636735442161046935713088100234896424356267419056659132524372380020032665330631985903761594912147754350831337729062712447115788468596243048962934929048916720844114543132071502242884782978389477697103890230157737605128130883407142663737159873373853557998655994064645316382288269294865967464682870365322258521542600525896766585920384198988309479036902491091634145842958700798186920504720168402092470211990462064259044465909225200261936003735583609981097559879904228576214072766000382446230224670366530989818730314957217752458636577950266755666404865044026063212146421004573161127150473230120773930952018963231315768800393684620830249591754375756049386883067228359780392216143428279294847173414589795032791063646116529178898512031571346383729840239943077445039844564321819824994031552862549130658361025389811965973281828750732793729682744701833518134600005713741729796758626211541981945771784200532653954014905700561989936172230429492599678674570153174766850586779024596699208219808863264490219090190156018174591543551329592469136305160876447467707621275698558883852393743836714941790827988917427132954888063904998396623855879809730834537618497063612782639672950325138541471168419418569348473093167441041191896560034341400422173097803503777696503892493351882299003452942490152313952068373592008032029135364274768654840272407833997310955387842692980939628130961566558707754245826116830893529445811020630189067294755099314236155113478887599491434775012328603955116162515483363233475150721914734714334490675118935405723618441869751977384688176287049319096947895718689969186461470391965312428281635719888008303919462949611773350766588036998905708648704996276209996282855571056613027109582325413213821383825449074804041036679834215076664758263670011997550906468403452937249445025843575895076060223792543132065663926777636397236807906799432208430833308184440987814790845057276746051928299039982777022378208405064610399140692310659153483070357398642416077480902232009641496193202061150757802219101534160077214928322376607689017657504497404271747023436281708260703859653830012634496785288270292699385759697550886809699833049195359705536906404323415227053857829676788024620995095142605526317582919887991339124363588610343604253957931553610829895701778613717684374906308220035533681795736971018458355950340525710381474759088524139072358372586317336056196050135246012442724908428205258457413694168966247228790951756671031642627305015797489062507754130186283138895636972891460128184954547438475097018591177230094934422228676898996711445038701311227380629303599806602523583424752399467090108903457837526249310249312919694371584799127153335428336923509618184804298654773150509669471123794106469793761462850072014647136895219275625095328367280125707980795363305187137172571438060599219993357756186791188055924104660202201479420558967977462884545736450620879512644958989936359669138024993097677644455584086776385389913788640942429013780076117729180249411784836800606566091534400302063758230219925572475952332270687862016341106765784300941221936327343012292142014744452281459810924343978690995622779115844117626366874710001430267406274274190431793298231297729297608147447225972402446093756803981243640940851170583892233918059800924020048909678086957189595732530125690541771173715243176245324829997541112989377553632405919946727001773797601560153955612842612200289907471186619157764169525835788176978362719065894242446003051319295905387110008385682035298153601107536666126332146250457905958522389780347626447321010307143073651467463576673021241849155291991899256320741673304723297797569831292757386695613332525639757634002325725001874566675935375508741752997646180196492560753707768188761298723151392428713274878107652202786444350898360582168436794405820411611268411554783429089992974283850579128566255397446686916378382753028761700417322973123253940891456222596012187519379952765678481216021102384688117344298009979964008638444847838931976414153243121369350446583054311352241921474477699375462203150888506129960087129983793265736622927708706819851836456971160723616559765670797462839122786729408829808033126585452364698441853983410566458266543406739038359866827117734004517646762655011721700167456218226198570381450824741463077410006315199118150886909582233841765723046367201779645307658841822327988173895593544332756513162557054933665737804868332919112791110854425877509485428043816548198622842075170924098631612448918338759412672607731007164490135774598470165313521005054308359738458531057375874891093707943998340510167132794405233034251216704940306902388594340402215616130672307071356985980386604478682957003397324206146215960036852639580931413630557953505844148582516768614004489752117623119829693501777921852614604545392386519395850088453891837250120181326551964694911939454492456384523613671026538336044338154360460639496806468512939193283802514714807523860975359740992117157808757402152800341160842796702531041533770024423611863352854736353996814752962625299405535422720509751118016507362054354439031481797479600296717318797938825971079816024127487590218870432174000585159005229549918084848655837306410613535763279373010323336363522995440655533839242343500925571555938059467729605213540739239061693929576398943704021998527290136080822190054625572434324404123244280700710430319836806398101810264739470205196461352298029133382283077514843343136334006478919543363951123512587460803319749077736188755463931840995706761547715051205368903356304276472311457224433064241299556143164029670540645569898597560418326324714502775176381855928547707839031946779342037755932490908802241620202312037923662948432315850155006113569015241287133863653818868543493393898618174631542522323494882941863509789453338178644425628810993037212370534052539035066896300332828181849673087324646794206278137236261946282732855403700451021079360359213341654475058580373286309531248386474336448941392684643981920158938519610042705631921701823323591358251523366378529162865256211679009655162234553513750253812021015118368060798415537886835665801130941721415840820904412279102799897576010410261375132520766927009233691615991746721815360292147550272980754569521077661160851123496479699805435508521718351199781921619307398327835335062505308035605280255456818881884106131546479237477740633921821285903778038944222191157753167398452469610452583882114489328192626319219142143778729444135965798251391745936835734313406310275448120189886304399509228636597866949686211714496243708095514268608189643639532522102380902376692078874793956020403184161821678629384937464060077497470914537987077727160597107918742678863156257560950637239957509912058375504596930409925346066880724725711720377572630904926479150203553293159204157845985459844034593189470422501294449825860132434753848136815702839129070704891471190303420792876611061085721507603312999281999258692239753129134478376084570873652572032499962534526769090014973355682922101871685119784276207608625067584950585602766939042601384354418691890695175265373941600898194694013103191774681705395404107228336893562998018218684358024357640231918807464927901982773827328608137226925746060305974641918041990065452349293163579088608976578682455035193542654682392405212746958160875890052339212908275260100167328260094829941445611326537539034462680262048052191951686252119881886611883695312820813020481140162331958455297081084787845532418616271310179272234920953711993433439709799599039997291630837559572252011342723643976244850344393403774723675108724147097903135534977411718217881706202952077062681052160615682379399150489943708403923493879497047955876432003648191602197852590510996749661198054511173329562926727865614294207919779847688827983176919311808760096212105559466710205851475185367032704703980286139569998559281021524353405872632607243728068363402931760901253627199374915511000745321274749442934713425181773270767067259671969491305119923863711817717776695444837054775171864906300624921729028122175535289805787533147855689493971318092510611783092133012764304273154427250998570637493078276328072505815464569859923349451375473035571963823518993226946720236900121000020037749787653232683100556290895214258065051110337216792494610373017722938390767788727424501830422897049696029540314174927098634897725161806420287203396577056082154642253060183878191514685791748849129293269005651802874469420058071849586032510839828191516518276945209057025808773410102865548297477870577858983494964739145206904599570967159935990378434447230699076366339398235000954386619553266566508557876215231544479130173892130318150187764289420796996157023267885902247037886214497479642185235676456159806634219744614841752760445168997213876136825817365939399239161176730264139689623442212338298197145748495523432910884414879220987716837888923359098233039651477356876033549240785020300404177764212975254728589725321698952170603475296072799139409238847630906730077624270414962112378271584505235868771807990122887584741705473383429805615472402338786774668472579980060110345836709756526670519931190186360059769936314007292040680274358872685766412675058569073130033516342448303113869440430701398305544380439414412790946286129808337363584257661540081009145383967750052255623285562795747725685433952518571669692833895552972466197578322176629822263520682159397763714280826993128566046838164450545039007365292932182681076660181031754009398898411111971924864861187664883534420926629657833746479123138150946116140095471082775122154259428821227697328305561412919912332708123369040057223883243575461816697614469205217449360291213537523344602078853038698610899159723952585888394431177906254803664702714706783047524015937883477991099168162390808198435760633497245990499967997701313227701901806300961791910570040257597166004478927617345055921832158581303222747556856517713020875126127728622999304982734376414912322609309384442234742271471917112593795335743446294257671679371686735307130092765630894292048753673180534191029174501267339666933821097283079088392962329742778811325783844862544426583475773806556387080418979904935800842161004475279847646580737875838304289420422324169602155542171755228417157553013955255153237653991820408105899247361592798245571976364603290456598058086875486146557746975429636955157338085627460521057483206166793759932258215984416198725357026867860223332813351390641215495959218408391238984219675787658770197939801268988734654369515938173853255417861034745243175046769322333653182790850219590501148669034572171210353623436130236836399334439021971348757383294468644596630327348557115121015445792471789693976603699091836777275452629738562791071472258152330977908159301597668136644323013022777212680025318287319966179492757597508728874969845476451496320270687883110700682860034504462876296977922974397503845834975575076161790592083021204761964907207557821960266356671885150520007177606994353033926947267178396960942399199297935111982040120681544639086286064681380224591807211765430764563708162094440431847938625040958090047902010926066708699644335878346520874965698685423023402105378975370099296081438562797881291577508370841787099075999604219439638908450486614564034474869503301749316907126102396624756044381377697916991214754286742619018813591477627987700483536843378142366510432819508154178351544017045945417278609941179145642880782000178985100480075125432431781337067725049930054829072792385387102446204087322699226388601239144159732402942527517515423591713513936253103186668765309774818820957533191472795854131968806554367776962304246216693877222978024640259216190352986935306585874110241333072525265524216456248231941534372782862107348450333970429477634919944802044166557691136696039455355229279463787554602266989166950756406976526559148731030724893458923869217630332448749477527838187613069022289348377523955961324912086956175854311662364510116235206802367580536844438959456333001309976133881037657229265584034739717902560176462083847025280520344982706008959079738109597142005983940467865750254387991740385456266820555644959673108222856029547148982172565620198611496379835529470963784204944780148778053712108759765472944967003886149656704079574500317165294835291569529031677374153341814737724601500258862939469912306661578401457751288014586728763273232794065414276357800465006193470102338361680674559184048117008146539997047750109233154346650860481896813151273582326937106152931600186105836937007519276982453162175799087540895792947589461533072794613383973211985992220701274599496814217607090897240161604492999190906847150780100193000707098797364233018475525222939492563748466926950929385393274327267515740728869438934405470643555643288891745005696691894395847967588590858774885096871894387551019812470955010721231189005307355272251762940264455847604866951097723730943720788729646768880171393292131022809236433527999136478908417479934769436149445196763606658156418519476537351012254002803369333055181386561339107422505848893355963972120255332003453417635288630898032408974581129537226069492419287498442805620453552557722354983499316525497977655692159531409090973478187761022683849576844861588945642385421817633848698243645136743485345465305166886075763991406386942731424343579203113688123835803646566949418103308575494090158011942436101886673338410645765867733303364575577836971905252950667648497291340751401784382435287568136644625005262623117400090562524139596424352184129280565689008109899131800639493167108124066450552715024171173816075040977513032344871252366922460571566219762843541140473431494872943944419651121847331472988679716052479605426315693362880117312357301558955953156756650717626518847573432228230942221249093885446460735051499085074661260417131978947508823355002708256869142519432991588453887392659003762183972490910816204676711526620508093164183042755493449729281447203100546844392946664219223264839643502339351872378122772697801084346056492675783960058747954938130184474388329035964744407576970890823430605374301139634308896547948554607880845644567064677045932142656456474409196176759144967640769042600377645035808647123435160342156748550145551475554917154186844932173640821355756348626652673364204954244454776992532306269302852506601987461386660450592124172155043080346188483683868135090033833196449865333253878138055140379234160682185824849500488203082014236076552406175951732396995546333815320424354003572475644640060634845011211112668545451352210049194486734917224393621548104795939656914610998420311344897418877587457106363975850114189651280146301922854673990524372200716262235232280205469794627735521998630492874711186404611534874603743642661526605919513583181969922542621828075574134876355889043305904130399601990509743019533660399814087385916878115868508587067557049243609922470493404949197768637297102642556466795782153938019630712647180712696117057961967999120152323084027591911307017981273639804263438101881303035403856579341298579503884627907607996114595747365274454064404919667795549862225442737146438244971931434498650751530651355104528207241731832429999917406295075873344588620340964643586894919414751800758058770396354772476312569027013739770641685306374129381004664213499668988057758339731053491242493941154271990510557573070179994238223261141053689554490737495563382860506219179037205409368396924666389813183630642152393957293575339130138335672238197885438533058240098085596214994879575937276666990818313345745474477661607718984031861965984537870014574533651265826833719244101618760007920251359912860321346578568525879474998382209512685619730031665314455328644917562166435283990929173198440814821378643540851648328541987650842517162412284642120990454377850476271679604264749226058321540900091370582709665320830915113589988279004554917630035421363438468932137426315481041226405150032066830400136338479861764483772623760148311476124105013619148767393135510038968662920977326975516889624542718264570124543047899583025168130910509038418475542369162294529557465835636817325097280773856877090026692711336388971328291928105764561254773761049801570353998733479814436947543746707054613467923316441231851604244734732167947111821032210257303055396936852207344965986988623774281169892641166322585500781782992903309286118879950285008725093335818642475127834130220737632278089126653141870213974183483745711360443935456067614760206761767429081594561715308844626417664158447827604292597411982612472942984193755690583672024637949482970931911598196609732227468593444374456734272511435373233686776211811395074115241559217617463870277617882885210497771173450687496419193511918267438582768706711356325128753999548736135300366267485937062167758303212381498093211760936201615664963337402597961861063191179099311404855187967946341198755469561461912009427374309615212061817321132810215214137172731588728154376697100094918088849680198681715054170362200504726386526532167279877924488921710486870310083719194991005526757765941905831924863396513545881205541146116809430880361704020590643652152536265165181617203109316763900623607063008375305491482114055691852181026972849656406701930030893652221919562466586466301825742078003309142520581234290794735469800754728649300575156899338868573060880263057878713673637329979889326676565069508871803979520913005741485514414529837720705974159796221978023893772036740678115364255898254583184120742476719560751251388886377462440527844615937982783812778750633717339787453962710066319519362970003798611528655196731978453645173783421464772694119391302145612170801783862487332262095177196572723034243573588154903738315960859038270288248234051606912068896782438010955826278427659969602915824804028363674444374629546789246129435982250913602378836546396577334817917319682209022172787290981708460994416483896788959113565393809428365944132994545727697250065800623995236969525908246971745740312346345778558559573146623690211116141340492838828799101537778945381417319189138936295349153456842374537100577995215857716875070393276542854780638951594616341179008966855032133050944614983275196962494662073968251814509960959958325218061030368675350139913178624111172842971714240449984076315090829321270658396521348578732366420395013327015164662778243454824070158038766283119445561642620591270116152778455464496048044223677586176317169570186590773437268364914848622333953087959256975114627033817462261191098700369426714415027318436805638798745390844212898637148442254258408779568583486088846021285751449123271388383841017163224224794654523681826227241076021526696613873888931569512357212157683999117937067450593561636139461836334295895592058984478332621781959715049158798469130489366794711445009795010742013927104372318917124779796288946010159407623633387371769311360879279476131342340918397763610214294043579849512605606223250317332787977273156884361459559769019635493507055733409412449423602823195151644053226053323942184523070582394580192199667117763972251501641740703398961104300979432200543307054125814629105084685316821657213456329278511007973105543577388767644656568415527315103358657539402109370668361717533093822283222876994997813217631808558269067632704147463978491624461115325617999323531263769283442707866805589749694985298911764226073354709756953933374182843435808729168140607741184614609596180681056710709614441577703563605643359165383407125091521761060482779019760863009129837365135154474054703058153433202673554991845874913692450835535031273962549467218557339009784660184174549627797197512266950990067274346752320330696575694405308615955918010062842055876799176268568491697142027726125671213315011970353238176745045714128508478530857553061022899796313502949637510850173616793842112765813358337571360281905989517138774591874614800776117107219051692008017849267229012508166920980645891646294356810358693924609132184409463276121212904327345491527657425136793549926252603423484532540693256559436342738305898335496186736156938528567980283970727230315847513605495081807711682150854950545360629186756287517962934273556927284259466106749106836941890068773948669087520944023705712833330035671540458383371304448993829002838005481130346482009705039659901465285678796778044432270820133140461985784586256575023147719271325341077429051503528327463083548219425670032301917151459371967246246779235999681124265904150644220311083323421627469570925626024142266874790335379620147516952427488883597632502787414296450852192207406944090683037940241052612010817084957386854208473782770351044658744130736735225338772988551099179929442010740883160420914161712560969889961581674018862443195528804008832841322212319682243020610579585849363901323776347927243373099873832342548441467861037133775031921241127125733037541384425193459214232818908600850568757183206446074063631519919885698019205172705864054162973265630916708613091951094884570997530636854653066779127920981430239765571434592425104099309000293092176379076442923540054901641904129271123798860996901753647984706987653110099494144926322090641702644163686015851290811896693326055336539182010964148268825455283876337172077228060994618764764230584264093868169212446521805466725361280796984380275794705443556938566686560189684612435188350631706732397652007657300277729842307464372027586990076701648760021482315564900574351349584911572385222921990805894514884438881722826962037762379475758605320522759933235348960945652966369772875771410828602564545709983846768674787843781226436772165552488508777540476285595468181404323642193847160947589310845804886568732551684893524720867714450055665558690246134645389766401740860758786149458780970859204065535686682037234199583172209796000852742271531893135182571018023904881837267753145832226838470489448371116977832897807670633870695519270578407062901151306942543829093273576973837438315984990432654929483152869313410813477404660539443689890311849837847748584397788793997924122711188426021762450780981386972510568031810535902790609912942670386530315973049157797878615341112960981315590119657929013439999700898803639721483403932826529627195467157384113742809088942899120809128266889327524934575751841050278983098834735029049096925756229212801256502106008318680997913939014073525945475117266417968700569672383387328570868196970596355178671091759687925309806497610593684592405600210881713378487274183446954137726370977092935851710336234246825786681244165072825234659138793357733220885182806706857945028469286332746121567908507486373318659610188881392261594333888204564041354361345366244829496630916282644513318780351255146930921583147805551019988748375123835151475863911034617168400067943051513273458802785510273888185280399713412908315042868251233525656048411680250306285178104081953654779184746487982074433465163429842387950026779214079419583470898600645905637224062391850499807408575834428477020685761607244133404570911116204097846722984534916874937583168873260611800966652224926256816410429883281795142180097494426497528241056758062142588950814210789950466638177916105321485380039696049691473547717817389312148467804505269335230988036056974372847804730233130390620762477268974244650571720704567235284301389439984325866465276046711407821839493309685616899837787437815518282222220217524600849334070451600447533475790494843437255632511901264497894002048429744263254115398157070665859580937851199240056258145298994130251434547840642978394815406589904710131675431405696976360339841377700062222909276054446110579004067546031266671819854379969139846456416795100396420717875922216345853553096187415823471023322329829032282782538188216240006820929090262321811121000623546999740906037837705048557174617213943482216276054070757039073114260434158514416225278040047354663731709631885647451526367797621089230579529879955364268718002896162851425806733335909085825749615053323025211319288439195240937501622023272212544890343451387884194707320438792945011239591445854703650423866400461417198161769255412967181284270541214952100895320746227351083033133033668462488586912495002723304823070217501822738200212409630046828889896629912266305629170833027576101815334242910168284113212211244601143263382532211782532808040017898127968388987220272090469124604731258516231037981554792427071959300848152202243510446616162974600090775899663283507360160910300767629355926422025842679351344020098462776280724965504129271381708852307846794057919172453083052159735218502363635552476610090866951441253875932623528541034599136383087373488006534635492084372738010822306319758357993494445943889749485912055633932136322228411584170772542078555376915423220152502472852858036759977528722216701071922006391004407917120050353684565340319780874646685592859406312180919758705336796423000248349154172942587930854440851920446177773697609214732976079238790864415588593223729188705504355206928523930943164400751458332177583155394306547893870963046998844141993811458568775368217069068640194301135852103556196838755882351992771186248208032505520475224575632182847498524968404270161779886045110257418485642288544487547330559805365835042546395323142807859957202666652116569808016336670987312420577867610260236934996516039734414237419059648603934092940108989457514333064606871917924354241900223816387406511615617786867384395139971391702944490637645270255479121984536592197314916716465589902261780919099960381290280046108997994588284367686391898488015814734512046472639301872846355055919905616959381424869530219314189446156896622969099857511055928064879406551242069131448252192071377215593897036573938677757186886817292362274468729477594487935178841163267263942618135989865818496179683453035788760867938038581949842285090557521894826712741749996854078899109776438215208779977404676609473788001644105595452130176637840442069945163680982219566975979627059799585840385687209745473625039224805223369959330661736490124615671291130999264833211378222345338465943848078585569365801929777665603272490654513102065398615205352467077286165777640718328548153630122125528859577373453262877673242476723862319997344650642568189817246099451427815332264344988090683437519041630375215642777417545685572887320317997991708781989974697653554551373916433150515245449270839686555090069851680687753805562333758085414389511304470188862426767514595793024334432841447492709087943601861868208609899867743849312878226789778693566194084522035970108839309979761697442447259418057717598346936135067057535098512643076382217619614769764397246851665670704541009249208729320862171370594683655406856389453170862691703970459240974961964229496908449401338468360612499925657280530473741880391081457899314920922800397955800057306313239977029778486901390835339831645093742390426621453255259261779632046173084461219062338019869491821771623981045735104212998107535207535900139005749187590989039361666306852914118678267812562887299741201275459933991691295634244001455804044741651038228883821916463419054851053872200062659370139719273473892472397425000132942481053008243735171506262958829723556543130158149773317276071517707860483766281328899017515186954098060262350632413395635776863520066374703625891816629618679002808481055605804844582715379443929377146820079094729346235913244739267691105566045447076058769257989966580314639996615610635230290256918036258677833347245955683423852499869940374546079047680059669055863294623108417599143183736370104280206348590281725600014575390609777541946419901602338172819477164000908042839350868315347819723017842766274368207531803154062438030357052614320472547991812761546857103191940174945202581746147411935378240205851347673612641448533677585484311726299225137759647421823395514111996099488577108612583175643772943759870482346019617146652573847839045337294984980871931026767246059420765123263300620198852104457556484451392460515690761897452795999008273737780602034193243415463836801122675408793657052218476293340401235934749703318567182264273097111687876336844548013895033782582042338681205754828857888847513074708487866078514576733658769388612917788838111694731295448473847820792756986051738771710840318808197744809705145704192897853211018566311685204774852299137742708156584728037655834789413271668582528248365363236795892978430499931910059204269086246729548816489110934850820762484103231817226194718015248262805235920863016317446699451884417353886626714461151042375040907684081554802606314021912449497264627814839216103967881709244807044081805254658479175592181065544482198576254106196423607431904646563781262430236829746037161673481951740536680039912113700628600437956520593002808790122221638501757136049976288710581878727676924769343779003291960003465273040501887641482896542919990903427304568424596160759879987311510677900109461606420697000902974484486777657841366791888651923155473730500768172261276622876865221717989662722772095661430419025028212176964899000956921265544124545425661577293994642292368648389019056538506703753328798117690347905174603184500749872570434980259972080138726717961129507782108702870885909738328594627527425727335262175148870224031127128414045402384997503521776106258935013388549931796115919554308719262363918968822803980670535270745622281979906860784052533502633568019158556442567883943363075776632643126967067277725759315439356767108439829168562547762441593588966178740419409631819942937475689226184457060801272820568783367883601876947344363322151163535460667507725591326679494494523435582098107407954606946263162075867965726276583771688538411332788732879359640528874606579885310232089323427463295548590702911911252554119840303578970885453045249810057414027615039284618361342691934375450207148697899571923877299756355382996418420483552764989233298634873723498636070656012278379941347449808650803715961391662849228068354861268309521340657906590262511952903164558863043610664335599327935796157055644089726733875102799749123377715072308563030508931225820855761849958515734694106228275524787546191068803728580931909349185059219090650367429827368575643764704136047735984965798370319423374718715880813475886188867868884630444077360817752592769295229404556750824279581047808701372742430447123386084192157371742989520914601276731191484747767291679898664575624738784539394088155745726670899725546117960904925705364205706146755958235263640641719060571665356495594898541233483294132899499122030380902025921175303774412216418615802453323453850464781516635184753586902876921922028431837074192240684608559641568788713924930047055830512155732278275638228108622859985081145363998134189310385093582402832056543259951550195323596620783331626184890301500800398990340710588270177755763288605070683594609293285196792755373621206229833431220862650088085297453524010137119932235896705891956677379677787990796222669643208312975000437017813058923363153794953646513378641783429205794873253189196595676174925771341689365257764047216015700793732573363960254183976983211595625625495278366016300286453437593555761233607840571149736591565459151714909827863340475754911630052775611318933015783499097611024338489372715973834768365684514935500759664336910491628895965623208107835002976271941329077824972909458804684376799501945744483729789880416928939500145803267964323112912936841957371699105829172167979774498200654039539813393164961158177654490598814935506897544323184254428862469345409727983709933296673522847594662251831538933176547240216899653450292687986741822341271469178220523828790752357442831981430991577508198240078651590211860147525252698285345663353565187000761439789402223016666960835187366836993572474533105803802001604448382968600837949035290213886818285851267156244696618061269889092712852296208864280049485882955919922847180839128064681860607884506181659991128221572369688941119189593467532866526919131442691110364008417905856381686776251440029589268805130482827002482020312897585127461638397451123036810098455583091880168077492941388321739694650814027967678257524321171395541244821540557741542879752897440964869129697057292409957982482846413267119765107174560615568829531335205139437734092634525109509434872770915374671086281274806385207507607006291670516128971105528599613245097852278940428278153244437249790869107344165842356120136166542075863244496845018589949347003981337466888769147464679822917088303825021242042927467748188742688261590320883365197461481497905061055234298787599976159212524395584172934316209438693666914217488982022771641732069835320751480292639023966439488977671918292109175893176299321326854098306384692168862806343468861979784159837416454117869273949982449740697514062212860169878286174238768091441483257066423361053895025989081490786261200290951053376966610301856683593028500762206273714860726414030128880375157601606040897022549512903313708762370733006268039883059239664361912954372746518492778951632937055552639054178134255944045899969644497227331628339995220508511705479680532813124947002087498793770602092216820553707374585841236447094941474317929530351877724763765596746888931941978248386071634384030203610306866011019063352576321265871509134889401169417606665869524425377206724168396743518606423979269689414756697736719502927315810684924887156691473789565902718965723768259639412464035116517667034579841865394225124056095106069139466715937116292118773900646151156855467169319096376902966924295710417374808661343085029344811634505685693534716978993451685711793086050023070705851110827764166856188543192976530734542355410890953701964599370155145951173635526028231004005526473809930992170963331485821972457801631165950693497735991776516360041323139104465892496399262960436888093760857643537442744351357334281898206855125098276035506479103975466138257907618630004006944865084337131360390598119331729215172062119165096919310005654771681212575925036129490454787094673827517871357749070200262556230260468898116413284388674190588004494011533005218475494653322415911187975633802936416847924929503803447156714814041756574078709298411294830233862352401282679155485006134153088800253007308249133379054880067041863879040676360771242082213854680828715401460678933220816179714270799885479035961184603573854561119877844687268761645072503594651647810418931537836374384365247447202346128117409731042053516166605363691479574292845895057370772104250510422170360659834615769379311799411546540183609576457020579575792087474861071369815980869854786697981429369404880181531568427896726957419707740598129909757698968141977298495590544606923352665643565118041204191379107344756767684032708107934817429328538576523139170821556802176219608612163161888175119034684782020947598204710589274137369569921437781650656072604612915292698794638686893080763476083008490777234585452639994173579522441693555183389369024660451577823285486567586831427406417432755146942357872299355689010698159330118164568018123354610312134140372280709256809828077016952481276849817008061029503199918854246524928834628844642843482848500866380552573720123111862660956347367834546639245380710707879325418487285620934966439261915085266978208891677477756175465025308171029132601885514526016201708477224903680482741349348215836898662621681426988605730454654242966148667717055654773536037024829732437191498998326977271938824041753428656192930761976261866569773692841969820868326493285328331808271315654269602301036679644681935973204716509914390207887699977144315494013875643453531939421151470863157982235259903553196187430353064233256602964331579028436556197637372144198922486514947893015030868665668427345697928007366042061851337590954516838005599598847968380042429111034973007644124010290205607397897888019312276948833056146208645370184695493137517640627167414224081179249569746627476084610394918641236677915482666545269532673937926791411530939265726240421555823716534876598302698482359974462749273696091934874558977616254946669253632395403250207542306639951679626536411121229662720503903587090092058411622253080331179996719020257987389342669108707297691802521808205993369611358258118384886015022622794303780009846082718026444815404599728975748028945252661365142495334489628475485427473203967436056840384613888421483205409992234926885979744850152699849343524077108364005203635730028304132451915065659939997777384483817584062153682465174767174602052797193808115136964098526598614165129596405564953179264008263594065904001214836145487018562336402537231395483087778104493346889712657023150741636722868232712200005768271527456515249063883637320677608730854341075739208214267219623679992714293189346289732687459001781548778081671357306410235038913702376678851947718357637276705580439573655562325651629671600528872753295235267119901345407303707051251958083475421942290903048503022477474879893866288167119502036097923039547391146577350987957697921944537142944295157239452086513866248473912529182766053652262164400307390072771081901632886567785176157087692764804749663060096747359223442169337277091957758790443606314468569747765340122773481312797255389829007749778777471587731562576732888112494161034171495167062767807940381152681415719818379395382551670663468592639088097137455917685840327525039947710268859839570396844714155256148298181339912983644787032061630449214989400101164013487672443962907595926850141417316726155502566860860103341156586094903908004525112648939668439306165268077534370000795508109216470012825009258216535894757373259251733158986568038040033651772608933141652591234117623569757005035675447209925081345067073239364031699897624562926353345463055852368295135941402950820870220468199057120543655150011194873048998518934116551962671903311678195971202541501892508341740351356307212467377878864340359891087968541066445512028281316277810739957333775943605621952595564431324458516037652031911584944674545378708404232079376918461614565097886009598448976649052361972336466336312029143322538896762618383518570030709541002327970879321495698560725424792705875698419583842171920942685857108281534555452704941011184729596097332398008966453619589987669658558788940909525556700980740627434452595012985905165683531019261068675514568471487061986092243052746600011593956579239341767761055586849577634560974338656367778374440286098967649173372937050664468545731647439663594417499448479241964206663791745496549203079820669091725479264907276007319002831965347834265352020777722946116711040180550543157436033229265665858902234872545680018834645271707209073239426834555111879718700843286518886059403670367909417394324463684670725293677376161271300056258601034227978750010939567805827496903218810971418654258250206347278757380341764477095054181173433356812254761448618049996976499114208755129889123709441029178370111621747385104115015197312838631214531967730408197523348303748058999892754024894735934569887874527720152860372124394035641280151355854905592969229646706343321343688168983279715016932022933688281946291238894003805514228906863808429849889335370347366360083986061933515436771993232977062233440129527015341335645528216228588693084036197151129288590297633857895408746387289486564919322232830666248939552101655899979149971804154003443503621336751794192875055952756640046923801628068510719402666941581014497388579148987655840344249308507826315357596714830330500959107477234036935290717790558385734131943268814507573366985694346741068020775523420279314613732589883162149969487100230172773116746668230168511660302376599116245212259478426113973704478577384108820924750888141083254584192076026789380680410961846911994661307231219416343160774980891190267605439864266474900513648586122845750409441457739419882741373840155790652303130164343900483416196271079207712460512127535973858519396526401211207299959870142668441186868721402791441173658969674878980099778359496149403293773457580062198250876634541787155327910998921753730770633488364240526994484307348272363836682638171858833349065635528367235000721295052300574365484612135601765720930410248552897518365868518518521366653347971867840186810954769210495380806576301085166250169619556539291018813181584616363375309127248892394764582536219424192429213099576091013557750726264693206362696785993443118566078940723447789590031358932902751303816151105027846053887172005513254027135042245471044282755034700775495028541504630181899461708265186981522094845468743186979486026990179846103717075978928238316992643148193873017461712183301953099532168443930674649486684536943462423798010728265768395850904215180756063973152536432941478354980612638641948678017189289633272642800050000185277636932322664723841221522961916307360463828654027798669654242442889494710772002325127687668520282582801376566140821075469248980040808617870330110289370202915306990475164322026437876196576066102480873675806831644053957615675034456695353615795067903767630459638299080626784278181886982794008958784466630071530284569016565369809535602467864123761758379805477068562513590961787621950258313376157688623728805852763205477673328829584107821057357950260154172790510891515842213436613438875700769283132326253979018612121748734804976935879537348067621448118174087653565354301713049176058530040750186613315358548100293875150352689913960442249353179230453610321292361161293242510894489740844626778785387392543680878832330161826215986414664345973620010149017146584552283600537080063150408065562321401269377051849125584880640248208298199464477730749556524613815083956162310976998108967883535887928341225761553216468667524645771661037210471552569741837959475283366866261029408620676733487864261478626759559793109764277775856162810885004368725917482066258502032254982298846928921074942474740284634118743555566985317522712143182074312738675405693822790881591663368851245499534160728373449883219228504116355798245236865709767921244894931915232602259258703700342550323383556392798425471029793043572030495811206204661414834800034908531209248221922492594596669596099173417758231335797753690866124308213124202035100838257603909341615875997679854945722974155244952010763964792878223771028338937307724497110561603398843741388358462383833909922437123495708151932295836657255937385274236082238777651387907969846755479660609523654914663325987547401496335520750745012230607084820429842690541503775058497818109131038935246057989428675493272461681681816112384411066084948152692977568933062155884366997679844304194083401980151602561064846504471871496544670264453503785789580035667857083966259471887830909527607713288977081733443625999226028957657726759160686183704752761719709386972604178471240066237239809151498712529929833852690953465726260714417928379693546306040721970189666086504169329032463107925575626461253043994081307273733468758834949433906483578661069222104004263271132514235819165176298681859868521134639589502436677270163277580767937447363976562366057281451302055987967439178771259533648517991301957809061205792186049108763497993837035539869625677389633489228047805014596022286951473782481352076810532596923525165879915991093164304842499654964464734907278555922709043022503305240660851407154145656623597083030941726043088017652741088240984131629446170243850900817656860406166097085326295191546391243945995576952557369823911270561323157081832259076334216246551148565440636973536002005731950181694947172200513720939044268814444834262334315044151654490747450820211894941755170375174599279547912757075991006723155246164989660173718395141943045669212316250525769744974232462922044776833713335341559940047176659687975839772563404796358689813261774818762064559327560541739049041790870661405095464481593639950296455759662624584536731374406118576413086255522032629447954840718160087485229361983748198049835623269288506832539615780448660100558538431653211601990121349451754104459023067147397077697570118605171298747928180819652404051497434484855498420702379092955730644931659512259063852133644619793524207495530246277380754502226802926479529005025477217851356270389642955696111364856830290262642375205403327362585933775806303776932654775217034708588017026571902123115857882273930748864800034729701006755232290410844404720576356292377568331711066857700679963756310886552386787309387515760170426478808146459822069232599522857497309258126113797896046711959382022272230148342036015162870471704283964062337192974742861241272374970679707868898053887778690712978808530361357963077160022296284396923771980675886918533278272628767192612251673152758545319286668011088267641752205389041285970469146857679373815821911386087764930195549123978388552164423744850213790658787003909632883324664140461697145158035586921368809685817340315685512054575599567065030471158339949112999787762512993129814283774334300987043782741710608141497590651865814217047471683676416973995084442705633576762851170923185461729701940870920800846872486931559034505580459227895619813884809669906572055905761805258305570659391341362254312115041543408257243271958186790842149252619438082106970681432042353259485609497438762770331276575476867773529280196658985414642119387350718448484577180799118814935852627046491402167842822234507131247956549732385381197489706301598681916259865800743718422293625557649947632008214213229553699836908703874703932232596615901096222123528399773170124353988842533991692000366080294047565901046945333875618347956306753170726857095610415373023553682182158539494598393092845280807205360777713060277052298598891641206420357150310098647464288186575649041455304657700845127722890946546576358517940725332082282375661299715521240392219096113913453900293335362441386986286565199411538114562812657777401060572407824923909325384486718817584581709066304073780701238316616456018671795819800471078111575022826299925730331511408651559361161311448821866441013628718923650611792448922705088581050379138028079075158809478035103657352065730618288347743876425623843430382023581572712070286327100879769684653524107795567779992708705868190450491116796552215227725129237746980914939442986432035681258920715687167508087823577240290134594713564114198037821799137820568506780135085059158806346913288014369233833485608674019915608413691530658112309911131889252578213429917500749245645216267699708114088639380897892494533400351316243249884271335353692168587944903043553852478509800540635375344548038031973562613632313888386630056643894032915837999434231441870655993248366196572934612523069101357725350702167453364929348029393325736087040487392834763203314385272672667692203278618021134668611395840865011317098644266256970002666399401475207202448974196007921220421767337487572087665749567426949136639709632138876378985602192981974724657924135264328984365017671343120303424513995121844000500548994568297991235337916819083769483208611611642041802019790044042286267881257958734335448464876301841589713282713933634733843848687374993468563660982817478265948436427014429639307102344563853226297797410727961945487717656042239452849968566934780638756087696210241462611826722954600357833039263918597019348654807595460688857200418915689289005229129535617296645646306447707129363558879768350736142203699368171359428244633481425771808988412821528526661438968189096210116257076832623072218732986033896294784787171709259625690451909967587707191543135457631895007594255686194639770705434102920189439287080067900414698282930900101170579917284065077789863442310228238761419342110067045287379064048812154053447473323650219649601269458697333320781790832603505830959303143445958296250950573855409362302717184843096212235742360088498844838182925179789689810250495645232117936465981470022409919070379846430353801454328707703314562473070965477377049331980922019487703230065798451326544845419818462839814012045888559544236689645865863650061908121201043413875023244248320991008362678022076229489511686816618040079589923777569797115179564407283712601948876776988147062885922822594896868886571555782357641103650056260309537487460913033667258136918268509285626645833971747938728406744089915432750568029026540449381979592131161580075738771311876872512696780210332598779124260813575475140581084083923643445220678216502405285155158174791431260223972710352585170163644803121090937781887289717781343614474753055747993667447218792172051559397511469514270329315277560149759987978880581857965633212088164319653799627229084225270921073779064746054274983615558806836499360674608030212091883209652057367271043056246857783763095113052995544244823563291811050909072093456295277782055695482036880958324532609132478008885378031153321653382130386742288673813183806069383531973566066131205507560284133504667070787122951008021136848398309743602574913537936655979057931149098343273805932730162753606275497864075666465917044924101534754537421546672450646880191607584978424473786589332819782129084673660099587946664278415489701632952400687065620319609167644317358736601607523191486219711458553258941529268066815454417080796615527962943641066632225553462227752368271072552264301921105388114684355042515602461645639342668283186642416078388211336188814024024646092406883080769393659091185292737927236121979525593184559400486895314540307450579454606666326572719676080626542467206226542890753880079368579346227081781041474752850910206868249927978625470226873955961173123935598771748832665810297739859107910021032831791191898595745691638041847952301584873327553427896995431627005044921240946494234023696519812547958565154646723874635749888576113039429442937332842153229342120742533960865918717220642742989666480594610180849086533663812064213164507909613802237022373664883098751934174467481883591453862742037072493731555560144249209402662181516669245658502985433265190671554126462520747022227633482635721675700404011367098460214760644280224104297722387133083664491800909771671794256185890878959539647148946699869729764194116030189801802183242360936456491860796938728114054692026020891805807281637228956905056301978222607733813307665165644375391674749740142929329956716244205822011846210401421666976853570249030692986086020379811574370553184246355792328380505279373371028504092347278371740378555458491031839289150806846381269418310851656211438454757304763004940823205349408464100720806614144583355228226922538202137709518325252133353805441641642772907786702977140575485145444870501544900047196845286445548444050454924917423762014680056988935499026791906483390349902548461810036901283753092114715682436452469473629228113001222543264021963915856521517835504244022892830416252134928499668492372259491206622453372387081933894543746784047732325287380181304879516903025989578677983866293869479938169186414624345450559779681053187429254848261165823433664429189936826307998052668539106093984345046309165614960001096357833108693656041161378534243430489233766363063341962709667420372241209058012766010349389244702194021755284035326115693223703267327443889041888538014886829426962044441216621230997977248544491958466659399792018083834917546852115689808540665458115114578356090395876316741903896956491814545280918514375894218643842156534752078823799480664097573877896012043345431575183222841224544868958511061843630469409194935440718284258079747137195429383055116138820256969549305204422156506299384100570495443794719357808744164164506436882564230644547749433540937007971533912241994267518999376109675590239084867206878290067570323564914575679471420117742032400612238255108073489908380578020619495927617362375799117522239110866258315331053493181188755125720220471166705585561407250604052923399814384035059473499561419489246356748227665655358209012026721554565925697982480817936286566996051808678871400924106546743170372077455723880654206606055628298243901418148722087787646620887818737992439934670734506051776341798067556377021720113805433841217303070072378181047603671612067975512354992756349330944869201548422892392352862276049855474216574144912544265672753294070010810107716175701209370228330239401019483113074512561712613574481095241954410320614311361522738363270415845866215647484629744533623554726354675356772518268788222822478878352667419609354350883642791394438955332121838223853854085208210139306784015994559057517513908835785510564574793699225971880134999744728370230619985648058658599113224482541192250511655725400274948229501594162301766366546324915511942794290761653517049006495409649239922217257384600077724216161958946854041917651258279750674527440630345105323177932414031670844656917094426425906121752293313124186034687852792858636809152540863542394795433415671106790262038532437891526453987051987565003846563495625887724821835073267015827742211839297947544505508552457339780463782448601732483693580461781452031552592444816202788552353427486548074926469028906771591535176134674863463334702463996037284306758938902359215944811013660473903782475466485471308035743257764245275517333312791943517614895243875214431912585525685922571260631026767719737974668557731780928845360314567464443568642158290161611342988295835675721901427284039453009633193297103549833502080370121530078771624032889434023987562056004021105329335585375419418351878294708608549714777324976941008387270011152716504708281919747072394123615389724945009062392343644383747855717427900235074074721145870208102192385028408616937293597697933511461395561026988435069688697848792324030444142193248985963992744944414009084042711656455259573453862649550859284249773322319204005406532554401001736885815491462489315201597685400696306446075549442676507412732472995866367076017539086212738711169358705095053137347779723516094402602842965278050748898150255370624396959249605834612584858584490424247083627608897567358608650879175179392686966003108320648261537428028136730527860253775078443877163139483177950686513389209865175308995583225674754813773410376103264732247157781593784242852513773627350351842143930212916852296954320876006075507139760798864690583847471928527367756134936645252681898109554162028027799569059301223061274784085780283125952371549974852455436054974502079026438568511388352834434084707097623218214448825177897481733810798421951742420018137246508617784732020018626455656421104104635093039706485011001027829344195060345456911560604438210059451951146231695257786770268593423610972910722430308063793733668945262002294683856314855691124664438941879421580517407476690177011185273590392180868059818164322017501667497328232287855241546869242694061203037257378075560497145863245537533389598181972278887741576094403058524129305301358344373219345542239316035626329811868145900086099525822973960127232920528566187863842676502700927081994994060464971246565483651341983722303126499033445196093284852333842276984189846966187484963009228741001967086692417537408251917768190970934415071144529710618933997600710112413319933874192259640659024074343473433583790230281304439533862501017844468363839434576452017839385351356622658335688584316688779121897643422816444883486627153562303235161056249026062482544639905107550627006314859132605673816213801162294483492263265118221359905481108695945873477887299867004824778374657500768682256910033067508118986640205136735334735368935868900406564456879388659295461177201687974686864472213796041183418656790121558115263408013645242212109910942670136541848024728616506780565974166513248721065577055533225541873088259161083689538771999119437339680180136143935336112052705926378229256145553469057934310432694456894350866464125700677294924083781323213558653090529494093993160546286518715215312164582096010929891063872833929633818279566624224276957317332181650927806276490149716002534590831282798570910658207900629380741963627004291221718381354536954201595245686797956916186269400395096148665085027697699915108361965750524931358990113317758728978582071671580252458194395985316392646508516142021343350630347306212760108712848519460040654174925195114555558910132035090784207593619860272206092039876055010896611162630341433209774419383158679699493037885592192356763036544440548897102142301507525656689878970713658556102762371655724109968089623283677549252602835427719486289772707452149388898786473641834142539346124877331836485080127814966427306995164908985213297517051161996230311697054190265422174679047791203904022202701948431885354391909993492430291967031012794096609516782266528281857785262350411525799482571530690605648880073633938332483732460841384194517500344449645887269151538778468439541323528995910751659303537928832422426313260104599111627752667331157777761668214779408695796118149997772870728100101743198799882576891566288306081213359889433723457768493261121127261317769913445207573044334232016452035516941476821843453802743491018340628215167806580278395250900469452666956332481418576821069254439493417650025620844544874448364102617113917812670581907401676411170278309559709737145498533508255165760012703964879442117937597625133714606545941143632661702779489270323390615276098712918444378235874956605312628460197282934359759944128666555706380881041607160841844679814951518747655714317489744466658277556519372939095827934950694204031913523304233485101762602920391738860439477177348677500682783709977401766705999850484482693191413500096501008530876675307307427424306850372636548114938908523709146771981307548094862397058302014614671160969987429496015859895794727668709644112663055437060732946531182233882448912303763760684441939345352772538652356555459675825853129281987978815031843127649931164161355353097735509986079354624745775256729258141207227442158559452148044268491880650708073729068792925230169377298841008483917937164388269620989740362459182214818469439839108478817633876220163965623695650033157561541045590594672107433999732231540332656803293612596125942439546806250893976646678198793608876389286382383157944152614388181289503783684159334108560789758831478639042986245063683003732641249978454948555414765762130299882285984403553888196118721988539505704751530272476816110166805510369704450805768493888761141066569469961847030084565239728749082923463761633430118075686037361364220902428498859031730413415190288060035685399459844843133133998633850890227215705040333549449816586535600137279238490164808348193611343740610978418907090287035490780162981497448919813063603418119577576747893885151381928004809879639540466634298867215692683316792019443951690017662510394017061761237320904503222520035705234832220373903894090406801537479274867752859125862430757462447772960741065850521883080992078176920699615446237211183990571484470664323975737666943946182958016026428068611220467884059571362520917765085113182978834880492543183156764933740101663831836507439386704259821799056652024043987887873716010767299553240394363120700483018441748655210698701970878355210784071816430634422951273500457994908853780346689580340340352430337562462818437744486797575674473290176350855133457229611776955147621939202328471920862873104970058726515676375900929048117148336629735143544287848424220031300964387729142130264587097627662535295077364487912227046008269278328646574697852120631788728863719685860895055536943127367888424489054778030011395226860755184449288224337502750364465096046113240000151307032587341977572961393854020402064751053684346740564063604281612281309672153510783817766663233241900896667220083371971660581534096848680877435614361440651572955327069436975165338811976623664323554967624444114582613629254524497505167839151894305516716654635144588381050454416565170746179900375462066803489723261856064970329850030890719235253178691801370159923784655467575668071806023310772769872421205240674843750842127242807275871264912431672485372852031785907492763673642016272332260092657857405292885977646339085549018573675137125231735532819895457358785491185478884884761151784610394748020965518574723536199303180019495898675144130827701749699888369260891953113817581483094148758374962736020963275413621761997770424778258848345535768971258590383740339917467104469597580604822808479727645498846628671307340082488362054746793345283149500925956164590791443603874901827946138014561055301257903853456537363157328695735259765166329134745122434705768923015033147160115194481962421957230021698694557866155429832975027151838180462313625375120691663612150517880738285183386533272487238044439371591208060208588306695150579965149508667608091391937187249157556358145817481882906564303071771155919432978290385029670728123167767559076981542206086006101284853513763800835147434616223670769494850290736691880778453742365370799435562928865825918137561177252537086464196168877513744513101251405092539146806395281406078088609231422065634583902757741192707769707767051569745183705876383390143354418542052324678110528696243490540554640108021766509680643123063719791296375242201876765264137617909994948826663177324507940113938790227021676101362903297192214481884536151026499383898282772396208383387404252754914834897452352581899976142519604365281594189833111621725196105434757608517703088009792562480107008957583457879583374845472656001717195527492043866331926218461874540663970094398562792206908052556759831391456886305680335322210128257212881964584412836429917145561226045239030176482646650091088953890276874148418634181844204832950727646874081404730254791519689797583284989070350150778768399047397696630337226672411857867997927405416587899964278122857804121617225279866359160754204743496918823009141516884606722917902832949283034975542051372649021766300549254988736546396739301057819268889851586048091315769243353571776629542472637798538056327614713296837831709773449591043520418315553964302184564182352488720156387590137032606392441467415323638349136684786939799432677496350925900265936289090750001993858418740327970605608645728551199368562906607518990455471030736398061411989265435124814362001028351353620293099779294535730788782891405767626808693857208048697525979647834775391125173341699876534226734922337503107267561160157768882796950608425016356541546892909565877345797345095727211872433409776569434048820364463298991053153230357128135254203638139040317211496735804442351344847268724148063059944051284013108275372997907244727769890139335525092795472383863566880805342129353812317465043574344621980469446810267487408013404056168949274636661108438139026726458334600654959947701937572185032314027401888921275340980993371986771693109715282071760062172391759322678707596097662913262279390494409115992260955171753914456557757338448231900904607902099674055543297192695973851940846285238175665545487684241517136996964030564590163082393371798636351825153078886019914845199236050687782342653718793942878775349759795511690637069461884580397901211869982108444949966129007943520374121587935855588595101618036152927656491384766428476861081411661189987719222585870107943704057497916751195926879454761426629843039354708237324199167359763433829902799625441937350620136980683542459740781478692975315523974833890866114042036300770816393922999776840607556552411432893174647277315180896635299854639430030192383159731284386819054646315864520008324877578494414796127539046696503888150179017771747013985796603161635037958371104174995001795385273621803800518373344648684548481904145930228130210294780678233402547678234163297386424098401031929293917362456047532172080403686142073398774860188508211011122983847961326012118951437944898470197587983687831913045401122654071611788919819439943137448910192222203166758800438245191719755659892991703766508438035191022353477171044448258025654744115779461743871571825451836805006019706835958536313866304364398708209058254745386849356769279175415778728173370743878582889289056831717795885766562062164200714622308867497087172955517826518727977601089478275473565855290666063622603120911779121990329483684203315004161520000181115541019125760094289622271811964578895512116333500774294831025709922026092259596079787543145524686975896130625819782042723980216990273688330466025003005993745882120706894449238422529884877084378426063852866005748290340033677059837542738270645602937702249758582322718997629523399108892403953371028264779574973118918268783816168633647308026683825118286224668049657789408462260656014460295983503914372371530493964552233431060450803295162633353746418408950757447601293616215777721960368813846372858064356246200929179859630854666370046753288357328235512399649691286333561659374058210496127843491118477041440940722254062936075452164428407773156476046816060727075628135251655455979178931560463507766507751832254718165521896075066271212491330068203438798127359730089981318741036697281138102243105485254709978626651550286415818115388577004127144223682575450421522706412669830887079288040946542011683365146300029470901498010962239592824774234878100366571581417217424394926073565501720433482372871085619437375225759391061373724754849946956638119823685278421267625230634214000875976106682714573395805741927476149160477530994729070997484329257318568271374577642523119187740644052942320182527306884781851927142664373909266667388667227593862258428598688127577406321000400898364012375068735583471759534808742292743439709651073338800562577649819089198024418506662438338415956871001740539293500230474221398462269010000576569962393065544743433088111305692889321749878313468744223554572925425244707776042425417566285111826345836786226686616963022431770501322972214702917358193444818832171098725856961410795394980578845241585734048981401313504376051069628722141302717466458714770943771622208620617761931277293645447585822476444152902962539305807312717678867525409867091393733323599702748002774879630880304163099621600688100443794771617920886321029739854372470317745035770457537052357226270432149025659378753328056857481274499469450388022699488994728397852317962388351714187147186202034000615029829090973981382867260167316750823164401761322738346291690714784644125266313646296505822014756367726593675345338182718000635088822279746240354878857579796421177317762380333473355604504810815589330337033648495100985931638093239668428079473994013167181714776836221465264334433911217597096296637988347728914316137545752113089035762907233703945454965970790784517606757021747415509151927987023901224783220473985556558772446263047755988924403899743561289778983453909141912016577326281150730722971632085824263218287474128992297188672423837775914017312740032826599392818711284272309352283078168073933516114260057816406580318608919145263775126012115437953931738473965173264925398401440165945315204508516139204273419112606225756169755490472828795529674063225672874451601441397284017469343544228497155596957920856412529147839525721284535041079354436292705559463115959732005552003567138271347976212547933060567149480512922367632572890289995240879869249477379942198162556658520511516200554579526923672483112080537870525866847241538453464353361550398594518719149003927458912227597619620948531795188872709030872735218971206920994862222989330368907308000461652519706169171809543249144176116143675189020682574129292184335486585321811823344374381229209558826999650386639979784440036658449793973941907086465643835445092075780485966231074311008202364423506527246565253623680569439337790301045123576318017467357061018446871356052341627958317769694876333493520297752576028865954393721361647398226955881550128293800408697458192568359271782697934032758247467410664172959206526066367028501502701766932063611731340946346193065427453026901171931763432082402811219851270588580166579514586976296763630814511388992623864993522699431097216110751487363434609281569951198389163047339330017766576556859174078859091479987834810430235952074235851440145686814704336680361132261985023855512714969714505870488061799995402337438033156935986902595370386660160785039091969582168544008039777061200687358875102682282040215231867511669267829681661245610009027388503999066698247020420360601663801285918850270423389114590024042406382755168763363866157916118446524244969443468328976232814794916704405382269383841226615309389638094670725248377929359080981060233886351087741609717328477295179465722999739818810102092555754600756815930132790499945810776887399792207362969408821151098233360881856048995107093105609417506779648254739789737079606200083407112745445482750716175631530412867533949390791386898252941290897996522689897757986097022536146413069074250497424386827907182182956260022743597520993116049198603364348301597058996972111724331879003411470485264366023337264765348095400521649038604482561184585529583357251651680461527927585667497900885301445445378623538660345175540540560688065380471810834246958065598637016608094355571813114520193891215951423856465586942045108321529901870126275674865727921283526414708496953677852948582564369544917466487652767838908864811884536889111639861003200063151572080689625640818112452602563709554641183208854409597799850405025419098409608449155266449715997208756050415860381292430361468403084670424528250388976762008987050364567816309837245037538026713546898027650364782197573972797402832702033611460001933806734612067321949336956814245709043242223024674823673605191583797516892079604895210660581975591758526317225675555899725155239700815898172171577902181763493380421229744182166079567606427255039207525375470525772608722452095092807485010161839699639127831368248809807238547757112743710201390124397704042933579444819217648128378427446794545478176149387819206113571959489942473263233100330303030057260764380075024109327303231882598755188725652599387357157837550555738039719209032829377753630784274462150778827741884210314960343660282164611407677359152991229143733914187489875614535230225280351337237545921831433738110905626348505132729028946498514933744989384477009733570572173025736649511643571529892816114880310590132601755602911638253062122165342041644047312301960345806671906589436982055573899469908450399886079618504708258863706848796474097652147923833426341141467082867142937628388187085982853433076614536428211820260488182978377497822021005211568522559000656554154171631676481492316043469794096164329904283144107139293952822198695566467883934726914741989879631502585742607318807354305793466640114964923129486164076174401039299759856412793117812989516333643589988326956567433795122315626332253592401743417420635880709406880091052442592150060045857340393465529357684295254604025063288833119877332174357197535034403827269984978440569164623911061198557917984441884771531909436548817263642239953599438142385322951086543963381348271328785518100900173265089731972261339022473021423365699027179313456261011067663217506354458593932132148036638734945148760825185519461160415011489677463583589516340568497048063135906724964334063788179591260093473216168054803235813432966221827180107418028426225835825297593216946016260083628631826811569038837929957013265018777740237590159591152976805776857015495363458864199945545555451289429860178154666504613723935024891507136244629778842338659368808837167687452793590828672234289811528244200157899429170196656930514673808171394304689572336066366914686655043847582845759888384224420702116934867190598509847327076556917276006625920405000053421812449560531551370918561156436358020042750863358434068579290342417497212736447347245596826382201149441897896643519505603247814745155058815500607517074859395522031080061075788765048575540597451330529233271701917813190927923836561732388973329503673728105000080148789143775716503889890970466034910023617866806615885884822745688095772426529096238973462752066770246601695246149741764777792083817121231890824597810457732159567296208414743162626992575401260109016453020142033434491182222243553098369726046979382719273452988000143812070924174646237480173759119972361651710047183210976320404104859494829319664813347691042747371900341164553194085551030191601211441412187664954646167453918055594403595779223745385757870743338270030913941205119523650137298647629000098580584571029230926554435064142654508930973574086847993101129392368014182184541913127406391662715377229615867927348501345381161853885766979794836260185686682086260859387421522390893618500827661353713867591746168413473470310202737678803454400895596571856461252155152900629333528904021599209387599144587993674311866948081341997177427827153507178734053752660583509691895278214782475644129781758833615211914662286448542475400719941009710616071109011456155902758311832801824284820107789138152377816788282546150638633203697471782949784958167669540622931798516093836176923621967909310590532074677982256488364804468144668852610484080222653496918672593991019799574749092409957820818547341657305220392302115815409391337875012187314558698344474062532358376772204262764854685767565704979337102601612146752888979571477992059869092359782560025246975311392343098490342453837059120598522025340179140223111635323006474427766005508958715260209888471928377438808289849702646433660418454989661199106435512418894680468070188444752129737116120411225734846390275850976924269220998545045142357268682767623629541548711472901810976025219163025873073300507282574396093660416919739789304619667020192288761458200294694088853144912237317867473606300995329179533571764282825533739051034822265454588255721987231716457271085184319148478954443788710139565918650070699934458838373048682895720652241181731200890450295513522246352936353496844780825857791275890431687597438085642602090022031056430241186291735855673557155841121731936444924851623939895026147949755596126115115307334199395276173009868720708234764468865200040865120542871655259093784430552577865568178416682547847631877062677540056275503996870558397796997180009154536632608741819471055310946646883728617962384644903074842182278437002096141399723293567371791716242877109654738777762299228327621179712158019812560916996315826924263655406350095910005019717935776559116729864200155749158412133932071997136562279162740424900815912948424683610470450467165160029132771992421359595492535323005506934697605862156108262169016457328054401072662609432193130289843249343797384104596396930037108820870845621545090557892995946180131411315623875670667730046074593568356102028664293443777237706864654167185173556318077328743072169568164514528084138220042908965282272319583511407973052440791412261193678008612861093005746167621557526595898248956167857531528749935221684920569297927813738082899969907538157361705774266309320604374108341191135519570055500371460635382786383604546572083261532960240603324118899578416486759976911660997892350051885415360242543543812025349581177656823900626813687885569627054296969474323446876946358921235936658585721882212693397553071981368772321613497578078503247417580495342801592365943340354827733540100724940081618698289198499069047682865756802031876272281015203891471451806170852642071561916426676095126702358362112957622758929072817904903905267103173422345391334622818307621961442068631747133592313735429085760576410423401666003916582028213835728248983294631820041224150125687788960727032187871081234201860133453397941862120715788665225387439668982282593885825041223624243219284640958413629149093051943691325374621974460231564591224147280215733032584401190405878714282905086921147499646234094764343187744408853079209128638812463406146947011744251047356598468967426620533413016695632541919652634459918363951862784723929863331970495716668411527722338431457426900682703629554060503967765615796694272549003049557044404263334501978243399016016086399073639200681963250567528017956331744019344243742504799028121037350998510492083613089561327574771039577032494635952455647006236191050902500986650535963654935629444152142570722719654541473579708517157092852847040790915343626507112135622914367090821788530032846374801735096920471880312753622961912712065871542919531587682268884751118448741650592879015813635721991210324596980487735333191317133071329333347794286043056826078289108575969591662819860140487856492452679019272321977495380991774410273826926258434722287997356768574796183424964802791387562343609569461543767228013127832108058558828052267141548873299259157559703009430986081592953766132130605837865834888215245425969068069095553338330085776788741648176478655206501633192243144234004737142217539503972658455437983573955884078358798033031568332184587144925053682837085658403481219683233590655087667046923913825777401268689712953443137433450025241772095745582159426333745962191809791385861299599966877452937132184209060326746499762795049653613701874381815983136660356140291323626823192313413084594414013940842921909576228756915397686952341633436464973312699301745171524759312577907692455352984524149003973166519251651917423696246741830679697671410711929447943405115480052305004355375990896705799779594598303539512645669743880156755096784201402746720374269429198284405970216624311920718587817017421643637762343650457916729919261607711998814216443303464536307529567685547465801730663019511180740988817788142099311283577724141828259992843792664447210478945963886279212079743601375728322116596684477322819712228150892290224923089828239755625527680812079846298967781361607860271409874440444162085641737740501401439488651842630227075861360069978514439603484128683527113476240598723863532000215384603760601238927374926881952278728243584556018125473016910254776955888102355630450468454292395772041557781493755859774004265575087413766368933379498084461398622456415578976181015797265308851488526823605086869136397995724877879460737404110656140876289594085895997910142268058722305804925442480727887543581621483288613353683230731919192942675612161135995056283872329497152835418939926875971890339912066672341750630209218499437996411463940290361243619863971182702737753277323309050116719625566890202313581175544804649173196442860957314281298875384950418201052797193489877205685495949014153023644442719662605905026471682305840539810030188812078998397114596511958798608284455456021905752150796447277613419318253483809729269807723461500040710144737243177979968759184882884044383536364979010984162530067023878341674961868092768173227387427449267180556217253055279860752355065848249545871496986909245889991292520696630232504326119343800568534850479426683949546800293790129575877179186909463932328381018076303904390984609395494755174726105527736891493615543676915174039224529547871155011417280304891075458120400368988296692395607028969261972501545753675184290584680292315475004886742326129063035717289110902931319993202041596451647325054767316049040523172606674642544656977920624722572420819475510919841735750980030817475700460305641680572495455089846793131928249717129511125498678354263507285797671029414213711989909896137087344337914355416323903902641285947320449130313691009782396515695881682464066115128525544056557575753986752524164399685455252680468750103440099970678727274906204783810655409798201823872327585289573219143411000996498008297595666136745546149894579451059547753121516129274518551274550842178412631043258679916472301079798425831110002085527007991778876298475844072796190969014387144269248749827953343700189638189761130176442855780828476061007703049504416018768452829586564498743988829422489805191762550187209150525637522871893904886417052849620479283642673454994106918710790145828574663730034043274465609551019234694706103402958976396935643901126527239013456450968430576466781609330656777085918393886090047601930601468378557324123464827897442611906276516322447521403489452279855822016629969056874880404205324438776246339373111152648407257238433952126143793321007841215396289935668260402381235230318909908193463065621018561451592948123614655392077906488579291247964362455176675862502964574782501812145781284133336555834649477496751447336753478306910575856013529424250182811496874117112533578447768985393501592662824158039206947466627505744822351254169233453409096395212137151469165008229678010539401925271416296895355052882870088289650587199948858473148189406857062894485261916901097494956688584928837702506913967341882279376971227709646008752470938659350814408940430191551560659489305080556886161389183141965843099848635167582839563869128765739871480914124205328414245523601419924918663677706660265037336907721793993916069771617235384046694061310820529513711758703341162364366909660547362666521017570138314265972166533971080972145320888781257860188690341646059605971649562359711162539125937786466723987254901457950243396620921422463412839818005269245096788018372286725148238132790553074441972806705046881731646668427356702320531577920546116981192297367684135866573208011762763903991593819919146829575512466021886478432688337132173174287811045220482562381064859320815680214999667608452612801463936373920186323158780974332734607842044314366472470311433063860829394017501278186549046404264355182025103469363874824877549015055552650309171168324572230311655622223301387396348056145840934013678371029449387572447148863846435290021703208524696877328064437032150750070896799757493086083875450765697908596771782995323447775021913247343719771007351204865572395160968044165177151869044902205254533013633890284995750521889153036732301503252039417829609018848554958418903864998329908318442793071677807851750435808952283247930218923861396475174510707541094602372078765062517083734969373838118567518609014956644745279607151036675713786000017894500621841360908035852997301429327914058167870432219889796901900564170366043906672944722559836689611800744619279806625301692799574700321407060063887778287454474600643767177514253361713998009645406641845694330389945752230310738328533848631685258908557008291710026072488775577236417347423997690059296009531047321435724528336738498807136621220232921595945870892963546506059112766560063380697072407420006911294358854669466497433699456442393606155532473980895459466772300883804607866453823651903687660989038015443780881570405995485825121031307755993961206874319362479098754426464066932407014212780311638410502639184958142237814138246771293648637165571366093864288015959586963216443756330838594423560503644589345789102633665147171108486190263487455648874965727050606877801022810158806273854882773245018163315703009360673066652980412328068706856526429739754778379344435038999331347277994593007451409507421424641779570440503992266836307986850475678832487260461097127725516766272987643385580803815396801149067903265132243758503191502209681052577469650449593227223745290362249979744549797682282550173078106481999449078099836299211488819544531564074407348041800574100353586643321354160093314363047666645359435977642869409303693375278065471394449003794950636944607500745462077683822877052354660647824909396866914938846086270760779090615692873507997467660470511494667191807592838997781760311179808712843704171150635281698476693602927430598442234236437415294133197199582571214246329956008144393991937406426756307575288654824271955678474843943935094598219105775519691101125512842730216419936523347818595646028887771941413187260145774978890155591746342938170078654138324141965726674589253236887072764857702247615966475375721593262494274300560915054124116402302276317910738557059069312615034809340772901305412876399114493934329587037822043671097037094499228514797380545214511503954211905484248330589229987851833404768727809435764293001641233869802808196516983473818216257114219717643136929208439752535756156804339400383842922166148964786576023274357459370475701933345329053934140746105458371272423752943658044163398977163117616486649905543646066588915697057444677661799465223746968492361177824118161786396065016593691622999416151491050768813124277239406108648703578719681665920362890027447648901344491064729196474989473229215336065827614900319901019355344407937874380605236530472014656647819637783557951456826072148371903175777252549219210699673173742778906798230838694375570431362562879422214590641485856404492378759092823283041192752606850403113679876334646481085760116740306234997484248518838944752020924139225304569571842199442202532062224976179354826624059875594689302660383511264467298284669545792562578242216062181744163204555278667696149763456996614570966807854795144105465295872773682333922419814545806673468039271427558405270596335625082722953505560949123209215107741722469063858409451978684684173578617049242934483355807673673235181251898577042798588119911166581293910856842033507190930445448340261922626782698445274335370153251026846163670379585296448463135794889013366312071666218506871360043032489148687645310513135668354782695886820621715589026735449314761150851786343286980526826606085233038511264227025677022414525334049687186270468927460864922460317333845123663376349521037872169548859301451533576885214535706049513265741548012136768670025000989234259418323539797676001850363581450801879431773463187880896251867991693488487036040595332321067441000296512634806013356357552925255723148250197528343507229826777327922432997193907272808644765193401911076920105285254343224704863130310597577124598581517318396749761961140470123249632957331402222557931780875628124508922172082944675301133243175815331862909354320080559021889551602048336423114085444159572311695211347476093640060322320503523869126900987876740130571251687905276341491689126775870821962789031667051468760076981876282175709998848248331716862621907353672263449726300222056451063412016801577440604749079458130953929424289294676855377244642234823777187257224330648297782365034613810087605182326916699778584631957932383985384029972880326479147762026616387239127361563598482490433216337895429125817642706598205381598067694009157386271874068876179641034085309009383129166027548094867675503852111494329939864381542784281461125948145406565652059972392302479308909438446845053270665381240457441483385367178082250341028568091848025712528838410567612869176437523351392029409183345490897173326609774305325616473226130908563585950472421967879040535634718100744085390665456859913376380513260621345692372227996931866921938764516153288894786082406340772450704171571760324085302812316918028879585954852591771544809194495821486646444415524276042246324225491281803161547144523846506504574302151145588319036865199825379054634396987815432231604908804952440117011796918875045204704196783880785365033254233290531932737941904553312091348045450140283992006442488332974185598099080732424014109441803888829168272497300220772076963675898215810733394429608812856260499491145766508753323240496210892524418872832256122144384369526871163538998925085790528418703218829092812592044441276542165910255406697045639530810591550364970569993929097548081623667487218366922655004131437277575696888604043610885205979735613325507198548026269262417730130562002903288336815529176447885295626067862774840883514140994037579632514833931524946960012941526937891769836568542125819482350988910576520053793856729170579948476757564239246829806805010660529755671266368927723706171049069240384794743705941524332843750491585710735837441178157005520154905034800471784607513072446756466030575493102031523325008574452554051511482214714452759450223344573705364941171611950641815124202622744664353240819640780915237325406766135940995621894730440179625795071504242296348926105707652967078541445168126236358105627350411836426848895799013313720826773694898040852080134032633334097486620335432680317913050065990216754509942204897477205727603920828940035844266676526111682737607309365106075934074274078472042726021555448522554734428782000474128058968576678919835589645202743108253006053938576278382306494450890560917756959975373123954154691752281122009042250827332288128932079496768336886953454909169855394555693523410764116567765400015430100289967659044501635460165314787937380915716114513555487707683351655798617277606909190180030091471636658917955367800577737345774724294924426781554553484925487801806395711721112335234287559481332838867546938339830477274953223504759994991284093665015339366481087282289706621226768905379937023146175217851337492916713816841757308128563170750303068135191815020382325282395613440122215251701182600876381560454200238056253646044030197185899175561608763830764448418265077078979955494821670562780206535957806367677732082899839640783457898942816111142081316926537551218780141684325280854384524132640230763024086691974353022425020833794493955245959033663622380488520528365712018095794475628274538109915865266819851865264497586222044371463606848653371230715894928516870899378472901533626158411555804851802290231555791977574742918358116797235160840054946725545448207422988085743466002563228350155300060913148706210361647634330850474288794059065014678695563287288723216394023949526508664692006531610270459564513593853331258990362270893815283203574656829389045079230334109494879103361417760527112174127026595530798535805028027087282740270727313071689997495762633217179447384948901339002419392740398332328202388375508272541105985785783031006478425318315990473387828807494458430935927638224754661018046162319591742567161536057016442733563879890328727305112496512976561394973248794446577788035851159231758453563137192323402343733003602257629092257416735314516760380605379522472704385263205431844173313211506751397035210332060657146612240211745007082256832690758500918132193516265100841213776679022907470536571175744878827640957805923884432723172631902068779315867737107826577743438414145479549532334241371355956560026766184627000446250561014156331643325006605221313146778851208893139869556350677728646138507332658295684913773022466389090713238243969149303703922351532029130211618926815980054315426281986488273424772773804335754767937190301769043318955960467790755995921675544927057388824727993393596222057978852229260644470243540049476965645346686318126623466317891066167484617430235152986462831735155939659498255557681425119987244716386457708744797291114970459186009928236453695787900182826020915585923476637459471118443439123199728694521224224230074380055446372210365240016445738983661302790581685325623772457888738625170301730807389763211206814564765423401003367920122574576368198011127264707975054429348242883415144007295097357457354653791930647735892294972969922283547557624293705248555657281279336366623278126191491023681286100162350933165174692821448103265173630431264216710522178396493743520071260011966281331938367688727571565866492245422387547956034622297784406631255347133169880609650736863655336591579940117163643173123285633973245877575801485454103567382529447124861781979411991134288689630589540761138126865790953948857499362875891890016873651904717914628588280098980297810894275192125605427177743903751658682371567894041890624744405638259655961407831071321836258088419384496461828111154778045078563491668793475226964398039981166613399049056022701602956424164382845412637539834851885713058103162595886584465971407570824834802289834695584436790602317843447569571440945827005033368315971662401627489707989078714744042066799251442193292497538104885615486520442103026155027013972911370717401500059720811491589425928487597409332529773296193070572263242412115573114283489547011777863586323188774736223402720252586763236692885221225246547707759539353358526022065832274326830109969684979605592770501769890091486594097725689118051485878979373924218778294055250096948829621871563608410827425914207378000023572808370142274781389132205147337482058405193463821729573923622614384020140853725998969886269352312158666822219411887715153151925866135235116271362569569360083947944422479780638394990123301274472986630454110458581194957428216913470469731247927921809591847631237018908863475446014613244050180499686633236963368041492582888008285423113914354140106913961094780362857441205339353625743742848384698844001059226946468726640488158660393967159233147393692431575357176240366109029573643992301722412596452951869148985043450517186693664907017744461824325431199354659575997181832599820563288652188861843231475328937691509388293409380936379422562487282733484354922210372132384258732274256780355170361107369400158718935860973514700883791870992880873834853732311193323534764934065248507870589251540298487155070760051696610420721989491464885913291688430100754717278760727893720068453652226762809258094252312519681471355763206762006892924125015883541934236807586128687969051201017492991541070088325848362038884846554878117548632302795309409707456235781029151924866902045490328823281563443561318381782310898855615572453455449150717603315065648943541327098667364309467335886238295696919929698067620043650453929836990334475101136951826927786203303367302892157414112510304373016205125251950179133551615653717664826513382042408614553109251141587017508738372303419209248246083159646083078781844774354868228465622252374773967955988520415497733293883380036638240208735351968794034900439584428697457435940204762286122464670414651342981684379500666537841480805301752683079009467971180194492190682468199422149289705945614168384785110593190236446910443397844866779550480083343841200355865838075185564917844579773894548857590817704438898112136167795431120946984780071379510030678663535630333582989029590044514488725064839282950395412618741288564262179428926117495208330437239145787047675886525297831798287070614648772224738007737069135715933745955791073373743317533112388011471328010992279638860295615279967629470546392504207336620811634642593386231016171273097878576024142051431172941358590056950012588143715580813317114029882408402310667124116912868544217209648404705121473145927582820376172195202246118445388598615804290064099499478679707197656062862526453415986096927430550008584343178348355992842768115026276945302025393881431369100236378976241486185751048918998376684048685017793785715251871401034517384913008061955211765565844065898128131596772127128372844399796405278135817582845769119158056362066962161082309761325940519048267392946002566100227807000297158235351525626317272744807713091917335764223431734537359117459890104721676023626642735469520546989136494886503540992781867872976558539822611271631931932870371722630595940760673839245477219632685591024440179652743440607496028100070661786820346472274942180229290359810628022991859086804354100947996662859268126388786636679070166741698611209344231885164095972394236601448046689738735412200405493583154589891347588674620675516068288167488204381552810045742794698569005378407807728702093318825425488408737926100479456595511303131682089178141777330008896558331453354552056746709752241981749416862404987512150749734010600246150620288858747879130088813997108270353348581855056182056559873720751748938705976347707835452952174813915961695652542327497879993308677934596664040799044185100482394775783862821013107629811494341847204823000085424405429112055426924686542256942456011129077214220752759555991614236364838369818239356026816718307641691401690436497828532153590503057367048613620761908639465660118088748307749566836360806862512215559917119334524923930641333888263542563322442378680178103158085059549850951713398106455820397892386157238961230712408555103974779345267691325201819393612363920986364060431241374592990614414553547850572009444339473633618226353330261604622777320750970463372799172056040097548024423548094443414110467977141692538325658109134869209084489996015812149791418945931139278317938769574371604988301751998642362210373006673111787860930365164217833188847022372190297560572154861101046059029650196619393320370237643201973054904319813310820616270145504505884350625168348577847790034728981094812361133085082715254023802751551205474355629157618889019361880133820733489124851672800470888222660214019656670393711139553753075948880868385246712929116598025550969863633653600860647925366334678616444350053181599705020739149234978788048405510098036318080527056261148633677192888164002163668996439021048181066850133128931701011819912289410290523359911318866939735457233486698930610542773313280724953648914593167875459644122040080128174662305333308204195450271210792465658830358946227414253058867962138192401422348376425337647911788931994658354690803390367383101748746836839145973524921350585273896276251431376102946792252002047638936022758295893898105735593911026715602395363793734458785880008390364162384161421515424348564701266299072999436489049595648895939648575498275517095849386867066533780964850278369023861827619542606832892224947032679509772313579794097413814560094938591120354502208362899791307958148955516361711242402622208352021655431382143555301952290579807318234291245041698076737248716241411612090573221386519162267488526784060587546011035736249783377783249078999694551440555192456430605706012355285078549246898472953169317149599065070425888328093020320227344247346489382527023482743669441403570559474296804973706794293270091758843986741422927285372429298459914195813969234500635113106294955487450793273351811805121590057383790592482164425803359821563607728537278554274370730452821563049852915075123178767731429919006539949294576385182154672565412265532308285302743099193296070557781654400238179204193712524952761474360703380735839368904445638597703837654273650577353041210477781291302610971046906891881104522351189931973868229172627442630614345122266645636330335646412668570154733816925663460595018845504632516657179435108533651536135496381333756105965827494415053735824264804825727732651489144560073394399216670174414057148717606110979185406436689478933364502084213102083487488221510190812002502409251306521274841959790493846884531566803460164903016761127248546349762226360306081894990187734476595185821165540843291047587795838243825709907582684596521356722707457931087870748347773379720008960510729565061607829054114585524692903306842364834188207602635442412372913578194236016548006448637625676715141295318958753264171366172870885999977188476745758395837898609897777270467543544116652412088648986656253041431413812703314416430695957047551343138929303864459478948225371248203792049729027329390618517734726554210197388469710109007802355325968683075154953146105714261433254407232698805704991367015054067189955566723007106098101910898282208406658379736996555618728919149774850102846798655207504001822030184421023201366055321858844624774815452872679043954814053883843111021245319997648624133463792223016213988694703659931776253964973970501896949378047815436860427878838350701261212628381254825314977542460527409971022764756740090224238257119381375851276875784152197234181042428189871559519756988990709652931574655677808714132555738934523394913493882916646619351522471927843700662753467042509383598486354415429780327397284301461472144131229954327527955756560941212794412024485668039035355289454156499895341548061645832721106171326985555154580065177775352187217498840878545377460492038862337099257711000622669270615442485808817823781432665979428757091437549871244031981203454113354367847230737012728158515485978392109237352670805347209171390458401841981585791557328158465242392842171943895247035076522735244178485809280691709092365383510534990251313739734773682555574634664885520039030148473839157191099610056301053132662964180032645882123647699866569717101321177441238924725155273315371217557167241070518856541337301022845442533658963302336409083488184143441702637223071426584480360778478872491021759477251557299492125461543573935065887465513773482472741070287273663355741765762970613082957300524157178055282732337689561415364708969043338858258420260596525239260515283998755955896535730606418500460332004746701520030935569848907444584336557804230581352760783803383197135076258176462731997392975742949681657252723736683940958513559364622133641399281118979822709854348752383661733368581129643121350603759741715599931931105287423870833446898219916870129814942147612551446244848693834337342243621102396562544628719576592443081033428405001403448227070949761054334379185067930502272846662224925444616775225896032074478615203841727752375188322537037372040891656297577364927612749026821742851536182875742751849801776204322670338726830297385678281707313970005278956843131174701409663829095637813011533207880914580251273583317270122137981198886378896002488874828010636251604466356662459905424505362786597075586553569597949923795308302564491195455055641468879308561721784855702500581847658677190765437990072563254319283762949264697610537319946492506389609087095593601587865315572779185407954061836936925823434793382766757835424100131646629094509943933990147231256227060677467617606586854861982941021931159289614580500808280594267567085532538866322552991811433424587724167194867376269830773025566435760233964910514274957628193622547010571797959575818350897981016645632577676961491741696884299941030104362851819440113293571127848108474734142175178491923179487438266578160573173754300307506270677644015075789014745064006897669211215614106178365585035747934532239588666194830334231105187249007875819544112614860238967778305579662020100927402077257916434824233132630134948127530615927413709326222262811006772314469281450558228404192567950041186613932603589992425089060583964778880230666045300300891670291122938660025827951042628318700825381582410894821499211783629858716783212412293692443318373262319565772543303439392693341247124035891429201326513921254427270501404894377993225447309931065585457246531819653139461180456613214901962958660872595243318974637776088453899368825565003586794116948650265963719748920502184025910896326763846413509431731311857111404652060562915159912992117742997601952849277947206787799488221984543948369096350228605851597439877830037534938626493189679234664376231128872489443064178565305950942907256029967763726970642008651602638079548573047770592711028516485621670369700788268547141821851168192352429583522871701966317294974929335330197888550623793167642926664613464784011141918096749528935261528134079818568392766120531989387797356915632860470926377504582598626739073873875949445863561966305453401572835892191406098812977893439833155338526212625732723982118071835932121284730386680187668783073783518167024829117909932402103399963826647464529960160504666393494851752583261536285125637277623814380671557538693124953457340550171248760329443552772001712132883990278796185074387217808761434049135292828283675314956188157673456651752948780615570720938711354532524958446270505088544402845544975827999585675853442757907691877692378623677491331899953757110572227611611556339620575474116433682066676249721811517720699197227859594700519938389458729131260687368716286854731152036396999351509384730820261488759078218755532353514463757112095301149891604186889762400575861097863368708339801993150200364496796443588249124757508503454191183549186738799348910977485314749632692757785095646972352053624216250963500894894230522645613865147696274349316234042547915987875952556932143022928612623244484666058714640409965958034172460890827843619269297848135444515120012350696930294116323156525312902134603834968095283075871591019997145067808533007137451074872606038060858741362018921671607575663515304597259900398000715595263012263907724168776037040955220845115171291451963792681253644800145552246823297972870589406119924503062430568304811536717963561650842537415607216249744309188807853204003101927973306665717790161514987125075826869238433067096782636718914363180104088405552655511713512845137318476436404802276321824698129002349951322271776379225377115552490949734933156173808451902419939628761415809932670551847825500229640425209242332379057704747300101003194194914532765849743761118350986738590284002679727039753932826520926310783201497600528995539827708382211975250414199949890009312701668962937390991989039624973656795422488463793198135809569958623672646996363437171557246340303825709726862006144606721795999888949248201245951838081026843232151202771949700782688239453202225569887105204028486772865065140601873942025456757633816095780140561791461159971382455422701519255997830972202744444984569996469431035891233542009577850645654767055141013549661146135276762706953032846607332601840506993020563932298608731308754978277067719411850143964396793577355501319003253208988838822001984818072766040314213919999392704046612258703454204143060499882979038768475357412614042347723441168930032481087170368845589762647615987853431378295294797908030778553516387282843447782315767694133372177132056995423477760054911412145415991062575319467072767211326520062484174725590253211283871869606296985916365200235060312272707771508771731357679118666013832946539811456307389806411743760616065217102385925024113947337264612651148327285677084398673686799402338027930550319287371381285027196356868785683608036831043215900261347863460332924355034778361175151389880957543029860593179687745858678328155999567255865495815314257895357399369474238236620420482270143873552424310691769954943721914622473521990924853403586906120552295702613164342759144288795237158648951678747656951134583366630631856996778447517534781379202927680440426052739191113157323916408300165927058373312294318237814958507228994099059261175956897261713777280354836947247474678485752711031690124506808788911599757522445490500759438396502650252491590513897877218756974428032695843088659938408398137153571400291764523627496594551521928602771641487983239347248540635212765591647647108260129655598640643737366385904212017830287882614002554370208799225609631691998947013178003086953925734478532399930113530085104420534742812584400731291231576775971938614874642923861596760366300345591856436587964943998695637019714335686548169522157450272903349289739676448749064983682592673367568200401987378776808460826178036341283036763086569812213643863142702047543770165164886029871576631101059788870519700279611420977320137784635050645149401636577440040117893145388135237059869629983814373597311712140140471650444505762687982288406448683983963092733252263073691463190043437147566857660586749343595041013242886699159260425201582299219198656035318478681606601806901867890957717552718849014354569892300026346977331879067211237512372549299798469396584820835745607518688318952432277914869170849861440421639826343489642054119946056394744641530251900443737486372911047674498189535991398051187169178408397139243354200507590917321979830758151339325197945120547495522535390521928655814474802487919502807016781292381393955801333367369103258141544440620856644117435093422646305036336798976692980959860687101613384703972356573496232680803457100409138013754220351737964829540754559212002326922260661901569141738046118983810021898327228866326220782607227182884166294041862707781838204191355879255445151864397572237601129566159347953580413146898652576111981346924773104844540521192811236921464096141448143400523826945631705567942309099666555534137936493758034757026258726307973861832791515351619752499797234209575428887017638689735514291789326097758530940237222026115511723527660432797384014360572775698178557590775709177291412801273067396245988521273001128634448232007891097807636466166790098293538910130313817223291669889181469768539619449444024659587044249386328304805244552732077363674782553199883715248115663031967736925243214601940799788355994267194565486984809933885926113650343779534300197856111382312906861342115008519514728051260054048410298949299944196865486937973712049060835563324064260901604814754010912986109301576187359389974340315749037545454125205936842223731030289219216834447685009074839155191252411391369036163677377346724972844750483393816223585951135765287727870428595040025431715190576124498279637148649534534604296661591506253866850700118431495825037481211914053560694355739860145424602165817652134153720192341039559542901441951337518516594024227546929491410970777855223310227128752511194447843415339375158913621972996660476920655464779388056054663698984643587499028316910303563329056891396292809800036573321997710894015584176134553068361189245452015674317596758116387815110250603311487993303870343133422419475655351463176171983826708921405782300033404163154070207877963635687845653819568257852753003469432250982028718180280123403656919110296277702101562450083018162588593482506881154088173039493231794320532513725474541015841740601861209181832847092077280851144886579987933605997961777341223086207037350650297116419019910235090177947924792567098688310250374676372876982352631570079366081084507506318732441186572350324751987087050997585384009425253065682743325227478838568255008711249729630253549834864534870231975164327500993913838597881201685456041086319170821628961975431905800071409957468716646132560592467553508790854901689403933474089453310560928588438231698081734230117579597477118860879837396581697120001821438812770839786028280393703318744050923081774784245133087032765280125717603761439683357800932911512402773540570494884271602158194192640327689001468700164338491752633644245770377398497322932809770266043067113854982949137670555505941173211695878713597853492095678956793735376052734399603211350707900387171188793739513383839343936887301223698581507536339353384164026175185362143650465913856341751383886307329315945364507141727968665847800750194240288131263670277188848279567117914077842337459644144441379282108440780564142496111955653201179629144515969913255074836579312924027958437244864164438872483465522294782502822499812910560481597313656779302503298261917762419507557284762869671855492277558909886647666953502342287878697633614137283359948678055794231431799409050391357781425155148495603820321436107834588349847950531641163775993240934300994221687791959629075834285060425322520691750825815127271398881619811286691442956915330837496721666822602832297995028191267621485904578686648218081054376694090379339770009537373138010216288010980868386788878836904936133887061172232018970241759548812631818789678887271580500933764450741851830637062914970091423027082303248309592440196636130077548706864781261515039139987537970222974009917310881823644048585155252527662886477120035419773655599530668308909683879659646579101965540655043488956980840971314180296654802280244197139326116220969698700949515663163743173916417638120277035639906136652590163524524932687880435539412055603382889028851167440248754897762732824505578568030666162558624890102831231801791450171125426587997780915691848731330215664185308901143025606329541071458257030555448894912095570189446959787969348545838831600212415176019601588451732795537765679158549472209816066375359476305631579438404116763296643104171892804293403437621776846113124827410722054437832594787943481806201263419051545627857119907244432174715847846189205667733040620026114702636404402851205330318637420018586185813571164416345739333072817221136720345828982233522887977343551077448525595787874224780363972282552545246131358447644461024399629906317833677589512356142557697304231742976889060522450049327853364430964546251944346581599807636670031686479872928757689376255208268182776861915072040699894712517830985352273347477514118102759605994693816291525538555326682947120949708615203595139234844346761287972929789712930918505454121256908546026758095793613926401492870442268070983453777667354544612156476438370814014378397898000907526069112883212066499781764050317011284162129425324271147938694330846214026395428519583637932660042978139997355770903810593946611669049618566757842646420671416478011510567045034236119097265437483203389722989408295350558221343152508523122470780863820560489122632193384662142455608289924760151597427458039464115789705685533014915817291636713804548528842778292077869876446038529247508852260938229875306233911972591610719807906627409253260348720761277421894212801253656614437667305092715441070122793991245335398647220294557132550287955973965263042491268313093395263560888076254664992039374855511612396684805680396664149810223877636322232358961145439553032434141845475398268709615727023829435549042305176598347745812835005361473916515472924982362516293924138200278710088872032761610431665308785382102323481985123581221017684655106261984715766408401841802907910369804738177752619535070591785338347535961927443549083789156590678567246092711923997054150349170720990187484138053867888432910546241963274698300851619392746343787933267342927794105318867414371238589468476648015752180607672239188412860121736108599062881543439784532060634760096836224310658989530434255687370938391611940252491004047175791476855141586043800209484519145635251064926586436449091963331508337361193520856807223846689162557678790869193516766951301622112363331043570301889202612110952339147259666541607793412765413896859494280502999116629239894909804489568045918475092840894685749904242911514134455553291594217764074806231658182648118514728857706439286085934027411915571456771274072397857290560151567525476119468556625004608895854993738508243489725384959031656550280692497867681504604834844508486663369667577755271525358052278333400198932741753046962052334737474750980648017919964811666510104885290141675750832665666449449048090935186097483326141802061006567702817483551644676169999777801858373755338846074512372604581164881402727948472944083882273192324080905967404242904428781333314006455878734772131866813799658442569767035204646754036674990175242269840160189517079124869988579827792531049921452958508667832524855358170919212427115069210917989024708827631467451125545694588972660131076318305600959629406914825641166371506136437256654627849809421760198422156423633353587191071158462505381920793743095708296879610759871408261833592616219067861754268855650469417860736187340113367809789768701185134300026924296713382353067352824033236903112798459745875564723803090535237611740230312888223385334902348776242349500768740101462889605713113113904049896986454122439713675382147447887570554034141510769889286126528454238020504654449486914882206646118245483588389822616117831474008048743104680932999360145118929571583971489203258815968396245622634790927048679758890607945506040842793884266115667341564852519010799471036175798803243503259914580461485666151910581063424696325936169218687836155759767083659807548262071876167671311031846027841957852366041846934367904325232124089014584938783644073105961521825781622815635558092871633059295413138666112733878789754193754351516627044898187160467256147945595189743219380816952743695499355375450686978798589981209349151242008607062017480412380315701323416040225911834139447770152342600810403096538651927729237668414341847992768313372513337590343641597223076946038147484527365953114537837173316353699211603062952247510649084864609981178472215013620434530884085699852962781996177628334734360820085612710038683916422916205334417279156826747823200672658125611883160441226204405108222031939694665664546178637947584806363750519039080669482751653187338029216700126457600802382652540878979673508048495831600765322879198998990612565587270476582934393446406218916574841712425316433151225842075207480779386823151935833848544588502425829512824133602892647136733723520907252559984628960511960712247496932885213974761315519891100921829849230067067842199906187734838667981801996599484658205328423740808780640061925702324693180903750390084940714678523490311095821132507449375712033105125811816882825974370452140866053318267773872030026256237491386307901332294288335205728120887630159617096734805382294055221721191858741619542287740778211168035045783220958773904354495914250915907591389095559948322562118821983160189521093271415490582404949568329436987111652317677446290458390210745441948055448449117297210251900662660048364817190668656941856263897948278972847841408822251828100888721409465275814729221503803894279932708340190372742722656026005933124270643342019662690230073713437447589859010024671125085397234930889285742038522508218478695078906379150126986711636553193259348833441293945901459405710967443878386477788315751750338400470121038254149441373072602295961998127456646335802927006237573511413716368672617637596669748275193241008931753545984347048595213174231174243558059374264774588717398068067841879119164187618373285693597389233528968430135521393247599667365419285996039282038876395882128571618312473335928045910441775272122077369502730528441402364818286818709689489768849212203411855091925198369447750695762628578006753403449983097146019430956054209315992899206186390227958171930580963627651850827491136164079516108814563487958541394247516855937878545000410101140000999176712628700377871611906123001480234547594731699192199018659362849194560744254337140222896819091455983791147886397072375142267122791370989096818225794581760608970217099145747626891271793554584870073898927689671272883068805582896638779313809813291275400804015814623649012920170387290789795919443532086188257767810429617390861487693125590206983804989495855977115269717039511919774324558547791974363643515405294831741350589244161552608381216449758866775882621901000796331424402548085915539487084135204335948180199595960653141526686212913650793294822692596129265306741475040009383415909984152939105275182728620413202679398894177509489020090242373020822974116550089289121451662104672097384298858522107156546672708042521350056925340479593526267236800522589178037647792517065216708955483519791120403954932030362494365895753455178135189433647455662079304413201823287916274439671916165669562124329722298576627101202850730211376903837039133304991308478574727160929936766225502809859811746853510865513855319228333606373619592271988780563124500336274224135968055149855702827301102977617560802863762260869144539736074809308701099901710299106242537464720719279747925931578102540395345881816708756667630874021690880410166771946202882150730205395592639523551034356404670444828742229762653245904812010761242950431687277060366138551746416717042803039542266880375887264257449524787598807018690729549037897513601546611387710642202754908287953915359909082018364206259331758964861458224557392662423849248491079457725546996392256742785093222968044154749304453474064689160176546890471478653726833346097056841385347586066307077710091624647578188261645602504539382121350030675399383914781430225013523409949113044621891505747787192004697343846587572336131780737859720131798589120010275581758770723287513915213736467884752287848733817176130244166177591111341781971478168178606004636361967974982984831464511016603019712919485436314674646493422381595983816588158330061855174690466383575244702164697450351221680181305110482226269627458994374720195608233764756895538957411829457388316835290869705672489554146388001151139317092516495594903520640024254928854170003458349264870025942092436479354684665874532730305832881186338257345565605371987883333409279252295939637376345973952551727426444233074345343197479030128319720457402459786510482424368810744140901705866015220430930762874658393457046906381521292006043342145834191931478720451713161900986455728435366773243371515030911529578348444132307346827672047475134881265602337933408993474364988092774119817756639094495787986561180024146832590587903115636244807904237554123197942704932382975780187113997453325980773160860920062607166879053508254841846469971354301443148571463768661093327562998412641739937815186144022262203081701312018378214632813614653053296465218250877914016866019711747806261689413229920734150985751098765798087376051305950233866384736890466847856498096203805881980183609904013986144214691906339771796337268056373868548836053600842573360454173608662664931528461480717207958659556653980168234388096192351880855857929246864885051693924640298812360028500541621362579645831790742643624465990436253310617470374886681715049724868722395225490570426673477932576879554507781799189473474353162174818219646917099204603060586441996194741305413505840307690854232704541717501140733382861556646476462038433705733194902485028205978931998562066317614935152120334247807937532908057521951011143467664877763040448600025289520677727305465416508362483362244164112631300742853487458841364222232301467753284220106110825243870997513139208861236852622979137659762539147412447067108683234545052529093200814541116827303375990049068568024575693334179569297292747618414694081742671568284299144698892347585579125979127391309881581155501614087259706875606749663464492398588591230246235586313670313867222288457164308059486241449379071540607401033998439392022061823944531600110928726441940706738686460120486062420079031700607459269710947533690703096624828754720613658110299550028516720526276728696980741267425005596751128353597480755210134622820098759477245129835781245785465943210869896761861034291551036454862802324137394618816717126347382189983380146455525230101473765767975978846726407210963387065198237188260908249500206646447302620797347319773412295395075418164704543926526707719632826090725006368587945484720347047284918785203692143703971912914305158949287913359742618047672271946056693074480373904151602225462692028877151731228316635367862991985103758560704132188600199771950222914431902701599218377101429589428467379904565713636854732803582888950598665540208225110186683001036190077570871908338554014950666118211711189915816491179239340387203714060228591246052814569098714540360704444382388275316877303042128370371533380663799960925693931617143256285594587485167725410110934813187912101471923830078996998820181862683503488346015338039789041447601211742336532675954101122631279539846467164266945090285607706655869142131547952222671318345856046877423022817601614964623127385695908129422633502004899555750868258103184820115315220228057724235212180810191827537625002086240210168253413978016284743747487214643154379943510188938511140898426224868280301267878846812364697997794056677061443121742200208086696798477693210689428551786883421652602682131863809652446624700536651291771613601976146109463095890635067838745909268692747131862143481354340646831998254994128895596997355260834899586063123710237992351336501610182440582658124450958919203642753229474984958746303111972814644904267921607440014128157414035693524509592883568990500304534437066132112278516327218414072462609376945908597856501208128629078457597516315416482330420473180440047127501088293286079658312171103427728886431645400387661950444048224869256443839465514138998476603332069769953121587914009091820441506529828193712593408547021047638958269488318860282338928260113226433033251002264002183017303806164314330372644546816169576302075890316800797163554948561395216360768232836271961972024773444045704884236400046255157661348397840715778794463166265805199442703285929690044178279600937450651940091223597946616490413982546823372165356524831720184944479475253715761808781772172763835888338497546429963009899265833432143259063971225844781984759716486056731949663108267334319722735229289002439321328295309724706123579212764680590821051463376334275395830083405410364656039545129953843463912803939421895099498040338753765967768273698518872537315233443479474543071284333724416349081046849880747195592243342407057457064534992130062383494589980887137342709596785918545637279084549839702701824835477265664598907027280970931301198929972294439071013886882007548261104110936878472653084920602022865564038437447378002682647647891470343481000925743460451598863749751304361552578166237481265974904573623833100514739849256502103106658082967511126189954674679485090303933599350501736968211556774285169126577759441268515412584820074185411512070908930787482413837441534246244264136854165450792938185338672027724337010443077429732931588633258329434535463080103959650416087145580624388630769579326054537549260439511568472903065195441169623381191989954319219557260967417280235944105234203074032690837839046349289995280034045820348762113165085279053954443537973737857664075634340255079868017423757922318890247457462416153369636249729003139017942314620206661168254890690202082880704864829555241611444094406349040495182415290586314652794329993158982265418772726291813212383618612374940190958153799087222826909416077069435385059580926105572292194470148243424196037467612060553035721236387098737145892252269677841621956787860874453509174714868242080662710300725835140458303990183391919951816999962766524548038513237929780614061639913575881070259396587480718535486060046640840427107928563107316379858008550034611478846636278562841831121344740301182993583547180457163489853078725946184541609709859472829299683406124747762987976124109687216789822601139361118026101564185228560679047610923868757065222610333109481468389589852882131492130449270337926374128413711753426963505026974261716100458042572824806209125321793167587088081090197908969565282308529524046971818244296358368640760571801925704598419558522414284430535730424537377493561816416498952245168965289005602901933308476123705915465757428778451908568726218652100601949365074784860515840878023885768836433217258949181285313334276669978915286852501383011711067295068868277478419141086851605924266123356168539329268206267550430051547850411166312933106815555680539320984602615402931126791248745171861386006179024002580419281573357442403270288040719572790809006505890662245186776619686382906953159501284196760286280842272496317441209886970350667541166370675890244368464994866765323512867949473044181269179511342243837778612557881485527738697799729554179558021548524295529803782004130698947088678533048807584899828340226075489288687449287978587640378944449586472588455704282725020122208596314050689598668548404794070823783370792692430413980717752152817876428670489571290473464008884573276593574181897348064603718012438501482771433462167028606439897501130948344852614634739815270719146100948680868073822145083600389711082809538232025158166709799372234097150741550100253090998234622276480421952410176979583321046524702773541421787305774609781955429949847863342823649483150510999554811640918920266662751367062555482278355897543629454963636610486576387709349129881108095783744820956742226696524849275934246802594530667325853956487435541026277075202847772528141065976590217334357819936757843635229225445765358907672783841421800051867664185309189218178379202000824576422462515225799516225122104734977244852928243467045733492916151032873879407016483093859070334801628552316815739496261004923785609252752710781736270924644111768090309044243656385740497494668049883637957035374584805676278372684528645489824303182468052801242909455406455179652825769118972304257944886881099814046538723239944065794681076015271277535497499832054502025986652031668404152058568126695438593778891784693405975804921234562226974011796408571350770397375373395214508426204694608659713404581790198392307454750055696761715142815074697066275562017108284281675426924714291040985512794011508249057272624935674444065030067314974857998397920343250921550858460373770597669730454697048538068565071675666644989977247865493924049761664931767459091227946558398679193879092968569280201755137839422689320324599356542808122404706989516546131744587758398753472594623421502053906409012808046221960431408959494897561842731787054057925684105923641090784866014932924180384993811505833379572154135615650990219904956369893038008904216872103942885949834005573228310702926675730009700027610652668986516011559717485653034049211164070335107094963986670482418009838964318559974697602944288948412196790256508170611642466406672605839773732104732578407919106725710223819848937434974775875787441011510245413069312314038446475182093294619433795288020085771175380999476239311797586895593393903125566666858597108166726636034063783913727269297776424826687636426191998378879719603969496648844987039825478121382446465174891941594619233375077231311532491868875537504949897775709548216468515986560872128278552129937158939199841860344326408833838133389971631710937864946305453922335857427537966416806280942422773063707721471484852985255714057229628411440035893045407991616481294722078396453145301620962046889045306706105239888664967575561084561385182724543638253503466442588963810435719082585069425885585741596855737555901972613759678332915258421793867694105517007526274837136929086823776288008125920192534921277123583029906099402179390610102167391287119571194270151770574526849292289378112496014189731857340891648994582098208221647979232632565742554021920976419874663239278150428542455781885977938098797198783315457569422767114710973708177809275711966374698458536918340993581940485926918908735124731375289242772963524169009729914803121818740636365649975968585654085506708230469568289539376990241486207654890084447707467502254341214906695583158409529905695867228307633416278981401996432800819943558055302194197089539789021445357593082928047413775518071052338992123235764645306283064852376225091868460277884505518611593652710688083470218760294766043998293954734544750460122483137036542252482814760402445742752488427316158090834589297021736046830981699031267210858976187581668617410725333303019639868267940735901392741877974512196957260895726766406307663337500309069006236029832463382418085144666393027508577252236318027400418922112583714549323799978009020337745121426291488333075609090384332603074948463994743653445508787051554367817480876026311912532970487363579491088579195790354002131550286381832195946603727722481083862193065796171129876762658612314858766870130638567281343268280887338001117013199170504057321996295928179128415768905287077507508400735565421524598725895000601204099092295117386770762756919978798258038001724567349468174068874392332882029604982458658870746179558747642903722816325715471836204129107769215946424225097655888225746822583738708887344178640300118082999109706639037579663251177181094623387065920523985889522886887187952690827464475125270812433967290157765408955069515683830200378068063706836326505625484081627294090975140943020764136077511646835535974587911344527839918019729810445884562848826816073505912975248397692509634272660891580846710841119065459182135801569539596117560001824037001327819528914146036772879048465908068380644406614283299044801740166751523795624157863593675123769189528053975593131929738571028833867369224749987129334833042800450494894367351739969120767415504701343819323875433374612445356534226946760270504316371948309444461112953171574215706807406946786477131004140649730148637080453619338175454275479702229984049383998362750908185231977293538858717284469031908491357877478740504117579464473250276879238210644297228326291827324243524288452469009211646283219125999938386356096219914247319089029346238969147237061725235835466906797432044237853136652248426808119860251027280444134584441540204990082971204287941074751367873376232891661187782999202148659337571161366977596720122341281572727697491730988139885010589929647435318225402293719224691017918378961540176508036179966462152429558088542070222455374468213240873468321635999581231498968433851578935326865640379127593291480693703189411006913941995201540737626961968633677052913646009131293708614817370699869051785788455473862240161635340158722263265506318276321743823788045505316318844998662949279677832697731612819445930877960309744799929017934127890922814238021058409546289050826751690135054965042817773982010516310370136855122993953814297196513041731003186108264153045367523860565345845720661775865913171143493666618856911311017062281407625115247745081453844617125381858591924015582104323111159039958506147392622605033279957861882072818143026836650550551449894006765603555312723991097240467525886785651616398893015810942518564443447446584495568114928050317784064165969616600707196319187229907825275944813010213394999288821741939761109506771241530629634091847292732583039107847850904413190020070165123023282012208253098188856521880059683358180130044341592725867260592826803753178950595220567594944390028383158348158056049963805079687456220547761977094898046085283881639818863573630759430710685127178750810855907829135841822002123206327764694379221291913323689489287216558450121814613219173197274042513558950274485145353399444709321092952517369685244043243739069443324389754588997808386105766495409011447436606757773314057020341420837808914809187840545186315050694133404226445313918572669844777655718838053212670275256181199837530867162170404779001362404239684935510727056501903893679121314991029506029456356269833812627268696977108462789987943821533232521010238803731905322800896465250554837035514731420620244744630921934108369564026688367405522453441246340781386309223356520588884174010366587553468426433541320772112141556679640139121585446575713759359952391585002476023135576491577777605078299821680426926242658558819408072667157775024312940622840545805938570607122253364761052681923117885212373462588775023685098448908598110508580984008690518359651024581901080476050774019921692063671636393711672661204338963958078273226351191260176337956818759417441616510252638947859107008853639736088574564045820817168734851334605251932247117541261649285911322119387340408313241693083974805537097933202525531127625644966333248407937758706188167363633253341572465470378319400586712161876886709958191679154515590141420929222357480593418488084073549975397250323298325165469598403787259591571225189429322123658869154100636272715038605627053451117514459047659858562913864247856947728855934107006606972208700917867702464688832420138398239572479436754025408939545371839057385248199642603798971379360519530288132992585447128315903798023503197488158244980921675162024353744446258893345099391011721463166639721782074110461417669459713994041678427776150536666822246015266803737245647813222436886956072854799362922245302901907336148111200212617639782028409321888006947553504466723252619649645386807405605236427097248188183400465673050127136599082054493479898925800393229602959362589360771040796223865552840593410842812374596599929508194941907008206013612358603910701011009199099286712385846423843694549442315088127762605895138901411640976013453610360094300590763721646909671960862521965590469579047497834108629608664561248307662273324972326556654293212031461448024261493521698308361857557497463374976056142703870989678368355376073881539579405729717791230265151534040610938386810872885946648532971886143574060658378360493465849671639234810860685353734095982066568098228936991539204357777297038729780738922468892786682263643199789132336720187039289645215553895085220705046906604154229092544392591917335072728857193267895170745782723863025683471165064754279910889666372195976663736195315111557638370296937109643170983547889264643078883470943755817746623522666913994816104916330565889436175587364763970393303752119315142462717843105453137338299807217392546904762893112054221815698279400973556349761051302357804760361522402012626358536768352405574641751315810947436398301220659961899478235417310878712734876331021719511383503082935517731214957361109468762981124197417632167682328334017758611479642417463009173093620142375918086084425623249663615753627783716675871379205258781518380357294458269714435035336360021936860156063696785671778476883130756620635077238467330080461340364893096718927852987881753484272035109784310922337136925683906245927199198156906841871281251161587435910221256533107565025254884605319392737237337773127475962281256746433433606532918957623795006601191801631720491242556508185222659380921239919049417020864653903217533151874177460373789596724695707211694793155545749832703799049887389995757164889793835501634388331581429397376013035055888767568369184189762699679710806772575123785195900343915745771466835806888536925571729493947443676256320283229877773322034356536503536459362208236047429033086506567807511123822761463125835101843723670347972676291994299320574299025133338508619425359304209723778829233805029312142258253805028853922172652797131910578757987844050303852501400020810804140621192197596690160578964640574713483486580864794625902878016329042215504144890738843467683289090205373059182424013142805398629845737069745712512303585699352777407176377706745500042533956757600164159322703056912068495282194439200652558556063098569783959022648899906331215993940516448858350797851507502383486848362341222279785223540181285787187132728852228540289148348063047789098997310655132061906908435070660774101118918012420629355147459710878502791287564989565840306016924301176133677705829937012436156446631009450281510830480757822318063978793818202482903961546664662556536042228589578377965669331473722340014019606845969043993888727041456216472821470243084881587745124203195576832278938855177167964191272950876270620880004266494939087365582251880560944071419286956000746770441417036102822166773185259545496263748606185205758694115731704283447234853975504339035223500228391687103192265900136740110604888575773865339599273343766472457762884049318154690086545646190527328340482281719039087917380417968315858022895477186318630195688285316986404287769455028254491882339673044532467563675845087943111412410566778230328987164804196054609733086979879736796537651487975708248843777521552614012233186871251512445811420665976176058017665837310365821589873325878562311563845760732025272535133013112744698235810545376650412334055194257420469505203448042156637396841409814916044321584939840232553687467910721531177837170169583478544138975979780153471113758654946640118697373458766436309187616419675546251120968757042428906709346461588161746565779090541323162205841441268475932651741170424471218358884048919016598472952439031850982441608258818122372945599309301922569846091443018474293629531590696441487389700591161163768524784071699324494410846757747737945663321927165379781924109242406483280264713066931427181251517501344657624081746651385352054909470863337803440218575819374997563973760093104377358288462638432773281673550490659908549693012570102313251309407330191810123403646034829959913960926276072539946690426012246472430831732587277611026853346362126481162581974619283511064621739421338281177879969381632963061606973289893264239581816585203677693702538093905269339658115517719734677606738558413152871093021974858257303678712701050077663798514147037575702846336510418169206019532305843504652890399102455866710864818997218290825634386667992658766356794963276266694008949628181359268201980882430896583997893204712456843551209797271784760784602418491279080228465709604806365931514137901537446071612452321661777354020629682388835112640679228169702617171069433105184483152312223919878802413091479822411523546906396516263870236013559630376585318615756611628113027310071716111821808227984541836429992968950658617389657349588579548562904444491563584336497262275179949046337403291656172348167354067264748201651395028000187235971563057936860135457920537168439574430463956065627729788854699082706747645146340438884767481327449739878329072132592066479132803770492801916506246427758447153724028464112423490437010393713096710616985487955605779450283821750759530004300237086305987824049658091051712871676025336951999502690006077483952227825628773173224348910343639328509001544431793315252124973162445156499330365061500663105424826879752555099694107218336247505967626608810173235144552049654805319713492283421326688747386028341241624442179824310929994023137066854984445263765937354341872278196242929035131801185386372729536003599952545401555008796834046864535930868130933700559263310402234699597179060614725925008808818675902785197349030852936648190181825509529428701506458085243810674311007631471627504930406933345306582419570928688961159388201403127409840292073332424561704494715617897829852189917754940087406563853284086637216417537154086525338397501983630521206272391147657450452603635762091756757431145179758616103496700174451897127041672788559949587681685105383974736797276644958109642653980943650432767895986672054268741241149464200562413828702362413123498442343405326668147152152851453528301329351298992590934897207337627837822617097445183097288060929705010082112899090393378759202940125079120841182077695476586118512609759279316554144413744155693823975427737523603423103614840861227229967228371831548220073001478886095096407806295565513237338424424397598249164044700242215491864696767960449180678575902176766232060940037919201169955324166740872551186934413307059738995010210806112413747407495058894191715435824549729563116135366163989041845668672962742552571635022144739050916333836652275851218230370116213347255184090250702769213534946467362270318483615404878793113778273603441313814006744445714890864891222484482276910659240354435476922054174063443094295204952018164515389626535284333194449814747955325525444660266776003635266382838400081882107925133164145118981752603705182048761324211346756429335107135124410877949049104615877990384818555478540090945765254820543024709956368066186815663758765230394404078842869637719095371315357917391660026871958891255308415315887744835874555031968787279759661887941227551525722056153462633130339067916382624392796576210919388026839199083568570566381728549935945204908494866008620849407813901678961340933230812170751093840996937333088185789050420771124953144476664689168852786880041999102293061235791801339516112374800915868885897955411572116307299780628317148514825139391510031220639318031157727134738170472844510456812007415069515571924923312274488683141716573545762194977587225551237368212750478781250051982117040541013329782655491417927383675518317295079417037678357442630852078915411752815208701946038083434901278266383854583297140812235693353262358591763255550941837684808042096904083410647685099082553228833967143465785449578326548268972645049273456641421857599817671403656119932634965507493166907799235364347050331832819599512195252243570048029089613059249954172294056395950123815233903527439732039560833481327892411060703741485492441830103480688811893297194910634048512008563296148499926584147223559416566534905098494251238155342445814156645960202593574813577758382686671391649980679190883915096039666945717754480505093970214690838466491566364615645624565998019376625629065365256391102027136807208701907313513215467054911800692163386148732024537154609923506414606300098267198480873623583231566595768589184843904048950902516061990632235638697000633685490275123145774307985382316997687046676296613162791885683061736513743013400404577043460791568227422401017249844642321542577423111374118674085732298718853763708784173696801189365401363522129374200772761305154183766073376801157500173458010375154912731987193727221635804330890820594893523958479769253351507417918262482931508368901281820156519405646554413732737955843538336036938330845455746624092940497995102353960910243298713389584936281086336639528041133769435209788747007572240393211665953921250430374510102271315112566079805263840391946227774198858666833877260684105844674643433118007440531696927829921433845444380511617049022859799720337067369193687002844449801369806992446446740801871779988204849709828441286490670911144019392221158276930792723363639975447031717425001633322900552241762762078998980233829443540815728133940824656256754443697045397251310255410339614589541660786676701548165405850332969419344781917158061274447986282563417234423549533589056281427219007405388733108502401964902964393489701259285743301333194354021201548349543479514781495860292848917189237473172867856076523531715586343289503527202741892823523628442282306194520539254605816262005762758179073113164403897261882284611865587469139833842100793443266709865261193784617371335638173996926694349921305224517703722660758558517943658031647792384338638682984797849796397644373588761256792946022824037790035071436791503471712743647213088723737148380035802100414637336934235894716226534795917960028325253525667160563553506229443399620342132558517622968195915327587819934241665913884745960488138636334684845887122944184735674258222598636288290441254398796781343112085564863316639447670231248389992565692170981317834688620823245486458243393001530444084401791570226169175216186498339458723261341408086089071945441857001478052897348780831163294302616305737574254184210204296248784867758894341139660915130035898766788348600801091576331104595162593753384685953741414232524367874781555405789796238999431998602261449627800055508948120823661286195673365375722683434731097933162091311570209333007630824715870226990419267424518613346154653024323402505407704444316743701735223645824499460662562784080362108384240942748632897836439312646977336839587026531797243738882325435211337132861260690183459870641040506738309493145189870241321009382573940154456156246970669249790591125789008706527949333077339483652487205973558293618792403500716607522885482705776670956812695550788044060467129164401196609689726304671975607106339271907362905210922785827794907026968443520516525007404254828086258012673663431958730244599366549125877361522209159893339856361737984503101924314844688617600793925081980478117920135342999794382812059410919890498605960104026566143929260099071156408128293491009753167158500421625856641825888037687304529161603125620300366110757915955852343069884004939579374215525116453184103256220678071331466069516678475537661034161077441202849875514336851339980214137146264282672702955357566126813418985675665719033212057365385066143637496872250254422027650444788422719004107735124915556294743745924407806110262992260395914706382550125710135709085400903182120910517930250130436525294590543692946926546141168685264056115701785970099114415606430892468624718454021213431708292759099440845815587285417637451536913913733932256751827807859267752879671246252880096712190985203069023674727928514315167125968122009272092973130492866509358748053167484222351406608497576835298892215746922426976676923672641641723866257065528568024906637976375739918375716175809500058236748792240930214432718273186289930276116962226541676462299165361046762064418278457609610933916345737180690422367416980796716422024692593528543350469070458987537246927526876155380606573439643468528334724930758786716667659336518578152780259020413549857580566633991085028964483940690453749600060113599835225983398759034755466940630369204935979004258820082918545200060054220809859208416116135841043429641656306491185810930237683057669108277485897124958360803425134859634986453793474570855315994443750860979948453917860515685255268140757918007215037609205713311552181696716208155324720395890704966085472803263615467509294886059492601163323101291119020996909127376571301111587977087297252532617388268425372444392459803739204686745737808814541298598124350164896116676301197582408224826014552721519331958905146611946560100189740197303250747615112029357970465448446568088409745539642619491058086970252728129547458196244818166437943596829519014613226282219122001469442098213918871414304531561470802320090494391787380848043643446178578719172022926536371431213822056589760730758483637148862547329999758668357591942543643221952818931062799031274881865404802703906135797532039752379159206472173770205600545118898059635669505991626248165096962327212875485698214431354819065482738759497356730065981298532537998752662528526971017411594772307479188788077943801932042719745754993422282192525790799784358976442251843763960091089778835762684103528459608333090812580366760765882972232482536167836032523149106452110749834606058627708947542681972464299075447027135735921528785663987152566131966489847947731093740776809670587715429968424934279885325840866068174899498311883015237396576959801396938539138104876936229403705575689413042765824941247387968931832473641583486149283269991730710810208219891097178944068181531567103499888859365281162172969714854213261014018953642598160045293348775491620631888153120028415328065441401743260829335454235600099672745403592793029503121650243208395706176802803169303259832343696957284969451267083513430023182362828058349510978340409141372318643168715174163798958985730921014017551726610369776377648813253724294397451575578212231928113797047187967659998662884475031314682932539776853471507644571222215952780324144947228329161665829560640907739925348342918364822373149396370481198873191211446640737338312647519625183343085848802249325161950897016048666753275770673795310959055870269338048367427146097206945896946683705016151360736494217259341054869064402363584263404328468466870598217199537747352115866458020805723679081302050095597807183687189765422001754021306027819602127315967623320008623552273473152776837536312111882473537645954603234027999411529510518046278171686540050125421034284349625179694465603786962335708241039029774237075193104366614708798755275668232263590243390910160933693060799738586231090689042245009963335709849706827975771752363331954062701616292032423367630065935949291499598719839080922752698001467278731944196519926698491366586173722884563329196584841391353384190501429114891338094330337289895834797062708278971610362750458409840158370885876670932299629339898412041801623772728713475009919278800011908765179427644346125757640628118541631591791726067506494214894727064153436936413816671303666792789342237727152085763921955145969220710678251023448498409362184052729200297169157257558320121060374712733612816590836731405352615145363314913551916205518889720967180861704649471996128981551550095964889984927608935535014578423043372315713707568219874171803639091223787965373642070344951032553108657243950832909262404337945968723770627979577120134064042381253000942555870773748714289226618562058266217441646489315035096134358487830455310151401712503601437686322788036497193270561566145754212945025895920347887700603473510664497788228520181151901390410639684120996074646605700786030645043567312001880887691557049519723727028898442630350780739329289196946396856956423747439432331635816187031560530133195443382126597801660895269193694314095559087474586390010643501677474419200760468016511762581591679323008597239520941704344233328970750566616332825651260519439732569458695531855894638169267688301432769537302483985925315315836404133956708812743392572934133530893560560203981440533730395421030353382387789023615251349344793357329683008026599523227112955107249090931001524016747108006265478678746405917620908982243197577083673655023795697266826645527782668072780917889228279592429402585838350585149460233217648263756232504157026625461091403370194048475530447463731489378487271581666894921275217247255190892627224979945853972631265922208177800719170309758285036036458201528988119004445156199305756528048403700206795622948694988987837953886659406752489128804323916419602284131583901137999428186523197820678701413557326642958413328844433096456598653759494300427971442810447369486172606451503369010006908177562045797802991291461535677124372089575927251464490822028231443283286150158874749648277588072130907991805478210753603074819022680956501874600435857361415432861630622723630831714433743325814589860486239316138582014753096264129275196559047039288117367666052309296896956692314338230170589858748695965100946133410315242367082390504416043606593485925126239035393152208164038785576732502491546426005903932628046709182269029171463877954954565099406380884838319870888832352314451743011018620484078017164473600294052091931018500348337730368515168865706012144833258417529738219875527162964715369057690868958589997176967709600108111733389098292311725719306524095724531771902326914560796868723101111682635183794584805399467478762900231248420981731329370517669982529231408829023034019503369231848059899811920094817352497410727210201568119515828629530803640650840635547858658031854197681758898710783256505507053141106472798767546181764576795438653545156622708604387516885048860427603543168764395742645631162830920258954356082446560170339539803256085126494710050713020327506576477977379827502155578008966152679409400167066333483315434930667897849075756398784071354139947584294972015648653965147617708826736342606158957732605419625475758503610019963078960760732132870235154401098481532555484080248474268081145421556702794391152818338241593683545600203239770842676321179670315087353490386203094356141159586606350280350199126876133845804195225816133576519195321613937111407638136819630191875030797276840024843403066434301764547047687470782640824679073175110609493961578478629603275000586172278781225541669779234187157467239643188375801828431130914771018858400128891708031238715300418697241004571843584065547603473463682373287916456774483861924583042324422056205920075177160752667326517755225045706770761523026038260099037505745290987249937904112614558292143326852250266280653392222653107515699446012750509973133597335829375948961537840675024521483176265753440542694402793291601441097162608553615717602941212674399224284759356678583438604768909042197972465986295689197198942736655907072864633904877929574260774827251931544960669228565011945494648904637891883804646261622435287011115469924219611120326207480725822362589245269896696922764272335120933787596418333239682413227682011895968004851673483034784188197327099507996556593162567189283015463583798894532809767288994250097314307615005726982067271953645886277587101717222985392653911969163540323421776447554869005328862762317441919120730592089827848671704153116398173651212710323872109423038963665203237086279809466022655411222610413404512044609120202687182746045091833804523547267778336115669954250366539310899971999715513371480437543851656638320140591299860834257433842229168459955373209161050004291847436919165881070879584272985477667321198670674285911402055798699618560963142803003591331146232042227019489175503443963260813789905734080277648367727969900988879679682432804578912361353371506195388405040865876016722589523000724418905684281469627834805864220352585787869913990228975788750748807293588616949805710510798645429020143196740791111957605824257130664423980744556601386737262578999242358157184466690837790615439143127278542216393828588181089377361307224774696994666068145860231891153410177947469538618496934478891579320785365393379589299160680923458960688760602128564829876843239254031109418759786508623965586724858210888998184182835918676345449261124476432063178837415556970617288079875508199159233516756655396601460468903136532843151207379149821507277013116085370144302170715462681161833749452426620656395440532909986194206626777516691476643828476938447099865031539942962736264631219893379065962320139174876065377823990659820141784750051655709946489678197418532331357847162077120538810460382313103348199122254318633499130591928982321435544100960778970384602534434673655396056848458824569301399633861110126009376920717804656366081979785367418167540939622529200555097850193034880831707110163589254983301645310014607441641855946075854555815836704943080345067744806979800060625918637211088341298001198125251237733789212219918795342496505455473745305154555174896547533452703396951376298727807787694979036360145197998930760357648541004133267219556184513789317317875884145104456685013012077687610190870717660877021774684900823321619083699480431274055627409134184960656115510322687628656678109039028799385720008633392823654570001277855897166566791862037848460381140229339528275627371136395121340833699999820409612866753019307255073396884534076679980928514470249417052465024559337313863141544484118186285619071335493088205890196748724939681767076640745859829573922724178254534898533862512661326176498636468175406787839756970659190808178419686877664226081158019594898360933829652358994119612872469702904959644558680905315452557642818632675048947316197464135124863989882138532280157245025066347492683685724177729115750491600797913662571115126171138647334336059013265282546343007951329635161274438991647145807561615841959595109166150582520440407700391912498461421293137849050238318335590997808985711687029281426245437743010849240719190236013212151865373352165110013342090484702256464347177123935692152670098731620201328812854022906267709302930993196710906415224513429716837072563479682509188099104949039052168087377622453762111521816415241046890521052743530868038642505082939477563696645824853619835543979788188736834805177665049846134906656650596720175492986087388915740878297012977123939618265921556731784298808836889058008142652946944225075665941595841233620291971928811258971865890712453131485640353849240692293556373853347005586732003104158777635440466153131269210124261798098506461013369012004255089646737022192919230622122782431469223995861365856522582129736238718774344522012841240616803512194375924220447598753779649287831602494747410403803379142260193739653077352282762347427586665358087061286265895989220333557560718959015445207074833008321939078369813812312358586946447580777713718237435059639561902942759419971996393811007320606877463755770189723842480366296714234455408305092707811413781888172906296101880142517963135913414467514299586199730278893434929747427891491025199943104338869132222170397714523294641582812240971952943628717076270843736304566250704504228894117443808581093124704879504122627447721324028079372872945937423495439790098779007602232379900993625040607685996789166184648760315663902169641152586517297389624133570253922862606225798916741308076603836505126983088965871976679296954380692551426671371405582046800836805196929254580809751906858555935813512772547532280334014705018389423563885157244380479539398593801288911895891409812334641640812918137297258686911679292992291207565105217660182597825756778386913419253479412958780269057895551426575048094193307607755829860133615938145183985459606460826776810428560880725602674735715741516225569932024964671969192817257501511809096634792871266593878797597518861699379668054097757149140555213604264197884259956635526103217281939849881469743288562899370202169263022272910298194648394669370145802941679724235313165845430345497267337379931177796350626189726362607210057368341305981815766129412665563589729049125643646557332023991311297856976242785416706560699341657121504184028868558302849570439174666364370613914579640294998962701885143022315098756721790554637927270695644738942482091553114489568433926122576164107050849830440930177447022039083358010471545145682999578135680274055631356872600266934225382516649604691525656499927347741353140084338281249351599059194509783835147696304124619354747039623050295813723322289610429370741044127508806724063239326480462409105060847286566510286286940756634355573942384829138926022902432030490594276436654851307013185518237487354454337907836134078790149691525302400737575377686243069390230480712091384955964969204421680753535840591446651717778914632482414091047779655204104779894146480381075857630640697299939779072848331073621545079012405311347076165566709214311206381511690798539798155550279586705830042486943533039903882431738476599900502349208957522086597079993719232881460413127078112362243519365454818559955112993618473472628724366017633823471572538388913402326411570506029867859254421328998732794268690619556182648691189380927717763007284423673741240639467635932689134788255190993140371810970356564519919771774371505627251261310368919359999160845109474777253762788574252449282052533298927748788279044189682697981258951230107512582860020596619535947394859906793666267161911646830385970749731633410166567227771278402515223805017600909670653757326014933973029734767612700616928983691736081303680117250811295091312669384381086022956692110357969706087668190826561398244657368087936660292748716941146835135982809012499689889933967629007807685323622373527735104214426721107183879693874534440747776699615832953205348290125813398006236994592908645634749237449872966822259734902929145654333998277849158205921869883580616406750587305458546381621465734644740704191688140765810455012880576540460224342883829178559414549457701056396561703767841700065667774638520000892592337865708934815740444679647631561334202430579496944607675893606389347785098481167694467867359668011885325080405176627392881029366178070697226175533101342738763994836802360546663116186321631488128605401972705152847054140306743035960420772110842636864511040734165483345135394213791860952146431292306478037617551517474210851289495705532030632244366466193134867482396339111183923422882942047817884593345457560233431332706708137545756156969882169356071372593250609557521003260033512253072308511672917236868892791802550341548738768802911271947692062015656223524294952912145524739269805116676746002095007986212862358060878406579185444657843149478691378088707096777417444332282685880180270433439678079892023769270428329067413172475399663837159677142458260774084562264203782107345459839469323864001237209352555300564560322669790048354808864779986665477725382600900955859485744128621928545394084710992681062241136080334116514512576064111081132864731039809986917768189273658353278457795133867477783107355038290715619601051717527844450903689359497027487389868409395313684829306117988075168924524997943691600974757813476898662046107592973441525218479105347745092843711233391006041984635346492365322313402263897058743582742841706382582002504931443732767675712172812836114345095417901070073528663121461179050179545834819103168095871632596760340814767203507794486920835058581400881817761467137158214891890648594043190567743562541829261985227932640498856713652253630067374991704067094559901938497173209654819034607803143515520167792465240573112566794058559888224478384821898297715230784773587808333446158101219117867433028902730343709969725848001373944490303159635886370901444218726430003788789701529728046620318385668014969171942319920436604020330951876037435539166157862619063101471064206933401560054248833979723436314603026646807704937095229542984163272205111286838598716090873171296995108028854212026987850460881976312796608304977088619008920703692861665792735617915819821820355338082355191843632238961958474797683072116864923730330979884572357625608040704663296829650175947791895242614108211725933265702293984389433109926610108957546589613848216962850852169508346148763198568171007653366205242680383031843062029894767151673887300232672155423142221525168457884387604180400451654391306587058750760860231912166972646761346403467687460561305079308110736523004529627204338450756007313386845299300568640325732342265596947383636351738639573057911443488828631245193279997535421901917671369831437687550462323588586204922700964322040591708599611783246624605542538482040510978096633543346216920913811561679592998052093038523818601228331049093746794874234145663817790304839396247240648088080501682110848321123395187302948946682120636965153650109486106098499211546549732464381982787918381702147171902808977614581530716045504261762314914468657631403608525110707741474762816799249350771061873065580352171505461065774656877503307449385796019060913755109547207224374102991437379117357636700147313522940453585376552173224933467740294443676418092220066447063237982706264976820749139463561619782641100147880033038060424406497626729967032383766534662469636327914516071739429516660725130158122571784170688514560135837023913797970137924499079645671166002438436544296177386649017625484683576537010325850986648865796266319671607883936815060703260592015156383512073903663725679697045495884290983280343823951359487350672806786210574729525792172924985956853511215288629375410464278004544217204560427918292785919979893990687244732987645463586494109363474194879832017631176659005007680536485517564359592037349338221021405500600508182532757468116220272762050579257189661283977442167749193957750963266073396495875773860896422098656922250143270796173162797681891860591829205745379218868169510682469760433106861825051695827948411220117611145786798322106978042127634207572082330711019552112784441674391713102453872849370980811115314076158301756134963465486356087093238454910624216439359327432963710004611117762897292675264006427017325392474966299526183901485325005039029691046578913283693696413991486482630572928398201293845611106991183296704923952046021657945945152638701460349194767040910131582266031542958422149044605188258648549979540275964208657630392502275187482853996359877847611963719658381138255980213797266305815007164193526893650286778361853205739513515482935845752703705925610397486004818757663019054387643429109011940810091195320249537421832292392198111654886700486502339454389733299690979273306595406382147696339744853661507333122775243210364512475142102571441895510364020366663355894679319260940110180043308473285490838526394437954233919300263497490280872750347938162532085570204931082729077320084241553102741404030868650172252262157579757078149340072785068115109038029260807830554201541404184209696487986623126273867624553008035388875044283380784846983780550223222096759177281285406115911701363759476611250774400963517363927910526535485173175778783002366887176270326727352806288015920540083705122794396512506546164144521609733754173090780258973948656792238311964082118690153149875771724150682659643601236995112433820239659613460978497008581122770059563136543007714145534480108859603249477630036980607291075770532830207528888692411290106309002921145211215180402365926666214403150004750838372778688247786479635497234684366574151326762533954023658829931066270254458651315667587458853670679069773475293355460039684724849113244383925639371252882043487639606967711636383765252042222523538138974357368261633989728601934492939131037531253086700242230513277432907335506087367551983745757520870553249285780104461543208570256167879094019732153526675931037465405345851181889314356731458955504107595071518044191291923401882907299652566216130932221774091089532034657340873245828452894719062774925231989322345966112675315434937485628631926103356060589380754473959715540498004814569971432730305249252714987895396202349107895510425598868034013532358867998271523555309787194359914928454548062079047835529676419633314236688433261485195445868134944179741903967644657085313979336395295993770822230041024562533467522072286035251120939995904917503934582481718355014818767713310354866821394868357694513211017532604684068363716097576830408605184319546864919891384232590177178162159717027827230562494985488973217236678019147530158281413584518794687470868059026188382340031267421669956457625716816871947262469527863293900058982181858297184298544154760411027337868322657297421654949897438086260901593412352309087172549036849040639584870203199230031484497561468658146632675176834532347294641015016788580885773943598790042565775802325873482653538417563152504484337143019380580808097898504576148557002485025978345275614271243106677051095193973339999909544119891669304197232003085972395959248642744350775304737159408238611824177035411340708518043674044785458996861947692324429143718958200949328405483167353877018584104813274999821557433861489211353881535124480938109131269114317073577171784303623343736583307661394339016516334754975836624864846369688892462149906565005363180915501462149233742687503267242994665445942277358878035541657449107723138806970054704782644637740036629191293367873904128776324373385479525295419624482805599012744997416620998479375592564774600969834231154132338097411530090684411974585069439674498154746982939867725106844816430415500606045673543707578532245273732035329111317883584421257027002259318927626777553485247379789124665554958938930877258309015232679618575520644736681036516547194576587398414791974293478496689523980576736960097979115113521151932567925304195018893553692017809211778643822703253126385599634974562896616685705700373671743982839180728399523725484817499250353392855720237916176049343974067466097891174958103508457384370436061235878806017573606207794253976501399832333665463004930526539176090846944605044255635906165059219782231359339738520525462113557892844156876420990901018620646966499694839687874138719891857942327842155112511746697871396630238875060066392400891061243920706760553458966668202512621655774649109558567773294805886975380937791523316073330428562330218750659082666116104010645216067146958885048337565818113742316242881321159727257318572732543814251347329001056392989275411943080100993364199208299434938207159248753111687138221602616426785504044393743493292968940258066329830987315327574016518408420331008110834708050806212681324683948359388041424412067717431665288649574274741131749380872111682227477085245695856821683274363203423663969129149929803232593369002943939716676823332714872123956631905989251875361212815910550606470659268848370386739212775871978964013266563666601090982267137334290102180250857288124046973993184502195483553339666600990123033103867083035184349352623880310615152123846792898530817538968837804992234443288391429766341340716461360040467217777427092970392078118700810236730655525526942979504536602498490448672488656458658313517022570988595114136495286664912040199059818515048974035618077400026129227393781777237503536139683441725282359444308037414969012388809645511596625928250488587622495218678569102695040145017359597485990129122605379019926259156873133892108193011558083827870624764876626964847133168905955342943496529342517637214528059541481577705403891274998061499414387348141858815600444844701195000767608898647566874031424836813649360076111057054569458720600172433789721704143956677535998590438492512555198243073953202526867721876367176932812556925657675169954680932838384346324515858109651435204479069317854029569306961043175196650927471645389194132300349700004480516423025701687290317094665780821535699269633316789631971514815578048119294039618763420681969127073982782126421058066394364471147780064685891662605495603120226109833858478165625316810539486845034102704559371052319804099185015475254586764186117485262450935429811732152605363087312281238293693351393044951727785611698311226379312258691941840998273948919336941485336319329319657617975664950514887261502184195935868827566298481184146296427944993669819204384060514436524391679738022150879281480862633663263882582712703162892474541916017419169957966008300129799769383338917568744906038374740390648197588204984809829439708600393961391063015885547751193951752696985881289518586954549772773151783068230703536875772574887464460041834380703207673162258749147339328755104388726207519731466876415829821715028946903406840632052162182269155207254374094694465672346847583542637237255909936269631888151570896938067037604043862490365213121230816081817264675347012842299267699240660352989750529835649093537938895482610403837621488511793705006580755356017979261523253665914884982563408005125462938574378647362905248323037818135570412155142589904252144114116833581670243160608046844796245199676421495094272812699597216149604903916918290621266856510847113503987505780574196627598373621269496717488991644396860615006766070241227697747207671124011040770866355884898902055550683148009290536875742211778419011062982198508924453152389074381017324727904062005197295518143487448762062898901619308792735306447710637566876059976186638906241293917819549748062710220566849266234716366071534943751601072563697238303948933151478475296218177394209849822166300207526058281309622073758901622917538653916311905813211077646601583354032017687490913407841183825046192228612684174460015831732218127262250514708402509301966060437110379368005390140085214258624906578924441479283488484243095666572873058209230664690431359626329802762835785804186335196578151121670660456075013918867920783802465264422023152938318189417221119243551123793724726682969976255620724270914724490504844149891771564057950402372083770559504375710167140334700897464760996836397378244342900120515234536056650649640606991237323149075209306950621368763806335316470126529950237009452136756474907777633667126866774736618328580162214776320119057782203856310196705997933094463640325263608050994324596676654447661245510774088968836788344748098798833943399094311502849488909900454592885257985364567658350146220849696650676143554595941412294644801317746060739057374686485257919869059067692414658095808811984288471957625291314302550771629529253433084148125569526750281537127656994257234775552467264780614772336121241904808344234472482895801348792937298204037872526675218642424890473019457322782070014728624263305384000004416749835118011182325097352577503838710986779945910271688508378221967964604485371084493124696871273911362302193706041933320028717061659160574870271259117851324670668100258759572527760310617856967652789364015795752305982301863953009551422161133232843354682450784440053580187300747670344211817938198001549058797452809014104637375837274317428071530918530751727110875108845471943589584474918011826948113322434419334296202920870698329535067467593376080603487298263564753731106043827373011079599404795468262115657990605869933167172788780831499147965238456827430388228694559450541082634724700164454664000266802589424597216693901029975902753967593266956452779779805603595187489191476017160032683782776139584319530773633814071988009853255410956737009973294705550238935919926020118892854385605051102642658549165893937397127836596772506836070932236940652272295439378453683469693158950264080296015832327151708355646534036772409165760204008363985731388221436403875634639558245816501054349564888695240878467709940742972010419223692971820499005796360974685341838193609136059130138343541373177127679516399542037145584951208413579465499226871690895940182497504750650747829509561384262399445999205622083480936699968219444600082668722673076748281208667097891562199357065420632423509655130609991189823956141884468793293132882878808462436241377196501169229369442898547139772040588544008593261828946185146456015185596079770744188256902320585853937277775731949818640442670344287038957827768141330351206114962790521786988246585286050530616352543700637136827915527391325273916185918333757856929840271242907380067568465642565374613691452370111413501293440273580710645581912349137708123716888725143923617322556601617746563151843708684600825409745679335020657873815935916519179689607837153102189389291815678240838694064647840773109908042548245300604398817664467185369356815194361311611989667957625750993650402823917119041991636830789582323989300380637050025346681671499816694761337083383559609830409609215808481056650582932166162237660074276820226300530041456985853560798850127118490615523173617496936054263904445144396896815333778066093447628365672570893315093265108926394786258121109626014599678291096913103399854720715400087949276267289675992431006436950274515646994279746092611169696166884318729960645478682523353876683004805190544915238204042314465760014793681637107341453675384907564075288193489536680673588244580670999501293216686141805848116583918804233414842406329270437603698740625311136762082789465027824362524018822740175314435218755874466355242591120339538571861175381314187090192470547968061257356663168965514118412102482359218421358317510933172401021660818127389969692267511852420057399430699462306256315714237691383556728664545010817035760410985184826776459932150540818475360849492480966447315415075680358437969632112817522820491498842168843231724565865592125356326266098980372977512256268145550163136375826964648784297769444899332170463262918180408148693197627027939774494795177273545220062752161782434682157400964997139667113373733349225721962274898512894611066178229032880222705178216442149828379833041456310856717948854876048060574938928156712161341308424640886207782417096888717027041260777331885260765442541904338455677953032941900427094325149306401152478259601358603242463369374813735175386208394043221999957498578535351036531265830794573054768197026577244148293617591578933814364649736316260482402426498577645390181009479187328542232116024183526775200537391132239740264801779245522757322538188257235047785844933072068384213854553950624061532782089585518471549156199433002964041145043216393375927151747312596074538253234191194739842164783407402824649981160381431285383264572301940537463966208776729819440266135708240699479605759353551717601538181301719166495956940617147242180157266157547546293807758523022301606832159089657270893157323668020079518752696936845784548728614175278370060962502312172536639775986678411597653366017389083990553710399555750450798511397201085609191457079939126997080386274953914144243861457645714930804504187729106836331810332775230104742492973780170790623323200479197480125093582016800609160390088296204334921140449873868677378316969353032582675848529372753673196047976743842872099841980664946650543930257107384489450683286453345306249658189254614334052502378909681720133914955720384551722556912740048570825342638399272069318993847378973995877945285245475686929355879886101276238944542619573918940717203878750812928721322351558224653722243245051965167922062037274804346468933410235067023693737795711851017909598660266636919195345409956153275383594449407633465946322306327572716871337876047569197777908664792194204242050622865072922717828458781189870565272223573210450888732548630884093488645859069477826881865418304440868539061811927540007306641412227971599003996099584847943669117876404479177850044184258319592978264282783462481449312053392334621497341369937085134346590527154404389916123304945238702989696222857814346483115134905426541259301867623320244219459511123999926039000227809762246833894327645987736855505939098282683497824517864124451473136454007436852062242146904387085368409622608555271913105106867451832076821929074615992528202902139077427015771199455885896443902080655816742542244870746180107131311614094688398220898760740434305550683783439747458627791073453367388952613006293786310099782652222303590464575978048718971504242009658035678744663414986601400839563385593536776989071913122146665238116430089512683279299618487921751341134545622947268372910942716857998252790090016429582143756102228188819121936313758580452519729107905168176547056319040750954488287367254570899971057594273840829688892841132141102342104487100091443314662789270255420650422757647634911779730546033558199317403410361108094379119864738948238855121592187755031155337611036260877166264327529619151806559299789270018211199750013906622200075120749296914064753220431368548573571191575731343487708855624591125545759529984548035783320486134976761016439024482242475609778561783377157761397458272842261893854216719387342080812073727500873175139499858679815261830970665074804650020420257595635981926240133254142115227737656373146078928333972667186778971657602230361373797895641292276928527697960521196369583912061832754825041526150217770673553711004357802629395261841735979345713777972728910198182384005718798705417710901292174646113402538958802980332916275096007814949995972866124144118054365689608736132629213919972950818856106232232174285955820390674766896395511119557405693861960547901636574677291828801698521010152304640011604887681575419141352725467128564161206373986485358974443221826011983722241984248058110190435666766433651253026772838764235997174607432460807099511344643567710615004335189498728900406872829646270624964394174730705577450950704569367683233949799253346104636359408251244145016479088592443272329983181420944283276892280356486060249184467639771419972734529272947426045551888706541370958465406267103282410173497154079402548499883414443470915828029825594738978522141705903681945887996861728435008492912323240167669117667267103908026407584771823870120163651804402594843964963206024071891960710844270330354816860537166359505314336103541046199399734591806574535039144264034442749348055683416389131095041168628374820972509959663573005029589963854310543537236867694112316347209740785957430864999431315177519002002207555830044338245714185786537319088791832856841000045714051015405493653252382295676627248893437685426318940971130601857335549911537620141684212502146885784017837665433034238059990750293358080719803742979899345241485602497832973619870500582243900058257926833451794612844549116053059254977538477886217965105733265343386448179384733594440710740921570279939367823139189724029927169068359632568449563865351069441174900603483188766333464913491464560002469861503414740098958370144877191332425497454699199913285971322497222421797155952573950164753208514252711549495980550793244753708504449372445632895386729504591641496733115603439169010891632360709467038711218978473232784728562265853208463222777241195388573036350506531349164786323075781993711226264918888041546729259087500988380907598249355388935342155525244824370690745083409559369489412841735382914781668145384061049894647929197401736551830742053290724357171166252556789812288169907902086177489447022227840981976652232304096332765372434414042993494039182923092063674401691354562204349639794275156652479465948506823123640299073847030952009472341736159929700765906795358437371715166288945548032514742153100572745601758715571540416054046579467629908865881634044741599408565154284935578414296562457621646035178452363874040550653613143739056039029153640744481806890861367400894760232199246845383508406023454436691627044295252564823137785238178027517333527748195857172450212899634754322324223834324234161535161463649028355043579423915678919629820799099466626215824650185359825992978988128576477352334904169839639484424681646453094570692851992777875043772564839938438136272541264079239446357640923481207554171881399538628686218156290882117800523384609282030709633134256312569759423851222240092163209497416412226921097718541261121979097830647118034569128426829097538316634836306993126104714400788293773954722446214655923613464521526701833046518467767868554865876252760839953829582377443059125372104333363867992098295237500359241211767294604491023223497776957446054150414688293070887990695850467160208771353019880814869957315469801004770301064334068564698668634832926737375077127721011139045865483847930656076602226105445911716451854583864261901589969335676925108965623367096982148125969144989084142262251585536881257267736190765199947935919195520179355143185536738794227502293176924339004235847534808303967917934396159699097794345042976457226780884536925924989703994335741647401937845068980104293373094227055089935662249181562279181627574327569413585042809238031856739741798004850865184944678053983679751825048384300819790308957087405993559285331432175136937339556109787303330082063610453985718752163389862620106142154026325583158998711290212916132542234468898696573791918537000184035718814952071354790580185406652082142752936127741555005889124503303767217393237035300826296211988869679870705814526936100113165012174479717165922228542031585573848087556467232315643959736701336138383700386879613391469116932290500112368108654579921669924170632120536565561473499980370028761025810906588626935104719315563401132529419339542486259105705014838692777262671418939665197281854618352219371618876519368952803549950695272352087413838739320676039140856946849887294524770525174302554858494197575674295837259588236932788558437895095922757998529520933740662746359714829019984425793006313121919208909552667650975591369396299434755182887223087136684186508553521994674795423707414575378151885521071901289036406893087623147768832345034402468076810459099360048845681878579728725855736426735106049661929592261039406038751386939735869471028266730927388673619540983767585631992326232146296766025003455354773818146879139559812575093714049178537508250826167559945669049655898432471365972669233664019071485952634234833362236415332736204128089888332976402168227788465770094465147873437154135075075311427066625971107662484740873792843464290374150340080359627570964373232989102652699030425797653440032096834790290868842471859152516192895516054817272074584696763615105850123545966752880334467122263723897708645510673470656236589670325298336546329601967897611384943343751945997190012532457062144082593753489303347272189280389834303430595337065365900027675700905972299973620441074014776785217564228587840543780220957454219782998761444488428988555799014508652883715381592097351839302552077175621109986440288656264340122238635323499288242087126166671758403715044422108016255915652810297732254773450181386221895671299801239993834433911298875072019189610223413963147004064743004503346453548721945743643843212741361689868872223730789723306668198067228587838242970932089506555890594127062638069429172430529052702716530117626695276779025229003948925140724945679457271592588301423357567843213631273501575837059545382360343356159638815987951683799571881655101595369462670487287627088198568827356563803336746955899460845751973479119361356684351112333676799903675738958336250150810528813554701479095739387169792717708727935377682049951135242012321135697872357584239504907100109408843119341211278255619477884657895653896467266087444531485328019132639442479408841170574945730260396077074427846184249172410186273533512658214933521870364070275323578915763326490835587138288497662903499493662327488685008573170230143381945135022346943517192932126042602886569138381903409510425981184339941465516887456555367758371750927358340206098321965924642367117949182731376823410605698946737104753869086161202290292093318456217587844672968842681535868404247185152374843436078428370188348960270293536578068799981170139794113007732230638636261739743017964568059427761809826191328968069072428406210162776425099907268393567002133610270001424455277038864307932722585645586563190063824872478485339102741523065195656701866170033441600864774478842791699957376780195431007081703723389662174436041867775722231046159846928569698039481544961182341929930499942116846626393355760133389083937008360200517922808861309306418150505958527093131272453540954107569682032121013001853845504367612937519192015296216038306444881809292240998590927649115701653898518127123709483377220515437802818958236117355453042380733685302131439774300275388206513573139721681954069273960401049813257868271711344136912490461280869097875562765050979292347170956055949731379901591662688034028230798972904962776992494602344079840525388628155467501064521357442853376193837663977331290513148712398934181886654009987837502450553142796660931386389031107043379277782826539503761356892428526249611763847666542201066111818238823672378660715194198857343511732434580381075539156356432161648856632398013052810189043322528371939144795473038036736510116102463505993924625079377279383982861486661361239006587721791651573234189282845017988848535037914613144308416820664173047318709804940040277775998259848466023111561630971372376689666030203417748085598257555432162702154920280915506738051394028346313793989337589016992964333878956870426182496879216924228540463304925815009989098547827805894936345930380183601419564190829125392118142442257957711965029514927270711056928620712314042920732395652331644875531816757014521192659646442866633523348616004906582854981402099500334108826338772881856162389915540319304632152201148855795508216819136368174994202242299297664871548619737529424214029746564645252665305667627339732748157650536062477289388529176242602232466659669781444735734875537074506626646776881741842903554322102228584275888201666527562477817887849540543623775693323806425279331925611468233064109132204937631325974216407910726757774491197649903278006751714727718718751301313980855561461186171685178594164358480257484226042560058601958442790451920045661088677927069298318798768926708554657991752767481112453182576377095700281208220666524305836722817967776059799209644585789764558307149531446180589668002006706143666932574225828497900873035840934875182587535425980326002058595916846872597900629209691178891088679271164523792075897794034108427932315763873379736808725948326049787605198057328140349716459799141073457478122596160928456740905918465450660321632511610501839284096385165760627738128033660469169773059955791057709492219791913635787978345015932866239536229218156324437304860946445174014800928176212844514236460774507907226232814607656899214490463949021713414549818619058881431159560995721488708524636658580384905404254984708950939178364155642165238561671504246939097106202331625196210374617225588418414179609611201649602333485431513887495254144465537568268928125571365173543906241314407830953952908444154054655728233876469394165776013827998487067395971807955450621414087769563273783832843777079848423324848508982460238488665855732277351712891987150482169116283690621658656500107924368762727763073238742165261357916964343249762452591996142626866470259751967859397946200533247811515157459789972811446238648822246782918520113876039337369504281281535466172904144330507432296274792829960989087872619594230655712351963572410634056385673175425758114512558044494416241167112744939653851099240718076655134080099505236387361816189049775770994501132385908220294567516995758485167143719744888078636549580715271277780013690748091352272486417089865695415518796852619987449219915764426947426023192506075679975073000196682635326618631318081271219990524029089855771978621259667812563361774376812914018092079425161818524502601373262823421924628443112219975865927300748832320243472068426439780440936496243956092054254609405633418106923363284821012799867694576392765813458143604423841802795657839766265598655975825635643010630723120893732597298837986697745242859155721062145864159104607070167938489235033174911106642370809869341411278609988458400529894818665444348627628208142941281355258468550672197499699224054936526119446775905356804563817795261527655073427246727422971380907082653379472605528913262736767901602523850481252225590967848700520881132971117539552277775662281326893564562526916434322201496266831601630892867127422951253372276092149968391409193064583391231672550343307877236591190978071656077271389825106620751189265435606971465633740406510876356360209293266470936488692254945158121935790635176539356718827319014522947627056251109012282208376711390719706458574775473547732314034592038042766906107394946216036927118884309383554997256985761002397582662459729214736798771044614243867699014361288928172190863030330341092769951301547106787065469947368243729033043375809282878670048304857707266055259091756211317933271738021634252623632559426173333424447511928947858531691233770796778120049552321953488496918173121459713343527462400903647035253309128936179282054164059059783585832817982293673574434667361805667598390247530544190564159166772163285062147601839646067083740389932928267594930034422644638668534156874861224470530510605866769504013187326039674968692334026087320409514594114617007760372292551554177810748985512155461662795039934510752314958589538984645752645732265632630036683492516003167929163477009658659158987567130231028126984309353894014126355132596779990602549782767158486894718320125003869811819482141067371015754838413706598163815873196627844319010639127512383809041491107045889437443983106781972869484280117391408824124583167518884566274222394177915544419241046761569407101556301872367523476578955261173413522566858007837133188132115889026703379236773141140725060588535864601678703172165866453424527998966719368558816110963109416253442141228244017652220449538871809774950544882411347756018149300151686516517811140639198286627321171180158697655014221620415158181446913235960449575255946821482301394928593477838596783446880039061856510947782354475048390953437054926758623262847683398478489262124081703729130470813401663365506965917443669997202423949184031048856275399581444222729675569912105189488800418209143178243969505612702882569263442701229607326736425598156139214162324700867905192483554015541407268330215640091831857993293233063991046204227325572937899846210623398890235668033140270349316351734640617514561231189901633590226927586345218578774044286973416715528825611682842954769489264468635727995616056887411914876275448185952195871320875518729065580219092449909328954394083894317644660420019873132187740356902003115389306819369325918023695131159473736206361313160335615592761928816130534695577620638672983363492269011627938724749162252524396374003519898423830354553115521816427403741447862256521189804169323822448339480107595215175738536974708040705545385815054768330464443146387614675157636443322386627766427325437118682362416019990557988508278411148028127356177926055645865887568025547140316288868774693506945830989723313913620507967976086974363965744243313110599359371653506267347289514986764878204501494360192948052670619577884745182480994397600438150699587090054557644144985873787419574110269955241948402384611557688889181576860194448877522964401604987231457093442878183342107279069294502863292525725887663450215393956687452821897359185898754613493692888567330810752793960835710312289377554082457652957424046796213219527585457695024857284525582242377302231612737559946857731265828303168278214704129604969092445921165055463580065395092977565134857285514851165760801035682956537056471906670971878022188803800447919439159808242047382840503502965465586665129311689045956083005576423644641509153355498256805981647039400280547666488761045059796425794674468204959931386307618359085277791814608915491133214256579285790799092620237734806270876581839030123247921612572937527220070864163350580756292674567494394028406786108487244930336392068835858081579514174052073563175856864924183365734497834316374450903116267488747862117223046456343692581873347050931731005164505038854042171242693301995324064719474287751397949264329192807735643903730224771769273306885300889997731006263041375546542211860194670652616598427638453614577457046881248191567065255275257410716191774284579016532515734231129251126013533792205956026386031105572316497074847455871892872912996791202633963694215538606020697136145063885244964342314408612511211369613107865887231897814446035172513627246116233262083393372668956630181651200887100824676983159397312576136940938766050101236782179495323447010545686742916659215361034487371757969848114648493876324983302044730595405920430466459528424686951078226306270988340680827998899764341887682001041136177898937811105070824874983163921736753359369799413995935595240005937008182646902708529369070013470115431124174652537983263966744594938519808729185560205185222663598944152939025037417130336185688159667573665871686889494971716020075406856632756505630812587809271268802322207172735851063525688509598126406761916759420557129953972711093297997517740649822258101708748800928018186856834668632207700699219777940790460767633839453676907201404683980927028982270312593906551058890106949290456696145471433497367261248822750980391143686241118802131271826644929939651573344066295689235925593842102346891405175640627095622949362792525856868334815004643071166097906413553407118417370466714916645706159249134792467676613771999266179665069274175806467519054189640157406654912788652285042682910433621134317705916596511798216637221328431590681908690044504642333367336827750341352550097584670361526524661516435103480398309416443732412469388442888004577680123003895552229143736132918258192231878733420114686391085206163189510639058963764863797224110337160355325321532981869906832875592063456196898963697774025184396109832348326170480811216117159499299331690670095473756575917210290127668773260010107393215560968425292734644351992399347419301120089176317355535339271288271066978448286314194253194876613095935253427223504420518327256115071375058362537269938043461118287233688092227210900285752976722723056046869750021921662201543988936543490307000368768682092096321030333235138774612834586988332321403542653511637618184024810583260463415494303220704261939400567637848977071292269182700557221611537866919626821169257843416766169953912747694427271621519676800830049350859879298104206670714057780362557107804141925011307349881027755156338850081787920554205803823554119989385675038361163061178484803511068485462247276270371017326597538133536468306989280658789469576419181394713828715125361713739928628830100368871815634442379800444023912077293323768933737982381296859513164008364878658313141802454404881728406703983730636573494981963492408478776464225959435522033927710795784689170898245551150081073239500670444358967118095140190019967203747163842539332527657272147901601856068896534063485113119012307160604294145491668380706742072940540546572217072854719150549086692806311247079502869855780613757501765542576064027567907310763639948027486541173355510665129489093248451449753679481530757256131462721200890286593988344029953822138565378874493076935552211948353964767817802836602733504777852345919166082222341611963918180619902026775180316513703192563803506979899108078355660720419105028027708492503767154630156865377937127524773648306171738339327693615087571788979239981319812923971046978810795245071871604226394926787219671668119830972553123362524709754594765309030195390870211131052354583640273802087068604273114508025392260561442997170033643220038838445686273137529961720978553306474769241923633712509923081152574203564967843020997618675605294387953545955619804282975691841541622017226638451334808241766793524354810096428949907595432549955014828586555366523362877904576538796108371354950177451775502129795070849618515301239462271184816963427412566469355983130672365529110396043238699517185724422606341453683280969470278568818403333686040586953328334515922549789988750104623575019922112300731064004462170496264539831896305379352757903158157975474192601746272045478463950672909799528232179380672915097053407320115769740543401138621261212750158115427176450851023186299399585459699351337393547002018182884181306113536928103719926434414281765902047655277535817670389714492612970975074587567616364510868060276410905034201030825308896142619754225242719074007188423735909256246098816489436186646047959392686253856607544679738161479572945299983093751654545244073826003449527821629282740366512158460424535946593421655581089618223936813519961168696981609760054137165139459882110416359135023656227656889089756528750374156022831788891253428012145039571678048985497399397334279713922798510277033662190005769600005306850689979951385804585201305919573501433541292117384596851682894539060332097842965394233031690244669546514604440022434351351044771809363828838517170882473877430853021238656552011065988560660156657477992142472699363934046270693174471782740071193142109563791615914452610362939537720978166309008093368554091867963280304249598770962513163317749052718422177865000979565825719162402684265811578597671952892476815441750261230907596582817349666984897503677392186966161548376887915222701281048737352607419984157192499537015568595396252865315523257684610996596254438660793109946601220251021942612741193436447632084641904103360567648821354363744842515379859350660658385774362634604372580291336953392474725711963730440958458120408865886046152216946402090876121287200940522309997401684319216654164673858483498405365763263792280605467967617903878977446004999499387174544323760574018335809821528241799395151860073979114847949369853857930913267126698406373512301528558803673630902652506114668517343069328804125215135315958869009692176403524952883691767871371422801408901567383128361673929937825272694085481867741330705907064784541838108590819530667173913759508598846714454901761681446964105960135017913810085632565744234258370579013654151959668624995915243696014886430627801870788278120047939508358207791177983759663369786421148925138264727497354227172543175871657501157854148161001858355649533000546134166271711312686452151788168542228171315326584208557928094951009520430643398882790848002901669396476346599051116165054329362733837393508324777475098125681068303820674313310116760296763289564127190039694784316965234886455893203442128291084307779999999989306087386385954633099750587720461575673260847859867896040657687694028351470642747100354008366425820127014463369878295301832720973266467246106123719858489579460460729380663594169188448194873136291108217603969910784270675003712805109850431295791296322128532718487456486117380799828610665070067491983456464679858327867492606099060098289956228005049011036616865177475273558713446741397461472012780996468179629503906108480871113594781168666054048169649445901117966656569125023156259322847818075414425455642253700438674364962681806746067703608840443503061770794789489990308175690758283627635801727223969574478222582583134445752786167337143629192677483070206932473864301942271636672870172600432249939268461923069418876275304859978684329415405920121461208876614757227416983479198800301142474268064648163832680263382008556163391404295776429796430505288359842836562218203055260217707083503913007275773237098488133684603269405237727236778234880198751666866488548385788222999634157326467900152204744267663927080379751210725826278670325471395776861896652387855573278990910352275827477668420685089738303051625530615731390550103480428847045054391686643761443359656547189133881734120250052002882842711904402396730794321130727877996378720862480213272825817728534097102657309043772058279022219374744735146165011189385028757913042259473474031600228004875659631468925846581778090970287813513733486716395558751327065415891112184755932354737113954536464718863247799424243275215311229580382416433137925778781893311520055857762553984339549444157057121232577131539217591003785468254399688187557627459417284680909182037730640854489669421481287111529109385131008652491193916989441072686846225661404094871487837756874406291675659218258913263890140423809047166740035110739892431146707810335231162572139273130679206306388019046804894051169995271728434728857349318672679729524654505641533273315414859193726710647846800180192132852711898482128860944304589693724862010868178602496819599054035158022932377150067756110041787667599931645102513290918292472437070982049086251295621185710693943475851867046296166342365232633221756511162157468832836162214337890591783776957866341297089833978660771392109260352434629391353800706824218355783829947014192658128971848050517847231025308497132280612973795127739718806806374038899950501867601072280146558261531829839449241071309093827250075887243462595175382562852817804701499627280192652588586791182620524994721316045922197426855978557049199861276086308182102399098025759842518705182381822728815481418759255205103955361842091402770996058346940438363493695411871136871551394234140609725956049232851074426585034827657679588350357358918538301013871070829373633959744870827107292062429297451877135190359240826866887926893978351966327382078476786085372160843351486623375832581471397871453220586522552776715047492127252413488371757173886228356573637342203682623178449870503657992602136383765924489906223355797821487580358978501050634393805674754288994267992121690615746766891916770525660549762811237937093523689613611492690009429644006692112506432724784692478139837071067188515702176534098051501290542509701967941162939089847042312564837905260198828891591751816653091225629450175051288684412815122557192359132227553875298719130514342475340331523207511387928970146320751052832929907612173736027594031629014470558582098783601682806680624494017434241261436848630489019321269313678889208405687229667666752913873239249961446563003575560821075581914192336585457086166470930705649665127416309748413690087973589901613004039152664910577598743784122655240282893973983596756219661461652058694375362237868229219857839650345736748980564613796535271948994310029873881678474642761729550261887164449284168958403482906871153506400973301605234021543226657437178101680219102668438736318163350434870479432799224304620457373602629496207141094173661094519762847628101445142116908292811146277493656550981548143239255834023102398766354401626272414469337068154241616981252553249309113380948273299189352100328670738668989840601909926842682748126686578620582917102558884746548054764061429153782661649092474759268483363837621253098064595403752055574934464309489568146483308431678042508926716570924316986576645254383658796666726508887964740361943571122278754668010344364018312158208230254771185370121032482769451835488630597875131031389136163127515706334686999659368238064367932637455809440548760507630541591273164845850381956683976794317623606224752658995828779323592902142714413092812947080352532129233272059394518046588191986669097702958263687684571302343949216187496792934550093092113274301665147082115038067134846122123159858179769369321077434683487212960860725549060467479392340174709536074239550666333084836029285855619211133951032341010379037221867724646207547596044057809677285574912521377284492190425275207356251650292915989344837082429042833726166012137825445758540588630091435746637337523957570638120486724063392549645894326518527515041251164117175828957681544709166543818025703477923899855156664725002331611087164892028900827425529566474404753113768722563305044963049991731761710970609774437812317893136386495523884768227983798289286622957814856916182590294740423241578556550956376998723524516991651830944800398932869446462077903908232486120884164454682806105890112338808970826695677979275479805566157113686868683824471265256307648794887836280548332467848174642266808120814539685391614616886420924815096386122686295441404138170581382496791769160452367997529663419300223539494648415220311172251935263220484307257127417691818624451464268111834556948029605200155362308302999000581261946560200827018998625564893283387682130700028669825938893543301229367117995627325674203315233076600265136768901389112747436927966315325186273774868544411802796591528138107216294489269182725610567909313995116591649920278081520728538893556000261453846591722840016894023810858609584400145016686926032064357917094169102689371344801815561009099494812171808436030708262739550367171869293962065716126737347597658858157020649150515215357459938627157650613684806401151886561221805446382958242316537492859726841577056703279873707027869801601841801580279004359128408180129717400489383944167152045359616400527554955965278295424966463461681934024728050818650799343499008316703055873717338413509377508019262924441465493972489237152716094051690966766723330125122683419997013472622980269193423373786843110891424011542878616906128629330630422017195118291100141699235656173283895394234661323560429522483971249675439544730730519101081750788509655919162563214336388334106657729210290429682081744344153422726499074793571145077408913481997395012945607719971119632613104045926659311066477230799318801328502694817161739885630424405440794562960217919349441490064910735291997605201006690380785453088300318339100322267226942089159027965074953638985403964727724465958550290541291426541818416745441235982102326919132164187664173925750305765566368887917500204620496391280264882345777019227251410789942412406414483856231826862168279604770528614125150141775353212891322682355330007348268802637461000557476810180479175741165473685671996280222862953775284359452014591455162581740965398173995839307272168183739131124134341364091732961455123146399570913724614274367934289339463454814759648656381118907397043724711827952676814506822726712001951738494980056091173501374744821382296906781370843576672662175986714083493899861637062903939759976063912126343767537791160754548512611726743840244630585049320694073739906782886670729245618570302331998089326572409151919049270768164461494783686546245970277897822181045305236043648821815274682350437541053375259007414603308556619618605622004063837295533018621030270748478040884439074288821602121190629163213232990115829230777136579169138258790392852216529792886958434491253390357112126209321416372103056457709222818914507731412904821141619178832978793928325952669435018415409986055573333721393662100742082964255045758476758188438848331708560291729171656316756292531716598368908881955065025161168887030655638107864073185401814365824977928883228495082681481087431459047877636162057004833740834397321580840013211707665611428500416742063119844709816691542853589271576421304439484461768721234766879484135367031275968489310191890888288866034431639896179221944815833174965476576907754272756974889900122289721119744676626277518773869696039821538875379129028232595909581407460087520034319399589739945871872981606862014487393953874217040578382304654057501517216077932115159658474485788546468583925991859052406949607546130039889853663692665943134854152561303305108289524935811715818332898068914887145000609658516330611227843685317228696466720766882506474973660794412328092144512801537974743203927216120112089775323729535976845753628720492119516201460421516876043309898978480893061458175279331291657738867976144267465724662061659493510621310056923367456944360896821084513718749707011198842145114574087404730284632242532279480494770103201878416606362456209335925783207141252531654558273036955771451979134793661652068564858814750819495707076886599861791565961210258336764580977968789621534716712802532139661361715111322941152854595860683281852827689507940269047641210414383565263419474015789724374927204699401015462152366615896722589070509787781018647392607293300496747560052914423875022233915064175438096012823019022432525278318021546531378676643633618532066795626917768499641132646539726869658808122914079979942609591523557155878307872154035803620003189165857216714855243932587161727187846385882754017226719283621859864042441640570116029875615314346013333146389998432402475151662273195036551424571781701366810799855865374756671287748485914763289149381173071145481925667410002650895771002708689591895180502252974664553776771329971231576008815849783485192560327832075936677094066567687298083788492585325122570699005319207669239768209497112604153325124573149992665668688943014781690255616539274018858134930497537927174219184385134844383072353914398730324859950202952549432894842227841972291876146612708622039280237138288789350514404008027168416940058328684345958845505449452662788913649229725581687022316850122234401089519560904450889698441316516221135113384885560388630212307157395299326435187219736759948006699487119614377422081962793082060377089583402140569459063335116054018431868298791424716001279751873495201588868865050101224395558557634519049154712599589626637033462130368381678752193323530573507369323253444151760037778129482605827116555861270652629893246563174490750688524400485954430018779456386431613361791662156816784657202082107478355303909281109956059925205933327705710843905120807189176437160454020636717256633486936648866512302181940587182482225280881304098984184977349040600932273842542556923032360526551208975213500870463128982760138481850491480336634067959993156539872462713201734229758199226048072124303618264079677165420566686757146922615807297080610297567121417689179205714199444255359574599918079855919051987299920045752586430402949156873487573015282901473868604539630128685847476931621913744871693840896549723269467889732104171147158969485403293211403664703408631997174646132724077148607706916931570117523646535772003054473370306289845760441593907504480484618445893544099968997868180361537329823105850968051324481580439672348364387132969746540717477732455607858004659838068592449280527513015125297034498567884229530488122151442433881302106373938827289134551247237243881554667511528269018104195560417221404135344533695324849977905573969861416860663913289014248474472742692448029759398164770407796404733970329590666709143835190155658274691212647781691416142830032959303869276366929782199425890394655418717525551018389264016299364497242296636404219087724306283655690258032502194279385055945311427989947146752595496809526535012800524592041086507145731050355640363593090402870506907994758671843779364888902184861367214486958012268514958174201687020752655847732792432679874192156523477584282484419086417719735898550364710353508724342125778344720786769539624658797887018769378793285319655608355712847264385039283735261281748787134023326822242298381473443307071430169974537622921944149916566622818981288044171286971954230332362543333015400482719001905654626757696805033711785284549856974629990085422862573812564572253198549622372093554398914491899562305350805336223506756116234113715737100212034946313447186047006874556928269732530705157874192799094254008962414126065177749173640929536988894254299323376020311198007587367233090798696192412967191979264299310752795893148819235395131858114783378367610922135072307733535282196374811088153881546741916141987127643369822322624291314850669941215144551310612494792642448751562094615359101694793525442151868882250661149811926915270342924131643432309236270042870861338255376085643212892754156956728110592201220637849443336549910776032477468101662628481502054846384941029041560929153649976737325098976489897619007183570800681787870275445644391452670998525624353716522585704004804100507175281365254046944991410737091960406946783995799803513679934220891062614920533178700240009030702290199515332286290490276710027989719426165699003243621520352967747150677365224736916015231538705089060580316488109127827500469893982167599533103823978038883247686783282921558955258912904040280073006181550806540336479234770003424429849188336174579268015200365898052347630972463983972093465903097337480800183577151538332495238702244315235507102764998387991490798329964821156520102453125184877187682572029683889652868632191722467407675736320624136998361949093094116367817762693933686925688418535473016046694305617873403968275709329349722522297620349150227654869255855504758546522379176103001029141045463286758273861379561915675838031777072637698664719179207820612166690808480354797415239531394571770709371361583175867363688741999497644587270373462797286738876370080187436526368433948133896256539927267725403316529904983987073088398562905105811104559163449081079000411311421665458779337175794065130950141322310496788950116917367116179367285019608679403466208000541394078785109338178753226722959117322847798068610727192539527595022259891055560076017903476288323495843316961540105898068351136319568805681091052965181873487889582010892106040890166446977292193824401460164300653463527116952866996761209621760659866238253767798334166751951548560986930111589289175833745815103487700469834086083229438947801953114839718131681948818118541307059480644311244416135719896099447094194171047605738859561677883524537687557457449908498727449753520531456729581703790357106762811436768153279024941534451057475417295065752275770769697220532251509362062574006985721793809652555108486177896315120284336682789474057395309539862648680151354462007473619273879914496674437881396040444177615483741769023894969541486516270281307228172598026623850483445621581573129224194814419560502008339014039843779384273832543283858212980006347186752871976389546681991357158735521530139257252749803573908854745612378073022132769615396714957881639538120905213768676686178287755275732884198376838921780777476821942887018323455981421671082161885845214162616140129771090076168092599352133528073159834953743099732659577383633207637791689971606724692764980857514499855817655386436089004622368606700343947119680424197950080966043683839547977786943869358820269776455726335534503544105324985917193277918675004068138573218396197596106257911247486393888080998661120437584420630761157751778659591295868071587562527714876838507187457073900576765763695340183997222859054153809553453816227255921013136049429407739207742290823502355991191853102955697947333735724728485917443385832078311987294923635423142899740911170704390807934688350138566611016197777853185344631053274297439619775550763770663948621971627680608279393923522075779293108077342762414054602388712441447938585181664630276755779586810575271688049336668798773882904037749278523163944596375324222437769580638156639248663344241595146740871120104547455729123673212548612778720596874368593474665858409302977250086733809088035951820162253703766830661905734749157672246268776961236848776426294680191915980257197458621495510637179294543095510267981545388848569373482927112697599405145117457610120099795332760027152832764234664676342508927934154465166111035329987707194318189065746614037944717344372061989391390623520961508552210163157829878254414870737818833101243958232991077270813344140984023068768324378361049375741254980078894715076907903336974845309031657283497192526546598949870710497146762981540203445272952598212386543708602233971849835274530356887058899593091838908514766031718609908995736328543119644976382273494574446300719985103676145902366540591729406783450947826829336152516491710093342541160204908905305137134635051188787518034246070388479959868332163439832506793992218727896387596564876856929064278397454169137524424301962690983067897592567810167531886627851858228965817903672736984245244113109797138664644145247081491595032931037115545656778650661810303151177529455254283611718998922762542951078346780893040452793871933754424794884183314365122581899736625118974413541819242514036850594780017433475952995090736732023377730579441733675524072695322139918306148284274514493746811332304547705669124686193341483017414673437981871625590566726453070759268349689254423783873852766490115368866232029956950699007317679180170541052484709067156014849988641836654688216473608841309719627558481879182475650611280955257173933347502418466269112593796265053861492873425007891701779068607992174757924933828607830833285535981072473681536348001039150681988161831907590019148484931449487840382385678581962357125307924479466418497922971296297405530270541502831903390487095628157961571514807715845697061830355348219615736043701315914602282803606774572064892834996527161980818146590927690442632853022370086987341123445247175450303599440129879791344824797829206941078313964422042166691507369144364961436375777389041429915027858456396568409382840055835276683299392325026607924971230302802796372350922751438203472952520400265439558868272947428022205498281261944110276683858704688767925550109939790057431460898976135357268433790919007349946998949865840187776504573767461837294602577195790145730619556677671632895755838373121502296126806394362800868054344524314462681606740918211250492744746903048954145958423485309555623365863735893121836355953448102823028933619708000753308634085100491635607094108795021942960171613346612817473142873762241115536348192387225689045782385639534993675146775305930826128128740890783927245527285266938216094693541870143220482763999704344870741223959299800260273108669097751447778810762090727100846209648590809328050653998712624961994272575416615389478049993754630702212877017350079449904617956552956381429488138058890593721837940583681025691956855943640543515874527995955320024428922775338789481071584452219895712785025250007987767945744038322907932027567498386762222359795315806162361738751170407888947818074430096382278622004036620248475035232709468855228460212224209145533940305588965183307397354549849572574222864722691347456617422485202676512385963937050037800619918852062104501563119805118610485826003120812114396801674832127667879051496648857270152909403138991376818057665237476002742252612221749893196362906680406180366900615125083063072568273816037117621161840731396372360926233894411459321944914713790331365042959658115311489745686740940077679318106972388542002547358432822221436431122548180238214608859768727260599238973775054803188671092070510836168637218671296013280461293853709884583389839591700462832641085541271855921587250699399090906525577117449163824388263136317045390229355231081425744587131613786197865931962272381147712138370290817171203801888366986220926671151522643302920764538184985244337916424026493623335911113602606014312924487987188928780755523984363511123355675585611685796273336280486823161767744415035019768206620498324858654914604376255447433778245505447742781111903426077881401828767770490395443091178359655454489310410270815904269150272120701125551082114483605276317665314580452615780472454977078037240429222793603389832359020752136458645205543485698575885146009633695414193260789741050960323517014552421411710140090185747554199377052723960998877602260233720300169894462856708768303933703086397340104297207395052413611678198864954645891860347353136644357711593337002905909851212720995244060137660394482810705213610086520899751196523494611200909890687483002579542863114631811507187548286692030767840661660832375601989779865816010573532436909209027826699211460949318299310761178732026087912736837136502440812888187226139424541685679593353269558663915923565916520573606632251089715382615619152257922457690697178129485184358729730682955486830331925033314873438975334792637270859875656172389708017778477796118230868025374660639642955723048228167938926081316982343708776567713541759672633446130798500650767951258705294415561872627718186628396790977305096700456808131568274765398112062171516063445246582018444469492962480592844556175640041250968391109892224448661261321785771371671955620143708764780529694064293211699547916312610237417763630181325418373452682653295848235295400408403154888101024611541156941203656224808887560915742920580167347973366713091776622258625494404137105402386841332439139759954316986041582472503036890946053974368538367688305521106074656374343906740495778129310742799112689690215076579357109006862197254269778240922552679672723879652424599486431312160390834160214851033884576011716672531470516577211832899496400408565333514976112184617603020582697587223023386300443350284354660563127279050325935674539014576138548302408592397840943403814669306465676639965384242752287490792365684086543243534352013974843209947892725678946622808262043064419654733198853555472109105870726576857165657307483560011255900571733241321866231507212445827281109882414270805341558536028048278660040285116500345009407450830998387532097412264187012902193677900923987599364428394917419861087624090350328977108922959628140803447736498915131328249087175004022224124063179332851884441234070680391252407931393954836194184759672886278790092482922270748390354103327268249887206438073918064976917846753712371138516520558057904687255064557776835629827284885698324101350625218216924357977372058613233041584013721525869447704394083107793851602233999337488699209276723466468849297360483158183206973360710167370076772295426281118626208286982803927287703369075961847870901752477122191396966956397829446630421577635171711118777218645657817078004834620002499503715735042672899137662940556491649189017007839176378931708936841497451610996135569256187536168077294154264455182867879533012361842287340323871918206236834474839345671675108821871206111213090759926914665516504653804580901725892012644168140948339956160487594042898296509508412542486177473547765267154288424175213862957200187702583244827278376597791337355934401104578690161878515890398447682572300459462393981064907881610637220619858286645348331916645052093456348087937721911667378477466812365670385876651334001743920559811245595582683106731555789488068285487453467907477999978118788816926505861086229711965627754925741602240746541869255718970757265198813347549360189079554738077486490646407029946800661966027935757225197744537953624942041911512380109588259504022917377386371574723448952583628387607128926244809616373864156519068506195312282707576733347855168980892052330882388419466932779990709861186391157582399248488790368273510007600995169475341113120062951776651982050720247407301523798151683858939792781786713836641992303204996634492413181188274782151294649211875032744990138669205234810147689141960707816651211409972126803582076821361031442615457923220178325299511105460238167742167114511570377131966456331407464762106620998722576827929273215992445434971960398599700402618495273265077157558776351249206305929250990595882344607628157729389883748310293983561664366337634686162074794194688242457790781440232914486894899070412037008898788824122201168984179047998091496475423647751806775641819774523257642217047245372378967845299044171892948295444913157126194827374724858200754567260793856934052609390950640979511998132654453093224234501500355891916668919552771817672259828691546506046076075371892561929657354496795071388010100984947346228034325969400646996444418413792355982251123458034579229734814950960802999727709298812934307741959715753742724303673658688034576361839433511413525363866487015942795556902275360545471007617656689888828132219033624755932380736857869865752455556527115652807569009494299555867279192061129141160947171583456714433029246757474814354725366217517595411613393360168068446339222115261946053780174569560344325553210246226498386799723488266604434909088001372212517728668376016995648054337948291807839560866568962677951508261440452962831680149047507019454487082172990423549044435136674189471474551231699664244651666144597161302119447508955494476838599970642178872126695311650218250753955082752461886824311119960577023619323914694541254666129731374238629505247123178447076420796718543061934818947724673704849487660033497683063729422806947591473368280465518656322340616551933572849645217928193174649195255794350172216221321082505278411452619868457322913692128296623792499779869404469071143306159679411045182994731228205585430666478294243318104760225888969925348435997772285482398310758746220081934548599062459897701102713655049732423262981153347056623175908516159459378323704179067993416556117358106051823746069986379556996744188131697354535895516517047785446480947467074977621665237776141556578297087432141260167469958678738515817997005268075343465409024208187638375158716874399396071304865152174869120089984948641198912554468799376596229565799715578260408858210595624715844546232711582348239940722268216126761608538512135068814913524679191419155020924307720835547431864589680016861650021148911870094571892606261098774208623039180957958541347745907822733704645609245238893067111002487543171703590238952477856330107401329174730460389482770477178986337980291447141749139162104430440620446916475102734185828342356472651676418704890584547667373927761720090585211951410435222912145968268327730472184234532193273797345574165012481008062975699148448979862994196083256352378490069693200516735052771532315595616352325537703141095828323761003490167427270734494200665312602658092564148515539389045072098000233610615126063947465867319636422733544488525725372818166088999202746394962032894856915653054198792942038297751549639279397899689098216116443677523626228883396130426382106096024036472586769817178073659712477639003751290577586003768558566279563171244239750445374002675599237278701117622592880142781664851044373481353242559136973418343389882690048954974809984583929253858574550497309179423537572803142484010369884541159555783793984054758401922360482224179301137772217788797264917186994947026460213448098780397799994006227476519000513185935218363832357443503024681589424974504403925943866446650047513579449230754277716123252215130373354928275368801579074037433474466220809057505716522777026487635096586949239767570574671124174433113321304541616719410871256938619181927516392218663252802525424416797094643603822861911140155854973339623141413778208430952437577220152489882493937995444862216797184216354625840214051804564608099182649151616615112649322899194593153142031777799873606782692417671193718573617876714163736863049144484958592441239153230998035616849592073022435816320642704355548262622306409778822221896632123605353496344605444743465228851544340848179448368306204297631766536555715358657439535862262753122879411142337598688472739566583386650795231773459368035842494679229769798729739393683479268743690578983161633646555795064215519566230527705758844720124775002978974091871907613440025623983319346491658307660656760975375875700151328825192492326081190030869234214243662973430010851314093306056502995294930742296784856412071095285839651117912693632988922330605235802007657112296775119971788818437042457021126350265021199714976469460525744028109634302814466365680602491287341427747137769660575964901123293766961343183795910822781206760604423256396566694497780446869303812680175229104688955045978155182940434245991859395189716185484759473346247354942978106526780910152022455540101592937709476131048201562418953999744081251382066008708526139681853003538690760973175558530286040124339555536166114418601221439083509494652703728008402019367510142804869516148310491799545576589942809375996593123951611302232241035100901823419770021822440151641783946555987975943086036360470551358869432507047475759102919134953393716637110502816194096934011445758035926043069756633710416308278599563278719653163762661598479204007718702002126652041609598909976398026095043497915622505597172425681531642392620789033973606745424416347140175322568327618761957050758742577815235762035603150624306524602434460291486345010964744239791870488908356930219816704091178457710950317894414886572506367178410034836267346672666805173164122749705449453876475487594894885797510785192487413353377976750315046803376928244143178398243784428061710905712427535704380710471634149605807560958456384245987117772203344671639884460826156011548500618932427032154510985390500366451300105419164508737965748860104728296941206024032552768715442752724979966545696997438126755544776552828750377384068804569250487266876135692026773813085161576020406790775536368372401294966515655610057929235035723101509255224657233599851664673202926745197605717044462137976100771457067139862712020330520966274194419045068778927697890474108420431380145419953221828042014603828899969954252851584320169210831325621866631832965284323296085439824269958344650679283185695174722806903323867281222729137737693775923827763576627253234443158372200251105644574020481113567688746461487445049858449904475184455250055407005491174253208315495068829495416333045855616343392503509704944682031876350300224373254209666839645293963133082186790883568930416905599782610305790361204063911983318945084011650302457366166012368299633763646609181545009604503841714785374712930858595246204766060712921377399860984150438119410163266155715987535222301077806659950436662285868540884882362071435622874532766166650198746867935655845024012731327412800420562547186611994816220154147260476539259147208815558035252042334143247050039571510861333737554410167650962168527752205070827803266199036200678700001444313529991060423924778072281258485512956783527033117860061604957560132450329570350070921230041050351702761360186804798199832439744950395343376292909974780952717862499696320624996272799577813091812786705773297099736823949393958742399789538348240439717276267628635002687451788250253651616150187632468729442180201080190534202796854165569058675295919996664776525435442799789082174756741120690102021598865558560093852000276684445531424030664842085182479310961132494914353178404762014673569404766554470796404782434370199335904403903042570237880565369956643386844927381660914251376150777905611270533849958917561135854583602853110547110417088742126281754652687833730803773598374672646059152681345338337869052869040681100810846129038058915613550399638378276153645811316457114243723293049473748464459306894160315324166721477241868255795007151436651797514203489164341358460910376819979644431658015958854924245082136138877744816220881019409732899263704557093385144575746446600981252483369751489524958336573435190459455985037901408538179569636575378831267601040756713655658238671182456701274543552948295179751855434828478636627702548508072609963971557023059458231884223257279952156149449210130154043640432052742490301500245769958482834941234106017475016414816422197449162654423767783204828940183291858939839857545165032015265699289645663622047996067611066606078217557534856481609768281210986797522193939553624288198121125090216654858924898172950839895884115937777036664239465871036742692678199729463904839755973173056159049887623766611446156690292040063313725938173639170757028149709603938947865008393971751710779189809032592104992038480376353956329816994335934730201421380464878688930747738920609434634654301534530667629247203297070262977497780573433981379025844551246333665765502341534281664629480269735187606413501628120335067890339831349925605399259932285907067696198652761058038477366321740659811045777408313834992783847287279809616720137236730112699751757978782744501732415858814115611598441353232174687700709206668418060565108161442813671940250892301900351094842327794112220411786065113348829987194885071086065705972170677203411537533500469113794845126842236061229061689246129499292125290798063712050024582018872015363297511330754422383035545379828725100660480119430185894712318318509687525068914867668643608346367204596083087154471824843605654734967079766722999789443365425408987266349432453711034568178712496343655759751511625529668279401272679634799731178468334608135914699004739405193614714061823698644427454233427094368205312634093785206389968267941911010879136351561241049970011170918222015198766839064282486744510475646596054754613983232489344946054884870237678841263800233714902248219479969244322490190806373435992995116307520349854224457574837081515317002724706917162740056661288394577857751958014210932096957359904879506936326713695759316114501304901394386285778024165162805018781212185076286644034849077662551465647240067107393891371343985197438333066311689740369671180432104217292732024109239274105356874053519340947943719768689823389149623805403336642699827852786035628064749485880716482901656365518550808227338698594384936696919552604284562328040544856719464251703025960832673077381976525391524655317542392132764959897958099568473730028457877112741791465283793679637488782882263214690280114968450968267555438904134000690444512374953053406754518951598850443338706719546278475043339554564017441327862039491527435692497372836481162955175572622394780825570802986834269167739490888213471438765722723300899508737120040648835666377947462824105967981062456493531082245428320488740513170957334711467195251980498048852672898155179805457680681659045878602893683986605499570440730006613182951860187507413559660798766245970042278964402452020374559636317248342739945192915144384871984972948549359701182448094898136589564292442450791210396964955341702175197420147701425541090025448943831905898080140461346095471764124947034289013470270169132470207643789061403239552576506341415894658294590152171269679458815352616482227406363615919028170348356136267675570479758734350676015228471459493005978874155176065760348304590284812694621735327485800512306927773973188772683680140544784458226646359530687895277946850817127512314115783149420763025259297565848898628408343349756785398192668219100254735800711251149608669157198899555760578896113279301928964478261234626883883878583307537511599662922487701599467843932807441107290831286823515399977537630655651522171682666823654138216905097932412715931409222103579614395889808991256665253695065664191568674653147849637124767471695258218584533048950499180856849507166501957279205258439991628783148780713199783392637367764825273670403917140127222356600291891346391074305164816572239941418322437328215650234396724800680787401944078966025921744419747114017627137211815424131070963339705042356423526284863688014568213077573876428875108744158465706451672787714219705711631820942129206423973600317062304362354674424356429010488623869062841100777337849464739556846478592523615936984102509264958846358489850926083582213973285493730749870653446317091341395097435980784443155986119921188409321908219877593460333645385552255685643968817749883544549752158073532185353316571557074117842273692284314585009819061503013735020512572071631681766090288173647733823492032066135322820106427868591769015638325211618310920288281752699405167551344226471462952648511549663826946825393010862116737636715110959615016633423406812904573937422901231232847349722753972895917514413460108081639902531275087573006102856753804444291616070267704856136665113775358841535845644187393746331304073120844643662683371694975378019733492898544119723171246408538345791772668966275954532958510691613266860346766086393065915728636631855129406459155034413274581613107197969358118413580318143644066292298731307389927992682588490088800152021723407186909742432178605432633763199225298093342480046599199254339820222221380356982649400981525690796266758780062163456892271780956462131366118018203146223012521447245852740968694876295528486457996516630428955885179555958912489794579166558802606478791224239183221833864875324263877960340619252247875407761262411364363396820773411273965131720627391195120594595621847287666780124751424423171891339555767111466270582084688023649617334510673448506780535825405061474008679787098462679329196462809586854605818269967986835513748743567167414312240530898525731202103630227339328379975358167602064397212423371388067480869330902336002319372135898669417134022884096851638471790486877010508556739705555717653480734121308848392687953938546574844616540905932349662388917979682504326013758398069787681900990614895612740746609759736119074348385939556566749069384793632140858085644952743452656172404734981356155194743384671865564301645326226899867164983885614597308088322128149732826466454519087013253960678579693664061585610738953141322928309683695970072419277184425390313785237521602800011768229625988001411742925837268374279851756303861009112013296178061981372594224678521265235608987674105508162859900741565749850346446458055479363044060443384416039026544041551811513654247842835195203165914650170613672133070531844110439901954795179021320311444384252676940816460147421812204788178009436853408921123119097881715824524594557818090436002136647712651773774659810436657674206528482902681719728453477161032615858827794898271184521594380860114940436197763869410051994455463778224651752391831150691266560144417315228567832598406484832229940046458358145957326256051522752598587478767115970987272249025661626667812996006166331122286578336896448181805495650017877214077085262443882792148048318686155429082483624920364284171192699015884523839734401715512206999417167656616938726977920115230430124744455535032624854827359787288190474700929421085595570533225091535557113544867242367629034983676450246322239649354231673506882066502264538093295619472343683846470405836798422091030520848391480072132857825723792421369170896090503528734711448641076736773596880366428514969980337605696476382242711682605788428036791757753923247065500594538417909001907770956110643421615139774629624029362390235140708717495409888804291464357694602928992102205203246884717606154565067794125386914950930559707339955562737321642194779881950453207258370281398457151826162577879764050062800389736915121976107854903072180534046793440313461420543208750900926679380042669828194016475259626198535234107097413495454926072507230668373717329953043176727007893726237857995922117982388206510716521285568427878943515171266750568213265773982480374432241733922476218923602700872444045701008191019072564798717582370494789946748161730623158574026350000707300799112078243655785760165782176018639266079855235610539620425747077717069467530725426580444429172996330035104246524689142136082420665750995696434230952333665237358793400126131831431515605577719990487839732654793390780204606655108664349160767624696331288437004281220352886094604576961461054167758633737424180336241946217432129776614912095131108130939012445039531785996031077990717246417566293013068812719602818212232903341919814491090246297766066994214144754101654387858816894417505963100127948162142292901605119578428107375944342157004137112563358305562270864460651651784520116124553335724128613958416067246811149172477806218321613549494718228114618976434769730932749440988358125378656002690602831474705869996250758392039195095586091551376758340484320888156116181987924110947860265110395738916995045852444454025465072890025157014903146131909400068445851265838704920942428932088009761161409216960753275734200919960759883741042045225990643577934811404720420313610520132399700372747435335459416154485568278061793359165827534043122648983276310142660854511645348217824065885118378863682066534858765296975405237695594342691543568004636428052521802534725528970861973857577025834910446747826107667336581849215954500585914175453781588174189037983346365171254910738639693272910117896485199127364121044592193976352845503908948253283844082492770393360340577466967636492783939098180277671272758004891888659748073895797261476785672259403408288215449015389795044684103001821051481448090923218569538847286127042185341806821871397916841227422916836239658057771407363283487325888141071835480918681690265734112658890285901038597543573713582956646630180161515022414307776799448517912801903461203940136159034744008982181994832496354970909595089420539074316087936748773081595718932346081685091922968487077815117040679097638463656401049251159736657645543721455389396965670158198084469180964227468572682367376881668884516972122802175654600216113576815155118807542931887146163538407488569695210100767757833460825697070684324380631059813349386122097643922284077457510958515142308848407397792796381203206441396592101980834568779783090327712163542007675742097576169850988597310238603563160513289376508772598163973866442744176513684768048230538240266193779709410303471354922564517381547848738421824774170569842791433423518025057361035722900849620444373143891855944121004057812851253954447922146626876747301624236825428024678156112456495215726838757967729928774409045474144800101233173531798759883468033822494834725384106310694155992367667673678708598772401495272041839940954540899727088460886479010882793085484599612032727860592761002959354889207198674603922347842393466398981729463464166491039870344546818824951966445135736299970895944540271754556345718488920639267807290619490978285164083847496703089367666760235564685333547879778581985947312481645130103693426791151113495750472208543454107329012304807815047673452609571936262940592614092029460891994976947918043495894767973576988511501452792862057791577158308349720714743029039082784363750734219786763683114457391076391511863407782996742817253799191557128960205325089767879832306520771054002391256931102027111979283026396784024795931798909558524504763940965905312821504996061772235560835474128241434209786958190024066335277430141025339417134207084407468577421089193543438975833484883210544525452872267893498342891282688184441571063821067994825293239293746740155595495777644817244941593152204350924316961282407411495787326855988338739936732319969963657995823829778710749585046620047600709631626313004511741026391802322649808456621187594499210295937006189832233678938881331031473012988531578146334799073608176147752133234095413284503490344035716441087879015748723821692046949262008840382873097313696348503593025742438089618319883673396026548323938616817993986931310577468316180907269544927055083850822063621138712245832928523638404373754257831393083259035213648988421487402061709606752872863079789668958632269474902842582317156703624319628830702100083461240408593201612275368666356530738363540987006687883199351119984664022708106837879187711082362335760547122939003748673924107809701670733872984089426065591193381730980481936921540481716392972715144099532637726693997900852511497573367513919060941745817336549240904929572250279416648863601687957596107820747024629683748635539955532420011351303251140639285544673960506619733382262959057239910682653872755068918383601517879004123208035071483128899395762960472607478247624643918456326659813055299788628203133223194632250517323031460654378710979196924835880804267731479526991900846303335916019317217753817594075790372796599631766377308809519288972548356166917169868484327044741802860352902896590425031399985733674179212028559228449396742347022492703994624547472628251234131349795002380803244809312622608901021248874011568694654485200777621934305669982832425812073346732858661602824535193573385326523617592101615190112144944380885338653623476256728808160703463601669142674974884279517358351348267801178485467165924911402868164990441847974690600927800306918773157460024574938600684832383505087516577930372946948424166908568947703171835698664129367316136530902786053620920745757765863602295638137001718338356118364917817334151643601423210647867074611684639587690939745125052251500565830255730581024022079552537412879057738821499167289271875698178723934738956053406603140127393626361740495766532008574821874716220291725283796648290785869780722775145500964460889425675839079079555136624952058019265995620334346089582438043892895288608863400979236748619613886081661296787188969625656196346440752496713922387486654486336567692439728836838217692565408126356961831977181307098010175915364347468656946338593896692837143453251443724973440325353072693241490233779876431514030232441753399381438378894430119134026760897419770814545562505653617015621602137925175799007663609947305271247144217810166168048970362170543278615968791195959486982615949553730783799698357017611840967227569388935230765448540636728423742947291058616645990192379908371691550372477643906564493305296696729885805422619599147418265479850293806885314030283473600745395637195972328039581077989607189106847075973403376515580460728262024952446570598962917343272914275224317086870010029506151115531782048942375209504107437024951829222580003134684124743694575625262365183232223796699280547751530317958348884294786561243738559770306339578610614974330530024683300352236653264710054450712090598944434234612515532523918086779032857442376801154444532772418442279933280668846833900435296999626024159394569601426273898504659366649581984111102908884182457956735522444589646412161669627527673543683960044229508846424232372496595874273403027833426741786538884426741307434613970933828489369184478281187699125969590556200150384393992349942743898515096092167805905923849032548537744590811701279750381593084938626990583141187242308994423093586456782878143708838760639225543521270204600965925113603076842229929353611034591822118603127821548876544877575661736432079936155918379917479998996926974607417898854627920303868463671564081525278000028502270888073073815863455941720918452498988264920785005335999682784320130339305117899024321194495691538094632289105160804425493024117778717318004336010153178198540132615907109635592797264961483891372496824606593017063701771710849841377006957448775013797635032486095911399459719542741672711785558621282256035515330608064681291691977661409486247835199702532544723170962158354418372283569868893830537913089867802343755960940501461351241557815704079724569637697625284070552028999704103371216630065349936955411575475758356427773527446167406523816474352865392988859329860397054544960412614514604341811574247543257683956389889225752883063720596573652869764462782205173558994151921490138994094598373355519077687166118739042874076320657693166105541199208789426209571658043100774931203956639452283160645969957879354033537306833167210928162179499324857463297426236783768526732948315717288444526983534959815983628998004405710659412879473980478608878561344039350953849341335300281853354957102791911885313792217168900854358096331388488308134028130917546779693434478424325469392965704586352957189370065719497024112965999804318458500506761058784726108873415978454204007062744799285688526821651217613739146389618692532581314310288386310520898860139084425249583904007859938798326135167730009887753095312707954667327240973327739652534229225690044982280844705655824332961092860357289637670198519350082051774523455989928021664154910895065659819701816808302566022778246626611839557184604014254286900492953624427571712913456440067229521743681604342191323461647276436940151760685496914327260793814643006648190950861366298834692175783525278894350938596387425266869625544614583196581966433608382572090294761576458110006158228064235366401750212122077721217133260066336414125837150658108594345413280760658220933908730952006763142549526511197574747469875572025866793593830927404516936088279216623427717377868491488925623129308327940680548905880400251571145555496243780496393742352312839380566540610481541565281956677428696668494307296982015815736262427683679972455351341343315786951914140706577144179550391341456178327009578205300472120773369360495719345660135098675824010376132482039737530606545897356558810697148860246784283921431445017788134839354843758481689417050593561597612996909037448730223641562503247540353253716519863857953536665701134822276954680525512054968809327115688946216852244538891894587245142806518882441142265576992120535437750919027406151333705654576232589988932541362791011816990804269320079722369061193707505187616578329881336088297382638165500773611434867825998633767504333459623727568213667036484860459125199106078496128549295402506530650616015557332337957495967138469370318912230061495508556015348955573195697208811267945812878142358713011918311129801138358822710227853547279673899834342975808603327984129456218168984011701286945078657393687754495611349807390311400883407118486887947786311149236084958840843087083129763813717818961846259351541519638224212317646391374273149881207803634948813773645412244854101047521244000065924946380056901546436936476103347994776607683103031723915925406783591981316942742571210903131749298529543346417953893601230037200093118463513349770869515169351612872506398195922228814784680355696283684343130601504388441416113195446824387268989666232015160859887555756348212964608967464323734203564706526774413799987282065000788905807285871750228951332511331026303010520452729345207598736285912562306972957007285706768953681694747239586103231533017402911115504468167786810197747079861330652445559604451637890788063027622919946562252477057988245479650377015880922294990815173965526053309959746249594149760259417534982540652151718928288425149846558654214924337153363711933093492975674038394019787294393347543000056218321388027906781415871466202616468725768633539689590948292428169453906523963878987716266681919388207735193535132397838580254064168212920835893097826245161522579316918022383447405292018947016494573023617078151150098089932841471247969035756092298705775779253283651317649587777267335521320920773957624389321023474254882244643970316497130868747080780072563431534287804644093895911193264831033772678178147056435207100354131231354770552837894463263411461618381616339964420312002496521056279060209761903709509047297247561933324398327362152078535283151068238226007285104655000436466563161669722547833068991554298362830718301816588119541098644450777796277266988756892648334322747753565891470546297558519288802059605644236038222400425780777780228145996953050769238145302941789004173029308442010182226810498890210044662687359465476315667238556516467520499365631408491386002834564222301122586565708298238748405240795952228908024926425120690087516261044058033688238682506364371136447411385115754692065136360435775312227154436804415994224570234628350110951577061814458767411500819150200597157388573516805424111476296621146363061563910323266229913972072946865117321415641314420448277823853258327668974870364400373559876770160195327056958714735614851931664138792178109043986378792300065067181611590859728798778138374965260590171496497370929513866785341142556550096664173758579689978150878658684490098064617607015887824229378421348889392319033735024168308374491326375298294575510012736957856841341682767393855605228154470862072490359725094723809701428952637779280386354816325795413629701607035155908489136424531055551236360213037458931862682085489036928015472254461490418419657579389935507129789900550261283743693347630371360805985806519521055166576100054667316429617812265477841104109410189103638210585617789952104445496198276113234731537821985805702723525660860785351531977966341518995315699875892147411793393571626717624158981195583396361541914296174443903526283599146460534161391806650487735366157506081327904092079873036334798919111639541353163517054213464490682710852787850325520469336348696035650157589643623807900676227369900628690597721056232691728074869096111536088250182280221306475233420354397675321592695995178462449254282557751141612434260382118820175911959092472837250561445345787681096131219384149902605458185838971643072381391215747714362621924522348625707672929223326831497778383158209100703258634161700788187398281984386234968209189778640745564703358636062637061423927433844240492692979223059406341944542175064382489773115692325714564379536978367418574869960377431637219475859760328165468153369323432089559583180262294923863669528629289285291635086771203906354159529299187271358806862675921369723685543485745155868696255842640463569558138105750695557297648681824254920308641158576337155468788891246352516646781957713390150142234444229440890712016956973267280690673991387247477155719621688558004483829836224481700294260870243270233780082233988961864996174880550164571657279417152812139162549409376227941229641505923572068850211927818912513149345932028667461923982896587718604275081694470908695479026863377677849026025494922526860971967048257803523298601837713012394258010930434636713121061570268981671980204066095965107133938577139743658762278203211785507963801642521916152235644765621712799326916813684145736794647628287335187347482808332580708820794951144179801965237814186266921571918315787968904999644467970840947025542082262840826967017247260466437815222926229091345018612947477085279299912007175822921220977365209058462516850825712239283860327420182301417313413767681486152880640796643198772278726133396158036878915093768746102693347673227024783571046433664871729413057146371231961389151515876765007680681889442599104836415049141212313907472604019082099750648273846484060476391814900256087489638426087543533058597744990873060053295417160231933381940002397721666753042570083530063638189043093275229994961918081634145960475803159049397153298907425785052105289345137714564889833889838285239117666825042585091491499509231179781096304956752200614505543715639770500455575680244920360690715495136422150551611135926354942977075701794144090761759408130297906396806901870548315711295684975514662875287196790331687692927303765567274947363554149585158692729079994670838417837883371153390054283715373764586353804994844702650448929872984685580849736655177474861119621801717359065661862492608763987309486632059151156138196091345810061285196403685721388222622153177315961186637562635440478023357254347463287942313811121872620292903781492896957966413089546463624294531087206462445820370126410764317768737306901416054762685749877589672659915693218636469039233208490711993995886560546230696169869558881807793377747344583411130113443623511053554323504201943490409094178327182660146613671410687740418851625622129084640549810315810115614158359621634420590521185681290616276981729726323976540529362067085580031019378194069155093092772086036575029093469482885185685600858833305692487313492327099526062622220961797020784069731384999559348139349042331355332231312813686646125278708664921842883384387969108854320928312738944097542136359241487282550265549766866791407201127177883086556439673208882559049357358090031338771555246346496153176939495852561644237204270410843837484713440124106257485626967468433344530330456014466736753902907381818122742278738380385628330897784355952385700848442229695447991132445122204010433510246365460550281031379795152319646164106548186730781032697406468292103471979882054813259825853711118328345130204081230339689106110569887782188971002594520228481938146758759145344981151621401271108967512742763902832553725137070885643582236291000341003693346434133879710275146325356605074537197632942995656430272815267221589675465192648635537073113461385462873640191657593096229419680945099440979459459752490219983623562832080416270031950631628727444517770151513379018252116981244892489317819724356438853076166206523597570335306215653702766996563700338263275528767617213015248020745707095578446503172109938758359595675166242695822530229345316051685265496796591840788815533208792819980265125379538312104095240152647196559382464536955459923133624773917918851062880685432147961424716036320171510450630656507113254504224991111881969896134051820491785041998840464898166271226334009138460126300540492812517756621573807899798643722521135219719121352479169953612922673394481086171088243882834837377248012917005430212995234254527114904462372538629581572404640213291867571653626209550091557667455815234754465085314406277004665062677986941012821448478752008200416179936543734569884312328240508644124214013566727349961092062359509975546191732184449143684641200767459843845584232507530870605668454395430562916086601632786658329053740593426478565685518966035828898348249150003838587951421928797704986657889039733363702158775443304249610306656911976734816889139782392390257346891450531409706591482541162643592139272595301524716272236062064804521634704563910090844507344102498293415608858819407450577652816753409727931488978446974695259199266835871249220497847910265536974644387587225134748954753834591879720482597387530966250795268357053829452553193707089414238927819350314290434485081843015482088401876942576965598326915060408516319415821288804306455819561966072754407428199343104424625983301653437754134545859404100490524539340207808098203162196217047604782501694140524119995137564252122703827762014413866723153287546235298895020516842893724027704002280057991045561916265207676755119823753455095699786149529697547024974936202778864338980933886545940413343863730330527565998747641166396539130316670886425436511856799410333676406441138409647473906510713307340580768137872518312118402406897585328385123228299138805483831872814804715258345930771824491709658507139944281787732031174561615428944762458620804683412247065247701339625181934063347021885392333139465116907593556308569269044233186311330354670849872853191810157927695515273506581138129872798870523109598211009445372177282411887732058232580712410671436466948698520817983249451084101148029791990726302484961863377618421892165007051627825385702004507031178799452003455483193270440854274210372347944109305688048700100311100098165859396289985898934527607839003945645122007901750598482588004782333666379268835460117879113782753556638502244538188784087360595130313128605741705851351488471592963152093245156729137940644616613784142483842614361155611860166150219164729563834590837418539370775733048068780809558786495269656544073244141701100272638616597046590218959562159309724398060063714797276850708621587729340633111998699595407879969666283723655648127251220878687737502268823493643844097714787025757826433114449041115463817687624791628104562630420551928514977760682878027709588733238121827400137894829709968659004811936082883154809579776746532929677015289447384751598495211975565049776878733673647597431688093193967676718248783786565334726758927171587895897699096111154033523774633804123078635462240730463519265972554323345650932689315203564833579690266556355762457263334931752907645264488685562019646558503837250114753445327933985591822664016078367426189777049195235861047045583710516972286767262042121201212250465479114974239008015604332917939276442069509804503155372846832368140093489611553793503898401419748892075812348042390290022077941995139221974834168658520561916066771193950261123440802600510026461150768165193320877485125803589272928284389771808901341233662212278835137391763928292973992590207500523207311016600819651411574598882047252119693887812089431728886157470763245487229743934010071577831515129545106346786384159141217116681728727589640630363798955585715427922370425097477996923246177505840848779323551653498364942452103194265450636439376148213715807406884684589252591200433583490640736477801609427173195044934922616514325372859111683346561446949048270978628121358710125578515453006479332004200676917317424779776183972072817555732612251047339579595741706089386227834044460532560232789697012999304690368116841810659123219505167556604952469864597309259770709816375898622980592903044854635383629461761354026526497737481573191658514644833930638844482345907779741376006479265879577775928848731923112016164655955466638354701577800635855020307012406440848519654186368237077144935415872487647339581151155532612007495480287064383283650205648245370297190877987406970373773673937308419695263552711189545699562736493377079182275784713363752845170934070682936318616914521632163753912287404438401130761872127181286674441144712766250829388141918634918469551389058176055047021658934288436503511433859892927370250346771753253095623840691409155914260033429226424247815880089680228407592109374350491218760913091706071409207145909581085642861871507021973910197049811549137663252425257339373178071858466096854126320247945073374496578211159454533438366148750136603376933575480897905194280799355659728997430317302667268809334784439162177630319271166988433240466293117203333751720884182268429960828661027156258117962131523802046797919461287851799775287063250125433689804950107291347603140597131896592814726341998440988722224649369851035497542964442180935954531683109325666435580325557579277150927614035734756778044131425357361172073203430212570524944251704941724439926271161220143789420107099527974176631219796176568345988475303883048691604304069554587465218297245581077944700446874885415795969584991818521910953182182236272785046976617307306111571402703197665347814662826454471217797199772053786605858163032347798609312429723571668720617723956504075903174610632489636036410226241218418857512079476920140484189480006262586568590085186757964017612698223817575662967607625336643170306793243492099720038062885820184777887172024529720805778850514220648827649703618748462608300837705220206054873999967119872665503909048226994595907813830883457347015703596413797866687799965963427182903945875776513143962700968485579607614451644571546248218477828541855882277210138139439665311637656677221301738276641795593578378941351546325752807864453506443093292276500847050691257826934186138324177663077837852868243105223400650743002512303537227616960398752665802028053152959923457024942146098351799826233800761503945168432632941583254265859006669974568127835723056645256605408733626538029129558865796885890589298764545719921103552200904394958785986876896565003494049034049835442826505457007656613014414920406121937717095950701604271516552820243062841633007198847391836623086820122310988338361607207034117141163224978297958512575202847642827697169366943142901181744473670204126004823848981816755538140578259993523392954876956662994998143037001503750014402762311932267691550125721032788837490966496362476669476594712234074138832360754600988923324863989457977629885669054659928834778857612257741304851049356922146919922707711004501301545465614432006268004546860600123878323003187321800803314828671576061446664100219698168691936861551899382114123090654354142214070573583464689313969161596148604505640899805098345867603609928055484059323883157160599205418424218791573028717406946746703196094972703760468764788282155114537984065557656878192884022673871498491375349039400448624742359799734979550961877790509572367173434237551936873896009277883772439044156633365369073664071832728144306799183218223495190662824183889676553141529461608300472638374555771016587416522275310249419256829457649962447302339535514740853894964809837405285984055924052991664847281491191116240717450855858574207641470644565776192655401855844620999938987072051604996526708049292357244098370909543962100074735226972830789362105132423373322175831250046477522283912206306413117223055136715627822062355230689197522714374717700166585395467457455860685423886129093959724052995783532788746807229599152393222596883488730390041906358849398440626480826543187075305956688960516701607392139251360188763350645819755008538880867769230153143914275644838749786020112122809260655382167519714939694161603265875878311668703900412229999304068123666064238116221966749783285036357082724211001560949692010992207142982060912434718515361803377989461769706335940885138067561376218925554678438335972080982002666302943344221098142903049223220555616871480511419384520313670873683320597107054526637948747013722855744116626009986530656454161337424754367640787902509579040246321381981960404245919946606492065292374542043261098595836203556246500952239317681347051819239406895021304966485120035906282467401403909247373255716525435426222040437922568167911588939882888141198119204072865010674962062118382645744003581611945272516125754348022253179843006953690996699239387336611755254172129427336237273335851700208713164395415300933791101063662892334647344884228716321602862300894100256506826836448949085661636247835267224284455838044205339936329897251259390350179789379509600787899400460532851124080042777874767155949238265108068779384917617586808763067429568332910282935213429918588362437261296016757835250117457147860171867261363118698152671613586026496786421884097608572158406268457954394787783062835676594379922020726776139373949498817677710686382987400697020017892155628988046406760301215025818468163225685383518966360795535096121806407636111668394915262834607097152839647159008760415030473881120904567561054411649321414935624843906972192453762266767312119562126582731982855280027639243362494411840100803618634936968129388157038011992369286287678646812540964020818861428369362580487219851714269823000144119301412670172364244119207365081211140402862394337074100626430951830241130744242942608593762958903401344448571422145749164755228678235201462082261667192878261180382460224406442653732235699905832667806906087981342603678848888680399031260714859560741142876958766537782560380092771198021426919849328598989595790089400029313458575421616488857427188632330059260341652072138938699353588242417204796886762577452913542988724852134162353215753434874796843416573413148582618347964389871563302068038083734339003447188838904200735068873211683563361548315517114504751021318568479221394616863770686312423454382866248095933130383231999598194356687293675285626390723640186772439104184634584927679797048102381638960182425232101761193308691412392590071866293984080074996551253722995442976003162637740523210213601579803069647952308214735187525885215448233928512985965074870635170653639068170201854704055723615644512451426306528503375546908637144475409289766266651822498726262735218240667583211924019558345418154083670770624614479762211036754535925413073225145045328937505413647355717891615007300075994589839005550821572520585370455134901316667242638098577921949730947150249768511146477067935586788320383758360360933601772727758141348444511304106979111970275035288083517308762573195200884391254235852094812096512637214164623072444969461952821261091330486682478216067023326087767379002422787328969794266629239386780256062426908556088606958543273409105313034222637301167478187888167866921442563298285009980286116467822638659191405108764896914591686689987994406799073683444583879659477124785376819425625537787291338244775991794673244541386574736765070851351913237725386117417756208771402004757807262269434903116021970654894996465585378579265008298528141391910497450349308862648483742525089996715974812663662751613971190075132141593291841229864046512011181795912145364233496505239774700295377910829721750541956069712247666390368236459134195589135571467805476354230230431181039337621618776185567235001449997914717280977386324901766478794713410769878203185104242019378197026712537919605765676950023244965185716086916440507939526612377396455388475703182170895790323205638663920505308612902014545285642814018823124420516255837299319324752451412307344369122492686150250047414001859903956890977098055529892666932929966121435996317991188045414380682733075023157969093941658144696872294263898843898437024341286779680710895244541909981156201506516651229744972922910947520661288876683601262238898344046135563371215180207814344439490776097882916204387065740217932580803889946973848605424176094104074662853748612490700462905339854054924899716500418528583613965193774837132452061569908923806416866539252515226161025033134820907393504828319109812499495517338262642116327929140520265071828320667553072723196171339168905186992914995550215185251689155612261195280383750473674668919246633356362279357296380961392343668953385736093002189873143546139519252234002793518056698021000548232282000819878404448200634492982902483457081190493634275407752317146297357430254876747183954322160886210656575717706942303224203444919647823361221626184988483872463444060416965579060057500686443497222966888758842819723366602967718920508442901618470991161153171648280447731182136609588625611000489105531662786311182412382447824730577332719262741296652230242679964451786722224774542505797459008566101118607607431511452965680393813735298668136323096046068987419650125466756150216027416025882562165138543888665769428385315806781252710123581441738305832727593087748349340514798572970655753060279590052999519533820344664356004482753204691029011206642414918205447730068683053969107806116571992972058207519260298234326532897845636032470543163727297603192995979852404199405576590900181583697812787182044310687697355718443792883034553641284587770306109356113627229576930333934949665338334447545328719256822357015898268656071626775331025891236971247471591170847070106687868048914196313778830295495893454520532014568654456146931707806853214812742159708204869314478381635737865735506171372033944149596666458727746598965969311514667382314533993048325476379338539033263537744414169362676472474306158094829967779975994094727997898395015442287350074552963180859480039619937187125497762575210515697765997606357469539900090428236378718835147525206984329384426972566560697992000440752836672794328400593012776648301274913203752049814923673737737225923668502333275939165842231938670180335707491113371691075670549697188276487663719906345850189512678929328606753896969049429164070827601583184241818317903650232009940023881417240041173041511435593724861119741054246288929535452372478085698065938607180935097660471574451771008844626245359736158168645832472589203235685749957164893523340760207709205746679003151700974595522241515648486994345933251281009587469678164880005978843252997230478888227882477003905412891011584357089808311272785200453609344238996591388886266541333550875187974806986645153597388400674352655217580682436486433416336335273956927986945778884497483362755428219261531995358221260194673067760417728822397177100806664213793006090187910386367619161586181512841499745455200659079495966949511007323069201743563792792583509763678599158032242160981077827172374735162974736021018299408467078505963547886609595376971779788064075974821966941392477017750372535715141432528987706155227414154550691820194777374260546535692570264848148887516159630985970420564857470211836053400641520256243760730421778501446414095992748596933905357249597128041916701156539198252336534300763482642243378377470330785928742397743932742547172365164522780739087549812242982069066128860778042276670817183553468687651984029100396451388195913191502003042779454313088564267496793762258847166368792659074285619947028167262496858452972658441004770323286277842587987680170810512739624971039747210840854436561435765423051548663601435004093225716679241209417843647044412933395200853923397112304967852005797030492630021849962571690730483142265190654472272829568810616312575358222392464037767880199840885081232106049459090139313736942010205170748463698154272191697902702909742184098685745098331539443763257262920448241031626274010015685628975861862172797959399514590605317216663936362786264240893642821924625088859563561878412035744309897337550439514572445021965380486610378281432587232223198400410597931475970826374771020293430307025644054225481195565713114786087598923897742295228185797415184914708074121921030435422787860340050836258353351476697696153011830159994212634113598777003307917984775970016215600698968827268919569914902896017569204792415269167920580278121428136272587973872120505409245924319758198197896689674941546235856644153670563055735848531274887468401653197385536520437362083275261545193951175996235830840485958681798554441966812714900114739005731701742158305403383252363599828939525410081698942007194949565983706566999429583027675438783987518683953710531361169988019972442691300675834132142599786953769749982687021665034093027797611633431018461991778796033699891964467750013045538148194293281160285119999879601851670077356153780278233076927996476925796831645705565322510973871395762360539750109388403060540439156181407660338689286004384983498894873473180231318849652495087927119659803040880736205944034396954230658784730836462260783814757443496477355304831784142035781216363925049696593766175075612504409565643040017281671569831933980866232468580263599849605219380708615370310246947109556658805885528267634977985193871493109905794150398236626923183116540956769507632516424750475130573858329876746482249575242070192756710939146253935016300603124072065773728706992058480354323195780580252317764294611915124013197038708755514995385735091921855038412080421032155568598229085128726944323899569971995072683669769132003931098270721864266791348013992313832755837301567193766063346278151567335987520770080806490691808326405792304026695113144757476416301287576726726080678085565594064177475719961947145950934155651596312584649695785115295463138278718143777990817376571756158091118268745897485810315372681392425923162636014933274566409581434511938682171098014124153185347414384806526074839117436297935290341174786580360584268641241564757632752195472776939920055063754741067223789903697126587880229110279820250693104445005472203854568110589368009688285165011079656086869952965490549854845466532227689531439894371700790672096350449484429912896055239800855346355403826949190378398123247747887217985372495466599981984893962659252181609598750833360452340717244567315306037775415747992404037952410364975675948938661239505929986411206782760072320606940899562494913031929156608623008248823997350941283574386905220454080879306261291167470664731746279751510037937267314508123344436978032192321388227553439188595322197520665185436868011778218114410447841238699132824459129619947191879276911584901164123619244321435333240301495914720188597071029992826741549110206681174679530524849670903360382086283892608963431776785466945394633638611523585316223278662830439299193913117824678150596780314885338097528532052085272829224997238631722948551789347849398434364298747967584437987881655601115897817174216630164506196176469370924824930650603582413370952604593525127940329509228270529682856295334080459260391965508252168176366190393757780964908529325635835646439430974018478190431344214685770822244831155206681671005195389468548728342513388590082901186673110163494665828705768838473914695323618142892972002886693755112531147592049248747714819779080085512307096938025118006999876857624008083819175955954480650371042497800211811867709050242993392508795134098938665714246187696361301564156525053105755775103845000706680711885679963604134464362453173202510101301497597942488174997529797886207541392927993943299672457118589413616069186897511443822555894636692169661959486965273319782934768971094191768433236020478985543940915010316529748237927347980526786161189152220333221120918302312709186074968563071812901145414150833167584663432149047619836295857630926626100541166074206247727193848005662128549991099628599103384384242589281374990546696154643207976275446160445122951643506523770368807579565519385507830051661627566439387671012696055211219271265198260400564113797578925917349697702760281109314051541555918498392085224231417806977807042564853055411979631649971094096279642951071129845555236961302066579688600129556083770905412804007493179820820117609257223481654391495884362813519003916538930859697747931447768505698027010554571549083602740210504763845951230117089783226295487460371582346390036523831686740218171154637341020852460810888573467073699284522504112477102560080406388471744894995688082522517542567020058004473610027729484476900221969922736421650645688659419647840824443498313125144871409419627761958930046077036786164777502052338401106969605499710302442254404822076973728724462820593598457792888936404720866308652854065498600781786923608175238339896723900470848816387921895032146944843575310838271796550076470399208152450392411733551015392808589458173469983252736309699370081141974742615855915153333947790381748714898159152027616089365300603614335130964017807360708654543953292802004550184897537047979987676201877851004630837202212557037195866303227356514485152130446197528960012577850262544544747065560626663178828559046320162215168215561715381187974071198424917670738759155208300062342629942337242071140232293251471983672530027932498593999985697505211582656854699373790944245312846339666903074239852478705725095728190180385374329377320578375503508010142922131990368817342682047990339231712679534873127281990290701498675581947104143973026618488665062391743533786508188649033815129968457216767132720584666861381130930833001103331425512609577734159802906384414894935640009001820537529008925906403629312836791101973650946965050481115412965324616221652085934367645598057801429105304249604748974768909575939659761650250789002881545190293998432670705122097047493186736601151993246459157372564832878315626183933774851757573536391029257910677804922463222009815245443486638961088924724146149776979767293291258670967015111081354960321046173350860468089340969151806250504024733351670236583495810007437455622707050185191184729744542947555117886284897259457539465538530588037088969491969531540795953341588543005907847865937851047738051406997479047522983290857959071959137747441888570658186005064727861966126962419575721081717595228852585881925499814110875059087365278932156525083341369816128904215171657763881366769595520075340034755178103614705219571578981873992642496638654147778444989664039170320060231434468683898758493672688406043661908992885208918969707221913168632098621918974549084134419500961761719079854249830888780885022628106802419343417757397094966784629320469923777728802906518239358487202943803527017180117104856535518220487505136813418212879301200807560167363499616938917903825938207012218757129114541306551109831946148469605243621348458626511466355925721812883591492836466192580243758894792931237574326246216813858147475690631886781751125173138334732954699008192319248335255962957469422268549663893725699911357768960237376000535236913904032344145833652492148416242497413941425969860970020334088909897873767687324087904800351730862139324124382980476266389793186694592655991510665999523594385114621602201543119758867663568989274876872802488151107403481950562606860133324541682384220873502654914165615755837823077691299105123652133410579706287314870704765884133513396146461996609906267233889989678822019698147404332913242824611429641157500291248947531506077454274291204171904658797616572516365761001839591923723989641093640877320933250875199880053643319108260680544114161005950588516821561285775594770278889062959328839319796289983177329780226744482010670694304415848788209931273517717542026245776112425464977608579393139326625570382720581935831277087247943498401914385110950672285924749397893362890929198690937955824333356528227221699812170657537527194835470109335819481292929950761699517489455591938934294615037570392865330882792405721994235841999878267256466019673812141043904288475464321073241294521793223050562017526174774012204529048884265246081430586285172984630398365498164409960668005744775893314684362434886595074099952399584605038340431668883419530503048090435983578281679018502379309074306990834728722601628615081628761582671084858707138676372475458587546654934942920180626833301849596883312550193065181228714062000588695199130106140146646874249569465849344382852828318203096008389690772032384869390803084788100754165235405410707274484979968664093568821803457839857988320374796703471697995294275650956594127662298628283757988859897333703143316973041094498579855016946217193375144390676304246138846694955261292183006081505118728999853376964929849406259531205952925933988170121060037727951582084676282461125154308991975529223967185533115576107051359323722820648839941341479580107568680537020154052410644977448226678820461387389916220630011644144590006484471183638365909141919230564914239665508823320602641820721829014372283432664270299486354633504223734819232918143544189648507055838415022195834820623295937807245505991676243424123392981140963291074174174956090788225647524010474105125353928762434166529789377544638445379206295746375395357888891637879895166032194926480169072023653133220457306809967346587099449450176905517822694520360673754784221349046801332289743905737402158283799507959320276012822311586999830859790374455536470880795541173895334160808453518865154287509622874482011311945963306412209732235737725395876657355957348863227550055899312149060529645924250236682289309759625310912037799439636320780491282857371146869872402788419612126058328072857081113333489246228598015482062376186446630926579385326877945943009112848269303300488462375205932916169720275980968691737320233476812157208483026714136611696226387667231525257595362746760176728300722370751406825621814810248270913846863588633108782014107237184855712471707832991800389122704790018556801315217671784382740173291432765725653273663363081187147310044090481897616018331799099180619429288214419408323231473631471245572637533237079271380672010422750051695225171026835014664512592236068766896068883587346405689498115099996865779923276468465154821191670590303405491090308094804261591174473160692798936704020144545922112117939559775150285491173885903954826308009503491087985289226242955452062277498997031857084371306451616014092735185498219876370325069500371752370424483554892208533554884625692567389827241320788623880893831836382181145116298223749100019641481976030779479139963186036746444746489077102335504292935632323936245484103730061853705956629843359243124112797870853354387469321539887858017237699139966627903809766026021116105848209541285674703659961437795176011034117900629981315486916376855014430276724908709251179674636042534679630812358516918074988037615425681217040923253299113815141050387163599790355916772512134168934415136646677317933187396204807810087071709108777224128071439411051288051110853147124389194481576425367714374845287006685750381493956475170867969115679612432762990994187759228242699215701444773751562621670755167867858015733059542185209482031095989638451503071209876984361561891018259957870054579190301879278408462005291799312017654285824235257995425920509008611715305453241938797764336852017690429445433039411735095372424377592290469187317793292134688506991020917574485620201123617783104386390601516446896960942397168918666000079973936901499313432129048003490476759217618056116720320850310699260383477861800966787139776558167117344273469927600449765130003264392121774679150220670857715436299754887961822582223368636262480409754145438034586064457542829347082239572893499371631416935965386955261997570097385174074089862753052858992300424852227130616634033237970452153190380838906663730837016083827467240600921740057904244218612885482481010751286821461078992051350322632088513365751913087351741742853436742136370783685661525993212769451008490970106854822230097442002862075485416922854976547440755199080570131322867783375702671735598106333560651645778254092396134413022812906063768423363930728639685194808522482983351100071182601613466353696548304409771186806004451646963296945047732027827655328888937582584438032950187773475330615305713962736949387997773576728283027891646030362216518815427120777120773889118609404179469889947174302123357674172982706538822492463801928431286476030146968478189283117964559703389028572632135064491671673058408513632811460758753854000111329579977009256549828597618931027037848291168211317732895342066801583969558618855436580086046256869301576620260207211217581329961970500962884006713168481855454220768413288530333397588019949801313943807125114318134198240045607023461296988188080290730365800722934837538839437158751689203464856900923624251792324949740993571035276107142260532239160998008003670986607779744338141008214026432296754038184875518990938615122090606283125196275376587343922856662195467343391503843111149296865606719457072465950081121940166887488300835480829723396025738979542317865881176433605530185156651277400176205679037704593911814894238583006508235697385831538545571166408938575058313004286525502823864512140919733564230935993698453164019383431779291973135795891727670110637515377714800414424079383608680706614845910657083224736341050524706983884146831727404938828690038693892815589048401853920591484657093447986509471788117075986925783922559793927720177113909259743908933783281461585786035182258441426754186410927330583371581171393656251646290249238445640084629510330091769285565091233508004272916099314012437781743313354487833439133381428650112409104491711030385209851929676953485744388221358307769034938825730090941466563216683366432175347182260382736785178041491647685241119831501015894013454634813467417338165319771785471292105519761754475894723495059396869489495131281658160301206355968932316782508362617678640625054956992401890312933251316384736802632742985716391597105925401156610689963984451349946271041295925349480308659327787179475399888321431989286821993337823561610325099576769476370596880821330760642769975092280928825941939553150403774048620473359820662653866456473629681566757887014809555617617549298761920057305683651984854395062976759366912238114375888469535538828164519153116743249643301937501649670563513576650611782420634260979344958404053196618309383587069875945353600797583488848506881926008585737489062890565968458790181845653853200694996225360925437546531358114098495371082791360180739762920620012659394827777779992376522098984708573365008417894466916599467102647481205589912641272318958014783967016581122538990769038578529358483301788487849740496987243312504008848463135227791985128210131350432434681372465848830992130136359070611402977392527003035614600242713946604400310943973989675279366888457652316449395066461230991150493517231113923858824254609830406063075387731186918452447085532221719295086524952251866490631976923323257782710919144581492990913223141909385065821196411225307210264391863295092839634474442259294225457775725099622227041661511061456630200890141940893886689462475675441356473786983528438942941644559070567836570257734364047380468115045636815249237797137874199860896236531016534392680942236929396034326445377652743427281762686716652577041857395980891091335172518665843052058091002829310677066501164889636080410599263632635115661820056956843114193433076663872028505208565528910666325254914852909660147256557305007032204416806666932469436179650019642671756019945106346899815510296780309319963074138736896062200572519549817529341149877199330765708498481815586993021112599776248955088284149413955571493813334156401290149570482168397705222437972442594407891734236286122622446596492522906873765828925139381235386754257942912461979717002839103788421813406787540063701953808140679012820959625022732609099081905617766208972790052560921765373714120361281854216888375300413644836834753822001935231303246380411211480325177040018970592872994030117022171937519727843380358524892036991846292700866734192104966568334030315615855906807993705705589704470839460651478091539922372034253010912275232267727612048942348697744325801174310459966371349896314814101413903570258199234888298500786696180963787548450304840416812792605105350235395602657196275907042452190084985409848989909233633502454012318922561489228981956667966981068772230706005493445069430370784310653718207129592585477269013109714368115416900313029831026350172748122904764976274766836622909671590039834932662817960921823288770515158325216699804486235961119891123333364338715335280202267938863455143336463684169235726874589775937828455914722527881558674887430405118752428794471571735857708038590687381386736226232563960217437537165060440455378945222255718854393171909099671858015050006457478340459461471947773774005368068616801163518358829907340525843549802981059478936951388534586362008877073669759317373485461271275297032365140580712306840757407446734741385193829611598546445805499864080434231646971314425036200459463706081244841672147844254589886676800890027319837767682342193488668281437951048468089063689834456160819528184680387392880777219715292326234442807420410332195744487202093872251713516440895666893574471898052300505441107946861700639534829272655638100770329912952222237361017583789572635348898533168568223913597726880760568719407124241785379846692411287323013228034409925466324200698735546182660898394080777722286739191405426123740761965728538280604866219450178039009036869569990960037099702435753127181027370822692660857245946098615386490706013113359423394481401864127417989313059115176866509111117408570016475360032749043812931488796801606398687437544209179388000595910671431688955646482462164930099517569896179371085926618897771083292664263034871817637558355268917115187448343562892433100474252510738844382285555350016475183795686032435869120246929783682301027673677304614370277121992135431517678076416039800849347838533330578056757487106808736982564864290444688421953725712778180514776378737720248683330606978129012089397976416211098704661463237965623521304968067352449937429271198877415974189315803940476139474624204839762752971068672238104973521345556148206706503460444663064260714254867244548001976443356888523903584246477506093771838963791697059985796079867637151572168642464271759101383556179850430229713235523694771709029584206660831631921521873434036190805383426308973413856590256728030396476238344695724798870596819329233319179544962311200316937352884712039306677490707033231836077317393608821493874327238244926688077615006581232955132924173423628495800348584086910562957480086447470996051931833737255354167858062735108628651788766888272516406149812718735954329429008272415363196365475585434352478785895705949157336077171606569966689106103969095181525511879071087164389281960538065026990618162334492436737253453938328598818876911313120258004920684473277565335521915223462685290610623304295729406648079598829351243836016616330791754764683227264347497100245431955323797767040015526544488168010643277456509562429613168708177823846933220667286613115145477670006403388646592765918088410012604561714659273815205434618806855244259862018083669283071742273730081793904209802625631434580426551445807591076911784715879067776756851221974600704525747084422979900340383427244385183870008245032514049311377422052570316948228245683770073626591789457037985370521949319998165147693693017125265798822122308331797116986163940556228058146871271007946270187961482825227320544089090541277015346577803585849866421650458283152013218730894058503476465815472763590421448323469173892476778967654285499701728512134882569140331375254978043711322955035431957028493510413253433187802429288509570555403301281728216333070238372503234861545198595025874929279326061844788574814381223425633633006540476966163267198500036688421137399122748905858847854860796306804893023092788262223985786224608210394726988017664830696746383819457274404353312341080049631327803213221065887227984129112541593495170376993255360936590361434782860687267137486145841745946662309552020037362320462831641471396727593983836187094376719242772688664595243328876085171292329737969714818562382218473482071782473279940630225792106075276442915651568060917442933916558994898524160197710522042714917579130196768347436257658341633315050413200842020434113089178654020272585199208969357400876797550132192829458962044006940647819787388330606943863514326954420533617485935611987648438738252195033933106582661188435422535770303263573875975601919863934614001240668191755803304411701674310164730227469609791844845021335353476468437197768326102762344088994028645675705001631896597271776645779697865773665652583195977156565231744683237807752009696019257754862054399851476871068483540333345578521761307390989219626108010475994216880442726353933148942997338747429910867047692526274785550688112589941340545558584260058927685696035904382655668547599552811414491036230264459268867277763173472048896112574965258162909698603945138208857794683046920111980374271821395504921059035858771697324869635819993771054611874319038144160764003710733044704041322851446094345054009476673114719645198840009399713260830217029157526828385274300928757099228595517242065743344500691788321402137758086159967735599660424759309051045239182771774065189047433475749235157200863532333767366073290424606428876487287989788410779027824234320253187129638685072590937159948794016007846507048712409393637659536184775076939588413494483721556688979326271828846186711296612521487793801201000061301494335877861871018969854812396650597936734612132082558706739950153338121816803688737653388318816667086125284381981607003895803244970691413904981579664320581798553425681090568292170049776789790027869053229503186888715021968099814749295977953103065442311763806662575084225741043038543383493265063811757656364504142923706108520429485290146730537836206646963357300129464698425245308506420749104062146932756889566282503843584768516868107134539624908371273373187154930034765993909676048744963462155329737171367131845457079854218945134238157904686880215908347028288337434155484735503000447018089629011293466651438798085324425819664650631430050183767989673877124279102761054340676663271448958709962571742046938056499275663857407346859153373561085332987224961952131788095500088390688652759951254038499422197604781627213568232971473921874851463351943989657322921792487864218878460883864919966275846234758515768772868721494987066388175026213515112660292618971191544072724685354456721386727000582062843659484793497138737484733444318609829504487761736110520705435681804308284288237404544858863994805432492078477271448035846328566123003161433521150592646066082573117871278217930967017826826573058705029133647472584857960030150728950446904430139848680375971941386324013008266524668368793140595237732728102670804812778849074611083909520793412154693608831565322758947466814543046326347254036926817831407156554519597781272593921836122675663195297922109579244074931460238557416865866499494048400131677508282443401075330833538278752596871967692883033577576311636929534293332638314426735614231058179222331540124083851249665136485850562654978109050148455661326815635249587420898515817740064383518676937970321097781508647227021003999306407403190807170189173715845450172805134545826515051785973185936106991290641800654199410833506279107992715480132332794247355300655870154567543765445651165689715978895012759566143638851826231119145296297860372840741119151391163508678301644488824795520436473014055672979155432553321638024518767105730067356959425064934380450956371666610886290432461718155632338550515263202597906015492134469179230360222894387620513525437742357876252724440890250390978934587620865614267106475819876660101816457338293935856436063896353263105416893326329158667260603685065093768987178019342904585608012407092124149276991533387038904210126872292001860491300101332650994737582975552280331223021322277056425770846384491816793835608749445879488828994216920408093954021807099021215335954335222612568468664887053402932706560586068579628027660672156964133076834849275735272111186268684599630512596995623177624976184143773667450796117827369509085304869735663259871048704038447415279946071336777471893390745682799671423680440100669083548290331025969814719360459212664790169623458947829490035057450396642073700180406405061109656927548932822722029747026158621342189276149089540198991876292245694276468761290616680503222997342366443088095788304907509648442402663597209904310342068838683075453397979832793834239342810078459608375127514187620897240776722888257154355402751206868242725628863231045364012687472546905658203319182251371982694413727147954340354133379580993217497934511277775262480622893018358015337071415223800307803585433113715140005569721471056679452659319197033384075985133280556152940630278283182967796491042839177409369426421535417999827205726149690151147077153693137669381718006585753740918996230695419054523225033367079848323057517471289123958198585948118005827121867203949554269885653860475948342999520784080852373320752085065996731614578229824917021399153334423910003127312721752435382543984396607614361449779171296928251407526199994641728837729875660750686491592100534707202091092042068508803028645181568686984883822000546580343782897069827226477102067299106489596440870916575085307980134103559780264004676540609062243694820107933476211124969611352499727522911766086696158090105908908791315311621075489912386149360176519752066216480551765880196762824986486272554187798489799317747427861487255824679754590827770315552631455914373547475625026004855259281828236384161306436095129312110934141640468350067881534298431080234591288087389530091459253404449599263791380855463694550879596630945524162920158779750947672847491071881729558621617733340139413997510720956441903788692155062424839580923558996764444124801403952675282141171308491417643471279624301807653709048136362417353027625135719762579719657828169038097076667549480042415838418680103756328766931481319689299445443655937656714378848161018800275409585038410401255156165237449881300779715657559708309539856452429931712362818041920537438181962969496623011428789681590463174842522471149785754884286456450987288821120851197948123837735074385128612156940178370931053610622441021852913875065550389260549774411084377493669020907460071128109694024124409999544035929805726275076765927051608100332203135833605685540491194255743048467076087563642995356198324990726820658752961160502542246243671386819940360575277736118190092307879766128670137870476698449386571512339421220727811497597647196851579534197639956162355968411732901204095576835855696802982060493194800386856106386074393499375772882283941061134190040717270000947513377685653558399937276773121665105983522428965227286458784922114698460707672669887514248512349228139677552182687404333654016873374121612121150949945606195714823505368135356313587760255329269461858062037571448394082546236318639051014222925292295523373369446890868192240816338708116438216372896723762936042832547584642044922183677813837014892366284318422486575480059477217669208596710146871980817607380636461307990321404960979427483553541780656216852744520096955787608225873192715737078375944856260067597278433083155479518907758890214542993320679352422163728873426915645137407053202608519913010039059935194291593304782541220334105438030845277267269946593785067263259041450898536726793547215921687197897834520420763188178987097472026081012519778407309383624637182335314062645603297755958043687302358375990168804609537961285467273438160310647153274665159985215018693007486724766667254201804731804463934587739667130313677334656960179140238404888864977909063623708327073214803343444251377972149060722949134436511325949830606905454347967345038562127150931305428012122594039941322316873404936701991385485373177815855770298250620285228103140871158033752880253923126947556944750789127472948260519257988133488677817508185015607315128881027586305869934905015633228300198176986732118404464212043023786836855945558243196861468940607978034537007594055245958522135069748202861863304101857299867096627398438201248493457564599615210832656341543300408782662875967113339638375162503846655310074124634367212085210411343550868648306368553990151649585882413730169659488262085723667634310869496093460222186527794665218842182342541231486529312124028653464043141562628251274334601480628133142864446001106758464267567658387779625397139560665684022808458766174584800938706923435141500647670767206153988388744378480795315391836301930382160737230507063532741116515767939275150410854310949029152185601092059305168272193149218915112541622506162789866437027031862698705644274906380926241463966615582286945804708483039409103597087287006774369871500925387682905781210217625857481067515849689239064249450066462058352832156608498869003709448073494587134489026164693815457021612904716291946499090727608848261075851121624969480625703398954038960211677984560838218917746296414241909858552346471543001816502390285643603802839732762448617655342851926043664881136463573521550272674758131251704054960724329124244628294093936104758509434023249461191706122658973883537703219126012360686991526935052456918154147625163095230781685859613740834760774067296440738328645439467040796193211710716729623893663952351118040569604659232031249757672927201317897493795356826086320029842982247603276328072331040715171431874974554859249789767200002019817764429055803485679599226435488616749764971264514972081246285088800273615501547493934007814361026106014441988046259584411488984237551371303685892544643984176293587208403287741200002180892931982230855017509485366464692286857724478853222999910574213119034033904497618597917456836981250131499955634678206208495890711706694305253154587780190836556150107545463489321504679870144741876979298597197561599432566606316489531993163676014212929338763075827849506814483608060510895113147017460085306790280050726603502401389531065183108521035514405852055344060373372239571442661785200294674268061834649782187807608995562360851630059742987805081846606213267663200207334683728551244965273123314252608645422005743550784672017853009416476539990519387515239347708638350351794808997998790973307407456096417703573745335772122872961353452091237714143897369958190875543452820122891961834487220998111377333508430306081857045056056556054008758133218590251001684821730477098082168115135091158550035537286893023718411902234172383796164566467297534206708429584268113546263270166722320245033964396578770555379694916443102601336485972100001983089723666174992542994831058963229541474528205104683078403180363156998937207439080677390858532881771043239007406826300452127084887474079430513582542055936135698112998545530043945028929564646894351855720842556088502662572966293855392027620540164095568584879100598007490977844860772343551175702902373384097793405496994416404753126790902448215286166792202639140376887212737365005718183129330624414026183948881190977334622201963671417063727897649298616307175861501793325620962873813607776569717289753728670987507474949712052153632453706757976623063282993870782054863654127605714036513924830921122129929855690546601335791181369592991150212253343096901368878210885684435143465983919869135144787096460896974023886806546174138595714719719806112153337193169157464211010348762553341643271464187458160834318485868102951004081642241689256568935362289718301820048570746553221638409114628691106477146528327593822569757747845912301047616213248888846741521802357030277335837101182248116789026441187140465648382320628045630519222638198884203890354111673030458190471779113774818712000701116996276180725055245882402734108917123941340733964655152509220851819684840672370648143726061400812871845977621864371067192629243054137010897798388940892869639171257591184501317960530926617729918879431677505445716118926238314762821548838385830873826206604635546551679623067258552261418994767093950553497080415363632889638494056487857818557223412317461757491384357894564587019090992113011593428327690497363479700060393001818533263618945370753819048407954001350262042570840602094141003511647924479639684710080851351502470709085557473501560860642274463542202270311380567537968702387705631850405594675433456748559549883045043089881181008936488645777711871635553756947375698261108304361361866834808467695705388486940570335085831656924536327403250289966107676729258535820576139947378238743784049486117629180874931294964593017839512836372879396911619889157283506846937965104235204110504356137156260233430523663406734787874310596957754255753981373754892513776193155623484317872950657478278192843851256117663696319982577548484081007826183691000586228243361566961185249784783873395920549194617881875408347731586021610688099695170175060808212000875140139244729057371593222215516220223086724128516043271824208981068215360725893417404739354952930269110508611162902258781877036434467147319312812463127878099071584555150934860061589983140302974381953666618297510722361057525689027295748233450041939736158894879228161168248716538848565490065499478913459600347941723580234168183207200841663885279366777035876831549516634200906140136285759161879392653961409396014799904426450276145921480533102159780581722254222137893121464419830563771144584860239693134188867801628535780517472061926821388446605930660070117572321089999243322691519125306333739214036374716722596345402963562526631545389015905872216803845163828718673003545508885643470995237337055082208065902904520466859251443025424957139099254152586734131488635040286194400510719518609916674873005714306312265657997757422780084818926353398469066638732970809404900990081449402274844444010477606955988413419921746001558253694003810549766854858043271892038186163568116913129135421770236972365802829895260810696841637371415500681459469130788953701754917524545002023055838546694276563191751155608330184734673127438279643924195629388818595699324177258911643761788796003508270447712699667784642383030393102897489558103055496070668420830319757797524577223400269378062821650497774400041313339413148661788956806221549890257033913071311396148993128113029259964725889582735420192190487492141288239933887490557089687061451529678754645120318006825892864332702699663811990702499922369100145604033007130208473783590565260700787991459964902744505017871708295041535115526204135127540880004169701288766133374008042052374565807668377079356757443207861872844511705050268556587998778244320375257541649522524353488411024196798997905276171014617106461556487287203708025143873610831272503346756362416233825508420230577707675551115280437964041739100700974718797467228422944043700485533537827345449662730953818850379645703238712628851292610758812553417367133620646789129068790045625247641874528977533344989518926525048991253115916536375584245550505831964678901932805620873720667432552818494571127038263604799855535483416757939157833044501224564203419468052574165746388243307987690251797054901702501746387119077539760604170211552343958938543040446085078493793684133153657312658606084902065760196379823933811255860952204611571930856412219142112422440454145538144160260560552129892458450579093615441275766322382245321990798690198202483536068424338998421789582131673395767517975937248762926730348589717333112687838413316159255729169958031843808799730587769131747597414453429232965624925550570077133695335716771565952909795622103858274529414064160593934299406509204055838236433445241516458470540975467645477256988939971280594242737887338715603172961084750981396326232313408900595645128133324234892479107899501612013404629653720026684407622218770982776083638105929412975659601654780580469864986888551324227939307174167972608209747046689061642518784958612042443300948678725654694412436093697842589080887928671623075312813259342500661739692964611974566488951517693929720046425270534721207546887014285185675825330323874049216980504253713687415015599492422174322666889681818601774395678710758782109228537430780105058972371892016938286136796732324165931434010201938523990960186160708790858263231345060805868634337150229221733037100191170749639132013222151340219970056721114856016192837780203320893661559254540989235014023416982352146889719926290096974516576421466607878181095511629144638230014647367060133492206952803534012699715628944646847218567844165989031216325989022288274739823677347959443191142421015542214585988106651560847080912083368967035261745747194059741753250691828778851610388788323149240004646544490348797075059860772550244610847348843531635818575282654623433834284713794227787991462130015057175599931358023229299813940011436444187413616006629259190900558285471076156549986325242515032076227534041404874910136079981529779646842095120751638804747846419022983449139220640997828498544842779447238257524151473025371625947515725057699415253188827022664566995021609285270570842233067041921757363787740914814004378530293907189734656801857388226089637270254965878737232544196579383951950040645010490449638037761267815679922673543834444751909891301154754117017273563918786110423773474942560424087566460494883740933023828989525252024833100073464687964846621235224951824483279549114285565890442285473876089926580062842896980448608777721598136580229319782019655721753078590585362227726165390741772458532945293378857684730039566632491005180320942275338908978826771598454155637755486902304925997345399812869742956180520768889349036379022102731817543545275529671602146378001390906750874471895192344222705171412556471636210292124027411558908120857005906802032648901040780383875571557008350549107616616911422034791669017781043305839035794499741850658731485879590145423802003503572362945281920495095315490175327202435787690097407125138388924391537029880703974294072050809168035402360174419028396963883276078555840595904574614439751790616574642079191015848881577082483052518722818634579507104713713128774275930379123939963988447553137953856675396108521948180827268487892614535324294022647640491663462649263557312471248207650516378049106710272268286514791412355148753612757603548497023111193952892711477843153337185510631651947984497607809013821894214747518360331884821387366124505922618771694607854803049023730487875153033352127938081387912934662612588778285239789090478088277160789969338520768846047532070769393095434650438569096791279838755788394513699970036270211258332622255890262572942942485794005678593997088439089720738606803629756611034719733407404227619601354117174625369638856022158055550929628207376784529885921353202260793179030233612623830795857928414436680059888457736288611192255174565381157124317908927432234058705739511191080944898450994708628193118699691675222306326114952285992587163653154823607703428574570220671390328460845569225391118172325450644578016305336333994188111854870813444431330024068955173303751412486311776137536397747043697142614291327970994959352450513006908345004296602357020487354524455616958494290343687093694895891901103642017133980737597545367706257443938710800414148893457456174319509794786750598936074917536955417896500457584822354694457636971451400812022937753775364132730901828190057470397555948258865628887729134861478471880163153981246468297348125339749481520228629226210329467984882443246703130111962532592390374878420961816877613373283921446363965172362502351861552629598958714394140832664120598613367240680842512101549802789747181704341454457315497461702429508299152937025622514795678549450099942415262286347437730568369629430575400239556390970752820993184420157093597185338711577667550491181341597857729476967421494919620599910469972901126137110474275938105595813001849685129978686110479443620103999183734352462295114399525764206816434647259767984384382590695602524284258161668608830000665455111849807002382863972044245584206664525333398694972576332098004244125266961650461823147080773822531916953559923715374364747303794026104803207435211357419142888433774582985491930829903498400078639156105092713233467420413914308373604445164847216972337466352432949732378537884891854132630677037431122554684552314411625189508092225545664967977993880507412260355883171134931650210255568754451123602020329041077012027669568783601147713665659378539051823598301400857308076196630897100300121924921995204927362572991766004343513453365583832848205877019481218189643579511685769955883891843427321106233038096434567586833472481137265860258693836156409202300920266297703881949799973398719526632200907548077529457482222307630893679265425292185104533724395371667894776726934786897459738467902268952095756600830637632066319579224100840045335440797384391605017802390726427868756605524416658451832292810548088973814426201005207548302651210685320427899013024633005788225621067247516478645755671059339494748011545392890634093206754826465152721747692440262619118381212115668545642879288698816852534654172050953226525855271783004911500301996906150480233410969174929455585675492227303252347863995302263715052243885071070109354845789359825278854161583397994250695655973970278981788234064266768327966936072747533406115878293749872553111826228962826703970362718362542843653608419879665655244837494974121608798031478144836916894246052716559966450207244988628897637559224995195306619490726214344212462408531070007843986659472070381054947439364105022422972432255601242097137574434139536435630813622457971438791751816882293715487382337527885329564039517529465040499689579497367760264157424417294411515835283249508870291807787123832613247572982718661035382909654520369818521289156159747738951357916524988125921098621515042458823287390451077434854844387861126983109081725982848967585226342288055979922721365717161250536621314895681266904335887303714091937886732670543342979569259873444984370007370930513645688018987657571855067137237488363206990819190993593902702422328021456576711140370804524174612059400837759304878327445558206810136702489024474731039048291660450123110372577922973264381024547726091147982047374373187679104201748425210542780135098385069179834016637441779689197216006100938479788638750738079856975314172987718822819294337812655041307249518237122588933834484808272208018060754237181455956699229629328514615859252771361321827227485592926775095134209800060201261983793185970660767833575773201846892455065087933970341522676393989885725079283014008095029389112735804657355309406885988887250368844775936322588894885853676835004739921361923203726878829534492764693576565930201839362700804184017664613658942983345977658958951687324131830676016561138773031807216638975207192462865322429928322089783780654834579983667026098659001692352776667191490297482448608774992764789768310619441524360123110109406458822696580966727374657962012211774470802769332692339034285746202923424165690800224512841059761673550904252943857350349132170942843858780381012102447922478252978409578688131937950027401326432352082698118041426148369560489682156475835181475050464109315747339611102803897482648016182300956624195971789963862925955117928766451839355098592775259575996224694723684311355820225651598223371715280528608160307819892675437031647489010231002762525832628710121698116474275335083893434544086225264927634902027421930304956347718153647662472128336710234339724094254042358286661476470789467204848267783071862455797860835152557158706908249658876578579814352288368944876918266430671429073173790743840069096856246869929292127243834851264965733045223615616471280017955503058170811568287750616672265897413681518189248100546822072037445508968929103334089402847965160865323962765546079872947302817412037206520791424913168955868625367169968501161941774176469306520770804298311005050159726424909586782568176434240285464391076767925392134882836349363899353213824197478836448963970976211431886131350431141811690278353080849964248509438402699465023219191162267582346889434423360801166408312295470766059498652543769324272190016922276301701225067258041029418155799361589965982844121502740463186655107997660196875381434034602006606455023750020098776667346564986536555047492256678360861003677952458949179253834695207263448159426468233354742109550100903586028302443590312899836591967167201031466712812199841493366436627289992443355701413709496034089250089163541740859709995083844263299016956757089419193589434994555717529261488990650617474281853638131013843011013179020036689557181918807548416953868738935275065458553362064205548619021206699181145645707472950595737471699149894988663836350710734543722231068501692582327935786233671714248809838590366306245686850535304130613514133403945517195899313533488349254522389094773723308163510918223584443722578363026121379849891264748714011476038083265689933947751117274660768404302249339294941850529935068573109285240440407839747064390790046909153964630425910724494290798700113978921599593462052622960703330026725944790367906084304077338062612495776497000720798975351305616945702990033702845947192213470946578419757294796855832078130627664022925463394778625603578498845821342820168715386173162669068269687358666095700705513304181805052504188293312151575675695723529111753359141835304155081265124479052599242475721058533638394660366811765460480032759823852693526828587272268123479220638480366066558705219782365105691325995558457092035833630484140845340163506072446004919612844117522931931706657932795545564231743764793990702955643962542187284015967816930529659999867712002196281204213078391037372171843898909369492671840277494256861424014677151171261746795541299369052544135696874498324184282808579765318030195662994129218360404378263612779609492139662598650062403785191186708567121496230629218660994481256113417652795718799914472824198512953855494995508137655408680341579795329934328810258551012846052412074087062361929903423555009481476665551882513295963042043484335458465408629970727096493749146271237768126321637867001546865077690934372694690684283749092246883432436057007455064089870399139264066665053140681445268175431702160946047599972974462470239587916009564899773410324850807926620362413748416133376429776442872980364968178856694311442638683900246010758052275950978226909709706097966413521692576141408054705803818995283633318227534205876165125685488294923729995936086906924274802270649347099024431326466366986664848147114813151359037833454458156989824862083587977353568178333644040642488863223026138278558601487457339645588850989034523367936571470455888915179575274131472832899084333319968553204505659758182744501930915007513038759830305930409717445202363775561687537509015577269315283390920118178817337052243003245421474864389242529796255114522969354922120952819117634282833575187883729541786866851352288011099802704692384072779758661637222275360072228982982713080562377696899944513881080223625311288059640035583666510529403549447266949110072685173190222034233945001693849905152269023376213812147788742643758927834877750699735006759446980955775230977342646060158160535365427579582520865845418216591358714805544196052229180426816036567284593973083442843157907042380735563603731894282090875923551014753824008709222634169748088677577655809341370059871296605242439287979531141017948865144830049715518095364356439842102467928105516372826782165824142267753977187623966453533435076074126841454706693589208004958513102211900294921243197248717065970978556792712258700902948362887649018531124704650451071594549371177973683972019668574779282339511424194570480155363472351640430220919327793752070307205143792529230749062244478167983147234298869264370271752409082087511062944395163107603354837776908315778929050583100972515285116055369110598965891856186347203152021773490388039101628172239528078327834867129974920725589183509421069771048513473382508262088231803517494847162863524007925074408512707456675390151577735827360448419860749364930269647378285105164671655816965009513595482881652240116577451987045149231797277956013231467100900567591542003285104641487235634003195533062708895424762923946188423854825223853458799780361548346622867592135228957837075993514453444010835331174763052123580649198200572488468456771355139488217008941636420500682937887265258637708003882095224308129960271531980846590772361576144720865450776166333228334450985686948374730664997164850603424553396887096062930098886069915901906105156409385173337923004779601958928110547112634656150705214215019955799513221300341433361814519791032307155985190641908528461033249831281356142724645281716316969155014800401697306156181295476994017110946473235879831475804800445499809902753609874953462737375093208715700851978993893176311632077549409344644860909663031711999287867780013498251599380979150012825566957099439982498143388154352759180560610301063810215748612650775122517314226795211129168215301670849719356958624196845792085937580191929842265950355758554509099461996783864188510692267903195735270999992523414819401274889087447950487177524719159967593261411080189751891296889737246329945939614622041732979051597969093695684168955576219790122663442208114592768772358597849215533428086714547018037282703824585606880688802074379690078440501385858551092362097823188062766125835056500390358267375601728224685392566108801194469937198899182344984436504035209055530502782352152912004355699987741016778991696438469466323924419782893259757717544686540543661910945811857719655547513764183242948753103422060251179940752946621404124196552835401406067258306569768546965130508547193283552401208082024891436534003199875061371022570118927491043816571507648951057805441862168949527936980845040157450281821919960271288949383251471804146422518375457133221826591389225326924521961370733472914666266156387567423363127173585841756853188478302310633917690712697063019621046022853076035431599399576767398314897323040506949890575561497909687350886047941267275336488889643172614774581059201752417263053760491335273450297336312436679179502552056158802116519988137431224909810055140784471007721094272627127931547376596863668266828096915393690813903103664316432691555131164353907906182030282466910935692043388009405051602214284763350218978408224188980510100280053692919659502265641275749248724660933946964371546702643595389109271930848888293856882635859363206609544340084956598614971818573681371413394289188433817424715355314228406652531719330024469589203459974336933113812963870932341591475340446308612718080170379742033183547276348117009072635149505845448292983132994631043690088606209978250254226440449260315834470694222388335666683478338271508542579531292043221069003448478422753453404271502533712271818769881781605312033435658330388486269780400659096238477613507731556215954412119085640774741938371345083722164203913461050533258419280337447535710346761806857293025823924633107144247256371987433646961256857109257415694904880440148922912550702413077300941161427497584345004605181420811514672152145046856646025028118080382243663694171359807574469139996990899833771811369206168270420566733616095989905148265661687642213658494003251392600761737021991008781925596489565093990195641296316894266337224945095492733560489701768747700745468014868346467976437091053264303778417905097700369344691551857776806671758657538963580632292728359705830571335000974525110579192619580689434949596434169618488575386782167374691908902421481177590527668867961039845064734146984363810203650282401226507664671403372403708863168447307791246771890915644898921921179972037890331635412168892526059210125901264726190955721566556192255351301010356914011778207631916947648713441973665273011739183373955765095727416724319459458348877790546495477884542551932999172452857240382207934764986063098678325680557595377483423972414936783093350590832882582973738830502212714775821203975169840736448306330927576050304178319803999056894949902062865105098073804835098187155305750635695709037303460407869430097666521916927229849262306590003132662957225378973781313251154231196517062289414652146423679100884642858187035474018038973092753551329505279295509710056948659923380790569256574262607825349838387006670770710918683523383644743014051351687957860953235990889091838165790572067176554429046976567174473411455054820409515374942198232339359649162070977144587604263958795781848322674774137300662615732349315313040328661744498108403147169543904551603353690114781599684463910447436084681368411773693511470596893403213631841360317790403144707481543502695489747484660696077035624902873820583536278404869788484372417388505006888849361404900888675466028471625057603302409649508921477016797326080849228366423034503335992581779726869820654294896255892919835818092623506363290048586969266552419191765187486190561681502270048258783739534077310115278034962795494788097739369524313665501675106319740033475390878780740425313857584038353473806591486424513509667121451318389159304568868171353994094605927226619413827662632365447386864978119371037460335064566718133500541044167895706814286811931021585970656050143892939036748962486237255781016276223732907767230387725509311278562419878508661416226269390847585844668067848499336565024192567061899195290878021816025360232361429675891655867431708621799596452891606867857426563823047186244012196147124819935525191180423299496258519489515281756616277286585772960010287459927748951492354674743515006332512882696278345931727077362970699662393913179977712412706852753586346687882312942235903831274863939923785145230978693500041069899500391547459633608598199563575669763781889789492086307315456029926892661906497758469440786825826122120801192997300389363492541073716504952467681327928701683083971051348012776618238137527971587034709288143334961299065225693289975509402492357727383595326781480682025504207281042080038404823042397405491338901377802511025604250299907839772277627401249526149404621501229146621155224552886910387094610568326306561685200632774089768526829790774280423273455697617288424271950824392340057176923338939865178500860034594204511026541947706626620025586401442173236923103570734780814490884732708349758825319086008928878258810835646204427740668934230327235036791020839010790436276215724929809063522482601844224021545164391636159554617222105406145934881780388988784940521811586006803085732045154980480261736316627303220836553278790477125473442826292664580310224828633693550489468034446992624796659827693689538312342713993068798196019713793816750303688519334107576554963685632448983958638620662183129149601749791839680548516596492520216936598931671017478472574739406371191158350923166702028201645562073773657248822309988134177045890907406506119103046405757252731385208995898997799017514464797599914415163030998967482789676535145942596175136017298078745247732511800444626380392246963092562522337694279751807545042497689816601887058564958339287170771404358853434094895084176661678755962135361734913020607845243412213692862233476721498471089908858195634951534096366495684004891342549714493735978974464897278215315580650202591929885916399680598801161112653420185722963846495755109837044042777229032611335959233162867324414108062946256676355540264270539081970985172958524187891964714480139674101464788610911795595985627222964060513633864234637017409710734194558593354168664594352417325887956637551136609333846157408028577356937256287151900263588445591052639217301951830465053667918830319641392536392640027085733660446565058834256118554506173002159677750038070238349873347483649476739203681241946191633342094211521587815872052265115082380807839327659198989494219708122550312270363964751446686619569488467966433112985621192203655166973674472645454413542539579484969935049383983804558774126464795420076707505166987638354657707295607541345061672874480185203517253366279314212081126753695623336885449007701274952759012408659170149673261960283523135842617753900730122859345397066312463964377506957869035853326721833965464762748697758118386115890047420140464677762171124490963905241581343055022041183372559961233358394722548930308217055090345299557557103280887792785557507853414252247984430756657086044899684039050344257593307287139730785378694768302383971116755201947669640561227563211668040447409183652306650183431701558019244459600431707931721098386976883560743292901830398859074873611002440600977605724897501321415017686036314608012252878820588336800717154717933329368326079590741351902984896339263576108086155429653880425764083494072817139872697137146563642933037972332086659000199430079095458199143557840878281619620971751934129251226154928236718686366706374273462199414763136177502510925590057337016875621658259676895460822855358551381026030780726731624636811198194635736681946940236226987303359214477847349340231713818342551044170314071501583360507853371661249091881761658219159618332176575604195401845288172673252859274826609831572391760048083482059576143272113482955217024667167999488435286064051415290733447158227669120835560947843848583625466707560712459659207065527883870263251987726454131786233845694731000745730725131150151405030125273351243202245493437590967392535034430465655063670482980114824944768459986151440095531131809961357614719460452554763100093259592497536832789843977918803646858609061225269918804095478064710634957899939747733090255110271946833071004609110491086983106116315786656176120384971695558490281249630463916685880411083185326254941474652173487859584353712942023669479436039508146028345564160258489256327244420261366130631995106188243121871458137852827665522650904524934707877283260562884964737871226256653293512117795361515658698655245257960452496234777797090349508720810822868519275777284364099524378353464577109179823025831724517549787439221889420200089772062132400361661015088853599004422787432676188022098843825379678427145036071146760702509993519176265955648196413832392537542378414444999654320346520967087053240637278447439918381510707158931753140671324592197679166744804388583082274858301564910573276969374471080863529112202796394126318249385528517503876134518731620871683376605787773331552441559662362419679929136497543680474640504159744424268336744413042147312976754632334323744574662682830521759199921805587424355824139479116817952674752625434718201986402846309335125254367822656090181785008839076599353951936751208799208443757858000528977715291054796010098508380658900195407234586752719739054177691949951570952714077338756501863105134986190985105264852790418995126590745038350976685508591442805415962898561963894222273626277898602891722370854777005797603507280498857981458924238784964889148900858180563590977415662463948302782019783565388986432425529237410562576576247729431317047339706999704417905255046394609470633844205920168191106390473094753034453000854644850508820250768216819785099812077028226800649135915921019458548139975946586029133643950985081483504957519452011160010265332877941768442942127385505333162509774088328960413414784240564648102156801570155251459180347226146287115553082254337435025799536118165149360822259552414144325585314384721922205074506044840440500988339078974408756166264775573242727196089915441654073020564774476234380271185335965879588041134982396858344569329123547963576398800475139458728416089752176893835613509994734409262011407226683540582755394184561672616805879906187802272768945806963663909951412619532440163324586588350691488452526226163418376595038581371339212961759170876268554827265500928898101193718770855209515667354964869151470451531156394072276419532967913496626978480338716834815083904630054394223364462432763405236068575569911951101523227659297217318366390712611457826683204004581404921510654696860935739587019036138213291178536366923842778500779131206998461989733064617478742671856038194289306775372499585706224186074085564723086006972732775578580578639520331299660136417922684136987062745868502832242542589897213870063906928890321469666842498382414385554209517183891435975093765139487523766644347408176925353363949147561550032764295008884525372737951709586438422088919556167616985962813690898651240944429776448027813201109716982230437704890778831771182675757050111405515102673128767182020321211934276196033385955502849590232062694621075952014832878540635145037632030843230470433453506799412239846982263628978612451271667775110585957443303348748317190892565321887403740760882215125125374594326391725291253164094583080419526205084759025457491455213815449182023216837553725426923111774316383962908704322292975786866332753699912943709711114547362506813462776441462584909498171012015427177818255459193338331086084196416874016184709401545218224244344176344596438737654552622226824633462247244051173484978404182917073790894018737713038272895792590893597359965539032372409997702337885079838760190559900837787324680575410773127670351222576609450103037174472357676562841554806162076150171929952234991913533554593512778313212318237573313268282547978053839178965134851563954424979208855806858283228279566068218787218837746453017970428525777122362550098693778707984467575032371307382848889852041701915662584989077266608518863770914594045191162329463069748853527768482210816690930938375841259830167864721658450800416793193775875720649950926030552680368628815023270691843274778719273710293598504094349297043796150052988899941526927983909171199378369856839787061161246943910603652496176088172895876334499911689119097531296168699698209056003203080120838876200384467763446974085339095020932723052644329944304639736266684261370935494398317522646052957812288788594938782569062755789764334768535483472925603563675284131234681225031667351512804130583436891992920094450381642813393781754907780586284437286812683401765401149712358874554988248959596258479862230680842745178904426049914153501505737653662826323540420767813482543511111985248509162889965075515920472103484377776394349819169484336077940731066188820209917559704314574803264772359935540910878786636514725375863842806363263312875700227255188433091804742163764302893239504533834722145028418092810148527522954476080322600437701603190369892437678216394970028819549750184752030401408338959532240602692550482548174056634856553134085132457506972960538780368203306001294611190449551633466443693720654287848860596254625364894708247758341800576331461418887499880826006902522121594177652256424461785336884892784764565604371156747436106645333075082820696142373076909165206586051058984682930433128193335035068822746700640501417901244326845840399977232373198024537113134695476214272655425645143964184362275762399483488477711368027143068086563414709994309035129186840436835376527707995834558410286565663778160365923871704993173905598613425573487920316313151951611133679099826373212386452843979771960704469030844777023489073559278793310119664207180908267043468819573161438957357709641482502555500746369062277929666675449123982773852812528732861759494519948564441953592253140782597916163575058121393445179924112575382851390831339718138102139470127344148461794212787065166352000218044973171854207862794589564104748677071491823423212350410955166247215441872601497109921993046873191185005895207137319929592514556282020065638363082726128484316033805921484702915345867068908266974015591653576248279862508460877512464029510164314546757982250332572594642766537304213997730966532833524459472462538755018203775269743929670640914218688923531930792363782695008274501448274207129397162970336314253002925967675594328781336364015064087365714136291997144485629358120643497328641872012055469900324934493445060839932238864466993946510393532871927886323885094214835515303714736741759785217137295099665722618078655198553618175384103156498279539496605351334452595788992796136312064255540746517312519043753306406287954273536513345965191927499345541546730574251282636606162033212203157934846729977192888046790780803593610581294718894618319080345255813377372901869168986615372712589794790242078622394185740298351749763146063248940608972498495079389177537009148562955210646495203487504358223591633947158520343573945353726353767398301078573548381432594549195340636133903784221323981769939187723195550831980873599550384650451554094497878571237176233523573512356676532112659655936027849444070119569206813087440989248591975298009639080914453602868481536814061101357446951160589500748678503224858787079264641842772606631136980017856299136112799103422791544389077127556435528171687801235627257032265112500073431080389930655742125989594370031312083461756444363810084942167798261769418744552830970241064965817117135860158609637670345567487086234822433495388821669080247434568614789286534765973909905521118105009548118821499093584736840781963216461525245991513126625184734336352852127837525449719433870963472057041721823367706985456934465381127636875491750627667998734157579625404640702542227381358171392782869727894442563885086769266454497886068801542037098921598474737834721083100923468186843943248631305977498979028625630321194079446196526016241018908742951626920790028573668832427157179116015761840448294350970983061454997169198322813119079651929632012302206007563374839116371999677362919948959321695486898573958076968515640062582689942281630185540905523636121328842367080381744613504215050462815046590470710527531530287024931330994612846453080910981682640615700605874568966079497793087273653633701219663451086340128314028068582102389169228816536679556284256550237029657014534891566207305241946095130415598808559828703531349735728705831596423406712043778387029273444778293822092447783149442571071007336646976275386337286571628510191028130642072647225410953309564771291654274357474804986676183713494383186186957915798451279544501175379068476184046707948882581186521663653144032675027528882607019603436783787011414974399402814892646622595290738300583661354153528891825091841189698848478934153823522870860927630303417833259887987348115007470058340761501508049572791681624653572944492058963720218833776497233963266713208266732699040467519369290296114046935132640008781730059351684274321203548493222046086062237465467326301439615692029151264743166632380281865112744200884032144967492638532533075864423916851587329569563766648897285392533676470944835230139482197885380644935218170676823193807934625106079761280371616175973101537509843570405236501851513757844979361288563154461926672911529724678008199655103784243951107749069003276692584451039411210835922248209605668037846174733913836369267691464347427251949904008890780790483157415528828639371387916224110318122654447544781949193285932010168891277660449432374671006881764155035450647374362382215503265150735387011342451901636736594988432927024127181417780357776999462932864373955947221508358867921827386417140956687820409742360484796359982094931862207749437494094174916788793234818509038037763088497140939034598072811149468960575820284940946794747037207663795114549219828411747025409392650197974144403350047666493711226314549712269084824045746676457780731474470497497094210529549204708688024737123458288144383470422193539707216098029144884612441515863615134844428870351475308329950211589079515496990887140192644445532383127031016032040981707146609902907731716985398231469708278735968319974683508053961052525820159944400380413393149767500264224656794085656558480141528600469416029784738636652942930035321184071774283793307718415334779903214256064906356336363402681531228335050619181787364137471956349063047192382878856494861970902971339275041365366685020898810489185683277881695469355229684574851923337788398430935895181483996679995807198185409334938163604587678423087613735604639674957966478221886890985506139677727694506954947294632038224873646566776989037591198462869245133829712021650854299797158329103670386632271347000285498801145774025478402418640651443446178908223418481024467037472417699582793197843215161696021106153013207918379849009439233187288075479288101065793989727882297062736233501941153603433954026974319804121310963205793691430168214080748454762902535399409025844658034012953047843078049350011396311681579790668018716543226225303057898079113932273832843402662711215937639964894405831745031775908782791841733505084376164306686829119142275653521362347151603465610056178520726856540210177848547150612332589807780148260992035837628994813078961676005662231784330513138352328683259378982116391983831580635419661440294065112978096628616502454900453980392310399494985541762320019815936930188363202677381506456216771830309965835079200452193386839696117115811507159186588301557076091025567898831502748632369857473486496905012226652714100143965185852161846252828935694913078717416580119848165910931241223522511824276909535941739106471004796721574049155573891900163238151746118436167554697458114962946063348804275765539940635437131423837269808806579597468536673916957587571001704849230325501873821743069840344665444723429420837090692782274219119137631707137670274787228951108695912080253114640967479098194323512261359248586010298259090728920813446581024759625767134036751410870626062792722182644681808203279350209975795656481197472161170310728370910475174660559117204783305754843668853665497017556747241220947758545099258929355651273457134408415315266354782603460623091210867151578948809745847221479257662220837509320505961049259456663048689930782398828223769743842116203562450032623659081580004309196906078674183730595330987910816602967842004785919458847204232874163054685677410467820487060319222606720249472267261496786247259019476297496660147343935587601206569156270921073550694093186824584492046305513054185576279913345412365017696426384297352808332151951665941881747225121520872104729502345252219547082685145170384077616313703524867313049217647978898384354061659602932394412476230610787281154652019801136495856765777628209925520191392685336502527478173732261297569231117344311634142323428220986896920417594078810028183849090346785590850614956116964896469349746570410202200571460040813623260057470455371558092951718288444954971960499775704469793604047198319724453643866517798545836826078880836064560580204893776091849755629212729395623727374109314153098913733544458460459153230629902526592675134698240563289930075673291459565746750484192037548313746514239900451717164837810267228742645883346354700698168957959547878551180224035732848779339174633277333881071439346502479854473815178237532121556822516581557312048818127670003040044197621673140724810389036806474591591919816088717838492441962115109644706249766147857443073220912871678544247857411241929400025741979452825617098130638569575522788231403121461359667242532685663971766143555332798570355583705452791345710721631671525567600731114295367592146562187602930208998563189336353088850652139637172451070678702870351532511084953121951968377994834870317699524161319420177532573782451139566031788088285117073605219625227307447174150464889720924543332988791407837117665348076422219563264806969509426707933000738755661738819841476456412040478968352421698696891138615229545935134890918804466892343404855711669499078747185607427143615294401221987796848689609303812209789802245923884025068913243294962641864878286094601011313336308095984083918007050447132749432122534373706260056592907619152133104325702309854512325845039865804189455840775894032467489002804397567281091338280310371005476850914697772657816765171618810153293104946107663787471995900286017721649918659441703709595673457864344387441215173075777839279607110309940205620689950604763059449935362901957107943621998539785256194016634758729088171693820151969560954636263258573000192014744431475472501673391735090662140047789637943322649274021114891298375182300225400621046555133288307420557089780177174823144321748050072869246357877391149616963323187913080551925150501147057096035860195874686286308515506224141121039666691925126003652423483033630699106945775502607769509179862701422577943869750562706615522744264197121080049198823344664647249605490700425857313841729756386920066630957359790738680873393023179714395382559915843178241916212127682544601829943805002344730263290218858596950173212438808827500141631592747048856107648929038678486670881737417607549111516887734030420140761022985745034455253707742754041532179924661442154329384874692971905569543189094905552911628206695308593334943287003281195056105607125776126376426984727128822488838912841765747533634146655085126149401386872268527164513088477152314409341984920232625052376807092630274592266858530743374588400287145347367367775806713775967733724124532398645396893770642999064895188146039981921433019900259861758596115739327341414826971112427553137138756963635033547724560667474099950438254875559361539010329667583644613547332498986603703065868254735584908499672956372472191517051016352246170949442261047132406889924807012111487531783137226219629682517164422651359659925596926856857539704803998246311785310368762834277937003953073157128172797099412414900977365623318032347601013231766099125429890242257760323308564867770706121859742738506392919488033201567321917064078123905963306144417440247193188899464244311954608991760600042453791129203341953371554473023509154059816368508726166809081089969278696351921456652677898559504205740194212954154839243391482697257148387857260899354634845667357495199081937042095812308466564766271257864535456955667677937093856583410355873238129759542257674950786310436023841582660588154007043229283757133370190647573184099943196397593985869379222815040276383811744675007475429894424799678961313645460238356694852867117919581624585915650586784052153873581446533245060718727985904637201673099313685151603836123746377593389870383648295159801770573579899915235847926470048541406129952247653528896263459864010222714533312440691816236308452100322390862643419380244359027798919100243194256070467694708657674316186975247450606699522801145353697160853167733830084719363322657094323319054149151419812127138013565560464525333559066573603083005764901931120758138244332239652087017332063444000710031194131732856650948026340110576226464096028963080275252864852623209813330258436496769361997879170233477627190442459127060566398005993404898579561330190269262953523605835338206528900002184967926310983606931303260137617644152213049598517725936011961704368219554267363388742826747589582003975787154807892363776624302172790882801983049593746087478996343457740849126044746172457443282532012234295158204992420065423408365059131754117179365419143669628556593226604917516257678052384595144959833719839093187965863143844781324752954729315450193410711476999623886507161938483229400338423132092155571246676822344241677325825555693280838136741256455173961795142742330327762847084023364243315095116825540729491049268440329722467634386708778048907161301702573239721356703911455601754612399950877092271444774437924332094209938051189617641379464743341004560246600743441227970176429802995488951497369933094971292373743871106688654917352299282231426096230339644261830425676415636973005681907280639179057414351762782309807095525401283091796009020528279172940972124781713964973554248463790278869906808316905865952929436435988646115835314996449382237984777010515110913764729914798410629387224143337148831732021932682499307064966580003049827090649070201994645884469246320387914567045312855013521851758459845407931962637403981827580390209801983464230113739531068559211423934608144972303893592826892868425348321042134910306810435115467808777341909903343221624027941676088394333672646072046242584033864353570198931522107352531084819043320613938116503973451943640781984736547638087765782248781228977852366931689484184582819419390084471137189881219192767489319718323983514851077744752516464581499095365640008050086804895226226635162247759862027027663503435384406444771748124666817201909443719762783165418775379051689297507566919057989299993328691286896836954627388015591106658471075608991692295262210522938269833049073203586543796607270427174278291953166232592280856756816198009786219555947239404169152686773516556379101679759503167850524962478253080634577938560707072933546742531092664263133943996740270771735116072043021840486122018588164081919341678925204679761127206823940908540605953615698135321057344381204683306686899362679758284693411518568272831143000507045358320594742351124291187663318635587515636607689509977176306825764721653011497425120731625522190958556447407042269592340957280392679670517787845338321195560344935793161861883823967507192023107832992264857667336773997450499762348475055695859776919900748707109957536507937750785367493073296811131995873824870385396238533703079405704845251987236556497436894687104957025265400649645055147912068295736158611436855712700590757878631700002410742447795131075158401823312002643727200912742945575225216119102618951988849859879419979791078101744947771676166051775637489090674084132503007792780016967755404593662625004915744099677103475522004599454883664684599106259759730512759969869814291698910093944406369702301646489121559485867052005759632478314610596360717559701605015920059914879109000728645538412776881316494357594389633107801186003127392249128305108344466279232842932484671648904625924982017576619308380013582493428447663416449313286527717430019488800708850028236424461450465896156669071007789642027593663245346905518924200413821067269886080028069662968062832663223987201177203257713644151333928104386234964981682174993092947175666355649790642070523505152289638769748722345183048656308254480941292015478964619324703585341063336043536218901413835262587820748468544018499048394281860425414379335442455481517099671242600256660911790279944853762052136010478365666261328656370574145806301629563230576214529737189602148675758718457723999831755897463504068519324358181127845538906843083029002810407726913048343897815212538197283202919097244684588835797065335924215509212659040532420515608539317163787551456339177705797520850991975245360203143194143959826545294258221639653882999438180640660981989099770107323408833095856146785251935714603138914113813232611927507013669574192467620165724890751543288901792354405758112575918373303895734073376550330830240863338011740630151139510726230600928887823468508702313418162380713438022032184765190051373028077072787119235221519845937373032121175021527250516479571476467748418243550426129807078570646926251413269552350169594292582894485375925686494135368903206934499348880927677415871484181696371217147307224760301762141015301309250286476873903880593909654263259556522971721819372061692256525533559257920368609468954796653605233338713986464605185589225164210287743918821428758444836199954882628723499116836258619047126446706785074298773239743414599974861531479394046346171819267864519638403483912162348861292222519579713253655684727743161911620514252518395742678880208010827276842848828876204746039751959068094172264048672328363491713082183190515060910948614726272075773957082053287492415156180130237010334232482777887170210722314539998194031658695619607062143050187158122502988488080249288726692536422003969526993063509640815600379720425684647119257806650474409789395429854449451931007714990241349968538833248567379884855308102599785905474376137811533450823147765573174883853199136590854319294791409061549674879352911697410479138288065271963409327015502006298217534130090766403500129444246045784990981286055186870306513017294010803677549476495461023166866553088569803748982016720899844555482498375275924681284146351744978623422720251488049764122423821045050162844260550703931976100850126208931808206962605481282700001068127402348022714228969653345944649530161108649463166045538212433370794801273251256912159005761327836427164848111524871379776912506377748627122634294782922185978625734178360335414473830372158246244966305528086039403602585727771092683869147805278167385976183048807864635896585952370187145843655349090818811453274535638617303883189445363919347180189879071154127566860254948913616621081542993305250724830387005682090260974260131059186763413345538987972598479206108746558773443167769583536888549517797157307473796548642615898406958338020784192962260325316022361899132932906568737179922487690630373527172621211329856699589977884894537865363286458847529798690066300893690013077023308230407477527474511249242683660465590052792546684209732631969172862120602622563062385333939519489355925088938399606019365592380151837670595677876096978314545136540181851276494627071349413722500468932519123324905855136295084042204434521347679671774999431723359466363843873649124867994545051680020089695937713940052244515747316062454277829309406115825631806037811838021967346679987969488311030276700971441468835491805117137514851306712514660807095747510427725982197703675172525969141811673218570616589619213495001259055695083227960268857094094622284171020432829955587078699111665936274163474071769259239315744922862081590970467413756107353761285652817677103667901449177776502740108706878198854537928537706487836815615446476192824562003845822980909836229085026400688517838480116914166682569243422390488740903637250014846934093658972546847400537553820809561886769087095057326841725051202155440471610822426637577960003594150450269255878537460501056954741640413301426119923982992040525976764183601874920721545470754007082124884181721235070421672069007662498584996877158197633958721022472194846051895869253076146855355330373883697105287128723078896395529485088665585878650896695308575775467523600200973829266063051017291826758797034501151598763864524311130683223913325371129301818555474482711947182640169417686279455272335265680675807000290133010724071027210444623919456500057500883364785084544876450772296693209703236724665306765274294233864693199455069656054326692435534446391801011395064604044291664330074609045568325396778539294326562678237422165201327362945973418834967172429436168152018783798036135936225214276950006680366778330197284380676815255390909009479091174876277976407058444540563624558762254579173055711321892403836328809650708800265875174504358916086875106701102645454873869248732876231175919872239212539697531169399537797168071080253591842361114476268300334376791507405608890931860943801428109402524249573302678146276556675324167634784356952400826061587233198659801175874041428354920388516789317541078050896415048722387950598780662542827697513487276668337044391353108792371641791910384318169141656900750301138632508177692838254066713725722481091865210130821106661760721792162900591890708799447790400331231260298103358384479567480535397898675739428707996565855681536148504800434121770463160504765777664316615043646242467430422310357577807995839889497053968468495474560591295653140067901539598813512799594383269785782701196220038808874603748824742605680038625663708038435295502598454150503441075438233579018532982634659475352563039774562846081208029513491324182118932903779331575435513373588018136464295894783576356231220356234826309111539448227882193035788103854931012342839320899856221858244541059094436291652144182328070636605882610640218616584162346209420731074009014307047778397718789611076987963307466744388564073816351050515749842201883460046845959378825166351689262456917207033699113789431201415831665907574214417776433863567842334108379214886827082893883156218358067798863044738482378316156497077206610123263357360068271128119674993323117740761392184858473929228933764424145116351787072189983136268703344401783870248702937369118839357569906918880146768986605576779492414355397963098257855356201922158126065754317913581525416811060187880266165492721510686761100497867134228079030752530594299517805672024312592666717470380835821474284341183863438736785848953148289703295520233252062540245171387194293696546031199300198595589793013284382658245159837301263768400446304474846089695205606784134420828879940902971384158464980916183458839285421508464420625819256859263187435238582754973106014765256806413606219525897839873767770482550833151290512794022502007343294203779501206651260158815418560996112662568639994951212433509383198395577779074273634524734373311889238477003756476617937464526024953001412846828791793155011644667912507009748186483206186307456201619854566651617190118908695524407030573655256488170246024444074232517350347216161929489684485048625293975695650431711943421146135759050862759875995057667261963066709129411606044516526180595476948646871020694370187615665221243690722535127996422423932927488619724812730845893017152125452952217816821512297105826345876486793595032275614644500414101472840055420742685765054440311404340237102687492237709923422017891273073460596122438338430808005624418828287096812267056543427585074454698969097117809349934602389840982986188402746895143637771360617867398756118003405257365543442545642761047784470635232951287534973549938148150816120983109792760375075291872851161709213610537258902524704760482828635505106869972260477325758030149351185754342245125004738934481619353833799857753008820425451063558151775180440875511257101188937170538578728063558017231705242694535555112681528392328802216944385617462902372694023281047026859296769320167617388882816701253988212126397345095157034561315493269111992259777466239029728681262893354302933683399617400905036112571631753927292287456908896803929132107425346588755148335977964924970897718787862379503667193320770711878171258237582802139078692337229963899323343047074032605859950853412847916312081368595843057065869853507725092754033882673481588925333446736331064751849560433918352932536563729204371651050648906445825070836214307693382743662163422976344710885418777357707580417234243695910611386749251714338004029294994250964765105980757872442308225837406016740338555928502827210415179942988030778088782968133393159912302336211188474354432990742616907231444679805467346083898647708441692929131486219816340349540211299385438659270374479245247124303268551495399964180386671502773940846118377529558011254052030950827258329224237253367725806026122604328438539268008106595831868037846283616456866999626202386342037738030843910000660584908754079685003218800561413595808638227544199900378169238316917032973848203998095763811314011822814086585088991259411664406590294934315639428292977821175761058811281292411432894814529749958435596498271585903367161719231668224617636052302941455339256109058616204607525398134090361221682877867159968017736856729082453689972569085260359842672568004105278816454610117057399699652458449177564453115655514048876269818435385754740413729770306782339051914821106393123823168985672296541384786229751930778344024167621020402377734662452968701190044459511673241655958248283651654300568903401363415842613939011380606483357990302435584946526599831786939424491031401185524645840889654105026517012320542413513441451714292243764313995205220636367530766238492778191616133757686215177820589970848744340299262794702171400287245414448565893812745748093384835475043846439599203929462468005371245922863895474797822782502179088367100450607051417493952011444597845006191686347367124148280053148278969580950532827029512313731491324068089308568760771144475184222352551447978502323904415333972990503998401112198585332039500846330989326963493175986687078761016594052079778438842024066733779582424889913929638479514692830662127542558164334359227001575435206498652205988966376000408101012391678185999750423685811104463915775889936520240227919442350914484933257816995379787659088869244108029221144365307912821290529280034774061538659194998883240448450069795139800541000275944711798030868508744127365092138712986289205647246331348393688455453087536130925638063790182076291596756741743801888004812353067257690679877329582734554355960974375108516382330615475790214943309072075852542569146374841001701679940551193076117964424329150226283542603192660695474518306256251638517265690697789695772739756344842644895453848737111988009075425071622198547838763425432436473673233514011446813727992838043582314562288270694496164079897922972075978055590588563851693477226363587678068948195647529429868475765679107318508144384240454480294651953290102301275448445427412526570029637749678062702401052310768907551762650487852548444979261744881370075306685836416450665222140018515106780659878067908970120471457695884363540021999631009970692469767488551645649177769749628376404865152721188442575937665452587790365171472731209842928781210990280485211289128074396329986645195436065862415714533068027560030490607367545222362698175789969229322772043864515919826593010241525547984523468573962447063787273530572837438366117486429067539715482081205796845511627930204666548014003478600653772298442430353028883783549257736569210840060899434059742786153812530022697013372732886492921109057209657954269553864816171946885315003715052834389470475098300692008069729724025813078669600445739568912486354402142494058224003875210125775015533823090689008164397092278157057040293217700702764237520751668116113659131296546115635520025974023773579803366056877136538438486055060853473715772780590976980642418447676877661917246866303092852504229286724860652125536362424732452935108324925553543512302144705568826693726182699394541891437705152401010359531682397637353816459897018049442695891338305520623553683637960948627995064017129931428794961390435500120418775859226000785422657400870869127187448960732191512521706915570892255218798097075754471624804349492106520078823838406407947820295015333495922542882457695459774509237661771649910230956116457810668506198613898876298992019849733707170132574271300769844153226099823760206276418241164953821649300580054298927106121257329263445031456880958294687818660374329702923906466863869732877765047560203901016886331413070695091985127181083167299286812368459323391766108640515016956693251331062758317187776173700342601659338504389135416616224656491431185427274692832342107291201939480689445627355028613328363126333322855025063144750440428172792475133358399929632630632751193123213341981834090582173654377648746938457510452792239226248422784300796181711935777681992266973917639786387145011566775563206238542795844788674940862793474641260813915406344305540526914778532268954113963858411623319868119173321890163292128442836996310858666253748005255829459272190473818772228464733754875561289775141844682136398241896666741991361928391621197030310785841459327002037085031592212364857627699961363597888787296638977827245126211758452391217635025581957754290053846498246312123266619539216920141254148753729152050234561465690959851778443602944004684403469137478999398628217056712975285672867153569920524785159062366093544920580465253243234367799516774050463780270460186696329151944328970852416113397256858384751398684484080373028494813675096946841084118122368485437422175482480828394359218828845070136183935085703979110276034735576265355766457604534663947052805187521775682221795877403948830303631317510444079738926215134262545276897015797483810778185627954240320821158662942496591326449987279944614474465160090430061845761463832347470640086714310812949231273079468347096921231081524821566039345968538195271852533442342587334448545828850264360470046990991067117101464003708724769237856708555828189112727265658539326204766893060750109392548069353661645335264949898830573727813414411592898425501210376144991917043044217674676774815679024083730997658641269489850248744043739617468445499314125946665728832501050270826837612661119308235962175743114996836266868046274944563527285796338536443657401553227196133189205639456165930303146840393928567802161083379475733873203191727460921442276971939989458124596604719664861873066016369459102248947387501458809529155711229954586276499050798932249802268618120092540429497244921347433395488242769102353590694302600776624794418149191230180969385801917635963076740152761441716210378498477569462277858840522411553235265236782493324340341370794014568872121044276959322941313736477794109684969411430169319274056078071502487808817172830126200734571266936356963343636471783551911445001668521811543867510670262781977979380843392158052025730760885137981526416102806573639101376729953015430703524021968972076941488006902471638961633029030879702969813379435550580513922051394529454163267740186032218046183674587762408569007258432560532844934758499988370863900997638901098247937304583356568395411203546850430620609425393520996295639901251778410647298956080925757943007719795043301010102230477592418625960189694017512262192720045512277488403281950158758168703271099378398028872230227309240912287664695891946008708784718273739263511669780584578029384909833302459000882570416355246785990175215294704147546181226342392153886895909830949764315360089003326908303918348954846559940368709555075539242284021389879529942860377496687722432294229392423120443746957601697488287926304914237493461782695166799440721123836608790074177725763718933074836668638533470610379911939580556033707011685148691623268699360276738653699899291547518806611649231531334063664885777432220497445838273255234974837995671354916526879641211923876092389526514494206327050396490249944827148094956825513609674293990597365830680197752825899522623065682394493850997022425759054283837320130636966431040624493221732109561311287416311830656842516834603509833685677417443369873564603499364439864811723721198234551774991798063570947757761241128228613966967106519375988604684318062940125206494445707597629350426547576206723079321410008746738792250680106361874952859884675855808193035921620182252061037829511330403512310385423597244676357892645448557148568513602495417447407170374959564227443012016433064821380847733175841745731189300876162122668094397294888069283174296244686001402727844837677865532912487303448953359765410887382839053532713825184422713784325075116914645558490093520210314987777388548689233284123947717011934045473259384676183283641001711455275584345369009368250948316844404060896316487668059207758600019037316420959642698055448000890557586755591372871134946085047168333073502826499233414136375724170211407984141077460463037848764092763820272319754090074605673921552389511805242463396860382333418343148390699679513333143682714025031900328390411575509932802285399738059092435958766958768003072160253600209439605233199495057597361426002791138815039458169260950625513498690862204286859944618555299861929268275612030343930447884241621950136932671998248012008400769482343313874211818600412170620786658452708098775132449013302258029173732327394963224282044200417610301230041635432636647662631528020495575761210195413634349259204180543665967030038237403291010965813297331045887635734985594977079350326669575675243827161959892050730641694854939091222101351301187351649470964630921605468537132754317266978034099016502485840612567634106584454165857547639865986042019777939945394799195073929606061725263515549084782607716187330944737803867839498807461569554823298443448320263181332375389495003661879233110857599360066369587215487910033405171036585344800217749835189384808262199069266102052463011947917657096960475598203780780210686067392581298857102250556810017317035754664169385626865867113012005555202402344040983240606282394950226908078306484119033222486791043045142099063502339817755385412546689153498200489137759159576822574743443296855892035130095329094205725343944329764442692338850873027303126224422172075788295892304465502038676307635901443913445671070828059275314023836674459429878058522937619163882356711822511914347065679241455643578498368199649634450058595385674295664657762667072551891931303667187900389995169798844019203215799561498917901062325295912599337169275160733738611614456037624856804449545954834126795450574000839246119605590434789697248936204439056142857146119242280888066928690584775203424711942916220275138516338016471869629800380871770537710185557890345219562871758112859165665022437013852277194447978439058761127177723404978187075396174436996452293196634865375391152478107138749597823709436911518284114604259164967962045114880173992062674705987030927698251804929582691898692822275441873376698642024196466701290208313190946748726784797998633161108423539173591475451541809073559981360543859994484939956796704671330024087575055637771116833966693100990716739482742371327703377599934770945663020751466760700630638269446583020057364367777482225044927106793273880001016467667746579064770005112519011974339458459611288797402748727090636452537579119442518885830000025174645941757370170446305496505863222241082102706798800703395342166154402769795284700063995764945461477140715404685570816752201487751168475505641798539483953620374802542780974436096876429062474027350010937953814430694026927098938061452488284832094160512339556871260480609411102993619695810830656267401229096183667095672126162070990036642453919267998873059798390973390364357725885790084833562665975582650614223080722678726497145784077939025623759632621524966685580678937592879369717058300881121452280121282578296590511462678863954220080601118694299605235816000937237331069716076604714700992062820295695997837319038923209521305540542496035833005858466997942092916893726687894982097309589373682142900926164501280706087294193725678511607866210751701601413198498790723617586262891901413877143703434919587223636675960137554513128169972085058613757436244762610044948338208102929170116840200294221578289087308932116414795852231162857616502397650936847123448845322798064025017296027041698679833246802324328897508084092051134372560730725782576601747831546557741558065918427343236029707179377084737740761565157050007659254719378069646057289986043910291693440201340506440645830138632406909522663337336624837243030470944163110678936739914083160561409008242370909326782984626625394382943927462623214122128797884007496985571598170902824718959261798213720542658105453260045117238117048437180932071811667487475753058238634324776550320828464622689666151908207353241958073032506511805249811474005385787938381889282086363103680648462867818078445714992454983236414549298743729413372089763942172029400595123964237271755561192202043027795520331971796223024771567201031461846218975055493322361181276885955479207960434441165298414208843112114255270169496822328278261380503885734916321282396794644789307879438288950139939971245022646721597876339535730836643264965049358784950664546455857135564662145509055694830535519686462645489216289359228623252745736027338678605059139016467276776916212165141762727626590440458451879360427112542184265264917139731445329517726172084227088431207378877959207101302053794665390643525189496235462376788203371660021925494401033383173198548245514180123591882097081935548062139614179510293392540294567410688289278729180384517944950529345192076155515033989486147224450398285230493716070923975713344263340925026829006139262406872436423740909342558567865055892235903942591021796920453988709117131429637032832622729174647428089467310602357220840033191790712552136625171193038772713059694233681109527576532375966654274995360878692021388900849150669560520362160497014910919087125292276768330971701917745765471311644123450438930669734580261879517084131789832817956114550422602612589443710959373558484686738397788226793979737303547518257392030737328672979136346091645578684974912057570347214261978437230146392458338152583403788462659238647529027719093629486569438582189655329906353860731708875601786335185388035931036780614702866842397234684640580932104336751514476097090005503929847773729071134675187408459890169903548785179699047369343323994202442447181540654884966374120003879991413516385520489430903907329187145225691299925037164930444280787347930306201632391559746716733298421692532374374870633363942513419379511977585856929127294472970842238637016157240868841350498739202674591177704145339067010230220040822868733534812996798328388422432265148631646385620788442991495871121995279605685734256835238929931325078829287066481167703252032598698063332944024405842348367626368046780611558015012206390761960102497065141084554111821228996392155057745454871079798996954690336723970711010065142028022664614904111840000026080958870043571496004442607942543937248069192645470935902161173713628107293583912528583419994990942209190169925525757574943799284367147497190834574262976604995438664752730785858882170269119223630039966731618676006413938052048153604190073532745632836941666274738503545396180214447286457495941678558231883746356185983586729218056321036197090143736049232607292965094225482217877941560915439537213055332728471967566867564253300512296688715876937012885679310210341264906676900555065399929079676757960040028335876761182254923679923959136410985246906027817378074060350254646275824470384503977499185268187498945802955745883414699834334711061783468377316176517184712901181742159203702368520841571298428070331287083161023038996028292503064512513699766614461087168537822878822612088637171305563745808605191247234017464366543380685833514953741997714433119939639559102575433215546851832481663973514291403081201317463041812739496144904258592848611215558039797841076826339091173928146715894934160424427407748242103495124998287788616780734718409153296551614124275428576373396794471194164454229102186394051909155594255489707407428792856332062111562732936414223705715011705064056335429018811566004241969589293663889251932063741174821752777295794969120156183306826774813683944150583181620712183867085438949078317057440460862739966481023774600089142156989373766578842142215966670515214934967881016871548040895730352031369486463183949018498109700785780297338862884373769971814863594072254704552753497542203119196447329787176282720498367371537105438689012975299110242950424255528715526988236452749146700846853234607969662335130973059487288434769284889046478530448608243726077721661731401290636089993607836548534560413238085453237793037298249144936472788659656586951446167758174398596275063766650831482188292187978864544958611616856899018364135690684734075675333312412577010510880733703391432024967477495925717354894049642703712615716324878187183271345938290196427598139489122032255324337346018942955957051053722685118518043206140205444639547692690431548819561106389783852744781576118750779667587844599471921581158261953801200562674657424781563743176968573027458595869561585586117669861193462705066973137517847169959695664885020622019387666601836091686078389589956547818913069352442942567120153172493464911075285126424434396562627449097745812863831715809731322961606772579817545522890795244888585985933186629310414584567712497544401526541904293821626726214379231093013392059648679289785589551533457095222823339784600824662141987291739664583820262961367014700565970848335763241496365153982150342829029011675171955523352045766072658188454838991331799489703065086309573321487083499064298614469290775114992985424982281587379124192402490940301231196046469677338893274477379535796268694584648334826405347847819362966840565845961571075867872454523169493414796889135537538572178373344185698588051763263152238586148805998318638532955918184429450936865533630312516547395055289388685240859252516072185432498111493081547904114243328006227129988614361211804928336800555299671906300026094649767568756094389066930895749094508356948113473333079978592666480145950749218064799889708958409552265306829308782822850696918369423300950829286098878096084856847632510165184144017320682771255297848104587238035520404969650848665019137498913298385495258670806774335316914596993257707271130362445713224036768707630124236963054538638455109226092087004684216435418786659567564123758962259511242306714523265293174676454223002537465874999594985089665744369678032908317300736112389325863850565853170050441935739788077722471784018559588255749296350202972597027432954754432916843303740641641852917331672382213010810856145484661378148447168101867318235142735167197561757197063436531342487453029403916085558894240392731329425323587422088402449545586309556330630153018847636309732748650209789880391785174233077453354304780485546294521950717600263019988784519917559654839167231807317322156516654411324891094748308645884620933671907657404549298646476463570471414724665095455132586694236860847554728429910278399727725695374674383873559470910495096307818402567221700228344809450595201739027480564574279397434402815684994243477853432495157163466926951112716505663466571161326382725446310739095426349991945977481318541478328589509717273419621115459199539900796553523678146123566320666938154596339415550245282076429443030618614494283375755173025343874650116126695960295109628389384711126732319763164845485642327345190578226433143777926748255788390111532206295557293916688237684210542656772880029222977852441831559167103479364748810863772154355689001316057916300327618956737448800861282377000288645121871102171434299864026695937525792085470473085767151989508965323529682313563362767689673437924524838479123704551126381612962036945758586892569728147817845230277671487214160698610144867024530762904133449922454014607695740208521981475820124221014174394058254487223501073396268046294129252716730578782959666325770106620020302627972045881600439367688188837837426780852913193226847975036945131444314964314274907278281704471857557886755163749567012049416915452998931803477949249094396840001790104092492933749535169968926293020666557984880928510812759266173054451757693124011194234966473980184277421571438992899922035044705513471859331107485737353770017141955878984171789952776120048403986487546800782024149286226550305106539902566118659337240413743035404513313401135290553407320869343204427533320462699016778722866171149032386601913950498737446184277439790627869333791994391565222897784846158121631165256237093031639482151753115204448596536166696064422411825479719450582457282518236641184565052216293502488156009837844526964787499685178187274881931985571918985437517462347681323659551303545360503512678987360828880511865828420758125665676244480327619827388936983605463882978484254487758497049040720641710917957513785425889201442520318437004721966677631247748036986922781961731160852594607605348304860124851152153093739154377643051556573312104330468726364924896183454311039760365701695675755966692568906548766679641002070337519774245107732674253207605678351857752058785085652430732838232474101043023285555707757963915967975743031784997563488080254125052515385630673036631356559604767093008875547229431481282235009744248112568054589973692691694301637864278528766254626768072330322655505310402427376398837520590054140310718151692692631693084527977132573990654990577827766177828701422918351871500405698602840347642999104549427002798496653444294852735784153859120172922834277007243240470926838423608934233175883536442360107498568480103584361413560529752244676775687248368730008924135231913753148453849785140881161176190626242907287917188150683525862592019754607031988753333911505200696518948300282297225848032103550221509360974715026480454247674439472379013338528652420491508396329742821003886607561157717865279397313166688075767998088668365331851248629727256457071681754507523058691574995194186202668046662642361068288288333448079425179027287516224561717862636232587158196873628153565141981739016848632415210284856840887621859715645580969223541821973162639209295420892366627695438223001382265356305038975955827031753278403006734815488993584325528263369859229948315742434885438064414245533285786134280423865590466159634690565289732357091244697695190157439901978805073092093678962176777544746179245758081837216455336608463009675142852671912067436277231019535973982544803598833091371943857013254368988598099559429019134355720041293348762747381652544675255359162003719624677702140392808013141436616855250671263104961105129198936271797787095057474883380669285663629809100662793773284246998430485073493666066328879056964752202104759525231873032950421272079921050822845266997755357997503061040774982967053102499619185749865715711682143638479340075690914373322571663458912388891294488966124020796387542479023224307996241491648952095983139356210988388123208744446163605521918415414503267686052511641717765836923292774165877035521339865207575302013133045271532059900504278555787266805405504453234951478567230820831152323348407682197315159069972818353584613617779710752321653906859993016691680748518156959600704456165644464917418289143821371507012092741795877858419856680220794353130024302497546147342229576330428230138423231191648384587182613901451957105827724831248771012163614739227791586765447053584926631481059862320189021225525869882994855720387648150460269175660446603974492915663336487387270711240734990980659518656348763182424896330110865724388656837734657544564330583773535884210894183100187896482159743561100179287713339327545049464029919732812950233662668698068364839697002960209469114411942666471570696146755721349123845273491517450858862492508294521412581290317255604959397685256755132854830614382877117817430675085620124591313313516163548418428623810305989188226790222779598320400090700905714576322512639804954344433482915483755904688884108188155679285085150993253152151787812650473656861459565472218203947644594574638838443410390217755877507895105332509487781038919388967760041854293773886052192994200503027318147754732128412332822673344979734759418598776858672116576172069593128320752629535649392410305424997315387347542159949830382648891581741319435738000828262584220222139134512591955060004956990570232727351919790128771445303182487251756458992137604340292808008161622340528083237102198738981323359621929635771538150895464853250200909746813290766975967328140281468952573580314642194548423348879925517522309021695453633902014846035510671124149422785193187730688963162149538431845017277455054861115445609242043167557807895431248027397672290601318629460633643648559872378482016941838678873545613467926113310638127244086839969944412862664615870207626734282911080033245974705643851089158109967473861282131121685789356717844985979583067264132544057082130718388140418914794353667330270806869308955710863962339014849377473505279043868894753974609887767278105988292981234556941018443793609592234913963647267322842950771752913390018310782296856550181638617179749717271891537049295567339677972638047003475693011469599311559223567390594884030465697883712015109475540674587265648924094429354423530533467234598908565371223712415329125729124159554331736870311830058866213348036718639074632313047692259409015873303544048338352397635539959936012140747250944640664836696613326928452276820041775091918228762287755309815026627810311090464185480535920737334448770443452845190728654041546576924628302187975211097220237536383781079713322071716152864786832980401565275112174673966142902107514372539981894449420520007033325427585963444761726727596993341610697578092444651088619451445140916585926964555494397787815596238549777894473677827378889516402691979773002490717870533724643342028944967474506037685199379860789694375438896257881873429078683819810624831992270519932091303399722012906083354918561694884716210845680127472669115731527649698563958793855232739238330731551412742961835516820587878344226172956121205055562462291127565444116712315984860312399703773335955833888841064030239821872926712695855409211498284553533823495452483270615086297140571434730186784297237011843964632392471109077148850025447010149191004316356514555169492409441248185165430661055306368925232410066599066747119737325268170630841160683602034596258968320402797382456429399663812823324415164811077887531625373269842911505122278485299086532337258415969292012587038560236508196367345838121695229876364823109379627898288326749400619943738473913876556873200846075376583588251813767763400476454621036198468328004464979885689463017885452954763818293684107308980504169233885328286117837029314351387144509247053025386193376547486551103648990992440394824622599153790505733274244265166538793271025017039090044347571193646423451934445002972610079022629525297358859936152689152431737036178734510149718425338951007713617351732566405677724123851789345794501829436345860445037692275678283986334426051102890837191303784928104712256452863325506196297109732686073566850278852807711785836842056801059153513921324708277742629418650084344371357910421580320629400034362844207730084831374135701593449133350572220940495111746897164591710572700177079573553973472630134680017210681285737098852695789643319308729513353443926153399472183708482727712589977855989271769310860635992750030174464784067468340731434067723233117419453356061709657814398798525982869593745190717301966543838598493988688338768297239049220901881085217883030234797328144907322072075595495809560873684582741544195398284125821133183289147918379105726679165715279866256019900017211792809073078419894761046910814800228660068588672315949146477607278216410434410154647896873485695729654665295806924394467987191534582758210861939929364307111212678013072011116427039584842600513241059503207737361407116785897578157157341603965385005461210957542770347718587167416937049621474202453383524332888277421349946040073159425265977629493640086863990636903007431089399895438120706328833451001384149121051762254473788305854032850911270217357946756519927400430575663240247270475541840586276480020423539595565078594370143008445763140907569105956797933982910816411702138215805505555942151966529777265334825178923132903320968340559270321537944042051441270397218462342648670559794151096516588566237031234549817146349976956357762683613777316031214222679480061131046730372889101698771097011712289759371508830002138407602737164894436436440896006167106662088147123603669272607601717266940073495365896378217669771614351441212795493330502957259160143722196735661085224496087394684168574651580296848309060954333504186599778747817792136470190274678865848371642733430041161444273471266928465523047355403514285620630132488537345922442054456355283446098362950559738173772877388698502537947048044660043597542648703822673808266567789357379228788939872799537676172326467246011348143943278904558751038365850965970332102372796433568741753593723640394041627820692372171821175212252219670707424293780634548162773589519838805834533970369137258870657436244166067512033412698740422412264961655891947581290532774183066673602818913531284364562641786446240781047638862687268769507021854119584657967220404722072696829808191620085258821918689578704536640560026263845299208106143174385005972400872297589507327840052514307318664208604544208831942714069701299987108742948792401441349351843207447857947255924638240486914106482121678535191983642835728888318172142348359816409175174598024087868761923227319638959380647848055190664246760486836142338562413693191507945226725219776720478928126748924736818444826526651872283855418263653825741309592293488175646282653794742886210620677945992745083440228140876902245046445116963446709065602708549361876828999115333225164501013602480155986571683294313524595840467351040168638583000027495298287783984555657675735838469815805178661821773743354315075570965091595564626626128823056128552714730727400493011460170193397967506429486094432459510372675894705924710929920198274000887968446427506980280544325440576463156532233077314958231892975120125426199911510487484961584390462548174781243871475546486707774820151454650372935469712105917689673925756290618841084525095036115862175129185164889092813765078004187139229112473952667958390715934281716462161819717002599428211066332447021974228155505393825249042845377369010991598371177260128266291897813927138060553159681521010945588986664628669031683386669267476164557389709724789181473169254658023182644206813623602852278266918810149174781145296904207167296974949732357725823056058246812753677209536267620421773183374811959765106838539121490038638136681967654277982593004638800805831318548075739420266132650007642962098295020459901684312848829920499902441589399102092677060035323820548944461859588369874426593851340752741232126730647582417061117587442668263540998951997374353011793612870830227683954712144491228217233070086939907933890571541164089631098349840528101587359931763276387213175486268055029995748346374134611672218807143999960146343591365049070295045038201394327722871051183389255980875804001293606172153389116960411839233244923248124058495254886933989158333718143288037952389092218580384749551391174585940195680502212066694046422899475341673496791644175575682587994486983764084680923925651864459426723336623698594385452026254065726123117065534477735477295559112787777591828917820813534473073105708329475617328088403760150526925110359398841755192844735238594915081721680126423188239317591139941059425128971878129714628222177370500993066561806560972066821590494725221505271870789248233167564932846847207397503610659575694426290198259045523911833190446487000037007880827461482869188988421472408764930481930059504048839746137792394503688704408117249094634322020342495237296048429738865511811229749150884376336973069991573276383543109912795125193060645274109906321490311695254634371944236896924667421229245787893560188051736966284709000484101915248367058341050427618552962617234467012042960452530873445130624614584086372416226337902492365598121107163524585365449442681174964195590611988405977769254496727252928978762256768690517507374034551861738072080280895972746111488327761519315687004953873761429182334299212838172617976670357903420679206346348681354183174651133607565414640213920915350277396934647657669042480410711218882557482806857996079018685113858368854915767889024176144852785020117838115749867132689552284137188285913943964425271435295903825389693648998004295573248766775097522052095799465445301509786167081127545699947510109087672355960075750487935761266785387528768514384960038343038636982161917093122475027986563884034973577095372945535673820801704325257821578165934005170726746561374152235305303133444240842676125955535105211493521759094870997282459230533997047081024698209399088378008902035115828532278052255766849771899020853669635989611339066895444604521497064389525955528253397735299950873899150768341663735672268488313032984880911241095273621434317206120594348930450832766553218258172065625361890371307152131251471539009274365689477282246870411372298059053792537836683609645134500874886470244679796870614830952105498742071041010098597593400270548220213623583505318952448009958345454700787087709919092013611422017198479784067816490893690913397913724225066862412347617993835848122276369568944489126454138925269400104078650800863031397015899006992376811883262251517099523764244832595383460175528384110069792527721496527911707120248773128786497105878765891677080193807076242392660589983951281943158916976277006018686389607812912768632766741879682394291910788868519920247850174587200460752686944168114290627935751062611815901033886533207215065573458783987458432714381051549107866174332784482421137290555857907919015422307628825827782057673833508381548744227066922302502063161409175099680210228522346296311733854146323765717465047830236020994463076366536517216968468267163038511665304354408215987502082134920406696505413447019723544522198305673229767223601669431795380821562618997737317118663684200578267855631550359794725329735448247681251163093723540622461724642921156016773134720400276048636036047291709228438294899645496051115222872470212264795474636160048271070392060049784273398696854751101027341051354635505329807956589961438261642524187728394798782714467970812748460115212325654295498178803430973253145139863938254040176229862031038868546258104837737850826188472523019022282039359449921004638006297502833524721332566531979261741878150956742032803061590026201507318961579129804692051937815726180603802537874271336992217428550983037271651175362865978499562171984127990474979972233593462568984095069718708916816416002045411310180901543078824071977120491538584324000907287122968084768391848366626405526197492206513092979769866509854415858504576581771776596305445075800872329548319542095067513850099462267200667079667870249902038794918096443439110299084523009645872254043645520665539816997310976301236019289852303086730079689904035439065672567218412728242891092119796724249021620428383063595341064929494380189516611717984919691491846433912404221580793178584814623136495984631790585468670465562590344699331131915784790311221586152198880178788293269163629803334532912554679524774656909274644237019649927881236685215843139994722238931907445422555615567937357192068373216722073810258813040807241930005100607261456049586938276466282344185631261879098745034156491524893063533886167608133315569806648468935338375558308367652080677338548271489158350451334691604827253993157445646745970348871373596631223217744037851612712811599225031050806411086746367548984277294419932971495229788056814581086299685836888718393935411829609895002284868840816319260121776695770701101970752713742083778959630857094741947799004061062240991580503508256029532869047298771448530496878684005284449752410343088877617931945076002403745098531312040326077051389799784099407686226668119072263353555514952771103300504333456854047706041858685542274484956802046808193732498654813652550532919365576031123756333913807381061883743593564615645554839320612191762918711328260092014515670365547303321717721538389013972838327884998085320956762747279743805326114615678005591498096035821263179504360717399064973704377898650259736791253770990251846560034451595991107496882380613750019008469365013134738230048511116390684979688653638527595091958269068052277292731564435566801379476862612538479941766686603528885646372877679029190518202411423328134499060667666156857675941824906856540758642798822585465780533107175964918713100538267857755940373838621251410243155489779679712938431387389755753431417697567085882752071713101394184415878771452534052824340762019415531965651954434524231383211112972937691831362373958516967292934726055617059689549960258663119111745158519840720814904532277117011335665476922558205535266041146938476514263377596589834644321749599680964184553317463605870392349118647494687711414407794533769582732901476878841838563454059929757176782023951673518863794177638888940287018962154052264558498743871785924543506046352136910590764385236011418554006156845129877857287177629334123650754068635675506801897718497209133238080744395205251223252364656563981472444508705299479252728067397235121099025650306125144136641676766662372907602604173499386804827224135748383488324066803654629757412071898033836645337528214160536448601212947185462860065273210095758823054184204348717041209532647872923962067902890808719754037446934310834847158890550543300286976893059887023939107528062092987509569470192191492363890433636061221529185031266420543911046738470643127937201364096731390016376847043713184624574490608856402179057402548227406257590437146771818345792620649795656318568677943640167553267815014891398659307181639190704634927362919408151570433066730019775479839930248184881852993683927584306277025575021173138307262421810617099719417741471687522089827957012948485527644048719391531482187482470720387353891171615813496774643998711446919949967788199011623263851907268586250570524739646142542051884679124148149803369931886698901374546451720353557786563444125385004238030381645619075633422277941795136747340419735513105230658860048991919473152143578492931807637487262954330813953768533972974717496791638066428130963951545396949830574111354928378872952014752083477708569814877892897330594930179863802208001080936007987151838767903583355718703592122033478727255183601232253882559961303820253452350055939735220064008323937020424512482330480926997738040620821780992528051746933177420166062024939677389788261234266275881157997559677903685333212066244642256265748094045170957085457203556281950952360805279653499018384350072507515419669277773065114216247296438777791346321627278289850744361037317286498979023586140281812571752145777288359466262182631817099903611110713028741592461889734805964391657488389220113649601578050293562313903454184037475845760907486865427602650120109699753844874359897361885268050837866511740094432486647711680786614429193537789372826341525027185432428382698817249805966643054137595952447425714138370090242780156651008579959493752252639866630399631029629922563824722967434505971668435827649845732643127077286527214270499129598077775736508551217630534659458469211106619130571428534997800303398701065685548791265494905712375249242283374584619657732753500559880256417688839040261009717362253519984939089474904710927141639607502570790870314295740464421059382039775751914546119626276072677455498427527375745583775985311358723420035296670661258799763155788707269247165624524646466036889960847991585207164446092065521978235194127007407765767108846386062712207111134712295435752280119371308510163849709308411763655583815232890593287455029323776816846030938182184285827511734069152423030677361319517996482186734116107514172987175303330188991301612529204288567058034448269057783122601847477992996333953683133436283429979156374024837914115345252678894891550065653943851424456630346020453334395660341877419052315500615996622134934800010595155165653290844205353973539187537909319932608696043281429496812589112163834656467389838648586047712283979953327734967092208997674984386146673119323479745222238313233846000822056741544615778583998023294334946887302220362937096141014465731076817801369831304455030715337299610678759333467422297763307425483850671101012098538648560789632977177997628451614598120105907754102090276562135152823667162983506449491804393840618778040029445544224261607009745800341530364405955677239877930106896402093155708234689944274966779183612873426488876380775191945073888084562702301816394610141786848323770613847545472698315231879588356450742449812110647346335648874592080695318676146567501100331139835216731741182958530906759895740625909859118582250520341961730240565196493414727410276965913220659177988854431947409253546787900357505778657461375213695086704177345109107295147052614344644701145843484028866723103429971843836412693284530422664305517980259843696673067905413114476097079122360435197925116673834353528301305106105757697974211417821234966147243906425276321854505181217105760550451732715954343641818826039171482096443487438240194317620350489838953306600301841323716228476836692830920966783084803594657313431850491705588937896656378874224392335354373067028822902559675550190725370763035259987248948263967654976502799586118734046752903821589733881904698206562351090858038389095497506532411986633786406194147365373748358335734563679495701664915875956925141791500203801745619011305664089926699885236337094863935529255496728798541347188733174662652489566375164575577751740752132920675861651594686765217127702824125167065598903578353765090751659457792557797698880721808832439059670091130937035805128832958069934797702461613797256189574617851075795398260748530455992299331913207249836498429982300929317426773393377097396279149562277694124826394963183842969411871627317359779154305395201694149626536822074656827977964887772959944944563042568401416436892078264093397312581444501254125067774638101645175941654732461551339055627674481187189604103921484986753076027465649661509095667143576496932151293562180034536680692335356311351958229816581913908475644210478450312465002093326216885222627882326059396067671748031515500664988959722401106399971015265748648888667573211179952048371754926030971269897499079820632887989406388566836186936074668032553882448384774268252874771873930404361767582011024058734599715564524581151826095144188112891613895879770174555361524764089667378487353787516146836782702962206343564647692792098065638882017890318034543061295880511482580550880810678718166294160933886948624494317556053180026240450484733682270395964889248064190498120745623135171069002526439821637960488489764275281617891514054188372656246543142876842442661085702310927872824006444807166609208119818098749211907838404121697998535613928392534954349125891495079127030232836948458128202578323752876878666948034134113604195582607287542480521760987723063454337288222403430482499426625478222453407758000245826185599244396520010392403073507855026420996845981382813902185301925513004426203976036515438961824241037957012779672168540402312788751984554365401655666553761261960034037204289845681279421821276791477127103236267869305775444134874321798017022782698171138682287896125342975342364714447686866128545418343471444530292954378532288757544401903764278254963888236509816836747883099384099867219633235623957203615286262340957814061857476312490028709885392607860377045507522180718915518255272792611800530691550636745010621899717576638284722762791542882099109465394468812576042241018834843300192683026838281849349209791197376712983365143541430707123328768819158680821760977041489426053576105791510047973451921984781125296428012049542394464434873501384373997192650065407652025231030641733148514685677769412585594053400294193114164928775827548501893030105145962094541112240397435284722854234714364884781982583457648276627411228722158254620803494290990341111083369595360783590275038627652745560868764487372134017659776427810440934437614083884988677716296588531354724641780519766847021486990759206898461523443551564471106167163775138256521832580609903570530065200655750509957334484192411925682209754999357080848149119294982363183208325722995752430020024005790548526020453625692096897001184478385585303556247606316498084192197850205734056201203302606105354458330276293620650179163088742659177592586790583360995437411381844923856977540402379698703357943398971848362061410816548512793753035953343869151535477031662641111355993045388910075765818281140819537849870856810674209915926164064652973814975657740749372184022814372397036214878399172156788782546103683484508119682380725676749956728366433677797568657256761750651339033394379675360316989441013368324653480302915118165710580861438290087865996726035459565761107543818885850295895523473981010843580283838712527147218431684500226009433615015299051643787587716840184026746523474514949289688750306832721391306263072984775433279375048930708123949866207409774867236868211756359021787113097659910774382114772784750478404852637320643048732017343863738087889460726619209061680371647454171764625029782475878588158760621366403454175961536112394476098541932925619065262933288882489418453747842260936911269523851028775504374363749743623242873803899262521568213112594326390944166037876657252566119996998290304258842724889990246517561662894884948126164221137189475841616625091372084866106330140144449388082622811297290097816554291077955163541527648210718996835538119481772864255233213508039021103093708142603047593528634981365614295047350078540208619550231115490755230020142662950303178409331394695865374283223143171276415866836016941643551992748387869687213723547881358321354125447976445240177786444751859605840260570401026741174156791031078843099317647175518156397591437047729479583390280685905342801741867124737425704447582783549258651894675183722833416514911647968080045332659428763020416512819097861105829751920906407169543890326265752696264043406740029702326337736262999484951108349373760211333593236461949928272960301316155509080628803799214633003245452866548421763302948475777504467820774957910761677198818281039108045669775031699775632253784448596576064758922081698734407139254592283845246244797210703694572707728723282505268508133344001468642341876303728588945340823356661470917131852427965474625887023942167955803635709875752237162062236562336714361636746151041053619927337725842042790712039587151346609991449902940977102003041200529787772074484726421201059487944061626820959055121196431099788112887251280979068322468379273938092709975364964755637259185897409259679711149330347893937868311138443374573113942261258740025316038033378559571089273849089523484855402641448234707730971394577153997450331386467747693044862381029070765433978725605126969024188574666328930199005820408828846687196077187664259171620590970109169811770565993830321601153141614197927915345196991584182674119416260751212827383342756894590797604151094048321823096884709219543831048514948081744922740303304761454202642002578676804437698424696297110091447241809979686781445664073272645198518412097339577398039510119188403388124565400586412689027443120928631305302500629293272716049140157546344368049787351812047748281984158513648646924627106786044709544886984130752314396853256108710437951842331348315338508832860402704301652921739205649274623572721749050024575153237178986307041750826344151223723606863321575303867929720527202266082450023222577721876094095323520474454656439094698964619779736509425260191398309210004150595540801436729298038963787082352609365620183540181615587150617572179384894235055175191078078620993276863083286403667074565913944635768505045233996906125609723955143123085978160689884951809496331400462917695762578870952891633956960138540163860245333332595609110390458224237864017486495625120937261912861240927430130251089362174501077886599495848997766766159261576658627049537348123532310562857387159852917079683165718491683061659156824973942081488656138562062945949139654125968013493681125078301188241492700323557957338881693958904877697208825285813349994001223220912743904139312110236225915582797292915034949825863872320612607588709609675046984445359265444422867562946061549693617549267884315537793680077958402265233334390032039619904393116264284653868431441585643385381071256249844352593994857941712200552229725128494044030642574214156566220947748569739914725255753309790342939163225315178413969013902012421449959028474271566709916660891743017121709474365078076980139812737674610859951745612259070626903166067167392908481361931409216638240628921913222919457756872603438866630303036061074324503192941072436351415358820674842376120998751247119310625981403895204250743987351291146081539747593205201663504179614924265200016205933668001539440943847138472014183950340716266990058493854177110809882263869213710539132887892246416475789597746067889012992571524169793694024855107710406059989115596205803598626611220384793042122250025534282159276708610002501613701762416394914990150922786187945747512761636189538675885011245751668306906144667593740122538002713409955854385690008370166405401868184545253432599150922099910688791423294386421647518093133595124652809386726213734498755076020767891192987362600555681944523081350798298259263967214310034772315382900685155945377028123316472235044144324370028041541761170037433450848009858485109656437308778946242247076437809284920333601575725668022169904290909102498229591633629602978925847428271513906640443732584651485411374485075394081952176705402609272877508163221255996246399454986025554873029108933685234110363706749588286574255892019983840144942715858277838985971250742866659671221845175300902868920368855929262811749849877880164889390164327357341810237729190259369201319212271741531857323719238748953497249997464984662718144190297848279595662891174763070767195165881064763186738763670238982654186781767212418408658521731154436132504951994553601586156340261933611843881223426064459316877673391481796693729560835372022831660856390664012098474656155483225722510353323549156291150058666933740464696872949114388852396326170716190670524735863369103174369905003826507079070121612869491070632908728551297227716472066643322259187180640780689380803673405620513441758128732996896398140893754030932222023384340754445030319994942270139632802069400668575080072776171004099020267329145855163796645029105694131354102204756156427434774900107125125689600325232620535376695591008199808462248125161386401180676101473715047341575651411441269586717512611306609877294832117285562970805056866467490895225194004635008864710181251808516023265235055586238703114773724940856019615033147029831402617222302105613576810231490596577133186400789552563671292909240349716062648511726390784511371432015884644460066215521035758117911833324258452207339346993207312810204207183193589529831179112608603083607655641376437240336503333210475973524909622242862400837360451615980595567525967878937685104177632113445663547479451222600340624674233130087313695929974145296030102906727197841098715312452322265101885801065393071706328210344534207472800644033694633668709785493563125609343954728482069654855029512480496472766090927992249137848615807225370157972229824436274744063261723283525838257405332455293895086253594929226468883678867948879202932280573992703377937604614739888497472769024420296661807562304681323707631980764404347775641118238185127231471322909912426003280111869878821723567362310390828427729757819018145028598025343829917772086416429515355291382527293593744575454040890254535427149426537951074749922403260518272535917458257621079707107136709975483317720100745411143918617045516053797479656629058484529732593738460371622835294832444948337420691995756499011492397876373106128513566976156436694191107536214159934246480482714545255622650065100126002296054726236200429011294655182285761115989597669571142333881973215657827870277038259374884746348993878774940475276077207487221199502229169743169985122155572336961425357215166647050925467987757227158733220257294262416849008928046669790342771495810527431631466790849968744185401397367698442375311534512349533140057061258278467702432220356424837309188368057098136517299571135011324581787812671148900931958632405067109604639716750492272509719301204472165617593203071615547831261805598424226209262175131888265814186834924386871235332845713987582105834794425690278405880236250440871353137095030446859935487991095678337899418678664592847853040673389948587404327945253503214371571745074071479791237275231234559404238945311611981463320959421920325908218127201950495022722016807267234556283809315330219209883959560128068883453300087260538746525726470742018941239417303077280511689751229347444564079569726904996095773729551230187728481031630931706814083000809268833397250611092739403246457026765567656863932766755698457659672515813516958078007378145851854286113553800460015337472969642710866328857553205232542549836821684751227596088506311101757608310860593943197212333784760599729660937481152467382129171215891162220535403911609865898422087439743938772492391787997602850645892278846314142164826741976976644919416704333213191251879437216770869331546578211936439515359329511380991825013284746119252843608874636335714038909864974053035270698632437343419489238639239347627386728754234947857325961921772321485869593558148510905941279500679232890021566735730676834491045331751028782844540630326551435953196815110977822378230002555392259302021448570699923988928460461684368142369733334138635618564437473916926510678236922263338016825160999587127883385788165210153187655090191059494902740244370703609474159786888216649921992131621429027938968510580076670848423449899707705702059884331641022388566436699185519781140073527332480213999992067734357623957285245237439690065801935191426140538642547141197084998594816379181976948682498393636280109042936930378466425130452851411768165732600074534950182215949412338558234476917885908892598792752595200842823143210994775948176697260755440934860230202893803654667501705651977891927765962366461714568378231749641555731080697057799766685994803597448169366791251595307328011933307597859875533668823992017658708982265216373237631363558336550713768675807546579512022315956523597188112900194024750131382785010973645261065558294162753102799710512341342739279106255419706872987039231026907018032335282110705136901449482594232913263999053695773246071194267529677294554623628421578524727470532067428405163131372708928888377817121873108479986615269670501068354167311794757936231595108032545170629702342256357638437681669173100707501230540560226888815926787776577717616647059499478624452592637230191503266748846582492237357810200289376937004693530763588362414483329569570420850628595520029014725332271112745926008792071557001821369268282547609929665814080107261772705047914061440920706811304900415391587846969827883107462063095522218143780717404048692601532721905220251078950673222308641594009434231689621409563566183550109403695939851387628095451575306012265860069745369295454315997099245392146732633584889766100530171151006853177682940017703763580190216026129558825989413037328855348524633196903031670255010224923993446358806041354688762135862576347129604011286709147638310753027374516331698265714884921900192897682320955625467117549560998967883887905660598418361909164046195354515792764946437459145690125324760261443831799311954682191529760997698664788903861881673182645149326380546289279012104715934576849427546682988075881898391607687870564562721686532225968671408985088311881944534779765549833485471339701014798293006577882390813992994189239961907599134447962280007850766757936071556325342295585804804335196923818370185971701891174048584935018896523898755303381169592170397361838613553484407041237200307343668266697497178363598565671909412559662402068987053925969215921636995284663115553008267466500503830247712659073989433266540927885120794331998618727460401477591398028386994713043287643965795384390980620499172346210855339014552603809415879043844276248082436881287494067210593650883753368151335634082403219227510089820552629569007082107805909855360491524841901909203287353083911571348391869993930277015713121986694902508013213847063842922016605656260003534009653029170408834584498600119667914003076554417366460415737620084739654130135044838698231982054125782092289168565280601447715755987313081738277835701790356992400191089415476944696340774549258534731180281434135228039267377236798862815050088486878115741740756030199040904200241376263905124556996487379259840516630275365713373331999411444744129979935657579002152304171198925285832593379379263146539763326319376017020228256696529391442356125100514413370110577820223681995942143462635773708656722600171656919644715404540482014741977318347271164764108351962550891354036302208629750617304213349813540753569828841581745233595265625629049265110539873980363648980594018812026250923294718943799694361714525454430719687727700811172148504280408098812232797643319794903903874844407312212392470422008697471951507624345025472644890380452117242530626858124236300363048747572477941751283121975642794165117091649526058750035220556270594565654688553103645935921501160680732243587921004604795416348245218938390455153062458899371785016034692145620858788622167666130682413612105277610494660601685249408681158559645980475969392994518335407973093975892212246246477189250775082646448648740523133085949506942479521384422083235337921506567657774200000327040503950929633009357796875773866876726275146837560006234552643408303920437820522510499418613532924806501526132303042822916368597226616898274997200115006484970942364903323259367636003035221667541085285904375228729976597298755024320692503086693956736151802752151570742487558370861730195403592486015746692992752709309674028760420585671875076752688559062757499598915818454247680194385838890315102834278233226382499369232718138775842760803385389006861466806031816563025237836659237230804335699524775053399415242999601736259876775514023770631028123221581436292318620097321342048998768562659201188464693488326199411133027509227938860545403076544234592132141738360231281999400256583809359843051185824245319809313320666869152266507222414089977122475965297700287642496124991751507184791955428168697350931870722495630655512302752941403964432729116729934947045776262703741566177483067760628990253655477693424017258682343994115053954198374240956994327694574006073310794230497479602344981946062415534019568234186430472639730607266988772624636833977492231726433974641480937418547608083277579018734804623980618940088866937948239070589211666793836798302284246643269012801775719786161883075925781978113885737975234511711514174039218824968161371395047502941879058295507391022377766070705699195340668839831887948961384235825737953009907096732581009969458027302314500382882050996502750329467601464360216405770125996320637655261507654226030815422576794178777523155689025539981285400774159353052894526838381618728276142186427623762990255687326665505899534941684388954779296804356362778646199281874786572689944869606709295426749501213729286523297642516515813838037736782942055236127354991751505668463099126110145500361473634494508863657561522971271560446652861028566134857466537632319651470891918988905834762178121531610886461361003935864891654227380154171129244278139087655551312425089117630606205479285628957751409042901217250668321739727823738697226150690365617080532151497959613057108932987277380184539469802294742118514228786474446204728788963347182112153130730468218370503389060974252663826400540053145364185713259361131540221605063620759274297307268505798997358269005977880515867011648972763369082019817375362613145224860076063699506367163693070453257187319886346768735600857273610240874250775731084826918986662367431482617926295193806741614631485493819994151441914113606635222181688086246568550224219555214566626526765693676022328252317814678933203126165403168661009774732726895212263530831361158537076833838125453677861607259268291737088325056931872024142944378425058134281025943336992472844564584168996375141493234486208423746875863758310623760329474630173996788421756265327096503705406154255216556346980196867630129077475657967157530322038889664254277871205028922231459242133355574784827525871120511447212363954907749670266964072975292518692119213555376444807104740344463702689827766389696591775401406005280343018461917264143978767101949060658062272218484525375940758290888953239639714039216963513626864584740581269724615933245123671106365068739205308157113733711760983617822691201018874751405416362877338964588580559851740702754337924894937288813838072773824484378133172650626482395417635527656969378868475575289105206202605078098345906004827177391756078735365356736163235107398137721082955523135475517644396499914138095784503259265299529827423869216487614553737733615145031793804862448443531006034705544842505172910843084380624364846138181609809634897028906492791689294856037871378112442329192465829936346046148811349484628115854006516175582284700085624878116630685899106365340261065413684268647746329169478312899200590554760714105050415973126837326662775708245739015350319993514277701376432876648545258769398885226329107222586660888368828032763757930347699384752243467773056962916323148248982908311180906692529295799223149042939019757504355649445728095071528865359372025217175872127088985251451794576867136787772939887769752602108731395477197289326329109563932877606596924957023488322433186030205564084643117496201080196927267624033394868681050195523337183431790623518819774070097395430368432899947011531771400058958467638774203400066142237304023163784548156983867334080246285413765227375076978346927143703773962699854235069887128340356934093935673399091813048896236481960521700123273491535598658103294264892748619085235830499899098892010779016711943914206018735244540635500745735435349103921940130017127714070724679127278042092895430389979364090808576849923727150547735992733494843133872539013852046192201201806326006708945047195556010042888020902317345091524576897394105270797383502130357468244778566648508998027128209594485618917174337882532194605509455442805135183269679493636177144329635630381638028303448027784760214642987419018347535014746697503595798535536584349666340110663959719546256872729912620672849570661351450766148976519255972166883192903102398972911540653473777762831649084169463637529520220640369098793709448429644211437901255116181985890369591369496154775101687452340205620827670180672471830280371571964818167159412723675581665841004221729547669329656767716206833691919488364747296318984007157052212874715329726428773236915754468700404423689208648128672923002390100263222195133728152096319655443060722253985590140454164129988736277240300537303502768620317139958136275831148617833330850096838892896434133984322337473718229774214525993195779663318424077715305997806486492005382427354273430533659118350988688154627653377730653673725180228380306556200491201785629644064396141844366086099420820381984095494211508965736934859387372440659040015560325187117863989477604750124812055705831123685680224975342026723639720850150307150856165300207124289381351786245404331109592058335293810858735360091642024724046273984665833706133106018106365671951216632780997342292840227279056120390636594042768662070230021551957916413368910073728268591813400233684024034644643924719187574324756169614504398056755549887557941223773458830945038525666672648886847844290099153261207712433558278560367870385202314400785196263264704880029978472896070135241228283029600293235015494315578464003517027488466666700307296048682837504378819709820716391634029912227552765393303783009079867544557937976475671015745722629328805338109172402461048972334716435166007371677295581927034311233061810467934820740659133822675136234606488871965070059780478562649681002359197811322953470192384462299857813359765902925490460667948281414576000274643202545597109793626099533777532283008850632346102718994928967555880566269584638603022021465272590483649401427128753705112618963299209031289236920885656195324943572963903895719524811459923157461569159495607062386344417500724653352301756283626971851657109852835388642415543452475867958280568730998017857225817038745703113877195351788775576903849757665045794149381628439949273589150456980550904886516572933563228517517409120720779827807816195082661996865227918017297809008346242927373620008418038104932924107300973244364586078914452044433541970155933054437138949684104885890789128177557942078358826736117422554018201543827491162995368604475177356767414328214854039342198538027926066201615341681309499706830582350536917991967647052164179403527196272002845104921848436012092085119051031897826332004507648585207996409675741412458347570576977383702215319148747669755971072607671418913397731066854741585589945868640402334239175383550671100013374419481784127763079071790495252920340044840648852118283728173699076493807787532422040928727628859918767852173118764614262393468166563586128832825574154057020944989687384022928532806458013393544525017696645454962101812460850003342135163913991853700540233126958633922437817383360549100309963517709876282712401747542295791856906021863041317239087877143918239602766600150640852477019929799082066613329697667199551629721427040161793428343118346841141330231214203601661802127548723522665909708640318481919845045107141958290132076875012795606257741156674656682002835334418819644094089149407920049089847826503912375000792688032552521616262907788269382841366805751432984919012449106008378155063409468631364654962020684909602351613145513099209780780523074614634536348182271082739400241139268241586855902566180007706032996671642531149459642918088397335663817455399186903984741448291555100993484319385924265691001695841958531439208069651224604633495306608012009861682949686241850833221922849344724881406327565716473117449207925793656569867872978366823065832022223669106572069672468578784275982283938840523899505274711452012673336967425513645881918626420768211675502670704307261475611114218719437602410514721242561932370633940414771052271688506424992341576063731985043439717619913923131246194895957652473893812962411138333321735789875427914979087519631410620436189946372771685327617943065335131731571577649796345027470510295565194468825523522893932760560667714068571282217357353113554591261113835237229363551537153930777521446698241890369214769809196575065261357300383330226763410034273213352529227422778701302593007745434582344387735432453170358382681782559462749459761321515475876394898465692235396671913886464848592986967967704221255973340741157074633800611737295071601220187210177463949010463202118176869103313694084678708474843955277295756918040093019516432974019529012163274138982200484122741902468738002431687118290001635061610399088582274919438305459682883382050161108476333782034526182602300583988249294853007959405071539686250384994966006164399857447248823526746664462193161285932585542661831274485772430965414248660414524600942378005700565123222672553221112283073168223394083866995801286395900523272271465938521310525504897072077471736499634476602799019851358027050657966401436756394665144468947738669510501026831486816454967894287951702271851539453736019578218023515472654784870812836310020857690707408672506015757064603026667977780495158287266769946745393262231369387140242361669395553362204598243391072922769713206095738071950682248843261906435198372459225851431205376679647722263357265698716580578403835014567769032991585201448393908827403593334166305246861429580645004004679248011221331715210497888106869230220736831347466302546380797380638382376323954037563551986890352741361314625874915510879801266792526533918198323343351477359550762787827134253320940148777414348659078409360999268111857337326228161780957032715045303566221729774177880678879945188963416599259441256212645200988960077061393732567988695491906326607666639380522768050649068727139318727161002596973305729414474799132782109965121602385626076848008376093453095196091945273736400043387951914443161702437632688444508674602731845914598813327191536598359707927161945339554326899958287333000884138252864984824469239053965120032828999752980204341073234111416358494369993937229573305340546625414367276566301105588125219628891256964232093260781506306443265435940535335177618248552042222254178632595209818151508546186453949731229779174264548180886751995479872933791377831876293572812369409288821155057498629490356873360735536332132996363685407204150607121594424516662378570133116040051604718681154471276704167640952862272872144473998820298792537957001268183389503921151539571619383376055635368775893339101305007189212983970948535872946453591819113853804745657205939255957377273966309872961945354954532057207600704764870337833171354704500762348130014972397654053912154968751093348349425470397746953377479569024663737753285692362099345274315052886343337795350861604725569041804314500621524376083675936803480989464652058280186967238520159338776315946361747393556551967411814147102583525307896865275342682417928669158252561867902534377441183400809427424658441272458506655503066281180270534041859147175950221196673520231953530730060868614160722159221192077653531947707068379405801142848492472480220003572337823440981010386007648395704659779523675341170276887420070103303617253358885260909289900410369527635919565299109943274951304677399046995193694800882001431698321358960002840283601518173951725913813050818049380554704532628122428428427272886047647161454739141878370505156382177060542086132854883067321027163582561193595956182885942640945828132186080528381968521558972264426849027216164349347442415526944077534806842902191136342405468150877761886259850708337827416750811015861847826830475254481347767014750981716883534575292686494351783301238481831647677376249320132040105887468207108496397781767070445463164108595994911339948311775590634388197834153067160381207311111736872853038722988271521884356702052231428605941496761794404691321706297031352891600615429569050079056915708090452295987925032718153682727580096838315020483687626345096945878223186266636566563071736116967459597416555642225663581209228564487781362080976315577709604470944541598024556625168547178158858997264795917683134013000929767480526916837794963820338527531297056179668735864357293722653273957602531095130246991299613781056089535860853449178997994469070387006329072239705665287685481158485325202834400597918593661137672480298024036108031404055802422700596277961177883587652657998941509838787664584197199261979094734568857108935534625757094229826223524989608910567319864062768943151119223965924596194513031699360294624187159050213085484260779173271797482175281971556134902465886809772011525224915116857443285455371607508245580428714774887485630108089300947866366674267190033586659028383684470884378714846125248949690840151972501801264764708802246767217520895881026788615925433552201868740821504296073775797029476222834129607054676080460340225056504871658223359018726563213209142373379146339589266599182244114922152896000790076071054888355190271027630840447137636036123533498050365880965222476040524938621845347486864056278559226737136347569156434196405537739172343402939365631422147788155999336929649955870833015825912987426496973747002156835820749662600680567021628320926894585245301527963662090313438306466889974216140046465536088957271473890033377233863329266849891760546925752622328948187599753064221512376741191760856166447605548979439589747924226887603651834289575329113477916345667339209018646083862322356752330035378248709345709711128874223043938268512203123392516498755273072180703414429823339345532241814098326245795859031024820794151958897719783030016499554418609566037888955669003192705842604516882570286549325082924280603523640451981821518043115902764830241621496132469880848869112124739341969361348317883682595549481085663308648083172366412002861292166809745302174446288720969486513425831641910252531309855432635782592089983722280488406019129986754904404291784971793406534693054371434921763318850523104510469241366035602112417969491696179800947995810741919226736157965846128391927460825463951290946719802997399315033029221597528453160498961295425478848846007501522644196646478906548697326554410212564475753150364732931866956345873022382157413510167474764213041748053534319184302578818511186765230914687379963297158693075093841251076824409079953340054780450881335106158811869565546050260839122508391454479867593463394997308856572952278753793476793707324689984234632714426139768133311358908451098084895849471355967919555104700118712606014422031265952475946699216407108924641365192844914043942375444839206116042607850905466689959179269627899855353232139343043749251412402085656771723343112177936518561900331636559953993951434933831491077332667967498023320086289294529346157495504161308486490579083599906015010551155379590190081489176322563198266809766739233328163685550235690048006262469551811378215542579660241963303155658741649517724441640524714202886507276433022313870608373319420262552423325554714872755990731318295193415200392541904863587955439352231716682965572164011545329248639531308907727270781909268355475016219994069645809226194448141460015461747669301077741583788144769987502012248469115616833957342924546062076616570334494021709915310226784339157278981812160763300990880319760312348390729376983376551086158236671939748660226422895359209815802311559174911751170145859969786968184240849321495099924324311619075428658006423666739541698370346964284863279874410379151657119785636042231991719919523981296518830535310483202544130277383513917533155925368140417173570407378427159470879965429108024049227966436188307572399078595021496486738350128086962812213469710051953674036976651466854056604778920244898034598296825967607338966018592062365056055981166167846690795697189110596937359856002274552035078569623969998659198403462099212180161739095709241179342162771310020149208855695108545224419233571195988651229539500186956094661346935594532771450620415031026318130040485928089813166892488016424794842438232506947012543347292515727803644911937707959743953472576770930363287961797922479604292074188688079599115452487551569403742893611478769790291300474888760029320640147122651971674599625483167362306689288443164924392123544421778214240321539980443290085387528766301724996179073033846549858738643167279139982365616269322539346574494140865748395909044188478602164545807181161951400204894311561339382302031343950356222948374473863530806128388318745853108700863505952908510726333482432452743545624839017222082271915755131293424306616252269644860407904005380639231410893583316864801234624774722933245368263779813776239497370071259905955729638510082553466932295988752044100529256411168452591955567306457148396206995637951980531173284295041600701612022511279478669258203316441113778256438208705053874918745359748789179326071358030097544138402523572679486576873416476076495166079658087219882505336215888860882106942316161327431782407295999602665184540343065493972083208767013990543944574733347112410717487669449647392055081152779087902194706624825197485871159008801519781390106819387626046448534657543651097136031817055361305149660188080394970913248165735539144569816877143723745699586264446684166778828106975307171024619439474116671237665778700902695473293374281827246377050392526022724316976158944046479852063518435219773135853549634108635232463909351511461626769727899169037634979088478774318604682219678590113814065062389160951425285755930772296138588461269476020254818240178300245193531519879187235412221586584054877021135739678685183009518513673893186819120190307396374947696136495950596405696209893426266202457803432413372500265496939329410911726315292472333695209058793844136703726757173005111579585300148559112098508298176370640141365161353398619483946291489193921253611616680969737000050564834718525676619366562995068785009520006872741351130654389691525572792472490379374586539968259694328568858779118425408273884052972856211971358103719394686773433060373342801701213477180977763406419328383299217853281946331634586515483712213037591425466611865757544319643596492127046320642333070222967348511414089255849125201938323220701255357044756288119812307863582167401063422280246957896981502455038623862391219792750905727713626140465848102958389925861049254806847702057211736786251109719146225158499235670667513686010492302700215948123000631271135817984685421611381030318142261465207553074507503301035669298473325711025881157865442715329754825009181582461330618642340046591860652492785113285475381741812572540048907203556466788923206956281734119855407557617962239453955452967618281599584196161851217937296337646320968134629170515504812395391117419371846228918019651328233942677219880433509966166590984255341649760079829661637229390152790591880947666602357560940750778830749725051038997392491917027035974475667460726362707091335462098845688441832755769147025935040338146496191636335511964014315448988933410896310103015916151709449987673240905019558028236344557673769844810270464247733636107831552395887331193952654036381174909174537407151364439474188401697510146020346346968134800979212708931708192700084684710557333717798191263606406936502620266493963645088888345531163982392608204516439548628724760163972959051801501479085133056426266956720168024290849437711844998294131481801013738750380676453611361303299188977831125790150620351727216123566320216048991571953741418806769578048356613434608884672107700511114761644441814439760013938937592539669452886984090526852012292696202708001892197467369016755603691443650472256778340018457775409937826356678438590025881201779065771869424388976237844622307669605489271098473603717664093171129485581366644813073486189887351751539695203159194617639864435652543352734460700459939838501732927311636357133567490468146002895200013909952510693105233509285341652395882138037679381112030530320983030807640146987145749910089993843407595520200975184749796839021670431053832136594740711952281761374859604977757989693105305096552402202645016480509698944270726736792538410962453623456585371340849473375134075104696194593950642523557779021611677326196636904536966937725185695701266345838766185706457871734040324681377202101713835963160785253549358155941566226356071255807740104992857031222169287966553170076123669874801904494241141153843936830837085315564484644627136718777041874037032078555256691598715742181579406589708517677963048532952272760322426426733056392938876511993205349589548261678849095251631239705128972287375987184855135042912310052684042139440963538379171279188828942011648910139562162454675045353253126578005042158045352432967302993578238599847267872249959609098691818629691084763813612526844045307537225467629754109250978673872700886931451471519758158049975878027387290925972981661782783116707994264553578116255249162958943735837564112008644648270613057317943280661673321736077554006914317944335713729277264640333907855253469745801939840981974043165040046123223620293860516575974511628525878857911372906583775516590552154337490732592970678302561168449317671564780696978884494218783502353443525307518366396067154082954359237699519335324015821035036924485573239705963489312813888441018749908864299170642778886161371876086778102568597458845460357037559425815498748360675911085638360243239442866874658778260867468010809118831791679551071383996905268102177950977749478460588502983042978284367657079114607771465357716058173836299163889661291169391663514990689209450224938174047397735901709017788570019907917224580286036180889303697795561094715252351581166582771373409926168480789144915402878991743679784613813019887649796543972644954783895462495713433551143434389954048019307418657897593872778136362459324127423326489594796866680061793289218270745348891313165868658068074556559338109397981459299063063706848376030300892603941383962103366150490409104213047017243005916295889992102329126500661588113921225440250706506473499209053525478138969444080692798941084275625915929273962249344090018066280886391331807306560058914387058559832715830952590106229323729834242923781803658737592810129026208687788889266531150876965362479298530613750240548878459860893508076081543820590425255084862102524684503266664770656220936345475693209932538491411149190915777681374399215176350816001715263984006619785819979192681883991315438731147392279446469108062956812723289707539417385644015460330327936436814127217867760891995131010689128285940890297720948701029769851984326409747763488984321724613514842683706680547785985396251015408961127087627619409267626795177702110920296456445647181588673988397080068539347100933971832456750389706243174272136652396453083269694432882720032837984023921653375627449710714207614242767622401950855010600295943098821321686979675303798948717008677493147181383696016833607184508636409804073012191883404381792435867480736402885656069569516185086627335538554286407916738210363688264012210440878805987517016318342155235925213260721130026793612388556257787743517050645530535265531774075688555685944692475312510059683724522026974284054855925236459817463573599293674433622282794593635691743352210061462772399235919197281516248567122918151511676851966516907041206758048096504408611994964711453741316072120849998017379290225077057138855171659901599844124503811612250660205949755460376040221925372784304950299304904851456008940516489478338352703043766856344415845910183539723819782633009020995232635876620786145282807801569740852121793641982569757821984961969898735169112230243841570564852354135187656059297784710843497764644381895604572048669281912588416097994684734244410324373381980245653952146687491792313648353007485898959005118071496964783424475297546335454205789801463640926033218473539558500958536285505367527702058286106193731021488739126324894377864307678104833124497784501114674575718110928735928995656643156988077828037701456286137148162530433769110142838043994460057419408311491525545134718427467305037850347699922305012781430857818198012015034416438307691976662902486462303122070729703690583829916694424243536134466095541903019997651641257215581535506173663674936087076431280062657295406883695602836877047553549761612536772200339638417840687447452614891679683983404488816609130187621363865584472816622437908006211885462202978680251450653346522693324115312989551116352340205052941523051666902811316456419814132953221057583595546507277739667750329816829978756610483348342241178210286529380473699772308589229793084814270872307365279791388044677251512849119958782630581362408024299129517683458763955164368292409890050784182087487199365424366711908072807782645512934584080468552349254602668796600749162978157525642639932874737360554053461657892058571084226198873749068293239974621098954205862204946867087587506272035688414938821893215923859594863973505278905248654006889964434241565522144890304666872853747664505237755081018306144183899594693974029293608438276554494297363681907589422652048101978177198855940155674176522848545461783896232991283049354802700765604506267892221691213005522714941524352512463593710539408165308689095361684195838486092205522973416283139396303855175578795849494995837957100479297785340916783145661821317131232399291363997008334604618937238884969651394218006328882117388047566535758200753871563693837927578984383543774930448319202829206897791527443534915332942887631506856326354057872138527043519560133220317038694552595859774842462661162686608486263730102253100273857442569828146460945569639006580698133968700986211916849136485280129766096161372119558605766112623995568291882937043564550271469575683598121634250136584740402052524349220765706400115923927203278524555784363960082901768387818075444158457595947667898273477621958382380872548829682808548905366313359689211580156108670485999028235597058779517569115142257571596795953260917021227519814411369721395081418375513275700908809635800250641506192974534876548208879740590111614507686154472709950859096101398684430227700238919068198159554618236702576325503504453231027385451506066739188491672291206001116149507965499307721527734649713438772265906993665096352914198783870300670298350125177449486554733828988842186323200163480957067155109373235709205765493446156198248481480539174102896780155105063656308164868376458372497330200459232709356091266058194892516683505201011802211783534014145164939850492418536409203130160830108915326787187409212837626809665243359519719366077065923361950402035496393372633315348176502716112611432212449843039423684031416704851344973271985076775372243952245658216887198466742751386328551628584729809100694515643307527558976308508598845118953984570864427995990113025375215739101235734060124320827482405290661900178528763570214829198884417860540579025063555254380459093366364784909715537368110719622507176150067587754908489729221785186771955641920250535178405615858587680873185271636624900161667226054325311227036564411382855403016625978516325432700847686491512578046955257969030079009617229726218631263115816612819082131346030427269377386720760419474547367458141738777697903474924883376491158469237925514365265256432456820250593902485534427133124295983439380784085828599298423674931187068851515694439099945772576218083500346956489714387842323632614075480238383855747565850191144556045665470001424531007652875201134243357911852256862473090144275859099162088234054242409738158167657149599994988446217395658671852317298942956601188280394702162711778178657072018329051771567852177017843304047634523011009248794738234897714974359096307803764318591008514877656998741216086805749000424876564560581450200269376137375911623940075289185043959796364452474640290510536258313875511276125343971570916079116933395448015563012604366596270186589911986492990118338342266422043621768977037817200895520076520003826295341146633175442281049098717886794082374470444716351746425117461105079734480953870119335794768780138961968806953047933229904798164624603400203716551004153480825984645578567989892819858368129978929408666162066527811614248237790173675134790675623150223396411792625500699074664760137241350426496039958177199596705271926998331628683729934943544899595630493222739721494256006316520052943448841243395937265045393256396264832203427139077210277264504188037235522969966238992769168944592728956411927989670377380731184550568436019329720105106344869298145369192374863974614843011477161131530834401399993886980122696768031409610180324058202912549724668659325443332655211725806697076943915651905345359396094622862340486823691641999375909129449508965100598379890060289328944568498975433414069004919986953344188824624066693965498538247684977905651331352876909447136419606299472927526956722394569410640160859380983783828096707589274269081920456083795105559908063098879689442208757872780934731983514717964064535089170993681941457129823247566447424028256940569719037304930500031325038529971868889529134301355111821053455059249423531386203941563487085578625730083431559914194974568498818272675777394565023597617915207973263809185989259437978943423092509768152217924528563991319263039136587902201436737366717043335161941376562654540240835422928357182922719733326885234365672280825023355027473435578973131984545731556374028541274823689893528235367143101297151196756708366379718267149443449085848113065966284645648163087642414537213204538909113280978504185385000407536628034109995272685750483157670367731759808477053762505313520945331306646641991828111403051939037905229314491407469241583647117760119513337010342999419337309905534300301368263861624102736736975599694365866178191252274863189176822571679051651605243912147368730827040204949109303766181639756685078157912924466093342730537543074837481368937904253304221548139133561279081016450347016104885663036150336101264216300359876192550507479804843931572967985149320326992930997613241585550232250400413530237747272825858937835463891789387607009657278551951770613154063929035414665820614890559337391214206547350733197177197331404760179983773263637368022994048326705107810563982998609234204091317314458520716012651352831862514722052901052728764668756245079028137602591828807459282969326022093443867506494474325030474521349100395488182749109322009700870316753643858728591250953764552088987746809280980877270697174156581208435976598018794750486194325587167122274361374070751287119460531157102724044550488564446214741167348164659635687456678705605686959463879917413388212752185743895652106581961178242904418517883077120042074904102111578049318057094524540423660993450570246963003631266376228001627450562905982898109015972501907017171386299528934917714466847879648020146970277815379435071732533537556350589403721082611971070065142770768548209559911557318306862405886717970022334695788873079484600399176582306626179376513539581523807593608667982476007829273176934522082765589756149645193671853348470738965858473244316650095991394786931037030400961377196969765967112821478062364491483099346133105198908274213263278908183027668348321643347549864161801858296222795534268401638385675595051314426456890225568050813481761121424453086392885555472129407017313158531609544391341885668266329129189459159773406946167291615241853570668916710914167390327821952473828361333958227105570057045047686505063610912934271830927730970427988059011322380937418726485642365118778991424270073720837490846637176358867460902964223672925223294201179957020485728869015365182794076337743925960092319372652297600545282565802424474742458683046211048666534730941761861687640112400174089121721442252046030531124472657517996470361718524890931530631356311718516259283207066645802411393283554273453608595965657993632894327756505474975102735289038353373099830263306138359131327979057474515433167443554854876474193925759222179966784435877425766391017331604383271922644194006698503487464818862092340092069017511514686164405290745891098506154474785751984484465921330769372864807221508352084932740200894589312504195014203601312366166266826826460164552275036807326938260013683649906864052452122875170896737124635416386613961900393888636842257443466083355130595911619893217142858007512741632100458888281617947763314948431875380369675591478362754848329667781879947993957163523268602031896219304657157126998482532276890991717966031764369198237631934905117467589557560881442952970196377139859756241448461925490973470671268330503033878973782741621630575893102140352655066849881903082463590206057863695511567145687038249569654709051601313090840896617662228310092223051231474237835892722476834679266430774375427925300103564082261040408977627720172858266444881424267223408155114293839949416435980961619078974073612310239030226314730049542482098773649064268665377421843478712398629073969913087814731459634244241821905606937605019709462843404176795887264824949162013583603446620146206577485792752875531873331810393547105937185086192988585962117899954316107978348440485692121561562430269215899054596437197053732603633139176888117337576275170764512333067119941137392609031717395019958314384926360475285825498883218437432130084587469507295066528631233478241368874742006300361283493193535519793514189257879092217335912838264557820079191338055040178739419968970937721070874139704269938603080492563471741008523988302726429897563641858558399737366877297328423427565157896444583844439403465313109629600767122222232194251105468287384632486700301972210715757760450254626569883298077108935815331976528541131238313562611227322365353091128714751966146509751333147606906434815628095290518587869300331957342391356567632261510653309663300755336231480120934718509664669968798395623440165539066796213474195950236991323761780896592534933464979063036200218530833157397039712373697865403645283405259199658659705588330956668683699856625302174719143914690168833645920169028334918989061931555750830520052375010662020819462365943497234812225146776969516832200685369506369282296780238855469234154941806664994053731493413478168616108392553236277753287813999478389262027695473825971258128209954635592457528131140961709690888916225771448979953152297803044812114018471942259694360862496680786682516268285043939076404073714007099871981211972486291205519107530999266570633654769118951797303410124517550446101919183149348604148799492224998764419730942314848394416064952621247622282615076856524700402629175780872220629577621511007974953449976695353269668919212494448121778644900770651752959713254591164512528562705840888954058101083666713320986519846380629348536858022553700913638360345940721773912367976189151562701350517452891253533833158995776570371840330175163235428520079155572980059785244424554912710223436567125904470699513240194883834627969897585898513451519547517973433371181181875788254013305366517406143335262853797142499722407896640339793128147563007091685902785124605756993929391596333969087151482363955826060213355340407047024289354451559426678777410249565625790818495092044129992003914501776912489567608379819145454991028222359916414172000308506914412951506720797054852324391495664821713372432483591419545987231997101851711572360142749336841213335813645352795935040780282560215930098093789062119299296560600439570936235020566966997437707207859654130365168287143133027415909729960865213065091475735743173021189570635342347583297672459434688202946197062500970759268059021918459796761710017018151334065191342316368444196351170181698787972734162569708813475863357956123605275813471573541139221024618714672626979090021596050218186325525757941407018756326070234658507587339986483214955416060289804059736287281414047953581674083616411713399417563883485803254500682790453371651245890528269490526465126974961336124027730723200690020974474889847271584237858708132539506142274788391490208233898379804723058440916648717392440329329682558043354397957108724357982490729578216646338649826527592229165719489233618105040461182679340317019458519143303554423109007731055760299960142852949215255409838012328257551346297029647117645074633438339707974403332712179354678234661043407897985624004039133599009656637851645939147762738592971209310892266593574478230154934897148792780661149617920525516127374234184626354415828994947742616586925765322468446242867961728336274039999176517252809168697123686204066729741457706951385808470882014728995262704563029339616569309009004315065497630706328803051615506094056955328073295179712534675406154347395361185160492977825264080830516369308269879157124671402774944997503578737590545706751539347055009251892255818314386308726876024101333978172816581611616514031322741417974193966201197750126861856884673551242459382487087431978804995308011972367919095457808121565279906670526924823320265163899168085718274368937145590026276545447020570146558519413678567916278711964038255369991672080727613870537504223680195661691487788221679163705215548209653187468339704069622910228565081067200177751767622398332230755490097664938517942581563025848404582846111760926462052546543296220975072894807690690999908117366032779181641543978891665427864191176596070566474286895794332023210215009776817780866406929579298838529205894142810599306514956320845427049247089912309748414083740283396621430759671894322047392850771577928200717599526489158272868212479378894793022332740921641904962088720263518085599080871955153350487199217986496212744403827094585414572450803302504322235505388375963362419508882603505091068587686975602682665119617348432526637241606510092152987175532509630227150764033409169656874317451037665884091276830991245105616419641382449365095032008240949269031720438700497356886111153954298307041183778849146855615483139757134585686110364271996021390535878453793056193842788158676254226014774883197836316006142093835758254596560577330694858607318118681246513153062210322840809171175194018710663779059803851471604131839274662086707335658597759893672750461901870414412648663007171100253258747978282514006116378810784788355009503921304935911328959739194597934862758761393223005762264324325005236278497552602519435039121336953238019804602148347763066298470109218518842750877128125652567902669503702596553744714880720486299596195273067465510246096073626583629076746117696642660331332640081466558052133528788435639563531664610479445376400458727138120502397407295888118915203351191284863608199672277146660507462188564446377220066674424893032468303623431995382841350751729659457568502002389674793040420708043831585499732624030613804158704815159053139063477517220555169734951631411050630198688688749158359636601436677516064755107871916927989809842887755486765567570329889154397776758524631130990989276697017972101110267342391874162335286884670659836617078252519463116325045526675185454397916302945119192478134497185018283113179096077813081070258924942776136823512783014882704135682556921540754986040978515949727242464674751555876351198941197785438368249330984629631403628574412851178050263807639525968851161047419641100458473638778590337363630605964096877479509118550994634237918889548921739415454896302669353065682415033896262398795237328244387818887514049786550098081501281364650552820746816428031160189152822484032541323979539002995990116048006215242836172159023189790944530043775481330444699768803804784343798187085465281571029343975508271342540811208948162019082177104960615055804294330415602872798936469746523066499580800420594329163523774565857716474422300850130599354756242935689182031024204244152348889190407344547124743513861822635956180816029971253120056312281505051820673051086930776448576050605075981678271281773145740223255235964920255747541166421710241127500485011295370586890174811865982423626529911829065065312755145513676457145512525533071377201147403358514295375965590283985185916788180058957625712502007419907434951617540322581599507285044637366469771203783314039821748310051355828044271740742357194657516469338768789736986133962511434765364358074408203415481572336654103311483496198310961114464803235047639709101128042652162485987693899370012028024471026893539351567862708578853546105769596217702083335589070954222990761302643714778524183653370053732226870218691676166871761150703772270215137765445655989099760163615044458225553979355416352016025106546639567527519542190284301075975626023170399632242775387550143139539329370868938593475841282589017769590479921168781748275157160863408888365316605963108802838620214167433323205104359387506752837813532507914470385187809616761572173864169034858551908951225437614985013191224291354969902826287922674729143418728924846031123190976151755710646842754911408219944488228998160707987560050251551542288644037535891735489622604264246400045609899682030165891185117481424505384829822730047533920063028440327523173923838498757593841609552011401455361604079838905268838572265829148550517420018469286952374873987281969324584947542942892980853220907312004026277832018547512682044503173455670734342477703860880062500186715626918173519138093856563269757833504494904239445516372609283354047728882783048765611202310012495306709759823587171341258607035204217947234750918199975407720692390702010303309064843477348624475016656702045457080207643769191144127973758701344206193242577825184150806480509263545223742829027952944062698132688316819570175915075801295757551768240641440362633008650200082394925338431461660030456489618444157196017193909535867552424316503135699364210263166289128137750875907688465036587313703599002620047056060263926790948446636732712314693964735171619092746814620064787811595842789472918188466320890648964334884480471423270902876217645182338079136451530826100042752507322378623152275268478144217285608171623365754486083519112660323459342058099714994581417076239285684196130883275894788867769457120220455828229095965818176083179829696605933114814575297068366807150452248079709235652952680982507759378934861349784386123238508921199542526118913463271041620322292303414678229764888766990758585298406497608962252630777388823044011278251669146265972257834739511925805136405188102401416376903147049402763743441356794801117824083282142552730659705097619095077104727645362297668678581173014551693214864412339709558740430538864259688702791800984236692608798558271859058046326717328783633991282639789911585349086566873105659745292938499011243886793461421788148475906250820976171337604806345472449535529876784108690064982464587461850978424315911880624345019968843338361951180770414321890147464609144179354665636526603835526304900596759904617918008351298668195631379595821596179674598653064959691456740223672190755892080111176559068109170564180536692086919674294473152817757015697848125939584965110007679718726734980481005116021483788937859984703977668181197420908675812595092288513072554186466318997208443835631012627430184613794528604007187391388501125327604215645009829228882152390203877594003433034163484679528708399824524539327225004514684082722926117998799431773963184626970484336301984500430781869345187947076315794475543043007443693967578062581859260052525227535551287832816827827548716654199943680187093993296676765579769096709473809849260624201334643954323489443669990058186919880948545814130012337331892789310138784167909202063087530931900153704166110898867636031866468240933122099341312778996700678659728013596125003142922684788890354530339468772491649775454667489732143244358103694781573734277839991085226352583127094329167472074827277642719513805970670464344440060825883393604871389956796608952097278008884900810394462665747646029800677800340862546659116162259730069690932630000272315695670858113362179751639834104845357174568888413102813465854431878505216470054328543606449364600357005802707750967430583979084633178500217801079232869631557461692811051313957684995990005373727447475006302635559136486497075564379350244961894245075668867713461646114290638534227879486747504037043763430975103765738557565275586984909052968045137224444142339199833796677673112355060345070472027948070655191892937691947239416013539878067621567476864702178961007315591787164209574407004175838937800930187055032633114821554439377128059218204959946558286090308231962762776868887036828494745566330701732211824873051261807942711543719158158822781383559736429740122083340872899647239239279726750125368887935943973202261782008792077366251133191190874294014309984020349478619377446447484321422323327642503043268961215809604975233805204302476654960971267259452574931232167674329336984289077885460151292053000588024748245149560524035823070014485790301072936871247733380350231381423128878597523294377481963697597311009441128470673079288450908583456540576206312308539221547691319083128600205555846172036973659224244762626020093139527056174398632920430346133075203264108470737129724276528715641235032568231489102007400103466793663987909850617060933678176468334194755219647497979562978562724153527847809672707141440175507814884284422201367629938935659334323512547851179384534924859222360447354985742453390299364230926838122482920598894498631318037073860328079898673053520875746167763538764432500028716907770166484605990351787723943770163790685203886944433045288022386468373004288665097587027742966577674805956153545138872466122995049611683303275085155271921097165615504974461929685498496676961003675807535445223578277812140579468391585596079665400625634034068876725780877395689019659672262662002515907262806154167773233070351862794840717174076930833931470939909265760206109166335066297019094066822527799111695191251572559261112088338755676959436791352594884193151631173525837207344495550057268821744984435901454929047302920636991883064928413379625436200593047948559802974826750873569307485091416407393231631486645773531433368041610285589033043329876777606523196635603861385557758162634715323400892094018108934397254938996989917628438710906800802135978002867660070662879710633410789535856590484106363574733006424169474640127268187849306898716832366526260630570505182201809241044613717183431166719999835830039111170349957313884279923094426881760832983243242343834360357910002883309906479266834869974099309604663265368549069225729449590330653168724498274193092835875447390377296822108928464267308886564656683858693047767322050481152700240840094024724238795465965118870408276247091850832016401360658797453731783629012668175331668022065436438612897883873913389761388895564539945640447671382899935052672526252201943496069858309395907182995541535100982194824613278683600870438586753121352900325655866501422274303173102752372432741265739281532970073431555205850304341269323939152593655591362477198745618233022809728458976659736791037692198736229049569579756607233183753896865393972229529408023601295073282819367535694858455232175111386154350183430166632047095983803149215317401207176575259310377291308416943269448594991703420229432036901474197631572828649305841337765362965336558944714502808206985495357586266758247391760006636495103161046075327028743862353864050210680633835234901601098710776856383638110326701496910700797363822158645169567907385073689583778529374678822853067093686952282865087264892338109961177589806464075695902781786796393068631588149759781233959469523452649050184786684049310078883211024104967980811306504879679432529051921387083923371138863472276871774412498294389875061416433375504507799491751343286699724358947407215586129182927498489221120750597916949718398322078719936369403360774461158088957102025576330782994758704911411596911452151110690803382779042230833971222960275312514028238485973166564275897777875983217351478427180313959755155200855424726592980389941488991525066165573826198623713566554324379971200061417900782800355687079951726427757476999885193517915957707302452656720680104954436991513836906607151850536239131159511566810914373387169932171460347267954660359253430169314302865179147858273496835945365589519884734581882201949672402720492324261198419116289554419711497214358778357514564089500420486296860597714230499389836512898130940191479225324693243254284867624235077668957802762920256335365609279222904072254280717094283222596813993802325105456010636999130325377977403268955179862311169038847883278688283304307821841298467454031272251465283237986150763491435303106570937149201677990445692456869070178683579603523672444761936014419729308228489690222783756650632602162323750221146018105550325930998145168234759811171032198609240160397325095309262671626617748670695889035525265177177070680769773970225961147142269759268143452380705206447832224374987443234508751730992728730902021261183995355761439671901757489236327373765395540841388825194047381178124044948881773703417710773178432505540404077942974909831042394482174825097965401190000607610181174373406210736057527525060928795287834649571529663939150264907365542059151591285068259061043463019155086757197841924216550772250668370717949629765219974652811397126909371239995713248019477465748686521856144176883420860673449404759785068700080780902084691658363122216957701786902477210723032650145250918932224099819856409370861649884849843815359265696464543034407722504083820932824929304130621856004135221495412991054600343922251324447621940197143318154660027352794926718692081095558419237098447501455740497462617644281868587886792520045937294594500130316672570418956301388729030525581362130336068049506319980106452498268348429603031431763385354407903447717128709346650005112478627244834829662842409802728254643347342845311839851954656606880714137549442515893883648291711700957778429808808347011448150031922784057026641533247100251616572202711723637596402231798741005233439565994780859198481268810618651851828731796508507738029669054204181691326610284553953889568216343830597646350940341558114502139700739501645370336836844655516425192095752567855702526807309703881560528329363953336460965826746775316828418464467911705401580093001055312453139434853537146749065147409535109742265686461846253836374210886561548816441062933055858998629300112729095012630375894275649892450119501438516043547383240910896656158072326574182635354898080131138202279704683730667438970639454245883922822218843313957790995049933878029992715352745123345502591123981984272176645534112372648523324059519304003481629535248633886551644860203125815380199442213056060250981008513067291975771471079656067509799128761962340242259508685296978542571404836940872829237274067143110851661679784026031272372000126622627045546273029938541914811391356478567562396246027904056504070557795404572847877750791333480054849626344261242171550388765655322064241532630401576486299187741636237437204254167113735659969341786364314813068222929958602409576439296796572231343093832374732600634680317021579537463784208993126908989354116834319666018244235081404421390084405806373335331091780154118872754062108497655021113926465687024381676506354461454579221213354565232084860072356517462188865912869458037662634816326353662938757149745787917208307868571894185006305472083764261306741370019328867185440050554528810738764548629674000701316419241745682744679129745321174237664895987090238848871392465895501470512761739116680204720270648828545586935363288341446249843283011741806159314782088939877623646121226364328553438962796350882022572253936969434619827401826205890216336883779909301132984170939428313651822146118273144944537471782739226603087600969041975413945690337582379328933603306545992092724904113747244220583547571773335013188834057049230650312343918909098142465022815620949048057333679025480333231704256284019295056548225425463701601387477344946302532925690393580880414091242374802890572447418400703528055632330073263410397941810365339199055915261096199487030380613704173464734997642230302786882107775105223390875574135746995259283448462568871165644339999675721224119329849801864463172586265605138213710509851680141954757536594016928209174512390100463450553817629541227207458114332412449636692121408643466066818611858978969777613117309182946444049384860641202704568118037293786705140909274423336413994963342798167997898556643177737338290737244657556512271913335359371060747758487545754353763575832037524403330696893392217960062064577222105254686633446753238657716309009995160106664931560180889932233736553308190662180903830032567539336886885096467468000388749291281716664817715625094066556671759606765564585638546415740541125214151503557789564969957741392132842111656378376967912860178267154649233919103436344146623039216284489615414751820918962127101312491251015615291559542934610008266530610700947116181508303720642129519622379154857167948842790288622053229969014472084664945077061264629814062860972389639000524205708299444526722817921197983059132947282024678968962196148930892686649412641680289386307885167394920201165116818627100226519389263439729155484642114350620163632355628478967794067626429674436947583402119127626572512759265638026013376850989446168430625314728437500847108663228627581858920524875178692849536050643416647117211193487290818303972558838163806572177101662873761559730796745047084694921990018292812146534209585942981646821574220351341544084842347673763891759845002115951472389662306644849092800317215794265267733373210645494258329495199522360870274012497570872401856762421935650398844088738055373593515305049123277166848271302624432489368473674427344256844649954715407198093969956923582023405903831208699708400662391481673621973236219001504263251910903588835578244629911060271451659891987184918408420011371540083079583724092672440243626314350224455329776060539866824736069788352690307963901103512789480654935237450985653361991855756568966709717499483090884455501841334662904202343380457500679629545632720611954444286988483734386585234511064402144316818280799302877900827668079002185125266007724165210804523639028475948607468159639768103463641962828927663703460976966315175773976517845358657031512934654185116817748981693709217797929416106014289589756549304585161834516988638861934704265010179932602739027377201598433120554268022123791552438815642529430247815498850188896544974763113979875799745536182763766014907001821295439630962168718976443528712672297580018149263732133616508501927512099941432539769142720891303240871782148718977315903215910244781441855947710311591222725923740635353928607484794995246308464738900555863026961894874505940648635394720602398246242765332087124427000591802288591364218297243076973593709413913904477518592998747842425873128269863787242664412065139944251047731048053880258375980082527633642079814707419900372286845754493926325746689378131606634981081104019838373073769282067083200443915579041810035136359844058452919266840965967578512352661767103143684981687798740550309243339753287795144778632042711286783821703307601438628273359389482434344068375769918871933155659285339083476066373832294804683779029532013467693275144487213581490118876987546252413964689716701497130557002491019029292598029535379497690076964138226620429152309873438823766284441165080344643355259257584872601006895182498253008287539233991343630447045106889661997409671731384209589976229613932857500070651490416264186019332871358081835685638408800410162068297621860091712327827692908918210594557591079250235797297854608388515353544511248839660347594823586122573193043551206380383800956274606402118568914760438370613460813989031688420405229239304683353481811293657276233098408898789269733325125376248278345221316720293825651797608619318750195719126016560375398769042196273324548688468711992983249043943515467096853357068404647020885334087844351539133315742803242106258664642288444547980797381386388787432464474584980991894830469661684764194741977098324920351191810420597125206752672892995168087772883660633257918473934896025259043639560665526014305373685646891512417951971785643750937896927820875514647596343763391102639969533019723269454113251408918113791554536599065303824231456903083209405189604276817076450481248160907487356072710160645245613296912860571539971079311893534149531127567987307508971430040569988040029221073416754925523553210350169124227774849530931148125786725608849387852065842423865505789062002002010103048682821516837016714016188982934305760257263195678902835254569485249656424242300995084203588006917441053899583292218845133025945503048849522881424741465873474070866600247220190849258113979131821552863928117211009755412755243182443548121330880317170440225144255037850031511105381639967530117980747826624817593540741590445195068976514840847100143878515198168723007949533560799373660321050807596762079360363075934720308180833558434576749297608253739014077260706417156574929214211563902065924588821097144844251908919740869812387236485622576613567379587844564929777792199157885061389774460116444474192227945311215524696993949589215941761842566841001652193939428472735906733999996118955611471142478510717111610689545612048362230170313948513166601141474058435116094647830895093369230132216271043379490618276972702754014952048459470200484173889271759722327958505523114171144820967612536968856530352504417840186940720518069792643860986315811374956081035509717509235036180179171920395651731546726087970708282909089725367261085861241803692907232730524890921137111442650632716487502707147059590311702194259648927333932725565078867529040608020309110155290597818777191525829781634989960662983030816706964387692978382323229610475913062145666253160534095612420688405266932362425338981597265016567214053042261324382111389555933929407519263301478654314452685659913727977278603477699050760410803685975487621942033273812072302174256422382464110187370531116862236668680531769798665767545239979509914786384832962243041183875116676136931950785209058350580515157764079564845316200358234193651389734394154299837190790835803077252775250861558352777576472636450645188520964960901888210641015236889446845719855290929279254253031944007830576648225058862777760272825822660045887510612362903370978124897310727418925929740298150464574188339858991552863983595743820904037524376204223183203396312671084321288353941015571077606099919720981672782883400713227965004643143003722088276275963617201820673825719016883471653955472607800504984898430064550389821993649362509116109876662857381314492466929016787615829006416935624161110466410432439133797792320651547120415461720266008510929544599413786189440086492936405567220967059659570243515008204020176884030537784998430018617026779695486704635192129805398761530822395556480501665801450271831631539459235328191543147755818885365048233647393152588482220152641945298842298459451773905597254297136011025950450348053932474322389496625036053713666280841708479892595261687709813343607561708621757163054180120630812557789553618005162525990336651528852105108188310682008650026118622767449576226989762209930624264862472925366111403907322531901475293888884215943660873264979331570721637502441286121741703076986032408295558456086766914085872211194753433474998635018857092231299399164365904651186011825369191003001986902272457059558030824046783513592712366283213875680154930682661545475234736099808110554307442834353984215457931622920980448918811422598267363664333444401824715756690218668691373744149465000978277336692790761408203752010696181855922885841277413000100076363707885103571542423308849318406316096003729061470269775665456939484139275570995500141099950937700449802204081745085513415600945069337267031713366131287327266104465932952594575359448075553461418939076822627235441309528814431240762355991636126373049711408324272094561984470781009185604219121593109529706944619042414896009038898573955519746080231452710707185411914122404641203448497667139501382813148259428759134297630882585707620051434910229212709409117710745771074166215050539866064915298517141455739005130985217400253844736051458117600342021056372436227165559525111357736947942090047849229542728626638793935409213508596650897142977839355530336910142758528280053572053570690497745739008371313704498103432500935354076516296481120806714998056385383656775476814174835128246629446241015484718500806287084492963450148126712533450672622418181777099270053124909727982465264337600437285927814197802166233990882136732276263299252937316508471170459587483632542530303148779045409097172438232692858987038068524987152924683992290870962141860221731468889670726841509754427263753202642340458887183824302034740098119085712680353796788532853958197838109713414646630165808705850227692170837583823487357983310593098926165914896639833859125521358583157044774985866071990875150748821286439919725430180271571662316892293498140398188515971111622099407394794359543720192966512025056369193173717660567991046597679148726522075774889651501915615470744455934051622950779703284909483746772687523077018344268617387452087744488490661880355772465692788302368835270532118279282319249744691837189907994784475323046291424416577531894071412426159252662546139258785494674438250489051684957728237865394153533308696977293851361347705836922394464930490616786812916841589185985513171436280484785301305945843502549482660421471460770336338619667649998715519322529965453176539445990649132606981282960527946144198835116254039647735895952826940236065836622277237110527955366708927222950403330854605076544608149368846123757399389506285845109700595686009574394792397437776422129861554601291264831034154245610197245576584926278972009310165013327640586279107418565171208534763986264087050343892122414436223466802623589625474561784143681902213690522810950311353616850314011886720383709646494152892969830808803506696931972796982079332574089940327397303673070429504940144948382204028408658338222153927836132505677259999961970061841746731771463466181585193581449373722360837892985065538752224651502054945053676791970704338083159505540408083628615266061562236983048832183548753474888546119115767652880304148388345910678570922935903335488869520030604587139154557777377179248132893007200340682745606951863187669732358486473703786560327406992116125440222181206513637114685545454741113028264124262047448196110936465856396472868950084017112783625045441487374205836653815753148181154745260733982226497463347069637893931974239174584101298492787213982007640864183190490209518391829515402470354167870280760136208353042856171491594768387454760971638383691550230262214021599306091803787807507229577602608880472308304215685898797838211980670072888647802642467810119547081279030076075753011078493441498841750127589375952412784849250811388413722128888019150959023029543853078677101286894923114319736611196408181076729766935583992900321114587289932305374356799836801389829079938663818901722302143017935525108917050174711804800805095535082063615254999632811225854222686640963561467957723290926829850630615119225908668918359620560517344383475869815938740092934602495966697497949163567414418115205305335203253808958121743675131592407287681601261999304381645872894038033004826298534107636277893191190795533755560054065999802905491983335084681030750551263143580165298231611413855403268421921193481888006478320098185984789765786691062867464150314162590788650555160244302089151445772606990354931868559436561932947177501084450745797979697083819974811118630079880910193465609634471030077562911795050988836134239543252760583832408243186370882226269962043544016967472297392943623992051519007687889685690887711397607431899330573497765645178473010248186918888227515788585346268819092954779332189100421790227734122569335506004618230622177227863070354745351292843094060803733702641806414359640498951169792153803653030282621946867857113951989736308979230964927359089279651410204116476057497794209750907201988745697190385658893533524539330331934200561481048792119242202744565821451686654207980017637860567596651026641217099459189557980518908562110765250724545367432915027761293580356314523507647032523462174209591175929233098093553189561098606798640672169136422615401211257773349164006240493015839720690832707437042090020878528192987437991830959692063163056346491729198899277687923964058939808181910385805102925708412479489100542673944650877111306497650119883641942981480652578125161937040327949093686051180703498667696909150731996280405979751802783737290366663258400631737973688855825570799963994852869738790730040299766695747387187955782050388439130884995519424164850558198111984262563901679977806221406389510283628496344434084095161953431825898449442636960813549899138688852170500902214130475526094432199114459055366749170846075703465212451408550474335519513676626740599293976984235389318597287525381728886332190944770062260310602433211681448139977430186681367832242331872734570143784897135871934663134933647617823099446049870253399016820487962370420040198660705197254758856543597001588104505302492220859733900677490392558441096282872193120360100154877553338574093131775577029601153676264444125329062405163556320557029130276716331307944497799249849423154356407508047580045991715141407142501617391739310613218467402471123428764902318774579689536165721390554895109546932859722394434982399834627209640774880864132844776625487779158077664792801070905111171223767251144970669250870903995915767843538712634785906780634748886264278859734264500743334848942763628813247310725560602442645994232850519803976604225754317242533217476170877664271709014691588187624001584829690981554404306349136229574863148779641131193176552925611275077668255595743557052911567299476683970024972908609556170678861018959809197451871668326272332050067348500976937232451472669173655494236277388639273968672199764521379749326006554109946600274172274102101647737123027753948127424845906191964710833655911425581717721820096995610632030088005038170790447071357458102954076293788638830398501303635161076109382890526820381606011337199024918208362110663854865165646178223463024989357705649206397188876985775405433173338239000328675061790158326006319372309645081419113082196990031723587061937165267183594392621373046987504149601214991267264860062501304392876650860511204265918130645772128653389382737241100784741968420092087967654982646233737255415730900501651752465363134783289671674772730566044676990273431496756791384370489312381304217142410639876734933302896564750512385242619447247443573427384260209200978898447648874092892563767035980034557628968726048763418527067179658857834333169995739267416398806582199104749253129450757999814230204922695050336200968082255894843022361374702407745751069748701351178049257718750058519052648822501159214496025424735117649945995124810725695144362754305209621957708438586117065995187936802081030246508332600968749742410543008025147034419259554937570286944763672905557451530512285033846006363615302634173191485918348935528176987593981739130913442686038128075037417462826387850236774026756112966099442343193304283941763957370108691833213329181667848882116337278823905524882275599195220105969780996564517796569779335448773041555270544346626742647948317284194155485542132436486893647334009873812433248045063406668044203482131408129993492262370220093017908389825172699639193510706444491767044163820213342761468576726735912285926102645582477451287517290754958865226853336080429022451031022162383926962192335417804968332629399833442452748156275368272188663526697270296414450142375526958060343865726026814363600247384938964212173065929332571381880596995415383997236737264180883875738016017968557955511614415968001557654278504759903991175003001423271120303387131597585812516988366252256194860794169911125323249679393240926561520369004810148687973577179112789766305279602201669299710049559458589035155527323125376405273057310175680671820639533752345435296747490492185661791224520338123652021320017730696746682118482826359252288621030347818283702377666372498668377284366308724258560672297798496460215822797491401513644036128314424647771041545631759321354957248643698037305130656428872328779760454668407576678719352459461352495642387820367441125326976009727463869460120351707084062794261842461519927833288048279701040117757178023970835368643839764328196153210298425879004027915730964369522484917411096089999147281575687718402661674368357307637311405743945448785915973460156084157064339644135096907372239583961856343541603556770665091823755166786025782435527009273814580932979705081905493102245664606376169450839044749787192806112542517459684925839781950828154177405329874042483545280131101285448734621813227187779217935028182090400821920904000988524801644105007781752975524674489422114147999982621484536873961556917255447903452038722570335846102565856091689039088063192657058366961174744679841937282098334643623435793130691147438053777336418404587983915026120307419765318390204045004367016123310726490705952580648857537657395076389779092307523884674923261826791461941081654423332441085873337735114165202430499297647088286080375719803892614836462575362406084523534139469173574770891806718450090774362980289966449243636769853621535539089507389206014290210419341708797191324066166340616396317499929651432599817495370692549224399128304103820693630301390752236380098965303643748349797763359317574905997976919371296492133419698352235917021559764090355596275557466531044316421418408817592647257448292317844079243014631455425351368651195409283027478712326996983056930192126344526548103841161746424555446480483309537414546248170560492421973401762049370130007253193794554263050504779934136680183060187953736604015256633493778588647744252562177342713538022691727307289132059389889641385685752338398169079122380996561661590421558386849441887371914566492800303609898495802357821431802076555542344985330843672024566619918352267861483186439341543827189984100021092351583130467318892165207575292521516476228801676278289548463738863161187824328179730838193590209643663688349190731135225688933681456467992572894638016200416592696682450264283967199745803884621632605310098153193768996937630482998147342581582373715515452739997485063919305694532304666042274725434986378296446745051113631717246645996960919392875846229711930693451749610413514883002244533674274284458262072187086899337324548645251554885148715464946160514754046418226537074272013219057631508708697955716860702160507570952187937195629459053104164017214131701584827122664315891700775593498573140211833560181939559450629978215047443936285603253463049661205715836074276761991439705444280293468902699824822309176088080356586024675728313517199749967058736400492155303237677726643526390389144118180108791639107327321629675246863679157297534683328151396937111585699464508863222681582844645214309523544874837936071063800526134808331275198379007224156938525544974140683873836962184298317215386206211060065028407604713201677635955504880090369106577264117817683649302576903494839073770790855865914366650945414910879518659869662159301611895297976870118782198409130039657102060073763367915728190651956813528645709748510318150056293884842657810160756154021372745142846320781765269466053063912633357917175611242715065464793957293049890464744156512990711447464422670237510310794023283518862883705477650772841226152856230985156173064633097526955693130867396626385213314992532184437918127931403896382145202089590802507504962114547714989655413911496778422778112876863541913489691702910443022344444610248369124092448081448102280302362171823213387341315084255917579328884297020276705104344170349455932988175008950572716429935667694341110609464480079234659458976636336858373207712204036000314752732279224667674118798803615129755481125027927116274241083374750106117311732837627906880051872308389770512636006554533074777388048955208569765941715332965078124681263419142894880573572172482086391031566721959917204131327805699318087263206292988216627404840636545378584432728638764841869061565291538723972433850212980826455301073100138958139659247807902852941070585473677498404159830923437867971345374123010310538200265379184516633589348754348907015244198617824738477138156511720523415522983200463809554077892625378531476462520165578662457679917526763304737244225082578735381206287291598146413024477911017683074189995671157106441662070699354424630410077066081291123978571434950881972491677549108694293268991727511485670159727548747049830964182885775009184549614182918900193144387398176223710281594699201620263657311423726030986452025235203653249404652832178947036743211925704339715144298689608688643955973589524315178185959006072695263306657544991404314110130318231637088592561321845237423245930890647968245980621264360965738428709424733156826461857076012823659707897706007472793267008134266307128861954384993212217209997505166828495643230331895358031469339023189431123783180205403825145490368513721765714003178555270176279519317947249426978564253948136741495256808368950368189912085557707481007190885251992454790653324158130176564839227799402746746103952708684258926842242759477998449135875456588078465899661156983393017235814560443489219986859960807704027493462959685169021429126932487745765206627898872861770935334023202966693730937007242701717595026474912121940514654205218998707900483364253925851102405521214755949175336147955654589569431946474571808099355920715266899464605016873114549572202641903886370599566930675249185428430737476893617915654746502981947742854136051960491649240022386073826475879905571963088464387042862782672536123064957186681481300682559353855329876380100215806204974476401525661839984702240432542816168629370309501919113547044477679080245445163224336841317662227700968882085808952761279480867040494999245009717494863027076357900437482371308741622419205284051353527835198846920016619001704979986596160388576834796983873241459990221045721030908496238210377476150314803312360171692586437644975462007884479644022477056957598874359419475124349969364304156109961789931001504330902658287937324441727787276515080821093806845378597868979997097798313959829542918050307115669802191841130579364271408406463689415120348391570957567381862998378445712922606481215942449704344395798037165181256169252645201435105052635324117415536679957288965007188587143563595511477581274746959825758147525006005865345960597210244035578477774526846461454126278816785970605384560411434324346867207261855415791266844681419879286150995286603291708056451722100709343334815124602304407825004637085112765146876609160675967870836077840837524183472824740233696666007493833048907362165463318994700657548159884777459409549707348539319433779837523038653940661336868099042445736268830389690910954577670162828356347641764802279414535235980831775399489516687525497731813553807018076338475457623286692402507161363259002182866636638461566328673534106798486747457825712588353888465121550128701533134967197253792278803775022950013933435745090222206019243646205347967795609265308872668955046342424575806737227679436927120327343247801163995027650304523507140856424127027501085696261632021590676033535594809110957755392735645440654932023062959353193280421309745359476111938597378888516237331034131429197505838118920346677015213282626723474557078275803219665723275862134921997885280259126160120975615994359819118157778698856168807879152778334709230662824229359617180806412941013029429571066460352091673635863479779374430414636968623997240790282639052938834867420985796700129671676610958494100584743038453048332041550110229824372192379975533950376926898140881206372219480578270230471107655736565329820283245705931836274785182514283239820908067094618069015219371037379080389555836790350978369354662534614771621233788295050814919594315626140198616016818203569974752714550825710103922748231676006103859530629145839129277230347870210012841858537034971394975192119947982127529436549593735325138865559497815566692431387135763656925576892084766603648610506464459997593923402317245305049135052751944551385991668669817808038904142780454680806135005624494333340708052483861320574487067018231396409084444717009137256516689267657206990530780957329263216181827533731604918126181038410666803919619480450857360658838076497154257272332330350246260359018732140947279622745818905199897853963169515804897130061355485141670722524219175412174462571814199588925405200139103073148685479206637047781799139757555459669391079283396228880142991626210145428872047019582608460360088257402313889053322707433102254236073374708621390489954355333841945043145742745177020684059383689824336664661480929883111012279108411793539430787386767515025325656025365440718014650010682338087935246854651195363918953245100658473643846827070464270589244450669047809675847629979508162375346969319775614760434366541982644580919744904594349681217784336882820328282143699401810061218375104396100718200265200848467773219006333497096238691913657459237139192524696832710283130357887814307746956237456294995358538315764762995470880328613094729590735824295985382986309792188264083851210331362899381154469685321179030176219241300709632135455334115486585220910669573674834035799220994748808263759617613824084902463157464441851427342731032240429300190018077652583577298262832562093114605924694582286405448783039819246887643264181855200522809047207507849086414039409186559120076982054770744832374561500789750707945326598687738629066086523320510820166006255154816416765961717443318680325932289575194880149940264851219031459147410716493388869732344990694438163601197045169155126555033017590768661092736933497612675153098850899559225203081539742664012022287769868380838721250670827268701234671103235321385083154973362883899067633751819735704729175928783913748128329472682238335542940884217108638089206080485811670839680233647974080551479747039798519309915841495746991520554213092474710422231793517562376806476587398886080985147353871958074540365527162004631965276033754737625833657540561137093305709136753597796358983943041846210485718477626852394567063481102433219666456452106533374240529599800732843775693633731711625192898188909809494410999992679153875974090686290170323668808873757621134888393210114416643780892555691952669120275242948400294510889906837425499551115341327696312500757197387232046086361736811732551967868905286083242968567115794751707663545908104620958163554215081638539683050497215105383711481884853793529994375118389120710690786452588585747374979941798589196526884198027440193438438730781577835050138130602146160386081409126678090899392477582265881927792840059356016195228303245890684979901190183788670836425164375852260409595757944866968486554014461697195047808842511317067314249145761372322914597198788403510153613895277367898163762492261385510803396984400490949652792179907362632877765247522175312061385692600697279507598357543096310067744966829899719468162398258085121102381753639278195003889731782343277526062522311864541833236899106355200094239481229536382601479975264574222222347770600493323432929326900565580095477338087645125378365666721948694434608632294848800122173231386159255364417874916780116273861087413426642748030906464980429609878896710464790295314317409516286536013327372188515531384506426484726023464147429862364243741311864284483484451082795626437279842898112981272642554805543206651456002992579763425081056889137088300867918144761358760007810543094739860967889253134178862150473161922238270130576729272547297043775445974245787466156256545123805341618707475591087988671201370911851357638056981836323415134975684939933497656760401356382790889032468786789928384824960718663353017895619734344720307018899221458316877314967191818339814253112662818139503055980082751052292187695965334285723634241340979830917986000765862688655634681180434682714228252464895368072416386625041545106211218736444099012957674287492563329990727288970835662045835518467011069453126051277518796875427186668881894970423343516787728263810292868960143769594582045213194649441828953102763161347829205502550418762582338307145999881441370817404601915803805052234949378914175765426157449459132119748884821180646984604568721777214649608216976217087232227324688434098141405758118895767886462462636848367350426603619697104953447297161124020524511797273517132472509085097780878499255692546925958084122190880782061014098261775395515961821787553570276321576828292431619906407748077568242390465549299656054415861366848179906356977201503329992499117635380793370513775368412490911911007958034882933297866292152321869620849318651186604110318689716111745447525866440779168703370221381434666506929608451527352521421022748004240956804969008014640958196357453846646650321711005351203212772197475130406196621840336386354168270557336501200206711639638800315288119993599442493793470085878652608117943839105933819303249274587163815547373240678300609926847103546360282330941638848295378459822590969452729443262516573716064113047718260601824635023617146322659308895367900802743668853527750522000966700286617295885197536423650452100883808398416451380309419152254672083447422891167514993820889036537601497783238261974111089444353057510838500635371392161901702215863996393384404827920245520778978579617437941779191678851344594100419786060750449786666824275553391981089838715158564866973291644166427261131327155097738258485222824088009231695500536492248870472782559845182959103731605345681532969732676705253020777071076970016184342194787057283600561424340964528841835333384794949986487487304029351084145347251086893580102856243562717533279626292788825548548176821365243394810255005708992349565757807336660878080069937728365272362023467183662041904503751481378133474914149443792884816116859016493307755876933136122197809585978438352607992057914185068055894567133665643363810313804065570109597803932823806669230400826257454157446128738618806426310997589471163460619012003679049085490817253235328972438422662131768725923402475458662280478055463227628777453022164891672014189605610713869393746950510257202110374686065775011681665299137620996426329375677941360706506713522815737060966993597370006350826729473940507717645202508170064166833927212260157289986935601846642619965532618123614759843492296723829546289209247008292209203354526431420426088600419732202647880461145430062306165258583901699915227386076601614388956740296586184141435174662650064356718402714541451665968709603415584270974761226342673901832559706942196538115355295406617423125371953995035454253914317250282744724710479724431979896342727423248555260342875400768817205279967608884824461259188779668664069607878073270850160482332256754742583280894462467868904112061403680212480809197674846111799264441954475901051705105889492317983968655207933224693940936445010097661887274490876731703620971835988642226914032377693944605841074548231957151958891626459359283651717470403666992586354657932767326078046611078955031144244315793295840223497812077185710643276892621794953457716104643270685526900856378861626677633900027905551397951230694864709909502880540881076819226050512608550330196296961615065090448289645754071591452525487872131125444668287463948619091070494310633313299189453298874667640528767480015288175090965958305118289976736615633082703182686071343419426385995844216517039826808905407812903008709851886782527408955283233329650546709305092957193014399935217156826751516242844597593184726432048349143735945538975063409482431002195887191775052263655916407239086840728164675747179252721290460247833259611867541882684137835312500846497559708562312119808831418528981807113968735384170525739933487547161314351368818105221677396338483229566489794140743873402951297150416127843422182317448987683284053964327917248111774150643706071745407967179726024942821293283820995039324861251392514063359773507550479801227643152053630719248288698158607282856323286127826040974822278860356375591936831686779574314570783361070939999609364625373776841178253168073424931629941893081181423061106779774468568648821334284841578374896211711161245938869297225887415145751057570135684842376707377544728547195276035341413881798012458133455627510180039667718015235174309751034077469594516941972071882979412876237093728877032274570565749429883465621862246560558369637702437387929345698547080034789379755748963320680421514895446865323835889134502706825391408713040822782982484993545083253904595357813706005719019674609574634944743174873221713863856095954909747407447918556152348081936655375501607610208598407936769345712416878614319579356678564479589874856071067053700891129577327283796944464965472805093201135194766629196258614273613003380735644032091158925720863948935353594925089814181098643102570308408359150430370054457376961830837752611749808615663658128646561203950427883391636406565609527029873229631792926695906936448960389264672053410880983455089845663985806198851738511795769908457509310608668500735549520735067679691776266769026545443618671683613955736992189839707675115046068125659577711976349040204125228408841800631983117642615938753666005676072335632187107341476737748072866447604066012660754237838627958174039927095638794186817222404114411315786354533167951013575780919770488590985398482065826164263218935480051624559118595714998794774924295538797563178551304230124001764170245496238785091507994657980512220870309997909485774714030558865160924819550917069986077093547914056481771073374881152272097102871366414271988161674219245720464710469453855011531341350070085473766125188596073988499638834849143315884783914285469933633669487874305601085533134873439946613909391084691832681226250731134293824908629501547662942344229285126232087131881481707165133630193279980220873531672221888424020043498477476225630558909578279907769669010148791018734992864850716381464881421945988452360431832022751619037507705403509298025980356949851922281876156532710133669456058482145342049013717306096942834823888447374694230986872273835028896165599779188988747240783670584272594419143163215236204713270758939481956636681080208493786040416489366851860969277281311316612315240233792284375159773634422879792204257633801247963224682581948766319250978297962682204991601895530127879649713701206912668854114819837142653343390105769911100483651308853442547740175978260200194457619513085447988240936997585139524974796303900933959991328847231866174978771375418273008368608195288306271940521079983367687690771387061094845361089181096536449369307448303205128772661684882340257911306198093234324823472614680691641973064967907001336980498230225848976251334342694804234282981681222497966501503408734899615148417488145047077092829305004905512337431578243413230812164969518949137973459149681209413519541907650953472601549940212776037066922269035114564262645552053945398144035080549788517220927419375853976887812722790574802207877659535631089845494259743329695997095802353872374196091802926656523239196516508412493564891342942323618714950454555148511390386078853325080624399665360403919463096545941808144386464020285593110982512212178040864731738190595548814501004926705516593265994338147581525221676255015234386915682140061956918978278352581276072016935356652289638626182450097217065573713086057428926209785042520232082884940355824638608582326959553720276981160305959066066249707744213618424450569033650071729176336571479699502038754508293625027816109583242545261678464949325196408420899794865799924098742060678273901302237553094777931021312717001112842243207682905429131183535381964500621001838729635192907167770884790612985064780081042910141260806982906629023665596548976453535605020861631481137758266965888501721871192417367097572243162336743068445860149572451499435897036959169910824491516196372322301180304849419657450098894421443005472142589509896595871937360275300470560939796553418034883068993351374131473394031926317573834675282590215468835160226780726703434441099233033505216711584901032542496534095764309046994259145569270399332357892132489736403730601670809269835210901919595879806830063011063790089860121674380200483178137423228132521801667411539408083512383528161844514924615706464281068953753195893716398225743676136716706354269171217353589105817355591907163789903923194474531915854809871483865164090845077391884192479889741955124456709286638768812204285130693282232531323611902352581000411284212873092565405832251652866879621429745217098114158415555820103039828269655662443513507520658875369954313409986773423104342775995886120266505988718022844660354805551684524412019919653355698925997655080073809446854101789442814386302592496243594827549492240180993265110189046900082510013774416471846237018424601792647846041088095471761545620887687113690182903965139458707859796378194980178034442738904090513914991203304074415880541210906731874920359232035360526142110957032177221594593212596436265805652457734161598212982886699317306951429606885673255851841556823768600003470656454383028955601896839019305705313130283916659165217557723056728566862650788533947267143440871917627046250369400781759175607703397637066107053654160590289526018403892076992143979215676905780689345998756558041699639179878095209307537123023124287670581119506688325288514971478128487639351770981447567201760395394304651208086525622800398268486278936770336822525375566048245195735636633046338987338686183428069233697543469037751640217190124412229326754542883163112561385514621565714799900268154183934515372583221841777349551723918681480313112390792461935515054014474232973757098632843075709916471281929098688611261934424461034865716696446800533340744366666293778117203217613375248556036256078132117948458786117438176458822803192141954113489019959004425602599544348098681853137537101899517661843203601673286463100804390151911679748756414479324177623481015797624092539522749445828829520650657287486142135840913991235962350466139612448630923306947909363791924915833517566766770613489119621144982258827188373802787702774174778082070659508966405279236093718460020713573089210224193700964074363573421302246830492728699233765150125236403924692017746442546786497594983450757748546070650194108897381460787742293200524290964903384439592410155245667136774332474068317954937327164593424850695828408165470103237213426151467440396675461205234507642846976090136461961860375816274983460643177267989065729958823989603154243906310892095977211499077685746155400901700116434093357144723350378829435844639603002429875692248613842652431893817857942312532755816083190003368295743877890776355735076502171533273704845655460477259568059385189396763593173418082283052299103999593904005033470571490017382139440383556885178617327716011418619508618165743445643796514104097468707088477091263979982253373025004786966771598074636395145783058462035999151525250048007305533510226551479465036091923549924662477432465217702194685422869580009811502686919096172225688099532227059966539789330639856211792254923338205317167905073984165053872784721888885136899499527291118660843049327471663041656652713693891375160415105989295105154268202508167201333532649331775741123401394848083197040268553980485738638227878507796746587993650919945708108827137190621552386303700110362071103079439326645305227846998852044500074798294899941292867704002654991032350546966905305235696941239088699906893206098854275181846026049316022880348037015559916703927558160996488571749010397310674966791006650312717610145019305825595022772955333098744757262330027358001978097652323012678350950850215669074319955397489220896720117816909398937351617640990216200014261804603308515216489186078684232188741640544072938027681921710823082857289630731755598369034942583638001448464070125626792029908106761964575414462242027717665497524782775754278107443915013637083239990105787314226007521969906595937484925747977220401469204037220894205651019481001315009884722848628973188365131656649958787278782650767240436091464305629005382320865510003492976133252896116490688548911763954753580278990562036080994254328281450633885767833650071726506902148309892161253110742144577206440802895194002592410366328105824857649896681595268006173515957043433050975285814946934850801591151684886848129906992700065664889035016550316793237724019593771224351405082569412154237397190162964538811507104564221054337879916256484100724494796269228238231620052568302372406815872069442082890197339745069831144702779166437455050981780618557885056112773390460377064850024367490587355747847178305857406366378721823714495014428432598137601289777535549822828222041390907336320955892020963882390854009536637110014233845853641272021723621299550414076226151431039824728260853973042910599221855357333707473933605652779073509022596593795874133596171071568300185405022662563858237374154460895095979500338547424082758221499882708635380643054038648140165825061325603876862231036224555125651608624926492977068699644466953757552139984375028345398228856481292341497499336935708911821213331273813892230808908976260970737206300163459140870445616371250561932386481045703527451938883687786907806226681006080814481499270693149324191748201288385098604124321509359814910461303502652028442552597812414721764188718853877507295496127169978622295491380102023383786134263153426753035720101784490029364599752266226211504228187988091846906046226200486185243102980381791792299915892864968544518169576302797441335709945424294112243374940130239837594521943337366930366670261152380691429648696134388080239129879318125620890550321912352199323776684000879095635234374469250077018196235400243080112296072521238014544446574582631197676119099731659914520580560395560480700613219681984870467031704653021017496843926096872276548505708079521069125530958006085674963639046198664903816180325547506969762410173916648696048110633065266839045569407802816777232541852840609894411128026280371421585135833225253249851309604036112381896220164011489119720342565468181640016651652453483733520218686856236424653831598435942484710048272928400944991839066640757197336987292965668586511972345945704711278838486871202352916660076062865747976595839195381830903899251560451470827945201014042395982374437186307691398542608347359708987781848817121246096199879085482964120237204110198890502066137170568223227119991590420112279589126935536360868801448383054782178962940004387702367097748864798414119882996982029759144741910039775757478381524178038423786756268582696444300972373205643786036334387728295095088701186265444149813013159985022267554122351645126307639428771210994833895426239349808318881118520598359261408345902172219947235479915056554015565563662303721937097462106708320186107550754676253522618650218310164411990874029914127408210010420962596797780824910688466775334565542725318878559309334255219524334850313772484067634352323977433954946460840422823422935793862621443520801134101715382312524339023622107485871787680047940536459154354341628723764131699616738623953885339765472861678763596379779081297014864082404462417288214319092389082432829916771356038743478968183211856620190115058523353459976065558592399910007832306705400438739693353447981635028610122686874345454694617173854407132670958114947401174624323696938709296981210155507970257441888721805206385056459689124067043711389899989969764925174590499515585045684938568269437560180633668712792303434379861621639062812066094437024366268943176302139867710985608896874150677121112068317517213624581446069765789302296605742767810489792984499923565912349527042542896537882437769470731875910609440261507090813285439982097075144885584623871330962372328269912430419826281503703333147009741090205803151554503310442029694558674920642651377185859522191569293439672817907962444013726800160657519213777515122051000326765589605784236696742918056862823003470148133050141647036038143020822966045413303192367402163520934104046968010295840125521352504113289633086198249282328121890994948903984028482263877245566286070097307198896720967481558032921358284809243238647033911484653736153253739428806844559798944107280301827373113545420680478426313356619608484636160905560040965405325202347079365976927241089787007062712714734962894357174482892745418398744961907536380459839694959920376124923189595551758973184061514330821765100696036861192867298425617702558318955523327119488890993777796643615594926397731766298636861880855290663568521100925751644022405066139039620095582299198123955176567187267902320277857855426314551475663844263693619730573267307865346539311045298827750518604280517202559603059941512990201812950112629221711132034379546148433393124461071124041165589399353568958213664667651949290485172948907544288152563224245363988538702884349383655246983054060506282527492659568236152717794424078570764881847593318394938343862593554635503349769224606744865369832727567041117653463850305975579887028539162558212129335848467666602504668545386037750333787017928969504448532779107175430602349352855371302862118665178823893594256322213967173481518954193875973352225965047380193814629040788210107146118129483073581932070860589331510158225671454527398411709266245161834068594398549842678605825382116791361636494196241927502727292748609033520859514611699249110991778097946240962371953486626576242206077853742911515145550712143221051151341106431306537399433288738594998131400369991948148825428569960179916612720146573416355926810405401566295799780083906970735940095765942271067586397688272737354429460008762115220270756138873780615144215603597744992625975156785629081199421693774892259887607731744283752794484044437183939153997366229843470965041052214980073024825566387723897016251334309396290836520024456950985817613457773139321220042291682169533902249743829110195583191654683459123076098543345466231008554848607411865590414238784079607949270458553907504367523078984651953728306544785091458955253668618465252529679691943315492144015348946694118494507875368844711181991162872271456222879494555500523218462562487840479565508029485416966257709413064375031268357113910171376803395758101571048592533381469945783121417965082660913351826590745289797554761209862563849573798844531905908631377435167223065664140645501555947748689901598172842329506094806691181034375083356027004231680084730337249669393129432240725615747452973178003633356555310936969590522373819004519511980910448778628958949549611686957309706139361002771264866311060994438248513878521166966946488710603073953405007241972326775342901073843715612180932426091887732080683410166544981376345511751244646763322567834277996445895400883583049790121467740559800602433835578001842825159785950312963159480177297954373104133907647091864288495724171992544382870237207750771914603705745209187977886198315726302831265732653794540793626575605380206238523231646022696178994297054277010406376640600089194202476730654654330532234493644242143862943801272748481695228901617823235911961168622608927018456588093349654204034636906851370808809387325663933816578026988582164276523925435177589169791186361341742270175632857267522095493447492292737321423853641055656293676004411872690852742883680121644704665594148698276572622977446262272374894444038288971227956106190649371859449951185075981428856651459155727018410890323569950390272261376738863207236744383757093196304145556341966806844774345240107220143983170919237448384395629354836253738399138727031844004120081862901409005086471418349873843671629465445216510017292056695263244412841512825272580296364089248775366628961486230296565535780104164214146994426649250195369805223620816333795242025879527105012597834022429281555701156851639596301863481179262409635528066561195195268223810001969767059365671707487314388606857274734166671884284854476537671953629491632203737096884495858566309317511114652063828431148898373752672851418915958926026167205085209677879386736160211156660126902311948777669645055818533898319164709994464988757737775887169056021941566962656696673910546082503825647161638238740454279583112852212796751138143694893120619042767837997864377685754151605316201819153798284466059094640846159695614592466892796682333186511289766230755083825151313733445710117562505299722926491292128247992464919660287758272542837497835892506509974624385209062680700160846695913884866254984207954077599030456463318528142363339842020983776243462895781700710112308161625195107411487452626605139283665865832565598832340820368181164003273946247311050760422106534205556462113763097257561357574936392867502451642151496815163085318816599266839911873782647410280363387751645833385476249640241888065098028656733902650246548006856895370142817293001574326984783937997479589698625018529358236696184583958802422046533502248664148935136629257297454004848383272067769548002541021814076956473784691908509971744517917658615955018392326046843013632046917508170526640281433604469771968080652384612337579526709245688772611053817879383390145095678685325692010344280564157559594996721373864957322805319718848782477785247958143071222761384155714487993683651525323049578487633121758846950453833838173298351296013870152349397032886850426013500297570393925833938562995219621495300174155732188311175435836170564056045983710985542862281371065744336281721586658264598217857350792461337956498022752870020838149068393223312360344541417411793221103400948373095112585280783864139451121576962358986677852388332184778704397950021672235068514804325079266764990828879918095097039310383726537598952577179936052926619114748357388453540429945673098530451645452461503654233161851324034367323748660154972978705398915933859197506436856573349998664506885658386955039365555509766472100966049145643716719534322221699095156423864958528778279862721677157989109517984770198869239351483284942074899443264941317718612729952817924597488636897462766169520093865257886775182119781931371646002341924123500534425655319315865147941363400059400907645298449384640260806214634596769539528831006171567967175445473372091634021421655389093384621058373566601177467758181730278550578929211518917874870945153963590798782974902644784404661665800454808337856273304491605886042451110965327783875926191093248219666731694399716832521378751345030278900775487594841656793138164019993087285066966884510467772807444998733892589117247314052115470381103103911720156627523044755418797689728572411074262042464527902882805646751932099965442256442542906178500551501730515268008822012383857839372277962493405321525621133039404047242330693737001970934972056813389573849511825511744635859872800166717078919120193031537358114110826761360583964005127852764615277237000900355715001946463436710687230002102230267266464349181489531257001181727680710631701686231918924417452073565577614857977731017020589812861235389562549559419982512213400639913945104165764646374892901854611616875896284906425953432317068751135537477144599795592693436449132824980624502978072257227415134101336979231546447251562883068219607788038497346576212259103771336567570419171541536940652076555142975395863288095079487086799076775207974553502291244662190398944060638369073644593939056328448673602116454513084537577822671190226774622231585565952512269647509760992126630170662640861641253119489812999237782399627690226581225447339588167258755301681003087238078353151432966953747737933882780346046214276917218032345682349459428733709809856448456004012812826137034268651697742116697833318335325669586078156668425197967486308431078891495623437993743989943457559139173206434276152817433632002583509782960193749286075161731994256848695216003411528042677638462352572480539574484821485166356182994321161303556434774626715277340913582973660450825309678730411790949378588563014373435915888026350709217318810744875548617622204685065088202102406070464001839712595972920762307762376622867423654083989191167974681453922129957216348353069357877092617375971167524159637219918128363492876636276088715599297821137076142665327972703602236155741305946669779677474089109573620931261657639241545372805012905923196186850287094205759878225739601147164528474257053802914419326079869927042406997017932244674859141301173154069328931514016022887724422420178022304275168871440644971429598834583972905331425257697470496390876150394636608066229006120044575126668289268051379792110736366189262526760310638940428255108381924955459282219907338536810437588144285921418344494814916797574436636468686419514345959857484056221476409376125693222062042503905715917650442538256077163404544922012192204514041259192983725048710130404699665191070442422027117645794206128386810300690454119852567292136360510309227940707917509282765143303381636227410348151014615612455247978764960738679518808641040025723804989920040664911756851645869546267925367307320914313519383810095044980728275761975913347856524405885715155592679641117661476404629956814708690943289311544657915465401228673469827225352452916861971877832720757844252016050613255512911441498660275362198044630325742485296994976860376955754184556628756879051616544750260404344960765369766797915408758741402946364148237861084326770607497305061791984555267184228636263883779862980613540263801820434859648719017568670841096440209580519240967868819057466700948646801885487094774145556622971185125855291942960320000937638161713966441162080000129921464100843399868561425744887369903557949795666224684863968776210596568406474393686718746347744691793420567050058102804387238374330697688791991876569588235290425285229802863448146341649868719017329044832594110852339755410633543210778344308106072679737471307628420784252110717496306308213560064682317197458315689891974410480092318362178376871117671111314173251149867802616310319482179866390735846801284621292284626923218791529234790381015253146813351832848192849977781148600107935573551988544047502186393824490770677563868760480262676117276849896201379588606793796134430365106175165219056075855772207098667790838405010761499425878904501337899752102886928858601056076279244417982064433278112953567223171101430949061684585565207851166724075514301239463437110641000578257813471775585666300022058846506015136536481790590330486839649221415660511123270150114078999275162830271918404883775260583185338743115107072074096989925320151058867613608307196341958228475798802730271585235066286517617629592210795429711671374126929192217375299836436595731995180419527077879429563088372786482395025363240004810415307808034079310406763810518398023847409464993426304452449595230151104816964458434834229833582625155396115026908524328058955420581283681514500386689500462600804643730468052364705613957716125347331144015792370949383732388081657847164973364145881571647958922227171514262063823968552673219732419924685933214672444231565424294496891248604168855485069103637735990311460782053329403781978793145302514082866087599462478877603919436973632231646724460487296636015087141830956868726492179230299065642427379000125121678435681291793423896704608601807436142988095505613766883711181309205797571175130488054112099455765704218575312899874430120922379919524838691846615110026666231958288270866665729788177337950995846906730939628280952847662690806205462354154749551089167582576489320614399475315468215528644498944992994999002012030683263318244397301246482691769400723580642204770233558486831331064215769315130743301197497085485615830245454504394076452762096696795672731636933595088338100666190644505691044956925029671903788882824572041421393936446708443401851604165841638542019097534135336411989944712409116746682416869490969617583150696740316833279465170975480684013219337507516019656132667838327149227481302661878745244303931943306721615455243005536442999413693855664231090368306349613169700080116021006069930359048411282104446902784481428813695626081944978582314008995761951395942578954198038122425313649944496968053288107410683047955143196098025762555770949477767353053256610562169818131193870739896382381160575665207176152016246304200520958345836489171364437708127025729359177235408699733231362097072718612363476943673613060627715534155784889438032738267888734338252643920755424958998085014943990898910043352745968860015298410412414515080795925790095819842823592742481137058627747255422813333471078942399587059070280503685951381481679521681060536386736202764415459539861531035147677378530851921164309884615191666092506047120627487001038577643443367481047683411786665219796630421695551629957802505557914196653141509351257059396752591425109181539596148499017395287562203193708314097799402354431788894294406473403264494762169090581480355768993622357140102122780771301692380516698520986644944038292761475391092596545241531461851291274622789025211584661321283572606076396392018162436980745220194260940896104781989843071443981586463447421065717752270570463729040588904105902345304320275687662175067037984600613745358691508700594519706148127814896772268194370073729149409116313995134522280926231057852258563143368246191388774526713776943833341904774050434084047311148559712080510761632869589348930886678250870448771128016021249647295014203714213476222427076426718105728454603506910503038448746579284965264149325600686908573240823201263698107034058601648810229505658357702947015855611485395025250587292338370436415226361384738581588170238497612770457920798253839672944006070995291995932666352139762695533453009842016175405160188501521587677751775946294624417335753414405075308645468815641060276379584256272701322680956264740667267974567952114253685895957925394237669325549195942221075975167208648353777095288413174854043313989317491726476068808663772577009043644954794527095831944259206103439826993866721977580502414893554763986782389491980879821394366483149393980585995353180238561434935666756121551056304213367387710855583033459893596876023605685367187064931242252353044802952040172590877920140022728914816016098936389267282036845172571057540640691296455411047416963418266416479161480368873534638259319714985093078500209844215145689695935203244117585607701145239589231797861788416397967240033486595282068115138924138271021348950869428119397792248489377299183549985724289326599253386424674944037187958794481716805852963905758297876513568391000343774776402289082748879498326248985904875297620634736907014806611126027913069549696839215485474195294627683736607715233790775266893792669471995374934862480600689966660434511775172104483968956910148342836367479580039836701133687689388827493709928070008266859746820025824408544470185383760318040912799812796193142563858463859190472155951530427061774786516541547251310174748471350321540711224545669793228404818783955143975936819087848163510977231895082692850350988791734161278527943844371107912453359692071359632011905147537125313546878361559509104100766622006045395893402922088866456567915284869047972073804893926881713686472318751040143967901815648618198324464950892878084616822395251371523992446509714779947859146581289614984838990063267266661087147945571902399630599856869364614426747328161272990828072860610721473171456439343736484328504472686194799655491792452486970977640775862044388775166402731489140334926905219475365159538537221467093892568749718987522147981152976235620618419219636812910622564744908727899685001543567752317848648372652004469795853643743698722321704003592791003968636278921220589379105883611865513216586014508517945814100190714162583547408178109050240720023292781683587996550696472918082699687799390090146863192213408729482060663302483500626322002812433487198161683625563490866606783299586248901832459436507390807654694277570156802433983816968117546650906643635913730133613110761807321046727991222763326472262930445763936104524217242923643513856482367359601646709461834943252891159464512230409730379338779124272792158219300522185574564058538545178654188041757465316079018095318678769073916941915872928096451759119783738987652102077366126833609265224126663526259131313302890524859469479429544984400897638754146266715724672820261653560729261387104890393469569007187333237047100262773254701857613223855931954127402932486681477640574005667773054700619537253250769941809533739779952366557999918425008090859509609643029468802672270856884319344442787873172193119947943425301316818591127158174030638257245180568410049319771183975129333749745406623844093708121165616075006874077282851808559038481659805529764294723419160166052544059476285960499171884768005818026131237270602016443675420291077621928714935528302880767855811938285512066301863433007799037532768926328112403863705369394408854656143684385763207570210231275843894443639970647890630393182591348728503505430966979473315493998956479273122700465248324951640643430492627521838067918113512480396547593459478636395391149522685204703516873612594414560764902175822346315662166600530547776217751626394312296864934265515841170884419228418671003455352390740334202549384841985130967746402490443067012720102402686829366448200054403091093728399909349676986791107669741977063353029350031710499646304521921904350312787876395300612527818364155679132770362662896310027527401609372829651645273855384176673313611030265368757244149599924745557051731605443484572408620817599225481116071710399358279273369512154245576000859738827924427567611008862063912601230271272395816298504153303000529994293874641213896912481586145981071927764167231388974301816579507040578531592712319221284983629883895924291638800528524562620553321504807684625726999936305351064968586880388654479403891297411994563334551311826571032232134508003145042521513963134587121327559037007881814787992706707005520183947126875842972622275719509259583466421749834158968509647670412940905596026830654894147591835102394993795931606704672806851624292319142662668007998448682122175904859678570036937531802326968826677232808001449021781066119002543174722342969604428854018128011395322412835360251061806004172888405726383262355936284558851258378872499720665039644348741495305301351929810985494622442785585155734059404216693586131434217622455195611506241476102806856052025369159545908310615104751522392605326822788234093139353053367716602424369820909901255854396658106982883484167640574534268073720167885031199581984409455058623150983287998131030664762242911231422084143011686888221941562739892326524675479934928326593532216143546760178637221850238427639536848582734787766582141112540988415995215289630526523409861432533259876470816130483747875629422818474246243579908756241895060128195754605895373787166586523721758332650360962469498148645275001793707180761087225938334058563456438463473896924232701042706137141995079832706071621728689844988331175326170600750595296920212687508585419077857081746021316402985724444909468359150180102584591888758046280220455004653982002667718397098861859058826009114180024184755618205858126060786240469967659212720371042078796377954802243094272658885601903111868224286235807798895714485269712949747490667543440208272849354727922227441375936967312634068156214865260607143500172428848478235217575867662375826364773627360157382120761287340004351911999262129753409247623484925344541000015888725908658892623860195677649505043094917838651499614014152864484903656070994088771234641035157195275407401218229740676533671096931407648643494263424793719582002655984342634182347131091809719067317335225752944585459649566609680647307855211050581731438695158232752145813118287070125381609004102617455807187060810109754248483400988981926817278892426131146073313542345339005269860795253190987797679863781496402744286350248913339646084771361074301420487482413178087959907888873780216047467488221024855143824623789041287946684506367316033735501860915405114745212065393490217734878584440596198409325859872780983116495705328908585336410629455252963267865948458793471355755188379589554793248028467680163967368978824445444375342733166544382737987774955675790486574974045013464578098843881070856269545736720938271174554337347824991831245138311312041564882452851479797172492291747227287035789840374929111961443879941218470692079738556996794197521414011812942605572216468113017926864286877399212565544679518032715646294899439208947320868439946332894755501550146765591483225438136277228295503543420578645435823652661298932891581283669775646453187836203614075731472020237587496046442961343278872080035770468469323703052893333977672952998076744472979104352205427130114563962168805241693716630906306198971620736393483954683544074563887223475970750190554396575496513216121009071972666725947505190831222788851855879148372986055569729588855843978246096822710303697349107020553154687773602377050016297079821939352353343581684847469258269081040549652010937596673959317938620695460517510936649701634432144673995238108489078417516979960664476774466939002728010526306979087353616842021887188901676519850136521732601473773660501296689186416477292478420434719134081076238777879484939394723867421058762685909413144384141233015368273938254394585249370407138328222329389930101501724103596656729882479924673620183404132819901308117551826960549784354997658409540164139312414135270945725371878035129195123496689794513072327443220077387059966845103332825415567692863793914973748072598337108186781576529752286877203799217612894763737572572713322651362742058039941563855282822655527539261533260416954821765105482632017495186934306900810676824620866472538170525758320628061357241534654788557796225711431943232067217724664978482995451325759829297230836459933201857267454849602409344712558685856035869875318517945656416847850275774076285160945881747774938202817972387351142791266514438016865149441645860953932675134513474375301253734454021947042290395654316544366584894114639786118599084691461747334175423191829127921790580603019621871034813630518946905192531616752423876568697167309937667051643085074374003782509859299735190966533801406498445642422842370924415784505069631432414770920427550865310861967728857902150347949206104091399104946728029226464185181381290875755574205320868427561917062025860069545566973454092461426179579684992445699430889476086981769210782052048959637442025462023876629400498048296272656233859059901503802155166725987642769304191630443693024339323053756542262215342457492526240276138211334393188934656989817596513712182643870024170362076183329504994582472429964047637229225241484409162304188346834165291865752924822276199585246440379324165842179485754630317046820410981602214471123243835757637185015209169644653030463751134745897839306019757221544655619549044118101576822922123761147798053483734050147209022028055728908509126082882072315090823330723012172236849003533978826445672660040647930214182662908788903201976654733383097684099455321476119490001741078299645522378039039141116324764084267450184407691315604106044810889774359543299756966673454172538451198615943803164588264541495044021460133315789484649500868793700734845904899996838153029607433312557089912816714896980163387724690010416900468244584788986752375263151336703917307137576241331160129991945967369487779847623642606403565003058213473163851315274491589142740454101508385993264637733647665579385942121717719121848109178500914832747018653474616128927376460846035658863118309649216565519988984512800128203488218287937247458964634149569548650373371047832153599263273517155607363281120209334011825013449090185740666275992697601561076053243930776524483457736880359054463720463959352989305741635161671430236581389017102416476156743315836245527119952155182194678927862481883221173444111266802312683268052614005498923197652737071817675697308168154631446413135024141284905322255617266033388318029165043655140482989070233855030404883665377660648027666254501119968130587977674568575371759798827697332800963954438891318223748538306517416318743175669564673289127961089815920713665154480713796855645951233791410819524497985817620528869755420346025174067291263789539337725720227609135313436674234545101724480240478064981281661284705167358490446946727863606020894543740877088716753961196235432513633626380442140936791887557433317772849855320737088504005831730179031943913761281262230786432595654017823892974661059333566467077544695534064510745203222289296872026426560067011412851754189948911437867791537131080435183308603661661122003463655998277239396118907991252509125852803156005030440878540788214324133975474702093941298244750999627806875295518712597365794295626886884013931930255598673236487884092717144596700907219863126219587735194923688390728949190324016638707644305362752990425658984398142715467909300272791795827925374602407330583591739891536138046237531649923513953611373412552626964762210219433723244769896679753260433042956618884088889931750311530362284851637185215337357242502888461500156011134108849113709802412855202894236991829617543762436943404718658091752595724793612725841961190931478245369909909175214995555764955233190108965149594883153592798819369986345698507563029477671534759078229037798397828741748199405093478219979294445881247725048562477124840218046519642986098051438284292093586606407056085814909509188388311443692911792420031744325463369012135468034782748513941036946023207053600715847314531382883419563069343028090368259587489335187364357931158396681044324698617339282215430615706971149512874896487003628577057113446822758156425092824380887861036571716681992647024825401738118601008618685779208808606869599724443898348542669468788325467362595479804003000898931588921406637005295176537004214594747309560033840126147591987678854444707425606131060032200290897650653073659920170210726688214893627696518775952212063096226882351675105055148239213306429257972475484084483828268215981509258498020619268237568886801542983104063725854750982014557483152405969118500234352487309732881890169303133314514025962061750472896496290316231432157225454852267547194567769578754642710310957285621517348575441429587765806708933925276793082281836271122617442428865906313824474998295768337700425943087605415317170385653737746410493444670250312352802370297596188091178264364930596187971041199904159731351661920001161278889886107309829341854888764403832393838124342625005665772121012275185577676394776310952047318388457685310481791647325076680732586123895954803419131738501941298598420804032114946632208907143876560877319212093386206061639797718582375271067443356098779448345176632351067872280495660707900913375388389923653958150765262548306007083265433465578177955648379628746671239861989202713032543011981422110818001542282536028045911847976700890319567345946574144277481186879540863447085053348196722070446457720524519978595355458313600770972938342782317364517248546253499226737888829389624958905370948223928237250737897400982350800907502313111711422490445386945276900813513735651075134452772704821584227746565813050188965906654075296792017594427524608238096605046212247211767524453267274555936943697143045746729850954343862894073110177436911074216402237161193306023755082740426792836846485424607484331222345547141680524377923991270641457401752350238341569359017915802447697941301482421312589072806356796129512816411000989661752721255712955659981941909121125507578430314608058722991376291070148442357405289007752128953091888134238266292136678572683573678517242717652323420779301654712527203098054257269589528284145962468987865640955957035793337106031214980656088957330089241811108649319624327165936546129438787629065084804513941223649653963002247433904728486717951180664473991796445566169350619072264268306265492441583674410694776874973859862357830671889359342786880378975117515888427463018766792768209334526340470009931949388775760135878175612046190462718593293020194643051947290841163536651478283672225154137995694602922250044577017484923496708014247527860653482916982106526881715052451264333963647306777582453541637278058454656692547537916419048998284978075381831554552683167095806463059641985265330002999528059614846678063033376348596484356683445038509023203356019172054347954929839187260981572028438617151647428284148648723266082924854634320281778533122601089078941904516909393658202960688867240718165478910868628429875419201860301056807841458672236602929636373372468037356476403730478443674489216021056820900990040369149770300144931981055569700592093453942759599841871750671983089869258297166512058330149445584096028278322663347183849779243269696707204778978091172060260549803618426075359394742139970594873437328780321577376156902428222771211688896819776223080653729679369494571633158280101192875405164620281533967504514074668047777799387723045948166542278939683421891363131557978657786739135981298781932910602416628408257334632900333196746143028555047460390374537867890230619787506931550363021619326427388746575252571477469250469320652486070809359688038555866493184743714390270477676886791248458610104409805205747907535561538969335187894920224691497520189599139499224992585049531672846744112283414823293801825883100557202252166899518918347127611614538497955544538980597126893329839663804310463161888416814899738802843166971149270121342745020658860828011566785555444663712823684190300469958130229826854263542802558938316484304197424376418191814645948414845067473673933941321991443416656306954468026349452031798052116081102462651784654716753808800229748892967610078001778787208003900157096442892984068066869375750505879103605975089166566290942963296860113939218788174536052313168633678978163539125270571620436504140511580920209251861334007735550681963347108493826309035824559101280693703030632584746485903844072322196300469898853650186461392987092128371021608251587923230223188533484316476047945924586388624298144576821961345185869665424913276192179006143895745200624388805199663069871083220362749466937525599686757744882563837228463043133738706657006181021150085190789154793600031838335883180026014050252864046129844844191362407874075139413663598511386049581660486527071683942078555901595639070150458743911875377067746628773179064069057455052648523546096533793757051663283652767440068243492782094548405120212820766317867648708463339732120421376386346874245265795071435724256024004461993510064695709979545539215095756101859469137998469976529235828078579976271372699609910084261157720109630420018679607481151617316772161254527434185679911020153594275258113033718163083335456490035093379705028099340681976073345860826447530246413925320303553521302669446262836428104315012379425524574288816108985525640978693490332222279568580431232728841228445252458280571698016905885716362000375275391823320964063843673140294924121734200751730416397530800757166661263115159426567115186207806744686072644501166442378134643361168116503302901190056607190887093663825477195663766701981570878624157910843105160675510721504268469010905710577693210298393752927213214961406189052942406184085648133706799215564899537862800792008219135077802373856045320015744234520367093236825175281647944128289467654662079588455131454426721674171640553024883644637505024580192998055085872794264854652548142536798074477856160282541583476991887157208165897854438408360360799201206587299170742751967940568269252358923896123449460495048973228937599238593784453017443166637840575955307633112000815376264431088788897879972079721980500214962693874411712040074928962706603556184771802622682289223650658392766822952045861889269798674046766910141864491393986748957306174657835769329011458719350510327243248675069338013324440642055076155679592826525827870857557200546786737287074353344267364656275661134705875105283867398357272084517123878571053737015614919678579436277916384228334382713395310578434218568695183649574629576246374811759424978187024754547852698980768188569340585252746087404221363333031282281048331900751670375935441502541415627810012607934105160160057065709321258940163404670771790439837494783255231906636877791972945643974607434118131361712550603640697979464330794486366840964815011780821024333854731746269711506000547160297192429470179292507136410855388610785979878173664722872402111388909344153709216271703400035270503667887446493959536693689951918078119532930517575817909583110460340688483048547687295444250031172875715755697187282730964455336799648446990874345161783681759457599324167809591439184950700316789410151550874027743944521970112649239736290215425220500746950415216951776653047754579623075217560677172265947966260713169263682910843057533670214266709205324909008256520947979440884625143241511903706738818931389946178680024253913258403462270372915460911406296990161784254929986732664562129232326162115639668078902950776397298282603870132614406224006634945474775068348261869763728944002344861086088382132380143921194079706855090937969843703208599344488595019971868714404191213710363818838508675341613597534222732480826031389195564435513332381957866086159993332413789817805912772641652729637006059322517215154433156112950554222463172158820304114090399059145902491105293170035990483386516766225691187644756508716212776097737462244966619842455875780521884599617717618802197490663763251366248738687789994722352788355502387016577502149980184485712415328807731299385017826094296636524416122378614713580488086866306923767776039256805790295582974375396442694846954731812643005666985046780731170962121914998507835201922072141185611833335579778295959389439627300713279020532027503645969583593155667216142647404449090526876870584337939842091049937838675462530033212446050541138999387956659460425529612153604532250184390511406110206658299115768832995863726329059108848665905655318466591755108712327270688416642888861108007224690283997821573713088828964368526124541548269922878221129700920826711860285767329774639704872168511095735795358015892143803046886804518052105183905352595140433680609525959664183461787429156401622481800224780817555878493129817198869878429107459028217280098863276176917000124393748234559668830888270225552702559208237850881176733707012636016818959920787022474531386971630382599804029171167763771865155690121639369913953198706387870864273665010226238856921319926332166227937710660179368063200875558655727858326785337496638145555256941331322413450429271977393645234117117119022052023912076522175196288544212694974057697263441027861286885060345191118270500878342331402611042718486830540872958993951716249673751484422516371799502135692098987261346285374938977973841808160867804544427497688636259615538361096085343792520413189340223020900009017436163576441829867215564715335792440400200872392447001211780646056966604801961969404639269937973508521995461488279175350326453772866832881247304861094896834292745765418951177498725702972384479454740772745568568229938579094802556052938864223721822853636044738476882528970535786797778941895333235151572446187859575260262790048800197049279805112028357024219432709505503457726722135234494898032594602836443582610791236353448427160059240085609772329289439098687124453824787965148202881307257679599699554872713530031079045357385297260700986262047558770694889873836982241317349557378480173032999085646782420452852718887539686002758962996046463309905614062300282592647387886354663793722980070960396679195411036954342602278385663345050635217872954308668519454881806060967220227751297144621017854914286860762692041401066612805689014123692376696865988348545539472374117990071936857080432413052078436925871472459078845834613638157802656535199017979103454972905895621124046878251188672603185658535247617043457149395409278313312966078366425417345593960209694040777795158734576823190382544108880101241561666077150121540385567538604668033290338468343433587812213363516389035751659990125413043315017639407938048750911962287256473503117997463550181385960027942128186502829685897631158884831650899112761583589373183066264386858185882035273610831008180462510000001277366301763816871207126177850139419864553754592197990176580005008114162616327735139839612845745976328307145901292952312438629800541623072803595054449833269607713456277490993975800979823053121056536942162733805904045170798806816609008610424165325635579502449198885834448301935336673305606077100082778212443355101195912743211923010433137414839508944761012696261652521311291324942938789801592509224151168615854064098664636438698023116648373475255972246344007574970476429938982770498187464124378544854030455576024287743365432115713606409192764093035399995614078774198114196392484839862266015769929565086212628591302955068638875468088721725119862477417684573182848888462012564626157519131136309950733918658421750959554059611186855183512929279059601017065792708191869871455243700916862909585508711122977498221805103153015490213540119523529373910159620223677319419325732781732912973521088727130832247652993293789597575150941903507283613540409133231956411775579974148618677936072927114037535437506200441372739754521353686942862813677970009533449642260100397153460690661784081198938750348509099859108132048877037163872989820907635471899238352555417780132642602826398206172561413382485224201548489077125656253443419939529425922151323494062440408315375233249889725740617000373626796862685738594313464480209932343765570209841058279009551718056258833990730095846790648783137931367408577948429096698960076027663383986392126693971085102445548545527048474041787924432330626560697455973318731051022568943415182365779401294378891669077897626130799134870184103180290116622738032595207330737268617683718307638962555548315767842856312169210896837506424799183949699804463777225036997629524926881200367372902061353411566283191570395718424102370068717523393608592200451569934140809941696430009768782832767484033967626779256893471872817430341974028758359863467593269432622714408379920029997164859955388712614961573401733274586547547664010540030814036256740285116393508411411912808869280574047299036835112056284910401048861593530611267933976004568348671227875935474016625271257481415720124848020932658916106939976495369827158228925060203602622336958773182371847926491229530976641088270633437355301154409110809098387056582724504311239398321027450600019604082037687247695250899816659753426414429642159499778372140425157025531865662277110721119851787912617214451054747892195755621780334885933729720632482094300237796407218742093630691795278627759992744841441430123604355643504182318545944375962243361505984948159322576089966752895743929265484413005908168610874008357656965842157219974526692912530418207335224016407552830141412238753472007973414376543427522161891832730815051368766838035510014488042077669920612440254544731459980026702742046785988756591662189113423921318631316936485726459775153926716184690709792480424062434186035448171071665120183266762608369067052956071916639818307092137019023047317535306704313157180634299597830713986363169533354191643469426025024943071766288271841363260364389178233183854850893345690188378384923116224453268886201928368518298764717528812602486908033059279429242383237499945888435393157008691122552257775334034933365981796044147821880893426070253507485997322134630531433468149479823246410820213541413269876141508366508450335280838373690951444850192046343626166903323172367053583149970120689582063656850232943609546445730870383411361336180038684804556181323169069388708133577127683007870173578552491278403204136965862871267179633899463266163108880784396323919905446407982256758451721472394089166015718796903952437265739053479324398090283731272291671578219775211987321751632467462403229026962244847775292360823262318082058064347555920469083858464547133221448516128084348349396139558952211007479651069369004621936330642990667029387609941150920216780051786725943767691856567363690733842461536486415364024136784634580721012693532496314780629687465461715636872901163962330893660726227531121859527665021879510708760090516632728490561061370833933099652494952847899124772888126837085757556030932520939444724676016974790998795068008126747641149451784214941994891255954449318091293398372356373246380204469207866515778536539585262547132904177895205248948836316808903515630571845997658585895560207432740315173881137924644816557447212710189224052442842923901044706331204909656443350353084257417209170192553950437173482466267744126640571022667493428407863615445877820301788089719306378178239563549483079309272440623906215232317613784396136376112101552514694176930857823856983845220617207973731856161437463115355584223823079704937717599674735325156897667958689266552586375338163657049688391503944814012018129764910249598389902615810314612913201822288632857080343278323299008985820186600495655401772807927425386220297127522614311625557932834382870058924619604633794790660023971019384896033530285992360540220286163566881332938208847365107847719153335748343102685469738954551141425254980349407182168373873012632571354554592167104349590285566089256986695487202824660478440524028398087548498558193619112486101863804841581239012461767826705342338259769795108621210530052589889347903940315785857782179037949182357532860374179808656518982111060466690508932766462148992069901582558305167888127545146029565977063394819723826586538059173362427757371658467171940314574216537830989860002691343774647980673943519781890357776048112912448306763109050981314416634358537714139262911633128145056134110119893797881688361175162163468540521469945595236631953653438726155753034391913807363253889717426657355740323930695716535302690720703568087378356906572328287040987511053135944269415278669720628350072272160513943538675202035392784535507316694617165684285491947127466117263367551170165220591866655311553608360209024623308467847986998232622867640699178077672862890787858671885266299492015431814220833043256975131524470590637741204140637187780472766145169898796580713790316671350429364426156169378809883085463746373110453295781383834213102222617905634000529309616630556611857860525132399880153194519521812272614595760123926803339125353190351738413787733710514166769328262623919480951054602337021907579884860045746741158362865791736293495088374427374079350928702914702852975993150207792487646740026127595767504191099644422620901214031368411396630818778999591158363483560330151645641928164350721615147404359140839320695640154398664656247573867908158729789179281065031177752068983951705457554901477868700759376987848467296529943867820713744562168706558310791930923524331019372718421207392595654159706673429484821249190754204207220552482047116002211314884833708757983225399355829326949958740887214417041782529131556946246702770133152599585947157505908544415411841102037896618712706718817781225752060839358177373592626377238585585982753927444274003888269871427186159992242624161341464102979803891856524412400991867018021227195249922757173497808297782523838331573819682198139174825074877761275748374641609945980576906171779898130280563079582521371045252706277295406036371874674500413901166601281279790070201549108065655981066224233883262573230337530312326622887120336762972759007968976180312166525843473179190013144512122124300698215786165893714573809061926917460804410866267058681500310522839821306602790112220185906466744575065979484083286577894308899982302616966345941675553375863261646562280833962901849984102296450972663075010401126019028662817093034063657568020479913620673731921631188103484398021115577747325525824746063096541691789143582801225798413269497832396578995234803410574825752951683463704787374243041649364672420948709898679532751542347614999451125671495936184295771533875110797926570475627015709024325119964581728248264615236186485924403225727433580387535728768331642424096773619163627460135877271577737268055128911524317169054073772293468043752154881268875306813281732324534865501374806197914591543063584265461848020148070865181511923097251844688800891849598979010859698426771294702192618804652062048125041070573795387452069593630166030918721845765934910239545149504783532352497642073438902706502048332702748156838526355278537759158395153891829735364815458250732194539631213716260913868576547668668766847191451372546234328623948501453202714258887809356467290950756536337861810165453514119258608805141560551115708365457673153391978596117889522820106150495320758247488445178022347285433040714038009677204985805078631359086240804834778656549384606491740392206970630654386668408464201129883836122897251476091477532130281337447544215742682318656545597461086775258045388657094028457548082542314779795296986711361421128750075788789972620278668167973198364331006351967970413224301942853835651496659149915252750640712732040900350293376804251222811977742086014515618713534518560675706245550423939410447183067759922617790918077941159971000981917851208581838868205885368534310037644604047827549970248569763212143812975680116108689001618719900724825462939340110420732046416512575986272534812773775400456805226339375066754970697051161136715409967537822845253805537025651380652909097686438913617482754785794095216055506246495469887004470791764105520803802487439539166227493776518708785227486832365770320050096705729817667853115654819210510000504707720013997437831691947836866266460050138999426622194364592013064544511646643683781049345042406486844900338681112604876835252557294643961295693953316217884045196942370863919134753033368878807764524183967366939750617258393640691749613083868232098480937848097550479880217674968857371157122412322485401113293399620053241677543999848106296882093008245623221926960069267786609569712645344381675598557994176005446856442005612731142853441691078288569016778978260233587230115099240517599566580337657772618170750115108145218246500482043098847414035187762833696426907187508053935741639408928063909957156045560315272553699870828070332051380718335711919813556350941443320030463465149992377116285350147342536079863209998499113301232844692244163738378140362045458788173047539912051516611376226467912806488566921621257421419636822595237406417408648143848058017638982993928059723556149485162327924935976928211359969797134538538212917645232399364994850664201388024300003198425718156639126824369037686290798686629139413528507143862802224662629301287874592899629450849929291106844741488398506023939248637697023673283879633998601797028238062807668726843374748329483622396320348694275256815257553311106288373599033090196973156075757360101864675765263216122885196271017883517196308770462843508044548377654995679188796812115234513831762381061469222772455578311204315543709426216413121232900169853285525040758284106988509441696326667183356368941411673350923041736890059448861440452349896909335329254834044692587358870786164473231661363534051558386163502944386736786891810641410459261079127855505571676059575532973298654409740937119825277536209936262572879060559055892559139223977531975672751351479789012690474104866851085952186817028106877610483391403754573125230489501370786995976871455411949374697886789453896585256572077600664721124219521703880401744715251397735820865635070004797064861462985204594415458082142096943864676268877365474013264673684352570368897020254446337804887280124991407492482209545426423344809966138791233384263444770496929733822152428166683636853228703187383484150921407932277793048710235307499253085443329056909262721344996878360951777369898606372218748994269445220781504781911099300386624478182479119573541865634972366875973314182045337011065752730199520042493578104384113801330598356706015400735265919555687668790137721532365985989263301931051471637643505120476367792044068828081398386727391374067465006968863927055163492119395464985210400561387076951692125046852030215543436647097630172788474475725379667416858001580247534346335513614623070855970866289599705480128374426760890031405018958226948211233928336242568690467670403698244673907017941761684469812940436100479752845187237408176129201216201245351931701819031025814319987477323306132213727158090873903662548557591437126259298186052288403535724391342049849738582529116817095954427110686115465623549024415535593709220800613368929311338897234245736684982730343268674706255506840385353343185487676095982517549393699005786031636301516738302876105325979339689853937871013028549350633159419673054957563932888133595546628238416659459846123344701722442704151596848633377384765460075098566691503997935972200845713521475401396873462012541647106363341740184387456825433027257694465842500848368379008773803113224021170717784544340164948485250717271935750407946666315611093573277716064550787518252376915825272229325263728780921456103410153586458084967344070759807333291717506765436707918978642393735029931357997595942234074759980565596345856013075402704966541969458802892612031409427979362147065787822218446429800988031818832627066675541603619231544264375862920361033320295091466205151128494332525457283384510048759999011568755583661204713569024918895324765918619445427910220761214218681478785352967752747917455557811319960820334772661697685512927933855662997364045640307183888951136769999724285717984970884902978805595422921554230768379319261328978525157877932298576046588992444927541664978271202471804189954836787157135668033007305878746915286719057827858720666691498509140528832474855535372113433655353443576352753016326014804477192966101531800803270149658169856894518016332895819688803916776109741186046179575624004179891226178745433432873050502921695982735567512294195832660574813900322884032421935994864727800667565816135412257929240698441459804033554178871649795041695282933123290989752614732748095547583327007160054801295928046837883294765822755772421326018563942832803839719992575646096582540412884168240234012655882978821593878260544448954697587391310784951747232707151401893852034294444940472768470848141193777977945003292079163305454713054066957658725327003948991520485879534146995621322041793633897064276054184382043396661618452656984992957513602295153018084845045911953607656930241932009033397742237709874286916675561949012944687434760122197681777059693383079011610759148552808329226486296926442379009671815192994509909839077883895746326236196238301067419000727733253448039405126653769876019589203600371060144895922393967732298587453654997608268074460126086015527628759934395165380728946023782720941815801838494341317869640235338826637419262810993092000130139852727889974173681167966610368460736669339923680964860501594803095236811887222711009406098149958313220513084062973454600090963612230890606953181548827035224294766928332842309625085237210289340163276514196463499966755609325206696805168911406455085262065752279954854279756989479445158988915944779077509635200169421833965523127207268190553344182976082097164150714995221051697254071371796735262394364575026670701541610547361636922892431169503162673645910634632409533075482184964948068690419116585739589063791958984654627906926986093538911559305297229339094562031593271311227238568757938480495449861117808193143226206496762425425207774504705786743662234765227333462896979127319893290093905010204363894720411825715598324277931938471161553070243582158546736510638211386068541655507379074586595936159599315659126035670013548135196348288677231333853056133367656247058709932870623673530356447474910982351650959299420115058944342463273053936048821573070224207044710524825633690624182077475378690810560749620738042087067629398188967777717194125506094899788420098071661670793887775733285970558608099222695383238639417066800485741117467685901972719479767195476765576239996071548876408494203588168652197576175052724051457799909708565228391621379525324449146693891513973719235090402153238059303921604501080895346569784761273225290547807149914649232927451677008781929398095618790399031937675112086603962578280456201831148387401063314554382831492162584157415410366192728845485221669140574645961765016015365777527538698050542158478655846417384295522993490602364215343981104430144320984881872937813354644460842447487919582110260051514175495606500018219730496674721071290641469472512984737991241483504406035132788811664513449224077157469503931042997946328692875994879333686851922551785989389940479296160706452676940656638967361034296304451567345025474844355372240417836648875612105165771188703300924345615000778657340502009421620255645846590278730812534516626639218577552161825671143755736794126881362798379809896367075135910073681236524710393849096429719853679490468098810648367042577707835251593390881722552080517825396057203335580189698790582375262116171630434270445258389358027590582119100851271611723512100349322057945331039471372533251196784054737999811619896215275559809812043278840455952204296121248300269376071924726190191148486836613551790749345023845520444258395796591419895450606546868438329583310715264209850594342770506052006737134253985567362255622307061200950449150105093614772237420755694433703865503746625029482281190936405062432689494292116876739181141668203417958417922519877654234350229548465972614084785643220131136413040862118284807210711380604283619951988742491441295753313541130061176971282561284275780634362025718662833386531342257497581886647543648814208187234614329968092963454179773996597634413359115549045750052224209184404885721478121161361539927975377150381121594202786528928120002259737163772210886713279936810490087059452522560840164235890814286480301663685676173100992680100364921039873776460549003505017365766743182951894892327992083299718227923758075673447902322365585353859627515652092613554918992772445719159524832701218120328731838022894100656688339370071967743567487114501740772170902627482978502104616531020408212337228114369791942247082211883217191260772170354175809692767461171689437006681464523064327150256853708930114064187103862718710664571471708861283067967044171593465161354070640330583142258814775446674970680713950560570382145571775286363747944925569045194292588824694478513051863859107293277971314985891029752663110781483790400703581235888963787025147129702548076379673233201457350752688226780970756662477553274617034688517090608162911924951592423463726863964300409903919596979394334691205029513565891872834385778491691862918205511701547004771467787737426153041646339984770889245839761358663043851458560000560015829635322588214752009888776051440652589454205631462901651124992391761295274245671181013998376551651336453147390845921641070165428750910792981016728435780351811793328618930413240143602641978467088285071457023903227388790808500977551434430597188645542188093469756614241715581052447896627823681536687962547958273743088454979619241356896056672073265298019429764404133337593077088693508364122006552770110606011489615121603096671516082190217671598712559064481493738001732530369877018941965774378657530756562299523709153349688908755196576783731731482894831459545608091663687574254275816295635236107594032466842346629917848541609779640378863591231766009443822170519089623625212453912461393547220244249733834845978742950848175624932846094224496532274200513109691266802347744081639906042533695540272081687031701385983634742526304220717632931339230258077483465937818331474712257920608637114203379769395067753018003604047902417795284813851388810459375288884166395709319168408075109355881618678244483822133072333743500247312077525473402685824720885591054703450554290069551832206565654176064195994129759894113509483681712091284642333126455630600734385326830983787327187528815022357308366233849367482929103407416209723337080960519378361956150528412759782934689757823279783951218421758226091046878759475407418858597394402530215109999193420910403818092024554911666376765353125667252351089464813040287339523482245161648597628340455689883276006424638872753124562926945387377627599886232552862892298632571241656510583754679823910382228632478114173359930790322102336782508932140945494405534624679319899585029321719568145299025571007534156285287910905318428284976388417872076734382757267327150758795392140977661665333905437916401557461355559655198558495615876436335030555955632150310089440755524415865667230658667051336427878912151926413672161088766507837361901694099785893479981592366628558916205688553869373775164492262733177364347859858049797323540667581270348432268341345415077460713509127445823682024127200270246254037713827379450986744702232351849032743678457282943635847877341752206953610440278640655074210309488671580983099768764162798772104042379420697674013438354813268978961434015336002832521656846714972601682548934904737277379368645412379137215567290985131195908689324908643269608560931768047919128698431295071709290658155335386557118618126875262535365613195307290203971889469779879450244777410565490268233355186011059772135837327766752699812354220505742234477545375430665589961495911972580252185834797509074907621854518328649804073641052460475330534460177192816557562389336392509349384741349133114156862161360325052796950091381623154263476686524867075236533352059070568648203166018067464642218321463505014001698690866878748274419731678857016994986222989977482475350542111211967980609275901494961040999499416334833652866756785217665120112873292708194844391165913217895463651878363320158208461322789148986435870440637289992047360262706782047189846760610829632636725689471088306520150289336637801691494577656247505169502189550537944673071546022584104439993782194479715492071493819659677919646592238410225883101233601131045318839783335464014258150085581990137981228022057858029915847548323755615351856818897578079127525164669487188849076170599549677868546448793158067743246668552119157589372426151652480885161687572299994288854571822708675529766799379427339261717216914440212878189342539974899938991144703147274507736363726009161334265327733653780476033861655034274740636869159749840988024468260175911270738983754583654095492553794426145859433318578191527798021781650618885859974692715775322162055954234570930324866871626816163625164807650421086832023672834999435793751108140881255868425812567324173409881892102488364596780469590922885700467886287893170429197018932187460372163815837374085760523202827847691768337971282918202352267965351269486412530598283669245963557935001129359775895630157361209454000707546430700007639081852615185961811602718682928631601537374361512273388115265501477818495835368706266416068805507395763235417648206486450633969349021463885276438658359188611689738693143931846985335712877929022583171418692425346073217782471181895405273117414802383057314804306140109847247638996041010795030549846543245307536184142468528663523329155199300477754031459224723017535292025991946082315379059245434954989695898567940232901794259194323664679164494111930089379080699850907333964882911486307754617540721795929793656568732238923552479762025101128511400250722681905092952000765780321924873705827968984607216610495792435231290731893427568657006518021120816054997438919233914993265070378898973004764150781869477134260696737547935685641950521565936904790358489617590496632898225535377285806608728936420448332490039267134869732614693004525843709368357981464651486252764966928431837378504865641814325506193952624523505946520611401200866721044427532413547646430408773332792143940992987129916671978194528765484428646528463041383461904706902925668317394841924324744016961376709511987736215141483545431886821568308268197867396882897661216707485596621161614390936431376241360883761144165348286908517684440225298124084943946117262708900242310317140764956433356336195543970971844582117584905674049028604377972254128133206489024623784443472802897136022409255268130822081789233818582732802330880815974186423705045276941873250323706418003790390195269649017151067580556467021586957573653444859212884374442729238239742841227474363623489609730824428278058352869919108305980493732622329083888431004196326298694393209701824925130374960669214619570238665851605276281156721920824487207006272236851625668197977228540486129638119113083670103247629594282504503425881778746929381808645649491385940498206552084445545929057448817650418632567512587065358384974705895251894899607301781472593124067059432915513263130628287014237173953141830794613276056035357374428248298986592570802219295278632776976448558228838163234272087402505457856529764595688642704654336254901585003952324712109113828837856827101869555686521248866470103348281161269750033407160792621705774347328808120779127865368347199573908908425519928403578743468394697924439676248982730323091124005445630450285964850783543597691210215871176553330346614706836024841267343365730696858872078170155744106459431807193996129625076881693541162396535923982854498964637898257760808529049683144317882279920152202582697654015448932955921227233639780399540480055305728449827362453447802755673027072684495622320168075096747252322957300512289430940702906747638745796715495619648553495612531687364640717149219066871868554202238931290821383868496279312889728818511037197248397141484685277424409450860024234702180763597933465214740921010055959791572971273948841980212250811577741734127356136172711268780053926919939463891969236757980596477783636395756100817612519955003024914482495110510746263132272770375448420574222902961267437664352084901757470880129182034296886839427769088667844603765691202187740869785565668803919778016382140452039062703144682380232804373951343121419667065837707004168283801926602079814084459366044436186107229621507765308206726036675337723923248370619579222661035916432200611020184145822016013710474542314600608975675383367803030806295135951896428521896207751446675796590907172567456641196525791573542843424735986736750791425173650070089597158502608967745227638213328505379004252125533925435644662183679431869032456685297477067864095804312477301266645582707594114067162743904345524079461655444169665724903363698074481798115365803076462271572963665746223058716448119726841149602934855129316397838812894566651417793213593778180134896173619384043131851292428631756709449708373578854802738742128181247842592431818715138145661842664135458424265961848281325355196454514376092168977793410841672982040520839871689499594981739128146719248772097319105432239905324801928114934757904208962574151722387031009246708057896918492928027965895342995867194651624491612874462122426434373046598405493784172325363753589758228686687254078934812471962930152587248468707781375198569813241419088809249951330701590709874318773781159871726260874281185674966107827251887900362984899064603387050057007113723292770410982697146882291314166333622288758902244207649925774944068394142632389260423428246675054832995888251218782497433687018155883419521893194999035285042118541235060209476483718918019900008526478998386028619858263382373340955165552647136987713449333002192778015271215156532945140093753962150136469956305425662495854954530046184640531513917181654277663643539222224524348125018648003893310185477727830352460463661797491243520595613162347749152255778903475799571823946324020533756955939018728552974529357520514941980502636823845784101135186083783865834682294125630104188382096020909017681985213932294008068857029201695749107770165984059104348504440832386739644797520642597007004911919759380043171228215513198576084401835382109468706068741162887660185975660676511894340036350544441762837934761679766093029504660890748067292325589313406092300479916546190161220470636379154077023391712106679590141052856760081709111296304010200487196174228575411091482319111826234652912061550551955463312464972762697338856156066319097714347309779676394448210496660069610610853558308740470152962985079738537164116744318539989161695703070931227383434921529103195110706851100931180109777027544663046927055837833902568634508826368537679253980835321091839124745303028990371511484588561068763038384361919316706147014769994988448611604283796115755026721258927131690089397075588971449751331881937055949580873341285458510408273509515943043016488449014642692515521958028307639085122712426639939338788780041440126537969448895906079028537447574999887525441143387898635457082277730419602233489299371071548631421718140953123000807070664085327071702486807677462260985975624356454950708540716931346326028863249562156289547031342388550899949474478295557043507596362814370470347883695989954875005614450634024122234600913364254819627875341430290102019365785788724337286679039798412888081841800186161808905662220425768304993734359698137318014835094992590202076864802923684194831312021314806598399486320512063996554829647957529773091135328220534584002959920702509683235381632389673815664626710434005515753521047948151431576948762238261652232435488625981302089292275582811790269555450407841489885140135661789784178006860628017492789550670342969835285149081929577165879366937460422806788874907286910790351720779065260036002645540448461971478047476272564074911957258706892759547839584612154199904458840442075399973599126551022381083783140298079197624065530438752940969359260251372998918564436822499165651879511169731259611180502858504371693513059533079452967232234102659480911727118032168418331730931633989973307401424814105706490901270925251580706170103574696865378755129968326277396368292982949685187550084486147956452153299550831840699714946491920264223313177307751126993430248008900186476987325795795526607104326722570879272912781761566900442924165842817703837570376055438621885116176983622753040299194000174698165509125703719347514316864131333382645616704618751146519379462396711479292946113986245453098481506152498049399774904767724623826579027902440912741494507806223585822969555779936295247610915064329091458477107950107111798949117304991973480243286236680439538331095479685052365380455048903786308751139150784132770136720254341000524969296743539930139337123109275168577591535740194042346530924687152516670993880936925274131330608901465501489454847002057223123134801406766974497788301568651005803230842107225568964143848626744568041315837783831189929293921943539806055545579366442792546714184526416317403967744750874951823935590012818198251696531476077394348079926366170906397586939605365639049779769704850797059148993589780737508753595296384970531512302814882072903179062564600803874490174155635559463440208809662688857518474795643682589668836944586870911756207331691040410990782858565235877055971358262605948120491178513679670348535888195117747756876757419648097645750272888522072874424838606747394873424776136148981279698103117483030374739485478909539567844881743782358115306887180762427388472271886347613003825592232415228126949380739761376431589526103655970458734389793353484330512709200731546773489326009104804069531098126205663317894867146960735308224789026779464809470036608706762088569359898519323029045821261600234450702832895500817433828395590932193933133791635379092399412953420067819688453289736068722940646174935592001294222969713937863221039344460515676399268558147734783795974984024939837965902472257948494416899984822540748782635193377268636228155317352640795263999885152718887577465602397057961037432346987751995897912653423348908778435477273826946309740486456934544356242393847290856152362952008939713861762300106438815214302216865308719866891761893622838439251281715185663327439284605576972509589857431232728927106729987234306689018924384579918865253509194982787962488229500054299923017497189723803772475014974060742861855882443752441532447653194055334205320356226787706226644336362256174902358104659781220461787566669918780366290491048625676216375029463247413106004388298564856499556262467044933679706196731302402062435324404821152486020520897715780504130133201386555072071513375483707890042442313037710782543176019420290395420575595305989059855725222661162889184059897433649314235866047827037902969280297382966382475972690062842791154470121650351099689733201190643170849840297435872953686476360461997015469648385731875720621155248895174737830644234596548460998420798448984048829337532195094434515524532611731920983568257857003510715091730445499956684670456060375987737297106504002088446258586943332378300487061949371555679410817105984774153303276855309273673674732263237150065600860540388614889570106465352222583982492153710309905431675136536742737738046693713267563567145273429107129349456305363108124915756786729194655290318788683513423442615361392089160972978650497602549690761822954714157746047255724380751259462548044677283115088647690000141443624016082874331042762991402027236205392620278685279224458655988981823340110954610295301542111533959507614618716027605024153958161657611661644650015146243914648185715847025042848121398655941294586934883201215112770795751049045708450163396533558273738840998033933219806330873660653238966492135764134639020417760769735176771231385849958371266285627127790213754304293251481543655471289815811198448947207314780831555740261610933108713055097895623981999677644103876498037461379927941039886073532711599221677886885805314984055776640626734554994288228803678517753940953604258469856612925055602987421313069126229053481956617451213480401518987649121224357032518520398086199324231586196614060508061240455694543404997958447374390462402524485760576957391671855266512010864451169586197182583876207212186694020962440017529283104525321407516997914749818502585994377034636229018022240339128307889539951475489851017462869003675438833113712379056022779358500874284743831841515248733246310878057717200687352688623247902230474392309820050800529491275033338607995970255925417071941522780209723872158372944832362450750545997145963584369272223853291348974683310722724350077527983079195898812382275462431087547777727525434016444170712331945466846583587824287904252458491407648001343576971308473435827488998504561021946435047582325244875043189758891477640655680868899568922829363431161154124374315237625304059983078141265726595293855261023293934480944574754876845114808207772712408855770449163345739959562493118696804577823082168601336277808993763538754355655435713481211107512003219918923349079788199815647871918074992145908010716278642491311924886973583796159542828573789240381044178396477952113114894594105598138569756956446602123698141119635488706455621195730710983552523737496995698395566902063414775491023299123842643011842770895208977570281528431291625036875789474897781916924782777550565803078380334279619226860066240798691819430415004347838719091464962746154987851807057266073294876591074791212219067731065879593648773076190691422441166265944476603908937891356988504793377565189099364335250059398769351888876374745874415830311553529583736027615838031579201287032851861025909348569895232973955046367667301782653925935192912036288185787004333592496189743810369735327840672790950935065265224443695147631924914616206435086263787842149632509484665561407380283801502100281798314800920390483827972828816042508327187686515415427266927765195647165279456426465501069560967768302959735447480380612907566045508664922541297017366969865206264556614601036352590009726194703621723976181301898520509702868382121196965773491558587680626254679850967640373484341898426775677602734708685792026955957825290593873310447545016560662165370431437661840312647876330753007387088325837205873741663955695240894744253438130834841703457314920826623666350259995057661592599901366658263667710937325091419603955599593944541128703277080953306882653323371287313447361477370089296678263362066888755460541339062242850434928233887039268568094857634598648162394104807519210455342760013947640603741003121422907160502671743970865396383116848035849452929948190531558851081854970408628901838155987281497767436861690683107207386077091709386165872263980025136300510199514647606315871277608561383052370856953034679611107257324325062879051730020979762580265821809416251457107311177703409893234358156548135159707019235104427025894466002391841571121970790242752010310747702997651255668385664709386089131948300127272754671356628117989166595253530865324075166992932394419755026361395625717495749169284539457553232967055795670964305206514490384486284411876852266578985302391050497952740662539631451689937096176145966203466738637212727079336667935218727506920837238267782140104490758072578750826539948508393418696309681373960952085914771644136734811970592351948925650570948071139140802689841276785085543026187735726957940704727258712074307861411215054434917029925841416164425056645134009285520527989294871969092199047104440394074149462189842256838575445968972936717996259427063407811341733139944819621215188537654942824652863360819493489211387450666432793481805879566535707508528890760995830887668101752778094943088703647533547802854464799588481113732428293878090120424101562481076948500373271072881706597982988945999783004088873318576462615528629126792233594265573408095211008374318356297397924784649070273614435481162995742913796148924881135899727802914309161325701629119091155873254113378139665174456313272340635602736464502104869838756848599460059634206972028675693336295656472597288283226212889196136849083705151946479226421196986971819221256020730724665896337090198994912837658437861499935583263391377370687455893310418196687752066472579037300920531848745278802496749684322606417456498306560753287543115637164424963661604316978077306586967333006301511834983792712743003440671676834870394433559003517891002953706856068395899863214196100117369956721817076091351011282419597523317218702622732768279770552118980229139573972432213505692232883610717391535286899510095110520358136635151055498204378702032825018038308045574028937239512425049599490874249886242409815423920769625919161264197343404842202016686458489211503065052544522393213862248387221896640593120195302459521226275245573262939989914071149880891193333225855211754174767519971755050598739098453001918148085110011898770128041381300803963296596472642208085908585713321680717269993275906278558962832505290686493594020766828789531878195455971036349795778610859467202627739458324131572246178491476330767128998425790186621175078793286996791392161045048722937419682362438288876924433549090320307970927019670963467823003930242604505802553675452353494616547334810816994727546952610208469896002479009375507364815870569381519866254500837899244672499251161170511357455368838001283043898113509176785142008260136178479576266525887786572763887302057757987968422995524004188984372409336165563864410422381830259243721748903016440013360972009588731877984363152728266551404813199633241912438452745041867000720512840773910631158379478014385340540400933776980600319208311039089668374120528269669253498695741511684833249807827898076861865268055189533319191046279161887593042515935225972036603610617614482455213757239129032734830809852661907223748925474693599071376195302428725701265012325259834612415187475739697343665491384669546387841049738011148473220631947908324026041374993528834619631092217377864690994803488297477102060421306814906733507884256489383198909015968498316389632736213982524034320942513533490932446490074840913543302335366820960421500418998970696791522810654663432534258721568209755228329146723100077551397260812276839151282029542707793960591176099109093251480775816224378238839588845733622766388269007163086691927705335832268044158095919976149084511249811448993803781872161867075765489335977900927397272421408921920903540527014544898502379834287416838448164713910529572758198596442997488590838562112521453817894093515363223601910774002322629678948909901590188664656410310589072858374596601639738664045505819218007047113851663673432658793824932196369988894228072086720955551919961508930981576828672369330391925090060681872747205370293928638482732015855852678409466663730345659686371776980371922432786369236676705239071925823521206428584957728621652678122358579540903411697829455600426340114807771964739485785694896615762240619895478208518457324227797665679549892960002219205423352727079737918640643804855438192063055707723010440047276559664290722194630106311279713037883952665566666693163522118621349446913827471436228192824631086323546176397969993406153538526424136876491198292849794962693409836543743667855757228244825055366405512993550832705083365847088542022901005580564162972323461004044764365665256740710545388750293789108840442722956825620216229787501931429431010076410806735930108275637159427828310718624521937457082013147682881597210383783643518902293324998070112158674375107612295482049208974746396154314424071680025204986869804269766566918358009879525536026477955792673667300343601904773760427875507719385511611244793412765641616930887413042292466602262467819847470114498570708517209470463894430426941578109320547186092823013729846215898145573784164376310161042020325166114988207324051922413727583894239045612976082528184176401570700846617536579258020720028896471753985822588857440921848166582956271418863401312921958840808083918271368353036789828793521408537621005291215794887947482208930680791814589133681000848624660849874992815395185450721284349894747173740632558610451647361171113039014544559369594127350230114897064360530316587971125863719525372390231897374891622160766833898335187661030806134624799377371021093091187961466384200977618289954779513569479614178312293113268873152284282736026794846373789022506107772861715725424565282479772921829763084822631486755463045069440650210305077254222072085688120077374613015206249311992028146786441484867208495504868245286922507150096882352152869636677895413387540105037207437335519537645242628722089271776250505230699119185969319905547258402240102747165480126473476786492678950928913430600169727322990219075642516545318360309740901728003412540634432791600177340509764746030855532665898790768335399438967420135385124493220080115651767462287812370452611819225038452189667232844438795096778421110017161017774283002729753494030160149697217420778661751349936358341097891029279321524020750961236076481371015832646763643464177936043518575550649787892396896768855880362415717353530702511051617894327158355053053190933683375227376089910839778440297020243129745494446342953495621730935228650972969777130410840106850925251803618644529062205023199653804042957080899649377995389691208460314028343222370767357663248816648843027626370797911935373716618617383096576381681623656095594276665084370671370334489609985840609359779231467372608049189139142593973677284980256816207114888188503819685262465342749906302977601480364671310685692925892027512748654353470812267831816770506855622365434474026328119704672472248685049497348993315206714459175835435502327633875161469429695162641466606144496814713244991066832780603308564452456351369302517180830428625514520713128717754351633195944703479128379208018587436057705156018471646761420867209397648503597912864153797066070863787282485105469492595258478302927884418279867047414853078088531522159032741582624537898848089834108711049837742694799392409787541595132657021484543499873958128619124220518444376007906787597578415339213295617333254299171060580126469607457568982187201247148986249760188145877776791257737878044470601898723659536892563449719483227677460756234089326638587649954138167252565694189860738345212166444638950080829982577064163482908774898639041756556629600420122009024926162678973705754040048908003792899430359754301351667112530424288040151419622560745526439676910932909572747293662304678703055908244361425641926232258193660858301463032347407119401846444405020539987433612344219046931013601182575757627683943098016071804421120114352598594132794555276728226557884719969720677018670431861540130440760856572063351566271558136453048443196150341199362435042702837691099511836190711504962473538778544707274484309832996009978300431906781422215345235010621906915427003346086949059766325794144096341449934676548636328062995957219086823279272869039699720983471893504748969960040427084094370038140021712497374492399569863852550404563670677202937309923824760608190684769833897531391150690398871184604852658338849662891815578151353048131250777994918478856046165985834316878669504717009072258756824366124298362178585015097266697853787453922624668138246693932214771746721392915564841713042254894647231463774172242972097935330642326104695935393407118689468621585080168260961394921807778679764289814800092825114609170067996297003907084326826799217546871543009714920343101887328788756708436920126085405505232871448089829266505369934224791217462193534349938171807911079048949356207355371202263795025227317017344362860701301007364299949391898980783766224911027809017869689873218058747358480883605276561683356181552497902513300580029006446659044550427430490167380609178012049788544851335443264193228748994004328576034088060850524140657832628816893733786997207975400826693332251109931513441220454921357885139686651153024625592330977486107873880749715705882556297033546976611740335598681026023894440067427488010823588010588959274752457911507700283875022191371358444512987488994802100565745114166757533050665404732986133209413823211117037740823386132282802149127655527928585115777938596453589671403700523886011504211338494298168213580419704072767740752335481891576041443990844927311029421287392357595909399253751999795642693190410849798788674811246523213498571724565679214319292532793945160897378400876036276529346358916399960053980116206105896386528004839907903193148153333353148856563824711254015800671564791152691778588317743014994784419069357907523876908165962501520616074994136605397304953498339033579658444079236379803320441087428726348053466251421037791572161045878960176178305123692123201491809941859933857205451429079081704359300644646199748634762104194828314702706585080312700855049771141192760456910188770092399704632903008104497649311394304991538586645967661842778775223340006715501866691147322703406304014781405141877181709426618418420119593774203360936174182213724851268240937184173307010261646524763873815235859359238085861105978764235966558551972620264729217139453657594310306059403723309898632622838050696641636041303957453881926880046972832598251171721045890645866392085030696781479731388136710239981642993592089701598248815380205388938077366573393540974146687997778930044848672523997491639329645356043733226765155766236404045227202959365858360859772523050949989413396375689235851887303215838635245238359861953591864136926227606184575887674698430110664597928510692237973497397251148302886232847847989128430688648675949349326152449333009998585674751660263072467876442192230324765350284832518865800398462567580407723409124151797491832451330576180889586052161639787947925967313476116733942656334044519444547324589383426776965441972157179461152415789852291559259566929070478119329188657803758322434644512156426022654133662010319878903478677552168750838929819023508074857000058015057635743560877408866543900913329544490796138792048514338558816970575482266446224859162619552948947069453081152066860323193537390423195133714844019023672459194803133028706716346731100659118649769677784546912051400019246970245003690125305956044604977369650130573877369765584386708477160532246604314006638019275455920576398311890075279291270836008852320323411339306846106186687369441695496347815552432666396093075970643286198625072624432069388625062529242903040382169985005286274199687282252431910897584735591929133631943004831555668857732183795180432557364952759288403010431783034292175873375500546234705882921553130022293055926492432529760243677772252233644738856460279905218953921679615791114030885221522574986257989249436010337563175343992681246042524768571371533063952796667381906127213561710257021245993812703693250165134258652120025583709376330517724123007830953313658965452539772993718635422784836118553105037545031940111861796530462433326793367871816719219780835238105034195947670811983458590168306459858154101450120998084782357195720893818028389579138421144136848413777356874564607801032631698620684478369620305211604856902057690022154636787401153960810703065446008749987436388829351504586461978631745623247589041889929153259069199341978655523666923638433952382427145015225660498902828429283591893282483328387741807728786619373980719945834211890622459727737459726476745058544965527900548300321228850468497280127997686537807248838806583937746050942951813621849543880349109627275110981594329101484944579708903486014326188269511855605959518389434602028683459823457211772746386701480763326364113882666453055073848528817024522836840229499489299425228716944119530753287869860160868209788869132163339755128875081655154002141765692195040377856168509916451944324013892198497887003873634962750839040853539873286889601661612600882847413111688671815225857103386477828752846465888954251799613112174925555333906299375345448164509774423045679827876901056544135935385880871791516912961492643109869280652208552162756758261008245423043881528173175162849431606708182940009135630718108729322872246748324124243026931880256532925199178527608408033721035971998482596503599982612677048801056391400389129284911766240015508632449753269077184323869259620988098207784653795221861485264236113818226193211187571588794632285370430266921584837374154251851720061829559286117102715888431899050221052566569886570819551114050897277927014977791839587328453876723088098443367720534625763429962011293299095759015621928478541621893144831037540767843884704100185811805686535236477149582490413099039002840879875952378667888687084426813506790122314386611159843630112743648395392424669702026755328882079029503688961982976872674585929891792107759348962117403075174825637878790980253865921654015118249731304635640112842673643258087449872389320243275024984796189054896366845137245016499509051856540485769488954040073479999282691499694201307891319403225401912990642251507344055287576943209508926422552353800134615169543655065273309611617173351378700361621438810531030528576273068712489374628834879772711387162827953428565717032639916518722230340245360079320565775410423930940431405572517506044523465683013231374985745796487588701804803597968948294338870640032341768180814987716585131182740351970307322231281578266384114460124948221535363211416337650732463594035460683626097726460900706512871767074348207375939113259868371191592799394864287999364919114223282388271023792982456123691701404169277014105264471957716956250607723707972782635373628891721329866612722352003920717253193787986567824561181586715672007993726002843433099470767055383601067463995241856944554961025497774742973639164196899663699156598326867493751761704167670177606010682673564706068299010276573247190336167032562568459042042451980739144914615560449942959409218943434135934936338290123125227529896610297214408802969897764477788796888220731433972020366084845620514186369788954686407503356324924906311208991542507643541293687894826817874497827117502756162097175471436197574513401759229077095839444679398241739394228458566219814730292816367823543921762054167124256844834503916115775948277041596048746351157319610506853184787875121275896298790253897037613645681786852068590547451585829471872384812930700813830071583375110599906255993032785047805238656847838545048108466922211632524652448168040100394467798489762498464444852402002587157249984124595131935237593761517712936248015328221708919217898213615873249192815035588431424113169138109123133833857106391250089519974662439726874297770368727178760486433012309639718381418314273326278202350269597773111204154253302514721685711489176064736402663905512844314948750736396086232121139094288009234741291714335419120658434585012807458332997686765360393578624543537241382845890768361582344821314870417918330678061637650376724585099242189088454645770128786842580642569060590824793238040697908796845811261923734119634802757318646075826676128678284691330146408832966270293072552838735547348552550780794134963166471918141173975558317915899419045947460515529163296634343505357060348896696306567720765406675802549596962800250038649863506212654233259672787207633098830712178557163336843187454141174006379537949814227293797784341446106984429895755377851793122714104070505684413307482593374685129044161893675117740817237475181438235200752059941097139227446825006018480255799458548917652896049664269774863502413713521553469367933798347622364122135679552911814540859004142275145660096298031037288536200515378825688324394663100429314498491294799858647799333436208970370675941856013921790515474829163855446961932203752944094899092853463612363503732053547056404972017062092958970078155458815058144179498399803509289699325596580082383810718842011862812223312831767977342676520024264815731721881658608950669913626282540829661296642027804346224591201171928986702756836629052962032701786615782637233290689476505566341429275918688151115547800406856457964413701452959536422206411139351292970897442632905147680869500793238053625321256580773979731853692640029100971510989524995307067547840173163123542778928728126248911722224044794594082743576790973001263068089695217696232442536538024319153098389316289340465383215192786890969577237454999312583843386066908790020296384124661393728211924080054877438672120797340593060648828778609008083511375248144463142089381034603188601578928550273210315178926802632345360064146525656601552043711551981406521024939534715088749543420277134917488570160824886959840500432821738225807261148586922394212731815167526360414010085379479978606265828703943020261193493924544374951556986608716965223169251551993690956324740874630100186432865810923301311491111297451476687172939436210515320452036897696661787436426212110341816432851621664525645588424052620558321460941895972167400415596372995864422196106574509429694705246612503169923288191574838129132855395256065425102401414332846596779140797061764870733103802185108726687846259086208759713075401866044469800558024486940858654691238973552963581780861677302979654083261749197069776790962344793391222720302148947115745684876913220133338978093628198741013264010076482417977120826964226353999718593803349469659199237580287255132684930396993534682002757875809782545560494304771809204795757111312546642508175273103174996743669691593080384615671706860417954395019535538253731876709424261704511929358658093301301058408625451964719988743715773654818073502055250498480055118726423075058744974959732734979459353929123910303272498725687882946955854591884450517179673020180493179394539334881810532271952898174345285804574220984039670556483313196448333852543439930732263886636198058961044731482484408222251981224200126998421565261440528533237494349711219116302286489745044128488724570721943363417228084421310471431347696832644884475291350388799000894524456677725089385280398464087689130032346736017571623682736316257267092365571943626008597921043219547562401382823688769166322913249767836653616406424748149710974978111348813774158154228149495445360360496592930546767811166802939609825184523258777166907581191359311465638240405198558507374372648971447274364200108979472568284613584316263223222794314738310665139518821507303182281781919472412335877938948833186640222787653642800250566033153988215825435879739170844945181224699172352193900793566176086905895395866206535283661110719067793025030900848275088579835531304827971445215229680562570505390022168699519279085724356841407518300195081346814546976433823627649955529147216267938273096805967249850079269935797560057340880163246675137555623475295869706419738737095532672149357340779738545612891990033716899716612645513444491559020178854098736496748222003038520959486653459189271890855241509897877860334889344376499702468901868541568725993576083049366813185544175330484885948921931918656295519841044376210987230780749070308825477761030556470496173694820868067918958711867422752135275722079807223011997968996772182194806360754066596574520491342243694514120073273116368923159212084751895038418388665657232241014862637579214989399330637501212824644848491688686750723359958774695151177623212620060031581497760410275013822548421056118418037613488845090608249499514877114466615239560321998012129172585075959112743712203994644296832285932114739125395287783414994246591587958748107785397349037535599709779837543363266395630990217318381147477042360702325281021781802506639218682732028576870075232973385085812222792369660122265292330951525313429506763117782083296386174341465721982978251226716725349002588548899923444088796805792548928371560128396196555571274327149682017408215419714163920758715737878737950072853911741179723848983811137227812865293269951986353484024975593620142421270168120565823066589209775194122338466004712659677420441840261522117430534315238575177344062305296771760647188130945211661492306938509342249922243570099969369270753478786999312131702425965944898117592463558588168568742494598851792565044050444264694891374418403127009363142614421445206568089312125921045602057519645916905116466370155800597545805086865368635793447827181427324157230550178065489945594789648940733161390296557574748073716138243176279956478544785778242959409709168919923084621843872403510176309475921971692830737941359790604661945811238345897007232354599296760897274431387404027719516318283251603338051890517809093135185866885697294190742550330961430115766025534667597934328769830475829720995035692706754039668888321033459185884534963936014166849983636637250268940394166587541585440986467690054568350754768730173230511244263599888648691072057430242021908871689038165079788427585146953130387406461095926868735153740121590277062534311767074006798465153182363285832791996241877937331920584696132255302147135407279320021880474608482343242278502549225180499639023027070551524289625771823470826390524777434251962764377294945051862012161079383260863214918001244860879533312212827816492735530852492545879514314779278180342322889002936997831684889825316521501415456276170731993125638478982800542326903077086550276611482035875677989309238610897153653858379158700166363530180650846465329962235453466481868355055114974037697905044104343214702165719598663504957891250393260125358209355110591326030201513269619744770891055784979759428358088406768711091320778915565956205821826988358691486368660974979491628870082092844085100984334701111080437259796769223440835433101946005885149527639110497224713529100858121360465409362670077159875255671896144233036427865223926240566497728865226019482856062886047186028593902952568119826393061654675216667352919721273241480948413960059495518562918375319479114436545147428820437589970409436938920962158655450871336001710428859218110573097113581070705229583697456999933156227249786960144709565094133955384937225480271483532915068924066772995277466404269910529996050122929798716254923053096783293459676981555299279293536211881559912585567667720357696571681840224347145981624956316533316571268058741526589413214284558400208871831677309892846614170408632941898995733600946853483572064318722331543756017852208271508937235080983412751531315549468768687696202928273075171317485804800111285751205476150768378551041693711530240924017970753118524333464630674307788262778226129754353835802021977345816528968212711562239272754569272521337788488903949316895971099725332782048914465712383236940130701955484354043382165870500372516164253552731311600097604380715814224222591788349217074211850616748993328711439269258014220380606239971666331846381444505890142260282225253253450986893095662030825367045160931168554654243218667875060268696554224910788090385144689424466257324006171303306081980427200661077845121833717064896677826479197310722678023643601908866561806824991091550834253044320537093601542311074587249131319452329344747698554415715345377526060004712519939204035717376939053265634554439238586393678086845118889986417669321798140881047646039605034341355196379604895877518884319207261518556404694906186998314808672552138471685357098842088729623895188773926821331478301557605950684666219134327573234856502829882432577853449756967771775438490538291792385939668616988403943122134610332070500806984866684285958460350166712041868195118593415109428723530144936349619042914568932430821210814696747063421817790764974365508811743431097982383404820743083206558589812366116622239115667982026910923931634687685623265098847535236825718083125465157363199455806666091760712066645517505405696847404709616529896953688146417640787310246474423973122855467268711652991483784013567069016166129092278166885150864379390477679660552712253507118033636125810814586800711195462985006146739119260295881843931732754151297717183949165465002719403831580970907992667948458665837848751322460219882137364685118270290107983603866612641914005270636266426839994828901764136307619706504841335254608433610380798351693336302593701505245259534841133337676836520570478418635444744538939715728702429910195355536843113301191934778456271078537462937546134919159661064729087169809575805753200338565943532188887281360935456409686855491577443674335648436491775446802816884872634320777676377651008644997114889473552679911005698111886074045047084306200919254076557847842101158357186539448560433429588929397917528571149300551012993138117363889583295924160892683828428261244001585613077377272399536066522902069884872630592325383056549384344405648169510419648995621787699374035345578677902679586537395680742036739804778786518131438884178727473325982741255563643344632163255088173983679493035735664528663992685255356086292560731560424502195766489448689748015562998119751358925534127845470038535561250651295716232031172017912754521683649745090413951460282711152277481572341380346700725412216203036196929650526216791327390315328176476897172425820415074845735445225883529532460572082044358018127019781295193633848013660835399707530258694513416020191556476085868529938366357917221019171760017565734073605091093488291143846728406604659402684806052866294773858097370290300674737349013076239759002473713542168884798320143457090130910479042202651554839372260542090553950263844693657285080977681504835895703624476019355237708422272735957398781780580270271836539554882521453111685324491452648676682042079154805038172896974041790471957442897187939244612937243662299966902789113047717427744270259647246208135326090015917206755239568327799979310070633272963861856437073622007795131958929947357925412893742910766357147243118250383906191095028936100998212889068001861910662521754669044630563534176710160670038813758744424628427194431476398107795025457800010624354143641133118894688966423923357783179927099259656807317029951668851545424615298657700182305284851091262520791554049526086494093443579186929516839256963893610909728940193769396889489622678146838193436484887712882696687866797264498591384328085294124892665597851174906649127858341923040206463439298737050114493603005122018869655632449771370978662808392004246255517877474452986005029680491619033753798643896653592896960007616971406484958577013792877589706267885646319618406402942625142791977541419237912231962922110833945536710198023142232269026842801735177912171231430423645290255143868862607727846082111280152609666137198974334201092311194695627757813747006443014031732227466485984129133857022541629599241555719264378700096356620676528198969303076431653656190383125293107363353948768804234782850677428897694822797043563146663491537881153536882017819634375832209685051701641115432634557218240831177908111493955411584385308568727409551911525762420139215973468862068498083406384815921969716070107004808446141787655910502965045351764370951970901812667836346824088910809548699105549784942155909003497263184306536068179007168117239520189836459611790780846525622413791513290525893233038569090536503071107714017534183787219590073918075914517247337947166071886055393260800263183131904164599872852777037053989785509761681617100613816121941973695565967671375102078879303783741685743254942593182402033756158834292541628276009777593967030520770961419548499186333601518811105141395675312251383145627029977714628868040281705471498531551276555583610175178217728136453315866296909959434094632563831718650976928682917889180775584611468979343342475897138669948160857404066407432452889277112543160245343432309534265654256644164402881936050506048469835879957627837149251897022930880492123903465457441924291772126324507409381760472746228519583750226010378140073633711145184893275153180702027886805304564804114349135550490702785090375228169838606189884349455172208003515062028899075040532803027982741362282017223011833439356003997318209486421638227996258350577508589976645110700815172792433795872066262602979969716551584884885328733998170061527189384549838107358702196890591418242927039962059254428384045246417546031320565631804004185856795680030586663975755950962615448484779261763663395645858811108276202039196186650476497946220460323271920604221865418321945369387422457487398261491553036142865193931065318351901358936820660525390687581792687047823341294110185502302167214527054921183153073093954607963236146055984876059217362757127160601692140087476069190432720255377866015147447951884580007190419666569284184240026818102208103507780958196303997599183885065876571950611427468940390904287752495148630162826931089593203824461350922555731341111576706907207944517876359010513021020558060999132576849664227483472816459186921460234107512451543962197656144800603769667037305063641281172168458786035352728497054581549590543494087208583588346913680137992561426794223667361591558456699346362602628207178051700196042227615150205380508233319221887388379012414585542712731737764812045835317337745735952249707243565604652444737116234733712782745273973549283260066914626692419250928182405699256968663351982844359497333463296194689388150910634115716334879927055103239572258920280556537742747238174619075454960500724338546622655253116331495356048059865275589206110289526247043387978044997812490062808149680375873156119582893000195231378063237821545632755974554454762150959470923590802416964830353643908091133385646676043376233708470486376322170158940535320115241855949143075556412140138529865590923409133898688940939134924457902581164983238073496536562638716153791266053846748202369783788802857118298094736826509050164818935493898231650448527772728083939810086254151117409973470469106310807547932723061150609544280130931714179455300711096921569792668540217756639062339258829045064765041213427763738867578492381802614846616582552384615906643730923520445845623724240748592529801047647423527534146505689759613070574558509113921220597493850600290985189484455658110324721188452534552953604782820779710053977223135541480551060775542308960692134804917128586890043806871529314901418742169868583975346001752671278324663169009227232947949718521160100716315252571853183588689471020655869994144758220056488656106379319253199263705558596007181142931882411599019872929640957863929830744513405927910591148519549243033124619482308053112438032934975332283011182935136683032504731801649548228560874899356489012500510647587740135073633610507499297620076442541135781508603895665166545509661180504018497491171944198093130842295190661931958807775306414385741107693574669156231074403039251457848565237062419489860180045766846457453821522306206117327293516482275108671257320714474412630673081889446683903745263277440999351513691319616620602108509308443683080890884030779517116221863198165828558119153831467048235941730879185210480538469375090814957742855909777185336211908010804010357562695070364255724838814790856113696578649813669234539928290252691884628678585407355159207263661615998342215742914503239564908323410140950357988834012290704425181294802719634564084071115502045529546002042579000597815870398515300338870958271003414893301379612141920573801324210725598103069368932445480102779789564414285075825155806223359256069635658875050906541364440037612656984857783189984453062283718781328239407322941240156305091790793770360183800380970842629350896363980307556961748647656681075834618930461101713731800121171498091223861059928095679108188596008123464389259878977886534911551746842633015988061457420710706625566501028947232149983518487654791548771874967866288273222816017456055261601060865533427503584085936514953201461940464496603553079995334913012965472349995785568035009753801728737896861095211011596701983497282133714815138306725148585874912227373682522499154668921258731743443304731130630015279897199749003796981484542189649082997811684713942861269592751846375148110965216961449806695395588485417261845551824966577238579327139299315348683583973157823083088453684248874881429507330950802876885753091932640734897329212856346681569615007715859929677806739425304298323907174702431086409481798598129590633844252761617810186650407607232327909418361922697673621858766590192846211673021295684661510543568798691552004203960240714435941751258710984431536532043614084572666937448277931379812806581112469729090828164491489083623800667815672468400658224724199539181574366170425447351142489747404629053132240760190348571495958725303818514305057268424065732382263767496545530805705772718923381870778736491602186750023067334432814993192442553942834535076214883738188642091295884502683535496239859263657082333568656887906875330467809969671692851079310270250227328381250450463791983880829219163585193812337784962803159804200027907659145167283887585597930525651426707607476543404762870441723701890531501054776094045487241736771178543738137663891197797727461146433819681058725238520748660284682464992858363460323113239003645496693783837540433020761890616545035095239634653719045924534984903843902045042548031382063340020492613251337276179307806541378581440963013060724086297820571030391777605239164106562496346502670273250635913369842629076518632547397702052598329429313981614383583498474006980842202423115863814259084577710006180987147476609014519625418662491882105912117809775865552349740978526040598985851981265577033896114782183519543766355945211631803423246100395765683809318815988397807848898326816111277022640402828518334939620072607147936570744520477992372354866732027945277888397069125583879720618098935857846796973879883913996461583640672184690972967324685794029695542891565440976859017567128824327616866725254119421041093762499780016950742540587829466325901784795655658825198806228258335977422718094329346054037726406290943352148041425000805628993073181792317626692505617600861910785239331438259829799989158393494130409018996305748468610903021050448267021125846073594057627957128857600752272790266731513103033462577457901397742117064057398999516640266873836020419110926714814774690365499951000719308025381546848374885248667334940057131381668251939306817598176550712760251608465623675877055170862877783435756062481809317101783659618807445107604727262120613808146578050981908441182587028655325866251065641697198539051624185739979295362862633469182474067917130819681254483151318363339240487234952023526992475015891586541259649162767224817441239720219705247912983187883555674087879113267207259672579346222833262088144037763724103002656325349510537009501645425341959090002807827308534682052814684391851216345906481980869894536223670278735212086804443540486886948870598758710434028751528673406187795734714871324894351956797983564967946553099781388116347622061812715662342845225499215310326840173620526527237381655415384244994391159609331033684119768176575490005731265287216963588683559533119083879277103587194376802101869790921414839627252230709772573851222199531891748561092769560922156444523781887660286328739521982577070049671256726279130280538509053957377417163303149395093566430694367423494698799426843578818218964197817173504080364120564722035946472838996438822927142335937857351611396311559574659395439287376956339324433796741963485781048621976323177075216675808471961252957408463634028440037746696601200195873704094778971325242128803798370673804326969300756584667843332092584342317658338732659132717285255965985960191189297910259496381209402163792121166280432772213987321673802880782149128208361955667566995495629564684781539039614399261490985457693318081198409037609079709166436029359638151759618546594664215604629437763362262479291044102355929633053489905253227757352346359531447700393468840005365109066351729428692274444728441018920767131886212221079310345592228127589769892362953266980310548434592936061761718501657892028677960468595780725405586945921615366725484910966972676022288852973984672229233335185102029441925209556278798031670404194223323191977215201680255098559584679438832285266904168646811361666211534682557509601205919518565258896880665768196929148110307128173980027015348675430973706234908673424801553106469206413344605140375171007123032661923727026899216600925086078994531351992960992728394857283821968690625631077619013745644835615282498289164791370198713156449362377614759608694001464817123319772403969623799991477253669610908933215255289957375765875954462829650757564983575417217747227932699896107794215685728899321252102959407268880297223794074318894343223723957146264008567478429546508505615816533612533315109466107384580260150729385635023506589780104747524539636223946555645387250773156980713717446732250042364640312927584697293504280263409657095185830042116660106935677596390445580855693471476345901009324095943400331336936722564750046231580267598005693677433874668570755318760272626111797994010487721383275794277165746673255324556598084212683342657102567025484347154756275856897160039327581587821483792238331619255747500699205281199281080657210961273798574583990893945466296213478876457288988054378078546003338256176461756156728802729121066923856485185826616578032055326336039212507936508878715518930785096701079627298520895548870729098866440873390611095206998664455687572792167970041943154063459241031157774401052759205499712464793815322782649723769964770039627013769689274265620003487953333656258387287022448740716999230633671889853098805213773815004653936819817457702800975285815256586644268035765871802653618942582924077266332149495689336044414494912647808472719418900385086349826147991799099602251005230964647686363619733698103388468823636585223686044839760126849814488224599493869028839283874175225734761264605595379572007619251020083849448977882363418200063151769136907554546236255806491646638289588416527716837572121930082952997137958560463059822926544195551480454663228382744212422575294667601411754907295907066365837308641750589205695086673279548059895412182334725823748246503941386091133800431293288469038418497359579538662868213016712979824340885061132690340473925134971608532280873888311016723467474661726009549379409750662576169501771529548608075171746118443535034171900566776610099350389708195104586755294089469522229426079938096072861013648616209241121777964001731465165096868371611995433700272866001620010827698085272787147516434426431616152591890180864176678161106205683587147662547921184962063205746976437945890585078717550230139223151194646772971476407190737632582700861384336148783851253304327873444535954725093430687322245409578765919660080596967821575051217321697775535969427281832818590506337883668298220139817486462665066864337244753232442820967430443678320421984956680229396484118793956472498823980480557138219799299596562891543931191481022621435394759124061949457794301119917608218322604979302303821950083135771954186337146572385199661637300729312730701976250424400030316479028270277240409749633688067356475503826558146364173730816898026886512377534608837331243958961217819997007555029300293788195882419677376373021554047288986815453601351170770935871339354068673853480052962496896646791342923905966519977092930415448101900186109762723806182607911369142647973106857742871549290084155632548661103321541233888095664065292547357096916359289578215753091880221297937063319040779467144133296540049390173463924627088164831882466293111421428720910321538189855724755611626741616015859589804196035109911608759556587319735093905500133716986808158015622836330749934061179530190768403300968916785849067336760879872325536752370071407375025231973934670185667063727371919790017474078625533181428795211896459702829094415672299600860748736921949814037315480840173274228369620817832942922249044022677130211054190118634028895504641117664295886500657477056515921717947178230820056528107263266020322548640156157066301226710026142153683785875785973114947565017340682887145659228747886279583039125659406694509849097601131777262438664616821800904046341544606673664190182769218941264626187182204699517484438320290476620946516789676316596710181915959413472587204911834338098790512918408571009872999661298806594740214358515354376073910905975728604180414366597289387044542388855158139474507646491149285516093070996900641185301797693969820921389583917141036584242880029443263294999260157702080049614988608359059999784280426683137219925949926504658230600225698206864262545025428896671911435681712805012082263269772536558354689789155960287991486567907228110512143020912405753325276964633206389317731880582598017716603751699567114366005455252258843893359182931208276088850821850671481621625637227024393663559855498887049396953022714197170310336874505960584818488604255623872964807773835417356999048549094801871183904624199131287982063890246259994056777143363026465983190671131045323591309444035692022081885085411485636711957747440206056041610791514687390291122998458132489129168647603604486206226786458678324187292627604459305347437866992842566398930887123270293666864759560724620414193037048677390889159203844286799360544729231241345030742544283220849439312745919422045585821194768877944850781238709579283205473033177756411656213962835055725747541696172115887106379312841347193822783774488908321080896375737969493478777939430470311213974473926955615100822768906958122057394681681506384122240578115384383401253270022950398334584327338111150391651056218644272839707879087572224810646566252981839882283050290571875592597291653421736346871585618014796978000399322886001064605760416513442521948670847601402625086017312381673067321523287671072935278459019238502262450577818853458078120261939613381888059861859490248046670301696679973999761577173139441688509903156435709443590448704385594086364692893837170158466839960986198400204268141745969774195678384912857098850337439423745205373554412062911303681005315489151946329000590480549107500994980685895092855999612687274670089473729658219508443976559142078109357972263925768114618076368245982708320097773481490026327805615945770611680230199764112265375711122370140477418098525797878064176451451448199910091980193344618222397748620991656583919664741775150929450863690263936171143114118681207257013028471821625995867693361472789169524437670174819319817800150795864759130475892139373943124905908246297823938699003118522363826211733025587353657562030291621119656859655541300503981696788815532314207659396557755508524783581536867229025701407244655465422585343317114871321240781541873420249977355178274982195854952617410653475063566636482285725879924270160697734677511395007561600826035826205166263241135279544298040495599013572081752836341864095861232023290302361982758343704327605544788721124832034641885333843083923577084835080255717863639829878437890183653583002900078288544047204831622771325583124147532735636921937245605009293708734192015979662009615092382843324778632526439891049188419848706564959019584640849141914067319937955686877364570272518387269406832982292205593214916229925739273129775987751647430172782002847524054038753047048958452980472034259304924510006604066033771521984249760048168789780274981010011844916690453710303130761856347477373352300510909817348918116749504209493059722774346238936280845854547966824871873927383513022694052333374574583742425718866228846406320702070053017308638272332705379842709781535473267948772776131125818679146120456523317291910013639457947614103650641379967505426326473207746906866920155044850361879162398293140508203690791582461065285360953783004390580624322057236766916821788642301975964473418348415197409947507914087291140096423400921688762910147451087741912910790791015669422536822992075694309954024828067371313538359853203317493291906542145139114193532790966505513018290063767703132763934531091258583188147386681504778328975192461518605240553249450444191341668855809472044591338037293536263031215840686034667033681179151330704111510366574376222886325927696829789795019925126540374694819501189798604472786527527214224338322195957817097698164022296944920236442793640345962789046761010539718599905448372770925021512172942832559634090164423526829778381404985290760487014959002933498418694118098593492294817751258223278687972029322996003451026453748282939568275506908394582863903321985524481666811582167234984157118711726676001592204969640513874218301013587661233193094557134837127534783392274712656567819632255711223648772288005993627754783771251217903185251512952665603587796050107111161836791105023691889354980465972444318820094887028214124350117968653301284888894289079498450523804200279412904987512251986380792893547173931115597289128044787350058141144805502551854847010547466788699783577727554608107053060002640405359586337901503892053170805830320339059081936334928641903819405618394451895588601973684875465949228388173445410389465429579837924341993789292801559060818910253766573625088154666938507211079269271511125373684935856060704775924208652249180615693676363044282560242238253627589845183818821188988823147858673358942741203032904380642328851970893898339394268347914734934190070181990478926629847310717587551134220815332012353468530213270642566831132920090827475417867526817647927654531546360734324902558011941017459436728346216666572351248673828387373778879408820442558827549896864156789754453288885817120097066669459592512117265734764468943362051366301510005069760314169737887215207902113973795027529214079240786684642458129790190912859590908864062255696885274533669706968435363883056665359976591383352196319932886580243426367686425194074001134079888719557324093500074171950974707268392387279223758109219106830337831718080656176284092633180711436347196996822940376171375602045277806715442975721792185124716997450238577249653731677757364331810443895992141748325864507759470352464262273602670959466630132229530863289369465091147452130037726357267325078303463205942741216290781552087657548615992523939268592827095509016613086949099319364316292951444137495666983982609171728390150222420967383639941876796566508544380373007783263061814082935492359222603770174611012676438076593681897818903048678022830034483437299498444722665696291074914829362355333997846704679036444017384163861727857248532638022591210733350468453201009489590118825566483931070490598375237112393234853160149972645861532454545517835311179379219167643774083393920821174760796416839165986697023080115493842362675587811448642629673825491580308824593065378999516333268980484797518705989190548228739777935201880790584352966057499382612908321767391928373465763106325107699051413721912126649640450816564549687807201449276174188320015188353727512876878023625721092120806722019293055772713840421624908909215512045718188250409047846001862017695045008358310435419597408820663583770913191037151374886672954667698587741166402656422009624917025196088597565161685646284602203272458978092845671253604862414370555548541245125899757540170121173737656272796663561291788527482047001854290184361347329022604916029913176085693662999464517536538084012300217697099352467305722813666884696049834228672440096522035827138584933466280621726156364086385664056841920054271672590235971335698964839977379611999709793719299339501619986447412646312786894519944599331661849046687803740603743840749637000451439215095933053418432097825869135600174778500290445209057711190515821735369808345421097336638991565161370832438531862182967807307068912081860734239114395062627578907515992692289029136110372461510574261828538628194109233230459346236675318903227145382343043279196780825605211601093295834846829276999091028574666761217794055290862636702485406110532249914087048901283338374009814135798901179551146698145377718443631842130090413249323119268728655058386656993378734362031316491662966536341600201284398819744888034317895499164755647296527072973897165339042600024926395916141678589993428074999710155220649780803169241565211059281482267566030740322630368185145580950967849638932698122650713421752900905371565721489641659850344904457303899666438954130117027454085086285643573481498020613030473730233757267389478256627905380357544313698523475516028059925853911120961311144182061004365482525987839734031043074031031129857877850137731217268553710051900564913243666744428716866295297978236823926031899731438088573075318103144906118234222408095830761596340857529497099767352889458936591158161964808497190603897997810912096358456215977508363350858802635226661440023191607419939323045202807740431760713717660782611142552210086670893775262181810630546337770351489826883314494484284029901099242168018878283010662173033210593881323146731837571513221620931948786450148331290719524101864429846186734990167784293146798484448014021793472770447642256748216013443246914485090540641888186316769462463775477143533733076219860016356116510439961638777124944280956440586004521850445272250037456164129122252608059808646874723655207888343394816288556538316935062911638814808015578261783749678118023836791135041817656070760563421618897929806051813167331710470478088035269516584224325041698829910677452357144692978811558449941152566292968585540196693678768760397442508439276900538322210588405836512460041280908419839871061630069457417919483502424953555654808857624728455679819602744420517839433663193442732463966156241156671663246757030682614049537954232998641567700695464212137623224349664519188383686885280024635536947035287655210618761914890874374077007055467360128392151049114707948515780201534066371288271102398739671254534272307487245420907600810228575753828441822213596757603345271969231555846819610480480937454004611893541997170701543370747092996167795015472045998855051723422701219916293135872087691687410581790876138275649458279867372509345945269801792694302839091568454944206214776885002348373503875289174356497361343228070083394211610950124271319727663700692246967892351558076142199219160372391871570368413228518603243266125734602060892898463248743228412894647390969045621590201300294121757803314766610509450082805493673701630899044760745616837313908128496580132967902136865005239568827603956686925761642686525968964044406803636559475040814690660223922212288273251179211103523065767382276315375370643815669454975780734348198125735235289678785119481573717129861439660949884944342824768307474436444055343389511633297214626733394289423306506486536520957325355886932840228253938663604950935121566984947407498113979094564976844515675534011206396818868120825994212752073503043372170181191456293552080724032521100475264867336516424981507537874206899751006401085991803734965472851242968107630298908505545544163244397615169027871827895730691748232627443941329491799801690869310875007123295560295381249099263872714017897216704496690237885125125841573630296509894915989763303707220633411501954289038185720897798340539402875568602002037025356711802486121513621479467546741513352076873497997658622172334760771172330724288746549295079831867222186479042727036081984510448745469731740279149687319364843730622643067841490117220225738902075786336299574742342391554506536866375110606717505839591744763893731888388423151177957972784823185561900932248872668618380608597847209368947969979079143020646768378461538559524453957712042794179290549014460406508428324298704480112748609259016147228616497157559001887303559117992882441238578390438104746544898433322547045667633379611013239770136751332453278064778074851143090439722404408638634958561363343457209556243316361164961821309361101518011028829969645124579784856654125667954418441863823239688349559992214297194120032001362647606652018526566742313634826130778029765263235220439781073751558754564483220526977743491989016039628366444036158631256463309724828788513958203972534118370413962268252078126489776409942668773144051442827456435078690212239375315400490113568943659128942897456439896852044788625315969056117859671389674209999685780852644840142815481732550499925215303716019919246325227482337621777398600598896511425715343436869777588261550463868126156992740108416850462894272599428372411705260576159821907974330422590503542376392009367856443853404739453203073624346189721255555508057042515751422616763189647977386903775135338308614607728994722853676468129413736251854513567023205776467192266915709872469737213337893737765268176295356162685837064807028616200920108174262429466166105478135417167826589088058245300080231446551407608576668600929035015445733334325787432860468144216813409780126663137567866520043078868923931088297016978429308591392167144114927720787636273035221048504934524912107098841815342754687594126113139033348475996630200972448215901565819147094954017159369825094078500355419365715040166028839224497269795489118331357777298845035456293576378550738591981109045280244906871523800338910284771390097415113586209988746774286918736896691317977506395611810038033056527321465300694768380260763666202952928614826488339505830181125917892847835850041570947053882552242235180618534685604369051393041696702283418769005813576986763780426383961121124219792253021411100028444865994950138568566762764395562666852363289842907125228965583713791980859229107385957864186118961515110697784795777417801096860101153852211212819225753889795485969579891583487142183449139365966566142126958254370705352970372804633943967176817329791658183880924302401157061293354709020162417609156016952060719698571890188476523490180340687441638481436406684975913766796357392037665098602424431167479683610695134894895535990122146051844606951254669428178915235646055636837256982147560745486033040714658466636146295114268949114705857959283148630266080571219913034483874765490196457605671775895431754777421369610976826023070866222674078149006468800364109591923632518146597719944567828181967337613605633419889926922620442434606916024217048358907286959857065035296418903859499495742919989201824331498096392851544256617068298403156356872813933331410362068631770350439185188129847137691086384701202058642561826126804786552297980491821273200192761192557212241130174978170211617463603405622349027793178738143165489349403472806152762304944654172280239338279599881860533817123538008257530888693727140315645177796786947728601297210210821662008382671669693501151978513713740538270560613182812551942844929629277960904147136590877504456490438000368941522030853861094533631835692951689627569619047284948135501459062531323254636310685169399789910437154974714320770812095338036075221672987672942611809792416224154767259854027749554190164147374924167067502987683962080522411781839497426061610869422858332562445762258296032051840835805549085296507984332502708310196523576022563437978582317107379343214976566136577249732403724920476359466212029632232044161299613909323575703274237866233961596458108222332124505257629711966344075372907664418787828374977370609664626130479172523391122003056836147101240963731825899148310168332353933480440484796207903335714655328375445358686023274919473279488861273307270927252871246588619564257114982062267824706245258983907197169815968997622202028517519588558471587840851002189920393830869496392287162739909744334154509176611061663395568051361022121490909153868114514532981670242853162437912217939619996112420267248920205248400617863411059943976254695352507390562773376572110966770832113732462506502216182302073741099320621740439860201132306497005005565212477803614663586711146745150000907515016564836269244400406191092677603552991310070080051489248827337291880376956450979671075710481160809771043987972453611372667821610339294767658743212645929686915158374790925317725154898306736671957794630409779776772062405348179451111958446982113152487816827179486589620689169307186588113877538333204777878444267354130728973607226765438080639111062930756763593159054108263191008745816870000651699590898151504565183623749243775351773965181974907701783255760911594218918479109757724325824535034919642031642697534061843800162659142720332967196395076981393779881285601006425031151569894242645122082616529412863444879418779610694764874851292986957309267379141075105198274021598686287593414771007946465865634148558922940981292642133717694336671418650303640131041780680457141404799366183368417911090642687594710643519389165256953691373444113907395461817404571228428335430904489324938187725049206243949273460669521666024336511094103197999874309135904736795306364811851998197017913031509774887493550987377233864265795447159893922398143755602605989804844122940833445407767816664062347877253785630641571607100935066082245508014573276215863981340534594583314577595971113676654307870345808724810283177751478548496132715394966155178020180187479800325997293826856023195772162163251583166480143035514740854671616611110926266803407280240597353487861159560628301875048575188145175132483225286401795302314218208009236660117598207826257145767773138279730544633914088533092297810642597854383183632133223450901725437096411553584456690113082659538808104957263855860884737180160820336547529957768580017218003732646512067658339981625484158589309203221670717663877150260710754516019190805740146910052973095149340016052289448700751113539437614387269078966879649367341512514394297065708077109012094888549401331669636859336488840990186522969326263907093440198717134628983367935614485511117858181291349661530559646435920824880142663362393679904680617969294759329114208318751188114446813049432679555223748734868666481083350626272714544847187916439450127250875026742127350311893896642660934667902418439051929163418544389865326754276572527723334697339321251514232537864940572326477688853601596349807105941197814538769513113240233424586867889572335223704724844760178498064527661318753857309906441705234293196268171630809325573879040440528567429124428692035779383321853291228571971713908528570650719639707414419112081795836196976020948680254014124925785221997973387998243920155906978828864035270371482694814289190158906359239146248771542543129900037332183316493665216397970548943837498031846319845307795264283775464753346220488346640441288584004593544914102069220718435503840424677741132595003915790206264218108563485606332364660169922531095197374907220527505214538220319967968290069171728456987846628066061728298544712682106960402545099210031172119076814207324874304711546745806196898072509643635524572035937675991758464333252799541320390299178362187296161535469376356403372517418467154497314962012876506129857601567235299722650647431077869874409412355392780150519695770221740543317434225629454793031682915457407998090629800420572981387364503805078329285675222426084302824017620342454388299387287232766160539923522225568810277764996100008395655800984795417688922420641182132841015720302480364055492533640172693235998100550898992853767884918854051291321875272736921045581822755768620028428006668886267256654527220919550226489699622491198590744150736898079284840888930609710122791710672492540100700278868226620915201078584770380126058763668021931966354906304217949663269936649099879362542235954091051976739193820127167683928896638619693369294648246289036277889735415978847745827175883815985551567380860219166780749143636250357554802036071582157374315533398426650359228978794195666047532900490035497169111669375713977977656667543498478156216739847494757841641738984975132194327171564346061844534735006900755793156920172435086471019016407689016062230098748637958697223502358462476139272159251977020471958498309471735504633086073031739813759726957633577548616340511138912551889633773542033857069021518768247054542191231275170811488477543339809709073985576390271822844507567095424469449952927950776925336390863831047279582281884361510708550802084681484025765547642712965691054515504854398457646484543463472649432755766928183407644906788014585224433841014900568397653187602233168591902494262160548605172058443996493116501934801295570940258108998348180911954010900926848497431927802007308826882309307375960922540838890893118001138517690691893722218590682664256549112597425396555912948719253829222924330646921708081659230274310497422186833037391035700210305500325782217511758636223294078205235382913178024483865938425860191031154876851133722384226572594169296596076759931395083947961900441528868241308431647808491565033665062042539523591191867358309376619345611265154261405922709853573532552886276196633171855619474153519030158323869267798152614442192994327426572632765855256622856146276778815863648475699866061753381320761986177605978637878230442801885862536716357376060359084318227980692491376255254098341487951859180023350829963458205217225046739154332940236228196204752483783227519583390861006651361963635786908214212799683338864576247675154759908462775574884849568593504618886016257669885783346334472061330428783683921985117202407012108877027325829498975666682661248854841359785590082865769060837342944135836634043652556600275013858013042192757018048171172772119233396415123941327411391383031637572937930348647255962601709456626930164378871496088582561703472624656772390780204914701593566784204666078249121470630838651669636192590015232565290839579911525010233936642577105360111073470450887761154673763787376729308077582402084752652900673636208371773889347959125954377590345096069961460058932432473787033236835680384590463269220512462422027871512863372377603473213480195384167867425172888480690972379383969850173515063761094357318963456901083865850101241470284024598432801930794709276168668081327048685516747538969233170565887265132101705183390188288572713922343204888536548540100516376079929345856073320395153485655468922467864294100167180208460877027758153447130721122384711399919026907926646580948830585975502363556425839587029585219287074303875203284550498172330815459322237320460238129361466765730521055178558298734326285653854960992716309680082599508878229716905555257297862757902793126373529660591787836540550103743200277366503817253728750926729517641326812289632701882544970282533520568613276208122198491165362709553050150219098498599212512124158331137891003516898111600887350152182567425289579613848676836515368870691746757924352338567390416264598246702275513234013270958004778873365530299672430517387315271919395693566042635393906851133465939373462566714628964608006201569930447773723719419692787187330450024330308795524361463833342111795167664735082903212527204887007682822917592848013850272937258399260009884339584329008057414835909401279133946541362410571028055053216943805573770670933658573897782527958074449996322664867073909112848060590831059066788109886404778887215666505999921083032890089763384976621685027071733989926193753661070411793567515455209918619660370059742158658112889038372982181293889291227111157181048677862544982977093203069360462752497820688449325029915388929379924694875939769011047806147694183000382655079061175707058073869586339720877780342661625904507863554262316869566587968272283042368480369005805455640890647846516286023211932159508318579918675288872044426806006080935677223748290438094496751151867555343352343564595382309461594936792832539453123919343454067519259980506287816327721199970144386201182352000643490726419502930931954818731091303272355611434919563247424276754364642788270624423178121289262538956120375973799105688128911725620992982699520713327406939155150468559109642256496052024263854907469860868376809558207144071953363924015215082791769373264923958167506276761737638052103204609992083914569799615539332632319728921442862284628472083086216922935342907864242202610964238088612839379819222214013302755587777992657562857476900757258948779279060791994892458839235522783028588534115262163872370833685733845995647951978794258963331996380677770299044790971825609777223003991954772796251259959181177296238358791286968212814804305384892716316615422663511968658667924324934355294129909711232395907672090744814178950546745668614900619305722393630188023700769657386933997115074216778455123372233080023386228798904571508755073341919157327583364560134826357837699734640629100077015654524184543697291013378942461028555866738053399102541153126299541952326183267290237154791401990731231205426246953696376067539479425184805213358669886194558451382489325449968575475911620484142616478914782796211998120211747672941167308991501920081289386414650952742447955366029862803400059736954628319732399751961349471393634686989892195139700168514180644299679865183467514989401511449668600482710313261231107333684390810174775407937000322749662621785734901817415583796007030404119742582884583653766991475161899193530765402756292976583320845966961199836698997206115906176910298134107234820110196215556797879963593488504573648193123193004095424279012981882521147534932928262551468733883128075722023156723614734337137868212441404984038002170971538778234346960509771084032346566206980924290746560617292111493100548862306163622055472686012137393807461433076698965183930138917802202485155321759985858612763623391793332458622248765832410352073132936765288518776234083057555568735341863128365101416916148543966525093298495175612976405583786232960229078824627614954731576737403794872875349160205984803383820050168213803123952870282108634001096046023847733029376764027447078060293887055338296321738814028211380567366191631960451879053137603023880474438314833024215622800408232304509997659711396168854145825321054035056209533899477697323881344274414121706938099019804389119435089753010073831134090051875391850052865221867363277315450001590620732997051225812860255259319751782229646050033490893512839522193656688340457192845256139221209726326540665301754763455415139333455364765829208470709235231223627258939524912468168352007595759779227530694039643196079908204609285286580742837279190302202875094071243035021419081104078798635791375945256828870290849042131814894514283253956100445595317077399614030452967449920217386312430173079538914714376131109205790364894814772322400154326980857201215023632350887672993601219051261259444815821847470945412673928883229842442814033607887263303067439710082454586013468121391512826718829832351781659963254147724821952213207860813794739066632510773380373017945065116674098165041889944433502417791943467232886710690212492515551494878053435318650620644349464135120980754899122870002112671899836679859147131572836625069208495970613331489871145700183468179286357677823992806434637227915647362683584667610809892812731743353300339371592665655526034486836342516232876299442813541214613771792275017938152649979406130841840100400664572245994063214959123464056325146708296234283422805003139482023777894604422766738235520598599757074878412792396507591041096670538133398464788671474636994903108873533436697143943247776230970484852372589854526082901950721774279978012988781950449306469481754053889278670248174489162684540038097506234595947488051078369761546588273771725492276409624358554919175620378280523861762727467325915880343236209006338829237429429114764712042542406666697880833176558781450039412293356828867734330137861476830553230815791663399430684075439374525832601013138226890485185597174597284461530815157701523124961468550131745238707752622941930294934973962816931875737241292930772970614195694585729466710641807278548665976605310072808904299254851328685658654129540866981230206653669653516521727929924787114701071171863921711310400625785079218083605708590551356796919091660625876099077432703910395603839624728164410209866079740804593390942902399438657032536924603669721792109918189092536791845513009498927421690856279191201525681661113432412832087997996698035834438134227027699490484248183820664835224845088095849695524808245008592811928313213373375073307786541028487789245332858521028447575726668200952010389915226875789980130235528101817601640998380447156112622573217141802828292483303809320898797610468384516931061226531020265822038686856323724665120684917571314975981614908126110966777370458086212162323230306144333852200045490431328297683296511319728665440351159627654564431047458421247411611975231050631856498461239551155079899299374084958529355579187964241620767185977233929909444372136273245557831959471715323720699045465249897193394497554957297935231111218388565813314310182342845749321456807866925368235927291971781956862127562129570832762685475101368488862741950812010461670432831461434554323007112162524274750851636808001302307987834805883783472243161490189892665561565373889802696436865480205766634891537854379648780581043138760537316922876913000749485289908590585470648702980922762230703276611886359970026983804862055314938787967051681428401575599223453015420350663800548726621880455499279899905382618716975870114561619410764170603504472836295495452410599966961882723499875926726838551790014616105109205864381478671030505592529076966786585518103528395406706837552935998328042386556499245537350247353270250386513153688297317749997760878978513371891407983523333923011628758328298933885711175686213045549731685542817408727963808781788872047972289271051461818049619928449833719832174877227343372966495145862730528427875242415139655762418466525945841842171158582649966462644762804781850990442912081539301653601534358410882243778380715709328039008062613765086419708733865784604910838754887986997658054010448475218048529258818463098768001723184152247654500113796018129304201944988740512282784108516984801626888096290403283508174941904013961695815544970591219851665434002832527808266660555658778256910147740014052269448487652434492348756933516499321634667997481980891258365032540283474330982617051128395203458183102584502306714017664387093016873505869383503470154110692628073968307270344107749809463706605927294871882640892435888808734139556137827621427434780758191090234434220437466483087343329400600601689675936723748361672410930821859002133462950120014123926359532247831616689979349166452432640361689196275976743640632064496795570914303125310083675232209720673200859135574085016471445081974844859188886432400498040594705310178697173351347926622854143149489279659846522867316346104510036204146606398032163052303938155239179918727527639283787194030529071174655366838888893684141085385313561100334204554229511424087309515502276261878192915440375277007181310980127352916664901845834927251341026742745052386530128780581610422866348239680977888242573760418695121595075862409635404825401423085768182097370621380230741709434768610323017780976002623009354071309705152660306266680842083106412626583376941114963029657235195478692544604532618014017713977008201639859035629054903867887903161066127888172167176184686738952196054142300422612924696248084968145454550317630349830603892089107142214146441417067061761677188307143505438964376070316868800789786347533495374491872232528582639159685145534558545029678405687809701286006506641897265039345702114197849981553576720686932609684747862919749310297423865651234725182742875568507889483034670107299175911772776334647037846959166421789463953098710247426935817319262516869475963254029804777822103716452787597955411779733882285376032918053221779389653878321625140299573383084197278521775633808372593716661295988145690539027262447364413201843509998139121629338181662861669154503885185890300021355799152301853693345185569432550153928762420524479983277099742825065105094927736418013667220586486896891925058536036241883393165600865104393648374109143415525076787387998624136579957062772490355755616712619520961979652870974339173098853761424387330896160159578716017075136092068466320875151977132581111310799697585557305264898269954334828907928681348691599263126114591190461407135743489702876999605381059745929666325667641706004907109398775022251226767499007142597479829569949357656154163642512760348707251197119096886834897108995992992676040049545678777702819476056245532362183396735241583247843951225770308780762833882997754615461645959933136023683361967174847747956841771541747933456927999680159376309474245785424625497769926292693716543763218772839913300865417894336428586960604097932172430802484839832041115981400297537968528198962716315067128445396350876628028005260465528972727512219431957415215544326757758332134165991670688455777158933795102276528613785599702859639420649105906368391238824810183966485568975942363202906961093044486872677266391748232782360334271587752886965994272061316520055343699873217696541208877730906463978148958304870649098496207801893839660684843808176870642127668011783461679226194461703403809237055231501578017092638832727713473943647998172145463597287720422084755243053154376011497340089279069708104490127626297744994259007846279847534489869331559362328784787353145563612242006111321762836975011211333208307002728705742155433448340239549301329299393890002424844951945431251605899274407345358144873069152670943841238366958116373652640423783238638288467963730135815849212729696630533865282083935885051894678356733780540670793888770946485062469832586066719290196964053887095961947113839575474001954949997991280658889125316060673672843088775833730551836177788837371324957043273164963574217994756589605476601784842661839101113522304461650661986218576380299906560593960800722406658089914558399587205207869545602639899404778129103457186453585422523934434216060047456885127422296512231731502208171051311566106798533532688040460549654999289127002292276374566686628058556430504683836568905315015887739848810907636822327231942631016121114509288259437378696968760329244717267760723717422701004007437460722003148349726756864406021702675490495744063018983932613905457868190215514190408230603036549844283380698982025531888845632311940316833790504871178189457482166971067713251277645168584975107296193349575944265409090510950375261675444552611364031181328822241698773573267445412234372324397558702046174939425279791536929905095294816750811408949702620398969870602108654465478402134648697704152097993933400985513152030374538296640450633051526419127827039656068679998635011028626902553439538751140775761439848174935167815540219238042639674263350712537227276999660645863708927383395945937871331093891133109875956874415410947810646188904316926506340927809808459114684680323833336975630359024032569046246785752620702124035472190771555979091136115026517514532905981934147800827447707140254727426929025560458243148778917015109996313580249206342196588177678811376854704095272876745594525882382993696416467232244693588500788074065417527544475446071372916433309766564599366467741637720208256295636968523103146389756440974202381235925794916887299790666739161764693627462744624651857518391255142556566158005584654303099422494800434248571688123346956181673539009019667972158207480812237007721099584088370158796537274950085816072114791485532404166754168137587486993001910680006347217512291236049045078884563026502306405112790513079495428977793712421684203625679130988016549928374886934395589656083735719711570031642889624740954442675817240362577141179040849364176010811985615742421289264761230554298478939841905148665310661770986050154003702505178908957419953427188528016220080136076067835606970241417166580962216769206257574779624485126919451257585350831934557407265590674428888515214125496804989652731091446610708951631524336697671640156937845963997951110527593449999495964619032018949395807087140371087522943875738902305651544989591099430569405535474268726553874924268629663643144934613675122184153418179871233726781638371254679680139130089353072455582843830213887101202448237288237001306205881274917953063309939340510549622045409984928899250488933498270042547346899236538450491747946216838134639233885805117089392250418651312637258115040703748894656422938462321254178488035293766415394892388193662534054326703852942351092763665987736169528149873431811387036813018081453820995773579550353211107241129178702023969392483484202046313786624427603260401911778584426186162674160310722446362493704054857204502749720945589237037107124080860157637767240527198115236253821711840808114842633490006682466737948854598674384381382375395887425029167154013857024173884237632437691844234144746279382363450970466732274382986605948381199790925182753526424183062057551586209503465484542636909808961572511807485375412820653358178316453299598961421766722410102299600174032800730068643572545248923257080565739520323716593044843793851225740556269009821175711265481367010255828471893572982315976080553121000069453210844049231518924495372448759678425149554214739381180257685146031361936475520806505873964372175693750175274099906614687336553610744827596833250154277093746457122842021676073824820371876852112681060177818921678366335909633329062940675319178846439472634591997900132552838921103001170256438630647187286569112464753725991763907013220536016465095545886073953280021753205228557660125452558693554068623454802015197935966202465502211944394233512633743802174399803903355695498794936093484385348448583509698416395370282948845160679714755616687512148281756746348610143348991552006773424671655451843994805731802100305246956282927796713177533511176596568573146867757282612808241948275473025153643987022111619394860653686175649377052079962129166774954602927397407379361908977831631817166068699690349595701156175212737394374057156738755274180336177180683361378855367139803766901954310495757922634509276187612528136660893822293542377254526698951080941603923682844866641532930149782065165717700974220581609435522125774267331278209292793507845685606523727051593837124764829034221383981100418263537815666367169093975470443404492414283451636507682880783499375324671405949484931519400949942210873617689007303896913443576402851772681202329863357171964316342062243611806608127539833767141382394410905005374949411407960678683905703889958403144827557384816713701027909426171857074865507098037692933238986726212266267225888553572695873732354737064237985729780727600775993617375786510628953765741241788142156803809142125172597576347659525935549049382330124889282960386161808535190954393947235233695338179245233671525224033304713272748604245860847207138553642280308456880196811051335091653143413162427027575567478890729158301677798738399608912852668300956058919526962505605700127226413149677138208467377086294218670992094084447670897639706079290948199248775458390479841268911272937709630128179503947794985947031872952861902013897690850539024895319860027230650064367339564399414240249326194746507066045836719609623592905696520895470088295762474965762645626910825665163167329477634310780048307861588275030133697484135572018579121149246890284088850522161006105772282771201557685936561776887481739044032792660197690233468953588667075258540209824617273826194971313545813852009069082508696179732528978329692107521432217443990440171155518630389792730796296349194911950673481071498050656924305839238395442522114731829210070148958400059065387868471860967086851281661253958942477869956464317769157804876255857632682565436087201131436223548048532553198894690059424113029343408286501225364726868389526793313321493811910237871098388826957962981750774679640830926590519845602458944501054906181615344652089658871752471498087402448278472194254478491898041018255161434700667155663849754524253555945490693813272466872531590553589953642946932573943710974888575698230530092865892186458230391395317456025978983884800524051346410680855649036615145606526887011623674242810433947683955122339762129182570662805985691344056836775451309679465791319322339874223889327617411241167678268116687129074809104173266678835952971258620886926075120992608963497631913783674256592241151256167472137813442138315999888788640252729033005926285429911432010131695020488950436220448484609742110773171073232543545516496866167618346140664336016472745398394619616391170767610450022209495384908258766258712857220136798110820194489371792958352793361497346948171211224031920024170336124315604711377072489442564783757865865238124194412407416532751717777519188245540067042060148057920688590161523635106709717945639030380570452753053882660792191586147934748049238171037789548350126985785007735754836719832087032955614325371724918049960417159773635773953163876967989606693712343934341784277211118507808082169138854917127088003263506046519453601457527780976777157460483848627738345285350817497103015844149447668611514499857671398169160942564654721597390601026527404092552592639945137246795400785338554967840799219116993967106244869273476263300198041609898392348732711646898673111790134051285981175974795248906858168476415887796372831685482776998437035960232055106951708174364238028422207053539963839397716487959991108727671687427375204491449498922608231494522471892058059014910736849656736238967976180729018133334024652998813051718482708244971663976046681386563187470830381188684297177941428101857139539853393693818730806052594496756288388449688207139008995765062847249674069383921200490813489344441217955460639426858913161103836451669550089304592347698685663138651442260462185454391636677994424713608274448842457723583120795884721111343262418396788591658749099109895177297947276449250811634970298429577285906767276359955298189908601788156170654118384430434193047568201293571837131304412587243012797243041000645196489524917194661018972122786553283931920324535515033244611229955622515054605164987331453411464626883247988031912227183401371204570845611676270642883880779788902126961839492010828561103937071887848377552658444132260106234992205854091642598655718881814802994718923446822737791330077899638956370077396221857254030748988719724895259670020869144848560624704835753719225700989381909042211491434972590373882028269586165130591189280882205666105264094792815959102793126368098404321259465749071614606519533239985507710470061230459411274916613725826566557426191918736883908757930925017460876361106886711577502383641986421217654952426384369544158723919547490534219865481960009077623504154730845854618930702366911409734299656879654754069653245707414221496389688801411350686384881867384503451181157284418920596986354874896767652901356466243278768045718238975819282508169422955572398011649391947393432732365309372843159133250827736460998084277472433435514447664779843071129421496086714522555491158272921367347736541548140364155480109343313806851232405193920487310461813631445178186503150266225078713576949675343657797094780785840057375518014825884152116189655031466555607461644809474599700359046337072146129047582094839263150507239526814920177361387489927125545114340451558541307194734983742600296248329108815983476323300461169087135915522734963691199078221891460645753303080118896367521266778727404406538898477696409036580691667457093376850221931452320038888434943180189785525460830822398275024112418411523195904297333483825191050483217875784388663522740713991853964460270364585638734749869156496261992376608671384796131384098299522581421186141385668311877128409625390715075203735581419459004836061716050349893685067354587027452339448674415854742765113882398825278467746004292188360947001475318964962170990981512905268846524217374982897192058969384637387380193931338087241551650594499382591468621276093482423153533908278262857034766625098672485463041961552040942455253728625716916294313336818504397538849383786300981352771631625523792183391975040550750411969839481347282876933209224180027086544419266444241359157821533658412695840695318491006218508227450180049977224577251289991133614078863924706921502552562119417379752428049296603893568811610198925314906072419120437930401618197929373353781085016510959186614413487136737742300312187140573087139100833545973577974132484199872042741808883357666581033863491365405798235200628455444816012042627566033994384209741046504981356229848687613756250240414287171599695866743296403778570168308983858666812867180003411870109315364612449120970535487803094575571014206048458408930518424743762626507262672766579470964524195905498421218416124031344831453826619702057105516782839706909615142072216579376585310749442366427483063652732165717110253462004469654062358218559718754132570514798072592123739130957880835535386057353724240817338233286514546009909771395211495942095222275702095288824312825766869973538188612538531042115288007270914437544842929925607295882229385826745801528660400744833593551521381779051949525822056860012748070256177607156745804699042413325297045954645979579184222797102783199557427467287686151096485124740865190538702100453147345418287237477072515323791374824642515077387202703792539084753683405137884620888069479682505280125215671717636355530316399934313737407768114913601307926688874349649549775178289796940654117467117591839975854096702764658957684324154564308573492864872943488392902264983917885395825597656143439127880702132775501548347066401882129219532255866711442089457045342777521738832073907255072111042740579338195303655409493688988962604113854156533459131068545288702049151384218026378200088060323785093501838184088042965704651136852569368677375426431609813603673987366175143334670497007657697067404289117288862672645543301459389709907854018323643980752718425123758621062787624371180624012837767324510885205472449444414206897985205906116306259822445613080556185045736053222693018468077604807104615940762916229852480661228367314597332224609061761974433372440313503348711034091343423367626745579638060851283013007466110177631944512255802412834909099691530309172372261053449525551627008078641638826910523141864737586209302022397737852917563010779724757343164346488332505221745021422953334608716057111514284295800587678797825102191549319262274170640727006243138832739296125832640281666798310103488858359807869321980989057123194432496027908636825150576357878174151600135291868019874604220633985601890118189165058220552128108659466381860337441511589805766256627320539581982305966114247280781969682885006034685067019720556855724526410630008567812135713834922551166173237850817226799854819366160679827610330580847042636106706718894624940011419851870812196319168019429333031154756510446401839186179968247437007782111885855541968753583992064863720908939689863818765312891257238102175364169888902151717999532795513091944515193739288165771477920839081310452557523908518557515031590282010853282595698939738736134301208882000922074272263317606317312241837063022750406156297123056769816686508020429978204126227125151921259864397856486871998593512254100988998321118327094354548599022560176302107019188150327966908623900648858312754657327720310925976983875972570135807380789895988530764824815699376406670167741688091704932305219244848168627600634132533104407847555697943717384523444201386506178785498266555588528450034264246467066681338585677864925407027772497350973559728633882516753555315859008151386951719650572576338069688459220025788530066042675252981211385984623284963650106051041027867298615548395572522022487075428776896351945937425314905941087710707336982092038173118956047985656230322704537525350280875168020565055436522142890796802396070270858402603326793253971280621094406468633215305722317295278310790267233780383934013933599847052794035249302444530038505920138699451369947515847265389116449765787200528742609747754434857851620431360685324781363158424616428174221681014736879944122733551441681411460526407080045229956693220870902960114915729903665781186545866323436088341477360179055290096935667629738404017525336603320885509185474882774237373496793236792690379921805879549896659431007350734945088996058541542157734914386932934034492961417318384804037770407613406433281165465134453942630676167770743264212648945181221346560778539157447626268327926953446784520135250814606114244216640383534259902892484823204010445256343535613491911084687667931481434105778598268095443157616147765834425477221357100048322238488123856103065541298241453664052332171350488416015611859896642648254736020584465301107693868631665036952284443237342226559116964070608826761801515779540804004925369141150680643545651254654436951672574712580392386447310533023715390154135262019850385001322613005725782257948073631335015178161175947840607519887274752215885101968587581315876231679428585843707655994278749436425018441615270316217708725149974341355932413776565451936399440898642850974412725163947515938248784129148644715695801640140058290862846171946601546454210201367776819605959115591011056707270599234939835031018153717344038720028790700052421529822696695173524821707298137639906289120642867206094052347360574515866656412208556978606087038672542432653608016063341108154781670083352924579187891351441065583133808141811628491535018014326345605637800230119261311795394119510851746231194464875203456026207703845171979956202115076208302486988062712213168173268317677817210693229572120158147251391821777010658332249230876283214772991282288514693032798919774168064855441628621365398523752616797611634597467512871438365759975632977084348103927539978993137755343593064472829208575348649197601935809134051875637900769193906902175390014052160315494116510967398043788514111514524155120064699705782616223106367906531978740456087961230408028797781909476360808742190167827258952813123759122737296840801189972570580248910805186004390134584478698636726395832209297540750720990961571863735751248177030730868923895135057356337024582147015468282770316867803135333738676574903512475993186111246970214252422487306561705544510681265812167785918317054871231620552682811554212466120175376137616745470844476524933263108552892431413338800253232283208239693996905938916720921561203385267595040129854429592060755000836469687511266114552304320191030937344988714919004264570298858134628562976864782326534038480919960844037292763857538645920851991694437487920675887545952056372710129715747283138072373156422123434767516644759192796953852560494333154923574251780850403510094445138397427816126579809067807856779084033047165241370201822781353442969241776281698475551921131312209762587420152934201007874307727343474008338379185472841122332341965472199816590447491870756705225850018902902460847550795507580960310041117846131737644025706043404030083310172523464094730534846351320092418989800793385153592107722050691245931775836329974057430614815963717583111660233269287846759030836040352716673988062791949600605280140035878196119828423451152072424561784078455088486852940401942036061422428070518140265013846572664008232853054233737604043247545677518204268592325002591916783589197020068461322043080638659696898661710878139035847516944768838856611000406893109008491582216800662751515374953431166153433706831231029997698034759167744308168452441678793782065483322478520147659903079961726469527790737402546991869370140544694589280342694912287066461701330880636321089642966015842565036358490853060569928258716118693271011265080616846262804553011652527846197238860583652880507135505300660976900827032812753352444272761251744708378359845426243052447910059388767111241045566692874511310890103330001332459962482441263243269165963920430720706213065961484588852982807980301350361084043437789639392672460460236782006075244227331715766952254041949252838821918856902868082848473024239537429378662803965074437027571046827455275104387899453550041037928638144490572701897870701702818171505429742148985361683254302936483036809271815556120385937577919701434537174776293941026033608962439422690258822804719911595445009595325097296305635432842174051175318218810249923853236563722157019341065951202455757730300889115638351219463291726098349361770663537491719959771694566428526780650764741829154180180809536980328362405830331070519674069493749734932533990989327217296345547644797549807849350568150004799686373720994943377924158117255754342411795168364377406428225940072422334991285960965970613573805362355714088392978899456502348166744289292078464434660421340114891227278056307940347697796147424763938900214975612709205339153844184064252751715810167241841859317516784107005927509114025019513183056055028317723943218992923929114384143235654808731372275634854257238727622243850640558087031800284590330420267075691743995635798026997843795964343577925296664095240076280684561138644455187973507894524176991991877618063475404472486898114917456927585920319546549398268824096685386546597870426966145334283199380051874939785602628702527614313532148775908701454080161277937287555948541395905719504698271468283929471829843509007592267758807584081435619161305696602644436500424191738719850306952288443256516330026824880954599628087938257471049767548448112976578137248002612251040537490782623431161841515154092609878410164247498322292240075371437332155998557615823220523722688751744005434369022748968348927100412212145043310506862623833372441909595428218663740005248744905624656998759096557262254225383944091380212186735461924253737077930803133368606125271487622596784672987751891591422431691657081681295592996567602698573747967759675842030754068756570948780184154385373784911128506262500196569316744797912680470884067671051660607226238993420130901854624330967554788930016395621198116929398601171379157456353407676720656034519434274014323267882332709442409429249707272935617609732975882832384919568199308127934098174764449991820899771238271277320276763100443014189426559107527884560527594577294832022955550999442878112763370030440645430274053314858502229861315318732064482252337192206130336132998463461923514019338047770551774583346894577186656383374376744587468754516037337688130176667966041324446576573789098193332430638678182201917224193117733052642281035578604960598821941900009056936124537043034275845685362582390389942749641062319325411630763071415490334416183847880618013890163214777425476701578364872378328895616544600987726696794821661607862653672203856835565694340847947488648847232542160697097201418911481996971438372864098121956058444647283478454884386630300295514891219340152144430683843706367119711180238222962406402414326276766104003406195990032891966530816979728017343661141197615240668239958999094008853853577298782898936192010642162409507655962321942619858161479418741612470094876359931725810062501350326149194503729274033049937023824521613236212712649489525156363158872729079434097005078607905002812366973521774091340613762469307721977724091561165086353023389923369884594727934939032865792393198477027170515015226174288525572924992498436151257196199138110597091764370375901464201532057957804034967886554466685703954972762933411654199738174340426078307383417527278859659411962827168217635495606153284177862093057529665809088873586064667809706019687307259525843997410616535886907943953784901894220121188634412876849094260498883125185328822544181785542704267084656715199321061608837230582939305043521878526316896930823720778728096243209079471281316845554157556851959848406199892140390520841587060982461423571503092463014315270797257744777310185623261873513272278581148285425481395155426553548461620349341609424230972017044738421008140117554982490139262874452421118299696130927227875914339826343270028526039104579195986675551258594200205004295928933421209217510233384051546053819723550415927381871656158594346782619480038003024689965363487584782672529931291420911473602680618250034020771524654657896803072674310544898655007808397645137732519673343287176777465947646071857499200562538353392495505860143737466137440853603448265324473458582973848798632367750339287310387482493971420043165883858943783426638662488979891933695307881007500917235587125842378167471515518719329408686495211736389195734093884567534142625042050328435168545395271456370788131077451806265044151737162545754035068285857412469970610006576753015248457348382954949135324959565733987032234077923611985927550556064221335867243755588030107632510475482019993337429740673147965981585517539231972988104171483583872589997030360789242165655586412031442779669742405879440153339225819100383225803403442726792732157706342923550796951483986933877867425147388495433959456725431813553654710063086519644026439409400299773230039210258820229654141859598585310957502371534133890926636560016793331714148536842450636614324336466957629960409872903859401526378182736989948808228339683026699388505749038772882020858340407880096646957361942644571416658773439853419212637355225207517113505826441203006279082678021312380738274914768784661242243992355101082242225177731985035355343996119043638730122690219224719340185194293523705695747427510559649113508805988190923411363210112682734338434031260488815608876238635013772293293003913757883925494507226325771680098468514143916546892592075337622873005336372303913514699678072424879424198519078461603682230495092580981369283472436023055377570530061736619523165343740380198761115888444949696660232490386379701628286701258326886166677064808221965060049581052411511473851485182495409015884367810017912461248481549073503648884501880416537403888498108540374524219240177256362196826002118877544906029465472511565649154183073933329396407706309633011744075578038763712498789691482836138006513861309090689196210481474897845755250156678899686679025393846251010640518307890547890927275055042919794426563354447182151789396164687594262556295342885655862626827887474996672729607807204212216662353599274728973691066141112210790353425709661585711333557301860039110993963856645278111960522695176874661923886064905285633862455920173686373214643779859547763307868265601880248112826398179318994515128711675952964859811840932872714916049560894931428044953188174854203558982902327787692505119635010252782638820449478643226040904849912664554024587638174675117972197084427886482089198480892266487709624291891847852003508997318033113422528975963174071438107352257226398113767078802093140773471319172427117456237548520180898023683954022648026695527211458807092843274854165563113350758718987681506355348851862446348345307273973055616811766166917572410811931796797300245456962033347454441251000338703327129718773533249916746825079797779325186872661943222597343707453317408244841721472442411671050173405544647451220440498992578181733856608631171385111878077683771466200400432857215298832401378561415433079933079831218135033513958789278331507799086221935032624058408774057549623090136648572670690192577413579645551234400670032710063571424043158549825831540288063098060073009340105519256503208285415302513329306691414400229742621025580782562088749649435142967431737632803589876376847450761383117303748235944557763043307001015226269859931314689385342643763994676580618929941722976726218774990139064479021197004417516051791977911542479210175127766949315008822257640838366575984798553256209352119016097601017412498591388331914965138085706273416156126463882883979309199652931443353807006387151268986710187805452502109459845197307966312719515787357701312050373738439716094604885014207565129547859879337730409288656499067799041509089687104428052675345685840190676350579020661341643368829234704218195650024605037944359330360787931376060147387566031197216068131987979077275140277433531115956091775566006586348136231638330177689552951896007396255850129474801233432532494429630109475752879096579816118699699104162885107599291445558793299803686704202827385362831919452975891048202466391878356366799627381304833058579623962457143166120360006314635132120156039070668394610961191339061702143949431493359106580767134114374156874599684721824165413653037735740029261344113725557757412129404473125789655822239645960391288064159585660469932154006795735393814285288417275516573268689867739477519760487236229580741691347334056685982852587206712995539567219017624332393835444398283803667825517313914971223567064309402524506979222940847078087683252576702404148544837042171020429240678198122762733270934930557203395966948237786036755847562367780565383814692937595389716828410782819938009200431895204544895903085643443490194473179780857204198895428612791023258525256364243352740283148096716641486640666571969407249402272452366638127918790066022576346605880926075328263746618746161696981120819643266895716770500343212475383974575255149151320505854938380871339999667369081596781253394691259788991004267925465221487034347934680457950707072257604748724882926097993109660961810492799447127578903179609089660623459597360319420850682133518749825629912648543964961184939064064304559365655012660426015343465857836274288675158844994337134470086964463359669094404606530795528425575315770353480395190828604427231621890806878173963840868236989840109364938359099747233117961054506408932466164656793365379443207211576112801175416209144905211856678290011655668953057017908023639659119642392315308479158767225350247338917485415790182090059989867626327853637721302754148231734909333856116677264255950051519936813483735908064117452005843227546603814433853932760920613047020689196707527981943612481388719578335272554092520508083732660748941727646719738038528275404837614478515166610576892532179154318011415463270122101715644008517246928414220347119205388538256454278464984708204066242863276174473200634205802049858252668712505680095832159988455204950601903427363983964977476736080828684610843628043342766329794337913454872959998321095140178523103773472142481131429362192649325003948293068207765610033568867395928875070856958149435754788042258228632540354915019454704798626123199228214398966842938922901624974442243180789193880627000589752035489270783242355082324022513154608023517691692419386790652879660619801793421916403227660154305138328676714537579318408524226200885342362590610801348269708217422288250879296396729271596811717316872727399804521402726904645458074390631458847462455007236177762189165499709968930633438120958665868257149411271236332977875453626830950832872778196216124418447127610937486932455108188756184545565330635867661343797832209713551288393187279013315107537702225024477037891151259181326663241886240664792689421140816270628424046155669865228273810116290686876710115621444330769182494534221102122993655631969791196621691243702909224106453238708866480888986525020375812099209286844753793227150948099629539587674361796421469938475279938964368410274245241754238747938410107248589843060165526385976806868905021251662406820788942545249981798413229468152667016961252656799318706333507087583088516635997829659025813153494195896519500368699726465203714854847274988702069768265937648406736403463828291779962371234848356108845777197005567869008821685973882169017689221341322826315810071971289426896845575814158762729540146570119739156840926768370799029163664654604243210705637407290010288944448328811055756162418363374071765513890374364048130514331802722665033461412925672553705019329632512773861078835546255190561742245467519994765743772338117527021749119999879243177763591520698467952474726692347229391299476826646582668890906245778762420479681256404588463177690136953787905216390069127308549229004380270439206527905047861103320047527027060641673420044473453456829250539075459500975210692329518214540023482754586767652621205259426504005660069714555190526435586206891724148560197691466530590168702103631683479050465823989218646167508047964217774858273591576085268893203893723471829530168368978648021978253355804394694940673660742840655747387084485597792892167474822195123519851269699328547499115314055102599648819867950277185761281461269852125814401115946075924944410224571858305171944021569628477457008194038100396541265506371694509019399344556093788332999878048583314762070632083636092524532862289072892537378778527539107810174204024701423900305513435708491763886236229056365039487686585275934572852756811925801317944600309418454736151415507950703388914483842584187509180582254040038863415776176841027579100869630712598927717071333223011888690051160550937204091709821209304747198137817182797570261543614483355162973195187409949538107078410252085747831065210805813495390657314960277659161576823622557231297843950443871639650319809283298386738085765646712866479286357713692208383292818929051206496246068730034350180520826590807209091038832306580788712828654574581146502997292765891134076720296355212942139508348946725683955154274718621604765400325262895859184313632779767521403214024362723270844202372418647807712069631397637256327815812719370119128112932657056104735253576803976230922579462491922647293592786683436423284012400492495240608819994777494121633555062223396758276541471545312680303256734773572240347374933537265726048239408648024910737100200696873108971699371441093548554016580062096374294813078741787071249622221495152104076155402899440177825770215232965576954986907415050900457352148585178249745147961816740056113426936479537711198042448376351320294945913434849791757567400908645900686521647100651092136986262176036744908494566478910003391105606693939107238212388728876512553212672187334829967610872399787380059488777368230396470897391796696990597025607536497751971414953835135921347195845456080946112368097533408320617430291349416807388699931507711106782972380113577017413714717489913923833139956548456978074749972481163045266338700496997706604088045526919010773628973395188559073681383504857016461808265478421234094663748124334832555121171563303992688897746655678940047428774121942441867615049745454718506403824533856029333965024201588053630396103475820299754230406474522188531137739509536130019127945472331377857106511096810513835188135287333378588469173915175473069971451916288821388579247262924857377926082303320776622423422553940288730820640597891987738706134769019459693333085834601936883224994883584587323621677036313952014624794181349064997147873902963067866832668543216263771703727136987066965621837508224891946051157462123370375690944654578712327652130360891625233676456846893479524871300067883438704920913402794565541860684818198027014879803163376845728721510468773016822092900179847680338828848402263952650503370614308627888936368535968489041226850583208777799887416921113826485522716705859116933220638395383271146068273415617853639319362070351967332619395540419109726981142493092707635304182153637782904398294186736124479892471167828718394866646433332326584906038244572341609836512684925612395807063755801692360059684384129837771880676559985117712036314206909549400853461696817576883744758088229273966078990236629058398687900794751641926279492278991215879442820894596659878558025076965112078565718350801155330808484414326406041664399704073652766534097771909431894080233200004563661845874481629963483207041146771450579079174213162168274333667805202221504676893546546896390440952672313190960215628519285348230310272060805907175229956840690063280837931776575216064119106752817870013847364642303150244439058302839984383673138107741415246939379375787995801288326523403846340780781750162302994007343120719470396159309722816320617092178432786339654911165019758702487874058210443143178279574858801576174952187591993205321817468909227799211374857044611122376092990208785531391333861374645944594830895832188383371462312714610127891672236594261506068605606493393498336736130626642319070761943664770155584755169327198313812942876233799203884554656342317312707935522256139662423172123648333489510511882128499105543655574321652851881071239576604466978008269836529801949279522513328492472552027034781137387221330166464405282846354541820110069121280321630925838847050077313120514508912418981273689747019957375018779385636179374518556491251464081362889685598478742497725027649504194101950544371910973972593194447670043620099448669408528660439672400371091426479068159033331273913151769951405037797770950808266531658790452647774285249833690421642972055272972336872724258221529440429144981197113708323082410224541449584811640842359714013613967762603329867703892202700179940455687593205435127292405466112680362171549354869832889494789287207624510933162314382438822470707840356255023141982085566763902143943760728339031589469391711247101916302249464636863864830151874936257933397454889852322940505382278509288134023231387203235779883437249530736405403394757197675272500103303575298059376998521900058286360456846089937362689791467591931169013892625245874465716138173675308543095513765303573035264814394822092409540397505250828983691613584422227651965071291761572581477398654903929078657504856591107878492576706104560304681252836347321542872501352706904307119726051562096807656763517709733834858767907586495398316133648716393721560628152019618716297270700496480805357808804870086792296632813773146093800672233013954387284721065992623578865775111896359673043723229161365807115471693258727512135388821014487630760730827820306582984541102975945385217767080828128517468012264249688008051870220565590886866213238196562533023528394004116646860625832352244462462174680397934637826558733812422053287584566091357889061822724150691983608415253920404374462476415433171024816560714935853138915727443916038324989868471294371086301445390838727432316380161245345624179897464547897868696959653622832269896358379579371691128584167706260218427105476485198448995656852238987815601167020456774167009048885732402643864577008525521370276598550867859229013605547243722045117511303980077414930847469338659110414063818681169055618889051909303049076982091480328577750380482816166302004759950710962621666354590400902041317893397660997454213388568942761500995676836316239089216627353694428284382915938375370897810286157662814296266611712040084323125821096727583760613410440840814579864621368322409160382131630428777224872093941386784913095996637972386849049338746109796979715417209644825615049946904171137781884298443984612543492613833873678177284190139519892075733978272171561174746399519562412599956520422746092538247470049625074028006406024386015010636765583573150675675623178939190305670759148128312386669561184912697935520995079423400954686062639392687367122411840762383882042383793942250192819964952439307518993090684113793725267867181715608729254725981987241982422658704289549605725656204630043931894166923703561487358148995252307284923119843937540777092297192284087897982074638929065756396566955400233741115854520750156490966169478415387416345720156624725832064521664551111342482431617612271460077896363839049197829855704429692055046001422393655148816757864598013288984744845616989160951954955806876057010323929880075175499090361708904839409137692283599228205248047598690030181822269820256541665917183631420823940991492675702455077670500087395194675612493715935817083729961880975416540940722226132231751999065115514763164907991462259265991625396742567815183893117185620971320782950139546551460946201427737591885143069195385363448942782162020541501934894104558884279288688530220739984925200066397260251199627370908600502485546978082715487508311338593632723581737723670959141119657986860495413148229646416193260446848409234262263663682175243088134685934813116492697436202766521385452261073594416327939729314398903800247575967794449400165025194286224910676036804407470236199589277480536911444541242980543736288597841849323270798951729149900559444526925443108248951137231386503559407183596499404137703672191781725024454102161258296511839092557755412827812155688641927149492971231310113832119506524874201950753332848244698314226157132653169994464351245102533537636906976267850045893245196606920465854088777056368748440207263752072976903900464613834543433180272435514359924946037814653522981270578746326363265761910684239907729004459359080282525632362347054163775305553079965551545037810052440197449632985712250236639610911529636411807303848273829354254338288315273332118909424321105509102116725781379740555840085954362124807889233742640868606795013735731892609094981376806656105044261520112467673015855302896629303108300164566385526694180407948090793405233112721461955789253919559555525033232446286326114761695114749389106142635727017758391869472850942814779861114790815724525394804186735831017939939042517444102775665146225520505476827355162535733945534977898692513610500974304435688446845584260807001652960744494777299877897591630369034589142735642610180709103142638817556919593416406977445206030778517407471628564866062603323793060157144815485531465837005125451419298347090245922780904371552701712422374750036628064221118062125179576947075089401470974374728085325891327981843912705248653989547253183586624977201058360308494130772239485594134387509359687686034910365048794298812574289504279937801059081597651380612054817972107969895860531297392144808114314105633875238843310270399371887406937974279826293197822435303403076185463860381483056787182284474443874625755962267143488776149248636428435036797630658487087364828746810273823066636211323316080056967024321642000029923193676947225101771903220867722196152621095290917615828731861836812371162349292415358121002724947040930129442773923695354714079154478138376820033748498898293945506714642252179793779068154450642430285904059524855723351957955645100937388288664909237701504757255671721156510233760477950241986367857528519221709072217702294921680932396549982056570592238748360810176435545525313677475756227928893743877670484014736019599209619588452778646696502122788664654389786007222195976604817085973936858926071898431713404021237386982627050348467401648537117901552968596461343976312529556504770772828063985272230130852126538211854454486870435043090319114486015048101510732751686868705296559863234139442457482700778903417418333469213188892986760998723212470187377260159609977458436974218107329264384625371670883783161158648922676186356103622111606136199720449327395470918171088473415656698293976313200623372359727706988797902997676743524186623947849368801986346136315141869759922767836368586066548847385583099610502428390811468941854130085730144483357570915574374648269787797022394976051839008637697648779033665772086138130000353202133442267860036477302703774175486834856342287847167197520700507136188203903863838113025217666092408020023719977679075997714663519243525342717804157221331367809832628406081059316876317026331561895270534594825908470168548231959409062901841094544170348223830619771255940662479801367977670400946390782980983572624182155263736639905802437907682607292906214480924957743875945754204441664419964787233888262959498485383796724508185054925314893417697057767270742534735299476632712329822786167754826851748424210603992190095310221725845991817474118220160720288425982710212528251055314221735160167789712236426102883525253568648229857431787194633706944983195652493263858357609080153094575580520438115638156508686496102646513801664936390268217938159200505541863615803184921855305900844787194806513034161544355798743464863532588090404517196775824652176562975957292074780549680236137371098985029671068450177476239962190231249043219480513652413226557756337489409878792621486913262123442544562767304520399985571099079684255534960115749120329932446804509369103804544589103927077450977547539872192767174797493037538665737266521156325860035751547214875837590653486261806293650598511883008640829918091522682245707552414835066292992771854643251377352313652419270571434953529737958630070661612919013526761918219907404317089693442262853465941989453352151583000554416552372844272108270529578136591857838370418083348441095077547794550703824573164194980143319613554377684571746281497760031802491126469851765578273674252034831012063012189764317235882290500776827480357864191655256095805891902295110146280284552303357430747440822449303221342005511624285081600688948206301059411624820806983788704148194122805942727474180731212041693868042632453036519087610324635698091639076492180168872232179464222581217854258393016438782886013105079849479629880203161651817921065548665494948999810930420056420244531333865240667884293946877729462124388699714560576836214242836002998048992945456874190209077485904013010189475843526468673741111593522116870896619252902115598131327235756531207559083963141675687078156871329946854139115701582491921269220427016938851980628880343278813046686004397781528425490962388212205491944909672936268407073237026020818912504273790982567534559779759277482997548615496956046710755920029398201543920333250324477930392356314542146723504753889948393317754084497571668741278109038153557152665232019951880644485679453499901695380044668123574970089790348361059781307493775422763860282665502279264573561890199263644159997166865548808520333105234034383833499892429684986455722765614220396225600065334238936771898982481191590716719012088950566940118618938700027245377310225058196061443471243347383345578042907700009363283122891809257930796207496543106174249587286977087593047988014244991476467124374502712354179437746753855346982764866397258921814253556777329701896592224389688307975828109791170075856973999774906305553023463073857877041334290249838759288733180894879063863340682516686535533846473253670477870409384530953725936032699813123085333865018616188362326360700986647509593865778963139903639695181282862688411572717114464266847837190705741089307403251521540720592057880256318012612122189973549971684106943215899559845398150151933928276081554030090413926849913724828748451361579159193787368290240703171726135034464662167050172790698806394008982822954013904124480777935165009823902566772081429456167153970349148353970522147656859191051491438865407557726561410715495847721897669595130064062896011405307648926374282369261773558414874747295248681822432994559327461274539763560052035905183196283047987465116353591713846233475594563173563416883857776632116794079907241055873272597059306610224484817715556598850156809158893319032622706849980639600298671330132840125685678867883711363782397276834868848736889948777389077465715056602453069683380703592837717969271492755676956263437232011079059478050640330746055282450583357521997426916388733375527249987635790990054806222530758188892688666592220374532728236029067084797459766837566453361905106744289519595448336144249722382556600727739523138920647235930205678989776425876997478926315482220426599238023108044343434343419164936212429373234500123361444064523057512434185009061984222495168801837786900596606159797354595795069994560017625946051030485833075375096711935990432868906649952124506357311028948065989382914154366298522515177770720608061320108804782850978107994623578841219781495031843917151924678581367137933930358837450722436581234803449040534432707113554913180927744514793640668319596095181361833448877821512038102061232476424711290294001665809427749745156940794744464271399619039220919433953540735982960073744834076175837309964515338373797142781742046930685538129248388251097876678886386613062300779963636132126735424744333949655742492242154763877956154632409383168339695446389353477015524165632198754899841711434569893662119918488233851361390262701773475079518922099584836127784218040162201225948352836292297833005260959169145152037757797383403601324168783112395477063359257299242551997283497337229628255772117620708806023274937927018655597577633047693955604559615588427500693297069820150688775530180642465060741375403853246512265863790235295505327694781227423828873534301545062932875568824392981208789039177042728803328427233291927657787546758440431554591991928549180953712219314046196833149001659719320653763440739924958973386700897252566565538135076571815172359059820593592790443942393195455572646632730237319161019445168116310634360173367748199589307876863832315957727171741703396732372020099381307357521238717831751098562368554772554235240344186961825146149536629978713369518319508166437912253895246512806870740016863105844771060436169747048187769260913760540870893245924294453255266945135682833118013663941847485036910118964571933876056931721486503940114337109015113915288727403657790984259468454727514907626801056773536755329314352145688375327556372263078650531729227332400388048294956867494828096668231579319899759870634323348655914688300586794750709010498988807415988738955524993926491135449958713446393987795647459947465483091828827062087256790824878828444236926243264109068136538547820514681670673708128943954063387837491159814986181450660770897036946304527023918825614163203903270572383282313918946787863091733362777192572936251281927652303972676903223397262818277273463914940319662543218234216369466895121381101545617593569055239113078320283743336503513608784493054392721907453835637677231989714278216127937349551045445974512889307324298779789130341631112124229579267919272468587682374437858126879111198233809565767679516022183938805954148380543654014497543465783406285114745918631068559816612708190260787774734179697680368807670102426744301646717412681270058290026886878033668532141225383617428732742424282983124252019030773967827842730641407470049538939046176356708781076419791126996178748086740197617736473870249189017586204528412547619537251773802606924403443672488206487361326596468474976837560415990064435269920734301730042942619601462565965315318151341881575126179099207604350822918046180296031342016967287577711377901604706502621711951236952067531878994459296337617805725183724426527480749821135392191796568618525575410488989715836744250268823062669398837268271661899900288566597010746012197818469017014487592864965639431867870778337280808742598021465302189502793438899561360414093856886209822366335515190547170202781313236012206261048483577514143610743946993312082910588156635082990688498814572031154024394902420300831195404376996670228475412617298432955438794601816995793182257007654337843978917370466360322795304392160603495518327759536506403635206837638802162122306351939286236050646465660222620655796827845815063825988819226520364528588886491155621448809884898406715926515958453705289393444695613025093800903058344455224777318740586828486552461435638511446064259429992673191890354311243556850779035176402569538910843158365366834007577479287738291659879968103194719665421212540646875216409616198405418146537168562414927768187466823528400161824769744841351280193164811085578949040317582738458516900448861727391865902111635562410749350575787799292862128000488640081474845859274136595860566998831297770867516126851266093039843543823501168121559607041019779264116681098023570582989326108534920263355544779132399321292939569253814726594685834049428354564170101122782092395601143832750397032037597255103778248188887736302097907535524158297099634755211002854414744748045009418569018221707453675968575656614482888392867045135774936436603097472338029888213010253691457663622124460973299777368915228398953452492149311008842881608472536711327097806124572369983888742521210022348782583717724096843934901058250852490181102984413800807722647714349748984144831634980972728167113724634327483659251712816318184310408438362209792100644640444843472934104979240638871180494408000919013496111202090184569364980458789143336811625175414861807589471066727275034633548174020688841476640035489709582263819336217104748257131053295695753393457137948298948092982332507752731993250142265526231857699061304998171674089041829987486200101322909031750267351090595624486572725606599928447469126155712034428612925206720925905992587764208537740900695677067184711894122313666764481556170125412666086357538485334235375010341459750162091515135639485884460181946435816432569414163227147495658304755958019436210674665189040184336662112288392524624025375903207907975621233820455964521918538071659799004371287008360318355590836408830702478398489081524918932151445776292153917747230784397130532045457218016456876322803212413994926078816353482896430332735687628809547438170511775454818753285761934637901109475653166030005147395167894203853935366601535654573484051514030734373780478999308298373462526620046328311926695141741017109575720967470445909870178886062495231066843666726288005126755791923164745367636346309957782522105848783073590767013538500686651563473990234120062514278393408985070980522838909733792982025878282519775680106144837686144444901412375510956378859339552301699747206509184913594205794884963457367092019053902645613247231867711642932294866785959761976392749133058237509475138532509084287552689009327770585949638252888138875064707068022568028677014568328587878561367612209611854749351159202959819345148916444750270259058913656871128693167190808162427932546585724364937554540399562198086398807721949391505817855738853304296154051540869273895167177864904546032415147670809760229112688993936262591611646920449582504291441281820621049806151767230129478753900816895318751142042095455985263307123234840823380798458505169292340253759466722055744303191590888869972120091092651266859832768735376812724779960688773139375812968166183683483822507790335819078291147097045027404800380030408430822176760546663569686767140474603871189313370013520922590381980184190250683250819783674999245631705924583438693801621015592137871071204618183117565923071042330126512004511329870421921657564598143928964694858192649848662560537027341749083645767624489634485586348672997347509666926858016958742614980242672158450018220572838540329799735263661958706262137198907882196078077210994882439568372528799471974286650150938792382560765855611997607029744480945139385009694859887030206282900167415719536414000202314424215019684296740677520648611327514421919108272333218571198590273363970771463577736896843043200861407044306897470572012647207732936100351648304722252245572730466141816503911790206560091006152051433069950747534566229967170815928282639925706586926536269447843346303526428305580498690009619709214821357552981029136944690004297239274039441248756040256860593149727968046576009594588440584027750313798547240406674001764533725825893931425902174574706991831768354691397618401966659328563706759301943236146521544190811823314176843140165556642379339583205883574146450290179857118115066752987487475093968334908347416098798201115617640506345853378551705207991084279452801590408998823670910464546411576994224409461562890099079691590465300358599471704750546109815508015389872479115667214275232180361763382194743079945032065271201253239381997364856817526542554940308186640775722149698906357972924545846540687398218880983122918353518093702079275521707926271544347482559108452225031542630993147556556607923754808481920162363997822432875874454520081686142547979942724732713581541567545839603706116039177151865679805588447658642508399690390333726901405086639958213767928636782513176649312870350351773991700070634630310610399969796135745622830523337695550742506984240020648690655618080258053259116465043997641530229755628445756738684051763357544891491372607010536936907678843135453224833352500751766360499272509849393502124213354465025823444217893256513628344476031801128464068025793493003123498430255186481403939167479423167620989655563362000200510105550715028480988151608846205130651937176751678128160959298970954570499686286378848393177657558079909057504123346326523499420657913306364423742054936265817690629722847945679605965185831239131629379150675681254653685916248114490003563987354441416941884385132988092826948981699457839775149999096813817077899647571692825175921504208829646345017752597093033792041557166359314697990365772698065439234065835205053440711063015553279852369901179515439437641990947920118377940746249439359076606251888107417387021730439225883325249398650593603142614768555599281537769578888776757148555201200331191242600624124613214156564645460022626004415523833140504042002966561467097596077265161621096683979577689365778584642676377488614355815440003749740844569689120835887011570472131180989069049628474902375292940575415909424025814915214544011614991715889149127533104245321653245821832386427845985569076811720034810620981766901348066681165394545360111616221851131099320501590175195647300600986931187550390427434533915713823634500075844253389280865450612289450211068323813464338297334718562833127515026274566624601157754651197403670537477337927927166762689624618014039343596066109743430552714752132437520488108455195807272308820371662072830332908981174499431054677460525050004964785881438382703044068736424646757768949959882229476782417758141270612256513693419995635291257033185827161821612296233953757968259025094233550289291431552790392610455489327039902116557005001874854847568380033970712234685557349041617692513553959287644329410486223267650478777689123054720071882497904750845350710005650712657743121836416266335453638857749786164627257509234310059480629063391293363409331716596696744819653663274903185076273643213850694451773878524507544394063086208254151436165371518668202426003706694568229691659903705056286963294917335379721240483397006055882696468305811925942897422956252766793622383809828539441966604546376395230127178083654937619798697503183352848703083913876392321359405462523979998750229339503636591266784925883431320914626867809261737318516406483151233855510723950481484062871297791278221603419546993916651289405792312621322566950634768124127264017707316259150714090490999321337323902394471381148726788663231921685049791777115960419051170733449299886900120608514392944648216989362358016327571567578517774525990807811383108058488333260268062759242178557128503593696851000279542666002877661734241216543416928950534770501043450173766299205160962775832823304798947044338479405571203415944258040288029281199290758114454002618680186074569498330834320851986591554360706177586337193113605284565735281645969218354093018386216930429147816071115334700431976869720423831875976074180342102471764999758972693144915472744052321075888541356919607389038559680507616261615223295616800795843667227480259659792652997743814047985736134887536639979687751344804719495091038407266648153286400512088072451728330100457161426397178618883487452826527242837562093004885775010363274441437954469484982168813047758138030978861696030646541922007199393617652279904033261014242044058874824898958656412845510213937870580319360658453353212491655633471331429478783032685753929739479541882247648018148241838036409203998356612076370997285305639450324996761857680762812261502924751137190017844652713348714126012006956540470643777071702564971963952837328562439375062213189173068273290800706003086742136403587003597908818399606299097635051283110596606764328284213361455276564010741468871215937503392326815127327703352933886282884802982365578545289777290061776533906065901966613469342779548100844169908598498860350831106564819297021392309199098323614729071594075612049309529977676170177669372443587123674210531150512264348006971909999380294603111670305544397695394833691525207500326226694414124853825199211507182773354196425569867794214422382461407683285227833986734296737584784047956680465201845019476790799340008057006061412523377574012074674918284458787189773932621303999911789755488574168954497330813270103668028641830204529894781312949959168421041057270542030127995286851174391229858912079730791766774003524568150261838886725258947573104305371979176154820583202163217343966543187042754890481426895349566589957856165362346517457152913445950115438582934066843114238883237656472087271701746378003394066213417806779911849474254613256868730967222507960848072719882455991742931169363531189179676901946617742421608229867343848569574479306487119522224799401678048125488000744721755817814554044232801172237286323480199102598093923792632060476569921629847695052518527471325394123917351577663682082895076381962305628505688223744603232221203455726120592914614108049261630953482175144980106840269028374596067611290951743601389288619820770354671680309428935158913827925829590989299148765715520593488103672770730118371752057892049830643505554868825280957153125950125689383971507244102608038041539353018293077562230292812286671517242971830463903578188522101057013498386575552212904533278465526660968203184314522077753264199341150616448615330822628261769437215653462579960948744917718614641433338258594731537309747296789305199749812653445202187077853798611178217249567329318210306108563826438822913456983952029728011893328464307400980539448499934476059967034439796136862013491691745670827123628140113892168962629330737289130796775820710037430739598238967523333733110196483750586515904907968885626578938613333137416630815584984205746622742109079641412088701417443888222239128505052377062691891841664102618242666142481415346028098748349146870769963848674773920661197404918767865685724424623800258069629113821252561972629262850130976582896272661986847734510387168281990625898964532513316225466294715583738244270205092882892447397262889399709967987047668361393187286459062917168411790483267511636393615812910915195779649681050726918849896191149746747382866121772338883087752246455200004428075089560065122276105734598013348817096301481609790372554863615619526880198799128596459649015701692998643068401176607717091470474511578124537168762911410707198881476589827668182515806751205377305652150417498115752506423682282610979802804754469123010434199214226626956138096173567538096968606668639322415384120673102930714932487471587614857548753482470049359812442659171439361305812105610941162417767958374695964890944580516014450168571421616848200293997565620824045068428393923996187774443261455702701053619355767953050353318462259072474218247247832712195745040769581923066224390008560006549988033380284695370368871299416054048864484153082237759573776260687261422452812313222635454221445442723741504857542780120623543450666273155953748435639337083068158283257109060146315614521199349362920646544946059142384495792660816691026067550825814522794703961771245265484280202517618964732206302870866351383896060421171020002705432571829850035626566182044191723287967979665336496035781989965342169241009367969912954950564134569414299743351190039809282805509482032349248597228280828343994986655417676832819520821697533624087363857552868532032911886855980209636772647341968547695799297418793015902198196917050276082289749185477139826797454074488204821685975480811015758617320421746242003485600790848155705943542782154585641948425149599373928106165863147438785458927869276315644528418638431485397907268915029304600302998277100682581523403426183919512849917671495701818060241197775211068978916868911198308229870898493095902807275526904632184856759745560574985819385379978784913934533472219537755769352560704452059164553824366418982268773462028101593517625632746264240014667044738567058190593049894398793988778230595156907806086483215763878530064054834205976358389538193854537928584344891748327537528119592914172446100377139139790464153673318187268679318454751847962783185806829372499190604390565336066431077391337986045274347082886037023763423802250662292588205509604766767226964703358293148751069276486216297671852210916426646174358754078515028101465672786451168081147807202758711510947547832002060531655471017684795410054638179277125970439656719295232445694398685685936565547536578095540623063586455723078257858646539129420145228778893117640636475615855033048375291620625945769451222283673987567773272785350854395383424979750787854836166438872396530712168557779802857651100671137500027304355450641104019265825523124322804749950850748832213914219584941822299259017489617464977886444907783997436231372225238555963468943720220268784962335621654756879527624775347194282363294298984916122438625442640121421508067948335085608091356969945108178645956339485445470401282045124313994317802922160850957470346736946929947450747204568916688765965200133063123121158693415390537640464194627033909671940068486287947555449401701965982921710289592507114347231277910477997180524188231712682831071904917143255734699279650825582876291948746679224695356505393154555333160876739988533919703906092210894752800895733093855928866296914119807662698915945762562041202131903084358440461134904531281784040398838239762937579970284744259254078790680066960206604130772518273917413727932488494391095037761389499337908299113654271693951156262668195084191945338278111632025434520152442207761147242820218327241345602024220996802031875450024712401573751646442648597875751345429397908628731336668495976358520863421565367659738376835596264502955558901100077164195092631739479414258282297292157056729515501140061614119163371053051970531411163699991355793611469920337621503443011219141387705887952938112877649751622837819265674262258871234362569877874141500054425076047066086014185052506599896122323895544739248299561184876041396585448638982229706176871277405253458557899464033702165752775115777894277127871934294583297576841704906715773467281562285775341465807082713214342863577436064714378580670019487575524640789379692397260378731671399897704094046315989547141880551054544785464817411518366190589451021572797514220684199307433541579305622092537259708725707162153136464539450925670691589409411361245264796835563377087613812653252360327772304118815900939327891871739441479239781725017104317487315635218643089253992394240923687338854888985955974570507097043821465163232956676977329891463833380492753590853976651781974052858190849592351707923978277587208379481865226075423470034227819736312282763187476553641947831181582077578047725358723752805750208519947849054718934547683020342912154158514722492351063255105883092283460071471260836137978082678340972975274280714567119680942973955510196817059399208625970231603070105962287369679381004556818156996284099724153681558442467139513701669510590370674004744146083574391505972574159979594017935795021191919409599977867692192665724999964280715810318979997324835104337201889535856434950783813139045724547590989569393053798877715832915107340364174606920034582432172888379291576847101424281277947955858563447097004422862211686905302565228001459383616679475724944886206476778742990134736962501330999884742496726525405906584413640299705045529055507706937070295703693151553638538513704126387271533138197376646722877143329960043860963369509981973927962542393984803993210651704417935883932648267378704260335214097651827316261938673166954856340639339055922747471889568049315852401090845354869665116762939649726512407926639526209394103883904953169737470243298671950535406376760219296970746679839663982441232477864660960959120062748662994595283266397405551149136060235925396298444205487209258118719719165086229051181341518926643671817880762102561229408330239080896664160961592281335929702042967793405409000757966685335106863744411750919862598721598282148461596032785345781903018331007833705226416913600162010644730973537977256323325102687197979703665200383686183184154485511632957590781320746850598618887857671467750962204405848856107089739064423819183106260114144673394060023140040208169105386717992620793568032255001105575622271098743391069929515084600443228880230408560018355537277639097750941950349783517538780125700142474136534799506137317521722371518405864724993510008961762474890603050717603875616810477857090214508837583536455264429956566751625332902098342115585904570371416639071114330564419526847345489317464392553970965082443128719857948608596259063922030195220016302188235424239153366311064520272386547759669841281030320359374931665299200753639616437047247069476273265361249997477282116376263276818606869901546724747942009089864581404125214941547272341124442640225966988821824859501715102486071739760525575365632363172446116548635362634705891103251688856497862475309393274805586458255045994389102910012006615331019570827466844969657722886240193859470804240430996940470604938750987046796244705528991589273772302747780644504111031350012668950136598539074168227651560300504867350185884105124926784402699551467720472566320262788369370555003423204788551131758266625131883019831353586493508428196926193285634464740283301919514425068848256634783279169034415308841769319616096787589552668198735089266001713044192498042522987196829512747842287253014397052313862460310006400330986300987239561684508462070588042889373162822426132753417980264518353100180532242698594457669441645943639193476993377148690903327391237696286484187520832594056070064725245328265667297602939687913217800775046623981238220206311162703982435140386582058217472451585419484270102225354467810412980160251699712448681177318875095217112085274742440544425066850647666298005553788639725708333308472081059991412227195012014308199006642554510237907980986134010490439913200322159042167601171192676669287608378121730508048364410429209145033586312058360182013501350530585265676916549213222659955169719121648932881733664445012657831849287988069081834815343058933428099371010970323374172467090004124144840828299832766354217808279810741135196660009098570542537610108948389442565516754611123178885468865424758716391460507742577144650128045931959274515531257784275006362682186592821786138499005493609637513008473862686446515923313159849767971431143704955674976288670179706308215892811619985012909769529385680318522171614109894864151004557082225787930348291873857324867797519750768422454893350114170527657278801650644282961700931089516967076179705792061871167013374228913273981582042524679859824913930970736569003386938331028106222388905510537096623355811939514121162878452270810251021613599012110903050466693900305436396204291026985936092352042087939696334147914435700417288700441209694633607819207322818206920888660637670473762655672177788152912820301002702251702197926567220080227244574468567118039914958841359450074044142975165940441756371826311253865559831323649813212840172440173263115208223111238264285409100016503492742431518025348088944713915882300943337474705932212874622021438705005021936026596930032208236401358309331549795224296337088532931116627204625999333015149450520430237968740084105617645826193812941223510188761620671807637411009816264230827255781632463471662175087114327539486231283577839389511591353723601272055023574684983586357411937366058993171688514862935235927268588691612463765576392586735184400793497436891743107767585503053736472399236039924355550287275956856250183810113676201729734219395811083156199368158238280894232379228288509822778210360459904920138601708497886664492580483246195984446387370109359096586400926594862604138103829847409920791342972910377520061831405893380614212660970605901566152516427278039480196305651758693917186023957655291990128481950918278968171069722985920278103182387827688485464499431193087299509117195991760014388047405837392429500638732768935237490772270636714247704311442417509030033028006736537715192692366004153048747383934084086434256257239686700158455393794853481896791471063679240115574256663366044138403613827376870418479524069495152720668344990410542043729343982645758936706950239355123226362023881973637189213324656983625467154736834737312169865915844442953811208172845492399343293539608991314783545116182690299192331765747426138584250094932836045936176371803783218980544241275183630390580194439075133989324656922263028626726815545565472181850512850931527056959369893712840202979398158775383090943505961193174504120618937954625570790627689537697868381576265634910670293990170855294404108932057418615686908486047832139579392073742352213331724349170570970595345814189626122955062087319961526713966967730454612756761624798437623854225307744789897121994772372441102929123352020746541296445152652442556680532024571020971988648884052323473064930631869708352044716116716204569654625397434052236792427997922104366255273696338085059910990343567902325665906153137171893327435453840486723010547675660402068027071244744959602466191228480123599013849527257831355408418179982097558123545093961670838104192262414131617813835796212028935036097736756629295584591092465213170975739598636041087285399263063050251250610549640620468197837186958013778972621283880967832425187247045178541273503413976019130059352433358395295587414930024618770849933284915049015229284136418502447657556979540939291480556987643355360097104531803116668913136683116010855362130914880270921495483057196564879894141202174684506038417166455004805292125272172872080028421218616090058797036797102264975942383859626847274240544130436408885180250658762508982132647055112489340534870563654493367270466176870642524084007995814263562203355243736833890119444248608116043481416937547585310849594053270555617705669021843952626900162201681516943494162939648116922354778683986753231258612389843613893526220759484467455602296610515896832508633353198784718857183269262856068612080861145148041756638458451700296879736296827707994757529914529845651955353222264552648811032382492965436173694015732725449206134438518827054654819963199250759385036789310303526705400743851003186898911167718246028282538001745665964746138299348568468559865435387776421817480292427552603067984140992087293359022991344825043335077430858680915562304355177944788998202851222126844605170453218971890554125476384697991644941164151390388594850709342709701230479173478419077320233512259024263733702963405966537962951896972454234513305946853471260335554121154200172697386408211784293523440218293712578636325752395312653452763211318610096863723168533593593534201266281566086329304409247434778284303470305787910886337195628813506848455932381380013017700514427887595454277760635358020469796339844319654117468620547097346712862855036237517722683939647542921831385763824820519659931568033918145104819312877380151708402173859029288053374787911731811868165918309724912178712044068675414490249981316132853212910651563289959468977824153965268405091153148246277946312435006648635609324090530780004538462906954025193255166517436586857902449123591651896838588274897529556192264530868975516355081337038324149887481388327453745332898703371134802073488322807631668040815130926256547148920088721201638191804309327122075736412853372801872551129906575012005680582941919565644643127750870222867860315012063004162416148955509003385027193979369262871944342745088266351281839853993849850873625510661226074454758960608452622308601175162384167546149886479258592990390971020452483847701220609200127160223197260624621515591530412881142798046114719505484483503443009083832603432334247637153297583506389540494951582246065212391405892028459548223225793349619357551293612412306959352216391910126071653700367127145019680714832627670750971096563585217373499128887240875955551878436405589167613659693591311402255145398976723477721238099730518785223984203197231271818513811479183065330804881903606981774671125506845687975472993664468188218337096574999862038614415421299034668612523074793990050103345962840273952379683599423086970127625263909829198467289641727529377462681636956939835717367419015805307977001857976158994128774676369107897552924787603780148128582855155565516679667174757166795226509055920752210950176256616707261907545758813144241040203538631508708777244997821643949922673354584544994480561958523501565726389778445732809769774074367340032065674194729700097054982735615685301068814396537004175347104875593769079601804839364853750636879091148473858777353772322466067516806755981870671587070129098081383209710042852923159603580555170407674241744103365926653699189550398355735821691142266599642217455245898148915833009032921530674280007141665185288035558946465657005499402778090323963937814872204099863576820696667441304530865457210085270136621600239653750881392950666196591941702280394039608893997082902486356826512021206314535644289804312381458815016160645918710230094655771005140332260080422645539595367072910101963331809820983671434860941405321866745162358730573244281972965456849752207743847369626927492934875115509748890875338864930877380758823294911266413121499008736550547176715988386058694226453224631417996586108812822168350895111138047858413252499916370004318173057895929898197498338053251149666629712733436273503324526243420362965576346413738631018052603402342891321884351687388956970053922236099938503275349279006582103244596096543593921776019308503569534187563955601142679988765092883860828891168441279530798492977977052757560955811199422181660633431237259698685621495279819615352279909059239572570214439423865141713001336043165686848504271147642592539282539683471169873950032811727691696830366316840639158687578770846099107761455569660782075357279897720900088811718089450142044479520652236101178882785986247228823507788386972243020035702029664671748911587065297569244300280991082170490149535926252339576922933657324989571914860804962450133168007552305044469403003309811732404709801467969081544432709103773008652341147606994292699282738998612891297507904103738381119886272671901747726947813047901113860738348743237657012660618481429266973780341971747959576891902432229670032525715058064238945444543720259985096484899368985422684150782864168930147947246412964421353760009547597586891758369107734717056021624801185179603778077200064855125918672712236648525848908166197213806214084389940589737293240826112759594273375290229936646712714891585855833607539958070606520447998077220352545295518376729115327490089513866792336398462463284529508752326479993613108917616781813643830890874858173899424185075654380359692748658572842423582957771474726580300565147098941378170444169638096349450235590271705255979756540352351067180107243364737135497744014637267962062531932604072511806035951083222999053712299701626099703044718265493043045712662376824005519979689066762764482258691871643667405197163119499981972918864109566907213623704248545807222165088288230444119910710212559114412490991189907638187285489038844120182643689167436355371543656394201039682716369623369997676482369957331069169213256565694686440365768393602669722316232953999380383231488316765458972995992494873702723075273752350442580748565431894430557445076507631689446404982399728750077834038999456224219131444608544451621798478173189265316684145547830397480353708259759257788392509209949327406144103677887529343010747859963459266055248616462229203134080526729317083456737527435737410345325013180460015895963372336090835560596055619775848448908112159053356003290276462120181044109820601946833297434427345693994788099122086107863865458040607847907741180596907747701435260774573260251513654651488723068379838793826931634353897170202690624196132769847619155008858551885961253465825275674603016650193780184240753543271454152179752017106222527854165722090696519397543933897484043605937374142207194559494733485466894189620168153673236281236020713419924693483892041341444433216763885154751189199400594277807568514450622386407141981912002436747019590931540255895140029243295826841247954579759906282426386104489067325968899304063591791991150873303866514576820117963701917619039575149634988829190088309921330933513129894064686892159629196908451509781037849791701993741065902225167118996692542587088394564234901614086367082466589735369903134791031375649066655146989491444664233540233061975580388224620419284346504593092080456031308464272971824379243822319049339384606663009699217688745424035662764638307555580748018625312493645487852312531045172583341767015764391255659863101030402960353529566260869700614344880352238501873555613450121004541089365905950672183808753357672980618776202600589070967004937901900378420385248755646467179645390677209336159178797838261329607266898602367913943642591314983014033681983567306756823956281274688572748507061155261742434436273442208207285669915844640461690440036202037681557547862893824842325591573379804204727651409709757083922835907271014301065968435819536448096794685957080870106552723661819793769721712064659014501883044724627951375311329924705794543677968274887858692137113696375946076627934984841350541143857249872827861733008425469080846051427619607893603822830305506624773464538744259413504336352968156489050225248358756476100518423377824081516113005074047409242857741191732683667060020069263542789866729288772200894074174523225460247493753902251093408028135148173270505920726980705613469975954405871495910498939674128429478386479963795916469436012935342754645386052420003072031576000218739587139734663879708710568370067239254660837667706082048669176525717152409805658786979147279443855164385586873542366917335315381947694996217195684025875053074045215231246724733843549444304960918784258161810923571197064671515205901382127631168319171250003190086698187970303915805797017330212684685859268702543034798006793931460473190757736140109643601999545220181240908003235182311281641626341323531154970670756667752681313187946576323754839663594638328319981966096417958953905478426583052933780040636223237065487582508843732497378484331881420170711433193389763454553354496854551907682380549990314815168572208901523895683186254860409026418110036846500176450092610483632375106438472310422937626412709093076877542155422298921805918442975194826598626646369556015342070817192513480748594909847637412088584210704332949404690316593281228596796520437816343346668317136749075863362767062804506135116370343257291679891729526895059923708429605606460114843608618524610071103759552668178353879542066437762755459066142747774519127362197731054518244994299927344325769880562839921798339234818697951030695455858430091748235851524049317035115151776791891286944838306769753326852100516499651192249838986724083558720957878543232140467837664544322335642224309935271050016473035218119530734777733991411936151147022413054989769347072518392032690405006198156820072695012686192090017983288383806047827622159882469163271630064866141279511545166031649042491695314736748205494393639524324890983205260826484415406827037747264062893054564803279640162244474446570895169343422241933645005212943813358917771182824435592443702197072544513734126554245758400669028692307005090340073141366353213694095457176738164552314269962154647783088869125242357422557630515246867693372756818782882625818264396051142570148737005067050309828835796562403920267894731278803072166341779331747840350300619335199296822819133906188909327625231659917322402653602564767381332247298827966679522818655735369206469519785769176396042655984497254666230430131822980688163039368641378103552001332510673340936774934696440199726122748754994324587480860609957112032307338544708161971299972307916326486338637149456196651013597454438265744141186907787798335277856467813031857900330360197098436131054010682946703323183536980754981190149763043068258100381399367943750581100555725296694260029550542966360967346758122238345843460697646615545808410090105816115310502971457913707384478510336717297507052052363544595424648509370271897028611115890800907649767471947476212652150309765606288129565030377846271296359802986166311667121736967968425877228336796568139718847852572559810228807977120759024515839594458459942610327030606832767382016863461921353194780714774005521310383909253462151977243468205330583947131599623531045007945264693351934919390559347982104465226794913892253729353679221784989992361262024904923174142467971228409741296591071966634144202814707099159627206845065607729286393647182718314385571428733797325713081234390455381050081853451180073762984908860388125624479266310309086521721340814057270949451446150920958967061302274063164415125023588495815154278991313882649071282911651282140724476660703030392766274413135328700224029007256674450475692582842969457437908590363282566572061024670642096127601638759638130885719007355814758593956850828060710954157945778988950734406592545040748833325917353004851710187185830327872719042680328840390709606305587882883493688724321882595827483505572290347113520161133635645927140390958756863789355281976751976854130956479005668298976621504749882146759840586620102756738320894850270811773346930339512636050798363121532681418920953631111445373683571617009095062021674361236626530381436472676701800405323060520550593976445737040657844727548881066177469338507071679053650673529476896013164324198299657662197663695311459754096431135363804324329963203112983953025624709662798732630176409220679666341854048713111065839784561417440883940896465970736871026064023568753166257270558723626526596859532796274698036481461632216783098602086481490844128021920132276621590164328183483265458805680550538547412107385884222504000927169156865786818914848902658772394968113925799488230766011868981423919909667364833264388996262162227858536653851263138942919894943916393030749415167996870455318837677109436073254181922789351971707935370287412112371974741703114852311567549976926673030160663363291151534014976051229781748557046385530914746201700235099675412523029444053341491966950653977461278585916910256466146908346543046220056360295346904825193750726205504294919037139089911226282585678740473779454747858729358642058459386789816940810305438930803376515574641831129441035748669986265104319640333709021234032210977388777811799972099118555473030495026222693037562924608515011425039998471511068166087213473028426784907693863643251196250975850517210623918236590905475042235185473100598680215456089138185029855186686896640748586337518524613702013006537572460337807318275159848168143098619819124098434897334648770270095871090205215744813634870309602967504776463517531992814296640182413287037555371280986724630199248166362952479342145841106828589376873950356562261414498470077666840250485544759087479231309891326968605837103548700984580988111721584696811977984588636396759564321085956281514823373738410785958072508055751735604070804683961860638425627746813459430063075878756421402211293096764836423715059703789340890387176185047574195273638351594300836345383454958609408088936240821298068363439938874589976173415316437536254957310902281715102226463799763764455742218775938729682451979797885012745000254535533117269599929607996610031727589353908591211451023430483548150236169900480727305788753966242709180465238448961536940878584975393434844794258211877764858617738533731410784839350740948578287413203143093591414045139166799236045522604798802472211185548772015616472284129582853041605737319947277268147269581969713761731982972673430681858478340286672287104083855396567205261338707201946774656058310266005996158660200247016706827644274109385025177053908757124978547457223897915130067062242223174927075965401721056755856297606170941877407400045189499555964278961237192163460825942538475379090862476268779280066583241212826681139514795624151004688352872068836829340296768916232059723956092021666483971995432984873176048105425083871164216927629086381792595452953638260936209521416928872731120471990518177355245165111615166412619361353302846584825688815658696937302037982081291514553605915743767930328311020125401484357563587654183752086419109406937108326540124755454307189570819207325858899643476413717507982650975278636959902471170305723378336675260274974622639511182376806781079366561448302188573973272743063389476938361363198781150841911436764778946999064627231982125471825880102079825543268439529691997511869787978320045035457014361330699770595960856772148595985350375242172686602363141665770042171160862715488327468061080262402530094529551553433767949665029315114602646910676486606304158962622272675723196922158425765423456064163951779504997453520263840574923897407809678425885325326005573390318353657912485621216380833356758042279400287391130218966316111382280321823178086820759639891212622624428505460979174475053944993086820391362351804188213896319470243442409760291302919927401866149553316694287807109593929246166428193180671529643566990973479251952732484886773962267362347841556261006370185435991233813952888449766298073932898791295870648200377602913898464509300623623403978984083389345356624537221814549329470653739506181300661996215504130037099119903511377981871324476794382210624282143327163347989726381028323792031126536945358199656868580894517096314024222146794659674545673154935253566570329527858285540384394628622960052513927271311367557644769677786376277811168416935731660805066188656524794586329946899845688356715849857607357564323648949353922917289303772768163523085469501328153272039037728983930588508756052631636675473355285792037014120319563705393996849814636610935750231379049709241911419738006719965851585927992135660326344933268207622264745453488491373429676462956985461709314324163558663718503978681092441039495028214281483896472797705331518371714374482446315281684452231848860136456842280710519900343413335379444467912115313396268108888198885368824292647315826402199813012486928372551057245563268364788060128659583044954788535212565657458005023250352760008523263663497357812513116442297071701205462525598408619163268045650642620956406532630810762734713901137759349248728920624468105539269205031585523890588323322205430237794945994813922162140433357721920144469550316640224611166754038276458527178212199264575867329196146633520112397265678959063074958188234458230752489250483083339406489473068146344730506432588834773473333277018300212772918315793688257513576474121046436577848026554087365759395024534855334318395416353079762424598514498567549685166371904360870818008835866696007299478216115413543762373481694396045693369939050258276668946107336918901612486434280483276234115827016828025168276251580171111341224737224022915001210461703164775271682020728761828656382553014325127909181898153201240423656252181529287024457763455142651816812747901652457665482037252291620123068652448592584198709907257720658122932624864947580157513405726049769374090548391616581470967325693425466601071192494439749186356365885697911312019210830371266836770484611451175117510807320635759731897648139908088011789248643331891746979074802996250522428692471597131163009344289245938668259617718376745794454238313087197058217414458836622654388330720483910548698049821478533624690914162393085469509768096611147092753995645731626593604356091422351452014173219065010954169355956146965374663871654414363662359985098157091563021804525911022168366377348355016401404780451788530108055745833585730816593462224644030662719350402822893466183961432830156256605783813188457034926650212280241493984621000692301238897298018248664346382892595793782170914704694037696695559319775813271246051157801291432375395829155335749856458851135683788639223967581424812336411577229325131782346497602743134526371553728371821421801888294208213333479249535212815426174935083844779612188084349691264213423583498006121510298439733593443400622335908689432279890938292750091641893903976861102345978016367477560824793067589056939477090753072305376742091930367478840028794711172521789979033067226598646182947633736524193000921109479163452069368674340538635959552844562443743860960004114669240530479046427408694317663716274532951588167435613793782132471973753485131097986834939459354426121386315963630868352397076437542166499989214354770329887435367720826999557948738344192606982446499959287535626982763475206561574889342196242727070308480308744561499094130724778379766314847646290272634653303752426521030818616044139825942742724256885739717984841556222829988019501121869968145816536228157721030055688499690822161369808335600835598126546374806199216122571033065466468142631186164071101576088892214810404209894421601731829683526709747000134686055196677267398125014246800077775842287208961019715195359020294946822467742022689695931819476617930761521546012082566166657325369638573991260041452988212702196271666544535465715359088941508315598129331155217523552950097582942918778638188097841199757946576618718471140850262489446282531656210118527189674926617021391742778960396645672787456179213539673067682822929214023810981631837880992066874328138699467603305572695426984436209237077457478854820802029071647256536177001180519086185568791510939824827753089322239585308423615461589136909155875066084184441369101600991096057987522133685967753646334725394317760011357564873189192797870510918414782511968740904257346957784619014702961969209676913426292546240192055699245699246272879298166907884253289315185544553928233354636637004225918137004985272735248567159617312865308254153341886788927215626738367617251698736605381460369706615363169155358523378198211356675844424791098617155592473193021965112652427642354549105229647878854874685596021377874626231118025732130617629622673686696184832559504860408704502096949052272532270730919310555556598555320713439495143625225649366831794011627718622857789571982930295048552920468750302242993756634806202704447335121370494302587902716729809793013949392638784473773228436142083729954366787569338650656541776536877811052888678521211738892038668174681759580419214789662511903837136618989847504909630573825068909798641022513553458310268211523294556056012180659549697305041650641972985490545498677083175869715704670794709813289379454446932391354097202734605172712245450809109841254972930313928113055727673358839169619778479392918715559985734621838827983072461519662449468083513930411887647283445380136886403616509259934337118198415532166410269438674091537289128526347306223561696252901514861500368586075967756128876988653496978685601350200851657091446962728390803250959437966008896161334528790113510744925087293559901726323027374357478375069765001982176052333671550484559590117717931143826325985598547323565080580586955773235958977332128476706599442433614625781070056213704529598254728654945011030682585880119341611952179240199258226244581830316008264810257124472545830992913670197524555063863104097347771097452635571277869684900890303140429897874003362427933608672755030066279959023272436894087619788465685764510607930069115337350673465909162392298270372069123104588927820623402706814821436060127230798672150826475929239574907455470671153790111719354815139596120079292609912614511726319454362315726819405536730244295589255717438737933698821312970477286092812619120460701695647784509489395493460476977851184238086351718607527717523900905530038407268236367006705064538750566600510380749217930692877135687567884443745667984356750633096519394968430416238800386182679293226126796473565599073757412484131286938259155675388510294307619773795079124759350579763587482345378601635916503047887866360000941380091890551705857899812605055157070380249991465280238215031647631320958337161865885686768470071309565474447427936550354011837276796413380603994608366228696429241910206369822636168497775216861021552144553417656565434017535279965439235420118314862003714187195227150689138071342696571841883406239774361191482837600876891595374829330250604813996380769543601021880112850865288162357548131794067720456554729642192918294931481279135472602784196179973355647129704432105000149889645204923553972682754389715199017410560266006655124802422588282352945848836914562881382655217942876863128005536887021279017855884674072901337208125222005138955114454192751675780380759325450544939422070531123544440502323728390541379764840628958860899118509746799297697930265512432899561360107584054872709142747365721174419005651592817071415389246241274618193984262732852057972424866285828070936606601988030358449879861379354852659990225704806173769343746413867188251443039567988248790237678206098723759071314442621611927651748969893106749853347753379569951264338870875220201235399221166211198554270479652654216437681636791437608401569369205684511369826697270355148248541314611747985185261367055977310948449300184281455346262465640400235413198237976269190964183546945955862334400566387462726517761256735115335563625880240638504857133313946191599854305846345389443116094959250382552968414513840808577083466417785676545618855434363438048175465515605631311830406843595764226919260161033543293593070417892440294167203844620220245640888317586383276525356258069069724746745988629067609898292036912786324078250671290935863484414005960380242095108332598952596193169398235882809685397306079903803432824104435546239560995681331541860126112144678073423181964664811937813342412863586997845121548351051911401592343792195255729979546146481749727305406303745911189729693038891312997385967791249471364687268521166999033561415773437944599159347990609686188114076651177522097385814244624929578428697331628968417060287487212522457393461122939603350343168246190456477302479575861633324382180243388972611385234101830011395067364611798669338659662802566667480860309434160407633562893834132640776428487498941131827200973870409732235802594665416875001847809427329739613088791179303706284620326321030095605580683540456561227462413973866788004829216992938608957840509373505725740935492733048554264147017362522133503904865277801156634314793127994399032129636399678775708365831575787486147874340819730429443623333322418900327247684908256688113595426886737519914334555970538965609581666134594582060049527071257324943189700861668197742750295744034660898906578353827010962989564973060104710426784945108682074509991098599261214338890790600558066181854695342117150855888983850254915465587149342454837876714386611326415702240945369257519799900842514754116374873595823692950763081085551348901688315337860337027846243980331335832878846112837253681914903145190113492250166140107117236934384862734709050928881495886958910690624808347741420215282946242780355891620149900599383271936553191137144288651171817204463145751626928607306698530602253281182018909061083476694642369909719360351687070663483632559876670952212185177064378502617247206680069581210659179878235215031985837758402607961579538114624397522516438430065361186822903172044872057478758278478131058788853074728465358521040151619944585404821566600610049372315160839537515825956313504704456505161141245997612377790454086912928389515682204846444525388432010511408356475933203544569865594568045303112587689088428419765115799647619041637203859602319949845536521266140866944617230696694553171451092582514056698542910325314985648945004921066062229961947241368130068490538947962643065514386561405813408914831614046479737780717694118549353311933941486511831522181120931043221039420719668098871475870280013740909412874890361968138557272240825352815180229474879988346711863095231407443710528474744243751840950072055157893260418028590138233373904852798960759904705905818795428255058852231094997100584469725838259566410047463605574312575674331615405744697112409881580698505680640974034774181929577612965129679510891509769112456842649380294383369938833368001757876255528651762373757830019937142202705769748525563244938307015416140831482980422908452168211580327233744526785336405565695952181262714497939346902128497230022729700708012289158824905834770451547985205317757574068489436664175169267827101296042126433267399325887478510753028924500434541129921444839961314198691426661589482959616519421116548709124296075112832725973953867113779917292826120150985342267775567166075008439551964993956083006047696801167100604441217992322061563322511066674131592739417188278414530085017602959472968885910713394406653856057541107245664011094450664231520780423172212396396252077740566340565805807708310761963670079663090225765189627609025862670135445785941441368847180324262074616948054553389215936656824630224032258066281781658716347646316345907700108341781117193592564161630123936472563720432725132159826407408424397548232548666609349936371195367122337595807432503019828621579488644851963402517444655995237988962612290744157901943257564656941261742103376908080763643448855683219602187866107599658468218112445558232665529305911381678382406711530614423955814731125674268647178538491119607203396672744249586866660017959472756193801595827479343141604395537314591099091050385792774904730251236379411363494138452191237093750089906946075239171204446208597353416745592136400730106551332964276336283737009396676008831351766593985710429349617003468410248447043661989668474896443013916557951639373534881106817800989881569402530959434580176409305408994876505077736653437199551439721006322704230893912491752234129647046628956070109887254448311856603000100286538887158959611255482051800235602410117444046914983726123511521847287430187212223591269876353864348855352928361707841292152482201422080488747270365851246112094487175624632941539992491521549858272440313073192688743510658914544145692196217767446204122061741762645463786068935139430417145962361537160147641678284805746600858313463022185767856936997600571443609723410827785280492434154134388020605032740664580760187807811621530439043422996471470091939857883719136371576571189752254553075778196057321612976315562787306664261014981550501224906056652120665022816121196605215968328293868584264756975667972098722596801176184710419876395518952292445115937398608151302082977783924435910165441289593260527799576428827745310640746090846961032472326464568498230853607087953007664374257257044540446910199853204966128878069334488723948834454158451394901107164957828292653366335546523009987630561091649866218674998387981267310541699746578432326783821032032454541626086339636240555086216974514769139909218730376315434317791823703850165017921381032659906121220064231771319163067342984092742083405599561119722088849789791287001061443024280175116541911474283408390378546940100718423730807333466720554239055473856194060075310020128481053966628862041626362584335962973904444430791992333902428091918804429073014627960239859673610963993569639202263144505631695488745380047407580447443957956389396619890752239843196763517220173766638029950479509648647700304285719339590136987906828292463264283877972660386693128880384869685670733986156406587954334318362261480645418822444499292043363015149999361158866898818504899639957259184505894852108269729658846996261975652170289766131900510989301530226933330336482970958259311426919071347086443612351784228250686568260832514375479901945400336587687428736102514463276086358731236134643981933925633843218269123319586255452562306762127003958954367447223989333204505725143440981181572473684448976721140292482708934946869368679793120720068071311527189743256608557002581977653358691693447343668865678547647581327634426662450428529870094734502264055021497109316104760818705387121008282005048504954810416831690693268835171499405052651859634911250257520186335851777601014536449041077048493627395624188690336029895523776699920683575127166643397650985019995443532714055350200284753949878366693835945180195600042489633721165973212403415297933379990016597149436089858564770689532249610227579685154306299503920794659329020486312214332936692523603953021824684446511625782618170548562421960333313637766574059574851897166862738504195005516867820921701633243548879166183494272579574808455325310798380090143322696621788295202988961902196997635124971382187096597064949785121711713446165101442532047783248857977581554560509355051364378981007628848945574539474533581066489246723358373989283163429769675742707945140488808381068825818741618453279046399179327125228278246443626462791405771423667604412018775659918356564525072921732645812462182207543052945080990498707673914568683237373952282731016401283504761522529279503011565818804761904931291125254103492822826689351824166577593917149841049930520619622808047047233955280365147425568669151834541414207150704322746393334852985709390064639268010483495442758333406468429041431124063611970567402262692001445068528866573373767112891766130453748372780318162596976878258871005533533423510875370097408485377976776020095363856207134457874553322023163253737007421408756801409886404602673324064439450596312176455008133366916269938461016244406714290962908223476892283949428491692250482045981863706315801076803183641803628358270571165029693129780700574670581467403487385391598652988824573182965332585990709827560828408616415662248681954222730597639725226671797440033400032503217485587683400871470715913665667180159570130373441219864869889927023760375433012416506832495770605880392505507277857620406740931647756167019605028885170636299535801997389478989045521400827216722472230647306097055337014444713872348083275892985638884351940572782215714183009905908510413398019013784992678632279276661433271842116539921547490627318612290568706124908530591359128776062672657192568033289297810833443813232420155227059486883894461833980784011788399771070171486761260826852696121922374930860564249637123227319752189315036591369557964442868825552224495949712192586702365296607016184814666592843099357603487490647967680125547705701792341411932856177335447423271580509484730489834764454668077322350717693773730584412152085971147914785004443447895928599895468109263475570520100496831888290400734894486612077431621258972221431350965086827121329193162519510832099135754188822468908061924929925195871442261426313799086920517137225667915755010391172609135790468304674335972854464310201640555324285442235868362942650727048425974614329098458253742374869916410181319530422065592043513201174912191735157656880191534364793239515025595984952494935388927603811268565734841728812852796433514546957503424798038658016746087686153911318832988883940971908218696603831495970095109147889986284733407346497670279809483347972353719208467172332929100148768011216620660171651538163208933072577063027491938060337905928373492010262988701626408655167674568072486531889732999093922722618358903896949760918611720754347913088632543361580931682880947231692123341706312175481611027552971997072545350433334284715791048657621505848232429651486071681802871106925598317952909210256579500178529168356798832916631159998020318385729727427875860370609250347391017419155264749593954489786469360157584024994236407263485514336337231351457249363539290445515027117714930698262414233583381972334939319967933476899916532233097351047646760664534404430373290335666510428510832334917786269541404886620374974634048527592657828941067295308627449250417750687901779887399802062819547362907131030106896588814659205907003516654214786917748897873126635449985275226684231196244327700560572514230319831871046458754339817003761349383367195085400005157857359550069352273082251106253829817114705122557594630702166423771523509810959758885229335608251091100898830078556777584311927748614079185890779124947107540319143007556928462416844812121249949590114188573570476867889929930336308753079125672761193329709284871370810620435383056092799958250804730391060264367752228098470609262943938015773188761359453883733271478997963844713224181100994455389313125389951726940400605845556158156546988254692935964781794536732399404602138147565375878369021268388728652123899666406381564009509826986252146611518440080777364321807218473335102810672081592103593011389135652131765227618408464073687878826113847758134326795932760723076233152962401629186876394380693529984853105772918185543836496498707543184182654323957627539031763005049224593644368584791152334423156672208266082638060146759790075599062097456092578072568996245868717150552216547825331110416658061686480298089520835000615330704187463790889772208059342837825633143775025457613848748652104345383117671033522396411575351293181651547115109681883218203322459665678722154458530650498156086018651968588849534532122054855220474802530577025879393560307890245703218269366295427983200231220101827342056049853053962093035666761828678105432167125393913766147891239807425316374380873053354014001571664575824835244558046135954435230340091434697254772931466110002412001986132002619653222045839947009665077478477717734111363696851943131204666295485929028049242067399275191809862761907314847676754200426764470642888970309544056124083827666392012735779201175800588588109212762623334740329043361566792947123014877551100093391370592651394190414737555351824211199955576887529294902584423555996005540021882639583943189971975721624760600973759846329788114925134007487215876868374302508400013952800226097227932325758907987228533787996840981518662178087121201805536122170045374592327515135511290809439826206852931791363714192105450164322344666290198607032015208950149281193651034483129898873101148002205342025101204805871403812091489604346112931486983559181971542974458811744478459011499885794502589328950403722742213588203071603914109795850537337691930078878626968310460146417628358240487300320682078290722083460079414173148225129851996918490274605022670708383386956606298388300690909542078724281939814775935976551437790100211196750625574134214964147556836021269948969248903030420006225802105271936567313105107040493857141846833095266449909981685468728803612150232540818675873588973902665166573683266800568510583242630527873940284913003845091326207711090208437613706244520178313498773706525191220111266066122733578178266895677086877577575485405431406689219043662197235686364727361461167206298198954798032985341481783427190850944399087723473735840426552223949992063080394524479535390510435467339054246834759702993045465923852857920186143910233116943151818993954235770284919603814881489377229910241913364884538047972140754140062907020008882182061284750968333923011441127949139560872751677570033472906821028874271719180907704609574312890631015199217102520341512542994652392756697365062265166884794350067460023755977810103304853326936289215125413884419797981028729415305446156410024986739414229582265623126426050677643261246392116147251824790613287663971426978346356687682708727968070663953856811213277671125545355430156848153630846544223851590563436936796359546395023953689251775137749323832134340626959637329735045419705868837235684053941152783681938019967404621972025237934450905077547219724663449016207144362385515068127662097034824379935019945984385992632069419798406618328297253103735042450133753101104054243690748064679009517599745086965177127897631067298127720628641252724068192291907548717615281011141448182844716178379833615549884623054423997698988083893754870372585878001279952755654700217318301559777648103622265860931893290919561841468392524896592804661485206019197526967363225371448838335521770775689825220877945098426315997612859625464059608615426999362285554361465955947913974512426495763900918909677682010656689490868720258066679698831496555464757111663821193981906363427983820764216102817698123330301173869404930460003216458255998875251090220262587739147637933879352197365543340669833044397837421762433059013703361085121970504399253715424016081083481443847965781646653158961848983751111512815713347418359651996304152212251432289182247703317337908505631746246788578136023021673114816076975426562568542954062354370112313298373767647557880765054961619524176163939950785548198247956596285530463800561441229323956524745037704170799902062842700610210776056957677999726112115306064598538844076232542631074569407343408653338732727459314860158880046067220032802425374180227775208201506374120186606032600518982778330066345148725548304617548718650473891367927360046622389159987839430993535251179349442699101270224511524015705672444097063425878823103353137607902120485436353339494249439096949923855761808723713662467453140800617986438591726609150271818162626568762597711653529804228328537567135224401202156302928812074623832880556205735061988585234367693924601052959454179683453863714722591683816724394967354981113982120259620363675310989506480066778666889515067609072469809916883899843784320506901613129386462121741295174450268829378671772917632369076375044847748418155931963465422072695842674118568922126525327799855152811497343230649993451141395758520676500015677430747562616420462344820348019287470402266021277911753763831400308681745439909323979490797495466982584311064156587812825005745773835117968972407451310916025226083774678781496124569360557145503197766402602950081980320864459314694979961006205676579967159564850672253614072222398287132505310639859405875869395414588333963401029932481066500685082160771753477865482508364013676318122793571724812774399972933655501977803228924327214242650435786444089670248146926283329712842850051022270819367516533123455899821854361289506667689564763123200147204353602603846050227712019679798500505456925876775894971388943412211286177174650821011370206410976266575153833686542808736953218964349928547186028134260490632559584667186352429906799092423603066569655539711386356604367835110278312033344806216838157346460567176646825244694163193114668163683783580047259689349503699606440551520982986164735752295431771375278349441062219003907695439176396631701146771632507078910841558122347805615426421009273037355649411078639378880807778479426466938201848691430164034229076865364942259473903925237976351505193663251834175100963725043356450066212894762236692653827764195100276958582243488854089487540723110518606043899617228246133688215775283575845124108626097952549274116675303659503167168610419047685001621650150338853161923497948161296382050549670734846281775584100616381731158995366667190107764975177174090769020385261238183990535131972635685845607241777467056146380435108470496812517792793389538580450855169317559386947258550905168871563643295143737824923156112866138436395766680784554870464624767715484850543345228655288055394568523015160119708856030657033248737864988445198266446071405129303537834114077736158743504870959751243388808739725613187903127222524256617878168683491570441407513212234037455170065922277669105960661421098979879006685072921756300318865578526047126305611141669296394328081810345154142710524398071790888791644797273521284038888356208594865330783727027383524008520647793922018031831282269145948457235611117493424187455022479147431867582519434692185415584743306790938174867859456125147779418170644095324421833454946298262073246554342945137310262246152119335018194152435976738493965751760612220728382597550352617058684880377488234029966150277618778340533583863403819655859935942850402719045822992863914453120205231812915590362810211293135667968028581198326715733127176693240560059373376198397877370312396402658090335240504277289628853281324208393448576282330357203879523960873042097219643717639107850229487914071856466618164250416920643841393661471524017948175517420142391124126667505595081840698607265233046525883806423191686867667370378840371911253480322044243498309423261085523200128840700303039967681922381490143612568358120154842391297846497809078835884202687502759172312143680017457981180610546223332461645362188066702161004197172716619418693599819721673562722368083420574633033967750414271888323942631954927048352080289108280174364342323997410010411285217672228681839882871012789761092064578711604747901595627713766095394430099248921629674161652873836706207525656125354908544040600011832273580021095250137393373597309206528503500685098961189690962964809703771308682017329519897456831382730797092835794158913392689408919479593594798381142978208591308744145704100398029704177977806387735271898025829882405631642173104484191245568359597474196210141863481265443873690848686025221988799709283201656679505014119503981209339822684962380354054137362147255298061438767585488771672079021760610035776856976992958072142234258644333882816249353899452271926569681228542244137815855256530221005901357939963390628064188685666263849991438610534617168699078360667164109795036829934347409509975944252355414548281760061458241049435617927948942667309183842582326127601216114150396258893473697037021741770984369545495132981628828482668112232106289160365156406964550829465138082167616101661158422705975297538827980753232906786996834397480994870316960662590368801616254791651722528719737740120707125092087603409711764137818464545991531215074833986173961271176313864299278287345306706021143296973406930601477939743844885675772662427206819552385880961923359627921054231771657818955462654416155429133433008027420362120326058352990561533893368652896480823242847412525830092472370245706316555990721993837494774953225947415790201467961791321785092912628344963497817341143969148507710234943307099253034257340830180167624220386738605445802645209185546274953669183871592815676199201250530680799502820868128247288098103917040503923250292989674821803519379774347105953232362326809537737351142044238238106391477810176931973205650317754284202286517729275034519980085444265373259160639994433707717076471232712682543351399612194738481199124554261023784837527140542237510016105138128032526102896151521259497363415349863418934796154326052423176217274029141081609866545622920575808745051404384948742986668246995857849139683266418179827228200469774770781422521877638283597630500535772279378039116929859963182164729576009858019184833410877816145069496021231672985988057464397336227104494695813467065556787320947318770237246332607803125335123595848984217870156693594048605257094735799776465222913388666284124640145065608564337833362903763762188609497374499249564646236078760210773427426990955547767224883480175693021936278740496960213341541096642490423889091605720022657635495335206291690551065215624253631485040605530659819395225102608419767300971634874136175665472212295393981738664550154037131045084620966747776653241403024538669123579473210355853866981204907969839187479973469088012717407608970535718905204371609882734007381874070050787833895434746886368514437025932498068545162995506176176792111161964643377330367098492448280640567202358470017012923615545361104996571894863982488242523877740308818634744917075428358913919872948258060190756877747073044861854797408791172270330445902581943571372228109169434464865247085813483391795878228371225426437530497951939417654713026496172708617668966491824658162303940348311538956589241514211377656435446914365603119554365425713510792589067708425373870988029579744370577288013258555876946355739981871663093699271746233276018875530379646291910634468433414171029670600338943243665055589318215022269362075224123338428257514465959879641751629585630394502693126130444695106712624821703863805810282783756305186650500476275667514594663655795661189130411741053911949392689593237175422283528140503983888076549888973071103073970471356180504512152468843909222814518060880231090533817773963201503509314186470821221178192416754803311156091205599979189065136074147952168864087712249355097052174715005133022989862184376394720214987686988164647459863312260305425556899085759919142585506944660666368205956449894700358893671810163538120822182409732323201715635783286901060534349352558671775922196530751661684198380949779930561203239465252331195718439311608583368460740262351626504703443181072887424188649655221902653627889160363564940088619325811719961336277868404407069611837598186441721983810659362405861501911634292493327110855393049411400723544881478985039702305287265822101699518894590252639596107154632843106237902436700093017150866687382190352330293315154510493784265531480290077918246327409624489655445885295185808974116791437629377520095182270445016753315476797071635482457486081314185386944504591613794994956560189046193933739791998418632175993846942076941646931393302299652078678561225332337421633054621911121575512009153041330395176223226240748740612006298472910454535879454463193769289304015654883415940240977853044095751426439029930631453966432958342940952001554454322736938933424739652027229543960880131239694124576030102374951254880532410460539594109540794055593799170211929660762730593124328771820737308330047316217886293208565682994207065049042456809190743372767622671659222088216883355859753757380293189220513771020774702631838931907510191466843195680083105081583134709617731486805991114931780422589651368100801924967497360274393174413577292863549138213099676775007785372008999953091387962244252516185205117214527492524858649473081343813702804408181798677705618193232661410899012549554772092339405494517992399650546372593437110814229611432347374587192151969199249825689381323037991015419225356346795926581288119636997256332386341318957052947816589263634410954414643357005504836245554631005309189217183646329719425375033176366725191209317965322243084994942036904982336043099913317564522511676211501621250131986922781578079618506976718173762859875396498267021987258969220817307804780580736058055508453140465542026284938859577742048418723142086411914947182989169510074040428637994353033682645895446710888457494031328613992315406732759389038675038901340090476426440236581675838554411019195721692104915291728200307232010897451633028317321186473540198952694639200038888874805520004959835639985551925479716939211533777807903269899626409132305417640320986215765281953194354158194646249069151546744582184706871496626176704688558061708297920368527654206712164704899090273419240532437592481180718758236431884935050636330845915163483981632470221988143688234281462716527332089001370424849803180434787570661026388302078122988979935982199038679418294034269194720112028279228732277486114922459973058849539382075863440305720924111853591933776507718301064574805805948920799625978461429009209130271621952963157045370085111141197023227773020802035658362498790998441231764759621530769275939482879063345924723591780636987194860911097051950577433518860169132064776363233050195883381432929670487521644678101846125239100049747580103738435376692059240634777120873654212512208412052082998168446304731603304660690211895744080301218481435983416881986084882810821289369342637358197198943073091314687447078494432565337586210324618488865451539212110462296653568665786477550027944024542691914615715872738130761891275513913272691156422112001905590449709471189807144599003535856399173593117048332793155303856149407205062944283983295169491969894594018322392607836902081458898749396761342192248775063715076846907528648119194875256536511199987547689670417695314834509295945947442301185996705447083016012467154814677136616131422623256203640767217634204949292773544973472796788429683818745805133025592174581760642608727534960726078792731647505102447480176971635522937123109645394551566000192788132750671299700785076284615920547898032119976221682450353965121938968325866594430266231821428750263058432212685300363485373444741261248424200130658474181947059722305049948039255298792044703115137005643273590920378957954647549098675733074596082118545471707938940447667114793507009985902109359192860062522102486725975179417882873172911317870251852114338159750528443527858535531933956150645862257487718775551955739681235338897320235397732697816267187895376917649742931740669325274309635490153981962483071476060548764872062257493499048588538548930325862150413246247753251707779852326731239200225186473756329325786899953085362667227348706268038793771150943622571634885206439356371455918587382383491363434924828474784539505831336825093984733614550344193355795002395486450894277026944309857307225234119923863858306383642598636765483795747199462275525552653292760757635248867130782854979644046163666169677913421190176685556365993073144384953050930287689864277764075004979729596810517818277547772222122362128601235938207594936674951658278036382021861473142841021329344064526951996034471008117792713135058507333203791515089631165839057671197270158480925215364058848313337224517004380460870217272922252900456051690637845222623799121286244985773892090713169502244574479142327644188988779848379558730847407602129103647375264615156377026860964678884342487914163285400773039709061158250911024759613326615752306866826782092421029886258778260659632177460995255134729726299021718188972263604877388193268082513037329522403239857004037996968641870353734498566748035695510332007345046876881303474643010432001233796431867500186350635577784605075975476237611443227514308715036921363641080587687017806507164265643965175460142927718768106261582380551880132206650940499073766467242840038693803436433513737930215395814577867419459510069472511947501803410080762358791261084574863263106071824806655685567687674854996394194873752986810861022385161666295772141089911353964119521278699558402214637570741532253071296891002917937546445500477690047824023953640210012174350716984263411877432151719111795375148879257528665500656452041178831719834534547134246325208427231823626888530609017514101320761339971442339023308302845398689737627469367397241604992357754165849248993280046512106798435855800089058270022614493599266049221945168787074863943717910242087685786308736300459322999092798659470567220238791290901929785422297845237171513763198060267022362219042232033844997116281512890423708805787515598071141504772048845252333791950997738709978664130562297358458824163584775839565021219982696955860613168833046902649924931179509045246048980725855683250953047997519954574049240907922698391110870719573083744283212465434687366123090470250659831839778609006278940975758755511857339321750184910294990641790705327439480949428494205273651363852938342618437680828340470837474960208859807350206297068933407014520812995852183649668349113416845874513490209174148095390291403638434146949527585623087608631324525029358676283845437759198352433018827602795224225721785596929297104441125870051489371125163373166620746939968407064638473328198626046083488854352782118194716625550068747949809158466514159440898007961264826576830804509878319123929306972420948777785306498505690600842920742600699594921338703096950009063018750805356837808714691829692002235216709910915160445326877216850975726056618595671609609176483066780136870361373316782736968573669337504535612025878398351706829699681140587111630244479781126329592267907502206746398361487005284755623236776064492524731780848047868497842146312491453054377384666149409211777505480142661263066899711728178447550938190846372221913194992816622046940097138755593211988118291226421642062451786004596944749539864820403955993183565223732591078000106106869464736657542481259018579303974823127798359677791780540229358977852736069700702441398943523324556148706354613861015260169187753484793035546780851037682734970940857666987837214394641138358054897686260181118052058171818750848176921347188891763018098146075816734300299491942315991961560995954474931980772176075164137665917614749729068124483184323811076500182450133605345842859830875085271149864179653153615650958683373011689261752560046165491901593545669605510018734984795884563399551878571347635657466149714456273746405398173175580789754971197156185348309062590577083008935683359585713125603763968254587193137516724017100010540747324486554097226872532884646633438821054657572372776862743272093307556016985890216215784182641933145124908363149310317473868445734139486294553806816510729929801439606568391412168407206649239999800596418238412953197426831341887525808465170565774479330632417020502539263506218425234506670311688610743940762789417930570178194154284033873554610460143881589629777560437712635602901270638853013530643872245623850370811045922496042760408892695867939194932880062800984398720622776346647482765167627718016242133525008300922310107223493203130815872635757700351439381673316733398252808129840846617563055518162135493741865422144491460043053240875221042430222933951037930817351905381212541280651486719754269314179903447198846153511245255012005349904027679781990403275162993849311953050506199025711805299133819809781882142936036994733381707991217272847099752654849900180051473973524221778785599313259935969486065832622393831932248512450838053702190030607631302506502197161541634561808464939249810502201456330945637397941045132871507661561634040869094956491053191803241313994281077852582358144574449945103816479944355355825939372242134933154156875246132113465505499633012721655115649921861953608951427703175619257951486572699363089042708175180382288484944033869720984093321287436734136053530248369381779597136120272640072164472366863640956268124646333125825978085310901016941432854780510027369448594585764031334401877387810062294375507650976491389790591523657158839921489452810086650816174687341164929629351380426082018474437466045972979744083053532162225861394239879571002861956135886708443345093009623953104321654194861404944666585997453379425866571368797873211389361989781560879185517340979728268245116517062929553423157386893019834644674961649629934146193093519994098861969022930643034585675718787855143774728966743203783717565786885100181336041544573025688375848003320344678811839533283614932598409533414599495213502841143815559432113151829861986288432302625502526268307069127309770479611494188689326884722471574454447593621088907225620323647974836387671948601898094607610337616862094779579720460238656553387653831284469045614301519344905131751834469433272093274754260701619024519180603102233302325723895714493869880318716903927293776327828357495869966719575908986648759010043656743600152114568661172280996108726739231932639019537455321122014073206832950539240473214487313999626333977800719162136324279162992414344280665073958504210982025406887129047629674101004448233365867435074727681583428063542383663272853243005337739745361979349158486517879010170871417062643136743367804075759651995927588165152415096871607125776353446041828656368041245791732353309168681612738644216304557614750500270700192105862237923077580146406228168001561144445403654307303644758799407542271227787607730659691769757418454140065444582828841418739144351989804710910081097370168408549854299325509657303919616640099889514006785282893167255017076134612263347165984983537571160239357022616997108129582062935538461254161234341920489355207939201753691319422452013254571923956074875154140821679104060549888795757185283648811544745904092606075399536901737824208906653011981391288725137320685270802364604640896764824004446572780122177197617696207424954576951340832976770978629607557246239875802067890937598329089131231091062116441318572834053155748205462817012815014539233399161234885596091801003824893788099521675491424509618806389464408801413782196237658567965077384268210392517197112931369627753384569137991262235034362161744142135610459116523874651874256880887581844736098919877571242124940239750647276302020992490754122968001151530855509291254822392044510992218705038048529270716027667078881463541474759706046020397545520798070662329657114166949416208946684014208610532728518322656952409574214654715236577267430543061845574024139940567926253063526362018937073600087095350291210097381080793728971256454284882138366961830842814260706908858809201536662802183137288473619901760539921920008547423948945890903500274925708252125192766379415227968646668110859670177247179993761961868036824150183696344979977214207616878236017467046075175949990443164031614102929640190512436142587175673262937494018501239374847584719415304866191415435842500097107243557214224402653377929024363350116381501334401221959730663831040341685218947754762902071758175682063820835414493333156790874241679918632588064286004766891849034156838989428828134326674064060324663869310284126997786800899801289900454425662027672429811624141110117835503770845974423037395635143009736730671063119272512613691276564242926346588293274500341770643003582808841512846804886613428308473290558267341481322607635383935377919277419470367846257456408843690033103794881391958521174389524146671703885204038263607737996400277023394260894652204272498154628248492551496478550043320160794961317497531380817927833390125301147429713331832328172492746423006165288269172017932454070101927193711716425482937360712105453148882070851576163431114475218358029704674543205353326581055813828855246744579913297381794391332591464502261537024144349552300222088869861198914447294020577189807472098426300101828586065624094886710579557145113791778333599129546991548033836041648393959533101821928702076527338635685798220658040680981940393439588570174122219022068036948219947070184988308802140105742689517536353233631566505001146360822194778999701708782834650382720388331777996522251333565255069669963515708408056584445973774133993839344414054475480113155273719025550202338500917303674101457272976407325207068248975746023739862600273625509058436419701369147744726217170695183266889829380173644285171076300946831142467879265755560134186065871308441740491490963138074213720913925746676691115517043782929168259887118962868125251064094035990427606880423957737942735602793485930534543503386717636178068470299463810449183777176467158698217646307740448960299383287744685695962944257134534124528958830923255738574506350468268178355717363809360273641341832060407166475028650362368002281995608470958462086829359707437808973145414446445167599331961453759906400473187566837680439708293624435071607161547666413432445625205708905863512715161377779681599218674134847399796494396325064500770784237867515136100888037111406286210242496036561994914961550892289493450009494136201303245416159644332108151411841393834842400075759764150081328331119468716260583873417247089913855819565108624304654232917931672930183371913458244626520715402952108570204215939082755668707974661733583521586109280927989051225644651900485849956683523699274878701623660747703826820733705231343929351714863293426251252000554973378335702228645668757144952662478197828111957504252506992328133696686878440490488885331336384467219737233156763459273213872274710990920860478362618722314275344735633318453053731516828659222328935200473690821940502774287151070482231447258601773346067029059834172566583934131390090729308455697799056180675074988958105538873219389713968690230551782378364499031504372259087452473755454970460116034793204540229823186771892342520853698913321800284789170491046151001315655560583492584138181794141817864581068152134965893832624623654251493379558780667351868968013726407873016842216792595438456077314104509560080237957438168604951431189372862084274977887682451619600500140061448816494524967628742224736703142406262683273862083828696410031362735161515258006443886148705099968651919058799322663092323465258523208017631156290283315324844000686862948083705485116143747156743088681186760521695411688993284968003705195316000486747675910345694641157256989454094513463532342398336238914866069559706836786616133544679360109265259447008106393696469755155361112190320150572058725686679633604173568690137575168999838638781329296618413137866293408626250961423210895029753531511681062298347740222117344553230122780422158269555166821230370396888945867359249530960232942552227243684164760450198455906500819276193323680855574964495825647294467613209018224530861992644833747097593435352981479376775278949307017811522798190203170538284997686331013998521294868539444941440336017315008926716878732315793894101130624198691626018307044118847915166647859869843746237803393861164311128078460717610202528643767723760088685807608132453219626611619011039787074323415479775408694719520886415377891868050467386198794976019709089239184762624301192699112868152547018973033038538417237784588419880386703464418030243408405488094983396222365598801805114885557257370942177664496761258252712823723388903649249881185357059384672717930551741718007212267809152616116181396834645789178879414800989942996316889315482598540299675926208885130089743164110891859350066169676892552199320650692645811577538627361699084743271979536253038858863141580680120722286405062717810354071424512241737742536073197226677776175305192373287795284397043797320339645530555722458500495662136657369814250238906975994480505401299459927679928672424000945466632243094580747646109627197639655478928599617232865096816696589431336522452695515259785644966610598261582453226794439428965608904342050425166114585608793749551431314460455740568140941058642896482347685654222021630895722165714599442324713422056425800246128597816044092522603467965036983121755367545469102831648491728499342496812811582701340498668181156554298598779593860139836297365559778925658907534034362995423182289379512877372451960147668926931980931093240905121079276237640312017233425245307314354078743878709044835041761652573254240502521739140693525096562907290627474264044419892895376434400013358410986944855265093102071413761754620284701778772666350854506041563976018992059425288083788562016241410653542841081057671773736741449503432132991750206768913323088923477277479079617491409574128918670580666889073898228765529152779466092209978619687133929808127185907284548988650480952673603301455525089125793129201962619956762339836779143822669155121732099074235504114791576039452621980553960282569440695064807803786448830042652992786917114904554729550488822389183982521517222735635375661531485517452343821254304265613299089365175348847115698451109338912320408486485754496986350621590251388934685083209768052561495778971385318525928065344938260064692477487598188778577865041333344157244239832897843132166596741402636258383350561836305056688086733057646501402416665765699714401773888605346280349294895370432056330198191926569302427832726669540191290201863296621601872761412022936495173086956972910958000513565726758602592369334631570029871540407537594014919809440212535544085185773385264543060436911430244725722019966490176412229474760319941536129211981445074770392996058738060331752809849530035172091781222999213627126558273872820612914892811107361935953195986839341359132395308236676331940261135329407118340875873500392558069123375936775135348366068454604792970634566245702169028331410133153932356562752413857546859216463539968537750056526983353092320386318879097996464141931799310456861423793371217473885025522847175732800190379126451375811113080984680238256752495560596351171796364066548244289727416368340176068135904514944782389596758741063808587935298527377301255716359251347645011713254326598305549167845502648861517120994769721035024368854381180274626454901405036990094772875667599509547179996353603790576988049672136090219909123415040782709002585748144270255553605144891976279342131526487528044575426249217271810088379917178244110417524247741641123506126014829145867896901359894815395257609906203247016810690150326950659831793716897778529474389212914938156621975637442244845178326106078947553745383156996253117020292628355921348826685684963686257124997399219930900994511575944765902057494709746784948466301659343915211067390669060938053320442322209464415799108276343235501019855472645029073220642578315128345184498978123647898110090274353936796203180694920454557572205695418064592705641236254579519558115074148776655747126563218989607326091086868723990896033692384701617114343068960448093882471557355096359940042878250862597645460562762485678152009838606832911530794680408111700398076236441058511589830240958165345304868614290994163354698778275111884398759857473557881945890813836419103924947423067584291881458752080638110777628642140934819042973996323605104117454826100201905975746008397391721831768864701712789245223307956771626687171069765813632567558916589462741687999352984507019727522820731073021004593887638579967389000327947585522132741963966559904184858889709460964846266847412762687499040256875664912044777421522051680197108866175721662392962499167713159085180866847072511732193611746017503973360504379417076079619220482961630573308913161494263326940144974823425440855995333710166227420582479230505973034487417202648407442896554469665900825455386901465911904370809436525402963635792041492878276161037348658587878279183154227624238376261395814619531467771759404098844845917923671107391161305449170158525417915777328212899831874887821315451205777878782984604627525763670502107425292753204158981529920289041136556344360679311227882067903423714010105242144994293432537678975864558609236186374295495029800415331706794422136443941055988635968642925579056785596083214606661172213289122428808019678473941281351698033748204078328507309581779952167875260359164344916608180834495490316592480485168615203593424263674464132906289713835493230811518162630326349459486195824017602357120438514774818917211532477630310447900801897711645904329931934008930871096849765407808294719962409324524330761958389751054573966237126750092298560395434111017384944299020892131597025708627556036617055595140195177986184593149973186408966002538550823524946649420691967378570120462692660513967950859719924514141451140174106788736784535881130092694544542939515736502285816174941917110440204736813903055363783909406321998316821795702000685038360749509676474542001738861406333793833316693310643987432659787713985121511190476524270275556117996333229078118342384845854943837813948432727215743450312812676438756094910843140289741967921418877754824525536173129221955588104833793178448967617479911247167544361228481968105697695368088200507808611433737574445388149091527139105639358585705124748647818568942958621486699941411626429508444163903717178131453466979754344391287440391698035884704411515459305163919160923971950986834132519043638850132152424007770146712928660342446456278220864787405315880968239813939856906132968003965261985143662445087553427907788889405864897378028415483157314854809300163296977164393973610330875607279572939598499928137357135980464611441020668937797297149757559817775985865510090874947953177249300113137293059858389464206502369467157260417681364142546260545086111694966331856121565956217444334858553604332850536571246266542854403238073449536316016531506248265967847209414240450212006097600868785447200030442123953677790156369057220508888341611493613338538949701034280185638923994281706916064897965032204106349984360450709823416519484041928746586054631740409982585471690844238408692676604176489547786593916233145777688093946058081082280210618292165952779677994354607415039907094617009027719836763810995436040328629461659865598609759144153220745434417168230427565299256246077232203800619209418461010603198174213762805328399700299772427896223122378541382065570615925636315317874986129463399861448993748149905671719221734016300469984039512112888749257390257083867219839562744899246769619802893805917988143290425862033694680539401381947098772988880331836258221114010745696757365334020433418064889205534581926967660304963333041764408147322682677895113438046645909708753490829843346148910524581605058847857168657032937243736344474281598902401107272886489869033843315670722642182078442443725719997380543297405078267855300590069576861908313407473523526190919131249606265838361244302105129126060858736521346473796333751292863025623414789214142618787029815643531278157798479192342607492289559652962739848609180084687948351087302008026017039281943489883561271973533453069365151787839874088281286520746105492966642862650604581808653231954158010555111578156354687234979942149079248566908990978140312900688566528743986967951542901527257421066458001565832871057285899691138012188992253676817705262944786735147606021397902621297145141193086902014158045123543033719565439085063337998277896209645677393197232223169760214612434688143860275885860739810845039421465802952764563780548298055680989243340575209920739927232858944331375116242972987711489856058890272178543676244547093285361491939838696760440727015928286861355297825579533194101311550528154886118422116795488744590072756646241330460898765884725664280452343611750530146193907627643349932860192534321633817096294874191438871883251880051079242249753736710779099681301399202013523631661657429297227123979312262012567793448086756505631056209520408340844046266145488613978446311054710948732729591135688519484335016418998522319830872580053908575228511310667847945242746758712975269042270460985743405260972014009564497533083244144940306731310295031427298053531554566538247159946439146390154784698045263920130386010081002127224632963744656285400907155624740894283333822792699988831367042382130172624125449874019971299532580049929800291928107083823827751230253199538056210561078994007432405782471094013144570898271377691168324806753643061075025563121828839105227140699766626227968719966077297289285211399806101280220573143554014451828459088026033643552236350075418619018820074490741515684371354212532775001442568119809088085734985642790577506528506588348493347784940918047725887110865136063751421931907270817624331026443776843063003704843701421015135095519548038727840862262875734472173888339750727650790002679450962157263197007033977844453406984094381454752382443679483310555424570079754714022899265780151590258827742163217139874215508726455622789041766683128447938331629528983432201806707836625158342933356657998912888278605004174316133385369462528821223346447790873494580004573901782199643425809106040226320942059793496951154946416544919023081942163761158684874499352701004795444045557419153323092639551196751882701503069930727458271920867838035813283820730729885597746223171627848954736930795401770466430635090498072879904709285142699930978829520367540317284522024866579888424403971799257061481039478404407671892814060401606090007373430754259354120544505042543584607372384154700818290290744183133573124129802433711003824522237337377022932110587064966287353074212079794173003559975597551399543778150496844822909942451866558124827256360032980817755691099029863789279226422586346891096346986858564955557990984084720529065172285502162644926721620926202241763559700412166287229282493343633928927444930250346824307688639865684772475231461395893380453674856867078892400593087493768952948811552314662573662978357909478690677122902485509005413141255437070558642250386296747695318506211301623842987182349933177692289843420648468119781926026489153604988631924447263430658428135904065240629329484361676999782409412268101674874206753194063732089180212558910142003499891345957178522963045799106527634354894658452118090266535300892309052773337166171129198532785733773781327390781017400929208652036495593158152023655130095973703607168707398175994274332764890013612931332779343228840872961277578282229648617177422083485940324150913414288442517115517081076449304385286328401759815442928671894667632392029261021744359074752171083179346856164820353819433528865240954962020261373335938444660561213374707711459698576034098390151074675776604024254318905977876478392587927616039509758603725036112578479190039823601823288556705799347811587482586279361324339212065579297856323703680076098836176351012406117269123663188162452156196441679672081708186442143238786430880459948104699169270210918904191652454777286830140147603335194036619371996948296981831323934191240373515554304662151584187763226214714742100776634370526312862270302353461205323309732653599120673694717844628390074241883120197992556957508533836883805098320741120642171102473833807771825087063237628555352055628915231980962155879090876956397041013522926826536101238181431092292213529180108155424923527531187175184509777380866818921190474285301302995778717231643389964323703994202710817001460576933482294200623525534457761752610892450972126381605212547219580629844224865215653008369452076722396813966615943824774807817528659432444876835029472822887572372658470804818160143050219036783258562820079398945931534827404207266184820655139341293533440854869351591380175148179570452973297024112291947984283268118176950759815474386011515448456632978725784735852114544947554458087475929134815445381826715641499836238831424888735165337537498093789643455089847635131153051632464876351842844056551627056693807118734147811391438772092180811635351219708466848729691283333518784820956916649176619457161405745152354096366529710319311071113577471445634453569926436656601807615409431028605247378201093331401634669536304432279738796058548984211234520894687949660903607611917646712001473841269035651382423846637859466538809576530744940724918623617961644484296332345167553506658754029823899738851204548128602168379604623120067062911421007878421555252799226415257060297450096461358321669947564121298622784978173449454646729866584141795176990053872736091165022515344663663686896075371164290929249176304058305956372104105600362423458578488945247807888330011775306114769541151445801632131497600002030413202609136647158804385118291928602871305161727541286280007341147771751662580039054349370856290482267176368277145961332602816692467480607780954881894654586217006109187804590497618346104787917185691706860061424282715304158304100239471796909326204176999412839109485748414668988312682311780792809450392703850114840650252037743734265305827616103759562635185544065319898817348682935302225570077967212056781710971012931545571740007576511968313540968386078289177228730564769063145188429088818861163159755142054400558256121721021955064441427582021354181730031350150916764685827848041951012420426442789868557129202479915759450683723170207015055139337374684075406256797743717521678890692220648877649496936341304654475406604000808978649274412822051565178900990449720898940059799790404389062909352431597719351520486478555626150279332498800543809740961871096666626832971355277720377826457678149307178594862680639588937158174053652208358701970116438780667196807520100110867178586423029495666304749001626681873460241471647167370073446701074932164660021224887288000268650759405850894245261582552867632650178704333308540168015262339760009599082638602646910913599568850287557123367174712792236125038864413250164102652624271435686789554904396333933590648463904907186887294616182892721096578303930823312168326006392531505852628769884211448783839314607311167590642346592756365969511881891807947590167267326086181301479593218101588026853932418401774173670173673851728829798426956614730404285819629179610824081462908493404512412825397307841615408646769068771998026930055040415466950234802806465488861762507773992443391571340966980941512707583807875985533818151177763815505494620687421045353630117606738854981269265380844664456154822532115801666304133568999688294723685670108392302011057029315504480111063109678124996857279240866836933590486304668541486061237815450564392282433329467895751836092000597850208398126158679462662253699576040796115736599936091683112452043463891092378870817903101422836752345627033568692646848944366272372798235281442376320609516768211983906985027938872517754919521964604285492145835875267402642629973459366083592176935872997766924296295126510421337720804907832126021811216290822281114296404209070271715757129905998813524347166408949893656564119732995000743032780092740492000579198253041912144304273164054824779013422225970858121510509297278262542280927934020040372610846242355488812098390094671863549659367386209771222137970720794509952598942233630198732560482023233031244539949412978985337649860629975835850070804842865146668548537887617539460228708765359524197741653561740598252508502558002387284740223097093992087426225561874711399649748116062795258740592967452293949425165401507816744159439079604196848469851087243404494021737551576128083045202617461176141783266229263387465297149759125699902267891865170425047567657850160335549231801423619601572049094518491136878325263384504341813718558356556321641060591275757319292667782894880727988867143245493316697866094727501705849631483927377936804895667918101182440510945269249584388827833726262726777495056403412998387999122138260358265749341369047241610027312211810765450176116755686237819736515539950397021953527549014351793126290648905708210568048681430496699226997763407367514568659045594285332380324608151569033997041327128893791949791669318517563930055889710605204951833347931397021527072494379147706825590384361169569040237647933309488843329917094317973762722283801054592806523406815118990738263141943026973982021699859112970247180291513751880311555535963185380494609132148083799381061484292331049611248392657795554593429044562722996578967652202507577678771241264984249896563207319688194465526413344569210180862010052830475458759655332318709479446976010396013877129988258358117570019235084269994205247955963921660397435735595026406253585716581107454151554965566684954106206478816813711871128488439742334660149679483727409977535693253061248948146792248488937909225327432546182356672780720138918494817821506444064933165676539146229535834453425029794874976471511868404711693527027217897370890411052182099099555384352672444948981645923646006864825232065201684484936875529573450525460371141221298968699933583010501777934804973832600627545769230754050052306196310963597192893883539787303554170782298034696122757344465043102785068510359809590208683425010158830478892331093316836020793760738370171952402214535293696967406834120809969019028849585452500865678334550706264914294584897478335455021986072631039712607957582310547875547526335062933935137447874025535626162353636086412614641079991406491672586273506473387761389510528402608208601087237223115836835573733734113554181624121945156128515262229071152028146718853552797606873334697200815706570733419143847708509139164537533366360105386026057296184072155550066198238653405199595632135764361768503903939960375451134142574583400776739080851209932218594991649457254577913042267644282559772041351593405986245677104318934120565780131107384021317647708675543679189732458410688766992300173541729160613338827074956927939558906556124468137885088293221213393468734519404809165392787138854248032813158807963948752800176264493709241424974250648599726584086706380893305944675497822871367419203903817857225679556071223007345081856606532462744993577399307877873814056114586520608812049779956115791168224523395935767733187155967289215065162796832093751179036944583990779232062363201615780902885563518162509150801789140024367009613471699337256199233815575499822878321947232340319737290017807464249093433608624126825920732055566657653015830625874058260366323524736595251060256065475220194963514501003446892916986738085574090907950579608889252188747195168432358930272933030828612002213246729555123249511699193103163395202919273440686346835695957248619123715686263641601556471105671994254250782716346173848607860970359637207225079353694248124140219327983439277677147742743060330154119524834790803268772432749709193517405623641279350648518722584948567862912906354035258292573914203027655141436624023524410912092180372646816913315066380261808802600668282835691770792550870860691094780339557851964108201686339842511328198299679667336963813952472814842740654096800637498436754474360441678595247331120919832783112222461456575206657086320442072794015870257673848997806029324693864632973623352385115899217500817992517349940326318739694667814527221835905104490986852969819553260397139998220830019992034944783623188361617704803061130731776947394453010032071269150434758355203024395193674308697696112019454840472416143820125979617035593191307168552500414021271386142042229798744998327458848633048231892286770131403544899344584630035204060595312969526409122976853766991048016649578621130295926875186600512304011726431612093380444063763609891960087595923379295921720769162825935771827147946681420771026433504778891083346037023212651484409917644039193350526756065649324136547947146762644242612482917143032123062251359092598763659821554631632196483011685763639245077391303150991017509534282364615575137959520553113176120049954007122820079242578489920579933242879547702636903666166067915390560859657900922084452701730462010948978737788091385798481708174776523930638157267666508479566109501665750614814930123308758626562201281084998507122528009288644468566231972691064122638624301639333007960189873948520389226462177872497355531940341945784782562326516174080643925146025756138866007057929298147375942390860453878255895737482029215916951878099367755818619826340455390114115487358199297096320748815802292169394464364677140218617450426124403042416035730689038022979586474590994118570327048929017440450489106266386153163542173656987529545522290296120266185812456795045117639700923256979664847584184289023862683286257209948570413162064672272152080241264842132912952394929409691348313607416867536157074772512646981758012430161288161796369964562319256373314682568961483096074136106343695432360156155612882847439608528888866815594788989321664902922375045680724254372977452366394212431986250400490941017279709981544432940055412985730848208039296557014352319996556739593271955429044014423395946119479797541422135498920481676016537849435302713204103441637485190857910113674155312102150355430383301587808558309912387204615614499660001650723013487110803376995329093880360952066434835199225072398035973523983626708024757348612083729892032944244392682655620566729016691267607566725332847125997861339112004273471624902551990222495558933430330196055130235164709504365083392767570889227001851379906215139632932080370195660439985404843611403734920073299441745579105116217823328547486225243969985621269307419263233483848597244382048294221347530078157980182021850043624773257422501283704215501136849766307109466765703138465782092162514854761477346414811114671705539565464742324194505161914706712277047401509842286921486592020311645272154245905603879315342624652511568425284264941187506831939604689408162634422480222988656213083200404256961557366326551547198631850009044579470251127229021189123007842728818880027166246177534723941233772511935237549119007017168682747500007778984142006595938496475251392331912113718035441291474249684902689978684259487425344368669554533669351932630928730542746625154062337472524814486948611302284037600659135763839029301074129375495621320443630084284801637897476653784038077338040169486225868227272934079765828613491078002256751395810353743049740473298881769945235888116610659263005013591255254009859401115034027726066914694139257265182065357396056315883731401599373959797568292922779160185757971828767164169734060729798904499155463708488075076452668385085219143616243094457657320150663548354159336157565151895168128268411915657479481349117881559032003508856847884124374028775150363867715012969618443996054000970127765296423312876208070818892130471436319018587414852636680887984144524195092657973939148341591384806046016973639168738721567869109387939469446892315068330235831237150918103823200931626298716210922783951327091761757065487264570790326857538398284493868548095456070120382124427194280335873115649971376960729359134653968153705824203816961032814015296506609484773134609300738450977446802501191718152580770481269045583241115787264380099560069195987457953262665848622140938287116172308086350299107883749202069413621592066117091294512444289681234916829625604894994010258677665601452871702971221468954512084770170926560180363657990635175501989856255347173508451614798117430600277395394683809358240069026851160130370003017630046186684259989010119926916297003911305172567244905886789549615969211504868511315401211798411049422067821236816978052838298723660730753186150332332634928203334786015433918465863536617017771080067467706100769181055349057581821064492203676660185461969968009227048065499020548426651879145222897307173115196756786504844496184986266298498700037933153525870567362947021704977069512885935189181009597332239542731830289126958467471968382405173140400687729357219184748432019444698236900407362184585831626112340860226020506241900268535455151676106571637998821846372293771904628750874630799396173010625571815130297138011985148441647213541547550542469435733546916678938333177966698906891287945141133217988558283978467100023192509706843026116259875110403186925287099028776604521824850888379785463974787333748044131762321928272815090779092046260733368636455209365539270292596237445889987103061202413848056527411560215464103228939042089160580728569057018371926133796030082353957186060445366073738386751096673248757793862273293613288354092659283101453889657907165244510218325756371057254503901886319948445707226768224855376102675037678681922244543810759232244835810500908787288558314210441989450464349680233180517747265499800097691901148606567039377866943486278892816839066634815311895783125260571543365301612209888598073274251313325295795103714844017405197547731437792485327385632639122228921957343262309785312236586661668265865232186749677470938561371087017349836024166212358348744106718601134290993529621273137618618060100355972159083608744174719584345264928490970234501986671869242592146048000164554859493196160563076235843514692003349211955921461355606594069265206051112058750297080209010467841587590148689267517724560538221612505596530773067590531197324524363321499198802141786746048528942274737701758625776068073559644018733111568818264131719459910968072663116047448700334712859549872360816566106947772680792808202131068225488574927307678582125603784735080084933126189721261515510557504222863130612288227724393736900971832884910691188776763472386397000268737250665647054425774014260158030691116880749236783793384008146987628993162490442242016271537396396116000014411153963764701852248471676146698022880211791673370292333962790074035297084936358292297886564081185756455557654258334678882790208284721577830754986911728661611274828199803521795132864577436373340124189270229707991762424695013918913635718145930119333606320461993121574920767152456682255988447068539221643520754300087637421735819714869130823710252278000873657536473674856301582732718118949597437061532529436852766981592722158059339463029163233098800529066394268258499133983864200872664184928380999273961457504873698907664289518710911735984833082448716354002296412378874904933947103919181604559812459617832246655025897411499789632579361776548891588725843776937651954477090705180125974394512125583569550589461025591861842408147429310004556347969596578479556226772093681874382947068425476863512918268583577841919902943446190918345455845028855528956687696376605740110974711084251151548969676276686610679442318972314895821704345302759916248120452664745706541827409107059324968335186674387513747426987811900817172025455309096093182552220993713305025438423727961418892104179611933143962269876314154144353315109125826584800296303717097209587600678029474870623575093611827516205257248737837354763170685416120853348410676011827287112247557926788610677333926627889461999915249882097682144826132972074369863966332866630633051760162860463115562224298625478665014495424373941904101263832581591713922393638849123788549819107022158547995241101885946862253340683749831746374882519533399062492087805662671735266427691327840299722402875317639007410606576403619717492113538488824152256511643577576654282051148742739625164236731437971444460115455468375595194500504343198585156913455467902570007146811385018768004580451726257499308241037249929183432681055211094297039603081858070325532935649984181349321935406097206718144544589333930216150306488022522061278340656706996840137137443588715079969518989515442410210716220230008740251692630608635623492256229269456837157030813318988502778168085958480959310763669665169527528650939375311592072959188624468961078494905257187150180108413622950631224178312260239118011140016312630851125982112557142446165990994088189022275595821641831834655823285857077949065282313290975923599774968340438715061261251750023930644597491709299126103314449450699090640068038236974742351817925287709362594438514913530688411660135873676453704441032324582087836633329664375977400082701214256148257709489094449888628530675390726519374218861466651401423733357608400252281794597297437553963873338621463644808516615824899733463408140502424839308217440249169068744867509829155409704764654427014538346500208144541411284314785964089987550381652411783746767770124373124318424469878434392135906616915290926567163478376315883189026103677928956509740935244486179264798241496726399667962148040378816583100519775089593744486388098734798760312436387797655695546029586832253122887924217869621441815154273133355401827234868177089045750655685981304252549802476022731921188971509333019227800117843536813949798681599485924333311554005591822354108570292276915718578185158102311998040716625534089683856053894263207776797211080110897801898794104181186450695101322822275625336725905906445936190391279624470835273090856461605754450862511126802481631799309475838521439273747417476025929980609883060598368553407655231350645302901189226250350717076773074637105644101991466315985291680362924943914607192919962496158020395790493774299868329565204444078222422142019386120227841832627643608015006528577463515163996902129241436831167806403588064543110782077451743107352026808504865250443257484848505326517194035011694825096093391889442432659025879111803402878277771753772425126734121169058806033145967219087682959479343937820152699628485908006472115480627589828475417884743832353972433107000452455709774161742455417904965430139596794207972400841429270537208124838144043554750116806360355258967635157196147681881907094914340873151965657665041920270601833842348268914465745158006211910042199252523680986034719013381850114142389692592179403142443671052771445506389756538519628546937252672091825825179932454355417783693171121129855485657366199433621751759025403382077434706813839276260636613974367292838965025632724711431252419794527071342005932741956874943299535223426544643979526374438836613174777404900406401682807786604788284402955645221224046046954537344465399580726723012700441718758824546365000025259047084717302410312428270153100524516471299657797675089314964296266634012593904227024151235427532219494116122122800399027302604880513040300007760451505785222658437207587722461563440147069201179910900437666577649247323354290167251136829870228472877275113772370965603483143860394557042816925818052300895671284491812276432401971140780713539940018101728923861934668171839796562711213684087556805378558917867627758174092849196689338550394391698607826212536265558126915284366410128816890329360192685985513986395965945336131037699898947943527419743995161947905660275257478327395762150774767808436379710474463919728854714486777058113600518725233478055035297457156096396030344504139269551313379899533458581931309969999870189009023010953014020949126523205072473748722830460819907183721250564589156297351584928075275234685029956733523377231115786785451877082079173782199467513174208345969181733341515861652227517654113683468152017629906253910536869812395224568419769195178753741483865411882225054528356355744241817457245605837526522462159295570383798580669830061957764604229161200657749082082954239357506066739025034004852024118538090720326496054454507057741764808450242177676172912563902181640376769184434585881877468800639976109238738471314090630398372599365700352985103482397705407512053398164520095664957306607100636289458375203998713710734086074908521491161968516382860152520421248856906666978942376385673646891068848262965917986902088728567115587352846248761240943774235892951942443473666387976378419527728710677515604586691046141092268196380933999353898575565875101037753340983133975524911309790168949197110341399323438803526314229030703696618211506068253808595733432897195672747869762411877734780366004678701088232068727280030290238461154882408037146451737850670801261252170930301548647979866606593233379432847455169250442771352033455892723541390172375480002020588698136402963308748795030156687327583593860982365778409579935823096580630253435006339263306576124688500693720739016715998644502844197255380243257332098415254861206111469924150130048796719259359984846692218266851587026864871440239662166134700238104104157754028773727916389402790586203047002436253184034323795561972512534463053762845383147543350607184583016095055481470653581750614837443640254316421100725172173561305729209112913455160161518586682229863018942164268542109922502192367586700250204959832903053171394750343343847729918381938409085581391622286401650938137836464204824055222536906209861067332953300488441786041931712568616823419897500732565328648372508504137823613484166059008607475003727854235167263541966386061386861798908068815458318516658114263973506185972793094450865712306935039865918476312588084385602421359230760678928050281243929559224714839520130396328147354541892833295723768182295329730480482069634883712300374934716926977092284278354677909689774027931988080442797024184951071755407822068890820135895806894516848644423123259040821976551326191848683815940856953264791783799832458228837949710526184213143518621911883320635039681859532716709411105232062189824599529542487493630253575856085943901906729601361265801148854210980615381984159654247493959452552481588372410456908044236564851669208585494784895667155162777339771836834702162947289734317193360179198866179260466024520884524697524090865708076225619173987347113429617742571600474016837111106980605653735806489144978535285855942498187192905663398657165282271851234994355967299544510090549944429333018566379877761841479185724802119602929200131620443599405820154507462444846450284199220762625391428354203162671517237925012272862427082893889638674924521485325727534378069219148124132718894813186027626134871939986185038100328050134707862452960984287326448657879592922866380259848897843928631275669387056063942090185460099180745671703394762311284603050657938648217064227897579878677857435969316814696149899533579925249864285093665526141994236685198952191843854670687946075959375815915370013019501807928995913175323837293890985867915676609979453078414155790985658876102184137576564208267256074523510106528829262532761158150601331552826162360022760855883737275102098738180683329707226533360052903306504614801376525404397517914118662718299018978933202287229832917263055439295977548167551562189257424058609695680467458314763840570462942239663148640753461681668135577707831393635315808958433168937891652249841738834583009551554170863509643712238801064165038317897292610071162141214407789073307368607031519401407915744384356462423869960316253037559196483875145057507424172215022921893561191405453516062818367398360801338296332320612222277593746127007543872242493272180939330428541272339385613710154608326167949843538952924012872892430354759903426141361838641972604276811043948246260190397650664839655113846117817736315018037243977898887635635450546332267830307099146168567752917776108022600191017597072447151108006377014280741921607958981907822818124793453612654494723832792560575080810714614016295331532279855159536189913528798601289947828259717884340780772655059501700429820834571662653867023516754981929624324956407492429890355192509806142795631828015595401707884200278567838247303402297015770199454452031191512238162916566580448630235751609525330191208163904174540618017701815738790214549326806967114082076458324508029290278275888447184219250617583680087870012695574995659564289600580716270816599539726654041293951179019998795657457838818008670616147087608893166098651586397196564695853692119454906812673893988527566641916593869863361591571837094216821981960751260676254016126567077884670174740482622706997820207636000536946266731797393246841934164478685434053418633941178373342911465878709660894619380251541675672071096513547867878531097259508030772503505515964409933308281861842400728320913718289541733629442707366576523366558487268860450997084794249997587991507931032707976190081482122014075320648461284588265762047643894190999986036406401848478858653697139192081842353479171096794679212807646209436421876219929929750727646157276360154057363053273754367375416716640553968923623072856089018419004808430075465041487215464055518583239116758186862877237714632544421628885106910454324219903568049217296020951017093804523766134316664122605604113130703043198157754525691943366801578661990731234144876659009758636844137501702251280169482062831015194779834980523799783288976081162218908991454822234139872961124785514674478655594684881956655111910350975893951727840692399819154816476752652067221284903815193316732610201380256447858879942256470576545468615662029849080361878260988584790288418876587899809661604366740607234690905738359185558963879540823148136314705638106601164722046425577893571167347114680106783647520206644092396793569449435322149546886842623333277620193515241189799286157451167907652055346863119983960149060876350010856198173951212256124880117525032800041264594333753024751509364825883253730870514462720873921990338490214596752378461322499013757663146596570052922734989060424924904119313416536135153578101126445695769677788756627629579492954392948744657937967386304612299753222582665341621201009095519627467702805746007699279818028510930045897531231707651903499109724567159069713481399177646853418530043556540873144003438979207986368255580062446555608536833041072811508419617964152436735419320091578597667558699900209810459125625598640920131697590663559751460566155551170598204507389722291829539114418534180917176770422914153625523889865914737742225568272529671112225974219621757456239073273928620008103983652883172462996422431497426842467885370931696619600773052461207151820386012116995263545944585657326352229044204771167022426094841270349954527347283049056203243130869412921628341290191810477107140940981160294397735241328329650150796851492093606635281238123584438731962435355037851994505414221850970872629053827999623794032968770791035602535139836734457227265217763200523595767171334666066330923079069644935344830836840026516817013307111981422876471137304149586773948349946578574472055208063755880105195621355686491671907768749180426293277974947850076876448324936505874019473925901191251897700718753334192327466857140141614548670313727843436190584808661560844611907343339248802099449389695229644425560813668141728929636410081173427750447551743360261223780530039535898329764952822838251839299548804718411649116231145022112907966436398857895013920238840439094935792317312586259420582867797819820768577644291928944958368326006189377602913056642695074798348678683209109570747544838646870766142850697849052061987581482458616645428349796895209854400912728082627129304449930043999988749629051842616277433557378427888871620559148010617899207752592443985221266270265627991771208279508192215563381806826258491989484016113195250550758057131056142932953424966218340942728567632015018125711135117991181176220188878108990863396433231117888961744698612912710624629277644699659363750090500402550604445153210236153781353157515900196700659690624876985060589132394858429998725792276524411057003795902534107989034476900699194080645749740017031455588117426562335991621678933341221109705749120078042135715090050581862493986260969754955406335449285497625088101348541253997695575434228286358291375290714555823115899063540783508027932387846316384785858664057534491055537680067558816793329880763661119688184479126685843556025224814678844127224953676895553449879985238536568940608303560885724425330930822498106727665635897034039646850210658825400609051137435769114005819206710981218014837992255363450835877339583647383901537563794070019157497006763504181592879685744487729807939171878605363923656699473261885523422046387850332630465041780561866979536413389416838736317166945018866631901171389281754782992972902578347898910309002045193419906613101302887473655021357881884486712827706625446478672659653924058883206883988932572112876044639785104121630486970897571618235635597335392608512306435293862053146227403045859133168106062746159728375376536301764960771059016035328624158751946670183503781448402144703245635417026469378353596522458127127681204023111486354198579034838640009044416438567356669094731004723096107224448121292890645002231001854641090526504602623592202693214907376526202941761511069999847001012404810829246476222596863730322851433282351504320699383281435288507968749696523482336797699166579500434236083598464249639359111238754282683709743625837069299589604377452633073413475120356933966618134275869087167813444904523462023027800719463497525426653430498181970722061021474734074201101436300156470141841599583589839786014464671448441973111745350078719813909287094276084818628663281438446815844849067098325556008161566181266610522838816157594591872481895240808505180535823073704162691955773777123057705235417495970648263563163783117080419895573709659611890077066391292547231339600794529313378463593767069415000499373754013861713331887367319524819095359496215736569721752500306127551895479353132547900658468074194283963108915831966395563567973945097157999795823190092455482385882283745388905085910942994849342249843049154324870377522725525838496283987169794517007385039002916296125182252864464513851322159544693667740146486877230000969317933887831759695797081133355592642182016384877261271613843309191241908608640210731138350187670802406490420778345466304387889296642695785158731049477778808956875369830480671488483170095094074084848269333604374830735336988411711118104238639809101022344455830085345043277146678676382149425898364365605497618335576265870890437818408452368242183709456500722295021560970406974724659362942788374755264632346599187814454210001368390722405871244662166633204167979500676563643224423482404394011149414353653028432506719810371387491006737921473544197879667606983046667875419270532661933111738249495199113015492045324807931235236135851734230817810129160134152456053400021182461901057132160533371117011249188001150604079104031261623248525985295135059239753612497531997034729210493176320749993492108362827173306518308726858141159229420303996213716110053910098236748271157454786767378941068673877856316627194800006994232076774414129758274254119723761692042324474445904217054901534636370566110286980025577186984180906998915977643824766813451175865456424730938831252343428590633894579297548163454043892086720926522913657970699658175081037479280735362379226007361054032076638323889237908318228376867466028972318071959656366622244953435219663529784730205700884308257148261255352207479070057004841593342926029378002498270659121260448990883635994240561641509963692824185555948606340568934999504480455421485576346811155654979048649663960247805648418904197988443463505366743903282657068998353384595136836833684279159814334431537682266614071578610362349857876432239544511198242548450897686762745471326884669023245941600517659431729202790420247936828557962821097893002778126789658181442185764168080065255925738340501491601236218530712164307411343065485931813806870535989114575784632033445266404751038867339773595749879405061839103578068756229601246240726484371713030596952330386685543563148667682472522972731033105055268129996461043336364047157264746914145076656152880044606883973217991420370051363128590733782651801890001445187815018541956812804130404716804609598776557009971926947432390929772251550580207849027086755582329961934122321496418134419605614358536975726049576888221543799387636039354323781716800705638830757795492711403545557904084094416051495713131053546984476029907781221727156100572604402089144752095096192140060997138829295632807697944456583482533347188575392559596068111212178824791087942613108239666497040323473152848152937576901237863104071512047138361461353786344365456634368037679065370011607233830450759844765577534006322438332244983966037601967208729867107551668825890098423659030232081558446446660252762872010996829054049917726130530396932797976323238543921829684449632433835777082303529992687509217690693563907946237205881233893515876379646279528793707876333037128802697505145344564938630133107139074904870758290033393420357508391762659268709337906464720127821997117042371673970327388577537010413212006391115757806577341982901022748009995465452552870334109344459521262851633036403931927855524732470836726940595988485313320694316859527896199311580119122848027723229922033359588484961091126919887558204273073325830778628643055533339842744002697587807220997140617060494313930196134393171836275656149664349806235450650129181313851266778778239425767647586803340408903176446369572690885603983192385354226521943516073111622185936597449792709009892062870672664384378535359458545309015825907658071723723820468282573916349320073618561317876444304862074957701650081054331895463154654392393758409340018408146917212668306494358225155346971663482546482467180305574146388277827521947468547558407711765863215451156557055137793031383766073393972234030289377140790374844604905738623353956992100062528752301092718284605889446750406900299090990336652934076453118668898078076503251529104723731557546534774207063880240917811139317175261560973702015430275241775597910134545928012946566053657114835863245120872293893539557162229958023593679858149178855367658086628930588299398040032923202444376047944678056671317124488118885581989721206553024974894724198040688060542047026306999822966673998017536216700460940420739693709811672545961425179435137050025191033319904562179295049849040851175790072069054601779859315581572879931109037541654150131490442653853120655964554720809120474736838919552588342766737399528564740562286956679123434644083667900157896963702245240622874772741208742394435179589439350368187569958158480884941004292298160371916496677322853106987712674340787971856527781731611804747031562657107671862690133387541579478685199344973970774927761817630522752472265570949722005596087775020266962747918058827259059555809634949096037448847117666520541620816337172666267182557608726569936901126905129653106676475858634288828465268943304292555728641269191342937268623582536606958948775308228163785142787979933946589462494099344389302044996282354924862199179671548105695884372992015972554043319405402417449567053917397187428949858915289745461529898652931916454414532257896927734309245799522849411048138185783113635720928949628425501717551570651756109048707321255246782418335165280809073269406358510933191535540848360954555687615936949454805176304557792626158619716196841484752862375602144895594716880329907442752204867572404815258600793543405621297108793121935275645296322505474929011910957736982149021256319410740428702018316860204221222373685469684466716103420591019241235299809894160075745652870723592185160416549076189802160423944921424701089846614012450051474895389119259836445959120998268007354403374889698219727586603111211436423355857361365145409814259752320943515420237741640989148230351550133569353494962793107477219622590566226425554773604982754065482189818030869727659065426976328146424666815743035651943351097947287696312732274686706470893694592785181505442959621624570292577084037578122207029885141555331793716949035509326519512733265730474041204358653621196622333236002592866619541140230375975504495952446954215702287865940252449470995885873294272416198221039919085985696214911797092518081279162792390073190351417708747984445014186053110028948680947532335307765570319161720326762145437436132607577308037628359667850335799908503169834097127953605654032328087479714750017972688668258626444458685386966592258894453376899892707288884267637527185860394800405237945098359334580347137493825325421933107669953536726729177116850243668750576787696050689776278070444816213352565708677825815946477682912106786761630361873791177635350930628439492913757173106518859685757616204703430698625830392987449433133825777413411490740762891077148117079278507768283509186349211211984629567873708278107476594882409652227450571589011922073649375158952685913925755790636647870802346783767790649055472512658383051553771097379484934929934607476241059029539096951312383100698475415630635767616836804705649128273631396997731717407833945889817717527355700451822919520803231900183391530796628754253810159982983773389007343302787633631100519251158982693346185357508895325563346714816806105690926365380922750125342192761138722524569475210343126379006387009636043546696269587026673923367525651589878045501889481311058065820900862246235906473542546366620299602822623777300074488741525703488598293444645076720518230039587258396676972498694670909730115162274743297379880885943535939525760625841821731684433384899848512616266035459584851855387245782518226680397355496679733403924371990153948883361356683999093087309838580445604428896053742657850340202262273293221130083299436982975768369463323197470116598013842918099007818214935072378611623383670328641926108004497115913858943268622782327352274697800700157993782002808951688356905806990074314637186004686825259187354660553191311152949899170297985963226298802275310273650841610277996079204300207560353508098889803615125716246312843903589300782922702578095335613032847741018699831084777228689443805512357768752606683948608065590757052177278612249560228063137384777190399011907380503331153644621806046374295821660755097122491672536778076322313963890532005867950810815438566870609979944246906598721579222478348159638439052010138476861502241008985494915002244129198250917471818804868035143696797569990250244585985202642014200860552687509322293967970367708199590294120064151378729189207608496041573605795070970983264829387489136236273783542827847774413712898659381307851669178628613513284574862421945126435715852743265908142771301986763821432079122982949397512773409832674140659455351212613978636432684355254387892603254347606405122250189980801039375512531522076226423694184335607545070625531447486256812561410328179843695008958318933351153543726507330700993900925786441891183574625136042980690625593114326061155028136295045996756904669946029217746693215360576765215106331449346658071632934512998144431432537551324318049363436269125175394183190789528554633140625065685854606579157993555257277341265273023761434739424310695106132975281281453043327888625364191665673630436795080008449025809278693029829048089895833523002110610772188533439734418160887079748443602771512333702760801227865929059077246887454706488021904401524422116683881721305511475526981470217725973009405545757896057095397552652804354079747429081440555674094990353888244070044456246599710842872219098667839995902434129552332893248425961358028932862555846018735972611143790695993138389765666564357186209287152190150813607916089445311528657436462313566956229690336251923245779279993831260079955421060727757179955593476354490325896476316073192300358277640761009193102749363822616597018583019573030168790029319329135477476244857405575328701792573140960125494180907912424709577130540941273733593332554980406216233051955242309639336249178428071395946510207039403347793458314168732375398903201230869528164854656605527821234444221978278307907262576272395405494199960137102467250583940095452090991177057042064473244209621216612282025817045288451409752175705132966576234032755241610207322023351446491289194915066159723393747881727054229173565250781166667354437969076814859500475485585898123473970937085885293573117388104411725135975562017211894087161499259547616459135709726950490804516352265522858328045205478863882265715210130780555065600643491457565116145900748834182338571777870702786592152838911741396552221561308911700584828227068914857943318278845777358287305438077713043568043858180105778040731005370613386397760214162160271961366879694650333656612030112906798584691232976943705994905417829508681994610003073764926917062974310174852807527158112249985493125949398824142516728014570588837069134654852666239224217273929657679329540054283493531315578251252089750570197806987510137853351099246408120980735567770982282716297660168451300875825707502439945522777068289195317160379891377016562994538313142253594515092877681981339891638782355863697579135354516157460449232954980458632888442474661878580086531312272539118467146891606118190826505498097644015788704170343429388525662751602367199192404551229712996254268442023237402151326350431737331885918527879605781079032269221061505284364694271239308990521973904681224338171780234077320987278446106263479907378188166737154979605833744907349277448067424276161985841329859395414104407338159627595784658942411011269562339943381040015818615410736379537830208890497669481938895680053343190843702429030798064505624349991723689414817775678088594796850738049616215552733758034079889659363773717113433757068030610809141234321799611957688970043305050465531752833822147556312113790278737200664699338529624143537736617165899199708914655924885066496596537105393389693038036937568969027319018392230494225306876752293383473594613139715289901810237509894545541393756169760908964328712623477703836052414106825202008019769602506065764072057510768433588958853365554062646714053331434150277840904691425374881846578425905462634109548816711838723945333605136832408776377607315825368668621063241732636698050256867607574830397468384652623739297696884581031503811092518401335712407642169574595969238344785150355004225893102541617354794487732743061865690556169222273048235476771732659996654462630998465855640243221538615743199144220858191802918779023190574226260180570655943242966705173484888134957671141075927305140549110978149205297394224619880163537198540430389820282226475824340378442063864831164296564171459554308641800287310310617554525323569426324852136071779932111138701509681446327448704827570111367341403994571920674273104361069538707024295342320773566864474771535944519308284562495671481640738465123784166505853495042469761567417710681821195134910530194565761151465373396808475005176595589184082695793777693283368684786622258733300098484438771198654671344234663025887458823010919158729590141301695859588816797162075973861231070436356613540394178943497335595784053349271104520175765904265383706399817644296194409969708270665180515066267168434761075999205283382854614876657891617255595899902624232143692199163886204650336916005074630424948138123318031831459464172839643562938772591320978833578623419379010952906497885041555346439525402867298397447043234750481523695882271942756141877939375723282867312343079887933542313172583922879477238099679920128437994154448040434032528254416998414237751578935451972435066861687426277594685254900725258977725705890466957305990255261872060771841099436391593320011981932979540344920907784959647909619554744188163926779281412644988688596395616864567470799385709782075432351171601336514010166433379887849887348105641113938998099630243028728704272495821019079415663610645132863662797756975133421621220092492935196747384387492158318058515462417102305237858972247844005428862151186769431962391353812525321449444188153251830249856311931655044335561595299299241434856765362588727726454853764624955134971944389538502692276930096335005078689827632655417846339107589347532950736037576213165771800767625872799933677532288523877410853585318688728033796434996195091880173812012140077381591710458330935071901967209982581227932124829377372871469386884778786626052603296887874077789928808693176034694864413739947222188313755232719537265319538108604902053652463194757247715380863336385232504849765662760270856204747728856019529114772278013098344683474982996636956730171388152644321315953757120005957572961064070927779868029579807385217169425142776334972762540062800329630623585840162455282069117684007809337546496750858427120700844708892193333083979988312320197092339012883285556341791157725918829451019922372132885111079101060654113238491433330471365078499712721538816991413286380088596850348478484699168555295245171414150451123041441398866713540769964746077447157555110951666250137198520383658754900449447112057840208338663399382751497977183205599389435317035948554853937146663684320734941271264561201944233393427338474442496672822062916583946118821688770097130744769535653246855212994464115418368077519539172441376656809606496644874626159397608812900077943956511643542777890629971155364204465980533960866783907340502930903409742945440984714571112581653192883382785301659841570022974998072403720794377929352245419326218719700056193489076243211823162659142167403430158804591976923787366872282827784366784908543933395863761023214382378723155141442932632807096754050934171229635815718634888177645936233947046564025835874663786599567666057255028585742009321900032608997317647570183465878801949790290485187518311909845022605600868891919852346545318703034109313825211535126115280774759214294096685105459671481838862601450832560864986644448186248875544095227699218516107347134655867168606775535728603644307192987904778551632749401401050709979907251449641112890955344729881266562339449051892370962984421579251258579311524375372980484050007413189045806808933557455291525947769119929894429923009292856398791884023688405467847448917205179750686694869398334971331050909310596358036927406042813299185979965770314260781298825519210150526369601292454496850726672477850450899022653722449533400950196735166820621931431259448880212006414796559943479713031640298772305072504751019659827995618857100635052107204124428493964264058679635981040310391841928859588923128812043290863785312495690379672477892502627133926208369812053472678604467684113260235014257699659328459959078157601171877183153733846775896933346666326230032374711934360139489813379688655050822040901380363300678929343993809053240388749639277834293507277344290672279374928379799679848664171000964102847098350655304423866695828129565024575202116542674879215112232193695534227196524195553953132021188531793476300296304425302762965813503021499658998970195344868905303513087921677385154980190762198581200265423136208075866622286007406466557310783695208371071479770152857864571724592907603059262340740924225486212039892778501141689814559896641448220163284279035906727526788162185625295398791056905005915199107518005758119039953703053812292524680012347284476305398351487599455653528539301000976482245548435158715962007442042225494019364420984320182886848986287952331554200069254888818228518087970300274284370788346803748779888244387057919646010582439323496996243306140460146871353259095231648572757214011407478191423866089779308228971808993701723550928508576834876677495463416827801978599966559266563962314699406626327553021168595145202971743683958585097438419498782224833287821032573465749057771273168374350002552056990986066499477029076578031097745992187505596125955089868030107972368284942743167114196472974625725894380661434088880610894407895995987483461732041944747312669607563332129423205355869450724635531504301600253418995205261470643571275375079050666818528705679931406365663851529392890229626178723978295219868366071945678543559561707384727222429523187759844871734209152048426248780637999302423261189015826429562537551013694296215538256114046730042472583272931437970774571406519893746255773973071963309618283514497993392417875975716395383219406406552604737769239966554847903665887924694621343875995624113558112639090551183181416693840325009370222122201197138856695486625740939931788736049840934529980114987738660684803970679609384893245196659393339956053882555528080479821356964524627844410471839431606045371941421098321288856068369357288011883591247740805331387063162797961612987412750621172223609122923904905717864364273944373324427588585383335542425667775004495338648665919419140747086535698863319978665466413961154797067174298506866178782829781247685576291911363322470087446833141737861397603447741465999799849134417070613425248993654717443731269841706817825956581617071564873992549708360204751841621289505657724242378354053177480986559631729134782414549502287328064767264649468667812493283099790979150598317083333462337222929965098011107885981476550544592862685527195847440905054670256376137777734048511951821260115976595678224909315954432045674096993754476451308220922170857824545089672947253192841440776962703485233426321921007126119018271398367251653467214340738646698985263667424903796195716745306571269773504980402325981431407113242074175578516011671751928305158001266392022013012617659961910271457559492903897937750486645707966618542219918471687134657562100228258408600048391938412065654833055399256572793710130557732624828782088331119382607535420013457269220944128808526763235984092583073027333813819718159979640664451749731892751573810381085746693210362334225492106598225196089969305888419396899277814346115816016788290085635326076370388169939310307741970294240604221677629334239255185438022502265709278213883143065260061021002184825689357396104876163783937228723306431679941912222694561365186544318853817689787270354001461061744246284083895914177213709862018033499333730488710524472896534727034466119941299500568805307880451913218436535329507928506423320885268984675633443743875228710886288518688569970169899281077446464166878150739403441925540687479234421605446194809989087835683919983344722604995784584849719384076372899933864075566459748664061261978857101093892545037261335924769309621008664053437801123317204890909673907583602417547821334433079666697070279794331634089952693500387277677979469203564284986234904251940627360104376651833752969198472763171952055797723456560015978582604484242485634154846295913866162374463013494059859481893582716319570900335229831831650673370156443983699296016052751084951795197611468754328920034802381663500418263385021544279189525556345249827814060930293672016734500963092703738756982605903065329793323551520346904496307180493075855045834854568400523357869740083251787353163866911261849310455245380550992378512448335137808872105369585380413466175151651697253699062162204029931326050211709307437955689726638873882525523370559072130370259726628086906158405604292536568046301259086697037663133501560226944825570708784306826429309138513888485441605751502732769817799326514885257197444735114496343204242602349439784346537579141509515677142481305513193057525048958975839833072634233921692646208843491745615585552337617023480021977763456693657667127467349566608740696579327682585639993028943067522872177414682482935711431389544188830419066286400177170531956855387236273234160354860551336593006800171222210877812909749583069830620501026242466364187381914103212906995352261960286089723830992366353922384518753443719687670931390433029299857509470413532582604660189254960092471511006238859876449695159462585373220202927269412412826363252178370083248444501881558884661588909234096731803744076275720712152084367293316712070849746756923849982256521285909761326803014544094720749726387123401204821783474287769860373399238792310592996795239869940805062193638833591504307858426979534358354752267988331259921683435531661746043381539407152904985705957543949697238198555850940934333485487714892226807842641788848063807959327338777546507857392308367509351674285814985728937346358220556560084616613195440901411079038332360509410880408678256454121661657832054266319274559308765973166348260010661420639661102906974988094016407601792072594924897611266237141021182547424722858028286930067106460601513200862255065567303452579658422098484689670656865226067803558031951817447867533160130899936915030784765997774231016554096785228298282888021336459758636295629810098151485572819751809451820724139833127363501447018732811596744458380910496760010885420596209315608338952338612726507434934937684245605285502654996460829333963932278439067528098611080922258662790198843023140592614406484012532278334354175504178936082168077429870079547853916803588550663236385771008268210675374724093005214872399787369357957387908722140407271275105987928630914472032768114825122368887567768327837956331874613918703369244697503467381021800799868242785760013845294511813400812443587110647089629651626030865183032282239665913212546615648003022159327571124129101309320508237881335558402502764604910670045133110154902572181038537809225052810205809643058518810050770341000973015364084881941465681216922069292972414090087850918894175056061158496848471483110323799834163175161793784658660686330348630360443138198120248642615713090422289078407868118027974190100797338328415435620000044911173692511945604162822301925427031533668396396507817472507678046677840482107087145492629751684278445169264062007254781672773081468801004204880911525338575369421161653747896869270865761710027970792057507269286075452256168036978162388006958160206339831291420292396001939826335506258450475411598127998048872863889949578551343366457623073967362088315050502519204331459885007103496471068619562846155685772073013252180590178161228460720191659071119264189010997206304765828224689916743233191289518559847649944663014625287566130568556713626758433989470645908263251618130066577367721028397546762291334963976071639085989403778792250688798625079269581709300516178220981598770187491844266341281650871290805195652381404716357306407442650912593965322659923049972168631506549323025130960704506474188173751024450287469924640072188088739622582106238244088409258516265939933282781223908840221545630473725162885083700039837202915509660168391843415666092834247747393486301304131147705184550688328692205539877003459143647973446094581013467857425036911988967677144395555038020795684385567188673707611709852523413614585077248259439173829145191738416085115051514833554008402766987147229496210068900464807141629330292038912460783272647649417802056783856615291128940868635647742823212938533542892395835788540295257862010681930413686179415565438012397883315079057537209266935745065298463800977459398880668779297137632072466371781900513454712949632780626903545534741881865981781567947794472567420615807002277598579561980409848525231820721176672491858914864715339620315933776208650904468075785127959000246792991589048875073049214622243875693178055020146572474082832724652441210607382129965662544900231906776957606754352451754921058652803621920249772820745807279660891712023107161951301508598222282745289167144844416243583629815599556153765049728142013577497527556773730723600371790613493912926674066804371200786223078878804038668724946751426151945547210967642889260711531739006571961576002988341393279361097819492281809670223876926502135708881203120323347818663613005060389119473272674156262311935431731360320548466269524417831672249447091098243350871551184227085119782035084408471675079476067026832742498262227578847542642566042836983219414926484063639333022167762870235168680311826511260198355012610639828216928352514471353673506377042267230383645345691632920746947073211900367639563578059985866063224989029977318844196803990230334180397723101421790460551333008757718182452046904146730722505251987759238217689396419948717941262123309719189998617567404729673434401660550755437667504430963423029729039493109377777582207296285983556698517673803638779020140267707301541891922628985216889521378873596069622087081523585816094728238070152525133658672982974230828602806822791960870375984397389807298803356951889590219981269530699060433655280381884010641613636212779987668103740949133715229699174211494536346615796597469158872473048284685341262767610220642353061207121324555165478337159105204451232338380500450168548503454609680053672289511850941150644186850565256074976208464929529455533899190167135462629194375190189292760946976681354414805087512650905401511810967257525464792284126492902194510279208345284690580842365356568691497955601282848318392660424544751006774536002328258277014674141098282996081160517506811795786408562985619160563343130718387859845036984699490494950120330336427874528871781942321196319665096575147476643719894995237071209673606568637800233665972254350208341624202683388705057647873824513074885899575350439783813231385251501978380104300356555649065937541421968443022495602564075849256743861946137727407889049020069488951405092360975879389617666743428619701038068027320371901998612790228917628215983159214258892902383431429455428698769650052693912452938088118435047016155685515044382057133079381234117780405778877276450513483580308875815199980633940950372471862619301258554678689964854295101200062338236696720055170151907361042309174873990393678785391545048217220767204033219552013734040032098239501253818911462328014729386358623874994455154205556086821103931262174392844771659332478562845872398126413460156512755561290063810388680256253885456710703405101597175412633769573123130507221561768364000919959955544300520429881280994327935546023001594963501175285643321370097325654198266993481565672285134889503241902505202433961210592901950881547824208619720868425940186631767732865372858757726252456578428970458945741342173324780753331303152013630674788612804848089021344811849597018872453200573946545325252300034981245442058397773089713522282558282988421134421642803663921733706456737120987498139245850336218855934118149510615923276403843635414628753894539585186189188369917233499158246936053238649951522287994992524438284729946435771465647076443682496420844706452690929501336007942308970476041357433294874999792872745318931320361629386862956664838246841934673018523163262633567265535322385938464709087431057485125786487214835675108135211594523246650292301227298645123053389929239374417287555339366047330355833884825403276160890077282872711339555650155849789033223389758064937127637631073595070543278949025272835149064192598881243122783011099719288378643875011171744409612270250015626608522750804788143009297356856664854148528570240121011315500340875062775164985745136349665255335627454880852541247689712162106803195755931994866014175729315641765270602766441920884411535619372090672278039246996274429183057834860307137006606487597462828329500897181112953954428731760928255751804745468491920411341721481462873718992160401054189166668623162699036400080860378923181010875391146731403900191741193322229392336213197615540843314183149270818234401734695759731683832187903540318577699535346338403470048052026662044133629361924114379362366522920440242554113488583622622182851354731074742654034562723263446959621007075989362402268827124774290866262230692859406699726631760785318470717825952077698115596060163063082389579379013656230524297359472167451596157352995955541762096938385874931215186598588516289650784723464595613232016757775176541424150911839195856499050551604211466359656889807703100996296248020194809233659297295302300783062362671749384677061989798004602895405018430929439558766883150064326304962496891703426210264943506596266859539290060094856911483899259980111385188951716013662275297945581664190075751735281348187244807507716577358417094090563236489525479281358299080182593318248478483934457093746189138666282105465572655925354082144685332787119166510332970598230346764493201266344196993084655701628100294095409468599072053926335704134692847052931664571858184702378361949128379054437748156237893561058735333087923674193621393057402199781779874596675854844435701560775672275177621829149724671378665026189273693014352030074769728952669383056917890540960675574542699107491655540415791988690063090442184691117653369795318482859927084282024870876235956359686178057349492165143236033603404088291313431162018632808046158418466757075803814313425717310122139704052498372521555650605970691267650519904043858308204157131429149565395240763629374274451993147702423338695703550706795466134285368841299359667501677955992645102148879741891866193986963364202529266156278301210938863449279868885509107503921816495237566065269104434161057993164273729650008064098034873296531658471240480793486794432529054134664040077470414605129569737401146312895854801355385246717851837809247481130447281200132116319466424980748115003035151135120912710508783269111336230736891654683615229440113186563465939467388263394416187983573430869922722509557047725557843480543859914118129627024565576699381789377446177356379948459005097102495854820204434684350199902491232302901525822886186132197127686785507996814301728969778942193639237041310162845144709813994122011147938306177835264461588528246172541272616002270120825506023085688126288907790277138685878780709043385916491014644412852076307244734075981572912455235677287934511620806518168537060050843481593655809085983118697523048756394456942860371769943486914788543810426148177856851606243149786343616144842319456230090156312886730873324223445308805857578447833296452446982057323110829341739565558608071361429626326057417079670471472312198825856277620062761697737378253331559341919145250236945859458489607952514472218536365601107039112079525533725637676718502709118557725425875851848273028310125188118823810321891883677461378406467889397556133268836363406513765858154288231470747514054489335261503055142398078678521222998376919842098558935593029864380861598268483438889586743670439102482442508544270860947568076395639859362934285602406621247059836949540725338145956811462988483945676503856331171180783489294657550714911727761939248173566127499168619729796998606764228983312710637470389753699979390581243268581668346590936923237679103852669504847382240544404593988489652015029816071293167018895174492124990598555670606486396001994843315864850920361922772508904931136147272220699381580992807235246163003368377213278910200189697409462380835576389300730110084035817098071853275592530092824995467223584618359062275789003711365360588659738355948713992840980978782514703898936790137407562294476942117448929171131672592600340482179499972288824261645173469856639891548494128515411315719214728638453368603921491588502078182156855284504363470852959561077326142121657913095977843732158754019869506142970407527276056727042239107959208850118063581652059407722862304428803993832348788034482458476897346422333574742504479892630226684649239591831158490848530013526662366357270895452247621029750264326182321093013501530734481301172160717045636406454684508024310852668362336090097049178406972252083735855221686626005335861223693029612311251154283673810241715924019594784214203831323094755254274706692614838243765211726632979482442235486877912722125707838113494052064792570273442265555955847871696921536321693003956603709417088563123945242511705902857953837821009215916607153721658715037860240411855916011786352430247234243430679474531526435924165800336767357399853264607792724451127599274383160082554608295405968151088346299608464438862772456657956635140735140517512288623336601905234788822764682475451270546011496402142026009056420940209378751010567349396316508154702413797457699580009142539923114686804521042443159816825503529436596508855233098988638280946689218236547361759406751336219722732101131631356115859753362718298155668856540555583524765583478765022198232890418401855900574838641059525126948646441043226404034789282764897869878257622238328864203885885677498700242867962029325764530754455071720339030722773303902410592278703990097326597162839013329244071921419273212883873136518183800230251249527900169611413083704444071727476159059547406533433534416844883477273783217002390818537110020998878818939434950113181008125934224082471794484538134428459119861760324334640389980398549465853288148548415497307367054320121401082604812345546706056013487988235636664952007411211325084424335178802575882346814061259022930066875772170169996307763163037864948442290653578019248406551592796233600727842386895292369608571899571516869405231197823453991453505354782008238306851498352782572633154823263839067869598820731329817731120500996536654840220455948646703940903770301985462410801841413707850614669279706973707177143180154384101910855611361039330696235576778916467424365696227850778261415473251303030338782151032890019042289554131932987917338561005861090967054301754415746815675554241527135232272679992533413542010883211644948983718405115624806166053378986800971046422073179864784401717606098991437745271744581558341327272496162679433317169092949912470895952440100669620793877569459047537557273509390259234038648394208600760644591734156158429321796184665784850628241602840652346295713998750517479442890738087561649647310502946500646099248098505689729589435151605975130204333965715767744036252913829342328412201447356774037581526346287431928287784473185841147306715241131050782257521952340101220604817993522799787525049813640582339945295350613348687814920170940581912219044506888161489407010909034962507255656684016503484698328762921674063805545870137337737409953285482730667155693876800789238873262566014398650625502695633014342150590030266179236689448985197962104860287467278138469139071393138111377229795343180174801017311070675280105713372037572228571930477231875192266633831642042503251438540828487735861011913723106566996211364361854135462033864768381220650667603859237842040925976707968393166014060376184165673367932596474515654465363733802774226148435082270526425014070747383091448319427741849331648928421514075106516870331895529424722960527035270910043811062874913602572863344735947970724500675162409448900157187513375687061960530770723359360618539532870727948697696043512504225428560357698083352872496934901522383135779465062550353329810249986218528669241109864444532875165976164871210309805867187598759223474902318357544344117259761635042917945354654443720598308556544152166601266217767479993706894888836008797934498244443452323427247670840212425614386254053332130680895343016374508189226076272823654573512133393925388888919632439824325214529771737686443351720144133077280978872694830533790585640045506387141889803226417354835190546942994181591533676844901748236357001592712189448522442500518183056056625587914295075682619814239587017811452651711938708885412729729563351993991983710548800851320581573221607616864872725932531388976443402981954270737264999722497557626974048740753358807242482188635640248675415418555568023104904603705045716825208371343491926121398916631780633089734434837788759987490076939117694888454430564199497158686150711215962674492717891652123372738763737997344246404707723269665914152866063501456958452125931548765005058697183454987342574945996083574022604780957253274868589938965774569288520181538920941056573283856598487585892759973334753247330866480817180485066148547738162294749392713479361182126431244699583147191694443183231283980500406531648908475809896912503674268972877010974136846944783820680157392278421231665119116956213989899913368329748836049366557840590151508484655941728708121090956544296449177918255410675363173145038878724944813671607023031133526884108999809040148842597084977792470021511540004199159938557091509605622641679639354403224259289677955569240049253103687834537873590973058548995027796886731561128151245828754681363514356851657803723900862424439630818737858078302860090839974710372079388855734022321773328032799954235659332314226930907528292837059903510479176550242747734920974156117798298653936805623715638186960845016369241291713119044727008943460997693176760552850883607550371607778925216350302537717950395388932387968340135395822116570105512084024324446463488735501695023678360961573182029450546938260832806343799559692689898008867669316110426845029517121699732298373687915642686836682787428195960266490894751135316382996400214799393283695048077260092175191669395791576757364673709312563422193191841683971148676997621003088828705743520111044416929831514459714372871724596314066543701478842549626474952901495026722011521418101226783927171469868604561310964550496396105307836552619694304261950632860188371263822929231287795666920685542581697297376418968897499483771259920288147489595113271527284741112779238053180387383252866250246642514683121350683394377172774265990082233242876951794653952063683595718706003779381506297736824109722206708280200144335517129652258810287369782897461745706147767206543448242959387557812662744629112798809277743000710523687004873107940025130922558073176249255695202401364744283505563579705414988061646956002587104688375048537867519780928858290556752311735238051493710357774967574812909254504749171931859826511611999299553593792157456279062293494305313670850054786279765302416331179955602625214827075860252338666853166048184480174225565005823873022005738258906093255497893416474416786605634281253924356985334465653606862244610972356678085226499460346111403114728386888683185678338363014587214623716889353296981355889879659243402730067549234014706782273836822782728446734165091408852611726143620776101795692840804330190365393831919283786621152714959161714112012231722113044057846613397970623610075196916503503120472238163848491486378309040710778861630785089541137854447445483013454599891096279975054388162411914296150289914076235394004799726358039481001124352568131715302919457894244730450129519532158215382314020408605713460730748810506517362520568842305357556354952690963605611220990746948026382593745855934683770226959850361031947949820029579958102608293460964948093643298969749488996705868244421502123150790753525807325039764469015165733724343314470486674188690954795941936397308234339482476186557707187502433271882375843862419660097180068800769117143892240602931173542387907567515791661375679441012952235171824009480625422621986583115433163107820367230030431555628664674878403123010147560736937712362817261140797687251727146202273016129350594662186493594507000095413038848435315240592015633983949951465514551674064959794133281303766076694213503846671897474896458695676954208186778458698493067938230269664020143490687065026586369436610623074161833932320312508786632370645178966397287286945320827072114542102789866234095618473585373946231092420986158519075901079734323287628534151285583472012981513391332182742025644773428311407572979887725362870734925384954641979370221357525163696131576289805415157975556224741644831085410700269274077614086917594415847785134371448504548500282434701043748902540531127327717749549456954136155990085405066497801741554682944132893698639730983258988509651239320694876492207241626819512380662296469698911063673494403200200940736753233155293178241288104968364462072048212239020810515753722009953522661398105123977921318880020811305217268368722656341268907631840255087694537183480922660905311460009724542677100108102218482996297332777004870066432579641217024714916861873460157991086767663894105386687877181856834671306179156506299856954567903370508050173958859643192134875683873534792126322882600760589122193060823134219507234405080109083894908734737246485213629868150256935309388384550697880634368297669974911166306494933400237136759729016043429920716074982011410269437279016703404729696111927808561121552152885999998484496149473568546521865254445480475343633919866101202419268150978066978221435963006199741648542954292087095695361436996274475502021452413821530235260415337194494709655282937579740423571592563359128578747568995724729778605696546065183881031833239794992190109423107903469249961133157734710591233957771628934710019410893130902746514625490142951695626838267643900966450725364603162476885577886224038700004661419249455664491009395283186446018831719480957836856765087559897396369236368441389830984117290388921290054875432687696410848443562490697750545762910933548238804119572098711560311258681160369048962825717163058870116624790357012643842010891841423627914219852310172040997174915613122151530411382671535336829714031636085459838535064740689022987893862088933023180173137336961350244079741190613227266506377299533285926501455186040760911536171438335785937226795518570080705665894901834159340268762067435553663174919629283569235237358225501037439310305395750071833674220060756010615248291552421623166815607349902373524524336676779642254086668927112216756740087273266866794308932778817362517127242320293085494041931267767802232539210780831513343422676376281650404402314376346320913999019056288407882433145208405612388597045772038934280250838726047600496463527805079178687540593957607728465909062104258608695408503382239693093820630980427559485075700081477903209636456964674430286959226842205885769582821833167116572726800658991511852061596905816487675910559847110301334029303693740338656631816035708788132637815354537587548766703609817365816166746486157367658518801169355897759332692888654527049080630855720184507768969296418973259128983586639129586857224095231002808713305810973668676063522466932773236521783921550224910171346039748954385329642430618340157587424427037474142905025889009914260165466761704970112474286483346045673230585616940681281262731519404105921077201928046964258189956310277283780459872882645754796671474557795513613696605692278570174925719902728402216815420371053272687912950880047752792718865115821743560085765453018812944637016162407096748100740149754313337920306865452104805242880975129133392648779293089060141185147243831098132300516281260455054901442125997620799264371066767167630954958122455607594759072586288597210921730535923369839066963207251817003811693187354406427397959861632532889843615234295437602620562091188585940783487519133008304634788954551076967014848301621659492013776748404490533367363360053098617967916281018571394060795899423637849818675887385261141105928412731851485370264675013062537974901490254268883658252842355076071676501730680369850841721722731746339156347839879506985277944494843102948188967872919496176400262500027113545234697113049018781493884775166199917410018663301884361678018698937149732616054918313044755288768731965075453652475815253329071783399540749970927749092103396266867302531279877271700210666595280403158714495484194481764743778377087379968702052390221361911519065251912069353429320628318386560794980163096106570552055284873151071817167430028418680025284162986796271988618845887097435316933035747673409395702198102749152324744108296820169546930917550642791132726196092084233086640663756475165297211068264484953416084487783586393798836203989922576803950481892989494026085234834680034072818350881774812805351500560679103918454820874043490121484199634556769804661638211168716570028917034285422396655073113576526651055541387632136005297292408238322955971775407043088249305563482423315370526299165602600973273892327724302627632307019085483319653986602427094028778674278029882247440329561043338275276607160714934140357435150626715681846855071901817998933278926604260367867798613510473797200186018440027298342588835981724943213081228806644432103788266329097538632518081247078059961985528194507554011915182131910820753807373989024020799158714308691892896395226761687116548100789331185637620625365953723625350159262126068340290812120073254878442498348960772204106308809115051021264185162732443356904827722734428912096069393854835900761203475371473883532867327601072671486075065614979459829604792340760362406681895794353846418257861713231305503840156818185333555400763276737846986699311710477407128222954126467840628548284098724972786742977216551006710076820575762966655424707894777519431990998683413186727843334424991170340699551882053533045801103671113879238680221768196181913402586655985147536745491377710858271660390669692929806686746491868366878017749199651063671117366666513542106200989773843970574726572137168600294854831693782375057841197144128104393461230038092073659112851420435903430161794111512715476951530438590042882020060153222598324778718207051454367680166218346388936392357366336169369807338835057854676270546740121415438400525301547761817644327171216313467460889945304938466631244184843797894987025682190031587030412948730124996334833720877639682220980951138949523666566661049847465166250918150519698253389438476368070746005777794524190098032429234928245898177444083198775085835593622428502521938564583013943500037506974732973842798939048282429074006526308150669303281283395854385653560555745623447027181451034898330823557346620115228828781343176675339784557428249546060476245886348008281272492524893328542061667258128769869859166706943684554084099449490173481256172813291180418792351256915522401149893709463173364699816531554725222304397385948383412605028277152244650300363736582687300832192211429708565094049556420553146618348560786079203975510709169354192125072691489590058205158685845925570088063061163134722411565322269817977860118802942474292777484446003417785351490064094431710292918111661600084761598296278975276097916566710414773359139981548186337193803026326778424747264496142921357389050282265094132048856313030828495956639146234489781337530715141782039172350200155174471106251711419244986435093885034205623692982932156289632701468967289838704999753581486239000000764594212131459981986462063632626047035612454650883199931824155243639043463744230816339532622718011035878182529455732362458868275541465969150536885462175952778389317725383523120947322419158047641216445820956325929842014852096531287067571112336959473755385027691874219076555124487951700287856687371684361094482164864557559843443633007574284293880889990015103198089288158523264764738163478359995464925269859358764823332557318497683185639691779313306025471967801343799032021014831106755736506602296518670767154766424350391519634892440640385720154620782149743610888954866918829935980148410398178551063566351644745658805388083919957277607762421849335320522942811613250532274066610223653631630019786960502898556530104023507650155969186094818685619404761838129376232762517838385687783952736614053878956408818991049693546265496284498645358567257594106662175095824695491167172831048494955446636468634790335677015039814937224791352596578105558636164674740762947072008525729019083886587359734895004484519112060120750746170241019837769095789157570419470481391297515463061864419771613046097641297716030540534093985108288886261657983293087810140567742162909583876471370659344640397303867065099207626748057778789092450935631313568176056942440715027107343903898412458508691427009323283793419186850683119481135694823366053034065144696501614509180092070557311525299953553736012465201707763190447823987688671468428280685860399984801537364217810961902719645015804660496775890266956426629774162005089651989258960037768702814791956731454616556496323828709542626917290912809810680858606973805488496626387304908663563772900626771808526895890552261869922368251827638662498117494820762977885273857463041591421469519055549437839075173765215994689209149338647960970695053851069149396717034002996703789487047602712486366627807975001139276298126597776240876658856994754056819876105659216505424127985978966238669621101051851996430324161123353485222884529367546733134188334623612342752409757467076892465738956532091361619736218555171324810046732901022238164049789983208342283910942876674021890422877961288969355494591816016594318646535091955490685988595884335079015058543253096555169088307388745146657650879063703767297024906221000396020881670581728635245768247004249444534762186032340052633768728091074842862587074235354103505059125757102622964725083671723690404773413955381635396596990672108346052497717666383988427688387643076191136542859540432426186613719223250423927560266557523252520181074840715518088213445188809647550474196749727053953723413751297250794296241044304878207021607610703146614447525468459558465598477221434823017319195704660884634314552385825844273175788678791680579217302491760821765678883340624526035654196638671713649096948195192939134446475130051254006924106187635457660826471129808677048531166466978746553028043811271291043566174976999898096111006854028731040547638675456027953061717542660990295631464804269158047132797284998966731174832084477641215482977744422187046551887383540791644222149220130150368805398902400585048427810426191468082348939555394054207122163443225630486274632837559739608973118224732599761664932871979368870657771924555351025484457298062943413800849604206198510719611513759613839989402872846187209115571357066477110984051566928309741019397279374346428960996063210857230170639686327063648952308732942631699761712243833732305337910496418848114487383202883657890278999092548576234969308521019372669031813320366148071499690927608987545642623340897102358180791711420211156815933741485628035627413828082499075838703487007542857747616425966091537313428470376061907200239086274208614055549258084871734647072648211234652539074938712197251663912980455026166578530791025918141215504901276089252592241846980595394998227447281545418214241928297147762020030506563200337949183998409822717627715599677887938972170398419073140251358632685467230206735272552896143000224514709455688248393444992075026580723825156784380686638908441331955527881925170784080126594890872606266132715041463475773943920306777733962794960366848980417515182176902455777118933188911609684769144710125296988606433186636114008713697947747314017438065661469967921879255583375347879064576107552191924740168894155288900305699331278058371826914323779007684515722411027226432081247909189972329673613617358647745292220488078195064990630262368617971118575688582480373429919976846875160834990841482128000376423357631991764393454209130349528862785664557129727445157837220968671596347626984059195773630478515630049625426718572579461766658309946511699763985483382460153238446240532471717850916998002913671203536851147821642965206309240706552084182512716639976087516768336011664007228756715202014467468483139854097831050169049213079940868248475388884590669811895865846385532365323788616444349004406108236640082807392377497181786615485490779172462877136534151808969962849306194520663281259072553171394803266960250773837902652814936785836649967686682878881298131941478202577437319797428910845151476524059392992342606384611831198083221278096337602469653918302252428019594748925685630787127127605140276740653309460821253857062272768473821197850458178068940320373142123151124443536742834223993668102483657005167576234436894871354021410956167288453457417388534070232472939572477289785740180187065030780617912973604260366432424890159771304054322200971967732518900608742326981942357921513957692807644217176181223108623918563621379084321804705084930170563877702340383783565844353339267981862672428277679936331408869773006565289287523346258792351334700559712009708464017673350511767938857462001814409426105827405706680937968242744182429270045087438294970467719746903226605902887524563429883004359430999297935860270663995611249714574186605002210381174381593404886261753446533762412285833680428727147811836498924805713502304091819887118608195260272615996520998717336726172952665769522052865856736792358971789732924657219996190622845066229253023803606691676536050768069514930444757521291593323359345929417774101893248334059057941571938289997835686277208410496741012827208520986666326346423067947293455794814449913575287616641679534799898365694224639905286019720927833361126820303934565525534560767464273508964194387597415474625324756043654852959585084994466026702622426457373383738246208114049551657275682923022491398900827758622729920268085876236261319464655306929142215615544228930309359161531956567803505394125999541587926049285601766827319570439293340776662855608046935993155737614130042319894646868947430558567381026121730711497418114338675587588945584783337003628357904804556361371403978053090488413023584783553845173311025408294395759968033244874009451571693860016278721217068496617544167139264925380636282127128813700145717437560678991190497338829609517046527249762069081717334077977793314814650581928686242114614844303100086539444010654735695959141196488783503104517663688144730773154500046655303196575272486756160396480757452352237721809494867436628177474941940745552390180496882736946812190999442373840996931180349709323312584931907662769415312191891277753054189858191025333400610244573308050684032427498409989576109863622002492510911720085821690199244795748035034885433061083036485259545784164586712601769790336651068309323557257147787145568098276829885198757101723065233424038894261728378800690190946193741738406145661436383225316210028102894296334485775042726231779265827382438214313317253151989072294542277532390914612346418905052921457369882019546429811886584249437308813483207037616561075590722844182235149905160485319749894143544516813413982163123906137321102053629911482200960103788835755412444997384474184176189266150290859766298621893018477325439401583586180367544254772107681081943629737363558039000496133486241346956773518210021203606568049481099194409861974910637958028270089916176646070345123694705484940568684975935070235836534391756258793988498186693440252164851485011733213841292130916129463902788176208418972641407981792530225435003028706990319189059009961757906997884059933009038671688163034935016674312023990774174451289533108604948453568223922543854628372098172229246828142936519173584595330622383043612227290635857948330493198583043987285908291130137240609164103386794395405119981445290049329527480596578743823435547211439098484916430309683586147246579398467275052567443601630452013545819979356191123365165861450840403423698203198915184358061171037884284220096222608839777272283959620917757175416304281298717799701670695544526732557005545383791322767284764866400955847838840739105775599254779805065406186588227530697377844654518071556386409095114274196324269414876669114241015983667715437427098461864698751675638982697798059475422950198147265045024730258501992724897026987834008389053082121396398806734864744331926375433242373098818448099364464799488319609013869105611543796703679769406582217385008741599232983480530150014326165831513426135705201462336734973056338413050904658413550542941653687023766241992098915303297930236839724799054522309209242775661702403764140362243789920008479502004955760686960770887048252284399894844105950954263877582139910382974401606235675965065382053889073349657907998882084135137691515998394722936876058717968736911978387364047994133291262836539356163367306317275951530269095576073006504257820084402321509419374666111571741904754426961979225766837552858032822641572183897286191438885048272440942804640326714494156062538973935026105940961947293782321867518376800786860950036820607747864838032458783625145606922650672342905916474011142518682812464634188801875856115370300579898876282702232716022995154581009454648714685992420998588224772730857845493210624955485308415358854379421048343897021955376358424755756789471795113524297166568305826197111880263299029189885974479948119087204875876519279684138165715622752162816188576859691421489284400975808314506176036612359572934715605127240156729377124054317915439872305679993288410778367943989601965171040519940319390731075461003988268826509224283317465736595140439018224352122951847811513607672764771168343927486414104114701805762543062722295443978303149509241520814032191319118085903518200531009104581532479578429504590392053135043979831563361845590500636241695353744141226600698629858455588109883392640567506832293712067375891071334845268108958190405565779068002763518064385975713561537420095260107524554208993625972263044163949500751043994133994003978389649776137234844033829338884573375520547087911939052774105704514822734253234111720484170280587559500355661568671083295376702181471413566117238033979484895203656644621690133038804227451479204924858399435982630911063122722199662011781345893209338629825399938632694286663473564203975494683631776862013708379089698331586858022583222910453835485162728199797948249691453416951404266740260793815276549131625269404849259912703260435753234657797262652537639867985898414984449925757424079344501784622392428761161717436511287087417031115055636732606208105243353443147684087083475202896885529983455487702322808297093925190239754188962337524560785016220815176485027577224220750807185509551882310210332715291966214550234277421520672596480746467272635582231534977602273686005598284759021142517841884612112102643791741905188611844695024045664776703997422011360288309358170332056798046234873935891861390041065516600460822914479213523477833328316808551685528972265859091267761961496854372821930945969629752537119987531780010644325039596121771933199983890528429059133197840488985056106385660978365280491389376131654245066260029141054364969262621815874436726038654938025842105692487307858445118314910100179517873979750956877604156959208213458665415011189525375637784876637567022838678183453848186187366504911964846448271815357742785243259540095577176788779483705394329633319573114810224317832817640334320285016869035931283335832586517328541711819507401737727285025071618448103093419711752038910303000576851559626939492719901205783818981340679134491889028496829031233925652645516011643815168646017161207907813794229953931319823140825642633183665980371318293355650148554384326994109899492084242544307791551648756694116651405655220832662085310094030644352029894431009355851550542526783020218766285064018369352704012632040547044036450723602762196749194004221739139999262058791078080831798129246440480949617444681036643110949722001899461647433318636753124020014435849320939931797390628475069777139825056884250669619870128333564436583254297962762411826500481060941572785729283818852356663647253404317788137426190638965065011116947075336930682921815660126297635827613873597845903538238162196538019458089985086384928230659030878552373660035224198385193778691129119644351707673195588825162732216747212693467670690995994391152639802560208802750173335203265976183348645248773099356276907058834282024088893084173434840007184786499079537087477859522005448729111686138366236587402297616478818568546303267708416424937121944494083795477230471899541508931596704148533489757969935736170075543939274876945976196422585225221845046525186748088509541720546212134007312752988614562644393602704560688759408043956546228290510100069196798252289935525926031603478741110237853370417405465065974881014922083955614597772056299769090727967989462457176003611051276045620807118662574347163327582636876514622202070386535084273162424906626680150186709997192718982726527617220152798260827213317263071708081763551971339776187099780726810831738688233300431253507258827622568342603451717263721086773987435526903798150389292415914652778688625212772704276039939816097965949615855687089477516110590362972561929167562129700289089123641070861836076563977336489830004067189517576118121259735944954801614866631165521538867814991475910196435900628854544631335629269673776236362841561759630663337207309204380089622894552134882794050901124045610821763009303476933443133122987338131077698276314029755855875013911097762222899542132177291230308132084299578584187283048614269816776061820425548349357102453936109619635498654637791168396009386351817791510557214341983187735724469578919475079589608551086120932701855918094457481670131383628125144701692159921243205694605284452721472050430543150177159834566273591171721409102789206099606925454136989429537339821352013529477262097113753288059973347510301170786384459248741206983517207056907750830716554689558327891958650529017330355653204920834587968927149208685137592318849209981248990333340409307022622748445390653566267597590657278718360004748265882705692957872652828470464377161322788851977874057593534219226618093898567924702293279272698610797369827714851731415883326024305253885720086864145304546551513761883291190678838529584559589280986179166399255732862462581530176664616253383203369956013710462928434768512683405850383970804932255893643570601298482927666137561783731171291525208071324717563110041918214958962892552578131222316374574247724363941191422766492866837054019646342327381548356740837758002099206902960795136709151220251686435556288879459874338100671969333974147909826566950862514559621170536052885549754982917202881620422939085588693952468353183770478365495769369069400402907313013052020863167270173630514601539703568745247710462376214766036815955326298036650561649936506428305762383652455069961718757451811093731121284386812786391495008431560494897119788720279272073635178333744094544815447397140765076289555877628717695772953847247802975827204010883337738838074359541871876173330362712057988475805324376177582415222521241114014528482277117172877535459414516502440533064511014736449488286878052454866327996346319193178203975463421218524328749386048947612790599775399952662748508073184089053866466916874779034013040939981485972219571205092095367358389785370331431338342664701778591020353225252970900425823073833921565037956419368883480926725917157483726045337665513748379524282536283860666903755388524422982844586437366961429646257892643571442857982816357643140983677880473872535587818630017069734859950037457832744268210617265464994793734941906556992568411702439509248135603605096035241930866115023402262232208911225352981459516867659874225424639961440743644141234504143820469846797217448031803338018093903694422264458953491400406381956106121739852317064381331346252351576343953418072627688813482084645531563425993481289083086413746424718434143483570851427419908193823737299391130345610011121571323782700481455665945513943908205270187895637507900939645480454294664412064089242250568340171850560377644637694019059624030217159516082445421452300241060201260753646590961066370598062495939915496830378318568519488818878565405159625539638281753372349399100294181324577678683160051486237566798441029428233594338479547114378725048630434996785751049999715533365248192650031420343341077790781953873215416935924665119806020851880671178394177772498978154139857517544001779934839482722837850936413258910848084875141280918394068491605111395739381822132522866735268427091446617008036957308333923523429204953189654534827562331077134403748197065646101955525492855037421509068727316342707443464956272054807075878277652803291720465600828567799355195917089706899247724728980931940107532124644395988125108365044996020551846588637227630379132572351630981246264230663989243968133324795256483202307905094782882329754711834916115874614793641887377714971471344237219244806147625244389671683842305023073006628021387994753468409735822535889761669371498130390278315258210205035727929769367410933347395629227325705722112200814537685443245644912717675572996425184310647169178845305532311930974974967682600897311341832919307884609159050914693428861045558946616279056834455794406921616544338744167327208967344375285390179688250223230470930708455616384931322090135341105131485811631636930045724130161917859385696239881700608269796376004134746121304868050856912527243753393138015530984301490765628604338234450545379610248917187100113083387804935980855941170938735613122615689726123411744303599356704886326896264121101080973592951436468344583626723041723367625885353911757157706222895268502326617293378000705611934652077570672408363839493528253603298858656653215811823674249967935737317958714408546883055145860826149680782393426929765676931777925763288067677722162447763231019683956155997693917710063201284910856216251304266244379195892360288188285531910029793057525891728392233824367014932275678177366318465909484313361801362139329261984139722662794837865642541431002021037883849163354556780765923456569125759954895268049808007687729056052076494415270012651080358506638415634771114899200999479218362639135204664809728891689571086182448220936851605792665103539979973157011844014007831370460797307677076301566960832810766043349754408520809202844258264745368737392164740922429343426815874267174926622321761959452451267328654204503452359497450370393631147810801231389927361768328660523818413909424398712699727778775027877462506460875906972508441045502893382540980142422640483339014701754749080953084134420961455264886213752877997824445962466321873332011545926404585638220231378574148993104443579358918102604751268609901744475447989579907004563641119433859783137833675092630587986949273159158600835858001209292067181116426356823563329433440173297476147219945143113266007267149527196776285170564280996217328129409706056548405137366433481025088089905275001849645163304268625211819643735452435871003635562341360521118997515244015241345411683699138739128990448548008251639111631832984703620162223311912379863791505225607497233791846421123091932155508048540889273023739403079960595282887907018358853011800654102195778238642563708706429087839566718878042290862037803246564377867108494617695355244726903034011769333259916391700652321249288205345582591070643413554704929489284684456954751485348898981523082813810225418834710667600165236476089542768714274837828270010437493534938997861307985533161156781609092076295445819908467991763536338894440254885903754727229828072622866600257602030363676983634938563431052055230826540070456154685759783592892725745036433384896156724445774371423502890071721485210310019338413290967434091002082393401564547433729085783323255530048747625447122550794445715273288626182218459723979357265507477528181339856305532128808025859329980930828890943576173603686910859535997703927872234721223679620554106449708950048245880699847500978582901465603456933551180890904342078189719616403352525392561974741937195193025786262119560781886234868343008653113410523370301052610890604632671565476086911772026099284708552797645460014575556459010583776333294108487777191998368107062463527237231420008856330489972197860270055477982615294722436562597528509050603561612338644464742216690973335964976656886211398209479879899353931402269460661105751205448755793496485259623556100239417692516291827573425982066042426599100990025284382433814367436534863457303542217568673033161835774802451699698076100958134326419855545544771225700401537241107322739577096018050336579393662583385448682662644530052670972065345478536456716378011116156113798830724816694662257992955874963376153997764528678277805897359597722974517976987023319928157196315633729713255210452993261556842619080067226661889071677378133896887307479668078420430978040279674006095171612741815202726419329094771884727939637407522413991815002160647113524084048823743056443062455620802643194025867738692181917261840659320642500206709054841975832021156919246027897599679727586563568452030249984514075927242899079301103498591164050731247643575550431965536075310023291820334133075814721352691697183735911477170014703014265986854735119240473970223415257921711000651843608728255656240442145140707276033094318666978016233981321352707642108019472418640657015945583317722857130975664910261646301199696786687847271998149797122834367105947022120834196150929208477515088277633877623094902733824198798622292603461922505242406414605575083941349785270141220224131856889487955968890533203706090557051460629432781127628818013211703447225930740586826621926488821716009637432492530820475432024711502175908707934097494748843984205258847166429254988661196090462691013279937139161910543801223922127757682865207553525219697748898485853850756839628395533487643742541307718117612589993304659052766798217235392964092851436731998709443078694001617261811782357651896725549757159784280782914293495226900915599734180872934216332549260786302157847658667696857410036800685703462546414604083003437784587555346564814088124496657856124352832588556391192635768053002041210612209536417627211412778748967868691811340383796309068762378242940208091308043331775976916476860918063042205165767590714016738184023206192566046776934646856151422572739378260081650639290703359095060916510825410415776555195177647489799380354424635810830306133098557833200078332345947851258396589998216862168818459338354263276759344528021163374875232222252093826861700311632197897027117632987349749771448716967944065480665253345616087004218065972358890785635916048884013609288645992627357576498046343466752265611290279968466169254866404601311655313599675077717445357472882682673192412225702661146927970636044466675594884249341172854775234156677096671572708504558797586717835888263096578884857316721521503917860670233352520394412684568509335496163860685940323154725574569204859678044911583962173398547980897332020742280945599543642338920182963163866856610385434395645104212195644675097872075106713797959511614412239344760398940882249976915386824518984047104403214165668239149721757149797609565297175692672738194932513858664100936733692537899299665972402894834930131177387482312799997011632263642869091453652619376725323482212929827560015473135055055629543797088287195562745648786965031011199445276349881194065651439223595486206909274284709999001847107662741695052770876990307864313840120717283891096218579044051070200375938793536514612980083874029885865901667773281316638895778793417516764327079193331922211621400396113398868881963260392654508892864950997154574518645130539048743836851853301742535742160995201554426327863986483579912669535876039049958865897722070404388115997059780552453348883550773386937000036043189227546252115851026376459757557076874525207145248267364591188814627337367130754855100691301300421228767428850891197377652962484120235041572303320857226986451999029530878412065879875602227235442177075457273672352005689716293356125020085426355381454706551500823193790753481156650893522317901341716897064798810521226553106216220792171696611434790522810269659243725146018462159716941103306450012619826058400135921790808081901771150878073901192733731682228144575112444820403646051982221226495160751956068210449980645874616485575296199046139319379361414554561498908469347597255007190961123367250715835539637412589099834616912461539440355277113770813153155973514939569641742927590427115246160784199649833759191503850043186911227866433522198568236366493311152234989927819322166147290610579518930501096749172092977325417983069547579710152135159809327495396924063770821001651800191092958995845763177963722025829816854559301329648551514014718853245352137126558636191898016279744852475932232679918445377885160126684979563557421590562720151104195306651085447555718383327222105337985618489948854734032772737765999405279777325987178975298605086378703088458570713831184231731278507998271528458433106586086167889588417445254440156640724437876519902905143414295609585410175382805578637547859541278446828252064505499631255270202728153490657864658371370615801757826932091606602611205582104680898019886722905672734107127315747056600971563835754321123083609343939165444321077349180442834086210140647936323659431648372020650810437979810041342382678635951661743932624235061002616643362812975707887277815077255744311301705679886516958078294970069686842607384532593311625425216914841826683933177921132292392377451435136227595014877741637964464120416507703072995441251616014569578676485948350706151200437672156725787055723188976338573509375154546730473818945723334598054172626663940865050775768296307454523975746041468623948073031180317035744344165263395381219451742105961756760337860461277870910113147827148010738143835823330113471974720569783972525255111240166500919966013240117353701927732923536103133595637548932401273218319541797096578833971050048911098506266693149972724143181504354041227887969007926189477297914908023592963217438909016987391878390920060763789407559614188577361896075755108678832953575109140794164798892374565879162794282555517567297947722686845990592567954499389954214388032787835904791459948496506460030278191082671354602420403422868677027652084906838150128691487294402609609561284658154332067325783599208758256441899114393551183297622069408170919409204433838444759716731423446641302074127556632204271940072663993172844296269558824336107830530961583823213283707818198868139071923400306266506360136174314791283935340776452089030506746820179706518826217939235312060270182502612662711384021549901242968267932779267574891129185211919805158134640272411616203983772388265891693293600175381051664555656382526149767061914491496588019122565153192711794737092289142137567387513920310747980850321874279754661329611527746490162178318716442150325808504222649281426286099984413032859092100712781719361734825678933191528516548053614023287061749210291779806245955708330810035732422579333474190004235426729248477113334502323703383826866476385099640154193061694908848982349311987369845793162717417456110552347511566798547828797708084866513698215296391293741516670764327902835724164452435622388763272787009980746760281363085420369928689534862989983426492980660022939117033935823024013606884647811677617759528155332674574387335038869006193206214021951471184196808677380320301561089644627344084870506457728281764953784912090702561042497050723504290957737527768823205552485177332522089484386182840355988921167711862413538667659376231944215072915820847206809298303645034528562699018060031436236053886160988096748646071394235632192125020325638067375274067188225056472385240593656401807850769340278246780854667757912296836487941485045085220546145377615127581387576261628539006338626802459591860119639512878923318484025919925917838424351085655962944183904661063036235726558154307342763266321266422264310408274411174389403840600645826259443705261111983050145619302008526864718772161832021906749559351573321325609195917082047435289788686264442678874782245702838996828629191167502480857510555214872332458957353999296400911387774708730675688028346966908061582831166012265880337919501388592883517392693520105348137693711646577302279993405793242742480783813068294307897794484880962252941692118303785132906940988911637099064643944818112335489982936946110289674908261338122583783188536758540201537004758670104315080967044233397854887351541632984966174581805527741749458204375553875658374317607206322393557619279820619406247135198666914606886290313931162241451700104119752863550650146527133320233513941431025126484505229345239058057871258815850741205983641306322967118889650509170880057072750140019030012924804992929967131710870533980863460556049111902033749053338934008422167563593308569452918223964624696978702610884466464525566781522232085156488112762919182447588972044208037431574078797622240459903551895366974208855298576367505846435350341554215881809598194922373850082225222711886283158045959688541450784326740760987160939902651786679554427174334758898200553024991385656676642829870972204519170027122499712714896877978862550695713823041119174262314663153214884386641919093237159893048049893582870262492399877582523924539120859212358732448960733728617543601192918506747784959021441834215076621912127458651354399852283622878478973884693560274528151660538325136230685512619172914192713777668644015559277141636798144969552955926921174307256549281909162664748693879414206853581456934068728818229328079418040574874463670668340039573358347417246813025002849877920046809277003573458974791475180237685685909646833475621954802035098560098740748845662823691416886644492783213956528846694684838187481695662219474935958004257037006004244978518684684377779904498851124795704010326243431300392346538260431830185502556954240607615869530111634002739414875977240220858350605130447050381411652853782781585724958909614997712189682965997610662500915316970269594610185964482330462658265440547286822819508891760004124702587643264917381768940999557428440297211323240729054930693003972776135783509668553795916056454056194981951255363068281223852482102512967296077588575452770718425154443530481677610739951061628940868965906047368239568878458423044226291813347675228027719127712522663890018887180300842949889114101691389663465774053293928327792017074576142867972989203933872415322431273550258818714321919160789456571752910474518159582147680116063643505934057279361289046143432507412367950736402514921179505430207966135009812212712268716369964012036211964265966828816896796275428331854270295409243755383704601703453208478930539414001316687649461456647549188955700962867837279423275495701328667189902190337536053459348963450775796506821661845988451562575147054336700612844791529345692310113239747257936479882924779035243768809640556394125193987246634230473701693429397954341126827089717724295400658135313298073083354737962838144926032343560774699743552999678670680950510524704425716030063603242488090166978982123146565209448882922593766116173260326440585347037142870550237494340321242209531609713737505825496210069701924708172013280373940459670213847585453060606776946480718783861530204169121377850478401733639921210795102310605945802515390006181807455118029100436833897273313532592570097751799515507768233141544729912618132762104723644770017827663579944139618700913590919850924021933015408762303564668234636662997166193414025665240386775904177422973076609680188351177633603347835852592901136903517001287907762862031314596206324726837187930433554819790625870085345246199835819901399130663498741470198162347351694610001183246124359852390422368695232397325263732740792448084504121200848411189762611873626700956360402915574124727052203559156797035330161138478229990367616641636369306803751936546411066025313462455042987780325264862257190421985106321358482720221462537548642046961249538089368706288800819040349734183575423894803809484262914415513598676634650044982554706748258746219952390536735268096914309031392316240146313639039286271221507598060295571943895326858398595544529927205013118272402489193812327260819142470824305452609925587167406207832089488348223786089013734210542101301958201630664208814758482897696289137107306266944903906520127504880073915388686554150455768000805009615063687149950322231821241139927812818278475344548258123270479869739526968472333502611137239659522867540284863462647011765358803582080958831632188881181200960575558570575063341677599917227348311240378655908962193657171517942776035097835587079698665065380250012202234626490384316108169076153595989380713724180806664930423133034240492755469309314683233487827536134796652667269617380653851732309763369112201535401231291557494203914382930098202505871163316564165379818451881243038501427260195027283322285653028377052668789028581153585640997537732246026711325559951829378077392820400649267833764377611005015289404914075086134718816284787159925489741210204689254397491354358145747939831599913760001027717448048043436929492139171790891826662596638890177331120139750061830388295357597891558494984084751219243736948756920159403255242533333966110161035343484174226978491907628161973334553596018957884481754628954595222142291732341328789237268753728181817343169919550370260140531680037718471244372347411720413666053797699653405235800908173198245464012496375512364957030301355893337201316764303896946063791356577879058766114805609089438124327949983747897993405281862598185935368923004868015577272453504095365062051540826041363620940022245302993807268234344004126105255760534974109849082056604250634514567118822388984755073146807043235469311695761251087330372771310094312839643414124566216045824999737586685050838718411915325815398196902544250230764239517607575984375281085569948260642118919626206076966909880519286560424853355457536396302599829647181731425561926584170294389923110473511755658007835346678473773499238787165520423532137811584896810294645581474126896059859073309555547546663203522351144463861970627904359188501641308088445608422778261366057284303966985029348286473952127323351214701595727628968318758954541696329202967581225702498157929861359829357044248949648260764381213786118623825235947241185262885435558761287780500893302307958200198811225176149218632741109238700913474480629914830866404002372073403955373984851789266582902996311633928937820219400678210883883154123554627360433149481697305621075193186670049468146544271085268386143028832018063852106524355094196280596467639238592779402175773534829597036250645345460390303389208294821792552550477350405756237076937030534562853833068559961582920178492630845981350203714565824361744220711923732629953161845637780812538438347794812290275622337163369843517108214458425678654037642414987568511413123076146632268859355749249420582629711007745235309111647764008524514734921873201873785480203022763006291545299936446999741541709296196391312378460382220497311562670956276387570898957490660644377857513737314156242650696495327941252556286570163475037490022430993253125344222669543337654577980913486876959425090529536906049967479533727856012008439183608048847837138350112711620106884701473662722197814845959808719512708328093914746456768805266189564199879832433653537736868080692603466749785953242669929452541219690198181492756397770250307176793326120713538077924295512494647140951666706725488857945802693380235295224442991690757880621840636025066517602102934945007415906537793433154020271021402454339501116400940139907647172847819925672076914655545745127117658467565884009976553660917727659639771906517026978089553083998522939987800567532136263971181556396845475745379953135896076534444551906760489089907665418090646859968104270854317203669374185718289743296700938149273607653887816994401348413674614973663002924820896543090572623287147302761029380236931598076952449991779297280082920127135580975520562601745748847109513858886464951288226152262527920704143076848291830057594582122968466203362551831469197612245077550262290485066772649645354918794732309948037298897212232951367826355291173809852400965805305266641008203374081199894369852404339342203529445970290110912092486912675605977333868003634409156960164246222852452506947181249731230527866094578843536018443449282441214656243387795503730494320494279206406767611235374260467565641849748396188474316292322052055862957789740872378852319684322865067400047940195598211353270871023632326067536323167349523643108166089895742821842599024237012878851200361945323215225191318131205341724637152844858745097826900625115530627745158961140245052920235829908718167940483418810790895170724595140376656735040597765137040825961587785839415698824967099432387434951586218641634214987286144082892430249477013779869870390831407237566754113889729736454841216490170424548418168185314214194322938368589338238433789228961256285530864675166871555640998638559338766515209183145031712645136833415552019465883933521901434208264443545306857578089347404864992714760433231520371502084224560117583642894781824646592122243924074259272271700429208557615607683647241545066278529647105545404434913456843244214688490175590546750850036583719179985838650263544981683178711474663506818731771014959247088637397796154997183833341292857503720336997104803638009464734160336437575074308324309129665502891657144865419211542141099758923152675895358287460840201891756796141878201218006209054812009024738873308748054074384140842538175065372070700452799469251456670133530885147375598035181422377412235131269020216855826540667152139654053586509296743491112583477686603852457742577342846020452178564758165852465526821935142400274114801123831619606044206143176917186391123745284656675175771830467938770282820928318862573761155618782352353106158067009362842858519813197118212747168068574420105491721204981597858131629326412051236232402856107948130373064667780121404057686484299678135141149432144092719826524966194231069132335919524708585253457252736754959292801496652915112418045033729356740839768824926586684436382585588861660513284752541727116394342829224919076555642436743907331953113401515234850860830862110539152058128693941902509899993286200575163051444335746912658058957769169748214771929506522890007344800331545979383564846116931350042389060889633612062061785449861763086969570179505802258667466800523491079113750618999216968812759987029356902450070467429362905812975356875502489594283993659814208149199706908591280208499169954581239292574986448446216672040079010998802472214399671325695417691614807666330759297795032694889249885367335781231332254737502592064022499774265669564551612030770298974754649795753893306482608774796627012838765036234803961183247620015910626391473077792907926049051110791224216975598412312051025847914576198756575761027295401425818864482185465624683933306841511440819149419776332300402777849020639749149806003676729474176379069744701088256616140185826169377564046177069806986423306364577918276839080678180869822977970490520808667453084562554241711631752197227738309712658284948420887514167841009140979351261479686219344888555646026786931720499141862413074788906665918887013254528120819227703069583335399884987066628335814468077099083571440918798718726681174406404286688900151834265615418373024050521998674468431419546896716528314394635730451694337535023015311885178211698260774892625741274510776136335754818468532101303795151398656794415360857439868149896656154775550433118945250630944417591701432991576667666733041110418584341425346302102244188833541265509541356274863188320809865565002085894737071241474324550718184982342989906317539007506012526927307591981607812264527648783119290849815075974971673813715526827754536155376156341476833323045815027930953163446771383698560318434723064532770034799066095909049550895275972894663567826546580118614206997627447141929673329183338930800293114377585592963061064655566719794234150415579028612793725316686765308121906765498686718220536498571633866791233765512224320843736693456038709147268352863362771619135739290629260458900607001650662344837780203052386348857709841646303585200331518658751217425271607484881837823015477741419429977034963559340608327337781063393923689780961541495143443605303804877206113375002724309500677119032562087142890695580505265636760899745678597335867751996523769238601558337028725512122444951016872362850689768208616572307606234547172968860102247017404151890775538406741733104313643472657060810692663462830028483055566974912118898434238232476421365902679120081578667793426906344590241375928541062702405489513473071774684998800167355672518601968826656889370868392580368417532484996437414784050593805394945922412392453970244619780068114865304050395573624030211930708827360186379258139266558365622334936564339177314789039674956675284869493421977160538386720727644718910873947039061694384933227159676067551705910390477333901103017185275187165902803263133275301086595889943628744076266204928113005725441894344172106822605595441981063338124260881665321376213170381714797071724159286279701402801310390136168215450417603391473778782923035186754049736918533334915289503571656232693995809960327392990376951403909322279709160116009836899012492182788426960370892107442631086242024890161367935912121845596519703714430583667742967328326502102894372412862953289403205528780638278987597531860795372846504186439725740901294282463454350725197215646362026232997839037305600718369210570261596205621142782922783893985256000012437894213077062265311168091864082974824506007459732379365243105280298628978113511991349008298601580250528828748370917257803976892847196951136781130971366614686983180853240700074391773371154267081744714104221691398557479280997264665273457741345179336573585347609145063918549194043154357861068421051072360441360476424240775456899052249007923335185273650555688918559367265312399922873883380173256584855579273797829501807575982528993036541250381623418858053448742713904889811177799599569399300734488294192905242542226495749997221143269292206750287061591096498181663429201847840233909028828320976037211428364368823037914984132686633198778335357586873140819072269687459991781589075612982470115156112465898366386082865565042964711760504310287259165162843026114848398731770502830735621212423243156704827333168930475733388102274390960861418954089232275657072210800089828568411728396840862098310228943176772299001959471138143299021230949474219160433107600105398187937118512547973731026426484264897689933696139440635236177224874364909412825908674839543436924779715553425966110142029394076372066312583731561026089708234142347725086257799919889786695572147378427859164083900448653759166483681037862240903839680402532943942875186815436649453051979684362395267973469562721891949120398781680343980191557354508191374422889878928831267882912110988678194706878571623113970531612385212145305890405489454170502488185214970638879514609789222894889567332819979234008468927294476776541908323818945354473643611286276655558124846982756059950711597503669412010977736651244439365500583030778469265486983285993803958237459720486835654733254077235315170975249081268003650778344233566211629414283824613677248537597299213891994730084054221197751962669132338951752058717381624356081589714654888053479559714253043245527174834548256483455025009669381067848319388619361069938823857444352677058899163632970369591346442317731351469555849754092738805181679896768957319345736752001595289305751933813950971759928216754207222766414212160611404252925960960118645189638096819682163596126126246109523312434547647214964864064220706777362553996131248191174739512119077404153635580445763498956514734034687148320434706546628654336797509185034543584038217117646128156747387755466466883234958397499408435978034958745708818544925656506243482532931152163023695753831188897082738088803746456911252576214745826821122782682969391834836150961218584536546815079175461443018065137404385014406991682390849321460198788127913929978396847291343777286393984338038833060180092306048210250295387225285719927099654048681707863341234753455330030629376407368653755482956820810604637951668072925581839583727552971208522579842629631069380248580690197443431011283493143041578999691822359285910092981767835753077409048656572042231932715791032596254154289873986518303690850930370150964737527387102791201024514503486702778844011121652967620280042361422462913095302333312333016693570241559234466050630830589432336592342687294359089398697895976618570604435361525270510351053634666728536098944942430420659942333068203019970063774294567834270341807427350588021418943650426434883021310445224012176033959251780828001948685424520886810123831544714929477297089840006895762066901763524386168844002462592941871771031664511261625379740883857935553022429181938939189818721733066727967728014984134309583261401565971254205172875463942984813621383900395895100050453192355903283741172550342055828207769388019618578308575923443489570888648649825692076764399000672505642102889334899601552105229509657144106201314587331500861361008328802840976392826358735561500378795655523017353622691895372243887433219273494767780784659858370455296885821272797146083631550643062190941670229663204209747472601888100665338194423517754476652444196823272521979840781148611390469070612696981793559829305455164315924062027567233099770430503632940064351645630849570052786386892656860397722807827545287978602520965321343585289800623303467379536181609768230005922531461826524730653279636472837806202592827561539392067077604014653903061914747113535916169381052993124993832699153744075945367503596615256862301960957466585527492150007749742577036766490859826914246720656083048467336158267803747901299487672797488147125177635223810286023312418127243976509846175385958737331109791737428857178243853054944424042158855077433901667943350486311837934293481135809696620387874605754448251029942189696587374218451127194546142350533084723946300296214036288266477318544187441366939832298408467425086510534501375920856341630786593258336813183639448815720633556522347106683043167678578994503914512625037283221178986241247975937688342617467139691705087417466498764072505673535838876377656627872971916682324349301044319403857122741668035165043145125608144716284668345639479994325379970592756062973994519984548134554718521676551032557871969501557324899520323342779251057298960959520341462429683679034381357876081307251676093188577598439163783784092300733485245263717882391869908140778896547090984629408246752532347290818644065447491032780474418434801004185749288256624153094147640847045628614947610542858500785314401726658322764950468575152424020290927821033179807834189314859477602482974372446521412822048424331279240242014743575740650905561633576476546528938041543022436130132431016783103968230771737073289508389727623320110017974280447872580206423449782080178650106376159069896255778650543843154248411523753441426097549124429745440943913795155462062747703619243969469887066286422123072509481546050670413566866114314132798309620695968298402002589774921696630198319659743045334826964695842905571246684792029502152235865896776988735137229016013639367465152124546637215849508963833546517607746991090380369774754592886490233308401203531299971998321317081012288062487444568218920194975613432789190997698421487951062951116559902629962929769298797435030558769884276260302036749864826227088602442461616273780272520651096118175250232397443144671128478855599783882718379529623119819719297898174235184184186677721171389262419973613274487900850411554063104793261915397014596256116518843643712593925949962050100669278967851520123363373552911682885433232947432320542938557568286059175310812260787547467577149632674447894996422418245091340394553045911095085962905767578123704876886448858640588933028787907088267920747226983220092127748685223023628293166733486613953003315518108645784223177368969277773918890189345555295973378025065292002476018234789727647182639186655421162733944737570307585354048536116955124867673588494097320813730239493696600686922797775175125910862998575665044673527337192080367257477675568038251391335563910349828452316020619807849764723994420504163934716631681013174739265711682701945551772714458060500493278048197162541409951308613462100841846957114196384616768174828901791406270124427775778288357393372165762582939894927708956647581624934048373587480082965293016000239051534535108066798596126362069473062849770449088265728116245447460462412521631861932614287236757566508577763608325886328023128508253898109712310296533813749952844435970775167558743553484996390266376679070488292962155740011449655364931877470384984000105158164475162398150376046485493300816896567757620921471660802160158421248255181436286598464081014620165152013396858586175122745551311731599357997492965356977827833109414047415534964961030347256323662078136313407848231267771113473679263679625186112965920834106900195054986666099450994492062297253327606813996106501964012971220103697391575542228734608120978885689485998874454465596837890645472059006597880521814080479045271118914374166794262762188261597432605905642499097427087803302236537695130769143349256645327073467020369795645222717014531361130900269839036006714973789660619657403065734656857710609232180903473932329278320479554962584724157962696922660453387261394681670347006017961610540991923246524370436928401699033216053239263480259626599977111479321098173275379529999884139354581736023090712533469174535897223095504270506280643058236259669929757593191678997396729902466160808326698438685766782398994953492623909582867536712828259232330273255555626635379461802944998591926816754899079482721271686346048388752802549201131074116044907238968403427096746462262886898377695763741585397135751580302259817046232439000482522682494090156054852782013918592883998237980454198494050051687261513232952880676857537387029159914151202855616439816869964413311945574939355513061326419754197759593528466208202411693250751362450301435300301246623231233481885753530060000455781015996141654939081086454133879770219198609413136706119148077193061805574352553495392002752741682466809089263564098175336291731916405942653443190766911484986299529832227853374441097360650460351830270128739977480441131782608995490925154687254384726075898341739591641034158489500182530186408652690239864641057367145007075691806944533102046365079846614293094550222490684131947933816360587248580194567898165638533819941076890045674882757601922444027120322859591411295738589637056966201514532160309366442912769791260120176578533202516538158800116886679142665252355370450120445727262025923838944756417545469399179486867151284559811219785911291445261642736493858963241420871313467931708085480177393889069426569424740394648517377980605510861370771384119388684723212845128686466062057391213455662313510879189246937432527264556503558310393802027046869538999909774754171980630390512552797744721764962565411322853256653345278900668579565164362482079937717132932747561771460517778779657788244338912531521577153075354339752287771507890972444161449750321708636185205357677029371989455284507610726143029171604834505936394695203899961237821844449171478271452152581745396227827968797074499179061399427317527721012773379355152517330010625506933130753937833678208598908621011603194072228758800464599828692562965633056741628635874970473182626877605304418558643564827824097337009826931127982407614279140768166877607927983939774207924761771791501779381219768517733811220868295788902175544771521008112662319456184737981629073106762723197247994961637987095465162721770445892826361578073469651021283952302273771726691767323511124589975536858958888520674865682903328826620142981009332067218937808604881638151436369186337387229616063687150921670525349289512402677494695070702956729266375868230474208122704004041442743698012552157557419374220896506724172991050795965802888861152570012570004739012658250958340697020379630345328940318676064457978484452802068371263253576728890148422208912116774848958885164723240824335075990613051834885784307896053944498164718067053832046533004818682174577733396324139459714615391522826368719948956158106178442021628171799809178993914843286610772175965708134058950152206003383119443086823558617782469414104339482024811243027430908016950919727821232551862246571011255798770171401524536669968586520501750895620200020963846786902902765223923107498744115356494301632937820609852872698173915287233399497866697367663410103343940979502569738576148187985201445855550315796201243917973114369851310796990840181126505674217650991225066755906975031320807534136792878929437515429705576613413515247316635303328713487055570572280138150446202265742214512112803473806486993629258709823699984141744195102201671563471795300557036217111484956406353954583910951212573736630038123284319272823927001125251300244119382906125336112800752545512923972671442605238795159066372502858784949694901645795386518034150377228152501219517880337668126795425906374384907660330126882205745586517432511882463913533210393168113358863151835642693536281144310645521867460847852942871503572177392353874559048729389723899942708429502000841326214231146073912948363738718392989771571795423939118764787893926050572395219776056852925840425078745151619892798190194284233928665810429852981333136378291620127113247931247558300977807591597168532860794222705041906257196990504428214711580359576324191726367415865768584841621919754358379445463326292552379146326980287541593407851557701038580519966966688661702426493321622820300864423288687594199425118252959864211613747663892686461314745868269053628145397153843201554475417845917202734290502486073433241323520067818375505213829764167006060776453987932595865204592344792746399520745432530136562103922095796902892791113453518268795419512855235016812270557860792198925488029382562747407713372314553815983676482854662037722637088977475188763677765653100401116635425960842027744726863957263545407386462680410644354040267927688176294761561693637430530586165813526271373379167155138399057660993488037162286098355423381587484440565387884326228242275618804252118635367249954269911551605037950627512039177675840143005169289758219332941908189086817875829329046318130845868962675578486969636604922403075471572816165851991533996787905276270088084916260593529863394055948655626106592762818493899857126735315582354777811654226550122519509534408210050243437661400626117969135012579035819341919799304763695874993767130228973336961137635430660100611382201652731539921369224673200814719458942146050808808814295669038803771488425580110515555391772317148760028241210167058110360075308415244362716526310955444370707508159025760268570688318232460810490293060598794845033084045097304910946525894645156425145574527439116917680454640168316157724485455678087627826832758550322447396512040682578388200904819314844779730729690204541785140625083525676779068142256655346963045818685201878213332234812554635055956442384546316796466396748093493507875570741209426015478995712896445156718336887217474133205340350700912598743107798553592964306216358272321759903415912815141300078982133621992154895808272385965767918267414663066839110154420783062607713817340444738686497082445036875519965448847644518116810641462365381566501943915498476751837946453766361816721785376858456919633931659988341661694058703081361358151166022154449020372713817948890338100215747459364315391733385656165547065427961206105511371206793045893633619945731601639515398541807272299085009403368275827213368455759018052556013296532654166210371327670550317426637698037631651060811631608291934844992824037181083989510025334251318844618506929982768722131509650275618488468607621070590442616523707002828808403643847228340038682768779379086084303481512763818619542657654401876594656647037813613463404214588450914878734172555480825055890568082030725425073022770979904589776907035787501125395844871046762530256404871732767290549264568468893869773251070183371097137740337886932430151980927060572628229785546292507557145132960412179122916558394227127299306495706668550774756688352950091258284155969196570989623881175641101950663157953203612121264287205845805426871285503951661351508264242530894135251140415726357718408766297243088647295144461065501196782885595553753896215580143865490053711533589498227624560560907847074161223034861120884429401445931948808726548879742845653023337775317311940283747799490588177796452928406666846898367120990281685237513657825529989112372537017090005368230966757290803490070324519340750147496747535481634492579244783134871976894328993316887845049841094321478509544283736326837196551007741167303896463013447912879086361883723594586240596357979233427909013572070534586539575312408943093381992484925950393929560332841038330514534868911600722154927401676956127082316853311699738890699443447810991870655943396450320026662959982898928650943947496715506628402227541651933931647532442005924204736614688321198265665213745302625453196397978582838462691863761488024368417131018731067378174166847367053206121330049670903750356765526596945079902489338449572774669595157371935041629553655109699501928474105878043702792160643041734269083162315826085007529692787788342309830754595751555970955691871641793666225027759717551719307827915138371088199928103507408760439980179877212332405423985422048993934250170275064499958020005847468580994716786798673249120484570725746296165576451466492604909344352601801320100361199987521581438335337230957654148765984603771976390869264987418426527857268149224408408187206694098398519583023056317221010893760326108500975829710496971151427969990715950437133151096640594382904882522851632747553244142989582325062140124525261344977054811228249524417889071049759791764043701000857270435581426701823236766704439864850379605426444156351923417049528013407168954338837509958969703089358157321746830730375098846767561822623775963566547981641607067990579316008254023766357725304083481957866617134659012963979121208028783334022838154259793765469978458687584613652398332364986463373179555464557188620817632866345181963157786246847654850407259025687223924882918623345998903541861305555173712528288868223532922222770614697778809989979579908506805815187769230218362794761018515574676680852139012216664924031537484380736379314257139048671264908358342513691817288280379894031662585714892206389263160787746034548306796567025115973440546854781004360666782554897183959929961659266974945107774687940541359285907379889806893604287668461533365030811308366336934541476688164778820981746217938088276749401555906632100647826477384055228522850218966095608396924232942228441310446271359053553869774006694781944813778987718968257701843773079774362271715534434959323936831445707552702601288581488010211491796070475423534387703763974551969584673619316863381992149033430292432651654272410649508782346752775295887676073036015701492571779744954933430729610036063271882828554186534130441358034432632753660667559884300800641057166958419148513848314764739384532186790143865339142777137666397282832312498024455953858329150547466782964770043708486108666935808983937217540889403819492691215182252250148070973697482064824048417365161990847583917051043957128623166051850787751483592013299425013566617633875198981235283628631840553707021348052009307664042125438703412343920115604189844877291007257674242653174642684923298771267471744862922839812311528443139755865626819919302551999566894444149157874114664592498461598778404063975361608966564430000511567731188036558422342203744575927331139631917953369721736527662686253201347775742421866439927007090783953099196037539521713882464529605402368959786849259856329269841120163342365765387495239574915671743539382845936112489432513911439893022512405674028562767385571321622611786919021984891652980778337769838058788012221953861860600951662305202446187288814169322135621752976414834227821834549168939570886115986042655612428941934627056213330446047093046044315717772588130808177021479354219071225898631503704232401538117588506916522789987629501114366438135804926406974709491861250381722144615051880222382950134299754251992540444190223622052511756988807225971848912464236071067332322972226732970713602990602368757435734327998820588207908220793957677876355847640819876987434712213843285018305982638515757754074811477448460661561364087390144184876651745425817389073399488767051237759849453484939278834110801667349220809310251379553030561721538381722556701503735406396169520348339099483074199117132428604395462870044575747680444349234260758296823742932551888645865261449591377406487839865378894693524963756848853173880727333333024030896119091396632397810571808433487393424062291707720979114689090195056409181264853196595655694986937659852642049691128796156459842064916286587229916062377056948264925159655737708581445139280900738583774890348516845935233891796544083371452553756411907433749796026297808239056018746263797220212630276644417791555602269270049767749933695371660827974253619615423324161332444913708415195369179844488428402811756138520741316549130134095416746450670860924116890653803069495758890990025756075603395906768389853013015390004570074598417933717147977078354273350903732163205036063963083436506925698443164010128388978251637759918507248183935753945222051466134630975879425621402318451071789233807152648452761178082587307998986333222113410907319634640648369947327879231557470240217630550064173769214111416480332871317828283851524733061484684538658473020420761590703638341161486178615558558360123013816599294995169949135262925062643581313663765260492134391078414715975900343550107232634682395302957581920525668646713163865060975212630760660991259775334268343424557652458156661180773937366888858602621805068105335782702399125603309670120024999482360879790400571462284187465142087620741845685192709554979716251912888378426526610930975405666580616380312072301010045696026813342444235421948683324202588789830206661740453827438711188442839284451427795622380377256687555488346372252240757995427614744015139812058162550606985418507322819901154061214186676630460764855046410632769872860755373210962842286431252008691691557217743882890114536886387147062839310414399102931563413784219727037050323566484171302740688211901482483896184934860768284914102279852163882930028137690573786069665569670589892906843186411711773221243637122503396668742224138350930765838523189039389142411994252154248065574143769125109904656418545329227002055094392422784813690898219723797680826537087014382782116301946200533167421743642521625875647618739042270494659943757606116377492983304316745302341372298981096782407341952955124370662629939132499759850227348257794227139023911176000592028176339687635494517386768815934348950297126471419351407569228692122550045619650250631826709638901575038266372606356108819079457185449843966681539252361547392385957727738423105156357133713408882493821916957424805152913595179481587201729181707755612172736277104577262853803367003128381348706366814912622562286099834996642400196743419128151030729762501927569696102480641530652335923495826739460706907480201801633613157807912228200807934634082593299225270857382867610585394966781654532882439123614787277690141857979291196179894048249550664589496319733857280739463256524361760671853637466638611187007284018866288507578235181984100636125550782965149255632244684194261077545618610764202156906720126318144504756572245656511324138420951469697062169197380777068700528838717508191187127218666905454977906721313357352369186864737603012223332592694836333483147876703977499619618791523481499105011786743635174288882142464358939341365493088302187986148674658357140119689932121729381862222442926417718011653108582165458040967801326344278759244550573055300162575535925482127533661881483217740285803138994434910560227675981598445351998847838196887886281671353113722991974554622778774327091823112369705818652347997414820374118233001970459062716050172357636654546201315805434766478045604461926584570875175601480533278905368438499765453155816338816910134258197316914175893966680322597516157214390442747309305494721351874982079158372943002498865794104752122462513309393505853992694329176994810976126896997432577956545148746817100693787108729391902777005870243460229757756229331248827858699548919160852859063406275572466755413568922535902645673415884720457338138212150076065280492460158438123812630595906595972875928890547696506120180007912227282252736975231227632849658377599776598776700206553501497620109881749691075708061905853646536365633678336272586863400893651852169650567499417287184859432938862243359425825502168363130801868625578036506226606059824111804633050925709469822385037319530033039724075935408630869720381471475727778676419736062543810531016504998646650724573694280001120405087249132535697292436391365548458755947883206302253588308068380715275699504084972606548055391988382491851888648270478002674945483316564987504721711847773936777962394600429235876702280859141904340556573996679312667006958156204811644348609197906980135817140502196501688325657356433221146434865783797619223464619078430248149281462341407293361167718783378150309061461533281541896226017427955464790370735398798771404827564073917535629087305840473963076885116301618386354151286222880994645777573030745190575414012910209207855277727980352974273623884552131224344190547750522110781979666860259296650823109239597659770750632101080595841003451899551078562881777401956954161375927821606722822969577118047783704596719340911459529193729360464504067686829865576456033546789599433013717313346727595368844580625372811631129203535842919049619375582280793127682251095044367418803890355609180038853268459350821482638163740828124130074544250418983219721919938347293547146400235249228525993638075332541313718661220028951704013427247939097099403959151119262117062643973303132275144405587374833683551445709994157989563869137219758056721197188732129664212102905487124849955746350462529448086438729735623255599786226984722554308624763380973844053026691863043520738399199333815069998153211865276255372151144142377208569158088070623354040447595557410848520974427173071129656735745819991605005384389475705161475142134267935694945102934590911950074414353885685867839831077690988022530736479532857210755899359638181069785239737271598301596549740403533640762392964347523520975953272137535378707334849260883053824288997816277827282485814781260197529900681645604492493729327181646899023622806688143006246811175289089528087882451171548744572054407088718739277771837024419203499983047284954584742161203843846410684823196606489200008931374666273861537476692537347489382692438751285991808067261837053351371057496780168936101445198649019796537195231504991342354374357307199892348439127704317462485110002618830739485773042869000500156680641872863213590557637358425621841135384507332231182071463768924380728098407885754722359391518220082877907655564830141251550426692542226625240397014389710462139846400213577541000988250245548787764424494370848276156331586686374039577224628308095299840670551076744739632891297058977088146696516379674903676609204687014920441603993728010469155607631411094259260792569074457197461505660289475080589804164679250841027014948771635048176828167189491477475670244359976703367692692981680299949169125738753044984083197430562041639082490494907780022954644631121647715601874739980998078545242668967968546942156894516806501472744114162578726739763711095299784554475716980121144716925673516922060006146549263703206260048343739509322128713668102734112528581647199211573284141553838659637071786726493318569984324868766190440983488509035865249873300342806787132771285999538229820948451876567125904634561334387919772344668015048576623655779370241373298606499824427729918825148372289797737833646743186847112452887591471266129522645119002682941893814581042055834748849344931958891347349604956039207777587230043791819969767359003167070515460490483586697446709889061125619230716254987760340529634890594311085017285864651206718925427194619391709444541967510511152826396125897572914904618248129006127104658915098980751696719072434632879893776292965982922239777377024899268355630675445390724322696740850885621350529525565790254456059936040554899868458237500675976511496959679733168032364981104403592116367075390050251576680731752237202978641838108396486504186856081603078593493769094962119916484077362221831626616373142011777559674806862372072244419506243765161276981500794004649093501908261142310658308353229370967249315568762857873749889663406143201948575897348956532236610414612966371128199596398464301257795160408641755784519774755359949687534776444499619839325749561591529118723641474678658770487592446207394348390082729977554855931457515093530063723783360362652524009373268189924556428150974214285516618295425160775825437515006886391402992630964578791627013711054746645683807355498975315408747548644195126626770925150552744821360220235985664863623920896313243531692560802977197391511887544763188479338276645385269767363669945785519832928301019481355970356019363721191255741159260388036068592530945425759360759040816197526964462197445816030967156771403988045832984069089149244959227731540065315209420733502630385375918535845982588700032339060778401561134451749687140843876339528114960906076528619946520200452435528624987937710152063864119105273114262304609251217329328401179787652913924349399380856410535245354258100097301188673964495394176436499869895615727980123837296153132557575290410322123210455926116035716588991788019727146799513405568396078236801749033887051225155446365798993216561756637662445095083439272483383652672792272333279618302629972013054903041867784811359419304235592307541295270370140309067583301451922549583591592524733730462708168700561394725210239179798012689495742141125558046711226546670774013790242375556664519092222455428629771019344791914316041887195689462313177420595835389788031241111001819212178399187171270593104674221998700387434985413243027954229746577621964638154314368206126076926547973106076287661600298819037756652754203966575174547539366514542365924268533845382868643868158078807995209808771274387022909780718572011659508159774432485526726017122707996016914409605042410008212536941636523933264785922450437686176963603804032966452376374165752254179168606377156244492924346149418666102464597976473954525501275559013850861836805819825917377321097732339453511596435316022524616047666998995679001196186550076617164220027113018814585272089695505186300363952800851628263331298797396797639568944010486409086653186868513421347833027398783414568884121499600518971986793939408965065607526122210852911798884826527381858998078459071001272388244681998121344173076475958694712101897399642284629952988623045202353864617915181903132556251107608918458946122904848870937193921819440047969060245632143033753942452565020053734497076792749408397786226568535317289586111635813628505747338817255390167577114829602102319941725757745987229528364030961385870867986711812158589714674039671308910657540148072104019690597054650048449003613786348918395458111310327407891023018598257525923191082923743792891430443004440865489601188995342427067211103086302160725286248033911135606585056537549338754422443236118172361830255517741415763791817461281023179870954878970005210746424805738696614450551771451396105848606148224986429252831796044716127271798115716993595573762601426410872578629698326725551804380312595009648582999208619265859651456480147961498927146453888018201158739201889072810160889686639290186259020483000083376143497029887915139099265881070993858911272780214348349847012033399238166957431903616738654849634567540749542991740060914551223087642825688304389778642124313742571021006046851209894154240996963943678804729282690521498782787479828844959040881457711482729019751418975537867068435035303349268586543175889590328137762844560712415103467245546124145053908406185466218550000926345046931303655036713847649851492518657155464448622816020845078001542917448097540689664192183043622792339382334079627752241014596996653567247308246023556573595266380105632677207444876171700115577911046180601333320080998253322532723897389509187342752007741565484638077127122412461633467145666754305347398090572152142557618634516909729462867052513003170419191713891640520559655296356860553766440605066945205262863236981475274745807923723383204696863334002724342230783376534292343360234855106225684580250824563857842993969655472748916364735484635751747770568499647656975337068309501901678136328420047658751012930185264627386752532693382690949614530246798889946163714145041947712891903528912646275547051797772387019246961891689504408918533205200450177028523669961267477870441270430573571441033631531046586269888981587028338419696209598994465703417581225569825967069481906491074047411588112313224172370432463689917706791829810908901337284077439997425636717860835933450733201215627783482374183514408648785308104427451220601229809586207179482855265634229582047305687610246345788309767916550933685783712299598506565923458803083225182874660504852316446143017090199940491329669435760772081412001336127787979955692888201575358747753343745701371811385734097813469533407523309781213469166204225109575630756621976921367012653468532486679896351651362616151846260217314162701527590072502224878780144452713239087685059579110333331328844506429544135398156887431531219808290335984232929257167510483873474279145109192531325049778664922142396515060600379580050035076863522271503070711542632521213376823420596140373639964524364002018022879471083862784122498644760775052150034331402919441785922039418575088734072145201538220652122696822454524213344495252717171983131524115298039595417968030370131031339738130034553833206850757518964984935777113370052643375083710584506000805227872257684780703175650150881960008530213145413753742861940686815720526771851403638178765183472146409338366886182794966237351377441430484157496152737281654832939856343213804656794102988722918977519382052540817217175138629559075533733273337830123871910068608728901874765670465368552283561110604335110738756158267704134622455793848345708827692166803458627922485803343960560667452644956262468688434756469690618364014774895249996056553871458849502264708509720595264001198765995591983498598768589822118278003950546833205459719441104846452513583878496610931485966001523160856674118667250340148679388273945709964099514861920749741154742907175800903838928225557365945965095854569339414009620341988127859895936141829381768390329196301975036907236266079149933271124271832064089175972571204809136468452516274283790127325831526270599997345676542469816883413093293106677603545508545259472943785369241995188240805719274801838374827003541999394334274533980221483152060996152841111916561997966294477514493670386928600709787823079697895083863876946684018683111146401915824627125812604028505920863025897635350169442737268138385429521254775558381782486683012535397416386073447421116783371143457794811481627766507540328776267696075651861395956456300547838158547072763885305639755374390552100657847778849018851542450593172229953886871644125618748209901280219975757168977872241114187952416574119533591751430624319386207170551145955291273012894238967896241492228199012427372185573030708835142173402067128527949455982954834158482649676061019729439390992904582730060923712135668907447880352114559609105373704557123843604348081037123358882938047289895046274890347989348349317050584987489225212816917689768407122384121486768576368731982285293509912733102880531834558185454921076988926152929851671000503496695567760363610158869323666254275367323331871112972888739569711974031286647231566964107132666500967358272419650359451156879622881091843898320315153758409902934370278780207272714337409975338493975140740152959026151547624773296153040295512916430310037565792956358527681569717918209008854366312551543031910090106454647510712770725891198125630344595022798711465023486683250336693973355175984396937007082253539216002326926096940372065674544349492003151751893699664550896124387775489388873924136129351473969652441231826309728862008996468762539118814061845125929639265017849066592514363114228212475763517306388775635903664839299841196439484419826896581218657261776377858097190577499731947378801812847715493558373190490710119334964576736107898979895493493520193641944796835062078983696901388494800598581504914305110153942948001631260164622184613128317771651872215396086362230738124452413279773778118399912985554417358099211279276607557275162933007728437825632438639148331979275065180530213634714936917056685125673709272686485520606994832174041478098721119748908839236182715445069394887895645236826958121603623118301719133215671533664462941700905334994404540636279608762163221680676256881797926879985421516206160554358921890058676184599389499034222959345411029342382649470297871448692931696935104673954198476881744991137322260954475414420096244537211208254190282524521144142672898095249726047495703000125692158262577459715844895590001378374510184515873488187106564081835453207037309470419362116809810283746959294857614214606598670013959038000985435962006149987474160360288988807502652140902157948172003067099422635628159776394940982785891581101424737615426687908892043560059108858471932863900182656407656886135950284023926009754281544007440274986972066825326421260320120974173677638343468400578542044285473037594356844433637421858456564339578648802188562387980292530907599652008634315569475714994638426833390309415489581136915009402680192133533765189328787818823852560274068727064399685305812251070002674657934119704082874794131243321519297708027603525418732258845192759139234526808201678153946147006188097372390301936858988841946369322209284317505801019020911300193694795877413904382725207339393211361393110787970541218621229793647626354473553954048445325850070860318252232947061409012413558796937183442287532751844412999293219786198393098089229476508244011979959967979372359632517766222107323196317455635798838912782175510065400665590983432064505013325148980818205373413209986163863244842354175065172608581173296462945392265503116041119492747952374747729854950345979582595987427639806208038910408735070242750824101883557284254166790537713793938115546841555117808329882511007298918596096626047738547111736343746609326588134497161909482572883975255805311544669299116157431540339306759096879663974699908835978240591417126182995563295324553590991508423701267837908956030446169023767500979726945763819454248053842990397407373562156637875939084103010337103084517568848973219419635425467569834987415590465169393775766594519511910550725613568784721629720166139176381317448044114312698575230786859567406471037724665588569629980148400701278513946910423944417361028754313756029010430895135401620402316584420558113251813658661451834915262633103507293605007659576851096801714164583395943718992761610152031504154791825384433641089726756733756649989676701656334214864552421963223445315383751809733600695312657475176912246075748512309159139545930745592404340091035283244791571629711345675725872883251931611211684637634348237198331683801748060430360871214291006158957370639234304388059809412762303974287624916517669554583642807696597289773889396579156471835995922005794569608977528147687986593666058292985852343219232264554949284228773545303804435950953026968063459328045596285357499903384710271891388527627781869795459674190738654597604074563783486756533797459954268714526137307328910020669388509082054160944306198410496020249166140762180085088483210400760841580840566888453041950356174984870058650734151632380371041485695065327652642505048134829453055642727051554320591026909689662784840266903846005830682459023965355012643925867688709110543080868563573313850295790542305211628721158485564021016499222655203554007101664455222326086128344394454709753297334974592193954868039820190656276155355388612900729379243546248542625676426565936393171438302515714838592678897830449721009048520378998874887352261810970271621588767314906551317727191793110729434321515363149896719604750691253687723033536488098799886922886007263104681968422957195592557257525661949703588261551917557255104337600858243269135477239971815698467953725415709785453991964608208034327545325782488735059080634286928194855506057484362453603268150043418138972640486512521359639721566350194805649475869067120073876790853491553347169936653689243414927840124350060741101856506220345054401352983850425542806075642059795529567731451592605284687632511542579113975315935049775914618064055192633440463664838394995030620444118358031623290787047591512774791366244899389915888026076643665732255732614930059112918241390801174378354981868295070262176653068223397980289870659293408449639638067920838350126898709833128069979349592623679706481047498825477804083645440812154146053546504757694094408752268298253202552934253734923354597779219552463162049838104415321774912279223316424055449997071335863408605944404647725122170438564947490263581182279659761394365918988384720943850642665851867585196518537313651784341651770425538173959203374292168033575255404182178059123961969108113099754559211592168853167730083747120914769579471499673071009147471846890749446696336564329737273226112180872219644633291585150428905598364697618756055862985912335764941672211757830115933039468708638483330097557582172321054790839944864683048177117577278436204429292933319481921617240112705752294608102221319921549187360252750296544772627081780640573133410494363217429288298810541151259009508250154469258809380462174455776405151307058407242250585926811101617212068324030665133563626847071047111654004008967554609426467881111907076647717647817328607709995035982160796709485540008699299109248124368877355669804966493032381758991166572497906100860249823768049787649854575589604349777657048814780623375332095177423160441190984286754667323932675747690024768896006460277861969667537423629843430886347979300159456526277828607118467207483748171928024023359283639452030101934567316121322267946203095773845050500889786102341899624853923670312520135712503871631335365467561401483870901232929654277487856035010147440511447014142702683116231149923555702269292899774093932929709136589055943160426403671964318228371855291192932855330094427340931959292334043131627707559597970229312256643118801401890181097964401850146156159052344816879596856804009186399812458842086737202908963012925766292724682249032430070256540479289188311300657197478678712155747940918065356807990819395323654392107854814246919438757563540366791877171081472779196462584629535809588521913738182809213813591195381175320979804239586450504376493664990459003177107161100291598000599021212363695297017846264986289466030553202616687332426891746927378215291584235994731902899313070349586025269876008035251743210102799890416844090597864757812038424640678999772820794012548553612808889326779922846649990069613049624283983530932999640182970436208136453520697148693831819545261058774361482710463725613464096545242435495717927856535280673879695165540714333898390747214709731697551363648258756479899337825698622927838972658147675159637813255309559610999054972453491291149564488991683435157069397892817590733189856148196119181084257611194039809079088068088212804014186136515088374034287406223882208869621449475553279258810456764687507569454904546419209151090027316686168642177045702289316412957327834369957792837103261015889124538010831109562907442779079351152023974348585384751570526314369164169946749157685771208941283205610313938561783494500378156108820778765010671928695177456076879065333124344721614763537948604270791325446250776477060458450119090297711292406167991899073006013283732259059830257313598330930673436890231616638599968251346203110993144063759299338454898891547545342541891579329984265000087341133686733287920332504592297219961432413716571047951976831754851469922304009994426837571622734101623895307160770314186538790396350831002424485291658337570231908934548774859461208464712169540105368751651432406389224967315679261972754126113223903348751269331195556618090243468396130005538635172187866636478182134510512605973550604541633487594856592465190482811233185773996447287288088949265043222811614110117135365798438227659624120221640372497416438504375336343892769938609394453909983392743649653345501325554968561369730096823455405750435216900860448958618008185331749647043910618402274406784883316898969638006192115471363496282128704223562384842076434472782209678519901551845241802811653864605845616154134470197436554996206532085419720414865725605253564335910000386140484841325087807730965919006419380743647141147854510558202954342324765390810510671865846406255674879355422568780724692532049205019687174093185415552172651914037678276033161710292218201612204115493226337655986459517517538148036552288083576076179029541295179992323899458258457845830070169857680755386601386909402485669712279988360712893044005635233054788384079065799677627171562787067695129769086934269466891036839583481236557034857683269846745891663888564956349052826076499095663267271357764687058800702223480695896920698641448940981824065282239850917480709493232265221645171407210450651718137335418565744665226458242270518541532200900611838244298512084376334024293330001202945878783707490643625819345160223559917387605862080918962215822702296527436382789415431287624571300829862459164297394385161360425869642361468091229293255511864040078780442843947095662045759830774969994097744045007376357091823556130517839183116334710930087549703379388807961094754707047862515081246566095116017456876315515741732806097991156197377456201097932651799046945338393834257737727868041109070292238052515830504286388014658730697286428666010643031902177789149525258896786748769463891663603687321994608363973980967361592706183135975648498934377851610553750333736291066151506357329540297017140089598388280148796009768183895894332222113001670248799400703667594673708102333369656373983913904260308128130984880361280882680832231033730128782374727016653031374588676341690244415662692052249924062318290828440121460907912333688011902790308831829650951604743804328931065958523765285884373146885363740461972902397658722873834118523875537785043037535239318492634492197935988613423017315958998626413477446505376696366781315508205999920848055003348830053510423964070358462390660320077434559365409809964495472547331274942395711611394675091754585687822805589240943551381052680451459839199733425530362565088965681731971724275201952382198043635352292957821138444221690378992789159847765338534530100960769609873078280799955487942393440817149135792973478437889781196384842706862848195405122823380776015297724343178287729736828074640431640454147752464139619894883304638304563673715697640024498417518645491341054895238351961611740983508961600451707390138691825405660954172434281390912866783126928780451563331852502444143715319885005070070792189058829515195677512286696942840085081271273291743902016768070755220512028253352093060874210726361792936509780748041830149880470543744475042793247145427701004171256107920051285058343654339026413952346591041052674019039716319133163801510862122056420164531630736368712158658676800462126365504473339598412373233490671178287267269265211941147196172126328736430325403327106428587088069542935399274206431154326779961340289997135127762558581556640054893670076389634493797046249914204247992384536191727543525130458429365864932938430634588654447523025826337714520096817076704407040777509577023591816733165002323896332695282427821375152298099158236374412715760292046012214780029381148554085120381089986601264638754620864398800175701866938052809427928252328162381010654635589683367367111960511590758647924839705705808684111373995285024164698003839759271375250256214707551250269319885530868875785031381750490528096191929883792323664082777509539093934710820342185837175062828675652586761735257358995407866268052282551445406850543023040085304038725200655129941569698569063162913229584791073470241445245497031059100169475359020642061371545345497250650937628229077911244447327625305868990718889908361309177447168757322059176404555178606374983179131064489446299803846971506300071789797378762272385663494636548037416954073765581636733044895351310758607873277010470502085165945977440155021662764895546788220239995759021598888343092377628713241768337219148894849626586672259818691916324574150785226178222472873980311054753562057837489277547062655990214547929025159882593016816152480349736381818849849584843133361137188434354640923770487834445020254735570467921653219936030406434420577331135151658314890842851825187919528096898303255771560178815254603350106582917500067531504039479594874549283636495848945763004058379433502525506229279197691925940557513318445165384782503801566254806933920194002583636409283568495819025130838907975778900822666500567644541914797395126540563304878691789891124172972430006125906250386272427200118293180918447865860666769176289370448852356792461761962107004072100852441288879255056443211863591571295315842374078757005577629146237497671473843789378100796856396137897230419044467135497906770551539966863908744201530416065106434855705476885859316944967979671537544344841648733425409782751244776625680168130006788123874878236504655545038985140745137900777112414851639718456326655166859409415208699423474065758744161504497171493968114338185019844404859296332339276445711464077772566230579110192082448541193058702696477605898128279585422435362132493140371953463096492931476845987164344286867988118822710206733292129264074055315813187448928388823161044275745076893558663036471043269698437209552488963333039391281389042738373402547745864498022253765780493056409615137210174786089334999721722250515040851003859080015022675004746484283721980641318983693578091174588009229790437057206562881691505126702031143732892565006339193755372749112556701280243349319515448424729201918731461496760138677969359250268787230025363710578175262682095347460855599230455491132995381012069585260074299707281027234742902288782054933579668601444702909189489191865609406083459369126801767621886638852954976209018156405412479817559111343850006237823062642374717897739516440054508092844358629240113787676344458087128410517494819680968272603616829928037466143748860942372444877563965560298123511228478425798231029534662789235548221972278706473363885603570984536358089386374601847375638519892557890332554896227551114948053522269186206123394179644685924744946060736675236561615298988922555020508100313397565682619692299156897632593964630407783307825317268266809501840604358901035557517807593687160131827429663233214868529879058551927558487958428203917363297283702780403239433857425062686620036843132529070946707578164958884635097622550438174084209274385963770430276447331484887797210331070987207978574034748038883727157597132863173499313718037477986727404811096141619027542578270349194946075190908836382487140639752510481531298901238492410196604257948508782280644721838296576420874745385382843849339058891568055346960895106688995150265008286749860473332683775118414401870073735912110261510951496669377048993247155608874686449127075382019412515362389013012157245014283585713693671422752494674564042207102530904033165793735559716669441465802372332605006827792403283487683590962581546019609480162511506204739435551196435902350105166991764600967284500770806472943886539775797860936816243102374849052745398022889420695026565118419200843790855673959107272641674041987508022114558340351690808377906097021117925830777407253296734469455678483405423065791630226238716869395331517462565273107567124226077892126542241673894397141389173647206153213501869655753070014683034828851510830342231965390551023734379017666961071512365707428181131189712191485163895763470082933460936531061027290738905961521238477513673303128408649770852756648451297903889050348162046549175372604269644884503094913997263004452874555566069920366562234151653862551215323149535938148349799695119752142049812836199276323649826921421187524597015006651591635772731122187212682778800220515980857555032598824923694138397015364932433267842092515526315016767937569761750515800449782600882143282369129524892065785929424103955147260858415692055536997930096823227945519387923841674929076398697467392859482902609344452754359825219244321201438631348000199770931294157208106397235307683583826258878224141162311181104195324406100014538864408947133858949588603015383220680309473271247183600991954352612051225867619243978734232190568891761460765732002916030350264123431099955233805993073151719855408386105435738090210775220511673817011201539372061544684657875016312252831266440834545233627566307743565995624520895878047116864705540513109902657686430869829970255859004890488711631366466851840157432145545306482244359883380952584319080714368159969369717483781251881364298134035978386045925929923189598743724828048005474880112181010573831447123202274033794400514060687910378481919771502934708517581418176699587367171440738688516501278621669084268604857707923422681727684821857373560862016581836610213397999206360156414326351825121493043939094722189150189841459821764222578904638853397041467842371210882341032845813976076780013700044977628616688039855920421894903157775677079010083109722448257559040041297423739064216319410041877954558064042960164770649981386645830935877780490722434130640633335477924949027608212312437356215502325279248151087951802667111291701708681504037565008125081968243217153842332596965605836661063558085398502562247655202117471401371285932838141089108101184259522441958331688976848849249972693186192500729009246219605545336737061916239548790539550817358144254778355507712602395078242407841811779024805454124645225236030963454363738260459968575502780745076772574599512080566930027032738263796141335587999125418531189205163072748304382711134564852223082512738518972388010075198344791608498564268557127097539661274867444530844338408665804589608537524784704727164291520769888335228477537148943932846367204217580854207232480644596301334308848728292760963505063309044958172655345028568639657453129555473181428267186033085036822119872927166390306713333265652718014074450184912306742597600966632622177019194686130023481962014719264327841355221913887270569047333742866037881822762311926286242015208351575563209130052526363159864522834857424305837829933725891788534565538651363604096852119744945444257915848681360081292895108908528929399144919206338948091202765835749999364018549008878562720799586476004757869729253507352400804879907078493001869150339607048298197814831211792096217775824747982402561594998318581998369821616616026583907555601963953274400916385502793166323706189520915120577794628916762465411009984765624212997983974333641588000050529250410496807760096010518180056598254283841106283260938309423978820434144298001300425079319694323040688492771313327579629357722437491725505363220301535106181963766560606631889268573886796172441092839739820721090327768712083063400974934435379008324964759627200223399970872529020555865666938600737307898994045439926610674868507679216256670404495892977621225459061116063555709828918906746490588723060794649138021252245629894767919389268436263537655539487087287174629619800797508385111015614700498538431284111005933681092406181552258649155821857093772527846317282559715801118346626496928317816480554427729754564381818804059348825759667748377258845101625693741411233781356995773272627364220596202217489731371910177749252647943174895462382476743661777406216838470847011697851877332561728247744675725525998389316229508337220737383022906419761201746537570084121328659818611845118872468732282825786707576212322772729513232484072348817488597258212646642638800508172680456387580391542040110489244388171362405031772650198624221904868769310556507407093845796136415448797129477419818686092805562065323792979011644943651224961096892215860353106768908218938137747594798146305350491361140284244103742624262283994787455610420212995781202159545291395184996647343932690491211173460349429981344036536710274369680386281204567118103051127269695548975328985414160221525273630870968582116577556854485206093426746192210614502355000658410892711034439744571064404715890611505907843134513956479977409749204463630258413837208953142139907841573311462656010317989853320902906648204808825315676493233875600463444997555538052954987732731392633168254621554053334081138099909940112331416241471368639904059253582627357439737490318959528465982127902804201059726785819178039605076316131229845956332481439730861952342699743123373767283781752166382936150505139989751286939962798013188762717238809624138491381707146218440764267715781291091176976937050708663097692030284016639187709025355284157437823020862992709276810603370459633105907126998603190237176261857414532387039419584289621136463974552902437573205050367541879909361603810967793067835129983601912996250189753666763867411498198072534419242761681028450614350857138155430395732058806179532486306709421509506726570450830875655163351055251918677952963408160335040405278174594732439952459473573929252135429883608613815900829882221911665595648525303927442832204960557296552897968753831778177489532716373587517914888999198692491864167902767897469861567930864761718183643799823693589945796810939196984662571564938172019995036527979705995925676203334826254378387876893469480523365292828256249195682323153618360653502035709194051592571938006031408106578060290861908325173712210006575473539912829079773835929139604664048388341889673012838691152117799815257454666660622331458733549527221999752845225482664906225877714302715139184467679460992456989092115775016175245881798715600025433472504000643522405124766622591716612597712315061175484119572686946486071352859532902085552237738586459723439726985654680013031385340936247746757979062818655342402789946669551672439573096505679995323699516730669109798423198948430706686337533445416497717065271105077538225204434753412833960674361686184795536975823480187575322926313060312710667140354802016830863823407849967551540232258390047523194376900422292546289691615314810096663641063062319591178041373388920794594470083872364613825561733507157900938520059486255350364240732439020672443994477744454134628812763164216923282383591945331757582404515328127844751096908070812330650885939756831774738301361655668822919394025102521999165801534053011833288738384277457486217046633239057783106066904675372588500851557219948668308003631621912809642061234535962406604689038080652247525289518139657235238106014181979034229925211648175563874956485875506842578639965203728911973251935885835412305007144705432376228294625323223969520854413502146436589290739668773040868596456616249229975745150511407608749927465547387251745885502072442966435533494033443256571784023057442122837408826034842692695524321330328614612179269024855094279265475935345068180625102568758368159253856399450536763855222037383897939125962281741647509027455826354047255253490534729459662464624641093163027056327348939063870216672764333463463498941143396926449314493683794682819076400843315393282315104227026637511045063993418388101272199427515987942401245135045116387271238450211529589264850510244436575540028164413515012468226742878128867364967388635422547045425152900410281998858299434649145151238344037548530279548578962774423379271527123350194503896087617313528468548030841159506412263996307877354130334854302602439872108408482778582304331177694301862243232486470081917976189093801172560201414397637000361670089006440912317116712565286209235763712336797726546370995013567982268761924255463817861334557995288069302328981881468719160056641552562365244632698439134807791817320192523724818885944542697146439169420265505125490117063512879349226393485152138049084843383565293368710627597657802317979387959074253243315140324287396710156950244023716268716566969177520981088502058673716432925699176386460048137113690326622240765655961155282351308408869518115180000914723664618957065316770639257649102146472651376134101854185113475981600927119115846139519238936630505007057917402568305807999971061136357502551231807120706492721914192440332464121541410502764194242237366074351421568369859742612148601001790529172403546091719615312209550490213121424921729339847795352727942000915996036791718400868310490970304041924997530144819844253255585652527023260510843855930493180327570816037436790311584749913093303076713457705623231167439093814573321754009865336190545834771157964948877759750246682446722028484723680166773064795072192668913896123156368327419353456264385771386306000072443796850473260563619685271364784521344453390619773713331197203527543845337510511529066229260578747849483107265982314652171222442195718796006330273805366893568916379696939010458180001068315237742797586636647920986434517951287334529976206316470806945712991681368513323000428529186308597200809448981683748142343104042438820824472854378017362557953361670759715221887776963307100554494059719081457694260947794701635761000280973720561206895612368713133796060436958051030220504769152982671493922597765285744071890450054791655835106899004337619643109821111880909792153522382944516981195118075681338383377830909838229757812820782860251519042265734735500866967354271139001687747306211008712824385515622665083953676818175168416197275274344413553452103639694206689210635622250889765383219108674894923639584407953302087414306760863110676377641792375651743711008281755437306985530724533421865516372557276774082405028835954492118376258423119147852902506599485509238302370065199020243971265264892620558943587351378508434813142166887107075300914774783746181759328647872688523199219014402674644679569149216779386283196776609498143428951164449548726827845354514477713920075592650844704959557890901374045440922044197978556930747917323648472338262861040910787557872527956438168326335587612817184522776381581500502621874446012345717363287580286652890614735879462515340405437131247645832150400248559124646169214374641198200861245833878706627963198025424823366748981622379632447095179018322436992635636093045169982697141679209797849506330163142802817163248355217982035766856056086283543775708333337447136397042385106622919269984958989458004204299114477186652583492626799705367943785707386824645720244798057409821602261176048365519464118879899657779700732031610362087970641564130667498837903666124994853353698837500456779345325697760182797893960561580291968899759184574131488911080942866763528087810184795062488007073378802051347724369094061653203188440461672838194783240062219721352129605607628736542405296150705034508360683856068300376137455667397558069253712979362715201947626113126365501356883307906584495892413698362503780209372294036782790281733517023957948293285217947749001299202261228427534064160058998180155283275064325135791559162664717912397877642980749614557144230593446989079348327186699907663817140320632520968997201956859499765148507687010788733516659258298286235701431884484440622108981901062559278155741005524501674024641224591767472287669618475872228775385451859483606856126921088896723936241639476499006481803969682604466571809590535772839994784879011600295038056450574626540008682960030758895230150943388030351003060425113418338393623683564283008414630239925627207709354092789025313520551570250696335981882939735235770805305923136199278133241519319420906373757271512025577000946437869940665934514156575648429182437615305136757733652237075125871551083257975895090560509647542080061089641224671539386192113154888690654917514250576888439192668001900067816539779912011581572213468493577505035989043094967479405608097533407926887771353026258027043020748308262701233744138133456829049843213936645499451559586444137566604603599803759004644643013503512198824255988762820228432251008856334922801102725668834162205341900709594076923807202888883655832622926668760761155330755061919384756309633388291047234711114762177317857949072378336245588689415868167464480576803264647642381853415283670322076512146494625268647618867313275141784197694573517197722723554564063110311017131095269152412373431513988523006071878017626789006000443353443737712625583181394265191892916965679389788863193731001869002090919268222767175014178686445733789228669467229852025402076314241559057838170768067504951054089746847200214444079240730788834713865880299707556956152221214818253300165583977168572064056138653063468658930677299495975012438248686046106860661585298748356334836012612232087350164498000253951141810272106393170540616994600600082441558431961336774739347057315080461060881059226875782192532672724442772874113306554397596674153680240251133348077710330523704704509824863914464069741881123959894122238655258704522664572453185536300083060830272855197451523813380781519599666927907406488004486612098520469464586045389741221882732137710738286318893364866368815692593382873703324284009248628310897510649736981226645279689630758942666615408626048857506256299191595336086627819819722403584614626364453388793505180226749340262550908605677354776775834377202252815136966356899392248974809936095726719087959086787922452035050231756489475355098280030577333215046792595963632722595896220854340140596909676286644866719000713659257403193973022837160016514307479791051203251871622151044529334324482075908987719925874091289515666533523655398016506935958569275452373232206549835448216551771869217636359933975130132376998220763492408585417279994197582607026929427629727182198825798050801349879772632578960884706200105413463714081874300616757843147544670836552487596348984994103922252989662526957811534063876052980106195173507440882283547558824339004191407677400587987428329834872960407577764797612714137335181130150855059368270393666488569378619904966258070070610504139982233451577531048872177469549489275748852541089107149059945963796743866536899360712919810356972943335839142951655920991494478579944200090159870328221933392171985445394399497789337237248555842001274892185590408244971532381856051167805760275799663622537481192805390718343130225266957506348804176322408740208005367436615031304835971203265175636937445868006845425804135939017093900503751340852248162110299818070057453364325365927331462701479814825081109473923782055406968917259932970674349705696172390667633258234241136884207425679672905977407634775651430575074346615634888153965087054881222566230232818045645503060132824595606926900373901669387306202125120473776928904118086332828216607562417996855103102572672959556078392264625018473418447738424698159936319735131968714791310245199315664939825232742496280331615320016786456938701265067522995974161239862410256785135952890401123525766708059420190375269103400047612128319626059369592450297371532235560919828827699053079804968317561221262114279982203874942112880753502893486390966531184928627129540735017799354989781049350565805804317274665701431973582033024063284494851607972292511337300110163521099628045977757717311023771752290466012197064481305467246422170957517474743879068657874917642961348980583568564184708800820988058368110305703821441152410960837933239806401942962353887828632366153282061863956323194259871585957317108819774337925958072755284371958364702636060137737020473300968991062677318332586396846667101632866254825111981274122311015378948916318371264063439389561621205072308626655858556182313649242272918418707342906609496197974211773375876074410340520788240556436206206557437368570194060943781666741774884128836597931886748470630598112833079976283187817740524098943607294264345985467056389117607548072145286004431203593771156004638852768328646328947267353289958997147637756613213652135222988562024440572537357644309098426896338920583328813455188170668053484502356557671544341537990995975054994468884079707028941394372153007612266781589398960192747036815788130643293613111407296449658491404606541727025037343064603740942923523393791694796815226486956322479086500243107960244787551437672558780296614040838449859112902747886050742718701621192491764274073891656974697993831403233266357842132841928966962435428446231467703526104917977794573048403761531843095298248794808892951946305729599457453207692801260058780548271640692382697225941157908251426120153912034771184079220413792707469110629961097064672462445179572736451692878533214159213674796668477265239041700041601428829547887611266675669893935906114651309060690894688436347535909205036644278515978754052722098188363610259653638546431933721829229570872232135357943136744304262456506213246948951953349383270134438316476934001780287880198079066307539608637274438357117232595519028851034942380148470037632068380790791227860386034108485400017682600556838073265750614501324065077324572250753982350001470761294493336746836801924734522348200927677336021544394411671999532972330367339530749089142047645656596237025863168498157457141681804103434855530189502143736936184354426739576490487810476597598706779345106384541938317668494761745447496325882218330699454378726577257179417821952366098165001383052426828958719092382897450992258489121058187294759924115634323026526052397104360451226314250598832072605357713592414710120343832664497929633247080752594165110257539232635130121406041240833965354755360941958385508629872437632832163953306975246743742887230805881612312428769010273212972628944816201284199686048929693851475813722459985595797868022796740668950163299015313936187211629707452136131220567754857894058180507350023636796532643849913120327364245084309934009758137192687969582121191532613017634915076700600816620576526094664850078256345524197685739616002163320084629038354759404547835848632387380638612030719317825555883980644197110736548743713959955462088129821561455892255283284328598417008358331139812563696423095130312228079380278441518293926447351504301677084962654540639502986414272559278031080658179505037374964587023407168820926339583540451451552050170616327271116795547134040740542435894852827070282193474094162879108631408535444225887668274924538738893262050920698354310326007578251224297240303134991524942525494125467389727466995141348333000262337513564622196793403333673256731500138649732780414937603210583009433953495005787129603204818292767658076528063130941479157319541570416797524540007184550916304457838557918302564273778854121853454913450815784712583079141444100301249736538900184125784400823806851947226583948949091320807533127279327617132356763276286357224785918730744581394679078319891539272498611884585701449409837834268541749041140554275328375801997627597757935787544742777577911957473968176808905541644806060395368106952704406336314830105081574081468052363766777253585667163365201010922804026761508062123191662978114963031287428872402573146547391288419888217845776015195799992021556309712171909137995539165730859093723802491711441660307195539868942801186218263811817236943802784337527599354739227057936789466165707778240563328024235369839005794072288543619133864054868049888360379859296162095256774214388230702444168234225217515691917779060727545650323462919976347202696564393151109321080454060296838874895141049142399162984431778054100616852427019616665515120439424475288839976554440461042292560530201981149436715570144853296207970039035933794925870814266444014547909487113507552885645033551506245691855888522609272017044098678384063461132333738312036998754541404817423798386736231908850048745184979566175581907320994855045326632298416430477625435836480549039439653041739681504569263539266261504269418751953669424953123900348341906500486820568593177458275459905084880563300970421420513144042332389681212959055317175625810291183733275459476605663811887905577182143979937906060790677432406000088313351359053390212581716854496840017045082294812354726069463195769406240415997497752446460611537115935873819777612231077785372883380886227246145099862856307364358628160911330858582596052213139507728482077659850147679861155913723878162886521985880497623078760452024450176048943780732231697919335583901548686510881404910798769646876366637716858325985219619082039553928263040228624662080184492724886155322183735998305615870025219124089854595485884730671393038923597823662310298399343826349311463176721937190196604658362555552331961486240275312231085139963636386539649001402479968793152035689747341348890033749162664667527012208427270454246737725307927573763705745132996455855149499942708065283067639364111737821555651449548602260260112030158540487031878386708630863974448672629100479673244640056910289422383828131027661345889013572779609690277320802986299601319452632524653384965636860929099072474588203762126423613656805931941324768505711136279880443963330398522870194863076741466649519094387712089705458605162339134020362053270669305921939398185627073096217786748795042590752206572912695642669647366344599380453535137782751293374611228900196375533617521211048865787669298388142538207520182854393285081725313793503123856876192488114833165741048152636069809990784710527072783535199101322947604275392125163256481884222528274347445677762237735621970067802765263401626370717177863490728881117295338675300134057430239924357773013367592430619938994538611245306237098145423396878255234092144102484529332348649041361973284347791902240709090109625670315804902218089014136383544149911021979015711268437595728017219070439101853305306016760091883152130143232056446501471662492413091817263916486197393867020104726894198041900154316215120605207708424885424936965277630185103808394370631993604725079128008772305179995571422349728195161612130775812128325326952632737464990475606848256533227403567880398374528668483159733380968384719223666612029061633354643759696963811299813993178656042211704444870252767251241303459479326371464965633475542153667330152607261822291245597553134938536932417059638972295561274154576153165344754063967813318400532318047879082334152954770925653671449610987919405694350059064960199929056643842943741968382311009298197218297349314964579103885439060778507080715054506376333702442513608851532989213132483253853688694699296741054513291460682045401417063138677728211452711087422905841918438983547970909799963130148351508053395869792653297356969385798293906734032564516734545587024961055690843191321785959696907413107624729642651320341832291181952017385860485652548092941361187161420916279219347290207294224942917247750036561689816097585019089889820463810046630683042415163218574936449045480417420011665724480457751067101871986049116503188235623817036968295091916956223689469263259063979780982658449191509194781718625051371084233559233525382844109137997687432991230102974362676514060505948794448268015374010449707798868789275587081410400548031661149887957071131701824906622204681652234064786666697870860216970951817485786513946932952082118740460444658395283766587577983257124877342284136563445131241795164238320631154572084425235200651471157583465641951526827560449272665147894584277175940546018795382471430367452992304250223592315774923698123734766843405401375797120043718136306302002522403974522323855058673325782328112769594282364471888702273292468877681620359143061645818666861595625343109328771995379959712684258076634081977893330768581857508159506915426517219352127325485154045705685301173658088380315472617529718414574966364319936083859521288738170623975651176696825177357950303427174371052994198368233280246984769970087622812585009004758128384773721557527345430179521518123327106018211894791736706136561295837235006311227020564982300122739767234912475315302964134053057663783828263807713203826893611142347602943596803740199351196040153872212494692601663513199183814853339294152185822690286325512951446433449962924950335612692815482116750626867781201717051446984880150785072393109082886117992020753076762882928691454148212099169397986134913029649109061898404475053730073836266509146274803481404894973418828696019908443434943030995749542287871785259421736427063438605036175549306904908669423776804148256220168909892666879588268452453918795141728270179590547316678004452116203597287777128043061591397681408926799811813878675318911586284524030911472464115804197769634435209653008413742474460360044262862983160621070002068261298550047156773076745675658655630551719704035161341607682052722509936071930672564246991737484044772861093351161093720467817109672514228109593935103047825466515837840052529053468192225418746392091363886740506682619055630768887972276907913027453494340616344408130647310670415710549698751504612951575083782283237539274756564339626392380327281340312679416560908177668832640887929387076277442532951224681962208783286190431863629522482082698598377828696790176304472189009009578947671972944207201985013740511943502903079066273985110932716709490929877378960188676158313959437035126958858471541138253304470154031691996335229103350836329144970411148751235204049960942368135625204166030137609360845212298231837326707953673026314788944824128554373220015174641400707516486872381438739492702945270331797543734199823672877823147350583406988304349743498662042455344677015097375975319652010090435974019541053794410266432864216662613716754832916235650126311530610108459974861090835310434998240223565867221645060460952264813712429758455707006689706248332230237755171515407524342354148377143276448664949034288744756956871186026527531755009965330075926608216924297466847540984504221784391261789374907743647257352641562651900227127275305038778504394268234160139957791225183731704335468834021268418689936961130496017226286789697865949654430556490594546023339897167888341135819612334332055875223002020616090377661152820582413725523874468265237074721711075075144391039912551787585908932146129781649722006734128682769524716091580574906575088164327903158793200849676029761129704095581577274493850572572058991680278534477951900952202855782985205778083346950858604661097773345826167766527078152253441224107829432521658262629403605343764382146939076748301206718117927473252200435277051382763086182852699076939722625938011584601226683300409489755429359966378445814167530360257866759194140087990467406602541814923636427856921691433303271976866475709211794261735332367334284775210519964654863100315157854453814925372291771883786506232155576746661221679282326355638130687637941656181611979201871856143252544756919244083761025221339018070305255512299705497994902032763499227143075107589678978260380557224388574082339442663808869300208308609767008761651474405131985612551171497038131013638961846745251043361011690240564217039857533329523356480580361160573090170739388791527438925329990121139918818987566675448847591252898404853763458797706840074751641597889964975299551073484064441010702501221536129291849496978758395684572536880736406805357246829261154208604023007198385017603751932688474227069472322838941628167102021152848228606710793840388148959393323161247762417482185214632271304201352424108654834013531635725743787152621507559619334565084374721351372663231839909602544114082446357395328779759416163869470298689250058206774032084490576502439217654064906760971842627206244150720424982250359018834538491453523633883340843144747551889181136270603008192787373498457311215992204726349418542896805354058076895713448134108501735546008911537374118814188090067992933334636062190112122374741442723173938349986066007079459160723863975185514069895646094279353229957804895260132394693569285552564526718235681769372440890460863725438376706834286349061627524536274190184803207734187154164537226756630140880865631457481679416467522987525141404224360505365021787249281892012915085005979685782329253799039750577467498312809524962174889303884907568107143114401746583635858669604932216555050482794431217886290468132329793467469912489865167923556447216869227350351327081659258838298178749417080024758150167252751718675296784075698471686685991326663071454653089314881306928318148520645935608863315672944337142092458295155108437367504036714299382661476565539078273140989158864844424883877532967160076283080436603469376829033204991025744271232658627656077225220334662686457487535401974487289559567550751930675300589563488654376912547203978104583284043416233330958187965048842094026294231171204295497378104447876094556771704682176082643651912180238784400195126951899422087909784204426388983911460157899141722730518117128814041188424175261091519327644085851154498369461492876724205300708880417514485521585475003626892879117629498066991571833266472693302731757639146860127069086394582928635520809780295921115189350490718980991074957320570069650501085727160067139576382409077233160015217674164535666734529083450341663796013358901949382109765498187945434476754358557645468243164961738239566658120575588756553664823585718539830215169864628564495817734635051729531048062559290521496584166342435913316187922165286237385862147819978824835541992365229086563176706475088116959964554905291071448485076699688221913997601676091594341600860717858428105068898525814659892696392028026120925731162472314579812452058584841311822411623716667376759810307217730111947218499601547639435525263413078624175878119715973679741154720362396903061088176496295951413369079722160008024568612915452340976936158051332172628174303442466904756608258626553085439475268743599639021232179677015428512269087818948918610116093833169033904375140594907606049802931363415506003592342643129415193524650764293693893439085183116934801682417412111999121462286195797186912060774696563236589268774749766193272872586238024780089416355719157827912734697001639240308788596726303775183631303808873263627571898443648310229776238477101595649161964877353554031583468406583722961088129969404179596190026120968064297805957992441068002208394236090131771046067860133671526083923922933970380599423261644042954351661356793528981823685085934977126640461539637712670096657409282564155463499454906629867922662335492103891934365976249226984796501967818598607018066877551320139700024297970980705784544147770108923356048016100914536051344998958441025986916047422869875034713419531438130944889240811042531416710684611743351597214600002445711553310542471650121129015741704447605200670237033652503725739566589697975054241022796804012412106233382060469831216571398444287853037208694709174788374818254040256475418846820614771551992352864148262751274552587818054379892449847282881390552349814283402927654873188920979881585623545526968725750216663317373869896049679799003695329226968835191160804908799221368187057843300943593288521853322744054133541525173489822723652307378118178273236756795765476290580608297510091530917926585398223850043130433030122795279448244348853919153913006021849486094421712433285205873792256071922032203158786186982937011631369650519156559123464021383761055999178800817390609376740607012867217088990447132342888644915643448252957887167095787095578566721102220571258020070826963607253261980184777452554247324995766091812096751146345407634394632300737017371559554721155041514887719588283442181563151685105994620415628467987212839780379429611613484789501463734238083011354411429151791103610432638263311940963739836536599121547484943642644136814447122674415579356265846917278303607183844812157741211543150666691798900756307678623419295420185138564461728731622465719626630323051843520641272604532045354552355439674219486015879180979363473708179379893607936642639847581917432038771966447867290847920240762573754304807387151771732553060828577144989692179536195290373912485627245309396100808947405613938707796085141632952831874486111479696419649679702442561344859645016114078750298230496769857978006889332046074814207850237790246472897627188108725767503635978539538242974136827192523030920440285619356597086319003275948100307542109636132199707711508126019922055064748540766201793303369128856058973239096283733066457719852065717555997128790778286415318806124232956527798988912169569662094751217253519779287571957695242281042121342951500298351885107695743887148066172332172630763729238135259146631025995084591091721585855954982870381199309844942808583463559222681936764629154015431049343199151940504350384490481972421616955463619184876221112856089896572381434024687490787715625181563871354302948239244058723061847372132742895282302643162515791000257329200540500659383943768083177110921729001162053797263799488687345691611939016908337585726178438602510147413942738076273146787016428068617743131574997734792286814574923903376040251786850486197260631055162127312927636177709731926878165778773016157770447137637172140773378669531636235324566319357615610390044427035167855367853534500838076870288686735289334834163790388578133029484301572265060553301185714879371198739024966725730363974340686235343490520732751147794376493300253472343476029038134067988175069210107636952431445853626502729454306765884521205267776359497885209694079855517293573204075491503597536980536789625631724266413635299357624315084636062360784880242975599200612413162682292803623680604824630315800534262236364386080552324905539117446929741349571124176460171648106277979362244059760713364422103431207006612761640207291632046735206954299930187248709985891052265458767552099006322837158776545507271979440461587916627919936515336048675575144607849032547318294352014262055779580060743075128519184829862064967662050594781069478975429566253455523940294128836115866025053933648445779381297392123176376961378476803556459513263128226990225770789680898449656433821905824089684566396378019237799503552300004061262380857579983451017380539141430193531067093750634931357935107837872672657544288273095111070322921686904019551409116932933294892743193900756540879345698310301990633991628374422473800742369625090796520726924577477319997039983023559337194208408996178003340645852390357046518533774623908579785347529350439447981639978869869628891810384742912469731910962568091852000788617101571969106395970905051839777074855333195859186475610132340035808141807558250280403506778117023890061749918583269978077019022321705386662558040258706302556837109038530817762694585274451210534271522021510361208592579586132082838341451755665251576340049309749712164751796750108750020512421326864936849224883958366625345749343375978837941206254057145122073732768775695099053015203439997086482995160959589151554310110472482488845686676143451273490159921371593497920572170250660268307971611340837086583455225273340346471313797442395195557382809738746175319308584557064076008691707595837522337030279048852121312342435901824466030811432940303404212581934323957901887480700104442496362026139598765800553448142733659145517318445713035040185267066381415125968570728696082264772135744054839440299248262331861844827639426055899978245716914857095388456523993285891614893039488512171818252718738668695585236059490636276824854276154340739786639878899312548481237320871443176916651244578463453509783876851005136706017097736838795216064307913667611007485683720783753799713625139225160391962330100599513944716709719586723015373724767844611509101734340542738671604951005636719083078607955273244220660034560418524034948945336887288540035655001994038480592707257985265601024552518527871013876988433903595359360690783129405638399033698064282479279749462796928193265950851288785710859552016127718852301668033669985749807018806311509813618072024819825860097601723341990530595392557676030768886407216628254171571825339563389692579400577031079884114645891986922251741906605771491866887069853057624019007945075087605053276167330176018602987920554229475798645983703788339484033244328692986129251444443696173389121697011168909756809011568702480086032012878666207500179091423662818366420923822325330067026788303101782499481842758385644435730155927606076676919636355377418471132555994913878245067067326811610805142147005986118799496647425216204624886006669707710664566470917988530941302351807834101663168127472817943794545066518920468391783832381946468373896481125968597901880305451571328973864078811493373848990530234575686992485675836274013170880782804878703237253072118043001034500687239230034885708079894072133542600205472367666737014433887158705600265665816392427001105190076038293315462334213721451704323808749441483767983209670412729598795763658379653670994828323078037977865148373427310490947157373190008216641930680411150156694941698646759616704656718064204084736205343473075449715222343090382914315863475487876084916674463991706389171486151463948103829363906670758828627273870490453191488544523924875518454519153756077792043166207000611930905743527777038367136380415968452074873718843718695953850350297193002327924271626635196548552768357410813431328635765272165146429141330315736781685406088048892989894952459703909919676777929700980645450840823104824106838179888029947883227897400798430111474353769734432961899037110195154829303254350828681154320295829499561436256377007416369735480273088094192817057851976505283180560956224863447362074863566111551383944555246397617938999378330851113689506380815644679427555938169714492045774984596698227572067410643593103483481280002719992097353515327912537039732683431813954574772703399665549506707304996519893341928744832020156987813175763179962855327755782860604623117798366886411076402475920691518033254476505174204334110828540818648410624407444265890148842289454755308671231855556761445287488465168009044984356097635130813665428896589116532052067216921534554776469821077608054069314704999938968732849424473726999069894872845262763245514451931859811326405533594643677722392406308645411979814858197838688803187928210410180141708541340213402597203495194480346899107594426521258893201951192904683168353175043424897487678032135597495925452695391646203352662618235484653430672545443922806533215833506918299663597714049481243424582631527528905718504219955637056318650988619220815627269217178455102525337819134837506662504530590305836329150560280068611760907990909568598536373564164512238363027908906514705887494469093774090038808616901788746142696779360698471047944986621982749674907515420877903719131350098290504522695044798949105141657850405734932758184625020221245365846289789023218073290059623657485740849062040796670171661899629097754930302429654399636296413504340344094949294429855624830329985074801014176773206583029788052271679627927986852167241075698560399378515065156371773536002425198549627146831283296794583108710702200175152647822000650678518798521075093023676811342252654761362916654780806322506056360086502948539864004941998207596928009021417039764621946554823931646624254257233125964085504105482333740949873321094879248935128137556043581593168674626115534658530123985469223165690061337952768208483423328043468241159641859070356445520095148482781013639059474062762797601588168482041172218791741388718754022133190815808572696554575900264946485747401330371559080776235512973738094078870463525519289179347573668142394212812648800743406092263471275772592779531700750644857251649348753247374756556668862671037142882721103251935533089392599173770126148210399144494901707101500895916718936811731458064877581853471771822632374300448976466711790375346545086106600866004778843717105855741639513352563720107688883261764223491177456617397126310329575840734280831172599910374903634096915582288343721649100338875055433053027708762460362844479832105511634070140669802862369382204746542865677877364785265269637801646987987510991347151785369589598765215209531929557914472175635398258437855172570733056256622687575092164271619973918910615172219007139899219018233634445950709399162848604205485042205028079530490635985721674165507593156984188231123103926170149130248479606760909977389206005384489907223209861182122401562142341556564726317090401022819296569170215676394860413784719067964001308295973658078314838293815115625479883124975203909551515377361698882784882297840987441412842293533420486556419750589819777439730817293613309756170010073115095432242576000501947885569336483385111131648202360067548097479466439513276682767146771784289860180096813195138772545397448924781535925793296518733986458417495132194638882602187256554634111862002393988483868832377050195891528169856677338752068717777647141068223396842883347374635637350300596671351939513719554217133981431168219990212173920056054921055100489375206864535491874003069734993234299502655385181516637767183911093890789172392522987922406667134769228615518351905796872090282948548242884617715127410647242769919309317245359843020758475145002279699622876121624833205766428377164161265858837027501733932343012230434805170002310060537956460762339043727095588622560551569988154528183319396813976996541108261979754720977115746388116012792545030613442293300162353922752293985855934090573631331822851226388574626666795867624965411216713351569387254121554845151369644326874545145634952640113036868890750578283902369562501671542844132075396207316394505989774198497920204732757861848151414478188350125911219582138279828885342556096480019944143218133616109806513645007950294240323542854984580268664367186180483593867548824448570942270841584739527968073862142091604865159897845558547616936369881387379749758859303805096271843547834891357004660087631426925671448500780839519497340713917832167235806720673992739745104156446489730354737585387054090112349812546157088659379552846627330487970506419088488054887332658924751575562588949503895637073155900570904783335626481637429031058353669465261997661668451131399865350780408318647770905259819535890778522421506964160167311212534637591255383739101288686657863317847639067088875276155649281878739639159026293482468870976299183724518707716771670298512256136576231198936667546913989667977541081219671886463689925810994936202902980268334899941735833043330693717832104564605526034531020632924306739045100600195555069396739449771153193476118531175451678536149194143117475943615228685505509626666968744969536851342630210739220655441931843529305011476994509205916021920868306084034192936230887065376816905292188928072016739139349676156044061588223931104170765428004956400382952029699948557596281167283200308318122176621319864513997056230939627457991662752719074059872306036199542132490050092702953464194061541059071291373834523297025643709088738281978788896067011598680419505856106170819603618431989860828911484129197189088056473474639624533656983451322164866760024680928731206831768160524542787640290835147904557219992869202512612678608993736268934790667682253829139227323148361740547017264534678045264633392431313610244727246623622558793603534544834633902699348292401799417793778180471583272309740733097050620376635514454700909442395824299264143101790812372442104907547737991802783627633068286531036155293612846074140433193612715143137078531375120094526112636081446617183223824624174200302823927899720642411800611675833011157456760211401352750684142548624877375763887205339395571209421470728455500528894875126225144285959093312709722663474151479480297158811734257777576725806307406790901546791437835291232732284921946609195853889225999765708607285987471160146999370265625339981551595963379706136199136623001588408235453894425174432715536324789708120928549782090238427799779242370686472173212298141526415542130971762631228928224630962976125431028630198047378195439337787187776455624161615166588370897221945762813308611614848434900723404933294888287698899913722868700169905034372242337983593893490308863731564468505515846287742250674122354972799518066871062110021376458350408413341623815792522644359551233921710549621532253233598383644612661245649701340740002701410145046409225779546515568847371515360704188975541383295014119051844297925798029558261524865888633569403836885238280634480517428514351367065031263706394224192482232571166371229035062841706518435665731014703310829723904683731331142306391750434833591185180709834605339127463157047645006394616001177092808755000208765337762249883721045934724418750071909291197069277778147757800977359445471998099712833309150007301921940383836239286142187828929030807582606458521630300487805163841113512989734915276683594946405912071535448314407669280266017896631336964305849189248945775811061899988964279182514571402146210085184767923684913468501717384597734203960641726542410006905440829333786132393065233519043388996687566230339535314028990868493464255834808013225522190577499235092336108726871890746636903614781645089788472059614220107138462444323669085122629417020741231507543247095558548337031395475631236697403846043831316555070242308767028154062281937209082926528408921160822989209333338746612867957654939497956096356042387100397992392424734325899337513400577351046558140559318562575710413526498895417143111732802584813784247382905486291247290202169350723787257565836026566111981288568400393420513900118934704702287791363610590162322825102243840396986388895451248627138884734336387600172596529257790707679847963322632728531398473172924820860651838296576306932433808109501489718146962391316589165723389758619197120275268653785280786874712651357699295903943439498406457723985809001501934350302616309916089676575193347917253218772288095826837643777576238272339203976575903300503484699531095419286153214138588554150821793301260050627055053169580291962901008106242937528805398026848250496156149948384314716308528710700178762512838226243950390418032932962289648302882902937577102076549914503567996452870502635437438976193091930841034495120284322544941095575124454761821024304701789047999082091138143377924692771198843448739564210963969256645900193960358534396103464351215654634899664161777217938098496124649573145531530773454484373704467684542788364479809309134880648021222214861531035846968455085739853546150459892731742642620631685773458141432655399042475611267989257056592002138844765002257527801552334258285967464545269708196980552173806753310509244751062156856547711034314012903103098600087265908695870942004796833665424107339830340653744321244706453399713399747706853790350829321344278726942526983703488551362553664964327136460026066625826600690513669787993782457334774354526355073444063074870257916863930155283844880443981028414154332332557342893086931432226416912109505891078885305482063457504139797923682283745774011157523662442640055457900947863537656629651293363392603222381783950761788538361384234306058379481669060978097797193446235363371886665171689318399622335616517863253534332441840819784828979387229254286186488540445055459012799789463991086380471631883558043598873924253469721960861978321424770956124140574480578712791455469152621432698193515935214801340801812303335796445111907531747824390901777183888201186751828562027387038240259547867972063624334177791774642034409492534092442815902367926282925971475415963867016211884181371326003272005652539398073143637451972541653555550166871520598063232874082083996408392666203913171862453802231298462718923214387280023679342070718743763302870754417994065799462440706247599059935645184019658931786463404695158155656560203313456823408260871388336845871536816679237243427865723814399589535432142844143816231276941745593876428790037984435930625197151809132487615958492831132116277152141463194453311739324728878946446315854866709592911014217893465248760158105072909840493616697604312583830728730450564262392498781221310079975865312673218354946018390308760650035444655073295094452914340337083465680094687971767883885060144021240999413044388867192316085495825464335544190465307943607420927370939781161291742205635712648780947906482946852262249581510531098897101070031689163996330165937817907004882189208388237306513226011848304709993242853889901153329592884152271709659498755940236795970295903420690835941859961924624148896148447613010451605707140260700237693189638760869971630816395024595638673901158991394451635641575747721836080879588882236899942767156304429129977068102620744615024021870554123740401422222888544171427269628586411328020997125724620143256169576616935175832549121870916096580069641305324758602942461748717127915654653664150215451544101540359455654334494651461397166643344058978651221490004493922096739564968733051048249396532883314702519612443135423515926614992752280799774051999251575771932704851933458371840241101943475259167366117879029732134480712496665309066084027145417679121372734276570591266928755011461531491155604064418759832531734067823612041549511899560312301555236505759036850117372794647840150229471005307769277675588205171907109685097544351680431897562128670530076433529634818775151426226379997252903145217290549910326654655049629645356950270375706543346169451409959491836859816110642935002751019007574689072251260067451434440866753475081659763122940195047594490939780424749506983865776445237885242418623997090976343570109186021279171891037465503710699900248740312474662962269784649662142679580500045363163709539306636656526102588323683397739229454269120402737156893897202143495702342223571540970967168926489810493843442317412834035845499432210964072699185733549656300783463637497303471827602189500018405995053826299169971804419788360188598038581160647792927441175757465431894835642572855034900747071734243904775087109258053189528217009763506802418667994815775276970847472841647285075569206364242973813744742298588851749667383503762232035631877829493418567998280127466851674717253595398813622025816459098479295066198412386154502490833222075544382387273892440901142137695884467654043575742256518100546418030866950490457934125589454412454883976749287572472392146059376680892226183856351566812027664495558761207546629869294779966704969181741759777103785222282854971093313918152362737719248461359042745675425998568262594935626214922396981213330173073978031861551752194595440353159642794081435407693725450558620406966789483503990917926486818754691011506358611465034647421073338863305277022419649386476609430949799450191328519204752648323370145122727047462663081242369226759280354709108275831289963016575095182176919452448388115818491930151910510479243023462248316553793515118967765183424307305054399161789839561988274255252518366743800001459359960775311117668790410857160096585599919167316000247521929579064928355684453209245660253154139627046429655348629303740036081465141824760340383734026868998055148449307232617438127999422108898138019007415956663598547858685393825998540074253400648633645008107243453714083176304897827151513003742647147400310801507723488992283906936960959959964669441503034841418606403346795667954731929036483228893348972858330738468286005101722929350660037378337361203056260207482724631246253902801218936750613633386195708487032366982396037498214499530991671923450542245063324816778294732403007374038541318201366480809139182128493055937109662795791789006651788508263418363588179940094458179423389374757001851321404500544847936609411587710215339082689495819286317455929920705810368145603651560282505282014362994555478788122028628407205870939320775073579982647480529679812420185018324746992471543325117390958205043416381248047646636227623170992779366723001522561377421567605288999171411657235746318609034816965539190443080612193041527806285376028656632433147595476655694747554640119486545193593414111835607334406211363652534841041578880798865094412720784407107909145796930016237032459720375191218354655589907244253435867071099368538923663230992760516653960810408658547095806156800721230068291203738208390301609795612226619953205298775740749036314233793180118245470206605301673877492700076403077838921181681421030517359972276597819927768184614440109004150084965031010587768970724224462678175102084620689147395186766837275447266720819266363017284088092707361305293169870669341542814532419415964298108110772063522482337153003792894931718398054718142900905296532929813888435288468171951007275608618909518450627665229912769115351535844033352481197911287758159914006172429264961040676638158465516789735094646494779473993897027303632564762507214494058602425144691927044747215984043484720103937456388851924939835750996629327994919718795832330968725163769486135063652822503257772674682003203147951175986972350521821567294267394315403469142419288904121224084571346125981524855346647210144020093744531908849646789758919123510069896634878831720869820873278990344239525104411141733603422104395981759906463580922279747818109797628050590378498171766128283065351535866607752136583097944736810765119221575660447801057258747261221329600934230503576862472428438262084581025869813964305351298536552737169869777220481476388476633254149121291885764462147403849265141384222095682481740882856548824044813703174373289593936291108400210792915429913504020521900733884963070959123579762786974900120154213752926949714062918834704803270464820086674675751847115216535239822980804080784102997617530213823020580526697784593312020257922160239972247208117885538751847684659847789812340018815055142060234271593709389452715302372662699476053471110926831841238012752241235501937822707000615424253631540809732511387332643083749770678382759097231395306105142441941371963397682691496829439260500871151654443054421326457267116759530521357697203418059335128338977048645526883196387916720279796599478505061965668087178344939160779496036973423301622519118217443968307221864930751315188739086239536961442033618316088767584026312013519599301758593145755814177656333302268058025673294910774343474386728645554225132856928400082847044790544188101249328322857896881485959019610216676534445369106941941585841571158043756765346020815566584744024687584267494859198041750454044479435897852141957135936556389234588343106711654206101681649792863865213961549529256505544369411904588837849992226479365866746389399092681698244149695671187787273834418714364962789379910743157705907239049973501263613473813902905715661538792366358225277355797686659053503539941523824905051827733056307115858383611536831765426853590788218579111574519556066135853436090808870832568739798355789531240539071299241058065965629011655147397973323628150488242198644768348120056564752496515109810510811821009923382162153348657266725212576422705028845399595694403814077646643488099299353813379399970229381903285664093779220383308226979736363072019493800362634309856398519138963927480436104341890837715288647962330908653385950666120554708161642499260705023949768063239879368516026124215033084253501401256101840666689081663613253986430180885727914786910145054862606593292596006053332500224404654248733712262698821581129207824805780330134231700733916758668151272369534690561201193734806932771666553839954231606477711680042879513192562655528908891399268493150586435101630093961131738119151349939802973486803520592609398396401451832710565842650023659434660897134815175899986979267750221075927975796116213308908550106522064573890783168424749936393345141942896424669405076768901739954313103502791364005912390271696258992413484123510756269632107869767539299156047048770088544121394401369693321274313067603324432002822513442862221931305868752402170217994828805158542771105625143779915774348959449698554776455871831078536674729372105619736079115029468195846296379348892421720004800462409620645031509012118079782255988390808197907153654696060447693809926885150658311785068022568367915996486061332814430018588610984109142722977506537399149661857579869703034784243496554066230281961059922509960569956513554303525234196466459741059287096406521900734499374863382269436747773242377234720081266061082725835394039459969894042807891914086971844093431938600208086509210577264002648961099025180300562512968343717699786939054116140083696284346592496152780837720512825778112206521039742793536192349069697530908568020016653398231162843775627634931725885654256271953376450513008712787919206741542704355259079726450048601616572394510126076498088920260122964892611632144010205744920661892300956908575276636916700858642989463036422647417432460278038362563705924458420296070014709419444013471147491670770350720188464629272366976381963608313435413617744564800676712966752165743940324379085257976461086180727538728105513132546985567709353712767881330363212174219823196611723812869094253449305926360765735392179763448727495767986460976439621390346336502521837048842762374498607833394801194701285857591195915908494578050431217661678107002013378657989923340452972078798842244461219203915386337937683164997270414234209316306097804368537944166961305859942155145233414732862942423913318304363683850983256029024080663744309719241726252668900929474527703871859664749613871681700048884115685664025942773103589987054190770465268806221663662742540865126595189528993532265098579481304073691476144040137066891193898447698021032072990393605431719617302672139997144229918072136962582981499968220984619799973318843057079789469207423984472916930098747790433236282155879688055676158964452452145680569181266243033761101283010455811272304482278282894111050473909465895666419887922580774634269976632632369203039623816445872366390433879067914215422000079702849495790253817307700639943610588001554794941137947179309398139122870720012755635927299337150352483351643445358673466393407880359123704025187193785583505099934298741046588324919647313606123403395392023404312175868860085270167449331585007627039630358878197314598785624215968745340180117483189172400505960864462129703938769517449314406687733305290685196282812997524911123727013988577245825212320408276450090528164613344526847176457059326817880446010281728421472494336793109833746227720960430687981521422370505213719848402805492953033274412137631982279259447889393547546979049894553338142919891514988148482558708729449312409574002383428928024736254994142748796589199844400528321536458938465165273500738019799271178684651186160894227008719078817997745312923231797988042558175674092162833242075096971075441532096410340202354414694057757570264928763885573636875612845504384991423543643281796393982093150800893931853100602647008308542408189776810814803044989620737251593394845673062336340404417358750770055770970346493222160866476353356613557570767444903358457210523000288458449953069209733559048602403882051174957789850661592740917081303608466868678867004174742608076268978528157427000622793427559867039996965290614915297112124530142293350831933743843403865094453821405459728820004439490317037793018501064553148622144868592001516082912561678048349823294647122071077561828665479896104123861826729623342574405354239348511761845856156425973720127613114612152518863422532121700735195274844593607801871228170905714950200066061075286690544368849020593870096380508605653817100906722007915443737861514876075897960203172923859711821585985588895184750471917546014859046701637097413169387206796363843961503257411865749162967518207458351187127279639385200227697148379807910524705006566161283509056123832056961091360985924809726169435224098593194771015365615627983558580613015403546825281515190021589431474647089481554705455651957802433012753539059396802533897120262654885361958902221169362924665056022424628103096180068009890331059762482542406193021349202135307680938355527608747859463729273407408566756485645738534743021172513884129594574206510529373135314624788433058120923869732994375195514183477220744819457077489928079956301885388729377107145536831993921946670613058170664761070211217560636361324901565075298565368528563299387973630596325520820963840870570630871689346212863066364799256121937758561443062199698121632909289867358892165251370511620515895403260876608823117810909004820280346739106141978468056020974402731777227521681788924019780134284855948733944909407911431043054154535151767637733916817304023239063224052846692143575821244243438930202822313347503028821573246990915106063790007564397360690595765084305324007390143175691468666679928130195012079613775565633601083858971471136176243751267411383088546428902476227786901850645566881916025742380061512181512329575047678844272145408746266719905460985798271590169716219008368066059118984742911722358801617737304750707334231637321549078679849416898402052152869894014190657901719528461276896984293069405646430430034667857243726856404581753212067192837655262121548337488418755678541786291789081841151649446162863494538420692918374097899253805018958616386014457793053468351976553010308365850452585999968279927724453857951438541784616824345890096837246194072202143213771780244005814446807892357308730288340028835153610090216243619219033746805549815578676756587820313665379152992756371170929456616774448802071055374312798197995929115177058434324154388427260128596692057927775450835978466387702400100317014761509666195860996727907688289363006128377701928733214976245718179547432875449251279418340561949756712272582147664570314594399538237496860853988799980061819387623903239163652782752692936841648566067116776517620748245920146142826823069622480081823354735376165040924194477649275432728535002235446074023643564627550788074185554872108319371614689648111372688919677960791720488902479028093521240516582936755478620281527673641355529910737130735896013780696043881672098000366254811408917412380150163373043108642857396286366791980150801220160082342366239412528244867154330014025781307246263192915597381687772351013013909442637636696437484004142518564528497302905956253121244597075214531550680702833980877785097319833622874360138738232560628266864321479404822169475327294847778170530883233369922679663338809164046864408240828162243188329368077192528806394356635720005043537015877341915081728143319514557792398119585257410229660983049066759017672029041961003604782985071944766107363968290155936761301456110126340432895332434763382134983445810669657077603410919804154825463545523935602944974127460485171492272025036177232606038570912283394782308658658722084092899969675518703346138380968245867462735553388368616675120869467750124370037770649103911268151425962535618373539402947772979678322798264754694709728927466484639601060968707688389491066740702899711068735121263467826163075969230229946408290699307464062153347428021470880799541478089785137388003006663876734884692194187996810406656454456299360388290779541708759000704134624780077570875791270629782084052760896805380655033794412684628483054956273091868420498430734016600185289318018676495224484120028523597808044718828544777178335691838200274585022754945264456975145213123935959443714557876992289276685678613595403097209789533669809515468506070329635889431372609277954784746625744638975063228045673019952591860038756999598381044113286812882521196427193305264230142092885579994848007472604431911060120207312301421296460525473876939858209495090943262670749881976254227620584404734141526100985820982344743397507851052889154258167677631348146365928616586105424264871187437076108332782910939640421103277661135634418200773833228233640834534285005961682358371184264736680443608692924356312811832433180317644825637314412221196167916754899519772762449929351224125498880710351791227863872787487484870247219710500334219890113699948698603965588754756955521169447233959825827536713816239068653374404361645754263250376628714121745380330073014938638033489147333419488969687073978675723114238878973174916834170068383968738895452499736270097719048236605266924954080231170067223622691702373623451304148040246503285384828971496485007521354939715184714209212751787419347419315815923009325938085248344463259396844986936576000553832687379243117466964690070705811456385822973103624154640549547812041050944076390102053656422747738260688519895326073099483653527250739157853704111540361928439080061251496310959196415654975401286961724084170636732281103683352408906844129648669970359409298662549214413802240740048374425810456909704522699263427214558209143376900576349745742302004003461613998767153564800429911069962254869649377262511826300448678728995710724661135455459808963776537942252866133080269045134845007203960563325988264132901619786995534077869659418270694733139320271387560583250732249735475651813711393601152801807738270311139724451160584703858316894244335551420375410552740112523860633052298412063641535988531337017423617565033242032475386735893685640425524390905499210995940239657684260646226587316181936320202230739506584272688345981151714984895759134996677890970289802303244184572546862866820539834157838498394649889783091647101405783376914878541839692836501964501876513978404477666235849399160568297782314675197920685543816602704345192221044954515903151298676797026570921795260751093353361668029231247557035523766876630266001011499731137517122148110778233584729475637819771796257669993921462711151901091491221752498317567345981685082045818666212697796940781091359487361624134222704376195129081599182690975972445420431553020424323103537408843457574512584905351248030071699475824024944027537656890134523583269039969664414815373960668980325094004283964011030567924241250665157314696213882430446178700404544979052636580614050523022398998658627063129673597311550801141035224859571310084783419769150254068978013914557743672477358035119703126992063653154442826302720045822790742017933679103986014654431519932881540532961521689243323134302152361162638314411215981994978093523818472782984137754754914575203904479331815440275625123130598223399399994878608382271687870863514827103838564839183556680335082076199556144954611156169474608359116342368687352583676973054303658637805146576234621419938509880328580883578746818206437852966055216532146728459973901306480609175952879403875185959620918416979208921118417175121895167994953355829419105726648825196594556585035873424180295291746191806241561926597122016796304685262121995469946113647057074079710924854193409930379157850277800232132341375805980025552188719268324747172337341815060089166986580719221103726612369901308172974900814876901030332646610320561938392955386556032722994188418604728396586033124613989363338355619325654273074322059231642785351027855114408410299753775362921374143069003984827956765932922874824587045013980018152661154190294953802618550291630182776542834347769580828606474006416505387657276456261774584386139096658635703333578202112417096893144823065086824783727341854841692540534398032727536358244138601385180748094252538365954030493992324951641700183037681285328078551324410091249527006099552646208996501363843136178150727832054770854250660304894965525174207263107731701451175967190410776455049559046737689839419372712314885158892253734872691794823735600519875093788287810527035558084150219815356779312730875791990263192118051223636809816327473330808072863102218224600160514297722414016731033829923667380925775772506644606322980130000378175125467842169855010382057401455402453994218721020903586997564927996918591922550351168296131924864613529906794729822592428933576003132689018778822427624148040403027528254888731549503564891295471880793034101457845833148426588067458364021738267032172117677925543484113319609439663264388761881475685028927672871146009655258406381350427544438204732684112996033775016947302833744715901583966934622570864368016563747187408932610532836687079317234599033550926770809963130692673515228148745477833375661288271508126071932625354593224564535256595879691914597245213557295487216062364426687429207080077499816012961731417162316635058788783254866037180102577098043560471219528578824212556969025735596490426304362494206758122234445398617162373038310655308772256234226209126595574682057293485227726622059077033538010308385347603200119775781043239332357934056829557586151713199157429200641186609605577724649846157583004804617338678184391769062698111140909864772781598989043346089965075167498700721467610763842985947810195193523810824620937145467629515742615971238565993831976431679642709893110368972342466254133113536934552863497769381991850804035941399067650096264436770076830078160118463830833575934619313805095758902459832886731802791539120940258922952528144634464506862239694841272954972211465329528815221859263537346243245833077196695680404270275330790081364882890500646019858755799455239681823450232638925380915550880932970368639713491117720650145149330442165186080618229954995104572173464825732691379716720216065951735143428986004761247671012111267045948463793938546289323266189946793301222055629140734704882011910396797183233904413911815291368196018253192269781749609447953761861548478785178767628268704109816476127765476037086838114969013832501215266889855518719211009385741903128341625266556971014215744722983269667900766599803013312718590662585167325879352345698174545743126928530804400284185072016865003891596113466377047407353496578658521711883288532333272543538325459812537211149352214155790241551877404238681596066435756093479156920249348603591390640009566847675801402670675830623284232133316174808279215426754353792805060395534720773090891648191749711859102810964726306709734048048858142339651022071126266108667993534917949547414333797604915440923744171559800862378423871564414922020693659085194047905146906561103560210528003142374603586798700714539410915902724037950456183990679495871368904049648907232426349428529344032324202684875083899468230318394258846191034540309848868389676870847182205459815887206200204072179403283548598486321724271691330317400841244567662851026965323639275344347150346588477347597983734497353560192549622948466777129631812022935919620980188014101362969599024264493800114251401748825507675875802164609032109849224239105032595781672540933456232737230940527005021582764897509809106182355336994203315630313764846885059694229765781579594218728798627864999221749120443904618471720301752140215687183717169858052053217128450539073317444924444526067498060253553532107707370487349064859444629201216639452064669924179657811425789773505687063030998991217423551602097833324305450823642838837928037211860068757909556938553794343327778628777615957862272556327825107071959456854237100610992555420933737951691921348264335065010140492205198301975310099807914164290288464309221075278988896734687998654312919365895593130366862558773290072961926399395263883204362306143028777842410253073657298697234761152809814119287072028710450037515659209934398741835322201502940933477631354890945119745744269371407727047501657577036097249005803848711107142771009306611003143014343939317248097648878676307909176189563000242465635113477558558350936219542841720327134050290014811615319058626025259659116844257210522136525802702941928146636550345105491729467507257162977791655031793903908696450854312414178357801756030130319632963544036316997741000237774478124056518209001513042208660208468151081978321095565644749858252992707384031037441638163243187019111016572404519514075401273968110018328990226279419428175941912293943660626161212324581389727664955788788515519748703821724875565515924918859385206676509127340218356025654236953747623122873378529655381229473584678000898488977448397898111414747109555985710025792504800611146705065280127120988990987287542670116659694779682387552425983774885667803428616720249963457912555816545354440224631102892948306222715511310638126489331719850364066863557617171465674267829126622431718659790478750492554000099651269145931007717234834559640584195944765799623365789104570100623775185894169619354146964627271624497930407307544234550351758265038229758458391055323505392000833467581942038522365837723074195103641027792978584871215612676764226780932196943625635089674038556398114482616448228329240949599059190068952417151884697220368888522704458095110688145653293542295567280108253799412114168993472440966470801394253826097072971293809494037933067296969188116783617325749865710442562819723757546570260975780393461295972082905249439468479935063385861898879513804866190096969312646025375888397958595639282615202898599932787277382477893743743811081664018008868785989175854079672411975779896629221251589398866317016898432153256415205444024493330593232325564789946129926034010400868324182779901594634519452425756172975723435608698225988495982725507960852549048354332321888409414436375986384809826196483818787373205046165431045158409482626744262714754295223748104187777012145361401879927293966123364736176408642442684563933800701405185880531133239287015165661188967437449265673185501807683448907951960714491273773077009245063854799342451777931964419666600987976405060427342340391760491533483566176921826790878760911867887445860261263838756578038494611949812114970775692988122378391403308744726663482493091152117358592498885366170111352499312578696803288240663953546089084995572798471247394686888278562740947370662971113253687498462045259903554587837226394900729000733971024028750191279687970485395669023799258494205855685961961200533378918951264858070526125435962973679251009450135383671404891548903865688748839291898714999218951619327012530159240588983049257330587382658083110512766407078269009882436853306343951369720353640168283205694778338859785742018782452487490151301519994541446456341479158800107697268145137037751692851856119476869263387820765352110129751518498480386731890586876355008504655818542143129649449131675068771334429816537257173782574679256481733188516660923319973286799594978322283023873621393206810324881702743657554418334766888666918955669662377455782917624205784024782498115026967641389180349726603696142056878363648327229093600495400632901299133768565231339790985711725128295027066687518342397924314443160077320284648697436248222517645757393957904413805197507495356179662768389683715366440983567721478627635873429769303614384326260130823522534585593857211414110180786193601507720441912805299673981410377731007234934336523682922216331424670361193526742973377971746386334034036205636014851327489779524016857363542926150758263763820034581244353112571072019395433627898031837520605623880375827682136071629284954409512746040964001158067882650077426257546372207642151907559482047266723670294607443556741021400524899760713324492659378961333422297627557795427508782175883419132084703469096235246772395765685074186447499672786895222871006708997337878452073608874189443942183227897817843363236026129430915299356135606501819698402017337706595257260348170466090902196590152151410931041212615462264192440179806062789424422241737043098419368394325474377095293782942704949337302287589119544158659293504914443815399982374707603624976483423420547539115562989932983721458020062851158304582031900933625017050702317595589185026329944571941705928107339139773830221661565950233442276337564949486536691226427148040718068908507668011143144973037335058000965559466650809596798638483432628912711769224789734224310835230445822469727115344282115867875296907569252591897503472687085987836311967583626408636728674515302880064795242225007239358765114554378865122119677738953303842501305738659323187082063909421844847485392003961627145865964700171669958716085378760573904299123793252478730926461267922146454906252500292819756110973041417953664705602345292855045810008979438359591728195795412750107649558544083145761141674310535376886923065103465697552100162166394762468424273994649759923540491168390072057846723168917796855360305371407514518958241291923181776846121200409951518059178915752223658414661539162786691047052185912434718460948527064808437745167564294727673292960455947162740803333508250784970910210698558422894887989188063811232697174768199285410283481598340450749564183206927442815853733089051387557282659780407127003636787318086606524403398801914175693307070701092595579658875902304304840578616082202498376507173630207974483400344962545189599476534241892106437250851323175543441210181914790245333918865770850980860053304771499735529030540656855155529667173134731914018853722751074174963290611390218786192740063276427445450219572033634656744328327636350543950933365862641539466979054890163715970319481929335405896343529178405338859053250819686690042784916042122485073504118767883687156662384159425008645722169123052676538097226050130717420017836514798621272425374251851391301393693895353919748061229439998953210909296356506612418197419415834724907232667967663140008467900577403894432442885570834891629074628649679907168955302248573843596239999301193720248126992324698764338510617653287830416204788153170996639819715936664411442492660911572677877504618893587390403912650331942121387655751898818018579582765357980552518635633432244515339658441846125646974194053852403841322162663094403184647607774864555990878172286654859122020911937110664217940381195861230372942452648928336583594135220369259696333990053723395156239306748418204332981742490835555463777376587411587348213996195865717125494795569409191177707020848374323293366027365569108396371458887288313752974031820233685161525392774939045028001454688293464678058929377830331668260724836002817052859742057948276635005455450953645733449029994693458565548312106446599908385554598079720040382841859301767458829613653850428725880653177967857126185253472436152557573472058790492256625752439052980063134868807481789901083301976377884280134926913690849387107589165576712575323969949458934031865109163104368716924877008848454753371889028720181916187145625274376752485933226530811461067318557259345636100109527156589707025768307799932174180762972152092717616483322098022015533401029096090099714713212248002143921570240916826446771047266849736939897298960537263093925501192874462355997241815975459636898312846853582619303937423155919246258896580319291171870113568490849321056175641120093039057659927845674528668711003490997750600359342865041109065933135559443314702873023408716915499417725789081698613909338989494536776793445953345085458243423389055361582808168294244163173752524386487167470096559936234746935944017656177850511897963861328453077113361483513845780885451154220833795477305835106204857646164368905901076057199752928044411252367976275825278826792151120338502492358770412653677636719347394988863571808382872349293833029132245060005386982255413383838089309916260771728850730306970051940613144697304178543068980532481825681284120800281912778403084110377136906454480903792593906837547394653557705828498784261855906430967933880369721553390636406772383445897397113170955722606258166656248938370677518899002999929368759088089630209405778153559131859806351196167684124416103140240889428994602136960312107591842405142060871509132799750946694152985683290364226252244723108656724853053984258273736922032721162755731690650381379896403086011798907575560320531083705355649833129222618683007698998259914786500152950603420645734637883849621151148240831381696446467503448847894878295481826129585267962851303860421694483136279227498289208909643588719205656482752428694138074681503387166191682412277556735309392041398034019168640633088230506217801160664946853877533815065673448284549218296063818015402514250699874111053162626903870918930912623023709666064499889587562256708466853933792475267067363926886619247561211031431655642825284075555468416606443459091332829990204347884993728917714019288865055976018214030576193776798026283134509050726515216052735576594887987207947104608247163563504093952730162016380029397122998878718818290377776036102322987479691519251911539483305186966620194608751461650684805259217673672781461577429480061141625255530469218754537343726445583755500519655869407201162475250374219027872247262173094764734012538255562408538174151862130053280586070083901478696949501163574228578756378661368290516842744517388371549494927926822792966429856831347229839861570555032881808252897039837123296309937648912157309358832773333333562454961535188835190878845968861017543802660071226926689897284886361740195459033832287431356379557214579111257143903908208466500051859588902074567993795736005062973576377535864608953252410717891396871964620706419741422755527361507035212653175021438160992937025890552843706431070001647429284901163013749867579651422593087090876426234098915400891974441228396880656865998251887465560966717076081256482530623340827399619290881562075050911515856166813512353615392642244479330399240518164184450210071098906682285987378195045107472313831280688671592028962727587356137275485301249573151055111852281170312037430815030713182170784896941281426406923996917694574682958545764609637341048158361381317587349558300138043863891448062772463305999083039069359988949052223472220887966661501528948755289286314848353259359071540095557609257961641037581441979206379143880367450534724464406022831798994124967878112324961876136035274889290786912200974268050358163061045144445562769141948171019083840826601381881962800961724403155338617954720719523797870033652353613364995912595658999899209924988786774265150680063437972621057281698552179170760182023949029464581589147463245361953420982644039093092905736380713554757816152343340694186857370897943466616863491526007518373425111717982414169167689627460171637284244642797186447722233957383798142676337706888200580617816472041803210487124243236044023985510271150838334437079850011301451049532628495493712541604614336054979431541544725489968817052555350594903635547607186209574078915167309170661870600771800273781927057183873472033989138843291657962288956883820702027492971154401930638158230635666186083847725646563370219005668537386598153579670622660843407546809902446945220771138146607183191580685440478546485618419898932664047589010214305678004037857126216026758031666524939525151146889472827277524089346126180895699816411560405106531388991893691091209327717644946188121421576695433252934725742484722974731200463377984998683913966511571927342821584698408490519552758580823424368670664527345478261240614786054291221032361524142480942663044562843171973907465919689940917765337702318305556266908334445256333661853176035231797994364181663370019583613773634373896715082721317498977602715297841156445931576733692906048109284642854053945421510223429830113541838350859054071715791268447475570455518332824578193271391234686393511152786174222004895123840752576663241375277954704144900241525493059445471711521338416848443936720299635978347317238814139153123996678124869512982846658924383551248395510487039008229213027146095808950043438668488728913160929779632262121695012252477585136527035215306602851577682240997319931430138864591599018614029104142268376817833864515074999892611290252767089618132961749628408881207111534620772977615363139240197319942127886967401739239523125151756445747773414055634543250694094553352327548746175488584718300352905415477701169277019699207181739502123391543069776639929557238182656487807665564031861336241343957994345343205992605800580275337020703327915093907134309260836284287855347732281641611719651168094322699108415872839178845182859863554086560854078352712106780572358746214465199152625758767756827074631607748270545061296312682225921674831808679795195242844670867992966324484007300500112242351156991069488576728600130190665785822201505503956073326010059190134749811035854861135793676066686334896231232678226916425727355019069640058141716337624443899584856236393813522630035736128734786911544229696221896636030755231757287939571147345889390146569456939885656178573856972457121402420108713952331464011636609675166398887166152623171931852605906915431468461897114599069858113261353500533519721787250340557094498443107711180912329077690869069937085971288969439491707767433821525117536907151585724323245559042748960564985625874384780784035771911151540343611618147373169983679230988357193305409560554929443323239546457853496797535988366719265053671999552688622686876546402450970982759042423293530569529386219068258519685040649974480222750665804766773012932182425202897024496660301694908295690580966843645164899405363279742152882295416966561230129982910606585047369240611900439648398466544985659082461239324218829507890226198697456521079293618129414966518060975860788020800133604334133775083544059058124414051911781968688748648195946782238907216249149763130329982028145288873836812555977995239200990389338260783448787383504137527059311956929462731349410642451802392448624374419130325296472851424486576398601801382433442682337364977495004562084983536487669053284954820692709948488763632216382509453151857706497933147518646084666667296831026711996705895480849451548607840849412664966340830365326561790914594860346825942937819137426609192523647097036284476474392496706807874055914290400928711423668612085709150119384014410529418879706349774192718198205989448400353260894549019927768911520768946140716970309061845454697357557737543258831738248980971672464218584653613539856712843996821216071173199636505864664075755211664810468978124402879129460731435543222609223492973686450916068598109286947865106439860130611812114602077461393934108109530457412765656675841786377774959679700721735849056878152323603798988305134768388350971236458284009605374010521131458464528931490538651707979679818735113260294686639348442710743991021298468676955715323074009262126918252240753803796533900910750478977002257971160421068915305413409592085912304625013462398249092114958917161549571427230057190984524991696855659746336307164251415004767052663266403718379310122650788630221558771439444785365925681841200412344116883501484568632378310332650830372412206247628802767062164927647154801063473814945977083225744796411281932096446049460313061446859671301242111663294451501023198319572521832901599418595353198936930063027037121341273608850426154746450933171354115032174428809859715579816290184782053596466154334463981657824108508573805047818875745520608618787043453865344095373605694276867825188029945398696637522110941590781962577761523234184527465180626850929336818452200737352695236059463087340613241589924862615623257228090568765135904026918260254693856145494684500124483842759423758043805874743203051476864972063369250006842637977780640385742380677903794568126911860609732788308734072842153791698591032160225163289803983405301414138739442999312079849829563660572239238959489289071422773721432669518168747625803088113728467925444998409973291897745289167056573433965571879195594116983957833508529598263711451762802540038177792833344205429349580200001832004234371222553694237086844585873295446517269300100889964263462039680882696019008246331085317128769140345502133454452768386116224820076782970222145891619202243128748238180465503842682551274500211435026114955363292441372738881933632261388864916706624731941183919105923941701580234269638042115120350771664101375180839387813568028741640978591494280034961512452635021816762893223993054343785374978218940725725452925456964216448509589921789975936141771548865328025433711747597971753594358981303243214590461373442766311072441145788189672088960033377835822145202883428312049022033259933012184150918034380792436048107252735770221563571535416529573431378549977157112714237445969758465454482476806668767524293215357907784038460034474770618035955511170416609979816836633951636409299275595411041267163029033617732650351096159096669319858541225233183529102773884760385335956813027189316587177277895642479563864729651543634813535156734028289272449542404594617513124862972532346894878213143758810841464355319502765635183171352048758776140311560301728039885658995359424732096015122250318122334993059096487064307261100884249340143905166042782999762662387075414364489920406402270167124266071878605093863967145786261080730492326566608491586058405520102614038649592764430456378911580146708728603300882231390341778581559979544647783172894968766615562707138782237022585229791866263530762027314223878282133848450612198049897195260171200414920809122297780296656466219250908612237450626818049112594471201931966145277432723818933201058902232160556119592687140060559712272118561182584023585151391780935270444882700797435585355517346296687023990422312591455625789574145572307679817918139422535625832199701290189345863335897347524238549247771135115266070079014388585171504130159537122430098670766177106600146420832668822886345667443633983362352976856739217347376457629028344713965512165152149170616353230297384650630817757473256609607625452710366501308345737439808802097960089278398932092730661620471038623309397974856384571976032257154898177653467292495922129430402027471045409504251465597172897352506534858356477038665661193004029364690672052084031581989029734812042988034927303355552015285416482497288789387364661782872721197769595021385726224545126977875513565656587232894216062017322569426925273066922531402302785031645852063572105710290943252912759726718060562242036699328170645953532708310851194322824267250484500043482863137190242036794947663691563752688939909213164280159509659068270270452808213309275465106801158889061684057817363586025874157605696150019855349241547241365900838645962838684634491827326584396866551574168836345271196892161148218045083668079738066970349077178712357752531596780662023126741427230992329439738836173630388643506003937292014778968691267233265755352558075056842903582276085524025160978413478636397538170808963585937487666148094553381502815955037951625151343085946865389933089106125272260566409718731897467746186575613814215301664493922318565619252964678766218460444856642132790376678370516690475981122553575017552499089364672540720601593719994968658778328382253025122177048534453958389694690835756212764163066291966419904038423656697428139640472557595482151895118125271270744973095038077298185461574685368438769792515396823987485615236699474662145233283694832254514058920919756956124886875457056554020863233884320671039514066677413081300399275414497750799287659239867944215861691257167009719820264718639225814785514337785247384661085777880435150195334568397907602747338843892732159330014770151752143268087330231579731046472217680269292970143622791062934271769997732265996239079952042657678914139320286501315674111002097062886323174561368197620105902029907485350980805254385038282558766291629470200888067388632437333882249352712732418310870731895740758973655891991985841161378698284734245211320813354997446331556411056480140050098196480576704281269363145667068416149926065844874787421820112000409672201545108915230268520001625012771090113014022949114712650348360969450038998626668045386612205136035248465941644406807089358338672860652649754388554984142720338021498344671581243404281083690672785425748269890063022765835364033977642272866171434506667389410567787861085047473244455544273420577864520155967273860370931287583072323581921200947725333702607769411312055113598188474790818802752422467922415656145153970215936136997995697218105091370105747360441814763067890645981534053663338835511318502875628073227780843740324158845105085098670345675075064624751871035950802950971730884710136362599099052561813178505111169423495709100335082700419085707754469235472759341942917501592210652120614357525498934046546289959490042395626429001191005218552160556777707676391851973183837644009409333708338291106062738004907477526164844788834770765505075165318635812163003593573146322516370780810914614712537881057409907445384942912199268299328615256934573027123310148702203311630956992340565607653406282483742941771715266732163007554546318040344492582060719388881471650526477440793136686852679884017809192456731230037475044919418684544561723098991800173243401132948480587586735518033184486468099187637907785115790490425242617595237628470221509818866935596549090377625556197691369020510000289816063255428161517577894937364666708940758061789233934193321784234692978932944778474946444894531972942617432115048251590469686647302238723458316888245166266112595185125222858104831821287461245948090912800505637609855093666759553025682239195128597489962024187011068824464947187334958363587846576928504654052294966128045843286953673990196031072382210982873831952975336014350348170594876127748968291493104466293133522967592976056543838802701942023140856927970774681238565273939894740449264473115230086087869263495376509670750762696567122809709932209009393641031443304217406593925407211137657340355600266763308359483312329903614088572078057354641840757823064836727427401827787725715801901152963639161326116484672640560687218071799888829295137797960652959121103963547677948360140987616115697753095416126486355077550901104258076494016474026234220838344619609075333783837752678226638299996713553409301769880700106141309638135199706449745139672244475681260938169868766700185414759258815914681283849438983647207132114160827680108511277340868874120151088018269593484904542946480525698321664609227396405830852500031730225688014891295942240818425259511140092904158702070519831651135630554155076639538092766711584102507623281404343434043059506596270558194328447187356703277268151329976293099422308888194239253116738381777815695827397174556017557904649755820457020335292527732118290788428151849135675868367946494256708097082608914064625855949445561493713104754719565396673413898609234363250789895300912064826886492641864826469673004401284997502155780893515141285574711224546861964897109957195453331577697737356274010125370635057401529171791404588981104525106402192007365327926183254818329144192993480326763811070086287959933623165281262975897996095083832342538450214206547333130472694972668500401343710790067044865315247949248538058167341338610436280610028786734296671273066871442259062200481604458948001631785003019959765313597719132833759662922635300218869956286663187872453892995684551642908342274045332431095056653258490439607442449090697488134186157243663053423877556917832502974289185149235427193409276466337032484612454201624436931752031840135751999147519090626946038006427445658538938415601792310282082337863535969148340052102832279460706535716350751155027918774925824478470594427625574319569778785297119788822513927761667634181225931252553389595123183040160711582269278172268029011660415752320785857426988180787144724021780850813832424738321037340199479531663825292829737089410320016318709980489857852904419185460890801779837530766398807766163473803742757818216618817705918531588403934482430665792120175663132337893229206522397133123388012620626809686118588728132395026615238139139146103766142440556677316040200956678792601726871789538183048326928996271645581047811025269784290364061351127507068994927736612642969021088862469863114445077313947213974868729432343788393510539561914086513658514789313239051818271634251718270234157692871941968205269489715197866740803856458788061330636671152867979585731607532051555221473318721515657394564651354937665927830325106080676035714771256607626547941630943594237768168159842597754972550921025794481381175121825577806095751634667589541004508116709339593606519997110334194207202051691630229500382477143441818120323819541065979900163904500604090269402881122877922459516295745825101923962806119329962281719265845811641931186196306102812524362791801339232301866183066097058191039577692046649942515627645151239903454229482532551026731342843200989819640971811867960801452668070548258515944008046570650299208058442044807093678644217204987983857008943473400567839949001719398128409815835458215366949426864611105849980444646666864125563941088205767027936564237641174248718991673067090596026484568731473103132976333310033002316934686423313172051413636088933074191250805880078997307739743957796712551596039535006802327126008162737316823605106136263176961042762801009145964777502616376821238665108556247078863135366751246853070187077867647419488627214090211178749983845645643662992342183704909652790973462183593476876841143573112958163611251647143484390405951977049524712825628670254598646208272169205555203538390133504679545086031926251223207758871792282320199626668468949851116674413669414529656104050466737284049774118162855676157119076899781049723035555537215807988348051679915432755394353529244011570624251204592344970500951277287053934729488799448676824379780860161386141560839372689575576327412948558832755079209171646684866392221430019053640791836507579478909857103751882174045766443433524724953919258157504639531110509567991201920774392278391189487029709431222073558925337427375884700073485337669753815655444773311213446101432681647815339998293634249853532121484384415444670126486655161145977009144223748637459426184356640482481050469140226366688816097546315429269339329432058640960235211257291138916899538571116159371921790070524469582996618103062394097098554266001889621450861499532537813765643433124008705365649171674207311035264768945096658008023251128360868196970514842001884559043655081962858419173041582340854688601680860372397434097171908773201860573709600994916695968620993152729902103730747709965926057916820165205449767105801638850184456206053562441274236875575944711287218569183735208207619677670632953829603334242265642689882635008930711434008253025131481636437335870235339592041198151483069230600665839010283619446915843623761544935070848314771694498541961889499377998782651905392694702710484674967373162381259817185746529287971195930911658291599867376443156466333370170785551306115676157129791515486617802551257811928323446838573851664058723071104148967523551280010679220831046128415757151222288271650644549425154621142234765702672517306436583201252161550581054387847227934001917921683901638667464887010772318642167720137915059555436177273499494707093175540682383948051322337106355941051176006731791310392079288616805107593166007891410142468935796049126428350053251583367120246482768272760785109632888201701344134660111451666543889988182435176638862978616817302611252271492167533884770898688246065164810115154734639931995469510278129057096898481189575624132513129211117907103334505286219684124946074340056302675498532070357352769332692051292039309934693319133320349635105209605418445422995675434286646543933145922962815594490885845814723303556367254676638741949107191875775734148162877238629133776217095982170758829938481491023160316798027632192545977032636294215698503985066893933227576940292576904417580465552280072221464396828498420335384698815313878718290776126431934904453917793154674580277266464766612151763590217007820628879543630186222513983313546831711539249414094635842675415701298989154914679096917071221643143165581854625375364325096012652311096553763879787656590222082321060634639002693357158100710965808089374015859005291850791219111983952403510410274626664048124441953335681214989957940160796502087651681283785371656742546222592495425809666093949597958974380661900621026904623671248831937067311957425098250089304092277580844306590989467006419917970538788259278336105285829495816970250811055038674996038304043564220394463993610859680133720057061765070016788797353995629342460451931063837383548815656175123694486620635220575718943040275428847867838970645822230257333720504783881377660732033857615570861086369408488795812366475696167468977544733539996644236609141688232121338155322530716590251491482262457154087545177187950711085272399664263004964803103479027344319897413125545139636758462070140684700780732277906807244527108272317321936933379773453047728733143590565892697117828046412770143177297792282307829292650380447293626767300613203606478390610726915545571023442408654383184586318049299575306366723629392922970062798851248291783269065104751830006653958396774785730651031263558917229944260939994171690091286844044551103543386431699637190022561072177186917167273122238148745431538468598034814518331981043035786603854569692365211608344782215327620879735041726728972362995173527830587757195307957585375142664836787995383808169616262945527599741054754451248454225187530083299571617657220657599799104952956497901176427272610334093809465719474866155071287999012269318516077183346614604286812304940379067635135487397253474543776862338457561898756595377846026127245991700929451746749566469742146100337055450460491288075035915832963579691980599813143763780452399371404682191481892818540514928014802228238518467361412230005401995461324671593446382843862336386389267066503746068138062864526920186060251923119770042017594673393457985580880053370090626944255034721661994863010498830332679463327749578420862141184504349081388814785768945228501253044832417669798605304327220230097920895651207825107054221322302169259703454572923670632982821614177893643877367927728587994486109274509635871427528501345332774626104649916071115021358667794158311847692582988823891158371158396164030616653185747551650689945259007890742094563899858996038766340155522691420533355116040698396121241263052938840419176055682105766781449809661179017090486455077134496018545209386708228593622369303883375891577034758604059449154364183798657411461956651412631161325209335005525585930194867839591365444398647771101559865703559117232727705892769886492868396814252066057442462442465446008328053306371754856506522550116969013340848892440818103084357004421490675209200337275992507826755639037832967433360066928299410412419160912376068879912161654285205249843144781389577372396710726630052612227738831278775644591289009599333725827135858400480933256102615662964622582588661479849524249873439300826991295141393405163465514240696108901935324765290668262728250427048611428870118882923566177891939807645940402738289431220721849883992755304933868384062981806110751255047610239603858467375105698341846320050227034486059472921846762320415451023637889775678669860344523391771009747375604034428805980947933043000313392133489310209798115829073399399043368279683507053713300081078169901193712748778048945528415324492707486010486833169261863972835833237988929218499780111126850950517778813321291629893423473849673477583173170393639534942640215252126933279226666891851393115022874475639656741943730536275387997961328735794267690610451964773176662061670626423157351597987793344336366137452194632084239601237270623053877862130437153719513871483173779362922026302323022670804838130182508689190977061803847016661184200629497056416899537274566224707554456523729535243090702656784228163092759269749418119101101439107567914922650720048222514035810473867482644202379404447075058905530222388877046307502605440526731824351290586976902280431849867991837524030507987161916603977492678774981881911826192986925206751509299064096962178528301977816668145971932262459721847263239527943886808098228586417611911568875700197651153580795990254222828409247556787990031696080663157798946491778876891897821381907402176515755759903373530784758555108360324709770034348449040946916617818503806025953298874457490025786591307030811729603881895042055977123667318555076193509840202790494120365555038944787881177853460598591272902017362500095401937448432732935245513715530076837638555102089133636653455598916910413821272438772511907987805959139024061224409839176887522526091840719412191684414634459880719085629468223397508969722364000455101422223381204294377058185083859963849371103150572153647974733575387867059951224607533030910637611247876711439145279068154268200002421925598867256173140233034484861777356666623088195204718847121122295953726728173368651475085007537514568137175869157664073147943381896880893867097249061607120884686068804805668306102065460698497930670395867378716823355823621188732844983077132723424069065265403400707665678795802975299215611831826050432934478228450763389259355203998590903275457072138495851272308297008302685735331908383562275846476410442639953144836752801904062962530623733077688491728893931508280356755873860986898025005440727868553905401314757655127262879343931592875620696740928312143899232244725926960063451064052414204706422151659428070321005476935726020769729567921727178934636687518571427134636608666513080321439030196753564791255860902735045853561066775458454136980630156967245627803824865912521944074190181287217211658665550477169824578243374118050521488581658686268579167796886693315221445731611596405810964950439336955114121078164961513129343135778563591885696411824987442802226042640495750300480516503795002319094305118087109754487756671828974161929098902374996251206928307144488094795827252748423607876137602020577484639813712767436762735177236314014123373254518314958775091990652948589510183970514844091557666168705237074008922529955527887554948393827958571107292436800423147003287867536834787306728956468064335481828956696237384452642526535842807577515826728933325203807589840721160713360473049653683057514845824349905675226530736399863433041949202643088755594692762835158943724559530787763948479146338113248089875280025416170300826097726473287469773613000622852635163710632496088361407445637535356917845983802410933044351767790121099458699540933968524651373838902678681360118092863690841727982042738790570975207392093067280142219801240731322306594956493156758211920931580415231800750060972543982317287037912308815225171780471798935980022973404575750411980874081800898068511429387193540921444092177004738568989850076326818702855406705069806645375288993620470044374334154461902633988849855529808323471082210171682747466265168419667424593270650231349823803019976554079268753016476320946394006294208178872557749108600124085157728611002446639245693399990546995720704052532989031786654934606477607078951591519402141714592648514461538759548444961269645446862592844417878845657234790492385716663632729058711849056567105725986972397490563007841226596353947585714658255158619226029777561020149162131507368214156809464428210151694092584480967490937528185252121929561752680367466870264865928937346569776270552512405740846570777479583893639327512284157587228533678015015232808338365838570107209988494188220530188894804166131286408564536686105368160802040719829481399896936445345919280049270042885110038573426997876470851873697937092585474951820385279008091370119265256702366319102286810042822068940113644283148514662676641475707738667434407626548561361381630281914336037441860826047786772064874453471334032444306187314404711398917537915033075209499878989088323265319503683460856545268568790486395537049876772619556819550174377363641164144096078566130477199676515381207425064028801902113570963259200884544680382348965646692057534376679622018151094349432028914384970652991361809308113114082001482679196797158635858783799575437960838927138094406989480214155819476063576339408972791157553537510543435346521308070367334050633394011173074638503463477651406432682773571482003716945949477329933289290235513096800160027104902593862832079120153614565407796773496883357676217613518925452119045741003711587048697090751702896384285617802518946389493982742368684312241977108260974437817615900260825755103613607634695894060218905383807829547943698948895131423792671380939627571605478397021032886738069298047432205785768395810486617940697156897029565615335418478767828201981349503842412095627387335282402720754947377559721758769544503193679439291164247349440436115062392273110580863206818422659052005065651684478266850325031984512832682133285331746273631491749819236548215708460591887608920102684732214476466408482832814381485744886366340841493014927106606632630272859468406631403091225913231324120868245161850501165402681775281942164441640535742297366445532312190646009710260633922899538559076082038339769403817142852052380409695953982583605065449766862941313776462059020497277805755930503988138741021403613238926170416557445212214471103244375848957607793289426284874162739386906155585988133652470526788187126331547619644590481899434547022067408780647158373884827258845384130357975096607662107025152030275445021568890568986805744495677518691751894251225214023271107611632359379620403336891018054478342549998968215089037842706556132689073739757081537742760496054517160654110944403889019291205723315281190320333840542095924616544727309313968456242819204831004931184584349036322894008378677655515200244186726876893419910760242006579555949415737773421509251875278760976483665333571269625257473316684164050900154174585488045712351106984627961509111629554355114930700071227630676863327261333132978747354466923566363288677883371357053924523780576802052901019043350849257674743366404168246024657539903120800963814602328856854215727940867101537544807033204727835835829711631704346733877114596172539896499801703029658658652947170117044703116735560823793524463186172794533543560849993010840848742981512489203961409356525290436157105796003715130335813369138116418564847052452265151806542702684022287408559843969642061692051348073251484005025568898983387418755159012723077041974227477307623206510283841536246356006391367751288880533040363616250934282036841636274556214159556089936694750408709207280770190972768563584402015374070310008437047020882842790172625331233328796747843884307433864687964166702731217692135554468439380495089379003251196843400898447716787658315897135868320756402812948940332059737216911419132638141417351332474248632128617174418979998046003352853161059894555862335236655678866299544953860208639043759173584167123713544240975840017913670586216827942834830804161036973942881007511623330971716407068581192842013304285352288651676247219807570282075083652890113513731598717972006566128159164350802224723336650351537811552367003021737519649827086168532689140250788056607499226294244095635671697982196568996654851545869344907653685096800711354686217524801551119059398318678867199498686829798154875247868104897612690225657202828647477647700299870056477337899099356616527914424351409956597726705505029723249210719796057084695127696867283350502805322615869949423887613507718584002996178177319780830281393673281381942309436280155252551557472617908005783122552899514762004230164752758137049662911441233805452394959586100526415912140197978193720409759852213060246322862413851758834044340884625041841013963828046019044880419766968275815508749459883046872271187936867576655022607260665513423879759526215686979909382814852768579224831279225171046689422706957445819053702857219281617449256295259466464034176775004091021768845958172556361336720349592713184457618161857366932427395765589336835807445619382982778966633628856299010598925824441865590789815847561828010073352916551943637328754378882924159557930767108671290037806792439118210107400653294880346893289099668792773339999015420279501343387260607128799513860930449395942971312123031261570829180919711272513081769915939984894491239863739800681968505005239564710295320204596096573119380660125294490118873140535259144118381364278799986850551813085712726051846790374298333469452307919214433774008737386863306798125888493664982969111374975330622934044484767718232009301257356393781200014459883717470620630756986948190573391961068559318208084014925082554247347076534140331171400832069344777718577321292272070957830602681911493654442410318901562785043282792617990217245375578204168353761482945824969490156436138582326003076171364623533850268432669008382996614358805113050838978142546400616175984324636302007682254745033541624992551346944516135086968064759760911131872042837648325646403556783817072688926119651007815168741045170599937082202287843041758465387910482121752529458890130443846637118393356820627602142278983091816566418163620604077788194715939674980099498842544884895419932319431772189177495224489212538433666419214643524990699828718243680338880056498246838822214221220240183090130164003952546943115512736829813872184775527346018139779580072962268740600596350958111710904932547707919407330199537548588860789420943910123253678393124881927168572612019022074412412248932914592245466568905625953797208472849639912743174396074467353748641230993725602547217807383793296872799967454672681373309347589421563830184752307321074326781001768342300859903812093335469133639306397681117955149221569283041454318367924041525180554586177137832402436546280648324336375537540442602535569661195601631383769066184830003092450986355316956592508667421643844328901485851329535085587177070907251039044407489106760831790375223356575221033700032167875309160248182930715772087791021576402204310227064400154371042373482769548287418837776356257305622856987510077999298884984872738986754178633202878488581798460390131883744481827177148143723578398732958346937598184813772216869105519659755339588091644755163910998759113014261859848702038312273042400457129319477925848811171023074000918649997335811904922031354234969655934598515409150347160758168296581076756279061781909242095904599070409861526982890672001742056322101828627358633073641348016072965534169359125393148909603922504386183262087504358339853818834338744739142736136827327505026690157155291363533464969025305383887896435520342799717582711327290092807381555705180365584204334589519225870284951718743393809759446934920292772783424562888510868599343601882348696011957249861037768080262319093474163421741155565747133777634246927738199644848998033057930470499652758677276654001020983118339781445053086370681726343336750304265267816544730631894921694121137734087502821044843789923517726306975092048286690530091035511818748986770309983532967949682120694890019918036617948386715763900775936677768789640253870630438857079684459577914737820294949627248914099863615813081131156116461001074726356828975926796983815207968786082333975811134199105341534179116544595471887921990319551792232666212911547601769497094762661169103174535559296022414046208843511269764783080978270260211807871332307069689979199015192931742396187808567603747816920303045123559778084450224054098148672538899357078288986922812296545238731730585804075246013138855394541442398083798537444189371373513925314732007782104935449141473777588551749483543908124622490653481120916814539584436780910702939021470090439045935268570585884250379692933976592494080583774977984277003893984667613627893116597585307480764110395039311826119336624603250280678989811584185752086030690498615310640013822631581975750193590812672602160970948082979543103148486884095657187357743967369092962441483199484822615100107023915814984546888376825546972542751341233251570270535898237322379127503824717943827381902593492999853791713493882218663611789327927475825918444293631728810063761892752487486971203689098452260908212592865133881551606475656357008123940246768124303963556616628490322513633098639969120214898548020951342348305250310157025031457884091280789171688169569301394941758076541809953796451794388958686751559920660867783988190824763838482500204185312059319440058060339700553628481371271285726413362394366125023528928511518040236369644685358462124470629169862894087561140391966666602265389504578284135304244964435949122342382132748783263749956169446575516567999665921233258931381889233909129857386610106504665682717100217032783445643734727505842545552116947230564779133766286994117615397659802994638046578140426521280092489591819680234623592252446065662980846491997528825763185665273756034072044199996895071953486495859305056275126614259404827673800804301880418546081277388612695920555382050277837594665817088385393798071359341119737508667002987627705814073030909651089751593368368899812818579523277144254037349543406797725245321822069790495812147467233701801368556962964172475861746419078586232457626622925966140940890542417809776094461147823629704856370447775167334001789458533288789339662652694878755023619612069353684712884949000106619955595607742070431691001725064441477138618185567477420881273509777907748178178167158580615430348743410318048225643451888047197976717979377072888355058142411551045082223797788244254680745557130992324043389399796857035552569260740586174850460032505255783690617232186199800528989665872526763818855025685234504485833718555710334086738096127256093408365616486623422305387761052092180297984327332348514403684211403025212259248372165220520524079693443373092647481902858456924046475763267706005996908760539188114332274503668964323556503540424742079994567870745189264061192954454703432415887049808350038446403900581684788911396709234595128929652757922244164296621155091554944337557320344118320972417570183937380946025742773202594774612514262677847225054003375405351365159396120146749287040163340696062263365882227097920763712829672814961475908095412209278579575682158953712904154035986734348656653953927381502672405972539704688747512047989939988264190882706202662548745524816449792633230784322053938215592803332331098679896060385508806950143616762594072075521159566373180115421209333381634653187686858003169884316856935085670748680189545077998332376012908840866135749326035463142666947414879588195893032963252917309149510925428243766157686622503003149748312794166938956136571288984928716344901974382896978278151191663112101209858201213666851725091200127844526308469303699149045283431441171738114153295645322426279708036172626123290772078489501093687677093022811926576730855417773615036562847826158042300582313307661958449367652448803016782735638962937200035931023609571716552357011609540848887426305970515518499081767572665509032682936911845138607793841591705610004718863369589397471730665557225643047609432548350568688909942719078437209316158754385057497735241471643090500931005077460281388116297369607765242782168580630143833663730187482016669433208940603169710726740872355036618630320108716791229524452898946729963293874132835265459430759365230254638232946992101149204944700741009185849049815825786092434745379586990149024575669131703673698587369970191022060193418869029007154048352764491593123102090063990666785168020688528712110359089899272194715666895529064449360397037403946753976834969345251227205574854245327697405535069744606793643789686910240404231991004592555487292315781709991213051510545510274859413040436304267788295833936522591490650835152112008832617163109306857161598101258875909251324269877311056696472913896569872787175338560164914852668931724716340147521404410358181758669307125896863981342400530411304452657956521738624105594907110303387025591571792110734348634931801406747286040119064951365129615881901725499014044608903220201936825478872606236380834272734268441349373210828790464497055897707262146421722002067628726169316076588377456157920940073321668061838566811655409093978421002466474064101227552655523968947547637346511292264344284197939392257765508255692195333069385113586465435038666380395552531835919594619923047093001255813432331610467038159085088108843139414765190312400628488019871464510799765842676042125318479936436057357875270215145022251461795971161822249206016149853394867107554696165127069278368595520798417161208940280720744810237924423957326849196656710141572697350809378641980710029170412180295441822453220059551546506967266730634535368231581013681715624824758534045442067618491383005059715417957477620681287580648117535243681599825512275870551944663388083706465113088545356863540810444233645073560157932830389668836059747971963407323848506011918945064246460230789526709556461399605353227302902813445004022101165794426354045280655325166728797780555183327935362258657411012577160722254690215259852831580198004476299748458715180837509023789575340888874544053324229010425859126649373942563677082025297308943122007005995866801836020480231499676581973000115592301148811309906402393456440152554634410401170112623775902841443139576343578455969180455036489592388379850183628891104028495413351426958090989755340561954831804888282386045304224346158650668778888347388471366367865907432504500762293170165183064651775993066758963505253887904686483900778006147944642611953228023752539415453119921130815974288984227708586187480734232354304258148671320100141952533217375268217267090978653587322269067094902847873960807422055713629865875280888522707488055396594646513996584217923548094148842922175834632789691724517681380524632366245373876418282441468356058890139009074147337513647206439124619429271744352256235995352887555062579992273074461085255566256238795040148785739893142036140216494752455940534893420120916108023611969841542557792228701991519186491728002243689719289483201307303122403298732936948146879491800876954431973246760300634496307376054825147944924491074017471941905552220841809750521693726480589354780733929402932772126794477371558799562743371784895369994766530769344762812712969656716996516159213614649217177012796612428044830195068925082201026062109192601562868048543413323914397288652923902842952975574144657095909212990381583732031374330734358855957977518425114699771951259023746429888919097130928406098047587176756213815590251757589273089397466378488173023637419127766152020002698770482428482778451650349610447054880679209430525860569878809372875587675961966863441924396301237827225036906699354346047637988582822735450137998659736093686704999662394844431556418502028116128118094562731787400730042248252167607743524072599935901747274729850543560689496279485911609144966973372869494540935180220965916680614096006306247614224240675068705371517445050746186128264054373847235454759471330257161917917110000385294387759778530964863358727395718405434218041473052833074262790562810603422545196076462841478423713703505895593947093841467789868068929996212893148055303750677075454648627178935567506625384352960353246318474344204281389708986991695266900585664635395638401749293493445626296461339020070272959501408360266406337581324331416327738560965427092414715077599967080482190441720049819662306290351954820566787294451637199102512589505940564824564426465013383000734076503226040462907356226298939910828533362153442024538832651075617016074367052206718910492580835696426743556264715690081102982737104321916464455553143957442017048757502669469915804243280665300802008912930263403071889371858646618134710122748589829995415987059761436489322921580271190309398179602745732564624800847669727559038531544561069159256969749601220062998557735860912704508875918420544539419414606959201420700007365449704514810232046958995075604295049005462347910100242052232285496001485482031828057569229277933225256548889195080370225386360194481122455722550378265747680896686619642080573941777445054977207550393108774516322881816846594693382640022054486561922380785671854003066180588673365687999519600458000490487465710538777653716848413357668177765032403779816309506524754055131454207628327359718795881811675869432789683500320335884801754940123710892718073568895968259195980247728199634794251981601544520263198628467643980717464788507390389874969783713622616918503146290169679040958719015188401037054223809182213183284536100888636256602921956444696219639157872601061829747091136599066877750105323119896566679783807977050361578625149506547538110725207170620200139529545480415398579580878815460757175724331673085780344957384152257979667408164332512052410988492935007297996604165797960775183826943693882222585598343445818144806392041253594602513196976394503953390450965167452772350893466203303735821387253572249189428091433394445802302712148288531489967070678434938373062259491410347611158748245523075423413089699506278777188938714118457744558710594647990246928196017518173637989178506658332780968805230628544820962151471895412367832343159548487294679329951591238495440417988362678633773643913803938926140980863584142385673294532825854865708908148376132681546018732520230539789847759672956895725356660907868117471078712209446727921743521172213284654885013945703446477147946555925169901563632994656277827633601173002148543318124609180821429340399130402499622350463789518964732592897375258038298273547484337036080557472226208661010279624357689676014972966799842808812004779474387156884165157731914199183728522147826262528632665211349382923574404847431915806296341789174011117430549365162529476760179608530952653040812908087668091638448552255311225528000808383544958063340828528502864483392399957575578791121375738747865085758521032833163698998801977474139647099171540447069117420593122766901852899557574014931813270908155347732883827435236598928894517769187677344907885059304108525986727538532292171142247273412576743891634529053814805306728270614929672118934589486524579634638427023648021122972328266362814018035833479635621705156701490008933860901636056486810265557321834814499786613857153893431723152134797266460003839462352357705719875887161681537166940197549542359533482593726514673923991650184300753706469919493050595517729694964318955602372163546752225689763409037094938386267209628486825889524224906665182758492436037718724746274795591071366370824899562103808795053017821877388258924276628978200836724354069401020461984050379427787572098269948281634492081973501333308271861263150491377996859035534598619264336587617474890892581667785380667697339751969931125648866015987390962353772821058561152095163401768463404644740385538614357850385123620286701363561133080518760550492537226530495613345483258215956590026524369913303570549903249354283852072469602527943899601609484852524894869479752567413723453631050399672390053397630858848327948682982412000671287069405454947161902143662120547324059272177073953340127478823683642137780564435111422199578396446024385778312562380744870193010561471775104399654255252245815530831458532510050637491070451689605476523060271854738294041555319315269415507941685016008148993878887050594339134023259793938434563725398266183975057706533441273638065755333754358127674507076116086962179423113292356011060639039153957307619989994545011707500136832344029829846531222591038785161830901688193510468603421075875288623948373478319712644723842377058443026423411312500555972347472826818652972872376064121866752537196636390322665784730295441237383641470162292200300886511522027976254263826286813886420637834397680789480825483096184509820056056724429477854234650281092372043684329778084719634708752060578789448960086995340962233439630911879295869052316478734735084131725752462928676091085951493313852648553344163936163963237965308681124243212564161768799786564524980804972052645175201723683021723957241306947825134243310126033292401065250736448338897407696990554696565166587744540938199896969527369572089917271333093477494296786894785232179490819443945547392325645291970514607807129280159266257535630934406522670588456634177851575265479130746906387407452405173204039316571861327743503062814564502420773570203028023631659715611816418836768340971636620720524487652019058465906947043534783761512033544558984686238640291620902513248389796998540515909383347033047691172790564083920023368017220068641357007225602792898866531214751671793437017439271328221251426089462672113992965200443448775584933238942051070197323376314927028553719539913316851356241156692934224974087495553314589211458010411859115507619915788064046898475527212550056100959744651424150793530333704368291542140099488581997089103851177697439745941942847057248616244491329312532206962453428748378224447943905535625753636540732334009942283896220654058296179486517113284660996425038512472912821050414371379820769130659015249973727859809038417672797851665229963751423120180164679873452246031818146437245903961923855094592177217642249631553791152255149762022035031549034815419838208919373796763245636825555847529642533316005534850787013280868559959228935571242813035725521761996742266988222054208454578972863565152096909057660197162220585656730882632142246779790611956840491083965440856241617840462590802996746748027972960592127928298786686180795141006879813009136353540587627372703123883468184287819410425690940097504194785712371920638804691901642215891726586057534936271884319035748538866804176814619865385814264198076392472127785102394924820579695662894617664422301077518744227575405034243021685163195557780164672814641194975295216536979072162147684965707200970090643512049445899910091523725528408369693664121570847637500868201302523084135904053522761020016432641294541952542747069473463074558771905641572832098854488523246272903647291222238890737485786230155971464112874495186177527363386128293711136509040126796868881396676800012200641959656059652282932146799911175271680720519433074756087952254103435843766704400157475343356671787680679643177882682696004745450478303698972760819444129596455971550746829899732009866981634597524436127005608436380437171299645141317107261749883748590151332059762115071816279823755336372816159659464757305423828561084744060879623170835576227842041787781920989691416077663594575416295954183539583782566505147677188007009959928758675344937681857113955524009610268913478361912312408522863207324978739366650756605015301890712333438003482272910666415149630493253799407770853988213155661361450466427424142301896763205903429612927361687820557238829090037314065193121269916866007799144370612778998791397130881356609407257670976007909246999882602473329720805977547749273448906647371977829792019761267427273976444527245939983330797544904333470051599581646268941791544710359790937868533714583420130167685710474001956460407797297340526330226905329658223291880176195531485864172927591275178624574384287706723928720269576071036971293215475821967832630513421766198534644578592833671622454995665842518733859700911934352380126014420156130126432191563905529710283049881375168709263941772334630177376785034057900094047682472279877527317078636847587224809200622164479489310536494588880663081712803380106687303318721095739012073781760960902908018005220594325164698474889162713353877740550493756833156561134643602404232504478496769694765108726679388308928482050463582584031406944040272100155192256582580872871355577824577010413039814283488232115765902159509872763399945591167751516000314780108765127774237809894591552053740117327072327816246607984552856172076673135650530307848228313833820276514265177466381785473468290416364710305129995029282489257674635717135049025905236031634520681857516752627165804107627313009440874327520188402728012938979800634279644992663447739100320449659578879628472913611187345839162212825235835290570657476010970664337839422518701751649076187231204626287783331297384777262544360047665940458625025209718703857664656055365986382160809740669321150365011773862387839084119932913275273506329625048289062682254528878936413137468946974721397315131839137526433229998000122978581349450415340657034004218755808526048808155936194532699753247653804302683749509643045350014207149547184372328267912314340348085586006344600815067267252657434078691725341514929117161736641073018704609715302860823855853070849148559057887125462649778037985349799048815652334416122043826658465031269992629125331363861443786650422918585023059719699965940091169713556096347239312753042209637165617280961299873288282086517909813785503251848467370846505183249942219949006182885189404601353600575009502174779971609905521284601419309960738604649236199772739086422627436793566481315090520012743674845714838604047520424580177810132740280764109737354658807210012040738417939138181630742934600314173566980997884847330147743537977352687965436822644806620845379379905392973565957933704912614689056270406827154151970259459561793374247367113408669662238346256448103789256104237446285080911086878687955068941072199942492966925416496940123931911126684611925790574373991217513826699295310230030463438805716261815237566102338627954919501905483926953653444476575213312689249847573825888742983729315938633283405198581780914866757965323674589098678188966744098169536366424770188885506329715473141678149289934492443929687492276751164477004963391041787440412190389881081786328584600593628438712545430942429679449827392605398292440091343662524669921548088333891257329391430456924470985364258991047828557006449276632502386812046835633947561439218510269209172288013899349999519651717203868715890748526486308751069905528887642073211819478616312669665566827418165547978986955892436487810968830139903310801212587480406088585245208247512412035495175277627835225626212667304739743940745137191714484756077323756565245859813365408304327723732568480471923682075302061823958103668632114108948432680138349821196255818408586020900069955883706210248598276367284976723447752796439972167705385860325449311921022599314638585001486418324535738846883515479241679090890789003988354000087064322218647115084438228629285499214192455387799757021199772596553861896981523004333665325329347525400069852297422927521119154051382922286567825072985882831724764908856569719376895162333144629205209816314253270139185301995798656407571463020612036023479884199065982899123363696812627653777811347204606278726576691640267478888491620898262889965627642021640824757583713314995267825894024456287965097145947406870354347913863085452752453094245900989519604110329616050494902067028541512604714859318161602547813997673312490512603410605278813238560351456795630782867398579838218960253532025418874674371215402777308094250590668229972032611764076626485031733757116763473745185429478313642346845825345126995542404566925089173811495844430642412708521707963298866784366628082641071181064036626673833723225079928600662569369304564824506930422090681024545639328744152481206319684272085850407891686273791210688880212435140290388639429665311010099460008971985320371610971120413899435669321578788191807687741411731053761889770365122472054928401992850932192926441418989417639786907949975343299460101983092820097665424202291994690004231174877762699933208743432900066388127457714490144759730711103092916325140034384295816598082422697517010821504620868582626016280815972141701470757379050305648768012521228231695155752032255960813371084654006332399603466976227587489028527044330337659596493750787222286960839121164658120013417107189951914950129213196933549577195619405709445299563632624714704147626678377896954180545740321364486693627436374542461188877520419915815460107956557161527845380329853458251891148472391136998078672725062527514931492580942642648503805128383074415789406980970925196904408145931762734105842024999509503754003594269469619446984683085455653192482314537484555490484715973342712413061445888805899764092504710220888245192200170787266174658006913074428558836109703818324248865966967956095794215268612566355668146102311459164158934156652833301966587102962613487204541671563320092183610339125660672114332392748535440350874122260116131562380382192830239718003466720442526302119352639278993561830297387760501230750632036834961568587408852964047793304487128442958569248289335221741021745593699889543996683084871756516761684694859277864057640853064159256307151242561392810902325821456297147865666285237733770656616568900007359849895551249407831569856192754182779525571397505497474648619532525594365405266872814703485980988056150624656059365004651099034148039762098215971075926526063633767341761073250344053372512501808352864972286989261114712630783619944877808391351705546097633011578747616752428852431100033152198947380566069061973178567509201791047755555561161660846577812890141507014124869287224412318739851667498992335799291523704113731003675139534195866771225852220572948274313584054183279209023494870101777793515779327267231855641265334213186406841992846389131206124818209111297544129420756982295072631321713756460027294963549505614669074425417685877483852360701348166385410941054776265336293299711814043026224687631807289231217711348296383534271107719538624594342834432548454331223824569496322904977649655409037625846636756507992998069141672234509279570391998062050274986613293175942182506218407452778280140764353909260582836760228709064512832854715441778825306111317884394293207262878972291797429878378735209765216573085408606916362044818415288198302392797482135565929313797504415339871381395734275323121156070186034805781021883484855646231264276975626682270143462195030071814685060882117186655548844033346689019959829206077195185675487706159927895957041897774991035462540904893011402934758984872720454628241137066716443694525636022210743600004125511062728100747843345807685535495017767113351867193016199390836904682167755437209373161343017050559523214083518528916418948678379055061899412472932913550352556827681635034969479327940483807947284263858506978153080278697008379392626806307345014646756892770377458560559318754367210825290945573106295420980189393814471434634089890113526070863559479010727862029104082785597629619241900020345686035950990089287266345843980569786009338701404991099493883153607924644651819256400739803641851246520779393498527921343038688282277223954318204510147567898820725816869361446759868430880321851914288907977400868753503503885329251847024782013104516933996151554735421559947789686711530589457775370884803952503050628204286822651387549584544637074635123777171490065169313506656931724111912008746833435640853915131039908733965455725114964379237871648046039391362061102234393628490306488429788585976736766568197696719738793663417628206109554241222002372848985042712781147665250308551430802759922876431037980411527617469943329342819488236713226065142800213726626795052337181432423480823925999316682240447550862592655985271919817874950953819362705747118686270416471894218749450760491301925892783213150698320249973407929358056678750891525671280027855165382585718421099920188465814452710664773464219369172124457219402775466975920765940238961155335165467562782643629587915582559055312084341487189572436802898680593907600137940742393224822716771839593727650203384450533760253867536796816348807133409005243422451957039594487585730715910883281969114939575756253090416724669794515771812210724972019091151212544648145347427555870887235336398384571662734538157400032505317235522780951384739313087188683191026922670186674746449761278823193014977373807480712243830862081273766484257578081921143530740300421583551102100109005172778055034915019127728077056000515564757024442648624809101503551058821328599614299004773285288142363520536925995521196108685366428687630829826202912624306652876841152303411592511918323853322725004702273901776768772151448259899306577299869624495745856614058031832802232153306488550564933426004590889484140886049485427550158172119455339529344519336260955600994254106356547731888634308187718596217861246627023234433613962522736647921273443765703624360438007670216303862048042646244388990054720600645685895989659264425371341974310781830050007096286906216654860161501969960921150907913701423267976171606826635608394276271094391609350908227998187853112132811686558997644829905318398524878341593274033965462985964725511655792996524125367424773939283546208349723392332034644104082987145278608402201169224752786296963973664688519668347202403528226074479003494092341106854237709379145004600395906244270322765276995946053847910015016153652527839149371130632486286723377258883549763332326562070006594910710625759116337552194441783314148533484466799297178438342197316217794242652496071955022671567129011017953957412853337376945675292836335045798122009679430531099828260869657482320465409190181965392681226426761389008365307324118216800729285762749539545620395447277164666556187894913020378566292524629473308953810867891534706322075656877819137293930898150815686351880054634285118838173401358039658969339064700999220031351768066612420980036511371638497982784046864848768897056839854267528736057120835124034593040507728376831296427314259214272961179891105256723036516382563048989331517825583036634833734053463512773324639335870942980937571995748366567066791285905064721963854196530705930098316782859645498067157405711224337801373927577736134918098687666951335253820683498350772129742355871268964264337661372285480468370482868601334302470963862076564304412289891549499769769501110336942046313125747697950777759952969266549606969815624949704746458008495087026272489402905230499925992847441395717805167354995784073618818416331314297914490103314848057281746368886865214167341253022332745231285702971301074372033446758337228441574504943951795117238000568122133386557920404328453259566083451503994946281042622546107591281374760348971932437584466785920060914620096035970550299979415726679008773987306420390393103850085290226120656015669114976630926112411989250157512723092959824865721856457226994636789839234913887589005810895215572115881050265961177641039183075368915004157462027085353746912462142792981500597672145517715828426238995368309607176167050296994117856376771529610738404378749791667234139588357557789191614684443496781080744250121004203827369012355420722445043080615405451181861564546083366714220775149518274050349994418487961325306378608667407834014652235290830350225926324770628032576633138957274587498045923610133933075063422442702484978649858218225957665205853020884226430025494814394132082433334826513316206954287850780396050821773769230190917350678199034815316122714933831768719629477568072214828588334855204998051045215059721363388472757923750548859236809037093155238492246673041801748619714828258217663302665785206802082516990920982306498126109395793380782177971199170900120910774177771363984907489309410271148788472416839771386490311244854364542268027157322443297889969499220571883635725457773508970541943125075072761886812243414789443418146050456894914371074647287864690141062095591602095644230912076740818121144517886596971579213963476461583726312794236656862489081631246147957921072288892729420048617276825711370729186326579263853803669857875242393632683665035414782092386705299288633421008892490050905681406718612720264954122205286204156013465741454608529064971826375343388666064735221477827842676626284456450154437949109024803826811694968187809520185348634575306072519922734008400637152781356763810656483618523074530894025208723030649279505456452303000963516282164252978459739703140050212649632741571753890285860278401538874916810522688141837401460513129314905990212523119999930083335358108104653102151365653597789501169780986450509106567339491544045959539189389272949108422717602013362355700643462171598156571010693002869899507858874057793201050094512496421068726128967210715856204557452286266506130177694179689577222227467663545271952019107039439898352824838185373255556231427715766051268690045167479205787052372703827234958525255808143933957573488001643115170580870942776087321230492131702504668447418096043597768774748202792999028726645636331476464527350903766211553413208742355434582800769082807258524925854943252911560761281098641386847768925114924695813707419802135498631839424016967133026659373976018827622647932948134201571825735773296712570746043635882329619679927968423740076963047476929377626515455696090090860761027266913724785745516158847850685248229771409869162876198800714649066364980499975233075468044554877963072762341720460924330530808310251666628774328479387887913764041209608182024834039907054294644316377062046006148500657425587453976271788242202087620378608484250315637317355275653565139511565693799096340075235618350323348260335449356362354193860884651705653349733543578148945320718704108668675306940132428801011267630505913156612617488726605292663756865928184214439471180867269725698199259320718153586195723831252710240752247556557379495544847159016674131530088475283409381846287184652727535491661222606402831841766048941852238127031422958881655106703868095583672513900230664121424934324652849802733085930936435234831606162220694388378612478086756211557672166131471685847016135484336403759000616189516513481629457392319700218248994061094814734194060261898146789372355678359482800373476160679014093228880665654660336851537907617762463848011617984750653798215814739227252765376627640580197833359222151941292856377811358734265817456982086034931758395821246720680827910023983788951581392172370785022997341670027583175381581814929690496546450074686675128508889250504663778787899099633663861319498588212189605461837932782361091030559024965339227447472673750585225461625331702314514908651598658219917235337418517684188309448931829110749405621161629516248698747920858864849847025150064274769035292422813901257919553932408531124867334089265957720988214004678402014410837005137673873190787813550114373111539545959719856515357791809372740936058315322275679128411444145022622484839849343755358655163172530252860977638043368533478122706720097614736502536671059389335483138712522654684389930149010806309411192436730933536350463550393727049451923816083554712368199773205211582605380236080602997919217739350572168612400883217234742971122533333202783570559575909485482369384577261781241031417581316967054813447667389887300383669893851918625610583683842124356505617489923644269072946186733224075324592814328365606787726326665287854762959265907103545139105360652409076781291155891613005779641821744223703390182592798777983777992468434464763176773136475828294574423460047961261720116371605402143992815209627639271246054254759636087899226483962260370740310255757888937882439130449898460031894679327071845102297241741704467762795528873334427583949937502750781805527464850279009138733523961308312519695223160959258017225742079794609366993639149365762127056535340230050577063546017966209620372639423640697620316086048676474921179499483830235605387341504837001715068845346811377586243369369190306562605425542133114281320774828094125049794181189977001158180380039903842681735899123183842594289045563231391075432646224896135760754012840963541234685219804528433226117113287366750064382375856696888344855024087986569289847949436193524765754669912629836144103949241232420196267204055725575443784914775552786085282615722079508919816993520869409544657208692727495465791149026681271079869069658145359066428822533110453328794214672847416658077108305970123642794823211288959605271203947019820524084719444258056074597954217324145120271352887310463603401460949985697291959135232905121335833380044577222613049785652828786405032631347660972545531333738390607153112462981804723296385664184644128321464112663510377628932886936842348705824032247477005948818583745687282335464050688974688016869917157295658135183901634448601466885703724946905390840279208093189008837853379527501183439806919125476806771804420766747319872221711494380037490311628904285892823904772014798475492123542868163199384819540786218296230834447675489980504202906582031971711413477211038585190873102686265163609030316906803715243994804827683782042076472795042253951642107357005155207183909223272472780936504396902807826737570813058075128645039253937331511290847794602972978458020267257686238854172336125476798667562882135524469880970453834337250244348322850797883251589034673632147102486595912002573452619908376538051934958232957288252265630344132578596152802735494663935769812587490909114316415170542068867513014973817656916843630124450639054885699550182148657443234545413816468331206249457111514390703067671872977738156103367426003907135893512757506706148168297924433224384996758232323420110060519865076152265065305434967723512542367765920612799667484598396787855360905636502160395950378295757653566513585916245900541565330870821706122598882527944518747863380321675930125125774599182966749715781244239113608560087184921967912764506398563988142428356775398129225110958930915921073895783773711594461837794781519738979595550011287213243075005625995656792892079100719104231140785289606743802890675283828460153977048599309539854359789448773466006982830965080483036523684902188079998114238317550628981918352335237925778534797954548408900908719827214972824967622020620048412338739428001114354551783036609541599297884421922950560801336046170388968091084694889927829839072581444211013599174809316642721555049718531519920446505434618522261097715843669928796427345196271550496439861109530276835873438122771726494817024689331200426542323292843071212629429592266129910623256507533644388694238465924353684891131135559439057587992006352921013538745702535587224766563783163970377559642988393158267517281428960659164279891613056063538892771370604297780678760878558781381566389391498914826688515076286433241228313097927983952438875402485543979985811464132097522942584631274190865154225897614150628896647598013472153045221141624971315803165611775283100305761612492830445823558673145725201031095672830787446945327347690220377208544388744795661643697380706609366811868989249358200996369953412709275487395144372065646935572020611514578839268972690720703481410149646527702900786945988698672810303167899753030043241331746086572463639575198535830571105710346797569306698006335041442126814911276441730299989988493288054654052286308398759337031177822569097033775299865488335747175108424996434922128737101080809540590444652908864443457349459175843772204920747474043997149123289859102470546154562175756641115125968080860830008784340973755806169683427650825554829447389233536617358279576549738517172174109300824410357510360524621791448585945351045789663560417114156293406350056333256751978891941675072925712562682812856175177336878110338935125793304508068210977374781024554863375430062734642422832388949321037197056372557759638667609194042913689073272365266740069662289225688384286382517109987236435941563108390137167810500382185277256939748751173329699870343556171286712483213755678069619267578202508738116409337803905610662892145251323215334187294200928613818343914454109137081356281460718404470567969634560751982489268504950589878911017947401507875091318692711006914158548887702284066598076680076014758672553039389929229800062434983684001171050091264625673174720586460340370903122923394519091408653141157192314526176328723653523638645731134716401641551564597235661376312360374474301257676927933150289838448848559370729866082371360618776051782582277410583365358163156406580163280392911633682761460962613373923518073684616359771402025244738692096733904207002628150317949634064125780168484549829463144664058741870827827175042819887471308223598146311521733035839342247576099339041962098890923823908672116789409981113580352630140186913566000030827664555582709099804661523214739306153484224765828022128777760249382507508245172344913802649250524049794866226000457803098239136614058680036205050403932667517606858845698602579948211951200738220876550952414856146354494341333024332854601239550878893374079574531542458617835574879390757326477611834722430107231238600265699023426368040779280286210198643386656109393147758651196672811863413985047085288714795240701864735138302788907822208673403239861043785576417860516820443895587915273156499417673304680565731078857176728986346971509316254021198977426711293358397952322583844173553076922823046850204683904935548664585738657127111043237602359637191920787655241789826157071728770319571267396818175621720830949515152938391968144535753719262462682673821256421024423956331839728413892935908573239472078171658261637802643365231229040511086166641854335852403775548343365679041719306043627951447753841996735332779711328456569244307398048985593462691210873122252183582740446349014802882361215729647656021346061096208084168292002188594838708109770841017856877734483289314754295361110248473497726755843437703880574100135355590941279774402825242255408808451153079282630281208144562576783527146508110724934080234205092505480330392024274678995492113729908275962426868658350330663303558333530965827990544654166459536688052508290419902723634889689030980527601171201714341909377040963557644427766565533591731562218887487301579665082441445916096135575886088692461267328410505921292282295874603168325912628998273998792325537476223428603062039596088676511459128226079363872487504075060669421623860375271055789008386852664238694949022117146764609282313176217799040733572013920254421785558936242967377388586563274658987044195291340229790387671752408841954262705166317450354467018476568992743596487720284225050377186592425382339956388071499748872311765359537360441293110689048031892550234022496858677119030204346993307286620093872699652534303529734754235258516868732037907261650084261849221884966996914846730416292537720081748500258153109592275713954392825477743416993215349784565508887182097358065331956777900392985204350316570264717447469842438534293598598334327328059229959124608605640626978710768574412643884298722268042386970246524465717323032688693248691115013153650272174037667562887299682964288555885065026622565677973134766268001189120525114304558676390273764035225499325080777064332294115460514694062320800400919892019836428922356552096845052128451674607721303011841283968612519028691081580552598401708065651513320413268358547533081755055091899686503244297359999221913901009984291547938227082251052666860821754431520115151254090076117635989543445136820761526965556802553120235116709253326733442679852655611082457425573246913280654173728304441653328725606846514954372841795374449654855008852856697338987835444934152230299022554514694054922457403937645845266541326628104882057889541926469741533873405300423498650115990631888204874506174081440154630394695822517721921455569507134785801514158636711070622578604949833069341267634359463089627237163461748085985735540421808930954435681786010622338901649999593689776114782710449605880305104898902782085178371878117476125963133561544881647167930536341237109615273559517938139161121961826926904316405755248150883682594220949192146212710864732049972827198966040222505243392432236533370938782456902034826758927397065595070688626785695913798388455730118239699993551415184460269946617918965825949528121614596583743652974687420099918996697106670536629465288499162649678515798629725021549052450068446720854831399970042209781355410856137995894304053723037275530510330085064686417751178845995939202332852841327541290951223110635657095574094348287681178464817343078772674628532373047620377180449632668875221149414482695476206604408889606753927957200087429998109427183571648337894371662040860880728571137922065220463231212425688662144392593394989036702310068656910834096767794550308912535640388275110225831341873067827881107933829823702155345985707268412823530051432745291374420152867858234664643117773290755355665643496751245189122219880524177567070933303005513689975350552671388873179176344913532206170852994036450941954113776845175456695311091313649793820922688214895706328992614742056425053310456597325021619493640539855411988439818791801252516769818597521534017050320943606695158106052347880259983044002079905559303723845006682829157911630092321124520371791695892998151096987080923909119237431948711928993494497210737936151790753424771836529270956895672843605522535948044104024352260320519268300039164957615295897551735423745446521518140649135364806488698865837009231482743807205631725018047522171544410305817890490087824437594880692319286136072273078788761067657878206183619819614073650634845066905645812541613539453940394208703853739902320512666091514141546761726183677383139486623386684446387444407577202016415966070267458910869718226211508752614584276528508949097123904492863483156607893298250738064149494095115387212071771879257777307024648269060453467740618658100510607910198922175482406833029002568358832450945588208313186289737895974259427086133162434442423281497122613661135927176433478013549568530956063145496863476291888610677505897866573180144333521121462969213403861854160787467879226532959059268106193063802605606990733039925599562040730201264506584547088423369010073370703089096951429051267586726862791681529442402442425587238269653733686434418463190209269906918048507651220759381876938665895413123661209001892856323332982044549745915721997684134207511249732674521653420534561055650171991234667271211696167628836961147760978163720947152141026042955314785783177067347884740215277333686730196952816197655699054109063955344201146985412853261236448508483437049843033459114657756741205408558035110652904702099940311222730541019369449572227472248316270624335036714311473513503279943619640721984161663077917162769580073635572051519727865741627424838871218622654875093890610776256453543241012339398002039867070962662129945131670635086088027007469343959392716394109434729090554330409141868881492511503107490406814551242699325716347685834641328060292328559181643748952332647047375884943091624863697718616013307032904731263125180531319927217509667572560783913136143630771435283501510758534424752117687855807678274964984838185078345414370856674074026680974076873866615824259598369328002107025559521591784344550922485766273270115915924432583577331911332496603907162666344485520829538224905172878145244392427145487930058154774241223070205430275702755987198561968318383002689955854416318504473677909521465856397163814865348910225903405835719726413182507522755273503329118655096314883706360361216889770424917329729105160464309278229674936670504021696965856797933574516561443153786001643181014766076632052472048010168981391340706022370291601521005222530866285245793870850912568144130627339038892973145918955907776538742504515278016492714515867548918162985335855682691778111142677227021971641142797449113290473477537932771556709327200031621648200807928837953829799509139334630928636737317141252769968518932394720124574159609820117001301397305745514153909663947281585135732327386114977731859201642049013080250495941967314981606775693652769714364917932210542842116140040503981188869182984701805471207010679904246277154618457212042926420602025415920830492253202636174006092518058823718670826564462681801402303698557025745266751470763376656280130709887169510043139708424074847748778129288585516715329391783609191529742102142417504394275304712780229944407123982192594549915743616612860870352171325018707297964869250215625633252105383340919159388679802653100211961747937826693873993566850614140061945124768663172179113295288578506945852835356828831943844921897066143205252704352079160488679371630005436356812214196178870528339651749444094253664480145898990743622466001047601312320362675517701035829899370012456707764280275453712093243881595719028101464917047443697104155933380107351444848584028101790455286990000600132938520629057203441020934020810717178149713032815142755611316387341107685317771363040003792654020849432850298610969071899841845125911812906241854832303907897865188779467911131656036897717823130425603684247425019231156266037162718874137906774329910851965738624064093581146581006804660487991863813651533554914009220934878853131191257355435172213104633265152846085345764287301807546123202289957273878459448293126798107645952882199131175704745087957545832033674285268228940643324787303554256975567921678850516217942439559322703727693195739629605680259024300310072515316043415555205034408067027553879777690810704714627726670676355907121194284838198956228669240690694689459853073951183711090978669943317414072064844374043341136597165690580728804967712630287327142514429692728567144949465347746690991448959535041328113122854818931349291869488805962687030735900569614531671937553575692033823829335542211150608570573982389195787151467670614757311278244535196677197744375321687103711851482828132642881227553303105838462476954651798426366205348414166144987045314849103225432703607102792127410760352412600161375649080583838531625897629998996982032463506339091198213236943496102432946872295741163641645699456369708545289771307558393169115452072318045311575139159458096667121172438405194001363580374939908584255683884467323237001721935881353235060459211856967146082866058679793134191255759777023398114318662129864457272370981618906994738170209574670648060228530640079293149889834576639564834893554546905450199283630629446531491683181343089762517196708472425970563660758279175883423306548395888401433780363546573857052165700322897086449640434440999120048996574479700705752977980682891168347171674672187712559933750592521285808764830236244375981605790229830037996470738398958273626690012726676155426799729120384601026374784301757170868056509927118574911301398578077129438438341361361105706978141250043705547488961167076653348621846947720023331207226172917864204900051774366964548186470780791898166664494334474484908637258277773749697773624382509885816751146045982451869236953710515849011235879905016305029208434720226082788972889375636124491725017293060931767397700651729096416261945555035566264800140577756218936267304700568603077745363437349073867124821611610080781431001659599348760532408439027363943350395504074191143277572341676701182255970593846745499319381787536618403480481363841461461236144825145099578347476389867812666044102304320444610452502457826117224144883373328878045426319259134225277065893308993571892151034131491014583469475904894240983849179826766749274460991519004465939122974428474400969568269947870628800569923219831823443548292299498073796213584456907914369330446931936329506199135473808754528981869779374680521563038563949145784483259918759279887027448473711646019151738321463874974992147890403511197539314339825920070720828976143431429369631797044702613150894646011828680487571281895451112955317753671145069299561131571900159957173641043586049032854600554070731057600207088654788758389473680813592748025679580843477834112513962253140604255019199836947922856552196381825532660873117317656437376377459376066580448860210745165291723734913122279543864834412808728530479062230883868371894545334721406663203253412771125776302744963804211141731006084949674085196387529163555031001892357876404020371207839198053331754866799536408104268373079201368040979060627801024118651112665890037605205405922595143192297066977038064706162517203645946829358554271384830307415008093258803251312807036838103789195580493372073808529334804137268539705079087492385262638857342158857147174769536686804987048638619781626746375998923468776998043390754905993330920129611043248283534121928148790423581167128548804020815442029887177539548990281146935759540502143704902671254344361141979164537542654617938107552635337056184017836303066007345013991793167452457461947587614400657053740768580094790381285723738484219830874043713445002840236999833608124488041565361431948852760729955618780829417320883743287547908796745028891707914437343392207657813613580220083199109051333634611231301456433712744581221344449506927256922686409244670826472961164340427584831375126391991775568651860446580593910234221209907468013383771635002356177205909456730923500881935779316974324284374140084920672227622335958764833730909037796640303381419300539694214598157882207962921043624282348183661548777461271576398797440294964104292946456558180890850340875182230915130774557324091606289968360249498846079618200158465919401666524837855518131536069170224560578328244354264821455578247592423785669539331144349165975963089436468068328948390758529615894217840605969412188776854083714364494492504639719272288422898720530770367454116720273361886759641204807026165440730794903814369390216671305479509168178149776602641593306371132231880955523836811276869012672757527197729431300317317278213942741339274089546316675636366305305190484946459851730716585977505926380706555762618390068217297456976422789559863607174274158201679985033322872475458906015084916685286647520843272825819443467661459883399936915134621519003397680703985249916600176441548913647070540073171636241124996461503474330971237843930393186652395906944426666247229615787071617209790846939218466090669430392170915580848488294345403134512494563627140835865231763729038934625995249388220723162441031076195082844141851719936032099123915490766861806902244487622297880133426727573564342354994955955136475532709913580887794883818495563903195006442697792749598128261529543987067871058448633200719058923494169639723680933386366773656363113728707123446662951890017988916052811291116052996040383911823741083997942970161556185297110978635185022351004185812749689579424686135201057975369304189793912193806480816987129661801537255298663883746448060491701987152537769885941138043111896644110354871103546377042302407113459317334013842461879850690241048094212442032236844749431422713843178045713185889891438119864012618271507488448386972411310784468532366990798469247445568070402806825644359154547639082275877527365529272331579238346780324904878476558549078412815151254584546110507787797877531948192873558313234513761293964172188242808014481149829285351458918875544818025467087211847172843015966054993050205021534296645265413275695284562694782991152669268210138580270955687338182188784135679138091641901345897033140826944882892864041118574248005888161062420989101021441738525308905185567113922618573899453023927558061614447879152630699260561115276266225019074104051853440867784105763703828796384755365227112893068682285013900660451593190409627164924040187618005534297507981810026309643615269007690198967846143329882830353200345685162065738986760641881072583147572762227110305016586411781448050865140087712894364559279588380303554831557764032789064114292267363220804719291327917968000291112735613346906213866426793297743822403684231018543396068946122118246930978690337727499433359286882983044632731360684836512874534381430055684866054704918578374844060514724273118054488070535161268429721149997472712124367856053708161652631496381052211880829693872084071988822960188284652688710017941464453636887777216288261376303943296922230987810614316376536110843958355795278350825850131966147228688559904494847698483446062265488423119120980539930033733550080429062435569742008768256019563554631415960995118912290771444056663258455357291818979494768891883941355166080407987585619519457042502504705604987531698032404175597534135593754095946640400033372208692509904583108329893442705336493803144523347574484093835649762498976684220666888492297091903346072858484656778601227362966623580510868471205926713735856817869607919567534869313636556361282476934627349187953891759130667667931510962434179704487722203514114897294706009333982713810952122659138798914785576870646662590863404312442972128761246405846040864941229835702017176335160049912883244355926951411035605590008070497423075312913359290253516098027637894142374290823237535729071122041045512735515760458806176246482563546053181744338780976244419860537486149193359010434511225654473378728254391727329384210197992029080204310067249387642306572755728668918947629248809334154661544869397117865712565500321231933794858288366176128209734324040468632663266343069900609233024584255013805418090663954436942652057056379597549962959336167396388417226138474614891937429189519236943580134497574262218704291230299092026113405875706299541075679699946450599062019896222324533692548149964749910898013805185725055616046171243835968079216736684083134807122905197588313812371992553672612442770469182271456008326508873998617557073530318017959504869284819752746237152485778944081584987036055211145257384592749917192045075475401749940663260432148559529712655721618561124544706802221672321748189221522109108054806604366863059961615513871615152694636336497641601891711915511113413110827025150655008656575181572239377162470557396027551146994810008584972458485387238554026727829843427140490990753242313031231586338385959899228371991169262722520518877536377972437577377993919399943943797621720119887031660442207125405085797908363279049361601290876251011697593349232587846106192994856138630855729268285310344870335887607175918366277030869804167056688206078117216647583409860955128536949198956643338441427533387190433750903260880296595120482916068204225328542101748431255518667025665271667212493352824312628995698153545533888925301891869659988252387992088441555710089950087260374969666626624897584047585724998060588076092267222649530805468954115392023854188060525974999238493729735893247692349909338492074327034511431537124236198698199641185821082190952875948221043528860826884958566750900933284324255418286124287434961020396786490245606690122094149660552288051743200168873986767702541824881673883200510407850428796735345069306229649392267261572046544550250070767857759351379420590671504707070311456286450695060761585539358716907454305053072994359437424963029196888838718301354862683584383348293198108392742278741971591266508708432745112001065613011531534092193947723176637657273765519246317836678394604287425664163232404580854873121613463515058585300905159346058816634708911821586121021673610788990040463031891311120625845772940949791110059091250245510389544626094196976406654973904813692597718496476253257878496516030344841025962463334195393201212225184544238901877248016713076587222541247313163947335957399875856688449011257974965253739245951170503494963900290739884359228567953590453565386489028142891879272144231685954420550411456303656386731625820597413721860661015213556503905512214315604622343432697922539842799310802020362544451115942383326948775291035650979762937935851946742784906534645186131220218241583879875672038789353093679078066692574271149643816299879468667947837531081426239178620011808372678913022719372298116715650607271429580466110618213807582378900840421601977073222062695573262653892496280692767040087373610828231214531643759409087825947363630222395837746397121916109271677760999227719196611315234567124733364390774570723733194385252091953715742841393304037486785367163412216140219613334140954555257003436015899349806040508467418401938170759968722945049159959507240306898997464876172490762658871868397410543697604847627924645043565601723478006631563020485686021222579822755159448552187991546710224931244728963873856177065287443079506170737858252851186062370662965674599069485771223606161988513650740264067231221798541885513564036421458696937936493854956474777545121739655228328145426070147089717407415563858818529401136704648841502968668383140607955404705653804597165668740395607935682873378668780847414870428458016893303692150713414230238996986063108355220509318254011246192218278170919987513263265319678467833159913520716555951420630623537775704174769674368007314828101609755579594997321935918960406185965849654756603138932247698515159464418471330094579907687887394598500080308654874377435575661358291972599269387700338024821622003144668076046955976397695945444092852058695517518695375447936282588092875161732435487555608760900758394963599420265982425117071608615756346550593381036325789639521472389784013589378330673495698970553720588842890474604352519915729903995474900643516920596379425290088599383444937150883212511787271281123222992826875573082425921026428628387992527635688940448750676213957164789746677613840911416350071096217334853010778250668621154259708544604359136935618459534163458166136892079427726332171673892175207155335126963879824219911601643929770217798280141596272472864225242619614964249764817623178998484171619305829924890848136307916820339430765497248821334278027580579248071139863316733085626743192091157611309424559505725852195063445382394600175044903721203358060338985685592901553462814791843989919950093028959158712465685571666164591497229102345520356987561913900605753168177774760184940650889898436635707725848579238046529527701393697428852602440849264241681153314659364680736584215713106179685504399785890803584515282889593007668753757596926831375910436100238624346236827917375631420806094527977644728283494465617724404385918872075229758006792218419669286539204129949848905260847515125220139004341971436726658021211580462435119725004036778303193779620745581719533130121441906942483624401362839017386860108122505361029081626267729463464960902888221917680676463616961513671043224140334260673481142655891861288568047410672810946879300802023245606748079189756812380287596562217165568962623960044507307706520661176316146663666463424662916997304294382250074142427103597660862324339185776105270214822168870123204499787590931532583855138638009495685915493890418928269032141996746224587143529227414891510237450335806692777973562591166245997234909217319977066792974010996684996970979523070197614057617138799623532201145456075355947506218830487041941829219722851472998360063408474751304136970149243322068347920847415868053640329435668167992764609176057272288388962602608881540123388670756819900886237038803463678288742181814658027915000177794584598756469093551306086847691756651662658411055139291445758226584420417119020263666771369640018077015701974820991732435722570116212684428926505834548494894242189715632807523412976611866874652734236677451860929495142494876192964698577040111219273315939418495884342808889310752555288566337980247867236086433178630776325635900868893747721365677655346717420355101352760615088394340317979532559141470085976762012545969195795097995169043771637762386298976844365211698375331446937298236886782066483669458523662089229406428448542194450379880771560998947482110590181840073040039169177434596477083091843140796140959204333076605554429050208820173724277147940049694939135113703543143903297153375219275234796164142422614048617506426868918184058321538812779974001715699172325898380287411398212118659090870562760474318596095832613129842104463024619032130511764915067085975430902569824874279023876582253841438983897821188197724295020810162806041430833991507067535245849246511352135507526409380409852525032142055599221792431895911652368620727735313719411962754203706436120177390953433914782351711344616925693606553175950202518263326644604435742846274250179207984502356492471760451778531306244578177588380936580636481815401489145886665324570644706952220178135884789658468678198376301708889410179877119706758230275402891880912214952372485159595954363712408341325318420166871132333544390094329367499659811998167766937727259494399762922106830689491543927663714754124720497515353297014458739660826758285440520200496547578686248184975882303460209372956201149455854110826644602005616269401808553529977252166242224047439112560112712175728281737636934523551756788432831146086573379617185632799560577311953639801494096951175807275735302636712281698285698737563689442967009383119925743369830778356134357017916675875819291073520408703313280424099947615099980016758977175567667150094300220710199060885243620319740677228201952458740804003776072126662928429495493392726305094957239799754991347539729768450757456873667264962934572386162080845275784932944742795719486404663838090855586231501755677714914010419215731372249132824516204494835106720171554839462896271412621543932272963703603136246489391746189692570098899395048582772239905905219745960088282804327394088892552456692444098753008122956274797038420159186545825527921682288089825117524473065728587616867703164775583350597970236685844945662483363548210514927365119652185682266661040821188335132037000853290916227475591394469659199450927134193358622920187023611113123280940689933768192688710173516070709205633636372383323174805163383476083040677091833577713558838982208023591118194353887943365581737753564182035160999837406948727474519483980588342190802005205957190905469475610074547797395721799936150369796324546321209427838391157411080770050754535292898374353010289286034809205457060110761905107540452812906969306742990219046241199712040359002549581146510871807485694742621031211189600382013919855594851875672090036433729972198979318255658910201893906695578433080782479386430074093794905834333605183380490292781760547288053884670100369257045658546763601183714354153999207058737147298674330684940918946118298909453792354276998004813825134099119022975284494872575764141584187461238879668511131905594666095754320323742549713886365946423758875835493603249803659161509575184009544909795831092561354943242959138756975601226279937475223430700301503181556920238342504597539044300243647218150786446913207697243338426011185604312428355956743724239121576162556037529651140846764734290567628391237764401158533248100294540728197946354881859106302436259445591776819665597061304499362951551544651403951160972450748624839714587191955418738744190915361504865272032262568481287495888864016257600505996935706425948664060619428941593765948939519310152416411800312990330499882510635794895464227174556235951459414871576831004490236662365102928348694450481530908386697865294123496065962307409422024848807263329134088760036369374868086137293639015481335648673266586585901954727648269167914458003513001327719473289307199069292193497733571447325695634171298762530407813905410829996349864664418008939739968823500168861203811956085968672154247297772934573548704875489702592588509361575101679651535035619609239592590827204078765080536886966839426582301577629701689418663263915023540750850851879237849506707203859310039774045043998519222139802065477002803784528786011815170026806719798271005962124194272072167555234541915047083423899205944691543331045839367801043189903578792260982628148793701054044544024355372682602720442443529938573945247092511260380259154772972762270295736187437800616350795838573108318036128812451601798114880191905523275930495683333486965853094548007948542991313492722139270027682632251599258422680493499389365926813686653752771529474554712315034867011247440464468563837145664450094247908483933471082815308892941596172742055595914194808380154235459379676745152821549440701932889550111583611907860660316146334780320168876542364271608822662871474681368346477743007668515018243676977805934453175902943867895393900587554866771716684818905535322659504432769530905484055065505370055163538917266039224864246530951728933414423756778630018495569987090080221315746072971998301087352577323129334294540511153057646952255469931509081023810212665028483813493241941860678835065898868002815602599568737083652200394102675863725604848005446352120397951862522643148493471120435105167998880022271107143788374354639131981455684493102775669007011720862849520218529101964406727730079887312076260755116509399410337043327136994373363319555952020702096149200678367650234414387735582862117264060435562114738921182288189566707220027058521610919135883267996337645850787027813693635814622913314372692979069189821447883812071471192559718247180059511755985762540605508664975256000693274821091650205894523174352568663512542343928462978378984326848551326441487297238804463490992580958124200787432409035424118861387711654943756856665627204176847671605407710985887359825164748569010680587326238605980102790632206544716747834950871041052032005814508151499991087487799932554884860146140844544721917382986889938049888526718093610232671407877038668151548111205058426132726855504543406329120818921086500925378176599513527904158187076879090183572235680959859471623890518421532319798720086449504073010963431816759283287735470727733456755161823405681569013568788505848729897385284701320584513152721534643991978122730788783797409013859158880449044140385202898110637762598310357845660102743582592570525618023818185058560354391699692331652838822670866595226159009209424688458609986453763600646621703167076670212329979369416314984925355623423740734311733465721358687307712202673884253111804084848400301440861281400893807792416057625506004924062318374025655437247634908090251439784482752128761358023796579757038855670105721681513290452189954347669372399091408601753194100133624593285692815454296422478273258706749372199417241017093426265279863630996792369540387025100375674603828896558365540902657649244420321464800209582245110745461964064943394205598579854015143989726412679540734535553529408498280067024967784105630148038040877444317919187469018235087674255706255768771173125483205564644278653017925571580813093997082824712080598760173180738333728305365757317104066708282378882326387926266435341586114895461108955399891459035595061529761138328189479348459865140551170390253959038128302695670226160865323424977993867180336398980706661098033366546076441448887769171916080418032412513115198765859461740735712206703203518072413817534872634499018199064649226892683518575368111153761251487840995140763280890384234150263478983003908939587436095284108213587904329166248816748571115927680652886453973032725895782584672690403596604362632144690378046977212729440727726165375947761482905393448228836592376918689819433521223813462985874305172191400120796864273094776274646789572062360990977775758319049383471238113883987387721138824089336422967255109798941185511559012871399105754401190556753445779784848300197689178390639326868198131041906582414117096855300645214897499100221290271368213770911500088501611838937185638578080227055153941497530940209024686253896177078986413222491746805791492275348873307579145274630069870861863366557706448782939648355443415417260853630538528228437557659432881457667055264287235103584952690420502004830301212493913834783634591297521400544393284589644115535394226939601142455553906175328922264962945241955645455784753902379632205866733338555262427183719416847973023465746935180054412951909763335628320550790295301468328040913396852377165907170765438689228328683099028234547186554986638791974563283875574035282317164058240907758672881491228826095532074645664648656267094057712109930615527062733468719271013740964494308978263084821578560929850136933323609521604951599661689091432242511364761170150996067843130543003482286356210771482314388453456372085783456270335239621799720048574834389452512543656824740717889336207696341942429963083960637529739889333407860711386883876050513686424376126304063561321380730458412347708246346301823214219668269928241385645152139099102377622926463453679760581578262875473868953838261328767708559307865677706600902448460132008023162501145344444616269046174680770609545715038117572739821263689986546911355074966513229619836950899935327794326399233491416482152882768471081623747043742276139967108596254141315991544743937579321405001201934395411228379802256932063378769670637961833032907214717945919950817047701447670290224406426892153474163806458209552356624576192756935466034150149390483444033790310070803285266227477639734332025202755423310984223598205372869406969996010951191385307280752954654241378364876780826443294108371883712481719385841708801643873924118495981286703733349907595289450508972007555472142071925224490362352751737147245060433054939002381463603205160934686566681050918391864905789725837554828379588842752604900742371677196544749363003628972214578105622948972389651373206027245521698045541888432010790179730616091456216924493946289891070102260390690120809618848345239934314780069243797238886478411533538842327997800851158968082388767699799473988274888087003702595255243737409911771480191061652591592373878697280290388588296103980917742476393940251812173941077063519539114996420200053620084706305411968773019436272647465043776346804658081243712409503861358101687803109141736302096191199534443258496380217048108206767948420298522586054484027503278199593229458830537819223844830746383590283792943486623864102685053419906911575035518032610047978094559180244186449834051861385264819805671573199151596514712790415989792755589198054787384339470641302946736539077494757611814972930609542344535589260157533334540352853351298105069733830350675794324811058178471487308702461571946641603690771663474583393124269608016232501983380480099371716113498546831585699286306074123824847916499553650852771175767130299383623351100513594527326958225293618163572494351786396780428540951055600115884109990111217227969505392352375587145356343530215895764666022830804782513310066611056435425311221682124308482820781634323364866675284904801926217039264055745766298911283358983845281108665066954203240283778363063451998729850143189501664037941510814911671614783785787769495612206217565237992624540906412247028291974093951774851432471596834805372971737980914276034957108987194880864666828131072843083398875660770341093681120248206886080929016322344341965989930749308851151028584107114585142279959141968071720764655614215973173057804885852526755026600502488458344976274342955446408832564271732558733534549609947997291094179584771610270946335792017440629168641270532985733465361821471398536542515684789600075685965840512381927862973237285603982564686393293230226264948334906130820282037998679190062008348262406020800049839504574713848349089092966188158710947239838593721205737882542308323579863155345726820023673023859807880097643485957621816204744314111156146851037726609947330806752415489605513378723651683029620112850929153490217963365690591853770226383960121984199498182636905063215577426056050265203511786612754429323724438806816855391176905081828495941294179047954436399090605025076943094892361470412587185454445273951190153053483016249726362927162931557721298038761591720991672965485000450649042580655704809657664700759526500250835653601770035927171489299738208136277631970384829416053550505911017845688959254763870529752543608977987479625300360150403522325336920268628424235987570934638177155742670464367346906886244303444858634037860027530567221743812374669362168054817403911358885186440468587846230638547042383915628958099512411717547775338917451703020542058347212132681966925289162621451934318817112051806311341450884383993982458759166185126581748564834131168363519862604350470860697968743149327934473408531529521395706800321344817718617148253150557947513881852467287241147187545597377131402576144748570124484723266645002782919318238220820818338899307450577943129115309026256796139971340681592542202878802882706781557505103346228578692231977332724180057051094951324193757167229159909858865360031506180074483837449351070971200875166344109175906728882828379074637751693987163037648814256755575839526713184156544423251201129910525945440502694029315777221545742632391129737607074787493653075123832154977669531386186250376144536167849069572901100377446194115897536604643456204747171336979321395029072534144258629817752104738875730364864208753845724968181362841001604372915086593104910948327599596789901300940975173143724070903708550127631463290114873752026792119267855074214681709375924434035013882613306694958215753616700972276753916792014987430553786114376082803831911571556021916585466431162149780954891241877872900628956199332896241438168896758263045276929606451961820181602722007289832684820445629902666581752759796396456266723621708003573295333337230519025913078346642359670871001127773187801155531602186993886802380949262976472114469631673990958320865691344059963219151581632403193133821567882705243654342051412000076437406703877862286857668450002393675972121289552572379009023700798122323888674908425296553873465589138143138956466447788319898923446974733697150434579930253659793071854080218931127567917151641805848835642921285892749915822292762894085383425334319047693171374305260633626019777381909276040803259564655147385253677632489094985950280475615367049140961353615633951975440815456121810759254352768646375333656431951257921221189490396390247051115614209808561877675420270861453944349062412306097728845617730451590841752632771588705079438389142177274297515217062522284825060046247631137523275551034369790961729665621740073120682664367827662522132841227741860052832374014941809529671613469662298051199114630137495163420554062762592612888971614544034967755068055213533183681890311732841061143072130636937664114320487989240803858545605731387192223508241420845247997842089496250355741809827804326588545458590967173072966373728967404872538580199406899428888914459413434174603810266066315448753121003749929538491539918820924686861267762287309036042099910251520657610318140909061919933504140436980869484813876442084846932562731609931767782288888755538548737965487240651708871371552605251252430735730784368101267926278496297330411795035107515486955630037863924925369793235508867122421315739649164703258619249735205672919754868966587730370475513572070016574478209245466385723459334243308516031181469408116150763112838122814481002351338435277928149104102155248180635331669754763027672975977545169561766369790926117977714200050168535436710675582176456562560295904729882358757249935247339792494385345541847355812375679729884711721941137678506516662520880924956193196742298642075444690853952297638751022709412077476268998488627493247390519973931745619678615058179208079498766799020231083075745969022791847463455220894923181853029002433975191067951466572914134022396254349728122978841401115772379972545936703483220566026455232292440781770478420198359205263829028512125675408796318832940194312527091282303277635938048795528815243855361473423749935186270056980421535207412500480961594773832524823884772254019354649071372147948021774321396934505660456505249434229836599279723354868101055849466091897684737490067923364030614493769326675884039741420377374265820469376871460822178314349278670223304858548333849000663206643978317902054880014317116786610400339947765404281527782898512646126472086180180313536385785868490347925968502686931953704147441550231329219112519373603445841197817007979650572190778701871018328392070750817917214091400104331467814249851811603276471694834260021970473327683573968607166950963465409337575099914632306065754946016652278181818483066983026100827156389518064315634580556480835729242170227728878374326763496221636508813994290464428584107126098854536100551097134056768276325026591881976117879248519862399028060570546036543615384145940822774016628444502012476255906944647005464903703711890029645344293303968878701203434820195512753783795586509279191124538290203295399083114369871709065992335395156426352048317140138848682757350693873040960367653079975542501569878256676673082298554262067410468876082077235735389497523981263355149947819506444270636319869357325559923383725692593984622096699037654523190240152732220592185341706361102008350265349830788652895045834743772981719475732966744753675779342667756571546792787388291237575239154325306319279762338973655181695304188465824191123752359456275985486161624204339790796261963734441320361163717647524596992271603768985624864792607177020618410491485705073890429691671531901458481741633131257112358449445901908946654391200632745660216588082924108331881812142468650999590098052366847082174306014818876750739259016538369011333340118147504286087895193897186899173728018455875141200656516602244312493101313293536214266771235464474809253914348713170290969583048123419290643723410931475601768297499175065056629206424457855953373056104576666202963103494826918266952540367099512388723245986584526347351875888892760835753335997495592219704066807380317957077185159129500775976471754783910600648883413831002026051573712195525119630129065277950672609201269196621080746389533947919320885091240309597347092632813456198746083670940380120535318223430438563444538678975516615878603666709743126983663464832744627871561456328558819295104235208970704217532593230049443251821751762995000547210171696926971587105608982468172618777436538914932972298276002746067392678329319726989833584022163271752409685369264890677822419771078185052061665867587923889773651278784141066325649334619891916802031144649473224479253659509619148244717331396887747906555147182560728088422658553151496977423002892128158058287410429110686170749517802078184644504564294612385563981621807418353086697779045957074143307322584501559984850084934732297408471429631278015497293084908560463796103602194969658848776712832083393262841433146542222107574354469997593459197789307998778315152374193842543248958657041364991918872309002896581145833043235261264880443747292906071938682529833312568198695184045195787447051227760403598371762046997019066113662905692859380471896357923990971402762895284648889862549444063201688614063646557986992900620977462507955535199577562004045167520653012508668537032267408250669892930939194471541921675412553027221560542924812120510034127605574057632931707513262277777926434562712374808872740189784926422769799916935731270978416033077068104572215828616907679925523999928308171230836086564206337160233827849616418063705071543032174085737196412053196903167586248866156344112503660796402507547398722531406466218767122803632718441388117468444593902672354810396358117176569973573171109943418780583092215585366983505278538700737652335041335070968502619095929111196028301409292705748069743820382176210711878811020597613163238708027820524937549400479367686394354317572162569171474061414341818649990812533151678617942493640927473267874766327601307758246501973539776081061187302987397726189052130042933781961406396416361191711142014346369162037820737809354666942052547188073119193852008440694288656669528780887517127495318629256132127661786354475438868089097526504219449063078810029126834873382973167538830596611173856208795868081049413617991779525249459166922933684991142011714290877902022255873242375730037490143953535589065706341530901243179978255701598261271044829953713114011011566205256754909319111403807578050964888960656223600365827996162695790004556450256602875749634010930225334649270467179894415666756286915018170615002663075529155239096715899052374431183650982916641109231008555640037937338378576023986039690243304372365275104533972703276577279967169908256959042320390548157285753332477200221857134617963495982190166581055235759338285705780311981917227756606679028300867979914641491567618057732698539407737025089419473494336887019572922590237040598415351699554063234779359244401196870993701347233564813433120278079896692816114175327931183930259258982018819999543541204862128508437203816839447335879494162642773942796315054252734110974355816289734516900337124794748391559990717784586769826099948775712050331783657190277697920745867617264649399282386662146747983260882062351473091933174070779421131631972592070577555162940864028891604549810150773854121048283959746607474344673805585050317942668428139721681977765537241568532645400241182683442975870001736974899124727631841214046373935915821209130434280023772985883905928418816040124562425632322212930840958152773126916770933101657371927645413783730691663582795459343328219338626568964913388033532240842910835850758365310337033420862463572002120566108066831570872422825756162505808697210670339390025484430672314338860721949027928026917405914554064205679179629454182294483217224690781413986697540357954087398998928524241208737728007042309300873981527904971812422984858993365803276440942000591070260697922270922164063598916585378567793086539754199631393140738149417412952693246145852220560502270115823808657751176592164637803586265441748427017370013927589949422850140095889860943071406984471557086150815351161774310649449722926936868278537144062880114139123518994890896151309515932779709431752001196649006624306563638089350221712843032354179741493058907015616840685840964663171626518657798716203916112100797599409870743408344755160009147377476611110468415734088676210183022197778336012511814431111948388509821736701812849345832213016406262403027791684407626479314365189064718865887694895788791908962884770055258517687799048604080684994095075294115683220717615692820625409340156610003337349755869995998784279504882269360737184317107467956987933366569535575595456444938921044543903934538166549228047505746777606899718712869414130710433880427329083355069047804856781304425110265046401280807125472094678718901012906135156788215431503465166211702182892205911487313168609954017755129467527144757808709161500853807961010758376692276389918122865266707422834644060775899188979388533306782769988519115164580091695625350907967004857704196170517891729739744649383076962469696357704889904413216586307716297267824789657317496658005634143653219239654405056513968276391868938319723324992926015273688072785225319552685376863383743616506989431643859094279813184758504256729123002955535522213899300483089797179914783540924091741637639535932104610243017690847210593713139373360519388845583267339585184194362870495247224101362594678414920651486904858578846023700623883352787808161627457399740567383819542592815761970250113938589882056403036375375231437066669949275139336834747565302657471903289929824695390457080647804333840508591829587828027996908026061910679584941503697303664361863808970721704977575642170343842605181574288324822424890790081370643465739570091542826545918331263540195146610836988282035906261399072882017562753130705806307417371769928385029773628701916746142568892838991470274594206148600478521094337516661595028253994493618647638289815866497259601672622265711108257371775604340837571573418896579007936713687897005334214443217841778000115243943298204706263116091964128414534097058493122130803447230515740938758252299793059389071340777072273014180072989168795726523727130799373938056387191306112505627865660970588242690746508401994775595577145737356419261203244263947033690028539938852320101083227046600126058138132199822361790963048714437645649054877251782155055278262684197416410348145510440904612909878566788154775360098985682773821275837854539141557161322302132235014239707282910759932833377902075107416651693328551928108990462235890791377009793448214209756570630825510739568170988651403327469916885010260300192098986773516865678910084182080959069560816765117999562034463685166236050955760484554464559558818735368750000644657314274282060082645503285467151918089587819645543969939189068216428418401237551511355317410484375611721311617078295250561671733049739706102588548558793961287116646679988700464019492122332801554943559623017408897479664616500313351307341180415541026047382798086051704169360825253736118233463172258473408229930228576066019634789973709220761624015178739267053184687395497685339424575676861039283996140417046755412806408097109945258301401440739718212043702789638320725785383858360961598760166111858114604102325698085378803741976129490819625069877557625585958822189546669133829997659390344928666445821688320735134780592021474802436460601821964807021629326152424347542064816590418120152484205392812986585470205539412773398643333950602199620366689958107790675035195085675387579941806388852753362538440192830664131458341941620346887730050623648244127958505185931400620071919204240166233204602884447667553734643028713185338950521283969915978761294292275684248171739096426432124390640584012791826751606162955151236239327753808816158109203407574764905622863057394408418610494376204165394866017219093531954980572285484004552067722335280056822999810860294812027094349694755976181660633765959502680113999163677154366707977558144115173713344104655399309498059226315037951066109182090671330808783102019150104773744347749684109717430586139230838152210907577589879531677810400389585446659314333351685196350044887476439388327080822090305724156306648756411576066672232621418109365121373917389957355369036507612695374938904389328758655525870507822736563177391531482459726284171959628310404315020319587933444625979624120432829718111630995374470744425057216319900945211471698206903470972018391971484571158337364451891967164129194045843182391037611050443629634554238729683514375848386973241035866925321510231248718235227131370623296352241111461365139111764801054114459063990217679639141255138850702063488163095009980750070302909909155098414844258989713232178254582891282951721979385253698362721035549820544541642781764691681808780297710844310553973011868566454828825147868794306387392715095907216020467886814025308721484208238982166074193584875055459308718258840841063402171454647683484159083771215564794207594319308050462208357831703410944053895789394010926969419711959363350183274617859598327961909242168443024077518070205435046507653273087899686435177991821540281666267811434781158330868419155378450834210799799795219900114493441910958477274231382198068319470695615391616014241572053459363328457475421392738176555845444391652369993926110184778324227335146584273366387939977068205054500598587680487809976118169534304786940107334638163831550170580408826070969745551911257894698802710642246730179066941994239055824564742310268181447011227337143828176872638368218728075093516585823618855208708378810906545266832286973185304694436749681734267324597356558392342896134530227418016538079322793407990930464402514978428973577067576197345772766402700654706229671808661412032616662317575610953501823481181100571742143710673226549515471673623994634806127705092113531351642415324259320785434445787837344982242705158393108719327553460369826679508720956685295978333435873287626204489071157509524273270534675251851977660486607270299043788772619978405481268482944740269236634522662022726803967772449274040183608848732706495900151274876581920602267497561842554563012824118340853177457688425804248284241322104027859810167650565395993308961488644183369128731598608267383611323832999731493980983360593023198510489354023954782258493092324001691623607663763351145609925757884841060991794923667822030286360230018248762657457441067738270865805589696366489525924527630772577304396774621924254791601195425654751966093670979018179301261997805253553922217543496055976934853171252592677444595719951730229183705894232466976467102758917538731878071704136224691051934179347837532049423682218076493327241921026545542543389315086183614050259815817116843832555091678288417497950849237505924956750707125678105730213399148853668976498287576840789728542876048825878344076519008351960374823306222575939060533873775830429957800092249495953254263797226768490058733775948110137561941452566686203617550618686177015950818430579675174160911967674583429696110507460625114544747871058974633974493353850748258402064971043239912041292825640691503724429059036247323060015920996530931163285123346962437444098369310318148030670626520612969213424742359196736095486617607977873239358514892144848380643574508229364585236218393940366544568715023421532387700984925859370620016570914366625280533908929933208311320843544282181817012254091805570293631950970684928855002707773808469099062627844856693846439073535405310971876193585221149878428385406068259243601521719976498036370590807584036220647209053868077435457217728192046726775113658392488285140247342068203366501671958117409989594886605429422731048612250194559096005350145001296220601530698820007933066075717598250279858572235225912609935581237325750030014184426632435465008964749331593304697191815004774791056792086998140526645576420802828831406474413549627116061685915059534727713008285791841741831742939668626984418873942953408385597228244429642879935671350759678289930691906143669086259948278544763682385061063777049284444188995874626053184718030063795081903808176379384006579918848847288968285187542180540227365165467295583519842804198817273269791383272130708099895824605477696827587488459333956231844600026006300075232136979570375009285467943238146309702383032402387234174295385008985391477806292443723148796795476794709625460745858415206818046254516297632706821077663916211928363160093811547424190859452062569586842524081013617272654292555412327405033104538924008258047041916919608514847352811854039146894116304340875769316112154053856774951609643360253325475994753414372312148243935156212213254218788194414148761739750535515812997794157302701241372448974768867296790060739148074428277710654426685514119705288769132872656855200854458165890988161654875830034310926795937886602620656856021393229825747997060901219327158255133595437061609493088355579262005833687342926039888330994817547834627671522528221790049716083347608114818021488940217674268313679414496167499870328916380331488476191877881923138637947787243698091909631270071592910446425987370564768653726783518989664011674626557245613031843459178600108020542403767625199519724033217063255204406766530201770416376477819797143916040257991973065936715125937244035763871784891362868447305961916315014956175129896428966511311690697421163418382048691425017528519341412963648114360513603809479406181984208199162945715574338201354474160167514519327851145605619072996995828937068595074286009579125121234509230968185286499878955400192799601630973576229662683337214721275555301824850969021094618274013278564247126716078135351250059170783970103224931355520255018492877618986707350129464456929633629236459992762736522778688949868492550074480386241155902543070415266518614758417361211717654649159848648878235066243383566049683837843734676278603176672339158285096800695509349797073177524675571124216890613329459632933230842271770740365838450165070851111148267693032156461379424250892801682366206288264351384764970033537590713206713135712935262947410435193075876578794925267224682604995608435186826879172400615611172316472940541184287505853827831486111902694968664583731602508438993898472039875821461602793076066935294707666253272269567733624998238559949088198367768011707728307146084619658594993181326772764338951813265693900432330168335233663542531237273132809413127664632163888452923166616246753869975401402166928372857937182378918184962740866539825105416470410837674152393694374549781820210478306076728877841439414639490204344655912304388925298616992156533943149833240840987340842760365703105462236673367915477303243703404018416086140104410521941036430356371560451818328800088759901126118369992679383529957759817730283692974206912164780058638378197153409142403947616398456574140209390661917067951883667335808812413915293609009540298327749670503241895836274735491429288611983883080447953451931533865236947181175916992244165062902370227223792167435920219995332787180869790332588132185090799153874164266614329536148985297761204533171353792238170142525833542098432200090274214727468778762833968082915693831819674119983341910271478902072937598689832177737467715938784734983284812070455011408427585396324188286591619590072945625246059282633046031797287039594434148369255438617891841792312918500385058622854695766544311820651468760272990272778684373946371306738874490698010085420389140073181490696754999555540218568982605880984417898938040458069759274596916114581993087084585410787152941317590567800609643363529482247488438221416809641633426495998004259678832203103409498397449094248145291457705441141829360676281683096633330939515593907215169979906966713832581234760633187202413886854575835429943620086412904748854305751177228842834960428140614923464923822567097611895667211944946367069624122407219618012415432977970452182082788873942326941676037063472903157939309393875997617003032962210416277133441061665155040819526660793761411502431649369212886633298683300140383798100917776450295198767402677333454824146857246918108349671126129438152395568314062951915343796514077138278504247368005519287200856480928865398261714260535966904503083655995648676395631831520146170728362269228720925874630642721601506279127252249628071917163302060688981417270107538647664272955085988235192946298318992827815457007072988922904966662247595353630198216169388471082375164608885293267715869855931073095608958157802430570641059700816858803901468889226126159906619065186084476489475917775625913596249014020976329648236625868428288102222154808810314490295517044961468301919184230322388943161123496180384852685700065481954038748039689930593717456586842570288738879252265819048140762080429908228954186118859378852956042587802030087415591326267783758240306888384919291217177720268632743595575992623067936979264987799633778375525682017513617878518039052717390674197113397055974563154947954824906999586647811048465714145449952238908607089970795792253628306800377344780309512467176907713827517044274917069494381166043138000702820531155769506920592353969380047945449585212943731764997593032350903707567394374095917011461404956254293212718156309040698232095646564602340326053515387015908736953764084959537331661999710847641048562297098885559397043670294088372495815750867737449900947430473013060025194098892721192410612382936703972403099432474353465093646219406235539648919868034609034269925650478519196408772031709405526418769721800590236050418693880656222150164028737711128477986038311103837619262412606479183776158581860445393607895085590807284352325052981948049614958370071159983259460661033895754353515779973861279879296497099493415835441900587647155638053667242180133013447196304805603100391391273817093536720598289291174007174053170027310402164378229825216322067619435157810704385904731182248808763895994988847572839997465459748030294561470729572522389327570873249312678564350764470479999432175322096620236183652073209096324406847739718861824410933660141336246920322283988180891629592682427004738023451577289458294688611860523918715576427792298733640668699535266375940294599531159100764693468440778086668436394773536415990801003603154814183136421762573879294140886584042717646094011667049707087241865393769597978248308994090986984376973109154366719100651586112213805287446984090831068106842855773528019359287699236732961067506238213708089999232576935047125558015611460856072847414569993323322817653712525495824736447082039371967114981118593504378683837062273342157264903522721851311633966556123215822043208369162334704840581084207004056326000783478384607621029201013222245019731988997942915058526035146673168867435294040835775508085090723744977154818678464120221563354871771493975106924400201848733560558037196773866909862215859678104648896550375269745576970488636347651684093385444348402068909088861962857526008348863068403678481755364559128980069538565715321560361932397598499980937854765203059367812576608257597922177681527068286212754738250468350303772394844399454620886339569211658066805072343830914283667009859137334090509877663773259472063924334963143478237238369451497711163345391158146088657339127169060545891699612963128645033947113699628015209509891441609163880839552614303412056450767264191538833633068836385835630385122842132729763757963442362799661019091928181898657733859262955371751042396374605429077395231240600812235202431435117014902880232464406111414996214907583484749210537156077213624203613538111476038264065188521357744096230033835655595028804917897741958375008744131050016968927692946918424023988494889435550551841139262500627121268041796079497901398494745100517739105662940302959591387522526378864267981905199125391172959715762080854321185254243544416782703215739046730040706124543673736822425254645639694038830272966385987308838358690245704390943440994718396923099824731140363873825436072756967582752930270189882409554097258228057313671557777271578519776201630710842723788641543432597143473188862604986311921145852334190632933994455091590427142418742978773104088507634203506023515178257037205025728874145531166015450270574861454212850830074163893303786441112596621857560608953380823779245529045814602917641497375700703065696525216375807169908763181674360255314219887585345246323812369957957754821005273538294818654275293033572952829895258473718375731083054569403137163123334454162407533916293182633620645880941189511724229748570515484570317496493715611260029490422493878095880105177177284651371162760603600957075049879243149561686795815053290935366155917681144072555132909167621118957608580048067019355625247170863734608254501068817512169666507874801208708004348995648552244367397304551153349735102330896478346782179578495463333645545356166074438708653355434536927645471413730609110530562748149769569513068243537263509163050219688931417094598555984731735474311176964546358189508074902352072384730406858564735307481934419327790637075998641017280516015537075969728237407171697989407582889386697453127163605976720418340058752173588097722177337786841130962903025852240577035500243399135422624476043722874439453598398209654684990873559724484309193747019672256149827035145916988918484219839416595428616546087612418686844678361694636039807116830070104400208749644591450991228670544294991816871056361181927440661810103179647943939200186627194019621034677525399822807554395424087218458748329600376756299120425268157704501741182615882186125370653944486309445860780065480120751913399968516748079050330639942560339707060702257384787101066827392192655851567053381216058845265759179738575071237027457453465811907846229768751784737742418438570120388865575315690278776188115024844789517496973952105070739259545746746751956845985245711389804623800891285905967360324317029752511007593387430211186339638407615091835909196322007706401103237649101705698654491339029472607636057998549262977899631225782910632521666617433000515554645760211573879136670154439676400941810802974595094746920418651473539863845497237302589821711782146865865680263276041014967685512419050218143912213086699334310340108801707746576508784025222291256604134160641310364864280214505999209137222608967276867834638366306721196987042526693342711046531742895187497784906668706350402916397960444811360654748066127329678096281499631574218925805301344919191284263385663712206603413498239883356751289578717485748372883488434151848274399089646910176243748871876923559069735326571414974434526425461474979484576353995558452781218372356325613675599698879403550396539350871190655882065715629451914676336466998345128437587767287762594867829764227816910828619368092773446718755300966468739208427823411532506047040944275094838263780162101694031694812710604265661986615138311370616533944116056658803110059599099686475945149015790489076238199921502880243930754136622410335616077318381180244931428143875968998706361979223828806181705217772502573184890737569714127601235126906334606640565375912386602622952487761992462236631311885663930284869762206426794339417018278100791164401850891397920204571470242513104461828368709099204754723924675528748893890447829079439483483257141727149617765864684605459925684496561480465599729810247365701205422003989422302968970672291855068237066929600323715391397389189835513154636530037018182064361000117998368901889869853714139322192756364672107023181930236222441152407197808698607684103787676716701255341155587227774364597054182670584909279072999993131316337695167975165383855850904399974106877869516460304954677083427714546182314743773546139124381784139080598203891864773795767944549827869793313162722876781459802990879608224262919272782141007467552065146980456811578671078370346526997779308077002505225748466553444355672060164502620675060169024115989973030751479113782991367561873929884852707295696251607310118998349575109418076624138307074593690350245805107251986136836467924915735336163624694577872640427128542020691413124053233969427731951508150779925582540751876956253997984878704661250075735325873680139558555732918313830280741040391552497780980423619973437848836531319276556581210829308082897551860416793464428108159361599164792925252473908384357472648512214488451144212775200879604676180061226807721191422152458374097258135552141897374274055517015103594538281894198041090111582289714981270495321241919842528048009904648829238864899942176298035035793666015400629515003045158217935036702139240347975112654978274066202581036835075399515885337835969514851740763087806176282799850610224280644652159901813033723933775959095899634733210686785476509952368950248009279787139201237854077190149435505896237489279692076889714005379225219277986815958263943763852974264799256622073390277805538936070466696249693746318467736580149171940444443388265085913791284280917750878905884724843878522074424705006288258908169838947744279896747516621967813818063449099284534692120847657122573385028513310679572036605111148418784415313903896981097657129357567782355896574032036092080244484587751946838512711456494490228819365112307718015576112409001771844727532091356178501310142503395108369563812513161801289205059867648749171908479808557970072158622942460646405768496069183214291053448372120222323978124422988051442552855381303777142754368225856331751388852498015223533818797308634193195592618171060507130541277042218680154816066797035995394545669934968947345794750832380188792829502403855194273646352892175395318289643830084865830942075781541159603466503718373182455425564629370873331010842721321875824425446247451627091178716300872509377588225622565680476378110472291904710658244088018477741064663013331382465925143568093088542223757294862784856719646298441044262857086118444912296108074667632692685395701323596244349889020332722588408283002356750106578471682998957997022408870659745471859369120254095451296610682752298125124979830059038934743258999037152074343578609602987680319804531250626008994272440625565126457015761991950849618706359357712007816334102446574438130390295763619278432260116243701291963936872375909887007060480106772119297232609597173819489677158543437433987603198402531862455793833632182831739969848417677562988218867016906319758945377372872193483598343864592185091868014209061405908032489453170301066573055398113179593623328543931100123483964750422656293299169456879235654256866527783957183182774639654043816498977407601523214253516460950480008760853857179442572010676404721859619958980203449773086937375633945908657939314255812413510508110148852879481502510923624299156398193377426344874698694335333937896461372149106451780189864999615506792887948513018528404138625458199845295270264883557544039920220803166888063494134661783742858686656735947403390998234470099424585349983852275025376660350478048554525266851172594715732516777093421087906786758288613444039370424465344423498987953321028174478809195189393659926771660594944910574989933267721145587793823114031926942142239125524310030464128677277145245025570728589597258931801578775670244900788052514291738127875008990032675747696018497303669993893899081028701905188275268919753628732652691632306171085218719531362813500254103953971645318629363554691425202947722468097068629957208338667412285048740205990156742581982882357515728807170284054147620700684551115454479237960728447510199449028263196241554238688468873974169155840481860811290867841642161166998552243004386239958419821529185889417626136182972097234483348116401140966078094932023938206304147383097261268699242756998044114879127865623173277248355726276981067280536983878985638269861820697392232123978188640585037670545103892107874173885801632650398517949315210032443255585268020059579599857933021614921094373213377957658204883184956208284432431747006088007723665719030799530885251179862907799329045110284757948167500104095483856476063110079205301456167571252434398677254800637781621810822608432923242048789923627399918740923224397245659007140576971708011105825306832263107270346975464077008772939306445483978804994627572899327234781651888302535099612955243283346865884715104241023350912745193578661128827050355845917952414668601389866197232550847011285800471776027414739942071866620796949962045553140166908186690520908429956527137721824184302400324125453416736915210940472141083356273008132816787827960550473182171677585344438079376495062893965971116698204788353084961503677622141531520716022121324219506992330376275285596026648637012180604048598460139798995908946718039884206226271121968539657427351984310226131920664815935088528607041671803731181467968184365361069857873093934224992288107750471977797617860345571510834823052832055339244393903386352091298420230686489397045253478836300594689482186591094051134028905575417616110703409749915032856909699466460278091487250903909320397759798272225954331424121464668578997602832001829000131983587837618623600590575012942277187513381534573264062736841853955381565873136510318142109062698775096480910382660337844980117781938495745248051428246354666871939615612423428034678647881018037926992687941836673759651615289087467382297248275347616785136580475589840625514341940582341952118057570267346264376620426085179309472311311135031164681445518153171870099262433958510424562632727182729642016885820938094827061338992347499671110322405112312701280469265640845428999955760037643448482142377832330754428372524744781979527539976790596978219456255250497626522329380688738286866996738753990194359394229565923116842717501906631746959333474317907637453669810694418609398146854539118957675490386351870214746891940022176751016031379301846617974663419629915274993999375079201329571753895907593066501027508295664563450842380023993280517018582962632496284698831243405609198502726180726076194353417308947101009044773490139428429705518947728227758182439360891497427138409051796948973744144845760849047068433127780387551701727832513146205198658277205250063261459378030922453071343683621779546933797338023593204741447258600922209520625049588080793530794601334695649711322916894244861742980954350340149204357107733097481504014793131007728413386441509776789249974789871751487172270918226591848216410553414593510011702010043012748394139802430839223297606281057560880754939300148570085879957601518430711096535398103415545710334390513538279175532689132092041768720314109206662758279613717735556649629815254606217778286812710651341819628305505276674711067994590252635169951777228368603333863062843316232131933425022763122447743815221878548197623862817076270208338380356966597458328004998542828646003355574434241652165967932870520338291689698772862243607288732733188291600494744673147827288716972391148027194413368985119522629453996251261880119086012993759054794894281042607932577287935607727983029500106939206993818756211877402881749485877756003757546524320310985602375664378826376414132543580061625541088948627666496526713455128377032567414988628350039185959122669168217788521957766701761653016390112330671922291652857807214590007160574184368526984708675626286537878241345742218786409698951950536957090990714844998090514461495287112962398021612599759850197798240628691755589742052379582340757726579991994534305072712243079090093164706462338358106727323099497884333109067172612359070566411884498598324360621173344763818308771225130813513473748332548530759540644665443896336061051129609997197818072956988344069006131259101238682079682036575515499013047727155144142772606743048079190679177818176227326177916366240428582754474888024037847181167653727028406474051018487315775128629051126961509082600572021914291340780424834732908910797954213774934181848949973775942996083635587408033005959093359183626626603530386157391647249229595703329368703622288220521167679441895394693993825685511265921781175925857634179653695873718320783636880261716768774190169517098010654704972760061874192027204447418370383235345022956067205568672879602019869616353736343224594854829444390382535942964842640119823803953008885803808679394562492240483371610184740488936042262098012403189388148665896928652766602353564776278745659194621415788305400947616690418307262965973591716040059559552433093777859428921349413012982046491891854651931232671541952866747085044901592272499033069833291224563251216783549274657336132789120542551217870692748161404706161188117170856556980052353311902792533627405791526332383313592955439207138671958896628654134926549120868090572041833602001580680138320325698124022562222172643204453094065156145128711240347603015664076047493612677680459427882005203569655733688921395663624612330279932167913392950688616536877303286173234600880183248709769353780066091906184697605047357902299491488291960885301020084904133372299344271058725755225286312248346375718866244392767280367987335384420234714391130006090918568042342294297104782672115137833836009393492780653213374987924574249722201513155444857940336884047934749647946437927981859041927683916618774693444136234153615018792132871966184316829894787497334969304845319451196252914174984844682978617688922531720834291117455844980512043325556652050522518238981530426941052841565182958694908846495108259215172287515373731632737854960123836945850872578994121167611674220861630013849754271485822435539228960551183434951278127782416295761741749709704789644322046375301501708620714753074276469006579952397593419291688635074893511835732142565240535720954959720753398037500487511332546801515884665791211729895811042767037841618176110794072722054168652447018292208836524261440621741581609758419928941044628486386477096432130914341097971705452181772609844204283111336223523902100825531852650790620972638361661312033251284333886834046672388489075744583650503042096628831136468142277584272277055958566569858620050359914314164523813770038792121119130276246621306942932269809443793408786254056374358114429918659068519231422647504288302203760640667090226933779835645219578401973405961465226931221492588891402432425104386211068895366505692796800073941265661957354294293762100946648252869093708474920491314362121376094028041828013591716807767678305888339600495643300466070128429752491683840867680671531649777536636437413200522276338961199028515831043902615600766467080469848182316088276921536211142452212128548131990169981386270174735593727162625470743597052602345016149262627845627869858285992843121029177278606251303047592681747427631713592910980012838521138539515642604355274906988109977186392623012472814412701331422738671290044729122872159656049069392658854535223529170491623047724379800140235688361815014385582442779126985618891414039182623153197919696972778267162033532918536829337646852353777730799035738428633052082049575912529756118812487482302258250326783009510673037416649066685964916630732206254842352728520648911393526790732549404215707613973851912396071345440155712493008641747398021330581357325725265324514574618685072652240480462351825300089352587240206191385031242003838434373649408737813406391524068839220314163075215494514207543330625581824191323175232076388324144161634845762516228144312410719236400523915094094998776681723904704328137546769613754070409652876312397654295590319714913731431455128710667114481134106374755350146698321203406795671540417261150181871443254837686069116195208403295080463499081850154830339430412606143457745147707064775600828626110834130214751034618062097278276892974708572092486189844670718841467275555508159532499973065200939904754723307001406683986392226362203674196403456077382916875215060086110423409235103836155551029846212803406780830149423725248578329649195380358146686194318917307581076194850468107576077393611355398889014621974645373566494766979816397435672649842697188537523167790945478678319839362213250619024128072802663391627731509486499762505226929991866881228867517875645341641110056153465346632453083244057001761808833607438270834482398720526208418217094730086547084280609377360385575952834600102090068553277088595474291458614416839175278415693648986606691199193232807805998349016437069206479339673085771419208570289774300229503128892864449982392827455209179385291615518499406462389834559894788455389479834228471715048117989622844457791929789796514886828051845565559742963682968505863607074503311687902319334975671859658530431157328736347551520162671697347826188491502918414031371763237506955187975564258712628693054310933353587763077231158094057802759486792208100259153447914768409661962312686229575121825069137719836465316703119068458349679173555746895677978630353810754176064430553429456389991870163527085759137644517955709649211101038023024210356769067355044987540261235136147587775726321277474562180198373605783204953489449067716514474501734049769834806317829765035496183153119249958978205278218024985760399295878111751248306013774525022622086022178202232885689194959279883316109784042489922041357835410023414806551517979042253993809059796696728044874350744580772596475929753881076272644641578549974688238556723307521421045122974784760265199545060657404861100960152784507182746857214631243347981827168006563808004345430788006204663583436377805347129559214163336997314172820939009233961064995934735125175642800577320333813626185504013788214206864753992059203345567441880230051260968130652953211893437727629307479544777921690582236901561214482697962314312213891520844705479045236919998110606906514604894163789967714907867347148943192579859993438731499404266861926186501602688540291949772330478400902059452454881294143778559475535539052108252753986834756971208182466659971086172095148942042702963529576763293568235918591838942073552211500160843570347597197761794963625487021045034968866970050071783114866595885080215096050467142048041671978146170111132792727668698177359591007969798635148147547766599480401184405563229123375350006562612235472883059650670268352393311380713733561737653397703088679042723208681752820375311977277092101800722002258233790437957412915972072665170612993461026630067833357474804811769843745672238127462558339395413357901777709398823476519113027083862181838211939316632137891150955172904746061902969386469471809834117256072026012416863710477836560372895947819832422098986038346957938978627664757022319872135106969948763167135424625422123042508660667666075728352099472631929309969001451460163484760345027790844138760139376761349521499554394550318576985226969931301351932673049067744529090004057806221130776212107696242116349551487220810677618331295772171033051657401668737482454330835889194737410047365239238312952869081236548571883596201464496912229472039512094366419828364302104977983506641555937670594347707027947530052635492945635090096056363717923078497892018558029234380615249050921693910717197085084502279998048293549752939498974024102507646563498831037687745028182662473485742728316123482545127498686915732317922742122570099033379263947118940878397538361778072014177174538434685931966788105439724727993950210241995003963275843439279306872563138827270870510119384771198062269706032790131737513748415907631742122264138440624807095358292756413864251681144902316607338471878381543887933958074738246040659552423958543114744345301386171065418661431972349942531245125851544942082143922188920068791300599176570095028722237263542800995307847130560448714077705829810185623900877833498890849104074896930819489810159823097770732391484427239253828905719132478115659053227631403232452019201038842180315788597835024059574545168757259103222623415818924613563453056188416026612238054800065469563548517924699035755585316718122528240251131660883286428501044793344941482329531800627609408583134361371181874920026391476998886867447194198111030726613378219823846917921475852604123396682403493204684121472833359597647506796823601254125734581263031605794891223571981416580569964844879403444340985811294810055855531955342144531432769017285512338369711713891654600739125178314108081293331952697360137101129490853295420058003038164591546866847724424377416387926324534910595921814222993533847372690230126232045896680783892562904019954078406442932110240871699004107401966422187098502976332389749349994327312035951147471313298761307778746409732174871425375348329488482719399862137223472681674519034752876866664031373011354878542418317687573067941588502599985070906380422434529341528547919887788858833879226078327394240718207589366234281591820477799999947837161577714072224199359166397211309168689127589544714159858399008995614027976741454475159642699738451408189607939958070012672693168801689152967135112146270152897193692053860849300419552877065317010459858995157241709096355996631545101987573846487940577466440027608439946808453023635696671350633192314173774746793131350770614454909972989923068971576048572651390614608199746245287095194043215186512459697587002249273714989704300281192515958862663143283061915087732820163291917340060944874466755900920719000469220504007189829612593042894838376374393332488792135564230106523318612063455030819745434936507781050149307348002490181861818839059511454530459339558844642137274209927869018737244799117428238587802954181311146732468286377505956396516803898608082791205397181569588483932891766529686306183170473101940618336788089280868723539646806112784693513487313010275134023708552747209736993799413589024587771308410297508034907874378803499794022711219214104773090730596632460380083609630684756980123973784658126143796304234789050622152191909237346590903317374724450715263433559157829064907569456241053736763863428374443445709030400473522103138821880370820749858994916297464886959988229855722918291433970431363149585615945858479357609316217997852291842403599233993093562344030111078077410410615398836640296597001801277245197595839511482564241516143717440662526752678292273165262210213921979995180349679785028381672414471754735130326526404178202180365540616021221566986371221509288388240149427952321147077951248832577874510572819998464606619252914062273803356598625487529815739898696766527590954953821557674042424613402913446822953823630505805547122407468735195520582913502268374615092910543574023627590611483058659136953766953394985852776715666661404922157805465046108965677455667790195240380654386500023274882799496281689527467012904797309783253411048482237997162751451432206508572687232802951500348679711379747439737143069684207488924033086245882572235296693841759705128914491254094012314482353359092951278335826821335128952970318201623123979751102730985779403756988209967837193793785693791155831401393305842920030976679278737276969000991756763257044135418001887782976455571641343575440953283650672298564117681089641903967722892821496165857344556908524892143908509588022984982608374600305302191717948908315881293170305260284840626791517257161002895310082914944659187096006268542379072231212785656147364461660220805005217201938497796190332509360110529431607067701198138952751052772979816851271686379051862773514041414589471985194013376061939883373806989845685056509560831194374343145543544867243347873086768211488269968413121909860833843985205832085884694803885230801292612067120518543751411847077329730326899026724720346212285862775678552129107084341664617779197622619917090907809185168470384197527319968461834313533660653887987963902911297785550903100745612575695574534434341105558051064423295606635443198841345824529357734760411096885012400180646454941226593910713620959700215657437001236019870244035668608533076996905711078879411620961750765598175798008336537809225346253494565737976081229142067038124969318273455923341975047385215847350626312646009833859541020075704113351173687142436071317558000748433809945576497985937739063640600299513051649464620974220022608778514580606084638985259381644708009101502944329522875382295309205489233890587469973157692236248886915620491831569990788739983876046929606171276538990536868607506196776435293670362389311220825507009453198165037644938039773145387166657066131866685057725850600242589316634047667458712993853957355513548012964798621847358102844411869127662365077626256280196704461759570453376127548598194871727488833227027628733992850192495120760263539210696554827387195667850120325303699729608327949248998438116103401781970189645398096960456389113790236709259599380211417167856724146878742186283544122733522821376592299583381813481093684852929689347249694399341976714242425900584457144418030064838704352726750100455662587250570729151977131844436952160666580956269971772999813670921400030221109359934183273857314878936804690443675857851604733247062728817805885381908157448180336314224913704432871158289133441845444549553735207972343726735235717133068024422304047473394966455312930137918491562031695950570220253742674341748741131858631983144809267953975418244971666480895119290919794924497145063970569783317489566592141823776613415998142431896081456358324120339538394332268485958442356464514938401886306447497458382241623565914822538387471675018494828002330503515548782646233297032180811286089046257856350578218503689043025474482674083896118189599475050977502919929967098077685548038686376967954923316659798079641627977107488503540265377574941737843077622844304985319695471803217256777116833965839127838520891849004236489707164388354977466720652155193139673551269526499501242090016281288316786437915711500101071415565103930294541641659310683017166507997210934657584272551351068456100996480746474130874051337713146581126902354927813214532899742521325061001037037055017388504418597286983385638076896176986632311974908540889903660229569767828718596175227291378854172734076903614621377903983141624398331433578824454965910165724928521290061841010957503461959389151883443486307865178293303069529717550431179356629543905170706477738776366643748787178680511279699065047879220505053208165431473063980965806705360750637540972958625882410980986060474063442583127238077538560767623280638865145302140965995688177425396102414762866207845170473626877281082854664528407106300496150132770507013511402720572688370370723554528940628400994720648555362571844404356451920623027249974829190762167609366581472462540914056629374320879674382344938106872204751314261473623455474561507672314673475234824656874655106174815585796131636784189771494966755276486030530857016744402307945597158173721072512675084681818491519433178131468031403889650681479512731929674950821377504550565820964045480178299000103704341879073085035038958322205195381483441304455859965047037807955875056892367141095837328112856041152795170360139472491741415729640450091483554844849042845985541684460623144106769328664900887593568390913506100556519449759162640832856474764888540892947013936109377004884375917236704942926151974088989085768344551825084309548766482525880191556517861706679881083721759938338146568310213383253772142423697333854349949439652038974263873585179816155401981183127892048081110321691572693109190678400008827048122058227300068060611282924375350223338683658972958966693455857023612107114948693911662352265825745832481030960180455378674764242448664734362769534768374515189307165795951867126870711432992970643901169479792386635064292777204221244119792814182332884520172102903212287522993616579193891294415951958327448538088706985577025167577810766781015714557985923225189784765844313632209954661163170052801334194340503017115051215160647713774979934686085243159543150564705199830976681660116934781643842113486944517915171150891425424360966133739022649518478908605058187574929924309324684949775572593433716852709219446461268052750814986564998026002054458513233411239579472925532200205820457000814440716358994744916782851850092619820701552837300101142544513469812602675288834120716563720704884042461231117551085658001938503873900632475510011029803204067101278708777668359516357419570413022185237299799351393135056436197979076617117410406175311651775702317435196473389930633903573957507033263869063708546424004368495291475660936184967650183639384054533483782033847099014023727426875041397355393445890450897562966859666534131368218252210832851492756988253566394161238498750011382385767300913996086150156189579076314922685907872356599128257596567283684896408362906611402934998043059233352274674928798384120641461656070340805641061752876372604210495435742477697614511213282879606281788357061679724769112594374357726956924617357294858144020068387883777522724839265024816237890019188574679409825209587621639599272100753966357749791831705666594269398839894267360373960661435623255925969156950051175972471904116514649183938532936693900702097128164393601017613107277418864396885975923670543826446613003653053732825755406259807753314274419029471362839352329752893073775832701870069852943740346055990556156431583312591674076276704493563717329241821915494879674527033296059894275057900058678836927367262682588948412872174120957932692349562075799187052920143077248459086404078478043401116029750755729139443313819035881171841491782266673674361599234508956233461344600981414531309506364938049154503904356425391782474065955159204578212353138085621393770854936132027268517778155068340785664538896797153698514518870665135792392974705425782344766548489193300082406707819591672467286139394015783009894933323749838210953597332884468910835649386324623628366096881602676567819491509983391867578279042239515758519875518161139322109954315891690452511078531018754201263465908114312267272135491341590406948165982255196919676357327293572444133205905880661622665791966698847857886231317505062061681721412051222035483766968013446876612784424831186108992368615541956163328408617256131691243890562335121591080326761986672213365273724703459562779125778470249683978579036611587219505352203789932519274183997433191402488752841888772741246567560433432233809967340529383501032137235752408084789461980367632255533122537964874118720040428475403734631323385329734724040498595504756013366335004893245643879361310807547939343486524031499416888328561229935918258553681110786960314126039987681157498260816816599946078481990095653554751639687664228333388857611125346608311653992677765582727693016762139603104164723894113575311328025678798888828099142844087634443902826827220332530898639493428615311379143919789527638814604826790161699365163533323429602665472474475293044852320453737262062154290236251782271646031660725841720820206385876298563482747544068593360280058696783662236960657690979095544779189868825159516808007186674065862787413792125903423702642735184915914572128504426150095152871947611072147023435847373504883268536185914574875719769531804323064531511337066575007587559831588611438518635264604374072486461175775119793385171118471130651703694625267159533376269600276443396020983876293791713570848824798514771859446121037600718838858392253670468849954067183759834854881804205214429418872234674713692706896792284302024605760395324968468600815707000320218523589642998160323789770637898576724484890399791660259149623179324518028271661453269297168577610531647354996122048524980573536209383988467281570482843584731179345849139264089484335440216106490865389376889019127828102879754987627213762634937931435310601191513316521033588339185074125087747944863260994579559101664220945821486511025615330917779258641189762944720870906541855826929774179365314528982636871776492033383256407048099920473526509965454029068441310506373026055655751268460089200042628392315911232328632785391981872577188943041763404390099742824485557154339099290395046552682097456523658029436365548956527867785347347038355481996413302033541589550175652845252672969657488903205753644625689344140311346358529144709700232890132642317494530023871397136524342214875712047757081867801579322646671531073336919075690977482703817428943845641961738949950965869659455138520561972185292146838417785042397629720521797387653534901782029348234389719768378142701597316856857551521177435984108720270309329414847705137420251276968456291427045009745841186929790726618057431114151231928650936390621616138907316587940616115081362625709792825268973832702401724944827070081210492206571338095034624567591889360451347070386936816196837063684481789317640655182664328085838513748559901079655459645691167177413016604903882712122422391367696943778875405654136412012224444205910849691287202062688881191338965586238938095717925055934926160254459426983846984036863290662392761922861104624423041433745611438922933729522295592095747701019836445318272634609691685678764487200977609201959897645204625593233213172921926270561645345109877032200377001657623038170409552779636565832772448233986216803170671096459335806518999572630395877434941044455572975291002365771545720582770424065583103099494725660949833672140140125993826211554845912710771176866579445548868624335842692357259976331407755609907829716842361923446732345574236033797495169561406543816257929325576201800741001463780671649529665559634018034908758942797271059464380554494433856189991726099171423233881990939023624850043704224588895651859517945629938797072957128496019730324803730978585466818105438623068990329216980121059709972928242086173609028180786289060688184888348225599242478610519869240192080148686343534079476249308936162117228526581975012385327411469874957205963776840071968702190557735890176786857978722337306698171651509678285991540841460089747088107188220430653005483343363293941796358514466143725630563675937322304268635310899119626476680040983721791088388665444487533857408635690498514407272414948093002491594599264956263616879797497025681713025290326164233789584184259281093195863875240977985593806705477527955088324068794589648813480148427337698300214290576255152184797697814185133466433741868731550272479333189023590252568752875411728887276220153569300704945865399447340847268532858821345161296416225692230066984992338532132179851410636710887578873138570126488529558697445596655361974945644807504681220611274879045482264414055346805731371188937751482551347421482559577998201255435303988787709031493431973198936049160869859869654107805099779689649780980953242128090086602462788443825636746994030950237169111543906503346246566504329816214992632259821056390146972545152932220791374633722648622705216577997866146724918025794045867624742332601081408415368052401621795062605123083415742072118000936212039847167957440861055905260568104036360331453373338150297668466203111219071222329633773684674656930920875185144969641025551370929769186445900076238360686449833786236579287390855948769845903506182864532293205610157282264522151564449782359970383605110664026858988501221426868443517284456575916774056415531546140147853429356933759185414580021493702493376390131303082127460538314520701749764844777738987803868855543730135433364233327231361640088157058103648334391492169201794601628451657531512101458868898458069777220341725893331002411232910387677034931729751673857320237654179966107425250856948047639190150764883422142552809153243504689762421024099100925611359141248446448690718074456611584820247684726437611644180854219602076837829024630230473085718909527171861714507120535131821768058818036209092333077058351492840513770890804238324676020814268697538414848288033945815497793019418274883782143424783192698999234460651295308975528581199037733303537524947922621874846636645930674035962376133996292651873515790092308042750007948643648142106266042575695434915127740770243893575563420435217600910311229360405992706101418962086795329451143385006464006316458865259359090199325172556624369129173335888190866441088726559831510167075147162799071737667258219328165599066782640074273193567157652265525802810077159220977630249718403216514498803258477761891150469435054601409909988187426258493738780746777900725300438174535141728324415009118889273690884462584968506227435851148476977772645563369830617507920005087853065354135594270488986462649984932741414530753378077614417352150147245142898396204025688276177836164436404676816136571445587426922925696936244586790821641138977271748305233361932127573545996959378173987651005465902652401069036703809501522195385078268946623252404058507566755427303294300830514310483343010680929266638269367355948042742445647822711489718228658977060208965469478112271573245371737861015894924558030632272701046475374174487505147384140935706132501167281110191852746974829026737911307299650694663540960171154057909261915312032344623048502850308469158998248286800401064953974822956315983587131617650202825822450425716698072991177422621024047475757119191320597442381175674268453810706721368945758467287236191738425169645366197155021123565644534827553091205063333051514858780686099715112936401422383153424478338542750560502764208612299247863268579752472316177894828782688489617092138630048362967724826632267350774171327792321676719385526177598982258538931677326126771722534604699727963555100790677998316466971866914077624294653286201059764382162891306169616081606872641367086115074166635121096484818396096267878991523758382372263807027881691353037493220060175903983846069956717445218906413262144905549160656135451774636015034720973111747743115529846466364637941912804009736624087819925284660167893176117954540145642365685447397190977064739389860996994943382051519685838655577532537543212391176734943621834791304946277826970771919443814360019431338748312447379901457704418060093119481055352106273809216237891922074046348045613371211281746430264589270734730013545878793240242640308984192614330288091098528057563871159040279286781301833900810320582363230604886907420560208264417781489667535102204838620435565556634889077552840568373911006099317906420829153568117586603761075891544600113900277770651236437437985497317651175727255734311909152454417315655643909266955680755539217302382481480064721008991004296231630078755773133556278804006671082141423737717264050321884776770401472497353900200641204583060719617060463518273007566331176531489184502999226024367753231241972373694426820185980807294995435100326706348329405008947957293532409454440767529017483138632882490119444177462855653605208568932603068987613340898004520440129205422279665974136492989603037913692952162573363257142056126645057355383004712538095362755875379173988814171860255216127870655420550282152810315603902612572088361718686006387555460651603337815131965561918427279837959770827066790962452967544011001788658064718093563139726347382702618641870359453915503435298738632857021074551660973724420349982512213442039513169574073892332229200363146960657925913688318524900939519746417153482214931200328315306934783701746601889737079670311200993754153350188198545027140918415326598546140195452138312532558641700630312217555493903080718456029332173520177692274494107292540555324965429269137331038787727972838708551716317107257626169563873340717687961468063831669285305451599311123106255565692287892271316837488680604947208617062494256387886870819831345795240023136808030846086172638492031218799940393540808757771614881155195635822060413385816116253007638925131304359006596098768550576626958426420475314624004811056562720905760101877621006928819059835806824457353250496459908386056511871300409021753959936750061596663454273532469255411503977990825703018696828612891863313278005277315669025872317431506425760047048912775447348361309336464031042102868685397561347919305721811146636489318883912151410131008934089670923190658099871381837374807489017184957557680094009460945978194238730808066124755080905450142054431094394199391694377289448037912167804461267371549850513711565326282422067443017634097409384639784290208587807591702767998404273885863652889955115433072418184790093960330887550744233695703659349506342276146740744109858517538240034449571018685300044064217840370556169165274250630066930328398212251318264577788352454985040059332215448524276867795768588319918759706270801063567646732675471777368244169624037372587877845977366645272553486780455753172978032068676623020922710538594647309626139676102118807002317872641255383475851491102895100249189787515585911075449227355870588511199182889720029764092173094443526190963864783448953324092868352915518581697265681142866530969408044734537337467346603163846234057769881889374578810553816203391378733547390577298267050663542068788639266204979018444724580416750942574194129482030315863388542834480282664175265175555394385068537018202326382347592136211454268881126945097888069066018902878514113000953845729708390140747814573081879536185450270476498360989402232810864159217116572470780688190772374450338329692271532110414044937568667563960577893550605628690250051529760908090673040172190831193264774756907939775781735501030345220554984420854967479274208382128628468286773871343969516157738614975410281928459788973567781433209560153400784473823459505003386124600777374105901360135932809932315591208818389317824866599657811911799202652652828640635063711230692877810585122130746238257230934163916291102486783688596931092993294837720097725313699439736595708686706861450239654151487876476079091144639946653394004641932468379815950977568200967986921320707724317205352022481438631354325999804691823416975727229608078779600835579267755606494517458361479410593823334439725383703215761270463783536828531044890581668919712312642418421569242660160104454669600524568505761539687007408161441176858071779325488387291566613255512901791037834578151336391034896330793266079239798884693356974004999418039272281435312310555579523752605177089671037832027358285879725608518215921576740361659789581169090203820980131719324764863385136209770448471971082810006716070497668868847501142617931052896308583689758232232943085157888844577831386662608463606403561555723152307349249256212458619196692617147124989360749872342486548748019798768598158005237806696928907886319909403564555447385613022436491958094831629978002410288525012244801536867167370858912296198047408935001067404009815550301015645856488635493074852858521299684567290020527656488570817548523010811943654774299561139318567799348960864939984041022191210380159918421647355281323785799098075951201985101690097271983563352638099076099633730336401281160516796804543094144392491182624828968820853639099633378641186956296246955158201758731889293170500433076339863930434755851920703935021325373516908836020717444029300461144892281665765549057856465836012899951481681876064954222024797859944238553983299740517243339704191935681967322755202615628594012602333352282643567170610586479324480739243228169720761056746775031980230236432275805579967045795759316831890182549193288700527606066030181336995181079861839139881299733305413583829900798002768412137378927966382113287400273452090294215440086951677967924700536307457916648390481901144970331890906232892213019495394543304064923691442485747430551411782583701127989410283507874871523717963239095290709251498107699177313275339601863526816033935836208397947573484252392882699236336342278029461128593335977394396120634694227628963598162701679878186153432260934892257505524591441426527954884575263258955057957591239678098129040779896882632172069032382184478072716572814902995763316424209449635061465902604311415793343453752075682575099250350444227621318037183199259809533461206390573670821579633473505316700211325853884731040893433522263315368405678835529294647344350275974549677452732263260403481656019178611252662308369802607334805009647094831775552155145694700954750824787800712400026397896613594321186936566265893803443947030474975310515655974270410170518284698735279923256362330736125890601282183895496296249703966350842845654311212396103288029702295915457927651013547404588881847431106421217474779218150901736663915903773536758329179577720316053726513672650415517508481534038408671907934000587011402347655116664650091631627429408538051660913932794342419040651402045638645120732463917136708633278449206176877514361426404462097005350939731813121687278591386851203395501428104808214918747497597060363768729664027361917743251911952035530031541763958052886313477982812927957971861035410921442006317652300522914709107906779645179784980101280501661413547967666733014232158472193171846404462897635179029371856771550422807767537029760075222999892278046326371066298782763497907212705933095366511416548562914806801983860695795677456095483891373977192360604824129339541162157564954170764699885666106618906004893352965117842888466410852574737908854245615835562202346728106051286651742745943943236949694281482470331595278343998586482754729787444304804075383581466451093343272163439267354018871848532341689129187307744490913814217626562429330955467453858016220468474292280184886822155363771172875108654974819357621174359587899164894314284105126814452598786618972311085040282527175123274512673266667231658195727356065498519459840556469621055898581337934755096577331792811414329027885537736272933610581443071306471536025214631341163398121194039291176179907109643215685684492006121260758682957321173986423270962133847781451480396003590793730503903076463283006408630001597563446944204891555246529586357017559349440893547137745872029958020506381267154364770018122310417779443979906120441676276844773776945714342420515055849999580867282264335352323523278276165391632390272690531340705865156191274879643792045999118176488946586341599418277466095580277297448727760424205403517099678812148840905339418953067593423411309376533524580269413507050892045917268544070944274178365982622577091537731488485395424813389421307895241423230679002498400957945693440073996041226340464167034303164460062591809637179346290027999915101370182687752135396549416071079459432345233009589407038126222065128707484415914789654412087418876356114823213143228740398208352499622896396281812702172134126914002367599614824137113255044141902661829405581228239593733234080319080471851778287970213672115837158912582458117220661056196182319132858873032861521302785245362774988736420802275715613099299992500645663182559769155878978843791565059255446242378594582116965763026259680309913168184191651409042062721212044957020282117504345727963671716587180402751966147924404429840466435717826806968857108782798878910212195549949086502226716600617770740722540630494292051019283375869184651529682005788197946279972027623561799413304672801831206385443582615987643487189352158031177542552516216034035325278800636621724684218509727166222018591073146534946873022760884152813337800328787987739658075822383618125182827636446854396958125265763047474147754128335748410479957915405088356430684574177302319338073646211653597678386413208889779930924406829334258826014646748904364270113900158287244741591418241861206855582120556660432367519289671726302715571646138500047630427755190312194703570171207113052765709626813849366456304563295847753722206699973134244915517867505604816522451748791291896528142777561433747004463313860456974777753302097636864371324438561049376625894171537034020397037275743528015047405284763377244580402608729205715364073011917460476581314180288809710365163642356204708170885330717777537605310377273822552149232377209868318156281145243968923599969204223824538493962985183266097356212750406976395619583736389585915774008657814111634028476045631325649388534677488491396538180146678319167075734385480991843130661145683284170510906740324550323255364421835354964855046953257754135328660104983985194048924342604425501328000440949175365538190824623381674781003438917277361115978702165068923982370371029446832342134241862184618024361409649897162290773394702585364283574724490626455867048607999921029095766162609825161640957380659350463660953970479977112611561309929150791306452517988623439490697243940719676118913937722351214122892479838814433597516583996411092844750360336045426592873460127055737228323062396862268492482892093258305415918254861194826001293843310013796018265792325580553164294878266113334765258354693893092688058365018411165728749203856802461880233371673233547172105804388303274055555626263837330309026106532967145883949187356516479082955669050086867470158951693511532645763687588312531929334889656975480709171809568099449799447585993742536784620429781059876652019506847939904118783125073414549536848997380476715504940624280531185029311940701828412972893505761507925638151695051956042059580306452604094895161095312637437808073862700315792089074895495773826401056713930776438591071139150291696851570087856313201516868353170821507969721590012926569921463109083488013211211856658394261349324120957534440286493151011823180395477051208258840106068272180465243208030764783648479314592414226713538489313537483578533966943530962435688415486048229570979637671497095446788571604583822843460415289195959721835091263642924525909602349950707906194971515236628684044294293595941051160658144264901221018747046080897975069970401670156864446852591795845756633296414885935267836612044070238827741916924026211976195771370659831648684187761479471963292214355313483635816546616807627753837969762806879950768922605206077876394115026452125193743214415172199208452993685954688833988568423439958667281667518551365305303699908223959488725389440430895416363935270462208008037388901622273076171325947492171681023818616029243465765853541968873740702181536329415431109865613787211399160893590641350552490266375999463878524691391294800153845342669869462347751352465371721528514329093310590904365852347701086869214997596902641642235715077190455965850779306885375157277709911654149851743047267968936474732218072795039576782314219314054813394134679553888256395353878667872558606075591606177812440027503314134929368937083179044772101036867058906778443579765991908236699593614371918121014372111545628440154938102095644969363249675051093393489807379204252418292196940336949979127824862224359820272938056486712721109128963618291287765682814235804106991483467267394205481327324785528424198293710136310595920804335021372104334646066861613534514253831551915590126145205340311784420059757014994071194433632531507722212343468387008154979787427949529298594975387673112325061973104044859288190570374945485751138091767407740845114934153534185393376958036294704518735266784451697582156888979249219702311186462229816111732522394148807577791420231559337489407942338705241400092518577678532827157275410346648551003551310917276884079727414565176870323912416283894691004455495186420255584866367206170204060962217623522135590853386218556783333601951829284697899627952727266913833086201235851425358928757782733722796473437358730029067844947652185066272466730003443038712442988340293875057176877622198401776425474864151209987607819310852957461939559880584009664959005268706419737099927156957437777731270516671568035879590077252689563281832928722873901759941007239255167668716157151709996781132118477452933090426625485332835289663330045544800132894306470957991199513871977481761626626875060020600018947790366345339374879959243573650744961635616038449747532006152839188870120811629956992633924473813526617692204147869469341550129956836094018892183394615642649302191270094902324761917081767627435192734372213002802431102902076785464795144122457160521171818731146174311980751905109621605162284986541131887147552315313832643799485674017068521532409895404188849460017777296863033685992789235276305898455179323536371686503120490652772395837716517862737212365630938480733287853651226553493676807303887041959816481380779217809182415417304132979873159803588477924836570116743419712166861759863877357647162103524661947484831908127762817458768157141939536259149458582747383971629380568575865407962564663489802895997117481681695394161306956796158494310897629715355342651675777457581822926465974092026600501604121979742793240336579083152373389951921742306197896866529093961260226998749111341830274623023822834656113377936525352282654603177542421774379023958272209959075984761591202356696841147436543133886780943199762037732486278176049220083212422113084721321378730274106603690973947380647067213860428444203668224507322666307129984062344732523910363018863592697699295159286707151172845509846844412949887649936258377983022554848031627746775627483695290545472828111085889293730896774744198714829113044804442087725509177108708121993345445015010641140859949014964302492891319040245290663617186232075180275468292307750798512913426623785230050238821768213295505581243150112457156824567862114577518602744880431674996899920932342150442747357321541039271622120295283048175679520837199453253391410578071511995838019200557728600280242156633310952168102024882986709400913247428485841297899933645051269671947441014119983844643194515209036181931618691553662343488121025714349109552724914405201207178529081033378721107738771767029616315640846687288999134679740126643253770039500928608841740315625758820271657402163687844159098242682266470161360564806358593441536651652196921784842903167312893183407463474282226333319858489369454907262734366120001801820351843194608223463511961827102526590333347523538853342878260501724893994311326993681859731400367287587480267445090019003683703916361829211947670944383197425819047238489693004946213616087675305928187146043655247927977682362265385713196541545225121502643666411988754451529428320280102301944949197808946878536883277608394010768663750470341802726949692303525553996128826239767699671090904570821844967563677930478076210895577830979009888300238078939685093742915522666936321707691331076301035595705658241178223070977610613871787963288425296666108864661762197207034536627934262276103790019915525760555818104349435416890715669737896201659171579985878943569206125848650999343087673032840681345659164133885642583384535168321401096293625408588937024560368570724782931377681655342354341492850676441604232979438820684413253336863981199572860416130529312577740694516793769040478463860688152531833459691633710345346201205293094901677119613791532627844741979421545267701666395707084520693527469205536505501000425861279832695124616854033878165151800993457258533968678297883656925498071822985887484656980154823602931265362473966163230295142194739993282926104677248043459435972549589294755479156891532517135555880418144242847772772495510032318123190619823639482479547949058512780277541058242878031083588647588736798870717700967801347275939428001732374931913336607496684143673677570126045930428423734823056974258503797248424893616865404348529514292668883394846838843244708603875355804493327376387976864995689605262850961821159265082745635096333014615529999643426668176231387556827111870305225986327480046523161555207346827263841299613721317428648553167776503127091370666958589648900096415862868909829669949495558522909855454741231636721238206095047277844099295420279848952377955974265375809087704277414149581021314592313562441919187987879474915439577128533829985760630265346216142447439084365354375474293851479528195348380792452972203693744528391418707473958702054003006165068360918964959981353599377656207575783167932988381832104958632993246917373478310893921429045214889994220267861301733833014770335139603138094423194025721782357795720424962460929142484947413582992646693621001948683856690209066761149331431569750508351473921007278689359587532933529060984327815762852348910772962781911910002340271879187088408010208941836340202600538432660659706380363077474810836702719155217170251993406854293558715414952585742774886457423811132557539231500437346749434420324473010223787726505698184119283173249316524694138573095554722949900135847376319253243246681491380855568708549690289261491800169524492784742187259126549967528643986742446469999705436215470441902300479664446112298055010419816252467186447470623184281518143055491047302888012004938910237304064138538205132723254650112811760965264466210840597935949105391998674014068860206681558371009461710484933526751834114388085773296096610461798242713879609442522681802643730074472258064501078935768144503615674145703010019648382399953795058221132551054777864884530487843753213674070272743455789189388528809047572157551135383844828754645408013349351621238129880946590578046155289901928277571943158236352276849576270844012736082813242403462435451323417659280936901159155252544383556122485341161780915291777462361350595656419385323997153603573539330082329089981034960939114464555972470899307986166821569795568566839666285673572060318948785280729489885500688478737576906283360580148328223164662831037332521354310502081770373708087457812141988783457485218867218492932840695136670828955535188425322661491923681390701244985637445027146404437914058206049792265403946856753581245813404616349868102794562034432440314955051670194596676608725279563749543669645833276485567324881582102412446340741661659825928549543201061817081051380562307283145649329975586751618171637062552378458133234783790180200190217865583575731357488917951159162358887068661313937824456515355729936066600100820588808946984060474447245298673663897224759626608954769027103130589899876625750614247639887010987742298198701008872830334557189143369289578574528454335244174323823719530130614016735530217262563534172842515678667497130270976817009108308994892300858055226803056798213025704890268942813818889021754647172948713291471422164656473978714460036095731906245993489615939147215745524994704263114556101372560907487425934429834602930155430581867959361695724180216214247958956484665557667456340861516531554826097068580628116311224653853530279703918493836548808363535078316552197025008018594205158901763597753826595517748455061134838559736024788391775528905809679823781230254184404884468799168939100408932775848956079956656260067101820893701067628992421101005467550470266518556017042650698322979128706563602760023340948284300231302469109899168509784805691951185891073189047894748168368067273317041177460003088904002321134013472967159622934054184518290792922508883941929729804663923751932938639512936337934032144386711781953663782046246518402684784641281264346180092129418999329081108633215896709493116003664542846961584924034667424778748485656683733164754206845330898601370661300667585582961300761295294567721444805659414160510108234774616163957477406793948818047055980937329851099419820498699281668507200513089777210289855833823941024773139805429883067490776590452036293523905228541863889487251691982514637411009079890445484874322745337849842683502845647587219017332984882223987712172430693086434317187187652753458861634044907297632828729660303429835799827978063353958341747939658737496218525348001733902208247491706671939367891240157032479656308438248080577858127688574103510282200863857000373024370377548181860108078023385190348784480343921712012368925327348042124372897239535707336348424573860160894556571133901044250693343776745007600172019476711235586444077087228790226661373670791440556838172001552279418431544950149849657210143379215601972215213806801176384627670718293669345230376784473921852685963206010588060475637022008272186217167930525247386493237356890586554223859044609720855160820444529929558075817914429908749905859231530538197085138674825292527621845594996452200344402130542397992613825945486460523272943213173520847671387383646509025209828056759458358480024452498702723730168555913867922254234642816215326480965905834994539610266159836215406334810878494496924308124486983162728542189392272494973748849151393058067201236619223976791190832193963654367186031829343586651339677599177730368928379148653276887033598272733777657845414155525942035223986303980434600674609395257681077787603963637021110121787166445879976740597718555684408533855952496771776559872016784459959543281098684994627566595833723806410806807964880364311226310740300207997350657255559298380461127033632150256327503024296353316829916438008803279300432348662745670658108916216063841302405056903669187252759763564002712416625103030283173687806747488697762920810050486418983104819402180159899926446588685406218752553491038611277676285685434903019808401794843022851309536594922358453422510965072304876512790722694479338444899662205315847117442620364007663627644591566219484317508367782459621976660930886046762779935482587039144377661172503091514938901004930473794058673619966559088954389310352103429485546699015170337792047292924741697193076716616991371128919680215991507633980698167536017955333136420258193074685439532532623949869122402923086101478997512024471425230184889435643814577241654478516183093073151525551443076318471174603243814293325051711166249367789259205024317068550355319859566405067285276997775153198984475305403379762060788500694180801412578920374790800324117780408200994789950227426629523970660412471446520187215199032824297331793326681765842862097227104560116944985370548341965563233059719747331290467622090829253133865138659340357974903192896072590257060348023978362335388819921227676104787171247076599746506186152312413238289860260656814703462462218486004908782486528312991661531468137357051290415432851737626469232010837780964404661768753832580853679957455388770723281350763505848681175539065043501276697936664526139038056178828164604426342718131614467070305214101408803956412381580056705236682079026814084419390568702634161957588164782031636181976341287904453986524773914507994011477053082650039908707159271330993921870539451081337956852904930701189249458633023255442234440550296913336246146974176116785159857909408260636978020360222021706645058937486810659087708760521883382920155114804555678227264245643336625144889295450776895917124650917246834207790173638603715122568948824167731417331955445368432007735220125349330580955373439464460145874119874024879822683226134856935969185977277332536392793867345375785244631474093698169266125309072866586991904100331918230377431454589579261495353422828830726265548261306045204035225496180315748024609911761276828517992734484524040544927574633263825198107993624748147217413719071946638186269870314745163733656418080940692232698764824267652352572938848191344195200818583407235900834276969242554068099143726171724381278773010683370450011186523004496115197471205589972881412823038657289006421758829064786935496408011511902052936930311574343965399623548032505946283266535094815644382111650246923406636443523512971608262442565990454492102936981247297697784297463913780364447779582828551714360487718324731261313313052985333675574907571245559891247534181707848674789810384592763547662605029349353250167826262219695795963412283773665860773898460419899991023352800492103683333538503337615204365283475089141547212032755492270623012243634140977248780266376686754100504554942797150925737239801350706842668997610550897831109525273290689665138235757023112720246332229998158254576636541301357721661476356140166941037887309441417834510231817514333659277370446244268248268899496557360741471202213376912110045091593102718988464198066109862599070628818164029825266755411494860096722476529938611528281010381290725507809889430328967340919244323300935423659478469602210072567249011530303146089157104950754158858137116906718654532803338252070590525181280811279433732261298334997547741399383349643470175494634715934749160880253501791813036267113478489299720115050538821631566742218957813049791785319971066290872143285569715423409483973506585547550721946851712052939137100880046548058104640883875897838159327022650785973379963970750801918522960417797505045470578260780833460771310798961218161820214614554734201496143471375935305529726279335622373425138447864237799266458992224133917112353181643237366680843431947473825703536540489006408455060096858178253014654431045369235337293525823626534375107253383077251702996314315015183658909122020720909262392604485607799129529392389433381818878942721093077347023751948380119783881435108371776982563684064951974650785124254790227114894084299910097210957457867673743121401058582507241435734022678355109613303927544774363307357052266820409345691746515268135043007783635035488242258270296139224631161438501969546045255233588603150094402780594856643111292760257236641929043106031054082433737981254799168370526211522969684685716653970722856075577058332823560978517459533974213238572915436431918435408290790510643901670469466758038815268971013190168659779604204876218406880057042875077172151781601782625962841358616822595050007879593779825465709561116328404630531995602202264037824520209250774006148758954593130057456290745630139065258335948006479359547536972695571424821422656273589059651856385401544947713663833116740449054879005125972171810105973508766383314542258538570480459028442878463827268579718866405342632353116490169707368600507820269296190334317438924194400649664796805006617514452288203166328974176391738550071852563202315092729312963043990906400648555617292831342874417937910021848304620752061601846924555913031437739657495963311076984664804285540885109676127840050936298046664285414190113665849581261361739305205509425311972514786087071723588355200290838232042303582887197796582635389529040990599907381877067936263358430508047721742276690205452440251157778755054327965272584407854540520267399550609756585974212475640469199901001344551707420180070958558093398541448511049572503135395485272036532998499909976888642480310834985110230861769421702046842352166635051836624914795526222479494348554134833742444675595974606279536681156276597793522106899030733411121660657856980929864336116652756242960833124759780199795897090064039074487602611394917500368869610296979880263946157703815102897985062619978567632193650937568670892122122913559160213036581362110276761943769633566715205948864293463404843785424706796821145113910589500661724738769969426380945557342320394075240260852600415780995131028388507418502549601189705812342308234542767076018743972868527458544425987236108172720164805838183153492365534623001966528968781475404406225592367515963906728582690360731957008696821931722705608146766363587276345277808901353381149975880934243062944811113427920207899655902814716180349932114873935719231912308331185177209679785843887837593273683638455833054485711151064000609610083712500980381971115390795350566272179445958273275858404285622204915375297698144628717709001353424343707261956174370163737470152078458213048059111474342751425359143729711166894741984703141573092215800290128341749171144863797537417939186465745551225407677340692604964728726123270517160775921165056560919297313872327498032883170194887339643285750367352885309986070295910320729180541639123155501269412612883427564527307042975053393254662952513995640086074637028338872339419297975226273192747914813483854712992354643827890213075251661783348114166533771787343598221393935170334768720701321847429419331130637892846762615519534604048448952939852231480244902533674237211826111988983826061560941634955956515846053049439835469229174369047571711018653085633199186285388976129690924406616557329174993396925063065860389486841158703812077692850879036488109611398779895526007554885142398399182490827435177503476910208287982640726615378014881182046229251746164790852558343520223656921625827868119087257686122519545153892935121094771022677840909581610494881953579494909906856971836186551418565419543260199190681584599016026826523745913352245350422941872764366253837987877891978755012228028460765763621595288259186320760850404650827919833287784029848699383844699494305175381092325856731961488524164140522538859847895239671423337119491657356871484984419125290626889103719274227768318773913528172649031982146783907404651232149713910259063362716724559736297257464990648678744529083469195339097284101878860723829346468477502949311661683180110607526675919395761067229354349176559350621496623211141432856009604943319192129783552807250526238729433064771013919283941481713059030136232179871818098579684165348527539759327096002320939781754072168439815616598089025158684304925716065560620957948116165459950534454416689215356305287289790200160283572887929851391813322450514723333155794272174811415988718495135411800559156993535694847875530213069413260657072058231255979271123436869667182804913805028272117220643823519463467430555349175762108706696349124037938880184895371686619490655905974525293456462577370247036058812447704383407757882480464215459139416322527479742116921156959979128699665209760845718304276479408824952996776745152864307502109582300522767037755077404454697020512316249245695349715926789869496345203100277847089722343012307819011633993342432651337155609284746986944956655262311476855607127478304377830071665036373998590777273248517837965902855218354992290265814049241315291131581964115308378138761648014127007065194737264817871518839255264922792429660207164462810745153040245483939192436695079003350022300601201391468482033581294558028718419013206774067687084683239597099753246669118385009536690381183942325756931922724823697874099000429473707081269113016184209450170834539120131367802519610211856010534040191725590933463481736955096856357454328556827312957326869418391078336208421084803882675424063846710823851822394509517846564895915590707180932553837046028767432624546125913216421699915389408217458182605845109422860284669410691405770312374473069670066027510062560893262521608176409409263418915979175437947280482155782416432739317336185195830075503639618098393994268895156442525687451512065800665057241527213431188246253353223023099805202710009456180521297818435046078496373484126297753247291715367737611855497300031605791531973484714852566139134651840087317619074171925787669336485312810155116975065501840285792878866641122828019235852999369798809533256174510782038341928779737140115064957662911977124795841103846746942490667075906905712299282493954767063472889999183449621617022527060019853069200478627189838151325219058478164954833302817699972242762597571235861213593282889570628366621234349544305741362312344081561652223626044132305414934646068756280572488403136146498051732376340242495687006809902372575935588931330433572122109335464018341528845633746645651897184118901826471078924260906102888689377765152720813521197582391567050808599465186557359091070463770345265048581667615128711529824951475882774211496196390241181055600320947855072930449488087445912353123917989181133420761471393941827171975423594816306111086315574006212570184098184493591208674887038339995116410422929108084914782892494999239621153676860874416745113363119221160501521677182658126532676517876848102569565494344735884263002789495978714495741751171317768482292341186034558337292421818548311414431402905656672892769141501258924464919151952324002325536368366140891171199137485645347635469521117918236397232508748221136967202644612866352718412720376117153950656550949583736948281436133355516767059302959765794287466194261961591384875375694290546713313996304861884986634619577288914659281835100306513732668219895946551115348780780073706017602256393741183811656123138001073461747630082767062144107618761508254111993375417238682017141377181243351605339481716796176829865770626392957618211439582859751734848446077053394941026087153311585501798073251339222760066817789456935985656498253962431229406192775001581302422594822803952315554293146899358518708630050436796906992070451579014577055936455728721550070874401272762441844683701553373937255516624788768783732338277272989490801539813454372261586251129980803644539713954968607598521496393094526379939289209458437681877926966529721219554918781790522139974506463076425374440563148335370963559661673071640452075115485992026107823160292863788676331609071867713121257603640366719345340717393050740945057889889887927640465485082363967126342363835527691058776563382312406738079485341913316417100440328645497393852768292958579184587890901376135953603729564718381298677998847870893331804939919820890692196860060515318022965901426030611410482151932954654307901906291347729231492010473659143688015986449714477242409577613136044192682902466090505859267954265455298246418048719192442867551161939162560046737676559264639635374191702301930993877692338334150498840597430541665737764126086551845721420915528015481336446273906782874604001573486800963270630600930058639200640690137269204528673858238659301421259168608557732920348818659500462954854010284763333907133702790533294294864640129762077972143876717995800748432760863337046555458413548912075367857317139933078036902940375241751587271923495292427185732760635644843598653118154164032045349781488846634891689599654456531994940286619364576256096342857693576057869258577014092797569226480252942353733008417710809552957707630985057451953048242463598657152321115860495602994955239655614145720152605606895072674133818232276547209105426960729416921474086364239532776688822163366684625197238045449138699461460762085513377779658356616604557492770153304934415168849890847655910677054093508441921423406305015603426224716383917882254757303870393183946533622163052627545238411305992296372242953915667768549228740669701465335166918933590578407921410567041980560918194234824438413175664979011571355881569170943384633448724120591786415109989957056513133767946560401262123036011492099708518189289721788292218995788048659001126637859297636697671797062101199555801692703680220903773032881301454371307886278408463078852736997144625269286574614670642280696436252571116445448594330410193393004173831534701409814153249210889086479259059267874157413241402828321253228130604156926298639584325384833462142323526382911272947673235516366799323212731638658457912543076295129662721118367822066768236967528406770429507363811074386233924775005831835596797496845822474113426122926888214546119715667421282373401914611582593632278556246549633979408866914074659840431160590188784774921027732311566409295592250667507231079174434881697847707034572227776131301240342139411507681442610453687122812643491577064679297386687768502965927143895517362633412946491829288399962972241021696646183225360524497288517062353574946814351615206791022887217692022973013176991149780846685806865703481505063312030173764637213755522127373332132990458569478307956947701757711084253129340590978182894098222344269171891036350190203606538722296883259027394651627916524618290841518042423562652478296195267341910080924520756052902707245872283455428415722787808154772031789291003764141124930519879183906197739311237449559243661055824333517820782107356518854136629753636199935769871998446899382439718425126247906172118656329176850705059520542373240465664360105693068650538742101454639561993692713779232704295030445155279094742030838936541977117423853169329854486196633834981388212011985674507874761737070077837442664049798892460794245123566783424702617339175747872904580912990758999881357356986444532838668628720120194697695602577741863831051128053666588624358446741069747938598136278293549718453028819647379363073426413544779111966166440139781231234049623497264500576534927199420015202084520996656457412306095175964077152091644120902128631092146066828975587294127437372574424963818037980524362295349735708734960808405252577307983383762925223924130101012781539104381158234608845408339674133563389626453064007375196157161098589419194401403013081562793924269554114024570675228564763338090474376965881930174379316930687589104684296570232709602739742779515162584863044800636121739523043946608694608870853285719090182358995684579144094541486124960663976412119948041594554402385395611212147553964158089619331399832149930826190933565548433639937301642520096744166586213725669045928786818786888906776536053579954257582248552534569545662796428681325190085161125875061455035841787013748484457850267317190752575379208977208123338390732909874529257181231068092831050507423638545508749902509067591219987580159554788078211741413619693960034893484077259600516992192475792925639032707572798396647915531564633918913983505011448072908273252512910054561839475480434530943585559081958272636669056854717029376990191092362169401145463712621330438253080123772713115763303115625258155362400450521496772467878992154271359382213857749193763988441281633824476012033125189658756909317166032671765578123749709768331653018138741089630603046899213262402560646404906161353607069212803940877213753441091590671557472201942701307034461156765602167464965122201277831508906831513279488129303183099071146057215391387529787317930511990124429237487191665642234326437305426804197360657008143749084551206891268177221482045738634131069891945576421832443748158068330648682870095900056898305307389328968395764008239653490349297520235276064835715805720392226866936063885547421498360200879240594617766470229597274772950889553908997464217596170228099790239969867290147751791073447888137013637795598783268206384120239940608424810806997289874823950346326144811491554462570828625428479252579326923276420389471129360240889325843011439209172420689543705158667524043501862281286860853918843258468043877453841722781405820265791361223733283528331170142124171029680379405947964950481465766931379750003716572857016889238662264944269864366257120316374331466661917222294171245453868520367973054411635925421163674650395139185431165639837250707465325588602055601362542535974820211547744597031709208618001639168837521475964979404103442553705016949159908398641200428867129206399436015883311952812097305126668630280548997860938717083121503476619938518107454711262202331575662062717939455044313144306474671883956975744672164051104280988095161549564986100075098983305744783998340543348372637561147559872276921228595491778775209167176062313828651977365167706416975003978534028568619295839559628010406637419066595846199014102446955363256920024995870389040227047363782174272198431795599464202574879188119048842768501551834875811416241336441549046581903129504155746641063318667196487259035587459155751645792010161030250329528380339615350771627094356344117670709660533195688813698894702756835462530787533158118738004915529903741924578685166094194477854877678834097836698685454584219402398885279822480323348219656858846851385332358715091051296828542192992417306063824617400694583285446302947905894743626393036816332340686690406012059495628139139470212479027685543391113291493710026314799744582446535250414014992944904881339880430690522314851871790289473340026645921266563793273146170510131218504616010598971138661074286039976755318385025047522302192818728300138347626752427298224005917678272491965853348025881826496077177221209221886429135554482655501545605847102709502180592302962524967088494367011079342909270798909335543354917398945185220713306269442731815209504008710414325604908642519157461343737021130486274457145152720054455757836804879481622530861878595610780938980563864309113803062987121299389686732897358628305605488626906448809219492131314513558207521709325986006610659512943265717552020509442553788297591917735017230481725694291009945228017403510387466782458955926547890408428649085727033022510078053817059517990768691917000015856581893206170937181920348735114366426531114318363634669666130093000612817770862310107066414216775817806345799537857156774504176494616679602792348687486907850350649890284603485432188724603668253818980473527774163819252779537098410102807384551418979470465296112545243248617805784409841898783279282491419587235550174319471041840136347416495790188440317567492305153987439655290832589847392468297565551951125909097731517427706212126941375132967067722903458837464075152282203551518701589227941840484856409345068293912202139974222045848436717986131862241879562557266442383261975833935557949243260974243699377303615933452613232574275624616173543577624297835989987795401891927859933051554701586419827706550903024891734463931835244565575844051880722619110201697176632307943785880279872231491998553193125620184511477280581101959401247788250856540666594776827016062363890864591774789135217176259130486542695714882281641319232340267835767061714175730146087485976280720066910081606844424113499809356157311887709883692442746703456910876675995289483443848774194190951918932318023710383324831973053543624178118562420829065479222396736939940605523071122637682307418878116616984159725064801011690149597302921906107656787599449522138838310924545379455328842540522422395524577993153040110581147314907448266157066449098217711952637512434942587068845461201512857111058434899233621833990864579704880151392330771845626356881934101987242074044108025984817968220698734412286099407373227286292915904019710261264673242099921522796285250028604270981411687813757168418757417878079760277347435494225297049330600945169837623915272417798525737493428293808211830048304742940556240620269607304495999928859116663538501311068233952490900297528372209855206996103645333161742965991076926302107773719644505771035731261566221383790851115577664137704445089826737906606443845242110447919484458807500318623681510003215351599495078546173428256798326588360049317135058369979579210443139182882806530448288673372174757150063394463712175923832834670253815703779577272591053082275271160970631085695340367830569743860501023424085549645078186180959102475274378663356021199627092725751055022871373037905356839244743263198268150496354262564218189679048931687656746922397130727624192520235860082431081009737416712293146346421753739505675003406862447367536348540097830177818162508319705411688543366022047312870171304296872643441281216476325676227782251714646945932749661114734016289911933563666836559115898787724086709869453111925424800189915630005392084179313912580191166468565747825777059138638077407774361193470877253503137306875605696521913018189516419840524969941700475953073892762001548250722971576193467959223831657890654915007104498199344071145903945265708195231831259515896353178202248872877260123876338182192339863315779352263202984915603067767203865613650053612449770273854532533773684446564546203933398871603621887364725750798894774502159841204764896995825864239523842884752476729748278670953176174065618173975506437826812588561764062502926033761302731046998181914668468028588443944172407849252061632060015173300794760532496344724649900764786272162615340831076779608260070250657169241640265659524716318858982190795441211571777479489094953252157791033323664263178208821625302446678522829851240250437411803546345926544355959837595033190016755610798328981519573679764950754275968992594239522589373965367722262656588942479772277201839212743813011964576961277224731488845751558247572432128065933953247596644530522847608866058705415893582701379162403847633656877650668131118080982074079716977528008045856375676516044451734339968218749414216523116319239036049701044521537498024250562253597832277324695236281527795564146518126034303493902486871239899514538050556856191204536884803619517626411328895596434936617106128822916139138727459811399436463529599851911044535514720542138204087218832541883137242047136158264671811351398676479538903981476116796744696224737314504412777696465622249869295364294573906624570546733494011678347818259221800130450824088847285931215648753427682826748486597696653209093282532467601491017545276005313750195908554449702695472961422960920075683908339758564526623898940959105319817229371058823159818400919284667827627924594271145395261503754267508672876643248261155889466508937271925407122511271868018696604661244865132885768810655815414077425780575329885511036001337027775320494641171955336100756353469518195709162425515923267604712515477631265100881678107130755781138925255941907837266564822870230782222755656574655729683587200426013166994722382787844618951193038274476301136371788608764028898444309715504202615459251831844711399877220980874525143268723749166221892491323472761372483071545571837960389222785375127748240140682271028312002876830659398665596667175240017312693871516618642027379158067341871147707105288236882906721345665276977095377598150088912984496779380932625360440229431804448848679038540823913591936698877440245333262743904981971568765350456392755797477650520946379085772624184083287739414653460507732853943897539190084047724819947227593971095053127553712401326226065592728781888878000786642546744190130525000098148421628419939951342523971392699380314670378394363257366217829418454780068432578407377562404983636605882796259040992399562611539956940848246564881949484841220064730755937862666459502511741684029342001348244845862520995745213756332902195684795881802137635437517371441603988098992425239243218711783009138309190562354185935858961305880751208501660302350684078608973805164037020277525999909714498330236369340015454521826087091301752675084814340602190829629910216554716781357407898288456394451577858431860609986516373003911319254953146249555056542156531877716218281047912405725380104226371303730170478324407335439071376766760145783246442365134880701700689908538054050046394452305936295255121127463147328956616226639764203478653457189746268855585052621316899330869110643532617916524637678258496389683199504481134133653669281824929936878010505550988244749715957503511323113255465827949968524559731059759570882315910717164683869175623166387410770058377115970142651515576506373839811387384625659270243397374343092454002378052245610361557125908730708126515503942298997884835785144500401458002908923543031521385918372742731583209692052628912423441752467518777682438905156191057439894525800555758049935652614953837091473707668658279355081032287926487525599321202760367561423282917378701577875999886632716285400842371540079973596534533417448333601291111541179757228916326888543452356629279164527985882127552625010658203722572665512439473232192356570950271366492545357312301185304009550643068960094724565169804738890744860559191054069248264277730602109662173684968829344661343699850454952196180249487992479451639172370968402391942367594039447389739419511773691745706889801596197028194000504899895347744357201219164045354408124624338323635531817560521658361884770084951284430415094510263633599311571054838859672541789326740763326841928023137831193783611529028972877120563232746790210341892131363465511363905635023084935562404957322808254161284250481886493121859586971798265489356084480046030554156511325072014489275327597802827873760811495610508354218909446731799664609102793998785071269379756088487645644881706092769819137188151322745531331301903154234622150305561007541275981040949017388126012483066171713515524153722527314494736718324017922828816786800430999099151302155606626998167011441822020202197317879296127517348861229547184944175974615778119811128845641500706283182218948721521171578992154948279817796527516463090994121010921688998621667304733955687655819331887818674135891989935614916623072613012516304222410388282356839906131291901589497281827705464078718159518815549839221793774287656196601003547553442467590008346071908708373365485910144342916985045305980454979755407261228104006041138464593251860683640695366327427103765041966103333552612176600456269786029747432317894239765831196026679217468071975424518198560783128825848558133724304070640492391675177534060098445560079033830033795692650983540954408124457842498902851291497739789921917620775432004157942300667565918607255126839237715337012474538944181979506480514319611812934968288909383586875641925788067434304808272219526930918249427775910552305853515312604813465293221697197984427830998925087393853369541401775329367246319429936110991456794840138781099657328095573710892737043447098907531755998771254215406107340525515919731174692123274437446503968566748560939315454414290903457365301458682314901198220305793084884594974255090670320947414637691971914242360631945089381922483059402299926995987011109962497080937019342994101464104083530422982493564924954752448597934380365679286363754689603479501129627773289020253748798064875963345891661005790772436414607899644450317843069786239669711395732127166610316608902520859168661218823921757764740484773534529220850226758921515670469695913163867272581426420900262975730944254934239241865491680780837005934175000618851775463071773707935614581983209433203126171088863360477353514378097206044888176885425627387612352844910978679349730729281369622637008882370816557411510825491798756109140275316449953646316002095752996874139059672494697759481069363388897657487848311238300108053943218649725219437965433728405160580432755593874371254584030457273311417277544197616104787724900692738001937717127611770544201440491983493655764539387582568197023811846109327993878589321621776379128397518700168896837985320034100889024035546622972185395383753738687316442912615460527013895763628984129798059879889886594307868912283712896674212423949552961470094187854091547043813119567271777294717966428181662940611721798471912372819886082136291989350283844169208092127786420513256151281255038797497301779655648310736012942743620485165901758536994045025338887054538782632080690022465792688555149950369518514296238164755190124364259634512721030033241639073640051143644333942433901257280304842813870206315419813158992734520750681688448176498699068748548015396332684517220882881020925110123820279181343986376197130100551173760340487487574967567674786700979342121566057653114974879845216014944056575878825925717676786819446948469180253617906817830884558519177879776910261280197344446643810243636396075889588298836901019105783792854823607364429302793910250808514104987174505772983600073526208403722145043811321599042235180341693688398591348029739674903721607999746263958124320127045094874288124308829630735992737506487136843961205508531718077356663882576574250282344754897491884325598100167926164948236355679951493161654689692561943424141759051132034702343978506780871559736675668300426886745684422481932568164221333698797582919875482430539524554493694373397489002785491793404644248525938287773541170229289746488178535072333215410802884780279302149768932543660447422611684808089267913973308436712215967924794401512952895806408623912811090721239163477426437342818661639368854414839217124085060627520413002829636851204443558320279005717081418308356025826806290229407422543534837798999682442353993259197200230170228081529984608580400112644555817261059814565168492789847454820966168157921777199615921272111282460119494073242689951472868760453124406701366872142271617464666781588198335941931061656676883106662920119899237953282406503113750591023707294959901067180001505721154220079169674640094532568672841373163837824699936609318516315144109525409110550907742531999048015353162237365388993922439298718012756545496446791550597362042113180985461618517651480025125460603730731684972573615035198150677793210577352620307883494036034130967244206359376328538589866738018319566625464068366968281932229497032999866063693231460913462573734564616625779669032667808525638079898055242867293302031257761526708372994977052942584669259104349596696208100830730165596973408532232762698751970571357571935651175207319835514584986198887420871132234726075462209520290450817452507862976895630234854448660288589546065955899579375127247206260390588697822756087378179141609916870580025936528288475064834991087131517298155966885720774463041800920338502109610670261323715128203814484155822606746525902997812431953699162730290920852275519298260361234856826403818849546850863031152036780559763835554896157344115617317584436579259956652392879584839253266669212120078697303273625457224566840544063037627079402925694053500053734324481105244979454866176875234861794043501228874343030519622070208154458835043245320193835252546096052292360860637428482883964032452310435144589606233582944978402892277753093332682147447036036259356198104539907126677772566408093334770199051044218464333815470602175663023446229542713783040825743826789831756919397102068058550136734789832709972312628729097814907849768991319643943726290438265778330639563498119239478037657253872570770918764511890982164424085152606569576384240347246302939222983455940103237395685150502306543344993073133889826702341922449142243491901918862337409659163635607745894401776937985618812520591881437317718171409685263928937606985988272411452412718489264358225223873482691502163351659664665125765215096026641725926564725032564998607368129372932929449627375935838281185854154146968116323165073030021284836065566115397041617283575346074052300571170846715188536334366376419707644433401566826962632641314847330752616338452072094814286828454468357980018128907643272502450034956863400102718563820251092204548858388972332268253614475084383905261214888529137798758331886848637150209331022877802126088056605545282225272961213384793960804671268491967825493711204646771616338090059058868539556171967660031336592146332722973295435070700325429805297357459705658078665032296962016483210415072248193644370037888534924706206916174469236154390359614393699698061817103168758851686279972261433141246920881821047844234938145645574652499537350790171129913175552236545566096715636883248489781961350022767925748839039220027133429395873700756762753818346086387236975095175123256322678279925680081117683727383456118763345915747316991328888761847446485544395912902962003169344745677480114213901809743089549540324717152267216805255409713581018678464672103162023823209142420894758680283207736489284568612043915253363632944135854128160139727174038325638351376743069010554815646856562228756172554543274008473026924976935652319918504867939839664658587524104111526373721022517677237740087016023540843766159713993704189354648766038078954036507541844022404922542668087371676693277098251434854915961494060828919603306761801871640644471666327497826065336025192424527868073220428684858233288378254986433960826276217005705766353474226691300025410421846152098502401088446701663579658656467076228378821515905821482431972121127483572691076674685521673450051740131542766827625928575663545075279530915458162099567038491564402843272113399729422518841108999517931637059290335741019566082941636918289538893552266608378553047830334852149377316867133171442891634793183299356092300893503107371634171853810036819494396690471016094225969191597982825381010304039470643280452000348404230852396207439928917842356894546938503422364223257634554778676682488986112142846037086391795101762943207343089580808747347065887085755657302921520587079994784216992573078924875466012133754706137231987136732089579213446643831957371652279661736134766704946172352865187248211458324400165789428864169044656144415796858916155244167491453027296292505082055736728547121707342983442395863233255198865749789879909354388780437321733909118654549001276879057692714633266285652538258250452670146143846882488323337241913789409769332539430818208786696641630587914935651188665872657941047996988139190832260184700006724804602903511746772799518225125625700136902954960487640870134243725074615991368602235810704625514477546319539422159005131014826434460039617405648570259306481055204418626670584000238274854054379053262911340517693478874515345964303273008858725422109611128109703066049198707062111287671714871586141122477903038095573046155021666839575147341146635399653201652431753725536110079484685544934706643780505941746495244441878611976445960658693958397223923652589958224904574138512936181445751829826557229938277657457033853624125664935465427657010055209802745179426518798844021631345324519684497641701767660551221168058522156729664526754471679439543818338336605761407687773912388499596289039657373080129830390317860260009699125631338777359039595617499574348463201436289418242335829978324712507066104423017545551604466552967734631857881925647593510049341053520388702469193704131583515522162272248553664934267618602489981719774118754334119003303296711169873529682856024444669933483182207456343153692001620194017727959041223983674299611150673185007521128782606013271340745951272091577603966686827264300560083892411401146971057008995629168531920723308534763196355756738258590739385046140582605703347431925286597632767776713140797301712144785730668485761523325988220708499328202288275726762894609151151655300652886885105366113681751406328964442687026558644808276442994159336735774092278884136677882597457446641628897843396536669386343080272657124633255023895211459666766317726058819075093765170657801817272259015627556584420568348983071858220380113366727284113144366781466821809484055695771113935524284259928042561017644427300473375127581822034055265400977613985378129648029719513885653580715555282571062815890704036280550853563712951332083287429698163439717642335427281754518190948596464986325266935937104693422750155250663103784437772625356687553819434283535138599200686881811650859782027200122113768303835063141972668639455203612701182795584685484428951274897035094270421655122555456680382806398740470403752182153783409322423243590885406044356612855052334723582101089870538269812173306267312132116212845440789400031516108908883207983124247111208320979198763137002711013780405289429853317011476668149494755929339178925245898107229120581507025370833107013220329946697009570890870882420410320458738316226080086748136026936620505094992801177582608643755827314792330433652482514674152896114379282375239182669047164617555950455179258191735352783982907613704512753810364536499727681702801410513627622746026997146288834637695702903683684444786769686700877632635955161152977179053418384886341991630135506767426425678769853074971614889727749993449223586437397577415555637525005031124958142393530084574220698646667120428825882990840618353567093135177403449778936435571145212856400160955409995756990821381890850173253730940057998439962524891833143365642988737787010058248851017712043004116664979350270039910036754880560976739867999784805546089667533556580153738778840404133315601198774618990902456205615510039686384408384886602182799653920834153733602392903702813309853622423154115406900427835684706800580039256840442916963603615912433561695219992177239456374468185189035918241341323778864464837233717786637519798927840003478257661625849823542940683780389653552693129577541390230425703736132501008890238482482151069573087347706862517442371266518494133445380964204280149448131811108836852873551643392749183147912706880762459178530943769941280101373303543665998489981609223647190144696149315387674510984374442290829597196198853391063467093305043913886976363006753684544227177941380738770370666252870746677080203952811197257311531704614803282700610650092460556208262731025219074811808364009519027834674351897214064475061315184840310431655859751238852512469663883739724303425137501015306651712025736497655821317979064289896928398496504821265946060278201906878035846223370879617741316371827872158667968718325161566985418095740503799259223277964586094149186507884046193831535000027351418665120032402980471614367867491739629318245816283011483307997332139033383660739056771370347338862956643717444912157061131186348555139477721037529315489917590744679367906130768411744639964066387211555431017195185563008824200765832724808623110486531546673108403511786290158243335042413148094535778069761315992534380434430177738237991079759718711765531412728746563505259964302573354209192685051098533456593664824704669892111634860598173978547738958975514180847399570688990374918325554284873681714910600212722335855717478191961697554168377284287413217801013042958858974138673486355263245070774353626317090740974287430394631305847196391303587390960135033670954470508168825320423543786785146719881787071804930077006428965205222333074878040724065013111294544420260143044606139300986198386375131661133552442561341568268920210614713507571209581018497931029775912779259295363910345487538795201384384081725490873382159898663968032698558618454776459545508438715985658380708722626495985191811913338328352564397267724250455888914218157029098210132996179448020260465968053903904798625914422597279245407164909935872890701766584429441220085681523629341654046707255256734441487513444728890576696523076330902538161393347116927524278845253493477393552831511263580892176637681471920590341456089438546044004205430227468753426710655740080097352884583085738591795001932367503994315241803507434292475059323308909842119788509282788516370707593383242874499449019729540609782306249802655394637317633146350138889967513710363443019820850187259393663929562445816714238686241122366800634175621713684443272703352653148748639535312526258859267166970936299169794358916385710055444603591322703313547637212641712394220184764807640390403089876529917493994860372913043060093987112639970098024259822352838580372450458441625742736621977147079306000959406125363298053969853262228582368142589457679764200765208362103275736980387414248535655655167671518437754054665897585876517151523579172733839882926940337115391359599963470055220179854819138525108096145574658897894088950377820969771469751466813784697068603621681384828628968836400256246130976680292965591263080543714409807351303577385988533358568086995518450578947518103567997543636813570189006772412263783730550425721698275607125528332414776169558604435687310126190262196958150126743802258388516037615820253267158202773074975013335893164736929906344742554332086635651413100182050104726748276074814125051657779303017658389843711465243243524780662020151951949692069984358449474180986141794058653884734040420202269900554076245468497811686648338746926351103659649985568512737237044037533173600742347799257071736858977443355254457613366062297974818265721052796614692599782493916206887490186781094737856397089069965446879945125271932748128393996774627873360609845194252291877632581630412076355114125960223227511512205181971833918810176786303665484673447175823874384073437762193790616366638041849685974114614034145959432062455646155658689540439797547027134583898376596771643344608596409549152393842202448494194858993514584862114794924285482778116272299872281848142562480332325441411351467390478988730948935131720467345467307284476114239317047997567314300823134604289659856344866038397659741359173453280820797651333068713508916665980054468530230929210546017848956466543336679447334864272979461555522233174293877515838786031819332378231394691127568261847739906406703951609628949814415419341820455569170797049318983831618227679160148907485899895319763014756559491943233766792004810986281017828242056398021446806201044193342890919621128623070119290238528327808187252555571756428642416227585875424764788691465757357004238163706153690293618241816133035954480099266056916407467035545673719685870290809574001688243757094048159917561523322449734664377487048139154637748049760958157972086323770870784125245844045656392426552642576198772603738923217339655132810585185991584366691925206202710098416546200917434575860808888780742535801785480245473604101267260136527595671077568831902000840298717870155173339934345225355034081806758331427144889740312187378099382611078858631809706251072974825062376541056884942522971051319670460759127079888946031765759466492350520338344120191896217054466896111594641244524288015157933014662841187379870178073301957294883818876041072237554080360867969344647898026390541147521906738744637951063079450465711901718718620348710274807087092433281163071547447959542447821567933184689162596012141250739619283350924440168014054845681255859242314433908538825289573025747065514808765993241407266235957683976614187739111897207149819149623645061468297540759367924220877195752167149476500849556394935104721292143007044349483457833865162019464626463124783264705581667113402856051253886424924782755558732508479103719294140472436278418689997515603616245088537586061208050037165390345641643945868236169005489077822819763132447879394646778314444490871977885826664141738827234217978881211281657645626256000931727443960114340583596205152155012341817297932474377196535960514836691859409438581929894110214530467457047330355102563133964121226160279429158722231617571007805404799198393633942731819761437828766754056880366241218722190568331524947441540475277434219921807798720926972385930078955722043222891551285502531152300276980721007652422563254114316802965594358552952915210443134062071455250016835656112243064929602310482787637658397026847579834247032664410103570140844183123900118245826382598986814749917807273028678881887339329542854433323404817292292576576009082335504761854527884038340160803626757987513717261650643971866463156703136299673271001183472646921977925520905546682506687857951977296981286389559996871682595615975563037595721880804082459722404788773413623458401207551856765114047520309540487032008287142731129910249416252775331697694612350906176105442864189144951967923759055065488613356551469323521855441991075042158346153848432792744733524611969248775289530930250273025283857903013384063680828126377086699574713745572309705023282428093493419223940256502579635982962986001233587285750665121397047662747531861826361035421995112580782172637122666997084255997429587304467076903998694881216398139086970217218526203996380228645247442956630673268078648903025967416962270419726393929470996363044208435988024870806446654543399955638667380679155670583076733815938175609507144065361643558736170374985616037658150266888146186073581043919978222800125239669644102385719700887367806497666538180233023297681252829626389272459155605274471185062486216901601983310882453429897952320838513578250830438784895887735108044297264661064426881454877777187281913797441254419805268933255880501050476097209037977780061487914947456685631486733867231233827857825541208590341415108983006371583325426542806076223797790418382286684312271583585373381454618137313704814551896170573788906987157390834324499699495881001836118344988096847113362317598598837578880663728706822292359842250895466557710056366165104313593173242552489140846094753274714135601377163640988319642129275066977731354027719786332881992881602665611595519740595897129176273634155065710942247746116726735529040938483415828591985797763176884813962637463768638711702288082892258659860808331113222422062970605351034352403239669941543127302826703758643881842947852748804623947455250346027765105459257774778106849746477068421680170110558460267603080123912596839926468110150539967869224274354114176245208210339638439632519523033372393796468941704104985909855824881618960719441069674470814455949239633650103248272131760246876507788029302090481854958173689488151537320768246925326922217651420432989650363736761742949501006060338850700761072227098210848928916870678878103636255050065285725125877503835033114191848131554482393480439330297754349724922900620082713431304532169636760268389825406811247693715577597922179499323139252804919545698982144679490518547773230668515475261993318064614947158715783391262737622939992488521164363968112919485441778161687912586433032151120116151199136571228988245183198457545092085038238217874844570981741964992264526570074644834254830393055388640676455561105450908662711333764128789754477938144337936041202145502932687659693300523223289004337921763342556772927068851102803077886689119065458092377292005262040543752266433656774076440560732987240625241764577623717003293828777242178390360228226123365965429234604599544221488035781806520671406593175163307502701639023833415052563718002738710135809748525382231876261772176686007043091785426779492849326295680699370645811295298035302968822977611525878687376625823894474079243139124730749944596357577928084167392766801440937535848145862415448875524517427701679999706845750709125774574760949798409832500891008972802169292513089355452460122571031141606885066419950929251908157598942643373947688073494838742962813587559994859801529927232327326826919864532399461568730179429666340431469326806423420346685307194251016659453739383040774402569027433488289405351593638037933528260995703751619304382939683283372465282182251388014630704860235948984865248104246552433061608861404906905825226158332058736004921928121646241099743678912139610479378696141746247788434168424949905035965536522713043261453903943051679222688297821476539602962515528447352852906415880352610979321317766929328163687709600010116684103298311432665227504768802267155831353266726778350728279376530518090123319731650175393797847559814257421357955617115960535860333315762356192593786172680947682431006136373205108258893849193640523617801501274731374909026224211235886072240783111373416956762659384327035103802245753744201941567400470661760176603493979815343871960394212378843677524619495437232471113113700880947398555199818009950468752241950908185541316141155849848587301756307711473000552411820288017941494836704733701859946695019044091000939400500757000296438543731065765906761906782333523745433009835852685552200186820536247684675710090389024987050249798250046886213833551701607475383029496871548532510221537307895851913243307036452146732347839610361987846675450949643054742212177947345823071710239203389005546311907393874422493110176929632624142868062583519552257501094340320295901053799190478794851581489638582845575028411852090176957513854312710923964399352687011283124854631243422436625330771368234136920099129066636111276105999645795944921030905745245461244033540154771426977425703924789791512752173357391558769444468031257499169393350371299128250467722769900581745816094736165970186751906475393917955137878699656152725894809539171183096919186935172818538729166157684346286539665545195303740947492972988989867737162909328130986368871252398626829747376232282128493205494830756959878107428682718547726565637572767164500164168376672073133381243993771295961898266796224582835510219737816222624051085492376186103288024754804485900245462695100816111979831988523623903535260035713377276926771262585364654152791196554619162015307307467279122158864033998035460566749564581890491828251386615121238346574029196656440333027131014438046201538666202578425941105396284879420594100651682664185563020006790504828484347437832992951273500402897220265034127253303764005866747287396692241348015729299327644272725376599212406300898172793187552129441615149291723810863963030223253785655109746197814958516687166637423443613131981247511452352017384304049479849804333089576292960162378141108395760597526366744682004095911828221376342656547223748742645257075379318447156217388277344178890722888819353946227861329989739499521354244070444639582658969525607631464307411970806513903036673945233768812134126977596960747367635274799967599074296021021827862225505894164446968740692971061380114326110276193441901214715349277146108817806887322493816078439863790474910685044498970175900907412654368965174919372447696455487917230871754705645515042840624061674686097117294566485035972138450470168220051633069098913944031155125568773250600616046146125906991351417705155436723924373534705703631328561596390102659002165371810978389562732846309039163850332342380364932872256952518878562550092037220557273978138397924809781024597111829322680967138980769490582143871391501525451076724976778695924162446949318256066621364850560542720857897766072446685440504255954725467891352305508724574485139419594658085690610787510631628034681777952575698218182794557636275531886383505999612136883183319396078455593398960593062147424647168076419840163819285705274989379018415048577399992541729345755039879228424141015608008663489112549838999414293507624453838663799451327880029819348861947618223620781784273901753949663797898431411234314984214237944674598807184618845771067945488835963230324038819761623390094279598035051011990720023905856683272865503604607460152672670996469831877888686921634553076990956801952903743744443228105583291898635377312624628510386444725363617227157436452038466948715677068685646296221662043039004277102356519427087474556660705928601666626387451187650500658505918586396760366900132012039664674226773004744368913172759846364669685374860055699547533323153653608714971887093370507706804583187493896772613325859878986417014872265398983705135509892272044479656968167059443247744148353288656572646923581151022742781555846445361813714846453606207751259853772544561977087570502837316141537808983287865883782314044703664747540199378857138824362474201287884408512277136422799798253312737189928499214972422366285486913928306749755640502055264754685271152598004862599631621230331246541635398864778666865322092907706783764478277718038031495203557841526577725466125658828063781289721048827307281661009078501381716370673204686337011300473208074055481584496412997642894664555842870401314262371883433109161598300372030310904780436449597261980387425916962001139401395633548932416819505995507286007428389177447602139283393802733823277051132615678834190328516094719991297939876551159185334638559214430702972399195463888706830187254378460954580339258663382542148588951007482452252071974770088655156072859998241417568526357377525457078921167602176266882033902881744447086264614017707906446546968050503247899728965967718225405232831606180971980209526860159902695489878340776156894609168764098866730984859855095662149492754773782232934376745053339605958795194076155325751287875856345186954789202765939471850938705396746311068652185430212812618407156902185184392519894151768983194094823874183686267975888859389521667189146808899778248039248599120128960207716763416854805854507178986792680704129108470268359672300300040280230432148169824698078563245252870524927260966546626225829143646252258246110710760690798390202057133205103762646977078932723572516368087733260111970551662669116767002863928669647357497756762747892303380572308479803553931887846603336426050039853542308776101332255922705485059181495530186600447753671191624509667195478278258076435631418850368019001558634072932084897633315904933660954433194730091546806963603813042814078356711130561927149109118884403182407230810948495033932558674055956284282988250561744584302255679153334384289605418673168947130777714524468598949297529011200070214647692682883558142891098113583249725198206829751111133579877510976625367828869450943582866413928319494712809101524113816162635626902796627842333494229869224857039548646032175711521539405921755478302074307307020870990755673596783325681327094554160257401712525271328899062999692645500057463133036747720848144343015727096563759399095547697653444335743731159628545095698735055930027081953207030915372626459242854112800389149709044374245257762282063352885371615215883980491517694513981922360299899642300530873926034878761010353833575580770813513513898574057482601677397362611286304811091941423996676835771841515708850842939506164481068799341065160497992171843938555118754969995695906984550018420983135126567889821131156122233019251605141102664015869050066100985378245191427593494000364181484132175466005420802272441582773653853701032580516369223193554375365292765012422390515966650065292333805803506527692829529318013658218868274413300603105616081133753005541178492472796243100581888925518406979604548823995317832034684384327077018512481130559039935437871135301754884887992869231554060517228197190744585688893253312130257058002745579087258570157451737051338583793490041656656383199189333744201708691467078884431523082723761600774886790140745414397249322195068147111219891858561352529669659887616077350087123159008832301775107124206667927612425704390136370062120664065553822474861351801961873265913951914530360169228175446304820117265656131959959350057274220970008756315839633606379566578210534099494564560945913196113772681151736080755725300597673873634180196338491819177632007400920539869104569212610972171633712108057648895974509759492225415002492855050297933242247637119290313251727813984389139550559318146817736156691783050560505108591671917341611569965813532296104363169174851955530087653921337921892570507200563650135529063632342863291671136630577170296832922893882363759134796131137911087803853575518016150054056283684929622016225225066436909917618945705087416214200321458163146531693185571392658061671633415714965214496682627611804712984371482251059185339320861336472462992693705539732911106908200828010159285787215433520392261183349269385964959322063046712359111456705328115505982352932000588494281003541207974727524998136987898472303998732279255467389420864789372904464810419131986159009037444166641676727973035441369958448115974771430149676286278449197317797913098625761453232862505102743666047272042423540192294153780689225195281213905328866538426077317439828120112043073602719857491006683261121746188685375965703681775736600108847516791870728153903300318747821987946082589755947861899578055815257980746461640124505335819067583635661377149979395640961037603674482606915206595367827156002916556888130523133294466965692688154138136499501982585251974788661926724545329374422422643525910507146361748917406348591932479170408335420661755891818501793272789702771018522781866012578601883068686737383950918170984974260248946338779125734525687443184558445266695332556089666510376647356603031662330979863232464709398746543759799539507720582895758587682882155029778451823353440788083765174819596900023975498073184077381333825034594082658250405933267297644137678914896347408846596158829941694912074481371051688569514498294149845647262662264963976017092631433507324524359477972454816050649287313129476412963916592422962683906592252389699407963034195713486133690124875765917062873213516657762063657585109266017236277540777780203969846823503698982825967489298729459474260780159281812821132735665626652880493667949825023540610676953380867555213628578035576716212201674293462812465408010109459950266881956830515908273788364605521112971190997443225996867876547608083062768832473925379284602276600568051821943740067970134409493291757522629084953263025738479911719891337265780924363849751524090611770229693646592450862516437309838319412219407279562369021338196836635598552939058154468405161059073170632258760167787424554540005107191499576509963125094532242006637848777720107308719835476034922892641595192513969425348431553111810522072065782200630795053910307428847889807902356090959828638764406234561204657855647724323623634600689070187263914314324724858766381465376360134631279741507801637647008564317877863860357633735589251621417946411925129619918788685418740443497653937833266078002149202174336702327861363384245732073943041002032658535728996227636238718697824122950877215089158285090159110239837352918239945294266794069254835223390663794898623175659186601032774985026756248235149011776572014791533278178298890564175309257446569603713132535327892425398951712211207431105110130403551575727556496183428920028533941377578428097959079783617805730452522626606279930009246289723699476707472817398648166700405567813432907573252746904437005774269285870999629219054074625726027655485261446911397747102139804569476566434816872420082799239382419580655690754650955623805494661328015986366395400586406088069435251777245569312940636356100900101950585153026562711350760391106375137673855229405864625059940431558804671850810249085537058301590262507030705297399210409991364919552276009116502502705776685485390649323897963976176001169030487800972326008256837642597708016214146229243372881155958183988284755141463166021823879956963794161269360154298036472563835906353760808841561114239027985361729655913143054283242360333690727098562425004541743235944542167323419237985487155423812670546783791575092697860970020295488825435107135402490889763222577695078063166105713259720932159714923153668610237808875726866875963884591159444169572758280939389229980833743639839877937294097527944025315977239818780790782972610586502460512141528916928188814232931408667199882326723535452879163635800492928753279767885349174704713534149727895036606781736622241229993374282636170604561655609320466539358494315219121435479360857822449790646034322473282256391115186954428513660558244071293505610512780227275277427259026499363478592511692169986601963093107409888075530154648545041041252605587903298881845481155271256578107328976859921298346324220252818990879425291027008712192906699543365764259679251314699647059511362011624599164685257018745635856395697075484512877798778864553279580806858012729253531839156144756435582742051154047219088431473282160993913533442785819622638563283303017816513869836872991023071859608593838396149403154205954497997088651890298501908171852809583493085461757866814114234090500676355056774467045874307256822866358648404972057588110087821818622121483022267564728791368419775505718830230840239672947930327001242137217312324941874954348656852437938852176258470189440160528099085882667132264252644419873087471215601206228387363073326861936231993248923292029116363147155254248841353826369483230250205722540943264909407082988138856346382948136946837927976394139769467340121172009712677425124250510894841807703440134306845083580941220283988719681140004528767052783008926519296531909113378887364901085217795549946194183981872782250656610219783612620156748644028086708584667980505998417564071326820855292833780778259813274489380922451405435786900065552933236748920656141355118497229798876487776249296435812303580303648615273113533359817086025087347351773668356055586456489706193842572732858450657469348239750296638949409388370874989589823243547561608960854213228997390797262435722610405334859245378209731290501517786878439989539745714822506046072665180659559988447534425784277231224546894804490029616737174762417308356556395387601912615237057776499743907158341647362802083122388431963616014433211182140916454122034177735057227209820536442077619876060632115875248365348367239881923532269155040783746124963399400632469580518143919620109548709540984657666444432476926789503587555295088221337165945524374067319310088677946888901351720578534422002031168337254558574830349665419547732849700399068797517826923458029675677986745449136280972864821008037743621087293190627657565524314907768357838285778824476053763864857135932593503731148154341921219207001964457053573425507306712804447326076080502093721918153908305784050793197774201645854109009995347844505448480786968253309746552896757308603683933913076636481716823118729903727660650337833950414115634796577241699079491516198482701381722976440597718676737543510603390515695163026619309437096381339593271571963340949064858756700203786325112577913407160966334876945400919332056250751782513932215670751751200708264873971426622994510781365343331796352758110734693560225101179782243558034685403129463281122114252057726746935765399607787382625154844890774944815082333005164598235051472439682288539470114519569120446340697221469324524370267002671518493305721864521809882899389748410109428862260646421240095534687135767760465011126371041387457828396811401552032338555395357125864924365107171148418872951445137776336105110793413392338083234708208450709565822051594073890243475622212342772754403407541018836075649564193659956005049562970536386882571740119038372287561543062008984485541997847279577562826629647313659477825584052863470281849697283234975231901684326249976536471108437058210690390881666008467694543023398197490901743705768201115190185963340983258058793348985441336047796278594964639136132499014844890427909306142971406435080821090689466410039920557954967060229831709001925988824902584335515048275515739454433228064010222504371496861854310432372119527240368328935792289363024643036506426369948755757791566161329637694864789437514786039410912892687018031019130987109036445006079277274044872479323932567850155589066490380555188498859577506400556566071573230370805027017557157134697062985020210251995140116440744567764389314696070537329137591542867637570300264106667824466354492631832066560687298898939677801789438619116611329807130557577193576421999138878942623201497053162267226625364468590123961780086211905763019059228382193225937626384172401362158789283488059089610161882285275567809089880983418786419644754355496427566080234936987637220004358552674549114845551334409750285072700007097192833513870407475065168111524976141603351981197077797205395413824366555409622627783954533718808425740100905822063914443030338217578238185000198874889641197746766616755493841813074885308236686120727643819402895282346633333909667890690922251170528734907811094163300934317385523618585471400890665809360854432003185847332951288133677070456041930774829223853413819914314537998502569396925494399017938151644941559346144058694559013157190088560411713109879598566828946096626354125032116589229890562487703504638453517252257267073801867711013390838425593767221114495321479121278221920489428059826432338827048170705648123223645492882794344029361109040862582962554263648890954897729717352981893935854687195955687034701923039699012157504878589389662210495749239807432063287519458661476234490853834325749776873896051160180128450073688413748164994609799171952169374016229745970581801536304137086381618896636601371311722809349529909481087083849402096312801386962021451802832865998156029614375572610134496711008196894629450501787240545409494972247906140209820531188255762498014992387609711010254085614216992013176962085238097043231563142127197841570959473049168467196940808638252500041649622450512347666020094285486548708047130579449057824769140536060266067886105349882927023902753058991569564632698605173157704672264288526693753032417256827937861118162644141504744003093899897179177956666256862924755780345917119375216881044139672796157120532032856332830965033922628527890599523831715515577012015869526794189273092377152085751491230299061393212398162967239773691777965528667652667985623112281275846898150820949556107660221272678617956290226064688821466429343188573291153913677290244054350015414452320242733863558449931706111942727830551036526510317217432629162561311243038881233088270323101779530517360740662510267213525452233315098700713487583061931680828440489900486609835896868946321012145946844960066723032173252428571659150742974864200301417372050228863739625585348629854662040353505484769564670242104269483152038187171893223777108600583005078226704730365337661336952325296700298828243670028992554655519190377253834331907561097025522314383841670801029007668789276295560560822927619814841772591259102150876686034946702118378445454373405878268038321700362971635302156167358287860658952849220233109428411354871760352892006512813321979702015940289083390815940746224723138933437691276763441438141805687472883756179352741862472006847055399227725838948002894002919829911474212789512876239645685646838373422761611370630890860025024401950824370525219431922919630839596293246765753750162511313748246004409741513410347246826105249541087243056972822970167361343965868614378740187844219681374213979436540477826882259752147087583588861279191245937370555669640695888374902376778275179880274824812710415111758588061729594960195649211821904981703886776770970847924375227666776892379583888324952431619352685469998053962421292810752258468558121643374292482839549072107430525908523866106954475492869377716983995757881129267005051454923811622001789341572342755378306264127604821461695141169587872768994565933652662094131253583479913204072893568026390084802526285555253556156023368766235913262303927921116262191894737031289991033427886895069848302567839118222249715338582143235478462532994512727191987381823054334198926104803755219538143788567906716341912460813058871028487343637328057995934511850652830225801610043138120508897350966088912927393379762352817223877713395655665699985695857958255715381296497827447103591328645642109026936942018244934661591044549459424160100449530818448355082515712397911125633647466401280957006206287657094267786976863342951229110924219609919872114647985114587620736929449873545999797518638743409516653786335367952638681477238537070932832146069088056552275938511294582782051056058006168647288787431741051054617662571373620023507893605419262893629790075203696163335676240809913142890158424297058244751557433246825783799618447288531037223135888548989438573987408352125060361979710354980102274504196616855009747390807789275637798438576682110251173435632337113985877718984268201702222818687243019659238955226628390582006987694435205555172468437119344895931649670023258250085186704426146475849176112586637489668715281459612409894941873086771821494537662630631093919031890866583061996896942205635226691884762184919765195965944057277846350769048530521196475004974231655748990484013602813063314743511902785854465251046199267836441683311674950451671918420507948443566216656419404496147010604705003350226108275348278374249144374082367980400683266081847852334745921427449465324889022507959808276381278759535167083413861189982536137967197857039473345242280149440450397730489205964337849408724504634359085237415772221114409770809789979486016980911176766457912042262371279148412008931778035172613384704884340119930030952394435237925489048919631400656050937950753484937611153400436983863977091672305159474375391866180268699573678321056620695138159257864728919674553947702600089022226906475165858495361509544052888985004367374992339616781029074674899632121236659925535239612601809120590926319598144111586801522756147010503648079361243829164045712770014707398370902384433763940036044829324482930852125753750180963881901622750429074583244505545553637801651914319958732773630904041000118052547134650388461430779020340916285632578351670563992046990111617234780538090184468718203412314813436601053274739340183477857435612571185390683565935136920568682346363954597577112991124869496097140145038349548581359847511359585912848185683129974226807834513395509728808968242620121174960489488382505731012032756129821735639575454945292505198540399443833028021218296282981122397558678074981399652152068286980842853284876223784390383072177216752218222297452850119211918418055561583789585506419656991776773775195314900625331995344607604309257049071547472264200309723966123174803908374159562110954721790802878640751709946962265588800026241377440968051937675581812274059315454979570056461058203542783745800466442189326207348031291877915793665927461116334116762926961318521231968037214175952404453818434418779929460491422643497616129476501588856362563431244369139070658343612816546952775213226827493613486622925965374715156521840360251714329758651835465742453699589458990262753876375358911905182783241965076644448968722176413810942201050620451241131252062017859590944151847091984270636486091818331244043690307780522950965967201218474943262395880358528018543717812442873541802123891293667476778016021852300202835356204742052976681241206495516982763972840408614865063663877807100085505257575603886337766303391751384780222095366154754158101285205598318975287429807205848132314362298070200728158746735658586822250224508897701082765849617557851982486099158046916117084434046944066688703727424518740945570774218893614595063816220967303182391868316079545363753505052941650828854896520607320780292020767877491700348437475227375306959500815886909057975351852788543003345536088824410105137468896268926071352130439980810849842168000227825362324164679182720141853141094944381221869039415144313443633130771624745599427568500611792969677939130006108332349883776626663061994183638323627160350429134952620789385734926513229658315992099332123057188052046127011703989178629405917440677330007873795050026538897173230020625832199719501980843099101364997104226692099847049053767540274451955771882063754117946868702733187084599495761988552566988013395775990258118524887505834122797119140455302680203306587537775118630858518247204155769908351083484548188212468557312846353124126649240100414336929003169401950711200010863400258733843824250197326878187691118259054826209715008126589429067055119802547734709033048622596420040213123273825973067597767759987974080052572271477613799117318396458576577328641526279691363335362248465375022024242166431148907234882312347199623244311405671730706130258059283873740573638187086136087946746297330503062111664056489731320434778916066017780792244241206817178981249661150712250793674583878741116131695686017906074771712586465158893087574211951735380357672282064649824986490137417167101695649748494880186509155647006887020925191686010905915990168226572018313175670242384932165265481687173152202981345244916171314625428795787747469081716266412228905154726672410668820823557336848982877525654062206936964954540919906575073934661830511157139457418668319804845089827245943351311358752460891809495177847399343823296410628907044314555522257340571499527552473050671161944528813244096146511862521344733005777580732527677917327393070600593162929967580886479119243214081252160502645055301759372611727700949695894302195612785750906457438423585710846286779330457613057599311619751872326458272783389050228254698638276800519528953195129047932660725037572258242573218504683279658905462612113255068008042962424129406801588626382126581144942742490181125187198189401219775877355663379484826453042271261437096408783975067884119081874099202098044595144243201568879729308157654305304383530934811440681722527246406258624927192632183443451413998755247170049444590657660424016440851904821521255747435555287873294580012665801509518996267812432606442762028931288631925252961258605989583724463466842563687225554764585037181722991856794241641359427715814487304931254947972099735153765962575933751874623826974992788829827203269807199713833500323638618945925322615883235311956014833217977944865438022384653918861932162277898125494865666694286551855235685307098650916144577565423508722248753471342932979192381766262274240060669189806824542215428699952247352984867862413391964897208907736055130766011831160142658928643981028055914595882674210608200254036444473628823861901795454564227392478192224129986077702651354807057451060186998424935542537261501966431757586417793290449186528154681958065831757488165748189886036902138461128681704547436930118907252797670187542093081276894234101520195787563337639930446413510053627135514718340555131840647420350870427686771338041461094444887427246648496952514086284214724935176476369052113490774350125493721142995932003809807010009273962760178169015433516500091964845978327997479626761292089948260423910574765111533175829062102307163795092079402986896517701487137562899394254266780300407876912633815794080609311789000592723010143437983378595922238860313187188436742245800127785600602663258930881013011778335410744327702752157587728286650744250965380773695011330840372475632496646821926158972277352918814907235088883888278548009136555470357820055273435358963552268597325106687585502528919538599176336105125489747246095587643434025553639500181500345001043455729656247566080697677865097442849448096260223259060048375886278258619774150192858695217438042583074876184125568519846622654628614206634563500968657697403701859674985677173346550483287383766998322200290672773593063358836859669606639272881168569837440640985585812415601403308251754946412742114918614504929631100934258095010789978592491726353679931195276984710074553296812092152046456615807078091207747519144676502388573517935471394297440367239897116769495974828229064698941424691239558196439132240150575717768333258037996978114182525351669607847850807951699512142118378624134629126863100422898445176184663334956505117170144190725729234077725200790539689508313624488306583555735021542346148513251611402849302464472841673299156895111077869749739089602953212189461737773139090268341816505805498591379951892573356521791361971373152181075785388891987452975403025437412817212199619727749365733850570769561986487229764537646849226300345843242142690724209337200377556834565343572510242839254764525818792072032668645630170369669739538674821911747935580406612243228104019389461002401074204922527258636345627845467443532521599354543938879681517771006472538343047121603013800458986420228372121036190320075068945943455965135657278570089248276306766851166342463380053340676179845014654190681603969234236175533394134225909517853813266627906470818176698710304903578829698566528914926276420023661552094548872697336780817854453424173907576827666624748546895166261817912245742156063077851293618187079180669199888357954012731777662765341606957650691146008596929398379950093288432034779941444727285669882775697426315007678669047701370967201252821468999738156979511962719169379309489779639762068633991241303250219098746917531937054148965525417924602159154799652528053286747221356108099609815952046322665941245333450903111396397455472571205539426391263714619216508097765091373456490754316312885740732067586638980383825641257719570648731466816259653024015964373397621804910495498402353352991938119758692635004210259790392164569713750011252150513841564819994031975631816965324943778816087202864072564512788775391395877949134904375789589644506128225199511404953169280741447879242414978828600524809258803807307047273218433868405472468705908615219161174460793896542494121159476201681871434315916434750520142920772035123158247947037523433474212384724811486876373516045910148597338159949874400697426904941278229371067574137147745705162001154533755269911283148591446097845086173995870730061451811629462261202580987845741209515467717842948656057834995872709055291234339766116169699344861724324824540626893127666582582765572713244524327538108261884649726764854056756824417411963673116197580882411471340618153066221228947811260765379346995815789781017015603881728711806135015943336236549938598828123538759892031174140277683797922930182438040019408773374258388579246231820314351925952706579137952086483430408666868493339446287308741956926063546446549878690454653643059469258366992673719580979036911138652262454987697957743888200429945640229814601427418039456867950414110598827555067067012911009277092658621262734072714966613605264259953038361032549231443340722135711406043503993864131326928636462380105102167169637371933548871577340750749484933736490421359323469187510894678056163500277039536801894987060161871915593964942214762005623048646997704401639666657345491311454004488477808218021179215376727814539797245888044479850716338765165230160278594348870932680129588834415322450151111948234094457520784610003117196723181719538997183145410788886768773130077781074090996752186326802654363697225675376329579196562594335338415172644669405221784727401205506416466183437757110352093062863178930443203455380673829154168827741493399964407861156407589617683500415962071542178779054731844407713470603279004642456111251514708909443919296009660517511533757349672022777751736364661745862019410698140537741185389602510380195201370416829345749319420018080849095370656294129265528467312206685539243152577715455128011230292597315153066217831970359633162251032129415922992501726076027606024657271617393917866935160831440471610570420702397476515597694005192516990459710555893648098264864625813134015868768816162756119594934144794256676692459039979803276351606964432602889225561215840585237197716288918948054372686231799859336983910652600607192027229663952640466273050769546197357508020760081708538681625203666071097914352893282140779916900008388363146963089401334338256479903132488498897736252120101477254623737386818962686326042742576052794036397728746168177961735729300333870074589185878560656078950039400813403052675060120266596013025365553611494717631775101314952486902476130100408153654939230893344968948278788643372858585522019208330504066619381322021789390707965673225907555639338261009659830139461796758126185163640105950582202850013154493181885405833459749804555771028836554942963569881961709132547924253377203267897542179335106578135032587448446158283836428195669733869232214272841487785556533705257506212910176671644743902185724990624331343432005457078594603048747082088531688617707058240512450728757362803678418505230023440451118643710438076238917815549416307508601436528735289830152775737196714554295342901236173276984726537848628746682650955152776470993168954177737856125013843354399872471120651882305424006280901541189379088475192256490555276138780018834557118893305793495912207014002472560577085504060845927201790674190499881825111803918198702409535636428467131808281751952285149600527498936509978363570085732617475630290375748122785540930918297852444910460211240659303905649913284194448202840769891741902869768362213887833887046951124660643393181797466066068572183199483164019507854367929292064167680845224528650594528803290244789287773231555548538713459659148839838933384896009688112430952493796820537283247992644049860902072103719126958014465369215032520266715096905217418600420654790974497732427587808391214193677398259017869036669405147586876626407374321129641554904240717834436596406496194364198249695258975159324737902509183079180076778199012381421463679077626461425301569121561101014121240349337047635389681397523360172278296314708681334867956278835794270880321279082739980531382142865157535776032626340201950536647415101861916413488634241071006266544143627615368069124697858364316725712800517674147173270418517513488241527812033461051744680761693466196415632658313459433867227029178008539621122986932097983494180121581397653490425509008402600432002261915115555018293386896237448272567997663989182232517387880043649056614085322186271800413090827428195716217663417836113534990880952941341066745204317381043463405363236450885725667022114053334823565041413881372573273906250642599785200165389402251746518171248901038754446179024903826850586607515777490795493570964345984446418553932064406041524226875780433542820861338587588487728941210691313737929789625075225150507450552689605768850455293690866983808594067856332263354546030775861951876202546029946548426565896043033549584206593776156339947223002229281535387689171267246759749664258082129868626410074262771348851988250101155468068431768769940500031949076847063617771208188503181451460471012767225057068181586062432043729091932026152735042369207149756659970568335176929407482771190667965292151743873764183388149577674198867206913340237230673512819640875685326047180974020693761151407738556048490324535397894818959436738911294039335209687936598481867199795908137491897039397033658263337733990615135770267997724706893125500190222138928568043915478960707114480167538225261672437870004016051086159285788792039896351750745939387238643320977344457982410302877487854821890431883167895705620301232664243546278367144725519256772755104014509198595574527561613595947139994674975132033998312123919502727430174576278728542479524787916655210103942916572559259890332327460877672525704405583619897771107700067067733163495120892494560700032953996015085759981313861543041410043388417863925055940331786435191281337419277993820195548916205919555647958478285948661694303407919288258383281707308068205714062967968256676798260823156832595470929394249190050671596364204592359223192484454725254967882487721244290293090895677118690886488699325970374553063832369908786862912337815295590805577805546443411027742902284729821524813812332427665165986435621570957699172021107855305551965923005232451219253698298327211959120471923525841724177024781561656921952874755972445438618394863230354824743021049985878062036369507454757268351544893771973369252618962555014762191363281578343287390725090929345738239953426279390475820458236864666468174123968031769358697878211624207619916795238657490565159388530700573271478827381050546947141010961949290426202242627469939001111555391348941706175843165108674217040850303651466648204963680616431384542905857928761382134045001089862507973565138730967016358172072467650400906335712276354697557840933138524199418946528926123270575156895734536214281692315102353527304576347906691350796925950299152371432629706045594695561847089225005966636144200059108487011777474344040256936564288837377876180872437100040179477109691507429104457469290402891507208389748089240310564779597541360797175158103690736517391705485885157457208214498666448789460028877698851135674677377978998052210202875752913871282880615187907958573245910787468056053530925220378557662777295853042213421871219056761575044181571436134570565690975609559916957322796792055306533786295033142063109942224002344262159388501435843353051921253007603442650647742657343976163932389793429038198055738791385199998554307968008948265301254176141911788591951711005614648511023862725174034750851064444091189135919922719522895280444646570815672986412226002682976510622247386685225631694200370592707256398139340649848223444350080265502483640348097985781996429478877892545727393188901624296103387928557684782478157849584957020105308081167065979896191259887675645104377380022645538565000372755071129112209600442917055348068052606208333216575199167639118526149647963762799992209131972704801370275829975570572467158446049623924844423344632255719032392332958238157605293591936934030092940490704023496238687062957481915152775994136556452322293016484829359054517855413489545136130509783126436322733576502841733476060763163945411517074906989525793778403341534244230921461710026254522282001336647668220572015985139903227143296257229780377754481562917741382098913354791010358699102626158458286505369065161732515215370047062511697151667083744478335083555817162122491483592458349023702209797215837468033365433385515641297054397413057193216179242285009712689331069110090467660151216504632891229944409279486616427547575693048482279932716848882406884703061675303713170674645708571325863326880112774079921423450805942896278802498622745433674261137737092465939639027059278074161509133790830148153617780014612410111789417705150161293850922246980025026912582947961672267230861664981257349260508180498656598078141987156933189646118586193772294864017290083998234032741960246193443259033526559815870753418362815678242115174970403972939603021932088525688698590733116249440666587999966529010441842029340648917764276649304711682208065318267825597298428267119994093734790109048980344976131886762485117184656142171610379358751216971125840120459093116002542226872229975067262368246429217290056250685048722818721711399601044817533635939526401198668201550392585927605087805078569051730415014958730246912567554565127999708532027603256169890266498779445528588990031361651686692155490697078703670435452261344815503884744253651536432816317125796206350833514552985686920222856025660949577432711799424445652370851297216149579517228605107011782359738865864635519245176425954181900036738854816455893213451828625434492480442918197828109935806814775943381917447518624429922582961067600165871791778139683570999733812693689301655011104565713930560945682237689176912105042446614184504936351893200703691527911275982042434602384998132024278620083644311491816603160027931853132371523983511819469148063480567219709828216220629349585606153533410967282321768542236738952049958761232952551163105802498624969734841062188356143099442672638593420623288094965206641059858182622630574971096592625409298651430546566082664366286622716567285524486885046898059868492431684807929825719580000097251503543633551953058660156549055887624465014768303189198111128697619429178678767914781371411626865599935021213325271818769549573085818315508354523596201683758691050237735776035513361408858045981220345818536045879304344010752307414152274729474894241449699508242584051376921402285581706993109634232740380919430049105989230879872328930225493188535019634716963963627670454152550827991361251620103945775849613793763558750817286348324499514613370637556226855916341108859384690137983321203843492320255054844180375581320275559288765206237434007551573366867506058949666081148991709607178567459414719117885544279783012164801384078123820413243358982598131965075837916070648767971068256639465167434400394521940850717898613341777765635543937702566090544465925790428832017213551467110468283266475591355493232287266310031910912850458279855818386128968092310044224765984252089905272618314333107096842546714093533750627706172028444063959380027216139734354754748651481819868319116263449376930590832451603293407792518343903940521833847910527006022839085169829467901921488984571989591615142687780972379377615183918294740569884989369654585869226037013063750612309773096411027626522018928212930245732043847403557222377503796788634068525368153676103335885878232907599205080298506772283421681177469302923704446161147139697782813983198197514406331752845686830999821865054079402770488940772608682398131903665243007854170235391494621230978032107883825522506140796446051642034556851824180983969172393486378685184219955228939767307772562046002013324524744631420384795560529254111065534907400624832357256322090800991490348527297526852904578672792505903069856202938884145217578111933365429693280222778181528015234659535657742997553840206445657453662001910581768998685516229156732908656028348318191050918171358720166299532704802778103180557088706303809653369756097606187508183725363819855795069368913179391852909745165127683601514088435919499580358960666042243162672949711941420026267030305184944208745546712518910834179616048822506047531955524319952468971609104333974873896420391310460845280718803608138379742818316234405670447304312364327427589340296548232446365295804981877826130503118804845496691091536133867750898233514245991032681851691893200787795553995321520068936255718970364835433940450723203347260251243584298001447593526013332380223116848837243325795897318769935724317176364826084602902783109563917409560122289363747929667603906220679933823050522613165548564077714464828845079685909920901223655947848481673580109996408828216037643994773178452311939791532578884695474138385947729227823642743020779672395918960573027688925199489480545472600124111413367165852391762244212891003291260307368597685741752958389182832253408352603753986874666581741135354438451007318576860627382133637861060542389507301290968694891553109592653176709108577221825304706908817924564221475071312282959071810686011955203747244202071464690115788613504019457906368311006595589364125285925367162307065376243721876149515579436047305981415944120315838625232265384241147925975593949847759822821745695015328092194949317905093697781261960283915065739788680848360018699286236166112070718793923725498066576432601147207619250704265172970082937225581531087415335246212824822789997456384596691735527078841547507120469218616741816761387921366496015907071964401894987039195731870952331292805170087075498440374558689204388870701529039999783836072700398532692048249012815101940042216538024945193171927961013523407869288574514553192709440203497604307790984186559925196472980325559537206226864687099719955735728361459510111627231441344269841206671002946203809965905185701735563822222482896328674343886375730598950247505585824223111289929074056066597987914466236893311374893727706622432574834861991046126756488900849631205995447331984986872810908978076245417314596113584041346364552594649475687528121498203325843400733663874772396140732035097371110218842010404667954901171579658541749704140216063206158468387856553618164659711877706530449619619355932987210887999245957227463851937022766222269674283997000331014460687684747167545233661605331217498874850118903079575106808844617398865290168867306825345563013031857955499877266856813812626468703369226427605711649340278086278277627956345691857447679468121261435130587597514095548126076066012335932911229345965824072017810579182852333363341215677752201844149380383455335019146370574255782191330756648329379365025026643737207717369397451962054281524270655715061871463417032996252952876995806122481073571669585801733086509248702194779489516118556587209609816806487268374413849351406171746493554563339015677202729105864777912833990202975388013014225889021235896280768859029156894683018090336875991095275478572735441117064408557490119986513462256175914321005915113691571228869675049930579909724609862836333730113579392174379665155368422028926439375827901330923531848242562661376785525290408609083947204003882208644651908607277880071001073433315626092839666762533556947814460912527406671715114230683264745322327461536245754861745061176112995298706771742521622961446248107896285768947013098733998902010176827466938640500492971423848092035514154850353032637612937932803140265407465902407338515186363169005079597340171753830101788961110783886357881327660628406124249597647171838407455299495650634040075455392867700380737571768885669676602341437089096760273800525032707707858400390260021371024379458966598028137263647454993326031912342220550188918272865058661309458399672475431188700898674167107230166426056028233529102179557312045099296423318661690122423795378421749272770058475953504655198414091527220282069429450595777041652056788821994803513848007093091984526910193475489673000773200913271359485783996377683315110303279721250532003582702939261261646053542297371244498426430746088248331965509547267895957307305892494665198072451161321127582435361777978474256278469948770359439284249648638460326634790181709517163650501567239859320322473133997118521105912227753932547002451949857408706124608666352921994599735707074925636382358105160706406137843780985605017220345362233841040555081648949929458056147483278971558752940312587940725711723614314318359553722878903738492025647582026765590142800833237851192276184826810746910921149998407814054103576073106877538255803436147364051938747651006980355200718426455676850431947524930517152551550144287942170826200855532457192614696139337813277125487888963781889191133700812979551304805121231746081428477003960449929564147530943230280025945167993593192543676133652428083305306443288859705507105949275788972224825701121488445634274544085714461627537206120243079285770337267928682908453414920194405047388569093501624909940662366317773234619229005973543162760130865193619705387071436344507649238709763547491454682926457556393366950917268948147467100208865272161980725779329851093740157156356723858524885199202883911389581750273709280293490483111828179663377141778688436575473732515643566127297482969395415564591814550729631086780739936179305575202488442124745107738864561915376736317905856813796919546326917912091258687252160654418002709642511066983910663091761152497334852375476380960894283191717990396444401622982560006493424574242982788644398301560772385563124004959975147353396668187047655190703055927708055626336483814121921828705849520205870675499406161300578011919818061456644466044462480259979669293899506988595377398267339863184888694814648636576651464537521287930403024031482058569577829924281093014466018545389336983058496798551382583934979227645092416924070926084241811665860989410577793336650787886007858750894625539225700674188759381495638062416212599349458590926439289365086090440101628780755293670894793052045487580889002694909052187081008117657511852402286184957165209134524547921058957741028196585959478602356660729404226009208922572419852428934193487947770590259839872013611872918228764008905300553770597130369817900927788171520994861633429676201992397789048127978826377453107160720779719858992772741717731736785157319160787269122492096074712935177664368619087474679644654673365523108823464101755235783748172260649665928642150732730118769469605511643061376790437529824404143422605809211734388584635472339757809591328634904827127684419844918791039693716134667098043437027216793105539934845518959395618341359356903694005284293151185851204710768837581657909374783134929381303485956454204046127367684603572852527574707897381038850661238822192183762632433681159173808287167078639566545953851479415684415844599212146258881019084364381039637336096344147459964217645255159161135175812685078033400461864185080643394934196177795905681749502704167546432511024806180806290773472110517985757131805621796369600386119422277184755777264250669939398405715399204046926296255548309126707774580243192337837430825350868696463675745514538091488100841157969320170902890006954463978240371633005559954769377233583087615074138452125273992448216645845036459990920498372483734659941525199709628257644211541328267689781143169907964330068656400713163205765188730134755503487217631166305497759428821169276570401117260336600475838771076079976590582403814317898081685692361302200382176817384164691458985770496045591055655261720225350062646558584219685624735890738389641036449708653555154214565984408669397252467756501588928525549669432246922150976041764056627942543585208851763790384553012173871159509564998074133745538092745596060755099132646579925910790186997890697298968071026288778354477823658844267515550819912194908459562914127414006372542870420150865499389937358463775983411297967098713005799027162590279603915503471489526199214477721971368408301347747126446956257254978195317345604149126533547222404222843381680130693974646800667513496608624772708667073903259005149202722231686534996658998294460889026452379402000776459868651381747915901968142679186135665468844206580207796051278627145535826533366796141436440599133897688279301982689959580245050920653609321782657566247400420671760029243763458692260293649266214582671825915351583540145129972267452923552211573300307211945881017897218743302387746348703522321288209603680920420266540007681227842803672829697570772690905963064453812288169154574385952944026098432420062478105543133645277861539197158887793051652151035094438675879914161152865923550527710009066676913946621880675955324075401132515229238935317308090284578549941133516156018825568507129238573090290951708577711150200344920669814643860357927654917357504285399096206758503754372953464395598610715249211012227952116965649861853115894882259517630586051201292372345492862034315317216151149134686726216577865120900200818178017060559243438493583637064434189760288636165222835640376341704735220802294021918718443146373364562393093998258155962008722207964689916097971125099634762510097549476273338585326909580399089779548025358227349791811795005557528130460810499491563404549784961541538330239233234529858256349190769790552010621789751711785383596881504759644879528005949663677941964869000813808470413131495862652239337279129885238234904976837218896891471520806046463590818855770514661974367969454417790249228797589753524079215572410603160767967838966263734133250004548471775226569361875744059457673619374434614880638503999055177016063665096554108550616326830649347439339269572149874000565275132712917804609862718697171396391452507690655724156623673008478075616536424647900913752384869548041058101934886605671875572670591521817366505243360242838358946114247138633318018991362100230762118301324023149378710282906285669884105778880277425079832405692464817894913474777663193465552660307337379014183359935635319627316531934412605029526131064489556197797180798829535685427038174170353868312051147179898378027739844679373374181190504691575130875742249748757282957964980239358403823945678504439128252297733338544064369958075857260416156628432930700781571846076699117914545702274156491093481783246292426598304831607878435112989859456951817286873080727275748284313134121397556458527059156220448206978012535461968264421566471188901973371423213733873043690993547670077725910133809712647227911385311823822753037272437651076871686524544525849003460548607182112835129089523019480153936310323056127893731600040456941694605595888698403269567901409335053422931222419938269322270928889977783800124891363918946004645793915748256349295068064005454373111617400344269762994857012830899071570248490740106956543414882226923140709122592959857902668571377655211703542421192601330899039587872483028731892244431931256426701520944996724354802669068221333015596662095506464497153771181008270707748872648255339437672542765390150341128619191653719459942045250118852440289604457657723839536305881980191672756999250270459041706030807696975037459409175332615001586615797393290332745266403604217661766953711115931512561994165174521815043095670373331423950244847567155556196033656313968046613464593681639539647100952125810069843354008511676522491837007223006844271704889793320540527114094490947927800975817975729311722685063546212947824411891727789897214136187851880208049261884207182621070634897969164656321760991175502095919306321658463756403595896130705788979433669834266356919525937451829568937169725301630392618117860989219827374864754340981538210937238408656397860702725355731730614716104438619700765668365952735143153673618460323498315184953227680276694282301932959181290821865038724731794604513700452438065347369500573140519722816073501313762911763632916652761268949134245283168361003807785710753062839077149041903667200082722835061872655798351151748887729220539460498620669034222470235704229797799091026338578314132519359293167804678655617755048259955088971540250781746132489081337112072529599725541556379733227647411578793018469737377023610018552653763544363021575666556296915432432513632601719548086406010495137559010382325786882377711243557031485746590753749683180001311018685201204330950639839110577964939750259247953367807440257059474936883278710912130002636161180227650470274783265586526588564080147503678855495948067852671786106555450807929895274934330709123584325061484319901436700127407296277639833531305594875344842545373379079444098898438089506329553781457696645045107894248070013184630729659360052964547561837754741316115262091559499878254338439149888056207296031177781760151390182981079428753650969308682939828956994040142271160294225341958516944130261515996845832067674315853698030777511967491283608968406371134594663246912486499549105008994597944200664772328288148660419936444705964556838380190382599907905863988589804256763541209073919102617213371411001381518241627902872555070763096126679098078162054885330537119154113536143939897501880199795486537609462622021191895634053053997531859605920809317283424131844985806505917546577464870779901618314080124087984726809684567542634900381946824012871788183451509272708831204703303288426902872920430401905896927315510928043850213823320087393172359497470852855916228979736669118692777022139559680815198763001783531702792870694471039396842849322889981905219715068137331313252975605480160911538552475886684485468217678205034764060061678257526410709054445459897269006776016487720416158550641058068344406906528965400438886198838592657049751558522878879228552757875328324529022408335728681332569703021431897921691637353318280898525771524221536612537924029151393964346870601513012824858662138932761418478912247328402157654603009328400192140929534396134117476431786893558141486808782783460803978884179936647421869537263619070346435843674335208825164988642689645706511190258696998676135141294086393900478476966750988901698320658709164329215210865576764749366186818371189931870985305522981058947891522879205441018805635815738272709317096687883273083779195781862130759920977043640124097459705252459021963443615420031137287123092549589921698204224682718555272308797153636346403175008078268689897169592490891777651969187593014204222596747157760965341930703808238297427445819755774186255721014375050040820072476583278486587324422723431189957910518290470233223372968431177122388883918618143564573197500013747505361174292463429090432078919500966761982284980076460268769487608618047071680515340306154048492569655124610740999331561428413829265865866602852189468623602431410371765312619545942015650100517826993484941045869513483045132215968194658940241309245116306843095115711418629559094032365817673423695456546879449601065739673452745333525361914948345933076541306551582557821640136911747298381554143613362899815708195263024968071319716106299110271877035894116309899141588979381658159935715206849927326000786403283384621982423352666904212827053537973719864231143921657104093581148859454751759827373817172980162406502100905331734110219528479432475563699248788469923599484299898770147868508583927848743611534831653276015087163888961995266269210938793599238216812900834835052561214985302684605672990057415470623069765049616321726042734858887876169903226766517631452440097899908245807630450527017814481728866323883353626157901846285460749286218990701524042590130079572534697962575055228127920374928888384968190423084936007720418016818092619505381281294263870612190689824912738351994122783369960703317199881933459787832997322046408022583414336820178019457111406406506293016141358726845697656957012665963299854193237842882379873690384592809882052809211507400770608317277173274103804935623339911647580759153645791260582526462994493998089939047657108448624086956497114492125307405864925180435177094548109947325086580782791154526015243466460858154481632808602991071861430198585107986626796805609381960638563879523044135924611121503946231959384388177151716123734311246762047407758770639054717902904270398460114604109868120768073150313625563037116876213954423135940651203401085763922887596197418189466481797241398175838905863723116095252695068689042893061047184834965739779622435302208868614868554996964751350267062790026544423741343710646518476719441728655111097547561597531086049333449962985075639712474904635159662008397803959254338999629672363324568083835654526264257412152466898272900137194271086332710723699133920872948989494353889050466815031059474768354488800577375900782938846895143082182495400040573643793807017378593071711486101136306099442513345446357514382157640717924475531868243844901988308560630019598435602884328172398916483255539452560421492610072870947258998612131062072947105802020552447603926840567925744234954097486421053066641253720285970438686051945011381822182763594611951458408605692701096123036811476814842561364282176441556576657543721149563540227093690948860036166993154686158529909027932433693092304227194028425761728427214938628911803907038040758416980454803033193299306342714301412301641829209825422404441196428125685970725924807602499302194819988478857074114445246683785625870313788861695383538290313077832121134714333900975286618676917974753648900731943211156053814148194236621496906596089945377931256330960620213776198663994767252470429436792836216434616466224512244215716106923703932032561082644977509424600592164819132549141924152840807237405005734481495114719161459838621731203334061445846064368827924176063376222295017316941194373655054667971817391776332434148176574134408921417947953250949620525488347058787898313894385143851920089679246620123251009326748482257345037942493616123883131153146867848695638425747348648790528982733302633518959172634574095308757282294626861461985305041585507206274221609303113485870807536336889683120146224540097014950379541538734143298954497549477872996589307043803363195829488833769436113249589818261855073105711397199371588049163362994845345749074526078232738455680483396928567312233062856872399703512640357526620668950439609102570109085938911734170133415839055305972264156522177017997231274943080584113056267969799674790043828043841658870374159561532097774656327637949876460513575581949191277806904673379611241338194035095700455367261325358996205713180751395782921653947062560104452203933673659917286824288217078199459420496171275847918030683388498252827770029946862962200666557650077372672179529611441520997260648194212981112153791180388514842581242062193230009042959869768209872258813824910782033197156572648568587331058424590172929189715171294703389798873622015111705687145440829641297830312542320864262710366146981500353546505733743983156084417105743219526724724409329472774549055927138997918894964338145710075729781217749419253162308502872903379601697186332966684553531348589340103309319664305649135626294257816795192383739141668820004192752035659598468152540053720668209107943093010870585696827644387184634739001550852739654494483996006726461394238800309894904695788891603268601157481259344263518694253035747495030061452823324473968657478857721551626378549364559053558167828504331048177271489613741115949578354507895294783616597826314108708778890794554109135311982290642915802566524070764611171481330938779125330918210266258482111151516125059952698494983610856060912308891849361450109455848533989123601829289591343103141016860620406567377441614737171344760666102413475460035592194918661568679346940157592617090175535172522081106529579308700061014070685752902411740151229915626749986540768910348459116837359327092250860708120649732370108781854435892831631049737116667634520915175031746448087596766215650648396313309198402287429584980192676316216530366875527448489763324034391147636953738605841501796493431108473576950502278552950805073148636771594988730332247681886557278282479458777075382929258696449271293023885065405529861302124974535094494635033496941415540669463278313671734332947726839750756342559926763966961668620672086440846661503072061827463227284047739585912026093834222783749652835858275081258558336344237789974248841108685509820504898988727161186969363611073208559475340819896611974938981780869110807326910864593804243449165951912785666912532605291721214068020809360965273787532753342235438430246741265843165378763519082643539079178854598693606826162417235072260505343450779953479467040488228617557542785902343067546732948810580556066210094153033767261779238197532099307485290570833312468352134259528522169651214458874190128352486054983477592866226839866877586890662840776959505450791376468943224110146099639445515579229585437573397376117169047022749327763868124721759831006340488776403848960147810365077154242739972338550401902111751569144282283795180550909418166980313262376647411248655006079070695184893255425994977713826997372905447317827930563114309803391438751298742591304211992965041702228087613714471551910595760135853568300214951097441806442304576418767632265258542798544008205837367461787597858523510411989363813046064085868092422638148317417167156888980443610625529203393444463784883344531598450691096678172917181313486756750391052027440210270432178531399152017836570369445035726019600725096549111550503896111191417655927502626127606491798623565475733956788017358821217781372643258474737238525510560565036490861583771088019760347850803473319546726213390161244583566146836453639550903375982651313204104763686305176354832561814499558653052153115342279007642724350301278335790253525345192824447580869028993039082490438149334576261444212917412246522157037437821933508310255475229736450534754405519872656952977934571329481907727744065726911105623697955048808170242472941777133618134689668146099310534606250812365679467965196786859950533455578831493914777527872302823960344771904808843235720260755967703380804129221825571937013003606006510544873792459555765132919017470782770086644609964023480085681362501510685635069399144390856633145390599854049359660537177241471340525945070084693702355577291801692060642411027824797405062218768050130295407420306284784508649341420349799757117984269018329906633637041777067051745027924909979145503629483219355576469011288952328592466823041879999912526262128191297600876099240428170323977202231656470092603969215627304757053250098684519486366660957541985135168940255621306082029031970431268954939973711158165857250837270820510717221702405277455232628222936350793083831565689403925648423324185371900706479839903522260713486934238097497234858883291747610544704692756550036303496668252087464585125274184534195140938878689711409944568412434228557626180173482603941343246139154503525379993186308870519359130902496659047450824164131017309161025816927662340846646754739769039019267246074551827717840381635952737924587573101949183931180730276551684439026223404467756095120522465431357600169912604798042043795989649540620345212794860486333865362195967973390590330515893008797677759735732688804226023467110626509648043535818186609058711197499188272224901873433748625636470119422657081729309979753349625406792642091165052488808703657783069347453799835764137288748438498395215796753844811863692010948040024059425232400245273247664719029577353274607342459056738561782440182886335280982991403108405619944041765635305323777603843060744064956432884646992314859534645418805508407071693000399728674119790487781687729938422784199754117366522783992349941231742393303695278079154534566223238956476871645032528834465642681026375997038353491834958970475077605378304724032818170149326861546006017907660002511252544493628786394819092653366754562487878259070753040631556677191616181657333617323634973974396980830774872071802442314905279191470876953247010036669790212434399865718074622991130456205754253185150155841392257403875663566620619232946423638275815319596451112731997929397304430977850535530582209083743230273536730402727380928198936844529181565687702274036689720469967069869331019842538794100720053897540419892861961236356875299943731676735050248003317617505169661610028950012940731420112777979957391230150830362580145392401922155498097541503048003601588233358765467756793846353077927977498438666151359056976142002242140854009526995139475258938627538172120765151004675321420699788840172497255420950158511902233984124427546409742566156739245378834996560897889289928195198960900861129187664811530079678805746356311507819694055825295514273482924629477569855217352247294031858497737926431463583211205893054510835548717118033251314138455960063513118225597795040386411841548158467254572273399891861313106218542347041826994277535402687517653189712147150242539333926299445955124925798328004783669956180895610261680288092344057083637594260648369469312594954492187345530928344399800331824725827389135048343240854104496609729288258709860894715894395694787607697245496676396214119919048717029020266358809982278985207457348062191961048781907498660194689021702384111103082400425959175324951780399484596335212438362425106812189813460064504907288264030526738361839491470400325395801596760131685986948809251989981505806061971110191011164922323174500167309623702304056595544753649364865528227978953934961120428279736669835003624032090416213564631475805954664415772115236832879514940140418306622448620070694093912971696519806377082521439522400640169357714715028959825957895064009037851914672957566933821735068993528112173892788680503744822328601030117346592431004556889708560591658668247800938943852148721867846336131219528914396728770367964625209848278209982538284536218422026064886668494658557518687040298149600951018827701185664730881143962191875639645473327789752083699369771461528160368041851521082048790421020765825902135255793366512991204247363158812474197693776250796425008920581637297906174742625952292061282067958790650178950095717480582499810393087465215744572012593094496442978783715938609492056108944514100405550833204978181301370343984821787951703392481530331569808244867869376522995334831117957172370011156985709167577769864650376164753272950279785951955969117839954394880300610596220788249054388497411458669913169764137948861339028248857572283829396703632257970281001762803244000792758796605038518538228511651404414839743010403141199179498232481264501136346264722604662516315036716234213315347185595488271385006294292685256428317743200857227856273718893077975869789977896850712312489641779285738016836781012050236522468854816484201059062429758631795244835716600485699478500080946365344648804810887182352658515177926033490715050783368196855082744172792818892949041488277865089931697433620912601175986327496774963902919954453150297776481836255891893583595858050780598611604544343669552542682306092620534757930500697888785246861769624681292642412593818741608410982356517591466032547585388653553675421506018598079557004448910407145041264425832670726974113679766530332553412343056117933721178270165043767635067941912039333213421313202859148578370692744160549517434656078693670905420145463020050822463765612355263596103056167309682345916162773955985876577775900003512433624192951718965751124095879043209976525600959835661430553585684692139806665875059938885599455392953081028196664758510745879777138563153326368945144600660851871472125777575512824840519666831789486097257685078468405699466658353907532063360384497110352913035622701025571116894268490933308663006702103457025657279540878334219141958715449923193633090103231101981746176011757525893795374656447038596839365248235717673381513080462640156951251671541415701581577336622225055733104773368175939386882672181895173174246342682953560953771996411413903872297570540831627127488549699931507132202861618423154401726209361113760519933611280662533638447567764889875587344616374319730920593966850754745243499746977921411376930203379652553935825595267753542702154103405967073204620826231877687476700126398804223802053426694702998505673119363173583735944919455239106437398182308194033607257248648415290263053546133329752548180293813946598442932454325621067523485042380498406952775762883779698889367478996412882311814739349341515188734993634185690631281933561715595153548384477576692586696840016544635394516807940394218942843455629176072033287688390964461530958174298659116122759754577564028426153650026299369364055055470852160776831848773831590577965512461242329112448222486590343661441580348263229278480869821441485467176910784860452206482815369946270757140632500441376803491540965402587364673466970539715952491672889890338135360015512102643044133539388537931294272140402035906295541295718623067567448671579557308549930320263244811542037672545425885061444857399521105504703627163320761325203363988698860756126759665771605364569827960153111380752167900641132151511564475978285163877192631856790245030409494186931387508498310667622616984118226315607328834647868060940109208969371164506486284116764752423376932040975194378344873955135535801996019405962749855196021702562294362284212013618200437547851028117313463044889147550455975926968557467448258334795407765202416213368209245949456030177901913438189932363080784474252340337446108983096646547531743397376865360040931164553835129165387373788176041218511007302819095547602975042214728647370356929440595295022129556925532864599621870234459372606523795677049353084963950394493512058270270998452936329327009721208883969785636253025694247789753243925005796098364383795342983737847126417209676972281817727888256519411198847313549384207296396026860468746359275758364165994403913693632456523446705597392004649111265060855221421515633852100393388005780618465313270534752415129803811734712777730027570381376992181184187371214787718637303753575245322404346648187827134620268212924548203195752199291252920482702416292974805806855202399082184307500888666113813769224203949123012286092519354521260152212503648478116018257430906583826186349854338057715786082618930830758754298670440801143700225456436528941350934761544911600769442713378091374202667171819349448676422478216071485505918527606054000668108941263067720587092713318286034167072127709026339318315532295667836849826845427169721921998553624300388326510209433534823920698285813426057748465944850632325771669554809556622785716816015932164203384937775604210207314535890362931783080032622659366295187875705773319282892148997868902525186795910615855691441869614113658219693503790079596627459711204972073530956581809276883205442391204127859966923324398892036273710914443457304149080049879590581308370899319748692861063003033575455368407945602177549388583697880825173650106494207844171490466281972274216374299069712839577357489376641541012388082502509608869616085749043314068944247069519783694863453316359765636321328595589497014994323542214017279030722879785813634232949043791595893662390413774945569009112314821903215916173697459254015341614545227250403263246733317789996477258857818528759473331643537672702492771959697403843712325579698838691144203556315937111099388852726733175907993550218445996912588246151354572882413836320632489614085985976604930818304737612824316544045365958537825240951033715164697596321393791130373375239407797240811982005556593401825805176556615971636359379270094075860958048362702311574914148578230899056762952305268213429617087524169360518623159791550925682798052574573960527920553090129111323015316322589441711135282313747460415593817108266838085351101299557159443079206958122087885421519307342045933857800513458108185807239872009550051554007048565450946504359306183939892933610632367417630004729429842344389069062299258081677352907007179692093882913132554255017422972998722381520895781626442489627662650456018389359975215962784071270126975148227699684032802584957815615474455035610610942723754481075743159374500490878078677701350981535161709848056355420634871318154138385583390895356783512072325217240551496539102757981209120987187123518959699867457412618262051900184604264216185601317654319815794385798801779669942849349849562913148716291618603842096380251541916681604001344470637268636902869352890590191368363885755719475173198206669886231824579973016354375620701944387374438823135813566270380092410135859348152147938867555978535018254604112764706031958736849580430348171562679894404493060997612847358405619374154571904251768814498758514109736727681734463749982375861794780220441106161761387479348495433566004310731530017104251202929865986158840514221739372290904172226143051254836099673378575189492869067170987024879776574533321146940568976722949734588317801304237348207167614629884942249292838120223148856622732241178908523803336325534301864466081695787766381391956397301950400734949435116760940988250827507916965163571016394484499766525018469628742311779953948325430054333372241282641543523030270134656485462042539578699253580657758583819093239234643349600877796656654779617643500221063455773724614814619097309559556465348842605584539675856798247569676577889111958883739041437020922964481396628300121418252811774122981268716597328648606437557173773231320504397967311534037921594705498930629222240762760546987809785680180407044104037109705793213584573233037497497113002300276333559289836035881280523348103070488881957329049591883138508285966186145456999239212624127751163020842391952976674739555465325412987063088511295803783548204890199474895836658811684349925908914490446261849832586104172435898543880129056505000258234537118704896749328037237181999112751035302898699139363207226497249848674445456813222060633132406129842522148759077626323114793915605072520472924033566477437609571984587164044848147427967770904630946892287152069594427814650133070582318023620952627524112557046627063287197699196850859243648702847912542013920535333789112355343315523378899186853223517959104177870363426104505827526959401646442797076628574158844715489940193694725613938726852525080362509631924530139628321768957905360335083744040517673311190677785599372223801249189214860192608377034884214527593905854483384691389410313199243796353509645983632763635124995389487564945580333561587295326595760516850339639855524880658967378810121954101974450364172902516219171002296814677725932129027788281074492973948058704554276374097185041626006414904874498084600126245946734694310619892613915023375772410974550009499789214772411208191971141687660649893102413103140747526879922196771126420836699896173804638845766252798922371897795911309622996851027646878964051340346244858802976799986657481821189503932635803707707121263094368987858328612336145157006336696073372399330941949364961610890209585910697015289273851498169840292060601436780519892235317297262204182579451950389394218515759393279214787147751334628769994857908407569627886460254441862333024708218000176715650050106875488978277036347685913020851457355938064628593997930650980269329758664902905764332859429342965172685573287134145888595298888439917815197064132839084663029261267278542137985152277768963900638432846334949009147867209102272959656965534496063181694139163238210477894589695753552914208451846578442597511508797106600403635108555337002393011269027834020402498226886207369351145981103924339374001939334915794151464216770704050153222557898540833276045059423192908848037334414583060388645772265550083901581043090018204729498011322100498058698220332688445859892582290232303773205914869873611683510223058164249198940476107673599730659699658034281426453335321312789325668443501489388138370854826673355142474776604140627012349411061281067105955308215219482881584760288989239892448289646994127747817347137221754154581324235898031986909875253872743178835330929153896454795420450734181914066118899575408605997801163789039576080832740316662084469904302074758110390731230566254763805544752198481588041410099331017273072243321658991648435410828848258099897141735726923704451668740701472803631352934494696129556513307566462534932859051997936115585790559534090969415443579014715035894097813744939245603423917311590616414758356061526753334008229869458846546410538293578963438659822626620438194315641828740591015272877574811891196464823488981821739708152326555078106616667657241424784791859038066109422612130424605519926001819206802723262513001896660704756244927864812808262809282885538268790727954089987061666430828551220209700746985143674873788965921003405093971181387572575382071577160537083540964485656724810717650034521003545159111216457606170504836265582260434472548743336797693124937822064268963612602381416207451988360694224701191294601947912027207888802098513544492813206887122827133535154046903000815655106448759986641625230032561297694215445609932278677307303275388787874308311257157862799887161696731685730843017819053233141066087276896130954941704106172050720840489766756034939322218082325412438248259253150217484722657108665745060692003786593839794943347949613157063973963355248609064040321520190832715061254212739486545964737208579462439503901281464713832299296114721316264574493935371982031114731864875016135788810335288533070980888717650336790598647943269307508793809525887837899258652758331077958321794319824427266499758937464398741140645941033576420827790842279269675344223783157840984882940247023038912904089913022763826317588246897669654067647164324818340147533790466191550472577883139843544050944293443422891890267001494906734202596246850965757362020471108412492857560367553339238261447953876976422034063630553747957626674815049558856776747056585452749587620420798054153162699162056939568468608922698444655724337465510075213595804116761802688094243309008837628783377995785843936709411353715887118496472026853920343572805240595471123418846390919276203292849812484521733224266650094607425392483730735292096476167355916771978033798633406602791898400956965842104233998766070103053968027199163959609775987925764036052660729196691150558530979148184462923886778629759888493750147713809915202804957905252486160187081987431856701045508965834195011655388431557719816863856856569623045340923377160167254933300400495676909663509779515162404776913535653105797353375599833054347116239580523110630227351079753106935579836126401428636594346651482544680391451091051639179440821679536925168798709215313455185517009670041137493250796815416420915680433874042644227010318936492283035162513106296998243601264938003145979846907415924610278054959047438649450179483830543538655743007451407569015035202726862468537698873424554982314651770507078621566107622388220857693777025800567340290490739555709896263733924777049253764430069316115915887995498714672720740926165712697808237249465524584313597246938356736380757428744330767213210156319998696656416395148809444655405861350177291837041471521545734889322131653697110411012922562144969807497703667669715317809559775282921881859450892809412473258526066031570341916930089828797589696065971915092543813118838876370737066240341392819460387624367085023259657304804598224238735324303777971408781030690446017202594447676232755850339985078002553588152381736123687417217035311728591284577917555989264426918963877585363876158758532417549082000824847203110526555454220793034006494230004592939329482109848875305573225104091533876356858135659876478489930764496703828162033634417019025950432284639992740266833386046947827414718391951186094212270044231047934036323935773224831942931672220596930085274001998479677042904273617113976595359911624490386061677680553864746668267537705411248715158821205123591744707685555066053147090291825941549021986688024814479896308429323817015004651852657352465876881288818491271882695849330566648325299141630163728318500778571448246259408082740265042649195992413072821608047042184330362885017316223327892488205859742648678474540527189715451717755233830357240985873010597263476573904851029661429552920869023865956070251430706554524470809453387417430300029694295220552209185813523818499631611661457051292781524088623422180909162859987812338738353867196096546238966102237144583374976425247928460484725414238271391176539638377940216070215764923844789217116921662836659248117600427592690445350445822703406956518910766953099981773085547951359133713884199808342418525335627008257103494298616324788116351264558742545041465228832954913825243319215495984988769673922659399051113471028119380266220351292183293186314582983100623383387128125153850316760398992214276173856370700199438479193318853409227774155388156025734927381986411284931334913859007602485777291196942869984623232943610806321431830580601949025912987944500711461988927483905403096872070441023323158265754081117222137911980844220087441249568987580461576682383311374433928307001549647197546188330653222138992841067173445630396834436309445365894656532883636463242483538724818603683953802890033631393263704844423652518079098283747356429645361660615615429376004280507132044675053369975663218978009734140651931055036391181168658965725969914632889591708249752152104881738091506437557667490375711777271160516494061528876225688838762835733012109232199527247549870758585329383056796955331172335000106421784698018990587203901606835473842724180365614410710373722217426645516205383303798953536142061803021143816475281399474739242507961968718015027852572304738311301112186529735937597823922043751373318599097712488777319974562542965914114363702832859494936611645146978478232423366150975762077528832307596304229307820226495623785069992496559944067761984895110944026523736618912960176374078872796913357787041449650048317792688881807928055088786609095926706100702610579831852059380385835763202161532498535349536685511704790048817399273759994428388936073114284918750179695064665773415504726030363816760527150103761499572887766896678454422539902406983320495242942169979565034181862861617626806201563810825065323502638566571028589400013130155739436077333589420194942126314375603045814833569082158078843853975327590257599216074787814525396792897827424835296674979271891633299381082439916025766318246284081618829001149822100311197396306407034607624902911219006607331392858396090783726484248503084616424500759342349675733559633140873679549794237994583450112659720227610252211624756246730383491362820580310048603985769014309866696366171915332458315667250733105720155213583517511628354663275153302938690006966856747206376628715290076769703478964413591603614961897821589504023136411864067502032032720481755237387638950329087767021225753270167533196322401884010902075842988076897718311726382169915579897393625851128409643337472391567414348994973388486952839730956487154064459017355246580223532098545409782501166907784784911215699108734661159536827362927278903822090225377414885784394121742977848483079351076703414513745226878294946371766301595438444915951448053094969062814981340472799203756363206631610493870695996933215638816324496098591999702862747736100858793294906368577971384154496118132350069472192940051709148260789359636465594958932969153742012648852566449698093174255776678980407468694412912613152720833184283083074765706979010294228019814331670667844062382125240080068183153878717891363760638618712911818548173145724600499059645018186480730651947355699400621203126516391654116284245039682156228924548438085523096483560444423302438148633840272748032381293694141145437528972718360359382350631526734786610806627300812942724842999114424869687473661419467615757181113709226085336831993106590519564771416466657735858253793291958441919049898330581443439643279386018542487599465772445108127993338232663027542461904151351690568384264512222980710941326682410605294659562287077586593746461034487998694099736055121432800829063660425886554223035565589279228491345806139760271704918209076389468357512246525957392097330786770008570883349904973073870073067328545080754143554489572647019866672131037320690769001785463639447529580977655984227909819822027371822970964437621250486562356017145786987214871506328598275337239651042098987999389937484122307362944019242079067364708011353866237459020721815640381738625417918869713765927564709720072250058933611957558592625492329701707499256627618004144428976167379237226241522377510669023939353929466357227632341681710345328039656722584797070876218977098486758821610775208013282469892762349736018318970691361189276551956132039825574056087142077116246508630006393063235369011207223784064279781865662451066959191607795891372234083256397707454251563282026492038913148743765013498135913233702670805520721533158717737050922577721079162260686048813875943680424387522920282856315688339064251251021117870473478459317845038937341361151053183047141894222921019570923648404050487383078885273304890678289113755616278650683437356957268399769708613355688701482145736155693052271581312221180170084894770735799193956438895595447434688905045196746019152623705385181217067071980272607569499115691008949480959522036081949727509509549121860126727157063793419737578891260161589372825752501898223766312617623941899567132381405390114705240422685581959483402733774969959570607214362140554166040008518769460598510809253667885889327505363394344131585338657790444805336355493937115002014728702831508283043455040433976910764819860675887203502951296867178283316972091391325883485750177063465886974586158192008814119836815937727471188941060522207145381663265515491364252075007372121328245797648820961718217197385987481474522874042135375242106970954806334890277385193033203853450271114180118565600860657597518086120479803536895157233478665316324695820858400204650089400242366266255127206130306987961125938237753883180442089667864154238283728238961083073513840835167345282614476273234050342474089692598209911401262821624696662628028189492429007419083456045089409945085514422311435559440553837310280280592763123110606124928971582175169776802119074789574911293749405067650705217067270468280453141062138675953188227264343563097283367901331782910233277152741377085022116083352145626089419464277393566245652839121984336995497930986531526733279267112447698699194757556296841751821931127309538991246442152031830069676232178837060235861194563328514757794624105428060093559822877523129259370206999154399499930665603184325445487384474600912837418034677206066777870547742632408713245304954026399375090221525368091175028700968725132488130487587558695344770132700614392062070903027935117747296709224451360996818892550049138476752289249183672338373864877828493969283730096039611642061089372441804227590654010325540541889430102363829666945412339180265999809929420445254461656939916829931182883380374947585006897830524332185543587812824108971375830956772333299734835756480282747924496213053808199566791118106797955172179158246106983870497806587323092862742902974743131398507558169965948487662351204043967746674684768192963393592600262452474793773670947093606210803351205992847505694494700564552124472964348094717617656890393510678828806172328184718348508914253292360598426507027623503512370357126707686795227588385341598096780634670536928535768649859241142645939957772998208407703984822864758734297008521477583707551483781660167172751658093664644048969035377349281103757744266691048311425858790928387365900543009293735621957304152040995521594559879226693163110363779818752314380775859711750758512621678786297636570359031333880171063703401454624332291186715464296038437213449815526877555369730773770279958715662693792649200193857693578341113189293659090122221684654267648209973742205768258290373472034410105793553770492268947037102229418672779926336731412897585035656045966534758113825066836625288192313694547840285457629619878293030070278059712341459925476167334506146482325511655927621773337247484613227089451246017648369184920049541586657777538077886744019310231372218117888805924854361737617244066721791289923157812552760408715335894800664303242704821037926015084748359633319728444179949899855001768142102556204090757436050528251799978667287600338684791804814044181901235245595727201058694023575393426637431955983882806081241180677919495632092465090171447834014974232198773877836984994061139804719273479953433151541586244211494225652803627096381343987790004496052348121423924882466587725672046463090311019879545094690463174827998426886814075415037386599374896974249837990120025861219918928557097914482875724407729723641800495960170057532597604529642275464472177017580467427610355261351033379529947012929346339696131160119288684953882506867297801458463795165423992577844871684202703522204833489395623984779575137987865757007657082617031674163462848121990546098161095293705179941819170031053441322125002343809588525755221945805753379436969720095510336641175751248510153586407206164549795177729935427742488399199858016327586419753138442326635043865574458348033882519093779312427435344890292151996071295516752960503416592686208438805699854265535608770032451205019827288978224096118443914338462002441831266169962332398661619807121892763898916602043892320301247101661104830905422648117936368545879637427816461832271956661528852697994949560116392948720295478175351701922536629111562102464406965399042805453653199444614311130820766886646501536877907637162254701656794694462570255725395432443380642448327216253038630706946344213909548813639029049292215761133728902333022433054462880481847171385959504747304913040645321887263966086779295977628682397728899843701435280078278528389170163738958242673207672098918404436043945390603000216096366664884808010771207504815492582007394655701301842347851298213432328856462497016081675378703199838071377792859734861603433001133241706069400926955656803241595490816890772771438037018273694969356322748533393425129142090075868048512762956630293397131110310292797524907624482620301519872164564133593044633741278699180237507941370110647227997459788402616157734769301497910902832302705621254707037151171157499638129740525501355191676561431954970424684304764092222137588777064470298028057178863351099111222572955081345209592144780695963767753450103953297747253140880765330270536345995927446247178960707421488226911558174329760194468696754501199044882853080236350201789033691040626700427379858495085417443823358160533059207112596180207597304067770546810235828568629516403227191567416822590558887321684739481203858831292757237221733456732924065745066200262250137035184991415311912079103471098528914041424513834419922484831365179577046342278575173904086835778325600918805277737852769054233362731498226318144163155354941638792818773020077727347156234224799296901268786610968617507035364875741344251256240961198416938550410991764839627226138756270485915466588629612160325153044476539119531717792087675375279560098194656268214550027476800972463735014815704552193631258491415554888718345779148632308914208413983846624471431900211048908454192910191451093111420730213379986257368185618023416764500876168094762448671516142875685024571526353091404787417731166654568825412459783104579295101565487951043851090968019373728642564999942422969852901805406035882427059287443199065175961430013400998250721630692591953328530561940309526157705533743291606171149734003007300266413696720923163459280428111346906751916789177163695417584882838609840686647920489302386175782766701309259407138515749122704407474603256894326766003769078047855375337840023928519587859976720443823326451459711971903306363155520576072086066719212773681276636589280160246113955269723509985359191509538083111390785531122201709721661470202689561467087507064308742689847951928805115033305541442335631555013497034948681488678635317208053750363383031009890249501753478162289290416325045112313835547369678608826338970571710389033743571455095941849614190978808153251097880002212241141605325298599626700849507002749173609825140042219603432587218236948705223367696919054227783425858523679310335434947374965014830082450681620047328922801927266675035026005671638418812286064519819183818336889785302290466253794370662493719687814817991170983348418389339461082492449292721792583039257797084268346889232307921812035318433026099616417428821612411425872568475748980309792754379968084270372380178342812148415062545676285155651356622890204597468394226190159211866784228380893006394640561536204802198987917749209043388213684425372989208904913294676430121833664967766967985876747851973073468048821566554326621551388112305907738401917406900411881969661371318429497264271624243453433939141037684617297299272647354621480611598087522549292467838799675852809406500561363933224063546962238244600740989581161364021386754397643378139532709539907865092960385598806467788131627445229356317177763520475176861046773204148445115992701962670077818002504493660120307967236270493855550978321877543043268351255530995612562467043495151891408162086904824245658101951491028256832809910670255737829745965571567695221290721366938966200505427459322210782990355761024224271269530470436385838807702301159746735708813747035021277579413102208092286318924221503794328218801624497472708866631339053506912338781480256021301879157029982629586120623495459611795818861728025108843298623751948377578956327204697846574477547733553568837510836985934793816782647084732726697109970756959476815251260267629333922079454591442538925155806667982746909187058255049050140241978759320795794963651793800011711542507850988514768828927236522227360273714553238707268560903667330652715044834833171130615519410042742393970440243473901729245836113777723203330078667635254004042875821223740120808681264060468322161164036767429470495569197318618828187036933791793514840849610206340212533063547710507546819342550747624885571960795491863550526950673078242283138157765522478363703571048225928139725125064308608046039281072560303426745948853175061229480115000075341551108944835061888867655886075601413696883651552632620640330635711351899932905549303497809518910298034767952447969800680081251976986574261967152852397034172831182376884654504027443156658372476122153616755216190896023124067005592854179812639335062860551034043377128682512573963836416516048584018928620061773593788967227387911651237278499746697082770477683092828540862377583716138937987523297848246669031250309656314429477533140195987723020661642331464403025178434827603004873839429269052026318606440727802474254583644239952080197441662936111817534853681418799623034929174987574605297759605537229489096162877188436668939255021317314256492219397135293675504155171820472842558128706449230235484125689044268089532096774992318781304181407104849096762562327061855694969958135497478546469904633432054097029424909927623691003174073196227207460352310235366261941654763056259615181170632483190887686068290709157367825181566530644453443717898275667274908536298722626427437161554643210554871394434225785521192504613839181353178183903502013855851319322998822637159863018667781814462620870381490174854196367082094408536738290299761599703583569052670285298422214695228096097450076700608725392269951566785578812377774861176156246000439624546033957536143297734477348893450299848300725955933468080995103371115814234072197073516209402361566343808711627790804872450051298105827565675195519284558149057345624926941099161656624383508407747844850825023408307767024570269652005828765343553744888022790301437589858779207116562794291154583046091766645770558501577944846211176283622378955379580443631935178286403549553516069244209183870480256436824678310860188386699286374172833000101332577938654416445077161417218744767709640333303331846244157019332366267169740122527152622961711416146415211206797976446503869942843270301842456232766394650524994279058298272771515157647124944677790569990378907894733127948516493753702941306644530077403394036268563159797056027184581196239201929362976101963181177561421002285257348698130079502118880698720997476383222694349461627871170417802211696974144569228326815258387061734019469855901934656981466515818310245611048642688460275116648528688467577970755688242670292050477155481567204713870590471524924298893802739160407827940895125298209790187393771635420094342945691782310262799134154638810175577181718426679843427865651442898895607007523713395546721720127874187085036977125172779711876975700878660295820114019872267890072678304807158867684748030401378503961000030228777704891648800423217015881230081492718248534354059852227898529623316474650390542833198418372225992790886418690524100329213988552477029953066777014412172179323002635583512766214857237034453482619266733333105202536880750894676495660658889771810478215461159401164138997629080551426358234220392633145206064241683882730043224673651927675895330019863226680627368697845695910808598091801766973390376838298043584483788207904113760701273662763031760892085280931640258679041445211342259302472541066605602923192488641149175917966101849811218479645397679789917560517034855259794724883943573345752403032460401659199598009369369856649532326388342822387274572299650488324929364491646190177510501769173573548609036567085517878579076526354005793309089040905108753617643880202970641638623670138946820837757230594766595560964075551327525903556242650245276920104157881123306689863810174810869490906232584773142340075309555649981794949300406762395054785409170806178039986788066253051679068878098936539138609169597027718879290927243319387684126915242532064199081693820495797488354346760001825095718865315370929250285942482024757283378499403570264325540698020710687251226719378810688179863089031777517817149303313972099054066657429103672742868800518305183978710165444206727671980019664429931448963258140877533101875360576424516824327918110401919481266525239559310291872797595790436913846457368516293947099306100229053894060070933707828392620527678324812061958978654645517004566026494169681516596237881884480732859980454391501953945374418887971285886963294124026957293157034613298757433913779081676799396990153652784107377419260645132567161017470605146599047524287115422766276263793895443231851582590764931384265501148396507299138178713149918285007202434811518429378730172875051973168122574746083336733414287585584880213155568995059801509988578814917493876672331510358287670300409839189495268039051837219325753008359489417146140650270169240612350747473357870099335215403428427840901417515881139882963487206150107082739057583921045820139275501610828354153435483508390249180051037072102422668659107466105358887115648142918276716086079361511790149592477529373107728776707843375525511667338114272387604485845245361696147270482564466299712726351735928244662218509012792938098277925041432125579594792523156819296420551935093946471236938271733281373675092328146845916708368307510267651569965042063271829421912874452868249518067842510317792322220496162107479148851761663987381927649143344828570379554635761305481761883200761233662510766563381644972179839483365722455714191747949983310775727197819458674426919728511445875475917340266669853767678726275006391029107331340536946752801918359433177317535418109892993050035481213758318249073757784598977102701039295326369383289495912901353139090446711525976323329884743162661249211065916468747954718077508370075322101346049699479530563730902122464133278371690928246298277075918425905631342626175235202399653924706465438306280929829045001301959980948619675330166602108117501737545677542865057765187694798318437480957744417357371576710749390031100674551384104949606732397314013690862251236974287401409952221848114695135604820350134774893215951321159783597140430126376213227909388571317948774591524602627139490742884084134921911728880958755287574335175917740045615852262520456879893846560902962790395321614274362841029408047737042833923274236994315388633578775612014165423659920422598397679008414871540735238545835442938997259122641418116837920369530264335723153828158927137264923631179083550180868010512594078350883533172443480000236434477124710986231744879674233016574391855854580632875661051361336853409764053932776662745099329489407513858740606454476862175249682474654079047685057260373377972580127771861586801856269724443540774321633852798061070776302156504407999144213576500130392050784131133586259510746285323066750344000558916735303455806235787823080784071833943160628345915628452537313943060189552352830027307475601982038794794201299192503022410690096785038295809637973210171017793174896957954976273473836394107552919379938825790712029892634875198452673066199909846903868814314197086042119058410355268754544541815866736676187007188879658184327066108245521675328331749342123510716066482365887993154563548589460105408996714351232691399944923768785618979207574880878957732118556030068134138636644367412299266008266465025821921252802649660017691531754815932497903492254276965013766706661448036194283126097822471004517236660217735694520162666535429701399572604450406992817853274618316396384195829945975393381974867778905017098447189852047771747332558778207609582900982995946090080416294587585960451833150837549861835654245698686219451502667113576172862762388246215360428651721131851510195093288631772414237644220090239727733716756357110166797102991490721627605848187975104818782220323907657487665463422713050447906928906512751510043719572556022596042379536795697413025994083762771993706051074334946867475589687757508204995537640418099968502914394828034430974502551043650913175422933671276516947234783397552458070331457858560073256903919674119730286018227488549340247227780399750774923382286838655787625430171955582142274561283048563993459066664520135064189027435997847474726663028075575262455252440479053087987357357553981476521550572212921437653223611983203958820530373426883248525491599773026316607285059388512266344271217945380847063934407729376381310795980691507747007388868078675561099214040160229403253966912085680430248380918743199075158846101272474779976254770101329962712683078434292072355537957780628760755504749000087881573904543606121873479039620092983830647327522721454899066420177860573778775325332082782981026788969513937815528452471768017910330838720593970568877697872220837188681623794319300486618396247514625840963687214500900052609547712504195328049193468616133998076924211809097099106753522169627562827346546847321509440026621249251749371317455671850924484994046955019193487480437209136497789309144201493193952884777178559817367244438967313751704470225912485808025692050883613799702957045795619018690014692554252502242698421818327060552449231635781474632604137448913893193581631795530124371281452994691555300981285427347247242308689629520640665526591221435208009267094092991194141338797053655645958445642464938244198868130621399230302725902328183540013216425805378079988581946868924887153805605255400749747992159628396028748830792382851208653796418084007893877324389160407093661496865210884388307090579580206596952622959609434082903691682010293424219778928124135012269492938492572931489020831212512390648777770197000796105150477591970755907063443841144003579032305681367434171742963051652459088168773396989937110922940923971297142765500163737723821832955311687405947714212454948954849960963594072103459182416550945197164083053239263542510526424167776301850640248323174898647189891373285308268201143684978644140339491457973410148524078883722418629311530721757092384552456012433675161474872136097306334863664841130522016547269596814246170512966274008808961367026854261352129502504434875589784611959417320841283455071208300401372249649473533161632209508877045958348419046386551168874993927510700192201769695502122035700673366113800669573795935673515663678735690807145912119233470908842621018174359342576596679786198753955414405677762498980534646033737290320921378565286158950604408086791806351978691592447048616519757772992792736833296640974062946709848640393782914113565981329774403118751599319015300554423507093288615680395800384016254797222895933284176578064724591420890634786192555672290653718760261263649603283574689242679035373295748710793965174519226847256809852772172763547528235720115297212082468630379767575375295305957317673897680642349559433137961425007777368647604272937134733846065795938623103296895399959598144006807837734729275698914614928849619090969363575846786294855427996373059850008197644432161435778494050659068830092214216041948958314952652214653135571666236926712658101306364553772048347351978465994219358546522621878653465186519963346681660175698605866160312341702253980893297703922625092126230571007548821353448279868246688474679324526830984930529701335219893736397997981312887053594705256091418377862049475950407358463548619432162109297589386030773534340817634387979529694185397960265689420878586238950978663258832475936666560608713654166716444893327646607571733183804388066043907629636389261455203052977029624568676835852238019100558685954121514332413132963929761160281784724863559112071892677050407334642472884163721266819253090039761887903458457418083497315386386273589177861978595749351204947611942107317907570390433417458862890215133947960604960485656800763655588418878454983933827195821590812026325501984845476734975176298147630857346570190912029609855625080191186400984932241169342227885266387348516615507283779975705311411991041651770020315354108540837887749625254323596787639039300332480933642197855696853557727822628863225264916415602914826271869925069423804944417909641232773226585733661669756115426938012051628488463544744580057444687756825071557097232299833870993333856989502808620948996114024938401605596190666234418312843926405711086110326127737725238759201979799018690602935539037712857427314252091238925555677300327406914292001314210125563120109296235482201976274428269367139440044996063990252759946501496208866382906356693589620292731316771767212973423508450068230342809406189530664031626680848018552118170744592195824050310730946612707147074881630870532260489899151413192555382810463026713106504178198226218263374579416594596274452663161437263354716010377176627757369583482940619516172167185445558729708497200995140741288457302965932030937829707339703902997966537798153609902587627374036028710797507927860655060470129963837003811207987573402015352211725838714088681013143704273671214250593131644709052073600507802111406386093001574868312972573795518836186592338823226721293919112093913441916298641621242897008250314901170320740765019812102199037240978527315102370485205589563962973406256595865944063793614667300502359576485506625345571649396022173950821299707807402170119453174235800220273672716119373954179083825451470813790531520471433847325952559405258922689864044492504888960971724879660920952700354119997663136206812469461983140489857240135510443564043026655248424351966590212844943543213644978155051790576705007717517362851558050997709810712597088212886397269355271360552550556430542796376489350228052843648791301648981024326478718972903207031538365777116812228027919030745138022172739575215085856118383615335987530335777454314765327204650597139432919789736563928958819316346687162288643266387061657026033418751051396525694456990352909933890461862013484693764235710020969017681927808618306339230684042225386889845153533643368194826864944710940181231688270579456892814147128289782317904206996088977678067909435322408705977268093232826298541986608308754987657981342356612713496759031362184091016418336399869561683847422053044632354176919322950722243569612840843925701300153650276969634216969816217771605568258895842146106391398733331249432062038462609979481944501766008708450941045127866194609447806611431706103837880626088290958970553445564021604405209983239715036552236199764213836494102525934954723292732512819133673930353727439701926498634335628188513531436066799607242266626131653978741577806715363247189946593451861691790837687213419396940860762376452719893712251286184260646301627023890097003820274707830905901167745924462312795138692993364674001283875103693089211370027944302435000019212047981432101064760873759259892470105193418622235201069408261910488307038246337172797020157577277635824365460690109712811090616207585674875424390296376517469992780624489398207316124741365885856044757034858252328892902666100356645750493912547963031204754760374790152141211176317647423926121838934234832720197569448733390937420948335490986319373489304476909318524486122307582828614978108864203175921750004798368176613952158032489515791167074394943261198405418050712186987363242985234076321618299051444076507689431699680531871384852555927701173386754232090013066217134091870077663711616691101236743589544443389605315364135356885032038372146133214282622314571929684291035397960199544861840534034056201664151902447687239512978549028873527634719551447152956539860879565763228366693046613063549265823076785374650090551841280169088605008995300381681196688374310863835515731218544989260107089190858887675532104377091224864681951303423046636425023170648606133700067713252576107366755909295774418174130703035126957744339143640883402139885467037459757365276054484530103559899859630747560968320483367740809542282599217277208363198554780779445193660754427406481373876830361250623214031372001866205541502461337293931930708691574323206415964661325416322192557208361011348412152159802823317939501517163053186655200542558073118273967314505700011571330365259564927675928850877083369304393454830301408064250884549810261564023941561833540439818101296066675117437212842078349796171729540387865180146152373434797959744782634386177268427762837883910416216221807684593051472004145321985644879839228837146802641645925925163672848513664196476795942086008503104057281390723547058391809773082825684769709572940603354464016540695780855452150367896265472379543283173433040694416193752169598242029784166012066352257327402839441512186752466586788329302233634578841151378131100757871093345642064267483006090768206809550838772586272968571816609623010060605571371790720417302041218688642629193533480556091522668292107439521916620858462985257062944581152279673531343494476159506598670312279120865890785607814635652709138453810553365661566438049856745644608118654913364669678732670298922444359647635984504757233174231320298560338504317219546742339769139687586127107217286258599308579050924358164967964153706803206459729859603740437002079595010594228223594736522334998552862254198264585164837593475401558114821916801572646445604075069762984196696395362849515318747003773676312618394986317319117613938865538971897861578346975169694999128147888390924535036592929560050927839815245764831759720779632317383304223232665817188652602650877522810413547214612976633096631022828490241843438972746873318544087389894206845809778602811648261206393138791481346905988188889206385449784094281270117710155660734980896634025066879337662182729640386500190696316059250423238349779370464551970024559808201660630188045721403816476055888547598571553529364755099470719967068517355944057734980693120096973054770385651190326730118979739843664406919251299436189125286065585897174009058294501421238067134310689843346392519429497464802832962112275706673591304133775616823210414645519304083636428404669626504555955491923908331979743101331421206693203435828464190248660135319277511148615025349827514902931305060852300796253918617083705414094726676076237818510233552883320977145294981873572061674425170173552805353606778658316903776180516642808037279551793643082110943958266047461301193313709177274062020896633702561223741517312790008248111328637072729347031321530175699956280569091032332562269432158672078262765292763442009476625459750578205371466990558252449008591610364665023503507622293655176225256865782654644408651355481528877337566708587252496777385937849977272102217456277905475631839626423692674275179934384381023788711739669463591844586235032514527323501279505634242963563378615349853580150318658748969659469736133957619643664816952867195910658273345585173021274691887375105615458592159869682020669606525308767108887454426726123850313379364354558496125725689867497277687295049299404024728798056713000509480144616444151743824270456191294369705111937218368320549736260209437025328463677678520230096520229340361607018396178376098775738411058904200935292613310253368812089239024988318860544416000943872958512354074068786330183947491964747980025868283249349877690907862402213972331563264405581667511529597747279008944100847352253505763403780416250816584205103670046118256524724070433017966551738247484443061105309390654097964874840099792166724549002662264261952947830139061244337624606440475689304235715179301761739070835166630249630298053560573135367615298321146699963365297063526675387795106789098132903644064526322961199771214139072354904491578700276891140881067454462752308433627068939128134713441106360752937694688167782291720049368140703345689022870923389586008275418756461996581567334046344817252625727278925453898341287214652451536923021622162713367722031677279910125462523913301749255845135743917296474694054670910577678781769168706206416807446990865478893173875473866347796545177285762050492590720304951946167208382813213935740621538993954174689274348222700603831561211750260329905186791136815738285355527556026258526096825989781056770078543850501848405479043689612462060466961618464348728699958062045142205345197638338723877905343729207822372601288786369319513365518418589329128698993103537123652846308435499574463922647948011070568473479739496858876876576384095568582986420544326108760289814450277642420545619679404576239243707653808211495399454343109524957506909078856132884428702550015215935036662600792245433511423340840902754417780008951090357882888013999708116561207934704160410187193135315433925743608669860484174224144317262990653176185155814633951855247642998372211735489203970827635680597236629590031791162852117567562271933682920291798773011606040196609741569522931825360874268808423852076958569595521753354592807940615682517723977374203962857982168433058369358166156162753026264842881401673671103203050067353611949736872118595332941380325456250957281170936149701216461756290945339603102644408334927475012385922417076353467515330077913602102677935354882385534618966900849792864226141908451495099593703581190581762233076030614298328503664632024669561645374150353471233315469492285529890900198580505043241049529070046876386427149645523964051730205282838103708781573521529643209845781250504229426034376892042937411169438232991520430011235307479600319548288748763765239605547874543878013065086592636898833641945396340298132901474201085322200375766593140787571160911647360753132611881094936232113538997066081614459837019470315424274712761795864445184344281389647092924098184553174870952130346303472084607410679737725819233788504120476895138865423154712491040396352949167745492863779373574900419240147250611411639696196413803517800331926929162832203141666783835267459566686550877800768956303163279787948853555657360950589192130994816965231797098574645182393305644398799245397950224580362051911483837551828950428777922497400413751316333679594918517358723339619148925071133446503939813375252486355747598909238084551807128714578298514686072761511712472026801275908963461050505003889104050317680290419838254751611868881033866253737918543992416942271191836283985308230333518596044103239303998841192407972247762789065382794039901271012041409912352212287423033208599729949144109911036985846493175740502541529058795030983172633898715111056416881984432428141777019261041632292958686265254846514587218617766774183168497480071069065863971340538204370994135653802183868721804317417846336749919631912226877377441621209313994913842200020080267735793780168530133427680580648520530686066915743273545040435787267098856779781358798171297072629977100235326658252356154297541177245076617880519740214755854855294373211370536085868600279545746966204650612387525718272655959424639369140198707539894542255412731276066441020945801910855694816456508223865165032147934900405089592025679558952203239630182466692908648236163026778124280053057012391964128270897516840929856530815386615263211480525059143912510754721182148876454339145861475711827905852528564936440440579475842122024407616119958318000843583159539302569905840603932641978738506306951075633550929513877557257173313670656058511667067020919544768622041738413479619247148238076598190287881245790609116722862634745804042751867187070781129314416349356094405831611773274124999897668351879578106931857962822031550547350377951034789952430520621702911647805174462217163377411827239129934916621625426278504132300619258767156808531297341709154643531701602719310168776098097993950763620430506651945008550679672425140794352893038681448977928945847420714645393869507670417706880288185377034030530418623575492838714285958844223378965382115229252809414186740024578583130843929082432867852262094894212246799947834791409202147331667245813273247298314499484689673643106155622671353526313220406185524605435955913554734547621185970051480819901741288262388992791448876230683289941141314174008223689307627151226275321996026309975875680742631430324981616070419919040399633209737994996863462214299069854367504181056071764406668112984235771667570109943667466074753380087086654909714906134215095489057942375977339620986333645449117878456835691972406381954336808779972787972724688523801316037215001636269103505503565358952641059298056411309317976596363884049959651450194453060515086439573221034012893405114277002710021199803382131905695666652199054003438389017343560437214470976464342074319440414280822789353913210050301908435149869395939451463702099180372690297105700081625596776218295990809283152307228944057782925477274021283060771678291970711732865526795929155785213998540985029075300326736353664427276996721787918757118246088246734484666670390232536955192021697747455139844889582658039038175442606002857611925486916835017850353044775635770888465416742905750421767054079482264866875821823005159300917008583958188181293116394832049146671774276601763822279472897630548064741284571276902799113208063491760973285407374966827818404961694101816099983553831617504253054828661701903122826469679739224206075207417616235945812356235895636781812645610564248157570175298335874603763466445496948328869225232820801768294654453100597692630122922728863220298932508333386970321861046132073761421610315167292733732454190759117606045269459064595044705150205674913491918526652254474168757726881695566441984664172384033036460655194400842208807416043488482402659398312166993654475934701403119669410648249156606360486429805702014463209150241643127869094622864028733812038794309830212429395932139055667708519690636533368166030078582119051345936848461763806035315523782065343811410934998136913675528986267012023157972738790321981105318937471498092248923298638314222355895775264664495581287193206106381206287873302012569781970193351860461510762583976702750891715211892913822695107071332439855905529582813592744756672511108326612181303834659795796486779613031468323869896895182302696880869013353193885307765717051415230058097525806144895945091617649360403308442794141499039742766534401615874996051428238129253697479696693539468669425965925829805214926084922893856652639113535355828820895806177265033090249475637284947427254701224197227887102143483447679368165748590489930831995162203302751399204130640034380401583789949459418803999413476945797455072407281083043664468165956835314875588671027114744533339217412067742066201531497163540346476145705974307496181667674899886714827644379690624130420844299777747940795601265760623474657028134995842700636198377158673355707963256368008634340286482799716452283283742238845677550433349710871147347417809113856112270027503806604424096582384723542626088317823993436766819040156766358281513493741466639664384407804450196835827377772963192200220916065493531363578070912270451888556209878709724731087116285616663967685978443191553593894648989639327588365880763771654355276417933365659145155725357255948931135185281046211550813292133028795644414037822372301530535038177172000831963120726772711611026180076737332734994426081023499125963224405412073281877880150352841454939588165943833106757397233327556627023984734517962051941166961242837147034709751321475284459970026214529746527201095282487468669861986527680475121596176245948412247482191956965059236882812876459375915727274978633886546532375413402607741930962418021390033036435924147044715078993173830955420311646462042361981823415296691021743578949986892395286333523659467207845581298195715175061755130577365216608666283790804935323226537393192187228627973238071500675753168667128932389175925909832551078966993779799552973356600676417736459180845331763705993030115104927023132448573636790054469979834856434514216567518460329279072531763607512345956182689987605673746657197726889272676078851963871495716574606479177499566284569692570707765335835049382504146652185871348298484594849455899690317124219869802391797112079479408883488046612828548366546033346724697814442363596405853415581516742495535368875926527119497979790665564626181247767662446001309644279670947472769710208144133990811238278007033265347884651569996943344997532429519072628478656497544813881044423291546760629603765284014930985967835012166147252619896237951011789171604768611469244121748442123654815696201180773237982410654807124591108557393986828064156295148179503658040853255979882544086943919678185058100453114271631495762111149364135879599719934610932427453700039355651320282652462705058910613508854264852338682711325945891978083898140695333684990030580962749942791139136798743746635576606770061324960715708096307943685473321732405642602282700438711116694430600998260567640862600423810473881730397488890613078389336318358496298484187901558030735123351970204952185607741117547424318278407744267632193696798311074012809996078152104885304377075215405830226162849695349140556359388861326101662196825331495106636715559526196157286104592932732207430495753728509211713318582806476161114680083003690338583155575052558679070714779595004829618870479146665357894167377346846092725987782885426363057009740591759635122211396665519238509056587123817595737771461538078137761875095811659535375268599981849364910706464610702953194544438559792007801365518494668887528823280837137395238868445224339612213613741239502761924326571156885569066694530391901421996857575445286224849401687674875804764520412474121993060697997038937312575533699005920272818177145748354533371264982072906745989929129763816529914910206792631935223274914275999215116044045524816698690364154528349895606223224819171872207213509836212410037157296874038017289424229159330838876516161922871960269981416400558620485722581366793114699845044267991932808773844433713715147042433384486993463264215227292540787039534345765128051818324640696068972325889176154090532017223481874864634999141279390097928803524363662966816037332739882445243267707790009755669251621519832664777713967107076460245267087175555297899604474399435761870941750229416145652262194752985266949701018128756050458329425568266010870172678089814849640505678623920067905351844663158044825890172567250486648237224129406857846313989041214965782787106968979831384349189883570149027965402147191778376692526567248805567940303322448201661985941726119994832110943855426782965053409653935557097172618600894438743644568746394995970696824164489269565134310743119507489874663085270779616120190556741095982128046024117544910862555556357379151029774008694940508614875460129872506923599568938320960342701993851950757224416561930588581922519994103409573534377605303577605934247973657859157329461634645926387098554910948623939103497105139480155139518884555430697713934507289993302306468813967357235840975242825565916512886755327784095953046870768123423277833130520929707167269441110672882103037544489731324514165561006529745028219898101272993433070693750435388557656852484628334436868102376577081914193893414098119133187223594653470467956529935996507950767332918167152062118714358840650010409930771090290945445094770246007608700711991375242954160708988722440342685327135838504150200359420938508251795040481774722272541359594151363099166573465968106618947405273236565896062467642853701398978999682241382595453838548473433943981444543674297931468716829390155496981531838332552813208486456657371618595122407033836616917568597513861485060866636879725974408400335485514718842897980109919512743888254249540344500052035054368986316314048485450239511695106507869168063425247255791301247716844638139437251644597864214186210342195407599033884978622001254382799791088662559859842989512325318773451283022687053808971252694093027919283431745325604803440682401685367949909525897734318921161341287779343858596246276878247800738119316439809763289040169066180883793201385683102814472905023062700300295634876824143003533958618321776526624627483559262430445702289691440993941054657982944972476363659300184323034138530793765457873801160026393846059051430577409187996834515349309412502320567365756125481060985974233686415081045561299043892413351038956665581672891563020704821340796831490189491638837750825985414824756458270305039397871501698961542401184960911867247808985626721583101357907782933192389636202986866060905348840584569025527692703634430487326482540751406019206242740606018358525612942339806607755152273762122999625163730461998748815905986595946808351521153157976730648004725370635571046980890461244625328020761742277637039846398042128129509149382097024680219316839588101300756044212278648808392916294256854149931670362355644002523595038151519892991971951164375253881369106321812385518465847883871136529169641619336331495194853465500553713630637318715327410227244346299429193433300034353671034471666596919263432038299914006177986094719793427833433528731743006564154569732618508913709283589145871471536477645063063904828843735627598953769284499300373124697835276414943110524220598826247214013256269278904086440401421735721460497813284820051030005426426376266348014185565362895151385714018060990014764572807306390644238921293718473383034671340488860328322149876689129377063620814781331126629971562436034656717695454051325933501391035928656033674153634577697867798562390685755954076378237519686717783160922999074024179072085941439546811549398775900323022396528243858923224533211351252955516045587195018542389553111144634210066273560657838301784377700595445475945721499416714565514541095253422086679043297883188896481640002088475995240048268491763627665372684954722917616427639692786895931892837282736640491465022818009273463871396447124590900873979234172663459170497147207848372395125903449749800292391775454238771016017661161683802581621594444502175886065242634558060268511114532688324629444474196925621977111307540608081691058209781574252817007193754558291297697989075974519506513611560276942739658249469901993994854089016344488231822265179174772744937972529700156998585855400678132364832554646328783412643217677989776549982039339915450266712100005885497033957703797155430666411693125298072178946741049492632188679508027290842606178747593619009693299968688078113290693465273777695330317671592199224986855985422816812386012934657107808670432202677481280931504439419566681755063835118457756716820485232912674001473518740208731775147773707317714020964332267223517493917891193653450102606919578805094159414235469410308821617714419530512591388942941571804746652170358238093257686040970616622718134554974737372964780405108859748142155880646726542259702377552681769774249465304681845928360742249027148257845158774440589322257690948035626660927642974866386488004804179799862359433215670439805199095032532357150851170976445147355570075811648523671112007872965309119584887199016177966265758671010480461778734098141433719771611899764095451290338509621167836291621249280034194184896053680166200029449601512153092939165155068428626959341777342378450728977289943912653441252621782220138935075032420339964327880546432631068889064324164907443678356918088942931408680871804225586379465866170961465904344964623127380987107868117309513622622717494041412041031386761875580199355875412304895231235441180760616084145126964789430411942050681297224278821917629913788575270279562541212823660607696837006918483690906361661179309277018002448656284255433489631331726104388499330411303664928458863909366443336614137258907828185093645713223325745506750278171683060571394803569863454032100932015987128316450586357083547866073047555087087376573908494150849238947797750310340821752360616683509869588293844560704533951672824613533568324029612161576501043911490446742137327603446921662187868407484353821941837243465095730891266435155310761980619963368926556621585985921061270844409081718269207371038042160466899515646660355627460152639294190852112400718198904621006470030091250827261917609772068404373431645715627221926481513772038734515441655357671751246470202114673509952391360000844466082599062648633368750707798084995020570394092674525279886750180067434728184539000882258801194122380764330660276925290676986250172663479245503071645719974346928270971186544950965890633295156346583050521982260077316986172403710918112181090425300367036109328378180494899663553475215068323305351502272972461961234016381598984629829728309296785053944101836446668803184880007216255278411911166599947240570310470886594431425457630157455821366604408839245485971690907001157177944517828962569263326884443279484060843309605600232792101810202064300295743773156501277193035552509687843967151446164980565063597660955266213981743298275662071490637416260299292909856996338758477977744259894219731155347328379628569198367364112174551609477891043836680845583156728808353488473094869553849321388014149597119368514558466197328221365549642198374517491858292800471099787462337477052268350759752253869522673151186368364694998927385919841728527542083415398818582903752004474265794215242565154021524037615124103945576685103622732371764842072932799571356490644484632753562971539781674686100499092961768790104706716831880829162225215749462057346442626249394312688042422595693071178204444491458785615141616016871537080802167974298030125189155874036969947104809403399963055679957493515211229068926488389198660112091864289204345184504516392133590651071853978109325073434510524772991664961828351876362702154019795545135607380965265052042051086923598624777629258228261306202969049270791860959044594000655103493327835934132245041452787879522121194381191615949382121483975992675733223433114422256887648754441740076559246687085733409203161145190464342835123492626903122439583969267522060131408777208838782339211543548358561008651160801740281635967577164198017679330598853824939459229143688471131159406237012961530197472076251858276062364884025711529423808819031534808859639965577427315058589251139150266257065854082435163172217370078712086843172989700785580319899510690693816076893232538694234068544773284180698249730487179000153387158378673350805233305747062314641519684404402355445246186026739681917849083029937858679337941997967169328523825861153291727186585580927760103719537225441757695193875997318081558578312110367690316897735910068895013218019808536508909091479500746922798864723034342962058747201836544189011487605547337560199092736588914278364362957377805843176846171300264147956663255533770730754243100481160763537061462534213067084379255009593735573833050249596646646612186913952631189287172031222965820442863050179233623270513784625011427713078597934540935397447017757641150768956064083019843739317251612679017366185017368649757559346374825761349271344290110399991907936483018193215161541155017261440409250094755331480687483311504547775880456845662224141884080316849973221064477063711749775720906893099862191589210059215794713220978540404537669774318504970515624571378326623339410601518902979201955017913619493508012468649772302393517161734995288065425140577133754313981988218576890618525548751325051074911148018595109435510452371783607846822891734912396982639851202825605264515905255049728263096877114638376632132866731206251122552007294575658266223695882390446953744816546711864707823693385833594572247184567487420203688503323232261036315333083027592310537778480031655620234196599228692788111677977306351661370089199520556017905637212283398627701635918630741236124605078156000459822780535396509365015775294842763842708202928746164770783685308237148006302390407554302728088517450320975939897450677602051357208327220398625265202388171716370257664904227677480869735946380284071908441783247935424881138686062992063814658974243230764942970354111817211531793098358693877704803630584532207728451787225154026834144485650219111947316681991353901080181934713997297274898009801367057182196567858275547764015850259978642639955753855106919517341097073269105225698710557870255535710344914110827854345678698060293924113287082323773266390579921357615481304536407019083411630996005125599104995950665749720151845391515435713684746934955856931011152894618565063213642863786102393330010369107740790308387501722168977100313093183232067518188068098671758672365886663426370100179996734892419114690963242817748331740062950939784242289349122489933714846210516681245009895582642590183403695917925594021441718942643953064481349600933173866887886654264938825128474580910310661485158651017674869461388367060994536197018507859450316561774589548072892129028751237179087840390949954511185009407454257543534778928756726741867272920537905480692067302533299856651822191183759898070262497841153744692547707885413091916985160063514691531835172406415002823920897046752780490665767113600047246748132073339031723085376144589457002508855379630420347374210020676309956332640450432055482283427684781819449533495020424485764320882415979999157799711491737832645521459499928054515468668787061921084412890650078434007092491554375917449201069822110225978408593743090742214605105398397398648547757485984689900663185192963364047154682068500278081851993132763446919104219798718672640771868033604013196325656696799016459062276109930467613700711096992930192016104579942113058898985617432051243619387967872779937485079911161427653684198249178483651326972420285767042106827779765614798723975965032649057190077188598316082885566770570731425595721645533740562118380925384449133555545114227146816372758641106345943811787635744392627512751855589731210346548712846172740042213086281703924461286225166005187587536293647163389732138873081299174696590493291755849372132960305606921000436340364574224467950074053575016002979701446878895512991374822794422762840419211531166800390357976970933453974391133586048220476748728005342255795366080040831414915314735557813725437865090412908902400700184515579556208965877781467734898684280082719938004865222437094103482878632982125267589557212195624977589641396995597109506162151692004144257841786344277206619741617174304508868888066423610491812773025713859413002623686640259415798159223688683022814580708415474440101896261641081889570369827676779844909508129194036516174399616696584041099070699592961654413987054174997553939844638438409518233901242896150307742666356510700363363966517475920250380554926176989190026481144222233716135998826886458811689574573746343894273112337931260480623402866076438538854487637710815894840155673900776944145339167839163209019908479687611074846811294551210834649028818536604973835504345142809444662072259490487881150539014172260763112861008525586562976136530526237863816304244131454316931688948529967434532452455421461266444013592429249376809983861472573698326404326385923565509375917761977373440975925140064372153261205471818596627882244341361494706980105508563951116108483271773490834226303274754765721455905922493616993543341572763775035488464072196819509957167378942991465723961732559016038037096254476128549211663713711360286384981270612980427965437152685954273132648892002470500752797214132581563000065293283506496376626224095303197357705777864848855000127092127216207696686315391487369973718154861175367671926317545683297129888173453402390675877092896730328765443076810090918140799227640216253411357860744251704448548911109479602577225434120392673089822263599766281001869947127025649331073316918844857781439473316315506426528463033209836383509489244211661211295206780008081970079685248132663907826782218249359315607695196607280550016609309800510206082844330953825152933234246230696193695974267125077903567420321413100973692255062762634371977561899389390593028511311724383140627448888321085644006674373159842546483857431487768961031415133000724646308865268067819035942959418563824422505087999469582580739703465924992013040347225411325893942930112964921116676882943813434005994507377876615999450955171588688266340673449918462389651983328718417558618004424842029384560244089536431454615893930683081902659336590115879545133616366534810719368118827113551695242126015454773148185818722530245369918209795471078500452866928543323948234071499732269139758988512270582279496664333700866903805163585380969160895249111861509223625869591238111887689211323195585955408668766810396843137722999018573963605723162814296470666392173971863772067284694995971321922584332545543484229537257032533232272716000670985625091114859154101740465894532849627304129200440868986228052347624048290268495278885458261881845058751433388183751914560824683667184619160727808315572966381622960027622160196407135586244841675122303455079600691205529285578306282280037439618119588938499268903467113517284706148220251215465535652640000465683280397642325607825708954521978804307761731025189371090439591050042773125833070054903732319024492055780867760509854128869653609537739612434340077514631841803990237213902958435424157453587405725964294334256608084286660328759760840726140685580969510293995194202954550340392060747028869234139512682090763370759752324866606172971055108769405232596244420970266409458144262236864077156853948171888041767625362107897811826091413609284603101374669162407737447734127483407423952546954172077238324530267369523510382540024548424244949168223284789008868720480268148028528041060882292261243124579756289331365631778890879782287643316702712331074725711754594909293941282030792814077486709892829049235951357057899106682949431955809171095413874735036675528663431951012106199658658545002902058515879594711928655531368864352244562495116926440429675226361199397331227273895041123231518483928048400375475548891136682809213635889295951395448759993147359756777166241321236861640212557717735912003762825791235249078319967085821057968128228975821162657347732358615203810371282139971165297839039241020495499120998567319262120724385903832327148722845622292856459317763483494427342588697466611741508226301281834415315306339521115130430114199706973149243388481608028417238381773028786122535514731656682819997752316434595521278281267713596697336229033917951297388120046939759782207744736720226448375881134469692289831485903593768069077507210430679290616952336084125705226020545184019255327922107421480515951572346426947123052312056824286929486727861457231418427460941411042456494545715508601037900458960217796979520706665402677836903114635442160869495778210830086760997382781088287459583399389349912992393949625230291369749037900201856561771765304288029075552175041073084280811554945135592169353085014643279437106231250052613764050772238059720862947984250258280656018140586140423634746562558824444544939943851485581134880972218058633881626088434091449596061715821431316546357995246107130566145818448804563314606966456399607478163475347703842936735218319631865245122248524533298677977444548314649786178847661015739344661404979049015829187376737952724681003646998192868678130500604834083421235783682471058918166088668270025716710872618774268610937736546693394781902500294967592263469387516687754850506064856672579894737181008335035780905044145208620519851877758758383360807152518027053337626927056808374434556706757435287243868096450037231984374731351769933501327278763672421474448435006385035007575220843148771591193317966965136831223305142856626994924880927832224414404492096289295501609836939162648809960720148962825078127890183135786123164527811086893636911213843462465059273185042843365749649685356627789022499770078484087310568538914644701554510071019819179483955145612327172842025203107210765253037459643420720459476779814121798337163797667438210941246778472269085242116158126815823151557651089506310862680273458278123695386587136975027322389944286087901879130414318767458539455037803213899120149726071755055437868494706418937622495151690582462181925422131479536766311183914906131784396016518200263678193834612297903282474236660348918403218424306443849524580336937746827587071891464177535581936525114510634305120857744645654463454241060428647624555926588431745490795539328794115149907370662912185622223487379141979160948121865628283998951388376867052006849377376316447411131266790325353583842246529378921517369166295839234952313902190501292263384158579294415119386664566699510809226807726755885110309810541776051097321714935951019202304523502503264580152891513993523444205439230961459063874005025481577346531399902189962088999649612916992213401523106707465199654362985834812053493234168122808612147872153328904534929800869677093739226501780394328035931131479747797695821041580039208973957996969672399608857230939598933827348846401085166996696075167978675003163549966632516759505369338196026574507700183616864090376676457633532000200221988626956285267072039469798867794991776354299505550825428898811643447579084655705520419086611311124745255467337034797364614911023402523474141954042541168286140207611124064407137313434740902121945885409150761465941830216780543896170966079400694793817977695979475121152212955999415709240953458672374284638556216965870987421147779241958830771868318015365838400266708910731119824978518270283478636622303535109209548957379609280826941349323560812479574281254938250651530558160155464831485471166341985485169802500501143062689713659901472091690407434828406318308251838009095026905421121080699277844410035608330551169368866454049669866564774812812586912209210304088703003957103842591995604843391627596262035455815506359722261474475834382613859262794152197867863398270937450727684674960572327991130193618842441460422569801232529606771119918047433868328280364184416098217636406564253452651710858296494127377250013126319920140616985560845506321020471640024769792302123168545161481331162826816031793182784553938005372349226919533374079737745137329152276373756314401011066128403911708007257136532368594104763760642552480813219413956231082856656852018571958585842680661584300711946629089797575309591966365791037608628384791066769807215647883728839938793936622265192952089617036231698233081781416787714697205251205902457640505374443706742153027092769988859190754271081811542555105395054210887267999885148474451032647536145783849687726982565821569927158278530589925467937746765843915173817569002063316103203586305600586644169493392889721464217357443944383276088758344921577388753463637355241073855040571989796178348480887980073727968903569987287226683972682886889057647065773544767217461859044765242960489246955759375737575807005511831462640153029269882897982659232835586297355263348000901272383745976047134850250889176854465895766670648040884562782352857509324625278274992092083227462684142563898284149210779524702498132327718942766588362254268846366086669415534064479207557347590052008467818481726377250108176646898771411528018760571417500790783061062418797802104128425945015297178010777122878600729651717994716632853007571784713065166560398775227219832440764991973538976398232422118211670466996245216807667243585456461863948523145677602277599770020233946952277277657319652307605299871499464914046751172125199340796879636712244951783785188129727106383930182659028878855437502905880154592451770488876840358115039960605157077326958686976806047152207485745685130190419381744865878159922341497003686574694368176371026540729745690227750202809858540433814351430929619478965334956796620446195892995558852702195758038526062365250193218751873450640317836273135990728624853029670568965800240385113952076337198602882614008470081259990363564927857516068901603569562554620281749251041661512464045468615997003105403650592694487454555241379653601877399618101251956272055942568453803431653447123312895755524755770517817753497158720871318963250570255359846461295473186897081547665926108122906465082431982618816938090870889553659084766183541147217692768359776777524529865947620577327207324662560590797489528209420000695231775188822033480443543398453617114624161399237540293010884024675845948795122675414989914422659210231886721579983394669751591571073172311600958116199907309146830600042230410323544114473346332462294678088067265739944729352496353003988636840177838378780093168492134798653460637869765056903123215604515458484901870052056820557540320081044787432264803907969062232861635054680952231687184229079904627894097908258486144548558218848328882358481547085272883263992179401151660639638721535884330424164437425409449702845577352304235363920065081058578236382394651861637587810427356667490689131946399709833576351686734218971393259135249956970820955464570278357316684790426144979785340402654524248604634525696410895175394979595461604178651243271705828787120704001748709247602958717558490092482509584062039094328097156262684763403157963603167573363236949918717981562834030120283575085289734077394631065220992872443759574279819866412575929999876723940997664285386889700850564526907252929524553521797914142468730774423245872709991128107189263058651187109485199101787500112366524283049945993495064832347645805759324012063810093325428497726747232646189914148185697687888384605258946287348747828695999600075151644489523284772049320412637591449570535701890601202514888181620535861754281351505568284260007449692665605524443033677594262063670349916942391042451469268616330085660019548625849495010550250339932811186075815785292048678680443737828534682013360835096454565784885540638912108887628342239061218956023592144191211732622956754987635695327425622636768704934213555332258794788245993645785774021081818644402203412114929433718784961877295561202043390200518863750808599606715020952805554013594894534713258315602428496735977140100509863992398135648789969912639691687148191887030288219337598571371585650891946806765880959252993087468361573106624674693513876598081427386391985405970646264767553206732969810947306339032137478328865108565638725965427472713092620732655910959386576159371075008105995089389156987625316011666807469006731702695187942630873893747107338262721154613036581740479458808113649536474572584158086983576106694671583564618477913619343945141029535111007892564942100548273070254707777902631377902322560913459758521657691090637774150108966811735860346851425668910846254734595861392516120055502461993830112605886258341438909765094967331451338362035243682624840123166178008078362531539153428985917019536890684388098742908136639461838056489852384267188751117207970491896938872646146126456129411468316198139540389739524442795526092587278040678818933048945311762520074507567793465906228386716173575455833025266322834558742368569927392585820055058803262020776987328218830127439684863835543951886351849874227578426840045769549731430831595890473423852453301393389937168752263899253418819379037469296998732548483308946473312433768873581865676807296152194091285444469705024713946443382178582807962859124221030894801559677487940379791305103718778875886409101723334822048809830869079000273071773257939991359690414541983144197349140523012981832393353128036679731101427327158219898778710022280238767373109633265228560374849623693589138617685402071931077655423404822218926729627367522273329846327574538395795944059424738398564743759320495174545214199389772312213410985613126570766989620111966390314099826423881820138475974129821084845429603219274301491171570887888056742717144841552469746368897330528147210723254441756124831797355599097764953675056121404055586743325806679147665907058377440913319213995951151917411800851041784348218691808080504016000173454180620202361817619457958421800340088438084936746092474857110850292157764018391054690524845954710923141819884675779090141942011086515701307741273630099178058421204534289447124867634609290510753179183521165091466139093047881986023945998324901213931288069038866977551958899690819934865292327183394100567576831851591048100630617248672489958743367521468299705668577859050716350630578410526109532910200537718734613158039627426436721197969736273470018637659930593295777459046823461616886661246684367196473322015188308440341205880921526975824373454340754719313788742681097990722102807163528004481957587707208880553287750804003670962109985658633198554589860379571395723998805616857327504738982328080235642828013349620745042647802193676593594574342744023372750785993872958334461146275038356080407469855016231739570251944257060612898558542214653278642302113740564268358213289332244255353132253529936216406551365882507618553937324930068092713533286726804706045377502751372492434522278591777697931871419778634607691094513624940087737518764343549912338988672004287455967462683615850910967943952621331420355403482958070660460149633638096028297201221582282216107182849701065336272251126866762884089214665648579377956358515006353081432845652043756161300742817004833792569758295679453886516123816514218837598797483025247847557144987361497581532178256994904799185321360700058612721478773244658890731881965881792660978188361267815445760022175879987179949217332306651806573412156123144629502025330309340500366761840759743749522647461247901171168405554406281692788221142560211127699970364452998595619497853509336616475535514191754200349949144415918371051975292251239691139804951910443598653839094793670440848201446086483535574229493112305136476120483391595187647114996559826514710369599987614814533573703424311648226962864659990099092836076972691611148686009959599180393726542983447264057750180199292773352477917549723677479177121775691347190436940909907803415034087562338735271134155993488896663267159090855063364716375000265912007412648830909279968452509851102184206692846490976034490654019905580296319126652967684017800922972442366855035158195347463283793457165448983826972086304003743678231373263018459156840189478281440988824327934584322777279842638812504399344386395277187884188775680594354222144075158160188549936764467924863988316248175642804828214468854965955085271644536184823850968791334327474831065020097962820125271572605049676439381689306463580984751365779567923353650527441611586118760133297957594231546633684820821017170003591075734585998080909916326753815535501550067880253500165135589493726545644347259909680867020616284423905174677894346007037984281593177947116454417453927088671043187793165081277433301352824130274988347366186929735352390808980356312013419741401372262144444626695726950373508643679504705951443186580913963147294005516624401209548746807225827304052392230054014820685198213741386511483834382075158035067552055241093908851226779989966827821094422124901868937679204572223033399337248586739598061806399132025117705941118095209262866004056561513897449257925904142485759296678960694391794916071625156913781295837444629038133483869549789755722153314779552699181117928595120685112341951218168129418570220128683892178046003389760249750458126433520180641597040825335930671975390676167336917823743387724183112861320751906739306976043736429363489831404714550220161801731667047069063321916498398809595513510892308520042316802392720780207015391843655467056438555262685947250702572584267362452669704303630207310249581992677186086340817856701503034732421083300787072273000846370266968675548095439000970395014682320938389510506927236645504360585039619954911078039543084163561679091902851806244609337534768726131282189635456460645967370968773536827533680873772537536033922658165470711091637990290068728907246242767570588669215480961015757172147111948975884676254259284112451054044200741960976757113417291056725636971243068938341760952933960391891732170095269569015662173257344627995856098828871897559990786416879525530730707576562787199553819345378762889499592827137561489121163156140879077889076939136415465475567384186679077756172223322493862889669614036694665046532784179041892376990924631240101181108201237740911476960928060171392078361581867424016545843103365075053779603736842189872087011476336269435309912632628623565935928600716494455904331188971297346420925393103104107522845149788646979041619623960669496933816264993400931255946718566657656836017385722137556573548647180623048165931557562520752686071116045417769182993034116689201375764865882088988015490769624241677319855326900218603021727411495393618933929370505407627087115551589580193335774924660246874754417506238717083049845239766410458589500111608970882769433209510284876121689890665567082931663847865980509309727289284581652857223865654131082345045483900356958952251361593531314292082727336672209375429265917504401927010763065248858391465921642670889670824785721004444782345711830469638926665060270513116870576187492966004912810687108724801488755452761968907251404717048076343874632585950215806280343773820415330887203959565494150354449477729939400452630249838650783791455899107584967146615561271309628121664356777227865532805879420856744615020593402711182834165801930723825091930517372823900973570420480765987576626275533306534076525335827633282284474843382512083426381635017899583748348538250969243050807095506298185289476944303673691483655500001203448687839034086352183265920384938890085658688278223838543254625688131162856613035459361714093486086631271374209299196116522652654682594734708987912844155028113468213808114832327491048972819397314286597397976052556330446839193260211495680944862438448187146456189421755143758737034725042898322483953411671781943860513740768231088099251643078706752034791926446326211942279176919292480468347714374093934833414770878161553154320055959662356577913467529364536209635654922783336346169189079721469288981771356386015467482897436849898565157004627020765919031712087903388472082876831396764186647039508954679457031446996111061124715843006559535040152403613902832187969812178877290155721445892969403784835355639173205961249605936167071960060885998032893026975899210166895148577911596099189431686775424174935862084073776049470258115662704030579908264723482329728208966936740503974845467818353993852921440456584767088918937757800606228443521120179918773140092408241910076135464776714251565448386631899190550925209696574693653769529421926122065409900109920924099089508212763527175720752517052507741892419829130661965160247638790154612868923012911599010988315651268782282899649101330096778369641508168021235632127151333477318137961917637741351279647672749838008534451713097948001043483543795665624172442215079253976217570006870549322520598648277597620731844864043965501807213437982265763658377179647178616978938070943805189179762525063479596865641659674777289026711572890066781142342768880905055839399817629741108580673937779470734999328821623446310021772543253064001730472556334391775522467995210411745266057349271198627131161819190505750788272015837006248787120837801696718826455202971389391953654616784752584178075334819502656419647521117992145752404094764701676602003821004377454161508809476598543160425941524234160810845132671127914122264316812226859415963720203245740396416445831275309522747644191667574115243902677354905156489738513932664197359722293933718493006498325030957677266469496455344326716518426036201011083855221399268095157343155276377500400313233492319388481171327116921296633056041631334928263047909881565932865429315447690682456275613194166695902382269361848690808778190235247516607049533281027660165426657142760190808730109682709985889086338503588765288251359896842357151722606374303964418116689352240125504822370845710148852918310376525986212278771970858280210473956063909982497897549696770669662698863884150907229291874179159385471951927918545825488675974594603638428281388664149432251410573710700862004962341536689732830260170653482430990877603486154881041408383853182591830443316770230538178744768701753408418692396909760063642886900100783187143257894152168373271388050954817938045715898959052973486582331051644253764023399703920579954495892735111723939044766169632644865256328496128070759177849970318334198027588804739272727549791827485666106668298177184257399614201207474618218732868433808647127724021150344014178989647727265843199900350242574794615341329349071411104463603836144459165647556755971009615757188716073612036326426191752319425556595736249953373517033125837156947039239143948808566890891238546924175120534219107118842431052114211557585813376825288262824330435091126766990179173656234486059248174945796879493408372210506801115082314742479336227380420273353985900802099997954078899303948192144714974035044071810395697018248720805526874762410815717036763186104888699451295710484275213637809400784439648687340345023850149675465091945976415146056820745352862047041320782313160446748222325652314676493903608781315487856627738235490134023854359043018035224473272510264248686906418750925813664831789254303116179322496420205925110599792586830672689895693093674192176004300553572352896032560015075748123763679559372110321092967237722671933614993272779305839517945743520460106355931732899258426042348006125207612767418080468465388276015440334734531742666662276113783094578162789539779651715103925349139879104528523351299273166161246948722400117164927743110334403303371601589904604118303117226175404858185788937058279229648321068285795518375721987397449278285266135928336871022656259813189092930924731528418648715212367101520574821021610296095600197220136072615524883364631208800670587824402960809312360084972879192639944036586673424935749574858905361442963237088818882625096063432371791548699426957701860555287705123852945684626665634982791042786130078832274508604492476410554019829762496041288197240402120195865316766046596705669921557983804600123804562924465867373979651605115400789622998466638250053264378901050035569114200382029880216136557095063782994618552864464266382526001501922296831252527511389675498508595451152332008197769794804476100039256675255263659781065739398939965222939984855950597693991913734295788764559801005977100335722461772696700896124601062460193712988887065556191107478083008719246603647310447850733083994724720216132929978152250091687952468572157505666779378543018475943677378855659300194926521953163011399730472606914359183960298743846957891520572052973178592703024285140044239700823427891450488053238822510246455243220279278488284917658388408364561092427135351908465457735729935940475789880620330663488427239765253277703473775851568710896261701101276722335486691208144266888980380272836057838984244613665537412677745374049912246681893933323287279586165456048121378783838087826860449456091579594869288503934182851688121430776221611879424562387320170739776257906039970794308268660761176232195868408329344919060306710031005668897616958306588144358964451953603225485908459670224742837962880548317981935465818892840209673478640872684046094503750855711697626496527325210275660052902489948131941385523497958740965123555670878486382533512145174929075387905779847030143014048012966938785735111973600955400776066881454772645093848953934642795547113302123992000566349712493551117317164200032873262855714151515409909341386284768998729449806521582827672048808415269639160740598436742861199634779112436314325450575685312561394090576773006990967230881162315792422838765402136695629294094383913861118459249102793986962845585999304376535661401136169109862303722579831561019525888321177105567744497921840125354510169075021894858182175735796434677874030495817520143813148256757365364440369650496859746776697092424025541278916759096910037526177368528614207435347147508945483353498310353395392231808092861061456431711592622767255839396123346340589580675707702302593133749552843700380685139701389306632521179443850983723560396780872601933903232223849269948357437037645685895315060711547494312868605450338855076135075218441762973601506486381075799104042527615143222278541628544265213604055835618040884473697515124196057134807228664513535061801557201510322656873458983770223373576447452923312294947064379206292861114109057208129290529088112382127227668881250046678767839474061688934409614280027013040576982386951476171992240523696371224905034723243306373067592215875401587667623719835559257287634078064417957958425003235406098404572208987378997725544074572525217798693725132577103715147217645455573873028118251434621396512171164010152308785037511165189622153261968214919652315850496492855442480826357006524056037697671046795338245002424263072303980755236394158761825716968195537218568008644765722770877737334029646163970322055166126764201542240879447225917889354997203123386542299020174619731254112038242635396476464420462651398297164375187554791153463888187116542281736169777942953901829088618818899805185461271211707752778707368232895324864235043143780951062191790742098162230979913831624298093866272069873789853048919769859987304217726455607707128172743482605686505405486350936063301013814478261528641736469118380309201612983071794478839534865459649538866548784988516540293803033790185237861183160882864443188722466432763807093849823564626247678415200679811390964042498888253733248923014621021271513749274270072869134930062940687243924577838690678163788087077193751827347765358088766708684265578126954591508495286720801681232325077163821506184012546564868307609994288162796719740246177765972173234837781288212401458287803217718043360812982219704128839974677240748764983612739159211281732624377001489197897238871583991476690740626015657949593779851488889346177838016868912233754014707298292701982997798104523042390565765121479574965629362176220374015506333534136597455289708475989033789911300261022158667970867235933990939201938489852552490776597736029900591276620424475606152507733767713580764821086746876469144046196707318125820743400656168887291680816045577800789494110608025452192721766681648431848144023884689680044156730875749853937009344132341081967250781425411182111080689507165315001972724127808387621567389544600943563126804894895607004829971695279004060022310143689351557545217908390122912332756618832539577749297763525216541679018418612159738663314201953392887282232389806490729944214061729438869152757588060583126195343243590099463259972548568736747512293283030153964170770521944300916077055808416466367327426127911014463158707277773219641310573277021836310446083495415463957705555584666391011327130231649286318919040516850901619511052715498190837505379199324204802470306402667674133957957319519900291436265205386624267415391503222862475609941418949174334863359211911105758255391906575716883007791664978887857678087607362570338791303584408233544055112266500297570890725935408675725770244096932591925929768813817399561413047953904646100346200788929909374369202557235069640780388922569314218291780681607287705653819458019502978188859752827171677674098508833908302170481433919573887180217729632038076182570045429978284142917316134518390941296883092539768370010027829718358697473775413698935079566146583437296101114922053996988808255723460312538945806598978193686831594326602526426838797852161670616677032536229667803254294403822835059990679125171522957513148607118800863351436388945047191141967792783428344807226685024004979236117819049416457248522144307688603576776877146688797462673464881900826581437950549249652879726200968870284696911437732590889972113902909155942958910744676083573870946013928420043972530829499094402052909619017781888438726444191537846505539562792489692287524084096508931406205921120085470236481612195817893195715349283789021179763143778954085452161851399939563807166583439438072771036147413323113170813527378225966542986367529745422525600604302097875451242332978723653931812463249972890122267213919467933662967140676941826281026162409741240944894296152506630902271707278982425496839771359749703357072055137006691052651404645226182891071269578615551096674546957742220745419128023491565048060058418492841785777944143041600406601265368731120759999066847932617564856551520308649800900998220269614868804716019857567618841989738635197975382246222360335967924445644449359050336867274504011863468840085489705203991695453682043946162750177921092373219995570537151965660327148544119832137982572175962305512954987176470078905116776968143672951182010254800713242014194915781805004691892261642823800015459734650611968372894299282379636186783193145481208491870561784863083084820843701048374265999154593972227785208655664031821679188182624065782797321996085135167942971641611848841744980422857739506625282426812514510927920424026838870536913702852923286126586288117342854169656465294943737615253922024408829334555232161501925579037909811986568210971397448257635012516837320388755138358039327932984816511421900485075835626297815458570218338480609679131067854245642464452583823906415345668811615061466870200983616069921681657534678241023665608069265152659308126946207766109458550124103631985889013659846734935428363017704691064275690093294266390868132038988406262511732819159021572018631042637377858129891241229656653410121465323307755445781748175221712193965013083327043775187511380889548055690554873918654992646858186942155171783133542202377302574137408178729873723561514719921380066088285337759866983894899608006790668442190464682629229172529453656019862547618624414711294294304651479680525825687075749229053754408948116341023546307153941173844179630319616408846158705598385011203185952792342540299299195988242984566546538422467812794438348792689259624985026572625428710720062465883001117100746286730166211470697573086662958053980033723714179724296733343950554282659397754973189292865075788200286131597084419714616212364166590119000760660035132324664812560306558147353304846316932504115224555105001619678617122919544451733034313049073598750099433606012185500900894016261235464070488944863798458019628329377157494888988829885145685423256111438370190907951968346123126940663190181842448389551103032507317379804477268936401396988870761045204207443700878382211574602617383266184040298976544824842105630563585431683794875144224340633322525336999965279827875727242224047776200180958077513178134520729446070319554965423002125152119008268475045300219142519284064719297421929509657290120403715922549674483493765745797893155213839765340859775675009312666690309435087901166681289016731077535005322366417379595631083874007613409093942801722536638898243529488947942956835445484813995488289028745596785601007925161802143941450108132221172873072538099118903323797411781902194864194957388611129169658843347812655948514465910348349095645044830970692276747064894800678741841971218078826100464007141967341728220140149780481885905948633670301751072322408819437859688733134218367499873324575224596402427096471799395226896408922583561752472743501784009313691159903765606756521034156029788243241210889411579430025123259977852096760131778572435278151755469617355599632572400396218327942244280036464440116137141707184030170286574831903599114367037825701575820438631355612972742651287101089052909660283003795301804255243730211448169823228121463277659684926542451678223298047661227320636290473606062241931893735672632209381682924091462497925550447086126733155470342094495912353142551921713628742203780340684495273575576714280115885010638044585369162381372770576243003147061347137903942380411864344685897491467464756193941300481287831177149647098634210556285312611397912118180207724318199454362407752849173756399070644956062921717026993373047021976109000465195328971988190221615537766851361851469936158567499885832672814302763930602203185844231718466613259185886963763915637945774867670856319461941352744533199293872581586421837882019136874787768065917045945579951823401304320223878762829009015700377489926930584076609340651677957600911691291762912590171338066193938139093719718344912720218158496999250785639231404042924185959204854198031440209619754084566015305304777308100553083210595181222254007930858092547882006333019796185095643945133773040777638522073955848649315546000539228823541346501855891425763061955506924866624176699362959045681970053737814672270698453738777300280852816599594412137324368161208861980117653668026031145861918687353414564473558534485161725751125786005419983702645690407767619739217083732972427908716832343724232604157201011055072943439776129843192765907335557253709933937470364849341097123368896650334926969074747509287294460433630292032671687531081646556051727298491505401282375589924106573319426950024252316587331119218848290342154086085209932177530077473889671843011571437308702741466226969390444328154848456157316717807192123316368457310539679916930912845630813111296154582856895285322872953519489624747698600237534297846086232830250183843592152120429073170458902921677087510418997977734889842686011172105553475850582908633997750201807867849968917786040932709613235330220208394243750116242801875672938125775560289113583973433831161001410407220838826600975552443457207247939517232792587117888506441514324637097983072119416828242197153351730829071473884883882240760916411133654889079091571476426562328306972063375004664406253953316770953472177583462519991809832601412904108926054848681925388365981501287157561501882850232481936663327083538663599818810957377321228898264784077786854129204868645769982638616760619693063963863840051127955850035500272890729009299917716234545270152041781967716691478448389826605468685288326107250998054451940598368465407903588945685062597036152911116927658383537516247491505993771406443564722422276659044484933923277827515480148250612750888958149121930649720517284872376073056078606728573694628527114007787862052008207989621201348396822782919410664816602850243114406171457071289635583372704437754464606660845396555863265208084586283946559691613036213161691455884306867326417105239794526766256558017079101648348957750874815551989108993473944703467324247624032958635650609598465164933391782090947777297981187976261423969522843746490694460046640806286130462698458412476715612375984232365899212546800259714942345195450501839624527389423195326142677944746754189977248208038759402994395149426359037974960140948222351867462134194824005989873345337965590623212101508250075094956736839177679161648500894005715526296673854913773144161938656304757711550058926885033633296775962702083151760596400454334071418835835624938253101776616829845918455439342213883880525198225060747466205559941980893522479016796896069703795496910307531760916893886631000225774285477729642866280142127655862856581935499841707530018169269246892074494220430735341019272221340202896691849740587401528048177927339974680050974932354862357641981817462974288136704383999430051040568381258358617788987744216400582605200912743638879692104392032184509297517221209089176662607846009094477929955945987842935709078656742775068125397344296579150684284737409292094061421525044733711640670740212325403080590804424425809666857196660870663774366677148812856397692255859000229965688842579184578170316049427428577440634131333930957038771002868852991143976648285364722906252557116055173322282424657431018024141802546192061257469105264048254709225943821326050278437907756887512253368244176467533244777853421326786975676133450855777903672997866218570101922451907277520071998133963787654898333094777869506233042528690629127309014084794243534910769992640430821281167673569929593160341855967098613855052176334607607751017367846331180631014293842937200286401156051821501270920314458913480912552903315373587688277597456302299627232600379247580484249793747822284045210509033912697284907654654059503980783075868403077743607819156057555606541129714279540745144025501825111058322079038419067640785789958935275700667203285215267452474115411042850644432922209739313668362034339126705237020480051673102589866302908253177704133980989576873617627292956666305461508827596951995347300435583239643515731882529645575761278621667514396330433866680551812419714585408427521268192134116656919824901128124275806987888650558065434836004973412184548130687072284343784826598940256174294918165739738663784206283515433776739773064740968896713587613458653580317894130369144958479955170285347780338785220138045530398649629340923983335319330697568725422919835675504641687717654160804968099848083737338006511049081303733966354396321762539461617398590448677919333400964361452235089442238690720745066311695322888078049799618889787434274782797000371091914579485018798418985843808657379422499663686446567232490088063095418206407944393762643802910643664342124167112031401181769747939380380911235338311875391374130601195853683486014956302199554605143912021818859528230097332022612988438404631777389205791459394600867756708949210733410545778205857310796849888165248948238004082252883465798543196437210185702741530591782160888224731869200900374959838558419239364222139312720489124325190622361844160422499070899840615330772849606473986505960188210614144960164271186738542942204427543667541605677834208798938199227075384341496363965233148880254850132860277565022473992247672177115473456031323260849088565711212410066947456960323108688825423085478516047174056459081412148880256242215740426549350512130747826391108353646763542963039384398590480829305207737347408012319407475340639964802534744988036395445102636245764906157857258362529254415230409350900234911443108682500498294951194853293250315110322434023374735351281751545899469341720740808469758249953533610719561691389884103490516989199580572820772077608672758272800868542914631145723398831106788182331772712760567040438730456599731400042195763467534110238702153661378267577711227062525758528564150490903895710283109915561081438400897243025170724116566622816959559774132074665126782457343901647460637335228715368732453370982085717031944335367725052487301949335696851632421652415341144553994263220908906203559533180276010613034263510044914595232714734985455370149223396911997602256163334074119216464577033862841052990841355988050240522380305726139033206980928367164790062656665979871400729196303121672051278884821541992598482092353867370305127593034401602928419800130963189719273211595545759162487642431043843443572025439360605630155213901992273285006793322547962370350806458780981197931982484789853040258785026146670107705208206437050262564074161153260849594856359282014609506619550853934215204731451897519740901867090730527825042666589912617850411472246696581023470522140267608383740693906847017950991853411353815123159728792980447994533097170470284698957958939751339842595245750647370592733867934299570830769355077412902833347849509153075739659466981958534476119663015438093222300145256397289017386629066602022457142757414833334875677362067985348151268345795025400210286767552317558573380814222983841249208790548509072179457213048368439408961357386118775816782824970499375883285594996085913041081816405230154882206808233829364940242828197729225594556301505872121861044325514220183473096212434481709136824785235503763412967324379004852105318729303089780844109048163638720469732222458043104876118148894538348293121665592007259099592659714748582700929843285070853672527734005916775902107938279981789997340271331465287660053250799275100690333556786731634761234977287110052295112771280764828241056175040996875598893530370688085291861183726634701138960812358595217840213648008057328329849163218479993274497401656968439068673985337311888863667984896042762653879461282800179942379763762596909788862513884053784573202072188014051770168274060529970489706917780770112630626863295802293547483936239488515595040777236539158532516649252409164921570789110202928072668704341275902774859160520822641707399892134028573080270815837984183814058707933170480353673909323022946687432172929171318621411537557337941399901561950779485998066728101165040705954963317125488675578783085377242808803058412873011732161391031792191845213214110900923457247180007937449397654875769181221790183604650259242615766375037421596640261148292182418692939196190424411659309576194231855811787870321178971191432732456786972513044144459915498599668875220761620997558707878712205817372652004566347711649997212856397242360381462309741537761501273496640647047736053235688121413469763776746221407456571138402408343842907201759991089272526808583638396638422312320134505481903510643266713734476749609959833239398564294009304946413183847623886777383363962077163280286848644645715993677765240989374412833114688891298960404813973576505291955297868196600473249544796204806971653352194065749246277927347225493765869115654501480001066285614598011748321083702051550828980778094516714082026706871376151518285228158665092599785466461675095053585329216991450762025661215980860097002464654805742479520983284240689588506240848494153878531851813149976825476279775289046262502231403179041739606797900109617445850787879428661377999014308549757148588234943627591024999705068222053243771576701458825189303336276280235056768509723547271284834216544995583510001671459085133315972805996785992010114715622397893044958138206096004438086301159965478395126437750292311094731615691288643431759896412630734993266391398484813760831306344807808036689220624665400520916878364942476406063117690155297512031819850669316128251897204386050718772163635221924123558809105945690947451402423191132861229227486166409947720724690460477274028663603253390344379168433172948310335313110021145179918875930479013364450483937666759483626477311765233042408479128920332823340941862619724293127147678227513558856849271394169194643304895674341814642262744733213010095902493481906050092375467197357095540156107112784138359278880164405990350626403047283337218135889212480655532635017413713288954370661473757966595142717842653763994940066995573886873190998729963289213668507562609608193683380586835856472691382763027947408307317770471835543366999579285191579632174356304982830708255252321430932083471376817099530329909002102770113883812507738366115290826228473036804652360563795330250203508463834910116138104004446688527980283145239269593044382893012337541307910923693062821774402998043398785467646417312289183040052867915801702152240570796680026897006158758926210157666790190903404636592642793729231164198957085871823212693533424756938122980124188194953324027739931511704150502958966071017441995743406225750669823019137325942718459411493668628294766318804140709473762562508962543235284073040240346180332561665585763347099700117624506679343978244735367447523496849015358037577238620513633995267506844276226059250188602740035291771496283877163555939330367538572641938005125185289108918198083453716140053581297522130984100526359403346978774192510534334612872032749891971134316323743755524353990615867502123865372810548750035586795400003901574279360236918380960461726569387517218091535445967085984894697624682538115974811318248738886633478461611180564963497916812692857880172445644093099400637546348644861940751890057994436531155164269522452412824020567107739534513879902777845132637694353766266404502542732040976496686934191409927094001770497596512257766794838385161812737817383225866847819684991423700919743282568789130024505469844093390511352127486764304091182917051986693607615852540979384673403767479775389187004942286278234027874258946748942319776579875015797217990245426979467993508569241579853140715078565948756421527602174799204568693522142611412944266247569904487491363307182280420906800319418012625163034439478196655330948986906685372194705475296974217339750142457482170998659236478077954914004231682562122796222631731920152134622718689548935258162288244518556983058298082242946274169883952077629964687914322859824293389024856637097859205733805606605904516406256339553649538430797184084048197649356777665191568551741252652538384809056763882064851486830126738224674029009085157195752230434795605836783834709215091505191553549383034015465783706153979913156708334567666912460908272154740581277727952418160684337668813063510630709944209376761814422171000980901959614818785251844036666727542688981321291408945138706351092562085507838858096703445342418163033073046512103735931921424273497906903455264684684125216915377042805777773281926374005832768624301541464991512912508920974472797028646640838984631958577264936914916742465419913069442595077740847087048963633038081019237254279066837532214429461441615124687474363136863861229861130174936144900104260379496124809248623177261539680524230263026949600826814580161264471467066868888107727115822078823069453968478960999189517947542862202960356837741931180064379941475193360446856042527115766664808602032979304678773846629899351480354180641941467289451961795110201232447098030264372108925371218705997335097258866938942996454348783695612801641423416043009469424831655154531303988392394975941640053324075899274887555465880278167077997661739723193110552152116946542549724739503003110983367449502172842800503782964892714375394827468884959681399843805250688292027294585437472738325577302742103756263697033230186071000881994350352086142225636481449876633479969129074328745473718242856012044440290214631880922303138180844448198541150340358361258758044544245185111909597878978272549729638880992553451853373761066531347701318315492723883339343137225424305894303850827323174901841170202056393162839784396228676999391511730689167813001117188201001314066442575451448149056587187052681530693480049006232614318567127696909574450493671484186810515573866885089231140155335556471986938418274695715544851762301781386711534567657446584468440594047103702714651389218914621442418801594173240742976623678773114127929127680849500413904512440526614686853262261064432454887368018050616305438071129342178295831135911756763744549535771873084125948185875345505095747599128578085006793729757095107691888517258940950973270712086674486302210733910953529316211256189973144419082413231367736065418024847949524316458749944941196475668125623054487361480281994478638984646912953516712288633517668640515393201969945626252808954446014302494665910519813223546906948684189955654807828339009892239891039866500739305560957190501826534369396041907270851494270554925132910299599830700888998718952642671637416114777740664849420124034060167770567116612805561947529580113180338384617884173619575002884709495632158935960063708413102831755922926126803630733727377202257016296061483407698187447834170022166899189319039439979985310868504534373771147468773649067947619324921470715359564375431790670544626393894425268067066377243519727203211676628158863894265833417180022105091927470997381556428024129457351531443219271658235027045638306012217047428913656938301654296390263257349383940162339668750227827929204786979541216022138398998258663662051912672357009371200218509832353140893344957702939981636450226422753406329220655153020486417940282790032333172857658853436003569378907226407140044521956082743470934437952252985690608839693002998836919189929463264522872577542255726290348281602237256566753583796028577950093237502740387497829351505304197898265002351654203130194880978756444268619943850301040789416551466286403119678419900539181299499868413294266592415679769642845202186862747855531085261965298633728720755908212398611469364145001794208533559789532072085128191411360374811121609906828103250097907511818063833302757174598706058099723768153547751727900343749707653494778577306009218038898873886184417170106588919228553295710428165579928207973972865110144277208912311413480684932683771287045950814190454280900612930159520483448986575812289919083530442764905132397835708761145419476161867785827049228825047193629330047688968261933155795189081651811918344158548465627342887560974237095180677019803234603117879351465289133846931222114505882816515261859958857206862986833492012867103846017936243785388591537343089809132615685891505782642373821155895372177584584080242016971068978593128578955150846624277832943302752648179897760312443713505167552841761180113233783673590015962223756153231805575757820910192823123656019020800269054069326755497862152706125157184014058238743789569807204156325727517165110502745805749912838751064102948237925102959227252527713288008966455364211074931682245458731797517828096165934376233432118520577703819673990580432073431285907222370416907876908762720793128980467774157164102094416436355675654331586200427239492561415496191118390604588966301494115399518930324677938175652765780440545193375926776561494023197392578006566514966073259264327220846591275083028577414967333993729025708806830170170557231398319654468540855303333814131356549061367542095639656753085398265934594959980177606488270742116481674607723361419505730408160993566241100856831953446227215912005565260823167213861720311185980390230093542538652032991737019817972758881796472999638184738717280473136480105034711704123049642594226195351080572920952779105938702254096331235038302460680278380348740598405435189771230640082629714612172033071362409247060342483556793389000841861668031706461752342661701438696391109572971424644604201677650027150278977783320320909748688294062140793358152770601794962702408126816004032847670826674657432651188668536951815455512347585795794491087083187452341255295493076964060256356225517466945054323007427488780541197509268599631775828134068517927647321657285057858479989407552384111700228925730108473912250889684066181686788359627602108831417907044740687790722117806181328079087354131113723798972515544173123025227656489401112888542163968051322464270343670405882038853368306988343456963022876845098618094691122833588020731955085964625803547074340798138860958226870952213475306929466966808609686581091627127481935689453387840603617123216317587885615239426089630339478823498059125505810684232395178606574648341939220722807916406141927239541035003570799384710179918026851814906331662995459512249588169651389965234648272761033187265370597805462752555784013662975503582578231850377654286433176916310582423486373089720428829681236137889147694452399225861013955813478959744859266236648079324494307363573747776785724659004139668327832670998089870695250122146198084179932642140896823918967265759026747724339065683981455735883395160072377963533465901973538473298993061387280155493635456005160006970341319649964428011776171882799434909346513318682541020274333730946939332752135457048482681842123082481550165381411800599277821011938212039046304945485702225763025836532093024294858204497629019778142166169888304494505820249639308249013949669163605405351373789802230469298144475463199298651999844909230638401398857554227123518798635377418709253545943501587749565285092244431099191072103129065942083895046400936448612374859894696376267785136205642874962194149528559130647859149213159139071610804707490652068455210651944585000891291922086766270193640908381920959889360240246862834019450579472913927246864198288798144481259121046656498965103499432911523868482004643820031617165823495381949624405538765608115266970571140226970388990011162893001994529935117909007334885659314469698028203625810242139413262016728066007042325130150281445580511414036359027228859024452222968386389710869206058261973588274323405823584700463729315358381461072374148664227117338859166779106116854339240123946716584052774068845158556230946719300401673355756838891962733945882714732086653101890188424185202110049553138103199868658525331802610982393195715112544559748763633886462798640898771225843799980492225678380118701808843149493604930850736498992106624376659751833597845286276994816258024359033479338802066588757372806319950805553974458716956502528227017441672465476576103420007705784772548269055350141134666515168905612354972745226512836872564643360348224623622355359574587303176602983876700594614145968340950168607051208541327133564810125972270602768115603293926923408526099756513901959908290301122386663384809087303639476654081923911618801031866579151786779167797442073714392922600736611732027568245941431962656928033299461606972881174718998731174982021254344393319224239407643500073615280436632999540978701011119737372247916800556584448453856944124680940024006442175943720915416124832314577495562230387008116830130556593376416907708845420598156553462815359961275321180086365966646531990151519874450500928421895313208613490441952318390166498946777507000627906813798219280279833800584465752630404245903649827487266785428523542845550217006154206917046801695599191943225197384887318362884019825215221152356903192125987444463076105015929979564141205503281854006543415484770086335937144381101751629863632383075564682605654712109774788834169950468317991478533777058413846509082843838064930993624368535084540206017837434609226825153452343471880488093799128956759982160297467809370790953724969234588755603277586501324824112800887072932352450652636290375047788111249232947905138636712817908344763005045847975177087890254889167956379941988091545426609728663997869074174317060887670435127519127867246997216875247035004514221215451171521904600764045488307615728507868124832729473978322580870587743696905990196381708483943917530704031233102056878951568107747932533907096509385220629845798336753390062032760962428972369964983378391260878505432966605143426150197566629436329033512100029568379817665988471959531965893372166255890769711843480468701102743297720818822560936403908646756614953881783771389121152682748317903924493371141106317065274170681897429934646976289617950933543722256543515924656537238069448052298585501514432330717035423946456310456380499241326878868624735155943882579813892820267256939685611585292159038163145269234906262871412612073474546764567174195599457682258042363819128786429964989614573455704031889537506094024884093655751962856544155924129831588915527695064351498093647284882963273595778090436762234351352332667695908885456084739391061760498282531577566860594683185877924882862428331176975172706474263588784664844519642835508916892830291361737950428197501823646175996775409128727629493780175814855718767578450804174335705250262398834856769077584675059087845359362891455854030579753256493450262762958757481957001095476425399125314759959234478964847437504414554040410341622637405912489234086331186812101806257767104285225182808816600892552195450582013832293713958389597808139718695246895446074693251169728963394887666844845700203898488533833276682007658201045136281680898416396708151858116395438342718322609464388063522315746050678799819937809249776051643993907655234104167313106318958330567052616247737376673607170825718510800552920324605118755833233158941021036419222081538113081551871894722927368262699382265361051023955307307410720056857641632345428230973129486065931130157920021638599396247795494136670678295653032261853799723191699315970736748397938145410919611501898010484795852608891571739336707558264781235232554185650770179609193767684775452367989911553019856077215972288361662430338656814592301940584238924773296198856922132750421568684908162512164288624350454637909845964177789134286132001404146025586618134529248525689232649916746991492965838509360746540556417621278525532340376194412061414817079693681534175546569948634835990394484802861181003486781912259398545253337899645299837133040733805261571335764113462185245261136065619264317396415564066309081696772409186094611542748168682214695760026052111306508707767187616273808109621343553942458320327314873219930202704060707112334346866910651990527229896330372336276830459226864843011910751684830536551709561140061918645328409451165887302442194114627245735725224792255400168026317696173053188989057363940231893592750611828977243922982722369703014235331124649850447192171075569202204373184860985207291483690709160478069951669497042660539183768425128314804527427470765082068895169964874351781027876207868640816791740202175522422115276407921751864201047268869305111016837052177649550936901510280650625533460346729248997979929526437004406245818975946847368621471635553268403165115164979035321641200415043599707090645213791435097547685754283678087098239810472822938614259052241156097874407361793484838808750252842588153277260103857345176825425900958932093507067142919383932923403855704378657562319844904986820262905133568415268969578278716616885845753491905965164602889191008743024134278406829044502322777634675529745084275661104551329979958170574956667737178743698875785170801420493380413382088642640943565258841014623848548860255096126120626920101899468702572898690782904860243210898253508025715117460930954541573094076005883844828587169164341738796126193883142848136702100456959216912801843497251629209534366350413921909495955384803082631070610155440879347549809315027587249177680019569302764746605100021968690231588619202468751989796911681261694209188391601688662098054615262927356454863042217801952191766414784848413344748594022280147204534276293110713703972746060970468140402866200225258859355854663185036274028303527785819626643719190330959747904156430186032794205413995197717979850256302626641182063956643686634679096676149973059443362233671190914391810399730044283052847472265645012830830629764655427953033070637080726205797411946988907470007785547422456765644135211079477221378612539249587806662368405080247479040104918731069368912731019724287230323011026571729267307317841977779522623569652935271295577841159363363574365443393146993603423897546274112981146081755604626604576726752048527531012328756672173853423052731707613402523312736638622959642819435942654129918291898202978551405853705631895003504300390367787223278329296241075041044357310556451554081045081589462251297813876079282539607732928581955070453750038255120119034569957516549684246083764345828206907364739900035437952226449040383016747442578057867046946391312703762006485997188026975785598215056283866256812159441232117326184466213717959484466761817845182728537180134090241072971379192888869612239103100262610856815758250909666372451421101276671374393049346434782520080471013566476290920725675121915814634817523971066480532351677709554520091151380413837422265410997437228901535433179971239097465685040522506410858169306475157812518822511576732599433204079600804424467435058662711268617546658045164937317295692554308904876214213706595200830535917646304797832374163893941522862781309388248638489521813031865658230669694207100655368372074521356589584709580374128261970067513932789421586999017042966020897218883275358803480788168329280803125276370624995778622674745796460838926134344588452726692815187296186615860134264357587607308181849183697345487829917988812010554559304977604320505110293747085775843279818502422671005238233063871596667121996703976189933830018436361918806988309554729449457535301265808392295141711726816955260622648310828187176698991477536697507825485567941445990644629663222281867032342176731451197603145093302769898311738899959926722264476592423384095329930554100992651901282283975779968488870167890796867544744380638710313214443719506315731567276590012936238220237684934724276120878255031671179246334026801644944918401741306342989286845814833632972557286171502824917522868602500686754674239781364036000217933630174924840711431485578192475661829185203157272190010637735856083203114857043733057160842850321733192094393557348370260656941257847800012892563626384542528809130129387665532427917253955007794220240410896763170385633153865049899708077131760792250433894178412589562059377720092365589403390053582804393596032002634107536219193045269253551132918575816148246344039398853791554565075522997983608412596329304541515211622457941670072647602650836939043445402438804862770340885420147485657006784242502143460315416355089509243995594846084188257860389902985047067922216697089432837044327612919999501260980188878874626916724224112654721970706298782883836968528668918994141299800371658825643643820946466136331880822892755453582821552505650536647119700157847534996161085276840847502352186045767416019393985959352706611465864675116930894447793650134581678408181261275736000396943244768295388682210341810619251908164021576589573294492536055096104850951479866849033093068768156195184470583583884760799248806749020154156097544932781849261576937013461411799921445183773272710174666208182995804585693974745531144064192068162447991096826937845599382900816629212442372335672138447671659216993530972881660656591401451529459963958891091953886658522908525320711676721443294000859040123329978047351036257113936315436958497144166424060714461767234392163472890566534951246745187046953502415579610903725722894763805165846064426478099743053384864928633493399151557203246890937097146952523518356951058032857325382260763245806467332536478402607469999999144911735600986273284530129625075574717910659905918284419204789444363717983483750894888802291984133357140778624301929650413536627778035478736399878702009207801038639895716145914921285140031512200649783284631810813732803108228280253638102489993417106169326070479632341674782540998191930760350815012954565523455633938471911221707351358311944491787358196009132881942536404475733095425359826195807773802283298089608668984765777824899410466500040593986910379409842498152488825063719519872628480730979027435472641700771464853484685474851965952340178281888707548035172193728865002063024727736408228254016543419318706091384972063220026004758289854348150416899367671517274502524861717481925154769924339087792190221481651977582233310192222817515602883607201182660759341314130765198713826650036663051615817307911321298202879778711987989159906678307108928343830657079080744138085282013641919034131123725572414814322455518219258827299888902605673039906878965736399886599899810453790264827106997063402427356317681547660252299136613819528847096195479572862650702796802994584848155264247705486762608494934825215443227790915997918598320124001668484855163174191136304221072878129037106842294054732329610180684120666169581899907628199913924741326303383139632400403453686396904043911501404387317295098833930848227103620333866780707411898525437353138424490655219537262785954963808166590636982126260280493105996559160633044263255405650821002522952943588496181339382781606279934508736176889841813917117077115342493035055935867689597231463657283164463335124092376383794280334249058657380002307721496878455509183082258351300051842021781310614213566332197549522243104723806057839187439789342668444358707885964815172058841306527566233026553474051285466659968443818397349531102612024539687508215283822895203021775736715435272104915133750732586503045077463938429363742375680364799306222017669842191177427505366137394434184114345486954576606921461454517093962172771109653600916844154043357085080213169769019400834916247237848897644863202920887863910986780647772016269343541913083652728255351413677492860241474271362871978066526138718594083036760981126902058156579629328303234236638295286914220518242796062539217555038593569092553629030858820985636097075620031752074836696248859393629340223354042522927902345653775818134941636099493049993303308689051847189537680363443470887314917100348900488588936686163536494289274789426712146352285770751678786255597732734657851180406757182939916039499251161962624200726404346923536154611703658542693152473932402641111713789481668514014936749163742569848482676799954871302677706621173648396921539913323195405712709426750317772404766760748817222901609849791903890536736207028812048358507835556894407997015593401129335437440531316985236876029139283881908992825444760535592912522106598244412140593414512480511145633308586318553947106299538509993310779137001855755046048156682652734993703131795035982493714635373264858052095370644086386689626220754536083855329063901915718182865701740252390100820532677165743649168987634268305354047598247454033026113247136200960083775178889572925701104642416866952705367386580067813865816138958639704608689401516464619250203019083407697102293177102655639967252400896807321202307259202587897639682770052235386997676933003362749978853607926690938774925901097568032811352767384322216422984840117694744481117984011571477261637788289167740235350471478787589712628331341924272890010976040399635394412138110023558181517837797884118306601362704826658640071738114958418352256772961302915677062751042048525090127209982540407319804714028510433510051975728120888644406209645314682550230745551158951110240547901663045844497331280204850972094869291828866593531449926148470631966435155516162708672077797000167343704490920223194727822674625866639979331104892033075891438139320041674758102188351050246184495769414916031543045809481387294735596373338446210830130556400484023276192374293775022296109219341296766383146605509576177273992770180523587982137915830070067833371480765880319430636956484154579616629605643107727509327638749178861611678931001673800890884206083089277948171231615837798911534898174412828509725653387174718170099655342051667674316587889491923110320970457672997099790735499873240157029938125208783366832750727635081828890434351314025714411443739319904267086615811004680412059072144631844324204008842387124864399428927201476565909650080903254878518652079873326110489913310542650534469694561242423453035698260055776244128246800194602129789340467999244668618586383578975934691228519441034965688887404813235150988751391102463983195219602147350571015077014105114684214502939575707098562910973193936910387805732201992874575503208007775062660274438839507418062819078770108800947863176246835057754070296114131083173001507958181071332028398447531963900371798662528003370502717502278354118498322938572660272436422962292952751293858939109186288116477548901477985515657791230433269529413123700459422062580731167114101852980139340771255146476255547035523342150653001325699149267928273544252973034519803980923449672652003380621511323605571487029611171712060149401687611634848031751974999716309490489214537705078637024885296935808948157867086169476262850735036747847501350413125480389014988608370535447495575707828759248418271702757683905358347048553191452163990011006052665160549591005722288591399103388441539017639833582128312979186675222609875853393029703766839423890787349430026726708413282392206261193047136345086007920411787607939821502417143357101210874676581840168597956983025984931686994370677912872056539278965642891993173062157114787451971337128820309721514412990869706618427512958935232196918379150163715931472251088140009345079116192933037724520192412088205090895169738302237921457862150603087430218130393804636063572297301040602741255136804481298198198282577670667075132980644333688395941368805481818425040549212916903568855741205052901931528229327308702846616532724933216708009287973329244667000886699208181773741690939978846160318863181268853535518814985508831754039820445815956125252550994917708588948879818309197555418424327262410999159231079747850757491347557619671025839138761807383851304540048953191861169193401883474528633655385528691957356275871393924183782735230218813044912659842867086919426421482030986073580393232677509219685017433649275419101096901585729529447997363980653443605765815010383379603429368684935834142038144007007411982191557035788350822009626756818648146097987261934076018579996728255962522629664287333731336450050382885430558595794952390692158360237199984266889801826025643474342724171237760965984869858019197673736642392074081381030938228325379412082034621655175938346297992871023883246798403145256919426480713736491454211622778237230045548164003202961228576570777076224009928360214324215111185782734215662431806445332491677621924251037948146927489204915550417259520011863360781432409731034792540725117451824461210883173944807669611320711144123491597796147111024209675269203785552710726191622143505212833941991137676390898775784398058918513212098539294133199336156746678825255472564610133826352111638149155862825256138857939679486619784882003646587790841023747961729913731110281688388356926990652929304500600583587510041294713320487989358116706945510345150198662515245723506878305793691794950183642377372567706725972321950970016457576862728431876932388459865395397829531497289863730796503961736164449003233325627756309805020350009636275631124942043795191986036681446073370273942409836920112943651066646698979379671554010947534037722877535690720879961616940260064930079735380769936279505601441357605112098012180948184624781189004277335905418812033675824999333948705702233766653284220490396328334051932026605423182057595731541361203017984705556844149247844732753446774263134147096420763920313921891753987045896784841815045842692085441116377812534344136148297170023054855150751408206885805610249242337196907547388396048192328069984428509595223330325153731612918917636217524637724931655558968419493568791093323919935905166667091696985433907366613890028323097185517259588517232549898300460235677319941108138398263147005400944089592739658395655155069674811566858748165030428167873295704582061400974542527909256057262872528339307328528382119883951941232585729479391521585762252476194284467430611955332683080995855088694778570247099429312575456743666839814228446968411179516420656963918600414943065101807520676349508337248049804879112647873811894308859961102489510247030223139246215112669830009007717780159589694208941941672636581487333672840390775569089552193848955610675299883228828224385432305428699324893340980450824502602877525523869248050834055894536866650886548401343704480992400737696595661047401277894947994160768648516637998237510475319761352987602350975623881176495136529704627754051012444926043858597894751287839257604456461308126813285298476529273357985234967874181802454075933331434217361961431717755889978552129957426456551604875242639363931206409685248688171395255675985361267945633872219154741624411172194943214767763548806900498618946974368415602080470453282443279373532799871596450437328014122033439414622207638545421280332979159863409699746033762907396856898276029363038048773948043827742529574373355712232913921097961987655198206901017005849149164546084446287751371605390311038152747368528895096549004484832076276388588184467010744071189078477659891941115728284490956451387183937493652961489407040592479640867997156162165143942829554483344935115628870222333151551385299573161233053731231625784169948029522024068284040965489911392143145594267262951075205853792759462544087251743013082549949981016072171526746049640244956279692810079197300172100547308504556762361297486748830777343855053435778342231215878193352790645191832516501225970379306730129802737521346440861898898683715564714077785363657358473097656647077673406104428349256838051637741664873198664209904755864663100930969727268175099729516138583549244931161147927076313001782522323917690339746764444137247441604992375169757670369374815847746743620832970003923261283542750059818596069626062937023461769990786551588606062481826449968361548222628576883096387407389322651776510093965622857417961294463019837321422622273922685528946458956255368109694902635219790892240835081975268583011278140285911674802348040570390366529760663975245192539112154981469213181550475801959239231448255063784060288374717725169825099205138927757027456117994461502413987913153850485452397818764752725562045188288205315343414444743698547386362474509901840880337450928507587224364804989000071432419050346294283978637811290837070861771677459730621878756345441774747450646244071369283658304097511961676456293862842729789779779520922578138290291041078853639616528106826631887169663298360292589860060636252581331637864416616213018641967723769242057186036327712339208780275548040550876801363374073227900130283521380305414049943231845151231583031101322521742788184449036890341237568052914280705084735048482569911864846072415048699058063382134091613065514064423831660402206144309910721019239558437560297792797175660158822321710593769514204216765480302577550546509629950334297476822614353354244732302334003407757784687096680949612253777956171974383820895289228712264854090050385506023253768126558918908059140471952180268773451824359843062214128394604250400032374778370363912541218271102703921885468724674932970894147208208019039314749177288607429548958518017156193343293754250947481058927915314248677807927077135848504601484753905130386685095166754967274026083750002031965463631995423124611120651162376615496766623817577969068966949197518440482004218328298084863696635910383932941659975547948279945807541044347120773350678286454399948277192662512830950907285595376544416830443641249319689734642890016798667456342636714002915958236679739313903161451790727770365861742113536109966469176140707662178266471744036842185296881927040428091260479428722109721941630246681899998857446262863531073124039732786249398569586905374969074291107546787396425912554195544993535715667576565975778035170519461314087981387841987864468656544751456707561150772516355874411872622726636252281964137914088013755930875418540463694931930419672455875063634994766221242492923956552987083958693200832590488211160750854407510533010727775270583389870348778322183870447714941554204573650224545035621739830429071425498380712283062658691317037861328194341479408471881238315883407132024364020567748314010581031707753148198992909635417826704094874108168173081023990110997246618708921496544994118498995238496135144271015004885900343343219283019112486454725386851391470043575104352465751210019563791343611869201650100942531743266810402622813764683610991771550031132246608921400922232389016813478199109726545016335408710380330992767885696684079161794395677502742267094412967170080681307628404617409971428153925801582734149858631546361084423769507808178235097738520697470295162183999255120247469658570998831305488878378314835337609882020002721639894746837405276005258009696608326616166059538485571894904806779167775677663081036833181440298899409448404326674559761399391339080912413590896799190304945527394246869629437737573441859998264933931666475125789147204104535876464627270298714873070323658355905075840609545166775901296478377245743673806381881897580235896398870436123865599036663201675228444605166794029788109809471728889936051092526922097989261188196205037945768366737371643016497893926378195972150212828679008482045956723362132826066741037545160845529543899888308980591305297080878923964891041786037634751137978339155262331930280223708623512992494887488196573948454037398444390085273573259323001642241688883815574102681203301912061567541787335455091189542562992968367969183609991422498013190806583072630865929947778508479400206189891764267854251064793728508259501826093318188190358831469547345507890727169022530920942731423171378435292890561237636880824264638492672447799924728895168254681556099073975473620844988102089507033694566458317334816967005151579747776215415714668366563197473307513551047950580850047404549126277551425573604213708003767594499212491036650849626738865456968818649259494129854914984961037186939292937780615017516993831779243749373788971450334465926796904020110068853769891807241759377955418038695480953750871742423766164808244723372041483236402934029260288870665259309894262208545393235787963359122035105234995699173912115175721414959365542670727100931552912352771701829512727773422385209654880700326548606707597950589868811057554383436311017731587085789330575054283709358809985429246181743879784951051149411224271536636052411770549993453151384130554455913165490080780903873440271970818268935751471871718442308622882783492690461422173896426765051835792771178198465954961595959552599578379579964507947820149423823046077662926490010018934263265704632167822848768038043889318908752147973394498054699724883484422707704134503271838202780104310331887086598494664127873719986621675062742480422803756250910464500615442479857123576268137025512821039835330837738034675589182429499291934059830224480292153438392986601899080663200645393207704960316403065491686380247094902394694444138688979417116401691917776454697116872102334562302601387892442760605170674549585416214634524041690416479666188824499175294800709530454530117835590761439792629903073165243435950404683166137915806297890052606678639384640453162275752092758311554714291941041815953463687359944963052053049352194815519118398075603101181368344028734616339105616039028575298952066879537629941807716234542217230961453589470747815079998080231812679992928848073953755100612177770008131782874736097629697646255179009247922222749602944884249196003018097622865316541382461782789977990819028242265055853307914827979579220937894359988271427475763723742561198671768477129179387770518172726812370849304757133078845218571491208859494279200368290589795499237568446375001127884027480626385302727701940793395089179196984978581421302024612248710030280897979524367700092448718075588767939208156851905621300517201834654745132988369357139441101010322122136207055561234821745857137004854751522896409617742053419667296044887677977395907024225979802898676697134509431725339017064219781253239699250649673794173624920080936525573108840420465048200249103275836643576139424418835396392173881318945299319121449039512551303014072545984159129076117515887965064768460604446617282404218612258918847580463856365907986784982173082161242987275099165367476640152742870609788121478280687881266493002280985185653729900752398630070510257369471608446448228037531513503333031245210304019581031062566991862254125245340570185286067990391884908822634220757871937192964550786388045019530025695401361342153197371941477328891179095002887357312321780641814474485560598049007068590653719498655427431390590236383820069821396442083725822188049112036753601490691363846023315758572947051104337461805879561194001124241902549754922390232827119549974295653762155926637374501653183407105580510415983879211387663282799569335104813809187123080644065795546927127876337751273217241515482849815507445889535163364127541542158296619750240739179309696056380638974398390413615551072081909171664832547428860966354806062389803439662029634778763945506639177487847307769670356044246506851999798508803581274485546738775306125253734801382136326291934519840521195052513386988822664576049272391141621040434015762554154450464379643847211489315155315085529668230055518323484628840167086841628547718429047082343285756486134801124749783050412191466114326471486807366829531092049577018839244186495742472177656702682541383095201414864406758710135611384314222213501839002683966795388914838077255249732789755334773701824964690527295052786760036871052174839497011198679453394094748358034189079667581999281705529055744939362086593847680237761753076468333387272792321924505657433183010846605845722856820100504105873327495553471339865318330953312435357419035499738307136328076522000910268058569435330723937753965671487503240207303743096532874985895777301059636257315166012467471454336361543254129696800012016113463438087060924147337493055247349586177567416639434429434161099750128159019843340586926080804604819771845431052325343909222657880623856184637449011580161307842653723468357788051956108551467876592330026326374866656121361899196013300270263723171268865053669074158634364971541992204455508835252762460622053625115858009846794426994417009352731062540606010123267574213081273460548295779539369032772571284712234549466299922755164249658800942057627993808828566104016180486455852485195705318475634196184766690820240457595036739733537466088577067581622366968253174473556538416066665001183604154202263004288649088149180191113403720611865641200043542847366002622054067190664088734692451843874441590303447206839607355978876595015888054718830719214977562909151005328102361500064841548159559337945425436293160089861798896796263049743250676921194898713603858841159241427804651864619627594746988312912753195874585785479402381993140644474438543088975084674947303140082128117320108836740484834834991944737634269246906674636061536449423311483606329268374841945822088612861959937174298094572130981240395245634220796800120477535592056411387669841720033094035949803159395938760999555240872706390468539610686732985035530176557060535784708418841209445393591200799218613045841428031315681389871767580796498396666172899133732114396233135376593486650784617785778683593892947166460952747986440061187306565570955644785323104917456374141595241617241666161714309082774713632014369933422169976548011017213055007560650483609833796888013767656834393718847900470292178967582170620652038036436579951126037517132074613031061788302044017935781218120024618182297227089485105586539271481822664589794077940352067776582950364699813004266352351025126420283032529493697730405281107296503744380173834253475203360022042085983493011176817946694448937849727284614746766242086734852175408228511580365302509983602582987436082854788518882058914573709557363663243791916731703267591985506947166670579723733685490780695635071265606318121319852219671412636750743611927775003719432228666451935009210676419035973395946116155426087285910892528767333123681485459004989741446156148465457163852787604522294910554498339746121761823451237835859794863339928546296849952918943814763612218103581438064843805367210266954036225246435667502212412600708059660982003882241535490451225544024868756093046098701977713821001504049925818113121887078945332647893464001848286999730670645767212445971236767459757296248617895627289513540142107397966016645114340533146824931126741928069848217710224779160478304936978269664423655343949601323495734946068847315339795573593970368560701668285914866335090718822010140952557334946192921846412499354655282742326841390981410150707246875558474939005949494632790752380206681983311419253059511280106598162189044121720124581134458964615175916027617066341525338476252773056106101670184312050701727766333478320645101803504000184976922592222712100623853117951183330801849908909953588570299963167074115909010944875673812513312765677469702574014442493806794359629385608395121270969841714482650154556792641862351180602176437677877563900415498886545857196124947627870539473587567765870419831853531341900579375389980985231470889988256168119430304447906158102475126553606579615689864463813202759027306522690863636870770414348628145953018083502155153899228431702105910812857437952720691491263253922660440755523466294848944232338192313691479947220331701431476585501710193522167156330735885449419326900332119154706846103906095568652819223721385216446102318365994768311664850631468164493602513461177123131368413241748566947839870446687498017565839273990029247938743869057271551222923903541644935908880443270343202813813830639079134317848133898906255513849682505296180521833956680947316273364849561042306341070058912888922914060168753704119198625147571069402059055362818016235573743502503599460956205100033568893824258609332872702219669828594413183884497557450001633003466295953762877434458736251909036349339131352772474769939610639372283001912083951959651358442629851856189401096358488061771396179290488666929120928608478606649208123653465573732853032841159971895572993567751725426200570123710433768085088824301922911389341810755837601605152471236024765411406473868096063854924446022430887103305976394356820947689295358898543742031648032372445091955760959393135700084018300325928022287240597413542765246584454626713068828187557994659709348582812916100936957166386731870197649977994228849158623292610741891396362232231452077255950808191238595104864495648739627600572899056614110355069871129651870586287985149117703288425447321121861331081258885708464625299851420188939667429306137988418849556920329734120841818409087959664617721646567011341207033753692823027412140931372626626021536903036259096185028210274524079246766923859152592090544051646993585924715283430336064376810141209322207704803385972512496565207112840814609278224648184435383013883658414564820840013655956805288505419648696839807596182474223963683352384891009331411947770843837536662776335211066227116583987424516446293755861223075487329801784949392582068297702966774531162746778644657536050276291240185944702663277635614097569959175536862690472787511344429997370816740010302985321171750608167840101853865277367083527029786360313170689121336688130325768539942738516339377411777860755284569366295849773916422276090814000115249963503638470331779642344044382804651683203416493790007599292405006945907042868940206763229669771181038424971393342793187427202716961351444613467269186447594049105221876114204012010705732143983005325358050707342292601635290892158292835546514179686683839667661442483434464975030675409444328532848801537935769368305853988951448322183097003193467112027017303103269410376872783920770654533010456936329590395542057664819714913234246439381501391775438358594063095836516262257145819591637724044529740017103882928368070526344635593575938054307846905594769920144026757706663713691844212397775713306178234548041340681821036779331108217987312140229345686848194959952718654170640543951909219873983592395563110693642511164939040971934027990124850551105882503945689319233281262604066731965232368524845210278301285146562109441333106020016028234482707928247732116234601465052928591549994775704902898748426046244662434582301735469326597181205759775806849309427793663722880583614052381977840848361046085433436950545581279324989764707036417402393235885267668269907143903106149641902187528714284655724629142760619259618684474080457430219514416513261135309081722368306599811068365242132373976899452612624356598089675297781939511018552127509957728201676544058703094730817799453917130622326900049330745544859321716764124393119335950034251609764164359751172940060045641670342675542884972227218471872801395193873719279159153581369622979435204645542749992734871625126606882253769178438701386309185695556436678366546036541870582155725097843232363222926073305642732282722929911585740198264078559550576418320345745729617521208682574753715920635983870496202080008901424898002642083369714987540850774246645601448638631013002961677452317149560046283191691077259340557426159850947775545449641739264970328066899047823124191100919831546822471660912329655705710692947147330517001461643836537219815475898781621005556652151173690597441900189804198757510538705062314160253637332423814550373592827080834254664350834373739450025512722983187123757189355000219180780275815174267188260459843653405418638894979041382673093169844324176254712834639279043563190842846814528438108793717477815331948703082140821857667718238127975909876160347562373083553504540441475086560641906330287482540810285971709070369234588111353683303484624207654930164609608139150459642353738105273147587832708935957421845756009313971826695713205128795409884250560130189176272414605461845630614754370938850428330224136920894820637286475391047453324138042928192971249012550922318549979739360546558674244396336991743305696762142791700028863095040100303103574876554020908179507019977697386436285157506727279477906182836027452867261344016764274189770131981552660997498861977630389705321724997925157713349702381457905776317011587556692359173189543209052120169137795191072261253645447166485713041313956024503228065814164647195727464266394852688273174322034229585185380392362288261637766005255081467764446036650834954145598008531030986322571727533383932187178094566960882623382550897071222747631354211823813121769901989545027206780945215109396712782374819256377561780208929138208685088546139703729362537800346240118533353650266285856825620463167376997759657137041072495240962894946386072197440356311951347773737107130058564572235506999571851319341315893301156916802045364621114045077768186919513313335628164458041023091873063277078875996073317892890552664194392003913949878379676455012654498735612578920157109055607789584673532177484355464207863727208270537073489215699863337140637735257570452190585748826869197744988028618225036961442706354420422369273907309132928891226291556598315711863434771471730624041261387146814725068965808092909668727441176640760577326238995742297127667185604710868475379477533762853310307053089364224709921071965072665750538652036858097318858301415192054604278533859986653618866808323884843200194620023407094795727139318831807543444857460284976916158013974841594494527327835783923963739905782582888601414109319914798765555810337639476689647845833996708290040038732345959588045055830905384652826860351918694978036945773687198126043936290031542275210203303911498042000794456367109597588956276179766577616235707034071206556004268776622551797017407701028964680001278237579585112955970278220087046454852375056282481471158001002008827164919208607606837505092289526709253179333016183013310878267048276199447403125913791853505624880297550989984258447366962171110759018304586430858184079948998987980308935865880925227848978527941524599460356523564877227438055006044623454269411591254740066245817794531444197479737752676913096437384240795141930903261848938936460128773420192891132674581782158044476022841409388004416959215555529010412222470207211793562861197897307494465433603695590304747366318914716186837922168378581011130378932444916988872411737330448735387363456899489615904490820478893475299475079254842936729496383899385161185334498822371619098007064182883886020666288815120534178443361612343452259557827077258074575243762997138356356456889961760518538377618356016897222088813472925426142652435609264435881837392202257565049749530339500373755395351592703621130656286293452379758261006059756977994481872895390128096958997301936608617341720077157389700011996331640264523318430534509403811960310798097038061120936923164330754507087343628724791128781292889599331769693452870168773938265857168985106932389412604847313616021320119168831364368516598103917359502505402455413029273080533571506986035420723192017624281723104650626248398499110222667525271360100112322626106725416958386181621866008861479353119044539064036559742023914957820573190441220491272931064262545728850014234271035452468047131863156480628773059308373212567430082390995723772533742973397180658587597457028085071157898820235062876468413133239366851299051875164968770968004000296162512729008376420208542830607715660882138377547758542939584842096452755979286137239404910843231497452915020677649059559407489138902074292249105938606348249558177083045366259949983404088013705995156121007039813516534139789320676191485875685380085814232868739631427024565908653622016156952646409198247747654057267174956803453484377240464852680564961238065003985033249177284210252653150782936385426769584915242726595860840815316987797879925154008913212393811327472049992510280513498948449572112600896767707578774005675111528265625846525043859620916749061078422625212988692790944606304189317759248123067451555228225631280069889737882456823376437870192689740653733026737295550242168570583251345857917316912183854979986828270551426530265112871029623330534984599115440585898927423437741148704847331649824831036341232258558117456705230944951710074303581928824592051885726328715619989123725430400012382599625838023095667579488965191255170978193960382556277388963627760852422131019534152319857722030573248156606071109291764842873542854207994777231928275480626003688541290117199202455913273686042351363140299065142051247217887777158249651422437050821889299759459538130623883292175916641748972995949521308636344260776458676638712793420398976341860872354495801707101593581411108838282079460505733951116744613118925281618469435517202917705595978727172035767671296921151127189692837511344752146994984169100577892460466464928729778557483178117305882249115978221704921424953331873196208748803935220231911085004886068211140673663879895967855399025841049991444067092572437323878424736705369250007569044058389254118699693050664332255449807079537126390210981977449458361352984539947415184023457286848277193206830532507716221960135918119844790407516598505612429733496119795167428794069992712260000195925799070884494440405306958719247764808011539681002256948843315553673895061883511276248858530619271199846885429217631847073054795823444257020492827748868262917747757070028770481569187831338005997279650493247132247308019922817030120143306414774157270697160318797402757793344142170265050431641926968251120390882794499055426570808816382604713092429451768927644629889423996706041364761816010785549078232956080846166903552869734977560200468106591916224453909827945520714322614420896908178948107875366862651945962138517961867855735565075265159036891511776982247730822690127393479921686841466747252616504223860803067371099271039591372689949510040027083185104457427039295764088048661574291166455817946286183282872219059975421815894873381119687147543001206449191850678275461415729753086028581851738595626493084915812034462692742031230376210553566686887109077217253916621846494434482742830864877310337985844974322557956735685977771276082513296569447335884487569045125534548999220672648033008450516406656137138206956213190369777763180393620820233256354711456031792673272723541333033807244020358142743426184940632818704895537422170363154373907029281999183884704459949724891472182762067537298159823357525844478616906718223753225233236796261040730975625260916069275856320117267122905428435445236420400205776335467939841343533086440293679520223293057275582694675263461753395415995067810690819052626038845614798453385616653822789184788586889390777274563458919849435481387402426023346761843290460201043425450275929668015502992396565888024888062019864008462131377572119485133940337873887630065675106092604557557827911903957485781428278747031203337257275527966752359684842398191114485682624715540966364285925948165336494015944081462507026717703488324942916129391368970607526772216470144184519346444542795267995109459088284078359693532435798685277221380963028898995531097263601219447919589066909003002810120464926333689161642683650976064001434925642683013298385277101421032549804777469150382555993284703157493168298885738476391025126778150098102573367264048138361560224917094727397704269491686876062994137143610752749154134999149552580128857884985196993797952678197555733289210917468162068560512861254878418507406869681201326877862263135126509482049976706153637496921984169165281423053677030098034809663151131613577889912721644172004403559266618744930298436725312248230506443781367639542350795957107306857879908988996050565826110228393240654301797634209910874578342532543135045330880294545009759282684219639410309957324759655485736167064337182541226830698934438089844201877881850721618748031918962397472165208941401492749119711736591314783197263030068926744370161730793561183646258060224890222179494541274378842854564961423416169316066513786727866549602568554806972264441955091947244610464328313403889251816488320061954605964069753160851355749583020951316722558880747429722518119871139036133948543757607541871988845823620826078514307997931145106626942194349160806840620655827669848927896948082616656268908545581994485664485721964143039405261527742934726821204256803425757399367402201644772223165281730394613523508572486594004945394055543966847517252143363605207619015867611343270979761094331542511454183342962669204799522157940071653170220811576259600452221622374667474195981412118077004103190730850505797069104632303242908143345702812070700693560384268450247134580628882917002792523385239870656216828249444294303261258027007031441034288425239599824809954505855278816716454320778540948886429016444054088620821034446098964616532596100108643839988591093244778408702181180414731686634656355357008860127339976995145717690215341806660319265699093864604556870499393870534440641836700647908104290952968349139739667663773095303287088906738253276814735258179894731851218425412983947751453502327728052881987119950494709572655781082216638772198426635338394860151753354822545616761490223539622571613460808169390417615664234572769965944240412239143501358474428641533740121639767356829506247704559137408755297169498324607894883342305916333139626422002356550189452568865161277036090478313731881429401896874705365671928466320074520216203818679218342620270427398512274066537244380571751949068050757694068872632828116186607328652082180127900195806175424625698492436027240587131456297182302859644464781571060312362781289375773053565123221222159733828140298731469155323068069989829534099020436811816859373862041617522224738732083268243022127530049215928711522176587960355884367585933288916867863607799281723981903954632655721394985205522171617741497259706660494094947235943756774019944165317311779136939280524482414203011894424422924614360704462615339860534384456799325103409674695293500631181982540697665988993410574400616036674525554707173760778267715798629969873074979832772200503463027236908791864784975664314024174668818091195494694990505182220639433091762147322520192198537477421315709466232625509220703377709983111394530186785017893224139127033012766618939069226046775327317822877776821666755041685116503893821448443217525482639118753457644546368597822623001210898221904745467970819623878082710279583980316500233403162601965673135017087795776968561488329753553877602456098570391474986880031238309399601746637836791381433969132020714637652964203208295508318622886208687476949968619380480062427837440426599182647418659704832557815827392545457924429913589001340432432930471217343179723906171412701311453640261338241350450886080271603807911004523136179259158773954989727663490106351735492054702893037802913594576559323103004582340188925935279098712176796865667693936869127971288521030972112389688554445636680390499834374336159814054409523114141591773881706289040009741189277790770766735270874453506011099475758093102233387972221564598328720753753574434309700873724178308578702639231085690567354591887757390229126878806311707689381331454429402861559134411682318632796840969570506606445412194227193125153919820771655235972429305257891747859635504154678423239495691949620882272213723564933931363452292895157439950402649879503322020888946181854092085729666950498942319362633249856064947919056215520728528132254673816650781196382300474472394705967293754458497205327797251038111163704081733664444481039836686280121667056314653702131796258033682351629174864621238106071890679952090443574152283045208656193817109684178197367295622554046951081574070110032857306650621043424724810989744376099262045639301034960872222797162090021507608752733599000218763305454881080687563189092221683360727583667513030420069993778614505561285177566151072848282846939485007363433924322852931765116903192874410765291180782868767963611600199988758082913576320622840782907313485419330766494846838423886283354043377851909511880790741785146115490362445294108469178270000095306187013273069886964957065437981828386950226150589706484556059263759511123236786879315365027574857029061193797771019226858651535668226089359151498607386072967260627342389885746742078708387660351566377064467875413342551280723841410087694498456918755283099253235368623087966374798072409866680338798278161178848232956443648793448701425165203586437855547509940501813251969368536676069296979900301391212514901242161063476740764712394198390782183405627032284818100900978731481145216045980984761100319162630421932373873598702085564462163984535953204718986615694682380849299384397226452998440089142875199754932009080565658303251649324378036412839654356299319428824589425138917165385454363883084102259025483735867571158870795468962746731366475901875155079092566480623701957485792966693962199892978288607224704294486692779202162410487772610382986312972394374216577568326257561113445178375818664236554801480091432943589130029474585541765445194449179921778749769932662697320386196535778962507093191412000412199902938111518136870188953973478477107172543025784161134827673642117236562606927184570040280953279129343082213268448686895418679067734794646754957096320877770532500009130586874724422990988850983906483107527553853233781029805776230248101505590377155917846224398025672808200215437953726473320711615980517988511228943149185990392010549889248142605282190509400270625468569310104455927434236257845656846624618601942986308709538475339258210994924118583530244379537302963065190811023700952253142336634798399090525757786040731303544599517188123961715129808369322435666940574990031646652499516701218976128141701361401396492100149020502728072089530986713986962887630905287339588119798020275530103104935725800869928367860775978985352156393277753402546889909348407169422889857864657156913563011975753334446923832478880580413013263628913876574670050525512779308809675567581248732655909072710856143791761814643637445905635289028941269036235020449431145207539940248369789082055087751195399467804658972335701535200552288666894979952950785812082514747153801277633023291517724480418071150958808856219935942507341977514250849747682629754905246880629893068929975090862380738719090999022880719088289106800824153950687527442578214799114171280969907607115393412330833389311049068666840399194019921762027758008519478391539444168874516739466768933921016209331968011460323298416918331177611260068222141861671094888461560788810299067136558259490728486827530215917627519470866158376518703823319031660025817745909466230637078984187587168081574627542511274541566758719266672104007063870861290300965403259868093247549840303658794603262003207323567707143670683614149343880102368971664048060277633196137255803076859509786365051553426769653401180417326784855663500319691139786545119376062249438748778078863597065956616415104829062287771340235505499881583157100836098727841408139944699118717148616689857522468104465269011465247787531849800606091425499402875647575817907434323410072988347212533085653194361771488813653041437578030025364357588314537373860308346472121599337616728083722679917009703673653996484776661396650929106620244599324271086630692457145481427514554322538589655926066545956077738408327733066190472250956337826459566414852504564475012982361389726786418721785094924703294851199989611114146315103260796741440343824527743500244951117048924060333634944242754432418453810654414120554057063686393622935545682779302053160448256869004402518098895038944388490072171210877753245155883659294297715946123067572968970250123280867284391208846392915146278310334907908155684883981559325457088469693639489984739211312323565954021360180813765943870420597502938574895157339356344062886188866658072777536540822053570056235500744680851989098958470074725122325234436550294169598127758345468405163800773193618106576496204461660389842640528526502029042517628603373899946297022710069541253366495323427660001526827611447310885313200925780312786259182973122477544094701386547159146179564561415813833601054133723446786552448426590119962357501942301034297409085924303435357611538040004549327937746511542872441073710438190837630699144676484390970257217274274193059786169355559750562566769748201470895515042528115609529605063828181524677300808130513500337866319640040031051073857193158064922807234554201514232305141666624860823879139411852225227904553575516103805381975486508524458444991607881868315299769008622894211613939774431731775004487952931892689309162507309684272063783304619658078905668735500075323157410510242415604679744171871413145849309331816371355928520912754722123902717887568477830169596824779851670527318450206998409827698992954608428111061285890971878560496848770684026562479344732666594678829767774089720773956980814682567426085557091804230164420609569719611804010264009350690728695131378514245480607352242820795653675468385790465532499505274585140374485864103998304309699392792104170498356228301727025705106983902904518904769009758149879178089037958655205121825845122608556647826125816846080815627783341982088129532275592056010973144959717304646932083715681793057839545797807940086874215987676452202506810180583866455063121685049049511824449823329776564050742732323414449204548936070441677276691949929588276591145544854873740968591607095418148782308739136246418285092304400508690363183463457133914803040500557967307635375391681842591897911873736252182687676993870838480714287430067598230548404507042999526150123393704223258036348971383494754936206647522165246465482774913202505067346528412877626574086953482589016875745847120001205464794476302111300351499359494523114177999433343674374719265936724998592938270164749138870651304671217729674815663920262637998618937898211095055965670560090689357818159463658426959731365901765214034985726133946303496460180153272566839845380258412161260665399018342071886283024914525036443932759001636847516772678917008438711398471904006237863323625704525535306468473282928987311573854786141401130268711643834948862252331069272262895378523883088530152134675761479595364494191337504418053297233855907733134028533583431932335901188251380827507081628798708209596563663420691000518878788723040997850722348191978918860108050868663744023340769613485419516882998127597226496920579278868432204819183235252772650090375926880664217708126949688116850949794250772854892470096442083319708975124462888569096852446615143016358660274179194412844003239161081151284213516991970177609033865221980350948837385094453925848367223148725610114878701789468524167167126662047761116103762682170839296261815604619224940378087109889449406986138640949814662598299942687333629199260350394532088572489376060318785397584749622909316181207546318226083860007303364731764868059392732291884538405142325051291988112815679504689763824447441951993401822394389139354277186172197553194033960670066115983906505172605158370686457687492394418247646452399737458154506177956298750716934646730778798530489970744574255298169391105167429580969729827184058346313612457279367689224983279959673411830877436851915743666560154868387284217511668150476983466537215264468907495311185691005269498584385533584665852087892677838503567230450629160755296762075364612252165517275651853819493350678210983256350538159835331209516004960220831307039639504582398876893806497924169712925979679299847514200609480393738833100254540407096315801907218831061402263594580759896953197294906658209934676777011081242687383544786545869810838171816376897009213256350977979450434231345049125876141018611394779141632373640584108260522538646624817934866886512383315404428234135214663116898494803923487420940531440624221838689545116907369149712570861280866450599069012267820703999779246135334619028442160847865901305975244981532654190384327813695715474007054209087438734043715555128520656627816380788778114441995381135652404965349306331093908558244615952920634463245825607208285619465163385645827870154197121677252948781371249789346095292190034373344774850045896421754451749978204646624550534799257158580679924998904426222515625084001325901947337727115764760002304045086718365048487949875597703324389561574517831182688202711937519961098637780029229298020513087845319758634555948250646637063001225217342428341085824163825941329772786343443825078713679492632746722143481095341324112407835411027064815334675678659598496167682136374680587378546565374058624310095250732375590300838597459739476299987539575552479560247126548070007799532155251070358392023450747387125519702927321995183299162682359836294907250789000685298278411651131330412332339003735468420100774798232015115436888021128608002708387607947102804258406467055997268286032643455495660844845340456596688767005182242581803772775059276221921782102720347467204496812041661160645075037829360674522871121304459429001940304781628184684953809404111253730603312565998480005599420165251819058949105607894327531604447043604888127470921493833367204373592691452348116875873134279813506212063689797536108716249429377951795162053174630285691072467559159479013526472098502459861786182481512571097711414209151906086608929913399384981131297890835398609679793601577118765364185845265287198816152745831729621439210764581372102033128500146356386222782985773308717372658688846786990225788470356524201261293249713926368014038564245645250942970860508965282691830422315894080399025735682193518249490741847555270724073594798028271639092186989473090169508171683933518014002096379153737543065954002646920584605198386156515980314079754134629596202332618370179071724591310395501207808227431600415372883390769680429964875120269941227322562978423908700279410887445930348017943176379396369097425909382164277449882774505313053496286012323986280686920479939535192549593458017042029534726095779288036043784894775801347886928632691620456849224326347554097990208584290300353961935961191153897287685872692252607496171655558005863349210665504885576948677967796813839513410890375657133117100824006911442069948997095328516840049592853410605408006413861011673594040489228417857324286810282307180598557407967455510285337010915749174878543313113763636389597950786148641204781672554300805176710305377191337761537479918203629250677891746866384895784149903548045098109563546763319995411884386054091210921049013075285494605627796699236859788449954259223743753821878753279739464676879345732519848071336771596956218865140684548441210155115574872162737822787230927063800341924111957245866381891072051206366739444664614674413882241230971939446324566639355255995066020452140349386880248814501188719379463461011826544837834867481182645712278792994791303613053490149355765688010374979604672818248944316216867872122034852965571029923978813425765031467353926764741604950438181010333699253741506731654659739486054628582318894912894661565011516476084586022026941649036257229120041499254824629728590234765582824561339956753865692466372993220074069150182248813205850807044902601637331245637221538969758351670490826094664198732570765617562173000564618355789175062601325924799869162333885908654495863663407408336988654713092145245383758550617783617849468851523410571666738821648621019137583598114928074446825577913267170376889325539190228257906321197658848718460468818737960447273172948891372281673205488021546986321530945852480173215943763264113423616243920404171247385679590661434025047818039846357089604324890295883240600803317157506290676773699014593722284769532308968645592590620625858819006098413084383297827477761504760734923073429381002107149594994501809749118681950531073332466812095162498459724985466368333648004646101266095740503504717464790713397440283547436317976691507092333933817423283487220973970381871623989728026685343459345457803537121882107474206836252657324660870092660008844721676094935063600901239452806785414473735336559942005080527427439652376301560416744073154726883639562967715749666471982224474674795734570092628304536825218837296480033036642271835806283089437741508401490197942097365302463544001398785533906355066758407205613362694177431834323551355174877645850135131151328979750126302276522590438277311216778742882568474348367893251204926328936591649065532571065207844994203785009856640287949751037993511414441214506733168721126755921367556305513651284178746630033704828907001116699860531356173111841287817976501364422113720024235790920840721677076318782067772869711681770331386428137836606340551313345139873959636923540034460498111776176851573658246547575008505789567699975729216811718013685536390341358650546109955866195091640748655225687474007718084006036929142576652490458019296295569883478735533471359542074097409596398373403096133750640102077096777874255010102927533962350311059013761885471948980935816752797134335650944242451476011446801916737517361153281610416783316236909393004133743912335603098419968430454011879097481982584953890094408148721651661794927125041845599965859024667147253239720009006697789913044731756034107250661309279372995625576949677396834988918091578009456711463298810317464070897876718549703878735751126343448629668420681786444314662971903514364734186110043994705064336155649152299024770512028874095989271618729176656815955432910868131817735077808597622289548039051038503532373928087495105130117083235054768579361349632410616135140696666638844824905346329399204349310819716725529427055497285785136839939748483495482403095446335395288954993449939999312837651399353400832237120785993712666286044891857458071411784052327692078655716819289618376707542953461140541717382449256633991553153271098971724239570895010411959976751444426910850690395041981718453479035426398393905987468090745926931660778361335299899978075023530416959768332880210548683268283156860504828958345894571239275004717159263012017701730942656369482584033926890036244225809580904077319939192770227744568348184501574531620194411229597639869223258291308968348932651812558136865373834306381757061788006094395950204517464334050268845284450651442501772526474608698884250402886806218104315130893974543158172018643007615142969744177947090297469891366021649863599868414422828574883679009729473120111332595465944210318696283413062146740703708566054874068784802599830570080802143414319983185216890125652038663641560342558048663569268372329925440153032068587793316523026471021769893137385723310755518565466836752686026117909041126265233115650058402811900084065063164972835237160672058752452202669815269178912957807363621643640103672262266539648050301896773299201019681718364479006164127563492859914770944122115959990645075568365803281368331683720272668293753811598953568275286721151147624295553450658862522275170720499437353423618464707911743115864245240415714822289638948047807717318154088793492301363175158323088501224654089829404834886691492562015806042234020638979308678969270994854609453540346616134994844652502440333414518977101819046618757516066704367101195565602635878959965930737405288898465727039254334714168341216243789988691627827436304744376177101432925213640861788799880728979367788956332726942430064475049678897885198806313309144153616850790240390511779632640386064324194891888773519414335065206868211681704384972885340706638766226814735121672266937808536995536753299848945378248260409252907318863360301140178682099407693382246031957574208467526551031409654005218641156877800959075722654243378082006878850092739614500656297863570243118192325272946411401170084219303082095146922020681893145959261105629285348327817584843093845858326202610049696129658526639493303717201273893846850695638529554762596318856709633343348347748018980098749030117527479270252779433220046331937136178103981288596390308972331819489676384771817646417932512442789689442950824629622252820002528849212059208081167604273332495825533961817115696675894142739087820572694982229053144489008687427873314958665322512017160993400011681841739398766942703731087490425367040050403368566952513637307557242522937609245392250790321639958427000058801110921256802035185973558196802205763265842893127126476829536843472042952136715845897207251629881730285636352103305974088946423392039307569834003118466741977770530012448063264147099984848914148541158588698652408287100625142218902620128404317214281540351690060761929644719582820683578629702937116279917939794930341412102842546217419229744236852427457249502228398092383516394468070935135488034354266975176280883393281439187277872955825403164603015743493625158929449860735170922076843856385157430903122660075359789133421149315826696791152751357156472765331100451862930383773626725398838572765052575900658476972955476140100179716953381888503303366092290392594093975695652708874750203149969960568191024613542000847465367079272405814414091993237849323175833396060980773804699777762562913872799451452811156081911468880093948311606550137582503964840430664517340904795164356143238939054170385449155345647551973138776969904389872186557160954142489956645497533616551390669007340346801187348273871349211266992082106048631096170841564304608845151766594413520103311088666824055887050054579976821745311643567744032127348207844805639286285021139727860507768403713592873786542444427013935976713846398876797600208820770557256683196395276322707713930374071545540599488337251425865513892783573297109132449046076891410304251606857550146476238719941946775394883223747901867226304045709672056208955547063798771804828658243841786861396586528215110303837461376987703157393561141109387912220982882281666604491639880465146047959845313555200409019536392295970948313925173834555193281656689248334398514077212531479802567878551632060402298927399878634046332330993790547787896224451267162282111578629462444615255915455528392783783863707274630933618094165670295978918618096721316880956067394442300925960742305577519273059605613694067534082490507528105631983420013702461578012941194249088846001108315000648661638874046702682313632514429250286882236495891666816708595628581496558217074246102832497124708621684509831011641660291702252048956135489221474679432206937707275250662761333147385487964358226232419035716258999776572712235150169147981783167934529888963052097501728127947861212625454143284271512172330438086699746673944259453978152917561927780589176049838106342939064552627905773423588276484286235386634103549636968690762334361420729550960525865001753154856034095849363189099689575182955995570873367707221579878583839816918771826970874139009753712694505269251391078874561433804736253732113157320511323198727182759277997626895505874209715555751061724864841329931321280818228555317707885742449410934107013292592696983836785512371658018134996477905717658885586655840715179421352315535538868778347170111973190068359120652077766345661646205670334353676912957727027169340066559130978660867769481205361568069700586227618903603514065598649961491344961615317493923671540658020347151543163380450209096153774338061827783505433349269937068386276228482659064488592548107717065312131303225588132990063083365195263236940829704014070059630848721732469403958763721670263385643809612063546837025099964999360641550460693574352148833608734859498310252721604274328771062151271444408550068940368992565952970112040070819414218654381338358352752623813464118051583040580304405859452894411562235784164720102331929651436732851448873076792009456949687501675652004146030544300855812351724619196326991655568154685039312000266385063772829872187896620959017395667295099579916828706260959153845883387367191495767331245886912965055191155373156404923848948299995128651283072622822389865652713009819480222888806750603875802656753752212378781228004527792537616214938306664001724926061066711011344058178121347102719656897468409165535468888909528702211964366050284348737375248838572489289718890080841979676085196245320833550217999893750823353953730284264205031078538674719825597266853927450281482705224410146198965758500032446649650739507799323509360269802167347396028185049985849990355142763748898953932204258404438265493240955825782612241756716559732813260656937197154848801555932092620287846746179367479832779036747939026817990400722539730614730335838339908459904854974974234000399093082257926665734393813421639654842109735554917487215880423408162969230714519054888975116094538698623059649729914629445216928684030231578726760013200267265502822731322525047724911772931882644936378996648937433059125485839722421965441217064511158666457408732136696420811265270736317980984209923429511295131181136847011954292866995534379819181689410178517490602941228774324937639404594720047673832293670596015053647689025955615041134003237822855163050004190194332695375126412104067005024440685424237209602705907059612103823506631675358483777824395751587303070206761626958671521927481469216063136392256520912624913025962109241804931960131699141096265053437670085029784649673246687611933081730774739968373243515293986826393474898550117916377956667623233357662695672887418439344678079320817754813966272018061079249909273441213928123283321791949205985363404915383650642868094985369555573320759267393933992064754424685961168127253355429400123309363852977612117021473648074933939684113646173316323008410465364245854225180298160419917726829932105676875198714393807496911626322711884263861525495063439717458552458609593740157733747059433797829330321943041325821137912731401130143600007405588804818568582789107233770919591399191955535139775239261773841530163298523876962480897285468068159096359547163242086599928901152247290325682496273256487721006749742743885998534141682378524650818952861877485767376015159861060147989709170352717844562338971963236705957791404713224223388835015734117104746190407924332801970671061712994626648411037240151243578424583556766967438836867862820157058171177030697040585148924906282598830937451390918411446177312493806967611108469486439986489431113472920006491960736607423078277886588015504874245598325384974806735493196486109156709072972614458502730809409650953938002839651489443820494191278220443748285641854997186902854045720005142100780995775860345873701623546568688130143428139637782404934078771396852309185879867032771547278835817600454145095066066465267380857055068857494805630132695895596135942330456133838771008146363644881322428333304635689820057200266391726905671273633481598552890043891536103158044055469499278309006412486134599144297591776071643922741104510253960642804177935210186528916958256948994664183270984503193602046147153985736210923001019881009320243480884376756827001689654905348261345227636191247549067455925773947733817964877166100441052481078797141418007711150835921125832556477882327710751620044622883195303866230436903411787265231767517605990266564562052876531213782636307283924726541680977615693484319955270141025996019894425908718667874992886502014784951663966158583732363508185372233225492011064022488576688496441830085869442249682109248009877558386828103978638418379736592437877280519929177067688992759188654538676741511414341681895478267812678789091796911573340457450159780366512395642792246433707092606646805660057757481761721521803776592190783118056661168922340294920189143418231193718155542769002705088466141965364178550336375702712532832723649744122677830495831421298491372736887840319373613370768747153915383175467105972535576584165205725313342413220188163746456366596390543526904892016157176511832204542756494252745001968326449522921349184951751327346953365483493218486993720084238169422332006683208585200751730913549711964595941981485190910823097258402225157280910519863576376506854959000172159484459759189059611513726088899977902852234906304722918204840257733078899515442137646559053625825001044513600187518252828230592650826930152341218201506521665452886284071316206467335552231681018353629614196994425837379367675276089483668612847007775402210932510598577543488604415365903084495518842807335846862875367515922558453948489545529952237992650172440407196239640673820111491267679539734159725215444519105487122270799139033683051109345066938217774256998391149357029623875295341065577302640302008770886082142318866779360786154376410652617192174083698020350884339953739898661466750235666796509929578052480472287437898726853600305141465382202954916736259246248672057799659722569482585685804222458771037272521814183847211516710532588465619986837109808174364516268653917084144644646998760651689711492406970112492032678609170398133565513799283468263740004362028709445683668704221721314893834799934122497910491973999356492147350766356539271519986998075365409697508914562370746335401400196616017192555987739995629258776358302652018707894332099062352720143941264082840457126700732344291006277259199539521591444251047087719646315715498047979706491319879885790949845907117695990273164910660662594387635791318927846197610871770950089000508073701341693368105486908285576120264763587945782769428413796013279044947071445942194183731309193319829253043455171440245689670016374844287391990118163983238750717201957753648987330664948764887645191811439741418635506930542365170629571071790205617052224928919333514225959317484540260186202711882356131346318005923072526869841667163920397556547924125854402485368919399926299694465523165849194131065404138790259302126267804547444064654997793065970255970833622391850018863951522012885076815443763309890983067479223335143037066877184544384719977826942597291265294280808612131440905725575353942462080211394593710020939172543856537917015296497628773441163553918958549425033744803188677649986223311714786107121492848322833053595512854076900927683200920032010491103945111904775001274254082649855057994989068983886190523082387315794662624025796433787313630474383157193864958830612894429269645080062807372414011070416875629650968662510168987766738310976893322228288266535802027843893688490460234585632186327584500653405202208589265244793914875023255165427483050601435033574000249584214106937422686537979666523199352245412935728243314728428995989300756087176428249912353484722732933134823294958174161666378862555410510425853439873009749992422950344073970670294065481984546134609259659368289605430923214606836084433246251588479403317507339182682468229771684502124264119188840160477646871902261756599417079476579975686828401014279552318579436535293205453459815188564217459624033880834124363693981633658993593656196839940820176130020552272670040921044255340412704077693917368593584873470073937251316225717167012847250822848816860947269876637579871470025550832977543579023437553015092046028697958265420821910914986912830744455906824081755706179984025230567743190844716516050797762260810321926728765118081605412108170547951137821596911779699129167589480755987218288785702896308196051277672844286394874943241834934657537464901443823291302510661532800275116606392003235576316428133649045555621098502888924686032087657935876552570896076278876840854803442978911742344517694055079472195811273204671672698212768861536704670770547553777571332414062032566597181447270829339168624484889545418057419903366497053798039001109517719859308557577783394297033290506701342015528111308407183758000620650958789487682219122762969531046698728535747880738201763644749266028697866938434646816884349928690132676920710906916696210958257512917511708205694743251559529692720655373784270581852897924763017185910692627235211673406228081163367697772849175901181683245625424631906428829108669603365694696491847297519153853603843633931104190527730538029486593703271953481353344283354334068910067100886250742797429163979944181033785813600037478078226447062522477149348378558641038203142392320788606870037258762197512662296328524242602535875586372670109536522258818920872258753403665354476768199272917160553503606573542852471338917769932906756995878247256439890174484649984694555175580877284779962192476689853389686629335545769507490766583328781090172336064809003759821505198754603836185789935706092228822268533820596716258489699066129032625478122257221715437809976218170289075628483429470013335449923792333075202533600840778114800638945840947086448374937874607237398318398699374201402478742850573173466299734516505379493678595693864361605443276939512887317554464074896334470476790994575175400337222381292350768339627675816138643825421816211717793513562588486118202809028643899472287080450404458785701122688334372977269687592644005847126412898911613704165774452280962895245874337619525615444849080714283375189593334921817378252618597554055629996226287800927741716246942895451742107478128669481871893547016989986579966462445100958196968428867596914016180308190296978132352874139506786470597069089109493667978475192464237411052538877622034469186500709409678869951965409987261648035402589131820773212222828907627499374605090641174018010752957621302064462795813944973291813145295716431106304932537615740922025242780786422196589108033589962900882571549028659132518784221135916726273594479721321632765065856428036055249391118821749384974513518234275117473041384952561589239082125998251514946534582725086448479784483075747100789117010352840134497304796024793142185441924492282711602064714693707655424354311490954064012763229807016875823994780089345544984797271571219496484236076542135830233329621060970085582809173423622302832382443645512255538088673337060281884472387852910266727810049986652723832925418067296473925979117538693661754322543200168957097852400234634153285734907191215077631750870964052609171942068718100513596044010804993180907578293492084509399042137404110104128554059332197371770437098901580480373906920681275804809112986651076044227887567549516459099811662486184623385583413705010638959273519670988477797197822887817179681831596035546903156110652068620574704247061653323115577027003827083179455965144843946618012507681660988220165735504929450887979941818414966716075160859217273916020807765285098237421970742653628392211468690799831676791017123710160977567448143572215823865963357567172141130645973358042744592309358025574444839593795983735273880105737125302551529395493305897511349499401756558525677251645185898943964110705995809570086431418494742907331709299816213603390264037880367143598064203859318865623672984702622465462966248379144149866999878652192303782403984387598337859223543815784979952430205209959732750884330873472316117439778069317343011613771002522054535948901920944054571020449426080079153618487447637230297045802201288719306951258408515226685967843834519220425046020469844907738189977809072628696666170773200205213435822004357744764517505097914981348134922786213656766746840622954662292108128482806535849960888376500327388121358699369062613529204359357062085862241099060139338900181666277638504405192852444983962420978771663173664489254209282328605275569029024491059829845657687021896593326660809508757916997662912154512628432485918308327486816833238098160918071910318117569065122162336371434013275401123274249109957848498092627045715078028952090183281940726297603443209304160950806682923153743105801485885668116316368325344129192096633415684081140583017387462256864162808460939071387016722345086246230362745060474736742399929771716450177630150395019516703246378171675543298163544492670521596851389646174209341728834747806566933631522327391196343315569300597778409632266673256139237613152493964038413087022371826292259000949539929678301261696031556945208396556055388572152452085094621856820402569729969173357741656943930833745551853382171070413452582486989091975323435463753686109680370254456312732186273651305894411300366946726142303665652018070856330855643111632304121176900026583763175311061694215515550581983665552850196476604998852005450386597498510276068479388536532722669964468616399588803117349823583432540620647557195090649874322218127140227141914321164555656573282019769408144385777691830564833674039758128286063357085099338427312616359950049033144119881515767227701188982642129275349129506564013260154634350304542670675579947993196959726058100864629359236092634997491194207188771826031316134867713769582729209682511360078327490881485391291130306237298520989523541700359244380779257987064914044516063226913205449192056673749364902955773161945705603859050616780533969329266391507097830384481730140219077131296019222778541795138919299716835082601553451401770567808314756626210161064426212944246248299283039368533706760139853528705622740043119591414667162168799641021738231533322991138160753884228169251345778354037415249104088181666661794161779545862475481191197546662430512398825811123754705563621197429801702612540657930322001604166831979653950191911263545272085093252981954400075933497675655495378542826375211325474990996658643223793866134643447715339353500076775442373488305576610777754171531819064330321853944798249112756039085012356049610822682622031108544057762258948564179043612806967514677739210771806866636969905630026535441515945358977264706398079384707054506325516080325581587838863015922378666669978662443402655749447041421305346327730683307827099372241006380019680473132492342896537692863931064971445780977478807781995433259881943088686451992651596458232543321198707434906236010802642042961092600051864483787388438798648091576951324406824817113574825910873425535961224032303123063579971918044056613255053805210005530817312512462535501885096098354752438896541707857935554695118113907830334398850147452533347268531081635687344115794052969933920527658161938347849697712422261800599365120029528216222147123002479749758746542100670896043162428275013306739535144765568098378456432320980814627274701339327456252504574832481872806767700918365714132353470767998511875953603280472593831070293859230734325498379556609894419224014098471020767433313157991168715306090089077821273322974141062668935552370050045911147106280542932956120472479327007734092995053556247450550710965260988369680389482293533744788912122650679382831877017816506842839942723213376414127831302765262747834116964981407218487566216941850796638703416370605412303756245719326616581951653667707941290312125812741484974120881841643702442664864613717908826137799367762228170583990797894766417789005426750090656846265230981354778024850049199529523726119472541720645453146230793386649328477709479817546007649366987725688134439745408176536269350673727117319893567101243964223586057583631672959620474247648281704545222323088008748557121625418499498469093639287943721036610754342357517522822028140099389859379896227741821634614786459327584494107956181182007780652875000742046049770827042413364943569463399574537492838842337624398510862413026508018310243492652063345815473800700887552983309546710630031138086925666945652825850200355792610671991097791445691164617346834330044234891526874394848286606255235518885276202374687970845180890152064921769612441300187099796181603406904197038950496319449729014275869999026291543135688896589754127215183635754710156508490932368605620099484619794446318639688788428269216596806111495895476774994807414452874712151331160108377205641476251583538580372890443982273629344631260352693780096870872161858508547906126544758438017896140190884543790470880721260712111658134326001141363037590308606726477893567354564455596008430497324085167316587770730198575721981204937369614927178251481050164503397058528309559872505431068229791617101179477553165688858350595342862723126863035893120192926348599094190339974142385375030542424627695603469965804207369129895859353835142225288525513917097709988923127165453272231121349071246049778810388898528360467177470786456088502468167802138540198025422866804593778740529381832798250726853283965372002038074075944116272521613706240187219023879627173458138949036920022042319764531065859156052442046946570884638183327384865640388360255678439497719371688644759312619097755661126891529168289827226128518915808059185616577671425794635715881008213003062936185239721082262889918353077742106041638599505858554373217869428497690150428865464299086261221205329022797742626011767316912177661532780570561553542382714183550819310816627964626368450625305996408051183597647849365566852200460852505304886218639661260815682705202610219582523874927307627784155468148895718495579362432517806391959102838481061409105228229314122896314667090782302623668917001906717872743236434731003218586659353791986081077691463002979781540891100930472721462083440294910156327116186964213722048125780445011353538478940795195680101892072813234919782389550289428564972475753482612053231515491573714555576090717968009109152878631686143020132296366130377949858048458970713294585639775209493544894838125602151605940337006494208578541574120331340710120520287411028280459486066017263524480704313757808489929135482465178641110545932634770075949870798100037724724283009636194138360116206229960068444266889762445678794377989018763419177403763950128947778186105172663932734765593066992736115634064179055913791432509367078388310651147262348452073207907462011946134863730604337842158078826886299996466982737536207267891717369488820730627828091456540661619264494012411841159628143293495713347062275425038219912200697670549770680798939802857289404325270331748439543689164328437253418216559007466814464264246263694974274628878526935405135563762537651194378558491123882347264561750475975560829672380588523701465847172109796429058029457624536285217260105376993956463927268100341072976382521789411721211003848083156624645245505113447345351990076095277173803235445803320260955657072162143310690195917203356782427246652725207930887199092906867926467236745788968297375430818792524010923045410439602495742891353691696943861717670874625882078427250788712796345459014452754622861950061798987938745435553146242063172606545496396111073122744752919917886305156827014243009714821939264790850493133193069698196725609461012910597827962382358276694111970157809336841479593806668277776683684626536101757124815329132677058018623395845129330483830800481027671849258067347575185106401605959484381443143266982543065252913335946512204381187233941623002700820694588514792845917138119725484481269462206157589964081397341465211778159621749217922096864471416043458641341202662751834841207979138144640790590979418949739623661085543104882380117576695049771796322144964928652764988296843615936186999047526407897925057870904100327525514647290138207242866635679756597522187768025194299866489252223077767817062981695013158342976351125820296841177885557198162405743446407389563515087339164620689080975250831029810836118228196286338339843203962093227485323800857565764357844928497987907127180625144679107353647300610683718992523057604081873765918654820990464119674479471993833591325433340736244924488607713805328084862344552281528161043797257014562860754539681359414097647205554545285169893318986960581178483188571833826749389835955904974627486795530593669468268798245187470207870240899848550501822155696702605349735100691178180807631659744775101619048697097284205931086255870533945406421007720335367311811540970050085851341488653807703832494205835245372001665994190878947601411789788465164272896089894632781555055460228310429637613267480024228409670053458595221263392503531486586811284680443454030310579655648334443414761486824636045830181076748795779116487796728605980227255034367915171790034574284829685050601972081150206074519169900881596343942547704864235986252214152759510116305162207225412917465322581345093358643005203456269435935715843730824915185167271246634051529436108210613802747427071864036969984030169902481850343756829085012160256059419041812689247534603086507499090700874565678039006649781764519495509676276166792193009612120377981213310137226162809963070297566101491830564823357743227014727588913662032984994990278895065835066703624774333496043746645482985298223819852469619128117533391297223842218130194639877398784756180231646073354251072392237253225723375727679993738084486586384804347791021528571963785005569516689983903828736695469771915574100154831955502915186852612009049310863136015703159225950440861687237889604531480532880534924278432071997087480690569771639341886150986258393010556763872224500328806003331970023425267273425682596476569364196011354942704380464560793066628689570902296033249865866636514824603880205189982310714268396107204787574839857159957728680979344736547811830287339209750434713313724926911515670109613832847060876204256482794889448860538235430872813032675177715319380253835096504784268733766275559364952189580230828864109417953051384359019829279144409968452657684479475948991663554491841748260015627712442280718867962041987199645380085230138538085953865600300101608070616323215039436127113743636387529878186347745993610572144021803037152310798570303799753190174697346883346364137951974807643674859299848918385025728866465460088047317027371747889615281527494510334028848083533133664169061199598698490154874212853377365211030042465344608372893338180282866629974242847728379193262566296332321271507525383241372767093958403113641312791546722464542206519961824751513230970843817645597970950894029377786067383733138114453044703851603191738810762342437616966694190462246363091084533490279265769917922670520752600142088766634260857324409207496883153521210707625141395700949081221881850488513342486987609223403557542201469944186755217792201001847963904332564694444680134377089134727725070819759525869993684526219504812263697217449576332101679285085450683001652580881433906162953860091059243965774291354179945156329883384245882616049794469401314694205778120363317048589823445608912166070381622012546360952439573299929607198049821696248257780950502004858427604558467652530718338444593803145593683834065036031588088265035634223451120147702672095711013753146350777308980228511627702008990472355663513542804559186372878921855050901966468903073816413097793440612501632350742392348541181781959555724651290560062212635036387783341865730303586620163151293167510325876254928847233513696987209090960425814762686350658285467098548288288504700564740283577614622757962253895281347149546102656702326337194364440425242010257238919319816535789341078041121558225535291422107633822573147901223507315391610498568350259042630069841095092723320653958578274854372510590805642415641110887149605398592908594480193605444130303196659200935812318469351857878681310699255489937609210871273802885248734415016242407893925268777184585316115569015083442756850844770938255148947983974608863582940392751092694490709758530257245609069618506843680935173176669772895800885342851906342774622134621991202971751455258738448929733886231578746734064334973115570552495772455452660361400938173050792229013444195033754665744972460638749335896344169790996812843122434979591919694791193173092825955327209865062194878599710782823483061703505229716346905051367383611041057457906924778521882568942183422415269249803415655754436002872400752532293544390552166015579570042520990595907966002558244982052892514307832015140619333204293770604933085419774216956471951658051840906613208206667026444972492956392051787734905496675011005054468532749107603951940099148052657149517605192936757907076786184291720301144613606984816710944765553115896675743310838093050191438337698959227257245698370462052350384718232609780998757730545662641557266181285840961741695369977931706257906708586303755933996781667700968632945277417709356857678626998433672123656095277025811903564434658297488409674378175753830199039753626293799163455594219958480533916858675737492890492583850467652507797386221537162278768475535798992543938317208064531915239489500124059947972894911481515911248039337147959896306193503016803784472482188478050574995203989356909065798444496021719030759093798350707941980432815923812230679567857125449758789126556257803433955779167589031240898902734323965088517134523686198950267398281878635146992746251054207953274267312067718082234724011206085950035389064752230757177091286568764723565923015699503148596436998817757463842676750270356925374360699445100012324625630511279034926241415148519776146611767623715903586946024508155622153053032250752490497791533375210160113664348317470993780438923142358016445057943205728122990684536878382513681576240815711366228009283721873214235408332025798226540644449673915659191470424283519821240101909201541761609715381925084054495463883135738516917760419413139670074397354272861840781718516572333668195665239106067880788533693602872213420083015242805735440389670908604531664690608725562079913593283206970615492356789421328779388712219436965878403832118986706586105087868542635868495357118195653531847820291823197611793989065274563711910279689482212019871109646251863348123642324086905056485929749053208416836085191991434021150019979144804000828317022162858665784304367848022590512135851996079306933492358112055099809923149081908540030616463413119020311236760931547829373121221890193268096193940574754565712978301474768949825279739748983078283861820731175046818789158314940611480533658288511194199129437918055384628364150772225452092402681491686470465291651482145509244268477427517267735281648660204379136044105683637640990392033877647762988527458762396586731369808698695512739178154000547212657182625337507373742583341526116331793903171210990112383899924310181878615337396934677062376570097994693721647238719272209645362931483729708048564265885518141403153488512936985389339998250563699052979550565963691915818469615278737882757779294857918590433780087683543835346300949950662115072872297320761510513662954493548469573352354639477512235141692930600535913825561051823414198374486322044954238908877265006130723985755465564006249237828854150072086140119857136494515747380608209896287477338162244107231055077320319319805668253188180430020184748337322556862512970304892161240943908621597434621856490494884636463558512063909051450128123578219736945200219574196124356521167390269991968130927775252381182570443068974620994602031250587858116848769136589997591514360846458329552417602039722366886114150403875729918944853708920980551473287720710485663692516411174616222571699499613232433822028384980774757598507972743132788940088160840239870630532227741360326176769959152568199185501446792920998608372437432203331344512859504829752249709252846649546131097785154321591827615341434524832156557456529583554397224610670692194457149269034154856626548169704834698443729441669626286782328334736508836847264721015102095815254358155912498736681067368223902028987422967146279410633036612240253337469356991204512606581103414701654690867209530259283350639015880033523975873730387462495857474766205890199353588431079038072670613757511650953327338968076404629720819859104713242289674820048484682316751726925964093782501165786217044142719207402581770144679067198305891938975299828519614653835443910042585756135224992879866990069162015198750183994770301067597264183533029516565564591607705288952308082183584792507765997642192301483920335035846408849854150605474807631102895996476654696527782062013677298228415331454379743635185912885424993489900962874254079148483390206608467675157387413687068972973386563091512489612936219427294595053714574772018998524215254448564685739698017471776874226590016329914414548696003164825450874456051481218396247173506060475547062014187701667543214021214033747139597774220308440040100060373184270999134689565722662163754340494091435955185909202177447778698436008155563825273986407623511071502419439504869400378855441191285578215647758693387148803155484469337431916819310162631158407241291563432595480027747990939013284850971665943798701002656494447884498788051434737745138311717197892215625842821350373173311653783453301173748985024457784070938277358770862313639631145804886067595089363620752747341540746092884553304187954998004851094980764801263917072128729155997664307051967460416935513101544733885234677594074062576089981866505326752864735628332186249167667873422607219168276349037972203364166289713281998725108000600367726305050162762702704233307960375020889193660419752982676790943842246903839205510551181230680203088053186608661624910170246702505181165400820586629153393468254236303207876271802942403115276817474621321991916590501405259519491707034712926243886910189564391027484970939729817269049939985602568905667333457257089214519163431586764928884852724476124511693673124035988731295684727714940543628838824931472215063623891219926539873660956151563494772048849146120418899924670633749165077358272063481108223980110083176966154344035904336586102697869843557411731538275855970487407400594378206711592114664764169805702146168047862787477491839236395984523970493612901900990642545771987637898975635504028654842126612670512411457566958977499689549002395847777162177650970753579230755964924458862479477537120524728715815749972816346305843202107494177638707752264494790097619716546790982505629554378990305554230841032552609485682353556966891899352044553910194672479797078762303749380493274243194913145526451482311618658235728874049299853927386044709396687852408558069109723758599080099496136310145997504039627863502188962743938151221891976144114020031983655587418629444319463159708625724760679363991695511547870112062008559603537546340293276299992298430034303321497990722815958098391639980076999933418610476522256032997185308745685658018408042883293664964440700106729778505908899064358697950307072488423393625444026088973731577622324739450360663599620818380567612656416710030175033289255300529329678154986041891062725023512173313172490689751972948367323155207275912004137793416841455453465283945379682320808080555657834689217122452017233009297500348876152251790636377672498985340380239973483383555525134784431243406800558279049172214142783347475977578284676645571790858956622648733472994776914083618412156337492489546024343735355123788939502197609427882406564525086539546284395583638657300672185866240882867399530948374918240179955692965429766513739943265403893926215663692973896632180640320833286780209098503011165890517819687812187922073125436531715351679094351385751761506303034319300966010587478414072506639618656512167270947720395263091614824698775599129732077768920317038643240496380961645988643769418874515466849568498317374924864474574560535437690207532499985568653035005392023212944050489270613381439628719714637965903361332590442490860127539580477727495211738461376521193680241669188126173646996182844054721308913525188660299202861360891563380581119074906157853815693107550821383070926358827945202178119672253263019499896055179047387679969402367954401042403217291826076370583560072998633469696533565113052504214478334277457755894998218271914673572633633878217077514756541593303225635028506657832319124029258765866939131970342812401473798570643157705657195418619581418131330688619140582551215183120059340414654583658023592021941923205778633038051999270049806336218253357179674394159709888503927969396254694807579223728746800819784856362168806924121930421544691547239965058655838475758423135912384408069970860438562121470132422174041013787167240146425061552235896161840077230151552701308660725100174108842574378719208591035355933822403376343735282385824831416947020895603027428741187983329321501992101312568823393553480451360636949980630235018168691414747409462104754568596990195504357029442606753646990555349739450783001245567059336381037842725537313846501714751879144816539719212188441675769778492323804194928068074886951515393313100528243920763807969127095787768578431833650605283595565270587845311269613101699294731788589064479067851243251412619741290297241106713628360261078063007160516795320998542834761154679687485250419896874549899567677669158124800176278764089232834001704912073517658476191997992131961928540004957446642474317875655987636133029341727854020909492319552065029586257784545349046138923963279392607162975206342716224538839371113125271063050205626145480007254770280357089895642128505281570560930505517942677561614743931353204499247259682271267917628662955819420855723935102107330322750856829098395875542224287548341655372583060405581502087480007285017361712110111031387844881291300136589665359117576830969303088731629885199753937926548445146908543920959879204392661034512440874139979555474374637242184441102909574910263814913511431638264144429651512225335514282142982102736195950632264008599205395887805562771678086210010787691547336691303234027886829621898510202718148973023099880338988039027869997562622817175087142389372355954866651077498429560221102196884761848856941758692026042145152284878180933699078310826497842281481569917221913285265313229116111276878832966278340687826219238232380689040230571543859244184591949409444931868179012325240531318814129205430082419661958976444991415939871749830020010370944024196624994521718050942402851588095423910872652861974033066917314654986184665871661700729956122658101584998933694300390703792000014898307212469451440021822304105237940008031386677539303015133516053229257825472253803149604226145317696208370417697741996759373996973386014052650956386362043491469825593387802184377369220193682805488605028507226620515203192572492014432724585251892637049576207363848274589714869014305206429252139094527031482859179577846221219332684311235974133717227174298902277791624245882746118966026226592610488062727539655058026517538219113504198339710317703497267535082568719103402664853319426545103048345804157458218466060340076130052748079369104516058282951960524544611384008026998318430688589090827122460036116470932614121412746008650232068345044648328549308581676458289900163880539026230479480865229075659167668991294256484534509061152210119427633501492195829950137359507866573885648241893365303481997821340013707144029499718621351595302715764381293885227921792445873193528653119013797033346984465559402661997714746346514450132108868692582279834435952968380865445325801587697716207682119710675254235463578162847377864959358795441227351751925648052443446725197868090200875765662983621374116248404248200166190548757368641024167388025908376932079515845356775586815875288570568334580102007243914196942528132374974956779295320219219160405410888363902293292044253035952086230304210198474954806754875842091694338048820250543887078167397876057359297408267093358986681560431649088427488222624930500276901143750304230400867644349796550094443491646862797812782832682448988647930458039120469162730385432582026164801162946810343884902273380195942174554199584388375536391030324234624004817897035058320788856956069853467145375943128677346626372855629633328368336279089717798607578533310284174266858692203019205324598248573570224002645741904051680607433060097825497314809927333493966013958951192676944590230355940789014523744700187835930695425953243304041975748725239638861024447728000556409225873174831646874247955483281661515750162955859143494195587149260101007609485448555480844943044985842101595851496708841483583991652714834732735252340434391672435542874153348200423387716429261366549116730636694331689113536882545818644730700017319862461366743353213929519172488186169650941553397935984123171991871741389863566297700364382089209056447599170936632551900959797046387137727573715499068792915380793870306110762268113870538365551627363250617807542536615770612155397514967319961950524315105465628942015591996128717012156616732404420372729760905517003240421748873293304636739900708386760900835197726275857943282393736663404260735474947292122978230655906329731310258874724748380477180799608133733222907775394542721479341953282344715539880298356892368461497702555248742079813366309714687386100698560352369214399524137815999741709314069644513994362433653023408354851363182538633016776672149792818876248804666651003860376759964233869757992860105024352631872841995102313325024558835280665163304618906704646222579379149024014504688640606662111582850632539755883492457923441584789551670151225833547247812258631550875127900542300330181474376804553946515027193629867546026220421972815987326637219339702444692537756687311350640003730252766995962961289862585237390302785451177723360050069549649265933832300286275554691694500858632953367247635886985089289914764997117840734870852850841837414551800636753013594662499739310381735337772053447892688829622784373598213989398797352124279091826511685697169156075142151108127805054114779720543738447507255792656050105780934556436640162432698636353304651916701982973650566658118480655349312289668361507813033151562481982667222708920061511684269235406797519412841659823019765654407661006272310189525613140992707328142511796986559912487300218558866051024898778592988796473453254376025829053031843902818058126234608831395669806055970657411743434784578250878499308951432683059597665348396083117546674028580878315991693194341380611536144928717616397577983716070249975814242180170310921475944987960650878732732639721207932478481849664413279714430428755293209923248063821680443452931481267434515376387268874479525558373694664917992836006456729424926458054886409303448229156649113812979868349864023744110139379254258440155174513743184021291168379592468839752105782114730953528577637488387917012521488381446171103793630104119930117881011846094988791961333002741452930878886979873958582837098608829656462223798009979889498507796439288156343674406026860499470223204287172079416863320913445572975868547904822035194743116876100316978856488912051204358687640319710687057905043222664817543921488134690936033221292467601255658606721898754780698168294977976978866166445934946352865304943932390898785204233399624716463641508782664239397302909077283967706792640913397175488969291333659725231063959600782569836555651735087057424430542502122468965179097523302723836942583708773863326186481160308368531078224231524108060987451759892188382403643783294265870080666517246791326658971503588848871650085764005458070547398368167539324277557900046300747367729279747486259135770122107620351560439683248198567183577571855308481595075942843564108819270359731797579446516794947552237105459359850654992131435362347117901410248258029769763359411457971277537015544517956916041411176654572643529119800876637638881743246892688824638519888911615439089651448628485196298780266359160176378575469023581173448642612207743526966507800666903839058783771220282875580701389813755479960277575897634421507288497955648840824301202157117203704340951661215924227025714287734607316166438917103375264470330069603743000057712349026116150152780205718107261900334397124662735478532334714458847045837734060065852803523026638299583385581349647153097405989321285035384096283206179946143479969925575192537412818078525700606700653709831843472771495106385386973891137139516319512490847178230889749572440705040840921637651576724650186315979144018682507845992056270070232616889534338867425216924392605406904335590058322656757411172901166830507650906232471562817258941015031283196120015899064612963725412907515694148158967159793780669786131971314033875569774093177585598237743357051643648552342799700354983396815943873619085427928996222017678947227268624633529010167198448860230188400458528728363209603287442622914501630719293061762078845931148336499909252733428214479957061581227163085500674989510208836158115804340551812633872019836061128613544713957187520101482915441724093948816327192484633016419391421188053123703786165186286113509523521026036091869126518994509422512944441190607812938248450551249298877021940169313655772135005628042322771653078820179720527307119089482450300031109399097438605015024537603721985933620019475019516292222804672638956383491139497901588215742035708888929108607539686678100696041270778009741124656950886461381979944183561264379964364681091199505580228554025090883179909433436883583288488866464002206558622279218754222990402939240067393985945156611324050604178414408114872264286949970844586328370458511371670010850332043823281020794098425013965088190100345110041886946104145543831775543177687994066587692177397359343303200253881664384813050909662110963170925756638586954130432854644034455487955314065183343100398313070999329218188691354277394799687574023574536093131559072808496871236926756032405492491323592856226182340644428090670763763067794023330574910318031703814188141926858450590691459252053843933645319918293107326815789247141153441509728636703931147904925411406775987596820347559276012083720540252004781914705402547386223540015629658261971941044099401886499969474959039398766539392334268614210750863463257707266298084520972477657603204325476369978773529059661647529621143120012496457402047322219022502124825710464641812725939467537156337849999575994456861006431237697987774355949758817976333181404613910375324419278272044001633977039926147532267819630436626618691413588150885113933438316016379031270433728413277291043005190684444460489477228673457020391943757881447499261252414989881087075363698041400663873343695629896853827968405552457393803165646000722853733619894926132875432381087181898582667496055427442658870759480816666958748969774445080045760373172266781232224332166111171760932448527237011105242688010041554047614731123366051376332957588852773422600619759590976197923875599421550020243707618210647450725507871376142849970839050561614080221492289115805685679510688145640410131723045724328726412299494646408237065067425058594363750741653234672823860647785579054302136045661153035450060522420154699805521054676571090169569059644541645190424401777383821450525047707420513252455770447568017001971620228512866853246215940693199171623287275345885047641730490884810379116519362361604570947851247629636957221356995416336872336889023571652176137190706228394251521283379655122833151536137893881497858483718766766025823409067868414571136569554358754865900773355833891859612312184503282810601569088031366350433005058993723661749195227043542174644714214381578225252837545788173634807371297661744638941649153953470343871778306250545238260099890124399196332795662433986844623262999417411293654980754261734712123820860130354082578274900536956464484936972441966220050558513869715745173575151670481646562189743690088193763915522814600684471486338965507094862598743222890583350491515284861264967749465822229722252884646897697480998508646358775211713453899263874005225270277163503671790843620078550350562280718906811877005672235096310560095301469697987955246703034141086904375192966922669000658355276790732503907502279847096498043281772307573183670194667602670589107633418670842255194090824929576627763746279195384176883548733951700022999768178041285975845455070472489923265058290661083743328623138645777535551703766698634976580235891791255400579808907248009140805092939882667917127581794684319750006750052494290612517848150966045860201615646780439857023108169194034326720935693383010810122794248784869143950901251635867562663381162045749127170341768368419361163789058741029396412465140726217158074972652605662081876934586358186196795608290629767937923863760144226931796549700273797349259280321272304024587686779606386396168075776259255512221941195871200499343101439681905463858807865383073358662969260158629248217459896147160100426495189468832057799998494369335092304745974129485950098795275893551292565892774067780765839864821730593639789000103482220912847449609196620426807884420038171395454407050194283015269514594379500001201744009916664771969230900762354887781660508071608162618406709650198753203758903526705352409918476669478940423887628764441438168211474249204069343969084754858632539559113813700487193481562911986657515926937171224531896928311959560770202725108174632617240126716500831608660877551212275912136582622986919867351250771277286156583987250209655201474605510273902807157945985424435351767547741023613617430831236487599441185403211159701393580992572290310494977349207751750092464528305384019100221317357398146071377251043591797226018708196728439038227884937325876235997535787597902873158298169347274604184631855734304646210126971210527327839481226072131133433159788557479241932154796009769899820990999888073162921983772386949543772286689516786878615967946010052346670589661343247334336238851337147629780302945440090850933363076860764320030914187443066099849240896445304263797157326495527312861583984793995552893989180543581575108603181618027285309441099477682634359080528690644523241102053207079932087934852866689197079642261795482566710605287103699999203528902795876929456689186213203998692192736862285831055169849262524245034249321291992280908494917939646138295018894667705103804489209535742367714118824722507267874513956086048191569897504638615590567687817559594930651681881097373459096907504190960743938111948023021137294737108853055040436956713186022513548564785029210491656156690711366526675460259755625445717495768614151440743283113617430732996965393524328313084083286970693170826511729154843745293903726411882901983157690186346624617848946699134749463800721175828669764485748808414916473933071820531443622642627956388981138187597492383741414975704409593491690419288404303618491098040732563938100795871601054083479311815034882964111938540143340552116118032489404931136811969123756080170204610683943444100548493890634157353814685130128731475579148868310705705275000735322175635567673664027984037511659141881487835766853757323886360022020080357062572954231201774811556962957134345943072444865866304538145301277165025075778551822651432664208258063524669205960090372335762048141769132087559985472209327441960072236848041537153265720927129836685446045259860781024243163595734553319190686882322025670426302531675126484951136539301595183213062237012515907074864059633241154684316091833788734602465187499355049532749062207044172541007041223484703463243231846357561241179986754287597560877759254824310561014036092292225474334919637669487444754039143576081901918166635005912892950604355443022755788107340970606476717700369239024444589877168536592285435801063165522813031060913709953455833234949526430971818847821519781850944698639085585010871669981574653078803188571032759590874794473119664825201677224355930531927949431681162305565377405441939366647267672474199608848160633402164447575835598013486595057686624546662056035444019514352875603281106898752455244081752559144015105220414953274745130827259965509318740439968738735874550297732328641260516337141782341243124411414122615911097862523450785028057019758316753980737664809278470260053007062993408534398911662518999638644574461632780842384166666281217439248795888168037924661178824684742928113804826721186665811226285494224660890743019512613539165954809210368871257312990235950039775937573785068893055307286994511582497053590226960339123407440241597866974461010478190013230741682664507013190993424239078487701151316515472048110037966337022246800625908890977442526350110059085929482281547544010773609760330840276642748128619210821259695323329087295721508924543487754954487905121181225549797614032006377922101866822211320987431001714185042134418368542322534509157677970537829886080630855697942014876546109427269548398584926236801683280586675120957769435700345362178953490493478259411677143918260610907545598807943088231605611785012881733447631157376894452711857680431265780384123171795640795691665745480752763322195602415243270997637265816137482564862460894028460747053761780416417794290832701894177182708927011275217642427421484741461951595665258161216922116702506643731510547471924490635229290148258730927294949562908059994327087956270802735688078661358678695312329130498135607055606378310755238919717332914614971531087343749352251032124330706256651434336488753292431831097754412359000203537524146418342241459418625441770907148242092703984910510842832914384710049898421688009841101913364795539629455786923603929953155874491423282321272322486683244138180862444531019941711808055124465709610073623634022915793271999198447122223222436174184242446342095469443536717801522387850823333403479139613376677991352145344325506910778554932967549273682545987278147949527351058560274429557694249719403301074583815298819568099227488947280095261631008513366936484036871062699186035386453025945286270672324657716944491122380942559582964376878758207639640232140403509125735338184539221297342265292704488653850599680717184894785292606559947347286809608488905067261993325392864998071077660519223270553999966306651083499887624067698022089341995102181430849212684903795635124578058217992900969156907663716532977072880180922478172634748008602357299735385425647436491100428485600187767427051242450901279472578005958393193969179792584365830940417350338088152050680021416578942696259286546538227892750361445363397932319499090034727241370112981975687676954787170576862993465809515289726898815273663513655243115995444307341961963587127807169126974598942622676958407170330683872443320589450598104501045238464701596521832489773457863082653415435496545762861008808370265486543107760703927688875326544107430723361625221664797344280210578466336003490263325671127673334251229752865596101938845654505991409011100313027739984142459603027748323040782256417228652978704491272349275223090303423338103291915261874513911264290897634597044522762713983404879920490594338080581566333765863009295400771982013672708151131585215999580636316217840939674517160118159852281454064772445481269910442777374189237780067388144616479431888305993240472034820477730431321010487984416354592187820344085427992721988424503900788849455435398294875694404164661140772477410529117644573450065384418182571123784695374905282549891994603005673793969842652997783717659424918889938773243161344010074884294102539289159115797642175384205206289387169299551276390234733720300024806916682859263143989553281607754650542726619332311491177811732202830096529290657674817894450633200569567893225580060048616321225788450748772579729325125594039614070684349928095527783906361226868662907293786471839350838216420653653099060053634836710566258735612617884841620178022521052872936909895317401072076896571240125013993392331223652077862088393961606052528686637731234380969709887010426137939880536566067264835524708165126156252383987510605194186341406851618425405330150235532016863129767252720983526815754209145389832526142300081895619660561480879453455521519019580246049128607682809046406835716833083933607148384199557524442207804215826508415539822113142479144872299195353544630628107016260379391628572286605482496791019816221130954654516350984312062440069297565609147798021635218474370095617398051879060154743706115513594435945747499712723123324306895175914478263781398157743962667758301808415731053433643133254983514752532423111943323810370405805077914219917662224666586530597732271402421460221240075044564165367855311771376181413632125180667830110439959801356298049727319241594434205305655474732927045382967449299848900666546155043926550334929885387233965374967843123051106962225307230974973611496805932650708667225537777133897809202992890792125695008755268197293823385084955925942952711562708411378433724386389457210511156317686679001165338316935967234981106316683595303800780986500483050338921466405819246914202870501522342144626715382158774804229976903953966361038561035991160770621062450490718734002968074876533683737023218488057899472609804526460777380759908820326958403452399951156054098785037491743013002738867392723587277456954767233021180828475838586764828268992018167210583860159292225403561580992286327639330252475093750395166529164787202985423719489361020835309969575197325981671761095838229291831913272495043544430049471984719973250117859404352958571226556113111862983314827051671257006700252388299385102641378992537720394949445603076900462892437575837186005544056299847377549945561569420652125533837021023320258043982256039578655039453799599644532428747299301654590440895459079920837455204086192019595059651262888882299753875023315702124815561751075372037531049252714068134289151365882450608979604375049517457731599857504261142790419173345005251851176362302541988479136307526730666328733334122422740478836488030770040840092516855587261847225792028029059502650318566720846583750681381300238918397805071619935893922159937236770658372886299271269178420426088382281877680203031837230582085581049439138916539670118952629017969329524732065489606738898858204426130367715076931589343677688413616260862840753592817687388092493627627096105002949101798389597133336481615430128080474249218833890178445884318902671291753058576929863279010806743930906067987945984374719212052731724498465450117335567076833211467350464487650126863951272676948642862055197863874495215905072443649664911858563575771282084728048042207842205472197125733990989457886067765891501447159371174481004779278764549319106956674104775945294101150068737640523238275983797303930368964250986681906145809443321889331520022473882247006263583379306650042749752765366765584205659291950945102241216283038544585711499105476637680233094554606170800575494886604418529923119105143063670209739760800324122321809783270792639417682592406212898250256326406657869958808700234562974396614965649520202724377302998819943132359910700416655606129064922898131984272152830810710282197026417743022327530628981763594290732826533398508322054418957577242100058245630615477963353874924176476968348450995400005048824814702646710787558539079229496602667069270930261979209615086934052650234332544372767493580104021155661752203755681821237782451194983133211285312870738078766200271047365031855615917569147079849551346478684599387480983020966475425090534549373295537428548239831780444763940251078662805614513024455402053583138573661635759350265801986619996561417466415072795439474290168699508778919547803741093715819608479811537509331112779050723115433227027260381229053060916383947330427655789315409857979683240989527815018512689202789275312711224539239217603291131087334259350782239277506058857251793022622296386894534552927226640925091423716093031169585217681735118951143163180271547403607949078142924928024006355429309977021534776789469271592167833051304697760225585777116394479396916468529927887226155761908504896105716230251992942543084276246693927132769747522988653699329456881001882610958889138058856692444389467144440518978283019591409955962666432055274346669193285029772368034097977984009326013886157995800456207009332417788503554708106618725086657948172101763737033801588633261589108261368068300151759795584088832198198800806325242160214813374458494929543909071864644349022249007540382830074285110935101463927346618322541296411617070135100879782730425126690355485292040151126495543629973098198532165321343973685842553859231891824958255605916458354626154181125483346862413569754570675105779266176848644378813333589665049477780071462056518131362816649092512993114513426511921494079919541700775186152773533544053104202977729984511528048397308575464135770657920177395863546449142155528092860299235378844110400420778519537049148361214821298842784427099084274614936874917003367433642758706829645025747444015335144614827684474408950941071602227024462955878113183238431514848305838239093082376013242545535177261123553555029324861427522156983860397959309858768927558520948261096426920379060158655289580344324200450750854595787683126687598102275660968010183973912740997871777161688345816260072638886933672730935915733696738789989474686885580717887263935006961189251768261049172676580431471864854881739261501908263736754154781849957507529272231908833461597524273272248498997622151990186853740693021568720005571552965893890040228470427057448228424277465232328035739071187725963382451101421347298404238217204889922634940373311590616144916228226117671852822484593967126600333761266889489905209638198870776206094806427392511475315481321700380601257968679444500338941897851628519702486374464537893949625549271190161358643333120594084391471228285811686090256917646278853948823715809740404544288613541492106548703615361617777265103440561662003173763657975884650640126433591980459872172450411063776237889979986996821097360098297440818590651328305913995207642888340120131167861208144058379091294692591488807236793247081588825301491952600193882859791837794157779336389881846319421708543389461568241169957817007657235323594643673342054468608537058420290282083204359650621569933198103904210081692781273007553849896763655813428793505726940408249450999333830435159255802498689977161509241762196616183600999091373778695630019488362596398147351325710669354423574286631986615277151750356155864641746577324679980008739894119867277508818150218791751784551210492392012484599707707321624282667568855944893824208781327620372886442213895548949864775384684767087158160180690696328308171624078336121706021939533907204312470031047548171874752308048626106386766476116239788466047147248742424193271677956532211704422934092963676119530607402620027614040212910678761509881538652697910273576919997942232951556196835635027682396417689405087543599346730713619924283211801796830971783503037976405617016092399166534823239254756517784927710748817867490983858286745831690180397180681623793659240559252807905402175652981192385997801959683942323413999110871354203005659125289739614570301193412757994228114436331189801017298900220955033235531643510945818927465580411339551065842140317542663715788450262959085087515061057164613111303758179134117360697340565728335200352424816378869157937373109415890576179483285634087365895911417402325329486001602228124033506942473125756520294657565462371014025827504887445673767953353841305574720919261814272104698511437311980005056308863084845564975162704954436233469171471928102452083847572816667421710294854833465761671731517106768407752188559801773639760688392878540006532043020908155509300048203554827421951861731932717841812777151045005518135189528300243757503296549570255542475447733540483893785353487839786287648025233246999495335385254797049507651318770839060854795648415636976171026707266747133799659781806581599565665272554568566429663170166495267598968289066471900995526537716897426427135035879448160024374287865583696272624658553958698295549802918472960286899773040700076180213154828437260139541565284510340509507383489186879943657449956499813194786999305485705057612754677765528722952129843599055097044332460587021606678320424559349788033235027111001219342207049647205944543314522512866273043170735572555744815728603838864247065977776417375591049470098413646476082106667470161028923450806906417209106577744558252103045146826657426961940279276178026711629302475872159055119300756915218833827856764229800965779134834098445375778517791299013286924728358829358603507019843761682286970261101817448580832018460340895987208597180010159677579857902560366217765456154701366914674627404391502912407687007341523436826289473896948421591740848646266056956940613424361965618836620849148425496995255798848232208941651509229449244500421742659030940825908776763003518917827324960435231839178039193660400004869125399275881227008942802769535339969998781826553662399510400601116025849009958689773229792549463957398887702084668972367315632906463232492938257374050850759253479659282554158211263821995914714648209519351910931878021916570930097059046988670527427621119663728090416795954496288558023812772711306753762283929535150534346727997113385061120095417295421690198193688632784234535668660258907566080422730804249883304813430656291512922025160294949662230285248545273580244216189678217873580566232458988201180160115829081559168593383421606118600162845263754862204563900194325699386061755789646763467462654239653246217230664692468202250116826236739932669425518030937314522959741110853780283348014298431050972796765491906978091851293550710446003042128721620879189865632211485333343844072870897934555687407469457428311265462309702239798662498569956432252937033610097898419593490763632761566444256396457090784785808167515533371134185815741963577454805190173471331260641553247441070050558725141611664296680390217160932048780196651573920989261107616619218292840012947521956187094966277382584836586505647095731958778721342334852264673495285108515701228021211674125215388138090190727694425096316544421079389043516687691045392218220889184534095555910675684744181434362302126856384094945057095018421223686495991992052021658953840471628620409397233512476109726715095499426252660963324848938727337912776860565518007888146482543754974204166892864512947211082232735797727835028334198845055528456938130879895385812192510687977830944694949013765518287410028687469792115858748805891285125259787769640487595851914857699096886576525360133537039181238027876461807958075030512205657702757423875869328834306827054392960603859710457828482591074221327372159314061968268153045865486559039502306732488128604038558121993471124008423383114995660806835822197949648544248386851625018531117814798184826795251860632652622880771985441157349152721725863133032634577693087520134348507724508965127085427705103192223462109852182007445404890702668934489937672382371364901678238798648901678909235879268007803944502752605596598896540328824140081334690363645766802554726272986716596977836879278930674518911539481101229812906083908469347492865930952513071094353832933847713525146576412330434667859177194279463710198937472639639340318412048229542518426391583773574352152371850866000574748252504646724262268644676038207789019708416242400973848632393729415760963833515317605202861711936909605664583242532148739656656074191718601351935229610648503155352537088170459456133856960038788331213485093702764391135148104324923984689171848816498048486072252065927006706574329914689963533611832462776934609278466812157764791993985894465210343437470305222459752488067002688474934173693688814749863965275475067950971674921156242684081007350816238582038575853219581932075497627945424777595577773437134933174895658050400797863506747103576511537396031586906823291216464536293164969032850855034231921761160938661632707441668010116104739728794774298539700420165371376613066690468349561101462350426286996818920227006895588600282515124757702502697292997103678386252959623050618212032000710453178020607993170136008469791938899888729878351379476655622334463195493653574626300667838672991098371843423004014671554845618839539528004070317016664745386237335952250711600514649404311236737461573648899075442317653224097086123934694408308787894297445830289263898259355599506305464136467550723078881249545829119748255726127645311572316093700696056843230922146162176853580935148335298666844637673254929746963065721843855362261842113391349912576531960396189101840704575843020033627647973240078970700543685100284373809840414427383236844181552190322767491515501440907609385860210791863764834229869308769600182783755833093833710820840374047039356162683891534190204622675803586097690169092384229885585797246397239480982093120821262163813325786571361290621842940424861866683001842026048457844371742035989880112299108845689917005942892095462233019000381931865770953762090086462060573626071352742626117434840336535182188070889779024277785405125584459901335807181120056563519676118420692242402229053683263494655140019885768611895716897615687841086906713825954207916746955960770692877442431697657523621791324796903429476981537262694682108765824578285456274505925115054715567967586505119157042446239182028398310878389605504181603869461624591584880217831663267031680404209042672524874126725580885931274456669183954784018137610396394489010882899790989032207816927756742980772836775026639399693700750163956534986501501920168672159218422028721766503187722545881989196722918310520941601017169685560605700233273942712965731527582957517824726822308678439169358326752588830063847519805492669238137679025914776440276813815698578022998849359317790477960109629984547733010336458967211395298058683534939018908953505421251071641934979166971147418446872787713172200670123335537915622442552848532869707937581794336818155760956774536625288608173264963581755845525811006753923593720307679236216738289773803423364064009469679296656548483932895303252444971497136102905485490515423438791343939916262363685300122323741470448814031414753002560360678039754229321840710586129886689435270942522316213588544386258009353245293321133149600202598281123548976550553413062202481109548839056795895132210167048925237178838939495007057791404753646573120760255287424609745525857645262161151190441884628080709885449850115999815871603557420093294939811958280748495086112092513286053754394410612989922098430492056733225188081136393712360298987439917732752929241960574383271764432504555495896708851245086448265475134348474509446726388359972268920111688930795387902610302071891794870063193198757966231662949726965864781030967075702453840304764725341571366001372922507837408638518379043636368190330814225122798079579349308577369242128167169424947085015681186675670786479505786683103369837063720680355743218683129495553456421498163450778491760509798648244036904311662235190953599748026676081439391739857038576568134307177523166737805847942134532083084351987966334904120344653862541711079637815795167946200442533489203406129865996133767791870518964167482936737163173373366139358240457014375116610995761075646475090723193429358178295577135024665479455238746992806702837521751473652244349968652990036153852431778134258467059930227057971324539610818866317296216494100048123524731986879785111887653510273029647266718307338644720183222710956987786143795936329688773294062237052591275041857714400336886965062656639836593191614379168346459331709712110985120668087667948700169287722684687337634488366208420833837011757855235419327257600045845150134330111908833529960857880134691101049544368999142613442761896846777237317966204631137959572451907791988972778214963111670516156810782007409781051152991051700573317068834962853296525414181633969784989584011319742973305534054380223492104193991201585323206673404823877798421398910606345769670505665596860785014647461099114913734644162477477530615458232307135085437457504950716428922224859603144134818317354922675721956016929921538241281386073107968695715334221426613854757716963114859714850224970859005611106974065911343644799953991927921376957315164884851036430130854039508284281025344645822616452091159408517194986578713701039261020144527329092417650802515001096675731026424594720012249856417487257791054140441873698408452528380750757392284871339704542670419926376242488922129081266006563923376939382433635487685194755125187490919918756509588020881957773238908282372329998789941725830156675138297706342433053543365236118713109853018411165960711494322071837524168141113622489148950163939321662238527747525929931862415469916972550685188870841570919214232004364298893122860966059858933868877128183713656041754977634222592734311790662793867808923394445620552456163364543427389288708047038091362806514492381460401421170146210465972552557217838229506584512126725245037331378705720698428366707732640547746395929037798856667074568639225822179812934741701147805836799799543551681509600844996928460314532476366552487649148534098807890946700725272200044016528728611424742133490831264981046868674362912695291399424408456627787908591122296076280240543309039231035824428460975068580745929761138787330198247807722373062339406356068814905860367325265271713047913686826024519491609176984654632643082078472542471919380686939878075257533212305275314344475897714388670430648173467313410597772429120444373740505696490590542098748318591990852663580203149023290547717489391602620846966007637347005611327760981307292323101386945077422917111766180779464668235176869174922035675807105238730121492794374783762844587785392846318975539216940465844178924138252006899105802548460882636176476129680762932293367322735790071959293184054395876595103748850035756236327382705945707690524834449906228980381854958020422746945679405006458942520956160415202630516236157852302231645891994409278235483966274018134594509078921816450047669162592228076569514978691390982162862661479678901034114614060294263838252087317210445366683821861512747477891835590854932183905634127888020238326779203885261543235800471590701240482653917610912277760352934868777094819367336909267816984076943112271008842798216247742703553885863619890946600750552493186691376685184813138619298789588113994241750603794221167612735942918210448056294045791108234648895677636385708814874815824116963833608793182045531389859021302941854851850721423657746674251281436279375317406301907465853140305110311225385781234195844192729985932873838488794967925726414640691001119422753659937615821518107438567315548710667518801348908475572741958175710547115588613289537807168706018460193731600736513110190924726186757403018819503925891974824841861054747733591219538235708661241130510215724311950191652208938378052160126734284691419284553655460266274854259702895010373503608380433903794126312447694480452014227361160549534028678198330922838466446573676404009906988721967301882550988886380040774479858813376843059743398996734561344481548398858456792773756889995793732747756070610256866164862833998655752062486550438469560673505653886974188268292628304451551266307782325696835149954546749676637894059711548541111363040188855371778937500563095331345615622073839996117241526234391045025888632584400136810777348886445536111428720894770525778027377283199943897146142606395939343285999185828698022691796262216520974696357716862128397461391201451566042886026445125781640501947570260063129769464463473518041757878246002180554086199807567205082925825027577117591298669025951714219418507362253528146562356989613173793419909831784067268512492145759013909254020545137853568795323878380989604519284610488057945464242624056782135238486219105220496145122301088765730167215083299937444236940942661829003853589855884817935288614880498589602029178094419815181644694843357425602180628414375485510399863985717974099640662463159063017244844182247676580223676340747714757306359969841851309905142108193921113626389891380283950631236992162992357492285735999750033819553495809073721175344231463552298406540127082242979258159195378140387679500580896946603159432859161423571575219315774058282653289243497087730788134343305194481396668889587551771247943547793665659570559071885423335547267949592829537820346505752009390589970853924986411966759794045119397958895789475883827393054286174174971954269908218551415512754503570434923874087140746976674440679706194048135321225890212199397207242820525275393941125516290775469399231222151041292578760067897312986680227689715499083200855506429228460396493535021539645049220294009641318882984163151883887944441824248903931584616438759745957418835561767469056199148919485266805916523045312360574521856673045347323279148381717409100573609137237171506511036897765605990672302355671033544785390647011840091743666067275208073573586611728432073894038808906135644471428524819959604269189004712177829770582733453084933792921393063739608169987459677844630889398138190319080854366420394656416796533568402108474201423862481581778385022366084670037055627017626230779132835610940556563300179534110800742159817436259278810849383211589090131813164585446383661460317034118937906516658732759109053637321930695945198396328517755947937247990887753836919993081100580898457919621849454761107608783896548955016398191698817729349763889828076031503194920480669720283190321196858333951140450319241704494872636852064216089006896292879454043120961010615999319793345872762807864859655374247915502705206751703192178115662362541274199944698540942235268541976446099721040266126423560668250872947169921113712527961986232892886120418745321425380171108107756850567788174207579052936906497007653702611236669876284081701169181797423231949113826187716988061876931150645315432871652432537252498290518579187972829216755286690629102485968489388536360754056070555421172798587142267559174076624188357305097387891213419588321278168330787047858739455057605099167709585541484812825447486115952171499702466163761679716315063774218316058528875173992831207732771717910583988340207607563938581022645557527059711322543666753107712401193292898633458915420101662994435658358351021681497226167597301781349427005706581099144743132181007196427386467825836696394709483141154728003751111302510602563910518508341143751588813563735870053954505495212889559764110303133880712275513967296214775918656277093891261280273785513907557330811014366228218053430740705755736070682247668484854371496888364798632814537469071235135982797892304684507446233720235966326908710387739639306915282396120587004802026172930367430986888889618127782671477740498166522406151698082468914438078036789469698697689648033239039199773514887967428616921331305219746548354886332777738058076989762053335689673350911554442568595936346083237363241331649125688328673561830223060340232872088309171675580207412593755713098667170357838423317198164633916701584702380565344942753835993417781973442431300309123869391113068187024677862470528712078941008399377854500634311956281369630320518466669681848498763471708072180573483092276582263928700208861487685639898041535114100667034501107551741696853074618714091912752460129391299085639868016535121533624404733626536151612354245213464567913078056599229800755755807959549387935306086038003659467022631841263663771997005705624951748849745516299835247542055670925576305894633569248101785742736669308892288541383895920617733249268369806154454012924263130974844371666360623066315953441563404084584788812951138256151957101201203037772963287946430654926971791937427091392834089702748306840188944713566549459420444086344828632100691021748456899412414569823613001404798413237184542367813395309784641304462246382603513913161922813595688306834984097440220077622199973744127613483612460996813147766548449047537680322388614663092340252295510046365586016336277405839612105961159248289706687995987737578015817380183164404681885582051118080370405349986420899772450772737775917583612844047535118865841940249297880803336125052458838724801721714634231342312475990083206207905639757748541902570813346373213205466703603890765041733909094674370194955697243040726426196005950583308242246273380909821445298405602460045458759627793185266571320315744359991369971308755593972170852082532443055871507263988327594328774562793207033255360157000837831104999492628623273735112668501604524616356635272478330565286900255133932511966736578968816731050382131871964077963485001026527902568489364302356572281554863102793079177616351901789344725999405664818929283106643978395564674717991440450393953721183696073982318065462374463085076030569507287734659244807963281466139219692939828436676658407748618152551878060111264763440501167296019448905467189956024902876010065873472393520226865519625121946786861724250986935709181748224687825139050321885062898875138888859473565212470383429027588278681762135173350422614902620915369953262169244816231052009920889486893579623992732857349899669117054618392733802829246093225986766885993476934600858593200796138287235287720597916230732184935623904369942538293716939008384000767045022071818040166176776892513901461398089788336593689365190179073426715113946588117151553602783575904100487230107828188003501751424819883507161417710799099337473522631727249704492978837563448820888107033498732753184440113004980461993372984870860340967550337209375099703866467629895366430534652701169946408278248915365102741417275710081140822368672539124040058320701093468422277848535562975266213375911912787769612887312335431387599420742751720431451047305414975328182071160059313111182710162000789291629463933670057220069573553198404244559099743651115281737537744905531172436830519266940775689969187872788706101364004560154819264518659355510207243449607881539171721843094196737256247910670162799638152920608914034206766280018165109955196264715912450831291541653872369866107611492110891962824395511592037677311095646349979267747707788685136560142312936214082106788647999361491913810539150793100433971660608546813166301818233049272251655503736255409511619033481472053857026503790860391407773484562192545009822110677993176712835927027735320562798335454884155878886956358091473530987604291274663569836109669658713004343032503206024549025512167192911081140687907353867213420812200312617736350859715415653383421126801917891768021714914317785422984729397553389752288501748184447093708782629605710915977051422219330701060347812341778230334490590140742713352024179627987297411064432456810847328465414410154627191322092432996817510893047564430743452465415708791545207582006410273470521316127952832935597074384421284514199723485629098613918543566405762958877276785080059110613899459226126262522092979770001946852879098279550929670500519285598470014845453718570124668835842671767562877163259976037810985199667905184984071278585825653134135132547654884440827111903069218406311721554790049894026951135320727911038838410429917150041508519357545063311291067852244772659518138378908279909365168619099538939080845019824512068161805517273401307116964177393760538320672153417852591865332862940476473030609127090916545535732132200358558285247964524312055756470109850931469472141643066351460399243066377688293005371368099896280907585650466211714781498276942724342586740344099326576865809346114742028883405951187358520338450598980683629726089938382929664432096905019637975498576647964074379717068029571345028499766942030521416514354592023733280634592405439539115783893947624686477483792391985977635234583154081576483888695950766526382007312160111601113760170217110943480819473348310463368866701557043507929809600594378744599782954780130929632048642198595722144185162451144292170301274600356562363405683168002793301375009133148632704365157154583348488586874207983657144214011784713527606328986732873007124679084299793299916091593756304956949760656469207853794856771113417893695675304134139737216731619480815298297861814490342297969712143437415870508163054506620829179438013896400910999669720147918272747775256513891403206719563930192363007087410967181347024620418478692759904445126908767897355192330382811187172839924601333060392309788591012328227200447890867074637732593240479619073317898866343528517747279613039957607494283182602582138755491671735463235581782855968936546292045022450259176326586629647702780456090852205235743606542694788152251771362998492715075736426015487542407094722428560021688158158678301330438503955498680471579770669489131296608562453211727561484809112578677843097308235917151032876601391120048595723569605209844767444606599722384928445166695168927347718880940218845007656721357059681997970040444460058061509584107118606718588741531529991638743343868611121452585876220290134093434141698976439501804259162198332644381302951886491167394210943820889030210741403662563012224579972212381910918958090547256943288785416565298743456735574897922134552014654747582661847763419253032141217127926771145348637027581137298259822814679934409630450096359133413613437935146969791251531258953783277578391207284852853270977872684804258253366021816359757207341353485068406998542067992475482641754494623680614952549912512622877556711754340447864274911983482566797030801960089148872161413613957977930320733185729683925031419374833969137250553066383259704193997038336791036387947883057641850474615192369484644657265436579586264311125817352911071542765932303082350613600472251864944253463346013725058616310277336449605018973373124197519269255868572877208337192660607848538528322433708794477878522486871343330820982296114790221280054586685584308752342103175417995218264887309986194607913198654232091312696519343646208941542977531837855943542523235999470729971171569960771766042611742908404068999799559605224833549103392884691930755556534084175357027862418724766039589151371949902519261300216958385001577633016868179675453657518872303089508700859303238248433927758828201849316439600992277459471717384863586287176754765935980459640972426966170617480839904349505845426633348368175774483551493621756452836545904347428950083604421346661285320100940148468863872152988169516342671074581018559657360960700107437417320264391068880178934783078813556560483807894071219398794696249533914961111272592694356943514296232699703561914053740716650131670297730572947254422773406662663653228540338059914233508917146792979748591621673716197363041965815015013237497986992968460884475503956250995324596800819099714071267022983508837866816032130505527659514409394241590884929355297391999747316576023225226925054080354934453805984388533752423727966003864595617261233392054983719346257552915803393888556410158343551520199861531939443451156195822491553241944184707132103824407568304302033795464033804958104498957775380754920968733297651685148146995639983224618192806664981188150855256847686851086435269791352816241582212799268082497863230179657300063835803598272856649356742164353566864943106474058098631855173273689626289004106464486379831654988881552862969866601912792645081440384724625336132630071512894436666371305386441611116153598672544901149924987684219535525602382483014731636714995753343711998806407020977290414204712207068365194589403859389830352367805522281525500699120556436746926616214165888956257874568981227857944466475627288985897124084547700566638066352852442886703217259339815311484041351845683663997258425265852000617243213327127231389059573223242607551631160049546599727477282555944935418772153768970066897043655279055823875074333916351814345973465491237547860863390668517720189551461372453577286993041158001478635431819417607741464143601924854356929825217863955552721727053931518000277486058891274092399820817682461849759683366688363876046998369297203712333797719991643851355545757304117928681889726602185714834894224447651343028286548907187575230981303890701149770550064975396531559154642386372519790688440092970236211105841358364563032284323134216632340182313542147207523969283714926750246623776572324804328288071858393630017055927268839842629696585036215702488432674338598316916498111251244853018511636783899575299766546410684677477148319562787677679961501861578118041576382214189904471383986760602747665709105067001133954245321676398559615929019429930776380407545880345126823520077042874597897903775031267211151896610500562403502240184127920840733988659990712842453414407489139008228380727489483040957530774898079149377710212963204172259810766537645546418092755503191344279554833660806345565340307307564924717203548372930243724073628087944025952468882921599395577103562485518001462384872061293089562426627930820042656454340201595007354324972399717585826652509916898441825968856560988155672726314616648622545905594197364920480170129491866240118627346925634685882074535963548939470155706747238003344678371719808933516626663778102096105652104014736317635255418165700393455267940497606815824759028399205417458170977324981473650628373095679821841317876402336034062610812655823032302810950206116400627518390541381922558088385148398360059223482341633085843502973469249137855340107852189328179229017348513537686242382168909283734593573052145994104755943000319739839858982802030306487820486461379213476144084655893651663848899940738918613149285321336522313308970205220137738905196641141931433185871040847358182418838141679828212716674371934832373651737142791689382528045128499910754217410797318731511755385478036517218473994938863589335704153440231730696194883337713692878196275723984019265942310730212666774376786646090381474713786718785737153493587552800756042526976209109214126122231174276190635357228203549518218296797727615888639273773433330503147447654639795983322623004574185087908744075199082582424868388989623738383774505250180076136610959424293416190035158176451537822761862178920307047878212005566022086862899858098867246443703768141722914865962715414667374120374045682486517390614881429628265638613094548427411556630583492367354580606281686629822401733579465582260628478239497713039231358065248342970106834659333082957851355472520664750518618257664194859446179534216824931560984110286901701871296319337724324196475909867534554191376427213888494790959205513902497134347681188584102070270188807462317730721048047633175032730205653366313226963293490460164682434609886773510651949138220946929414016302089201281349862095665085432426773972176423757450273702894633642540595663688527987586430375478245613292800150110398939644771294193457362804822533902820378314574035069515583330785646521813976505738274805401178064021465458484990349686140979231752482064070364180636672687402217056877223192809311574523907173727724544516132576093270467873089355119612028189459082521321060494135281116980697896450513627446826251574794261315566210164889783621871784999611724505384624132627827586222312804399448796793899116778889842258373342108915791450515096195307067115085905844245440181513153632675546253401592623818284061585001592292412293021305069987911948526919735026701047566226889271923325807390219458513409970528508303380888266101948394954690334166926322112516595330017054314781619524928566081778983626740527299689842039127944886692722994800093430859641748937034092063191948488698247917914347480229870284187266034350816054067105042327181993608695170959460900999349044678414261230394834821780312202210835713512618792734350239037800430984214008087260581225054898423445831193376855335851906393699003870090889138686728777591060152864297559666460482958404470302358252696718800348839100155613580859773687829248286554661889381964233444508695895207333395582447185471522829467191604296288864873355353364654980674169159279207845569327322346296960357573110288274384728074009118842442524989883211135769383964662125366931061962826195715965621712881462626825845606056326262534904863050527539378705006907893675906243835113533194163266267896502532074058912127842182453049630851731717721353153823081047373468470687737748106353577575703078646683206159035605424970899418215159721523475519906898422453800933261682352373284434757875923840474687631922174259577577290585744185512081395357693656805977353537982301939925597724447264010293001226197789656298761569564484115357302996252047429669766991055970559084106244954030279923050925875286560434379101987601685008451288682979385268709178038797977695349404945416570446225775353534552332086479622326431920192753916888077337386550518208788895545578989166844838016208891468333287255043665901129593566070968380323217248232705647088129741828190005511822797133646608903168266254943437986589846516202876827994094954993459613004667949527717762323741777017003758643347094244037613834000390170109070047167535897658024688219739214341256886764471527467683249114577622536441339257430127694028172129265501603583411651220212597354226663259034054604374535503595590781138858178493935705526073517392692397217228799879955756715229920575482256589091696571654916116402193493244880037153492240023058075801747374424482774441157789075890068895418011649094827980613685867564488406826002362537144835228420632034231525910568756624846958266240939378414806837748341194657900967675123143094069477211507598817683508224952616045975749531218762343973026246533088731085489022480997432895374118555708593365698407616448656704345215555113073339771295935810341754380550219838666458093037691226747855616366636430726357549259750837128103913765173372399191690779837921893561683776811125924592214917789190405415041144021660882359359315786440865887774174457590653378556932348290570483515702382637954473001930996578020733900310863883332341733077760065960898828161227453468911544737073263920647315482790875247148138093351646344117890442889937854241262469162520129106327081854274842947379605778240978569865320049383078897894348714841128367059142014768241927748550725143393751472632952539585395633586843197236060047350090106170915619982299205420206092831870386290867731925224493482486843019101162913051543345425254277815774681233730198692111245030583982526210174012763880340252729769239441355264147054992667956115428808984627711705356933285886921630564110813143808605493740743180639214472867320828332808742623706505547424702406197994706696904964874501443550615327913741953367728179601623693983087683456868449770017885711762615021319883165013826404221093483002495846943584598045091455767400269579370285869230356312171695682478048242558280285952444191355030162165563129774451176498503857190796594372968720621251269487051102374056933466625100208093498175770647191785369686787447422131839685235258252097737877845563286160885330416476842737635430224905017804908223231311577330322558524874811177618724075118467941025122542274568941044623837823428656347705941439278881692997186039306506226968837955508789487952851724210506264655053871477218667489173554779491965400625896630214079951338716791594838947945443426194096858192117756826549565951538744600369259737683953923998439462929338917214109576963515437726884596723686928731142669259106516618701913059151352112387078444096464593337966483968560750981015343304990677888717238991968982686275263068182873585391431334776904090806061294462192564018940434953256194941124165177643487288847461602573718119514136438366624462139713716705757508404184584773689823882335614495664700434374185342043520727024668053868307931187425532724440251923784641647144234267633468749009999902580905241851005124780000271002253203906318668678947832452980894253094007352334599740897872861721718039089624252803771650392963623095682269871273589585166682471106986153894483005734873983862103706384864305108397614939244148921014645045144921448673288352770143044414196375182164272036347424857505708907898392896084300770954300032948262755489551386098568694643466893887722615541224375364489206270070279302268739846744176413476543437495246520123312247470800901483143911587769426343568101336667657421297806044472245243906353695193076092923153781997883451754457123951970088320148295725955841125293081580929140692701954675681351171171532975775586435280754631810192479370894400827181858733749914823951518075294673260678917512912983294476606137243480949719563587111413049762401171456444474148903336824679093209587534300733933698108643279390233331807034583933857461644293466544389580047795435525468670257503088144852118511024040247328281609812483754383218458618743572330731615980594914030567153433851640727853082072104795932500134362270693165061920675098311635263431306528195724084300458192503614017761371217024377580783459704993827551804486237614676998543919613989835376290526650225035323499129902681452025892599768429582815788486923438604907227213841368316274740520783295317082865914884384920103312951004390159177355731674258922221621653074085541190965910112727690955064659474149566735873622888524031876450146946265713749367721372112594499214429521325102679337894121435299741838157225967827104845338530541955824903417711598005972665794004317126586192872036942932809632077264100966292005180724982595155425266573624670035045626223660971461109334566664473635102801840616595937755537307959474362801835979149350029272115576696004280332887943154853666805688249767094941598925088848631904943582896620456649990923783944026861944355587296760289814157392760451863681179225697946225470661815005184695430717384666321891100053456621092893894995864438642324951992083186428035362495853143883939360982258004490698507444824467619592518044065872289735405134120759965733592839591911609646448943476442238591754497913684612121383605454373207815814813740898054853799917921080405431072435454526333950701253373696664028317179900100515559066813071638514947596541182904088336679645583272653747478847224087259683459083976588310120362636120670805879458337119840792046500736723991810695111240898191121277294213124681553060994742043273820727834211930530192675134032629298582453274227873235510648747073255350985223419655390921876537972692352301333706580196636941271418282392678146324954988234217004416661386160681980825861881420008568876444674864906983534874616538003527586269309441422909292326135276287006235784087698912474632917949934526737523146772694258132171242337490584481079516363267139701575882040579250441412950093153502935667168076207252308768077093573532662416853052672171269489387353238134320004800333425176536467393484100268219581953420258498323682607536460833974591261814404658743764186320273657628727702594995933819481887715245014346564732364003522337985127472743553428427756552102355308517995947503295847550132162421833153997918614028864268075482792069374424446154978493343918084795267017037426017837415944566481801708576114758987283692117112013886488395897538366898983192537872748834539127603316316246453343889175348728069016121863893197586802876699837601684214388091462853043414123968308620964903301703460016363552249801450948226740886161393497634239243275852215851716950471157578526818408031410478647328977169125250742438202828808808994253006182559287949252982147308324744039471294162074321084812837744224822220398499688354470049929614245812043863794473706270088044574875028170272811427399429423172982400174819479476998457441427599305959028296879692644345129317568095560299899633210660398142600758058111211208414334427490588304139615963340119890424695180147341731109986245432704832782334523160818321502988509185184274721599936922883198476316699325502804717449070929438006153305510763529548423413059617975366612737856873816074884676905756131533262123392015852338542149059049502795686954670933205337510190118890809048563576988658186805004463084465691419149132723270022940844001471452516509535978727082774339433687198707425399192454910550009022095638784838187799278323315447911945568919378767727773548255048928819371905236955970541575134328796597073125022229645584944399383409094882135769554093903337442977990228023135789949710370120728149317986440921671047915432635459933139352309031052325141668262503126498401399106030155738385614678886655607798246813746018730304559925137797764570635696978500026136260474167925320622396464199416583890966297433484998626233276129606492957757417054058762012814675500795099104436830595900293591212480511582584244125507157480773401747016243338264214606147807207053123895802995647042546747895962825206447498535801627827781396164465023807296936064052448969274839058942138809343659881257059884569858787806808016545001678608986494177445730400110905343546209915944428055561597476055667174222129144420876223763175635183471258708838340941440500569028011017345797843405727760148042582133365054468628042876098962121658593922184548069538250688178158008723867552008251651186587284010556292156707435681638379230167218330708589335635958942615885356200523571270206243108913498452629081233884351175688667802475683409469364549663165074908687060510193256884662713280508910853587757776449418383035357922965045323356930951890373362527590992291485026726002715951669835168407345668796992974061074240054446679627382337621829901166367120293139515145282542034125660699545824181176918925819040796280963643985977874394962641164652813551116475394824678684971574816651221169534409750206754334788865336110414738111839126596701890169012698707712362307025292082357636669772088530957003845596495849061706200090117707592986739673757182896796183620635229615784939421433921893922985643209632559389758466579074067188014407653789416450214131238989312457732703674616935010321404367897256144617357720487553336734737149760795026221121470069392168742826177963473487797973859876469657501941095515546103430632249116588038600523630298409780312165902980317687553126738827277040511947103072938331155586781773330543088833099959832776436181846712993997756883938786477517606280970959142273605269149700455570313580786003366061380287709322718416397293888912241928399410791879267541670548326094039194935988333184694315879615191356013587537770310035630595548621939535807319019085424523918275969926828048210084345836416442543777504228346020704391825208003496654574667074492924031508891260722693411562089216215450500853437167492007589806236370026199348371481049371531380007641789055959450292732460600559752482849719842786444427436096708888432224093061618814245664955358715236605780637822095801553266523019820460151403335513392861263284079198087002874007389376591725673003303820884701734463612066772919183331497190190229259182825627712593660292906823649312990182198747954998746740315151331914579817617841062616196956687480980995090701685923136170566158235439239884699190815537321308677895483252452329346055709773461465209914349640989757228419510985344163686914140535929126261490152890524424592235685603272021385750250727670849807906452964337380425977864666836366629602415798447302367416657092384387604597700591894889285875899295346456489441369550517975555674988268053356412181564925653348986397298474978698232234259179645783728083202735595399648710440301496868985793665416497081915817264385120954549836653579838318895098980329388734206497624027749530256653122867558200436113649820238420745145249954555695146676258204944361301146332669840835598710468977504081301129540017619562010578457255353243248725887884525074836679649166081683299088802457820587986330149992615468605817944268833227193311919075453093350363040040414934978961129463917854493800451621958863429555716932022608658813894543490095002551228241735227629129268348669915725271449096227757546187193381289228973305234213186105152001979246343167459495673423800180926443925528828572297326581192045413646435270388241475247666248327449234955633194312469962896728835951406332448220328115602854893855328108411636668845053665208997003341324680648785383897134006027278262530121670544842843597111100236540110431797005380566892547422097059278680304552339247937399955409009756603348104696147329455377488028845886522160145287043799800203345917572944724435939012195606166008250294384695395930173061201534008851322092805846323082818547021976633920934358897847947392822026117624198671764235932876735248657384344586457124398148575880909318915797287689782574318156855402423186320728742235673004624486981356838794041094079949591083533680093377382790468127199482511369906385540684663278251518952422656730308506888715450702360073515073204659642787245582627485971135880722987956740264598466660814287429902137247023949378171925887861763461412449355044323866910109219589123710404178657974000597154728085722134808383469938331671660524748686272577660336526478663347605268509469064655995442994597807601841875645275900320037247996692254502619044398940786633047313324982561462440767117706125478349906480656811008580158549457389100537069366961798580731756961816903414699076739146162140107614579680888275452157778195390878966705923490898427681691223610194559758990476947546658025163587141757679870122917241289218805687015574184481872656356566313115958610212957371169266181038393943761838430336290184679087278769565523279654775673264090771415406742720298704091805471223289449230361760597421486727655856539491567183188450725655105802573008197849996517825655318089051342542967372280568175038112896535325591749280538130645909991070556924951626062961304330906643372333195222022721033431520350631126567476983911081263306225314624214732730012542538064675415397191032546718375394205938937462692288728398181771857860193206086789507560249991091890823021785625589983991714974925887520260640600520714385779545692037370104557231973268156530724464348510562942760977183743955984733705508404611003558450921729677407306602645615457648538373494778500930859256205507775041146135584827964078423699888004020345575868021862166895077275572521577223764364345652939403867857615402715596286667032962263594733123163845284065148241154774236072223551063162535496977087897936705919999640928874089308839456203000680031353585515951179541463395433569858482132647942472728602988001006524747301575589339762007573714250357579824594521024605512964804236689813882876702942685220186548373838061972675706699326141007438514065693412167791550207743363242818155632521866890333987697847677491114441358819028749738616828231825285300364170317190211678227739876402203550596923098329719236587641863461809845537044896241837415998562536706678040249448020185233926114646228038509463564110030784494283014438715893253433666290743018250795505452685813357446178142155469254667078210524651102084802368465634892807629363807806146804786106058401601225703212570573671970767162093736131508541292021172193295710610027653970441422429890852457583536959932697834415617526519131939470587235411957488529884832869128089320285991078677526980084469326114896304642012565332336001450234687317332836438511052748122837782863483342711289217863324183933471338235485878800377360879196211232281466342822122124277222550349495090891390614979158425019427373773678512437997104903046833822678625622613989532691861552927955802198138034833058224939711186085700261087780761663027739031597695530415654834375960574613658925960652795565570493611311505469485975930770820696457571639384998832895213663041226909327495126519683502280340559364756182063925664448789222255563425877729034698881917528654281543864843413737480713730081323243732838973556508752557089464457465021036426795034800584795248336211190631852602565302640379744902725388575236007422815004164134422859773985354428572535545980431877342225376231703148598043948362529576899096025554777924400833146231740666066655650068104549535130463177724011997190439416375602231563980650298086739958873537228263669698361246939836263581372209775498497783287179040760129416775888191210834599402477909506749079753175416650706743532125780979672740421881782085284763189437718669839813561692612463422958312330047458633309951827445761230422012372195564010133875040067021023057619725238978052363551316407527276737813059390117801033206962072201221427225917495209160305922227088225680083460069684681730257166905743902783698824226608421304959929198221285766412173724092703325090506345925003328162682505954390595294584178369531690899707771198225945120606488115536958435156941097114099152911664055130469175032108163783077360907274308397003206405394062124296639901037477913155822197032377369649309312360070853906922089995441358426822184682475653503801714490081444806496474466467491603902988641837542548456783021456753877330717167881203079506475562932649994532951072412417304212887322779750246061298367742310055078536244275995662063152957791509216080446289174462283405570192332841897471013563303044389118253397416808073473325132327272406831048643648833527855915673738508571161927549783987704756845518065070467572420600502867734301497371176412651311214721383117814981168856095603955445999435278863613223379348645504829713797104434368944193030753768135527631221574936218423688304253832787273928612147120289415509936689158611868312031372477483004479998846212874128924302351326602187406301960423118022934798373849843192026948382297874250674428407839686443657840303556427898580429087009959436299595086251250706789017550456385254537084773350944970211361411216300236905762829581536079754578766261965517516259903875327221004293643188699333227613286590381347054777673137883917811113838995921001700555865842815686434080965423554521162317847764463976813460904762555956209297650957685544937347562538122951704512284310729905080327595665617560033964373665286473583349238317061481633528527169669818809530977448115990349545286585624881592460742226000705816966221009578954344412045219086602855659431555118892816304343905016380337443272404240380883057016836095853648310115592200524635680781603026163216341059761802276360191192210700607186394166390824308801218893539116084853147521137743435422907746707190445775062170355093991397769032398761211798340011891293021591708431870011718979731338183575980125194529830064584433663990454668270656535043210621640729586619614003613657995628168675249190487916484194029751153729500992502718938264862157986911963237508695718391832182530549507753623195253616581070142487309975691363871114717478064438947186829185963609771694601902029901856148409424534238990655415842008811444042564971103622715510996137899081713858038511677080184366829147584885781941486189404591775936961550199998588949159839967278190536813244921245999674231890637501154007944176010140742111196960323880109425711811511746368829509416744511998004275670959541445106140936482320937340755946207541502970537350431788853783988081518383750463752932301550117973234655255479189441758224025084831558664781346042060742024846621405022056832754946510565769043590583511011714302474563719028278371207794958419601002125697363943847047699913275019539610290813857485370054145027522080629094554636233377192794599200368041927744715503154602091763361849411480623857240320826751937702152543859402014584721266562439390708196635205386845268971657710420846259051417546443940745258549769552984648753362340045707503873580292865921852639054379070913786409466757754427607724553380786315528129030527866492027335122534193972364742575499756212438867150786318726679327479156635026482620793260615656192830305677024487966332738024789891572304674190906269561512851247994356884931948023120946911325367715000387758514936350307924629311847623221368313545056609716089778296461272323388771257250477449735497287632926957252018888122323709950983184660056138518421894108116066253746310971708765572932918213164669617914022474504153661233549060192975444318282954720819550218218829879423522619227489064462814488114453472557301664195875185777674350822247624843706702588323864430435430509060626301205440973038069482529190733584675010493973080814136183835566315802712623517834818036037126804610498160509761300346283532485413021059939908319442938440057415641039975620663468801279670775456041147268651844878334573989352995677962075226394127464970122066728389352841641285247240269103559758485314676381183767505494482564485110322429352863132456694325486787736065532845181025375308520109181072243985616788644671252255261810980711645198787952585156783052010258099124542046297151339457525579313363854980826323066664766712691243454227254661769449575677823846385998739640555143504882850728678973125076764661031077181326792687618552272053885235728911279447106437326723394948333597205052704789516099138495152187074635198383117625847679180494403289577121028223078038542417540593127935984030595537731732777238833592532396893142818776863914833728386284323700616376313327221999592943072941755820595751119054424145482027716205575501698451849561893858993702694148172840233964731457287957628467283477118401310723687943472119904821592696233926740043645686609806022101680786566294286509580657708712025017500616413592439048937254325313912259356239526474228937717332869752708508923535599027931155550477874487361476276016940643329884338215033069869177915425484705343335328309491830023623157168483518888935960513826870720311265279895628793931253675187458219434062174599413918669426494360974258360688056451962181557780420550833465075902231776301129326584600630729680310790571527500157822145454413466756927703295329271406717004520842174573847296550646488759771557933053070720445560576158207054609398841481188298343367795078293642201851334586016008447051112931981597745607073322345765695406397279101129541475181209850525660418485425686719012286910133839773411819206515564336287666366647310035648579653943026040238603864625417378650889093790325972155063484705381612053314142506639567312191726772834228733548881407047250965458012038265154106380002882329249176931732242416947085590735376228652653371999175010142226497446827921463127661127642460644129036811925249378247948468032671600143131357651308943115688144793974341425922321311473066002624583528793555569756206969799110530252077101769417476034873245425977704757100727936674505688950064177680157693291708989351573784668261276415194052247362058680978988805440696375446929636867823186923193849482415498935360160750523287139838833060106079799627156481245757619115687195323025126641122265581407096861534273234735846028781144098347721751405044876729790205200869307493160157740589795926252146915701003262158907634316014736717566452837498102226117841868363485230605815699674222751976513309341904401794152627090375180712904657915220495382801973454555200229320098216751158468586789883900410911011931547149445920483761175825045369670964408950039519684913704510290861225243394396393753635919168258267760197883033836102562728788935092531349671590103953007929939633445478547074572151709479315405433102230158565209586505304825521642843148645526539801577152984228733157721986345597256724886584072743770022716344768991427719720183882355643082734081111227074311474428166007549583345888150169777851658024888378600476805248009473298709762076838828904327170108000367959306900072333989950160257376870502261063656057442816785699382007952210213188168561528579438484014641017249171876519868398982091357364716109797271129092209382672263369479975410683129484017356777907092258241908581860183477113442357468393012444280267634251599209956161654707285144101052978618173211537835286466180867719116753353003436112434246567130853442663727249290957285132516438456827282100863317057641677083876646086514779490621457763767189348481552462686799910222892457240960040490206365607225461250928126937005987693335875713532966752377953222510883680607251676347624876137802099607685764998170981721568114299653786990301029248590984654068148421184424718485667105448963109588264646831337339096433990519795274344947412248117832681489655400953804251602916262427893889777480628504584695681030705118747737146956531295936212948779642459718087798067464559853342951317514575386673278623413537927015526894506897329738241251239806067543418101806265762296309726078993476567562123203349287920303885593044668618762657164971936491703658084799355641505502952747587798890080083267339880022703833323953845184543397190894662831146409515611337579611528440583558714011267740984642566746211503475710567724321158980070950315219692358111570315518774168758675079961392790952440273803262999016219941346818893829532840084389034425503202636698420313926868360823666736089870278831537277080012250783487025028928648176191120019787198314232322401010531076222530999551757982540666994939839182138518441391855879881642119973374268663180301265870658533022363043802349174598040181190497887985109495923002749219217988725794223163235177570848298275789765349309981757037253889007268156742739898787556748531248430240839805256529895658695460148804615824563514230956641869322467620600281511716192826065619593112989351443941857239385067188636250800408813832954122591880648291964453734895149460315939908066581248587642554608913501980221429812024325436685890057692058637403093190763173879113903530919756804180896130134782424500602598039132285147153534887517328209435508108706862446849862903601549634650529031732565857128759318236482593114149430578003441884474054074678251567554187592563451653046718485008951289824929199028459139395187409406294091059752614188549278120358714682222602098368068197624812689462530566193950560472661675901806709031524043889462038890221882585393470048304573210547244250367922762668329621869220095909040265402015608204375737786924901047739032314077785764301698534365733698344352910313184531288205848720014344201518061584635235022186830712498743207188677233020251858894376019759522817111162171023455215418007725315166464561729813820741453994413595897979150617949486030932711756198715015560164126632427757744245729671705416044785109819386234868949426002385971172013143752668238179985504493842271441821067564296379693731703062324283395512477989480295696554978972686617094281493539575836685588735312269616822847699820499731049050698305612125685409216681981578919525809582669614878778359703634431438775014425754842889216664497216014635918788341208093033015141736199401282537392733333292572058707789711244759569450006097359964624010251387977153509264687227132466351938935832770574619723630130419785023820588661638172637654936108407757800579383911490158315952622845386671204056432470845291922859798953298343344481210449091178137351785685772049704771323841067102448177382546516976109609715675381859370615885180104459639881802349517578475551828631271423489578258669585541002597851279742915431673166819591533616537165448366985548052085626920853153172267158498212286912933713759675408416474012417256093909100638863293042000093061470630947543932465414917439196407533860974143215226520511127611450846532187534461806633731690430956955425772897360027898681670486047167436732415020093611240813043932865847098178458175841719943863198573331873136342090794108560568996051756805241473307970155675675947411884730237083356819297775325958436030421400265707348733127149986683984229169474378399677597288686309534030968602752305289247050014326419022228966557862811237993830046778553444302680240816084727306935572932192406059372431216329299866646152874725422084844518387335446775237894494636627637134594947420374963029320690414691582053297206735699925340272695168714583284385640512817517633987881329950203092931041001811521235754481954364576981476385033026965276509314913120556259654087274100880614237133378009114069724135875058670377792347743964855894027904230389805670284324468921903938778874280129146549274541562763418534294469300543774465818039843407062941263985396587484735971377010623612959309948513657573752299117481998483878112571079594727070502913752708851847988194905888925984822481420949970090520264139633831807879571682654528467778713284194560868502170778537266166282894185085005769955554360444341386533244522785407525598004506926990830489907013813246065156024974125452480314415830099045287093550020265062295014362269670927308561269419036520768259809857020969189312355392383931748855766154534084274790296655388754530678694096958549098029890922986078211884431139565726493878441340072210069784539187596449238329560517922566831094094393841076425740260221191824683092276141958163239983764854960284763980856557045614824756075841085719877369380011144843763575991465663420030828959923669358398155827862223255500244569472928981209798648968124845017652968049125805933720274343732823934594700596102217780197115967554427089518384048423444409079517398900459540568161383768106625340539827870174821074120545014684174403622141150995545206321908500212096343956849302795228131259054741139389378165927665231319503374197186007708091923677864953134825917984524124332757940433177203120619943551787262558734181905691565114222693301157278990166605968208517345922813290239621820790492676425788996993273322750938499177445229994212449684183604976888556017871432721273736672835207463178831207271765552725529760638770066138816356333514960534112227055359369586264814543105638256793046433480267236999865712090544161073770946450653105151679199939850893636911948051937439093325489776621686155470001914184301237102534321560016500100099586511897291926122788577452775982182458336732653199028670738532036465570525973920130694564675707093589327222500264575461548901793383395919674902500873810502415988134497654996223242026050225822136039839715577854718626912554145450218136601943504757429494323647353933189468174652506729794987095461617350632150519964880957908829617580887021263755829462973070248392365653699459242034998587785669664988415488008440976907505873006404259375203292586043598820672383095995490339532465765155229703317321781648935299362475265553493879058027684840673593110918800960480449664512363500554695227334886304028520762354713027222065360721565861353216708314126189207978717881325226225212421817165045513532366118956047837411695678564269186044006758277130034145039503869302764089537569914810378367853171594314259814795401739791639514580661784457940932591208525388779948775196756097145509826573650767379836424256156698587191586655188532342388816364086566714983398337728352591319982309604858333553114819131495623689001890105981363441498678462001519496514078587811813972171805017817237118475679281548572680117531919867091097812435698332029076036837687787553656273810173388908691447161828734283493258648615470525935624392184154847370182914913400880880336375033507430232760259575820202807791485103636436639886328704127621824018286721486690131908582783647894118097288487639100519337149165383064776322390740173496307327070592161212464131580877587807943888184625525830259934164999401923594232469250906263905572288627623192634659136438192677004317720918750144948138515270658507327583429034300122350096857493591094151087989775528187502137425052404237779935413163470995472912731094015151483171688642832332401799489600932106739088291401861129056841136746500045140666234192780850877382172216070677271594193383914447154915063954288082132070698915733215370829352744022630333691537338294372343939220775926337092195299938033858153168418966170055421299546972400898233505010401904153030505198058158995926501635112968688116031099221279487475107724131434883955865483178694978979276459890220184151761843374103453384459698278391180675577491144853256303322440106977482217612487278261183039477364768421617975478978659851613565728033267577178069792423597584433652516074543598486223007921964168000611633308230431403986903117378359263660659694633018160988610524152980497906790943622518716858261912269497078319924710323558058937642008404140228024406273238820148417577170194707526281959522222430566768404335840623891230340142770157379788178582205608438022080095378609132792507340212123031215712726058459870060276645753371321230712791163720276434957459102084229889231876718534306053214237750354076796815838047632287941549260770235544846768232183447130032434203125790927296201686596506986551137659377992375869755170308171742691802113104844364953846152220806387967179636812692279360554093977796192882199405755726299852122464492158409595294430874118132521297125929991777218186124011917677185133497972454886653909521608708080467792314017168103750875567304607741360067363204463481380856944015528752013695380519943353947357638664455113243558579065077885483163049107688551652571457671942609535248367572277717217341682103899266946191462264787793410685899782763130017314719970736529681139322794339380055518015821200155183020710209046784389959785618845716047039143102145586943021404825262341938015242064786244399040058827638505166436567102953049811055409666539037451006187789053158924225228792057595069932365095077015425435632484533078583626247239559701162221869210484326611488212730639735655204179592200428703467745824085201346069238013375442061370186061635349892858680356839245424116987709706884067964089623223160058119024220703051343422450514229474428001712858221319255463230139044979823324528002307002090473930179400467069569882972505417254400556934697986095081500564716126777910474102399345121927145311348339339097865003761887777157152332963397988588666358381952191084869906129240564935272492632366052075911842949240891992167590765240327653168106988762605859071194165532821686955514853936339094164090582450033301651444939635316633290633635648009009321429536256335291082441429384889964018417166633418105934774082428577878555861294191477107115770705732797280187081513918942007932043599286404912479386107159768998758597435633188605818636039229724258051974516739016262260550842383164991866538080671908245424558405349505859624643928951259645153950526644425793322856024930578990354785901377568219656561396056546047666807967238675966619751436835295400632302203786012758472752990302325858712025858944198434263502040383115780703912985514497750890343814568016754765836999754226008027303607474755098396245110392463111993300588207472664834852139556512104067199435404224718585483770164782063485768078178126492506348040103953747175985110837617144600455144162778875338629169072395560630631003932097845213200050420806484563957968699483386861368307093527372787969196702258746653160612129851345815699663607257834935181932236472822576481867203758584236695494460356228372887668653495038697861378942109399155520530634291048744598567305483367418849339120189794739791813222402730019729859931110665360437215041668331785151997865265999198050881382998624756298137947618257828852343313256831352528460709206998372484451903216111418882698592151085737201963775362900709417313772202137243532849229615684650101993768501904815630353384031486397848793034133993340207905172450699875364201855158215093634917561102784877811830742452551898388421341865815913574054073123566703725217162063917199897141554469713389805712671695523546900996335866870468900488606718935389677995904708842674418905549415090983793229024226087687620629368553832821563279955277096745887467973286726969621056487774689887830801493627718997628168463449484394791885787097681347389457709949030522158475264495001040095600793031228331181578196097987200622038454728455914817945456613893819381348792426911414481865331050349562438594868975912302831897248161165205555314118888229380670230721978280112595499476139513267670673130539946653379391037635544586378332213078983005255713629481639023506838379892882133948575938513707847297459036041828534627412586558823938559840577655751327647331647691072095267855419397721620846723706356847812691401605081925805728372213645955721162581426581172078719516789144312000500682059727229287700577867205414678057651172768184964575306301504612935789494177967093918394895157185733373180515543514958733744012933239534237817703096303681990454208414862125534154344538405819964641806121203021847482873952862507227248933459677577318022785844971161631307078880759935510255488821499495980779022516331306690371119279486571260444367960265883953863407620106980279139604506410005119292804724400153340923780363037862141143649684525223180827585042155495195757268672766344001326067875679354739241995371585763397644158990889101357099970388457897037729292673926591644973774281791715235833084541662715293239779846615025746461992209467328092736723369755730226042099394421327894889926151977855968027976394467309658821391102499764212621387955620738588519790069153872859430337346262747062511261542325560972515791921653370165494945308746912556159924950411460411941003568663229285375146016632855566122370082861817238839581338897965178578865860473602588327985092189140591450255047077208579046287353712682430913387108207957205767667930761997056565250132993423241526397771838837418953505614697308623227045068896325240074126697406136583829503045537347215021810159931291876807604890254174909145111957497272378467411377535268454521459634688770546777999774727156345095751328927260491095691993879215165592697209886145837033298079452567962472410204503003445425463291814739674133616426301527695033217882037554991178526545905350127127993102285057838542704674036496452736483730933864885562438981882822199306145326636603695275469659924607095362687356132430282247345388660931860972313891215486558256375020414654746543090901648373378841743864282151466091644204832031234583999868627178100356381483431131650673561762332886366507046456058595914668199897423545914585280483331517582825065657275469541295334367391719630267809020514325615902026934327446674762628724602168551178824938747450087932593895191628950422293282224515756350800253053647330839439079511583082733879464432636379631262051030175512439471298065586821893060149937456941184296915166205137360712652180838615169822901689636277324746615965237091308384526890239727716510963628060669209490135178875146908436799465365064536935618873046187118680604741970669673039985319681876154308203426919953255123060404723226583893782664541589409035696705318028465018493459591792072359448006963557883944121815324753925514226681601942919155312431713792591559116291998781376607701434165587087786467446985640999008094513136513232043954009971927617787591068822885013174608778141393010547638209057047246187932884294684540629231905940124640806264982536145044687933920645480496886739021622510858900676820877651154884553488818465045667409772583651669843132831451468614881683586657975456936623818264368984758406052062114830554726972546027185537820265250552707681735701474328227506054030876482493720803207504764041570324977378493171450331864899180073507248613574001282466670835366202137257703213564176436744454398384141673516776229468639164465551988776399022022315332698412345364860397899150640120438644863498136867838523925038204856006270065905905443008925777110389420053659764395780309421509218758615838102335267380179056950490418041226973864136820650656550213816542282441299316845714885642692850275709652054961666095496588484234646123405701887809705178815123544179578585729818740747599915439661072049045784525310854604270197009230597623220285764336079838989539105864987557613048050251883521046500720718660798380051635913020894202179367294212431265336128362558712569267546782934266525745030547368711673524793641357632439895103008121231342687825728612526214473691946740180841107423725989878380452808549406916518164382956950540806409010247446092346659509313062676883900714046578906834785099206747675613215057054131114802887176811286261696044128649050929794359990507573137196917889064008961414881920333258912314826983956153942857983112753842606324724108631384920296059229774272346611055090359125599279263755672897217905733843537859923414526844132978961113599482358207116412749026599333802024998123555698810293640187183927709844407480267115482783487422531728444547735079941089429454764840659467638677496420013584418878401958587021549776341670019236050062083566260596219352295395328122076788086737079597853442741237125862623646191743981539438508264775979642434169379439901556902126071714650365099467459407669196534306807660626277715656567676630021235072681789774259120784478691135253423244437040911965855939227172862064527940680974693021828501087940794155966288160370103425056817206943818949502459465572539340535141822561950516447399590619573291905209468203539664331818068752686755503420616485353170350053220560323051115387919840617294789735734506896251722669409009222028721351269218485724560320110837902424641448641553123677909037504170234987917718741920359838890475004627305178797908978213335119644183789121434785337654834347898528860895877306150493293263258582822415363210441057030734639569829927237883102250046380787437141386878049262700354931635853282779535211940385312198310565677069970194933195604612178121676633584296344005459842393757521440464694175267121042819664599953523007435078321493369144177172164267832135238987346438503735969630456799563772889267781955578826667507412227021331213555387753598388753499362874633568722688951972313902862368674618065312447963722100122890839682817229772958297628389456580431463342934068024881154297855703332671757204453520305887867218490254685002195530810225303407748421555125523284004893411227559866380326957705652926518680720172268936527558924939780604373223904460947051040846390127636297600008153274329394830739404659496087529941390079750384954334350338271779573159838910100974359216766436323274318091101087338758964423682420608407220789990275271804844713403663424670728016088190620374329474758966326529067707145389900087329212363895776271983589831226446806416944732483042635499990418788151005584139306956206946526144352355029387992677219043457990163071415307173788913782529608844461762308742478341714914831075189691201086955812931393939508580058337399851989847450388714245518183491974587988643926747715177109429523270214908401776049421212322956104680488239005974790807634561022909119532837815230999825487503151018642644949116223313165787917348064800353844133744408225335961191472121095036145816601692788617173951025644117635770025389266140616559873927660960682033091374718434058592152258016863545036751583365899443840969795012694807675421722372442903839874781141609247700408964840859264226666504646908550442537283651357931342869595499114102394489376847723249386987335780139331671952844150186271509062696937923418692193367438620147453173695083126338510567784607802809005642767134542023701801076786296649735937092643427102277436909483883732277730254165898857459533556069174129743387213760302077416992393019533978363370135620058327538539994434513285506941753638587723393204214638716560054477155780165002980741359175677650794187092372362755165517950131981017004800698766599425997833509290181185026745347727425512293509963902766401685438572085996713203874419843275881758728761214904245908089956073342771150569193357108109983112326696674761148252986361687061858880694901376885313144535260830201819582420743809203356032272271556064405593152012599956625294434438292690004829386283288185279940522488118021984831924705658871394545412769642192197795106161180265539587493301725757202596390631331577700800409415897290801304276482207123569108969215353907342749928717353934141209847558500350470749327093152192365362130431194060774450963031425906532800707575951577822622112092136715558897402943954320275738117306129486058112816668832934830646982195008503666405194504601776331968167282331182048660461961307117756742633951138879638592454014668137983199171752023504555735901171343418761186854527681788981735866752512116463904793789426645253098918255773799871067535788214707730596366298229600953071957530319755787954996099254541760120465389652344710457571362889201431675886743109749810585686554723054531715326012494642353200516996690385481957608127727762212890007948790996507608449405168295465666526245039543851231792978621958660956728840112896449504650074130914144010101738220561607736760824915813863231162501947780252040758310066037536825656389026060355330698712244068749988511550463644531838208653430593987557026843064191022217176777041311703590298778134199322175755937151427114555186344717479149755640924611677048861538547090889437545485774720335412481815323476936282878088418702297515120988953682934613703248457425030519707900101087160935622662584773865507611040114948178362627192286042503890650378063929441197798065416799022579110075661403555898361070638426183934576558572450292280618525442984298706062909201797321047603164646766135760256718082336178830135446817740458581373451351795921725254606276916867355075948000725053084500405331301282393743469867384552494508591820828843562363368695534965364468199818148717023981817597697310024200428434628887162938030924749253199337050011869694125419879544548486292602900412005169551764634234156182219929804765674299876370537875273433332060261654131321559999604081432417473302592034013250262516050420334843842481931591470416645149957325445905213139331768176498541109058324813900284336610709990587782597980519381859412351799901301491310330551410770537493666016022012657054353800815722611843071407690193367921503040009607028284599649357443831586881509224962569760826737688530983773384312437422409783480249107148218553520423143402513478385813808371676099913805271667267555928747605787895356990557999628756301710473254124934564807434195502144388215614521900708286183326912925622388925103973016141774296106374867198836354661321157319335451287108199369953515047507583752129952237458128291387493430048726826833044360426324293248336432576757701319348581985817920587476102173612842983203916059417314314130300988734986052634733572026824758922906178055107994723842326228216115511499457768966734685100514367221761977007504252230456033515682315964524241602357365902727036901235442368748111970761766011216169615899195263702481596370400968082510076087661566925343512067145241102646775973728013643158500230453179238910058218617623173513732434770793612914970820042334813477939168413039000836703124821087297026589150604925111311471036694186425712009263026055618452782126383455707440259086574207721277810424720049265363320404619479377143494460719114356462828700936214496012564739015892645518910357532764438789716779431029640081735543801881471664957101293556867235993070044756405264393467784102739872034559946423414208788318810864503741392484547430888874456503157497801778567134618880010708284311902256958702610187971907552347201707162245763738105398331215606563145734715235597781203294077526395850740906255219169350599076415383454413654431461456169197115977986644395302097410980297647908463918240971031094666023688808240925613674594173940063656524311667579093543868488826196445640740446726904222529455016450971580388855217971843040962156680674531851152369768544276897026633588533086914138883029726395687147332194433639768984370215404661846277162445582301745927870308063102371586636630945543268302928373443636673563812908583056281258330809402028236787718803574649455858177429691442407397710371542320055514026834258509841479607605347760496420488926105780947545064336430856678340805742006823134608148389225862251869629452116539104916823313785996493511356289661843131608232859547185716755228343633978059094588057842735930107081724245936911569480400914419982329353141177903199027403722561448756410830608430487495134281704000244305864153491368518421365229324507820160916840908576515919221504681698420720516603777988891600716697198879593054111816041679902210246703704412547081356663302151196213385389586285468504106374878235846114093823076383275722350302232724862151664085118091461299836071392442528889455794400283397667911708771042293280794237131697764912452106761086839034081860084391376706060228172901160269186758667106417952566126046779517243894546132723459767054610983572637183294714766659544929969019891821830805918677132758847872226790980887880813657763909186395179536016136938051087813790454733067855070056334384231441539942125199544198818051159399892497681407981908906313367594835239093729838841889504895986373062943144317006941071791311940183806522281808829440209031295124223524353748441615191436657344628383899943817303570971594842000821827933930241788509873628811050257231040441000099050550704101599188771987601644164555575419634265929136793250729316474987124808290123336381651541839294379290876633223248946205053448087990087812043594647305744604138260230375530308030432901445039629094222968459595411806755018061982579513971040855469257841300461972306157037313886418171740451251077100598115361872237249694310391446824865816302275774827249935983726321157705885457058896994657145004850816471547677778509392994025821966685545796510464073033790951123035914179604391247126831056622343530799689786331077399512322186479791902390728045161258000925283173341057656601163871247600914706006125801446730023788449948901555244024475578790465527102900902605858975476423665960024385412065681366989029196928638243218315718337482946768000352819717848420195716983661126043086898368504852228569634825895507916400845226170929640183433023114554823137095323181830325023833332712197035581967347461964724925987873100752040480449427900326779620666011618713611021950588768000344960055686361668284280076334027482004786661362181942111094108753162750835917487184637987405531736167602340550888083951937953937260371071405288030057274369156472299469336064610647354492231513837390919787576843617271590467754736361882976379149681831250681774257022780733495059209159759396376938535247201192478151638268819428948547149372187357488799752301663331722369233054773302563672983307268655907869927936456888095694302643048879504191639515140688312072121973856563936615573039143919059927406726963406018763004549394600317202151310067887547747910492651820558446605594843406001458179051138254464901446207531999256843850314436652628257665742664414034246102701538459109092271693762048307248497175881712741932811086528909286668054129589102169186034091023609418015562308278563977622695041115897724653529287810281007676900560577535084172567207458968189757862555280003528730221290823223063653539482738100061913173747621581338158180247252248415202808304570247295347124942037802111385447502170075102691345532826085155212852472209326099317697289850307507133641264329297800974017761234047878288977381277451656673427760777879031584382462468793067561098116072970151981000039806522250417736153354592815103594229849250981060485028491151494589305511680584031045242307288935850223278479591646499248057581732380849618809548651917574855000192746591956680718143785202485879869184919321422848124472238364159602395456288215076111092698400250776812452132125359104148972590691069891404639304612174376027032081128167157685056217265731933907579356842334995926996284797964512904452309516990327267709062348066704927837848065828674393641644898341551994592748359677561686373426500974418984535436631968918987362615779599000271643022994457799277515526489215190561091694047606068235862724998278352006781430339788690636063146662148949093382321013545202795447960525619430523129911329751280622998211092986735364388802418681864673292401878957274156652207140284115910693145355818367502697187362805956187371608455263022376364161983052661258546492063152476088142069816139297388552853090369973968161440106434204586712313551283609532318747871687573878875744725517193657065494809608781694172737459629644214795921073027219995042628486877331270972769491481432343575183020344413836951322849790905079820770744338145737260433514996853538144211773777430926289204440042763891912401558741846702647077087640563619992027462153666380069720724909111324637449785308642170392435469229113248854480459375781849084512811114505317139343447953019170489085654512387502937440622641826859989543911302354082208100662319491560559593454420174488095616330795103807776877133126895725336316867286003070111329861028000494798089385905047915151529362507403399425483297535883991614026175453296525783117964926067134300870883703799199508555948767668355653270810623401576072428170850004232051538559738426653475540701061338750355521459211126704711742157832285957949488379038394882761832501089417201171030443449851100599182242042078080725206923803110178944508380345439773145820337920814397432286391241377450854022873310212170645375770189703201449845463199487453820347410897832971790985696788644964196339829020968058724829054842833538314322603334713914886863845687748063389867759197926349693096878929345477519473815670208851244160698248881480010675512143413908529791624625423670721761509135326084497716080863862785959250859207421595905646055469198574505264907719067619851990428082151031684875414391951250920063367054077510557131747543285954012030646691209082265222125298240698009233463969235249730400652528530884780675927174146780368934664355518218751076010810104218006262833332546005260825423587116181522264549140447730357765639377948536726746458632969017695201008959666805658044897106368093675712078510661286786606352753241973771295031193580212625139392996606116575991841766273718628388648825154214393320901730498612048223353352078877017045023273015569631719007913390470201722763295308617962513803065800154645429959635601625726927134492615286995040685052443532327163227493479361399024674468293024940455700885294712089459627640934798740159852879269544254605971096748506129610249809769899246467743436314446199121077092158969807472081896355985925409187350026483407378647519324830166311197696853835592028007004713561193538401428887352897111654177873120175408990045839815902385311125932256187502272689138983561379202710265385289808612131652529468129703535267035516201670013300707063388493987572874327876415214878002133634415928776049079325347693798618311796093324381508305246128871609881804633382334181600222932753873537772729858700371244211883319838895300497208615868020066736312869029974334120639515152836222307017341315381424052159886407555259036984248333444281173020322442640312711893275658972698077995095941930353431793968671168688322995210597236732642688849679656252309816608946922250605424976542203873108579673800643604441313559366310549504469218311991360132163608098163588045107805234274438057884874872046014743289693043038526140371730166182311267303879879673568305421965608987477011190894919448747991530756748216151445171127946962234673470833260714002279047039351793555128584949967500745022834524352425766380344111872144559643141799296719539219588001700988676621641906945951854988662436160269362233696580375347924791583288940548649260127034144927611237732210525211096691951656929998959231341615226705029241440715127337959461089729639489463129424263005358788409529473043664898998329010946292953043558588858356406110572949210852914540296201444588322985482182984566006067337572385217369708140593190153830163491630014904585925179476267297855044962424162334080328397991766581025757716148465819090344013122887953823874359959607597795772716424320354851649388094609147435028899663607476503380198757063023388353967472808949045083222431071605055773274777853724639680251813034117307406862209373072874492830591413922626143221557240381087382493192843270783499249662937102132719281612693905334739713272749490923156425646290524540603232934401428690885750945513557770915954645557523549622366491566822180975297706743789701617847607419792045638430181097106032413255819398557351380603736296920348412446477962793896080585242253346881124399359770635459774209538360410327109243078833258890828857168240913244249640747818783750114300937924510001827676606349299048733391675716448245919766532002253937273270471820070330118178860840177104176073771964283821609203550147852089898144243747188591543812260994242291665802760071135522946732557035742173018549374000611999025716929008889746286729087311990575885711252366505828871217743942533293978866803274656402893583468731882775569146818272238255986997049462844447065766265849628261094145993623521927417717024260962935359122888115096230313009465461734555137217175147566369261878952179880349574281362446433239991246739466906690304482431104308572754992364064962026998521533106114576361152471213759401017651009927961157675748579620879909256620902246505078727539307908166605568419157169485110031912207108792042168910687094154012399314630032419435960051329544021582486825641425572459147041424179611489736446263741844631680161776676351060638706596046924718602989666916536808641648032700561259278485250284631670545201738850836461019683367969020026259396972921170498858897496182323547842402407412189977003278134663255814767578423916215960371204618625376159828381759229688253437808290169855990274173921540600640663320170934162758462979094598012263047558433876200296423365198733691556448561419844140809067945177765231216911824590145848644259991086430546292294168150126393122372879171888299019489117248400254000541107245914737517133988002904790423039715197207707773958659504583606119863061676150545185606172061038422586990164121938426773721830394174159573066637208305879959214844531434467046478570227779533460339948384685739045851614796681443416285533368926387715269019025226717452973144836028102600764956792691251326564678090753776447163625010234855063543373705068752990606112954571241370167160824778194707810824294879502026364391408248555546100201502489308083240096112116169528306162382966711562907512867067854640964644395628497279150228238548974372513386864514791034473692745419610794983192024601238579391001878700195903056675704263760355575446197524681666236177896829931901899241674927627615777435989519049716476767071766414224769141916169977802708325375947437671156241499972015599785305111190612118341541610735689053403336237447936025744899258943805030872706672389960306433861704710057362563046825387562434949381522576737320939927232841314456092280030699127843744284129265938661763179044644052013422832295821674907647650486000213818043259546037390628184655866511921180001515031611054649798589160832352468123903884080975091999749223810407411442441814633850378264656526831705419519082874060150611375773440036659334738411683466418023442018107240009105359120920846297566629619206110049895925156077946403576174499392293409639211738505558462464111687696650506462821088106545186603573691335658649752807012930063986332668833801460547600596056311295716156127950508842209969085326851291565859372514858970395214292047324958663539954910127067712952853609644791096625359474034603138380685352538329149711513082792637800232671091006695252991272662844023111288560699687395233354043562506824614431040004852964091825878438122915988539680362884725549117721020499523004820028467202831436212616102985065427042972940305065347783792995929065267218877706671509508042486480988571695395735526315278755284473030529625049313312506570805103296928773027969195317310820319162036798546518511903668854863384037282946650372141735431061722955818835329409262215299967704218431986457333252384093465218067137187121867137158215233912717781793141134393574711423980605867421120608574884390685325990715680779076011104935882961312832235283611039176008921423014456306793002541180416662361692612188379727273433708412269484916046738533391770076356515201710334937503118028713563374603644145101583901184076162600265623678643337824527363910470822772246747800634235947682226418266608878800481590942008257180766900898082676937582072613147209080450518560471666027328521156752737218207281934667674799940664513487408938505785377588081393904003149457654073319646130228461332974661253100934529234664299004703321353573990878220699036024523209678974896809557002717361540218914611607415830307853153307002487038801069611905145132296941034097119222177714159868201650580499485935087026840645461820050428734464238357152836412422132853634350810206182252218653697838706471897537389847475221065106917546137192469722823755858516307645547381845095694812489849993965325630246370522254332906064142930366192969679306507890471224377397586151699350995400666296322643900121718372339043463505190756946137333788403133249089457070019837706307834334846743853064890750145398990500557932234626711009463584857304997977088804498835000766569770463374511682951987613853277911758670030143834430524016624276922703198855317002903684496630299719891462047136942341090620886539838634230988557747407031113526359237381548366212097426337378831645170198603355443680209273934527170602581901421608373896875646841756196545755110412075639088684230730897989726671024271440133412050777870447025550270930875754770115194752728145171106993133352297825434933028040092849141904996508022706153091149072645622143530165742851771446968009258023871123160242734324486539775442918272499164867601796921450655590196593870761531342147344615233240401623119353302117341093829142923357208519228422424881852056369812573253594995827199794451304710731685130906320444488195888018983309099038948919465276312636272554966035492523124708573616646055490535943238433392831172000060185170973418475712818416964284103232905195843996537380948115436526863666020542777719936073720803468117050628192077348308317033752008763219767304481578294682801379211913291266696370453061781699980495807559449619980170671123999425859829622692431706375671438594215512125918506631310500866662250576321457168070963537303915875163329726068858047112133661634030888568446370850851825660559377780792111493304623606666707366720410007667851996032294024811290752943232553562027084758077918495508057320289056669881232994877227509943619169147143401077108911267175306868071069088855814457550130095547382426993046110202721342485489524593870517696599604520883097917566838944371534482722683765114111180361209585502712949854322235503202404082143677236324901992420004858444109906780816021129569307546924661994559069503580051100283848055579085112657115025908001509388144437598389136143970444266593784513142575537627061056852127360319607125188770214171354298234327279493533642551069799657074766519433682719070838512909749909948666780267318375506185295589158126625329921476634537381472467574268672654912143537377209160188354362691401673394175702075934896524575562553894157680540066096810283770964785445105184058377705759437871067232586430560703310743896411733035221849734291586174490763892382206021250283230673535506863573525387434640598533397107509922404290762694383003349650538867171840847124654020049938588247427850667044954693563485720109700757325382564288388979478447148234753047715685431396398547795985819593995540360006202981979262873446083472328417118357021636809796728298120388940900324883791270745236601686379098647033959522070297988841977627382659381493993197189647609050968955665816404117198705921825555860401060966679735957479723631148811185580129643336530801103091935688271312418120203191679275295749521076015742192175253261227900309858879861003070084072742606246150289560826999026746028034482335142188496063317203810513379399332355009764814703118561155512915142376049661646888799990138948415215801734319715222812366925846203270365374943915699298740407682558609383164753759167581296396948585082148227116546488297285152128803075633025782329794336351856172379173281710625108206199300333576315942622482069024070038415048453028129265951917006537697345299075733455140747499540782402318173054793470188848291418970470594374473236790391666310614353859658132558433953391761097453170788340867711057497473131956081198712989466584230665540743619394090901941680248101521303472699709440987307204931697324449122348833842034207939167410843159342807275066393959363681962399510833668866182737514621729895479910038374640241442850679130738039401671841630610657744021204248441261846052359319804773739978588138681547377438790106545915012745282145217483346160043082869320833463479621113227221687466870597075913768695007855119059276408077710381056240636333640339549469732458052552932159239451452848336348042762093059292508888211880942599815190540676175853477999574147781651197165759369196177692845786080950321279044468650520278505396615918644626933653077505163583053708577713964116381048185105965453331136502389880169996760901928340329954353646347388576410572289007403622880410696154051569185050671992284641600360915052176536948844717995412389383422478813894775782513052281671473232142352504483353401229734991354981233727027241375047964578074505604580997299934488529682046255454935868355580702443883128881142179726278915383754745197778345756139575420828657534852275673659500751686805704818298227086863015521201012685253216704917350097803733882403500402211173184031579860862879686670232173464626286499677492002821815152114437562890917820729882480587989520271855944045430447897521238395370337520667687242754063608107864305824205623121434342920294962329558065639983028056863213322532095000049308560060081505773925807884738615457716235304791950190876791626869512475004523847543413706325003982876331020735421056266612586422300302947133368401510578613893808918940852403827101578517884143898948532053271540184495489612864551019347790063050282735884455954146838735393575278997298801604085777030512323641219465818311939310046386515856630069011873898817926289983544452105615115879996832863178076682227927356451272464919834831853484982873738740954271045912986020406398217004039643725558813556399130444612599864650467038239969179816632458724291372904915861373502575902799852123957461633472461177413020759366303260198689683868638761904412493853734786294313804621382413225999216996292025033141697490080544957817863340299249869742098624169574480053116798508584521135865698729149599034211059870027998947186075599692916322851044281536918021236175754976624965930004813166159115101763553318049915216682651931667459756053801438220160529431474796599510376776887494491988804135161935869478688810016010384235999639803016955802992536045113073452217207908997268658718560887754358970266200370315540710210931650156858650610025496866544075540235358427931566422674019092053807487170438582153756006359019730501765736235286771321284053161448756549637746096756665430923995705670621592783229594637439068766928470573254530598991235781630387181761290021270764916155336478375808412232166191235854594191790738328445960466551681398413507121573955449222576364549533189209856365440388027420029698991396492837291366533095507089634144387587578483918640092414773499266596114164520743701528755500296324018224046359306199846915610801761300491133860963789218024297932417227143843519545866790633664569591777590528872485773719403965877078391622949776362646351825667967845305008982354988327117463004625444355350622298614379802587768980725144184760617875170344358393193601088034103451312076785743322171221314224586628800393291519368558172054579162648896695515318687019472754245997721593655850533845257368035657027813187680121315925997384933246070816063224724391401222710661609023210469602295162309299098077348286750911666821151605505439924627265813736866524743444508429730861252034435641945061658906576423226810658260915015738394264990321961721047251272086329135345889007793683413260272322873511106443083971490026251317703823154915656035020097098731277882106022796255457103918491837089990134117788741372389858450202806011801430004576672105124078318460611310786813143236967746817621168607086371170461250815941355176624738472128338300051036066556592683001475685541279398818646710062852090282359958334351616603290433530162866686207809634066361271721659031201604887842705059577550676430075006504096397195745668118536289030596065351820999963037073753401259178688666630750277212215584224380798916187211981419343024643266906916074190808670293338114828432596121529375841909801336735554671293206527476137552836474722428978806711754709268339462279701124751212851963648947036692010136241180072185832630953820474578930141215529633686377244343936998823211089204921673030941782067142200626633597503858738056822776241644280390246315357054536435973367327931589880717033183563983191666114199120961277532335599255487329900524686737104459993440248771161310838108505589461197172577194922921182582356207106577788299647822276673266156612437486956605649931518655792678255783603484373440211826285923525531955231217366578510155062175295883820539860309354040923883348405742804952144052586180675406057186451738509442312628835731500318834519567691437480575247047773514482900445081288895901717957482991784674561163721015485941502252718406671858478373799019063542290666973377931271851280636036958690255466258069058732478440422862896322413540420593063897923443306528526167231692744802631472188324220225440988910615270237225140527635945840672283161145998416201968665906498902215984825654966501758026072126273922673349669647807339464738464133939718349613104352624287134433795448937874058716800054516551266447523293768347694431274105835274630236481128501006059903519920001327381322367747801115744350037856696078149838100626732228791568381436680970190134438460634338392812010418582105692942105197627342271612475848466184933372479259130473174743949372700028640935586586352039659017588018270728647203185166111086419438672950521088883426746333938632679327916976210951744592489663043695610829698742724982772623439030769765242950036667608159764914688080378271961206409653173271027345238612969209433441622151015682713732750107616414995650040975958556971825752098566186337189951887128232611256524608330421298298629584375326778457213242039080384903953362593507670023648156411559598832646609087969635366163884544045459691371015445558970814955553922206192201910610281194725334338004690772210032492207264422694270672575084022358481342764772427323444262956069572048695230816626073062406933367464012161869583333627107234319220264986648025297290647442766769208184549974409365522816132472772681180760989958501681377188176208778891784552975602901134710656701360020660159149285135103238937013442262375041490996337753692337890161768898216150620471289197970929140861089509492590288273636756216124271167209430030576897315824891584287755737273250725385108869449366277260584768846272458736385046639179158174625178949607341706486852234339727781641153660742783172483776221829159640204036381091950221070697101275935987055541805076371364314408219527750993192506506483147275261672093737020528596148250338555454867712180284035468921034522552687658878076468795973936005733115003331660804527803434376327993181232291245528740490785031735904095385832523989449959004093647403308806621907761518129048657878160391197249162156855882021660412081133096846772492080769011433522012279785278344947578445416757066972812201933501203939352829740571460654959827090604928006515594595598984615613410018262664464560682017148721762200150361372016413178810395509870387124897473586795958026665143319570556349447282486703377468100455739049802029046292477583490360848789399431321231534665109692541267125915233947543178291294470859703462889803011949702337255123909341908261921701206587271650307128653714156659877116168896639945793266367071685884912334316603259498699428735373609101111978268496701828619661686536110061902458905311097949381253829340863125017029541263637305467949877418600108032273604054512873118160634487617427206579694785852738166862536491126915562569183460631639682701827269064372558596048505310092099569959701051485506669478439406355847165566627865341019560953767275211798786033686976376899546709691213434897867181754819797431301656502179819678587404267380619962087520087789796384857286473633878492912502169035888076680351425957541828776436673173263707085229317578255936866125156434062738312088843772480114786062914357191024325961925560909799725232275938005685441958073276175560571997759813870067345605853845985554009256320916587739282506834492928623928605787380073514673291169522472024956916219164225721783866915667942140249551865206573729836390795422437849618579853445297210960709382415264894231891670240136233818876804327249480364982526302781502351955317961969128306935770414824536031261338136068459850172003971810893103147220352986767374132721401039991862319382108257954776629516388049452290525629896941541172467509904218773969946128749412480350267584510115707100221068145986225205728900121165922767876926699169908268734334362748335062513750285320865546996692025654901299888504718602936609504290006592793241385377138362185833320584451153546043347823976621838134323453528979270246581976609525946532807996154974107052347373969714899546109985991623495449714069420059730892777434529804232468805849574739640523631395828034384518505169700403751180651427189109569463380023123412832367610354044237219829040508140467543394772265398155997524938155933844193340944858588823031071041327051795899120522690731886946279364943540857151739965031468954072944060036474114914296532493917294802739460144443792283475576387296620700603270273281046935240431872223311019538549313078218197674795480988066300427526641400565532758486760384324838312626573045802956744068716797747118614655710571975461661529207310880264151077135060071357132475907052350809844289953885083759651340018807857947626933317835428707809384479475285782910028820261417137630551558871027344266854659846537973691802933435522348737313461615652197114297195115441610447662591237818780636187621724022241172215864059416023294010669549054115986063404168693254837262292805116281554943814026084436996900114464025937942649165370533026145889774962584773866548930579419974708633412592734527992372944911865822473942783600722940606223068626591316119052550935307442385477527087490614358342998750013286859351954142932028953366850181150378225313236864680793231060009965273223285599042799970144255929036572577076848257578671949465270870802716660282531234713001721975422473961907710387894262819243022364406394595022134616003254179626584102081049496919651924240024090600694564755787153323115857557849078957820035765610712140053553474178554414931180993817126024733536220485123202676940025259179949778111526794437076625535007430814350598505759169140319186564541166341396847553476443942023042862421556198804352865867252813542547380621151279254605983540137025932754390168672179160305086695819178124788848603320598004574684862827853959306582545896066237807713167736801416312970148310848185068194013143592029936040926630923044504932605342691059559103588880518212519799942887452239355810639181895320040815312038627387410649961275434611318924941815311603634240071565373036565225911520064604308725824108282128579749963444880641156057678667852546847818364237668288557429800982794740569467959376871812989560616027619819087614624016057683865246411449049172085813508071084480928551911946834383080636443253088173426544229035602034353444315173513620888617714021745001647039577099450082241243038751635094490383520850115731549207897145574611575837510087486761248974716929204668190864229040704887892897992750961026169878772141278417651812478015975596461985223707405983872031953672942256324986178298405435609843062236999770959256478890535952014894682429917166220998782202084804426791053136797697810405830474696302721876190718541646929768586546102113292763059878996279612952448474648302188121298916113558857531420532565480304445150289544007814358753610060478810568855515046416276802017794295851273496384832375323238130486778197559327377936989898269528874476678431987554116937731086771005443679389641871659637143090463318003500962463996804868691558238226495802106066056963608979896436008020319842764766832170653997682087190201597666437954367282782576498345634145950723029725940155252937282876157131260111452245906600474116512992893596136210416690757710476156274450022668214151344584705182012391508655136965646791977881692436302755437557672875492842325178833750351791150412832335751630867774274631533892411396690346308429251810829311087589451717711303563398795170809309640549925241311026726648244228133643900915490937118404522575695364108624825511385128780479445666280039035966213584786700213819405822828930158362407468316540240497797067280778432036348485083780200844496294894772838525694662898618023867025232694289469874184687142069593684989278028265948016278497380410056415484911996484124384492918554723491432617040240003141017439804327063280500151653829344903936298478809064644067320662537686327435853328002520479563191001222237591994163270661447725699352591904547802174424602031112089625569156717417705329494836210233794965403663490994188279597148868462044815926739949942667776344230177653629175975878895056117454994336265629928207695549086902737231223673051641463229012201113849758370407096781113282147707803001185719660143308849134527344009952585243982721862556186875730192348783443838301720630538342419800207406145051422154644026892187286492021671827659433065531555448168622695261637546301192631528002680680554067074852973758721704670794229036425613005826121844474070621830927011393250422977701702508072444281131988227349511941819837272569427422481470320843716084590660104715991959488939738665989691118544325626554016038402663708083585867219113672202654579842573705227229967241118288515177777241408539119870192340186883899156831263569017412770934041731735202743879004679033007781523430487368322617804430684275641443267510933916512111963033520842169270995547819018317065192216838858094086840542593486292303193802357718984383532706195206719168322958869587619035124893364006184129327025914372964446076075711159797635031333137801167894822971358919329057312758030042144032972659188843348347075983665914436542857739796128642382407185974469999833870380210666389312854869582373630332973025728127722678838584550928896469705495242306714713695191941902961808068036922171012468597533282371150258986263724472715989387270232853540319361540898440585930440202245947539108415855256252655621992242730274496866379880813219412745651122914995236416105339016593295735409987616879478423303404585121777604867136528192752794008244991800228759326789416656308545354920094133746007711465054422679916706861963521386763957948436994216948240451211812149692587686969971281163566832874422972505108825421889817908828608863464390476686630745182509863239746380845238871057535679754531962170644346465631771352519636194133808408236513301775963451193200285303732233723217990693474393409814220273856834652528646807980101574755175445904661792168154093146368515456223382392849966125053442821107741080962412249480739116838474832186978327669771558422733541986132571778706829441343332463418243772738699975481005689685794125532749972278213161797230660320780990635372603556387984522578478710598315313953931723790409538417523389453553733420179548740063576954627349042443110089899349591032160695622001101947270413429804458634076577886274581391911137320481206510965297473617200992852028668081134804869338438630798555598572545821588716066072883351740279908143150229547557631787901942144520049087198030738519315728135850899234246789501082528779625273109911402183275511146024783479995462996403352347456264727243687947769614339072324904550049943817586043494281093577524899526922443031264585288476919379430993194927137394965212410954842666424302664459610720949876474625170758754485146937027925013245318590826500947309395256608876946199749407748341937552358914152773921186995312382118978329354876540719446959147409390210873354396754016876922187364823320916156320603787037534830569288779214044991869765926197295984486535314921820970100138921155176081227351804704814264155600230700717497815637781881967681142486828619564391976610696430012601669316412003810815154709285664701288373625557764946270539294061170975340703864222907447030939176596611019010475122974619579060910733517646533634587028153246433910157983813744217836023778619783584902488552903148503955684117719617826012208909185890186094800230604580329029911502932345860667685979884705845681006442408174088898728120287462702828180945950134538546623694371431434234057140447294195426763552613813495053329425262786866849855749730704310330861416600099554847143136492785380755660718310583464729795637762314215133411456839342515377371618982288580368008742759769254351523443449886436117790172829143966460222085993160149422064981209541016428656119240969783933107392359891784421333714415095191809223302321781733047993873341507254208594581615648934827651227716310592185908082867392931483552425899378986033902670547807338482610312248637847610247067512860255708620228711742717692145268574121345807476786744659331245919222852567714139935945156696192574948769673392937732806557055526463178284069941485326886683886572123744802709688647313137015020567067418501168003489699189064709925971790273405460641852945837800539074953573895747407525511375460005525070807182948233384098253322156056020924501097986813961366639790076592678279563003471223468028193991692888603719844853216811525445904412555778592344260613347397794569011630052487568064144046491710545986237888069338448719086863452059505175855444256748487208705429316020761809885287515062439410026152720080332156598237033847171580107390542140054779911094823004493538631757654275606718186888133819500200847167444597686257269742807840694782916224855910945718018193349780879002241936389969944307180630171975450557706839771547622303137093740640099591001708983645283998933275822772215597702802789923765600184802601485593170212894519041811330423184862164729121865649017101874651758145342999388600948999403791450621129644005719071020020703591567071647908399250078054867402126880578996180790994679190877258955828170334764781551781002046388826259105722691837716602475448049743811551993817103532757322114904835288841083661057367855110261632389215133258869929218449853864750400211390238147468650859836807138219474232920557467236957175915654789745372336129036247701461066331515235747342932211327662090606783181267914541452201543870155162535210907921818008292047243522206439861230396419294509088282899205979824888466792291915196977108459981221172422744171366556253060415608074643204267947681711680376789411238982414308352586853689975697250668253348168090285685005883751442728154435560513778571175258694219883155669489489668366158593479701948951630485388974930297179711241166789234798304449777354671602696729154914229960039646890105549592751237327553845370645969540669237302460557965272815259977588548942556995209780689517748013654693912683128712872818713684715322314004167761116891689473010899033961087929821179562992366853633409295993981395229840797866125490511366095546376241370282994982837847062982727889874702147656143252000674900617201495815015257019033814175553843330130057957066761229134278461049211503882269397563079317782168763237740375934697414051438863718711722201834804162043554621701097252106541386803807665886572654498386131358945041288205337133883026146899317395367004566794591986381659572177300309980312221923610129577290892342616730194236493210432304173204825657305784769004494556155051028043384772030165943007255554625345905611932634537775070344989047217764531869350603406268263953853467359047159324436916744971078334559585702748021406698513117790953719897741428349819619417558445852942540274016537880273352551008701817841237906038341437475810627669113525345612393049617412791125751045467192288266334067296778247054710012984216965632138212845915309671763339306432969056573744859020542349483386070087193479613549431074089186727781508495261414605503130937927617235986885405390206574559134037188324203334229929551436693927145278235709058328610183051447420327186867415612584945014506746220714831558729841734705944072969124862485397413708786564012506839001396159667740975313217332469802183793427071962436650296912338907988828077177604714051897579989554616193250155821504355057457501250399229009868465574984716329528585780030041491989665336595706553224099886508631793293415747527481350422959339189447306933901289239661937388725130659700080208143716186126269948313010754279918676604953843439791565163503321520722946629377195889844377776453450843336652638422306291541668904576669987058200255309605828403478629452854431139500813489099825372496837012008238856018518356395145706185880109699463069613735005138379424114414756287283821916056422977451906939936248829706072731971385550385546523875912525473128143011688428524486820880924969850044110009335951009477518888357906575734621906148289004232669833419580536384529310710418661361597612615750589290766491537692287792538410451356060447273924109004427355435033377446397982730891989461530889340547264040462108650800387783681824021700699244633722542857779000495057590344078916432514748873955328680910216864042234055868281619084965176664194737123363542350742138679673908908244131055905941575474914327665979865468114709134708956308882323483838110391661151391234421347522601380035653634911711854264516132391030325455681847432782802764409733759112952233938706752722663844426571507287985379705196086804603422468915802246619616759698490210182469858606026348240913740232341404667846763867155228555497881423115765188877352556596921843019090976790604282946360692021673004458332469819171232617322063228279422451424418758721344361137113079782715050251810071400322191879913264294036680334047666337873303353748837110704845869555999153939149141839389030546407640650678558972475685007898158549939663183055742535073571935891775344317961036419945319053129523509506671997996452211323282084340148604912110333678916375581805750372410017750313521199530070739789487209645902804174521156212112786765687972590437384040673826796493808621861951829839930366497146908601955005030629992440334629178589008323802761886037046574576527732242083448207536864840255984165160666095326436699221193488877734168281034298495837113105051582687703521121928216717030296511997786128874273242063134748737774574597237796157711773153940629250163532349128604068499459302008684967528205730785105130518164714302018172418233441901247083858944025511382115475925672452873698851415955530882886106637864304195668972635743523385901158744126444290165153081249016503219414194501125765729379676553296099948915098071942602336578600370676568296918270299101433972857507701148990378121875524585261652104802343143599373962199172884685974675591483950978838482710970397065549001467941396986858621055931241158879585611449520973599260057370787476723544300633920033566878123062384935518195305552506157824833186163174509242965776436993891468319548200704857541413189923117091766245260807101694259180446251834807473895121338881768234922401314633367461606215934109204626824127128985319655509212854915113847330689810952751202623865737918808997238047700913889937677372183699721724439856973852438452618353016599493793205741481610313064114527060571092523332858538325248286722379527239447974233099183896547736801234667457762558662852203439304351084867946089378688725814970168704310210532811496977306100098625302188173026459128892580540854706449332987456898831973011670570928568378581213263899972501218003774855180510859758433170507881635925759168363758975659211639822142811425936148969747581015146756684447939653296953118138862619384225276432168565193636321032772618030370519243227430994041551654386286279273831701614316327695780170832460768795381681231586513014322709129631663612615826779646328105126124798235607780281993558467426667919060194811898801781763815907033459925421118526772006039874805853576101474393386827543142489142832964676364616911293640144908097996601252670903603816906325236294937512626865624968830491617236494730490746137010666274685761115649635409935545966787596077876905498947196880308733467712401158842387034076149083570781788633658008210545962650317834098848014312384297050737080224511750816049607555659395072419094878999530279256687460287927395760179460949412880684485815815240361203323826227750914174528862079737775576847471456378979201805130367887528384308977351061676714264985832634983343880837126111955913208274736183899957249395623577328085862538091083173535570714552253065830850435360430987280052858418330797682990316198564854926006766579677896745322587105251649306621378956359432799796935445811618249455209402736859772746051592993384475962792215170717586873998463021903388539303542564313914128548751498259074211243061075815054242648811767641302718077481248301788609843067614242244743407423456808136077841834801020295760834212834595514657928644747028934732751595933500346079853803093278866801369784502634559102138793137965460848572242720560899502530510422055914772034895694924871563780790778273257347018046167528891105827364367427118521873410145959872608311893326337898703939884030644480660821336481569084717732984099594960827477506680009396374486194307788007733083688030714697688058847080891367048355713162669377249246639416277332999918799999096705604844619252097961609285940943942043289427334509173294875294882098907807599455190025844504066323735091927607887445202624946714580717922544501691178126050206786438791534800764635175028373932551686650713016025468757253648797949917952997467790555697377224497035280962208533166431252905097795160005256662356069635186899919772232627533228371934354939598105900190774541193933437220801523666763801764865483606812262288080077491600138090964489385435745487804834363936081204405620306778522238435235041503931418661423237041723330232858072159783971124034321375244241902332191464898642395045220044292389591546466195744638224732542817421465970281925569581226681407977130993596867699561641389537599036129066507690559540450117850564153745492980441335350064179232604284857538656072857970437721873040897740841070737255376620367692114969433342227595944359478122498016886633982846396567211256554057769196640264652517611638147949380791763973071000856332494356535330133850370949811801267983502287097217336351635898712401046417705848588210336905283694738412921793691950504814848668607893494978541753412694641979209276214620999124440965500417233150319004374394478775753986603833435856939861164892657513735874236152699072466147235615394831435063624148936148997819625371350350694573546097872489164814566440691842878541575850416972938053954661912431276759630903197020847096032880850677343858093847859133503770401300062896918430927157360698268190736277944370915438671860137775500692980598719558863181378154606275318578434008486688374945448284983838093837551360437400576619086086810548614843695615438149606530690478197890983911558565693361505417826868474260058867004330709237836169381290932328246652281162738421840420166917526695818072985857113900367188082270380918320296185952107508510534540827160086668189342120592914218782631826289046009244561558278861674979131353970036763750751492573169302307825099468676457226500252301760059422430206512056321464246043107908621950946779661861547807376901604474776231094102710826409582852092857338046842882763156924445316117530069298857147017248874341845523705239412229997968105781852483144828950511674766581457954041604195597230692812081900569732599518053016750747212717250731622015271836023053019637699453588980219756214065902313269490382334608768406162919424408285174116466158144149202300934918043022283136754118176386338677092907096809448500061235778317103031535808253369262349544201746715370545529430462398067600513023453545999201235505729446548275103701536025142248240771901050572495775809760630744842102052235093473923982765500356813531510527351088075867372913918296084795738236282914517245849619100210699990690781104686189666964680488316285332225943781166505787695696280822972924170162863327871180143192330083301685396112184785678668492300020516682594709823006358720181859859609032945271216879515419663635519419940367110705576956936652452038432238436553103001243329030855668647824913187447771668992147855560659119509709331512895392148874278489385767672141583001325334883521241688523986788360178110665018495126526203461988862272973770809098420128204745339656895840623350593702636395989382011283529916319301259963717472381208133168827464789785249632579554479124663598990729738621314722728287838190451788956451268295731922221156288782860061246046554395007619942129891776810483710465264957243144717464273684744211712593824189328223538370415407260228405403679375614156826073261594857269580881894378199679271175460458798021440379264821352318835579739695358919784096825889722026318083167910503881524831702602736860041073288490967458206448874203578631327851632885260429374658652877783748258504199607307729324092013533838216082757602862301947295773908542039797320934473784785828196829082946345422840412177577391374011650219520038604271495304500380080731278773695041985296875462572161472366880341835201502809971770650385115680655260987560381770461360639282487725159382754392897835005239342497056711653988069478825267787505242472424754411320145735036881838457831823085714478445166311704990830371731990224703411811193984110289086800418545130471680455422227905261220964820223809739589090693689446968512655239914759102078088118549195524359955402102046166134953139971613028232670738302451410714492198143327472092109597421676323945653289526230762458648788391618747280600321971820610872499539573599778014065477421963064551362759167499945830929158092813402893524891781537737358538462337919807266199828886901681635895917639090138988154053417918257782009364154445538391052106855998289545231075481327311743652318888191161063941703205580651464415444514785959815685875517072017828951933170580660712084084320601238194580407999250824151845026711437012103828784994123098036651260778558723423154307278194200936502355767615633890732486814390551195194695793349535666524596250764286104418233506762235494928110628154940153383458363607965006464732481696579713140217250721974806416302575426268689767657716649996391887422611397475389670298989650958638134748414516580982072230695820598576866682865165299274531906078293325953660371367418283557353746480698635571192579502777575546267406539788877064686324678573206651608258152439057758810207885658802749946521517761716870413793593783152971431408139459341717641990787358047326902641107067362747588536089871684188591304674816604421736491362273991314186068754398317958310732260634625471239386349487555471981348293325433569373178491385159329584799512922123447682238607682633228340350908475531462516757182259099702297737131441785375585031245358215198843287359382614836446858357582481794976359803125941393634301991681885646909186798797767490130892134797194052228085677707539779733687049690866420975986059551789392374491141204816722105088558717551855412528201232984245629624350535347250844281831285289555244277919571719097999511234777760788069024431323846415401020393909520984336818255893227718196070086331971224391051330918096462653025727183530585363947822817054044040973524111533203236693944600873574081728639639148855287813339495570713138313081727615712311844924675859843251803791880066733245027513380608296337309118115310206165780195762702870599085957312651314770745147436572198485415343542314526929180677838874098050543714043556005170966117279344443919590236745291147840458164042717745179347577269753615708531075886115343822745201235650788028664332315068763121960851123257967251562214587630510335349519620221148394455178081239837506799729966903032493295565100344974830848211517646206276742939394239667313749615368850029949375911191513297628535982136605374876977721755981341885912436163233741619792268332625677339365118576648561229428565716707672716227563680961348825082795110672371879779433157143109620181982744308360931516407032499827330885789683267489332910110621788493875439152574672119765525933140552466355080447123953732882412416467607203417671934810822227710131130968326427139787036549891633302121147424220185283412682306550324579348879296328135173578715969043265715088478553080800307448134461199099467630000458654173155975526915944198688954684400298706464588887261702562703387450873454773749168741693913408228115159981328576794506757094159538886068621747424579657257586071060066622817193395153861271197539478213273198539701502087762510494843883033957172250707645346303547601348975496728891341448896737883918954391788503420874567063166706026144635800565970896420811350220112661353129245961428718172240682962186108168462962973918603736652927365081026349010050411425846382247134020531961804346116284771571833896946993972091860984928108293961932356280677325707957919612262158834003285046927151370261193994484194139803262379487684708450637596535747143214674261597584416689760698630748226975508728993644217743392740246390580040225772240618136184950498458638899336450805508222551581067105282712079889437257045648534730731464649294068778683196310747387506966239615050765483617949236439694929595965825737084574001049231294215999073090999780403556992359835407245075480900935137355290783267650731276961097423560207146540010925180508067026125114799161254551987273988705603776562279637710604346953503652871089822242134048229849775445505039901654299931132028226001332260655196677063203506278645061932175466181606470490501977135690320220067872448590254772005640930590314299889942607488291617428071730451582931320315256776519118381531605122480232142605387842727230878127083379195978190104510731349424107801243535360353963104158149906020886719287921978873925713531372111618895600017392855364732092924840689706442656047089613815338278264504035766510652975793704118751635683455007821337131702273132205424373204641307732728618459029211727773034035205248935750086084706526081383771433588911833537115459304470232494152290044574910125531917495252753199164587658470343184013995494913709096913356452202156134866390782456885314974453153766205687821245889780435291575075761297129750392687840709394249081815930892749015342556797594522962168312527012362500739297747153355817596780094354281415195845722872817898123834344722236542962663897121097176982611122651913764488462184367119030552454411476390696015318837292755727299297034655554732927649131883578380310185171823445299943214634325674681693345427033283077290307774954029619707207888708551973839765979100604796294714816650453171597866572938197360594920891810473322550546573358159161502564960052479574206776934932440496692389969598366624796028331229043423352736159806471096456949019435031732625990711029027563667673589435986773213351744204616353022400141086458815706434148595728839262012111333904388951260437963871042771690875057244048689545166590686631977212042543028691107442511255994341372992487664037573575820291866662371623422709754120914900544013097814603312992063641423840256370385218234724271810734290382315588773328475990185514835415182155736072718800031815706995195486397534958966183639084918728277798858782969056403963396040025948567784099804882882418693459304301379482437662694721199053298862109341389153056867490484100462190242893871728133905736284180232204085058892301406038976459911142370108905203439735837688071829290386997254988322988826259812343933621155757720631938012780780118387429928103053787523871885485881754390117168960016904495594124248926738972130572240740513640888966691668500180431230372990204139973882938165702185423383258609343452675919208229414414966555733909068017072307268680328754448641718751775938183899363331064244888389696184680232930356011785971896179806531595600208247998723094445590852895620783670423005706553534496008177109007516723442555118081558096973001866084957070946827228426942288897789530478387750989268802562502936392602323182752557179877610206067761738749950570092731237254428384458781365894224051065778100778304327651737887517626281150771241374267322325301913738838013229974135601689678455545794891062806084893227293999576851651533723974269248806401180202290281672282588036563221601912883144122050604819481415105058738848176649433519240751674121842388709217656271233647206697447615916207320783255060491794649541241008063225331304447354602846996722218749850864577265943952293652056816880355087848922612703690974917576445191194183139099387714456009135680330717069979749743841300042514583084947693130088472182049554637211649874055123856731316792392794139494564904451149570930877059509768733645586131992118933176741776068884814467476067779778343636579633887068006070260556824838612494398218920736032780189137350220923903639846339454193121736733235940367666080066151257037778427522850056184504696152676483120609888638868375171474301845201559272309463353739085064357186786808344716004704451399442595162542635531669134210680358650925006621968278221142958171764760520288282160451241521601108921746458040673522724984030277445511567890955992597798252411889003897432602114017316343465619780823262730735076686636231341287370747008556399975811426824601794444668660750290604145064206097705178974247397560446402144698494500405484959582786289202677727871464149225202780479700443481873246134595144069966087628336113967606122247274080088438094483038068303082301052282536580184438038790670802866636269942172449385008504457050627458562266548015047981305240726903258725485163997377292691236427542473624472601406441701050958353827289593640803923112806630136661899372810525687048832964824204653965709751381826454347645125171122474937879702690007306395095052203130974366080174152248085148489707419856559243625758714487458713237889886102266354320579670919593022574198183716498888514234114945232123559429517397155448548225266313687551499105596600147725227824939158641780902863367176371204956116257753337369665324320752606142598284411170388384510263259000965541429289688709923152241493061677433033987996359721506351989858670885470392932259542755371506610809628434679480041235668859448035989011868444794293456807294997770633249510063911616215125584537079641973989070257324110265355802597096924759667863603583813778766011188197446032963373493803008438658504931128260713993337076368399825026811023269762856866098683258535495898222149529672369991486184230521248401866831520859256482557910483223829133620325307803111038932282769140864294002171939548596355394076556839967229652371787838175205380453731305726631599796320337897742943164488031098162760629276162689597795601615460459400251765448627740056468448898320211661864153861513222821044144087547193960267263560039028635437109298831159032847639409944909062210136943058152732455849331417573883655369694779181406406673960541984994782356715641587644551627571252259863525136443893628307852380330066414011668157616036669525762699164702162658475140224250908015477703818046763771561092575225478790591365546545798171861268585735483752076348917287299954091171428872256537991047858338028516541168974087967289968460717072413893643113143720636784061407974068190867844548184329675024916516117036492146661867430754160050053319421762421754287769074498358572930016014534109593083299981242058439399014799431984314344031874308510787177507692701326764798196188771695789287783195952601963708718815404457178789395431597431680546969513907925267747677940464712944998129001998911635197005982740201876862309814868306924054176963396226841154936361526059834930117943845811370337557246642289576888152851325955940125055654953654097815283044956853966505548175176619408568996868978804308946350040480079849265836003325114157331120613382512482262320696399113987224475595325738650074990305670886128846628105096421481975123519735289460311690107977089778486875267402128851672650380996026398709834333811155662416815274672658689657419368767698663900793340096341840391773676299025508204317783047544381802587991247412215189558816242550575326619190776404331475524472230037644278104085344024472451773479138949092472199011907409253743830492357141361493420774768879861890168614000646462414272067695713904066141042018115915796704947250939670470348321787159582963367463205099616614395368651378000918100512086137290497185420309374531011846280264016758960552155891948448279719394166547845084369429007431410465723495214242333293184641887332134217335067116116554599326045839948785340605614490256879231720632680182604036039731438292877095912215782320517451860122181837671525959294877163791577553399816464266297269625161524357531073483735294321552967812260919933898662440685803864099299233575910492799242908538068972353822389959149870391510602140300074269980084229653561832221379754981234556833278684971772387733492582025241769362576641110708150533185160028118871732982220055481430926202643038115777549751329670334238208197550946195794906203649558741825760181228990386760903092891049923997404082045024067467036135528864685696256195210562524062902010399172564197173326122037152381444882697082829366548483587914321696745926011923646711002034871381052816991045105594367919586642933191396232626414626992108102720329187740930424573793415189726170310524424090398252470980386618413409840279705590036664256568731550022460670084339829474155222090028121333163512349128725604888431825877051841258133376201729725353576349506798232608625721036659273871286857377881124446315605210550489544063950581711634866759613768528289556327102523481449691257611923537880993533395482980508803551744162843196826140337382958625977043584651247968561858672885213060118502144284625329671091241715671124894226657931452123370067679750360773334145962439562317198216597246383090465595081677000226324082505578114691355634316757354386223648376449203080436827640172583956262215765322143583945039433886524892465132886586818326535792910449094090212235013188766580684495071688024864018348666720363765388348060080751558335665824329358048741485125126760734782397208259154267111773271364645728762278473025514619854393950820628524847405736309636615724376651238924067013735743402203448877312951879561354402348737557591930300080608857241037433326936076809027409208320418569794217204199426598842914289139763958531687537969387051462534896281424776498839095503975957001452418347488216004533643271989522485935475235470649118353093506911393937386948084849414764942987212436653576942986730004578227130293585961962065975873934314832849515553228044558348093980109227085431136486691113835501117008839917226778649126256107188445849188165652660807813388146045596247585669490620161005089568177604505759027832997361418932040448016554054786384849300369945339864147294089426184742530646899065253277509266266322998424707965662197267598805652364131383825168617171636996155350293543088362721619946738552921975062400763546468158222071426433560657053622565937930573061542101640798798260369060302950664743491766377554246229345760162145825773031581051096112769145031734591745566554108640472488674757310705777422945742443567299622679124948434133726646937894112083512521399092814319473588237535236212631100635060186979949992772643003082983093148908197803747312600163340104657884043343896044532644448434360344357068240223198294274043088053655398584931555996023837604289179690244879481719669938662064634590457815036722657766828160544855280315812274201735822169390857783336408228411134638261163202598357434498918316892837592389008010086361714694490665025307249295631781951364254546566114067891567283025120640909397794334628030017278731383334174052119147344672326109779322728911303614372612843161820898890855929999168541089039108950221612023420584289082127466539876824829259204719081475519703301084846047015518452776062996436434665782271156896402139247174781907618124601606679409780990008069082552286153580599766080409087659184166130526958031269613284290287508472887419686599899741818635410548453741164014876731037238818712991962196313510752001196853385092303725987676379811557873246558946408034655538675738949177498912822531260370641278145652448497274757986560433392554642909877397586221467250130161362150916167563289938514913390128290908745762729520367558294140684913123115520910724594766586801737269242053940412172750747561453261003763093632592345799475638048594695945674803742095003308737057315717420584634263879507020936533816700665063736196974068749471247221543749582350009119740274242975140259902991594760417900270168791443443970863749114132922200202128217681547001839253325658978349741036541586371718068141920662371809591856892475267825181287923497799401618748869827344940580502881248663018342585793556558956489149696763461467875963150945251976444977266914952021700237793709685910492205258666984404889025214234652287861677272629816419195253392426451160137092402697457147469032291176954553381655741995612750040727607955367184434245514629395914919612729417722092055301983501043205091771336431265584749437208661142946460017326053523441657138521467679061333018379914315003023676452328594180885230394643872616314703581572354608987106569423733814686803675910496490225600549200830280769321811762770035589964972236021105270080778136555964893498993119329827446410302286793191914627620985394981542479198718341657007183199606672919346327345805505141083787537298513739716584224974049189245058970787686306554723757095905279029384769180901594122313971927450157590915181495696628571227018903461658252787933051558278088187587579159823382935193987274138000553910936056432088688945065113143086364711449124146506560835778416024110354685299954481220717911382748854760307497925120605845864916761718826770670348847961827611907996388192523479565481074765804116447787596960217932778583626795450271122008423206020303121135870920836951123776921654783651386255551893767025975246015915856284287422920300307496462105556609910663615895187662863590586908815001061784476458400132711895166723654988007965435072230309892627440185612305197561946506344554622063119867588093539892015919987079817067399805185479032358960171555173657500659113709325275165788482467101031406864779750612824951474547566227600778890547904797370160188727635650012320755403318341714687731308911323740005668392637616272712660893249505193982530159308215063707367557909508154714522296739399080617487777985377734077877182739825215943242656244420562063866482826075145275041167504620715064778225958144870415418550541320296850192216734472554248073534621087895110031517708268475499789480662010603538915318643337305706878717243095552374770616790777314022940261316667925433040101564764155110113354797384759600185532607906313700758340730429098683422474576662124099238675970112835194427623212211844941136119906037600086818008444966660155960370994380769452470986262781556456824600757113662362566642295857275474931655606737475969145113677045142748523571915412046070588580091573664531362520790063201282453422493417850397938937238994007822604467381612452237419787373604686632346028642753659489294277742870827474045576732020287122215629156238137188392629151876051825656545684248938982369912349139789149120562131029936465666862302647286628263176286944350770397736242904088346193263270302397151638598965984742685815127988808487487931909371485044090914680677695716454688322602521103201445241295620533384118995363029627041056171081532156329973836488677643853038361512597181607075825650126557172318362293716476131794374262573447260914372413688207957896313683786042209228216873826928617678317184488742589457587182237806329284757994310650853361662065335716184059700259531484087811337831237683161490571622159738709201086158245384236359556530579892575934081736329206814495045646917017516324539668123195669278727351663117999719785325253264544379292026035871359243031412714027295872148517212814932863517615918139015893420884750096933229829904936121510741714835621828512349834242384497252082965432217850566757352579057328169132123520310562129485485592569376344017493969001318645167278261007012723119169441157024365251427799773346568314127227239209794163576134851456932642385628382335722656059722671938958845532012053850582856651196339676485863915275642154762623874351935174346379161311852465080276720629863744754505227207652539055055173046932682647257170259459675474940822397413807482643086016326015831364234228374011305645556676406210800682125458829877021894282494392240547119422398582852322110878699750046612431122221252121819246082885876926297475136454747222434344587088443237621156205867727488134107695779932423062810518551466957864559252137865189742608796253201359535247051200934023022890906782309765396324023128919472538789838175205395778055845710291823679381567481785635451893498069881411811895933266341714067442576316050691134846783580764990889238097183934342223668540366538578549149621118932601768030197428757548024108644797216274257397212405511280076070313712389302999237143305986007419412053505157161407500044545261119636597922092404094875534789653127352731627613772318892630135620592970536432404213283855466573446356692357572256189009022007624582245337022240139451642905210628366528769460989151636668646704036493596604669903753872391691819338659945372165901783524140900930878492249158546145254506013577078302797448410720249103171086463285545918528326314342994482403458726736025444972335879143915423688244085171629234567458781476687694230940950829858979560714735268317520040833075902475149386270946046988341238829934368014304073151931525192155786061678724763496347230375728365308453592870365707228750714654032644207804262835487989634481101940043602587287371778550655397270368843932411988951725620963663846301053923238075796703905358938225176381366593674252176193630603316518360637010613074988818304757246625148864631093271703714032853819315172192801534388402228743018633702865030837111999687181776499251013691751665430084265153102021041783252323895679257536523378331732887735308393098990180670766356518744581268438056692461498374676996794975807837926834060581873495387314836490513826021069684819915315084666195350465036304611484321213901549544166785794401903855000033286380146653609405259836913700115665746908881513307571179732694483364785388667516365469629351572794822621394105782986592620338304090511540111585228338515221592815489473549030808530505802580774757434986343088003821158081639958536063299241023216512796593463006042783130761418575906098354216416972594880124173763547157271695743974424218540372185755557500752032197649725859598213174165972983926904170545413744365724407523839153626736008956487278710277161454798589336699519493972706402290848575430617255936725867576749628002043944225754546286581395563769650530962500851490701361025723007447206157808366132103113018457057781067317027889164106821502616432847464069229557102195552304785838522765723923314616715944519892715826032360383433161878982146924895913896687167679485962690252174320822374126447370271075827807106991391337984846194744832800796400447855677838049938123823522446468134855618905051336758010708180390173847028861093106509480960646270162375467011275808814618245318442260399145130211066326684839452309417909808226028024691088172143257340639271200264624221281614793148603008099349813299346563424952627499346434254203066287611251025465310622390385591574832915573302768754144967800919038013150855593341828745744125968374150616924557708864165237143600779704719997731732072994131302640817121571204798225161726624352824958120884286509592234961871767755219818474065553257676158761811741712035391181859776683926525272379582089879701366024605210914219336505101640059741703697008994833570822703149621994336963343732821638515683655724895424027294651681828296375548807579476397053285486784229019459159939740259658411115563419818308365669313708520882498408931908975152268907941257034097257641570329496229473183796443668542363357299104994532651098123975242264268952351423160867664535508429695415299497234543430382714477781911490327013243863720076237510619100805418070899883507239855620189615759842616370890496726612123561748550161037388392385744748923875517605545243926103797693079813937540777090531355131611261719588111889694732231607855496313796707006797937373227889209682758939051028736730270053637770726145331651363781473406874714974367142296515637964526476585660035402149228920764795675184915997465282357232553854319452983803917053301495999304449319966694323589101635918698162754431721537881077458507347780133094257126005935397969929352309579834937617170431433070957958136912494994172479699718728220317339888268092971393405932823418472691786669484245722577088039362962552365701971971192909662833551042351983745108008318395209895538358033473897812029378545770302920747164288162750087386459536974989433703793764337577285280697568976991967796763069105378760520850222373244743017917863828045826240978849060332709576903107890751587969488127370541516962076194948648556645945479016030872636584756905605489527108890774809800291231595162372137194035203610599146303137288251531118143104014061878747920028134794574203892352951065444315320103386330491523382618433336715832531340185535258670001725290918860513821883117255449409102991938271577755514650937164521259687106872297859612136732561934014000323257695250914217828082931520985172877368975710973107551147712719338298761451061708611220712863998056261273448717734908755763326854313907716020223288131381513985101637464822489532591942504606932749179768007234607815219494170309449986420605342822948445313198612527898582018927280500350107886285542519558094314885990932803362441224785910679370578969842816055336208641365676131827593718318504384432388753327645718985826562856450152859740366375397380542944451145757651845607483673592491257431205718857669128683468071627993274569363814474966394378947480579621538888524440140319207691343133103302656037702185359543885204639165200431703387658120810787473844084262358871842506993786656855785552370727857509783130083249196094184488408322536726498967984879322471259451391076997690806096174846949524496844997972895384218764114211784693184549753478712877046855118074870262338782330761813870410741614459099416713301256478018818907718161186162821411566424764943634927794341576971803610893489174151444113558730376054029760002457370718910965303805027298070054041518340779728207449794380705642281803053375579806186678782640451330518548744061470979880944702062801258046636081337129673429700050407863666710845016844005313230100599647903673895660933275561552828447879729118772881261030742438382815639582556479964600047235178576196960975649940810674908662991365886869667015503869557505272437643442836439660102174679624282000656529759734302016238426276509157463418622913025367356737072875468670900596229915203281288024317057457506428789799501673214856385215703274010864995502481599908493521427187726445738823889936931998696382387718097305375734635076379500020229115836729982662896739659833834838280105071176526696746861570059357915189952867642220683434981735204076625100510730540454678869126974470524171021303171829129028632927502740475485262366364828022218642621541043448708445011591995531505100355713483333689326182548963927217214729347603006613813479514221355649164776534387635868077975427175953406480789661828940648442316278938667848502209361388068348804708047371349199373657767220429076148961710679721555733418456735889967321477773357409291748809701774196384898620475819592198624782924957181284368350594518653416926454803942706730451876924006186387331098107236307070194893777953059416932286575273216901889576332840657882464958772053698478298591062902582776250448789494837767330401763602915311215282511537174496856134337683101874660251928994758409307802283995900112920042983347912073604273633047069329483425238147886306600565373963340727722523289559132738761753609080148324849004426082935889220995496807841844641172915926951129292488176444120101040459812272524224523854834202701028062527334243865242678409397595086006323404289194033992496553161413299397501843065793010667824327928355426915053399121987938041601566913573296079041000432183605618659285204953408548854629875974953219686873509203180504321147554364382461782607480377449558833907456112602450742805373799388878943424225645215987678827393942313017616629624859514694538189365881138424320069717022095816579285051666067075515867289267105615456111798362328098490562020023570875897681175967446505610094053861272401199831269031886695890230636016756129842560790153216273413825354193385185834401984286427585283726319919238510982043353064299351812936451752217386683176056857281553745969764118453014440799470234550777302879140748567871577973169920809220215876286489562921942102101005485797713095626984606751730173756854028495550408129667731887162477650792996389378481046193939317992378440938199640954951866148408177422177306219237809581165734841578747702166666585759943261149682617290517454663190968301999023286260796492062863825677931049655797270258664433507178540310033035778429642183318073703091787024411569908792019965828580760712849280299087780820309416414026418154501057630722452560001709082164148056769851441034843352995114611166193685570675815282425538397357829054242794695471500116413131504774734987978178693340685365655879407077012619045633190685160923622183856150338812410781192935143567793387271822663549434488907204439040959586609226400274369647222250310041535835107156286227937204220971370301101296032563312537903264886029343860855769620819974003105858255209502224147486894783237351324800214226539557273160153767399695178377229672956244476619971122407283444042045587445004243595816690393087285201258456125144607244235646283075737748700857260092066731130876811061212005690238943613150545434812682381368900094768711436911347898566016582449096896410944060283368528117461993407416098265440367441229791827641548727735378444720015702259481659664629027339283467640026895684277410775808584446754480310055256426998736554835695355244165531217952944967295302158148478948414961842428497680601539901173509790695321131595003519034789738780481240002753580477196625149481301980309490904348216676786854536462095493306952274600539283523530414016323273094670453426137256099896810815513555689538962216700043659369353661137548816596014631821706910918718722821943512772891641241174053806333222718293757844713155509988890040477666032268852771860161726701901239535177355033017787368373394175743829880591060110476014921278816096170732433703085047600050464622677302531495056877219819193626019232172477046239314016013727350697721256874146465202862357548209625243549453201696821310676167769737277415885733258878905345138142656269403661915857533404588943223185129131158091504593650492387038150098579224312304807097994366100612496499823120912742142778425490742763842193438985735809771537801759161903590179170267494224891896543688119045073136845735199013638806787453971569909317546675588033323841969079045737613705724532661218276777479665177657191854463818716416369932995025520778085557143785939665232191998428448797509442753055466113645214987207222350641284065806534069198997921443327097255290128577128717982083644300054396602448452541208806618136135257372984487363906934333432446171187458641290501358178086668955478446333852047572105711740835808415918371291244501037393256081854681547121776372045137012451932502856848232069494145004744161406647138281248807419229429874342303028382039392871207844997343253439152455547489528146868078709942838902428297284534048707263395082918350816459477762369646922752382266364081895653398643717263345505842122121104842747487935325368507611374852697911740401335778768662924368900517214126429651940565261635446400736891470034372866170671524945438796996977476200452221191970371974061890255940270987397229531276765095009290990887881145952302469010211308308546557180496508367018186610152703639990733779476532309836863943416556923390472911249460278667124334614721332670408694092166561145930859624895319580412665235908496243009733681583693541976645443531807777535568027704053926972066734461931697352562174862689718423894328227325004844488777110054682521895902236903620188048505271589030561405652493847607203924799128496536719524141598728179700914870455998916866480864152161790673659467860696361425611098571312656987314675058945348982914786624164073388786290266013378630718315320363070004674355890748906452132384414465857645960018459286078754884201413265303598536740598256713447983605819203501274655010962911703744985802647394206834688528523941796326851211841073724502703624753076285865980910679957147584431512709524232502270780368071898201683430117962622962934271878839350752374801592495395796574440933832885190768845692767428317325503593096831507868858278598912766794238694745536717393212261826987236000562981984761420105034986704703700680470615930313193547981571830431686906789273333077163975062544401267970258895870833245265463277704327956695800146179270224880095152915766780359183008981341532499063957935130850878678731463645907440087863977404476095293846048644163390226370168161183486531618887959963006956562611857843874860141284427681294590534935954217365037130121538759890283415830303395767085399442946857342269243340655278698763090119850866691172006321349527156272409990366867119817358809784656546310954193811344207770359286074320254646115183159720884839334435149386813693379028536374949763924908372112693764371552194914890353871876308744619253129127813638946789105982342502635075541123145347571846502101219803578743109766354561163238481573656042176130264100439773453150961096269954856754132218813636885719781683074408475267884141764488785729356158725715042079999237560770134760208039168857794455399270006279975784492565301741816041700483500551138949010880582148335003135427921445607843352561043215588236913568232128603804344099250935921114452966553425002691624563530754525925859333920849736436816519643467603498774283021317387157247935808575629880802840615540717893676934838359749830131691161402795594778381138249524956514077168308498607338028697670328843527423409105352775068909226993116244776458743208563844055238173915368712370470235868322691443725313724828895960420886511606384053468061128806211835589468757224176251469780519132749648497235418336507739703749115360093279836639559524164787014020073122242121099493036160081522687629338172703648723554430387973947974161552654597122855760448099078228037680173008015844184108362739865487334948226657082408399938396097543465874058636673424048860622301903709219957474192493744523845475741420290245422206711782772624546402717062531181715188472425102826191339359769052724577867089320844231007883523647580803086451303463692281911153726446867835668701020372119248041991842250531274066783046034581753697512765019835065598956030049912145881499314725928956270430362578308491576508724320000507417048497536497245147771164584965161952322699286806834676919758672907787499235825083501497837522761173877055114073945328797712517110960866469976657652596855063687806242936411579016357993911518037072624273303620511265626087748781908863148207338538860095286021292943911555962483798401108752402527080650370615939975095851261174427059965079930669935376897071156672449913828063856671005635748999204019397140906120449929647849898879793232198538608547168037730286111498072834475889661358181736610413424835131280949664381181532393554258846032384717764347467532642114094816214507430535408698632189717964444416045013820328238964655611448531163425726647219180729685878792365349238939282439694565575603925384822591695668060252816188406639288617111819459801033009671155773973163693600732057365388871432891923332711290964312491314549548567679592338675355652417043934215677794592665225020367537428632472744978468249439654459024842758095648737982686049995996649980767265138942768395812746007158587849322792706745624725596076045654625502403765249215656370154690165920460514354436747032965212434942341018888678996852065616346847068090228835667748549807659630754042010181297103640534565740457469110766837038372286343415088766865174940005297188024114711427391876814039935175229894436761297518664767180175164222359935550092048571087383026686517102763805178728305581435540371626263776701597670442688930957913803413145780039518978260787530917082162454247477829025793885759580880156808459364817709269856737855062474237352103670588302406120204188741244111369035405851982340501328592547172618962581479984247706693378101797010395592588367870838835581257019229648500541225706654079298924016831540495960762060340095060782402123458583291760441694365788517388115329501962544310761008598878860567188957088684222529148236701540977450010983552536464172986510763670082805926940933574417694071088978471825766795628259496222473126192493628630601258826631163517759640204784899339012799449844614772072849887075599551577410915099134526479631660841575534057991832842038167054679176425588770875261025238270609077300010385304204441993453063285494300261965919312089618638496797330889301350645421557808754679266392841458563183009612264816321412359421472666015909268235462183825657847138689475802456655209330862438573762226132222714969958282412350134483583067650964064033599290511402429557791195530091523748968569311474536083311164317918229808640706108139647632574665680106524245283561469607536799245833907335300645413027787809025199634762110467857420791970230942481890449417802980422311598038740113456895735698784708875329742438692981218327952478975615096545663818435114746742484440884051411334722800057618871915574614716475912670645771069982307327505339114040039046758097420888421221071002131339377468094602613117369368601084347772417780540403923061818322719625276211969359267639497531755097275502781470974635075826685987328323648991622007699183194245095009692319708274653598742799348546274195642155065678061899825884140026156636450013868144668970412926168834480759532527255695463864457497346458278696880689283509978982056085388183912934170949674049566769032075356172297571915678563705921076060766783902682042668617260632729341601661602485321604433201019064772967006387579535223203479853201656556988989257825938442453475693373596599809457931257949202298411915733812830933851626371788377584816444823465612443619792333498774316428564365692704404788413028802386440471835796074234847343160086945616657408485180041212407347061855832039568536421616336324275880293143659883632375618714992668637711025932199832752810358194207632351633036477175422017775761412231261754267002376312805502874703020079631713547684082998228794665361598424607768914671244076022129577923827229157990892401070748591407097507389927402986244686467345424216375491888639555577079744503182897941289211014510249769976969906819308291661111080835031621998684557926601964477939948249655438347132975409415706186341374052141232710896785613471852171901986578554932942323631739310279398921665676117069239171068025755512567395647561803048861366408559349595294836677573470314871160127809543340035988482654437989938614436306804543026020687106053972017436717798909814221621980938379324713652878261293747016640315561308769559509360375010156504112929266239931606791828031505220365646398049376244904749186605640389284176826521946465937375589704294231801862528527661165519936094040768097881915826753958015907931228144883054785465222737890409332099822573879405837423112224756867198194734440817852301888878138215082496294645654608862140632322829248712320815582903336333134926491767969342739454003868581046128747531464617706950769953586387997878886749389443916741332900698476879163882393548711933113037809244111318945686838148170534041065858987786415073529046374952798379957353305278931555659834829695131303487423548133506731203591025090973672520273639082345820589848485388926192805167506879759502554543682782196229496418361584878806370260213167011021903542156902589582720560201674195741011437675325072532935703411662819065650907068715156990061441875125882821278227010023890728010869506213551644335508893642698012869216220036415953995224659704913998641800705411951951672309535564485453142527957509297403882001344213904352136632192382823343491950212760173855266708898516713964427968785656277275697591440251674215230980014628180356803602534548836117792555154985701731813980809388469395536785072835779127332292583279186956808564782222952234906030904455274662833903747393910865772868358840114332371764572696055940483002194059002881332235177542176012285378316060633622881286147847123995303241981402930805138663829466885009944903966136926967651864070870340206447839010115131526802355317393109110454235186114189240445068563300050992425833711300811280864881467492548766902125178122491186674772115899543608331399576884096953044389560559171762109618207535714388100802891871303567580306231422836119166745030288224481443155259032608833219994900863604531593920657069205170202456580954152860427234511748891702813186471340981995749711697883843936629067918627552058879970324162375659094834000827127077697966347084976728182868365310948438345656191953865677204317776956371435826829128101540289448223627194036040699874806469072474516673533280920179352159733943932603125100631397747024155286442775628579050172015687629831520515472009453926905774559911691070141575835976422919828885335286328426326620121412456740108426489391152743853065524088046349590838926627735854402678410402834758262312509237415697617349785420806280226044469943514983830613855578891547072712022849515736063206817242615925451918730770261422381291342111994383979034655859362159664231536327100140117716853110373948590966269692576184717766473501242684014420612889363925395306182870514327926945620086532102503674238522748900590583630432320335241373132720822045979422593827325772722282070400059634263540268950244557006886122001301646728634222732491640019541797438159912808283844955712419959007403777302078563053704631119440189556096978894002581710125554748193728727977799073674735753525794676455248509424374351071351684765910078419411852924499988247018820360798035812608566823220885038830253533241353759798511699384139579804405926475427420916933453192119067616413736753155390409281643296211547570154457054659699452526180580324985252214018824088019050423709767252033135958318829024056589379925296056297092516416099166970759383537516056184201897326900021573810355663538046258557943580800136795538683195393766918506332568593100985379098545475640872840633584107484756931086292082456083375636868407064074920355247668410473533051796885270181379522742178761766141390807720017429529296330454076310553871499455769683881772855355202225554808006407531661765024984413480546845359188547325871648730874367355507379183158034946702556924669703558922408191959513545589359997597649338945028908436188667272881841351946311350820563645470291724856184555504525812554395682483501703788367992234359830928265838147221522538789080618642530374579910624608221225178836745305782115711740758270864187789648274600182323565852198618696483535962175474630480101652895897412311311319854721917876826983584844942102640207628622469420253477916974677982967022706661390761999363226532611888923498777444764384054174555087340410986985857323489164178493635376123906198481731304191230776684951500154432605746219589948543667443893767152527175772466967117718311721648405070800586074240290758334578444326404343618626943860251468561924372305866511691044539136734360404673129994801406018388699345820602584905448140179438988277528918640991475158336878441224469803583545227624467995802399533282820750795776921207977393085957498519962974795326881139167049049708437741119312287748737145048990646832824390645256000468468234979656993247470669913956134863787071800285798275309905466473437107714764440681894514824659896102683780469313051269565999248491499202236145800063351449499089669390924298370963506962988677506248809148892270036095419812948806969539162964357369898377236047273150312134158229813019704152510564871788641776827306140564833291685484848143793448918244139490214143140444805024834113173765610620727253626851111608817471885263814339463201500624318751682736383755913225792915668891091029652044505858768428611600887114131337257757159292683674242011947562393586903616365344084286840602396853261830523658604649003585074725164747369759859525240536788706023353363769148189170807468523986548301576512206954299904179607478053329180568180362078342657904751230854686932343948627128458355161802228725231432954302760920780926284931089131727002112614354580421223192712966252574591784822342954486194955867761286478341915474080907367692405334801394592816836748307515039692794078128772649795185082782324269238905753390728739217763960339493459821574519688138110434681016618432521249125664160370663529246840684484156962083404301169076514149064142884497968407684722841133820125070802758692846774944026261287764417361733407251647223074802846153440922862536815656037146994487694289433871440368108250441720173775704681289094879525515891889439392223528554562298350944205461804680743671667202627678222327926447737359823782429987004820590797073742998292191547132120949888278882246526232667937772624511858631037173623072113482790233100737515686212059078179215810460621887746725840269400599513135767356038454381198015724201635506959323346101851494552558727906666396117578160809503899732699127153530483316398371682138716928232626309866823028974560723633781087763066263122619604759479994303205918585402164302821289589327594804220164328248880007798790532337334170224592293877853836953793435311682855712635954323181424250533010479501058743778078597339894963254543705742823342768099912954416487129948538298039588849701682995659882016095187020230675589554772174457655424454144977895084055086392897742245230528318242356122959543236553651688339649137856720364577931352797423770924909859776529866721030163132442519062493086758907288777295619834216003725053553877050020942449277588121121790128776452025721872895777155822223807692228875731922996550159145302436095297781904761623215198826985594468904426854244176203774422098417744471192638393172021422372396074209542367804205743120041513777050802366785977911901241505144209913845034285547229271527186428672702315752454936556799159624760144556576186450552460679966703417984164673181895631184379564412388643288173172061190610828522077616621412334750094223030131622463051371605267442867735005666080036289405678134983993125926516746353213506851482096741164057957383746396810920112675749187911745280368638792952428624757616954821064878536349722009539006892809321145721468735930681383201296120071568837607380889743370175232307758097650952002993587128300100362410432791640572993805781499761696075571585057734807990301958630262233628385242213482485184234851586561430103701400736640696972227321151019293458239254500293608499094228577135729914946846258094581536984860132891418583555972260648989924161416379960693015066409602446455230448259419233442534680472925612121067416871682945310114164188423583730674884283402075853569040218367487679812784254331640397405304003642288582077000720708738754890378173925607751230040061680943310736684730475649844793949399568469392461959013478872518492068293296052243798690170934846232642385609412841366753461713442300314812154363607277825354594358543687080723059970308502383038567093586259173949662829791576046815739409543297781752783211929774060166945871474153632430950154092723932744125244704758849163004999942043099018634365573638117316774137730825966935462181162401196980711025022514103519083657235134249935253644031905656363315410728211823116104234659061538939820973616780143981753410229498822920696949469592415986225292190935794513779454423584330706812996622190145189487162363546665382224557417799282138544570565162540058417610550928739621719560606953813383797018364790061501850195895996725650015766710230795727035785989816653313381708329440316198882019177770678552424744784304496075075671571699200783462514516270505588668350368605560846648638755122039953098654089313199332858367097003884617254181772404049032975413682399756914425707058619202226567310668993826009043907127960640567571268981882672409184351334092567427815644479215154871745042208661114166360833114800430871650220756157993307168501217693353742900042847102263738362602643404292388710845956637888000252212318141358552137917320617570420780654474758393440453225875766989083667196264598607088449051529681784735590051563480666634177200978475450863844736856295055615844325888662437058047053715709980606239502263500295623561352645949153193123440287855365042927706776040825140131657112514716043641560571550356093628720248254903523003532452802747110736470330754516421418746200966479260530474929087105616311658456977234518559855541485735454107779060747804515527295699496244390702919761320804716226430908026639422170047060050033710667299534690997130418008888653467172675992640384784826030120942538922967677595687037007625853984058302252491366360900666181702038955296276970712742253034129744563186387811364615748458744223078443766016629745540582820239531270617822024105259618430650321949689643960020001634534622119188074009809315811653274772427655709179959490276724067587862611695586163167318642553563505258049030422347749818235089480599841542073223642463676977821412051562120574546032753691327466385755625719601763899178754763810053832722998421967512596872584781133788834254219305944241336295182486371483023096869730917716471284564560073931418275953515009046277335835577352111458381211674419833188348268663392758816949189946848826761772881937239191044408422125557106025260549605984148691942254452998151571353789412698334894302718652098434840878257738020709412752318535980800529084944619700141413611612634306365946420793481576951579212867854187717564069331367392652590425656987172212902597561183811595233388054864346702319530301796390370705438565572010452331373152180034378058674257619144674845780781862320735475012439319119952289923116857090816720651426377769613114417884598088534659030529014551558501378145839904991160750814546169706280677333157317031528686365348349500149129249721402392212970364311192005192212656060522597996964024116307721355654850707242694486307329828146493610689880744447094771842273676904376922227029499370602856124175554586664075737669625306636238309569517187154581671841765226500539682359822945839861958248927128751323677450109328574300111392107500870319412630792704719771229927720983229575854230484074905913996699285915159350535690128940430701923228408131655578557244016182737968839537937064202260354727177237957818483259336623248525984579093213512373619297331242844899740468950999989976240877999691281611953377295931825127467329450467174138621567985549233224335269849210661515977005939364286798068142661804479787672169996979524411793376561029790934325852483577650624006785615149228550457949311656999293551162618454041680476189605708311802066304939038730710123996883654343951178035858812527584348919815543865277270958404575366134002141272499209068020278601794769935590594171332080720810358301989288829376318334392827294661008715507931486926822559720445452166507639738737596649014775759134535818266993785797259241877226039476771081133189660138434504267536014990377494691612964734175371519203400116706656614719159509439597639376163444109521435392811083842693356267673808606288639869055049477626284363632017226062034777790269498943627689975318765630984547552416135088894816130151016786755691857604455394111215215204972306628331234496319590485442823647781047794997889234872522809574442515430177870173648363903624882350231058307518587055533209298567356493115561243356975821741054548199870427894324136806260968604229633802088940171567000112007194615788802041622727252060556239215250567181410294834212700796753202010802423734076343029567084144012572133797830661216607692441745972087384686906750776962057203569936300354036672500859110220823197553810752379720936947569188064865334608284300583897571158955266201323936205671647889498837952943169658078500917549390666214204080607445588003269074361693493799309597038846860768757089613499308109329265517684027439080970455567004566383491300578025531066474048122627207159248647798595082832008659552361313401665404185749581062401745040292076332626782591247063840229933170700191284295015151323597004724699889252369544738922126696849541315369710782987924519658038382494246743007637356679607692035629855166986771566725700514951712998040858150593622985236000867076246381476862079767496636915679288266655265899208866505714317762082581149171335703555686471856060356190338133560125080029243742377355219796599150611446301227455296875302197346810124557920905511808290521214810797905644936156987019645044683234436251307249359876630917184362617605381493226081998766324530090197438091442601470723682003197910645492564269850299474892352894476124340116947563049193564920999691120352715518834938872236354957524813318895122169517467181789911268127777510412864014335154926520354692875493435224305980933528331025549902987378544080467936359587060109647402797225300975217599729502725895804629049629582354425646534556463556148622498919436977161121345474424427334945913567046328351648089460624388100080261374043786406165512982351921975924344495845104280910833074447401060966660680040264428397744953927560567326675171735760502309522005248560779183423790981908060217006076388187866510441358007082202517536489715900874801354532128539702111746604726724389855655985264894071171548958842695962459838623068879280891682211071617261413517201666613406087887168154053767220747348138465785023043524423598796234999347081109328361435850398343788505484016141975517307037402898279292953337548955540252026303425016169330953868276587641156843786860885655124114953218147485488336142780507384752241736594853016051365747751185744582108598388133446131877075652421048359547234912721346056721897902798222605007954009883545365475614102647237496555799295701549359881257901567191485624192252913375609291033729632145905758461504305935054749659494565548344220276282105789499964178907110990067977372741223944774861195711026353070172261060558346588196976759740508864946570033913638487981046637488503153449411042447889693026392639050342228692962818114162569556717903964326150704720859186300635428837218383167113113008313675422953576462389700292693788346886480621061822691910116352826806825497046221335746742842650531287609776324748165785903672497756763162167698505010879308570965646114724685600794512430900662262570365716043737263987414688798813041289500337811581257742817589323565689310737005557226730933354139246941066664239111378319404972845691245018070474679336973424075958801678084267284058447224238927907170965834532224147877896696739439721546718114930090419442140470296742073106238906438040852828065038500138889985078608108120681790188837409570615881627818942878787322966303470604941142965118065244151183920486483675338733298897809061392025445616188442400140724195615670368993694748051395574648637082708170987902773325562763744400831867161022731632332571333222236960773083586477225163317026157819101378446780192628688688458575504766362875994374352635523385176441995937483782347650729424355362910628598238823637733275723059442564508325463113916463568233850819403630498100355181049500072821821724177389784771528078034170168567417264887558685568103819925452866312370383902683324376859084999197387877437865832563719818152241865058141276470729898925365813122150871407650553199761322258922929671480055219069365182296065435256418588707295853373181769693046205490732305513032083575488710062141188534159565023055727894621947791806963931718096885570611543811876764921598664215610594387459200228216211508537188174093080032464090267215038736976309300896022835032549775133507428771741629087976811345459007639966168194248494843547675841843899742682850537142899078368698492033740089727550186648400087498140037525708806611687137239198115101506430210012113730380073965103627507124839419699478356024721695131283463914496063711358551850200705363142011409767172101412582876381670374973798264863016925002843197820218704923114586390497672169095972529364233085998691389839878646538610525208983995526796146992677565191559920371756863553843343256950643499305810310304804094924077533348176425448320580430442138744101703269051967705957955480051163058060890023726934382970480745194626620190263365683425488087592181403569584660181926053406551710058731173630830514384670781689256783947619181148253112012602844944332645539242776285765778111350745165933479306959302600974812058190949304574146430513767647474721825176060198288827000928779697702508508097937337057481313696725227005483366974539615504031410736456210283854006378386297534486898297790216438863857355382795230731023400153657366506374223006254538682593940793162652387185529486626872732461053863972743848961710017003528515729698631654608799494612260408918611919810983382355988777276570089953380890172800875226974655140873623906222530254015619553769250152846755731650804248746923513952973219940448027679869505275331023729495586700800861161922856300128343028225455840926366202167497064011792095758880155442651573627017565473915770996609175329258792587633739147587318670765204851181750958207568581247569819339368199630265083432006331296292853132459295275491326922916564746852337849834990953399133987469611964839645228438937347276395140161973948997649514287907812311102277019640420190751399381994103304931784057573295106976776513026337456860171894233667163187000136877635154606522713131309564123637505861260988922324657362072007675886732931055462314603640707203315948643063218106592690372583987263525107949355091585434624512600935408487618119611246060441223334307956506120502434412630618629260472564503363854501165237233376755527759536407222903725867147679732509679305921677968224973534323052941048829390271921647811482931791946245958505718202834325802626605879127618491958520672567809901272256778809855576263428067272590668589606764158633060928343839095403835728388406035905177523548704702525425169567992635339540045392663797631521216388645423539147333343295706913557334840011741448453414305683502234596710128044318111374903956829733819586942250104764416203114640138490639276738324652724720454524250134701542413650607587551154914053099738117324908540875093834149740158739837361270128555259028917881616445694636040391673964487365401182635913530092477352118544012837929322698399356443335324588841693129416262148761403995012645606054412501280698569293353485956052971107419611497214376654594577028301509290989403231770562118804718585167488649551369659298280296666983877684571166084188576422780123823674811317315674799001238073640199886843973617974342019246468680285042292533278404097212013638019835810312258303502259557709821085131911684148833951358360827768204385159693714062589745602908448515010244635022826485460156255668650639139803986427649274506327340008148811855559917010045800476368662134646592432485814370405885898190837723364815552126087987110566256330102769902417728497572856310675708732038244191163786263672410719634138054193488528749709313527421332186909344219702872084487981990748377658327824996075256744633080695588647344791088805422388990413351280272114470088572111574950967796480538996986787823210106470867930041419056818188664680114739242636254031181165310926113315046073952813559747925960863889156313672763401726234882855538677907191637821588993127724975238574100296657661770353372556964209000958325224609047687498283997669180393861966173346592381580953964037959375358541461467886278886903937165328460913569572795326046817553427378043465983107340274914862648197423957167152946415824150556202426661299986342556231796809735148837213002348655258847456643434620360704156975682884396314192366237977270435295834630962421894208014194880295238258138199846192526766938878419351641073472733722799911051665594321363403341479004377186822129052677120357702120386311776036645856042481642070728786919166816445944411611237589550343851851644394251626337284137988495385708270285671137784863869584241883943204790081838274515872633283109766825639964035248374972169898958067158483759754659944844239940005100588914540084914036160649588286351862618898435692651573015622407223266896437863862925238140366181943633618911680426648891030453913314020214097568017693339758091801423578332704007310245405061304010482011158578930938264531754548001147354719597095645853997592297230881092686452769254047519568349128994292786755190901548315234087260107521548574016943894002313829414699048454591414828774101963685452421853888217543852596716797396873387204093140653972702498317651634042268564986520569633274036922419298565969668077436125391899877953138917630387378151527587217799372490429258469806645172285119450876096712732074756817754295918256882607804912057162764667404076472753638873427705723310668453317983619712315614356876537957593763838474839797052610652484263116550767315510131783994861993074216028502467983262626690575302798987540817987085165742815432483700697577883471024847052354584609359899655247087840301201754995753935374628432546776514980306462920149446778084876074202037019381561676221106029073045303177878744221143388323316813484215831374521073216439011544401566034985744206332622155334479354250770190861479388895713739778565437823678548110023620499560710814852718363976782453817905960703610671963919694108682503733893621396212882959177789460224761562785458152921943399978567345894056882292128443979413817980845171040476283365623025040167533623602953958698186886121206931393916766278057866761993097257536728312086225414995188216526133964361913830013770012415877794761238672198698761211952130046800980218649196175512142952753349845922824100242965541452951920684787468231736841868211322965629239341011277284091563490121625968196650989691318449104221060543387493008394261364184372635334439226476727518819146406774246303464475000575811090222641493104250631316265211075096154717836010455283970871764598074824039156428266074132457665705115999716140737791237242276496242236523007534194217564057731873350530185063953425161233522806956351176721292166013300966800807745177264095249102545528380348695523946425398636022906539771650413356652770289647528667903972714324214128367322278571108611861417258839995465897582203009079547319942257693904487598858328495063314355654950771095609645009864975578435515049764666723530618374649389500949859889303500681627354231390010541303387642086623404562389163194762468306625207994475056710379819330044440865250507578435173540207168507170924693012032710999574284859029372898200206914032944496666912901909813470267907949948603041465884700194108358101962958784248546270756115028645478953217142366225132204788151553455729490691391426449493321224368158409624106547761059805403934966635791378729689509221583819782251803637079117236318797774144818060800372174365439425004406347285182227288497434347089793867205266125336750965323074619273835697788980658684795360448087590525339763276145519331052205444061851898095026764474706678606666072154710446634827822599250758069108135683404060721149700246963540208070327866139764367531895914627459360544462883907083272194533631807287217205632860920450089436581737854996000909605873579309429748837452188640990830702629896456914079356557870648754037988262097552670833011772843366708787633569497147386304386251372423935467588965249143273484766780074755518486741024679308961024670579512258754372624017583850251495694567607765614460420132590750938172040605110813323066441616808728462530233500844693673560198521335459852914623752733548979657481730027623856107683918664194295263855293300716361315389619773350514576270183559650164182105194309821314786121876612923146946283161294355047103761777827176045633915512643636489772747957682461039499436739879615649321188465351846336050330423812575999857093967486328484638631126269096764451551582997002029008882820532606473826856806792978027426672955568456572477844858037347661887267191910013652918096646583777468729347971100876527369040784974140212332951452642577787266962195818488562071112287381288141586302936053445143630856733728062790197418735268809808547732031357564655476625596826985286987005234222909996403928121983912507052232291509367371078693416990317623982808388609105552344848472657640273260235631786903987534711986957393344394245841453835049862576947967111817110364315160807174146807730387040254387531649244509436077077427683933582031729685542674161840989766119693562943580962379009455515447718777805751653932689996834882676817163070054793193612504794825425147385994965503001050210464019373009854494920681599471203211652139497457749151305704837064202854431573812803375309677423094989310224683558966894070612675428041946527411836189675154055488773248715603985049539398373646354247194657202197089760183480974937433087953942363387653302786560926117794238793449652049590748081249886931061046147471282451190805648550341673563922016076943249748952287499460745286027513592962556046345345115499165375480228092188229068873377084358700011389330743233018059343542811933224527054544231169362225744306015896403413790366936629147192123352443108081939438943135162948957391067859016126515029681722677465581564656432213001921928791005485797178919976921602484299429159367196228389758404328216775196558523940712472141307963678380258483207350951593313377371759073841703001056846391906550492094257627453465926707029757640964367566511778001214882404825906507811853821074015535822356829180841915768252822472689683831866091045994283430359300303780262760442136892655019264430908244813239072622108177204307274663279573881202931735276959815308286563174514376412850429798773550652297849364945605647467660175865177932303254469412460306498634556168606526581301328494367478832159353258141138459392462451812425693047121518179366825767869097669577235666903232572397192439828372600182277276914284853646148690166107357349670068334122859862761053642918628449716725880875537846341923120752529830682222106020145657303977764917440090453731092910643462164576146616897670325829740389901748972662118231667451163011779363982338860509493762766402363052632687919560888718394133542645360604263456467909369972442641557572405960486671222395311317663347121656928785259557622218432447964751867914032603840307244768946462453151005198041389563247631432051781879606339483069642497269584599355113041961685728874088702548229651666151337199314287112803462813518190757317593528657188192858339817290822979748013052123936255344590667719846386423155007997130028010574005584564985129399273873205768016931552566461095996391716840500064802421245716169093407525924802736751194710640822535915809278881613175467710943120030365636082641885171289424824766999124050307202739797997203109810599496981749443384775808755775462917404637353121896044946649327142401482212900479120027129743825725695840855312212646241784351645409305158727685182554479518003198791738664920168888066349963242770079648326333776341877629602203260578519671890869429136201945457529268328333029397600956221421495414816454858325690876488121275512010228550989531743613960901511998199533653089885298601602339499232429792647569069137349428885894649753536998737348908282775562852921121935197342768410279695050420163488955109178915106968945054618396108969537704357203721368619691405454904406565004714078532615089744412472208169822185766218955313272145472416168984252343639250141423496596199104235229933142829667530282578003829906196728728479943689786679331982111636950952902318779602903767350657948527094854235088503941679769469184712641701143015755419311167707252567276610875221001617191473008142947320001133368591473574564999368461119911270892652854152729395287504687454750032169794106229006076410807444991599430395944460882672440744489731189095487607822832017323896255372200035680188117244453171952600871248811691598362189623684609945798391502054416568683759713995236589562379076908655826758207047565108174691800691531908072498878471586049516039578240026817933524233678385192691780778651948816524838719793503676210108542620299998488694098127391158789340330371719644901668142913459265377438691235741521461816150550347501991708409223618207458662634653204509734158898522323588480417389431989669393890509035449380799307854553078147686193699883570212755015425042072516943263264724516824043125840324324856942268058002842747881353282206754266209550028707181809443087718256144690818755024972814243548733036408702767899102602215650447448832478706199882989322117438139210479433180371159703469955220365491284295824548242127004415735175511228888105913092179866597898313728350863615743279119873072273793986038484822796928034994329894315195858442936850378219881815787508217122040800834482776668618213857331426504550584125002459196905092595463323807862043126818612897080802639790158157339229494838675264888847029326276761998652342709728276388401020300561881433748403429492813771248454241032058247980588763965249972179635924544384162098016839948458376396568067621475983245894630591851764280284570200127133895099481112128354522140441081954420280466868521392434412476208330092537975525627056543345879166813533763426988083278985288247262827449272473653045214750889095975111437254277382967351363260079538403665864408132699149897164365462864407173355186067597807811378301772330431187014903332309661024448026545261683893971476870522698421530254387147105873256887760444258098728732275819442297842099764442179240736478453427550667959110593730397006782776382342611238984509488220773645399173522480006962405666468178860828511493310827514015415076566635786466540228779004987845305144734258312554895469715586274211501355887218461255965108697105476695160873097381068057820656701839534752026586004692274084779195585654873885874011669432917340552000895732157802885626095394911847617239418089619418051506830549666234092243130324868097514011894087323114979043130343788672136698750690791375099255422602416096708927904074241736251952713937010512414380318589825129488913579384079455138709635242960561582997842389940599242816328093512930491521729860855163452078566908574813389016881633226079825692330522932836109063692747532950145493271061685121454573882294350226023645490082765496435821989301613670166515848716972209913233409227260304369697827303803919267020575181845132354201754471889258354246373554459030311828143754739863175969179544451856603793233289158960990239700995090719245953757786577202529147672624623405743686038755899472324155526178133071764599289796839374540706662455824593815222953554496771445406935777529309294759475471258995474390449101146716697880271717263229664427780706544186438331718411188760136782886357128665197231580656318458884708026786788505788714082865184019315777918786172434764670564619759152365528445592137370056854740794027089691234397892182738817362438296610860825320501407471737432549966896409474834641321451657153366112629060733952356346167860102100224581589553981815726330455097339735109234243227092986623277996634493120497813077885303389218063377620699655804041476180170643799216708696645443299412308289962968240617382302917141739358134709680554059640684422682803571417425087492700456056690217022839990921038964360005168765039684313739800069402397679427832717752884815452115844998792196401005541549958087238585223710869742656006944367418046749219569784855269877231195406974832690293525399012945156227442566177463213063529590065863440261982086982955437452780257548879624453896388854441814084186404102177291260173846663248007589705162626932266299443506250541111883050885351904542294162113242110274536947114010105793323645160370384187019816942083970884264183506156361236621635157764566248113253837771026407120904945264456261187039376123624864846952023286058810193129837398359296617732972799263137768407960908648237485566780129642388880187652132309383359148237161161664352112001897270556240145541660519309571343062000552137405464019470861593660677883123540438694134954359334871697570286013525177665306987236559659487006648051289874336045835795668310644400166386893538829483475914759284057485734492205331981813310234754367832419470924515823277873046149240394262831698069994956137559990103710003060306404077862103378893919910323007800510650243280854705375188276930172426324125111519719279324266788010579676960111822420010101543355453616614125157523098312428506758701183408710096216632259305138900143295836547047554749194092340755806838172155625162918072683902033928836392325877818178780622162574045613605495714363559662545403966372660315153196994514206007964411769947412622278883717216728337285714580796269370222697047619573831409736402935190067277493734413546189114722769167290680788113517501686665844893865233183933194501696104503037622869209315207130259254130458704464048056364007461179593973244331349893568758897279872265086563190303698626439110834934942462386663892609161193568150497786870536582079671591255260312599977241307863541095752894351299676626450834111688247514241996078788698114364982450399388114567208903029959790326525516924354595705009653622338075816509572495637187187442354475382840615516807926532702623548570518871867935474536690938591105710255478711927855194212932049189760403734371926045519605416283156132148803123717147712059165260863266345434156391887327690969418583975212506160279407263480545523019343259661175578989397734105705566790375998233541339972536955008587695935760380525759547353052352054400693652350502593384437426935613724704109042040155755215893825615649266735649956708236492061410493354082143053600346260212998483504291103244761346645380079323517087688446528894742750037644065393345922500537278639072875319185773681864915961658721515046320667772483342682968990657167499741512363584891806313901591628727808810667869954047303264690383346729027512665404286711805686735590201622546248537804879609623074527991619348159332226293971824926989003451084787921039124857096351417861608458504415460039641011130279066169543973618201595493631264956903291004398452755533314478217207748872328352558349951985470525868313277913203886376027926326930170669028614175535242669567821222624523106634108686912471316767155142759365015581934005794419869177082585474577206591024654129364286118822297364348863357148320028854207000947915244946658724211536876464963856663485428782382290170440527674127913272455827368714959675096826902817405166228425175929533142590111226794681965601893317935725345567766568775382883696670658572644654602480431896327161199391172603762776104692682056602470976219872929185033030164335014412142772498415090573717625417809288378858236401038815219424540155238082344439957346794796627754100374104900736996052884987855722047903755703288045574617243159657974508096355975547053829280544671772134999189195422529006235308299389740627644350381219242453256569185034758256247848624611539860553069960623966457539213746806987424700739124026293311503289702890665576691671366795008226409058120399068606630291003233760736605393386726269009386043749981944192469768021746252435181694837022603716064491389372571058495065020701515510431744594342429407413572598062805469018100440785518609960205089413734523155317051676650635280414657731994807588733453510543808209769251986644926979158186142177825183274573538452666698025215924751634396328730286847417816686414319521602146739726554056631931031085821854774912809289020160809152050763038541263073588913772076068383166665511724315483277694241753923128692791110803528010997273030485474711757084201728996323737136184831197134894826499714409217714692289533945064915962426746205146988826758750760857991991317918370869941524877290172957260775858342168174613448364257884168958407766771894645314381136221321970736268035673483835480753758845354790371740668413962203368630417966933150348874666038882561687986168891176048657723968546407535163872127513870238180347601747159806557626164920023033232597327705955767743309561038670921560688818145226396708617875656151109523816795904554417848220730900881360751081345580251848515311283730925729349348491144933445355403125442900324878038575915231429789507870974009308590314009113737481002546604026506730648646070179300626363682569106117061395403550556632023070788554631304275618358662647887087040888898777749197277462624213887936203431686517877927261817256274748314013743506652047040732205394005366001199894385931878707168572896108971417683891344591870728515393385817794578728541784937348064618517846813851772160603629365566821664614988698194590928422704919398263629435022148228791260673336614369114999360686671919493062158844235198598512699523409711144116960568132403203801904565483623013141547360490792161488856123488837206004470680067721518895875830714035490754463930252132217823105263706220005412323658549372869918938142128257449345424408117531463912465955832125666700313285345420058628388470179548371268752757480792370278095304825399886368063662555100577717129621270343866162034047521883974146787964391977183216344556288427720170565392895383597276194261863222598810926287668683709836675301407743583757179865747098040597046208539213863333075151011119045334938722173202142150353983181853884242975454133761487446461597514578315353181596395017027872942131022997001631672785522880270246323143943360705715363161246728942005162513387444863343825633343290607597698412594398638101090834490787795764949795238943679990447672281884128941058622456704187916114056884855444612643714738946048273163744515616771977532822055293912516814185315351092009312536408854156649190918397166380612576836303490981287280272420154081734272447711549052567446551049081591171880892194302265923453114572347778564156074563699256550635605926167343950868604671963266359734537208752274094388831119075863335132796419685313363772668842974970956697308139627590781498835878092997994742290425079518436336301274062996482767370475307765376176059238894223606330725862698048471347310133344162365974216134774321159076091658489052699588564224223527906438594394015269829374736746703629580944923419784227445107507318009357814353440311948854607732076480801658954073855354409588461041531844645448799434160404659552343122339311585234316283587340191330290608826233199828751136545757740913498207311905232363098714852696584006468787986983355666504700226924383399228876200953938567078251759243972108598937097868538611841681207013504140999528080340877917645667730973111114835540510784319753906091644926725145078683428248620331481244974305283168818052947696272400744955634892991693836641381022642061963459752007601334570317272664465251041714943138205615111155000406538234104063051280831889694266702321098851534027568299494018661784402054362786910930915024308114496830220446459250580823036409077395431341203240107067889476860728089224646341140603731258597470204536723483363971863627279539200200268915187746937220388561019902499641048262446556594760588101774332789742222571900442130894665812131649089676232489139560547798357562028554425453152950515765122984386151326512271522260681508807304014882541963672506285597991186168154070017954895189156718365960247801492684616524099911954930692196221618382850267028281215656618806168460733876262470125632965377225185762947737738144842100293144611158297446394114460658749268654660994531906510370091827941513606753649281510676290560169009480347582845951734225775160423916123076877576795197563813455747529846387271774985858034577680550939845057411552351131613880845639935590858769985591398949097325679194401695386377656245889709384917125866485877530221387861340979581695833427819539944282974103195177486398915466205530831873703730440344032526233753590819588759425295980114963019054532001560662059039912079052932228357055335155794707414181197654807222537250549668064524310630395471372481657306223167742161709817229525001462343880566105603981505465360176802245639783132502495682965796833478589958852957885770275546004850385474222780540698359561368692469877839284347239138187933718730841992383297122655714645419226225015080596253338613509316583043470129615712114087430249935498625332025434819052337919773042297652266655190481516012492396692106144277650193142439993933678091831963332161580203908559882986893023561408154316364210859247526163233306873543842939745146515757118466567536029684757385208778076221393786099467425903037327991429803017668960404214407989909961643036026885258878893005322922148072865689187793074181972750250840656328027977206568265784007669914611867446343452713036928168427977343468084684248160209515794270850426473455817926378669930331094987283290419007329614868089159973633979332082434597194379072381654425757610586849984265464920776973873618424931838179390616846717949855847159268346791020826888735188231840154615319365441323304069840668204204399033827470744915474638787124469043296695142447864306740373497346421844893191519208831208660102805188255402597524557038488060809513236058294011724274160948009820916576201742221583080540794261867781016379276043319432466784977996919134482478253552034711157081526045852623185583595949233624907612081321679837500070151947811760093354866672804449406423067607688654932402496528424076796137375635109029830216147547165293650070172682622981191210942126414615726712888401604077804300021808573676954957800673357000226540953899935595122248197423644474239873835081522342514426900449701328191985855149859970945735720437671934754007677038997097417588085889068805075587030638785176466926512809198192733591661567136692731882697945433744192751152819870339094260506149240647358170116486543841712072360073791910871853338870021746379437570473102836198823940777158576422367871968984430233533998587211908731746766218409608441712424586053422184970341640619714449714825167255952621194788410108201816978182336695018418847574412730199734378249165809199519122077446161688152156556201910946644225138788210256190841699916017438796498595996743349452200236271226424800387789540286443665946224592948981418732589208538352049383112894328785147399258553627800092583104839021930203453239008423691253494522817664484363874441833301472820500769048850008849290602609681037695906190157476407256243588132410376350091423504913284056450679953963668325849972237992768910258620852568656878180642865450300189381338973672001826542362478457522540460148675992936476583932044294243611763628214871393510470475664767707030809468526539656233816299519348354583104200270389750273638669072687092834391412726315621011279610229128645586049671261542352645184265492573066256932315656052308207559939009079750277105000078372888601912281170244741525880069925230667091501428427762380098959797697186735380401628699462646312868883978400732067954272121206409252892587109239810371364446516456317864244618463531839066448226809926419682710201992193945852999415424051042017099645453723646541918358587444691067914974483631987601858048632785370971316684203056973797699389963889748222852730322803152030188260446898792215769757534766094289491384787732020590340328328960802383052234537520619939148981086289787477252265301213636517997064190355256576818162284401732946240890881334879755328762299499103608074859203086183188742872053762612557398814261337537676307409353891396904720804671224123359951446605115483282618287739036628897973766232153194271714593505879272029302122228795380550049518835770421740397321690074901737138792119089248552885207504712529620197152754089947393509946157909237610249235319704770011778577650478395445789147893575684417156161072375179929459992313961962071719036281236229065635966455063078381110848011480152566843211532130775084158833287798068447780982520275104132061889072365457775059750830802295624678407389109551381974407035150983607651029555011807372291463468701340287602911225298767140333180528479948599314235265794776367724535181682582083763536953604110807444841066621504357875538692410680654814490270379836207895102556155968692285346636346783128272326301348294607907490538566824745744673509339259704309993633296633929128995730758896347337372423262547672920843678042820286984239445842669203894047362552285952113913494293306630351791069960757279613911711863525500575178422213120928929417454647373818984231372561177996246103298650336788048886606460494862928278888533282357613313419623225337291753829472647475964276105429965869256236693910337482651914822634251770973635935287486711432814859664173857233918647748346697585749009597219170327096389215391559756692907660871782201412928880280213681261169702726193112928795113419865384897871626647739985598187824863998040663053296080395687655001277364924972540473733218541922437533062669051181373656603780415811127255505329726174300674438957976731020481154141535323660390763086762130180694826417548785547186069351848265129184807585830975971383041145876938694564360288734792564266876313102970922082021769846765819243857911611195273680968912677081047646180420194749391311237601761122314275924750413484681174239653551986133136811262577415774336142735912411289731829813768733324631551271699886161636732306281362849021139605327921470996372790223225902708983021205490542778270745085143659438825224053965659240268854542275283639401966660747521721962375871099979819717293095727397333252490537075489793568322477705233030506673622711350392520366538515365338085795596984777777384283522114980382950649516727609399920525038704403694462177880264060159943981426192161899680284164918984793068894721578230771836395058381234993763908809019047390930112074062131665047251221934571517595428010005988064271467783101738512328101879719686126809840777464750576776897057339561504562401186280698947628746274321560188305125827470145150607613047251493976020122430438865400190471977347616374462717395389147072282199194776498580113540444526158422423231468609501031587267296713080867259543702606856551043946209753845799929244945598087484796709730848704046654005879711070035611153031738964808300140392196471817218942717091317160501075919894771463660782434227495036374150384016088284802983822580170099650705787534905521622846714877420767719018841597411805112673583313255668135999370963136365170009590976997073383031643089286500140710961060259509374713143568245565245141772227200510886202065542170044286526332759705521417424260118507410639728188310709484504962301982173925902010288021273935144634124281235857636835657291542118168813421755751089954868431260468164836585531674381399224440630953107902963818186776098797199298607998001864453040929713325181254200790006055318393456935688292012514261549673143163069430155788009564785874920861709296525930706101861283268697053202723907920173475778718603855093858229110631886941415184925965819994542287015233045075674991171588338001599898349569543039792127116920983952247980882637843802315811813704591981374846444320450306839794023785525384116355322817517617174977628185458943711429795314862362973863906783991225172759519282340359509888295502904168859767816759941277948101756887742372418437680051383345353516607655676245089099105587592902103660763240653036987213608772327414433036230466879772723709806964314712000772192789091972944893129366742718518005394205765142820580057670998116070989082085616572904967265259545195618630784340344815770532448503200353738160306889736010027513476543572293926411235248683269160210705757338528912137653847872608423724941353948083605558539363660783598164285028873572841269296503697151099315445499996218762358413217061160525435870579302100066269244965592856293202326407046868340673908840380561501361921351209531552048810945618520340053044115500653209914866269100420758209122775982312123001479611500609131697852185349324761928449450919037094726603753313159769226914138744842593413437543693105486090937849783183078964075578955361434868335842206583631900782650756063649287757365422153030901576226073450139802340962817832391793583503881561991677964232424855018638962453391244651837470673614936107471405280604934190715137230373626615003324143975202142445381522459155574888687036736309127609667798419015989850556326543338274462937773744817956828297161046012443541867340369599266807336372052513203150570295836232485982197532259669496539658353154891729012882901036844871135219128253729463359716939046963724654757023922963892933693660964131078547536361660251185077779490605057830209371270893957777369083458879979192595505742521567560006429718848457975579533448763592899902688928637662220787186890477259455726941309654995323175780272632820643469585213459654722418217076908055560992632828348259146835850577712126535434478637520992328291960302313189916229595620688842860083673872975523921114860860841269112441797348626793991470938116152742337767252836463248193651121003043228598835103975712813350720996558223559163021778695429947447140659241349388074244047600546893717091077281874873336337186310847322238159638809856256721788157513379311800129602881112094570460759489287077898777264383483690283453679041736595516643499616761054059313265897346941429169447380129909129974528774229624404805421156717086981335308434738817810267231911003851711045165319443700574700751069741028450405613420176041705812494549946157206306885566102281281924401526599219082730329034965667010813776054667244488249987843280339161719662864510054526412459984131653451573471669176666086987743345015837875879897180298629705820327076078772808812476491162249048449965198845777350326582272273303843427790035024428029293382982476987276828561364261546408619473845322755022510306128703449644307345886640724646370379534204485080106568208450761461075395720077459962631587519335620878088703305027666300096283071823398249316405319439632351725495999704129789107735585113272875566068528204844552369317168786857165856357217861052897677506722756336164746133427307266265379460306966155652044127639679053819481917993686822593104210298304055992177378478488733557552952834427549753777442752644211279651352749074042733213111402382755524122003373918760410659643672651739269262774654272477772338061152906050813286638758932227838374372528442462752175435358692689114867584571898566391982380989894670435143749045074652356254643619227333359174161917874543083896036075458124711944631896781459338379311515394386620191469290099799290243362184071834997053769980945090379229113434888831923281866272233876207123974622787128786321049413080181460176345468276335313428029042987372708736013183359261014791961496931747728381342919502717876018911566494449776605737789847861857085500208088668982446075527012722178326459742984280585049940145982895753309515362702045961552307635074034591199886822745044636716920344867234322928084715756996679316662553683208150445096437503007004040292128259202817249031754856944291046082725979776849841604281882613107564304562782140766666431915368801099720054059938390509627909121161567140225252519230763803053207229439019708235531718454820417709957767907799535070655119902822001759931314274603358959899150131028147269000477670458778061270432470442551009361983854641434929464660587383694613221550657747199744636504857093460976243065302251105063222541296194225557285327063868307804728243130398776717375547004990702777567590360256393229137174018521842334752441475844109900474094420169329245207793190404375103856258321473547140932428698159940486116253890482084945292446530571137880106187572421560566670526627855490178689817048337767964139987618723234604403350900798339538993672545659705616325088950829335382858151186404992312897112663054706714746246466473586686446583067815750897169172142448689296248659612064624338400946043976131158563484303677585443479055933129801924778102655567914859719541376953957202173955949531848372596701057238031599535653597517268144422162971769061226220778582472462461334901038163863571613311634675860532690111645303228198933449163298194078223348693420037923859065019154965521049419955580275749776755020150655981583259152817062260546216266794086695739888943676160604043279232721546179811191888495294934601594300877571239527052097895425110567478727115413208079732798169909529278856622106906438598656950400958706260982175924068791074167013645542718083393672400042076905717592867679787281663433192858848744434366135437889647318406874238969099487709244376038543367266622621535843547717738889116353724222101314650053434541396558813406708561549193818028502867466905248759407171098821647038902765310383448304430127368749074794545921930902944183697349190404528929939407658359116315377447286799504058197105443863790252416481887719823897267946585459743004718327897666352854917205197318161738927837469285067413261070535855745157493862185489100065260160344770702592923793367528927836590882165159185877849777888486988124185332699349948332144782984100848211302589526082736275694192704696110695257754857209032079140331558184450367175221914082261326575661017357829573434183643888846605729597645088883928331500059239714738566058273453471619778302453928630091709078421260319277864283618907924901698921088350704389234314214516078381322697948541905684120676343716348565207654282120303841243535998877419516696653802840455135014822095887601537799408000081480441186418512206035315260913117706419130929741699408793466882689165273295239562281013344904543955920692008251525918007339931192678813335106651240702578240727020273030668092737481643545326558715144554412927153504351933276672845106370562531653030444867511813956337078929729237584231263962093580073125783207884757748149453988892877725717858645181938272269447427364327344575742562690837510989916247618480102246451734888885645138782624864459994369261526239645254066670123191796553539877277713777662780697330510403239718166539097680905330148755044731308040240844799194074021498774090816320129266064335376383017276557315897510468635424227424201760259508362067074716476747281130576389782001425705233313784077942028918935209141557201032996762392060798341620928492601631013893960443544432469514577484042130864487139755612543435550127765325161492974049816679240986917243752645732759663962102154403662169881664776480830331391447908486149290599838376983504478400080767634882901731542823373454807283131820312120021907395210640535161220374144556775866049386602041261873943375242636326988927076929279730734923027235710157024145547375958995533283261707224620159221856317766062458334691324393255652020021637698885722606343049873426445285245486975740586378755644727521861500816778742604908747329510891741219128623989484472130581790795014657427173775722371266882728286911009366309828062443975988806190595764260971499662551009458900771830191257263199775744791994153540305700529296285748136890315870105067362737731129531034602772912881266657432857728606549451369973323958775369136460350446832145722113481346357021161707354182856962914886775622189675445252553143108177758684464803909775441312144635072705066545626452478063710596166800456595168665257147604020233058957626398724551532039109335406399744812583345271144000116780927674042324896113534197628757908848568813544976341091232990636837945696470835073789357884414011682342719161148243742692613439082540393054085372911441963751386438717847406805255400300448036067094748614167176798449009400801885586480874188836320896952358379401710612983437010643705924117854139847581699417682378613855304462119021985002258193991375091347289505494300022285984300340513679679512082548800855300898525119484416664130303605456080410612341820152762666515485011130306420351591631087380215332046332148014954586714073450187918574043186669890591616632700513520176553109860335484994222969361853332144125981266056409328311177950006412175902576994955171728674230785513995931274036391340823203793165957324218095539222691965757895604708729972755397662953152823201052914903470123228183398347352879691614082966649518800473147830315653987867924436742661471395786455998996287508826223750362733565565271894158660110893392866683974432342371075569840943564276160521825204217479297525112363077222671396931555172881925474279555401056157721047819912594450895659869247552174815863486001687443236109271384904685513428495506370503859855603761754562256800131532309136043798821422737654435123648453742117170673781217523636266375381235616431112297823834714666318291943200710324422934451270953229329704488891148638453781832243393416810729027299639841159478130805885424741062175850178938318353909219958627426549622982300484368134253425652032508007219773319978993730855044693951262698417005791737838559922598636866952710665236907918114618770384827201011188169903022010820327660182593183995038932079542078447725466863297334016187597414310595187705206031349989990871945300493980214443638505042000011737119330020056326662786765870012672519551827220494942274987395129542587253458141445303808717182415973351453843057417981645411963518300408313709996655103359326509991896631362537049976608474069051231891306271899254548431120008962366470589812523815538467381134258847365170659400065365343606857652377582604051020753215213469089345782378367216617122409914429053450200924826970089963032016571045062939513555144272497536352124320330809954225363637198109891425325129104071994197553758286515069227201858566342107700008890306917173661551718771995395726241802650649176934129071352642623391138407176906660382853879523773445653069426365050297026361602345859526980744989658981486134179770746512287119735772419770722721479341319446960294776728099092816239266165473842740482792806627379939149255431127872989039172051483959556221667546091601498391917904264610964922071043628893059373751771832488971374970794947436389514467477763249772138398456654491307739533731416997523344556354240961885461458859522289110480045237132645103960034914668985396944073705845423630671829133342119119291246733387615201670423166970669991830949816297325917627572084745321890143700028780981762421305895308903729516426465010177506537643571652167357703943323679146302661742402344748542743605830493613944209093948834803679055667136196724724603351697203505996709167620673734490215183686412911924099280593897334979477770913668002264566883654992310860595446169282045904529620385688686464186561139667059105360811356268997115563749973874150153349314023844723989463143414684568873935440515279895126466490506396500061443025945237904118173989612533491339958502833059365968871959935946664471788733162539184940287508774530963047235019256473405930177121123234994062959666934238300687680491498251742823391275091629049970540404931768153166105231302211056787034007444603042173846180109366217025758316833055866591625244998193268871904938084473650973897297941375867935527837982067327430664053313171636990176784023402061017157485600270223631836109157862791111637641385210449047310426304264175497084586529557884644810680704506869305579439564138065024072776098669503425523037058121578741528790234366164227173804885197026577300097776155591385528736117996646593748606134065468393552844355998418053196831372808165855380435412167019015751964406665220965972505505536217011131207102926720470350516858293490795632040571149431936010297859613202684991903412462475726189764256308715601804499536938579366687491432382908729912782372362365109512412430517158438227594366849307566984138205619931267233416805889205196421629969145345430613768148494837009303619839424098542781109649097073285018376565263375957164968113015248285929394950784007006340912176819603725770615711694498515625250468311646008442630943252598418277543269410376649465039163786849076591600031999367345216912189013714245451508558840840775038438338981751097177328139506719798532521091691364943664751546852702804905085038072656711834451459104502712158655233761723718462974663496261068340105991801390246117466033803262492939904844159585157598965159105467056989563951021062836647100713472279838184109948063497084922978167217686650879550175913637408078954747935033964505379293471756611225211835687960337007971804035942818966645457138000791306287562749397748309526440663230308620460270429901054617361941199147483215415728756876813654546559925779283289111226664013847562149185408365516679526385209287324663829273408377451473837266258526356019333789114003315325112641610307850529940400583541491774764062335472300494670080842964704737719332867759444242499419483581803558015228921907300187441759979240302150088303441590189672040207604578090635540799351932907579505320599537588408919158649561370019111206686516000448214404707051085378912766773110746318966901593444877973408739697549870663288347775260144855377711034064439323269345520377243815802403167825795406860337011276506319958095347921649121824901463130735921776836365348691944068392413653812761243126769479591486380680991765486963886602078301357656383949038007536717182979873132534570836045835573510471762953583646087523941255753947625135785396833214521037360215810658207661013250282875210938989082001444240644665445151753657336699102507196214343697363598469342874338745583200453726984547412109165732137223705209180002164950605664231986982770101266874480365629451361221371850875155183817302774690357887449385597757760971650810734742148220778977540464584188332057103795509233225365302719604584614928140878311280233879625352448488905009748692723380390180918345484277504680481738188962676905947407883106374714716519683254238755008764887869916090741989857127166185812730462222357934374631443547704247732480670905047926495299622244119555000818060598752001225051451246117959741082295860560042001287840370190663282990512077210276413506390004172614899315307857524798051832833138411186996893794676754883513684015089556868998586351743256438850376518499904200789323302384528845909149650295418467430171831792249835433027242224107297854327847811566334287138946492680432042411494708058098744121568799615817122473296085326236388791430406575307174917880710540162376992101920821280271527655590272326947871829919676578868560287963221854283040428519590751649119362195377726498079690374211553582181639019600191193923645174322339653684026951429076661682549652393665926073297809907984872913712967280459844371046790888185663104151859267326441038469776668108176277248045257541116864234141447549321109681577209083036658907857029028281413676712555926541039614739620930773969736452277795831419165803027691866216167292597831962473027041062827987725765213115819389229088309220139807904151416765187971944167378511376036862678518033469527372012721271272607027216304456539850458071061765958298509853637041663042002693814157762744491540341436696475980258342510986447615387812274492726132871364034078870787334067254307455536241501046839291917854667680997018758742403234532814280490298754348581111798964841426630138096728514726295047567812950248187350735582047037663975170886569637890070459959078786915305009842440291417668726467332821999954844383830001201670364070979292789491682746495034214179955910566931341791624768626055866267348061627305129399234625646355298068422760301428281124722370485717896423201834146840067755691252744797798799154958412741740293061519406280823093567892147424570141713203967184499589871278937696129890958889298881796656589627498617911776613803066440401656728758597869523251414999594881414247331172151389452929745301836120360381697650289705596973681688679445933542216368467397882515231535125194428105777771680336316713469749245157287453987710024988620782502492112075424707888171826005546688520183260293179292729464100556283995894671868138320542195502233185915005544044218342850620636509336231034285362173687461225434921145970029723169423173583670547623819126721959633754719317565724828634526529968717053718417320756469583841373026237490417952018410275238739116024483632517337571860188313353673714204378450089093251762319384194620126351517655040194131112444377465242727055081495163698177505655808541237250581852988562695325314281052039682014252152748817147094591554745494774699118919410257293264641509496836059925058168622721249117527195994336950452555112800641360651375430304943191716989197952158169530497789397000294330437894734313671201217462250557858124882192239048077797715980734303146432413365697229104651366974408370258357549234287198226330688895094209064705239344258015807007646797322096163269020459844976089562170867984084908482290957311655999660989479847191613308105297484739018461615228106383021663715210630794461377510528892737472921142868987317257417362545387514497154838947700080978084122274694055653326402690843397189082347911930934721880741959290341314301165923865003433239019199744592749758445490430277538793486935073732931033703214564360663512853512794626064282698040055615723930104313814080176154674317577160533540160684787049597652286524716774655983977400738742813552306162747367907139243405752296662234176224450539013054907662897698440698909586024100889653228830267285020855289595969363232703659817051316987214763510649900362992160139928461148824281166681067920014531692461386807792817822130568250324681509704301596889083747655254345675513535538325401326861430326403437640578799963904301756546801075532024352492096645883870551444583129674597129819008091131328881232947078098706396046621981826157563332917395278634822990546684278248413979058865099576704857329014946010846883702608200435675280788483031348398770685829052589503287638921695863445192194125313692761519169042721099922264308376763005813541712082989304770344968430353727913715167719278647281530118347923527447570460723296726239001592088897520864804424069031714506674532503348119251049261781112676568295417231131719635522554100953707318846244705930363326271490974120045665764744167005988397589362488775083286442580038914980085777726596050071766858360776712058659354146955532677605588963698204285973439820070258322738138409139919101190767949049447606455989795124164986351796370353797589127035738072916209523563823460336324710741781748326340256335259037729010471778364561139865673202270653779611247583973256228795308432419343610421019823547384216584108375693407472276879430299450056624914207306862935915957672638579160645003527167070183136568316331654322833350601900285355989132359933421026128789807926192384152242500079175349188923111176681314374502781675245518680584119725969472745146157167459751054769155986123050713295411452577304006462425156559985789532472512477751378692681782355154134091643311118477471460583545752995698331425001916211216630500757485520287549618683140586108800295258193015142354160612349177982888213392925433089377829995914488169628937526920747262273061809761188674958930122427441290890393496488506280518407836275327451249954207832442210574034902277085399201115324425458257617244073469894189092114423997313116780124886851787991963151540119141475934111401526616875548333686802967252741495306070178319212879920323461576039766305495194384913957881133990132175890271294927811670798844739951466779030249309382201820019543006914668868848936606522682991290444048618471911328876792117644866192201619552635320011056921764076379035094183171718297319628129734853619867377848080760789707635271064740487286373713675773324174773496412278080250336097208003966913519679486403564037489749089836925312666344035188798068503556709231934484534878192801199876105383932047724641787565823086921416709169296185781669425789103244506782826191388334600042435416574117588211144595842353931021712108362923806839670832998404796372839882914182721238008096612764077733893220027365509808327568094376554351539278071459699429140123523244757080281790506770178454764776281162859072550682781731802913463952676809328784888310204942907173691450145931156466851327274119036302907004561505197645764877248770452709269744749078845823226829892147504063691754774575573685440518255319185855247343408048815390870143819171892578528937508696684840279519294684608455352237486315879835514629983019482648505038043971859191065063742978806809327168622818180121256873039962294682894640688825957045532519743493272303494850786497931010644404727940536869818493004327601562986722075562533747869316500635478806962384912152567237621231385741811151891455520127812475821303137774029627351188195670136812184965842773220508871898702846753231595283740319077075244216093188481394004882551582921519930296349591478405363958036815112336558949449055903277668108834135540020940147282554566819289041003664723688874865887881381534199172999875831433250259736371139518227493128597883220553297265748111050396147046815559695712671655595605083755134262299039904478817094610286649642140392812152872315936597132466364795357286240488191149987139316412994218719298734048437242723925916873520907439792468988586920219685190558558919253893453410070180786093143572501438320916970825770978104448490582479177702076549431311592031186845143067365654471202332758915314475699669709532030311513349661252746830524315291254663144850665636096769239680293832124261065114445764398945410385965020377761508773779232805095289858955874876341665936855103874361055872067381539080920594007834120408311733600129752901645349316202234689138056946454225775892236584788159728856732124646414879956130461993271526680133601669892708530986404867181068881709921305347555737922185418941484444556630719747749553597874298274915903714591450956679985959778052675053637541174226949457771332873202536108934076730267416667176197816967458253541507162371485352145185401932339092710801127973440098425359811726299813517707316882130830980170846102936780609608964707565299084183829105302821911805964062272590540961102324276370323745667129129882218317069282642046233321493587662599244875905004549864030061242382844956005794812717704604662593775778610698733922468958406188150832405186593885247587755492648453620334782794130617712452843610602863125282871232055046460673455615741108728964994029675631441457834300409274657305719671089870656271573751433793250792357956933071367428162715677906647348920134155843644064558578850176264164487985458302371398539233707239628398179845337119634177304542650605128702995414104267037621048397938204217775961933727390615984945004697487821722194942759779345756798286876689503610971041830294210260228222425469207089575455491559751033310858291685303448969842011577618441279717773275907062844814179611884604243201406726487517762886575679945485333173242940780467667987328911156324877019509333793245180215657898825322592947965862860209566940748293036597718377707366251113959806666164821985668518819414862302297844576064909537597483977510730434663595277839396304864325558239650929676232266125510875554648109932036537452944319717769464924235705919017696935718156500516575969839366215085660609988090556330856183517409574536786403601261216262070649915338081766944066978693252078265748897578143770563284786653912713752039811507012767335803007230193084777975740376092537348292197402918770246112736006697022449103683777376336423409147546418707527877136376990667372944559723554451213340907039165204186497085212095589674499504995713215439969146786933701419167069416479248930014465473348641386357042811696458841343422090882636901511912081299758406864737319598353743161040010467243954824605005792439952980531448751462309134100860198963027128488370607311558079596945318196998686002840011896568628178821345357972283709385124905867376484525196919051956653569835317712033794374744842381606503494633390554656112574730713226808858708335574816604346555198707491322469812929856202115105206593027737202529719037303298273390819686883911774031461862765606689453548702306297259148850786598302459564016038527436717423117757909368048049821149978865669809909840783369022487621205787670735913560850770658814735312808097695397048281771930594698957395009570452374442758358182395262657550824890201643511489715297230610367435835646123638804612795645144840927558517414020102137156563930278305678192447323804302135222052380813086626497235304192182997325115523013860540114272796447079271555856065930089463568286811079944145530924773979764346955725145483713199077531191335914926848194596519132502277250117193577328258653997339129112153543337494861327315009908818793551860503234453995682836164794696695575459610364871667881464185152779456267999181320499720571067656323467083441342255839224370510646706550474660401977559297681468700266310510226269515136425979423699071940965519248953566342144185475463998263246681800077195639687935623470893673728178397428031901833149094174695839654591793352077911352225585619642746488873262601811974381418844111758146614123808087580470256603024672125318785369610525093493104791633747983037115585504744715403097889138057070441995908153833719350817675785507268563974252112334355947366711226868227986995218223636140752378689130674551610561807877101989510409921937058211694711030646532886890319925831510960478053042315207112053111743261214047070838201256005603127375093641449321596428646670220200626568105238362424583777066939386401976052892608905940555651555942248405892309345066716004352441193643916787351002344832428000616753243852929711772511623646373160833884328132648324760394911665776520046496620283524906277499893298678453061496326491734567283283528343604793853749847177947447459170343977889638041872595884121353853814962017067069760538880269446169679375145900946312845795275768277416540179481439245317628936727594134189241853863558151870887410764181224084580106897939035099535359399985590925867079441666633388050731455795166757046336367269004104149255296098047550466849633952735809799564662330481973696981712606521829786990804637027570318801271333288717165243317476397864699789585219463264907431313587136129103226406790878131045867034184955933440304749729124955727215331155290476368757939663570776494627268444811103751205732116452266052912450044190747522584013603200878838891678826293858986580575339560747767950703947666786620112674028287052738563870256327626300668440198004192893222077249365065136303969250525379997328855778786985623979981077889489129614814998231788220131841757239676224730257941896030724399110094865855821456325530918940544768533862192229147837057343368381163602216496159923920713842122223776463346921505536074465829632650917702768481087491258238618474562157846286440582788027162166538448247252879781045195814218372158849492234388358609228482823480200702984827466119653072505099278338874818349348003593603732388968640660262277136341660585736691692649185405791886163929781811536129721830029445212127767668739578066494298783152774704006670999468120824163851073571694284818839901214401091889159315980337240434514236077817775278491586836762288740307914254721018716318315057517719267257160955929632056562715117381830193202066340089942820749105822990307420976671763961274550476072917583579271682620843335040284875410914024808501061629454325016611100008018831271505322954154789201819460135766960430970747985025165712871894849276491804183154017475695818853706770365558864356134157430159796028020530528862666607077151004149277507403220412875332629750727535909303242220391553691192343058812667500761716146410674503790402769708167497545607687235146540790370631114416794249648673059149398353787261549911018794122642420426871976461192239919643482974261055105058508848137994826437709340922037933641456590307344993562826551975644354567875145733713433690110311923982030072392497465160171783538197405792528742658930818948665172041006098675369197990420182389634666393524330482325888660364657470387161682560461449278708581362977925499716605650717834859636270013618797205608197527714701720251227737088264757121999488092694191685716202719337958431359387658732471731257637636447562494949118067144876227108364099666673501755878290052025281551960119860601003410594049438642556143205713889255035384371780197035306777858486868604996162184856910013838456157530928380078604735726167082981508083925229658417568529436417983693298885470287274321299195158317734058227896862663970786104908348640093404500900040586098843831259062691440179842198931502409746893832943922817553423178147602232525094484485269003409376557783036168880368883110928266845042649698062716312741551637110132934404830212324640733400275654092905646040818417755516898296357400469306552705047703460728617851683437142686807173597727322751188455493156000444079052761041297807868653287551804685294566897440367405838088538547134596646667677282367683156228187101647278951516029566073607508442270862534785611648051854099958904466790190010494990785622931574979385107004400603265317316268017265343321399127647356654541698357498929987739929329773629268484802293145765660452675751104646823199238724261038302686410605677064464917636945704005505314113331557457581503352428068886353744490340579965700481516227688086643704820508316273562877134227924189511195161767478755929694480519309826758817039234468052875457527937223856785196535531751012297738681009149655659237067035336497129701416109031979542629520328932613513266307077259726982802736883276468511289905974492244039397098948653503248390760242659808386538060879357406753022436321705826971732651692925534064698674486798073602869885417995758525457701245673875561890905822139569909530747284238907859706146488928654024122112057643200416667788927628905255069610603584500982894456492667812291965537687309406201824406331071807549258256651590000841947356272564789633986399850456380108730465534610242015357136424508563730285783687180924591649239021097504248598089205774120843244796253830081135386009696752947746722786896452648815488998999588971395914672416428148513112422232969833149467031351081936612131268609970958275461399102351323556066745007540156705478081682286511678209137108717020116806444761383171809005589479485678503431944534799897752376987978519361536569553144149922314846143226142965151925773129303475319496260778420168499580358923402568532486757251880732354878906491973559127352914263634170079387328254150366075846862730553034030330847077515281258933700731715105384602839469831057943779599888565116357482226426635307498304192682280004575789627197302475461974201198453564802170007086544508415994532641617046446669467136736682848974526768938036485212461509321717965761141325566015666257784584605951341482729443965656824376029010477432890575152287710511766416720277451492589374722113988788917184688497873097399865244374767622468304678951653551666041763949283426816030542274481796797409201776246953910005751207678096260815559550965771125095466367842729658495726617402719285218727069395113372584714653174555838253971718195761467615750649606713308736695836358505554351946831111496460654864221140117070963378783875504680395155876680632584209447201237226850651577682836538303934900585476722430227237139765598001775051457859903949809857221391007990178024484003387759064477162476966853961960923953549875449767739697241622704160304968484052117614013312622618864246226808784633495549309318507073856793944831289365935338245084092322675265530957097831994119464526388112475432070009787897542732664084008931294611821533433748674409033298953447577867336660732028481697374471042577153172877536967946668020177707410998540021126535703432932635722935677607678018260523969022190187182267257629199249945010648831351628332191324466911231501785584953485480174973128768392717915845498258041107125858797590994351546413996290032136005229016372201083887956143640194568755381520162430729654677508936724840100411811013962239989950810083547272936462772456137622615388495659905627774260144611219204682128974696488858063374773685950403624552127357735825638243634126028267651629103679511936143396243832723718595711186907546532186724982797221385952166277303017764143079944736076809363073503515678994548747516544559596902019717855124162553076172631745581431757358050219676956430026044312542985208280153234539677618830805329091031231338496453255336540765538116441448644444952149684782857448570950533023782930714781150635673894404432945899989139821490137510010269260249974065178901066769468014076571039014595960960888620709811258314443126801773401947804166355046699578594982718808215352283777494505722415402644717038590412763798960023920291983504325920589827266485560994569666118935434636544101746749630174289665529840420103197551452649290572374902408996912821594089028157757115973711119305646459013284166974865703171523332879564756369591849942827533673433282907812170268139263353029250831368947138553228169785541301741332023987523607506701154130917177969447178655349854146154014202358291630001322152756699205739593317463850981372464224256975351193329349767707780919147273620724293516772437012695542851250689865226381684812331487111844226903681880424406264794750208711880317285945083283368521693314274856714520034146798005284788967197344511710094264366253992704418967526076268354961344475438486283200354637643709313238848298628707498328337301068885977395822055977071176218153737742539697320728889253285011500067015034950034886358625868385776181600057711309260160111193421327473497209606262372794501713574497440893219367756621780346151558030126768140087020216039393907211001230460588969971206084127866525533113587196425206629074116903191191023874165782863642736992795220502000806079670161254381457209087250200862143886062268275585188097593064902314359170764873187420044025543656532993295237251051018920416003466728874098531771028345941976468300604149362188877772919555953394466682356183239260613015596430464583683210913938325017546917913225072148064190807789167387501085769300381445857274950379213389782990230948205585468832168609694187579276832561508436157926755198990421860909767678272900266869686685873052976665205105952234445289564212903319134308260533613737201128567907735295506579111727787943322374315493740185643173810499275602980187688828189515456764097125859699709171028301455545302325356185553375428837762617737928855528088720414234287554341776749341345515461207829571747450498223562220508069816268797438473002333040491649989710529122946366403477764393063698388874469358534090271403825205455704615892331437242617012147332838914826909626603870768655415798567714320592368832248053926217611535814427377957012212897574230991578484603131624384783719431062342637683888650038028775695566322295130867174427259751971867233693965411915200871646035538131740905829329405493574798557408403432150986920935710899861353200945363814491501438653421658558082457712451337938860873323543962662526560909847936145808935077793187575939318790955855558565490662184384742162838346282227893437131246800377632173256714027478819990937171262557989217116952661885385567401961900150333600128591492459241627450642731192252845336505603893684661833084581714039577721497121720814478863390602317410085702189912714509923794183588025428595317760467680065819352882449860062078314466870030346491291778495441607108960492097090532065279876492213435484153389665433045073132212633172210323673763223940296171746434319671625074893591530836058745050774431729556469450239512344039222067966968663390317953928284812584858045570458291290728646412849701720592227437656164965220327986505684382687244360587948037401278669038729354033608594201651068099006778591869322093471881770970439178548444270069844883746822800054963965970325308119033553377914682000925639820427860137668788906762384861355722268961119637991657654360738534368943837230611945315801985609564799204089723279772340086861629434259735785194505874272305292592074543508454424166704203819672338639865013039026028708340554470580052340099184394666479560523336343642568182149498060243948509746470286981495340094540959641111707156171397329531768884559176883349001907958895879024817690811644441496533887786626062559757504051965493217729656306809256558075497221292981129572243023355336945211517181925476466767967833825276727220990120543345804942667246102633175494411707426269543730084382458663913428495146772991167658733411053119110126565765339452560199368248997766691247244266427056048573935102313954816654296829141472367497702563815113248433313290369706652296116332198238787464438228714351224078646367282500858631425911653326351484653982599383579515625643275834517248565056190782758556677032235154046268668484816425267166042969857026535720558197742310930993447319029599270757822473168986822484567967674417958070664549597388758214820671967757269020384333844314628455440762823936069931805326784510004506583831830374032736209424804130216907800916853623303851254237833561514877394809362716827485771295407968321918247917858171613860866266701919080971280458111670207400367203996395311444491008109107457033898193858888177349194327303752796033078432251164327174864120555747476489073588343893514485193119023073874952485325433007159112499299800793017955734268643674533906472901474257280936520984961244764091039666868617063846364373851254510548713081445766833535009854253710673272335372769793884976475027766795017807299896861860018857785999266965492598158190896634918036105199241935350383862441032242562992703505042674918568798925136875504823998721228434223729920670248624608200677748069071207488096973702376190540379862256791424397898199800907495670924745839070504195603235906312028722909220991782123458905544911581031898793431060313162424111434102117399972693302785850421657197113692453514990680525607402285231141843301206887275489888728421521768216935564017961809557759874616341969356091096732165224529637042198231560715011640172353584017273659708417640803919271847315616245082746628032055431155405201949043892630966681877789829936880134602930262070273058064549905400109758272859675729597819864944860152944536666104922042683246302985690836216659555577358649226585609583305322655998409031258437733997024979673782627189759216354270053404152588114601749487734614189747846255512510518364207292702223531367057654806365976379753816288101518331980900534971092889146942112461521430493691118818700550496646004692760095348584107781019254022606527478535639125470771238191536599642507294137172153711396999914986098219932710967359884814364057066297278821296532886299117289884592631990890684554137083343458305431211549423947516302428958964981888201934995143696452387516807108719671483111960933305594462236644033328768296400157784326443088744554523854332611809908570122375701444096633405898852435404143807272094887683837172628756342201851835992825091220136614979715882290105620158458048652562913173276205782861025063215051721648782257627068212766434336988495236522897806695059032601480693188362027946152999345870530222391811236082920609291600733166237857931985054152785433431150224189206957374211076466720494344434822714619447552754314262624862837035246695140989859747440892495892657514240471886826498726512811373994403396190681507827969883885608268784404628389830178184399058046739774087364076374657381129283290914056868051655395517889711877150510590219383201704555312795795172000289454614568564444278099033055406552798702761241300091128493363459605532772212889141503578795908735013723368972188322945680326451668322465860150485622213048402122545003503247089611167192708624343643198762014561998981235028525997744374534631559888843882295080341048266670468246798951132077022297543965789542111283991363923241839539297466516881103576406499991689631634948943706188085695268772134819352951915021782345914491663309210183017190808802178707295767639943316611460576237356254920210174681982866754029211733411696858297799490285853659162977704032203056812577443010973219060453328285272708916121206534996419076724841044011084284657974423052633790694866410066846084435453480180618204242647173376629916516156418262169652287088191510061087480571078489405479022840378601306043580667474257950158322482872395653973409467933111666612417732533436495492673843142939989785927201667906263593431967998537091116026351771097001522030807510440433759295609082619976578941937767303061943711023923172491605505127978859668864466947139090968861225985721739748153867672197521859435548653313330917625416348845317773541777663634839071683038033679302212468639155469772018526431655208223110713864404347914652435437346080179218021744974522489198478418368797733617937918105339936392156826456104551651665062466027300144365786440784819910170600678275148611352598207301570059965241712098464326175313245082731761114009291530644036654358453317522788654513525924843652259241355409050338509325135803933342424577514248556275609060289653333791948767115673700114695887164978961584136107845172776393072218141576588167714433376667810683436788986996313134176515840418152319716595747666639907550275548851747256887729018167282172166189110378050851903880785189206262232731905329607610107789166041464092175712236722810928133026232558220120795271860546598929828273700225174658055806825979615093675240417686841511004577436239341533720959928110885939576361340093275649534562016037651848017310148687752280146169366173446078501222770522915316131190097206360327755085753404352967686809606631846706119452387670994686325266128612345916433587041432188427897914421361917930208779110814047137288832970288080985761451868699635490885177097910900286394900111055033355741682656821861365769621079765440241149000843326618906120153872880883744114101764783358819068155568231511207821996565155265427088318138103510820722796241051430675119080935482314129186010001864130905531566123433275441610316318684170145845032903349780510365936459577780758203904682210798715882374640917268565899588002040328743872922763932807026654251347353854805443054111151306375310895066792569605685866583226040908867188618146155025389905174945118574781321355007873247119666181530968340519704323494320048534623199307286520167684710613735887356790689014903356075183773491957389699410142798559445863261760196874752806666124837532067669866699146707500079190874612438531378691979383109562567407056826562071733723034989154800958947910824268250469582401337915424733762507747884995287012217224987977549155635644588019575448501779332485561622955613642162476959199092856983463798492456986460248919855878482756250682795360183242394732633223344289763014910534470774715069725460007919566400599253506784682048327494673121475450056914733481603245924472893411204516034547485499777360653159773779745339472743424197664122542847769249483845456067545615644611437907187954813499505855001522047122012629521910556244571957382086764285142846014948696964377789352502676154514828376546477243379466952956237788478441685809318445746834541745147495493526127477007255844978968373366969387232176997178522881486791330053937001202989402726121757368391881678411842044544756026018550539455347892844475908538300782468798103957251448687660091554679770990755798172997923177529440896576841105057745777626022291364057064470092238056710154159761788832994709445956807184481390523313410568075182181438185076322601189945629048898339255622997697023366191642165144784809172797325873654004294944916264965956665770098753982402827827946962357237378487870686126756732395337820520084901792390830913089073089828857744874235524475455394476067565968897771505214213887609921238100944952849857078717510989060824436399825171442267422599209427622829445704911899366485038836766514823676450590140977839789250090579501942313355116273363184876569444908282323147731294704971033456280106518289070117527909918556493165696574320855842297277780049753478208069890316111496471834187497076332144089966734142343872226978875663238227351079286074355797672230535788699213610118526977875649045674054945486568708479338397018067234667408477048883850174317507469328981842931594601935148402138052773032067099087274332881025596206657781831093233697273125938269263760721089232923064722225302403670473002946003040966934104206141080051994668762167029051836736070852141958101216533309218274577008078298052699801474951397718839941318874737279108212117022597616324474378449102414725302025294367333305060286927967237789022044504093078997674947787229109945682007354786322515675560098377346619415587454076763521751797855313790920436789046593413821051181491050845611685042752076842203490720959652169876541479246089867778426311431851512988287367098031744610557750711256196598135951109145549959332326003831899200483315870977950477120723743904841195543560682109446381830375748881840091643859631233361186855746378504074813285340290847521561415595757818563419042026768413244877528524131804837912539586901356506176550637217580726654398217229625453285437316290435651993968346245984325439473723085403344634899785679201946347550216727631884991173843777718570890011790510188454954788927186636916675384852757410515017572144023608262945371813457128308560767396314364612798246549248517200904309159391875089389536569228293276369661137697124879644302364488701251595578405111678107812679979737494153415862805360161526259292162146237772476196392355363108261815394833245855323136105909715451494104065733466134378951124430350698983099418804800925882150795202759377934141212088073986263646176050580845198208572353837071062976179344658516724160148585470179556217237744307881613938544700758780357299288708295392310253054322069919762603354119993552073639738572975230757929829921651065288655851352755424976544592130237260705426169208864977315979174201421246906941997843699440646911645104620156898477072610666325547911897318772399543244772176896204099291258643734130226688419172310201175736657979286998775901387818086864644843404398906440555705714129086808009570057501544995874311226431141618378995367064195859959348336701033970950099359805584696654861551395494648101376765523952532325852792404530844582796481759042773001843618549252196749148739421961882633571802902773082886363284418864313630535222258821598360143602838390687831962434757550747016608257025340648592094662380916968746225216212362777022824094925511473033427509961153475884824982538185810130161791456041843282338567707311546300651566503899009951571319888978724833404598173759338410272828471920404294494738831466284466884022753284155445944383430287958325213525050465012910259623548278395434650437045483388592883846017454832033120257695831464925913619581177023850741675808103468025491255449136491866321317584903106561973940559500337091569748357350700467611301813933168219941215607554233679087272271790282839690093889165523217417174597700020781236342951445034634612697259590487247877672245140274645846010584719909785097295824970947354095337504338261436491980989728300869314692116977232993082960317637609079372409170312171749074923552422305536776670216981243365599755741626415902346434490099708274888280756829241316818824038929050888578258118267593067633860438015308274009894263839833048058701161587494842191376205388105364589545943151422147629208396727635200429273172986378646758522590914700397980990188105018169882344176957567430219110219094985890199826827350861243839158845610371928460401686073881703314985345451673776705656670971669323453715986570100741529844743553097214867699034429470931643641735316708549755847760257156905544734135288085358050307350997571158846346315723337726028080243073437340746503215137798958867763275912931353185181914665370752470684524364238079506006577243031116098509044424199101847155045199952818267569686600370773916155344823641318993912052135983364369242568452469790933991749413138140259727786896806669738825963884134236716377506074233003155506974291585470988052539882200793650719041829128355358153953158040801649118789978599380548672155594901221180866883249844845370508659074607702965786346696289310787214896467714938361653856156380202549531716910453046676039281453020537116157111165855251707304044016990792983115283017354456240327670274548984263827449254489417207431565914156412441214341731543750055430216914002427623975360593267938560998943177612219633710314832330241628856800473829656590113686233437485048845448209944223776252307198835202100400057466057699609268723771053003318218435651713694260749735565598586280967699664035844515514607618174851682136922910905434199695772265472342756400791154866072873694229585490568309362301663768066633066766253659396461077171557483452645929395043123757056197385462993646920613101763761605152465267668462891141587831086265089116015837373894567922036918341727020524092822888830715114230027785515813503376357188500543272435512393331731318764992760302614937865223382992383804530103591453201136051019096766301321496424813370969986685625228131413474769429998846788164957692520173365092805510870220963187611881209758716109077569327562912647603695058711655809972930580490801085877609877994067382911068563339295525206371652487077468727954866411028462184605211584924748061996576104942330992629593629226001136707518546785588295192131340829300767138251088830280201773422977059135382678987650495107759879786333703631290438731865534348407444224781480907887056010065725249462154515997825563210540852405627286449198422004657028536164660118654512315057748329381738855601133122507949068784726212026996310982106377400897630792148384810560570331087603836877274443316634364460968739659330553355112400274439969870756161718654982368937799825614390551362784242967978202033749140172216490282311513621848384359879233022553333849776863866145252194067104810192758186623926415667767873998024290844765576495659203419034243015726849320386685024886322000337809683276215215861174765173161461177924511208379840219543046212522826453496390593846113785878752169560446552104204279933192539930759054597720101019644735742729164047612623631786681648996166806039185896017693789955947731300955507481847181571675358907555811930878282717208361964351667833462409312134695643556537709878927575387619303450696145100992595814631463849288114060734677363280824770844852879980359322342329075736392324136484881380990276326891065499640346077084521305767300747491357662597381254837591542045278855744160573279250371110337483248571584574328613983383180875874723952718475667390401766534689066736627904127984307575696621082426793169691262274254287146316955076781580056229839956748671217587725272615128430255134767107841844117679915593581741749677090419940956631313468196318642528266795838956212581162055629995802529602052675655483816305225961796599100890022529092141377135121289869125273596674207105106252139400323454265396478203940717182361894735309969965958269238353197671077506104281805339205039734671793708229251130075635077933378949965084325059076874486577245926732991064841954635854951169870069895409651788397532163642767726189650188650875354795432850657596710868240018363228132958635861490779173570318241208864815811250323416420467685541784216389125051940917809827274916043507753768884280329269906385282569905583111433448207940985595189354184650267905792071494870436203521447329747379396560334261923352717846796914890640161860754006280242564212202616646768144948071488030350831394926488529964598200322901325666741568438288175479366025225841995279131831503953711649636790736101119799309655556780354245276021622359881569298745636858498593235814089360380550770339376420156692303646819060016310988202934327566971860150520180881034778920682598122220637970109391366069043567291964032122383214584108224662314593403781611305270961342587872572087990294609238047782031491071524810301320138342954873743295847790671177543096691285835817023214589199599976497973503534599708221522063261618400673790285375872189420811322560283854977689556160196165560002521681310065915776453737642796944898588199021852764795606434266402741982434346038141726357680393372179085561014734856184166943588130308994119360486782378970319547149230168564436725198173798567026594883232558902652519831371348480045409306434633856252167367731117986020290105467035931801168917170010137839301778336997972862264142551303375998353154581697228503041540969439252529161730209968808433013957733182307102957130751876370978475132543769183536656218217707157001058943874721580775636924968330327581453355217798316798000873818646757890947560431330328318611363229155325695819692632068927664996448918535493451797546211471979435424075669865275081917688841414340012471004766401584803436837340528891905901386983528815988547848711095462831817509893780685125839776474183166985222784599158131478253618325204091211369020686263658296501165516012584872643940508654058534464762455444820008661121565049331294040335610729036974543615215721257318932174536032821422039761774077081690389566564602057712226177339559381060588353795335948934674667662357332863174173787150468312580485521061065581054936654832946635516849162831091505107490753592277443221138943949456428940818483373618036034814341857051879311838510629281227821457024641109152866431330077185166765606593341331695020842180508529836273251910765948558529186772835581094989049691213395185751772077054869612676706572401428366865588248745156650515792025681836000989707576102489213464510200965398691093147881311673231591539903391691412076886069278223160711208422466537009197253994144774558618962576649285091566979355930622708208665029486727121044526328807371308267856172121373283444357666807493741575603024768556373516404246067631686407866684206294401115322713625731788702584060872370621807728101868224270966666911867816139998665066121477518730790133220465135917478057874029056633949174823349323465457807467258835778859069361596957407443055713439827022395350092818688429678413977627853940759863161315132306193888921256647070463633639625382460717827862413107396245550671955701270941390176998072158062445482924463999758073580481991033319369896872424758685918503330708582117390700328629552142115023908083957309834968626629087282694984842720899036362952413774224634567837078151800124263841457212989849123177207002832406437530195168623403579546321289406067372196077550638439217834767378433489336489911139224804030662980286590739531107603740943360151527668896599734773118928161762814537086028412459116037191522030185039472683596350869750959742733069549611799455123447963504523944420423306170371157000892627093576828184365800968684056813386216735962234917162705100706593299694350480973229616243763440665483806457514597119639301563603176311278182613903874880909077749190591247528288074789252742969478936571203662353324796432488070675363726855942116967800619706200078697915029528865212365976980286295997519351010955521059218816026672166001618828215709082113031607351752914928506373599396342741485753342645740404096538447270491289574951223174328861913967758123278893678543067848385586568766163582979439271477641594576056849316289380708011348304744788165856637622767949018584136991619135690587115621027383276069501029802706835862388640279340087468699036374001731435906220970396052803034089885349999844538825995112637981997184718387979579602565348599822298218243805211766599999366647921036430278940582374430695809325812463040905839435945318076896394260495503985987120461734131967461392558856064865130993445188726854396656588897241342911956053016927583200058429485937208449145189331389173251693384284173498053233261522540132409657039684869591387832318792763535424346946444663939890229346007104789309709592645375798448194618141784351721307368767874479914952234490525187281335359962307128859455880680543166038868471395937428994547141359422201922370930554843624793356657208884545938402465915609605609662324298883843470540451297452444484710239088032039490147208375530509280306600073385287124350910435305943301638676489131978865573847122128923222771102817467987678467163584933301645658501889508542871649924454452729350623409719936883719716465797818233719622919948012804860664832815277726045156943074910403075902711368377066879035002703657164560661933908792910690227711524797371281895636585267786082841570254432413052970939594358750281451439380177521900811440137826165648422784485306719438657408697899304736526711746437780034350698891028679581633844363946891189869586271602765329072236940702900103930566006254846443640118622285273593444346777754026658562101043404596983757288245784637626074394517097457830634754510795845598755791177378040859816200370489004369440324555244856689671965104475010164827289011971920442973790605234928638705991263161330350333314161084212323024963182541104711880504014928983291716392152772361215265244478571204572361280740144198422992616564648484059188692293618522681200232993117113458827754192221961240415077116630818016993227673837107485778444006081650072311566659582984069042229346934300099267286038611647929005806014152251301046547666504788061872408380416650116533352774876220577344296393079514061614985116373901715420835505943816961533189776150025932077799001934088377065061463808034818879049758872843002592605658435492815777507463481135408611644429285313579082945646124390105927795838332024530003908941497724637942103989115843774834189200125903200457779869977888783239663812029215515719859236891513060318480076463466439477549877777724806161505857264561687129014599072128667176939496745516560145827622668575979926989717119260736639151278695496507891268213441785598764874075310887800546490123200522156746401246846189980199965325397533741987351058665225598240530712213746845464874356464677091215845851829147672488388257031867041075688240540188025905863984113369037927099560096451276738262826008464085022185310412413015531557416749962007933908586036205352450738118626322986660222720070408806444363248409158092691626969336397440392623217290078616130590918753191180468969505869950763680377413467785833412880178647044890888151620614857273755782233635838274682063674588608974240573168424466238322742594144680473627719939928740747022473452884213478687727456355819167066788021071683317518486939698137393117612429602737677740938094477872072008455439866222195351270254877504251517393044585879579749079656734389352788632212117996133503469796536691834014193262848577328882414808717280824005270674810963122985945072617466958641164077217766557922005927387482690228584932973316486134390699536398312441594315110740087936380557814610454623081948279965217622892437504894928749004553525670055421069565183265341338894128913577245644816919184806643070412605165228444725713431263722629646446347235440221198181137993745132147778970321450979011342990950450051189976943573044236100535866518349138188324137965032594095056190529278571386641439441630773104851226819546694181442466249638312624816884397794064068281050582806967828686507565577722709057424630489887962377308877281261887800858698442325272613102537914449405911459382200139843396452142486418713622311713804911000688171514737080922763600912253260594207857461045935414400158510294803971562818004737873844876769181762325777841544132574150091081664179595698437945953397468294595815844034066706337217164394630730928213267900715396306838046759041054210846550959589053773049229111352447241419910795580240650924015691581043949197134149282677827199832129743641909740712831322457188167398881883025268176323121315610867207114183354248551868510062315029564283964667652931580570275608569812863854052742842955792467000394147993625899601691717859171832442349446319413433575058751494519810859385948280392091104917611393464573837901235307188293108060267551476226082751319150001947428946316012579689494522849926182533696093760573778746521235408426320838809563514820463549370496283869565454583001523316926795557803523053501327298865789801842356337228118221544988712326083727844918410891475070289139651187905147219200561862219014837430602248646786330689772791712882745296044780722987504760352406335735816736925852887118630199517664138022566115196311823503214618545178596118375054231581237417255942471287584315180540903734353247702682408440749320713908537101621725966599423913706030932498380840699006009106699768028895916342630767313455216537115098143876085221749460771627468339044145551299122989985213815163188628616205966124669242621409634909639681641929567155577534840637173271878225420975416561271952152614132181665401406976041328745871281885286176788822912120352778436504911230475713149392201671964109468671975800633030971287949322360738670324000297216827005361426643646484123026919803168250204852178731688646056408558888277009199686033159856496186963616207587062110271140540858046018528348585648340084716730281256372400402241588228778593898959241389941045915158646963121518535942829520004560669134456391564300569146214831235463279306037528324447910878293098088248779651435008883546935370605911672895794044856245871359525909028265207238339119763948821443053187327866933529445604500064234561810075480815334590202558834171059390020177985830015040814334898446207978141400242305560161946860245304100190468035183099646484663909809258897178253916889997394590257895211671037349143808952441927628714768719195749143517792267480707630901529165230510293563631874251470534974634725649226533094765521228758905858706686152745585408848286784651112948302000084357669418185365282702414563447616715004255300307975889405716073205082295078612857274266137441559347783234449580432503418999625955767563438007341114216997705436516729060142204720414911693472187257088101190565041198664049718739228188472841225067381822446830631883527183908286614929452130526210812178288863159126748870966515650862307712401890754713651393038236984735017274144733409981139540805314235779129609368258811458441544802477474547781830026004965252818396597831577745784155778155552643591450878109487047456550065306200043968628945000541236642058779324637043102948049052333191339343837128961390050395865776476032375616052083516637324728557273479243014550456811160381499349361145223958703183187126082143247059349539792992113930272363797543439485087907536283238275135170602198269145300167186148324095634668492211618140106801878451353105461727331608093826068958045382171197716580419799389728696172070173897329107967724083085398838611679475360745750791394492828627782990406440367902799803804801054224454152713899862300047463665649179804377368258541545073937335329072021526568322306281615910144920592291112410230980237186171104675071811997886420386775642670433902842619025124275721367130701439289477290992696930435211463929642404197767087300691093933342568582673114372085897169171240479314266135326658559519260031376670403079669354520349870788691694739969083144894685179456950742533575585769397146583493063540944168577663148030822569868687624836756236835661289312476128314796740184655153334661898492861276856165354429454423403564160723103467826525241953980505462765956144314080842140145430528087997031797555114503787096633659920199502532571799917128758756904286467250818692508060181224044410400649583479289980785276734022063416253501727893992189910421859810324892574205978117719113338875349810299349765936766672408498481344772110337170733465124821818881468326987611659717261629362113508798308907616004235530526446223605161030327555176163438831851426183176113302621473199601556096661437871243943880457102196201540879202528339697226013070965690741733888563467446090570807561830102134909813711386514170393379893266822292325507422389452735212122516643360858170233844750458346588310966745879746665718688937360834798110319495563171646258569603627454770607911373261947360066832912540109802035955099250057074915754977761527346541049035005901677563888330858327238018322711396976770525492455778424475527461176489681443377956267019150806723425321744408158100766195619660269451089287949536336148950000564014827263843429594491325690278598895622705505007479973038124375874979783488512882273351846425812385085354104001237692200892313305012854158335771268882923196067848495741748066905759833268798262466678172276194001836239180777567851622194332098464930787028166424679385379469057396167791354067517929873179040796844646492558424167130871297134102533547413226607560112390400036054465399858041473324558230132602371929450292474332948125497573261470728603342999452393658511419903705935243557131306097396692002500682980866875517557991510147852118970281744227494970270494058768961362214453710711151478458790732811477535534411138968218145035386385515113529746639330675873750600268608112221755613688401162318773329426352249129906744626704258884583963746893653415935462988529732930139301594866664518259901493810682760891499548574356478254086197174788893924988593246852860290970020042924780486536742574239375177673227151086144226472143233099263063872593220312701588882285753803881875996775585789859859602630193128644894567720386338595793505723319526408576444945837839711748966524088408990555855140399645307185339696816289176792320172376817274163550178179646354171006088198315329261579336098627197524638167280651033347563229698336795145480126533345352139012907045989901767341967519962295454920576322320641923651838403352476199563298517344550477388541397705516390419322122596727551482990976826546656492087427972055170163129203834300448781824508447664786976435731297059621006173814033937563869123164268971878152620592235955792008204496543890590159171254373813395296063123932815878975950874577773947537397275980608371209852881097081531546154405680427580787956996024024532003823428482939937446152314536404692674280751923075581291751576623125523879942825065964328240539450209317118688517252257280957969888011016040451483635944278319928695979760446194044235686356419062342281375794366665753042196366159262562471524364330047063588718366672463978701162073514057100978624863065687003870963116343608230367479447012453038520563025157969394348498392763497011683228615781316677686251987800400319210734907462137486912040096101824371773165089490018624130373564730709054592329484833563701195025525728741075058810833679203437350486179255670729796028029576423902740094114815605319681137505709391056289973841141588256949509491740300272904562426722492154975055181680478209585606738392333748656550266703126896239962695454654152017778688494617294851086704988894801170499774806104281930305488306646122641293991467432767850346851565603095582321721067077505645376781789849450783291534274715289494070554008804584624224440235571664652736518360204373920805916547313973089601227099940775267359610380180094601277535326858084576636260105279069471542202339683438757366759970039400382494065466086349378645563400866891791485542631521906611167121571316906768317141211243624713376115550690256653872311788816115061590083217636162418670577502078733889779064818211342980535329985953594294845708995053914647695923386862272133265053817508670172766039439040256230313719933072234773338887560334712419725432165307533878680917340131237184232358392939740595346102791128792790419803107841580844630705577063255985505406432363997193160297961096496247543960303822209928297464061901898146707569272311193736253134321499512914255416990638869119770399521071445353950885298176181440762737961624791232250702145271155791077485993807587279515078569907673110144321581399727664130652268086950560759511706162723474794567326196633447942878465161606055368740930638077150242751683994685845077162235303888815621098069640820932409313878444014440921232414053903486278361793181732011861430586451860208512037809050281440000175290175472381709742251571362056092628664293031752090940225613459739296237234061099194897389085515511796657230962154622336961293525978796455558146653266448344216658842917891175580660397716554880523989447609398822885123025348743123432798110856422540772527920446582748905593365464695539239197074765790903650628687880638245026058146029220235159696350354085458615943001575010158214595363913687855771066238732984427090806469009400461586737492092722831485207240849815341336395767324984494355207656047463627220660704128953743204148482500748180714752239719391686479880815668190356880247462683836705997998540603994793628504475162310452313720115834541414902102929833799500888279456949599508811686067597642719831478577414550890444491753779797872343557118828567487602812637589044006752812541765671480647792672166521525645603221051319801241893210777233816008037062660790195600529571946024006443579223504624138322377545893739812863436718088266139329342461443010165131051136823441113072653449017459268646069063479367377625471049403029038097404960800501922020075033472789120026611777978498401040141315882686442587815258348819331420605762418146176737679874469156964693972622897457508109356615592301273833896130847733655911903851501167706234311391308375024253821100007269399340080749749041732109748326414095765664046326811766778091740588273758729348231032898333966761826609288517743761680713492327726254783634871348672935782974891576717873951425486589149659180868559365456257702085218488343685767179180546714093948639963772746024832709712130101300729739273871838727265712381052069832624870399360230056324587686030156183742244675255932484163613702822262390060019261291472971269406398571293268771063081364609014917405396665948936903874340785640732781674170298128898824781703538526224076928934706569720535897152982109144025540377792713986206158610959231939985963982933878538482882371746250388900264321298640293640142663009994599893467884915410924931268938018728153853146878326830900697925474763563351559103022658084287024352967328627390297554804904702934379967954446871605182838305158975376314501207121449600315327825265097476857599430833169870796310645045598508461390511062965549472571320686303819859873690984285266059089938721977067353492476445734475818768014262982503283599298783491887246703778089506589098058497840577625058268890880262225371486103182402206484507267829584449472419268588740744869161222027291570322474175374071611157816936317971156775815755744850878084780471976497613370965801486949301594389752753254937845528102059786544681549211448542115098758262914870154179287140822924632050729123962457745724039536808336191300327286974937497758745581088869831796614096819661281822993401825362271816172749314220789558394212366576426209562455264915191727956589826817705079644874134694050666707215497846676300565231136376498906289732519730184662298539833163172615485964827639782381915597021318138790447908679867580135551780271336359047781739560242989295345695811036855392707421786044833654524733761185414521733541093855150819285123389481221177400864532982219785231226289541969783720008812987622597886377625987138381182928098144974743318310678998400722824874875860731651967258864377855230284801948001807580986043786446370122307469595312317116005493894403582465727520471035858860809037913203398988401128762791180203043706289209600455166532004166734705178213955659861975039151104462912087388041851664739402731689008838594604786625174268362433725619051746591811801834933968603272627360884664111889241826392050363216665326511501722103469146865629550096004180277995468336972868089795335246797028629214889115860854959053283014928518418964545774151880752880685126672380167098134218564266403441954569637352333915659532972895257571824259407274341914333422276059932235483541411464123510827026311403092582082220642643549963841800690957350676244475289547293774567114291106851457812729441087701416516024258909251563155396131806870348047335434419290963354610116156156514415827712066321223327828485855052633970467929281626498539284736599854383222427107927237261460739018499596775290905420725109928453071570208446858420617552653064542819146757687041870519856307341094049128497779386883552332055252091660486425124298174920496374285515333068851487636679877812500009564052036750103125453116954873390878231806234716077059873118191197906373661384300345637825707493956057605413693491969619390769650318576029436184173332036876437960971094447456286118375684310508286450661910333119544073085010281454313337969877514753285549046458508557375108614658607445795473740400721707530605414478099467912571277900689762984720287172926531281755871180466291914316545416671237122693030821774024830314402803250898456931296211695209354884940370313086339244481937077643755715721389485044785443079663797193359059281590557041140281929580449441370370455988335389228408998208630505230397155386588248485241170547850773673384840023395383507348807936242846888401328697574774524060757400791481492616607063352626171995556839359124261915308337643512436921388647013657964625903396310641302162964181134568426158826102694144106761252605593427664582749318855968945316787037450977489043044756540566271374328135678504071760923997904651855701504336160277790618577211377168720981117916957561313053248295096287480372502333715561772681035541899772876587516317690357694685004102468269096854630280611806847653151508432140981006856314426417556866754043443571930853183249205058902430077437189103139931867131196341356447279750925284141381334701033492303718867142989308320545985628330011100232189728708092301861549789580089640803803213563603181318485016827316380965419749463898452020177412720475552368605805634536579067858656537180447024035373891354930330765661457811788564829898371116388252388221147451724974976918065724745264942953793671657974784180634387573624000846501781304933468238837570596731481660580789576578557229648781049349293444525850763550296756166752825344722709384071918611631466197372034431235906693316722687756461233530592103792838440195988135411180605344904931896368966737175684965312254020730772997551127583630305951385003540622490542048794669202663857260379339065255018858277555673243181463685585666768833589352447808902720306572169244206760336653885619187625484651296459828691455200007897948359614977493289915563489776310885366149865952902313042901681286777429453409958335060453308342765500431246026940853786031902139625058590277234565069895535196997160463134138762864282373701298765078380084678352754578627152513912552403473621048816389586835482401856148101655293574036055862803654934183868161226916121815221905838324313825849747623361344495738232898705261869277950540005167559184313824958551610480402952707806006546155030751206317037131982164512814005610769563086860874479184012596001863891481771629542394438739680580029761575364852478723435392819564037659649663674776678228440278503854683332507071189346545117457462040242737799994045864994097994266992732033484841471268652492693849655516058336288177639634507596462253962466247747208400813670755855358371539259888605123061526245366183142599330075429520155324445047324574619926929793147846323060270583962519469016807837684864720579453861215343048123881229064472131971186627013933201155217959850432145904244646079639949986915188203526388623842598109219258015728750401736172241395397899149213787026531416983822343316169819105754006376199229070438670321351087347830829599935551095962547823007703965407654677321490911530305560852814239580982138920432617644382210705352081774434083471703233264480950639654755048600564233063503754539808421902347369801764433760599693427488606778102842912220153346252015933931229621401151790381513618095165662005242324713904478786830881039083087197294022520717922903322883040389956162588960241316490754370198689008233767064651991430203432289057286079506970160978754328759987977827604527593110668983061163872163997270140665470345416299484809426993529897585657690019719332443550527223410836215440646088674875907775154195682274868955292172398099526840656388379656516003635112346127203096009728121780173378567741469277228450171440040647409849505842395085349825289750012247217658263783478102033351027776616684038203381410284036806903938372178978188670022014660500327668841588037183476225202778384679478939704693401338485090287413482690917816946785257077970999980188737460535966706185318298210632872408979694290847878126735627051075359655446305980374068280154275152797983302318007319314391955635833885234633520897835426745681771042880742616539360522864839600253038621628040131508898807447330793623378988136946555225933323334835673541872012888431771590002296628338879305064620781042263566507158170593561723951557259311720238445098804491344659720353122230346029024943168962848023647952539755181007259331707482731680291923442682071082250745119443916694951787409825480770265299576211575792145448251120096642623959207763260588964082385028143099100388718036547299948773912932446859041041771596155621211384010451811499051523038679861614376741156938925033711621768794422778552068084982278881879300074148996767873204420378929117767726084264970067174764404190889260854405349140243005601323674178938981254728859805463123833041204716982245891790129777476432114655322717824979782420762447658014674132872162765603428869787438915811925146132398162830723481061739989722771014489621701108593724924889271040518995500789258736044373242856282741834841363869807254042252826046451295589310701755609410334657686249118820086963625812250646848902568420028312507494662957837190760423278496665109409019896690212786840414161007130812968457587110076902571823670170800355157510871788659300936327401087083247726376645630039148050479082069715277877285222020966368840830300334330058656847134173178324705266180671225877931543380657162159963941095225674711855449799363178235249941320437546650100523095151286610211851429391176684180722573059004428328507077138854299068346231055053786280965910561004575781214188809969988968866636614984412338127357346974189764987651221644214648891087226548123379757786495499960590856740710257400821529278767312247927911691805668942487759771948244120999267604861898590470159955955167019586622933580511237639075683900373880772889922886555212931098229771067900681779435153587647350965109347497086935492413876964036820461159990966798740967582386136689539917347766827532131817421422322616663765534012712593408038123674102573136820893404091028458118943518736673154735353484018544170158672419301673142268564624940767042472386624057321295377524523559246132337320324608862023721990593148476138533770525299389458496722628196590636499990692028512067246994362277524535460136556899551816318955177887249102563251047275369708205433267794171318945513791128261686793703830063960099419380553727385890114204586844588645080469243406397705915503678837392202935706205037833216020301979737346727998936238647383751534819747585272876616286832197109740720920905325833551050271896380193874063423987653221114270502294093244879037431892267733133342128428257979359189126164008551163899338800437375804268712141966207932525500760021194300159547555440943799310885592335328759290701240054812293215131461680999029053492504782370520499516228338246861029208767053937011571046999878555425436277654084947234664015478417749207983464675179736845793357301716980207973998115712019939212641320723493158955289681636801491129656035192579789403233313999497470812479920706286064935579062300562309222154248766400934800163238416915656095991596085090385602888903464893512157152657020243998058002715590022577076543157212760719718167404716231281999403668199925016885930522532772540030102856749470499751152286880432310521168653550367256633516631543950945823585999053752336172729997164342573183575700444809626697115749431752034022229311905728241795831969786512858171975239166627740328093337290348037056058047685948952594855395732603299831028555422533812724797340349950781287702946877581484174227417600537846141789972112461889596709141631600209242681256247527548003957055325462661847137882123901045987254653491962047000190333516894693641601305127949450284177356475072869106030804898320170154491547070533898595992706401399405699796127928713111424475367167000801887116735803854557860545561415750372720821240826733853702964230477668369299399433315711401037044029736715535800529228303324646277938006261115308113020771791452012405438980040566012582887773346165455742923279058872505315462153156282143482085735133260283985512676157008401226110475765644048153317896610619892037389067122425648135190315236941041055749421026711260144990373839843996839091567565825981548521037429934452256206749306617255259882652664414565268352409199251744923551079955440518589596076862477368669198979699403713748334115970185255662431811877725462815932836381986502297455621849292680637386944077766119690381508250316390097780974614820562260959635742747528728627110451464612212550327028734061163292209885044102349951503290445542584761753157365318742077795043135973679024750848765307046017414355111401102967509263104447760589857567258756150216897267792649916552602652214770418942684238688267932260702129551837242666902881534032465715047556818180030317636726155704992845380391308663363169705829652898025574823463326186275255322962910736853712225121397002050798198075619450852874322100187944847041610961972551084539131239319667956263078556954681456989846827008663245262183480597066758979463819809613455113969273761807733212628822719195818021377459922348441778884918385510848152138496652294111589319148703533284186487069810452005999362732198703885079351728648619659440417978191355928753858933305172491736459090953768589739340416415564916728330345271599785392357697961974474660632088956905689293658096544338981719782221458704039298893744089119227242592016195481849138497315894940917528931530365353593710418107267365128832515049234074716968784503405690185502364924208682896660445330215089260159136718054945494032080457500498096174111034302278028007174784335595966456919082728468817441900973040073475543100416457501228361122713152479534318650025466158383436358083558937078080064870639497111015941444141472429718412950328364926394824672425254482446794995803571055922836856032157537270748751638693364271022894484369015449446775642213380563965859462065736291715463895661798147571956488246743773016275577563532590478777786788517207296832438626721422013458534621937514260684092419304507946675983227037610565047756360835031485805809080123749859343769878857848367488369961055685483269073965677646654673161538687874742296366556510583930249593951932651871189725018505273183144121220203961484591372452880924866468163797599684446468457972642389305692842146352979516888205313946429446153468671246828567498963140703626471387959058104666871715448735568218684027432510324556167451575622950462122370855470916006236874429879635524178980775114495462792797643856816521256094556183703175017193092427538922807682323037375343467150280456760628451634088106612335929821363654003280314832695836275573241725414165973681163270591876706647027354885065975897527694818960124163599170297241670796001347698181825693074382638769213944993404227312589866441436332614874625357217436328721713513592415857773121408687027145046634734867471081209565647272735270108241016211520229305124665913037713267469797827661927716575746324098794517666465493491119357917005863509887744747480089518039250119840613961419857053321787655114663439133080901606506831525841014114220600131087385024829288580250809062466359076459756528816282797552632623173345128088292179979343716920588937107396024111418239888589614615776839293740856325541419352852567757389663449248906457768170895276808799286837047164743748447982890940925247522746655201841615862250667842072642205586801191014238946294382705596644582903467041087142370366446458123139839106759047139816722079789214672976562769193279899320794012944396904867903712833078816401615737393833375314326369062910655792107231383830682274899113603482501601421068094043405679981823282562651828759372543970123799609669685580953080292401056565007977105632747452950722911059687701203931312324661227847238932731051003867909149079695439579502858056488522437228244856902208572344834438745019638495051460689297540188320579317143345533483290114356397912075480299195968850460246964963917548648268862474466512617863951191345603573169057378255029502035108092396874871711653881469735517918616927982012451720763272386532841015720900029850229596127588558402910245738510911892853477826775192543773513977564814822171871827751904785638408012973633934022220003277842969552577141025271354806697518348814387406939815450494925863685977227589543325984424637051769528278016064954464564749047617684345896385374647853875028572805015551447002642374973637958103870043345154788680257285465986479926548586378972530532373430560340118450409553166994408263031274488387610221339554384214771234204171063575990839139181455329762813431321061487259796588793167436426840147362228520242077630670260170363728808895808053085727584326854339853859710989581902391130619484291286345098752457815156742371607183435514437469597326485516550065148509370414091889357199048534256605410850763807713219741856118041401202596521803883003409833834394424521870818306633787886694669458287445758094231806982370442923302020664086979943973614902850233169358317558177841428908256685192254356815169791550966109435694130917268471702466913021034436649175225053570753138934262266162166133024379575637163870515684845516208587457863962899394583213546720718730177212561659439662214439539957927596884533045621088431935210642405613889718228784414230807675971190225368492989912616035673568484018495849687322260285594885250083395367029263434773930791221550021043055211055458356289976336840099010750767035853292800760449630403656517870675612959159897344937309746885801023221818792394503558432730253704740266873182436848137005328560373394040130422597190621485558699901733277058046109315145243578068630332876121505559349263461670533489390535298122481830160869299741326253411399280449392273110785239661066389397778041306194843861925751446063721603635881208848736260485668466136283289184664940467876262598056372888921387375142861156600286226656705605090729455640129009483407851661601477476146747551402466741773149254218397448294637736372188559747976872570942359370819780952443953743271365465483047709828329939461690572853447552851601784242441348267093579346268432844123603639662048119019446203575654320904671006031231223818519709678317724359702791381173289851106102540054979586929937536280022465047303378339558031901877575061477516258367969581637977380335687882288039715607691654482840795282536813507906483214439335703889349033673409061590334223304995729504592932552552231159779907577581959022718609869601525331593816652203827250397424307289342341745153054477618760362504951494533357050045881936041837263722386054002757124217198963518423996366846875795606022086367469496849949004389770756202355463957783457859740260119479946314715215673654501487493332227068655656063942381761492753032255016948335707327774127906849354921282239643710069590214186009584343289889696483061386447369995424933691955456414862912388214722196000079026084054207082181919530096858256077645880155753533263198263317299080437622766134490959944483659413428806744293387526436144315324231283398996294797917528497364554845942365855561584032503651215874669079434214569083562276239891401380640394905955349898007790731138734376243130545218370529135412077277385928138650320285045226102247809854041870305595461998406866112987896427932537366068551629565311270143491249864789059494270398267017006221626538401321135880027298528584174540410041257869503262570990655359511217656476740656500335522283574747458317336177648303323319341521564147436032944603004816507669444878117971730943893293069993246020538787837394772971931834466495680338494407103471781332215497894070839657427796663059696079826898181273371849832011940264215684554516465832669095303762905550406302099898486522017391355803872188978206608657132661016090174666007645702875956029198502766707825474322286382876999942275667824807727390593589249749359236409131808737272211459914989462270076953494674636572054747953071398067731721673205183375090229351919356218191555849283946205266002996254229082609373386936775863177671283378708188698181842192901675889309745183615331579221161858055594987970859725039236710104982503487266543670591939396947411390161715612024940095763254262300360841786768324335706571512135604112009510920528246905854235657591772842182802174356528271395809836833110228239331682898871879558497992728684787071004702199348089163032511416495215885107222390734839739688434471730510577195349002174828100090387012982261048971691081654234591884518820840573797591607654622105864334058154424224188983716789101545166863923556574635172024313754547010451974131766481030353637888968170745827193653835490559860422934373867166697456391951268598996313698090321287940319380773620082692100673436214664843209741757068767113193912863256255327148945906441069673768250409480917580608408622271643007375957464721045426090046162955420815800128109732338428288780611891242935002764475020034644439395279918390793904035321431570231627602967519808705608767903721408972475416760655340870363239483976455640442183829355375286422641251491690273528652582387276088031559118852828502622180600521455670750216891891276646579374557596440289095914915501557185388135159590639776735463042638677016911816358448322522168331227789581345270348714018207933130178952904433399338874429135439733364666024445402530403672961460165950193452019426427170924285832089494459460881640374056739681499663546497439896485740631740428171310969904722346880036898798736885542531415891928628099072382352521847254090177504545762826518911270467061786239935266340177066393696114212223689103699322370691497984653004203396463852247828827099133614901909109473756832569466445063214332508449822634639020540804981242945071463985475345384972453081938494829865605510309052942232189733218557012600903178391952428307850529805228935175160317499560867860389311094743350461902116591471953602376139868918359584734364240984963081357485830386640479337173366372467757144220635742111751786041101177459858770614229077173603016782293291162383007560087057260389097974433777601162422390221881576221977932261127414785903339279100214002201115944533669700550433313367675733809007203522437364815953707810030154042339859806163172428323826228191956440134506255680374840328734403721572121440511844820208224584731378241158764678296337545208695932511695353874123413438332882422649562474603537305013834955195122527256313779901446501646328814294409585941082138154535425795048105533568714278314333652385963145599951542737792516122217958977168622132411381490007089098282371954826253112305360627950910943681933885725354484338325923141561932785971210124175346958098660634011034891296420471331412957161324540559766704464283039015085101209825434005782535261786739468804064439542860411957085484417088018291430749681031838225182569602978320555267723310942294309264309476998618378557246046775350998944682622953753190912706182682675230769959049948047903874604215986137963889276980926310267162612327467192099948496676186418433294242745544224409428090058889413425106776454917908463179198249456151289789933948733836759710352383060865610589697291214147361918749255173937780396308119630100782459819355750657886596558645560286500955637309265172698426204955518973495938018568349246548231982589549957399161255309855690809775876604704976567880333720819420529235031679448060131036389920718297427110979631749259852266471173908484095525665430626182934322932164236928205312087385916655024944897428450337664013058361967401927994888485503654778650474977651011367625450429370069192917081461007390770246784713360733388878072157990568448454653861850189000140590821154010043808923993710715198790688371432030033724187640758816308754925441547763294507131082004015372001858585263849072185011905416069381549605067055913743341771430159770896627178883218988584900790039496177458768855565743411918638542389217868116249797487339018986309841080139597966090642723186888743583877443459887106718609226471365283815004820517320687031123952170059114495902008055526799772714260346053823277981452876390358279186361872306171110848179405311514620550474021370073210435919625933797359032010662249898924938144446899154143915604427904206928904682315283064417147780246792428300493600802867232671476767000546787784268351428113491042937133570166026800246481772747978827725222516342407500987811227707182107808405180361270909523483175564076636746556631573868892688563939454177697868369919940065479176002751238538194728298342525142834547667988928659854342729999368681403997082245752070261582089309331030538251280360220797879694227259887893339207021333619606370465316938830224859013631052994753011316660668743338116716032784869266335363986019279056540374963006180541302691870997970717878059328287938803176372018587702871087258470849738333835762610653207665275919114901493429610177613200283837410429443348556094530717687817681142389951200154111912933752867623652437272028881257512421516321950487701943771184286645578305315369658792630216256590631180483477823584744788292618846212999795635065995385210812999306611709369151917571885644341868234649238253195911378318774374755825155550131667288209746800939782628266442349533648665118124480298546187339027343130305377549800777539348899877724613095901886332437642416945532905456826076040142819901789827620912105543361220335382931215398564978094871045886622766308028383137089436383312249534671953084310179076264615444747289761489704091239122528554279508889650442795208111625023910537046946138204330447393829545214449209902639912346856791495122904896507187246341017945860192794850762996282765233499470558728469661684442869638228901678588923698444600797775321065691173134674017214828352171440836850968660726910505340121564873160350902587033275923019345764553877117577190858998451206754173145236642107581724458698723713350538470459544525092546852894185153293641720571610743599502207954729274807020695940281367864298139046337430420547528125280697717496614964969834654144377317743269983753335640939520412201416592038323053392903026786567661602054320959255512154552273357579336077387174864667573395067194657653928960314193603215227350907122497508982270531916336121205351088172545463084494831275156125289038932041032478911377217047815131711512088615345924695500009746086363096102691644863714030417826336406972947266118721097063088096976285245188325561279383431071008490532362216977277005375122245693892793012692193745669521931098817667957989676642332013500809874276829365173175625593146622482926453500662677832146249390073126834449759945932552636826742340552751638017694746993172670209636444165106321723507818714756452783998152986378134304537495673202240174838810912519356151385806492382536736394963729541002176430416982096845636291544672266158197078983360782842064318746649270114438110228134220787625514398997075710527382046148883780065773131991978883317379250644399980085077909287657676045773311432682639981631477733330320631527699294717585155157880378661566419810946232870671885971107451415421851126557130846635558787965983336491986601129930539977120388886542707483251027477853349874826443071054127976663346464041041405412190694524261420915296643966446378334893315682395598360138174607961243250282412306480420979808360830909467662119015368846915280357269903993309021536163476482891365662321507837277497776298472872087912136186023514262693702350678263910221143824145033286119942668705069738955158092919188329407556173694425573855000331318694037822149360734344277367334707819534276420911044409646500140353969606420971915529740941492837631930816858692006299658174819943307632029306336328273870534748719806670191224358447215730186520615033971099546170782429064919245469703316536418444623037406004899502892423600493586181802701939321572754495471705385641579867709482804904371614368808770897256422757842086696294525556665610172556651919861153945672645757801839429174609158026732878358823971515891252101598759352988004361449063337944218488485920488708708256573361692383294722188086040630794087812202998130740317833521596546373618172702530143134762710085331797138695693780898609664698585239935850716476713307585382776466315591274001532482097632342925820317316212486901412670671377000899972267655105155465615431473557408648443944210275609091067822022016689795824155109256326545004888538212800585150014731395923846543082894827144554549483069930560239378099154122206353635114361611976568238761708780494156025580906985707233172065092296494629729547560384689793703104932062054454511259618062296241582286886810503654852290173265727960862698346718877343653100466451069130530069854792387968135744960075607086351434151406409981758557799020615145511675757877031840222606316631314217185560521184384035024435676828933367505447168672524345918687036983522459896285214345246276806016669955606155406423944013026378226745032387782152970033279420778604076749279675236928125834674722938185147044333174554491033833037380595662044173992347682209396895165983541667159589089015383962503333218007835151528483870578688112138480529611724671741045125146159496396028685103150208721107058090816882625877109880908025236821140909456453966137130169895198200965018238675478236172833233835888299114746542586251101870003137659932762572009972618107298765418074246747284034896335633042646412414301810954853162068423940051297824174847842293944993340911146717170845858260519439805227142174478981510875967405772380038118254261071624921435401487515439583130122795418562502272867199522621183528731572951286806966796601236112810965615629943671524823216114552134654286563832882588582970813679100150669625747812588414402328314081674320996798283595145654997620183955476776587172336978503427050402654150091702953757453276831656544811050709281798360925297940994976962317968414120666775900711787329442403528815843929677344580382947058917276914022918283023293480178274559150456167537778280128969558232331738994925639575602503932036816753228777370409582963136840127702571287058795765155403740267215281882318666315270424273526999098343093769490713454934437726978004038616139050416399663833292644739119643745437911695483559868247219734807896577845365552536247436547050946352324578061276302166844189530669328075167220613291473699646682588342444034396953356360531915388259724230381140163329899401380791976217479596225403885533798306485571139884316894689288871128965881326282017515663047188109283166849347956547520269365520682211715661655803428893366763046069388981831395327179074269633773741979539292034974461997321712144128131067792082066245165195705717328902216017723646181091759252095560781839992380013813940146594300726914727970826307763522484397319495000291405888280760596912807968256402658916268526173160675167474392051850055365291990717449772504509605654810377718036057784163646080669535315412504042816106141968907179303481020055500464779620015301630524698353791180257617813497035285145836405870719340730243786003452957708826662569894197394833143614789702420997116442131178950987444082908228446040787982273360072020217697976798521216698339947825154418763320674744414931357420168554636015161980290828659123259778669292720238098349619609193516152181670345784236133269065043511608404019171203267946223536191071154511730945006434288248155171498032773393400845731776369574278947868368191998477551439463192756290904449385773896571438345776390616867665518452871559368089261705893824425439104829056960839579424396445626844194343249865017662071703996761760449029953188662891622281414638804562576128177541772443290436614562805775440716357771610407328090849614164500359504423172182668547958924646595505111910157798995916465155213245502781199524611418809994064540362996376396831064001677091620420425342641297373873893711578532749819161815550939792706365263770753626124992744374403799986371125522734699001452912774950161435509020064934424606743487743147280713792286589532164324866051190868942133763487556709197429035896274643840762631290809575940838004763981888003758706364671618628009313111650717265168644076686637989837975509747845242766317475002945953575388666459414560397772110996794126995592395199986430219642565368851661765213606947168938143912703195031915840604433602894109746664762545771372980659565970730176074284241728634675942899642971383730749988379515999875285617660456712284821545303278832694929283296203249852636758113157473549989654897305372391925202404657469095432890356135645855445121612465968896377320890762847985022000768674301638380388103457736587296947641488687965300752078170796796169301602234729905971721164488060095108104588137102613788739492390872332418028024318992880676208066562669024286376993782529233173228368629485600046237105420302042346361985754111887173850630108769994136203090809801430716501020643570229487926380695706267358208223820289926960205420787591753238443292832616866336283716029189561282996507083575137028235022314365885833173267598731026621885327545462669913019191134983229226115691339677051955501312740188549877497533663971876645877802798827389987406409166665725901476600057001521081459525416892165222893143457286026358391381346274560441687590891527883916291751405577536877068208468600175115182632041439752956756741913123666313356218899994079376693970296608744206524984897830565671780895763522400734710201616210638968019215382245129421414303639187918248575735924888860427476201237579032746850746075336990240376606712803796605050605304107012517982303677975035740150153459392949166687608693043385110449567928059479919468929834385678733129678824174827700759145367228472387359354786911124008640940585504996854217419186084370096901859309856870695636956449794146028218958318621149343510433321728493043141988629927851806552648186397042729834705238892527491849977329052900044578832328116051646742605256690398767484436111025145336777202168663955643417968278212407816570072229066890543478736020590751908245708774730193645128305378094552951093989460329600219913088713408943953931701842121197725074483131216568217245655316576360048737663512917995693040603990328199261642568685052025808684978034174480075177449046345901374295201838291936604119648875468267609505732994570764847853996834499181290209500555921680220691146709135773259449192580577372934019272175793438932366196190883375023385476821797913776704710464879778968145796842321947860571507326803331361260848124942149769906492475196199911865360291808494670460927514576462155466757491046071942464956688063908506244790380991496125354465811844831438365475182050565618280907827994520685365577474892626611737814912962068724850309121205620114528042195146689151752966429476272067410314517599087483013779580339937091096277971221693542612380092794539602569834650372790610547133496847503179701330067113896323506450965493970074744358267254007384294932385906324965315575665971234715950723152984145052289497032101578200337186722595972133171178303228948347716259644677371080556694753727158537696420178635334875089909158582600647058421315692078980409934944446601218669104539964916781665600718954908021051878988013258853392643594065913122844059530564307108538259950102378129846167176354597194116578377005955737738869226353081334644397011870485734677745021846237013395868090882258433495078214360794630960942462176765563211625645009810835681562317004750641356139991325098441547800785400452817934060013309321498917680928899820752303115023363098940553147779401656930412236358428739033366785317124372594211950891222528547325253663884508554170820496528853634241345528435714276358288849012072265306377342713677991569175712534821432942661873969669552197769255822594290179456929724553072650307177584889068642219438345608255112628370626311884427054435661438971342501485917452987324858087286787357920429394587683441890472708237865730480419151079341598223539387764461810267725557494238787165012161149381006628082929743466181479695575690405441033953762263305815751289568342308356267244332698917726626640271530856864778567986270102630156375925942086741597921478268084236486321511946596801731428540608851417885234693746983697812846752183887933720868620342830997531390868229845685908628398658780201658039574884520666178724778319047749986139241351105451316641769231542656831594614805634620042039916145643743061287923667482521217709995884057879321195794757046906809246477545368330785289006334743360145585243721223507216491367891398771397606701633030694359933963051312032323425404203368604954132520261757049038035165490999490962345047291603759508975181575367024634233732768461366073542542867003101506822045709407703340560543437177341711722376989016426051438821396396797534125210877142113338543934084382381571213825771216631058463988339489588850313399223788247011605636712179682852368140678770546703176547767758059608636135792963921277671585884724571996214953172099744224696949915185131458544153802604744652114192980711073456637857138762550999733483430051605849989453227670824187172743253534753340322837637263488182595351083782458737243077828812840702818638312915571634000689362989366916598336125431434842316233764235719935247164090045908354988191416780979035967901762281633933292363528523989777978323765500604395911254861980123876108582255275738366747273268650053729041106858890400332293411545776886721244098316589837748420916206047222782407567519479292167673435400657434913503314770300080481708073015782951509918867347117977752361967707493461564098189391228649600483542682418919151506808968940101970900983957642798873923231229057416646318575581319591212577091544779573705920542709822779636903285770109659462306277496143721385178829901751792593641297615142261508524749528609971825900641570220586589091146489382054263376649338042391524326501078423644318411588629354878509902855066628797084717489775639096075119429868913515927765369580672943927817845801806011529176202129247914087218644747782606906304609346132313274571151548641406680019088546017231182890050079865972328633730376658635011789422549849269625564933462999955992854280248277796067153850604869313996044786301046843613983155370599346226452155518319379462242777656004425534184845736376106168109367977258820427626954770827625461238048282736003229742446265000317814468403381220083364576665460573387409158229512833245928627235066784444834987754675587783526955018458459228939828617432318784912673953639914867619128312229945618727911516806242465081383059808255638610408348066459658671724169803281000813786201695094769242345932182896708871004830665576456827557924618502830065669064611244270795149912130652147317922566508836943037291346872386351474934544940900396696603710368689558706097503802198369195946153643591943463563475518898185793281254528683976548555022265697504875782382412032582157252808149479970873918479260164757242651445832469552025281229776527171906270399647119792974940835347811636927027682005347517596369445983589032985587370541996351495478029082049361160418679778635504007756295346665968022315976020679996522272797425155775495594043068259823971255394790002559357408028886424552706127364824658353465462639268877474669707661734092838458369337366580167636197150403898851310963531328406586938561484805358214015699570910081146231804940388032042518556423499285460848169103431430755203680493009638434650884719726933428667297960602861379981680953993363930206400856393311786687745784423107661922311451436966060284495273365946339618662129853270338011177698532887296130741162339849506600284972266950950164453730476507621455898988709184521322050131316770278826320037859377295756628976840354982232126655537986882316164748408684023880850303745403768544670448957420008982148883150117266401879946286974998483688114732041441848572887086261607267763678031811064528374140387206779625393680825341372684192470270108968698462681683921286738855416602382777337871842183783197352187175219895658675820662862079231584049906910372498804643852467277710594254837332659679633383480119680616973853670172975425058666480391828706764244906173219595640921243364254607522161640990247570445912120652729936271055770013906019398410154593262156347068696027334651523324255675245924085719124116055551702732881231746800749723518861151195097378856866171623399096417396941428761200242648233298926779066511670009518725354227380914972689803464527039161900175029841420023350376180229136334202912029733646866985380189277044923461453831517120268607931551078959594206338321641655954298855252993679988366233773734070579467129915729985612563467249776017005501192145938494852963702236096635472447435972747049472541826168781916697978534384705636200714028021765195672944138588051096229500109764852036246157886936000809505419324683723742563126021786405437265259913095717937547183897971060272816300069273063395035076728800120332391941630237666349998015716582476998505841660576286900136231007061235989939418682001210760048593632538105162052921532571768164032744642987262804387960995714154793219026066758597258185660611402365908747047087003697602812741805451098589172626538108658016927469168323997466941535308895870731549876603975927302854346930767719552995913250753624939001138972505509564064079525502742733857188010061757337584850402545734781853068292527225104811960369372998876157984158233212845737009674603612376319371919199783047409440161695304022108449586024738288281770045506717390198980882095469715229563880704988482414508249386812388323973290701471136604421294721656183707427300520664121132823946596581150554684056797921486435325269508077394608566902047375099788398557135083634520958668688073570507009083618948632788676487577534682993695477774909479445551675026479116285768032234992183709658223545742131686659714765233225375303239867753442357941119868676725047929630959075162169753062744800962366497438130845614782018011452955069348121748782753622381768129088158856623220232634536236473051385063075276647049492201982403425115424262946625060929850989481112267439814527703792251037844083090959165238608119165165344154729234135329847705559788207392479976034594092624910785638393721925365572356502214044589212163263494419715787815672915458358362042384403581595632057630341566539239144980908590192709026435673204203636405139803964161455769409249182385841923757729991317926656309931423269291367013513563085456468458939874437478405275825419422025698480541672876897595526863311899817104508037264950339882079538023174005677422573736013055668483523408369911541947196455118187924960488524207582026021323212160242643156458156422242923193201946428379637090892073059671416887430467163023483383692746851821192576425210791432495198982533652855850422509565746546091001691478972536569961014245596310007848650665006354477045917976336809693764347311087721227602550283136081223811610117701024193129734716149144333115704276495763845990460646946972416817688581983745770150625653184450944953315998566258690083444163930290479204558446468278112535310361508479205787209828902385866358730535644620397676898580554005014836012431156734520745856131207420823150283783218582347205909002644203190011940176216306960447673578424119029632991418943459570371046379796506642184116622350612289590311330811782102628367538840085562030793368534360560106401586770169675453012042534050755465631160783483542958585856398628021788530005192122422758591777155893909596161818479254501880477454295637173312377861882668692159085858855510474268184377757410580342829718116623893567526048236646644707857898196859111806867052880582305722165995732506708271379445318862445116164097251733050054571030557595217857657109205083519200082050962388431858686413415692591565114676098801955836970235781581540012256754862927761796596354841767880792117461443509070811262403889189411597084964320609132148424055015996517461230331089576246107714066221827851143216589984373813742999132188503869797507954577604774059365147898981047358351410477184563091361938719610836243888721003595779577844145928785425729928021612812165503498686318093050534346019963188014593619141357490914792898829400006998257621892761705295224092442664124410840189135301068080595053179291867754130772735705792425493264744912300801776959319620099490230601799421480915334719361334340725902370226940611323007054331319513574587999591734825044347891057691851071068459765590215542262554544675407012070706212680637126927475166850576751663349119470063976774336488830697554997505965988721414589846460320960741763609267269629602691905422686144253196352073450405234476130366088036973592755454981672665097292077695567199125083074076890511675037932524898602155990545899476943513742271756578591029549538680663114685110088400599308858227022539894333273257005233532153827802268684190349399479804863967603589305458548367091497485402560591509482765635314800791319999749980118269885238734508221765003467697283305662169151585564530972457106167871811321583112067097210757629713757599388786452195864432761621584224909154217597653255756777410331738087808575876484176430245219280663746944272077349161795955899629434492059394616672928660965119861087647632340960332777272320236424564923441516359463432254056704749273881440718331237249091182590649219297312618590559585719004597174305797661952181804488310371888248477910885482939267625527500194319336228882609700508559563230680275889020117219288457926333438789639251863508748195731102994376734544044335331076777075420334876218493096041379565020918790028521292669355868548394316248834682564234225837974909679869560314924011521265405849970204306587498864363334471764746948106632930842134218437360240024088599440558027731976626249142352294244413119105020150627483480387077105092121428895863391862547706824263467102284534303259427423898765324998221598799415598687987658252579214157705923348991727968584372976632537801754520385907455280126404778775226034899828790094728286376920678979474351618767944054654761239918075829336654529530280989883850826786365394645505825778342336851102104069286339494907710358523379820598884280443521658135493890168542967749132080819997980234540056074250256189132005880455960407425276751032042622253263501765158494941746975919443250845832630470183949409008970106824765603860971534945052491699610408871611934454624034733219939535018518166001180201101445481158724498679504217984725904425298301613744077765249240432682073874338617449705886722290207717589401519646385940191650381338473813421403478770528441006032520762072195590501952865758389599413514472490128981777862616931656498709835976441192739442449003021465873390249439624424069339790161245960802988899068044430295845150811567745655579832626413934657819209311158318268737828947199943599246377782560147946753047917836087930567085407847647554448385664734609490378369894640246750163815781703184727882163599067984558250998682158263861895266472805357658456042907187089227954579702782790843981118718320003193278605871732008894948228090358655335083790052978150283471924490523877802464007760307170487338091027909034605846178972759803623833789515223631545766999192288978777571958641414383787858666985706750614792612669751888297393047448938724710181920588410691654152096088858001210634334284016109619296143897390773490770103968269747963312643296727826012095604893325824034844554406800586421965041458919365284287745034498521913650036954546087226927921044131804534218621228948702066547717887847311626929964637409276684340394043506553232112485201309418221756700410125431770515513748728251575705000629303167506544775033892958228185879850313675725357233252700353443899901079723654800405373742545529757645915289815345418707998485429416992726091387044871834873210683044790705490179275933198694963923839041210124132278457864759110614367340008428016049049274378650181844433488195717867814479467144872925090664724594051454648715759538250501718212919739062606007023260450926593689287849909123076509110660891468202048898935638005461127665228447308040896627225908896170229900387562341098693792307431131657156393357041860189305734388025312566363396184414560135587462946615999297965730182331568713214012328122661533311016237294477682768406967585318735838208129887528281414619306147673161441187386586073515368208445957661458000154163823559321557908287312631963025202327735415985208903763615695227030163080925826921063161609239654338360338783068371412399993458440363433276644410299439139589735978568022744094260427695116704040417027751029243407600060486830961656229008073498402866250448755491916403436685155653317684793286626045342074068425511053646220018162926655919181288077791469638768937407512043172660515030539587965521791815850416746829115814264639872582179888898075975443360162869971107729673439507479009360825331349017757719435696989494187054252927551825291718369648043830317826079167661523802051008602223474268647489354690723099599000137187173614335540546741282731889920469740353056241958572763764941456457676360500957957562556606820633005176243035340681181228868962029141582059959816372764816666484086072785578912510950346496309512533820112260005911299532098400086905201021286080147995533174346679478843070013910973183066195416726275356528326801679830035144075184437796590833951009516020181613980162616946803555556138522214519367365410053702973680506665782979280068474237526502291979277853764783719942929271804511245369545651565076777693734783914303837318575922865988852815682429441573920364335893443758957359668358633366062216621610607964728572758850822954451396964552758140533318470986774782121168685446697932542840143814164300266978560144712516123325168001635317650544658614241398037607898974319341315441235163018946622900575645377208037200567632042426980761143275936275416889838318536245637402501098685313723541614066169677231791836500386858134376426983381500592666741958240629614300459118282268664447230971577914189359309915095582229417446327342354430754856370941773838411808930056667901838604589994194077275049597627522512337308704607420723703643764815092034600014450491074357416806254822314226624340870187619161612907223967647631678893621147758002880893809019226420806557863751101628962618744753872660906228900929392321628221394736648890028637935226064345059009702828591541290468075532091639549618564139927298020813837014070128629060216108671137893329343446171496812203481418506748997378045545107417974265166026983561403375213921485318327077588992311510827043205157029360704635348816930424367265180330904310365290026444796700617271759477554576298697070617894581417592907462488000326173881584334579201290866897648594082357173462301892777479335972361441621212567060810356322599897838390013046732183140733261152367856976767581875812913014089958733852279458866292433552709044016950811681864585232190144276124856424327935145848910129783250476331576051008436152087266897565657788393826046773206191396354515290133291655714457148323489448992512051888845096897482682429713614563757097521655577438858721738249341206501928912883302846397196446392865046533187150226816243482973961847509569409680905876686796299896976157689889689848050145853563218066021457162046852717309698351298434498538507433496306587628036338875493544789609153254938526086455722324023471965365951170874006872839885046678754557529190251909999815801400615248470562266056045897113148894965186669108993856661017712548548630329206300810304041449067637446426522375327827872251672768745153940664644843498017032908578198464884624325911009765650190343346778807008849684109848238065570004452783365895068769248722890088515205663377305773326731623429878966647019073564506163164057729191847878999121367453281229885593659123928875489465390977070835975905058390753569848622445529888084792310321748457741595861916396453291043382531898179822269394183701790812865931535780408001280810380385744665927187204566202584747985567082925279050130777854920599854109916098806448929529205605716171938843207675380488733464686642247855694960505010065069042463659832012990080292122310160850199033762315360251105318257264678714628552932043971781625834383363080458649568790268928964411538966863239868865907788300811062919883227524560126794175069800418077287203546380666708058251497560246104895099893009931917585462192502303444853355855566665097522358931134950774589181369759035829063569574077292311119132763689384380435471696300550284267532693042443831591417773694978171503240402157689209841008727124570645047803875397821056103942773372323557335682844394292945132588547291665890866567173025243184514382322465849409308644052567371719697423417974695855674440898544181041155767640249568549501743601190268551424584185479366163720719088737653279633813930503252609783343811362806033516278929808991264074974761666867651608514671504194517507020756461380776419230175080103572378112885369381955809530527619554930382526015400998620282967069212559812695314591971313087749990439704380213460204297393854198739656360420568537514214080123094424472527094810044472995827612432573790695230805031661804007661261969591670648225958765730030260509494562001229371097162214725788743662994997575835144460104978460529923869483892965106312112988079410864989968318038920125366992691684521019218632934789586941134652209332391398366608467324715794163782080463025536579517991657163974557651323245679958480867925163596213970937933288523654526536297505126960641773857489931578244076081359526823414380666035610434729228464311871684458844984623324037672796665441910397180334121825409482757787084073415288059005121334809617426527872760331576997641205846689931678190693295414300008889864121351589323540672085921101745097888488754192989664877746294339280247544110238086202623624658587804738360353059010781126537073975014449193147759422546783819840575176428939178212253188423402391726028310712919190078090003834231503281744849795427679269517326726011633893383869756117434385247633380817569327099110360756539075612821328822162065907553171038954787878828686858262404365810849774146725441998813133666631459518311730281238750982650223583806416454255556800949428421346346965941898625019133856285670349533781850389473491508306620665557703904844106961724577419835230753117296078786496292537837197163627741808944850499477876981848936549418499701486300293689855463013463086279646039565180070570936132345050090547093256021211072762356242469335021946121717034564665553170440608841804322503126219208447041065770289706023915225249005857071959953376615836170350061476296632966989459208923490753214078427099720045417907967682313758777634054302954579983750752356078061689712459338741451755286807566473934756993417685131324355194884693890229636480869820391930450200930843601668677112111208119175066531885319456558739579815796153262178964537514972039302952598761740110668403939561431296269662504622241045930683763552635562600706279903299732952125632891603028684792072832164459932135795952122585712149017691251743188571800412398342457078656174821574636563679120034385734828130003340152832416841313795743083821685022592640340168857366092043115820957947205586626866147895894098931145794389280634251783240911240334781169725885875167770265061877743639335670198616246395921704282280820965532131710001565061361487659342348587298777825839576084471088199563867112625380527214895073284282730033007088930007933899667175538570118875183320450053377972893923923818315733298740351381032129761568509443874229192485115228524656303763394332766518420266312164009195137444891314174230821995198483024632871237181346437834836375038660595302774655145527949301344201810621209300699850069907480541434252851767834570299904776843596072503453356689892736437500289235443930170861900452364815531819501616775808808380434205099245527245415581466826209758284091914789265210229289010585008572638640426110445277957883187167583626058082419381094785763666367218720165134121128531347489742228397095960311203398051260439583282250552589388415375423480401329191239600392793707726531089541754603029184056832482857722165484055593166147047719921997837810725954751182667816807258235697437575201005258866024833753591376678400705224707747006455696427669312345715732892726720678693667312849157722896615868553630670914191726254101970771301255638731757631418018507904060845743333123952958837348214791901925698721135302257029699577781499910996658615971356352782157990943272699454980555911275321300052284109214204837847729350576407253417376382194923672374703495717529296277610041746443738822605200208836735408518507445646603917035505819106343531999727595614289214557584275271318781900878951667047600316459476645205403139339436908004319897427014471993133747287388475644270880750073955435431214939691660819852684327688555032474463468089608592473926845110134392663039142464668042474583684082899785959860426826222982512532845974428887341034849344405465336517044398810178636545186817381634197327935058535702303597749665590262774383060812585969968610393301317258463179308982590904418123182196461902262203055395104117938171419286700551307278512057489625865380126244758221506090962850272592088487017641792227806368652603999103891633954275608253331880130803584488777554362088645701522846516342347005912321283687413930839036126237258194869980030236773663931570257155180084990810820702523175462813262364328342765925146285983351789188357131146810447052866626507003773771042011255867518948072000944551632838071997594031836720273515332276503927867576352070911242876877856498981376757087620707775543038776057010174842133315782311110548599873469955553414844472031305040214075228947743074412088010803272190819829259980797139612244019387079461750869588910378727929657570768114045282961895197605533726631907006450552320591887016965239442735372751575127143162145178972192788886721531592880554216361776876054120854653816528015505352043014042118499196222842783101281883228171261086952023082111088115828047165546489286030818001897571739273151419629353228081966373241207716759787514203617037112308248299406453821224679716393530048344731175188616646531827544812902309218033218634271467480930536842827273143772627382584616361037593839617512744771830941068726713352938575180835681206531438288907651703589303132921286100778336479879886052261761108921556370861260153294781453643008605139826898712738960761595944817033912436401617237487556966872095346788879575552611184324964509185732603818016233727131703387725395213631668450636868221185654583956494860041038560778049289841505411080974117683961946162055240052652918709964264116345453281223956916420052978235924266108217199179995353438353116020622847522383560259903521891866500856965997875784634700199129446136137460441513689663911208755674191601560533378422877369343458689550634851905859898646202919615355374190801071167317538125877020531263480026100151134408028863523156952790919789980155266290930523943843533978934449641358869613717845348441838648471129516014904703987060916703568492474030212799509682318261346628891334760980768049316653270777665832923958927816755896620273324604112102485855283953403089950563842062068586049960748120190991328283554545674111914351009013847923380590781858937550985149154708631282116630187280529066205650257440403468535174289434739823523481304504642694339291612996660978333689462803483673207951031529095706280890641959166355224747617278003776778462212051863660368016515765414692426426361030650730167154471047666393678129512977681099006997052916619328713150615717203714964873584755823469717323275055443356085945571099674296701915154134125248871801915501797845371610505367334073877670586550398791089577211408268301285111257296878461745550848193014541953488746860250108612546678615436853568822789939820814046616730539461582038586755796413096116119483711726299764846442552588024336870701289925020239192793613949629288770022495979899485093724052971457125049700524664040179009204130401649016547596433487844512924586588910003597552411168862123934740418368107391007062985959514605735490692328459159566153871232304399526228728241722229439208752074452624421407078753628145202779998156271747029665622332855928604098891649023424401240332149562838036993715837246484481038590496142936830942178245491092092635647066293388633295915074707583686266540041932568781308204019227490683272948051968220890132714892798196964992760989563602767118624506647567117640950902628368116759262799085152791143154070671773644844591163742792212961070958899413891985040346289862296172190025841119844778135213980217228964653795105224133655593811256701619849129942351802139956304279289202872035444160762524148717749761772955398929993969107933562004166310093480122999225997839771258240856327846953592074140212656192234274985891550906848143119150388127854459404744220505152838796349949062005757404078623512346304004246136637861837254816010465344284498609642612407025073102820385425149566997803226562612619536787963340655129850934713468130082148433918753878415431437793443566255333300552471454250680728275652339178775760317470240100171330727243863994748774636749333056095768714463544436083938805654232682497335752287436119412342488672539371735521018995762597701749760752671848879030826657295467030407706792796818171000989205382218406086450256539431767029605455783701800926986105637102357284935527776154890718477912333461212374815364082881031318986953188870074165755932448177866878240775973509462634481793908867825691771929346497292879827698078152564064264518005909609434924588416477430586152874652234551391687088927116988252578397181332941288272338297197205383500853665040687780880942630602380407208726845757582438092997881424818059061802703135974717391467932058606320351929832813612915058190842632396590418633795509959332321761324170114557730571910141502725841443617032754384766107333286277072276488773441504917906618074894110521057757199051673739648708011623293007270499194369030918796362478868758482051355087859978439821895889821518398486261776694132615657971355671229471444785636894914388722459349801965838337328851738093186616014745983786195887662095386160649500596917948567174205959147965424202403946894323274376451278255939294473746288637216101481217920498270535691598220581366972606267976540780402230627725084921270154553472573310718011329129135556858196048036102209117435423597536392085194941631533437681296934578659284614089461229564178172343472765128669117392450165211427194207246738898721999213634217285244442096319568627002298121348901499586486136372788230222552756261541836082216172356033887248111913501757260140417324460183107481250988033687857693243018176244520962989966677771313238349322732287417954607737085964660629259958537970296659460713456322913723846980653979815142812946424190141781500427872590278542048512006717211944389547655110370190646999516630017747236628712338319228983415141853774716897198896756549153462833991387809485663014521733536643281377947659099319930185947383993854780368099608417197587738088968894555900422671580506237831501789834818071703593921403230431404448672810462953045205155837068742221320940039108385087493051001425877239104015945355518895910068369588383282754912500279928445727519895575003551030243948121446815722122625542480752915243448813017262754356908863284116602075179981719266433365117625313435174826144511265645819801898479850125662959411838798533025063742677784529250091323275618174862935165374204963262425059300146624364074768425411641547793628116990428838786068857194129256440176720251713225127092690143729611831220284507057968547653121967196715572196756209264977276935333471184455816256251929520959267142664350635331554588214074721628264466795447078771924895801535762014699467628355193698601518237430675804416845991527458926970476809344827873983920745077174103347293903249474505720514230705333230003031842225806265205476107388532164978365366563221074228210359088880396644920385478941751271701893678014429825692874932836836254071253190899993475482152631490243155873924437247802556153808893409784794844380679024707702210839571362051363934002625606158946458948586634292511354264210239079335552739753635476449746569900707746773619431462681980837900191920785400957619507059714687475957029556494233764724383124426215296285248715847405646192525924486240784155485824849745280026396745642323814436088768112937751817244802397737974014943964533911606502417634671869644186271715504841358112339612874452401027704289273067153268081173313735781599151888752187654746655669265745945477384877997429104099117331298984456257723756833196537434085043304317678069834198777484168278795867014220315168295705970087298996921566851502130746703533848485059051935049648955883794478453081253986878138400181998854916370004209499082988252795537968617027656511997626375219932590290418665676146578638190651217430364782631056360210575007128465636613301759080382182510739308398868056476001956914106476797607394413902982647652611310924923339833131270413046385642434366722128675250461866512969187192994911741190426678709951245440087765477264398608178144036600543039812748506425264788466529173811069200412456648894915276457162428640196203679275765287527629813768200840285186057636264291915876579056284240224735520745807794205882091924206111765231787311176854045004515347541565361663549487763313525509078550371992826958097718167980822329550501493285109995175727885950787654238494219909127514303135163735144086086664894182261769417630184877874923084124050281488384442165520129067639954212637389126456174101711027495857198768327428943153036891224384354593241615454047962896465503444166051655366543851777711461228089006369271947960850107736061874976611029115685419844866784807002378579642469185497557190471869640660545211416789004761490265115815707053620915275244919544504167405073851899621761906512896557096523001442036884970083693097722877085982661464753856488887839300169287054700591422394253954410662510069089379392481226678233691570733830329656712766168609375182060111507974097917828470685530274767359179357086429288874925559961157295148555208302861187928389094556301540752188532181313443253391804262199018705629228614136686969376727042601941654656266398465386436777003253761723321806367045159582457011906846007359432694346552243911892024339249213699248999730013135788545914398264004268723015256369679929710469187322944393029148337256395707524323629467366407329589708669947944673021361548647469758195214874404529528629748935219495453695798260289869823168259704557327132058215840385364666718799370496520284828842273225613028615054454347546599534441260126312450612526631097434907124209499033384817562827361225551672013968673760104443933157064691751283068824912120910086307887686380733443333286171418688846987922067770468341220616017897709220864065011445280100195319446825554183232438026476233100685574413773582417896857587464972013877404770400959428566521632260514967436993318673146205680848592709344419636180593112743585149220917075876215798162956977659741331804912551975916109171357756504906783064149608051293426771254427130625835720667138411035800243211558700509584744434278639743702357760690730184212220258723622655558621680926320934136574152022662319705742406933452553699682878852664712748111513275099443665211308828228958800890589337756383315238052943019586254364141605050881780890595614800529700780547661130089165775639277514650378074839674919671157100325072917506574242415202441350749187359746984489226497213200616598693590676458155032164248285091984117442373707798184698710189819555682084628309486570002252438815824449039267661049956295770906142110895278489171127339482623165655901469449133798838675247206804697540673387998731801647338821990234605073576990805166765610640492594821468866293845353266322804790786842391920187737123085351540761177588913211132493175752826421537077594690558513914290829031471957121193219316781346509478187384401757559493346600084405395842264415759580825266097662850438860414936008529536492951801753009742747989838183746140145194516978127647479448086412039480464470989314311940525034880930309986741745223640227128969269192659044918067664635938248438241872120481312785888303713824272259994947872193621736532105497451419514711187923081675237991340017488969208440928596368591509272530383662673737814822400741732318472079406669821997492126664885205960193315827457892904236717076076116273992457384271364809003233853032158013925212459621790537905176487270795275067885258874078008182325126238920776316255029042347762260341940200039618100717613549683017117255275773270439996751506026353468763431279909614587158236127679803018690392780008072354767440861695855337176309057232883569546477763747132247018998857671956504222343575659557348004876633670027358888529660564295658122289907175205622663186332076843928663830836596582862115331929615665715655378441851070355381653595197458674634875276557569380280439989091757857912615192359508304750557008452522461127078027478624110503195294902646803639058755483161972960314442200877332546947397901937611912176440918700536704655482860452494306567767040362625168270163790066990665026186243037205641200004894112329253818105240664633290600738577484229226772526864651242677336832969064448186692383930203758816012491651994347955526987984627105339347517950919989080040316934887291981088504306867616571945080867481451211442300797818326914209382301475426618957888881016340166154773945443744193312585503017953342137649595427459965205599657485246908150115752699904694034146909872801679080499892379492225661578212901334999942708186375423128016596593485860372433036346198949458018305105489553560706959056204316022913170028549008234321262161245519224682646357231865387920357068780062345229255256425195318337558153580880767529531046111986358905076627379174651826519738675751737128888690612614936771047675441698434100269827346217576327973252823843280854830631527713695909176202335522000324966212004963321908963300175082363486107396646240579766735511026409301513954391572768355007954769984132341194917021317026135166295731333356056050097244911905955573089867894166004348129058761095791053923640760107842594880472010199692222479733510127633672259398654061579727353395865796785375797140736179495105188503464087748690665230244685736490512453796667234330692703827046658025658813218592728530507011015918480511845013388768625018270517900516056695983169606468081347735433080959987568551876593561201631286013410047753551166493937917391629156350929809318712731257967356553540448475862259347017959542354971192507286352124978140847010328349503832217269744757366491383161419569040291518736364963033210420329478723033602003342916989985568699358942604215294283459303344616030783694469088090069320172458338035012101968815507822138269561062980387746813591747771010545567513970111906072415522356883235165507591880365408870476226997783231948802038259114948055123028120984106170172477348915264009603532806966132684622664439436320245845436835608599511719901844133592618764008425955190964845332739742448119831963764384619550545573122852089161661636960814151611087296487860779627547595139454213097178952103511909533917265672739398242211872437541298998176774478595022090797159346502795572553262530805453181923790338409969199850608665079105095598308154070353307467196665805354598968937560746837858536543268976669179529105902048675167291392412684997382780151174561026229096042325522218850731676541248317224215197146834009552826349330795176476172217146588141793012959018620557235796682071850772685903987215895744218833605936808444028547362126315041446486096147132370124539255649390470948890710363552559710532355375587286323594252555239907559049514121035816450452787410438924172038578375784697680293069270296019026890588886389136617125272910868055279709981028037373848156201634683236482716548073218534245310309623166576683451637628732283390359407963959878077252676838173262530592903440987770422548536965585887815457112668191535929812015438427033794609800332639725213243873935061389638985385359176584320536710522586640336926698146314135537107987388592941116869152664515542984998058642945310411161617292539449242339314153575552461576370527958321859006125519351852104459318778992846836396285927561952298666716063606333789556640744481932677271034497020388291904075171151005818691167587217380688994006154463415452242362639547367787285405318013419573900217308375349248325422458266487004847110889039586119053032470786744543287363838609350456425913208087148745352046234790535883314958819771484427673562323115673902991913986950808158442458707713861704448653199239456443547578358541583964597071152285002787172292904102951627339220997666565340788063918520032782599364883420121458010014325191934516468615346603123647777107880797700209587929353280405074578206515503497777675985843284487626261953086732945595092118168161478820626293138541951020787964753689752425290872759936992429823246992159820783488440246618714575307912608616932796365275842262065191780002302659511181759868191948013313831709465922536127628433087962246375109101978845757124773148433468242515743352900914435104475972288059182967602769172964122568454850386972237862681225846783331284922318060492842432260874167404729004337203301000406718766955934616328155452039713675295421837361575677690467203360839465217991863612900942755503747178341902966420354703567127812309707992174324144353273689207759714845563378671584811247611884534068634102732865540072657991993024397197844301781581678696308709862034261771946345698497393814660621409344762856529314585696865495462259275389438194387253652656631476346737275297368369017501316711840471023163104589966118231540081172185898172192504060846195787073331963829950536905919880164986068988120834976875538828629103743501283676936460289401722219934701744209620905435472363027253765946064717974978165795096748905042924722380312800694843854380514418281355811436403030767578814429622703207355171591065104356198835772735861765056554042226558350219886720201906527764633796918374878419379691317771213992913946131045041698711681287442227254868703349572309089103932115615668578363711466638920587043976459103604955225852045685887951112043785694907306836301932669163144413597168046727924848553698157238557419502896564171979522606880637991837344754577575663699259885429236309591703515857836589683744450834991823361338131599447002615805092350063486127798064423816151704105816498423156101049718000727412888010909598752801254919732569037005677019746596232191799664091666480513333318185066590473614976970581010471642943875474391948364476855734086606832757798150044175655296715144245883058307163109985792863420266374104290474509608145549379344611934850814032901383943627067697551200720416593367191711151933734468264557709555926887195588570935492506328184353567332484955152580378731960114736248987746065489213721395861419693949146778458551216905402161986581963356503528531359100580434256314056145158468572356158487014280146189789261531192218433883341983573432270587302103064574294689074259670923435451317975219072339861342649953425812829234876403159567554839449777351707004637382585878028945109826211672224996516194400029831604446503826399026824366139204033057330784197657453514758681659819969119305343811902482466087271830305622290781716993498405662442133806060038620610052554792939813008241092728315108186192959380336168102547601705902863724589146105358458509927406733796141985878866446581830141281193746400373990001088620616842680792278865637210492297474198205765719207394136562706259693433831058798530012691499197065329856047659696411140480478150459089569441553680906673563122365220761630808028717945730251274152873280837084693582863686825706109159652862944579569718439344550992091178399784155643812209888748752818246400743845467613531646498383409341757884755306592543733158169651743310976125396394052393460400836985435282076878243289826598646568446562309369579430623620801609951060227132804663864943564395543762652175296137400948509195553600084194852127115080332267298873650012408703991342042164482995010366154362265088928427695823941324188124936939500506649558003996473849824451830227432656478177357211417721909455702942827327548831305376911284364030796823797134497836900413031111599892254431506489629962574969053331531583423127204493216385187614950629321087847656935479986552287516959495990618587113337433858585504758191598803867771518739088421808492600440339622499447167447872671147593464291836176613946219860181696840770942747866126766030101913137164079416320718535584004125000860957886524284545967727224163164299608085653580089669039214997261010925907333580531310437832037393861716681400489939062696322048278021482634842160926786456327222921490529973703981785275580781139951566874365144566792327267196634017395105462847708723571279990257759493567143097792219261484655596322715437528152777024769319499755919940450334864652955536934737978718618326715031691993507377343345772334906305054507890484044332479455151991952950270643999088999663023454363174140370573577742510677935310659462772832502371706150125022718292380102344755205778324212478747342630623917483587481538687558724226043481654249176956887159217120007497080928443530547473819704803725299231171105330856997832400980394380750397741030884712164482362584808360882350905886718586209099396703455179322372966910786143156616439868877991275182652259152625195606041368091916519382202221179071051832250385958789467845668623154039213100037791313720258909290418993232469653024368305351816751109134734795411440101437288699299930187179363350212797946759658689624522073382055272843441482628216338030923276840858438998158213999263301244022344582395154000239286241644477340259588271268253746855287345211109048062231108557862698115075561010375983268615961178362890636845697250799869117745422507365831994546527070590897325204740673004814208647279376395219973700410997848521971393272935611656280867655487270883964199431971033691405470692210578381784210387964042484545506408996557281507593620348788044076181888747836401666367162178737570671720397650156517761321319439324905385744493563043107195184548382523509032217788471055996542951721505726626272226140429994944831742212514812696739484930030546128464306865147056088606640363541144137291111079476564835732753317147565896213800933597749521866027583312746498031792745938209052329863892120744522238836187123456650620465549804043787452420116512420654178130502239395300918869339373593919561021412299246567842419452380578074989264625756860903670230645157332348532628117030649376099760406504402358972223820921825176767896746161963943132705860905369898580557537379320015535196410845574853745951518176287866713501765083668693991755300886638832343318981564332428880683696839477161935492322005950514118445825388318269334005156279793511080044590191776149719296759017098468354081916728082187683500425141866789271782724874290608414411235852484964112500150431610312034287443761793004841363597801094815045089630246090523998915534975763455031231286329570585434224471948629640097067611749345879472380965566229475102429232490289045368807533513100722604624741357744949381810983404177600130706963519510064372102863595037741094202972297754405419366154670226369250148135393850293440475813124955794813892873135642228950939574251488328140787765211036116411071404933047391107068845813994456416860373029350130988472361215728699329460410328058233396185073263979455776460795881993849205635656566037377943382001467542921629953971222435549686960940369270346192155773169444088980318655627988687385072237806522591998431787072965214513236086098093633819056629407007499122752310872888461269368567064538221522984160216401793766237024766599339124757845271472532344352313646926334696799348233839906965110999371753104675129610368155301122281049596085984026477600319912067007485481832070154311351449619962148409069318605854466532490230254851842126874186500378935106971355761753782745600518661889037785555529125038224939474515532441186136111800188479006526330018970707841533210380469436270843805309837314332640216914783809078926774565936644075604946064584924338052191559137461437319942697938490182194117845859996067691564470839884054985497412144820785395996846789923298073682752868919568158213910943922193530588295863285620523700827214326368209378627614331199754439682831224079639664358295120265726967975579927171312420772876248589341197545484386095800933174591367135938266269665736411669384908659954120178971012137836090546257687577233309299014013872753294669934618832786124468805296129748532247324078215578391772710385857873551497276769510619959284484152899986744189349416147281940358680271298698580187962539231140518558893597308963821742197957200607435178005161476883911401892570245933699488043114911144246218251866067465874073089177189442864596843351476606985852502031294909684842307101698718507847530369404349515702352719973176610936940242015179212878548997386302863183277304382336352064201007375576007865492434977660765672839102464282411371886925889695385007003463694405427111834135370607625739427633520039234023084689455609740348870714646646751599260828733308212858846612490297943080330980349534542980239744071368327222298533519818699634368504079574889757053511271221084335483596181877622679921643636587048993605073866944287303451376805815848214893074631708726689854372524124371289760374364085132460356602535344488859290351035026530875972914862137963742576169179084576405993723619097868382940023906399051365354934961796874687191952569006843434132134101338511573984833364681954489922525808973036288550793972892684773613176815087929947953564162315444831110248007149630269966465088876520988875562214558021252880618547104738213533393435916050979364574263306760023382204677303916635602131009468422845444374406455101565038616234343659841924674816424772473068081789494964904065531287958556970227075673843016476634124386875695758341104147688817591722812217935869926687572477969323460421322932498280646134720032540856047407231050784069351181651854649192634457363179762873975986655062114794539257910725883672747286302224196651849866341663001745042372757210164161357637237042821253102546327890427997148480192329843335484792927239092688073253573488710402553135063655854430393602937188860949411511909423188244818169126741595927883426806766297272609896369286146276764032349332689526830846750817499010533292402376449446914166589137012446248448785877778900724259460200337288800459986029600453931419938738145670584825746502430142314597216271793588461582474408700937082354188902556721049077636103140055480259605144069109613601534356876656760811581244617039318387467084540352565461812139637934466680681281055246271116708635548623871893032008710002070868693401708672842433490506824059760399053011916381691973509473109800874078899787321414449657181493555356668786390712281676522391406149102250729611047867757617497515533361791726908676882780827787973267560309522982241905290900566133605870964858859260440090651345226193479556706305804916598345146721444436747266905349363751344770449417098339906562291939809488067710032654500226622184668839158891535040503178800690503751432111119354511848933683169891105869716828653393353285933445794270606930494260275429237681976004975673367690168309736211691071497428123918438150131572899632325977752540671783000914736984093467840818585951341446802706173661075833918181920922226600361664298145651752156387413031034737871030978176798937011485883154546654256194637518162752034765966787243706742962222822634752296220307051439708111034791599870427534811164606640945274160059088645840373561479189632055308871482821287592188285002168348648652587678619297119533671456250335008433109447874719704616738805030865143835141414264333246504063038056752945837297418750222183227895422642148811055328877934578351389874054077073885740429797608674581151204144539147817964191391323301447225235375083192127271288552997925461283914011176660867115576381806109488188823129777994479108464088135861883028444455574794053754432490370488081964301590623441759742932537415659925712296962730659883338718884912934981328385904912360344974430261960046866343578955693289496661610513079279348989388457777233970692684583368283308928052325091044826622501430226537506282913682127878286093705541121102789224015676624587967649085116242830789761365905348902087362226794024764349773999283471581952855240103824498689315798455176524120636910101477447655796653209108075744714010942453328022097928920548044222436849819443965236997263623107445536791742478952708021054569522132372390734484287861496987054089547017944261323659942110552987930149251649597235409941797149780391076541742541152256413642904110682177137337516929303038510232428226973052904169130757594802007316836890639910679992561679260725411443870717629975084153668866700944190737631654093832219601673592091487341863948923876802599005217412534310984331135882291516736485337337579711530086213648588254389187923113606416006363161240072368550713561564079486894572515093847599795017066985383480621230995105579062490235377836289288195967011634493296802058003976509522143447361569321762631612711112382266000654592809415116619157337869683802472382793951247273064720025950114385994979571222770308378905426304827845285597114265096863694722380152496957357671110213087358166243327565143474362955693180986287424652655107605474229120712338863028860031097278284342953702780392330582263247006105950027751750721217510289220446071708869769663475578943106129974166771761739756154828354954997346940798654091404268513424667179638886400384757827304895345052264404065388448165954149522542327150840150324256905098170589098154915480159620967273152652207210241586299050837625099769264176366300346082454962105490127493306244036582634612598462906894673864330165868828303668745149736737528833028635601991826628180575525160003826172775049210423294749170175365016577591623922168789624697811459360783585134962283157572035741460586663034082128200128326501187250712674281973974705331779800564431233421837552190424232827062705531112482498984556151915026829771600306815838047767067963744027029953093635468903162702033558851348643066821015240733144764278053232580096180967975028117290123595123708549106817172932519819780596242908706579567695940346199557190464282568514053664656594001566651237133466465223302492667470591804279702207766841657671116114947928279480742625299703176297867473374212661151548935970762038081012355275434554493327341557842841603487984888899085495103559237618490547911353257172546434472108103778497033959544370988733321707129725952287351798510546653711304047664833656233165617072008600898657970520723202866840975735908209720932328405636117519071768115716363810266224911735299535383300011288207727480524563466469533272479199656392237679044864258683093790318098939005423826478684520029450948494169562622326518354809676998679194465219407111401892120339800301557901647332844256090316684314039446913745110260687430303499885324126411860303595958206373411847954923703963037406833216874255867510189556651403344672433110181614820478427271721672210939678552816932590337846269627583128413624500446168296750192742048697879081442325125527258910306818181092316641841937396207944185269072841553858424536233468621835095310670864691155259079523316517906429224732491286222158472258206127736871532734356944267416550165014690836186636908381638897381734595944222153739499253613253029745558336989317975736652762152435297856794263383757089227875821800617200614381014706779950653662062832301068190889772315715769771287129038208629508331396630190111758491673317271729171958290867728822218711783173183290657338201838357400320904644026546763540490285231016131534487395422488087254713176519595889466044693097283844815639707047120472981302074050707316647159012427913478683207860748881611791175349510501337568605898934151245154788950226811058048616643480694009716629867800391589903323604065452903481337077917704768385122219634018126907627756701463490901948611226291497577554856554910715888383331971035834869597502393527189518657849711393582971663229094479410207092185471416259920161192340038426473095452402392798703359473984196561655845774889904917737633618189094144501320713365283212151609084774417293905121991817709075079824927980283019874337210626912834937180039191450998476366924834340961839810155856405584033789148556353654097623208990251872767547194169360008011210171114748710222536835854838178989683407088483505350187217634391581137932450413793775018098999606516295887660971184308314863818421440247192161698205554520312348630429079357338354349370103405866920910098461797217474884744417220801278541796557435879985163230522789240401104155269156070921961546692140256833465673703078899089017334444458752332693576599406521021791816681235837203550892896497166493423120103087610012510511496928274884709805618772867261541704974743624442806451743302993795154001415343664046271454422877062377892769825698463634617227443421274069433165529277734220577789936881815389796551708774733497950011624073544976164872196531339144650360382186953708402428686278275707437265288864944223555841232532482852367907115738462518418799621505114266235708980307206749666818821680344890570653328275176488326904061242186120059938615402191067426013488082210024128720697420754913216131385345233393702954531816055949936973571837867291171350911941628536725546616062896649013696512152638733045968484079714866693935186117564759316573324454912589981708198752187543923665096591589447509628088802968921227927292632167328011700700450876727596374123526256446789127189347076018915321203873233728911175124665888834224222494471042730460069138382240419534294767135859673291991351586183495956738165552684439201576041726280352440508947576833217837544485768441235501801677850003664822543711926292938322116304957662903119406289925352498903350845256205384683655952915374442716770173185200915578420694324393944088032855601506364752533456855198360611232776910605638048568470253210992171801449954767766255191085541882737308819892783496347537251875214631633389770043490655734232643793081477484962871472905188795860257816347840961764788927847087750567895511394199929971084317925859156177903255185859777489721328011411606390835963786767593665066355492630047551039416187207013441510694761920219506003524657883282447924096077017984226707931528718913801744984813862464375484790346898777780534521181818835632360761897840202192045465974523761667909291583427202466556874885732484044755781866471834855788065882485597230108584399484895470648639503174563400033531879493876360273673851729164487270297185889159120000999661216210447969723771078704453261800898544039984510705666365539575943704435480994901595708389970280135841500403395473478655979648901674095511489927301633115936151164035127976598836723931224132812699008671863473887934554883647526971943899544260670359328785027698278870506475971883570839359640018788954194993424914377486102560689946691387660446729365157558084466607091444883569607387347949823937191947139773753723196882698976999830874939868083658677879862014370191382532598518495333685754967722636972272024227774422802420153684745580499556425272807692909248007849866569392131148055598019990997351031211837117360063478430969554884330394447997112723149377040521206706432539636553768305545208096711367515415848697887766981872480261443144164987298275195798348011643602772939697691919431669674700034298198026707272599860119038978966623376214214299759635219133908484279831809692565872390934874943954061299987655345360442852034748241823505992123453776486084144969441817631997312165538537043775725221725818073792003679531929124699252374272980286974250460973568231039792964143504838454830548696440134689070759915789527381895708724347850948693770538239592187136352920976694636197517873766646121518680105065658123499008342028926286702523824781771114720186096401983565616150564890072351119363504426929172529576418707114332344427316661011962491012919413156035824281895859480706212066914770861882222778786733871666988784496589442890588537471709821224351034682472332612787970939597302837984379109654911937495974402627044564287066958507543701200737182149729967376463654696068828601597742804325213192005274333954233611464202117813985711419882793382404731203990669028101010833420766361590496433547023265166748434688691052419741199306466280343975708847489992674371116836373183642786369655751807032194021184597505839194398098410844448053904064745549671591931325778498940546926816241341853399065526674315779821684612241064474846105371771697344564192013348807901012272949946753357955147334303570914549135836064649459760139277841676575425613179129571082724932995905653076123464011449203315764929195080678919423655162437241325634440195603193474754285969676580169450472020768564755102687150450054997599312971770907864477395974103345750961355478876018622649958060711426205248579395416685403579771683633468336123926423875007275828128658201420599286661151059828731779913564524099773250062039130948106444863124311857030107914339450954760443648237357169163451699506186664594955236457831928301416734831942307316798017026566338947289410717760075662851705883975101470535286033922292026256970105367962862807743621477562796684760974120299658603144600689341801641191452421553283318085423858455410814521321272152377365420757553084405134885304144524097723691119256290170518232018660948675718558404237374533641647521006073109269196382474250628114035916119114781585445029145527840122438969349427375357080348453376360400273186594913288175912411913575028089381686559339755909121029762063165353052697136724667086389036221715685691484216209685052466894998421703800077233218601962522331721702945483941751839075875234756019905743738244649032091241377601794292749124549824774216766577686796716278769643403964511162034232212202159172595708915446081459403198246673812580069910313974161904636975476880241013925970760168973167243154690529046942561716288100866876889027226541478606229397972201706501009188527808606652031202429444222918009727793663944612386210771015602988474388285039288192733840158166118493982189090433847470206663127136348408903838590521463340628533678500989615240415552577580189476661160474273781416757154654607026490508657913462345739101305312007123560364468657552255057212827335375279734174512761334397060910159455715843459524883440812215690105158605768202453402267554357203534610632559990732255800958632237456613456594933961840957068818554090791578093009023750082648468708710379722867467083409877662106007268528537982470548678074268298785987498766018679681866441723058035716604328481677644204109319160066294408661594708363770834946302465085337229265311336799417868877127735790643150838459358523731463928533455695427526279502695062310457750447994337890207679271036829983719314281637415303176105458121679566477496831933312841103458963106171252585961446482453909592600608322771110614978364562884037911112687651927358242051274966390429405955746422472719548614557169507712322593987332899530371103991230195058030646326932934934970567922984139349227452539689586516010860346042434644609623331746538572821684525730783499761757930149026932450649188870803206225276427864849470379747422332111141969966828724691504964611332537167118012527699218061104426064248769156249777490732577866067767299927113823759676342255586167025471059966866465012240195765354769295880377705649112579284074612832305374544915104638996201650625086849973645405061514264715111832449967371145635206963855638243804688738566940811501805773234237869583800659430325652827660205244986671400938228334380453892287617808433286762296493095221719812166270963644819984951259767410879136607210542828857677073804120380518903502294158955455435051674267584174986043869301488735745470580309750131457361186419944161684377690872990891774269854403666000053731825909164373288987937087952412604003127907576689807379556567343668813107381576281158065219861264704508780439599223156609095632096282147560091722789511303314652627888319092368606552722418918840684703239236728828140827027494456951796319252521931697258317773769165230709842735056934161494889031279093949932724445253148639669205620526948563589869478160528432049339368765042284298918744785241165209251357807341849091799566841382530220516366509184476035025315886636381815169622760764846834621946722580507075409251240399947769653109805876372156561280496828382603127069024223086089973557594043935437606714826482214159265164274057491491455756504078966319539254265828478859727440298012169150407313743965270827692538708790101614816317308172796137521121626908120915712882188318410925366858322472897503697985822729658387386162544361806638474526900355636737148523219658473995823519212257778138639687820034039537656257860041648103438192006639831467077460389084164454235394546973291968368395454011833729956455645412959876754403741697713523778148940463282883121890170569727672334946923604029890565848022820749792633590365866957797897529475413215317715688484581234886049181346787549946915195444263907458117798046938773595966397888500516814113834551141372462835051706081423752826292304863032415009836820597089118276856334468596077709251775396060364396341356170892932476052138186854054848177552928036860831024161120873397717604371729733445798623627484017933751259699860397154682757340658154289908178925017430183159692486340067057672183689327140770710080679011835673692159581180065254726085973779416857777278351313338634512254164196914626444348338484236300425609971194774473579503399417567614829115073806898428162532284028466661456807175252593540389873128413743820795958518625868453677866549714738377075888973423585773730782759978614283261962707637667694236960459216397507153389845967580278678648801004727825368354952238642053592346630603647619412457784335610231010926434047803627428039625555870848947822338809553044696450660231357397875315818889723336734427263998985712943714347332237068039151818519852866872222262460898389366653888852010312029248377315728204191300132011137044740736787103561715703416571709923444083807277865911703439112159624526871913575055913702432438801925219738478592293067719030368785651303434143735296680428065122717896284598437006639229249559341851482480565085283974576168314704610542339837926772101016312173832288769015859559525217823551064225918234038998219045873683263343888239937628023615019634883921401879849120224638290955650892679760360158943034886965735318956164310989072972854832044483362602966753497421186327505025353676601042734079139446191054868417324874463533125314720119744137524534381611645652384037700311785287321606897413505536792165874685282584076024698477497129447138754325734341528939278659492454445723590718267038791386084785693982416589157114270208775901800462339385126846614328315227442734624567980864250602054269665568029149485863829393674342186346319388542487338684517630106285934057853619086160063741970929492744890187729086843150575121574406772158216558430096262299865940509373820489764867959750762864000373778214498168463686982320380407695444458452674294514229566472185656747752479813087473494816976426582721021532963824620744077787353391849414115225273086054980034151612818701503833845330456943114136735874146880656010118159451957373183297933702600555872076908198679032192966780151954753780871942089647135292102955464298095757777217679355517983079283440271776967178290267570620011404455918851391393102846244577963607383096329076796449092458397337710518547612346623500311749428438882282704672797233843869896401812640254308447810910931295345651220062328792871016290266659945355948545631360880578537195224722926337441806226279459699841023841001049340120765328652740154635806223026301481623605049087409558302018303593227703846775387743347306612418132260643393602735505179955791912538581135561341297473462534399896254194069108408002354905043390972637889623476626481598892695253326151786068791218567160139469583689029204842598469845273505415664112454789502720817837682230735448815421049168753289396955987376269801745511507148464593577546561761019323745284691665457215648921677394934063725940755715153177872956382449351149648155180244056884694612232877037116300881020541584370084143108632679067195276449400505195108877319617785441059748446693863525626924818337004153926441469043804542971885866892069545405870211563516822300689473055659952697196824487670494887328098157939646710594378069727090775258837642634153771348080677938973545645143880194963884724820947726903733161176324620943788828614426545981550478994678501952833741036132869316494595953435352534581977687185771010133588063614912378123693016645621869983361724888098300037183920027851975198126972579673015005582729464920884934559505338074129586623657241512411506017208647698412566092890929082837539707059868699779569209056980200427255567609985405344880372825390734891039592179201720841586224183675837141093721817008766841956235404332759259174968249202397461548223652944199496174682152961710108938830154273139619280255256805809890138205222893880682227764438351576140969185017753299757619106312377624115697091707552609276524308397643660123078974225163682741237872161825577722337665128644344505653111883336529270961179790422108305121520063768345833320356891591724740445127605461937804898915068410375542539012391655342731084678304265324592394573694782333927947082918381991803473853537730114478999847431517769886937007077263105535039105383180114643458525404559309645717745466868066927363787148005213044500151082338350382598516479732701436039651391756190984910979056433175633777955183199953801341000423080868591004548719502797901144074768080882217213377196403625255377396439069572412265788207754767939884852816082642121594459697961363919671710246631850246619917166252481432111629120094055228376442607594353407920608638362383347362887074196917003598451122459085964082027390184288287044598766414789436232254628823770121008234991023341370559068877834468641883101969465604885552581833705217786280649747894885567492403196948939576320078800880419987893819416434417828584968491895032364192814491664019890247439229613326083500921526633302761331227965525926668403004680564646796589844050688557130715562948048464798013406894401703942010749532033131765498811569580069278782727294660891909705477027558767389340220657750908024667334420126563348941277329942396049808419417100331472505480232426114226643318224208208448526632588323818185481916832203487761843853441186712647660860239503258057359167790435496382524395717949658209291261423525407701562224970347004434787261326945580627589159454589552580456358531743217977386992718601716047471223979991520295762864547103453474897517165352020689689485576066050317891282254525594830909087016584032612077824813441288711632710934360984787985309295931644030228791442884346655105843394991014103734879378111675677175374783957233657123747473362372017106891478331659437572058599682531058687195146519538280469536725949853402490185267752508539843268116155679403313230541810600775671932046409907410665001869838085545985472130618068191594881813112965054203746130582062449692187519523022958094847804139296343363087547512101981821222170960243873803923940204194829073194464664818048003805585115276466028338989867921589770177132173976059831868565043096289816144417367390813980415937101196844984657250343323917753100185399898802736500859690382094251547903320209898834586562356502211900868571533424178693397845818487248925815686982207998809880566761006465346978194722967211818400999755229320337865184346937701099075184516633949988082055359750676071813837704936592981149212107753488509214121953030833247375297215352646265185130291294684029809786476960567582403943244839766455362989427891763202426371861499580732625695403044382198374275869336406409937189859412538210398647560765948512582977662048216691104846984327774022642815016872351817914136194209859346958666848414373158309860528752196958078115502935524519967973625427672760822084086501176997740196522875857483950695117283093979074062819577345619774429340272806771097103357563597800361476537230933070739054194893242553758915428459559356605551968246808610371212598043845423086046521023246954768199211489600142279040077976777761793510255146578083477613645977934687822769667493276824115269944418911496074050477727211986819045683599171723315342784949612378318263155417745817700649380556197206686460047105815205110486217220848739538293921921978848738348047137090160394430086771253703226337854940009472877341312289988766395767480238579342096875791942571514301608424189196074695655240594051760166222682912540208999684017536103412383019504978998493770848890699747491678723597780140301337645370406081383092989693663381315375442618331844561647362514351070049163443790885071192641340412909407872091751851864559959236028596357689146855002109050393838021586824009587722584612129150425415745478899079822606321423412561040588692774233399907638948102398032646125031094824199106970310974499665083616708262377176963170980645052119096425713750778230514774807683091568844727825056375864114951345756990990080015687983354606481517207287982696031611901614167353856610665617745948184372056301765393800703837993435080594671303272249390574159274817607742795536014880034819929721682416578020891791886349896644768420936830176144970969685873456918885566577389602093029534998893843213234974359622989149353676951153220019349765777140622721776431719253123158063420837145342128967967780538056038191467360770628441783823563156475805979262757281746862528508806576611405651497606637384898084537642123834234654395251681169661327406675488541844904614069248861154072565063526644024412191258942257096235880337927077466264106041902408635280764104819082190965528262008175159443764566302971399738118691616133748609541609588547402704200571790131623160264050779447682502771531152939968079232134414356473453641221746604626631932195140390697883140030830395272036583187724136650112371853005873499716494749624845579305338613915611473586705099852832152226228268125529694216307944693160556862998491621567593673270176738942416826426665991645155065110897799887695189343195783522366492378401060513382965319963635548536898698456300942628604794082619875505989897225148127440809050371159277342663711758376000354493602542030349269953332175263954207917857094729262760474010050070415978831945916420838918300908059905270876155426380254170690370607284619160513872889485653318933644209784280398304704416577546494347599941530005291406635641734818210185030016977133665841976872229498414897747835113986664836637005019166274342073445503008556901068130651907084047245663165566106407445094958975841344916524123118856474709453688683129367863951387339123480745930639072874205092516961250038540979252180851321999947786064949273069419499587370507478135581630892744386233923200935944697031910530088264161319495789129820592619850405848093258409993727362336873206982638021464301471432698276616280473315827594723116356129543188602895664787199806520930300824317395295106356552346985623432471137560934691397635250610319440998026740027094852535455735750909930628377772857496319611451640827244983982449276879439014297388187548167461695114638643463485500240564204805247583420691784083350148831003633758911263396676460105275921566932334886788926528752266064662515100574172234222800417315142212655186923787161128153449881174629927645689344134794852179842893073575188782108927490011354637781424755136726830745065353081002774676799491809065315946310463367923101443782499873363518213054984728715729387351468234293026641178175956967790746927006229597896166769677523766085877982948949418203876046325524023462384567562402856989230553051788267438694883635386255879153140182947122411068255747992816094122553960730622725595433393473620973910059186033909842832776984045062659972425504930776026936744619865989592896645695321429834256386173234045212664633769042581680569451709781456718132433418368181826553183585977546571023169826597890460040790552217478881838178468240774997535395356089612061628801477137624572148407632568237578212295659116086892253344589637921064092067618592893904214758174719768095009293931788669009373350681549142818483009594964406726809693821911472766063946988964038619089369344774713537407199246139815525466120371199869935389668767193844315732060702765237269554169933391726159584075928151525993188149513577132095460513509542018518434347862898854452351648205050445823516141185289272515465066623346602970139931233761596699984730925156420349021274451039780050407761239017995236808164134369825475934402747583951615849212358398700887730125761960737970176147829880688738155823808793394689928309355080909946815027761783236651157527610405038973828623290376978011441366347338895253655821455966401322568151861013836312186101276297871422475969422766868687814500229878431845279260465268134994731097188906925794421927637952236206662749414797374751237209420312076858928005819461734250925183434880483433923520327181769718896642324424166874574589047418762280878545050505420012126863154046714603381134244987292995579629396141839411712443918043995093402491440979555523862261036566867974615699999380098788060479869968582397378772592338503160566238111648143189142053585990804052837764836905076348396297318310389224331165562892410027624875034633259282793585152055694626839130531096302117182853423025578006698801179842143705901900309677742715837948763235407813041025658115460751027098343812403531806939323021946999219633271317180082175669876001094593051746915998649002722379057725817851276772005875031900388458649032352684747531226688467698985138101827154606129686909719619246012833478745380306667684488830268321954536076241175717229098255626214208830135535782212408811845986413383507489744625617687421379743455133409659388740346051910847849296684226399768485215195407385695167008045019331452222649429665400052611837552200430423965685727412188591211396494244256156664359096885308632915720542557031885410333208744529409819663490893211756876502165106818403921197575601891934627686367767312740939600698473656129388517541089155149033687892823254495108637699895290319622866873436103509279341523898813148058030740737443890407834189319354101528575410558409007924392691936004618922050690525486972639390154786988513211846047896791882958595927630227001863836693643124526586041538308951185544613355461034497344399610120324295767494483943146005247743035431778135995668906436487175266824306584406778403962682060651040177831620285519558333212686382204965563141396730928994855107295197603565002557505666573579204314899117683487348124905784764401756776043396680117023255588702330990589520843246326156691928536804890775847278959043247599414275910184515760984685811369523312763039860471512043344636981264990820719279314924505471474770350888444181098929176174404602278891389046076734972294192411301250197622792246101048388830880927211121606715334154430818827785092368151516620972348311854477373561152353493860545990383218108072146812907788684857795878155257734128526720318146095358557372668154798689633667574149185753855045809186269690857375987764078961984471511161889523581546655210814198933752241942526652575827326514756365728950255041404471769733550868217815691265220145816474372068104063217276127823504169316319057504942090271576134114309301176219419526994468185680349517953354215453501813115575488770145416843876428847071945979968513670327312118125392315001473365490067908212913769613499642393161345226371973190165173888001200837597040796601509855501996538092319169616760887986503451868750448174345177541548504189521291415268232966274612755778906055843979700454792984999022324578294143700404218329002060311318858013457007269700405265002478034476133492657453916379807385414457358195024973254966993259905337018940580255059480721343576715613969616083479017312801727686512310885614196142850736159647814178621494923801312818040979272261860039302639618653643407302022257129969118265384610567569180622242242573889245377850660194620173872707176683529854785454716995355310213705966409428804994357747203523181925336152396378105831649063371321036519155170001222202674684833738579186482743819541672722971799050501802491468358301275511082227033372153821887683120574453777093907268436137110938141006998289027731394206872949514944339904529166846517201156796461628256306692243585024220864789750268480749788369655107111078703131951039540307435512203188995026546646433256028656044743257020837171526953722029357801539015354512986636921635822323289886949376390996245978101463284055478066345973096238578733438511442520849426341864411770149162169333303242372427811568407808957958489805747569780524366398820993611244789267734540184486669261764689246260324470664492485949424810165475710028874785782376755064970833234191568870543878593244383136708187230397102025343654361146572592334989787816427919374467789573795222076697035432959710829976241504861282312840600985656912586571227280508594357220684143487504808129049232979034909468289937941160656294115697579399005875680881842422736205775286542840139134596178439994177882181108092858934674340574948827363808295105749415912661798101337455259273201204478040740736990540536401956378973942311608897581988862809877728704252677187857722699075261662935630884453095698693438716965886225324206630835825022902712408741778132927130517789019323793930024661246778316383227362419855013675511704931946980544055026129559240643979876038280187161205183757662749603155445337158194582567596396023712067247735053039620448686629224289387851959002544404843914568391367461563080837472580022206898741557651479067707179585020778880685510163738948595349316263219259984953008313536140370315335806917400731593850157444610335524945163806657155055547321163873849244734880705832891713712092586990553588245765767226001974653695829438903435130615110825402324731201935166721265725481359048858327657650947979772251257177063170587198395781190091060390819772499016986699977670494146536677240498651883212510829212452816218923806120689678511404215637857082531022648033369812255441916831601534858141479135024950732658366934873693251299287002116387007788333374759941106768722686182916257111139610207228501953493386874696694128514308002747371453826235345321557134368716670411739684571696727737712323513651295595900051394577187671796100958629721637371442183785136330078945816672813123360048165833120810467243030739268551512145608569615434980193147042954288123540506388106331521583305263655318388457822368953473202752031999641206828148094216636759170080215851938100525556580346642159056249273929943880490332015113910483437031376276279240910808943979260469637169477666160422831298085674072028127709520538798948267345623458429393005493481337665060601382636557636400435491242487747578652819261256631236976851184715230522945649041039684047326893204328155948862590304373926185240091460788662431079084476661131304254733990602126248376275142808137470128400653149800153805697222005367004022979604029090892516920135479175412127934007542715406882368196511804409959813079519448433453651071407777352924330237315413661137716440569096500666376909327271322424866958190308145647335090155540506647439233612182175826322865494158120183310942661554551677137020550561777616654733996241197732979975112068107031569558860907461621382643404046905295330767216185053338910636043749232402341938389765661384874939014545870823724697676332623971769569081757492967688934641702283346686717860898454572203768062521759413880490316232674030176362564890555112786387547462564875801762644491790152515956923391683560556422027113897479842088277910114298889231733210463892880625013312606607171210177814192155409104537826675752179913124057787174991810760056798822508188723430853079478690523010494822491104401205492105637733303834743749965187653070828222855557428818058551566103998662506085634227882945382828028289339673875713721657133718892720805003849183512213358926098168323303821193837950230389921560268875931037294052962690712259702657144019874685285196453500120769195062845743741091509353125832433407661392390185294868525104752406820899381324921023142121468840051323281120949946181740586979659698339477556009244948060713164818409855954283840138184684037969339535643914707533464751012913651481787123620188510601802204431774260798494408317004417421459759044994735630245564185660619307954663468869573676517969686166979627897176727238899563740388476303205206674369071873978773311168213505218402637296644722894751190085099060459448856070959604903788944588342616007322458445924074078246492749298983772875752433265604143040713240362372195918471625567109428047664881465050189984507761023189396886866626526684558015962880125859336438825095818726544828899257765845924898809073110672552512770288382393154548655712931843371559866968316356170440530940709043896301659263400649426411134219527702836119708501515500583201870731571886544199959685041719119290960554185854006494677025332253154387069294420833042406667759750095277191463333328886412532106959483272113668091432417923968495167095121515066484579062945611897122406448342739494228897801211337451610531881832088378979664499504283885432049681593996062694950645843572484675486084933102289989264264162473416721151282289158759248797975882733137916936367546188760161493662933218037199203558562645899730683284926478457301554047902745378605667562895012302538415449863530472093549855748366863623679340245714944971262429508441110050842083931859796725543121356875684778366300419465625319735690764940723912986594157195139676914088303318455736256194509227283711036192666392895062128014329906957078190692916091549673846887716434003653823324719157313660754047361421849100288130530396143402398132961646395628301470454501697466581410143581389102091188287210516952832998530725559287251500670458793569344993817146509066575319183763165290992794658707391908607660257337218664447588425285292002529878960371205772264228871983689467652986857911989988251511341306181715498384327901144805777159945813722926585673243695945518332058096466699035946834323339067221743356206915782163146356976480484645532677147208811808774833329156692667029615252900195309452717854322253146432758414591741245633253423254928937633681680427614846820378108983669829379217610841103036408697144991923823015444180375919844415344566116402474751629098321444841873090839266071713389958215978448227031683484133361376231382153734104904167391106127081596089994371984651804431305917409678617346125499040874474632850684975478646043908880144717626256401010273467361305586788216769575406379114046861033751899615738027974638445075902956962217887999219786679212387026139464367584244789862795213978341140727355839293000866187023288266978010055545864134700247383269943038496519138513109124287006536526444072211015257380229281043711237597685678046692312893455732351919069786435698361624511231133972042862996017197863715525051310330928520895717271150189791307039422227992451537402570681097502966079419919801891201667176132801005967737834261416449769144530234190259043209515393383227370766434808829585418617718981893557136123491583724566126203525958012834274223670514015585958083131093346957769635620016782165070713720522339421821910639497739003716583465276963306442096263588418467366946547990215953807039267615837119759177614958000343842804404634004889061839642166493604805259776023809662801450707515640440245098922386550855563261164398890138856562252065788634015323395357082999844659565826760243460739589342593333059739994434738383563619763856924340571242648318296642281143231590473996162471928618834068989726825660432025039619726414566931544800417087061123261182770338882590064785393501117079319428135310815118245160648032554255570231674316915914285388657317975998649030922070822337072155090942658132440538911854697715541076741931968302108546472644828410512085066548878175737889558897706684801393457646076733012258377553826259739833786920290778802102320383474043355773301822442824212115423335195399011283867257237107198959191657564626677174829902273350804985589473096601715002654347903739559771197223892427507011824855748019068793823822145647616047067300695608279529845975784149084273945121417608913251715649040967759337539795950448327194308955784784659577840559278413735171043513461689942124216650552729721304049813273368272481099049533737168073786056836581665114795443498901635897408743530784619584162173774224469089834357000988677715519880659634602391560081783590011395245929826165459467659317783793589673564589483881753015003954432944484896221986721677394277389213824974904347943445147179571155501114478377188143001627264413008982969343318552510235465540291772248165559980091393250301876374849194241725824127397512266633586783770657914296127325879408031378152922288391269289864526790690914530194027475655272562060955138359331265416423242692123391879132860708308442324482893811436988305866263128241281816747887886420945649374968071463207022852288917021793092927406293264259477963153410236277589571399102916639640430699176872025303124488322951899711593231817763003933778014341116191621674434462489106093535988403538572274867321313455176926591784910705788417127816637814339241844470611304935940213309621893814583840244332080161007622474374976231227883507367636197535334921838494031142213929182969633527887482886705268544266548569146016649706444348758912671933981471288919815033433248098591161292263524275181019978829823852122699187261048963195009791598715122301411982220919075084286093788711497097819330879971033201812307491578715406399557574205193312090082419562333692455466898099351101831615785091577766429871264905019727522183153223393547996564813823793060656316955779557334305329896534527573551499122378856051787042000207837384678812037171620513927061185928797848663042438143912204194512829207977848538046410518705340467686591494520276546192134833926051779599085904025141523717796931324784199636545077718698288384861046894938689530102257012339391492689035531929173246250906136032355026177327373696325016249229132938803134216914337745894453585357550657361436462033920811082376859410017791624966822511373059208212400165279767658517342810461609758082098747117934002157244382345228611193145220864593984754544101950999827184586275534104002289180815694342827704144771488648339383856103981495725527538553028479493610445362453960848572263687790802277835501469361813105450166939216263384688634689823815947838880858211451596451985059465065109869369975023527661631923664030603395894819496165739889457686269272926649711352096100620836054773280827352813926393529981887538047552036656310624183236497449094732153958337729889066963486053294030290345094819238002392353464441605897953190838031722215191711511772795300436370826927927878517483594910966863116205334041737242523767450785795774456822217281827684624930749081041865981244577266485082780235278076579865419488914921745089494917533969004704802385708042457047224312481861349484789482564995311819248694013001286701309692244317125236625705403846489673583314379279841881091880538045765348545216818878767190162470486539880011672721913379992012161631004557797426484436704357083741106205121871394040282138452049124508312205991508974865517408278988527554607840021192722179884163819453497981244353633473467228391332608428517930258642580568450790938579135393362810553721723747938205758943706706520479847293954996334462575149672436953338301467128029456275818575058317453189648130376786717525734880146190892944465892978242195474990906376136600066776722817248044169365502111372383784930956959864358398144115650458088228838980799065607412168452134399153628816723056144197036980221975035246675061523482908717281976029880766614591925964142752567436636555812699947880070875053430169019631560755300751249970117942695868070264506602791717986731728417674790700696536153016647934432004862917168972526421553283184221759404914114684558259703945962223715977881148654412732198459087598508092697279814416418242540497023064028143237954109943310584022884989421382208713551912996233373272317161537921109935691074341090020050309750914923263593751408306077280036819509771329422196531098158374072121034928800171344585708509101505439284143579280636405082553575109518617668674360704013277988263874953014539940944776887381255960199025024586808368251167777303215129009466737686700227522104446790570068122814698721756276063752135677681246814183742408364071768221649155226181194082161615797925540559072889252703241090381554035107934737967224770126761566576217943616068021012742213133770199987019944122665574646015403855118436578513272560887342309033048091164033950089930676624303166287938699389692424319764717694896348823953261101405570005193102648105578303182774700804449344529715029975737674240989577379971287573360020076828456125743998562918707751174542852642451086504475825604563171153062847909747033928377610746513607385924078357086521482526287688279573902181663331869661566653783208465866869076818307517381943836057288619359502926031894267033344307164260732052776019736877904924365772306724484539215738946961868859120665527781444780199545600924633729855118559498634721606121488929146678648276153059201396422456261161966543124434308870949699578072339402554928571432237412599340226938873931162116389574325994134042731312780440981791969257891023621852996282177784163756365633125190249775801520722975867063708801162811604290142412608572749008081178502994977206769580095725495298180176297743505173144269604486160777988178762805260110731707010669626780903039501819861703091016012232190292436050634246464679724608447127105002479296211561724214273619976649829146955844867076767694408069465886892624608426966586111933988244459933496888482354562860814190686899627833788278074083605081866733101499908043114354798238707723259314519346871557487116065370568735186431886008677984855496793437217565518536772685285759286635412730952433919473632031461202993231588735110359308626805504042526919644279037215696266482368966133567617323913934378358686015549091950764151944682489706604277257765263611153320140280926865110116005928448916503054000771651391469801319753654762983128095379372294089134494290783753495046548610247725939731650876448948124643536252403011157149961797100331551770278623541384099580995093421220702196541616248252699969627139821435246491953777339662855483655984305187660389651559178338278430602841945012498778982457274321933712776313725860537524175226119744462010899360905055012436997133106499152364293065013605117060648540548874073661760292221529785006950157843260246657402889112738360422807007707590715327882939803935915366045270106262811831442896433083666543339390846212014443875248619834766644494079736534381249084151448481693370940865728402611810565913709953046386828475007638600120372450520204592768019018321582236818076098867805943824043543779451679831360238546074521338966196709954280314395866277526413871302312566959574569855895820825469668952892694463774791030785128734143887606309270540771869287786058223205519677294046596890539200635705265606347027562940522761336771742562324561725723948792242899001826587815812031449303363806477481143475256499455100409673795507538218610093710319644350361756265927623828558997659452437928771545701258755549352884210541444142034306002228122332630895770687468014520829733871224954626658022584507993777744025336424096583514269886527216297133669191367665931009904103108763780085327354817937804987972304929028975305756475492318457920956937193499082820973333247144085889291154347416239553501538549812321679301684877774319066861590517292146903153871570938114952531881161253742358778243989677277293284734871854920225807273632846441895455493777529776666627444882678661046432193521428983772307338987826930586461702043279388244184633167140580349080529536344530465898733376193777392433117144539535482079673172435030464061319901996744248368668132683240219145539567369593381710713009108299927011900918207403923364426121045192142558949655013646703389980583883788606190292754519025334073667005777463462455570844679321237671334531842111524907854434250218456405923614065172065337331888882606852046096331129568214632328381099366664492216566671250997597502522101698536851957965022640108813681003668921433060404429632306383336123818269140635496605656049829251018572734948258326106917153855200128493543291661397827748364715043326062555132938005996201615602942646669540025941213476824412555435045113835663735062701454412308527196775571983981106683270286582361809776561597604279774479961030841713406249929252211977710712059747788877502154218998385624120962920525547787083505439425641490168028727802942336559346603890105254612186615446249883139027894684209287133600790563756248653276941530255183941472475653145462027126847173584052900361956600717213984241172988356134740359285371088985882771866803056588974774105475585009671174249973451275892128894631943300746369301682717752428704654028056765242476210541395001348623984131986237251733656471439809715388033954747545733546671062582490198682121078181204122983185310056291304802628267551528420765524570063134187355902979803970040486865452334993382366954397039868717105627918948433394388218533373423924656404268235923605081794568574348040089293112977311704680868923573976625821663859504355565467627832536173066503499361413031027266973440654029312432510417912780967423886270183453105320951667713038971902188825670094285538803366299964769151619793562319319235851717232755604807226395548683549131764997010660282480042988205781940685319219223961591010582999281810774692910460256461755388841737890233753269155824584806774132050380978517005245957633915063966958034749298168420222342524130093313927941552503973275559282989977022540955766439552149608133709031637504291008956900105085810198123913617362952331534987620995220946436255359243326518743790385759730978311111353116771891423761458523288985137089412950276807101575372722203374905800173415982849343190917853456593102514280981152571203055261635116977821695384865678406843918892352672631245419336437111175347999280578187145849501105196429384148267117588490506454906112585050543396655586574969927238628733561037695956534926548103208801528296847701820102178696543089100396418415543479907105403564677013350192023431182651199868261627312161277367370666324299545913213160641118219270169728449139301193948711231193309884734945469513521445941002426783451149317291804397859795127909317137698233146861284304655725843690359219120360632902470276791874675938161843508766893618594206103309961843211318836707275291089513685781452067375398452089227104770262857953980428259166447024005372295775949909931924088302335631589633245994471738396068072855815478392055307114913121880236204878213896826013990542254872500147356072951310162554970415544327785372406189494524006719135461597519648317793851869351196413765898172529139836326123371506297797218891612313374418053295851878220681942583497386736073344897299653870166272407538906813112598699579383375572505976162255455814461797153636466656146344047576818637630638782349540707525870411391403085709477267679887942273175592478470370066179006479427582859064823055491197233604478719219642101064043233806609296948797186373360244085039936034085870857652123139346814763464471984253399504748713950193518021965106019268819811723647486528971108215306104942418920631557922841388829645653823348173660445788809349685526337810057673494995241020149171744180837593440974892655754030652542658985917013518284195594112116681726481257266282950604288345723617128990003638172362015794007050829687230734948908365048109085760628927242713117076536738409567060845649844423524086750579557053933850342309109145903235675435396603153207738897138449565243960548970809910487593407456911160437319489359903615396130176787264826926731845942619229084152768026921759349890408516044962142372789601293470240674110806573723959717008673324169223469008184890168430761266543168393761918943696025888768046973897922234543620504953704375669145610004744581556694261819427077930042874041237148610200404411461055524540293039560945801796411075293047939128461328479450895938667090550359905883482763785534087334972347498781189647392323207776695270354294411870770741818619075242456927874212617248413817504296268077951036647510792184000235368688296727963077854761666449463272930930759943871477743251383247192254049391348642438667858853776075819056816786615219260878410628021272983177620713018599103972432656184005193069314552825912692953270458007887129316241228036878615838934884818434162895045332585147100010967328809141680448754562331733769622243927502655056597294085595596055766959739332292562488387373543704024706195374084754973686942960890595534567852222189250372968292991017385503019424664401935615957206726205106539917213030811045166986409318656845249948968710257177201110599763349566442265764777710119713465722689974790335711407660229504681495373049252557962873602740142092862393433837398889242300437927198016930454367188477953886349174506781589722529910660771039316232137914444754267202640877856746349238083718411965434615674317603256355359712963747049355363093749675881296182212360727157841921634849687055606296936367869397133506020663498166706821529778184255211669776443885661213462243539823067832586128987999797770254399461702361813827448676843929244711824879461102647618887134449687756538258346143363658085508584036642432598402180329924010532674737689520910803585710091647875031544687875293169598249188954990290306836880478148305492819097011301515540214963782946318368627362031649763683601467611906118880778237783619182317515636074456450127780569435726461674852683520101483021386666595685761281788919248273409460265092257578685588157687606427893649278491254383559729133180878831299892923089404746455953908285754013226139420144861699839389789500636821217197304613386102496803847067399264049210013950430128271347041570315706358837693849941003965323066823551511002446215863702445507521544750158194587409222924631440963530689050306810590780182259770690803556013557492795232370155903897510305586978378259371783097224762267529170753052602649343845522530125239961490616126791400213649315563268974258075939403110903252328034138440114274168934201724624949699280803938924461605878641926927156206096335876110884232510740769669965635245408962654168787939521411457443452240057096861973813426333042136214700264989981888632178962006061047812106701483002400985014697098612222959191170028818260770854585874772265669319714434342495664540515137163168827750004737297461438829457074645034361670611895524009155445325921447601844407640508979748521981814131386249904185473941007753843689695736933157675058837888687969973391029145217375895109147878385230470221782250184466841047194718132036156753222457378565329754425574257406311743105334865644990060040005940221187684829367465423188746408373633352882813888317993988809290480900189474409458148955461501915265476583700127092603245411749977700853201950735325540094613231186434433709202614006758557884424263061172905471814142519274554028770086710381757685555332877141893927853340998804365395649918072165730408194217907341929239926855196970159853930762825625500035538528762076769097382271952565889777227540851425937895610465959661095260897580707808315076438048124014168715031558791972406670008950386334694494923996242031143928795969850764926115860755825788715352915468588190384304499562507886041301624063293468751710406589587717262624954233582452221983928398533525604681563906182574631572442700230737340333477157210274868190378773796928943574172550675546692684631847283195060398771367134941455310318082702233072741356451372913798730190729135773641599384600455101550941230048291806978324927451141370128024324092435140107225123330560936680693110289599539765002951382715411136157207567821613808904614974695764168306801035178840662321020993713843348377900801737416813794049183377288266926168030722506596861997633567451974095243564349888034573922107306310817465171897542077067736745632773918354384088825101449169043660223867594291729803897765806208485123052194644895329158521628873746013191244431168724549626073790778690152566409326342948088844924831151430258584464105057718606131644915458420355805123053692318825079660548290511191358181736130596766871183159033791885450607734282560890354968780583084999777929887043590881167967181588582285435038507118519341443033340054035980372774900409598789461436342737616844312388553184129272965153486083863089112900724885320353975029238639074205983821931617452939156979184242809443125430258062669307358972329541543504933751000798034937851633483443063117423676334304141287726653075772543119539881018408338275271425837522538489787860059695675643241935933390271234030022422315842787862887146114397431722013442308014191808017399034608847569308605714122393624231654107611117449814555494771443122861242258073053265729337135943932130296443322128680497871655205125112466464268849188007109964130008359199716740526733388787922988954904562563668598251574120764792480632507825229713137772484163813372155802383795826382838722981998815264567756921407292763559271189363534942047344170002056452521352915406587569838777213135147817902619444246807646875616000060615109394343158453967548644137116718540643228808600919642315690666600492880942990261795771877853746527794581509747484894437688129016969011005610239384746150748113338380304360881043317895968244071922007894087549837172466091768826561763660612344298232137714772887967115420710584906214695731349149288400480476778161670590429115578676177104350695662374634602943738922585542179050287956407034666610914413312242686027598465279500685103172938687289771273281541864764155720387084969777966856395101282914534861895010273415849530448251925615013446160735701237103808193989809472541531037418442854187720745531186264894278499888250617300931698920286129302298438904960996440115804715533048605917691486169427966226983817331608137225994078131078188393728952123604006312401320382222493578053287335316575250244118853606552890746802985984883263462248228912233812564966813767457274706433794828422125336314499835004089337100180065135815439838427980806162103319038302826890309043691177209509998711385711603950100118391069487482776379932351430875877693000112480512688206761360880656333183108304520137123075627303616162404527303404777086874095922895745936792907666609541587635260885606707256551219950064559713461272273912374967815693083383946318638516641866713365902228153868737861715906194792306830861251513781257643182133426638097272805817980081247291102013341459063213519032212263156196145241162370283582043026515287350625778244107712560889028561342972909289282720253768993719114785681848879171976929754521318850559434259945005401667348109278468537177312270457734284451175526201445112023362592867560374293941975355265941149286845587105423049814630203620315366579609690124010735890751924682973788039102302791196954274252161209984576569541954294501337569626983446262083306393700499800605544638931143886889282258121432890437006494982300246872946657944126365696960053022920344409195328637422946895665250543568044029812924290615693227915379161054800904173870125177135869842296616851884462396131922767788434408579719800266824642127941705923883178592359125405695198210075828939214781177346498169259197375971024136302693881211771991207615479666575992354194018309264649241626274031072773504181487742189435853597851371262898322844027693450225489987632245322951490682687637330938501617993557495751021681840043702011304774416685350053649961339455782897924633391688057420483439877252133881315942515405941606650994636000285537774700411468896617790340211065606054038612079429237437568347694686320171855212157921344483102571851677209582639225157322903962762743878362817831195550324068259736026039612365081053645062340748592329740054509946751906509245358391620484798200817193381702404690694005146878166186789388749319233864203261556345254939696515655720359157673274160747194631741929989110497909109103023387015109553660138260305656065319283617133158145263150226585851267268871485535755815423819526749430840005346580125122673483072208680843110778654565203915640711324509221973047250671710294397723286928520762359081706019905551284362211443774666297197646838487018611305505321181263132830138428340726545295156524769248171244874935819218733483934744882759493409680008861389208248209868113305551592107158288027031766460276115978560984058248122101532846622526624755530067807535793867252813469080960373043472499679351701688123526577657139878426286841740392814424872491676282150897536581427870763566429067351102538027029913601841395682072954233141106332135437949820489081390397254941919869863119697429731990902088138055802653829001434605395601273974006205955588994194292026144705742584051460612670485555919537495584583733498381346844875361501721625363043412497677905200274414606009532001109437659590414850905595740806489229250214267133636072070754806992025669035965837172412692203965407344863521514833462391119825987500645569451752066906379410829023849342738386679730614595395533695249839652185614040906752785338193003778984930766688207173689315024467787318965362700275384701894676949112858549604129765487247608350061793983100086482293969084625395290300549075808462534915169668849075835536358545506577397100679369549749583590189976167079229059063045898237854283898623238518750945899231888401154153513857911259692372997773158004433366873533360748859422064467775935896907504022924162679241962012907681201996307922229343239504929275363526376770527986427645166172963040604311229115611958082126070728292611223979738688924271395735573340360854865433505656685718548513392129431203286680067035123163978298950311836579462624209927454561134599740655403531387931304021193853375610590674914445980256172715880533892293586854722059855449227936070786209221457632566352171498521332968366399870514269300466854033910070148558989635789075630749543201196465978668615176988198470512815912425006114304120283173522594651809023180483292411940248283688618200009815585765928978193601349560864044427354004601391387372586775745710243007979780800840569043303105118686712400315549185957144865476205486867061211383313058353063789531082893998404174011625092617010177973471940959981957781329930297478708739868281925060532248812157797204140875383613766383594780104805364263941927123556611965846721161389051180403438928756128616445046788055918472663949740696220270524557268329942650575392547873666167787889159501733361196482769164011319417282941092659195042005267657776483066363932637035015309340747703657097763102586520817843719088735599550652424017572991007028507037045277074020177621327447553649143916501328492039150114326651999943835331797777711109303951627045482213735774674983152115802678174718112986728367980325733428290291852540393091137271723361402527781100411443444513188471330695287346381944021491149359685016937692367437959471232570709022578624257255651558357870055945220973394047469932379758463709105193676170965157320684484748729525231712804170585723077801405460732456748938727219866235248353566684481403670949580380207845718861745580206344129521425268510736379686396199092185101795222023066145733164265691406617482036436336022920496194741091634048557366768100028650322950230183125216927999611420022138392061172382151142279036727140243501001375843414666477301126695869084770709700316043146859046514367229025183512795739741335951385942601642419702403493641146734191757291240906309277660815417498428449881444098297812606848185955040545417207383946947006575340740949233356564371186835088971091710311682279357918245360882238595002637438077200050376969296321650795032795310958173327215787800654742380873489702882772242987833116872276013704504166105096193617500751658535762245575099078838998808489337525332177031300518451053254377067915139398749414612763196197346661662155097358175789374217620093369896014833370871797747016377190031967824577619749426288327577915639138500193264517667828065797218616643915613952823720362717911154412761620654843739529390979399900298820161960341079217613070213652372435390312912328746727924940702348628409888490176160547583396414030597687642584839084406232146537647187558523767206187282753914915123933457432985468334864832282583925741402223924202764294715540529736367687005324133734628877800046021371408066555286568016351670534054775165144003202082263638925360454022428738110238808821735448136211246310600766323472740219624227597899846903826920469217761861422891657765998570598052300249992858088673499350445563743643049512539483941251310349254812267777601031180980732951529596728894051441704469313374721559550125732079844796695453519046962244584202445302366844178281661397846162974139420968736527238092940188324481868992062881121336577869463449283781037792386547950752307522693959783643653277141433278102969866317893788509134203261883232294630593016338264979107851247267571196603688882739624518557998713238576670091971698730682118771399187804139185396289886570925104085346810793264973357544388877992451929264570837506856652174893291623713408016844523184776029787854612890560666755836267991418839487338213618229426037067657749085910557835470881316999888351823817619278002951193571403189029591977025061882305103080525937359619795657922410240405372238958707389321155225459563447376814404354537261959937841264250426373064022028517636304563223068198622282148989829122325473338098706280227273501283784787039269060848301377446492827875670813887424043131493823989913437947684763740701299725066973460746090532892553819219090909982518373149068120601594421595137554360943318111357152648857505841347899921793496319193022764015887643613156287625787729095796495342441976450285359356482436421322658804756214686834670483910077595325568376829731620395409245471302470942949849780098801167692597905162552075777986008742150479604833277141238602299340360649376493319130541559838360171181997935154208824445859450941598891976116091915076287261439248272182922269168629292535786572635196912542933411653461355417235481701440868479644549417022018436616150745200036757023401262309621142247849111609711690427515470167008195777929256548557363720262306538559387345438674764111122198235722975760678072572655318051774780183552115387842460240809267096898902462528211549109520921634871525193589395073036347012306781098686111806019833232729302544888433024971002734348991357192947771795235485894466630318044872780029415463487300169780379441908708756801575772736471542675111968294248661590926146139234419564053375857473387800545656757137229415859609633903545054238795337805030006463115207466222280254781532666305999045302526984665909931893841505787147828981813490332311549365980872309373693487916112514620398163864977326223276726639647160781592763407467405961523785659395361932493061149818222123899425371137219389155821536583660552998112183910270317115395149933155849681924417411138500743545703222526763826615293265130769246581780056019526866841341853772606899913600351119001802679754788648394131490252613919526153184131806388919077325155198099181821397970001911166114006662938928502922658315886337493131728531556065832440760290064268809120671960638057577857733012001392118483894722144993991375280986219901209061301436999890711784070830298187157629075562245237351740120662218568234002564450598877726366125956849196456213448694881221848161254566929494744225616255207917048263157212203208673647857765536417114412489009194414786858506887283915340245550552767048893533310262541132269789388934993241417579027916062885480149874566503176116992758954893145985397422072448768547335416810378107353179973827407242712542026959901228210845318961075326123380894576595574131233543284787976541787006745588049092848044705677970773498245312271390692023649232360914593006911541706574989597746872742082947663872563427386341407092066172791577742838445890832488637915789656736986424369111925267692254668369836232543802282414472041016507979447782349715294919927591004068696815649395733356429842490305203759442009439672541354659752822421300712521627984973881311198224940956090360832795686570807501293084345520399222286092171607552490276147114427124838080858247664823081745009008743925129660915086400473803597927870264623834954842839620281200311272379365475391230372345676940311954552187122611223823216050485299287398269203926872687371623631777422366436450472880153532102446524344124297816126765368329011108320480888578640058942450369321978205147363614255278515885337759860712669288867481208502231433473984393462542481694326695075134214580888634897936878517086099643193775300964350978041540356905896226195119727721263866025079464841852270656318218915542915065543179494453543054981474914925567992723151200871329833624971881954094339107782054225960092401133869929969193205094007428159382760879878603481679169571852180233823674921364728173000693204440280094221685674930118164826207061011878803392637770107603756348049393396552451344119157114421857949740597357821413558915114638651232369452113317819617721720023476297150648019163377523874728152789615331595735735197804215293220815712252469448582319613423501975531317602443033580577797513001184227120201658588487706355649366016513335694005262654494267555429890431810059397394030559433587605918276729842958701831325530982100048850563782779744589718812511454820171938957803154080566790907282311250523578869010595078994384400457572374102934969268725470951307341296943835881697993401060831985900995892432559127830805420158008489576217945034341373767084592544721694479205420453159406768545690612973567286083686046066249274221112070761112884405428954891979534696416454607617251241086034773411761541502294613884782423926125871451649541800336932317024653133043052841256552439841962461175882751518727887595284818081983700731349195559433087145317032228021657263459207281910650918916206226752900546079558635387909312635919880713938826254140261707714540917814656218608806695690573695235483658479568740917180552889096711004083926201139088506418410053631405558311586190389650805382316442620539606663982897814926431676126121936989417462949588754780161684284430100041381557130605733936598792487107544850387655951495602632637363159710322459795480244768292718414565002870492353555373946465383113612368140120412867516520529473922733367493357739358246318527360666824626648376352056453746384465404864710990201308942751586742798280431993412730582419568186981017579397520146756327748375569212939779101600515459597908984103946895261189529268940070283536537465717770731448042861943828274376432484114569552286850822164112173939306163977528089339350160538393313042445818592648151923948000675861876293943715096945988258367726021201178022915723437037124622155421916242194494716787293467818082820795889788625417095937805667867272059901433860142269415537555681793661219657749217921169029117106217393609922413490674940536783148618568646737962609010099486606937568272299720126554635076020422716931821449089235216693884297555227377621032351561594857368499322977092738700471212369371820404147525423592150008647018033986326626217561479678152227770767473726028352842479257860759349876402393437139625238682083816128522979785920800751088494513724190257024821619543181607892290896500852733831098340655745799434749568452860326875703239310939932230043144816564301906164762973922124069425004541382614352226435131681568481158478819460646579070251791104201560407232444866692308749006854667933437754885610067096561421983575673673854390966956276260768879692506081195347539386519110434834772462901530750706928368515307387553281453974977575421618566646323658257293156532709183485592966215765104173425893770231648348948148714016752711280972980013830407768689297492748500666927501499612051255065304942031322036393394911258758989268466197749998881327004988848165518717083519153258154335722631774678066708323159918514674176935791231298213990712000337117599612208165647905684199896997828736342720329141526575481910727839562185150521858309556174905243952192132083270383607404122106541222953440918503397627289337379815291220712230496133522145719978880586305791770481783732096338359738355642768886321950907450449174364656898395684709226669559126255982194169987708370260987042130059134204068243611341385892294021167161749901202411864240589175113261044071586598346659003581165003692860151065679754665696352994244140151461538227392798526693181860488186615059114730236297881541759928052512576376676189299617399687875520019997602488086823385500194109839062378325732405800419182203253120379764632859618712807863561355744125554510806985435656063803090720827673638401301252066644004728703742712243008732840141055803538932447478602200714051825609693945195770916456786882618318583114374626718536954422742188205377492981058887237181319214954938876997912045390422075721516277708680005134081815430626259637039758299880109420006891401457256847960250504267606118556387972503949949015440651168919100613696703199607564213420185012692079025776475238747422239751813089376955694429770722129636455239298220563401119696374858129198538160033375728514877284537767054345978826304048261404007333172469353000716017592050695759871991969735512443380525690512406226621629351921565978158187327541445158238796139066692610213936732674142639209434095991989340572283334744835922235315552779611142477362442036948121049030071478528810141615815589280658204580754168156308798141991153138176622360386196044511289733428852179635293319899793138380331699651821547255628821031784798733793064765986661448588385367227686009604495732725372463408321764057397221151422408245892716769605630377257584599258172483853275202432513232003021669208821264745996972509068390657830511307967775107334089569933558628089262868331748836894214336105506228218567604445455792713918342577865338440617177588168347034034147871462305051939690435788141250738318250131190238980826685989100970843003777900187353199133412926931698471929919607821815920700107464210500731083279812812076677101661784486225904569150171205975522769124101252120833429530431328425871296990424873724080878596810568069281860504635866241485733204581084588729175751195964588290825720203086467302419915658266743804792507425001192351749119531165456289734880425529302116492786715476846721971073271339536589530373168092908994101031404814842807249460048200413706365349478549533200793475915189119495869346296100309679530859319723694815031790426763708456917803872527349068642900692854570367691333820145371058590523335741161050340180609665798595982978986966627799345193295125812476428949687553437335344116857379175309429501253168242169848187410749801743202001898632598630559451541617394536510730284694355703459989061943626535896161008026055248405477709765670820840975583238756971479569976531987349548856447487997914447898071631506839342625574811712736381684811200476332476962652352758660833130644738983386399474377103311531005082372966005360637317268137484117997232452435504750208355151622881371740703688024243408730176007108644027537990377468009797471825596857641723312351378312181079356605795219806596718497816624124661007008915286913013084519622981491963435993729347834797679540178159291269940147856172497488184446394974283711760955410158426872522114452015127922758627427222782042706297137630317008442277425966268795397775651028115073642345060116721089278351045624585607454212901541501451199535601376784096797703418669740611686896451159379801939847178406035069680668250481111415251000847249770381843045280292619906327093337465077900787782368242577150287689921009897147037609154695468953187947766532075775092370252171001657855883844285859618833236861845925125443655048471419556130571583553626670267219233026644633280900184020666539930295888463739799427419807848583474496735214312214252749993176066148689249112798699862778322514445371549773759947391084567926104024318447816473651292713846653152089416098604130898659241783332967286518554957602738430957077126340061394161579395954196194322264606095933058652798515045586257337084965224648734095434087641146228415366240869488906012225330631852415788237806681187200432739108630397832868450161947934498179992127958051980327475591666869662616789483956445848422616792429230074615667218551066251595913518978025800911825826637425337912800714351852511084702991346772733528497761850824530623064390613538996112996435623132373613220013379007976757196564365763976561552099242948792359280961966184131438795868396113581780777379058388926163065518005922919111449760552272717954469596235470611365023980783412143680262675604147482755231299746791054851566787789049133586615409912820388686428581626394591940047629496366320374151930095883493126223580751663451494130442802767505390904825469841021866010930633008945865190787573020140110787305750230592471303141887117444921388576873279753321017304102926213706564245025444077472957961317624183149938256402460007052700898784900563492579266050241154365214825360252271851158362520150871940225314044912923663683635932006286519684479687834975096943886263274796314022244143773510303506220809601636960098684327922341563073373165923439502558665172396524704894109255341136198631855956365976235762199692966815457869670174206592352932692267549667807592911851028425034987966213604593415243894730358221971626380030712877905604884082804127840638792082715752772113405423872816615150515931074397576867222224044959679839185726795532909085840690585222660745845331584736825065766926295892059638859959131104343931342965512254530948268596892622480521420975185729860674473336449967754694120060658900901325745180773028837877326738601335624509027858652677286876641153750026580256609355053519113037524030754887780424150593303886886569178152312763837349188781715641678839807777327919041585019061425695082783807939514478657973581502865198912984426667175870980722833545003788355810079785569984491678706730159023264966315241715631845169881625354064893365363522023595573080803828462360685846647665814657979210354263495715207100344363203571466755189431309316654906517952509282544564544469484351579008537507406371173291693986526668425943323685088448220826797329071263204955435657857012798381286983730240952923542581988226550468007876933164614103107667702869888239132053694398028988423417799369178706753848926121124041911687466052566887467582069279515426615626777597186045781520445523955160474596452581437607900407774088014379710734674458369795332254240623338039647616948755916254061030621556775941231562881699691477644107771737768653187391178571656897807248059235533537202959784796884632002312220118304315350841004025935209149873679903129819808895411881641215897225618054488358357919777101550522617888388318700810398270889736590783218966321665980264169160901302989984681953258671715182168817393615034374241419014984108579644030527902950057057682810008264595904698729725424751320312121856881611545055142999406416628454854075929996686928319931872591396353704859294518040801644700493109387818553836743989087360000035460724830908682528868238694633575146935116936627703944312839708397712353725554202277556241583902232131198520938580505870495397433079144856967788699585073841658907256969040108017505847374364165185565623048595297128323771907573956984679817148884573279044912281115522316427084494839157256763371945054038977902769291010284197132183356628493226660188373368994930739265364060767362713972322685619170106142487949976957428292404444108078209437093544703955264707670425259490316595390715663149126681486709637038824269565607876109203840356174401743569396456148097778384980673258051543099979429502697994868298296837322711822594874443588044368936624555682158350119826391912247059083778429769149909901197541191070162118536104818115018485919196279642775838010600142140367027441769026424905574903260183013736668625694472525330975553076864828690655899976125374382127019296752777270619264583853006959198404461846510484394365107740983947805761780704114617401151769227364815005179433024724241961773948745518858434866274237665580241181489288229620063800995514826635200862508389735277996092415176416172984354990019570615954740425871879765898182410765737073016413738481177202189844729485062338827753438123292242684956157901213695682174810571005866748858876516106146308791078848484007238668697986183160689177806855897799102749241308145689174071057965322346975362413452318002439846160524939429237396857998979639431221337477385753034726583888368015059468334869967888902875865798593346238143496149283888547902183908460634966895095847824541595419619218834472725761074076801165908996399732706126888995064015943603335046522464114983219600859438864954924005757989776920698489862759020887421473430363609275260092676333582333254533379988114483263107349272298314762111544648257281569798064235121847596466484647592334825265642894683373854659798595789171407684046821278401683677488010892290157803389634383947308961810472507838317218655220255994465980630539278996203969549350816677181419150095073685220879379669597019514095452776663046824748323893120530498298984873761889340473554680609265537868242344250824167131925165230887345232662529182617846977916552894810997003426448087990466849569925181614241844483768760081827748314215940205722389100470863544980473437479249238561212816698649123155899242620146710398476828500119235107549627992391803268845782945043007147299124811563142891344890057414175447643819924818810708446908816847630955929260495632457611202246663147228126017516792335791770279197343779212568408984558729349535482886421410408078651436185022751075681256218701271452074980677536402906446106977527331231380023922987798122142914355835292374290882842449365480749175900443268353506889729070810446133137629757702957620220072646977611152721105869586205133655699080341852830921466404130319152239805286210869358128344658548683740848726292703980440426907565474751780804294648675693566906374150384594180752754179495288383545739267803970921425594296055916847345530404339371561418254714914206073595710718178624755288778280596887065546489370778553706991932334538534591433755848706157837497956581893627619421441258975787198927269870997869164167193449980947990704739297146661975663535055097647185202044216654136134596312034365148388746112374062741111992357374480965495696936869706131318826692056992723360411979805260038193066236767985670055245524231474557656510325392895405207000649736085446153378847751013198247866931887889869341323528635333095780299461830110334866893216278916600260325921305186087521972280634045701395758334934395019229089827416472568263874743809304436347251187531170697579293370475066426625694138080626500198592838283143608847922290737556718103935311083859703854285403419802013024506400787654303949780058230282584440355434900477465660829362296826018620994316351220610830696626281853486054976009827881905927711390112490624569323120752524668497281062063294497026279389771337632427521136484550005225665639922280762932943686631872748097531060215475584834772184110323172626550371116793370699382194748312542726802142258018105350078838712933148538835622257601994786260202465141702426128291135916890989383265076864247966295017056137364216943832882362058654171626000005367600122262444629776353821930788085173241620043910557776728811564343026892452846413433107423963323168504850314979560824429970764186758018410145033652194021132247608456341526233536269735870766943528709525248890435488740186775404041646089961229482385587241411238881462453469547818395040022237528395733780729451833471385762361266330202455007430071208150672815076167598001911526064668011606125138803070206017121131788606549800673302063100120204846215208775722076285044454393903247070525817764117500840500674975206200131494755913348524479812518943433932562477293418834769182731594068806223992619593550190226799047097744013814434779591887784216593059793374781141504443878973598146193912855341774679192257133347518681200158887622743539934687875933230155375139136418068258932522490422144638738937842986610040483125755194439555647133033813459291120312551948761827276896554008405174997576382871834109931950982599395435904799737081214103030468590538283869894848939617163578806100628412542375076062565895422836309298176449771316380037772786234572349663768458581542933181056190576167618799910300122596130316915429631454777073439172883248003839220941471261533769178668540706103065644628328667134517849404084381939130898727677665707356523023551975211778646416552336879012929195310808238452458254973667315388793962980146829530547815575001788280003403388336049691209651609148949919058074814430974921955089223537122589842990332839562923443066639938480253344017097813980284276315606600558207871650928248839999785897722596722228238984279358478416842279114431653319433019797383026180320942677215126469642020257960200364761926040687896526853672107511825527861984339406607537847185837395126451390291687619236581744604993991683437423791175173770810186635311379655311591733257997086055814463006958395851620356501633406833457640360860678341388332406657905751112523317917618597988083170096697832798987559269883475414238941032686602910761218242919843811940168892589602224830180548401560098226705717374711719882471870756672638922992402280268361694843836293481758389736883945228606414465095757156151103782846038864713602683458010000454645777927086623260787193135364558213010209752082004872822776447739505354759458200756672580624768017948298430147865825361810178518002752785002364731129509246810339662252026635319778885070977861438788559590248512334632520230992699301104805100242325637170711493892919938947861607411493885858840720917298119047886211507577780754661353630009592028150107403543911880078440820240090963833637485240168172902313733752147209033614984251176184145519896166730455599221454464332620775793389587645329260002348541721825325592279934523721192575354845520716089616762297952078739448567639084960967949011702844305134498742754768466681370246236740837831146231267413059188794454042478713007952680002495002486641741835954966421546457664542674637465852080665720949657293525811622400148573843226722471876972637343613388050998831291027673134081643509469285483542914322366781918742925910397273758553032090792915465376873832710527683572730294303279568793739970495995481452343135583172206134145246979161607465688157995556497718969662736297887798562481886595602867127130683602972057077399289962158547878524973407630552805557136539546737858820025651814151232078283705012696393712623163127624281938946185800597396621486941673247915968447433525712477919903519645428321065870128915774886153878024605203387977680220355977979967544052228601788960209142262555150906980443995151192650247061795751187969535743208002098307864081617635902875557702780330692453282257334568472933617272606042695242292022949384398199663255455467450592942749946311992855053200441585379667466732382223600770332168481892675933845520334828254031127841777895436854260834223120080941564212318275125197043952456199671524990341356630445252985921477322844491736601795670824330559652126684023484755722199024767303534766724995645929145986607207239787091930394332506244007475513097644561105484693763869190306977872662121534963877691435441876665497887704962112146186241472040719411303873346040653092508811821246092350816200725957165420208212084794004631580561690513143429957427419133542608824134167484922671983272772991401441954201686247346595638075018630332382311819026960642419787802276972231622341885764839862525384768131122757158443426293402378071420753982737180461837352928466724548896658855068335962880386109288255132612208621071157238193531233631558720411756819268684831563549687987314373484843792736804762074530692056680119309658651762724842319543110635527951800429939627456381663127307154702990399769420585681036779296948736235245899287854627874440561977138184098054029462297731811930387189106615382719793340422528330505450517537133544782852417520734366889712893034969730347678465719030912648450174076944062819460051829265166520925498662198867046884705375059947510281232745313668938614586340822623854583772099705194153354573837519414349311656109754681748434573735772133840822030878742184067430194365547983862309945637969982922589998529956481083629056689681785287766684778351688662620744406796153303676345586941833892912362021177355005970599163433042916023896606816373533914373331589893608122982431692341660084797294534692251510426893503602969844817242214958295730623297680928179669959936326580851879261322892704081093260081404782324070383195604200963201101646584495254204739483247531225045772239312878261669824075435260422030478260832636272440885234250487683876602833293545021243099693705365198729081991581744098061310443198277568908250252671002958132784645922627472207403570277188557317115039768993289169789274678431198178500290212637218486034922622906281981798733552889420308012152411672153185534979981662780861532702228306082472269668588914870619462762861051931390348459481165026087575427425292517433513113488033288424740050210391761149008196100949129798663996835927814154237640406241457117867746128502955379912536018635255349299348685923853272795248117367793951840431025004405279374697700610149870714136948005436408799085391884330865753276190740716420238911235538410772613795341343934168633701713465460992291521007357393036818334369153002867174761538030960478374175014213847700516033056484098688068344389782543650360838216513552466419692707534256202692353467520494825157399141181957273440373874249802253276059321159651937674998310705409679985179805491345971610127346655014147854015189480682970348313648416983770537582858623646958964980962805890699696907172506332329911252717508831004087785926550051035203300635207818599202566845449903755932921944996619768885734558462285058039885266735274052616721918054296810498634215961726427533720138537486682985796077555455474694145999580831702889388761911463488206292581016231866316512767314600413198435430605696789515305509868162653513680375604708695108655573306422421121789418449542750937335234375797975904836491102662781359520954210809247919833924938587985727875712792828887297690069851991973727581510896320831907763405894277353425427892497206205376904754625438008173209267146907995509433506288390004209259083330790228868652826131357116708334120370281015348876596316015352668094567942234254490512565620909462626933241845801365755212840409140626734845171358838082095039047809831609900165330723467829861926111096687966793801961398850451208779795541616639198797146316590861957736598090436369551211747358826662148430544221923864522387818709283845065379696786573215186959275060209343816476750196500198993228749226045502326293793801461407940974162032857907875960874605596945419647389269872393078763384910508113811004909355196859633491554509724416780283267637442201942848422836429764557495422946524458909634898332577329538759259496955704291444921488084735957486238478116607858539410731476531600019347144126046257386304464435290571538220118229614703630309238481369909756186602053077280017926575900797546799579027215425977039268555852386117617792755447998548701979465722457784492253111352353924878046028521843709809037165129525776071449794894445080556780241200751687708948530071777265387622058708333652824704974087683678215746636489696742758745470030824317303902864000997203959616856299654376568223951548957082290771605618494059985178928904085162024432914541728397509993726521805756177014741415107089246394287400864540849063580263792985870918901550011155289886134934844017978875183394523545059310248884222938800623939732348460015526169958919450186133066540154129227862644470877737708978894936910745588667743973856572549645635800586984679664841643273222006712507272272754807107605019038964760320376183985840604039807862635334968293323348065186051489179207834107105938333915402990814752576183311302933151993442167959110734711391911808890126020651860142262169328609509468638899524234305368079786211037654161222778712851570168392932017354024764594329904235267742842802536052142919991403618555367896147554108512546386184463634327120775026207747152418006484947242067011266593428025976464013333760658866597841239073485268881327053519138976014709909549900723816369593565577037014066226895515051407074926710461275160690489173883404264770222384367119113683411313443879457633934104561039870394728412027327769180660501131498029145928592001756534215363444168133361952719626068565019573888437005640296241201118642589263527183772798156610871098138871108928385185315353822386790853107371177980584158446752058463712438539221655064559661864262711373690860114252438237972912325171369760301302900931614708848476219078095229443275224382867181405837861038009487558308025994280429598621919214523184721572392806712638831611726353525286111422455777631312074785133469630116662108025129554653164411514017783141277133511330682315903566109989787031448200630052522156728354595770935977631443207762521770736878729445234698797426449481342494264634174854496399582491250546303781071907801231497495502520945113812121809883138430400613411877031235408294749486394006013339113965474754468210660442320250126574234160822980424775273739261631121433766853155420730782506099366926153240454620830753688043045519490315577288175446506249698855143775020864153149051724153834878501161093549464753796832673887459658440300256107679705529740828359117112431261155661684335136082517838901981028234617099382007985492813707152376579944640832699139044787657434713131191311600221798784006816984400017915512300460823636221184198862181058463597189439488874498616125936931705150713659432479902394125213006778303575757986072814948456295368477158765327280154788754761100168908793142569809830504598808914410214402807880277155626883718623066212961179674203034886096593035148514766534333203033895277482238110776874624312503953524369240628032242743125209963803461550032077928889103253126539433262217582903665564780414658150777953755341379632560432383169803322471628503601309530786691507918615908394817052483887028953025000242716723811487718881510775736020429754163633542364643006868754480581951731357714940720887254923191451975948188423162017547390587695827142866080572606737578151778666674206344041201534550361020127042020994015002370585777099536771268534056575309709872618337325730762189265651510181003704017163290573895679246675807743038275162463732591640864735730928449250811072172796361652769224123342559913560573410175576188411414440701319074044015781232566850491069971039502941004160955314973271520247519858153220782795931944276208265457730994519980090023666864753332626729815497601090439913872641320532885615400868574805577133841883990893618207106447070077520631024289967344789680901525611159234274486612095644968572481380194905684297203227038168207410183256039157546131083381058378661761796469450886516592795299229813280755877274685555086542804825165474202923441324264139331896255483811284125710549368165929031715546319127159762921219470247856517013961317152162686162942771662657654558201202772695849975664068639321665425594683842708940469174790644889036350335975329860887793059718317805966082478722847746228776801711625316241525678758076045717852327798403983735824062250546991279080129328850964647771092598800462072788446215159456748084882999343182227582054735987466637508019646373926412873121765640198712001166715131495166604908418479732856554065263139866807799876536436053940687335869597526260406952455626557626795673857031489560530451733858494778633242468445736743783066199321531884880943843849949311175747991333171064940407404817982419380473779661651223541137686560410936821096607948846761500358847687493812368232383417629353342362891807944746316160690270770262626231578826191874978946980390055222400583397834959417180716483455683390301593872566080534910897450054570257151183440360111775194037746763543024716525081235864668674979501336447341422209200412167753879999211057662137247947870608925038816320499211964994036675911168617175345339936080628674245609722226201050805272892278746195323727011349427339146050292618391145675925384428474366973202320530447737431196331411673618181451514741474729788671969150546163032973061216688330955445543068429969386462101130432216715181150854995980933255029973831815445487031834856559323584038748065207276666629874278586944675679986257982420791237056017948855817525249064428625020073731633089293294108560624293686278068997802473351378654084094517091945413316499958349526808254703178126193897215874378904239320577275965706020152962009608753206722045881527392666712490865323277758725272061357585496831206059507125086218640976329383034028876983493036742027942175114952543111934968768424137077379102822391251053028900766951073226787560540151521419178308428160070040804847211680293378082636646883519934615045909491790885754018705581321145557891929651508156058188433314196222239672161645517845130649945650320980395093942385310320522805531861027193096838876268737241036563381054872405400650947227809603580884004222992255431380534096061088893293888082875394350156734500445677203302119202917295565271694565442013520245101786931346962898822646564511546312340426486995071768345157821551786872169685210777170608968441379377515891967611211133335712598405824935749414818917713118271432046933278907192788468512976071704577584604168314963447839812467776695987648812695015201741334467774890079952926019801815243205858591954337059163357460357988985683503633931746071324894329983616792057344312628206725843049023412157260573833493800767519672434815293953389609774019325267552276183970756828089914709028544651396764544108948494013502815236538621405189423877867311616071180630276156705642615177135941366179071170054571208863216699161609745190155241063536867920975986629078598980187162222766459477352413158199066771923109899228496425278281203711915886772651217665594902747676127478117587979031168449059628397921287981058061152772111336667581203496249875265268516381707953131338790360876213010831299235634257142450986018554831998285742652489969071337161005959299415341384663404157428987512280759831965677557474130914729466925841370948579888910094152158951989164944466023377843238623688693543040838531165354774675402588189037846641427803564515893510803333299082965901670646560233995854828895106334880749411579249929231587069302365909754917609834713633212696932950493394282419167639915021301265133959292835381942214639425908422689321702505086882196362267885545163545329025350343813469279622952438106375098257239142192826368327475971329429365332181654623408838791100460978519199410842622807392895049635053584624292357097323717922141244596186226847972959172780374711042587240542744952554410412594115581361424081399756877730226761521893133352300441067768914396809627519905360625855020373163726874904073372008500018092226203379548546307992723934375362009767123539255453661804242510860582647067719399393373876445546074105963340699823167105745696427559626695849430383967405589394085961308656731866991613341888526956528965430996788010217686117494861158655191714056441747507745660705158478857606182058388888862435698909133188547294654424620056642753467499860704733729421006310429279272739303145346145663648087237857493380464282436537249114751138924157179372475234431609426369190396307976960236212049029563031729939275295124406947789895101050462534179573164048172145070007576414602265905605090763932737962072413415530509662494711713539639951928857361211296444972605064495645787497846836238947289545070291276799624388575329055661977977027757538107866009685185133088314681417328352680754647357742208585039737620217497060163129812803144397089870822822348603998337055564376496616148207973751894512871584897243589461072156170588276187012549391315558927032927281921338394174128457094714761970069841991033355565663001139862040418597575730362751095876519395770211422893481198816837140603345346856887055693300930492033068823035238819054512100469944272595171607831481828971731415776264133534644822088529425808090603581744782308102941898262907506951335292532856134241660099375507135498377867172837269804064452532736140816743363583965135389690036770239359237892685949531222392750798053271143784314279130456944894070692845778927212514586899678245905736577752479076353701663692129071886404296563707394581112211876736310004346984246578800255459427037625813820983745988129657162409868090321596886031257991093328682317585645991977863514254820018479970090474620183988144098554353401569033909414460954090789989196911299563452613011571592597151137195411325962480259375953935183493162315340074368080024954011779772723865650530517451020618643835256723873969918218561670392748472004289942624722133249382828276521135532205310755296232700724953748053705058971926638003746497402275465198843655461007281458970395358246978324783753091710874698069090871239105937580622331595430394205192355226912492020896878946284342246567021783774218610888072508678284380804173507265043982200066524287711699512539524256621318876168249197067464578163170797013711591627609684864804086685355034714900642669852318789044366316532781415567648492943291286534530102342088204847020126451667474567382268586651524575356971692054438146165477881825761782648811723054170440914308753266040142143209658281538013899987881533623817442470744353352720603083985806015471776860689379730067836861229269755255598647963874683933962181705301123973942615382633937110429758496279268096233529711944115796071908093668621792345294620316932506756880284983670221561038834284823753021569945258446249659556769783908397880942002341663392557956958392288681188427085759082760386002298340701605077986210502731879511495317391094925938645585402842724208491046145128331177804897409000776131401009774678159847405324508528133841700741172428940367518051586811210616057382704625140489729442612870464484606040944601073716628913328610750305849577373904208130449305220751678185879005583569520906838281569640607648253482308432146017405012258214170001921362862532615839437617078124823241278755075292344433086950082034432351678695635061546791604148438556125390884931847247266020511225215714152391886551778982182183403469943611673047395024950486169309890263001305623118571879387539801771995796098800876294079458730778894215886381302107088192112495628237588815996201333125370793641811420092402377806102895847197471974781842311470286717846921942579321151132653849619329546029334865843918361531203049007539981869065695396422188609262219369093909449738804740944322762787643557581064400271389542211323208861685476797460144294154704338626621853542234713721466439000474513067786357375514502724128686024557911017371279536933135418783372521899572654176847467681748908589803957046440635827751617605405844393913447111081179563398949696068663070176625734452663172752312098624673897771106891252196558518176642497120234025970909707224283622408168333365659432853197013279462138026216266496475557186789808308434300302224074612517031958215016580914710195624411204766564527702403857021348321264289070403006884448946282162471172638555371209911411604110387355435287693940842130204507962861383513383878356410970526740309056688069535859308710769425465157799973628096391410011280298521734225884625083105771716207218270770524859519424539896696318737552758333395584975511112534903152969979200170819822499162524038474555197514653615745677866332966873223234231529468291678608154029615555818532673172480067959955475838359181299410189740186880238949527861410777084984044617849382284677137760711930345927943131530724893865471435913609869740841591376010274081069205817479725349129724420058306443027357782568566751954895390244599627564776825835994490178010616903517491173255984494335279731217598304469343263155683023946863763973926425281672866053636851648212813235405159269518513844249570636191956934919458206289436145240681625667283432345253542260849936914621909975382471734150341611113535606389611968479391630668158584935021512717379784390040807000588386121800669103504355798819212180535598307651211226262062006403002323474589626319071708844578583242104217734608158855408905206215652752992230976012149902801277057067776045874141056404419352999375644091687554123152699700787936954105087229806939035877032328413278645206717992479335353604244576600199342334651231085819431981010855381917708655215458806393770954179598417234538968335205363154947195287661823772918839114768902990608402718431938421483658230669999961322147569666938590067283861300375398847268964091802040944478864011685727742414860506460316746618401118130346310029790982087153947713074832459159856560708035708447475196336221231039687214044675204295237556780045964274323160937340687197055948102396241019859885590246269384144949824038867030341146332555364202036872434795098355826791203831064838972624581669634332125624894069068433783375078650856971511007922322982232908033793674645808168125766384819930842924214729330114989943843536108327952408046484581916042954979647423583629169201140378938907324783710548085049943600471997214425831454443948964980202788561298251451660067403665938588234895678978086111583615974074039925171136020614894421441156602683206572159947518216754893674390369646520707252899309953973659874253072064637400924934747730223486276720829271355756050768196805323014817239684235758938136375013695173726907228506767845241699150355850048168911295262710206658327800845964662856218981584562092855196929546050749406332979882366680383881355017538281214862527780397458177797316510157601164927499933660072881804837866683015828735887180328303911777438632155763897940201991489439053642490787523229980221845528865976490198266463037330059227825160597618987386477730034086681085862921675596099605141309184879039859291587761487315352903150825266049055741290642812135216524012350991882795888079717629881060182857885904600164076413798125869235808867611387769899950347652078787034914368792261402481656908092341649888449828347301466918815804819827965998334509316804566886303661649345379968454347166632798979526915962740282346109991098921268465160594471184116309412376966105749640309375005294923029191927917108783452299895647778799681484937668564918115474258427536562830269661978888689526383424575784129736056076317457963509908493663874159518100760757891570258786127978729853913719029998145365856013703708747574279324202227578553287500283360000173395611124988212060515238525709303975461977076441177719059447419350877687721582525020517280590700306922460052176065556012926645682062132481797296712547926223014245224476683045202846511352887209500986258124022619892956727218906982850167532819165466907758678067692403588880531945583677548382792960134875328804588750844515230912319212176533274170364679204175751869964790768509973382054160404638120384471042054067569686159157411068748217372383330234251871570036632880173465465238296128982789184974093256541735348619354843282118838777033724619943009165856838408529974995140386077175612711402132217713043383710839697840626899801848969571202736379847275899688527136186099647310871568423180158698966269771639304426354892803986305417711048736016265060457455446689869892635185804660529199728089873543738047447891758944925741212209578205787810852532678710456639626976101799522850309096824759054049873282490542097426617277194224531463826623882595648073593288008663008419298256405307921237052596614964537144119021593110645487808747063197495696314760653658629682023677200661248150009112963930933586533994213344446722014079483785950873866385883286218964606323647982651078042247278884965657270469098233069820636200701035766634484031452450213273315018009863171331858425603951267409460249333602773011786254742779065176688834449566233396037972649028051965753253144112429098955368983078560607457004119295955679621859314748754932518989515097999938664581356772862198141175449491963578511419240479813050637432217689222128574754383894852343690910932865568172224596920782154279294579347951309895922997874561400047603106465449216539416445051266043933978308236481945483282218241112696753379446712429033497422706424046550424906019767661206542703736509565456746198323065691873484938130359644601461923715613186757048813126920087173823337236180168693727967486624224195142599811683868316893491480209375700261941973317948462299561801929252482381698301359375935217366485968713585898429290988348563988964680079544502806026897203399724639399947000105268284164359884756548710264504905543743720278516984727467273726284132089944460018150231246823966969577612349012836279534904650428820221525701519336870460513407959785145576306906453400526395778503722412084035024567162457103127333114573019825670372940228804644818605509449660617038657072980453151521559288012165217671225282302459625380439982305769699664166997702327517196495812536577687297913177389056264239214511707811860772237299367381978959236839787017555560149229832411720978016888918449770645724517421699616144919610274573286043483632990031948943534566656536622623804239865158038926910472410936515548364339137777459663828770640942515484358637667604134034304992569401028108775006398839496940994091648420857815664296730506112769827107847392543107773073764698011324902657369339320928499747648490452824344042153271556021759801804870001198818058283950639803300937467408934070457176419344921524607414889563795036152200307732988766278298285158342784189617507978239204877661733773580086175314336202587692077067904935926058533132342030458569164903875837163797828410007552188535931862751446922801422284148621536535095746358168367816740718395395249043379696152472155220935632292766009855371282330731531543402872520159885598011761979918826670236549652918028832400149518214392442858799519801889943473739787984221246370276197085494877567103608063105402444412636140179203549601519981194799995083758165077963525141825681074759718541427279429805365096372572630047546997423277510429745051863736449782920656800531763622985789463918758510166227737738759417217309760540074647747930866829891889401308799878705916495742917895677249837710196508338629779473062345473708267717023106373079662349361842568804032008377812901081053791494881389164211254663885401876323411864544576690951581224284671559379073066706795582077592689346821738182292438080245488474309523310691287908002500274032921045337204572511614225833515692407777196049732652637419920474316529799313257944265333144153875579358454557819243526978607514215341253614727191520703779182217800400851597600247702759096928141331957439850899158360957619585122149749686480642346989024482425070309733352101543248301745199645137252209895336257964504902236319147689744340261975013915541966607279211134147823623404777024470470161083528256319030213184359116309001768012392621764686565080254127957052276400771986914778116518390515717137115170238110137730986466084732013118609679580118611902930398325204475362486579041727465038782680435190165395314022197363517124283936571639278280470764183469212582300948568116968525297697629583369112988812715012306635546071339800369045054145878767571302342190252117244862715554568094250169201291170915996040704009016406990394446318914963999561079189504081352116034213485096746000777286537979882826435067504586100900014995081861709140025536614490003515852677340847593636789698111336023678242267170491405449622696080553572933641611379784871694399328943411568140240513657836902426368982991441267039716536025404155405204836856235509961994604569421271143311011899897217564974122066674432392075941534142429179756009301359203074326695979243327111019677549426833336748244950166518941178688133244414980704686321227795224890627971846745103366108061734722535075120613186151549274933929049853903668656461288801036089110914714572189591939771905420610897295021085290763824435188527623211785008474353906283079161310003829502935915269176501411421082824871338972353341077261405531625053883813926491087882801433739746416560762126300633054708785980912803329801297207385061785580049830732480495768523481013410244640844154251102118481523365368255560745396399429641498617457260357088027133861823781057432721837562389584805837807779364412506682794510437495854985265960581677512751383227697211418928552348706955146883488450039773410768820189435967634316677722863611639497362439383361653456783555660219563369413081318406903230171177063304952677144717224539639072074065255111488994544756703567269299626994527925293981768058481393874286002971346297131738233355612384837900756687873996052454572853004879818798848721722179076147826142503688499630715381920821499899476573570040875102409899348655108402265898287718946673810234785175482645748346827907695903905569324013634368820147256533521636314897003618408601199145617954422090142716208859178727365778995637471969959010868231752458407442306252722819676252412190236269400892342911117067819924507613801160354450956068651921615122268865289394062898907389282420956152471425607059488221199132600049192066147299427202222792202811141464452144303365643339813517309793250151557138444423229666426597907452414226977649445755777702637997382126234204797654125742870981812619958406026795631949636992602408970198102894845569762997972371150088985321229393053144405926116516764799201396622728264442800128758970391747590195206322579241517688287202048481279858595689391006503297919894942484390122192547059515479582847228364707140053035185227819801658566407672879427279094695710641497632614293560466911616326302262957479809403867698067386467093058263012732603984279206292543108653160198973396687023960751011441458992758768916626214791876751062418833552598285297237260125302070235666775292341703099092926719915618684462264932165415978486033200013812856343348758969065231256258322831728317961058908050813506308209604736751885521081611851204589034433619886319901717036384602803516724162577940550801474437132647096903730166370728611747533259216337932676159938203415208529472086803275678220435808598592071625854276795389300585912726070079695010008625892506612098274938783432614637889217190969741028048046916201776507601661247100844791735184625090249295419797731130134558530345897782025148741044680399655429390513226264162878747819349712213539496263064287803186918128529266078818866120412727315153849763657659375956364526543735031133737252822576954699837769689596304766879635159062387077219185508624022438314942917372888084205545694076545975355892074383171906749979868468492290537189324824925929634142604363542588797001760550192266797571320709711828175150520547713622297862400567403191553173707351486914639005518778609926233096211090459841466432492003667359575158421278466957102275640451155225046086830016562110830832001918394968150582880891396744082084426620470656441734868178611626159163128895710485615789569809041717227760250945217145282672933755062420151982157026895197395877197663523602540127831781247580636009121391301837810619140952630554935229000700868425077080201669657469487478611036212725942430688153688499390767907649748296546216736276831251682281080123224190095056961897058943304535396247242058966644156974046586617153793603511063075807894756801486784528569266182325854303651038153921326798707271813353540637827082436825289084023587211830862069267846045184572036672657274520685166945353783515074082217761949250709199799289780309526374258691486075204891973915483563830185994078943989386423001158590762959536949605402293495670263153741868383856156252349072825963468051607252856824504144005779060754642571598088394655126338500122376641038530846882186247232060594658600615727810795178909283204163801308326689503016639860591573456205669904459371600965326911496335559564604027179371139626123948173900868853165561426421075508645934502742650418201864217419123279680888983361390008767510637318894870680469164436560127311721841322124061578413125419461657838137273758763431330366911335486811457443633812165548396560222710449694198866373850662709174786991818583301252796362547319289717767456881260549369211228452642123304363833202610170383551361877235232748016348836163830542168419640231471303530362109621303247316175899794572147952000494450080084170094118751412076396982095284488116934797927142244080618495831507380665374544765109267130307817423493945163327232226358790324986538861403901371380564561129594627390959297715088746080630332928997176356199474695609621215014086775070504693649273309011739271565733107514587888283543720373705217049305140570026369878733329356645348937866646458475757057462744728454557793859947951715796366240629959427390418150009705579986788420463881436265223572907681239743564035627012482057675950282212303175913471471244382299211947091315466749492394116872254441253403540321905759505808762444447047987739281386081916247921126738151501149893400408299775964623237238291287136817562520710404920422665299937120020008635351157044586291390350248977040117807335431545886131177017465777028705877022896854801113457047296218620888110320346108994230068886377960803489514231572737388217284838000554436500329781862216416959750287832267732434216702053773226062348799599651428751688527616008415892692747700232122922766231589987082240079326091710213953081626763012956138045616642409181457765755012675695927303720220456951120199683472023937030344947389614518048273135901038118925440148480422208067231747746925768859295976357307235446895456831855176988838481824480267650634134445448063757668536559221971887840521126527692340397703394786482431153871775765389001809472753853643879975591712610764045304914972640125073021748972244113167642348629993242590449691735506548974855331053574800600269045597975740007298366939012188875258721872568565233694924831642838250227223265061565472908000822124387869279020536131323490276602207818376748150074071683804322695085621428991278528484697552812936029677700753736142250364959969499189096659730059427168584761479066987714043624050369635577232666118644754659589170532046697059561316954436274905171227871328512686249717484737808751426009919947391667425266831431482518343515142883444931924613628765680866472084481375805321348747513740949179062042562291349408037166178140167748942000172319049465475957903062197911872508779023981740002473156841635542646777518059446376279735224121227287823171742569766367310924213243563039315145277967143055242225825313546641162266600130725580402308120225303970584467953158117486174637955053352814236286855347358670012042221868334200196580847597244695709899486031397067207558852841569153275001558526785708014950529712670204599214082287988377392403255310429361878713993063672786688461338609621563490477657985681445434317693308954626346319599320406758913372261270358380980728231126911455193519790821844534345074513401844896819711344097542258950671937246124333667437668407209887779974017062216271989896362724398542234904619311868659641839260411807433760430036851657882663272741659348210946863219796423597878476631872885398564458477273693787422501314671122304973980258916863075710628116955213736085688171732804103273501574638457992386735408479234809148889693160658368860437866178299524095808994087652438670043386542298380337587462683194326489161082835755558383249202680943703387197190101447449698582897225605527274272160903497601298032888889397649604488446895514728755046256440179238696092223812165065784873120660988010523935567954841495175846838194249863656869849394492337169083425530649274238200319456107439929635868309863919073792568835771811465148138556987892649164364387339776760464041085639321029851214438726843091718334367417407441020681483786163850938116910814271313018653881731012385351314385072835625822352144909286423872554208739259370484019017867340989182709513960996952293682450107444051751291761169026108666150972331039692658762075468179984711143436411857320152814180912818799135962103099153907869947076051145586329277139413014937763698505488079362972394627909446904713271140896731650218064167806308810669916023826991775838753003651568218920115997327614056304984584512476258727988859594149109499897147974785993729716440196858796012923454110651795426582321825487455241676345416885281263961471544126918819870787904350694679147048613892383269025403346647483508853399499055801046847323564178740332950690061667852296767412730617395826944818935699257957298344764863848648480881014419048728788544116041002710435581012362287433898978709653659855213684937183087378436219841428127495351186417010365395472362772377130642339666632689514905708772197134632642740972743722949704139333436354060155755758929852601730594642947730419412463091048563438265930773556147625187897819214479866099126706481634048580022152100945912772142896199117870072759296407158629251258350467860629036360945444947051038153429149857907039202914914429803426076910186934296849771314844339791563524861726811701139898842028705661195784474168230584952832908685943142247937311446266583290535135082688181904482728973163973804067831316538330663560276978885809096426829791927390694007176966363366938405408633158108378804199098151478069322919472368464325899749394171367624985506506279458023032729851352020564808793649408396388256103517249227971517730025249306910367593759876103054087849964429693451332300896319177664420836631025677501608084981255183896883373416658269846712127597630061494520404694247658362005679538390830413241453636339747220901947186230807580494236376361438481797250775209820447664933626257794012990161940762051026880528781033454975698225103044980412489215893604480720896295171616416829527287175285642027064674752024741051703791329893034135641258907722755028335117707638061611639004289400249658911809943737694649452039876354841416570878686653154787933054503633917737624173874491881356583538691397458759884315706551865305938902945298739129341840572039179126140295854783790049910587215889316301003820899292285633863807877973983257852283676278590434107117474672182619473314986521564499247645788469288445738141388549026120723555593003966462787512856688455242029876974579467339780517073086420386859945819971020833719260740222806899753391584049848802371846005205564710845566354121260269329550903667903922142667932202967200495426717632592489297646114760081350164991498312386681316302711170067524946698418353642815366564620218543774600425872956350326763465468337886493284138561354811411662047425040212924000832355145491297991507881250207961885449611746830047135645347827697535867500894075602363814672950752201739753586297218586860442154967009830955252166036495923438301820887042720492048869803986533833911812467503065586506056639323568466652893138614943491764236734594141227790052670631206839114145264127186885237209983805657299964063596982742320434420329504828059221905616650206284614847913497784118469608566910786808520139032879027051244473617912339163064938788732660687360187369691436920973213953648395333316883522171041600242805125797547175686582571956485173206788742074915095168147937630496394559283022966263130654143509584299011080908677139216525545454791734324670623490427336408814805410911934677194355805277024410758345298495655399618146444245902859843232953076709794486708939444220237533996069809548092610606527655278391064367361458356617338215281481646941608526832010522247158392493398217442325462746893654016369505843000103958188764753059604512304502133255994524095661104427701644176852827865034746081777546302461687578935005853335328661479087087670717368841893820626770551398270729949726968646990491561433058983282877800477768661441802273240046331377354400806433083055164809270322723254380396720506077542288096155962543348022492495416370640014864579542038144595141100623950035774001668022169399235217040849195771222162554111954609811585981398810162707952295719340660642863985660990423004588722180248470565850630700676371738593487530775790068116164689787507945075059046439061580086284452729897294244986928948879795071531996744771679015886950075377526421373615479034135533089876499910091026045056244042455969598458016666843849875280569218849491497519834529211988427099646247943428339433769251211616117293522390000056946355254689420570885378087148083189809055063499168425720837624282734467213649417323619430027003981070600055504757918662262603444239592202807940181979493298380588023727765846801979136229855425229477626808727798447749147848973332821789742818734875921075953550111258993633046694545967974147611634267551244666049503272785646327089285994689980589174073147233028338465653234882034688950264874689136602998042995919725326485684381698409210167721080424085793791763106415744404176595717674199775713117491111575526350411688150292074286572081355184853064324223237019147714542520593794091078188092418160718037896768033069694982073173559323327396807828129250365839916434955146279735206924727797165255776378601259494733924186324174888005922954846697316634280166265487444184437026505307739807868646466595926765593516009068963970497377532773660604035743846524110236835287228295458646353354734862202712226752298136870425962459640160725977285349399943110716610937034824503988461389837353860703920605678657480586588441445489534299281445358578622959165453637127049627856749496485060939240250752243477572644684937561727055667815972563092527979838631833960847299298520412659917285617024900937512356371180089896793292808241966098645530098043021142836296167569087384487853364871436100996670139959537198250123650420993119890232270013297582164503415173000528788613698484421602988062138223877583528573221173917574990116708238654142713697012287904169008687515520852304703092437168669330827808430818729059921943007170538413735529471919155291924223316310129160180568373722932464737390904941968098609460441930687929486832551841689862954865661208548378273188235476240029484561800790863700940031058329635102330547754684865517711415668264848272346703666432867969908926360429181538940586317241431303518445541241099026732232673190065963119674941094482580911438266700167842945896556903742764936900794734700358235622588887684665507323366424134235892533457931800663700065422072833128983026208387842477649100680463087563260579582059287620540585626730940780052106820828210888369596517819169946729205979892260802660141911821554545748118400856084987308609343345975015808818293351001186033117464166254897454033590918651556659865273385303565097186136659219560724537935619811394584794432313032442733472011210534915407707641011166828785135107372847899606092389536470670094633952676017161893438537716067712225904105673963071043812486085581795224791564197407707077544515352088947698538172362854765601634222633235247788065565467732550652683558273127115768872367937326207280182358522470479169465038113903097005257930982263806413955215367054923625775610877110991777000310148211087983954255092359034078254840138809339340718414569457342193971115148151973824363530672769538231682631762801273389377893026983284294654050120691304117828531081948301721295260161013270028954607849580380996499023853431464924233357773148960216182475386324491501377569942926518977667503650908756680223645009956366194813111408346210309303584758502873758953046842946082855696787125472294172559318417458868070303974145152260618090502497943800651690241418960993784459268311806698830447729585972338189457155707954943171383174821563241431547602702970276318285678247992689277774267720710537883272970207572893959012240271762106109364046139885727095027861719036573623484756435221795723339980925661161838457575485603588274037094176564544023635569697159919870714785227310990512905647550936644652942812251477035371140758332516610980591786195865247043529695268449799032252003197084782609586275475834024478517391489842921713889652522913645535982275536757099106503886346033598136548895669537152555542700252302469695349669883190266868717600988750679076164120859801894256566362989558473897321154320499655226585429015505576673046180939923800491859447246840850697786706335230739258103800822860117000723019275889708215506697725293611835058391842971075137111114907357052520896184335331131959841564372980040596241801112152234187900293432742960693118155001299160521415805693604381178102107377095048134679474138274486903302923622289914311122089231840011845480943169742925022808026655514908646418739330614941694092834778872701087767972522022125425614383415215020316267069825958339866135943414285878515830389487719742363382785482035984100491259000592985886048291737131521335068623322301075803345890689415355692337014741658908512416933971550462477204546816607632881425520693847432531946447908887834728885691505134984152566881941415986473472089818453716611299791395865178638810347316003952352600594266832616311760571794027699767497316503664394249269951323554643312807378335841218993654979313912676567900641790529488810348114228947238213083492091328138979050535077737310397969817142208227211839224618401239440549841824179492278523791126298405537753996099596885864886841715775957011708895627775452823285533987992835647640333129966427472295091209754652712340090896202345116650823521756649306111602739367155464201108538087597510704021741919899003257402731744686292752743045482610982910423690248788871491907749081139851989604579876577598556091338810846786943877166283574429569480891219245070547535339479362641967068394339485949403485644906715764072862908914105557658281807062918254542791334017814278659937716878921372446968429481504239783689051696198864986043126226176985966001039682250367336315315527675456432996691524091445528056297986547735656159708089446479042825366448336964100077102969829007265830554925059610461731818494887596308180690790637485052920811640322541640703521652163424650291543866262529408971853704544062945883061674395825678594563630799525225774209843332372039900009042063550918245029517587682212508424946176357707435518594156603326713400475755693962310319586344944421230498981627034555931551594544034962986694653623244775581068267550452113643316795365869774987781716982978419203978608201677976369596634553032485503217503326839575449839108525395343758203707781601771674583875386831580936875178755122990028204433394940965770270329634019377669260835735774267297350586694065537505946924772168837421016546488572039188472886899785396742800962089867289352550044405106343066803813975804043314260693234402100502872482649292192852831043870015510378427809348882735808797502286625198601057376672510077210613311362768371637511099879673044460547767793908954000561166401719017409083897775622481749011556017287006484320486817793708087554480963587512039974090180570015376501002006719035786794377606145262852084513835803653584913477467050918478858660246723537889268950350588381034109897764142621057943576156473333707848682216898462647971463311109996077403910261967415182271632467929095401002251347868440770308744051627479427291043406307276903014380996681578281376565763253421092557380799742281345663163279031268577688895537216626087196440644544339085691163938842787748087083721984481524310370317546306233712030034706271417251406425481833043077916232841715655567294184827585832415088548356028463395574822949044521536899504953097812272793638484366484272016361807968002047487488460400935306412166693512226426946833407347376905279249623336102666200836977685677679540391539188965953792377092508688477577859236258067340994242231593003420855314312796732027609160679671102057021630917683246454185088665520342342831364318335352110571236782719566443291067641795511337557961910952780090498476951367621949054955239767130529967499306564823811135484736059463938450497564884627226035590988581382483797343535496540647824044387992372543457541513539682014086671774536959079761617397916829275221306692491846842309032449631911594756960307600325009408322608284319155492615241034858221723382292832064204095220538904699635920897754612780029636477169665064488558604200735616904928538351294106564478965951974840165761268007190878012993138595287709889029698691359668170603736191704622539759966691104198394524496390626150198625526159428531883381113015489025858322279538108799970006729555333479442151718383729496811832780561594825891319187435402709465364798107194226641400585786263753457314924523639671825298497243450500689312492367710161490792843935631868638920714272932381033467220294115470435531334197292475351509176504175750359099864199454888858237876296967417646128032073177260085374837047018725715533538211127123826069038369198248594295280338417207918507831888332187388674846979185217379600583192674982569747008520571804040053993970928404982543258236874624188650143377275713486801123209942680266752779868313948562946509099540183094376268314438292001224879551024100083682139127804886545780654449231584121913075087760256417054286161277281862912091284320915943454968343956571963303537095404298043973268430986864160779850963471312234152062268875563084981433245051739742222969709362476705591394863871262873820614398453481678427435608694417037120531382100790601398973329385401403269870650454253558658858469751010915985111917034196049593318522091514801369765403180901718775414503201409767143333411586405911380266734034820031766887913442947750707350744505577918242765710268671172747580664799868210179707223093019199219362449048220875959801578055526920883050008979902062380113122225424416943964014404652899106168389688441144173637461929068027968160212672505930853911372622495500466099245403285892407158337897869122930999603067472290574199390856503034103562923730680767002763032781240897578953740978627188663024001351477154252280008208651479685429050966932877575362089526036025332923595875899859381077371486903790869432578004436411311469450213952519209941101505966483039213905922159125457022972394854736418677838391860209452634213757372518967231884550142227587698898228009351849298656572168462993237752328993850550416867019853859854561683681609310020778471359054975382606682121445941526940238512059515578283576318670827247440922482766674120732978131292064120754515375890789651922650477186759673744157915066458768341728991355275996568032488470683534251231795676183113088780316129965168891173149061014657175725491117269909606637234323257012053808686697414165311515616679479949643351482100249345776263574768115835947991818812832415481550001646237816147956698846794411786843792532817421972246468140784563160860721556833271814871292871488090675350229964674671509532420800145697091049900807530968902623919837664023545487611510318712784064232053445659048907910483191550867976915809321752543894453453383872479939310904294120734509765168536266901603743304656875934557452956599212226492161015082715814189082143227997047707778158091966510943951958485415172761203444704044573570910384362001786333505334198229754151072150499828943740396048549447601037167135904800044435821357589567405247634361660391601945338628379141451867164946941437158621204379015398305106257833954289707422651964093153065500408949168717248232979607602608150809880038909937793668203707684924641714632013157788343014743290795313869822729028399392109665151529674754884875284151817665561238794688137471650001378191456929932555956236897879629486970520414947286950744261145717191009528369621917084630457429029927865016890653822331405051506667841163498874722001539598616477781300136027922187388182410859158311392021700112747417489344188604890037370532623051307674856838502163676931310026421749730617803075038321603576685404836343055708459088515257651033267521877857833055948511566681164964655478678024776875499573266998615857988902212643517161652454903808238413698269350789854195052126731609635683060919052882702324491487348216369577792339780540702978191401019949293382200496737330188587940743419573137471179746063975253448087733809852012216379932075138342714715856852582405675974643573190335847570637240799204711407693504162300151626631877533481694731464619401979538524340352427667239395047679605411611675933765331206130473558386680727999389987507682628906422609991482854764219236819863658496071644499116913259008097947934900051304135625546293327387704172531242956387287829762560687858898148807497445069205956178675977481692403404716536260284626847154443359085573767466686688484247824046209304604224248709950446299738371295268272921642545161375769792057805690566155396658417347959207210853533112897409986954160444743675680189833096918278586369138478418140725746494653329908141309468228276857467688473218664634023567205803873929124164243347181317403503135277480152320834056382677419624914223172167605652959440042382729399813779274106449070024506116138834007924902323750055306871606372674787140586417310830736397694752243043206942942993239727064000358341301356538968524315231871131726892370111205687757112930900584399967090181747936250594612042930563860143476998082585353316752939711535216221478496454597351383773849673588656692562986036393265615573086646279229469196619081767556829894005716226683360729326454577352134986943949073848863844393068233615486475139880702462836194310417026323953848863410053686650741568587756985135811549636585572485412045728060994497176077673851585786205665067554994721500482422985716601860436702022302837859509316938647486335964612473801972566240695693888423980895076693537365859215385261156396409956598429410637057145581841431243167204758979253323526437603881642829175669030564968487814183177407865497350168526516515493188501710907286886459343868564407854385389630386144770847136078058629054122117324293729858516874936970821920845879755009014460793691084976952400878230188350898279286502639072380302936071888988888612829615597204780058804730829492955256777280174466762615630163682223561485154456315913219805399048097488350108098874306164695232862309153113347296342384634354027663625132110277268123488106343718153310522910250551139225810369982332898247239715477809019558275635304593325748787954119667235538968440811132487760693102542758475709086993936291919036290604258862597799671917611536246903201636852032057222551145772276733790788547304189897015827581441657066197559487712522811658807805014817966474032859357520306088390670039970511126951934286919514921311766437966594438013430965618685090571591174098641967862035914414780490318543665652424454037519939811407325923621191228959412712628767875621180747496856660885832931857054815057514066458918528941923728156226560174038342613932646408024270567332142966720289726867247664514419032477891928683385084711097605634464651766245742978467334005442204368286955913380975166004313013636696314464233241638523893785152078694740523186034916103747910356724753397255325838546948542019466480542155695963832714854149847419902417853619432384294574555261018989882806852326747457655314428233530701657911987235104603211417661964195544119619628315302899000879830677362171311385412140446179192987271863205446280259351409398762638872908282197787349212561729328801790619887422105749930681531373220768633978821872815163348409474342175254837952743547415506637795223112123140986833437794150591007036418414649513454922169195841323163338638609502433652213876623839290032407857158410747384587428252105561839113274467284728922354912250781816611660458290888379683671524719851983162250512891507933756964874811381895818870957672609611670059750675323690694118608758017075426255579093728426014238525463770430589667953154823027598806724701221988109277423052209710674255021236036521518676562675971595548744232106520344003837336584168687572668761645085343669079743128323148589666172296042079357963065314841586807219978058102831577674801640518972077728350782952416537485465504926647508284421154747835145585654344442620192878470186817692520831613911518101479886825480015915140832400219119536670695695916888426651428609324319377815300615114265565065896855219098821566745985450705467187243566105125525819765784145479373431882002511508322397292045869372431218951685276844051889783235814123465672993623018022057180533813415141388913656453445300731920542935670828738833970742698629205161187294594789173151447622624291751331608014904987831856394158332531063872803902365259334380244709394073159860292024299113354216863759398497120945864693278615181938738674889922326182898520148974080721165613547719769417547956496391832806817101548127971843231953813345013981637280583316523839209122876650818993724253255633938785678974580139279663106806470365314793475638521978629521276073067480267943206747892084475559051359567067117888871341844303377391573001920253106612326872555581137693639220519869598230926947481794092610374386396584419123429761697013931738375140729948293772489221447732847794911622894213971431052804987583914175364558546485252670807802114177288391570977716481515013445131090644095461295200449515718324792756930503456275539126557279215163426869787516431121514471331861207790103915585635906005326197628208325930034648501273625643454426457637572125696283678230149803981889239212725516269301507708901719479347097510213421933860957723694377577115064581499616317009710105853429339327196854099542736494077384422081151758740791107126313752644106912508206928428527129361492033411161058359440150663848112325208751764021596601203733741283037456327760140405165774073391251870224034034913692870279874553428170775329561656117547930137676064750927942302755513175226105493259109607230324106977038228798232261901887720239312119952764939958947590492920561683959703999960645879931576393875161820408109084531651248346446692621170033542557271196753546592330896384328969217864755525589216983762786387504546943586322805465041603037889624453817820270103611139521104396735518332990331415030885810149548759238811058598203830918844565205403806697587422846528880439866613656145325120734827255529969009257372635387242758257985266133178193094900434215919424047217548151511716228111045597034923466093346786444962063970598714403870429941769900598033243633144673503421117237371382615167642242765480703386214464826357425177954191983185465755295409559703812989680141113875139660572322240029092156182824903310300256594023872229255377764462269635191904309936004045398726350858277331741069561329818060519610588268743174005192716190784697307316084014691829121393607593064897441811632536190474793975513374875512909036540610627641515677572996205925555230317357723328425076130647097240500825350639225548414430112706700834447132128989925783572255787815374246829723296301130591321628265613920502396187548939506712855732720633718754983994288483392096885549823227678856406090201980894915160268366460119890859917385519927556188581855312254726304229140072231322432238696144574084830522204401145132696173472022238509558320167830133190331712653545041429663785875989674101220507599487038481166140548351712727970363184677553808671817709591828254447266514944186582532819399582416863431382107232767374227272013694430172354431916083132140525444750909321404336442942837929876480540725351197988107872030782994647467115963518027232560400301208341894260934965795514619304022684808561330883913081987018065852551686489392961839290305336613929119403488897752433498068308884455587670216204006186593744621432412348157093474536467122527787349114145929595766960027178997443612334382808945189569684154961545765035319430376283238609904499570965894261345048502987659800553476628812888451273650303536527630526593199390329245173328083796784640174149732324479088125256939522306762708954167402982464442603325802435736672223298012895117973452397680211147452129054787791058400689266166212214553934127564303679851237455760157923833773032062844149528655236162756353079977342534669832562924492274791506398579656372482390230663478769733385892590937837971908077259892438274347555464180720928584834427066273098161485919219982226713554743517559884493282091871473067689095731408487077578746486342602039743835874390675440459042911069662385639600350640464803841282093132299574311799338510407464767071450724761523802254253187288249870603954476741777317470849600240694550061531921070815399250236099316856663868986925814795183292139433627721670297083578147662565888958107568084715699282439003876957799946567855667831317976289797172511725512125444896919115044542304243182611197758604053323966401822386683086944785032324067366046457692845568951777348879121799233977360418680079502508517829691971182824727504391270797484957098501684378012281652475346194184316274550358175816242402501425209705698054720551534972726639566351010950518298717042487532889555351159709754702943801720478569219934430889071542458042434332720176113896912090836396101384644087848585393670623581480448782184669963902083510483719174462584758724740452671942523609738894895402277613338578396579382367442662248439296175044722900745043447089020164331718407116473592815534356762618722761137548612209061968908299799854329115182774569016395380768818547445689652546652702028662134652465688516598480627698151649278912381122579289159135778256206608136617240129661607605009846899525897991051904532363454719672189652949572169363191376005663358656402085025780079883040823727215654379815523307349364374883636932752088470147292195475807779703146269174296163168083563624759650625959702384260249767980786582819219734965668874938326006995081648202036157284063785664180308498548282574050776604461120214995536368280872123364879721359802198245570984841058554229115350349181455832308270934424382914541813793219269231861852605617015539887340640798289111800704294263127852150083685829787220874912996583159959365051523105967119409990986144180974607134779105487061738532167758127033447000794397361310807694229091202496992340623812528403381769339438177695460924745342077199667088864708702697821219930075884474440496340960823935864964992382502697250858844531157738585274100280039934987215633278889263921271776626264523447049195630163990902162232720907833813603427652852791811778308776325972389572709665708546636333549175705171791027833367433747502405361063801914932351629055059178522146756065806578539031540541008556625086960895380347227880802258248875998433777766497324464802326038795824238614117046308210694156270751408484921352429654311277294614806948972148182518633646171225722160203330630010445556156787831743698777980884779304471798599582360785857812739618255821386416050909477867545233595720565004940990318866932872607522377049612530178820539783973428868393084808660263706091888761195488124381583951102229493457462180238995564561701701848018038327698190735698068287661684044054724205058964169101006809206656779643665628257196049837451314899131866848390189984754067175607808555651366214092798984250805511339343022749112160424268504147634605693679981629851207979316235171444309284487360971054452180201800789020428148299959869284246147909787476671843223645413103129042855423648215784362999900387332956919726003428660551340150736421252931165943515298813065099172821495854420831186322669226521601103463637210898987762665263883831411886437428656930561165114906709987908702854196455273617168392701887001318796764420525728903260788012658300670846995845492979721576177075058023127660774604629770900708777022427795131526324587146039477554823355036493828314875544081351544975566758546614352008020903974043028171505707033530756619967766194645989821930320721255673923442386738300641109348221202881268433058390399050875420986981447448713199538924915832869473634698628644968002154366621010979793727904943410896301839534573849236056562718583644933784217222888761103629979771617043375196882719884433732284940461852159094702443878773678012425564997396996260714597749064470283228620902459654950313086814143228394695095209926397125339738633544365000863577019408056825699681361445476709844318627067936323606342792933767500207495728142026864279954525810826463387896857929950035738737622229005499651534057723494570193958027313826206383796387971374554812260746038706876680958884026208702683603225897660010642454395038340588325212451684550364516599193402065380361392509987716527507004125492645761543742000839637709529112780251979583523281801457195881691633083719314954035891858205855189151792946507211321537106824759942407914888239469629511021324301382229844315673837117004887451382450997213484227174125150430395406728883476254745180383909605247716484627950230552775153689724026269967962367937339622523490839493021363317094119960948917190951272048060881162698038414557334607122126674939480401276763733853192729481431580579833637914959954911274179695502683857461206961774179078680180272700136245391961788772818598166551735109069929651874225276467761245383860140799499166963187612255171229914691338702569010007012761661083745656775409880763449526367495191844993501774847069077555979758667987877270854344027984768253887994837797670439905648472289700965196394906294183403607932204529587145792967575675298718147463674625794904496474735011842650147770961945938336978374373440285605964707608123391413192191928430852695797876455215351914648172672359907636701226295333154506310043283314949230813666653895406586017199245922428383366457390075792536982222461200774017249761899827361894706101577965126213041647070850072139302812642214479467129619728096842719673541493717610798766182337430218928650325334483574739559993105089065466197353175118445350527430552249601074079735801100371875321728961214033269697683649704000639736464163653820638173395593039678781293549320475574341174082007273820635507722404214295455862083903437847691511542833270534751284552564837762763442469173989952771649154506621411301940419927725671036062433126006793228452620318872789288340506943033515460248050715415156764796898814854528819296695841687465339330164278301009470721453079299393153063511136300324235867267763930508635413772228711844564717107102224839605653215993532413177618955905469921389801971760221343154280966016137550690736879601322514255147724697941525461679492487430271155121959709358029340569853230004927270002351266856789161616975217937761468164718212232362952484803319961792753309797424302478663381169206341498265140704172024159049238143134336280055108089889084816656308111417421640289205858878459125539154221164474191090329562571838399288946469125470221624208341911093616797331057637906363514885950470858649431182633512311997704804029844619924469336105111075320326971608493412786537846532905110798754261809624984255154218632204991132742143588908000576064003353908588977886251203913112571971604248443510446851881847678492753377922503081171810046752198823921372113242030756851252591018816579942996215063235644424822423888823264198301920656229651009942298972980640733607949361330228117977733044755739290233882666318377369766977181229869924187107781923790446632517511999098178869868546721433381936372548208000429169635718874873264065292731198329271035894071707314493266254197145116416584681397074196118099166532452050471692207273746973431672081677785682359118880354353578201865087793226723663012353415836700735213120315803182080125085231956901795576796337816301691438352503095557649756385188012411109942814168719389677736345016070076948835765201317917441239843677776657886214954370857738704683095911706420803122277664988258291100398577792184930452091360625757158836448512721175322937857581081678560988641464001762155531238891063374855181172552712886562348321085871881161758664068790309266865463162749590340604625151339746406317627278938175930744469818805737473125088248236517365116558041735342895164346383159749927646625801717738727149008043300358834240777905121932001382963784726367031881782858495050925872017947069264744386123859022829534487633648580108423781502556052506956436342964519643427358787262541739685057671650161933176442971729605114645299185791162569521358453818372987218160289236042120818815144931449070269698168317456744659024459165940336810145621730537608152722374038280277338783586326454103964511229681149252088133772914512593621476506332478375791001524494124555618477926450760114130541365337702705102873648593124796604302770872509611329327779669004323312350281124636179660813445616726713692832849085452468275747344939457423038691141408715429566261139236095492448579703358356588108764331805564422221802865035277565545276598311117969314845592546525700397897894582878799005178308815150035395134083654504726162529891540488224163481566477831887709899476264249520669509264665620344184840696061721351055241732264875568147053798830200503739079483041185126897934201204861292792647927244503080762832692130876491781650955425168728345069871557697768053677702900647713709866522174513267806168602847266989173819269703138651979675451378706488938164095726450140749253997285320538887375704707158698809053500458218310694860636815518184627038882731060268927469606824873297140407517206852213064642917081561270419213100851688354194713619799098568248140893525487303597507551980568828650329406031921171894244849398547204601461565958414342758338326455017160026926266716267527546165734345807747374427892788864881901222242852937116667925517301076832967753045666796132059495168065766298383681893642762672575521584388453204573597082073151444799497254714828734832032886098222785676041437444711572192595089591241730430739456216553117359335532489358502641618502200546194581084250044589956099251749898537119904112796563092265769627342761889049989442594489681073849480401084461497306115066208370414590940249568383139166232492589289446829914725430200822429888200314507562299429809275210687320433733987133553693981587799566877483611182475933749513705133738046059754649923020884797956348657842735068098306666561547237295381571666235668768757862193905516691966935639964725775836863897387194079450472794437011051022844148119244152977478792138788223347400155751325675035035643968482114750679329353436577793665580583022910830540227707610190932712668098856186505238357996176359039005646596667480431703608251266745430992158074579347999947892103658947381927735548050864429161839778007258243186159765679985613550429972534194275064315327117134157179080491776842456243221482067358154183753251803903553206965911597012714224131301306062853958710570531350019811290958064717426565030580718097817120533254499069940575474759701683390461060502174695338131600795665194310671101651607332749465480898785077617547968106064851511094381137233619073912169241724719657137541286891677071272748749631177896685711297579902088803225081822216153067010570803391641483959433288701541751042458140146590427593130680129365026200365219044223065870488877594744242231892464336896441397786719434027860053875448493753098513959748438637611348160517732665819511617570432379895368913742652755379237246758629655457621885772578949187215525843730644798932691744711079242160104317447797738491583014889205599034055635785514905379879113109016888459552100588859743095238817258985062270508349610707985857901271392742391273550906266838670707624287695534839272004182158590743575978877405773271651615443155052370140865386960850483263772953984498736795729595547112969974354951500475792513026112589486549939726653739830291015581564389218473087858194178690530036767122685482125717858401553304009015456006805426876039416200947004891477221381368205042630913912755106731240963777993231110015244750716906267845479517665480919735337098926480350419822238417631648328468653338581137173274182734952332430591111256456815581369766115228785762140860684894395661960393979038607168505269288780443104579271536660575688561295706364545870349178437951662860717370993841002734383216978317433164950352485193828513290249363937883509446142766584065014697013502982197447547462979586368743796098776576621824670989792506943268807258535980593215897981453416261206919490131405842369333685726939932301942094238062424787293252715518327561213706629122870051550913705027973251653603075962566621272943974564910732354837341290279581646007113659940346131605096558053637796212004507508304888931841873007846113474747537116272991462611467315043386990508341995848041907675718589154893607150934310313986069974397739386517226952848507552060783527260106205441171366444378330187109451440257678593504024099154552559480266124057554796361184908925173308769947981299828612885698130814743185468639275902724825379980635922818709164487579173064026881255788628429387001133322192466812094758257713712679751510506402944897138874126810666646006396309927054272197249421174554332985642617119287189622362166393963215136257673444082994349130391786365592884393867978722130644188877370025438882857502954480959345242294983296625130702310942658635786444682215275517564038735313736938588741596407609759758703130704904810429019560455254489226818309397690600371003362083476703225206617259402058518342628137036308335151327877833126024976638548484089433311420983196393210079072402247731446414899599895361411689779983010448029627632058499494037192863753071234736371886796258992253931375085698251963560223223932965259141371715694759025381970624386910657190634840369622378146807412279629040884930816998333199881398022941220872366636073674538408723582181207633193550306320737500965007154150558817694823647248280305478896546172820274006271334738381002156543610615305554905362511110533186080772054293788270904111825186454184680218026829037113289243459537304559179527173807476573684323227457589932820198492375740372320495434328113010798827476039296018217597370612014846605413323448765710914951039948389702457539015344620288453698391517372114738897696807713280791465953937371208173207342544821302123270952170115342811857512812716532469617272231610153557925478495524935021790940059590634346589866720009852937435638930765389616828465246106124986737666926509851450346852190178612542035619145979686770622506096273317572141148602792327358178648346082419316368762822491646357875597870848635087441967772174396251691531478932193759876194722895705909469744483911375467983458622930076091471121023229650114056265093100520307801732120093192515023997138867074955257229519610965782390800573571195003764640797349995778137441865842466393237318034797725465723812953886651763777819837873289790885363495367205363372538894931785661830961744829139108462263208399628137388367629315833396570621630911409649378090407397575982059631151663758414620635170343195440811040820662828666235577882074221540658093766317048799807362047558008449433789360291587898517277642681703273356716643861898596320714478239179151464937450139551046300576057765070468631781964821253139063065435022021924950465847650275243189126521204639948797038914772646406031626025045285973887670686425440833596246155611274750102516010524695955677902991169887643418583578594018942693241424689214967687518706254998598163726667913644265616272627413336133045037183617508607402852980351648937276740707204846373742258634722277644179810206911143486084389689273944878735722620582635997811262108062473367308009971158794050675335777539091232085526548891069253066256436202363328109892599729262454975210824119260300261119100581098688470385155714220713058550424135244973951831423087587995836569217367122038591020801134462519409109444812037528060215873910728021141706915674857313312489152173296255531295785988690986588027795791785983210384857327586073586771150282150623843443797434472014282210002476540747761701743617244939789865849799301551408167780663048430617512045682717499287841553942296239705898009832642306467508709675725276615433439665456525709407676155007898867935879304953095549934538281064387826616932575351834552443802119761201410315558323998323050540716073661591085093535970345683885658807900433836629814157185375874168960382754754781655511702342742940548191862308504035300597860767455120573633540930554457175183661279873918724872741315314666158015911420352422341259262765226382730481470487295617963227566902266836993103010408734516555607302242605910303895642126044103707537290186347682039081769033492773974773444731226980320405452496822095872833133604670992583983250838930325185584587776862232438704963575154414908742365907299524886219410138254555534047489460825092481897055924772098335515626954823906590845044789635575497222259248337845694387418906762269956325763276559083334333752099463434485333935732330370476626065170527263817392030005254290458443115982369416147903837615099619082392905828165717318104604551436925170420601342342266669845069064766854879522060007359951515437173043542472143556407769389916249593927350012884571637854108316141244381020687226504548855628955467924457312769848829043907491943522189640203249155557747717303420604853406608090711224815203675133400131822593643705664849543742752416821357402518574312184235843074787656575739261519041774451654348232492495368467134569410387414149559321574076396808269749388771263335021738239727504824518265651154740230746159884166966984317577381675131290040630796867568003244884407891056929741266331894584841231053520292784192383709908401860441164596220797242494008088499556201019077543567903351811496757005442465060089736004141263374680748923347979473410984813121857793393817456444521274047242333051329686828530951862774183784496099100351833180822633038877794990675032572457383835619225240805664249370547023672433997745154030356435768233205309680014433630576327320289074273882062524496891793518140686739720259905322075477641978108430837041058296708719343261628595532807852325246981356712800069008391927007898687610509510085112979232300215047538252162207314836501545073767079553495168979129121042716480618862144293746087615185169763113365105352606327813226399230550716696359738299405887162618199994481063091869264798353310527754101894039476401583859592802117044874800000882780776746212797750089174455424827698337852094798865400521383436224119985412943427107743175776540713864605087449933561879329850798582457292593781338572646701471558145631819736663693440178407607302186119290162479888600262923776756010058297830800507144634505037770671746270567868593551348519854542939844848697858754781216922542849386733833778995289522464746464003618781916672368403614199271438800111142894756522166813906824266773588548030993632203390683572909081267024384483104517937437121559601473963546108783931239002182266979524168979875148979229871387170715195718633869195263732454730469356037095863381480667635547943163569050218419854877825767817750575679196190541607826108656455275655693736794751622702748306642932784965193419423403614772800755269284973562624244545529150012891814104690554308899274912592763201930348105477137232696019595890109781153846221940229173237774406518464679445832955842056189380428955028515120437464329030923842369907317963895040704456473804632735177312520933703218980088423840332516888476293612879413010133565443273434342960503673637935896036072219935031984452013202793872834069770286201860570197921351442300919652803618814866313449616264636093312655645688452890136594990264743314801207730004438121676473300869745156486054458497211035008975952809702076337895611610410438219356703527655989448810406505639616918701215200143089221227890096481675490210735828888899382596957716112486667825055803681120115176663728236000121551145315133614515670891954995864216645876354886997362871163882922006250136870901007059839513184624557033966938953572165361073979653750064597411172392558224752187102930169185678843603093406753827265614740556738925700095062326586256115187108186585234730662857982843913853846680665142004362742132004585130016347711036066645071807357253578213648171784135432323142669383369242646429517511508651934360752252986628638412660533407272995968390477360385801355931004969711618988821571240173176927632944586691875456876321368896056755152690037179944326813619379173672055908510713618628395810484982476557345250630749497739329091064416373338027746488967075145289018111113255701287959553556226584021398922241456223392283601447364199321751142697475846202620152526463777956372175124428616569165694619487863613177116308981178776204685727261864907496120956108610975758817578579994983500915923997676179369096073756987456006538811520009649404284541947819588654628460367704897225494142612801696643284978590162751586276192156939813076512362565272994292439684303012357248544317162006664078624186393445616872374341918034074554921060273821259535839801570232498321024530039806708371831477268793226387713311359575635711191399171298308545973430022585454272752282277983090958140896476696726358131646145163272523163760359338275177655690581612564356463868691894343653971991631941323850863428083005232179120451043830321966521755273912034238455524158059082441294959841831883695688744241278534506912627204731504935467748467536036963173433126659764840023889023449683227700228502185242513180447421373487934465266215923459170032438139964307104375197777173838393563045865888780335548447692061984551569532569974771689314872979711997238569688819583196953523977592741724785440746268701680700643646876961824829119696651367742426580566280853251529420683810253696511531076713093393717657043101220136058974018366748473262950780255112936138198951027138630567068010398742127025751242088720075496304153411895906229638757535817241802815620657062282997435014759434686366086018791890184768122878425127451193555878214927527684828746931199003806269388664181434064985253311005846288184105348855568939624575019403874023436794591670068764898102372888068745560530606792875134525901492211041168482750093390398170136337292867836675700226192500902932949006000853633746079519179257229097126879565920327300891442920438310361489603266269183323072227961394276404209054889151230673979988530630331450722772658975199218807685472603050334465745780197519465131137960578342021584883041020997638346110318982852047875345702033644371254657424426999354443885980460836659069321644850658418313534890121728666127492367019792336238271608700232941358496211442568830522497009125818865205355382091740092985475311020917306805091414457761354767115908088838423263130592690068723434710755815886303121461398491106578245296073109058555098442993062169981536769203268981645999530886796384162851640820811096286296096221669102187460151016199105030946934143287408377872657890195441900196500108105893383729020783212824265170600609169111139440496471085395397642589925391910650230791758955934620964970894593898673080795838916494826983042608683005130610223471872201373099243584720345143510970633344631132221712159608253770091587688045193581803092734474322382559421435075890867248077230867444612728644266696954057225064585380768597618703174686295875684909093007991573592006952610989990921371771857400625616638197495123582288498586057252385546164772577467746815967534500118521326496464494013193190360381226933698422435388998520057122764603171766292360431129117963318242515388465197521769702002327432114969545044414512298851440918137819114666099521607012343435615036209424933663854142167556468808235304378242043528131215747957514287447420472445424566486536613990569250584386317795198197114955551339541078767258008455567555049467029959774452867239214904616886701298360697812621148829408513723209035053838460683800739377862744011376351800217317308352058087869534841763663302842497122814021471410665723256699257177189737234525517055064017993103269007828007899759979355692272700168864173254038704059329052006283123154493587230862757879463949159667950041329323268000657242967850720138640424409738873934896290361263842894139522636473796393193669896138331736121850251553209288976113259322193964786762744048275180464860227570186541927942790918237389984583226049458118103363322109786495164697116491885489970162219287191131658781354935461306953820471539053475794767421342929252156819093973276428398969678385092258356629105459193850902727738182067072740839290510072815503882009799064731571039596119047668259853891970819972674031985353982363516858131617143386850841526077273752026223044673490348175615067235939969467160135103152879772145423638152255400023040914406934562360271045612982353537886821192946023299950090562691849150999672663907128519141508738830329504214835987989579473126029789624090486453244418589558869928747623714733970708136196177729384217351002396991246319980907510894840564040442163982402060953201890372299208213695425363631367652196648134467564102269420984449549239727098302868703236504113289500247751455573088418056843272290513199042193927454297542153704325368694677412226484062476891025521647185341411217106285373245665676217989728247074730120887459273488759863039833879824393957676238228401252433724108330822565696431895426837477832769027356777557069041853785526043804520667962566647973734803620660851734116613161579844214272422862175942042302612381595489243677941795674174630503919991175349153936408088575036314664653222878312898163195772022517810452154955944497758127530995458213454917337315174138095175329380487190011734959030899755791303240409340149017382688915027933468967271516463693975053113738838396743472613430299678600702284741243873914627440067575236900570229477277010890438148063745878838017149631067303375406451641047509526131485073956859777523716005473229693772665365326099979409461384825552120000319420027447873843683905022823697703656565192276779977259871129730896141840872221450858422210341654052720950029136673103870084863538282619971419700879286615290369564646761419292413050316063750197917334314513975513651802962239877751631008957542143864289728403769679983586190185940537931857078082023349661788552000516866133779018585673184449886146520616949514219872169837139822462644535767391240687669542885248156130873848026513377998103443721583868727162418169226978946511767221187702866326322935523986667538747039685439535427531410975190211937400007055467772044587528101166924921301513077602003349820478139788197674388425572093620386906168010486798936421848861567258825724823418356726221916062916297109308467560957822504506346096777062887409691167895288322533978906681009192330021332830038812619882613181307131383577565163555219666692729559244024769355024373649879458390448593028407649425009745110302309974978723374644750290283402421804940372238072391999375230871424513965250484892086218290216832962645216294027575208777700833285905321197944048160361506640969578507792587967513342167445094630422770515202092709047732548453663804069788364564829830115036284053910139361894230614610777420490609146972816740815733445317989655180550732368036693087418080207989597879260675655477920664532649908218261770924017488374061272450232337760681744574998360208305776807344327925859814832865073029742269340610354491495754477937223074528455671530651390066722904867930411087165686157535591058736879655592076484159883324699186005439246417839206087166885857354834282227423077092881410760621159419607517696789976288337361983972952218127487757275029747982829954378151542260269799724817887602167579731388318863875081537051257592021253729452429521255151028041108993520081631104411268000611407067579428431893023457042723023978833275347415828993014501228551009323097337605087592307429852434360879041277568639295889021545044787031476482071765250200812662379467727454092752959696014396583678441484057803014288192368837769677099316318633496610455489410455023548970044390417148825983198515557439459189278128046204396834820023248363621715742180334415805997231769039804330637136817514540335447214775895395187132525449404960031961342234665989947582798940015851917587659427260512881201329056374270706499979420924866675840431749626478266460422905093683686464444218505858224370544730726570590356162614748433184433131341069484868609602345298675266770828474553234164270771664734391651120959948991381764299770287840485415030972106628179356581251104136832119661170917472769397621021216480716956864335255384163550496755211311373941489370327101213196777166833447677971096451123786584763622652549487299677037520413705653779314817240331735765280915854548466716704918613444118958257133185584002921675188586827805178331090156598581996793265678357955927457454898746347937030778891608822481805361852662451158208646391815427656434142604461563406316720995044622243365256777959363449150178719472320955152080505498735203931492399485831348603330706554706904692279836924006723549410392197100059845354095240539749463727002930057802898463637040112775018575268867414362340978109568130806092247435012226098727557026352306733713238231856581195654236146152445681530867344339163288458855738369740917455722347526635998529378643108400174028677852975092374303821147276690421752634299844090270690339676891249083330006815260181498503088275447596177670527990406557392383728834053783186085077687641109776901047612592539365179496980527590793111324468579253816495104286690095601412505386958529321861952152292948345482970118004257760572495925984677930272508507533604003294264174181269898667356372593847448222922671500803092426424171081454617071870482550241701537135288166484446769560209495012217716787059918693226912313894676885736556101485125672750216190714897682378061702747732318987585104327927103627027309506562684322032102611741895195492462289988361920644196683826309334618953892045599317929755510782416564317222507114793861569789908022755789397657820777439667707274934009198389398211390015504789431754426535086359100892963866332825119939236710477784902118088539626124868723769081012749937538674009976858634661256044874936166534159198378805610472081579607323794310135592767247716169660922237632744058008599672140692524037566601552232900770347165752272417289387539666453394335723863796987239548752408871045760735560471836931111648732980315505298708303464728232470509904318123687927569217747042871365558730240713384159635158145564501713930231808774728115270138217194402068291776559669960960975629754950740629081265960942067339632529305347211678651658083362973058481172693594193589568897608229399833460332291022154692290809178033014924258410112009073312891543315898671018118833276890975205925550853974335589651682934667381319758485759092321706524418145447259557103270637065196399117879829576723598686991409557561351863315654152805618032611092634361900992046890480307901870370271928954074316722899445059852226152624780688421375605331243527343766833986366730835450541496012457025475913878800563937094309359973451691197296799439923325809540531785112575443565791412739015720347424851346675595360130363333638015727892275774262235831918240218938305149299665638780007463653567701648765396536462869563931276333943199045499769025480829167593291741727889338985362171775072022432438828609551803034613423245190640145391506918977280355585330223700330187545932976501327978563928046909585496379486903821898869218289624454287989965746333786399694262132191061315409422514901579301429176316615451499910691666306319670965632687799432457585068536725845049039855750284532072762077917620846294540619297808518796066655562177577339364325832763390960408994398440884448697123331089156717397927460209103555508023191114820910703534394533775634325189623784069391141636794825496991541996787392128288027150159071716143626129099523179113666934982077544736392825553538665207938065027073131043863412686514946265825850441445675966684767751711699001214018930459804158795584354381801132965172955392587768200752738949397407170103819877623099764532384991805611462533680138595730340432277944609459277512536039159130206081651855382013630189475078350620383339470353009451305481902975265091333220949085905835575779210474834798057993563854604406360851100392279771705163788730087872241370238651396229611209291935690647944117884942355923369704873562638583715070409012248232269414699274002196263248061994837209496112252883229130895563850477651122628328007779382575134076832034248966879561268826598733913078164222682545469213949157712695493150076473685934503020559329874945789051012030167668650745831565330487654020195141542598811338252847196127842616086113787914537779038162478685010970802103375355873396446054880412211398728377360916936440853980109471518797616819898791963979903914302693778293813203591543888272484833433552862728809653596957701880843898403853024297766546056978664601681842899974322380008335264022425005955847927372117129729809032686369621259159368594631058562120081125760299822893909543821746265152122834695201680585104229273627872013958682066272865377707946318760125694399451370138451237934802074725227653982731679936563220134645860000979711380271918602912930997123697711724511386217960248914051188687977601068065639814755924030946887895804717373439465639129488107404590487055709061838733644351681996911950356271915416724697371413213163453613934333044066020691176409827096749915585000826928795920879401019511200539140180806563851222659306038680256535082733765082728340948996898431706843224948964087168820998593278559799899274028786368124838436236995912320436955386290396040299360617252900738533554453123674037992532414156112063193597568815937489483756630447805912800218071463940463089413762180113030854414461742692312558871852488876246979201319749227192397586620108288395547906610490578907558208354305086129050684022559559171054019751072698528742280726394001467027546793746833796990722179770879124261888777924851494811147683654041434190529581517673987355072728653718123678569448972220751889527319474898777900302831992952642364480508150997234843337837141839792344035291050945865524745413792855084348516617046572470739648206990459469932454001136116147035237287553320624953350721779046956371254940061480649712543886928313555514463640492550967896988783981530633281484840990921911598861498095334170877984536244523529117145913548999293787011395097363779028985525391712867416183069620464165220197090815856386665990145223771716418435663507469110069115175540463966567109122968650131254027423872142999820893927594530691735034987900893397601866758621746978184524317723634029367864952650552664593049525825306973845517681622964557661060168251206922604437009501612585272878627225041088989034127950595786446511708629022412731821403128187925747489292249280068748695590827663497197267602787313193997684857461686727179032261258495397471084947277605251890249407781191318199842111503423249516951317974688427225403045317994484584686452169199872592281536712702899922195693663525562663169591796108243340655617585566019228699385817928159771041416427652922962914789863346705935809369868737133688151708428465619883929354391822412400647449393974809698971080406394926394929482646394433358205234867258832279520624719114327414426212104247707992450065666971644533884343236963917508643000002238672071676590269166742558856141533653833632563009977184776104982991127158093470375535133110806651248487261775063045469788222884719759166188707238635559011826880808851205092905035102514857926752591322029769246218414695966352395899787859409430856887173822852375179615751226639227113854326247505675920866103813944374726586165412563851224851187086863234675209240898065697617212490099309252155285939667995726478844805089424709166489221018328816775121699618935354335319778943070118376268438528467651686273218828325343721116409345276750917485791599855038769697726874741475426524642699477381176506956468327893971347188514518438185138583886562533342679857214897629840117791274660408467208756367652501012331259689638502448274687565499096534152731660009458671998034231038118751252395052705367487920454627815287683649532483138199097346794866066163674536038076777408575207099525613540668265920699641092674225607757977120908259830542551891680526826503413274398286320632241246804196566672218413101472630501887687488763445559538547200976485463982364068408917027957948983799914128550180390774971887647246618452306187804026970798022580382324345070777104464399178394804488598331436315088488688907255002644178461326823128959250843998753729812167218841014275977555741332401997419799443717944527385992073425022983610264153347274682527988913421823455806831910832433688777170664094194192102614541677901672981283584792490119189986335479066276566012055286316531560447846928653041728187566503010879315587840536541293615607247376798564418831324037911140293985956868807025620376806299483608514918064384175986502675253177900258265676614510512246982250347585304827507590309543878247929647032565458317731656300091394956971183559948273816177039452918751447298479204292889911520166049238310101003123357459971772990796255920108480867861835633881940221781011941747863136240266323360092333912161408967052196485688678592692207551328167462971286492317245003808649272021737972476155613252555650637227836158036343699854448333862052637841257161665973722276665605416860608166591666657051531205738006738154877929833500540672657361967324329686565266047609134642278923382202907408276193794679083094827550967079528521858347370496005421827679899923142378743917913991109823156500761275528842952579441088163463720552885025152626481704486321202024672773997080765003118093438267668922015883713242831596030846801447485599565950314733114048459023080496868754228438895936909956775770212229618112828161572359545234653644619150095363441896381775711377424348442855258464379543697194648081277966314291488567233330038706709117654433519385583978584771139793037090522354444787093812740773741809079380098163460993550809723026825478475330229398596860630087788546751893813540690051124144887176832348858860248966057100317967647597677118321019991429562661803354177976835812421996748379872771613018220918802860510183290860562415097553241510225762904506578523506440616989003868817746398366937720745668810746383147444567195608296914827941117421987136753993616288671579997408114833464949666873504025335516252634609445831259277174703298445346250163593475774409502598516850999901100507748701691887832517436925919178477060675321406303457773464362585137764893665318264973173206834005941131321320558634488265712077007106504707192644782713399627152307126161661449840436421832763451492378935829427547052280012501571840647123702739348949675688780819022962918615756688639046369622822674081370727548014001648193621638593842787080043239588504587920966906274290357457938706361640436026330067509337008137167440505083501119173499859693673325318710697142789927930072835979457425075591043066926939334724571201654627170327253658038258093331091379078958543762573419128579378608651619025815493336233267486611285477256593259869825915010102848147232054434999173001776861350858432436762279480656917914657079206279967856853690216108746252891297541390495611167888472636308007201812449239588469324842205508144041195407409744971051179501405883231217957616996084324652741467801902017305460506333199314503134577562485018766908413422837260366418795943595184822985434877819867199492100469907218299526367484895376834410776101305915246703841058511062704148449563498879741464603133547290697338432011063748000229548692798776117730703930306250509074466639386606287202123932852769153629347315894722060885127633325506451580466647452942103260205075746399920760560257107409105792735351454353059027244867451394568717682294737234706706343485984376069684989045867926935220637093448555346590725286806417100523388184102250995611394321116440143625284722876673000066643039539318982850510372113992531547802123118038707912964660609816695326021752608188665352463066361154305960777037844199427481754917112511352195672896921448030402693008361712024670832639979167631230566975427506793854082309635840302960189367651618406131881756704332464909998816823473247577359216485684974086511517243457837941467164595832637449124444642250588261155263105403722918184617548191915723167929904980767925866086140326597416201906720589975273177963614643370172777689486717947219187076648319890246004062539993752497387431191265517663066388491567430064349735692872099504333283826991613060187988394060500148644749237180066351206243436174563329292024084879631755497574812638494154972541328968450318152610553089076081052287791432783336955363967119671912078495766604691664506450149879383370063209438830238288273808031318838666890733838136351857992623659383679178663011501664690086433340459863061449839642337250399325844141388894306308519792863503546709126081946029414755562791219794325484204609549969074053378581262511452539524249463207877563995949859107459087655679296703063107413650032209605543948033798480155951648549701386131095770091457100085447784993727286640073252195100079284579976423609040183245196104189248864311728935613999500044532660680944426437815038367901684462248808189492370712017826807848819398712995399883605596716463849335367734920475333643172835086043912123318255386780332441049281520879482687849880174290996897955466006596596960693110174330715754508634862017382489930952620941606692076252528192396528266506780477862894606417909972996485762006300101567494605092144511063699832578819573671793565511609931899315811517347562349519529690106753214773264717262956419235038325414390242396172961776784250857134233716476608051016282878746435599401809038220227647945956724088734681337948747316481709294044243341528510425529084315171053754677867492676217631633124465865715531279650484683484642803690374412129351401665636320378067050779899748774030343854062930195426765843995624164440051864420230720335125107437274624114949812389666364966001329714690815498249401110381014984408691465010238354515733947390633215670772971898078932366967333256514118112720893873762540562010722484030838137414652971097400274115943622584836470908452722498145563665848603724391134985277476936099788475449640527885399994944023483898931366223749793438236348452057773393610729272388806174789976602038675514815352078574514617573958064050886252635989672390590879568225238854971154327294289593228311035431783977676934120129662004058176948935832408553480590668298775817580304129759995834436907946323536109602678823918627956495168633669787757556121897434911772058938503217073208852561199500341429747940702780220747300552951267528966139714404017114791297228472679283446675533524115126619101431610821294554443383963896020049771800544337148817229057396705203802319830037389750602879012520583199033212260856777483264361469680586713177407685654868850683884942170713779348939580843775638370396293674395547094391783532916292078759707434796911056584650196399840593158656191006014236079253920244480660195045554719964012037026837398520262704517396010171090236039107794557132915831274303540234362632550118847153958876942417079500720908224853217459993062935203503500669479737672239561818882853651827948314508365301236015609361166504508240067410518739330611577916661779231991803221849874854913624860368307219871771342808505349890350955411708977615812600886666593228565789071741663782715775809536697249896915154787578974751272127131471408627894195069876966197068452151744932542896440786674539059268175385209314725410722970171472898101932649763956782438626302637734981730723544053492948719569419133028339818008882899789126331867522133550629802225267873331977997210339386855430053993355773723438496745558796588891013357093963905871148858147052940490530708325810447328628922732635591741773436948435571978958467430696908422073348914629709386872492669472786558831951501395993567019042740534190864863826745851588419140238716384142751129983901770536985436892256464642727813718229405438559379263533635976780215526105539178374018404758213620598361115053077947508629711764369303584027841038964533173587468995292771250325504208386748752803589698110107815052569298582051768051222861920241711901406820305139254562507458387366772319656802158521791821154043691021607758026697054513987794553894509629030174619573551641223159996823769726970219155315721375290620441698839422307125346862059541895571391741009744692420363370260602869382311356379735326355486458661749016641655020186126183680361846394397452590421924985533926085279167052105460086039648188245478284886813984022145296163418246314458781238699122300773231130166777091434808012216947453749411708220300880480697841931108086739678367874393051298602354919854418908025483584436425137433259704844567805347083559989958203240762346740463009448670949526801894344786431248558908364566313371397972259645699944903432815537972133411112259078369592383026516226144174161215157868373111544229266795115784926917124318619067209994008887366036603891186441991180064833594679234039278772448999690852725610502254364543770754904028585002183453425654691453698755591177431903663211692730341610692610122229009985756313502936655764932810534256817146272905322841471001845315362325648015723965939760727485709156552946860113543274838267324048385756017321429151259897260002409101515991573907444073010877048999308683855905313886596478867572205328096015453753358877799750940244444475372199726564730919847951087084766136553931676761668714436902915408681134947429094800384910346843170558692311479819128114517655093223363609056545853594953518977330325602152544875442326471338274010338016402086071377988148506102060230134312968740771134144322429730817315238516650102897708262520242021259602373485553718423346036775395292873537443173320728490546506485254932401386995975582047529160147344821864460989435171838953965418296990508163460178176152301576272452648024977176649825571469952643642258992117176422778091839816479728297261585277142643217260906583773069985479131206149777402902290792545090236427495545665366757080297706815747901300896028613698431495962279850911782954090478704269698971639545028659217207070288265026240963775065893470141147294619649262663849946977737098049218412207802129329497608226668185459588076859319516128987106990931141009269643731004506739006642453438641081089211355673136753735503857860356040698500376497435661925271375079675778167744343766758314560502518591279117818171547415114034028193170737041175579093940923806786449629056977687812358093709972433818783677239410585263057392916549828853460579902580986534186185763254539897106126712322999568474297157532983888629414836328373386733757235759455437187573367285104088209369294737248260458984428338040237120610035782178190859470436813278541396126653822766193400176408152037778877076154803625913549926720452331434206628627637421334753753355317451595742481914078504047761943532729784339128203171552741567550642279595436670326514523864843719383341425870659573265296341970403679217444239769128552156165185171553361824501036409310662369090457472982546402037462048533710492935028969098716514631774715213266555615725095560056292275241378023297716655188131572493404021012307758814608109017755726525075744535417910818359613030012804256036566322501266401067836052190370219454820086142491219289493092221972919631949965005827009803591372439586021676183043668192544613516486272038794977771085713554653249676745221592079738123923239994254068197861695553114011620301196992332701488225570357045990777991692249311103782877004840318373721772877338607407178313450861337048784769130707808002013081771683411486711728369523520786575869589036895603014083537077778161067422232998576853535244529263991207273331378812660285855960063252289663870438106996546503606919474223267195666714680421058907795323403556871121696482302829709148264127597600147003031382917347123348525000265371884546755084222524284227722957162857538432189508299513899905726206030595409006764173957455563158980330896884593160053017450845875890996975182815120247110008951155790900198471141271141103151574757174504228795268028645976753119787255892756421202395821468934361772864178972736787618454190708189432106192386570024212925703260553166282915113907570192705189207017423779055330529229474584067860368538551718538505906512655946699535934170273561004861766869637469500212650829045628549860210669869544369342013765132154345236501511571730460113477817013138515951998895172013276949938338360551436295199319704010699873850896226279089645493468518173150729382689425271357427263195221655330726088357320650764056659657793207896002943478445113980504352934519006540266473366723156913484282425809375789499361523048611993845806381588153848712628877675645517953626997047675672243431239795835989653504150192680918069673983974122506083584344527334346469585880765405271843092566265101316019794052045208392906239801975955747479856791495895661214517814836018102504495807238423312825619925239650577226233693514595139896527757655860631206124228942913289198457261175904915257227678798643501780200303940273962632709087919142906445219351248787654187738157715225535321650944432362339740148736600235031192158394580553210611844742778631824742231346180756270022431637327148358351694567291870313631272045904865258337897586901400881961267412931111270323273759607029891313145971626406509717095301484259415099933575160052867044563825441804845970227960290579530938142169448730600546537417924136112891885870365117345038904675470805067657000278475407355458813298976670905550126103799891263801798981420543928890813323065810615303543044982298658156769046475389735020998611356317967719269287745444517114965822289232932833176525207798338334035027468601247389561393460631033268791289171440039075898043375500969331375697220393994252107755585010689146793374409995357668050008120278405138986434411562337885750884536219865662734591725829694161154467257389368970580510525726905804598621983729277297082651091587423166882714835933420067995709941493686110054422682189618311619518855249022577731218348370001945910345108179442555872175471826477803625282916378401766388681021865125378446219222569234087644491151389153010890650347527081325974987324903748848360282309634564466832703451399202316892565699549377985968664110086090384965507731985317925689707851711758940992981911712068131459713920533471195624560941134920211490209914101151562663243064554638711618999414750140875469545060420541737701359368363026419416037759305427638354125846430029924614631217628728121743729321420574481572842107449947459205037899926287668872797160708980841028117318464668452824722088089293842672843453053484508652503106049796552704178913804435878574989639781454363690383419694272705408223815499558420708031497779314787726021167018575589398434641733494745236240594280848616390634507786249355725708256330535141148331623460441727598444789575430561061785163862218809615970593676932701807223533722851748597850046846581425454980695129246071263804174356916726824350266316041404284486503164288655487232656776466198375919891459678960988921808292925951912928187728139035606034904204467607169031613093948031594917445712767972909218459798314155438313861173545306789797323009034548674193124994985504621795705864177774777504961397165134217223354157076121123152495577227187443866737125751129537454094803697194287030606464697149271108731339099219467575604663307795883647171532564694032999686307495051033464429628438248757437449169012691094542768519627524177811466502532463798793155815067150115911584663743867275665328212417573937097467268599259407875122844482927742726386558528073132803344358542120425334440957896299381856744931815078963797381060084901349872391911078722538764713082770404121634333816285446461223996477422797310442046273318184026395330440462774162905542397765794341297904221256697315187846108858377917507021339191720022458674566328750652288728949197287562849110669218999005935409842085772132995354489545368152436405564021736366943566237071398664779739521796836857944436073381419359240143327923437452599667888871532117097966427869434112388448773102921853790865759547732086561465163634282482946305207167499172953412134050572840816464852021594272895583558430555414736569513762977440611431756334683011985888710179108899344023872331017188905955561016100140271603328564166528040095199366935817046412323706548387377311152956064623558004893052016740503772762326590830435642677814699291310055745314921924632658056431889439400337709280595359984636710985104780382131811109113248901780644954163416710793753107387653501032636135982008389097588477423486579393079939255149742738007350977571455994858979109969406464988783457436748827929014602672561605228470121115891900754418726880889528906531059297415744059488056421750254652881392855386426204516090735334437000313001971016812587251135776578744926635056579979461122523387565783481933147077216640073730590195825695586819714383766060815524315792695652686556967802416092693585151978287259648273393448956823727529940569097736554589519603682141699393983651352755558590098661823640433467438343567661652218361331772993784350483917784133420577429424616940932888191557511964738159151089450285368344175342170453752647659892220668740023067961445981636159132456884908247424257350921439222951167477545103831020263963695610997038372674596263612155472813042194764085880676695447024271319387512550702678248329560364999712683333323723590723978348425792867958407797340720300011234796704631163761263768227102406505028368594312535708824914836148369698501778650082246714217709569800505411274131276176562912701428602697746325011737175091513696182251705998976335499429398219522483131066756399022281706934903007631850626655122843121756576096450360904598863518166256086359795738591372511110549979977708726330756177692732069536694792278411268668685474025780419630446956713818193249444956382185879033760761129970031198010611162364904815772950967376844172146361660072389371787585104514426705589295112023643714056065037461949418548165887932954708025131298671610966302421909604498951386204582315618010276601465479641727443624553609178871700639674169973955165871445160243840825306387443908668061433114344471490178886628084154021372135471879397432788544647986590263830978534535864390171045411525358299930528302363268360266658715050133915157574966917079324677702041184911882237533580548401551662950458112088328156373729054803712416986278665450861805833671169651880083558961148275220305253578144717553329212300765235778926936966723446272278125761324719764881578058308135166917506773165054994177159618993943417566500485353680684796414103774354378344369173832872567448629864180936044216086196292906360146677350813862770238175448055892329893756306553982486397589086726072144185208191333029196669105196263329026011260588437836490802538142050604412152691573027303770841651377909420714424327531157723053220497953236858350835398375953501802253876551818930191416238345242693180454056479117486203528854840194114476868216656726864819363491421107585556030186717055089673647406700390965523288676218104253990577626401469906217375953107513701287642597836834682767374143945710554701269112103093725484843109083860521536659909238066521995942281242801909962332505226363021205751184108791151700481745812725814593318544440442826925263802441856945958346243498104845459427595027137944589179753957053595303198355152401669673292060724409019794853312767997975623096270213470626506435755091653794415301711479569477656875483249879579693910551447488492241843154268662997111732079554818249205858811036778859468088248178981101369482005565938560963283029494107319460586166695464443195201025287246792967654050494483377099350155527272582819766455411613085640119957786107867132379969618445214446526309077094605880707779443376978084044725426450882797312805796844658396717346030209742159869878213235556041163141726554404223033114658663711925206082307715537031266742517358291493607210117214308026377325848502453421068910932649299365872087017309904383519559705966121382586802555158220921577096150722451225974758341285240891007740059380002605121891126092428129012266653974176271352286894242447600529836534317508133715842544114133339901800848737569030214084028843757981777051417900413553990880168342134987716700932965084195488930902554619333925229433848924484439441808475227917729456417269920724503065390370039788603656272658108214634110053447389981721274896761848120618144191686814460203748568624582501179246114785483789694308260654513799023128882720447210303393470385848943909622499663247949880892377613589250988039661955898697275359138598463407169607712660421208592414155913268177489855175771151255471944379390887859988889574221400287886763516224813769297405369403822859263520948715388835364839003656783138598096865928084927102843524104928561252096336099797190922557368461870017685439030666447461577151254759831838749544435472847451393292706769802027477098669149005284547762128157896897549596424480313151149463709858246532167778060155711069937940187468723798596386082601853923200628254977026618507515029451731145665936422709617137466489874500052885093227029231123904823061444820196021398323488530173034454234677203191779780231062196671902309094555640783431744971816581038955536535040489663198012574213809311112819724028098518514251251563135310589788709663777595255678740309512218350922214283864806111272388092671810407435152427763637888494033756810395629518779977723450099817872111879955897622126080272428230269655432719840677535471372798203649870016456156516715334314977865038882950286932742958016918883139374724836744749835523970483439340593080216164098986175934529460383537164711369756921934080322198240069660484330849637796815095950918686323879814959989515108204593618394981277477950065978858819778873503785548899977922888948345802350464687807166855524015632682651944008929425125651574991229547658722497253834577486000111702830259853719245823659333254774625755329556797150192738768635394283862170347693402835163772833356250262771186016144805092169110556333011263372012561090491515070667175996857996204375825241554130525210163561031265715636365179272840089678940256870419827544643030563122232766044687842656650421136899774713349850109616388645357037199485427420162161615753300918777646059956464390839352598609210425644604011226238631493586116553883801268128794220982387713762278052394067315610526384955798132188695934767376314684042230469777054122470054743225987745388995641032166817487040634287601061902453063957035049661465871701819499410534875745597891610679526154833041059273947821765024936922238334420574724541591621867841830671190628018919601453547796552559726523322521624221355671259221571302161034100451895444935962157205728870306825916729971534243445167491576035815480576908414332349752854836004720229094580008731338106211523089186178192078525788003313899405169969199170905951687816482633130031507818185186819304376202108836651046624647234794875546728724785433709402084806159069032873161490562218839060744234449073466024999734805199435834423683192724012440886191617282468941294983325667436029703811181965790450649333394890755672255641089056004880633038651118158259179058144861711309787326834526440153800666906763023011143645377397079847978686892989293650535096433627964450589996188866696050238920143481157446902938242262978772424897968111202130619654027810018118291347848458526078603906884475946486888455871660512628572724788155431203254511453954025173063434190436085142836112439352514173901241094380067942402076459321428179757089999189201289281822485754959114037479880851313014977948361025840788088760509372019994187801289189740935608771298525154732951701522179925158349301542682514575500429051866549287186525098249629018813030291745566314364082383129860673140164064746959892284393303941261741488643332121310624060430570395655167087934287793765741779039839738399529709092730623949052720109000187074721241167490031216439062234820203802594292310540672209411251921896542603940468193063148996568531249390720544806635033070766641966917687167120621114942614044638825829733152861320175793092304616573471061477471440430030310648711767359020302439423252882956137162600489486163587563783658227843713207891112270778127966749526474269599700410700516291390391172882965229622514038341175484822291943159951531889270960628273171337727095848367501194949908652767380546918364950316911672036127395973646860389874187829137739989204274819833283600009078075799601923511074030151672171420765025867864577163797642013555375004939775872172117927229724411459631138427840501586384471926683026482174961830487842369144744059572355334013141257974462563714065645690998833122618415655824698389564829954562144639817401149094234116314972657737585210817534475852135091125786576104973750044543302303688819811116991370257881284863755473079917774162714569871258342251074544550979077203114345470784018858615005170505178911666441025859457207265578963365085216914095165996705770241952334948945644370558197829987230674384905973669349753939116004821183279537663399519580799219300139130578441062802365625896131459944959631602025192053619442602427414412523760487105288086502532281742264889118147225169715880051956066307293867865894730243818049776164093313650848020969655284224859450808924586458345712708203592559361566633258103754333577298719702523148010542916762390218322742561337866412922154149185983374551593596134829867648447995202633113102555375783742998306225963603928791677686125555105161109644370435362966775469439196203165679153927770209564359133667652922190688601768346118611424336081067504165521034745248209854049314564099241179939125240673518595172987744891723422304276241729458874459030487005343072068515586601356969968275588155572581070392509156432878417974437273621437155482004328768247792951075472145689985918956697935948994621017261621536152790274578996730592566031314386247781657876779110396347725607272880142518739890685832630866408782121783613129085652455499125641491329858594050091574882480022425133025339128695861143156533095165391307772110375303142163744859486439641586306811642614394846053728106878698890445432171480303508895781957941058823647420674183018281169466572558887312781449246359110355390171598071099764710567277102056695321377997376120254076937633127934107737097469658814282808642211921384375710525435079174114285680503046672263153472389745434488017321930337838258655860896548715157521630850690986224958906146469233395160776248591287478153214491817348832271473997342864592322284185149618188405236075208510868992142595593336135242417657562908770095636558723707159195671515793546750055702925344054295596695473291683598013971353870155928433938013162743145069976655411714137966811979041295006825955471739378646129269401476636360302119612316416454745399784739128991868081097129942932553940412406603122150495622340208476400833914904521176418341987175933834515783385445304827578713094323732778424043329837525590033476744815113003350318973359850290585377365381174634439179399396914759375137967843360320868138966972901569620764731103476066827607030771286857500619696037543740454934204942864716396107923295356048796912801292652913542872275813571901476144774148413635788513990014553239134317923508585402840904157068011079147867921849242160817364071942051559045127102488428232707829372181751742944795575684126745246531397654874327576316864727951895937155268246326810697161757995263744870374364425531180505689090698246029431553583707965702931083607650555711233492534133326360888692148827932578672952569161228005337206391012388132555830884751360473138192591459038868659456556663025034262310051161116342774573485617595725214312561116849118751081477680585407105819958985219380148404239799873910282520991278731535925225830153153134359165621946871762279998873745917471525488774592210358003260336904924146607223131269345787938914332206048728238393492950680105036733007521290721688308136288067044191333169870582847033188444052650705887719283472234323903192384785302634240579315426227705848437193262157957370225047431862566203372701571193392353401513686302935335480057503788501585279936222939205060553830113957049298041029650055495291610972709345025159608648979283505478564073890408781686965156045966978109655575397512378670087882770933332222175931818976876127639519489519245049945620350789558152006353514375684606095321340091799867790631053090823085075603717001658068213623489986702669022218004594988716453124917753336300433039903027432536767986716652494248125700428290455164964653507624351379332251786638034220725606194189134150327012228445325963331573686786951532764510346934034721895517353852191527980003914526468906570990271511925391523722706800645989404045892763144166137090800796928018163134790827917840453168904562145580261945070062344628548444915913731370725429967215218067118233201514141606448824990896075515900550399194303247895753322119117873666766567297619064477381130274094402300206113872706299316783814571468659442136999127435972907173115785164317029076799451858820399616665891171790044599363554516377228350750198885438883173514712741795488742405673798820085408540231433958399201076955401504558911614999904875726111202050028960500088054333283924790557018962706868843534994027661517654318171143114805289256413087951143327579509327049280099945471933813825679075946247566307640155951912660479963107400176233057885826521712376334322336812086807423821180964913216949613232778989585641697065176959814513834526177453108947705329053767673072146506470637052922626047402851945105755163951199301368223059379955398053301910638982852504530743641549110702088551382169785643219867580869708252488941501821004038368146258326020714247974972045934284419319233650224177387317403925721521780790096949293565373118903295592399320644551310791299225944937917615323209109215778001969614548817210040751823803297171318050320060605936840506983918427371296625429178815906670347736723502931962416419418085071293039171534927726898915461353057945071298333624282583450359111474929289980645825719367302589280588086472986339026332970136197727907799122934472170697955168401388332117122330547442841749729538753264641840449746229688200618199331887685453908805889279032352523742502681765071046041961396670780191727577971217389537363768159965011296052060079136034906985066922224504332207905645537678639356236223300504045813559039106304427074261404088640115006911167826348453856704059489107855113042922191375347157871852847808399537631260964573175576195634735382776683134111870876308328397537777875426395868150441689689450286294157991382932046183715666088312160313312354849307708186993603884452220708277156804189569470930276749094266909450479252753303066313920719047720177252831343710007634296297788946640116269581280730558822963733679287759929151208671462266966894331022984673720092157564796472609658350883676798793824618168423494035164077233378944825336227976551053261661353939783241941340215680481675394196198216823492828110559164805022600774908148508076667006325407559270403730999250691289538358259192456282490126175416030883515283544573138512152205023437855556700228594153365032259364877490827712713892870645027999412029120277790716141627575091162389567720218749583153797063908671295511038719324676444738415554527968589881736118107731663834651336106256607562910440755273492733604568665944248716366428846820319338659592362961271611113833318237032355687713351826613264521777454126344481440082036502236398491760647815355496939556233445610925133500741211632472400902319365430499397490788035658559554732765704459926357544623292106946112738538735563533882910042872008534044770982408103342946992485417575107083241358488177004780155189205078939155266135136382058821630337214022175355665522626561118881209858340455593713630731515448021053462787910406203375497617739237142239576879199907391470895227082563254122338563845347727649687796429787694175510799115101818195976615223476458401111994366477414078297190530508087950872216953433649697619277956048707962004543363970956924921999951280896337149475516980691872350772140465043931620350006359289769540652040249057459326094604285768120950575098065591462732338159310874662836764959202033510838101109980665931580661519250467228441853718897606332023762938485436050426408204227704747168820824073208867990694995253044704261173902751825416052417359275646002345804589489309116119651112395482082520812552179885596843754201202803086836985036129586942360771322085059893039045103899484046279113294612016271318548067503805835531315933983175962221850147789560012211544614269285011214987891655360191045174284552402754878945859903804465991432067994050100203842680989078866654766591654793160866693730635452408876305119913735194620535046234245293385465346987337630020266352667087956204082138765316618343543646886125424791620088116177063139348944918793573141174954465374632237274878959363594996221608238199558760978639254613616147212064371188935377732600047324665839119484086424775234141606427024910877897239065685220152153351573779721061305563269930663885360432882571066583480091884379492219616545768639133717711557127467871713007138447979001433403595949136908821190130275641476730374039979403913317428289222004762205995116472240821285930491713117437595151739858933256689496722578788635849344032449469800714734691972461119990316711804983779147666525954052836404289515224071929730780969463976206332061383622701531396333397215084756264573204426381245539622684971697667194550533192851065832953399800247760954135032366690828620967337664819974704033643658398692583155714761402580832166737690195450058590504060142155583069220484153224112855053155069987224518756418670219052577641655757055514540894229287598189159580882674703858009308463257964901065196109470473541532836337719479618192295109899563382715522167868750717538338070353616819947792229748887301105095318057622988440741274772958976118538807038232696072479101339459309219473526695137220313089533496433296313214834372009266829493155023101252857007672272291914295393742443362698035462962639291344285794371496410349413888123863895385465169481703678920691379052684230729138708275633166717091604559660707775745789998321677123771061102551519781997992693474067560998418864605001750329763924373890622987242046209489805507215333163575044971737819247472456983475615573958682132457449273362372274163692295932671254055220172984833309748822960475988799099713997071703929511795390027025256323155681093858832577955918085352348218778702320952051430040406430534960062394254163383480343031740298985416056264066561106212205512082098474747216680811139641467563387310287150592367563384479904002547388496304560219874470104335679428150865230330980013001573143366273078828763009777851726142979862720010513803618700925315906687560471294534422731791750054425865428454760027400384997948951904277232476712464214110367722044090873948600849513760651168001290171670291907421514617597273221301109456894545172646425774883345053584603938393986570084983517850051380182440183425295498363919044603341219089589636685596858995466225678266119261777850456915574991398350188500717585986020001066398890942860526859009665178150760319140533754714718443093754700685515745489532280278343649232720129766748574990110083288903819335029310192300189120487008241640379015382031478341521416452785481934192852766980201038450444547816127554228070378223454587922518980918473203715648532760112668191254825867391239245198080730653700966908046530742502022939925632115815473515518999103340533000997622450394098221445801461618711266431997193819363696155289447289985779878028985861220305342793071568353646001455333317027887128710253746380204677799849833336371881035853203285531312698340772026586764389406471420095110041516113342035332753902429602650619752981367751594320966548412278015227378093252237510380172742855322667169520457904762710181086536516233325279480003002230077520833555317141832636285280159348123262553551969586162513810859505699920779716820010390560258553909055512241038434986390298800758470901003769966095000514661175088737343020044822495272765720897228035239563301851952016925378738118704720704192237219161277401241754666513919423873706788491856467042122951744124442030534266064936851539739626697339518677473412076149235337456399078625196571187975276391756110160334496135972760981639795923995063249520438114562171939116053419478781846660599260083168443233629390984342618024865392242335050430960465213891940744083139768928087338518055847713954057913587885106080930294752597023273427272051073905624957826482619225985306389753025514411257782101257772227582584651111514003369151032086051407481916916713766265579436887481993201717881685924690609842005574777279831103020269261354258921651211249550310776732489803001242609882822473580725841621596080310765548946587370152114949444538223303128661956543581518667040200323448483373343830962185063472931051459234260734335320644612767306475193943139964732533685740327597819056205140935442579979991973015145098318092332007717151080038445585157902766123065028262686306327333586273477325285055079303686553368731199146514370309346938521012530868417079326446326230030778955794175232412172485053579518392888267016779169807008562216612626363900345163913867358243915960372368013115397023532425978608540163559299010451608452978892864863469834052272436675240200123898101159984548551277473130671840013317618107884420447790388575265878547893858505608761907330918689199637441928586185654894412252871081782752961199067502709563602555604800781792889041948038094457463346472083398064392057173091259029164457664900802052274721278787190206328032067849406853634037030498347346928693317357111158044978436385481576261464729484311644543034709474634219949672430739695082095495302570602829987485508136317956699940566617427373568129678475330326000897110140792239271054594549925723593947770954748570202850304967684742430861505111281488431092455376743394541343041944996170090699258635306910274639753448318584803811310163399937186181712776139409799863257958878962269132039269255974431093550653226568428759332354636651335667853599987726670961708047388773413630599686345212504482316177969486018353110147093487656507372352695910875682558542058402662707418226407976961545053631867611391585758025534531133029659532650049535144974772655120905205026106846817860684757300681178485246538167979383971411233202976358844175327657145362512918971454191218172832692165796189319389398903164950644858329833090683727405972228839471124561637024262871773720262471407591246673975437732984718483628220377791727244652220472542376510738076233700395081057701959623186289071664964347928433090420646812525804018215268938088059953815442848278672175509892389163511878223783889942827830182110685613570374731538389417745749815488202203904644603874570960214224952528265549408361255961002643189094298266415656682337709543229414261394264783213057363243663854631531933080463431924826093747503678293846113383434312618072053291564090453461544658173644734003394404532391892610598291213998486304745611749960287700016317023770108825435302238064767736895317312611447079953361102340780920514546229223772328073088065303250266152569833262499498456631583112510177703653212378891271334311005516903947941639857619627046508437697164575263900648482762500963055875938204035650882450065024506512427108038629934785330854093708148580776268262878733882438575137914293917760719154382062886379596154468539553826518472638053983616997640011319952527122621181488177209806850345055914785688718463097812163283523655313223260723426307559963893677273948180217135951635811037340112149130887808187179398703759200015435857767077913337850187248342790237030467088087012120220448067837864970788082571650286145337410441674836513771190719563931281175507115382372472775912667158282386958086329684344985115676505304830141595676734087108319830273344559750239587921001851511443801322544807947383914414973867242095471903063748925411208833346662520328603083870269610969280222682781055655395837330643089505562943416684277158099159909272974055283616916503245911426869623620854944299741440122306300638072326653272546988459390062484578872640259799146439976906675687844437111715355374263344221765188688973348274787397294761269413877487228828367208991884862208634638480017503944421050777935311850083107256148451340309665733961991129516868717300466224375167292067461271859343624261031296942292390191841930203391334350332646022194249392969962744351732611397267445144493825528491939785346527169497714483611424955467258033317289851400141576115588135425864248115566907923049517386908053285701370939147671201391242304078981842884432630593779118040323203509728116301278678549715325999488491175292772003570926549849055912490469612106398627070751079310080209278122190558510057675813365131457870407600414406592454096870638699617224804240055182332545012657152505432259342492112529277983962496032924130418754957612336086460191371414248161849237362487769011155587573439047967326448177127869143111225516947275509379495929881279880492440725489565651542163143890271843892962359848379631836232894566991455672121422689251303345095869752723317417780326871202960654946076268277715731107146830328719088864755925347707896915044465322942926831695909696306840898417134056211807303227978228520799266582795171086990751918608232368900138541813560950876980636360542798235818255438385005640814942034238626239751718499949947688764220375851052165612479725423952530003302114171257100882044790663490964841700020515436110825385946280465339036306310291006988138620616475196699478348516921975136947502509356830909355854393063524465485044347972781030875208212537179980990660834378123853660122592686449210491175944061495800139791955592720916061656389145088639805963221538420348653710792157436705482492423650064392548408991892510441869581044973285102159949033601756171077975979656304053674547480812957525401246567612552094543566311561734940392995725423844434428849586722461291909311638202201329409484887232560561962946561950080703618996599588667521106515302892092821166888749133230155776673892723581010812232816555873860558880605059478167778072497645055952103268942819813285997159411958463671498102361378950689444380234811028790809628553056001336708620688086099564650443478616662063064821072217544627893902094122798561751747163338510920068675889909146651952224123761317678946980465807187949568237258209736988927831538634132993162392203365058880480648118035244484249345565997528495787007889867471443431451369451309882304065969199336324122519560706291032912684962557602119424654583131738108190360706744723075118804564491362550436056218573132004232391576730478579812168877404749607681407421890688200295357636590059543261248917594054547771330632725492529461019135200974280314871064320495083833397873429350168583608993784957739999449938648310881931765033078870421026304428196659545538926971478666389666378381763172496437520073872326442480305396239013110684777804301168839006206093699686153270310412275542850360398561444372592150446107976713601818835663076401934080047078240516671594607178792260108672737413289759886666065022339135566504733778812477460058627077884237538038231403987594032587808729788669364224652349030525175461256812042412545153203927787447355396206625723164469587098966536721114075364188739975057415350542837895701898339698715254476487124940456869415229257400839623594234418292377719840662318088992855774147271487027409279012572421950319702530243793287867139076142359792003310260881802945706175253046665734187036959816212574864524017378857284947842687241203085308238378879488772367896994738561216170107579418408992580366427500381518422701896141286691879463524818506008734044187547731082700422858262988008812483450009623438502129230248529189762494959500888865211132660598532801471483041684742707634252773703112175392751728005210642667260683044174592776039208816048610917256611538586536888761481680819744146263451082515561451861117937037910047772698248598777299885274483165511177652872856284536259405423310020784652767596523757882952363663752983852664827600540195720394126791027655148831721676104370700660188955420936503540136156449740593994875799631586464923330357535332314711871177519556693195331844896962588119206949946662795428860530846658412374645163315097241496359472371475517465449993256327267971509078013942040506092311577257483570493994996899008272267671066746214210710601538523037412744269553708091895803170148359446415873914347185151301706794469842081320410235083467282226302721196573288480010857652784814088619139199093175531432158086071799025335087943099267436163692311762630783436037239935534494259014046519420422936566507256084720259730693180745290142338415593086252509955353043848788381532519501426982403877915758685185334148437066103030475562698442379479372989401370865838996783267159989109790666191829544301102835996287416324702665277450213380596990435898674025452003251985066821734482193693501590042435133386752353518692967452343528287885076544812848283456877958223497784513507935757468324101558182877878514870850688125239744097325032078773821947655494846186880072721903863954393229936622843774094015708421794643659829423021434409276580782905752026591905134941717879119836255756669718612691061535524195294593726223418405212225458369581062344861317817229987989585483522401039873481447072977746806881287438678297415711519343643237766086563393987131216338205559406060724755527889864866114813914972695861208952594759631852257990034599603288417647105931419571512288170631542599373409005519895001215498564572371951591974005681566826705416288248739766051640054773494706453646596038825969053055110227656730388682536791855842410528084188116120269848331971988497351480177219060496459231324621542144272684652975197254611291878721888554887868501855172792509843735215080735983458190339762497184647145489831643249291928986105321952175805198085186024033095096625021181116537576017735279584413305580889739997805635779581258445964479335932461903001604368051976470364621421185000945651164184138045599857204691617289626085536481539929568846113927989000279681434349104907069911646936425622933541198373184176378968180721480800240124425476030568290362334586151183496359796246519910602253610650552801995354587857385849299260656483822897754585509232840805458597268492607728767812962049662160279633940566288340630565778459353904437586372110052554322477070931176785771889798306577990680792202768846649379242472026053638000229186678455806268110697040234175122832733188857926750871287409421544666579890946001628056950856569966901470235429976630259805345860003810243932987646741829898939620210387783538492621570240468867546419724296543774205275858852671320124305703719739299225892390928455054022598243842795399872126868578874122561991634160662818169781756823402013891999418582476882774868505480594171181735778066719431095264745167951097874269244618843131404773685176541289584871425494412586547795851892939671523033906997775231302520623620196660591598997167554796214539508213249401739346699722888346308123759278753092229443208035838068330463592092649902156975897491290030171498325367714725521234271610788432323306536676338136226869335059632197329771756830798525166130543666704705482250378930554312778313026942572203924279588647541940736682252073045395176545378137511002365825388477716404830961362752811899738617495280260785181725568577083993239905680813466451844209936731715713711036825926262416967361300919986107706237196098214855157063134183860792255365911680062192113463252411695549183162959579260691946287998499136853940335651085559948744063610497436268009765103034978851536268432937095258848168426336113734902372156771968519929901515753931889433431615738330848915318232752878253163884140241076825034774604923796629996089806508338740756453784738770889659668215628279293797373955204670816671798319984427601722118924104007240124696811792031146553212144830815926711147341212392660663834901201359531104993580319269175920256377411550468911325853278630169625590567398798438592819834272707406042270594533076301985109266711300311656395810461071427267454112862153559107164374509281814243455529486694362874425047769248868038330709998814404521597676598183534746957915868489751738564191820182312787026553563747366730974568157639914771863973052476259696071144856990604843921969530618888535338930777862352397649250488327651834201347927820464612056462482140628608342795576206733673892815481761880092854772269565567592099805276551424321493235298849786515786149735962813816453433447187651111832042421892859567002997970703105105212748762871837496179666467274509321426970857896117948002386700294298139213728367479009254478193960658314833358358103273303247621520662683586738702399978234645265988213331663614941130568716393626761610788985934452686363937761960170758421522808755609272878494473267111599028888710791255263232906224395639537582014037591162601006570131935247589078991542322677838013207136342672509516298592395683199968355728426976429801859002495771715170891149450215369696927233567197096452960079169020378926269608482494026325245783670021544173142190207322141264194358274045150879787192189709796167151106523155620931819776796708963080580336228425091680334672109385849773025655302253839682727460472525821731367462586774586763248903020190708917598133079543672276031437670519053730571764126081480464290344632436904721500224210659398763593044898598174240950291597766443001093344007893324110944829531260858139577936464566610830431023348640341011297445875619343995883909874471253139455370772380855341027599990121894908651710512481099466952676662601982510966849369442515040289912745635244127044602590195629340558308016429466001252189510820431863363829275864996057301921484212865637208648161935374471129380688266071191471527654729208950161759409288414263165380911464749382284510393550242863594653458055470501429648698427541001647627441457932045790098729519494353585823061272305862091828002195018278037584138763104622973947837816217527427583853115749005293853263525641862231686257950856317694447889547577946213714114666087394694420104070660308661598676472202112305509098263390850463457426895272919310040304888208399547280457930090813865452902624535217062162437838420545914713296009064465059662404270123661068466846928384911110844151567248635190071458406829744478373232613439005364167443243355694664080845525853408015623244350005220139077014892768497154679096025845255906652550832773468703063453938018277679105772246426715327251605119729285996593522425867086354299018084399544742233559515112148615901659768583318431320873853838547244187138185170410145839840501760738405848974909904465061194402892120038093733710636531574452631174979910164696258991682377439103535238554517401481335800299158065289326672652831483405181046236546877665586148997864521373098605202271865469575096210118939616362508184209397825119045480482980704275915410671860166165453706948658854089447152558846596293190956774092052871771613933116059968281294245315176652216333283619553172340904113318161562631273285894466575077000175198507632938180301463617637629891513015201273809659297921826726780637034182792006278313920695705783727819045147924450746643260283502462068181772876737356662733492469612536415036571530691377346559126767957680523881887305891017788888843699819847202976720818410753834160458176102409740218324169559380532197430817083320364375752643580104462766001455758328487701571357545494854397641451461811341235010768325097373907379772260788357217250609917060910610922413335352615235760893079298761759732596055988262661927930451991789387037105630887801350557836715389928721481177139115841788294273953383597970687840502567748013628685458086764957462737699431977671306768318441725871450041771680853180612347441823450162196627087430289453177319889026703543313622564667696843160263634670635105487679091565180446254995383003822297324204272100350320058258703024268348890903161732425124605963174908738841821428163401141984756827133626082514971126996691348036635783336370734782794226927296929145132150631886188506251781673665702373685046101446737804360252651391267769035119032838605708557198962955212716837564722318802723073662560483225006591098149560512492273487059366283675385435645206231004264066892443909878858400657523862831230962198695532271038641402610418037397228721637399917168505055387271840538264468162445294870107601592749623920341448700443885893846522732070538153866472660753932690315696831277264095018653784097559731850171923549329932645259682466043726118588329896663792057050022130064875878717115482595841883042209932930501090930306698924878698785916001653682908203752814487959130216691069443678330657144707308136717984493996936220231448336104148399785012022095393724037662739357132301989783610738688188890928908731323653716726641648887633924153987153501979384626928829624599745919165877761785968519850007652046593778671441292378342629331016275600921885236176821359023627453719588314984442490883623564634498921117185987868859957505656484991888060115092655544943905595514987440264993077309274519832584838837056068527351732146215902035189773695852011243348411149613766300085197744513047379802150451745685299544054190443995986190076213731125210516124151612731482531500759152876045971621901386770302565576762255490428068440189334901941128219455849129786184985025575076087250614223085943510259017290149549994931537423863393173947781523206082899253369425002744555274193541991222102919812207368824957810143323985670397303653876221709918476553955428624003220950775146546600320667528555797849769268820324889631337795558678183347704675245089248553868573222378560833549216245434074820356694974715594671335936688211470548244031738141622267486680269763342937906746605042451296906451338516445584643688641786757905421445759242723731652177056305286401534608548939493857273607767281150358977864332757879531708304654736922078890965827632473480209283173941028013764859688318006262343214880271243301427762866635989398221671718365115627869075579089620065221684584033053621078375168502334481096772743979064895478573394552662285141350102227840836924121927981461712704113784413079928194848117714362211135687062063088477610985331437380368487629953163446865652437018739494491784919052424314802667438833774514025462426420325250112364834067192131043696287540032747839544644164915390883113749350245409490832710123002645929935512032389535910697482666856499640729758954473901262660559870669259666568594527248628750781180545637634636681335656747052506652266577583150705521437012165299933588121786082004727787281502164202122104498322551799089725047578238363307428269740557636813689463198998596025021603633611881717220564535789970195259632360336549012006022234885868186532116792130303459253505824820938384999327247645856881106040812827746884740178144843186875444685047518179813410432754694375442269786138298276332366453172204353433322807714985008143797922823001567291951922414049081943993510745639757010430178454443753535559811487454492313478181552099172430588314224357894731704068428226119494604623842038383912809252227508931221953503046072166777071691190922819817216406435695573381446345799275399919868662369565312727996476521475441841627775288396432718578322772212486415229883737405500357539023800023262356634822715769562545887360566208771247550829524496444622703865817637580582065467899728978499692392583825306098869208180620187986563455547686902639846100076709523283765070354845637053490843407306664628897783950626893106534060270995963175527161326614762930464737978027099751329920457835749645245768061839548777491459490842606589128130342907493376796067999149385258168558411561686174216603079576783745884734598241989651854517820790015395989866668241549872035297067152138698672536812412369634787909075035200016853678153957761790430798386062493401898447956577749587521195404203996704003044748088255380185350521196238962307427953026142803187515533334355798071151946377923703125796341606121537892926023736815074757028396574183498099951623030026295772832929217132304372647659658344962977457953297760698200506561610085688410694461784580584996053212616624138188644634912137413179011304808145284593526330353981687159652982577356483166756212660904945945680955075700508334856231610262818147095839243105873234964760276691374860006792529619522079020325276394500270122438224424861672196305617124949312725753262957857549864743734265547702776866215060050911653034429910525923339480232866531718031329936631274499352431523217526188422354118190040322638579435229403639133057585655439466407073495216165062660437316471737132049212246619410344715538878465219543079776651887058788006001458623656137887647732608897453958583874740844483664990150898129513096295966772765146376482669857053373226948972650687254315810151664028447562224884224995316012061629737347903511092793440063647810426731049125278544589089529761393111774662922319373609953747804333396542400120150825867367586618625120684578948619406567931201702012683671924474715596672612911740689967357937288234213440837268761586007277799134658341442533214447095864402046012572645165264185556355792636642576337710785517331408149917743907691055528532512898237389041299298925122958210540211621720152137832891767397032451138959232764343025623308688133914647201633667750016400187708200809559384138027548386661760834572225068732764257649788380251661810408237816552488653274172725685897823536287249875529178546296245760824855371895396229406553244360871934429969045505738831006661350316090057067986738886294271878152908757242116583731145950348408964113877931550195554665198817742384836576203986928552643739088111797129470618395897318739280916068547620423469015124267279611617534576223191792769774592840026316382895702496184606310333404023918894999236136491147882617897107418091307942544443609466558127761347795075881700013549134019006938797745702638678953458267220847111714292937597572459858608560543749961863107079079415456241157453514105754924661664429517062474861706943499867719914849760234712271173430235423956098610483428635627063053640765104556824031681886131123592835964896150217776481526859426529226445834846807096190241082111738733900129151179663072572531816055851622898667043276860089382418463811597517974568428271237706698636202650119334529411540483781291814585933201900342063016669160237088963302688757633293867710236291358206482914441427558566687460916361527772564319615651336205354326138256580395114805018308278207787393990503106896251206273318296521122336488021215704049470484112005614639801560250332111717673839294228605423198695301838331899947237514755058797524764585875226713249192125638611973590107827821503614986230615647968445765686337176666361763526610755779165613679295698774086112657573746040215943810572758363035477725343210928487128354371145323706310711385698501547119746257764136004106177625941132980019107949025642021339132319699410299359379824359708821313396554931952474731750395121880206065153085852289272217909356426863536439072219560196784154567815449640879371371106212285430366066135904356847375149860410784430958822044193348862167046349954832013555988148417676367133583975486157418682262305278934659755948107974439302975374298967615757821531889759166199881984608869748871615471582776629961512727708001143030017550835582136288202061240069386708360038909370717300391797287618010342478561747358845628749031031220302492993258870943948304471544170494249226180886667159384290632086627446690286288535248871866413715891673227269215821329364905682613585857035011833239163852927908216615056150069683239930915940529906104989289511958983352953029569707226941434877981129111870401380642062473123402690746035971378518293809998345055864146857992643479161666387374513455438174980043323566501847230117528543463624348448727982015119471429216101371695427872706530489211366731058892062819856519368334437116389372772750037554200579501658381736099677877039435086862888951419950431909007001164071784441986031653702067943267246890324344970650856924283060263167556875528469332240037530822292271577526701107716204125143762540444732961080074893994756322272855781497390278339755967563132133237680700160512288740343968925027967813610726722294060326208827757458519096395151359270596766894794359893357437258805570162484463791313684426742194617903035501886092659022440291766217371486922974731896549663512197684844996233316576323625616485183093602868312747665783166315737149331001423295744392775713844273778000873214626911870703708126943094049450827178737751706864188647380221129873882370034424244479379915428482760541165957130477910772324236324580300740126279328035825612749741641952902300867167946122383220154691354655460657058245709779506690193830243731906515976968943163972695377761143929836968974073082173689539810121004759492423680245783857900173639377537523721580861442319840925382349236798378368378910959061047664599613615310915517609986812413422862131047321683730110725743073829304275855657682795856472114524695179365464387567141520184215189344958349819164479455864476558406825649212678392188252054203473313878374959379426367047405489540594874621029827660634420006385758447153850135776373240390599235023557567956119226582007489864818881028428425853867631102402863574650385406777062781566650062274832717580296952496544950989249848834718598562211667852216035063206164857880122617946611846339720552825844544640053383069115663180611526661205930902127828900359042739277628045870055865097290135966293095754334767136337481888784434347129706390064460119069622986845445061322293837202603736218916728156929100255867984854436656576074502225566326149093049946304853525587666953349667415797375755550165450239884361831364882730164689509936544167275811409000636806867700392500113408597338290415210283205102881525967215885013481425222053480530932629350182791930686924312534889772619715356526332546300640828680926250631701735230050691687549911115754707663655259793512835837457418226273536499407090213121356134994481681854918021610618757405431891359368802413886604793795544824719173202195462032462160360349877603194849478726128933414282235031791451026403440969114850113066828411042920009013822393097064950692303206579322377391840145965593591443879044399186571853055862214734305816075516991106099099140162893999372400603685567784634341045084145122448700146854285954405940148546407618307014774388747851745106675759764760129068560762408969559332410335690707526471970929333890655865101538629930128108867642774392536628352472379440039481033659052557856331640870943192647021964114944404073437906870631812783826181145164527206641227082796611475616575104541829277966950287376711323829816155255249466976428779736344800318645957700666719551663443897129092406722101645193542754465915629058155018511094394103834894710896938919954414761535996494111614559704240417002039010290617437711374903200765676282147546321903987486992586423400267087509922258591459358003868307864985454301618478696921438407571103884742546853603185890430601114280635616062556844895381452148772000094245356836367087422680442621987828802258408652262811678088591639055460048077070691859696933695064741678970875894061634404967154770448818716403574472867985968128308337439203508796123522517698454824396653157316439574527598809276025903955567938007792668568408842835444879046358788384693627182264712675793794207950715521513465572828588937046266063756968895114432466434133607247269339888628569150057306667598783933325790474227925476289077510795370250883570908537948751929899346955817821489781864510139567919670164688572302301787040450125177144351315361977026174754539696857579213972174047521510564802007216101182222255824862220952769627883001432006610277711655418966664416920591597306649868176126012053044445756280052362139401563790334297922179132394459925827734436439450685827472632355393802356045727403346241988106354205625042180457982346403786913253762720704493022032341736642781000714659947567253182651188615505614926477685746803773432503759248272217450770741066416080870820831316886320504233322024416056121900617956296798613926823226412395853000523480336775673291583426819630214914441687121331332704268070574570055438382026899738820340657539340826951064289201021490835039124195957988625836269149140965787264132517554565698213265992798892525013579062351016972418737186747072606411703222043592411055185905773763914324224395285947897004281754846613255231060134315798266552563586602614128758314684936280141457725743119626181946880922672327050129320854702334956315847965583342233330223804393035347139217221356784263922093557660558967441292266547555464541493062707736956179743286233205258729341327572531474112049783130223045541061973893284467031118785049768579182846644610720630583931050016232147216929225943260784656543894253757918761621927415301104002332576236550523823623114192113432272355444178498732522333389637631160335300479552167753161452452298077085379492147310752482288333650305984809353292160631705079737330678695608743652987323671587914156555162221749321192635282132722738660372057744240012062345542290182423149991526628635354272164327260800010182005719451391573524676855653960550332012573834897488522012618601935729728396900364410383399321182678620674351771688420063999993335694289570056983948794220848062731811911356813157900304752241336513214532574738961119821590401730231952228625773601164068442258023927585787144782753301766858495172244042463255437959640532330567486959602229505374079880272277292714308050798515610151141401651631119068280961309929286975967313530679289087038575865816844654475402140704023919638254126252347057420169952559888104514919460631712116444409712432045850534090691252704384895155803718238871974997242277766704263843514881609494896503513844777017765046036534731464905299215282786147048730734882312198049183864690876000148997705446454420501167603721137982413352677817805737694151103399258025170271913528465941970083903519675898189886706463138514703783152053993042314652012630480481826303970628003734854787119784657495595983438974636783552100215736746756847252649827046759541795252991309840161219280406844733543112417351825135000598441005928169450216848564316236433527725918093390279064756474488306892393862489385801823511348586356612830079954542736192673213431623217611823977337998787550460055627288914686427414388093152252492357970933450140055812233086239719298085348875797238865285603298978615561938217347984035258512081080623403884210167000256728716338772466369761390326036959354749744627585144608115545362994309569494426880355472920640245750713294640953321940971624708465563030001486762201425378893796232643910241247273000407146801167911150949598748252823823150200632364884025833376510589493562681408843716364692281259108023291745198013839947191707445996161337291046563211677577505829823288954892296419056764442857380736590927402767855714660399562933813944103611791269822597516424160082875118416117176957342759485629134494007810672794512116709177761372223281295558701306250579311308478166087422733973771388526631401380302933117953482949530873552793054695765064164117730380852704703815244171914274558400168738803835131903044395579528731952737307307684266904595206861406836376593723449177647632380617279483594493033633798238659108534860884304608700272674016275697494151485980458788834328378454243880491108024686967121758253263067866725615147588147403611321076842328714908602077388551262463638676328485767786179943350888573790335445575336897435523398134270685952723161751299628653632548004304725382350127791718240736876180585380071106387496102832909918015116830873434064722960391958069617897759762051774901136215670608627661994817430768046473700831255334087877043026838830868635494955037764688982837112710773632494539126436581325591583161470559141415140085085436801788943226843019213830308234781574496892664882842535478917490129705626391273260196166405336872264886247293326934202806156871884963252227474194612003318154531346364087808399941424780638958864858923745304025169433983430327648979665770944387827760015598163586563024342194198304929717227914375848384280602082120593569304453008598444930654955365832956654068519490745050647471186215638516240920958411493400708492437687675785251833843136108202110900452161677837028237661026118127921697588033733595711691626976458891055191123938663340845966240962855814668072402413444332699223441035601653299921028821950007399507998092896451082197808015049460109474043373682290577489980689580942870778737691462824249943088036890232202393575685588381816402578446969598455650862998157745479486644046916195769350630272106072011289294565684281116756826916821148076712132189857425872997867743443911611280002108221559247836105209320572435026776855343551211726266380709145113540360446370420396538304554403854377846959834276949340497268102050404554473640675552024259132105107023391875799016750948026517958560079938077347108258663708364760313832651132016443996456317585344388137982056436230360316894172456405967841822641968118791256725389569013063077033533598615526858905741659799297248746821818360946999195624794125825117380288569948706331867741501794364882345959539972113996263871368282994116817911500246939023631476293353986767637951465203948380152502674943387989637467765105654743281758305485731006148341241228972114766978645474177278852652953905732659708824189830646452477157261248263245355841401855986570432728236443794098384279802497135439548382988718519395161644467610273918136523619632622059980765681868880776720958610701414180531986408001522093622527950890754047689635612466775290047073164619848424623715847277509831606667889015838324931135204047182283987481227828491208331922302149681330225931783904333558291481827410982417793771542559637446320161970454316947648812582608785747056872022390499748455879731054561168667603074525467730767974417180810975963008557293730543300714389851418190096877589342154137181938737549026912487332070120089416829953123618066916202212200809668214373381695164866572471267545027298232416232896177499471315589435792825980428139612339738568384208531104388713535169580158989678587957100736764338460516646718054345420080377036628759183593938698844368097679444328306033264246002479944746626390136939485653920110513081323230584807758325824898437108826369029377271861421199224377356366361836145700850480965987327713475910995248220350640393472843392564195831165875775254424855233239714791956036865378550336428124628902260470952231334178711458751084019221228310910156955020617092697819026572176188104275416757408845566234854487466925459799467493033318905973369089329777953973386193809070848357158682884412886583074036711718529979434857081394055037127031670027398179323102031933408176043533615135133621084842380888615932989916532364011918104877413818939671390843079333220510251739100446072732809915176157813995870509806813343379617697658547052215973763490856565902513017351019138648630684595953911549696056378223043889641892992796042340234309510120947616339171777885023545870860832635132591147646776124958610503412107333676393210641280438145791263703862921533851947257754865942462341812544804550628930421610397996362621279148674623596197649459110591067081522065697762054255434812694554640582240359854772998964017875775824207825872510291361754519743771653038698306180689615562187335406469737507024823037554002999656698113024032769508790561110134447898062875145074094604525668775634663892847210938137339607789495474476777720881301181734702800832529362193909985048941232243775634381724640177025175482874208099269392856383502163335456737373158358704734732107561265421959688958261375241792969999839798448087235300116686975801377044316086675567681017889653439809248029713065979858835728327167507816504816802447438396247392198679344008352633642109017653696553838448521484417615039197765898316698670269811609754199232720176901572068041124606203664466404444022403214484485668067877934145318589267132881681415378966363733952150264162815012636111580678957144532604608833941385822496216579281121717655188201425715452043870466226400800668229183729934639129167291758531384570628302834880191680506036156628070363976115043651339909143869682568803361857325654560382762258422824733455603473233762133423506957788070455952694259197641453432570624584056105283944116433731028169250862368706714919158578900269411280462618238477440526550668914206177243145666106406884158152286690483293391625343319985664882327730165937691615120405524907688569669789737583007741370596687726676078976065739308052935671489404070130836276899213921432281825244256556239586469070422725474058423020783064455631956907979557147396446071015225196192766567823578893402320203871488662794559003168992403890027474660393983507633148801581322107913085094289126638588581017946777505005765278258313010671706593214463624458222643632997471241257154204819973319545555871608850029841501852363036329155872895543874279270569970665501613470175768449869224306175441342738116765472719094134312044100962891855419150314037695267013368613089248291239483618560309059282531704454377026295079139174655172948982112456629801469121797059572251724064305964232713904270694149658697676553006615215091926916014979881285374242348790760770168425752651138199009254830263859183059645584249209051542492115292843768453472480320250922192451004381494420464629249487404876908893657067734000277142280534684347932722549865654400626808498410558183397661020180724037083374547969998311227480431765977758351723588952937815382188549717204961742942204657154639900111720229264785555104008055605227780685598238611413796263077516644785803836506519485313218006456243921072684079909656945650774872504521889875325503726344787738814365605621526401815439120781147289362309999452035560192348739946848767645620178582331027285123049588717857374420597489870372071507558262535196710158858942460820958873764806040182400554105693740512680233675671866592813466292297213426614937202117728553213699808094388090497540518258365738274059177963101416011930149937464623552500768516618589718940214558870717602930620373917267894784662719960229755717831303487472756784716999363785383302395143511784937797115864574443013227575950699682099503932365872049438761306026520648071168126483437354605742291511956796894713924113103833105550425099254622510278590536273062657841621743073517674187050384849018622756477096121962700730062993850369973628699975294875159181487950585239672228524424552791963280328041067043825274917263018271968967299584447121946497756835782592469624329046332832451869945466959153336535012827666388172716558544731566474201141188206621594389055149861979099204979301932826694481366500192823988830243424129591242983503120920459704840789829077264925526100515121671076452040370672291648710504743696408960070161069623875451822479218196640749182652723058393631681604485462095604355601977189599519575818017581561490277676957236528960727509585028361599463332788557256953528680841184278026797894049882079641926546875072153813618118306247173184162295855183057278799663455307003214713178930093540527837169881444955868611221939785983345329396367559667374790481769182174260845158730444086765894994340420912121775075813728085164080065257241330649807614882848308000847934034384068603157826971539757416587262517933047393787488482580845931950982757638261329379342216098648363888473739074060072428965587519668564946342302248407363350906711002228650481045546688166927279093526171354064752884656829243978634067166294929121164103138889238916015924416931690117996768322626194328525395168397544216281058116769766492047138992868242104265605219885688488083535866639505779984464725734907925278736682036762811427552549305421242268998186775121406717125694722501553818347328918722633283353153298757836804314503576709753363402728015347158653293221871341094800452744700154106786757413247681810672440552112236823843861402851886021371239001796852560060412168275340173858024743881694193910744802065573001067391275331712622005632109517749199173096787209021810000648531282552830249036560914881843743924374983024747358636029920992391069301573827195038629065962880379525470073533806539633044929380459497434038209374392601871902220848327658821321777197041941143420094874419107366801180844449545608232061826548206114775707110492901872597725845667055948360583555309362731847050647964818333962622244121059391748985343526500522612965118310577784792309320332962539870285181541719224931045508810139080080041463651891163892011742663377498637342110611550908846551157077147083158885605189787690737510949816422541124509743203018865162364735711737072283041277535305451528214724606414353297669727452853010363265515751408495289241886595482487185966033472942420015999858653091957841078596985473397424787282402691080237440573290880710684932039182653040152492231236985934154148849481069090563825879767883493657820241832867084845148631071720159752200757210700521286310609727705899847502102227811211577061981670860524698137417936376486653589415332330560074066918087230972243957494191398173117537566506644024420341666427528864011623108836946388809471305706709817844619341108788367350519132601535966737333081151315963795318683042023863022949579315138240870225779741200063374256657953426815804375681301408591662492407860397892235955911980991006619480424070257845099943040392439753827368953721600183610336628092418303964015067377341163694966067088752130623249242722677222125640389356503314261540488569852217357818164172647598477434657534807520945775226080867433799793059401256635437828442901063997127938834253021157207555319450644065247882995655410965325355020832601809800279413603683495974528496653627518737248835417232326430917947037135246963711972807737267132522402353544519136084907414315086158576378823476083054791556018197689195111971372291877248712571934728734363844478098968265306425195448412961877926609896032755731458643242252523762702022341779833697428107473738239512041067989020994119422985978990473251333176468170810837351603815152358538896509383288121345956298868712417200165363170235421711892957275663347956268420833142786517148900573982539010647494582966247744261054204895971794966830784798317949048353295134630147257260517402184240164682398932239703685945403294697056911030259189966628550373505587636912624251947192867604054092927124363070159592396719586769366185267203381528415074567317343341160862847157858235247152097808855381138056203540033164787961921558777393806299193978128621190715846714221956157526824506361792968974296336679309496216982087056905945334570964339425079486070091864249742217429461481622491214891041727125825905147120708367845376669392340162208744941953944047500809180828716165596196813881699937804542460430678476971580186839675485191792702366206411655656240674025425658816020779537768992340719017869146194297324166763508187904563400461606821761409131822917131480015947513308036254048557447031946645468539708600771991508726170300820440445813176386731964216443361250807565282430639762292191630338306070993993708629184470060242514721947916235666954862963251012074020105982183594264217306473288440401721620107487940809111315896539884429001882050193966535845331039758122427664215100102075469266932466391967677532359925772002813059572005299966420434380943012806391826468460725531994087000358765165466288663350826035231698741018651990632014642273420842745710945306170188358067746281492044853304510278085690762949284639201809046943126839875279395684560945571379944767569962345059839663265114817682183825901992798058320459668760517512858762028395113658047267174085595407470162386990473859903679437129652394277055966936652587139286888316452003669798451795597199513621727093705416227030325260137333665407490228398559382101256027624285620871329616898322375681542676160810095329126004585804475831663104374940015346970303123266932290602286483083497252794715511087282962712159863730573827174030908116287384449829094371182529238350338117964506392900469872204837967293064826519762459681845191719511451240167082643860525534015199229154230248336902413470756893763966005987283405944986016430557691850536576025827778934721045232248460530893883890078996346078227112231308804466593280284253457241290742341514851609931262052070921868666111656894382089902119357087988286824223785805612959875963523890390374696277783473864091510885142470934657262169980859195309668764194715681002864718068617883430508010795899233577444955058838857048170893205325640853909446237061368375298235160587205801777854573163753796736403069407329936531356782181555161786542664113969015055573472272643506736428034774023954309712236168472840658537084560046834561847379876978904772642488445400149344752112352562405920896329920635792820888728961089933224286304819518298138174981228139322600884005505553589606546940169471790700367450699319359198987437386167951785984717194438480197285203713717851413778608271375155013309029909914678836941984276212732940989118285423805314334310429457021144150538200667342517169843362320496966703843886889624570589702768563568459446580633979622402856618370972728534719233679768798357743828391636351971866212787888945544082693860826620895282212377406609086003065234334766037974552294113711231122202177945767163012157611134807115905736373580872151960186919027273381104054151594359700649676691413761206683277699034252178462021383729564689989106041770335837602311235418033512290287529854382314714285295927234567626115487439057040866183911917582080170601893874129620548776288048869956307735643608207753510908379143584276421967156953212524395806002831973844330288961621214400609726760038168769115587504366111111484334109347282052408278804218884956356088629451133734148951323178821445758445043267558582104300597748957951273653297035295933487028868895260722873847003092972223478442928331649072709356012351119245860974704833500709235280309350281823942341789889715042742427707422860879321088810479913414103990019855849417956982345427765848600895433951617848091255299667962443146895070784254198619418145927778600135410176786305106345376604406262059737005892084610097996453607731871402815797944354891249993122179516024523948516180920528167340780568055257359563646991084104083914006160811625591695700251305076569886596715463435340125592431878851809086258323859426924530454802926378929161743725781851751132753899473872888189205453975017334081964856359169953808332144778498130549279592598807930496505256468578346550802073228502587964044375856332487609728960520569805673015782225387358319162142038222688456621119447995560855606153739340627691014038235935360841668027238777960302044346288241006779724083248179196576482277782198427042947287649082852329825253885876319818692859455219917417708536709013628615770006038848789395852023522860599885595954445577410416408135860932387962024814045710293907262503071914298894986038720257792806974236022472811763550499000320465716552402502579028355940615510602500144174234638365897333321314614984689970993476046238417773397989167204498218184115995560222018644471266258746619611238711017053206382051794225890838417177218987499695139613368487964911409624132778774669908729839234004819059611387555625313238318077854196659169597412598948892606516798412500686577095171857212044728721699980958451270923037656153183676075310353329456895912473670837824109885361980953637757524426888731433436471752611903428150995493021607876475177170009445576340413185735986824326405057694831401230779532664523661233935806515892714815115721762328037212111142362545679893707322604340177409024145812269029955443922723539429452242464867869973376966624395229810295898363206534696098575798243235242325586218482974562284375744428980730599667194493539568133775553362519145607850386887074764039255328563398468255335050320620931558551113641603924212587109312493341288403369646999549560134811077977572050529738778730934767727349560022738475201417152092516740397803706247686613730875266218497932142641255017581854860257351104564143776727095535482137326557327515931163007065546423834240103895635517594842779571181850428448959645876631292678928244791774607314291145178887562672747332529005686915856381156348462836502399761627236879411640424748493652866253975718096306955007344418881901534386467371153355703721027124210104905010299624117850095598800237782370303464271963392837370880217335443646168269609565800326211606442359032855183407566262542735229950172718587275940638144524626159670983618732698723257933631192265483253600721489716990980247237745309490184496774287135543559599295740472751914527164815134897619340405034677093365110146949675327106274244586038338691080820239916274113195777816526656891703973286185170323863543730552579291006459461892725417890769587834962941512418594359513385307808629044130894620582665501221596545114387063478525370729999000744660871919410466165892329580331865544777379712579846461705654173457455384827644586959923132973819742799459606087978819712612574725628293475253948748907557404075914942462603198189863398728453721761261621808959851466797304078476136149701889665691121327667272789430134343372434020780929960220527606822887644644240035232876291350268955314081161725455264989368325574096558464522123397467224684015163864690592656194320916816618281196087577700041223926764797950417725852071019725370730480677611600296297770715710842173654606645785627629270344860144787475775516666654090570753032423629315448102824201274991267941356444056545018950018893251804450473390473774838787678625036969993201261902206838010174589897385444108951505382466134758679208863930951872043979428004751642550515329427093276256930073778197110113301827900406747923034839094581129798549613367552839652399122954437753120768298844129918645393813237888501653625123593230116391805005029654376511130133195843170912671040967926325503830833320974598150688871595186827933098500265822809973832913479970341946792580339404760778100637598651215247204882173484291910015220068182349245050213998102462881159881828940080883461928861450080059282094093541480206188697535464326690210831450515414954164832509371106235009737981543001085484742506023618179419000996067579757129159559661571213900947026201190918101952776473471675055591663121294630456543045653282898877548997994338136931803371626879012297124458574891182721752518698142233649717243796452226088269583856882948060409194069985743042320969853084259400393102753027306050015123586718537455019540455665036169062477787137330236760405492627617637157993524410726770286275231863283229095345591414676259336219226160810434144405424631693398436632786491413571278593278123607875984257812941945790591209184882409109011173195371583319060645403526956865642481567480387721949220648692921638067245115672790413011497123657156007067966822662385475422955563540239756362679312646919333168815139502338166197704875620677951998037251275594725692992847652666551731807144596769998761523423264555583834493371530003925342524662073960729005478652279754772194113571111670376143386082420020561872146323046504537118473349075129542081155371849319144947746509742964655864703814643007499733647846723602834680182264544187826846707825099927906845436985350214210899950345763911700817299433616264463574284613280810222746012090185540041341813110753695306986684997303827070600333343647399006387847385497009449839156106423417372975852851754422170702696828248064720212400263065835272374076975049390789973101962783410670204229235829925139586390162763978776819260609824203597840420293846526445107184374396643034393372630917548953586817102652081419662215565941928381486498881406063089178384674303079429811049437827804438758831291682263023084496868445545129832038134824736744148714487757376952553863918478456942856787025274708925113465151683918240991870695131410688296476463414137650596565019731436708472987366678456705575574892659540802469514190060990117979801046427447269500661806734029093261551786867142529276472416398905162067590553415166842660698742481349493403461527504094283043959164681867937217183029578082252668817051052210697421399330641975754520390609635515852696880087755636134314253954168211985085851804046045711736029169602586809577219347664035787899310268824818873900282269911307593769791240959377417304013468741819507937310446850607066582308199651944960417710536902408858515540887921035263267261660151463539859299063885541253087828686166844666938790622315622924434350120738323325414731238466651796835101614943261414998719412520306936716212868579070540387925338217795593753233501893735217603502588756602113049846107904963309127786948433170936090556633262392360943223456772623161233761095015508820223402923003783744305776052083127389313658189316703279146335672359965592919782545394054007330561032114177330369653967283313309657315276238637480454597954051242678165545075833703660205922594338592912579418778945618983072704891317003013236728728408349188186184147605616668597557306942257795176901215907377843596057602775018635075383431066654598029835128675125773403691496766069678128097389336283777961925836103651399694847826805610012577505783569819622443067903128613738203772550829528885233637808692458537270654056201850121646678892997786427513511585541071635507643850937749258840556084072400781322391192319830642805675064918848160824467565490600518929943346738400518140748542391178439069311510968201033064912904801160533764322697455414893064514928366931997121465565527389443881548290383757719810370199977754048182270550357925110321945869100840607824756881478586415256128038069347149938049787706229967183760777093745831447026889448267154229407652676179994194046569446449370791325765218675145079320334338456660795621259632185048643254305589672030161195964907903950085913280012590726012992422768312799428504650131322588924726468061843949257400338621456853714992297086987687962472991340791553528264280500796927956227989451887636266152093620048560069039767075444517280427892968036998960247221609356989495270889380346555756879414436306974806259419344111519851038419095790299550315848689447093513884711589716851864853756428532723989247560609148136831478190317382608622522073822645524478530348894067270034032247408079106781555213407687762451726363907565507381791540751548617541569151558315353304815502640987082291351639085741591160269507182467663287290175474777886758221157829977427353179380371558097889405296736364317615561953127659739676546113843847359784388107078197136115923481080909264588136643788685070854361409063008641547997996470959028309731987409057571519233262466639407255809518231292518397126648701152579274222098184716663295482515851109045933571343515252742746963225312487791430902196368800456284747241781373988765765882460256729349999606984022673848709315245634395495075210785599618314642410981071988672358678232758421572208509984340300903006107524934570516491751137319648663707125143889360534096291541106416574026166875729360101955416969415862454975264455404783283262779667612823582458930538400369638557151527406426028786004215166631536099473355005043606589087819514708415560743092170889929590849743050765515484953482274369569895327040119863412603885967352445973829504787844032952091769799784291889665241235403917879649272705310856617526820571368362991022554749621651184264752586753655148895215417832724458252310350019316939155329883034760148837950674198305172127144691295469130741749844354558363462758190788894246255598457633596569034003903031036282975476500778752471160379321794058942068090498904480491641486656876122662525219053775345560015083307955226007963638936645842004747875888328405200142569280955548947152932827418237621948744766577202829740771157692616889478036275413366573252068779044639770538321888288514922504827528307855177494696624830865899296661017233975509353442022167697571527925964155928430164560268261974333973449999089080404398491268826677678451519780567003279741140373089725008045845312821274006907857731010468049217419865806785416417525686826482531473348903047001932537769299510721436621633221109171509163307337617040839673710429426736335628776405209653182525827260761777388406473092515140398710353078990391599347742236786486812293666612661757940157834029441072903365251890858232183733812217345636979800774000191401463956653375252080072338515582676561797053952667181225775744775661520161905849187921741899043096478629430597781308211392193828286553948016060182100229629196837233529861686209115295617337055821041176350353480093148672122337349890267124903688058963845456132699207531817529167342530806402563877872828801105933988943343518698313101706322961506490046031632724037865468669166579080463130102047257733583963821945253246730055742515851953982434237341956036808374817379286293086428001057942387186936515335026570073035892739316146521208999003000802800464783808994361296638106793437933638313767100517484242737890550248019877960368787973541479333764923282456499081564267997146736621538689364126929996637675255354486019426809643481906789563692775013393465258121909645572255630552516558135026872172434969238291543553138838888173161527702943981557291460372214054372623629507187605713224298810587488807952462003832804573810988100800593679156724701287450806359959798450500400665271377687605309701669535587323253132640573352049281380752746137342455791374192931534651146647410494889206464589536773933540777282713677700311364312379633441650387729202408434451166213564466112654451626242472332431418565960879110713677648451668207263838054134535136795494017686036438764519049032869194816058091937007473958961702134529266748088624987388468276360230138240004654469254286919004480079662375909718589643354456738335223552154391323377449396861306554013521172053179806726435020964819473046078318238933594795386696836980242095964433284552414436293870382972455967126941604763367570019626584454010246510874784095570381712363952613403702027680567449310218589295482091779581533600525994681156315728780925758830136975937933654820133976252776179429651128472856119529210957904769407776254050510016492765438589880523684032999969048428609226810436905878503361626149074931655388261614874047169933061845614087344726900444685467654333279889274485990262930430151713788646932727690767941735227560877365346647039131345982808060543153570466005372846357682399758448723489863275871526711978647083724862527443236697740439943953351500662262891646613276122955908905080552964356270988121263454865969675655698654702010808326948848208073130893042150955373276823064849339472826014735732938414502298925430887994511130440290574306849528454166440194751815275086866476127118093894723259270770480661061589786965153404273014836761656467761129924249193000190328272246624170894800317683198313403217334262194971462138062643456546096144326538895872800518693568862233655959201137490987481078635864128394458532805814834612046495460143571573733974407052563613794470607713784039866899103638694546676483435506746458745672680766109282352759052338432887438954468385322284658909726279544430905070202721320884445223487978395236132277290965754718465174448945828228744817040187707478445666338416052714582727061947834149932222177460816029243901662218823678647135182823599493996376741961076533134048893680252230417749694687202669935818170259462857140172943727346422870317200055676811961237158851436430350275720736106985111103442000811464193558938724235012092519083881764583843736697194104367860260392680070929848576193046768345114286127531791294638437247161162880724167967153752520955170883741192671373623473711918210449167500506106951135624417455793890865761878742424448929506773707001503577860361332513081953813492655186528312921208290057528178433077828749300654871972473670231427135337897889012293492903214245594021488211154231280581580083378984136141959635068306797316220983346848908471103214821561070291288933283350449078859100440155587995883111476824790663632462990551259583901184549417467887340568036279687594467201264577139092065314779330661819614237255570434179943834815121756351925026746276564098539197169730618497356571287931758600227155068362004250400258195061566609406138753365552975547525763381132313518226742859220426586103445857848549424168378553764862196575639074883333939609857468798574259570626332277397478702212632488046883856628709064802033264932434752243393285075922535139879421205461494537697759031531341573244621533116181047968904354298447045680687762950442232930060725359474157751806482808193479498207839094508823182039766698005846512279148060731983073140756659229127020431864465263662931052844864348947580259547424858380789991548062722355025444091668628403209583906376136457692289704826684152949981472468943451611491138339571596493423335520528372829470093216879688250040752042597786126977645025124581914107863631108362837034269403046071561864118957089054865901570961255192891889232465648470999359911810748510572619199152843201208029763624209009515483729724041154221303416043041340179936604265522642771224410441168599273585087984988822872608334947274902937578705191137289774130153083471669627414688757851645863730983460009893535926821717001711000045870783328787591215641779811182416866023728075325333693507745583068207691264653031274027365364371017732380919748203056207983178216998369295788220176337812282084356214352423253929211336598790516308046871955900376574692953160431444663789630600119389639849599535297310186273455542925084354497757547574812336090934503335237257460291325119024018096319999968600087173696729096795894829320415322732895781212999931734670021738487320233902857342116310337513357045479104029760291755554741438957054576965792564327467910277905220696877162987756970176718276876198413443547486684232672970247625827549250711233482742708249205420613312490411979908183131200694544668166429250383165742768304543862809025907634555034793781371207282049659770876569238636001088698437618445904356647184362827507459014977548185964037132649961601556062964521887910841114262642380210825800250026874690530479059973179637584535015938177907902779826448398455114519959154162273678705032057450249002753071689302612597905653453049092733614820511088693650860845980936381632088162512964816467660046459521122539102294044405129445868428575358630892430066386852008720267602655511267156319380997899154886398107170363318924738775725799597255471670016121985793081197590379254347611825304186913847904717045975861304243440343520105571616858935955189042989326493798179385384865611477991976195700451535056002463248265542853908433988519335253276163309306991870529426698941482587525478412947894980107928502572623313048711342903541157811415076251442233347592230591762498404716751661631617863458387972686337688949938329636263589409109283108071385853880082571309304702444161452847369770156797964665489191577245860717977950082507200736964739740921068733680527711937791194905165391873499540133052419014294757128050328928652643557092390845439685530506331833252358528811594194861506461040125638824200660522312283024433704028554679421400258003734948527531445781679326858528467974700488705613117309423840793014232576097101361042885212271670287342088374220783579800711324723748607639251813580220282963760320116591991774748112290535985705624978590786352321318674956804292692386277859457234462179881017655489107299836473467936159995106331514599342613261865449228234561690926069995003315535082063889733586793612672439033173000362954714347485563092538325882338054737118416039065267652993692308785470553658403403177121183208780980182609601204170264185122150574700127491136725762828335721631025562899919784923519287791978684294001771904308241189150799581577645964684264940835369589632143135832878261201012265388713624388567843130671974185245092710663705092931370283274587650255231008116665664239302322019842974133281841354611709876561616373741025378781190056738100650765527076718131741263143877078896592046967072197449781506480506761511219178418647466437766406915585703243475920026587321434919464982633863716052528942538530094800526790759497605508388696125399442231513061135053267522180626039086715840138094359671278458921166056426990856135633130691535959911277354657581295098218197935610469481957024690731060181335401378968140627638502070967662169898289225408631356507066339560238986067424997309431558513001357081774576751086144125922242493121018179079091913239400879756603507469074658351496967297434966924165428083614689229165292053822030379080081645458856569384095289354373793269958818332288006788912424652951067980172340181285444973096986957615557273820334861944006003112274440714522433100557428500392432676457251104737982743675476062689719045878007484624490323358685395053086804439607011966231406828624786049324665586973125143768853472449202057500370809202371360176248174788185270437786038017019061627045506475396412267539365324048217247350878047089453573969931385044190811064004959382499052367139184147387528567636202759577855604456878215416947292731799409878933944820799932733506585139021341673241674422582177946917803095558028794145147664529305944537244415753649585121549203502172688545162282736925852150684921262253614747857620494585932227542062237292153303675062026830016051833482499354380797719977878903138151395872711885474274810324897969065483288786960352173231032473639521008857345744995297341323514430161401217641939972580026475482862644775175670747221446698526571361576738922097038209153299105375433406749869617865935549628035171945936917750147447714997519467329433717125578547954830252024434177083353561731723765508842617553673923062913452294122479070032798039069825862385697305955009357184217616807297481036076579226697220824744320779849230510374844024393460235762688359479344242148270346736277598449185536990396993980923318002833023576467385173348727269843631103487110894284194045151159738165672157681920893793816554142211269899485929911901081056989160040351231085109733265376478482809049197113798542528209102000748375318097114745673309406472865230157690128169261342730253543647643209663867814242818946693781247092541070812552715043203018031615476709781817557505759746010851565223703720358276791525856787252761538049708012749731226197930138502518941102324636454355804469377000272237098459984911119208996325494468795981342880233316539500354470189374389783715437556969501858378031198392767570142515519002754979693960138443100745110198629556062846701099235663124856296182797348854235551301679939164101330827135505251646562651443476912213593701471729970827345162305745186179909830100785002358665375238512038723172868796992471580351305675171427694766605587629463999990090728994330375180507275502450145130728659261082680121176644705572477521783640819829576991570869636868806574256672672135878298684920078767216360223151073190418088826326778437031040389944441444646088285882154227691735883926316698881382870071375433235381821823278438989220230201626777014335392927013562847662935973193081141367927602307338326547755555821267860615699825476170630207187957963798436033397420008186793280351295921218961141228429700540510468544778902303763151854611109669350458737013883144609458758422690994574547035672637865448018406438257488929239079974412900714784162217252952421611745511730844026982630688803966776578212483148134141987284221537841199600942596457591907428572065456510041733154084039358358753510800305641605629028497297320366773347819116915790698351002377341164525430246015169835917576854831887117326907707975607728459628586135623918778484062505136890945307756341874252320806577393165920234514916864817086363367503146079038061487847149749933906741683432077543834053221441708671669334515806092199581213321426706540505585493915048342653653996732505900729481785751862606792366305727254318762116414978940455064745898215530398796941622355384014638543694866066799300885572917639938945553888244585770536252659072785513719260951834883138225507312626068550881881927848306762512449000086200541228049500684063132099694166166884714589065093510307826755169525801329337876133440653341408612835521912487165862209938547366665222397135320257036143806672441256008925758528269573462435412594064117584949129091697252699655891536117990725835429648591621650356611330300538530674735044210730763264103904873260240755629232650610429389498035833247186195187615688536528785191732493185205583931056693961887139519445586878033353168487163758174761033083600063345581582093756439286594822170292981626187951826757265184745988511974850177049471927257773322334926993125538357556644184174085954205157735277890749911636452056603889448051422992685898412375410975210693263036896021937299121072631303896507047390199874693234693400720016894902580027028706966818191389767771475561342993482219594211302347022800967980835029165327378984973788787150468427694339117695961739103390503876894939948382662103154905027517464353620553851290020377809862332874430604606202486122466177017259080066297170101400202515906562463513617853890421589169419617151584289627039568746539954408943866702545868845044692340314168313937838718975353707587929477718541349743617016813333178374386674025478369185671510109511904860149346954325540849375139236755972572089947772785641799372995189870123616958548124187903802908336917865751783223469800240433502494653862024690705079690514686115165705267058815646149227934170777014662303238899413765567292458088253019499127799121791589258271520350605967874982265755318832875558155060659516947346821339522664855709724309834782022536263687697469285629583236749884096317838557599610629053255182963075883651518393798095932008908933714788669145527430934859009675869729671068407611485502859753356022283193333980025069394352023583548587966735615386329137614488347733054329838317841797738927289461906502378040030512113225011524544336912988256331311232445640997507166657233091072217868519645677682127417385951791978693153974033996708109684856411111657361739640228852187307256184546419163130291423519101517340527231687192313950166169772560770315762601804785747771056165584080616508139712307925365285013070366109520794877248391934874039105099856994480442710621726041643148412455078700873592594891465835277190148255371097586040554452212123858836121684793520780654302082864570362262333359656288458241572412568180813918103752558547496002175954358559738582963408594181624133524837319271998805699803551274640231361641681762700226486646110584075445437315279279694027097422001307894210513021642853597211692480665464161353259269282244389361663187146171259917859600868448225548253991519546246325030454498867314996226593019276946875428201117592060784053678303256124430355152380510122617153078561419398380218625038737739046430435479067557362605238119437258300814034549131016049877931954465381642163225467078855922790535477963099361049037857696340448803355986763983893853020104053440623980799447328714050188595839248118253556780100915109948145061274807653698932351002171641173858832920001497840287866463763541057341626936690161197001265923463430857316649686264007703251829232009106916083743179873089814343081038990819121282037087448754084738826408743638267993786526271512341261245675979328399164019201807327544469950984832079499806711067337391151021496631421674961042440202892037012152388798538395346232863843174267928239558118175611732334934384119365166715423675180391628076840731799434521524190920296500261329925637605020882902133765159795582605693365816621287468040524666806249111150709965246414438044267336995623654411164257291092203060748549695274429219633891831509392893887994380314037288314856975951282101489658078901910397415408026214924888893671001145603227488112291168972214692853386295484490121960617669626972277375444470136657215058500026472130130185722332825086838816559677874782581488158782588798833681601160041602720675288309956031393123575991165868542875172061132634286343181122428840143775879725028609361555175678662016215743988288555307192242587847969757873962382360293509384940469859812495329785021798998426054816557152659988075270935305851303977923503472340954148500397501789108493812412581422203467942393336893489787972595180593881553403999703673390347015136621891500685161560025206904122436483626294198960065102446342727750262539372756816617960159220516222243115036562162264003804417495341454946707564657051468869813125038565849984208200514266690658021301492625098826935513731779405769640295382810539194336951153390191911536245455392080612907581744191706376725378741573748353446003131208937241694267764821041356687050697341021112221343725273851595004562013342996882447814088130111721149123133743594851518214176484788017379759870697254836230546392089631677503956575884905329218215091533752310186885978276114703366239508502070529535626066532147366407276585231310608037457224601067760041866340012805664526345914018458848104420437063701541406029974923831509800425307002585326911358137565642049716084544087146544925818976771897688302409108824016380534404006222679553038095389469289663706913860969505016600018085575908835721579267493769151795104266277474389674586960825946495225746620220081427091899158104571234576828371928127937950841048404003091627429852829559340007016843394939158564681009735180080212148359719405957762744830197275069523473267305815387161429538783031493130940970889194667652559499884709589201442321260105498201168882992047903093957911316182030317338376664761100700937094890639014809239481177845005374927932123190079694138077867472577732647766090074054697264457090903469708813814858806712240607545435092683235606758437639397754086681467673618008036498751138310280005767506109934313503070335459122873658952272470870413778775024858589606236056345675705691499668068074646956052663218325883375200100536157984247350577777569103367810731312769580193741701485917071237644127838070924944145615985289353029407588354308858135921502262163235492660215416854893631760148893342089983962350530713160977724164512428208221012829000819692301404351217193614172202861521797679917632127003088416228213791591882987144411563568785411891788392510122330169858000437596054128505990218944367202430189325756396927844221689442805237596285927089214430477830940367191653817454077117425260439081639293104036387852078126212238358968116811094297298922439765295074984354390225492684162521988354990001283822223483685419859035668048019617568670079361993892377827954218773200487214115983083333120389280244015770956318073642873365391862688764066794668062203344780089279370009125460279016314280597313906575588370783842284866857042491263658967267371344693167849641556009494209562760731779645127370694845087748271519985670558473602841724894110855003082137549919405654405534005698710368558004527690855853390409775510445619595672867900580694518226392282547972585182261605863984871565209726880471194354646795369130612433197254708758996498057177917465426811558810835196835764110968824053613241357601576956325270983930214696610147378357000498018046780971843350074084512936202973463395784254125810775759280109518998065608503725942826507462253592729641648899649808813444750046582845586831618180200257524222479462264900787711142109315410645667787680028334309011745341363957458252726372450697576465351556868294776343800670877700315225684546789118444892960730490390280283539278714730020779968978630811606278177139041636935787682690667166360658575053530731507416958595381521523347274515616392195334150447150484608340738866417710734597870395903264621404050023563008439062787739100711011714640700731468894812975243150090648768980043943463566316117946316546316258629087785445337845150067443958600001995656056605409920712151060207458005267102740837505947831225755681407831033833938266415151696670965349778946753903345370903306086975509573827058798442334046269568448079182681575446772324628568182395283331004877737803774714967346974220611308946905008132485562789272668405781528211753659660672118777666792482176884448117659557393651749686183358197757293980901133165846523194250181243923599002791020284189559001373376542360224481302993059817306756061137190228519809576674082832368106039209456280229359865376560611652836874859807270846020467959266627794747250426587661227232226709260148956382867756937646706737404231829804247484968470079550056204394339067381821332967732891288579061832123479522528289742957877406725049756545418214314305511749420966120051454294177906666682606345805027795685275786953782998414832585230152980735519241141501366641667388579000835305921023079029089003345289271437274285961175453249176104100199288668490375778919345039439289964608395975713321051807068869400515442429950458810658464065029255211376181496090015648036299783432105105548671083104984726861254253112299260004915314481496986999708426006440675939996407434624038634905287210473282121008450743491299119126741327062428255346865430600591028944740104968719139302669255632131722319011604077398168668133324834039999467351349152789901498583120096455369519620879559892238346966697788271530272343430297869243981826175367924836107547658217564357202622149541358380905242820414925482345764542499706781947044943848810019713736916833339386521467880636038890941280406391870088957361873716126418570880235748422237856608225088199583764454689398817793324910429487343835576651313904772828035073410543916398789111747307617915116859476612880272637363427500891618582623225882776137888135348442131909996681245813662664137735744168074236432397851918160580427454213378514079736597421075523958332659276644481241969929602509872532158351281124798261463841718485650979849779025870277021625560939191327470316610273063934111159668783903537021153561386094783660462486173669183324634614494675527722484217411997723610678595437701664199411587929413173135045385654221018473193632640162092142594294886819915578325432866362806421965632069981149589406519660297400465815757332191100676553536363075091992711900381570335662918514199307104869195670541155957030346542318995566042339765298405778690809115893056818889596036067943883333690945488248365610093900914880258139526426657633054904081820534718679321982120208415483888665248134838538254664103672228481310497150506265245078134853885551234541062660690435963205889296337589956220489865353838131232420161730768009976984946706233137410733016703978661693167166545551215664686838114643706026375058903970080086961930369913991134888917138117193614298812582512029891709314597309788020935497415548492002572431359041679927913800608812565736030742285487148043303271464702442863844356694810083595276699116734427187780312498748214043846688357739177211407848511442504782245745630439204137369478711366991581752116599931382939801567999871437551151137230426095923281845073913533128649157772567943984827344508447633233738739716859799692673526229159270650623662067675079033571041344658128954353434083435763837732740422112305425514827863905969813763884049584363983224605844608704400017175148531848013363019911362582473956590644192773289724731297773619317326010061892098215787625089753734472607854445183216838953737997905476634937737334104382582761865033219597481797818105087491037393895615844172942254125771156027895469849466717675607132261437750342748252202635797185911815466753729511035210694429989853706926497513608361867729357208723472908689006273480486377455242845506128881192544942734319644323162274651436161552569757613460524531158327924333997909576874482460738612742733502401262762819886714195462656921528231254678977533800814836337357244917522072200874609987914598402260126052144404631436052410619955484326211997651241957543188592930038767744063574220259147847263939071137381087236732439818991589632197628357561024032530088443414106159979622360655584481823341920036467142016476161011173003946243535453490890662782791119180278411529166680599726482197405986442987661636721868157296345522483351133163301375255516746735835470735445918115899305652115921169313788789491817182435930115164869688511029177659860129289137896305117166570376632871274170847619001840507093826205252426219452362776857783134808615996002672823119174080346005021433171039571972813220247864686852126080116185931098836595268580676160000980777294493000954453948944165849082844635403269848209576520785924820378851690551287808672335920231433457554716912649136211444038812800248500467449394245311236459744652940490183608970435526130796938907596152713255980573125651429965952352767723522989975666428341414751376501551467526868311196857799476911550723242339732820244061965298196880166107092835594789888859449652022161265701836696035846555763603767102430351486414588776449525071981580301144455621974354967580514883023167377901597520552859402038266761968006084159202746386727933224426633302430897031349083948799056766360401149576102827098224669136225836188145380162190176560139947338904167557338791139526223717031135615921389434541301930964927031553728769880357337572918031216994393241689761122433256889613781725431740771245879004812377617431956738612155665768653279265364597667988122770425696653170331459295303992878636619323852040763685362008153079883606349437846641215710650739658366671045746362408143531622289496789535630917481862485614644173002230664812752048269895723551915883800970519937412591313250494691698568875946288207103364348596428958842855088505861800166502936939254760184151114327437366309687682980450093183037566185679832288179759981960516541577775142139465107085280254134058167451381338361866257658370650547647473313125347280102724552341281114610824546121345470240995777269025955500889194157516636468087510936623596656757256514493838536827734453374100323855173956142196689789696332394941329873004432660459439565582357973499535912242719189151781366314450476226030195568959860284701337027453481490346733005734211311814075560705366028111199886622431198477800461655508833388242761853878931956328719232719943159135247420950075189783019958348460293312912238083230422713822179426988313372779111508674620852575579075583074938430683359600811468148005125847272374046115455150800073149091507480810942140550939881048915747877235648813597587646132687539839462400375635580069235921838878061396185345269064989013374839950601733080055941780006872947866668066220564721695591043244498437302513661452500096035152689132855084248277846778260539039043019589308606227144522497330980556914327482153229279840781819642645654329587867982939022402013314268912573782242517019498317804146963730408046646272147815625646222272315096899921077985306498808937873687152742070166326190646229980288634362457040950337087749747836512486944927651720154115520213190506678219188508622332164266925724788438958918906478182573947720983106288039873285931132942339012909567999329733188141947491865622646300271788725938274228228734411998912142230786432366937576966653934466078769199465860579447874454287261295208983286302376637838217150268921544488538232032812350328306842660004876543690645040299534124364181319169438948458358984307299875003838358165388438545517239264074636207042909799175657697498656265466998319558478331423651532871890768424031033858075547118139889160501306549078768147775769629987269670562411638211586630413894826356469076454692046481174097069380229336321596760190748166037054338609136734799113931148300524975211625319409171756624684794719257821469749802036882028431292409794430546625732911120278513100430341655008032574081630180412887091840186604462238573496973277229253787855271744292137783799206025459896123583578578018239445680567025878083722878436002664620942510350193621223838100064627087002257385486524212718096630164820727311562496486683851397100385989464890565698635123409091300600133832355709420055961687066410890598015277574875901598081989650131334079174083610181818271028069445615623828754019894226691389256023721958398859320227967043671254668833663366619268417198946920198809952279844833214738366222462437117766486386389917422770681505014542361548666297156978536637630309427586937633602927277559171170850114614923971394079268977720832975650360342783575105428331408413371944158326524181275043188053907430679489223337701960304635249272839372107450019579093058635761977654203985278810907099700007006846377180512924556899112257556842914111708460509094543133409637290671830097185194325422507927032667819841885800033286121808180223369099514763281097569649761396456246295668171752802604606784891004451975564677511179712035742034446890304748028357220275513359325900276046055970047123919923391609536556130077366224994787146650246937156556657806111378363068954328744016012858600785147779488219045606612132250690750708984767002508102444401835046220535860610182799920014961974463348391773125474752510522442451776506843563371785426994581051807971063813782002097419608454078350423868684468158100437218853369185913493616421210460292387186821132884370411406830384385031556436026246313857064077168569193465143672476467807051677585992737953195228027062738337394331187688988378773486334674388692736896573118032237689025312938580602381107955410758684079872227985290964793199445461349635347184813669856852227357584644174107370475790105826972154426962076537941980077728904511806692136840805144673381667017932303897493769220290193700416532145964430299826061724291097835109789984410726372411671964119316981791735204509580259136873745625422432485311100153776632704484155925671303661189585844144249026182888770536650035993764244352931040700409295660194820155923503671898426687420369743166439820033083293348841100458352899630763309947328516763398891042647232043236539163365414945102192931867881802145621850278770214855655546924037712929625714553670142197431347316879381552401291303670488305779315946629712418923633134093421424831355104133425734575915721553682187098095239074150188494392287991208820757765885196365944183504960078394990981226646970991983827129037743379515280192250330483123008563536420084369147851906038700859303408304673706715128395206128268603850387936561470741947198060183936077698136957755539830557268858170245303792157723540472688043384137917734055401268967227313378864166782962853301890104981248224224292884956984638352341843460613239445701131922830492019363295566526017352428017545543986415398865433548187713579859510681007784605309074049698967696941726603770170249101711123063205201147431080763950049330319775604260337983124095723777113096793322757325906508839513252453014894624140932809515375900039679773258201794642976080706542001895494857173264368315860911647280576505674825793228374709324762194677696525484614013802649088392726981186586194653158088844809937748566876303751725037881419926488679437550487444655438107121396442374684044870465548938073485148917702792471107947033092128507622586888554130435632235861800501396360736113280084790616096979435325668528556982408411129247078691732583415086543845631882077771155728731714157612363166398331906843269710790227218331075660796841988261356966484978728259506690991168729580507801482874369329463468640078750301799221762201576063393306145968344058333802002865763499200519120706344377220409468149112890402737463986030248994872710772235968842211691661419020351637752689779204301658478007536516141250547155575581430526231411245689159508596162758426840173231015987447991402529433733262167607043117907245506934104782383616727631005236056280944346976115488716463608365149428333958158340133066484023977397307807987092236570718431125332476050258001743679497910244306055766638903844462322394162032442212581360553167786591317664618287367105499056628222731407015507541097521777853066223210995825799881618229643450979068570852621315235958637133357503954771943764510864752881073117646344417168987438481475996863612289416657878066645564603667352320007968670012810767923544554133289416862604606701359851431502595075429878202841350375218207103097323198083599609492913183658864440897161134987893395400995648553121808525101884383483189261474149071621985473077418987734959720736497541439738903844560485135048687228778522579539439768940997214131249622935670059349946933760490857478148703888441540692264541894525463546571262621430326504842018145968947392033013938125486535768514965972844311910928488009194717427514989333793798061010637407419519540711416041161790684582634166958774973177337768178100998591750015726587517567245116227830789309727653546115738431038140129645406406924873232052732586402471261501590952693465422175828087300877043415374270887739955893386878851146825465870430140887088857493860382483129551866391441486054070269576981013599377811622243652185970429389151079844739401126406419691063907135093322530170175877211877203919023890059533704572638844035219504826655913849973054816081663261405233223425334767129886065971542875363299388462480527651095414488401163603714851883234953449448467569119288780323082219559618510832787949912945469570546162543504454160544444428792872115808012714840388653190032538741682148087037791681563793790861828295759917621525107246950142998048387132211186647850447115675067509862227691160059533849047654462424682464449958297386844476777475041162695801392370193893074303540323242393695498469678209550388437742449260794515886005161149563822570388948139328055946851324568540764612684169355216065442426895047742645708795097440345555974904845585662450825462535584256913052640347533665259858667233708529895149447166808062570141864278296245410841193849068036564389554055694797775710325125136879118114588174556789996349526362481471724023762600220156048628144874514181018647902232917441882372262397313265508223567836492493153542804367758033791749273130528844810696014875040505572347972651394944162196791193038562197111133780775125849836330927802018062243930624074142858184161021602900667434723727128540618019042564112480418345040495675858607795794656241491068706168501344374804002071614262660182032648143730695957649441319294356506643335604812851543668098737113168787673948361755621310055840242629082228055809401624865644077337415499039254282243154732604998399245814947940296442676538494311077135981236718788789662454813616995883388940314922673526365986939980991578779914982493436056358516575476142083665719429966759148056944051311101313693825957631238258681872382053279278706535520653256825718968797038616580172495200969522394800499277734558643455146282687846714015223118739288932315921688102781677793623036408677793967716896287334493160221622798448791879284945875007292160124621208010542611971612469643528696624680874606830067305124539266605801022963607639870252064629930573035669202199535515562778146811250143610842629407606470873150438063102821248398008596399801840238775307229201857325535500300383094344902784195734595553456966142080745377720129482962281662552209480530721935880550655069759117182485563023789305256268814629534346796959995883219245045281567183711261761271489764510928522517267735000157942803917520448468829141268778866012498245286781786263519264925559655618944245642406017028309189194130024203908297516356346444357296444256791696210762739076793331889913650823591271369872816554118660999267545519637439647585211367499700408385332403691806902419151184054954129594248720106760943438754738185234701875784613238813423677027383132930565643094889703314875057680950296573484110494645492499797263915834349091677216178087335975184003351444185308441909462715116110463487363290845180473908111845130083160588269493287141079066373356328589431038376952157506952137644284969670557315411644655063610806995805005312684497859438738249788617337543517922270568443427402092069773766570200300453780836939154557622425397937427135236531625811734540871372555072023455526563486142690142750006078405092046325525232203836993287229593556387867261389563663970262676778404187060681023795966908975578721730118913323861401366774767643112538970821638798512746050017187403391581238037804332727797190162214710189476471209360464433412069398530054631436516535531576899275097057182159664324698101657263326714858893125487201624988376024171966399837342243753379581173211668616863009532171701053049812830185794360396278078179851204571086928597950831657752980184155461355815985073801630839248518324010019523322331564362687514830078538442610734092378433261104458338057575040653675268339466464307554470537085347960372047735287748108808577717794602406033317209408939333602207540053735994802545122928391384123285675725644321759103372018202601018685576018434541472054578173825705848835904949267058603694843864456549117679351562214589086114695617394256359958436426492502225835606285372257250731198724267461136236379611725516611759119835195741780441630258213214079017809200413698298055393855865496964844728620146836168817724389142437312220105829259274037258048324012675858779325693296700597497714377361485387801344153582379878254173060047715886666069252000470050628710467178917008261947734921946406177379694823405732489485542170803038759308853935591314716181629245438655618832995829173932928381677642164161715175661275133729953607575204184612548164584150923770103334493287189252879829213110209233801309744711625851701065654805489560506771628810222212880139281789763654659839283718555373455294476354551575202140892311467706370321671534381429155198211134868474488723063280282472989833669936320120965250596083340160394466864277283246986188298842963949807389856804608733150822553211795181726665928170719076526342865470656639259651773863859037297595324700328762937497352201743870726422982574847556077688567557159985072023295010089147362584372763603429194035261241965615642929605023672615310199308109797643696681145001823718988653351126832197174886407488262550995569224331175769808286135210275918420539432466965363103982340444383047609026700688911780968966190222386111472823303238152952556372760975694139352803029885300806471192916322613223391160347128831570899969090531838946700735223466463232809106947388389508140531278797298027918159044294485228594368899671276637161799480964997501312174268334229281733894535154389193448923571713299146858597156573578577462745153112892253365928759671341118332688879334173330571028117406398338253086213489164736482568512911561633449923088097573650020447914923032313095311588473507145706999845117715467587885852014757214238423951046234158518276899536824722738366334713439756351189612634048680103058613654804088383869487053577914218443326628506150116711188199163398610846416367386433871594543390263593112549950793002016157256041383259772532199317408768196560245477196202656512116704424820288588339968603426151455427416277181968415399266887108187829905048357451324346154806969345207244730573196357660856543209814395020470895706068095268510376558983854330494643344964937612370581946250751709290644204924878081006447313058691528741978930887003023479640922822095182006790308267637147330351339155546470700410630811816159000366634854953287940838768336216900451183363618518107611022501269211753202733185183466422889882645687085799875920439304490011354057319146865901072231518761736361782095500848576632618864414457108928085991706089177052107990900155001642400135906991047947314577417580696957218832076236815249314406772808025948787560525579490976145603738893968900644252745203540056082940766723356331486370558596366947533293055157431671694144037713939288644764284209289402478891371050615113861240210730135992894512248867255625844264172204445741106022757942336399041389641484358763264144773701886693818922556941135283635805808328732475002379850146821356971281665438839917934589832333132836837944314745681441823793952268766989222799889983828393601056676278832174218178368863468407373152196596698517326416403497226690490663046921418493864954264659804685620517029338284774523563407772272766716593755191932226013727453016788852332708092388633607579997566472962201854820869064245451728646089082595997587039774608062101176549880024713824510886904261425443317923419811319577175332631293529899068452906718638473300476574420362086465147184350649523150203433967652870585245234997497628710630662224281583916080302232870884947253701420340365779334782118300547381212593018081510394591267544775440533006706325817897971179118575376534320798898080079307382828767027397823461386439867957780628120540404280945526550492939705195419533076639209022728960983180324717549057649982021187674785700879255506600992279638538918147104252409987580941078949837066069964740487054491880023503023880793354227556879135751684927285627570229569203661950849357662592868966956128147980772008736474492127359724358527305728873675810309852810584557974158240662145707120687312221826306912607075772644605853202360104389468973823484872337246359674569593217797478117226206075893016946517877076798340996420377449455854803020518480634729107178803841151316616908850417515532056267577066683345250526649820113478902634776818233097694531807798014110779317926648557554220639025400997635325392485853440834320351525251932530129681574703181410799836994687046797400221462680627867622774798964173645011971445511261048876921041105364011685555666587570376886635580121238804091689113692566382623232762734100122428675440574073588771472487371460492084221042195636233320759236904013662317902081987055280000659799044747563270532024598405440648966042180168898068973696605913402992044203607012624191505975463707919337206913831899800197930912189043513861724459928225701800446112519606147985581019635892505185115537254210178333602027765732770136445150308036625760161061056242609440236744968874178416794573952460838682239440357481696412119712429560387321345718055324414461182657208100270567388128416765835292919126110398069456011532728113352458802481136896930613984625331273792382212149089223684201531113814233301240108261683675588485893507623050779912332557353658675619016682431690998473971955049484272205678608112365639904140963424649025154919177401500969750133926970634995927552482631767437556021208354944771221113991258809697372460193823728607605735060929726333755562147618367918565153756142542596649075976155279076822489493777046023470272108054790129906434789956359730393937300774465534436927195120490208916571541967495758338946323425472450579249153795644010339354500134767117689115253254591644418430159629176401348514049240724190443805098284191930454523809930829240688805997957671126205705816080437621490091804457779432200704762948319430424462402779425841503897695925240958673753714585810051036425823093223176521925863655176069907047128763764694944144189174934571687176724433190502061697497031873759813879721564485957606670428145035983773600508042859794724511121971056655205239914505942454824793836527706297076916902851316323329207495559238321797885782206944340234157743511194594669546205373582083002335537476221352803082211223135959707022270777414764376739365764070985646932950609239212074955039622453018183454939262087071650104711199150315949641231511908421059614401743308514512829613427603331134133937361109630083319615093210705658857481989196879696997596093963950228680974414373133691136538128911681488189697078429582634608084260071168085337820025273529011438805336238928854832615925560189072680332194263104184017118619169933733780821459221052053669169531314077677803085154341195188697099273535358457223840803768108100720917376378578524587573617890170571330689263704716036126851017342256471749640912196781205826202195671812337046327909647010915376004489968210353377488983062198163166525755923749502622824795626623250299660526362407946977102538917709163516438865312713583256104829514548546622261039955603476083680684019726895963850813709992358422502572637347733615867395581395374095671665730731287861064183485649063815585698406172783366239871709889090665575676437926230611553335697544770866830132022412085118529638567943080748249573290295211483631209171898000014633307202018042444248350528419429088673434719502185221964103691709888910012099267353486392146494859014614261600785827931735577489887274349945121538652822875703162625284470776438600539971738304280673803290890023714247883361582819898978524845948683577320603648508735476307304030927951461920349336614934677046469686015537088493916567221165041838992579570728395942026343193116367507914027834616687575776481526277900487155032376227511238112647225565379912071509146071659912814028369990870354432576568570051196425687921697912799631413785382423372006605543633101041301106427916764030481810940494696634169423275329471778501528584296322501746875481467095762955430317144395975545845707276688475071069026846698023253081222998021793240519094581200918678321985671171242829363843268107042525787200954289053223558608371634313385354765671758020455955692315708014810022181834057346853813332189693778061474985610670325232655973640233099930096676119566786124916178675647935686021583340648270703328412179466020599167680051268084290570607417589993946093023869550820716126892608214602598848817584765611585596001111475935373856938958500750817289675146091328519994854215234115838896182071964758256566945963557546924966323351130599104713695236002022512219311430237406462491017140302467370813107504141970370876145723375787911953857765844814342470569283404862408164100584643253445308418025560317692513335905755102909750743658843715294216646444587059560841248015060864660724970694285911567944049847418540140531014476073049719293747513898611803147647054912681518127087193241156611548760992598992910636845078620781042898055378622314848849233959461542524096049637718579495893053619669810883398557382735787292661465482157106602244407221563657519192564730741503968921702175978828628757081230138342217282804281274915676796388665505041671952729185860225483950820821448927688888273172122872936809631827593982027561657457289357670914559809282350029021124932264805831662417999046542347583542582157505855673875130673302788080271812848456309493935042938654556180275175955439426024372363469784178263851539977283036502283408760634534677089031581636282950548754303714407417505013214102554735945380416593215624389064414986487223936123567724759792400383715655456331396727099768681770684957175905440443680823421294593331453118141231894908827401435781507260345988287512417006379839743901605494534220161391481223806906100490210816107802864025498040287256422470322366568627208084945940790985146698358729722680833760517531220775691025345772278840446883192412858391720348745386180451625644514310550350002368370282424200150899793382937573639029896186330014276780288741980054534756512590818669223150373045987592634382554247406441458614029426768834420905618067840547748935626883820840162943939400577795137028236432931365474631987914550108899437139709400407481573276348532318594405364677588542682157689089574158804504066960478620025446612582937659694300921812669630109707515903262468746556677501704706103276007302430739006823575713597052028767446519831730014643905088382699232832153977783569440069390816193436405711094423705601610238342682708557074410359093453399431789201768725016165218261562985212686573121711077275898426725486312921308889073438713611370353390062361388219112081252408222870137983368334592512840355771578458647972628976082832125866529574701768749312172672553091470733995749778459180702504078692231996250566444484107024608699322285487228827788595265217079740644271984173996411907347165973561924027184851886681369061452966253747109298884823554255174882537234488563550355334471600083878176495867175260827355860315155686400839910018011283838744578022380178593952602048998703510036153394539184849043965935919826469700986220883459298270795290140464923665526396257200218385889678241230614934476924353003918006933183438432585201164326335263688314295525614199044132187625746498483829854665258695298513718391519977550767196034361135140874368775802315396912542965206939926543241648191587355888668570333409742923276857843213176553396165960232198273770603891955579223725938648130110255553673713331023767119678478329249229850517181583688063178934818913076511546307499535639486107575700296095486455576757239507673965072771410142615368066570449114709035881416681224854414018343238084898181676077398732015740241570045001505743701135268369492235921521046338676894547418249141020249771176424298989705719732489926155319071776071021692300151345195590590237629104490617567823076563360451475272558380364681338173981780774879374497806322950165941009312591810269111652156861573312676365000802016274469016671774634107613869529556507168432789359280715363667814868253185708328187757922008347467912556051187028351765702932646147707304854169132626590880500439096767782813276162605751245673665600236930567014298509294596121602608250991689885927592157824856647040132827737526159822510007913171177527754379600587496774509844527911258926716789908494764171801793491362822455260896399793789834953670642979553554073058308957906124889839349223298259143085486837642421910920459142940552094117738299721409897189788271345771111060156282485462531771503066193169981450760072683488824033181623004527538013190966829620721784760220327996497093466445726699611482336902690002805086402434300329596788092712314867003506348672855992988500026201361014710099620470716946222327169656325965905982502670977846450682989333370887306990421950162720292408383622099431417829317380566805207476530461798458591205772944365724698841478815049362753962832924217277197189161484467347783409709350461931933553646047309646500700700545786015409092892541412702539212023988651309585353345060550891929074823836871705099237457310472315331441058091382472930782161093998408644798089933457964315912938116514912437381207005269094841109840364301297116593846175934102397973548592316365601872016029248982135690507905785533625902211299561133143515550874307658900392562449929166424975356197854052354455048257341749709165861790164277828774661011527086902956213356139888734074987508075361031632600058493815430609126318326545936616474736545827510703701832771864698212575652475724223552911140313789044672221090497784990653450244900429600896037191344041857661720031845321965984793902036011965592748423220255393172072297882554627472950738908846002071904241851151147721108845975792822974190313175488039825913915235139792628531895483718086715094912526971207434682069425798654791358198189498857116413312702002745468146315997369904851016583028612883228632165617597967505777972869853013741630777580862549203371352471333633800163692624635166138046429123435705737533335266147729721755585867947965121344086289020186306159987023536103652331171247430634934782860778931347825916959940273520388090756464108492716988845001635830218656939134918885322445486904143455963882321216027612159172698201177767265002263797279099790643399171341177669856634347287183489598208667997121206420088646870306606003225376035078163116082634202739181751968566926297018563754237332973851575434327863379440604219274242108361378511438015704794432259574976895973578469799710043691240282778279477743507319940518930321317521165223312874928352962177603538552253193557723600271618319439493472173779706572920677719447474565815474649455288481836496920523934448354422284786760819575700237807439412427176214252752440236496981737206289297290788098297932094292114530804860342285210542319263187344537005893105334792027224484272004003588393527574135890989218724513088931418007844318554735319216874110375566423540686855862942784365277797144521731208221356135243228529579399459094722445597663587017933786138294071119155022786156357839271863540515541537400782910711094586749179468770618148560308318715855118439840444542249474815654894453221509762735551738568845220742499417431040882122375387228311798138578516790287158641838028364209307439618159894475543292148990716339305804697522006344100198446598670941217103217749581741416055474602309500584415355582037416649923897106261160131688847681628362748518935968464151550684236197228433285039371490436390829194521554495302624148813074855678635078017778855833691493757614906585575093742965052167295124203963774352484219727226382995642870005340933434260035429341056002446416564975373216093107452539573486475878626731920677736869716378003494262755791558692187092696470880973013086546986849706770764056833513924483005072394838759612684242169455609705472244139271377121664466148520149511793981199534869860958670502685135143488854790134343021719962073714613832161174927347826399417957838603978515554077240357742099986692145895025235256139905416003225920683295742280551551693636352438670069156869758577124198984525218165908882374917236673368368289449807138563283511799591994756311267832923937301805437301439608630160894741279931665841426214273889877061881799573651231531384076389473365130746993837567873772652862549511988238751902348193858451703515702569640108409204047404825259624685150433130308743683713265991342936947690339861488829507804254407321067441144914778044206449339924338171272574848161853941717780925683831084827119690277944771025020164677906937529329643943818996155734897315509696315896911817316670932260517656089295756452310985091555250271182290861973716659476861215112821493139734236160143875832325440464026395112352739063035698679735103428438303382158919001394054634561842858292834687533612915235064215607562870225510632173981571185109846286474036213790905621177660419230398999614430306589307877595548549897351286040768723673753110034510274557159058817223797401004396589613518089479147016558799151840826348993514327188183339268314857410112699825270550104396230013427240538515270552886516212325402978242404729131041201809230285763576003265414779332279125586556079547835509350585293317577843037055766709643260429187515321861311867736331321774835920878074093347406878760573688141935773812759791051154734185211914258011534588932445555058820651684102284272156417556032315436811996472781773896461953859242273065870376055096372453113121454828401681440653861924875981034887873511160266681579531259251431665915063081597757197525792165518116317854456208596819490987959752436607863248525199954275364169903019416910689753584446918505035642146232867394497408052937301125899480707393771752403110093435992238714140868862624818722773258210017414977975954123378691138548751028504917975393828085911824773483402117058093511426476348674269122689320643500768531984326077894298441247112099852250862166643790533454942747248152642370895417857766809859898079845080764949105009305163933140601264589654014731755456134529186540503693089184498868196745034568250175100482289192340483380603000052723988032907027003605979736764774064434732262337985836176901329296730392857707280501139598411068167073117856472246953242342619549412910048437592412357453399829238325645760016974400319094299976487465180164289852454445374307851747004037255435455881495485170807675314526836289283848869060097750946351752116389608835333516619468086971225932129829533847306992104943872552192091836505737994585508940010135474012050756950122000726149049458369194422045784173183474197159054613915764365199011833201909637062212738275927531557726225492449949904983613603629069081562450960276275454008423117226968481722721698073677322886238094368681381259875525435949497534746972681934787386080487933788839201531630696394105068413582187030275542842079873884889394246837371641321975062783855242505405251559944242852355718116227008378697088025213548684549288190356097166813181961810972674522412437694670402735597893169385329402162137267796808515096581850989866316844805957965641576030379167436915442776458578953841621444603568401907499069389960017236295082817222512753408711907037856624785946000222594567034496742477803583016725023983611255424160798748535105168841826553817992906119286083183692783575544339619029463231544255862961269771861827621578313739704177272419241076330594455725364378500395600719793171410543942184079592786658099613452776826051227943959353904734967853160916982159161582377410024834241606228827632619243852715990741692925270121215594342970800477029552166369862999909365489845631202241707877145504668194337440347610517020865439745541532189197980689045899982286754534425480157058858680350695063881545308814884474974637228154510076003692822203052613865379033371055744694969677840715694122513866864898069303627727000800021319362989234922936289957943122120549972416793319700434561192129699453903022709647805281644842998227047877461581066910482449885219058799727231544749854725869171973798635586003659667196886271900296062726293455532476632409929522768194954774412966578327433648114849430847345603206114201725361387312890231311805927602603109552248209519737006978704010935811679399461618161258296592833955674043241781671864192522980420113631696075757873063662790525303077082137524109173132544078876991588079792671715001469033732671337401063760862432066128653018157896130501678916749413620049720711450319856236445853661004800337952682096653150906519748309650129390305768042030012842080270169800773403309026461780584388672151259832848769748891813635122860668325687153175688140154839254865434972106780123373711569435280609640781980052500132271888115300050070160171400071193046975599528233983547161820975290433896824722411340436396681169937466463176491218116945553067288253771307107507409299546894652002877363754833265738701524235589190247168442560734099494414023666832976168252743098940792502427758504233861589352465815359967679937715221885576714774770184028169705613838010620831046597751682951559301769389077848101962694724194506192287949030927467326419319480776029870804884665362772058623843675404155780367144742232774002369136456418654834403938474717894908840260602063444999644783066938740253781609933206640581823203449431835120757180211019979310786490859933932890532349274146000872615617085927753234842681069932674491513598296968952010795932860765578239112198874599454027091054818106086968315565105587815260305635045990815915317931423780507311812179273435401845294015232797522020377918116553869109428960009497524418757089252075220636450521874263716015538511866934478078433538915765750100051581257629125171869246355433257031190601370057697927454773358836103410042451592316109405136415899767528196847311837060244806585937128557658884341675088484140168132105367116087130416096561072072621001796072236459471668840229481605509952193669426531135697043442593112445293449269300424775816895493799415728321356854869872875400840772197598577781557026892052389931748853255657586130070086088510057407803181188617238844619482391192486359422985742021865702403156363507535070189651115031255931023497410254329916583851484310234515034337239236625676877291535793002764883779294705230103008044201220753377347663266341089673934204203430016473337466701994137808541514814295519552035159734809847302724732210739447401540733289205210080251352147867901600876750198425732496120693726571082215467822559187856692939509538675010174113515222109647417803589022932232376162075575510242562399040752576754431243519580234391843733865563632843119413261715861219082058212133661506224799007231571477774304158129977165291917821597547000010947317488006856070460319681891253742489265454527725541891288467208969128438989422754032523926193796662130077160611028656710396419483993558204092040431590885123216902644939522260106658303044628965854135484565014737217307115077123167743262189898027889755622824695074530338029450412432214781519673860217720506351901635908638983585038800473113373261902782320018490796807750025866126009354818688579137147329122380815224165598105702579671232173881187310991081814928343610567872546050102522819376599255266712100216149505132192599151090817175518034394255327780897764855410995038439512514618033598672060803040862481260947761447493915027636552915704991613515835958065460299139551780847958925470503945821614429318700050944324208538275262419807693227973326083689318515865789412865640839151868284214349109901582445534656667973141494334776195398628814261125593098946490066449909977705540525401463902483056937101767344617484178028689684231748725301395797388203095452070279797498447410042368032472125372552532232836017309144722245165600061027945494979603561943638717182811009457396831539390315735773010432328455519313835084115841589938365055160797047380974141479882530884569555878258224247955829284213831558754619420488038527053876933170080826145101033968592905617849631312659828739519779707439865045441204860945968228391505441467335060812613611302647888558613631472721135894249293203527747189153282855786137081941758605698160793981263964384226934368297900284183215234097022744606881003147864821098851530479387143706748187938049530381294315776041876361062525568483459222596461998063639641469309576357179883856097255342517113750162333185109694660278645984290989990262302331606500759734193817415306648139884008338906540439000949178750839757018308353322125030127544103772185855737460419122250009764728067689690526034484292203583684778084476733883560684941810109180478587031049427705083182685469897945111630480729713364502273717178825323391495696516490615024436432826233675504493150181299012561527875906807127987969403076788700976071711759852360519916220559487772321590235469977241395937088989675182733936646667052075851320216403046524827263203667032887399133926781373010024384235220291991902250794727160434467094442338879580095566478870834927453742933461266943812098681257999757525218772795287384300789557384313853537770602953524127338055088354597262124383780551828833239779928096801855476478859712940225941512433495389103268528137898951149741230290369078879182029703118272847029209853747736921931720514901201391047681953015593251486596050173051635766795194540062911308736099190174497951751586490976293976607784181103132362139913641973215560490027344084172978326770447974415035505764493521647951846116911336553380367711218337830501626372206077422154025803798013989400179031082452287364852786080967729735397294813985944926422312107749686411252597578084348854410522890265749505439836086877826764120878911731364544777327473277724103424392394273942402693619288790701950815243231719200036729699802729105043414337473908463364651001298404001663931115721817307587557155293835367126527629052975804068718370969621470899946722945314930100712661921802477986615257005800955719847735020721578647044712448776337598392413902911799156781536027413290772753586687257216813292549153819162779768862982651330623189380234195822596751884011184951164744878715113262796105620864595928880769336193562415898014673709739779719341973582174699451468001257589542463852184165145934909715056424666115774319928219143760358337368137134341918896146510577883518588693777234029635690106818648773375249863725569550283558743671789351112921200855649875613563244312922560122608109942854531412255308905521047700758805045015810004101453003023817067186608581453907802951591859229678710565924704421831817604770725685347759368412047963095732522846989294697803274436467902109950778015821581797584757349322877914694867842977092361815727146069030811601564471928781222972534103340198819667423198175881793184801896907693663893172683504736150858257155330672760197700164839366568706656325590846224474792674372969005167910315930251670847387054901091213100991853178344743735387625255923006666796940619277118320222028140562923322871605239567860101405660008535867654727799715504432272666568343187613338012761137216091691637843792370267885970759575332164119193957204255504487808417949023831454949611000228484745688802084312421877517660127239642444231451962410893967368234069075019402870655550655095554081809168995367680284683124625294250727215657540706016457096007563639869124652068328099107255254428468657468319886197595678106056189261614598024815290568047070055881437020014336820935871458526229115879728942035904878605330207134423354614818654679803808595094745619635600928705054882659893478506805907347089607865824981626161190830883218434830630349934327046110238832198230588710742692471256867584108554048047010869343027977769285177962762814205490571081030279310494556764211031309322825919892863919602587971175932710396361377917563505852042454771281883878663879966316768488466403339260840130834568401707390150289721982845227674090867173190122279289827808873855053532987521244090448472257788032077385485399497826759058738451012389974208589812472497692237846598934924103893960816773445920740207496303040291565249464309860746381481560823526631626479599047533164949350473832956578216078389896096411728317966636141286662875190438553093158582765144814901224885449895090075920723282513977328323132760023521926181701370962458349543316924236524216972184349037127468262970747583558685980617290599354801499364152504989470510551951499731601478256121467816905307477564458806358031481033338355334876767243860792927126114428217997250194024713598313062710839045898335799453588596695088474922315103444935883380638664716279007689132764906049878439718975973104384680550717693534448856746833903097371308933083174119501001470783478729494440720572154132713723661125411567414245062425992405905914068169768177276418413705096786713179059319485274971871369228851478915464391450449716249441841515132971707072011029152200729899604500255070670485440021875269341726649058860478264950756817042289110675265383637682173014285545871643391276378610971114586872588257271947818577436198872549948678361080577312677251815614137079327860070709342203367367161915526282708623424122810060919225550302825817463605533102955239930031157890495515466222681410996886645798551252216954328294946819891810687226260416817801675902766621497093812371925806296606504424715043722323305097290504188127723463654295371639908264144210334607710307739621320287467766210143224716393681409470632459753570495093533971566606957277422897741397689545121130930239706288216961764785042105940348598397799616925629402103617050814089023358244603505904992183908907742846319415889966028984676773429325993675494332267729161471645090664701482571707106698800628787214284993673574034200120438556511220946866568583012726493269052423743157017634769957164279842622644717954414470661015345562632245874989823768619161716074465524387334759082022753153966407242366642786781911739604448856002388353726980586010708558478548682373496370130076873690567472226222859380212131057841397720832389049236843750368026179294718775181343009402161362210342414718413605388356327958956250613318362399774822098271294800998792640103704910471598028228239345286637170429372617649240915917800296052372311316873455866872124740063823973220558909669541526227656188659593173574141843178508775823179419323889797791163287720019904173449097649957392177602032385337375697217893059276520297842569888967600928980762612671820703799103998879679178432206574275073666358687850785967983042717381879085052975673539042719003220323206716815564420920150821440142261854151506217765276678747865822293726208730962657115036447517495562721029785157851206268987015044574899846965284640138359507473985598672117345430492281660679549418791114261647514055207402368738448202609375945178811748349801737023733162520538420988478044820023105906058643400883596475572288053346230295911045558938836221604369911422139508136527659464436881359676458260051889502687365871904638231538700815344208591950700391731996995888167571309355956646917426498131203089208256116233764939991174888795835619204629817859169384969366024002455420195190183134474582430957242824721774605149465685490202898003910672332994654931759858637212691818957646307914122798300796922824508901924673656126455176925897647798267060043888841887058034779686681878627841234693585448584732550025508619085977947458540263673541500932426474835508609106432659640064624681837786118047056279697504663280859771825049893802072028132800122394923603823748128692875392648846361393690093645694520722666440266546356337561354059182845890159788741046624433836724189505860300427790617281601706405985632775614134434639004577081522898903307428931745785290277523032680305940356246132978280404901644434465189047587148500203329993145531707115769840789211823562006858164016768564507278409416609284939594638746682385405896455164441705375131407784696193656279921160685200171042266087889760479073102265753789359576730179524169263643459377422771047802059151797533056004481330390396100905817923362124224293190801747800132092645169249007191071792701533105541726128048258289320475169896673456833961834907738952316529498334458927782429423363888696697011728950030020941019679525001296391358905738055591247677275790623087855209790682809866844682540453804912062274934717753056120217765380292145982131268558609222292268888336193536419915360990257731205644636693431403099432393865918679140306006212370591162503982142089711054497328485089023557586247825964914056455166967513107368910718263382647478885378023270839146083137211538258660257748210129826889821364522884199762010651986694452936718383549637703570498386528330443257811714218414428212335345814852897888339465112957647505046235098923234812986726111861002272952342116334567918739818866217230587414941909931468205711474592840051851274731787212989862726449351302727724740640996376996545019265053079920804415550443689726549182763716019318888331609080354260870787986077036291022304201570175228919804403971455554538657548770283312253623292017110346846199840863662088883309167332663854034788035078362192920179703738680277136213989951840426553095148037173171265287448185934036482556882324171986891901885711525807896780868198257054639218028440982236933278646215210060108459224477844853373047081172426397024423965372767842554093220347199232066779413788893916973757893966498265121503371867625111581700684741480219299101912206383058215176136409555315746591110191983665230817864849447892312123074756270916878273904157521850424399503757126112671118710805020161748163818793205562610502505292853429312900281075771742038905400598907844256016533724357290105130888362991430168212919958437583232849508288437409101696172651815136818521602099151804151135361866958588761522963518589740432965114255360542872592368812806950888725121474460303683512272620666207279472294003378328381981943343902614511256507994316005964735320399464919485226368964502424846015652527024296203768116920164737732198998928364816080743464506185328372211233757013502189941363313566692944062806949329731984448197193156672856563417919719682362179564877214532389593275245106949642436013460154893785110171371560337987541752253224243266723223130070159342788325417960283520429652149696741140268928911111855572042803419719125140484670894007516268694033805290119545174653541351861284099508785926794423166466101643438432905687757636482579388692601196793984415249401355965076279956809006891366174299543384013087474594696985718376727852016068411250554949140775230607609039917436831246810804853395530941569549012609397277803874218466656754740402007093157057596430439471864455793018881517925329173323509731595594308817851546548268417552678887528289254494045018778162112495634952646155138486139202589708655663987803092081161016329330128375683154161035838691109237363163487460894653180913219511486483241268961937853845510284761224297204627113332373768283130679341267702086389937798000527316990402131871002242114378557297563348508443494038826217396787915490679719471238229406986196574095189148749955199279903820430508143523538662553876039090379252225188532504672883190565072412011681773713727302517852417710394594064563407705472988772863547403378324396574168014513372930825750724628948604018537844665423850741817907198029138646317656573326590670277282936132425548784074458331999003057600014351325663832640953855786063219416229279707220132467831186200795018484120881635673781726785876492815605079125185339711479232906105699640689387663906325495976297821977127835989168998531459570827271125280529078769327578309496038776416448082459745885995473266610479782574137886391359803789662632270845053490343795932957960951082348161439330770719787692217343819913187544758420797309227000952770224414770186530528591286986605707759698357683036164227587192197025668255177393412134509834501558987669707575541103544859475108306515695131228223777486715936178313489063273377702337657727586156304643352056288183134280250435895267061119374863368298512704296568752772903761398395200521886491543132041606586143742071027591139916589172341653924038613478410835724499714812660171505813150624855117585963821237207247741630223271831755485664718271892607110943257161747456574717350141602756385377440606749498985226687682241283940179983744042163943238365227318210867909713299912121923410901997444299410550176225255147160793078696376443961335545925630425256370242971296305984307459818936212844809571654387268589870175614698753380548727948787565785648039654282153738116222111030200902335353761734755315989370210442195592687870706268615601402885946838018365802772432431439227073680882213328315998618914644033987402762700572366306925249448055430296356067874472986143038478466028514108568168308701830021467113240363767158882965755866460173542735584737018925807712238831055196837171509945861031389188623132762525951628023780804732596994972885547948568674079753363927853337116970640006943999373566154886633843512915035539146922238411932265454646875495601453490423971643282750552638657660415829432689319317833617873212644595426502334123412101955958519165854033005433581966053242482740329530493493329325389238159370848439177510166770374265839423797063240320292805900095214722464436239731819479158641383729110112322351720839121310864135140171968619236343739252960696443005183532723955146928460545213794321659972481028814594408693064147701902346858403399627039917489864635020287310431208083513321490112177972490259804628143819022280530583422948402401712198693802011223859031763735117316770817247504051355684836814585242561626175750856798280908614526134941181080733879605745141050666453478412371207555201129153225311095404524896278347232106355773037120010270569616318220834905704813940708765568189858560199498358165422697193456305636160159239758732769353042539792137131075968879370461480722932601510801375532612270899567918466328302326443263734979042344065830704600315562554608916458438692701306336961294177462748580000084763724666017701620414298148025795108032537680921459873756148346845079255965585994585163810815181028873807176964145879877561530473444674471788470638503544763848369899329294015450157456210835239503876653749801397969933322559008390062469413042756510005430654794180896534481713079554725604912605170305474018412673840110266154634329103401037185729284448429084295656282402206811117816406311401800936134896040366348335920812017879270025377988989529011606712185515219840412807352638032793403415133627919994294951791587143635761359607909114181145143797264357048938198769274055833358045756683825292384281977899439765700944468305856615245762130894130349834777639840090297225610290548655658150473368593192235349712673972401494315395622966364280419854349286824711038072079071368284121687858588849544638838279700860399136433138126423981324254384948494043814114659392226359723300987253343290932587335017321077917850665799189692466011731219915898920754353913601232101040528773738064933646328363274010569880896138504072824428363821620150422952615146195051267375140868209928325267853523872380651513307146022410753713727573727355181345317307241975067704695328567079721728193040067080719370470315685434450129059881609536822067508577170630518513170605427391795710583229902910005800065261112377564886576329160447364547717721979921232377848019218236175187475997835445206847595788869805276276905273357036916303864276018710783093821544426146729860988383802576559328536073114995900212885959231936796202466064884644072531560944659096003363525130296169654193179166094787304981778617205828124112822117276728435495534490595569659210329652405346755105673207925181095127863454050893464068328629587522407833829366458085608037593407023467846761369503741372900648305682702101179240061564602380081523238644234653148586101855655555093783753411849380322841945876322287559243670648808367695376818897705075629910828253509109466353137332676206075126771060915090716011644802789901842230543938120362135302169427884782969580497102253335684893453965327167037805328215915849153489703093510066810574488188382480299896111822861266124127506530324088851704100003636844993202352908090295885915458022861884827734213879392853491932522088343774914467978507509642003632709606240731568278498984277580977148506055913428801803016876417923062002165135195935318237946095941897835436246807692821612142225789559735373495017946290320292284852346977219964860308923273817490894295541249560354942641486323675079853241889698754847124315615101774750326493287003962644239293257337349908869020167836234449409778733179790815113594412822544623172311795160784607168264258254596686044889153437017323169327281516189277781878469636026699153943256760060008274830643551747007234401949336916453091609065343010921126954934183154311923182030959190816497826571820069592174651581591942974820550016093115960448611280321610831191190289318242880923504690016390026753154799266597621008147725275283954057504472021353197072833276733808742992007426813269143787249941767567278892257072492143125571660999199735062626287687322595002945816846846710593606209082096281378160593327304543476959645228846069930810147069694580613486488429732742542065821843951174994220716153880053646925833766990112165797759511711747528084804467858756773189586398769215556530799777320140123067425021288528606509624625412014007708156166984457862394523881690174757751666558378021709171031171300208700875002203948114382595227107338276010116476173145220133374203586060169412821857523729324941012247845663266613624530611427330714066687010819386035312613040509668906132162586865349130939878737804957895198533437981683878522741829386921405120115132815285100163588408100782355835839056349351470111079519012915012458090293478489624424320649450734953379438238489499804750761488810088215543738165483933819273279207286670939818671676430101024264029399018276909805409264062166787820978540957049478309330330892161803673023661808661052868991076586922245680713879267929306560941641347550393082714865271650799624880636427496299683298652799026139407693976442080305612644877168504630965337986476415600655768381360572357942457141771517219600044470038934824783320025408102970064590531301018970442007185583424132892203238349955409210090096262997210590852925324399529105824711735074455196861833917552609958793231886228560519526968108274360349722849424481310149860211619623241347387500010504503734167130774392784657667664349084380049140375289133262395483190243761948242610901908216659571158819451451311621183363455863351010063935106359848772856525122395240866030056917041816777963443351639885356199842196978873000539365771961166019888813504557378018209918447954883497693314255725281836842983643018908272636480486705479592847743063035509331945052854277712028603827660227104811264382280931802943289130848757109496994343811005650155138363239309375074010847553888766946450689829771387683429291844000514769867169619287673378276201819109046474010430459519239170467983681211842533267992593419249856057964901258615204026852017147009279598777301326080347508544032194507016870570797303726985417504113779461085200524845946508015092207191884053820251444427654102391867630308765304831746566627078130023636911423836540693117973834844749692963680264107965406266254715450817011944704278564378118094964641269017530951721985488753841462905438063040606144305092021246109030133541246942075488543842770842237636988606811434863108043865547924407796444970009438640585836086432728729425850183171437680497407115755350001934491186493705777777032070595983320554091067045728080258005800872422576777777852847889193836159066662655469192116447128783135188198977383137862306340176271504424804197867451139551230143761167703399558780250674356443991712847920551693906262834067288567116843270304725606473886373956482710218799784942483968310413670514513766585528849636964005543886559396273601934761603546421074609169876522010447431455057184724183455548976303822800672158580822406965490919319187397948085362048385914319317043339659759741111470316199229486837154840171238902193758697617239611280060069057254590448855884164211351285536857487965404345876254418791199306726488012313993618904627427125857349091369734373483397987958969068517620998452073110348127727514979498186918889540917875005967964682643241147322169817063048311066906718286523487395661413817566654411694641725284331079286463159956935490934772541911245593562457531953660542426784467936301196865101980071785198456815350186727581809442890225793562660971365456169061636272350511518969799318818225699750052602132012915651636053105228575114727312529057356471559797450369875655239641283533833047482594235115748494711207482838306747975261761118143782799758683363335402817365289686610090931995987848971312798324845049174965049854655494817686809987761899185930334201604087489897608594461756233264975918507939262792560616815705418540581768400214494788980281753853075892867579234400292887461524219082884588276233883746575863822078205666089634571955438151961810380684607523945791993003261201575390827636417850359043735698823211004314892670041796541107245915299261223940626602219159725310842369784719929530591069133590937806248775815792365682227381519314026557430589665159207732796777668057328292255677543219718985515613620828923803471750686448377881983990240055028924028662285440079077928053719807894117014720645358695236024022544946104674957587245771358084543923206698879248826343725672390502356008784154001226124717142547246725320670705544883470095333064225713402752595905180503930851506477438467972003086069900185406649432580239983823131832498641278814533439035482376659334356262314417550248381628763372966171959647249038213610373937449878586453482483287686401974517029693282748551051353339722843435253373508446403774512575495417405130924557280986069226468513049100607828182582223361628777890880283683060144360180180008951511140312128247035375736984594805189829767244851315005240096236584253742518155839440061981370103840129052859600861331458924913105640881091441627323304494212364185641982480077826260345054242740885897982314125002954381167061672948000692556395464361220914189445174293258657607423888486956123777756099060092382475144719225564909143348459491277859218477012579419514057473325917075771636255139137983230696428761481635001581858554131800541285519393352977014320866123248672531085979695515143582296224994859311455886347279072799841503519135444336845895138367670149427925527011922224148686941479778629655548416947255277443039170013421418169542484360775753124169879854021090289214335898258152606662163186391346829740639027053225940328152302131925501112325501118843915116256939907924338293268420719890253294351948275703486333047950799334917166124313234477333753377871461930493405552075320166946841952553028368815505613502842591135685706835544235865845917470259577421943504035479909675919268706124203069217104539541308622388790470280581856540527911747052921876965095268807555563589865563145965307919386879723340167644086100802254149629969471494437894761517577733573151557020988369585814645152832462765584635837479061368626900790574030839918089999168169803820765721489397269609840319566347076814780122438857110889792580075116860243589082470496837799417483865079323738364255907260913703697706753439112021026038399011125281080394716295207482663920720503232654552583241362096829882922315141010859481048682384831608181320874915669610650785648673909557034573702321275301233270188403737969695259530500686630369156567576288299434069137330633909447692608123090796612624502941221950933418479423952490931591260112061983266288348127103099199057935524902304438721691348287826896385412855959269582948333676361784120961970323852018796608420571584317227029075470168692386715437343227113891937731711993262729741365228280924399506441562272330242260391750830240190140807981444168064839511978467080009735551192909885354648293545862613442211088513317202909154504902564876550905827938273470653010308097981845076754551714230816261581110056317306932677931827129524823222945417860123298786338016908508160780065479643077536075866726189287545072278543404266504120896511481921787636361786087989280079700643465145735569983586073863921114252725374300359271417741205184490161582293122080471660037489059629444472229501964836559009212035649756619297026427359052260826083194885150466380927009729195577543686942127441995432510655043885044078205176031898944994051658583794315568046261832259011398463047271664583166770826720303095894481624164348610430253116928812704081818849937226283131072823585708495109587413145727534533488106927414056673879265282219715347751354667751690834075405449000933354223026549768487270083683588356858923313076512110842370862992246924759659546308200033422733809992179863201690567922122698627730713822783832391979862189939438207739061395696388048671006382114335678832955354164377091044289803854654319523550447799861726139427790698548542979264931519925348925522748482997933828044803609604078544326053885124915756704046266115201312582403185662007085350613896121692645524985604527067410506235099288698253333965698353941460737327703484720239386306214488623910089609241954300171956076613981881208082515220295157401401412129448297013201379657852508066988642780681099507301729608688053405685589063298484077595763042622515905979673410623300352177178603078635901988997407997313357504433607963720322363167214968280575222232028462118273391288467306836893567008542946817479397062663152829164757705677243030336627537056162746528172734494952599485760937944453053792897304368808064185592365684301850878753008050559523528950209031635725568335477157141603368025705461161581595059004375178744796442084375689159606481020658578312144891462157031889600035724158727538376345004292077520813214779080131467782235221532688710208262658659804636267284714814374902098130066520517972068745229303234059551440780978453004384724463801565191027169770350398190866935914119540716959694600562583677235378020277822806397068272962271726606499298859196174402039781905310013280279934964907475348145533180382513777681046096563164657152977280504311896641609596999056084575565872930854665913384132671552354944964037237399293232284209329045926806465831894217770432577716966188039981611504151326389604010699615882041930085237167529102568707883240279885146876803381081440428920808776758482366454086174444375941133002563072306847939256992339794050130533159228136853191139851458662883875133504357043940123414616992314720709040291864217561556524442763739279774792356515106054587685155836120684192416522848189973203642881893143722728748528052455100192639188421566866750511043447411208995189333752432965975341242305604235139759889600961172746658039553491739807621574982363341854841201823622131662515556482368258026273534750162721513105799465972563692673756739154747055600246466712123192754422781373586405373446032931937042292416922367260931229874875135455829034608336000654007700705154244462293374911658364401003029053722100581270484372836434199074702750423704215906458780220034634310082831783043682447166355894797803853265319588475565427290885235005585562608456349480419983330122331319599782201663846245574385648742365762129873648680813064232997354978451242334819727537306775090707201799469717874994147620882358249854656830064021135616538482995470330129390926750211929440585985440860512531626070041682705214376790528735312254985629573489166380998853234436441496583833972948318551914079849535177478870444771847968506144648451913809984412456147726235324734472342021560995315972997468288170179303592541066308484409762939185099652192362664746682638291661152420211392766654773175896591932457121068785974299853583851436181161832934151417863517241898349780381435377482761820409166831642798167292803413738590654694930120003862063418048687102845745160852484947677779359718131604094412600147509403094262250586290661561375307315162442147241667714538599767751528991771998681284750067085765770520760429184767835250175365734205833756330146814340938704709283784900773149300646932905827797221635124498551905256701425134265452929993385435467674319459249774916360773286599907066421376556064757654522699594778390064429151646567287406230173778385741787445686628272898591501233505270059997261039977825057614235530849671241566783534448050593084624657351579041921467263662428477334847771078188381641251905510958055200712111844467915894602993015155124498568067431520455071359584251216939737171539587702021328984547230748002885098264658943120589836404135291053849435372087396185607973231753636084593095228561230773262230977490596997942976683573222268348539736375457444562855981640818691551548539163130216953483351127714115388839688311363956505231457546614593213934721267248350774992992154622153435296356261244470955052375583427381432125491702648380357516675878423938329183848292004992719641071902291431547355212581467517873697335896035030931566710850971255077906345445388627752037445082626255243200005969628737173952465133855775275464017200081433490659676680800924286428635714283934503003825130363795504604182306723506188820883364996174709098842982865179819696042757342370880940138428591307801263559599345913475665287897992265690408377827575683439990599866093939427056476934099428350852019726066414055189220800186961072786671397851098440360597315789376145822058138319793758706885849302491491306333233343507565295709122690898512438739997165622013723578911712425190517791657653097093536756200890343801367309831932263107166992106720343167693501746344996326872885470554828685565989478590965514693532292760567648575057810211679234503590136412556740088409459997953103231193177385692982485857536626078639253406277459053775199643082414349482284162392874794293982248227568819121521857864985448003522612542284837165082552062637121781065570777755115460946474941188885973661092166260823318587855383068896536421109277837346371536227780464039385450414995241125661099722348361555880885656021154101081230370064900897333095346821946939558706546209283906200229972807209163469335349846090756650363835526991475518042518154466345183754461894419318642033666531562452201176463259930816687848839823942186333462410799138921601733873427691231307422246298316438660602243040068638575728110703284655926631720000961049780103310407217568102083225564331051489290699658810008799973430022386541787555800484837160193834544877100898272058225711318324256789294640919787119488375102359055873991080798009531529860273138650187705012737566129260097453215375012772612837703647966931547053626925165074508106044941799293338005535443658329852739955266282309015547627750479924157528902601812008396097632225651358974076084082814459055126652694582000770599184702364392225221755737904954877231465045155670381223933023478622151780608153070783237902663400232885540279552278821477201666362373469836078964607465995512820603387839593341078238003728235499523174036564732210411911399111393983025332823644846517743963999749726599302456574639007584149866424397322295080270731360935220770138761950320137710870361222124278996712136318349726258542940443589698010633069383342919775298757065112811136118706937586556173954653057136139944142132458801206218921493989098402385712835217707064727278179295020343460689198631230514855893576800838557420763074942917081280795510976033366128004434708206979173518394653062187014971969797176738531690515667555112787965573734834990601055559353571236593036359678561460128687297544326383599361158410391704795358480994940044354694524138965849520616108281430809403626897349083066538771516978272476513886018582081984497926265650306458817906367417949146904255910046797905888191728168496725284850374729725555696187991657798692822125476150793707250011247895001213798473896829182222866413431985423051885417432197212259871914555787518874802667452562662945053902316047077974718988905924505403535364108225100493487105420053251934148234431411155752769738454032268182902501959036825221814772040806641223354444461698465168149381141331656635024784145675347238680620570968098444968505110356651451118207488926788271707244205720162099895407475881907921931285197208958785410927653002135834165726885286450854218817041151676790034466592072549272154045831796190731898504494279303891672401602469323031021104480843528415707652062419071228824546891029239095018314293943716193440023547127653341339322109481440447864485216004633254244479708941651311869327071037879724299336959234796106291963922508898719434430081223703518704190777215446592778137665869379877615641647521871024213585843426614575452394337685682034465741875965787735364986004019884017431219977380786956250151899245664690717385050417577566360637003981907170526515590028970023094761130007440054146414986031388499045025741461250366893077035096903354208559109224894726741059872494178654790260613012694930482939106392536201501005375808516374474286010964909707302384551372603289407573007605765073838381469176342855088445301909771588630500134598748935404844548022466884598599587793864699090148432582497776054782757226751741109993605429837105354704966826000419567877301433341837868630915516997025476254178063321680829174426736368443253661970096561586149757136828713654543155051818440214681261932101510931649329531366492791433890316819043334066478026259200503587544688012237823349142572762655602026167490456348939600558922993491215586035605519951837154709628541557816791421504549590501777492873134675427857439509573800919975910103903317240865628463560757510369599072378174196244114440414140459185463160138502628182810996664867831739753445139995081164413903912564446376939694265715571772253126816453820480557119924759579675475763079827090539382475997971278292801997701111757770646152731394923077706078865126406538523929873571537132951325989925178433869678216122531996928998312449678890904937302632868864259152756117207185672150865910037943104985157064215023784818889850958206006641133474478346115650538785778707202805287343208788548350066617504032807115012386107450479409855262395157356280710946938634103606215621712751406295176983014444172509387933916318589579739490127794425263412100465787402043628940410286924561272448054046641745600582517613826837792390214355794231995697805355892995965416720411789796779874310780999567156733308233674328500413615434282912000271213006845287835394961154957267340843542439956490767969935678037360327999822335965377000902887566818826442549034690343949761773386378687495871499556963743932023585178250652548517752891065073532552442471973240986432387058839255922552982704749388086155141464028658499765191985072535078443401685216808271742245674537775795427616233660888020404743132816363566206499169929094271876256135499384668474889672977316668512266526616543351155817173882451769040991767845716611377265374558032349878053911525791088960791626407189601436102160170900673879809099739071713157331231671138237263568228331070669117561324765988852666201331369696254830772737190801543448868528141959572626585295077656740791559253799591338659104314078493307480597661181836847906090817747802558652080147579932077700067172873271863390551309488192991989187547325873389005283180681518754685873483461801475530000576574758639594936975349272684699425757170042246135550633175765967728597797342133699680659364660167056510432971139896652692133686561287071523468084732248953302385872961479648963208894721185716604013973854514541460863656395350542491979096077159505037340200264098184398959311846437149261640485760404359949082379538854871115503294581595676870447131529818708212527490694394412113372219145885313824403493476503981803515725211827772045221627050946397107928272834335864951958646574420051182611722234294353077515377932608905982698864753327881850521898987209535181365732549856001520226820493863499203406098762684416303393510996197489372357110395125093104993285014386641656457049468191933328912667060954017149564640282110528106397374231080808088098444814039009517146745013375490089486440521645088753470446997204024080785816994589921765317268010959975728273673607239204616543125085692729066345031436572189365935240891252346087625219547275739170426184913836217588620346454212056203638489939700262420251090672419243210243112440018991068412881042998762218786122914152725568189161118947490060997761876521189911736206476957318700782499800177452488123806043462978349978974915421128704845322747784293598439147710743034550700753312235040292005244084489232846261147307606207451646928702799827575846684601205123725352678949297219413809226113288869435943360007606870256919126009960601123566927247942075590702982085953548788887561133035967859800099209449018245065939511835222066585223144649408181989859577063317866380439134759003688705268622567739291228258768471173996069227379898867344452010497455965875324759062187843893963092127298934795221289910190049857543139279651949471535983284308032715724124601784578078611472196834055230732904047723312784310199714664242782186231473983494859047121565511554990458998456384819150422077248335377882242163894527850109585206346758616889399213375814530841066419824145000383645591177385771908398827603711203917684933200592775853611769248365053964235041414166863790034093376132995336196955116552540891181300818053462164382204105232252834379079091020451934075075978070512237915912120126358099446885686053205088117181878356026450534551248016623039050790969363462154647410363649543184708363690788753681480890220320392294085596301176916601456457783455508030498304618231676722881353181187704779237844739593951330821659059976012739898337790646269863364806847473917098319644862165851612697069896647845114903340686849165730608649086439598406882627290402023830617978312052127486832388469204162485318290506404159597400071967428775609661047013385365397837109204968122575278509321284632056064039357038961804385456641449371494848598496707535846900103255199284950068341427430854683564001261477864849933723858877323228296402359196535340396723537174937753497986976482857500501674814218716612838414700140357792154158425435486628757949845581311635977681293392897118288979628202431971050335103873560770524780987655327658824491069056898269494012350479160807660429153141651792685194934768019907224650938269720777325544192326164639186947946892400253345515838175412080706602514324691251640206031859855201007824623595448992342930972785116461171605410138335715525942017229823384085537104604510481018815663789912858131672772881635885663079206829552891858020274216559461453152021170177041511478059412627319990280349680847005816985234235245120629944267560508747429253079155818028386268061660729820756573321335685123867955800726428182290010776570843759183972138896815142893228918609583019931262586305612670711989084177339510587401696409315640616167105262450053834949691866753595055656798583430886765726802969261091433196786151427508742897614462212511643774468771560967237905656658514832433375806199369913474326430900452906869170991648146265075673443500590339165787065661609534806229288699368321790566145303622314025500986452276809928368938154548982545582506603820332420884161430726175973663390787644719258971584406266355756432624655808809141414866249601136540984884284936425312189457590014810976852371422466411678125913665721172261132088124656872684994697553555293604368305129735448573737696083271501605690070551574241560412009478447295616468531230388384159038105758981168110860109903879278829239324468790160733915888155928188113015124837562340911651763123953814532636191649491171484299879698176443049092936088357062089042738395073328651818357453136388765294668547022344007136053350820016602103475510595977125240052540716582016971274361931616656295960843169718978190167798314959559642070918458399033442800462122000383146402079983748363793655993204966375061744177350507416623188421468651710546131356702207490435276466699436248287760657838534574685986915500720758436676131187684359912740478282534309978866774379422873441656631170097834529721073605783078966000506599620751742661899709457799555729375645010009369627656479770020482371854210879153066195582261794215666259034790231055148595938172257925713383833785639212028461982995175448450458485466942000450601041395650869709672365251079365827614479849806389468523293693779130244533346701534215828474977835690299247989424018598343418367786325940919333768076238503594840655117621321783265915552331181332736796879898864597738098016317026314534397799153658790341633780839706145331349690093117902003803001875209907318373365238609379292887692277895374716427504474143578225612205769679196677245696160392492032829134711263057189855282979753876155147405053380914507874655644324917726206981620980073843468661223811568783553484358180697543827809779838131544256978596122625055464904527326883518623650129686495104787368758339892582707517201022655336291856414078418473755260751411557042424787382019316098835891001368606178355861502275692812876181653573529338864055451770610334878047497554980487049197999520884426690929089805539705988785005729189117441470417836282376979796577638997036335561220241692164513388103628060688327394847030408157232124373691850818262946349672215093703632822838082969592312933629012205999119640262189493462051118675901432530939640829036074479195583497189966753188956107847641230889956451171260524695613679945208476184367395449882787133182924660349134573775779328034982302184693526029110625782958387841483511007876571315545132134658015995943105637727449816585984103607528556750663198170405642434724373969556531870296291230700797369623153658708837537565104679100706061561338891789527244894034163185604041462376610496133289061037741013469211645615382111418994908693144929350612435174675879066125438787048640228928084398338745436604087993527652953376944940894530591532519178547143369253895979342845282004545869822514456584783084204308527544061294252944009706381666796145748922004686198515819497628923522209333516459880741055187111943723683663515920757163863509766536059307340092618002288967743146977217857308684515073843066644708095047150691523322570383876964951947704353185065535220883948944671274485264875779198858032821164350487308628330131496410745856779934559884586407219548925222914433266585197006000278613624472374273082863218793497911660681081972523732537544065773194170346642935744390453501417497619310780912506250246439681946037418726418758551789496103488022214599305738417438862347564650011461961310257171563040248112040705944077614803523330518101849923457234651754111637461044594421838743479297775864350283838223822103597212082593126181277521469673545030053696155339072303091412117749105786267419397365914012668984271018768644572248364078134903095832812749757289406061543943441414084383936037358707412753515842359531627311281752934764798277554014125224308929382134693153611783755976933681505969257701353256112552609568202774167552777596317282178803831847041490783329302469268418197844772498591414263811777605107071689472988399561658349978766013115059847340594395049015713097070222992833179394516992561865303335364737289653658224383937625624728556923289563346586362120704806926748515102336745002943724426968400815704385131742641500972487187091400320164083895621399261594232534294774710228476767231023302394080804819317559505536307052686294819761760156260467128086784705151116725896643240734026414710366946342306033914406687068597230606594102643358839413923475908981016886525012680812654024614748798508460793817621842663764009551945947530118697829627482359512225672199930814248238024526141726112411449355674104181523375272070461489618630493559977626247007772306401542348120024124397237462023961671719180307275492268237014277807029937998454337150508445868947409436882546503208082288392646041086442270330034760963029911678612907660928005942361356622322548921381460249969427372475354282234010912048206678826338269701056383867787715647739967782753027179967062222829462678121325485916073981581329969566716464195210985044494232531919636069916805337977759084252763097659403917894613757569683239170051755765774772591888257441569758005500495364697849841595499350941284131573617712745239855956506977066158294628250783489706391378146298676005893403252020127831887033014490514536244648819688374276041856472756485861293333933974653154208115101345779493888401054363810313094772797481306351622502416674343220240960222612723779760807573674745579876409290165603502805007624152999382373418754835687881531723836796738519254374314194101580164496844049311333917090092951134547846539069481475566039661668367702895077367953720623574912531749457034931703265845696169291365703253744129417258543153915318480024730409849640597991415741378750243799488495629160627762032957626666824395626970104022882103307007411223742269236320442197456934662148045128454589180058568224996777214567171984958696847795769915538978594665669286206252485930765837514257947530944531818735320894676942935839351251235205304729224430652162464995971896144528183503193041875595079911627074966419438848195115071243283998344896866138368863795653938395748060698591837522177118052555771778397780546277638094809743238811309227813608121602468534782283436804308202492526064931619049118475046397437335919518567939419151700318658307930359082011866081057734232726185466506710338696737679790687698520931632228376826840898285740257460113080488019842963377877040369632540164199149829140692318786097615220208588924741836050274950193236411521893859708846163429668299461405111839065029294840708626436092909235371109457128720276630665722263925754058592102619637869551337895559738915257504865964385785286253576423645209150582608555277641301215084798487522168704418120348576976010090774907880155987031672827265317228907320747095413548074743479831922958107504854574147721726546469184290387812661604636263230967494009090947414647056391989609985966360495779723086021225163613106063497799024241545054360898062411156592231516086289166842526688119797802477307269886088783111914905334903127538552040815409999230004889718097750397212776044191891042938963877239677941644492724610167053547685935869866643259741567796083822229905060237137075311953714204511196416251607430396362658760085049430742465296854924394516252301731760703878892508914887669190297502047059035861075071763324177986282276895160054130844026564500311922725611605504903260998403961252959516435241237841961857689787929857009719956622372759316100707494478898451315921014406434051551542645123018622732438999957616484131247273503080622091623751676559538095608079874137064681032300306445885084321838018835659813875991870149252437780975660095166302236320750493249058531964686979324660897022626990054256937169894590905205307654983471065676599812141904952194178617656709196157258651107872500553114679212190866134216587321217935419290877666644570189938869625267123344630701897480310642225633349063641685474034307776351823167795660291105937002748507066925904942507965823301390255188486211092823565084420670401532067272886301224514255185563423910519516614451028593524337977988770625814047449036550568956957913835383979825916506421949598042106613318403181562267656123257201845367605393299693433706864705157314646712653072921458397722064611221390719992248163462214474503260437158689869776685326513408192487662696429751293747702954118032390920238074330765042429131861632801954669824404036999059039528744710640841532828788046545538802571890586660676471694533694560048933217484804417836291236585586193469929061286238973750008563638200229473577528330363218292517288459008419087546864968363037418258266994972618498334372294588982556829583501307076066627583846694796666137795913368064847872244785268002924976052099797725343849887838711162388990751109756348860162154051848790264073592662930152259837864599303436892797171647667135856666671088221366610731822869860803393625587297826313657162942217989941163184738751157158271304293487613733504403228232978553569554740080025878550100972308509460596047053652434468166703645471066433133429330336458900987138249838810558434627754684192836665182672866472570616579100047572940507684925772292251833759875506354323952838162491124142305966200277820304534753392861302649291889729240750732542148874018398608180561278427671058255072354921514765515612420642743646931468438984414138164747123561186870143265966794013293536310366538086946825443565336795746596533003509374805083946685924685413658010545903412724312826340116639470950429922673861604671249458654999247678889641062301576074363048274181099522927503773858867170591573113826624934480233992596031790835201156040182319552747690107223217639770569921937928466328213493260168045216593002801574616855211738643554042390355276023453899536080854149547028537988256897123040295281764485116854253784551332283781063415804559869350710527669899023126666525080667450696850703088571484670283790037301962975421828005178605836548927767075179715672033438202714499134661858984521320335273608996893013320305955091373515750601964101593378732826446842426876741918756494726652028444676905757127350166193753968312429565622526366782142724130105632746884450395715985811649003365965120126905858872328265774751199935731139770906704536110573969000410221218922735078070403083443436286474485780447299016098588268017231769415953713256775603226235547380732655871153237363347875653932686656684669416342505423363432115998925791128731591378144758978178666497917991513815374103100102043385203381271262234923945512743894798193779105955861841867434430570596422307210985073156645865834766911862411782974854517450401891632528265656610440320663984964317554402161951317178811695407270817164261543580864046275346766191067639963543768990787097104041882572740236919460900563979414734261781524877923019948674705908398629366734435188398813860621555507291438996172426632378689226357404728356513034647526559224084156313337082497634050472459719067172866841320584077342152616157575669206787058766204911606363274512186794373529397588881869039270080484165565838679953588865874200722582686760230048957635283121566276501677652105525924517414581747229506115769407966241838961854469693742660716580640575588373679357626305625162492541920944954402835125085706560325961420405846968521733607491582838480999712414460135278195952978784044208925869639046416224326557070142573060124773244990860487866043130241790972200971697362392217031108079624644053590283297014745792122523689076002449477686328434104499846740449014475943720117342723714479942523101990881079355332229426852481209474939174305180192199030417458600777297386581512728342300457900826634835077111668924263440336968032320418141710867689293285695792150026287671596474284378844654483274333113805177819674148917961849610677938897783554589021206600672599124422563630725367944219785578117588448160435725759776475394097926859770193238267892737218906036187483873484620043993161393995544553811185450189563884830172630785398270199349500272539974743651360616713577136686683064856075786316027368485114809777702664624425860839935368862486982165844364491933717354468048801987700800761172534105302318653404714424726331625312677933237421513968745546130858650903833803231250756214464259517473477016554472200922122411511734020635945962199876616678564031633623096810049125986752344053467457011644468180915345450727107906040620388318871287426255089139158728718541962635759345192555489114464221203549352888970640533645273288242608411696709327974904899458584707596302385834223964688248220606040620881307165957183736745775285511946404000060863436692567995678326476375459352976658840490440074700597830812773886992703382606031204053432324926448857566062030758278895556421897948285177126113896219984606022362490330252698502236678069211767479280766098448522384506449888367089033996235111195546076964857979375884209142894144335079023194780311490009575983705013869001010957978577428896913368653417919195121392339581769311920160096380809365624566929477222634355406458126788556989394929751504222304192103588137863655206420042835738231092004291618032383568415791143646264218931872792584170053732863437107087944972534729259583069287692605606733165221183569218406445707786495431538882912271837959774156228243317126874996724141744980706407998635403141209721173046062160482353645963306399771017330972389591501364381554113184718891222635867782798323120502899286888112013086685730068785435170764627385332219754367716375100409554441317744968951950453086711636808312102321118924930220682051610792035526641790809468309510960303427917262650289494151555576017913977857123655919672815999555520483271732754798098628762364624874191794984676931803991687044364362521297285329671896953494175280533762703267661741314531075273747525999271279669171069680384952545839796952701965300074971844874742564679544748697011686209021926241832282116286554037498521806819502704863675031256994334801228263563321817299725452363279706903589208982971849179795649796212819337076148127610129923819115010672505179114883679654225000825152925241526919013579872704884878658224707988634126593948674137505990194257064946943815673436476463852074196767445047913380578611333501551001620755368056647427615706389527301548285485902694236392871919767603142268164305351932466758139177662132383665853272202461094527400252580819911901271550766000785227096217305182292387172596705589376879380235128490754820908865575270430523312893197838856869157717386575910703039339720646722735142744607912038375590910397554361531128728410700851602783030882772458863123681335583453189107916503490837402546964725405630143143958600161267042175992454053352698771282911298199821438657492627383386425185843692704635662691715149370961296812557178604570766428808419070686870483180679208272327151379063852881721486132744017825278236686153231138238454144736943264460394288140703010664927213913933067098231938986600154921464790220738612537285556383168991042773385938122631121108271137101708787941575811426642567398807249347720446695037107228067470332111831531108452816114878906867004064150494803859516398558839284008615400191628933554491224867413920803232245318687187528175490523259566020032318925407875988179510647907564762729254549062905785888540487958462101706634372491331875775978931200589184692822814779185984825234185031453219827374896668462651846724079429671963647445623714264969086657394032697717284412086130733312146452622247607284236695889211448714460771012991759611839646829469341874391148889526715828337207232582381392485695009707006328810474275265126670749590380346741911155852509773127261557029694188169756001052035650391440634876715743636589312854601869352392154700898290002996388732174699871059959361059884701873787096597418345487598714281362257028331703339816948515877774105122221465457882689388227768513292841738614872175025166913737668139274768556149967880296198681340943056562954793479404225857600992447862253220231581139384026812160866741659599825675370511751823412917936771594414338953931562439533411657778080384295521849102348967002133530956742853156209763463851817388958299376744346484668899437437097460442419253728891131693667596597240038439767462949694104681338817356228234822415380209086665958077362878154639224804842678801376891302972408319193926497156331423354232504356032000855415288234457742973159538230488286925600844322937859626461291819534290684859338422852386532000301049350340587766275784332871611673271354848999798611261934513229365070773962149312565711316566082483325533267938754056160460514508798358307332620621752609594320308286168596404541366850577191434107282111567084285117001881581274703116536092664737370942528999872830034453452482744405263134485611423641623061735526989756180756559712461671768772254146142287378283671461114094796386177988119928776731795527469223343279658734294636524995401598000428936393453384266988765485564025406058013843647146246464391498189438757347608857003107145662190003177437036433484020221283637219713303891971927545873309681742578844530056356994791297516098562111056445693172656355751514303545108789877031226850578017829397032946005200234879256221654019685306534043731292198975836892222423397526012623394863958999999261206350097475368379213513226632100869360134504245729115412151006324684782156459677129215499516380454523451158084668531993973753009525092741180741138753585774790474019722206515080294501875630880834218245201049574504154376627158551129775386460748260835616453906849259299196503895003882180624338506567236190237454086089598630918743696617721816757844737385537390814542222601273185423684309440913883671036025478799396889182625157199366694591914775560622217210113485376144232046078632530371986627941686193720998293893973732861927369995710461317492569129883432229140850325403539050418925236327471095650570260221577779874276379688076468781638336739384801029610698604924725363114169444534137798381994566510405824183474165792119667978027816696512115346121929142872614408272378899090965125782906192513776647588197915303391105157019296284963789697548894611521650777556038097588686946220391609427816966379913041223900970846779844019713361767551009543537514343784811220878894745234173547964676520995014128336244556689696944833453704743402703754301031840462089710663361787650168477776251112815812486731481114053534600985653019962990592474758408406847043922426254576683825835166992364422408094626484193467874400695646806012409572481689682306706203045819301009777661383522489520890764581469186459073938900535233571434352160016477878016881308750240223648158925953287667417337432400691425053383657318445942839556823453495896686849217548149661612584055158712874089713771110124091805569607918448707162047751088218562880297781296704904768751654044639689859815091879725307478667950288722716881032520195460796504580417641159674120515710880511222739558963833547926323683078894062545278520244934697744538287397114618860020044297590452834071729181333410297308992902781454155352119605760740760752449895868496754222543894794616735124722992280961793449085063134250257793659436948037481044853417265826244872982128604976382843157552932053378633429702202774759752649013179617844704631426573869017622476094102656864491079479422396907191759962032894539722792042256157000212444924689399660821260573604312107977606455600262844269252113991584507134978560989034992079174307514753669068347800378148251241750990365269716421252078112088683788334887023022765934215781706749927311717103990193930632104236446117172899383107808242325453817637448576136929413058492604728852735346513839890006906440571952414197801396416656249775995590301698302625742075624962903351333673253691079312403408208345118783676147185937661233003320647648112806035384057063607336214685822990994266240036656267493063149544200613185673916817972718057118106385555645106645116056751628859557640138382346715963933192960559008185408406689840589198611247805505646929999231996705065432392919944735923274809517519498457441625888560576382378377796266979915652233393687509897342730275030798204309199713143883577350302704143804697339890854714540801586040180719869637331816195016488329085393331448287370928075905098509585374526374551129935347763121763515797977687610971728888967721760639117201492606254652778781307074524237831144138179649049702929638267496914996651623915913753906398366988216170474931554377972128791320391029001111458902927409493041126900151134518244035178530241243807636652860988560586979305587112610396999978768533917984844392666820116701644372998717910085730238352086610957484219835277233384635707837831075977465125592007307859575730204034837483834731200594917587966506451352601801340030707921620034889244128361186685108082526250458732604025013914330101107223263527762227471392123120368578813344124394248038080995912808548095448090602864408243147802732612555984178840492403528051779596273646112819783408914717041933510716988006535033725153779257792075047246440758914857632925168282789200352065886287066929667702252100055429454894355755903013679023057886618159403542181458185525867018258648289656632634376115774375971421700821719420763287841964658415104011071397204207014273565136066763885140967679386902059847905286691650432167045886027124843763696015548421568573947315753049526410366433386446784715098424427468551556765705262284872766102434100988359752141641127609952655216223725364646987657632070396873859287268501954647897679222072352092680787972594912723761113085025624967157683564326558704475235554918129556633129070505414531842080117502540632547076975043144913721145069871371241140078451678381224218686014677931282469706719531876640783329015108422392897196870215910198805982074581069000719359612359462555745953648774436058814268841033100300637060057162747348406216552517347085423859855857224248879404536182849747257522205174671525013922347197855523047352953902800277229058513570076231277787045217330134208361167612920438383938467450262155957664317441955098957167411699588847468122077442299007296654398570772386570237402561388956599443948432375642057637719469453284442166854901987040009847562637019585505353540851710341916945579608047331169422727802521049005614624403248295141764662874347892498802284532798317168598655457089504416771623950974216333182826167505187100906360980573595402429534924775477036995064845872982859319237157914342221088363401011342485229799465685697091864625687001614867709326254555889767930445374174447029027859277608316815154296201470567841044525776099735028617766215840188738652593369606213663160628636970216101482724742887637664526661704202133737739035499596777884152832989708333117604799068246298217859741866002411706940750863086421033033916112146079963361841200050811392346614063177191803950097141743879134588425544609552298173388449011289894446003380265603012971173935365565184919630670224810368886515224412757847501079408207832713408784545086435605732795471940820239822812539390330660807309725158237477125940655105283087045870702621307422687787951980734694694329009756190599228901680441111157600385498176140303944048880020974005812349123221414862719479460107800419286638182013769933236580942074989525633453026422232167145587475942078127818640778283594021425407059868664316707015180895453501174935482843756455732832649161610362639498262842642038815783400179387604407356206910643778116124132413679521702553114526447221423332946872495597887580505400462764888360578618936209686106285725182157458429763444037269222996684800961086460175899485997543193586069155633508873938020606707203426983178973327103368171447685648932988411450229846623571515905013065004077096069832665269067549672658089789820154975347376096357434551155505614451033212491021149505338050663778241293020166449375178488766564978539446358843397237145730059262130091464154985303518610868252879454339275417139983382037848490382600650338716077213726924348133250625474797735021225285563448595796772302531738591321961643040244770297073377720127772627739566025728801355675626735178321568206810604461509253114604137599050970703779438925192314384064619027507143906464477587194783717492249656311429728776478080786968587238098887510015372239400674092806807667006641460021650681632814831241665742051883953406979040710590521115796259824362482634204861038826630484891318260870672121869205991931528950881992246054710090954700908155859851199937466278720468108908788283773106330310137427806018676686521419248044630835744861079488471075105857755504192791569321537058035112045092849008041062453818624924135817722435486320650456031280832898581159314392893265260446101294581330833199850212480329483685775925351075274808467864663892790653308001833713274508133386498220664820260388891885785523508459271291032074542553815967761178560401055837043728590394171635015025705851210250920062466401210582263236201159212287343371462521389282351570936733343979949058608291870479324168332499510731565490631988119652459537796527978093833343293023743062368497590869045025688958080847093250859621199850296418961318790834627851075418621816945468215900309059122189228850661489759124919591371857627392982810494477609178493139082862094460788675040132261112522470113326352068825904268916504339046471571135138031356331652361359931467670452581829486108863972141224754880396792033038939280463970363198942472179675931005054422681281951401869417014544588251120745260292250335297408491494412670158126148627987293056548388031232425484578890776253515469031301820212478373787304461119184925506975488675982848460811632063452232313239614645942206847090723331921193480278103503444944988412824845646383113137981662240655119555925099010160300466856344986164442249431672611460009036852336706614895350098648439216197300711999559280586604909008350803026018825667038156009691995191159628696670856829238799168542888068714335479247271396881186973905919218707584519109344744403000582222606686175409924713936382577159147244504576188988602464405035173500055035535480201829268515094616051629975099428599864306688672150020943034023439298586560461606765222238733576863927516224968316474590217911041611212996211835117513043403120680852749571276183182692904591984237613976154627639814098243853854736492233872768709598439038774638817901395996557495118514497320864711999051340680750761861273946582253837625742314143264482727461928748968839558341668161159228435511189490000000084504769550194572162275554679739848869468757360078213636456464864218187080239262092402699697700889904225734909457720768552376493991238538309235979566271704608551592307986900777641206115612754019982253223059562840805687682186539148981893236494451128825564500050427116269905825112916352402779942655996298332701919159707723359978609584183912338160324867805756125113454451771105870585174166239190889653568456740435480109034776594693956854077205659865945586721939309524155989943500364432688168653286042749485567681479419579031469634221169085498593918588193328872743283692192380932945495419152087290328483618560993859110831152516477709907739407218637244654265332576326558904209156347814305174950384891892452187949386103494436858017297564383141028255932201856128466568260524359452852945054635399300884912697043068846659088441296914134297642503829233150187131211801851464801264370047909540668367045450509461783325685152351269463650143144344826545466308124591070226703716090538723369873595275091900049760094364513489479245949341455502122183619601891862085197186144753528803163416468864289733571851907961317334711425996195067386932249047911904603276459002289550086746102899507388956364816283331358780699299922446926144749242001193531858675947750369305848092028332285602986175833855711831049478585331242352463572655993569920715595455569829419350303718510949974532298191559104357361738909152325874243765625508235742624414077066200616186384868546874566969179262484629413242081689766239186785503522359098731221018876892667114604451875253146400669218754151431364639367299760211049319270076377886871390744790392310562735470648120344249791384721359222757772563218449280200837080919128313815997414598228780742259139690203153744465580684211325029735435558713228014390124332547740556037923367637563653580917941674529489572398215063322444629353260962210059960964363764240480540744107418735970298237788947423532209946875152042479367118013584004343851978097892539780494064387071262645714151235648644080912499018502660843247250032212130275882158996957765004638587704835346292169955732197723034069291870492036844120956394466898493609038197085075222310042192450723626692261337267575269472048765390389210152041018633668921634051275605279115881229906748744159384530112308850762022239775130254160531754377015120924004995695343868103489722525348612841071299681054575714513277799189609199055977391047343873593630559247141509805896873699235410147221362484541876856787769300992523727405676998195638973299160579930484016582262966809563095647645364413792232900549686755976088916977665832839820894922444314015020537193723668824391347158118551671611844426927817326552822997813998076019461798820824616922371951506231968800455027692132159608689679516172766743704619915318220300586669684623596981108151775347127891922924763778364489885516927085646904154529899606450283031167770932753236078022573539626720681143091319623623587418116854133272948539046507261576108938099061185171739659437267400139577019010706128634130581799384378063329968579502076679309946854947149626911649071285897999482374904355659789657796973151151006132861885813833513807412066005582078910725399998757190319503043665093353357728939375018127071479373240209035522965914451184187044046379849881823378002599559655281150952236836946900082500132500721486057720545621149299005295449167323660544073719897547553373886371669370176824592526767905230976374517483156309753062986744204557032896858235585088145394380679084520492300225682313261502087095608849104281102837191663612258828571560918138709521834234591055493597599603852352344413583619857843181269624927613598745194002464432805307576443801960467331387011084739926569345782578123152365124998326735237020386935147336020888041802456991520095006665429346730893644164353672357497923894001488730620969071950102705466845474858791653452655276900093144373674559975687605856844497092973005590524739188605881500004025277207466361864020904410078822860913362683590564194523935394354872858088030638801293595131355877145311960139579526350171622139867574229917527290788039991026973929039038907492721954818640204931500981864021458546211830493570018273819241155376679736712019407798149010748142562494087820711987950345110898975731656983852715509492266865175667448939146328221084843996496730017570947111557346367487859792056155675797734390314072809457738525400714952643693105667340294042748293370587592731837855800725234314232730881809221055546886932305890279139945768697797606201549860917354384462386714907340377066925619960748382140691338683593357163075993577956089188297186187259019427027410921487755912039091549485702075353141510917150062599970109876588683586703633926478484086746586487753399604187636264625614520132118356589987679353075754277816003036258634117001317124130003869046901301348953503322110036125262827591298132007015021961791059295162112011562767857989479214574703783597384483384638440813593325074886097550812485967806732689112528790442527590636615891425616397544563084308621868184453333808754030860195116272446139635204114211875163245492781702700408706823467194082256278467845742805451972664772706457414716051582204793300520836273501294772943599425475107930807394829812991401755834829844157034317235224184713892744925650478653122214072528949769051427969344778468000979460017220311808056930635867276342256177353022471123766747412559332191584334787315894320585992547609421293006021643278454351641474726317997161626729571893435699274335338521406203145901170253629671614075139161154051517722550658143215348433179357302901478947334454590985013191162410702344125736825943256718771488381770951018764001642463408656257710620188864770906465297625035306136568479017189822368875261441571069133981163793618736423611527918253925470329896512081049190495485549669537510446573594794703251076630665095442826150031745580799303093648616194176667800997469154616094649721035164884886406673254925778225901496593147790370515598752164493145419240966898681646644369982491391124172015978721078572496331268324242494619751183395387950649587385169892037163574790564885000198313706226660812356013817086537129262004812351465627959443190596179999304588005558700610449113371511971233869453769676008381522563136116916971718184679911103830576288648079375636487804534123105104798810733912495265566493950069209879750187352082763632008950904877974789734907484283871490791034614736415238356864285954745962636981380375231165667773554031691295494541883027799438155834346200614943027023114364698548903261658974607043055133575722122705646776894526781001287643248715318407597295453594790940688765213230608861196069181175077138627257308453841345583000604670868496332740197252794900612517151387180308189532912428729571072577137745117445698227622287878262888727620081591553078465820325656700814848913319325407877412410180662650360586028041737234396983363996345759866825946935820177187383074873679718920978680906313458337396157392453720841619995925689828009877775633296245238043291478954380539692857837634605062002406636216194001224980335534601610227571362142372603596901251930550298608888081725354846488299981569982772573937622806370100545637363273079444368672857016726326579753529774092529739671129216268494030927730421951128926386109949536011750269957126783033599890352298079387591654935921829863799292293851535582203524949883698448218552258005225260374576236022386154842694463369834784298885212199198898734233659466262455461453608858707012647409589605946551917795830982521199894673833575569424572352046025379212025122812434909573129135253109906635308935127390432510456782155396337551651353284843970880595785844306934608677090876025032821078234251010451094270209696408908588280838194022036314596683246140028682908216844289605076828973513606585224669400491935892616340395604433694951222899680488638040890656580137821663510053501955491764553099600620050750499056921305063706955823089110042885685225342338115589649032687182347865096460445606007155812078990860884984612804857819303720504935956334007503461174576719287300684946402710132521817020313220773173605698113406626075260610168131826980649988518482907219773080106404657816145729805443184143041187485661604993974414701863614933784483029959802392622698002851295332812135468334689357924412137439245211588391954620689136608704628192274533400293963057979355716561751071645113265473175309819207038624838111809138514184139611564428677582473371162242574199864701181252773064995984507925614312688919198187437324632385194668965367834353936249218720203961151828274788638986633689912524625364561216147418580274672600759383393777849185057851463121716179781385496534226386681877147392538852476106192830231425876108445791969230752699271328956108985184360590590432835568375156239018367814551692118956733828397108956867914397020664571920524904432124033185617462531248835056046263247959099779017377966945858150686132934890343918667028919533183843099597044891182658614067793712359495742912344761590645296000778209980829249279426058170082480235087009936182882111036282526099005022858893592580193733543435391269699209718628346225172399717743300527870238171108242167507040115197672922154903362168216600729278930407927352619618562137004633764641903148869107899783650634315388626413785346435299812722375696208934307995478956361090410076080922574947915047043967747681786591218245964430360048927662175366810822115177861174545217617249091570913272766324467098690111723878391473285608598400905658145702940952133659179672631887962914012537090443888079643417680213682452023479891234879549474626824931243857670609834558061398571032510094530787098367267542123001814348439416183939912406467801490069416344665444070616341325414150545794088265154271132293049334822942671214913302712800009683275645117977440213478360770047264887072377854471958045280223419508992224033858801766216582596827832966266668088380365913848167930775372039239236221345020574882912038945087701537123312455334062422995260861102241422704519204539644294736620750533355623456544659368876507473708282549155597787434637779772548289637242470260641123292619425365266756461626155912149745464233611409279436015757805943248549563290475978685187705041036754023826960903127316041874577440264678576967084495488724434435894669997301334896776787883079605607849239867872065408928742820919924174990747089184921067120214831248532366094867644261446344257387957897226637749004487218691125223813008732676839505995781603455208358755491514153588872983106918693910985833186137395643815386178772287647000133198999767127634837315262462646771640158078213228175099508091490519260917622367214021035049707466448310499774395811053595742427848779115716989739352574631611359242084719072445839834807605401380959360438858416867090336356166656093993925833135862488030875748197495313419136159430442087283443696438718445625114723625522266082967121438196073222833423935673514433979269643612737257301594325325924626100379151445751065111839232391009234391345834409703086577077854902947229262757545649880168427360378942594133314640437817981544573820435621126189810724598119009767779793855247648117757640383041107817397606628337925490205553131701536009299131123844492548260401326781090819230413389174858339919597864434544456895890762006780798552075466603345561156999826195248213017368724238173697848057151452588494717020407125982118459399712998319347989227275158764608267394117139318637007576568997148770818423269254407560260707944444654468801366845410853888560739825857688147326902190143119421309541424389331078999148585612425246008785809871921089164252877370482475649311603411592473623121943049482874030519160510510710659451870644386104870531117286263718143252074368169893377503033058398847372805382400830566797297260177378981801707452639472049740413888711956109465035050654094845080583467141552525868407574503775388321513740833548002159530518044183556971336029765564781713238950304496274731527677213431609207883375578939391183023594974839954477627037420477899066452522579078327811499885015548202996925135726036671076285187671485033749665082658692456656594763289482071778154026030207769850480427904313738298083359145998749624667807199401133285993573376604132640489899584740588060000496422842022680534543924193646237242548875799112747361733331880734757287796505626227162294197760234816597003687133855299339190982871659811072313369478073943318905480237408896214743773878852939237785930492782008261426933122785212590303794341027139683488711328216863011986283614990508730596736835305756604235234676319628848450291831544866393998927067916371610842760949741425055979029964350490692620991065818875222420174456955256448428206315493068968158589695523674466332125392468580754685562734660047048797828895155977755129728127297016625410680484572389038586087251542030947821212986790991120758792734985220464272603157246149088121078323239972010035272145367297768140107847042723642118864139814718113134171625002771604779092924274105351933200720666282806733821010877289830790277803557718609050207296925407391649767110293466695056788922018421842580276699129403964686302072498974558866923061401303790234278476016636734572999905466731293536369773473552431542782341687945188451867018919354736910189074001783453964615578762949232131012347289641711113068594546248707498679069439384945357219502335451564674797932336031124320773715899411981290947952866284056068980166324484202596576442590094421336637787725460583366678832118269171803918277026775025498126968644455044262878762521755304257796835094619462663485405522501770328846138218861925353609227281306912475336414431684886374894752338432389382095201006959602719821990103907926872402978980533668897708168073409576648152020831436458250091967578906703255921572778269346231325659425295367598992310054887578915886311962772882434261972911373228404038353232366011523656839414506224713206668755034072727978150862861284726511830248142855362094021375066084382074645603245894081754831820523915291286849768753493475902197330287861563852550494123688733892948394915409496385252638323023733283658009801442241920209158910565922411318915949526729836458884014669738919151592278158981455104011863426129919611170468192222522883314132890174320700649174135316467650116606521885343913673925999000478571418012786571231138442701672658134909538920814543680484805438831426667026616696342638076289597595322879689726292334376547430996028614282832626363661683688015779727163331502519544866626745817559429138236419826158309385886445066893801396015107852605469590928365766797177164399136979112557990878864929668333612812677300004933650281424149655367918165963872024860398114671877442816087300187428064180203431991351163893124638802081201579565045047391479436380861152073320181389147719468539025168611531244062920589032507341463388863965939020682734292768302886905856336390053261512597086953001622057217643967969258226085327784811683358748260664884385671753658905463146210126144965704244604032713902920986837592630582896495570077140601662643991342264165659110420267206941679629228133246828379496442726957033503406444943362344298146700301939012605947552769330986521656180000735978068267504129974032775019111931613263881853261744097270638231438427305517436678382487221638112768058139730988676528387469313992495673874694183732093864222239060635871011311862238680413502166400657257176564807330407575588826883649971684300796487449055498887717551947035828859570821017377243565789534549190034531217535401556300087905641915198985654496638787569135681415450587200220327390823741562021908240822388286320795271790451811108355651913507315851373620626899786086225164952809915920004761992317916401909590948272151280250123723122095289622065804485487085959628247319168780385151067128386508713561475385746527825328593357255695850075052723931986374157183478184124386813815596252271137211620578607352533921683166425859880444347559668800493246408991322020783082860156047505096033294769424261689421227468169912322944627010108164317955381691203764427196974660236447313512205414778540560500091437734583386340133118341815842046533096056041947290395469336857455139128022499227683923388767331463834707409547529337741864138212497893860428218278398714203955357169839001784847113247074349019460562675935431374029238731673015783621485294953018925290882722767266514291437022680979192818660538331547507653970350421643380138379183776037336554389209083947513306397961396912844290856802394322570908688943165971810392877449428778451796819929336943740312711038704124256513881768991514998376989384840335465661296848110942508083575051487001740448596983982072958577468863871607823184207725516459291260817320129213299278346064400581124693851124191437130263220413601906465311768678905443750742280658860201705677977080643436093372650186042472164238527924998806591524303789169900818352046188756644136916067440809164714955582949773560522578535568467108631599770660956062805710623953845867600204682338528744392590262217502334440485241333055409941713527945039520541955053272151487944606350601852699630257964116107142955244590213418535758508852945685137242000740554543996650977437883349336094334423743519476997516956623892380607665575047530895167192941144514199869272404590897909598823313805443646666182298996093129506760810502065063663091716679739824165857380341914529607919637275903808244337163564531889418842504177263735697416254194362098051740567996279988759749918566947320312373774833832046061801743146751340153939708921348453775687099249361561803461529257895175300493443579974018596152583636288192917168522148829608114566540258210266545826962313738534368998598282067876853881946371511860638972886314925266478914624996839577232134313587316464993436594379663117044771576319082908355954988876949480944539558232657074340198953505851457674482745070146508068534180697746333646250290085618507786476487897418199166821902809133323763755181751257267795849486944192327158763531815830813339072548522955568513009308034013524935125413406275005144491580512520496034418975740408311339677155800348548731431698243172611263909984296911427203779619676068423648694409315541638001851401818681171853502643358106135299058463287478893192143654680137693327348914129062228550417015258325505122839275809985427408988713509336424181500279721091145095007027189971927091723780314619104524422785405463991560619978106179390957754376052551082126702041290742379243604302161313019452145524537405987736968904293005510539402695781104962684823188823912134200183941030308153366398237316783438844128539131193536503599324240143140471510543217579383357377469064860059773340260884550188909430800130557037803365174325412566016654943558331351981747283144408407679634333128003608216399335958481142125711504910170760331849783536832376647740303006845598631087362374469641366317615853879975270858288346516529249419369340574842166615824922122960384892841245045718246882317844533109372711208447272756970313714071824752682238096298974281968934286245215570556204425783242373974101470377666283746714766614829430136830718406217474472869796424548840742645400964072574345122256247254793087049443267390771251078644118565948351245860845672170103505481589604487247897874533274534156386612764982692050052075169262575611139739309729525120933599015667040085463330133115423988911838543523378101478362389453497062150190864466269302157903024758101252726195192879745970763061214663070068376474698864911328600296103311612978962158114940141310617031801460492381533338641355353817422277358808299995787543633109326545327267620390742039824136311383469580998666513623810795491119496381911535619296169348475488988680293328800943020903248033239772362345962695587329585242247013248089050939276063754610916317375515883265916067450894648940239717501139423278267295130502641221836195581228370105101679066866717594331986253870988580371302540199763710435484752892079736766051330727573467145931248203743337240358353879759030971932721016748213798645819156474639886006746704804986407398314198710817353227290049482528296451464663244632837410262358677334121871218495411476157367788267956829240264899563272594811648133155195550650745908173313907930755030927113658823472176197139641251632729348908456280873108585542435852982491935166225489298528632883918448810935667064841985486815148414982281647745863718849500377904238397454883445870661292734032178330883677274615049016531366764367740306600915868273348288042134464755519161501911660883542611773458135316193336658118398409527917603608198961811359939348197553282915180150462488567689422772570015216289974453781187433732966669111029748932239953183739140718067860744056285722774765568871222783678050384002728914846794440046007692191639600544793580121171681173224674532822376778573316899339253281481817735546539600695427978215223186901266589075974983783997783678059610549681617514228756621603399586861104264276959776325569736397672058364608213810438177211307869826101440290393386958709005768681527002045518265462759939751531441366703864038203546263615110519175499064861799663696887207736930493605219805566314937915706321698440139526408612108471248462754750845249899118013564784970704139893359946626529852824094705904725656558330780446921582715422794500556722639220763956609093886706709642501560513017949390822281251583389614507135742615110264977084815193624716822001703145345687438476126751899912269705957726293588522821435370329383897437271388994017166854133451409854783738012351881674966125581747059030910247315437402491304451388693186358181031247570291861112794241979370800887512856525919295573434981257960120440542500769757946012675319100415981957295090526651674060827714892526816383787202785070195693842057768989295890129596672053638263036481756063580144652883782553724262953246854474479676440678085792292970977072281518394398109747914514727684618575386902310739661116201416995829346251285851442901364632685222465699370801309761291058649374036792527831589842158892178157865510438808748216017229796339863950796895574362090815227620142470514263788841618693923923021032871000317267380435757500239973304360683076815968365492495035833467772227648575997632179355570079552871511538679397636727308782175058255343096625356961331518477144530147408490252666031022384006546166896702313896121622760247525778421044148756779422781724138394709779419743854459405893206256076501357413297845700093298315537719986975637621056262363483254907778137392699492708646103673261898044525525380843758799919499442414993800313664977145535196498343213692968634739120563141512221214791650967321054589920202285129931108048285876152875081537651700046936746556929538966679977539732807041914912004220953269477426985354428161383878436331872211167673860655118883224446128139085541080927583832120936930044747562428895283963852827850341794775039651055748384892748184607572972644516893907575619111498237674075341536739012976733551209518171801611611835743875074769205668166356972943299618630867130962473055360962734838289534204108632962217090725959946262826048604847180107756416335097752950651675898763462804584498580640357998642540880739610180642251787505713457730358958324348421867802873223436569385576391320639451935604604849561431836034928603685201445803809658195730700567777278783039589953009892044808424876199642098077733785692929289551218108291986977726301525157929088384342460462827451443681217639877134308882309578238859193368660952462525025031635917423364456828635777604484200634500478193725972969791445482356054210250371947761545612877441664779381377449686189722116043752337392095891279746139522509619936189962886954201350203794988694363911194035269530857319454977397792478158097026586941469304740438930107417833231185331636964705690085028593466202956562088301707988908521036719036638724690536404909997654823056000930787748616935162319986405439855009891454649774670410281672807008821413456301086862089536464001189654432804524411836676933776137146377334298566220181904635218582004076523607509714411856834885086776158358096755270298435965462799180127343095741576071066746415797272625673732848866588177246609851184851069592260526738370285882289795355015740231736095311394133436076280697311569960798225153717469425080257847391687677164174380033518107664048902203880161216651042581472632865758468914276237864092044534564554766963230319876544624811669944424465745896654205464181242556105683284699171775489490995456456396273809488397119617109643514063765178801450737674233316489262186249132756848894362734038819531315180707247488072462117338474050332711675349602655552011112440075103262688081182513391707743179940221440961894492872459625193194060030771715348726528512463127958414879184742818712613006145825017851959529612015037004162549076721933348620118566731555538801888486750855620597755270782820073795489808582661386470881262044526390769095883810286786176512354618491443677629928027877001620580625019981663664650297759372906470755780031242423575914345091082370615374797367612804617575978383046384278406673700002429700133093024305973492291311438397099817893731755319081296317142012741797282110037719960577457107239687161990405326202251685122092530218757261887662538884120395167409750223336798701253142235274360874641239790160280786646228421593294172806711567200209105500025573403720501073306743201867849674151159161818712923708088608492567144963913056289607059192656342068920737311110867350274685557835222810586743992625523537831473285994198018094479002065702441452504649083582407702319845240812557380170226922271904438692434364118342370320354016290371801146652685816499414212314445405455507526180287813843407343433070531863758597790714073573808937264281061909014568582692004334969269362599515421255389317015163660756571195783079311219513341368779401854511338203985424649719934349049416268158652886734763869890256557599985242182974369867624616254121621088528408308386440982229234487114089929740527212084231385926431753660586621598437102374819582157890708568385908125431136323492405461242220577535757886761931115930788494949960107154846786914868273484297051317716973156983156336560312245131183171786324596369845976474394275209097922570699075320656884903212324650412073667524823367097402554060044772568542178395358412499308800874576130470009841017072100864882697109612461144421384646302719162355967940641053833323797984893846608129696080466185023130717379411360632827464008156907440511271043558273934944751051658901314405650256002302901772570528197648189389660238485763621646683901240760117277963741848247589381709851901400821022913355609709360562588640797982561217754569064488050044389065103671887247234257745436747102196003742058582307254802438199697535448294847661550231138447233551622170842151938672359515576500627963015238081458885201373352072043825973589570455172505327308921641349075611205467400304713251010649506698043035858039877129244149233669674167952785497877333647262615262123273474183226267234446515390758729204986961998291368876417997957231475542973966637828609225614641443090874258972222624971261729854101875172878234541669587342984975000268155305069899698772873060451032814482603569878284182181016681672136894654616528579628555693992495336885126187043431229187650104795577690120127731968797824135717363480462515510653826200699720022840744078396622136898511898240089891660883286129952090778777907677289817513900037768442876489694058096479669882461920822718775991663117765233622921738414054161788576702780148846176448001686159130397048163224245138145992536682632753521894004242775241866267321425950052453023575010626518038960094466444265370215574887584252438747930492741923031352135818311675374834280413483474990124844236626705831232550653913051726554916708015696955391439962898510066213616726181049282139857338419006524430163060979262590504511972785300636707522759094976502172834144126581077367759965390850987693555528141795927416739928671562291500806359527576260398776471814153721781510978075751915891461810100727456391185867678927985001016060459245786932329916047779761446235156230530773540020249459766395733824662076231055029782553307703787265715280374877311034850790953819450901275425444376387056875918914651565525708442860800537847753764221686683686501753341266475329846203960090192139520369404147555384489915996561012781187754279375065149761380460178114438297306124125738364366830085385060305628605883773694390506981073816767186754253677749685647967721974321179083463393243494440293072289081768967210503812352246077504461427256230543097565054631449679719124714645592102653623150771765546789307661167324179381091107157571241938859748382705178694807862912243015772899157912812414711785344522489967947547194795320656294880447608994679780694743553466481603565513193632532068241365219498231756062162161432207232686258664894924219694338323353088255736703521668102594438630243084624949411991214119532829515297248831021670199579176561271094755904922723341615251439401168679304460296139454318642733415537842499330997029308037426374464801986057049144132326077291064738420626936472836261586701550882170219524120820756182061670545001743054838749569635852202080572338791792738988938585999043858844886601530251699204304788988952884496551490414040107135615110309360958622394022056581171374972833944554908907131391335293560375092646036702327887426506101841698186744846213936890691839614373611105739343946409596360273612563113553579688699056837161880216992408669869215316534383383543750485550604084274749055391223748795168655477074017496374638725730129381966141936733488932613109478618013163931928731067652947286633569580771173258076514306953919062425658568973892211777803092740191009973835971312822061666679669475153896554805769813028866827991304082996574692208747373221893869048886086690596892747679502967003787592611023807936380879034817241829206346278792723145371339838740858918622322750537432921491314146772193064422274811499208111639847137460013315173142518152826258110760385223362425827591262979258893214059727469959444266768512669569341059694424313462175429236914694834343785338084366509474732086487923192922296825230540695643179103322852055487560531387935388487185739200444401611862432613403361474906566894085660290567857682693444017766587393173731076900486975697453460585815881392404549727422476971499813676004351840081186802810352529429547707802263846127584812199470588750962276478472455608693313118807780474351529453675121385218645070382853054643240490993041762507494845759128232950885689810417049088677614150071240394998133163202284991321716879726430900957551530886758039788096154961675736221211504310529711181751975612684614651020412691302894798978634665141882446674647176754943784202814764509768824568242841370859543674608940264614112362583003404142666520696121812466230727280411643554845477789682489709106354461513963072263814933509509894192578865484800278378628496136636556118287593594803225900740137825399884526276408806698550980191321384532908576595526526868695649128005186004521118695238368285441332889008309946703648369814279596165719829652662315514076437083294697064568551325658227400783734848223411572272334767026566053246721039273767498618293000263597640769350920186640047486593301566075774751228782715553214802190851962166940469335905150796342196988969627284179654771721186572248130565534572706468697528686547535461997915694957145507473520942270860092385448133717121688737987145852132724470177738962243677161054246701384963508829177841884252396830732246357272685519113282096769950095884020114954440280069962452482779519298089342602471840763243786897785306778604096316401918833162747748708764989082234735622972644754122540390459910935643559164729227319352680752113103089298224939200866913162883779987744944876571350609713533971456457500778190040344682074129527778833051207298330906789171018949089407776591237108790935254864290194732771288128282649174829770838001460249482778958832131471988435005840734463089342128455083180350180833123837769444613683723278470250071969702198432682882450166616845213456738770758392302713279764914670701762956830505314819101592634241298847170620475753879845875122856836445418107551582883330251293176853826644242784463295469379987508213066156886063605241981864918547898880001656559936011317339021068842581974337140675239825487028691560128916697021999614702582460280814682356592323294415742553244792888528184771157920389262535088762454571111246313328061915980492365043999567263557646956904597428062547407492248774881551590704779173059955618247560416321886421440305095971900972670015111200876870863152980950926091737686624389660267707498504117347253324701791990984174965357112887059359649780904497247737087056734516637564826078675295669985989430336170627070676672686285708079396669794423699896143828957387419172551817249004002455181986686389742939212256719973504521178896946368666158430865595034412356889064735129532400085835093321874075392556341069333131349985938640233307999514206561459244058924057932629595631374565263347718922368671691646677384435976776070869125644414043103808177431161273656096869923006644686098619066929605542026446321794728482322912026536694597678339073011029603174601476190993366844876404370310368606258483356531117846916015298000128078617309670974901224108233838737472828030459824466417151872259432703151018593237056651835593708916184951371604067204621715250652473942074307760549243964339917820619093124309663087118403387393463255298100256060033083067164433994906731145397521955545776352755620456699801696427327031472332066013568293287862594345997054191163419183091620416154363478254752116624061853853399290158826421579562174604719675293684887321468768054097945707211261679096882511071152431921432955176696313917050355241628779960045952253786847828299325690835624691455772187857178637419380765573806121981685361679994663607001641162660476748632607506399724978149121203255238679253803349139862201596552544151621397069599628254102353141095309303509981124060952313067612045487849336193571504826429310522961178583633296545796817212550573155843384531371189787404136533673732089171666477292928878030794926119186668815029005959677284771685631601445849848607958896854024329976979442347391436048152887156132026546145059435792255085561567395308560674325813954116752097764478021738059033599191035264897633744865217324056904457002157494950102379711144005614629270953069168144671949382437174599234757141422490320303367339247462617139241452471309158079941373768247312045213658852945720184276390934044667742909508809151625667563145370229052885983807598042813598987976097944099074958313245091155782242252896064568825536190701197809331824524256442863537707080177931385679642572570056346461706645351504960154430666256721534069028271916173157096854315182615814801321900822258602578490267301248779592216891274132911874378489163085178552833040257569197869020976248625092346865851079231273519200315676417186320427448062450734621887711275283587328357964325234908372609123439795390721986019725879932780688443667251742229499361340967867185600237035563911749566498178462607206989127950019106300641813974486531944806539728697466444661271923530577222949200752758286549899236342012504311016494853467541344969359491733883726836609812263036804359451351222151767392619368305370492025549708135834072730648174502392015135350186026970447220560833411198090208678442974639577035600815825763686067836674908389679880154304793647501132505409630795168598117272994546671188078659344144285448644392639041414302771234180920712801709057675900093345261208773412190800318145650551801521722854905872254645002972255063727616807598819756754375605420284164447403589301905992771625485194070894540057153402305613522645462763819568753706685845844441575567426450991944346975671381184808253916504163404534876538628159395830922584407794663222583932034556140534734757007851718052888464456004377745385547488051810080182394892786002975717489675481806812713595096314207731267447710839583703188767669379680102976250407614432677435069910589593042727730074744564047020712659335896919148572661819897318514652773847651027238140188556021711536160264238444202497985014574447809009791876638902381684054640302980764804998220165096137199252362647467193615428895463708363449415129916706916654881842514033939400344569468968605972267583332499657161442584495924283691178586315742302202455058173985207385113786414150694322093134679143773185178853305982091903242097408514791819192301692228198227739228932454204716894782262772264279289596577943640076282526577805021331516056090516098612743694012163661186885947912109660140433881172948791193524736657110289381171418726511086245902653410978588845193738737703575769264417944639698451856767367223963499205585560819421373760486533095766683734494418730705043924604369959520182820905319192431441391619361720672524051771334175394034713882167366998220885261746258606769678580052842144026393396880310462627110356132812740430896521307966017124712669728677486833402801465262287702892373081224189970679205154152102712953140979775102943678990497469639582108768206769738429312444153386497230645961003261830230223628319848558117525608003958578419214164540265944683841307060649545838975383570893015418671837998854050931823273328653564366806255424241086330310631660663998421381364812497144982270712908892526487795577861413737968478465303824288205998208704439613696437560543527338926035538275572061495970923162196528372398796138212293834346729460241033090946554426707771048390033871906040357715023945056308811916369703745184424116872108995106136749777949071734577971233954481776005065951763031733610122333236258701862893249348950157262619536087340065760031629960340053814939643266418091254878083321309278277786956702544306067014293706507211607289299137325068257338630286638362800617379934552033108893015056883170193792968717574762981557138179509475515045908902099354910528870982294177397674337552989258036275461094719634214361230693577733471709480510316496348959389626041390669569343877485717964229984242861477881879333988719036856318955035299342714863966681823989473976127436400412688364704558473780000986703137274086600886070245879197854149479141705587920763591569656892385045320420583260936643120851084062392387882730243514989127904028932136869373385599342709016089260667335805104753565945624697596419212133234967572856031825132184601690860283236600033282547520916417570824170630986876710987656627431994126009100039334510033529074946954871961567753339635803682637924328723063031644526612934080416315907082988157144443086115457486563713374388962616263626042821737356997865558582509950564959891678992905235847858604093491888417181199597797765920828693589035943543775020502098726774823687422292851860250913150771782503746394592897771385337174434779761592798513663724657115540369983469352744071208201184511415919339990842912826374825587356356989029523526925777196539016909265766421559212603348390773893651779607466212504248475164382105151220694541277624913587784146570232132562545461587796108149849928914043702644970516076655105423793705128038914421721002518427144659652690543495398255714551211777550671074518966210102483917576292023130090219800558977337805929193298669045463243719685381976343512383108161035897011204303489985943850368550730314793525960464299993252049952302159402210652373888151415323227437086510703614973930772116371712538958153006540905148747778037851498930568606745848087241009719320423890181302572126910598716425732337016206961003198906545009513346417474597774186189718696735719650625991135768290236290668190894877728538877706297693339226503999113612597019520254055479355293450678146190234500298307338959282947741832256249837018060960296748365731965945710291087246989059443126443912493440928747049497928394380797423839698556045650622439642939621249537415806202475641606378722593611265650864857383387326289769401170039466196914818939039725142221543586623076886277772064391675482669049954914320047377105884117004150721791237587024573029655366787146483634576439652492246383107203738107295765893970548631690930051808086872288976806570294179412891119311973230838680634952996387522873891082878929490021422089157778103959540806949238327855435587538440713522958871964800571672384509460593387486121689703547268815748762122561645535806037677256443793262859968129357607977346376510386312056619129843520813836366418986932345469983762859914216260613426679886361557315096513689812020907889658062089774392148000777409987811199219397709161263857098012185013842319833603569396673947862617436803373718563435804103230667208839903826030039412518955085507662288789390975435549099586596881767360731200859126292021661077209367975181846734581841979447473234597771714669709780302154941682571321084694481639097892333193059768427677238042963222957166835401391158797204730467659478982557550565369791931579997780882916837508810094364300960814446690502282464135139805218797678540241976463199086102865594610002198093605066493811473870039915076489639595525123472197563106608135038292557855121290528713825149527012001481612945785007921649811723426692070090682567394018971881633997243132980947480035469474402719911560075872257689680476039950191357910626442390319171429091754641726435287583716326844953319360217335194853534621477233594068622242996142922388080195658332645384574042411448781816019714285175673462310302747788856323649533369269901066897782894060535332096263045273997790087758560379261996505206748939422318521458403289513667865117920960890851465303084200180732158535865018429622063813326054448082658708200199342650007678094583247811155512993300961026599941450865191612286344482899397787683998531126457618979502501889116501555478032971828861315242080137351236222503712935576490860441231320340926061646687316960976410989649921696501151540690032040588838015400881234160452702954124924822858727763451343250253332647419178000515945134388740179662788856426102752900161553773509395420814093507710870757742245789612989376958629563201884491177877181983612038593725772741880809442751758017708492644830455530164058245854166401464947990219476227470398922035255111018157260213220643200419298594627359638641841897062059788393327805898549211244230768494198575725473401052959463358191592471036733109798177668039664197127686473651854419281244626754940979727296633983889468720974710950861547013982333479919864808876872424435149713416089841277631102819792337675539139231138418715729398073113035045891030890162066577463848941885006169495890620478929188512900132679591560553001265852944765687338031491356081145720609894571062853999942816297589238304363342059502753916578849011392564991583618030962075610905999240362168610422983949468943105906124175105394473151940719232955036815119363658944035516965317376519887932680319390503433820834091810487340906162853895657923352704996292572177102482795793998229444869659965363362040374508864651081826979304047905613448372200874188370332122111947175087810156905795795391555673197996012015027806054746515016397214451240078386481401932768741376740468847922626795207755371650733617859119618484301500553688037103010463305221651675111462099125748083442850158835802305608689895965277959013630723296586450836860593516379462547480701658411865523643067972894954817661252209548607100221024377323104933596696587764816838601638975451516784655109936058834955474081939536314577158645865629435547979427906064431736137524055521172187861235930930054048221127683754005144739979877180634676522239186055388461869526694773727830440167484939593925392750606050457217420788124998406201470335711298919921537634476590280977725622974360540166032429070492300193402165391267604965253037168372153949325166499102815900921989518240487583623119238283280885385505952861296299559445353798133993259237730080890016127642230857021388171461545969699091422779230816535006529090467532108966519503942730776653005538628568857056690854684318413027556796016276283316170693957075008119500800678000901742191941605398957904473275418554558329037750022785318797890920579821866256179693602861270681166459573096675125360197011194712495828607527384830181243649694307736489247824547762840753737814432404013271828698633063237795098684576330228891613849475070267571006075980664665411266301344027971005853563217743382185172673008648995519526503221149072360202062219364518854863572701521782329980082681827796141017073039208743895765782576205128014271766918436730704914895508675489187680148972481409900627863570982536680270239597998173646048052783235444127713569700026100051413230023367581204054810807609308278495286020982050021943188128960165217445965880658869458872932346513503250929993063177923305888435779816829212613681458214608383707591732685031700308726126659683569253611742377245032930004997813130620431517602207446319299175606679181385447393041364314824347048156571000423823182280019294552701121745673247720425958815322500642822453442555448347333294806390545334662676728960663154627993673849938458995113088844451191105795822119115428710069912678569234326982311737138695397627642444681989376202466207099069589664490459116958070973724927924408738028031348795718852295016352217769913140497663139992699092098823194634341259485835090424202117632286073166253947428601486193256207333074077429447138060861838618272899857125409520884962189103407346669653315966375924305561692371103826310725706533348397294115585179362518837365597495255101850887446902612765043980407367733122698783905026719038868287645450146187570246213636643696475604617606738688210994192643138257541722276499926073175215281151803355021641063059214918979049302464936523013814232525226722810929265083757649308788135176150998888539039022444345828258936562401934246826217386772574788691948641408503095405820474113274361439330348076739098274475960538429082848091418979040830469143085227529599924585840844429964090209402880369857812075693427873701048057983482754750457017218008698187541660798237401745618110791120390792015244819339360049551250737952942768229190499914482647166756602703674225558520884086800541371435561130399223758977315003185874675512961081300308691111919692132711082829746285530360756990390592831416639153026319807726119825874854868452641123867075567565475703733741552206792903596034900131992248995472606312137086494467888738827704363471434275571255061984861164885647745711332015034631571558119250163216476319275263738629564339576584660983971231464940202853351777351197278505452727603350437586129463306950147331144038248417031202306017078830506043552995853271508349380181905182002836163962671709019986701228506647225986428076864778171155981845020746264495450356672743218777860569343809661764437328823918911312827928979636613842081663258915464111640200833146648288352172280349969070898212729569587376079841700692011605681801099060596177379574992547429806527166538738198519408352699188867114998724224983731840466556777466140492910348400947229409084246612992485084423098454938997597030469540699629695257501523930398854362283946610813177797642054627561572506341907665671920775673468145578445897568889244583679663090835030994789707401691832788683653715462720471386652790689428212913676852702544967094231369851383490793328149185987128783775892775534654964704208816049110365400201019482360773986875214038646561381835840015696648242043642694169184958755257746277110504440539161597508093543652053822801406027225558248363218154380127059894262650591097703572176455555711867480755203376332197231406129826358500956752946441946607468651332831655800270970091155160983268839244318486960037650644147702358893189722173245632765781293737199377159081431769500991994191322654379055179864995671767579619950853125232113432939798290949074211750557747622743802611583046007076134832998611688513469187496715955714938766009976179328200634502686149658993355859807915334778788412146718911840611104489208151807091966692136357050973027342859578578446490591802766812743669089622133296063138742488018209712525292042132761406235685629376867448503509356749459332138353809319511159485468019863016295437908872412276626096755313540502722017636782536870109456903330075216026443948123978693351562052539005703197171686152607748867256199689289505356935900889137141791432308474452065016541917886317443017367748549251074070502126902116074037096973422696867723555451610729062644136537865613676952915915956443107675739914106286237063543784200031025577944153142368357122647182146217193010781002424783487437465577518198113989237097468545675999696881618374696382871771857371819570512939384765518858877542724158320522880097036902810574797862795864644438628110309010102705234711407128796533858744652545502133037748512594602484820701323250164290205617420889987439564414695625860574562896636001754167739910449496729630825992041256194274622570413547034781557880858442391660183722007933533981928119857302954061878198893907190474602519995940083157908954533268679031320689427661813564995810530327374076298506605256675311369703863852611755877231055567795993151778810407532456704964951112689485755513353554174825203832345630583969169817238132144520205697419963869041332402515989691456604884079383274598164772755403130429368311685948816915277693002958350047452405561826212520640769987618056725102480611836480278843445364863847419201856938847235271015311732993501995267683407521875137996786918860476339066108971279427339472819726380473446797236860238847633009889025703069603172038659446478989410237948767600379505911207142625176467371255586010020960324048067549684654504256637299132512498567796187305269705021114951642693380738892332175917058411650719487566094556892494063830292564094327750733298379708925114894292416422415735742606764364168130825035469100979398604906513054639691394423608361119159910545342682680750408632346628706549777397205530297345808688101849941882881179168654653265349515173222242173305540632573822377032966132211617551923917539736903316140904117876854884490608348316463411209231566908331865370251361008921728505932215126719179409199605770749445306919895680201191038617234254902288058447440648749482104282683210369826053439859721837207980199193959118176451888373659650492008748887453671614788500651271243107019594739984443090107229812593791476904894445952554481909522761983876674936753212719483226434296957598391110079923214171967317683525073056728799699775519568715747903280707908117579124941162376232027015294279391898530413157460183943380436479544851381283166674065780254048415470753185649527006609353136778867016920980270037884487385006921650014757167746884054868194491822955103788536178158664624205630711625477799770192977999695387477668339011845509137932676445103242189099392847316218641404930722588374111451877069848734914797487776970027575739351739891701449299626930959147975099468386929675905881589335103075865516114746644905286057159511649839851666168083122117318635651675844042007361151987927326278026080620968962312367293138735319655882231014938857575058059269050251751501094280493646145789408547269635343645605402492611685390454595377808994792977760517938583918150033647748360291634262602894711091768492270646566532435173335312728196066860080691524330193018183657669116236605042009488067533861699088062742505861931164012257328256276291062654309613733726112099695840533293979449712803503290720338391950710928146831421941103136685823205735855909401227266426746571200669650835560463929526637133321953060746145410666049566963232063789011835764526524115410404638941009973958692296054280423895892074944507425991091935588376083363889580298853681444555040178759896965875449209236662514531544083209461211919405708902876059843487495704967535895137900061262272183485743605632855539400338324103217595086660840248495639373847331538319721256367601172970059110177429196307506573636041699875217861650344713499632059039697227645683556957129050719772117669203651383242262709571322823897723457530997458707515994362931758401522364959444383523951210996811900083057448172026171852223353409710170786934521089245034753311010143359696443193040631359242111259162450914060427699876348170406853606846199814587801402342536071065914397372779826302239453818922537950180767040952628866279935575408785316441960093170020649304242092520145249720189411309148878740271586490300806439194292806655020927604013039394598899011079192445808499850623677508927853666382992143492391164412167477031274170297345871777751233025190618880186709234254308534780792298211607816057938944861147964475189553476412831500068424934546669393541182158662292425226734008920867397037751398816308856817130370673368879922397279342790314918421851589440412170809559992445425728376618438536949119892335859471983206972419719699762446146993893837121347169952894289395338944474862332068907132767024714645525837458515338982161115355195953352585084865223058712774337350113940204262140316816447529725813248996777410295843348102736044501193840073799705805608203804698604881139864882514193607142640355000733641679435883706059434514594751259542446708122192845546082189837945987382297667756162297743366284366832868760552793256235428272376306400766487648655440000640369552407241848239051134741436927530272438720894364402821194325959923440059739864717413224275525756637696024546587093616851400895324223397367754974106500730828629795171594920809601689228128391510523979517141964363820804043311018402401347906868933770804073225727178573082052756651985823814440817816476409799666463178120256956242334845284378904876839597882654907255073605830345974056304799786919267492022473195215530189439260983888996708476319327301722582120835506481381573618936436894890009400111768422073450588450597353987062227923707939142549508291146252798279489076306119383252129439079765570345435645450650545794037306270212268136510234965942828191601666026359831531541558826691504557782183348227871974944126873519729789673488052473067631425414484181632947448090005069235282004113704551779293833161627614774210496638236577484802776644724947000569809585018014645907327253094083049839541250283322040891738936250761517425059140060272613119037872728830272653628717124759504088988785187356054590162383480896250803360132198288947579553041421239840624745519964780209041268801318095997518005176306177451308500571942536415184957008505166125760214690450582441063660483001703894460932496353433363311688095844952358656928085524321148300943773983233552638613665522878240344834314403731671800132819796013894102238752547476428536619188618835697784819660794197186247087483388579123392026104433959154380397611655346237048794545150737676241907208192785218165851952987852326891042364876026696046857702043659374835589365329615993138591162821712125726142930212900965465802871839390844978156858761017286663497722650069773879801910856278779118078832715895655035568008647152112058577857831477046380534844907630843270977268183471504730264453276418573011221864308948268293749448364308119451316424650281899570056936731473952104550157564597376127087710489832305043082136695554368101792151598019664676909562633530903278374474286716938566046239383900275331969268495355444815858894391256677675295571650937343947036123400107742051373487844231948503959621757606797623606736082484990053915109282016978230364640267667236799517376253877437791192230825899136995224258841428449016515678057730085934601901336388683409412034994795856715526449797494332934265322070405014208743328182663195492873292458168250197674594707784903902480288026127647115742912368642809674375500851727825077468208785398171706120361468875921915413294180821689674377413779029762382610346503615585296629699478156581092200487567110772617246108290991948437850879777635987000118115259723431702205026692993205862302040076130215667585866841643342186257480438297083004914854825971465671120550729906666356683614441345989657345539750618959050092878930333008785407275258484760761042120971863984386544224251455648074191552326388258515399783271225123599149401247452193880449031027090367769828676724152640902158384429164404197787883175178259991920827950029303056362670265061660708870837249471831485666404392474710904091368563680807712790556174783141859477327430905319443762048447511185479336594875982015543793766305161784282486259971804202444730755917099678659860957848153340902167784342777178396657596579723209709060194171995778940743722948399571852505815030605017997323183936197150322344178171827463637041661742749711368426827511853571480851293221599198891780007458201310912168622734046793805218323298994934395825380095947201402633340966517074661667157583557967699368246429904092292210058532360957334375966122974426127592608109775988611255458492414240961072511799786461016079861359256503044382640490323367366120734330235828044823800055155469516514385704643738137120944122613843115890039311848151780397814577970846792422035517218885472915074774033080259290252794398169011362192314823099890685364739696126703130838594549372181016170108994222065734258555830154105081984243694437253746209590074622853478799820588073923482433131080359071147455576494035139576841635977033217932176139488673589147197013160340153262231739403135699733038413733866779900629265109149364425255149543384595072462323440485413645011386712757929428192765735625312414252924828699270120016478917517249320188024725047035452870563134640941091798937190619452184487597985691689947842687099884879015260882813323571229135547968974912056860197676110620827555269018532484054293435682750448203565304216854377548794600652819006736856057742120985658066594683630708081634055812618858586108776971330659926930195872209440091769176091727840670113984670107859166284551293124221230233305147670552841978048046292017910902964173396213160103868258057772264752347263187109537577346158414009742316758227203389593869459739287191516795588145248681903680569263088935703672865010922954506599349752865837148933026752879913235849071314792697869278196704023175303413422275588753581239603862727873323544023029309468461459555993398184105233327957320476765537092347199023087314535943072629651927575754591168032925848203097301091774036594491296797417336810769306142970201230671591577676876475758528020344450035897838532363382803072336643121120829214708184802698108077425738028975122485906469656877008959670640183348523950247477364703220797352847577383882396422747049370766677305689657030526094344744041052434475211126830961501243762533234349935661161600298382005831144892659498272698762142349696879548441889249816808095202750342058971319596440304976386706721765094009517746867574101664937649371867252810287523244670578456008419872937997502159542265503755802894445136873405385710653441470226745642340635232624837383691875043129939145486458697126225615009296275531433957334516029286178353610456019102639101283219292754149516847370716503090942667895749116583626986664951063297220907629638068377200849230367763447215327627849932971488427470314393267506257077967497354764942405778820140446104482158689268729131385522566504905100125645889654928429678690236704829587282033316465422399624032464910828998138754053803893370828164893613940465113779820355747210828048131659693773240802220593553016421848869163997473055070473479019736560492953111210216073374402487962702286449304844944596759165836782198544735707994403410960506909226883744322839707431608841996255307144614845469228607561469798542672559866222452621186131581856357001359308619174401129013814481405445319401002770001136986356113672405848644105903505475858812078384631234729902688167745858484870498869278981132400085059856150857792971463149072467548481945013947395428843479090170956190629591343274931073094958632874183497431998335950036632067863268105007511744690364909726734507199891039550722190977572547588478469555030174936330878143897376471111657970036471482892761815799064030143816500144946578569069481673040296982609197689528163996316478502953542129774973030717258312205947117153147583640886084151833449790287315187511218339874179362429049353048931154534896262456574026852983650524610952332519186191203143452259517694297970746683484400028874122125807251152732370319357065292877788883745509510652166770021630992165531091600999125118486630038527491525338105566531705751323443708992417160949571369086536165552237188288591833155304617665043492636104102764111657990674645414285640482297964026846103588647835605381832704078251846346371435607695853440780683146952886834688187979074446964045530864273408637888058429299111850763849791298807530176264358691038961355445312045241244013671510299235415777600826929235363211485643579245954566653303627313948268170269834914520927236805404890253635820284489408407030559734228571838847623611492650191590549960272933168099474556332265296717393166396689182634658437279941234100971693476756010527831277232917408371269098592924897000036380416678408684066775540808791916157074817736457113164149342695816191821931969529993138239074842805910795778048122475920862547864994281614121519308191906262615509050513333384558474715697741348755574591222255945649560366711041753118941164660701176592217988427542684707598619149326067115803546835050301905403197905406262484051499949605707215161020652214212383472861838568060634679833515688403494533478536839014565850915535392459938768084017784341649087653410723615367789642543229230832989288861298673812565710697103238840310894592012929864631405695013045669085141862083744619365444619461952416295067028744246106116794592448855163228369037791295299292546247033898507345887520017608347161109299831067708867972954044871126722803417484492973313672658458927852906809119442187916798645280529661788556296128067303399138210144691172446362464540427289323066418353693496249302148115330742782278737745610601060094545410942275218158222814086875336898367944143489524847746575424753282726105604312597596161517584181664228598062618394549350333061204677177236206538458728522908946535073897973494263787703894930129250668730011107552126639779796533595864349488597760612258625456693284307682129865526929589855601882585026434667753610757177242724674902024068954496072206031591551464614101935676702980261191372262623637158516365237579066655300248219298817241180117789208908883690058380352273721422509920647399353270425542117061100443720399032560448587733396984433991913225886266024111265073689390497593322004285894348510207703762510075086864917801690763418423711909346532434168723564966219618420180343753168941050986251765884765772543534931972022855369019119224913836309289696702920948451607703958495240512848240276547416724907275645804721680330570275986788107036172726860353806566581583864508870987374803634632618636065647231288916869037258641120356165605403665108755042338644949211301423159969771103658635036849670814262216290406041837372424242897407323845613667569127271648535714503840003225200507988687090876028191461249600396704222900145700498265773178150253528654830771441458016718222664677889487870584815233617118655380902965209835237655791516454893123946177263205131642899818389577283809087814881945864077551140236677188633093882600678958956861591037853123959357331408786513031039970160293011613209776627333926731681549511784048796677965666914135903147973728952657826778073179051928525971860159250651496849853141949137592315953272279507427476918123704255108444336098088723943122029894948320083578778020359542205750527986082730717059817329757528759461592972614695798106095156831308284722828179060254219757999530318794438743048752316921347478049376833622756163206721356666570479479927190016997118583550124264735001268357593886017958165586081531545523489222984796572829817561218387413355600697059064575765898532771506945023266316653271529999226859824789163865915814071092009291696973325695836801892577826100148462079069540816591250424192456745651187817903550633585744089879499302911003018536306665503168237332991380087282364439310371114952928609693467042011858357243506763315449675040359700665259682219979533707686618909062428146407565058226443180986413170896111893638469366366083651370249701209162531614164837634783612419806250098673944521466017933097000378962786553411836454970441317996362767600593336160676891118983417943920340941842087282102358502243230708145561722765662544221045486976777436253702612230990675082377444346719067878847511231250476441039837140083277704814055179015392125090295041889085884270288426990564479213399998242062122636001797812315266636462030485887635324409517239186955489206847708981588753903594877573894439059611393841660089776762093943939419403178757214804118628945918622803438641912705848043833068169803451740723621653140472522204751687045329893814128902815474522437722167261289837378862779439025791157585619626675867127662756752228190286528315224857338971255194628263714173025547743377295472835323639223982488967392040884075731163245781784408098154532738085866551822078105278737771140843936106671579861165665184603207440628595450462965983593255032709353331063082717700948898022117124934215798234949881060527121070296035547544634772757558040609201440819907161607346372142804117685293603212457913604975053991801287999260249323559320362217639967195618907483998009309493303785717138980208774423764438929881594321242684281331263912900064394584434029550998246767402860588133762296413065848534581795842746020196395074677028097939638869413132304506844419793052236310836839056280175405118505764932695849977681177343312649347309182813195811367931392183400322482059589436703521218684621730477632908831293837922965592949188484416591721215033401535663457820221264068114623038046249214433726272378375799243652082541304260407463529161450379571531823677802188316941932964030992512168415056592805310737589012081704688856543951919896858896830195686788362959014968592974304578629630406648573172630830429639503832412392388295616592921005970302166383393960391640030357875945456494152826707946948212985221959866924190516139819197180716567029746004330564021386121534899763728079076774562168234204067157738911113308714508074199157952248196221836487037342496512126664721060448020418452533265564028948248440509865113793607207776217141636720828995421543352525857364850855878682116437577833891292587916807218058597691589677053422619382532323487568609857900602932281980428632529901933615856646230505895765442341603378355493601918279196386654474855796877076399808745397729566494330243828196259070814852840738265352096855833221059951909285724930720764701599851113335731001229183219447545944262378973207297174044297656925168386717838836349468904115426049840223913012582466193650900270396373743240482035802289511349675792093937860297688188608602022405080709056185654135657622314837007745506874096226882671014592682070747161005823855206086655483666194249273228472264727249764543095869500998410413334892037394988842157481404597874279052916792299856963405042017935025920792864384802029691045241817406572454603899470316853531151492547111018378977122613465758111854812886685323858766458167922244823449769187899579974080842891353103479661002312207800520631539071116338200371457102158699077969186272879888092739476384699324087399381875332284995424552990249521791534247266283571371806066711963975841281289883648594849022767195892834071089640106953788649339103579684659712540109032844087074599031527339493512074075836782007041750629633810730929965758324892575396809721859044184968103223989530470713336755853996982667157301061233924070779431137748721088065630774926147830186992061284501885771243671481418099465505956673470636173453007143091133615484686393798343513656415475905341346525303387085452912784641472800956602693846524882382433874413305486020747603218805343119553098133201918250439913991437378474028033431218824296697962106063575969039222575765796900893483778733571940088730989082122244732516669408214828248900672239684507783794855115762460512318898697669625009479399324779756802873581430368600701296338923498435561159709511962799979608946518471276859276117423208077428818218507206417804116540990830140178553183214055329101124199832234002422811034678081294663350132671814414041493556960946069941621081864781433353214153689576981901875160247831052492961244015560985463973230470210704381594628674824058617608153777134413589539390743511512467291138383185419435437827547132162395636906234097952847769035558094918914835646367965199597847124726864833922645274765156118020561648729829160784725777527966866535931090405150855479518016467464364449531846457467288570797869835095262280529062103119229215404014735570029699116546624433175678217515174899173212345103103790362297799274427344072585244821245187846885152084946175621945785962768964514150681362659269903749747810924041509748903229122519592979840929761343547084831624732970112679322251365037742510090910710858382379588593311694217748123817830316130392710613194352395013204458122478729980553713424131606889186065394627070821608644686782081703017738618840524177637616801718147235288598297759192453378458692734334764838182376414929924330772415299913920923781143830213067727266494587925912105218524294775197517174909766621080458558911752385033580542200774213869100873790281561092213280922527195747588542971627525374019880531398168110673353287121641746755794040974046468978281878576404634041889621001669156582270183119096101312495081780590041282141749800505487581873099038179822225716824646984816515113281183838721573417184557852604226820319764778816211756521298624175129880188558551222599881712236699133682910554573673108665683174930223610423568562269537687573942878835788492454042691922660478742720444250381214925639829111816429603055688127471876419031657047097676076984809312890231284188328878123616904575304240290259831735311336276219202426728125873146957725663619742424050156215607356972938568478772372982718206325634718975976895448433568344489360822486478754243273647394574691107594460784217938688365890562971707720112280051922982971811903358136976771819890593334014685316332774089547273243741720326834130750492156635851507195289380677062763151704278073589444622655796263981621755952485669445986323017667140498175143739993195661772779235686652867213411968843725186707296814828366477293525975352032973732573527957415657811776943353450835573409164632286998970500907667580294021785906258849891673398263511136020043028672029477363889650888090902620865583441035016018428436196744793771835189936469991315847709013563900666776375659372829886925452550479964717997686038989688302580711684437440146398763029680654765222124808921677707119711278714015334992842426160206593640388672724256554515107847069803891533614719200768514330050562346499298453549620541837765205769789704220635000416688670290148371795075844724070784141369669548962213496432288591498829020541582807181312768063156931543107470044999992184450486873578775151257349707354264023341752033587536223168443387523741515389588072287291072427318023558416971750397835376965598059004577565775918060077566368541909232899763777165247612836189186625845251598285815485352221858638476268764416012261422179259334413386184006976218404934526945411241618405680494152521716230875032547443029709194960571154237317488429490063741699399617245395920359342605009138501456157688937925150498879924684779100513542167274292216921175731996206843703888221344961678989553851295259873971847373564179918106949297377537620579982455050414626050212601563261153163940160116512789907945616439963862712590311216152978191965767650805796221978564726557944891066922248413160794199206912227061015188864730973325067840372205446917077643555224490071386574553015273029637757395275973204274471313278628257588513398868213153139264117089581452002959296543153932179565613943984422794837587279930990981056884854356142566765634520026477414683758099099379620347761372158222082025257121964962035768944233989377341452656462981511837795863897824881044475117708160747125176786214117929799380678643278240486267267019050319545301917845688831054508026334868865230995461094933321871098693485457490613134561501069997617420831498433488095287200646825317979224730714538762348801451309902325678050819868809846627696612900895908715660443657391592093290078031219284763377048538652879734946448008215641190062152128331058043989496257179998623478077969930392243071272297229394456352794587325162991771743745627787320842214232317896804610566600200117439476670558095103635722856629715605637519349383523676745410918057919516046560705678898231112880103734124092732157831980063834439375054677628438670725482042766139627019193486388568875354198481751913212273739487796420200894276119719123958101622669591740942064470445020065024624200575737392348866599889031407078577657981834116763225575595021311398206140589902139094564351130576291781738621335453280707355895009846718312073068033995459688236026952013794384570363366161578814983738449288586392106261660874046571792937576374737804026319972945942907496398404951060654954732746892607448106908656243005348602671731632815886437353526687353247526676810132853929622896114104794733634182104066133162285538331409301967512322030683452323358211307992435460301904267271485760071314977726386892307200507608552166983282251550133053454101983877116808728211548306405057366957716729400907650728144777058922130821622369881902377900678109855500741745919365099180761656050880407672140665389908172712318886579201636774945854357618318270113585063509468329230238124211451392920307141786280396029613183926293192567733815175911799441429500533910735027171805810486498047527270291216504609697506461139498823981558045342028144393048014827507635473113013845946675392355380745072295200954942531210132077602502574239220682331475023010052626378662312778673828559633625329343543741504533800481582964810407970171157429018654919883590619790117260724087946015248093292970393102831974683573855223972484146170290964777231065294773860783773417782724124578717028206634840697156761106850990638347354008880177133299071744834430520995086122234898561992937334903138533110537008700481732182028149662597502350421878811501382463676811162345435122157579349146877022329709471758362944397678439030467483583573407053946396498641229165056270404803752016271964705538352831259160240575809856224853012465561167575077553916510840206672701936940534591087675421329724786893724408179979155116413865555685201946548182434653059883448859438857473448853280148482511742010632704771561299702529361477332721092167004056656818169622464657346808269500161145300194902544271852930972720297923208321304808477476231019388993449451867868421188627775043566839275967112336017551164983008312541781152978633097484686472983340226692374568255589378546811064834464484344023022610439412405182619271111770950174507253972304828629179107055448140277819284515570990671807506672551752199570552144442310552365318401079564527164431537591845194236717535068895562523076916517723501200445134683900932739932158090982331663575347988824499329019677556328067334094224512527609326966843331317207045587311005439082177095261939486102119249680350747030513721412141528368565440379906470356828351579028148229771742585039751859264566613911997424664024830482051434768794207707885945862672463740619031638896176434183999903773790763829707315424108738669317143770294893758674639320268915712255109840436197384174013374057214409822299166012335900245959775228162329088868552904331987465158615441780673028877935619822208739929533067242113855625481205090509081945365371146739329373241106668794313224743605445322745132753730569242532552088881247966616498538733901139500377021868329584409306597642464728858423005825450440062870732027140832713847566144673495400957921540688590930956988141174521392712543632974504087031029840101501282748840936111742580677495446111073047718753082207255569698302388509431816342888393498413288068857989399274740425232975073381765875101265914980028465714428483129186874146342574803753254586365658738486780637209248792732306541217853550651285064621797027903759564358801791824120828331776991980884194338235317140802778473744510768872796879471916709419063174914991243828319361138119575910325087581707410020039444356193668851546706326795466110229681752273499272546273459070180759272180830755764022432627719667242540706558516260767865654711678959645974262907345199255503118301992930456148278156141015737404401697012218191552224203698874720968262277228843618989643509598923040484430983790508818924541425553625694017678368028978489284752359634094496492105755736574608227464210992716263946862399987947377979127686367344321385791204508219251980370862630786600017847894879654051645086044097921062068833187798014821076375280305457961559120956736621291641775472152656813806076053401916512207135457830544962080224352328463478468468380049003913509237255535560837870005036124549939959180022734732644775864567526528536996881988542460078543003547843453342413533125323917132777535933080625875507607494241620875107068386487015070927028575612075172844817576365168164607307689305457212128479379118634006780449395935688258139071679754436017604254646609629628075251181752894621017061317433336561749345519910273211524767410492687488834995923105607759424566446032995087789208556495160974470144426521754009899690055866768970783622602639244641109854717069087566322230227720633124265479533426506857850788822603457179307558743011000849451728106566731409949912994051378061814890822167276240545247977031994186852607472578076765875369226666092518746815500453164544988214180547513182899020782854291149315077407166894963303019684247798565165078844191051701067319250102431944742128178720716689725468754673197029058659239513488779488551083118855078738983827264447781236384312835209826949114605438583734080026087662712634775250484089809405111794412201093262473338671629580727391593499594666211702702688861370778225865462463018278400488503976994572569088302788969764528131351761402959857768453889345520486968251448620095936883950122938633580736961517137543517188508168718263546598761367081948714962330969293386485197184514345574143551429734283440933668422924599823413916693984834874703738854280955176006712766064609352314929972875239162937852816073116314709148668923669050207154871595613023640059474037153057149810720537674940490346348615894109458776968744116228597352643377323195521162028257209310300391611870198321683791839930561961210354540381306930580250889520589071491692503598741444175265377073687718832013106449715747034236610236916595103224600054290530688430546108695410861254758857383006093153888201651492960594430259440043900876471788947051432435431419918332981877928001366903624531222884973914795791273638998777684717480470120914992488167039023255299050231925618536525251410331668733892770211097671629340805598059965266581818516487941195110033374825527222937860860715276605298048042613982617688627734636512997394159549500586919417303587623276350479075954375076911785068196549052100760374533683843870720123698428974836274266603734048316549851667024950210555824269702234963344137616244505205080462183130027782653295597164153100038490240652834354047535858479829113446457526634970526289310245126594250770806832718137924330621540593231056125683441729000661089513769565081493088109401530031616566012250301184452660366239290343270418581956482797990653650792043034503419063756011930598220393571858371046761857963608493647917728840338119215267057801688051601025976583378647429022036271454918552152305059309393133127222227468942323097945305207003405582169448261846015406137906765862116448252797106550485480555809353122072215859962084862752402872849356518049811294077795108324300575530220180658353842156633113229147735463330008385900809161440858703897062586454960014190510124851080615315485198206198929210371057682780167276596745594096073832670294589823133041709763180199296532363771420853159458292182423174587997915072635748817905636539162456754822391752294890560631478439245960945418954952668840193365628332002534027283890884031546766611265141389806816053095748470320768625073782570810295269092822393900933620895191974842824979646630228292001797727233911992515203632564998497915385967515623941633050557061642585376491505513153687459375999986184222672485444157753110777972005869873719353963368848791989968219850527469280742133272874794570891879309086683396310491538250918117621326820688963443942686121381776614347229895402121053473386743258071915876989403796697312124537738238387542669193822631241240668656531892553404100109233492265701368981626309730001488504217764996527480659297130757278641679282004163509128490469582594846334585340000347973658990959998499430503895258934515525599450659802024656603823028264961212943728783136247690389353082858206381720772646024766771754836172772555002289844026671177674116304417806064521949272073342683140397740749937565731778690943805678699324350134027966524336741646212121078402721926048862352767995983526359087780656239518212557405607008003262501138740572954717764649659217903801763795312221492199072385617245658539943782600570812613016699288941421119071044282082433706962971531802490668245810773625551130003350419067245965838801569144854791651950160634684765823714965500991162257985470862169290830837427959252783158707463084692372686360009851392751979105033109259667491746441545024913606836879879757289795253048869701157113414290057383594110220276073535580310233169786751117933317812926416543796023747259461826687245188143819600387171062383520806936673540708375377628172606752170765225625841555517233595635747505773819192261698524799096580053431139633341118077558470413218511616240671414073852588809903405198090829874707082908648314119818240410413470008458650293672814190199439309957447543540276990684167283235389623269677762767418310253266119713138584616594029613285070631380837933925871103363601152826424987880571721085919852376483741872746889485796001512905116167781466948171585089427296642413705554079411626430335170271548866348163125063204551054996022345330703524819322876507496349757072614305718339810959528909416591585823813949915597483327274833528060099974098538406888805203181000788084784888937729608488410046825586687912906934445719589414658659663032554126979345785451791077946058282464792613602425837451891158564954387341691809685758103538997224515396699647186107511481210711957843562184517764909675727681287037113996405674375536498426433394220309735241114378442607067301615717020933470530177302211874858247056604888587416671974769519938286755918229674314763582135148979822740474340325601357500059171679341390804812690323551472307477597220563061890225667858427576952460240214285228104540681861181903757031202552841642741967301447470437946658885651138399726768284514985375958181039793759210732381428219075536893029089458238329845928452593818467554900123767375582386470436431539648212797128471424204120180986396758408292574370900053708491333424709455789203709253923112504314203789798136174819591588247367205530544014507130590742353452663497914275337126578295321064684828780908342882858057740468979179488585671820484038487697279642964929633404422626843246586156518656979777699864174916377959163034081779995745155442247129694961482735571464491864173304459808005618965465816974684552228170866340730479076429612231038564750014856600272877801233663023485070512087542042017709102150250400083639654336312916520057425912229300634268298632400306886933508501467226397539340982356113738837765667480065690452352901454456682034206807357816724154628955524282731542466046726607468581207624683753005297726478218226898593900809755984937473840226988968564116670656372847934539627612571542374811647796765767047429676028893148653186240696351320374509363439046162692078095913569138585992626819754184154548995170973003954334080383672122460487181302962960440635873812296965843157274107582997644527235138382160460569955451639876360154644757770877753576453689399030581990348609739078075350234348195796414714408682327164100323122438912892342166128738301880091845770538351783132049981945645393670588212640117967110782676592845962071734484223950446842390254198880975546444015411036690220626114835946666267683091783120333973074586134434603331949246698933891028669276967416486759164086594944784911947646342304973135080116864795492888637264809772956237138996308036742590872845902997453112351319483251568630508335312802667689873751774384964136544177340227956759559579746715882120472232074779510993500510783964930939224531210597189418720055965309240908154401620863154807749874913161428096673325757778860389519608364233994994771783093685570537069055925887529539310860248022474356256816299748052134377455248346214448727546349994298971441893168085790244930220788518332174420138811834754481575256354839359785570853188826075352452924343569025133404147770713927353273191845704649661586927005252301002241935572098936008402243359690078338073409651381718134705089321861581051690572810532241373490427887217766964737900082753535996441185970018439940110627476434427536283324602974791687951451493263620034524629319206622104600306746431683546521709496582381656154076978662640302941638377695208250113756572629090548569143029744760647543675026567852173631838242116761034595318870648536540992575370223140708705579355447595288036110192303781160699858382041411531881030488216154665765323244816916579330370290282994321243941371145204836445280938564253956006498062826963695367331469104213634431700365799793113076315646135918530827134270866013855394482734899412196106021768244827748995957704822046886248007229633108790174958872713652397109731650442888470225044847059452286180586861577152976111477721729721844150079825427926085297883324722058287636591522222452626277936220866000419619116366943161836551559654959904853511460331585765097484785405365514091464081584316155906362681225113276042984073616447344546878406364984298597431118941071941245091926983662930329747874098466717316772746782243517112170902130362433555378780331011742178079714763537992373734784846129976679957920103572469084621679948064107157002930102244996178186423911311636438742246404900943531760086620886124184180998648056798750936883334666570993509779109203557651199139758263834732254454397350887031916049224576540276955683154797423513542937897973569818312420714854993730074367621228126672605789198802667502184673340437016000739961396802677449323052281918441914339483324695772948141043720260159524119301814223308360167784083240165853109393462795942127450926215884484581610334310487269848754875875478988039593396734849267612158950511803652677278539814122969639763083372202580651998543056084164681908970913490693150017300347387250284017899381125996549336823166429753408286905468047903752846265792426245812984126298819883537907462981783506299994005959951372094773292916823792893296591498234499813401527055183716117344525456830747232078044587802116503328645954525779732814313863637331575592935298208542167719749223429333633626795003365992944110210360440597595216176214372866366530613380385863516443919038441509950462682231152736769970684681127604128986584110377813353991141726352603578162144482414117241688748083496309775346025321603373710906093920160370809356113985711605125714384867070615558418752031689373516403584718259147190914516241452525312644075529002134747452687602126964495479385391436769860851576257891207741171352190564393947070972436685696347204347541244769129483754476826588757423064991243476666455086407051826536815272022919121089629876865616223708482210430951581066641511762419127090958541659737438576949490998437592539161678503466879681620329664488700226658972695880486529712554161321619552821965453450218138679178594163854497892818962966799547068056746001730009987864300560583671188905705938298133353564647732922185399942315294305230629977878322951044124061130643504480838154180144390455897211412633451392891871055659425568929825560784735391851796774686692931740876560591431819781508763715105460078101445304370085960268355467714018329380607338427316482553634122838846615372481703314937290050989793730132387182437461218156959878885951320726302990850380767275854724319830080969934866469210228592698905615109873596368808426469918400632865389311590606940592917255192061037418874854961612583790844051917955960780874017295580738286532215275252943583113577196117829767807512337579274091987101707216359647169863382794131410097309659406263469897460925432487531643119400825676809925532737767930611277572807962668713382718375825296929016441770047325709410440587635210537785952880492330128317322106534132377494355915194611474034975581322991066529390336872236479336601478382289118380217005627366902760934699082082117567577235920100271191067355348484597788282058298411088780195266606329778364140815849962800221273947954665265906901724527527274811095153205937754881682698285944105765833649927145537398724418564889204911029219934577096150816816355712316641927361180830260425914076218114121852196010526313418956848184839020050156032023281215518940729665368388568086881146696838099128130066265285580275114903525713850445339337144544905734737722722121445336039560799156615204566335566978549011332814791645635158111695417292574020109288251392246258892307593955265272585822009464467200664621197544772813353285404236785509142812022986292319863467291113997765655986134683642664559852049170912645825216479979291463439299025048601127328292449649752614022629150652805270716789175512203408624759245550283876975152099465996373692157358771092003810496863120896637635749031532891382641997249423181771282252193018474332460519369852790987327106039972423782813019791438753713779472167757868387485448316082659156510772075235455561669412837711199824263800569045363664773440515044452666714672526676263252443154186953111723722896937775840262150996963235549310219129554883317996215560639861765373035008287822312849953622645685989312468028567449471182313194032909737785725423506148328038647135290441366494059785599482022030079402358205893632674875155990468008656046392246815428574904338715081747479241639418784028856244594481522427427400173605755138725509144080025863676132143777703402556636445370000751079378449673096424634094700203147852597266623080723656832305402896962916484668327520570721311522117976166882673579817639909081072437909536907351790720627886938222415214405638478302355218980386478921272293044545592254073777073748644915710895817329913978544493379046654824600097323692265166396614371001321788595777822274104981169283323478821825944416157222784285731874860213531825831031466978816027369921219495942632377272196990505182932059859252904079649822878183521106795898560813315852928760395400623799488303271666693190853005329834495356645906218842341113888143355868306469795136692516820906491157988480870545661581924526576756989668159081799062350700790022336852852980062323302309731701139348796188500131792348731324062446910984697237129591981942416218010878617905554494248676810700423972339948233071420903986553471855509720403450666103559890130485017695855474277892048212016438161139387745861459695172091112644003442601771446090988720280909170891966274403538995018563141675368567516328731509608108131603655227389741672511919794886517850183455080207656165886153376175765022330890248415227702539554173464891417033517977596550078881509036391302701017440549221467028798794204715989104160419903059252422911800936872524181545349282300880101713631650347803049457070321628794474694156652706623121647593926300193941848244008434379219357990862838050597191365964475167755381540293761749682965884072089106754895081698871787577401260806433720422102485125723935314020442568595483543480034274328985883610395255314450264170209433494208771186903702404592065270480381304452650847051400422559122127020427244253393754805431722224657616741230872986392550168405000351449976560383971958750757079415021799741896053652164835393632173504395171141966715692333370185813860259675840302566838135383271415306050653508991561160203303548995565467013930297278379198980329342818009805191494743920851501797005682706106595831584188407492239654570871291110437727494926436512191007897107659394967019156579750598378128328019687936018306339187106460663680502863762730477076084765294838762510304104378194763338392597999750406805395226117193975536219682115078930079203611764133673730422880608149878339337380956532259053087143151699753070237297576743152638252455022372550987079111228659370458698835491586205246835598309860273057459108253263889000977197900053029292509525265749844932205186408107436015343115244353634222688374454080750099322787942648750901323774787471722253663946057227852903814700443467256913183971168674127439275700388543527972224497711490207978341544266029382358887213281494986515119994412501286764034273800836516898544386893569153396895054825682923793024592827317139050721638590024656696051171561974969698783098061068004068301702218985045560535702238067608417489722626660038270745503657879613623401742060379612279814380454762723712552463727678133367268503582245644685396052315984527200381265549386468662780666229233893311813281848488933638252584147221599592793497120808341938728846116466195887705672204274201759793516947696285959343425693564157847447454290943443544347926905178638987584885169045476405072294723786159186607219416688273784794209149448580638445556853237748221047121913424389573991931204495082598075987692832641558714787399747201772662258956207770605678103461677572769201392647379598513333572461464573211451873444159359140399776731546343266143179390755216590403230810777279586620446403175699115259395904111185244391171279397485996170358096045617762169869944267928704918549137075315054992662888294908595341992664254886082336558025369144267377514885499462391741688558253003373708228568432519606472467138352756929991172106099375492998403886481222074310311798565911403647490978962339318757368633460716097956745130921026350262487295785483970070323900014554083459292678307621377601672767521581333995649092952894574735038927659159252301996830734294881419251474751354714915143704297760016084250950983388035973565829032490253812203750545159532462554414057097034930853990652394159222669103433843070851616355914198266835890111551015504429253310945004463427527356503284973114436176559419344426245597127147845606097511360082388295619467424702622404223008322577260715469863188524301061162455137840273839823289947382778210503632354310833772162907498407169627772969565553991756213973694597274941458899817635930690522538176996483217342990593245294983586039485256383086609484566779468602335734050133018452601319720331194105142401507762973254501229572925888351845868500262755594267911031111195822658959429632780233588319347985583626753059931342732231714461332763325583388451037218544112698936966607930845625186157642397134577391983148929381759747243672465692434562113183793534321769926385285722682930513561678933708329264755683862273942767132162228773873556047854560248325625045676379778332617822980433013516165918182506497101121123550785319636388090868667255639614805219322125257470450598136504646047908631355241693580609250780447382987801285325143039437427586788145789208055639987368972104794514576732687351916323706673488182954313336428007884019830504223987850342679476430558472646893995760105512391191218540731592962325378692965142918129391357928308793186738840997551589612467874863469676723641247877255852023237476807518888547633401627645725814438791243122929527135039978438307884910428870464935846001479154101877879225357998511656027962962670148565722698714165050145232988100734362527726573944087622979685532976721422765469286917345884131967235302279097644542293306549077238854304937974597314318006629441901018181840781718538440662942489665343708290388959251124579167540463972200064785665621085031134106796678106901762095121380049557060315889272547967529418344644355941691718992549440347031740012292963793878465104274377365441877125119201174985672455317169782130490379796883151217969775557980062344945033187920726207182225305771302536099454929373707957985662847403185441624145709160644306011122332639730929152078297638836445410756273033257005999650410249816493173620241472079367353803403125721185942904771110612504378726503876816474786348923479106946651038095423436244487398447039895108387205346432692904837951784783928527486864797173949103213294503270578132567124160742218313777194034223304744947160171389963272512748790130818217502028360275294056292877649899034882589659320008669946944769341274037007691217622577656567429300328884824278279627849616017350165488438941540923417533766231682084850898427303397951656629612582811126287084872700561801836221856546613134478660686979183721318625801358657523967451737401508425053066600913064770350861133008756058807361541334574000125727744342345512793396059426087739521278104303864249506100601400794186524480364671232746095572756423735282223984132069764183559299539858051162986181354651974759410534834361056508823459957096968207452349588865179433570004651335262918231949166004538415390301898734151009222837393114415350406177014829287502397259717203552634162619015276569068791892677959502817294456428468812116341307958037641466409085626838562856930685083571287884541204595980645180886563969487098906833720375615279794675031071586965937541209624628444392134551034036033508972889845989757444507071008563448175833234954422920297667229790912773426794692663817910722526160274267565897840659115947976705846244255239881788042349215866894190028420496977842186776402173698180195173631941990472975661840246971215947313500959844910788888976465592584197542130445728938242832663156844439097197060880898909105554121718326118297351119282997333238985544443669508621826002581609365706356150169992945373257808396415034549812523067334120169882188815897891121844612335252232169146196753433499379380152000462954662361301947382770851381104993135201087641632593451378859935011392293351289459486756137185218779807339390096246242522033975027972782792707967271165313135189568623375571440881484737344937599527553510861197143111597596264146101975991359079876441673536283392252417284223750724399529496410185135062660584295952738743566899884816510099384682392044476987884386131978700591659025768546924611809098415824953855370260106770227617968618894380141995621034053567930858843799952621618127342125541964258203841798397573068291864041203939787098603079027588225361124974480468946320628155893610818823419268218489662598539856475221942572352394030831838990651701676972299896005421014898701352565014706267987421802510559685011516257736909612343812497352785782975666951944256058630557626899025354410130929386859531738621905199339664056448524599990892602138364655972462746617261984022136947183526948603394962896191047473159586032472990281339992060508133016096176654437066510022363205443972758712849571029741144691801066611562497317436902363542443443955085473572489614044080882858987490735191789568378903793237755649719915102189269123270839417080180983060804143726816069846357596201830267024657950256192104010132318598296462531987659465398421208032469630338384158838225709659837079797944513042472689088933533578457875278710769416224487600077152779552288642512845003137003180704821297206010910050831839538270023927416580943019842538280775930874658513264457529671058180683004224304387211975200394762563398272237927956702863698324399143951128536893147154911096807991896252056757291525372846948508327830044214287924022921218018278544879097810370878239848054680038749592450368627064474207075623187493750369724152728415401673208450703094197200852156942165954975067695950635854003720010746132152855710014372638409166167701109589519383093756090094027481096377251694391048862918039732108688419776421499049027899148242798633121265947586284539716272691832923711597233315939754975875597644241911908655010434572695180421818183917748868171493804409189751236107023664904437170797819522570649450884961384171645716795365371520875233019020499035567206710799320826725706913513069619371381158873514436652669629198119956861389289105823771983684001043704264009491743988427226447873123845246196448899842673939522215463653248563678248267935303792828226756168711605676189516865534925660197339901496582442145004714870777192472944400844711195907059182171036636609370105304211076890378749260442714454886588979094834676951462506271714351150525503591890398776294249948361091214076967403480366488471508634154349669347689281830789039897189677928917189498099038426667951542632324412195899625306721869176103191561451510216536361695168196000496762707207532112199009771184610431930174875363318041046989004685335800759818885398647474758856666070575870016312932455930782449350957831650275056635347836662295200918294800475283731144841300431333641257690020447446973620003151477919005805036718333301509702737308662517493018845985896580691027997795428707848304809023490166346813491435948043107399769804602454271954140387776740170345452036167237529647499265530056221853863057634842993045862444151757707841130245255948911160289306842216410134286489919172948594168021362172024853345165723344684283940308115980492646611167509819863515432727206245281560598914736274680219259571472983496298674573796600151523143368964732643661810120613343434139903449979835046950419772132391155600868626478711057218798045116754471476029128114437642487826982930491593693517361369674047027791971486394666652190994170089303788484247555956035007356877664882470084025990865191327958292476054040693069809504484016383910353120665008336139995544317305806488956865405739036025877476938533391749983778957670307192118616049498329592203976483471756611434772957868125077073173067700648414607149340621210516066699883951493906188729828856820502592203452005843206115558243006048542610931598965946057703189068495483098051565514633411245715765214142223121270445666446573149201832547249138520685411543527657576521761439288266192619747981542064147422247509143106411930657242525400102939594229265889187863922957794721954294849307644597114873894547719094662694807263682906693195256418127805599619474545098367072255482791821267183152482299873601924856432032426267709127124434512023587578437820364471212389884746845681714081364907417270262029295385589849084494331470254754659257987486746707548392603966656427885875861884275970786409304660230968950399603126354539235150147974079846923544551767509597605844302017502302931350158872364329704860585167969511356269709813633487195313115020862475347292356099421872676283040377134397620302464839757742798710598433859655882455870469973483816697242805575493369989332064195511896747807480726028156972735006255423856688729398440876067556819707481546898594632945914424495480349075211362198678451047999770992381430290708053012829067199330888954772887024166580750292087036354752923224484320267035142318830850630270155940485414517281022928171093767179245971296595419864043038555922902490691120902673920709936103070010994376069947149975717217935070088808865971218472483354733747397632693277319608247161639445857432051393655836627828019934303303581760107508414950491892434262267472720295404514210595748045244195078835780713883990079203572534177958842167221088424480387442512613801481727953569780600198367750308944198760714079514275530087653953635942051422925276942340064715534898160647968452990218869174424856963701674867050644697701612680178748970297089105281278424748817959367435831154132295760500975287539737898369036950361678646494366474946079437596379031952597186929693731010424718583478977122724180227369325968875764830405837362811631511679442803559095605743330021289241698307613102357196366051677339228776954250129085341628750834388047556441830859479560094654109526388814743627173579702661035888191793140293768783470653968831990946825361142985095106553108791004732291395023811596982339534693886779891671522226659145865005459670891942702732749515319421025091018124979511716109117394802143036108787386071164749744664127359113634301590466318831639374842094891068237478140898707964451635266745197441395806129289868481899488352322082661461172643723788657987094180482082944987285562292443650824175885949586345872379515280808007636463453026105055500892174911764036035081130176301924306114117175642876886774966496309174880606474196380248149877477845201554046203546551525595365631577149726261023309389811279755247183487235709100534809076868560815437289689976242058407309495161155836511452844019667180231482758560258237996472963304996761849936985686763937181332034846789021157846430264826266425303402242031209721488950272398620943318474656139604013820217284226349915355662088795598355943676833059583176009460155717194668826392076362644348922597495023114043462936683870694836311416479732014616990246458732652505619481699722478507854373779312851931744761936754567825765827727121042725318688564269477484185016299008174822281901765406015310806639958906684783247072573535713054515150875515968508317611195663177181692133657389038405128361898640890022334213450497767035440319854299280228926088994762884103511532364579852063151386894747894873254075690391145491356347813074104357162912057801280213450448841261984583551597381508691453916699901211969929110619395120766815650856388276040356283416622930727055577726926319361720804026803401954268567334086396921775776749078707471146471651428059296413962185525454131099838354314588874095909928910526640554374612721547996719242907904675922343736642510094055487587323881306636698544776747764846906795724477235805719316930754447079318883453414039273392554991649940118498869623638033272651362259988129631715476602502487031276669692658687413874199218142119570364499052286459247823222610500650971072702283320279477370909197904870955184490188879374941463867984852028972449206931545678353517962175832825850639597345396566466467070071160924126897791484343364552543843169156984248316488838269300378350326318147746301262033878346713275790227329507372505004945304906993822550645587315805199776407205002373036105875047549592931946766182096085407412235763089415024789785785534266731687767525788007449566732441953860409312530078885614545935355761916854990364377280763695715546408550642679951777783887243430490089351804769451312827912150820051158260043390583925737675439583193599702488028596137841955389486289582058752761097568767106237893392120462167971216764991166167585822691674904388048744000803975308617785387684794549051265609992556051243205369965326155828512169003544947388252853148950734541562266567278544160451142659884316960395103473414134282080635518488968441191888007558765420049509263053676433340816368216928574242071545762566010277441620374889960125563389748845826681516161298559734854325857629417585427298048274491931756826518977215885906148070881420944388833475929635741311227720982099500955820703539115239358433744961076399003225130214986785004037035374303881910274913599448465211404264314148923591518254413080678243622162465142296513408573217539259656470366686222748812041369398290431427325703163176331694477458682718206430859236645410469642803679284597173633199617345750531723912275819459530429409380274734220838978615187105914938839138512749907095645176581354754196457402646904883991435340174685713946146631667578301891584771070933102175008820511372014138056554967515220654287131740629819342382643430829911590454844281221492835498031853693717146656989584739429145772344164029649966755268783880059484352004389422595244595855867239871523354412218211642412138283220465718992465138218934203223793938284448140775869491523822241673423014688573134497617322714499047470271763346453241428113217582156225799053560478033550510748167748536165307698530916773128615777107594447244760026136942223020341897333725399484526598554095639729565635239235102608912268241971877723146224835803397271999384107436689825383072212256801986012271368009460709942010490449628991526000784923123312915730123821560935134176516324215522419878242334055316662149876476521367752572612083546135829463024694463143280559911474395434496179463456354389541406934370995012311944786865033629750863423947167585915133351435976856940250449736229293262954503228700394773623569647313522915241600481103899562099058283968211614701378608269806820393304998669878883743063915440894229358976771371677642588441942284337132840396675702053530042774355155536103344863905026901848283754403434894958695303295257901086262152278446162378608259660441494149778431023023365112930471115836127382529456730442259570805917561298982157359115080012272602213681804276862667255749679047197132501052429498494228867060958441429187966408169248519413858601747964981274214931969679537146673784276833626813774682591429736330821754473966771911328383365639642975512249322640721276720167209812583504819976760082857423396381616405790768798247218875077299929449031323524447035878405834990111234738653027196598103728136974389655256717215165393564607544311831858795632009871280563623608576607507747402440258857234016112876492938833077423744085405229611702866312916078620185718609977884117857891196978983983845987511051371300223753369862237598546836929424355118219240007155545504144461133922950800962610752543181467153860254570621833577828515116178033450828954610357283982114960293587268864468519053809723836541401757875786371125837264754192818281032865599354534945030380086813922148050495455471977690558318383809607071575692472213904089895953972278265712123615627380081702569088224769684738927708573396602845804288198534208077510954047789610242274844394985665736363499811203571000445637431001859509035853630475730045989874106973877947180069383809125947423196629615946889044442594661150900424525757847550611657132931922378445828649702314627281312713541494171149160404302531454412652297408534304751588182496446214867224437196295013732729030268832264034249450504845085811626258928037297041953146880983827913521573368139601965747934365868316747609342943719701108393113406435329454930451512559235917716058306626912031080816526684084427082968674176796798759329086774396109956100579293591583281459161745988062783687398680124270711589351353506257379725583910448502319258273387829722237585648707515721659938086432557463979372846030416028863218118521248538717783688022720585561344153580975802188560988817964148973378901999333880347916074829280196933972954239354763029014197819749592274761729504382984419047478288891972942471959560633569338674672171360197189611478885646508407619904501504403020440283333198337765574019718778432380800793386073867386032627887817846258605770224679221830178619559453320763161293677934881608330557190783900809589682855419672477909480211235793319102964280222193512993690798134549450568088129894369725852220262217160783847486956234413570930247595576493015148184542588319097244987082972934122687915158792132457158810448645022639042120567985849376034075601139592976022112709911384401246456223038746385815893509031649677702943224034360154416016180019228764535459061445063747032330559082857476628538112892655200251631515221818351937601687513807792673216031124796705885372461878373211170923194486099097845572087884728582855072574693613246411009454024626285358641902791486338303125099922306836360848326234649290776785646765883788584569645242434968559476693303225926232945457439661620574036082788848225043101755493425619893827455575861946427400777711345040942829623223088937055470251044981786560431169403797617380015084593552817986463908137970907654450174358273546806146965601509136662609835940002185912099963797349336010602155446677246606048424206770621588604316391067244297716481682072808405515858307337528026225439526402575576278405038492167313344893359029806081061404280237261728665155953037749436195442293531038441315696412608791384795078696593869098672986708181182340504229091387604619509416344036148250997110693516119565783480000405674836563214631490002462401421972533273589340781961066322869680803881889280207292563022829181209089410990650150147672948515610171552167758232306128990972690745300453346153680993440159505219744333843266890127109019308450392226811167381884532207444823906279537027123655377433803574742644528129414191471817659263429123005294280226962939006881893374234588120094736992283542472906412248666242512922561255043340811993571262486511949028155269197536944452483198373359528179562360311513509428642157914359834918759998263722807193674150535072362277484888190183473555468782018724841931958997720444868662638486171198418364099133485150427130529938549480139967414637569144965670637869234287204675982252146268893124039217743607188001772270133075248543102298833698618295860253725174670626899533334806607313476081077353822723888630010096233709459214939860617368189213047718870091474741502650828070452162792541524402724279032127864926271444590934116806817344793779067161268918894883267337252200545005340543334605108168550734822735177084862833312899019513417253461444122503811938156273775320862464524714755053813259799479050242534804710884461087407801175307348027511340293425719402812806333960086913876931753691347104044738170362963568923094603748216677745271337637541800527564732230284045195167850300375335202654256801989986386703850010235503872591966234891707348280430818553518448071100891801327817984500091053771417193008909603574755456459932151702040976116531724479457355158447207678020235134812808686987273683679387931665759976509523728755061090795745697746899101234655485301656779264559910756646316648749862504356044750512430837227618945251186374150267360746569209448291040753474849883822018251671006852558743322321998540630187428917603873881190098425626049447663376179406697294071968895928653302859722734682020646276048344912425789399563645443639035820303439062854283974049126020474815354064578767531383914855205507478806467786251166043589188652653847196344925572947591570607331301264375825939095491563731938333180452407539205552699186618685513216739680779506518246605502068354201193778958906467207676579944769557615456565474948858904908433188166622633071922028322350605306254871405215991820078565293893788224931199911724775075935942757413837783565034026026095613190958177608049873891118016356907961488683684600316900307164302794995610681227303057951577862285522351051715770033921209191432045763373067524955042837847496549617644950477307701157510009721946092402350269373058398823420391797392104570708526923552255937216874126084358672808970908528458445553304461067186873894444709499316047106109094867027200514927604484378421117652029761490940221770297197023244030522700725192898192105458019504722718621355059548495324093343870540263769337669257873921180593925510273316941429981344343261552382242301000294822992903192417433015741983773063182987244840313652819431722767402335376481696516426548193118534155685912535516470674366084695595788785523929701548015383827431081774988063539926472701738364954439301864589671106889593436973569000846402293750051862019875291111415619470148276029509069381225451722558608273848873680379291708502306086754348423347911604307646978892394155690551603618443822363982659806690915098918332896764693139396997578189477377868972840795247135285172125245929182224624717994390227619577252731062573792452443217185484967519036203379751743601729041611543240335407445832186087394171814084710841961219450861471726100493075546668063871894801438470621212834624365825871625244561381230175430777668474915825858464512807964300829646575044973846336859751041176748522596176573808605809837575836254707322747851800443080079249281317229264558373858631999911628330075630288912300703690254555209420919173256688160774908885088082146543864815156794235207517218373445554179160825271865191432168996316375175957345387336349669241749828907143136609379150047357290833126766703744423072587131234675001369428332016737114209069993425947964020011781747394868445224918804008475614068716584975163706260988434646297262169399623367864249779052835420561058537540558925190234380403384197752627926275852867095164641346109563509339835466828660640043191401291167377147846200637906137801213007488793012425915143756596678548614417657106319757013832049230357005352829371218192462786111259287473686023687739958849884697252421273810081184175969103642182506649761960948425751898974316323679498980511039823616170286878938919514984213225344927036622018646852336043582677816646278000520723858442008324170428866729040620800902338639693471437259548769713439988106616597590281180566181988259342658699876246329752440966567611263512455656185987276047833796006065153362151110759697873727231434883633990743884957715229728465368912753722360536488399181913498391613417436565675437602808003852703541273987013209953847769934528198455879214440841185497140636117829273549567641807568429784986341397077222988286874051428527624392441873344141734674443879737871283196569957355942125555494402372150687374525745415586300833822876987337878360230494228611661634430940286743422415610047277945302407550055089287481398936603491280881919905726632397728399073994633784754589480742006833106312931654280783165521417424643386755933346188457724165174816436049216431500573113367312714616769065476056041237925752218400951417798464419381355366947033984199707012242593787680385070978610892021853260432337226142265692420186689031148739692641319154142908784092197430658915288830773033635113395133023297321678171749791241010623038843247633354140577577158857999820184299545653162916022636389446080853743227871064764876589733719820473247299616410454168048178400107524129760754652460032019224709219630183604684233932286543343614148152671138517514383942732010865457378162118436626238604443045362235024870950945525612840632417919787421910674732506721141799535856172593402112900232451372502528592333055507000169965751864187235834827902057216858637195493766200379638954881593364381106981244902764437557169942972006245273641810554417533845906578679776599215202380546822894631265980276012876607898965584548613424730870540848791406818152646110701979000261055628499248110353467942461446786461509718914106129146836378010129867295063563674127037391620499785692314063162068862560246255822018973045945678531309365336075847253959407830405416326365623368795369854467279344589725522170012459672233283333103667062817679923564949451494548772214243983106251214231316391993589569906204221666251376351736774340392437585398449582266824974326005379008030011420840859168224164656472068882129270868600322864012235127026860747336308069393628719221133873511011100810900392980224199178849137397765908088893224541314559335490979501578875180241500612920829581201706275827320718231701759310623873515938179369440389558931774097321902180231786685253802638889037167681730118130737916865475231261078077406963343925488899239455795177303131500296308942700957923984623961604817886236808411425039412059364421305285744778541295396713902527417323744581475764257517821912875929949363376285738599940507783236544648147189414473597831825113047613258352694684943741874169007080895420020307034952452509242758189236893804897835953526097828587627391926142379575436988508110682005231174145866341516089606150596344201248967305480750936541840854966989202905046151093500838024912536772602503862847962437378093719201597766977912603184899128377546933840138084207859101479647682555468069670887820063663612234079295556358994818204312085669749485701021199786125776688458442252139531481412174800229326455687825433260104353187088270378229259393575035143956696442140275113797857213282831251744809177217955577064323499256500760477761379138910603634132962632707553398225944335537625097440983586239738148974581272821500991202332940606615330241162834829702911010677592074606458901482760685920498452788378442797253092416749794722608512014905512311188982766797563260339352019046774449878052500531619356819650578518752178394282375815466270691666195079852440044007608443249631516784989072014914280539786846989254051316801173298091133055852721037487334987703100124026445136617852570282073665861798730949883743169239510365586557766247314497740245476571198526357782663405074778260054257663105746776711391711958008106239792262093716066784509956557456559903775510034331122653601843601571597434711028717076091510317147278840749273223240059305136199176705814414848920467160819489238440394592705264508703466992120188178481833738794774737429338158441407840573670657231110643761556604251948519832075812875134207622169116040569483448208401069134526346053871711416067889106168978325506903562376305841538540250949176723032589652031279471912407858421053504631602449459793707934652810376078370083262195051234794372306518017080349168742599681820445353076116253847122037746023817308618008470535629779799163870729433236363879133318165432018000353923206310840452224600532238811740306435446143519246570388563757427236574360050635228508896406073764285824464123785178439815186964685818658730446567027457089129118878060816424157523294408487556918531886159333212163611767207800582288646625256018474980983901811871181814517545207510333023511439644959590855166347842163706692159706961177287597514439408769477681366890665403050603481153308042839546586907690747408446000081367687982673677451002682920604733726316859059221086862921674896367539147250912370794004546498121895558624478056613711028097624374909761168615929655406276264602204610192005464274461040283975896475061521901368587275860660455525533637361357457861198466565562623941830405059439955021294426010933177177886077344455087910307843517694629910067442069217582885957743123631561639055068172830224059270081859403104823138045136004946763711439929716717167155659003323359067433307105223766593652705686900871887840535778538150456230809078856099150866039448029738234656462947813336018406481101486347176853289889032128208020952864803648830990621019792768410212879605598608222363046044040322255253613430415312859309297726535399833516098031833133336738376435656787210035770133187379428331522683332870325994639208970942784487171924562741997327205396776708949738518097288339730160103908288858437253405474786339684397672163987233803365945623837805888638373335623533283237223317372878787873349783447900374096296251005501135726042226997400247680014237999375370908115173186000560431610086952384901118527201008475859486098436877637561993893822737638243243537752396541263028003866026625869807426673528584546963532640539738907168665712634206838709253273053048405305649495139696571317844044319207839583847929061918579772724081878543930385216977343715946343907381880294131172209272323434658391824679740231202248223623977574641396771327206742496790753681852443576763151662601429677977708094849458895008494999448768270632068458885120035897972332336688520590460151866736886973823822849023063610600433318326955122530527974306679159574393331600299576201374516447646947194188170989155034537016931599264803025382778710737035218114498930528685349085745605611129496179111132739044101350976529720251993932067644771535569490334558895355753706065162926382958719915881189065050627246975191688597866038220262872657084213615405092456706061870638559004369047780360146367926542737149152585828077142942874016890435745944324645027236185319176197848817805595729786543989967276124438640596067550620766294224373406271795139966742335021569127858660525874170897899528398742047533119148301348138867660516179385873809341684033559103036840625634640616292199059454670561295583182085275239547248683703120934286007169429357996560581516214812376005727068033820043164684528180590282202931810884939501858792588701519402614998440565375468082705202423696938676174297270937211658586140539518360364031768102030353802232952307217307326304155008959164906594786305773897029325170403219010745371233584246450468121649699812579948833718734120940563349980937414061656082293823532482151767212886881741378239765846254843038846774189195164752339214440998697393366254798617886553672414248251808647058691264488353666838105864391827025257386319422048167589278447549683357338813705855816580094089407876583311577873636815620895160213448126193023499491099475039717195542258015206741015646018738656699221559585144379760501292329734045481868617547775219423724380261693932203634000996790574406301035600202305112885225227850454981906431668239165685255846422995386091958928581865414753441786928337221519194355197658036477531418508233062217878461283917908595756393602954695373509232541625557502430166676451689433839516997142951257702245052083836650310625987266879807292338807240739230640294551218756549895654639248762823322750102072686347662811400838063303428950191436117972132853615018638965947430670196695076332584681643961090551982616047166524906892917988567902531387332263137997188148519342867773410126966375376986986310812045590717384450775516253931307156130444570724597127743772052229012354979732038274280993053656865487180234795308326222010796424367870637536497290805457457103077096158719250363860219647903927463969115033853980893201488221229293581913499316844202622990516010767568608235158498804516683366535597237271758193782091363007790135589430198253490013347271984944814883211355900456658836242270918424065139980982899943007126770745996905977508078936700925770155043774295185261004897409952800149974272256553737514244128083158728038053871325522725093558744084455805306250016544012766944261492373852883843006813074467052375052857331624564143484624192195267489637260200222062840300652928863044746153349021065230716714916813188171826504410788889894358500575930007229057655707164697727261883230811176063069264279364304865014124954327227844027571521395396136467259739706074850339779182498466069603759395629790520010592341520686722810319310741527548270530689086106678249492215861452835389726825505332320326299848678758005195136530918543772594452602103115776124327597855087743146232757491617818872127250449255111714340457611140150439456314025618163886295562222935490131260770717334898260826638164410030119760332863519006037317159561318673606110198900224945530514118481235288424669050043961126624271073950364505698866026583405129543090712195806023840011734500048256109545696615044431899109299810109404414897198442860740281938309007843233425867453320147237296487563337350242652302012148054550324092922560784668716510186905883076835329703297658494393147552262891280834579265603007127399524031767587788417648752526540280127367401403445734430806661967730869654369155711977101038847505450513017927565278323285770473316193218549753299536471243129132696313869365156069760692091462885634027011241867395028402758579244142070516409231169319675511848265644082065952796936811013283126743198838806117971451325819804638628440590937161932301091368828834136861378635697376570439569192076479417279846238462375116948290966089915445522535065665090226879709456910665411533960130308634655905944507157578859304997952758770582812685901592709962611674419125886031062445982849832090268112022572852336397692763283441635461518151615065209694144936532566897879795781593086487938549703494371463215402413171997740153738575530476874731563866695898319473715621046288456959964171207989587872583112352878428077222117949616241012989122911652809208695786266810777243053042402626269334681014357183317899407908166384842339657198841721338302303321626730727748766860459960776516700485130234065914034123431323504156528237391380050810405123432990406819952677754189800263585684116923606836343872703003582362117789009390069679444627029277094959614748837716310865111670949214375186389582191946668207424929737056274418746188848058216252524459532275677138948500944777860442824832498217662483737045846610517452574756728454417013574029518804638220650831491440272273403544447233939042610785438587608096288212687455171713818697763718209092588046570945364361806487066431198097802801673125067022949141419606537362573322738427384555291662722386080893790676566908155461342701360964529140499347440419549862079564051107403356412728590154047873580923550141792733489511730058265970690714347656264753728246976449741482160521183640631099764465770967738288245303872384757471438558399830578967872465404421827212634495787363432395643839111156010012893536073121537378766886329860248164000502640334531766935670694972268402646860346381982679574960480374425025215820843468931066670184454277770947605247363727138879087456624348116377963290677063743227726658128547121707821669989600460367551158817177024721209628954907612620116614098330035314551401113399237206578994306371031101029157503379737677370575434456776422570614357913506793867584291828426891417596528726126069029435897114473691413730322898592281684589240825040314569859482848958856486289334013756579460587264726230197474194493202516414444009983079761519885109857565376411110619173577140589114059753123722628847105953705658337841614181477027589941255306772265307436440848264674181906956511514341391387916553164312719486407964020144765695752225293295407265790789467676030045847084739558141372681035812673977015938136312261652656214964392598434566502150113818530948624837216665194453161766071765982934846899142559724150541726065685203174546072740135280405377678999376191122183328664975392853969688035831514399107520536347403790069024185188107061910048671954412572582087474123797278403065518317671925822478677704232563370335636090508729880207575671476374223898401299111857917821983864372152152205339577488572970910784806668413884343570580622337932723289648776513020740352417764232426616705612145148458759621255099497354910277211775066856532225649788654479258725861356535421460835454582910393195301254872048743361739796557280683104534819391666553439514942652330516057612705184481759434184495312475487478116279909257910180181566337061236910599285807872684420508516156709869405105711893367040280426525696858691318000230168059357793296945861612420645618802630035814911792779729238434006762374224484257293776839504514581731961008801258612406959490680982129886983380631581560953024474142100414478418498261157811670855516174801369459510810663450306162463930199417607009952559270750822325123236002442932032731751374491990409259303383454322582033994872047529128397731220560595242380330441811268728089926304500521278312149959222219826109950877640476876909312227114883583499627567511939228378952877760290181284198584545041312386950987598472037601065130220291576495740406990786047443840926844918774211427753861710302172298415636118589339824757287797974671847121820546951789105644910971449464999156281363388657672091532013689144946938584062041844577854213405338780022726610242383832264315746913388818627348839654040549340517496086349086735426904644759079421005466377651016334288661817528349064207348598576598697304057399065174810034340667528957473508588387728790941997641120298028444741609711692116773423876574619405086007138322854821477052045850759322310129898654111249381600658256420054855531191649476873365362240227926573478775499075861044361976694664125275609421947111945487147731701790144941099779826207701458393889642689733368455607349189027279408438119620326715421359018163287659438365849799746974954421538281078458915357057243814122967340750481853855734522286569172807559544593306525433015591739238967301846114877244108177257663245151429912417401105959647179930582618457385159951356295111775136802969604051298567857429820416373248702528233397613074138581601721796376629619814002901219033394311935723215346372575030476998638882743866152063487770649866856075680433029380507542402181936910163734365732768171820992049536923085029833974937583023007710294731330980359681754001794097281486676528872804247872572256729413628447871103887791770080180115126888413003077361806885708310336785528854906003753788338071198943927021736311909779911520756393872101642030625681674545037844222350888164058098515446896098967597879862924213162596539764625738931691787318799025436428971953280263292527329620213142679789297078487267993391598138021880984313039587191095314328786257490844732568258375922486004324556715398338886396533040444905988395550164296088447701851329555956525566971777069039116036381886326539820068786996692279417681471706138138023645875505449969464986858515752205463960761546816266906690920707208665605966143157736817098406274513087324041547615452584336092844141292641611358538496881194689571868658295986264420589982838181604213954839876970650187307538186355772776108141346396324658120451104463714957395818075881557072874891429495253190249035487682539622914120909594309755815770267975303581388660366949182505297347587376471703457824249355677321018106523111919287324833488457657073487988845456084057368681063635110845955994464851931333312229101125991953903665689894033339332509661367509125337308766317970898805490286031454734645790059935009470003759442408622947319902654444145940691835918039439643704695663970479365625241400598564253285609568486603365651910282479532861578123195820194425352582011473773486138925207104906203760622257303850447507182415247133188175652356522489577170563884664657511116853352226161294992775464158257859462307811421144016705070686970953884496927539667237315234227365454345323258355021026923913334056326271185807968053549260553073278543111013400706963617979889911863350487465164282191151196647107186963521449661461599909632918436306769401053812477754135705349540820272493003205257674353572778866449527148601137416034823841344469293261369519198000795815197414352675578254803827343213881004775229165906130604583956323186031620517942419353093857092602721001384580631864705955389443302600976925319551458271093543477531657738131305245650208945710957548832894297171307903931230012630086780999692801737652452547061367102148577243425626933123475954601155924380798007059602454889884269238182481227832268671872297044650773821631656506710200038037495263472868984868991488913742179881108489599842811247605823864006048355432015243551701323113163561251052030654953679342430096841007553447466362513549022205531416815179535607849034690984797492733968506643424303214849677626228643640373090536090850405496724980386789652289910290347685562538855271192689209624459608221271230977480229663847319799622952435913313939195404713924639290553041001744706116408675160606093322651634924548095749213427103668687891895064437309478369853098143636952417869221947967748071295033463736344609679160648098766673153128108824529250462982227663190654508211823713343516598368146616724181238838193868788947143230647652221530341016275796539769283721527496024991688235401150547452445550353269693993285325539633879734102210050282015558937033932475002302727457438737930963747107181561012658034994481206564269096515833931691946546995456341663625664959525449927836619630298398747712349512465341089930927372108651401963412083778557859546867338357940276180357786199776875085669395975608117526306242405335835689029613811174585977860067060925138785935446215659914001796964413337394574691958851755164052225277297260424555769238024762022253412900208950500747213721537348662121412099201069841677986826651387022084192740965482554048441952895008583518757881959506837864141583439707263769456462772403278307299484926487552911921972901162510834258489128515859572539568512687745300470414666126616150430800497652113895580483224766428298177724492616496480812207250640067772667607284618499547458658977356758965644072297160035510941056140040075987799507215906782378960935001353376415285785097216088282230188607161813844315224542340073374970775476135292824998466843254818874059468614924088529571326412921446530654529223580813401067729647574786353234885406132464546185642521285906914026732303336118421723174609207422693533407604654259097347856753269478391619951720162846726904526348726825521731175442793632157527756169444496548830013451925727438944122102622473163200642842540036777743852594298371946185780986982232349911823539806749194445886181702007848399232729637191911103919751872848341025558141845741178074748579273639761268540840360098165878237010879606528420516702200556799496345870442588353410477639203299628874810584204195107140053655659594956684774412551320089658070264995156751776505332874255348125162198658345246001347758033218007937713046863011449235358442155080803452253663294158217952780825441237076526021084330246127733071332966797795608805245992411402927132856013599118508740148688358403797082936876268075473387605697736254847615072681869205474390366483514330362551540450402241743075989688811393940909094475848346187985523771870749928750544464010089246255582063938545502716312186020614076266871701694945809090326962725969988855817233134890631332707872633713287543102868921724375344195673143168033214900995273019561500096808143691730018311519602409522776897963763445266645687144975191420202819154369011387247935792518271381246037704679154521699770771874689571206492705174363532359779581462747728353289058699130458372677865106979529528183324224441714170270242599973875044157457752176166392754693129687910321093036413575767255048928150944583620270159923200393128341841450249179374346272250395344734967874211391305654311262728905770150970405456091204847017576194963714509198768118287480894355733608367148931946009914916175166562871366319271780186090132269031020820483923451147992006258615631491977427536387639060778270858066098149790461979396975334723726017454594790074436076125457027278913840835084374999512975928086212945513696365926008396340001069241939471397063585465552638726746840596858678461845264092245524598113788987128586366807038625736997348032854669860753851312526117494231168879687597442979572772564406756674947946572316621701337858852401878112218385277325527743384622726682564827699003865245337096181062977652761075264872087627804628788712652734551639473283913271100742771075095193961135932366040022216659152563374385581338388894994162906943407501453659587892824713919981069962036023387964210237045240168663031337101529678479299635428227361690775521270145148935320648751277608256222584387192072492600180938161695452635984805129619616317415239319423386490916767948666522060697387642112139202454425153921302227769194894301266315619178892198002527781914341159717230250481580636453474491599217713029662217747874312215707625700022294703249307010368331522485803492446998504069876450143396604041812474602368137588629384151753255110723921749178956700236416683676161863793165214792803811668695793503517875212533410076866144343580547879413206633633545856140300309812163854007934492319931380608741235197234505802432858738452823929655438006180545711997685274475047929821489843511829556256659425623973836326308243296515578419634124802433278774367018759820948159794455291243851915971958961524730830011310993916286024277981462425114539204403043654573572027900878771902968932437550706683642989037905668565493125604548273389297726366202670079565932813720329754972715866971944000710680918995765918262933038854861535047982168461759250823671457680876563126900775337021224960169728635305396435055970143608265893422393298441758962533238142547190389491380158865198983524105822323267581591739704802050009137111346731241124356414149892463672290585496730124297439352199776923319397166973059008366107215883660321131995493816553549070989340333485724004151099765204271848482913470548710031685794869535520201820487283095122934744271350520094821157912755076755472686109160192681145371517904342441525129567676000032369599540257952445483269568697265094296214447042832528297885916837550154179946868314645632027500170018320269808988106070655862267951675826459005038624277942520768322260143360947842971353934778076487779517211134892610588822933622883330870954091794011566178595912605141409234466417217013760269498362198749462850172507548824572664349868883665620943890218716799027776900402962235175783501687615310109192865515495719943081275981755989191340564792138097523221063281882809762945954007124628041601300135694274685861275945218929322938023932673224883315296693263847484489623378738159697221792742326877572051129550255977686038534456484227930539707206126693171843467645555170756235438196032141066417453873742525954112421682637279558795760776950740272809238569205695943175321530392620132203693331518762707451518984416124663940226133794866298169335448993757228032816871311873796696341400022528156082654308677742788326260152324297103393777757200276976243859809610724645800922547772982824976184878815551367576943845255527353751134860223929383343699586665608166699458046796313775796753052745868256502230051789967737717544304531900404255353601441150520492841704678342561098488879439912124299322548157010030425661863200885263864314537394479607439196615368247633544547589156828243675071607973032021033356955517238950294560653096636897281243762662203786319820408582498457773971024907007358571166041153642859550837358166609451143066177344387541617672004137129734157688561270242395968727955093336043602394289952843146920672294414148465276464696085617698310665515517799792244090833036888239708833086745375937426636427593625245110883568190163631067367083807997843934217387137538396864806354062256607586008965969270508686262510209319610943286541102579465723849363038929737321535608536049493991049981069170222680095285630943989585971549510103457017258023826594611543782590971827820636361119404988032586983412402389316039956714657282883237559241615368492246226218300427066642604981501433765031896938443826189982554331185441417621576910321554711730403756081748393001862614259675978697128111357129060580860899738792623408082330787195291263265515615386902048450180425140500806418606525786246550450536883732622684449322744835819561350985830820839355334762560600929838675622431061912646775872092014600111787221684534182556688538099731290783415760084057752658624639747761298943428568325444642972556011173546820567066615470108600490427068808203022291858986263758454593216579597833581138802544389615052935307841757619961865015503981370164955613508120589116128068589076215560004694051555089509001515514143434987212041131716382144264232033295621124522957472929464130874750246161072060899001553875803078191101858914623623709642194462756182317983271520726876969823300712331833040974363947466393167646538404655387345989476847743245886019816752469283105911586789534006284349699990411956106896024354028529149269168439730974805606212156694529313850030655960029044931198149712619123448683682932911663394661819206967102185185940625949076120633159162558265084522547723084209216017200370969303207397915950564340510606526901210102504074701012318486019782934565688798202496109035685001605223978800420328197464719598500911166757841350259284315489606679748078897175294385514996627006708166943176704119767583533308554418360617289073756310598237422502132478623479801159209386222451692998785040487991645833485830116095329458651074867987377922678165232373263355820897817007886253539325230674389495303049420634555368386061593267527033212618263642785082309787938970194704384030952249020998050745286336459189621240817712995857372449750622346897345873147699508296925771955739865832372147126218761084963806542832355210449509262333663408527994880851527169453122225292817299228245581311698923364814448117524479726248417207633920590539735450290102466388613745234027633722250936737962593926109317910154709867349564237462902534613554917627714217750611929345373335357575999805900158739198931212768571185266255843298794143379462891767006485263083896663542673817138473876191514395801848243112360496221021083287630662547829359398652211050898460493544358013578932571813325941550604828115985853065323452901223783969076164440915000722253341059056606758523757403419631069449380975902348306664887227139397866717509383575962509435952255413463410389433982160636562905552014017963423977001929646199944101947738626555566863585042278187238411430054638289275025096678193964049192596174964917010040961769164160715323161780207971223729088205159011503180529308039863775809814528173555876624598235058810083299095269893392557823340764441132474145007275936042278085879409664460692185109639731900417839419958792300009740980438708821907705409672249992186320044109911337890522139827569351842501664438849415736307610265037677884321484946917250709241593114552894491756434099697483628767773899593987186020141921440568703888273441656825728471926594652160272243311616697966821670876957988467734840574552501323527373019076786740409957503900362524732631943211312720276095118610586084661584054996417255341636173368380792093815283069467746977669807050641214431652885228652988005537680336081620786873929559438255560021448292755621245793145318044917137592363765558105491808605356119711287642953666461252307816115031406856589536881167093581598831162383138430203865090724621774966535532540790097820916264794281584159378829091537622041197640190611946832954632484405600853800258269256228053482466418999132518522801385358854394236751553639225008344580623172848402491595050494624409594930703058137683850725866026032429855645157584611528208369751147832252234197152324679436292604494022057494357123962663102582110931383271479694430315404289546080130150630139447479609963415361027293234135210631026138971092173516000322919732418017991022837078405631543620977876515596201292309443464835384344980911664416661893845752263673324266359825477375546032193999725070668016755371282777659320651012508429339654728016954219202401837164285649588682078294333720941171922928777902603704793146003687763172637394222091163180016197302179301853903442036440487516168831736789602693378773550464225323159544706847691611890576716196906455069114064221631627281283228803318018790312106185900909686904313453899219778916232637315473101966186640237973964294654263454580665564661196744125234255612099370311770754328785529105803071759809727450024590110413064837796799770312911244902075843024017115716558194777089232945276395818141824443842895457914941320782065067729600579525792894918420581583772507305104174988764217248402506006994012903905525913422843518378732054467782301711669744141828454250333963626758264302536484790528507126512170599431185979460934843317873972010795864310052947992201381825248522511272159105224493625607460329145200262665417084888002517754219854305966320291480626520776261191199698651659761666110532627270531416311159790999689468177610790760060205162427742419619881038165088272624286844593830081571486353392839521586539560799690803469508978454010260384682918431073494359868890817916258183800275540022268157928071824035931908645947758932836842185845387037683521176013108243613880580387890034985725371545032244526311656273210956500219699288892621221024078760723958940747524793344315104069073674430596415553183101787886412623899375415116459669570356255950369611150571927660466714944723985893821885529511911797506155009413046996002836407670083541270974556655393511518769167365184640143959465332578033402052728112021604367482238905609268629281846892010732150157320858291649868356697820046385247913674892929698342860679977649227849857653919518602851895860652159409189172950470276363674159970446924371770237458804871194631952979113011396935633327997712433845593609519517072312661933649742225945375361792631079321044721545683484419456547664808009535675413524625205284033880239441065377751699711479879112572621434994626317795221469833008704979187600010268724307165694064715748476303063869424011548733473653364770133253296896697020916584741132089364190109997278400397850356113503373606849451989555426586155606451564143895747221958143776147560252141191957466916270551565096612266965840775704135234783610436691486133583626825713044457083723319069717657726487064111379762402736552950500292897917664778632373582319592818990532391424090309003346145935590841591454712784829391598581044139189902028923992910943347629575530737381869548591206851071551197885908115530952608612966819648289376392751853950807440821807061176526176435009672392682977211817459937002885665112585469489349179911912323263216113132602313676524963425349469367815387723315815212057373320776803748039834858950450247700325423555838323608885641025887625193133784626865394108565427765427116414499647004825285072719432508665374438276329513916437013236182825338686290971106053807966395424707626279830158330689681150311132653693765534608209546910000009985266643912248448301141104537011842373251448956591737402795095569785107521579025500851964002653090880677476328569497976179743924031619873496171549113392659320945662684815537429247738200354542144900765008508151064580398617718771703378054887212034567918710042456355502970727575985335552445776084253207309413999536035257324211354962614974741733330795872156950372131344554352490482111571969718526108031214057013268394775867911963988006384647188646684493181660823399403161617109130977627226249393410108492412444070834700800837228835821648816235707189485874264954349301405229133026326450770125932927273253963529180711031117002359021257575315605717698969945857594037841338334220438404130931429347735933043362056187830945567122755236773063458373077020647436000068452516272410861566860825238313860794424244698353244444593100476675111319958341019917496900303744615935894966326155050956959167755970102416700232639211948039982245679781834687834075746507310611634672947858433078348527861909545308276210534796128796119451525079470143491792055070797055006528539967381722623618620634986247279333259330222904404490218515909730073535179383316688452883385070328727138657695820398935692179369707814767583883238326452433234700809861029483517501532259974510808742010034267374961656365252428507612371368128766867727993854620081616711939207214985406260275240637799069375623889717923634385033396586537930888500914053206373595348618478137771562812997020779448779142854283932665091597276283112819044527893114877649234479495972740502864241689464165193849103847272378484538177244383074147889207268396511677922080536176683313272870874580323071249751509743577417934427093301481390489219482459488037116028138893427006015721670004574577873543074246591259328935218706312501519536322858823801639400030722898950385775119286093938718138766155816563759943928627766180208152570784348770802933741595604908753057519383237882924913533218057431561248594470343522362391071387039591801519311479965390947583286883916428470773400499544649423965206660646835154944186808679418539841542654994981593912554688620331390260982593158665014494379166220277207979768576945268359046534180160107503955346720545455277125828339824613947632465162510570081104521731187707083287457321425185399096512737006146844227305573224781241229383148477917958141338357086604449740603280100407319780151372335136532543969715944431972606266152396815929561675129512364888768785777704487406873198235789766650385415883727696882189154713225738728811310118220666033650743893092388942075436776006327718961026011965571234867705704124266177968443328773180755318464797668689497127344664081035914003602979364820910123481167016068141810471833268603529999468098659663987621518783223749782910396668628970220882210690503690297342315409911859945619367170445784364944539583309960360906254373390507103873700365625070301405959007238760296516671418162783200510397808544818784398893659815435584175776496924269974488172374250070104835420081687717860053014870481158026703367666656506909237056603793106370504054525471499887885523440666286710622351430240392476921403184789685288663528235506762802162643826387610559486395868360860609804532328874940743425602778388997897792268280691296703304738111416394499115391637902707617155929557209456769607112111656316349711211091117162374391883700530650672807559225857453494304447404474728488649901197203181807739572566508921271599233959581311712654669393680035624167362806004740346687575659404583873070608683727956083050850168985528095125918130458737851879419886669264520045941526216072357825887055520738968268033526149116461218865701604507211391166606345277291809255520812972651944719805202322254976906880087282340138367597717294280457107744923230620181098121463315228067665207830141639954910102691412356046280268432244424634987022823648997489874252480280789055440023344449933655858565822025070009176247568705521124224428571180532193969400719199677270838661285862177532324980512720393325499777536527888646329445574982871298087220103007993682952576949706060775195035421022614452716505424741059639554364137813870378557323491499910609088894365921269176887215351783075048436497554706248081415894360344801453419159317277848957956251387365849813538287044030004239121385701788976059321917486196158683265156795168943561588636764286823478141614272818894144588440262762244718673328598025165728726149410050709771598145128462629624950699736871567501627879010459919222501071192215402653690731677600339344855514089496623714868766912667199823058437769760792559985825745142174159789955922401308487836849927917300612338085064337803184841563924753141694338412589736304777302413324882042183950535102013318012231603248578952108063256127539950780152252330049135225971000984286934081686043749205326283592100306383877422897730492340189892573306252966006303324631613989054028144397671914295158287783824319378105354917130174856493499078632550075300456151101612975104661309368971361024127736818633195589785358067704936109347474559219947196112919654602716018666342155531984811377369088293587396106998974709703242934223876675469576053488234572919240831369803448744305472657570254951562469183092210399951512594364868427584146558878639913653023070257781805079001118105572649886371280702982330224122745925735062751964873110925481060886968631878888230616579252633219875175452582400619858113889815715505353217383261201819675744587660671797948667456957122615414086456529962429037440268692727186661148260774380520433610936538474311459675604275981158431002691508058474440865372400943803148406949523121268857259146614790895564062098004020868632372255892439756643224622378682685931242097350819006064219613109714626662169639773621762196148584522206929218140944368893564759332738571683855978091624482189019096283892612340556943644429013098545661760208320900406632948873656279398744604537681223023755571312030591785338018215920210197181712879079961337185544119862129386720641988445969616600857828671986763460329528535838012999792798480498566548707036041959271301508518435114505466498582223810875259701162764677796099218123909578429742026935492027395534797383862980461020801790336584137644028164552578659081562744234159660709888361280614802274308417674164351782481801434528692120242429627785782168171808736511009721764057928524046990869416887158650433756109826102538187958097780206260356965108009991423034753240805092544816692737413822238907717266471623754939014448949888850563753688734510888108919740248463862851069559420554234304746707567697384460507234953793872413238973131961360209931182445586712230377192484198226022322167476722834057650230166697024675499914730662397286011427972484338813208795818481665338884276790195961977607788405210596654500384153786786223355726453418383756115045124623050022708138163817700448152959711183037050961105995820279200782085480240966975711689372361489222183462331455459827679010114411930323825174202932675815211936960389641586346218493710101106405355632777300566302695645016328211641617071420488530998831746110664813992390877930151179753932829900223762461842450174917867098666831886922171795127039856267060417275153193500259069379817743682338160679137568647921628838087359174428006878988625049772121005240449413632289138623595991854156458541639042129745927972990469248752570259920377565885378587137033625801001162764015830642542067537285310282152876364681688703947656877356877645111633018281119399642054699238960126449205467995531842710081066478064453395234641359224483005720873388577770803947540937075859761393605283092516859748062536634551140872736824730352179499167955531995925764707722565919395113525026025859990717903948031320395830244725713253583020862434609881657847304406696328071460941498816745571325286336598338386646509337607078587400198521027546728184085725491386435107582723019616090386809854607871126248081304804482589576445333739271676366219909307095495624319224325145523654123686289974935262452303528050754989329405015139678650941396733218851811500663113685788755697064598852860847770778948119684364177243056261695817939002451585653364394483180181187064818737710327067985612041078338053641608381429477829573412798723703676934288858712432371819514745185736624914939551982885306022278529949148683355965945979570788096431179175527409067771428453408826483117394733693792542025516852593158187727108492717517329558474390449909068934247928827658803311893878238690702963811687152775829931538145753475912778243107431253908525518497148349320971681283015837264234860904656270930931536252828031856401500162069038236180303086683454414639224128822372460046710426001710370652926641037357029190624288859872470380326411350800321676633593529551046178976320220977266393174834119010547405066815202126971610793813953911544708149430401332985001972760580282818972477788234056379919510506728239178925237296562655780821752403570614418887895091272152614588969262856220295910044592868788624899912091062922752222538939086291646830961560751580527096395060392072009152587937983988717129522057498680664208652760169521069418114656052035662214548361581351907552665565780714934793897228864202906090484400780250843249389958151021927362032038536869523289808611595119544209981588309258403741060687905926402862925150122575749203276711587406933545144730956693650911348343796010978181176289788896918985329070219714243647827725641719203509755858656137517312918481009397498760340915564220284334747246451738491583844269173512314285404769273330518171525885119279204217027370765874132839006524000518208349413906936278473724483389441672574375880086649534282073202603080054263834305282314931133306835663085669119086565002516414245924653880837972700860046695915251667337032495441156170921546874293655401390004246705011300031375531098923615206676631803034738419940099145978830167064516251648750950191793516765270632174452227028979976981024969845932890605389943491926166337928371125513774838988837255737092828119750228173570564026441279746520664471585707931597363498320409189682389941961250404707415850270404726513363433315179162646923976349967948896799887340106819182816172128127038341320137863359272458086859348567822165436038968864757222851773214987283995492970541740067855065333130861553839066297958761820801531319261459611819323675510315803852039250948623379817663265860378532621747504751753534403834517871494144181646583672815308548452692306985768966153883186763225627718373484053544075687198043424064337120432914445033225276136633836912498187123756592693212164118676873758195508165643688125362313386933628944104886772042038644161832929419844659849100717786176353638860491419997216291097912745220100729204515543715343500382150080473798232175476069586724232261209958058681039862087036329647390861192482304661569449944161761065101612946838930124811079791160912515309637354288265355310358543129420679879567760628304910475488433314645957330750899005532336972611226666210343079455515713501789064107561475775430216468813162821368989242703432242893991777948693052130334761824902516546878052105695966569823094696856414880250577685410986357353836298775115974458598626082166846827747178093810081932984618974025702498209184823145794274235427392985662214096488869734171155394752774170790605226578966891815947469180827042614139101497779234875437927801150986666741229050884483730895449577091882937597114365173381000577779508116200946511103721775095683382532509666646959386358377640060659027141989872027719700388666720791692111548081002579554849044012152094401849366626671781947828986008013656578892764212669465365974354182601622787678629418824765985822920181323962302655486279268729165624205470872538108800793208401592303345552908151281354379437046520775051483616536576614225057466323853038104017158942139045759807678471860252834177643334017969625471952528292077223499473660580109897519311963018177215024489439946711667511535106451615771713807638772843298060859190859845480212030148101923600873362709385320175841569233891652686763791878308820883481912272479117001755572242246284427640752161680827836634428192308796258599394381903238196859587943151876591178016130738809912977338773774889561269523740924596664291466126468619364050359043871213989887768908711248683887148376204075294389023472617649082197942564337137610468248800486231383796051764317904654218921684847981967873791027323609037686685636968631502333559070212679134815492461004419454598415633314716062296215932086521717199926535477115316176402279737383463111470752250430559275036430778343098193538683851917187540394711658622595599667487494223865354544743591709403871148645656073587354604670497615845507662161102159734746292902753313828978179043949260921323263807629104082764889216019804856529849927050658113610092484723017195634860548163249969465513983576304820559217951203978643893358061393935736912895913817826619430598107148461417598671790213473324595239896860778945413188999205463474903815240164984410774422376726195494099248917606025516257141969570904128718062506454982695216158109375004797560994051554999067846840338574513574365435460631103685977951305160055522996697815515998229870387762373686341046807375520947976625922542362919035644603235340676582554008532682327196769164168704704144150031925998215861160100267623250385291797141002416932938163822416811000315013265681085869111829129674589078580928952393664167021833627204283635336069405497408252157996199111181298065045737324284521876539400617783847931108022868526170478048307521483467205401587831783387040940956324569559798064230162081062063674584679659107137697606749507645725373287961832680138943398447188993264270434587815370546336530128364640589904520378399134062897301999520285209909862097010789230322248032672561639273916395322323409176518762137267074906506254008548222611301841254575127571617537598700910717728858174054916332723025007579101392382802542900121776363233654879563303821923155463399665776519969186140466931118983124374479853354067943143875035056482142872882352968418543516143431162231874795604697304356634750527212909753122614589323441712140654947786361461954063194418886667100379363098086914627243592738978734641909809423693606501064888039699023299037130278390226375433037848608851868407397392075004991657829995629592625856705715820328994169667375529857768915631002562112088279793236028762000710211553662820808973522236653031852060465569523784211165651803993289631684965993664039106253199008134289642224503057613296335206734647789029524097687898492997046875824383508894614616538343653265251785613483137251117964902656289287708430685824655892081232927124385635854465563911355296728980006618512889212982154708059077946332684216384769940089660624268234208458565283780030074744341989219983777061453145627052714705549757922663967747524351048721250805319064282512457790266675708349173790543732931369963114949579222646225193487698436031741953901793572564866273801707853096703037240470364858429558469811913663020367753916486422286232813888873946924995013647125540073620051562184894721024418210043448116593237965942013501316967801691271474521312973654106704825851626219165943247297844300010694553402733637893795274191052599965468574113067300299303971487976830756588749208922673570455210130533503363247904042168995088421396743323521629931367156656451826389757485229680362167098192052222221174448113624696909513619270098250653940467209246630788998022843893053150730892190170032081828753193003688740854612156286952016572768139319715466484000900755812405357590200833692962647780455958372144201182807250901836302649049708007738725366386699391571430940478963375934427896537860964068154090145067078865357195996789325256065381087260731776026446582225406437797507356603059254616129108036390410758771636648511312142298863935156899589987550329857194629606710450664323841694314845227865508143795998223112135831806858612028816009448729909408187265580031424182266790425217926832166988926324626831035925003256253631326694752277648510200563491432500965969888869726020293652021857762029199717207161319393375395621448045632455980116896739985816538540931994515131406221532068047771288770251695050078370910675989621411549549365851857624771296652179764635110673507783095597778811349719772553979291598657266661920867158692248612567776465292187098753511794438531560996468728761624843895602104993522976104993702874409050813383686971038574170596733347848184720437997829079029206450682086158339171737350910860236251051046453556007844475003058486509331892895962743335765361503746708124041839257821147848208238602154655462757178661217229190301697005660385163683657114016924599087924687836101400422200299057646729423725991504985721772028818975548601926034433233903843775527399328513514900011951432964657996933296065056007570698300605537943023605475846140254693596633622054549387823943579734185608350022366085209645515221996214531290481208464360690422243174549692581758120750320687816581000126857730956007250818568028988795480791552690261865051329569327106787942465972072966918828632770584411452974757190990288487869031666994766302158035435839272979238749943927249884430394858798452467959480734919997578512081618693162142053904280976104249654628472260655391102134980951155354700878740947862553484916114846047401691290748955032232575871867404998567244990555852941009336309572094733234924432654785477558518281996453731990834389063715070860916843618987550637524294989438092589527473796745793855363796262887976746938812758294838685898881665949931416884623443685138077360926925944511257061715151203004341775637797158621067869500841176208061610908778764774461922583923445784606801385111083753777784897045838892197635941316120832384617983693763580694320028647774628054946537657275513666443205912808734607613272260559723240572288077822977116659156854948139506176390666726487314198692947123456476018852360342561780150685798482567311172225064202346149653362780802896397700140699012641839436909459938612407569667578124535003925117468641391996304167582599196911054135592708898010790203556105705725593343575703083094422009160415788584851775273117709155286379274816803326002354243041494427218931180756047291053902278643173984246440034497041516965411408320100461061636690859204602041735132294809745091028826252952286041735018786337436170343783142069939557563863356677080390592428698513716443601605412207757969528268211553289748425957852374673531321124558181079846838361925917471961726564321435786348838112793223626777423473894760881883820324237524508790616844485848229642490141262424799593932352582916875560113448700421238640013847947404415890982082262435659023624529542746716425622952267871099153006766903035262081564993446321281404374063028348914480897667725407056930110113147693095711288156612980081633691783557123194558329149326775732572532672844309351865451335264951912450676208694725081722224249101178075936914339392885939047652912214751059558646960326312891032610177344932017627790146934671070977668542238658742259016481714608692141603959031830352173972563417853127898528898329172253185857453306323699234789040519554317976876688449218156963025490109552974640530868227212668945020491815563628775299729427645063565813000002713353968880811095987168349897315024335021040930096867073827491432412156535881881157876678886109889528011066664021779300151141346241399778825836092505141357867806915801860001663580864889465297274406571368206686108232832261082274577992774903720499119391092037198669852044702648994730309908389923614225397086187920275434431153246794503676699011372406138904530843131887765265203944602961304087010022213909740732862665680795706568896733913581625031204462051526134247052630046617884345614413259036131420488999516713332502107161545557900511490605268863538210675533242122126038880687951574181351986593344710558137480015573760042532960105246142123744591249298299648610971149373679778053990297052324903455875849073290269905615909715616253355692925001513454278121625980634309219360786086782231555647101320327191371924524372675108978823351969678721263165187146687122201241827391821622519486780955777766809931253461824593822338309867053728865264895985325703236256273261576124606075507544942454267748818229412098094997083244461183780142591170363172255523321538664905046337667255117337537265125548658991839943311608453573350981594503582683548883016867787860410735934098081247227099125871172976566287285054568971891248838750165118253069111126143685327676013121283393428617352153456693181042341171785890707559857262771525806634481505754701643780511863935203888666417608519674922973316522275295287404389598723537271914889916787414718191110993088700193452485030328363328576189685026216240868614089289231546038001302846145075720900163822948464466988853822892239869971366558654504103671453616492985121201822308578763269891721617175099455833214805563786241933456879661968522818129979273498299755820079179137046913119640409388453762887258330036419340407976993831740399342193169881004533477563281089183577676471761955257456307944473988873646241286234088407618917447979392589726544582444888339190990811435339761924400378779558138698774787753110007512957977929180926771315518966997515879811230225466440785381814044596697905627119725289619926510579595113513243255934333728206011620352742481927366621534894836315661330026610222820515486422356740279308374226386584466738588649199029385671409730495766431360818214483851504221582175387137044392581705673137341776958749939707955233105178752795684955260011991025715938373281121333128661914657931925696866224685644948460349420654270859544431183791037772971993845881919614790968006588970110873881520103546305178625950857360753366257617852116639523110499906007691337697030203804488489245071704359068881975893952327120300472353045558186221585329759783402710113476665186197664697801571105910521408409936679794240162095060482119427553143127381404640450145516919505942955635161779746929902845394908764281428514614940821635685468065657836362452230274280219063109507707979910576848849444743473297545230662882515043317559319282813373407545742689262209067656194740683639471484859162918016262499566954182050462632245683853828992529427472332383127139507749606731745815529098524053397018300873099315997362634812888194661510504825167853018583468346515339787303302052714970561886436101866074665589988650919249854745795920102866852169908594523839166781714736290393781886134906984619073888646096626904737823568271789693966941176902890305150028301311218791900233583526884009363414045275253500085374749200344195754793429437003854089350496780799085601071820338382192529278828177533544056375019706613558666865674897405435386483343137069984024008515882872137355585937337258654360831047171068597633491296220088119951315861495166412674594106274069263031932414211079773776722725793863855411405526648985921292020946401015265741528919832884873429315631822632983116884262569208968791080300452837340377966398536652206331866515023643587844743254852066043328372984051311369124116424045998964096451204267957279826559721863746478228933658645447884709383582698156802639754200517798140511800424007837337114502811703218984140457789103303287959838327254947703019488403445939455738598714244333561296910220883136347713150110827939820066645921144041540702428039718100122749766364088808333873619258171394411673854937698360985795403872083654524605527524690830953207923921590473611870950609661460339216063918607609747737303633112042755841438812453991670700033997729518771512743071920041887324530009276784887274015386723137844171152065451829401048949899771870424583186790041077617356540323303269002213584078830903526763999593182680600395516003656057950496927423174591162994849913660706040628510890748127358600160839969218165315946267113121630910184491085877523303285767099778926849032381557647594139637959265595824243740662789035817373297000845935117045631764775286942998375111332080965555053366343778630242284588019882582554817094109639966640795209833980555243848379498256850072709880189727821119467415989127369051503486640232912197986673652101467136652283214207174098422847689286430556437983715857071359947883545133005258938197332031540472308647608894682540289999862910210110141303628028889571403497064259904549344496354797292099285509130379722429339171100169465541545311859153286309956749705900881360996836235359792692852927210658549641991747012070472812213808885128184978783098831977245913293841629536793516750887615400248972737023498692032341054730916575979360337500443393718383607134821897704340524241525036908591503373634200960063285049737408634887011420272360287655602550609189972091472550502124078128548136224491313631744953169696396580733204484396342370905112999981743078328422120748272515372523270639495467156176750468818148109869499007932041602461513297260838224196985795287517405673531168653983682586842113819530576018846802720945497067939419818306008238583893371580346692981576341765282643924879432677804398776484868044885070603386824262862635697559459198042519452675973706167087008107892823669690954583259605312535521869683524572239980420185904025633627623540539080764799415061039830280440383670216937543749191711164135008558762939797506248363457683895961943653483215457865404647199243186759395061110013038919239998391824675900167801176773910402576678125742690862749047948728891099651240329074505653267915293928926605056229412209314884518956575016564172294679146945527704233008592787720919175958970130125449711933148273044301320272314940810014962587344261199168958174914319196045192450793496283725807821535850297988648630492732119466096360519221432845350270847442524649922124582956710853298480777525794571120123971961823998602780170897015167747693229268780830393167121961438164472402050782573351627384144356004130409601547056645180553066146884816192914998427971643928670066816090283862947509785312414210981682002782332512915313075895980446146507472015991280700622947004301325715872242465649708483096126013193504513619794071052115932272926893565351184767654203405385952977235936700874942089179429581047076740406543389888672063192993503845338747789393169908383144251677063895551758821160558933719679022021391373156419183438390222850692888546106435032231341049115148218355905276593834871739597151280812845674765341079904928313922023632104172593097597345119188079616560987504563717957878984259077071776626224707885567129971978817561070128140465213911177300019582333478080834426015112612890144067083209703624720566529827249793877280036346243970490923555685779408591268743547472561932355673746022131870144628038286242692659666785986300401500568015171888571500500648701368098925724474831820794417232926659985373285835316629906160188300513726674199980394235634134186232267092540025401167756318693347805719635454414088024354786774493219772155759194661001687276610117783349316305528749149194200003339712631481636635554700260255183240568171157384937730011899554419388629028607372285816920332212534106990400606463305897085404438495330232438359889723629491394548441656852054627312604155865084395187944977156125031779095895215507722056927108565915566664968851114814060621088650683478433105839216656511455800154463155797333255142774444407927236993228726628290881412576511393682130127301551192999608089773135577684959279017347567687979793867869015494902776301600414362343964541305113283129898393916414461302685659643066893940653435472627175403038618693427649904286200161293489812967931549932354861377739565083568200890407382815723534881132215838687133275970710658941872955620008233721496599568324004310226150017918694108883434891054312781683845141761999386594040632327552094807773475863006808128562517161769823214948693483703222087247581317162913860655004139100076627283718994658723135956252065088958175242559440863313755497738849891876936539859868069140849762283280154371555067888876957507150485432241790417613280126598026321228584808443810988431351462472385972937947777154777686317669388989357006449240252388439985360721583394370232116444221296223198808336593528677175069267755382743558372515987241125567811308661017778704091536061802452073604467138514550559591514034037086468057042190247814455202118660876193894039495123589623173834308913598225069537911833005351885591948510979635162475016189421609712532267550406014543574369714243480699543520915810267687730777222801827218622519005132306641247970387419866818006421350999522985426394242428661925289050376279538506927963026634029797956213866646496026545591141045159365658286700938472686727289106076007752722761480171858371441115748835746966063959681194833103354910434207724192119881130116507775243861791576377809682671263683933514616105028647662795010449328343814536145956394088001092086636922963487570143663189772414641529929519117544289847405069985419045535774563735678527271240659846029459674193771586516168859994024912667895777494329355019221861596064375855518003954864239364315632725129199215525645253815510143703307285247804117027780538173368436529970204010000028064178157222114450728543468201933384802640317704864796382766169419113355806449029231446336855601759952644487662920181289846000362206997164834892561886250619069006708237106045432144872330668547855408798090935123686444387796945200010131140820596699067306748524110092452327356617714884052074763424819325850988705330232148874518978723119543098867888458128770345870215035539597722499169461462417278272980393081913306020004028183249205790148116052181847249162015696711733320226467277363829956691766997259468215525315683441778742577295906533866595798724593048484457104602963475645285739370399032068034885343093233422340974755436636298323917822503399875203310806173130242859568869111388698223200446539234373797844306940536299727687039831705720899611218268094165659108448788904913662062071547695350804626272245183534812812365946421427341146294100378238472924402691967093909368912168651903188950380565491803644015999379618966413150768290731177469198742254582137046375077015290115050242319153016448876537666084752756444974142020470954502536326553980108411239318755606743401879672018009729405488584990944255027889744666999509247005785223389740812782591683224882994862330805253053070616807296772581593207691452074152953015104207671644244988292047998143602078021971934382035277226650004868953277697411016825618398160472424006480250263841554236862979267510252055324963525575475372616245303594667681112811289088940364937450576286536280097412152421466388602503051572626426348921444480232704400141796729319595961210815198676538295044122508280802614763463468708829333593998043039451985585147326268234000912914509033161490098400268049686991398188241827926182827603248559019336314412569924176521491779738835162488058976611855617082526430513485140497365563121463412912874473269116523257536283160563239141268455761354053395075821142831629951913112543465372777243213641238528043472732294230897816677433126994088077326740841894935592736975146890013612517130995662841201743414785776401414648115028893621468377372077354222236046912475305427395379736990618420887172278693501186106553922720930620243145907387256510362371010742978950306728406265796519384591342232363240992478154867905728959567156239970332595825819302859230227677347951095390718504164365111657558800878837569997641011878496737672648092155949195267163845623487823615889779835222189755499431850407528942614655372865733034868895955616937768893087929074700659516951441765683952008040129427733248766486559825075184540886383759610867699566804978723887423670358064013472435390082128478779258627968366875521079486307352491973688207423502251020912920689338034919371051461391533778937113194513521262102734260939860687925156792832626473366599373000836651212474563225470293185975860600476849734713468898156392022689893289089913948035501723233442171675820943537470646362317377434295624337642625179322540033526224480579357076907482060603513465494539079359006640945276212770509658734617218467223076442616800556469595451412263996478448143884144788105973329327692491241008093817292557758299431864937813022319737647389902083017426157549114027810785106935801266518439859239654244607701588007176246676567903027579319777808889277660490817433170842520314472484936333983721621245547362580299036241750308634066822465231311074271786734506177908826913447769116296727013811837502699258597921629608109937755287446901368475174997856002657082554877851033345141830143857789844597661022802053999285500026864079133375056315642564281027653939991995739675017249403121050785291929481829248296279223722491883528027853438570640945731171926954693574514843512299161098469793727387413938431452271180092406835983135311302690862356923901161421048747742265468487273772709692954066509651063803503378994076298965999419441556025733385075995873052992101344184708311758678886636552666464483192718622024616272026963815733227773571411920847094532054285540102074286327209341016703500887481800851230368707281366705611496287626452904641917078804255483880430319050722769169210791640210614415929132016326137439853472202302134809850439663262815528903540708894713065329886531941187793760280299379990143966887884826520332674783545245240236662270890239385574220548058991962435755158025576917417279210594273356994025123478895073554909278306778386450525653079624054068840081598502556457383849395361491447668351898402801831859337342914627934228638500637077290624350221812487174235187657133053641824024800104245994170885657234980468965519442076930268170730317878851710391266467158047614527751922879083320130668535609999189619473614698835097610470022620270459861756984239810962903386668673665569469654349403989175875528122391079455475433227781595900054999618066980132698165893330062222431924465195242089628074184018126107685070177804975901321250163851083941815237086336641880198394895280695322336110531076993617063958373527700526982292950877489471784939427436291588775790830574035175608357420856197595695750701853036595297540041550974116983498606561781181286608759990517870960569900461423779762557373769046278972016202198790716163907964342362717438451449665366682958415454849966581397800258895115204915170368934397626445344981678178666378540389718583984468764406336109433049810905945369348601095004524442463722999461746841470535353096330692960469579324918150686072102023882032517478093887397868496530989445207381843544886747950226752005546627944687250319040745168171506681138485857286437026747337609513372166230589382255617040394937545622169691125033126870628343072438230438127766149045742775454991248160964650566789778699785237562367232524915869172515741633945665045099774356413584339078870158204079557845987973352616591253605425353542581861414470916828535385707632507086895054083102758764672728389510860767390839298952952738679805886596213162187890809829821158012948161509909347346890977423906386394125480142754141772517421006539428304447265889339079776602243252193582414882127064034960984537091587748637497520756537864109889753454915153628231889789585469526647958471099233263463240833694197186987568518591860137823100932881969855045876538145457225572113349234973152408849977293321532977869434203298881117656677451817733318438466427755621301949885677858349372942496575732721900157327906281963665522580810905115080647146215044926763573900592417684330043682237964059136467137186897862823476112298900902106503164089420807767223740141507024766620061910865872422756183949466811632449348758168892950958598718354048857936101434154266519792063845139632762260551462624445408862562907801825509368803333402424329139173903930267677128406902456636371746571649913041104434375127620642425056247435125526743124066479674864851149787411087907368551023180646676432661161872472685425325038873046663405019198991659500063946572182828133836807806959042082101506094967054404179812352712118036484625466533314547601534403165733001196603248843092214086582337329716064134215571633524388622810804272564847284467914025899792590508232350596900566373468324730305668627329867623729681607695894042520262823514125417841380257885483266149258611686856594080450700863430002309931717329065707656975026658804730141580109584509196180297927415176626432952704503455718191364411961818005478464548650563033116449770473988984433779912447692805185063238992296286251157874092599932761769209709147458279549461706015079756702644985473532503374803965382882704664363688506512882861189810125841962919414876528998479841945782259932213690717459432919634028089752738872720409563534345744119093763020388126609063701789469221772513719439358392084928903732321346051849253063171983022974734846624243366263786168428103526192699373505736461084515229953538652533677989049993443448440611091333774227331631479757578344912983721925406238704357567417216488118423111515963877407296086227868878894466934859453836055660816261712524864017417691769017499396783725345022064953518058631610632476667229339128410482839036206472081903206469527467027301832087210556639775889518767749513808268817709185216549778475453662231688942277888599748703642905596527425260009305510246632652315883811183232985343233933398054347946262432530482417445240776768527834978130214399207102932963095033059362530067871001395508735494264141102553448829603383989820835540876387667284228307072045695941227825329565381780560347611537047201323909394768869596708712918478129481774815716920102221313558727236255621192392623329532957300674880374921156926761615765113783986964736126549340387651348133584169084756294720512003344578275419726463242870110209338731280846750289874029181615163863949052574155137203468119501549184482092744888864614972480866535128753726322596161256986456912028587505556597987623796638778350927646922165312123614624794032136648610340822985765070277825042111502936712877531343421708445056373875859040904413268581902332136343744857545913674101662892360510530330069536689853855158424486320139353669592014749215699222885336788963993168237313449019161931234899262948802334564661031606292816316075564079624352974922496645024622448396360298228073241666591712716353565478736284522015660482490723587738180691857914935011517083637247077357094668433444298006827793597683219564982820043646533355188607219414673191506468230963440320726997662396029090628195620848664550803300480986237171552837952641198534190298021392223526218232633032171910225511064244688584926284897285258223958099394006030574163019271825148520664185980058578582607873585128340221268247493588460671080522744788613030062099734043556714043201709983726248514387696812543135289047563113335458370903387782078896832822959158302073500271781152818548308305508770736310206186355155689566210100857478129695145511370903411943385435700394315698627068085248187697827662457574692390160885940501709115775512929707982335694225801483245340079948162583980172938565117214297423477103925375300915846773666726307034001180418188024135087756877175134106370304194186283493903380915884626503953264189633953169109544754871525196685215603351660167419354394257538178489883472767615217237648453238266506975997267360413283545669378840449711592157446174370016674888996038917008443210013592285971815202200507529992527171316816069793863120586741029805694057629249150985639632119383507034114989728743546621242520558579555708077864725968408489380608213855322987181269217215937318272008564941976513862227505217527159642740507678315415807616912350442052317509301219547040546982049511394709777202773286781381073342048163289300217747417459469590333661230538417970450675351707825605229651716304567285201715054866039841899522000275100971787547933218004924359198700283753563667632268271188585128293221744466870147372415872833664095944148769782100350838290471257030037280741862686802754059020955120721733572034605971091976265494198244360660188062071495048607441950225348919221438198474784609195918087909059832598370021959326772190987576313357968477172003447072079420961696740089739195747122885204417272855330554533008491410940163070497444754549288759360744634061643905100150016390815691814618515476969727531646337966452648990596036139232023867236618624469749177521524475308169853509891437379245038016817227157280856364106780295234340199255985630959044396935316045204015678393478757491402127281096745842435775763295657958673357140934451817207829102849618469101410671406138110491818970712397630836309258071312068006717818736879991876012215732363032851994419572316800158418501214885619486906130067937682359185178246100891532365041922480566488262870998393365210515340331448688666427682379313864485729355555133631221280320355397804979317498281256899018265017672288650386223913158916168041348860672360318233624973975188165494813086995727771531365278840150239164052776196613728875787859137353153035595520500817272894919676872569363226944236304438553216968371202590453090494764322400054902543158261543186306182347596307186160298327598752907787867416016596801091346083038997003054557831307352753858820914187597087347549078669941067640449739738673773315415105416919473131541864369916144643857210662936705516070515230027494920665568282559494081977164309565863726165028403781236286710069477714862635396317730549720253865467517651386890369988257117449999600565299788026216557024677765213012255440840671156873136293825068018027789724974100174755976492443664816827825114398533540403132136817145586571546496500048268439445210903601107109854503368452977099230033555833874663816417588756098789904290952143984024757061197448528882452375860011309436479727278048073148468794859424733837665358306906782856248607882549899048733324443791486402726985217359617818136289113910287838222819498572608083069977950281243615715941273549164108957018403216202566708496296717075299686640732077513250349982598242928297820665532513689209279119609764217268235030054812761319735353005914772653344383878191206854868388910666291843045614439370114772427233390944152997769343693844146474249137815508638899093529615317349745407119586493990682942451735937473545074253987943310485797742100067160814372175210422417285630985203715265953569445001960764909118273344738241603083405188273098215118650690320876539261403539861615359194538619744094985770815197035108592234718035094771255318829756112190694638354025363234097390400257002231178385330694512095382196887618294464143607333413208253468452732711920967087881838223693952932958433829845243115022774785132289014959334569562068099512352590795792044718900528863916186251417845643056990252370532603028406938731927402282955702236825647402162725805840024183359745300506332418858539364825513544709785339307092610109375995095905981987664653050159397150071129993569227933719942534957013237603952286849628685331493002800297316392670521888787018801377055577433830830531787342728283857023480225642058919862994245244892217032203977740105015093882354221786454113582829510134965175529081356460154154418952923883540679539722095247523577311475837340441142794611404964576674073678294309723803525405192763785036027385369700044938909262521895046125180719152113280996093268438070613544757403919852635371741155106397356818099989026220602489549713642197483683806202663723976722668495805424112227524170606055493580040649700002567286574847354710169843418446496216256722296293278739158640874677603318184186008711096192255726698805629861206414265721082772123842333674618722207877859375635798213548005191138975969474439601464183121964002684738945563527160287013336048271912687171568980875275838350982250398936367328900874120865243172118768674411039623819230050789637597942175139405785120527313628486240430040850554449177352743603263607453744976911177990420071401871387582647591317240821124547233122161779910211428839584703388251885941642294869360493051972775150506102281794206879066900129082299052093986286608354102333123218256998131172624501166317654290269215708548015885515634381706229320172001927928147910993878620990147540515873041097485375308661659132667137676780286894436467612864486996561342020651012180492156934654199292482893289798546726444030521100015852787265860277151471396333232296790694268428116578390014463986013481292296576281851375117823589349913858988382373476546702743126305334703090926071940519189060626753660103165395789587292066393851539559399860768159963196350509329327757638724707365810734169098604301934744951259734441631592002979273929275117971576942811254369492157638226036161244432150260216636690335647089218756637348055438465764973805800227040757464890089524203737216900121089569135715809411584740372876444358160458974054530290098072561798778990839454428617627886089003992708391539437921005854124579571965039830265406110193904184532994216971930272609730687683702490227547356368750066440176482816717890141633943162284958008392110021567944901413448203817216946916124354655224948092186740113232773277544578508787529069802369243113602365093394865147827762117078606925240872892742903726016566194314413883512914962268098634027091235442312189622369168141470704861675078780563401618123868469956669082451384280040240041074510485972098222249242879677015465413488964006388553446361328204709978436699764576259725970265048752525362921275780235446628016513019222119101035089697106199631134790862918102341250745474879614550706347103758568172715302584559742047257325414255505333373682542947025295856597932032960043060111901868490700298877208675577618921148228416471277231788383671755061318471813665295075475445077680009780993288517678680426449241041699278893246475325112960712393638246899417367372051907531382950367285851506534678250966291185377618803593439538529689398153773753345482382256287012296579453111687407154379212534528882444417647477247780446013907772223453833365196225601714338964109463430079019039263190005753278965611707742455569679512316900667462991388058790869488038780679559395630209691148257769594785646687028985371740349475033755305113576715802741950360829496431964266035883361912515398045813758513369381798441784069148783303405618185711816254547089580399018920837254712006234562651949979385647722785818171568149800110371206124770421640818476805361134822395218473430972731701136308657916058521672526002836326180118792040387620560133108049183554802991870860080442731694854471964601682521359394212412437334629609192357567362817492434988132418429454876467385721285742084883190396046462136338957449468860872740444840512834018315628083509247338616648238594116147709574075884154381449446606885887665449543997338531081630964719209864322227474731094950426248065102480686792673986613573478965250300563145706995148004000418128409050668016868798627885100746792287050735655529913299588388945359450433548160932224109662159251097338793960981257942373991938105890626731953511103878155379369275292322113338191967080727311908309197680510147775708549795354654950190875504972189903317566303455361204941190928498196374534779618867022516097178188798197814993753741018455252492626391739353527622122543191781363710439334029917689842320705903831256624580198417923738322588998054613922221253145766975836343326291761184558034809264195729266747757919661748279158233557963767332686235052252222087800074814533914957772283289533893966775976690222648644284950720080383304600141478521504805238985932670720259090295110120187569981506433252391556584056447057129162030687186713180800266493684079606863018252829567285126713787430063582171593567401329157187103915864389634549924827564626837756975715095956159106093525211197246666126275653954647131113401421744367659210723298075959635639493226099206413630990847913564853969263402338563657403362892168587737578532972291363245299525342860045997990787523805064421564472523683980354649459631407964317033382018547585004730611646499440197753698472064033907873968341709086249711348484316153157847359069211095699753853095300193247640910902557624430706931789518149420027455015511994260316383017863421899748021065582928797358196466275475706445764552641458561899770598357684524843503647382797431164095756270158566901202436905031645277970355492567133726710679766665092769108382269792532029539156683821625843179382882046504684850267390754622164086256808325787954611311305387094301802919268292938188763290743906711379913555066190953308325072563222996376109515143084783718299127756435844786739339453987190797152060046459383477233641634236823949657750527957493932827332815265844034819335917638120617602124971126832339392337608395354783649887557340933562096621347037518107377137459104976784382170391281647058463057988048092690047219461795221902423081371305073431996607594973943918290491776369482152445666777292781416113248879750377195539514493132022253540157519088231057239044391554693823621759892845322771004422945873391338380824857638723047509415506335016913072238779307631574389533793516693503429478872607320314715281171388441493639518584336301903947527967661613957569429598511184570024350947436568037525152393063022601919381272992306827075982754499937234974033994899642093444814997058181991373306077090626236918750650530986647614147325597004638805416839405430178290494381344937030694820669464270349059084887654406147128088168217648318464579852248851775233198997808431633592466367797993913788827858398302982133112857767448193732344355440903573401547115218256040062929774568791100320017391899315340350998703393813471690946626736251255867722029734769328474968450373367171175719817992925464994389912411646013887940376766287116895777401408771392533331764339528026944871434447460287278846466036906607905808864894690715957214757442137820621977418917936730868167697297067698797403480980432192679575066696981312212365498023038984759077256084773793332314721313570689230616982003708063706909022602998398826159720130465641851366263617889377476197697889820162834418499286210602516505807251841497832968734746395321260372955961877072328769616174869378003352990655279845316161947196277833775461382648651629064005971062152535316070719930017824554341765739070470442069394616386692788361590468348000947358788884170039891453837423524532352508609524138458672682390459614395565226892766662613755200711988494460401413691718806533893951951377047585800277891892576204748401122958149597085544774409996758137093721384309053584081046386552644772369459948541829504436819570266033985983883267077056959998797942996317616191482236227421210094950213285317610588890744334699925606704278816643137328700462912695672056483948927261472751729930880099795132662955014385379742789056665176584651120722730404847361437137425232880346783646272022277811324539252333950354772934177179037913791179141640069356992221220194552047395069978040993786688711963824682139408692035305914070684218149932330861839994897415194749989079413175708255091672845690688951604549811595096168574114085219930336105266701201274834043215942560598032694365034459531119008634701773151161427965810814355146229553265756485400486866500778866494228211038986980968436222172669077557845341081826492586121260636234168980988609122736636667900301049920626047275051637918579349879125826960114089668444156737208908228474144383708662011659573635592519863024936754256279707816697478703792661376631510894688147333640092581297971866328507047115402520363209438115787032931743648293493767783008301259214257144270533774013386574090228158448897077021140470417210793340027410937607801651358055935684954997293591343731656815593871097813946407977030486513763553208593266932788778687407188902539458459847318611841621687036127021037893011826480005634640029687483553094073276538083666481373649043501101726439995550086865507923910347145639470349023820018566964257729042766691398749273481976449860356183504310190197366836188479359467274725314089144042121795833344077562623209121449131317737638726127631016405563613984933185848613368911358938753246334867388480093144423383552747817596275730438156722940859040833061268386102168569332856247340339263520611923842865660702399355725898612134290550708488591016651109905788042806804196490966364847882673784016702277181520617838539355872199218210137938062772984195364981698562728693740170005415620144550462067084778408471341154698119632203185564903763532019903873647765923634775952667034991877665743479036340543825281998807033006775878590270250666390899027416566188223490830214099756131940897522728609880905344083483430803848154961448783101382342058543269867999080436757871858819813277734324654237982266637028830702964057212813123451277989850970574269393279164791348980893598952033005468926849625494591709665182496419336353574836111233519340179465742960977390483662113659127680684448774738579863140113218224323396332471936751189061043831732560174197250537478958816081296334668926362430949574780315758336069689680499178217645796330338392726518118583211574726433583785259751772046122525178211336275159613447121253820385902065914228067204378699043698366096431241446155983071839146419844712785432038761414005103860933106339546884457915637642556951009091533151888797349441724141890132087231662926192668001828116993008524667598244282727315346911154749163670194642219714432586392662984169658678400460939360302029976904903054475508877540360144472938892012740352263508589648555432205843612878910649217004632830882258553267489476136795473399539660036316611347051879098797627074193307720911266138671233497059784623383519298869494170157521999156780687936879698206887637566617773040398036436367819553761726409822989643848831123456169667066681961002938448219953466536569914042251554407177989054874343564361309791052356415855322900688338127133739683785692858156079543045666700504898404980955811146963306516925408391004076722635685733965529027176626465443439241931225506824840334491456169117919014065504801335138162576169383672161890870007105535227822572653994560760281219609343663452011051222504028851103299137202938107488574396278706764044174281515340587328688155993762732824334925805151185719035348841536920120011232415765337160934198312874372246033426016082992914217563461933856596115330011561698421495858338351363376024476304040983365402825443501569284062601445299599895479865633796991747457977522862963213435573293316246220254507873989244139405274621641212010085042563074872925059378563093795836796942984221453040863676397524026951997526082626753202292754491287055376478193418315772701314351065346378525385856791425861356063019888259971829530277207705032681488532601770468191069055720412407939642829155253078769186617825915250494140881084880677994393353722606911510200061221567872391372109139696793536794823979425789937087207670581922384262692134244305512472665802550322472740381957726427185887967032844060937135919818936304743796151349096064114835855069124160704922083536853719690935598483261933579853370982169816050013190422220786794529297693540876826416707909195357469173816273091640321487593594974705512416066663602050985550657152903188499538343236026946408944263491791953676373795605204113866737435385293142699844164652504456451309165041941631591154425228346752237509378416002838551581984291721407493704186213112310613354851492155362077897133294295963703909692016477529380469568686970461923377929403292164224432405734552196128599701415692961676459642684436669496535349112797777440843583045569474813865230174303884932028791867641331121075664821792687492373928198555226424439420623388653783943576512166504885756069803625907727397795515260057841262203394645069304861221705655163439810456328111284541335552445383294745866316724105965705032875919925170349431420155738598444035724852922335824170524216607018041012237835573348605440998933894916770227097694225764145132163027015309054781662078140605130137270488194058190153452275982307039183786139682633511946751373061800671509116077907567398305496842267765764351542011310030714835106397279396056000619734778333381511729309057371328817462973985647360407173026668109617267405871271215216689658892319168214261226113332032004177708719491404581598054715801816931913501825263971342899923868151457203079521516384000142247666528239165448057670525073432535171703279439232882591968661834377311570625610036385803261428785110809435164812240555195783932551607583271442367748516838605825690510859246658369052491830980629547626891935590930728621071703774424393496942908362577464073907200828064317089736958822957525605837000910617033920708868424570927462702878054776061730092912721854007575691297887994127914622859893413484734076818898587723672799778653871642842568195189203897251770322450959447436088955695665551067591731348107051438195606353873971926636671663040363614598011377462343566309478702310533314409972440137030327591764508039370551791556111240439548158964270060398833408447185211202763075447959383511115904734969368004307106861253429395259833661653628968002771754098300064807149607420368842884712623940312247780619465166531833188740340254498357797268068746395851524153388121624344038924917661518955349326621858386960902120546869987272199953596698752116034672615378515822729187376934287395437869937821314872061062106786729097991066374176555371268141548277497077135369381396252901446880595033146485712402531667835228790336667118382408899289590196921063227998134146983935330142039553294825941063991643332053756810944386285933511334053582624001358713667670888812748495354116196211951601276579003413021859645726123943028925002033305153304045856511557909687630423643497252063078392942705806029847638650874251666363258637933724279474507079841624923296147967933616949149453104606475200530556195017322226856797640016135501699596089718494071489828507981969677005003088252439482489388901706175248022082252671925770959781923937244988666259428436998441085806235854450614465936841600137744907783107191600202765811235474781265610152962154347596400807513320696746050575645414386644853522444034496483048145957116477021270220619928607237095702975473558249940829084521939492871801018343439359543693152312541138187003630469597771035847806743112857321398093993694716045115160730944884808477549772829105770897440802871274912287446105336109660628086821406604303848039600015025860848891689508117095012561647299430952224357467239085592952260663046004025472430044033504724707249657354596879653701987573298817938937936170412540482564167706214084892753283116127304749029664520623609484060253219768595345408329102049133568327892547887339280680466217050732722581794018966073001714822932037618314810687473376753372721926316624978264766500213812622021711470404006906275744278570291631119072027066294728279016439862703712255859302318881045777321821295688130737238142713883110139032367663957843730239947395723024544618814781680832380137486516719840136254340949192493428897622042931016582336593167496604051786011197538928722466637385597906893120992753985495096156917319282045890531782120751934696951287178279272327749928833814084808610519468324499369122122261794479038465722577812776165363781253501345009026116854960842892840794424297219534181711557277421583601458553004356999626615974645203021833092592167467776904895616376071834266834384540268390335695852395249827737384067812277870832593323811373056888205432137510121575780640805361324430869434364394302275280883137128736871849616303025476993054602153916708696089448153591382848188274928575637557038614753745565599116693070920297527020009700839023486618076244144237716463631666453794251732120367619014048984193374675808716308684625123149883900534569076061223915283618151038048297241537494467526710586146164276481996544449383497321536499650329314424396838408244715290893597177425258497160867264054306659955947588579987821748356571704410645735528107939404704513313373423217083877515207359484460778009051967042269842717877170693798986729118788952875657346269261677245392769704313883287539996897246852427349691508938754740479526149689521002085495003422801848720743552440506288868103238553164084351936025833114385802441407870957470463528147570997692514580807809869783706402870210577945265276435251967904046758846632403075943512362709245974357465699256422741469777836079068112325123203076214163599312093890224303952372412287461379986558460030808581024856680256143516560865348846224980135465959250643614389468396412691499962328647022264150035130538052191100736307720545408385840992939361195042213884068140970572761215097210505879410248043375958317256207285675698357867058049378032114060414174375850073608056022034541667908691913783580098038464081426451972361838496629219466005920338298127665298543364273377786213491188797034106868307859259418728647387971500810136137746637066552034096193052911521331347510264509881215113064869343710669542536464526489125265541494618913884733600542507828707431989391288087804513169199033442041207215912755436001633251022832261532102227698305342281684077008196489134968769615482088148443009080351659032847614608396236137616783583332386511548845246972724982100738385785284274256909916680051916548426425837364814131715248753078777145528552395838481013234980777075291167266142517016231808760538779728167710052821659880312611840681156355614221583350086235984835165594875663706603766197803568464472274747920844556494207652101606886687477169133972628518155075985080100958603998308784545715673108490293904380208749626773357827812976627061504659016811787106058241717660227409293774694079421686830129340739643239653202912842509177631236690818824245821816204067091292983593413162822691492148300109332053524545459025220583467548232118623090804711078539226740302356928926205057468316399257046613052290999573497911725029071139499998996883347124867676847298464905121288393716797216682961888675755133325880860708787829419785649908931371717964122795756413394342584345702050941452725960232450742886705824121208444142840188519283860638434241912081216520961637156744760836323572537100155228904416231896422645827282282380747882944532047405334858828627728209170339029480026700358524404678706977214806251563490158522280361228921488226201838698794425059396788741802473322128162061746806296944210430253013556693497920578380178481309271915665916753254203584649020637094826169712877027944586607752023324238713479236334728250510295736992890976352708464062423873049215357826100033913311867372833988634880257077527211839408259128525105057361452213971111060105139258701295971330947744961191021260015127449953569534098215883300474883320924631437480967268483614669025878464219373175128074730809123990104750372731439886670717268605679569933137034738977746902297139036240259123088940995180595218171366387648403558978696767825203872485627809002587230586417009811691385358109870329170136459205671713443383044292706390127392573352203309465191000780885994640780716103597209355034547698417099806080986352286664940355526099349324318616069324623493702688467888949088499310310704722248260303789330339054634636864768767842482869115155295812453077498706223830605045483627590797504618513611887393014781040884870201238898901249558793953473551743007773182758757623403838492340593839436614357659423244632191309213126723856961763613798910478701929644010974385720268876074024909195525436454362100775198500924692074849468907722090178064608761627820405759621978719841341699758875841966975418832196637746519182076086287424697576137912071113225836607559276882778807102609154118000440021681675502101694851868142440717586245503559057239495667422072234291380370963824466714828416089258763992733729949814961310305165735816383694918744183014638562674433842281441317619050922439400908909168806460954937022316964136869583563395868091884630221419890506521397321236809359412575533166500028153770331271512902781747524663595325818075103900433253172000011765508491048113124963729904217400642974063052632120782908430049635504408027158859088788315349101671691680235004460058823844997058451007823042433317069369143352741964470652325399461645972611134388216367080493299423423630174167622002875583483146480485115976518045029746008463463387628153737864491216859703019861422825546728210400877314424446907149238653447190835733532286178943576266555485627500083395389876725536862991310593863964502071430214502902296849169230243073682806847529193961103757196442971257572412520507590306122770695141571809998022588511085323202491143919330027700519636887042679981853035358918805398470560077511524475955502150316466149246138422971815324996059221266002274250990433585413454926189652631618093096226590770089321923939731484453966143301339483981889368467255837286748667991832606952089733110832868656910608474548919275832492791234314432877345845796315250911613955373577502162471150347486236726236448518018375390146987595100959626329336655761773102974827438045713339395050859384300176272295014402397461160967295140072828770755299666773162917946048243397724797351869783441882717691355676085134316025050362501497629742963511642172813171655148376165527179426934969274751292954374479185970208143708237493499390900208329221776074254301089220241739144357271552447507365788224727589381081355506669847980476583158483166109012522559391738900121471856082959764716643956734807126042793693372725817117674387447639001935840558044473358479587018966868160560576150931484408973540250182856587875914759399128128812191779953858269680936535162865267534318005904035364842629843485629551521293145119653767945980353712835836271518965121181360622113920171572750005330588299771025988839402317197692044418864181762584669236318685294792974775077071161844765172887056358942034760492098775498210333089125595523814816763641745215617967003936047565040532476123359456361193633915162106824901298006570402786254136324325801365365441103294725589134753718885146607346312061533734060015378900436923605688551258839347269524229892938747168383190222578296316237794559354451641115763302467478693347015733331147306917100842069950808800476095938288024606112353980129487397097832639740004605841041836126200416662082669054728991344308394077320824370123024545551025554136378252380724190935001338888285552905987199295605006070934989378321112650186414341221562609269645363810678324167834523623629859641844785942381182876324083406344036414409463796328427976968495457581464259418182500882331721317753446642548855001768672319605683323423137435612699237712407078342890837219221157094897994370486873949052417029847200227879444666388636529414133216116508521082055054168746549685126683055006928354741924205159227518547681811755255990615231995163921749348872277674844185445471166125914633173379958703629536051829797291165143757695633904278041766892365219201833517714646659854194160975005810308495334698864553746813627459087101717421921868346045201746263180517847242250678791656319302082847177625873660651643746108759873241720836350570789069633375673378639730684558817357901567728192840836996663810073311084584749079932411093828937200951995170068937272794467552199192552582386539831574553054009089634931120389939563519058480567265043095790625001794071351088900437203787836985124430983905016151573562828473685131529291623001149613194081012661093241150036750726821102409064772125927454437216624535861676163371336256567808064303517848587388303528972947354806130326923251690084988328834748770715465181196427729675868762007094288539278465121814090178390965837367146950726338504192442136989606570728293110153684335885071221478338094553091608975111706628055167686047102394252066322141806741328620375063779120155289031145408914816789471350933560521739281103678099497864199309570608247072739768967515526610851985313236483835392652745581711621134466016261471040999532415310559748233541884174612678826578000176341407273464655731274414947402641501557116125276343498169912917630397545994800351197313206895498948074419148593226292299339881161016591423602741534720306200924522144013526885389787648401898739710644705751335263599935137966447399553641544596903906879230825356853522509714088948607390753270429060657123717670756292042550339625599836446017503498395056645718704110850796813558609010344500539169341681016100300840793021688753978593940013370138250475733379895491655759651375476429113511690683275603046278215797864699549323224093710059788379240999014304118702802095447403218039911681586157465800043108025303924649310779753700318663022363056347393985924857194544855231030256040527922463905719938564104841434257072927686883052827183076971444578745690070397860371758823050806429208699798407721023861117610107802215240090219923805362815739591472040626088415373642411336651251371216927254136498877859153971067208804956026875859439993204899770743437864461965599727707624433245262890007354220607382853857361601675462154452027220479217037855092936379351980392885559872313296846421783275153698492887596242042925746371839369585080893327947063291610618273238267700606663868163599036073757182457912144418315739475379665124303883942392493518701691464300772872119066565854444436948496257541001251026848198901175207526103630258553905191596964901058081522670879293770200444609640159500009551597350479842524441018383721512771208710524339383926620137617170509832268884697145797769632019606570101509279580280540464825451481387312309854915439936231057293446170854822876440309168241231161990440374083459978261735705069793876869821371986990139293046787674224346903393346726696394290923239279251855893887451318799744926763391823380417535675110069784563822511548723380361501905386803383174681389800475166008679547358513846378051073187841569926784032318678675585933707300291769646049993806979719173588581017938534774654787078462013544187664539254111422729153215652777956859200267366197104602297544045987235764658068216024784576963362723880475685387895275998310918259210108822725864810902196610200622443162217853653573642002949531855158303692126350597700101161982017015263933103877276866667443612763085541582483659826353451146508903500289300853418474388540824180553552893524902796183392672667911145825919107920327859630034831137021451802025900860802749905550873017635513792576675068901859525505098827288276079735815218743506645128819749561584500140665025909295202811513880780571722121013492966712995352389589699837797335396129019673811220675156461651592543142633442689002515524533701507643972725204812018429835760188423193652601950540231990117227617116575231506542423330318550669211954970770884494882388299138770161139179704917273518331444953552065517338459916981342740473731456485528184399254081199667851043837274300221828889384818485143252471391066008502018780559188114138882886192452418955759516969093984824028091585297960148680492144641128202910359096683466728559116855951564441344726549280825926693895601031684371672963491604068770665998816527472077584140639746393733302628990291593783726219128705009328499601410786403542932557403893795315685170184964136913166953713281298047258538740265170858612780738461372620993726266697783888691891908518268222827653410351438564996673750703129106130924036710076338080077444552756494733213614832939249292076663834004524520475339051919881447821260891220497663417152866835636486982956847392596751859034312416624073365627590381791796481373350973461749304421423423642267109733428439258877622285016606723121000764626447702970790647644788715941482828038000980076352759278211114172091123907389635152448642705269420857523220015390828697277215477224929068182799296854356514569264647189189006026761758272863835628181806960212467892988723974202652359853161652095807578624835894412179457871202146817811599239376265640617974384687070468257140144067175679332797542960866000215662784096829067248048266811355995092944404678071252670900726627621076063561431983497074106584367326536516179862820198100327736706778056099634287255171572644209796056515569060629691622979766419276159578704857910894140219957634965907569531900609463143203710765909553445815114605712355432292229046103743136739897719315211904867144845402625571113537850552305265450127076696866466507019010834327512624447595497996347334060172643673606100605001886905267175192596319277368139363953226290176248284787842947112493609888549767818120581540771955900261239293338916038985867946327990240669109838172084695405412739186511052652299492742578461076052113437512998043922178846112123953349005269455057425914576436336103300892341302905405690295759025336304956517368800367395845434953817290226689177597589785048184731766020206712176630838955290080064103365797838244492888741731187397593006973750770941170703450968557538134942514660343769997224204533878907197208688330703041598668378221433735437517215692361367830118241251198838005111665774132589311170478754901536727637681276781886406707651271566583939466476967898716280111218135333040415947434071629142034737495614735651809887811591186001014469059686601508858388243184024364398498985879886714032295744884942673203752617964745935797536372011101411798791805042051034094740695468888190199564839627113282840173626148833426417932046625772953854955929442935358703956879915989880441745868304006094037314699127063102674071394842023940243294570219183301359730527097842445519115504195554217033118417522496975521126637754027142054540924171577141486626144898547710888418474210885583004034507853695419392339614290366301435836519124315804410423417082039453032679970275449000550247525356632850281596615439497215292644832327691162108279111465762993042490658397770445300267546243236851761757796034099540462622219458126737835708611494076553075961068379582667519357397660434218541254593053153482088094993623626723800503564777879947079138911759136873747632801854204218737136506483273424267262928351391766599405817141899815735655722990012959428908343100491699824081406907789477843595981695971817348383067129767046384481244810580157695647047247159546803569989096713328300581485026138170155746921176375916896080922390323766753112076228580621367511616095364638790670755137619506254299500753788755312346629916043305248290674845873012631517151815655594859917775935154085323757315840211718894506074389673333679446109640551716396146301301431296786950774325296435453613096290448793004215626446447686091389793295673449523545297329739677937873233812457974865098222090513537353886935277035293555358201179748212280952714726561427788182382408482990124206018561699199055693675225165083329323091877606619594272140117829403130509404547682551036065905354564127647487360191356028175184914778091392718407774634235041201165411802744317177817864496932152394297528242672394781810387145905247572998517997883067399235041074723310154855768608468564734117291286700121526239487640099505979573871263782387536888330913700578338689226795277657594290576585672611842425372065613437338479052815850887479739922989965247423510838798972628034569153849449922784508411787531650993746982036958455811854817472351377930565378243061113319288472749733417063136380832492805113990627332687016660052568997176709509465335039908393554835458453461880237228319516187551312184912453584739616768981491936312140566311090203553651612746372588986674890270524053613237291824836490233829423123750094929222899058364921041789460131781502484946733731678727316549584499014719586372138365328546222469656369931277656899145719683205118898243377208314350434735566872901596043329733660105979390300779949017066326990947816844147003131388856132778314361829907944146316942287909272810585256961329490801724335115118006090739395242105096439821257056545322201010126489948342371535880961392137763801540375665368123080728440380101889966120779419941542615682111980875809566610108679889296413421676950236002297732647971338807819854890486349553951157021761726259483829847717673213103838226655104555344899338440634930399007419478494166013242664977136552092901893600064649808188028112436065008577134307531947519561906598581984551188810728824489979458733027297000675244444292752395957383199370192466700684980469933947134715273275608950175646831001519531459945488076585401377255823025727379085487618625929297166182564529888854650886004224956113028830842246088213083143518959251296681243722808465965334122329748889636502072233776456082869422111781989790073242519790416899757434657426957804586058227143737952633900613006349442225759089426796180035360435810778933255899035221421535945086004700630500084219873485303077947685523993072701251822103250831518092800685312391389894570680290161075287932737403001967351187354226969848423863459762136035439939620527515140688028467488008844925461311589256719059532608348362226622963212005044004904354000166709700143387475154922424907958331386474637508046660167432087029573143160262097686496468811775221622943616970711149289444474894702103922562346431152970859982442482092633344525763499680999201209490713640530015280937661910251517328559691171656514572979000217790190227269279166291393939400753231606388228883030281448761266490300662840534694708679680715381652510989503893740714498990374522721751733713085847284917147148014305030690009669497716082479701363184822675198986240917789134206607731993963518349177091664046588975415024277579257773167905266659027149601945499562427117799966276962497430103217038341962037873707788862769909025144924821311904875419750421202513809000385193316587981223172114259094915249589718457394798417223287000436081079485115590118957403971349744916104414961787199379107771386204637017365827473403804192090864502668800463023252269203112722415924879691364800285029875122924782893219512252943442683244716857186379313882924301780260527103054415186118134419295763805387715905716868731588294288554294896106566895951359128003976872479059335461763395925566847723932402014840389822847022779841430335564353742427657665632694099032614138450492147622086594168521031744700166101334276554095481839261302902585228460010031667572959327923348565623965288418049530167876563589468403107735562817460905926702221022109421153338272902222448963858282205579951716682833127226870854324873600067166885249313933966850406501684082116832842227958473753668085484223049781485662473336285182373323666693636346345712631151848809218195150460246096678775321669719262779237259055155056030325763205651176314547761752446155129690704385190481910347437989187464623219919263682565364017906142027682156483421548561663202085063187402104872736312969843073978295702513515267325211453087414729562461356967832817182089866456957798993605570075406276238113360627624914434667738096466736123960953013254598086057937317998266438591359994564593578665353850751462792125895313160891417867618666149152756120458669713223366450045080706637157817179154457304144800310729891589173219034190708518529790720790823338314908406604110027644260096122943030472017185998324140766767035743304301706450259843447579255238390298367241221003200919348458806701274399241351446086090386296521553712006160934430268315863885930888859422633463398736701473622714665530616443881728393665964261199360960466142912422347505251365209443157025529979703833170082266267320589005246474289722608738510162330904014891705125372917059701881787591662445953908037811673034632646027388934984783076471386976837814575834768939937830495683134755597817834143374623015419994103431166939884819724957009732090078926245234405134977001225673424027258672134705029337360067938229205189968565039102424539081361407170457419167257542042664419184383773191192355118828335152646061583254268448371688378582880145983548828849201187257719814363298579119916776463269852882830681781373845795391404823587832034802703168704422384413872650837018200263478821669140517372179910720206607540982490971969360029394623108864934037539492913768046055868225783670142691914832379716135274476510018169555082870031826665140974926140137222876626435732971736322102290239756602956072316881325330306561822265221272905759293631158247480496446806996047315554138224722056126220636883877856053410303212609434411237103537366857887113154097209558030578848898809860711333383618979708322124891706048457404751718721948423384281002315288202459801355617473093695936344177384377683791011313849229763840015489329358986714728810782279121155268349655060195483427264247068667329715527370005616341129512992413455444426121637796168783999227526206840997256498443788603141201027055312590967516959767716026557424258422866049355044058912048460450569414250186452055263545728240021978229909774014771884987777178680919141336880702470581318572864982650638039490989485026083684397046594130880383989430380624174724735698069710245568216693720855250083239136111274204796612925289500997743026134240915820951089229093892680436402993472101147175833775217591900935206316337717117377140494887556704594869382148930293120325340346145584904157705660828908584360810783006054925217898790829336737351552144122700738083238202444141311250668214973431542638059771297463837271153978813880766731948837494886018624283751359345628103645865121322525512601403041689073976479984325450577942242321471198024380807624647441946076696794713259032082133620585381962739656110716681909588693715461276752702345965508267926763343774181796052632582056784622555754694986618911608936540517915258041750400655180756595952658055173039923024506388030264183110208085883760642516717413878288443213469993190440958865808403418530844558887812503836656210605941437114351592944797592772119589315946134828414345148717435891413384154592801227760505410654928592346416765436709392398757469776463377114739277767010060693647807842589374643163310581896084619466511072218625974952631619165305566046226807487091412245198216282155166447563389335949723787894059906517753988097103401232144624370251662202874061296368814057900023616252667411803559048311753069829002849635135385537800855193747973848466691467089137712760732004585474576129172191555029204940819911200686003816834012173616171002056173454295295765845740323492996430987297109731278108066571016114128227331157215079240872389366971794311816832206329466405006458070403297046474019334952344094601449152375403531614869893728874874897260605234723257762959305091357956450318663206241219973187516957556303928265550988950304903129924682524064371529153324017020395380122145612703969309809585400407990546548393199942201320374337249208075967339109730556657527266093902906715551928360525348816824740037182559292794920469083013571317972617238824869940328849753259944770963512179096277025198078018881510880621835600685163222188260026059214790079395485414856535068791213541424626557374648674679674109500471335239410852128925262678046794668083176097301916949439379200887744129884352684131991981226707686119354735689942678909593044324418781257526415914612674505716296806500102545391502316725140979836838750555279092747012130860384266484646839878805040713896152697523211442884138505334878873252196898516576373446965329604954607717242593159868985136593939812529119619906015013027239549597272574138752963247830624919655341708643528927120391055788975054355967850099739945345856559968570394996038733132047575976213573493101516764651282982328920688027139442766258811002789014218856775868143368044792433681443679848350153758591555149784664656200044907394137269868450603331627939540255302750246516327417528804452917530219255750803437369849029872047371127077230982656076009203468829694023917324446986936052789206118555883147066732049928100518014189916507832674766112812818537151161625060258986404560036490225661065017816852936134603176893246394356605858562513578222383263753957921376612012720122772622824986255430463072442221683024368101418542417605526888609978144913180569574433109433957013860179141271051472254531919002205594206395634394632418027422209532874342216400530128891561055479744867683904288430967122214769612713534823880798982228107068755405510574991478208922842032446900716945646771148569746818330500413207378913051163927481328517002929278366494662669752026709977824456303692592189331668910086225998691189797371711367890994627199920156040581367032166241034902846351898572765156894390552619856472934268043015173151588530404437851334096527940407392520024670988049479055767832647615480921127204594724938643324919949358974078800190451770076861048779561468158879657246364647767263255885359109985032805765833434934538984997326717797599613018135764086345370765197814622571642755227900483581499593284762219034097712313489184004873060124589084879632010971343981277593443673684316865388364129685391605241525674703776816877259748048422763968475797608305237508035545677612355251706595184046243593187571674338658948396132789677589342686617842840356846476660606133852233866443617043694091082792584076673477097242759522302011209294866638482065409114561791780389632659169621442080199425539786216878023173895745618235350809123992884591739467038253516549482980267053532819075058235542582822750841776162009766153691167833145078311635192377751606884838953199955540145599986641642221682684687541136038563822614363768701416409188959411192961021279863224500458757790115549210444958059637282000750559356147869477493965227338426067932631518095125909555746569683254650685682249014325888583802516456264072742453777436640287803858840869912945727269172067416326810436987330886548318346688567653124894157106610689398629157947063797118797925078952968273486170972856278933783347420229736139611408815429309189347933136020961161875258883322684477757970116228603366513821675934759032610713679990586828771034867379731161411983069084981010023589277208916112299686656787683261781636307556477991386101031000104259035192729321357491562629040576911451932426385689692206015268311678051299759968669266937510795490818423121282667686273775618700631866256503431791352459721859060674201155446254425303277498867545935281823917327849459447997529940356979493172300885152581269999182788485806199861689809505852092381568819676253261914008702171378426162573321692844223043358726598599497883040800721291833271906562782647301229656452548191808935467628000483844700417056862210814305387581087080164349672615438969204851390031640552143260475752787495582730979775529657089138891489264465101378479100352438792501650497459112025377817215320975438100951714451956719141312999211640811301454560189813510534356665020402435448757962541523526316000528091763018968412251584821593145152823927338051342577461948928812166148469709663673175355704384966141896687403036688378733854461389529326133855704755424582400782301984442713952373029900631590908780169431019911570796693875743811015094309982053875881445493808953154606032225556250727536503622617384797956522848415322949350684588106849818148548569741439413294808630848939076211733890536267181933190849901318277771042711330525001762795474891632209989369619120288140876023723077427521674220382789486011497405602911468226212166348607456330747173801797312703738574533506641339378577069620285268458914531722247192090365165066664436832492993510418367400877682024918261919155842435458261404703910736004542466704529431936721965895490787262236192106124794057999838511965914052222364388964446973937559203468667938804992686335467275735989142896496894655627638394894907851110205039673354623643856744340457942019570166031166303723781804827251140494054785673164061002799160623131674883561712675235906915174200736756806213253367459194064198652380788436905682605026212591708424779780972811724421564587704464311784093185530648084195966688122909761990942069757486374020675963710251011901717708981050915146201766377664841390858352689191686596730957858838182072665508732908740545862110866014022105060952875982741102270741758200162352730782561205621650322291385255836445966820089295166346535517752230191079618541275323912131354380360130365083708905810918021249377111162580957584500854842347684176485517252005677650595111601521043507999797260920789965478731869114716542529417877701468362924888994729609623584931869299241186476696369601075006786694615514889061147774246599659638956889700808094547261141404716985616572689073484076408250741282516969674698647389885877306041201063392101776740471777064865620488177747503819991068033792809802541257090217860422978305078455752984042688234567524897639340747603483371486576267297043206689166149344605972153036540221824468240428807833247188368023126531741173245436951980646095431790736109978661916707675710014244217400503360215091234278376588477428558040581778780027318279989751021936203059944641334635566756077327732159589392956685408328511476383666789109033892102452463790844655560760759341280890856309016645845649693376382680742901242684899048305485939218928206119074804148692787739882381411673024159207671248100622259393227573200463168328563154125981720028930254443741381813650482608223699598165551377593392854329825447108882788097664878829617515390447751818261715456405686324150409856847285949632487361174807035638899712266600326241429517923512591883480853981832967370066217104949900444172064628587240065436871661291300019665087677453507313578142016588221990541201349045918048849569246250550762842572536373345896147559252514975401634106825059882743065391022094327179113976707935045180638130465926157233530069740767984058356707784755674002633264797560877585747361960314190996687525048856428223629752610684259050103234116125021548941031431496089385895284938924686893316429162271621827370029224566654305866513402742686219761778550331271538296885436200725162121317797834074932904923568218379308674258229199228855093949292901834046828508822553535466878942578257939069917882255831219351130265066724099177209725297464930587234953161761555532669277895259273267581499870700437567005604391790445489454223746897693388940637602496004262610189136087736505646694887831954466243608896106633710817910742909315653167640487809900184927570600425392647988124292977718191821450621235205916427313279450113566708533207713829234056064597252413266367016111684261127099687379689315818391261646301217070642411356611742295879754633399610869350246809131444376865710647311143424932374765062684134713508729807891949938928544498873206084933860525017270428768132870850837551999753175790290417484973893767495874663174346932326590597907907601128064132124181088114955500309952520483717438811695012606389786928114277818106832731699122529069541831493222719190161735180304499565929755204111666462216880040959786005517285296148467628400774505798750621473960233603202249780025228690350988255024160786206884066807036213987745149607341585601307638569912242120431467317677963134440727222862241900419378300938779661082376236882674719537513773977116592624484930255345493729566033734064057409726291513006077957408264563515408189445401315896146125103322684399670932296496527068868699988011081372220362483613644724608459983536939343723885429928289797527239059165025011527539890007746150870626065648818873253593008922394517934622510293743959714501006594929395189073352799115462678605834956757702659213192679954717468403955872743872727966287520516254241924368328194969871023307664651115761835046331807712707156919570553485254121110978133584176548869711122849139737460462669575039967482020787455501776396052737798714788506094890129850125461006769442349164675707838663810584845404773223478221932942215977760961265754265972352859992903622965645032024702237550326837333932632112081355036391418373175501732397329512795242394758154768953214988450148413296562321768181442222510412666939333777539334311396390472330781861052673241274825966086237437344392245138587509898978744450078418304542374268465942450333648715956934639204716710721804390308314652708426894928455754142630968645242945467317314723493431121847585714584416293129029892709152393503295501449325376716967385367366208956079371492643526332720924230235122250784685419594002763564467963306150619785968454779390319845063236414132300909826375134747591111660682417749267745194767147829618075376906444415993736109026346658801064687506880130817246954681216887748312250168495472803178987302901358441615635188907839909218820758778526631888542604161052874651595679057817475811278373796196819532721840334906299408869768001260050036805524436602964259379460436314930042870242662421645805570391754078806926717695557359183777271314452216975274188192531209995441856564912855354824549759975111282390655850006947748118652946367620920153494095043320133561272402761026372456249606406198189308225615276541367735422271341023762602960444966828109464770563793522125357872939198408852790590397474384811103945580655237622769925733239056826887210155639730109748217342788197198037034893022316560891213827628144583790910504914342613682593161528977097605058054762599853905079429793740239483702646548650495805404650246076884834921913927016529537503008631067894185160535763360045036112590934210690111061032269559730121875072954730855797713804074185161741673316849686408622986993898080001415559083105297932503797199582465471283793697545640950230178797406258935721158882134801540392667593337554755505704178487756958441169546426091453613697290032401797507980312741103504757653855241257359481801244512786223324240281147884010145637438220814497022422267551033867135938590758833341666868836094188588729363712382413533023917591267025689035869069649813047462260801584281294095456661306831151187256462242288283246341892890637946468221598057557581622302023250196089854066157098460720404974330744495967360469619183627577613129766854088619369528705956323262332032694617076046649561441007809610433298568430727383908212623941270798604071136208412683931921862807336900495483570728192003369278037504394803531357918839285623912214784225761371992072011937105640721405812978115707522464554285577425613206263599347672242616815267941681435570664408038944589330150848297711412551408615725467333261577047652096418170627595982808385914925610616140769110169389869116390425187220689074077597106085223611700468529050641135617009621145841667805882646694806896840237766043667341370332881918152370502280975103809641825889143822599507552189105519729927592971692253570526383026339886571811292275498720347868380363994413522239923718617228848906926193865604742422011738669272636393276437853015303404230367559564242890062971954713548868991930197254053476292225636562457398499953452470727339539663288638644170460767223258328309251742027272185591058680682264536030258458663624822561616881474923413900588787670074751554648819071202899235518856083399692696132728585304886821689613902818213695923585733619799028848654261320915781498606426870990307924657381784862474932099731980762138640009130702115557496356827282195356178813588124177204951459717225825282621315001670635531367704902648089764492096753258230917513817658729567985259096287806482173016823331324316230876551601998424130493117795750938638714652213724886751029802686786341044441886636903975090471584093376550486218801403330231372536187412471802734708984233602085462164555095475701540815899477810508425356449135039429190855178480354129258970830446669056251394194375053706817953537776906921818046973945080350979378263945552231346916298266158538091352467847527157016539749650761224755550050198981299098280590422508339057232419188682085280986666365105489173582081773179810704633869543508301807140672213609178082200456497627097569594255830343750960100221297896926288309300323864870871559095846449855901530684664233554098388989547401296593609792728519894541464858768938753759666756825419145261153430737683321345665583840563685431212987527280919823864932898337968926160216312899729913687789795681440373540795543466386850879763372446733405948052528357745538174202726786517591375471964395549110115089445238705510243397620423081795315260189059068655328828583346407477889633950777554302161909435037092506053231595740430158100194276701722822411757218826496260767765910110712135262560920863612858191587850237420073339096057360132551708634340344897188043808977872616133277634351700581284686839364207015529614059694807279616312746079740980587242529676215574401673572036622751703673772111647274059776256078900962776354149723226712183131826446411976913437380896413303059922876040541302829643271750709324294989985167869762428291533288144313777600160456894645463351512884767878621236121244583725007152134894913705686251698170830429299308091793751221690720464537271158677780136133755357869893254098184731074777027887280442836925247340209327464939098544866293863283919289790196535731965697010062255331172347066926152266445638061168997858344408352335781860513771432993159898734922586725857178803355963794911153323286930557232293420974343481485573078435143600690961502962232331658766447568958314614961594034297935488933694584505728457677042199068866226471811935843838616149933072168963777676593376395281975353864312996402072373323935002024205969489094836950128320092223237983932893120114673296992535310971387017699145751644083571872521540590954613352693601086741370302611836853979221269344338570672074358189450928616500645734621865060798464415696220562931342047238150874405472464938256473164140305131697760242149435870032034617357740579839689680181376440826260608843790272461836363148543016090026448998013339032742477747505020400716505185649638307670814329382981867672375736121872568717238015121698616979732516005220104772782708327336334033659736312620053899990899344110271491979770988533325532366105089599449918696438037543078198706270265087498727928825729892034057783364224126050054126640112664969682213805632634896466365180315600917026754413227077294114711728016099670544710442642867678387372296751381590962629866178823388576513210614183237358853339244923164183575052242112962445859984854387846016035305028120490960678895385773290382454719856846079447375041359277802934922739326356225756485004784154924289254280311599557799071744482570487390306063276385746779886089437576818004808492202254185999038888374711586333424867203898067309435466944827216373227538661482187008672171491537103170899336776120125249938651468167937481010111056857711814411390363870307754484347040090849846717806539395843282826823879606973242359920820655886770385098175760065564199812439174862901931814944752291295965416377659348405760453040598171701425826016154929915742174998131827153875676623227322350534561984652087028890142342073711498348641032502896730580715807607806755068293045873901135559807106117232385318389164962055950328957893566073371634291076067377926634609980670123042512124822128650267041684939629719504545616023596596651668902529146197077001921386742319237781574905916574894701620004047646567603001993353732301049591127062074253645091647329197647864066013847611076703627461596232309239945209634849109646283387752771808562670953255435771964418365338178079641949250668106508802156381721865071387978430921503832854604338801882761335018697947638238438716601187706078550288288134711958966006133715917719150043199016294350811930067875172766216230887656925445033170335538607540512771668049841387777981745714056286786183529522417701173762388562025054650373845426175312667283404745439517711931000994414146601594527640152009152671951144715694447807252307318521411836473281995992052851354938124026682896035844841669416091501671354598239958761952748732040334731188112654001715917375190164328777295442733044534722097001523093590151126550679712689466468492439534357907209892373806200194980918229086069439088860638344562488615862712853231552281605932747302987579583966680747410549443704777722735876400360228834677512545176367133254237579473396132364486063147662187854915896085676145607461286779860282625895255479175014161278439708780585397757747842989077803805713444774655182268356116175699925081065296122504763431793146968076355469078937960207200621892764669164037546074487897164772210305203205610017463088405759033380961660660437343817734041865678562719673214274860823652559191101212097671319183908785519269733321893100723912685303705128480788311101206628567311033711764798834380050146835590514986142636103670344973122907766593519748237845246815677651883411621967570868274418516992902635698709329143188608747326531137288551219286919544155871081288775331788477282690321161533789202922717485781935376297909480715686978070046265690765052204464972398812850066600350824693806468167068703974926880545750663267261578874449555202665222982437866177972342848116620772989672946982792180869071421616611125814379893517981574482674748154851110754540164383394159054885997118861346591356380087763723629312747498084983340064550147850781097628245476305589610105816241341779947020748246614300667326737263927023569556098576639280800186075417694806167341182109532969611485195781872891469230279240866028880428956948955939354071432555754703879948015289023607662751663728343241663368851439945435340890470773797065404907682347992980511163069641035122357165872028110628816444334833494463526199168375537685921653587248177329976269081189357565763713593341141612978384434477961862964828277507027912108190251535010401296452077399964670605258391165976929068334569368525809232363987051614538145699475235688257872644900969680181821524518355539940883723891609001875245468173311472824657642898001448519587605371250154538506579428173129632951953977068961137036676523189867214858474114551251972601150006442117789246645103621468890358595963777301117741061770859611605373580475772615972041436734463464762846117914849666083480993799246376494778120345498829993472373826821535713247743259640686734497244525396268835614762496155362166494401100018652912555473827743157775378510457910731945010792862473925614383056913766067203292660571927687314919518546322923872305425257434103724386663095913752004441164934628101193138319245479136846697776077870533804405913157132360043390332005403010808900987762470414314266161464190854882521226679779236005160115359570019150038798147886598841718347100858556078545772471327142793956046097131893999898454640675157481951578573919410182843032540120385978012936747225250530447237939686873604853654789111666054693553268885409089756371949473095079479588189003775152297385084425200856995359668140431368150087196027087927148647807649810562433141795907231945744032181112724043630841280248663505218424671041349723420262384078643454672644782111385378807427862819498707133897557426453698838744209083488698033451949032415507259584392333727351580644841272036301530778768147857255551605523781595586838743136864055405097827760520632102499249252439096122404514008449897945120587547938350984522286510005477898281472780288018385128075061124528795234802792352733354230963342726282876719537106008811642801879412699802553421486235770703833899933712522355479689732422270252167152985707952020048372446453003674216734501993322531195702334054145401804638092482406665181353836517243959844223338843749834852189072348284078914929829272107276606353935588206031705366682039153173930864637604874365970520556677858106320438251587517282995738183731374094581460911949788371027225599202234342161318555062635166542007880151482797510682360894392994437969601731830119736077829766498152639364161168746409579578012898797402972626855723204731520494372581915525654476139679995044052717592436357545241090773363695951954212514449014253124607878079664934879871831499174525525199816848333372416926138007353021943153486494194113247705143327897893758616623297869752573662499038659585512178523133779589946707281413203902941613757702491161881661350794920411489523048639705366611672631415079353482399863337754899985748621536904246568816087717406659504524224763245443837844592714695810251482345593890989085169860500693105487345375600205159144227600517684640657648000377237649642891067725391234038352573971370901505739441993321981468281745993919252531986240574271485170829017512178708224121922330954143201820652451319853509423213581807284264306914708797261739853588642960329409228453461184043272480785084657064790975835045020638553767529679262350286669353940845580266436968620108096653332206438881535172602777624339385960211413111188209825389029689510576666138799163960653153367741021788574834776120700768769113006680531112744029939340869695420624617026058963145339397631620218536796344763591487362657278863084398134162064524950796300625806642586534524822349736285877111826638094246014295218037843209994721322848620292509508175795782860680921688160305669193219652989489774169213105043845293180452521002276003382537334171711755736092549701825649462546042981228439177311805575546287566214181242243911734873595731646794339296608101927606529538093925949261560952266438019448285126551977170256877884145774536562450554817066520533752386553916366932754270123469590678409341147890374954971543797173721309530345217056270366146672475029194759873318784264569632915641528777995986081836736513258728364381981668663413999844592616665592498712831832230267071454602296560989285820753023774265926218322914031778146317551979364085179282619281401812032214142319750028017664577900285405419861019492334111226332672526948153968176152992547715957181004218368027688043475212815920741921416561382086284103941729516885065116199769437480160053572401869244562840604690098060788210337224147720190057473922650519310086155360319422733463419510364229589726632174770755982878805896767295140211941612795966423250312606080769689892067578967740796712027355540939274389919698884615144762027960556332768798124065808120821086362081891133501823872623966757343188095986960755822136739148736119371821808259031265051590992208152861571114797637799201215243929419385187287090061561820990271787485907114660066284080269479545762056688401836717565692765559791952724937871130615765644063596882694842448240983578721338703449501933668342555320572719176369008727518376680153840504316634654121304168082677885023985726198864037514470644929516762928972516157011010122352783426247799520674847107990192616782845755116238405805926479342214940253849473074381440382565150448402652655740401901063547681473635275245656404569671610057610219198713003215539917502077086069007580583417370519121492655351404336552975100225841400585041004280648671392751592177586954093582308782100855085329357626970630696817485640487262281142366655342409391126053285347965359936039712962501787668621888345399235228308507247787050693966688163021722429619826688697533334258060325165626094386554461215818561712714578413337267169956453484941554499877596720443541039256753845239348212858782339854050298249910659234921121755607054403941107096943059976369464958846956721827169846636929345224033563410264811723555894519187757350922417099445784961666711128596547683293580221583659561247579753773094924853226181095123635001746743654254151512208680371490020771670996097377392052572997344924071489037232730072600316675603609156349965207180008335018483920408302960003500818168422128481215112937512769939726732141572316487709199020303597635426035458807997262090497326887643017242165109445779571848392190116855020454330360003632983812117474119860956119571687750260015588028223944391461210712830764007429585071917638382865135352519666627184419262393670107403134096875218082173172986793441467445091482139320493002782960368435616941792696336094717496306185386785741768881835626389673892707342021906172122147166225201892849006160820949607427084912904763123565868457325830355380793430088012983551269123192228766222900114197440536287262659477665242111444371796231780195139225918308922726105369477091026066248293773001895938776089979411816554166635941318553865020273542169518144357734586092348601975333907300620994059749308045163417602708877356102256907788031967913073002743454826866930530186915063002521365941214321996248275864765133527782711172542697292432044608935568172397307996881939774544486015983673667104033031168697517151990629624536116232909213316693427684923908152813138011522395467483059995233999519522805050057072570654280667947579420318948739776110230524807305892735945241700812187349838502916928417834887834281447535744556406867059556039069563063247524098846876380044241272695748937274902080913190094503568958556220718998274473192578560683102898018631502222637397276691932497498127326328800564364054373489684366673427785050705504574101107933006440029878256977745006523248866789592337298689777540696521253184316650757069001655406408834846222357961036315865061184769047673364129098313566036154222503669325011893481171777746842255008908885455970658630222591981265130568095882096232738660516550433472041524173847906386638134037414065938208727557286320611180990518165689797630745542415395771801876248557847213803673538991043884450024686516528718024469992106609400880607017469607097102389918754518264843043771491570156765717166802378311588108390128042719828499926093300919404773245919110898320155947570474035366780472370542359149556230239652701356582922883947942135944808196516321240018131415749662634892951325258044363300016312773038783220559523021232112288284801587056392405934241530469348333601082557814778592828012466751053940412615409483092856706638237652622128673084095366060613807090691798725080726855526704702583427727314622676848490846731807153377500717434232699618710498988147729251688304834059826445989662072326209977718712829381278242157616784058525916546387283981031665167498742529400725250779620528864856940561374652705708766502768779373414499196591420638096675441679715994860875153766408384999517113446231639069030278929371739509119939694602178877518373646270950450453865441332523147236017778913001845487519444409704421194947031390088459255529762354921746392406674368381718463737876183381977499634866826032568665029248235387259219579255055035551294348595295573143602571252568733774730700743116340760360323693793396031745803332470273688701309771984596697477169106425661658779260594870733684722847595087232827923653772658305022363882819431223035997599607624037187065911824288456667671539340198362857171122141449101967501325531601087208458763413549494358901373336760314250714935252537594172929609895836706652803611815451177289236062509338260118503768347940015766753464520241791977217706629790305019578246863837602166912827782743597563588871835412035738482451615335411140409706088507286830164384881635762828299860241068760957657844965645032457402240269433151661538310945372940098154850923333587475428493866386898279523191149586712457854434530867387584996604729118053338990774623810972462238460848953711007474933754326687275583692611578953683215764634278000085034115473979461027458973551097950987493331509311353110326294705847547175656318166588444067011808564748268213351212982836338611290549040740518234308957296419162188427620278120106881527161503989336318284095553665626690902014510840250892889660930381544184482747946303801501231871617201704173237187595605587408351240799220867103650133110485630833081100567994859741407671536538615812154681047882763152464161591820968264679604356974114087480450492776934986920872500050213399394248990263782050351700432363982951303876951482103100232587300226585575242272220535823656820102416010943969518194477219769610100773541139904957399948130461502245157495781518236599550558545613082542265318014701439446305946377921647924740653380694340250890184058829925326413189934422855346139394201018417580668545744639454642368914879720802807910795037590473844486090116066647528283558789734551272734129686086655567695094507084141210089338646457875740590570990222263210549600926903237457827788703249249715688848739446068804668845989014741252464752418664706415649514046698755689205308692593675863205247934969412383644251515691693458387094861467716572839622017327154887870993344873410537314685936371677333475525064999619856628745553111168026671825571550523990287799465208920805346730752889384491993412034008248672880151046018437627923159590078772387850671989286870017309151464463655265799822684791768645384868036736786104508073688366349721774610741571716352255262042266556135406701382667987350433387297425446887117511119609268474067346495979847034469898683810592143159493529580636713119952067983898846958701346336473696740395295869660544709024358572557949850768638352635095033281759700798296524282342856209836099939163159912888504814814387008491704478618233251222583144546409237986893717006530159022258499300756755307080810905593229712057699427287199579007712747008464903839123895571131960757035096316736748376888830305487039567117299716807657167324224593110198741650557308502015367073006836791424638285708623540486132706532916946872070910909271459608437304502921194242304974841643293946545816195755115481388995477648059717342358108127240830446621346898469659912127628964704967829700123750641929029164785156024357411193254797624525671293349403903620859562640876344827865959221337156238416810719365121282837037259403259414058839465877540264495860429653614699565159637511575871952113306290314635491846366458310073751183493741138613525137875549693857958083265598435621752799896570137578732401387514044594854223187340302306027733432002076666822908370989074387162753078521791354468050501080290491237061338883316161308655514570962053935364134163343049343920569880506572438563993109994999522064702509855317747145738662636350611029684324332186478414072695781379859111775954919759706629555451273406350444229372083126029668382823648850347307251789577935338409423506883865448159130165855455574011102458767514040868067506772322181035111993654961750349391050807363130907664871954070438066049962569528091755448611036503757769182341728781092199278028064881530414646936296228765834759378824275010009447580570826081017792024976511845239856474237721476101997636104975889930204746977043269945465450176265441658702230584985246577783349454608756139868646969713292488153269296494424468442900504921515488462715065251061108075430821623815690141290130552764254513195207352279374662483489166304824470224281440172640181436627031699356162231295797223970833768159337990262123381077592730722778947487138759045864936327234619698883962081083947018098373929705679901622560843996836447984240578933672000327165316305453586111003584666362304993526693562465422018460271861661598230550391778091290232336372003520427524819273590913231804026133704587645037192163750232288006716004773875001113151441920945304565994863027885103240982990945772957507727858762990454154490452910805083676928611035037128681091231563090376385373196585168598852366103781912066078867370966351448861642796995748046071221413802558807897746261093541246854398423848232643127948814771674394228548169682034404003107705287743965459106361650902129005761691023902609661678697466109139787809800590608405042627721729853565446463035926555414356029019846512683836070649491026996448159717319018917594112592418997542998981034337426803081646496103104192549121755745837885713695074999344013362276201482818806677657633692884453769326939242628769239324687584168104470246509533090898996419518195012262008037689504708454522029785940995947407491511805488055116422226474778664335531567316633630527041577773835699852061960171952678704177220494830210573485929675838279083887056288871114337202987549728091798966477727046384270098755541906374449350396424729009337616516022561605924301156857561184009379467353438166677775262238731811126321835563501996199016536688941000479686214011887591570476407416287657428480953031154085617770185305572944405963303109513722511402808517088592182624062737677901936032046236165252639036779631504660700995514457624953941955595639736059072123229951768229670729262891024231992826500351286873111526615997273627117532675757356266549741435315968127671479450690975099538036871675565563699030115347448258356150421763501612003780178749822171477833822350957242486675649654757048689631596414391269791330035382392091003167203706044009109142654965294663191341181943781597195846201534101858302180697948099863780121721640580125259518465490030889679129288364830982207934332148151541636620945031677066642465980796244217091311888822583463950408043893690053889134577231943187743741474076066489990888112010775339393642090384721928053409540977432968802816989730485994175573793616630542233959152193083248090195499336644069991518812343411920649068349362611841893918678914380158209001823998009318274769488453919691581610396757373135937454962162601334799561413983127380951295342831074353143989601972050675583724584139388218592113704029055709283977881869583729758881552747462770921467586243843918967095180509197580522366398907242235576831754173237581319117120434984767873802339392578229612966852502702033471239947452891654175221290639007226654576182622866991752502612774154870073712955771198498229781669428672852124553149444028313768962886777259457800134776927623355945094610864573479826567044836150521388622655718204302761157826631349074203060853775517318689722165425419663640932592562188026700943429410782314958976608336511071798387559972880657575832013134767048966310598199237056313839824084454732722847883241938713809982207482672379664486177673647058496999471311457925104215242237894251713586668530269566118804950352776497253009970790372018891632796323173840455531787013923151100536578507232851810337047257553082614595497724483049650621631994014422307345486597394056060100455508230631873035645040578201353103081524497033170041163847223000718676232321830854576080176488800327506940815633371367242620272902420091281807113316341261238583953754166882888462629890244660580523627538112949258423386729833627960142827775504167033493605481638207436767599805265818172461748874725438892504904675897629623144758444980407140701741474608912107743365220452954392911119265370930201515355771891509848271422456883230040984486495023749463193888283931299126221336548814826860689435503403222591188755863819461107240303550261630976762463247436597295667729972697114870808682501109008303686696620297409254151940959308102221692775590475296167082675650612489731264071350582736336587943942429434263903816044817080054422503449918629194245506810444869494900031255670915296320212851933160572754447469745375125736072424501484219012761869761804234840540464384667302406784619479269236623187558509657813644604865095833898279733704506489490464891993793536915270598071146975328080974739469218597048486264492690861237024032078025299639044002073977710229651258689573599707697815048365238545157711525938147811805373375242636544016845529720378755304517188170712905217518220431806942660673449526944916133479316969402374919984225075645209849358927972560790263263613916874865906649581334654150243769757139451097682117213603834760838159564536991599730089641335455704940089582427239153711759080996982317730941154942683679696931928447511535165814709922446722414258351280763400965716930290888436965919799070010867867967653932859937680426108266882162951337204500662842748953375798897050023217567266798974175218360918587756126664337254439060091768458866461777947884726052500992209443899919650534216944119528331285506314066237818849799523371786613490862680909411291594342301105024234872955048462902919063602384485046767849667969189239442455578633574356328183728459995122200735817002164762648841495329585004988508849442371903069131905975254796520356883645691878386983715245032652019074122748209381181713128780021380877589590783883171183735402292866307541729498690311696948103312337786697997400354282920316923731317864135864506974760225435966423162170032592366035371595385745338500593079136451193348204165382875594298444355284794102368240134987620621357159414980827618431911945459002922387626245955230468710974067317663295547369281950380381287561985378358610700110094182136228503187609434094903348127122059645605758378709231385029623754279227665308412342285905414585200019225776149459136960328872863897331428661346320681876907692895260689615645026264830512284164637734558552696439272158055053862705337430350023685169248025065705501688567781118694615831094746385843647180987968897216578653170765959386334924702836345718140771524238298140915842194421696972575186777530440232162052597547690928417367595472119032282104427830351852086511283111900081863950926621198554090060515438909498824098017647227850085715205463471386998317794271137073004877092042099095548572518474142772968892064888782051701279181121428889644393883480527610960299749463638245534063494638713232593453603937540412253797341501792031414120067312417125443165301247030693996224314626430848870075433445821863959203404316388356088448639714385171930477016817458615514629002182960353134229546162932368781999158119093536645049117815474346437909541654407255937344809369973426821655771626120851756722537834541823650667088892843379332718292024925296793685100367157641031043737100717655954977451367892836502411567477420645433621154713042301629282257976885813459952663099681081653951260975962211246241408921906373475843843764473618269833117951203676002330835504792016797068300501817959249348220099945401999670899731770019110873456515284363132143904521284313742153635617132490966854272959783067484670932132368762778198598585223292981673114138631450238505609267444992049962743870808327689043512239959364926442265963568865704690715456129342471203556490340874836359092180792200506138284466239784474885217855700888385596891669378087767122948037038888015626792228291127934041189384867524931649522004683110831759343223997861599324327396243735498857959295609994079164029988686078497330045282841475069114620065112629573526947506522316192651688050661180312412862918908980171522434668027841254999098249287342462033774602471995846724428258739771522553506854128029217826098279746209399347165935325021825456662700751618440333365868664478066701865145416190139391900793451585439013781109261237083127365170351379154360364874167437619152531784227515030747411165562447301308291220187945794508534348533762634653833315958643079820480834984019085766346158961001255678270126013809535290471866519308869431269191363683041104382630382951951135840456495083264506240682095710250974714997591101100860728239722902850650884624841057407902523552406891193470462405937359861318796975703613499027765262530708206754546320789537441432006170692663735525301289461009400407122388636704745051234064915881723476888004077742701257671842408569225285733356203417209156670924578130172077587627314428718517637430197944863423203681456228917150767936969419444070119041766612790286356815379876799095583169964853710155921322783753382553940554646500283905771102255982694214541878533546525207764087935519868478372261193402156883006892020778089308700909434069555680532253196981900243127861555612901598824336212758871006430418705974221647065125044733594410335586740076134269351917951910813691140869770636582085086959191724927978809002778349617440481554265669384726060600982443770615192222094553162509935410171964524751825075031044807415066565823454213939141820485415710604193422459960425222724693714889008498398200709354192314876582587033123374549142577072954580906194279610170875160274647254519107836512231715127897483377028177457966951700558701719870102050066953205362898977280882495939198244488968192245819686886695998422598794543581672792770407438335257319121571875162655693315631638006449511398403323455858910524713347752987350795063399801358430523717691575541632909167039103746398188837960514591976579376406807437304061949519533292494789432474143499655084092972275695352252741002409838393736186864745575109968645651886399097835202128701341239728563552912444238322844548587368310155978827260095123012572784567754434638982738912738735452028511398636864033889551891104214311728346673968604287073555264623220377225461224033096785984392101811512545938594931060691571965251343890122034981429122718155755886359343043964094480869487013947523691517452493199660903886796371591800620493160785882958228752914710391333064095257117154167874800875444492829759500556690225059489629596827881852003740459678789082683099295138417390256578470760018220213661089507544879007432333565146492445829638352005718192531010679025472986926875499365924188127685412548264304540414787416030203186981513657400831535887072429454340890333041153214797131296743145154150648790599338039666782851281579456276913669679633155837417094050111068701364013258021789728143881676877517775459730277817723992997014856910862875712215167866825509693456216082357219762064583012272992091930704086561278595738932629395597276696691159123437377540177124412241931388816430942737698956677344246152388503772272429086342834784799528325037148496596826140054826029164420761346237234013259511496641036631074756172939522522334642567482633156069535981901298504009917045469071292258611660077374555321931074472498615625161007729836441987703594640460997977790981264753078366839225650460388532330411472757154186543581387253709991503223572765044359117197982845290930775489612614152895816155017461112448188250978512195932662793191265038296572689599938241293060679749499141770038687179539395509419568803683876975836573504215638357462000341484054943518068974040149585594880242501780885401534901879902713969622562342757858429469891142608187148330023198974500305838043829411824653162815210385053790169088150744689062866353573142246127216439121227818473125393702412931868983297737255425885934527831265899582866404547223963477478289640982693799097052227195614405128527910622388409643919109778262543049754431214053286943813145754301941967140592322678935558118034642177817547198362318095645051457987344446228348373377910463396987868529145125658078081037679005736178562013586067700037921327030602306294962903369736538706226433224618526948865727945809059231844234056351852989903634636390184869415719175641804744152840500579596123263453808365003342930962971494703987640267939040811020411622213096496092105062943969317941272328156485326369270037446323706646399158327896499552147742657535777199530922238305854456206768414827009921994514697753505455857751903193099556723778693627423962040231512771278930928977941366761146990225443031141387920015614983317249671176950772913155914749951899145142508002034770376225337864848844270451806803156567290396021489228618964318574130331845480332732088662681212537357681601760521808440274952425678461948155307420539560418761288723215029834184830684297642050283567692704097850825010404180997867335886884674299415693984207804534795923454052874628383395842080090960032361934705316314539491458470661663896735611816604808651604445600280163491950189738483160025819127123412469507473735708890747614382331296101316988274361039561694350810046635782050795152951002752455066754591657450784606036186038132682468401795711890235662878651681057685517515371728321026943542923712584747709672766101174016939226107526584715170109751006248816706642743194333031855052925625783141330332132454721573112579878607345943061437882844608607861037697560254933995418791977220466125749415914044796650756008660526103516616649112710028189252329448079124052613105884782959459567806701269482871687260456448804506477799068267752335447603458513829559524240598158214468892747185022553548391352953417654872167148864090270576302917054730606501787660657591027122943544335002826392185037465259313413319716067685244501938067178407918173721738765955712332114169654852129292555707333310425520869274018028781638977552937113315382954148431635318112888422097047574142962769422622047897353573428422757302731592743734109052270515060015468741361957778300776090596835142365250369923880490213313214598130016172181182738164801469835862092131102577496041775087890785613466600216248330279629529527191047449685107334015987334360098614193100379642590775331017743704854174078260552449866283405364729495482072152402869298320192329053935828841577512318868613073901017583041004553183491200290394809105871392179230098085774470232634453620112041137568033151077086435014689745037050342784097368441163820075880056034669932934779142660994004883727362734309731326951807268794094739764432192191034110560215021591196846750243051525323077593519744760637770570726496632646320703523349537305453841586838667389707377411129046656730361886879137311732265575448697999350809818863402808354007880520539283977843742726579301055676737972789306333554025510682957302412099723809701355850530573096258807198618722723684708927780982622942260557394503592491336357016773719049637427594625513307368983503296586325483368510856463524172000192795691393527215377207780465108165291598579913586390606311005132160464276736876361388045316746903610302129643621628753085495783206974599744428480991376314653968677371399092509671785423348321697008185250746973556429293729107474558629587251633011420901032572398071906450041002945643719992723396471101620624290160910908156560932725915227765478675165094581264344326301720322638399307947509474234633454590284688244036794554292326651053849417315854588830800832122384213556719126320204521684743822970789566560098101919381956320193012303559782011046609463309681716309129752294435099695575867796093207694410830833797523402886253260408256690070414088481264717520724591324798801391647624040847700259636854879401183986188600678606024606966461607275431180107761030101842445623763857002567458448062244672627574829990708284690362819954686779960675545140526611416431074519597476161229683766891049902153435612898687222528850740527344457283585363944182323287501580422229067501507279621575688610094725231072503014632451268292253119058639239039409012059916292287505192891767891532890993224211827203810913785494159529010794356483962700034182425955636725001092778659970122496418232631357846448466934084554482884024304850377151476495796223097782008292293880251910312854664487376352246507135869796335697221863022695549267074324014175223759127519510052045216865482362814965763239067383451284672435942883952131521757451588885194430710552216043224299264510237291705746398893808649857587805855659766862398364663999254071736841139233470605636473638093983746598144311539233619006497230004794024284562388393382005826275801344045361171072131652825996398910008431040505463633375493647328444747869861556864407747980124243070214276715218387510263693808691343073758813030572647380875898675603060951457698271749276474756858678453477227130276126365885973364778903653062888929384647127840210005573039064806555675454863723024328438063208759088689695717282415712397805354263930829655276053577871023806552088173124589095021837493139023788671506005477976027160426791937734533798210102866570745186517862041176995097187664108662614244234328444784302546962650119200308024339674903409523354954424323680436839930912539782903765108196357317996269474235259119149859141957519571453723057550288005427849967706778663965160481812998466807151497392017672603424566247867455540279356213333228070784226242571904221161404546516667603763956320087817391209215404062057743177481455688130022839429231579704849178313392969203966465152578118022026698992689125923167318933563691328655069759858625035044615838877785581279495950879072741358611994641795023800871219383399735226440773896217069912392883523285389650129750240841847932237805228612352723197680739264342263114312290137740787214357585045413090480157447131023032641791567727014483201169585035802902532303924457376824097146745202881578604795342840539243987694193918838914334244688036663126410581566661033810113510829857793283231227342915193601715249275151466198652174790956441394688427051056928208559850456252635924156692131208055362084234302413729697621605380207169242571833191081680827773358174271307527548920586012858687506815963349682875215043662962476206481989390646992271169686745830868869382165425303931804476996085099372644493033711909798925438433895436769931674318354558453228083829964305959509337742348413214346483551590186868776707788034878593221774991683499325402545669260442291885158755652823433205499098784635988728052651766793033342400504481765081419656808640636057669601463991992632284561439889399405498401613927608330502170619020408510237283204677270030610190029761106503825333905323243885868028537815577046727845041348725925598815224493933943165063815688033903069284543127915513265493418366617360299603757036127309540145833388233145661694579397077791168355935538772532338322286497492147966276854050030659243839410698448626478962206861346948548034605269603950954578954576635917171371011364234429018922435697827489203269912537408238704745033630760803488339624450574237794252085691285893268019060233435282300579794938190740619798042093203681336809028545495262160118681049151358989069911279943479867817521549915772567710660088972508059514014815481777374068396447216069143464678282982967161799170115579532805059612005745052714577153766637376132858556126830135966630159133786215518759056867033343804873704521846097657155872511769812991719068720025221474276603889708085869240047543844093461883649107190373049194047049211481692044609849587855160303817134485191220138157610518939325507882716312744499634084346740845032392728436179288953877013356588968488269338898672598077953524505386823681057952554823870335547297688332161825492768102320539831459630226175906510718826022443066206032163269140052056191006746742098035835968468445399188612370150259204488012411149777665405481046153747363999427329007363524430763390802600320815349119512332279102273773821323504086310407338309569151662905146185552180252105109782913180254065281534175249169214194142592565818411228913612172144997861682286430661126718903999267052059574616007455843678631681944594404720023427055539781723156007511236180054301642412553275846470666183075484079548307166318241196803742144743793365378005863055250751103503094529523864703169026824186024439799821419613868594033143398164537574387563971574437996238223114626438596319001251224765925427401974072442806646237858079691409075831869117591415182496064937570627387090687802737158927552481577018167725211005070160132152227192983873043589047350957735557811605491533728496834926395702125573626402913692347863936827994537794612606662338476396423031562310341028965096355554496344907084171530227193128830941821602138692910515984225559030563612473485342405551267092725879252744480213776302321231129454576868484512265841468433097725687699812405829289819113007849570369685115342838074184334995680658123741424982751735837641055402655782281004065974512757620077154308415406800300172243117156803515286004574921213417144411316600211287885387042648795976937577360395812234461801810266831071832076129071563867053741051374505289273885158052630770843933992535995289084537759952046376753558441956865570388439340078208057066143961304022907101430560032513845789108024211724027928750559042680264374644547351089929386213035475670134921597448488451238607342580651677819560797185906237598174037834141159728229308360552367033559800548508513774558141861099023018347236271031266086964124497454357624828961460718309827002727254237129506057906439433604785356020810379801587752643520311407982876331880195960396199377776824056672052045373922857157263019001161253434098261706937473317484537483923448337570926815046697295627366318017094334837248844025682022068979026050413449003330826150364321764943114682494179714652550766254395903734640175522343032782225875775085090034393249114021643271497034066095256480631867810007764402744301244965025430727739145286339091777829426714319848316073852483307431401220591151004858724954211888466344947109386771235679818771314058199516195909862054159436067429408279066590649912956127447202717248891913368981370538972374338787170719811193404339984348800454432802489371622320466240754088449812924897880308500857510633297089577549889157107264026400549581480784042101692221378194999693774707100244488099348679461406226912276020477249118827441156522391249981199827544166897008910984096403169410763761810552922907506818907969901228239426886320602898284220609696753847502292274644886922206324462536568683359557955537634007218656018899460304255095147570936148263823148536766242968906149817242623484554357654364337991990064057591140906421491676282772753444685245455941425336038740219094756479623709588928800173741766805347143184085693090789729156712102320161120710775737278193708711019342556388825942096479307984986503240899965831017285398120113786097513079152345330062227895573457250378590465211687748851047971942014238206228688703692956459230872789726476580802375144402853561458130205774607683908243280531833130884206474554615411140995450687208000518585384189476518387482861938849933235688201281354569364799270786190395626212268698600396398474646226032393830257934079489453732651964148403137084051669474229471691454340811500697853982083289935165215026220416935543534569230208821118548767743071916312173280324179184906580362982150516266514294686833078461917064273302982513573534333154662010310508495807503913280236331119029262357004939829633342519836920985445120433762112118931778408136610446955071901368639756636471599115150470834599105357639721430867710330939551875741102558197188463245607051156379779256427487246472374396338944429641402049149207222942079497922775343826054314732870950136462877490102579304446873980986941844589737630697405797734080849319799898718942262405876257675406555527806133457035505216574116738539353618736885303925936230519585772366400942569387352327777547596698759664830546483885064687518728989181885315159782019134498652092466936951034819627616799543076909357011213399442833086663372355325689552464356280912663092116452005385637607014694269047811960093234969399811310559105413586508917688565823649271154733838791513423436084529324092386429815034709822131425515108967742661595256872063546485347968120321527407899709764377999204334875067758667627047287313746723908374533607180471550503164678272283736751687894627409890235688375733334689207824588013822357366267609719959840286948785071217153163257830698316838178256679892795380824358673872269614235320968012567384327507297759461900492606662796341176279850334345551648791796800423163285815310129973498155243510911150152456652958082590504820450796340666871447741755365357199815316965043604934746374777226238533416827731899169868018603692618330841134912862016422757761027149168117309550928880754170971135935367089121319876420588310799590267046612731222526339760065207256102034194369247042897749861440135380655246531658843841653399235391805048626012117197940084267372412454556123555237592985140596412186459419935899887392433631812365773937750746494979583588278024133137113749143357964849120508270407487692695010755622245560055714309486554254402989897938232920997014858408908414994979282041566631817687776005223981297027903030722542292354613786719767645429446972375874690876859257095985756126711294247235769293699081129522483236567774842541460084112253412893262839324996494305411596051818120005339469737985915666273451810356230187301155567852918854883701044206546995165554936363962392683879363472066133801206724158201495987463269266638611745916180542778071920830439927403801813166416078897654417477470535246827248016192084840574196365413692813869306691395428478330483883707645164100090887742281803255837014919443921621624284771963901416849491099531094055560332527310482619644837474036043180981017499164425061761766360218967948876614893079213167464421447886189060629073066601169837906762569377484687213630683512893991366306664320996463100796085439409129754252805116337757906775175818772555132078430895869429043211409705442868038452707533916943483686460663661464246176483615461124918381790538988702200519629432655670364511850040064661052938026994524172651029385940035640702343021813321748923216560650933871991853634508135683203969934869118011333226644766155552408969552992114135091411553644423618550728209629783547053940999530700936941539578927630980295050733131164808489882633510022776814814043318853264546716704960481420903914805478200681615365333067536324751528650067407276660837647078666021880037862609372615858896748069098096287972710759659108215010663294609529872587344421946016684366168127162214555629172215616432231764522574512914322683360954522639151088474368904909782940134214272893848157248540203649153745446215037267163781053751846351296449199400955226853670055824068210700540152863557503189474904295843424076526065633076974349738133537657524463045378381253654148397148774037206552727049756637655251976313394431899216031325179381660807798330550316477891330116228441603807668795352139089838649247462211442305086036246929623385867027219847224780135579796305922887129023140172243717121576679181938055654199859761599217807576774551618658821284991856727582358040693769545169275365888652640398192643805945535344022304807145892734923880275983983020615454595116489935437207785368938964582942142950472016990880921347734864880764142939541323925781335311911520469561364441656372743576072589461892320436366843830910787850028448024520309092743612214826794585403827422074662477799006437305579381457558689095278963261590589201984688937137326956146792904409491118178754324964802845830525293368070816876369028937283703649729322033536194868368375088629073225941125394795106008762106837987416219623418914324684585037004911828599770758194737288721829673704244432622722434422912346121960476329793566789115102380665550204829041408696368886127795990543902273732121011102832167017202732766169701078792392578257356690882087998905241227781739305911377328426845075351344110179663427345094906409054085586428074223904115975707171672947629902284766440644278593744798155762161188386002096017839574854854359115060375663967148056013623587958723862657149691398985979472020930641062403718224439595095055950149641335947143915941631248139442385079761909289875030444970839642018617575501875573926643116604693252644489471818091630229154557086380403244670027200765962500820744080314410074837981403976841454092319482746056800839971438873866797210086339849796733830663584787331695963546158999802250145804002923636877013221207419988458155992785441701386705871098413379676397586490448610786199181568635610897476060645457701189181089106282244779900590799298764684397604375270586732044732069151384367877843992654140282533812769385380891267963120694246084343282138377299722200160931370614692639738106646184741720569815497361012860005664186627282619525528620550423019895862288666246343753474324262312451608160780648852572449865804300941852543580977512220143124690768656953511116748566825201558811900608715628833758417901292590658003586413550482043808237151643533986771142025111301974323337750676370534394243415149059714632330875032030388704261746449731694036900262106861084450876660458977377310474622021842797506335253029581577703451337799780473550476557966359135016752522603416282273987096098110742920750320248212651314183035403714994356844071237648782688188222190725016476215013632728878962318085880181966349353618809925415411686162796265897534783393687327822610412920845780659353685510051226782159263927197225718380964867118475642892211875143534065924051650195495751617156624140767566488765347355797465219331074876176920455257298131276686435234543806953777839596699288285030747558422413559245067000192511126025799370830414938264306806507124017742963241997943903593635759374960126895774699956737268289124386373071854378604845469184525426113609634423882767148288611413272678869877804459616433364615603361213026373300985727281896535344979587223480104280312399226515076037961988039756077620798234559616418566366537913620335119030663792664308373910027956161281321805649050336007846463314608970531584334123756032154494468492036503485346353564207806287194504951692810208041528320787951746679055300982636562392428970406993267647982794402433710759772464410726724489948530983813335499941800475945492178244534999969854582005111151086286962397316005706386485000728742986899671798703486402926066287719170276519626522686724682944002970871581186546976161506971463759424222760131351253248745514469088827360405977663322864749137330652641905239253911611320816188756339715224991765637824404629666844100320296342261526019152181549563753558416052048268749339565637883138533516217396389784573127778742184846621311398396970737907860207840945539362344801078570923660723479349209690795839391093093819287606143633391726807727547780399819369953789798480057721596596937424473207078814041061986724640053600407106259764021896417945143582381084411145965392386652072201424271961129279164390714492934753462894550560225274760619263705649328090285837062115768340571399978345320622869828763982295100651158715957879996545825561954034884096527560188087265580695203756553857560351107756932602740526272241641060718985890077731783978658125534696473312932549926387277364039095126820066794490700485338361250162697515098011384528394004700501497603196578026186212119162113125822658826264845918724010040140084352921725338436959970948751638705582588116158116178279551359008144992320016971119690699666223307402269597607944101261075776815514054035758648050228070419748260753841567265922027293914761997204116359410866600836376150423635869000213929673560324386012041346968131251850532879179894247263800229218221437133205024336465290176105556988192094951063527207753794440482101917827262149489448173470366162539133668117173042726655988235785669215038049033672976672777032311886736071820066166894007988214267781326367898498850410056939591470992562792009574913704118430323935640245097195173663212171371462476062873911658088606446368291834831177472158060381435462455465227156113519377448332787366309775710130497477069154556553970748753950966387628934651547705050061710360553414954577297852097262261642833015468797877558859498601407777740340431880423533244080845465053224742855902498084863155718817276658935320144932495978940609933224165157016544955055896062165905671165463510140115759599456061587391887099876448040667013021373155829829311330264895103255178990065588390027702689774103751090893056550446236253009087986599555800696182781492253313491922324070204915320601498608955458293518601499305795446934085170083739669304966746834883687542511570345275016726163383957918968872319681546486451816349160540360391158641937348159870698857349612665165294959815681418032769016474646028956251248679656150848942858445090042236876839712419096734134490674720905457054273830078441597233858812603829531376016924028927716174493239589914106657266681559856078558210984388733499477642572711280672340113644700296167684708161284705294991711766247082346571055651706392571069244878673617869540054932677203085921441853564509474794823172582927275172939967809142398030548736215390307759788780693780875164925546938487026774222172446245851964239800734557590937136143174925253575422483920474880087983569664971325552828481657425728759219576961067244029913324223318144065203793266686214997380032634465078046729287733777544702263022697585487682679383425818761229224772487244872828930351936565429208346028226980170272625573027154519388034066104850815212475050527791148293496160296303139027296922551994596241222887713103619461253561336419553141448250004500767121726082622766227326534310773340829413085468108088522551967986833417681028536220189679428476736738562795104366529631766640632005606671265112101287870843680162241942463303863409991502830134509810005090092262508433450288197921467033065101721010516100911617942574374324488026494083912079971984467170465682253962280977265833876392368125847718299039587709305295300957622663314870790157290196145202026599358221731435776206837210608266895204724441683904682461139674745465317732432971801978203910891670401474678147549241163612992058950909623114749427547967671976704550405838781382982703229368928004573026175836624230294754812213719553173120744213460835091852993088668191393297136276180918260333334586404806340271121740843053400053143668667773762923064165428481255358059525829142885295426205345546244193205870478072050116429811703046962033532926412500323792153739570806495145481173935694592564645307540999142895802612294254314969970341840634937902884615616718829494168044737966924626386651083260518729096312775964888708353966452237959255350625607984991795973984467738026332772547826063070752099912405004739916167234110846671633030582859216394832565135762534449777821304835765097163886969711495756520290728893630486096563899149521811692493167483641282633602750316431790611701767438812077965372041723480192455280059063486151384480351075435016063136453087461545006614792590052762624697334892852423037735786469518330355818042477078376700986965669941316497943031885479938719203850746405153166800341067535245723656879179772725935884660478650668701893494211103116191127169924707543039473840985796376547994556052527923399440909030255465796465556551164581661400279014168581234259535714775347869395355624003961714066473006737997258381154775102756324033930411647633766316645160704356437290729332787786331064175881959224066518828656886065708324397188559658688487480302807810625667989041270824513794300309232765448970000110932573634865485232598538690964490843387333830256931251738768299804350505335628845023392180325863905659989082329371714696794481937271432824834307290019453550487619356769523902625486424054494592635592465471905843973199140574209607260010459925871775083909089496002833027533454092208620695508327817282612600802209318486689730755688422248405218183132183641726390486915806961063466355174988920646413655546477630156287109085704030597769902076997860360733219643367610946573661587259020144496445352309239534287686126152234525623251863101194071899191902456299395378925311104647451628515622789980016478350155864076390375803352646837480146920626939562701093794610139732816492904737083543281180060513806649475346751393574209106218144354269018195319567070218450667187018497453774565149864075128163233346694221711955796474428783927333069537460547324647806366659799146163529845805592026760761573272643188476748614125097108667775674885940961183633618496871096586747484599223137146949184691034143739357603246156006825592875431079321250812564206940228198713425629931126810071599052822858635854460675687824316054043465982172521296872797586140037265400649991298335542293644460892472705812527223546860943681209091757742428468243956116738346935175843142466415255108920666529500404376684813510209379478305982776705632655628795823314747285908830484487793911606555113648487645041459125588779676178916580504456043361084746864419088512748752809545949990834524999238926412945317993834764005749104032735395536309713902963604388221995225854528633550717128686529487093686529429286227028807979003736397211110732557267641534855204461316746917811980146345252827214130919571912740335505979404127174306104550466588185709976452080642724850347676067358010437790766460376603805549432066678330525682224864568877258831242914210336814525664228942690887309498489171167385195721788530694894569017444031254307012111402576111729147931657112473622991322308862281511085490574034824170315872420898505121446618942525812959580223987757157374097880132383199494005733061343782871918984242354625750994811976825413933074804366970361068301317458217610898899078804144715126677816987042055616203463498818945621551858483534336113533809306707364116410967604770296982511634385012087621006855712671375616388195575771424221268686865373529274412337207595871809981812271958884368012581345872546102300149790072489667988142925237512146387964407197805681025456641911320207456229252377245883553330502205533899442185279888236996543688326417074885855910204728135592975074074670906840356345513940642341017102087386656264527764871666525478338710146525513542331695947088172011944112444829401157591734154500778675763397987064750301664747005770919251189548938689233371429985530212377463259018896021309838671068541461969099627750240093640520928360397491196857398703435435917381836870117324776847001527000134131992147844603219499067776684176286338600479800752156958342672966466799212305385252765886403147960081161911604689400458463608820500442352630427208560886868400970022654164441389864883616542290852309058236973667350684836793078507522876586422806713883198519036135119666187760720527950159826735772890858351194032242839993457086731744290086434582726051171299511329813214263993551150955897826633511057067751967324511688513576782509001194278034675940075057223794943205088259612328718541850817992794706663342414429388272062080090306637877016634423156514605040200546105862561899788944439218130211803242180622528931794270943244600385820082558501849532092300171796999084977745616776525547091058839798589443898802773819881974591047686785423053939079091420251203073101497546933840824545197664123078223693841099356793533888779961072202942743998636910882313806028495741318032524432031004891518356436143232173112383790816704141880155848561232376580727912875502058910367432317817181391838432574543218762657812051715634494017318598917919355577537051018096658630533055010055902574283381940209751972564998725229760731899566412831488239979630647010560983790073960060789880432092450152737676981790120677609849644525158995266529957156076222702163803650919852968153268339534848060227568315891531328472977257144307898853773002787899874997482788559759296986861908541980384435044884768003070366518805700732230043673346907965948826472324208690803620378539485877996050638049139206103316108563297648159484188651257564805687666468227667379261543301525440445746119586895325152048459269266637437598884427625497298253201539941753273289396372501575833015154819146659739639349104306152836055734558178385911151693754866579728608435551207684548067209969410371540160435510289168276922692213288575536283784376366477080698095014190711936508251031689599612949841101344058189312596675269912254723312084244916258566777326821617798337480297797519311235820992202977359198447134043574193162862919641577402772152708936122080542482564695451498685573753324342690499259355924781381151253782857795076673126189773045023852809837188687532284492549912214754762358568835541402882497666045419189100614948390429522258048784475825641068749994947700494992097957068731812872397807850293260887607768209294789576967505705820466203619804171930008419740277500986713888610629791969424705472265842607136599223503775602310805368258505584724248998685829650942285068197373761679869344832671365641131646535175605576139731899426958389427272665570711023620888862114050727617463893500281406220368801054272574440931181297592269946450119163588050475970727452226851316112568873207245320869252575191529993788679847882210754554073735944223939531951070065108400775558302918678302172150560729419303327475567681772064622265673158984023442871074190572578334552253217392996509134367395591309364700660991035929962878611809887200535805025956366908225097068672507435756371656649251404187996294479973500028651840186182116191812035486038981275387008818059616138767124731330470828397133216926113054607340548597833719872288734427975286738296560437776131476183089157067483211443588237310067345850826206364555914667260936847919343833837540338307566812794911166162366567079715252523251659566249285959897185304818100675779887893862331821070350176199023512561284502547082411369594444914482524924126032237873408452191605503738569017131259607669147073215225666828502867464716768914593460421727154227401172573548067692817843874991807319915746209452734921765343921763480367972789726596554224071588365538164753708597198946107299033077753934466777877314361581428488543081906026851188885346963269893320283050451386732840340520107196754114303601379157973935276593603665996219172010555845186477687943670378923369680556057539385055669463139699043418162126803081350384651784106365728314003211600930059689634172410077854091931037767205577957279602992098536534605116325322583704662345253621233485899617803592731941885441892799151050432030789878308575095642374008673863430967588230956775460721675929731466341194820392851735197575497480777804228889926644535990235320825454795513371123688392615662461768271171631056572888812980349080551373838180273098497000345030826388813740912084412550168459940327670412179211516913698103096574824274924800476325939517588764732188104464786093407386617446829778445122289892783673478858161496088481536657213116742756460604193152039897297935392948854576876711139412575758876960127869935401177773734698429500706257470697982980411363605230913750120110791867005878849725884487482027979240448174761960362576461225181266837806902175990002240686996147088644118315956902387995768736069973987430532603861123282527439137705199912688021559054237184462835452173404212455488523977618256425241352797845207080723818661599582261236661660694772799636158513436780664565304535308663351507495700292366208222481146407821915065727040077086497017117147585396556654316363634825186757727627440690561891442893818150551730994962469369540891805195119479507226935470973789835040963109945108495617603321857559297443155173494714613996518619005992103865050637365769719409698301535075329987067687102088052392539559734926409005331433904617928462011608412043615720570704815471746738478088483071679454906455935621870990531009847782426425841594593054273462338366671168782822380962595547699927327115848828782904500262665554562015369622437778502400772893389365946383642081686459097962842302262704902288668059070663349151580049969275842768703312369117234494033168236536463781725697960203563593664533275221862757521917770472946676030518100351704024010164249679300508769488355370686217066953880959667574808395588483018748071169184778420263605038252005414275919085842455371649747261190311943343646755479335749401956515420607066513790826574963073555585520079912780269471580439481729604629844223096708872360610636031911334789582901826036388488170745622428233268468501721863442183825965286993168482118865955897626099174758658149754983719924841045322357707102754950855988350272284096043805339177624094289724444925800290387884755245129230604335448499378459664042162439103962988554893548837241254432437818612988934495532106006614643585390839035125253303192370396093665411264915091599007081012520785269997988972054499916482632403028471938355493056615006487563832312039223928475373075428133966275071822859357596164448171626259286944228325321714262187377044494115064351714147221600794645391863475546052564097597093176239444501581290785387214402506399412581239130716313622885897196032608343271168109080965925604404502105645809138412525648877379238929781224242052903973666196327935547739477244977122778768521365120349590127572059119891093758088733500669917937406650737269274925957140070942961360446095025787198976853265943538969438628382914910225673224137329865422148805362769687010799578537298035715761717410737017281485878371178416333440228512222059819542677476606791126828955161424064866354030142420396883947520505772004503756666055611510983343334519322468979800328108385848700866874217905597028594995722329041589439067818607611161832502988370439214614042224881799155622524975263086852880125062712450743827731287111197466704299511712594636395202151022345008928120537803032666193720289165787902866324202983127065954906904001177406496760971256847505143803217521301405295699734422546529661868121925908500428985288981418269451757226212999137130870537248732415987776207272085438977614039350069615789634123389886316674844869266200446910328746395150512107451721389682712307375216147679387476860661913636242685072073011309482199797969033238918102362985519096237384833126754471666554873833826307553761214367055082844160898677647575529729747185114474084277281833423578287807894429261107706594381877349284344604606883232605547175219949134125120519165753453852348204931612339673147756995218770379936730717326944186271750932508035554080587913472552005703699134754304792322662618219785050765992253331900715971087379843943390525463122185766459987187855083459969930457620770262787954428687958019364217894510019071912298706714505806613999504337645995552859063242148193557889643428307658576271714495216109311413678297217281692937695475230935167692489976689323601376469300773939497325240295365094963780484978936500509762732193186944102839823253472851671649371377089429636557228413231363273123274699836461072944308617007620973320608451289349404614499845153401620624390680902337553742158808034669767464167589686331050792989026176823246238790301625636596080996559907774394835113210872096773165823251198609129006863820990367174174635017697578145306907945471683678844910877903581988716512625754889570689827654545236184042359278725070050928563489522835346409603233141404562033984358115578165435488409569864151689807367687763736605372446807736119757756310522213592020676736338784116648464483695282219069307953793117841194854642373186127958894274972859739738579882947378976047108999897390903792589080269044929508345894253815597476957803473546329448377772211757841597994179780686175902112092557067995531048196270562357977171397076034862474145482906958364495497819458737825406062828342240901345942221456960160567701709861326919259497481480794288455749053281063766071327752745171331700595351325840500755582313542264045433203237498413826180400089049009088920425317357548760499049007230360065018619374890961792930922653570312037522529776669108417083220149011865735884427263576509787451689811779821785960854480633658399468209731445805292402856976953292502865776470727081366651949628527311916624391427651627344717715771319251296174191490541502316873372589719649891795851510169275423757692768594048666742182246657339057658237994322410849828393178475414020326974650649613481855369365862902899553032627987546506041082033728246335860866694914672193684526547351955474427868855971961795095796637903308331530571828765470208262685893371817399603121061702331942651076918476355492945000578224330596853102970153167756377774354952834694306160498241368337544749149431537726899091100317500588377951236582362139899390322269936844790721338298345460715975062205547885234866441414164915824350105834785140163148465918330757644558097167235598089673123859657542350011715865407309333305922126348019749141546706990971561760699345101802786606581853985586126910527368572640363499937410036142027600070847428947552374614052582996671251225756570054409591253207948088265622274421875001286899162240902238989547032462283672745115292024798419136495980444165347708331579213936817836150488362369669862207710930897143982235225236526100903271174472175531193532450501194596682147911037921885009010614348350620083442081549135603101978236060065047593162725082498074086160905581895809906299706062867841162642725780117233162287520633088908084578492795973808712886717934172400101055883942822753076068333278388182019163508200012724802714103412175122733462237571689249886043470457545893308240186598004808401397166248048291526261851514844389137450189614772945924669475195784670679237391275827664148537389692955390286884286912213155622597799767160673647167116862343627855306248109825627820331894326367734889416595796976668580314356645721492819958114836878957595282939713781437868361822814496090631713549188019654265782360964152348058905904746648639546927105243563921228990322712564904520334164799494641158630167400525548959830960683568323263755873297914657099297937019302982845615348390165895343699196135777416440376666826455886772520361234924901859038066719759448002443428269230046280999050242509011753247605986181860186258152023413977014896491938223254979444464184878929453875230103276250207995341885498693738664766283117012309414709785882037588667856257222536560216960444861682967949923569257988042507681035693243987238622609905705831364536217095458495703113652908227888940399658379414444902040453962730924999276668177952077750514928560445080864466633768453288704104494837717505657549529009507219450663845524351686840893799892547825592679427390614482500144982021586846515153990229925568798310688006278979211341972471794976038757945266287296742105468038017351060869532357433228106050263173274136492625183869510049745097051890911812269208620941239433957683583995628637738351879041211440502604958678104281914963149262835147922147381086536712969982759411368676520201843981588779956260760927214240264304815109396194259670375543709427755890612175684293543872640457341494344016355684810790938311416660185492033071057161774943979481507653262359156126336809721356861731021011749662833143729277692620802367959622887651978636481884849834794587449779725783427035541725984501064656531791654152822428293973213667834146219987711154380497081788011334090727179599852964949104677215723623663089919231507738363068824941907282183310980549834168454115608984755985796943242865260923275098170929929690523689633535496630935912330936453845207588504599301454919302825890583437055488980060590918501958088117240461642795708361554970482945911862448548730014391296917192182943416815818736348834832214119874196963324541124316669335826605748119203914854762272522685769136411443151415080891706916741558995162316422671151048492401692327894516246146022508177479704803611280839742157407244348313739231460733657700597808418880500625180021049520109022497442943653210591808626556678470968443366544858565657788877677806486895651305865946607209215368329670863369659180268048819570680010420279291155338792830171277686705927479110831211679222963168107279302471899063834768725846881644384729961655236136951482486667189619925746892216073005268144512024421441768060153837178212313299669050927612492652070515694382595938755535784393239735551248126445338084556417443202765524577768638535422781995799016851292377210157691297142190709734298344434941988095405277078479394048523414489249341720515312767704706639470875735615394308181603670198770422800906803120894807855462981145885750931654186703836468438868650168758340356214163373103014154196128393107172020924919161226965331014154939750225309751806776293282304642480814429515440013504366563039191781673038231314836731403460249104732875903344160037814050459903073298561216428010306655690821393411741429688831837516060215578629491217996782479481287168522477931772690372973973839639381800509174123283409932439504174824707295706618263816824819132710967740089220834909167869997827237041772583751860635157294775839748005895645238605750306745184174079737029232348724189229797988164301476584217645192881587250997705367175474200977260569909269947887049311769058795340409230189732877404436987147027539854556192127345176732600080371310009675342771069693780270943902236418620033201938090063262568802660337337776222470015683024095168349561565538563356938947658758877012846591564357389714866140062976089554336050459181496779259873632779960713373455654240972647036330029090063891601962194610176391902380407200263841619634079636098887941588156214484068987458307518249815332723579659781725807337169919692267592407151957144637572309610880997389794260518411772597826732512937832352779690937299364720175590370338514692253758444633428719883407286076218106277971108627926834525596055359864764312988431992238879574477901048871768970047822373897534730144432821585962118635319093244752751539917473127192170360699988043918768945363401144307830463275951347269034641314686857225668949812353071027113377832752638435175556937641612154360333881071412501817530301321325503054390156162844996757655799709439219289973298658708371311604070071995865907599301109625348725142289343297824039876062624749871845285695496299987219945914327128062987459412756224106617209402923298198745823206376724953690100668470980816531988239325843079450506036026582607194293242917720165843142072536448518206196897913477457382622347919967611469979881755307817589630384095805603961084745471156739508257535054445698767374066910721196733590474271213594822436930981703083552455781598974694388401114103759036244082137944913448000692635256341116378003816019208601229752370240028039121060818140954690987902031618488317629265794016151583056892214953638359836205838021953997199855301408249648072236163517802971935732870673324993212490848513539741759512727120166966219581910695950540767529597754925699405272521861033202911597833120568476608764272925437262769272172039282311665151169967002459399938860782806496194455338434467115302526326390993725077337371232430407614491423932813231137302280426201372354247659594105772123463192709330277508321258759960077127527566490177795834583132018849471022663077982251407781739831870929687183665053957268308093213946480307004563562208517749851101510529677435931726445149611486869349580411472067395565704983288979246752222079901951494357926245475941816285311338974383294470402621240641203897163702817351200860408590216727352279679402161523678261154910551268656493452333738423500024751452533846950548852188850006121954317114091445757173841907325201659727006710272767696563424463191043064191707465225671506916450322613897593508521379428824004472344756062371711433591997727682733648939860641965252204657413169275614411197976603967709857670345450426231217120274362001224928820305464429776822003340111770274501290882975566545452362531319807834565807863427122131721912137539836173297929391909834800000259928761389206247466706161610768403315200506622854484912454833828801514608327558230017664704104231048246640009116923851118861451867162872385774174177821472629873112779045903286621133182687068042084792302517174233355962172385614469723867824544797738671678003521710983199259074611937487999888754888224686744724095059166584846006203185512353980152679750864763146595232806769295171969738033050946702053983343200394033329868911472596909358297436121520534355224814085404510729817449646211396957106100981887480287586670901354635034351917669420652515660952076726170278400835888150603798411222519879378196336381860607483747304306937363892708383661642849066826760114729023848082970803852790477231254307569661191027171219169643721891029059544069595902619545929472837271383186990311773340471419851620825523074944594913321074174927220075582439330565684538827455194969250766830953824171451996941466486629133234026279208899731878490657395321127460959395357286108172159433297460290378454249929627165669663417539617969140702219503588696728641377992869505170929588787928523423647515710792046277118442718313371509686579534902450796834030586086067720570937292571128625444089593613124478746767760136067374729471460159716629641180409071621951454267491095290998706560630800567086494891480425573787607408873622004638599370763663870345521378482471004604236185969700604025098949224807593989962773606876906337125522780049620031577637408320710061495578158384390443002894116850709481536306186829815545301396816558378402059885727125754057584505172122986580826907996445460237875239727410929009792345462149374671439839136000942913198308906007340626258064511850206098645793894120360655768400737602318626081595964084793404266914205792509635856614875086792857532250828625840157830690267265568937887121919456820989615639601308850063658678955477241325289258473543262232693967755227554690019056968516208321207023642022943315518266859061872885886657970776850254917884779132784147423788815327641418253421835546064962667409649595066368880531535744766567808745623336878992940910108093234841280835850028531342830909126346746428984062257662237015026146904773701393241888847263470497999075532602313296109372024169402755134462429291550342375059003572009948125375766069809522204189686934958916517751171245283053824539544927018839093222866736261970016799506992973823389458782473261089914713927045704093137802539650916855156598886033840650157446385051897312649378198278309885710275157231604862526043106959576710351785836129942765503137439818707244093246639583385234037346036596134672080213754974925593013309928511641355881864522594933538582109296602092291223274882667506863231906658633692278945375920215065600786851999013633244097013716783241507609744150741790126721939683987162221048444633015850378593829700595418651306325067495079809920299196435952750378858006256381397132418864881799096266435589548015477209268864267802835548154497046246354711439818248414060188581007549727552069292015863783230295366968467099767043455073615310210487007032724946876523827793136243394643796293937620680288187551040729940705261451595161292145212391306700895511042343026659895131356865250212314094398010809120702982132272028905246759714158944532768641734407795907135218014085674667166118460955203152617377656002603336305561633145508539492975924569576756145299932940855420880274226725762371100917892822903916748855014957746889531257677917332837592633394147783424639064497958091732200817021565194130517371353604937194934621379256257484230111950826560530100648239667570053287355658510010465430930693421390159245862776756165613779853501778435612687725057989906698320208379443106595955486706469056461987174019861274898618238522344475360212682952641285059474079323585833952729489430989542284280361976982302357908609217945263633017093860806683220715938107610576844897521795991451717407721397396237044717736470529011091524750453668540786752263011211193153915453619999204216612914619943844666741104759575179052275179454823863431827948989378120090195249499783046849059566428991725458048300045935765564576975413691155200543887587800066771781713988655701612873328859108601538081501913330171595453092658983486102855042395545571809020996969635334932090928140448953201020513401542295709810985876941810667472575353639667373223084491873275739468551024880387359806460415235131220720960289992618456333971541477828191337811872730067494748158371017285460357715285101168360176457276285390845425373178486698721100027599931088970305571699909772116307129646278823583661011018164117182393410281011119240271707950494170366707947868055690316079480937674330886490664018131222611772240478940566882588301362360213905571637484513123544810810945669320049877101908078270129275989797795983988531520300791264814843379263727546455658931364467050185869895616663679967098474787535942641840565394868501516547620094476147314479784081782236274679075341388496849809986541980186373431866617731012375718674824692437884430129281094908612814538361397260103543438284848400309540125149753514227451731460996893095593922509421358737476486057536753182273730763671079973155654155287185985581265737405588628697541801029173434472707239124660652348121223124271162245269587419699917188993059767894508554703063082556408117140323110641567270088731177387907591353814590553922342283673511545740119215973520068221120052863404778251466070842509922983261529611373224021142932733249776112506426807552715627351974049011466631687602638648073142246675317064491341921388688361732872795031056393269458930522122339492552327035079120400475940169281605599516489496471417640190746822052009037398742139025651906648196759023331074709970493794395004716587390253066404697913545309815031456741321493192039376053672330110202507328214520018183463552547937788016584394933336400343408877697277197054300194693065918445537028327174889694042271963154907035642255136235856194442730797171921758980371631333846426831160044228140098571815447041741799912962894261734041671470191094867575268225447134400879120782553982264735284490661390366200557195762493412972270236040958131559112560814224706471175878061471208445201247009322315884377408219304553522984908636990848306794556822508835251271073462877271032576937270498731398495980363213311904871507572398945655538095229718260047768139041843245453081713130505404991536364953900696799542470149377827663732845215697685732747312000949444599917292555214307647627521830265301443418441726843065883253492320594522486735857109006831591625645037660191095262639425354093030537984848078983340411821042387283475222163334715223749873275714170099394669141006752752983107093937280742549630545079352171026009623027942027299749059826924917243483348474201399904470508921960175389522718264441036233488467420627643423973405479039145751628774155979873175158996076129361383821466592361427419569724964359613141524627563198172237358361555469216892979494306063970496183495623057888115775502960146409543719823169580314267542333636351192118774482737529043947679216676312777531162524444060969296250810559348387806190279255665107126650202533022415476788240533777122828790484874417321747900831799170326459696831837292908289209358029647948790387155041805192458712244313454779450465409275316427112887501572371629905079928441871414967558029060623127854597997433088623378739214633859260219659147772530555295231546496687647567806356383982739311577515459112787566962212140868481530253395463981127886043384887078634576669064010443753128095286794032758404135232960854281506936700036987875519012176220529187031167233825057572449494775507702647743950466177435849363233304404279902114786880902592793216239714264246098264500805825243026896651276580838968794984226446639132025394608364396458320905290823532806958130171598667217064446103127191479677769053996491314676421912548735624359290852825974969463057388347838165551635588410869137114745738207677042330772352424964910793125805461261559349933822755737035465585159309102827626573330752247354606588552863096731395982652174011030072573118727635407568345053984087124031940449213055845859155441306824121745559355492963005469919244096086096839324418317451727453608135656485495304392488216646997647493429815430394291538709986220132935840626478030854608177837015285213711329425995948251212280962469923030074311544472078775583966098830101972946017018586252167581934953961671855817938819202837003311439286999441538999947705559393019765373900570444225495677543867480547653852898334955435637145298251671519584154648417236643272447997518434065891008426093828709259561646196776822837627763264272923237710685953712602497733196883932426879586537119372852548634877828922672733493965049099849805371016227904548965306290463478236306617390337724458568818913403690117819400815594037378968508548139914699942173234155077324197427548169463749279569981614482771637125266765580217348620511240949598051434875324604249247649760482059093564080217715562550495237175075866920830246050692842324641063008299101041265076868661789652750262094234883720129156715220330646197130479074969834656379737671997487541758828328693269634794389812167231441218558251337360451720435417343184895589778821792038149215402534862435964101639388413928821189580796006315647057750709479322799846882588943595699600399529766752141374966018044062402608156363357384452456112533336571250208843826926928877739486303742930590567356048422445179967089436855814385259963882650102758664104190141949311749095548446437955347125805152950168335540273556055432948524285699689854956946356786703407932679985366475774453790091583621235806683035954321422138462689069512216573912227170874736246807226889620519593756783940307145948352962606450903361668582046702451027247912426176760206873631547402330146402670102489452588598866754444742261318900843656103908455287510784474210369574150970138780964152808557576367121962912081788194435555245077083687882369241606645961062608571375737697366898147093152073367840363538515327780400174217047268405954652478498646607764217640571078579695728204498934929827953797324298703379295054376946920235817957274755683831108738934961036415838417775547843985460009522551525814440978402487108744818279404689441351456782650296053447382559696261816710796916680837681802535290008198513157784125850958075903621315129187960065793293118613662740895848859856140235492503445881965373735554036684641706390108143934957122370031189668095036181418922963100945895162279808610541345795709280506438503875430778284615314777611779695897396151515173297489758116050538013217315762098791121066135025885853712351388048581804944850758779061670141120127708552122306827742133899357235893035850029259646367590306213102716383935327953524034140232354892815953432528130863798828875743555609262135827801523432221182287096822420992308687920434266398173222317630630500210862573034150419737098552171223573188312286075520299457896740812405321907258303291796723122393561360813182892970637966786606988808953727237486135976359722189995991292753470995917661228869515689334073539426372176799820385904014362028931676339450958301555005384945102473675003235214808191821922850766914342203172428040873398989226830532470190896820783073050323887233481691445934379370619120324932274427587265700766407914666098690108819948303962984474830261539811362224501235120314303871019513444392500850386577630958160678233523711749121794987102883675690105661498538154362213365564815270016759917571566724245282182874982696778712861109393995574807607347710447275101369675855175209088468781023950628649965760268745112315949925457178013178923958339448083297848579816112563315419326547014239039729821016237468516433285659571148491025930366287181988833813977594263294888174726385773080034610519294575143007541815152241069895586964421883550461381546425502045562563876731978106957931680042723588052172479581114050115451200831725632536265800931486118809277358005860807055922268771320946565337116207520704678787680310663293572901458277995254987729974570329353209257841126056378952832325167521885452582930738782279412739615649614939792222331316365186959348627186738124491331654663981556986864948550704947930192589585339878385124299278317663155279696608403063516645330189498834303392058211074428143768084564653274099666190468133207075458591650189852778431866731313370665030709235292899936597690969366731895661479128829224799522428977916130651834075120784865471376488347705358175441617994024290586203338706366012236242632288789143875396363733525843486990255702945519215538973984403568010699021229411592881523829687671835388920711916520386144028872834182647474842831300537081185545882801758315714351777327782962973938180302223774945861974947219346648389271398483519465941269006480322656177630304685577752461523426525419647354051961398367654505206298912807650776621257057032175090558862601872871262096361013780326802114106668157948518937402367946261276640720085957669373617853607149452626933890128037381567523705149929577945091462228719865783798888306210302817548573610285596043631595967676806523821640952039714730603080680326803161970488881273235244442035951983971590529750753727166174211152741336554263084831882343524023083200609535923242943639428945765195426024542405265877016616141077680352787134656242569461917392332366503858870834417422308187438757694527158011679821818100671945741895455480619326343743215965223420351544829519510870566149302640597276582811943470349500529179089257629629523467881871160564563736146357978225014413791045959105387881140540469922130433578770089056405970556983964649998216469611914136038716874726305480938844239142941504767783543126139616685443931715368939386450354223609938824986992767575366295854347038068620272610621576314405433938113226464307361514775408320084627709095727187462298430907721691067121415913628623394797446268538299124584212320125814257587962732992216110290624182812090767228246131061420111199379548774566218980075624592709915679065541545395510243269398299773919680952005080160235668839143475249275284164870205865998697118600953676569030530018510688935298514752553012934648932874245098096942798776340389020461401989669174304192139086809814396217189345622824379474049300181250178195224700647984705350803527581658539986872136432514242094284665926643047316539887453846899427664743025743894972760208072682765918354393292322440152775274141636883818123687822609178270360749383599671922010711969388483133623640465753061228220023509793018617882508310964372806005648898864240881872471201207791466908381503458732338028252474622240346534393001697689458320326906304766218748221114105459760400484719633779005433169838958603579929394196480347166649812702351086719729627757907710475243206553534727928173544812004270035048673208218626486088853449733318275524346701719631904490435949319137851230045579182164759735688498059509240132843740231806887657421885375285897211739098483730792492694693958626107620149517251486805860104783664190327705707759574970059806793038811435369093564835931707146026493081659312928112439883480825667547357144139356297624978711499615099906406208599259735622868920614498523683052807693969537198697025775175858333121485682862022603400093409372461398635819405340479610605891932227110361485002687213533414431366178583003102860069695269571509237867616722261990986653589404737511602732481659163411641268803944637984595006404239371699284114182782096128523468190394640782451377929117780602087097562462211404557913074400855644800221025076267928186791439650672931905204229836065213397021381916674392379191805474362843781461788791781303119752571067719080586475159325432467214500418475917613778222944684418734333499471315825787744843024814295953281594578640401872622940558211817902038237504511949066122296799819348786452342741394856447736244873925637350172432470475387210855158016990746209693579740424201579748116020634587667885065930002046066463396761763951303432590079853711152818414030869985007484691513500216874148089303916466767897438868686921748818683727517675768677150146099173033587949623346690429333368346525408172365631624207178979227341631095307679807126803075965250481365422558959780324272656793286047475919085481272898104157613861128700320015699499297858420715009012646529139626243177018737839394699835076872945957977584138992567205071274380756318998148651763898701260537961249611215059696207352857766633074523397941637431500040730234111273519666472012710567575998553407119678385204715446875503359191784891709730929073797083021954999626069031271213817048637516458326046488317147813939464923704719004627949337945137759788974311883092960305187581872492578756493675533997683486990584968332867580931290583928350968691064452408089985228262356162018246461721048049017525483590077849051431785913212566592173976069938098239779792248003869683879154113319353961915764949903445247727945422068819511798671981623236495202157164234851050433707288101167271305737296502914874443422564752270674522635170899187831392648232149275679402756869962348559810061763656816836839708223495452456535287719646919737089534115945792028560560106028821361497234072273585342550979755406428562869197678282514089502209769768609017331945995835526711817379189947296688538362443339319773670854512291878648549551814724584683044136190449001667880337329931803651438907029092019062153123430280057328586380238020092821933637498263136955879997869654781442293078486455386338071853919073739034850453159939823742005706179366270524093340522186534739375761582643772629260331972299516849665041926293944071400388915374452965600158113880148185024138892711256468703910878166144715120035744708723469452768452601373146778371249180658439045424469020197879624932370086224705354685945342110862441665087401127376927993850923811091468290958409444568500580967327159066109318397501599795601183219035307164282213322105169680728121756188982970562821797407158695298998113812649578079802805549138408429597666885071614147463211684222132673556846432458644396390728720244015623358322998542502923413547808737743426120931475487252071276630440416723593199424586421873242579075444837916147929067260300779369799925087179744175923638754840435053629829951636669152634590058820787492183390836269995425902853361993029619344146874170297053821199406672669914735176503219619228886143521102675752367664226386327709797148964784459511980719451796507360706194189399204989775154949311010107315816024565516984106493322511359181736309267732690459560965656170095900052533996298442342774759741418913078809632223027086647892082396363219178393531558480177300596064227700634583784096594222976629482770104733740023085351618069113708152976046762633778549679880744064494587248640822363894491631057272018661876221628908265471272285833890652918145721309559068931382101272077474699799339657900253695882287335234645280211260965161575056013404608676061971802910007053416182890765419714308174291190248655334717759839700395739485558230203013143702514187179241568689251504628383866153351967171074137042868354570102942455210044270716290596718580501554071456893290199611882817946601099703547853414476433018323860446988200158158795705736393669334017171381822361774752415910556618325786569884494813621979469500593184860472432947330232291028061615767812219922291068861380840298803698488542477372354607323832531968676512680929828103386231648589503691132817299881049621586371852192646845464798211024089536986047615194052590913787659398243409905631540624791945469598555792620413996588984704039692869754602596488966922400415228686330162737915389264381039371394823100940259114646298445025879719717742033457487619892662456101038629237303513597554996709282235851068588515600694120388316229279630168157966677140896104257885674693920091683848500211730581073802455588150874072496674431874676155862970300684265409531905468595418160332157081803572464696493331395108823203135650472763781730544043120211356165246231796658168896667287795126181454653017408157214375738227916921849318741206365620650426686011077341256096630611837499019323666901037545925524285695896370870105270693341681346959787681534856135374203601753793741612206746448681203435392573595422371679428145943661235158906014190105898255240054737893191984023872884277507039993143913187333536516300194043673568997160971511809695585265693497777382095471802296869300527689554647518270347845714169980570307339769554022211547269449110832096355242570431553219260729853956364995364619801695403165144790111288490588197139030182779051173941908955461770640040970002451408804607250055269534890394104259004440262492534059387191797660844981628875378854141951817529312106228373049885689458918648328507200888083970724435097347091626009831390997796445651493613737003270880509161606491533657056157135561400192781285233799780773685765938942619198068212622090764920671326122141855366959222426401623420618672726761979329338708709695938139168949458843034320184887051904169716137951467104637422615516249433062027640045417032508760609958383866508845997062862819578950894624765427459108258968269960470600197616724833110155672427604993513275510499693311095008937341632324999529838100871749076852085059674555489435342268709179514226979546266759119137891090679135160058228522534646263388974509083829175489429685876734698677528383811906895616508983079137722423875569715489407017057894750011732038153262341711068583622363822117138056757410754641653129663635590103706748147317252467674900375220012431816101041456856914847184229371899936702442760452437362283183138542091371990371695828368681011830850067959363386092507309806894968420013287838851043782338445744730865015144273407978773438803901652954269774566145147780441786827810465484875210047215016481997617136435913644241010012210796628237173803890222520233539913855647600582486451152725162029093936844298781313093855340629807053300984944658516272492654610860141405938794660683512592325254258719409283590013933267139660076588697061034939308746859931476200167827324962850519274746325953324071852637908115068964376422575111202565379151387118011411253386087044965026033882138550015145318115971825594612273123294450084342375244179180082968159783435021423941777336570553956959277971954321829884831331749104359586882716972526064667848907845859844308980186420179749362082503318799758006982078861759058671612452394014057549490597183066303438687600977596317433384852511680075908222948443764006048565766580531414548880421715540483712511860164778168577993420276887122895439963427451284845163625671079478558890775295331530099581257047284312179559791995043718589697380110423452049752816811429578225029613109993732852302494677267228833909264171555953094532814908080291569519095745614022177853425261190969131852689315227305926245455844089212528778187688368804027050057367766910210324916631884010285730599882862664386186390213534547302905473569394676185055082370587353050082435016097929021143324318209724226378590122958437366474725375172849483167362110734448346039059850823293980976722728787687043944391932138049626860085433646445259937291110080854301372617368850347581348615800734019575539034871970856428305359991779571006424190871085635630532300549074270839387738751978064779138904329870392401026000398720184119248092144772483114924674022454024554174922299660877494893851223576704554169239389118262656080180994510524647363361963022073743881167732666658264643193386387706635988437736899462028753182463904608023518727986713018457342269329717633206685369865583087332224713688667784884763571217788068927232632378790108890844352159036317722358204450123805909263462303995815947525308804231520028057597111133443012601062285973070284422328795192633234288396519493344674710104516829334642541565402847042259482379811210779519230698901726610543021852122988717654811413853288194616645873510677424792865516562999052440523275419621765751729986955066580410540477811671149413701965202029807809204123634309464350005355096332866369511350176451578514506065044091519960699957285436248776788720799090061307017390977720664804727303828890991780549103155265645308443844183079827654444176931219056969474562966779999545907013271499096655189715062778285807569068134793954939782109341295291651670898879798720993626859300610162803348088933786587412195295359686453363286576991494239594462633412288464022273289747969255820122815166046211974112172631043345377487134202100723025744180162275611435231705196421169523976757617270607819230398799462194130553398454175244357276271800258238213712240560063042642332210401212881749241602388230405840335206409093340247432370685298078665059075819099265543369523768912479433370554448320832033697196260016879829699761853808113353032127470896473467829287694936181723240409526624289869090383930798297816444628757837666664839948127618417075276969110308939879256823164092298674153444308281711528391696561395086694234530626025536949485898578653106175360255159550069680572289633845232370398222708582301134895675539215995495140161932958368040338626219119693830831246941589585713506598053161302883225405697264992306386470958843187952086979808074606613316438531618218596282292572168479050309895222451522013047972667728485487397510228662064971531552271494928715320921725693517148377393176877589090468682895029315395325665603567780733639398651955666140767866638564410438008441897669159256126586294598802377310248541868803262372992468440313264986591561865522802031573311599815752408991010639821061247744384466110311198263566587951830779932759382112519868067973672477148727041407460926431614353956232272569062611058444120899034492327590475505666561185692972577126296517291349717032559817142219255646771368901038055263708908241410644326130540731650608205428136905828030698135056768353509962183920941134159856035722155653731290116392213386408306904709466987695587873914543234202651067603772932348884719786124418032374921619329040567534477619384416615394706176960842744544527041218069457555230677282749879170909261800695194585946639208107613406637158484920418894043218543927353516922875749131919687346454432841192732535574406052348798372435624342740975482033861401163801362186538815550724064692143318320310399771787424621023312247110378439234140565634344958213295597343091908068973711887461783747912295111423478140501266852222862606758025660366275515687349282588897533964322624579668131884502760984814994162303490721325380335406357284896979208529894163806635939613964890280753606894984869496264515029000470081882509076560968572394174542463854771717843139476478787882493982490846523352193023125051462216235061204343308713764347343748827070356345629148706871198310831011416910712439584443834848971143191064704196419991650899034546855688377926277125552234231204997864229624966796239654761374969459215562762171385011127088956598322994928193232460421835844777815390173121445470928228234114352276645172267394145081498317174462714746403671961099628383303251083582571227126687411588324020669576663222391162042052642417017278808648368539400320842736828769135672651680632943695346211113324912596415797672442335682192904332715917454568244607555878041196945118871622460675673316680424402336422356225058565301701647754748768308421425760480630437401496287283370589103786045668889545704472046291365866355515096736832561074915304261657061216988992265158053567010020743780834696809753399726930051469657793170187725985736210624930537174550924289691309350920871297092625935450068435746302305070274090744058027531293046910837698145283481761102332149963521860497680322433904255023723670274616159060260169458199431411572802513349775138398325786139605789805626979242416725776292674168994415417852889671326301190955461880403917253903738635022335006737586957031770964964349688206454876967288366486891629347154804743567243226736627204511626745967262997271844329875377763628024231107982669008338065256183618331336172667245297468784027401526044642811607939959512481694024927625899160241254918691629503126731177758348336699649883759099081563641133343549697948269456145234670989498259692548686501697938201059661583870909435409319685572079842945537240865265408255886665516779252213032998952142707351054146790641223085741989275945033020946805845324670346326060181105929010323264401684766717549699742517644972791527033972224368780271977159169902503529177929409263873219557702800245235620065826384054534549128556533185588292816380636803520920250065551971642225177558110667553309143183100105695283220771839725740712723048577355049720453209263857322542561610765946247841427947553486618472973740964367671160541959899212523858968583207063267585165629216173545582187312489419524925323212775540956556241224715121702898565026958273867351400642741331444903117131438379947593185959550941342183433475979022433647038137117059528669332334977612376468963823942018509870792955202658135041518647039996956859003592535241445190025508616922330005276290568442235339456175039801967923355935709240739784201576848043824459135501862899030403469339314737720021396682113433642158359242174809486662284645864361412016701032316746412994645123199241314236953553394579322209136072294298967822925912172396367372908100153359512251956373963680642375021483769851269140767766468578041420950245414410716628368452911297955433955766869416847401061311250450704980131785785856354833236954340146614907697406453206216388455633703845190608717498053574494400179631563723668614627269875648459131606979136428860527522616824814869963255979033461316170397640152989113171266349647382613071042153604878381666921142688128130856376801919018391952949674946688687503614270236855887584980654973100453542464620617142513518563402135129342149441494548944300655315588625401729457463197521222937650828123352857543507648426155603311395997285814925605763300911062835358224914679358219248149285465345637482384815368560411051734212587417078900026493098568294732363023592123139875384681900745551842868109507514082841911361010275534353466967213858964923485297537597179270947881556683357007619662943656015089765242159610797020912098182514596221027086091457271727896219084838277522193853120354135552985024721557072470662665423642394922895091953914844364148707287015544516829498411097095677333415713229988357567075886237804433517470779459566627541153415368386773691144359017461242346535770246035820018250772195450400440741395131034833339404063617506602329022055495568928980007909155739827852165648233306021193640154602823883359952947683115755031096815971035445304335090117711849613241483957073404470733731770802860036906290437041075366040738700855837955697378368131265502370915002416765053698021375885062170409470336211537887476013278677169860438245923880003555366060142294279431374314116246532000006215403743730026419805782347079126146893765946223624996134737214569735063015337348554424591786468228357623802829608589802601081642409084182326027536083382309698596810165354736411360202503997169541039581970341018169059269318460464489438671121042187095369976046361460594855887481423775247473889915073037554449205014485354651646205574594274928781351621524163975205401513272297992991607379605455219017780434784843189637904718248612178461729090603421315998259213761524589599427170798850111210102302682267704144745900339790365991899475379196393931403003866920579697258472098669721081312913249210001286941393361139349212787961555003554601286635747029584497182290561393911812635578497059927764806922634321554563572648423812377671595235791224025487498929087436949948815294083944978953745043833121947534610265495684551073088632739626706290313303142412254941949914364504280056377943808740503871753162764645119813478293403399076028402528505593795101314329923239146039275133469563324929722119132137975290762582244985347526463358415666358126207218611783078397363076577832659352132031752132148986566585027232261121796820015099006605501640338889001345032707275591478511328905406225425555002039944097183675353854348812773867913117824763554971089827868656741387474049751458967567270299344761363236210651628015634215767924922911107757255538191274949390486743378105961547002784701723855124730411679046081343279070308864507373721665979423884628178828602795403111793103530149162559491838080157702366122802320054006997485192409496472872069983314445512939433732690586161504236004135823927952033778491053941154719112166914714466864867258000204319806449230344770505129502694378865137019093558842982684503911451659907736478652686572930522589014280453514949171292749102362859695750021279719990850437272710702704944837444651153499843908392198559277689727011474547613606967646059517363433749878854676979667273501945288747334891221087871316422872819364677727529206176353069431581462536096381378811005525483114606267982000435322205893162923285603477421816940391195239579748843118087304907341211478754294614899565313239288907972744790349828990870314143433682700035220936829989374881026435657053208701902291752252884855575076163952393982138430956089401199958302431654280622538369203497962553769191718149305515616166276801408080014292229183038431573292713066973924729380471519164145915381696393341477841349454115275672860630118199865841621182280835571109145956640525187255069196442189962520623248371925921069660731971438366959066915879765278990189538579223232094667081790287965090688362046848985027750312702982301075427126023079041329418966328460527990697784136195407868125928767564015865557157625934684316694067143243242579579928455685541180320929557275963154441168048529992706733595976542620009166030180233116319124943466350877156206831771114489377499586974242565825011744838852373342010659550744149457891549709142419402765970112446374444345182673659813587199068403325366745271009703574285787235975499111235446893337300567611909996872310732046247787918795858337700094981568894501352124671011976854256125709094372189122420254886203946189558567145649829470444055942956362922480968612600931364760978193197516422182371146640486254705629997094603899410209566887291248164900084671409011475150978429173172032474810574461067245169357070430052226028929813015072938111762348819057218464117020406461995856712310066321636675790833092837561660010850489080892785337681778915258783065336868023187359236001443631573494580521845617597282463089167551377639294813502738258387895163710158558993047539522451232665885099479251828687091830536429250662131117819613813524185201181486646230739085229946722093712233122872547195336142538498404326582126172144362802370995336312720710980449006890251608971298022299548569594216022549244790779726947679464731437422941963223763164130544881657207493420552123263301756237582962268856876309261855054241402516597461161637723461053071468385483987096133581454415671175021357734930296078410865211747728167550466702380485356902750149664515095177526252395303636938062426034573958359508947815826938885408282244188567323123264141530087315063995455991297926264931873078474162160203927506764114093621204250271052596987572929287183056303111740370195154011779996934334855754413195866509086155142220980287377124879742089923516938969412272169707786805916806760172702784668752290348653905031528896299769929512016007437048651551577860266926090398149115829752565770800291888888783003250151203035498405235444221889063825861400109244681513825916859632521576468908689627066834882170053890240717775156164301251077395795804127712316518632866796691834794941855525425513171113223281975164039768288694895425068439304016956635309291815877365589507450898880703078656940648045591318365025581915654291211515925618199730404603936369472724313132360480065467907176105974573661656304849244339024047434388549917670225658241403943308101351457665272644674640239574345776407874671778302938105498851580465425353342774929070763058473927257752361550392360051323537177629465527701217820994648233800123124445899753871718444720180022602522174449331271679019795640701647465845940240198825720018327082217664390619019099156969709554999556481784338944261022179326707425040590138435698130146515421764482886560353816646452123829016627075852573366561718298557584855546644880501731764127764339009142772599685790747247000410986858543936863867426683883477886003065650473009753298306111277070142084485045165583362416449297740513758553213221940100111456436159565482870341543904753165251453988922812004738748652722424093691049127546416034262080416176726261836986125125045027627954201560976690167633564044487590683274653969615047713614086098103219617290070525485801414095413166611106797054238525530043688133182051569303890332482577718820843365025911518148132258646731487909914530707214899744705464687093200223899360207607420304174028337252228371261723506237033506772973224455679127773276757439641027606672629152779254779128061167832432588420114704398326595152044002401270580810411748152399739220763413942724427299024786323360244471462771902735746899903050994095301733825565191174823910976695811775584281775453956191829140818209512805534111196264674363512486869722291017582412374985845439672778257460517896451072452277853826717915346392396235415030017295919348395386954117176702767173967309816299428366407392759393725844021706663632699748410392691916856030621068922274865431783240817413760468209059681094267297548288569172076203524991937594354996862460318196095246096172913999577667772024589662248442914656259977924195159397797496958086309332641493119990853046602339682095804797776934627535357682141344338756977575268384127625933400833409856769992870042812215302282668274817687623054642255930773726528717421514246225502872393928896809831760212712661267358915731162959086285228600203135592386665948362140475380907670725512657233924014014462809380142873617058397101606622375043676791167661271462120299100985006489603419109754378066500924837447273789461498598102433489837121007269439059221442010808077015696017500647398445346440918886504344004394847453509693671044180348102346053922942419899812651549967842708790823007889920664180785676696084792606338093943531916982252451425438833032939913476526731815802622190892589993724677740681479665414944919534290212101338925901400598569733932238436005186695440297145489400081505585820076507142373656119395973945058173759916572455079050277163717866210135538555812463991768308487291079155496268827310132617647853594279209792838356995015621717467968027044536387718551648547568778236301653883525269903624320568405352567648805975529780894404529843999782656650485558298300998233933401522734980621941865963192152938394389719239505561794867509794296869325762521736652809886189831940253321774354668214088928127408195403663257215516448877619805949975622759635259132320093289104151505486699585133403822922462282999831542368668416739330317158164619105887013049660522673920663363733168396628967086073338259550425795710804858657102367913198997678867287494657830012833067059110792569199672184385950802228187646964873834572784491326539005072863698424556159622391068263811398651348837224716541322726469725901482444246685071079536884970366262891743661645182499818897407941839070609785707334007237410943973033456361407320412804294330338296958077906431936383446910579445806918933044269676050816209768013485368987970936157923469575056162578375445074982832397550797676420877338178260139881283917850500409373909435469620705120588527208220680011237754478093059731647340814353175743209760979248415620658857883599634504143630838057022996335687439897630039047612789369549978640709107989251941300226318323501739501478763203357462271923600920951505485097317843381707147585585834314448725224659136485324830131769015329709832354401556462855582524395120438080572676841378391538683006826486612210115901516844735738036805898775960887590306020930669661805562483351496924633282146061593997433267470610709092795063234806918149050040270028515185185008473590770767510803039280783443664154323028691224585640433215100116750571075950547369359021944731392593708572498987638545327309008236887213295122687316553161391653588343926740801878512069394252762413140662061522866192297617539642766055147313383912776022309807974442408073186947666695038468339447301643605202771870375890557946899930285792344824413701923250841333245204519659110539322458496679170296605065194574759136359234927141103747228830840530327236975185352773646306650096146795270019516002940067568599976743134698038780425827402719822390678603666351330068031801973641170700065942505978097545623679845888056190950050839637248032011938809607019891919026732308263780866327443893735884417693890459973620623094385248436918062422238828493228187419308511711718313438516300038364440008909713070824267887336265257091912691320804212039160471765666897869810408631696623017694589260574862524510778121518844809237798084751171663959616166654600990641097695369832192205201067366223174262217147749746512195137027114968829385884360765720389847687181207190179595383923817585432935003510042678115680719617845776170347563560354214069760738535328176682176572196451542092727929630585179779679100345297652565660141991910482780023773349191648898422969635838773962735927490351626793182652509997683474800638519025234435702171453783972217323771652191487845134453678328461748315015330989092615483091468081945475849541987695626755179214467907740121347669396540745046814343731670739320133456742276679555537504338384965468726696192256032691365763433285463583965069511232192092479122647533597041359228553887255427282384124556480203984992371288285516568072302130632159566998971978773955542296692431629277181963424737425258482056361394736366296049592557056827250046841172153182190427985632274785074464975940966214279182012734882244078865446074372734695975677130981266815165283490397847482913866144157564191998663836921378683383562204833131826547790665808465335546335359432308181942789736988034621551360730758598542159836012345105540670242961224835884975305512207422529825837798675553799774103108210283734717649988432300582061224451233177682097204940111296806019056567170627994383119264047738117510835873253286879726026714984284044674603718884882337168459319264963873325108164674957281600764519753317563541663351631822705138850283075594267178345715817145809749402633149697948959804933044223213932521747069643200639670746651074737344181542778208557394040652202875587647064078178233614661243046791401974111322095341610183672464419852880115346101764278447947488522627505917876246884575804883548071861897357215306751329818159323464669484962510378686288365254404221552578404046083222965207464130961967702817470404757915966302279013879473755137445305476237758115282706763386325220118491787093030682425530819764682099437503360018317519365412553483004325454151962436533975117719915273070609706280632562870121707969148709155592059974735474581499938955493529072649186675479141214923401608771887751667605529787078113299920592072927345988743923358015180289337304271009652958045234796526149196495551393003557742964986913438823099342553504741822554640540839000633540808560339090369576751252176833823897701484651980805102067083626619590378434682210212721821140120685274877784713502782759685221612542948375280554783754738280148850542468932139551995237647994610444237949176949167499521971726470286678627023902667113279284155158973959918844865463078337641815972271206723976384076258670050909526206160574801586646241869447590236871198349916969626906179188555591292176032407680858763703876157299581804211196560921122918769911658817384252667787300291622060356625184533997266212844887977854916074507076889626669178996401129134696255021845527536988187090563742828050356591253748882046580201001066094533954044520983212953790283255923314095209619606781424346561597865761713922051938903425804546512383073766787427144616376375444155293022943539575238520009673820648190305515385870191338159565491977111752455072774418249243947008099624357935611941766101990999468110273458751698025088957974923028087668013077870155087346481837099326524613662103841068209444193403392976485064277590800325653284104261573278170513674968281488256716398684997059146084870730965796184626588057893402716619370167184008275133236710973589571342912653225705455177816084729563486922179216704074302755393527456451322005118150278387448176632388121015022516401381791538425403218212454830958518977261601028366955408423587777669228889491820891056997801458539815186004867804463658507867821015942061403963029198141757246960087562582734079751463625513482289683063625737602757862549332255401671801360645773537708571953337567151934555679454571340764215911258993034066040036877073174525546119674316532763398756163682174010111310422020334397374932775309565544022085519469426240909525110975192748949515266336961867751859722894060624434696496900502051143522404561107765068122404738369285445742254937675245885226012773285253035896482845792975332526190269502939615736913782914869334080052858955067024106102948752908674737103328172935024525519077397906011438089396210385283980687669756998731241149913040741028575955588666647480678026808628562747953609124632762974161552376088344643352093154270210851159388210565642825828790461157462201243607927698548773467858115860948597472194662315557940453398211006165939672020828929479789515928982211941789782880759326579571067250590850822350185005483650737408472121772729963652983765467251713910132219408327575170750112171634967495750938137317452515159206110445763630512745154737489970498811834317668609841658249873300662972323492303086311092800244497752471612845151891458852062519095236259330164032692803381528336671479123496620897640790711176945463289515468705427275826268346465354967462201034798334188153714994487861768754600508152171954941042085113361440786978130334429847963972809491827240582394517243775169035137267583559611756516203001192442494662452768524096434520736277052360947407359198389485730283723620288085503555541373326750087238623086778803956228191496338196184107883678346724570194486440893320538666082794487648989434170859773652711642906377250511747592736459321070322759022300784488076968511372520370948246304341702762307457051965142959450347464344923583263521397047189061020086152631711242981280775420168314367661625870332676646404149937719893575489818967148731090538483048669764164900287702630684848786811274242769325223623068821442190087625684151650380896038481144951977300188920895024286403817233579597403428966061113614255582737633505070657928949310029277635755577894143317377815624012018887765841071376845342683747042528133963645972078809354448544890110187902795311721388805161367101006143385404376124194458548265312919526898733157605877388668860534128542353746403645169012581539334487919387896816775302714262903510392556982107121524402097700259830874985486332981426975915981804345608614749907117527264414389058245828532750536639986876755038259821955337796294622517584350088715936070820127703377583272425866585712425709875255348230611920345123240615044469206355506586162962696701866344433469639783909212430139972736490373843799827713005157710049398152342611919677336171471493318237391517213187846586789478511783444038729683587316528885525673560265407882705989729431207963741775546460602782863176791600063117831125178490420124787077464221273720750399455362390840345916104230790132054911178748262026692051661533484807246432532090958313331225815427998597238922202747511290976076260468639666334708067188885526398116063796318051058134336558835458781057177559561027338679563274955646076955607351458909308092160665510956565527555979141068863084755398565814646250780219002815582520500481031553882546974917429972115194921061853657877519695041664354006763619502521906101695354686658357126934983683131551432734073639241933629265628577022714462403823927082817197426113933673882981413728436413161234892029979764272141852271556659813894049531009301842512144184427884455285385514258729441908209079613742112744731233885615729222592294647276738235450128325555208045554200178327006649905215050677030756635913535214618231263447100378808437798202528309171835412624907456671214968808340416711825090244083788320026809860277615355108498453223623263395500511886177157947074089274339287693566095760035414851086143385716819575647571618140624659982667852757989074317346317314969833144928453139673043674336092163846229660324586899352084785338611825400580001771454054260846050565027309208179783125520330025956224773123884103452509222648065973053824484937612805527148257248125024839536272221995562971044422842340763408743316327594369786453276732634834690649386014330351277712844727141514738772713487250809532664743410053138401540719282482016218529388537391604372325158139372732581944497453373385035905512463898631698071384969475756555667957136655071582992304953337741753899004455951825154197214065624655632400789442688917943315263901200875758129608197535480350129935249585103424366413241926302674043965874353077824355724731309337733746390692538115009327855976867437231361277046288371443968911748525159857548533112215972879684915331563648976967950651881753810075603034020537388147372141527230951227461819353467428519827953567293619995586353724624462120474718542172258883980781798781696406622669810669598082405166198960216528819698618542669202198769333105188195887857938685669829582934417396391965917730686696164239094669013546523451320905435217887219723698445748320259899091663275561268296108007755966052233961579858708406441068433384689895785858838270080655989990537729898251210617842954600641787419771038604838747710140640565267941771228983030424974711985738423669703233128441364953699963228182010536988324953179118190411528249635052738891833868769978963234927005348003814044702193877125953364964995892298154928252862939122733658152673202680419571398256319190242038877627959529910989072429283051360848308307294359923196191428443700574194667684926121389451505159975115241947793369061932299245151685931420227918555723139887067464168585600040132415392882393279546729917767911979866517431788975858826728912999239701863984510728049222435772217147028454971121531045789586654570099724120397644785282196263725864591765306676718402462095130422302080781886828887720983275797478523519458423144621144782472571929624452215603225729752281622282530399985712958130946299421156403801386237224546389048909022093346422094075647313847608106681616435544558028786744532067942534184341116077472285679153931917451476111076084805712464079910559167859245142793056775274407952646667183970726230242456617393347708866503571560137788234477571971458840964734517879289555503563526586012811466948532630138540154443816520504708098190901485882585606929254479086269818312449741706927108848925692679910308424689528458474754838598098661069942374706017997812946308464129762255010821092402143643187186164764155566945710967756065170466464237318170069541518905625613888049157185233636520371199478259625874174083447421265764465764736068625023753997627399124986825495576993419250811441537958227496376397733281809256754691456626285692594286622368454949233808034853283341225498474893266220750311775809432070373537678932796110945013012296463349535671262268715355485806969749654246377427839596747473041472953407712051318987909665405674032007696648283566116590050057197430663024629114990204165885634584222312557500080824531055586904279107235755410091530966450017172984189123178512579479097351684724585532268485429377995933441583276302307919177096244513987267037044684617832051810169843597142871664991177705663155975126739124965603208367272049159605926432771715820303820531091481610348630403840671154438256106156867037085404750854330315038064860594140658490639493149089040204467058493964745110368912588407286162692495616081392987296614747826461080621626618830825060414919343448378521035877680642953614466626792028105167411831550035638969364527095269376237161338347021137989036283269585204347639775015319280389491218062274841026227067449325590529689977290425626154820666094933521194239799468827260894769595245343939055234661965174513781426196969153890976997271333458995011576378878419247221093052502091413482333218110225680509022099681557698712803090036956502634046650717553316130817916775994104081951116360044888666646245774410970229274943114046057003461472691104587954075132708817640915067770038968261775427895234488945156999024644692519949007807812790389019180375199129840752221631521612881311648312536080898953492645727477349576712775416814237327597893876613643562190417432774734759357657056928532792356347537912399939755720802666580601535485301855071371982096042571938615514488646015171672032245365907105230163574481136142229636943663957004044934263004603271029704992391960507313797783859737904386489295266148921498422738213520001769168284197536894576198226027814116250202386636890594643718932042949941195019886253558079232702365831726862252682937857901450431945836448786519527024885781480713621675455094404434349588432205997087783242759651266996052154854404061552131613173985309579835678475200279653684392101231204164636633233584649879864845008498040289008579088849394950496940508845311216140153700068502650930640032032890293053146946453189262985303211245667419317655543665908022652390015108829260214839261546410373107596049678727929170076927806020770545512987477955221577982619268674249178434332017510850754942767827148492349339310699053578948826751227205704212231406464317174294695194671663847745420680467720433432234401746530781175668477596711495687340062742616780183774690405884002655894347518861802625371102455807577820135657012868520953787294790183032101478194044983216359164183361073686605462830713071461782517822052455121485712933797824729913381269152940509114821933107703520576475304210837554458890747261098071567153516458508955737398478121005546357420028767096490102256745073535871862547627903199011603453014403810419240946119030133359653028243184763096725907408727457412859199926584673126358578284293497241932905148109551764225650890118538576628015285796167054215377813350277918145585178119601291537085218480960948657200999868985418114425038595402861415219455544890909401652613828835936424398215465305829127893245573142547311031754486352434330472968281420093932274414228136793351368964890662086393015660362597990604439196675614771845834037690257783739569306613314484020986789366435482357704298344905346427229295709537655731166913018615853358094693866195352934136354336875568427291572630174730943620837984292758830213597748330966907412330894795459432174780971432369869090582712862717598101311443080609050679946549962607755760831536026778395834510731047487903538114055249125032901024920460359853304127652658349917999791480678886404923089088553387096916147305752800095164809960292996586195969346586005825574763272364658722838327943285064551013267214702920397636618542221911021302210391847872089911379535657971066317656262300650983744638821004313352612735489236204473060657168618578714321517744559046762065061377082502251297186805353448171518029067374810819827099517038536878524288927412191745441002231449846337926554067724180787273476242806167257532255830885590617672448804096595230130132519561649391986520278189816295692302036887811692569085096952013369600648083407131517884512899419829319079487577423725661097340791680708708035650033666072071442946471579405055303028488008329676493353066623873736163623839097203669661158935496298128808735460598612272427454457759674023766284595978095320919136079395353075486010665216324204349715443812782608265833772736954297216456795052616483169935877275838436086495578161525545490628792655482173685078289371516876740235720141075223214275850993945952905504638002251634838127646766054069800554369924550893196315069466489918692082521626868856735007049464663249239511584441541135400727835140309521725617580687414759239364354840930268334619051955169064970367308377276711326161418168493017027343216659163992618411821478863628932780094239745045489701357317908226426988748173490855243656414583378580164856128106595538282990450406833616767315265988789923439313653031612669133965680036792206943598686953277824376636109270073933065943559659668576281209168166244730356150389217904903317914614035773273776487362762393974916836150665436512639222618474773049422540288410815591751984994587735086938748470967985963200210692500024890702235650973430264737621120254153475829746579371195796274819320227350753134321425620379812078551131336458289193118729074127972110129616283810155989618115378650285860176910944656591054536280794374985027523329805428585657206774096337066997717083314839306265397916741533243029848373031168255335239964318328681403720010332233033688681967607255765344047739032488262472268366988391119172037454329830620560853358738794818667698311213774640438609553750122941894674152332257148814730695035668525733095354930982991472059765238735193905565062284427780762535566955183110300252579456589279554273622087597160015975908181382474161916610708767959177490920826670822005230973349026743931443048200618145440727972653814788458617963242253974698735101924666957387050990327183876913048318895184579949835880189486522205993484531758051801946472445614161201229018128690675961432122444446548982167860766182132725205401734240008662757132717997937285476069215276178862318191207297834861062478447322422685878240664140794283658098134935237956808853370922348105945986984366362496508416743874438622855006679223396637547617067091607138007630947456765557661220630251995067213632072398508095949352507141150222820684879386518212963970188196531994029832414656287539440703251209343708522123280952352588165044166486872867367559011102872336798672384631712019978230653458940417138727571906153724232790940919281523353858176323084331641492918665549404911828514760341619016003385321861457888232166587602618166844678174524114372577123447833831867174029136502883750551162131897736394397137519165619958681575446255688472055456315208175511731072813008377234165781594385471416556292985733238174373441529884401662290078852280840434289355021994233953021233967834295964375516003478350154291524664547608216680784508638425555519046151075082640022574638909736091162088108170167019448595425419045298871882493766363494974260244929366257967838314001500218817781394545981236102378842055040953565137416818326773558143205400846608875298085336125670525946175452796419254415517948426335983564981706545221304921311621067553468906486189488703519268661238256744383414056846019537502353587450069245774971273733138321774465776974603568211502628836586572848269687009748731773409458607937857328902084209103358566242999110609970295619353734666415894918125458347176165733922526280179378480157449692765333324189256029790974500170574210695603319390739868245495343263113441140825556209947111710558446332023380042366197212824768456928915429920924394113934969789311123014740391716594165434895842753804843064672705006161494877510806475487395851208549247426262214256964032363257157222255619709507915220105995317804256636222751152951400613808257184020753536179298868365993410008832167417754089990065351995199271086976539356814263733747857642487273077253533946527864863878399200788760646126228064710578172350113266011665160306517334295191630411308396274247842743186138070106748611696099497802428152082387625507230251941800930672338760880125231565386840798904709225409926424277867496740992425014368293905297561130699889644041190170336406716309959884755921857110226661238460203078284031484223777567528852382751657235539656896370285285844800208732978837493839875077672887926496376216836568762743810115338478760328990758769533226713443656539378807838476960364976847226562550295646094389890879166061556710577406284258309339503730526074388456187557614480444947842051549952047786489193244257636208194075722906035359099193050682717036884921947943474515794991993893192301304868634942380600346157978185934336095261285108818230403909009535694076879283463112688222260810910911404097765491035041945893864794462297943388049914555101422626649612446283875021618091475470643241697010218369418291717827126980424314421100926616845972638086470277636703623674752082772295694234870760141809546407326660459477357219312415347547689631806478480742084638839659209135115775709368245748900078829195746643458972850429889628964732313711196360338110290839765191193532594371153246097418715988878866776003519587450631135268094776559962171722079577284229198559782131953478275941346529716261720026749658609559576642719201125657361246797323507121691243617908739594242956572960874792583573613483814495322237385480830660827043743546932833969533937549203360408771680125046331644920168143620491131923369896567400620904860573605683415759394980269364395237143455030364497473041429932805374965584294372333859893922420678955842998722761023210463206393820000205025688472131022202181296852351429501387382256367753510827432954485132674864599300952940285032521784220455997203052545980827712265430301618427023818454587932997028238222809710313957648560316976985219817869107866084061592943106580074908198963834831395700615070430994886484870529137525400948079242455577101978068859579423424755113539396055613836677621683852729384163631123154336920225663203032672467738179909454299202486970549673774819677101071262213219580261967715059696842749115214673004923323713737868158178696522690780468803117639733751841492449454494084174571692898927206763530045685214888033268700829174500039125214046614992495904011267695062930744951885568815393938769674845972420176516495466467805730667386254932614210006094795785395929567743095062521531728000814212555982850334342088431317570035879764900515499484698181204929013548346072623066065422597183730499440761480826594340514489941020333340226248554124972951178426344931980653429201992063362182912952193866320058400587274404990759372258480274972086417638390860270999726064671627426391309468133626749927055022295024255503521955697459988681042090545207765677879879910203863411178460296587033612549132452845936113185180136409535190029449009084831059715395116329021817341657180128729304556423460811769499729486970282140276807517182744869618216450241497776631846341191765783036190902906072093470528359234672226982992432639750039971068824028893021020078657888767916266893828746223400204804351856206091030737248512061148256744173223539500764006975728522891068745384942557891486397981734457988642720092430256943687152988012134112372674928665271410426063173362993348220854748504379843737573858767084737749083158198521223498872044227828973245225114728518288620752250741811640655515177263489861771371337968186844113124393291901490109239355024260799218432219590557920329343064743469708094801403603892020964820135125294301469778527491511868113869407697970334424327395712541046310471878067402403036732073884617396534021412293663909276840749975650218059759736052926593829287324279661311706356672221757900125202014907537007792512981765969623940366563149249955843400744645814674926601746511523789687158433455383350337805336602147672055639394615589868830690737332406299145048397073687560117932897301343092454714810151196772897395943245792091263829029281605753327048615531431019123106514213463428313960208706417281671631618776050533325659402026082463753092686706655025918807474017082368497612091829759295154851825750272223795402435965054256739943455721181408402524641755228456399834372287730473682097829971116611271963317597579580192256054414458202547867829562523745385738873493486786013818824074968695123312476210333710343365753758040965832340859741120176741549525595434367564061855077217510878552106466897947935563568822884957433161502996605021596682091368506863614232154709969441934789895339721785393665577959772423483713393099525900861929683980691671328862404712705555343320459521763039801405263514795774352793507570526816737835911481694577617946589036068991696720481561433271377286919327603867006624992556611314454859073180084905439123810195779418982564571905560751930951473837350447836127380885740707251946220847781697061382489933589117867790086924618075631886022162027968332945252451215351037992138921571107166905632444263056009310297526684844694388420907608083613006071700006465959681611062218975646094511233448254769191556120087841482591905868186493159193342623539451710597245059738677818019737628403884687120067928940926487992559861985687668476391159471421650771433940317364228987015621909727776585393362645295187035673100264710061674581155946716251322097179209194747791520974963147028576561884403431566876824931562006387543331969377793711404118948871972513801801740425317514032885780033675401435342379465485905713156131783794342626915727347358260458816322471758517176345972069587482238195364298735660027220077624190122603754510724477331272139798995648212950261114121678121338655095262284736383875472171167985810935957923967176645501180568250899938839233199460469086358123992976261341372268936114674211657136743691483515047694169529457053129614648139861344055519259218423703814846293437800402533048596354932319312045535726744097587099085662455374839126342103897107165290335128558383503561298916067850367448452806473728515914808805521275899207206460920842407812364769610262400780201361647268439358662222282399153407410577430637018821415038383611430896432751091007604050404231700756805652490927228729940934982622144143377165426692542387914300102909061136611546778509531181330891649449250835386358852325394882878880460956879185049275918034108978564383193658934251216486647743863141835458658971791183120131485896899446354391554200446327692042048343163600457244350346607023841473766202568346554689969217793484268829813724065597495474653429498227565709136925755656555931156487684197933740944271193351991295813332027858418901963451616304689965348345045137958759425825520110635755838995033675348663271157058126453068898675333698939963424374760493076597214834762641839260515723799307168014382776698613308295138294477888136183436680152882080042154220130212465073269253119898666611228405187234538539486100069470083882420149554937730689878917296714627338637996396663041642222446363911592704511779531249404620396582861825845506805284002284540171764432787255662098871130580806233795588262109497981932498477054821230993823641106389334898940497539294201683853567080739711754972434004540274304890967511905271620211120948000907127208784436787902565636159009707159413464201888934409806163851328465699090504878952396023165875609907614571255683259169207523563301328820373898212635495125397551319899463266756686437816164111501925061905930849915501096347431406323649278607559677279961456704612879762716451643737785073408885529510067594473931080729227315860577578533904245073240459453053031098106718261895540818905495445396273436586669404874453465166560633666020483002642037876360425591742928364748910370060988810306646780012686357563368507576808577789995016601537904731622701109852636651727032951999940936503695928364720894062756726119364514367106372465166130175138636210237381854859836508903531331365969864384241107380079812438279479955199234921148074994537879538116436430723808025462448982466853778981069824998498568980033585543503335702209682133844451180559328740226854722422345142965410084269065604199449462503322522871236489550247236455160583637107677603119504890736951650523497828078592403307947272122467243308251814582170834726881389450222245309592904536268558518205041393358307149016210464254339346589186491478164370854931205961917760444274948767053308772511314894953096177120695806089778497738746487203379724405516002606142326831289029664451015447661233131657240215129260477900838817752198024802876563690624642880803940823423220874291085065152659507141443261016306151625164981075434762725377980971176593757149033516650648834395394337270842947588450753952471069415347764025104962086388640265603027664734591208019031027629937673227100738332732448796519600694484939898350559097814336170481401595201507333181004425017094182723376942805805522246361054857549845986727772432664086378752995191161934184370422569880577551088480582905530835125817560811693032482629647931471521434841041750985983945676278100143976119360585092235016450511762722155936366348447177666897423476829875659771357208664502159351845435689939757688837140278042321133366181939187608241021109262047956760227679429577647457811916948140017716194821371844960403235767436583244359420459566024604691689412110208853843559164125664135869036705858440741698546344377643918581931103041960636306314523921385027407968061146414759515196436968695992951005754907819481646794468038907682506120743951183087732415075924901628281634475025967228509967749633463317244080292338067685313119512474419071083704204912199953323813374424847858164693381655754600216060063789817269373609054771620888017869419411770970727340744586943699992118739792260185941131165805651655086133004256469063361314563263844305736695387649539234915937770833684488905650695358888998728635825492706022506442920914411139011185310720816901507544079936117431395906939963644375725157234024071470415721187886385211165496983116413292686842589536319461524801800618904028952592461439008311279675689859603020751709961616958129816508223454170068461252552539758975881971903563258731145550446076333028033148915075782148586348069209672723133841621357566305581930682723483483755783291958944368554295261699749375914074536493192904142072605904152851744115738186437494130101388389276806427754526947798454929344552274491651295554085677312190676400161338250525744101850383354639057181331120557263016439213270990158340142063402244634025780464331045748052537619980117433518780859452630585871906109999868821739524018148347993529130373351947335030008222471346424873958829038322024035321651927926095971952479386880935735772735831753292192167541761894634505700203817168614487004427013812670262330139279440526421820510878478291378084594774749828783192668819419488966965092597723362224490328434882277450489031395936434247130356979971474480111684272985258041432530360765807081919563610948296589331086394365069552923561789691369803921903708428342382945206735415889576923400710609371300070046709632107738500388610641722225889994674734928940146946617105986452309977286198304911418211190934775580045380435607368532201779932548095318269693406896680269692800348284716756217815916544212682481521282137354651367937156014384116893275778867781129825536296960025524716471007645720791216570252962936286206024345130448392275182909487131631418272996673689085218014493152328497899072998607409925332473022027828350709380394437439346838448109210456731163072008821834042313348852128788871435659933111287516152277082235069521504523575546448141340661030533800990386459927008914247761999017770655285563573164980675323689864212398613653855694898987192246619515148086633110038000672282561965890130552578388658111515742147645493524707296708509637873713291163440086693874131704853935942704083247484098920810945505209266588543924532037237565817267803999286466847470243643583213925897428438673092252242686325261610822831678534049828889270312756233543936200376814016014756267166510229525927857490380119936220537244112196327400518891738872452441253316136722173911481748633583151255096822742909796502339598231392535399256345382874514940738558301844092086830200601894958790672815815107212618119528396874562749794667862184554288359840058003578330326568552549350427823183761195463433096258750578349555516265442440724346734715448164411307267110882825998810749356978543487184895409938403105696019830273722563793300179206515933357772475263476001727343429209740918245812061635148190297993367308841134486134730464321167008459983647516895520124893435280902224117202156757060935818771105648353978050011728386243630102132979223379571132227795762922418834416992121780567030007029505426154705779854662614024229494244974151763489731419974041324699700988528208207092429816740558750170973497338557177199548964941814602988199046572964105606609120339860522741495830944451993727007326389634760635689153662823538746435069892921127086920250204600300976723443451006031838183119932155366188948309163806273064767102370579355592365398746295770803510561653543972880548238232855933169234454275794657377957394353787716311834157062607867473032895487410377379618620662224534715363383357824784068082020374729302523269142492754034973471903563820410456834443040433494758851920380430108740913148133797624151634451048591196438433985781953804214226876752828197556279790175372500863401136034833204642374190171259433714156729833238895367598248652564386964696723901582526135470384809732172244931588929860048969857640988595733978087881043234338692062856369208594228933355000083600370066176939166834147111171231716723801857316396011065133837541617078704207705494806284012562991153880056667818857423434696146253682873645328451249554390946287642713607631715403658101398198870745419811254910233967180629387972689140501586169800201274421129810709333753482460562163597889564429631399192230149837223100327081931846690886520390276259562623220407088199301342346753024692595199650366683836489447129574094320655273745135853834092486460701401569234476624007992702124004459954012975432620160980025064227657685767260913418695652961976492643098931553249961360013186971424481053711780330466960839951732624188520283864734083202955286452111880551478427422950697062248656092694543087216920037005214915195199110887391266226575899712575144687031812623988798689657722579551037134941087175820571985643376388703948006268809716260279790933520683305275747720198032183089690922643916948041736908929062687648773310298413714838469503806124725018767709194520984452081761572770582225280285070098138378368112434334230439745415549715046676486022871790459877896825985232577144490959119696054566175770316504604918924813756133201826750972414112448329871070018414415322663028704991318093685927568263140736294141020554768318181434038968602889375377018790821935026453768147886195452960469879740361993879478830197068703231477096126477872000602217921062229678046360453020377085367629529997412205835713448907894619086658271505069696651510602264379852826921244414525071057850669416762186040174787251283205694209857589765735757953776955418684841474951640233077499581322306234090884463935945082179762244361999725882811154514721122686648096080961386893123426005964963557377379501988351559787939953690679180907813389586602469044256170909219767564065304482207513861968963737123066210701935239740728720406365697561112456230209920691094523913076410130011265403167139570467940561701632723723635156014149791925226236093274216182041314389915602830267010656487921536026860165226222475428602307470846550647210311869938478648003847159809806309254202466126916369209536621303052175627267386355233026745550240154293930426941653828815619432958715477547261293696998196729454102556975977697743877707980899455640743938446588240294370161280234051305753133174972613573518473971608328546411404482221238628026254270646168305827366400855379957220000556938083626549349784201677164199002473368879838213112022397546939365428590596222309735306740563738796064389973825245082761137446948811471064187000791772248643001710131269980070842446935858644458576513962451830161194938391624345433282432942890476541687103547987461792914412157370838612718837991190991385062808537412032373107368577658686868389412721368873385027756957592048715864342630429204127116916947131527370187211696104642603649411238002954205312888434268920882438364549167704022652938724161487980122824292509077486540680689635781135377193625305946910944087740901783983896170779229644783086079573997309711493339426511124913019973277694737744249100446813984449234530311038945322829814197652933881429548201565585476341730419842432995758680200441069466061724455467725071210096517118931130323525693989859999930536091773656431775292175358932528300112981001658395871353561086402456649893102240875239981134030816024795792975320319639832636134255475025409176903425728457371447689479959772602203651101548095561170407408766576980873747190741356845712438926461192267129416126489172576332581583107573256967085669032558628069048640692774881999314327657852781483543196077416017771213684746164597116148333792751807982658968056293945149596915478179470927693585833705270637123665234972958755698215396441587011271055864981722132194002735460258800341467358889990355319541669885478027893214071196213115324098137746482117783559651516156168976175901575002360851209077071334664182016536951673813662381381687291583532703928473901450124130534231806565324380102688976314445949932235551955737111442508145976949173863706773433582862972127031732469790789576831947425622266532965669864720362448280205553912234018978275788277351930045217440064363913696329309791280714537564064560900275428327716014088762473101778621855325597560714084892080942792088795107193806447959213374993961212256965813590609621182123064819030041178528601132704417860366919850099918262352899139943606556836120668361150842526737976321471137385763323784909263074751063196206966103075300855984953280231230547182895087547458734801532720205246812025878294469121597847152946907302048685747883410196719629366254220585975926824399173211594653009429081613475813348752402177112253975131429950361857965576412432804470253636381473469782766130218057145206069115696032478533127361523555761541455089082853179300293731795957635817911249298405177129263006821123610327119929463417276603956049734512496697444156559922535558681457862272040204556079304673296012020933669968316163272589685975091142829823221091260421917640416738494831236003751026376039382147077569687001890353811204057085088704945160991389007867400304622059774883399848267994123533308318748273708246148521219111087909887766097030657743449368709785330475540046302356540370538334209658662503380387391727216155510961282040451268326294162264680744513850352419387109096680291121746914680205477498029078724962648795946173125380028800358513063665763862122893759456800833112571704984619374069681049314904181154695164731391350578129542569567624284237366160141784624495094120469521463454615867284918051812181857773478174617332939202891849847433131932738325334351587214277865267251167723716179547025072816717194038733765569577705222858875140781413039882311904406747356725147364673699753874947715869080187249348926366724247370077040557550568317092889060192078163111397998030751270755433327967898807832796644688817128194785455838066318276202019256209244972223546158179118988967877389282216143524481525652414237972727622480760314363470804918103365138043578603147732573618145786546885860560369885895737164214301541155408807567239938120626538681449772718636495077800447830704770363204304314487306194586964405689970807040575163746203824370781160726801211862014714403250961101310268500995191126031812281940008461254111897248066426277186951161910076250459719898987871810903633638691232359287225094135529955667979063340634042166018499784087924509130380038344978983993481108034428827490342614009174106443524262396630481054922564697412134245855926779241689186016610689430835231119840129850976311296171729577721318522494077054872036142812653215945645185086203789659153780045415997496188217520385500736564040898022562247525057744292117525939726171030129822106127898536753871877705867080855285229296755954831464823066694386810686857920186591021177909306911111770969838610820589564794888778247428537779263785637381872553333234201801664603812995873758907273814652504517355542554162472844926322382569212226952054860340068549136945294796193649967238665492457805784635198534543236524375264852755259781089423896083766339956533894056398059637498434210803807373457683203444818196058297274053509129397745068814039560545057383757728838060915609319758266162853991600911165188984971695502361461501933662963976136290247316961739223734941109499158226169752280116955544218034289846809891776675937109188227015854604126224135442351355810834778058548803822536120070120094137946868164228021878318702911881785926359159469238871607593074537004039178431718013783192707871448506407357814612628573873737900102759165890302937715565702865118547393645648504082420472374547707061143563792281405311098383697388688977338844444497361279773876718800057413871470459831645991944688679339489789297031373826318367921410707685993592267038649792278701499927793813788892210382493820713764247037247143341605587270872952422227193850428877810852880597758006308045900991346511286022404058044457615791081918964571751048077895969417764948578586322088370097335140720635892780497606933239866434099199257949823665064504290077268050200750312252847435472880090090980667325786977248122722887398428519276134913122455518994824922717814067429098747410258622628881657486179963610932837790028943194571002091687632413650630986769574350651106484947593777851250377214029460762931027813511012407903320863483844563635021905545965858098742643414494223550932901651845515125723130920725641728805790625302961658343646637972239833355759842660529254163576146228230094837626006093357927799677861614043438046983514098263488325740779983786723927336821913915604773998209357808406459869648112363836981154739979132563139253262860463846999075544737090614124870722980642771162874808988412857912217675746078977423000528450976486351893406563313189174516673196781119245715593072779940485836509164184947627208389915581459885588385652307317353539246873550902373822038606798602674693838811891108730173642417942983702941835453404565935999672232362974396304624977778781034783025651007676594606480305287028337906975288718640075817100082026873735125598430407021236038519702433599469466469045040922669051456447908337660773005878256279222353039792469314810241519759808549186690947766503575406455338777693248852159194823238225998025691835878304861329712231704506359157566152873010004396016914064601011969017347822724423044444103385027804707354077038604439951096209223301269818824517684663506251293845138019934367637727996664840671964534587202419418629887832436654141730554380677167014660350834602310970030131243045514750196749223263345709179042692145871275765390231688744521372371531126189826456110675706663275685342761905053608535331361687105846131117647183558875056130346095706457305223954304349473203512907183441862504018327025955266871981183906633993371583384420548781006949595400160095367071638458021140511226558709562695965516746181521108900347071662290828271121542846054659842085599217473055500736796588268162590965294968703349053192580389761300745236645176936150254920516439762985499502650959851312962435670006524881459326975452984453298491363135656568515844636420560764485521756285440725459653882707074593339708161098130967755467393792343335857918387079283680393353465696711156079442043302687701733402679042124216032153830099437029758902065187816229215777640018126109110182490050890862011428066939052006249934214269263334617673324796062239359304903563232621760337130993408505688913004708598070824487430575606239164479773166801413291385650762278145607450280969898991877711667301909385502253208992300263820113163868633417555082087078752673751323523482289279462175861668455145080975729097265805179088696097307259886123447348419283884831364373308163490715401557254803370240390207478855952117907029612497536785964619934721304851017023071380760983835040440867504982821472740662595544175514123086840017910338534374189424783797339125121182829096418089011459292325794890303141872388328445684876410876372207034591211244220291901585809204243080036212780311689747913785796885870604001081829860290721219286763316491172687306164490199044748173658795365485567849365882305352366440042987377651615572322021771262622264017657415545968441599368696426756766699289865331019638544186547342573338947161182582313873279615545735326489153096365770148684429482340076110518402363148704637934367577046909588850923136214992139906562707177720636934010079359122514698177609634926012472255641623305250093241988903272780205574587538159722192001417076172819562313629944058887349187990494877068334168145266559741509918285947540041215820796773262068219009522817027341572733935495026091077813321560363559838730808988580590381907565480821560160578195210108060144055241326680887641092622756141295427295292199369081186718163947386090915035320667821344309512045145611050601464700768824696067180872268344780325200903825366023584437458153940494549343845134643390460295092419539938907264620056441290729450991940731786698577885142975595181214321290787939023249838472535162461765071269973122431506559059265653629529237685907188070537208265077593666062926028912874758312212223464175294833604432992002806494309387301058365715402664277566463341381049653461494190133917400061691841369294187660905771437230523428757143412722349642671894457091916599995656096837085644790857129135091117729481886427805854652146162978844573677699708543255768345946208148750281917402008967410238415108683740410149269702492420775706329834544477512188204516241529143763544467726571858376400557020703627240067238203401889385524038276972805942610095247187297496353541470374874231222804262977685815561592539106799540775355031228534040016979409724415931579741060232647716778569171734853858951943102426266421690111913202979983085339016280856782635785699184518057111352463452981878801203740289336530215481300611732122963352544520024682999587989648272788050069912976632819532608121879082162412563457671296644021289857640390008699764485604540920008708572322554155845083591436852935126643942125839978020615533056333416314383831208176067112141263877806287624264091187635179745920301053409936099013064831903257212590576196402200581038585178227964259453955998262911892367203452107813134392026016672104650934118713120093368829071206556618827953202096154432927360812762247950355699293159653671871097047653691203997785790460652550331056139411214781237375148945965093155058608455283173982626361484541773559378452345454917907293566983494971633392506530605990227173937875702579501770177716693027450324561749268554918310026589023383822365995046385230158983673755897100950961562571796536730842170441311945682586872987811826903666358040402637481361768760594538565733343868738960112036202691235857803175972117540781390985454057822169402602444204134055346294103334593725981097585166835482552988815519659182415027151654477303633591333618288170760213006482487206562745242589130152830476304935434446890299738645170045248340135624917739482304030565140426505520677886363547339131758437697540946868889649683713229290249777837301914415312993981693389455713100708163930577522618758299315461200569391458543922603853016287775611887604454396508382862570173487428452776796463215176348469683500792780500438656619817361092560742420514848917370999634655241569403358097487790446727896498975938369540527814053195568682910096328711482080748780590981543244109823497872725753129859476703654226998499685214261018750380628490489687917798394568272920230944468618107286356180121743364320607151457265666864827418443597372709768963867359312693058648697855867481111131258198461018917829506079990747055409180089145117934146206419376236810634279334380701339292786413030231255804647351292451095118373921303731890115499423622305018121617680782229615515636541220611346062676744591520659678478790276325788589955009253101495472781097109425955277530968881953101660852291318837279752120869024652301631091397237055995252169659592564515082289750656566126037012931874602721680170622886631138925211515552555070357063203092810098725325425042173695985908059478614236681853817446166410402009815277112517179831740549675239567186300564286546723305030718244212041749442579340989241246512236667520561536943412821857488503416624337332610459379830608181518833014643190180932166435216609102224930785142448876361195695115168268896543771891457264920987518988106230870697954924216383111531875841560582008635622307340893382697450510863571867340555391002092363319125183870138461762240029448397000835815634003043779907357282048316145916778324008583112905681314131914131453908292124643213439043150010814877794401275930512763305584612548927538153424227831095402948817688239389763327881675082599617314629138008142843678864088147570880064819621725358546592433022872077724295896629750952095347452280612310284052899821962739903748451224398787113508351514278368154413919759651109435451099981243111257019891675408894002112143524273309953215917605843008546168142208196166750070443837886342775666030835937336006688791619674649886614989944973684666850320209248901369219432507864285070776286361074014513786195749069983080605648289219999832983170432521531058815467901195564211738962913670176222752877016760107242351670561214403955011305831917193200431941004555555962416841280810217546274725604281598810769036172003421199047542015901115035665295108275475698404391357219735757528073330710071898716694727369424914741986830520434435239682861021819471359484783625747207462320195319684106300253150230397433107409632249970984921033200847943196215165034501842936455418213876103560904119457113022061332733641598861775375575242731130385699933462684865853498564970831806986071408701408855257602389071498027293159223887514379700486054467966056117168334239119058803514090156307842851378548404820009489129609949869747131996883828316465674084930906685183549846402254222704825566827067719187712676418575624485686434711772146660148040113730148492559338048723893193762751662189667234190111971385412614117421367788909917349866665168474850489813814822378241554816203044040612358203974613007843495916919485146795561807559822476858411966830168345494933111959765591974776984014593279999065122054320101379467358641627280701207079633728288375773921837264697934290500054048451088672901127710218568771507994663373798687347897607624997451517944172727829449958850879432129147364746067166061085458741134005711687489509590948152030607511421248894175878795376185936317381415568961356406342962930157328026201591614743435422084648975504762984388442015604052745155893318939244893829259000518888728150069156310309041832350458447374364154066083382721676625738204785688407468144270875902582444606271866714349439243471074718525865957926128476009600500829120795888587530689055502973296693263952011290860299182512762870382592462941038463368078709652018995540588174142799528754399500644534356585920833761756519640908511606033788950788189401631558204593249823007245938182701877175470386823536862256056548951435126628840994433941393171733629253789993287978562545002975570904901249623225635974216161444435225640029548825471401977987778835268138711615811673233539806158858519285367553360949952882023049112920683324625961666737336784691202771183791896740631338909957772209478916993750316391905118935898977543963960946084795061400699843524080460606473127198494797978983724142401016705562930513127290379223288297209779464486482870089755701402934566470120704254916271977130666767787513413521339363709187765228806956630092389156524604682827061594768116115146166147324572368023737339346617603153631903217386302399084657105093902157481384706067649188407591932207010877473788791754742794031445140820920432313660973453093928693649693207260832311594998194154308109605637772551660071556886143723412315599076028382851882030401380845324305182908484302181863947334831646122880694110732886712019122164952695551135113640960013164119306325524775445223379638365082553836205221852784094180969941871159693920699485391672000172375249219163933992800258497578902154762905853499123342937340611880733697770349541884040370136839012924787135755059224799306905357876489665079384399256741529285746578476896577331679369731410354020443467140908384839585595348922206201503334659049841131991792385292874798046059019849467802989555925613875406450954534312312948130286277509821253564073509695156639253404575995436517035236165483009741281719825931477758007544152621578867881720594104775449955462122841979956280964522585772510115860356038459772785488492793346728636444804142408007832501557541208900828495646838995829017815799560732583326813457249649868352875463394198650405030986895346157367888747033253453759838070527507027899259673006657647988653752218615501437287399926069232453616425228532078824713615340107690877092570088450654145776102136196251474564460197322037553200554922447811114477845368993242190987931861691530953194818934422773491794504838117080516939561864866204082549612469640703966313367608601269849611919776389500196495925680204965535259427781067225209125835530849885200781578290075881145791620555685059269545942699228452571255257068374346166467058353527165187400924038335129923148697907610179456018459454086111443906281460720695295630599260021077262828347985417894941197852455988220559445945231129841118578351544223724616008401407476816758820372469140733687602964645619017918817014265059193196412833642406331001877161251612103576732831500546775566493549386647482455743037316432937641245699900229328269116426906400170971377021185499691033550737243077193896494870085007622765567377651079140162260355511526828099214537140881912003968262024803935790871749927155835259077278767387116500583195493125009411217028912034455764794645007020064310202837576442814085979961741425602515926064041789817989018123424788129192106224225972406593951368472906783157732605044303555697969992141176629757001707188661783001736613442048179947809791312443328275702436520527700864180518572299162081086727272083263985508335389575162198752573390319495048153312612403238014117681803438719386425841211475589076900135301552430632373973032036535567740819799118669550084963668703541301207950008143139230596268229182005933334494283312139543399155609234237780392963058696179301598435689735474026057583339739636007991789673820302239635256206020064838110278066297309509292097460971816529279461422957989466523954108282043533763189808955323506604859945238200246407140310180431381884417491508612040980374250841220781202533440951036157684027355527377686765263368095243342591777151345816255624064804132330031258656631247303768330471682881023273133454011953566263719398173915722784572642127655540753841357540230928768956536201017810497732940973365059387664596555847455121322257604685244195645651336621049404699470143614795237288372088757881941187344970678879818523552540381395504472562409890113878507342003732968007779613702208232263463955564262845680953569756526275969418598474702126610461700146374416546711044068096175909137498810937582728727105673863079123651693165536423783441041332415768307441869911539436842028661512874900766036896854616473353598485167685776652099562731613052971002967313362299830618453198913813214677708188310410608756756202125316250603733964509947276407889245273249344952759117223134269425877305054199363434622472831097453679716848770583028307270906989816406342002846790644645534383782871871416699555818952533552577509307815928708858390644490810359019806177862982933378044732525961476876646161082338304569956152743999191916936503987376566586375606819265869414533963647122898241191890280994596040399202358459616814712844453539245318071405214739260461169618319557764118944674771064678381532133010167887166668844594127931175352533491951754878378516456215564201334275427820043399299377100247822847063249040979411535733227957851304545713642027638151687648248694002285841935683952140148534252496586950357863048913702604478900737030756410067655841017440305685236391029639816770342712204960650301212263998125957968336969547522102302872736670324173998800601726594879918199506767031402412305099926689455564525323938019872251341490262994130943771774164223849210226706959690427741568568462171721120118764334353551601505958421939486984617723662101191006041467468471337946913716595140423015621342840539784471065501123832001918401233556347949182546614256317691868103042185413288884619843538220839716011739239166748570610530048598516260038963231067508667966119150928428861299769875350134274903849948813008869099703151475544545955720521003089134675470329690389395128673133080280321425243719215377714391538625481029035088436591097579580924754853383873202903364754627039126032417768643562975190180722038482295035416339544761851162365966669169984957406032899265150712715441368507804587225024749344810397117994371626737202269756513788405506704066467712059079127341477318067859834432768389406394133917341630299697475819353132815415013677761672525358998431739417792472681277846509612171919674976593861231682781104419824121005844783556538136523749199163695608257840118141953840674899077220908181779153230149770974485686330235916679957995483539195832609553546378314732644584790782950390328510049743506172146765462565654074160400341572981482885481466250487463393859213787185430943895505059934979227114619130299485664952944957667245161405848179338481928522294736394962044680251421287651789967014755816588994368311543964815126320402143133679214783382694548533656075936660272388398955175504139581710174565723060147667401761053564418728907145746547130208588348605536100196170963308121891554045656751465915078552995305119927231034494998383335677158574479133880055694876545819836323872337009565171045050867402949895270416418381643652745497290260720162810506613480705133370910020135175939058444551744909918151328478308487326454080149008323636237124358765062634204467627410102277770061127879647084628940551000612897737277065035389531897260593330681755030258394770610839598303788068047945184255373417364808035144098882257915879928556497728885556500183585409013323270783559225094098976594435335265729562993891230430176611354910647229408171270461823282783364109654639650463731696356588946223879308345422588893907147495473965714422297053452255955349672205970008064133417668238424033754455534013764445676992989396780135683117142303705901553961247201044563084148685028025219643727036604229838677142898737583623264302124874277563568490281228179179986757011409866017465518139506396050444106483613368318648438227305800527791320242976306484009569250762455238127438825570871966959114151022829229933103729754724910900471280205912995487229289661180735542260220346061161784734397101709063808225469726531915965624332092181238334279639483378008360346411507898484272842710972210108042838572353179152153102941192738238811714391824565178683237672920600053288097255149999071616572233201184448842089628001929464667527070040682031065571304716758574067729375838098250541405522475375452271614628872340329155129203629854717180120494173446060800863346623693990598449023975057019938173329077600439191183351592249858721469271798865589334729324189675360664893649557304221016810777714231115810794250724417111485151001574884200070936784651797054848202621052390978770306061119087375890039428461020466683762440778149879876821403496059667349815219790544779113697082041417423835773941057442574156175760019281013412819499050390353385215213911614831265493552730436050368866785723965112031443824252609549988103508089626574796431383395090200713860142648247140313771100286043797630080536306607364372249225062382219286801387668941998784408895847710181883260149889584937341966129876925889737751836785532368821516855489936829646059063194863382421633296111664552221446109413827849447595733337827452387654673768357379554470588772042499758877341190652459703945927461379338312095457034041961416875241784782515933686355288087674430014629954194682251168998349078868574050225546689978826575939161739470356937315823248052674522974423929501325073793650850066242250039378883075357722914796645678880738196901281456555717204478571908993020254014230626653598073097771114036430768121246398324421719867978758250094140350906765836584751044238773811317825376288660050319291530694135620389828466586869669276664042908547032391867527514834725239026753763123955378068948573320896582269904025393922202906176303683907894613954296114689236509450320457384995619725417832563594707768060682287229751904375975607480104707806950640238304044289937801543396416326369256361169460202833079439329562409083868399697829676788394262247820845157094603514620904216390109107721511312624948789547416820903693679796095775733303793119569562512409612505842344678923243052979486036971689085496766730629594869049950022247891359755418538969108559591243046104602274397132381573960056464463568360072618347531451085305401475090287501119836265740507024279800319196830893532797056958020036623189075586764670418682945468995558569658130232328829513718131794984678158063741952821794110649001225651490955830365307593772150491997221771436075926585128491909069064291316366393213659842095232523042911118910286628271380969951052624599035033580122167893105977245898665373175772326239031771986185084371268626171215954184591604078348002854808087422722369029727344326225739346769216752500257127990760317232384307701015319160373046817952091433296105128145408714710515626940561312240610630993457394854545081439802890510718242910983733215310591101942497698920567913677800234252644609470836149717527561954443535464285229690228142290341251945550601991142782287136405649843034076437630433813947255353853676688638798218016062486004999245996050414412556019376048702238982375435007520429495515789145361122883257250617569276356405357540526157711069467763986262866560209157990167345822309371745769861881577245755474368473301094898001098080365999982083015953790792753476618121142503611646828403219527697172985627362452519134710086686086649228292573568268183527422034668322897883607186773132044194010338366864085690326558032594436751624879305972583552732190132984368360963970180667814463049503691512175278321963657592909649649048950468682422744877006747766327172033147291501209134543775119001793286750643831291640382745512907392808476250287581940218016197921640020634285749891052028925984108881792749478464436892103862991735330986422855216230328764127209884615390160236516519506896550290634153725948852702239513877371748357018943870857429403511820755928078416686650668447171726041663674078262907335102443989509740832121516895091661097373065403320265736806953672062714242155890557932839117469925708084218024267488480273624356920386129138693685999456891484586638313104683582344262629297160445107399074366068121018953493183247541301987332339876715206266176438598452209365425292944499213364041132155659466656274489872626246357743828554473458073095709043043596255736993788732776612179992201477923244057240637687348747065199034354475112441508594215359813798254354610341776909619619591799327018406770216916149849871083267687857243191311785893404270497870329789415555424395489314377332165487018985937691060690371543123899114258213533311735013830953091250050078693018884848680146351782550498854491537504030389208293730667457311910954649638500807742051686306273765373930397841393217546220634331814764814156181939674204923958670703661648856650507260096271171689627637993287132661983388167776043389610442294220877501284205321509242361328102488565129351986220437105583997264056188587785142832282261971537957165842959819283252978651885006594865422980572067749962647533306220994714597154467969442691651583589988570290037479978593961733759189624600592040640555377740737585652503400399201054871147066901094836509186633119025770370040197094585235882221774468860353356580695268774792505464797976492383877041515768855889570729667816505589733856233965774869844697313013976563282989564928234129298384051510391110931648731768129288424438285272687550887313183958898377121777121345975644106656938108554760007021310514908958287376081038391527335649286250367424329680772903779046875543708822331707093116764532437846394044436031343404985622691083040887231029394997044247031613787323650702891562767207554881720698256086119449454600219539588505346612911940384805038369899542291885288039512074342105691708403019797176840155662706500455313526991478661466158971754608118581554091554650107956139881946294517943586130495964065939524818006927694917497517220198929933356815850509129205943360856823771891400643911358152352864281083184221826151039173730561006850194560623136426847458159771441983604167142168487246602451246780987181162430734016765602673884533983787460421687964720553306174900026301902900785280287946380606300225598394316569578443389314191308760605797782392090440452091707210776455840191406301406881088838090005638283169162035373896113780465930184681502268995693201163545287164829442314799340108849610667820481694775956193386110521130602533375314786790800042917567832857863141180858792120224061475395200129427375015925425989551309310867825584668818681940777927436249989515628468785387729691590441677012076357932814432024927602316564185842146231493991007855253515875711041478764004973329615309768263180627683868307660530718817683021292557276587013600639403066726579163632339548332664651956763687265457509272257346877160276519249435929545783684411381090604659335457055389489782417443052801689265238896093336123884331415110518654633129642716018429880418297406102713873522524747869848790831975336367457774042729937841993400657570915295245670495293883888015329068925574701101715001340226652280990177150388830291787148460400179560182875930413272134577960988507012161926333332778197831947703173137319018230106603934410231532869679140123350833220525772966140604902256476057122824712761785254201472492873037644114096648404170512271699607421575229360832570057740614667535458154744007389475366121547660689110840067896224388438788964819252029696351691521292559444198197352827809082834409125977161900882176414746540838603202752243802134633728433827844830103395274427150080588047090281041704878936786421425275937758505395056133049513727400496468811657008528478329635237806866623974787994473939885792068168397527407295963606487389698577276442341636861591779686782240139958548973656496522013427983852174982421220956902559385183900685301248442660523016034453793914683967784697361796089891540613708490213108871724241193076990650104232354250291885644361108251813490124278393558037929454327945925505539164919691004816031249254948374698314441093645872698797232646269469681676732238205811025980246592759888646969887589146769093654015588905846242210714960961196392137488793928556775371865269004055753147278245546369504132580614436683284102498759261377109968429592111906292496736589604008666329937898949824241020710977232816652344532473135292604692826156510899127334941214143803423321998363173210897151121475627457860520773224530505097807464949281454346457938770431820871639905750111983677294983018385871810030315794489781910414659033536884628318493663078247175079883537188940703301426696931684457405155411888252348058293467635405787437730294434691942935151793803375457684206217807311862007664938618700198958913601256165370540502121157671056271454966333221975970512026093742125247955386398482350867182842733200998077989008302550861568556478654533261515107412404374742186007388702449782606650926793418091978679052922984786756068829958156366349558888616408472947018139330004122676507216337317429490504064803217889613806160909798139838129072795868196510201732926450483452149095249481651054247300409358524936416402174716335432352903882729927545929765727876859573575081132202775858165450901484052159120196279808234085990094610865456314169759724476387854489986371977852188235892702031976016032927557111106889344113493440867615057149709307309106705440345212709873098295760359352990415848093073515542865857322512196658480372649278411919920542704532375860198928031409511117091718845480096251260914206458261289898860271665808400587546166005275560214036526171130728045089345996659194842527754237283068500652919183583992061647005709113462100072865401961730266525312892864172842133216895781853389158298731903910871594992235052488564229830505950972223302662137039690183024355145302773413091875977787767984286367025279304589218466824823298621469836869680425732844831366749306779255569236321543141602841279033620110961330327729621788354965188386672950979289418570387715632022300304459535406968286470606048644859700098116809016379072343922488603447684650915677906803852542330218032697486262416653419075994762940480327968560956968138611006385590616888942275638800271209650908923775977337513261894408796741699215734032080677708973838962658923500132650756555744531453872153421593560919759016932297078843881045530134314772774008920460251032860323679322380325335893465320978666775261716650723421376885155583045352625840128748618053749873006343135131287391220328017537391266975148239274028807778440773143818837236412316970773822640034913553468206868734045102714726275108896860058895588335588963377655039157228414862739771059088681974215000774978422488958238763564032257632053125861983435575658395914307011706398711055972317895293841307661587287140992574812765761825116909177679563800545261309382383023938953228371827046755731228706584870531931815182881126628850308673045679944232139919143271619268317864106464502877833435084161977232648246857156851105670294832218620947444866940456001649245923895390968674117098936967352834762106419112651294186748907815440873179511551006773803804835467592990912143854503572822362107706963644547451297356675035827320740675845857619861212497223737936119737223827426878349653754836351565875222606981342512078681855516728569385392823875802976335678474486650504608663624170783939775043852902249938352609233902652158188434282006396521581727426474246598328777712253594295491957320433201461887717384470759973851861178144886110392522057963937116165796356004459295679526188034437204598419654336312577241763679380225698277625432831909992219806687662441384799093894367599144068070596306489544399228621665393422373169859437932175053551103605345351354601989144066132611367977339741760691695122008185177617454590722537601393221328242249348397670828008668110371978650269385925415082118193971436408707020166616322529265139907106759665054760465393621860094056313658149106122038497923721139043573786097348364211959692661625292953138339784631322139790313894062703045651657460194016267026360001444535847158856838799208410030104393367488308997204918843508039903498989528568972374732094870083515294370787965996162083499330113760785698386761193222924406865947596980406787655557879256263548608961992376216899676469966129246054377376367511389383477575893589002138086037209711929798697869645944238445265411149021986283185231964931592193111966737361567430703302354197669647516026643199181124048667174841247358949604587012028691193655011524217623073156217338208505480597747456048368324868689419984044546433227960844365702822356961373421463343681984103646178817587792950900212390970279310736834460992723117703502979418513555733957989809730788182712745255327989796383462552371369505115579557216190146403045923628123792730697806314080841071141649756069252245734184211315150313512716941660294000152769539950235999667532881897119637264475641596127699341505283090720831437068014946470488112694365793219660125037351391022554375948993390175771143264363082765023437564088799978432019604553365285539188073766406381750370034347041638406400269823448469786118769224741244281860243592929188845141042558985095484272014490912929293153106593780838554657956889472512111142212611268700388235205953163393546654827226375774200224065990540414488048188401361383490588700584942036251145496342429078246533591156179912845498081113745898866995737806395353656929173303450001557435474207363183885635510159501498221133475416929581325274467160727683070374698739221100442936512635240881203827367433962197638451662684043179628795250465930177923513408942416520752010341317178447340769886386335629777670322240514690068026121198503969491217668080315107103869333577230276039288184408519072412630576324992351275930492244888277431612895944660174134729151263991159273480614423357667031565852530469795348540113688675470532564835046280957058665188330835135412013459744857014677308803440455674384461335153807926776720375511619080618497445743153363156353799874058169250094787675026739989112518629523302767901709000085484278235650819797204995613851158554267693276924646313804307514096032395414302806922707021793781217735562119072476555015344114652377345927564248466212110819957258324126908742075545111587244778631093997196926780893934795971779361692778063088725747722567621251815335335387093189605499695236985994909007149425290876595622280212657273833620331040385691609693202539827993238415336332784207701770775152798678656898799257544579735189003809495920565318679437988009537311760986066362439337247775703448522728561013399925654931610635704609636632414662515822072040331651028776037992927021982383841871751589700763019030488489025835339664757011408053788323285196392311911026650962811645904907961802081518101224797927152132222858020045910303574187212544900073082852186374830150381184126861381131730058352128784437521026909082288175107887951548377600747805691562893938195855222935384549781294319063283714807248972534793047827073317251140988084601369476937325292893031154393704971908312504591555317953207410809311737185215058162344508709340241843708461217082131291586876671758212376365974852402814860606788919100715447750178947149979304742537506221674895013370394410990847764636295415267141998300201983174330931371877927181638746240582489663949124270920791509306438318996719062341919686974873461406003335470938931151521883276764766556680225656773048331629813763076564764241366147974961301192813766505054602757969190353701983058322996317476851217720415740987977110359315267900828715386302776480203539002030955075528262377029812762257733232066526598365941203004633866620679726374757309150502798735638709178869304691855588515672248860034830113799292445895980098434484855787698605660384430186591097510565128394331691751534271642001084780430448045379137921288679795362155521368943645402213363494279703964343847188448930082693692110001425458583716209811092080199325450753446053794582125042015349838264587195654256276771309529929180761234141142811883729074072773194828889695066923717891207484107917921507260504645747627805893431642336757357120707497151824454293752327342384168222756023967717282358408233510292197315963357510953189141307417608687882795199023470617278929066818775836922557306367231920728963377470709588676714108722028609767963801249027698801363938848808228306777031523242612051327998568208247598039029076384892969063490849075452449227529678713168530653062991887520615294167311333784729024252727919882424296463971102063054480378073906682856435891228136568620547303583015262724816711406443542579618072605655035846596266094767709083922000931391209782356528443727934076110006242049139670855022981535356771980197702285852877862165293477763570641415522701752331115440201177774646907855252406426612806100366259693539970359364554805597210861047539673014406519938617473439238038765742873318756527586246123732724638992378204528259920277658894692675571347411474347774593410962311759160994404236648109944273474298093747890079140499875215034297461771611089657193491027892442458613393314399145668493091412443733912365182754072273924311508318827538531222074388355077193331115049979483513093102922541249820966445699695693044243625239935839190626658159764188839918430129070916898176475456102146768797944381716873768360842659935007669144355135261805581137717088738634357208657955187157586443028848889238849586437424446068781215901420720035656364717157686861010766139580073542776848449304339738676345194114934998281044570209083033924069127225945735405016797957977328260121649515746015966632841310178017517385892690903883423324518772847134911230857170501349170848160712366384879493050819484912833163511095686053084339887931691568427212607042676490276826845394078124402671799704992328308306385847111371410673981970614148296041765759505903272805490658388126935692650899117462020885348861517480520340089909620943238429821462654409498916587237601359631065564952569117958983177296516777352556287777425823032224522486042792133629819894431207248789272623841357733334411719139167829961785804065056404499305584833881420904449039201186505605135867031660082600769775403247409898163376780985786124026262539740054131015914164506835621181676815448960696387932506404939392659009286062076594811218235205369026582548577850302212229352934099552619074862429453507095161198885842579355034045246616551898570563441427370381344424456658690943884037065582606845603826815878602145066124126914361824162869871779142693710316995159585279048675670213331303703728189229297308966434839375283829635679773511757478116649048781551336956006860441776335040259974650375820528505792247221193091406005255900465766525948721358946809483678590291367766286186432840991054867293944733299369878394208239384114688149098468783196966629733575566820412666937631134479422056566060323145086929015652185509196567523562228977717711503181947051424298237239793909466357596354777096673133587059486515229605950430377340656109446662372866188319158611061682779826855041550235124844062802543803127581148336876667221254439758915578898727022906683396372829360315152058353124159841714960165842056791086456602656916048229470369165696300364061578026539294566997077509595557438613727458594124917466900623312251111110940066294389513475153025588621520996461457634621789184968457445006299497389632764294787728406501582439441246905515551627980554895199862234578374258206080586540873654859418047491438212778631645563219625587015762829067585869753222496525524392464519365169314104250517372378528125682518497449063199883496081591577675862199615595339506208948628939233995680287968756460342347093959909254968023105593899053179245290247025597685206960178041609502282945999027133641820877176236566309720674535032746021924395068843992191850998654417417257579329030822670042170023152471674286703896557372476397959652382120405615993339863351335325368312641804663603879978150128546808382581886089985220924307420585097318683393715320826688687101875094695542419720828204480427664548309049040021356285576473529180724216570889572196406026783602622921896440985589309965790151499325773497764521660266340221690466233602475520487619175623772978619484417254263545901078667787949700437684529623317653804036464875165551820171424231226940584407468800042796656622767538307775691041689742014409158153625261311965102614129517758348131453528158585813548082020107361388631171388445906682071674611484092104754821505362761764848915777257353711087757244402660256467838453976527650523347596213438229174505618606328972649889254308062382489486186145046956793224941680343705784697940062261458319875458249948669790350892894718955144966912438706922564568908076301773978250104551000354914385025369249635217826126301281681949732657188306601266039362920532121530911378193396600086363357696293300589851726362572946957235825850120160530166442285983709606955614123988534909333900698464546436669865981066227092912927025886788431093043686234127854054658644356189715633377841420434586465083850482160660551522137513584701404680803491452055185264176035048285057089729053538366371543041279305647286515481566373285635828274237104392041217265169833064694102438414025248307066785748776953668503801651759117316641836882490165532170827627064673793678524184157314259264227821667762844598765497036650359805727264605757401056911729872743661678970381434594374211152816260121520415031581780400995813247149396278469378696166882057247981353891289572887144271245878586262708127775285951229918788805787041951296041599380362977067486358518352377744542381756039729598959611528905811330875301414975826727050152225219996738986505674567144757290203124605363759260697541185332755222973125430136525160411199186160164223959919979834958537353540497915378833339574160202085172950611257629578347229887014152352014730251691545751028636085118795623725362898719297993340824571352182384433946579370202313291761775053836092314210974550741689437235816229193619945197808093384015519937297849368035220547950211389860061141833749058711917411979380431146082599626039716362212255715414284376973080345474014570378754186178578371206351177110395430974660374496506324514637315216873557778735324770274692726533273037367605063628015607469987027852802234905507583128114907206953102811273449021364711215111220827865880244332271268846976354038615444685379845292781213088270040197141474297945793010469608423846732383115975245225327405719847652837371047539865926773508272007541531346739111131282236935618881324128428533569538501407938877892073467510768054266319057473877620252347108041254724034616311974529172462532120845205384815119307907052780263470242796311309191129336845281368307435979224583720333471517177917505463553466562498770546528877731734282594631424972450762547824085225338729654859157924888709206260109926438489190713659473387661596240677394805792267561842226267507372579490381513422264042571682373343871853722540671890090340764784528515208293902815316028221313793361526079340155841943974471335766585975778358001471717854049314084056981108527855822172955845429768659970100481696904478226830937091003971625344053534303201592717158083215690235776800555153038896314199771378643904918927243484856477198253075902913749230425565753336892128283068192544993683212382903396444424484714269267801927659252133212660651507031938201425114719419912910152752987279691017287169062607520370079730473447223422413921707355959848224031302555921266249917939080492771370029333514879979411548250663069850905490826590610618983533931027371344467708291584300060282036877181174820988518256948399128130780122891002751483995362852300920109057809174456667431360985626957709515187789577983166499235190712965124389853199481784411465078725574423054048472944702905905725782802292276600777586445034768581712563238579550452672751847609539213943032971572573812739810034487145186978601048359798737612882034821216880610754263566656239217079706032958754682782600258502012667573642630192675153309572010320450428798922569153796637089304117006713039518439368457714840183250181348225502888320048218053788746613659980790517256601937899650055770309980856422276250514063166075791135724582530535745060793608891669296614701115496185468297031233995691410926791014159836949828120594109608342083223070323881108546515792124053358493664544090533526799709456412414188833453993103297086498285974879525346325110181884827432936678832765247595200730788246705529138225926014326407136347916679561913372631384514087712835782627017509165620256610582322388532561864845383247999320523996210542372006983630197900467768392434357861380163807126948833510280333294814081485425096452364723186469088290770013883633047604746785356726382559868805263425814483683466735250577383600306069673703565041382589421533887659215135275122372870006574650701801559379398048771714060944622229832406545548651395787661334296872562309921023973275829890519387543822370487724473970772407054649178901705155487729742236178487551476505846823635470879651462178883037416886742692699772987871716343510335431801338770811386918387236051008356361957894831429718487665228261429830010790071712749406730979932535098838118554758856413404572798318797239570036792571248894520746383470354313787773766447618946499448862988874553589016328535280589713985002265691014490746745471876809194371816397853374921850240445503773464174231995747183586169320229934790485279166904680064683890302301374077735517071099731399375983722823358711059372154929242180187521838542900169576262296756210391690795215710553098178271384204071576823100407254020726524637571176638927136899112289010878611244311510433188944754031760354128655186552660676028845318245856567256829312509535434668207993413146156703177787282910935925270366829603392949697233926747979512221288096266090000426197016264600914168494467579863388183468015738406876447743692237090043186974923078511406358739473044100088066386798321456008610408048521061520504410388858407998248185593111617112570087988186141530806483719612017764138384414752357893444301820155288148438809586225138755219469606680478667578820871304285578125373672433978935917236039108728504548630495184993340149029094698084330942824044457788225200606740601726301053347600378605721343401285893780942399521728449342271942775715891604504530730208238986848881660575168986294921682736355499863444386217334532578525264699601579845887567253457288507353990280970728976420232108559513719104228386895656728699124519178118618321787807462582087564308477092304261257470481173757822512712899539561269479136446192419874095680097179921781030501375711658067354964625161516858497813978376087304634306623833645367617658336737861492465297083840913210710710556290187468755769024531061040464420428259977387336999489980483330189483508057219382495118673981390170806205496761197930311973665362432293482589555636848580965924958394033532916644783290834447904784561206164655704213411799157397355311763981730313838256648799273357689775813304584313855388619954107899927073264439717982056619046801609703378206144238461525704064607375838959708588156292278727768291748951015100894144192258341332444842819171301564577107249445119195996900467148739683225792515202033374914539055616618337832846097613366112358653799962759293751190846511739062743265782072756585714623609909857385858789460330039139664482700440351841099939824066139650082269109602135445413812330209263042515069127704914721461001645711553739583400669275240160668918227887700538511890936000905076634778264069987914129037128363580168072544917947217855408247952987366658382591548337920146704446105092925128041897647520123712233119798265216652725333656539822028371581182442130047923427983817631910591558188833151259328560886282847359892515299565468621335255770104354495726838485629901076500672041770622519612539325582040471418250478006195400498862530206036505976118651498592619377385335436531314055537557730272218342541880946733473903793954168756057618033706703186399760886282911450093417003053468063158551515682757938126269594727066902839019863779478548379399337242587776387180054501793806646670371780036495662437561655041171349870171232996367792360636483058464770252221182236613363379341357637781822610153606212034265181875682071976704720258381563568976346137547988468698915852899987591422491553370659865275813371149738110751835566577283692844431619690199990152050775688942514238027194493199945302381581620305388255870366752660615744446818406332269365216913008275849780653411558683706217148826002932555594096942830265451716077238530708673668675170263212352063456809942362046748751907833976394997040885413010455433900093322362865053564025379562777053934149756106644049127923628863680074791004912828828792348507761479344636245839181390027603677683083459594159833189374581855539629168659748615750436294860035501065584164300320866019168508988827004076929154382897439178008937133500396374204467215748161211404906343352908956085301245117552083279646764854109619408459838745709971370713191634461800025515204709860715992166774893249667189391201453574522051649213247963032488021148724826466992482913733757000805868288460120619180207575409013059908974382877424640941192830353237726429675645797264657923063066138849625102880677740713764607217277197258364590614015145501046948702354691895665822196737191383184686640483199505901206152897971430320722974631888908861038967508849645294341225415785495209826939445512453148981347493993949790422552031476018281733978901110145115742351116150493476057435137923947752847312866214249807936284399723735842956540439935421405120124302507888983659694098369484427305885813399641760862487629774418843801455847720278681581895939486197801200710019184164875181107948563216861033311852500785458370928861354826143590802941218606393658356221351940838179319679629277367516339427677764501832791397508817800920385943578705226731490947523173354113726983164135423459126111525760278594605669757726755748303827661630042408021111730687500196747706037252122648672173420831016351528093759765250634216257278032931752681391864550830151159502085514859573978174020671086005199973282295936519588978147836766927452784201921910988005390237513727979089549584615296673775299523137240275396471911430374317556520807661173464617223726049054142480243397332423142556436658887024799029924015657316848998362815548313458390653689323227326603262909533358068817700500771717528639893450719526518810445756713009675539401390728411220518719343716406998720077076447259634584181312680270547232510173235166726074717739644378438945393511904923679834817215449213579434197585460102222076535644409348316208470282461326358694803759254022363669091312018375879684793446487772956789497712097504832303584579814365575235236367768361422773977880974675384921179415082631843522473730455723339243399835532415257640776516277846858589031365036343621572378469518122339811628186011933014240762477680015231997160713523719030119746189055934245196080194459692453802167610555887858182605923251821553592584363673852661377767608188905595387753181867683415495695008412316821577895606504627435293325211079745952268979233908646802345171988304062013410337277728992398722854506233045714588715304745818473784504994349583193331441996589698543215067370611647534472513882745173183140443484723542481394362425046089753639433533419846958559612054008232556519238538209193352775084127072717129111857653597281588336093502866266825967170021208919294827085184777337220338093312309718723575982762517456990639257770036167248484602240342308524098509533198670619901579799522870419227942924824874575358343621918745308371096668127651191749503886345757176514463763594022710794333788514573681361615558830056377899865461680552874902914269631459545239560902137282136468529082589366589758244995676723694199657463957090021609162519711215975777005948066124099539256058065907703384954996554156254065590198987354168575937341994638020307396521547618097300749600721138853573692949775707839846232499160924458397970099180353597235575092593918915490540968320254909380640243386905160280345782822204516184313768256362313109171962614046827549606167675317608490796380728350629400886005949451269110035310073463743237254980563612569741968378110243323973753873942630075625663380656466073946368017400158665828226867517916495866769037517025184376359471254808215860656876252058820337961339498938655754796254673679877884703572882687396376857354393287646475386224708187758570521503977889106427261962474821787159698897557688406555277864589193293969164253135606170135752453920413233981835834281998330620417656737163410106897289979016735224758929249211242425206126005462480322783130632639601071002450883520628724636167572467451011831099329053218469605650019983177106780963611567742079750398125477178919386356187961681151191372102139443479387750866688310140651701498123347806475397991035815864870930806892353044585069822518083315716830223464299369393018013418565818081261802939531780118154127298664030397010691662164744348980111018375782628777452419569743633550580268376807442680377411318919961001570561080049728289230277391170827919249945491658667455667030974247720941115317565975521493816381261822136983135782008858024426634214882884416552149107144485291463078929053763345016088345543973592108937166909710789002704620348507734056012583069398710915793004455556625752263734639587370764894508299026234086064234243497627550608145261384761378475504010636704448776560094297464765567145480619871844082995806869045011395836350338415025208657823249822151688009921304482088296707462822674992342564195006259294066644430352187280245997871653742732450167310976307739253929231197457080665712370029578927002508389665162893577122017304301272670512475024862582081482515889416621120065281676383243281310924656835819828891115107015506295533618630327667465029215135924664390281020000522650272660751021206493414780521658314044665770457904100209031639341725659645080220088380764688827874586808047408200086100652663972050003236590512217896012235126792259890095428747632447203070558312134035493237165245831317056565949109423431829121730809227475048860800218703254357095818926309944594909002570305863193066281031926791222889345654204983307366265988107400258858831790150416788037420195304535553744313733645295656539242976310522010977731643183991915124357913709817387087165270805661999089439328651425475473240988547429967868891282328115537562642013177618939556898923962504326862822609687732993546628487637536070016456893761154423827234335921790593544463827277204840625138214259111111110722207954011422621878485729082105336249847324676898214832374431390543942400203456585602498993733920735773084249006536563414048202317478887477504083596760723815777269747678390701276455891676492456699410047725574706799627940925568639550910476023355820579142944371276288133321109702676793272629776017277314262942490281449345806844841529847573416351554649087971759934920568870721754875237971621615191030554870734192416707991712500087426251577086978964371429140945783698159946861565320759474216678614190632353513924064965059121829470403664522706155160742750776942670156648994794922700791068703790106109405009850639068419814739082114802784906423503830642505717561026663826212518109053212347069199939338140024905234189968761546502788781367265276166951595954446230995596810032663267378655334249345067481351049978314979815884064790751741762672729281011213329761279459345713380881380481869582846701674195659053110843047051351233735314341945188626774276814972479828845745870452130694372533082997831383867039177103126024901456681583653738961076913257555026351494374421664638002396861082769634304704145649591727512809945818447217318824436665763927744904640844300654725609801757044773570159013695621205102109361408499921199998096255535841148637202862625609030040643222467514316383785109311745370750354474254456712490453637343537951202201243129431834429398937161178103679178305407106773291433353695657981004433478535892336485300411044119284361241290951637051573433959495088943529645246692822520250889897073622882598629926124533961734465015022265989162135070550272158885805577039455498563380221839856206076185343208723359083563875624815119555374990312266502018060709778428070839444276878474497219546881485428361299196668806300834411176364088182413687001163388061605691663702973412059370766708298206743169943727156006134613286510201684142570171901770375743917480490357087879690064283899042304296423738260470965551955495241716685453846379529376617371087167086049979912341446713906974912876329157814243058181931962223348942054921788891795101842561404947383240450017910883659699868185309403862050405842052686210463598401844562150893379000578277780742457851088655621463226053357043732058721477467550084690718753326636330562171397581192761440224621169962975635034535641366218735880788903085053341333237697561894764456191000042289118238447226095576870183496549284725405255200325029008630675221351419093990210356416719426957679834828235883519198416127634430525441695111997882141686290517411888166548040862969195866148670915633816257222681651950320134744801219720027798389139932416509699142950830226450063977774670395259545266150614169833174019114978025616354428798236044967598919352548471477595290415357494156858673144262869072254557706350922258957015666374871222324341244924802493612899950504120810086684866255180955989175972683341423583379287752856455652565145275624318338986704970188805632837469859877614802863914441503370285837230832067009103206743950277672885426243092935902035823231429806457263305431316749661729300241003665960668516519653995152749604066648232350667743476492438664840085615309017874787852433468929159511319980404251673735715531359309428273185581418797643786131306050566921949279821352478440651632898714444346855690021296127593392161970275848871510572438820735890699760264496540798851438442987977386897372451010472106911340014170975239658892003823845235536238487238606917218583827462995933754016949986273647739497770819482354711787697221523435973053120994409853174438047360226333991242499768172380736292655165058749466564237216273572943587348307423658987428930600973353862706367914671587114679149805787863072840244964484216141951796682607031341584063796026652715174712963142692542960617627401633104556759644870961478389961101266168333423103381580528558650679133053050845147203146749135177513199177266847139543235468161632755959150059315094132945777423267169009003257478401709415565445129387743522110339388480154015909905227986407752367082883293001333497138650250540280900784325097353463115539868025174821874638536944816086159777065505487178965463893311886205634758196852803256569634430096679135161679191495861253160547853277133734299307490948960776052036318195835449954725692110802623474471653967189546672922501279411409060224901831148752133366637672347441994358783010587004552093928720781501357621669165688990495901274373008097931011745695411765393134986248752178438822984075710519794497311985150463873165270499878707496117353553491074503574924440920728297062929063805545908494103104702105451964930601155225601468019669507312632022188467837507064942715241789592675363176167789162498463575787760890213590793476144986063792782288542991128230231540546431687807995845135245370706566275182820243750578305128457465337977791485974747094653957821833353894279319704126605705122642377814812193981089673125262366347506226759050804778012622034837189899314858903339674497967896078169945247369692486733752737976383497807676758482685618127718107162914686151923749744772709427295107622044959988543327707712610581723878693812460814039759912989170667038137390039425712990135253200503063382596365559561306416322287386657069343447171298831714701849249276345893287521371144620485408577277131284055117382633544287843154417035184744742994298647631786939711786266917132333575999174692066212040384707790227767189382466487703715589387815937698967191652870407293333872276056951068288924207197190231435621908815423615710607757850277372647015196161131607730375027093237945248162411594588304334241125626604036523387703690656506787581632134033409816144527468395293373822353052262551413784216932467607334260302104110329439606677939674128728563933259486564759376137628317479069301415762672173493619473555388282678062513266499797934075419382424669778178373023860313669301444782282125967483485560592339790496440481756685260537794329584908718958725048673501669373361375231307622103494601727558236684404209700002340478959379736680689004855366893181128810480964227968195395519133518470645146505708710301833935851394887215840437237781523264830134714124774073309276177263170007289403328807646303624710347244051701505110200125268609870685773935013346090676656871521153389732796181223261288539443573749922106765135991377869988829736184783552946303789497402973231758037194283136740084191012560755030743419789290149151094184446994310339781520214073575476882669179020267444104180881262017357041467388700390042949008897177465408150458089608560696329111809957290320084120459405549173122933510733484896790915183398944995991817291676064826707979397671426300747242979300300311004513633080610010494383580865501235139549469217635716864365054540085969911943538139669946630276964940976223969181027006410714682861218795615614593938258642190425005323581768674875822883186555991121629015674322107179190799777625352851154817667213015131281891517795521661085583878802501592801601840810856889436238411465166461270790118836449399245217692520457920656198598907369327908011580260203364435999084631553353404177241798101676799494602196309730128529023864615222500820061990146091258038028068944899054422180798396511515831891259498029024023074961456853932612127068231293809014528601727379360090301741873967135124249928186600649375138288027937490386651459033754228262149045804069619966816744530627900499807989162614191166378033007743928392409524338447517146922716358138385491557864531961058196528951486232989855850137360503100406371500272405024411850115903139907968856538741427082203302525044965144868364367668449883258011899143087397665383599856796393402527234566376495844570614984932439414303527571907478623522924110408294535638247921138316294538181738800823490270011489651697110092167044368953950415645230448238425896359922469060296287103537050497156088865211347788393546311760115739247623369341761396242330996159467859782102179659039451694648555552438440636161980469422091819002416519204169492848539894839722060428684151701570458963447947077701883831246458622868587269502204724174119830719753077953763978946171890595958507257610706395016500376817857356458823824637530679698314665059485605500856354710681016552280263657728593772437960127870381529422840380287535590152716591945062695709410603373110702123147926514061907126597346270303878884890098844274749669782213410909105243677762173421230565562382714058341125213107887398338868767239812504340265135550403779809995314685656022046881205494296870439957763486540405310353042174906025174903831892135156484426843601534662944918044683285926707265818341420228988365568662837636111834526107761082133604253420334350718143659752440192017660879327613283621735093393369102714619075094086352606695708767138282296700807709830046492653148316473521629715609349564551735951658925044671191272842146553321544583636235405433062264235062839687846694469799469858566246515227986779582382151585522563057445016694518056560585697936983300521452720254869796022464723446433220873806391367634137488991934502835378777245100280934195106901095291375425508836492339944418752800556038446962720877679983812977844426905445809585333772743662351625239376890950068358654733337460091802060247638631145030258750909556257845875688730332775620863785635838398260731294204648175058836957333180175821449092164333949342015600415909022947882597092490803111045306124854640461763366087654872719845183952484964347295804317110541286321715268575375399683475552998893063487780989094648157718196009138713677045919022800291927831871070690841283175944026040349829448934080321178739322587338204228836050150202510765424186601513575806335417535368214390240649779166595057605066398324688646150955633925408901090591635275655001725359105661887680953101160495457568475586067395022966510060874196654194966403623052700278858117527576161964324379390134603645336490299069798443437134993135067431754019402078559672371567766298049360788038521281413871257948911174636481720360217515467544291511015163381975321061003608749033975067350249615412133409784468223898704946169911368126763288979019701777457292731871997320213956273980154764288518347968216640809045179124501495176906524109488913389382981420898181784178385249371343666938965952660048479278429117108768271219476291247948829117346344743806193058143557430170910254567091113239245573814341759480292776310289367846617913621098135867628829625292801210192781863032670860484138870154402910892857017152374152837607114197255700004077547695199887994337280265398669303890594271205598905450149600918661769698063069234257872136674289552159373211193731554931946018946973954876206638680762209881765440426560781235469427378422144098686327908015714806976561414622353341576040374053186837711300352367718669548845191324416205785473519458480049304847902876587261975786673315261814228945457161217104641751417805679003855764435853241975372205305657537700421708583180489650574372941691999676640043024651152526555672849405930656893348408703266154362505231188218943688912688498613073700804381100182927866351165228851171656255249433552613485570251698018672908891842866935994081433264095482397561296806848124498110418859810625821502558914300087319299987456175616318693376243736313575436742860062144553985725604012183182739091052394567440211933601637466238264242896679389200547712857224060182930197604563848633132380754645785824406266506944225674138189301658241665692627379030609594547585288899052946000556538169534448587306504025533102412043948490975595119410346552280198426424481526557609895437496252776657820762561347292602972783083539441315978439728590351174254804559698208528696766560470231097330859371045171432160126467665741208301234568852943059867666505855846900316575637334385537999907857188298284412202183917271130386327550808983161881679167805148222562858052750407881448342836460526155777182523385168600223689601377532798289985003263317518494990868040985023816930324742543834927727101455357316568041747380287976296534337565817596297390648875980339457871102554550249127258613669004610666872679418200333026157064671402537015134469439755401900377007753325589987976405685642827326695268398927456193418915752821595216956265454892507551018179723459294793758524465514503930418757629995783297539417360537279928133311004614886672275514201393839943702123906118999635995127140698650620142950839992802483829777719704639045930200168749124676500834603752168707515541930326966367748865335435906797398443016775734482374410278469155147823743230102119999970751664622978152647563939625458202355351893134345663448367307734034463563211623166030095986437263721757385034944506677074290690639348424453464283331979009347372072238759367596434077103984158464073218225132753198681069747184521596070739096427066078925444285300208080191986073367270626676001831429421745350914907660886957552898753066132351233539439453869090182440243325093550892728564974349124418119202148836226776482246990989986073084044505305338216959471003478745583761484623943947265669403874076441289302594314144904036168786855355824958289357405812406905053948967953738758867755251917953606934262250873860741788282654166109031345529917722624935997115425234875036218843615215933381568186327303619424054557649396162206509806023517278002882139087258714468198814123941145005799133558489431794292317730994130878690075076061116015789372153185416697647594001146962451860842611570537630215236712777605159975953699006397918439743475302115641182733798331046418283312076387810619681519714029478636667115983330626381217076561289328863220893184002612491867995800463088042988217977094742261376015155438826689853070953390154275634076472032155050924537230285507706646122932187915282453896929091248355841708314494351836150168794467053557785068976701420579050880731243661910346704800430895568680921305127556079087337833572536450150651669574278415820057768064053839074645045269245953340106732016035960552709752354562448795435319379087954706955089622745704856815314640023859930492381158286696904856714761707095323657778630953754722288104463470051837202287341294958232308511143770247840079397311161757438699877173844035551432871683914748717416631155728798020616626216650802882206606023617311641070527737878006918251680480429780971181675696743871346273696303500311708553868941615860020876748768607419711330356914826584764473556513544247038190550853641523242768497652372654641203876913441211642340429628423527212343365488663928252153754739227276976680099118343346029521213046976834458420998072480192526084975754959929522552799696868783294224634908586892752149371691650518066500449652090095361501634104475006934077020194808161189739278128615582066822630709843805068362854088490439992699484218062514808441978475902428088946443689552319876643836840295966350083816600780200118533514492476546908044794167558853873130516435317127723091828854870486578099342119720402542686114268184647593211860272772879358652962462836836015154689198721627893938101930633457193041688680107002395321079707240515221154226843525572495600768022245291135849869944806017931001974546512995004651514618137081101513534413886035720065198309235336533292383130767962870274649292151788315922677813024085804629124301928899071661646879291448458543829513215538761944348233065735765036720884786033422488148714174527502899649602269698378395701803540481301548416107192468150561917297264751051482690449558526121610592656491166023982108013641786887151724755703809986658650817989683251613923227219227237509649510579990234388983428527496386123386460549284984770312204559530333870103246104597883596486015945341433231843863287642158857645888535566435747969926131975242186563072430139491091608268932905700044635180730647235750193322062209575997014098755967277196177022801386031396774582317831796457764875949030626395683496572902862803299141631142709248565505399906957184792200742875111378033235428792935561649084445715163859493425255774531305736140684771031120200301390531743597099941277247144364174948267595090878423721326362613218892524411696055101154977639376642942913757940759041320818424456793722278304950891466881532805106286249086408227607318740660741323643463921421965062150773666033907072918175140614714702979202559283926345276382991613864128359199424422242694067973000102260242501867027718033661315259522598833467962620410903960350827023299376085698528931890192899054241699055428741114112268994393418721472952128611778568279385558502517202050440149955584708028081843863702830999110257576423256757242849502094336251628075858489612914959504349819777359656649705480022145350817029412307552361454317800052936926978154207556237873557300107987100674664868964099347792499942203220918425628182336123718438756792554390663755960606635627731014466669405344471024718743135003912835717015598626210858584785717988625782164826185542958582844754044498289021983524905649230565491583353742240192326300554701863229776417016355877822407502443816462169954715086946360617829719734863747267270391969450180041741921890189212006442878232060436523690388155536665921515218709196089646335948823186507634654066952414781102388123797610396275982853457490962966508373542826112826371149360730621196698680027741926576979918985789414480098842455272905848595553920474311407723676804514469728034794791265476346349021920880706291634299303327536147232071423771100869520126978082776866958843571628242780508969401771462491649292159478522604565826460442538991797446743643207906113685571022094555614414656878694657694253325474727313854478297781532461229651752449181772151639957179818754565633787882325425902425215926548092587978697114808372639908193657459070465176122196543987128378812275665166218037680461756604522711131437213646226122013660195208687248797272094352302854119127801682138399159466337609418597367040551383437165722553176323569858395143660433490112473286529569940052086157984167882877966435265511457053973065347026256301308584356287238039566669942959685101305725212354935970740166622579275619001156483223036466028961839954227785668314042344314363731473585627027915096954567005623732693057407497729315168311592206855573577500625289268634373028572798201148194646002788990419774445688959555570406287023116218487188482610008762273092426446692219385880334718911220709750334947166796062837601718117242529930021791594723017490596564651891368511063207536729530920590512567979464139123507983225934727659026338590313829524201304102764114175146415206335536193838956995741109007355351410681762620088943053511888534081101925933155919318660286080071145787250893286975871891232497567014835902872168126684246857499770772411166543417126838056620751371844550700119825036093377442246156538256855544194986644445500647044944376022375388278665195890711932413493401345985611429541740793345925321428691961216944866365144544996792054470400993104376384329971022921927355141431436047760919729242945518894671534469296735490098882814656657182391515911920445375923581851565224521752209332699718357540412216522439553856727836773186952083698939592751416081176452531228603536292593064910917071526136941109626090931947390667926136920500121188097627986815877817111645159940283197784023662548382058533110372890142178688255508419164711105375842912467008134573510591391073386476252259956320574190855087174960331567804187874149507055364551507145347637970465622066011530794033584598114345478880518132738873545147383192748917812920486046309655538654508794136986788106622039331054093820349493170985927304808693881549174399787816377381870790873695297165718438864622626859948266156909331679331264563474967259381482556467837877674186816711036605568462941286664243651775022590045280673677189813265441554925022294119888566144990010546932083964274455833897201589411852666271880934810930130204075823667392090975324715372753445310483090743107595210308535805048198032423001116943359222617533295984608658992896184593526302039305218407136041329906720239038886801536282145286632690023858282906469792293795379679573279751636863273009925405294085526339465309040482421874334842068108299617270991592493748341590578974719682331377141399439353531297189254409592907492860966060891950230929286024027872773576747341149741132698136370998552099513007368064213586353703788420502959783200786638408737037161422027192261301946096436019978685320612241910603130148439060703758264702682027705028235046026032218061160930664509866335687455966654829580374408378022407848462127102933272209735914511567706643394839738171423081436087895536185625850076195731293389121194647462589017411107776145407997531164696580008657542800875939325043357221078836952107818322592477935227084228588244357906614970844369095872987547414304285738998099750785684169486729645352372048021188035396825067901270770738600385957841510600687608543684405777870882500036018375585654812393961478621607887514966523438066865713458460798578010165968667876113885198841273290467104533949663866599659154950589918946554385787467880180749554780522643048965575527833892631977904621638722163052362601183379114019404687673757530651487426619795839210847416846668528795174477720316696855640075919177927488643993283532059615623554797788915385174998395630693900977691850811502875027040043609524828787727690081888343548707134403385362555956322280904881350057657977223606216891301012922895424147172658551640655637075820212920722340643349248412858247315936704048245907904249794446421375954455377490503649743153815927160065877814086971106681198544735057704948545812539283304280264115597535482559052536853984946102704219954680235576294409006322183558895919514087414541599415457996824649328247740023828961130637449571055862468874093817706672932239207632892719278037668228747510277887029439928951462801641190756027974443709297093794509372630402143213527279784410625078077540843129263962677816204563047368402123899568785863235419868681559572322169973441904698572553070722213003478225687898956530933674814525328935339009447752082071472261832034690117308211594204185677186567233727433802944388940325988707094088700162917658936946437579735980504721725925209586186694722505622531657530402796491337088255147006733264744804715513422929724170521312678994063142071795428343009273717678623474529388000796628343941372469162694686221607906953778300323971489014000125473888151701970483543517593428959979981281252822989928900178938814719219440752105301206743783213999860014044938495369805757023632708419397715216392432763808830042299820878819260912308105184006970310374288123422952375555140060697244918448697738574263511174643048010885836085541258255313524249970384591376255456150901903776085669426881356514860323096442662081670541111094485700804924621497309629138385120739000286558119480305779877656872384548868609750361610310336423960837441967910695477145555674040554419241901786297079112553961590858301677835910039865138898135993553691689446500768815300075333866289721693469216768227038617941842136932108585027965013778528638927992963269091765327684725564646671399607316462670703725548709398512878450790510277515962529867340476149447874334949977565423934300732055792743672104088496981820134528032535206450270895977421587170164678671941586141758525022904876767897112179692443699537666077195049341519819635049302207284473150994111537655178914680018529328629904841015847137822396361609302015463791590899796016866093865263578359810400757438353880158395486261601272617084288583521124788640216168409407187453724853543951654662429509652058933104299918780545814703921978947030467931049654534524800561468913664861951947300659004229029392572744369920511275072175621491095128658282778996213578038184796609385552119348197623713124904181087788028758312163083568003860307772762182235956979481064622409219240669850056811730499252996328445678998045310311505831464403106131137394744158394879180958615541216522621224842451774262326913053782252651926163980524997414797049088445381027559596602051584123566213905986791108588185874818419445209587171284072517217610268327288126788283379908991095287682663479497842013770506756790376318469938148859130566674046248820145471489470541859319317436996276973771340274094669748477919526416605864050795671578807076460864975623833934003238909702732426220332389898681757716993354786662127905948280398180304329341479734336001736792301663533021193704199569032741176005504506303029185125475727677250557596383551568521569075708600678517630446633977635830426637254045921065461784732139744987351329316270862631812123979037842109839248387524642099119689469988674063992697576620880506006999014437077276001542884029713785791456191021006852241655997012035166603693345514764471190575287085129772356139184978863719048628417886202620329047796454998291160171682704611706448075738420490426746383746230463583301900276395484148895655195470313868228467942345757070714535506024705598252298450350542188493966585489411067089615241758990549466106114488864554167538969281458799673354998862503933407956556438141303850166402023627942443868535439865282774917938606891153413818462523151010297980130850140463811527963695738970954530855627678739064145917202702344412747080705593437417226879537910855509689068312238911570608649381419832507354827866032131354766463732534654496093469298336716374924116304512121124434045419935506008604124785565281172473404471430900277799115173912635101317278714848305957342290383348248887925609101439880826987770723119361513751100428566847463517445221388024003375818391442795279342350081408910691773144447250562741871476611039231030746062397022258071853794762383650029309098585885534629480244937969997845217598174645280226264592597905549184027815408592798505127491517450579856726196666992161160756604994476445659262149908529226006500847084922305153235988990679930871487162235473120855252362422590774782362045655007857523837744542181559699002615215551638567031689979046330657725198523996237388882316043427955451525351762853676098965784568258124400132094747942275564356396201615821511264524974662213345576711046282733568051222601423374160416554867205556742404417512978017043335521395597412576809369377227672345395119038903015089553535701901168112293515065733354124543164942407922081323364512731179810079826510620711654806949474097714310229574199381682619184395902094002022822839719018813834357314633804626024467848294380354986606303348963582986125800751143485839045275115871169567531806028349729663970951592177753523851753626683062834584835541409043625674784793245057028780882604918115781681965687111573440005199501464087497175666595525840914175185447649523231144577125488673656373437171066780126770120270377892312210767188256189506564744450516671039178007290302725367810241354773694784536756925691995405035203327672659441131012704238824641700201951320641825507109675726262461055570971202063067808110218227301976508361213800633288027725782074809221462732251978218581981997004660740155100646209377021821520223112396362172173254806499188902558428493266881668486703140631468135153785353387432419399120825955403273933447182083170822936528757416034206732608301016199625335853232965604039135609847331889365808010101699596049307330017327465401189672149383220640881342440614176935356750862371112396897339317077603226152513197863168273129154202720267988839962903110256023810039691462204295094524369001598716197484456511679582422470048473699861106917348252799898390358080821352859267673809337243455739090288858743536103613137074856835998415519590660257435711744452072721126513193745509446852383266976942752189408484818184037998843912110466424866794427690737647580118538443230076466954498969945787552492083841480237947576292211998729886541391876386226934868514398663201248873919734993275627202206417354183640765987773906185871922908713441544434876160037347763121337251948363484286932965132436577987477507570123877895395313735557826663957170572066220361998620816905429232421252244514552767232199342958108134398674538793229500765871965501699295109193870645193687354878757467176867093784186554820901733582460415998643587936397057288711799094276943306583802148730309396113766980039716899589390858263305353904694429393244886764304393476210235714954285148563123789222715914572947547306697747665156340686410309166086309509104344135710512380859002723563609756523669681877828112753275945831513487756851570288555523642661642035966001875033594692691275504718002208163840942896252179254295781849024173383617595833455096801676912648097823370328359991782163053735368367968321159209932271000210071087109266686817194820031322493609591326080619037464063065677265885101505147161530939882897544925927732086092259143357247632025957314948801236656157293273860910486709293331020072942436487690179549615711692342929953442310465271020047748827967512840080485284033617658388268244889704312843803233943825344585358765305670353297421505660355474930026612310165555570665153472602363879335889569697248125913993575709738628749658039604711225187640249613892540782176852731488881335025065883522976718662105768476498418341004331531253305092915938985868109573767491110196147659748389434246258209008685451010913393005695522303537695004611878730881387270385396217134143027530904112380754852754061281319774814750153788412815070118907683182858895210885739268548369562818280215573945586876778294679201528261259925774319694831757025864637189106631633261886375372757974750217306108324244129877202105166105656889606862330907821418817756084330744749752935233842218895228380605975069206927255829325117298208769857685798603799753267105672484898355985062249560154476852276976199787410574242676080366470300386122988631470472107110644326146416667758646392762700945410438715647132307171218022422857886987871643278371048277599903993199169299604193285610937829861019645904806143485886849621745237833378747043393705353089598399762110899091718191872914344680230081079347762215921659373567068785201067281567977589858090490805908507659441616904363904310457320186728349378221963965081323014017736123824293107768161273099256826764239101013229139916415300902030216594867680056290787941765416612800778347730874628275955492004800314483996197468688988483022052743124868000302048554114156187411022959050496886732566687986792385289465332378129502218295663126079890952846471908248914267327084586964021357560304982190716057889529523812719520727465763993823549610749486262359442885375325617377851391798523950601365306431999723133282135920850518723735463972078528230902013676210873977565814168867412176661164787378548544979350742216037985495000327336273028482965847639472210630643755851675826106890266676882855975971705251592946933031890096173818574230912750161566376706834928345687408061680548939805279381648524588286456317043600811986212650767471603550645018366185825123232121746284159236920778022012903745827626706286325912708835921490813350265433270084909400667079273235786505339083504191215914082494738867448149684075933766514239976741147145991813754893979225054095616135176794028643063858249880658301346483667402640763093963797461889482333212929548178345108914409766886183993069539344609012073392123024003220392452870133665605033553436158513809859904561008407994161475388371011705588561661939074181627905031971322441673377179609200451226891944882604999869399472935244949292296206637532570121117389314478792167770846680522161408329466617491756428384292944254531367511874306645815513377542890668906464465208186671373701606064592210655675738939758386814852307570464186412316024599034237722121250696033378066309468454771160737542762684924981395936474499712725997936327699631549101920263246341903091059958851600914421752779156926822224938604924998949487191458881977224275949530294328713532342455870071895714237131763504933815263581033019294543441030029735531538375584973931054108576228160848776515863839964693961851069951430354585895374531597792013631115936901597246083156379697149285294139950072715191777525218372808582177854464068117027771113093408005830784455448117024494789875129712975674567210391747093660583034024164101974275978819224351150867345101811588235805733364112304657221616368626220502123770279347334301425541087560244224871153427571471449208190893408317510787033882624977687039001477839103998032168771818250474242778783490089474326763425799115597926102402931696606785022149935896006120561530996953835403073868994264412669787233798754516136032109870638311694955738108366022786069125432955186588735452732773842534933227110732852111984842577125071625689542377893854545308528744338649116387656955015345553276846638720798480599961990877896105308348671690533153420916520493314766276972559848137407499308789410589848947427261949110273162080276918006541100277206007877992927143524575307332875426480051388248891285314811769967753544357322948028883948826000939218657182948956258375949401030784825500450974341861420281143827107454783553916401520180524017258150070114423757024922672430303289864149434111365481633275729059184362275117759336603568697020178976743548039200964674404579575467629662420068205331678816701536687244037677640877872224335222120199291374164555580769255049547496604108096338921938083705767730669986084475270672750175017741866238505472836720218635936527575618249948636073138310040220995310091449910723779369480780456878447165852723864113170003827081301298147999571415044715686822952198730445600879537290981730826840764551600649926926819796252131026995116181891843152404855180171545066000132695375350729294637234890334460835548668238938607825445463073165976069344470713880867836781478337905862175979733547501219653230263591582583166894910771356326371114071633964364337553245846294104823562922646510467810106189527262350253297849851490410501519318326347425174851268535367684987682052842351887199847511666587774123640611440208668347910465171094818510801853215855414552969721984093617309281673435321165745768478337472786897890027222628522145586635926445370036886625343035992073668186671666224998685519976792505161828736341106323211116424540981282112032411354937805700770207617609936514589167650755512178048326763054508645111408722214639866678056330168084790795144699003889115418787057037583673591462716691012883822959068487378822947329755228265381482960370395324945893803499805082289388049273377544533028655657024778001040918844100698034201145538661892860098004512310055514633336767462251906763938657073770628739890014939606888816376948902565712535784563022055357028927523622817847555000486783926942337352115743161942587860385272440020505882941156361469732051033741206083467550559081069495506862638531061870254779939609811587897523449935094555777091585805655921269389965423225562960518474939754236661910012957155236871910994862756361316127052882280976948052238098879703869824495116097998164424604162735235452827698446945673146876654001665458603200241558345900352607731537043957426501748377367119551399388851120231636486779932287422113178468595118398859688731782641559762524456837187418331877437625705457737023317693742919518213015389210822171186703605852883771656790861116581535826726115516360145455533485395951031491371106667845157355736973217652031957883434352426134877779500209735267322067632904092223795448479819586156402831066678966408254814911609174322120810226359442789688344303460358144217782818932001791967587144019469794700183803153797887459549561372037537127330754804151851416329623870306115876797613793630565038125932612549789591822884126446600210708598148901654678891313641427604707631333284601484393583273592854284072248547352535237825773322450603220482011445882757895315873899712319336161482199282310680996055417572293417497831382091967308506200450197850410171368952146848435241268754657794395969528501008683846363661507650370156884789170985079859702246203496377690431248490585528691131954777261959986893119659992547418254630400234098376464246594096910676208800861766714328957480410422087523843210006847117187419999767935205618978505165057655234595032461446902291748554656218792211455638985377261409233554891226215201539358903151422182418157439235580849334736408999486943487324571290338658944204240790062560753332062495177764213622001282819010120724940759100097794808856746726673828058254260542539990523141852520229588772096108270083016637890945354725301261838629554495627843933188200219530720721408892340434953085790873838471616926993661966275634506427611718067314998995152941189444521846068772898508982681367190013465458961404300761901849040015613241287499341359625265219755152002153117881026084788311057141365921151984363735011620694903796668990732153911647041394915816546659071443784579375848497456556743864264546443752328681107371377091947008662487612002488993189477922669859077028175722660446693469961872880721589455840078261902547756380494277239665396255453618059877575837102836154513591317496230997568272082724768986847854283296619771772275091956251759977582104086918956887041298296429491383731220502918009453669032657878357575414844233784611667556717447638490717879365458588000251944559189251853269867485564176811882035949850400050563251175614421104117247235267420972135042119881402936773310876204353707938157012604440775851634383545749937943758400892340557668933876197551941011462722780845887396582464465360260655272157336904254826689876748194564539167321417882765294485074723858673280247678049527456659765500195222336345847552722784377284180664914684393567231391724251180566869384834913615866818580206564325977794395616952334485890807931033623157333111912188619289449174416284651839659440084806684455159554156211131526831948616311516858832586531315172663479986894579865009456404824112190998747949238826767713710038063958106639416304245595467393674277603430035023055309047754421560880958985727740390821313991975564061434531658048987160797108377379900544537045527855430821191356601473718494850299630011718905816996864618487179757011149864079635547507602106590557855179648318577229386258631560710612528355153054456646147944656961811251058773417048313895543039001785212390224614406339063507824752853628626134508974490050343972673982196793002385035947315963372038356646838997223393698544122633699754289094572465878787901297322290354425821761655413431620700189539972270675784768255014612341137026458561517415298261692332436555897888422408638762626890233734797733577358253039360015651504750411332692288003468463876086501045651649762802661074260800226403443526101082298449678340685364690444198120786767541559078204738216709748981379098302330817303929692015900315277229885729708485979730959077269227108433152634450024111799834207517325865842543825432286372640853420751913455804096616208082775451622141459450716752176691529142286088087432152790129833356748096658080701316203790145735326494423615105234121051251370032223637897239626832239837344290559114876411452648962829117114162994483244598681657288131484510770519330964187355440209942237812568478744857428471386647908575374467424719902780903059241025995091136844287100248435420756140115708598034825173436279088561324329190113210213771359106213352883900359038672298891061820456358343022156305932402409447010374656486146888101919502911206598563887728960360581346498548025345405535794656518172768875929287789381674528789152117352808230395646363339832574871914744158484385105152787155423475550844582872732656557116993105158474491312826206988332568729220905605415895332985048688958876669739457047587128041573350558316714698885096422014945836800915682659596247172914668400290989592813406711822178331045695692430891472639439560651272778652318596815479624647767926734500843123399037629788621202729238230523760561178811276930124209864744241397094421238875850424868680276540371326062593986820054415257370233581595618508682060376796597188760189559141132126571725290150935983258482802925484517502061295872394797348450646636767793519493155844995432807087391352724708268156549249848095454969292974057861765165329164007598630094255181827453764701366796384087494241752831066576880632679629213274915355073883462306409518066265851155118870473160143977485172533705580979536434987420058206117680182206456695673415519636457919853902408645624617083500917249288599736651179149119467905037287428201840428629162831799316682061297403141902709559673236653055590973261012514756238467326200499820896317893537591766255342758234412074001237827302735437702840338075703169064738628482088625002815216946659351690445898966162773595738467128441707180776057116036131415566915322360081223727177999923880762040916132638906406848308391157835869805648658979259020268698911880486194111423738130734442463442027707968682608016968927629916049999402711830544463650110749028799165829129974293230297068277921276862593559153494443414075218046391380428237579610646756392392671093756321696826852380348094421602729301193682117469247320106220249345180585547344614129140581732079222349021666814991317955861974917003631948491104090879698983908456375896670330356845418181336599674976262522662209392065067362256123201688218731818914761610656867855526036084498491299826121299777752158708295527359510797286252817535017341785177988778219309858158524150303719676380927715953284099699485342692265825542217399680158663936545097577662868641020137726168985219889453264090814703116564361298623234862271237729762917883901213661174872770039821170782041642347638819722441449042066830857284187800582248844004189642296338745556187267700448209682089345849120567694893193199975538637700207019033452215579565885981512888570990018001739459469103495703128480604855762916338712460712527766086390780882810060787998527690080463218525834527359231626305892948779301780853411806248416653857078023368782282978362144983580252825729046446211146446858180242384174646742393051168865316481630930725621511119221227270432951728153728753960838557689582676525369503309392056796121904489737289723361064777175228700130762480437227856705314281529801588028332801433428171282961720758908044805624577183875392260491094681115451249626452374463796341854709761556957719834414303103088820664484204543639165496147219331100673105042351235814084869314733889136555053605198718194339692486102517140547651985390943029722880023558361419951018952123169570131193848431220070626860164304454150935088751080206228434483044122596834258127835325790094612609079698574538120147634509004757127557218295936362425062431201329362435842840141317256180325203753990644214717566624456047751405856276762708747855235312820938978232139178370325374640538910210284695038747321750776928899158478471580861966988950367086224435609582065071559455698168476993911913540016695998855622211346424576267935490494728842424474890659194909119204901004165460205945390088330636031200998310906384191437100746312802724768886652282567988339174894936804501534874202905467936635981136899124252788607347412830429646700268482853069662625784719471516679000609678929363166013197990321566977956486732537135056784751984652584708062538541408661325678801025730959690904951814293379400260191303492613858407930896516940251401085409449579152256695737439861041517671206015206601508531736769117184811592325446323362158829251066753749445770365949360086287446948022203587979001975117934388615166958419340730860182525174159727149255564468532597812439372299005856602408123940877713029667336399986000714051648048362490317328900394088972969853577686517710797322161661852764609339101906943391859261333591953100810762347870927998691285800271267169043178300290451179715281156034450273510608858259043881456486949550764120337771102506134690198871791065344490526131925703835185391923843056093311639468203525592830220865327081140457391048654993700340845217344939010148477763780233710301621536621397484709671776037619302742294026463520861997947738771149655219979962961779153233657335209433728882821974303061815518001695715539497994285986017980648523764996211632790106412416375535630119043310855815807855457579547775823465079133591735559873361575292456304139870065035243572026163739653321039599845062843007143524378996999428978411824327347596142952720045524825787691080928362327334374960694772348355768923733435801025499288207299955106496129680876052540877660028467587897652421608079474869112403315380021405722879548786910595669905717642723121692610363489698820784224032204807661500360647512624612140068427655284839983516758069093188332296112107702810877406701677866478424864994804768376541561686705667019641294929284025763660009598151853008407148126441683486766546113363059723142413907226602693878581561092085642452738886517724221291584351206028970950132976981616340005063612061954945508229651797802853761118120458092406854885562484500674614572731913344852009025653645248177420111642536875689312591696244179494829323207349378901785126290249829381376328507783335293920526734704763166871300294473923080135021203868584723800561137988373390524589548218540119307299649122154612641433051653511016294858992483633130796147654176193219187612940193470993030049535782350320079007065765490478915379726259108643294936798326523118418024010326833168318918927040459086441216252590381501791172272668800635898085283282521505944680882919177728955982841713236224183279584331471027046980454487271205348357340224991923143661171412064323152856329280365184995194423117454339201263173192545391594853789401967814693054547601052240071097163475752285539418844630961548370192578186445372897265689779672288172730678147545335055806507691076171318352894119710986999947625795733988727896257162567029835062320196835995012957003009486013949838967200290513667503930004526090893498487297226395042981390928691523554618764993339611975302092413429452169463141513464593423709356626980788240096786904031009597832631022420982423624263816526941346621323228055589236520247719241907371644903683340119933658520236437326388243315600331030697594307276705707840858795818547137584615573459126010023703209876274851970869034619218959634986804855205877229361758195964840649964396008600179353519218117471826260042709632863313869231058822885315740813322197252590315220996124812496327202308133233076382211875923726640036898188106907289995953023387381904278515507096461668838107475306061280415493309195581723029244213991745725155225010074822358727469148735450559299977375691758946902766033229537787588898743637506521541243280707841595888307301963748709196257942722498730143725380009179516305905186085266344145223013916594865423069555220224635451826180684621196623369974589216728523407829731294891004005556674447749158395308650367055516262734797392911076307947012184988540308504031757002266990462223980669897206955827248291633460707058315857887731942605120700913494001709508172429303546172080688011931894151224362778944702472734957297922863342292727839128762462895756363642447092032200468817577168646382475112664267984391087753109053424036548753081366942337321656604602305385238222978467281431227393103268566919496025162544919881830475810461947483575619871112854873791684735225608988448828638268170570133994298504654059436700725011671912322714538721769263623933350435063305802284918317957518152642593084618654407715758668227123550985333005525982415817888103314557578050718430333878157522273833875262292530353450270769155700497513383649485368015874368587257992433567413419870198812311404898218978308531375402558260350557340555021042795107090382715762558282036739981830817378707461531101501376876859552387261577353264047943034334720598475795010166458374271371557963116295260863080822287349120236872979754923479271706027001500714561958091576495729159254156488935882812182991411998824122091611598028990184834599356572571665322561765347448037817355338581932691489097921986514369013352376402441377071843475036710278383404780048252120712427525843500460325052926264977632854914632474045364665568161591103999589673511902201492957021563162191268260212299809873279909804650419287430215399674418132633138189454915029904679868385349888280081912569061760356313964878073379002962082590846542878334778236411761705172646189692984177691872499972707870344906577179203652997583487567030800897847514544995153944552008230553422532940047840273681795239777080785957669494585559004534920585314347984450134513922567818528136372082268664847469101851476010771632678389463029850763922491380764420133717257874510567052360989302378424890788950899984664708749636309384304412608770695442334951693225686294868604400921593611641549755580840218783182404105720725093371540804509252461739495221855649625591977088809097319187324193422418582591966461874837750639802158709376307008083619140707064400571272406478401173676987194250864095452555919571187065220861237317800803753640655475078519963658035488067277295245897268735111429716611962482441800897831158015535633437717919350692144793130467945832841368481732653124140345555382289059282081176008258301809398305996339092999478902549661377577628524022380263534643956281012587944729131429129143179791107685884703845416964329167387826590697448222815862756257403996189221988238630881818979928478918814330875528253828852128122540838913736733807137820003492136545996672639934422900137588573325335327961098748091713765457989049461832293153468065084087193850702503962602372451187274322806046413782765815213439721074309163955818017561717342101991688165524243686271908965326728290521460548313280165997240359651955595468384661099017750748007300793789710071432044408770371438679388548634954543387154103557975727801167124047172503866925286214914865905392772339565668958544516700306841557247906273965173102927017883779630244387023098635352549681407530448887985471920572163323096781585127526062225266770746978393308038656484900616116295152233761598965242735209171373830014103382706216011138642961751698146097934501137384917224995323319394738710758775672510983386713336244854880374276093513527211058632575753777271086524261617756319356938559237879085197992692997591365865961640766612824635520920552882437182375981722022164084750597260132078557871826416812102165595462705649628064007015578780976894846273025591914439148484872391093383353460867780711318325150449460458129965579147096421287269519232492524874544146858098201429486982790574274698530611181337079047772847802507754183949447015972124234201427979020999743544673490417359263942728446061292998324181180936588192550713794254291177441538965171144640460218353193817051332674024348581573368596731793253029337979649717585193102126615871517945247943071669234425747205216704103028564275844020077379087424907233789317993357532424138406276670585863588573412253115544020975047185170579515794223556916888111656589817988681686337247472869310626149250522823963061435223655462210645833772584070977568335569455429353041822017234610027273395994885521089430374236810112185201440639329156749243765403305909393492153250553309682321014583803688197634889633283754041647370208065834724919003726291244680740866803215774625842529651774881112847185280183574287514974841027671358197091838203369011390667886623503853929663642161718668542581863939766269208014507258360914489751449805556802724040607001526096363097104947207852332124953602474341012456286346887219678565194592337703746937767946987155765213008384345850282525623483752976207576154509005260132836525729621497977932078775328163724876056502918306861606536288119418021097290797956557168346753284947806707390261503047045479106501884750194162799988918671577169315078379543909289004587438822089488629969913057600799811343130175504217962333270755584317684087491314510343706780692695172614709667376899691138413863962346603279346358748803643571608758440440782823567698192627916642884062864785422365444132600874691697039479340156137129029096552407276445516911284863204553197917650848337919024052522672793311524994669238594417067812573332599857978119077338245837803835826918681027910734366120344060051552988494237022700824153043379365444180882441267866067820560909099532064552988384157014736867326117081489739597237932720577917010485148322477599765998805686256800593012890419756427279452441060382182741909070769884183157631437813247168544557350347706380524894124562661382241607850459115209387523429075728212342185150257076016454764770920611543843848375715608430066331429093062705547107167209042760734274761568540460525911518414748031415312723291620469061489913772323032326054389193041332785695197376579036157139539871136677420102366646768322001356335256223286110203113751096092295775093880441842458941883088505366517103764935690798576456248428540039628876507388480310534429936869134414759819921494309080007602718717321579708729979685403497712028322542635608108160662208753153417604569657646457061285770731105189816331634412611565752742662667420756064714959619463122330014805348504559005110168756260678666590764707276976858804188572940941999510971372335831141460122227491762017861892481821779939126748280599572016956178083622289421955779294784509365430324704030566545448391697240024283343859155939165828003787810099221722122313704918098944151469981762890566942300089156641338145633657019201012055096149941872063354183560492751544923142119003335408873260245654308106038363663203295403321038784585522219241725263020713822958134558384799853166968899334839207792496294266540446127240422913935334846772021684954859753116065576344307247519744565981590080427093567233438292762991880725643396368477635109116137786925865776716268837084530700793966867397228134402945797208159689620685066950007882926269696284233045896121073805503213310213192422820609815805247678375367616941577021549904292998868938335538827718200512302875055995205801983161440438549511028117715930102924790059437586648310289270145343844060361881045784538210121424161402925515957904718886713121461145437391446553883255162341326938538881623759030098053530676077494990411339492735819730442402444595523325211412520997092769626754616513988311632645525703299958667314994603206080628597140080377514952009948325254220735767680275041332089056770116862715858388501210683988357613645019060525370827149166434351346177536840496399487765038483491639282461922368197832519587959140236425370510929749558704357632354765239854572380398314406330149481288471135610382760055288672981753549711057624646150892912091469819624464754290397791806766909170922830469760940963402275717795645829021589484379955831826709009717455476541848934029369855330787307608007993467022533685835945371761448496028392515529639504632055263767852972496505300069551322791223947252582891019033409804956050943286904745337391635735561336770977972102570474024521142369164768753145037721069574571952651203558314001202107621047311817062627855896034000315982092177365398797681956163250717784294093786012548112212376863599860095775332573504766080489039851647168466055807496558715272622723177333507025681065583217538273559840538097619079021032694040965376875253299494690952553651495540099554625699610526901467792291112970403734452596818159136120331059441317510376809773882938884894025937891219900289606267617811060083535887722017363252963503375312575548410153404142324102044937782585208086014107619129310592570190275553170462253599623538726346799217208156787810738720201035155761461926077456808951949110196265489138416651166274195571786948488900315400691417345840329662932732583118391973723314231458988523565308223060424105125772257425426378551753348584546017877517917342274297739047733830553830056075399516745383427092741382453240099855957215331913945104372404620353887472253084589006994262909022250679850595584272301045696000941668769581459137934651666608714440179372439096045297670377053493673666029020162492944920299460338929297836993146714194461909618031185447059748287105685819535427467172307757451083754635447870151708962034345244433393495980849807287079914644882356578501820956265228533662018537955921908007623928567414152002777013088597400690685225767783581019823185740477096874594879414392792552686182585781176218260444955992904152148019306522046544375575671077754431325201542978536447213276360680277568028278439217604446499446490167810961076364666019944207659268423391306491005109624627911244262249778079364398558070157853903119488444672925893436201283423649674184239247191547568450426404057177530074575456383725915051130618747085521833396099462267296309164313625731550588699481259047039379344681305017901978656804701526182712076365143564081211556403806701461269389157599944944685746612747171918702974609590660523712766209568557485184305856308259426686490367634241045847067888121202261596665815271534321446212327711231353995090307220648119193387005400498849073305624633477730432074095710333440196381811140425057338047071968038796297603511989814432810790105379652805113150864362533877984996537737569012267133803024229921285357739571071598041078703769833327043370636873796292539516970622821481142395050180794383576508338445536513278315894614885113824101945567828786165262088665418127944947006283790174583016834256657984481097632725985818222014771996799376907294163994610383126240697211960202411588379905570414939863576705780291875789771842693335773711765669999312445941011416463999817947281759026243668920483970260510224422449314374977516607342511048720902644328080113817223586378578993463846919101397711826106617503461535553622293737448195144968411302870814489534921040625271465806447954136946709028906019448187496438467428678160084547737074677411611189099240516513667928304010052255678385431827835878850487291139567406324093250675943416720602309823054741530590790937656861975214886450664679466459425569576288134975646057028219427952719619885958533438915661059438467654959249382919603363050737119895599283823686500534145268151267316008239208290470489603304736335882565858137388204193311043636429337957961873034434151747963255090518645194282422343599047573010151072629038089934068681585211019259928695424435880503827428731230466508861387819513350324988337825111060545386609299748711267109492363532279484411440116893409332424224246537059949732013913277482343114462430915883832079698631288767613477292825162180436989026995064962739302534339276679809453637041094131818835802263338655511364269356027836908111026353661084618641508838624589466756138374240691677451706977000824877950121327258202329033249708883124253697759561390281604335973400301835341873210039876119495333283743588204659621146194445159891882697943243627818240462157881200382796509206308519986827775429529835954150226689632759304209689144812841175645695777888710565558731961447499503474807714196187108053209674244284843557556342239799196531409357275945195269321065003764634198216999994496871196503782422091086026478712381905974334554774027667990951774884678215975216047385657882462672925157963842583170352852855130600508335091049367140276815746989312879661350344935922214357753032774198108826180469744804591441994247683882471124358204531069807927881643653489642773878846836884209719039946417640692872681508976616154100378524600054286857829855650002669424456488924755604048456715422102216046896058289870698156363594959064756021493635701548551492813199905076305355627842636270268988517111038120164210193172892747894184728947493949152621504208501557509898268550535587087264225395882667245190328270125434971961173152450485495488953457290145565271805601291708676640291812909178708349982062438961248230025042821030447535600980359103672466664849696799855076512581901384671319291001753269454453311951584813262180307228688843928329877441854394783467568452021039679518203587630755440197449707124529078500080616895986945410492646413020712903002219740588283931862075583104619506479201923220603516636631173986075824531301544015832644855610108565668017525572819929663233053210490827049748317221187775528120084539858594361889652946212812212112661443670498973109571626377133839005844962671823947155354166355945753728097766209922189233486961116233111346010484412768198598354862182088585568421263937458911054851507159036706048720722254537716372165679628396590702671402859990871981424405793910591903035651084719791188069423560942203468122087700833474078843162756599678011353623631717933529105592018335831156367623844825777898890032244931220989143634447174413811611298720505333049909498094284673802613294696869756491065316904622476656170064251805597271162757906093825978068566479348441634975628842438439283487180006356173355566036289763571087250543761680730457722936179389179233605221804893092167413199395911443724906785986977433265955389684974704507329404578424856228618610237817716316499053603034811296120627494420065292176470925369024067971290728846086486676844492824390184597912994369745430028879911843978294377317660779331291979486159632086874524941019770112384221017888112540389707186038049975181924024972822647431214052975469021340343179477883213973631474522915660227522033248651788227863995812204502705049069781860502608427750449419332538970939360824583533265862293045444395808638126333009066049614099850674996607851304455001601442534701040581514719995066025822827961665766278791252731631457611932147517788476718927802951730999704989454879625199845634057295004507740110313292282192982394616558250467241930025720326449093244940200477886348648378744136768629442008692804727950612533102244982537351555010005710908031870269255194096878036594654596940918004056446718151775509444340692756506558685513365711531511204130556018554418026292971899022841734752533372005534501167586026463673380749281774625463857509876040715291924409012003427242149545932660504825214314602609286634486131894044939976464277909878267300028630066366966317036864129869832981904274998996639524641047247450590409743378134309405341053636993939813938501260745336609204938635745000654393164656880844531441142872078766669330956091226189306118661008612454340271105133581925245256235094088243573218090279512315449858888065336184168617700857368210775881161135877552246220659328891826551349727975008008965483495793169766979365506887907338710551344507135655321606521119548016051327694438518981995550988974476918147421707839049329943984553984052848929030559937036302454498272060784883107662417715497891218273473817444495547182825520723762174593319228668072157965585018785787698329204394390562196892750571284334300378930928526697936527399667929690252819016159701707974179024966221441521397677750445026034254790599271213658338788702165912444643677700485640623110525855843612134094121524271188675767099348111635993492310853999852240772322288433489062755952645439045095715226754459019538951328702248596207374201556806524002624418301136767421791325468997535320364742979166493005630500014270828292838235185348172195583587380708766236649922265389057005786654799427878180101688416717262759726888518510570208666313903073937827341171281391806023498704046255270990858671714026755154241443565751627253939200315050348146567695195257525329497754755089358890381645842924570892870437390044063930459206604603152672582030011529901778531838804764313179631114035847978251456031144920191547805405382263953014805743039090875626957127368377462662966768959163494188363757018419201440870969876957894861609038188061200780742632914554674276483994044451685697227542266612799349387802412204998157796397181353153078082926974803638742999128172975024995519777174338003051959075043691220186584775929706257486075536104605063357330731323019734368182887172927965743759548680684017785606863980028425675855069230685918322621351536002165727149463752383593749180835195986303877809611437053317079601820745081999302595550362250213144112206745765110220324278297584621810111162183294637535336896493480413850613731910167098765596862044347662862163446227756740492150817375988557278136482921460461356436356623106844517734587928511867584471487987181767157903237398992836777174851333318665760068681754638701555028048332444015909320053380410578234077711849608358329514107789527355247895606566898343489327443318710492932315533501979590743623959548927589733977767689355424012836733995588443412083806399749107945912484305369890825080074752682854007677872721820826724920209820630614653780587042095118819488075056360297382333909376831745784973038667110281683811817421255787795198980657197715537300731780005508786881286274033613284642233509172084111514238800829831453829750325570558648765093748168907846685962338419019938616665668621525764290769688058932485224126024394855622860243410132975031828166740047631708543771093440218557689834983097875032346809069631073034804858594634033990860814522846573513282640950095300122541653043824305570797864450864352232316370729374631453938930826117357019233065240912360881771402919680415360826149038014539187058408974150648668212535786158747646042110414741845847258194495686071291057775464928246876827302348044322001432627072337622825949100545056055081887988250908308535270220016532051402238385676348372769571806982236493952703392762906488577088537241638612780842575768916046488277201082812264026104482888759943783804713602842313136903062978460559172773089085093091013449849443841688875088517125523971461957506046061422463123234082667048776340913572285488244344712625462479652829536120498820980168287451420345444984832965168159133587858321258025439903806820770768353889827457668558446971686434041601341964985773455569119974857723819490184643495342351555321171367049779536596731994934223487173492283414097663411084869602056554191875239821509158036110379754266743985055709955316840816676227990727174983981899607497476736464231077574928397852231879848476773625828161717041265326921648352932073805205246485068030808476481861453029448247058583089554039689789155968234855476478272808049291883589233035494182316038223250999219312151089679188100972109379652799692162409174723649027805533193051214076325188459309821585170320696013472515414074194398426976795392463162900690313199552317025186409941661664647723210954216816311415347483854147882470927767283618217620289033112020399584283694477547162586564384588489278348118239276386992456628634138731882173701355224600148330583301464579402066473160732317907765817982662903677285640090977256264445268909639309361210502192855849048183696067536375480368368490148812685505957108033333861337149483126458835178269167309433295403884981560466584394127164624311252037141393056243462194066625288388512820419344757326447212646691544949551335989500039761511809520673523198034155577031438902523165253900720461667598133222838127332539636678565863602620386730879669409714533291783860208791796881761523521335094485037780987788739881050584397519499004939162254170652743514201127062723091813894877359273647149668965610932244100457221528191005600973194443549530951240916850447712590596916766699112599089923113965033443459419431653278973800723894877242967952330751946855689919132766724921885188359894936735627119443337222292984319400331124267800831225130768750663429982314145927125198066757620673573856120821224728410034370930357103544658626638723177210017824499632948457095764813921006938574370233794382720296075950083455437407177562780440147294338313296861179772194546461986520692337430231723674082678335653916474730034192063189643713757370277413212480875168656402109655798873122150175672620409986901781712950051174280320042623443138548783810400185170944032227301417826901568024782446515104935446078608746576536985386101773858201779039528796040268918141429795066093658529231961760438495265398782088066395548707158326009764140061762654083069533470520501553803943578937853135836957310385782481719311801243557194778092811290439297924206371057762143082395711342589234937326210210373636220268403970741955354482653111747235832864010063941769224957568097864563085918955641029513301265861736653818079854639581807512140027772349985002407395132462527562263702256140255987279406400875187175912776864396374640879209785405434916003082253715118154087202075298968960637010529521157117248312598761139923926643418279829558651301906238115446434660808811474929986839884758845064123915336629236639600268378386533727520965945343629972726848368201442812391858895604445213243975012245659703144701563124985254101271990102905418454884051823438071991552971475944197581158494364806447836461372294333381165439698299342230348350737331190056689932134507659545882433934283046962357420768481340377610126264680264773552545719871936169963184750500560606213202340814092903332205959345419533509941899913008418991448935296285997423065018313096375771813117298586912075137838398172814084638083617640127678150176789449115281292335266038544193524208566868603478709442266553250616186342296948341957444785070822400019194879423061999105393668392355050535905123402896870169086856041660220886768597123211076456038265023924684371803029624683578867616839163060357451464602057093892183663051284932565950933208836447293174859166122715752684061016314141044305835524544702179386193034184369457834800272835983560825889611354696695982924453979669545596149494001859407905216978246021386322940272167713905417982691081893320058879086635171226829104915670428567948839006629573088384783600417036356882075084269807990561320603631667010595694484764813315756551213754453092439506757391174320519533796718950914624377368080533586000858900640337348152973952760120449288577183958173285817649273749167509739604567965991780101362479137543932634296442355509191737235991948711990777097766115757455953646142496306004631839724215973027238146323638847523218355033926355894054936257108950230926679301643622515436338526295514127214079053329271153757218510769265586284924107328805971345040810315042970705854894331604474343397843628989231232052599966630086532850863864761968551261951358375728427981830616701904144442139031878084330021364981380754988831712332035518862520132751551959817317873009478703619050045910051494976534565086012763798863630159287173101108512731204783818970012791271720310721289029617242143840087944016889784381767152951809525544266607932098062439308063666515467216152102328205076284279373191915938840730743254581382451206359983336393959684487596486862923811377121559337371514164654327506457421689741842643369653869483700538386353655384064872011221983167660007374262812056906539520733027650891781551819283968506245391311484550812585803138428876201779619398513148144272480830478402545390013213024075532608765959390938746040393015266937892002215013556831286995298679811475413231391230716596587128623492093371476579274947987672340635575501409203434062395816722221221350464646122916522974264029621192597379990880897872739060715177100422471185996299267995304467715516776228531613588845874982466615293685657421972563813366545397081062843875977853423506999759996243716140813050770918960134823969031644250447314449094627175088167450076533026052065779234543510596256134204630680623625826502821741803518179895234400608529371395142198986535532854389892991298719947902042975848207910851979163327124282070983731368447771478938742983670551737064465792630594500644991662545041295916784552505406658348104891980442857711866634535191162965578896827763077507699656299658158226990708620079571973857140543728774058451963964236300924964147908038685833248576410388541301623032145901218325232995917375643645432306836451703304063046445385338389768127034726368745855436572412563464310117236375147108554509517591720578136121526124391965214734716238496868395600213477131615721948741610563389271202165479671869341883520645218939029471303292749642248910675799396804527850312633037204921007639351557693158277321612154341039664289900028868064617479956673981930008197541073433698267596695358634909157554416545717217114599854122208836570513275681743610472576192282886549618709183551052560468610559262161150767087551581508833820441106068343327545921058813187205013404429425543755144963143112039417711536383711877717697283692727663938875984334930599590859173041109926777493612707048512137865568613827592998284841568167698501800770505197681697265790306571737595477954272351401602870675054923391045957197906312160008918320095877307122697281901960445035297848764893366697472716517618429509184277245348495871648628707507663180718686549877577145047337960242006341879142013130012570162633469028864051709164849620574288883441321256905784978517974751374091791395194294050314266764801957495076245100448151993210050097321560863985708454562914413341803170877670903930275883306497318037968454228569694781821405134073998675106210109975968083874066635341936276049073699241070004801398921300620371754924933921839229299435100068439376507175540239050890511750979378898933123906408433262816785321248644715941669453436319176365197382655252641184284983192444720218336781527768364868243176596201353519442642106678339035316662866944362777008270420593736670762138118321086507018963235007876385607186065516091905164773272816030758641794090650221841563243074608646507922885480227040170764542694307790471736807455959642569617551128127387799002567504593577939442145240617939543231521605539984651602248400880467488828067477488643540230951884724058351202171798431307445956388835649732623943539263924676440960655368166283199817266933617415492916204333020430785066463728739481470869765297623780658354113347478767565793224207118959740189619432176087759550687459281419988941866622710177624297906615110178008179781503004016888265230777681049778477436428447673574088673470345707403249808380777145216372009942783583843185217286690684269085317323472416046599909880818043245251804496153213053965107244148137055720773376927036341610959881689756448652965863433183019250588432319873834625746510066461972096155763023743224674413589973624238110123276003508063293350418410482462888370558840846092881168228459644501978399888154580018089447807042336215794135283018954346508617962318726647492859940888883253939225192378201483454556691839907934876049925706281679657320004417517989464545739825689586087501107684242411011860330706500991299070080939768475011840556578926708351150456251618590397050486794597150268518415876139592062415559624075306962481122648406672397467999832392140851099521653370989949361255347310447984244243984119736636332641909453785365540579200926275394576503266897469638865470776230344785792509278727922814803808705696809891899714494687513226325180816059514078799841385444172272687258839629115303977834968609318522948515344080973308299646661587978478245959395191114564129203896251738153299519394166363291700114046607719723910024880452961102477168271339491700375243304151639226017116730165786594324922098215719157104466398373644509782380037902063663350616343950944449730007884045126743433838699248554762680559264315688477358414382773243890793199133699664514331970082788355460638585309513770163510256773607688776052825451846151219809418875804519087140072179747103905936243574660416966702085568570639925839672804862985319348103692869854279751626697139041853315890585451219267704663472582140742389132559898520465123790461170333884341330670505906257426350150905096324202204201317962213575755798354991211800984917981883899653485660752967033285024641205477573226722562293914550716238639687338023264547703849868798916575339271257155128325196655907364382181312644916590188569808695672590313791056498980965175900325139124000824832809124108667314071045882067767058910118081993550830921589424158748787011303061595485918321033810229085623013584594305492415383267382562413698942813597802466479854964965172036074332762176686526735963360366258618230041214205392827594066462174995458195973999179687789197271655555730085544132313415171002968661036016336312163473206405632252279303268214919252666367446553189981967181566574788413777677518060123908513419495890411795086690370364920817829431883289407231498087284293085691973659484483900184482920528540170537573052007753229906020959588463783650642487167014578236944427788785237331183671066926703296624917019395357892622951561915061042244271420110737237660769502419328086089472942618280523241544922874679721035603352634013900208845497293861596691046867650726630021158005411285873359246419569041408548409832964379429882406110419490395542548673515909234770883815063533516535857537897815128958330475242476363949541740513468926270649241790218777098508750112768768267646952304631552995444561869096201889181651186675565678602374528381317668448699778248531428604014710729172369611803785159158888196878063683551017611106360493259785971927107522236825724220551189473999685296785497069345291488463178637136451665227552382497054892713130413996747679850085261183026072015111017871453192428249121502690809712146207458982586312907963474414060659515255230304541749002281878245742718392050231759585839650768678780551399015894104406080392139630050980914133463074285038165702037894746703542292159629896600448199301368029993193743476271405073374075450052335223495780176470997507480169691691076206157505612425588859363566022574609576279817999715894408708866697204277697423950381203742555257492637594605486990996769331210870373530874985567519486658958855360610294901808993148851926002693341380934963807354490007033890735588805433848041268866770250787944836147403983061341391358207265862679206065418957051416000189355767657583546467244341846416797329586191170212723942103436040088697617750697009900434955212507563556777096446888824860586402815803560273094680553706018998479036800293260425589505308405518046902811421310941311516038367525311303330561141673731417458103682140315431793127558812553262623656043226916323001416260527567189332197504413809306512979608539251369946303041605631602139920175106569909234676243112157842934722897662443560379036585036526827509185256337469365459291383986777727549226887343456874787147192090966115946116494098995809857735260968671552599592614005736320264561965400280124000963327554245549570753687584341871216629440063557029899395751890200184377896127246951125821480735610725961730563568755965300016392276677030424080169094999503873275414620855598054451845106616931057258503064668288704833545914547182071151880193462111624743545740273247285599924323214830713432408078214244301959290252649981894120987048777827301876509425123047881521914275979493041834424125659683894848824331664610927249363639699227692709222138784169904051712265589169716675103609388631752437158738676534731179206997372835933896773849198873755571486553048553059086669500003482622897825496907245643181462656196221193665473533268767100197793385281347389015091169151649041685265168558667262502683698459897713111871883633142996376049590599371302177700821278824862809757584550686964789499180668357037073924955811968782883515077147918092932965745891171372490356815591495736088249181152775448666653020334581624177840814439013217516746944605882279842913352375329250201794706580446812440471624191361417498068462623696082683308270236596278883882837760642613113191812174811703044891557900319978587707728479955922222187870685993700392291679304405285046967290938020263453404434245502452511087947734859168986122713579643081332532290065274527685783113483193115909196674447460614002729936275457617526417558526608864136445029392821592516434617709558234950107103782868279507089847404198099837597782924938407694450252570464656065336374542595969172572770204983982159399733951157745397450756251094482467669667213654390629715543859240451292617279811889720572554731798657221161067580945290217179423868690729589875919353248076678040461254258585047443149411396521784590733460868444965807823680655813908967986048425101834630599481224449000613167480256287689723461862519032344478504153472543180636374157170260106346704708358763658444694888138534761667444111517007436940462656187472264171960705433658498733377583644023254445978233420766707630241585279088335163364939182954601635975982968855895713435086233325423244319439899568581350429613534470707368795900140544559831993377032708204269337273002617760273491258395316996649172928944797061673055794599516468676892285059232117697189219233354645280508722775883161931005386665413274880603477399239341887624481127672591263623616303592176408884042091016905312276695969831022570554147701556015188031435347183632479364352003533988305679952199125114935993176354125875797978664753609664965857135222436453615436050919096667143129439988212980772346336617797141538872819337852432823848431305742452881067744113138893374888948994650547405058796788418551464472184656217624165404840611759156859293862896326341719077834409818648361476501559817943969748409135071713211655937736481291068793074283235273988183584419555415550249210186247203548261371290452379041388424235297046543090175710155946664343314898936064917907126935842581829925941431064504586518990980759399466551635690865242210428600496714254035956857473698260781602685652805140235844080135158879901808476577560911949461811290555642584357383455553371365926842306850305451774188168896129181789245060799278003827204181450269561410078786595050674998757061636859408979754964698184670782159636111710419783005706211584247819755635135908999315365824551565503041776991517689475859588413988721355911398306753129931413613945001353263621037235869071927718524639408983984262701694827939737163706797810769923885584089217225746692117208870770166353812436060401949963192571913721400566191576473706586635958837657488094876016478216613287906575466049174442978856685097593101154362778647676051211328948433964983391097216841256694637022010572673993431221199653465911512243002264584586879907847594661387667458302863041541490657093834558328946234828253975957503412900586271127111843038667351407226247670197584721163821758184743559991164877378877638933336690675662293541725149381526418974126364146618477229241907387420256505651904033787501895471127004492558230119046030979375029664090089563529940416773837629618707442479781453699977558205604306933716750563881303888437072545542668358290681675309538453169831582681611017052275487164604736042955165888345489195627075848575544548002773788684092478560884382904102881626320574442292049284662440516478134430226559937783987226625840654512159342215797382805656664639745819961518387734886826825241845302872037911072286236424815089581970914292484807306594570670365947877179750572081416592849638540696880113718156032969780517953532612508725605437555972052772966593658404587040745226868663754255092881435397349841418603215416452531453054478126311806504252341752512681159955291906481343148117503749729775643511747067871238063585194202400324306552098172113057718567910046947967487614033675848678486870949403905993956947551455746933446266208548978304379540792164208005293738900941179912104832675028086102856597253645246790051617486297800902589581103175176798466673307166280066260876787644054371047955018912252627495371798003277669339029817574099720258813587813858234315573671751282823194953353283762829554319987106909705293762496117249907019104432301212955669516644449993927429398572456037610277988915340059759043014806300502203238985432299252893771507952898051055655312270336672112252354480989082069113290200024755598823004594873751721125007131361481530461532625892243017596203424753346372648147151261948770356487629686301781209751863856269668882301857680325576389479002422973824635829119667559711153905910251123781519134037797113339437900160316705711962924073068524605565517163188157349813588310900429248936492640453147248290755998855926938275098781184851924087247894311430496621478458696444735309191718965451571028038988565750160770927231982789937694438884392030990049487539352240795509020755017378150963710940565536830746274402731016004276045955125485518901390311662545151799646320551847116889963054818054458179806297003312971304488255589699081737737832569759780049025151633954308184117315728146917516324269427454208822350247258093893029696438917338002017844913815703328814876222305924617138730239434269922572898303307558873163073085817354556112977081176152411747499774763766097369932583430568769947346242252966635932849208942961656120201623095412916383461498988706310589219350481077861906662997137823125897689249834029941744750090879186983643610596673913917494614163171240447387348751080319328426541699483306173093147164816648842909845180901777904998457788950267494656966508420427976639854810923645811877417693546994377814920597905460131224831731863923928036345704936999598841959943839422348079633721081603557469586860050681421601213232584904834853875707860430056571987189715917547912224058567147730860043739683335814224026189227688140994529443514228769380089404230772084716493635129277309470033246095307250598997317091316014462660739303850627976079553025956948119417877509704315116748764091121440298489059937360828483054107527024343689244522506979723002932762657352737880363144678497984235579953233289738793265845617260471152377585487553421356718967109211382328136097012478036424820698213276730082177606152181506165809513367771840446162920471080250752273645221845337384092513114075141378499004174993157330419096614177131045324509525179897974127014665485165314106448951068941768283990398492152127762091815267300287440820035432164491057715555979250245021751915114903581687760468863114667094054978376730658880719354537678583245714296975744409545079537142847975484320019246300551794453945488748430846721600453906753374258569756605752473175753838571597036209363504798497069654681195799295342747602164974989550239010741495948874653297347065277196205096359486803277567190938920319692010528988659277701435501850713278474240984121834223703533914638186580668053428153971642994031082127771109364009347197581384842712199217695668407171050274245830844469835958585753479502357469307931331971725393816161004922164572375519370743076162450437866147892473971244351478744995629054335676378194479242364209596178982674656611378990215870990634090078234967658591567808347419965120550543621006731663633530135868777549564752257834813306478842612846613097310370554775138647354785190190961300069458348914349349360977482074180600826942338243127270726963590973069151444127744042289569718484321949572517055621448231598155235973743503904165480444580402712267941522046330044933436656156653696178731672236701382850852723187469567921665483812387010068644916552260370679368899861080983436521985259064915435008524947671408399155144484709774769785043802093275754567109702170570053542254651875963186131159923966622332594217597184384753855104934966856594315950541919919188093801461100185568708136001177152780769668051610405151793736690186417096692128156485597608350737387520822769368603397257650458581224859317163709657114886519795999070404196518002278576395109238455692591679568113152805196585218844351810385007645925792386896680605550160756462423919251388591829973233608664262953190882935168120242499583022520523236910749013972396553045138582900117834987531071341515272553870922239175889527525680588924238502728421445373838765087452257304184867933618502918604289417616506434691033547860084756955003331269682601289155125167556458861933904309673181745546782655052776833696630407094410253135516542057970101143491504926898046113207017162149246071939210456383936187314252239353575298153590859521050063333384764429700447695865210117145957450649943598717265930275898367005795796493915415367207504383911862341159526294355997085535329025777961703740537352168177453399406344496180620994222091577587996250726453567962731016654852349297937630775795510233258703023306866425791527840156270620124918673467677864787867914662314478904612621820435165492967263318483800805366389128295896729053518845422604854107657821534187080830110025421523186410711500340916038233410715612195852993302330579713742482755428222013632220376054445181214282457684591312496513306712714508381925940532118690584645473008935043046378607883274356720696243893006349620992205897243095539043946364562935954638289554963182065333956195302618877756904780476883101091700221776340205800107686700717729581759869802536162059261416254019730977945610350899543908912111458080232546985992770987140189647367115396194673544228112903459618928714647764833519979546906855603968508036781509794653251633484953833853251225096558790569418729443755363660328185156052709560005938917378868247646661787516756699354322071457652446798801552036046109983589101999698980026239008028551370655894971959507267053597221969624772359764380812880070729876225052278695060731793934149376083995678984773243822048119540372794103321954701037494691867999737942098946644969663173365921275175986351544599047478940154828796374981709981481236996451596119635162828231394578608805781585740734871618641588315041430087499705768835458205424747658640590987814647793078925274832113044456209555747568719810487021654738178806389555906757437315131551215009005630421581314600133474554476266298169799930755939256240022315397263706210043736448393081855810325312425415872110088268300344745992237729606234305457495718823666014023585678423837429839633174701973427436220658670971083146273419281142444869924443891116276172781779660170651778824364467072069190483150896789086743023093257198006483667784371287648425820232838346602687433587516408788594949745556121087056439873848058435229144273983251944120933396194544123940389956546519551922887435799883777177802747833597554979692332495671147897224025214515621160274107064607443449697981802575280893839500378133104318448325814004048145606805011920439064977601114676889997955348218759197395940166587518462264254068212705155928877200681606691058938207713549715716844947678558531726208082683663085601668201831042258632479161712317333525428900427612708446492361729588932430963498926890925419331932666414206354046488970302331769058473303757382663746894176091330334717459649827840421694350353208765503971951531089644529643795361532184726712066020137873653819627459769814404466237929548511391265751394092930934035074609509962366476587997597833134140363733114874388849747077312647514802127480326136832310625967283740122771080298648831565852464377539447410928054304666143251948480728829007207240918245457886730652306603297411829255762192037866084312932653144592198843884383115512306610367249368359637175119467912561466266885604889116525436076724092663630432157964135464099690274818313240810302475841022564253414317089595612312804597284664458694204872648732499635907383156993369630941568080394678093677423252907521793763116386397857287041515519772587162741391580868758651343329512846000361990606612695280295857026625312303940997676976060721202632909258791797960172847942813566518872602003335416202592706795160289290362787577229363948609197077621336096023500828122721429757498985026486967251030119584322901031416831829872936238009800922994285333312193307388160946189516212764838549967511521743299606962342248700774270959837013744246295934736845219971873344174880264707980768127277208610023744233390932437726162606568719086920110646793581819772433791156093896203940569487915757551426289199227952075139685368850170110697252183724312331790678462115223658906533494796010550630794290142629699023326427785466589875979891631235060912320201604173838605479886572096409794686522770444214829435411867241745337303825537257253469626410427959456951188724725419739012144278257315963701621956748968730328795482541241326859003761670169329159990618241719036538567610027793835603749457263021547472538468296010700845573491320216432760564189207063742531489484800542126947573136903899562442503557819405592204516031190179964338814297866991526254033286389706274736182067571344418386304652359167409082968339472851337411099392312071413630420729949503733680842488372801774036806599957317295003236077561291479405499379194568488884963457017568333578046314893796999552851889328357157281255926000460451163697289005969110278975017436745625734375979618252860709037006697755677400652477901245750514977993307001331824559986067050974420146105053318539825678888254459607254665339796468722596487769031732806914777292180885056552723554025336155076748197563267010346196778212604042024346046107129846778509655506537421228383054264894402184337263061113799844654811108724305999688888877059154165436708976007846902652985292501900511442125729640785015066144397719946508357131894499018795398446185520889201026949173284836008123300969669690301170359772307411645844234144745264534656045032063516594943600437950638899484129635882732139542553400558902972799644901352947910999858136136114494471154988975964491127698135882600243409930554224434563262330746362484217819751283188875540210790804920484047506293435016053857967103677569529317399064398806398703697275410044965825540829938299677967069097372210107413313995278624680819275911747933457523051267284690883206586176126702525543519034776967509706021896394134430429496349499340007472912909856451873984182460732753225385793817409198759681998587345652363206028460927021524705915987524600546358377113813349045491043185862212693850375676437671379402570347534301655240091508394502527521932910742120495368204692283144004362059508102697072668711321891802339467311969604230680879062251728197202127759364520339051571690269101707662791834848968602577370240525309542324355490630118766875779577828072575236278282008131620456949940205522744502821723987518752396303918971227487313284691176547511751501343879588477862290912041439628286727896701352225591713098079179828706061065903284396058733727323455094528869694887543111752260854860480370934632027166847172563202092692554262053719753759145306695662633209510426559008129331948366162835075800785033977178165279904121756243028027510133153085720188465639650637872276500593930179865215027658232089868482043913179742132181611487228766577824413074817485259434293641481915018256072328156695890545924171963103208288571578619411177301268292088479403890405281717646994411722734104335986216802943948561968689831617841637566307884192128699297315195219846334284986110344899533113278037141792981744017954231209015175848829883342462673174053161286989913905482425721485037605668494122964523669688234599108880994151258305124993641643917695921038282864797676495063137590707893888902671977779558514486679610243158202842340091542008813769839557265020899548552232918106019561472132445177999652549997143594789365039361529871528320329847939569042901160988463613403058363516264242100971915186329628682071331515369558222514940749593539719067636705581929186106382589612572461719381905600576008830638063363254685769300903606292254574593338241793418523681948593579343801667169265662963026741948825534263877173503257823629759457785752644663531459992625614264602090597948279852897977828479956198158846996982972471678027272913924090585645539129082216956606065327931592672778609709038442300208985896001996598660748908230293666659677105078140886671833637639659645636966120649118795362732015436893829071482212411989359109225686797842925466472678720801683144463287537269019694418090879389950171884923379135782420797911245361103425288118124047135877143502311990746978616580738388733711295239511120207519517974153187165359791373500450669736834534669287191378573208793039608645234976551302782247669869850868916558052482385688169434562395900951847095137922515781588425177496415805320220394727953316186456059048864921572460237873671200368940048885005276092234726685304110842018499303464425479100165171767217023696252822139236280709845199445115018104562567472145285174981366031248149461896525270033038608031005037234982191561416109490486917792945022965728485201168445202178339946465317535080528823986657388257072456184580251147088241188326254690790499463746722713342138023856000844088468258554886020497224699758831121782326754361123132966600980317091121624956499078654566823343254182823614543511612080492552081493155746269191695754957868068258915787516437752368730187392231530353599936453368404423416438807281657977631146909551246192440997325318294797094105718672461501468623498064054267660556598677507161829090927799546458806763889982256250709317854633412674905573072342555096699641125008785867133065834075255445036467080489859659532135442841734780779376957764760680364022567937068196787206201357977455367024432167541633068625528192720699323204276878862385724789941362063123422678473820421018823616674942327270578137814815071103360456844642283034227132617327018419495401894951413925021004863378054616877134615268648685418192058643746673370818810804366174507979966121851046746607173219746568452622567773728692583956379027810913311271497647403910225800985454124942760571003915289569369594644808104524689214447038197714730918068383648718701958379717136472205509877378129387008330022277076356358718163709184180409340505194012606725214134284273491522583120860126862806687742464127623126445929173803138805004929210476659334969967891862734124964660843101327322929281267028672214120016023728581805786008078673095921382758314083326157969959294351273543998682190785693913615842257848146153790133299882178359060028982059067236024847730640448377046674629443660505070815193975391675170163546648773073647527192123651869046781946886703044240422099128908582576291764047449465320464574281868405498520523019101860300868766502708175164522916863157843491011603185819570553529316880548822761264047248020599099342219851060445443750278022112158820427960416623775981004072612692591109972606200700416612269360487201376627098875914770090483734335192270285940736873229032235574933037408222296660185253284681375383505912118041675145222722898423428824681527250623700756454280145336182532174730726533816795592519352235358456983815917803203069008017925789600354799737374444612731970483901470204363161786306018669700527863918977527135119812288579712539124606579139957973709129057322281509364295494239922499338861126191791514961565070298826913518300424297777946688242554224934253290722838996943339841027332259391264911605529654714553281107313822106381178268364585295338569363887477227942475805587111982309135054716456128652171875378113342256683851162058398516161475219403259115284605266149603123733115240897766149352129682699372094771388594047222450683242253369889183945222073347630908349669776279390540593580029127734128264335654780492904515536269947674653803292248574123657550207623762318240866546101122722161781053098515632208110887533283606675414426451160462803630934270675717870616544397007703347109058298939535158556518783081940188003962453601026988652501819705037864993267213373212522205304136378202996081905140491919693505858891056214356482715167384679698754345041893403908024127801025266187648040434310609897769258591334992538641758903231005588104030369251226653650701347198015601293238528201216891889953103732511979016430094029082806670595200616828015389528527174868939723798437454796632365258463267819165142002461500417792850915187545999368965088335466402493261591326529656728399174163025094112089570420440507522261474715622808070776633813384910904180245965099728021290396194608094768465236529829051453043925837285636953080123666863763933426225947935760344893345365144309460876511828130701525783945073731183814613794866446081861945441789189409205926457857579965055982375191911590381690863396412949396711452331013907117846332568471688613612093897479643469712656357499866465660145282387657533653777527376847497100888924546341046595172359032372115333055323365377185983949426115404052718738922768059794559042301061319855043175410553559112564744299946216230272457430733118446823144700593354191434689611250638275124970994783415484250947381659321051337836941682717100158353303980253226742504864887918221581784407585109428290048121545502555483610117497291949715606576610532872439069459396835643186570728171102637250030463634239200417447128219567105807048876460817867807288573246689623462469498200354946373600510336862023158971453878300171125398280372243882577299042300421574887560260044118965437198688172059565320620473525856032272990141531366465587203855757612597395200234355005925965434497795521090757029635773577312803837553423651680624984963158531577820375352270453965232871685179624851359342244705552746193149683055929642728290693605011110689539478541954690705602622157302941623356117502552005700834128505833753506073577654421673918710250763268475067143087492514660691108371261357040873499440988060975913364010991618182438786201340375754743872263004823794992239029849758548051400340867520569729886812942319693521870568476246893478978635410984819009126107091741353078867999032503141288468745109757729679903424739550076287482618705587846787843651266729852518693076226112667378186970668956270546232470245576886048193886665394318595731909944996867747197087282671827585716368666638729047296299870756325235229616424009607003967648305285004925429227552791078009153237715264909674204348428049376941233521278730689956696441546383839515524820590025952601788967518002114398272235645730888703221716147985569611708710832817679376478533284760029749929665324415175657201943098530982162153376616651216932198266574941773987297609168381926619222620576847137989072044654885114517192686759815048636196880518604748339105683585183954411044709149399832257770663608178258629773548547857542838352911381587073788861181954953149311291550880226876477342803901478339959596775617812949328435727638331055715970141220390219860252254052241936701369716910245081750041795828058719033911944414389933808456425461665039916547643308759718755622144514068690575308115592911595392653867687353518869083821386041035674684804719814658070197562638163870053745141948781569639546674133422506806706888258903062452858047189288404461714430319904546814458389069690257323214206980181948269242941914277497011540651597602054431036194231096716582450680295784426070053891995705018836359589628049364934229702735811858869730382727354808552744430119418921940895240121840584489177458141576356180968243185622142667450653243174213452509006303520715639344254737125291544359239872718790373047326363777058394793301761487204975015667724119994182678864589913769487253974737483779988763887186068608803445536970706649227364086412369160549279308761241371409886542170029901163834592326094254538562188916730314600248048193753947915806199980355601434080674338339406654647407224747481787189385878978333362322199734480964736051406738190329113903768478422398583396732588295319397482438212711875039440128622378895512588617864979403963724468745645935614111130821458029546676069163850619428738262725572551970462450754007576764883223690383636985413982898490500292769048828319107797688385187875335535735050183235021394569622480007020115839311170572310684666032298352440256428156919059741038753336547649403582609848351529209655445147804563290205192401744211883567880467539620013509173226555474826106154940733548880905189307336034969114668520585097708811578192042150855513306507577454850384700168183335948215246136293213622790868413248176467568327330368355336053817911695415345215066235352373836476115168684372551105236330490646139752916276185747628043154575923061081892366952363319543427224034965452757855848757682915124494939392069259232003361844471554663362238651410578068852002946645857032446697341913620264574538861217234622085470599872621205411844356055786578566595913124180860227198589822090079010143915683890578568160544005232022703988780735286509909509318637477393245161155319677311822312827901819951051525123401715272164679169980503077679110697412359075551927585234175017697408052794987813261122907194891160416578234103596527211352450839642471858222669457778740309042126189382346874570614925736163093173315738863782231586522946366834054334722317688080145032658238158334625270020933912291894546958521369431457944275746981735726727956743606922947151137172577524910095896680389217603850139451403969703717138394086818532791384609452452583330339365538846742296192539967516558901599338973340364756708682710232295442932596228795350613269248433443833345050355608864562284611650402709002379131900993890281094022872099310774040363145305168163053472340400067914250216203268185287275444147326034556207343480273607846767650160136388638063565891515887631973586517139139623196705653169612646832796179802044741652968309899704517590053331332405814044912424071323080684826332101078099399429858402517368716517151841922617592313562535123287285461627548168659967482131211348675253866288643609200767406425617716675910205616132620372626486244849683482811211583423569219579991924800764550929549645372625399955951134193081078252049204228465019627974875487160784434668179919557014277940513576694847698938387084978113389754482151368933452032761121129408186431506790213026125956596618165343535408805790836473551376212425018598607125732463140706687555502395608481755319750144105672135505422261770869045905965872198309077190577290925058081123145340038954449172127371974430013112893284427114050121988915548037090308005026099665485920937762700257319423965545210062838458844830225403472546523731903430741057951952782710918256055565353367730305982309499794421744468039673279337672223770226795857199305167016308234688805661633995285712201555496489070094205197977295608050201330446840140332694151720535891904941549475904554645845386864054572874541022149808120952153263102399473038792169334584094003891268117057816377924883485173850866988131299106734777414763834245008279022113893407857553676563588165654066259178950558139057989673155110938275276248014903704562357959380512239824884557033799665576997273332640609889991602107032384557114132928803592694473930612069332622571838395307042910329712265597622589752374877942746982531570610750944527848754234487576104031103023994765422957390504109931104635951611979360949224659755743822382559073175238045262530147678788152818420265600077675541457189137903331718393281403275080064482877854865829747889278340039079877670695620003514846261022683730260796500160934626951385308517439932823523131813385929729562887968082092785008871641282665224966409252796876494151354640150197285584448838569609389529186175720815971162071242794274357530952618939780995475647698562246955023953850104551832922729703678035814965689221209893261665813409190651024425770032490592095327464149773386635066718532306729980372237006116797959023372345660773873427694667520306964454888355806243916601670149100164842598505960799337911929816449667723350348340784624145073876961892313897855918366881889235161596116362082025692767356716728228181532682179018404988937426537161769426332961780595049824311989934197785140207657245392414492612759083166442122966593879746519950075930916387954572070447268632048119397309989055407333029675555763860783110407541387223645726627423255768523584053180672800961889361368532602343823654744850605067005691488535023373996420284733843989568943094497293711347640029176401400826676854066036140686666369356497502075313316232915284313818769778979641982316024657890185775180782513757102435938360144566885631771452127472725240126260811273415328654587032230318669122329569979752901606607747636029397817560876782726527827169977218446604878984379023966964830720531656042734100258475588443602567676883636476869989442621920669776665667637835354232106732643542843923995494246461199301270878038320874310166614181079301423046851234983262403957348154459147643228435110096106751348168741974222851900198599154664575469188289362453430659820357380265128311529853459028610445415772908959730289510940545748712535208849322611182428542013691014927598284015808369187373208405989244189786776837914345474543418649528276172711992481552952810335834785711081793969982428816225042939627385894937688711162629312818625806842664704452007728602490676061461032487311403773897557307244250016877561199813680011012499670737138136630576218367855105654879023533897481109382066675321606529571835040051907933377105604709329274603568628346273771045209108150754134953136191408637687611789454054600510396136553142217196760411959754373432743887078298499961667273271797982753035025057524524884885441982805739010157523542263930276762950189440156725501480190723574459451166464164074570758499896543501239840056898746938322446823216256176007568382212293629307276352887590889664439217441355782176119145934174477049385997450590597066586599986209327682564388474900560895291916692099399028102378480249561715840674583151577047656115305982769055685564608543782594060794847493600715423677463480710514765868503118534958425970968641641900180496447476994424836752278234927688650622140263414674526530483456231111971535425937015466641782353316943559315250793067120447516803802609612652930276467275725287098287051169144561194531215710285529160856736158719586789844293290314645119424307696109520373149323674225924349397311321222156013894775753823911308996898912983724244077985835001448936946370294382251985283483307422663428374316711411092976168484422889019428480958647870187036450410705718398755170536457298488386556865851195623437342465854728840133473187584446971127545430671277341935144013437141399173446281977575683080019324557064443235792214225793679192826014538875469433441901182600030471811665769296393888776275618551628799886298729749275307693039069355828908862855228538837726396773849208017955416549158982257881198426795978665518220816885107890797523973197744825717700289153292294156188083338810644249987393432866634239147039107349345519111122393807200658897473236346614409653789659646488019828946463741389496446811656580611560103366676434271272601538917690556347819257785080663889301052310588847364475184788920793653752060466382985554376982484905666495209855199371576359225073893262897996801863788813721515261498451011039096348825539896537990989617108312033871404296400825999341315313107204795475284461556317789387242191044723562497811972171809478130664604717651508433422534988950989295328626854582629065419546333887140427951352398628520239895645077595758834635229064755720045021340500915776630726291216034686259614395060469449202818925253300626012812196287497826788460426298857495623289103265130179872193116613055721428698748496355705383027195832618175126130776058207200976174884448540603178308886584148482074282932942386104422361613219355337187154199561684092035673004121259559585189698327211521226741151869206603438691971927066567124519835944548389491636395986816091188911149296530176078335558918743812169034214835058151365323543769833934317524625671609417370361131929295420244766387735369145297485365400646479490625893823536759085285204541183130761463348122009684680951249891550792885132701316880385007858138417926553395451572875115399832030770534721272932205105596144382828704298038306855642488594919464052345523977087834580373631153387305632594164973796980953360111370338906819962370472943826193222626577295282154313976633793320137159155284518265970206014655498429743166182488876599316769359608141849576575643524231293018856405843201689324348221405647328002610096190581978431062139078729990204251593479503478191502657761434064001453652595139646431243405105687665076101134728773289189154517260500097570136744336362715912754866743650178672889280356918462592023382474216552432419631270154128712476152646148014477448881302034395728915860553383056618988257939235466115645074812925274505079050045658563717843454356965153783025787769089797755724645914245458986524854190639675911051500845712214189030335441151750540370786003826961736371190017712200206479044815359797546692629759918342340773805243056399214897827137587724169591882545300945313128202544021688669977645320700537804596380829217632109493536068778437529130415500944898358862806105650488196043574826761958980424296435973417645916745847915103534488544060016338817921063902464285235026919409994547695121459728230816101093770205271318477044482750778998443074180201982326457852673348915250329792974615842917917895531064289754175573084373295282268827272209971910266509844473015466517850089909939416865505072460672516914340217759906713090313865834525765491619632601410946357990276891843309773348776580474390259445411955519765815415550842811578242141617792670200776784805017006138914034152301577934987150914870648469560880362465792467200173926788153570403494421101567709973853265405901751668063860401245373794885572675958014000800969727413439345439295022026549373098675976084288416644195746056787504793218020878437459288225459908242993426806107418163949663688915112759942947127269963935123727301284764247990175099000161787311441998932545843454591566829504358234894378049910068743985124992163810059308317088911370430954276534820717185395679441297647533106410486961726475107984147322647769837883674478986660749686426881754513642922464952881350733176286916302361102520736906691954558545447268709037172741810978371495059680926290285153302915656254313006377325597916135604081907333896786872728755967110320394342552042651403143540068009520006110803105876553226183860738120653760566904629348251047787644057452003896028165546065873880770821665538730081438934159932175134332962450929158717332082275805985412214921979929569928272116842871197412886831227861114813173970961821193515234298263298791392579053738304554811637736590229153093605653857224251674217944963458164704806061974016970585842953977304167322770479709885616242719751903048843730766939429202558574477355146296006710337482615383037433760073627304259092396713574280150326656579712870588163948956154612667142090093142863351202381369281960919106002673542871780824909978330191232546616216469008799308946025939523717474686727765580447038908405953077128087048790353684649076719133276808207120969802668193098701967168337367250723500506506642658278680917936443450054872615146686233910970049013655593945577658760880826223814641562334948760651280216122909990091120448475713830126602933573342205453189296328778578119192467294171757782718057648692638519061941694092762546588489905202865569646021863284518555621498254414971246753089862544889191067569448897073240077147844877927055692742848599598873302937158049940835350697382939736788132008724029171942570086616204131209974513221320498797767810696805493013456603420256702814149633684671675014302920350266049445581401446995491326839416417916814109970462041472069553662754680262138026204727528526627818100536777602961506944484205979269932022576873776304118992219140897072889047999693899070302088072838053347554848485853040799934715503536047968348824222678576263709574899896028255187644977594365419082453947803649448561807737217188845788252484678687247543581244073461094652955343857589004340456910606030549503114568803416879118188093144025022836150805555739566714362719616140798233939400143069674090984302077180233671346299468785158966922595182797979395791436178477167728700570799275368124623761468563770720146774235894093699259645244020366075464009588696569991440170903859897371458357555689005081871201058185873094563652011133763669192903926643629547408714405491987529682995081977333890261658888329572055908496417496589946301746902944004531207472651267137934680231108323455011387209075571804083841291505127227213804381564194754219242361606491538055427786617392297370488796558194016775146937715610899982655681205137545164455949136608200063024608396925771973393138285886898399262553488808259980763262363415944550644014442940626630507358693833328979615611620573396744886256149034066080463315711041541202668667680565365268749636790818136415487098924576162511326370258120127974440884738126444304867845002300912421630822398126449123125900268780892279595586388730054021224064690262939125954090061653747560227804552332610483696506803488267336359507008488477406516284739912409697952132811558351985587855962474778276876179913826781877549407037690938813464924159847939550608323272903611079428478380387519141291454415002133152688465471590971417343343723146756927234619911992101938637179034287796332732315826584821482528153335075537086109972541763199580823982627818844324580715332320209281908830088484828655347751160769687171441053719608155669015470808266306954596383745421653704583397613522064316594283400319799457369984881089609963994891394961852203880184733656457569225319892732961700290430900146894983545552809393778521883217674543284382111626243772461952049199256504055272097670917770260673847839274300171755770383132247241390446071409529792126843539535511681567160942407734699556607362771192721660509986340310306647754558504761835378471359635454621969123373149608030196476902066094171490274618937697584641124299298369214731738579377492544678429388951955985206528920160867784604407822516811851217720334277218822898445244346182392394097965938455831493376883212896949738229154344549959783541659127311114427532199915052722994356569495220022378004885338852522116413837099437040868642782694807339635556288701226103501131038970420947029374505414936815868469940655552264960146906199741551821163643186258321251932899015482287937907631363007116479105452229519845606571441572265410399926233589787905304517751105538155278914102020673565188832911217203473170131226783941771882287598051377733749520747992391284334222956065048164344963495337135465030135410581558393291348281866723598781274575353212938945434980641637140163350180741180262279889377685631795079163406703630625242668120911746129773642720847818055989774788686316858503294616441830528773550969012442068037838169570792054722304496408958764245879671629459295830511782580497467756278547621423486047541081645334279944449573616033984510931421435599739384270181601979940148489015834293943996220275464806184857936943815299180616889303327175436277099912276592754864743880666570427266938456623329884026703191910761589593918473755519167434324121938103687646598056756791832741839980250401668719247215300678517173526308476004552684921659622345568995678943368044509110446854017621794748670275224753075153011441308633064355099872003385928848713182376764310698934472257170492937402606168722278251065792472104739229040000452968264301814531538094732110165912809560911237840085375189674693596432131840779815399914782573880719568249563378988443321857994354854818196678416288056295002417346737922296033368453706713743644359353946257012243360709371903782073212769492604247760865708071845948627178101606555011782362738719557738126004085289439959249044560285157054637362446564876743958343478165488498805275959275413567826241990375510019020949700288537440849952141582471348674360766489192447369957650928427588307095211989725893131998003418870316500793379369535983050052606367220534254512451345729192335721577227434874513185467651093414438689476971025273272441199589702001434843261216012290062809796390874676613771729351581173447632561267606359676261828601156345489450757497034707869679318161668574367090448595353271795515649723817837854158289067150260578664274066425097262026119572238654857707957660091818451950199322126653068939873328595495278415524547672456925318060089585834357839576516014009133444305239282566807435340179187859249260005259209839832219906362391241122943151836958993006407109436607650202990424168845827337422263272794025711860854063986693452814582742024225200045145985319531983668262040541677151581412540237866262992310682808007700731022305226639213204045378674606789802257638185741375432156740676573284916208574123652217281099721096414387203299500461602798740703942482735100685239244512704908790434292577577232900570370280624710544776716363953058818658057423717838515401840468084152826898044986811723247423496256129471903776274224325216017001989725105322058487058353964869949583423646519298635704392205130436028109246753731708444996081761561139563389876723763142301844645346843208752305316850614068793223734002951751263567221399067859686905607616656574814654366690509159021483613638844507642820581149726058597805636501698043994388448286224344621548092028875170739486935680305234029207581274200412440669603379492262840011055368820521054197941588704591953391069643304600760172426911245628496190792183425409920010417329732204050075719869399531503433363510377884451181600492095483637973665951306676090029864628918029487709764276994403217983932253178392380525898134696675394596603695311654079366519503497860041123508444516585775403579637257772404536611701650387194925214880633865486656051767737648815465162473131070089579711444446358992099100794875158309598809468440208555927981113146189987642177893662574847210014418240708606750764704523793230492030506006121758962387305483761146864592575753677506835917203868578163963640149796257833492270355734352132887490216855394272991702196172932195322655692753861603303557631752212840091110352198952727919212436575398361578121646795101593850241511333070589202260582692264260844062530448743806733986726266585020912984604001629840899005138104913189326476343736748773712122256391419200196475748256344532138580394540632539048518635699559966165606866568002376991996895530218421257496952745346026127415672312957927856234855606484946695215931901791762198691426105016384346479815840776778135319242222573512991086263111941292922181501848695075268040178281141000449844897317203219835025576392051249664853817230476281080719544391195849572906193275371520844240481918914564638730382473332148349802962518968877513599792980463879197866758490782679557952587180340671039404809854118821204378886521703300075350978822051609026548479927907597362478514613916042580212138546389609396331149126396577673588588918687492038222062169352080343222615503467240520135155531401117890260632179926907418302122004216003510525612262203610663927410910139507346585689195549990170754002045694015922880814612671383778756457723085324545949039333757532047846764676238234679362543218203954012904237196612394108813052974563120550899233397535576869496721390766229684182237124173063566385962760964945010640256071195332266521178962287816083265481818374008942536410543010796666398242642456819042818052161198127316232360109117434301185276974365354158989209886093068029886550609155712390291418123402603993191791267326006726542595022371715868451135468316056417946380399451353603387220316928171508492450723588984424661027229424337317277325472091391246990762674994393265906422763366682370774596812018921585508292904051902584906537252338811994072055983027747477856950953697301150313510606537498928494443936776109029556042297524159414468823786290320958374726483221543443095836045071468924649428101219371584902021890217355466045852019997820413870813035203980574385157734339491070966767923552140326360804500013301511664316412628551351697410780710434059942330041347137569853013687649843009090720978485368940412925097972150310916889056217773866018641797429586887096619016551584637913070247525159758355175252104236812467940431977522326774246652101412304610409548793059772439348790656924025279064367566606191596131330080862890428685916512582506674569706205325140536326087106521266746805425112889543063056237649378867396205628011415619929419991420575760251306495327606142806731969103403478875318789436679048468713506113410800237517475126180094644287249844582706542743998589813521857809114293115501895287319299366354657543488283035341416279217997809326286399633576994988127442837320892556493390952710642300383880257994578337611028890789836926295778059061070745198090597591187970594410064706983580502519062923658513121257351455784549969910079512350283090965404261276940382512804010188906073576330132436823062740306014034433908131587705483880164430556335920078026397895066814634701608498693009365577450698653349050377417904452825032359046028059763380606940481665365121620955185473720339210480904604029418094145271618329459583193298654625105283356676260433450118713467160080907537603361818834493534721265201483554623361543627679887206707781831948586362912447204307409370814169946179922334437762028627136441755968312033894155438179650515168079595964522087727674874788025624928720127397707022507697215126884647326989827672089941507106398903434081197861713343720020236444157344370181768019072438412848238469254795910765200678339894182606048897607305731360974913194154659491575825547625779042332691894398925818374578342899783361874524006977097678143198628824689299274235250565097804236218379164372955078321248842831857915723676681863599582873569649244025810680176490032596483743944440078551538902738211663838029137364989777866475354239715764706632289282093642631743367408538436829199800741820376828367668387839355098301453786101569807717086423553302618312210955730892439924169667818233488637269486781609100645066433926762285773892603995861995966126532025116792107240454836080531893258701513159337271703403346688454179568174240924079868815444257013922181683514163694672140964304510933559593906861188722468874350645545438118966716678573217223050676247790110251072017282378267759603629884936171306154259454763268545939555561358729520992860090548515342031113236135208511609941568433016345648926009613541822288131264869956346517189194848884867178803009838873493353580259516155398265300555731457097278481453194751294923350120395455106793784394535892855781869815909953558239974838180641138674744053814558460845706117092460813705481650657576832639231786193102407175835041398045936336235110549476041644745316656817077826372358997055627352805833475353132693442351587574483036093525230152438269382092874443132292466777207180595685182349497791477325610184587127363277231172046705360988455760338040268070919364502886031967102210424456427583908874290966564932558035723803695799178555585739104937222722751542609140275538894223348014127559770801752789253126692141237812568911543518384040460788288870389464703974213710239629173036674448354861551448994836137144951770675260882503551404931971889664764009889918632404296621254405165646986454483074947731474231626676932515972776920080886810873501286452457710093559958265869301407067438668262460515734130925448020615932073825679468116167497772537343167247835635079720361233719560733489338540621015099480732460096721117533344255108174204605914600149617853573357214541617007056759411414465532535682597446482807348536627789656681971673754088278138401986738449173278260922209467276554768249535400458236875597868876410713199419669478035113169903045381845912337723418916459410471201718522738283720035584287193590984277264168608998481726818670866935175862886195428405163665214744456349105989319212856098787820928362359954237438684598791066877625209116883518642044672862685369830183714246807570716819056348567282108269179865960847224118327012051686704275090151489880953066809366925256248898247399975121947387314608257726993001924990474918892118124674239339035945881864003758667938401226484110988622132005210510129250463970205713790879832995535909893207827909177799065512203049570597109563767792129165942441498692054221018074751583457696588764419942000918674832844235323750083592349775394992370871468353562529993533255278284783818715268513591976744631709223380952010135659871149358012349773177547545053903297690375597389227377996816157793360678610704050050761769195981622221251869566035403660329803511452661711181698558396549267889519562417020383080882020951976184312717606419703829364400237564913426363256019795642639884910480082820108539538335221496201975334178963682059288637905948928940727289406088673193764748532719407110583659716797927241965507280779773326692208921023319606690721945251951337381263498445641788551323136805840084583009397372906897459118707895260062310911712522246147043734835703278940802784707867341509424568794039863140991796262407293234464255978722510573642054976078131089306797085554088547625552319514244085051944491557715669025603421336157255537588578810253755533173880938309644636074286264282676745859458282292893362902851383619337352452693106085295620489133279880572795035530815718356378749855719423976415131338112680148041341367721588069688676271940277994631827766126142015529715306909663430224139844960670589117735648784813131949989894947374405814003362714948700407275031878921911300123275791355337742017747592326145456239689207130521724860964072330964026674896714612487034969725226972060985986693328543205309782388512859390322921272840620949843289490824601972515964910897619968080283734913999413052877169593190213345938980705108603479969777814933521481410933645947162592489602145674982080862951732967364664222720563306285921330914932816474235650221463348455172426620916329441040522996800039203201186721435511920688571071251477173797086402775921374061776232470982459869157759060251739476878646249854274265592570800247634919354713457337195113245814794895304613743486330122246215921570152902124065366422426506392237290013407324498331779194059195584505887459990926122491284679570951926570300394936345622780190197059149657312428009368509050135380564889570823300904644366232655193375503944227471496874672957081416578994184019472896288071367437107562856765821276688486981055187363862077290065301801908205274688240441410779576130723034846872975721074044437701536282017680380068819527674743573368963350802704372744355682855987276851292461975479518377628689227891449226650621467631707774347991479346414424930651606750084007222333315706116771740453097716048916350849570856423445569636229517696926774727920605694436651285654316812311106924798220922686252754040219805061700369680021537627691797171403816697436378639482359853286569712258844980773620651535889173268046534662798717933619130047658703969085383850001833123786880116818554912763266101368167457939497610887841654755599668066965032589072340727645883638320275208169879192377909564434091471474916346207116034931100763982561983537575975249068657899436348935588207820911034830384371594617343882109365226575302309173535276395020280895894258374121739605782677548736411564596105037866832963771262186815653853185433821753137727647416098878199328276794225180370610843007931688147296527906952723253076154776828092569836188536101592747820367049245137104389238783782357078931239888027061588854565408226519131866561894809392616177337978341851341165448503257478444204103374332143135583944694049278585923049087090736457503505280985277132859747175353042652308759119325751142919062902453409809433281722619004577666355763997573823415652135736984011701620433776633760097451107415543900489843076674214928010197153357340275000685954731778793034398039887881558362361170858496659919430063298559418564151515699388994873726609485751531092468191642019858413433791156116558513996253428573575206449809246600816629547459322799545202242078103039657878105022831265256430434228700338346488182567481220667964882174206298315836157833772184813049462425186696493918694074390257599888720088205890379002169523272083593569952705515337100779237052671283816556555609630890330182550271315796770750947523688738744032042537448218012390472783765189734745881657491849432260377226117276236276797981643070633579840908205232809442824753725203059240706526806983350075607457564283162118009558386802288223080750801780933714176888732649627572396524723081184382156553616133631105267749391739950922484162172621993967798784633535155902967022450060578806107928004675036385660483764590937160350386414519566450109643132348259729218417115713311290787920780267360684674844419899606781236328587632224318611717265630054027659332855209100114104549095685539885914942600210416284106609760261956428327175546444488743804597075663861137432939445890024288364609241272792821636685072854564743258272277888161297788762401441137711127602406142326702119599692236288163742512201115748064782277758652206711528491588995735224721342196317777071412954146793182359627128119892773879644498724922091612921518133027651827291050716376808914393603268213411727209790714458226600450218376816455939720151550487843287305453881663521418707051828615091317078047202964658632693561987340969518103654422892710558512281056519713931380036705256633349904682902189054887486023547151440053896858353540087529887940374313055549469921865872359814153999361124240655522077148137729000514015449839938602811709246835644941605125119301361206940664567362561885089466927987112955224028008222658601997511452031339060421920883400226584059801908800193434035207254675625563443312511283596552603090506908794156005473966055870763134319780154332122532684470134799237987359073749378837239092370152819500033107423341870370016472598199447903159003940162156981911375391079755401790544579514078560338360539783255132994739245086814893463497462742912395356442357557625475365363891199807631515289095567123117263623790051770313980188928532488166282438678139940382440936910667452841369614595137358769014371458275196586735497159278023602595039010670603226627829237044251872980001679200039187691487653695465555391767624019779575407310396906645406386763788335129220600406921969463635906917289577641965308194090030615643567401764007322360838061689271646425639383461430614094199897468522326100531182089561247606360809297659712082278192636269880431450329767469422157842363963869902859834382604533836261864626805314085916384714340836204803811906564010493062544782668439890347325428443053127462229506198415507077001776008665179391116279049518188052722610265075831203895554384724236950205411533168967997012479959932633352277683469363948700711609015206415589130750573446218734132934823127907059757651873334654532359475745699043464990128338524086197718790747059188763021749650094968000161915931485769900208538016996818310951723469844855142489767314194239336143593121117437330759810765166092646432026822994843979274926010223861922571939857669659356783180988492484669756402384026137318486780282024321066693260957641923150118212782315079809430098724951749363411994097140856797704556387601936511537627704308159840857962886032778485068716413007349144908294216503446894520250604702250628576898819085616760859747057046454515899916528771760571027840389780663171391711418242165063268773164164482994316752581038355143550160047246931880278051767421507858985066683456901722826266670397144141374567837170642671698873931090098641450964860769706362765916814059416819432334951644004725143252674609963963962420427662492660355858848387847960429792208415603112676434083669795389298355131807692163288494415415863190926200794433794822768414598669004820843708519609486024844923921070972741211100405539208590161392833783404936130602430522119141953050377188543287175201941043728630596298493797212434421619948314893934749109870253753997952261058648033666202282876913861511809474419624844447968445156489481461433520000633631836120004267177459920201088882577191172676104464624781972370652290395442379903915109048832362575433758086191506825002146046845611748448780582093374219246268974458234038031856543245245451525742896285300424005386112842185227667373242188227665503397891683366391997468125423288279309969355431681357247644081930844620841232765652608596438368971107924054313212720668700274148144602965732090117402944422097494961852042663493208942080382470425346768246564386032518952488411721518062088463699733022684417615179201134715633531352360215991831323181054602691284288508567716771113680509719619699521398491642154343292116303466252821471052482883394280725470997744335656593225698810001636964243680071467746726159046091999509302681901244633710342765746545302510599068316990221077383331110447766792897994521444402934505191663644364546413570875086993162942220428149630408190613609145745098689380775997561471041548604717967311990053364933917081777611485207284945127041625493269719023863587066330011672007437402435398515400580081212323366811982035907112064244615471995697056162705860526354000892925775394165863635849230324180247766678735006729767222522198827176091336271066103459083825653812107771808270185584393634101739747756784913326031563896601686209333366142224077167612105524732512939866921233627126811712757441362898461012066931152564465828173937126090383151617099161469269125226596457487784382673415646315091606156386338988571023507724524100435168237586505605429912156586048148410369517901542205983484271131787183196516363963954095888672897335253490372164156285059930283955774227270786367311044146289125574803966054240122176306350844185400578477644002621030357760794419628682678061571765908343142623110365570612411498322094546862013652872216916027195789271420779071938688216559802876067638679202078823959550499160317482396797231930831921842153927745679597866575018410823373727643794261707159083152559806815688699491080967989013173296750614472028290879958410636708122905884015275939874665708655750513881893655268838822887541874509954376252900530262444300833888619277095775940087561680917706621261472720673899373310978740615102598816767792686972001494533040426202860387955229487149128379084703087225859127955912796434446692058572014871793237979783236865605885421843834883121067106916153309278231999310419231902920150393753503763374420078982190008235890787581648836911511648503889972014730534036693338088088762054468863716685142373928978505040479423953697156804176458180473011600636613549364701806736029629353544174171185369958988552488896680094125071211940259436497328814117108659908795519034742162992526449024992187350841493638536387284946210861386655953795307528231692279530348679800399778451492418936574153289756306136162375506570100905437807305058686516815426842241864352882372610352380173770629704588083749382121372612030380687552183750424142197004545138658667422399054350656881261481139115429109506089483950850316113137157607829945908098565306239940390300441307841008377997060262029519447175404995797998773860338011081233423637942112292072252891789320149776282674851525349237565423116583178685523684488328390200161786597363363128227524740497781026264241358654590326192882578232388344209628484650644057065289318140212217857313881655235887732197758098758640464768116199148731315005816389230058785252344195208472192705274835321977207555116286608309212184993184402649225315331714777052651778422030933848508618273749980696718619988475255323343967460280395183004528193582504234797087755790634489041940439851695195627657560201390627205394647445421424425449422738132813913772698026793385179861156426983074399339311702750742402028096567900395190448876174018613454356703309904115626523225364336900415164589418946163296832228437262903720210652401211012168278913092130025244834240908045867569845120748172117702659014454034176207140926378398624482383714340424709033035238870365201389182180107646580382614698129423791623532965855974354794048978668225511140694877378266528707372506919309861286698505185961133158168689165769677606822844201361969302860389965489911416778210793695260034876644814583937320262302397260374897512203337150741985087961840321020517203866537138070914360470581406026140250900780522667329375326661989234334111453836882822437090005494639952996462788016225494232736994036014036343798656794603589086507923912762024089831181386813670074775140405832138179637068156722942206911190728789525884458844091946306262036144314548324773545601726581861258998080819774568189354525538192747845965082449739899547855904783749544088867869503454958347334097724927256315104017065478072527868880010748829061937774809075354358146438960111940996507727107952247704547945607577472078946020733941660714176204967743216206182170102213781457001001559381680803163927351983036850789955614699117612032806974641605552994988954361022913583852803245945012211180078522230198019927806484998221665165131212842984328003731172821009650811645316426550829155129188011624511823866135277615105863860373741844826569375194305520279104178987682768878558800043335293573361861312968139011220201454445551399328716210328925301387417336767970309358896274822963742186104099367296447750386400596087003226545818263141011851818075081295252743981285790908017978911972615139327139477358937002848452136606625270249919994669750909605379516800910157316341717382668907302963115072610671860859726750250325641453743613320548262511245395808047491679843960058499793036622027622288509838577737712549468794946251135290537279317390497086331032331009233672499667900979366721411758159414006538119578649461077838854289981311368898036518708122325264227618109071572137623439249560165615741980532271892445690203201909248264051869892016552005029883766545317717410528258429158542474745487070695648728808521364054515601676444350454753219090273745476240039405925510015012791469377929779143437517407468246625696614223965818558788744450407540253304379618059808327863863710802512290154687653503031782457198409361183547427571398134984291412240390971063239476708315410139333962729868394697711040552311228521815078170697837427397625830517280922363002112867435104310588686109534996301265296204410982590520638165108955402816877708860977194238403463746027651529566653402822344628023673225310359333818127482258620239747150740200166851392786356470909464577399933924800587076251595562618547017368646222367530807620615394233146317934167298409232336182227797989878503476082171485056647187467499292392431748643540671093324830061991437955752517408529824496302089845593902003504940187301323394756173049639473693873608774832606900320145025794571701558958864862030375187419823984483258088267925438382130663621442545593471178433306664549360253506968663362514650141693440418960193895612577367847363276599513723626230596964159200635905966674718958543126362242131422051942721651683195478288823261428524255821366024944631487604830101794005911166793592611219432873864174555194753392283602291578936723845471340555560993623450131730082248966345376460295961825230376334725783383970867226364591138826621714896100676036428836872380188753104986182897446286363780650939787260006424185556512757065061388556245011861355033423699479918337407073215261865465141495312389847035279454658795940976883181460598212965069657543060993681987595919976277128954945251786370613182897173944911717414685903549692467809458232007548572374308875961860765482677596641170620747590413367110357356266561973324180408352183498472111960038639034120003993266254343012598745824216678428604079277999719152842105340338403867555879682745943754131125579299801698469386205693691747769030794531854098568862954633712264796328310503404521397182895193075322777768828961902014109131644137891005435134586643188093394206344090049369911061176141004517224273539856689826719073179377765201548993821541222963617950371446692832883808890873890422489838432015024092656755079007597650198947078122237412917583957771482545323700448337751460435235277205403570476725776599233876619160000123507011297572258080836893753490360308319829566205337346204574997093772160999269065132712661988044921164578956619034895992409004242905789581124357312231906804638803465131366740617855766826251811226365621446920117337648965053227041671866347879240372062900351431391670558848708879565453723489614515985075654565338986765662356446614554159707072827899532841188245012041483844194560190497727440913444116419928046878189517066640906612019951048026169809273399296777929900194510456421571397948319984992321022527279990513859702453711792814195657032622133081160172289567200724161489688268844425235482832213549636905825959714706701471145994288342977183859331988345803931772433883323350676631317954808020026254771524362298350297764290101356611362400094740836692802930945412462236896566521420874361965588757500879340073436185140229287094535604383820931257694322370396962645654700659337907776700932296468695444088786267200288222709549298151757262071263491572138520715592381451732676318761737145421698023639893591258741184443509223745435995077190115309882500924279166786921304740398362203734057894948879723694586736637262052385171976765273799589726755255715850448257100773258491689435116641494649710051814594813666678748678344698820734070965005437603086688033187489235010149704300657297815654713800596886305586906350602283035307085937564011487949037215182851835762081806604249999203468525201270037199022712058841062571750891048825133997695105682487226200766510466197905451682862608465176529543425018516393442153113954163759923251047292614861452939337862719655974566216106056684025990444536973195260943466594817565413696159816588584828782002861617301474221446823055677937471849099508025653710454337418324274884674590477775313861641911290526870437710075895687148487681085480352155937908621021218071947474081228378329840036197274046725328029287052423572113664020537525325637146683996185478255293170388967988970077811136322423866176703470591303499815476670109123192722814797081206074095328719571505178810555159061222281967399901771859464581887835758660569321696313096745769653263550898966323570814369146352951328676609717637397939453346088129898593133261580890482647823875276304198600056084241110105410263970104233481114586415709237008602972099208107960454010270817595833760336424250238178548649644894480335129004755249836770394340553899162150882197085245615850957625695378437475227411523907220586959428504921887466176912895872395766921824216021580754191491557838870441577505222068456921621722155174055892946940045745842168397339295589545487344066274310411482416992841425621739553875166758106949755924940268586261576062238113532236676680986647787631659168553801661617141565741947175514336823586852587732011955482782946266151311037950669554554555798168140006567994363258130088682796884072643358167908811089272236954729045705733925918718421979076049694443025898373563128736103356531903674362673673284253051814592245071558407909677082649491942843882771050248718911241206583736150224523315155114285145269960671470269010102866634631396178635141696840827268054327086443023514976550238376496470507783006994421004738802190287809720662756742223333994531917243041413937484173044471648433597287202377059623033549004147861943416744936618494142321393473837514717043350875631282291758707023104025407722518069261092647747215223345979616449330355970634474426199227645374950078716912866213620136806743676705526281120230081138260942217291872613813926408475610528597928743546220116679556507998494851984148479408944649703413911988705263656990807208152243469307337490435008143267677347461106131507509368939148289091471522167839944933495475257413938861920602788265488224218157756884245775285300814702766747451605019890007097095675673378037069299777921002403334920067957876011519429345494707270284534146513502869628854448772164545481693414906478452998781816700361767661099454235105931511745286741965498687479406450018253429529667834482958626941599922596373336083246158736507395246048839461461809071103391844553433385023260499301429444881560222199114350814298457256901651924499950635774825707344228743865546772650945742287531887598627348224128961681536031775765051618384403714017700309777766351548703671539009787498592156243331797116759585977908074889166925784268054213081595938910786526468594023187713063348737546671433493560275121846569682871169941626503050944726961600606945827732118422139903438670608977056133144180931819089733432556714902173416878999338352923983795905572592743212869101453120430460976919025762490805738670337763258613651963329899473825440113854315983554047602440690337514224991084859744467235450626591062763312056116169554422014458879806727171292506244158013242986007914964201130733524640718334309505146206076047690393646781354513489907974092951472485245031717956920508386128378058493328414192405600887779860108180419577765087739457817955563224148141803044279061810285421827308987616951679124154910289999516884856239056852151880037689567941638840168765319152442501298696417572234662585009187000806488590659595699612770742956792722767942183930973789545937790306290373178512096432559940467503760722080829430541064051585694228660027729285854370007223506873028440719263417713824148088255951096307608389349344296679610310575670506371653994794896085782609387316389349414549718008612129212388366925840669779179979013780725238250789791985491431714466430293685482727481193253048017534571423874159535226984752932353157689277719104576791731158117260530730667946427122072538046649300612397579635216256082365186749593609175862928755340888444044918426653636660380987464583053430114894458633453181261546362030353217499169528490165205292206175901719922994385039143438299628137841294875349738602255245090105058075083003174760701752093199173491834823010707839727510217172195999402482870986181480353758569763765177938137123790286158183589062584777903500797967368760566333906879619666136937459331325008734904285310700854665904254840518472564824069718945976182652931196939714443730591727821082805652901150284592285205743360664572281056775630548228089343749536916062039186221747987730262409757087435893016604410291349497911994393253036144128508599849860569929545959511495062364260826033607464332329956848377315766628765062869699481970855312322576360281640980961506667385162228485585704651494746391189176436413990937241529027727105300807134900317854592303289167179043418218292570084863120826132291740780526223651048793477807657653923720639532355919065153993285480466096535719093025606313447653603443630487093367838910216862346263265191936740982539122607587751588503570216891173286430560123183331698215395974216485868620104123003373469022633150937398828343187232616040050102657136643031610044895869891879114815858173312525082885876988681160256883403384026830523241245850328591063430281186428553940141187888688674559998559691047036895840112665538004856707892100999861577066427286042830660894821473445011739812358862159070722455626003032760434407383732256926449992282655299582392532791463995953529463066665937781709019543978441959461099827684639760363430757550013751507151386053546739175989589129314000802178841895519751977231432072703021275486952270440534281807729806849302537619219864529022637077820704210111459737876841983630726425762529997923105023902151276437308242411327498879015978740953771868397118103642330590166271051488727176371556198425518638640561027532341850647519058070996817126443392904805738138461492545361317928087974610187604090914049221144083263305462454098843234984976231751807751992892915181177369693646902348034826816051453671610535774572489384210220736317985449565241158005668930516465099542524214232482958688646757285026785054725135205123502099509203835238125429764373902948178132872040512992164564112198975436189512152924624874376201996531250878345383224873549432663191982486201524790509337188591629501777217672884452091515231737539756514010819201426609625790122491223925352129345369359902834552988692899946248911201898722238435690833807700763750962525041078328975564505014277534198142373629705755905945739300126705210114105783700783054644851722803850698628174541714373011823643546215536598490036189525448493498063026590133575746617613766310491122172126517725908672823211589689687544968688816732028050597709041318538103465814324228265044536862453506985274197655682116246867811267882048897502858511992296179606470000760108505771664405197327669760208564881179249394033365965000225775864779200464397134681994705634011487054463612744503225170955698333802853365605585352461273285141950168785023439084220100357372762863203357857058011740712535198864624172051942201313250463939804414783109825490599720206542974531109491003121658756062799158372815532888871105331216879569934593781417387907594818563207726139259205495549299810345843661155096411056148509856749934578509724689062834828063942911293753555811539228108381645175905309558123078634530694395612851284612258922532630495480423702711193287085016892267805131778225759656696217662428677744370317041968957122777768775974598709293384708101910968678134296256985773177894856503359262881634161436332595057808880788628983035352090775305175007953691623928332291922763762290432400276674217458353595278856147486187413808997876748092237256884203704577036621814876124331547539184938470938007096214645808324104661242910552875467037098187778508092197388885250648370363397903635434862167426205348576099828940600751772016830129408812738729771320151443836430108477256769034185593676082757236653525003779170801244277948043717019240507382772201618442973107036658478034643402469759056643328813949894132597200260471798525164005661148848747450607989978428417454484654266227829835840570831296944833316431980958973899961365142629689021326060173184600525131304395005793728809119754658239735321008607976880847807689313722027169941831695784753590901500051866382229634828524253724286363592377402281064584369726003499858761348063710719216209568481676990326586203598774959699246393069395246546544889887254830855366201260599966386415702439829976959965563238814122995016706461118843782047275539001439027817929392390882027444666311698035599039136747726575756355799796354277057357663972599718985686234540209759377546262286978039171095954316780686336244754190633766882281798878711435257535425388841771413227154926128609442615045474126396632231893737931209556687459452492144655746379742232501709709667124446273029515361725067592000952632226247749574411761422057751886995951711436056828312642433571465030126774312707243626188815998626256274796989404334850686734518126915146587654936496180801137265899942388542225254177487010506517668094480046802387097911354134871588481728899400261411658820501619887032659401753888679256063327747756659686816684696033383174703764096804716771951708958591808609363377777206376382533037812342532889193091082559736376547654412963076189157441804425410746100549504685136446621407095774840874697950927400264316369950226951395791704454463686159284985221574963754681462389362115634799682489380373915012131452977230492825520830353991765016232094200681507388583666436848668174152173405243838797753211790374347727896165615308382245761382609028456898097372219306950365592760247517014427124875963235571456857645828201943550857839406367110853027780940554291964635154241065782116450219401086856264315190003644425809926254142437063760391065767301927972367584751845474897094542503724756791656958004451928258799424154824450162761357438171046171234246864665181784251919949238576899945042256838638724081638266517906345534479105219384082294033041727330713875855008052116900186374862909500015822730305451145161146240985971526060287282543322713045397201787766603590867601830314322819592991079265551850959543754766453529188217618944061909351292057404891992957269294332642871559714340329927543414068708808920789860053063117627263536076825623276957907121942836728835752833954488312064858310284181325849649028503673320546542954143073360989644667190580577566189213525109740922463876328793752597460612646411173132923880941161933746558832080322389174665886085024697892380311766356251065369142560078840884659606550419721828440923993560303075029683996334545133786165583946452396975724891069130628480443472944872243078270393904984262286656019364686794310555330761306620665544787798267473472416334894415947394826588261519640180945713867347692974897146831543239974372091628037270135971987698136178651122213034257451624596369273702054406666016019189119097333860992376058023808067927191443235566267661049755604335932341958908673635899512981252673164526709489364915199856137157090292613319318340562846058892583483231627860646995740197066016915785479650977074464139926937246057922920305181295262541776739172641423657950251259696109641417961527702005329308203690237113628642172577853909219985739583383598516952740101101291539503849116000693091920341247493095171549980296591714794344376866121114354864426919884835018852563640287715493774704630005462523671372879997808923933218352214809155301637362616646220954981115870622255405279540170608344215558140396109323758544577125279817751480875374983845651338327958887289470649012891917945862456166383824343040716951251243944369905073413901337695987774209943148940760165263068158605216248369341540461248519654976218595857779620312265178279121994737937052103601919923292385847461906127806639101381191560888138559304297992213237762716017016801965500516246907659473389741668374488805255818820483533875644828394338071220814999574701205007339303115206491825603190728999040877078027045993863318735458322909957470399176131289702884118014241521380597396796322831972221791340032803377521236083413550420309647736724929114814025774110065905722881462143722568800183085935690860139085328610144463189110617957060418080065828215871169462718063815068190058431760849573430886759208361436407027065329501156414030928081658121502096132470187125223778460182185342511054455975205759330728880073227147424200908392883708086280359011860465837424706011512004007807496294505886916587382837115416146447212931867154431154809478566878699276057846828334328122456747917677509739125704561941104277488650834250453706373350460025895789247307652878356998560322279036188593932121516535975470457202503830392996925029527815478180621879410831870506647006481631781410868731544554081602115434855832689765077453317588674403785263518452593795779261365744835265212438864652864289400177849237181943651770738040086981482860717836925855652982599617126538478616992594828977651710989022381844595843576571828057727076975660327601828576911150833816192045339393616759394055453921897418292303953565390049407934977692126922496375369522052242041344474985468477238588767826231717133178734470600008438886331797990476789877087816964331882914873008333070543988092692176227750670184392829983070255118522970323499464997423636663503760549683204713222370986598708668737152068073012706435291022261917639418452766270630658801578136342935698939561902998563751449179525505521524987012239142681054013924473878514967562770992934406104656484666370344702433810855978178329049067177994109780858462282315898639962668976623433627023214683681226567223664183388926218168870481187640325089760737595025873483204161124071739023912537377693786651632824393199213584934567813001941989895227306963127817725676694677518770818460712684125257675032083242127364642914702077995320442968295877859611232795660220778404483349281950622222752907732775400225703379835728930095994912210288291216553184468488471770393034016488943961593518547956668220064240593931262831760124692881255607782164889666467928358996636394530721176594607735430580901805039613992462118998437032430943348821028273644140827287954546586690895106722737791309386913001212483460115981410090050238793551233402097933498352982715588415967522465840460686997478262126808671464378606338625994505086500772528654258747900848101517411511248614804012037723676928033193320956662020106288703890161382370743184639355408557394921201709645092865616030888028945475649412409519621845602350727364361178363914253956227602383016947172985856287732066092751643645626089392975808896700950534498575812272643151104262627102529297850349043763351976766613985266766269107557285959781889294332353321954175462523092568197293269260965385695022873615287260947568031950504151556268917655593672019740964427749578312003655507301010836851052546502102637947880654139457407804965378723992513998770420950417972494050016927793785385704250578825537280435454012613814519273199511997148583656728091004892997343003405021941984478815373799983587433238003912801377280949701990854774010169281379380166115221360426350480967251484990108515050393586242676152747907050677197550580490499554887484874467612513308276399259062526730401101539914540852789118273866727140292000249810000258984908249621584818472432361644889634003109471169794984743517356098531166428784374008491658089967825796812510867552621783087500958139389177228932666889530870233251415164229925726742448608460916614085414636013168344096034917967812962904231098199067486347134070662751987721718463353083977198914248358055436756851991842572277236780917581201691489128331100006887628324027366361988180194367737174987190471832262558959881903656829472029377439411919430678385713314129112596114934251178393627488496033896278642913211209096757706097158560112950275603989893129799363672584587826624806343778978365679653059712190056693282781975724988093215293809422911641521470781063361773522638887011233601450315897198871260612774780771654624262080690314736383823032370970305541441672017141466080218729887946849198361889096727343241968442123958568643400867612643178999192779186146754431409028207713551105729914976170715164339257132999035844734995950829496986941393965788684859679029941800659581246648920389871928749476367966356030476399832054558961452170156504161978495151423410623998370737739622167336112804355026578121757461826192147071822140806765536007576118567965653048351829860371062183193253501295832369997958493547287282900190806745448857301139766729519767653503957372806540721786570154042150360635090612606779075049522195943058702303918835160904671114776126236693464219337810982034274297269179554994618503118593614925690942820133211724135879772881961106291282079716978253928681875702583751897585170048300662727510829066832016507829148415852140919541892786245540139553546989883469067607002123567753449235549605292635108774765055357838625222388912959439398750007261823205778834655721944509552277301439305559634196832138823133784782893822197046848549440674656438860091356105039320843456476517690075081137553710234740546727653257969745848961703124800892828426471088817193826662194972228150700326294482592007026245598074611834364798117166655601229063520404482744726055606955141532053651511820712102552130618852925744094415991832188586289633494084111397726631913528583187375739661550159414611544942491361276824268910141553945069233668676502959789567358666058260675299654975789872198513914622897997956760501924684000574487386839591629788072094168612586634851085551578160411140872753007857233035034470371001212507932635813682984998617125433173695142560826920000221897049905189969347203939703865475764587847807104040079222373946883212416855528054788940818992588680751431966055722699395734046590383473342689046422850399419168713416040089672018239009525850235427552428848467773193099157787695563885733330189037529834373305129182231918093597314749700049887951146225717752660252635727634941371515645359498513612867900825669461372446522854494573994951228853787862121539568417060509178903121755853027866631754108083905596187293338306345085370400003469105875959014752350050425641613456932292150812923316666302038503563802170895698334170442898507412835345071073251025855312798581704086155926956317515702967616544483325146776189515886907394678476362649451867831640491822627242880866569987774029766236991577848125484116860472000835380430886470355066314851804142920946936024373508621552294207524596503934060364459157017379537492244819689723504067499378266096669523686018709494889352375814533604496685480555013329804637631005957784577081203962448407417803947046821671559507035729019768962234396808683953744248118873787057386833128513483549090303544496836403068124409149012754038678037995266911449610939356062997331329475625883189818434676159443603882052038241732710881361171962703354207027121096567901049555692478288204957550693505269537111830847545419274053543088316692799489702795496378092779131318575615925548592083763827298967601303499470394366963970804765072215670702889095694036394461228893187959194898093619216674633227430255009363577329085750153695207419315112353248507084283710670635842132735641389538719594149747594441186130848757964502910870345680191688165763718625772102054303134918751745826475646674942415435765568196641246028595620041009870830277150971688152606431048306206207622344728416293882463822896656996802719622874020134844319874629479130950462082106635709849587081942501633443562098739330891097826908413824869754546073423697684561782983549016860502072648841184111442911688278513294455855010930566158120325631324303853626726216446979839170379176221280594532535904958620335469698273875797903965465084240090485235720168039462014087216738712094546669885493025596896772409979988676869501117543831323438017828117234536803222633757533775273596157511772998467795811270285505503227904900460499306791582041733916969932624164068433763699801831888486469385534591591028274543196873062403612995591339635931329150257092751269834971087196949316187476584783011056475231349004663247009966885734298897282094369952993740627086006251853773139070582238535669918263838686728765296432474029775051058963778799171807003089819023202142521745170423541142886978640229721300910639934155142714164935201658430685530275025919720865119141302701840464510563819117432860402566186427290681129688175068438929228929348198628985831306505086327559944732745554344842624802242383337866933620765522439483497912646300240037448250662328527392824714061719052232871461518481292715789133447313970477931045926553695934680233002148873689866184687768151603024922454281959567830744984140513505279341405877987782254343107152668766389105822355846547005571170750485038474917866330188884401484155354901701529287780525387759823710771992527068205586320289218052523814028429337316121497208118841775329509507349054211053185928206691877747192966886860104111197006363382073843063398726570560516619900318013773909912636453585293415838508478184853311296172962092245254408023117413573161879945213442063924596116648775142033929530752430614860808421328574413373833703549615880185843755516482055552230905940120298876740863045138694365303835349127841255115156142040571472229250470203966337934205282892254834959408050228766839121935618086016591532234458516880614621077695060914798840079572987974431368837534563459258567696225342985542837692329201422856090774338844487315728464199142059531738797863523215014111535406096102057405504291336457343976341999608873786873342009188519062088963062035050221390170386509061993495818165232080168627551407365362039909653954169184536935704403885985676639807039716606722467537645600127982335511698054952484269934678921578062323402768551100371637926242981577430503161624572234468097721760805592034097438750726950199468780461526832675394256263793313893130111464967754104070054937661439587634269581554886934001092680772714154483073365056424635976779690365698481652333915767489084169898265846433224470037451542741200508735338166869330021943841240764514465600878034430538994613859260820388503806393597556502900247999580468121443658370138000871392352063644880505383814362198948394403418469180356678909429376383526641125394374553765222564490210297120341077480103040140531255432735471146139426725110839430453489644323971890238330657670202935127662023759764610347733294169949711870439908138347530891373259644503216643068370107759656671982737700536978932928186942266736446804234383891257363139739910955411489197384383067424005032396808582778191435765422446565237797543216683636380014317186194688601646621245685391028174486186819256314553563833804381075458361018468390602328895562911661841566171225032873857784879578558353648307340661002662616820270951618219139832331945690838525736698631618376931781238147516015249692377605212750714260072327836979406909657701001416014493350688296361302822822405775707965424859439704009730927458505954922886616037568293338087664267040923342525867344621961627870078261683900685084877301143572671251975208892713449438079102999580633957277286079708445749914408403499515574574779482794438821764766693009867363779393476440414577809343329100616194729118267371789265608107598866135143099484823795691055984094231065651820881802003882896073169989848127587407461811658373657324070001869577994215709504360823923030598459284128265545880954653167615618149164155049566310745099586979076023441711944359366631704700409860610624758328739116748087608878808367738061201295347332311011246895617108743240376516168630489237353246047739719428447639667010397513257721100087334744427224259960504125473689149973451254805826083974917244904915472948563658778004044949354404514138036374851747364163560547195618359349001293866974312304625816137061939630151390089550461623809037452901930873181511631969938296377447416595239004491521095217071159285629753909689352818122656702479609334549351506127600437027068071547750283006471161871267784444231416782818779327162158702558472286201078803913070590494583230537176856014559153119334800284989190718633987461609527165197295594733872326135599533467301941989412850564430942523054023932788298040598178108729879127797108428629660387278131945525292004977187593448715652716597520454826717509117028206736852647304781312300366877973432879242689312004212899932432874365354298378844169751809676617735571694177972530966997962993083110031455518416475837016555194716086269801424952417388970000995770155371731790112503774054208670327730493031363518236707259931163820262243009344191247084913378132810830127392965243985391993823138418854590949130831823089701333060099995877565546575076477540782291399895287647929767587960907517189161296958478513851058979221663568755265163215397266148691097922946498365965170809356055021704684226982533726389550369186625363036583484071751099401093838441391399073786158802518849457701869330843132409032970786904793509432699753059685122183179869749222370171371160386896156993142309447902887916176044793707445634881502043057717653469743387551290914570655575424026796259279702311319719003357470190939595082433631356921516869718466055686787096802451316370205632894806822710290608150367960838344468001992802734040417673229615115714331519869140285943874741334949961645406858403383481609907017126908230926146189362499389465945781058067451320507374492344129920307159241553363823574556726827820748989391611894419660087363282008036168112863790565277131891895833584662614351459676989326952920604249700528108429584380969902049944090452275298176710246400727798298861708253355239700623379837086357455793236019309425433661984600720617954264596691822076464941697702730010715167917873150160967699405355937594802669843168754691579020367064683002210746807512298391630832059003112973811030959885135958991191933941527145395373980620743333288387794976634925348294062652903908138520557974329121613882210300523726293539105597534487651573398197942483411153378963075363492820032827237606227338595603271991435378733201554921932141222768894000188675687808868225491005437464410684171080438439989622008999126286532899144240402353062027204612577139239095516701592690486416994437757699572096432198515605986815727942173481036283088894223814361357494659296688892878978254894749070583466060354621348669678994741334800934301431152477843042518386537993826369427248097364836000904505256798881756488125509358910119729351535692479934404579445964870644821743245051529765167988458705093893825777246656764577018700043792531369923348878961258213418374001349950083780055126548036044358166913792495923240015520258099253814231881757580926866749662947082632699122106085666047582651333359669056124929519506689621579312987185545430994746219699992534269117225768480638467732672727575703410171109029794911444565795110787430423580758889717783512380961340054968339284886351627679311433175227633824860735844013745477651794285107683815918714539117230143860998601900108639534629156470139085853775326834994737466798945210485964763797617361660200907599372291006397041643065168020122638077744635793899706835912751787644466975411110422651542684053970212891235408974877157961930019959558054939211089304980790803033974046674947684693477205268426048065128529190154978287766387322531555207747114386065048236093276755840583631642507877605315021660471205203185826402951271044127107046290342722091462384045699163210743823697698934549788071798245359850283437851305307208254861825989167580034016558632840106095807951833321871813512895000160315495885691109647186456819632833390065943851145364162090754848746804784357903960030306345858769766644759286250140835713218199200326443236975152662786199835215020214965385107321350790240430197881777642589247267446555162314717764980428386698576515175508639194723446781252420684682342743331712963321595750780635366049052514959640667027470254176892289450524441384524125497144155093705468692632281544793831618452663438825652844678043306277807420999726980007207231922378052962070422814516173926966824607848492425020471343550839349326407473800583072961620032768524064318626765664983236990342594945904750584431254769793090788469273997201033013507945769662972572251960674469764141447536546339795423345525262471488031065177640970205283882442759311012240830149598829861291180836606856140105550255935203050545434522398290555931916918825926591536496687507417593631574862997709515374560855488194660852486135197557646947667255973041394764111028609395392369875882652022571567519948761381645319006276890584139101525453814914376990237031046989573667047059658775727858143869855804618256764374242752080343353460768997495762276501108712874800680684647991879559429816011177521964985161590157100690061880479011399500143651936492283638194185036584183368831221480322552528818698238833938189439381785173131098836394383646550810899554279800165971104665138114069585432677758287427530045821190088381985697765729539756348883361829283346026813359643934486704221422137947286597369451554693098934583443566626314654754469491995587998049229083378110053872582065344228172742466994441635603408554274883095392953767359389044323311465617990583014062561347044080700744278267742676788182759190776165957154170540788057258745965232141320301953446020705354943772072190814005457002321083613020019378321356536361632740346699992948746100297653340119486417882342755999008076198973876161187435946506489499790658954895379391736048083154395342603228255218505240641644120402550635745639408626615903037078824345109005613669450055707132723801291451333747155445552299535873086336546727025682491462883933936124946430156190374859823842642180269401341193208956083644582158389189211352596569361108606647316339377435326845160881065092880816105019264682330236284807783139338964884490873842363920253571101694270789516337483706570687903674798174726628622963558484708703436971452042862808611773195858972481187443154138734145626616640210087433652465027170167094220458715302953641386664607257260987384553804645904257951296224187309746414213428605059217319766236102256760809189407257968368387098775175543743432772693825342325990557749016495821733589041823248815465397361779638030303587921164129715995418101309986488720308723775008957837175742709822617029626963977292707780699975561303019566142436951223848264108555595017806535986882549766957575058187427435356597735863700657953987547507650403771001271147300766715695718065705956329858603591104442864861006036022465614864288830347084130866351634667032455134075224205518503756858028462139566054763713586196299429086191360886329620074985741991059533255409121882372729998278627659347905698202427756134543390488859819787470648975820507610966418815205079527936623949936836308250105380852445033042371957950652831756045431160971038901478161279268347492202528526921823413372916373930219737372794290234153765916551971764096821764267951831593165566592880883210597529243037790423805035648354809775239533810502165802101773351778443521325142575024605191414528230441789641567593669492632293162824077788347568058179866397545643040651367608248842423467145627703408096113700501342160107035617013003296913582210697656767241937530170712734605682355436856837699730571966193434458563470975285157933033065221892575565298709175168470143227228389764440819250368330277400529386705242623289796050329626020094376903854591126842597973648680730845629155020671515720536762737094295109329642927610352022814198015680514821892835580391970691862790668599301686667551161678939973599447160051790000243808313568826626456146954928061158720505353130966972809186121083064359445319781108229364608549211028169915344336159887779265640880973932796335044253157367022071777341644098750106582203680501449134094692764137886725997047473267312766083325081530529114311404282431712285813973715947965560765087622267392816737939587243128605700847331231284863300593112843289001008396742242457704319859821711883263629646589221105286840827761619835145802906264552984961572050183058413388422074898231457048166490783572342552940094170646628953539794283870208807588016499937309022157948948206544891858858918205163318055746949700203177383333898106297776602718311617542297157002692487084647142221713500109919879484965440754456325629796945329906320113643531647953466029801828535401482960017622243729167816451506491165802354523209699243138950021140275719835818269185014816259038168146116304495041171688525948040531871707908835390100745879411892467975578736721972534520773738877319903149611832612379653121544137811968187331101160732033079456310628742407279605690202569468835775157090457906347684902264295327612124124994007917081880995520179381897323857277896444276019993347315000290195916060240060964750574948842089705762736557293972053520554619438487604838706722679981863507410642106722851721822484662679489149045567308955763403699889327774757154958189227283401141880720888104154943828609392962675358555916310799887119363679887216095889870711177767104683269888576444510665443406559413857121916364521939914408734035851619294129193112582934582586518392550770109255347937708758537508581223255976691235960805777938058475895493781162311579328122817138241579795345913069166124259045305001592277885453252408095884270942473173815474964308283446591974337636206057327724143882126722305361989296706220072253647109040093866449560701762088631950997666192888192898822822484349925102193264202130591610712067427487138919982334180406320815601275492063837306796010953698941498571509350843501759574845098858009418234417655873485785049981813056667159303253381981012224659218194539520444861702238784555082718618053474045573096829764110498108340712310621961748164631942113312588286207903597091682156360033704797658499822065367850163867347276166573206416032022462166613129367319499953211614776327951675658185948940696958899806255531427974073943703388013204623339755269244725891652715648230248305996392158345906391420594878458120417093775142928027357707718144751690534889016412726486909992128700807952974071629678976581791256976050709389634082568331695682563126904456605900602550568531444942141640619598980633548890299688070254541070512613739980745562874490751540922020006014692455405615907407948796779532467046767275388899833702720932158038553433888655168453104575345547145302420227179432902601592440593718861032557000944923183165718343117623355718150934645630631761846731582285432915697304712168478592793137365099964965232422147332719562916655879329840426580038768220961176145950537110475105062240513039563412355350485260734046413551336967699734094278565507890211351822440656479462529163540562545698088846417752999249936210429755154335950279712533751165880656420309039760700865374748649539032605052656729055805926280565586559647576393410715268478734491535114719422545191802174187581309605612912710177010734822766803119539866099852815317403862225006990518697429300633518816047575399465786635847566125417103853745529333011128894455388370917756045224931112965031628171787772575310042745320425052146793234563136925548985077751723229947132182433597008998830284899828894035801025194992645471591084888602049131627533280187720473982620156750561410806925127371488760955207582095522953208987826083328542233714488237353088808861964115488788995316196224814943575351041442589785182506693008740426317576873150774605862719405998213867227010085263337572216931271096360827106478799057755633162841898850374257248889603423836868936535951344475591641820165461237002426121516001415281114981992512410155438968821864493866597502348562027887945944291459619410032434942045898961148371520087174636968936289341478074139344511195138601956506486729722079085474014441561839245844304554983100101682580736193821417228804216827015484780174557956898940198456130996546491329985209315474134028089256684107804397127874718655068042973866604946355844033314802823870942442740251005976321499687333830261398695251385141447696644210053037283871677810461821647652626894883401349758722915902866052006423441887704055007770804112298197419878193861969260062551735646227947737695256298331615698270810910118618666634008998584031701032476886971563393784868877912306442571592213052800864305805600663963179240015933729092239925746781640344999343562556138366175262314460316366755464965994426836162807639272196759234033582632569435318456574383776350471874861991771705325472170074641640876378995170829551196549890477490826217613104442202728944980253534343635712266755758987386502159327208270207160268901687535070851331966732703158194036568095123791377462966774267988887883380223728818484718909444176443482383468202829743985154338610180173940622840370675839965171014762811490717266107841836201887361796421729977128432157662077627744570549807631379845416578334995637165192332329486511435226913136149422134661429553024486161791622823140857556493692981288163525744707670733467668330387914562240136157687393293768352562395321364740972386868708755171347370773094636093754920994304682924955470735525928475673371529880133908534819051323806757239593048107729055369025346096821435452371180679508007127358194249364424669303197549803765067014774950958579893876921856183267442312958095639952104904990340750984834372187569490892602264099516269360288225667936912509427612795592534551320783522542222365511761383627142830637951799962438101730955539735447655084474064395924387401218938994313732922922687290293260650543872188980659888769020143622000085425618237472669245480121894078344786070954042758397018463144925464123490325457874383475810355537053441350170504349848179741662187429345800608368518308804011628895431075570647179110955649185544248427039744698577542032025715763890997294990202982238995535865965853412715258496258231851048223375625785025134051125609858961745929080319877354940780178438345295724512998381696123417906923499579031540484974946713000312977061550730194479774016933401678450433086725849677387297788135615985585751642877321693116189166838115132484541485032985021822510279169237053327625389450028651480221060497942797813597033508782807864905034419267623945789611216612011215313214917951837063739871008138723769290198914453074050805295246052732395389256139971212832939814321531169741982887272083739774207164718771465375607768870553163173321236052708242984156309753802900934509515528417377511640661587995435898370522748420273670776429268237205835001670434828414078402721146912849258175023655118526166385717420371906422775160160115303515721300483876766665229690577101092151987907143863984963609846648585007821583588444845576147676694764603474505474305573187739721100423237249736951739867220344494065801740833215280218278612482065131729404653963863677570151386631059855478422653493890299058636319527468721844288793914013625243004449788249637642505421820864627158230475695256328889935856044495715215620771553203564267159726737976106254129855013829397323960031284146271634108559648814771590403100441433335193268101017903275573426504929187298917265397428062222861264212497376881236549025567046580659003611790494338189851674153467039760890138954107506871948015864107641873258712318890508238074265342694977409776601772464033827904783389830541028704727635915210217698240404581375023732286627898266003799542051255850817589235674976064797625748836522769739880402634405567734416988031501538178246240882353950056738066794838864992902428788103772012572209268322200772913830234925667597749597925061714511817237678884672236771813796933867329677522927406548798593870415405192907960756812064974409680054779821880485012497303109676666080155865752990843888130691055759763718495242885954068071437643231588436446364685605052081691380436435134287617765287770452941281684025335626547280798081825083007791341089984549514062705396535449035851419773863468630011488780042103469240242881987010317692784816136385949673477065376138540134576143976651042395238284142972556840408342736135884508092113603257192811211443960904702959835651976250594335418850953514571466720114684143242892904169460197926302766384267691474901772554109799664557688409992066156565663751806459678002159710594305262668056206090632203535158628603480420574615058920043683147558684373464091684171387091265871706796684659496442364307907815813329049900837865709054545785377849900494711858568516396751812238620886012583994153192629427865270519958505263773377269458301363948904943352072719575619706928578530755256809563351030718358518524514280703742150902329262453596570892235376160171251310174426521467962506296829890363419261597284198188398916550714705693828154656379018400216154608576559579232399391942942666396635422466044741413802865935373752968270115617197834383430947125306040855417351888205570402051813544102803993079372893731487956290496470071442544975058600359628396917848610693178263653675471656435976605734358884613401515746700229416451819361864659214770810997506242602393040480511324752384204145227387203462813923525049158938652346952637483854047307412689132909278947574644104258569227812152247355724729383458872088893715316198058857964417287021843862353763074931782011214450737366290618973308381901923734435923296875083194100698932689335235066350323128203481839554793192566357063728740781880960595534270523453551732265140959472512588541864436959183149646386025426236952114295148820444317155342652139176997783325969194047714039873126472346902010051044178518668235654161704046058206326821891483940238540654773173892008256475721113683698303919744426294668589949621747476062474551668259973552946550160616628550272560760268676203576104207395477589500851394668821533831013515587281656182468027113835765268717751309020656924064247703544699158356891700816572256305276634264582086764552459995132158148594928396048873757072679788928901676283870797808153442055500937618042580270276838269627239447660717749810364594694707423357329421213992485481931115760890250936583450330424892744153130727783613724624629305948095163553666375858002533918606344704050636791678267348103522900388149146829073092405328026857898543352317854291886663707402105766027622690329145655495786316806319073310130206836153626713349756197744245718630226834032582444440842114318486283112304019880829047241452207292191772039259342131875101161542021550099088391607875243871487910363031017477999848416404815806058997112326150807431182678665412058857523711936461186030892072796755906397250609177985223001290464360788519878507913013239734668385202382939462027316745506443109645131377383371868880822999349431977648071269858784711521200916561464559488510734944666621950159993687415140158906451639841260760156578931492624235610753699812337269672118792849500470540154062539282390144746954160317668786707461077751767175980521775069376238370041650870686000430383210982968017823725476437021211053137074998842321417801579660669769998148683380041818116059833564558781689756745269176365601026405787484725487117564916381937319505893094614276457808741374269713694755501188351766021501449879307238858063959310082253832196127059916388230111816726035504932985785894021188850153167537983580133207840320429388164269642950434118541515803721010795841330799722747598569830971574900897106031909050597406167739963699353625535849436574286918127562325818032933296384581508133918738125959091377042936473432896279483635420874466128571304580827937951288492518138279962640319857308967756067516315699115751400888067997354978944128438940765098773346711726088955163780414153914486515778094472095622180444818929512177176692637958502376828713817486926413266166465296558894720715311554508797342827885889621736885907006461357371569585643539849677940009084301663938265709628639369748643552704771719302242353469310026777386458394211906194778253402928724394873816707755495484230492072164137878038663172689674596297084065164742116506192708996014275612390375916129122744537653237734279680162654396414229151513110573211602633315847798309727811854571884366906334302361327381521594993519852467938426978317196214708009074468283418820975599726016693301734579008149907208444178032230657532339595476218633593659564869039940483374401203946674206723881422098721828949750750375062806518654730987063818971267401090135990673139486262645603214441085991597828261950006767273755083949360248952655825417160648543828719165898677329560310761412554593574559842468327034743788842486896494674910472523074318822889789249594505237548538751207025133888262749305067981143970401561808901537618675421182939486422844947627474154378818485343392140844457676395735476236214940809208885585129901371577974915055808719397718076347374434275159962115525204330554031590012103140824439807721973230590935444940890399509259035888018340407348702498092664029755215407304637411448437278286330207752005833673602382145240941662105353036581961903953722261488468393709066059389721221474359294700074541450227444266073947191339718525640939664808433370897695312052101310488227631465523448511684908348681422546110486859071469879176752358697472589964526320207927953476638748304747838269730631235984368431030119688627264875130311061555760834262618481563287589444953752117931649510632194541831177769274597354523370489954689727538922235922859299076995909477151862881907096429780097141003465294914798959844358836894551141610203894029428156216283645170560327296862587304566119810319546923068020347296452432511546617717600830651540392744624563041245068581689310056497307047485664041339422328476379425420031661589108917418696962081427718863210509942994293174351969719366987887699254446542499187775212813318118266115380526084895116468736160534292783618936573220213370004181719777803574005068929461206783344824716936035839880013510649472523187358828895425311234896567866467071660208514774575514973726216145387603720156758693906599200360604020044944628989087208213157872009882651015787193418020891049142024884856684435153325460871122035883684748592303690399887492244883330906806148193774995247205717790105284001724812910611251593787600238676476959334064687827299962839416413311599143154523003331714473005856071732867452263905448672410096999671829795943175240080057864459390631755008234972082630644435204711947849970462070993153881764604496871938880313720746325091153848009908163477400560122465989916928739131006742441855480115297911043152758007681331822563249344167501746867553432396565487493582481224764666683412787920459443237815444097843193467287525322719800012693664367642389881615461064208303430285198217703370221129251641736653623060314942429192810910767392074231426902848286735575556383945342912887162194788486973260272062755055241927663431304545268032370282766089957723299820065735895862323586131621497940655663201647940110485777011347601673103079763400204819472860176696285521530811764255869415125083436549850368873055878871783315645361575238737908796483347266041387745219861224126955987574044212813434841147068784141299717766007968802025982948439933862445726846216017383713679302132895447362424361794046495462283344076006326151107191140200279706855149296091885008220831936247935971548893135646935676747635391567425106233583415783772512045526051796624545050370029817407097550174712183444833786539106850584992361491812292083566108232608579138485706068243484395278609814171108616399281774920143196369622167856599929423717932731811239075086539819789134300665060526871348969074282501758739661301778213910575721607381213874448397934292594775908463066797358159779302132753183186159606161492493087173243292994684437454733223547500731165893612240998524096725817310681247927260493673298075922028241716263365725232555567664953602318297227765205521517472188904552637613556733803497040859764744689822723214629480990390762034000435363420147980734299368755735323032127314223679900983089435744436401156974216934909325745755125713495879542429739334108348777884109937327678144962288754958615298263018043937763406654738079375916091755949927931059550461901842813633538852872706460806501233752253247680965881953301289934175178780737953230166049136905096038929513736328161507167973946709049061643532404080809099926244214610875589949099939274698740264253593178298275370923997951485012656636731955627933182786321661155567408767585658352098387585907091587248750499712314717585658994592767555109143504483666843780347522508734338091780320156125599786554560409939823716714350041775916555464689794303486610055008507167686233780248823266252907869257900359511679421880818171114083997526407586946678392888840301384512696379251373934764408625915251313537928607900923519326046796699083743688454840133884941469899513370195488475076077965510261628315868986579478616365966931660247523262027281883287763391409104843580179520431370158412889333389267809673216503083082705492822925615735850506442154980349879637372814604490601097378982314643509757963246882701548978218884763690255792776449271365065290442881642863486156614265796180424505836811759462606582483022370973826467917289938544192623213665390833118181550361300258457628382563242956431382880275318069745200111587503472277014766124964989893873998144816241297407973579584155538520065399920980805486528029473373369706732856467226487206693963581972231044540569808799997600097489663188855965445873020908009882747116369086781187772673115048423906032995406288040151419745153871009472025909136208051751479516323284596125164234491187629746196656847158677933771665295162114227987125198449940088616412855929378226805113679820347923448562203449496904587673565104983162100824897122517167127635131449800282341434906518590935143582599548975035674006226993577676515292699389489460866764702052387186279786980263649149377030117665818413493442345030344826368766000916458006113799833546864170070178181087179547303802404204154083776084535120777053690272233907604801423585509764030979727625742783588178951080753878779155718246529825017739840814145967731155671558739031786829787477157287547413852129324344224869261000297426664486266612650358830107887148037046386912051931241273488802227068874488791009102957589054427987116876564475702069679623277987855209875580986104605459129708078235064251830270111342194585289472923341147180150958330534960531801716260490514495156916695837653202080449060556902181257307681683145107744253425666346427618313387177655459081144111710787589592838635215711243011738987659207521613105462095619109702545650500428506505505878356379657467287868975116080230264008410356402205855226476205328329347423404663205725400683708911575926464372065005807217014203888104386787126574459220975723577574821254957704617789946854057936167462570286459201453375955830487682224412273040893748669319556608210250342939317036218467276987083767212893251123785556482355749104056588047573586438145110134826275703523031646139043897120595978986723666453657710478435136563087664314878269987101230218631995591104570812578919499857883970075989101575026789905761428003331126187952067634863746633793006952971651084887336671475621616534405903808538375745388598512244497184388863944121118686136961419356645959943399021615245211453577117739050907352937886342454897574926668821902254524022818299516816667299942359393156568473893415167231983708779535492821273033337078032954214373678325263039276210473443947033695968668299377207448305061670091440736217872388761319183700570089511627786326190251147587374101440237983916833146047920067307716193499093998465227764716845146318603582011828100980833325488642687330591887534001107427688691373722384805619125378826660380173007014957636750533802766785975647405767634178115088953066632068504424029772890489829653126997768226573645536063690126378355213395627326991708269244357979075782776074521605180332336206593269607592113636429373301614036564602109756259073838146973422728348073470774231767230155982633092172125489596158177328287177347925850972794105324535119966006976545581014945831038624030977977397225783826601752842264561395158320403770402950916406833623380244636230814512510487125835912151823058582260945191662839049714462886041918397951905261829506304646289986578637303221190632933243716977214944397764254377253821336763076295765326921771983474351375215432003483850260213914389992165385747247054545787795845898853179118762488993273552175177571258034387314661002955695947783857402435000642608052520016617578089372697842305976032143233450935549553620176396491660579376104399097608338577952913528250492365168460556364659243031307497985141016116509192496159324120844945185003891240868693527927892511322178509746234323033082674343066345224591838094571883319039207570028963304285355555780695120560298800418023411512731737071303077485364267947235857634101452286326857435950032180516902955629724685190186165045602450140519367577329146566819499832020548554486941106441656840250989690582930182940670299711466371171054042620160460527415945384641408115921443551713549370767040671702601051574271148342027424204594662940689983862097064771133420087018038638342813638021253374226594196244624449429256833029682459154126916905256633739305626167424981335962745201649418833883548140495285411796133472893947812875697231334285571445088112783890195526367517402733330266247043941523208255570207715444278068682547129312963756402273846022337379120706749145998463887888454053546853599156052182425038795169277799926378954013329023975202971455635008143697587205202029943063539334068094393389052537667408214376972446902522144756561777126272786457343209490767932625638279071283777421072068341138749638697025294946204881413894179133330131600638987456342130413362526012212671633606184187949427087032794442979220213674606646292964418302349281173470760478543346967386911842678055635088511128649808700388928705482857899302634511261145867225231287915964552766676529528659123901822273192663856899327085476096037741161644914514153733226696933069580077012575183669621086656503272909775479374088622522235347795383856700657777495417444122162966828446784073154920991909554422759038731970975424478036487945259793052189096283242124831586188865488540925120110169338326155553704806403870659761037296404582591046809024084034850132559656912212782006608821176495687003748838510921801070925628941988973015896523109459217242478256213160312135611889343451858222749752263964234969020243910435665862097210786699354037768897840040384576918170428821005183904436830273647625363954612536660165315762227907533866435608181895782735323509289751739756508641685216223691342265870318991065517276509058702629540450617115700114023879611149532967822722813331123041175127239437511321750985537123235729798039320387652728181678851137037321408067199312542890382969070896537937412736212457883002916867045219940323450094085284533239194028108067256024823475807397324262654161659306883409454211373218094237364059506364544577567729534384779188289060180929751515335748517788605336865733921048428906096610956701154726486519827804580323298877130686478975502409171282994770530518191446086021463395591908116244368019423461237349410567251020947791563723096790566819868447861821623815377513629381536585273723454899533481091677937715517899540815190668730326620530515894674283288192170536111356360646274980192612502812279717350247311779847351247223371310885261538639642455081982406292192660356625608318479687216166301785705163797527120482647123334940626107057345614070125229551260354486853665761022130730442312252244094063078665824088123492852275977489688346157692350084955101399466008334339484561181673192045762655633905147745865075683318196695681869051164670183771816044779656974410526790702633354793677530107261799329306654495795515999391153403436196965533639607812407645366953138356978922972789972669445274878826895738507650850053418779134607706817007188478863623703940331907587665102508296662320465301546542045702296622260858118210087522766402665055581509912843800625167225389746249335234225725000072225331245482223397789267338969689117411501273886465073297933784728298188710923036545941872159423141894875760754959806492418880205336473085137286186288303059001258804380732658648796858004754904363447887160909219261270551608460174545955123516654420390957088758830733934260288190484040151542010810659604565465064343493009414040347644844610374993778956376741819121173764437560884607046378615500369526938341100728811114290761601553476517306123331687210885553544374250313806340401557972046369173746463985034593823141860637292604060043301398162564686906454820766178826250308423321879396349481196227613352155537760203202826797273301397173350410526112302871107189763590103017169989788703364841615021072015334145484209084781836965427869762749599787019223547947602283080728592433411291836456527178709104131305785272085911267724816499962471009429025382896062671432135889182219692521516977406036095566170853345140382124913080073958292315655710281690578654591204886900045600505468615761116365333969132475872442122079985701030703170715165319138477498619062341026450272653979121703580300904689310257907132990038924725563114302158789160227050424322521915214369519777280399452431145628385451595491092097881390052569479536188029993382224160087103541610292977356874781383929541768744358611595616825471892505343854016976016399918854864708842694729881095163903592026272839933122373191980440377297432052732949122281696136880339357536435267144839756211166363046423784234156961721690330040793418384931911268687196868059959303139943205554995136341589625606840740877591464295329314820235542884923522678631906309690343118936423415708789631383520527585026720063961788295420991021693766658328828244890559081899882664162050089169089591128477934430813301251896306785216359494489054364091868321395950042263128904094753110938992953009122763580455445267232653673960274318192047325358567442439792098787461613801952497217251526434835013471568082778690676035540817108922035168351910188222834584575552790427868508088292060500579020893422442768117474100664555581866494354555363071393341232869030255665979663633633648221191099170875190679816175563788697408911183452952716525170713648439564227676427111268669881814316984330865619244846951513825977502732755703441871059522263345959968447089082115710447842739935545099921548521471359895105801476232394592728818281458154805611623811013235506052600327435708030645655032758820526284282163929117383987787459078344117808002394116116909079301779178271400074077292021485351106512296438267288793664390474081066924290887730775295781993012428044430921974700347533194672761854957152730518255143825144327648199055486251958812604384759174756802125738535727438028449037244931232157043076847195223961944649532820102152414113938579596936601314850332538374307636049184486136446130954022536295563698113818267460550989744758284792683600267949313301604017240695055122702858711711153510130041770239101610012980750297167265591941850887012090055697288717589379131317305736337223249232087916385631894264676342625864863317114056552769411035561769785386629914951374771605379720365619667871533003831492850217194766691069943747071052762155989659039584387329008107268134511634680420947216186441588602622244342690184573206822536374019289891119662342493271535278138370074649864699554349309677127695698383428512064070073951128042354690816363834024924759544723141676815751706555808421079865796682949670176395586008288160778644549306702029330664924270561681376701778157050745660496541869680648859144391607933581105978869631022098729466560387819944774097345656369394505881824139751119818887395097750392991803381357807491990828802813298629154935335332363213895543092457823643829067787147036829674189112662801038135496717394897110523612021127512687827193772303372594219565220537905613645790273812465840073187920801307082431996308800367041786876977150424446106730030655456190107812823425757263886339710368575931727459061486309663524638651566240424411614429239086687497103508246657031448238051234299237029716524895927257008955877960946926333075821862789636902888836889910298958456654990914926319809970498490346703997091364934471615920334813961514489382286032328107704719935537746227853466430012814653215410319418773736692247580721343785697255699651330293888691216869494295570575720280984741156564086486069438163417899391893426343995141357230372761133541305404594666841284839305228789065203560200289606266001700382710260489363247193141816890999123915262072929220195219039664177109719412817235271182908599524290630744482153235471411011869316482810103115422604975310662593273025129334290073355494137793962911540533620032458642700894172357476500068321564379244304219844023986512513174929388435543687982254436565034491098548839789539269154378236189600762683818989994192688649595823492690723084236345661716763197957638526544765116572910095683142353924906142720212803044137933323650705487041849314223526464487395643705486627853248189057910482808088890331583091580216137565382177689866155601882704650180156659364722443866824491341819950237515673445775138045008524063693483756387336410594505084725825625518687950969712809402882988326266688302803668566668436630206294360319228253795027339763380828995242223066247772717857488325720935064258316493424530436590919721378999573293667919705754003578072230267832256663980209886273346785929610923060778370691712116462668657951914659288169842363151996887160926834001765054889458939019386465285038463106879823674043386676005031610791030821224241417570221794870499893300375333753336635719202246267496422677032737088070972589164456671615900948757422122078026612893152671518584655267260361442082428358961968116482069273503792031015314993661781835000876202567728077721264034586812720113695109277240286989381660557493798705964555308258150511828445049582614232857618770120460717395366204718258886285081434443613052908306927549933529226267358693963530452195484095453131756071616521907897744651455943689089646464985693884642650996349904793726675483936537834197922929205346124824685185373971161599666257205498947819762755845017344247772334703174867952225368399070583151722086231965776714252501429253209966166447386994856342598862709912560300373282234759467970087483705976621818860320202430490694497444013436175708071949595098189460169034860033884162444529037351800666905018100045715073875791621192281420720432292076882541421272988694652157009168893538018274583048778583257877953955325706075997968263906321677703200615437499209653695812814957219553932744904467648840062934645200142577302008667971411604810589697461236820431318000018825172346029453561734270776003923197358613917157552953791785113385163103413553268507288767620217447787028710130655533102437389812254021156799607528990176763463448356485457070971553183223892463749274849195689252248569518673042809416897674745408346606468132481294719439387956133707702482051419111986090858148574389410981087539275386589029287280240451867491119314926449610793721518251214281039344534959439961848379916344017316416047573157836679431455426848900062630999230531545814080702345093731477613098382189862437368279428822840269082850123518487439017444599028810610196613786685452114512445083129901712847488730176332183878206642045861782130910228939116827383961438677356267730376112505777681436744314711355784330775014135860714748959963091680138519157074036827990228107761945077872909042966185270027284388909694424208579797970656866121507882549382203350956701092117839849083762108750498114446665679289391625772228823180050611437463161875138708102852311449918462752423921607389989705573218037883045340379383405707448925453607070640821941095735833526190910911583378821232727365371807402304453659850794013474128740043316969628656311988683969158461700451208667995004545115770908743403535539786263544003624298131702993421136316262672460061749532694088284608584842455215874896300071175671504840317852680573136455794755201220074635984642795392978221337833828042143774433073632701907593656119538957243168400623129367755205141428936628675226061459248974570032061620174447603987403361439533635789485919550979952122268650785777460346256046976207410913782455249877421498119212372119496570014295318890990286493817064392358968975258780386486931336899896903341632557171934957600052842292028895348140498732643463105990220903717537735240157413009852334370441089932068370192716920889402780848838618480899182850646976109612198613666531710618667685741865802094186817554658465396804134083927183149612179090150718524685395934651052917618755670385739965274006197085796469452918770293580923621997658013255836672043453953211054370909560093534376758978935127058091271514787406090797291809320440850957587560009468911454929193997783582812822845229212818602866304167430890815302612427912651443057085153882615148363946309716917751535705556917509879468850129161436462431895522916556802674231408035072326556385922952956599827004885645427847992610995939433140409190658353403947639599898476477984584155014969439911200350247894435441158556630395404665625674033553921693768109904457972411425214680876548702369570016771568715389896197272351405830316007495787731704768790658247434883512061290668383640382167191203180766076104522419589874465859237210014880483118281108249230678761164675957609068575418763557413479462658500315295438917107664374207493593231213964528926451984878548646190905611751272436856275198318480930080627662273076664103750025198928005590295854218045325039573453893325481110050435383315831267020391953416718873090463208047602286465778340990699969255151858356701597400564810962954520775912051975585901714946806461743825206895209809723372570553235935201414999514200536966473258350405822202156831251605826493201179390439328555873944164945577791406977732438513049434537334977178081472657698072679076445867993277992567380573904423847043014940377000923303159938405580412867282621250263360470668212577191624350464073120828978456648344838620203076491435396877563546952856948448212864147057963342299440820148848566288525784831549539566215175123026398916574105053050961730222592365521327490927455348499854881862359063756544341964551422622737543832393280183300511441523357408823475047136710796879893244843086005427791245085061989554716383908905616326200873484351169853024563540511954545688220992831884454461418107342935841772284359255636795795301316909080349018053105372412513092529006966021610952671343525741815043653490472227762019388078087553578247896423272886775592902411836985349135250533917854517100940536843884141334859469809567742270334474179684558837778485109017161912386545870475804272196329961881275292632594945056136731721583749174800262711064564134425261853578198754097377793398418298193168235301860608735348877299764257174891410971151004881543693041592939794247758099465206748512496107051622080676240879543244047800898659207820473180519655522666275573449495106045862599466220528383768293730343934315699375837265611185813648619288012563373799851512013923976932335123660720728641210083830538764941249188128670583448873511069062774876877503705456103149837615688321589952036164872365843416672613586187992388444317673373821016287433434496527871041294666991112737506909948378761389508526927396502618420098404114002701862523832924677714231407975053246972851290247727279302406637413159740047210289038469754237163446807185970438060543102609789020101850289246330168361963505879692144909215735181118271939300715779993388594887796496844483984268258916528873368183814495498881035031918133814229068689323037470735244318988351690410553839824310964516451107144982354494265768022845141985539444275775456349069930037067669863402965878056046320367078478191010083536588621205440832942316501561284554321254278551805672252780829974719992680407804036961735351891794819305815585856480076852877296155456028145610531272156466971647490882867115703712524929052670726193848886755231639176353178240678092896421994712326111102809588667416907792495336724577848844694186763878578368661796476105276243909424701692533555218902602066032174585245915632475922212386650680337972077908276306768956074700811119599984638184244823112526699664826746596982182104327981626012090223460482338305680406928834446611690209524031714886696006367183044455348771210059250635044088263449201991372039269307593999043655234433182443274053573861321658904493131238222363607849845857052936218695089175018395363519667550226686659625114833680083839848972680838502800973250310381698780003051984064540653661997817148592102756839987127426981575270337079259595624242105511177559356229863475297538196422199323674406504603950423308560038981911267393852972375340816370208935503396341041757046765087422538015552301634980321587176906396777693534960901953225865014941246304096105613087486639471061941969001480042841711800045816123083219290715983322505206312662209449090914233822401736690954208036117751213757191746221244850876035688457021409941488377676662207614147408424363680627270134238368909082549496192667656081240625486872665838224672955389365983089486266060404691405044615128709577538197797107582997706261451912473082829431433819988292195315305831559953935380974561240657469289210099893335480548987592882678404999970544754636483032780444567090047112518077297654442438833868472044376883077874145971525018407705572662343692922769313031329130083444883425229912445813779378311334608830523617867809887892555352972014959528632007729884898679501688430839102340769642557061016005015283125006504770929291113374880006053472300090869776894962138200146370374025903076968667027318833938575974522588983685338675484066831693410019879368685819821819434068915718973550452443483588122361090028587928392446011127623340584026717236442342621451747680438151534057217552759419949830263576319157470540015991200616933472417221889372495930150360195572115527449921177214399030905746878030702549671863389001236137944635478646746986857848403564389502237725372641100687140883337482206849240202536065269168046297682884254557882524069823870564333674626234568745253042310365723404164861709301100201234952838670843477760763877251892729467807501970705057962128523665959750681455688811288445911828560836881520174827314574768682749623714776669374809126478192084167056156515660103566251460524541889769600896563248705718195959322109354069452453087339975327281544816674742265612255675785001623029320505553732133026447569120101792521672630752830736044733709156637460016026759124057645187869688122000763041783906222389017257650919084434348155918766605577244955485238778601830618791020683691570472145821356450664618006168750124723605220229716728398914711828323082370217362208764230261291915470489607819104528815474550342385926387555359325681850014900512183286128472591465165923085073257569369658023050054711044524229059741594525563624171766697770561205602715421087703108354154908923944134179592791241279222820852446820956018598643274323640823963475147893412030364091951997348538329404961561200813916532742528232324529152614698716767659200655913142976898365875861895731755614117438603430704207310644224774971876656578684344130264485242658364370318162874739753241579440371269072975879221251680247297965089546340952463662611857724873516810724584577364438652939708975025724239574338179443212770120806930594096561893797271815762103269102264459376443217620210233819821006437668110032720579212165049785231537711362447927756021217519761417519132339869751209016080440661239236871238154463687838483947672523550315077184186321899739395863776820492748860003862754184791765760662593489793561317968925007771885161733880398608996318331292765464994657418211030786111578236157950808461939775546747147913223019755483645935920723949822249585585815052256580325245091313721992210626091412535104222944171397138665081824063704471106062486258275989031814314020697512505846646327527351437431263599795129649684175188067431943635971674320014373398853326077124672284200538225987921705332083228002975891573027156402543736175660308725735417921605128625118821476555080140409435295059867318900795641002211594855816542800876004567763054262092056190196572916092135167739217423724839662475440433881573333241233747066658914058277253268745699078915008302922389436698770432263308794869215814724526508880122382191678437666783161949478019695484985582817907114915761716691676455182363293007595329631597439238225844429776843852722270454417958890626380462279518281293243389367521394839289732167111246103048807018145005784390951427262236281271627538312063923444175851284207357697841496603931202923851091749960356090052684502395795769643496094501337038690295891168572557102925625680501513416703185256515983255144735257864901817018050242729112301349175076511627387363054846737364775880147677939493285816426400393231110134241387295651028936600935999782912447509745594928958235749869449818501432429757549939153350318935136290868673606007404986020395447355696776220306407386302358186521522919650271167677058393824123986394291434208837627418257775708061685415239334863922870691234643505520895107766233822505758862378397615288209067760441755301080972737098683809779867199424483797607145290511859820297891186849381582745399135486483415819117919076032412149290144519814403552829847638053273076797242183938959240783605779029560741243692539569591176948297909461964519313068867903926082969572975071761832770501810938789798752870912577291033311923036218957259505307152994735686919863086570343948806862604931089202144320293455562262253073484737242478331304656922482150659306339472374923605503674321542054905291772278072283961969077562266783505812918674844956521916922233540541141963698642526677937799415217218732819821285052384993151745849121414151572048441083947009450342841005096380425079531973790929222719117401258412388871660370822635017409344936603006242312822534098385059568718305069199870428548856375821976469277095025247424043964352505047170111662259433299866517887088149589792860706887307925011596884889659704216162287382121108388142629837042378410838814279175339070300748769015828782466330571574128333238712054640639293511105620211152010993182466464879743531485451011870253072122672508339229734980752483260670484082707842196720982566286503393320447570631439318859316101366951668755167783641300053031472751731471375945860136789010383051694222844534928165724012259068834204323796476720178759393656873443111921062851398178579180784356121027027540343425595284086833536992062551857638809593121972988447142734284147597130320698251036983011800378376987798128513519822667495463664805517551226128730784775236022917456519524255719467645661190647357745335895707764577525911188033736621637549165971268191042793717534542559772090641089303766081919079839592250788126072911922225549532919420876924790253471308475178127393219786436970405301253661164217479629537333669271359771104124584122312456520750752040059095067620807894531330509221482761823421883878035885997657272796697682544553944682798592057094646616093899368122025301535774082723417416709304330660712117169836794313575519115282672354580486030628161269379172828310202657408077413008137862618485962988397450612243752432352386148374345969178269226196108188906666558797009441241953489938761417711167164814061749589845825779213081044478789240080564142463603010229865995078796224901933355920984029310915673865214391038331411217040969302293262445639549782148554108962759457593501236425231460646942511704528637440839396821902451378070926224710685849292291890810417276381488481966572377089952471244488820396477377961737142498835951883822556766444179533588387598875879179164617869785017122378230143622213471390627670908952610370563751060740924197578456465666049534857473854265589549815013867008838883855175895634079581545563963501501082216247518882731523259909484915626657873250757154425883837021814468025654486876513072955794237429656424117064398760705840545222162352487471161692939581980419338574225091409495650311782940926141392770164539665567699794547758426739248735234851438151407265507663657117760163524674674844823487693236215072525567060125640825510312043098889831152282844655906513977760688974971008175703472155598593514539590895282575308805076116733843558814041854376125166223873837239421380404592164568545419012868883458436136357334669838480568609786058145955153868736562859155746769621611336507704047883891557271886312949585706452935834991097681812446198503334989841111025197721272558039388640045422007395109934440070525165061926002532934961889382877230445646883186231386253378733830011188281591156491841692942456350670874557173089961783975083510762172376964963911786791477445633737597775281127921510169501566019307633652642152868402034605155797296018316481995907773436652123070792931469725061549906800233096693393996970910772658558985359407475021428085977315085455184481400370610955131141973156720994007887419703384021020121306632376978933196027794764677324554600877446347048116064256390666240050149686079523549689406903823152023605187932432517433192281707526993456251704760047872025369680487273635212560603905969517545330404940575393204959253740944674186089819091947496082559576884254063054357429255237973492268480229640836514300416709252077757441966339322454413673670206480241473717444547236770134368824609526086592657456819525987851694007203822524208383527081290806050478216972888350213588338089050961272150990379069103376213332586418739539046939060138057594392556150332889589784075189678449663894827857122437295624711938701842987181922928834544454848921562570069206498802352135503923575514483131153709411206363363401010170396816653531220971782604882320692911511251901683819343710329870707940537314466126419841128686544875174104526847119743858682292079889149371502100042109057508760536492696858273139964273424991433476913991518184580928944908611914937321878560662261589965923373859105419922391167345834574428203197519964111710062779886850756471782339375500049898080802064257033163557954149437212610668123632404939954141712351802246790176754112912840060208081573386290440993838987913294155156818372102442189918758625062596181413901886510203810428768030773290415250419020815307663403109652841479279286672682239724534778003776774715839539037295542152114868328711991292175056510857408859158686058202932182387761931706926966229858833449852572258514423912802935728275998045542053439964738920747926033694395986988817997512247953670777038007137946555930978473070249700654406443486136138502595287995840550732672573416814187383993181990613272807869832519735478271931755401854766498608077716228167771552163022065718639750532481075146058126977378312237873947446530726685807912070040841795658878297401979614450383578714638925376621013718862508089409733607578564352495758571762677044182985823867663235985500204267861870508959624809759434253660834039433532303414057816457320862257823409977311492764807885459261462126658725080570148372632274842692676536563626443549452164566442955962998514481709064999771889272847014005172516019795317398795831917677054258411922980881219185851753180292521224552722432223478316458711761162290025577591750352541542546898990518047369014455626793234214939321854671228683357877879997936725162337207488938558655238131129025257471474462537661434347239519165414010007309651590665396674241255999775654259213905736923275334279283637769589436255985580345994289387397227848158942478648640676043707019340524882864131637174967986360778981981498903725922976207648661903534185409428580239120520357577987447199960941707823581084880782945000028206273499573313120023092767629349109111201940809093796505668028822513954678907973986533686829330109232838793645918681525792752004114865896454078906488979815455974684061228733356254188629408196268503309664629283102263155697942180992807221619418054162536358123273803463081942613159932944569637311603166202801715200961662344902964902930871193741419739439494182576630186955985218996493250570561932347331096827599141898579372528867602394172718337363231832872337571004140350455268326763224994537810850520415135600705958515208585213619730656190532454943701195272986435734426154431593125814676198605618086551933671398598321327578283682948248993244906883438912507320367554517603422271022498971803640909140505232344579731049268992339011892757156086825717363517025203191529643453268750408496696408190323348717386728496689400507153801924075651887933581159906492459811844821860638351999460051937534878967331047311452811476331325143853292308907929738782635884781140334773853977868330245511462935577939185015015651100696575840122664699402474920300959552349433443431705384122581325929791287476153141723539760983909340781031087534133163854355399657816487628544900466426431050278457108943713761997284007824124817327345830440581971787436153888290342046027249462089489669590397528533677317781471670942461338646537292250103770736613526805941099746218798415883259671393385411486396396818954216559386949096244842280164087847380127118676496062277608575644212107038995728162093190734198099209315474794289397237382863853828201558954041647991547879991158620863508017766878112225701103550368488825124301445790063701710951221031499201558700275654276599516897638925003192690424821119041962379290303574195935470995587812249989529307157821140783602532362850423697500483646024398336936967025826791661927694176570462442509952765946051361544343993834261245216611318876584212879025753617174717722608337018706610480362801718316996263858454069059468114063964375301326914639747945129034050862676626081973116238149749736708186158910981118377469167491692743327168803319601365628915482630317935225628206686357348553963995209392633054515501825684424228387078165705432920543148633313712371475518263553028720777701309859986998066465071105557857856581626772076184873620094464616434781846716955737800764860899579585054587998182645490530777317247488974081941273049487734161679005506526779054233380655758022638685854956876283550041046701032147784004786028574049179888957736063785902218794256765251637297143237979767822712220840781133766443955745010339857276626585721701695797315603821565214019192525532296319875980676750889640188441516513351206341702943198435665930713267799197998308516851621979762531550186249245640744072641029800863951541819081618365471223924292191133480738395337442293191236452381787889040459727616707097593128831389282242735706500133120082427264919176436729551780340506122998270077760226350503042752754984752556134600376451440715235155096394743251465986265855120547424988754814422533629482616665926002550585547690145184709691403477496411574624720045572563276755826188719101594577024008822837894383852388062306752098976836203484539982857639199923754864021875851775839863653833106014673115873320095762686171378227713841961326734702349809812701510798837790690976027427122073018545677220616489283408848920530815958772062550420445039809500617751565073114074670019459562338663375927829209703047965692832539313840206723529596065284306457368302205548117617257490157670000940234516014300219990094733926573955872714664035197735199981228107060445702021443393293572904873503949748887079115713841534776929976602765249213930355406880328251403025206555839950439873157869695024992280528374542167963852348767046548466486195046144113755459520937201172815181409336242257666527380487614898482086959247458425909197913685010848994992739651016700059357747895161584789826337147487884319953659536404419993185258806487123863068284345734347197660189467938772192910214388431736104967093955136382733655604652615260347835619234069973857609593903810047282846816631890142552207901988288580040703541894801813793521287357192023764833652695796266276558711115199870436595080236167644587428298801546612389052417404588125247110183728111995241649888456212163774242651187382651537169625092955487609801471469042203972108024232618913656886511241813454168827500350996824006969795926793590446859064177796122989359661840999710615912734712921755230277922579494348814590173862392642433568954894478043660946460155707907668309482939317763135649894642207577113667274773879074236289438183166120084273213695652100553979078618482213759348184858622252423368279420333822841025346131598409333766555445328258365864814633217032477998294533646137918101454087799931390348764170665952874118673048406184560338351801896580451033694869467056573099845897648420235391347538342538740337120000121196923275297381052299997795285641186608351282001060528426959734962307255262926243644713893102581122194820027716818967127949476709270191997230107350302288380150659602160813100163750751780234254282458661005009945704364728997243497082929768026104394738127386551485208546730933587176508858623104679945692632351129354307238415921955378981459688229382187487110678506581491676417248431583412161798101152205560869318288952301873483464229699797924662339876626975021003429338590102331610680416688537702525568063518518799399399243374760784912098131751823782336627938391058301264500242148663315331651859862465471751480857177043613174498196960875153659928060353537959365020700734070751971614763387855415836896129601147978492619091802849244737260251453944047380618746448756495724440698052140198820042827808371298514575682529691396923266788616345703273911287943502916187212933726682320769217483544465380136189504266457495253841723921882406549002747768916352782965999982849489398018748818439630165195406065585692212852480618094382422249049676289463904339769156485288559043039126877836816623280320822140534434365826262652624080876659285000356604366675863242432516176666926317215060162608426378333446543924137666142955708035650826853878163311419807346796262940139870949724180323127280266581319424637528660147934187159318826414786162052661501946611888754920325610249866313645341151732820467776108227563227458237752183475613170587152399319533393762884030916925592464358611533374732754803164610573435160405579389418351321907879801718514482138605642494098709880297959907928298112557489599376832642693135774625129755212007476946004171274095309271297673200281210263724596858808721271829023169572268721867117369435775088457114807629498429620136517680525866191093986620425744680625620565635755951562376655517229964811116433505502896780018025262213944952306212466297742836698117422894402980101447966128691909044538534173091354744843566641210916432028543649296610797107381085500431862668616056695960747459520430258785118755791339115669610187224519884316554924211304566282679106163499910093995209398578847770172192182406890111627746068877784404746521234118774814627568560182969558100756103588697265175001378466549611982892749472945693329147040262777616397567547973675652712268282452159579069387775721411725414688489923305163504711738842012994457815721635186114255226267106639809850215620459401969064721003848168479767063893304636303615977643421035791699730898423562317568209993101940785292941344590667741426658389635759637811769466522986896467662444960001226646278985706309941086469668163281209147866869027918812878709947750136816885926078844097095208991454542623410471127971407061292838368655266468122436159134703073379457602873119613750532616571644330405163112317110545765638360590031679679771753367468942262600245214175361935703856441158623748278714370057622134242710868066438427498102035436538563709415202802161743485940313869739026099917914320338358137033022451206920683889270832798152330537769426377179365860388875112205692206958997650300575180187900632836928046251875225975168132150393031372489577113892322845884392800873718789244992802285981798521921502120262877832256566561587336787459488443009051164287321316545603564435408801322634004528445377799735232619399149081195146035840064767814673823872839360872258995459337559285684508200526268838933698535215513475777865740990546252510170967876001649283029757227899529792512578314151187973962493120780824563600910053454280457157629144264619964611601929552059217820703081254767159517200127203062374982757162974459201266102416328616007404601417091231916601947327275616366698616376520484587484866143522053629779871011154350479287507177205736944576439242316343800052149896036770933617564583347133581145577177030146550006834301565370311968173358818076867677373003898298676478175821532670516415200576618371166013937271673733699349583618733051518098889681816652132084341944629839866608502318692065750159521370470110530249340727239579816288763237087800642540292634009563641233243591210060327338295828079779687272152929304865226159900002938579736479412913901345292310195713273775866616983974925742741640331883092905129962509236668213367512941363270909054952530947724844651773853497061783396049781553352899939303788182860865359738869959120273775429623756648792716610134769653362806211510350578709436408579928147342293160384320924345330247662938132669007034973937412442363178531389839601565756354805479550221286715391795325001985919646836208488132150010463705382735881032059906422245841772548309094341039080614454227253601839521290924040402026932010487307546873727795846945395590666474151617158359231025215455452243278875631161947620297016110218152685731884742576982139973225268338906747063365008718069585189482809314536347869417846080070696843166904550228597554936802981132394525633474252415132674576401693224475518038294187026840784274764039455461808977126161880133901610795045427349748118330392329983202842708990114211444183073620711105624092205370771195991646636307781214828815622267990515990455859698582414224135595723872070021545473113463874157353787302609022927289977361426115596105041975674011539745462692761785024723890124399649705379678262104119830456463295828846780019723868140220638144213552364764398566270342773641261106091342121692699916343799214804717090098844153245423152856516619432597312057153619542401078483492393337861318347500773442417817198067405153978127124844295489780255351044035950410042233740547787300590335442692647282084582986454394380661997567440562898975895559674462465197541885369826385391146999138708110997943915498687850853820976315003556992420217045659899384328408845636205159166064829744574229434229095624758161949492112815023500748268732312487523461660715120187805946338080607419389906872826316978020782332894119387132915012264466418894159483548211038940722708268854070059341749502437525845109724967824095454463710263073813563319973704250095231266353203669509466525786471638487953634465455650511176998388621100304880306968041258632204922671548331593001773720443129096723872213394008851794315399146132582937751801333744861004444516336590188492147976019251343544337432369651536355024124065336914228438585942030653213903195316741380040377983855913095637119891040189109051784261736613767353726126615793195798592601383759261540282281605223400298333534462134512514073759854002613626936995769276276677736455563690963926190135858415753690353550334009749024574857892993501461357362706499330430367242631167808303222924147120419057945359536554828001988889322852933127701018980727734214728425169835524748393399273103337715798382272713360800450140238464527712060460632348042217589094456216895680658218176502290850604251977292650383298874183767324464991975080178636992751012651012502083158071243025945991234575821686505744949912919813379641935706863952582326666673240286326125826123063706124830363065955950916879980732626217032334579338731195073038018356966529758985543722262291321812498060933595707376050388768676299793185079670524073402213166526087157349158885651187682509168083304752938124576066224246434228537586166484893857246906310524054388642024998596357636878690892321452042526697455885332396713532958155588432568547194814403264618637460122526824230237824895331526392054111270221166171388794856262343390669925883766831664924837369447533647096809194400539206375962100547350188043131907707332935502388374793132720740085175783294167352977298288105256270995151414900124653000461900278226837080333732336518164839074971559979188282414892165413618076752512645028052302548218061257396410449553951881772496653967580112980749375507858323250640821467940005067281112033010310450663003152529945062423859669677229589861308204047756196456423563645208136666380690072328422088539483032830666384210531128885157029486355870744123051777224577403157537205688465272852674701324770687562260944350158294499590049614475910924895880917208905150859070836094446653730768817259726059770659707485437719557456744461343818980623140219948139655119125145892147805217561167483087158251864561022766895903575481614775330962331997380140352850366076708845957312849566892380184627511188358850384261707974008693357249171182388025260376510445053570654956286279703532033118887590268099318948260074198571866465097724329616831323634884668275035367003704583848292290780626533013649687080565935295608750374370985663427311635063918740806598483992661523255069347054025785101663886736102577772691135226465146190142378112588968001909683632846096298647847832890157709271494845821517931245322666956465497170995543196549159020123540752168500578787996444509849710988081132264178633443593902149816401164480685274704562522326042000757308068359924917025966735747472151811845948323257156840509895925106286705403294759932936629536179169130107899425268168663254583738625467911041636218495469974644723960139982177886881094574276015334920280316082499115884621868494170971531147401982440508240183685039198941992914224156269334340770971778927536935580300778066956339679533149683714339042507699855038794676642495687409897156287307154376861261963895046079156876319050938303708017382064291273929642010463518707772659240361135589045402946681872197147196825433965489884739542450933164482541611114181393145624948067612757691077249545098197571914411060666341652543908059715748620989663622074204542361120373182609706584899063498194257443591187281085226288018199584217588341835837047808758275582050954322191082175768176940603342093481446783693267637091150906649469105030903478420245875533662756970533438059048287758848926709252207329209263548682304211539627149691054567812507494528147759077906371483530404006590534231448020982962578897722415472296197131864630109681726265762641679838466640169943741457846498076116478141569785696581310711478646009701704925584008596749413431364347495366452614039528510025732308991000536627362723457645385340285439119291198587782307827794520708812469471831611751437277461123748000059403269328901313018573316195073731773039464262566546369774639473154766528428072931698912103975338457543282167040671077159610736307557331667313063891529553863791317227763432624101233822005842947721867373772798727383315217829390538907226144479667737041088567771518682525004402090343118971113584371030356813587727925411986896721338235864406481371862441213235948968977051492341486628522074492535756964294879550943796359024013398194132373498172280960188662912505430132844856637644424370817908109797580576094511517610472298084178315022852034765450552697113050311732935292436794631515257071366853234157379493059137471515666789506356515345440161942760409556257671546128300785263655486596104756688472409582085987065421320122274219773204049838077473310619536316554884410873847118954687936954386041356960937200354077923814850535378397621951535845486434453430110751393680351430137079988102398702596217240782688340325405551241886958778613856575425359542538950342373823773395279113180253948619033421569088778739576423373379065443943862338290024932042090036360692205267457771291146244010686716446470348027446920013282813086264454066512358674594099089706640493819504102274674620614915317166658839185806007452544574217801576460264527773031580999118393746860427089578026957992156353105212015850145096206432380373995575238175121101983964834499019967352569800642445249054768302398200681390876862686044606086174403922764585375303889352258701563867829436425357886587604141803588674834579832705720846766577014926721534081630536162746330223230842528324710927602638786214468906989763283554101992200045266787170692197825839721603016670233163250816979730236282985666745316346822269176028740497906737238268791986543921553269654163017043175843362443252272690533493683345070410712767234284667443446477798784539512563025053989081017738601689682673644067115296118586058476708038195621308884843356764766648495203054007779480297939834414708163866998419437367006491495606308029356648233192833971071736256149076863620960462251300690030952661083642190192547842554542397006844033086371035710220244957628437889843013723563461794337173755444846668907629834226455332072153136185958378896537521628029562263239195978087762623274643454257597039283719235119905518598443574547815359253441202310222702135384380908548749761807231027848404627809967539862989865303635454697002868336404623522141110605160961956105113759380228256253404036121814907259694792566108072602202165963898468949465709999672921697097179466616402121441158063505811327109427415657602847196762980041048298513647213571238546898205198018881488607034862646925294331866199590067651583022340940139414669972778084848257238450230988257345098074196070828671174554465124891891526299285939137261243206628206593916407841445215718933392990737733495967597278005239570146941288878765997602770936434189810125891802308198947741424837450812573512925871903725839426700167546609274690523718168424629977694726339648054423035829264547078789533692830424488786872234176230721881331453912780255743104961810179660058196291891068405491644370724179128562261662722122785458192112868522879900595327164614606499126059780289996365334582129519134603374496965002631059872527573056892014913795384292747298302865658819867974283416328693188739382151019207861566035825516950129634470452551023454910510025034978444778229220730171357084637070293192374507644467746443488550337745093015398434855280487925964609575562810792355895731438692202669695048864499808120504179491624393867556254322673163057168202281545956226227629551561936179345200698284996131871976516443644346733758938521484977311462196832122413238406339936425540830539663210412406034112117525335662475273963759605774967644803438588820725980210688747590793253178302538913652870741645134564663963070177563937918481881104808937800398722205268126077776132448285312206916617466663227277245172314961262137773264388612587729086437505113339819415999027867412339111616505803444514930955824701188609592199481996300526690998402523024949945100011351018997047745302623924214224359795860600071277188335732567906619106842195392768956601409385749852748854054075935931222764522902764768093510088915811575020023471421065753776007757414153677217544387535118040653217918934285957904046479571957419339302959003686696395789814591733666974868405255695411536820395257132951879060191418011045777565586388128744645550911952806705571135781366771972690333881829811423139948363696559278589715438931494598397919756156485538850128196780632629290455941550850725400700774587015210355075789744805137659731635270223308882333102717398282055730987052577954309640060730234430307422224575651603004224805289778368223525599007787248834020244875060136913389194898278076445530619240928974680037443015811280545694618704261061078504997528245735970253874772610620214293881980119816773529107112712153063589035698301407050754635211099162803634874259681646440912021212479110581582460420636136516565474725355605821636836980482609409876555583338168522734300197275183348872604991897528463624885754471601955586322010563134890333615481001885087066354578606864111752806049173107278422943225885314674109534476188276400699979258592380865719449389995410000426879417447414700071447902662827364409920875597196730983426944847814835734193527891105117840365998298427875614501894608810879101239631917411146236457025216435542455160161531873911072921735343351057510240470172094354126016669405905297128417152112592569551744563809117078901622694276825745304457506437872507305535858570859368190880591354295346465718304246107619152327700224507917126333318019911835288088588122985759412400091687926114962416060587437483726554689174305072816674159535291005012280550549549312762483961870306510942950341710044010989973494566961870799663910449442936916189287021390986362650644726392410039700754000264853646617534945477266633631996369534259423436875481447707628952301889887329086533872886748940698747522166740449636126712300223696788091278874254960430394514134728566388444930236427197267037106728143541832984425083224836093054600525519067723283808545882478996864510898446168801472855565042231027428210941194119989361787808049535886729970618437383005019147332539167882432742907415265222485538363371415499028342600190907633881213327894370481728488732597578620601651286495300024978723706810536091735298083084532293403784875956980784080067018986796881919226670163655428563710941900993920870524671180910195629374876499561040953043957755958223228846302742879213926323482051042657150181846212969580117806190915155267050402624471296332324780083407479375011795712319061377520663640791036843442850512367405159714741620544255584547300984686504947620690362204184555452897614254483394059199218068319581425736806931786281240379868864896620782293748880785145790475148147075649340293760671254640838075649225936942964950898887930927965253762042131911311464771001666284122066739212031577235187479719475234294486592067722767924933872595082138932060149141062655475508763001844467959774224561502367748172644851640477637642003849417188875480702625108129554918536152065918004219247646898204230449248521138097843566398843883489006903584415758102993133416763925508233780269050665609442991325773550844398690385429143579089105935657571390456409623126875329754336044852493415392185668658240473419259920355258182021897403855143542250200742525616080289849471216862972721237053615586276024706330708350188100779576801953343839714276687382672158131998312357309245615904892772287980189039989271871537326739217049450500495343569770867461997487801115644030269902453799142110411827137194230565224152053724312527896296185127051387620983334453273494334357844917167188038251950212395293577852184224598048212700579241286931145947330060595382822272648774274383705018550343375591221076733925434424490960796478722645696977084985107885635586949478962301385370926923199135625826792221037288415075229274942376263631450766021334523103337715599782918038153901295301425171804019400581795743376918466589502833854896881868240309340446946576220052079090717582770905351633211598302561420054202567774235997785543928799910381252191451094073333957215974381859069197247269637655777545486911116048358634441515866524951176343833803585911233919398385570940972054885007130699610230292663669893202007749103464143950286110924471246459174732927591316319743364978472898168973790859020371351880878659542291733883227678777186660365424470212783406078002991065929741485953811106585480791597759512022173690922221108395084988536308612177798101813950236977874266292609666660108465745511504396516390324409637479351881676884311608843381180131764887994608562199454925356364209643448894344656522103223577325745682945103330528157201884699913142829590187031335953171141898286950510776971208227914205692822356738164825138997510174323842933993659950233976232756724870630206292618573392278187534292126684849882981115982352972607861368568519037254354190569927404121303776773268885033186869199452990316966574830673595536498288221812541623204002217993198597353425368343390966274855790624575190473683961602312432878841008962316038466474097108696183323434204854585613053293097434469910990422894092626218650792312674814252614514008398861383309677106606285343546204382716704319957791792892082007572486327787512386162435166737149177633229208680291211394360193755758131016932222081386493270472294756117082730882492785599579272373727620371126628500968229603796347454518732273055834711556139541051220524229755890226149218890398784325031316724631416423435336202430658490596855983956459142782503595934775417700896408174055265547861095802951538818875997266974560666847108240112333806138873080619373075352218789086270310625814981441729573758610660457290700509885739749242085079581986341585329029524574187827670524758061694824273597401530618850710743362991541157268040933025537511842747711524989127049104598009870553899202075259427113827855744134173287661883404913781420020139950592421756290859904390834577058872799829115490341705157878251876338237359580116539891681447378949121106833035942309960647079261494199791351837638138614963419588225807215600213805584564592673296829621837869431202386328245230761984258464334360047841663488995115956349151570485824877319417008418122082824405065566221584158169770456426509634314891418421353295793226129547529537306068538230862241885272542894422152289232587166748356899489152121306549675107316598579807618104259643046025064557749732563506147636134668843584018869230407671083368195619751387873153531174745147444112126409406789722533096439085635710019084890282583067016876221499483108047835477960654885433451764495846413291142020885971492696482108602666064273031506302184995212687932612936661798518694171626067720896252776237055518016943867582093929193775471157725134615376613636719470047613167478650348667173950719689832510557357968386809924607641735989130336477766284508904959453489306862496077907382197065235364852247687835603150243420548246916485054814468463113074933572598559235274387154762470751550211635633679154194766522087953304053456678062038655396209727393336524068550974720823750805673719664453280888080538513866827380829563119028208898806151321468781127899810644345520639927378353286848618807570844363062698038411402689777452300582038040339653345040113777932033960833257663799265071135654348247802289421629956315021245132678449566357975629882831946010929372476273081569914224405326579586581780362066154406627094988439263627176071474154541998006459093170960327036508825395021765786086361840521898348915552841269325276635781759303108801746584066260706375352914153019007025755752728264399137662462438144529225562974432960389756061813183447575506706579543414369199519703337294667629754731390536452611797380379700581309360757762954275601734834388546369671465565885718182424500151331941506912192096744989224508788744575012069976621073161254338001851000130323371125149130660166045409711663508985359372334007787338690457003169239047363935853640596786604013009799206220217506091152062564884377637793558894484461792982249515382216774176376437866116136358888360420410617710182489738217467470755970897265798411078109433215279637264609091653722307702122898321397638595980343025973988779769578488636296055435857623994140675479205343717261815210224331458515308352695170319594574580669262493094786908686479860762464418922170896404360008881448310443331546495991350425476609639298866299666230261486103271199573118473474592117623181766741222919961474221591256123401378124003318278052268846680081888974867517939411487952470969130287553456504911549738231472177564640545459162032410708535078600632480468099770019867860316583997311295434512976453022403124158717731595730262866707351046760311347172895950040247851329123335869205264640497554935175423832727952873151653525386495340720207990812798540598964586243249900376669724963852288347404742390046860090983588312457079380651438670306148413839895322642165243358868676721708106281582684407517264988354276784671971053552092507167969182100530486520668070537891804872523760676966080000654327358556061360994452105819358857989169259505475656366238697430417514454731435303490535070794360864597086962073669052053060378232854767720356721330308560039774817845591296243735613454707661769316416146620460417522056281982781283529104869220918863257263018894949618979408223291725824466036080082064080985143478671685854543689538041195044498073690461461009829369596036225585169400238381667927683628653313304085434257136955802483464066067317911527423774969761510763635570916516960026165135590880480966477253387574364934067939097410761885160146999650225217761685299598203577335276495251137149030037473702375340775815994138124645630012475352060316287986107929595363105600805667606902115904401255457444884298190551933273506602849203221003763514385260100759629394763171683045192694520184279505021083183918196688887756269179465923661061814309423885046921737093177554116901833646689864905308322849451401986724540039373858286126890133655417592397479812532229228754353320538502525522979263525461324365196967492457271048182700613961336072074245243064510097075498987974908536168654235745696975131844974392407267055875547602058779930671840512624095001284112802155279676350404432345810214134789455920518854818989522831305251671040042766418472484891991559369389290957998299536397815633087047444131074481627114275870565053497825389055745144387933414112511835469790492570988682450823204853596805406597157588174064333563711416329161367181446337733499517751635362025786700327535671073302435425126643131966593090966164251576046326943432851922516902751350542277648313756276956123031435237041510859946558877379460764357959315606581275747961597965947074469835311326445049165492412141191242625676430568300532445460724193236948698574362408823365252522236179743413977814528453192066877998010022098602353573689740986253704818968680603405305168929078365313772732576238124284648930187336802471724720565931322968384750248929650194804074035977863704129684625258180137059797218135396376476216040287979769201695518786093197796028119954366834021416582005261669909629210956822891220852803928937637861221450300188407001712531702197325406775787018888856345375320030308855153544600916455004795045420245221651659301010389708021680830070147357299467754636140235503608498902339178353400321928011797404534918041873777143928539737359578254729644591739771772011871371628981228526900275243048958703633055222662901301168044280587482528711494568616964141467135677109591932806216494672505892203928657504277786211089979393579112665833247970484985918048836837158364650796463581098868262524397485388645451499832277884804219081565680680476019371403212629102445510494501281842821020079233665818373070716612251166882032556259979491037705725186230717419324290013739154411521495302155076865519778682514837493183646812156388702536005813666220248164199186498282349117181467735132364323960273911534341799554840093688240313712878000881571733352068476583453455948205644360974145011633348949336832555972670272052796366392858611494266101544156833700006974097660069285698418055727241507993121128896075007009092273693439400732238263289190584944497184878187592401404645509209544119646669706081864528313242735856808885450969449656957776443897803226891563688114643204629607353805854732316164956040303156412467187200912441193942879873093834312871179795902443858267279901614529330435251860397286533119290622284287154180850099944390355506851526005715279740992339307573184994832201791027212376043194116622608782269759567137741032960623673932537340486689780766733923562741040373923677893507800689130893655012485789259313980742968956818141207676265356561580819611393929593362404141703062108142904893333652212684109609065900684950377506263483249800267248458514636797159648661885740172368743958952811020746934540937999832830518072182425291526825527031513009607287571513989698197338336681619028362540372542721735246069138187015655924910396239923754386402286462817956148764135918072273606604355357720190300213074378721310946571891358639745509988119952412828492945909747922077976820516395733993114073629450904551644165312931776801507948068626573901582171385711202882710315771372418201482758056880371610226729355039111120599977695502936590433843253424664923043778921855251536553601213892357707506946153151211725498096405811108340661077261636788779334766706530717377719624596963769313135997957515046313975587692083879532842401238100260200113836866911608354548246176665961235410235690283772302516779882994242379310134190006277059119081043336340900939673356898721413766801376170918029812405785291088349742295506685835984422310129131818089757699198577278954021139273108252604821934585153107431706902948245353296567890495162784986488653781982873313961286027253342049860964256725839916682254901185638485029421940624798552323482159911617671683520257747939151293101752704290450747996122231257377012758641260752334150749871805659870327246999071230985658356093535934543254544217947622588591621853048382748775155284780203902765461357470301424415766642333782246378237383453611714789966949810974105929911138081943036504926358851831697586363073748629523401376054100209930196544974962647206035578992942172741699388628546010953859322853478691766870857425743352408017261613946588317690208649251863423433603211310336121685780330128963174619877782066590347116228743248976023703464116503278975664174563197812945700309198590123386678804631827151333502038696347276218138557060551096160800397267899439191999027676036019151388358305287569605995889924644236464028668988717226558142749243503354087773697825636754053660488168136393939000244127250412772207127635040790766878579552943378844643369492082110055947811794394459914896845090698099335315450093892617933544620006600390799151367738351984977281657033622557435370051691519723154078976372843496612961234324592196361566592017921627718390211110826388895084774918875984750171739657725081928786955724389596572018146124698431342805472874746043930328573021282782377700385184603685481354967517947888294827001796227331832418054710697976823677167058869679936054592039264579382261064967444932585544605881285924080594699267259950315120462832432866564036459908949959345344967430256022508569992320019229108028326961022032561084725294539600171621572939509680406293217054420782670001383077139027058020731395083363140028555835334511874395349609727136611193053025945225134461437045743288699037919099499738993307987447948120385020640850133108280687126158134680533527758462649927472963831605919637484847188504619649632033635003101244338515080328662328564322260668212995782983217910095009650613208756087173418649240999848059450575809786802079731956007247121431870597665406242412656744249291110071012774052917378366695156238495494386259026933401285571965302686117171879828369106844298953691685609528223522225034480945937660312119340236873609313990993185953124850485539093280512544646742018179277784425979367723875618165823768561937091437625165069053008211973477927301763456801016899982689235805992035849050578643009855236514385620304867887088236588999943205030963537758047428869784708743097715855439682778839516757426906623914406262327932069151863704681317751716883379033676324499602161589985305399611594526119282140600220165692452526916333517790919762097674247128495789333157867306564827382522613286363478262820001724338511677641232455667847270608630471971499622103109379809901466922321614581376700808713698632945945466921757339196512489098796729891426676879813784405558006254196839155801105172969825380095015675937701499109857916966695004880423395490625534089801210993711232781485031942073523417991490578398102888988472914347313592304235552088121976387745552394444633501888204544005452458177220449959934718496643856785567593754454922747745802880840024510877607148311147955269287931295791936296311731227274442198071230891767270273026540475519201748141927693695263878945382945230568693722912930512033300531076066876112185737604247805415792193419072436489598080622405600245042854666666627292235472854435864791889071083362303947163275261629524617989543034386480317747792111767161182937691978999196541034855782225137829656612211245304557973050820112275583131713483577408948016462156786080119864555586481255927873232017257454153045863477577359478353380365358406628801009170334210005846658857742312848404303873519507470428630080813252536759671700600353842710145946783580001128683112475734382488523439188303850983226619583660692045136966979773865101405877537202512410068419967876339777596953532748327543742218861899728611293729282845259495264811315091198641939947440783677717750160799034113224423058636392100681772639384535621019523519398102798134691618604435685772990261294544555338620567524346909696620126360712458287068514293476904053723918018258564687315467940363881785373574730627615822647924492705244112360099647298092287144703022585522239657370001479026081696595457695000474098154655496207003119103439964463885335255940903923459384063571034809109731290049817527762219284819275303207260875007151405168219033387156832238658383594027533379767061480841054259098611403803352710612975123186768807428882971226854101455009461322755073264254904222868034561153486266965426149767946103728880907437784004550245033706300248407064234123786033918980037808018969195959973406939322504517788022398739729674391253360963542054224542902798651185816560439483382157000614100607358425355925117174154290457572653481227666318117305672317948205864994147644262513137197485765199924525472506169250742075424877288514424011139802040476496439192401627731414363901974820228848472560311273919136471240005923212600216135298097839347525810978966378339113044652107358551928771421280498149039019679667469416732148676037829277723817103900142982265034122196110876153750321623011739123225750689980840091091609277394126352704461103060595902507912963941278175242408952358250805308247977813202162534734003293695051323197996538416175173766019715242767789143789864461792955736261581999561671160985583078026182742326472051925955414543616492902980417856368440336357527635008814413318809901111234747077534230253430258375588982561858783062958722148300982523873254263289727807717197961830774582627189894487490031168816134540673715198767757179608067974034669980959725090841848454606244463046914253988917390201424814598801680842335328627562282212803900702982853288067436353208782450978477315028819469629275078948466991402185864914979362536186210905955802689494416925034980827159030793340438731906868245982608356472911027742878707185175239851690096690094934283209478858288232647440157067771682967703918183196363060125350918531798561958445923269804515180306503967417067592389460022358379588168521737382375644786347176650191209790697142755286257507174249711768957328358730198131576516353167282655392044718799172835729591071246173657097166100113902864930841023831348665495678697060868194381987569639831750043340347599753482050973809851495623236656771620518814085201925782450217847132138964198764057274973663892795791668445806169820640749847225605725364650102328101940733139150336373679331156732491429058267051530741460219415689821755276211921503864932556821955015310926027255384638433981593310216680043998822748728080750706476219611888917754047387276781126634872789335461342821397353804785828825147373199622627953789227621544740849525419298752604469922360330302043945002830441732504145303532944957665728102255318569788178202138643743913452875900798264349774000195752468782624065058829996843992967713199687849909341014721183619599362846449889637197275722620808689398778043193812403319395981397236110943250903357938970394137120242270383454432914211462261313683614690731409821671515563269998314101847112342595500399879109527499302834556083827273932373104575731454403703337103050565485822104499617087078630010680260082385582665836770492439212502329120918628767665997438959800826087453668335293641848831479933109389699544181655359885201801461763613531427464660033708897329747389821830962329674464973282740761678172509319173407371759512250209257828422302000972841809460859557723065461953399128106922244045078312827040473207924883307179514779911639142622559141785340116734635227638240790307898141580622076958893610455265503919598165317853624764225786690904091156386557575921252308198058353248063597290930842351088462536700660812018725423547296520769082768578556080514380473081470487972923756609191306265919593050209533759651753720023843876482956109004452960527235710083354494003338439608156251111529159348871427455387052190802757748009341504675256338476763679797625905873634991293060517429048548028299610846410873118362477922732839042281411056067474762898700545983324516362426710395501494669950830981297594418199509680487586394379102520552902051673550898079008097343856241946628309754415743656770150991728597320818306070840923888986895231836943640074793293548983655177376490573746145857921095621019253967590338695095799880879127878032530413086865438921806041405402401895872430175790828601538675921300206590183047768917084308841209007994876533813672280648393648554840553939873441412001300588626371497583711264820723379415929632666612919713079929454253125341049811299726761509923861533924620776389756923037587302235168522800323464402696614019959985872774359249115269867384898570828536909283562284502455968997731880345906148655191622642790460773051718318344786064695281382473588478619335238796216064412153083486521313333724307265338742452034900922626709522823242263171465966651784071646883357079228266157601665054427391837725458545214644372692408598380127429902694570805058276961218457917347474093422982045980891808041962412700760911593021538550619741677240485708659888586418870878484307224807109925936524120715255960650094199560266719426424861233458057253769694326782655197257632573665485611374973441909862082431255303359395192788874414609669932678904852047243353368830378565332291736868236593166201019448179446318340599491163161897188686979473352926743497665264112677742053820580275046248532931171845800646793630383304238432932060928278852012640563470564437476158597358451151384312170901764028903828782891629129922342956841825374968418116994941618561757934846812554286936891076583214715103877666498944652538544206596045540766175302233819674106684788233218879202902156979537084745877410489274821613724464327418447221441002299558832663336658170057973848884794572886648994772495302548116892259946615757086817391256047977946797203688290010233033703193521347828312176062426174700946270974973597226313773526808818892963309363754234458645262207030509092632884308329733388002406879713125421757097437878523651108764205080577128399883954109833135058700856916843783529329047346230939880453363496819984809043206014494237573009009091478207198725165754076404761134420387213396499322897286624792157092392358596749451041770197200081518222314635666161648114383185278878035944010219987776299847269888752597677556681637373202568489025134612901978529434495954517882742914112081951622917679669345720753585196486342229228038272539338820261407660931129434133029385752250009545426086848380616036619032189566360827347552323773792829668799970730797484238091650684330576398703530416270394111091920592235206333046553155291116785972429818601166975588884336365675116792779217611831538948957041019762513466790028187461916436238614036904734306494933585195363734034182808815977234969067892599754412471119949970977554926197746830669795642524799840636924096189147087034733717123477731438791746840955604577398650363559447123534673846363541681963938848255500117209601490760913463263717487173870594325968615060372766970720653721052234739812407381040636606429505518556796649027034102531905482416499573750902082345182503144605434825553446073614690913046192752261031611552385365986547682187687144526890573061313103088407738621249080757426516480771965334497988298188325514557263898177165105206380885401881779013550505141267756922719542994630949874735718248379623033542029934368325451686776465110404177421385975916987339834300272272537061982743079633272961927848569977888150049424639826610452759292767737388500219417621266967309729981079261022855658103474141020868423174119317323823429331777231329956600098263600512867683255712928543115743947606760793181687673340446786555184823582906466573287573025543014365744512811921248769902894293776559769249322169694498279732626272247498366449811396102094435455346457426218734603762696236873061877660247216270381613356298406280832644375139289155560743825051788414043532969165028240325575529914701158855144259751910485264932536607186334845278714916979049774158793552953861242678446295857672977594381520232078198484814113785933433512138279855020779557629012667842442800921333371859171031611410714406429662502336597441702857171318644762174054878024210407149735577720765242101916967117466076697140455815693872616052763701878828322997352969194416919470893172227589974522673662592149777908870679636261127558709191811143577431255264815361173458182549171785974979980692733491451964427445209545266422045330559803635424766785567488487050417658352842521874281122559639117490839695062864882709008842228286440799753043197005315397411066406514861663450165423904782832902637162975783747689434677571343466595650063762057609907669384643098245714403594120957660050658887678761269877218555888140694390379641105329956027693018158704987823928312937151203887515709689094492625734468346854502628969948620962441537874425830411701572522706218457015231883733958691493264963493970098010594714014339154335666056246142625002553233121372984432704098794209301986899294235941704730211567362992054995917299378671121906455747511287067788657304810059071208963213478854054976932160573015727397426993153317109262034779573882832777800319526866683146860200076156936297197968792526525551256191482384997296028407037879260287702673484915049696995132266383936508044961154889982487972843176683761151158359236144379081660574442337438603712094594945941820183305972586451690242660255616265266457522015114626174563796369274921713951135259454624742550008756890402767226742001590788390809513640759687691284130893183393945657394229270828985694677993241761889418555079298645044161037088759115899448580049479513940242715513484810916579804571571367764063470448725872622367792934540732497815662659499145409813655771186897727724303841606402125025026801188030309693740055707258846130645370514042417401511135448402676335444786654560266186655388682739455942055540270623465328839168430288406175911640688695673956363489754134390919131849168198268188199730196134903446643833693336053281958417788953231422660005036883754270704277761204071963890707648394705753511310961860823447617170342519360691264057272917136770116348012152571748536793296048980100921693805387417421915001035260346996146196418530269022269262989962557705216672673830761605629572408390106782235025270708012604422345169786129099316282571606349237475724663996473516033153986203733242340519498304149680910866261813819632470525756899439454984586499437012497215807778052810401102363078578392516354698232166197087952124211485295295076947425685943779820120715235781267546171583994600845809318637687701831310963058440801464366510002151336353223163135869072444174378629770749715565362980088915772543560241069716708645312279554156987643369747947269358669433921887849332462423581590071064197841858778901740968708487824496805800940532998889595968764485814006495622584429592911869615512667506446672288553783467051660089868569856969905945025407869085088042372002109060306862397692312092414715462087300986286307236727637892750653529511827038393815564578489788622715005872685135970998990774883556075302641891752300426058970866574567138355605672184744600295031264831421853461015703931527481667686132205012263565321365054339141088457789572747765031794607622161835326169215347584670495639334362388465486262007018427066710497136119783649746486657099281179937479312666482907405121488815142403091904181101233313862976602457869675555229915128567394510778800019152647686508025268496308552021031424603308684198556750076540553996241547659641494454957916429846530317537373042006884820153977567683166978626711355193382535032451227355280961172529146012438316656621700012558398829889422331204851038993125898218868837924259993214084031277375042453623242924134563300334487343307812448988484269927419228460532174839691568384091413617635931199278771928988498992437563364330793435787906450667822495536405769934934272634082476434304383080171699524683729453547292647915823458856087237122521655761623254832343888800280175690508260739976454741189867330957828407983902874386113757589867277738442363020745089146054415863443201792679877805660037751071095392213077312621508963959207562585982670616096555988217166127250113594022560048346318956931940245161748543174212051772609817028277940233732942113311869932952781637769608939665931301102495717203413623211177414951130152820067944010046929685768105861853223910785516117429441139219417409389294111580952023507634702305674865676147300503266889448607142151679300710952789171471218173248275054035714581622671663510386331910587628057171451313119476602484187473537530686048892971376165019585043795853339186634383222939854004105701145595078273623202215797902939628937458845283602450163574170426960666571201897144517323046595519099183133678837741492778229208308777196082478881651962360931017312924612572850778333924895008177898137136670103691965081759504770504469973162221928820576648692666413360418284780600941331022808296573382794138542097734962550944095885343389175508524317265870450458145556008069993133348297454352263448146062155422585328307289944049302283825867172194557912818938161928141610191585835973051609613132227565696791114697692599890221151486931954016047486064686079112933717254081749664977594485680491785489197085711345171717935192622177470004587547662023449090888756952117431326042234478336992175480898033703473333136325891863008196214912395461034399124393106343478880582681406926449579640399708392988255996949052430216297763200410936748294570008880077868375060793417590161708485773680032572190248280147423642785968976836496533728082496079765278583250294202386318023958341641654687386850803204600613457357722580039428000578177133677563648717812612859190791460024719376459177900018510551520132185704610444075548198808870988913276422460217570128285634001019461504927947724722145211813055320389608549646192594662710856495268484139166307992255862073696461886919711553150363119693909434270557184499549597340580441742261330041342695450844934033155384537441774761455687955640959904705026125074569100506110391447526139886351709521581108844050795269254819575367572263223089581413937480051815776574128892777251960924532382130853316124488645058019789364182509053257517409332111622242598400442881200996546034416481679654329505327819236097688757892738677467876176837942296325918037457626366614576559020852536183564288331966392494520341125261276093160496600928536400756495482110965321931205793047805791819481990499743462177127406659860960712151779526984642989617238530941754724158657655842862655767670103978987070372042584157211563618166414343035106538321662252715431627684982889950018076080701891563124006352166710136289873598926663316415433887666509769128040024362519284195552569872934588349492178448041733987406656015267138106218337424680920863939589623046327595451006263395662381356219074354509941115378151717392638207224818486403366498503615251008214364382473362453030448393962293538607837718610900301216612437818800829638856456365529911268082180230926254125362410636297543677243300518157258610899479152599529350297814352539540189183151871523717189838975160088427429322928936429434985658369459580280353975035021788627763538946225743579333980509407360905992047766030822306176880835397619430674755095309964902014782384639229697830008063060192035082100158616689972534289422912415866221194339220420015754083539316686380201530092247894554922395468025019148052418735593185594171941379208206528461197327038434834279040819441853632539043563467518073037295736956095456976637945138897148107531658145048264181588024006497690131136440160791671181271946137093759090733849417534060833517101479774797220568321228542178908816336154595829523538301234931349151822063788556706165942912583151638813119643302379734178719381928246214987030179293960544232256097792292938352823939990684958289323036550109928962833491054569098991477909920765217327945564432138360465437370260502565479973934703850645383059047661329117827715780700072958605237197396496712631436463661605925123168985122304402454914551409587120246339343051077243283402362631248578128685216013149587457875467855409776784243564592088209504934684513835742933729748055262698814470681849495505366059921615043638021403046830645593325507200952631628265816039845107473660048408118752305176066075791759791211343082964502557858763376665910361801680745620303021079578243069784402671235316966498416516582143068321485790006205100376382195069547517841347402722853784211922657050713160128589559949796933273161652780329486070239464814121610066642075249936546918130751565893876127046139738599557204874308382380322357788966083610397300962141964538242695184214649575611869161585211885227170298324901516969730773864367879599618305726300861889584768829727264695784499883001056598528540028000267573949397427596929533757954406178014845165740304383780328239271011505815368006883743664337601808741197322391636911782232241259482650235459257154853077783780046811532020474532227505460397310211347665403405891564178369697670320277827090108876648668245121402612722711697771406514540069371500723495503507454991831772917220391834846262129775138848686248142489459228964643320663499829052438365042233626288465466803306716489289781994972095516539275727488881523987119782851860197398174181270459805307672913453529530492681672932553745883989466092677651735444307711057518221792996389263109223943013266994085968217907229604256216348453267860031560847706775257217410864912722282577174725698454053436270173467959539003721941508795362945696550047414725382684108446724589740312408904128838814114625781609015984201833280349987492974517134750917184429942221385952593718915678756050048948220448262205145682381336804117588572985915272305743910387744494197522912539304090735945426721835083695140580809539778367145989413920158282755622910667447566920736745431294002090347773588200856644567251415002863097603959709425731745436139714211821970106242886306570103117838843477474845379303263180961473207549574803754805491675502801153621743603525443272874040288381790640360801425162229918160063818702025078076007833879765064713591908916887947992200939405049054823274181122022106930659877533196816737922965303271012312238404909603047917385618422778947182665442223504910384711545235233447014441380843847316557586847959064173060039406917323535122208965538623116727311840777741327921736424610234329718537876613765034896469152317150173802165273968973085373033479862153084674732600494228163992299581394675194988101113074959146736318228045856211367054259704973888756539694525035220354884593378223481838564698617815089880463055960234604865290361015950383261686511851188287996589982726943850005227417468945156837778678894682341331194714899063694366466641823875287466094903622131744197866902407960798673371783357138807530194297050028954924930385867328556287806036669289453289137445254504844356827553342449524374950901015564737526921702673784846641234176466316190878801426767203477890459067983376618710793571979727000340807770066286673412686635027360960963233544335012908067864358838687228744608928558688893928119363703272417076201482815142372710301322659754599114840014405204554724544446434533997764452160712908680412640692078912097384535061848083279038831906030880702755759985497445362150191396730770032308462846522584448491163455945039572803420543649607778320768374256311264048951715784600273308016508188942250806154409198307717243356478290221473878715204172510332062391663107952647823979628428664155991022388969030054341287051673263142042999098043601367202706743200540315660259914180778116053287742521094166033316682713208262851318587841632783802997500844999282793401279611784459526768484702610253053102168808432029263244070806215024331186238493528729047747160084626094939698604479623119702753320376999264451133416227608220055635454633980042810615593263205621912617642130963200166637133344765709248189539726243139206165342863987158448976613200375638437438003239509259759748768105715557137497345147698818143440116736787373780222581074919242948730461352404601692918881002499239365085983648871196711365738553648999176618221167522354446435537983447271630652937931704803812539727340785774468056242194806199238196008819834361286447980338634806981866822172265445459836331134314351884170269266702489709014025817375045561776327090753800209135117606961474325110063958872787736962610275388701467573549169215025515191024278517548826275876753856260313765960748733657803000076139500712876760631466146842129274544074200582265987340558610530956989482162943376461506397024087958483736717642156209927103949109352732000205685896213098142181779069925672179349453936984117490178875155908927020844797920024863421378300203078980424088793524937181502001800912502762554730793881996400665313089238467722083066525051022656970661220869354354874487080917474738356398369409434856478917919181336151280229421786874009882793122536135966863202781880643660004089410423585670200101063143705511732414124294252187748278989748200939255657396812761423780955846846288971314012663267353252117377496107316253026910817394944712898294738512518493680513065275302041425711905499357960463257490968800060465215514179547183305006792820671033060203087627964795078311768956773810939504305798345976667340093136695775207181017878283343503525054144665111921354291533228425443975752399401512271094351311421778783216262259339965090788539364276767948558066439967869248975748481209075816771216611825163285952949909268910333207867253686357693102982914687261861493553337948271540435732839990476879510052151829172382736854835068459117391496688217516024901587934511927646196285703550137827892777921559699080062808241146619702953982072060655644936102602355507218582224203739613785476392121316443446619852089493221308256148465364910925300060443267368668332390334486682478974946034735477712859853429173342033181534155673013502371525562063101081845199433199907652629249323365456333634700660632546807424760874523211421721683022787255255056440358624386715134335111835810991560828580214219212334167102722600406260698466075839055588597194154422779500825570014549962679720517273393053621631953876178808923317661961419715757758417302795872158492414780165639615190170625911358303313563512961289470437945649143734857982514223514795446983068447200878015258478488793109078117037818772485437619753719722296138459555910774614742972863746458124507888948865685080712015551862835520247999424739872377427327635525059814728861664333636464482037756564312401653683939729314754200999028324712579973306675137239370325267711518436973892991307544743627968468655849436199105475811024221523547153817021007218294203713999511382003560612380501890871469051717764391483175977422676036505049156397093566648278219620334727528579976844987492464499825083597818152596765652323157689347157536062847445418666212327095042768211681174451616485883533607140554818333840485073272373422356273673854158767974105937957293291875294984987637749520812386027533180864126816052055772120647890311013771065594871854538952627569076203882215072071688716549728244478062010214939972165657502177420227115910545870221826848732179720641456857799711053282612745945899938076779733347080990377954435055078445479806679228426588831492370328005118204486844651782922788950119425938195313696484915284411071544716075080816667594723844139500127244251270365609067490293666230488476525816748665107510545592548741440501137484347966330764944008365460975379275749996151725143494930954431182487037572610903789335709679163726949049668764878683327166835184867039594371452030089886015062948515242214379636811591258816267771741812774709262485910156411816499703348431784295103667291011547718651632873826783811068846119538075613034193336477007538803290346547078527318733402054700748117774453329206511550453738300441895884568829371861904399919659536351374990559256199131293038201351495319687097709115716995744414288131665770305551917059794919224466602422681616344606499445468018167070218679423233571534021646721327394609680938623872509731312255548270470348736245844601159688656401655743249088470684843871100120113083430730967264670630322113819348313673907591490643947197174700003970277235198286901264530808198111733641356882204452150129193053467758729500002070822155596891913153260503678275406151031681870032372997985733538492276768544245292127244116251557838525377069153012549678134736238170009808623439237067444903430152440239497097159537074128277915401024686323742945711933960392798907839616366408591865639491347334445150878020312849227039807589080532227687149266608225376144720459157182897225972062850115258893073846757493115340030290534687586454248784489283997671622190415849772536577851237357828283735909968194212240020523921966164386719606338021236175662967310561018216787780219845353089839213092777294495038423351252566495317938016979535730223244226834778291110975754330087057300409470682860436619718378700174426983856150746827423470312745213562734179215521576273472893870902023848255212819550686690335040239293191801686025863165170132693249881088927602107408357057101850174532783026910353886445272129263643235453886091435827067588019477667996095942177106711807453802485908287733495786489061345794099118103869116283110476682671436595229026082039228534293186168267221023135211141836605081326222956204497734936389133541975381907430206891084330740815947389384146672223985869552815001198926715687763347160591689540029744020132038088895507764378535337817466852602278514207879270054508540790917513997678984601176769526063278968240150467736057360427232139515448900150532466448826372729844841622722681262221171360711373521333249351879787328073412181602696316571097624938057512441652450268029124862325696748157594093032453521559137489635917997321030444697977284500498095345080356159191204784320724879307559025189510085681687475832737075835743029968340852795537821919288502008929864752742858053277864287618126286651490749628568922322712145354868268211874397421211509690031002531824467016107599748763888013757426589621725766631388818996523482538636607219685322634909854728453142980020614766000423927298075555844959928420194352644963871212458622675574340137819805395828342571403502727905592517552030573918333128715846970921836241016063042107366982890843660966919161680976845446669515966759561937697312751109787298457717646303020251745582276254349797665136914648595820593380291732294049779390229952655684046770229931509466180483277291341774980322510370375105331216210138062065894822704140937813881053418371971224972998224891662243547640431878039680683663370149654670991139883578946592057852971306583747653218425806184466274560494082742605154077974378866489046647122591285155848578451574486633316687257732984984129333543792798895514499619185883804963603162020509860441145379874353452452144828010306205110542303286847453873381163541748769572694697695624614489691185495475473402409588009517776651713691829599394322232146689874120971655446951310591116650420306295898135636244101439325500903964597897987710756331296703137394443915343769210254112627611243674357392525907784196785591798670869558881120602291136867732826186323537266429917452097205935311539128021486746664021348795455920999848363138288929456303361235058614500267264542825233546570880827349329004203232543579625952043759283709069284837865690758864730721865588850138860397617430349182328660456156475534508060332620052414980910083478475016930941149060713645995355297998356378163746229345728049444712144235185012184063922061985237675677784933006147226510108546497576418801231393404269173117774342320531284175551604135433310003330035091771691606092355877759801956242849568839987753052034780938950508718255179858314520347135191260244561246656578365304567301216710365171288463663984553078844377432742923125886391669708404725134524344620459648103644427596029160561276983228351305022160963858360152124169283522204135788616101990765679975058215147826896649908820378103538669720612640491691350569605224620296295283582366660687253719896373784381468864518409445983850570805698928797397995799507112233059127934663483578091168524003938851561576745253649968275633392932221688826191604181077280774434372127103075963409659433210730351183447418047848970759258239386630494771248091249139752316734976044130057896157381699514353895357717759234502086539655834732507539499366504236074247944125771044835296855839222196558296925702983288969049271797350945819810819588688577876501868919650703376296055323934134869590174313837460211116041178511828957231156723143077071530110697781912910042924579869183966810463864636653855592948992640476232188515250000310740630538629404444826433835612310249045585675406918185225799986662123813708831496741545412526297840388145786382289660259651732381859114972296563451938372702322289700727761212675958378394813122947622221870387691038887088188836251168825241527869077360367355844445952721565382964222982254882958240959477458129172753065325704411431573329726981615752666110066065252156855680889816243220724174165088424630868351525484941099248512685809901918597631590467254225281849396479681530323824461348679004452933707013977686865868830004235009955872221601510886896605922079909368106060806527065654767348228310017543250905756024561433715708970584703163606783989998759713954677192362260179274827427511788701062487769285968104422300007079146516126156140310206638160569571512958009864594193592014309613232256198178937072534602756993074913918704864243328325109336073586837274222192703718496047329322898419167951048577768907243182657819683917581229827679105600974406901913235258572625159296795971272953480035419672520893273936966321917994574686665377246662637583474660859533661640304879586862802053129156046550934886827916419777082292191911737870580800552982144707231788225586935318019170038593031031938207495956835841768408262157427647572672862052504350395519001269822416233647758983979846254744282902470503692796233084772445895807311086261686617663847460083251526921011547649398255106482480827266928663270881969534306586718037564801936919146443203404683471105779666207735403810668528206883767522903404866662987362999536319959200851970003033986312182615181404225781031109726069530671273029351541310767471899343501977147952750278395009246553641279262504028706667292856781517539137789208273875690453093322380918443630489387090353061817137091328926525588278737158097615439868805252798922152846453377340975763140002411064246807398579464782850446343090622827214430422705256297511731819400948395248548575678257028691712060698442249313917716983233080075450910258038060929098428113273695150335383612880584144222820577182059599749199347302759798798606371763180711652919671132985582215033616247063926260402021181392467652549261311847476272149362371597835934516375850244159440009898639491633828912625422367515389214041662445609214592196189971763378073268486991146537137020228560543449746438828393622411764616839095736282123932923477933068685737588433867028330834945585543907327483437777781793779979343659590962494133249517416771934692283997047256149588626002457401835665066777345350418311462976756863788322654712102578419243702815636221042944211146500415567609386999629329245951277333830531963034361454098377602854557969443460672922984678280228171947948626336381917953153672069048542907897206129984644229376802118387708083447947861480297224224313622396034514915501142798532133643351065152537471429524376834748633490226487699709796812066597015471688365856171087761912819878593914051775340288252504233662139347518935658019176269317169173066227989266030767081927824181817543066526153910152560667673000488951542222828279637973844124178078723718806963762339410351327839822714659671371766083448423159085397476331533307090660421197981714990537154017231145853665736425812570794618453109086863500563293545859922736731082762963866689430454496533677602971667834512936614343126344699476843390582066251315135409928716446561204221195665653487011434993395600149153579695111286582642535445173516236150970438643008083109967942842938827580657600988021459021868357774906556125309779642503419695885702570702518812254637493576111206600349345559966015300733872634840371537326204061011659422377377134360767582841988311936095950267130631970263289696371374345253762002869234016569305190742103003061383170832273777453922107202964942662576676821425480781318928653375281610327123390975864409888594457738628588671363072626487440616754363015635275796368388209960058289340402154847009369474073793661189875657850009577216609220208272517826487460019312091026472364872593164002713196067928028752412685865193249944768935347259944337637079841095515774477474025964602511980101082066231899141475544665802103217631474023829003476407332379326771492565064639760910379678787446046830429936871374177976542026629948728171433186144959306854358100608713635418816741583767929101053994698938724703987668232309049673149293256413423520662915143247356100351684007532719526163308494109650258557613212168464843190592341149509387198895687547085825820582082615396657590706904623570293279267685068062854318961581769012387267136165695561144398910611312919810685763939538264638852531337429722023957108845420414671464989761997597533171090369847062500308719747473033465305125053318416566546569492999186416936292796046821297989725968290382610216484733415452263859445120199690315779515139561349514397722280102862700467925111905089624620625978432377105456100081787728643630780932011249128984879849015670198758791785103177164830564045076189825817260749530423925475806398421938456151313230470821526258834067340899865979487837425655443736923191648619883882414705074548649457295106005858222503109315897051352521854896913910137012922252962744173204543829523993970924278388753030305047747540290054104553003948865672675689142588496970672623029842432441332748116548148763371865155872934605844314391838214236155381682473010596664185924026119143020650900445806891562036156077920946625644086030722766954199033135354768314453781359770995473018882631798212982707181976530504758411219323877667404331296973184557085802840941478471000974712084477303420103824849598104649663010057457139903453471613741112522466141532757600651394142076190478704580239354032705632453744859743866521083329544441160119167804602680149424059568663269632545932364798936111644030833154001032205518871826762754099620545174921772483526859423687635840762202608101737211862578052513482870619422164466467486020798115606570279317383845869227193754826533168652991878396029777008906318013562339233205340974680220779906995164585851921850094764432003655961848519886536174528237746891223535571029493391540301988070896342348415325610426396666991254004135634121711996428943440547415758261266069117521659396772582856014853032668538373793227574797825436022277194394819292803819621012090461769317038332140137662554418190394557447108343835569027878909347016844976868497950892842656770602691257717592583141199289647783376750174523705437454695086505384652408691540212354412488098967526057044177513741921574961678237491604547633887846284087379653390961105117406875854845425809330750366585422905164744811122413751312948903799464461490890364488575041596935404772618326087435082717314582999952757749619998584463033428221128600509128118950386505664411194929232470781812547211514292055078069122675071978938026922118238089942841809980819683754803435467298940845144946630750380500600585371061657946920926600635008560642269948354176676697241093568796120517703680053409629508311593624561256212604591500769928122396687538337159063913504301069412687949750540505128536849002798962299754377313619236002465838233038094203940162881629805166342107267912719253518124486161968227531385773582762297720706910089458613208077575795517170844275414233268610719824777414504838906738689745516448873151381547958389257886638666084432033662404717545893866927792713861607390232629660610030119507044522688275886990231947553776519996394152153364401229294518872943894057496095388624547958901271809581364788144778718984679473069641668856504383818504319029694973358958748769215510629098243786139087806958686137833328283188017348956313033574067297859408123179244782762657707839829284705736255613713223228263817268263301110826258795531690169574614839075430744046407736819874653199101431371354398084645477102673099214506578903920582455163280724065263585921239130359225053936881008703767707393607410064599189220804281107573939725319692843121655662901393040292864392092296290760613547644777983962401108939911344156599480707550589029486082018162373879689748231850147134838851831668482398177560580720626184380471475114735006216680207646571098787753182755504561286193560738040597089915343503323662489808902813345376812907829293751753126638710146207435977000116129626305285263004606792016436856449599746120383440679710781504931670097394058466462425128378073216759316120641539256672973284135384883988521411373279763914040587291918460710999063361728334087200437194656814093610959286111376911184318672256742118579963445031052451762286685666487749470855842153309739891294720317001557899654120116046987892725390836132030800917472152175323171764787140550031461803548457698617398284409631164108787978751053792172393782887994786112888638315832704343008759482370284683138557687971604722502603584055783857257702216697702781324818582341536545916442520043481968807739708536046343474300208768768238591251690662088471090599216420962674332075637234556739691198958626264855875491215471005490799624742670430851028400374888554668958593654930469964889006606202222487510092235200341143998011512546820658778899842534819832653508495762378008951134849263951292474674361289435294817637390173568577806680711785444397273908055087943534325184972103930844479906046840977481530263643805835908985571292673439616540832282436456044799824381471527554443995228652038820867501319480681444964494801822878834351760389049951971141338307336205800745689798673330746326962697655790209972358962038098830309747433413578484886208754694364609416302429506499671860905862505248232331586753408093511978757384856442445312887334777787719308392640132458313446782386276775839309931536210817334935383135488475250190895151761929762576826935556284814393386862824201714872819666362995953829095325311698229143441065889235651637001361250145127421773766600475538994247652741102543667779187711274090679023347664269411197873527876475324723201989263271662684110586913712043201245641652393505222308496722279705536497101294955622546721311209964409863418729628444907417212581385453761971542770090515123627594585435777303961633078684979351978391927515469510085907416743097288598919531193332220714222572369718412066983894445585464547390061429971140854923193982120814115901028648163257813873712398994487773458132770369586913636308085487538413891871821657288382965230490713057494672936167670258296217127253391346025845802666276742682539574518257403926515639330921943445308670545702243590180490205106342042088478386376799029324412510665700982091196699540130943100717060452543505067343863431027820308372345012351967773551646539231053775018850600284821840207798302023706573929769850961102277438389343820542172615684730850787619845419018526979387048745141427081752470691160587203942986109289925222255453310976735711864420365289672164009732130737385658861962379900448550909804580727216327480109726144056493561945081416078897964350634720103378837025222354402158993231221533287913103991129680841810595594379954978136907429042154886703726709808471779805900439802831812087807698316952810958203364879033897879472841242739454481439198264231322319707530223063758287132169009472078803731469664972007430703863401454761675813047455921518133063957495674733340116541154793429516005175100509892904422726836435064652456191362882999293599881602920529007489041070791059818376652357956286234761916144478586071669419389839846030070882357792941661704019378422336555756120045799305285566363662453674461440548662040237737959847392310500595721258682219191113955676382884155508895950259664386489414103277062934644977181313090564743894892971568763007675025950442872021419183370703721547216173546398499237608316444199283694433271479361791917122227632556637614545180301359453587940087183694088805780457177191206298744340977602452107868591935361165719570525029202685084237060153367137877438789261797605387338071735491543450064774928333246379570304665409294227270167274975553255417451533429024811334495229866125154553660294752220428808205920331490999761792733636227812377299440560315281159678226897011671839661479960754357929307963844912225580541001798925386159494348962250411613842659538750038215226150474272029154107353224571720696725306968741762184396836128109589417438640479712142178448708592937153611081147176162223758165984549418456313660894946838758581625399474605694667667657309945061392658923538034495785604084302099059027433812620114847310429201692702541230917981411970622885432736724205312377182551948897473977635933106812321239027262332017135915206211053098816815838553734227582222401864774297295572369530735065991980498936125321911335618906798116507134649618759395512945377955665555205451587494537016078578395523872559625377506173947487377880184062376775422694486513218376876339616095925543404664000101608021419541746011127329838232610944021390131748341029190039083084196261550669964426573857129949319869816690032271971522231340018090980960201307812873475111601360025465376446068438438659852470269197079699787994099366184694718300096983336710446346029297784465045374585189084021339064001538684685679395787136643318689025365438353489505193366699586714911666509090566720554580442932580635114730398832094809492964661714816305006807129777070476873286838143261323251134512778074970415331758586556205493543848570389940553930864044077743352272891083730204701885549837780715244709360996526548582401908401378706837889109173889277835723336239142251531970071288579026739252180179351766877009235678266252377473752719356257738531110246121683710332940180647987423013617255378211566441271236933809465475022925126764084762226267138018942936757026195448840476482398930817518783589808456599531367200490049056657804872851236568681357837791636301744341480617190306976517075286368596328034554187022648365267816360261495976163645029395094438442227866906714271402324438514928440820322477223922707805328936824544391450862682541070141020424991515632104418784465347965519474716520641193134918972121934245683748325770666241335082988285706152366257955264247030814807395530703954359040740061697222122387503973047773003310485130268308992080596660367978035581045695664713002561628083932756382762267011003918559789532318932927435766008584226886143561303486904516583279981497654905684170659521221359130955001338030123080229966030452868769176884715125040358497172823097102841232060843283899172892124157525862438049405919535468432450268339163287695736322777574564388180905015932293409328496638965921513395711875449729908211483084627625096504047388033959602761926127399652459291948399978542394139458409165813010880189264622660057914837598646423049166175432704655125750378794680367391271523389648411931082880356537636898027032840662929026431680031274777820977272595310495365023024532863448756111775151136628309268044188348196231079844806661433970280718236424725397449407613550133453922667185729898736068562338620480356536660116141279312094499789947151568258796859056591405777909534748392133052399099464345023832264144701710222550569522653489887364556246367357281062015906739212773206353965187335368289509965840478517544842794262308716933140812800998393859205423858459430384417905112274073717045162643680451504939214695301425062326944726681176096367971045622958890717373285971990975103862510833875574866757139733332648557950666152729268335659726620559277971009611224248917099484518541590346770730112828852036986683462517771780053937169569000794816184754492129512397026234273702694172487616895151028655958747095619118865443803870262498423342588949643777347479498354786919777887150676698371710275139950721724859793063346356451327937232565428697443231608074283231236331083281084764854447457372106775549546516096481977308288488565134069220774116190035917800270026577738091706442745886650240237366170150968671908727933768032562447785177464399850968579717999852163111910942982503860629320060635755221517759408439024243876960574314507105625212591674398129737907566351725624867354248997557495052601880467126333634380008280180768995653178438268513157649401167006160462107334120617516769871960716478955312719875700133079250700849031279904932699930427464914258408646763159472488486672431280084434284613858034099635167035207984160533384338863946245708724330909325526824869774920212229138238006665300835354552531416101934362271917328692885645740117257562458285364040158816862730030195194172055938707818116029198079110044135840701965413277217234834480263544962601642044125334694490981654571640906918236579099961181187729698802850101460447513046832242762011656591048761475332026644291886966650390861455665442513401451660448763206291689772954915111466571890066877935555091561644577993295894505010026026076346316449064341014192978941341318391440956763344145193457530396470708058944196504134637047458818379715820008425774378116633286203078855348984946831905151503851082945002785357815429183608173801182019886305531158899407584544937206348103582029124799596527243869040015041651789432542001089016689521166189619049245601735593238963316019380243877527455362801856028163325937736324174976287881984209043618276834858285321701058332456176950600791581266928758755461952023272844862014418524764858473139500638888377354053494209892097889649278428012573371752239112656800367255407827110265843462614611359833357856883676749246612949599629123299635647668097771492655066010608448853779994306371569406499604012169150203820240946417986475388936840935693778265065572214920156176059479982488505658424492780399861729575533332814418898456142980559173231749017717570169655517329884768322857610645906416392684173268014891348433700591324871944639260706873742913222222698440574009255002653753347504270320608279357819133857632695363347353702196908995910304389302500265321542987298054368807735711682931960428023215480143204159605592535187225179115689425079603433804208286178592495153730632313831382540384797829275574373614504520637194597877415075952824521672820645608837130171467974623055816531602483123548237468610071522620638315288027422309250823321507518733766173068337835830652157440166895162757556715334694430057647928631088881517540808633493647839965617302014676218980593375335063561130249071647637400264318051277190655126541582745549702145288751998935540363830369785991938115814669051218509015822894385980143286704483081742718697406235266137647066952199048250339559761383575863852848427243610916976864341061413158705432086129391312718393800173639581028088389209516662817067378331859705376079564779502789358500797916243549539275711026305639697091907488281984131165074519067883759496527516841044987681455728743982910866505564271997314857196937757628739435760651204129847946412737558369081867691733063499921617838028584442048040004451316220713557938720795128452153131114805453180363254603849373073293905824878025593515571187458584006040474589467203146138912528771173249204480052016092169131419240932363449337918504613989520836058529435470735516178591602686747929065483772460636088484832704279088230100517583691628578938674730970629044963900441194370283165005685413116775473235585413322802456313593601768878942880795225404898945186252126233666270001040933555702046777309621498882545572114861234253627043820458002860096427954694620137488496997553256114473043845182882098584642611891797896081543292124101088357355514835391511182944032818166323618049504346235657884860554016238518587369078828596926142116289482754175073635903142421627458053342578671678250100241770609651324331004627590885064834262726347230514446418940678822233091011385946601935174541471979318436097896188159586969056888241040802339072287829825787567262388037622039767950067206852002832667168279909007613418126350363532214541439303349520541414810702918048860413241544728637642093865012869727132722545399727282724772099676007324456908770560084035224757425946738628832471184174552213742229508818107273607077231343352276278499279285182723680610906368719279080593023596359302180428773034610826608815732000372982947646165598724051671439963029519472748002083867947539414042538988594148750837841005653707800320492846590610688482488098812815960974431074321219487506192905786708194277526520052614652297841645425651823750041156017829574024062960949817825775483581559978916525687194456846390754437519267993163202983248289076088904468083723417967717079780776358111887444012608292560806915206471920895098438108768721538680026002233280745002089767021050444212426843222184014720850391089611974173665846114155220176529272759136576246078202945199516309781214030590589766944671841494935561067184058295047011521742794968365219207254410966868478619697394542885719598877578368988491420722825611139124079393458159356614140477113336496128790979448566258797767666718361030819039564485712348116834648849757034822481019772071652516350610922252247814589807847992972570511241344050067900042961299050224565136399685451450538454307820295222610702324107073562763010565726341420252882042332141025748555545610907602286202985609327399635465690233949812448107670607712614687009303145711830262028387610463116702924673337183358655337720877653682789914818011052954144866685378285135803410164142294367277099834143966091389764020895263110389366232893394260141257896226922888887702729246765086281899909107101734776563910746582565324175968657969083120262264710258617968358026565432050458031693017087933396098794139418096401344214699050408434780969040904570700155400484011175157044854984037656472700246697878592260259677390899338775175634884708573847688189994044348287296720835833541246867927542696651441898175508940170578507575969171722008436821961330326778150644008228799157106623476165827994132826747186149282580764971700996948098826176167789391362234713808931744669705113591414513337596819402936915771225857607263609723146081662554789592860305284314948547745897442112715886499538027328585800077484883172883826141422977741363274984413530715643084659703213287873523299814713878600025442564869848267938170370311185782150332314351885444897639491798582380705796615060931448037079053662887799447750612253304805873331856602315266218710789715625543978675376928692294590497447480260106216754899983707707081768545345017913306526660188870462030662162574618264817677129415871171174646907868575913623345904585894800923613528585378886901070321610712386354861171506068670773135076913738777793106885061093316175288266941093314665670096953967180914918197308634211935953110778319539564272402008946703713942912739037453545460856460211285357514704145803273576651329385836987668091524786391558745982920829537735295049730485784621349015906634487627309470645120253258598615827218780510619476701373671758044390521487997275094333853555983405273477064823098987550813108541479003310465305777543779873344745479888798690976906243421303630312001434184156654151648731691495858369788388330570616681441354782557496204127052600849635151287660052995153355082801688490948900711323376573039025186042075994916841657915607388577544770910602428948984583099376837310628787404999252240876802893823218955094346261820718234139272908264770353813803384808787315238108610351076599206013508726532869649442914052106971634739119966905187383773282014199361630324893959038091632256883305674267835743478572092867520236340752819046773176328206851626965194731517785793692134873647722491495561967488592418551222073920309242459590770718093588336395029570099477908451389882821545551035625283815059136936749549416666636707800708747456622450577488032062239872572634107384389634863439215342640505824185468654528389896779962808793265398230936452398961895647807981633137268802521290269091344750593207827248962036423015576258240092549172003229273812325197627314699107401441761087232539213736475362930789098888129646604217827522123262553197475746374886059518040099315798319378401770069511228920371784935581489996287515751722443570167446261060530757161860404359865378128565746751195351555003528425767302345593508178981214590649427427038155816491195488670705452498259602568166595666419951447955934493352333045676843159151530663831453397514321439312076163822739809773923527752826673488037590498563954788523070889555681560317407696860188423886610877830103630868876492470224368978181721870673777998204108478339717090045267584074591904668390843575658477896642716300885033217316597042124979678707405924853501051958923962463720548989893764557436612260371964650901636570340017757275356132782056880115931114293493508364675800117576001240314918645699125390627268117617127889470844208902113319040051871795259085284200043303521182141045042053970731647271612134051990484982294515273063386048233866857198522135750296860989815966863411077344100852005231901199443479268849846570102517075104905628798004334204261176338185216233178626644762678201693224792103562151856403135705865827775003919268242953402813123424691230950704817073045949364727889528627186607975382430163719808654330008137204067929595726950230400664780535842482049504748827852878705200268093172402252230281847158991696979520991463785605186511896598310054631535464513546750005242871672583443072500651171192810492827275487435099581932170270198816114488617200460926161219872659849331921497562022972004993358906908679012388472458547387534345445506861293073844918261791807696217545620171102076624086284591544258667451151801028909909129677148594104409692558711829733260314738211310420469493643240722607931737534145184921284993467523793208204129752484186927503804886486561304846548844392411425050540280886691343858346629479529759441822858664346297853620784045829872075067190934086230350160689426728465577676388571340641172525122449923812277840738063968472302610299877222551710480307550693387391068105407489504849205116467594611827705172933828705570161430841355748486368416005905077781860965529999040354209253457530226639565007307839286351139730287087705073021545432839353231311742938782252476559991933441833359229373937749553995175632038986172974164601961047299930680190869188433665438746228562705763616558780493146563105542826936875693796207500200288807774315789062842546401291307618124404388324115613295064968334257700781311696759687635060973671016144325921105969205324690114993402535054028970873118769434585239582397800507850570801085366500677078863127754899542671581823630598363569637539743034347673797321441952841670713063998124099751188654452244408068913907088278021294385583275781392501843506899670357761905236772674101043074537371632626406313081688804148634415455358217351850709047459245237106211951219679611479293058895379241035870620631550558633467458095432824286729345190169930942533306447054764033544070106831585459482283467611274151525061063035363390104088545150001538457461416121019044588070793638836786153810834455090917471014758412097264500329529450430906172259351225906328654080436033706027621125145270392698417367386374337754938426575258573289806914763399939950058691798633432458748671649426937626152161824808950000411869574657142866999346927587441939293545887216280153469317121489920863593740767851326877483263939459105337010848526989010965399352807915411551659463368935737651305439414868330745419065063809593705894110228235272413189848787888745215164015427214395956976912333104924820277576198544295404074169736134036509917942833108197473010871910544008599392280295549034942687306708934064587180467618972403606383332265865364029915798340894488980797309080636136942007465348512413817594709380176865653795441367094321284224702111382829780467357182481408207444893365254623039483269836907611548284576810393494228385457312601691186846873468367742793722172452154950905153878362276280485923694907121272020913812665189846359842658517646213089199425345137464559403545769233282554055291138038302591533377733817797914720646349274176983301465950123009859913186167083835760669836310908291685306665521003353973607207538415843188950846063398870119915141513319215557479982045930822097437412819080625740045201546645817725378819559607304941545369875623878111635910487527969192656177331547072210230333380516650589176496841656363370311772081228072082007283762011946887687300167938487811115125902343433813340514300227951043013169528766945498541107366975126600070774424480071517125319861522164702227256104201694729660267952515834781764755338233216552859381515485676693353968510619781258172348913485543568100455871535917921551489332961347616547756448939918193681508946791384114992964039080424392085144782851310404034407529255382046726545890624138602678508621291844682597009184588172750352355181391346030506041514992222590669831690358291254686754828827838945055607032905490726548735088472802387402341011368131205627996053330980443603112434890410759093515282467826524467283756067734249502259589137592543206613593020148838631115368827152255454631853840648159069188555272042562007034251885785294080006911954134495104730114625965095444992881059797417986900982156341717717122751908832029401614839412085480791836157845209275512284874001578883582687721966644616177517566715366964831681825905701108334893261450948158701428487927450891948723521243922992084680416373570260998435785085453657459227603479407160077325870458778828146456731220345868965824811933741395193951832502892696948975169038472988937687640602304587392418801426413195507521198737194269949343292458311907052363683416682208320703431207284351976996684427256586601514965987090655220093001500769634360219389907339966326655376274635989740794649631483254290211803552538944535539632027411826992737562364451413121501701470104203325487383455416641414318704340561878898579910962213988370901783867657446705330977995769072689628232580105120049819791884579828855980643659150785084852625595899517898470213603672454087419501973816237726379445138317124090011456724598015638585438546462181113919726986948833565289632462937305719879465981975184895301219650393373150037277230602674421075188392571390801771881864611565078945809042872650249622918424861508246421980288169709478361836093586825214731930920835738006965068585360165266690125828664612100622436911410852704080235566352061379422241198306198665011898933731313597146433834289086699703290274362784645976281792844088925322754627892972863871976068205132198964233187011090483414804300006376895204275906204401500271489819762894088588081611969052733450367104300363828732480084294996372143673718082370226338859229352824147803145227125916372558105743052401124504635324728387630363086916935621087792440685702589014242429443435868726117077085946157806473328660699370860767041986062267916029843732384229424525896572966264677236622170598622083912327456271564258182880562808311248479243909100741556919118793109438438832154744093919483125102454541304471397373989103111350267689552534633778881421499514384784392425616654275743030863961599809436548928152192811145090220668361735687208016784287082829405031252138197246505966350949211987225079257436339676633824737262963401696649981178155699825843134069745328067028000161448974625597324454380961675289113335174902129577899017946104516889394199702617503323220396036383581988946461216592202289535337023230361898577172402813665314824359386680690848809535901812801871028810442494028599908722484429389374673225381283405820023374379371428620982604925367286763701286811454682646603653460054776406621195961683067392597692607229155188075882668174261099618867532004028249326447354803655645173214272612701392825326541691105640033738524124243642218797799682950392312036371415048048453475091181552385399731438358588378043184525915877793183667094271227110110877131945073490249241196883949098076067553500704063826343247341195394287470936853287304961074031674838476156343253834078007675634801628792187856846488522086843070549453172236663756956743895069076829995793190083401348445529683029586078410763734587737105301936824050973478696643588982116845347697514577674965485670422396794408752894497049877230939469173285182210984449251535506719636659795183235360304419002722155185352428170773279755798701105792672791181047744405071819015871866785631660451445670211217039924749559563821169776786720155234865067296545504491251154362320147111794836675044330523154459787759521369634250648156332026996808777195355285551014102655318216694434558244547618813914185998273929316930255766393243794339510942032794270962926816777274599242648602673099949648515149842654109979676878287008961766093972786818209115603748726356939902582576694284268475666216721746950788370218572346666088344323863740356922776253129655485446585401654734199917119601412734933383695457647218416257149109598464959272459002469998769297747450806175741985061211906414161501783926843235274262538311124118470078815392660731680020567442401283952549677372649397197678905058492701531291475607571740869936789999993684468347483076436233276783932694131329586404084125867716533023940265606724403716092918118986178218297741659963891909126066937518445070887131326140628850301867360866522340110252655050907893193450392479310292045236292368369929458248002222187812413875274262001834954366091292559469792032910238089689519487358751388160477664199664701045916733930429950799736628488870936175003955094843491840481513881702075881506777722381223404611561393816993515929186688036756801959235538828908083550067676731568458638072603953732131014282137630749002841304098214007204037840100046377172741569486613771371166840048907089094329601184204362153096185536351765953059828622252595203574395746538334982626630628856383896299406279503725359452083640828925837765284563518703788263913051199045421870028813078422933531759169320462563306247143189989722223923640132596412576052839471772051500866255537425280107481861880859315396232675912380754670592887321225477175837640971843979647298311197101635371151123888658059485841601801849183053224552525129468713501475483027874472007656537720017437385006798374084809926709842694118118567570102962662955469124777381875741444959592870665851646231626750889385801806630095135840531810103071684700437182383453270292442678988691591766308493825973772645184176819413893753017981144896010457341840059370611960484389379104749622105876263820563497001639800808682227867962665317333119968485757232691095615926826930045087382677526345059742630263021363580382885128075186404443278436249638892076491409280289979660543189843239162463968642421588604136669317877028643966721017784491038262296353610363685084196238161467835802445374672335466503622037748314833247903120824594358779346714227830744228062189023288299814933486151348362114818142728780027918884181753326631529171328433950492402740025113745803898068844895415323718601050773103820610157082978330400285330583064020206006235105559461088981634337772693380265102349965865706236958354230248089629261832386398619248324192148067189434649959958916253403934645816721716128465538715876843579577664581591237420730636149783391241852395857270230590962629100518988202714193279439616847286996855194922772850603500655880126886024597225211868335682456886706370828143862863771501734431240109439525100798599304293566278144007839144048644843529498635039706413126291608654089476618358677255708984501568696870562679068665627441411176918468049243620998941511828535161179377333194974239543189265702787753727124800512069606017217035182832602396699176758814900716750850548789614893553071382310452344543940826081193841906091655126838488289557272287743937836985705467847783209749385294029906882816056586816324374132004708349245192964646258767172267686027626011772738419763780614677936249032238208655562428545332174459706388255902389384229907447171411015519160567976595009740611148100385968833719047283414107468050350391934600243525312841148384237886217831146886806466350240852842796481993855822012514498223518542446551736621500342255094011385770452420091393075181206087086891118030436908297995609342021514639156506501393236328682071079588066351265416301456057476653433081147833201826191430947132340473524190584524143347869376034318166721781590375829105109387214523185530939677978027040526990483914451262281014216478856587739808037112663283531422023564898121968421709195924030266381434561289369909930390668555227237928110542060055725964718033591681190838136393032586564026486113724215047343849539474895484364420950665575509275389773676749048648359751526085919577312644442212288198050592275959310015001406386416134991683765349450315563663590116863834634117221423489697385963443909246411734777664282258355653363918320419265364681169575417384243825931280878954226881479076920671082940199384422364888673090856531271868854762434328945286895239886579704557461772556985698668020004281167935230791146051639353379740701098480567927178449259670336192131962851513741666520715173963867203308659752375889283105344339842586262286605313610144224431180962531752476374750025003401888331372951115476547465547954020769042500175130924414578197408716233847929130205712702901655495002771775550608164677269458039543697328043319525786651055422819897205673816186192031062636451111529600873752957205712470742280670585093976987292991059113640626493686911724747926085633008605982656631255417916338896042349659673266387682982678984001398998822869242509115159082231733224781910398180835267549607233937110972288748627356311905956889307262240289693506107582581309635758145323489731750910907906992936361872073128443854606390598137709537050587238501415132781424955908912644003457477865743035223685656005500734416571583542252368269175641065928717238722463778306230767732907577790746312008786991493965179082044156834211337814933088040563984408843272570841435520947695713809095839533211065910756857898459864373434884282635249478332675431876124147165784976108264639064356031149108082061117491632981175436658534777339982839045345576855189137657120608145278205860242839352594429699818149724355811722755965993084775946788316773472027848942122391963278521119096965333157308252631947881176868449230015285145012282956878746796394837008950753758837663694136169750498412218648228586723809468632166256425329998253648195357345731564570459936166942555830654874841488596199763526057837056314491779558650956867605085727082986839046646352024734273771158871980538068588371221083213466519947180535627344503273931573058685355063068223167885625542141923845932254097409592883967797210424198170287755900766188862909783940010236981451877236372787066847976518957396800714828878297863602813861508248338245353090421419942093168932769748962616493123112560214605129175298499621249193397819077027814320721431361800133092931591525263117665820869066043467183513313072973973304991304337583659105725715142168352983143104004680283389882073823450763561525085604955128940966660583144811317464919059573392120105897142392805149792684993746401419679840631704201002671326911679996559362173622806644621643591333608221397716855089656096722754458877485075982962436683389388330558706468435009042917641187362653857818079315384002960129001643294622837314873801659700554753545068215155607246297600795465805185246105919880486953078120470915461977054568663385952292798962579712272512284552035064587790561348206316840672701667546325586151929595295518492807585548166154994765170378531617414686999432900211193542439083557949442845435583769087417803693902994772836074151817407047748927460897034018568371840443958493037344327653876807302455817324362665013356063119207099711787045504831824039750855409286213458110389083358730722560193838757095108536264024805642520300007620962186827977814602488556592420549623683423843948714796952266068382574606684403767282560523953091913446175855421236819306394887540644249642737166688069659471171378350791989681887401203959054477790573894258868147503302111100500259271045688831828997436957659911045819205157104047283566242867088069148669701050415967195710066598881960913277461015030185039364036252392130107018899358457188995350736937765630112456279114618834192718826657827652437195835943954064731787584874131850744229045070669925419143040580758330967266697448158116077195519957487794111454464211856649828945055273940316264984912596210537596677158664058322542973175459757395443505627558127379688880499301700335523552011094893405431435260426177422492493048027461532887526559044911480301941634163328702567583376542683945261199522890922528621248057195225906604195350615157566115100342278937893727241701301792230225469615481861950436357228422157391064139175651066592793572875019995664844655401245484866689714845392205564628616745838730752783091457158386147320249102322784054661532346461890208212911093523987396923315520376668950320338740723738624165808717839553615979467110252662157047904887916784731938043949154915083985960578877910073405875409069158744338224308603603033388523794922406976017012002374999233160648909302772227934475240058573192726036575556114182891932932564152360154781909638710259578575851510459866037510151403364398062797161798888620240430339364950534055651811884469737299688672217349668016065341384586566492151957239296261021924461026089047679541399516802733938020809388266775533448584978150867548601858025226730921311192658226129648139307970414383610078899891393024912486682872968552598093310952179575838389974207915473040892233819989833243754613558148569725534956221343501163603716524919877571523252800845605944815945935130477487292808601478847845353563354402476108456122625870356182292840093009531041064879354293964698475891997001468445388960478182637051639243767563774868742413084360198146831013343772345433342329558306585644686894275120534782520521642207434681876073160731273129525204536206176227598850267786468347342208857486606259874995375736611303090627433739310629194720621928398891328160878973912340869512817851843234073460902092095263580644800860658921678175046516428328853010443464617174320438320859975619355199854260287150971567019889007254807029791890465228011523840765416583908564495603962995146821062611776078241909898898323996933604400412647042031125472507089811329298687926424451642593033847726305741339413377520387406284657064085647156107869616065633015824331633343401002128250595124063201719017939676270145506949169432749749088281792187834605858271370503672654619681586446426407560774563943793608166488856184806445577432535453791525389888511147906299030361032438371938238826733180031781495532685953242906810569476921476250600865210511105078903533871341348515669707093152342117521373113299128150188962262271305183043359934568957087753824049728266646934492549045063842692138959186224031539069474177775704320765209941842780321244780023803211107385737241314427840915361299266639670333025137387995488752620528485605167051670882501662615493708995342909448346503085457039418656423103692260761079455632046336062574068264666747896932448672382409305343261092460173213542447596895210509441131519308105610362209903362085316464829842804427351107493233376518841402790121123725445170930892282849094406625541450973347844708611049669739791680484932631834296482081476138991093363365393886734891318087875544595133192745494417830856795321129003703153312917407588659789213156104654968979616299585976498905270715236257650850582528940450259428802731534296783922256577236640047892857884434187657151630636234656063106296622383169020963576555071628777581432221455476855032170534093201185872133996130620788692756088493617890926805365669393960602565943834858873688196697093706787098339381266490503425635970737546334847694446788384819971836201452639382761779155549799437677881497232243041377528060501386480378222942421550396085286988860599903973097735981871762312037101460623400497666193246578865305061002273832784788232607069387760328129755459283393780614353906667942319586984794887426757456505046544010221449356460009608967427117354474581845249429736517161109861956707323346432454692403559334035744236057712160901035310461126293201419871341886711984724427395206360635974262553269124053842232055299361687516180532305267648565514180635176535674092099561389380055211943429029594940795711263855355491618487339715567012370852585393605810823470771953346534769040144827812520568178789265927624921736802767906690170088973757333340904845926002517954745389947578255269113391879474911832333015579734589303374004286034748956210028892199220543096284935958637178232201992108997308204089892234017380812510272478198492698717604121880340914844067428997897435733402707535005463194008274562479672228777796966214097879668641950948968356889546007545645025884751880696163267388081670142634435010528631523663831516797635298592490768814066432671803200151592122235662883471508805832096582866807568617654880588107853106791562288150518665425310105353007257622955517184811094138640639256134100155180148387966800247238140416614446827114233966459364963948621980849995729906403951728423123639085838175479886928714600470526310001693336965628122602233091512335052544163384336725133703354069326774247323014862779159914454802766565531945878321893561072089737077583129343988507962434366740416095078744590412463601940065987382537674107863300578427523894007481869781460414041428416260362711257283590650314895182840685075380192029505170684293358267395926325969996382204685447624293191376439146009320668870868486300121301994244391678094329108269609142110988959400350785725866499587689430252363233833039398212233284773310417509164862268818376051884329848412657226011320445875935704272601802957604941516951934563320370057236153126939082240334003788470217466912290215997238048021492877555445924005433170945036924195737882785227793632749486654974084726914196529028601776587262041745461209806336477272455841680173619650735303105711586573167047067219595444086109505771017732816324645613978968775980511417719046958665707322793480702848272477318431329936450961851977221675357297692092342214404273344484087182283530236102835220837457039028101942803852104381623886562100003596125429939375031070499761640372990406211187743022975866902440441038566862240389791836084661899964491164668314140590293622809602223324591475543838773602764955324788390785147758519998817023254795876537039495672102105911974561908800786501178942827205598284488484808015909706672495300325731566297514018427809731695371635928453035460271875067837129763801918335037190813217599242433784315319161495975890845269541232343315341930390898486117465756951635603139375837482273742158872416852891732357795484667253349262065427275254395625816950224270131217172295783292390859223672400508831846417568419694223559377483262807810724592181815118944591551535555946872591714025013465556586995330562114041015764104908763816998166555788279882981058034358661331281834507564336291901712528517863052907846260299681033002205700049794567577561196629351282091327455415324193320353254939355565845276988760409786224008248039916507987470466702732413140774376603101382957030842432750560487749837416582692218441971607402595166939838277026771364848241853442613536904640150438201942305961780865583975252859629263897144141670235211917926937963562911396925094822201644462948601601219718730138467581401165890605767129212227514984184793023437339752355706915986893026210024310131179122716646404197773653817730437461012136146846283994273876930398822550224903938013918704680378855002280729100565189802678228203592804859671693139695352696860296962689850433656320202192899134611156516026791287360190448931724895663045267811205926634857384540812361413539485838734538754416475779088427576375910025667866030081632458588281212960948059921734458273400112411231590834836088567224378349548612015992898471953062519005253758565905983341508583372832232610096401160560490845244615592746649657883120518311680965656810575840310006069676733719258798976529348478566495014922030228488656178634790983778210443126060363549018276963058192928689987881733955480181024121639239163437118555568066542475757732473146737326710083558839067095542463405525004329519176282076574656775146639516734984616327740849856258713035350634355224519781349472884574061714333002893949985469030010514254801434613881253501910992470648251316456982787397103016821826667966060884617355244768710952634214828980341804397974660362006526780429985594419267209135935765383634227516619963446214354523166163190048508105348950181191369425281405937706148803769915389011917493443565829276988949631422096342835277028829527146870035788093647885362494210709315640572771619430480148746683021676623982608955038223576281122998549199249051323825806293907006534483140217541775119575990822403301470234011214888702149871535801331708591036377919099095516001249804710368567829514245864940241540968783311321464074451079757805826701846610651876365278707431221092836508255202253352724013787886304356366466872227561116534554625676924932579352878897187588686311259622733665530023687817919562708095231179425763786719543578393458521215808128322210053213860655043802805001053576126411638108564729992071806339917416425791048050709352762887737806781346827785064194143377125783638996934930933309349153728610215336249454655890278344313639558398978646343514050054737219967536596824478475007229774013003917637507162942943191914461655536447949474338832900947999130125199817451875146873832421600982380111538104654126755691261293948095786019162007123091705218030483979203486269967961576297185647925019168297317066432769854797965759570968014260538630682983089819628926909123772508147600453401495431672434954873231828529174505337042619895121569530414378031098270580701533838400324973721664909329483536561708056759894727643371270253605595935478290946201822732043284707076233233853988578969829046776956718935917749352919097601261157540327178972896690352509809203306427271896339589899396107083641912144040517613828634861919992944195734852583452636786933014016212559784852049187209019393161331972187446055479138944053678392288480423433642473236802757978983200272223766571583733465213158763163948091090205259076643400981627254315719652240780937055148008436464842117080667898040150613842969177933059720824347663890962534652273571267765160158658424583318353673363045886975044552562840601012730222054384453355055594114552374003506085526402848217250899186016454174495966782928594769380907117385367696785425742356057011211981754340741021415890355890361410192829327623987240916255212037180220325514613005912562565650890281305205932785182857226041204628522359216263908662357573797920097626594420923506562070146125698140812692983230723328320458333120816427406101883326867121647668353930180425382375674101769218319783189005630367316148760211794822526426058600568529993348853569716307194821906610619217121316495239481461465345002509196829440652386799454586059233169895272998942279778471878299861593340813260348312601117193090973668530259616492272830667187098685163258358827746117935179295852314955358820946938782804970957573850072862704950369116193931388700640562594060997350390274888210471850076567021174397155735086033979085391028873077284922135052500741315469557550134497352665290413484361062629451819762834895691972118996809583722928502782366869972789657663661010773200462813597642005164918507510173823368982247747348488869932585720611206076644662977537262159983980045851226056873487222339345697171520735361866446527935708990460335431904052996045451473097103031833067749946143399137135758593584865778537573383265769235197913201342987062415975439154511376358946908357519107226064934773973281652585813065935841582671131014792963605735369998401629508150535786821512438235895900353945657168224476882804646931258931325432523300673266478811844372532241558706346858073172578143525102206190638933336330945159224187573161903676227848925394950115665703649481702366654554205759665710303722372977407753994774691720205766797352701928177790244504484863009785905288775701924626177401750152129632571939010028735905448354650163833588965789791663623197907407540312272233031629045237197817324113319089667912577828756855912282041454676943834060165754285704995404996776657171373527924827164865710673083309919585646338528704564118663251000323824784358124386602483196900728338066881092393771677361912501132045737653471018878727767686653866333545118502999099714679261569047568088082697533698914477679132185146298348036432751257742780930372170008677498873784130470470363164974787494923619419031844796197357106113192900461343399538394114903130782546729240357550001860425081655657531827947492002845133673220604571166945691022990635833130896245578723045360321428453846005229812726961497746651961575472556714385352043460952628633480391778023866836746347507072908809476641702503866767160753779760597984134907887744098313517311680156492292231149401835143740869172378825333150428429534941443443145617089027035415256323849568318255602367985254918489586551400136419779637065342879728046480826318947867589297458049253535154000399158832646790386792237290499033495443997532203116579108842066540927456981159332728052020866142146377470447454497997096263672801903894953919938650982160796319481336805317894922618997382709484029105078320221909425705212214090089324973197344469571131340006948807061401743912992500711456462024383094062393157394234875789523710370945441349216184120827716469662222694269960549437703374688948760718074731273359631510136706567285703882076210115365569401862847411037052780386272502177948242334531715139715127872777173833689753015541264647599512853318479411095120270862757235426320851736672897710710843051526035798674513973965545605718759481848182731493978174517198755573663302520297378633239252631375182163260252850631822906978560591760404422007010358157636352340935380116554624013397390532554402833309005357720126270041789265634246256493195742859750204739716008337474667578841191778912899751797735063114220111602698511234867799969156368516332284316748060329704379774344851553722438281119566245783083630247690515545496774998583764617104101020368841120693753422422952192372578245527155980679539796849475537576091022359208514987834519164115302394531317987615461777664310019738908198326818526812627340392231127320559198019793291646997957607410880659355895394748589162459971679342472404127353854744297033148526543527050725600960557116921352612515849757157011501673690677185143199412100238187253005663836835781807895826879824109096780109686346606947225605127040789813748720354472935302132018858060163169222317341382383924817802306663850987983494583430481160534477829147306856735665979071792911164627616048826083642137367468743138487884307981011525313131685299278198520287508238434582302012606441246425813654681135239990862986389897774258312206860646212255678055185776128125997526952387905550172825620719507017533232206106284715912390762939281997114492326110474031242331599553894037418761003082920224082702180005033583728903808366498783919803870993494963352698299617014271726570218951074615721063642195909845794004612941745434259835257972445272677406935134092456842260373245622808449642067382522720460892506066713131588337445052934330630018935168521687539949353996652205702422617306351133220573308096685680180202866940269434155347269447337821691447981709906922636292989070144757152277894997764751318670874258982993503708453025896506669050079489664730300608050950658786802304942267489776175680210655402258868045306757408724071998351075516904466206631142389855517372021458871002120478378159622153946100877594031675749823883670563127921146346208056448831911748280795653339459367970358566666361804154215236073517799347366217020319954170016629676560120195011579511532624635649559329975350983372252174546536842874696832994219508585699564198901287694291789141480068224873674276755767706403271712524471902746678019851340153491449942968013340303406601661480662435315889637811179656753919017270903638581199816826028871926788536712304085689125436766213486852266846934767351236558349912883169896704228848420317878351120161343810155587979494478157385013876433974789835552942834848677552091827533482418259932742354953404055451163641211942921568189299579695834882833277759880262703706992391479467756031118331403384553050295187543364443639391704438755209511151948422761824951055418999198745742313205696318298445658118704620806116111954461460321987439915329751411322198014910001148662074898922841513063015708640977081000285580053905178090555460976682657331981212445896128271721872078537724027345791124999854299901384180944777746672750848391150530390243818245958432224747602269456884969782152041940604557990472816669231879888889749004020958863278307192163407530439140941453589185787140655651219194738340928650656117990265748447406619284967676271782642651951288515967490631521092395921629445071763340446493597938162938666291694682100854822702589058066196596016066792861587620427445974839260173004093829430091329627762681176019732503259317637949773687329983232352323160664686554970307609832112712835231609751919674875643370801250714275171853062376687854858309672404472242991100791182626634374380156225961812886609648006751411189769253424848956020177314965822388475239329558061561862278250106827560524977265384763777788553887866329772692627293266131386563930022505433258632962505317691222248695872997454223224056395018193814729282705022925093958527106192524870925559959957857021356717188083807236648184879938999923451735796999576457021363677651624450279463935621044110794032856025554443341567440264433087923232660042384604033697839957503777189415095412756892507930931155578493912457986765224976105227382218473905160292788158353744155687304444958632923866996587923013712943852994034920722758134405372053178196015942386169933330309394190480461903869078430780755142511893197442271097750494132851555522889092876802886763577099207669696887699802059568099330416766952220767610888466068748807677844365840074889304067469818927514741358896859478325136641227404794646894154545063390676067098484845429448955415767380254047006921347437459489899779572718904481694051975881909250402528840772174437566455713019704334218869688057009071200900037113735226792025969005033995902622169413637608273295472748501519749095820202792406599646133299456602217942970050681634914064431159965698270775326039300148828581510960333854274135031939015276846404485856849809574177263393010609352407736847401822828664958623365672726234842699526908685281933021637669198058882490891529401835010466604683481960447684651230663934984307962167628624115664821435064091376291248480959028232157021704343298662633793775767556702096237406305765727990628334900010762062095062602423924778103565129201906869782041193225009035067483508726409825473529992666053320508569783010050572799401482248685456672871508213810023614601250459032219533744943618503456808490806577333625256299218965226529008565529743039098837390347425803880878598210274557052405473615604008788597870418520228402048875572010447442273725959342138632069013114312532689525813888045193313076491336479367526017246625389226506537331858252208988988550917223145127122525134792435893080470677952348528066628688617878754580866362613558696094959707727827666407361923285004013886294932746085639164423650094511484158871839522750147367239651380174377975608415761231369936720964240578819338967560913509053531869218926289813019775969043329556021558392995735012066435664390107644360002536239935532151730371947261464521647931800565998795762113926330051302047030345198770706447659395770035218171674971655672101168305339648408959614959029738408015170245874019703370743476517250823718037987704316485621727475547790721793703331197761013995188416314732177939514600776698461340336967851502531044376880776513526129927135492952746929102626147381565709830809059657968141557455354337401770134354379371840381859907127414262871897339980891642101722544561946328066831500929263911928290484611145473109109430357703574075409781475234573616940614506742510197864603738421006332000329669792356277078288625716948183949911775946948352769194938490208331701576480774312615053718824244218587881112767296867641481851551637000520176374406342974656336329813530873990964463853936910741879927335896609664791604997504957822202873524170909912850616091615263164338782388572072246177496339733771060480302667089607529061318498927615551534499839069029041453889429503572464447323660789946236261310634592797102935130140580872228792081558628668947999540716334776402864661239036871175427657818439847399451145997227822705769240117738518657049242985814650893498273779659192483694040239591625265664325212340991061418623641062258896623882939569118640508653278393837295414101293098740060089409712738623772403872642997770864938164666969024092301321750944725395704718993690546078715581908708427671618126252392155485209183971153654955880006752452598162613331310195887071387311984805409196394970495749663009528519055363759377424500712824572430653813974237525195603671957421173047251294127901178462857308653332260836964594674131578210746493343062121758484938911127481176805985822716755844691405098313110171974546077740375166535983556915683900196332195264310657420063441848268530807224172171129102990743960035487251096817835100128030992760884264329825828572119078505250384939823160598132339756101996014875937306149551237218721624052456331355219881441854386913696974902539312976316526028085851973042897627835600162904949825854517419211835347548643161361239040031438368028932898527457447416823365079290738065216205311687504134669417568881313969942123574508761897670547400551188730371633011991752299755694526031174573931668141152837272117386833078974581327840660814711825669464436336253714230069436841102938924426430951516368188723608103493014637844375758878455457352819888005166092748647339824428114021450515439265884504116654263781271566757137286008515772795383352835392518265398552282222963060617507302350359638199181804692889604959568872655003558563305894683627992529199751148546284727548129115565838987845565006950667670568883463660573834644904804413460218826406000929513382693587177445981864242818169830639931358503263443848735780120199294870867833623538346909773174256309103161105412271512641239870807412275882087332932924944447358250946809308345223454936425420675881665653773484786198408390672044699173975608270319893950601889513777166347070344988646926414597249141551387835965034279232697670596365661944382559800652464358794463204930436920683691082420959781522599038537510478315930560777763171046324075473159733326700372671285642544217637836196772121766537710626551902159199832574882470296120826647702595575483469767549161083185301414017422664597426941766141741312269064373199792675099697781802835678992774598048622103285610243466683179554336284996197419098046392138932204356839594412591411032601848473965830097819709548812675788303569026181137598971775094113350728362503943247868770229134152686097843019798659755860256144542640063933459940449286804370519746788705929840753248526027030635003203135742318391853566182755079802107763468496211368249118485702426278055234496465429405355944483412394700292827491925823297029358007360720022846451053964811383237437509390425011958888040111849959232317310971889155619395437864999645631185117911195408456034117700658971075513509533382095426244798216321838464922832231551172471249963188532071486310883598189574197511590087899362514190180047885962577499728601904012580688602306047795774422178735987010213955978283950252975392916833142967301212849035948112522833921883531762439704673492058079951485680552014721441316118480002578638568661159494378192819922241105714202882813832910636196559995617521830762354352662524573117674620326818532770838545547374807724318489392968944501697324978540454505540795470158019828522180930833090541658859425792419109594676812434904943139775538844654311405473560950611310345204849841327635842211216517531018166132060487790933943269822327665203480223007722645398952198434894096663571776178192928408721450338450100638438327913824626901625489889634180235118678105680880602992256244399284206046384531596145882368448799043756527967402100873792765234714574596170700066376534738625196759625105034461836975983750915185728165482353945653315833459520164599553220038385776805137818597730883568227687095020086650863916553860142393980911397078071144677817396486643554561929039011836187743347844794921766892087163332662692250347345314620595458256963993662403211615097137302719767286794708414069535372419748618266789129244645580686369689142850121913030183412875483274383467244635839981549024178544967282818433266875748009553451225167583342606434244885049940881468290811170811162576359417408444857894241142374352635987481215159561500289191036529806193663235284267684369691794470026245470296171647243904349345493070380814814512781863285574416895921508034202102384771191107007347103287144490977486738567155887015684485497480001379108882920421008923183641209874302567521135106260961494518885216977525319094838755080447469725009990942321340035871644453144582306567869344192862061154523427250905293027273246069845889872978887383498432162641169138014456837702003285318087060713076540341347326510633786990319085953903243757813577053300082706795995236149275878038398682239033634182358195749116001442080427112454686164421762550091597504464893586515737594611453409689117600498741529526862825546309239800680619511666281890910473337653156360826243686808347251769343909924119646947268906766262582923275609297818171387821289019980618189386874450011280048181640402491572075146450216675832256732094920104674922379912192343739119561556807048241331532683933773046457080862233078931534939710545972196450522855444025391875890104359407401617696810625668950206551754294356003926946683149117425591176416377679132908484358094851783509666657602769140205238379590081815847994828584334347977185727526408987078851226183607436829288373117755238114666323169006334705331590796920039040383122669598784187906585529005148631627035163493089054053641299895646814229105341510209657834065715988457315422807693943439061581672638101404466079402503256819860815550052315662133453587148792760748506302040197982475958954747027528041669779541415985209905241595810257598843730877267569139911296107165450617952560259254661644183690545195178868733103516177409858767894144475412224884705885097466983473286924627533332263903606554058054293677172910661018659737278295951438855729445632853903529811351604240881471347741767657022379812649676058466025963553956050675011671652817695358139995601433535024846578771276383922326417836325237071173671701569299191718349118328214761234094875756259276779877137057200200875291300101521931754371257465112795436620494952159297343463469320443901028023697229579034292336589756304266876493138451505895144409077659807031649218593283324322802289300739500516942658795968954833144537275275279519554048680489602234983534225427529408471673291753531009819721339234724788184053489608592955316926598629635821719846498908637764219382805385207889411448650349730965815751453266015945130812917455447715127122608357181169805424673236544075459156929220620572415585374872729390648201026801453416636643884659386270491608225729403397525314413469054307501992170386732824686913190364864547739459197880436648144197466402019947322888507758109879895149544297724417245982157971887964786788055756669605397677669057676840759243061254414483515886562484374398315222847894681666916515835028784526021488215651546707291025175935826376359129574690475106989486692912012483008276278600166620033067579870129648148838558257860058293067658440264831362963767978334051511648688270142233518545515010159959971331634074995153530097595734906540966068815150824456759798370770459871868075533256300329690561509473646220424774937297073314409520730516272518067195143475745112581399797002087800535747326608404153757709723351713373829761753186817757825243416119972525706426745218414957190053555499362438200649578009906073848571567448015154290498400234305199171233543855001002173926441728666957416714705642926732353324087921743268817035939927876006297088240765009559846376451943682269933002324859400005616099474330800275453786193698288935348912114117290044697502858735970596588332465794256445988646789274700858212624257735759231802000563522095735839986498860386235215696691229264730947586840906488579864089198009039980210216415089716779032882911103427184842394477590821796036793674760277833437884448466287310770811036592629820631925794767931419480407268097568373285769969005193718692276969025083550754339590955364614029382530503595566714805641079205515096930788394258134399917923697471133881789200307871378078107008072939181728045535986392195911329584267896038030275370656033091874224130845466004772138184763134467478966561399800429633971366972110613318438449942011370577822265914174863134623559560380555915363518816358894469413453887604066394798446539483858866451623361396614936406486601275737149016229672651492880455479881845223118745037599593554489881285690959613418330907742600206426430050652447682616511230014419135127660989421056093071083070588816929518987614067896064584576193578020898279321000523502082066079606084723983922855916151276312887767896599747678836585198027211226437234915241713778976827923912788796582307392475645708721254997740030626506485716012015117210314356499603823454644555943244607060474741190295894556676236744536646074682525662405290514834632719604123791218561751846042993287002693378679195654428433853318484979706250424658080524595064876963442576899842344534576037163938620859876541202792824338601010590654603643674673687260320197122228936724463740097832899403366616128037649124392374542684536399571020149275566480969798745882676647690159877375090124622375380023876267724461054812218367103147746292863640664408179043145383346033564084214806406265028004265033770298058039152149226556911601845894263230819392565747199265522146832567111736249087778969255434332720116825797421197336992265989421864362819408180896271010502097574988346734159856335229845680104087971202110107662849862386171715889825902176115008214218470045045068982195478951324421939328963941170830852792297076566826424862507075847855916670083450527258752387502528428788812219285299380402119811256288604517676840486318663001013581473407298269526444032724270403561007585890050848628400566053462623845740046375230607718634917553976462184610835478582153653188487658439549104548240010914925410513490390452585624512755193836155068481289073759473784221684867736395424303397424134516273180053685232198111134799279957777835750174280982490962025416668089228740175790588546260989520879354314076347543551615657492208609715035450310276522098240249481798724852700141269011719172170563842102550189116257726953871087969130720228890826123143634068988298644207512760068544788064151054057354541241507344198476736504543881629255641503548148391008977537141044299900866575415793896265615600211102827591769368771405348837002714967317150847887998736473212933775777015650788284438120867233662434137048551768765598321168674685443222247889818092776270030113666369720165365070276139919898283921997493625428124232731478825255222927454395965408876203180247399954740229732024244365513540859103291069266599994465969625679104827122678138978719197055684720631318095835449906567491806194513825315466298802569291145146248465747002584626031923037193292277969550747656750453176058518858416208980247793648725638208019826883965782641979489007842668736927812996977623956409867014624869123653529483701016482421694996793238251005513317085364750326690233806391934068556593000169101694352865905519158053942986047755903704336241458948146586031201035010907967759942453327806807345300119422652395158795602396131195390820592030831617460031173975224892372314525149231316030648911364138904775440788820345186355658567961909272056173084498364300355765967757617070519879137514929582843148791738038612227927392477423109833591527797370089359873537883794193718498195190284864488428263311252522677463762951609922725579582959838715905518498081246002540096441770246424720840904519991898365856203168434913425956320098501306350748550135066848202027182076253750410571059344975633193093143747514069816785798334952581603075183232366718221121950603721530256061646446637988728207094346587113598173049898129055169355624792671945617729480573268432089220263923817756893414109564388066521297896031202061411821314590493120349607513125087613748575121763058387021262865586917049620144918197105314546760886692248133984447222119252010165331907822833937507981733207162918806602681121798465948511174011252454286217238473189171836186426065240606348071394068871223308484870919664936369880286002569160148450007522724327706867453340332351543526450215759565580541851968230544719735519557997433881649444771121651818697203555289419010665112275285099233352013136704442851685052165450705860867251428515181869568892392142108805120226191788652002704430240830537370568375098021574009926850484229959729261949948833995130327827843617843519921008407446502408155227701111657515665432732296257149768631637282572415119101085803203481963194492660352020336494169527171986789783034753578281142581999131398982567999649021246592114057504509811837570986270181009673467658543084520272232114581929213692320885640410150927921882026263464566063980508242378729567695427386243594169188368866471867661107177605262329532279426386407676657661137281259246887975341485028342149156759417414695863761841776367367502450871972824997271805904790884272702256893974760340377559955342255655601008779965648723469948393623100875416877039048910725233338639647471381640848364853604313008761253260856901625624466873920421908577478762224078407179741142744917268957146650014887000080086586020793072647435543009051849999225427991076171049910679530569936249028966960784697831136948105344341061266179919492923329095447264510096243581853534492152845102982196475172076766047830749038464217805988831290287431009100780756166502811340593852409631564666062857172555271170689931812424079110104940473008244758321148885233366167949880554573367693213559810906235581478379289167778758280976544017206504075553689022710167180188709064291251756250371642749756999948912068192563670532658070157089431618707797778589088502364402683043389524655264285518492652854997703637219093316743954500131083142926724795725686173657463652293998034181246754166722432269821568308297130085597319936829060379187601094683924847226754681413160317881878581262682970944944549609661868583951004849033766254365740218431246868363372464641246546887852728827766152114591382682008145070813476092085312338249023020622957433592119992084549949587052198382315630228377338720116353339954501948475856588197606918769879522216484957505145815865807654254512201089880536794142172761270789157072765449341868574867322729448940204575654072539736758714964296808655068319796391919102586034322884787061483511048654425908233549755487212621250077167442253723097183881920534753227673697821412464056958242057008989873585243779594942052622696288624531280018613839526505590497080059034446615968294539881405997287082934789090242936672357662375006847519435117602313528404464249052240968209161975277374669754348747546686693993379562997152964212679411518215464652053729552843277984968909617350164375294218907744739128938448783644313754082142391616950627931809646638931387463684850716466078579478433725134615343906403917959725510276336311891969157471925877211912484965283560587751883522539647975917363459275544141901172607705506309203910937784191405370498821776453228967927509584963135761570992883980918747741702018372934390756785777042144424385287291972130923041392782708619477054041719294526429990971329059061753275386808328590353039086951440867699845611975378057113712153656607244545087648956013870591092025204264485024185392871809994604207869510286289867502784719484534858724178360007921854856962892380703226073549105556382325705265133631440718603395297600836172183583204647611302967951383377215456566195483324187759085478954356696719229166902295934667841239519809538338492173581563461328226406738387595422040805079822301161328602253207654126626281096050966329674248383488743324919742465184790024828542954545276267023768489052164412012989927429086279713928739529567659635904385030578626756125571550324525337945605857344597825006687234525479171630360836954192321758877060135623822503026048238283813194259269015730483614783071011047769311759137989450136491697174223288690185649436341184813293637097181285593399455696724171530301470502452761547117466930438893990842629770199388390355180050008741310760902401998057141333263145443584977165105224613443982512475208839905575140948764037471580415758178022535692870647173777258999387424106348348610869412084205156014029063190122480711744494273223756484314471136727529595209161678795686148905224918278357770872131216881040237917283198737617305904108900281439329911214025627574690100514611506828055364923326518556066797802453640704489303945661852824448463088221815194264246919144811628188355287515569893710438719207530984157382736899995720412208893876081522382484273035045581500168571863857740123292090191035551981359304662452567297147631968248737732149004748834228130279979994853995436471215213146036851818129669306204562723044458574190025315271915999233190283140913385523235338792949042298455255024524577967583860806798133225539468931209174823727270920430956577084092073698771363852572792873811126758295239266402062303782451918606399405506563805588867192634309681523310141923266082678483658352847499627320722767790936958502165839846599969495961262578288515176013209913215479304371318032234270294638698702457048453841963544279059096235833051581809241763699907002033372403123371813601523524986962223941753921582224606288904568321732800154306588106067422668622871420023569094571803749660621373408622791493605001440588386047275685749477343081648605247667125492190937526021598592749808262209258725773618437988580796718179901574809470318718550665752723312069725841353358436727178197373577289908427754341967633500598254985828940726461760262241421333568567493617848352226518583879296190858260391159919864320647903256479115127256494040354554664200879739753960444252441171365682584196189717309580756023745724768487521580738094415323714685918031935010905225524710295459020931717501849376344424295011314273394213058776607784783505400511823615794346923395358141468664014047911369641880202488686830920485402818069061350495546450520716297220403732022413944659938110964101097665825694567814208767329367944897184694643026004554161259378125587543470513992015385192399849839167044208224642626166194866289005341501916392819993479256163173209048375092055045318347394374655987761068710372772417600177529663555677005344349913191040944521753108110886902589648634356251801160675264182340212796395563289553604267734799315655677221747047352721169331621608607411138997869415116060207418011158499534629510734841158904689040621862483243611142046566510904115994761720889280941416629130582120541027153229702859587056920796037277087478016732761182569499100362086948015417049576371925507589445451064305584336877091082797651342452540828565543273221959606185745061024111772105077986507482838583212783264015063805939796306386694909190547326344889035866502810083835610505632810346140191118094162624080779578405563842064271646487945686766792161696320390393672658963366371838527471312533756375623589402422644158485242823743900433696521574920117107665577248482561705414357285754023387387261991846565653124659802201523250425306568115782692114879609805049042714626483073342892257670556611660913606672429755165887134154486877429618572625434795453197081224236491874182869460259046954549799460887795604132448516789166628980132434795188478938232136877015242269992681916177885058935262945626357889976336140242881485963974613903542633036195602022664144914655500027078069979164491132297336228484490450981698339706469921735845686449772519723678073644424896829751567948411561797065262884726915541978851945121314676750083490617762988002380148810282115042719121042690149472774267037202295218236535073288743819560994176297232085483193858052693569750140470467131565262991889828895208691114289660114576192541140068727567333350514194410793263992356566304050620998881794855594727751913845730703366526079628848890568075510925581071147381080899036806814559038203617737720921847358321934503778580906056115343119981904284826987994912587125549164822378014226601518053498721732240066935998739839516062700196404826691405067433708187146803831301090352296513480060219983481433167350562140326080893946630676331381427655265848430450343186300071452245449709671683502631716225518545371960184183237544233482931825317963693465072595287388725505422783598536849202404193537100928784973746624014480179858797545289644338589005207791980607979891308836650401109642768699393409758250205585498681132956779103529606444971359948653029284005994535002462241461330583175472279875176650374018630195940236162136327676966171141093386672723104127273421181507732523654014246454043283318933299023884372345852092320044854453523068550671341195226055826228062859082725451001125381890068814569392853726675311016465744597633176711889046474393407952910431139189715817016821963387603958075714881491043409815446280553193192226301432571821782747757908507804184219405467762771031381696013552561958655631014675221930126959252999790169202713512888121096713845265177941029252564027170888646432197747648170665395126577109743877576280053767127813732127357214173625820604753984736688505984004524153641536365946701795527815685488715445520299499962689428103067719366570614329152960040128334810216083994762769467640819597174410371126379233477071637000114459869535077104147913205263606767771718778967194945666705885037374326432390036409620169130626429434062718032067337274626523811139625967885181587127749831560614328972874121482943235766222442353275309683578869452464768083691611188669632001229056120505875408648175925681799155688827695962255550148346839551013063113285274579282990933928318106394464852512314606604923679101253551316190447404048055934454529543582531874513120191612700971563322386970065709640303357865024192856466659116294903651117431487156027728433891373932655188925433767535889765476055902168610889963207288749137459514321116216109104523085541595076972198609663679581181071665367465405636183676163842127848874431327666852610287506280448503070070437157687433808096326571091718425297296448540831621564737385460182888761477382740124296278561829636790740486558172662113966341906982729283078055496031560001820717113032630212746267543100345523785628335103000765435861082920604122911260583993010060348169544001096935469689090920381204826593335556205282131799897195798386739858697409533690025408723443670209763354197940345783119919662172027654721721856048652911576519216261173284608878503762966903338054891111358380850728399436658832753796619134229940470422163053274959643497106540420392174310160220237579539098326545115702421320322199148703823886822505162052568872723949921593632513859764863674515809809971903876027198619100723128655377303188908608778720671491944918060578121271533728253329261042278979834070976614591734924009714452000751337642249454767603902593689976117616269334101531857316332710724854987646263614751387634396700950928758609743185867088417034155617728002499167348058414137258101140322576266400627789895198147796112058193603154641562252083244586836532291962701018448541861164573830428895643715111498910185242447115812848880781870857100146354594368504609270674247017721058690787213169557423399139098885269138732162382799761465712150526728998238071612494264061924867431135298347748962163909212279667442795393043389844391829017430278321975320689278182036994363171050198903630727239497826650781812292212165567093476698616177995396368106339318662119434168465973758502205208052789975643520784798738158396420226519837322863506124509110220613969894934142527969065213935048109168763173195330735563565541093254302783843522240521501312461624759158430395117256886931795248100859011566896023588956381498835537856359282532975331604262181825499315834108539550235268566425754332418793316194972368973271960392006571052377504046740862547650016374214857922179710001891833392488322005697651061058591280933538351541396777798204779684441476440010156914695636927420631141053168222262107361538029578607062920545510954104474210044287222873877435189723582532050576203927868255028430337551968785962145901303286728194360135045361283307674981298063186395463765552893854693127503817218309576157939690818951840465443087537166948208342233643623713992649202661515192977500020656377633210575378985092419323325317747428544465697949605182065775585970167179537807025229630109764536051093254640146568270868829002708646822887571994992872154571265689873589913461208213899783742988077763754920903081825859085833333769870419215223375966896275103384521734407989747578095079003042069673081159055124956940970225133819095917609589307914740258756947507439174017848038266523643862094947477773459759733018845961591846318295047693188471325642735480501417733870055818349360707936525112903215961558048894272561543302490292155380825813401135720995310702992923204884806953805363290642306574256196144927027640584673573419079965552469897798182125355068318756242384148335903500631195888680435774859854781332226481816773366673081096193246003800585504167810339244292379343682760862475712210052532379021815803800667538874627062149627786650615325459004437069912136846666354609142326237027871161015574001595386197502845998294034883771091506163686833591083313518155157923176556292024908149213922748016391065814690243516330911123611750199195682140069362742868685379407367527528087401778619975928476258936468445978017090681596343306799960507534467796425891757106395202639065861150207334113502367214754500934069415372859224755680291174189559930387462677069477552108887691936228746073047295798866593199860333271459926937574433170755300700923545822776182498527002322945155296851774842746812294875689825864226067410819278535580063595966318305979893533386182007406569122088146296678222219549668788729714059623588375193124043594844938779832031487983602637405243135901075594591509115738307066133735083005763495043187150979097891906499749095967178449374736943457801205231615561890369648450466606235387559537510166781737736280245498012355977189784873428059788856701073771073424039730135367589709382891245978958859438283218721160853423986091288230792208957483115921368607581592057433831488966421387894853723542957157221245268048061327876464282870568581688032478342538768590275551830559254630254649472225905441884488035743797777432491231427542807070466371558457065133656173881772923205069272190606252552780478369284272687471696963613733405486771864352815809924072376164558091799473218149072783842089476477074332812621596640355669305961437268224604636182378632182900117545784510637799052445397539917286894240944616634094459894626787197624419692582898649174930486028389295650744239174253673697173455854112846906904084653836062278240272738165671281428819890825761174766367926603305725762875128881797354420116087328414766774309753022405952569763083438179356598867156391076407484854224834142694906332270940277712359302922760729127995141409422992761314121117528974616400900469539464986028083847810020450656132667991130574607382782728377815464699280989089348120002839957625712712596562353668644816978249743475569285240785870427697715541952979872913011465997155540856612040916014813773549256666177117745632770244125883989757162169362507727148835148421640489679573442726984569942906445318376215064147487093685898119081898151015781343043594615018673769521717829031599760378322958671014289445730339633006254972695871238628664626389704526251309514626505329968768006902003161279778053236685209388682096347060791363083801483570997545177314463889287893828285055680768530551028660760767146115841753171894178634395435493292228627796556836081524093789167564646902871049967923282086805041061234290691966420504654441064091210511459281398993803366106931842444036402755699293031957361666562022789084421037501697581433255517965404158492415096524501204729654971712486896868270147665282817638031148801512028249080983037509451550305962103269162645866134575032181976536955901707852933981742699212323630680176395375120249688048077505596787091156309207635439680649582480410281041800585429831426686933650361505223676902342259873056662544421935285324413415989912578886048599360683471942504525864578718288525685162367637889583920961754336509669733222327802728137322956911238424290727266488194241738836770788353968827081511957051476110893541527964255373203842060273108238551654149400365666432781843813675056147526073209821382400145884193207591300979078362645035669557165082653066950854619470589786215450858962695083761206435003318304601345302294649760362004737904631191486954464797549560338668784882676704704761108390432163598203163294211397971649082131388209121953942737922733241099541537147300382221856330875598488865882873910546512436498032221207889420958361506825407108692989697561478294978555495301923141760401946463247891218381091336036820740708535919179253951080327715927366705481054588151974762687022429067844667856170722101625684791145731722789740920244909043354582821938822308914354782308818912670645653435828888513804803755811264893868077438012522777573640108734793140686970853618883495675478699465299334795618308511756542733989283116758165435695300059753807099976819551357124002932672008848811566135703558751589033542930306513975940895608805490395969593833918267484817177336421920620960152973903178740393682875366383209163599414862579916244801176044327652301863078457545132867892732037002885072012285489730503285377633651864049225150658009307429559654040965468550865990547673000718288973719889903636201173862131000967227211410813129503710935695174841227858989273903388599461452391333250430633367854201159900186141082835245001069402321210565172713771692447319288718931102104844663614626859201075340869494221184912960875692053722004384610663815811029946879746878195306180662176183529390667358719144782198395920752108925699408220739941278603107390812758808729487817729659276099116546142508463706437614158907763745513319455561661842040715370168580179314354198115923254313988915321504588899280726247622679174467152843395803525715173263297888448893149490922054808782465955115880472617137831901818139473596588052917801028596488599223024778776689339566736105580508139267735333171461052573545310110987364218004941043760134867795795965358912258055177959639542082137183451570352888783264123645581125057987078683755191507585398303104235630376462298643232636403722307391766615972578605551602191697985085869212065648126952684076334665312684311362674823874930895866224737064761687458057823614297045502948849745188543791214037733336626302113985082274659809867724561304436257058716153977462654563320550185505879093607135532932314356124784745595781257316855958665167888668123974517524004563434282762476773388194747055078361685940728647833342849255463752264690461755826763649254146578788104773278488948989455690273754517413235028097054334636593176284963582049614127425066751631289606847339920726871097458366816886497027960999925250459711893459125729360385250475802868721755560346517276526413204497515100921040265041063032187106197170168646273206235310221164681252201314978898833330174598204392530076794730586773527052228385583754113067060444381269580159485798454355024024173563856805050383507578744898355666015148389375713178911427994977469737582260883542640500370894025938836818584385263597575055760164314082723219266409805470927238682928944425218889353155934891012291933743355824923751927813955367919817292469057354989644900936252855895237105103286205524974378432322857776860869587353419743244673536245761696859783715894890883938585443591741949486617281461029132518696957800411931558310610690418967645974254316687496806232875172650378014662128808149672235407673244192670890235599525204777656265678520451932588811896015368066292566629351571493900131614191744519794026489775628923780015434549091032170213372848052310211634378465911680470844519562153796198855451770311463444938742054485180760718998822207538275545890891368451735830257079196397571938823502046831279449826251937306525449334884122979794051294344059943014777196984652318167292078297294974759670926055210536855521331298364323088338864001131241452453015512171305432484355623709480170871221171809772970673457274204280116116950888974117418668799574376071427282478187954471422783323146168661168416349402821479454525544182900450309413558904825311187186510969120280350381609783557575242157496782385927618429468643716383613308675356255279767846273164049295802466426164981349620972551351285286731342238254676816843455917840415709311838998835134020868956695475278117381654538329073337176435960009134288058828515638859440894166507073846892734378482550955315830581327935096295758689238580147352945559146526221475400356237198786565605735189079681764395167771336332588223060629074859565352827025340879402368855728408422753843892951893567859177167079311727489812751263594806221007758931068494658923991372563846249332098986635490798993581713966816941758335175657359875749578107181059588423330741519631931789389341510972833813444447895669848031295015301287555392266383433094273384482640680169408819075791745313045422240452096910757795631351983756993664005497116073130116678829675221829166942995614255981013848560930065053761137258306754775660053982605041780807039535383080301767822998267708186066536536027633717659105330238160712538922674387326045838142078056234137914020096404548309190515997797687675495518198793809389013271094322505232640461387570939568949437082191371400879532178543037814805211984277408735905679310225442845479976718479258580913988289998650342920482941657761806753344916503201514833229356316773435019660058591968622007179070194013106830332556564385456077782278546252841041357998178896519041132990375904961270195427715123540974134686785513645642784533041511712077724993761465656088938583351326923281793988799623935378286338529654524256595850883675376562971994934666494744561514141283139676923255937783205047158082738778106530224663170450551284831141155002049753575816775815170287708635854469224505299936919028936719105790842581914894232737928988523883469588766166645011969797839232563142300304449708917223613827819396795476576543179431121159255740281820074910929442095258878951053937013560259105759764738758104822215525392774604392358157452214993934091067507404568097520212979638214879305115853946170738289862455339038401514730795624399826692062032690213081839718984496445854217022378560664306688351213075085493413189680094907885444045157368668960385132246563152296997083922666755699697813410259144570526794790727471682817416172744693330266962743683296784941044957809166721979361218167969080709817183838738772667077530760913123143316248480386227315973579562941900411014660192376299077604529318733611841668967381861425284080013134123901280609653575847600146678850816612046991826108150023385624213720211220864383640679076488425791366682570431254154365593332798637428098629202947989689175948441652359848160420022465960245597565904716768687765255420514071621058916075095168441126444987476642648033913772373107335897734772968994122831920825037183157438675493070560102898399109457567697659788315375659789917739884549949312329591329292125647275450579547009552285728619739740972291648424992902000206256903225707930076428512000401933563854192445612985633440885678117227025863799835245564315778997662617083857437433188019866723549047493274060970005008865443751282899747620327581877604750142023826474311245368876089896753259626503273133752719941029286497073487059840393176624297021399242009776775540446751961488696524546411266716715797517218164817452607381250899958278523378558923957248018040270490801976290843445580873235649766564361809949537126562962143637896104372255254556026805050111631227595834793457892086761910121131843792057489352948616900871644377889663975482284885274125379223981527673309393608358962159315471828435741097511409357249587340314117811324338580187903806360343439536595628339491805448650867989031713701026220169001198207546030574816781184865347551931516006090184049163627800642636603739522746986329477341439301801900715050144005615054695219530094711100763719942085709659033120071146443445613206718639366145714761447917485481053577823831994556160496773519202697411214036963303310829034579398184382261050073841780767105494023454354516329434488095433044819905139052778950173532200089758017993662556899677927244056718589323285357771428455001173636058070217472609957219928341662466302772450661230097036498428720276262389148843191205023873909483892821296758556732030154813873685887400202580026124089965988982706114848041528272724806160378828683449590045232216445613435447434654777794440321092007872629021804094604579434571451556376160882219131940744183089643497481588187765106859090305331636444361054179009285213290760315135869093396526946175219385399488864907681618203875750392111005471494846598596387923997171682668773715914057952052457885616551142399891535113717476152882219970745252048844636536010306701187298450855195316132935353448184748800146830211436422097901246746491944659093371594932443893005978923034194721038429173119796610179308974885932319695579583398195686536837864661658934089139747907575023311932285925676907297844955486995070661825320854180679958052893615043796780203713454311085109927654582281928466895553563128809755235449872232236229914255132189627377726113597447633723573801772973124246075884081662061092257911572867505137531847327647963846324921394677890939664280542194922415665813900756768688423960000465216649920218426822761762164722252219921477124667140752982574792319071381362341614946045342019381853257331292452818576529542305300618531220463701285930970677140176883224398746436227645872520469998035128539731994685644894744554014787083455346176227092306118661285772262385381985770141588052981887077814450048751133693893470741291926402772476196822949464670571001535955494708098309777934380035140968472750243562867947960668118734354190703498037787744169159579038593563084103643577013410082142911423556039932294589908999852089729951380516521434576813514085588244496330414767733232018268868876668652428218230174798062506238272593284508055002158853726772609789803672452106856382327684185829811858872191474679388240564590486355317160932057998059211328278168872143141632210046026659481351616056370244197976498191054573383871606570809277539146031952681366023837895126184452592911239986629819890573739155252911291309416086330638607131729613238691780716867740179683498903631264865656706593822085470212749413894483664592375335489251446226086064434467459516815488789403570852294306910143810013456051103242600047632989688871224658702874313932920298327805699625313591854473945787092229735219565779190973964319612311136992504882388012077755290193084160781401924189619998440924144347232608596980108085394528356546800533175520768872739044391931245925754569388951502412276425358653524347390287842106204426330423378055777514480245937743709846272170874286080189875917274355066575513381127910154182186138118795345261070694698399896175454607231072675118489643809135264279564202450809618315262596811518702370611355016661091217446067943219270058934774542000899688846959548913421968504631306229360346688895417098051456718062510142650996102584274424498421948527235121529426209724799502544477786075986888210220311772948988737856653964884263722037507889528197779493227766961577949528574790171383541097283384758110911007536871842368372078936190456289560095605136503983130484470395751116054715338953871990623211075045300050775673119801373041623045647407329501952073316340261227732465982341491893883436198573452020246100255925855489887024296862617619386171687745699813552081678837382886158056522887900767128668528097974608257433905365138759974696975719581850065583924677315898687812656483598010558859611568725511356283623540297127508737806072344293424689001135861493601552623051982869472817826566905764262784749982865066180214274606665703028108896452176197524743456256429313795244768990880860892581583562089266917920611193785256605017314455444453747351932974199608415376882172452437825656582921078408539566868043930869187488882972285662694066312254421704138461903108887406487263736395105810866582042588234261478027366987129627100621296379324493370082508289331523915226145987729431562084232986089960968521008304775543677703141578879622694886989008652128453154126988748046754260234476680502259863430124239587327731915251463111016490917614962166721440873202051030707878632569530890314705287083707892408075978611065209594984657716283525382229987139033162912376102886661554334253575795321393114205249622401074580656150640085527847186656650391781096787539071894769918967712579942066479643778117082973457197515434670164597396440161357050949313276625254293235987963209651138294342900575199001675826740485946901336075291619107597442221054942723730472485814987582434096525245178195139435589834353291459810115491872395706174984198392120842335669886784389390098721888322773875730959907574625014878570336134288195922569422123773518715315686159356215239087853901296263113282333543165736678726094448387546215086855755391502900730183144455950202019414240022453304097672870177314892608996296725968175070120216631014688438614291965167159493463467884669888160547354252735330200703100397510228706074627223724562271241855821003635393749423408217064895700006382927328357756329292847228762777058714762108816110969364565039922903963067587082335879714955755780734756161459947748726387897868579606977263964774399999475387424696996159639257546651212696321759487750095176596339124456634348053896430984127222104386078874317995313039327811984470669371075462134013076684807786050463678390438985929672188674463291607513157097296107188582241922505777095544849213542674359631307045346003320556732747417404719283008108440104447495614469173046111103848018132119531719887530314507211474620722272282483260462273316155817281060508262818865928791279279675622642422041055012083255993349136090101515720780378194277819942343108216498339678406386636209540906038653378026825637895738148152028656964984639290964511667165230722761799537838664484874975508583887422148587043724106772373459066660880806310090509302088730731441797625992217920970879570148447006801976594327179285746389110383424918607494858352975321909366069298919386218530728319150367066870885119061493371883686277524468612697927703821362462977723419230629599775484792782675779755687961665407165587144163187389050377546532637362104076626833131993891338557345833942846237584046454186188459595102412054166341543620786391051255286430712324146872403419012484561106033592100680460543266027307633558546240620576005826458281152969126422099614074453091598375104111810008280261869282259661764665661061969226687441097424916315740978265460882178309737950508258302058561466123608017662216868192665282100875770415467307041733150961283800942099018825108298453349949589950638889913278450718997575842371188257246535809390469200396923871994204396172624702523759091885792360995746737395826582865110077527163913816725180059493147673918110755738130177442315312107477855648290718340467679028284030620319266330965305107284527535244556640685233412696585108696807218054619960949599188148739800613974637774040475140493552101755051889419986802182178538288820561456704090732213649749858961939047796213326584725614281390442240127957738763191137654717832894132519411429817796072123828325328997085741658095690423497359537945940738194815186879991551778287097818044344579233353582376933086512825929882297425745239642848726484796747673484177169334472402218673206169830911302703373086825934633704098454101801749381405848175299205832467292665529933693122096696662840374436891562027981461270287593505358364028706336957321164632737259951268864022256786657036651132987016091466789762610622876852868801315855934609278239128860966471644991637012073494677954734387546368166094970220020907945316361303231839633327370606065858966728323797489938048544263759434678832685634326327588520009674233754068926395331749545362090662300867920392960372722865142276543152699491904182876916407700381799749137537808671676341205557421864933694395667999838111567813930984646077903844532774363907811282911773733770946909589808145047038864321197840194510272725787581873977064974905608800906391482344594681888902941225345005297393543165321688314935931511744395871441077579656831148370436996141920294805756024111188709194678666880795832829866913927956224439928777363597320328387304250105824603222917252546560129980880975571915109234634627331254285587976853157181684356733294292567378262837757888754250605991512019778421445484677361145797050968082096450111028844242598276039270030183242196836417095224924878820526418182116265757167270189523402659004207667236330273046698362959835858434699119385105235804970974394738351951387660816884723225634216945676564051093907690381446333226458904407453847747885163763020207671523592183720540695274851964210524635578775332186001046033040105071374386806998418137965361339778600817450722047197429663985301235181963795428620629781168586165698760822908904858958258273020781751065753009970093551561489176483899499629619009065893420525615145405246611619434692468574951000806409497228882905062540621137693702744928398203038295350023445299683696996820246520195732679519243855915996054000287908520610334530488130012292605131505689422904721185331962013660318891524558763873272251342463122983678887487756501470524333367248194754067064430863587141278770611912153672478901844899537595753478594341797233020732287336929165221817913963055281428111773548290653918906429561140029475263455474234913984491540721279863311307337162877424149908279603461574973140442568593265878992248461952946450427734688212678401873168901897771986586049840011873080019327394400914440899919253582475022196951441760835272693766768302774397000937119857942276231401705252238997675032936668744479781827117243767393829776244940199205929684001714592945044315815958656211091865466469006130776072189923102976790412680345955329387893298230739989863789847014570706635776776266419843269370020466399088147765081359003156310426817647355823178675444716637125893594280214620737041710031227743065536274135805809770623826515582000772480613259715108423463905377519494741196350957193063632581700693884879187128293576356949805984580005406955123988211805695051072353669511924947434562851974083696847943420446542324078454905588023202570950478464582100330014823173007899752423487037079977403296489866593092916903589988973953666894689780153656017809406208120492905031134009240569011415496034819129024168607996344648488271418056399026530379044907341982024383658854489163259770338540961001996318008970340294555258640765286546887114952176341278037639267129201769488324683459051755270321274431893471684301865749048810510867943061837635645819775402158074356149609360297291389061355494528759718192678938230987932600389483253351424558048355876088333738117112847097984768722726852431854924849954154905128242975707863038379819481453884438013401004372429530733908715817516352094973160632823461417004325887106328465795275134501426758615608695176349036122377231586999497809287274656282785751687621422380148848270917790726603306506359193355860182244552567356807203617833064074926073312986640029203956330646883371074810951716139174583887686151428743316505744934885065530899353721694955754031502101732184606956476566242525446243070183860932104319133380933993926166405634476840756605575229381819815248895051684813687555078154413983363551377556175398217850837943809712489799001053176147137295715585085601886511293136765976302777350834361196815099999055603323558586315046236218280622152167864915092715583187450799102441647679412978582079520442527741867823387156207239510388143853507102994270337871279605196984554495992707158545324267284434221528498346177157341874706288538874330140437963485586722290716769075733550739224724564812519056023804108628740550614855858457664331155334279651714039174536041007716483554675191456430013031955691981026287822942365031626795939495388132602454356007103828341294761806512815511361719715758834332786400262337063396366374541519702138659126554965689373093202349573870100749628766504821592187373256983560700052206254934294793683382585083685006306750813188912873982996899414043849622116375544354330092251293089381416901585889493796629880660734249398061764657047279572926304087831145614405016385664241554171736155989011762643693564280012872731050778257015901844984255822078346980926927726236801617782931255624374285737493622016807321802342625105500650935908099017607255889992910671836300296615896875103373570893799204890935212348930221571870040326802811737080856387060385303725915743658722320770241568058108119219350189738399686155914662506449255152238908341467958941697032742731760711180024439005838955694016635592420651082139923796236441778492256318117146637664443922426385423409079276102896775786908825518051165112811708918109426308666139791532455634333558362740934298173453776600653454471474841304374693068124365704312272627038581941092689016684322226734936253186226188775945876078625541057202276502699922618392986214437561386314420139974064879493784966593688697600062592336929334246565451676245737046523271953869154752200656785767582531651914682795183508600358861441590992523156392044495974091405830607398856718221857860473532070877381055184990282265582025295597526842959644815620378099095528567849899706833076791336074198391068465954090032892908437789500680738592261277442997808247686298631018752611471889601512595991264896250821774906287989622978719306311728563217870537085104222364324509108872043620972956259268254912573020341701074626163131011947129874934368103720868466966903415247108719419452769652591032775106426051727069513623907122706485620875720903495774000890995150154569978156815040046509941161874888492232941143890845151116411780343191879845881502428453771135276781518036549553710313674493905295238262633427765799773028343474466916728541911414970369779940996140056988636614416513246424809381581049691265034117589211706061874461269247419956381896964897471598138171642005789336141856411645503506162836160364901246239994743381400996047818787464774870629919945398339508429853712895686276411914347587273011259334138474792712629239572371158583730248485905341644236188270002248346766222241623271302699858438695181261878810610718690815358971807590655523338847625361557334168812064986416023456094832454505769201651038851388383486266268963524135855871820609412107762054039780660510581673111136286862336369054180359481199022636128134647722290641884345616988553646010418286176384954668357090515562091985492334306914431505291669914149314674661723823593739871410161993503427728985665879937322552683056361657016281222680841544349394212924219870100962416969004766714383559046025494167720405425341214448080396259093075175180033010373398512481043583990442214788752954711330904715415447787641868611835582932890270653784559983794643922569051742177326647416853462324753257291500938994590029195673362722993257432582374856487314592877421713459313933647478587250486781086014624264060160912638603575097070667314901783780457712571971299643026969910049839166965440901004146107798212373453030225568199827839495425219765978742020270209006158756154929767775264392876531508502330836321863217615630354476525026646003223829838921410386413188050358007717301256710342105604581016316297477838963929056512628762365440463848513826826064414240782342876801140167959814936689797290908507638721721640762110908244880073760952372432663577146328371886614956378297288015931783121843947200509691279108442664019133564402464303290624796427221384412827397480855327702602499997563757842263135151766415531197720334790817763371733058781581110272460939748858584969597881680864760010893007846854718271031862062085300428185297411315716644443362300066400135215317890390608352564309611037994098527998892084440553108845923799574870960797076754009768904179110856425141034758956204586050324488260072394462713756247012054610460854581241352375709416906856719504582211366038184932140861484605058982414438971603059876613388955144470396576624332966238288251218182154002311507949346489199137541530002519598242574559812893641303374690577672676565296166119154416234961435027310972536431929403679001958016667857088252972911930186435897641804547821161076216627811201245848657289294008773212372185470349525422141555441361334003290025846276928073344720394865863757296699840150061684882858603961649831009110473332372427376667548065056448487700576994869993022904956821194558256411005057106879928715863513402882049176204590250266370628940695092081628002163527324365122112829625882963822162092900882927210626184386520241372567276735565461298459110354368355002711217534336330842421639579180971391628306471365404158465485811972269141299509162364858682173530297591421105235185749095767154801932726100627554120858918402201021304564108884198308475554903726775298094235600747547827530617373854378432676193313501718495480724758332566745596350036737026611458333079556731345177451120666427486558086176634536816445912586451223293205537569407982712055695852091301277660051386581142076506237545381036822396470470665874658885851902602302852131491001658439990381580354793066299038934770756468829080199158501746373968249498120098246291611584337436517255979505019992983490912840361886958360646558413653667655156607310462711833172109043147264962474458126171868728866504081493022313163178639756641360569002533135007498479469399011328618350682820882313607499832623481493180650623221456074514267735367151288660517070149646165750696028895239519812536899323379476889904620271790067851994639469491295655930758075730149234471612495782730050461322561494413673960103884901002319452540335608264753764194281252543374660736840066489924620831267652408652075784540871929487235317791111047661414451241623071121621219707033340751174242215809348759913238008281560878084245999142405064989332171171431088064267695286352993041597287504690229489892034884123709940999043272436494904919580526981237099828729085910107284838389111979783464529121792756784595057287181568411248936226573626191461083182575618725206536432738883480235141079374711262429309832187268081758875972011401072644224739328960692337903305762043717856456728676739460660166185973610168323315924277838206765031540303437843701522900128066839341681769898391946394777574900880362903387416484073423121875434231273044549444726023778702864989106355313941474302385460714616674843548704472919366969078137677816987032231910483485533206239536882580710260027773599307244750691450285590931000296559381864629623597553902628627208528723643711228968030142989947333088594116638629973116819310144707515742322884019010494863191636421793658772171738993109331595438265224963083471386564021098932992848069642965501984448368779868939987070937072467568714797023632921763341180548791939824939065564378656546193873113401799407058001164593641022177094721282930893376119612818349584606290874987767193313634604025830848367635287937869929038974504419968293951480231095704713799195499921104757581558284934232656148116661984757668642789410665326370451600794493783986169293123151711376326468627314110899515514605875769318513249643689628196782715439590143717260585862711894194943294333254134460973668545666561946884629384116848302193865512513477740794129664798574714121805634437787041676040240156780859263778199958600454946724209797576889425845504382972545007360529967750738113078282676183210108272267200044640695710409919011250575788508821491606341122582956691685508647315766662660657170413255338041740795642001195877102559367095258932956642724696762137706555178037117151477912242695919126088279658110135362261409168581792436711902058215597288856621006929692661688580913449951556425907047767932559586906220634819673352780818636268262516117403107176794516403338785850478186285974705880675675974381934928226629626822414799071174272689318611402537095768649622902391625454093063001299535213780885225499448646064330201487413897872709604903909415339345253438832226461371654269717682986407124388340255637676766809058587838829044502803537255992531195340726962955530870105002739970780295286263128966122450527026890830288193904745708317381252837280307620911850553576643689818395229636551227511920705315387573864018571362335860808898937989656468117652796430269616409560968837878384285711789838483317337936420185167404013905870744373235569502113150710798381356919091136245892297128449466849658305117276204378462014720156639963155741702901735462762147789156146801773977641668199588951393178324846905654797855051331347996534858116896205046128109374530924078416196821739632442352229233448384846160336307259439260774716176224725476153182420495543669796088790321065913449701392879542579560515599466466648689912799956528167085286125507585223125574904957845673547705523503710641403151404827859209542844278363652808531462265227276226938330390336276368106425979409239100281546231860101095932669677227188539649838030216707922584288961165755652486380139110492900158541541208008930417163173696022916998417352781652169098942210322824155442266210020111938615289263576738721766841395605888384940737143161392336781171634994528782856487557512146812392920035293717788714207335028368924849084315350049761123385625694719963631966964557627116540046425530625901644807012986392419845916136103487463109697581784584296803119759869685062908411608892681514077869361557734108238605672704564161800496876064882003334261974532488843950383800626165468746325231032689616689504025507651960652717667174808782626913210511785098363589529534795012803469198050219649951625500017628792791689526206480032600003630416104036611816345452645150383503481069450781116802511377776606285138389433220386694956059748088734679148540861854292100318709823353767921565287639146635525847928944293281501669123992586063368953626766350370777994446048609464358876099377464600360673311822217853690107408604874854720246851277652155892203550167829801942971892907411429406980902640405326797150337156240709135177495880284326847709268265482809935721057183620732813961098692769435573349511424648061977618817261682223320754897728736743302821212655305824314948119202833195709048457099228656064783193439488211390938692317992347763826944241308081282512529688148751819605534530333328001906507758202784367073953694422451317849486535786596874575037281520346701908222148378743823673727936800828691879281411713076101342007307364619672145772206843114928477244302295108863482576123326314440383159170824241377648273283000547619238844529004655542912748479622120831832846958059989057131040119918159839963327688172977834152958156573264380593949072181272444534002208312438615863720605591758378040158436311004376012310514750487422553220815876605638400799491562653861889840871792900992754456746824761223886441087515278698800722987495555390018910098472514680666477304970370409986857832480036767816245866597397918978994917795487063507799677371836892456425282929191805120093305337540928918921302395302393045914152546999045349181635089287403280357663272626826030631789488593955747537297879676940456333403795751258317865191939664239017896088060660139179633909369909058947850842499550130548158884078930381739700699233032072443777680510880868499152262639103298968048151125323200276407348816798389450202367492787263806723026227572764635972089883266827507285741198596536418089899435780735317054541728864321375955350448891611048320032239688813025285576082004907278381380524722226949377547910959908140302742906672193053734545175442848029323771214933636065792583308468041846988837587055343007266620578589529739992766137667427103698380251867284954003134554615917761845053282919233537251330706009099379100803236422698051103320359125790150603387072616960492509467561921741205166058464473931798085495272673413725809507846365769027815946692216647418349743531856439510367576709454777311753871784444527494795892978375367906221455272753776302971510540941166818640034022805064036604095906970816066838761160470336699703585684934472418539593536647048365127673020764549221902961468459056039014766621877093156412892606946120494465238085228484101548226536848256601297935532862667281860824475542003178298112173231372539987122224341419389932939292082450980300595928704107126557062250174190832997736635542463012423857645162739934926804043220010670600966085196854543939287695188172663163999094431029297600964560979811056916402299198166607172073689071346729386875446735883810649823181477487362176756710723179354757804951282324826572859461409031942495935771213183708267787277827029254735466135602624454043867972235821698088268051798278125076510888926775366997424343548373169005588437858812637977135275793123836757937755847764616667344221208240522435528278445690033730655304280843162190269202415307769119315496719169568465347121138732153719068752394836997868017459518363408094877472670906225186844273127835977740230384591541210259438292371139639543776605012935798558482138789419064058006217010497187872005142423557170688861565380895637169947953526794009291927552140661597708166125503771680221380511296854827154861908742023165828602346503830071080578067762327880017730711409205080336341850827020136843194161639362716274565615417204909681126230177826778977145135009309182133473478339203192381071626003665876284022210102113831731559422585916866114012651804941385012535480580312654607429101400438179106246150482327396024686125357089107511907775350918207587337346841101603221731757215270950669059514872373050644482023010235124776621920720484992892938916018570622626944629563056227803071607350598214979289403958836846406072866265357946804348027991821695052103380203516712275379332379825714160949180945596559652418795499803725667627247813704959664637551604608706157269660642296021330966401189855331490585618053847954057754304740950507836477921580486672186965107703638449756793100213523788524545551909531055232650247027522635361668074274219568626163522356671151553909399171027446457690337829459171760370438616938605355585349963261024675407218663486513347479107402956984676778953417524570003567624398017485202631947868086291814027851353728840012858260013245937412290718123353166402397038489637345639536124188515227201143254650650368906272094940874524706750995228011497601284529165368979301804825471451635665100748499860723340386503973191988162713835560796379627427956011093774308050190778690309725436695159685053751441168272298646287897446774145748293700329877205483309102373467358785159733252943318016426888062643426178083735427703815587115476187249215157627240768662744084271848933616761734379433266339325136180502611063024119049813823370430883335482834527881423563515747202259492934357813950733588018284445444897147293081852709493307204526587919677410017282629513598124022040180803501437149032709867228528752831419021107008258398578506656140357872662953711884785614736392678662981723410860115398897999886989650490953866647234389779277402496577222508977216104668016057288767199065138265570507786680289070460521773156867563868783931360027256855889770547806882044635834176589520527340291888100129143291652683563612127601099311028113760099055252195918540574109507397397168354585815160420788293055285236465578552857121820045756297362563811565457831752003371013019391528301745474945324036668077907353363035503230416256284605486039507246301275301608917408211167572353147619040376772578685883236837177259599850891324471601084462211248607287159193391522386328440766803678962180827829388287473400102679070833761269587314581243002372009940806391393499019684635562888894010713194600401249532223772054129317447290881805227194199973071557658793051094163501145327518004144253149628204015764671413176700308028842230278919603329065455082642113214719934616216884924829800686681086197500574383441844055163154039418830391099773161605766931150164529932181167888864813834139994532543245603107660187915161927777273590118123785542263784925527558535267836376051817007333934193484121724759927910825899094069487017438629185514806846450433447166317101138198528323381498881434342009657465775903922300013415500033624755963975077718049665159880235795708861587320224860609108035104713187281225510149253528171892316932831843384216329890401553930006730445983342178221629490758048863978883212548305318665704582874398192190343945940451853521207061061801830048148898683812535851608014774202305011577664815305982778674136209956478344700456300148832675667676804465020092471979428180409036854030530970926916572389666506325737991127982477163563838611522549904667789333668470633714286046427505357563924243450364283774738173735807747437268027537368805250341347803479762740924083525895414653289898037828242703923582380306711961548644704309357158046370399310607302459722037462115978820711116959003709998476016486782489732927427069822715562004898422205946922268368176567697863579427315676236210644970447907013292213113786863334056378116965765658823389351512882683632485353898374648335769089396500531042713550397452480150792518604038974700218515881725507299659589532510898512914353174990420905290266776270461977895495808885056292420905282625356225243112019595991011640846824098558304399919700592073836782325579411775586764570134574103025880018166623886256671821791768601035629228313360252403695736919224269593823477145788224727502739247421000422305966764341416602144106105946143616514555368846392542142770073072228787366199612424590592805830883625627226959220536069721870780165654937466081225199634410956438825071602740921768915396226427099213579459488694910606854572612321879613709774396320490275841164834566757920167636241170585374927868608434710620136385943667296640018488080772773164244196764956321121208357731688426262872608075139566466520346721788427961845249617444176577593660507555150627903391081449925078474640169274943378355971157938742560087178466015028766599807517046555392047651881155663781152686109061866891471347177104285228095036108554197949552446255598105698411682922582878212655491070077436684592278436932214339620907783700449618484515620030581018331882034041705933007740219745332784126521578575375057802161625097290752485487087352311346545574760401765690417207904755213813203198338942104590205206691855611717430689588751329460762637953294349614863835836889557622719180455229309351579830530238551796197058606795583366770742273113742123556859373622419114161790085935223761421367118920543766958091772004661486913269827868617154695051948343055587796137758344394806789679567454154687783444052476343546859392505826329758307412623550971504394397477550025211110052551128407856463674643911903110772811166911243980154846692692387316168483633013381917155752465244975983043026181714487379632612466696879041078652402633850563779031552973603634312471522768729257241490499040526090830138763083287812010739584775394143236917083293834636817933007821012243638151991922729283082482102140590382727458131421677893886190536764903917599891090068650624823902943531964148230568483739693459032992268017124168537282662363670601802998708644330635971092699885995738161656344060228084609239856302314899207324661339047401845018982876355855319839286592630892029531438630430128646005834792457042814059346565048691612860109996709983840620532617194652567991266472851098841770574155719306276133543845720846056732119600405423106397642532581121309805373828205979669270007275183308185853292558023629649374161243952606686305759863124407755553446724881852420786221345101118893324270322240294734697570106720077670038793820618183693201273603338192744970488116377323907431360812911799248882906734574173468539109406357965755052083091993639044184261066717744007417488676396669400553011659972338558195126432796874993966313984309313221538176948708378404483286522598389878534060711344087626445567500800091101391078678622083439401402464507005087564513995738807434369580440547326802972080106502239347621994702632965252032478008795803837935290341653373548171548681532209464952543843108772176449261828731543489957487006548041264916347174488174573229686078704327240802008838503179576859505533474274242931666642609418971092753847570607051700475884918788504860641548500672968233545581954483322737968798042293612552067849591273394388573094152841230193586868248377873189968631262420256775760099480211917248157295135021745681977040636092002251681890918495374433237935952353895400969491002305115127512321105531066051735400107339856371014542613956908939197042839751004785420895598589444044452317217677943685059909089652071510803999985396873697542408976104550336761675375005898362713970731717439673006572120435340951183551824948622865869662785171141055446530808058891304184069647474823551409963371379798762961549537956396947183021557748543490885422299095666534238529239699676604741467010383117512903912031083405103658051036149610954716770672134943224391462526118118549121335537644061857519138885631103364146809240008143938468291647577711112295962115601635168667491868575731021945680622331904672966715701031711900947608642392523921903971582243800256567056998927803432339823119365562164435710640621795470677718994699512949181394844188281857210983215655319641609159387063400491504943893419488235257716269406062882638610127608542803338558410061129822147046406788262952400283560007193238769860417253932309964999375998800759390960188585852752486097347732061989048785163856854212849770623399231913318902944754430455929518851640345450583998885043151973820439900019669152070537345171899548891177346803470215293901276919977793275538626793470408083969539450753490734673849285126526870905134073583883830056208283825398865426664826003874922569904343685593727506527194223975606693089565455606200656803666475464054063414873327143367384293055308699164463571726221710230943733824028459149188400513050111946775630412486292982540884281102236837657641570481826767094264999089650445257159476886067349310669501253907059329701630658196771270485400794936187203334675450009868724353254978812881581552942511583285756554740381060109014828388278651319239719300800942170610762628902105141599970269252363589889107683508714212370791681594686554073833462630747497049467052367202496390281781312229481990161003257435487680768025814989446186509903374583801448267490335336700918186862653892535344023313771565960800364620874123095185712729494476949028099926968983596395765203543308852759243603367846780573309322532105654543222228008814663519247202540954206423203758878149805682251906666529908002720261078524865167430167553199398134317075563114797940301352262731469550376283140579710896579684465003323388632789302108197339643707189634986620066987039746088670975781562687802748735028995374896500626030544161455759555562992605941046334283045276671254921342782155210151803799029913914587209524409857107611116931669626551983868175853234272825929979913979944606995266578125365598750942688642186718854688060208761224648248267763846116045548743774060574512816292011671455405217410038296791205984316877038374523624896853109165741536400383378502125629865865147434495521353810058564063033075808096235103942404940414623769470658872048514863471875419561740225368548542469015973030639625416026130115142680446359225823214553387655156688027002925736162285596628415787471785823063611725769871937421097075280252658813861812842006279165463616155840162769509448234523857841547188728158440665544757314401184285106298050528386916305381738712413594627633693968765603013922142482805704456403051097479385763317507483033902723399625834788695760298191129833993425753243603424403761555462146116824861218776201378897070670918356694259359689624993114955350106778053429357806134061586632743118331721165674796371956681096584261883829840241004011595582746907126801397781632798292632079569822584696783419330119948203700345458818593486118593989020296554673213380597806568073770031182082046760228118715271287513089167339699026391461964305202643155952273109631014367723062642487423254547836278408816939917672565411924552620745915562417723570452220058501367943603924700129994269743018302557218844607061233121393798423861482534797189292542759412427272465482134358492146385087622177969875199725800345827524082224764687132919739364675024840713065871456856432819799258130815544484819938085165707117802850945407417996409292465077862138698402980499941197474339348335153833243944866864816148875680777248193273782740756349452385630837809334933885776052808462113559142125417299801304850727240054371643244645562625595521318533773523504126372813040390526081786506414102340914279232498150085587677350535097734421113946005358180701437784063912607008874278524277953393108992209354286038490534772219028575357977283533077718087017713328549204899332233480042484546989931392688149775617494462157389973306666657788184360538858082754299333205173950737911200615959083572814208932984055153903160742278065799352195515988825256967332308129104828717584105053702489523807202651549285328820472081330925483204792619734396475303921570611516651469843731871054341978454417230911698580063877942273608619911607576663057256252805742337481016874693992467618372244019486468412348311651656195073496763369244470920052521064845196279648837572007699709179095049110074645600863871147768974789089781238686631247468766115587399946166688445348878251355181001630511689198119558849750656432349531921014571852693583253971605575759908296566631082874532472460759426984744636096591965062889238190247087427598316346718881590247845054444066791158487850552659765866316753947160808486609361580246081068636389900265783928704761365484859513704284076873469111767795511221144014227574900724343385741868912127894499246262516255645523233624827104332142472493912742638069379150111242339805220686383839985833491271915908553146956828028936202120846397500229315207246464703599338286104396813921404217039139340673120308720310588117188372131440406336146688924215469180813194740413543144127250822724961889350269349207615759075041291634855949842981300095370028420302859411227647884419436715783053430746296322868098023845181299625043779781013789713025947705185721020987137562019937610201709803694075438108541574570171041039169294435755975271893752831524114754137670513901999346340799366616215122525548653659160334687791350572233403963079042594218009038656498396545841020752736548030370434907993682975721859701682682080423027613789654547862741868734438151622120991724435685968311844257798113378646067219164330696572465527057916807920775784020035324818629270801585937504174308047939311744983239735412182586129951810801784508553578095981927093672546839079368026837734186790770147594221765029306172176520158963791347728597659245922291744938997941965698183135925090156808385597571814164578358024080320684499153243192092653308326499448799693858112809137677168663584314031159520434517393243525793418755852637706883912264118000880907818197083320261321015402994681407713840353839890019522119011250823765483142198772690454610277716433532054494121714843433479275297102908961936394869495089064718268957855624899720938282956849842133802544838863568549632075541592595006557160194259316561880479388201078133442228210532811325590014758844354820976330327538362079012412985605055415017321188805453236481120199308051718837816162174983118112651634947542768042674693787940514870986600703041991344869307949963648972400344193770310197612060161482281684073824889852177319140508775035470330247843954910129625647407719160175751219191794909382994530738315146081392364004512054758151685050663534466738748456941712674375280833801956930791366200916806442949688699382414303572230681160754340283851047674372941067212825076636246191533398729969633145745911952073678610441403478583207391964534806637173094709714001201757988478644090245053224430867311137816200991530763003365122678646312759004956792039339262147133597002138351451840560938829250990360728170572638295152408432677974652815732906447953772364345033817219083579255129862109608582679007130359210195276556364864376374242796043173992586718546441465039696771911034555306468370878572847398641444496035428520457822932491099093161843045354910593021045098592765220154091146950254304317372717397668197793239993456889876020208968117405322339393852167399897437770366433276425852349096546249450846807205850237195555480508200181521962680841885129244438115658634101653545034167860506885301943993324380596585686099818831790481916333080590521074020738255875053519493822363642586850392468140519250052961514376565643952135467530762998190851591499688338848123946910491281165848484177603068247675655394470442833182437714131378921194902307684452786288861384933582583068349612619111558906068920418910304139699919684627503752203654857346719726461051721901866383616519072620665758031173509795325173227674607165610138392444671611327096940491599622795845408735670384308498134144691786478060681352794930037010748890924898737021494799205796079575616345866466065768026947278518606168298906718124916686362417245131643782549820184154838668849413161549581317698002182268518905848978849617541991211986813276518323173321239785467365401979572431109759108669515176443350701546508164892174771675928650250545657391779541727384733375869017741573772368551236046209850537053269658744295622403569635900217166820979465877597046117086419551954213068764361117947665888369004878870822775225472259928018451184397655751906860133447795076792881026286979354864209397878785903253169359993493801283581729357098524531212557830096417372029585293068385840585940911125836511717921296684640538229442274365678825811476022654598991454268168825314279439095684472170436773999637125183865075581474819812182070833857564813987394400193463955876604211762156286454336150935357950316073386199261403908186931096854342502676892542497207931658416932767733193212491911691544896119493834678799218302872703997768170949921334186358754962382394416529110567377365176804981180692055717805732884220557940402172130019490642094998647607484635362060234714323523463975790021682657293152122143590326372388152145183325374452511614766002991413893850250489543730702847286504359565053998923576654031395773931232031491480717219324563808470851693498904227242071887101358350486340360059682233296779508811074620707381438196729871402558958752273115725160806457003278357467645978154539086780092180352232788822804871586662634232262843270171579717953046476500868683190815569955412519994149163026185528289317191383332204287145358931622906274351629099665091116361255014545091078885937235246252509818187537065008930061502048674597368249123356391685706197027827321308582828840662990188922123055654891398549790411354429466549720553196118926333729562987354226566633062599299488867778636339251676481749266636389343151118631881968793271992156233836600911977022890586613088959003681623944811099797766928606364015508988439582184555377198250731762481504977918870022313936432885124487416288068340649537958672836981862867890954318342542527694977432906207384915455951599597683325777812254911807150174421148941816435276359326615068191398781908775784037866493494332285129138511912214968656411488254396639523695416288867356101875457508687794883693172295552937094484418184457421928267387228141462950351228831653320753026050021785923435679291026489751715059816350519945068634608608637778696733086287935502192814389223813706508680498115459798512135784069928862862560319921791581426799344951057177265460674276489149532102942680178578373532761276796371866598689923118349441929997444698744769635575633753585968217040885798652243675731011571772415688853124030034313690551196860870876186025999432067845067667657071392418846307558051591121519268699149161536365406150941917461471821567797400906400373686618935903836778552449769594042304325623986424869249274772721286122105422153910738333855883726113370501689601748672436753602181923115982978951172484150772349732518685042683156372161634799271201276425802729691806950565426238708445850015853541610269554301464200135975675556501430371322688471577060588247243978672215252006199483409321209551064849745348964847996402903737636542599072438681159203885349862546923091236821148108470540199940015179907222162302722003755378087338086050374634484094897421460997312558751668756247089927016052186116332905933136724701494989483431946172634795411113893076520509481499433199928312486231740488502959918194767418685702790396834638134200331297333616124011775710552139894302939072424853470330016219494792906673309952367019423654286280681236414821491387360486942620338619555561386958247563591005056129547261517015724253875229101850526955402629713001714318376884878833373309856133108407009323307031317838157712202712724090403696631780651626717393491078859024178790029163619518314325084680842821644588650673615438693345503167702692330350924271809859180308509696233467483839002748762338739464263374512601726905466001925931575269542983971309793691326300679611862745077378595075250067635975292809763963662170914919604309304427270625187387114855403166871363718146428666426512927275752227702566842064387281160678645168014716672533130190760259916506460131786872482555823474639292925351513746375483400658017229152879592939700150568732386312617252957838358215505901774067202830594444429204966419342685406071130899969983485719433124196212979052896616008302317145766123435660287667943405989057753764084571332508830608020297767272293797137718819894669744991238962388114100363169516754840744960141589831571770056993943921686362840472730544388733962609110106551212571883867443850301596159761588923788125821591578684796562190536775396166854164559347937273972342015035660211538137143127018684716076374873323088744847909019450854451171648539576548149159702709642423902676192030117057340297436281029557699436314898103453192489577438611262836538662640042173080334417270728081532001564124308217990645626074389936116221958796968989077174197037564387898113234614688049371117343962516760966989478066526680701106535961631517644785576171349899644520571873132860438442406335069824014388009873650939841401997472937600394453739532475686914404297466536705962623544068279564333540853525059780402315651998799127818834493443189884065488029413739690457015972447459320336037356909245991440242765290976310264404883718770178967687554221328318352841481694004943588335489273807013904246947905094318985493886639063982292545974006636832343218045717240538770670781525894648921163071488118247447642580884361419116097808433886682200407531627192492225667870348507280627373145935560784317988604873812470047755607746301126760424911395790107856756272268472503982888388166416234640448281261863808229991809757807041870581038719197521659632707527059331150760905884534122140373503587119439448706902322488065412722631028678517373682431927701634248624417450714739676255626888030344155900311980202463894924448896348842421664458414323894998183925165054430832487229580137270634915518054249298991461408128189032251716866083431436162237789705027772974134927390035092659715322812989870037750315852226372584343797346249555205432482204170019214491511005899985958430444972299324490578721035547555693793628122835671232471075463574241740318245076122402504126414591189028244535885280852571013858084847471986051649233112576494162853557718856038578410841802613515782129583447932071840764416154316466032449769944970074485197696772690955241335764595829449314261738487739538615461378118635669056865473616172070187322216630356265891830576556756078077376398458083214718043930941282814375738354739367447468352549468017598225929564927797301696880014308064459523405653893707751164719211140871294657194209894662307106001943647091319694867821701247713916863419973140340418040136329689024130254301313474620120550206072874101204193775888223694949821812432674298808825583386411330176110309297371361224102457704915926048169043869458382914600101574554411564337899101061839771556311073775247421933716319892180428533306846902907162625957055800324536552521804162055617415827294126112778977536676737060060845154972019970175627094507193509749298071709505251160745900252547985611156301377230294793324372258646693499857655406820666337115789491187856107351943603197608368444481582916961091762544718857515837206604452031953090063566976026688655031421003880987485596414372061891872282365895160756986761574708614465445009020323412012836498436456577831957390083857197591564004154469193422793603754813251115957933165843062242520151108602024892225027708290865086071524113046400675751204592244584234193511210821198978594263316143940658159748947189553688205705880013363537486210125738644325313012057111456424945232916708922218654362675586743703040471069576461796148681453591221274341467406406785235202975109258512790814543419566737223861266427668622386539264256700494252012021933606375742885114650619708253139114735600292513626644819305541983092841900483153445537345476906798045038155958040320571369551897164694857192112048833874772073402092971181183591619650900136251910035809081351154795862751162686532350122423659298557732724803806554946528245274278198219975414727437976995829146517472369493062730075658620861691904622502702008317345521033285605103910871667606664997237597089890723796443583002254551336255129343977285212460061636009000162943669642316611923257018654592046148668440313274570948878537709085996459040834461489875568471519957091290283399809948197465612874946502606219754526032088228044696576382946914386918690423945266716957400016619279080134440921368259777319532390490159922237851979982645916241922519035701139981591855380498253670654132474581056919525184929754993239601136230163768162777958648618949278397273704626382435703803801275523302207868057076379563726544758954381922225171149358779947820175409488389284521937392531141296266993074792695707039389330791416157369839945098116488608344177945629943807767603683093285497568738870514466971949871726573078962758190908625312225855861382495355772652756375135522215729012942795314299317018535281127187262840785779041225725009761884062048162500800922528289091902302551722492095867236552747083132176883172608657925437996823249986886113550614392436649893389507236071896728603842638764777473443087785649873748454934210972790517434457590996931817670886224048903582950290245403645749651179060477039404051028461880732444802701516546662603833514908127570597883104886435827721317262155067929226970290198561462366272679621206384843706214612294831779750937195895203258122743749438910121381080004864650225445639898636562780818365316577684845302874973680888710575504623952426312875764360568198172923996221312174283606458599487845849630920690589861204360040521121998326829899710707281547573482165461492648311706459409436940745167796371107029031576984554672658199606554941642045618645003323355011958883929150330525056131582548778663604331599095304650952246077043091050262739034612636586008555893548852505678279118109338609937218925944220850810628561271982424202865512819657022412618941196455482054708026045937033032078328717948425475379313907889523552075678761353383786377879388053088930576912696575422367049865126506183110046039864676180411640132808889030822196617585872034451905463329758707889765653319474047343360582570807040989183143432063781176532764848309639778480587953075816778438466163298517542557625446865348019537572965142088431429149891807738037154547818259891131185195355295488524089293013885770654382838610035210519653049300528490518951947539109770251000717383255944621937284808573770869346705069479551634923285660456538313276304704341350042709487919938675472549931220729249636153915371101974459355570257497847298403312512138972460537384916203965265734714082439253669885870924033196023533775949865288919556090193009977903333765726756015067897512242523304698680002292194345557582546501518545646393654970295446258931242135394881414875515010349886230978180293764625800548446986831150075515864888925628952593085772377711699459300026038472449930986181990591539145250665696416759133919500409229932500677967920457217811896296649152012452541121723493297663848643275352614937109472403592956823599848664983408583695368091691511271045814191934741647998285737611875861944555218344429048658700587081621562498586313614955604672256833311129334348218798980359492820227577512197296508713050447017095481335394233644090014523009132409002227688048031386189785839072295752931540567423386959213938572494488064921170871919330329377991157473824789206082485521218832454926840333469217617880298549479865112120965143499843848880046019084074009709451597358865868091916464960609376531220728779006290886262663998658069982886230703612935601434000267400914501537883461962351866403690580813170221131538975628907217804955757825225021816051278692754116786625975710527414233215055609809042407293798695324415673963680489461516964346671576761246152399386362201101183615753488283802810012436497626841476998259055117997161714601863106925691549733958580883881949647384230561665347292951060071073391048049654298782454115165601270118147569006356492271334921503242153339666035822648135659797008598660786312350617820112116740904937235692484778285915821514075173583914028938361179162733522951458797993669783641649268533817626754783529999750330400904299693270264398500760720205178434359671393073160720401443183558411040089953997872103801394542833021021833496770542464491389581276847784693058176307082641667099726910274427778919907609433877899698363593000668916402085742660224576803360531738262512752370467229095491016916139768405175597547790555384901690357158189361101645348068764935457968802241252174701792710325644319027676669663921871741781440565021432386271089797305430546578182640159936585218813128888496386571216211933694916214632989621692275397632919864615476374665865200400689979252894626993483552309935010696199536863929377210951371493175847370830576730607708428141177234064931039874922063003898812624740152042114427178828424760422778093276023667337891800805143770440291760045860324776120430504438276476972321349080371237944365050792137904305163451648144266068118454603893630573165621800310794910725651087624665011735287172183380126643501729455433140325693895831284641849927123232163232377454299828554258130461581739449820324234483792212410374263462661861743551700429768457075720326948857467328859228773278041220965019196003090758636701495304358542916950288031270859191514014907608426349649512180840211718447535609018621170050631654982015800445187331405420077752934275415330033087406167537164418877581852729171009110421383332768180167265430312579465199533687104171640660882107414595690816263695053601371216983035783740297291545040436947133158352018798992989617464053938815586956668793181579790122006800615717738419912533388798785145507307517285986870364268717597159312710227547536489092915024038975342050560704868511711590548378634693458609048225341127856186059244360456804014036685208589135055011071369099473737695945613919083493244273863864464458453610167380710562466848081621723090900742337411349589306075736058967203825135241290614784163282170131919270132128088372642403137956271661683645397951050922940280197843534198395615607042466859617670069423011829506900368167011099941678997775911106390208468265077640239059153023296963407396942275638900791228446685682488044354270676124763747419242116402775452650788047995146838663576970630460844250143266333116037134295328559084877253870305342957903729217438063972721105740602011762773028721040022605845498142752096612700275584158347469909920048177417384150355299320084214545671056987671180688877435572552071208142238347974486769167663053879152472799717756874501149027738883964506343589835249778926093075133539941596890206034028793629775636432495979349076365485604289569945802365985932684080426954788567140631805868147061726583386564944521979096156472648656599161335502003029590794367991244604039259683937147508706468829708640579170095785274586478295389910586527716829498930694027654768463553120251400426877201533134546081515572709446211564710072956122763705021364188164713043646356641843247658817065834230564833535497134386533678317418994658147500083484728050328472586783762297328388091514615201727008403550948658989857628579012363954631412266778610910100242485710673263649499935546273743824940576292975195669415236384974444589235749065019080064194757405086337078887457673341352812485893389965684963818430504073072870904435001321567228787875281655120713840172872814229720430493508419371550417745183365837653334952779562873207424794078709349643436926731860841732423255004655796729179736163056448377057023491485946884162255815582167996184642698440998390899545704826660588291381738801382710590001271539148103834324154742975460355981840988452995076295983892956815645302072877398119286805875166765907473864448981228287391129049345406335791762170199905263826511656605146883959617044707204547057621081747100234996798145922892600117412702153339665770905940166057248091185152649174936403248973824971484314916549240514873192484065667646213822919984835221739625178326432787495800560988942649032909878127909957321956392473059410198839733565273320748485392769589612788771217059302659915609458513516184984535798308386554671805430385368136307493394890093888980835305912021340629625859092462834910578129411129185324775193958346606456525727497851173260032904608713064776412928701773463875968030628283197654215401626451234670242568299596886145529229591484274016085541735892378507472833925393062358656315390769998254036125259250128502738445571087921041325454724773819097007108451501626387080622749588621890185545849272148616699074037330587245611072718098844333131168329470570430707908167774282018880447724333259632631048523826132258122053693169587832158488824611368354401570105301454136410738261148393545803114899295334762597047693178762565268846471631516652467834964983387096718770534011152114766262909731715310967349292127460164708383470345380873353634034381796579847049382464751810277485436874026651065902992428378822153114238646272667877318323172091068596764322471149329735568481709669392226988923841243649204832761165850225806124788750954702318926326656814875620454459350889935054342506940674781557238518418149756917238178439254378810761573673215998872054917633432172091205639098160484979654434406143241558102121800640244266458445653416247538805632864765670606791913464815806499861548750221301965716598567309120698056614023998609867080537381153404005513155753295644816165637201786314197083224325207967168464218299480557545988466830132282368234171444915733905657567081318978500904922425476568693128910689311015035204168658938324577782468341747563539427083385531755674963355516214188551459983097878892791469743735817879111835165177604858466012859163555190022397527337451163375161866501880177716572647451815667269736213244682483191162000246443918981175040864301326872860501479402354396510579385443165463337960348573103713263420634010215819882740587936591878583094908474423314082312876591598557622048553979876489567550713194923113281127181236879360789277802864200763727406783754408380800308530954291280671834707830661227288062346530652611030540419481229391951745274428027586335558752040165653423311857058527629464051945310538434124229809765014934333450578555619919264278385481086739173631339221858574253366312471817884684960069895873730358239134982196339304603945041412982177245932713819935690526884289720411458100440106536500220002931716338107632653040731273776622727995499728174061337468468621576096072595996874714925203042797174824231960304805988873010518731825673588670117355303010056842694994164566769311387448347672957846789848544101475861469040437409625235776436416999965196393668984676448808494222044994155113840981706367332420650252103357581503917025052001567178625069866206046018791835464024534987353911029225724137014956174274609233220930775005377885908456526143507922114096927504005650891701466567704079048342267335552864295102875935284878785188830243709283172234240112796322023732571217233315044502801080372848517847556756653687819775141908648630654130272424258272903961036993204480199942018474150852147570905956143120673566726282962746516113747899754568220984281454754281238436203432470310136450474958274199837774705580553609353550873518967159647349219893385986614872814537830196612426147437037225919368366741555080681812820518187057102833509402678769740702175376046352259664254551410783601208986140000274077102148643377130400669183791623443076565753031985564561865589579624979966517610414838630042700693246115599549404557236642052783026668912503192314260371767011909494931195062583422318891999618277188015035519633577267055835926666347978944967699102974220272054080386872726726783491244996934660312514432343685429774492391770546197915719250535868987930601136758918998117429381680641599863613971968599586125054746975623319952417928348157280790852335166158491903745277272619718344862943364871046512912376630418973180646490766055217125903422723550165739949542717919728055554173159159249223144262969137698436339841436184722248908279409160042389099150152330525363257357850219776009782743366136254639974509919435815735478530779428621826979821897250169317818651682509526639643551523927013250693927762741884478304956741549824531543052466302617989840269057954602946163281313207746724880899130953801045568017093891585597505043367118042988656610430567059613397746617255482336491441363642802002444195737699466316899858747176084205392686326353868315131197941183483895252529376961681654797550163944771615143267380339906299399108258875648224350949831395303024659421350427940022746801723710324260456059938663683714616686714590916080955605525605629315875068634833248343919876265203861959622835072597481576164398524842704473544675482662702508110732936060164726264790236973848578239264009337692378598396241268057187432195234761768841772155234976765794374236710996384577898608697656857897181174411260972379708705772881498225973873456767776464974959668867667678112196502710486405788060324336435546677522874043296651262852011825564276360432720803034795524082031640673709961227814311108711633269978101929282825630207629085268168649106409459296941471323958293154626972190576953699092159777861750603034259396647790794400601339963958494313846409049539487652233237580048251596197202936535517262229045965502321763888768759071657678121245016677503996953288645854833079240471315116925058690878810774274157276495717427317759956363377146336659817224838329804221017078481755902751192382100770321738037006968090457255175370761650637548235551097267259913242276397477683750824156892533730980958198009330442839574303106872861947383841318669162276368474180445878144733884657425444650804807190097648008733713676446137269666336417561082559578390005107336406878702272398990886581707173959410512120090626765289268873423634109723707989853814035823123738138463998320529108610096518401173285602846636145219263834300152581190917849413948830903235216911273063230606771341795124250237513651573949751912762628530363060437530988942331706341122091351058370302553354831163602086542814130303755142845528227093198852842983468637066955700767539012602028527655059578666804724902015874625890651305646606214578843308689423972470482341026352421326389179665830972061928938496221542209378549716617188630796995839247618110264345562905554899039114402057337911580695755246785639056610400762596543466400324896691595030365311054947751250310031605454667857919137649718248031663767946668540373933471659388606051730088712789426782706480300782672692752877582631929159344210430645818284801269894729546907861706117161139449243801040218378110339254378017703096236147933711437527169335428369181243312841560779688822682495052181784376460132820929001228550594026710929340966543487595058893430796939759273386994014302454012329867377826354948155981357284691552427269514702236151636815059479088948650007737209274203078525776935206275783390438375670988787273989490895049587792852121019122166072724724060603099478662445686037567547207621822032382341978737709987904883725057906319358164833413897937077494686348582403445632442092117722340502627708192117695827378795851560260664629614983714248611801228173295199586421458341530382547961617580172070770347437394914723805042687128532928320117343125583319618527235632797088637632496040718313612562077091226504312326428242826478613550226170921207088743329090016155035441251933649191569510503901543415653664642918391643561720677203124242375329762627903217314414251271284528219415186532994955289717720678294034429669464543394022846632341794742190222094887774715034745928939067002489651919798645440160930207627724831591117563818368425754656932762043208583410984570451730088776291581923475075813785603259239734602955866224925026720480003621291366950902383474621821893549386924342544917154218301079876952366488603950329656779556531194122929605306068716668644420340051058376535422410413461540250699263022443052506888011336596254690071661051114754047966344369124459319840689276408284300679305461756198174257594842302050678894836823548626682997890133507126063021591762590789177037147852164148995388180903759817835191589650084786657230053568037329539581714655020510295253188168430333161612589541654759428165443634644413899479143232242515960785317624267694569871805825162330548872187104998147592922847365106183853344509818442496087714291214564030699058285211935680441248751207106425599238514762105804174160125274432002848697262431016911728686994784514771893636538009392779087539401246552508654356116664167148868759778588550861718133263043025672234393418245619569359285713632569258799543163887932034707904702434393464124492387147184626278514084793971590952765174639233273419646372145441208169091224175918709382033368480488790337356499831710344266016668502492456858366360023735771997050873983876953694759576478538802865717796255265491254020077689646745100171584947421209355275925765988333013700517444322028762152454599616184366231099124383739956338294255179584697544710572236048516470961929421531389425959018110312505287774424238892723263543911228249176457419929719715851809460440417654372871988175505451685153420952880173199435082104840330046436306583677185582178017731872555538433788324974970153276996446083982765777474689227791151069001358082544510309110048817666050472581489660620642876156636152460543933618294234937885208864634839349601508781411167665068089838369651080990165573533597772420068063999980157418791851778967403342441953573183087097967917822780837444449984806261571501000217117624026809124045797368332723010378606555523829684100663107997253692321982737448629676190444394416404055383307069607014601282712601626898584130008588115790415991258875060350582153403718202830105726042986190979115141896592400552435163548519540446476726133565120960055394050881063350982128449847830414746384663767061651151839779219165474932229341528760870769286562328648569163929205519045786750340118450289287056711150706254023772549161681241073927579346789581191166878194167184972872897708934508615276106187111073242148045842568046156109937442950975468684773154677521524164842045603525945849315777396577659447406223106954016785731488233035653232790113909400516112348895542259881421669506119667284244579914087201711182727639136991610656672975854475654055144128419645563895094176047705302361539871227282758214706740930315588929529925883078048399326173064598653271180518465920254726769398539742385857334041577868988929984776807448979183328028033925129694226236292703138534738222713675786582411974202816643183563827732488891005467808877114565812415467226085570680059297183157923313981324059530800451344347189922885603889481464237370670532828418478036189055771314519487921454214380487781108397163196076309473814534546471827725784510176698918621292811956214035163135538527813744280948198317436340917624297955755570018533028235195628288344606374620995807101402681179122185054783568965713919716945429969787847796163127517052818841299099409796188884984978881403089777839135750834428598663538000451144016176376248787639461508224001582523975646516810570231056212347049958934074726825450793147008037776877937596265120301075675562551863272525778193159764212154671802644420402929885388117011032315002124473341095728463106218040741693075057856092061950555094668912740549007148987655972303875021660450662852645657798409322578608544763924093545457918651711454767880705130091069039185711948344585044075682581970235978646599473785197625271926051452078353457546540218900382237407377695272205493808612994559116299504911578433669374710881429103363067898398262396110063764196932216964465549662258138264721153935907292431949603546836805896819572248388715566623138059724185679193192978674626363480677288271042272704590523752484612957667484210913638986263502456647329727861181699876985872098641951416203523967951443379892068224453186625922245706333298087188076115397700566269958162911317829033002752689106852328910774448625937700550714717138562983025440796461958521593745536568371789293705871589316539459383742274964694270471830776096833367642037755100971364180087406299662916302673575821123194994993143141318958647620833513291771699511556566917075512043919447292345302600030908186450115725385984065583948919932778768386049464989141406469826972447424144608004848888296451148086423582850207326097527908974825774684442205451645357544028724370890627207331935758530280488827280424750884104068305932699639625630400316379201991425396717250232902586736193170642457338110628501506888090038636077210899525136780544484115426167350644708768520951771430538576397897748863425853861802327263956801933814659184609069384909264612258172919410786871705602600298842968558052439767857294135581510770280232618773704521024972384676531877450086354016981938641565036454463671035387404404752925354182293289216471308312275453283699834750050795931153923147145417916656133085055553000791793200284707276249601725775536427054096839129262177620099184350737353329910342633405765999295118458929624137783427267680366870154362288281521671298744246316200398695231864650292146787656030865417240706103317954196832953469642115675473092419988221531963710380150081765915739140628858578042147839523763724530804425820684517197065920337259163467338133828220879101685273971257367709590137050717620775160337994306691503997477078334831903804002729555085166356189734568544196209476501573487018452337159330449713489834051495244994343344155465784372558292836416204194289749508084412545140885560205295048838109842035168737007209589550662964044596137162563226787287665800343683346944915347579464984191750812199972191959369884852509009470032177587698277321162962052991273225201995277778833623957571843787696713993503465462368898234609112729617286254841052021694548837045801798498272356963899150046208287281226525683837467991948977939609454978432199786594366413703872903635880978212725937892043299714291811854640917756923156512479939920334724599997337864832514068664523630031869204349328291845186407787873169004102942291542554466440119712325696825456104456654348718670411080631707238750596073106577936052511623263116611247528879270833763763196613343180418909986956288195780787328453564666204418444427517725114153268924821364860428615883289380359931238848268991880825603296047412558008972006982955325830813915582003720855639441180108291918757055411180073387450391279416515562116756153879104895399458697468847835644265966839708958565817712960919529609202596189467160961776198725171096518372262071603866979562950767208837880166985109738117609091994171966915092669124522890294736614685988206707025994462763345560551264376799108400583984351535477854724337208479351088082427434850454454893852009792051842187656532641811465520983423955882289193474535670150266724281143217143344299348609996909736106566424143227846214997071466848546492401475811934293438710309537990243991319550929934466332812631195511729648324704390662010987819889982743951490079386912006382891687928450940285668718671747922918970074669042960792162137098684761893592515797748123022692400110940087907917456841226495305531059539794067254003814452941979409181190229310788734699208721173403744846875571418462577624813599916115375641249509092208328026963475689654846248313354020187324525496743469649616805955699182625612637950010082597643055198674743111479576661284092872501235600289924134365987193870969087015287270790453503363342176386627098302756689049122512300824942137930520560982246017481635611662915004762202933267547419696570818916953912408838315536568609909374366430769595778659819463084704113692923648600159593411097963716097434475344592613866735741414511056279886216872347273015125131273075257808068641005381463819019579404783816839321840637592416759754535683463510457134433999106690566847238725248373945195592628410413381753794081043973289769011531080683366052656320639680977467569991943049199292377267751266056825860301761877630442046901282045889516795923168250432243133508004576272630829404921089908665837679775861587880454511597117112801439246353841923740296901219822500091753957040766924089454672300443355740114001311498944629334069410692143920251939382327215820104237896844359137473732638818669842676952487393443437590545801786397563058939161508908755044416120321952414064034522512679531232062290442106465880109572987113279910082683216769041952417257718949617308564144063416906169431278516601333007699045234728160196951456499742254629379817953864591791621082753804656301510940572585520239567512660829911963841105182391974974233827829817571202140868511935904979320810422096598428973346092991833018369479041980221550961112385124748220370562781119199329522019817577735839885069661176016296211540222421821619536856712372034197237829973538582184746556827385852262731432216167751974124796666223577473147112226469765659626051370249979323010340593436696290095085373614947108704156992176448604790890257682106986843637731222940314801058512104007579823454249133751108976360658488405643305023285702367873746455037906304598356281356803393608438306344602787141996729407361761301260905727024374379212189822128123576721209180539837009516083495080840556684383123774301671196180118648927100405560823207341645368298258910280352581584706563705772840780343108285217973467283711721603951711723355396274076037893472015173803588992811196951405762965971785845816547434544973795500707408124413072756602197629590089731785981402891175754156990081825748045311697459361825322706789811330937239664366731295869977132179869904496852819667441592689426292815350229419899699502793776213999873507989005750705221018084468078389823736745470887768142724799272716357779801862754920715616374990674036666694898077800745700636966013176287677124031914064777308246123941784202927823160677266926588229621576342786803389629524541816986813142659168858786066057627542050312975604716570055393916586166258633513114222920707426200784742935335718990065679535001442137322658403181731259012885628411452966482639941649057420663292822535745919911652870161931937941979359100566494768127481827583937055028063183096705630265287615017467168669588461994978836233251346274660580125316335386226574868613330794584139859477049650660034600393264600076549299652131397587715160914978882800859786352288221997328191713276481453422503738889404182434909760763780986511492130434622093650100008094464573636294781409174093592684344716902373654300681065709824877772425642328401145970622305057745490212033348872308880175853009526934132075033834997865193253460877615484472308774338645765351234765165843232441481042041411736020180339719326845218675548420915366954615329659405850358264598634109240047666016980156385924733298574537537065600273902448467029513214971338029547066835816589480192379592489281624501294441838327976213939175303732925859791684268607574167882905188510032343607406118650126355916433827744414672958650949114682628979062212427612665660064476284651783201219243814185736948976382666313000459288828706971351629374008953688580350688025913475512827373974818475057439656819592979172991901081041012042889478217854125847389685475762218308523237791183129415331376131662955754495195694952105688920719366192252867188397796499709456837721366347267469269775916841736492966948889185932419988788438714297133017995091929974277779077408893284856326657868741732024217339659651281131723078665798452697880929129179990834134869802835085990156284133135539422994906042162259273660488467260559095354568072069123292218548791118871570788701003711887778563412626793246671684176876451199347750183637414128600719750741582934533004898172006995009251512223859358796509976189009479607918766606647124193879089328247534308178589184855527633456144541841035379356156127729667582609595374602847523400147664716390381006691597355695471440673367017462518619321866046183922824302550154126619073908517597651618302074088492016075353014538705659034664542500693994386324211409641481955556280808870019591997868964315922165866752395865462735939737542715159596577216775807750702034544734270080269421554859916782179849826793813105996078225444297071161574066801039156658205591626364042543739952257486716043868580827207435545870056822677240092580804467534599673750854522650805316686834463464850869291073949486183261377950301961689756982959023384500285770921104247080305569130811189262768656165660101614273975729193949688686054900047708400923807131736831331872086475071077886646731899302476116752920860098819049587175455536283557933390852886501712317704831166619002822254192122689985521823196864484625265601040776639910032924071083487923053748726653731775312816426723715390703741203212469081064782546976387513878894099049281252375852827790271053709962993867983931161657223165400421900493898725347709520587001204730425966546816792505956512582138306495248126780779641017196821048385424576486880135301648602003067165398000140254377568484820869559425158996622589597967686333334791062203615133952345572034739681985763307691887846857610275705203522022300788755513067073514740617820866397702954608248213139986623541359689669030930166051714874150496869280503112685968272822376947091299549185189063255452742738164151912917644940314711242096889652679077491684514051328477445216168924771956900041129006883097811744755930857306058095687359124242191028306635722117653505074842141008865767174539526116886367414273124079005198420628669579808865501886707286503804693140946348514726138063215000536268663716259890213852557236631198163057363260882520875489630477754691006868914766228704970868511112000097579672312741620411187351335194355533701378134979600195543491358361075786927773549108323728740972611339508251521105547703623943483093836809311568028506612431211873692038261130045406107694606854909718315073897799000683914064578429780086913029158659551280919829980105710367631593254869729489851405945923292187932025581126580500378796465101699593314478441641884272560063818543512913429606921534686709572581017514320183865631239072322082222831998084667765434436964971712208938946421496407738121018343679882118931885111412115989075925324420649349730873312166698794957116821261468733062086184762155586789118002301237892049029112085964425308260003349102606584115699434674138970926759601949099604919526130283761950105634426873099592504990453611893461088267620458536219875567225356312994245874647497812898948249420417105016680362277484307150883976768363773888311716583976616187582573923244172669444884662822003664963713692473816365676547442780433923888186372148769520144499184791757199448212972955410919984992664876142303987517264678036286622649666989723751859467344867851071663661059429106684519651349919035541355664988009030278681742659296186307402785472961676157861162264745313951779819455675755598843561407424796748271740375204244829386988284465442373511286159043036628555441946565611017727361945837179668327215937671508511507774746402641858538580829158528791985154503890427628529626974042701082780634546631756676385059383973659012397375849114320710311412590587278670116341941490384959416838137337368352131609271946220833064921612363822204103611149535924031423773667276486153998660811487437793560344710650360030004811766983311841037923844959911899075423654704577475370045371309351957887668834596444371837761389236605712454130880099889444097049431927612477155121439983500685069366427950533117702646266935625971670171095616397252949633341348591251656355674310825302529736505580402011520375461406832656894209014539826463411234223920932128227558319178833926148674730137910244434993202722311714828166099764890655121546245571385400163811757852562690657020287581171807291482324550189414722097079424979051380681895287674540278922288137232658713777948016487970491807262745724510674548933827681368121092089426603865116891756810915625781417077915225412520796215840706941573601659705493224834740615205593175521929498574728611219556819548232807177159101813279093594607058990376439839713756542285042544999713159152355005749831168422826766573294517636371699819113800395486050780326268901767999796283847347194896923383332660042257895752850210382844705951951485245798177659788300976188363007414867073993130983334223775904448813216434431740394340664767273786481242380850658118933961567554384538315676626594317811255942887402777941831412310413218213111018094444781243881637289030044290226321935441010656745789903566525132019569484987897497472254030595381220949149636994805781825878682052976703025323153839997440313905931405173876009858546923528689605956427067871924056567750083898026014513124257214800369804920946940037135159254249308141843279642843518186346148066651267684085935751471022546474858900380437695324229212185397125363457489666774947765653012281938654704607626462530615631836414593704129422704182829354245789362700125478934739528337542387374100568204997410875507241613755233787429967539340546259194099929436257946897132832532642339194330148795949343840140911803360382140774719358155408554594947819007248284238630267274619056093379000601398743364222121923382480558733208239359550889285122304094376868983156223806366088627904373005782455633827905666433076621804782071829891885452003526644783546693597951542915429260195824587142333088406816216459954814074131273151698970061392154008318171545242404289011298744569027128541774954320188352462627405809283066501030190396165156247211212036639968784672549259934771994638060534621694290612977681436065441525761241142165611087259877094786327502577832968432691579308627599110041101918467723381292852764763197853032406060706623174955986661163177878209809590494184198867972433778129816131391578729516076463882856130208161953010135498728821161511856837857509183735979096966355248741763723851623684103809214186247544562587575837885960536472867248075986749634802131898758523291604171959503577852142979151256332280959850794917436954073629135375474919379435919911693444442907994727197101640115751179990868790950835414486417375127033806687712604684079966252444278982013611026709496793644643483805294960785598798089368973772264085876020320921140734399840228054868085247727267670821090115582640679194151867923404716713282536788057220268078681584130921894048199411054667689866835758845320554663195320434124811462291126705631635445433453774446802218207686562757042060000236445183905133745595577583113189392979246299626670961970702955891562442255601201881545404412497843232321092843190176519226821501841041367669285825829145769283448307723613702093900016079334328161325333459128221317540502294362054949261405516209565621525601265415504978965013257022856557852615309441022760682588836170088898582174274379406190408074871560000551400584611968182286070900522348976028447543415484116497241635690746163729461169513148251109533781826770765980981677411339274378239296649487057696709666302136651698017137860231714231807985590933671321440012329380499771192309125507319333151163562215989323167577046440848607198798959990658474258802853672626896313653487715644442224394607885071374527071986171308201641059008909429668355981661090295938848202829444113303652503591613412470222481363742288451270726376283974227861447567819064747564201960811686821774322250490937642236075080837370377651315765537029380086143065185192739400381547038496260856205546446137266353064340476902271343062816209030629533159729141826247256619713866051883770048694279205729739356355230591832566001477929352531590573925555385884243931110276994701225660279091762050929097138756996686727141717103606785859313544087556734265527878877005018762778714646851834621428356520413411689202078534964413368422657759556386276194425504835423141163984450845376627041534931020721550422885358406166935495373921206539184728053752024385165028965396751893850251357538561942203161502562313145568489821291060057833514283348338771659836343337654883376634340431859971648651903708392054266331160546268355887448512723201838659832669740489309401435943015514284750014565891820436314432627824854520674318202283436197464355158123326586775006184035578192170666445485164086503253559248892922078394321485146493473593431885343984094875426929097355601300554675064375994248995431137723835967729091420836446712155201731546348219390669884688098193823898380039148091169039365863060459130975433573994333769950951239648935078368985398282642543146386487687439520686012321606552018245815555917747006714173452625335043640895989789482697413680028115160648479647720244491763724908562323942948673458689091384123345228575376907331697192182585016846076320172292765621734123786017324303867235623913325927987259714873999362618717985219337546387800656446834571072124164410414884916931881066453717076021490081054603738290225587034683184195151340746840186141505132841526414230667971507576202915984304001030106563205915584195981648176729185601320903993519604640860141035032651893160848503531775501508420154986666539771670872129337115296807934208587127921296484526657571866380052092258179461361315189002941331535948112618718489083669576302739540031252406541440519532744468450680633893297187891161430701465103120821921645840814599623605035707672839889215243847194604945711105523128070165877951339150387829856953987526187183264177311609719501360146671752891800608058400420089818109178293192391177291073750887948022942364141609604904040373791665588018801295804527325196438677880001463688913623049522507142595125708865483478644080362882160441421064852566510321133151723516170510271025622181505523357264694818345505126301184926182145865694613528982508814611829265979805494322804326960173274859511617918827349676798743601076485991562826005296447834689569014809786873372764039009918523380916120212727069411980622332898741560522357569455782068756716907206289971677998139467412827826740209828821887590880926753237770258384261346465879648244817960568608306016474843673257219525188082330971180985898755277833069654573499816643099849901325818901170938431278262715522165568729508580923171306289780780957390239898377350415433739757564419978439312412155217596999438649792248307240568539470444472535458415240065591524254823499578921345259393412902050190497427301905130959606443068207037013010635548644002220252821083539538544589650302124390395037171660275065784303729987476314197967580681143420084337454475827984915886139999523830857335570260224025398937573125108943199045590827095290710056361746514868968431054387852586372029811681254702178057148274999758155835190741778403055170370087508766256559663200245234061560311213304589408914024531263208078614973830281675168308836096030789769536846729688286922974579865419059603089937956670305717900354728426119040197142910693052051163273100794253832295428286346726282001296504799506219548956819255503269627451738687256820760078217303919437481979033037997183178969870222287669439781144899559764501961279803239747508190632625070388946388774413304391049851439418758214578031003331035405436261706826474275267201049955524060314629867242286258001342516142927301702570780711973541719495314684608641737142286519301080305299337154203943646878116696514138882638075861433650950057657190504147917059214069584408940115757887190414602482519362027639985959069414677468347375550450495717237065624148329218620933589220297448490825764777084349989327223533357247574678795909395079388322000710967183890894760284431048307851269321642180262510705734830395335982394729049992364416604544870118291399203690127752753194509558287493492706383737785445691983565858546037165804021031710443029935900867939139325488089184198531675946808311812092856299694107934490149306227683854128477892173365744309704836545574172660530890937604116689935695247229025486259941381143365022804839872330661249863695875997804689022211244851462850531013027361198682582870959669864730541825621438895976601787156278483299892217823417191253207754000593030329757887703484669103957514587997292293263321244492402320228016096160953545422933567240990740042644134565007377119722785345029910777900512162298258841558430840774031074120880505764444980339969171734742854595433376344604292655010210765167186042760666201726959516333828052950513774018393975146067393961902278034285367289709883700156819359537128340981617825305828614557655426556813632484517488073955848626452350967004157220580059730461037429708102320695363838911636591361594752234293400132619581218352650361890068540973904611848913046769938063016726165893303729258423056536914002936853978869728256934669726561569921631359029893301466570250833993119198120666561617138234782811498424338653976844462683936505214512985223437892295739144428620509573921965286518809709238426333041451881716957821534200713369908086224777329657903501612933072215045748672505532991256800353558471987613046417646656171907441048557861866536375343990937955904559034589023164484226568911805338945797348931756318753063886016397985943185217805975236730138565677203006382169881208921709919086247619721726212113272900483988249223926716816092581368419299459070750567104058137373860592561563689900244565588537001845874009937294038205350191292161516446804147285546381779770277064321609343983184701677691059190020978052864476009298605010924398202041130282677325272189537295735716389602852313936051357740883425278437456253606494589839284529483323260014099282889705666960931106032595991820644003516592832293224701033627513153873092823115218898339860666672646341686640754192988857502618162595432124530164829363606079648330816650822142960529760359426054182208289067953080802276191893303757274095714704312434541865789984880282020588686552620742627467795523217945239952633218844718071451048951004636086248839699490933578716793773319317271204302766248144550149649935646664296029029092743428647801489130217542934480176133433195606344074581863133674837401595543157926168895559790852320833452712955665264711660472886009941094313486396249535049132347930401880581396204815336064392980699375488483357925367126180603446662380968979408772287480462449216533404699834100425672376519964071893545035101612733450930217261726449196437849381617282433914416548616558243557721239064665615367914157412467514318651088602181509422687637960182514884303164981965205370494465837850904660128857363532891244341198714171281857395502498963353737999175975802635922696944826293823777005769126684304461823238122524525692533634962737390733643434445156062965244163600201907911924934068410845235658857808867697615840047106834594263284537660496379125187114220429187993247268916930413356357975144357875556206617917200044842744494647085974720707947569210400530923447199561532488802065690619669185639758393466231734284867431746616296577067175385019168496029329934057158428077448087401271022923347432681416809909467919396666615429340625174528921441754006983857586188611651801403076977953935938850157559499400549738877493788066162236341979436302172297949200536923231307275751594929634135876760239418272395810745922332490012332772736284567797127299964047195665458386826046899125890264995352278650780547403868008111533413683364854282966345608691792806071352580613101001792386415121393675300026430515865765414157068427314053526760562510573182652672613914973889656568832346700881698198750784886228654782806827475417500612008322346175715777351547009778424830730208624690142190659907415874336668714378696558683037794871473028968410527994336062889898668644537895215076315405633287727104642188698297473292911310915848374442639501777636794551620631990206691089668029838551295379602274821289349842352192135956266173222606512806258630557025480144698595020247618485751031781303137637249478736300314429655171274690675604500570136793531123537337848466995236228651118024022628849566902067653745946790426435653028859023450453059519832076238951112130732934480936339001079810342117774167961276322663009199063404527523038111950381064524383203667989745275781423579864978619673483532363956974986240522395375698354890558749319919310999887857698194920409840514729617155014254681460615187485851517225083313088259010417440118665432302922131367614436167579884205786687230316346596514998207589397473000257333085003750765437493897710650608359515018556688429439860291819227787616981096063045353864014435031649557217738814707291459153923399153053392675950385136764675658995534711287170061551051862708308461611190957046450154842928296867627198873248753871177872688324203234100030060975209326976783947530043781905576970093321006772187287009406132762087986794509980371148683348748307721916862912589704563695676040829511213838818695950475799238722903504337204322468156406677603519738070837350250988756764964268676975378940830942022461617664001718862194831965171384228251617503553008574516269366073456694104721200376064894180053306677036070401216589591769259065829277392229163006992425353525426211927573654486958854606031267770537240691606291217431708083078706281389281714793355754626124912531988779571530006840757012102539259380449428263458080605937845418775429978107286363097846776529263941184812523887876371501274132630537598598734757249629477842671030651794164549132701012769960062024538602988272464671981097524482066162509486487778832994766703066617400218553361632976142856685799073044650784179731977614149762163284229916715962254501201564865409972194143235982486479937928135051021511017797438075107415465781183066681147404508162914642588290806410981300971050885026937491963653663362245106639244472441844023376522600252058103846335182807348520795046442352291154952448637012050607835922942154813469872224542723760597264171232441013232026255995611302224276471268576390204890208854720358230995335834884347762700875921260895983492071205999995515045276001298060018421386406076277999647105058502056468159569755685123960510289892363240346689098112042340349168799321974084247877794198487043862105493025331081405241891261975272120794498369807974902537275480694497940532619110547226223580463376462034095747924731535909321051884345465989768329314764528261405678036359013307660044177621095229051063606336095583989173844642871133148039860105710417870824746455860946721094211124389617139290514162768312889678138043419001637776274839568257315672667064885029097735358244314982933273429193634041389708441739285129619611170437360384112304859116253432867173957848514711997124408280273184362040663911073064594257451711177491989274748999075368686785846753498700404590255984119605475745850510245289315280684130307358938051412342368368311487741631207003296421680279910537762031969459041809114083627151119148169994174856428713842971142795587176369298249384974504357451670818471517356051540723645579599453909110773852021107987789889315425703948969963335160947766099878374489886090352146085890719895876085385107616684908229753038834034340699572108948259166789831583011877887196382108219056793551427935054506149464375977405313026433256983462298416957754682243880013677175520866692534588665275972980573974138154613059635761873863325529606426118578622601471077937880268800771298615163709302772236361558269771658726490975245585204671363812151555218431327174494020387856881242457398656010493243533097645393864957873845701568483527394188047627421029332737870809856930698025445693544371943951448273579672572284804888468536614711592804433234266625762122902550289793260007764925929497213408727998870446217558563859313116690170090269890089504890002891091226878905795538313204553594801640407101313965104593354878469874447859245335018140727524791724161467859790387807275749053334514409706972404584011740035651417889985688791887936584468476386481666560221464814823560761562391061636597037702810644987699751016582354988589705751638097067595714373500809152827746866315314097463945057699985666021963116272686218778469003214288434234845005108414894810801842511494321005947370765183853577103462217841136595735975737670929056522564406223860860932583633820457019053694456478327638725618972921243494949616236569843075208001629785236847687340400998641963507145873964149818377565221667243290157364964622758960249156559495801516368335584022589711263477457263210694338898813529726666765589218121698889045942935175513802986405823614230426989114044984703992391462536865779797135639515820578908310618195362925851010716409991040955403919511469259767822786405352674540672944914568593864519323900663263551789066179009085077286540807267756473365145308046734920555032294452481929139659490964107926157293623431988061053209469966870585471412620568493247064793032370247522520105790743640893475204110711218937170361563547327095298608730226813576616128753175564339803487981171970140896198802170990881459503292689805943633617485846360081941679731324404007828208508203100179181981276726164014439136623502890655434188446245706618129564638330655762048191987458227897200107622709799517427365799940586829146064291367136978943452440596057500431095006945412033719213675403034766737783218431466651111806162740009161864130463001226723981493633127573150772301970785408715425785276233515844327050599744733849845872193694646224993627714997379404092065306522602913933903233379593334799136971486574009351446641672885486875783324009025591774138851126917091902958234413054346193673921311360646650961346586167808193106192973370993636368760398021970777155250878140232631626953158568251498662421597842651468243288452978200820384267177170738049049879625144284001942385176172830488383142097319827293220933787093346796450959998374557197970467108853226613715817493205726168993089224347275568833327485276666043801291475756088738075742986484946100108763280755084721873175606407213540512626260485520888266741294752819863875383875000857529537046617073059555544154582149284252306154148589679876195761032251360849157099828604942747000523019784221540490741771243053780972281096508190701690806010611659655516503230272540380601793478599719481818737125862520432659167544278947507696915355686413430311367045383246495310150548752704578430316953953290210530614208259283490806460667797472340036797473013847494504454410337116387132933371954956801363276380689837800342986497828305043206311173363638587454991089712217032181384015273355268714108655316115318291572319147753316968548661758163196513257163669044010513618966968466204353047802442913968675874393646477919132235787065536211362631110894724858491485548152943298216543952757161470602287190854011413860124263476534224584733530966622093886359375266179516194472569563480762784183555510282822534481236154658287299369371635811633194048098772991911945417324026810861007714144360364045453498562170868992718712106481827872217449060792334332536022268363413374862885830199491918425547254882263299746610429852472148703005267509919195603391528834155119868154795199464258452213164796896650482221209187690863821298030769283028372881362416338332131018474177275936855620368038679038722957980026505436629150063394891545306759254038839336312201318176610722509504053167856655760192080814175031509997265121652404320781653898963680957301003573276907309729979159712514606764427264371572088641438166386385324962274575361841526738043907631519893594079939718519852403651024316486892232546018022543819762144132865704467630482540787775924389547093097110453970702087261384824517201932344184169683377001291437106323186728214252045907943757840329948834774983453862544420380491115183625465412139612504545393952189754407719709459574541849788940391494195985024135327110943590918189156157015228924525217405245870190052630367926013075380013839265068306330450958796165730554744625603053831182772432418046769585562303832708078788981884960638225596716895372625975743732091004340325489714541297768392614491167640131997922037963446651635219910985733867226853407716226583743275617276195197906067341520908167986345291962966450524876947371419658430057906686665294332466017676288658381148701463662420628028159662439787043842483524680637634653524760534472906632030560434133224755316015067162461171096231794200497971530455142906938255881684441023335395063997921452759738278464735706282860869390567031303127840692845384407824769136543341394766337728364367564451243502148799521080372450009026402305386461118010886793569288130253352244661550443021927825742467536141206920089747701709566446904672473726241289984430991103615475347373262733407701266270680320305464028298578951748206373495734991824275190923844942038835916120930915373417170271215450564953593722123056125682718464399964725487619673600163552512756494765655029574796216930319458421343636596875394670538962900928616201486501068048372642966726164130617533838293802435607498536477953847357110729611861049381342048002111687407181119342559607704284843017560301870698116145694180067981371802793626309381508451773275969856283066465493194869140151447012748853009448407916103388874456760865385108467024553318026800438139725341531865081433775708447589994006730278677514171102787328366250191259975033962345980666676282768127872648895319742004314386492922819003969073264540346567010712056940212434338783954736426811424245915470346311018393815737812770676532094855212431520076111171883231807510660304577870223869590420370389232091160394173954623965812344653527411799072373187237361511905874399572384667893432419886218382108802765996013332363585814219750235033040452540276576834091348943729961064765778418339248704378191535797761917997351928952528483801957325371410521823772564959567372721313129646703390886599440943990455363931180190384022139205323599580077196762960629724327460235495749435407590318983438707215542964872502974463328217331157137328091980296792219367908219744250949883857501094367573853682451935842488789755970063420041999783648600131116416913744104037369400444350923253070859776549741679961006231265678434862469176947554251005618622119773103412102415973626149169070071793131027582485838935685344544064327942093391537011807175415839573547203580768814146076056287925783686049844540797549331282638652469790991706662654377046414646289842413478208683613971695984912969941611009823607027613220985117888442552305333864421330882063254863514998707771634218021099873666316225893859586256405829820820997278972256034939012629833972879610733819008332801833329389113174449923595266341416956890772383375887634615582566698013524640898280129095216764530736078842122864562594188470357682534541575358195150027189127839818830271467694864480669734802855496029297856002796498618462190616615637456231883680757297231573884202586387344409578173669958959896101720957690455401454260944230843958382167174768209087555081283607473140156713980676004423085511297231548697603302390870251937606140897772809526318394166345545986606140122750833465250900727467064841056972479121165402413271955204884374811802549328937748620922411153060073360366308731045720619363030693325541240995824435808279837395998260946577795508990080564635041217078138147212650184693044513135126457259292057945178136986862016914820828846048402532531978270548094319002125773988902850251948884506400186815729920447719505509277601907566030759688625035191941554739535517243442087338458157024745450217307034112255209841822658679291982578374183006210343016754503599412221528646580538056357253931407350534070243870672037371767852991760906165313041091711760146434468680425906181553134949687918471847301444249977582372654511779880654921613684102687040105848240276213466293007088931450549118021967988326935241202977062394261507202553689130572873513323928791020213685538046686693396636063766359116433637180901246747408520102597804135337095033848173361450220171097686671012353627366999131525332812767708886638054929175711541123502963214599389481550036396262856609861949092335465631165976979059638340121362206821439459190706708365292771911493468998331452542496959578291827061761074599452796147894769148117085082656149495440824891034018924223430301607843098631587311458747157730907792912126440638289851248307938047035103470089259209540349876035143499300006778458408038399636550028470368171093352123964790853182154337223546724916811486312466030138891713167958432504290714362319369748211310137004473888467104646805246954000763203411879096479440012438322582798163392803523007349199410832274743844525044824191784892116164407491308544261298362327721804432648200136667359131869936499877155537749599629252441355009276980999800124157365221076546234998514876212685397623670910006414349563397310701070322617231391118450495827104343637321618357431301734856696399262379617367810023102598528633860092811815892987468781276164327585314294250426480111389166964328645707205817912212431562719239977516195739983316276575307489401332901117179486555741731221243692908044169411031043820201732307701603078440119591627291802091754070350272131130679457323383886145780317788475686602720564460416078357587149804556895271993674144226007879612944002916249085384281352473456425736382742895157033555411294149812105293332939579837366313563156015666315680382704750443536054578355949529413075000208720320790061946862546382858622344049349006176988695340107564077871574864572549166733209534467015985334986265313596976015346352253357463067247540182327609140473837663329457109093583233279598956114656256609887080385150311926820687271616287480776324909628618392807982706494474914356385097399980968739247757653005512888326288753757070362600494348283921222568269657108893331907540941603495789395534687548881643730953677295560932700673306817589103310125468139242289881340423091612719815688863914934201816853308186584188645133722241095133934634520598622108664170602098813871561332595963607901608649964024973946136078101839334544436990426118818321429197895242005600551756980565757331955212330859232430313542837080341063051465817301519224773296935444745993116338115624987011840849828171561003088552519386297254041492922722016038115923235045962681359453617186226291656168693659515410224193526100854752424382693026412289318273138201038728512919681164654957222338226184058010491825728372391016952371493979249281744134602408431458488933644231333710160063371913920022750492533066022046530960875636769179550942388424893638695525822151411455266365067435199659038581230775606240054714299729209574917708806810137812765527033862643094108901565308062598984451844222823073160029070599734951646176586320571446647019844660973443112334219345346302384623349343871680360239304722685894188089759772812717581953638156477967338405775097421779757734340487783354687272173741807399054907948654213050573760349312148700787482959974552905138048172457096657134902725070360187061531372583142095714680264693536657469966876565184413980071121507040887568112967082998317331244093430644354507984014220707452398907812829801935909131348766094685287606962262374983277637335252345256242724761687968204871355224986837529970032636912314511355762576698072126024163951486186214401561712787316248550681492650673014117292303952760071200348109421592742915441465985235376875054911327674742161941623526746346854066110230318071039816120138007530890722152615254504763488207309165929364282961756425523272941441148485515392566209381699951287785692463350788776152328422093464481364710821917577845334975817377234772388651149797302623408171956688528948902033136891235708822970849509251664126650823863041600230807634794256903665418792744531162383758355902313001598663562919653199186200755832579677946257610821289860143370002196097533519429434594378373635504740684071697566677735301265164081265399433330048764221437478697347211345570257371014525207248474674724349913639151808186282793773863930043159239761843321643505039388713162908753826382128357619431556414408944913220698887451750616713374414617662716422433362907199165648419687731020671999044857209878028381618441957578527307616296162628809730748311830493357519751629041549687466283877804903149313427393903802986839937531929682121152124707268392712754551762653275607014493929337020587000889618610712830225992899336724529625368917859130396818741203647231743000555194957510417973287773219882413081652936129320162595040575618407761385927716581997203328124748880087102645875621158814704639129061476384875572466772952768898341465214773959959152094383821088411914416046897419200676809515834232617617695946525237788885341818766451328323012588362340187770407171080384088351296156166814790577997069097551582813442056852886035693063861996327001837542082649386218737557602394038545311978767376039507424046219743200665332865476798983067089040480345360348442650874737117857835739044500191350784606110041394733725141165783646272144581924176736198271944327343314651976263992208554604770204168442156262601264673097194977652794117219021603008345012554555067190247407242395924938758490984251927838516158754407435250653924952035293330265599347864270800969875832242908295067748129158844546884440471081140011320164422733109115084172117610965134147691181048202815178097337582007344560828418701421069848236942168337599034700927708442036975504992322856497353516347281245267052734627778862164943457339784554815213767695449542176137505239750384906931952153987768346892438500237998098130585892752380801270035591999542112182053834780508356568263551860830693039177020635446869308677122737117020942459359746149649350464042899779802842933540457373932882901530333842027220691870421789049378837184554231600161116709779971210275908442598376814403203360143531631900345865533048128568263865262132099993205254488611586465701652290189139160436201896585526388898640532172834401480049428307885735712255537657906211968898433578859256803723957354391284497384249485063654718709114296675313157003518791771011261821676852098463924336643702656406756884677976620913526575383008154897936484959650731991070731962293588412257475317841798978683662360808496791199091437084119167427010967717374937916682532757651462132209921117639064313661829139875737878385760069237833886334286473345749841425684756258453729381438907027059455235815772537212450202586299593551211507251242645755946085648884699209872157184020459787424090840678390883419646707647460180416522642780919470280389923105483444723691918769345219670546333555354390758765368812838515369657489115436597921723516684512008617817977435579767224096285234488277457295602287473222993334213565501525409293459421184070063459776713092037580152756683552194010129224008409345026819861777385194357003649022425882833544180686774230578741409313705378966310298891636402303364337289785180684568363109560972111044566045456908395059339076996604611421494304904614341665798176026172088660979183332602624701694494628798470206992225593401662375369725243674627740276470738013757367827153155824958734869648209420955194238054423664189930377983117626321687940451548905473575793049682056271371198049914524350602856932394584103537130798168928659255672924527357017871182290692504299248639537370165325364257863228695148327264413875127470121264258568054303747858597673325600761843420928893332149700319688306581324903231704432608360390045024350834932891584926261842480646974275793383757470675333139141961120338377388471047245305435897082329768565467849528310607338932236074855932044103090360195066462213912634862820965916508839058920584079507132280934653585350723959454409139531520594266089365625390083887266249713261662071567103235743171373717070941081484704565615587924509300727902937915549873276520088730387405444708404028436509802895935073975472601940214495176351564615753284437777379061421225318721026874691959936060289721986517017289295549372303123059979534515211764533133951189276553086149748420161579418398543417419073042080020406216907510261473185584638273831977817750078978748726475879448623273163167768613994498269169330958754300838954156547038315183978918904134786938988817797885840738308624691555626186268605815686462753763452437869807171340997584802542790980568439335712477279380916535129202959394165472873149877781167420729659294366173660533075807246090171441843824550352060611046834800763493630196207133224731028650205325084242918469764652126043003873739342034011662970695526054193320662174466524474925354792984027539531930457505863310707228413224409904287164349699842652860508193589218395026587546280856109433203480742855111552550850870115158643445617432123800090744784919954805210112896511209280511408382030755854618512594122883150748758437362568294083282320087687178297159157055918262758207136124905367311354819289964341100741527410254290364728243159793034629662726667448576566309577137157730463798886868799149982102237835978193210147791465552427779438810320057049876296631396068921589568764057741703467536168893786824590948189565610069055060417453718746640916974036152161093605716337990039617726142379157219192681514874736370266688270614193362751059084018477697656757374996155243852262537174934839215041394711409593721651083619634940680195744254447640940070090826083853989362228951224253094881902611544536432686864817265930420538959453001565532112128365837733736534861649660411224766486681289084715842019042270236928270292345896913698965466372309872743514121369248051439533427120385619971338699301252136897743701920605143688037039138565434660131655581615024256579308500468206795825067905709227776033507590937696083952594465745419291420337976720466084935936938959500353656599223970475129582997864248104026895109937752923202725242969831547029710251566483107456056725132376662382189464561487899828238072202279792771235687977647479486373250237545172618651861884026226229938343312876303672576823415783460213624194381456784743019142398469231757792170659035995736738795676514477736278272435271144975616604761466303303656785767053804595974135402287363354685322749300618931826737225887268318024967596104707561221663188550449501587429549638837979283229509901699078318907682719720294379413262042163735427855366317461268034396793714676753639450465277555074569571146302651170450174891661662684678812156028126482874041473715213795037878725539569684298347333357215491509100587529699993660230525941190954078001561265098344797209730104093275860581311592601714345244975378167757190349801954172547093486443675905431067160370930511466260038859027513976044039138478629441549760734775333968974025006817582595274466422960048157314906528504114744338944985853292945057302170723205465994632751243817035914179323244486777990776662126583582102180012728603717196042932544860823964002253785266769378782808061338169835932950139170418168742879621428904151324834816227449894842119887616696677995834370710682991330475154972167772846468584994299296749335218346286221958767536782175363140428409811231632065065251218635991582618981737609381314432030931455645907117363341217183036227825373125611126701772698351401227622980143849728063415818937999384111782196259029970095381459210559784309150774565466515890899632339438279853865291256791929574566515893466412141092825124575260658276972625333264981768036813176089338487748831129488012766671056304525491504873046236920364292016565449695997090967896364284071333328381770559108203833817087767301005441152309207760396404827422926404140432223327519274274414654769316939782028968442620725775644703061977975597305288768439082256891195334610508729272245995287932202073687014057462750888890468697296791342724466329091698464018147665396083719626533275208673240939238742032161544748560716753692198735134794943810285280301780619405231463767272118845930233804811570122316235858941135297106758489140857419161188606061906478189131456896353778784722305753273180743870404935208815878094184559261367561606403471876775441149789742510544240321766963937112575055388202621444701936043050564215809196616464899504516312739860167988664100669581020710142439712678301259110966404388580502992379215887321297897893032622077272167250254626402600648197499973545069122901224067054163951547868430089841431338456761491709441242796628115574410214106454306640278383438186923545739480006012563015954727415617222408678635651672105183730095488703228026131831316121595798417390022574927159257756639683611993472671123406636269355525575178914423287329497509128301261651298696918103528699362469355535349107597889942598529787335300899391059414255049429115799880303272808525236064759396655415874622350767518670034085422500888190386218452174669203840645117935242454314376948115690837562364645930805725208541136156282663119295817899948049549215534931646029534423281585352466584405694660182019313826748972105184849617489214106581659503991379988915519571900048712341089752379612708618735943826141564632891634081488120625682071043991392458726771620073319784065703405205590010211656579044920953431679862245589091265689402858204675672215972872993322968758955727261115185486251331980367130190659918779500196633293816524347723311613967179529143092523944132743161782380099966195722092467560813933028718929120519401001274623161716912438849040778924954322525145635530124077556182207129177785548276878706807741858719226128667280186486879982829086069774342185919531370046061889321346378313819902108311343107183800675601958710641612431651706457528921099856125858187302230525686082226131542257605472326513467203202126756182466602780862115792532803845367984383841439707984060928189211486094063640630478311149471823072508637585712615181257939615233659436764157310633820787835749096708656712881227857147829064222231932042382892075145193029778180310655314045708201872316221279481453059317632957593012012164808910583438935819275440559283164516081768079489735789255019193739318157444717190695044486353480883381663984047655718204784502703062396647381009642345029734598407244184592044904096575964478778327622123363125117013740947368005353090929453691163464627172719934053168925453668023829835965885807733433098671236284692006695356216271223768764113627090882821834059264468507004012613299898781139606308623820442815239331756596859573689344458790318027268143592892802193139334709077758759966587488446568076453381345965883687272235733878363904790433611400151932894628323130209934229810372261444777054385679164459333786018441681011623879457577180711477059820784172993405851742177236095412628113659501700730879475480219255802407894709002633938919661987717559186454994529446034295370904496971409200620519400363196111699646707991119129589677725724727745116196476033573686227479175569563576891801235218987623775417167270599659870700327546417882809604774959952479058483307708429380704592394696027685591751313584988296862454283132944678692963867144739355521613735032448098314100366864838736032058748125951237342999523484562966831590784312639279239623231278088922873368892537557541572093622938612125170537839795481128910857943897541033459073225770234528723341548296059445969720832947250823063369525126187268104377527616849064885504521006538549434811981673083244491287000414538142901408174787738146396628321986540080577826659592174452630372627757359347107240276751740604106950153094463783986312067591241713138561634480924649349746939573586723624147237349966588201043604822329476262506691678704200455528939274227861216449693579944851305243049783394311454064850202359364771479367285298095519227477287506649000141961755956541468299934065546642807322212379593196377280400515720849909709769194425357663066901826574139275964856679831497736404352176164063068300247037169864975716520770696394224789720493413013610191625865145256535116409640829434486666661531425447651267073924924855155638140141203562976356873907221762506482362171209778036176787590219628366846129748250953263708794466877621358181819685793049741620203639972122174620176545220781079230479228966493318874278157116438422105009605893532005383872449332033638033329250966883637873055185012412984327654663289578056937075301025287463913369837262692615734138871180373251134473457311079699588343652399753284090469926116273788760923564486945540209293592472830901142107201246385689118387011295974874533473845570677150967918018301483731805271606538240649405356547775028252220064534898097957660603676085469047521538216640165761051583962521387557752678106449745354173145652733717741816742930479657282575681461432138623239881785320937399387183405330030794600268965550600702655712611409146867593141400714167872434327220567305975515237782322162170570449715655977012350965380182771426771888589595854627143394254893842244808031041716305107705691098483408504982451023079235528652952408074856074167817778007710438895803650230128802190708314872266977546927242213785752485301169432313596171545488689252985170961795851964381438012452741101087782373671736905177502191137224528329017061314958155056970279520808001397628634982788579302791731693318290271110868366321558532396878549224108990737403997788000713643709674512127045637300386501070867784199755828962566018389782738676372222878983185447649099411062329526256591736323649027253341489520869068204126940276170419292390473424115550100285236846896539856686901180698907955497319895300510302359649251628990465441860445101777513251664896911764100922862275351444531318704763747981902303145488828414488953852129749096139049996548285844592674602229204107128771517544758009804545613920661921325015717346924580588400929663704833881703606568656533668886128203499476425074440129278364956748183806076822595463943141422879775206321946027922028134500891505096219624621974877235075371034244645747467469086168513978833469487880200929664787824956890500910969058462962459274489688203297755133355160012110993548556972420608192738239868136086518737792560916529596315598189763405083613741317705764055498434457318794662444654836223289274677697686391371116571288294481476969040022967018739850633851701213412284481302233534043235384571544968775340281688507048002088789738912790338879455340910173112559797123922625142393203071227534095763686461938332707561340303498204440356750947076234280320298987595164537397290177009864719990143313261029288960724823928145377395816601374684465698940260233213405167346005711508019544553111953418873879445356525150876618510771125838030240713277852625849866716805716307394236489533030185468375656883778385883640936453324103508833853207073424379273758197021538108946499009943673305908103835955750342217641437724210279971722033607104572582124756417013627930678641581766725498637136989793650380223230252178316100364825957461277157807780459744767742343394501858770285946620180726296414282523695883832151607227859241266068232420946071416046293196719863573503541827852934730973167894811877283239304310294246023289627127974122987104928138119888557941049007111581948796304363626277815333409322124858766564747334751852949890184854359327851983641395934870268955490523820073642379461678680162285115785781343768748393689891971803955401543556081378154959760848152075286151347235493054955849958893262211034364177454023049263600357207098585007474756428802661718365891905177148111268885325559927768018507768843594543910600654971750049626049804677079167586046042452357393873680284463644823120882937075659349371679038438142747100244115118433737732404242590778081046609298810483338001976898999269535463418790001448665418995664602366085080428515309399675176963962979730649086066471139003803014212396652881789623164807522144179364416729818393439482587177926656450597925524369811702748037659120508322063281718116223069878689601343301368496424029009854861212945818314724114780864682097116958520449481832896609151444604930086547659013814020653253079365542884105252440499142059059736120828888386487206300706591504100109140273652840308137996625864464329916449194878571666316178033967624190844126969339291663329644741541147560244885483896535004898277191920492199682853761384195057195098837512516260421343441857285141190223222368892856937924136527280824362427273420246563018144471535407921372309164102711512666181877621571317396366950865165197739556550147614309601107254946074751737680215594678188980757385382585872021853597640516610184298568701271510089401289452214952719693275637786519827138528437968759883001731015155870345386232404284593890087372991194511114970868121016390727553050244591411413163422461150501496158775727881845867972114960313221086454475463683549016497449880477520355863161164702835375338024287343578542705059680800010304069830108281917683060873388870232752564445719421127393367277672099220519152138909281243151752791041950835267447888597869859298757140124811264070081751535723152961133951979899856549265759875419373107726814931498009554569927090292428028690711980295653068982826869733479048266308314541314252485944590428432866377543286277625783653883638710477926384558708181265873780846920615077680370790691670376568694411508327032714438367278592730597262229490471805793291446414242132421935434218792341360068322701904132747930274848395403957457997310022598862905933791802569038180423803343370538802536812533939952272841997836201568425842682694521967102143405925105033979856203687753190504927327431552930338388067181616921136056692842171283948299102221757387982361112629400931225512869364952038140741372566986087633950476635886980810176361602873056026434537767615738776858930881323426872311150559527744968868545256383934534605665022855067655176283676219463699813178812641009961783286004082418647964525668668586491298477706305471620146052358007823718392741275149129944985382545924780243845127543366336531318591722972783706917743331222256762364164320462993872764373747584285076847765146349681362510267995888954277046876127914619452141689805291577746663812072490587303255704317309876490874243063837836221549812951617127012578278519414957370230191530606180038720273773767987404284885501215633923194231686192095242776497689906160328693797696779668208693976951255352474765978010906555742084247350596834099684479719374092732482252068635255493214132049349918500716986355247506663654421183378814610217305202827958713379555001301612166647758995441670540807561061279090562835059511042682587097460806432342245203171466449084005978214275684207266099480897315739770084008820001902109979563218465591280781307944410730110804124272691947637909995711934628591442570105575014677652222806578311614976080424029347640923429538098727884450432719522575271758653104050573573511306783886838227301813519289771790309194802155247188719890296790983049948594427354408585540042835496802745132941455856664068554583689954949464766725615125521364449123291119408748257122115507778487033892996058570918834195191289594570547322607490458367910842237157822478326304496238639160941444258317758361884763731905148182747075360991642516238603283583475156954844482674957346821304748795256458328877729877099875165554376097644867313603119030490440783350464768547676012035929143711442299590883338686979352651229166596583801061602040902723748506450687639752247076837684564588640595988304850741084108053617243330256681773924868971954167507644116919673805470761001112092236198148861885631030578431507715169323822886103021983116476408574624543487853988620436066365718543298602168279029989897293181003006552955944070417821364375443556142134256697691693070071419416893668552068680591694466263608463195559965128287495630366018334073711100155850982180886942592532871345724261846694595641948870329685881826347024295892152039261400407790499161065935107445162393336378533286639857970934972273082572394251127867567680771238780381781318493612772636263128618658780753851161193253682049635140955592752456081716159248909381713281355526777338002593487460877668967307811369510415424736644816174001871797490049063704827506545604077281476210269508143936565031201962610747624945340313745981672662460427981339519327038668516031905026591670899562952401919995555854184516170287072337775937053391037699254140961758073519479962264381701306899522264936173026916527323993461636433228065029353717367326065839204728995263804417060145652796365620112520354020945930844507897760471047026486971193671574705841644733753536413328337442990619363615385665605061410988650953686566977819385735756004348648441342453430814765252438900315794643164394344457627393246628262197979790189780144001284007936511481795381533854141807834820762901303375843246414870786303204201286246939404696290608227872309767343632561141360896875302348415767379421806494013893713518200989563269980566015927429388401868032561535807214098257301298801683840317518794408206304730860599313962232701071754674701693355260584641744100931642043381464938585476859795055551909529857786235770677480344436838931433628669982881850400364468269275270044129724153419445775805261638492519678716514528732786363128628797370518398546332097317936789735568888566492221381873589964377214694129509463811774733319301287254488638550070485703159145157676555312199362318248907603674924869830895472973840689660638187598576149341311815736437552091970701149754685742751372091911762793650462977646942687465351234322449752161041854459775016570982592371912662876965192683483659788940010431704604125222581120456883367667734140409203790787415598636656183436800767559417252193703819509387463723917106266664549924358738026827293413848200564755668711666943699306041053229191920369161889551643253928937598972636848723335825020103472392834474506651060225579345107628807165013880490115232644536694788902276006933972540358977814646069762192405247078596577895629799249358254345806270171084125189644007148607709879843633510383786937782993541249256180264841725868277985552300959374409141602135905520273489209413766147200136557555124187024286387354098319268118314544224869151609828345262657130987893829283658215032143878485004107441691579580370725266004050745215819100369027266708892602316517821970773448382322415219677488310809144763281689697988765195452402494225864959071920376849268129628725098846735488159566271736819030868248072660134058163891788472075346975715071196510187572177541906122200265497201442037220052512928066555927295235694588787933087249634257828262200766796955802071690678198513349003412195243363664242412159917223981751630900787026742263267198209633257221159132660540907339967478512957275666795671413708589645786945484343557696412822533814301523453001365884431516151270245317841149002820638924997348568553378032055625940206336611555731820619907024853418755811763312507575631865419041587119621204874173346130950999506461387244646982114879625862686544294327701450756915021877796331772083670559271504176649338688443656660026262180698025405203298446321142717517275809724313440052910134234730655892636904077131464920551196609681863481289270192973430593081024266556769946556117526870411456729076789727669863744469257667669003112131308861593560078517643081829683403086303033650887378092079202401582095622490967580536702529979671207825388023390491542723079853147603924937273911044581701455161646671811487689823386874140466721676002534885842371915074749406619401544702120811765858604912534570941047553871932680102747050312626655021097518315591460083797147799365068991064194019932679777489155966506083764939350439144170767950477348495628904023961807909532998732601768681349366209816769324698704598716756411624044706007227754252863310764185413456407611921274265184689592880846012903063341862447325058070743925671905995847453600384971204442619356769622592315572112969360080067696023497888995306647120974298689530831753630110792850744132432002997847698988638522634414401956737621893078928483541295557237975478123982983991573723407305020860005322550474129167398661301753987795038642512559751438495360523073072906796938782653406814149960369184057009419490939333488832249623480373680893940676152634038707952445330430122577346389111538312769610607684464483973269310314964233412855479630069225724496174370142039165676651362464242896058976627571360822004789075321936026519379477921810382818463322535845282872058545883380058590965034539106415404808611548610891577699283193226710835718111677523115607087630376562120361088623732399190038566295064720414746185020864795743663702696196425713663563444327231961681513796743338082312789293975909922396879827867772837654788367226830535912395127420224666078033026201419787209380280185506430428195818148917506208642734409150518526083162578593758544999546169523892179505612618588049689135362741927543661538774739438087123516077603577255178913563517976042523723657551103466275116428763504430699361588640298012340986204778526863705974850153158533871800524832115723132597794467605734167032293910083971594566535479814909497997682869640441350084355615200349485429438456817683089688853665890835192932909309807307220284737434974355014463746426610270522308503705648317929200984413108136503339278990450104203282175484302485326859716005041572607221275884114198321544866115115825506657564651505766266517117077984708180088574691113109544416999842143594692239081702171462335717288420339268255539417728611588040252087651518264465112452732611952287184734796958492601528938299143222823627988274569919928313588369662260137408786828306442557341419072418209618200482526754265436679025399296226434547764770586660385628985549828515861406181379698676258819393215074269357897756845359532883474787220792648589789352896020242654352703493810802089832247852775374021863191424551154123778157001866244605213586166843302890167927413914539328289202452545656144023517438816160556557523137684613616159606991446206350036548395572288983660614605807865778035141225990680785832259222740491620242701634703084044699499902280766937801678188679157885224407503446602147341250746098641443775485392876359069178195414343065221124195030769460671193652879427497270878065356776419126915581789851539634292402952651688212950238918596215355475369035120716731801029388335310154478974417169897404425617140028626271287644850253857820719614451396998511289461574728265059035623697766732011656215709266242252108513657415626908896757250940605377869802676419382499889402929616160548512479125192868808547662206487032231011699029584534129506819890400963248967760769662546458305257033870460488548517539707358179339041020022677102491847383732696571730434677773555931045673316006288746203413522927992851834738937864714707353523736350561374736119315506624908290278574348338256198238972050477575512226073717246505310323976803611001736259173808121688565390287995407225909909535128121861004937683720421741366799130208594196672812358158504879521173603715882186913272680544947345472391185561497400800371101284033996472315196225012134297817322356397508875792703098380698969214755628948488395389574977893552765381003271112470359425968469928806232172755187256894022151493502135705458249121582741221603347958977376395995614642623845737004822889088404015726375668369981361754304310356253685987526796371474896297956899498981551102818072125689105741263199313739062664673522929260629993667507439709095027378790640180047445213129916274496643284893847408163608825543679619786607219366894045040423665328306542434561788133403657700714979927213385802146371876611257580149537649155161240723878033005721881178373266620411187373743645529371272341709950236519594061784980751596110504009803833380519251362757080968884572517488409209102095246025459282351490182302431181600695319271942113657984445477263246170450285857632082080326099640088615530959565021669449681911996961278786226476995664332503914338851947214833045338504770213888627816041019062155285909608089444579023884164446291271103561795807490508588829727908521314665711105306627670239704301693131444059151288003563166263975435213683052275128312052466877756435434025253375309500926108254139405622518304720159126591510755510644223508558948445506017871617925372840408297295695101528864896264252737676237953376171686773593606661602710709944618672850661761650213407039904068944942920250979371327630457616944888973986184892736596178875347112106629107104564992857733857511385032212479986423749849139811057200585926520897589529237574996251288959840788332613877693278930596931352640104262153221212890469073202861997038382016758938497991056736870921595411546548334825231355222666640620249745231262380471388751787814867111652786541752813378476276730655902290949571838121742144528988062171926598577833513875179827658909269326364867146300858412266878637144567177103062441340532527380891539069366201303454167438003817683457108264222778703401394758987797929777874478839379907475734879047853540572573342609578759113416908157702180162387885514328728013109517455414682777560674238235108262083787494550094511119303335259286571777292903178384573972965565641422722680215028863099577720416852454106350753105724235571224667022710125714501323836656294595346676357597347112000318379938585919127907645359359425351783792887855141646198423471878709603684943500418707669425762704031560887246871387851605349862967577516314791554481645641571081074626868945134590711434916381761301395565163831960579074302947733367330535955421378865121038731910404026574111083572556917882415612801407828788954445035601068778495406484246658820150066200294043260498992573485676741844917398544855003818317263724908700721735298988710883875593228622106265196667371650639912255524303643128206459719339251241674864040313069250991157417058402383866321807880812311903835723260112320630419913683319269523865922344601490203900143748899556657211979887766992146526602017887791683772268648133558326139604554443686662780628274290666060158153522456669176149935737987932533639375715623969397691879124609047229544337100525474954057488013914517736157484741593703222389739854372256380857530566704779576621469629918800239573647934906431389654795846465943959800303132074030026577844306956145828924343693426597678857054339693141627308918598731800749383870155364362974556646942432364447262832247746118915800119331110546086503593087787388621412829833072607278534580239633484165840443088857997849688085096002580240563297842237615323920170619031601986978593440432510434012755227992511028280529232919276318295873082369025781382429435046331698482917916626053058385943021329732225828267741001148060408287876381641334923027335824336500381312704661094097936017810145463957285120165222387422578824909850944593507131708742211619111208625605174919201917431017988389059299535354112245834431978766299097810072436573115964087282939327549512273407782835738636484089188337098167424125764204383338786091566937690946648795868766687162417885042625032057268262918566286843065621625080187529128419324299023725122697819329423445356480943441620652017438669412068673501502917932557999290865848983375196142599732815331534554018066284175804211449530568116696266273920248098692191744873596750443852795554908028624905978256312198107504416809289781418221806949278011567362856153150650893346928090948435704023417035459390343717808469764407750659080979928590443397620203165088199193440073807338785152920386497937111041047572730436729652684343058087506011258781123404625203453485999334401748961807080935512106717928081264300536394486514279887247836634300628098822834578537681065915128468770888236469218805962107205631104081575542779015393621925272147367012447474905803946590831756494017153025672805291527843592482184967762763864481935837921375531634654184660010616834371541830016063272765841854782412712512918133240494598279689251144336489656173137027180102289997984741936916469306365871475544530070918890493449417083788715600755072474509558415032726150279390522115863779235368702184155942588474613189196551430770189489763858265717019728789453797500767060050101407317420115211986523095649937677227345356976062917662351330336766912670726892191043089818107623559042196525792631077310506417952049064535561106526647082135041983376379797813495576410678933903533768798164742923433703691524508087512018342871399722019184020303350772212152772491271574951000086325199163432088721226289283276448212924231938967596842852584961707704698821390397031413745863329811325479802557454044907162422621868124075914260668984591781184874975250835269866159305033305376344066894683574735624962802263329128742956639827664387598815593657416698642605386703542187508985646920252344526253552389455206951456817623164504160086615228563746320168006984851880312754703433353182571287151540041825433139379091703953954777045106244252091271355892473652490106448530412811430657382760552733123180138713497280871777704455991629071829586655764110476102005167677070099868119083295574452440469174328457334578346628758304721811696464576189873360333595681371183604127611539592620649605334711304578061809675225821270057328780430278294618252098339966538078938348887709821341650682360379938762782251407715895004764900421032031266727410183718482745142634738114485908030773099022983940338764386330976367133992492924199557630343490625731556383755073655827939063227923188250615075551299952621510608449515722331808477059193778883793418573549231886329905438962183007594613941904862437911806797016440559235134842329655540295253167653715728728795227286047362045980415454580832608880674869803784878853420541132101879009578473705783047450232055350276424332955936397012322211237350935955105606399379686464890022494789094564036543647227353291408495314147348304371028754971966229848203966369598867842903397082279046241115596117961743325310142402466713168179388461413066144831248141128304868928807017714076004042874316088991829134201174013287413312339552458369434880874951478110257329249899944313213819767720938482885226143566455122584645702139904738217132627888951372127544507605548643958036566224147062115722940961862257182723667967217330927900181989946655825787702390057566279443584737954715961696925306899073133018619729852207474873074351537646820785493558684470912599563275855428094548363643160201912277625425373518814429656975604160757046240781539812366704580792286943860160189526786835278247383875897768395976718872807370313968518962594420058317379433903231462126783195979765837510479420834940081608368687694318665382576511054868086147204721057220820517372302902630212197881139729815698532319648646401994706540910878291074117561305920313983844367713419281325597864103195113743989165408334110085178282638065861424097452024994121108882631396966777662837394078485222040328526288099555068681192847657703716864461111907324449192675071265303551617120075226774617135179105791971189279312066718144883278341261093343582206474065494522045825325949148034030189290842254866340058964289978407148871193771854801431641587374137322129280452202439557731807207537180522881813598294038576653187353111034659417720262868274448064198923404060909081960518241952442871377375553701683246027823835905692699045232562785055099995764202365958576870455897061890033694370867048665673205034835525948802518416111476347104596782204260687618712805564546133984535587992026259921637081355589627274183638578551228116061828389783131972337984834518651761992712376682443449074646685085358341965862467195384179687154592321613057965279773653552939680134635135863424021944272134180829410213211094020262489737451842485378282097188550294035446798493741142586678121062751165203018358583786625778322349987935465207356768844868852268497065115906390417092631708806585696518016539349835866823948875491623468642416236498679465694082600241061313830582502561631485429889606053527031095770636152060630960274157062782737546648338859243581518801239557962453236263731472202037257255204596862747159797137213408492048275338933662645838408420616581422348556431516668403221314126872611879753994450973811687544603045007117673956491901941171774744624078356326404234309148284665630469670557871522525541673027135658422060764704890188447922801676423915820337863091445704104073976413826348060565739757718881293434053625178042717329126984615875808693473725503210037858059937871763120402120265312281277040622844306453718627959240624368793761232012248472170684092179504337902713476373859763133127782998454786307951735333078683093903382854238483994965035495642365212238480751185356466128745293285260017435772745458998583756001180572715742871572406763156027511489627007955047809627297809229099749689235894423682211914282381081191186160358752169783552303819334098634368293337476417997453950111733351550409740969101159394652544163275934624785644142923095634253502446587178195189286943046361912556468461892674593228609886256955745049742160359800096454832025369881666923013530565031984858845164746558591514450910896388809892154503614307967305949890692775018383376135228364857523962190167071200019182971493386788838672852938834948683384340293472694261110971096916345850997174727694486326761361145012019689877253738808738253785004094286903490231468998425899087488113033941861961463497336884996617960522543556822550442410351243807278137284752553820563673602747098553651047932134294164203218157290420053921799265278724864801619435227584794296724845220940199666296277281140995728629759885797337415045539698867233308525520666711503368763350475052973837531812106061913149257406699274385972633035755115404089038479271701402402075234199444346024844265755830922660036310709518092197253728591356249683601486282122881935187553321955347751022487356843186115834381279782485840962711978136732577891246980870608087215864128412377746701071664269900474848555706005557176100190893367071996473010305558840824858379834164789660075883806096741131471639019150325862899555833570742115663082922083178969292081414894085350479289019789947789209099359088412953554771740645788337350276452180338822881713899720336615928986517470449779462859102872735131690721421425961663484598045850609298799847778178434162688873509888322577808669499609306330253876524871597787388044108952341552024316855898266769847560754750260586003122634656564150829614179338918795530113955592714833699909287014566416383718841250225607302687416875209701302256006260417732884160329241945074520539889008248052244242571297123991200929377276844412038523543907115297496165166677558039753015724721929699824770198561574433141276343864603335979716667985060891360614544724584681450914073866681087171514578954938771855091926859614529865013120660515215266583035266431637224686375244297297030397533431525009152872760858553862935928571226382851594041335047372794957771694224115445708166558761600583522216817099416832799467315449186221543412069750598100498326096854733540851307433614816165948203677575711868836538655464624916123932916926895853501189460846670445269290034462912861647048348868085099472746198382637603228342009530998880273623084547047492861832952876644376051787154824327372988005668051953288128954913511670948950666359099126847215577193596159777360492330711516617949891264752682255978061659779658491207969562481236867354023898393279375266260875427035190273966314029881531978711445425960668258588603654148682517943732224336127245490622346732071943066461629858698893488795986061136423046644682401498038751069761403692435076242047647447731810022722749373673488499782129101832486865743710546043996676114223037314555546345453355767971758139648068207426435059937002938967311738142951575406409472444060131513039435251987911236610045563555482248324931962674675939424520443741997200031220662181949424453955045315449126705497751421483280043817215010199285299407293273747861924522437071616624712774366380881138269008712016993776454682548512340832511386812199165333424620176299575174833304025966101098114061728637442349479056643979520394633703758448756440551077492518315663324482079639011911533252031421979343109660311286786661878665411633392860111416272303403403889496957228436152733400463987474139421864283181351655474730578837568247736494963919501647535359554821684528986931270757785506669526626889602465882927876075865342878716811037974009662460538375662995504057924150437217821186097785807635826085242922593089471280210029288138039960154652770120970667348772361366481689849281721336019517927480608237797722564777568806499460158384788269535226829210862157417628710508708208503707265545370897334882053578469551984046157326439038329143017025191761650651987811917424921636667281434553364861851016538613756107425621794938409943055439273491689817767295860878053828577393870780974464719873809803021913434049323548294383525130481450900668893629990351611943065051946279101667761391832971863425733096683946012897314240119822546505936532217539676892439754824225844853785214981825352370220522279588415862526676604174514644149625758100719298543089909811560704820682060339431942511588911020646228313095637213924247036943330365399396528020958380878652231795301451268050608208341930202858381742009643714014216608144789776240429417182973217824890946233922178370983887200716279048975252960483058853642117301380096678524530160222171653722728789119024413501150047002482301855291344939094910290317039927966023056531678663220913389919366443036820493851092049235838190347099230364467899639423942569429914089161040068487160901242144982830440887598789069066527702124797786590190554771551094798405725057901465216491999077202694099623650053170413604015619194914951291486648180889321772381916705517684180226728350261561662270899663017022732207353229399216829510483590619768915007207372523525347928247365944189789554401511319903444534974863061482230576953930319904301545492583540711303673110062110216557304223788670390995349666761518646248280765676912982955888500180034609994293393579746969992123890158005889856504781243177368942309392013672874726953432478277816118273856405205853581665656754048968748064276480756896273117742127668138770657630076867716701322230734405988787779389740282364041909879891755795122742862649740760056309105680130814813559600906147560897221070517805861297998337244530232285906380240461045807342825543639077027746456030078788572039983152369479528429137650665268892775240482933592596609678036611973419169703753572798523542525446425176362899787975965824436140420354214726942769326386734744924954879808000884580660451829964594142424227977469178063324929707628740014692100558572886821353188408660994449455007731875328352433329442888838903098157199414571599749417749415977099942348816698956528099641901396000247882703090534200006067871806015382820997340398953229814987172667739691007864200852546727532029249297849034056024931815000607249086886017246280970512483727095484555349517308638092443482545781988897699452789088034450115260194099841882605569193738265299474798919341011063598003052188383719947150931372989019939628465992544380396091939705828824476557311771938161171690963682594283466217344285964802753832683615541404945009495260936277499103142112847128233718805984675638142007202050554771889325088341051855748630960385684371385681475727991841463221650241862069714086334112637233908382740755160609926362117684282174585719693849163950022972364812790146678226023302785449891468765894599956602930049876805330698348933004411615768409550472943613918052836110747085116399833738646032781468028207091763799217794943196614748642779740393499439151594150393405400500115565113379159629970863194140959882551224967428602940139019244840975723205434275216833176354844516473581678379684496666801813149152399680923173167780542621114244808858919123637219928656609494910926503035139659779595604200996793086319650324798638752539340890736717060178428396978725069605221022368675243698415508255626614823618164014502121242538290319154512871937943054428434003600263859936856023166236386224378404036306505866830384513695201189675453298738201459066739623743935789437687038467657737784392675286928759602264587246523973619250249346220676810702668928526771185770147327564369688316966529871101250997617988711161333026644209291214520371221795109745322877025346081700551204351802759832744369204255067813404928197756604432219928383096603820703967634223201342373517912104187438672364620204154893650102581414342975630606018518283201824712038488198641371511430229921135259004492386021617281915572970106330153341520632352896076104611580658166850060081580153920526807649005698957718119553315205441002309645671141523890639213916360195946130600523735348536628759482844498256108616721872274229087369996581663280747499943050516790159245826315183062396269803259223019879481737938260610570297484619846424623218737129196219177916636868082630476016164170755129697243399706064399522124674532206140815538124991653122452217080682722351523786052356159648258948300295801200106276419256027558580647235007372520650503195949071739774118398270363178867774631500351234440747482514886162700576555229915009633658645078510603976779009141504846294336722486271180265868599566813827530910071986447003209071322896478973065201390573777377636816923781329672433719701695188921817507283678568259788015388014369371739743870528156042512410402269626190666200037564893812955073259439622789545057517478074346721474927248214900960008666087687206304642534728681555123968117847765359875970005811551923651610988954323160744176794163315210268717704849220280273034390997846686079396127345081779111183824587153234023669761668528996850408587712903023864966853363659617835529771938031441954744951493133296893161050087956814406178337103993496807470065649433991660034392803740795754692099678704803539879564619752128530422789761562655333111516945543365775050693707556054121030456185591368535765524873121218873598775069998227062414308784185669528368574809510121600781331666144971832949872289937088002690132442825143349875319794534944362426451148459692062523751140812922399158534612985369256745992037905649344048641326426319384803439782444239927443467741156694879258883441743532708097316454340096508754512911931826206750423670968134029813869316610693919910785923536978253074656004188090579098364619317650475934832640139878648862936258958363257103061713494175561512185041719437584052347613946559806399908991206509859683280917049648086071680080224143445606971795390275498578513526685319342588024155888629760009669105991726745486879550109042520471747151872245834922936898624295676463373692627898848568239900599765254455001135989165458843570982140891623131480408834883808695044781991871375174705839267032636034167199357341222169925393900065195255946915888908122044043332579756775208383555130183941700921016049558741503367959399079006371147584986751521731719554891268347745529982447106328223152080205452556233589168722876872680034956810161605539607000999813908571019651987756271479992951257292526343493588875954195208801873140611068772660419122097318360596530515982343665893457781485093773803573755684728789968434517028855852916529779953230965430811953005258661031195954348642793522648356287362048682547491800189838206332545080762456587421747570479421342303163839631489372745929764068183437796639739838806798744787497678670599616137003102214393055954545346543651075627894512724272822445614455546116673808309252414759634003667964333969583945979401738113824491002041834371273938170757429394172127588442797858922644651043217611485084371402190541958598500174037471292684781860964362678060185690176518400569585547608814423507224409601629376017557928791101800490136436963179900163254009306265744436380068906711006274642924896731874008951254498009844637183858969104984266409443385657827640529887078696781469700597898530098935259558232935526056072260193535967781006148764476629298236266453540911779197127090227935339397055505717170059435536970443116617840130777634001828589797945056133016259773925783968840619089739714716868702190513885401893299316175844381401482905672787779167181834787545286720167568558301719291343916048760013565381971960907320974925801347166223820455004121892152883698362761278926630907442631331781266185471832699885693083726862210831634338534532099871102198135764176990207151714783212143317481335363379333824855123261455952474491362287528345771538868734332192438264261437848327373788545967434153957024425238265284831509177938389063814528666278904830500744686626667363750127466328258433639182224762068342251627333157193006384927235769141988311358962740829178434781430625973458480267562010606912372903840268133079156545181886282816463803642041528432368636149424451884960751168904795434773698740619062923889482894702360592524484279036793483732560040673434437579108615644395511533295700273416923422099643420986115733933665314128804495611417080521602897489498784501586232906410079367435731286605359227713439154947033396833687324702575816223798984187002921260359219684587891488884335697688243781904292786526995805449340433887437867460917084431147167836730081388146072769392030777585546791833884998484083574675199227948762035240319994110561792133530088610444627528588645466605733264576074262424657958281812263049892247848289216519378019272115680681941319834101848641877059262772365851434739637653923598158653450502213508192349707125238075999598536171704833690094797284079481452536996267955127250036814197706213560074303921594693773253055523133135865001473217705798446946935059237960364044350878545281636784866098002651675328888314818606924492617690141461053158710938948114663749645227345897137205764296039514338976275581220964906864038956458379726556939256905715080218486063193665438904825817905761590599254812826228864040198545440143030675954787404928767119896489721863876207192027959524595495434980129968631729124487955633105117503318581566763283427444676301718152633163931430480491480242848286029772611411280331950809580915804705559427658749122254547650209547342965188439221316424838760721645887278118566254192161026695785247090098482761032510550643696381836058350840236221585239637956577013087162579662705507081036530923265452189379882117271626904784448392815879453433657065006020227343527571816409211018355338706210761930130218877478222677830220146532176309467044775018752652715638634791472223685645518564814240964484836556854998755007719192309921013564342723722106465689340024273940823444315418137549943937344021379358882414773096942079291309418275428315267125002548347627531628278390992338126802864674303621407139262088561813246650310587304713661424761062407631114427675903913740726176563003321955926438759441531861469102967810613815540604008653310640662407573039564702848165554599726963205086141170343223361140615937472500031552816883004996767463674232302187062949505839971481773142669282745860282999551061267691654138029528421136731350443882108213510753292242893166007652995643589567620467134210192186058955062072965454843810960203576487563224323481849053125344162444790188246976304672808037795338863190708198524606941230000122135957899903867585090904968992692742971879239144817460953734500410498788686256111209188314537046940444445336553623832628868436331525551019132940470044119714236445071414844783623006172239979580599636510270326493335844673183096627067090276801163912472779179421869895786985778403029277946513235657062113191446765546766661949344327598195940380013964132339125348471395646926770894943680441985068182822181699288853525519475267802456542517601447475200027220347262735529884379959829075754751604503391118870038321811342916046075274981375136305997368275052491552160613542101991563943520791607659589997780943604767402113410765914217804644663327775198394176775148803172304074481369307502523481835531526807324248396978049169197270304081016698257875378121447707564501945157911256529297928549352295625213527378991646404278644924277127379823303544818896636558644761790770236284690635893619071580759124847895344345972066561205034365161678409610139743336341656429033841218877035113251450197607416899109205065516586364449599135262254117309055179290555316833470865171460861111991927400561043659579967087693501490566700503039363982418264657177765750199462364052979049269424642686928633021352138360713368654567990236595916001427364948418544225091198069942718494644269640081229371670560567395744366308098203461893996945855445454070664544041490271794339969430311883931452806407539997106981465345820229851391725609266616720490536504405558445332159213671502373914387415413736709079640380893396526398400007793562816526212359772193059464522097063129927948557828504170026097868877437117942841394124280857370904173402601709605165729016836152005619307783472878409110791347078301964716907427520232729943738679655913974157208326125188310592238251424374977036642211051265141093601165255656748492313483400067942846130690775791787673749510946312740728138429925622621365182783488278821693786341339976249506450319439737841248959082131505896587131869290672370894658017108500016886699660050111118010830665746430466295500873604009916695178525060062218960470536095739330362774550332448443857265476604278345020015709603472546804874298063531056258881520339353064623838345620317843231299032411791785368283633295284559433233637500907350640940040500528848739752689756248584476373750838625963423386405082517078767368370328325858709617495567196676384723071784120105161975544373335739720448115213170326717510243141580770551688587058313094128515376277444005278161080924865099888578142851168251538528051173793186368472536008417014564122658690042630024108223301572476175877413854678862094876390398825093209326757019206611661807584746763514772212283891626548908050150869088739326441708059084836550495748277871199389266299921372317115741083014899865886481990218564631724201948510109859210523136873295668731912395259092825203627000713336461776065569619879961535398856965847319606139768217714916561202474929563997287179989624695695667235151190786576885276983784880292704141582497695213426383605046739060126841884629948951160978352992398489214432272786558080034406537754567279525764079239228151905660518112510190012109777602398470062953271385228925707404703657197530402000127315188893638585461054959565064868822284786797155036880705587413476195018037348945953855339060560082563616296970478035465998807253343693926531334855546772484738228007335674297981356705139847677688813913649841469019191644297706308675939072932008284150526832305153223515426656761200256686808273142455278120249741696567643790185434840694805833839543381389661656504169563446284468832722352661409676735201554978839254239353360645799681121810921345312412667996428005672081230607284776268343010140382338958536282663985309328677045759918111266184894659261702109307781836875281188650297986558108202279983545909363320235570825576487868339031288373017372260625243805563844868994534630285827328570924275827782679022713133898750702065096541954120165691526692449440369907735340531810709936323867286844559334254553396763247127218810339377551781223014541195928668840780008927882948613538953124135719102157727531556590211497633645569535533592596316194039349363450154788325916896480562727258693220355718890519723692245161642553605107316506754298590919162315136695783300211678887059482425465934424132855988803421848776189785330281538408597581841371287662685016803709058946093943334049185844826749353686006801268053711688777650246330588542876529162235067194110913524238242476098382330622732523458498683322802469240212146980360626590261179711938919937218488749428862239263651310247842129781327435372566403327343809725626822183372335838054148088646391233456997727034821119054221829158988164902169246206816458875156160974822102696424987018375122256342800597215587337996765148776170523785664155915012602787197881550662822072314498990628394217792968636780440049017274723687965561412651467175345547944328916763973470857706350848006293267437285548029900540526682384077676830500656746055813327910001620253793337528082438359215609815630962066622445236276186859765331294989249095786366955246307666124372810290657445608067891610084689959015530660980947834601595499076190674179607293146821595352858513618084527660223162709006478000660682336690486095493972155415800588288961759953456740680699607767687483611981925471690820316317301731214229687732690914671788343195898686059495480134034240529736622270434763027686560579433686678155209710093945061954833072473315805464689755184107688342319530873634851244918309809051470408916296014200163670504547575121453895302833550824835544089849216350234096384869389257225951276700004493962733985890542776654184628198933658229347553892631500461669801590760106169435885579999731225293528866138692179121568877088757252538393121282156727910556649105039271053284600963760621134861329661891439727021940775931614958441391804499348770010228973483106672294451050243975558527788219581913512616696815853915729848806514270986809268984663380214620583596048362361868554534778905287054260207717915405554027745800017417854230057582109705961293713689470264512254231303534905331713183095797361691313161629327425625531245295291486427996368229449823372149317144370436059460788916002619272179745584735532677374628234084906747887241329427320336215304844176690998810788046747746846955962627081831464184339249904798593840472798617322042496471354710280500943416470779575186654011134059997122006838094714780021448556571147225524604749875966034448247273005513310687452923133075087515765104494474718175567067021881915000063228660611067018524605379062005918198408212760695506181015511540620213362281966293223918255246553745265268580195272564388646019922615986440624825651471063163428787330418479748124881924065269518686588470097327871404331393229096066528399930633522624435369399124251426947096063367063634026714607152466512403311482298158641677162485068960415924547521467972474139321038675357945244824898855607715445889249873616187160672461923683668977612938449918616834145503520693818738210699838849500375342911175423903376731906256170709182876774587436902662134921898963108321016377838225613366222961566949615877400126184216738118147210346791333229293703126188305525735112417574390848035378629989958144957054433895342325549940773290731015546982995605829320349653507872862061111598217704214793160580309899669144814019708109536497418136491386582608106559606528370713696067724272271506842322596854068787868718705772192348849002540767541478474773445095650055870955539283849202451224112395024473368047879504915584254494407626630534026776639927982614329913675896190235689387245388260622655946996857887883900028178256546676297369556035087933420413498234969874881565807456730145631573703443518613651483583672126904817245078487418486382145297758048620726384952632769130458597124082438091406426408269321276020871842019171721080594815087084495116840592900739550252826795975965858075722422208279612786370550787031788736426788211969765450616106032593505391826917745081924896435625894570253232839404780638970860282485627515824564159908590354645767685408365544315373935140505900275905437927191176813956610732633148287340679907530798954049635443084613511998063734434294936796754963736684578075815196863724740725926455622703116025872878461503128622131644832523371083804160635308709760356124000853675342760380753349430435993595354807318258509444282200694669151594420957130820697200698890290186960953437587618173903132094689391363161124103647248032971977745089241872166624405082048408990218900402981008098220644864787110138068475870856318511001953652022047828860408410955453339426190775604798982343610675372002412070810369463488853845468241843335660934318198934937884995690482672468089880960089671816584098986619891180206848274132546345830034260239500787809722726297158329335341355496237717820231869801722443214691553912321468355541374626434030365107701248060123479275902775215018325731749759610386892643448242570162568689874126256010821838320218289413293562136595589864748056979339703247023912568273446650747940157418254455542972383200323046349086526981432947885349255607098212833557476274716771147532087785384353636823146852828506406061398315457368342041117210444657027940470484304760294805943220039546904595195120831356083219150416663417458573642553865682199817271232452336168122752917073915166196654787890616481056876326062498535152183901642361495206675408735565959084498571088590500878086992797034210522475703665042001731085184576693906763434512046805798231867113718060379288131827986202124582581932674375066951749745015571830327254320510672167902337709687912552562829419706726975407376558717882209662526396584240856101001305534058375841079730935573658431274895965127771909084701194830027159630477484173775829285947383451633105092954916418069132992505737446204877690015496508811937885995914949091452828142775974200502653050851013513715668047337659263480008649137094547096259071590430664727525922430556234864763741082944083574098515861302963885272096499535939759233750962079025632641675295203893759667867429967655251877590270667572276470876157588243310509934317866487805993598419203229966221459595011463356265168491565767005237506416066681313525263605198134746773760543658858796622991651392553561433805988127727880584941963461889487569243295734788199156384343452516607300095869797835206387015885278535631974072133417583041169378102846566559570095000148320172190312039655276223503460978071670587916171479769956449949016076481322369073548445997088619916664884753419268382979459062603424227091038711369613202651783337065960807342651271951695531512865872108585320533978739755760958237033074360335224117069203178537267962582942591613163796951078023667479168105160002131789499517425543819632689780008265735596174276246691253809436237347494785507101734186346341999679233447673867588781966953301481096712770016853377935110583726619166138057814031008982354731125925926898531849613139757320602060773773865963888397871434323316548671963811291348646306117502315443798056198300380865989018250686414185948321528815769079318052712845390619197480029927089343968416138429668660405839213757529017452975509575750807420177239748227821522874190859151899833866335313825402006710236430077913386592660003265247190714506064952814583365027769131304031968678271407381867298871513829145537554994124515419780147332197704943374902595971854576682886911252258411405632403037201881338221877507712429603957486318034684099312997158652650684135187042187753403546494067078932236043949152549116827636234148483889207165551891215199793672425701360924875646202361884103574788957822267428256926405724179367814999956185691310924287098061247646347616066706530097109638160918061624058081290503511768729702458151066521940097839246123459609148307398201893043092808570362743469392390363400851558577567674225913896174984474143499450598331761124232516944187322351113593477018002563957207248345397141717753321003734322296315532378887215994275414404136766160606609363404796149435690984836394747283387051296766682639989404881974134379161083997479425992416585955064566099825024635038869881564173251391239151236474396480976794462892133283771736265629637270060346322116810737065448019378497153722215130633911302869793668260857978517543437654455561512017788195147071560257895871391154183173906702141962776415641639415713111938022508289224313218845573944938944462651868577272062599509987582624528051782734889197663582052047010474741383252782872625783415573789634178240502681157053978051068166411283319843013291720508552171642314311762369847353848369311114544140715004613955681210708574095166823758117540203187480468023867823249396362106578498615169290555890470033625131800577464430406658790883064406173476774012381009525459374780769719959795466564097404831938726194373875532133973104214091032261839929618334710260685238249732963653354770380751953844073531964911327950256931849068503050620223401252066628544246122610836177478354715452216772542519713431773176659335611442578321786712471516814810702557200151425811862772848744400291694794301007517676544465884443966959420628145276138772224191090997288255508655223365546229555524335144338042866589368814765428183186626866409380283404191447208215174033002753358532593851796749592514785602984745963625418831216212617622855428678883008611904574651876786880865407361710098241363478831454335650365915339231697054554166089161538988115104672077567706372458478851150010577603782276480757891404574339523937149182552957124170102956638439062067399476127877873775545716503810686701934590464173508614596698102320622198525083137444500666646588595206293733817794333507877625051387378839228881873781281111236789489818198137968014010963768230526380456481235317380339543974368118731348646710514566475413952922163696730902385873019876468085181808750746881856098618016158786940997676240077613313256046414122460159821633997057247063373275534137818244610544942882655933791726346476176383694048012614199068933304193290298679346222880781585340251894113640608404736016384790656198592931929780340066915457007282594305037217700151597785367104068184822848827813423590297681731197510533971184579525749947873611504158805013433139934058110539589548189303221732619752315336576226185402795722973332297283509978002514730407265540339249519242997921965139279418868948607599309510981886492253956708817613075517219931286820144471996839897063392877742511131936111086021459744256836856631302034639725956563170152522173688697462147849804720340316041658589891517076004345927615933614783210914269519875930662644391369294289330665323676829746083598323899783722934431761050070278074336338874702252296593973289760112595951379966624776898649413479857376477736195753499945126418648540197729177703199898652267843605359025235157982374052587849726651758741641744736743877077463362568558317910669731139918127342128274198970055189146999951001673055120242615909129571999878782981901404316611438636171710877194621228145135504648973208517731396657146269308520449165517071542852873335822627243485819438377755015221519114806017403700608454014467534125834860191101788168158843880708728203785250335126657398564467402525311545577798302793389798578806745307840249456094107894687234439891400740768293881490523968721088071935931867985502544554726080181391921323706654071679368012289369695936980358794126101647508913147368907759786287221959274852687544720679592940547506349608206380577791735730700904857921432707663307470926494296705570193662084079522261576819490554710593045622309646831332130395447625394865972143452233033147709312925073142752731216213563858179907942184725699877019476881857672597308048433688155956497796021329189817369570966434467946571169293334094118169397279983164217352727445644498948594075749088274453969313700377597303938171281124095614144345372318059091442309687345345427210747483867309689223778772326107031607928344925798401095711262513103359358042208722909826278011183177721928700290359916745025921402869854850967655545489270426034227651029557143949434645648456001563668002559062732627302832891435239868083598872720638677173846615430434574539662366882303061636003760783069150945561974611893381833430422363959245474354732667036842123856641747758680368123917801506982027005129550237128928860626656379802088981568845366775002091216035531575241181677912366278529043075188852412793053069026370651691964851252794781093517844920709651654263925096482883922075783197065531618801266753655965358653394272967712748776530855428766064471679342784517176226598130076097338207542924329046909571047379745463441810112717076502664982325986785238121549149759951067232274157262825247538798123319024941528661816003647466660946098353053714644241232951521193067107820357805009997041981229531781229656106322346087426631857425572025981218374492329901464579149053217607852919677405612111365911068206940575060465875087340462280968136406588130598832228360019068678762832519402595617394875226336186871707697980915161775285027728188318864080265892811765952537982640629275460417680120163209270224032800677153860462458499342581991373265895734511191559038064962561221043567227097354503351378135227065656917972274471719982813164925907036175068791381918319162435168282269049188634642940258270176719934393510503291542751401425103304446332375413573062533648814594895484721428214364416278373680706949952651266683869567945508181880780178991026017447875779405202993095375246977688371578541572775628674370949267282725536097827678800108855360011085149644163887259810435236360018754750647499468575634378578208556751206179568740144160518534223058234401920854568250891754981234909992323020326742714372855350828389569147426304103010231369162489681657815389290648562014024330398262404552535767864666625622981941323046776802960596792359547194999256548911769258549904799291487806934773581950372330121514219177200069993741637027053607490365913918441973438572671764656696785800670576207675935633850158389020976982516992424886051771485324395054572771973727684864086450435655999695832478162588578504682256608368203316771966848780826742017166564521752967039713618355624211855425659011558996112621141285115021996993098036739015164504817302443583576395724578471125809583383461054492667077936786815832918935707185174177985977824150869616670001041979836474630934210407583561647214227276736021187854878148809071644313497351761444332518773687324243828611077344639150234782291610729690649966040873879225687534400348513171319377960778288505842256555858419951952043847355807528764813379146568499702568776056173283554349052177613604670592522422813104568249226232814769673019975384038444839090758415629130524216955722459662462298870117474407287034328161404909686210302461431695787501514621757602956834432647120512889211128760120943744611110301069263633370799699669668089984547499482195730517981231544035132316996189622695000860445202716317849749085321981168891917413821176831257894293697224286771666861766054742363876357903037404825921852821922220339299967806358578658360288052922732442618445891831356181022189382482128980794194302687805113051309137374763649250543582225830372056081046551474545266814133838384367089290291036358993232768903716252607894990660649397689102298960900299267113336700549286671008045043235806634410434532741738750102530272484886204908353134762570358316088965340153816095674524338794648410967339932452775940061353112998190587251739937218571767054864454574948572835144259943880332360322021701636116458612153985912458830670824943289689712222717256799851010769722166143666778847052726225064447807914663273728098415125014855332763954075481954453166143806184507618307845235001366633325555765620367325908656963929873456363551877910481014646208969861037563891875693244906761691143356511887443077375901221676645665759090756342407112084852160715128014070377767979201342076493106997403874959779424125697475370907404043015036837401010226746654589560472876723098919963009942120382365938431619405500881086078744512696636317692141388331644165453696788411856674498775150920298819356473482089518548430259576409935245052858806151649031791654651954782135530207336947176645559199167138871877519590947843883357531811912909093466174919066806068668495569089559879133524857995798265770386191459258799244234253301172755950107730880292948984218414418270107821032944821524286424915724468690752079013613689292219178126894917912161097962826448670431701185045900655636136777021578408828248440444408076288754457485431711684861185682920667434805081013708164317106473235914553751471468504376031757719260412097811567100781729978013554071753119239088252433399075397477584866363355327764891919163166793173012016220813061996750824473633044044428510088250453250379561038061962083806216158594628828591823521447740181443919804236137016788218650280040973257072542102831113118812371079795921800946018643868628031640737301079026167549644997828035456391155612938749466535477735875570236581150324471350934923067866496883539485287223703811874244566125684987779938433102584550508459300784677298488958726895548005719050291135149407859033021715853387387706154539577248105794591564124646868310284726980984242962592776616138642276518480049590105481100742806798013099039079203489562713087080313086817232854124856594216587963162405939615988557083163115617505948524501571743736190606753975343051961191535783782624921015880341644907301579353750881493870124525438302963979782113951611878539765154320882423938121636510217008638477042291509504799884195340407012374547961158929359193723817151628716801535682042829106020218555456247520231981170090715158417432068108692291331406928345882004497772726763386999875832210050764805560887914381440200813967726865875605928246924797315435294149342597340083904590555494488735137971200587960677315133036711287074792658053888111219362764275960484121150896124461424467852423116910856997907080055183501434930053834415780836008995544842059912104932585930874580114942868368951658394647808886069855498744590000497067208930499698582081635366077904683369708293891039899408768360978120229018382339709092814072707109293126297579973508809347611400550735507116615933802325361409685811772951812057681152119684889557162560640096479666066579025291213481972088090272752524361851867272391548840845416833872137572261748669322721045155759837922817240195476455320489668268767680966406823914445344408388467190994321676486260475292039924289046155908317038148344178119374512504814449703260474377479417707224797685980805284034377698856762416798918695370061433399697538315657993660169450990025329537062574119968998376514732896498446394466647212139309837091451587146665191985505572460811631159828937914889203896961108871541574040659406234002298291698732128467630887638558220245305943353693009422340834961956139212828858773236691969053593753079563346060674443605562943798038990964828071380051404528729561060913351524058295984359129210401214970586768349129508007295548850362177520942134194378190507747660993226474578205791263112685357596624553978245313510713510792829519646411213810725666545724734023573456164531878885804168706519881242048958087872850595101106497555234472320886875292702077881024953292401515133828131659372112558697021396338009319527758050599722079827894447709381902043758283855084248493984580387956645099735961101874538915274661194620775700478112308248945689406371563418730132654489359222576793995880030633962123215643795469144574412971583580295514076156142696015045871478397735421345032952442401931634560121396206869755599112547614922277744019303014379693114858397982490707087752888369003720919078266412636541378213791104871656129576362134077518719518502159507886197966303493249572872498363045600454894264577015017033169078730740098732872450855250202962151179088755409846200108487324277106237826057046704788791733740408533645648823742408932274287468983321061678509818948921313720859644334071968714437349487185316234360207989079613522794818667208172434848219002502866705729950123427951551207902533512643571429580777293334389086923439417408684348349846673824666535002253123322570498414624532750190853703338596875978477108789997715576559037761107516669128395399029245987861105306053994575384686064429188842368094850326047641998501155955611427289059751005050745718221727004374629841570220683344669791807443060891046583621688191997921748249911104303509105984003127463241955773173063627883025870504539549306427180195873763064591569908203739209674227796976024551933951333853375855693971685481350595352145437649821711332359252041709094830994897905710566181044714189037586315557852833264153735298882613270794128137362279361448770979876066100135183888408230125796037211338404428759855257443821173351838521166824702143673210991672288950301561333662540376216854194683578128481562252005763739261751768260778164455712604395727825113186720874479679469588530646723370458890404122668331987042662976308627405983781792399031706400402673239196777905410209692365927997995507938469033794488980572334754428271986508082943136951747648184698593405578134489581998897348489883180705113962936385308632228167417176220819554766886363491448101632269216882356683782782589862116221833609478176902835127507037223942588859294658557431208814263127904361724644240508269438975137898851253506525768116477874879220242269914221263465535835498441613784910872903471232917853936537026832243442830883580792352706398696516953066264522319285463378374054509024356584188739708385121541333136576847599269287312851290087912009308623127186888860700500676614858774028723951990781420246374290276940336191670795200695424120710609392277327435753175040108503985592116148873942026752484488410895107320676256529521312838500419665034782847129728692752659920122174667476567652073925303436946012529122982099956612300957098078162289468953530993051774857085475806497394163873812295496726364855710898936021813121527426037798214988398398633414126123410786113401761808070319418122906941507970761354576774477313681523597551468634079663785030658954465954903592850862254578384174519822784394241918899449308553066682131670027590932574513682291262310538839195924012977325778858867518672614901164859743582317746734862922425046518916385489660159668919682574762559044089148556627227320353332601867851741056847003184051494684690401953158339991613641790833634270942858314810866364851862505184809098661780663740539930386533988222420331988096428138508091562033233465744060711449001291402809220643210133786245701079004218887623931740223288235119000215424751816131639602481651303613113554845652017645533007239416014176318499158168307044786417534939848324807926565083173855299938846417762098415443175607038209726157326291181152729202093161209710768986076732321348185145437151822523223818685053922143993633560736676243623837271368587375207741253829851642576837048918298514130613360660510826838607522133481854275486895763975162496973323445868945591258406110124999360399054835787422118082987846354658695033696504066991541615623792566497369735418985304616430883389000270890598669905025476589566532355034632625942707286355967733283594487147059258024877277975781531982878167469609204509253841365041948705140910745378262745931892034046459952052111572867814167465700698976862938099373333744218923966440714892845646256167821404509205201535683731559947546562361372579234876790740001117971626311194260241829611545968325295018217532509938370613278021592896880645627810671081992492633585446268901347605260129846102982970656928337240605071177639351524110170080559937790052009011636619293302168867215475170598009890699124963086629261132137745953011240157553858469714055834931625933121569704661421517958987519152750130643025440164714808482220869989253437423818845875316140231954846731210651442060509247498210687929085543470976609214773708824863937596789799217759278290373415777157592693245282032387817918057069878055162247595311571337446492355507813219330521785436054149464312540241467684018066911168755734623457027381060151810963500962923826402776433787115199122276628971429898174898344794492235718032159156301107071921661758775620804340374010505201124398522509410414100391022986052821243686764060625923076509521865904950133933116175458758791552837745975260039594130214723444563692656086985567305999490725671531581246693023008384191188439614699769221342030427858181728609755264924674233256640962449077131341617654542738917641952276453410184255336428151149840158926023734199580781236283164513558002388749106294125199121773724077146181301755430483905140259202406832837408168324839039693682744334123015417542952261577518335200671219015706083118883951552572743527137030078903638010673449260872927723243585541728251868065276165314904135051804658948863384668725201792129468221826322439779137803468378540403954810101472406392987708515881706684406060935080626100433081536677208198248587340762256582298739044118087164084382154818412682802976231720048509239381560107138997545439905144031434605007872736304046128858147947732186870446967814618248341114368007413840465072319857844962364152650129956273647724214379763305757280444291256096371353669109091362990950035469851905567041663901688016630049757335104800972340090798335270016465583527809126418095277660442298140610039830182440361807358048053008423939417951830480026899878596969879333742077885732431416345256959806654987403341793634923225754647130147751086868101655047840323225250517085537219743012548122168654224016387773239777623705020121016267297634870692054126004059514662452854187443360968495944833708857759373255930498496745518806434764768040378718327392386826412419799461482660455605292968909470758837172142870033139150263652180226581441554913651425824087326114135449954281511413868094243117519383424456802599260478833982061185976176915684200597202012313510271256158078546425050117387426371752308998711226434397068450152027162440174335475586255009317494027130034502898717326888992054124392278987269402974840806287853793326064328960507535647128798696702921361251977635792891434552782261363786709571239976674401130376289095324881792369710459662922699005131895104702188515574890894806769615459875215023113590876766068551164260393418296447448882679056944207475699124762131998564317016576842762538590785985597689422902748565829283886397494805001689809340105681080015130556528761549631196568345537136525730653862658930408946268827621278801997557504674102175479618281538327659326951154408325443611415961674148768014724125742592023979223517299994005852429983614545340424432324333795648427866132385016504961472208544809684042077803454529458917149561652376647516495812873699212145058218552622692758227159641470567303237549389233522906998083440885663974510173692324822172326548613191799753335642145301890132890415086973752614960990765659768722649403808223517509018211546709853162217630178176683602996992083535771813990314608831317565668636721915835684667424144562060908579588982280155811954179249291806812467441569556595767263396620647120896869824179806902507448087994110532331452384380109839336004389683415323276332657909509074798443197399670330576198412389811350357099458537814638100715218142934328947667077793269094936254494818956592278207801524391252079346113620346637178912999441793245227873324535611231572816842644095698031757149366995645186834696624560939884137032349753736885786453498739552839323783632266170574279649126606129922566515966960946142905182589104735235570628083073533540576242898126283223516020769399314186969713751961031647611910084628741413288070010922198651612472410270834959531480712111529926694761789422284336592022733216622003918326787661291660004280068633167359194527545930563950301544125853060550209381296041803608420901155970566366271550948647164971096683147819187083715986727980397013171718600754348561500001815512058632467274986742748061584755082969073461095487543863468766382709419926396162060118417519779899351863715281793161208572727170800818174708338987737283741431604799192625500495706082997001553760393826837023395410591625780132199077764049833189856609942035416292868333279732811704642605801143800240621945074571621611124301953090314653105170646402898092308602885750973972291274650012390855750314441374235459743622948473735830069350221561199958838756317805989924272858730500994752459557094022842840515618360489708381296591978719941372653833785025006735043459745264316169948969958027076131607165813529125444582351098338193138673970227950546178079016800030368178663125501280350876154609260493568135090517704921547393104809965058378335732327179041656394328246947684235450713253233776194169813184079152761717710890559862312190482922643677960303197670965074818084659389921227084910421716650020671898997007898127497593501469899729769134910856969576117106039594131905206262946140316699661380376166581591700173253766865753651728525503933940954003682997041687460892868468613470970621819952381934465598336964119041096065370851399418611810821738098750722171937553873618409345788186277993129858673516283807802595863774703596472946847641237959543704554188239327968737866195337723013110558336906255027216950733549889114586618793039619166191666382843917754856232931380058991391868620106720134751559521304627868488476298388773384980763663377660800424023117953986171071555275881537409765399576189690517957761277828605776597564680432995266379917548195653820432817698285665837723167672445066346502157683880003648514470977805554043024543655185541284270006526780044115552979191766733555051682168209155689741494350868720019205648409883058561115594166103721730389001612485388867112193639370255426661164257316478154117617969587501250692613477481325527744401689944835748730051819959399548798252415648616820657471510840973900842199351071015806975294570234655681158245480943887027842670759126992319963135232613574275952876232336214737780909212359083683387580870264537008450074394148158800292048345168414218357520280054600618437196501796894196995504681335893958928325533938564210373207276835385180000954432297521528136037693746040172993397342879971861087179358278638665122982499874807000115134126106215359244669234741345664770998107009991846220729041316175370470250903497000566908944283054390606622158909478938815154333475864153614869203891273167647574215516452916372394712298521343860899097750417977587237662803499968663278840400453417541927260352420721598045605270998646266244044956437780385175164412406550815745396260414120314316323085540565255420115751558036643645849467516943805677911211545354071863886338232696982729990982745927799007925658479879797753202381537391557819315952349393459629991643088338274659810263888216837148564653382878695703229540312454798112385170914508381720259483812050971500606968607545041096885510532192145439473598998545928106197943484830321228421554480926045801111281526511645269942049827573040881901471618046383225115228240602322990903948186090493377924807522904640284697820940925002497539012958435919072817477121032468374304450200573650873767101577043191608355910397193676673161163479543431564157196244536400990002117026774930930054346918374660466763684566193990555818409302731005017393416830168416959552902520329863081384068175196019607661949248664184191453945158529342127484032449084273272053883318285327930376684453402029111938377631031605819237200888012521968283573960049813752499975804149812030434380563953264507145583586574880161581784295057618627732195154641472712458264108165749216422236697592982719691445275313370282243716240410164471797072224817157200949121014769994055480940156813307141441889749305953733059299930621769609059284573763487722545121236960198798535331391957243142753377544583936653983821219493080495903830138039588130557508152701997090702697540038147135964781084357162886544613414912657088048501574432918175863297852259865373710827044209570082919981666839671264703833536018521779667695092852944418726204733644898638987090620094325610092473248452405800716050802792693611850123636991564441768455583657907544733626696400164533547884344378305627589137471525667794303429578718809360926600538412111081144749012369360753580218455421357691485448090426225712633558924091714483986784774653295377847688709663846710504622335209750539990376639703236071793921982664737816836371472277008387586413153702686776595610989981139286267352238739269823790148074605871798629067529405029373586683348681893730129803579135683402589819652603619530143364291339421092287986817733289975511238700608740876793957844017774325412513133114246357156739450515321177839979943947069361026260569966305191272621590522238312939797877548566504864579713891090076866692843019385587203224909014834980202256549341474656974075531570877157291397934778564335053146391411480711080126616585868415279254588175978698198334657896877285803659819452135572011007167103641003255970608747819803596632746171985141163315793500780431738893463366665513559626999699345603411196800101505438707479254178745119118729010536408606290845290465475216310872541968197773152208988195450669434672454391177914429365864698425176912232900278055579554743729645321399026690620862282116501021808450619502418321535316089318519085829334115123589211894800805456152553273607072285996338157092986261535502935633192413895503531071559285024827902791641205731918154923081004283690813994656309520598101491804341616953564982459417379357429602981402423569839203928540300893855131789256525730586932797187530941378763494859812893434180322291539473899823209175918931884190229617522634680302270025045495818787000548242402111862851277238246516372081046686329215337323452194924110562620492833307539593992428738405300940327638235853528142664042118017376566481522931702342590468362202836180138575676929499527093215416528018750278099875658399287991502765201316305012930510298307681644035707294371943961930584634155914932789875151949490504005031342546970136879236725586526577815145570749363488195237911336070351403676313429965259046952634616111642107433733075323256048323556355180112026462483461216403756403970934061785530003524294385778152736636927084136104066955223565128454967761584614956089658927062880644316014592832979378881383689150087072722692069827295731560818941008418095973299851700012050840821275563369999600501686400813753268995188917997214369339225121365833567450721565797702642576804480190486936157591779728846450650858063892689941225376166719635089714212295386980828512212381367897214077293046981113112393840696693924104064639687762149738696515632092449039255555674356154737675585538065689472994651670961453635718610273251485031202642949865212152750988537054999606931283089061092955676562617215036036595207788909767892644641114551155944264660108801063472130680999113796666840553242974702896970226898004602741596362660358644625038566979309084634733692514445831877915565538850264582096081657459593079461389026146644234798902111633805587253780617911737687347394452336396606230692308316737678915932443579789525481037811831430597480668603578915445205705229507593389881751220179547478216972802955158914176155896357742944192813985160055102095150817900782326970343895310264490246694305061849513737544892698530741709241979324086582883800473726367964379949046875139765421277851974586528448159504903464204284704864605086819811670032647404442615156524932411920234168821396894242307576280870074635129517288262037421858877468958024735164386290166704676433283433518130696102276173975839053165667812644480737680400928292950818344313150528004657953001561309289002708216932059801783273936838340025255877682391858850893353491390298213058011242214590881380525082939582558281314414977883254306561594808562210537819033450851790124667830555987243508624242212239723779769035194055675389562389914265073702781063684168539005787575297205792376635173652798966088615426739786975130210540056746214742111925976991781369155740612642567019675383841595119188065360890210852288913554469530486268081256917934409379466895069870757290758482634029821417682826045733357499261794325091409999537868665766639066080580105723606123071271783145182443165109320509479440393576148875928005367366233141104625840029644181518417148060747551353927881736209319567728661799088025991243773439184861122724266503098416213484701070270648063892556543034854754690586694998119842393830886171193856088961949645398140213037945272414605276642205123656011457860810811206466883692704138632036175515831008249732600464333300500634694746778249537055858533941812645982517546454362595575707075291637589402494340288657017730337815495105806375064270252878570582989223321849823856750449290012692071317237184980110791862008225666743122823338342884397947757199586074356613494208944400195964666912088782440096473605158887228187275723380899617644587752706353461509090981892365066313944980355782349592027695339883646788102990028354105911823540360187935569090334555653954946581433375453983710662842300847341651077893707794330571736195095055918844454842116167163712012479058592648423783968372462163083883606212480179306958269058317929412827700580034740755230262339689787539785488257862551869928475086615828528771737023783075223141280397220895975210456858605679373969667576279544010179943168281204520646604708002693412337379667706896561489451572478751848262568823866355791322260504101886471041008277365922116905762054500124463232039125729098201062100882358014261959427222616480440442079648947618371279648114997474519954769341556001282198522969113781383274047762733619424890159689179081627981924967737983474478059330948117650256708244398190833330710442307988058792409642189448724355717494209723875425800994822945095984641805867319430588020289507321007748624631426383978836817669029296861151062725333352930872522815493009321324107718073302917476806460943359028179680800386386946115716739858648146863047139546208015112387406741491399677949594357836483569631437059467055603130261726484901474821670946783733107624705620330781387762493028053605495434870085777766992583816716408190224904284336431809165684677534449457389268886887316442479404462790399867482981554463680665227459267381212366741425320343237759508291253878017742626218442742594740033607799044011553410720178521215202415331083985811388090318037306498518682016293449034816598792339238048751224840581392234271719760866909601772455297560577221391230384126599511491841625422427664770884568467737069868610658793711241730509474479853513944819983608879781421774343387929241990902400543260261521276573762328889088116022357215392805119516083657476118823968895658396779069037195405904858773740244890343382805775258319183679184681563908980236958553311920842285520167153653099068459887460943902643910304688363379861124125477585986341284629372555276554555671342865956576655335579213194728125520696890515250114384351972853994813129240790174576648041128630547731543961022272160062819174750634205117221557482600338471876536245151137569081939009596644327559644442002982103589265500406687554818117310338969452470498514509499961244358525484881414719990161773715651078315986672814126481149012110467091181851718079850190050068509421674787691362736635279475400581487451087998102053413249717746686194477577900584069698439784892235611924619367689637372196871516950045353254970316524915628616491148734052929527357806554858167459474389251907886843667485355957719101573110818093609185080972146978029298229834366074660038730444158583713743857799556489061539761149571644336985454530803085107409708448199884374633059589721415012061431942120701510010799902224651726610122532927212791827570211370469113757757078508471287136946241955448357885696198211532566321322937518409701833171515508293566629765896563311072843755250601904567548250619435760842709558697731459667244730117537069345679248550270897019052507931012771371943662977344207458808519125823171686059532472870874981403327949517072362202001567125396999697445064378472845968750583142241833317682333184892251509115168048532323652108201038923832774756747042364495757296433582428763018365894019783225563643607528201723141076325562613571078531748493893065836911656149819117345829861078182995859668049593051915902251414244635747296995399973124263172199585379824340558493055754266896682703920725173444846044006420239198622175400335012126515600271333427044381464790896452231989762482648208323100471971710214788766254849997548453887661685508321969523925201260756548900431018195479142010539530246497225254430902006287243337125833923333740432230375987547649770014839594524061282770982614372275983188539093627476752558222724571189321732113648109311119682285152574237513617196862600427406307365054865071724859539068928272412797181673485771972095717309916533682526597496444314112696554255462415506451175412669161529213714446184758786873484144061297691616900672179801463131597897406192307341676168787853071069667581231603926471747910275548571874907107517278954766658517297696915266893865777151446936517764113335285202595358771867006205479089450609381449989450629375931885650913964954411959286861152493709652777076617167642209921630875841889085501014417328895244051923979307449530253237564885844706929406706971713532739536028746646825884988089590714126143272960659301004143564981605040106757489545474487227353033527882448943680503939510977204136732615684921654862367904939278793005886021033381080495664314765874943948622863802537922406336388928939933426647816830128893685714772134007739991258045797576495574105266141534179426308826933259302913936771750790165982190760488164839116458229284679801603926544383906373321190169148831255394246132315690093612464252842433312029677484196658442843001724465673719775315900925203868725875021431876009989783684684462418433981933530347718752934730105809093096766935884023054544344713208836174372693652532917496052218873039815986196643009070356802130843167109627833362923467054692208631997112396639782872961329113212275475919742955455959693291655897881581892712785947896879763833575301574600841619931444121947713750173681342669675142950962289154270701695758157797524811985922971594495008396124023007393407459975825575342058503240049428281015716941335146557013183799903104584107933346176339686292868723116807834616156233847563082409804687391254774614102956518952977034209888240230312479609445528615007861453578694106589409104007566008174214259710941917575594764818472581460273183830329068640502829515724965045894409367890219910425114032122392700743212916018147867914904639953230973534793116779811315507647104373519701903174353488559037767529005734679848672153499115461356228635645759559366071352518521148656109242428455062168654613770753316094176873092158185569048594900760932417840789528066877823761566101097658478603465864764095231422115504018903861303092445020120163873176549250617991980947208662803034872882030534919984879484401981652936666138944164044204091196750715039603539117811940939097947853027708755598324295133788888228611628767125511392008159017670568485254846531164087583004587511444114346744190861102609283350614868736192297630097408884951403896997590014154212583192343308235178372687087825142898903596837836619574491241820999120567343352067747320108452978706476830497851441267770324706093890667456637403017809027133416052786331259636323253944924931114232039767588099974710563745347631440292764060395211201643756674695334322629746669697315448387261388304293634151318021845317970778822232178415775087405907795722526296505982531312751237389614293137898465300954521692993654038098027287738548379171527626959135549056558829549333684278771444634102007863800404788939765118818292082649354135520628833798969256017838352874446491334847760300564231637306870056516431135797417632779153978208369635470920850291355608261185015678132520886177671216432821317260626211268173574341665921859866824474640582409510466400789070283838240767654324739844239820645749079582581166649860227467270453323276364906972502387533437730026233908700182366128064052687093278763024727527477347570694172720151028765033013325001119329577022744655522081334514984566905452771906560586622414799374631507936465596319411444325344873416577596665262593169032159207426764133590136455188946021243106222194438755139592276706943290711913362713623964867054041560968333019908727504832081015400978147197403743843961289001787420483972324280522983595619943873472748178588419045333179747138779325235899696697937609920335685726284214547516516459499755095183640989238239571540801169355636362115112521663799141680634218966329629013896141813001996744687620069003587527143912881448625023347800162686318105297334606490074308921398143458426211422565980948752785043513733858976287982313982619964382532150076871550441861574297682524887406073613771908813807788528671944375319635804853246962738742177763701426375465502016079283778929289661572669918107612770445128682042642085552938203574408195812583374317865231001011734157027213835812653230554723578728759887693739373399153294481214934318034907832581518279420578906663602415373265821369601377557670947748037028500619291994206493599367670724275158918740222000073217200045660673497281393835236416073904450271763682204549864218543908664178272742936265333633607469202929397473271754338525410345426712807510453823386540277330286834448100267983766205507595958435123653696738763677134515536329032377343111228068459034531777871263044826214011532802899195464250485976233184678619609017744394331582966526889264158779662854902984858493475634914485212210444738568327993012905853811999970453752827193598960132411753817817560136592511458262023121138573676845875770299113223043894625823583495330683545458123997085141969899100879566645859699440904392821813610906124484062813015608590748065624502962517876699957963016858905129819755006133244692463500212628532498190780633102428622714425605722136800858090853778082226816383196330424535399598780145563972850759058703651549850186662466690861311028155632397766580170682569696266532249692199956937447478154326937207268717055874892336076581831126570979581177417338361633151724120391242634898082895026632376357184295559169838550858771725227035014491199155602713529892677076360650786676202549599084336568080366104609187732409786379260933499339165849106072542559347220495654880624683304934480338486897732698165061506522512066053474443366035073456147392682451792806764238393575267360450042477530808899820722243794262649036712496159003051737426593835859356565365946734906069608630788324990972325201406205157375517451475463767087591412691567619491394454730880516002763238734172139695212882903711456562991112540893647003518520573225976458593822626464125241737671061269652314626367650459926045332776800649384496160553814930614993352390507789318209184140347681244339409524839672689377569117227541742124902819495709159863132302407379663545962272790957667943969405893322868964395957896660287518656581830652029879271903950702552699958112863109854839701959761411378191959586357137830937686764912924944640743433828636185384492396046681020462683092080736431509060162201445268968290994159227921550933062213227072080015299144704423757543065334417745684866988032857707797488987247224029811927466979377761768478534195166808536912061738014796368697997935809033377102408217107878138173162955850138426276224121883454186851256174884301690512392095061296028678431795452085582992469105659768754179022863417886721790554636905480508131089047541000846500210982349469279738734956089284333718231096677656214355075556728582522373608170733118970416537479128344023743976679695460069224982483938626381027804992134860709813274754083482664622853252024624314783025581078458309418556001654919756993029631374106984092764098898195325519545241959644030872858157227009042044213591632788488414779306163879034951779791004958390964123605280858003666135746624906503331674855096910176421735439501370681186262670325223737699575575124375736466979691956380183581292661808522353342806092501528699903763117329519638712237680825654979395241360808725745602221709360772360316323467184455431091263419980065217044472436646608673300955323057269214605870996877259180316090259675616768963077802342089698225308744380513762535969345352901021779292826084079208117410394792265332478316948244146406283988334030985810961779753403268284024251190441499572580974763011050249997807045786096925150200128812767846426198498175027334958632748616636352717535809721965449425767034592687300511765482745441989266136587055102145229971722940091703951453923898713597185896285759201359109964646033546209301976505262029496920948833968324537059841182644182446749412822252821792048641644820621339045375100177429108381009303256900547239332661606713608103847916492868352860095490942987375853475576712818977206384074081703478132831583090778335895869734623833974475857212187850461854495268023341475830884993529277301471772777433655181231458798856455093969387443494806916354161175349962500330833558946892643306395726719492561124643120258191195074349798494693236598968350646559666161879422062375348342578440766323660991132823452891153178590638402236693561505795266054892727506310018056597432293442247862110022977567184144316798910453383306674182397517855325071106133852781012911776261851891237794960032238913329074979846251998496765571515432862338333748695398729246445882830695509288020231547181997897515606246409144843020672536821024084342641167933199295684968873878459955390363553156488711607044052603793625740941950758946373242701283583384818366255249238089652012045663410762471164300467517040901175239595427197812606878121548328906972980716973915378777031270605135810624139178430984048352670517536498532875976384871897197834229914606319123863402674297993365709029778290371801059565490813165912028867847870150295320517430489578894031189163724657925316354555369501484275024071967792142970705245256222356866293796213940683741495736520470339525622909881895349934153539559282146204361050358908250578530119991493408047238932745520694829196725928732034186025183199904331012389146577965953554799995291605812017141904045021430334544083831980884193283161256618070897871902694286577548134470046823965075315499362963279754840860600414594138546587920137725561431368900305319590608257342283784419068143260689994865141946880144398719985795712204220888885777072320948952567393926601388297671805165403994365991552945614481523695423412611021355129691717921193403257286624347194262898941863134209273200107795333335667331907140119106906322142654064927978088615671235618968284617546822922676508966240077453219163569927431517724849848615373723390277003657152786061895190865793650726213671588325370931178703860268547808451938511767477346537914175067406865789152930351387944178905881759684915894518512568500752795355141204653286394705865576846717033893974580217686932802629184547972836635999261039181347494371090168480007898520980945983318169651780877207770074531684660235141041511923264998454506983788251909115524097915406895944764273536568058719431892763500811272485070704402186065851645314623397162825753110590791114382594989425971302862713884277399733201175001556102040283489705513542959528102346439146445147764343074613300310856933204422710960511192087882915069216407814536535882412590795496138291340305037491955804582800370888304401382346805745131653261335465197729003077498533048028426494176602805562485267360335354725566984842399881089819218553328085243576545243202924299664557022934443866346984549163518586335410343213530954932305683711852466612974147177949474100091059290411624476004829336646784116913556122014462690564443123990042663872651144515948782730611644721830377064587305729800773322408261270244573747474952379632233291826464712176380488781980867365739232510316151354087541946642989761165637116074726232124128822979012920290828951028421985131823184678661856914140072725443047468748326518343710461359332295956356218101180823378171000401603103832623491731976609251114309619455187361345720223851643694469981401413541229464019764429071561639184034433801388350786499389556815024020799455984090243016149722824739367379079529302171508884168904914514506637230642584591348749650316246811670398718601008015031715086346113719493388839461598784680273380787867317203749493618136431201689990350831809068503130615282668785813651723203790090070812126117915758380906386337056847483948457522772184175557966973932937631324315495096315466548828766066321577016758115491598775462207065246354641540668869286668370130486972130038205940435665387356108098120461591109328762147495613777938049270019923268891563212334317641470564781164993691993457065867587047558758585120666619730678286845216976925627548566700864572878629894719521360518821339879884100365472957842520972704406608307990412188979008896680676527930355089771334399378430141279123022246119799640040488540962406511094825374870802548863612199820167985452051203283759903691276689877228212738777653243013429600038796926462198905110171420648081529535499940346811634082673423334964959358771994650822630933372615227199090186588971341762307895583717206736589246210939833569852782869792015904581166340504378755899807608152972543577988371976447497025217912272818034864940410751007223274526538135918436745941900165054368253617849542579065117637652786924636551201112716540327680229954418063417280192471260290348003911545672200248712683348541455761587120700718920441250660868250013014038562072979715525835411920973529521217922757216919675076462171141945579388613718836157362798423840524943140906448446763197182496262699102741741226667247960208734449069554244451677141146963047376622990557571790928109885729241162636686051728341333417786935734468619943544431251174427404154955956177913483128526920317531353867860385468926501850186260705182965130519774111182899082845551663022167787986133730396219294124179371823480913994764080220034980171478150891310171511473336429505151498326281330112065367747257865112377540851945779941199303813694547980653785546093996152810106449452124147052508841578016949488069385127093233518639308362859221338983386364939023567427530737395457556787570507192212914219466554787531495632131368779775832614377478879811877521342542977666322384444249574314730130617364943981230120671584359130904677967612759180646535326712849841102595980867625510922354650145505067145990494030481106137744610038275143391764138142391627672031167170111876523040828290028472009208714005544805789051834339351009783391038365083500076397046104234689483107662729304315012189390428649596958648509824004893869317606100627963634699066538992482729291707606000331273351001427598567102642180252184499127742258177580559129331412382888894480834518461960766394447540358912349864118895367695159189748941677774405402483518965024127661569806697543838773731146939188338750382092388548578468052294195043965067187705914812469292128959369720620916063283514412253403575965569996342141451775800324933568185867120236477731841224317949746291196174165618211066344803383313297696209749274311292891158470102665841826518164702824118977099482098044917579656748643365884865370270026973412534409461707514901485453065981240935543087952990657640184775698522395121021049961106504866152889409868377710532592083169604812130946887912244744589751444322898104099091432731467700262494524825523351153478447342798524166575687662722066850954337728051412636732929505591279384230806802460738512865238969351172529755870176251045690557918454355992629636039741225448570614377946134195431815107058775171080754272248991022614463009471127252147082958567380680081207012853195993043426758715170353957661736585047442796161142376303211130210480165579458334175273198376738820485335557747189308587771821400981632631623765258082087303132207267523356270071763907412603034478023541152136925381670252210048569965976390587389598705160030962716985965547475779340387449580177392208679782352813281021550622880877577393879091817835310972862235088288606527302246589150913559738643207984058004665684270984344828523538609608106574769984499739037890240052211603488431674176484519889585023202726155144411021125930051341879549455132887923456220354480348858772664589529902687852734742109117544508883492860823777545591822344602212904151844403656068134680774829348640771489693035873163617891953134581772334532855502660638391447063565319253383982388077821222265168148460085759147054338642634017056984444568163801648842905182426522123467210521701200940685911812474683594686005630084411448619916685188475076707089672721027307231278241140283387416713486877850462026629746937794401833032405099191768080850870478161774177286115532889941811325955813636661540474542970948694988308111314335273893034860200426731298524371185942799352691641443656438876413308785053799981331678337081836875723005513839682456476969211094764758825768174368632067778162396048460354600726265731732030229905263510280692092444498294696574672636477914668200388711058446038305470117246057291754992650552207815360636782900216945196518052529680802007942606168397838973933544090410733687163140756907910388554587759243934554152075995906301719241421890081880765246170480834752513054287693754085202758847737678841822392640218199019235066197937267861687343310795839861718509428640782199626598460219325711515294770595946802468764550625125244778325436642516135843327064646866931887066192308980005569124590533713744699741477193493976157780798444801080262479572216010428977877618276494346439935795867018805730916647490250105289218649687494400117259578869531989334512513773332663384509897676648903349195165646809225361658735668929000568697989317029700277241741331763070698286250910299057200586879492415107589247056790554615089703794377264883470111301638926712643746908153955709146086722437865575777542142692697733899631238411968304748550419656991914152799224271322130468174742925463899532307718462513216341303087548223440602611482459142816783318277089024292421228113021991828138560869672622231520478029464115762731577508058441156020427057076186715072142094673121130092856945873704352848347754979768284354254939983845507540604690743369764972734079919736122193334797866434575064297437561095972091480817692232515277361621389568948769565896052575332768596861964534769897301027077887211331474126061691083692721353272406096746177701196434879233419260825397923299017366751195805902819416369404466275660331623432941997899163998791821860807551405411415617409726663111344230327862621772710214667201101478574261667034486366952214712022756178135111161073816253979831175874809297276101938201899060773325458685639514292046519724680146505332325409832054505133233996262774310114973894923043637527970838140813139459110955961757450796407315567629346501822913809754980814624230275565989030205174424537978684488625441822218441861623752794196944425423064017850255657040614634993871271599676780317901432488205427481131186431876659697717239942265946233816609237096021590201771532621722757746324579091489370752263165450397645703380531623010642324111806409732839200575593250414499882401829315727903179222982610274923024782825505780103797613375418870084743466040411847983775405638793172948905208127555795876783520282084399599046002742767031891483323640525476245986599532825167254453881129624775119067399527865926487350131182714045222015093076042033379873789603971791697245237264053366345035361539499080805650697371915028041464110356413974195086474571091551422571031720718861124874467176177107088169484311074732177201530728524986017106042119732191261504842385308577636316348410781783762060751736722766283376691557536377640224506125642772543049523710102338162730178243430197285653358084024512272865489409339052469464771793450320634427862075239097046278791260226972490402617031130281631496965039159549963497540588145066887832307144748732712729679408793761623213247757647214968288923511388710679793232883523847139180704127112252677719170723875347048784772959265695367443844851773887124396487954917424740970418554998113431105700796624906785409175196366910735461145400188782933880510845651782630899822772619476436091803308769888665512912165749558312131653473798809717436006215046433303293663943734902028870173464410500057620604736723659770759178695767486704721791950131555280713518719814786610575745145831885477965535428984544621520333730497244379123241969156770138727915511881302842885875050560059106330065056999580607258324978565970968564603371198417483903758288763095787703418108064673594995263755570903665009143192746937506576319395708997960440536836276395744916224496559824054353748356554264549082223034169706503399936816243194712937160997710330172189227268233119384781008675252019830229047586557961151263015314868521754429808000345687412753741874181328995305487605043341133062779357657273994330723999083927898317887859454618410354215407453732778398752206170094984475627381578470371877546957380187008544567117308293093328411488551777288374729457636602715127194973216726607335962108773901765450693398880189182690455631193027890357881516347541093104909963215976560176737996062305379836224076585524559309554836541510637730247789315897168573968195654567975649797793676923010137867206699565762345302790952629173784984027640722303458719331352307254319871105457381409830777986694562559973217112859761347727371081065272105523399545204123141687468510772837246742513577305014931034122164077762842327248636119194401631365907264456033840140597223986682738367250239383047704131599360051158438232013873135476769544833639645741976605060351991005440342474802819227782385324512193306436807874610275900082074471044334074153322597374451031402684215234924591968514035340934863342978633566062999039760809740950971306305090220800720324205173116498893946312324347189220928030131691260208282100677967855067972314335371195566925797698764612290199760156109720388708161733533709475075112190322194703199431065427764440902113774906905791661171195276525035857900279260512412537319586138497420484106027116131112908602027828945117699081809281777468812184101538371618422531297500378420951055235287996630122701714077771406855330400285835668889297337274607015983287205979069798706522916493059971745469898381724241858786497084327792327787110099563363264590660364044903080790055136907505534126664866934050773369486460454579438860398399597022447515958380162476499799301126328269803394666093931918644704261779126096488588198640294761031896026549440720760234040384925849172288457300911292448539623796168722557625537759591969202490110226498532672774842791225047406233026617868049183485840967594621789384249809038684120883811049461088860818308128369767516211241444750678620984988464311811671175697155718219753670462005282872519651957905052253707023625346578755260461454391232639896221575476246214999981101242948813354026123628496463298980996180473030037957396603557488181884980981900059115498991345945812853291847323206387926568921194106515609494142236257246121445886056584079532590712440781880728503431202621588557245910947480602462700730775061392821035749280344196799234482261734953455806791258020830869792565893275564540157970099723224916382269591899297727203200149477128826128252327864482951064446148488303153180444849107821577076692749787326550475829947787901930103226938879906056824942959093543829606434948840770860446570498636850313455963540116047514540488706403076082010545888023301308275935702198949278761726140206877505041646374930486606434515254158878900872180564799983781013517824942799489982455270996774443262047471189700016515608630523294000390086221347277556067003008482618579243021855038534904248563473012475499779583162021667110811183367613313126635695503249790420046209994984882522444918429875461646617808425616626526478762014592676005798938114844377158684869646119563623171671989228811221587133000773857968298872014421695386476591266527385993319359042825493177184516545320023515881919421906503942333326486642007435150005995451358711000581554339941468224727731730348314835758462486096224954366070080298045674267597062399964286529799513584891570885734495133937581805703923462289815327906620272687247124877052759245097807082830859608587021634967326231592040717766544983823682134727842580562489491410331726532803570456906452571560398925962857527281198920420907111348813501598838555990258198924448381550780553400910022074853426850985936498752697357023685154770592545294819823952726500650860412338764358125543327808439122120847916186542855073450124987694135384535787970785972667411746131105536970800306547963765915101238912145896482493671460846036653136873109032840161204084455622181851932429219408782462624344731133203110039317124509990553853472819613948427007159356128995338121284416668867882261333369746654498091472407078142495990948120833190807223571155865259588849357528569681379869612370154104332404096927705173214302534934689254016280205863055659868700755824810902997728517718570704547999641602434310214987186489406554514282458760919534936754152633683524635545603660158521207753085360647917314915997279740661149757300732779273287388067773280585072857595884369880163781383676053113374859084356133007273181773318519300382062123199064398974638754529003638636893159107182528175454424064561773316374901327621119059609775368667092554500662175439632560152932266039505023512520671347945691005817889040720690553407070472340798799818970083277345068699043048077394060763668286840491725263319066490534028741099152573563447527919954803984903408904733376176799117861593162488579661173191799394667418477872035873275012899086679119178332690771691511221795662510090621376350465480512806464301902505237489916102548899842277318111644933606219156230786943337803145566601505597591782300407540132593806673174394627004366157388943675677677585916830757933634643709046859600305619722305963187088215788130032823292196512321742834137021394705818375133340239365711843309148686704595457419094798517152467538175375836219984067435252993422372470071157298966541025316176669443373822635229108180185403162091726326142374079915397880531573767275981402536754256681495806237965842640520281623348060174443587039244189509156078970812534537268169255185327835084488555890261480728703724963127425143457254054620864935567999147497925045921874739822272292904773671631001436551698705328321975351211814752178739558288758656954859990411145912105859889770980494653934516024234315027330498227433412227867398525798475364811629769136191139805172025572716713367706915998648908587242108654234785644944246772892719635141504407679941948940497682796072152746337823773228298468905261092363070272719347565736303981317365890001656069325410318067377530192834596795406798196295912163512525331500875293902618088931640838556177645215348484729153416267883866820756696657969167879983272757008519184967616879748026470971501098147474041588540452850448728938430394307288736792454810075123450038992058507336472410875384004938945524648253958826335654173262562128764579463647498841521546995647097280478964170795102875652591955198314658499347294939721107433086535821542398785881591909103864398561654583701690865701213249449421580291359847933571599120460690071912948183957754200375635252852616031840940971255614910385424267883512853992690203732472507599395689283487255982787999642796208354557078538479421835453517011593271585870292605158733576055395484120174466213383358027163857485881501385956033555769456366963258017452829519310771312259499787397385816407975140008781938689618764441443489672436744437108880516334654939338480515857470729323453772305658775628194633923400589747372796326528339939734307819717541246350296864438682566513020737135874765682752725644408055385123594585282928904891202046860213329108404637425215334977799908978807365388490964201712712306771259697749742769277109311638880710079233761470074638138739113939957909572901148457255098351269834904657895276076926637978004543131944622375200768763895984293397665507335828674960620753573998684385540728143426252383497754073120675446279889849469449358159812502781371490172984512800309106585886825076833879579856655514639578748758700596013205783491610095681367161190040307579893047125359915049853223617207200715519950308094247254484201112340105169226911308518817911367793537436883087238827593074681020117770855139946187096699284049468638026294036609392834720125353241195913924272888296606941980070818797300922448553227806055779846408820233754749644356330793494719368491645075153974303829839760899407717329055040207531167605484573637625283351346227867869157093188441313673604176753438496125059274019255168478525078310082589063408434553782546851854528635564894424621152514163209119857627996393611798116621299271977432803887693429763154343666622651317932495955892302751330162433138071505720149632218958477470182496706000122853349520381163578758899152804852061391292500860569694585495710598131678003102268236084105149363705692659343147005419075460130892963792402583974842888343248608292318692120132298298943347575026842128347845695228705361227189291171585891238100074029409065933501634912388451977994578474134593008856898736608175344240558393745392619186794725276110002870994110437742869032999960487084319204432683423551741142109737022995050582771855601750371494901885759360472953128318760906810154038585440778986549572206589555951059307910449638608370003803102838085595830734420796630735847105014068899195348561948447412086280035619041920064131393985763704121839981759588027080488096090791362049160568059289859868394087669643499853435742512664048208149898686392461438561299612162011121864965709528991863416381501626493088958200363831266871450443536643021520412946173739660612626703791404340407743075293612423360377215419548195602989042403880770661950514991366826760647905152506533552718200295377691675743379274662810298277770600534531587153563410226542822578713527033159968101069357063196886555847309095848509295446003897750967574360457769123836506272687838551129447098520248079160742836475673409430265380952177354332916979544081953327429077272094120260870979563894497090312593449351560107503437296427940635071130705580802234248820263085020944383665888001607530065216056751998277195175065656549666878644719865618871521791788934753228185812989891862657479447376510912331024144502792937977569773609608058144069625052856280313698321269166795142187132136398084763095944778578118728018186072124579034085920929319538183365479463783553063120511529531389609626351239295257317093613177486734601176777911757782365385044793711420670088540931186590641824185076825783731870177590967722123202484222838981664837531875879604209528152605547672767645760644706450533196915998068954285364208318537414731842958081832507956956706287760675772164893570581983205135674212674417578342779214479067603178184280745980731896200140517828087937788021655112223942328625109717596325306783358762211949654840920191051730588431533842455208951345536873628822518493752467417679009343166867850809868000874342081109483930121767768948947573334479155050825938650460873484471000468063100848488271114334010798303702560056524472811336367262725269241429779377725545000530936291981261997962093586355516542014104648429072935417782604144456965291373544539107343395137514642390654380458314890689846201808200489938713681699788620181343341667527459065918853670675016878157252989633888438205045044612479825415967395403733769578693425289338333595203203536837381685385949195862602278300975330096595808922194382729220881446211330256733344099768566837231936132416137254375752982364579539436117545339612439984004101636935016478753182872737444709008926381029272311459295156648753078183665006652144052857736678198141510934018552983000968390434376196861725006468672942570550651293335207376733252132945331995490696954095249474938957351526072581100816425105096942035864280345718842970878534819561307249943939483729764737742967544893860780259521630815431623744833619768113363525793034745583028479951841503041239513120314191107252343833322585505756827120567386854634020843560488317715749310408187991213690389965007399232987806899566491178355813145325666221457703804111054619013863152199970634646792919366204784940176937123961031137134423352341467286517869671289008173036573415192436364770071666793640742264828555063580990525170853193665296133665318759436513172622821235657224867465870799796846108340248539047664872576850354984872211450243224087994250165006775474037799742570168247143461412658838927971016312231315124810466410305735308376315362391710823381358986475831101498383898689584607285292109408780133066205973191399128000044202107553552709452636182652503663827962804100676283744082904200370238354853530200663623106797043141449928163226630156180434501257779994044129680998374015135506127290793693803495760808144182576780953237331561528192868267318131623350263683715345369973547217995944393847573301034348642559053277324030152998848385258320559460875485716995884229714838106273943618199027656355868638307384352648994042756484212173049100762475777246115822608630657387544274064660304743041571628623892836996966240095620233630601334637634185030272375203457250535795577081173559028738333187606492308650124220280785566243390309419934257368405758005125050364078609113445738608551211637556738365001851891815497820477928127172866899658037526342315369428561674259172719421391425275394543862652478428550962161386607860967291280369581503040880529227361059473562782191919198224747588461485106989751090576390087875195209534803216713084613687606327469682354874116333012841697374668770017293746773348124397590158591374488879577366512181667536183785729348766396989658266623330834165590798331154754025474147641389085956577540342897080805847084249197435090837741870881529964180099901968596198830548973931868074300902036234964287681952237838714163624211163930767432077688479111347315284927604697796965469418239018214940387316978910110477128000197246089838081329057128582727037335658831888310699095576386316250840419593420798686198132670071656031691678512071513769422766832313369843319526661216370694295709317587325698761057138327462339874822030189562461429231098409820330021499695093247659180224029032548181019613188550374363700917892223139425183959034855919965800608285834343444608517526856838015553025289288902592274715249356903901987197409481127765497374891918232799889211629552287560082573333000038038816690466544390721399190804770594028587167317929424240798043718160728620786204463915078054358079110018070291316234728554746485021442498885774454273519079900148912206715302477843190285673461499349056279569265833158224250059870080894206858876720591873291866770637050434332011790300570026742747782781511690826421095056658240339870143235186949855995843855807765629225071658922602819417758012554196863289309670023009284718438405481084133866111964736399831401590967096584026253111931339287618953321849779963450917521864834512633333279251512446887003912133917040548302449849039050017772171175595479116172856169955289112491277493987187417961644442176527146329518698190680249677718241313310193324544845354913492943310299895741200880982984838383513860292121202719318148137437608534537896808789680221609756252886905906818146382563024653912249732392046522358696171683289462997783875695209152715861564877466242621027844267418362634996379506283462998860643635467692990382350849197737533289876982096384583874004044846257787582079716134038574470712427424762620589527555756742296460922525915143286710220089758902859305063097115538868480458372271306748064796194399381396489012154830494368164662915572153766016418581375055818137695215477652101743770927356789281919267422149573715903207489855531391258153180807941654522084289902528620194867803895014629440897110202249652079003893572618526635353558511366602176206348351577118304053016320994983985626393155430658663725362367412018154843132716371820195785964864922592787367301130415420553519783249096164805177768901808580169286428713886295590780100020690621503648310386392808110772789587292537883738013762962065995451500074555815886507067029267562870304731996118916908568292402983519895512884090642121212352529177842395971306630672036528587049767041701794212185124209010517539883183201676639793291982050275128009885334926706207836681272126896241154730972916742087381411976393466668736039098814935377041760835903255969488270543756373911913885282474644617989512259506544587221168289332253249967895096835358056188158988574621422100308062683388201284463782568331701513119713519864238877680820649676499845535933048859378972795527394378498341428392688013447106345174709121229689979337768739078842611622712127155120743708531716208691794307280487525106672576585435696372830251529089687360504572649891918213591753962969958168359416260827261330162754770107723098923565522227588013896881279576060874268638360974309564026235603301623331728748180350117811773590750067455417060060086112851294977744831351867899537777318908175665110852511017693113479444486779090147184567968849999243880527776032137388774312649991519081562031221897521311226842586031303141469078775818392306443404080708368062389021141205876647137376690830861979115722099439771258304739930982810547879574472635607887284570782419069849711897136032060903497400249470022664189875102540629747284686514065974054415748965959296304277368823657062130296015421128192209341056196393060071102629700465729957595227244526888742105580653755827504792479800124176152623463307222493511651077379081048067536683692648929633676506162041923945719779762295763906122805078316139126437716770902698483358075028414565137480930869512614608670865070570735346236904954413678856496145279832050361050887059334808085964756978926156981625633978140034736041244861626149118440159217806446356092630878957943843116897887234278083825724768773772572033276870811311175683616426489196311044772429132257551232936855517590138456935803077829336802144223172071712477692095372210549805470248824996889908757433249101749969772485054368616511231002046446458727408170414615286354810090614242531077551604673857492121192704242405054714679177665852045561286672713095373969671538250517674819449634169967329512222286798554851102047423208427624551695410815933553426447348755540661430642809726789767168255435188244919805338231392509360946888607654155133273149806214471320157670969235893817915837744685503907091341140165713657547405466562859649661679745060734289327312299504815986297123733979376002741478464966714483466326687029469957866420424650530978563782295284971775748097738579906804109294035244491932567871928633622137254307463337269422889466015360806074368216975151185300893801782544264500695732508422851169061853688646631567853321007292187207296954953166286264849398181766061623506992722750450185627090979894632359638657290010689384866605076038858735174352106782819479146249829241532078231116697904322416126065038344893121703058276039964146299948915645676707598549526399706247076284223737316015915390830803609714945886016190032934981524343715911302988667914622643359840393235128358281793588800872762915177556143946959923495525688559239361561324835907401831738455318962298936578450846930606650826672408122244555616301534618369937579353163021308976221668579825703806293886589789837408282178704992925115735978199766150902809907562951204396445954806817122258234650644615253042063394594846551065169227184974179252032930626945556429873254658082246197605456209505152115626100663329704665533580361873278100467746393229735112340420482205485797235430321210626919325624523137712063690244467914092639080830763004924113734467888883908324858498737657254749634167935450596757027439625672335587092210974895775560684254177201736869724621366773264687445889912951925515222021458285900990767976861369593370689346192559894896662644022791325673101103864018872579813083570003145534743125022614146706394093051907783446895605073974947326942576317123154311694464631208216607733831756939545372414403050936777930311608721495942199054438644000520034325310724848110448858344015156456402075677065362067899800085833274632269686948879426528514912260348286868672176434779627648301343091372048133842867933145296275278562309305352826284536820094374523167110743471578311962329475882773771835554350848263665399671086839876924435636749343102743152557782256067403174016567880961293377593289397765943050335643265159597833502655288257493055897102815850484750396000399274403348140380691976589647670177416596080099163918875131440072098280890557709924212402326183713784268708839560199606449786893167705003267299179298645184827264709158958576072647241147867902543737093678544972647871125644493094735159240969905924382981189423364608643597654140497112682314785253914187737100368515601496162389283312790256034141115599055376002084333123317572013952510101799770448618443149727497655173852831498682725471589768026672228178677853713485140006457537070087680799113883249543186101247603245412399391682370817604490300279039753103499529283769285830909671568754342031350109520171543435459964872655463614244465826078418885644454170848319906002478761158810321537219079012949436173084029935149322616130888927332062403603781928600002669114476955046116473096276478370509287657003642469123253976308783004298671362748935153622984793109159795799861318657062653363233762852641133839602821236142250419859334020434506607493695354011462444652723134492071714847273348830921180042855247645308820046420809171973434583580394473174799351200662299380468917927590341566487572553214305224508188564136550491748574643394756952322619314431090505917513761687779292414536313809829501934517629082254035808332580953625378978736382124231442000319818512316120845596613471801249682057734531681411650153020432659395563510985854845738795917317462179741693125784228729370837742858112360225495056253489677493600760107508918736565413872340941362101528964444978817667073646201898617033965513101177260386950337904509805434587900648718529089402328908480240833631675716976710403399340199213201116411000286650978405821281725662053320214979348905166397120435773385356640161803121630568837514049407614434283999708959280102028202446994981946010530305828320965493907866922981824367264157434591395850345650512981832135090766546253083361347383253881270898957481905550312514237631832796503702421356569390430890368217666142180115142663938133652752030645492829580496969525670702807778961856940301530362880499363999579492265641472055764379344210886075895306370741181686817809771429138468913934800470038654774837824320914349646144028494880711704662168331148642591011181158087289378120688036491109513811099885466586963505464103030790118863757728110020555538277723900293715311532742267545683433415799083709065878135169559518280078388809647331533545113644268959349012471790961541312691766411900610909709149917484192041962209785941365811720312133904890342812815819178271175004367359789746093728535073811541807850714311405248921325906435308093244446354110106000382191881267997144784262879871237579982086907025163852985097122528786133763740590326363682126014854047031191899126971064324091245080847195053254413101057406285427599490320908732389989538022643021501463925070351633961352638707618627291985057156165335900109010958797587466681531929062291166702499129720833316064829277449167050488264302762078555649147821757034951028737929303611339694998749460665611821814632522642746097895234732851732195367235544667345679764094795984395905386618954568204000376533162817431815341950252062343304538491227695570012334754035217058930957756139520074452427936888554005150954691258870198450501311530415022770885808723382471585503160028003012050509004098765464570500051775689307283451994301279490719967596479533434255315978187377356063617461664647538429209576211599768791646446788429157850430337268626009932622000140148124392670205634997293105515523857170566889243503827736993020936479388972337568742711866332266295717275100447602269519298693697145826005430349319970605302814547888292694959350031402069154281200988055646675637137903802086330691139369309929257195587899441926727208127937927383737505556169830108553959672796294681441114161712290754186817621280805824353805798027757308915453912021673114783521818610001599412676629652635710239196522268468728761796796440826839367158847547983804843811242355301176196380238292469017190326315959651902160155317661180795149296905965862618150924058466679465516178876491849242805414158672612251389490802773547068114292288683012084871902902144403439328642091474257735407301699060564982990398759990935351796426141856812506633516991843208854848962954625545423840368867882643984675243457938137410529806820616725203273520739056113824318739859777702843988246577035881677745671131625206881719322607253025351426987824339067730857702277608498411488663192682455826122655469275426166643036268315921461159186179049179113499718660050941637645381673820645269722143536025000310703088754704801530781571949471136221456327739163416098136470733302116855599672372648353379442890685337353682988545725203308141215890335018042761587460019715381477920279872106785112241338687002935788669138920813633438546175743981459615263583881108785255235501176864111361941273102273408201114888866192298227205040527844662708388116459665210360619072649681528089250618371522264787559135205593409385770389310319963319835116108884786437026281300867315720013133494717562756594111481198175164241223938256563410377837337525010823596721829676226020522585803531616482630849666907891015093497537381216073127422265409303218256941997007271325006476634100474456255826128267688430884806051093504382034556900034307070771036823657548018616654547234161048205715477740818498314238252514966780107233567923667853997628582020924720603936873330040725466997815278716299339092041293949514829089104613998717360480442224500544329005973211858414947448115948471820901030974247638479148325056925396419792998075181538070329983609139972770754021115531481538155690070674727004542325957739012103688364206664070548692989652074187834276257884583031158046476664471827587714962625719579802770804710697596731772280573146927813336089466138424603052069545852334481720678875161227449145869450143225843506340927861232412956428104958338043652851735324078001691092113480531051932921314988309795985423717457599390218034746416934210257535946073091857610601465882786691204900099720047271662675122518422361634754704121223345129749793553280957763686496500501059702037868670961690535341986536314990679321728404880677168385652950474375082152081257225752097040924129005479905941022774064755397776008053836231241057530582181813350223651178525443881453150749655322106089969805171994262160367842447833244749184186002771478145504874505211585234761237302176514173540708555750606256324073438601107700268177627169391358713667561197565336435965563206879086049162204916391140075378735341131316860123351572435453746998236505313786802576860046502168003961797700527356853285292757039749539758119666758030806631700449244513345076238963528740276675368062022565547639440605348319719826357088122340199753781938259347962070460114902546416048108805662439382721757580629606645591533644603165999386235611937285058446496751925753428181948337692229207984897288956125392781662018471229935897548893390451852378290439575934262218690562458533393624673452063165141912903849739704130514273887942619732445662293588533324927909477458183517810826189049202601921346728284977374804372145464990118342606884244765473977227778087162457421094246499121210378576840720349378277414856625057493933096799673686452478663828321391682214583560482722718317439168276562219097016084990184218078301623137970239864091233383781075532264415240491905407384787198729801233700066679604538559510231422432889202225411629125706078176602023941693636125899442202013959213249416894605580262376569893733300985379646508950770486893891905428566060543910571812049967779480985066683488951938491435834124976149898727303806272391456033374441149172351039730887291280914816167037140808580880295814479911464783555373982999062676264378192682691699957618005893160411851987410929649164776716943509445819289890416699465368763489667503533338993743273354243541799398663443484495722760251818217661095897562189394023238647317582700799089797278656926184720504776269894385502161856943840501098355471008751758169811323638239677593487309456008659831079554798755153893965796934520687680370622476895961181536244053776181276655242304310279434474443851170553368351787116259494325504855640080309109572239720031346394279748357942892822036987658151426430477450893412336526609638724806031995038779027179264230964880250774388757633465984333062503335356551692278191454368676191481544237871698707550344381781378477154728738601956961603644274311532471424211292390341704462506599683792552772840752667230642369275207217661530370836595480581104435168977223499656407719165845588839143791334919224784834618588156871488570125159458890702888136934484708115798320983959724410015611671875427836990205335751225007022670556473186758544301013103053977791831726972201012815714581476083695147668970798153747264288975592213501416365461275623612446781561481518389479241497033713106402301759441644078380461460239508754601700758104360491489027919630374091671542587528039561523492137482106586983623878144908195931778386577220115776596564499570456683088677942496627552144890631923724856722909108173537273910200061881921184241568718482352268763431517249330440579674642307755822489253433340976100732388995329464305050576533855460389685989820625071171181583783299669265813111701668095579149059374537121516365973745861708602727017787053115155766863918649641648404384873767894403598955136278701562833459966890533337429732666858207285070960331591050271064021221049011867553397408313094763368805962838318760329257734073157156622596596666619603319025669126627152810947082047447234386256151406090011567297023228725131414152654310326483919201366108820990512234220807411622753338918493273461520009184901560582055582292245734327536845264146253702091800878473409954302836708596740453345998955633562148273264808266406218666824234610097045114953072096173797951690132617482533668481335105187914652435878803049765512006595589339114362510575918420952062474098738201039321182831328495095362669043459135649633309948919050904706028383399659998110220828124929353114361564124685916552660302034856694516834885303209910736657520373765409949867190788614050501329322439992684338046685108515667612875903877611915190903210068912082838968595277737057961160283395491138889030195607531762655554431616957229234553687324049075807127896392882140249660791347384320012707519468836929971037328915033732657990771302065915824446695988484803242166143228671600227100566674534279446567230438840943883807778832634525784967101437373295802774653659041645450940655605789061029897977051785526797745166030779877766776332936785725772904990701577898391327284128683047091077808180924658001498299254185894592327256745842441239046033907872789812514073467925902972480011106530272218980524820846844303403760721354336980922366056801716827814611198049153575794642720504688104121139830295140977243439855334943689803643321860065170875516717623362713192300421108221368262717610829969810481375818185994696506604845751687244788821826134926945010289458771029851936109424167883868820489516430706127392416743830312801716183461213512942252233393470204891909682462107412335822735009860973046873659052433286345081979340595847290884442805530684254300192473757328255032946845399649487211658272813843260356364432279293420681465270703175757972669290698226114942251813812454183389109643355050926636072299868195833452344898979842749050458925691412066228316514292567252014494478698368200800415711108535289973567068206849743579373317728148054907922759029916777648365443866675043728872035494875748005345455602230048251515841535481996159812658883437723185132206409012512711632491054551987960403360858088017013847409433151432013774137923126239528315867596173130710411023659898900873599859170779146363411650944714241822841822660972051625574552682703017253689768809220838100890859689251691286939687616903211080499150659913101010575058693638750036564839497167888010287597273432982315790454916327781501150555518516014909221870356087566048301844187739025278767578632873299635952585606595012115534727759366420289817942731646625422971085130745823697396817736863755077639279489418208632770676985200932744288272525650396050914559512281223613950169854617118126242518372970716423255873069791720335429086750102789042136375496504268483338369927222827787897393936122847949595397957168066098579967946010883729857699060624862559938792027313310075725395279049837212196468141982292832895833705952461119721654544477245956969645226073943190105207582771079957584142711782176837933883832356472098810603685498346646396669315790775290822194612669165625549919341689299330951223774451049180034118537978361794863695019884949462293412645457610209113308969476307949648210955185767564749261896598534387656652065391774890906689730771890660990426316493113101401853037042470461722896610151621544215989109521635242329479958899618659683094556703691365719969170507722640416711188846296302495113098177901871419476265756591649170263465894343437490579539723499639478320304344918146497286626854415155696683904414106426534194198022435735907541849927635284822664881784048401469580834241516643396039835025033748048384181217984978087789185667978834519305821949244517834033172802267018315263276551778312647723125381458214840591585321562284392045107941222927938861254286914881344706433124742722555038053987465502426269137623441060207752255591810158465223877567722777419203700978188932810620710313884662103647621916672693083064131788587784465278891131261619130618864609408218833822295663826806890062775861554502266858957446889356914484013658655167586163393610262631337185250487666635340867869248586325147146429429601093614845061852651467853940530375633138205781308823340250322744755102140884455810590240085049818749413916940924530512701988837328109874836910817251967660979614417016182246429651651431651136936055846542363000285716839686751965292833744587136905710718208638359657430004394599978588675940532245667182324160977016550958413325121453606983297370454167573674417874407711699642454338210703401426709440499021442046779357557231136445595542465383351468869742093757895540413866634118565675823760291514329690190928448362060782391574197474501693850903506925219324756083326292727550071449451775051888042806164712805205847344967680791762850720894782286555036272843285564809306808503130464949369706870994315034062077247419217512253092040042326680901861126260833921001834088078646594744455687121351744870619747071626406852570337268643229748352460828958052988206944338631916171001933832140531801772335784714221053239574397036653438702702764020308905243346774637588554520272193474433765952984564697428672359284663718749132777850724728282259462585174776337294474850449050610645237539337212387983373269590334112213278452231757971793127800235305969770569410232479598553686959692067025539669723904629208314895527830148976072239762454754727667415557975768414447183089294748557419542615449854419850131485335064375603219133307817682449262657316953329067361943525801055173312653203056798220460865086468903308120906170395290196665331031922232530489779120534831376147594138452679632989130363075542127933318291771232650210142145918631279428405589126535035722757877206019695111852352577018931987586660273291991756264012509134930852253695268697055499741150849638308091655795707193768581411104200844077548712755225942049722572388162884520820470399766483767375189313447954435682838153066511110312786664761766535107939153132216409573581389347198338562393835803645734762242533957340085064171735239129311985360380986529088882971971123156496628979759962641014885015447414807452444006233705264812759519025094944335121064914438249485774721676820544994249137911985135746991831750839326733955141274693500211717717532524592416817325558526196312363709658117884135520417482871775189044862238923502689386808022124095100861088081458156984501688969160600778008147753579288455459742223227822732885025092665430278866542728647110998069368019140141123783256833246603958636261335146919701429211990830966980706375482389382535363110371567827413675523041992140312405770063910453809298988461510378986616220266238647543756148406439430983613579416401733734695052028615904239065935576240064978028009196670706626746531240530623799157755213079921500319522981851479552739999112571637682799590768906891914769813537687390059067695758353123857965989980995838219850685149919763068084949613151594764715636253418289004017547009015626145267445933280973507414244617581417234043514571488947362240163228513719332074687178166822717973969235393946690183677060688137024936334283875930349210295484100413937298723999649224432269988769991787655339589343844121944843409898248092545035092302962186586433530349832460778033587952667736636532711239927154791624699716999836828615585049670074706944544280575036507981412256368502965415023190886923410745360967231689656476735739530188211995011368031961459201307228217514861014831954614050882236795547481453352029271791348148675340497637250236761534707355584671177652262748192015870795069077143205289054237473871476452575331234861167259886433624528846279270046726939803566859611673598856586467745730888736616603277357969736842966140540685247770040151200332409546715874703551948190764102782018920987441287129293814138309623731976926487182805787948517592176681840620885301154472594541562848768504038852664917126256154376445110229484255743568288111187723753527277326288048847600392518047878020618011743951035823009218473533752607519279534632159805770397851283333959694591983845288699663572185883259997418869334225094201401879457136281089358089634225766879316480034048549736909018179191739503780407077036507226207415477708206591000515865460260153715434970254323018963269329133146365092131251686135890552138649929510739616028945533322338486380210807106738353931049890820638213831462740898466876267830826981299836161772116357434649554225285724655713486728732757829890035919357226509111117463321558002229599728076342635160971212391222177722483650345970563273464264001127208013520727542839466779252906085006270075253452095675912309493486348750929703452567966132304118223749931989789899748336126220495304295612323903013938799681914814342898717516933748763219829673032778865541583328355953031321079654914606881777515270941970535184177570945942301433068463271212648815536832132905188256921749040431135296936584476974037678034593949746978791527958682614620501572150888758673877770210991344604398959030103075660051347128394940942284344632076201274441450217258148575620844163014028383898962871132604667151470046475608836695353596400179675113102770191506060766414497919027946365959576710107854784821506357066212521349283314069058594099122489989041244351048079828779224071157834010940485813578492550549171821251317900381297817788864153476696908335161059601619185875088109304497287149849729624969760718563155978408995284252776943271973103862805392144778922417471788286406872232084162601326537867151002296421244561346290218721918895605630204336471843027703462302791743355318861195358548227580265840658758058263708743101250481475919599066729929776779032592284379347183192046070535942744368725768593112812200106153694058020298642389662814213096180520768348695634525561995273420596538173817192126873936100747745768337390263378604586613031571273995097309612440173389668360396045812442989901681462583005484302631744509876025976185441200146004072545857463086551868929317407302535401442422030126053645258956619326166639328138863331969373197070094252215061527026348126444133408063372751526523283144409944431740762520328380193318624739858045667381388565693399456555087584268657455901666538221907437657428189876919100476660430028443717456862686595066524267987191050228897246713827385868145881174351455633550974062668482357751351375515739861548118171654908794541178783038774759031099487796121174715568502423905494879953512100567419263673242739072094378007301573514217878712120467502359131134271461669938164579241326578038772369916849181784474461259896228186237435636015344545033195050718504408159705227942204885848788367881360899002249801943564321441588935815586967862478313167818129904849567193756581554078009693170014080769638647383186216833548403959802607394254957215703558847561138944153109920636211155971726717037620463785932824681183753316307270332142288814242807433070410933635482395864109447560070535760227564891601495354351948838086556456740905418192245828654854567384978459805999717923065922587209958497181149546815864212574834061962344235512827390066400314673915482617968736990446551418256417270840152860585202645403454716412628022590342215584023234296759536772135292704950307472025130601927207100233885884643271952553465974202905842104632313622447666298149389023367599548594915011038899427091890611399942925243378463980765790358743633998066422316441048384913061147698465697468634810471413613814170032112785084629919327289143827196945516603723461320465023889604694626548860975748145171470053982929424342899768322750527332125678332069074683202567200211594435280367950759557977432422331461789299972093530225947659295235336278516585498614303322519073762016203013292709076659232585313086052687398427320887817149741567497951143394981586792239559156552613558695148565396537330758052154634561116147310888923713582578851905254139766234736355150096145246543070503639236842546650452138194178127707359858164210458174191355236884213092201761086031896277795642859579945615380017923875790254435187349444862934609316691308330052263222588753344655469426104490867876393800252265481140847766289909346536431335245093282160851984205147566349804613639953987635298711214010155071749446891936606764881546393633028798974130544145275992062768446861093685003908656240919426156374683042060843802667435809224074033124862616294545873717941852781016956264476348757447121487433015592444996254398091698788054377897887887110460570833016208504254857422719769209871062799446703697048373827546863245394492204804261922947628812696181796413603274639933164992810497084698569102492064524294180773207635707632910972935376452994667578945599740556091192893957870335570711979752505084814898560297807196197899776668812121692926319620008375255265678606384009453337550975238152935892064589736554899552953992766645752067338680511344955253834212242209486041888778239206752554527567407991332655404816056157365634487193787881048501448397800175605408254546773221379481912860942103263705710133011111293717716613699709756505654891255614110650773035412095930422026126251544779791215967471284250217860254504395630460138725762118112792625562322855518150410876603109071393478498631083552169131968447877853616595642914755600851569547509202871683095055554773894086624966404907552084188400515144268092449592632171649072855823707306046283936569571527472612544252151853814100789978735845746374061935186956256374884299482750839968201269771451762955509988565405707093359051335124206131584658347704365683658717842998399159650537066626890263115467802561067088527776866052858167716924947301366797629038553351028739803803200570291427412359142190948055888038419457080191631621593762848690135498939029219228176032904280733117353307785791882875584492758615431375307083366643733791930544792155437422982616953808469862433670429034266975685201608665031590189005232539892567201542995199852239709052824611600799092077772519814626245702370460997068481640928878427952002168494590296523125992124465775190100409291033316289066126435827621854237093222350630721722693748873684792711818418088400281768859975413255660166087632952449412361710332870958148345443519590714126442137530790008485965005558847461484969350993938989588101874784413640752023054288150935979042373402624422170329395825728609559633702337951582390282226430337668729122911273442339434747861551563460286703681110383040055769536509598546325187157430799436532554948203229746012154902962463045382964487784661940505915887891682823886091187785263284819353999601910530942165387566693857744477193584762874175120559861144465660210509282073517282317358765056065719575312949119869572668949878579623547723618454593072397123950875270816428382781840975389614086625895795747655670037397258659001916671738415678455848771852254807287684753124091747691665188572174412533833204500351788399819733662252999273631411943227644496296140238163696381552136691088496938117077326923417477902419359216835788182796903300765825856278833153820418922120634324375692366214589455992999742670918233918706682558958071093215363741539844053030737799773014283325026196428950807023470314834880822974901709903775858233721265454010018247832645114302118315688088482222346880586102821595029835971310461181921837180291806958434501189650898788887215415690921532927118296290684769860718213017010297616207100946858878679104672376041091998246296940856059237450972514838403230695113221428552924878152100906587420727953845981942132779107526896549864360373050779126818694864262184337561116506551787515775359444746528181103864675977708042434359386186071576930255505378989666604520516028086671565851342217199157195148714180752784062064865849883381214994098446321689299258443029681317942502471473878582044133474737382511391962689152349182064771917696809893144050688588249546763549880711592193516724848707176988106639470708941130238833611808473493226716420118400378685229742517312445472272294470795521564573874350710710299865341525103153341423369516835074351792543744917124617887499140050162641161136018746933087972051831815664963436603443586745152552503965323067308075951745264852282088050025728742935399686277441897118478818641629596408099403992502763449583530031342872533005636332082644756867299873175806972635753808403134810532702299740554137293785908277843163219028319729554252752196271232763703455429521781635492816928856992507630716896581064342520115234772849307625808661689870566063958130484983858141372613258153849973381808759421258320851621772473770734772942294821275509110748268155366191225981827522764434018498288282101778667516814298789915592984923455931703072250842023411328769453897520672157477326442348414730330147881848031558427523028907264484087486201726703998695272868622782468246398355691409149695798861528597052645001397836751476695629069443975758148940550432158575884682610988788294510131141528649514078189285828894554158061498410556128704404848406177402853863133231777034326776405776640364951842404926033776149094176416596569073562413487286459149283765925500612717046745910579038007683031001558707838700537423661426419527051094125719141709421198095571268574500229335670461895574186470778474579331895976507661425756660234551313493704430598517684849072381814277421930721192031207659333872653766994067518651166846878508829638257109209806110037414077110311532085053272680653299816290391388088912658977656663652454838742078321554385507746736694564189238098954253042973520327158409083222839546408564225937682703932451192643521096047659407251183774657613858228964139618527745291150392392013315485422797409976408002541581479245627448561230848728786378022712269475802597679130148617048640117002482959795046060704024628995665427084728936337228415798853950064745858550549225529685815661587908080287180039691457261500308242576028782319299749500244961639468278558517156015983154399595072826861570403308039379869850861351566410036567838767612417162723854969284355916440796767231879510622605152417933418082720001865584811139339214634546577259755982351965399872914222094942136200110470881018093522696989055705531612396584200620562695352391475270542822699512448341423562688176870483826917259435420087293536104255246593307717618096174163515333966192751050311412766131843168062756505593746712684512034300300933027865849083512569747126690560895420977374772121122194870596554748672978970850270474836449977590694331346481281401366208473989627672484526830109766009109259800954734465309452770535832348344311162739619344428998308941904431880168235448095511077615539213876624920382125678507632837644060703258093153868180395099413779008770804573291791939384491855125122161412707348383057067079599820474990532374588088431753287349906884682441203047985719448272677967534642924895662773753689674904794607192047141516906444317313920844299230893494176643082800813548246130765412809182840499702709164954882746174757919767800391180256870719185743347478555510291666130064548042974242074105306565214882176865632934112318996611386379075101243369343034427283238940319255621076639258843837464230705032874133193462231380218680988770409321111546477884237886497342392883947344014633226653437435236624008961607649287284079116404672393673277326041400020258245166623334743291443803510681926913557324498239933303491870419107152726597645699099162479328397882001312209779143005184630178510487736601247245501080179108823520694366501386168620941104833146857834454167067782108079238926092398777891721532739108302678174483887900765765960838369118815724560109301249444365916684541148677921116766229723557394811702407897453945972273754326317894257368435207126876039370105738557351841476658914721565170786699304680926746717431938459514465423431994790670728530051857497663576352684701810997136256679811265201724831299867141353036493065399831807346862013491062776625060338767396811727259577623978219662373179340540499438964720104216907953337534438783639983882967585111959248289856182220371582411905368977874334883226562867978843606931365410895276589380076039242526166947459859246608728098551223406964409157641855829462276714163613630426753203440633175421320067487655227884421777250233180019484696047111361524034857151238627652724603853433897170662700922969391545532272183782932574424819696172438949870242275300753508493886489254395294391677402306240892341684736163698466768413375698270562153560302518975332085259717555102258179967165619706426319362980550761294272077712058404579516680147315870112710070005774705921108728657241290700456613765054418289656755754088346845987844114813012714567477973104212371154644729663769509505315007778559183368223985472998830712933179017446755991827549647714144648642621955292691246835812885008423948406910058717671848620693043046691619443513194574736241034767296089502452171548396055306931281468687543332845560169088854733914597313047167153907909690998359103884744200712863432119915355696332954957852555549578853081552566144135130337895756256260581425781642037841933397000578804068212982367240144368010439232768547936303744696252333621757878297021031988555838392884179075366462888877093268047257679681316893048151592953900794318243206188951553083108447251486417647096619075706705409710778712816532538509063742491210823546953102856387549808329034501876965847169062027155475558128967823090108454207825279355486197691741320426422086483924983390107291234740774776108598315397809698206230070535259575609067674178879731584025404070368385330106019136998853544431532438650512597675539295939766469424587032580056789737143941666404250942165405895695093652333943373055327290417068204202230177183582760362712382238085828453647662181715652735687913954569590647108579194048865036156599793055383264668039550412849609399042139871718233357548977172993861252559047073541270388666497084444870463604516128692629973209217173685046314717703576344923015562500577036348671061269256726714944489265983450317634561031337270889545173888914703315130393990008921967502222274489910067290714998613426324272677307607054729963259047467906380265725799846435918961412574932366468982279968300729205219022749770538243605405105709941461439701882465086675423445652916700719754004491508694955436309894692434201951706345214622915781810362565604489129424230655516517463306207466875891270319416287322357931695913713135737226058315572296340643696589987180995613594073979614833681105196304905307041967479723052080155686301678628522919650591274174847960100281022886480511061422980920512268938021725524636803292490598149989669449193296542326804278009166969414777615616363562492379590446636998166311348702659028885202962661187985061397651465368583562156433195825593475592157904977511601573085954470196522301146037550247785715829794304691689850963854189760709445804121777520620606387521301674927482242670771983510509692455185980381988783380807579624799029176381312910071370372317189398323414230885030214271758390533068817677010858812794075976043642261413716860442203738163123449338248879599093296719737422647351693366958039154361394843208680275890698551301327782823357390946150416257417925153804307673655427921295936131803273046559043088329843777008049664828879732294207471933415345177050164883587167073376559859796093409277165813097911696397143196450482894723054622593682859982510703252415220431509696831339832238604976633883703044539926584195858602709602072679623962730607614085113140525058675393618280651884998696995279238444704922081960672493343046623130527875474388639456656180521375282427192292382643406869306062067619697319310465944578198565200578827128361329857158901546647028535305410275192111156405179222926929256994022901380211045651012458654869999688315210392038839763141665183522331384814210502189170893482719586945007054949100267619357732040450590379376401876275864977497037736714555495918985464587037512505952310621173163978076775204439618622146912653354606549394479283769807308141868656993965510107142052651593422111872034512325697695394607841051654158095112533669665946050602148227378640259932333001436383273507160603254735420827927338090792160393715739336742714591027845718054373069192567802806008961674222215040380319008598259835683126472820579490311676890483179384143815032770514418268638887544206128010573854681098804984045074566225040172134576265217406418970186604887369323541791972050751110318690397180606153080272698236373364742326977930753766412200342601595639392773113278141703306193359286939285229318403546036840515913307328652875540808468256820946380962717881687085650803190628211447702937505665896768670110987397019425042285464356204694159935464855985336480557102652985950409157047616163596021101340049348719859606340317554912699914205137613684199367706042562319647154867347231031705353369331613238756638459611792121608090804060221525130980553362588815219987153635235418977991060097747798240564295626136005224957580200798280733832742847429646158094305330653372579458521979951959729586359879023702907524355899329477440635802032655590697945068166997530010561384133835650747170166430312342575473896973035253563970293955043555985396000334217520396281653818149812682695868899977863478216263691804453377981521966239091529143018643998674379708738989386015617288744830494372390774547884590339586559240081887492245402685904879584214873802585006552776291688053713430054140398509397670777512588464558222863499996100098748705044050895403844357718193376831547454462604658844096595547583529847421240167181918621727528247605436636054657653633628465199323356381960504757942297391603302892492831311797688790549912840127367454095738558624799963566905516283975398627211009876637853712424015792898744224070538986524294641951214581860858787838153995912070540906502258689144558822049779465534706751449650112271732312352786421398252416533650840122982176871163279883365342911333492164791390382981401113169971002784932341903882398951314891205336355639327887241698020586245788096939243581502357823665673437329117166795583726024689173048918746368399961526492797877419655288272760947127345311789423760878400420274494283558994129178431989957600066388432700637871679162625057295636563046623333288064681635139149199361207613990797813857409257851634839646789997330117254562920126809423918494077987372387068570258554610836374296894711735276882652596823339282501175090154725373971652425982338269655189283924063234872573857428277058595674098360811254652324419953258398409494364561995957403979271996074298462594501410133048969336807737760257569490512711818709085490698133697377101852790693605920922497174705894374294511219109362406420024098900765517456276359136968970263137089197486088661684616678007295074035930401398768282054464131404156150757802296324062160503334435065018853589363423727075410168871761625862471966471918574834779362057324248126589899191847153776957428423647608554275700261174164814792906929166002732503438792955801414890827124548485861968407126108248633126612192571314727190821320848865744854574785032075968747162581365192666958844199722680469689016223154237375136373932256454862353259623789945386344233951191246073214072751453056789001972272458069036414807098076406121849753340486830739638552821316485108200671590717910062716096555868755471956550948827650523210729436212923125952465299078393199214169863921544092960361565856130502580860858342121468358602773812048002207448736717416317726500759683055977756952286748091734558033462555370840852525664884039794625869337597428445141827709289084246631998664982042328779393657149100898269015469037544826534075159755514441374312228214336095940231456898314390287290440482902899559125050959503515890983508895208549871312560432313863529867998987599450411623511025453870977356872638154793037483005262817064398832146380783397588325786315798778660050224827143066505823638655684305996116316780251518585352286918508548622563562456968478268277329333923162254118635217750543752194703094883329310452828182136738265864582443399971716602746301246822554964130126962937045329615049588304244449691603051286945865748220195588641957802130865069529874763212785558330833193594779030949471321601392062954552737771696805339289148227197644694835060194721037933712292729346644929246869176880774473280741951142251587537725676054661684373036595378170290102206840250899122010247492893009671154596593907521755532147433366314397705858142873388069905768455716332008958818365579127578035814625195758688296445355334343278803883199918470482324109355331187568309555967339147762520338462666807063370611665337770286961741200258422424475342771534836038945975286804939158797899943022193615544005948057197367989845831429537200151430426311401002757075334492683344286066662196645585783424192437704451280367554997962333591099607582519773019705430709446575503996469332119719448402148820467784416146857505082231774552258318528860741446640720997589516071591894237344894325204236182420537245793255751444113231812904735466655757691762144601512746377236253110697021385959909077066105662989771613307071112356210473601607246401954529523968478875547508266729177957551781499850595536476994866372112993622394487803324488976614758210094763397154988816138937658409211985811547435877516077747799341931921150555621899800583458366012814610259862404696239118324478672952095548729494802035294664025744627153025849308105509244762991890937953255409277128024450431766605155466463152869670620455071517275879545629561554767959687666397828447728685485270952084047536979235291582393140653725609584810064194290089020671975290553464186209794910831800505003274534865048381127647520873787709914696900421049363586253162813325039780073622119872243778139805005856008345205664985152787386920389415510394160136461918709346685649633693906546779206436203747595670906932239142464642941778215852464623892070887726440797205826561843709117961052760846805475325316801574639676747511892167554367166302343277004808275605939909038945051179816361808466277167670553946169012309780489426501791177831773582835567888958887387566761579589475615550677171196765831552679881599379734428031908802175938164864877683771526580149487844285881441918418791471391020825321772335146061639769505003207143569041872818947560941693849384709792471541758508513740582398196538590018643081462395537643906537191461168678464577087361034238607734565572601209781461500095656029185621236547881012689190065726462340556569846793068415464422663160186434833423550173792333253557146213580919985621608743472063222224886209198844957789900760948314450210812326378757338294932311084791875180100026001997414892066844313852757834850229395006284941445560902690678419862772557913033128029358974881838998795468931862524697653351471124967839948016822890878559749590289051434788243171720635732915774667926671568794623679201036274901914078027089218630353607951797865026474718429240140628599611304934530837153696976474797527664384289696839826412594643615374625904514886797726340336811955059493821029777046547526088217042215619349415598220774581027409563367924478798998535431426554412656193880667532800572153046600056524983643837109585647868394117049155321499228342050741229646907039710783876351002179766648536611437164432398009974747169772629163951077055916378454078174022481631558454545128138154870649903514030911724065347306135600219100725773202447146462058910377228376472848339343105725576007250523544397492371157583063666801217334736726082758482038357945355276398085816227502262847599714417372043403402553605591584440741835153426040195881541571947975360939409229032672171244604731805499465176264737727992471094049078403932047834555229624908948527559814458983963015297490625653979507949681011882023021708679824579457564120865778892689518865550167323203538539432807274676784661688192047023122210218359012953323188009635230022288256749741785978943883807439863011058308309889143108015546190532552798547001326163792189059371055580238147688532291739246365170965152711506454037972095429941412380843252719818403377769182497303667443079331909382799488561792918984060523606838673924844719870697246396553438963330778284346988975852766826239152581305065443621187110384526948003081550197287910809024453096810999104805395820922353445123309610336076910619895131731748926291092946648165115232211035223005367704588066718776321204008503723974047654645676114793663897739094510852132127423603643995069190702398455866543978891025869842068786931242896453388121299291549569860870189850053873375705001840984971381143747148792242460260816399942245576444895387888789124566351853703611410758957150840483744287534419012125865116459903604310353544464709839196837572796161023345088276801415848410132986864348213097983767098628980634712235203287836646017475984359975053950408849344197786677380581798632175082988290705949247920600201476802096519459574047245312570769694417545027779072621233201643473309896396582474055157188974948673610926330983746122158353446286407342504524249724909760432533574989798222627521463132454185374363865545029370903905439552254351226261981408760967724237277388418686750543811749865308570039789658932230384718745482021136594552363786223779416275318587071560447659578729389778118865469352464934727718617328985843674294479749582146648964491096934870202183260567257161084250992695431257045452704994950502066939625091644440607115048573230651857510070241651541499021130255399372446724363870798419805141090878427887512466297194878403269070319846536052604500667079598467813431520590415403112283484933790091607674522715608793917440148009155541200857335614352905849001430416668545562228389315883884494561705870828893320148581317764765036675604701766680036132448024553346915667410283972116464270197993430358674544246097750945267898639216247564135202472580061236117712014496827469988918465790138673040511073100629490012720783699694035157910433229553618237449907368528902264085619965647097648758615142712472558288090479234894595682066381080534589668885481716585692103052767031808743915259090480032249194469633621018499126959204805010801669987901651950297768147906075477559914303802763305340226961616760103189135140604131253049310839675937457412194688463196540700137366425827578412854339362844779805833449411402601898167172610390777108550114540086157462898273432483467383260750999379738212145162583625634675703003595892590619439752347059225401557522433546664865991414804700646489141156783983484232003972293485526416593848443017555177513874994287634436564135169192159773707818390228547064027092659786875480194076898173930363453382798641247546989313098920006180125448277492441967031102096890755241614648188830494393223772266079929245532196804323202929439645214833626578940762839056738442869263695635680508548793988882669739977359269809980629697750841183160869342952618195873822204043714803287712157244358737613582127480729518495694738756092216769349726230924223690813121041723617768014358847574028049329665467787426827217316533694154053875393141166247141171432906633285762727629425086688736290826679443308668625625732840071030734441995043934825468843425758143996521909698403101607072451976425314808779814944855424568210871775678112793289892858009710972594998417388479917680698828496336149493231883600158128108684585542180992321288957951080190762036253611394222393673003060418662125281624889511239419758302739982958397988640449110188495389380250077159767760315930388209142892249465590296728407820537725545971520221852363205522159680907416980149876855369533676180769653883325880763231793483524781619732970019365527631729056285980358503348613227192154641591755189962619015609974157300198383818581443192595630917066025473919937306670722339034715777275295938577370241986077872388307372943615223872046734721317955431921776748637471680949545756576490689589054541771214327730567585657020823644646253703111587465106707999522125676562251455531659135616343957737006738288531487209182150317221937030851581962836880367166948702443663576213468182954059659281952619915088636412108636238402191600918011129438212825042926714150594229980757947444398917439873910961578187320385172169015488083175108546880200278596013865088488514335376415949855384245672345030151770553429471255451981703653275582427756896257480626684091133136592303253818106468753920633214521757283543934871187889592595870188130136730134222018254029678933840719100157468369672595928195319326385768719151648950996077055453032170822154789583590569058443018495621839246278218175539560084426517016073597263544219455089863642863371772132871237195007897990315673656060183159066701475831405659264180627322288283728453615717417895545605235847018608788091118632205766184336261509904289148581031629019349943236657947961843818348009906229351342545870994716290965263129899280638901944418285481794279236661477302882043295086051639288602088730787369124842557537206518706966445395644580766743899983759946708027436744092780480452454143292328560004531631152799692980082482898573956985672636024774387891886549480488233945683418178758918108391026552476704676390276749674285895325282317972053494658869363783766207758610899016648449471275487506606989964480662715947814911626248719140818236935024380524234614239686552558247303313506578871287914995155717715965769717549763181704625470691482524276705136367288677323319656313033456948583633377454995162945121696644345839561763318889359221095280945310338965774683786789333046652220571706274625803377486830628447501182783713257168226728743374297823347425043596800181337021738473147677005058096553074740883507580357946967955968405507080612633179838793783162323368510986566158806722781956457124202154798499602215037779284380009814445231124740533114928900340437327284511823059130669161091265422907253888381542830987312337404005768844717989888206008675198618540976825243021123374925344112123096425339061738378218505605575087594380819842114284078502414669279566248634547346871053072604787164519425744121035448575289387340643819013391401601643582822483171890666646804130416961356532503746683010229545430087209485438533776857018318724790477875594121796759561788290640180089039866034797865835398012968706932061516579652775077161585208552432674759805790863335068386826515385186440155602904187570848688596031982237253085562465371094992283622284783300658369201315252437045613511220210751256665394714360032635079793572784976153573962009248462029743459668248023146993598237954348839572631787230302614084113846144284158572444124837636672380844154247192122812315654456909695840268119682815114052268892511161108975347333174628125974014999899387330818244308298838847722812358792168055751182450897374321883073637334866766596490255535887434232733666850246433151329656724863660528058788045781842419471037858742614871538782182564595709040242370550325354570604084881107614885454744539729456799103980219269447953846936380697485792967412284901825003169730917084848688238486116539554024347974717296623774955891715240847739526054473510608150863568660453517409387234823750251262157826959894271438628490425214176931427985091670635997872219545459329192081397446600796490344709799648292969766990382024340768747468031991414885873444725024674543141240052055493797078625245768230524824038978847342263382821931958571871821436089368665434360157371692291145616818340808769233377682704329652396738888245532356561834052006083170564670476363000876924056411594719693923388853215495321116269602657904897947139218421325530450482431305324389312368255449576687088387137020996117179628358494073302819553864129140807699223770370674571074769421446734662138678591808912916856929668987840246848902863016249610618104636470721035342922017175897735550260953934881579576748206066814058202766403172413656272916883142192732342627136633235360166790781596464420933718134716685388848630300552820909316851732133390233456901107853485891227972476903351142940877875959617203926951778135480038239290342333356818494755110707355486437067285506659186319141518418596491455733076118028031368105687838266802723238167567000705152684913313517209598206199634603547580307394979424438514962845556721679235215547522399643331965305173839410610166130846076213052870191168617717201938345017293280115333114865606169260150324003985071415265293372615064235553496435789875439149389674776202719914799201593982777075140286563022660061244199722237578416544838578301764847763457144251582582033285717169409113298451849402415678314500563444605580303831278417476432428858545617879177663833850008038833197777089427329999042795848291962394658703456880281559762482348697288454497333027550780116143278255477435558421990202828416637718634276928780118840507628447668044762016910384220426683521460429176822219641382536372266081803044761640250485572683020833234015053425873244246603468294357632166646953978802166889856075333860746933033020002678882724034297864314208838661152762293854563029299150052766743492747740270154327775450440776986770345344610151409864226175171595427999138946321423658487507394246876988103385068467717207287463483127664271393669335637461283888306427629272462147725660093394899466845168407743932453914394076355265054982424371368500858069781086552511139135949281429737349447524778557167508086313822282895992127294414672730749433499273288945081296503429799831853347448193872329355557052641705096556246350971105138998767089536046790333402325925707018842546279032961091705730744764343975889203246496187084756700895777131325552963467317552890653738014392869980027350091694639680534547196891358125956349659446750731564933546701761799666386320337174592892400454241577057823753321444021664838476233899723296090262922626385325277576096539522892506247178325245112849874231283544020789177185551568048147353969833524443185458448592551057477494136459895184742289824532302116406307714675371484701148447855255772713324671600001997284774855169668304927305737309122737278485462806739113090151414240377737915017708380255443801806001076922265898759506150963315731299250096516622436485725678364425578616413256999894162498157877314037710092901673185837624109257353060153148659452043378837820793269558190223775891395086643484536142944814070861857352161822314858888082437135177129911527941765788704877404974628744190070628855273030256302058032069037110697402165146490335534769347591365198224675842928080602413993328477197368656744335007534139442644583709466544338085913540117316645882003947928398915062092593964845273720041910324697735565729584734215319693216200718720601142478565432658940962328844828042753983204639704514557481579871424059579927605167178054523825919401826757652529836395725316079410541464944251194572420793608162313972260713707383636287335464538075191025756033664038252124754761194845238666296561695831968227691586154946944006164442765079038852310327062326646821782248610496736988225757011560479534926749400292876193859229712440459075496817780049116200551112113371787443488772734372420714175332577749599744884204036658817161041754977119204587416231261600883379746343446178451641738926497755237884280062295053838146577139952645203038976542049278943022603226331754748106122099231648118059079806679057674060314012207750942108428701250829628237932756849529865800099455073635552481616823512531082142586537295262623189787458297392416744768144699636085046018414475588851590894255672408305652763601560522146254548438674995490532193648242829037441507829196940218384855290540342547042917302283117363378485793487687728887196355784593473504307509206891142537550317712596548450581906356426326069711162563274526556698252852512072879283651542111148181264204736792470860381044866985983613788096949889723987104690096904474129839534816801238295040321326171435157879569641570307228389300435905295609739441629318115375167580478215530026246816766446192087888734532919256231319837017023292497543116158641796147915900602232458888504406913182848507814846901234155237459326549031720843622246649053419724045316546186081117960463027052909582620943340581576734821882927681704035901566269937281570113724441976787804701495723319414342422353116162841739472626601635366397203712982437346841827215695594056046248777998402489201101121031103425740665537259114695533346817222439462194053018065334681132941361987089754758971206194729288086027792579090616174676741045288437907628177409261005425922445157784750014717081672229506171414057372949456844725975514128180354077794487733663955509315631739425851819042673141358093819891150006928136610083978192828766082988909012286915490242635494402408733528357521034658317819460823460220229514701096988130650331122579600143002347251109082123593183896173020113414403861986713776965284726292709472685808402916228748186488846654487831531252149285688702526870014447228424897668033793807722246601291118985397365231556546969713250604430380441123870037019614863626184221522417506959299288803980305392040388054161005373629468257304496268807313119486248365890557829137429574855012726825532799667555275995601443288523817354524732543786608709037892764394188129096933297672432297914478965763371980669211233770829466843428478023182667068200514957187134951369712612923615939940993169680366068187560616407087928988306887824682029371366681644578614054212015299831519353063272130180712077643528292400553436334501804532140766757909424001088721062761290784791739708321010239433006078423420198995507676848014258882213969851890348362147542465000502190995266453141340679442135093821194023163273107144825278471995603068804831313041011036573852046869850467484874817130953687552372862693411418749464184449269441906745018664321513263010090947375882959753950606901399217963589237683415127641577301392017771979124952648866738281101029093733457981855621103379146961451633627596996942604835037960707130560168681461922254580360390219966380050475152564648628564833642962502779776081099646650026411706211251302628087302490315418290557684691808873027222923266004715869868977952999701997016120250031588128783596756883335052480648909330378970804477659457539253853458469165514386703462518262679065821696442630037434011657245218810788184618619627388551291943320049253054843578986974367503478498289624928799947002954276606620616153904289857727307373355527609139210176783773601680199951901821588911195214474311343144381243321776302029942610120885091437320432366726758069142631319719682460378571762966277661234582994009297941208258678367279998659859083514682168082057080150731889416704019308227383579967520245477094611222209993458420960256509590084320563342997808560542716178756284208721181336142742486407069994913789529785347056820814672935016943125290179561272580250380708945224284089761153292736359410448920839432503766642212218047301130517309358589699790954187212989129725155553909151791000893527380569849000024818442009020885158804561415005604987874499560967748939155417265862730763428873558994774801836903347270543104184517166960070666894963813399142272963098958841592666653593292527005154450978558374021684289128853083264612481122572053530318177978097236445877099400294834796768983467982592202994821221029197169247333132532553371901547148770294463423117922702071223414141835757860508128081296923448823312218246874188912471194258310358086601508652216219256611819156402934884451473232653624927713719929649978120019923974630840334130262045929578761169711246518612203529658297813366184578583696198147437979743092753981468919817506043243059469283718173160452249313118598683472543930109315105342559259890260135533837952324656836233305829348652653846647027624269205715626991135598273911595582115089550241176177292469822623899064939613503897882846540686079993841218775099152349904575827236814644295033291208409727970711870411352448147712207025383031387187778437639372524202563472881090021066583365907834164552842798823427597595332288437155426992133087060258034267538259015307451347936005504069310405767029026976122555178698294915214473200684505038800997290092611908371986376689174488175220406403680854970109515024565616984927945196150330141349523533275504060994461734396749028599435567496435917504460615231857663576450951127081851758966521127374651644878542790654250911816708704622838665678360202937458609305113258949114783076894663019330140531052207295147709448749738951183413681650933868848885444353124808491634330035016420338141461443716057610921352329097969713968968446312889673825584155867545688920304237311607628768652685961782039103411114177321910181439050642686287319490904285949714671068448272981255767198516171405543844896682571049584346632912181373735157078288046267946760771221045098982124885072053483789883248763007113584594504837242326924249995895748156604357913318346523088133015098367162174284786012010691600737274464368633449523666023480702177198296692013543785431439491610944914601547065522339890104608276820813652104534975785896116170392542437203700687792380555351375693466679722964642428114157142668652275787415628503757010975600273409095072347614172089984290582999445440894693880733386111870087062462046446258408673518542130307407444769913835877150470323932142270902692298423197295856067528451744969718370888583642101666254670690020025011020343713919486531537122291365374920693472952868790288102293042380235042593504381999858249345870665282655451319540056174808374288316615400191677014658983231056317778581528012134897153974354165792477165509595720467389082510616160589436296171246941813871670952668543167027676312342634234890394341111118922327805246860188985393718189549363935187959362849108568975380319025873706969904655042169044326390989056295427924789509116097344724648310308156907128287235160238622086519481752084127144642821428584388240603809647574643433271617200547845232711739232722142514808158246738979787618919516631732130308149295624563970897802663945978114261880016161025730175985565202631929344068629216272378274890270493784666857200700355853669752442571206101697507331626461127971776305012197341043324040052812877521488437810921091547025434552723525385105312688489091660491280726473201662014625268590246272797005706587386617226946401637644765953234091548945329219235192762167822600457255370388442021701820248283131420678316472890631527941655108396104836139325452652149715667918302949068945920502033908925717637707867416246369059230240885377571238912862447163433678657659609438692745009776191436135031480919959740478258140185255189093313042136156651265405775537761371952455860886816645451156910649307487732909383611612741222820016251585584535635879773151867339330632047323708230850585337698121149734524362189897038325507029840660264843832431669514021392742144286927635369992526362786459950847449974398757474245179206487628239541539709601263210344935996564417613156869529784871511332538236276244132341070145244633816660951003682265582492761845523833917030646772608012655391398429291366540602000700980072490936619294495625674732205064337228243072130296125364159985921435467426971300984514916416399589557247586473590664537010645075778378921386717106663488214538897649429031834011661864848861762072459538160095817149814093806677971260328722475672938049717486916877062567963060568938128413919589630224200841777164116925734514595192698538576349919853309516633094979437134411899805930738156821605449918684329561376212569940991304065475657989561874637285272263097499250449123809689300859194123916342826191392542369095708376738691769849839131724422687416282448420804605771181843207156603429120260439422743338505348014914433589004772724549109801875687321129632953695688404041757057893519468653418058241691783140513445120625643801276494808522596904694958793809739982372922849111065301190391210954171880113546999746810916605497420592478155705185071017911827576614236201846956201632488045585494036459560168535975527211768365187497577741179632995674929148318342153250297517970599309652137683756067444526916791934101606238146237124979302096743309845123468901564248275322703161274717433261143920998785496862840883635986116742266490488353866781416583615322610025329505200698642692205805918329199670806135083053280871151205141386862402754015259047829564193089604804706127729842346006650074079104615218317179707661646692717912517179340635330094537095103022625019881459982959751685643180403358293224748691192410728718594092642565747282980353750631103228270059088493012047430449027497294107791154821095173373906093984068356175951297657319394423250593807214932958140617946935832474904393658898837885668889269781859618524079902909608495030075087045884621345977748391370398897010392496309549537146191931561008129346462794812053180758007813967934332992641077124145815941643555248151400972113686108993006706604084585090775798850686755768678279275428902258686805109343147847756782819369023386547054476414490005750537009821637712958726776445444094181397364159291199913040267587095877316605927389151966545121590197829236272980605022552952279786229700936440541181187343218525497835593962112483717461378462632584265581026815711633704572489431317428260820021030969055487738287244319712046612438524885784455124837546099788892621909541461132341706087126309243650122220291940789327008134266899425965857680557501999600860286265582358289136738074691166422918513598890036469956008035586032374029337055909093661746815974090325910758429054789819978206177430597016749950411866284592137750055770770313738484669880752603154003710966614983346672318404806063930877576438056277062947329211922224328699618669199772031603384327200242988645772096999046060782892572304544976019069752570066023891742189780390166164183087127158158949736267887074190597079079857998307880436517120572657811118827523457822476540979707940508763299958361091857986052005463955147490567026684585023779515269576194559857919681936463995110950380226671981383227749019837879761063744006329228213598347584897424691132033780516071698595911139605325731959510214475031691681953574057427750221597060670454961971301145880424884750181075134469306641838637356817317209844847452856537643456225217189256788482648174729849360853995681756081069871754954285283529118347667782548224433082493188885952827456393022024126918428206602350222161595186704000864166567243927133797366410470454055750843679259655744694022625466993998635806093179168432454522760965205180670109503365219445177448399857976341631385717108214461564364759410577886251920456232566020677603337093049572472011280534457627378222416935226455065929404679484492066177151870853298051147063282030124431015110882787800101408149105912751664684449708032616915060264270551459572233685215128650461166830002594785953145472587644029777877375209511840835226014380057212048541541173571828408786261163934222278911833407797055656640645273813768436659459283993023466183050240263713020520958718485472262280806880602243581560997331067621165365213876162558084367044135039464399477622936800080973182484577986228625769835682592451675348755962753071904486432492110270184604252591476138687881167334627572610648177425152367817816988266958192084873037369706710438647493386886021928351154385163792424139580930403373645680375796413154897356037116564069888328135866392840722355817714074022830252237134847308483101170683684721240988411484634951353750942702942327407334256207779105440011614600108177682003640728316247872609800493979369705165211868993146001242218161637002389591864919950040117180134838496881103126775778081807788298946306933131236856821212220652300350359646991242403334603138615093062483907013508883540457266430171484670964336915714168986452557284099549133298015875278685251144132110637289860362883099556284832254989124766873028921878919574855349898385043707119286427643842167550749227638994569344663415513848519222035800170445312976888490444788496195152761373828474582010670250888624356983997570998223597435814351954383420920719768424540561278636672623845252970799789367901398418443216563961872026736676000911363745041826903459417702724869233879409303956772467485492175447895461373405583427207436746537289400674464874606235995278114167972614128955916693232556548949123912872095641316667895586537579931747560283880909388181578651151467842182568495919543160677408831585047109585122698198929397025802644277739644578217431247041646000310808906928158254224877851363130830571734062242890541931078296937317388328748826079943612831487031897525225086457263588797210060186597374937518562320352370585692432813286190236821022182940229356291023743004767249404821903138145413969638939102691036770454508819815808122230651228913202940157763578053899299210939141531344160163735543390496414776670331971704633096938423645450658413251401460698237907806130646776577894503026814144991818800494702847481695728248802109388073069072709443782361834355249372883554110313870149307563050216825963938745652121752620146859033476003132036181923539186948965607630739420243720320729863688663646310076408775800924399359266016016692853128693590450773824962583518428370843606054952949903779358178956378758867786854627038075419559609371200899018146164549000704190806655252834930359955502981557678079589966485751752527496081467136303645313508068772309399654637195824785763435280680639828730380135935139963952354824043431333220988797846271200173205548104958607399012867821216663179700191181962630998762023537789494672768602068475964862842518933367726439912797101400236647632390352013413569419913595837287016857379696417905259921160728918725347118500653533242892168411686777052642403140550655332969666935676973518046107487955262636480615749147148756453533573977299044785588988625988739042269653456614535708447600825659471295806312082787574036178922085736286653362241111631619646088577977310269799473687990366392201220741401831331882812036821089286325181135856602583872629217211946519492458797408359606134910349170376678349733951656230069304199694008190272995119408478676962131387254095769348061241714229655740924346450483313064287234837624038014767487299560347618399423828098079923244888496397457565885961364765683486264703581367690780275954673220698298892089745000776416420229410454337544065944818314003582584241613939549102810131038042028910433025161596339053741245948963331472564629420511661272451456780599841051555464664505601868349050601659941975543148211643028165311097074345643001010203329137312017194816443942659521699618753125589567113249808688679416696558334787679963458788527072425269864262217820086264711844703420862567763413717267869776167591496438696248554725706467035062540671101657229593066020029607059754322740106053905688577736802204410821231010673098312053546298794399170508729561341806762960892841340662089853343737995309475565957707548219378763303158178037421335359838476517504064383208347292924682104922715735556299320166365351147934639014838249940857444155625811050780052843345786109798097590291040421234568054895231336635153311200350636852875643009073750847256543027964666256031018875547381284524872712443320725548240135638388035407751957171698189015530861745172161794471845035863127031775364636197228389184739386666825930797271893325523184915853468209280415330296177251367377708575746795354542097860779268650008320147647678186832919298386990061967020088348001300099319675267501482452685433080967536658193292786578196627653739463525090356518466871554458870641597290890631636806544142662709339393557699277682495438347761469128007436505475624203013961826471829338193298926478588729961903918546900525858417015200794791059098325476593348025723506390491477983282518302766281833279040430778714050487313051695041128975615663849003920854413411296070486300662016423095009191501783478495633762638993053033261046482231022719162388489641133251659184344949172252690945208928324017648343731935012301727031880882189376521840336735292735924405149087118150087061494440396871797470324091859481678767066450040806995924992791638261111958770849086119045389171884526628862828462517436500023296865810695965675304008423324194983960243275809642342300110115456115702582557501307354151081869214357025907515903358683275390302616222643423010613111668219635435663361799081239885577409374244342703492648939103386578246693547638404963519937912883083141892976204825534404879586602830363085218336609687997042649082405536146232457806426077255042874316613074094946296268767686083457651323867068094027020097688556324571950437772438149713712583529910981715585130813515245802541226787562899693899756714634809563978788437226677687661861717197859572450382819427387724774574300120964328153523588251459174102969414301677629558341698517683940906036457986903189434267486821974896134602836538328682067464985860105206179784740994316292077483554322689595211884802364317375722026787482623071051087913570546883861074332222326695028806351092832485720592600891509756500158199902547346190286631203454273910151185172253768943150775202879358151029372082981669347359689003803959873802663874601230714529319604633792113387163507789393963531799285218949590089413775781825103756745604881567977035288357205808803137059981929886859350247611464915904527710354796868566627391439491820591449852953364895760566212624484261447758534932879314421393208986749388911844952343641279949751662326776535852406881533585183614620324153836498116108525123823155611136419387032920136413239622697609541175043488789718616395442990601012111956159847615842258855688905934860781970956974595002390863452350350156174375071823836374041882385960843836705327627512008562291398951839373964669971829037865268665696554250933137378743532493939524265700560416157347750212931446552698405678039333431579568023850095860161365969921776591733023692134894283707853418645539700923651468554316142161338839054421993129946477992562582619925191514691804669481888321258422575584270753526486082480395885125672171051100475919115394405536623418344132869372595748015880743869012583856808328232714507688522779662613634422691765524006316415048578905475502824965621895977663295596956384064180794580229874387145587356305380905609225383332445632310302567039516235469890652598488733764477230135445182184241555824494411277288493780746844805024503546749488318030938778383709775581527505561792322636915530292622378249374256355293686579691028327880678599887925020384417918735432295044555490414355479584187260996507693711043071011613787089562088414509055610882438814452429187016228161786179786756506140251745092735232651049312667037764677085964646825378416926040706205590735302215755091161514026944970402267243801158015686226983873879284156847475371398855361338159819842219687937951436631489722704059007242988680585231099033411924628512146961701631291334184982766114679800770264344419515603721119308993617610646896148529318548177271171860118515894206609614527135597518820148813684453777964485848797640146791616172263520103188954707295911900270091562949768390457543715925442911600711947978453901315550997317105599337517188687842401363975439824022127622926320263680618336570280125084960834599203734468152177780423911463280729006856300365416025547874774857467626883740005951353883056347202394694776332403154755598167179014944718721087886915079961394827052794815548551063260112361792831670292066743776426396513685462059620544597697281831750849163944309506507395249268178092606979245938395007204529325938931204938202967862856322583398135337379470649851130328411347564914348478905889441748311891265954024010378964819845189012304781632102594557869378076200890812739474900751727067356150626472828143655511215441089661109637209394733066489252923685649055456771714074425920890792162305006625470065558835045360860911510708274263935950583130900496608755604034432523406052915821547878307723691097748430856085125174517042018680945061751870413997520411729661829889495109105441837094683405668318182168623025627231363200938811550215047068183269445835527931121112215640051399836594684011121711744900001359253245865482982475227164899870829644841277901866522809753969614455244425535107320256946165564775365574010697731014029852329803421778662077534665739313870691039929577490522761627523354052940932208061794137291930814740672414624002539879037830017137565795044120936439641187220997527510051938287681411871782279602128536287065495354479973398444952656118222513135488144781540177678197143890600376798488228827994406917225250931634618905060719820618417522009217989553661996578205718090442133892619550019720530115185232472614598355470937989474478459045486353614064839047790566504610461655532255835155731697778053193552636738434543354033188438816581565293021488104738697661681433842030896404565124304185482032134123972371900572523551308143470815081298007145555560898363700488082055783719958632738751562956478973627256517401257670221210115752374365412558783956295777858622786849052558848791972328142622624000894887521769369562596419185395321569601584370856169663734046348002071795961406760837052819483682626370361723926866100576277713991553120473643522450975683835644045883512295478400898570551676628183757565916643860058098551587910602944888797340874487360332753585594382134780535109023758948473735987956277477100375569291220712971148502764869265416692342558077797451701734236054403232138382112204927008666654353786154730930404748210581171023386106311411355688463609681297956828374015817504041959315972128117708986033485692166876999455166572345561568102985939990063789091468175314704211184612600438925829025852481698619326148395034877509848531413369679902700868834967243618209956238147492593373341396248411080400394587788129137885985716016326742615629475435256462843194174534156787099369308005685756684426818640905382383126219477886755076269514613387617670408649337989454191882282168316911756267711703460675770338553871669734832814673786597356835064660335882956131566230841343971318101502035304601350855462390389132330482435575218913056307839837404489450939634652116737645607892119300836684026759565281580827522941284383269906355639809245829976300926543793173685943722560921173015790531232700237616298171281479380628755801675243572996839761354364441804585998571861806430765504478673366067723856559006735549623004795667284061651188323782862682318231050873159796096691318794859670875184150584375095651967688961265948649114917279523253584849614535324192406614099394254582657409532470585009532011105488960915484411661407537166925310023114119734647223854287860206276731463562497872121937454595970671909042855629889011825503484943308722235371208676563762196969483694896262676628313692868638337144262161422091530660122698191099238048661706491023480489811315160988084421165590406363812332840870100655003563548009777125837535832513506777444077396086594806049941445380028955934573252276164200564703494191619344388782224093813376438160931439656123767429565261155528428988406693996853861116014690548063172459948198452930197605507317746919328424853641109630499600156010298640961787017699593032988981871319301924662335804882180995464168439945454019358087639794727226935011275363009006966455287375104180035132121833581100221361446518393910084110784169163469727337548312632464023372408156486118882131187945444804171332479344845766131225333193614886222560301436562204401794394526679048297304706575160209872837818299948293420881366965826113897634097765232203140004729507889190251076681364922038435252075058746877149038789679125948755519031281796484445875597318430979294790860443684776006177619310253987368842996579866007273485321100853436475044645339700107362431848994297846806874478143425008839095902363009947555753139275601899193058190425010976847681578973952865512127268562691496288010512259962993546749130942624657839948106935149338303924052204077227342929638830944642013452946049279729258515679484819205058693938474365932173736243214695766605119058429907599093090506572225241875224839048443299393626436236150965927889528621368763848845766886698580755834157442539509622076779848337014243890226854439857785949126674428784102132807730074671916823245145343951506419714102719993911907304093047909298437283068585451640223905414725214595174254667374750929972770652507016272583830019769433521046128380861933848282540611142889554080411126879183921432978935042879889947513551267696773468519328780258565871342736494359476499790439539403289320761173583646026356216562942587380492360356386797703183407361234248648557114888812210686175006836025418312934956827644832604228363693523304888039934023739326249361135996727160939559263509077116040869631572956766302459781110819747342962091808748218577054661918163079992119607967603820562637674544173755793351637661473240789392876759993652979213583221524356197544185251823745995947422840454744675516381194508979299240336197883441189524505855801285119645133195978676855508038302508174635241294523528082842782415657878512320582873558261234622076292439020244370648285413832033123329061874222832123815528876423696788153094519215185764276744350896528406639449459035976531354175309039476714561053725455311135402018379507619191758261404861505710334382470342466852797174742896428046614656123164253233029031368772954395959679984311868687919372027617969158004790722176393171901120692318930591140255184578371202362748034355864314583283940713298651811088274572085808913734832424589207029803160400765947166682272776422580077698780513642164418525059236505119781510182609617333829518708424146573997121743912990923576157302003639656222898166833854001632457278455255472163806806915249967486201113109120582570255760744226244331216986837727093041318599442037137296183426675028149950111038935407602214872060016332921887771476177713259363840598620057673124765658168896204071840516732619782783550080398452858918405634664084751329791544904280798974175026666117987788869761657912166484626526182814724566872797875352919559623218374906696908032273022392581436832941429501527561141305040463263824331448590254136879570964792411969009519576470591121403707445212729479252942809285068350368425347218941706642831909936104647860655911367982889276684177468521113168753292043006893801955065789507424968761654797850138634527670994422648259040442456430787120854108317385760177917380587120572446734128013501979514088167165537339537679509331341307044815874772194942508363792437578530319794605530432757370731903165634310647746030035667160498707021316833970292002031053833586660268308510479863282640038894052668016832290225159436492145951989289868831971497643937051494423472134249988849895792939233789536870396262357930507260189930259093606959791964663176335316988961771691734015605022414624437992857090803220889904422801750483702475652202030048228469041393078402285477218172858206352913811190724382550378182439405492365544622787544647530304897923154159611809917510737369796979997771668579215032283731629102431465394561859884346730841249340369488561603121364915926549814104719380241711414593554943504625105696930831695261938112684251797248089150479518349710265655565196232390112579694206258425261629980860386509193311021709575843112504712356510910005678919737206498186862162177001241423878022697712048469167045344683982880641246139312735967372810688488211378016690061751928156797950976582765504560614640173222059394439676256091839490580618645129108658313737545647816678388842967601949381834272882988654590983761135558064361365757359056511076985836551699340044450845981712131525838065611027516624878984050249589237138472301603761260316489043949387035088793658754991705672041658070425630154132818144370846251302888758146357737994553909335164501984868715652414424281188589205698224611213066157729012526673193286147864349627393269482180104456427312745204353437460301587465131566963342482281522588613543997881495266474969597233029294573935931354022963017131614405228706276559459823012095292260354390542478210257359012767086053091968813176061982190979192083215181544787232806174129745025385972209885800299094455142171011712856534091469698953442193186632989333831067353336301545163280348453536522556699735525228916388479430598637425735044355989218882055924138172874215448952537325087435831349173653468437680870657351436798037853283301035109446585150286049455599339395682446524597777742714147178090542113734031425414132092606144224676289246028930561867842730529398757725900794993524953473898516012161271476555158618073578964975958099345216747876792274218965760230616067516637069650932518421379559388717068517733788704129843599496743712552732961289858878856866336428485557037956338886795483828262716969032747502947040875765337800479771059864610062827288322526245314744188140293716959307952072904439027937553992242179757900775020322080967292202084134852074796434783442615415923959561517438862517670849745351395628579677656025753905099304799603934942042757440242069559275672445213764895065115721591712063091034580597755689972147726940486549140650296934942013655609168033002696969959127267160052103020492721360713195015599397407391093543283360078447099727119704041768327468376763336467000874618398346009857090911556006208777879895007544265672584906316854822063937008626891156612165564611832157666130571760800789675633085716392791138746593998184417405239023306948970520636776023979910999398401331134495660315959243320067738078911592817425827884608449446041144983681076887813065728973748354755366379834775432708169341290809418341195194372258329452227333211043962742463488569717643140617169428780809199900682702615352344345905448567044467495725337311297132013706717573036209212169361638691039112865516766101209633961937303668547903638542320666374195490135633621345602201511210308829253150740087421960133745757205345947372673736936860024186604679939023124540149841492394852158201315986975789099159611139643586769502690012859494332601861377425716352447627532554116664715449508604579162011242992883962356348804303908528443765898556327973226011419321240379907483497556240800244548614062874359786119639394729565367235451024844293452952149881393236192716091836808604586225815836159348707025944884924102641467169481448445414623654743443138113913747900149910677595352222336043909832539272533187416820978642109649976700985826388800780790632953765496872636090597013922707483399171768176241885999390637445181444712210677243756489845876248445864224689162692724035025294019407181278298786816141615010106960848938795577650848694181666941318802254510883236677252939627521716792715726447186928961284713762711855151553242292056061607072941404453026702669134527726698540805635695656935189507879549300773042568818126738134955171907023362959095599752657702265852402138126972655258320525918229736779007496126975415857982097454395970568159879624578658995937021454876933807724826980089036415673728340696864610375492299106383901056101482842742026259125697801160210356368970683970781648161959597570834955064397156114433875834876725900330991051895635624723021758486905696496220338187031735717300585985837825540205368288487684897205655681940709850690082588114546239819461989942602772202631318306767949800355939540697841019603472930350301610392095234270186298801215512659102591767434980743093357862063588587661199185916149998134413528875675368908948131170515701996255575984937101914157027950770598570726337358363431669902273780218479415211938435379526793296608581468720715116366331973868739299942178444142826377075861717451989620824842564640966448085785509191809626073118188921862416170692573147161591625696490966596159618813996008072080321223956031413741669018056427320210572572757252251369709810613681199527425725608442598308569372724106854581347666201368343344081327291666277526039411941931134163590933491784733927463774976142695035168563097058069661120162329679218080704766816105467798212791392215515067335280362786410105911424684783573820980838032825796800575735429602819901518938973103416788388648097682281346628866836187814213515847774108100014856767955346558859003718415522205283433941457092980472905018778859219132301936663206030891582041489077930846168817651255115365474019262717372381187589317725707663348723452007133668413870515574844005302904187053868203838386249400732749431144101885623336756979109563782025429042163077193222487311384093198491706396224680581520266368799648113747065703413583632149399624736252918478853184908588784977648397381498708025884337532999493541949792268111225404033389376777019556395827014132765991729032086143720092879626793286050451532118444940012118187673781231893870745126186370331375038911249913426081396432690365110265223799743700292740412394520994968399305890326842065661460050443688898920079464324309467592983490382069347775636790911153464854939049431571710165220147368554326553272215336578380247076008143131248013342259454776193865860266552309995700732605125664131761848392916547115295278230052664197519263333099689636059532642824222697164456847473478913005048083041181587985123385555374874437530573309945451792517053496357319821958095712580510323048214977459861864149705506277162217721382334917111626588001986024425830522219503196498638463053097833872945355188491980842861444608424045042323393914338145049759900337867331002498130133389554856473292261658883360807912814956956945229316716572247763314948358834863916160557234004963578681964798819818142289740361054975664221708271469924071860745567286701545846267336386181386109237090924471751351660579568926354320019109633196765544033254813918521265206468696812542691721751568898664872261742683674156215022411693072030088374769014951354706831575520866041301307462543190371547761475328022123854267873571367127868327518063311491433055675376897907392717219687609926541744818533189642757797957969978882528150089130959463593882580655215542027967423347208280206254565563845525806218364350734606663069577280894273098687313999225971610696041899464855075813808662946259616970464237137289086182785813645067684080255781723037747488588436084590933289936821994649331982633693564522288040137786583140711012934016440877148537471931335269838672411365447533234982809372445646766859107845891675035944049802812199711865719125717631138818689280498942284787118046167528665950231088354534960325526202995979970374174642610673694936412632149634069526806409237314611934562445804790255459273602322144938515513486537948113051607092039823190465416332681709662388798415711214949405784031136188422198249655731191547302509404387738217772331875795787755562902062533516358836596472909064598100217593270615605321561189779088082282842465299117237281450318655537224560192732117989407975852190774440401689587742877297507152746046874870502282100959782549582492949633693665664012169985571047879138282078471718072617429621449784328447571356833235061852779850013975742410401363980357747323382347369442255579892865507118677379172656081575662375184800217153870187688620459524552534065781891445281428150532067258092766124648942375400594746436421761253840399497528873875445799675911302820301079822015194726177391082846017670169002185051964928507300161656210586760983892368980881566417348319717197035706045721599304846820524586804031330798220532941188009495488547171138182627336733436103171506364571469252393323986404086885386508606009990173670700668126293553067715268096544004278759730414516913745582165029565285956102315150987827951609418501893830883631584708895128881169108339340083773636311034455562440578691313691175251106590953332619763069995400241994747711324926558138671817627950488272775350463980882096597181314548114887478667148264895690761061351666335801266323348816399969107819872111438149263014814056490362271779425795321535688389383189330363034365102630819157410704340674559120791376021225948878276347341729041725723212784900633624674056435854122316518146794486399820768912134548589712769062883460259110645623421598456686288858216175059352192068436986312705769802374531396564142750124371859716739083112281745969815659065184507540551068250142040610966088108448328708037496637002721956969442264194283409129146287505025323700893598305416234684245978303292441645232217492603254495475878811505725448662678055534368176218003581658248253004633534763877254633953039845224681600228285044598063586087279987338300027130799032034240514668784551117620729255366155262127292434397309534624783924518487568345293482410004046199724079245850590357801410952372210242483816156920430864906200938901677637906978333351943331676860082677300815276948559889936402733436131460589718560235113874712949996877582579420868185119469438740620218516299388496722872581926464310899737027390828789249354407667986494907790588138391022244557681989907122535891446875063437994550303702310743375880873949490610802241494990453222340448492915328268309170016997400956213954333274403836875407858198893778907802147368035731713456831525424603952957201708118405867455048033619309994857111287524142982816632106209191753951976185004268482292874182127801577997834836345264798746368418164024619917996612067518638753994337052922593153570382043328471515607788904670104810988174926924560011584778548708978671222099744360225245975797552477080164255219004244396094724748854118993840913963894761391230833863399842297604158266264414743766243229141818042722254371977035995913944268626936870382768535137380392124777867836643330842238350677625021713978481326886799673049349822556210969660897508469544781882940303525055624970002480552200397164270594180914108910396542473092366713758499948686223331088072952996945223538717049698986136751592244843328618876697652701576891165396474375196219018345972002734652928962285980933578407935638015535404106394401035602767891970443224956862149302010490962433289715042451802436421277729961641157514554286794604014283199602795740884797032976577703128811622020621516741180766028014172191592958568085278797352097349403844213149566488270576024767462806098313975778492171608283834085054214850377586038959222309695921880499104553164096053414204330705029305059830739221771570993566077123632436182523189078165348809152152823706152946741094023454609666202062099330152951516447092618053008704054606175706377898945498256776804910915877331234362940534596058646485820260010064551942564062097915814411718808020995503409042541248596480306263607284720726296411051326974599773601017961027250817553553725105790792422686046749552682765761506003649508958404231494573740552722796666555622225149462012319934109815575472179865391525337569975404328459522209876537434048131114536242210286805640309751697534822081036499626334273428033638183225493740678020125072450658095034340438577452064544431384436538950030105875306826510795177637619498116971721695271558544457776231235783193960426988832422147256598015220645848976021537694744113228158068186724505444705408661138175134577830441275158834275443402055022798387539413025147053110954727378294089647781280678607612381635668148928211769324950058722143529077504834837781540310678002201996877841418340590141277358475344755655211203510609838452910486263981408051311104585430411687170485976830405983602949474982382007596247780417925394544538627678097496348515405164662769833595117409792752230833463074066895140443185710331063030842030815275169402360970823732289501371161158820914158394582210361346693863065978534830846441161559042674778615506506022578847231808300388380735678691514548449641929292004399613388485771010767193194281630167012476691733882237467501195950832492542249962727277297423097491139081285123074196654669783649381145021654545158321150392778894156840013374368482105015564473929817822525060939593594491932544761253674384895764676321959254577828678888780405538119477087345746821370104451027528666393450406509761911439091689802438312882381982816723792304218625625976696132791362502996316250671185243405125690681630714339779016263176780090038569728957443478921617164493347310886672550414202825866192626405620831047307208938651564259976312804602122405367572919296552467399044641231191719997456064111085092076877503510561441977358343841559447454525522883715994675220290949710940321614954366659061682781484190437829343973371091571602000278489298614059022791550663058595559641032162074770026678799983132300213488092017920966768142831950128352082145566072074449904070248587643245134311324510454547516065774934661857696007114609297119115742505368504288733248311780174374116349126885484611511396264932153103837821772607628036917494400932442532047886345332681690572962722895337511664614756344793185254671505907562295604265218519179884833710722867510287171805336935087217579261559918974191733887705830391864239067184545145859338822343866387536806150244779086015078325729108154461348708300478331306162686099644084163077659017238126277126277516684962639698694957972339108419811935692222962302265619124642106946061917030732419518738374933168274619773804273632408562690827368639294135435923861939128284262389886849135169925388097422613155481483610854339822940270503415865111181476934163217511499150798379005496565343391628152287591480750353252356934084457773269735323647710819403925183429794279078913446167922735930435863560514465738228701975994803211717545095428912930792106225412048952169284959495147754029702324517284358602982904231972392220044152673312835289232021496049228885013612626085672194274571958713784783912757180570831306919729629066176303755097454447029716649459393617473795972289285509340562788694558597908311823018857372835457391564046375319577663795771031196157924019822388886909052538619845397196151787883964093339503424111040925270563451517991078866893550222514658237117522775002035731131853553454585778796626028586683733529334329300092496630299594162448725459419081871210122603103998001552034806650518956620600439071325937257034146088273319879446829660507123727706505901051589955766168637989848490770099314002088143731405941339255551566737968859071973069030482480301299575164827966453823606104823105407592981695109499259341695224259637936637375255564580522135947051522264604171641084891181632561631742773339479311811407881979947514343215728244573258609764824124829218145105142613583183459820273848327117275960376987040021447269393217155219605295485348895385755152766074828499407454591887526825392283697149125996366478586466563614610836321265264152563979624511137271368606758460634164559707702010289723094895993462803892870097485423492354162461307251550066568832097559762915979878587059849404818840030618331541466439606579825698786014775906735394346677722737747844653741528976348131469593142890708513414471608311057851635202577760479977844861309812625548046326899017977878404198462443138238368123208298436652665014350450957612354781535133885288404744345834042241852675388917080912914036922110654595000071160721424062005089322633369193138755725587884882383280407984592946494395102413756539064779021445442527541332194247609035911992137459044769614859366728486036696671612286238933502632087896326731741878154390343593503598737737866854994170439135083554268369961374147380067248067516942767047235237238151298762069024055915010458300988885986232725175346964271240689462625758027339784674976998614402635653188963264919612047274659606751896174517414768797012389436685069236709656932769695178575969093538728017546411393970972115917871765318518941251801315415191329590672513429641457921164734384760009035569691392730256228936775739170760063669280420500937188027599777163803711709104898307399987939015939329322079422891850681505622226852636694003366797610195325042320393090276011072261483983966280328278491159935761174573248203105230431749292934057378272320778496639804663340803522133083441754333136802691190887946729918110494525211170146374878342521494826401749926929097405663220440950563334634656716596871730801686544913695377585645954039971605353314406431559633713322324330153302984826071632825316086916857091932570192107555170665619192444386888468292141199765124493589405374797399940022673491148627413936866335805537027832162405769023312019184182180471710495569624437005059152209441957856438226772215352256697655959436438157735303163029280196303241525919163896230714099451618268362010073047229372458478582678908174562120613015029260909604530601939222407507334757152740859056688195882087635936692661686960447953520802148786376994663652177156354847296867403209583623258132586938304559753172799163048786466289134190051389431983536836962758688972057330008240735436835064431899369080826091654026512596443722941249631561722965582125816889424720339388802610051481207360503165063898335992781706472986299151130438300957313445611514263049329970328185281701584913428403377154200935811924624404246600057847581097974621211155512026021540266728326768664975287205326662830912859862191477175097525064640353964297701015643377118730133465945246740436421011473912463368674244964400711538072325528674818048037478965144418026673021845013624273439578767658710649091529865162811555596883352194298108062155170414144455904164184620861548856916887945969464055675981598145744620515597067710126337649918628358504363136647225184382398497501252951257348914623127109709237480448177066572974381815823730731718662361119881047768476164471101027750535977706709375844598619157488572260127234005107515998214681815507375289891865377533541642444344253665543845319596493300346398950538803598184508156425432752587978058388790008085060120991513889092783611048427407882887001045121593711746540678144115648404131195985140289683649451954424065414158411839006746551247831913109367887242331190075417549142183872707865367679129903256000511893947895417545377579784187785222108175472985015811318027542484917564772215894801025951438633585558594590456090065329515895535448067424892175154072853555024481935655557651601044335082090251199717319369342511862196001535351407698659321967858221599503252191390236392269483206733560936654269692240619090442133401465356932989713641784577607614829581342511639632456955924582006953710937800191992815525176657189603871303649093683151477110412704236574831193573336142838826445074630570152283424203475386496004199044276144077783893995245136583968900476855766293143636409770368220212735144115115908578101989200883966832755906441802962563409107669055276683693371074406888201320781877165109983798000233377849631011568154523722246342136893485691864797217718741356723901796863864211629626363106363947072071733797235565314795552773934804729422087230018662255589790438611366315194482069550000692923395884299846997261155814858285620212607679299205216781704872881552459717997048610110390514472874844789216005572255342492507742890008577893675345701018933050810601992738050785376677799652399875566437696748685170535412079473454841611487346138886692385294446537510115227682726833811008269227436447774690401377107372320702094500793446679746597188426356361740768937629160202252879506780102720847764997541917391119984090247204923563681869116679946376062359546173076755345667429259198753196759200673578429597932129046074352690460517246125014229917831224720020094263024050638292564061347742270755044167571906003485561056512473153925486112035685313728021288598949561620869951851986466898626785811642571095725819748076771923037206991036508205366489441968779961906312080795106934869356756923278045612153255540652935060995242545354494134800403633723677587341103595525910603261020187580056721241770552819783033868313816401289637499406838201635595424431643206882476494160491051180793362242802705438189806652042398672859130797238947222433684562602841012369169193697277710764573739280252536959987268386470689069576746652891521765484545150071768349553842364266994120054708171676676328924327700284493752870288911063737806258486882790133024190877239960504251717006954663084603778054447370751310470846874915147258150532869021622272863485888596654526597861777848829218781015016152920851329108840095881536751584666479698911346719980587913864848483286494596332354482322763062321052162914379274337614346869766851903742349631486235570507016224655678407134556519781609646799481429548251505736648220179042789938280136615537033912200699500214589212079756585523334135268013751784645849184433120341145279652031022878653416116182758589991335851885132935622397830527069124268433771750877236245527786534383735932204091352945710515269921341200123298882367248502658594638577969067433206264278811400317051695154907457103162655997412026836867938010669376204373109505606665195753942986115065433159687404622886011871258907612930789074684331006137283676310384460219697014218629811435694027101575082146368248183467973192137438103034805763443132043853693930714300557924245393999232965734780537458149192269223757639042124292036063077807005419552521759196196268885859680715664788310896699148486374122722066556443566364524347997753332584764115502361568921462637885354855125842478626760127871002496944667603404320559667752724740985758873323871782824555797570260299691914889676736710204557492948731337453181333224383867247740160375689358610988449037390320184594142870671201671285362753874693018950820052995266416485776819873202116490385134268749581149155522505651242521277422596432585119146975084125564364563428499827096848159513582288131574644714076382513409873422235037543161193003180372686040439824127115418487656661791106393582877266391073233595012790168188966208807248384975967737088293581228740837704056830410993124311292848586852159597044183628644298972055588025502251150900890987496343609955369332535838826320371479710485804234832447256175986375343350758038163272172919135206888320534601842611210364218569730050568063286890814250916112812861022253293780995677970735059609382638347325831478429937679919690576760990221634031071424876366081393859583240840850709132674826541594699404634526376607485407231031626040514116050006340973457895869983124578374829598843937536771643410030290531470848319416394828203094583197484582180994907163188310952314378010128643623942723660224658516773717325310642193934392450679613935545759832590477880756680204941461198705051053999671169448070578677880354032841490575232689647682941680365920223352022183051609830970059391065108405649767742958896684367575757944798042011686152967035741350587059160824494709555364334834239896719884595311679958353869648272502467659237813973331695791041150055843508876271178880281949560681080611855871477023489857018220418739317568862357013712018308537307746091584405654945541387557832403749550956938716153754029470967894537949178066977151670090371682463164108001235764185867501309790428640883480455922315825454912640592146248749505546027895917654891658259296097011479135732851019964945959193185816933034191608788883372554554647046794704261988940363054067859583284131723713037643530725753974600608518711897493109880403370666190498839688826252522887534349452876300638743662377486494290711217214380418880533773285546476587120266318805463389585784532158269847321858549164606334060973494213184891405715788132742588958141165549809437133621322087245128279878164515415762568510533444133569884754449477017925753765256145298545275345481341754309231164390605468696676524876273725767540014533451701845936887639659674295791946853636869043135785434384124565692264925503150240862159855285721841857479097065127636495701691846365234449356408239569150903713983847351510648382783278694226521792023445987633356841064779518058168483555148975122151854738922753671812533022174465412495649525356054299042239053305628944060468039724991127188986474172832620001010677482555674471583917607084184598263062826210353631656260183773306328274218238081852107433995340243229318310827208802386014102576501274678067927286720180078809253122898797341842274255841962858760585244026533435452782514543096997970000817646166054950655959409615938869224413685718167812796120612531852415678678336751116729410036132168850983325125941209995096733879441233938832565389095848576095387189253704028519650696238792687724164057142608908695970372624528430039544450969582648026176987634514936057276398796018483531765454276306684137532111254156996472564633228269196631350719886942315536250758725196947701101950642579450194650664111748002388364916821942935721216657643567815003406485243886013409122620441335797668486134271368684662920664807467256045625829435774402081968947021273047395062303382035061701493941931404318749910884157335935974867401297664740307461203133144530306265218437091373989127973547712253645037683617909061911798261951139546304083992325646290615854105364548426050087120543354061885269530592179577370412428233485610369963378366456202471460413107399408306209114772351721510357100615263186269003873026507759392644080723849053653793965423969085901517732823422665683060928736884395287485215527890899654978241433965821177072333772299953448063716081756562913607866719788761878504830235443630866520150118046173354677875046271010444793123836641120872412952789620161516630947898464875135803092574074701931090639039943480153558911136208891659559617961774034091808725506441418042568918483328624688499415532576794949619672005678624161493782271299999996956642652860638983194192130739427364865245416288379683249099562706887364858615871841131289128619624671463427530193233202828049178825763483711940491486848192889737907470865996746296813029590127578768395448135661295288834259080939743585110777486303622751683764435141051031743508733030616787115680657768056571035258597874965153611433251566560876600127404131840120534552486588724684160528782717290245646576631323456877774783504181753720382592818736758323329763932347311162068269596479626613268555135756163524047118381343014762177898503928218977785500871973173959693854198490527122133879151318935284502293711219738770341952541889955318242588454278389867804704381338437372314138104960650212793866315657359981616850770151995806610977965267368058351482352148839474210535383958879467172535763520129080506220966757264968466999624343356027502491302618967519587162894997336038917890391625549828538984160303480412085768868310254971731907297579784653607124340625966566113343664989448582633686767071738166008503441327210693004979248166517167332279982572942371548074484842531242565572587348152934001951933936203596443652624256990786366996669425175364401347428950340587209134915234538942747711917578011548676629147781316585562349435704871727505179259675418319953114748161626408107660848224168034257254955935865021167557259750309504174886050932744765288574616810536041515573949725796265391311297709053093868258253613141864973608142101728829366885156565616721593610939331706825320780646453687241479226259891939239598113087253788952602771608060850760049948255124854312224549067119476776293727618160875005882850387005126374465014717074255416754293237572425000829061158366738425514313913758192529481230803696611198994151294362070878321950335698304034116945873338505394783856481347388252457160742304867574118342270856119347327157331142951372907506202852966208226962458860801340164705404866318217942730239219975464263323194715693169393128492301310357974878077489124171638314935509203494062028297199956098809918548127751664758669171851678831190708376055346152766125727371800588944471324561263740122103168843118838307908192551080215863628998318438114625742372067761171278864642257978997203103224686229062032742514365235848114124182002387369710505135000260052938755363058328078918158709885152010121012288263985556999779131729650909885355132284353902647515146977826747854750563242519870296844783939009382133487919902861630031960952715904324648896932849706789486015762118945508229009678583604275471173647738431695623710515001827731722800076762055165663728288768354242343095719530268570055700413909130232744661591430000722652245259237520738310226479620281275976877691368129606190286021416108838245231195207387552663026313171540718713772121040725061120304396756155965456838051898375611644277613394367483180033195929248973789933810617457202402304454704041103810360503766939282510618601918386314492274601279879294724543669697140137744161677216219566038569905842429111882716448781544185910248960094842341955298977808586692938160618094176837980277783867250995808831966177750863963828322121684323556004112624186636308146314738624638481772649341001514954214410964569938405624040107480499332499151876710963873204119398691527861696983701534212650114411489154251461547290704877626187918635725755192460040611483549218289021575397321376276658269151808690974087162872813473300691819663959144866401883664997852487832733525481201638872326650320977699910629044847874333769507646447636533976245301850946498047762408691478745380808525000032435509583471933177670094407913808479556783448297511745721558140041501998334293796261155539528368058079991427303783188987242529843603722578117055439323592722253903703177176895575036829786683701057063867713524488135999894111394653464542860726483534238965750347900614474908422969674015006014130771648304169006249153229847718872061336340488519417731553835324273035613542849604105805966360147189370218734096263764502044871255452758510285971585925155048791189932911384439792761415621785087422933222980868720442282910964378753403380723198430127793006645580600805481361371172172274668072075588398731612578038352321617410344272146989975814547907713243271529231040928749699404254089393741880360886863555165634302495897543951098961558273208079008687552347429037875121214007865799925389850060756251339410013795969760278089064739893741154035506961801216029004533559524436390189985943841207887817498892436142696124410971200464623513521166369699907462191905828017692911837978452187295220176326260419999160604347997778895455078823470191641783781473267895437948624490117906637476238595331754138589204994643351907043883153709540795748346451326567210833993844909390652357015268515442712564129920335117209688975213968156639058915443575302779305119644578915032842576361055304258190072721763358266541172939146472953449065380855493528514336498657263252744937251752022390827403555639333196337313463082690592296674944348320428840386993531797513274337395929625652992715982494559491107854139351232127802834158693515065620686670848607194465227443924611727014126750793158589489598772612312794024208074467182394897568468005713557969754701601586575386411269682740529283567636491239040051974309420937446780791296725621407628312758978965956070565207226774184476231402024481544665397853371278790361073075400442558106058904427545019599438919225061249474546348534302990236060533089901383289362693968694657620593768685456654131901487173409021225235719560893425258540205783981270482710421827954230040505914556517236244365031792485700814471118360394772646692745672011186093744668175460235341856712116358916851704948586061380184395236811112210713790370661751881861941799650965300051165916184380998264177290660735618217004209435542445977425279595825036597210367321381846811849409118275063480635601847532072384163747468199100285121091134117467052107331987542424429407509268401952824361843862757339983613288357929393725137954408904876963289651184612497542204075154909815957653068237267634950223735890240764841330796746478228372596480438965085341851758334051796344315034383296326982425750975888497251357875784277291910989254155973816068561274272344576486382160016276664740473292841541422946930480332612696599550616154247858442459507199495717272386199760888172966306845254524507470845396382764476229985460685498973340795112725596783066169803843518344918987573560846015798409237683920682225317175485008392792299837077120536216554384651924515710654108446380986102255117988755089769914713914918084297938269204566858058978098978075565048424859442749083298662781929877434548384172516685279462675711522092743581355672681272371451500218290817828867316676434577614938705944312598379500380215515806723425109073348067880946064635228866287045824620690826444719691483396447276140174757862627184916535949088457631544264055256275674988690944971517781337522543700406702119537591726140539133979699524558756249703041660203870136522013293949172038277809822078900365791539393369154089874137654288363852464335868700093175497530999152095166563038691377094611119143018336832093763018808011199107348960456839923192215497535168281821201245073620814915944877179021318348157682300104910939647248375139129679296879620282033130186896431549467240350825263809362706716677639650225033391073417875083731785337816249985773423256730123026478204051160345564825365868743507457937470637201078301660768746903527196515747750757399754754235997542789263973410200178756797854005234013157907682991991024659313054348653148338148867452860543248992335563637208986262472914004697489306792714840966229924352043646648784480098854397174000010531308221570829178218385140227177092440658269768654550754578859387129757750410500657890508428437198425180181683041919410448730413770798173621098962530349564316803923054129339949752876461975344959046439258133719175103572447624933069063268049691386942846350676901218287070727039636290568755336269934193307700325363499235493204707464138652079804859394803887045055489682483385801834448923230491271507992064873354158252211080019117760940009989139792986406240860992422431826481964841942654669204137223627213971654207496659751738297469690641689804153515462334936203190549605727842122098564429033571231207746573780189373065492820089757738138756376877151213819090702985694805978887805623409726203466302539493957826767820118823811956301074807133223287209778051602413743736115204390734985511394030140160717130566823034199568973841770165499533113461438769964090844478451933130873529763558649795108895040884005797864089946141243772714724113352732407543506064620111823643770712871254595225312568189039097104952074840778445437162458877013130554557276149387277461252040005338549123267268488801440814548551591240438872033173155943759323602705035661434931416063146843394163009046818439660503070687685444196909249680641724426980006871866284951170417676611756669945209074371244424304133811000734057575785240216168207737791421048897314516873629200633656758699531068850742865600454579282120788886555173450828319580300701938648269667911979678895178375166266785028266638944736935032643375537846231402931181930863082145652710627474419916825701272102265109881943658380449868631988706273312972830839511872225931469081300919918989270705598914002557267494322505434586506161014465324980700763776772370486987725252131504592621639196821539975978513359570852078877166144091537855770073876994918442555838137237837961249521993454594495671155960537934302060597686627868718339992992496623244334061949857721571501981496975991985234857544148184785396666359451093443458715741697602039791864216865323971734608685343533619525527244806190836367958095350676055981704492429226832765520905733848977328860745711622378578038847186971561815623644949852178323653999312253803256259788916219123940748880552719209456380097726570717353830898495300096618645404116568205460143731807809706898087928056779156593224097741969408791088516526623041463896902806914127411090830224715177777649389818572799278145212705615641961121176027388411674818144579732002128222820531308132117290224685044034143405600548940312446790585616549166457364436489062899586377259658686268470195714893256934934373643587494981544262495329693891239466712370121293592134106109746893041560604321935277813050127567913309145042380097188536983531482603434271083536697616528359367049686188479393439848992380752695247199862298748360967901947839953854335866500737127496611277965205503544050859383439682930663745995326415710771058656287268430961588459341939999547875633673599559097536926087501896918942368017653514356509768809501612108908500934923378577907699273516396238549730200053908521045818428408358228710290033861226560730567878660446121729669928777129617554458103850395715855703305912127922825293851893326767171722302035037807655358951771807452629530033237642847424271260956048878797479514666556499908771143139100180667079465155672369194764374573922714983355715437040729907724873452676793988697086627631487985914270479434184541722033870250492630727727379283191745899338239367488670353050406565389245038761181509372240475137849366466397849136686743045113025721280190609568739014014567684913444595107506447577506334159520466717143048156461549092048303608587064765933919509029283118734698899406021824607790778184872318486858804372587785409468398681786659279115337434546656468887375005849313803937402333892053391392836615720102267108020363787171343634487427963609646483629094183649049069221485212126985809429423764140375716870725990747069067741684472949996573789549369096241812307853854738585829599670328529901659676315191524662282296642687902658954637994849089961153099769542434890840674159279254071804542101664667215163692313664821667999542587166637575068064909798637519922216244368599570581926751446250179899926449825454617226975218870676804654508074797348928694411491301595187354026306569285443841356046476946346506610785276465139652088593788530090944844239304609095893667880840527580873890485649286296621823421186242265609127713105080320572622684409046308558249358193242228711739142185710531550951050896226764119069989727348764659762641481237176631545747815791441827564107718339865968187767866768820481868934333445101785819482920321910961046940218089408162766350220893947412063434931424465636211553218122734320143720160160777382292580176920377418455999564458211443426407238984996831049149055472745479443221938187474412424489991119035129046175719929053261516673227597129403560730297697398124259242220781498087883970671116379527335698524606247976904752404764895406524662589789905574342487098355315964188377491569087684525674877827776371830387061296318681752704954074093010949802083033583972419597665151985617266648547861669774703120537869073498682642478301095499339307840102758208378375165505367284487883885323575203385325012623293464779108529131114138712648825752203829816146407316282836938774496532550730667513349015653266907703701431074761472933287924128333023294612530121866718249949119737628305183082170125622283161487289088949925230314776472569153395896710015587836557112434671167835203182594572622497469359610455291971283874998282804992964174451381873638454368438720082939743224272932383995503174333575502930147111768927170610220942541290815428772203612682981764513105755913655312199738371759521921443544662656440650445362131334670376793604576827525346632795366852588228936238989163072526545355620944810005553016452204243040940122562939244682250964165968425768579160304196217503477731493861151386152232221316602730865405554211411253796285322461300262494217397506330639489944223847672386740738096417875027935399570203547390473164414168464206022371557358851143591894461092740562723818252087134138067576002837800855830904701709068864137071545377635170988522846281137864359699392740437158571513241426868949414978566738871553575419339901886129152845512448143695543205893429345372820490907910797492550402511177137076427316125607175376571874240768009646300879455815283682236111103170076531886404269280573049720705845420426624046799302699351327031519288079140799476934465707398693401753096011539282627107764958218401722656200990224020281433250378728415735407118501383457694240982105188224376780357802997500325488621208225917386641071805862534909894439230483629854641353370839361789177018340242069448623115949865471991358558147849276552379570326389767744364453094610882357570852807932523851617745498208963142015543156160575661548675929038277451057270714402117910424416900582629783762307856398337966447578088889259044666248870346029274099538535994656997466204323702756516047108140397644353233836613449552396395091034214039821314978413434480085300791613673239699943029817991422423394492029962365584035799459000354247991938408913748769206650940521726261979723408548449266091801860810319590282782609576198430089070830396223817488281073969793111827466207467845698271356633030838040480582855877464116444025443001324005471913739861885907416372481506339349269189301868353090876731432421775911809323227542629907234733949534043890679227019973062687951838229926523264022856842522574145815654368407775317136492538325606025586528724626211133097851219920499213457138036906265794470116140585540409695059023212384984606876407387922492429306722730925453464119409413576794842554371975899840460513002443154282453317708262355797803752704631495369947919311188409817173033837051584986056021882182745481311080100443124948519900286603783981869656402699398845386405582311358877592308916010481226127194140752281953538275319619835795117475672150126760338484256037511348781002086477760370885588605824168819960478060420764713881933461482213272838479021885892457531656554370919907110410189959755311857653502990716113506815939369852276138689854926080757583450062774499450646713962040485445177440971248803169635486389687636893851449298287180189368785102264353967119911883853113918398699600031101902122134166649485586014187939290032200961011553327287008620781985999278256455827302356637227059713135384752011613802933401099229923172385978603382946308476650011171215160775562500452616592179297357366636387630091245174936781874902605467766152191827972161940821270636614880951659054366926994055614606972468336340349688303653633423560827809110691877262651751939488905323191385119099959514708884925716574023729510397549210827579329566107999531210041959248271587028524361779530010341220756348496773559540114210782977046881001448858114078510770461275429197774946453434957945811589958739493564618088250430890564691428495179641867665897922266035353646262728099779365165691194048486809541500674460737942414086069352070744688855272838050786491273131053878454417644149525727778115234719735545265739639520437481244447924405270561457748825374745779475998309160044075255568282881987647480081470993866315131309483165107587855942302089238986208132703860096502511578638140465145783617403680221894470818785046035690298994120440831883371598640358101911953262980852490273116599269321069505427047474250932763729305136527891070478599772886986410499133777651398787307376646116440668761969884339723366543746716279454296838715874231062888024846813883074785267770104338285340520596169439639740571077208537532799244544958315824452342311182089350136359890552928147055012087498160605295619804723072341773066973030816046081886036597352555658414057561505044841643174050018413000803733088393703795165346135842852537970909273969300178285784989653220565330518387422985951486820464842086413915565239145330848741471716668292698207942799805277191250209616192163314070313998475922891685692052579557848916617967067481348035527530076895017650501666860016384527181556101096738743171589292833081332084947276710947220109551419203044906141943035387655268674020549780931438645449091557909110171407630171435055327425861715382381549952916140628269115288992530573570217263848168371132194087571462674122716851185707639511560905394067009967171276006002331448960748832300648707142288819738991657879542864382296224123702086184324073866485095550005799306458650058854010631706422768804936959157048097027008137276073951799285258428181866554254368275882063092379374932061725696075921903096195862720008815925395326005078813393240662019927385906207117701634583377208701667288071511078200326139459415152710578962402983859806449079445107967390738806848239285049053961107098995730977665067084532661248073178242949478822926992935757135895033929211265399221248229606680569357643511776686582516883196041456591982807193087003800549633308339503824957906364630776715344286758430428714544894384549429855135708554364560702517188704333405747191083840072699658926240617860146726115887012639930721714717654588049767889343365032365215197345158580954259307826217836436897583716916488779895498495188018403976875172624635963865948028575005535786585934479668666415041873388990767616322237221377733478497156267630174843864233865834622401025385704181045412651559053335557145809868812253315895977701314152219274875998605918760046232208706871531638231467539229602472719619402466389765880598571337808261589253972282376441634744978675043987429162617155247460186346547745113925039497957367560570899661388144703496642284306849326161897440865388879175423608466271521507918483076905729340041271966389722411722922070351152016206098537691223680583745903186869524750062112696254106647817448238631433831714211038876083899818969445416140153879193857181225080487756712512176060090959449317885522267768640620093610583276945580998498266696065690081680696112273626667924707388325456074159409156155633485583476868462553409307218227862237266830118326659383886008033672562953136858273195844010579842392098566682177419872907188547181932807800987859902389181583498025145403947596751935880516850552051396110317092138623189137424928102092448237345129528140278693196276431394856456904380291727493728683584166067929366827598786104735612753097443009565437682071574310168353558261420945243869318769466090731068169265373013401540613112470934120869834614336490156799823726814717328994247706439175155514145320460019686911780032021046497689005121162008453804357035279329762501561169178525025956499700013883484387380270840609147481656143762112483426332223823387929207789489073626970082482666670511423872394800484464862412174145484833287888837113048987236248905270120357796633927354067274112821403215293754008409103105412624348775234039759702915685050191714313577230003589975077669340518697629221933499534021808643089489081091805159761257267002853103065986321151234786631126358787684398923595028049230778810240779561491606417779961421810336567096050492035415869646470230555628967163750772942786599654631257785777685299255433752361498166246548027140618753459575111416823885356658198741944301733028562621801923468168282868724874014752038597834711179193325881787111321162756181066694283406129101781889913998778950747935900405053585431660791856752884810125154592979279781608210714597268340255884262265128249655032732859546513567913261605096654727135184253534941333741157537113644487057843656432268088420522378255547047305320149041885649277489828602873445852095010151534105309239579186962307264552828965072052592751744451122303893190320166010768939551874891638718319648370727133864379180509635873339370312791991147623451169729813398298782763110801968891205159394920979588860228898975772373205750012927547326320092900962019800378877034075378892004178772144313211512422866174783748112784869127955560651068809201074562632584937239521549192724243642168640985280528761909669571968738152515531957277647401969078399284230846341381111684070491672926385665389360733894174456872582749056874258678482863373811454127688874067991988259406657771011586698409625908830006918167656065570244272318841300384307384517971448662868982892692273075503714450268267839241972996023897561538930760589830560910386382584168023351415997133079031544662321175696943473088977037446306810029971378131213921088755494959707671335585556062385520429528597937631941263385046359427107479317561619218980784482405886605996946353740969740501076389769715253955494910058570090681128241349181826648450234000797664467512425782784719292603093681834507971402647521094207726172904630237807445207729920793130528492191615593713327781346026602292123565500491427146809685444325583171142291539481870744815498099392028126361940212951449990271988031022227487792590407912672545760279819941354861111821606187136336326730834502160138573475539951029249504000566927065878451619499603183128984088812316779732039603015841887828780454666274002215033504684777452915209659912638390776209450126861108111574081506682633884830954586060188059478155515573771664281924129419479539161161009069550327576287660791105013160426487642660469233952324101600529267671892881427260904501889609703189075756318151330150981366592523490603666449291250630570638060703120770453060600686505754623061504936909884115906959516020948305750280240742424154797329209814615802682452057874536433819822561065015778878794679467273246109550600148329781989737922502859733339282948784328808594206246989335036793859570194248017994454012936522909946420153547042957661519954270176395807261577559731507456925138614198650531248121143047678902253277655923206686394390100006828411454539925025495171623358583614170979937180499733142479789164629007376796483699126579522474324673135768650370246615725333339994196932330641519899125888439249450994640975675003110403335535395984634891817255656458901028053621846308399815376692500265116566694489899089650395309058442645628550061762777638539577527741695822687990196719099524008561156275374078075962381914983065183193903222982351337702536617379409528681673776470685472272498905499521959060874930413030165545967266642515474589126047340978890070535066545630775946253813441405753685140090653797728079285135351625936996598276943258875848876672938077818795941435408383445010107821028655695807176958989111365398810448356422005051502027445129344104144062164902674294939640557730967713478969375329991154432312477064082136316631892685875998937632315984773001294023920919671057112095791346869280726097084332595826399310913131794855335103758008157721969189703075657691094287442517485930401193670550873804632683364349591401575886310421059881944120447192330896286261799477306565050773393156529260441076770647348961134499977094307388250125507013542716099067297033184302510424096795381089335981418125841912217421989637665544265393205202786046950225523354070728129029929574650054968295640280051274473673386778488339160191324216048077281855688428106980489407375338890579480336858147988710688327284065338318000130507749961506561875824514008487229010002057813448760278358184807778254208140189120109246434732846065323516856973265940981811051835590461525829272179645590403158503248507966925658796927852312720674574509882919062380478484530668399948865519876912129355867774307468274777836573858321278706831110676818096072504499402667467761808987428411168067617404739097731309108809690213283824285826866048635091809519162318183328075635012809266197629500773729822365657120329424420288644612913243089677506867683522757482183726050812291694852083090215969130354676472201000691212864206825037204121524680412907310950635123241361482256411910989363277217990637271818575105070710831047248833081230092217207455292590120509656562901755267054443943310104630449034533226033456450575320032428745143823009749336539933634040270376278092277385281141433899413124334829322785128801795610116139343367154667774503872263242430343653999047336531890425045747858148062001738338284038023412020315590746223562650123605510526337212567960953444436826353236808628494464783125916914893659542561412367220706141282568505603180776804037590181009339169487076460780424894421074579465962656160331402273675068461168923182074549477292312321970480678534615294714514869709253327600358593382676765071637633072059599309049046584334828213701479158309936132201568173583825458177212044230652347532886206240676513635432109747055846978792590692595132329982866061204077162747356951947719661031229654669255715157010022868107270804553099853540625735353187323244957860147551010392402006169115519201227044497821308260476849377865108918464604694332914390270369722002432486721085558716128477091225845917098752506961742943878149864324570740614965024412445365014485280048351758876598861822555635694278679238143568359084759431616991234824485161276238393988478353967379460364494015903822134230034383327602206795187773024028982783294960334799780866386854638683848721543067604666964237506170656621996202535868518756169250644042662669571282898774747781917600724562454195441086029095548281769126338304928701178720742159412189034467199327366315785963106392640730617969111685709261933089054230443464742375657487674549178144687305860844858685367694409515730630746243749797688630463750557964138520249485829599039767083549061938295312629541191790513016692568800881817199618493492713997192276862250917998036316124135185778325815058431592328864473759054257676445478629723774819509124148772922002948196784953164549080593525164498525960770638998115484586241328691628113676201298390193005325258193746215918436324187062125971913032015552564697722985365522836148894844909905974085766917773542458530572581973973146761062804879951385213422334774864528438987979474963712160374817322141927283315524842194043348381934612699762577372424533715809154717763185603787608643332831564482872341656585168036249810979400182003167159433755549723129607263531855379370179605342549898325605186870106893531054626319931065325317657507276596687666803125725157336844255046369054408824836178729872101402584844802992829972335209363917670975353748206810117339780913027606887809881621912665990182359573595895805051458025277293595777552680318547206500383872210839212102378719858756421223431112698420252984118516158891750738592400661981854284411615283190335692222574052863856595931158364881183060013283363695632785496129855876579982520865398373648566012574432807545689169148932899290718340923854743337649995107314468447582824752479003622977073551749108772714147650637366263313343881631554169290499164895853820061812228218094590104450019605533305790114911775289754894756318937253274721994905897598145191455550165965596182094755501734225839792841534717711376531411556462021251933623702739501117322953121663525403457957169618902728553241820529924109263724004121029830372332255261486627130386781979156289873827210961328590150704948412579328478407973635294765129322649761304164667220538585167742273742367108906029200515408213806469172177194363961579993161112192486160314524529606534318945855312995192590533182445613662158004456819549824850036588555800690620593813468059153028380411629121963064692807872780601343301266395813807104274346116000794078973116641412095126843054578341964519820961814460287053652063772194377060783354802088334381929847987029174091932517299787025048632526858791568795506722943152614770114418931735100203921550452403513324921145099563550164895210556531782779832479023424992625365639431948695317914653329095546099894587188591307732739057192578601492963749732071345114995193387523107919811424972389601822212826051968967676239552610357087864498843077228394931018948323841783137470050535662453966265997309193400793182700895887254823918816745632272178405618453325996282496397708010623761623192527099841706583652333618605365702060409478318146191646634229870275484031944185967170886268065025555081788358639463513368085570913905204304740741242931713346687882175148026221245359003697256460082309648795212654159004411114109497760916775944444433317593191586706175929379277790429524190457478845515356243338795689622856239407580853804560005131903931380891586872723275875351744036759780128399677197767709834721530863961431321616109819258287314073578206769878798648019372602332558443851069965326474963968656034416634936748875933003692323112032232824062479378924263085844118787235300981082901578531222077705169927293472321375722727368488358192092802745860328671203960720445539508381319192421893690036678049698379963260941308103964611454538594450481079109352718298371051439296418297272862276170561675321928789087832476232615815572311611729865515814712258329573369854540070996001450107149457898072972256729108728842830625845059238746072245764810002340825577447479996532075804971007080079695735909273528038079237040433220055182518001872346595747808116089095091472947265724338860528992650292171350102474835898101931122565217114410262629155010490820800850297908157429343513882629709161502289845648293276419358712069983228008306899445135677677033126013108038034458141009429462224401593793500860224055556398422764420277989298070150969020149009813289427458409957860786964839964260283255081845597908548508993067684832949350526158381811678547360712168752038853945674508592661900722078134621071049059287838886648528280003151749872361447757111438102892125046312192169750652583868406059248817378336396359774289827929460050492228074752203912637168638909043513388322235493728857353830890968643786280645386349324558892218376249190367733661606084018377250559210311252968528601850785700976607892338266953623051045988469978028573910452901771132447798523932213359407777550094706903067947871014964540760378995631598525385806463391831757267074775112153028807859658668506618505602769393242655923286655156710055893226511904750934486616036608254290625180085512091689467921270617983723645619496656786600749066858776987287042616933599321685161731477395403867998215549483961954943201396681392313961396694536434639975349478739698110491318897290968836431153462724768696905838693062836738169567907294416904982108016855174290473154736465981320088909974734017353316038791639488003511731325602895054596915215930056334979784306463075988793491616581662174925323104562560955378285063341371538855675896007585735652018285019156459765813700527277439510980841195453405669712511642501387321969876457697721526880899414615669574832360047867052153764871328186826303955923137626120715549788577920500746631450374121316096608709048149185175428074885665843763445220701922529052841331907967991948667445676369548728416258484230880501884965277725148698584338940442866272770969159509183988606760447591949292301295346172889860193663591076749293396844195021079782937612785779258959844809177595543608703423261660861789890824871722122435101594173323094466383368215021382516341957155281660356697026874529421932159968262010410997127493165309915506845243747199036715653104541336389293880072146523063653958800574030090024784318495639740821807232140196871583759663587343527071857851780019826939728508534233871249826381701025513822460630821763914531233625905768525130325260429478088398434726216646259417443634528285137138310298503659971614988177410357337396910335457248014596441064452245523937989166076226332843354251268180700917414589242215036213844880460207847316013859776456061935556770763872306444988060452115637923167065269234529400664459359539291298489271391024615982465330882986636818129040882872246996782016196470921147871230651986102020942970496927499381579059752861271509698780238824099330536744417257400228900645627221639801197611109556032731810069902272746084830474498292463808991128834868556469991867567730715142287829503192426734836877933832832288032439337909474533924713604253256402257544581791233179588872540354666593413500700641257304746670755083460397573195820417017632604485135689136450628516897404879690667493547988185598048937760254080741708245068940714141184557812379474978844326899803505297364993694337805907922951683128143527999529221891711590058045936337743890495007827651987405510682829958078724262919384329483865180069696658384639199037106596270677828883091705378570256117437928793440989159772973966028426474619807836911457996914799420965814571763063491464169289451369420950414784233976518635267030183275504687190544550372817766828696578550962315565845645020970517145329545904658802204059842287808816147152804465035297684744280787983412623793527382921586444781028168398914777704025102677176358126870095895683463777944975413618574013262679232643694506216121213188041124597898122681130067052933067494445815850494824400856625105810603668076690860090497902607870172862801018467532597684399153884349624347366771273520200330326854866031845113797872199600981970699526240072410396489956254215737258086623999503000553451653575292173596407026395170823074018049173991798908636529326654680161879334603116578099201604258154022194599226721356927331983522070029511688970286791745955933632769150333112184371275710131945425594345820597354620826512349618303792356761697310085256428709639892973816527458052809274791631026472072246391915191423766949987169854725125283609152813389043684221318265240880643011609624545144542440571525690729648231159918611828747532836735139333045974671142545049427409444232619689401695292957771318488880710159306773094263553497546072529341798767671747400770318558144777382178839484917953377079337895725964731391588051914820797890707667761693425287920958120857034387557747702991729322110147743553357533029537314143082767612156225111977227732439750568709707659022154231823892555859074886765868273285074347844930719003233584084468559868430286989658926563653416492922734439773842525540887895843330895536236085126789815523200550218374969805169200147838397685868598283357725844131719057436627070880668156291056722383666507375609895502513612742193600777709830162263461011492581168746961298245065586229168530556393131505045933942278491080814330402078141408199518207376880969628339176101544159938434916800888260243455304278630148226108655075012105024446462791033143062506745975675317757012233299999615651495779405227516611035679055021929456612879474688584919457643348368076879289469763409842173579525509023822016068220565936916449376870325636829145674844632197614582687712026339741301668433614948624152464144007268633082238298379460688589240318541003653112295509955174193518831532558953757920824080923549710552738083018542121434336895334116155108383139704895341117986947512115651405429866835658881038223834985129765572760415394582546080311582829718130216867462055540754985707843809052007928312039480996616241707571561862110788881857349956129980352338569705853913747327872056281020717206634490228115387121428944148065376867968214602128297568518921508884586877830290685830323443501160819189247127966674389397924959532703747528519044940878729931732014012780542413778121364787691745146262747186115896196104745288228026647655855845986372841375330843516831134564447176200804198311436429437189356204815163047633537970200382133905381219472501966591798575072632880881559465351124318558891924856939368033037616867928554885113088063001560050275135563952449640417118526512928499306243686300087026179323431926898361936336102994142238938056717395680576480733181281593238647285761506080311139596734291048084241342249316039070611181304948749300804095833342323028202366941062645247027284187857481951040731464038706026994321312442404533381283955671333184111670563338952860776729502832468861400936287509717659164127128157734853606425289733209525122668466010824518389085169232139278198628925450931603166526771077385557191414005459149816374638931813798494236489582022918580582118575459753388730039341280123774387525915957583785201008826611735336619616565947233710224237310391762261979590921128107491904776838673442783521774983244414757620856487705457706376083243763547690003019861409878487342587303071513807345578709040438700605374803851535994036286552245342646699200877232071087216700499497657458572185007365886534285093319642788362129084632214743038358274252149876241102011588083946775276215770180128798582439453980913197064732100631492950326905078873474251909373821473793926988872598221925898009502281399983893120630210664755758174337593819700656226569809790487755840289662463104346275954898513459663585979044549620643019113123000598448649668912640201707335224954359211307175394270677522077665275405839215565120206574402031009348770588852865663021575729451443732222864152492097037468242845386764061373129196596218563965721236907365820450978205982553460540534706760098825429287829106739142745205217205852649293798997212864330663511118443039460955696281914117668491590506866968780895650593709659920397893875015095310154315038069909303541444068202400029102863677111980204677560864308558764438551249990354114132508423730306691704534767934079399653179846959667652977492681297903798805237587203590534030922657867985474517384930663057888954457497927193492052452568852498481564785514824381797635172972847016755039082825943506993450399736029532796494933293584160947872172232931661631843746315103610981076957252894410904440496641750049002155355213930300181874932478915606967545469844255588812121780036881184492331629947863621487096527101421544980357004141237901004527260427382033653941311676081769727031855240602289425762312722822752939391362602383271325344879436847335999489088401045010880145098740330875493915535437341047531143157693181082222384492709473717723620374177851111492410894935850788982260776676610889176025206005849676065606444645739066716595069405938878023702300543112589853956182841067113667469932685882454176340825508744133978912708030022655316579499501091112330066070775510411402430742458589622232946421410587594853241699601806313066472213927324258122074845810061874353023774017247439717975005483567602833423310874440319871154610915864021998955986997270931840586235524163283345064802128069006533866109348268842521364220129704317133051500632326184607238698806119237483182771640516078637842585895354236934428492132314739069643645815839628276667972969189832185584956580640753007930119014114324007144600802576758299207890277894081821790711283857803814205815395266668060855973802744750543600723063878806088688542962054513550329900822058943317461372283360460850421177579163806005157807932738775225358395130748984038782829576634465251479979628329703055566861880344001300468374416208494884097828735541093003975364275196499942780730389463252792283636411782713865803193733990988909794074279652277679064512786882552634810276809392841372531981406211951157234108552317463006419785662156395152275364840685508310841397884681682236539046432428099006752931298356801739500653298135288713012480612498643400049771536068408950098023736800333126455896836940326290427352553354377367662401492488420342949932410480554114796241407631042547399158968634005012667889519966779782077629663441536474257436710122566540797387666700864879917705814729876766953293518714238456944408542363932166227531171095381627563545835547670175246673212207357443442053612634690608221886911700062894406791118573228849202443876585068879570899084766921931027875418665283083858453837458013465042093616049349332732324863860254021883858754222115836172815123934128888655981296027138165740755091421340293466341635943299792715781809444356615846450292331746398015958633455273009653222692696584720590122651751178919547503961367569001131074981489039357280878633607970495182121191217651041758207996632170915717243303295004813126005652968039413531165981160581247503147206260302728849678674215587477015791707696409061322100148522154208711186230237458497787601227022024953381602178517916237722788294978844815133629527331679332235314311688016263791681754028841426506303989131271090168371487930288444969736236590793168828054949100942650416314905956050971381255293352105130706737122512273342391299523302953809724519295186453072269338534039100650961428159469646477145205318162469377328568166576115173061162352121561292947106647481778985541224354617118710212914656669866054958761955832207090588785092955414983841653574831267348034926287221772708501672440238209543576038029070669727252329663623415954750918975969123069738441575406283021764624080159005789543702897477903425758287109468783508244423703341923546744731446230868646205924003814992217732145881790415836951906699121348252064453423808113621030725694485488466622762116211803132935459965992116930883400730583496132737984052640942542306847179628789446025959572570081593581929127579874206991580263957250707104753002995008470822866226918005077480261036059640801471325883073817001022090828631136624879299444193580370906352403735909826592359867018081598462250925567623481652699115711822571583613274983509549584561224398051576050747930074492962147315037580637066304563465080018293764454354684168895561676508172731332904828477734055265677039713994177960658410543302098251767751133657649246578528151730099587612547781547938295022460846756755799927005676706126786793679907208517162441505510972449059139137381833884725362866808260270075139589584182991683736928451089849051345635743245698447179710905461885001269610778107310420021256378328152040018969523996173475297631733800401177158558063030614691389372695194624887403868885294629294537225354288972268433111300224967889905333380853131729330165720765092552925707809833000753697573255334627258062204221772214994119776005450374472243880066139291650795042357516270118303083887393740648246058985754487619163148134734195526415079143924870405615784873022846481923874264843757789768595026330735633465197771848743091457726384977185837268127148363301774297280854169088327229195621818057457117434425253319226292769831383078095118481044919491409389879999981009129496881389929475057372775386494110625138330403141604802824488099195733652822520483750606645666781813939840478723633120469136144900539423842621840858433294948063620186937366639786285229527083094426842368869917129811811430584327072370566747299084483133660488494864109217817999382290096103066877480336730544581320163395064790692543136453529619558003861269824979812425620940002782064673572653432129893274927497992226517730357271643082296289800187921590287510797397832288025633494546488549247117264940399620157368056353838167787410128128112427798537089870789313649372360975421267490772452916997739293288328786434080146852100982664628404612333399912307883621873648364164410502384293519489282630247255722041389808937877237522489427887990315967766460359411035396205306993430290059461847981722753251035388371441056276489289582913183802587312358161949944372589389955145870409983944971552734295931357781550353398041070821853753137987445278238922163109304885183265356699155384817626947755311457345706818660196762511841556035645638057388065444293339658555032695643642645043546730178291906240783360100444085670690711175835533307075219578680062061560903167607311961706036925253971823098656298291790480735254996394633005508621046916867756616898350828571244864394989578446458973130059457709062041215533315618946884850764650147641497122219173131719882598984962299879815457167866636737688006290062407300535326120048485743907745364572831123134453405979283117149451218131651456631594351065444466300669395429585631344441098347598758622936844486419754908308519018637275412479879625664047607040873785863041082340582342543093851347918784310487510888109575816411064049381590190754822129931091203379515090319684727167061264668878647669861727419890178618007345473322213080947571024245153199502276327681623868016577582728831432346458387469270897191150068121791251406756674407096150806929996547163502589998148225209541866591563035351729574038291646582966009176838277201411807921929744168452424780936830057648142347699209539773640295032298593928725833362922381459546473646855685228062349183053587372513555255673508890076296727098206178876220790279571843271741230381887658109832273922737959858296170589454526919249584007384697473175229221351110853075720573855987896120996721412455284829346768937022500550772656598034789642923874429494807675780468976975920108378069300781725398119481934906335996817390469269804830579080970412242253357238884740156843274239504557562318235132297781304534808887398525061154581956701412922991975884654942410486927292409132237971575470484018522260152314014577590311583197257247276980431716378863104999625755634596031682321392931881238518013575828763943009102532256049911351081059882320407298541044768973383471150847115533654031716661275588432038398051554299182517117344282939674683929178301518573028990504020968333219057600291440664757043658144862490630664637093942067625832915919792698539665986586742268262873102914085220724711965127394312712323128167186654308509116972633217610772713676307328815563492391574103335999970557254335369912089456635838877234023362575277941407595233457393570536666440978462129594353509533125166138727636147981879484202900974625458053026632506243519917416824478092632164198341399713052373496171236931046795196820244767431336740499493462501259280455110614330603162780883722589592693405326672501137092674254774106585683725916408723011222421042761846969411582916399404073178255217641225255947136935670864337759550665714380185795342225715623752454493345998296666941255939731403398681440319598912029721340333684696251691820874298588589555190251426176759902564796878015173057379776118634209284957197177766874884333461110460244328916028476424613710248285290217201890922999689673194469376811753531999710857922135349261365051382953428407419477953347206514960002333478807470663169371060278419337261678686557538925163708396209389655423812686291624932492933598740979330819841010028663034440557325941788210798807840896136569877149700214486210254844777971194758185138531167010768924498880243701239830273411605976886246973771739960813554101634608562287713558343267434618417854953587768317736899241822339211393349851461373598577075192777105247890328257506645810427712123074904840176773688445027477328972699319220960132009551401002848177030785647699585629320611168911709852105977055503862998226533607858452618339706118920554280955664773343788792324011385595670353627246150477442124322659299355720847574858544655600547119505051783603509574541154476348431722631150644538378208386350808954327474225014467682312947640922514757199591242982666466401401243484731179908946578622278584168915705727082138372876787705722907275189189722562957510511408997420860934991986159755513088150315172028461445687327548661772271034762205613336413460775146553629923717161553317456878554119525486366446417023360578683406437281181669266620538692168945412233369731777861810193338798140142304911582989275898686599350680675474690453122289185294639937337076417659846773866402863785653334816877746232220335531129348328903473949100358917626687630771680377017960929279722693956318942550565416125115125190427483814038576363972879505305761654326718705664831689283830105712719503360683008840584425188496870793743828938824446003806554113056788192458314046556200554166204897380495836940825338780183186771404059819733866675030996245838271539974592589650101428980953005580432641390327491713610658626581513456242074526543476813488310427619577094072522093684738983969152111788757809987554828694631732753482889965556394873808506079626495346844527825390112032668934355536143929495479238701411783730657405868557711124530878570472163851330361585583990346157736417291843933109096438407667366534066542622203494100607592064510606114811299881374255547119405574773671159258241461064317501760712795316378332760167618575524269880143791542909447692868715394815294492302195355495019119673338073274426034056394339190972192000504583841389639679955004971413115789273887552165341016151124458628487142895029603949779971069289514092029238324029925878673502025760320340793158348943011029434069324104078398907377444770692102438694969597796504600126896384593503078355571791521028364354244365640268505557007959759138224739300153461245907491333395112307491365563244338633209994709612029238123665374363428009844783296823207106025299979481913330854558113279857163918254943883460423870984046707297809521447327763273659612701773487864704785590320503788042617181376664849638201062746091058648671925123497025399640342542393427890097744107930733646244759444375575653589630859818745178701157056054141623531201078659380440862178664322392008916605120766112572970673527767590867142140776338198533854438112715350393365816019820552767820371189062289243693327497618611283012325239968180280383935786471163559790053211110620112187564420560464993057910928394574162048340848117965614230260005774268401361622923582149960116251725476024005289411367866104090558095445940860133653901673221448408436047147453017244255101618982237137286310135727106986992500789732614059524587456790681227141587130002676042723873553231275409242522361373688566575103572116633814616309256685004833387871855907870144251436973691537617470233144114662872066637715233367760328625434729827243251515324164894806631536891903052536305473001593374417763345430956600628792086496544158469114948098566251035279877297596450424275640917628794461532143571205168644851977305932393604741289873059616939692641282623077953553874626568636289755625230051037155554698347989934078060543306164339797121149889432412130459202815463092109191519804869389902299391806759714240706839306531687473027265540256921162905772549252592715288199669384916947440992471462251536175031954131101859444333771956895354549151970188481475484944765831198679882119093540961626976730119765022048565721848736004403516582375936569026892964343799618623323989592777699056454400164961673567798257633407397408998328104563549878083961982660508368739647326933469910791107266212904445204993558589756306425229496518312398997918819362610176778572815144818296060660001778319468760875363571031465099640704637120260473592682828873327108574262436993522794558459298525909867996425559823105062777840037208095035785157372625650951546567103292539760621851594187146373979432617821775105589810471463382067391114475463707892575299060285968668331996857844431607241994617275217095808282427773810034243756599337769267337261299997881390354494594366330206115980788971932332435914936554361052963642964289049479497763487950236663723999189177495759151726846435258586160669271035682989489902737492821967158856953679959444819409082971429000949610810620666699986230828431335699353117540295441639235235618673835813495212799957739934410342843107536587793964890491269363022521156053644540647523827274915410309710251328726126798506848297489252118764572802221482330059936982325720552903662577913739658733554063115924496741257917657160434948509122221969688537388229174231872120222337436477947730141409741957760133676988397935783604886052694944082560573396134179660749058474088383270154271310808600299387289179460817949673750081822141441942349887756374339191836010588967190955796247037098183756338276411565772844594932170668253845575713588011702276306530779081164035754804148443950652162328516906770807386648677954475643300619458070223811042505218491035962252919067844939196790167146918882160552915823103295972385705165512048139907850262051605327306432512430556346471566249715387974984299005969663995055309188930097469995162851438883982488150516697823185268453521784527027703758723633826042726238882999979794119940618012345544577415477593647820741457181054326804706972314256791214652107361693745546970561225119964629750626302122514914253083925824600130157805693730814422425701711227986499242727517337304035684019946917399778910759287252636547787737598718193539007351665819505748889257350211911364359128791882200342302534467654458339391233200554459625703890965219760461740171129280140916105308161400905768191477300341333779091373012797768354225027495804182626096006874739386875295528991442680233649945958699768600058494605993136841289498711851910685240003676803500850228645214434521047010481022518251594879297426336785366229903549525108104928806372553784093196251240827866924749176540257548582835598262247495508262689823821659495837528668031533944742769333346914176005608175121441686365671814987092224262515711544120382178009945770656684834637271741865492365343408114638448196030855720815729818541578518026726667055554524987262048616893326160499517114161348733556297662583457660380422060587967495057596599450284287383437231007590824828561350244952276526314868239516668708231604523549023729926289174014721785411813367780415218889575758212968928991197102915783137566881760824283343018777035899605222919130253505991317296203483320528140874234885367841018603104121366703109691231649098573272727375496407009315972088616401248554669054267188370602027730480118092272488400810713223082563710342180615028737474767086139606261377787273194513488692352350055563879139402919410097205116727974847024610109167870362630747576486990949069613917264390774404516903391443370031620712814087105774212151339040376004143020778423168570257445932880450620595257919128127356794331436550186290996546512989019364669107740440972616995626175087331631099451735288182873307880256239339547603033708309581280195161799574514526954797106841042662136429497950340660436521073566436310316451434017018199208788648606782231499166242966223099045820785377376491872014412432222078485797556020877684366241305685082970561615580485101781270104240341696868120724525275343522821310553763912514498572314707903166572634517585950419989878105556977010174502430695681853426631397574495479996450035820479966437386163071767046313972504346653514252285043736159493995934463505150314715743606128180366848752066039339924231811822069937084126415916320086564659662680498657510133347697466213512916134963924681099737839900312529925124941792025811083897619918916813004809256352150172640780606885941860727184900460405211092697990861365706266762835965518132251241895402431066996814620989472039627930885276978931715214295730167770633797341493139862377788240948893120847905037317589422436810869848621450407943592996658051108097950505897364849023673310185543167231054145549456807014998746017533675520454028813392851788327173469856878544673855564843338542705812834912108974642843363284879555426222584675513179126485085168534762645678910486515272588652280518443295734535189820266398156631541335055832028882726126983788830811043694483742988173122587023610863491575330029010793827098905255044583137237885967929936898265222622745374177492875431985841542269029535561469778042390166736960637736536906815215103697160808853178450348316108022681951854313917293395569516081098501940384624857392837304205912439666313405806477841241000086589138706843735902593704087421783129241824572738454156668198340539737708995090419804417264089568701156999829091841178037698165910814396127581630010801714428905019154930494469496533755853349846429388877156499710572892765199208587134746343347051715978482813827664732114630684485381285197118497834644556161646885974100347596562931011729307542347637578900771406085393267902254451328680854675471809811288593552773605594077370488984231163954984067506655233253040957147357980866373680016935649204497937505121417982981464953397519011609804496956061503404990864734422973790574570855975536769032727294211736226460793765263311167279572733858995050380668670919508324374907155802893541691527228259827647354841999958576232056756247762875077786681958062213198420788690146751327199774384271295924082434817148444777709725410418172294749040965158072564537307144539297570108611168784156816786956077253046875238757052234842880052792644614805029829347190213383635081550897694845290780456668934596262182281950767636424171671493448446715961663276516299123321412258857313121465769500643068498038882818768570318503899606384904432882407514882741046911771967790073644027778346697051303999214166328744709732220702494410049488627063992779689274826267243642067781687150830028292363846138381541774928329404215505956246103563570272750027367758404723712302460222458571059883873598857061146690345884654149817108589336996128498616865644885045078358496875229577036944862801317664282695401878960816340871612909108983024224903462465935573248580378851000021517281304856877458409784783500796237083856508945033563290423758521232442814474214578641771238604609042247731086555706419232395511571669533071322653787418318196098192774999341861750585813041483952116256341815686194833691384172536116387378253096148802535009786396600951392204165642949209524039838425316800248635692297172948269612013784833958394289379852673789644905134518891624919541628690671008158608334076998400016678550373028874034264979118420470103799122729299242794329311006101605402745843773794951814527174928000940360255172563414939771102975328858536705839329967736685456356656875057908553995665472401876157104532912127196196391645585329030324002513839947322799845156212214293270374549293986392921706854145980777842909946806183083952862611674356483816812643018711423945382920190739631819618443207895553874311076504085866922810335369604128836277225139185328039486718191027647668004692157289676423920167125616889850661439873305982900847417663093075406111720907480355672052474547162086377157761381287649873855537956485199922387796576752578104190275795141001151430404270352341751261683109948205570828542273237602368361967262004144126672868813950560375807179926168689649237776817875850541233428380014934548366114227671132333951908997127511710673846276067341064208033349609253930368043516259336253292323087407577317999948812940148595054524630501767072563207642605951497805742758725335386302639621260012512797472318645738715362388421885828399256526926231086049919463831160273325649620325470001358982587059389848727643184187583681810068598693039801548813544926332239697018651713193007846643211494990797271386258591454552747306421225324601923189103136195401717417161651094235332735136235672319394695236399644416611453375145447818521468253615955276088171413495791586495812016061891459226733718772778923132872948955475964053550702619815816505597409441098098520158170194926345969733185632371623544144708096227081353048674772873965709441267784772387215768444187242604054477713675432799413732658918864912039240849520572432809929493170245520467529544173837975631997651717869864596664248804366604560435275702419395757410920565559573689078163784451657432493591427109836489357799797340636351882648707024281043683400299412436736725390481163782082933499309917454576720408142290794522361756901322706214733090227583810642782158872184140298478388620167894285953676681586021057025746616947620628989048395286749173198610156973025544082549879610356320875351587392896624685257690210792443480610072986132910251338079394249265810573903432392033103637761375844665785568762957425198351110256329075886402920682344576798607852079498214861138526953398056604157316343401061945177584066702585742425595560142096416957251770674960851465476164304154161120847234386442152764311890702340293927294295781598017635231761506190345112412942490605252624682515652431580678050533355821319941466426163202560661296153913709983510367800764154067109065348480496165469994075089364220640567182490529750829123164723100091581435084166451941604560402041307268879856119577892276910074346288357680657926252066278811690175364683665911295384118773279654643266722053464154807633582235817776078642403155631786579874978511273306008942699372849538041780459116299734843144952272807108562061817248203643542867631456413775199978557223180818695024926594134991541924025724249996697981019372855314960331202223975410946267013360905088225720279143769398166523082206272032333454985815216380528548152871217981650600515453002506829344932042543445828511916348028670383441823811747783241160969503449374039251200322499408718520295592228728026241255149731082741940823193218051506182368865266886584631288814636468090810292064410375211168158395505876018205303281448235986695816068515025569249367575051795358323676137204277432610692006849253872131697961978313410342611818693755903635311334163724064663164175934699720766672276784057048693435030641837718122193629574729428876618830091663824768219086936386820859147676160946528877653439645627864765958642855211577240133280051229401081209087963124018948864177800094343085181187240817571044410490978417418460872835618481607063951633784440559338571611562033777235394722363699754105544772168290790748184883334273355261878608286503739406823908424974187025598323234134043132222228202666431684305814625451363840839105176319995646221503646736257523496185356156301896009402709846911610106799029084144808137720902911575970192010740004086629082502428048911440752304067430474457994170670524322774412643407888240957391773909641295944930093974273721878723006630969881418511670303097672623623004371078732612876645052803628618175472308588776364251147628821356274704414547481608751175366442827171424190499605741044853876997593986614785467357581722422087299579503645474622794660040658150794501988542282543261362831200955347421564345508027223580977430348024683497971904370585895863767578534792289570421299776399245822960168804116358266082286127196675359115449003848709341827521531426507181561380615450648346089299547099268367860701893026241300362031042814427903942339089068118621155960948618400387404948001498880591204001588869728078271118189262227344864118135138315948749240433755207960533628577703206705353376648526396383783903931984430241800352201773613818084969913024279972622917774094439749977953625244069047289317744552253506508932617046989468417538853045478193438137559440543801986995391884291022066725257583376705480340031379414800110230917077815791744367893267891318737156978910009783218627714523362291813731697519902601426093588391162568760035150036765014943635211501999370838958684640284619676304103035229093084229140282986773874102776390006544196235754952711311586793420905945837679331427930778071259659951003428236491245417022703805479395069281596492137515380740198845800855869504121048104440453775754768135161490611939244896973093963686077627170101854149265496922020265977389155843493805943096917680251034719709443901190139168552638862044834998017264715209212170242404402298013478104477340631919080667289811913129806097375199882814660616865377307429011060734782176366598470039424137722589671072028657431997489124654822459454273540487490842605249785928984804661646103141560740103650532362595060892593669401508846308361769538048585382863789055806594457982415078062661293101292110674299246214361657193080167715606648462968544645340544151834320632995420695879662687403365712508231331163596133322829547558824474163451367194994216381439701588499375996653927159752198560668224538699365304486146371206114728937569622682250844441230578681715716280841512999189227127309394339337948537327024147408893407944972558801535929522415112585273044885353209407909266923380653709576802346021211364092488129491391716057561824163955102407484368381619838563786388802601740630053419700791566145767277638888664037653849674476730305560818295036769577833499010924202944421790581643516528816744816097098369001144010236108764829746005693051749008099369506770187498739532395688095340137511617339939668786740972824440388290942985282183176842937313363501030053879639136653237437767704258623238341383772916709755894344140988728635918149237032491232277660372558085149865608747130270452646904027542220002466134835050959334243260792585737695549976219458402004939712920771264028552938322650254384384263076811458131636688079315308694060898515196550416556966671604208444350327123421765755210306379299731321202420686676424852349936185176785659362473009710974778292358252216808445594471500172983263736074938722707055616824449571416886571647057594699239291975870345943375574505218311342384454902168850777356555769595277610653713321222666514992590211259613017367946652179865927458364118193837517155805751610769609228892417277202345208563813682639742403626063161162412934186780306634632441336254891071961710347904571880807873514097324216878084023548809564791060730291665592309208246982489294551769088314863489431083837402154188344084536819158736865253097177155317768741636893711608236881705683539524112917377535730040291083096546040782987255448557054976691058037097379266523155035677060322791155561205919243007884975220219946335969505430301251651770301051033480948898804937081827461966594416460929869671972193762415365524436068122197928214307028543426153675662010506816751915825549996505069341813627154318837595037677965365128128455822890516674258884409010068086130444837184246372096871746376897887660582841106928787489921397586212859930722557198441088274473493806922119704804356785620807308338955813968907014452579777785275820322094324207288739748183692842315914464875531223713696778702754570142057412545829474820022849415327867373833599624348013203763907495876183025147902909819698835335508489992572656276481784890378542419545421658387441965646804559716119798693272204688561937754339586816677049736000242496455246532644708629584364239084758955756244761106539896935255380393142017777411965621503108929197819167458925525014970630208914907211021342057311435440735094053658066899142379640744101427397895324595884378564352008296003729234540920466304928642261894221067038940875143334602384503497917551146693636305112559943881932619667427083012828228760189380778782979454875683468792713030172300806274584916242052880669184261676024752808826166304140807163898252469200261210037017932788491938680735661771334758622349267777196748418622549976029245579154971612854902967895640922904545284926871764439028185710812115927127382744735394541368055487033644003555413657811419916468447586108244599698600909767421244250700343540033125923495608816717497732828362000230459630403290557348607661496465856305819240300523638985619919623695803508642166687920088239972180863068249951931852411759706460811665941651449296624408564695903328382618652011112921725566410560444233529700797029480725311278858122097606317667533555451132868888452188981624850152176071222178210955332665996577076282233682522272694223220372365801741391936051815227080630070203864395696090261464267057882169079319405139031639862696332463247507823628299392038936074002422886605915095882529296932587111290370962860331416542585750054305194059302551932949470595582757902983137037475784479867688641975655450644576645453271716974526053080932709849718170789106450810723982346807374033272839510425922710543477798574778518643580915877569196415371917687606279188316187864354593397596269849214848583861915734326157375712271585924755633661687550003938504696224530348734901756132660414709701761390009995217885118025391934886804811219730841826340641619213097801878383110937527673572907825891451336585719858281105044308861313351907746118731213327880127049747428707158237894991515714773590470526936625369159801079444753472390419869472261532793399411969811375678167905834736460210263737126670758253776111151498551780727562425793687903083890718635860389769736865041547398740422295957563488416212154337706056201691039877638131094475410521518479574144197466453735819543596856545339692358386494849675766061043290815142087013530010030812461883219363885190483861526327652564967728578423491009142532011748959611294636300008642195801860837798928902649546993444234929503857911880323587803624441787026395285937108942779947545565915685266541769644415389821801548162341569624680276575267945403244944219218010580545668479296142110903080348150194335476951133985855188402682327202712397301606712288801680058112330890807484777320369276171543325238520185968698501615508375833528328773278800586353553347347143506327309386422478125562109706749520810404796865722912477678571885500308796641134605848968106537895344365419379564508035952090863559870311168966291101979423216614961544989233964267248529036885873253295052074157192607332136759075255385334789671977811542042234117789259446682988522010809365042537915095874645919498989629855383212221031419590593093105355986154349260984193537512626176400299953827118333985169680654569773404483019224905339536792547861998907567406159261040421370746201565841501136699763565763476209235661337846661833714468123539713822233158126988464076440660293581798666366914925347492795398344900133046953635369266970450973529546144634862676648511034741320710527247183427442586470233649684274226692309918467824941575313249097136793408239092502795418012427583718296530276231322278795414015322404247764681845179622519743214987911657760251520457423410504141819694240731606468104797547196755799667130621658056066263361628993019834445391327295919572446883554677260536389071225478974223098196976609739072587138489041343926817426754849789340867642768471529789425652993462667082544411490546868043242344747030706339948924712315494681952972656998262581053889598882135025428196627321371905248634734199550268328669779468385680727260543581157114486332922833335265017958306046791565032759730385937447993840894112048522952119567017427088007100676246146847939521472715247995277550709551325840906186157381781892026261931828819864160042859036336051501881515308367206310133986719506235625112224789733934385206433327432090222222589133931510378339561430862187830211459170502357549934839048861749250546309842949627609565932507412768633924957955011066152619212519471222578179416313738612034643727148992278838798091972801659694808062184412649942874486721081313475652994257972237161315470832026584619838178922452753650457531030203779248026317504585581508278055713017558644473082183748186383028192071761110209550932881977059546181181722153489833184907392698233855366920203060304324436544506095629490918958982551039204286951724756956161863735378889334612736872080272716944111233026264500541919883857589003130856230681440773110430519871658743864129808825766971281639675617507363440793561962330319148977686081541362988184917939069852443683713750937488412516319307495079483122113735875794116967919828199568762103555453907771075000629270334659364466540291527950022879210900737538111968616033014028121947602425348184978773480351581085818602711475353055529712679135990611514167944568752501264376290471836454869500720735297037734378524257694262872811743204933226207619607578684254258129474535899712448732880313000464838546087005244000046610542396783091900376111679208603277686168117526312427043705582870138082877985401955942268448604081541009675440369583818548453772924083353973978751063637237296290796199541397709925375192383630821749108212501248334153079190115539171093602123902001750529714468345825322644007753365264856652012138411103574706363466985418426362433501522092334341298135850206654589177872862699423458251099615649916929458171065412241779376014084632261502377115137027396711794458673377482969135169365113263194896011750189133284092723471924695005078238483973652732286928437941172029183018406541964135112208986882037395219788774403895153250281808455641463875525717989393925740515289468045382326570637905084212224706640877244739688330664310257346216440687518729011920170297620018185085210767286960738562276611296034308604101190178632784779476804725615105008489444874682267557377699967706378821511632873772893084793524806314203160560484045978592193168850888664078789508822754948881532502539838990601331199605413665038537285019012969778404243131651742970164763818731758569893501316707871581895250420321874133847977105565690106501186007587281205496105287909215396674690097971370524098623851834453971459519110968930904173985202219101989885166583074501427294095789869085512910964528694319838019704432678506392930228410146772957227281885936182702410493198065730719106558746271730005814242254830346284952302306274777230281654598314579949506578371108636011813649395357662199269051371271290575153340347678119764359071613051144860499811685585500263481246883085159635974760546452839323370947080959183855565224802494590742590473067928311449503211761391573605358978160981809708284734431998460945113704413310432881830174885487527130032425042503172438899981206839179178322723839138629520929050200056297053698412732041193708576926043851952425933408984840698592283930434464393138586325362205714765613224607396036220234293573859140361134469217742929868804049018873100406921160243237047005863178703927397661395009837883708017693585549583141833912507576366355444154318353831224517439067002137520581909956173497931787220798836143922784329624079711333629841152827830720030177437631938357218656375646494930354288641315345912134648564754130402979987934151296107567707161014033593582784989665648941713920093819607596552030253806983658742993990722167368096728241983409890716703526670798191321657760002576769507909412797375434576792331756444980620324720457406376052080491428513683845062924569691311993731926739210995411672710563193656549544263621123207853850345990816008307718178048943618122348434380010230699277851620416394130459572814006906438691702250990055795210230020833641180747627385715303669814855057344746115689890667256613200710227797435741940550908697376390684090591355877589031194442798301596954363479654206325730688167315366890654199531155919529408857497027376229967336791301250860137059933359963378987637175614493569957818667758029365871954090186000490134266328775888174843768541178505424638242464147221550581299832099569669221451679075026672481252871046074122574999679839791787543236959702501631307008901109983751429821001086549627181398236018922554864053350676735182865549057080155684505585772674419479083132274676547837626207917138634932670021391825814151475832592931303512000079055578350453766408920399857765632285461292646435301837826845274104133925052437101011040302415855396057494877029792338835747731803984935199573536478097468621243240578627298250891532575572322393091761607934466051600942363082922267958475014465068452291818615470065138226968610986113680906830631100628325575671705487151323526117228834494093162019444847142158165731173638215955719649626421637230210033524317163488949446198754915130003750114629427569787526339088871648692545017702665080423185426221895578743851583531687542894374497419603455273358386006185486656556861570807296079880665234289426257292214160105761962663304615395005950958027519133582979794895682201524641544104943621877675214324245778677651209580781338731246999018685994139308333498301119463414558816737816742620362882724328913248751895162743686450245141782959382753271922224764519379055102555025267765335940652373368183416530719394641364840650183938332616544816496956266409271307565354484284071512058875899610688528377565830264925376193705589063749232800866307692428352387543327277145991713268699297752645011923874744767551335885567877794769525402597662115325188697126480519924171089918949831946681553324655781357932110544728286943888459333894868947174680288061986709488737578415950866928159253911779059566654700612195934440174383560254077410904053179503133148631059605366658976117498838308043078757005825462511446483277271379358741563416090777169809968303732125733029057133092006148796945864984005560773512463467691484512061767163149799164056824095056095354118419438346807100108302270758791671045216266379862810227855921679070718899427572744353702923801885396311357470423353073391523085998762753803612249399472171069700193651565419005071714640289436410723632588212137813891852691950331104094674140420312799671463982493499460075824170458753381027533797047641452649683748994053082898108702554708668405339901200263035508327283491761574393123346674348806370837929847501230473511072720095797551594236856737993099332065598673762517508412257050198194646056495798525280384877861591085449104543414838721844346420159536319499925938204956178068910507715273901819818297294654288560095763797217815148013252323879514230851571365022272137847414433001562542605473612926222787489701189999798465030473594192828048953116346126144225646111574752216573266683316192841246097819079746974237024047562144935298128473349272633894536120005451251010918842971605143741145717358903630548246798575033779488337865592198684115228653124209994093188536753972951157496707405280386049594917367180144131471175501560266800039351168230427186881400571761972012168712308599026384629652221959153531761760020243657473890857218988504744045593386586067693646934770107259501830869844006940733075340499481715371464933852897794818726964585013902339691953484342167843662578262201090135814858125191692134406830225649759982368106611843308491351078492051139461133192584395986787252510871205011297596872583249529161372725284757730170869464075736738270197591381916679946150631933882722788033792361184687280582706115269647512451882086524310510971065355093615156240253937483325223967862211682765603941526720728123553774401177569975519245429901930946299081730977463033917294745147390426992842306060436014394941155960722465238811020120802541427453152789772363136923747844899125854057984061746949071831649354097785908502437173707440926101426405136838890376882531721772687400229389550360152745834902403234733791305661309156814181476574927726080319445182972405494437896745277054661447073360891570807245989179517240463444044247803526646701295779750683278941367331061950566704832426166440373773744332234968663444083151160250992094448904761997629283924889460173043483010170621462371828001404427185260015666674517207200473647840560307057846637603958652523748250851149219470922348363105025004498411217787194724507846674083734052727901341045742177720541898231101147619470254093600701242903822489512100653045941912269095346182703442175644486927630417529639916586893377596620634431125385988280287482555268418672140608326735326948548466289591937045206113152743482185759740664297103863300689015967505625906735096478028783327481379303081791666569000855339588470207232915776121249850911329922864973798673048578932239030196181880791903399373933919264230178627381902934177230800158147431158848663203212331342905156512196640429372573485513089917514973842006388031852639996985278683724141806497265718012487421641467419059287741347272246112676876483522709105825666787650993102205147083731232420169604553659518210507473963578467170087407673995973269392171541604435000385431433751024251104320672034677683525859316528972758893682087137329966769290535090420458340766746839735746628936207815379151629135349766708601274595078715889354997599234578379981077378046839192445220880099742757194492973872337069276803645139293069108666470010955983958320386373064090606326159140324755578724040428369320779449841053219923106840600512462139504125867688771274906515849056491796199639016866225146977331462749848085738926304823951046432023462954002084648485080526743405472919548824908856563057218367330962737337636098322833267462648515852641722271604280802336853180592106024121565754241083757341799296698981524687847676827392241570062157916503916291640665697031747835170797876081575007674490366869481929166506617216132103373170322823465752303950375119757469785445923128035265462593705625098027874229265666141256022035107999398827664222141791858476413509684217898152810114495711297447660999133931995229297883783300593913610638349324189264144549115633122111676646473666890780617903109056558525570964487378997287154309716086148609038936773804502176172889729026412408515676233105290696596708056575541957804321759487687580870550345662834577130241812142942075198286284785376982566587912929099192597982527357101325435194843108213973042190422204046838888254596754357059444905756985222376022866810031262532817699085651102574136519802302131310520172239506348952666385298836511245638757733575280691273206959611015502967466946346859726087572044587613554888829560380336198716654219226414465033959188663969810131597647871998046068024751792583454283474040622827510567770891979730829219621718541696022087209918008825885786196227837623386419838235556572240494535249803747844471205051151986332949818412489462348089298280806728583619823895347037367323796799526257756484926482438747390998742375991360229343374299473563309935614563458260821572091306319787180159996740055516172267461891276645352569817252386421758582017291405401120665674981947641864751629940122495396028487750370038365733538252001266996414898780105497844703283989551269712266307494063528241799306749466083096654282307930980056557601848746015464416289871461559351931833382776502456926499860349627917287159298618851715859104283813196076707826121046440764115820461596377425565647428409980509247174751715977942874606348259388979960389620037666460779296001486343419348087801272035978729333322797876340940965327334066817814074316441823369475485325732017813319561898341568288683330085386414993362724828079292203045715623269452246368341378993861414358617065657545560563574524436535912971644256345880752711241451544264183107022891012090074089767724487884774866816169184048056043844600865258537528175583714325045645431660405268884151685144385468692614714228540903406385339496736874610108890998342860430796644556783520516967488015642873131050325667394669772612598119748480782166445720561468064122064916640534282017377559550798119063477427278760624816320729253551010073984390907879601179581358286191491769467209045040835301589514246005802693073603044978221452453679792063290243472358649851116960454882871835079510644156212021933196013149430530118895313508081947285098603646790034458509551924015213403133883508095949028388566108008575272803915312195235913781327744461525406582920631578542401557872698879074633237499955401535656004142934801673774874747583781031113028922985420067855522782359864281751613188136386780318485316060884807295925428194131147290747191180565472952248952499875828038141134659743915431001251140520522393992584157534784685701144064329365420269137488571242715588586236790704545007563696378626653632294863327945371383543974530839978827279405998512412969823235985611810810794912212823735255683487192218388656315249525971916155575304592018036734880619190105021672633667460000022223880332148509970396164737488938962753014107442739006557674885622515017679808510536878925515246797978833825248189067879171909065172727848184740636929945712670364541924032789780864694392614672012178077202381159265705231896514617390486399743348073877936727204940162472710283455109998477239183136508660890151458479748689999913885175238272498284301300051041021629061379013706311316245099154548929857686124785018981751348832856390965359031664119700224405697059796454820824856096246454436978839841480043347475339714346136371857639639598520485094070462503286636066049152108516267427481905526652159789177359070545484401176936243314577963946581491610386002709605140061260204685550003142330732909901603311676773549085668211101446164595619772776691541486522557296950420630572181232455975800855940409774957341386923461897290029770369795729315765682101910741566253937337942417205144411770747634037020088437192079114607957046102096250454432059772893074949768612165976145437621065223880398651705099436894225600008932874907559042046321548599887258494927606185937349722065161852055590865280839096140482788395646246246461004503142932909335937962113497232611464400406627852406910320452030579843101392854365523095374347313977065369356134221237482132402939873423145305659486825059119741875725312975377808233552896311881506733055624252631391151082456154803882131476617911634380968107599586000601989337365895252306715532749654181029506150309979403572320151275445811328303786088886169887946566081556443123154174002263208332956373469408982126405667981666756041442208363695956762775916551576057312298186661066987497458286369291887153411682838377143225160413077419915805208573814760948619867267847865796438454183215913476439866222782047530133070277577324851473497331368311694015807847659647097862659036735360189432452474258361820303739044413024858566187901056456705231490734690210005292541425032609590293170678235194678988201753984402931947693369069102007940687726929124679253422687113348500892622825607056593922512181654167018160724205729487199311101816328993489475154321485653782738112805031679229850700507110771774431126124243276932671424488404353106891739558787899692066712068964273395327741043855969632897789920049650824833155183135315968733091660491766938011827589491166218417106833971248267890951137444713269362003670726224716815469167544323853613289833711942273182430733968009835955756347207967983708514063855831308934803052732347320144942039911492977110753789935714677324152429861642554624142646970223973396812696194255207743784811574677695750976672649048276406597400960653782920901833418748023510307378967452808182727891900249808411306423815922761328857114961109784741404455041463582537303387741599164222757291192209435799492652299627875726331180585866037946604092769591196885793857948138943904692546353545031531323360893898651911113377990433411848130433735788626314678830238209287031666804979897920784249857213446468990351801522880039310473886842211050511980156279982635351907405830623733599053436432181937072883231026963052647274478283798909332320691245554685971954270026773872311165151518242096789212494750365346962485504401329475636069871349181325164803490873527990316166312380099012793979760442221175966506327045924457065111738875834023757736797513275715343040843637087329380760645099549330399807957193278098747626059792916494597426472313924655471462260113173792078371822058704683228641620866944657868239868788261076833547218707338509389557822097055411183619701905785929906481640253508656751348367731341762298315967313911288958862606202419941708496992745818188971980239421884144666372512943615391571513829110172175924993742399647411163569198829304310117783681142345910297167740952000588869794735454914735735979199426960386260318046402149720456217105364284787827289203265108425135921590136594271927270022011260203667814048480193985925254864544264324536444222407962339691953451728391408444992066851075310928291924770063988069244140665223334400040624419462976086367510090684856049955614272071915334516072633729793133085019547353713686629221595705609557344038077641243166018831173159481901827927251502708791732869175458179708351700846179046359971495686161132644303692481346009577136426444218562521705516863255373119335497779890224925999135217189484309887632035844237136285162551580317250256577639370592376815069015109439291986480016240106292489501599211091731978082516566411006906671702620303284851388688901768704639508359316716175906536790668953602745620108971907426803293246886376022472054658056788258248989829825064121348597749480282637591687374002077196222672226954613649298759474440236098730661387447154451375272528913274500833857254860623766021861650985305678521301136248195580440332768762196675252583414726181680309092272106754619258237391955371748049540539847655811027660729853010311812383987899890269213281579160334102613105098312577602575470079867080186356060498768295357539740185131179676792869885281483311080385472658225716951223917626919742086612665400738759021539124640840699210094939063591202891169125266500974136884703855499776767713118678839249030391853227130122837646454226049937252098699195201935545769103057014846355567273862916260558185029619783425570525964643843932681106799383078602044120325265976346947111556225915512268688064672787998971928821336635807104036329866332851182050124528935069820215090847512418265341419286872900253166449682828404858795876658890998493079540966369446909991513319639711882395111836633207096759164817362779957718254462293641166724650221983892817617094295787007316840081022595330427136409099458182443387729542531912101496845369537864794779790860126352712480416144021853272203022341983076712207328913143826359882995725850796389180878470970149401741602848049634688343691513736297013271623136506083745244846105036382672637860200919791280050725452732349206616341093346249631769036992671832417310796847615691318827758859196801484425664306916962340537807674167859193351648877439947298374158487929254494822692345937956772380185628722517796257537280303501632268198509631372888853678750870375578467851768803520014232776294578141944063226003741530327776139463251496819397069818006768731717890581685041355083794235275418943865870264794459122360097119757855754122384553094483917181470550496517648487192548629470307145778633858208755567056578107715768892712514490320253977473865700887841038375594841906750045169228878494493517138051589173407991694265296843540921212258961451252068798539217031065979578615812257660950369814747519585377706918846422036806027765672010451566990029808901961233919282047337587011621193433585884792229930911523717920753899786420657550955233224613573527468008310707417937361290735292696912431284886938071444459952158715995461519474279466303190441863825253455822769166695148717998317223340208256378790365253065250105092030387486320786306658880209736121653078113987242270788162885460607052987920200319085053233684821896069189529697495576834383777097134049677921223891835468823026523914936934928377528195046831354357159874771316604669726947170950054952584670273912044655400560497227553570714077261117994458642552406920368361630354817740555453577885970646793230109667296919811884845960218099858481423307196226370406933789421979035770338896085823045337507945435547394651416831381132190271917170101983553198906435277356211264724980736233231283905134266008164959388614154053496237656907539763635153384950586476164681688218618508593276481178181164502607147273743649354167735030571255375779896085229382613453640702600584571827229446326939878642956506248014147600076521824177979735938622587833039510271840533996055680005692428997786547788340340796642723420587897923488145681862383362669980142022437204171142814430954711907787400854218858726606560526427133431033956677713285862850091049284811044613782114560864165044640042075504851472258315658518143485419703075616094675240641693361361010045761281579916971449435930615079570284301365236716496534684468193155381534362716972206020901076202167269436197700861030824036266626856925175432811761507537484250302067488875014187835673110767919214010073574725432258070357028342067003418682912001762209526469576499186057668564603874493308058071073407943224013611514965534252938236382820854642825681183600858640230305711423578884549819306514809421026656003740713079036511859339356038361744415101228689962327227749101481674377063362409461680868349245231374025287441385919177526225438635943810793865610694286724996313142649285714317018605508951495461478493005848744320944120232404979176474206607391155083332150570621556778158583380536740875075427728838651801431720263553699519467877277175916692995520390270828694577417786066768027695629465552682794312572802480508921352452941973225066750341600320847456566164551438255605098614634208492164200957335806171733055993450101780765502149147583513627379315376735420444966927192444813694795764279255466048864192165758430473328003581227763302789963103967241072216049094581751684490085548091367199525657005620487784019868545500127729865299228159509429920075433847795847129036119511385164549030759252243659948913381674387816082089415352320221597925885571397447285019462534811641424516979482238619606189318880703664524335720759323333176166171628542112506105177953285518211240027099552894086859475158344957065708359843499791251351116891324944239453194153255894231194630886117607706846231522120753975041113080999640937977877703463107734611268225166531617701130379072432068851802902880113147144585164716863541278416354804004140898561349036314063330444054092476199447439258397161229309596034750295224481018032679765019320585706359651764785248700822513150734362074473583109397649136835406517578013467885677684770290626361829913137356312067002234589600467881183008896624364802402955129598604827725380373023368363167503441532294320534273878862270278235784951970867580500502463284851993890841191103552232662321576159366863389078022014535452110761571520918241679837676193812492117766326995237829928008050568824671964334085221255066310981662329453111413362359031875303401510758309884125208614578372099910051996602111538349264785675053760349358607707734292672724639377498900122795455288711158654987625769857222900939143112403448131990672146139430086456113774425324635476474311378724710185346106828748490673477181649259279482379102847423197670478946213454749981948429917468258179272080596010156480712063301079714720345039586898889964408569284933855178497458936377016533470073736148288982897473088794463774190930471208855115029406261927987648312571866466094375788625063108681517633828950826265655645574226492205856833638305638308850026047673725593775773799268475460394292084134118556561999156863869249498284931675296631302650762408739742653805608669130653193460943441154229361181053603805228273459800713200286415489706775672716679446763984791201731301379538928029520895568234477502227530100949705018948334713547315251008816243321651260039573195717068302231854131979124094416477014773956658510289845232050602485551903576206035991980689546445269659354669485020032912114073842771695639945755327569427089739469387036900579943513323868152075562262620646478180610846611116870278821251488512216554807067379494135103433224687575765435896252514855750310679830603990138079055064452837697980689860020061263989636661118680648398178132519755092940178323227416504262543250079694543177533204397360120599187292066984919319772940817199472594914429874687000119285640460732618462511141171580171091102978580556412160787590665570470312519397222049888032885744066255071934525503561943466212923312973630450265853814290861800396158851172378256541561287162262347570126294959169087689707032745187387232472254337188301829674398669104105319906823697472867962503202393008571006446181113082014324245538903148613020948103022083970188153991875698463401817983430060436066382370873171349679833839140679212103966823489569332630585487952199146134808171048640831008303040377056456364556907232310500738368472719012056021919143381798758165634401216526741047992429846003956799386048338362018780317974928424771984836726729847538736587601173422473997031191853384023607372445935012460867811428807230261146369648597847277710945698076573977760445867234658101623963154633510090811787750398418957790029918100806413008458558053592983769647835886215301931496405700272142060174501510021011564232852931461805674464731796536099264017346758711812029048145988522838572561712386675709848668738699533575575016056757438318392396153050562519438030976893447191589266014188270115137839768973311196716936219686463550119271755137753206593146824305668981959362670273338805401579672086684681682995709131925085518408699125138315163635017202013104470429361996042763209056156785884591509003853398992650699345589752224975897085093204688266954967897731568884150255894811850782042303943709293054510908229399438577503049772655148330617925923095738558364662205474875143496224416876893795621529414939385576755164276692947663950954138935263855722619354221767529141729976311761698970367696201453436575291122200869104868610074644861662552056729595589267450005516717401646292437671594661899279210431182661765541937405506916502222987365427967445942344261049322705886029863192112145738534465865515296024126452401654662225545350052750497657245468502168723423241561004600908148928690067447837404635950995964677255158706181656191410643674495641932996410570162084141473985011084973871180090417224759021890467978406487693191578034634216240123400729408955000148243888141132449909568876428978274938121838205855463461068287025938157521685462636938322497687956848293686118485908974932386519427602642117846681847010798908071908829977063362119043676436974420956977746766405887084310692387637893286805884923312924059103189125239805417880954356228910417129294457030393571756740836096065654378776744957709366811426005732422858448368874114947174683665908744786989857502897658410770029187076848464882445393703170160970108621923530977128231664934853953967943953143081931205518247162416026342227785575634806230849720870243438303051875774837421327151963251733221378559212762034483286002901364381896340084664925036994564003551577355432082850878842068915225136759051799009225521884783442058859422859314178940116215494286904098057254172025625510842586497728837172349677242724385892841724019761376892475188704775286586022162639411042243787698483003502451170645058114557099813133070300053979197876309448966117392494320181632021776513348348698323882810715478729760320084144118143895697459387297133129621178342603794854756111184941422521223938007952886010546263770709246808702481371460418525750914418347197655806988413015015044818131248254437895249311425620502467461143638391256218934061591351116899888613137149888998511360286653807325934390482548111861421031369406179611218004427889790251313277461350262953981186021176987928674589128044269557234611362607472830071115593673883328195146603550524506315601162439859266273591956821416579288601094235957157727302010212024542019415074174077116601754832997046036293605602215215656907910882986231333211193595176499363097117348785903303407032326701006223840196823440909046271610905946354013199154912562756344819412410161052317737535481456901878949504913410027605485817255672624295431755994083413841204579142290311173324575135848964291192238487990163376869534386938071787704506095175319018864526831232773054982913864407566041558089092841011033198564421576941246263507328898799400185790440111849298833675342383432489032566297403794061152768864772551140457805816563899875932547994586192659840580379872684081666574092690979604904036929428676180890118099291078541761735444959952084058021197792569347328294634342535513485164609994020152960488982178054786738845669817651737058553439460282757061533217453489867888790648002907327910332714752767391286371682107429259576098758699603207516506269632411018929641222899818083743871681477423196193432110727906553964338551109567239400009090160253675341009502168264115333963603173249936900136437642856793325977744494517434190603291027100544236110111568555117957506353222667996998219149436854410439926761146497204001575778546932567250095023619776093951758126303160528468731842285576105698715075548045521945671513337059643604529340653966383034384491636306533664150750646465977901249318038348998056787728499710797886906656348845927284170044998635034259357523693804544515154848212340018417043171834541337136750583968431435276828579910374235683936256069846790925716554245591598534882584771306098769672242389035230505144406098483193900532204897151489007211252308890522188329034714828644241401611121757447583693855485019592191014511305028565436113655808083869233063517021544245469610399371743185039731573876284576953736786781640731928313572950791825619363667379958944546892581357817243173077284942044577636002983375853434599351810511373338021097826050680260709203428361642958556476739297408815139510344551743869074719729971058583078948366641852189884389446886025041640349905291033825577690869707908265768727944047966885295579526760785060321937341593392953097528217820369132455980338463968888703758925101412767934030637232726443855180255182501197282326141337933855029320855548152671548941144866591515431522576275813588743416586206776804387731086090694254475418234785143857418193923196068701453867246153762230699549867848432489548383759214453180647261471971882631677494577482427135889171996540768997237554815011231401772087923499585153368837873276052441118699231489299706927683464950779895123333129845389266454477064417012111831112323035005590904267545044561884099074455794662054691719537882167688467733842960996144378916278380291893127659068315475966514998096302785510957140772847417779892899493925956688898444028183648306392172869688549933815448138929153093719131136537487992620206944494924385822876288089545716904124764685039668239939919227078473787082506592684729733105934155770306799578848037396340509479538178070688001496366848494074753110239119495541392596229440637086265334731310145442247417102517637137089937193817850292680858691923332710045869145243568604461597375906162171006002827852351969007601145934430846686703429719277841433066778153209665675381665939752525259819643212006273338463068974012932286387285469722437737171623446938840557728362948787193858067779557398771223370757817284216962111294772328444944298517241541129707278880410264457950418954218507462528436939032505875792867423905045732342221515936637018436400827081613916330551122042707621001774558412216729752835314221336994787343326529657587290085558847198181474384465137358239091554083298969006671703211247196236722308209828547467439020722658008093430336007628283275922699002485848324665149131132100425978852523358382312451550086559206073264184466929223011393461496404522904416879173662201049055333727404608548554115393373427995576007529128388033221974734250145056954246842536800925918390542819412984096549549702594406690914001791906996051989952432267475330232477358425789566320010890936920414733259793404450969457757992319279743181515581155462213756026770735822295094407527638201480563370730063906457872028673368896244194168862103992982109339844388829247172971956853764170169627249473020514634623691116490581096441482591234185414567831778866097181229872750473980882744262680305231624702054209333818389035511265669758237898258172462138485476207911092639614308591330430491526886337350399677359374520699988096926317198293391371739555965340770530911929014420594078468696731172249494592277102450917769555044905803813228379683629177902600217950894640622754624981166600056816653083678089023071611917446249545908799683345195818947244675030980456958706934385921978397590314249807091280602238398266265410361428806104351675963514926034136666681676558391012636124812118484518245648704830147561301224036728270741843789601345406167746721290389099030004795482559587679814992388610004407085568687464845378827906761003412087191477961738784933664195614932065888096187104924432250361032838853763873022734049672575521231517220041501946865755924432305633440620053889455137780226845822207339817578992451200447717787919284282012404225565513007972626779719733641502484283148954999051302578783326934274472997015712048029960552282023853702213081058393625483187010688713594205687074722256955587776500032403531665205907135261893499872269858453168457155506181562616997648216190634497715708762694459084492561978442951817166067929070925273881866276712552303901810451135507559203939942214087431077348152436410577220669131895041566209909898577679500892642692910506638515227175478728148789291085735502405412378558568405409545554188099699807626712607632133358471597267752776450108660565143722713586981029883330349258487859882472498263595997901715120569592694275247849758530285452653259041070385963334280284399007344148067698034296434125411750780691380416738646108342867935348462483060904247864747948264796414953212047309395187282162758647426305789186098222044519721122113634447044240593086457642107918042330174369751721102411326475050435028034815451768222088514711809659413558709029260505860712259990214385820584609229469317044035715946218425900306948277267223415367270879258548751966381459027735927504912608725003459850162439374927720370123404163574855736232949790230537318489430105323495377476663256103442808576911371045662037249817186305360328244578434347461771771422317515431110634879145719698810816828982417160358467847036254825427868305090099686014759790976106375939121245836129596550745558019856973141305996387056499274010325075993003075625954147320191474489879125278076239587889057191263652849325476846283956114815008169778928944049582119360665003592509177280048225248951943403688624241863145305873698732889477225769922702754249443439634504239165931089800495690473008243784745436898468262130242886901918307713119736358283168355140215330369377583041349982270369936307273810473504705553841937370733462744459852005227765719270836461582286989272667684402694328945008737101839463167909568677363844173886271683012382744657200289009818248028668925418419479377412191765668388902364830667819421882457872046574461529962590467353953902281905428956396694072493858261092539587420412927923123621005814132831024158568591305776191388739902322964651048893845049250990590870222540260258538715309734460735204950498920550954973373743298489631041794328601419320800980708394618444343576461352046737581273708323100024469217438281280656063145098853204304034350498285662884888197371225934838815733899196514573246278011662081313669329392716352075456588393181411076831780164920155192035375776861695484053733576159061025851216990197521867109724171734433471432426596088695205438932239987527144433151055748442520442524750371702382508026758932690564186082368508467157714744438538638688851043587586398117512370803485594602004002869494834358816826556935174485410626523618835593414178573439693799116687312526427555973036483485899784025184337038724464191418692607265623654707099965313655602583879167167778226740997494312046559023915375157667239376185385187050038595790893532092078862318153899572810849688604708650285967403461638251432799570037940152087340739721340769860521323163517612678748337961253085304268937548647089586765971088456384452959754647708282141391740628710241182054029391259238443742243642604001512908977624110427962692661432307508520275034329847885521886883706968664637422048482665076714904046470931214943117675419552067377170924044453957538055009332866846268276544744981337193340192640124904375702083079996282336597241025956523909027254829247729371250685335467866086634161313211157665091292745807340520582320582283424048715722583543495490407733627380096739538407377542479073547940621344329947423764184865860735227062651683137654561673650695781647763592825514779368641894088586722821635332366833983210814140192505676592815971066624704937916851939974642349368175364380220459248758206051092570895508397399927668128719302355159894800279065095284902741252711505434935988540727238428120464849335171296337277151954240669290916287298756471322477500220217629795315657340183134033751799260070955431442601179780275500047449895829756625105423074369523389314264932500835713935508348701161734353138715580611730272206094494165095923923589699169050460670417761607651281999885969435504675040217490920779473631252492181237439321139919595376634685919914579426196470420096787741914849514686689163532698690129900394916233795636525715096933463351353170505915075306320686094256685302287654272080534214143154185811165311958872424363385907091253074207506118401195221060984921009538767705758494555813320404649048205864048974021117958582684853840166185822602317099717253703502130136929933698282830746360477393227506862017771632878610710738500753348430023622726081147236385254987279899819263486356636833188283582452235406546488098672752618566004974017315255355737335374284798574523848424239385206594717276823949553574869768896846984851441581651497506217647113668598214067325465307150219572588460571844953882682167112402262548482569429530465014948606366717182636633236965638887577708925145525389593682140582859055774945826642834712362303387830233416408803982073625278707380889080325282173855135974936754543455183684368516619139805513024598860032731516327849419979941924239217013741579344836496640836115956571391876605651022371930568552304542711962192259874645380200039586751637794747160860212107555141875558769616748864834558186196522073294559197556115278682656822264637414689130391473644402082931500489536930919024012970820323494990270504843772300948750459168933775544871744383396039645749842587233574715500322495849901839277512325493791247157107143335196263321762403976245071961585425271677972120925614208821405886885091542886424255335708915806542341414332453959357441460026605353534667586704328475546632235556222564034462804758675429444557090799822552790249283728390428992720003797664950321711640515136649997187566116401663430381637139077295556930250843021289504880515563064635544646824934249648023518328716373226822690270849240829173127493516616885752852291994079800245915966095594540570108415061870563134875324118214393372487605883720939933669830578525221521606573482060573099563306336176240578446130989426027017808368045006660213115076782658757044726283577800185957788402075983830490494657115508511608875036486762360552380644868198969096414051892253892196872768782926085295867449615898654485053267673256507853292434672147943171003873992504273468024997676152795261030107856268174529145870212910465728255694717702724817563642237930967847187368976732169365798614409820085202371813835080267160466268772113436253636396102638755926202956563939914551802293528981721706411340931014515439118346621738641482707678301145628412992238526094931516951346261092765223710430874270825602394980645818140745302694792086883752019119097514559082488285336815242095996034351987969362665249717794828465787521407431097020516252582106265722755655442074508352874400932002655925571536955574912184425666974466873509079275177200344576181171144862938315824949164073057334602966992721948183505996865817433237544941681533268859582302040931936567012600915879369762999497378064524223256102971582800134330617672378222645372284372506070201910043085252409874271757599632169081030969753756559980027489628263919333116658334650392917295778454922321972694494193470427858842579446141663488300613853339965160827201355747062520751732634858482416550857432583126159493051389501696936155131842296733034743354497033604535421083375941020088528590106111808460224143087683910505412672947032975108884625225909172827275274615194522176626928635798030521328345083673394018057424368464599933608931374396410890244991444565927255272429622176869282288439841132391389744304505184414374621209745942890400099104278227009454043885757971962858424259467435955930976282512592626690737744745883027326944733001321646773902800832030711850007390622854433510537220900921016121039615272166278875992110955062825669368990220813775146330302729769155590360835061033491704203336139059231921478312747399554577443480120571904442541060659191992835926894092887734401870502671051924947940110403789333990953106091612434743969389737501558585045140252360713753850026423273231654802860659543427715728554503180301879386732801881352632126202219384182886282713554039317240542694923884027004448214433333699126642619810754807259276348928298655233322669925014443934483108047841732921495363760649849358926986469320750248128277208871170603227218585269995524122992836122048867459085380760328251016596407644832325334164605901925757420514185731499597603916479148047018279749229973579374760427980030230709200825813267483124602266311619185556958825697790409154232035634817062328485267748671014926402161683529717732660533760866858680381330271497572388358400383397003854578995942432564071026027040104716865475139270302722918461570971767965036895526913968197560263559824659400941356446597196118090118735252107104080847239721615653293010223424037406004707303397594336875164705946565718114063823339878187444482909220077309274559549367204840767820891381338567507188593373044741821095920727958229908526174570208513907411629875668810623546536951647696386550811165540540986017722762771301014762545440560747177350739837292243546868416182125692258959493076163788520169899343441930232175016405564509345321274133037386346800492422215859872608484456038025555451550242799424821427641155284706027154256375301868528710228955462309223321323692341814559753272968106725587468173071386196163750735641867733434277286060438372997010208988059780770486593694852601811736388391160411266678805747136653243863714955752058525794686130055224641345972686920127299742551022899951834164805899636927987183574267423800501056040223288421233928737484582127161247806288953089891877501055945401114079278596820097224313721137955216672847360340956020883383505179843843569059979939858030982767649975126886655910169037991269412548227859482557159718561630188501323555020756154873224678681483084884055446136237080401195239138886499243801019958648625960156588419557844854209185766785337307701897648957571600723269460720369123471338424188165248551972752785438087499743089181125086086539175093997042524872512538443409008695524800820070788892182218130865055038590343401930636128547725722843378732180227793309008408488966110632959853184974647108450504913237890465409645089524935686888609145945203303895445421430859250192869398377908576769409665321555504755817728564251047413148240547730688137504113366353659284203942457768562057821029954845160761323440876263330445616958657553886240745418904775325719611285273368636986667684939393353303665482853341763680146989642698164510868969303518239012439074449643600264029425538931850577093855407628795949745753506928405713373026148435964076357231877249209515448378950826000886334847932051829759691438063542631224798219891861713497794987817939320265039769367481857816704337470037771408357287758166621171075868338061630155473102984600622065729697958645638570431796572563549792650295228016534124524784179855266876371620698721471658829667130883570592648071177896171531198501424357363575176886838678198877583485868557072147683728178733222040347086636985916103534475376894045707190444534043982910085720089143255942350975878720412644726009434892694652480992206511475767643326116504783263281127125504151743055302736066972709935548488920645457704464518326848636240773041074560895800650034466251603258515560277415702811730423592558804434380663114403038821947684526024399364653373488921729305244241269113442254085982731033643130942609306218613922183363135588695461900392659012545292804802711190230934958538392839797825911247769281619976420897711163117813593765523607953878660109371740539946604471313362498260951259883899994999381967423537823212002482621038305282821540060706675877724383797370786999024457639227763419491218343371797892104559767546279991826260436243154098278587732145117575728833609482272875184554796554135699307022138870867634749804232352129205393661065684294345699084771783176324460023387689441551182548817356013589281858581958862913729301045504837081768339870844546307538438017511391170117486703039351011527997086752453603824324922049437718619122746869829327392109337173865521734133980100259491028600064957947208151972538064744522201850305943345632564261188134289556306381236634507132533860602269405585434265888325305967208623571084288465120996743352755252605691395275434120258099996474703904165183411083177757545566252836986561655676214164134204740408501171589742405514506472131234605807972608513787853382386300962657566788359716789817443485744727856313464064837012009329203000592045346417346603253179038191882149738555501812121622433986881853933523244523947289037376112040557424532028592896954518352912059538101608326313375276044612465371439138593837405091002145828753984219364235130982273431501112886445549203733171348832504588097491418966202124415652253760598247641376993446294506563479255883900607696844052138353432758230360433362406945170498006727000972341361780993435605056855500853812259676969234466616260989050287145253154479732694231234072727984717814122990639529267660358314504474427689757465057362513602095484098039301993650230486329100100696278219177871215894229570607629525026925240199262487332197849104244157694253388836762802597950621252648594552621969179131008623963620990753883318235995839964187108004040981675208457282300439683479032893289996869404992754888708617934189579207279172785443779354005941397635143823313769371213786805760954975116744813937259282713680373105927554622674111512145751078350358271965605722954349922676749531493098941527907220237534517284314999847674572414418852056233663564869734233184824866676614048521722194173087674118608579975239169509528987684483086767231340289050938712583535803712143539965567269065499691562398504238437453926091255562910342544164655322437142952040349015576313785042540209448184311660473422446015580909658934994005344023272094388591716772570833841843657207573495164543860217980096784212111475974318667126140731986954561843767466389261807959388170339630842016200554940128910065057069927009715831712870807602632349837373372624012126057403135715361054462897017058332249733726849086402261266199478138015219363118454673795330457356520461740698418366030600663038649854091504474204163733645699874849255423176939107697025267511378135204127684777569893344426203308685074955962577129289056653781546869261559919723523897525688802243983801629973560276379414065323023724822197086216276829571537468992475734381358588359721266364387613781316578015764822211948551785366399163004147424109546188300823399276301189469472277729338671133633201237946777022965068518591886543440882020596390691683042844773729390185526653706103303456624520743782840561220798848507336447501646068413824972093463949632625064709421621817658765174822189100232382528602430440592512967862230538545349563601369342723722069691810455223619150697976019712202113212879752109421100567058944410170518848606670858744046251196620632967842404860725568114094201104264698934865812767747453771217143156737755742712418714034003149233742200101464759746622717682486024958375716703850132811736869579092983174103944643686117550707494720986601569879566492060099260443715002032241194984167491081016878719929717904428283395139761970059833793905667850336789054036244170615544620905031685729413025449465896783008739607546715620794041442467202601767304552867816989990267991635311648201711462589631738372737671367405600891717207262710700079525491193658374421795243497816398085119886353269647558853584123969899578761028750232137172177608877372780002609922484494272389436353037125493564612697818666062583304520058024691724284853032455816477610566304381371226972772778424591946110022169771294591787925588960262657067909471955015305830773266949380068137834731891155578420348710421900936187932806498155902690860112208355529293600857237955187117818251852418367934758099390535579797419317578156585096734010769143538584695631654472479374694536263028797192321652338261171654245953354362937822879127132570316567879829068825164201371574711611765665440937577984370807992038178339621165104191548477290526256566760684673515137379066976568946171176015120545543457590822180339798578215446368909452095279309974756584224113175956294507151555558552559624606901881708618551929698183214297579625580322627744617707137881169165192401209969524834107426715044293896061371707285939151464315705541481177579945954708581083439702864202343310419002530931774898028859915565343678311935478229092534874336353364945063988506597902933876179472621296996689421584313360933577319374392317424230479293972235785202622994634234594969843790944331502193075654672857770177642903785217861939778976783503645661843970670595677579471793152635817044661860512594492892007608830214119319942863963702703859332312484420296488058615464683733502188266408060543151018392184385860957012043931882584981197654785657701101808528779847768487345873717992177606080191824156026726936469943858444338757100618068786207641195057615192137218016015719386972798680364902875629484215084922397411659027839104148202427725905927817959671167596325969670907757493258140129934182561381613530394446621904364616648860413894631509160982754531849964482247179943249907986724945557895749151458722873453044164926481186036503324214084229049717711843094919896300532863551598803226041918655149055882396880971126090529379219143855463184741813044080356102422063964765292635483502438547195749933000380942855223049649804429706632690202346587732202651375096095070951668040284294923854847615110631530961260490521469983854543893623442260014496818663730386517491640091847340379649433921912854416146437672304833421505363822066712757972841089386325335202059115313392900706993592720821040747890898970708879172337558844863898301818599711468694774571406400962508852646512520725499896746308081340104379097579043655574004079413108205853814328378580866756883237114411406963053614498130088011212741048593351402840571104743017615695734157246495876855942379529567358890034483733117585610899757575220885556946966419602528944691376892280072387996654038106066208071435590649309821998966894550215599880746597242396788637429902542738785347014832505875103189632809255615733535125304971387855186325276726626635764015376440893894574074687231718373896969510792119846717213517704471807153724284691954790266978490543973798009847390201191617217148044607740766149375545195941725633748151221225224550571804318188765228532059609200646886862296341758317895429853031290006194030867799853817372914883030078124051135310825393627881948501825070010687867919614122576062834372967730308087855042509212539171918583647038301218425263700485123814352599586028916183576215127650323115128122560802975075603790627156609103114115434197801127675728036085806970625145901684240414511381253093602623020054581791748579616899496017385131274479899150648613675136751529380083566070666263836044780420244660285863690568374124294404948154221237018059716375696982954423014177247190258134075059135873274406074831006627520784387067497395569412923414452427264169619796959626207496601262274920542739894209765550519135376881430095677336755938853428774785964561406378490958847017848173882704061742342217880024605504303924913083739161389929707456689733010569863109655110892879032461238744248544875200109693878990520239324612142495819905682398937910662495765641869224517091477662992525121081730342768867767225669543170051282279854325225716639220411107489160620103324950413834246993142532650658756983500765226468361509602118634375298004206076677784048972967760516672336750840592351269253440219251314394268945084054679080302757212908615488595042743168897009785413191215452448372589678111616940729881827962673018619049151387769387730770304373334940576566554804444498345626345084704465438267224563340931626305583188556047882785448908240358869983352909826454429807099185108748789073330576600838833183430232690044608651199516601784014105043871721060476337776788503742643864390935528281062628619956016514785122761464012644252769284945674427713552978024079273676523863587025026309001325512717386201609149256573191805831783732904440667081781954638053053288258733980733610497157972558852234219716823657812015235531497356208663904486563894361314256172214214590663945428537110959553842395496262041697510647277789186573495120427413107925211655026784696214371285264023709732693625631706030293863812371411731846250398026086072145094657156241531926578297263255615712796268196706767958000293735141759025983398022788361157998576189621260192035643995802184140471089623679288965324182098015504590165956861612157314589921298029837588878669632142675452911759026294635055934654859650602716734516464890976640734641404018929585634847660777913205411657787583977645122415055010551180840152335938458919967750582595465482704976924374652429250271150599742599536204340145665806244509756969441074950197626521139632450026642468523145858140971458807251458302511994000390547962243998471775462354908133807775719758821054299399124344216599522543712476297915878844482682786233411506930721039158923171969563649902086166065148425389612414891895854163728300219553572217560986934601651950147041771062111631071026421995663979628576928945249240936716521335705699033341478905718897893530508261269066308074888865555643966462321089771627666448371028092102820349576411869433127382920511383469365293542351925529410003266601193523542496742333618169243857938838636201195569067109392402088120143122530874777903671812519752448807338494161012466441361685434146477736322718848439229165799423202938598155966608759529317752121285611154662777845461075078811801558273943153462656121309796674649744382741619008897807873167220875069489412815035171438884883015088803859191102432648564231362526454811351752486478971436295115142268123529974516581745367583937485953149877208399650373351829858477779583386663023992616099928647821777315168846502005133032844255486391300142497139134482491666000492771150975163891128029886652827143349815669625901465823443255710992802900580098655304700469974109344295932458925043272372980601333950948474337011767457366447991174714473324453078215689991254389374493332243913789799643586318937099526947019670777428222805461288774697662111215497347066696415454814407406479107987269054635903350871977787702303090533758372589398566962691806818607034923119567604185791958744155202469866887071679861883216092522065405453425211629771774552128356064383175520309902052217043501575524781094519255187882501051790742940070279159473020219786126431372143768651910055905200928346088456458419390059726722369962457692054777992188956147040545108780955383778711603537128897930507500605729565236864775492908154214927876477394722091852312416582654264731803216149507723807442950562766952084106129122249124864273370875497391218039770897671912485064461534755766799452409312119589532877229760453489289310064329707830121963860299626858781854365270365948856786216556854807852884170080975196283378347912933766767779604013813393052502957398210311712697450050919276926008377820889473757171256992140990497159388936830418611394896012031006297816861114512564330350730851241379364996016979039407770478420121204551462272675734982451938080448906561892363756004418682502719315556231606676697746813490690980238459030188862578547170893947517771280156778733229145002557503141836629905307604134146659250636159385674980214372674408872532625810804020870479813906873129079780919902070432812012446522179489792037809863436713057433381429698187353505662548522283507780450238283984656333970903481709806856430460550758358470643662250464508724474269655983804035274766766082151362391270608192927797301370205989737464573794830910437140972757697092938929069261563265523714083372706325742286846172347673327609638305892057853219912727805533021362543290680669211502771504633294439526031129216315800206066436186273406659171792706663898071073495988105540884802962271976469830797393245281289922954857289896986363744626635779010921852189279895453856138819239289299343816675289708811260127238688649938218911684201836870353287721815476111656035042151417184002420216362615664858173054496122787121559927449477523289216700770297558688991182391126436201695775610641722287466499481035715929740710968516415169878591798537459400462403935534646414092368610776492522825326966007035023380164386724812573191871961121685417878355441198852090593263506523276754513738938330041692854995884477067926819025279106229751633719144749298458770660988260906322366704067650138527318179690139027282270806052443985112897536515609906750536828028379868687250077028149245313342896919921095962306232696772118654807438535212802129833995859982613880056045059373498970584331098317034409755161257897199290301640378713379137052240058106010466972425561368810058869443184996651395597362777574047568625768388324842751311299179541579042746852993964616861453049369587913485558228934535691605813620451959431775099916192313358016062921518853373714273401690745229197857509783905400387219700182561642972726949843394995786739742756398744794778275244094869982550845715496686354389268894354785452673801837362296743813842321218502833056526490807997655045391968704460668269475117543856927712606548682447450591821658366049184337261458052938218232111847953446548719523659736347425985601049492484149671867069918782676126527681114791000073500796053638971738802792532993440270774633530188979063548706108185065957422545266267560795536412644262999515150129473191231526774538622562070775947889872350105646945957229416932543883868716068628429915742928551170456629484396701518289435901238499702524729148554354190571157769407532045945509394647063071362079506187012191450907502451606427203104427764742770011478172169150554616219868996709181186494080677403231282708138850615724171214752752344245114263540575169714948657577315989779006043447209957909303593604537968372108328432207606791897971421827904040882903065661172886821242199358600363918023743151969467275666696856670209641610225450777650606525444053740917244512210518681791659578049398922587339144051593459963150428754685603346590897944373796327763319940528806745474823309744987734860361086248292587040312419336563678192389617070178083144571904204453064562302430774053894259061852157721806744944469397112211336158843664242544843411379147219515546752629806568471730917666371647346447081300290329033123678444356478876496755532020361096159133666496431499394104292359737656498420704481330540295856854350098674571027018260501614742586899660592162768847795679013506139731477452006494296406550069746157290480260947625968778819771125781739358677287573365707699988216398172729576090868679346659326556553954210303837580836948925874205800755698685137395246346485500349549549133040131095121368910226116732780223377006184565341045037234974335639220028527037885101741309622141405386715843484480097174938651603492819618814677868375556130757692569199743882657413554485788279223853438100361425128818393531297763686567180862916315677671518687142593262987298849454218260966838397921622380601285522782902659434500836977011864340104580941586311494845020908927966203414739796385842064127609523381416208324080050274994028252699156747711314589836793957638090785752256967414244254639667560516333008982767817991563841315581952757943269224794168691022591972205864225503204840466849273223280738806226878423047651394758884065188085368055436284378193632622049894475344250849421987911399476978003549449963309627237785624053849931677640276347560674770450030335342542814656293648854692947742056649782794182412492155632182195153657403864077912413017482197803772141715614777617397930019375280844949775464895787431820835684705448049619641822017285726176852162520501258965715620601897348355068923144884750120855531907374255400171239947537664970719634140111560081360361117188472413843362443095473090408766694808106073472911358717673726147956922450345312816579524748572047152468987156193816805868708591890491316568536193552063370959326289417460686396892709204822790614061903742129229025703407686279556329621467850726896641673752692938840542752219889113361197798258005284393032500177530454360521868458152419272162960961838314719562344225310755555545757576449078271186704616221589799377745296728259092237876393619711691304448426771542604826959186052069439838166842439572771866345756882909717700324419714891756103383143769928877503904896124143986879015445603687350708210030040440484160074820033320748647702729584001412329457496579566816298813601090743114235142931725261416217934867149491406214411245541787990707791263704545121937247932095191910754774129590193429387667930102949442403534273715999454466740074371393406771558067112896633998808258905271590086800751047359672049399126492928787042813079615098237307263580437399023025959690674635249720838982615429846351831477891277785382130525517499478942112556870961061631060235347712212666329195684427800492258898078774467538853504562326852814096292916610014458645442755107992068921399186870346447678548643650084188377791195295048187223891999593486638763782345566719129734425733285976254405535013603520135774271330288246534836114227604359795095663325659504206213286514054622355421232186996557943537901392566554706187339721767260311012685907371234700086318433813398342968451235069439546706755298744549681295220634551385895022573453397276723680902775444958756988477744116895068055963955177145614323430096084878342598674894110073796296495377076576098542703008198036877812366877003521413375102860675589621801368469722602439471162376984376571950809266224214328326142746848430049367951182382078968942585580344475296507488737512903052793632858290915414039280319561086338196940865100375909070450334425323803646503054788091396024113833248791002564299249112859802273829367702963491292080399134076589692354613179191585257276889579635106511680875316328285153580951101023652198590968668729871173881323103357272473347023024568043668678353472140076764571462200304584369753873391962274404803582298900309115737693452868291634939531506970506719148489605433909494848354259138185696108639374661192220349548526796994856720152172934590796684669415509639833313922668254924951548316388822118856132918084018270663616363758184463476265752239692545035496975760887767909687017798531557595150531894381066573475403557794707969653253279171593576251463911034526936462783406113819146565131457462055481808967490148585967023939009732510098811143865155805000065188103369165395127839038822488133531840718330986350005714222687980963746345300265826559488135199660078917049702665054530137473619809129639883576925340324160536320866241545773020228587453350408781567306298857104334692194801049896944410130421832342325131702666496400455864259345043021521213472480878095168930902219478572551687649388850444074621907946646746298067275866069047689786839917852382404191942952960031978283341501449111036330837953832655277861798345235620024375368995506064939225085866332794780215325718727673584511417682504505421464002827445683649713092556466568035270705385587024071986355781561280844373689129291829584350082715993303763249902523050442757722964800481415663015523946738836230542089795097190509209351352022202868515373510433785923682335758442555489178166438018016172208606875936517135431064537874807385724623604749773317950176009749785018820967811325469633013161538990396376423213340192297751415670359443783202142974019598765845898862359791309995229583795214125089089300045320030477013182218946138498832941162930826465633344263975929115885783058452693543231707663321306061256601267098332151899939496249197293572478462724227696030679396984947247979022812718946566888359566489629435622855719450374463313682022771318224453651804351558198378894298179298701892216693153841282036218991213040907050509940292868642607861943141409938484462568310331361072773779339966110208507654512468054495976736978691256292835825229952617364047730845917651327466141959447416123956877518438483067933358243338218907857265455068486294932604185120436950751463309899252050662866497619716459483794431657772947694442638563916754937753949645119617997082462207065125663830905877214485759840312236559916335930791523502580024589458896658600105752169365122918359233730661087772558849892057629210245263039524017578220688977349041405568744027471660281923228255955614675146536419722184809558612161624395815447251740818917870421187168241465518775850719816039544220650940304277024006565824357200760820362356489256520433502214177016123284856817934212096557012461777274140293641174526110332413466491779070646345413423329067599673637527185065292040959033162543009386282754775612414183874724383383971548472171436796119172393659695476148571025581414750676436374505256001283903636786796338009685530005960935472848419886653560138388058173869447339277041510227276179067220868688262182654988008163693181359550197833635879795165094507127895538518758138262365900948874528154435827398702589110932120390373498776231676486544066847953158921685625144277284618921005042866937691565410994110849563459450002660997244615780365852337198698918986620659628624074828025396441207829206024199781883208080021728259248868096072768002595240463341832853300992854441931231024245386218089031847570705199199662724202362102760735461883389076081940443721044975082574664109942753546965996569789735081924475110311427430865998399143007746602686479043966177993671826806637993616323027721023593293317387477878587208137366635771186220122676024393544710470717272085425819728458784721945549926147386411032447706965289205361956535652704025155863449943185814693310850739978526900812359844850689225988022359793552091236909636889815978642210516352286260443442577680267052532621169937728769475140336963934360488844995282872740581859122837927791615089252727799089299240420841979875810832695864640990628671463683695190464649595621863919838903757328617786089313955832513299397257233301319209099797043115549086297248673569989783700469008402263671933656429264978319476002772426741751129819275684455881902831820702461142102362510184241536797518670257715794221769917151731944907696852185188691792364506375173517153909753517858319149606739902625661238157076458150415030167451595349802470256251089387444013438474149885918180918570943273148307546493829407933797353981070956011781436693824451915989906404859487499004082118884471433820860372734330076701541386429970224205940066395015532989686588228988939068626015826699087482050393861308151960616145069049836882467797163082309865163317538625361463490388367138526388169332071576271351577722710357796270688944919953988514018648675093380940579845369264685572283937677068686971389019330022037062118497658254443109791718221998530752081914663217106232539804083254544938602889323021405376661840096180816690117781353224299473808403494993505093882813644475317713842432936565967397219220545463664496515211477046753238072186236928709302044598817751624457314918130054807991146400761413056376774750101628912720766586227382950865941193912304063446221043262479687868836529546805788259272478226262920220342472831536371006059352386305576191928711198183734664583485572393335090502231863870097394253025321201685088851643482461305411205123629029069563769123638366966377896938685942121772904250659783227011546750773891180354371068612703909525907776414227351147790366016347388047810720365473769398458445509529683153653578061720530053252693405337615557269802651050789166647492190658786428799132384881083445269036465770571787042916491402274845591698214120955674801710945972957906600370343045140520675663314111643976783349792108288578867350288574040965796960345853623666367130158492440872002911766938015174240378299162529189348922164567137694017277289279964758722152725537415864324952461716496025636766966465590323306569227569930154780773503895376462195404847089567494920002407834908752103784077786849060791650925526791128398469112991317934574582583683428801312146758195175582808579621954704339926241621302646715518062567010232160278465615519574352160021497815040463083544961377836534241910386779708718571725278684865991903393677620731827322244778836730332250730537631774032829907338572884854118994985995243754585442680504691392911150134957888379148476655716781739407036583760777298158757335189275625623566047538919192901231255222032268349929884055913219223975054026252436626386568558661490270598700452761799372917101564666348864374492528833783135056918199072908958000555118726387001834030482026704471969755694628023658567351088237267301079762777940707981424642532372112065655182158034870913103456767849225143499627203023347700714689566882999222532690521206123962211180210959092817963401718709154064986196119147641001894652606000752747460652335494529232500790577107108150195161854624746908843147825371741817899824809974042659196843272035709829511913325051215440099551089837547703168410797637429045254883067643968794756896788853135488732315318940851088722799192947637920837501107498635902561317225877036829085102592088808367161656901529971914519439148800446276577378242667319834742264469207650737578971819639884043176040624645951106956691399415257135106794621800351471003329809608644000202500180705394697432298808346311417526644004923586765336335697466116389869742487447670020638200285719635907656126502879438923212851259630512562880363672794977435005268974356403895533909586815175646625676619165706398536674402342999389025978875194301205082210548717634084834516988024877890121696243167830647444607079401388528866107334814687258129633474951191600284564233655546207508397011454862436836349752526424477515794332107671774939323221122639368557933506782164007273625242020604602813144879859516406522149279920393783869189737431275494492844903546975867672067654782059106110456883162113978366746510513897095106427541072000574439681819304252115830929308493643656311014610138077117352499349107186730149270981598870852358736337278947131091357457874698392011767898460458233444010228678626262069608184978072067370968174887079485810757692287168720581810557988244709581227253028519488502806386530502297893037477724649803248841329609709345181547786139384359263241704396686631759177420057293502804755296961524390208136628435480682161376137550559297280277844987510628286923850628068295911278876938375038633606038744080318977232535980448579804965940122342956091850793562602276141390713107667156699245662602207831360219911878288450049856477263206713021682401569107540272660601176187969508146351240423519267249576314984535678553860977038489965457865197537427833010193649783903693550104744398143633003395492600177755585396753837084193845811168249980701502462282168162702138690585890526683428052414963523760738144868173661527075225134198509673854802820731026389271221566001630474430852787338156294128847086571131351121133791658182628114260006831621034416054313439616208012867506188517412303759864692430584208409520019254219247254729161496747082181416048431295923544747336963158013032874793264866428880417124131403570479266091196155933052029228388799782588945245142086688341633668593414036733352288973577448011470033778504144457546892829189881555772385180017402230156424577779429275199914817657934562817499924022457656391182914810037853218393779800730789567221483175493752591207465159378837313129501888292380960794958379572542763307356995092799780301032803261449945789219739207977001559879420058393774070632247264729036112235508924369445386275672070908115209684881833580037802478450035916175831003666068826336416174498306282993215887679358706087597780951316239094272785551374289533279075885522060932871231550215819167713124796990508164021694577402310484976901268774482170133078914797669266218272288049942133165792976348234592844544874844482668408795212220255129425693956070584419862881506645062279151396969316661795547565271639266796358882985332556222827502957987902780909135806661568152021075629874672928487274010719837841373643086781416435080270659834039183309074432686780804760085126557836776045499909778794326028888271437081266324097253654025365766291643729419723417394008711225284806845895463148444933380036984768434840191949727966242432128147597770002895116588270848863152652070334616352145913470894311370443782959633725180458247531729697331534193194426573171353587657634766325161018520142922239401260057231690061267728446433079330715598287633058853196990748839136142583317762051456801003926341866211364468618183797419216509630284641016378256246401598369683194249170968692408823158949306227852459258255524987212414114932667155749450591160343604757015945172218917879149078370885748412929941422359513160877408046841096494490483805436758028692701497974333986039472278283357601467209162569722532401020832244197965001059327511056319333244261319939803428070117827377289957341719162098472211484556599348880075029808348358640312524320507350596432403536255983919314155484810000011735394533430363863691389071901194893812386226546963667563628509677003560067147238253036292744084853569659511448154944904070668881732491736419128001326625992804644776955435031557885854906552303673443334542425910910487567089332630444185408226365473215389632141496947786864976073639317319976652830403529068696667295816634697195989390337720309800969561216972703437126472769573225815215498770817940886906301534790197283528414082249867091064188292246075751785733526155503926987600466682195564329753524378203976668540030114457101492889468779024585380915236032653156722899029051180561629295009719079193809023842605199768827387532113237591706199460509492660486111542049431133040246458626175798877426559740137203104029795313781415292201854193285428287274695948196535957147977923656342687794520857939928032819797592849888391001073729036084613741975715221866211189954693647617043208784029746277113366316880742835394484154143616672966311264097769280096634438511353336367278648960829928431666586815762098865075423120305716541341950944079917865382435136728626451769922362438042684260910995859004792498966410185693709735386568384164595164683250973966877973490816218325880653545855899268206579019668072305216630259231651744829138700566893876199956791736337980203765815595260226591894217371989170149940504059966545241433031997696143600198466444295509634211323106668615343612596165150220279009666185384797044132787086367965310904786035384692303031777845740346328350522775800130371151070587068813057420709894518003751800480658361783334262344750489655559635646087283953604906615973284411446603255307228663981763174431035678861072658767342053611267134690515825253400808805181917861418566905176413807414882371886637262216188835320718439414719285187798421862448129945480420166983019925840339214254576061858321278985589331216338123978533545914111370908370476940916809543153529100998661566028933585657192852224091369314285012828931037680102909963729168997805002013009862804855234154269012100315840590417335869502415560574701393333275030125552932138234630424653616440258616490159724292051751084482025408954309567958295595109053330585596096777323231589975037046949905227018846037561674305926151240846906779747295161584286770534028611360752996725262711998963064464901586773130746952796614005363699667156462976537109799984267570477299822671998483452395119214261973235228928918809263339632182249056282865455034185041018369518029730561767147891362667886378854084102453533074001267487460047798384433786240099730112220407026851314783331370192050964090654997032743734895452591430697363609061674572035228352252588262091264806852892978250290284319188917316983869636909204810495849374902485364419260371707071923143869616793258970694060016667509350003921572690464453390833957095367260820195629014258228379465607695504084826691039841748438931777991568053757201223884988897576909230658880918377646031801432540163572301098066161437927072375315000370956371169359574448258188398046501532660706093147023667454505505035577335332391519665489332591458751101219259711858975064212597702699220815777133827209469703302429475325822074816845125808039241039565762084107367403831348957736715938347283004026434784579200722971173311170596033035026485489815469990243330527582987239153954049090134989274602525296989835401346229490776230180029355812733121194188796518237938575048770121526873268435711745879323440832868756999265103773270217303253535151177753850189555376366359697900159516440727043555312284666370287660583843906171846901813438934645236711561271154501809576823018280666200931684963240227252328399934318411135781908088547641751867454413385771122459616948938891931320461631042024363880004955355564939263932634288301548189961879419975385769037740175856156013295005434841555447079368969778419309906448992996695760628824555021773931249032667805008269731362770523894245491848560458413682227266087214100435213588101056629168734679480832781547170009900788031410981158703058199762942619122756288396678833776238546530254583681808948465789351457964593264511784512499479021341600101449671600533842007260957104650245167598907930103348422399140165500525456910161780790082995387723476519581482949037108740184762139146338347791677759298540918262613965356115787922464922046879248800472152873763763591156885936860639888601280727868264692492365344375091840277551795742672917380634179169643207031012944777522733461079395667653091031672862650238283787905646646602455747231135773381931544676342243710564664025731518064903148052904807229491482293893739939811903159669628966267427632638120247160031864959207954663518734657973928076136851955952156421892784550026929808989238299625919665783868148390239155261568331133175082690781256528309174114123974272142456941941402785082334774524071996094154834070496060137832276843632034442459222396920873375082174290517053612724607381924917038466778680880263192400684263354093749988424155683488910280760228001274745026125559519941348021615173208834430851837718197185655423443329568727203563857579155579935109491149607714968398543073051395067659995626598175012538318572113365703928724865239968154076536569209003928877535312341427985757172402814160221929310589834073069315661851832551640456968739042518336304685958275708929081682077762465144686728365729371546466846735299927554290604562142047460627550402695802038869495239868054514057392982955196968168289773092874109017947092003276789800309598620058444222419907575420055731371683324457430335052839818063997284487847814786078333911073576363005365091068641471960991314302894036201995930394765276125441784385950331902470163408080833688747899340330533728010675482024983610097322612711273240236990008570758594184564183012623314346073361195872592499397409337388915719353139637215511201888286009731095082055291300309756163160514293407266092165908889147194868327037969483818852484898134606152966716138670688146498419578480760885586217270962723225598253886028200407099520984450946266095495178134022283026668033165146373851647286571653624264076502329252817030402377388606580372185629081624094452434637946633572147822342097562967107157637472782046530364038344727798966814295090963824527445288328998230495586460399350464102158956513109057385250396702077015498646600704712541413282398242424400513796730165229691810431009659525637686289291707396510579898892449613875098704515427911965267352600285476374872266312435782642132165630696351953787368685670610688880904551153040325850364417668723536918982182660004691221760519341465528034002687257767719995114070948601623645132307769191586216857247437218176722857339088063895763475848883194691700513202104669504097235063675774995378361329198204399684115373129692793647115530907196893639889689047895354767143419824874973605717654493058329551702171808863274496857456324856266148090737191431761239796673248491807050576487072522151257704604387314049629819994921875464957215038139027811513425000633989520860339303931771828317838222558991239353327313642127342705526056193645855686344422790210118838437698978460895273445807797669857706854736463264097339003538868473633194311139712288018671520485225368356868174291288221775558894651821250122631102725493329393680909023089173667413542953028806278296450049723973924575679545910668540667810878716757003876001848865022412787983232939284911501375865555097542165045960728084854917032684001681500530898489053380884254044029670710407191606685242281884583729550397448054136918521875126894015981591024920626358648197317326907754293447780426655739276864962388389399165387262308580130776764700165788568013806624932299399683212285874799223300706040547714623595000735809981518910205926597518001394524292383799373110502427775838612510874307640952270077796106176516825322921542015026162046910378146800878234538178155721171872406865020080959774741092044743947688523754464050009382045971412814810932228428223443402578493781891355368415032753987140308235615136326537300651694323052016706302621851201541081486939708286695887575038731706701850903082539757420885692256146129008479846966355341147606255210063176629862935921631125771626155835891971451167630338428353412179113048723683182166835710840353745656799338791831580946851096770512868810698193668379083499338647471173530243207185353762869869908515685088613012063446882496817987222992054740931196958615699513249885743239033545889946793875490180409466289734444906593571049099679793069810351969426571567903699715712555902416694710073439935339128229262035476105462369088588510504833264124187184018351763675824223344350009603736466810260922777313487472526341079820331988520136765025155604393478975713111018019879808116223580709605040857101480954545101639896160556225846242496101853152013288202815149488613562809448646849452483503024991008986661571375406483598312956030123287643309780488904507422052616003519592797806820864597662549838329468456693149148660399926921160702955000099895100950639624867942066930547964524969737670880891016851517562233730515883574630784001335817282778923157478222622899047335400653662427076681806212774977486349503885074092712132335522262165397476130644022419938677134524810667479738935108835023465155068615537045598934343330236687745804639322202858243571093892752256812403877931458499391175340555842093836874705799323183466493110497900592529382510785403322123689510911898138437176037583635923376919230704614844119676769583828930808568921696574327459030935786306547895386920492341055912391481538759642443831202132335685916547947338588005647134059191728205218552659571915426148492150547164376007659411035160260444800274854909340736609890885967960666432459203383296680855739608218987567255933534567675250762378511592207835406068530138294607975142134840552670676180275363381117190890639649592301508796367513625919851997099828811959276363267396877334382110482668109376409990873238558325356059135540490373454565247854255580621762654854131648902886645269159777877407262343704753416541761954503496014752881848837814268837105260706668688714847807341954397246184291425990136363557893177814263659707854642542949652417745005524862278869849688265675132770913378223034650860476043856738090377651843017684203262233724860337776041649072341827518036455477414503709567923748014708702096942675103194718038505415529610622191047899312344832062762349350955722286231655439130285962149569341588456091862704397509146925325366137452696132561560610227191058983944878760890075294115441868093780712110335463337521274450488552101824941244547530215510905008299014373479798504419036951140310144553706729587097646792715721553171315881298190357031950168580560756271912292633455889620723945901498876383409377237269272037691691958415805880267973548124837479509631107238694843435770375104561038925000552019523747681601848826597529932613421552363019446454610879439805936654751571594678478115682390573497366760627733157601312474560899839201818871574011101491764427827966232193924651617841288785122637717478686372010891459371021696822223550677421639714626663132440528973622636244117932244488667578372653608968752767126841249782829148891523958051243239096648507515465578022384203224169699325458387505491333520003248135874317532031157469678228350626078461503009170938696011194960556037293039638889746511945573831572219783413930820181892430537365268417577671586649841699210856933117739542454314281332717022620107551938574827214368855912627586888032613110812620685303870436799029111179589269214213667153231566165564289538927362454762483128172315499375727234807224170184482729164848172607256337352491001856312452193939107534181905330626612467780486793263518133754027502825728010134211620026302665010385331208978167136584724768471260845170393540798132668686223733681681619705817000435513666969524396112515416289089836818401421053259530887999853064094126702906758364747553641166034662066445651878688025267407651624212749225635980306190042904675486723221125709329418453232360176370633447194876784412493296643674943036201128640730937359554737409267995734824825009065523997021095668177665341805458413790489369108302794904622376977951257803483768087651359456301290479076474767251762630160348726338534063020501148438977408062275198620487738867650804580878333444703383491580180428368821661813303512927028159581665463889784654026945908865212400202348131265489462644782954119353162861837851439206055159721296034288489774223574019131702929356186715160895504971318047221270010251733769861967133651225961150105988999457578148634546612584162987629032327137482576419820515576227958570714156336703567101290234130956910208325353792145103172357573230705615355208491012823277290449218783480982011286534456249558761181786462043687577996085777731563708354494095669665995644727619914627636098120620279333595785232164810709131350040582072170496726172107069908363694600321485449651706930686491150682806008796062476086853020254708845283284709638992951842988648111527019973827228331441660332070356611052400140399667332911320924919264652249040039299026810816311673349428733256120600031722269330927515921634317227834558919178387043079745065592650197300551223861293163308786718974170592965852792515822212644780287554755744363387529350134719996490365334642902454039778528806918760310322918889752555046295351590621563411308460755211017035036627915195536607156925299901825621398040340562028845286719530418951249382862817919779072060847176974404285047263552913901653334855912687044525077603578741204331514035118209133436871435784615659557475991566758813293779582461048987290092949728013761888435471785315753701470469829082114889007530715288563231835576647621517004514127217288489608062987660693081402991511985778725253108434494649470752697982398121986665590350498767276598674805147965854000114615567785268412274366398980691688718438767701837769049263987647920745797401449951163202538468705607724379212263217582081078239391881529409577588424757296058421367163570294141535043753591876250565923919762969176478100895970742406166409828390010885276497906246348214074681602148093771807365405775733124273791677234138420854603203852010862258721557030135175232122648501544455903015297434647681334982533427455062944861967451881280235243423153917897240680251456441937871991973838464371522741147774883678987656275289999750215775140554432769488799078015656629109600554236940826447832991365205550034569102243092367326270977684591479259536947525102296719135624122532847938743937301903541148255248951139858168980995361061844012920471264943067127073719042874427836626345254985305329012716812475136143715404264939965245348489705353618093024029067474269260571306042098725213254847443626423231220458962403678656428198401803560715697161133324003784647279833904972500927523817863913073876332929452085465538115473928283065047142053473910054003668139779440566980498387649763377359811699592311890780924236034796795054280669052987811997722472255432288182979150035641784528038697770525524635986568181172445379119174668548352998788134520330270196245715149131057920658998830342018061574047457917634766422595569859865849920815049219306264192008484548258548917286499202335780718283308798465922872428728064305160256132290736809797200163328178011092380973143559032626145278552835654819739683387286852338345928520384710789848711889894201166399256334520509663188016772417120791868808385162836636873872292365604120438915556210496266870065609052180914791022531459603173878859900751512854569403316929553539411529988697334813575463087052728195673645568888375881103404434794737891185778213032214137899266868938012615781897706128736158915103017868814866023879194158262872915250605447355543170780698242673095901019205086408988312625362122014036477136374727523396274624984998110914524928670091343738053378570119998284966866483911778220005300769516752414525261168408024630550220202009967424556188816276088314504802837384818605829774659887415707394782857103661368725727714321035374431078416755384990865284563490006211643443723475059768549658973753905717166799097101143068751980011541612523419358681493941277988814984565242179877361819836771372346656219828375964335478479832256868462974568579797434367089640736899791651309946570400902605660310785958826818398402825965927109941668922643542220608311175728857111307839275100027782317899256361484435976776615405173187763495041267821547533786253316098854146372405378913522597400247137914376859620473438230223010863767059073855499017454280239040936622937648089289191003546760752496028284431237248692871643821867019546974838746679724367730667095747366107971651521413094134823594158135447431982343227919971373592137370856104483084452270626639069632504935392834786446140315044078371727116564050565580017909393494901942104792390388234947020596590991612330977560502391488258011999484933067796265356657577362427629588188359454220042961916644762973641050514558572859145259409955554000682196620408640137324929846010134398008708146669439874764257650206123700423963746011072960814104335478668581683819787501941406221645714620044045845120586195557538721057792630677746139760425797316952764896721403655693406084148310817163501526385944634795712122173146260846446117519094135243586559680396461206895565235082759607594351965572523773064705240907859496662203624762522968193238333224439927534750254123188748203429993950020687995811236196908763660654416838931681507327836191324561781315930659929774752555492715028936441065146966826083731917818486523500489981327830331567410142841001889495914540809201679597108290669868243209999652779371105112127416952802055037231947694735432902689502227733147670894391781498193377014550484647282166092478982253946782386851126864008041298673596352168729980885590552226687987037311187854523821760321003783881541793543793399290657392245182757080230882097451464318484278787238008408298106748574411696541730521850210306911504362431386067482343983426210671932269592379615388154367418970690134029854652278969765443427862676983278528433376043477081243203860387711946907423562117359256969028220986109292476621947006719987930886854034392234794030714905991820505272054405387838609698037946794109440132811034735317517476626610042534462858273739455542982016127258899507374416333659086833931885430508144258765332663765641290466393349473614661234593339205194922843388927761167279282373204170649699607049375748648200533901110659586979521956757621435297702589581087028007678441475344969379570041068546660928500613266098470175809290620280969057597016988692773344156365275694987291307841259958094650065661383703319902524053781119771647467673048320328308297293141601406185102615195390153799637456810168369221943938819878170664088944003943299548474332222735055430873939460445468731753019995883218311127516359906084654321917831083170088800358879140606507609351671617434320354716888688239954175892158470635538047724606023580210575225782452476444212038653369933495377622246181957976051430843840450194623835797947422613902002071529728745125900129478630109144168721131969308524277704980868069767779794609749079821563436769517650744665345143252557501507765617833409995086264445533376621818823254502413281850283063661434909860334039423453070571087088379302064688556545680831705134167569075092625974539161221921559314995237563732095200385666958863592455678054217271606597096769788168230592558174494815258957970377476335337407438170835546126267166145643378217852054815333885914167113108247040188664108453686910929614404354073284032143498605892850630198447436773194414121364140469602852811712738709292341377133911100250121361419377971158681602497831218175893257932589565649732745395287949375762956421263619397997796921564649943979193168752572440691532582110223354539259168535539474941326653757852661784330467248326376408618843996128852893186141272133281170537149991020422981291884858232616394939008077301268849539324238037928772396608369969276419017473284432336631989679408325436267659679752594943952496708724571027770492141971512683188894487061309378692148893943099811281891547718513924849557999464014677453935164565224410295979910155745960215311178208159744923199352925058891824640889738072986090969196750874639926197684640010472939721443819630968148483191493177043499240056879642977058020986290218300736036155120794120404763218469838472195864644603359209212810046717743919042898834938942271651900628281934735708676921275083191519462493832185008782665749133683069139104817511742113827491056072362564117318911007696208999559612755834311010066556309373790753494728690798402833188525765404349865161544464293807227291564010053358533170479526769681523058780463914912385250690544494822521495133935838412391550470204574000386269012864560098167909871035866578289653090587164653956988473357208213668492670459363413817120646767253462233370247987139402770078165890695258160184766687779137741530793221824068765792587204113650982060794016543399505847458855138260305410750118141685752308143926707741818876779638722289729062566380178820372184218761260814184162314500126814148770861771823190328661868395084606366865440649394384734410753289826684490449088244314723199220388145642963491844734538327765050618869862907759722185964128041211287052213503823507421917653227596708246473703089508457435578009420505678671712011043501451850667212982382666542333738759216017618747943333607681323734897533818804235675286947417809761432149538172430676365445064818050605758953778995810060311798049633288150801782725678128361210400297703591387510133430607770180364786669532438288569215905163540420684908177203236098096605922839500337173639985287264635284029403751086256755175166640575159801429010049793115068911363613759514928690155505198289923220980271187309720800529525957519496357693403737816096213033465442373163205537568594097620748589535137294588594513825700181593763825636799168114407786415868741237847543967302234639912420993011693167762452076508675655836793351153170898080754984727436151991973476694833276306362466120653635303700594262112900631544304606108653417650919914135767973121831879322698516397065526750140306225658263504569434205667861078402108510906095855594772085429945271756541691849016067284690761960308923433285512915777982549156552484751511942508546796909464474449417637296911016394237723056963363085394538334077546373744656674362239348779495394137805299254517961282337277933157126195392033397905950021422851914277584802544712923279259346762496671960049873525461789075201860488086166903712805582144473298717670996928145983501120860655415702851722746441613663355709563078684423522140599780188125778720316767209516397194338465946627102857794376144048750004082912395327314977409697997549772581662428497748332709938641700137665605229750399285982086160496405870695056659987706883222669232063116067081774585172314769311945632008275439621249998702585524313071154849046353288526155466646116810098787808395471459056283387211502566431350256999410666442308573367143279130632891709040526848386201548567540641751968690040139551415172837887491785493979865254717242733263676389740777927915816268039668685143686087730975680061580622185197885378038666851253280983003632064783825295138110699866280107695825613549116147513479932961077716373635015767074802852883439748872567353292157936600394710040477771430563875757715830932891004768334703411064918331496525601733481448458851401864631033195340529829612069204551928227951467423922469968177093307482751617305929706436489068421623184897727332149941606490627470640182573897153512235301808682551426406574868864012612388678196769067329793978438924593673568754651767287956963603919073312648625696643625907501989622942899643579128844228980010406580958961694472413231538077673561639764624193116855045166514273944246769514288972006676678602086783504490619044662414813606309368829419536142268100382125752809920833352829848372712541682527876963705819292306816686033106202325240375618935389358518636525762672314685039580779535540720162011472636988623589674610048410593504044054045354256985745738120858895177399878058809269166308204723060865597353336325965157084440932951090103368243571700798306414668086234572338403611871947414181123029876488925908361136497449399745185047792573271149512790533397450375133598658171906522740831318262817983411457681743305302712652883736446173321270831504368291393269720578715137672916698223634789175182859509368377962416963788028993649083601651615313296010099521277712705749020959670026368277428458061634789494141164088429918444577454664189904734858288637389871689295512292988265668360039583814260111447889209828797016818097447588689609697974083975334183165919686814405018998794710276509203959043775823426043580039778997715114520057998268523551295572168349277145785052114643126716906422724407837905112125478655325863498822041264869324623547992374434026863406406251986057380150338370432207416841232568914517897093052212302282218787332362130696765286271829104577646887125360978536280594126733321103543003086217409903814693398629880514562518652358159560736643578395570771853550612445403856441920554656617529617834186050898462335697507192975604793587715613114775298554770855442296625887612495845321707197601133550928103864541895228621610671652208786495199358017773876705790870768151288174350649264939457734006930110687677490638876028336752421733438727920385570570314238845922464251038148155406390171987870329309387655096720152466166264594467442256328329222758568246452887575718669450226265145483489192741414617181474233809932670780575935320854550977260029256249691098133954844786783358251799137465391027737555553331630635839331627689038038474770378697165641203383308656489659137315073247534532188060093610674700483786423512884331431581546689470343303447004312516638982511067408071422962284770443532508247815795923688670030455849366559749653511737781474549033778208585824773737645795616890033453212936098790882813979812956516835589773093153675732722736591946533909140207986833856766221795330960967640250680188006715152525678964980201699003474202019138514367883437960856920022404038633931055958144828410875843616163449463116741944152929641541676104203768295134466270295494727303957233171006313133382397651710168234806257640818421405974976441549161676585193326020305917981565566879723652824304891086671716369763729311001589480543742521498845157523558269234108036025481844706639989848047705917105312933979615023686520065548137390417013364915511418043677993236459595610072326990273999225173400320518137420829745768937659350350128899951695620540772063130936317300010358259069307931473636030969126654665575760753200288368519661205611716597405628488598315968794621196106279723679662017403882111770278698160627428115072052200099684313450458151684827625952294719887935331743585527240167923736087000833977563070717602027237522496412451795717026772417613047723699174159841332470007624444765883873741557251618507420687106799751973370631013498668046613489918415284483610871238289598342260598487712074601879219972972150795480303684929460898915453414611626276819412941565928128105762245741655913921346590280365270986233222659571307182150046877649210302880240507394366319325682595561668022229329841980161188527935796588706405643821755044090403768365328428101789728539807686035663463365570525378111631956859932300810513798287164220693852888663469467914246712510092176973631065637862466466887835269235584229535800018517496637271976154196137559868381654435207946065684014094431752913179832730642214331334701578942208173354508731217626993376316444552561885159818056132598428316295355494939679662395380368285770885774628908664290160100448216677564460418226109822945439303514818076737723637803625763547596592291934075251627180995922721395762423065215745086886668370645863506278135210399606274048378091374290431189044955464873134289195335802235515902286983291680889652177526626225018047511238635490323703934219266276791890816096905698750129705806430510307959276922992362092902116775515056464162245720276991636336203349239649945765356185295249189076660955343561132903614918200080591873013245205152284394458903882448916707716120544708856499079947204298374386574580747263731709010348349467845322184353214561725326666561952907860788766210786859600645346722773952323635446353327175382445556225636669423318422192343307228146006354665142168700176286765148642585433261258341038180786369375399245022600906231072791888120451694466943824423364530456528150223922039426670293234256529871859863647274829511153069168325305646358114514999429499251843389014092252314678430567483342426014556363974134915013425705009262834189205146193672260992202126969939059704264355366629993491090445181777346640521604634577110432758547314518104544927659084338344982568881214745595296162197214311305652746369673908143275028289065714202330773291632246389015103202843519080088155987554290216562831822829488756155607617131419283811739450483870918761408568405871260910773176719868538938890991538864229278425845571384589126801570612199430449719150303902390614256510933537327562398623348583842911997158488747871799043713463667813856850445462572538184116487750423733205238452040807675509259822945810578700317086198732268761450171041470079993357253153870528283374462940314484445512313602880809575424238216617994438266201681824220786730600617507699549454348732218035447343325293550855468716364643421677087052560209889174579018870037077788782304090898059085328762710256673676608048304543585040032472754412617492598168552127193775353060834603272033430792575303877846781632485069855180486337099621011555019140917320554656291826726607524413642289292348615735894435395675556542104061674041557551929635453261925990071060129700222510660305625156331205606248922623560439917201928451789480845567841178115661367054301305583206796331918654966165179421101382119807514079097332254159286824563071649762005950744492554857651432256408140783832552622226668925941946913138966946355489894216526149919350308764949889762145247182713576628554222609505137715197849295794206612445878698538385769288734490252011530646899951723638818108151444058136039894036927723094477857976451611381535941655510779219093900080657269672572655684790564405539995541055323956910361882181288203186030563603762845333292450792345282514391368712381806378157577154703902019939859889719077731630055206563764489053449673831660926221946693470360286800911420460736853422344918910325783449724704670451799915720469489291686280093315666859685158340933024064762253055443125172719947205669853856065879110166343929229805576113981569212989344282665587905343152455199526965625472150558113490950066186001340843290663945179831287481527631750571129439426788953146024536526518062841111377299530724846944469217814202581427652760215358721048390464476949578196065886144773100910502648920131249619073566315391851718007586949689564231390042003897798853546842402848499615868191064212499786485814749330427505769089222866185101398056400744748474845243612158684294892767257677449552891081848945380399149238942282532194730782508260729625462158502699067608946230235513667370693779625899660543706278236833982977475235802759906118917274853031981126220876916965755067733176425920076908774960768578897519366419043256419114775797285467588319558894132856243925784188101301402729874088626458960377355861961787845649624161762234105982849554678596298869613369866324796917745339738945763901205285093129817465587324694172672005303176560422287468068933411378302213645376364198214204907519179248580926490438792711979075260354412855779282029480004103750897130965771707020547472998437665360584711508185604885296078353756432921618590014674772223030721194321559637616329935826951634269403062164290647491658033571774543792446125063105257932091293829168519865612315824510230265682078832646121139868719084471389031772994753903423398665272055049556431434556026605640578999487359094970707448732920170277743919031191222853898387823688213370723142854930782227188573622051435659578571439951348990775258916883262754660817803849115891200290043995991562973133170003262757415709651766886383110620639472197995887524075837665491982313119807049411722945252255566359795569196427656987750077816496392089972757196184060373124000640284166325805808207683778466112547413326310057184322445425797113876964754207019827864791817208834784080706740413513325113520541539541841048833934419109258634723174778997550198467839210363184876036469421301363681744453789335383892007235042797852727920567534243106018937749670666985160910983164766356894210978708864010542969302608851557486477693037404071004044141952263131799753551275875937002002567983595018658757205388664625485203001678561809218959763408564647416294288365025509381357808694475225407591509468427452166748134538706443080105335446039423943387566129434308480985787635292698261057593799862679100507906878634327595325666371767682018127194445388338044389305138444006822064136356270134322764718999663289509689427350602953126572941860303376841608996764464517836333323753593101109147915286281902333627998595591189655187601736637458129724801841135473497783326686515869475811614528512861902828441744151407599824044132394572226888526295729035830111914367133924924601492675200674001738563313554164299292275894359466288310630233940849477566670938779965301136250647019130689710619032888140744002358577903206931022001490269377062957163576181049829421759758363320311783196583016741547765873505566092620159942502160269146886498352049506603099411062361510424397331468540025638696544209680492796875009189902790905459101171389640603971985682149685901897927071577970379582460165973984179142699968231669473834987891734473642623438926962380586410081698091404763169734717464850963148577247930792496511707426537063095916832623514270009493761028944847828698866301447167114995495559765173658240575814077944150911357924810810973783759533610420392513647019353495683341305408672141881101360306146912439891069027114797842426699525497399822447765841471529167769405366664541159129706937651413939498351249362077061002178148236122857339685762283290585433658129240376306811252060350366530030837101385071555257683269802722033529620071825637495126514597391020588860673145977674358273018888599579524893146160154596797935504123763598399068349932920044463623803172542480955049853056244133974154268394122801000479954802943694045716192275144235983719835541298971238444089666839885906692372398083392559698182044369914547189559286373628395973052360184589926816161795221199668654669346877078882554752533732998224786371896569925736378514055333020284741254594249868174507177872163339975705547497427040790995248515581212135960504325111496769011519192644163431899352218275396703432724685744092889692485557882870556908848245154519257631824158712942382332600172662805509234124430603710406798058924263795169177044807415844003350572320101394855424085758361786319075218319959123808170960139434057221874399109656591308407344506389947107690190733372892967892725698898961723674900660740359579840811514198791625434101373221964549943552677581675284679252306325706320244439960342189951039164555980368674399062926735694459312102351601736726521877161047438382919531358718772157565252492999323965720932239372637186415025164608632812109338126202735626784756498160650156975293685317493487720093900356548773470597294770005075558014221228803290354083411976426971062814556170751819801686056412104794807812234275594463948353713752472922327783819995815716576408763279260204725115498440323598958052274407193108342368344826909443473146044822872345726933596519767021905508915813931156137292276024256821268027236982317447458684320993501411390945066611211013661124020778387279179940352082290990805287736385195678737317506724803288782017275881647463158808240824491592496965637456232838864492394664377067560791153186203931771030306154136576264035412545835811426105882957950222316528831391098187126640459335894647431751667715494356168223440612692716728178847007569741252884940639931686502767377480270863802241295096833564623555377602585117144830922054217227419896341167779953840533927409569108440053061648810260241456696290137118666534296930629044494147727803912266535382706633203591874207863488954322209590357904221620637677856175098251918797165135381040948779628129413589996567354701824190545474479738871488582516912490256638068518893513711370257948074768975447472572604711777126114087380576433729640270593462052430425868190061408052836012090661810566180708685417926623095243315856446895695221237431924620967750502665877364227046728194170785955772354612688784166194617706729937361061671534378088538038848878686991147301070625252733550072888372795845860372464307578024317303202098716256114268780451955093761181742025895533562555227156750894496550215778330657303703042382570199911663552877510140401063193420162724694810582338937935670455248350996483362673601416318627534928617513974372860927710550571442031126044590341407412965802381715719254702636059516619445349799536341479261417793265123004442882977902931511162116722624586213974022258686369495091828877953319120063116730286571613058896621552681249721162851693249565950335995788126774031960892900851980728767067143469269231429056332715595367124612825478745151780756800335059575577841555764358408124170320818264013858643535474598122561456684061329786875157123990121554027950405028754980075221499191722462713593107775645195344490873779524265788915818857844220653038761801653913284474643814884708303164449505664168788511922113783800276586560243474794699777253027644045493349908509224563658465128896979529592071692127788919288751828248727073946840651400997004982114485733513614657349253129747184139248687363397021472486763913548585938686717145702440637095254471131098412693378954400582062270100145676737155372861675593155383226553600119839991712680763058231620564505223842950956901740229107543661789385318638480016097074577246541603196838118197354660912617314010216670718820648452182308398590868516420809600658997402232696634658184151770161494369757499720188591363158933937168459327350917300925853956745771537226831240020945319464905080199648977847825684851999685597917312291108075931972403875179754930274460143637973920459514795949102102495590902697629376879740886851444140550673689978768162516030637669028865188779393139297350179736451661933741662935831188153282420002707026743506888194629497906520075020281673515705479495323902795918236368142888565620252909179115430343023838538821899511548017594594899932353499426401166980027409950486695732463864350320472458627846034912299754216088838891235331381423284990553383198307117878181669745115430138658355944904667083071630110233795436396969080988057435135556549800668295660701919221620578502761152609923491569371191183212440873869819650254662866724670479729957723809259792893407077217244344319625405697995432166350905800741986849419774111809802716610003927762149865019747088037499080089506761420864357022606728397141947751860065067349415001306255761895916088316586994037274972862434360017871410733645737990930616906866150085535108773370403476993921738025022617793055104953616757785137095068331411999105233585446537184145284835294097127046647933610198108103072728606843912727641996527296151175616465284527846136745292362932262666973826302821051625766676530470079799617759728956401487272280049503076311203923091757153703968359142416014874634261440452951042249818585973002983973182010740255438812611838653186217586511265713703194440739957898398053544065596606198234250661321960450594262990576318328479943686596275266555019984645235007368661574025539148531935337928084045685210139822195656154656341884461803804202911060734861799458458113252270513705370740094661072985807391303955235750413307596908962388180190549281858924643167273879428529242095990379500672247942138870950078430988358108329814909532024210999793147491662480042753540795705290234215599289834425776312326565127326007878130580340941806349327853232875275951118913925475211667361643205731065197385683238276414090391552297348160180313981834071102471972284573387660879472743558441682289785713675671848451146663182284234294102493675281780550857394814770667910482595249493548856686146788379974494771613723057917196451178488815698127249865513858413828616812692136228099217829616416099108752885910602506478053793793855990487066052084752859542824878562499241663479262789256341302116491835816353973048898165301182537205839846048316121459442047215419552191809376969462506220502928815327379060201650818466801728595222427721721180050968220271304704366896172461078558185307674727781221866617862037401531913038363459421807998357669463183135333396189572709756362295746348349542343194393043818006110844353824114861838032823522643791336182530269516376378021600707309155029923740000150210995006104302170528780020850877297736336222222381042766989423226405525025367019891571087308770320175676128665581633365534745598697396033098481053071146775613505076692435734952466110592751247866265744351736273654965092046109730106315236649031542501170747142366969004686399729128950482479292248350834227456838695837866399930220459369503295668230986386000455595489707565406525097891352719155795670183160398429172193834709789372817398423709251794899734671473470713041290984904611455770495846424714048092008363840872744477564649673537740900538056866682984197115705390920457319835376708944501592032245037181841193203368251075412170195798359011067262056115168313821640776434470480321209063934978953628796892415240105687372264039562995606868880814250483504148516046044278600797270415773276215211073389945777953348032535766099586592875452196510858327711395854095528201221868031256701754448131025040166254417544451690470297399798525586738362653284606984050896254492826059027634456792911696595206254554237055359181549702582240775699888728077564254889704758392906423430694770430693082721565857128695056116496013802810203886107034402066439304371327098985897910792989930928706106785675855648806746553878982001364969248959326635043743358371325422430011974843152039690501766061065642511082886369539532153087961118966035347488353318455459803448314738226506424232329259097544731494443316496730093780378971454946358285245305082939169512040719069546808598941659388419715717318555661543820330114316110353701515210441790633561591440623179118460092579020596580340397064954096524740080669129992666919901566000363574188853625087432216143463445477189745652385111243195990065996242113602702149969537827092101755506694988157794100796804708984803702279537179041246318680368280173260675295731807563085076666702665629264639575650778455244188951025710356516799251177870818340717358047270816947430482101209943144778826259304311696588933279411272262184336811488181636052728056348170041064036842069805197277228730186871823644038256407837959837755127412959765695751774816737242291781902567980650397624683674784994193555454484304248855850440280891633067025668152826116440225686911995241009591343846820237266864300719777818655298407183381636962665991672644853554072455615087981011600233370828030888638979873976026947664308545853745855168172984802118857052701683239419546309503180070127217821308354121579355991121141247808680656120253413897650751476961622272978334261918061259053764867324597163779356556303200830595317276307371471267138824587314422670826025493392409606450502873377412189212581777610088528789660762191659741175296661060448930371941669924240005601508123103027953354325893076980744095542136557044735214543153183237747514313401377848109939975136607496946027446283600307795666611319426027311184702888459884506576484253094204542868013244020861601250176934430081623537294437993339161586461156506292524280242788045989267914675627089336738024225400682079226010975285362294462589309102382204127937389326281671371747922011633062303265392704385221168952522035891540775115539432873604572192821504224972254304815580530226998449509776855123743845547200276354510789115660438663585545924087751175804950752069332673633256258861350770645648286910747048803220339391064165697282423388617612183584630678531729284609060344893025377958191887311382941357597144591480995593595940895832534393915859852073656098582388329536582081655240231864128707285915480461353570536324723144890568473541097987220164266450463230428919213392312556815139944953694286819489533703295275507849091952832348551902142316806755633999059522856433998084680521177188235797137640261631461593358578805818417165363015295161791444872722435244962725579563001435703829378901627595431377977260110994911345084093026157533551963399257538936633517417219144431737393428064653567673105702104484336008180823745343259754546190668560733812052728074712143739450422666528086063027210376314291943289342010297249370079726638979396049095267873040162738517579420957673885125645098994786452439029427892435845760204163970398377866481412143329270909411961107193394403181068895924598109621004152959016103687464752280432390825199351859630056010390454306756614632281371270931059800110321001293450505404658414371549596738716588757828665930879705831771917415886290383435674259271030280507263260502931891842020531178568726526324946153043039452643657009724379448639479198108607966271513635633929383011449849485973922032136624253532924615644419645794028492438980665422687329134600960083558122682297929624088075187514770015343655498315810845932746561900859978660185089895196962200861799917272736014745471320112136514587938346293311226577637441438113035090157111635194126187202091708243508629199569007159091633857612679276807913765556962575930968466586384560908399268478458062956074222568407159395280687634028830497653291137010591553804302798257544305091289424967608988675291253625418146227025891653080981558930268530835043621233690799643400601200163633615996993065697915793457243069841613928903104626285659072664228060075927654747150701972827476883028231536438105235012826316723638555990902658291166030077703724545568411635779825160337469642633002573213287062689076336446552639142104581210413937607571319583098533151623912545713281394509799585022728163224789078803953047888544557866230198268972883182017135417540972737546161228198839379137553739308801366056201298295433212586336888730602711942365943089162351370086915689273746763435922327110120642009205054135637790145213851442645474897601245441372128967140740223090245460869448655594551178016744182405485821717367883153715007833071990434779609137871078483011220216898060785465570019665858023060367651506514450681330932965573346437319145598324238350759328059216900876202348955079565791091053026842174143097760497301138310863676255214067832399628000090106268574001726983711917379974242395370853107693637129341191872834675872402626885831371413930078443705750171903152503285738629867622686515127853764664547904756215609738590841664190429142557589176214420721713379252487576573718700284992444489846065653501706041477162496354339501458662830366341069400117460035640693462737633836486589343151266504483638984538487052561416474613304829373689065344409886785409303571072415652942766898568284838912146523677828000420922646591945177141385649734570216099752433484789955800632351391628648576498575007506384629352432142541129893694697776399697099368498727936907956217394572073118838445468975706077347842750838307039637465935241531932648361323851925671336562664497743827436177790955925806713436701507353722488550257193169310977235831814278104911204538253757503591761562898200046442475535060399534934619330901374615066731003514105437060524848947955367735619599485742011570501218603219788092306363142780391998674954499793021660215118536700134774449502078003296382499942116686956266914703021732329156383708463516263869423851471571567952863204670367895449628009457860749078707815821822203961174426885923360010064864521812075050634326310910755846392602172153029876878312418667486089630051170834594642292912144156504371817558109329362221928606728771317767824744891561144307554701588861805516601057255919891988293754869626389702005056478449003924187470065053293449659141874739016653772837330120728177195282843763470869272722188573075261101389451619743538153890716714519377861430783381270723519977760727574797526608607778154849933905457487553104864228420773217955358659369988917073223918452990143581357264247689228890122518444112582700608772090595287695371059507427006868942242459565795823408754960656915247858088536213995944957846039332852184078872791641725049052889675648874105050718535465194070640244223042380791078910421956907708227997994415010895917343580953231487986237334331131852516617007631238135445892123399345387676847810813518415516642974317654127641823839254990590288571331080965266289057289476784398335770103651287143046368341701374821074580158865199336267255835746643027941948079193682432400437649441111176944674644019637469826085396229607513998664368241393841768244933143572349511823500814576128697208610249649543131036805483605153369578929245575110008007540511826785682767341954081544637258637705156052891411196877713089393684770723060621784264901989603121737121695434114045451207947103213460644576448459860166471402435238719048067814233869823584967181307233124470475393174740750068746768066040038784316994901979799674817817854894992413319068157836868286628767399040060115243187082992951798439715301211966873238468049546562964316444920503698362573627573898064313018522977449644342135462395289945285118009739921250701476665654700145924002203397095944484615176075509465532194249793724046117307734402555266310293837723680701778557248136858611340109115598135494806842295455386634240887772779880019117557792598328956291227491870723114294489534744731743922271888216443125174075525421259351404324766725192506615215194320787641639252656306063954338630635304306425276964245327388858674856040278165101825424791597677455402706993124364631812833006128459404412057893484241572663869431350967315711681896046286501717592150677225708138542564701796147571703244560086102658981215373019548473767798505698093672799112977080293415841204800097510267089482171252550619455761317232015265007000792764309332682625210061521831795214077135677736187831783562158489659511754194147638805675266284229942190874596935217515980303398281848509604872754209557020451662628952935884965286681413769937613422458554679332024747101499098076539747379686112842444749012026266329581094224820526836106038053472793587804082105385477899837791236028977082721054794701009904856924517372735576700885795536438570816625794421104503646496192033465020347869242431385330916160626116579673388597387183789072351539427741979122932797751754209648502807372172001810979486032174480797826687518789518086655092331624889219028120592673692135627408638246092250004191184250789628269107297580491430405466052221288529520326265651916978204576520153485497030116929673033198109801093098236039885994346920740564183000975437893752337723474990564148555476084740460167344334638152531804769118817528403172973353590013168416786995149111828710174447279550662219478405450638600143042059332321842091438683583652199855024233800924270381150526659014631644553321878863246671938599364494956843619957887700164577150855128801048568453447338805061595854009271275404925297369783053053310837479297216964353473174019884759431655834829647691491799354156502400934834965435952732887429537917085776923167325181634304830753179754479938373932851342696884967240982071939391430024669469780301047543683908536917411511235122430499746845152103505783428691823236220744079487037787716966641893086036397207517433274068162480880249554633698294830509554004518984737977040543514964770917952545219724399723803762367605987745131934422075628320125499767469959378422369436912303465477232263549004079765355157466862676371064819344794675723486614866612406667669176376383246754630556133092133212829209164175345957453495840359982105998329770252278990881925740047282885872564217023511589804791717219117404821127942619800199400274102889282002152950005871631078055063691484312794367467327302752188663876975117459200457353935315591601588709889297106824442980129917893933904082933023883284501087562326675774368993052472453047290952508078158311518071282448251563029978044235700747958776765474389676260405622346613688495417311659709616387100297897154117382894991736640944493817905899870801008921329149791785921775133285962529496154064375604575406668358735792833603564459510932341429982636103744150479163508493854047829409795157115008628842354212834325885535828553648048912540283025363035014353966933756481664556661112738551880098026653470240286899512492756376825714722372731759705346665634989975298892202412363407802858651536218218655659348972721239565303871456053498817644268732819840734187431864371605259655631985031829483032060515589018060508536931480493603245219376377042804034836186001748842361486649251569318988169847566500143226065471126683266420124173887285906874916998430771726130421399885693901906679592064727843681007172306567081956361642248850116239977336837755726709721596790149395486854238138703105697325475253623438858442679224576465326777613004458780306355662738085846292711403521619551483178870790270369606129569168201782747454576113828381228518638005856694224331039708090734524384342742805126913886684060187763397799204057246210394739807713898955646506440172877974197626028778718671290896450217321071296305320701257337186668581316305631494355933412150357565368570276884580599216445448715899140778772568397514571390140690863266895232403736447715301498418898950317762717352569848866806357738153939864504535089918366103570387459075310536696993757245002077340546091622595999394782509911131893622604539145520231653847774535490172687009699492706234026655524233178518821750155670700211029868196029645784571823075197660415906210141588119332953791907752331944277202138843039925439053665643794015687909313333611556020743047588947432247252960130813037720445663664489239381556237933828977099825477016586800584938766499096975814872212191226112977380560114618555628483053101496418490747005745320635971941147078281027256844166207157620859129693314479637908237327165325802397410958161742201095752661202067744966508635299924514165176026388686046488263488959723033178360395740138921685097010207130775149148271431042498822785259515667315703962009845638930055558337862172111520918873488306755729307026536927380207988517871521171833933348598177346393699482022094510422376935387561780584750830252641565421087073861713082780002615771453664035438670993824533698651391383661466698526481000839638799402041381561950659497123589836216118351493348627333448369412930526777177025270406325349699131384104427768246250487629892939157915415706009896763682889288337405712132242679874545633433749168420469170676614653002270361282319590438368380486139724452874365257992491447453372471123436391790554434493825204420973215516376080765564249403397161172099198991023852740524194311864523348176383778680032270263925906943615340739478869290973057923997557802060003053108419172183720122245174219747944734859996052393029231221917452119736855974261117709072793393141300200535076335879198119595568004646053636701685146429413384819788385610646394845072598200146412136089451827079024202261681918962174144201233698038798851539843929020728498249004420204531510064394268102495030107936345270624792235328531628209175271915686460816689426081455582552250251130903941966050340643289694451320846488705498226425544251564067555393448745701126832508750163082715100230805735568472384152783108136864695366465567023024005886390336041536914898942880944996949426540139259632580041008836291455747324650161444993776964032219663555832611920580100497398971368132711572383754212563577694595415233508047164297924586019973394246181454474319941970632809382713335169386643115665738439395384208859031395544336309011822233237882180884472292456805947816117651530716294178532384212036714274732182987123652648728712307551297166157095566300182611186884921897973046367970580073026219622734095372471276682297520236147740166932395952426672915177980836201124217701186327258562641555945026205095755466159611363763940636915308405518973362090743405206910928416995180045514258628520872738249207200377118193314469112812215159410061077555761455966191063015247492350237109564616157099418510680426622551530276490769376849391618342509429809540094430127692407669878281138662364546877144696958413921753631809569159412581711468156487434140183840235918999842354033091865815436657366610607758864521714886979583136346602471101482871243604309731936873541266560123518786109195501856892323746341559383633134306713451735331797062999442775850816109622251055716104363787294743956924312019511677779797511023060217272663422739510200757113536492862665039997854033106340728978387115539444794791823074520669075688287183265864958914218957761745115852151170191206141741246378397116115466385656239184523394375195077384160816730867570550590202993217327482452922528677100266989324627185041019482397272305940390513822814258965868260583076657353249947965054933937327270157816999774695505636766445037538306845344809726623581748456755866319111165624920486363921610891835835509024824628173198657441296352819935266253650385991907223405899764332798562470045232560745804210455799479770300685428847896159731293427494995826355564838104561906822903223446925141033617491290016569410495627599617880927236447755466545200229005007089666831940038436929205665061742752211882974266271984917481712579635218857860614062495193859542471453600416600445022343835223385322833550695786024925480280104622762313950094473635530619698170361795232118894536938814694195241553905622524804646948325762741737236571631196495866134571640288773492455653071679363607877608148820084686017674986722888256069055817903596437544351504066866184003215578539122514590177766068698608909203649327634365882768100481326069945691991114520911966349061426759342918532028975278711012173098804896843803288956828781419182661060012731164751637049207393306963787086803658837565098973052301618196778376116658220460618593639910687810026861282324864458021115032661736569240735908196808252485744548220451717291693708895698558266424188552621464324405856292447739809152603872487483791021262393217277000632373886457913672417977792760018222238246359882887666880111339868842095927371957409491815896576849182708840614876924000934777010913675974511719634044204360891732379034851566600634481242073150229169731504178082862110758312156000149778008007259388426940771417401680725555461740627136655275726933681088408687277464162359810909656940682733888119121783272215122690394074270152442150046158694326214330121440057096095292938588062361263985567582526700833690427049617639400270930596230517365400079120289301969363779950318742929909162095488089244005435156844392913809133228583607344460599028124438683041622785318484799114012711807479814267657782567165761281779273353671874483414115623679135443069099903996620500841741552995134764946339479077735009280756425900209339990640832616998884892075225326024537819306780889148814749141725416810748532780899305330327424202729361728428061744654061184987983012968576199071875005187211235035321131682059607161504253715376844421076749507785929277389859467733109427169590228380404489657305447276353723144720050794375708583208462400658470657189734026771114557667035143429234249525066033129743827539241171037227478741421158426381104432447663278508790193624577763716669126784667780256105759240389318352851844197623630490730002696984323165807327676274399896277053830339077705995601592126926952165676240222211269943799491713672486117628241415103655419704312650982727826693431462237198172212824249778691357710188379249294701885967023171161450382455433026627557468360884921716679223612571032321566468424016779856963922165910144123353206624270854060884980943618697908403424371829121117273473485759994921094850177080628890317403041108396144431518390570555538860989002337630939711544062436447011034111451899427097170908481626889232500894895628208582587005673934396503337801634103498534161558755671058004645277023700024954328498621885224837159739540438400943216429929915800012770605315760664410141137899291581605618788718489327322384359333404357686880160190196808851181658788004682593825192680024420264086065355218659581854923335240183976200071572458318928934618092960139065638310014297780613536387206529992160845133031834679109134684788601496528437451048457313854810176617061397375320254095284233988455614625192221752775638769220138673527404013932819869990343601869499312856810802251771336854122641404571048975463065803860033312096651914311414462804541132873627098016704391225895622880032516786259191830993365876531482658638317322439886174974450166305857363267612403289635419769580761770568590356074022457054508180645580235371315667170722260072687399883610644221778444936613408652323499326662780920044936153741908610417892401497794471533647819568966074730605461586308643897183864869362921571690556485705860604382918378419405104410745236890940231142588318382075254219166759426775698038324473430804674514914472793011085926087151993003198299079784739628048183873892378179029762508820344020757013602474977646563092109286414394770476618494653338413681038147682132344074707652900918483480649218698393599130961078820217503090415985928643367724320853897187770618016598110353166461297041124796792142864947373154740201817890557299359758601743345974717162890989078492166037780610721449663601215637441094820616615954742392360717981238683336985571017888755289070465156821130919893398854121496676987834399443586225269266602876134106085232079687469580920119362274961043681574831207317148590321544892675675137173768649395170690052442502298492227384710930882245762313765916753750285744292442413955862360917145953779530936467055006151334350012748330443702223303142955882357715648719498574948578076600773178522485457673935152041331637559918002483330758103431987276443377698006590690143399121666457615100663177723691668902417275929041783510701338326247348214022448103283972534026984484413880078979438527780943702339951055784548037854664961285568671971664628727990494216048730865650701377620260532853612988282055534182729040013043047219342791700698134263502580837856533396773251585214962945896855025426728803593927675551030249187892549494575518446457048993630572161340350410132617780798715262577599081581981028541468249950566808421924450462094535484891086285272374356929426192627881287754374290094940224622942623854397697667147207744866187264800028047929835247886003813958378475746454624135802718304739736454324881090280328671658494589699908407986566230205493779828088020770228663549896423013254253057659160694418596595844300893699898768014229717103076057397114869406683927000538196516303652028482824340166330570977454367388771500632729355961286154603021037347127331849338775281560138359433463952861400086674309273784604551742702270521287762743780852207314208390868251239052764399691336214810652185340070048486967425826768052026986817458501759610125132640919004878363149285412189056717466303710762257085284368776118313163713869703919448063467832953878805888558533824386248993930493779568047015629402702919407546642549439842375585093684247291792017597432172683086210216506541835730490156208092065133706853513447149192176956799526920728284300161433005526534120426140140222430069190683035722076762798365324148735529002632059300106237214952355337013174564443386102431983291647814261516956893068840199768331226358970039803675687374042334826434665592162178950016728043677014343493575111511365850079868555452527434582289966694290047282851175331297833959166366454575986463570570602649142215191079919748065232592085807750186566004180993944647408302457147710609080685805701541109123093041038373866854919663676293725688490533286841602996235182131777057302201312837745823428406393772976461577217613137998689507774884665637626240653199620498493768553335365012047215903726824546810529175476498498213269653541531412748669207441310098806156351630618901202149747750284930066897417629804103100280635212246737914556962415252414040835912073621273375964919544899221607637852959690634504623442983301033547252421449878337379942897166701115556832285558637747107948969540192481885437471579101931673899579088530971501168536010017527312434003916832469613916500056692887652596024001763472916061894589592689736391961806804641988428779407946303982298570674928759455474770688188259740804683550514453673328794408785860120876883536533513507012729206505941697948097502292259287456027584949491488276002436673064181011546861460484554989951098482323789388784527303064033916947441115269926548153159444197602470843453726903825475848705337925840793720947015034028769923972366351229298436238038639974922524353001014462860795856824770393097090112389009988983404411232185697677834594570901670472641541714024230054489253704916161784533523214358989373075048811691146040745727891227774979080927321385430135048500053417251736302620615742821791323396100051920075872232894142626201047033539938134273120463111807132511147813817805420034754636080029075564305404847457955777232239758166849883899514887624428107342322851194837958061164644984849649104791330987036956428009623188290606843063203134087726702692977097752067345124923175374800382397520765415954740035789004992394679825322879454056760544074065496708944455940431405293726889262980395222234831929896634482554562001531330474297251174035849942133587436214687706562286420045497117504237413221187378993381721928009028918688582808957841040953797910016397041262261224175310100513098032751686564026832768568611417426659083445685848312148895196683886053391650267268891908822990364643253710579816316448936563514659208896294836223611385144730776554242342814016990151556734920903550800347012150504296560902493166819857392553842952679829567978282657480553531933116940830716367711919597211404193992616591634758892684877639480765747478108845756598345226359306118250485849794408222203184835386497447399107136422176481311955669720892528762159479664933304304455177795269597260650911700829049777112249890221370237041107885607198445776980107082804181938710867622850627255057046637857743681088556986121643056741376189222019585390966345470065591905319056630756416992523678536392104070690932312826667232626303219589611658264788188473977698683605443883556309361323574714047392081631957358095147759833826717525519860966875567058301279372812194311265817899869435479543361338709948084187773202237484030663090075386640564544569735364463192160034438941593112222700521409518943714739876755597137927938013097105696823820975949448038704702936556506911214896169365257137537341777377057293591979624161488875525844509743989214995470923127867635859212298231322102815439592980853131192098232879966035092172172362972640554283458839689499675160859201584718016772460558636028740667608359035574985693748930014873279431929647623147178517757681631930431477435929721010125073927501062555960968935316020874277253956135964967928032652263228839115743530915345297295101389689514629718496821233980474847910102939285040836625124099232677188318298010539474990239695619604600646956592837956029884600381175679559256569793830140269456263976087647013739939083914413996912919741768767435930778098154526006720885947083025169935402234600436960207176066705425475019859328796893157587435327986129256184344582726990795843715303479959516826256409976114146304231145885175432547168610916179159884636844930985804838226975862544708143951502512290696302709486286077808841304161620038302769678412696515598490839810016658830549949981418245103043932921844419843549404306844434253089454304643550536960798369438336409092174584320065677186029318992013404273440454479284453565775987484769004162208068835948873553824107539015455788676083603713674895254621825749831445294315122665796956573084904571941437792604782093334006007798607633213676350165756935393903284700752560568577358493145211342020173547153472778284558757245669398130826885070965631716106761359208540600462089028931410047897161368272725150456544294039915864688779915521776212569073030999773233727405822561933492492280076280678922176843142988903634681620462953812156255714910926844072660157356839659838869809299519085837027225867336085419266081159495850210694319561486284288127129223771468805215758487110693504913174334016213664635813336568491081517421365001831949229343597456657714992926233231819119234658817669938347848420997308347649347700885662753792263757751034735438059726565623721461657716818906090999036681546507126706332330679500404248793867590063123073682852164289150557475012395377118145315928343132922089102237258936458814414970195948110666641276980332741857697822242235929291686337654811030235662611204507461171878103604664757724824259147552980251915812887535211442166070531039000764053011641429050019008823012938485769292098801274266917153725643384088830534663170864913430078706601594173357672180806794215809054706585983430004333607058642990778129684418995201463895947003586262475703941581243742479856420671331269604165868920639065015141284069774184406837865139888794367560764995405870716259478570353607139428836504625413096402266059598991031942606878537287527077973188729237073733065289422155489212096989171749778486403917055317634560285657876816335272162711151204780309629968319241912272940969045533562451512335190258575901201862728167871995603682214356512150945564118825058463030289883400539173360214710684086332666829820564866000365686357571663908106129744207637823369479071307810833457865171418331739003068190898220029429239966989201968871134708472499642560615106549908898583532606704165715895044171929963043949868365135895050129489504806688090560721492233594319881195974744408944345417892730582666774200087601511374066879080268374761942561127016340477986097658023556097218726887583776291584355593158368289323350378452550505240155191869315514983416935840887654368969218023187544125026728408827486065491202920246136480082446991281372271630528601808902258910663050962050175242760656272582703591539538887650904947491206514150321513489079031201072980464352541443921679651646525719049349093514097879015299792763208439443408203273681994626617948790997712043914975806684551278588157864021841442732877513471851915206693492307475250401051134023763104495526778990284384423549397628796554135793899485694888353657563233945763336903429155076733865051518021868249923087912454160761104166063765512746082088193916490029718259351124961295149947030294631234665965378936409247145612531969616663913265043829539989541486807591628888161874300984087438930717249649479228695496217714237750655580282561603963074482652637189757509378175887442882255112935475430056400895287885466540638888102086312217615852721623111572813637340657005488685089881643232490852419822027650012171544935458396247908739167342495940797003017394652044407216755465342768778661536975124339907045559024146009325910003299656351746910308629245591889844961041622935068411595436682070303716863504784361300400179508141759012458924146276507834439035880686335467104180430097691350618348759047229062496919945072041283486261335136582426844477105410268794686685020175909886191996026599390012219918197464775371978569400785065706524906885342505164762811135231350830911763523085860002957527798198628177835100060710389052398505158379171326705997135628185402624512925767947231989122234107149326369444413009132561454868196126013486655487488758852537731456242197132066375798989398883547788096003604819845336705267703585180717131770225061457772489332159795409795195432558132257627645654601949836428259998876776759888938837922835259704992978002001317373753513921774266121436678381859781380152508824434046032741990137886800372365037307864213081013580616404856102391439858322619118511177431820958220787876673903132537598544725959933294552528102776353198909290560151683196439070162673690173068590034205630900423877891587682728724440735033635137996405378031847532005535791656898118949298033642736646496896284155431098382383318652016915567324695878037010200643006235662121642639213916729897169021312230898764579850474417274154958202763563246906555300077364176255574979428428902338019207968054919712065079543826158029568699139418324878094118878173722588652560650109220697725296329058498767146498821520397078642519825195712464566027950766141320781276536176422996577560746961351462329833998547235914996327007569049312995021285481976428605512688677387511307826537266198251054208575403029375955401219038469696919985430952594176028410509366304636483183554966570791510417393904041511650549312107304857068035392562644102604235309952071987056844059025705975377713775664639607304363668240034948975980864518515147410240372081236092209614589504846957503976264838924763190207472427407142790504896341234262825288744024446987163480118554916427703585155276940677260934973573161500888953789952955968933696843279167159969605217257325698416809925499111398394085983260754082105457756647093137889196052033093612393481950085836097591319818783356485284624495492335842117856461479290375705204139775286305521158282970893190813599534231198593100821948143773425903449608221186576637736321009791911898284688853834556867051291141897861767810458683073596502535854232134168890743610971821752700484255057807540160293435218534205317605320655274049515858011355216496585597948359330174301596109718144770425204451728303196196983076449497549965834086069854274516798033188826657538481649920809461246605801040880150914139058772760167639972082047190489936163110830742004376013441394076003013024804424416401089426034125210017021112708182235546013907602953280908523861222230433211249097213596662668684442578919110029556132849007313373027292797852523786368684836255390749071433528386406538770402666786106208223252217946597577582157153869732022680954872083667716354704537298242319070342904833888162403676958177649709348168138654980659948041186165768951300840891270309911146294464349645676896760715082491106295436694697430358917201012777569798181594373672850421279910645696936397918732177883190386982227834794295276009617788010652734354445427362094317554428326120192699283099754474050897833711915404035659865982901450685660102088719012326709375023767203971671529770384522696143930180804022644644324120873263248628205603691045084725821694989368826238043665315104812065578384521097019144169723252501363602770017324901055247105674843581130724516890204078981766791908585298759684968959252587310781737404228154626381701723483903182444781893226143300357276093701579040586108524966417528144132463995465529322507737622150591751503327466083094838039356130687417817843814650621803854656639590379357990388334129126668667822653877039101981996631673768474229308770286249785776235304221826191698086041173201991793688036576530885838504064003907148836446511617096853532172366407913634661940666692123068659913117734174140076982977761738904718690141993447172976712617687815189906570765302614001410924083605309814789396398394446019186589335410200130668488108942069892833820488395721486795890935239720295453749902731442863381389785836387828430337337173564546165441065224161763195419865051938894382534688463731328213172254192092952222800874928805052420319576339819303474141669559192079426269746694654655706165213820844908732517814168248804679394564188448463226834248226934384453538094348495427089973722929880025079194900597805778417594477070068808191581522507927324410097408746938901634037599874509518021314388077746615404724732927373463847764513992468743918051133602937101998545056918277664741771720125930923434530852316499886782525461490749167916957313768304778817503758573520784862560137869848982640231434582285055156974056585556789699455163421625189096128294228537649610660368239124587536304776839086434201007843883685579969486264107585074836162417813279811241510508173227285570021296432010183632136872819595357274635113000506435030989570762528453525497085050637020739205584411477786251107084233283229221306995285001879692764351019464708976036944571512806468666725454162981725834885221276491399357250751225573755405290157047081294921456938865013891059266716408947976629848895960941835094584735570178232421921342837293655381489795512375844812874120281620295661098777280595865422617558981915531101930295237832219260496636543554455189301067961285025786975190191687942170934738724066025953830213096138152942250259794958776476055080125988955798340534413024291053256909690971318968015846292128733203208303151317884078149068512650413643823176392492506081682684618688843046840087046287508978363281440419351252003235084027623874377957620233823532598220265730395463419096508348641724335273484542448843458696990878065443641782124338885597591009727816531682321166694543452070295876922675825669571286567834062219909206490980115153210520687634356058606477202356890739945795422151608909907577349425262443894666798897162367156240337273437725384675397276066422591728454975473692055689448738188309915535666531879407097771135811771097745886957792746884023234348718992520793475859205574588922618262206310115871699217086291529380184862588292897953700999827225703660260459662768940364662631391611987944251462032917565733610270087871219790794324890214409937797415616324236667614050632468153449670398835902586674245195412932735621436969896181752911523747968581700837689746780123301288314502279094687944279431932460610837901508230506333946346874867533417970553868730300948078233506350717126213587139184381825313996896839147791304701153706534579898591734226609422356577936776160351469583415016282426638323035456781592303552944012047683732576109849685233665850620246272180331283996531279067122253155500129202488324501623205436641499898878469551455934924602187769727439214161822502922374440164470758603250107339122386374993359935184042586494910907975374189006932235138122070092756452754048006481060316350816860388842926712336520148223910023586392381697294134051515552128884107311083837325435018238221678745233176488774292565350837804831009958338171388625710749765087829638273124699690646112942270703208085322648649495495816139104892212993755962144074549643069102021293509543529298332564208528707042577287314562619960747763565554429972763158075102529031615035361055209799555871874508380083093017869744739289142061463000674835090263246318966379415312617235621138503313688732122207492173133078340087694954074366171802742392944757288926185694935096451334087453404478953469978800028272698146387178142031366644343439016126989045118866250868049270018476069998069746150794845801829492570218813236359191350114445877225603630833790187244508880191071660590569363944755132931395890895450607845991610756837509724956107181214338364696325567270958227705784272999708857873326592355313527644856906625046492642621987674494040966772577056021849501100456726323325809105905079419648805806449377127427731014401757253774827813535885493458119688572991688396844483916958190021661112153603483809182802250654892165911835512690945291199858589833333779492239112026851783635753326363037735945724184896177587407838787807850800201151574420894094823696398703217284780306161357580916813499294356819153372276274248092643264939123221176587995398972458112381458743584159871830701765237251722819343557328679444910955918673438916115938215227493452075545160764395074753386144612945571538869469626111692616438460436540246890886826154054894404772536981945655613771179593074721793017276624671526523801425476237323092026241713552423278076911514074997192485310369885332228227170533144356766185434453344809290529591801527188171701557588866109050260600494878973909534009388259476731836444449038232868957548561860229449258850620646924106873375670084510402551388442604923103920166853360751661947041557355829435008877414119168528850409712508728566328714331067688228525924119385308333875551391677302267388895237931560792927803791183778365753844987848929595616515312008529283065706763026332701373664828497882008025077144660973849022922145052407245345822791450995581908420203992654065183816657546005605156785799270978001522295761700445863149060818454003862846389858603394508011788804269619663113319668786527625964473055723588420252013292122234559277842714896486753656770464305794535956838653180655058083958558217948679268200794032006155117692943272858747173872697143793781109524745898970590634112659786292926872892165941155118835801887072688938474988363690502173164946532521456111886767883947878107239963083998497698260365811320974024873832491383189691955560672875090020246668655111061994804352178646286143294318559913521517316449384693383018009988766579531937333766046265846594925840819743651247075097331765547372604617063124018769592532203329534901178840004096764982839421241014997354214463672762439317362957557413169306274747903029090854757511597157473477436099858687469805101878530941778446335165202985902077472754286842094885035555557804156085636183503336673720342430803192323871697934848917104654977668869708899981025607857037286469063428195102949725838876088219606684007506549235405064072658969111560305629950218795606875106207262796037256598790342173342379530519416077096411551303835772435018138556435150514900809018199893217122428736955343124199245957370876131524824781857565141599198243604405785975740184077706261077988632556536074405277086495048237972194739751540474195806002911739789740408824050640979290185596944152711783872003841532089187049463681947156049390402211720835462673272174222471780417514838959909842936248352313865108994647759176628909936283891454047319916515766221638169612566779537865347313796541895334445667510578483627022674913069475785099448792363623258994395266452188350347438695829652411518668074153261037952030396646769013882063894772597827610783114013432983671351011572256091431049767089283474578065197550037438211723430566720418570019219033374329767550641479491886998925529225957343560961231119288605533786621481008947730119611393222767060783467107644180801744052064220499744215323558451679803999284027999522810297035738116812575539970926973956748021366006621183384510979326807390745127360779196111960560552909534023432262452343671484777616974572389161792929051443272105406997130353030982724807269500162794667882367009637098075067382609209529181924987890978899164840510067444506715175755208741076559031771363749394431645590497842997000662008907298643066437719979221080743998822149375460288875490471934787150168158608523743886556020126922375243419193702297298417174849487048120788084026861600716341330042179142948482131023696086815497213717722592202039006105516231576263061845602469625239787020901279315350961055247804033228481601870504534394614117292365030982097445316664122152633786118489752056307451341615220935716706197049471023886941686795228787173500162548581475594027498378746510774400732160349522536628172867325858139885901971362943373201667279150261217566122090765985160874962866386156414398781032410972362415815948406396464624363390299519106897632504933653420863713063133746395658417289937506443312074171947184723188959328622521353229058803941205121763351641915168175788830863471074491073336240508795427000996549712889821363072924993684208642613526588364671406051555559868256616223127709676421794126599697291840626100031640720321603102352411071298271234169788248655270033943753971672750175503116047554029190828871663914525191001269817647876483962104070200677486120822062312420823220496141754101773796618422749499721595408311484091766138715376606277777147856932217339825230650743164196144638066549844100569610315230428576781879773695882418882967343981204649619534767232562091417752385893297430103075186188371774002862034060091601770415941526157998478575187383955096827780394822763010824430700161859823000976521552549087353555386880998806715558141483570910821340898616191912277248051797904359842464752456873425425837281680595992964249113609056276007530073594908072724353153442306778572243379501792397072434127932023731723259110733339248025462143714130332213060573055656294076917010318252448592689690049771064003931174759511631167661305149401070431773507248200930210025801526753918154875400403710916322905109807767890312825750456551437816250787575750771806227669825932172159737713961028015393584860953069277946123371442533947016125381683116749358092537775131509680946270560281273808529307825569949057085671455133590722441133123593430742018276986268342124314994046917258384567888291252277135282503405001524142446905023566934782604127194992111766351943413308583734860710339656763988128999207209270203346540628312898277306055890130053461944468168835697262294756170366887455695124480163177169419310666641291941979496341527125749501650077126249181145399614682700930987860011179191811167289997730410386075627392931258318014744900321947225931789625055367605640514942091514859403089593170339253675882685195449999999001102656222610928995555825402456465029215826970616645678924474524376479232269519903922088969395681448995091372218283575698083779166570277435962021763956842567628500997896292552574453287136695112260300522349133515670764792537877706283627398420444026568990932544125302662010790725185588219153927939626670977127331390026370732423344428401977533308904349814204767699352035677579054006747298615363406398805922909652351003516593867763685812504562272344327701861123083259694321601944131578409080085241026987447623344948027876215671342206467148427349690789723976127329564041024499415113945855280837403839308391738732109342095587122843135441106752038968480520675699028883539316966957909623705053416876821309598217043233584479992672578660040466203155201205178673452742138469709121798078367336415520706101569296700147221479377079174525021138623884029821313371874282089251917864033962881707848543798774820599344929205246767917396342701485270369032495625782407029513508570315213411224391210357828955560503454024915202845295863551089742488502219527832626294145527535276108682910051217174270097845615638205910894529149489006135716013568990496876036672649455628372117942226242279123216060887362702074253138442101257528956495948866233651347909571386790346488719134525632879366149584126606645554112082088865231818854894220179033538677084063164915676882846500901664933609651513046384271340346337947200873454945286011209242802236529788338963248023246726507721859898255773401847844294568147544950586320261717627708710617065267977581897172633496191747906497635872250405637071690161143963298543650020002515834524196596898443523450625006208404650302641919356357649145152099776315407728684840195832450269248063066839321762956424067364024403925563013429532374106473565625042883689249647540675632492979138736865705564835999533008774105208613255829361057273406874103434774049789664837511532308124565104322843012747696629015290477441192887783491375568573831660284174939188596758370891541295864897952708874989175999578491126014078370607993953410343272976208612237594278258151833263233538380055109294432868300418030326700868268353649401858861091182555861724019446727240833422463864756150639918457635600803961681129734157324812735827419113003814523784123645046073227873703369156524940591977741993380092446838345987788829518269718174247933890292539586429464866414246026889958297621045311670276670263342511948227552944809317545553963069776722814584737796840830381609942974301358817362400653911625447937158482010215211655672510567535082600900785910891340572724175731190400932678278836414671375614921706167171080030670317138634544800291261540661162285752331683299499435691530870174987130797689550879957809278327953652742333476044862364841836895329683087326655021931304918274082927582359200466979331471655788575446380425875992037214806804145610432556601988505816759476645380798542252148362545918584517441204067046109245726171219825151011795488853262233002436137865617575247283639997665702021048668537936011576703865369498405631674017109451817665215302213719618266741641461465002371289765652863276334749608778490287548454582507148456471064231787736179495463687628968704650014216727165583254674641131220505064694888464850735305488744021661709161687185552848862517768821377414539302061455597698915229630100290215789336752589711773559067523071910461652057257587901852205639191807459407380971101481120817389331036836697557751278568277789187502246033806582434203786499117941977622443924938767707494680583764515909384022725513337519540327921434399864533986670866445616225498689308420170526806363697312255115868211709643775389233080756709351944249400636393787249819029676263072902970674448009024399075889102550870833250887575871538010914442405557400988831512536303197982543241335604913994504902373605436089873477031445304134004086209642797510039770503943158918396301960044954941133234711648014595825150593657866559699775847231700621076068248747877463248481433827958310665950604712005684304877186082593054470670497285136508168677446023657410468042012420509672890649926430697227838225282295589430480855064335750802007879471208017873214181332689473999786438681339630898280072309052132354404271088197156079214725051942345087273840262464846401559843075319201918651841593553499592423849027150856116499786999443855997775806116779971883949138227540239475523643104309070639079921927470005448966778388868084735867838981653129396492832837075654951549166972232534774493572339163460802473336904631686625795455551018585035879990657605953311881438695074024831287347696345486862185707543807545977190139337813649562272591486263210944293732409468805401194546435290298318349812239472220432862176793337383928410794620148395268179818406241540965081111624070365360661552302791897013469232846647691619431394558030557408198818821006588481598174097933959072995080490507038623545292659020650493753969170321713851714197276705961505446917906034504765153828133976639395896271110484671430324870781756376671123933973494288573388429859513907614857225008057113826128306361199861819905926349908551192015001411554039029546439562799497568192620282619922918956180882610899574828580159790638347414510817939327877437603438130546409511723212021419289865327349183416571128846024669064533411811173212541042149595812034433086595600126715224356948208975792534589774124292356509156631751338146968349415084970580169735974466648275572788089533700793031177261273180045845785395668720596198054958582056808984164185311794884316998261662968763218543879170694704017166251345777241451777811863027980285347690496696271165914425593590734935993196431278575531651882746629561645912702122011024012174052584499148277791653087157465459922261447180362314376795920574543648505695508974081930478127223187504385013860901004743908790629027189984628101342783799069380917337648865924359602204963682829511794127989325453852795396225420883144216603331232657946273147664116790381080011812246790201115385309232396529848061523917099756091500880655557828600302773632004580849580742160982451041239630574770043940012974072517853844275512160113794162570737632496354705898860440938482189003604948448056845211655400614707231868824127324225315384313847621995598118367879611082732713622256267535682532239508414387689801973811982673091703394344952216251601600675649249658930403884983301104890740083279577998086518205488029244656352634037085280102815949829667986628934371713637711821442419975257436523440475487332839351904787558661986559170127285055448317539513212957227026927232843572435064791518619637028491109798069092416797010619662980399656101013684870870452254656381611340343632655245418807730540792979796653486568022069691913739100552749477348946477806328133161050118827626274340581182903443477436018644189630017197136297235601551784411020856676614421573644869156102722282448580340428867710756363745357289960602731147555450480468536418410158945164655940714157419361340670736403524522739130886057649556291180884389912282886003134993692041517601342307221858718665671784889816507032669903268786901252841360865249677254613419260250390728029508319857347914394206764823663547144233519800556709587796443701167448158359388759044532372634202227814865002808448320303961333973178661650075191704076240590657023883065922061417369254251342832324199800640496872461184747223538491413688439465211043396944056043038696330790132513840683999384348477703234046699345032699167466383464688573096955757574836086468381806102312259575984508132819690503651462695947975453912666838715711089037042110233766091256757446153415160577954467326957943892230771252636142307228303466206500889339638781174963475125608136620418064025012492160800193919054237909450955060670461328730004489980653172754695785578441480164681752046436938733077548784718396146829023540575935696767402729010745501258900635367437494285996176091488104049027563795728369222184791024578297693079153599046268420769830533119357852129384005703197148540815765018762394006342935823963113905155500858600965233994995291077425618205774814546873786892030234640395720599878011533475219041201399995395745338203770952084526048448769231003948925417999001506482546108296749828180518684680157678944944998495919380059113467206871553513892943266247201045237346292218996773441908378433392756398657556001842331568814735157859514545561303213540918296975556414055602670115480702235089314845816702169290076269161219637073553282553838736519527243043482820252042775680653719137617901111011901857317868618632565380649881134005240453019595604390379319265777634810847116694896979325748334728105939682889233384424612877110297414282082770118022379055364313999134941377532137407655399106492462776121803785291413898753147866241798052849315865826449240703567064765925382896463570238823607223847557024665394877219834293856208247403067966323798832880277147449144371525310544618282258920083532318020424016961597128289016515538055475664451982320055422244835795169444217871885646217060535486922575516680533741502151484708745359372923127001610348079007760323922162638398867464266659650989272565571891197116561637764658457063631028466732639402251955200761938047814822368320106346576459270939180444208721771736051369555203216703378468948276042089755214214078507042219543268139819019526585433259151421883103115114413354486297954238137645660284290962565129535737660478103872340861049783840060146759032524901783589664531890483584229165923442236059334978777386862422691600654668338790150073146179417695573744264997999029924955610927820235694002965650308584576540131020562044223021284316250697851994386995516514586227183079582313275926948181723974924964041116037790109013715268577853596399249009518932092167281147574640019075396411612394776174153747434440382908030740556849985955630039585517174690797695777024068180390051182567310679346296930022733870785796425792135174089249277726492243974858044033949243063070214916780081422938797589664572302714724611847657332404463249266082754014420650944893980307778475277989038169889315890082014655196272691046031395259677938812592478578440317129965292103097068786353458956780872069611927396864435755203427977594451623076851090642587949336597938928479620643376394877764192556789237302000969204496394430938459979476587304770747046293863515373385309318734613323468071633417138929949295716053199375280840433268044912567875600296725249284416432328352449492481184694438555596150019709566559574267025835792882593130883964493633770723891273995219647285345158918231178644624012106423560047321717208118874317362174086680290096301714556420115420775345294052280266521912750701327488720450416034565004359809826713665260782008147241588264613722797832048335351495807823023254456174442391054356089837176322078072342493183153528363027455263738795580037945375756896285763307712043309757091176157259584688538890244783208711068943106691906568578226456478474443348173265451273340297543416204896767177475137880667799698060157136489459525307840548182228237379577569934028961303445739463307763180256197969752631306411917417718141503182712199849955104899787302691136755605901481673072222233061503019414296233252613885965622618043925488681583564642235685624500156238186396702871268197333356872027891646216839372172051619011487888800738497575866203081136928563949694779379687084186675746328507659152607236523372546105352143476341158979222797981542669585742923834357445811491514793578671110781767718687455824982517542971766167759873817376061498359503439269999599544322057617456036320267597427394161798441992466665544278063583292511324179047149802967357076592796444607775688681596529930211230336851883205584765162930449534322871358042501793757405762896301538202804311290097442962507301762223307492239508744410210554316683865783229279494619114649021109910333773590054503382201296930074842636357167615736577682602975768179281116950436508081323607461458265996916004894774907515635922140942584706095585954546894834568943942790148780215033120644927991429405356162744424487161680847518091706388156440930084787281330341061624234596942015119851763724017088840660945408188208048933776728626264533214957943760694055266693040287888611962845090995441169661071199495906428725782471248249484899371308693169548513408320555559694048050401322012958570122762842494578789169360418912255198040129487058579624235840882135263096129418957806546445943191845879105001902517491912212217968843702216105224661646686067239422660546730108005648985915275355759506259847755905084916654188719001735449797278133315126376211928906320398711426481134889336945280272838595360212872842364877553023791516435503081773167198609723825915212733519165476709500516189913726653110785988354451800667083366067153592854265750779066940145412979823686839053176046527609882858520798459248185051001433461645689115396376127801263361819036462353876798126844614410458568247881365271401092393015707242578467867473315918769307581006106348525952842615703402375217525145438608483734208752295010594895829987743326289466237876629853857673732055748582062274732833653032258118065689540403390167690159936623570972928841245072634503064565849213517874098473474676172665146921834034376418673283359700133456671910776285933444837048021514028669849344018526286194873057825832811223128557936570809139224536604613241950345913846096795422262492318998260721800403723267393492099457102070332016806627514102808983412096182926630792415805252542332856124714403511643550898385502049939506450592606170178467731260442953298576584412382258901272321001215036920186587147129876995208861270187628241431067699365858423941767679051368383642773335598989926185414711166102404571614983154137066286417055262441335061351242762822796297817127992283728378128604292920546570148045654087986375332704877408837183757825166184515580279262335703606124785403595082776030259224400350622256015581542851013039463884812846162384844071474152962641769764675863750434793143844259722055532483090191343164757422895255160646798648150663522746753785356562351927776029614083898603373533714094791780527844283808149421909772827655688934683648784065915479567697308579523432343450584685255861420127891374835404832067936177939489035723505226346999923127275610997040049239296207924157860819787345283017390784400318358859637775700929195747581440098354841889348444045065554198453842428243108828572212821642629336156819660173756304617125840107018895081912563203717880969606154345821453972308604870824829392302765233295117752745418173334596219127122398554092637712746837660249641881902986792280102594202801293664235913951865110342049386869646967860090005538476026559071956425816149506513325609329906321239565406687286599426058472953493271840711478223322240957644137172967789351805160912075008980390472735972342119825290356354694666621984985714852764786645787762926576926029959591445841646341877124895393366413123822357142344490189674199675685796676619611600253325267607918944594279236962262055224289410516448314855645765165011506296326411397823673136890465133921265424171401103712601613594926586502366771751748126834839309989000462873341087017107384941254436678023441183548137820518459547983663171382590400264696443981596767543978779014115441198745089447577732368291407977841877437720788031867292574181412175196331925120672118852033526653749547505873298192276743995760064047267270414505099288598191719365202983845310551113679692327972879296952448634038382628960312903131023460241466787385299715348276204742030600582877565608981058977866481715170566561843484566585818477679860003838663955367854443904501974659196575465484444159342164053322596302337248126528395167898336334544145955420598574212135776628665883995588206019308772895449953012223564616761566959734578206495178852750030888486527518828009182237292810470297958905996838468308993194754888119467908890847251690246883389729372535522981512003399092168937221153415890242333968388774585779213826460520514891535677006921558862886049177164727868092202260648474047442017248762963240387824400241269512667202740411647609731427832855780215295745240430430805283315093266064114086144069552600827357917654313875644468008925166607747281000045374110037081434486754074818309726829684625525753800900031409095437889260913985531377480705335112454051875798703579661203806034675139953424513060633607474031701745432775704965692788207178884305441579304205223871944851040907412757728349687734814746491361191222661291953676288359151335161917762866148325901180419408555356778994824501445209070556592450822952258074476970616002992196237306355399685034822724955362360188175086376245142505334915924456636863346965653882571924491643271501544297550467790291522155011830747360646153441324328370277943387332281943967489491885694905631362964878176542615401297288992597804410778459025173891380652237634850997019440104412101871749853691445365552255610302353898602931266675917047741329830325381320535067619940996549643124296020795612313305230074827016693368082412576134551388832088787804070098089387375668424817541273624891197125269357999617560944404743983139174442877590516029218726404522966554701185820391900885884433698539384137532330657984737197562884961093627789152551771215973423096982931400278949910582612575278055764149286775510609776985361928224567672148783545426671361650288052445449626751100308792497352455122170406785409184694518191643843741979198530870943527192852351272487230466403297247456742285068128472880535652291866247984879956489598985367343523545084184661470503341508252193171804346590112862693578182177889705321710287917927625807990639732873227412863310038237187003315242640518058141617608907061431240212338382293095448187188968012001270311416330865263518588563168124106498383571612406593885627404115512461309701962471713727504471392321176502118943725787557664962565860983416173101965976912879620678890464992016331697247271992170707751881279187523848011387155531697056054625940315823150464235716720559486203284291896954766318277677047175395038226114442959913756368167126707190359715726728183310049712315072532888726636273858776143707384192218217881267486712950417116747155728879530899623667545780221033139513812525671939599791747568441964897697941434963389903339887757191502514962347733095107931232157020942307303198243200456181842993269863960844656247574628491391963977507915927826285222033214230419235091705880873843822263042491287286827323968847801344827717613396572223884704046976894816291468302097867445380676826461122106908620159167539259039208261039438294501127622275186975386499959801028570674315042230281994673431009178217188445171540623737004451876744299026513731345455210668100981820720591385632896857661569020461320240152218770249845309806987775022630635321763213118332137723519500987655114409681111580108505214147487355420753216490360477140450986976602476169151427844678074656588400724487415646529735717815654303328191176418189703614537039346419967762054801705371913580703075156389947163109194202300395043823232247397833975475152894679592441577524163481355780228849455590417726056356238236604578136886946431135612647109455799754215681887043370615127355415409043800745440991294622304916035126024006822255011813128466015225409659375475753379991421514846953962433032976557295960112454293677800383792808479118579223664872013853687913374416668379317892742851750575578211138528751652020228662401052727503943890425792946555009502617441647204900178668571431223415130115447739128316955695990342314760822122260191641179687871138468163025584936940327781751456091084221809099909741353185442242643017263506849233431282160212908215589053156061899921991486504594419235697355022457738031786201919624230438936446401214758068315090610430405310323105620387032069394283191788472802747807048627373764143576991156761047126176059943655315658110265103266898454009677463917561981739606401095093849241446444783557863239167058027995420933603588830288239123079529142173204775223702698036842312362962706300822148372039456397620482476393430673419263563546274274409882839140316987110660493640892505878021841850649445197570304614438150873793904138324111708823874755887660726142378709518270247320980257747531283435666401828415991051978808808567216961866448872549194075038841196178038570006269445059833471480373270049849789189805711861889485726587995370261396393205911256949086417244803632244258557152606768230068690694752541196025943766745891827620574022050594004063463771638668139553001553325154945235904704766952900011732170764061414454173427054047452147050809674959095429157806112015649504555133103310779975088361024700207207998850104768418696113876279272415595687256604500960605203404094420702364787187746408074101351499521616535703306640875804473667406413632489845725632061433401131479282409449069369488107171970235690473576611056917982102612116374545908329620283605244965712378098071873934578621739121266785827266554000434172004119891041976151194265128931621831642659987486993155127415703427525311605897970183751374693421730245605504810377743077195712342479003422507424043279666760144292219359146369426433043448392567951711221363450414410488860527302207062365389680761477927831335247226217126135701696546586438041201115115322105806575402143592459466665543047059380718923880205332241609823437092057233183073701658133195217546662976482390391186533087668704940390438774025691175750706644931619035028354827653708228284012788281003991057857423274922629143011284128080266982241744133571288901764677741857867946466817302071708721328734494280495331980109091328792848220565481144916622077502949936668670392354621875875502204498031153564387749697415969283046488031994172568605908353874992077484176892685412672073885850079285354119990750263856953812910098165786614076767738356855265169622417352922250051464374061377839280310136885945665340296845886364141327521734972750727980483225732467164449013739832580546166959405404677169875388566941284077499943370045995547784717177792011859633864137171403081249595317459646560053889265469104154959185357079107128309504502410285752844213159529225049854148737093576840104306894385938590837388663289431600784646907053494812643212327512341257374750611158497887192830028648708577983859485288000501163608210554297462633989673377524602269927278298604041508495489563113817323859795227148934987677691619196821305966127888789016539985877936159731956701434006394823390233218482333023952078120374490626890681674325605077262256984556498493771312857957970680659291503672892735787290711366846230369850291319416976121092200483893808549440529003281981297195174835908732753665929999764583088260728656053822844663802685462582204240204843472454953599359178515955895538170068194183619067985467301366711904788628508131441263930230824413451089000238478224895881400351376822207127040219167585275272535993037413582828789992787859388990564988808875315745506016483743939733358991058938674120991361513377110097463859451002771396442386988582410620774771175524027228929958197109410591623584341375627105672049652627863302703246019016806321683241992309071847999719357466225349593178580300692478577174827541078940830756285689857576351466588944944397323068073274063673903888258466464553831366309935004844097067335149047761483414383489011181749921455524822296350036958277549231888812533280193750048172295795222181808567062675572526258258088123320608844817737210454833949424311429669047015700086466414100603067414675114321393893639529259511292183540327235589300384755082412341160152966366166998863644385627978436987534708674097709327083472626394894349650058874087260544349993810027223585824184591380852862720895276225859035000715178355365465507961585405276002422715205901332827391742688012585255288103556951502389457006764174188722126268691497718496038133180350325400941249704665198699614755110986392827156391157609469486440149927197566480257373793045423762551914843597800857244952240703567785056510855529022783719478070017037393149292634714517811361949505389407638355145593944591179502409698259605670324426306732977839265822254974470806175865636318665561993177229492462648025074216573701668149427676589102583792082048575524002794709475206365688394022416408814070433146482844214564438590355043769672038875096765439905596417695556518634055663499048239261519595264734277163357362053361130284687115659053245503432018385103204337482434265473262777944223001153307383545383206045733732027073414254576144539569813268008883338976858786953398414922254799956858788672001366686236472642271443101764062533981757592272162810662164888600991699175872192860595022627235781400112636345282934567035905202744321489901719821274100803993303963821126094277011619689972235534158826129145774244538460584993295311093488955579451318597707450033124134118050273740714739598911735211085411629536358758342902923300444176901460474442736266882112928742736180395817105759305857898875498996771517354659816651004826411106885992219338809585441368742182656330722723448220787649903451179503227920411547192443196292203678058936783921318143758154297540190443535710015482702077302885567968851398423997229846938966115769085518128252057097711904715461257359380499107735420938036361521301402306494604408340759226644965645711017229462236761603589204224241659002026877480545172095033581574637754280825913610918896791240557970012702443430229878288655606187994324665249055710979494379444020422378031263002750133110244636150354018026842518348566417198032974715990859456986619788427160197833899761801337678677461992973109192621441589322783247072783260781677045634937585051773049884217308572318843024722252135946960049489949499838292751694851314119610734610508176991588265100106551133434454691657106068799553285249938832790321708709396514702236029158050344563051109087817920046956849140778450467880393397785456398982756737011370223609774316352391513143093545433242771721344342719476161078028752795705737500448177270702860855091518119349870378304945868602075838123934412725817183963563463198061593443385922760122639166665153797481645623789867130208188270749099184749694986929258884657856033302033507528610719338505985490579564601375317734914965781762412797453419449214200388401693570141835797015136622933529203231808443813271635948512221512753302511948922509628177006168507908152932557248276244765698934773723778517029462892133741717515060261848876049047851872148889308820165117882384304727713630705511301917935875312524325116650597676410450260232152934821646253296859347549195224643917902641276619787150306810948434700009871628971028348071905861517401678577780988015837111833454716322549336408575144182695675059768211407641171815771486693531816928408845956788190810904132282013548542169804468427909797558736825777015529149461399483166499751530850270902946922465517587924307384460586600758214593270749840853170838562198529159923477091562531637881414057822881428558378969054247132851927451464496475514528745512634329325609621224718013155022194217742120907153463522785997859295795371201587337819232946231290948413389064283225267707274855574837567729580785782692193222698884505313895567499750326304533810498883781567890118079779375616123050034430068459573281482510000797970622891900986812629015985940467929306706891410688248960916166013495281909034424767829097767166685063252652135104731622376623383232342310119873636826621272997031177414492272606089463666198313451056271821676780646351867650642923593929436903829050037382047891860362778444795749542026146452153885191984370253237657676094769244410693700581017684624111661067830126142650139357327596885563463985562222364620764386342979808034208809842846014620339062265795879312734414951795191661167119530487576264820637854962404906064701863246999594394950192039191087255272421739284895178727234054946814464626375074110664317073170786570927209918486467135172538632444560825243267145511224771404445078294802350753524692849831531644714323959374756703605162273136487176910556000749916603127116440512418470795305533785309512078963015006317158404992749556719263508474245930141239399072711532527983969225692943264694277385866802084890621728735142328706432309061965773511618427796352669376000622935486461763562696744361331491816082471225414804957508113372846383823953618280903391452798428640554681757852422238142445052001869544484415080405942784810556928305387349589416975306312305648622133529363057306671194876575529063844515666612853076617615977588909622061486858747885671703534143316517098260973945836775585136401984430593781465665986088842571495417680881433462346727600322686926929910958155474084817411531266618902123245828797250114753260142693942234424280384169778982891750103697585851812893197108328604973061850198707355285629819132561890459676540424319050056931554968981313513089073656511530739526624745559797050822597055401920078546747214086750088367294864446079682136877436867536959718755370872603432756380118889461960665775018893411932180064470510936050026045125999637905937228749363692449521302981644876066153172861506687505362333917655599451394900935120490745264013656222426701606631167383332121650666624389527308316247218578376391138943295939781585575520051152589075568023697332970765831476874917539704873792320884212970266938440145411607705972155389259050091986204608197899598288374480143954314550156030886583815573731317556195811622375353806722234073943633614347125595287331525206815353878421752322021248975459435678283966195455685998801677117649280486601162627929064117591969581011181596770626300498263678782241248494118836155492354693617951565397856720084440662937217927119035589092637101116129886171879362464807818033200406407593299722253590760530640110582639910778187560006527612773491345050752321922254570212390312201839256792223618556055504185400166254045801340074840329483127269650899746080713300097502401540811425805465629043740473857289081047001127928296328133326504575832351819809380138912284273351295075968095975552990437990209241917423157618353320334674174453033262177136865124592486342000808630187244449349274300957416465343650770446039514614911849317564705135149413152361169629539658548707093275387098023405901528255684365259915639566640069635297439378543893806544598114142212459964277698066957139113992862555448714381518935391137935759363295043882283224574255093528322803978904438894438592301564585731657216905850997512941766213890930086255209584755837259818502206073110649471692077827366770344730842846207759732718026463379443840292017466631259327920434416851177033442408057105014956723164033658866596205670318185031062589385804217606921683042846666647051203697006790432204166649731553039602438134164100904696456096476116174020601997708077873421842995166722435868644771039621261593244543905968518979143264397316616771689814040061670843149475794040886628221470412719022694353665910892790552683259488645185998646630791997033954218645499477212081210905601354042407612859018544361475162075610875940700533345880445006198970657766126449646169163723415614376258838028627464714286887563346310886964450900628835967271809860041910524498673539353749575136728325876279621073615967824565379277253720903578024417591322115142011409254137255165581841000381499465007522535315421985629399786540659030202983072868598927926652421381259485745965511668673222811601496413552542543739018359665211040877590310669045321092906574214867203482393935481176551059773386093426981967624655733854725116761285036067530476456559051849091066237130777240181469075603603198029899940599905774904693101875034367881211101539326279953962484565683458165000173069472609540396470001926507158148314156802296359533189827160212763704970804100861479919370941718098175123209870644749443285582739993285195044269274955096972191406716143900612755219141438093025955625043173356732023483121389355771467153474543328641061530100444961302796980771729774404122229483910698230010985675669786735497175265652662104417639488180213440696228674709922605845937447719313874306159162980507033580925161581410681686648883739188048595889065747633295040457416254257174973771804571835699806981788817843620932296799080861201601503728784381659897923567599764203590786605449970877167138722465050768066131498510200159830817429409308833554503779674517102853628970372256088608238906137713597710505991818222610112233671367817334360586340264369862329287730045851646796919019891339748741489513487328332470130987623357985861549345756000937687698256975457938404361207873170305418597732390727668199845483527735234536488838087878613750049890168949060345161882065678880722279560324290957746219139247011684899525317987761216105124659892370775915874494451660870031712887682921236246573922113654359075206714784977590592084669309038726635574979533751223867962737109908013378358028165688435341436735162755680504597430275202980880067062410250858526299106547510453119111250406383258501092188057768388620863657202741474999146044018972972549348720387498444228529395999943662349008718893563033901460262899407493855210302922635238031620760771962934138308613712977136476698551397251546622159526861615212676034193921774640268234056704768492674185097141009241190612839868798233996271158199330701146503396154323784970932003113891608906659142155549556753214029363960742883275520063809051807658898829688162350617166312562462403336832449259473767901827018417553737754527569929475425493926435687056046842040501045976594795074157342459883682603558825630465214193418318654321543645710339330413917441048976982278229963535100202075018010566039447018391380886185110011026141081936409357819734555254017064471791570432845162478482873483698249533785967397514511619986615540461197987047565038569464817482725912669634705249376381622467037481130526540227092120616481204302105276921281002994121518503475509925113093023137939444798561588494337315059609665978619212983456614127541192349289114020858836698091516863579941758686203140144218392947156896677704788821883392580235794401091569783477010539277253927227656501244341250052468503012165622187684360993142501634595173005826293692458187378071407462983271780309931150091835258748334938288284496837215818801052272176580799569068096540945508957344194297770113513316894367413280650160744716985597712504220164337193874063452669568815907589583486174018204984756122772709203965343003196803087077249351158463019880595531543367431997579910955736738897795473702376896141548506104080019110555192658809277942072538109444388205385773866225572783858357466618855744962288369898170596171812525740957964714503995225317225958713193128497878474465337629416591010236662946155939000782827289616896846349373568736653566375147296703457928804735522501028319970215978582627600179191489867960999490006659721830744889065849185331233511731646980727790058088461930409979263474822971823506958053264842571833168488300114483916254959685227919323993711938019092937649449458734726138059585361532180763366117899779840383193892958581726057990381123751460773283247597430107871401092434435213589498134672242978451146631629266718021789472317909804874974405099701657405741668839083622224615165182516293354775360739168760001436198807280197379719988603448939615002331524236134225422336442733348998491918792241411440358391946395639687085797113931385379870572548240339702135537964676069655052230165980531363329992405689534790717894458386670893709807009654198397598118703985807467062613601074844336854429624260971678870698448740580518502555517052611425661795604565723148538072659409128785011847227791255555563733708153591217177050976197337930443814907710902280458136356246013637779342396962626994733348340125457258533334124895730809460825397109729284183219875278331440773330078946476542441962515933944294818121364519116426936246083173840271398685504447326422132194946234957610068934855062649616381310871400194960604605435570275489315776395529719862497190572651043034255472315938355533289438565072963022347885888906564266248182322452454998936684122060643825079321548734475571138027457422130507830179194101732110627729991237883084824338687648734013092980966933230884661085048111222020811243502405868860581194559825974172888858288843253615119279427847486868903689438874503512457427635362702673279129712647892499963861326113013319217789711657052945153865648474512009375804828066905520418511761868074705587806575845351671265352054948165204467380418356243914848231165636695916268734689777692911840076622838597969539416862243719321701617995383428471356677292257923284232527554618146022105377348108604908046907382440508051727170646527676451986963267405802703480612842836433864235987449683288884021767037989943463708589824412264609382113778964454665751482193698530353639683095266344919790707966897698822323518867171065364740769559307609749793150204820679021206935615833154848071765195371216784155784089994309945026380658602034688607613255648098610759919790565466310836353355343116155427590073281059689404674232263256737379430699978299907132250455036011329620354233564453048489546127948346896861309644175786657749798191542109537200626000932626681586730303188816199063251648568164334644895827200340933943142868659678529389685125088631130863116063463813831354432247874403544493871400398672188794338938100032309517705580761848861130999321902609675795532874146420053949441224119650019196487875756890665585268280867255838786502014965607034403607391487294738246833257137910235266936204630090743726268804262743930032747335917936076721699511450827074029231571408932270446987204540726453911779109277053619410239595773777444271612808645165241685814656440825571118184557758769695575189611033571126182300928838951147588144001368577631000091901011343793054506519583219465458698813786595697236214981159704990357061603904831851141148843330439406244826477226547975330693576221484326120725038039264253337305016388527910501616895255495557165380922031883274915233972539546238323589832845998121211254901026738025114037906955616267482781629466421251416135001158128522542387967049834413682923625781574676940986220446349397951399807747448562717924502475826524778849918305771918844137399365750269944578018744068775337962380850431133600337793511007352182650366015382930421058054053832211358888389306044926589470355353930679602715144330631961567176088120476667000489707119817586028447278213694402992747203518331991434339553663118193104301338457359721051566468470770964781528556754550190215069534179628127831098829768495990245073663511195258472073917203407200768219120117751002009872050567283450770906260617052229336280170899942628195631871691294121758466761835799338809322541296335401371350122573985729791049797238148401104895464776851818073628260337471039558148239528543770310007938554647584455740960684547847256191748779404803292086442613599647225544816477625108800609628485224964071712779457885309131628099925707650172176009667030737474318717456661841071929252622396731518855524346139472907223800433677030997778181436079831844996381803262577319587444014526798033317762165912458860579446530058612153203110498937547821834083689537895316084398505710249118665322803663520014887505383710622685698003581325784131151413623815198652281634876640579986235890173039058416114165650824920666769806786246532685047635922289260064680065078212152243575704748039604435693150582966097607386802267865429628784921246887247724095824162063297186297299868611613121530511524135539507192605105125044011041327937779915239950525733217572967386483910476642108846354900519622206880426939526613394534230221146673256613402106821485031410033258343415889150590656847990005053550342409304286311192410692948380513987602287509031622541375254406316753180829372188234629356506193063931199421993791417547600677501701348347659748352703069209343707251478600082825254750243815569888352172237135475449635355494743168725536910429661122868028996163715931904144404177855050088795596889470601596581525489461991302823088287654261485591097835335610797837383958415072409326921694728426228927097394453077835268992289661920769714778789046896050277963371962863397486439878253961442930917216906699302702555018512750667365611079152015423874398577113376032246210598183047644621045799660233577579067729805697755724707014387022401848894286270702614462020146452151055953415980137546760681262607408865822804262377780073042570524299170950770729365752301611302269270913360117884627515265712974010034010908386025764913945567078417084223797778318894576598480547592661078617151571396871256417728258218194391185912830322848043775347679270071793611339256366577307710062356580667103894702969912571018459749014403631031447160760641301938358873801363648351422109008416793148307815906646630767882688327565702908960927038754820684277445723045054535544782628501212418155112760107092855513695454514345575757931725726160846605199595094494609734588598421386820799719987242581465002456021270905704360659533338687062504615063040692165758274075469121522810066828242201394244860562295396080087962354494184037085792841469678925440636055647392951289330037403423222889338030549069742602452729234173576262552763929975433152741841526998678737611941383720284908319155610724099238260230237975242072904043864651165438065135506343619333945673266784247243492838207593744294832496688527086655245406856375115654018846246348096326674564634470233067852385345030020583556928837680878811679912278828330461686639366773169770743293246119995440119869053587269588461257374533490844126825553485619391597030774069655799738417157104152848058705098155488303421058396150777467737127782278247431359184933774127678260984271572421304812875003687244421914953463071415028522490411809960326896366061095559690270158965193005979034946524630107276424630763661777079227975499355543304811792947238612953678701063604871925241051943493910193097314152096403299586313868904861364451664092324505346415179422583638785193268408729599631967129253850594271595683289537149933360464342172542588539416350341111276052394132904524427709691904207509865932957621663403986068882777182982456413524364734628637760949222635031674284578393311604669087422168954757212521032678233693326357929773559083849721609854861573208534324852588274404010767593699194203616219248396323681526160344537842760429946549309612220244394908536642734826460407411566955432982920279524317847430807903342475666600089752824389075050869374499110033718612679137331134189061200732464339760167378441045407643622648963947633194864981346032870696017056583116221785548869665319045513969815041760180717747058461606464242486128267761858231651505026774377647217764000984857746272312147693160441869852769130899632590112201856820406111567622794282007554635603987490026102155827092931984396925041707881723932439733836034033618177328039896948827726033573268683379726231893903955678578027492383254946062320471543744311183300026778789728155712349391908739079135178196497295384099031715884405432450134010018317968515235429387473508561723058431980628343638177343810848899874835148151518411154139806098318457367144106879957532399443330829577276386180502390301417650152031550255500686475169357039037007284127713829453175057490889945181580159147052871888344118844834854742401685305293086158997432448783079502197600819081139153422355927036055496065573315979014482977431077934147170803165493833982606657639627235424737624714274168077342049622461810472106582680657480490798079944080316715520258137597283615552895296560485499764561738090748280013004608660316052588994092322409621633053031192299544570201487813095554812427012565650635885186984754668994192006478228731741855837065977013747268634689106104280862465707733894243781071094382185271252491576314418233127297086888575290181070482698125095539245683078352795719036599237873582572953057255512390866792349891533529908264195490587218127915872585488634403697281850930681739944404558514353702760044687099380657979745044411055303382140021728072099543109193912653636215659836044644451379387896662946230698307139290714780922664896447586132745228465130004082941753944950065236785300735390157308014409638804962813219096805969748895929057556855938542819730052597534487021190363650077752394853321964324942306911576184967756920359565463502632984583190154711894998445409522210149803299940410155967372476959963222801626620511331472816647982408135164073672905830666297657886028046642845571264053606705695009407209799767394950965576840088912064713177577906082656280414915505382639141187875170967137270719773458534291796053914090158013353609753789597391928090584100232659665770307510342133241800759711791822180733954871462944654775317351269694972605045662768627849619862352028589631660073336964332033706340298887814888176706488208618902051349457701104704073416396033538775909902296179184207495962894701392821245100366482748969793704838216559413828177695353212049121706562164767684377925684800649487498564551665425890233592598244203440136804299601654724324063681101303858592635610438776391484708005501619667681733290463832743049128988471502200372235373487301400641148837258663512897222798420685734533743691514608814577197290271633399117199106661017323514466268490823813052301847330167030545379318033560333387420703175826616180532591089521800688328534879688765069990270111558521281424194612633819914453650682759548925193265143984271732187776871013258619684065413767457466661319479499868883481392002329419145547006724285952708719466042380295052016675032386312161048814526461824583362577262685728565443437238429000610997379074856415345274011677495543862372762432656749813998865013564362668068391078048673144436630582677642744758724833954011716646563892150152310688933023388849812362617276373452181919555347137186033585193386253445535378715003297634721024115794414458508868179704847222939110554424033482970212587561625162673467849694806293054457026405461240246685647371953949256366864569055321127720828275554059472215983423403920521426930077107910492585959905155185433117595695422820378968247396205542674642276114927046729464461953981394451692369852718689435030341994394397597719102444017264276031913324409662888263878485288047704643295221373081330357170542346616410377764159295808013794025770379622156331374103468456225850555463665022870488681109674746271335848095700077907904309718980627739412318721379958909637457580414259946499286877245377075169253875668022406118064861917940771800993017739629835535023612882514110324065093508199071797721092151664718166243899164773179246735292886903649651576455111209964154825149765839872133970811380562700743081103480828888839823736078323799990041020284145790914086985304119086379157680623502321571182517067679361923740484835738582357073333872440214777393728887707852434741514333676615761363425983432862798939795246025602871894280938144331565663390973374758633280169011856079017146998853122752651641801957893176358199992298607310137595434367980357213382705982041396751481334278288027499640468397057853185707359349782843164200029282966119472184559790581349444027272479898734211203103688234245746609650287275931653641801717493019939819708379561868869344881934857420000525429549489617366043403700395527048711210090409049702177697383753089428046152836194798782064004073246106580213117475448019071869172207956340803882404265941723825281481786399729738742349006957398842295356198433238829652194707210644706798655756651432642126882609766259106934490379099279242307654571795563197384277850507715610231586769908083787400595337147391409199236069460670045957102653542583089260441113858165859665916295299168115557326212878438168036554606285812292957375016933007493185437891152816597259355356925543384613481162827540914304493679903226323611847548170132678381003354059316417307983020241858231915472823846770195989056986185425731712503302070535606843298126187543131597303658032851127271501070209719601234301748486923527787424844657324389842103512359940915642120331260126296686833255329930395204132182466372311797193331587282763787676268590931484654738201265168277187416112756676939746779255396179572940468847378309789868562057471001857873239936187035547290544054951950797339387456829710661984110402550386592309392696158322549203948250580908452581105790212093089898438366290392309711885476689997842871118702920561403200398733799753288477455949983518875878425604067517622313454857833755918383086091019797231877071274728006345503665292648345455561953084687057038027978835463598633986819022369850960905476742962682000700112211558933088088672378491916977579365991719111872288962740359105934952969024810037349447625794627249650700460085758749170284115894920994303480029953212221703796002418746086421776205965417660404834478304282691075630673206480646877835181059030823277493337454595865807844628196624015466669604359110080360288755892044889115993261990859292762466475805600915550461939702407610681148086847394022112931308231716035069363319548027049187999326701878198190947863220573965977816138952752935926841202960524567534891187538895184009488398102660468657081938345076866869515998013661347707679482705083756321382625653042505603130772627125711453802520084591551987111315005363417559813891678764475249954336294219308156105664569392750940689401302268755184905928332261519285980135258989398992864262359375615675211711963069428641840858376161476539837380324355720179748696412187722518363798313816051997465692558744177339125953053615020957381146750063478336248989450275702154989945747429286645343412240104475875822729436483694329577988861994078537293568066342654231674374496864596667154016783137412428317830347049578273814455992511551913915606256733687000407173965580917284035536665483149621399094890527876907834824380166903039860051797631714729134025934370615421251315559910572577700856165478582141449716378775811599554535727302527234023276737532456438575759796420320892034744851573133018584256176464252634674803288706669186613720327527381707062871136039695422882684803363772423073935996714692581466404094702394170544342905339763249265045842631233385393514680858176905189930592448661265972197209868510240878545910233949038483909078183920301765476894673244896674042696422101354297169913723987826506379068365956030248405972845615647723224225171686079130210998748955570529223304880819701511586809699568609430877707241042436171196695135540475710988041079656511874272444668851481964185120905280249124112361190107806200467104127400299238557025044811403564211613100612930610336626151646195345902791341310990701411179708597065803505482227518090775012703347875442341644381970668204982780618801907081434721584410932026763357880354918906172887446134590754876699751507148769249633912540504451138032439980367671269271509530288699744543813149875805811825354163983068560741978500150664669307746778017207125145596389460110578633714670840073672124852621931715441886016852171060873803976422398456472466673763924884690213376781523356782173199025151993660363037341681721427608964690003891822393990140146538085540997530986074233722516277652493960856712604151357792020534413546213259354241563871233946169001137486331799797336061349249133767190405153532764886311535513593008670354126116553237149562196883560703909091591966472571020784319249507959464030253543965145367227168316918583259615958220824734298821772502758209328737489146591542371912439857632179619528944481713075570449359887977412775902542169933394960333812406031663465206636313254928683366702741242897586958669910666426045169214472997396274462019385882306378670896926798769186949151487336824293574003306965908019984874591060537300214846212201758777567940013911192292476300418099774379725894307874668388950975973075445855680804558473713991784653951498318278204208890608012827011193509578508201159251689711964488205149828155639560774150068118121736280179939730513521429238062011341435050635950792567078544676718353507039804790684380480637301519455494033473702996405650899826693094202578445163985981660708534181741788215863966329538211878753469494621304304074983094455754601419249934321300491330505846570383823545802074779177166941544307065727898641888564855670563467704702572157238791143873504235281605943393324136392600342478478455454952816815294325640146304471904683763029158294753943323680025022264211089083632684327861689965665553340976625052612063183899965484550265206351877693360208927298064804721334922264372761015876182087283362797123598301496741650528664613550633120980000701911066361955199417773594353822212192099723924658862539246513024696988433567083857897750838103259885528376428042200590378974637075757693500453021624938017985758490793064155597343977651931700628714374318536759217712295516298428211745805710415715007541420769278655028404630730420878939600333254121201341450954024715975452235949190901216721139907857584532939571064729759809161456601520754802184160279516699471565914837485495235115956809484095307735229487742093933058479017537395004399006444245243640039990562354382839419323183983456306780708814852930854463431207152711664142537267134874618520896182522858045203272217034368583466099979209332657860611932180645802434159636283908093545093950093398850434405317117711414469723606580776881105661447827753926412578011839900281779616477590803333442951925593523945586427895155291666687273043406229314329238506674213633040274056627498980698259384393849740199956004876521993781742087759242279114069737467285912042505778575716252016886745742470010999946333996440448150448320073685088276856744379193530978968085540705936530793540223171831882595242878539810200165696941322594725861418045650918226069121841622426766472675073806600382207191549418119808739669065028317859117225018732283636186606867624370221681498169720690879128141960422198076978604462454186532530158656573064989308780009577811656829565088843539652058030950053184230351573483640856600432189008515645739107830261054796345574968430028708369447094289145898904014938066134362367561428060475443890192092495990678913411872058302806763967420328022704685833044658726071646248370725964272159471515424768414186287703915901196734015553119225138200136318709516585951309800403224226128449855317971750862928197467967907943551117350627420740331698505800200955326885276741900723693436278777645178245649469374217037010852956013553906334338529026807595715897743576378977125001997625076534266041776212485477161986619377755413007400104775893613391581044081543310372857038624776629726535775817325385211675923737875883779393451902595179795395074134310601317513699683075876500679232858977765398315901352578094747596722082714107339232074844558347790901211868067509095008118699137483572532304798940470662857738059328618067376158676665405669184297493043684788277544849101314178570094935497013076250117631182620925994243474392821260232521444891833871580980601039497080812071515123251227694837472619616627891095626382606366727988789609373748461937656915608375198587852019539655299359548216375657569257522647229314953293662277623479745145660154160833446740336026873736232700821561145906752645033000751479457332802946995004921176185765722989231058473207942007778441261913580467189190229141377707725626212121446396881205667750898697764453327448094477252679140525392721952780959546406649985980544956062242501280558236703001205411062124608935397998068663436226225683704824546702002569852069610956974839308337731410534232888396225117339580030941949299664018998273167357742715642599926298074608579356758831066707722271198919452842992522836334457714085214168384834328760500495468274615501543825658152126693141402489757087470960952520943243674675045265686851430407871990555429142828811467295494153674266959550886289975392270653217578641418436175976826710240207711027328913204705429073944052265622232505417585455999341318899847032932191034433382995253264504594308874404354281594778731260165330452347960195748478807358067212562903280314603758859908995010388997551884462833535495075694626603239020622243030648350872251048889510323393916649854937627211132972837236615666589762028548272516797940635274348849234205297639506027483491509774720571455773425378691834747682006962182410181379182349917535857605824246510015039864073894101030377587693331426544428250784078138931105508950221325728874515425939863700947536556546766328325099822832410795871813134488237833995876630144462591181688710281895007595036659223258790410219668713333393203821797803788383653982728200616675119130720052281808027348210078945591958937464343530920770709518100574005589091116625002149651857581631692689177332606983318365903109003448753541944873497094929616291334571601888843887888731176271705062829006432265874555869702838008242862579448563919020461769751567743631650577471776535416470357366134491254505473915296272644747959234218677698306521687766361967695681962925907663186725128329168702177018143792849356203013840621104004832476347992874175588539594380594317303342183903804325313609185065070638164184785253888906754063019825418743357266326279457923832427593294251670999940352821183112588934532780838815093751188739509708902124815068268950233327964538601371567934246945470785975685200709592472978655531783440417303026771779885673664865469223837944675015228804301958570134227227237144662804258433360242476370005428377435138821485372434009299684847800761007072405360408692085274351274341020306008694893746961135976518906225517224881248308138226260800130725906407291461042113117560123613204258359665206405014054076420113426635462821328577982967785067718715543021453044949851046704635668292775274364720844700833932430714152936870828410042032388179682803970190820638826342808008574361600174281990679752140739775998630000948198569021907404292173036520821776345890324636912532035458692930714911387605434427069315563236853841856436034401205159721984736729127652846035047390608533119423755647798433390053257001583137160652371734413553047839390689653077038256552600284714394400224776665196722688074032223073453168734981265854862184310998591214039707264957323701229027721153404363467495706657063286515991664830947401677452369635975221384999482186418529633830286895311145135045927931668019766558091310900083543437388089893495729981901556637575587540270652373348428288781757515832365042435524307694136868477131809350651080835148204426989535785763047455853156221182586309768852050463197365014182709494229681172267416375900982590812324554537564958824926599648457764941696559717566431469965813779583435110738292735069366854659980336245887634345854583835164831698610078449354946577578145457561667099508301117480628415764076209346529046664825945843916401741694414444638981734452198123295033601384460750361261033971171082950169487342929885537922389270099164528679007409352278964502486731745506455213510276996608003805443532729698711576535262536841864918972263364654337470322319718362570641524157725976798082948090918115806411930321367821867905413727683571250506197719437576406095702916483792066474194188865405462923831638834633512440593061533445863574275595974391166554401942727983284980337356980889961399800134783814217205695243647294782806948485714325045338421017617674693709377789581557432019351202255180204481282567269133902926992366257986001019478560944237771708442685989594194650131392202824700704839558809596812474006427136918924947358185147891365382180926158082634003175529491861767826086237709271393389189141830359665213413350225135474730465340876099505327047251518000382705064761401249763184871947645122327753361936722204614680710518590327271686482508990313265465407109711187348038884155132414284719003913994828419920472974576067185222273458791158131688207927872296959204992064721094628191378081129015922930680337693183692846431729967218995594316240314325711996971356493386500652614991065151132856795964410707683521522794885587437889065091993466317151809438806758600348267034805569017915253466817690688214411165493938190293340030693907590009729105192568651395615513527747541341033812612170138105995617106338809424637715434005802170225867443589815731192001124153272741246061178009644112808465350298263673692178309622569348624235867237238202008330078410337911158632355620762171925522709685454978983936482922940356649863383861469380663523772513990496273611558458035632456029510590166163230373835274221067226332199661436600361358250288617844473156523508798704349648801370822056978912328072370345242209015482120914549055265417177504944064251078535389366492300848047166372357416968657377737358524143187220850475559020445502856449433182150659988886151111255670813754137792138854514214549188315958219516702009898390580582882579542515120266587606068516136668018485243073234709716616832039225703845610845405991160672040997783623847941543656453891848247463422463919330187486039931153924114793349478280914063748452236274910603004282417967859755204968565139829657086897657405205790148635893711845521583433003712862149713121795730458530682930912746455891690015453140491725294825227161438562813752624095114947641191086884778053185066685761573245386999588077360165188788649704414269779540703229932026843318294367542766483586070111545128121775883333789478720196877286931615393292474487416784189497549139758431113137759174673140714361738638033976693557959011216371225509742833222008907662550782119471252864200461666503269120619808389858645162501512137983737014928251633016080884070056067221652775006128023211237036941022319347306138727080076679534031158965291463037272525971198481673810018089317068913146382170540936124271584919001701643555675344456867977778003230857299576660445802930628223704677725319088168477280219732042601670697899429927844456315375002111330959956830959239125499619063554067564879235778213535439423209850525725785883764546217477456072368549303363500087113893689302532321941816701353373094185879280844530615385958375122432373575534528158228269025832161911871736928470394168412711792254623858099106137757157554720746361857272868306058960807357975737101281641629219172952738738626751600967961065417009188956352554724149829939227717254191497555574355636310664260582775113992481283616401058992653811075760187451787403866040347165472552903195913492252552464435593115725903084383266459411047961301798246244802200238577407819162572256369901405644710078362749301811291269413713310518746208711768734621040185618448078952969478004572742971023732765911430963628385715889082462164141959032842507138874518238902854561700590183841491405620988413312382607124884610742864668320122384091126622701045598721927113177501198849715752007130066506657364958226794626537279765542662934746908525482671336595338471059893169953220173349064453910420573156984725102197787622639014723943475309245133326784004138952858997686611435545495967221069902693420977647726330493160490501414925146776345426558648325533900175054762141651642740478500811800213892126434861068075481292974372980569869176706815297906631540340004428360004780136971794478103060033145289876937310589421063808496589149059172047246977284823488619664157606562380989327280733228563462940223249962995468508433970462954242876866488092068083230950717213749546590916719407783098282926676645211471233474063785425931949510671714350017495149609687909683193323910717569253710950682604196388419870776560476273304235582424667778287553583966925767454866036834943604097009598513527026614735179190198303134094988089952177968325729711546362681117283202676288549632744973591288934605892389086020711857943055335743448879540309531673290498318586003259966985291911201968503407156161345772237666829064706536691975938320419119716245003639029577484112613780243797474299564330352795024433850728074603481460523556967141033130545527978589217928233561459117783336412200583274645085329083414792758265653026715372404084160286705655263122068434238964707651942476446149553949809889775811405533098140462616610943542733859106093946696483082557307379438467938847094828136919400434267934062140812304117916133006733970989987534301844554451095405321398270419258434807661795572351225572374385887209628558904961805367352419509451417267976356689906477708432736800842857259319790735230836387748628669107300029502560336139726046983463877822453051730637387455515669762684555973914559667236429660068577319952804182935861184127043487107359925382087863094894327083944556308767776321545342795046739572305313783909565629052527181328031192104116158759403098616831476463534545195746588474038583752744407994823884142098552778406198976960594496304442074218638130555377743774729181401793585473444487910832844763813498451606037066482756792442011950012092040484412024695592562384066164873839479880988977947731319226958948474795292700179044998047365263244128565447220648930618711890111766614713726384619788968911810679355844081689777354838915776569322711853820165014496184335006759566702835859727450293317980747436594177598793151741586163938122586390187218229773726000706726483583894583298946924540185832217091726704606480027600725628993740460115869448643002868505549529492994034055009763129226253155392358516299216992114481998210307777856164103523005768007092110770617563657487639127192635808909681071330341007183108247913584783311091068457847320223385916884170620988837403619370420195464399079054111830550580062054004204661439749480374134659754795050357695064716931462449124061319469039073843905131576207120012229078813272404441563394056527304684770133431816090871688748402272021480357764236107421592723905604903995754340946340860331409270420520596690391130244260741079029798168470707065212268953680251803053582214519284417877810469966639428986624217828387001678486085234601444756052680870646468995566610325239414205779584768830762144477768467878679201283796694677193924239444260426148871768836398675843201510708595836839338193089797413555644197473203103523586135777686535984650116489181316522098111741816059765967733165302627240613276793415828137781128755102774622327936830346571563475753127383975392547963851216161908082359965539331578392298809721693400041447842311564873176261596951842554629455865198550257737730619263054479522010853362665886176356794274731169554490122637573045625242892311295288016144416062863467910760069845326191199691037383473360758373313110625628196905712073057607438900940343605505081487676743776482176625968483439516147201339489096689737923359346872707287224204018626104628475065324922898368618578273192746008924368111820639420673083965741058109558669522328931646084140433581856723300187835897605502908878708335061417086198864377859143682632661643628739879776227178896834681562605831697749085454638439309439632789723234616075289176186937450190011753322500641542798143243150722001508133435574562306911135308194879462362428147941019295329570571007128458757397557014682260878310753234892225302962097731301684479356442379294194553337068177389904345667244085948081361498570025576698966315070881831668862896500975570834603875716425012582377676342875629937387130804944374303612162555150203593041177137587473373771924125499778331172923155328742920110752582807804104225805071234865390811107509661468203282485963984645420429250410299625260790818861114787583291144316599746922986510419834398148614069241117333491283423141407018150722541646846665081021364469276535459880077747970403460740865168606868397090724785879023658607251804329928711723826622131124804458619140669708301523942624492934809756554781172377956819613778883716191694328817576361336567960721048667685550861073716621211003161601828529469127990326590288313411374044095491250209669371115005975653648073601797739533719206903536487707981789239964927867603843538792505563279834616404862681797483147551137071593221121419489088992645018308866458238834531314777522137163890723119808676269342260160648168728917983395968332454320043502334051041842747407829976559069006409466594972238174820977817807356713833576856961007195921113679229607468590210309932885837856661703557539230302562771157550269815743991440576287166674550314618866356216589232323229638737835218196062952098929367822035006836182115546615797020696903023706362704837503059574771957112459110681958592135073469940846089951059404168243573411016306928529949443881479756415826483833504463838065616511914176573555432379117528444611196374665962993873528408840976319626578431463577328227292711043916608038546082232532296990762877183097490639593386067380451609728891869614808475649814406831021998394310152093599144371477977132477245283737070521755325157337089327859398124617949057021425273893721562936227167183023175929726124501162136082367081548323406529926027445015457514522937001021037804177156166150246460721524177583069179033404415686973647751026102835332154239679816472321857527245043422301425193123207355857487222769227285389415963152948950950592719098562480282325846139627946917105571267663633913717120109860187032661148291479039819495286784743040672249824806012158337246819456945378612990673397002949981824026682565365117556433260523837598507757506942696661309626440856631397003744581825383446153315878978046993352434312447603978450052383596165184265674121556332749717054585895874409767768793666329662433133579856081379429289257095907054895016139781724384617002066538921423504997192448085498646933591247180710427603192382445602243471591272196512103449860489131365171114249957103930838780473382879386112912863170842894449014211319253929338080141871452227550501593566256965240681491859644538269507033681196794933860622910549818563430313716407966183811075756331501826762478583715703231944227412453705929753154632034564490302318282314087165099902884965553203995096760915296748768229456477901628032587095974296745283135972020289347708128336375147754188091023882852537578830144945171329990008400571235993006065839499523875062117464414678394268107584234130389280717893146029772480170638015057617688165611604941509438861721667204986452176585757299909040680529021424432740867280121433162188108720457862374830422217776955442395504853319657098158785297201637768436830196489608939857079666440771759400720561862536914346249282276349742656985713456054550349696473435814120958384822750146036347973084259654850829680620242955357754037369651116418291250310821380901259071552049058320532806356878040148789639105074007997686134731841539742287565581404813289633380383644532630287515190600505648526949481929899366231345031407239653730925167539246137491512266075614505992594732458395849916421162784456700006609767688047512199378624864120281511440136925836535970490647586886974093469981957257002524338439497033921662158759316151310603297742439070561714092148368567265103563815593681006689791933481857862493972517913873446083730037584799317250422352591692529387516304216466027572767001783751126944205600146194318196477795866672992366647394702415425694508652620830687289678427585147982718154893634335449558681292955279563149226666670216158964882961305548092602286290812982653269372628286447084869907919978312254650532821926060654062274311905591645166684436239879378871523981867841948698777930263398619731164040896219357087832821427067437904443623926546058577978130179630182395630168776843803204385342131685536824101772882436093356283026028912633362917670025652649438034738640203031225876063904247379021307938429803727974103586884858386869398593054160678083756304221340043883719044505538127741096290672201774282770202984986365083713423326389525329229900881115135775051276297682758496939295063055675759682344792343105287227201883637075838048812148654145688648877195180324119382019591546056330303089028502482734504671756868164735205288921174857272912321683310967601705962948904144101017056373286342867509605686770401237556206363906802791628419586252388501140604115074866433332335120690022682350398886928291256240432456156325789823827507497036979398174719118868922115969117605179523598994774854119894579987750553885297515356553611085492665476506798269573367835723400720579701502497434230407953286957166849266790502580318080483618430728891495890620257273922940529895029958392337747266514824239831266883952582638206736354115155455676780681344433508979613268074299020377779614566129127226256538314362828163195176297535043720737755257726319162508246767960415160601608149084583805132634030922068779209626458137758632116084107808225846268017925743536773874682316165278605858123806625732687822561826314294644305965337889757444871806771767589266924280471385900662918204330842193626366908291058463115631619202074123227818910050777668672026278182067208721578049754890317674097079720861273890143055140090763368173005402619839810177252678068238114399433871259161569896434170771854355758718776375094861508433349240432485616612565943223717426190998597196929108287209907327259041299585422270454976674630675010577738024115368601412220168806024467293138767288833757610857479443452759509569545568168015776835436763433355891352534535106321723279912098567675567063606279294429804265163490930042472628364561439388756899166104399042187318740405062844041468332503637871272316914691865088860851760742467743542406912943581664375881647750661963571502874863762301479800519145526023129391228298719597249701107212712849423753215799196107250243072011480575863729789118863569663155621446338018966024238801698822185779454303190612810060201035689658902775385954974036929390818578803268175258780959830469436811879479285634878532767875614949668292956408731486472519060621126642689374600891997736231362177193063227777071784961540278687091528799062725988577013777201923608454738762364681019210381608678940185875231282916471680275858321461029398955883798531166708784103680571199578403251645106908331164398053368304068353558292478014034065327411309727458608958498523415697754630665052879412211516695804237925731005727696131871125039156112610610456366833985053143447659370210688666198029726076828901949376186365615672872636406496677898686008032927647898741987174325944866803714395671811924235930795176354863988782178790913653852308823564908885961113114995521161550063189635815498839507331294102670837388022098657817245307500344064629724303197416012637662644633497735088713470294542647005786065510247863220050949974164695047648555326026492177901462777866342738218913875737945676196271645921945195910869652468983324429209799244369611345724379878177056220509423719025695744498903806374571354018908516283456430389302813084339950221971146457871426888783879508244128984098935478062830501120536923591986480548142643929287204563248474153673394528801463806913637083756696546684247308691479679763166823344459367249171609935959351641309744209882257696406084815897533024846651445034958334515159909180855822838633185721895404707542417119088980092293375500467299838492601702174411699647935425910425323000648314477028235333692011392062173122441409282702147142708936675392536099315543487910836220847583906471945600967992772749722770209317631479996406128665554086215895543506239808196878190185291815031061633874520459262171641241266850931064770386065071406158288381798958842350874898820827849271781684432033946333480091007343539923485596701867530346618086757132398315805510328804073557763733932390464982900499026458431128570758923424390457436784231227833994944040030595740062920783683587990685476589776585154639450658232176836785745359315882109858947168293543670979269795256658564584007171380232015276344394902264211424282159440636233509652761844564165197644953625902281333538551222597648108887059875625410221169687688310889590367704887372146036273582336729105891848762490140213068260002243151010210569741403734631083189497596118190910455861836279838247179724401874118013652007913647322423075964227373320973660230928648577618757496530735580202495652500003946936080630448070574465377769882941375135965989308257237590465685164929755651239277922205140702394894016746050796823262276722005639812820211320084452545082794119980278263937460880951070058878760686044496715173547166695477438261052222737753148885177468708021208399424515847783704204837508814817905034965696768441957276375996428771225639360828054649935980102084094136790557338808829298263797877739303580787966559635502272555163130406665402297303390741721366281797115466441876272443308070121201269682643446172277591281600518781453365819951075995487913600740590147747839633165081846768194333141691368393219412971066610068812831294280856761956507757894116819847483269761316393135166252506392108318722877932887254321065536961162305308504445454517299289539071764135734287881746369327456176644978701133947220876622359917987392378160604816960089327883057795675528907218950267449052986854581649371564829134007764370580362800276516119061546776835240175545755101370365642169138642657042440260404022031822909376763951228924257221180167216354109770481647250065026757037420060577020814171856015477819343093227014970911342131965777856998354963235057651194160794478702873276523268203406547549784937229967714953083288303361497498944838153545118298885674321874399961751755970948391731306910796593657057212580896655637789432627708411432524775753106454306899842414418453252719942077128092336590229509639559275021018264933567490141321643518292460868981826453671074550013599382365824123138126325154615550559187470152309772172060710619460260735705508993305478360022477469066472607432058894951865885428027613468876036784949009798902663591513948407436842665065941207548167442820211093309866798869928160709116058314099535079585569462771275756455445615342466582694020897772366821706154839025088074440220929232926118125012830053861587497500523964234364884043446764482706660952041631558288471256027453808872859881632040092774355059525046728488408741006000686397790456197234350675632154047720158198366256641417953204985680017593806576336209598793347670469890330119650306248603560791493713625863585625784363595999249760700381923405948705889032682893924429236465897048465382544287675199975636887259316468102025359114105369153777304952924865784899673965531436568245454287241521133722322823463784633330325470487859366953362968639021011658503435135108537538999327957604349932191669782049056387906126666553217304767075989432507423706380967787617637058780631562055117704684630696754869163273486440212591994864958232135786768545970732009788153598759111717336379385973419980780779030181396825188071410407313191101096254349745919113942012439662429645348891057200794702519325321286627647842946598106501263218600454547779146537305986289403725045051834514912921054659415989484350972548172907953752015220569748252530706762341305931030523107565706632310772308272352992799700720019357072103870819517282157321187366670852148533053000715294011328040191662760176335082331131541111822461998925532667525391777592498535326617017004492682047760350274308286425351105948919180432415710015921674698013565717364170348702580653973102215329275148295230647552454955887805193961196695269041303857301663036424467258639542016264017202446924689549684422893399732848969037487545945734734858639670848532533370897514699082880862118920078628151422055624157654039201599527923376383516702179648922738409074546977542394851727083888353688610282114561503664070788666778740779907761104638942375105906409906052405958712094976453615209042947341620651775225561422495555665551098002416963523187876380250354721399549545122010697248885164577296112096248628064894953538377982587601317490136722791513597660331407811306835808460708100413628332799020326537709273333733069494815590970498293918289954303109340241677052937077166383533810475207804336430890739473764229639985710988771616278410624452782929800623292201827758968674443985820568076901897424156853723837874982533304260362498397461783047952166806879911533433863217829385213026351021964531486248543855595536345419472898598485863362077444981468509164981166466043984539613940839807932520057542498078459944926631291730875582309794404515491944231112648030630388437318605062729103797173524366652172240690515653257541119619211092984334656093095085860085157486506883516587221450029400797557940969039661158743893794922911443550832649947422297212175351937612602196029622427463096586251174727746457650751083409023804938744662300321035454212198644782775215358083551117067233410616324613258923797921773413722761132700547369530597203035639446471275607266695108656110771749460165210057121138968237227774452239243406855449915874760805202304394050915639423635330381340216783620084486510779325236083855806490779454061576352086580618472603312569625874229846912689822315914127957510235455744481017636653726057046560730433122916133935131934214247960094499511292331992791853280045754516085415780128331062139876190120179015540595886325157349218587388794620172263559778747287562712643799657396419095620819234889667589147073223094817639332942344024429558802672930074620863980510851894301650098904521078509450863833106915952014900923890333314916594315265851948052487396141014096583625539268425982657212131686540244126932134935491622610940356010938583328474451522093730997538481932246690026127920486428419658768709145515322398181037898889049985878267975046092223283370763259129020493449766566397308735664107024279361480034752007565266498235931906828521836174898541656927685803542391381396859255264722601012126042155867858291489145135480592175032728229642146422084498546963213409579949699177910542751287334515281844030928000361981495979844857711779545368814638370788418915480684809752947486258257986178574519244758414624418280433108608144344626813640544898701279219580143465651523950926563458869641961867047889982809734355160893693636895920719943795975422462840383643299492336542461841562891541660904027488910430048686751592519120460717450498796333529392631657980113219288044302692696849436107553277026030574078444043673020733036344270533912957892267679894337624004956426543160951574328336849573323922276917920376941043934721229056276296446994479197284940785768371166706007674065552230042462124514992454538900914726568541086750974777280574576003757933400123420523110304932898841421717433861326344082634882152821445259252469587422574773318987673238748676693491711792934320398045776287655566476074730160212255975229258670973625843811051386596130241490869726660924566133806672592221240452958171442115668116716783131440631557333006354964360514030642584453006452713728856842260073140986208024280255167036039391287717620779440266191475643331368281980822964012194700399394806784567658863034537218515218585585892958298251262183154502178319446295263609902307931295717106992000770231400778060168790874673453144312975571795254482327578573712817597170150697788748674427877816795063309790470022871176847245884969371574135047332482090132342775547987184381190190707870100166869733873397368275937879678243194213949896532659526062345920342637267436326087927325763514469018475926668823916267985841686763963685572252750259900416276845859156416122150727173420354658226365667604420142240794162713076173849182120300679776390065585250517230946440735310130376012344757280349155785309217602915306208912518059184271293146766634196028863311491949586047454728607288433806958681926225842937147245739012393047368254584671581020684731405870454116265502678932011040480457361294934057253500131848720750561362606056618598902604064716402087800381301607667951965696000432555200415662527172237117728914622356172509169128381558208324076830250329433034534334027822750958142231179314240296521586238235349983709240097099968248104646563684647508151174858311623313684819099459802392092122365630648430999187233689320967491680904083295594996131140056876533052067180484067353126991254405532599270052116339394187104486924448939852249731028165537840706749179337207177931235608059074865009093002648556771181457409358134939391571335782772447147577758823758919836877624833234900674749544840839571054747462541059522568072971161697736893049081811932656373890669668369159147684739676408797542575123726229794440007299041347726776927705411726143920946358000712935037984324745233469438280188273495679847610540089599972467982756175745448738833927561176478203272483367251983615511498225996537758585066148097476279855265513945114654559061035311706246288642567983575684942488061056787555071210330197214221883808452566872897269497071569676849424626403016914361341143625555785944872437243187455800379223722484351111385299839851132464621680571895058731639394761101970384907403601817971217109220585081804093739894869209877382185878621954087039710978101689610311831515609093945334975202939891100107307287038090936884667589764941847158810674092936852790073680055569349000525048477860274882084398815055883662858882756717944448886300591230682470996874187848765539282101878054290009192649379858242825219804883593214093798434500319719322256685239339701623389174933399556169245210112904082381106620661087485787464575960805791944398122529261107423059774917280300467743690520036364754791374056496872547383666232280652346155188456237380342513088449282653447302239953891732082418289708062446638353703398677181619360950330788528989578412287819728074090984926354255953258104545492272078319727620383081106547345332963663207060007495259563056963882679155270270485583098607911151668574676000242752000985266367811686842466974526852330094201781061927657631989061029011367617446309154234768386339379196807896039034607126475746375537265033865827407935389962874421807918031652433059691237936171530117903968815515512657046328635587384687783221585098944183797856877057502278977770244536292613471348701333975290703191040002913974948445917264584250483021082208996516358085187565823187487567531174079072877208873584725628284535818094728098833871738355453095699114277610990379590407251555857186268342902907908076773751863374116244351272416770847980421261215481564864158484520617361998070705256819696522737165604899079870211021944301237529632477220362043173449438848871080873349559924403476818782047246362105471432244300591434346074104069252984032961119619696282250282994848506337202110091517565986398773437393715127772170323178632012355982355001734797263800024909978984911736536961695579718011034458978940678215422671235909737329311116510425577882226465050575484915710274710806116464447669001792234852238016860847359293626640260634223169689988988492866711095040903747219721037732501115867272791431295382908629939348548564420491255564019473610254403623059675043997734008667558989049754496354960595041338582627320791477636595857002142303100540344798644414669153375648389440583795346524715156157687073086559252834306066163320790244841715383687677353633409907819085766043896561389853220433710442744109374317474325085785942741743996574754179704898695259840820669471491452725380515113267659851421022476168711744036994162777377951139511949956310666392939255259128307262319415061492316031778016719751290376815516891117691176655249717989530014105755783734962013479626190441342859474319374145663226426850078437906146075056894117159645462147411593290975134775163925215234026974762871709147727625565936836042106640387543435550148151303076381687365855094443214619175943762541128334926145988234955297126971879328343532318089375611795312468287228753609287764042394317615606864820926012758717740127779570983915400035063762900350595120817392192801895000165823714063593729404085913997203376436675538135117532116520551233619302184589839962636311939511113972228135558964649596136149569917462548801036435351288666373508247820066107837655061401072289581549242185061427301206572991963770052776773367026330116182372849847503563455532955776326646571557660011602051434863582433501191432078437965011840072387723114691365697729727991488172503471361453526501881408457171432932396754807374676437486300166839315151421515558382823000421451582226343882804476448158248918054387311086895137475119833016800005263562267018687924172367054703261794732677913047548137449280543133437494605394844144810482987467447985719919902798081216571327416903013770329402365382592681088785128138448058167845367645206038586975781052357420857697458449867082290092166775098684588394608974028054083539286318327931604020147734267729088181412355543347037278287806467027340894441904728601076645803942818865380495460412774153255290605781983773255721817927442520219167611767853214677041981292289454053940706243646954825994565345733171195696301851445639470282766363802939759917788071260208174347709693984748628821191522169190751196899323689952181223699399287016863917642274567081582598361431294819343692467903731185385014748977582986722275256719233895627490567326617398200872600038183460291137118376040209651074013378740206201695184506680786631263083826115394933638983418776818285698217430367852642321374518226836275313945971359072702787904701203629221355433959588855267307766950295336059838623116870052827002945137728474744808903519773056057836842044687715762320251347864167685943272054208264960601092639539598649501584729574046557876473426312089350473433291772949128967627922815059247709743697460544915268986652608686402961349925767068154920286564689558367806906860464250231717456508036999242600888489818487442783746510125225987998267163997907465303284483579173174788372545442325819097250233014077228301376834894823871006399677190054040521408460893143626349331469700210430759637305156440493918943534097803229327376727672757367555856214047667350373694174226128565927016122484621633338589680998484458222932444738084976288973560121167742808785586074159905779150367681172895431731328537265746151079486168313937138349953365952276399377926675739957123231495544205772111302507182435087137577486693794993408839715259029171782072028383660884251690657787713674402365015423322706635796468223813998263871623759279130864598059318931698303873564889481796174697227003221927595741969039533072299081685052795847051615782143550280655351881222651635171457183687962901177263953867198506377674862973134198921418302472619151329832857281424356987430194991543672780243960749534663148814675102930629304210330649748990365347405707408730088077241832834074237687535650057484839581968810719742118069326813355671221801985365562169334818099078229726058623445749012104494444127420128176903444715616098928892348453671936921665757036171627864499232524541331858741127999383877837195958419380965569819793068775297041182778260958574923963122133601487645631985878038895704094212759719269891237555186794528848308226472654144086576780668042324432958573030673542295331065834040364354024088532368734636714954908663474515758801590820607789134185995143973466298358630405395545786026017840608316158829469242229000932957164511567077807467522264963108337525799229106150595006162712851310195102210703889095917971859811782289506219652103593377709837030310930228571431953397129258480509386215562469557363611689255751297051049501134153941891259849058578754114782495332520790360278369015825131033193820107800348220221840627888625248980138370715095610183627660107143848124337148189246179335627339949999700515726069799783929533783575298635638112711574697947026220630109341894653153254477527945339160797185319255679248173099677810128553132667009022329184747259710631918088276105371922698857792033825754437947582342362038037465484889535934959725615306037477524754934747408182986617922596516577771245030420147682486513066503726437866457042862599837330918634960628392271568009334621829847189685762579025371573147742134261309482479600776484772829633399537781511457431757770417052324635372389102350858557923814891602491612557141176518324477690077829338338460538257909883389819043402834344662668658873346919636272029510112963144350490989927832491899043117633847328809407716040865690465334699057265790776530159570656167239049909965614661998878741309443825896993314393601556099777945797096981228462949444995961980148185791743389079164296772198877518386120038525976160370628320675718936326115948706783928695870219718512817502371998651735640594085768807289062624508776707034043891494093363472578132597954351229889468429597137832309687164129708219052604746150184870151669558512640012972757053412689369180755876487114364858004230961692787806205276608401956757457319089112248862274286126615416445967840461777637579192277806404133347032253527500336055498644725922851980242788707256411502501393591298428988857949695572822178275038939054687999477334536075039129708645168989065735937422940875359736343435431150105017569612546484748078259878931516965867757831045910725194339696475641549089912498296219888914738394383446723286783982837073663133465695225726414524724223579766683478262853393208191094433740396504848363367338618362051861335830719349085952678590810377650098899163044294169745841630691204789577227407265850191226570697279302961939231815617966065775788887131378808086133872505200331556624858230669696533869849310657538117096175415401394805094327036050939028639165700828000129673765298473636293463145007072507680686864355121291745216866147730553482530692505933724475416474721009299306981805797664172353601999229472451470418048517323780922707669164676431393734228763134069762748814176143975471807164008418447148502133052256908666199404917547612942915121728827143867972588065746238469756574332426927599166229377454153612563257049605149377717237316966979417923661096176630501442299547755770459946460891189096676383202101015210366085370975289534279555030550734053054994777850422390147715419906300114840394872016923066997602987091744038934088416528776992242434656632563902306865276251021563454692702674018129839865677505021324295383629471064884253361889668731482617194736532116336526610028681923928763496105190516212633458863287746431340716223274501214579075295921118173142443664794215438690661828605054092607572625031204458908835930659048066384053162108559123836652360823388481084298568048653986379248181939328760592917315638251367618925286032904907057012956504736595984693860205464317826520903074389925858503329532350205739493462241462281810311088166949388498665818806880338554426755250118253172433200313253176416475125328581204249058283363208808571691497881922672094194790278785554833043764976616097697755825021701561307976339920467161169447088504855010109694645048483913703642294623424362509500407696103165022768232107833282301492034750517476431130252154607137940041542048115775937527405608108654663542729156890893363854840000097021579139245809973040135952405729284807432342355933374611023244152404107339268824799726007597174734684565606563228317260672293715680607350152240872085552096506071071375516462450494469271604236573808316508082153639429863487834880103296418866388475200671797266881327322479869607060134299865780204601506027647203085958337648944778299756722841902856641829503643252526348435657717521538610321690994822873441672600844646262800536750348983246560918612500772133077764199516362462758046836610805273870683889655232529584981488979311693519628904382596697735757762294135718947081898558066907324599461603188793792753941609305417621268812569967649646737113541638289260687089358281471027545519132731361560311090886913631193267842636506434784337334891398682177472619285470031569116619782151029492251402732566232216200158443948588629655421016949548223467326607016718414066641914665601164310429774497739692267438581164386994810293341952533277409705961055407315700623538937705302085719415772373529355177826319019909756477519910957461307295435526358240121903994794477358085724550774078600725036910002121837072420645455443082802809667568151783813235337128225231349069029075216479734634964975206269107973236831138529580125159883856763865548625324596499278199974381043796250507431920610760639276836052001011804833438560096454669652871190082641162001543456370331456911620840867758208662808312413516221417236996275691442400332154585391922062902453437600323370421552938025243102627525882586375842920631086874445036178772470809753495193328889525599541199502646107342495238282805250394490645792040777825211817355531628941445332882031964758994174452772502542878871761902222739017815528072882892790627998043037459311965800443339087692332519062065294360649311035387006615511640348492259145517955097673545713060172384868245390557301279656447680529417902519749199061390294821568819375114302736492572426611583057067117041065283203070122949465773201758433513503330267441170698767149098564844416509985876616477188228792364399379974070979498893257808340543797268871883005550805080979969296200711269794965410835523007797197828327328162555576688901095964291481271322647040831944486825746524830577384383051014466804690301636294905348024094024169872463920001936733967676487429597267457246594472820157354427037474038239294871591592634233814295033258109882900438362604177390425999413651708937206434311844362352407341093488675612989583517937383943755093305713045965627742967793892389159024905029761940438012475966703669418169394737165816655257483954956519917767647041011348282333985117408564137298475302678870175042116159214492001515357467441819329975696457619606442458013042704726679202044619073207966052104157131838855613986299038683995076450847725087243375091283712269762099547838052124838534065962963391732906042699172011756406682119370107733069175355372505285342508823739838734971867951197090290573679238132749801619868581322951234159895999695457192029624427929786048471529241483063922949515044361045418478708159986121366445810527506894237646026584693335394452826099194831086365997627461399150449884254775796230434135461611065202355100074372396366688393570946232827576141605759339423316141257559980195836868681268081160240816888600225697580771799311654203244675203322216786351913853964862822182744358838881232400586163123365340726616158516748567662405560182399977264583965339348491998662352622272536081622685803998380788986766569464465888309873095843252211668267070244304576172689871108388661992725974444662336429157533899421215492583879952206314299054633555465464174018757882284588851466800624519882512756821898140472932809607592160524439533435939104339312597008220715978743798365624386103798843584125835650745553998249008979089575492175727820368674657355009902309792193832408983896259134855612222110658137223496130618381347369732206753150271834646985659631338057092638619614116129711942473473299105424688398273207256829680429664043447959650726188563947977173765485647595507165388648989668847326664053682756892413229070281854070989390285046776669381629669597941345545173288884948857556833161309351872371373447022973770388925002782955708285235328278933791511695449012830327730874063749716649997418687911434888018004998583649955223375076695178431758119413884650957110200377859000394373969618708037108527970344113859991454468739204953729738967646467551571580109937625312878149401829844154552859067760212889489520560720150175400248844315780870186494507373607224869859570641707592521408935364093808214691671730192246989841870633112774780449278986015368728028494606376158078750270388928811538105790167587310454480342700857900845859259709920311554766742361590659424914059005979784040190461968222863956522212140175604691187552298307939552604533361983854907030310888697885302748675384391320349539766324742421786530994903505533266786431922705109433708837146697661418391621693167838875363417967867224224457649580479347367801136272194541957233193705838714965632050176616121218801733248995922442920090797647178375719938325424030347618865281742391040740260592782578488930433414226121791962822821073458439124634414948595176100781576193910878450554022040540492761637920981335847661056961668292602469545348173893057317806806446501121606919105116308468659748076495032896108085456415513527802225445327385386924857769798324153085515267798229684480885640752874567845034621426810961388595236571424172640377830227791679600683999862886102037794077620131885810800718930732010397701890602886613230734315118014481723467104878266199615889882215430044302205265756177983172856993813800194344491806148337742125949709247691717680360107069024852084585640755483860016865332968200711014732356360060892398890827549122211269818243068096067313805894476090232764420131623273561081644835229961853149068118970022227878786047416935997495384128517023231043710433686929293652685875122141763511248764728882737179166260398823870625121885524589506115595707580944223711752076609155556696044519697801514752281534781482230532278778726483416847572116600490637915986034768725546167740959213782948310301926118802916389143959425134410591198728419451384619849455146225359154158105880413943039599700176792567077487699546791194145403211067918741730536643621579535461278576452088152299647440937066222443880792346084910279011349196458526220397401756008013320775871205580534017787211704459510086582558670908605544735999989261391716501890757662243771304630086087276705012565790051269366158738713386015848593405344739187862247214910887628151067646781792248007794809156991983251243861808868636666910577453280215388550755392292489825599040285706298481027725976535161940879464113584048807661679552478549007209589618386617308090912440317202116561902292629083403209931534614571178417061096495640925304233408359202357518607706290703029646137626624027966165013292649477579031266545932442081647188669376990660246292125493690893049371700605526026936288996199412945937675653279674755376091774241096062423323313563722095896912268705614130208279460017543875502066379094909843142428485793555745828792944982632609969613448755325843458623550799538790469727378890503345432122361690761212775883262596314645430220083738412153889094982572067816560962135815555863498064932607653601681273974853191426733587569467325107369356003900504712818629546114774209804153303481229798275004155928505282366017513556217763289754767317987335800347115948616662799790024266159555764310551512772573399824872114803734586147270689054580618374928571489398611144909589296916989046093439081967632777937939999834837881468024339320193559171828184334944131883316094022903741354461670623441317737882566790638260575660801591129824860285990123420626076096047746188061104778423684345031046100951323304841923042791108180861517439085746516076120494593945143181400453305955520202375276518318243178229540511154019505521528238708164413807680783364222780669580639610900514360645840623680567445513073633427022939699605955454081921951616622060644850657970002016090209503519493349550409460586406176169155110511156350887019396351834190228225978575867406604776012645507439894168939823459059622275710040035912968012561656150396566895326858953221386518016396303849642487955820842526426880971106244567389080468073149943150975455541587998068122840608831742063830238184984185140832355711625391324976278203873509837804015255071204654615402348581834991714440597946364361421285847200190979959827091258158090844500213691395937101779786621205673865038626985128367761652754414494041337429941415807292545214864790450568628513192938907598638189128515715942621620797263468925363635972697354526963919453804392498072855005718873482874424041931685586599164772378850897102356226694140439417170081605522957931141098337267943857732440606367174080769249964155310853570069243981142468521440673858489250349565721882470666233139566196993824339915690232719238436286369941678526353355925362056268933629978250313744830212095309464152980130533374397438669470830157685706553016049929041477954697014403990255694774842401602550737264763845187968092054507004884816249697670906069796261993513562234195586106467875414518954931811462144705863689142676889328751142014713039809341592517962851981890472202080774107358487997318796049103618479165082180084926495622577884620736638183620170654533156708226387697291374888651441234164773846378436742855285100020050395198746113415605763596745599901008658079269698323118286716231584746667522656196982350670639848542945275376163156386542696436205323024421244019115912256455732666123558938983159562437661042927017786708117061479394723400440959058285896971685479493840843598058965946245518120283777592376968291374618865929959624797741257270374384219970249539461302781839819381912509289179242615031602637473383350382571317633059395176431859545155310403778864461525967524062284490542762440101672892170665088080543653411245040581135495169807258495497623054136493430856976219421953846529351631382581254547778080577997848261423372003325369109338125226794296943678500665541040216949980032947219725734824168632423553256069071316092548670021318965297119309066019754257377687674216610448217925777842400137557825129747177046445875626707638036743398642359247529226005170019786854021673961504069109489849483242789983097906298225304488640062817530800252249214934302911733552982217537821064298658488459819377514629507607118470440747928009718636638797398618592413759230420918191878542155487756684574170198680967514321245040518568518481373044246618580758694267208216837253181335350390333044471179172249860615580003648073911782122914616272688160404367484774951226481089761812317358966275919371284124157726914830313501411421123012697731773259978262751055713353580033976579449186250923469217475895658823252730555873651726887527770202697752701346590948682794454856016691391695673601985712747275308799741722123476023540633586784355336548069664858206454099881680260098167982068726164135675653560631582373983683846750335365506487370517802008699096533644537120368103918641273538435459412348863960770792504509219338595376359236989453586557632710039293678328200246588214335189297323899124212796259141986728676270434755444098306975889109433742602629841945130906031368197112395309443332466933666224579528917085148741818498096670530753688278124169732489099014225181717382612087842674407844519502755854014929781237031602315197507921436488183652065559558111455143597764812976597144401318692879586092108612602797558655381179096199366534360032452328557255132715923753659783187485862687225975062619109576927072404040811288792772351394189710966878795421648638745800307657492129413586977591094459370307474826834223935216660272636091869025854270355270422857683196019611129357263514899799236055721027798021589435788157201831445725467829379990917046557396107210142016851044130582148083736501450344888455889781411845552276914369105745867902422787844831583990119643512309153663689676895170158145178824962972095212137944709042531164517483236624426590893261820075289574732237670308606094474552631056692565232205989707361154050848880922020475826703374284030374699163582050718062916522499777555621604288806019494371643227097576510656783164970004163130480332764875497313108612600945316469459593541506760610285046802158352811242949374459885928320044775910247950521158826447011362042422275463467698478985374040179818038784136588900708272710418734796426641776810097641542752608035317267277773440774658185359887137945930199462347703576988900330977702830901694462094461701456901743133523472637863766361900677001618196123873438905475727317895847966738337772755454398547469757893573476395223497593416716388765658036559891401962325067709176239366976065018760699363924513604730896410910702284774665987281335086223584204786981954966482965109473393045536249771909583202248791655017343985329051561554901068984877564110293986780388244312809502181825992115048665485117345482465225533224504497999308790603330984088763151485310341010758612858843019656449791534776989759815659613141931611540247943948371522986950396267541838628509004400477874859783242701839473640448300640552489039019145382134734117900600882739729685132349989684654856372777286833583829333446241805696483129173032292322012857397854211750025307356382431211141075915375234751160835459312919783669433195665952739526543314040271724967511122035715241258478105093734937829911598660419359027556378246590210404657415504838891097118214872018009213109942921323338703089655096796953495686336301501845386445958560215196876472236953747174456370072284656027633927418958079868540191300241935887646899844400035749128975945072810589939676923780434016508940303277217451141377539227046023874487526772692591725788401240799748995006462794019150906811679016554918777272492623314877672832188199237723440638249929355879840365901910060365888733454078774360416141413452902491671756067778253045540057823238907406141709370944171556569015346113128981180151784062716623767971787019093316511619263294431785709728032503485055587058567903596230167998632903604066546157953255629976291403465160016472073574451571007474237812611877445329420734150040062064209670182684757354483386457321122032836033932901974005945570784731021568351761731648080402485748018869904865430273745124780746615036237105447628280263469318405279465848161580738151512238541528497206513063228739142939737138309746009985317460014234303388995422299845340464078428061476758275338789983531236126714666575049047441589358018278402904378973153716200699011931032506449017125561341456035843226506829926690295016255856907965084889638195438553029425124165025325734748812499636219782461115401155601940436468750111573407215285364751315597239822009753826008508940045374314980394552802504319907898077960796627662343413342394691601663246714937122070422431894608668376770194659704166911171619122877112086886017723484773143700753513928129228552706426966215997359826688398259106180106916293242751014552864951471193799802998308565995114848531226127441068098941853083295475031832835638810469069262294127148542323267200426092704367933559295197234432767530816672514558406762085704055021117508808909642009901265661328711818037707656475280419864385280023461977053549377038481711354638749020693224198049915406195353611101885164139308313485217669861256052778940231194786915726524633013285443309099075544117081225011723039762601565133559595513599790468397179261494345637759907394631690281693183734584364205885877133955759028196249562399385753213167822378965726757519173808396403071179419176573791387279484980563095507171070149574224205250312345760077453481456768031890959304265683484089056839515952746955788843547211010155135834840658324645826338154935062901241370123966007260811230367332374639472869964786912443250687247295267449067393489158609732997751463862131132946540504590490281532777210500219553672096919485619986775221705632703971514236420140934661376377040456311123346261837881194936947226317138291588083470491629132270058543352891138234699537881360228373297452044255229379502388418015915602500831467774266167307123104566715541584178291348790389235396961019699763312454288697127662564434800922447984878717804608281527490293860005725480902993504753364254961853190531338802489705419280979502290835263117169663993439397074340996113961301880558647291414013001286517541395926495252859644762324012996335871877509717725613998334086997990775447309272244525846754383615046294327672114427819723183498337704563603073840098756053023929511163221907627004681139834508372827068770214964429101854944685902770448277214513023195472608522929220298833930280957922874143972076706620654312286739780943804892647448113552070755079791177541594260542507929663131574135137500347537013312935870910068484335745481262875735222558398448178181810658144018324310313641924273518472041955674294746771056802444821214698945338511358035889091025147355422389317014034572403412395255098275085808027070658956582589071522181072877191291207159267151861545262397419813542467371313492967314322329383506685546455826637224862870532606374684836979569344322334983371689410012613225244656474182587935362792418472717488318004435616810826732310771806852601004507288806982447851405670153769881665675308707852625666858778725446394097167030058894986557929990376933298893612195411131967657725802450762762493591000269462542285797505966005425882545593518873464251037926055346984736721163441978051864542599751983119548291956802249264548881495996979257847284271633359813116302588036849860174451909243257262160300194980917112059084561932615060551271580747232911604328716215161525326766912813123563678375723889746126416258078167709149769582464655940948510890309705945487693592351854615391042298047600168214686892031826585281327206852370880044646552337625612801786882717888790660767252263675990060776076698466276424170694428694899724929982068018919344140110852536782150723858591336085527146453174439596113011289532659534890477158063672204285387599778808224688108365224443868365223823402570579513091520045431796915844937288471018717425610971278418833256653794811786114955250698099182260624297249705189003020849943437692023186582471304713878398333235194448248829420656365794412306367232303104300658427622851211599708472159286526487114468609337382428204879682840551225431946865738904807916312856177083575209598521194598249704679142182854167806859819039433295830055374812872916407972980101469287242010192880181795412427161928108846673552971723181834235290786907004607366778581027158358024796243044967117887074140688102868405795877708543288553078879964611774529680594834398262038387335134700389071889754009719461990304374507609292653307429708782356630462512095128245949471988476577942145988061793523241086146978830751357880881617087630175323175577725813199604040578611026959661240646654521976042914872404151133659100828687477961363324779344495315082368574116341226059214199607408166170366938695257039779855791238491500242721252522949269594574899556454526052234363348723975168173280437341617031259833802889355746937515545774990289651071354968376401163077807456129089844654327058457657110123014460851294081981038744310770244678401690629358825989622617318830605131691432493729576409605788219636163427584649354710754267052595856759395375886362349487509198310621939973253112269190563104394345321608223765469386759232879390763609931168426929696345813257854011065627657516580523204621123517611380678017635491445499783867950410450139186375057868660641259192615933500862178157131839402625574047556205189457117034774085632344530207539257457647647487142539916259120786494692201479532388518532595314787146405429445900452699353671507011625760614347485204649336967008667789270654799291227440030033673513719276277873588621310058780884759749933604320528010807552724971621222838534641157107795801245977398170990868125768498337377786362652760765628859379236637250928244887540533957963347111446969915325853473282366633594911519220377155505900726349624635247832699596572296057595140003590799688551384329976421325183985436228746728781479473790179253975570384890735972897336591375250774892979234757438544984683737457299049138115752144395844640582868335304989159276586552372767164871956951368236310364006029107032397074293528446965059900812255529063817127353719803619355407132287778504261587168638604485390308117855525224718819351011688410511732335976911263168794670114511024487914550651144728245400806042828677621879859891229120676659481246226778777421851165568023573071728781923451583767854129459879271404433211303009623600332751918274826028549217565194000368482272928479616726778953894221452278949364352067491657121105126649613122051766912888546164807258738373309527266071824440887353647502401733264687457884542504103473735172953748348704960586571537170586205360464060669383392772128961529786071305481974188160546298264510045957254556415240592025830849915276637035013192053665349763621792683743358020109920300481887600776566858211257262548660300476034370726273688569552371212870725311068865002094061426412116768252290048662880814381751965149644198192399981836084995147622584942020262613085283738177184245978556629200627010641611517898948062271708918259822220876338752412575580615467961185607096955889729127295033013024405165462332635856559051615279704152284695595697421626205514879378960232420713870520607452882269554601783966823359505717069092991066524301820415306619023783439048001218369318832784047116077886392166651466864185875055989489091328892991279063968422251616178556564245319648635734619238657416228237273656765514259598215996647909062649129284184674152983135212528746145702208722350989909983692597793924814447319174203655039779830295119322929103767132587106716776238724351322712517968908589585239581240834740509508606017943753614250442272583619092516726580495113131697539833794688398328260193481815192645201467857681994925296884028225403862513769206235938344902833461642427119984080200831501227011803433291612620927525707808972158797085823579583945595372784136856037672707801723219955342960629477367758772393837634894305598671639280268086634497807760880481518586050999995288496657994145267710904880623440958376685155837628240488721920954484145165536404757547467005056757456245730215352936550844820014656730208326675081690521508351452303636216732390653705369943011079221310446033395995602697679677945300866255545617352130181718521752164132753200908971877446668878578250237396747358070115855448623740946752997224709985004410341942365029694575163233899354136991717193428091836906814805720717665934691094793409932453876148723671459250354256482996467324495244394164168934758994165667733923171395724950579030217391044954847622274741713245833144145186792383747607864818350673651075048103839784291536121882070403597157207118443496658865822890424203425502168005114987237347779723687236540590997760096566180916145877241451485012389071785143996147781680999735066130990758221542396377718713579247681863316952034204863461875732773751887516220257579259650388779709544396166894209589227909761774051614972667631824406066750479898082233049941377773521806433540351054169419058902865572684968993760398079827469883584729095313639418958636279927329431677153006669493777772638145067390611937338470945494201394495730981165268398144570746516231523703554506020326405107455718559888126032764987253667121742379426050838805081938590240887548811114120255657301117344433137440592299576428819550613612920362874191462897165064740728839158232862798288048754256746652948827538345937097326366352306232704054943907842738232031861855140792180299139107698866894121378811853528150623379270809523010401439964837924948969998114419011445667282352345787508511247677051637995486535555779216990592803311463438938481306449704784553048759962775093690880807216917374690435854401001565135997755263922079966896197812939852695828023081273602801909061124693150114773767267733448598210686612116595982909926508481434203385065510922145364003302155111743575009975164659609720448084528647777151914698765441131872069503459159188500672708981834282406259838588871781457871239940169483720060804560412106969827687334891894212396739825738018746394536288461156823120742040051212544756730864081631624315876937067653806554168116888374087840513472836067684333513192729988741770705812064627048139908576685789574857381630024723002159222702803004523964602566537997704217828250887749323742697595074820150456168655845935184000919867291364603911923745266259470966100636825176618586021586139912743404505729408030768625188529806488866626358865432108210672355469931540458159237322859986170392100893800495330987595798873748468910810214989067303640727783826141249602626004206228207144920265365845058468645431283110859343847022999856495788580644590291145435610119104413578233996683894127428228219988553272945085929050015130745153348225759323653689992034836594683814796031805458202547016546460951494723103873441142290114190217015858987402931700538394056976852067360187347809355977019302086625501499333120913620968947855122644723308701342997782543005969246318417784474474549146093834437968493298876255895114140844715301085609995965624095523095847970879496760359883839595914847676281834278634528957019855231728538290314008096712855165538593708694367617602020819845434216366320786875261997393076519227769428556826126257122837912423269074780741786350705088412720950043739853494590652591167475358665913878365251819165077535910139626219396148048710002940513134092399910888991597157349506642581303432793510064704372755323180567060709012258454197182138548039760293196708034930486842180101772774064646742914842119156522621069407747492328269281551195554694219168803035505675510815421703443063010429670683941504135486133058333952933039986542505709002394380306258193629855213028584066881530922165650900416864127713308414164419021782644128265981896105143183159054335050511785806144811332743035942791116615627566846065262872342882755049208984418480522345121017798796761499266751097811490796354994791744623854278125675693968804421985343887504846840637494805298204058954090043265451591028534557120399756175825566863997374753259012162973983748339799870493124457288811296325353583173516208927220601245978932210461608887316361869897061845255230623472429002684187919232590130973806226574037030525510418248124122255418245501197847779875263657418875762374492279299910259210804292161530089269509009414008155069693980467247648185593621217237128657597946387515385627484605179917522806165737211841261344954304187883083813238318976404476091738097514413511714326738283571040840222322523932062775295720023117642794091866171079469531953263267571398098134434218678243907592261147086544285947068775213958912585702964896955693208841979162942491705319486004181432317519487108496065347380936832866449078860966560371431299663472472690841477494143781616329398464929873968909026818574323244152870394111422880892781113860613557147362579202273080806452809472778439409017863097516229684101520101795742995933947633503024106524477474366725009034230757918605755292986979610722820443530377317046397756202991802112899030951218341369207567329091287143138264045031938309237707305138254229230289062269715310324164473442778332224514942725188553821431047692448057324433850604842878259518140480819946150814698933258519357652474759445813452839851054670914620875158024911094459215968033475160559670861881938638107398647455762632670693095380408201777347705628243691796990869424768235680130369679936783362236964833946486177340384748287199087984876757852501831019441852914396409703013200629588982380726330715795201987025377670501774648158866694501137341717316419653238107910011589816372897449368252955330950245351188863910325557446184174627484725531566514514563520964282771143257591265869550655984546911513772035128436489255424983602380661761362983670150561272269683520835149398577639792509341407481445410323474744514158946421323061345190306925945624104851354639214148252339629514256286980604913409750651563363728302314423890604845768652109584298142142851893772554235378838741566745616744848719004534132169709052652760108660437790907077106477593883304111434359059198087731360868797295040935449640340272764111346520859629351342094962732764664929204224734300738068599132523877527192185033470568196945129799167860998600998011774366876053220305949122253660648224275405862394552213320824073052998808849901721805255097322568667921771584573953024226330519767621711675012162013017847817508710552226213488034036593469038114719466976209119277015914259280443625429295452999260180649324746117541434461461199738490713676854761537454522676771492294299602109388496569471460650634945116942902392709247373590791726786501511647130073719803487601173628868312743697456417743845473746670722802714394633461208229542441204420967200514350048239004544477633656049755229470767052824838694487818630809666337596721537029107007210962943694026719763077996833509790879860739496641693725480146237548202259169371143785598926027113971090139881440256456086063182585346345836646647859275271423067395647658837283037867892960478751301768006562065423981419433567514362716571592948415914363429532109098214398354340247508496016925406635824387366116280264182583978405266971661409707729019202764103495273726264702850583080609522811593777747914398716611666864965737905729857636408319358740312931580249885383858883082602352375482526299983736181532074533217409982585044339768059355467482548485182989627198125901009152068997290776410812092672236483510541969813398709065662977004956869688455936179376739294071192596889790779062338996956740345358413757518717506062079342339200800009504599101488399492620279179523219582259769687890246734467220429544689798884643525300992482445279351496974532916534709428728320583911224175206165674336494015587805289591372347139248163264480890600676604931527949852911075516703946145783958390134223121128113134017590209558892777944327192011696720445448744844265334506014477978265561780461946012048958652670274941667786091032964067793272381078299328691978479556912628957634750173359535928367520634353838712137415294979641445891278622589230121609005226669564475478552887530157957842652989866457357243707328731307423556675091655444719214600219058414392816346118912684528832934692992954520921737302709447036938769448482521188928489470597143783584708218083984873546742403355949286458709907954389746345207736184552843444550556687107546603791257543024996430786520015090331469268103866868936830509907897762929355711780232335698538643051436433700925583684036561110498707294260735567237049908148320938593793863544089644015133473406401378323792978752034143054631289800995571424016719858751354275127703253790240232206464870181987025092194704770492122501899751571914146965548144276272755400840988174354431230504998959998929509562636181988733313616488755179501534110196785209793026368523498860175736736767279785402596220605993832882585350444694668822545808253925799543595791491915457047174634113052303063592777591826825654770940977779400221214619464420852010995064403874626504195120492345232193424713757597228882719796738581796495111607718601261612476114812381787349838620284673506086069342849299089153121492639443132939555299233909046806518168169715484406717935152449847807623267548351161626931940784835737449894067125864592775343984177806961528650539687132930778621389421908375844636459995366915682071359371124400921068009539868780651463720030262233611963556928933115188289427705711927387225700036521702871010911651626371674496785136914589839796800996320190842999087552319811599852096668708676031372578235693531008028588926448677110821569551504455475786107263331915427125166380644774294957139689930183009555282828240216065442470104701230000815399615907299981560250315857656012589148691048075995849514757994381366658150811175290337317884278283852638711102290951729852329908429650940313375857769010393007012830690823146077252062186262740752815178735107659232692635904765966479653760009126069581778964715456396331951232971490688093312251591002444495555209617670019789434042289087356976272189053727874805477361731260489881791141781274249945984788697945626338886160138716880658012027889771924053612753828098910527717762897727045722280486794835307350257833986358132578154084189447102413613342227683998516082887292877182244695547466524875216404291364974760996988190344327798073751001883250749035032864241850408592551589006776588121685315042697227102642215749796804962047691506277174357951808225180579552296675528696146082883343128521573785153212465788294762328453892034684437166821792687101119867578413174890965131111233079855736040581696603424056370818092953777749254681444591728674677613673578195892124895297362991337875410238537374104182201054738076639344669401124186517633814812528231893706166958611710982079742777272469592159109858951026905886820558554898865843797395955407591445653148420126882600618617071582575126464276201797361075855336260862827749008081339519955798661942739741530119854954249162678344204098279424750520947795529812478864549768495806318956358260229140384921743689612043455113045373255051240048038515386119663392837826601964783129516032123260039725351164777012646014697927184741976953443029723876888171942006423728459702045965390523586146523316508934052695006974364465512223856980283602633987161099449236554339637057355432539880243572972885812611258284945519743170606513927308605321401164395547130300739175929690485256152103436617409591377625809230009468833705850655421772921293858383838160629535414966074449092258079690280395952350584001803072471737038193421204009000017529370433185014729512299102421339331030833044654982359348372887209716795668129658972634284974171320350897772715316009301206047917754580236717188413733854811260503882717750971838499784504601011470472011483168720294728013539550597167798668207014651572922885614176829053418595379668157374324301183370487711985269650443408065409800380995127215775335766956457424220462061161726733950830368291338232212648637886230143439969228811352208389298025111728246926456498662203524489469067500868793121462151655767274842977314624880992109188888095343328452927503266539942683766133587458728995480492423190887411955344650702197305734201094126604967709619663099375894917890719261353317042795093359335867866661297540839073988289588509900479133216730277143156860873145155259525970084467241242305836479255932194282281515929693287849149390213159117935948546465756065101572549209053920898870804627098446268505644714421037889184710763031060731005176586839745782675002018455654689995560737747691872474030638323518036453063714364898805413214139046692738154888259869229521111022476362440233054536616344456703902700413803591703660885649331593043636834455051344333774082152827078531243427370610070012650968904459480726331501148919872649341861088426059191003820119595777681687542108476850958809240406191677347012067787308102672317949921264251332803047256856620944023777178517039795661198500711141687865369866496125707316304285963962061839836298113090850247343884095545222139600383517130390385820234059695189720239552715270995096586594419157942442913785156986241230357359881109503298792989350975391700321657203363462110809809869346347833522096692985255245657198742156000864828405243978391489085716913976637676328473960052046609276099470344696606174761648321629593861567381237800354872103224612786480776111565923346501411349287168337828762281780367473984994895311404485165766792248197906387451105639389864262263636652758213288533933816601068950512645158921150323895794018429812903917362590073018915106030490519931327902449541796181525523094713769607567654367698389054011111244118398856952813885557365392574510927754677621387952819224547662750094481882138233758740769114870132792493916932479679588894381264143519219259068552667201390864594749304802852660288765481577233431647117473110063087666394366161836484569407381485644073378558661496257575536199956297372309389750392924561830776185663522873703744777114901654842186431250695613835955867678332937827075855702410795717094902050616917782441298979678351158007121350772239313870004252947978692473208193100844378906688947065965552323122042701461141323485500626937024966577291817304469589394347889532531070853165040493817261608958280145955826098445864287394766845193732410192442997572784770955425146053733820903289648074549559470629742971348891666241838015540790823680630002126971620994310559884435513049330565315293736239360068809188531869779629660737615903770106125245735319360863783321464961468124299067652223809799132404150568363206465082136371379321337865348927827585762851340956397335577046147215767070337445169210234227428081321902155594882873222273829565200936507864473703697512970869796909243572878600702839533194954447570224816538150745442554586581455062054195095827603493845038784570257307902625809888957950062286670945378720670274019398852330713036612130944208976323092693369349936718677601995334632556720952636900935566399217601267688971465850919643949087673334447815168292207970567548646027620387360968457766722690331942821549999724300189128415915620282632920084362842887597883508890894802761119516934381883852779656507412049400850957544437124055704886688550899190083330269719240104667087649298399464295139210639025246227492940769223857263216505435616944174511570655083142498640782749990782657554115026684889705086616741685119674969188152180680372456950696343913249546493930982708793129784482151798793193823045984425540251572540547019258926392863255355434967621057127262591644373928204011258526351469131059806603862126130850671101360126885724911057608396376286429513211624115777230520243958927436839707350611231752645823048750542644453654274067664852016448169166251935477573743368776222127568811439209653823628984769064398284754525256607611828352503987097378398187310519485044107706792643481925345340752939993910638951367607535165137866186471584951590455737022305068065367018311214115817403601648629554166470014447891346875417115919326445792649358151977059910644467473869315804300921557416627225358339121433651315776901151168126018227605696609928673675878502577955378519770736829376879258231934649067823824912951289833902064488261612150778892204209497799093455326185782619405004134796918574425570687867092165045408222785460376861443701918437367995859694120509531436049489772226467684916597156571008093768468242689069917944417798716916222495433956741187449926778186818934200010314768503103700724631016996158239101392870744911756563061954105742548787770861251600463845930907472942218466348903883198847817537049426011955861325754946892085660293122766496938133550190111927719931837378520839550770583408548859755422839797645249354637067523576272490393830326357294470257609631344454968617668313354432733837343698942858917744352460676700832248292565442354727572382719468134476318713693597970699281071690777356985602094109205597800783543674979480857706330388651397131040062676520304349004386363224463765909939426083981558158354005383568129475173894014458268926783037460455593730094365600865739829632818531250321006855796307690567956701910854614031632567435238958443478271467268463381142399924850723781757685540379068266150426276029096220493900397309906487985043549794638367463753216881437385834988821857231726705783710899715620922362756231226961387092252769900569386762191724232814218203068975050852762830428664862655577956069792243321988489515250727008331163845048415224317323756942971206660307374822512794296091499869111106869729584483650200506155663199815860505364687794892495974340018655344877286176622488309093493653387621314628966854581757162581914297642386803251338990686718001973998661105736104478536205633787358532896677235351565455048076516972004009497644195203113457663589139110511789709784152686203158189990313365366886705689224847911589533057122631555382203994589774924236718363839241594029581242208251173406716688695161151910091824025524195947131656802068596701494843341876022993939843252639111275663147637806135343860510984870793716590377516012784274380765493962644415076096453367963119501873303106401176356423810391708866538541560677359012898546764060527278649260188396827051368692595754287129216888648369598303491055043423499842068028228532234497464836646595840533622798523267778650842604784531020066496988660736308210258503020306911994347413017853403185353528661643966557734604310412586349006506626081195217474465116414327802446643776594590329235113542221109966379237566819128913156258487078027821591794516678245254244835576615238120363486586800025321251549374288397832619276129327924247619819482004946856459461960203085515905750763558775519388481800359233211152426806799264588056750420259460446059102302561132023463631226961296865499565648948986177938888475431361281524534396167601866000170663657117036636685226481346276079546741719225121624387463676839583563395274505709552174139069246935282869046551245278477563921459501383584066765983426526673565681456633999608941395402992197447307097808879772004498773275039223571318794196306689848163979689348471395865666446282748870066704258783297845439057548545660330294077500675751430975750238476935569285118479293796453311989267724526321733620527290946872181437335486035315514736654903377226545589788879039357820265566904240511137170115031044074839067490697040013257232184055830138575982624155964647535707960781375433508223827220725675786418916383996990278531000946009075032401988875831554809491483965783870193019572399017382010586257195531619614118506517916771103794511551602442412459708275133305934153440652309132970685571260929121328779810690669294217890744480285517290374954252453434076900556223240509779676968518963712212051590306954428773232632710306930004231824657349796317790657641846175508711659355387356665628401651058552761767708378259261091254406410879109552354710311336711262294956940591736928950655817939645598469799239192175199722798276457107361546773663422609999044812170250465738045940303648934543516643598995583521291637399923980032242711644736206703165020338803107447581662666293885963013584941351729116272874125194078614805243582659537691808188600980143422943973594281709264073082055798828078699805540233874511734207882442309285878615253573498389445570035146560178458400737075816183537251070499412457161707586554019851205077070387078657832750765573020725101212581463096681246557610236648656386224596652389942876622384202935194235582686677634259147758329091140356060825057015097824415176908549111564402885231134138470562978472572673207002724999000392905475097484659715446218562185216293140428480624522575259968355652059329458672324299184683577380551882866008276143078634688672460777528071963883457707135266208193448693711455395467702914423329402538785974288374616098626025716935492002374912809262588952350934570685176978145455774785092738352768419719080198299387636232787237727070016933658040140227289320746194341430518763332400888220362662208172238288151817592370054485123305167595098316333384785016969693220258630508587748548496796044555503317671982792394720185043105422868366506902327228037846792430905601545488550857459648840614661332998902285498028344783398372981647943822198200309972645880002509778765873956079594336550374361476940615433528289649609706131028880135238964108787166079707944388149975270901872057772809850521466409825112046836340003760503249985520361839934310489884409517639236736916968463991771796184304614424579863276772557419012001925863379365785959521025494631404360191121859136971592139918220497444938404045276184411392797399011175490503693826621279321437032677853279975631285306789901255337023442264599724189988514623324355311440380341251133827364614087276604019686868207096347184074905568048653543367045708858421913861163300478071099575165424018436421480384048400073648031672932764924503646599736630279559785289783741612744600600170797868981867072401796690504657279845648064599746101030216179451644825567045209693724505092652698758999330574077927170578148343418617542802627328811109953797455620623873249910737652296609352771418628084805210120946303391010885433750902924975103889320002701957392723419909913762517235669494892809292635014970146111116871580311403720025487719641874798669660975226563637829981108408086911958666585759008712923450658086142130143064549891995717357485108651404663873460240391381215152970283187648260663750461923220557098339377524132910184682428028097192564491423564310983498338274738062006435304465742218128852763865073756442325580894635535821124113408693512119205371955044454650775393893612858822895133986000639406961765819831432293272965299239842806956129461889305547303004762955133762238397390208619240736024317965103457127420210773206012738475029477200315287619291402985308846875394434085197745469099241746743041281591204761342186359761415222955082840299413784883824390849407030192676787723405601501499362255062013681985926084738443210350325497006161088024270710818093357300635976854907966218223046984105040576508673669778429770060581039018860320292463128141850503570477459172501195083574694733688076383056967285506947277798239549301608140289751384615657641208487257936009814084756013416238821904604520923339320186580125287914766000967857531654210982132842426776460572710051419733877220659597658649633947730687244898019752919770692388598446479971928286923282980746385197086230985594129947696797409877391472331436769694554514569964853636528657809417598849770483860789664367609880392466672172000722682785179768126675361643784186692547198367894170830712466001834092611946261964112641572401631117146539981976017359064106001341742946562081805375043916620225184217912465483874173190316417798951826002786915724045599056063021482662888523231813790109383054487099775949641862597438055552646301284473820617354567000076044215278125203911700375067178117512893199081843907473082489820556588839473496910218939019367744838930531800313779433238911081979906753253884228084501407102167834781910892532492220802888479135193803134935490609331536667754500059707344368644348336020789204519999004110263149355160346542286623402866248129136426863826082885293110379873539339338307388573778678657072023546911414699852290795507737485472837561219138817609411180012641078445524017121039895227345251811289732279841118078694614473744568796281976459350347721180111760138293616471563883370347019835866345485100694513875492245472061071423574255271469900572532797866599122931058602528038642569921425324432552863014413572946091137514702535642602251342284079889218471648279980177371214670336336678197199434824947551969153374828492896990917920110721152685320262788783196286349524883026069879278440337319259881360063013347413368516975752800007619469658361320179168498021405916382457745799260724455472053846591094025764260364251497829876786390832388435026825900474347288240416959395871034261224405770714809355487546226651616541399454021950725121534431785128361163264447329038900731043148397261803688248877769901218856431496963457050358914868505061333837850357798771475708135763965203233752721068623275552602189488256882126269503310141213344196614067895336619607498655364975139702855264240059022930819405452913781166940189954160496926515929224449683282688217071331091095905710104050654714843046969433357133127289838771973525993531804775834233673227830432454589948075391715530527706672541673219082039695478973582800250699261976618691654099913567505074393049032560879534703969619973580037468682916985068047435866693850280976996841420462446492874854127222384280443722354582209344663826333378065289362818356980341817941881340260572973323251541627812020030147544873305893954113487131044729095539314387221499861331005034886367314783206362179397257098772594025136696881809717137756025186613442930299442615846812274583202558011264723374346835312403683797021315875393839993237904953685904245671841493705651849219010562083732358275470050814381197085182402056383061068461160872249735161660423401794960736287158753640356264414807334269597596708547887879209486068176802625468747599013345647654377444589316237301911375037951104935028580851070213773145725565898442207562708334856042899742920921179441589200403033074970292893960477489346074703250302416065682439841475232595200689974549010560647365229126913387703431243829425390354207609940858591009758424375012656092188914222591919359259072627059194147423779511661081141011273196499461289376283518171316069113632564549837336430113569097204589980185145016721594009538743484277056557042298336137224711802531053631840194030466642350905829689509371262677248875803370436443015773660213613123426308005648623803681789911013180876139500839706456528502013386551084974583993555056977376153397521769377475176361599533795319836389375164885085288033180688515267788445350139522022441831555604041364851127779675359100866545771998294095539576542340432110475364756256035964793353816736857424134100252476597183595436103383513282845779810270983101380092841168221181966270061078978800297412754452083741071736727430139214706539706464776801077297611888664630044350190512735817330514796977413827353301518308840418234952480808189318462441955811693709934075248200625226707639969517537458164146618705661794574789580238188481581467329885284556155101041378465527172762632043673639658948511071277183292985248206182587964885932350383330169002357671642233894584727207314354448876726172568774943724954953191718720465334447217416890923857041205929367623907947082374653867980362530982587407874451860679269307966616793386072810083991656623040443946355849084543030218355684364095301207086232125878887935488522877499909970158574115907684497977939834620414937204151324703148678295579911862108582566057328248738050733972541049662823923014734656466811983156613453997983486213986608351992263670060317547661325622844261481418894766075799278213531249436527313583705190357130658870502310527876214261589034880544577346730647007131336367664742069774394433967168115213067547078850270373838361033458555732464123990204200444672955151096629003024186630825494364440649846104703280638143873293650686068285047162958688007430607244890456682857918332765752901947734357265637745015090876008039353213877213055462482342756865850525802075808704100620788195666390254772597255127909765278797043391821263982450911962349579994890208808571721160568761142611000353775893683757570779007578804680729844874933681627714747701121402015821585603775035350193876048430483792241760552132254948250232085230357247918675106383725705444250342936454994757143848822002927584727326481604207177752007107643514656522663789774992648370163146573475865793461561621755606165089250762425035880057182943233591129389331545889129374299744481007513107727480705175458473141018705452738651296438643220091051948780565700173323895961218515176233749941567162170816037596586023691659294323439947759390783651471812702190543344597654515091043776688876708416992941672215033861653713369297288908088048154523067084331316266834632943080504781214453070473953150998118184359301022095770906756046819395077968975765046899723358825381115987747571769016634996969445998740032015955421750300772748225681456528296428936222560485566559417762661213343729209800731876037916849371453022130628848411953862811447122660941291953461671461394447597522007026247750437461723959364081083160824911021100403686886639129830390097860933496259213633939433060100718880519017824065644247634231470950626830940780159155551519436917914307308252874155580864160865864445435460223332709645459544064721650557007607470074616276610644126242912667433614598407985560416298520051111873912987591214546085929183821582784270060918814515873687207568295021222807393557391032351221628307714493457637085040851282833515558025284935684494092587962631626538020644767398291503743260020933019655420246323093364485638397474127858454416705831297173221001856050935583505041753806530132004778501750616363519073139491920049811619892074221680864251348435291245256229350562767576992421713932160761053544798114094541467353681359656248403197390700756435326846275704263706393644980227778548243032270733671238455715626023307002932743365403344165623713796798947575555047318320461166546652397150488707578245427348632644718796941112263853324553051772024057092193820334921098459252600264217660303380100661305925382824307167931924898087345671935749071238151136878903074027848399174024518281838019056790935962749607413077449276117684000752842227872264009084711423894951251207302287225938688123169752522083596628945835581241264194069725708422551332757352997930041120903754390770148314672025857714462066996906432851545985047226883516664907884245010133488161509448505142473314642184700853652282887284886215396021898987071466524792745973389289146167432023653818904273139393687710937212457022533931665438659554288784007456476465526313261775875283461921076076283534982034823272557373289656671563916967863171568555302713138916212172525005047361174162412098227615703811753425622773207062601017596324409127026357848131900994581494937838220221802528606647303621085357529495108969173030021386394227889235907455725542151376646162501964797538507495314464040153027438797713419122871336026546340806674798146317731356532633783399165874750629957821733214830368491795168730026524578539960626148838372124929473577050419486864098609355479757303868258521798519704205122073070388062283654011225761658653394409711983921876537133220558161892993965912153680469016754200191139866581919501842641524944769978740405963704038462875057805056016332681128514260922218083901486205684627379539722156620405434927584907279462147852917318004757566570475469066342388905551339173190008008140832919873534552965621710971097324898798150220861902946769220361598078585774106084853812635962193217861419868181715152658633798536267890194527745574739739351692069337520854036038876961770881392431657512912433463457610024610374789214624992841306428461146721780494295916967256329166586563372298806140064792836129589212288696237495537618673271177649650908647528377309799465948150257593064343059674604180358334078431833512309962437896649596094737644974908547955439473811383860137744551760308598156344756201843936307102362230282148846979215371083517430335880193574877239111733214988313774308241071627314422781052573185341388099092484852198240369208040976972004181801272881574473562863049853848427241205465257296704487486234178674048988148453992842334358566430693038498998876845794730243688915257459482585222740842206501457169968044437333399130264473361005187028522630228359634750731672563185711117148341655878433676555021569111864260537712715636338532937985903889226739495811994192114777690801555215058995231668063906518926753976331240110629481385649005478721120893926317083916336960367042385210549004710137009383171121964780652920621230630150730755632055642808830586621308234340553723338769673326190988929155635252408179126129326538398412870017415914992973264170862553630308819372761670452091524069162179225263479248888538567156262952752159027627141490402023188238683861318799031456467768656463222001292500055158019776331728769628979382170756041147615667610073256028446823135835270937200998376527898404636147217003289072701313444732592658461535483490004497068970772207656621155252293119716567232004398380226919069914257683711453760763406825013270548538448151793473823414952681636807528678467074679590505720187149350287050090164486896963245379219928534336233053472614913884461131736787893422731126758838155605592132506026310320546758860973468120806776220796716450486465656526239813486162480096699659461259606846179450345685024300538600500357510202167957740158017033217164729899191425617301541223927016758632968350653130396248536383230221151169275832422157569556232708997212537136025498885545014668778478421088679586041173694688442129939174453886971557985404900776117676717868884496577292402493383901706293880495503868363580544917347285614324265178202791014036493749198146835602468353139615915535728588925994812312650631116912593710496940687361694115750460046692824345053731415461842599759245938038899424946802531187820688494152855988511274930831961137171794689619552914114105253797709220276848440106141780442896735535066778107623832685877189759211530581096678054478467572034075381272509019356207805908062648936088640353267335784153432513229498178655023762998532895456202920781123269783984463003918905264722531152508847261529577286567303378855116809708429546603614538328430730541028599041357798504769799769080516925077039195806494058536579163128774068107573902596540053343868990089767827598875751860471137776859409516593079970957213797142680879468233951807489281581971022011921307383297756816020083266990145149071433108305880775013089212128194627504893574998347744542078966649430512969270618764511576886328281533283811073291653068877538884684313334713057997118470614885282245307131049008394430814448548927793138725373865156248655070229428867860364738412224382483334026531188239117016464241790371923465749742148092352643982460514927614047628517676864022962439861171087075730880835046371470808623030298755944766045966143070829907891505204026704859483012566968026087369452236896813218279593164345380725845753617752250103666113563393710111599274546987181893303408530733298034114682901406847539027793200226471933347537959082169881481200458235310278178282275394852066338988136050177319756996759955596612163822682949958153409508565882990070227910842128107937609780867514346811653076621262652619121975632045506304214946659328031856412040189096103958496100270684091353156704865396639919711284667482461025945955350340195073011263139335635921300031259587383328331172367246365255359307924638058815260480808346069292136347431148624249361265524448723449057056345728223088948507740812979843870019657877850393513718841019443049596552009712305346640187118155180549181989723583943773541953020122547347413072490392413627838856991948461765123032822925003375320486555228959698221692008175488738118817630989965118507892247543093442173051367163423160795276204335389793875768895052091045932075118004342096712555209353698518459956846315468484457118171521015600101149493897275349842092540948451502941541366004485501329690700207891694020492328825622369517297950864001305190735097765713991846398497869946820476709036238565959771756008395805336222449029991870059298601611511632241313849527058159729706455139602568433212011894923395603929169741029472675091441411334979644787462834803587382993263780815666248165330485818861130296776486695918980015658155696189838521560084382757558153979310670639697647606704961899182961079538907524140981550806146890563226749597168506197869946151477296539812720329107337833965550003167936615889884918874722856747507231973131642348260663192981562631993973351346324786479474268127667918520220163436771246922248159154775232751056947737611774658419607142988171513159655522265541863053387285760882862885545039369947655107769459027077918834474330399548812329530403755939504343524264932156250034988500500699225599111397426565740117137100854118301972355265812385561025379638820342427245235579003849436081510586705617134064922309640471282744810180252461351643408316206931917097004176687683083906529919652760845963966237262925616153477331309746120377934816336877725442802645067184086287173408350325299460213943230486712846686193516114182350052079253887537415840662180147902176051697526312731342495769261746426713301737791883937579413318436617202035310285798019238070941468947704988633971550441455004737410576054722926367427793549018179306892398009830725670619051942529097697841535835038380627434297557460600887678984328959896335944005015450481684014868607027560124777620769591899206232126297725495040734517626086514185723645459951547282139164738057328867185794658987249554634474035107855077223669128294877770473163859620353205940269168817547782563176813103791010069967037603889309261424041440172431235023580875794390177358978707373761392764144548515373495371648020684870058209023090654553801412535734058107779369544417759220690788705744454726417034228251092652412307364349702395428986692381765996317668781942257595319325947034536268108771777993256286678401244938917176645486574877794811058297678670444520614721566211280415785835729063527670611349568633082122659071978347726312720103871401092616966164151857104089089570367672383459525663299862697988325804670477208803500376932088486571315561466943259764146780416054507822888917105345645016263210167733709201063931094892312352025114765252679821923097302085632473460605067970077563608555045572572162465922886983911889423955264572311165964486249581450549564226931155500124988832171489286377291674280241810806451466307918856924934309375376235665394822625245640797930965149024250641708825407914216648081132548901390291652175733115281358461713272111737442339112528779402527068555325716498970138981889005462614506167326427596376752280209877920118867966323686619309796784527291760168136623231893306413328949242956085315030443486520876965657460938090049709972172382269261381857397984136659777973652864459222968333525105199089485848219133081362087158896956717257981681638095928275083054150432584453941305315318993248958703179331045149277372352513213142714418372119083615753893252779833234575521891081784383386118565396237704764717896566920344317992546567797277120799074237240761696284139454451290348615749786780589832283145693605669964386418794948290678217738075755143959166067769070992105514263159676062369993001456220835980674435698599350321868667162961377449030344645949975785780581265806225433431140572162667260054835531463425182304846219883831479111457832692232632200711698158718321984930894118956866470216339749426944445066818048432871050656706729635203332824454165860944574569600345442398146536547509721886429091739929621568495310137727055064809713906492584452276300419686592304666339672939963763584910879691098775907731162292490885966942677783262455902940618820694749539456036113659858116074087993866924067769765263908972872043100272399170468617189113258672288432449004086149714675581486651832110914883578088151407234287799537326483111793798024681358545295765664684549798668994971374397002357700454495094893855486507128717990301781906866195846133645974084620356571797566838593795751887479527448684918634054717685525126298137357719109174051063536259248614384682416835426237426383527241652948962253483290839782816825661429487964468219327159277915560099434958019398680347959790950240297654276044493601987278679333202610023831920794041325506746236333237293745011244271154666953894037516881311456948791719249869857058537076928887649018917879489185492369858062029245567719708531389721100449785483342645182926694554016429301363033828266955543538657230389910899458815204179703913471783459716929177249097404070089834973343250245469939086251524295662307119948440576497499954656901072699677729371367432027330349409881780334773866479827641251438144893576323165175240338258363670584915387553490413964578582006546223119701688732711785770363434317041349172123990435875444648020525273823864442724601503501711567150604802985744438357694498266018006317967204890075041004187335876775250251578893580670752883213995934133024275001490360743514125545238442304635128256133728984267700595609546730821138349505966292159695071702159137191146025211214086349236727517005795979185578867345676457074376773490872878127018449039937586628828355212466041657478889198112667181021268176970033302388502870367652763642270480931810019628143560257709355658472740019753438351968210691741180317338393984131060805283891103407013167428691187130856115611865382800967745296095990357050106736036531111862245750044801600876944949181724929613446409143886611062189950767274772005098372438930444976730971099212797417841209122996138617724654054858605561825696008759586897639642270338840613372590049400717753130937288587232769852980205289440373893333569677516634198560263223076005973703415354346387582956276260263749146973524450871046981554082693765250043664235428982978296758649943742648521284664340665263338718718992329075160898073001168670305188769826423862597987937147125649297523542678768743937628448594797724945519917204092330250319035144752954001635398795375160434509336261648465354063421298446944802554564226633151559852980712605298657421296560368831714088540571940765537499486280250556121088229825345461837440553341938582196265041350884425438608055016148012489795922439451311499128850803152670956571854096908444050451899365348415620474047110701858743105001835772853583652491217580572882467204694216776088077108672300933863466293028542590265124609452967380197559815227068192373158186895658743343883622412415874618538142776431106620835538056650946871151596224597097700801121144392668371467384093499642667467496425273808941006071371107202504160587250644808112300789354153164186690856594179151859271280278039408528942147795510282220688949310253353395513339809905811313098302426894767249965381024401868954360369556039919921308714105995572226048460515510274496001036877187556578568584020313223901340176766396657042577625740213984400184524532498104294426059035057180934535042349887588039159491291435989267529401611880639538183230458007807141002874864381087403179981257960554838342345876902292141063112174816965713242933089132188922940016134207873217224718197827746809473721243499892938221808797909300848937625482933481514139946515980775552958478359499992423620669302820552190899555612994373687579282170453657783864424796843277839479500096836749254504252021218851115441642992580006326177914902676596739779620474660946981573285563157681535859244738587608340603248812374617997449858279951840066210382463285213598467020465804502619250104157031744229442435529340328536765223464403146670445870700822761473958017497457946677382367048370734920603346599641927781144594112297117033916171593233778708939967271934832498468462536641099232431652159161143882743381570636440514093647016187708378886124666585991008115013058648763428656190737720389923186530964493107419569925845638339817378637140730781582918401430464446193395892866771704884464187318525549677260407179839995357934217137997086496826109230547570279537978235313654134111198568002272300711800825068403309367973184965750284582272629782454283056350834608690506627280054844152940360649374004836919491134469370408876282708307573642063309700720176422375896264107392587358633345756415951262930980473515786237669770306851059359248483729419735114738519459756813530968357951473541910312790644965639343994875662749038305631027548230208924761759616377384490847759777127855378743849354758039396370210212326286628942477294922863321766857035394557690793649219653807998251633131263101448406936975423076350505560432027585897796419693582935571011638376557886893903765392933453974243698938683181545709090298441318504581673463454410187746449661049610193156972302906597043319521647790918472889028204160838380684381705941976037806343969610650008613853877103967398513296851393006372076600185643349391949330166274376042015056001228983879098541192469787486914621118376689987183501589763182703097276772437427169323275033152442513208679975192728549990941326737871785307157076733711922587759302521452679872835199367741372214169734191453637537248539657201280265181246632119748955885123387856950717914844448920453578304316654435518175588172442139107933321286900085093725782719485998217423114516465947647588046166645690458496607519882953711368487437559911478334353958314851504113208308591500517018368718355803671529761169278159093670404121164344673040896670292507182563108697931599218715874894200076437239298104760571892336990608163743215766324632745967786995917646939644039418878437818976819565001931526917338722792433802500131709503091044118366072350756285168678817416679680844565696629408984440036605173914751551589963374549643328668505866132065930791621880754944135071299792376348590782435872531966161551751984095572725862130547487258578533105422842358303203629752144212692818283273935860859822755932958005778905676736919378459288269751146649772372661043908618680934505408034328135448945966808693383067182302651660130813802870453703048826690311628411396222373946506833299340307931449292763960739756407300169611529408216076871015504385687368581169136898059168451074411030511907031998865387103168526134717761209144053637117755592682608419595891030899676028359044549507987079417887685073827574599302596586419276129255330356971242093027346836580114500959110511905668049800967898949755806421310175249494443007035265862269070619500124292380763185716667584742507029043610420379762056275652448668598279070508007898054003084879207783040325300986141014059683799950091565643321210838539054216952678512225962857752783153211073739993105728225900168036919873759406179023443047325784756883176793233635599093023609995039324855060440366679667675995598416710530733693759234414762997041568683464425465699604815520924034795813523643001518622879699533468169341688712581514368480721286179992956040718258603315035477454114194765511410820862764806501697706152086382096455267835782551813427605383879939002513937846002486292980782830298494299971543130943113194178493800775222466959655192040796429473279096554826581361456641484255746802462098293544484179832891587602921497017832821160800365810329267575486098116900640505203295697569227592698964387022032604178494884008303411403295025778869886331566856475869762888747434900110573524424685157712639916077226280632925089836597082924468376706929181746325714045992905793384588842497979037169611444391812956499223501858536746876743534030801299222518326638959377230295058410126532014813854458900024088444030583875370897464872611070414444656886571786408401802274682385276122655920894678314168816592158866993423909347521048199219026862514088707072358906194153623984192237075477075829746341457411811391352010229517373354775372977495739454633286954202543992331314983140408064092045874021421535214227630647181852544429438138279370733620990257117758294511159248794051534469131537340255492689384266904607957520937876208064083472763116605014654086642567695020913736339560659920676333701519640750007277027302114322575349300254058069543796752269683668268451607387741270381763733732853338715538409237815123780692982856601526269770319622798737722002852032706214451563161812806461922493394694737432320308306910429404119739006652647020456374081639614592111682476938628420077186279165894469353262183415269835735069056462266972086135842912161969976722211152469135353893636624356463467494930858261539291456613351240690935336203717885393382792981077203724503069829719107236474091625888010483302658056586980866986510767115025614589140137414257018850577369475101607696610937931580014412259446642567846534288966630266594301793205893366699677756727512141538970109887337316566645579168390302800255458298330356464122988536414674111357245614602892858791386818861554130829896668918193542448468852051575515409225810590145253911983416226521920943828428025041122107442796248429489783222874669874990352777324053620385888327409382949488333341337100828221194397658407859068263857052658798046765820733940202081615261461046145400116616726638731048947013388678251198356273232019933831132283641528276243914777574042140678625622468350829605550070358148498388446044477972553059299612379840039157525679799632520802431736459780951036020903836973954443078747370385533083367286536696566589937438086073608617694760681282764869422996221057502407051559859159213687831262860484027807368967404225946183183876370242465146135319843846218435209940364405144965423038135260373604990659144345192559502477218544505564016593749385045084624698837661264355384944989532170743901534061795777677160548653327763406289278499526992582971242382391530431846220404987763257924610878882139262981136004321861642070312840192444319002961705281674672897515783926440815352895383196807410739645527313705050669643423185645824626839737986668437328664843674857568661596496341896876303826056254332748038555459860536024632257131693519871333280900804053287260642097497627253374232080169443281581738237316355905608538087611664041261339188880311163296458673115589071395908401483858180754348904873527982204366232354021192021402681321510334921305012110111574065258419877676399108343904422458948139786458937469192611612684953117227784246070633037157294442993650247169622657636013438276679887967113869836772920410352841698392625585588661531709199336612565301967470735521231374132355855337004577909586830065893929915513739772662432173401619020424140390503301256475363590178734631832896371673522093001249537513975511472475433800406300712253898868747793359479720556555945065983554409537736282847302546517282093758111933308775203464351896722144907250210106348047253260193390503817752259703586835313063599666585529799808871103586635355741510053522946512086528935956270799955719158371668555021222063449977920251934185472075468557241233219225937490451378473103285851296451943447975066066754035517903414578415740854216744916323319519188175257422431204082554678245844138453650125094396443562483462179895364269479002131131569456706186123611857298820997955813029615460829309208830780650190503446576569071220009858701018034515727091160448949126104735416519500444118070841591634942830657332134822801958249166559095436561067606298835932999456112721811901680656409993098523674437626434809097631534298712720676763712214012071398871259311601949450288748036699149939408831011952809274860640164489393952897037617972715603721821499624486321303679379445887732953194908307968383074745567021461366711975784136291734960360962131598242837412188617304187837924134889456001459022152630271143927380808064845766019675771778880724714797597355441726104993678834953067407088896371305324979963710053229819362665515507744197634523191191737517112134449410446087905106409724045544958437053747295416331246273416487964777353913516427272577574324006986270940109905850794474253618625209470563851912393548247351398809804952113680786159185685631750893846944305174528428794645197511190008971925302379009258160924942922753413965627555606753937144344449910229165291668061821928806415756122631892605032548747837320219591140120912960505826955949481314797504897513124905897396517096626524093121352350442272362742055068339896156717694362151482456568314374258926200960964756119174661983877253299295208776172562503806301500732230924919646341240693701846358101178102755051563528800231237041392354820565979831944165258392212935255709596887261199815116803631754663130987159381906450202070789309579783528071476296120254068963171640128676417196829442522011650320099434775485533611766433469375369681498351731984741908295992092206485666011111244952394472856939558146695426228401165584418302469773611242868234799366483340994529585166348564953606398452881251696489333062382176961971934659014871440776690353534179602298390966331596815109346008652878835258030174163366548204099980958857113394148874197506416584625257375418976347720531160808100520716025196468060393747791228121574202085564581576613377839557248216086237568406782589564760058666630157825563880204827101337892686831210658626492400128182906081198643187304427611078307754346077138567975675350813011037061313667831196454510369561474450003873116832762362641358218834546563651175744296341795341674423705415492178497677408584099829153933122732806817887800862930068441855119086957660852354742076186484126994742565731236953730983387422588305217803026477555713134427208139387020216889484804140534472243179816260292119685196577705276322611458617907238051507570521096716642999093281039506944290922210916714803421053112918602575549587366850673974397398927803345850645681106423892286519266212845480037873391323802193815476042011122964552621576100831342383088256483577888701576944921312051606911507309455136222105614807043569777923995772709700393603799099537774394717907281129416902740656101650577814038475690215630988344255156983611206858632840617276134912468552196146528359143759005345132302016335350540216848918083198239019354133801460309602675983612404303625953343745236871690849617464906767489653879072050901244950620619535348184672351831162795000687097788807974143442401804923416073099418326611311641533733255587613207975688070087234838522033079579503919789390893082870506145940538270814859674520135143147941606024103351610787298349052148787358313620711748798109694948046011664607274952284265046805041138146592740454424849780845041061312790257042045329811485395120024176921176856100968702739628956580300278898079018388690770947265705417670078787741968416837555014069504663769353229578325432479812598984296418664248407538314593053354225587471629889639215353467883717895949683689941205616737720866203760724526211978568702927873077998251817506212043123088695849775031788041100719525630287383325883883592435557021118294349117663453741244988166116584203830683681220564687254934569981941233251784130279824996800726206127034907736283627821268587346436650318760882340387174261054864092736565067307843650694835621205803023360199881922902723469763034536317547904252729633480095165994657846616602502164064418448761317952581092740935233142566586503949188528735058769345557245746189430647248442725279922662785536772662431372250855913744294135818352396585728881881508929660366172698663018437546816966121892091434177592813390209946026337293350143492955957273025154459877399856536081232562726549451013929314388492460447714718714110737454460304574921758299137626963533652254156895100980549136652070191902154523123445257353455692996431452070890140289568239386769013833954832641176354050470209198959663708089165080305607917241224126503221099251189404044613160446828499147697263329961086258991297943476593832966664409049885211621445811891664633933592299699979003845537848758474377409343883827145402348033628344846002975944299862154117769852880489599283396842798036206679419608266582383425173219541572826181752488408235672643438033074681940949219198201690016552592702700601803369151851596183739196276522816833717515683010461470392184351009042402001607668269278517032706888603122636752847041558080057072321213458137055584524048846940878435597149254939072350949752494685883546141270026283315777775371745767315885842103880959904105592108706678439980254195875434187034490020241719492057787142227281137981453976798139010792036444943192608747648634212037132437522740060567966720588559226523961392084686445666049058015267506909981511539374546351163790418883051550231657719204281151481488676753653781268318888575678375204142030408247368986504286892378836987900065863744407002141842239150816393119528123991823570821033608845328885518688082129176801749803424763655694420534198550211789442495317863189040556782630560300528056173442622028480733791162162172258492685699632180421547856910539137813249275733416071935146038379049624964271710234269613622818645094951610977935277895589520228798238218768372043522728764411361653767844713534988622854975062473197503962179396482619444301735182217975734632701279503755889065285852762545425402803258312523786020893904393403860208001422617383237277054813379482186034236072171341507550887848241921248579231212557824751298151149201167886870772612439805658579184868136101097976129075974856390096923643256644847698393897441973295938273538435487302226345030945521223143680712436789524226866188103224565574979291655224352473231007866303644206521641191542443395996851507151218301885629700053553928465660435005310474527677108213946292780288275782477469957873047039854495932198458829708177429291499811311037903198906127383930878381697374461193752361466698533342164694915224033825011822480367362328363469978729525927800098045143031556785893545143951766682870186440103884280137592809072040580806357211165846838453982353879754209134280049606707014702417616185554488725958446874130964238709728187425214451388272290350916182207647376115694138513982631567452386626303625710544635568570134877947937778982892432940722951378993969426242314748218507566047792499221915654058239946229128774321859587887821878882493000685349639458747022042834328934509042886477605432699563509558669387994598780108176045485183537789611003982920421663416584565164095493642931546815789230248754520519762246275300658856172936194179689789363612099083606404338579927304394930967008999530181631417680176317966625639447949023618625286595102679396357345081523074993013345446446077262651722668319022616213562318265783326189779906506240750985690313555454535035218029972312482633242138582383404855550154658046539870985967573388811361719090425434469538368157865281195431703206451991697795774491045064074763137210503419467325339228507148019298972782944212554501982325161930470404709286261702992399139906158242954715936989530415237860771766299297921721608307884152881648276818123840480089056258172668593271739404278938206608197027061562240186673283733016422927836391072463948517602321040252208814121265721401863435206680306905718771136435457460441702189344241254817438600626936511035849692436596275882218556484131247612329867529364274869804958160595563192322595768040220628126298883440978145559872148079548849669579593445316347047242908437209568658295868841411268587665832471322586520062793811090220278949006163543253032044964777754055804347367023460560803065342453837925211339114339964385920024609038289331858614810116737243651226451779542493878832151300062200197674808584132511551832227380383860945146529177485310290373326012393169767705610923213850263958818371561240768256212689744863939158786443250623234774683997475344417106605414805725533735617991601268423569316097686735437555522760642131065440266474143876748544354559618373459224258254747607408205499399563961104844048571068385521557445300767326746878903880134727086995768165249333123953905551865272253032544320845527676080943423398256677594704012335062175674683046869824448519964338006182411709032215216906430026559055111978664279159977013745798155580415758445184742052932016339470628144845840753837190572563435099536655688978040773399764429597108851506562036036859766858493129921794676621162063085333524546288434474203898831806524327491780193367656681641747742484584195174815682355769623089753823769907293330520217345887431210261885845506240902236561971436956447466304760479456086736935103268743322501553935809211653512457336265312966352448625662262392629654947141307683933660407293365901337089210253433700264108918131390498129850257726022552010441791537790834568895593333523904435452096140299938590333650916992441022865323391194741304933276003802813596660548382225218566713154571507088924156669351916927530082056018929405346947882637149007615198294973190736454472992076712599321529071963541220314148073232822141921497253403941658962259268279773317759266023650350646540868564430988502812597544658666916704654910829023307754408649592965991558551101372348821603670088377903362658539160241726501649362640130756725761986738845132540159840933400578978691128343540458442394178808331424674345230882739575367625958546921443607508115258674203206208900103474280360601356402700998712099815023971539833148566207608311048694595847828027770377387788952052955994083938944995784891781297065980435460557295754918660418674761825218995181099450123517655754071859961508173690656071845997809755871635152950341200311680314288392182505361319850178455552280715338584540258536282351414462652074281467910772664267479941192855996685170193216996267168737897414597593260272997583931179828551990421844175638738646058827615866693185760131793231225194264863062126124626409610502587844083908567381691560068536050999466341555415076711425843060344393877333714578616155259235766544449064205158065341501587980204060227959152390654467712946525454416378206912006235808353436634236792043309357256246835126848516747544333125168997759520623250848015836299015272012682010466373310678103441984857330032250771824411256884741316082912455082647279102671207248531128798324329064937283392949282149827492602955698744718962207631509222606307630702857849514192136202486353011470887672198030520657610814696723908259375708173966041694472329681275696576475529143951467935791012734862167241400202646231211318740184772468850515287189908245562998040368756752269671513331048932226921910592714418568726501171796962011608513292383392959216811214088142431900732143945544917301468007986279136038957352278519274863349505398900485332390135216767288517000290145659615708922489670347451350060294802676881603706547390376541594158234510458998184459315918088373231036314029813000673030481854572833331515520882912512000231017305981450469357583330309235345172516271284184398841502333466110679819237894486595077395106707750212140065253529884360693350224115825335221178747727429455366791986414479165384850923288821672132368312209492848663429688569837482040180181049473824895340264518016720684465021602018753624447729594267475533124820539851773641765113501554487422460759034789220236858299049639646908458670100840001902099474723772078096197674829129091214287291895736402340571849745898045754792937277437435264158308971789001724036167468102106923318677116336314453467204693734066979489174205537544699163035228826015685840076009767791539205711120496033336910958508649761141842173240838543552040373573913363869503116449107748207635024324758196628913884847933055869565989639910415731334031303060941449969433489457694955090866050134384315017832132759546814039509022950157632952151690321341453307558030764108973356431987648341824450587990903702705001162775266705563248702618361912212281353919326939503935749471167842188157575069587331414197040223945968318678487421602785059126857139441058637398530318575199988413831970691700066366757542238081373372079940461117307261150231386597939988607925528995676944423699267565540160505895727535615365049604685887031924871028715600602694740372226625354793688302951207215105916817168650149679095750994819849637422359363170681525554030882096425512658137073530507511948152742561452831727433596659622564087166820789718556983420762635109604457194175171699348891703269980272426177315401062986717853146746091069359332986476194181805561652841318150163936040635208284607736401172661197536577410080117121208990746274402266203155505504224760076860516065667737123161974464043150977768263527081792046195597853423304185432692831270549587154871873063625484070684351121263303769344244713783189040748753222581822004590779357859294042841723186992677500272984783076293846804231760585333346332210246928581874590455364460645305310660250887805324030141281517709914494816454249637564491313240666612887990434113602565407383092607652859636111954498172891661806212641331791498517315548427014533454796997206584563306881899222997779434856839222723376834141402511141418931949222825238712885921719168275373509404947302009766018691989676838646471241704891303142985364788434647013277390351955996412505840513354078580320166313386817087272206102404456013258857677174896715375716835350607770080746898989460666194850112420911269225272810243445323198337648536747446872637592111120169110712575071566865277777673035017836284239152921410820374868434515496913911325885994740964258442058093332711426259987554191639009059811188335985299831019204954089187056386480152283042846339936946085169447885361156951557575768446638199836329491753509691373824036524161099404245553887206825453586184007939121276684235908206385455617987049579146997265913394174662698547644890521652909720919763279504482761720508524776380974920769561790392205105052028111717999321089385697439337838372354598646060089758912805304345782661464992090314045611344139024139459357620083584267539552018265088531967092271882360296386051103150429730973131226259468088056828302157050330694668931201771483584790661601634452486548631448466311068209829344365022539383418248079639395650837698591017158881549127320868913754511338217085094705492982198054400619446918485938641622238629120128073724505235507219107171596638457032261836586481241354079522033588071648470650030728297103329999289606143666602778465443681050662439204721198029697521675497023602205284964785148214564425706134884381304484613066894077288167523404331660379038890622694628434111534130595402655621416518782738389843985494397718883006830711617434213288712512477456408369765625512787715132287127734587483054989967414197417284809691615038456433899718546997676035625807872948429828836464987156603731633936492589814765116989512549589014328662942058312698522100312187203909321917241554424734685553158379659472763015822099189412818847368159915320775960022613471561901068905463503520982172076518090621934474447014234349201801866070732173185301808489039153677891590995931060811677640073200885061405968627053452534776993448404293551727240244510085111176836394608524306886025455703060628747223389250012459182677731089631916409575701651495348621800264428170687054615809281332794548505763669181075404417565167839763683795155262931844694206276025212631272304717310312059679640806276808391831320751699183178681501075517325015499012892995671746584510279391385260093266037523877217628224176000537949680087182747964633878193849870868994865080388495059853107864495134869727886658166820929031206576883393181240106446376456811759350898073170508878525379200050678173389098862086517979932397956657260410509441734727730629204449309112261576303620181752826928015107429581607457826442683725737013432555009959482228465516567263501364636275130488098924404395794864492927807555607310505030472336802706842048666202883482170764634190900593504811915643718371417841296837119134614406923133361454106912254848472698618505507558712962151062971256305596435605054618533296724385652423530537438360304540069658017519602584206543025243855556900958526281990591303828414208002136731091843563224118128025841941335063702484620675976690305916620304405797492074398232979743679492663562530376046441568384283328675823906390363199176931472893292566194321377909777744811729637946604821350919493926308574321424408621265690155336688218952332350923122049214456560113217556496853692094661146590339539744024472551543373917917487901094643290567630513020371665866035821732940266105984444979045395128212708051159369492781943579391825332885929826829349909872881467263096697278691747339882501669676334187531288038227487648452832236104335478403438432402140978381121176043125564255408322988309134062479673232247903452812719907890474031980999880079741500006827452202140815950624033715954460101135213287636655706245101154261019084539703955324192835224498716545535091314558472305568651486182847036902740921180600780586128554410438862603427231304984336520051277048554285386016677725847723007350574716243750369458555157315479872745916551266798030631690967047190128555090668410434950687438025755630898752221635448470730850564126653582824639364586099243654651069456831667121396512395769262860502878560842211816237428392461897570963234985434884175660744783335753515714383615390584906977588687566256126014337592790336689384367660709628311562631180984375125554364940176299738825670532383352809871599643264829426449101552123475372343871638187385634553741841090855681194715250861517980989056985937671173397598099479165444343997219991443717217644179480013837727702284626748284675946434078399598983650079145631988626411069082238237116930212274630173455490199577875115181839579690691977280702057675648884836587548805908169134921819508915635362703054779826048921152201999882325227819466661376815174429496010852446848511931447320876028126339003562270716839486164944930858480682922644089325308987084188721283583184004860167867790676428254245321486378868018873979516290189552110639429409059990261124306358336470120541864891285976628706594464017191055353979133138216744930758547587513046236823668624862528934992601443009381616812578457736144750872410891234780142061476042932055352144101011763381354208001901303348186476650060759711601260157114370070313512818949529071431515591227095569484698950066633695259076536047066997970162111209442942906803068185337084072523078489860724368193091581343882668241705175876829450759786365812212830184448586238546083324817133465042145819704330731368874594413906776927714675200018804706067777251191360826412597645018684512262529284745837920989848270528141807836169887625241032487876354783131217128547852379769200568276311674539492490634559974140970957591103906202061404574091899604146359914611314916232303585202552820208912729853228829955089388248190309276852017489417494339833114473951796945711863918971672846459888996475635472010334130063297766636036748947762337927650951289160231050212468127033102973580330354351551810655284682949853743436507931979788288061286741456644897387019200434109501833226945959777885907710182595646042224381888626977750342578910761195920648943977660773779979055934195589938891164234858527390394736869442203850877671526580318217390192508361766189527797358877214613068434294619037104868064651563384888602204640503239362691769479910267485886748493381024875814503682859284362874002538160274063273895351065385776809642666702069559001100973218544589167737174127101116992526569379130431500011152952289103112755881435192969002018982007931456707913573640000723586729077475745471277146030671077835184551640457197534911846481291707739854777439582188407621549715434233475301878199801318286471936254961132238844443192102849924444535215916311752516291304326619669012598370653548611355249160900868288021259581952947876781378366741078420342859394674045406852415172036747191451984011326313420863091137926405082011150848951296623804064204115262018496719537973650979864653222795573420939562686728452688157553844255479657773700677324711177871174485838506521152727807311996985899761782677842079250726529709554705331109792822024498384009562859436653408015964635134172377082522921499150376040558603758888873235610050719274963228698574600813675001915530972770307160635722205407906456323139833753713815736660253851971884469400885683735539762144383472528876952473432305436112776036184983318215584276097063808909303401546410631288429925441353639549383113974774909345765271496957604824910608542722482653446899628308140163791806580486781120180694073163925401335422113841787173127886914867593375804740801732277678797383002671732030970507714815294333337394628970854592988087876660092682187019090515632785530252776077165668151245025697580794227125120444674841067097849412798990296677135770850623099225745920298850365940973972260027169672133306345870013905483434378624035393805740351091570408631207269039595284581143931648723560686939102512979002392103317847625385138616085118222461063223205436687999474140610597712222329389583561189190336114149513653328157296074779069872771709433338262747626548338907778524185847886584030823046286651528704729738525296766329128990208688665127663788367461327541285929950294522824099959509346124308616567788013238946303412859531157256241208168919909196363367291558151672076414572518566501165786918476115495441548095835792548601158074453548443530411678821370119830288205470533691224950564477099695362411211247142638918836668694472907484811567597878178864127026222648733839249363418631277773421342513469492729824975403140485627171129708089112725936504205140612081362885480608832157707499396299675620576936479906429551740772553208300850525155507095871706664514537527665288879555210381948840954173372084866021414680730564659173596485431435508024846129740695206424818669344610395531955230347370836486048020964808439605932592920652191431157233317194896881956574600561657083594568728950070635980946815322636186479326011364263938522486642929406465136884527705863051446861519277102744765243763609187408861501509635194410814832805589338191413412396441638944579852284978317771284429681298979604604092745314297801129751234779443672548620814399462346875036664263492352378241920637764416039968896775296821024584849615205516002852839533907473109242532572432314942385066516163564737110246591074672037376419887497366890146862616394398207711756592240544233587360918392497220961361764034844272758799575393799957140844232867580643593573815051571909230128495048930631791216686765570818764498060820071949767119499924385434649300636392698904536611836551837610091935567336450580646956472704967654646128394959612144232905840245917169568181654011468268584307129901899672669531233303282467743416207574465305962072723245140779009721252499100993577425088183349334727205301492108084374207011741117804166176177578942675965757164431529339591835746194916853869081265400428300442762164654907787715897059946476894095419554422479614373217780593172568045454179580873447829666003174525480751526503225444496028188663165921415523328706257075778991968845688584507255524627316071387224496372367411163315052908729923711905955559749768969386797925150836390027875463780178490631918250099403714511360759759731691626023350764808060125575184014285999189127867577141331655875084414119666937248760322398813458576145872494364021122882449634772177744757419727022051091576708648566959595466373819385208562610422284879653097875851582777639178097445098927406091601273124670345459632089817041901723014651474014952928723318020051624455543434920526590972176065236730338163251994698494800397429890700308449279947225085669900495951594980508763247015688442644056941366259428052577327479421971474596164013554307104699422932817864813672443655383430169058907392260462893492432205859937240789530933348592117613103291545312275052909723980244058392383730516880062551733063720533561127216848632000508695264590540646976159614020028738096419154758709998771047059856836572267684809208079921828679363990543394607966468462948501166505502173660019763471256456103859476125511565271147333544109465123288112756597277137321251791897341636493640863863018866337084836170857045226590269266728399621803207503475507172401686625738636754808178563253267913550682790553456281023440153124654412556604154805047657209434653659405308889588005705044560799064820316984182060388918520239082385618004606750221310749588831645107012582590784688724205404479903611358569869789368530212424995680900623256331664982802250681543493386666234983708900552198267724156054981330862681342281084164204804731580796901101827154277294674114292021899332170176463123198394658968724410364308372759094097326013443369797592659455549785804199784706222887027040027234437192548614553189712355279025009515677053049885053861829120095058627243952972980305012296011503581981256092721613593226771735858451123460234695529379146173023556427077578702213183047825063656832704232512570077245175382779823783130552112652932219287161749256782649714649783612113743243882162864879726616163569607561553471712787235885804699300349068355671028153611157930120000772714892138051321492583029805312826697271755778008450827660085347767330620244704145755461332733763140624259413803672685831567414563764816897157774542375088990554507280289641659129136323516100187197541232042133528833262326668662757735205798333136583500629671408843635464851727727664184097725982911306614167692511937305845572749818160618488610980791001177141977104077220013300416507325293717306830149166424198552137705321645180522034052861807187564472188509737100046251485844059129603838005219373306400461802346475369159593919481538016051224925013720610807281341918759559560415864784148751830338753624928367846604373322358626267436630447307039630017645351724150276525984037462680439398759560551288996022213552513088759741721748876878734512348592976368139517654481245294371904093840463484890278782947933100113553141160878045240781752578477404857556256729703881980295661622197369850034466766060582858404413638164840340454705178020999869678788892985720677759535912156592805370399652743524355940433939924513930272703139880387785793446450634182500874989859321952503090746894930099365236963953361766495571577650364496686131945990812422580735731818721219135381804360739460618968942456760996573786074525721284378895083030458335699588589633513306704771890912129517967401715232863102235125265807066553855794489337481495834509406308242556775127781693059496615650292295667752698971236661409686760026138333367984000918711250954830663200641995992798768834699748517218603462861926112111763234189553408108424954063037404697873086950609092141126215170890755780638067693577974561347308895806756302440171456577775362995107289892484484027555064261320098344362699377760034832699233027540353497075419650187037393040910624164170836815837229690892067104683181317534388753617396771512479887171505639157659523079461385294311786215046627999950830069183101815188611120526985887880109477024886084729341515744807975400356602760741297830449131610043137399266901962398730020287066478438943978610265761546658356358932160375479436922976136963036828738899002170500600160872222970298196209610784017536984703712597919567201920156276174345664599783148336351145039645917207299036366864978268185621521045090110699818400631539431802380851702226450315217474178067867736859222488250843366107314263958066209950030980453750997072282454278306893195930221910801657546041422723364104892870790176873422362003108783520947935156818996531703971628878818567832240693124554178184373043912514954890112019996928572278960144951607110095430002827012663117183344325840982815533664473842961014605043423189970225636968662799157082782103555467878118253819956895739477898284724724070009755229966173486494269244236338257904736642424238203127289488006876675727748641209099313545861862642390385939742796073035196445033030637885562516638488362689939428836224445707595529937866416381534413372042090862627900422359011841749676781503446822454408268370113588087688744178293808839613525873434825197353615108621566813959758621309417829504530841618411429007294310194133090039012345725484778124113544746368657455005095006123320871383622326711960494157770461029508852862088004701656101018652856419925863238748486827466876174239582593300638974993884022328181612938184282344498922648499350676083473410450881210578453527633476163002938392139968183122708919827722321152537605979162151754849804773282579178073012513099298757419484753775408736136860084648078039448668876318745636937447170219729958188137981113922046622068517407898341190775058688299644354783287311902890312547349948240478380249175616177895521840887333379778046129389263140277716143369960101200847705919534475855184741477533566435273614909723438316999613987491459625996013455149097457457246726824280588318063929410121022089655958677631220774228652021838482018206916229361313878208149956105956785542230797632459278206594317611521895484215397110434788212282724540940153669883084743594408656043195714038484424820441110417606650310214517160787232580873347870335641050645537888540939153099891142592590315803778623324023497127023249315699992592123551090857011915086944452175492711909339739599484467712877217204728412684496452956734839861390968707429044997350845548351606400699114859937025961094245506402552892018433839798588387689976000293991511482254005308994771623792256150189037983404057980541171935569129599476014836355980843575303870997847557143662047915335618050589700989553840882243083959999509728334077091390131830239381603010839338951048552325750018081302634358129208238277997480195822057376719934221508458965979273229126655702549965479659284002133487153374115231089510136163026712017577456886538468104656065385073943417165682937757163361152818386504220281967619561521712098624261164979858723579844536254145241851372346563992596648420053835471912742890640680935980198565121676196248345307736230825524632164634075077407017373470632540154713072408440340563487898632909424169129549552486207168796316784966889839586961595547272902644993063294835309647176673946323878052851239261805434463619356366122849445335755576855647130422367223490523160358039748716252048881205114086563525660529395506927940777718016211375761652304168476217669335579544346218465500540709613753655614510624669740711593124977067900105706697497529144883715514383132563132390213436946617109196222048485727177923042519626837461295491729919236004383987150886605712974375488693366144244420696118891834252225092233383165426714223690925251010302960265699160301826241146483750321095155099114821173446079352880567184306077764454313922557529602087174887650827181165391523568359122821361983374886834273506884172757795018599388866705318478471472720089664705489456625489805934319295003800034861387199326715513617794834267911538448101408731280981674291173849645285268648376463489632349415224752783484154576855645158210930479481209235021514541855776927260818070801488654619928823533046629990442806360244269484453077272993847870053392630908058670047978380087879730142063423407526734177153645191420131808860344533283572120390542796470117851971292047383211163513849618770870735951088345502144543594592765844338877086796700819318096814004432874081529514035567749785162310962090647535914029972733379633902225918883726237541394004859076894010190946675339137900200278519389877433787346659382179450268102792556126109733720986497262976768914403027988257963387492855692853971133473014642722299616983019649098963860066714709598824510332456585837778995634521703024488072982307132843659714824644590641181794588540914103183674694975910186089428958376985617385316988043198865820916700467892266948886227606554054634952090986804834246539772074828853219225023376451570078778386572951479680146248073195942359026906615904515893144489730525132286725140862917929143945158966664549913746637712105054388712387643425800496266006261264876087891971960499545318896056405034802127279796624018693126052624164387178938329802186822807836677802407905977211250198022890146640805932303490147797428505807097098311734624139241535302296380288565790087284636237960334916655353092946652991067000750490452889303698290123153676584082183601055739854349379963096244355961207956503764460633399198127723257133050362508941877641547902119621541103554066282844364666442772621693697572353075606994248801669808918884515413281175738169071034954182819002106069850127894848985966895793786749013297460170715916949843295968922662777129569995766981582139291221922349381906068880794477356904026673239183226294598488070485032111289166832808817948474949928772459799446812267482836483100584303179692346168572724900099353598845556853376747213212109909882968854245045281857603448590707633395416986713974639820217488518427384941282306344739957860118482690066960674601147144333710264912736808729107795121363645382651905038202241710714763081850442969737406515796829588042387459400047792144060722970345233114677613914093176313143021304115606612695354948592074318293046501248573146265504895074247243725018763636122374570728801765907341700755198174082309815450076168171052829550495213508837920587104652675809940250901844461708021638126802679316591005818889990528152461108308022411238230660317997364660149194083805339603499031874279144036749355051560086107910438770637132407868393993852740811783758422511959656404707051583268430223077165723028754536292054529107726494234454225780695555727040950375059069080793488480671353409150357197813031203090205522532142377522305494583925627645435364257918763499178632285499275667594741830701116931826409343608718245725126871240789818219721158605388813333504793686873185524728603308398131743198756464910568513937855080206640184563658670507683315169012094631174792906103466165738867589727162240342097092794223143161707326199798200987564171793060872245532796265762069459585891173812065157039089652262162871741267641737018576558750367756408975065954144715862146061389579266599059519848202998113504164647132105252501336013232416323370231738116080853028797152399868987625032036187565563034491117798703384985286202823978342833902198758172464493301210001009786465926326537670444315214731328490903058861516621619494037102370054575230233671192270085406012311875249782249914031970438221190077853037971128504166684303116177081862984478940439683639270678968249380051549930014713276360158128174450126230750689668404828296451128522572892687161412468730862793671718473328359653138771178417809036914225746782772216869672823896006942990426090452905310930550692921717025748303772900417490948507035189823730566543843996497101166412943935253211138683064444768530461761620712458906521198344901751251011882541069917864766394544328580345458651548281024085706656475191776229038674735416156098224738123161327188665365282168280657352910032453992979779188700873233113698386920059138211122340261807333177359420864688557025230503156268593557722199959730416216041595259139626284694605050677033658727800655224297184084324309346116756437747359245016629869353186573529460999609044160830671249516531415829082136825242114616106927823248201292843916053124969083674946601726625094882511336225345529817249886824546854439717904814850561465252055091642500906120043291747025905477667563324486824116078034213813163476565234266700162333441723119866030305975238976147117394935472609455067466643275992570806507369754911325988480703760438341969280154558305560943997539083634667094555092363672439210622526281704872669699162339511297806706263810884723884384384064966591582967932715024099650247385748565070741251848281909343180515770545991672848672462674999844593890097758828415812398302006037884112453820819371626171782623222631454177387978122274466113913485090337334040206236964984154656827952006235109203840986671077973842250534128018242144283676491078189790678002275363243033688037568939118919615245548599689243369602221669635211729258744037578425086659183538717055822585096134861697878403709180262268792423535222004296810296712915510220731278087539640455044055464071050394303895905594049304408810723808404721849645458948998096950374634385993056954334889105700198304663559798128692357860397382854630313884309209054216344024404116379205347966902486371219505977962711308912968538157874634977723597037610676505404565606581258462232268502543028525788054912746245110160598273930113261335707986508197948520876381848694399631179360166434776767906804391956567178812788477827564261206618852584308453397903562659578310808895071412587094620243751095331897172149203700204499374444716348959776641369308905080121404612450999435198712925939827198401891992188043274165093903682201171942127557461708353060256910279882488862466669061041503822486729853234681455217007509058514119858205307928522740368151505247062895382592170695735745017578335032260144273885046714967341635435346583924895285640025287814858653068538040580402340657493466297439661147813562939136170316903144991186268468472852457258364928147106495795045322375964911972888785962759698232006908390196213721843483632525562747387327061270071009674112886345525026253508138213105738078250044209866407052975411609534629642118537275486824353744540615114693497129481392759963281148031504100646940095202302156823464764943475913077041040323175884063300307394506592768631896223020452308050349783136995915329791897268488461072337737435711716900383138029034558892519500354281064574790681592817996258997172165952380453543841510429027127246519694961760989087708744689086159968471256228434191596292721291006157343236194881528224032129735091245873887752606435097607055834426749582111867284277724060804984097428131165300728879003331695074747115851642614988027217258229029182004468064595083264202296717142442511990672229189906382780540052570502345805913386854364553427263796428456207057331704626286014871808906718391375492752083253156249901908852142426411647118959128478415295091074009650752718231812212346589080524655408144825665139238888040020287496561765142237810078628237862411548462725084863842596140551122362335011144428434250488662879051040618658285893793173798319225607808283404347585459745002346105437853368677509149046535177368972370128334260935633924286091259137519699475652272851605855814373632570166514083131542816353896223280346688523504959127080689431571319626550671892046008789602989928446411576715086342487906312825991406545096019454456503253017305496642649093092530941260192766851637186311414142513560226348006406809426612118234458235038074744540072637460476080505911164772079318574991201136188594975379045235457749519468445786810537166325599710594793313174367382366173204419777296590280743755454634910571158159576231989535765533691560818003328597212842759033360312325618221183032867707154409159186955246829666165839187748487641883330813912458942178837077049335910720471188850983261115962525998501430459756120607710011326883043305362348389188494086068737400460705923535206509490373724024321465877401172153704920013927539236586706248603998341056868148217317727422215877035688632954593006542912221950784045024000081344592811102834749432820248993850683178988439555206929988134108011097959059043009175619921924663279504822836889116621231375296673523380306013998055866716289571947527414267855897896572458393640416681433272710312343447406559677011901078289498868101429136117247490304380655971998162699999698583432844781553614112373435466758282057589599205716821985276869233106110525062995340309608871759290695591565568794949527153760925937511932584188533286405872915158044925668664157654126414720393376930680548580249500976173563356154781710833736636894731029474125084485407351523672906299982772516339604435428732546919876325429237661782543595797911434018417855864695017297689364177633735414082365264759602465413844767578779571167596732136344045803421104601653553729006446987173103478485685838200584163384518228337241618356665058494678756987588394889275999694966653214183012963934822605472615291866900611942374243303279753678295382218792509496454969443006406817551323459408902826183933211146951591437429178909166542703186935346298261239973890023084004079804037157281970100481021598799738865125442048985549179636927893550767650556743030655132515959353235758056652090491260524125553549811130302626296115500554253292109217520052049429391115887648383498225004044290648955911941755673880916424757595535719829565493264481150271118689579228113038162229033495634757817582086312704252658705462341504126998022837598151940071202079785079504518925676344239846859685923305622271851591066782148045896567121118949503011999152318937222672092712853863231935510068810138936159974708070046815968081881541696597043316894409617006382288301055810825616146439580552767611288797186003360602655260551672311851068207160576190561285573773209337137672929844389273965191418757258555413240223288816856859687174034332389996749171898182973344077759260990384218517865969851434081154802815337916307429003121861650842616862265857739418590865146726649512457001342844655534767517093865016519310590582760768314547068311080993509250701507104169950843344488565455699472136481133136675305143318125872719523248173030845000889884893137943104076399646415633120716052640242635452401825721291648681147399411443772914571302109161145614174341872565046943690005712724588584454945150549969223532192422887061180407996295985075781092744606280465993117023365396959980334463567822660495352661910439017463276477844777907506229513999900884141757987422093975976065460780036883609359862572679796509154054872371873328734655628076747089145246754517750906929077600802535176332955911742771147305672969195433445395907544881485845674566649566435184605635971651889444380912084306589016115662575070104420586055130905278329429776297215468052856322318235658670811987518798638808914185620966764950938192276018850682099071779153026746977855694886395483569767209099956608800360183691535730131022559311712917826820671236853083971437474579083939264911229130339618168105495892879857671007081670116951797444058844366589192148794528406719477917392393605115244384400803008272593206377054103146288612006349603743929352288130436549772339163933501956342192911556710884177422982812312148382756531253101206157723149414761632239303022692289615989055774170978930228009287322049796769973925076027582693183555123383675919185702798025853758184546979864614572554275269397799137363819674156159412353917148374956141955234271528797418522164565683630788790033446548073244268779609595007508498340164064123093215970522130865699595833001397064436120905074462217526543296954844347836891429580840434223543019190577119113686443012429897452002902518111608268252433002284554921969722226918679540796714817514511002489868044542746614034234055575876783727990211108443786641079816461611192206526061711086252538674669196483264012856158995800130575549382983989896400884957955218321993008922450155320063639471522964018858243245015375094210422366438275964855048915424835039253147444567750941917727628480827791037120733074818069068186285159703129895486089697660223978425441836786914764975432880818150891577967398782124176897518877094622153207431059619931917076634971256199365192672470611629264688298634094563040256756178680160074026609829701786835574262251670554966711061772930959200280955859731473419710179502651309711417624586664582834983720448692054977580024043452734665152443577880975826450369889958382252482388419800195225910639261033451818152772574017493608298823490878455993598354995448592088718339935471994218430645593221487107288291538744674424993425123079697925850191710183090445864558372479559351269438439773058327443848865973290101168124337710002367933235468153603663255591204355924840478856668364064747969997695935428457661725645669434828277083062636156463838309192445620053110648896301406475768232256271022805115710077743952925151112904208486404329984320274002603388826518053586621391846768392089600474311868292440696498149801400970695101541613968175974878752140585146469485031269938744414533711003907107498242590923146446902045168442122829886772392818182227640032630915920644415337071657445755106521059713726864157373975382576611743259928822372458653808066807913449185978871433359394942405026820420213723402806011007926746792957102718226867908314710474807807455103371944754204920219181266625857894457786805659042717088816262653045606650925807336584984518482475781057998736119946289845147101740848397132300129608235646913122701236410839545461551050828039997278330790138636228471505167631325641729890777914074018271148095296375562244247750190193885031353521195466623458797577298032079968776946944816579562540991009872138238529698988367701264895663021062033638478546847348052830057389051884381275175784478878627990486761334128288655685923759261863036616730804765723193118969057288787586651642898599830347634091384617627310976978173519411167774980739503723155987416971640776434316891491899246470865792134298881104359895332235326858801483350824111472889817112009942605107164357411387031930909649002138066724599821666753417750962290786003241138043990072656499716718482777349793975422279111495230533543732334971380923508133243268822481158929347252381339096051965314066398910880269564122915095948354001369683601000960280155133299667862138884955894924318763707772351874556708226883958410143617687686456045174074567863036991786082962358869205364292832235129074996220130751725702622622244019994497779180219452517385621228214236123495433869491496866546185738113518535890623600341268928076330730950991216852436512793203176854115850477749580656589032034345655805876682477028439940875610300556006207827114172532556980103410221058733133900554997790592767071695169688504214599020294011591856554015934759298216339285380759827032318367159097736968092477555877461668777758243683819389229014286784762004964773019586619903779346322009969020876382542256890621353617744764208067408413090463390864778782142849816769857995169705600558946563790311533580793693116628520978708675665742692081078231512113175219822518080942968357423000080379100260746072167779919241254665222718681322656948372013433250867050802416545726021686044934904596866680904661744570402829580452109533168680270303617818028599112803164124906476452233855160988448159009042609268928872930889202196519883260607930464352889340840524066978866478111793072711632281667286726851308493297136291505083761448017304640109322459555154215915791463473054486489277752940298645465557429764421838266888877269735992786873009362030074751130814265410922418627691867086420764704184232891327527649406560577484245958898015118421252064250626070122482752316420807404104728822037628203548953608590013187857628763229056793215254296574612790062310618129246383393643716628157023290715698774908301819521926275521446095336219679550485072767362481203014395087742004725504022694567062949379402190160415911789159574575488521708338549714245040048217579942211937529654371540585218102819455110519319984642456553292457934702544517788130578799740726312186991894052094869255787562934138410405685877073500840434093410628722657081086535375662587713192380726238380806931314262938001194195661044533970229521641082575210716198889118027151046930966146479645858894117031317157714683553024478670564250667125800275753008256533943628675488121089713300752432338097566137119308657717406363180391055415459491595264449148969013313329413860718423664447047511820986477628131292135518841332863237935996558455870120260007006614130560528752399082146349188421387216763469662749762057466585346809630119906857714856983700799555391795273398091544963950927861524399344535465378024132624073266110312397821374133896963543765194954595819075545315629609136125372985323337884198825583994584275357598607626680475094260200802675957551309329263267027645213268365962980246542236488038410513744886664151238632281261125492014602548584214687205578605127116458647842432313203968868077692519030710170487432269496711279657656349369657557081621376659959266894127793947675783858280243628957403301051638769897886754513935041141914831577716221030595440800185550550995488901288839942252271888742374353151188836546248303646161375403193359401175248873587924816835258066014566697080058058220947176360239172368331804424035249051891886693149507680041618274756107794553701917252569798398675800850603822341098581972901484954648481380548681018390352288169634637836261002989406883858088546690967453572758206699634315319603261818921074291464302634175423051233729856303882271645298058445310206301858499815876937567597261132042633007461275237707684940412545973118472562738950468367906734515143309851380185541040734281809793647654942087343577167076852224341807847208563475465487852918898891934256074975113455019079093935966588093407799989990012767699954118828249988775107520695530193379545005187359253615868318015742185136887960387594697413184224829139266381667627684543886675872460732344343777135258259187205760877006350929160011399686743067299825188442221536201027442513700842382276214570729406247509640638516728629294531918733050894550387094939073673881287782171922976235526944282713175814897224063366566975188383121098711470057530538372596680893994660702981461761870577404956584891017715810969511520949510560079278853731583678132158924965405198579408041851936750749638826836000217100347751176575344138710094839204986777288851782268661247727157288256521247609290587565741216114732331380293976347295769980335853903538138315977501002972163972766739370601081402698200707858302030176892221574934484238043109462522874021346260767456359673980243037258220876277613339442246806609556004652180497126419862337926747105711150514000264033454293775168022260076189310226735518546701732048743421764805922933981667729311649150428831443019821744769627439957745090020280198000315164497425722573906528729335168814583752370752143926906667164952424660994522770109000879423480178526211801736950774338183292484418243060922213857614999410519657023893778853604834033066594893312266266332876513161488774774816386211056325090232281406745187060532188102240253325834648015415100345284765062880192332086434349592398278429943551091961557324585745796242304833184104773988215841341504046371388019859753752780564263503242835394196443388746546347065288321551602712763905336019968091392423672997275679448537636147802524470929531155371364614196482935857653972093139134701038954737042511845742892492467328727654704934842657399608146490669482484937685808690959402466529024539352925043763481969800602957347715387802283305153006398758855628643642382510750601461368464940765957142107448049771729729028837936950723755699734217529091812242637180019609799607946012455119050935832112089830606531911389194735491107915875136559659026949547334454523077743365153560439495650361172363739021426739591646162275122387020906932769480322317601962551271559741982998731693497473314463183054799098572092397920368574091991198891167125454892279799901125746172968452056557072248567155070703880193977432344655132243248660621594222183379978537200138522871739761887953929446464815047507049831793550426388321686141499827314195217524186210981850057160049040047246790071835552996779417316867560284855924645043918049508976201538673619230799261868937330478762632521938455311449111012571854475710168071704839510632426228461743065439385704456447209568776607433123868866280096986696104371466825433738591825414756819641226103031155360694035018570229958576789270397519254559317161236974791862533180136434507986242391153416814102059055418467244918762091068437619889946498144197083621905958073798989031987167562086385063149866718026533088920681420964193030727806788695457328561441199951650767763749824774067961508919225773406924869361998845629039596102578624949221159781670134657744857589107929326977499432188912244252416362909278556013275121736841849102562641179304053684652322187860812483016258916270353370808846554886450454565213298661314266230223450102085872268169190696954499626226411285512669323102889704027327643217462629096362905301452546460690484656156483344134547857023496680526365601855582404406289134655038518980383332718289962372142058703021904585160004727953323915630916486409043168866046558529465095591035251538798055721531890980671732948479817503268648883634390936107015779010364931938191346519686651676547738967865536434031112579652709377796462178748571781479190407298109063005537256648163672565016905566599251086591163642403881422448578266761576836979869032024047884901884653517412672506167164428586063511367101007984520428247515408357843869879639338279179832314749132779277615051815398743483834505143201651961851408416546036288510685960796021026074183271473787524135157046301146840106872144702521152437184598312829400963504573502863230463144901857777284512867950728486300525346311297686235516810869913392876787093068073144898864564521337008837715318939935394808648477636645892510221977851746111543839375373819175535518297583623261680240433519599030090772626882736293338277933421491962935722152030621995297559314103913111921328123542300157311749349490924702961809595625526208986626405501387088328097598187625494865086221546357212189975830867459117204264671098406762676536444323139654949966868639977442085445716699142367764403434288778714809211596093810763745465795970172963232888458885458777761514100905160897245606568323386063163866628200654508185669138184195692926091587449658603325392843114559255522814989528914851112478918933819382084655559427702272136248909025303902949790821207989885906247643939123509943816829799972428021879206119719798188659168835345330544428501116300157728576274826458752698802415392922023771683699563379593519150657104755366924687206322242161887421555932872256168408748072606858396050080485093639742355430129899082093341228071921685504926423325953352378760358338575965081115765316936725262564620119557769017310312304160238324989533041488556274347366425231745695557526062898720822421286769835092391982796903903970147221918804444411810023727951780291911832005526296683613582507100821632115791465843755488031113691537971799389863254416283200921693336376252434010019920424891877993539382879605017518019611862185882900644181040139099042672155551623143252819070685285556973467929201194794602232368353576061617124955283824723834809364340796038939863683814781259604470650398700737240564952108530254639015480255120069321628982737181086050442212067312701754738917383786206478275267354157583289073185553693217142249783008340760175370057062415723761974804891379625266165200103566931756221596524190405672384849057716104989819880387750676611682490874468818135468769964530077912833092095272055330666889331724572491924744879086498861718657764975304187274588225715168002759496176202951260802820481812831787198765639526803263746036289469682825286724715725573976927492903751353521285492196624629622614074901221123173400477608518403834607469538587899674535840327709342637208454310645975462133440587036023258665093319171638990540979348238779909831304270995416984255006706079677633545261719673103173556885111870974215278408624067662402700518949538581194594620716826434288776861888986868206010563896964464227468937326522122177273785843301428619125385407932879826498700481145923874241034286601929031474860946036216232974877332194139319590224086427008483475052088606601615953760055295316481138597452005730453814766305593163855464809785310102702372408397079838513222564089608617041286491591510229535932150272695837226536490026921551276189578762085938454726740217337670786219056570456635538941658397133233604364140956258715613968938844116805200022616306189567825555797978904962409583304608000489402143007211875889290494733738336231142457655828927440597954750630877196817022001937734772404491033863608257112951444650839697016030716715838978178217444798989301234707917865063639760754435797617885695303659891960762788654152841695989845720227300988478719666338687617477765874408046396915938229081804853518297457345800567942694748942383526284160026598669062822309181257735899021979426901284993887287890913901468224268987602943931617682550612556107218751379257836677630219715802247519040417269101840748065892112005692481556097704610986639341535695588274425864957495077791573783564739998255306049936524690835603183494893558795864842934056281849447184690554871151238101412783975615755604323154256787201612587253533485693802235219242673502817653625795879460646664072564810446325192532958545281631091711475452441021040256589064540316408146109795582460803805218489069623707209891013691220109084874085783748089791044213343652412159246936421921330510629461372861900183067633314733233127426572604461581782744751891142655162919381326096662814227509228839974020578042041219530565116921003175800289968095648736831160289878208335378596816261270424071444097283464116529331736590236411592998911877713231235841965991544693047293343912202270250117831125254041152508669917102075329328596988551620564005059191705279359102909405001058654431552656695800547685215560503434249964359637386442929921342816627164614134370828417646122978826001410484840339569514362099474610396517542016230677329074068576192184148902647564460133110698647713116674609186423537091936430251063388310163950001095872381304102661722342725553073249101620739310632343047412286110978242177372309693455901205782105882269419017511070498094149018597030450906259878003714484727973947204662947329164178332139408683336140978903695562339038523061909100134563329837342182293798031869478439865729867841715471292723295454407641078628267037277807866141113374247868378863640725559868281472529938702918082257967425170268386982289073420312183273865735645138404566215415771544643637550413391355468856507835677302373791115434388078140406122855179723191105557664198112005805058377106301263657974300553928402549854979295789748682574188453493100326291325005348917484767421490413285096034566334906672975092066461475288100091345211824799155387670276866958503773830586849519743026615909535100514441850513415132782243080567473767291523433469225589532372873115470051362332761799038914216473956510179174235180708696860723408259650197472186891876028238263077479671668124471538898857521378691628156762369900743301777342560717621021402553982125767080234543748509513500751890342638538735993303072068132913757150081753281773981173995412968753763407678626357082950958430909543343878948349077799223762597470031954211414321283941932044177144256222568929351572152575461067796732513792745431652726083397312587711154721501092351894580063419795377953917874715629451336089415971701350714439302265523338626993032089642914159888380711833154646172522475044068360321675443898494092124368454621838369303362227185354271139363170229622956578358241167922534018396143623288386424419059113030998750397169318519523493177759747975038718772337556379865395061829687119195346695166477868246227592628010344407463471970831422045309616776427878557809168676237157465018511824912498181181760098905555906110468246788877620539822175436271399310362565560422145768128618849839352715612315657569069801615642931701232817467190051504894955513288534460796712403871014615231184033285342145585051420252460210298155350484997478470777951266109156796643060560858089601321784194097161492534598174033846536756979001911169724434690067190673541603058487101312345826319771661176669081584586802001705277434649818994069017870181923103241985193529192576641924216844231242162180167040372776419914026110243727803211470735014219554525523697156031513928564492588224761019277533797386012175417098702415686968349474774920655743048448862129321037152580398904759118009947919015491941287721013446235508544000023722590960775032867045268189596841093222565642828357150920491524052529593530347541390927955230715363285971160409615271909094991443079913993445931310358786452796150917687308978474944898186062736476320430469136280163606525151364527467143325465060131445059519622736021138734232919399130492040466156268615394903206200405774549007374193547203890698353527732505393206657813732540798752184196526819367338473500439648494621565155061109797550478147252791152901168343429918820757111697829304395757612348015936249581232028781231160013030399137357191078313315632386115060304009739460462598596364105129264079340427345835477543529374419417703770566129063284061403245044954309538344811496908353215255512930474747999287437981043585068178678575255581872946493667565631291857890898046194143698175356445860245382376079328181127679631767594995718343349849435371478257407705070073760456505444367316258108696969378275397883278246430366633708181757302104099990507683207358214889882265024006448673618302227834412020057936351171468066393599261776445897463858500582652559262481183146912484025210039395245029153826235639364759659400559764766128720511451369537684806150612154556951631238977992837098859525652239490812138071597704416862597109251087243205171146944257787893569392196728534684204371030142420096635913337852986653877465404759243435881368777742995668120052780331843666422032429691348342211277754854826201078479823169733703907581030189690063002687563555674390322698510243177945445238675734629455059704244719446297575857987280077642260429036495543314694280887256311623332586247537550040595224878290362698543756226022416340005829009919526191490646009496528678742144804079177358217237919600108464123982119815287280447636728136509014941316568204487020308155902165073939653643251765205125272102621237758154259130300338724317797004734166542761123429207733733581145744787220378701127991333392225762512076835321963608268992926911311697121049256326912748260066242682537148582450641794450846319782294638795637698015057047160435157961738505439457512430416925041780548261688234525646500484474926867780616152573678103585417232495427310899836031384143338493221233022794015940027314860352916332125767648564145880074533429008128823853333510283967410951071718822501206520096694384799398367935830168454744626869705194621903589135660787388934740937315062291760572529680347912701617326528316073699948125187733707956483806681917934871181269371747952477275456499558720632611302454659245242265252698690729872403974006332413986604476013986855567035758699965138883864956374798266523139457941339423284818372880521812774451396763459414596981309475463713424672705684597528243123704319742351612478824046921625445236493096126578985618000380267915048546412399784999504826132454390848137343331812145804848037730950620425119134842001127731692776208696911432270746460675100540992639131986803928471618193612661304140112045711065079873707632512150746426643117665245258432691232173319589683897111394879232396163609196567399739575593800493133541050459971470093377850993005284309891549022924539128390750632886915525002444636116543287546025911181383334192668348098889850778089131863709459247195876918371928426123288322156267548106182501018236867703291467135407022705567550437242563136828053357586117886343098291472271937859132258406518990329258471952907502434912007945581381683358986401089972729977991488205225203665192557549422587335859444723917230831656089894777687857739985683544748162674750201816076095075368058916939878248980993508485340815593001959351276238142728880427677634489418911203059339096173697312035830105723565846328312765612594170615975156888878820854154083139784543600980072777029247958754382753285926587170673026035109388621212803904653170855329624335268960841061060048226598703031384483702954639622981416315283320556966838809556537839263417810782807796490397339816021127340877082399990007665874743511553155737718138550874371613970895638734046147834789792638750885536562954131453035808425347233214093051100596226461079644635212141832382215752882151923073493027863026426226977277241872361720880006751355622186233898683396539579673699473365524275859556302170807893819041014808490840950684275278903510195624681497493599601610541455543554603539757985452146463238071617239821144891538951777352149870772726991800849227031770331750281547566428991692882173731195256500769745691790837994273245620352662488894432268314770966521629643016782109156983125949267862534558101346121246981463582693064569238458456829983983925900192810259478124743577282956843722293390337990752841479153131982821645056744369478698908565673355775706568732245524918662262667037848867786553245793134245109122517052341248917387352356073739595914927379151523226065009021978176378463630340972158737146384058201838113832808606957299775542597108478780676303600514044911780328366187602692593858524934288220605011900499047615680323245289215590566439212812159578279473317921354543974641379334856988958654329718675313002244482475186720522719673601573563332667328710753184982546657961554154147620471340975952567337786384811321244925719284668225306702101508848271173878261460087224712595336709698770830465352445735363823155071245528357870252531349799995123715990272466065788487436316988561947635300607916180851258347715531022822820459910172674574955972739200316697935292357779718600106102039425703383175097629793338376775184024038379788982616145177345284639446431517486634281585244384071391675513993866481762330352977567964584411888054141556118727438087206670029118025037216018070213825009604501346904229414103623835599537202888531533005856683692980339846682141710896711868584759934079760641778174365263360657420516697897823464887426433441619648152069559118240179851912339893748145525156117360228988626797778306854032438734772142442461879850089134439170800994894864164236342173130047742266328552802805985963133816095108645533897676216083644122744694433398990172443121663369508032781795339384589824381049470296219920075211710722088148985376381345966023432771152129242099978637290079296734050124839252534206137413492525526282801165234181045789908525680448847262767512362970433884710291440982591633957130583561148844526546818735918614722457281977073250519957185292354089755032548757522677175473036801478663342058703310754327437771634543742989587214511540045650971936510883137111094589022596320467655425888048793202658850928594609127231480947501108783417462285358359833019835536361148402707379323422839175347940910955970435980897015949442154313913194193676035760599029738002278771226663015140654770467247574073743673027678558881988338020860944508280758770208984852994365874887022490895944495828824602965862348587995326469898804003976194158740633187282446010813819586035726042727134398537444100893150493792843423316935667338798260194674521115834603400155881674153496543270235041268659449672706974172969456420171761695408855476053767470836078623165398015577988434509438896134614981789411903536760230380809645642395704690150351293101106758918682461570126622837110327335095210616184635917519834172277015367153266868993422136880307904391537229115396856112856095786288014370406451406702936150134702467244446187895216033835756391978239153992369843168717791345625264858386438414737978863572235717724962909813117167508235535317185686420328228168120902856432388014149995453615331373213332376491102673412678088870842994979937013839679901221620091306336654805894291399296088761056777029134509934390216567846021634268242510520546667359516269025881740231925425612984881378692564555957321723879903504104247909491463547792731920830011481630891543769315839210383415344592061170990681351091802129980966283114652310637734164767750246940614844223233747320184199372387975690765054431765414634213602671409655001453281672980653018712633999951133236041561785162383643927830651613128273472999301628793139526013900565560601347596527395068216389935265311610764553807636629908194306988642391557292253416985746105632358837127507941055726963088278842550019916450789287616439457413034778364243940382023480003134460525745403150643515298987801749774208928712266149417726195056772702681645811497830401579922129967823004223328010626603751979959388426886651821047909676686904243541939887819207580773927600246682317299747728547088538770606216645157034032005466111348777833778503204200448621820359552283028251760197811470590361822606122334005205596701831304732190757151525140829348574883889743335283578023599090050923025102604245340431603473215228531186148466545032605114263523479453456974054811196446886090442005616150530805106959370645801415602139060347547409735555270428575674384899798949783084005156109514354561568735581570724385559356041592121443121803970215287404233845101378718061828078055884277673052686159875404678397165918153619197708824413239325888909839901094694303170756418840766722974887073226527478928072846816794393121110720236950055672004321647077020922787317323830003509548584335392272916641800452674300887796192315160974820479760887621072012713255720416650604716155571473620273834639066839245193189889885575539615105109065079588761177205778225387107339488391549706205863960812921063110433692424598561064928530326823542757166967257198282290300289176385419301895891811703587110067136512737800438782080120079370131049198075500441554282546880702901709431590248667444155548254049516254404783140188083795298424865304568446407442925540551291401791687423277528119066399682423318671216222579527413996976908966605804746456525978180716406695085638233021859425926206167616834120978903683302094480074836154161401187385686448011156877531378656765740822773179594366159088923571120586862173356430324185630960337080466256253206400588908673624293020524851527956526359888639284952295162540031934848752976412081059888926545666952661712522253853310120198301432836875964853512122494819544201608113629306118142018780201132095575707002389603211864914440542459272982856887245068409854309433915310149451314729438077903609872267044744500146548067310110411469843716573825114398555993500415165770772330835944932856710953389948564847633457956606540656400778253377540682523152045779643553887907268804112374369481419017855624229705075415987087774888908184683377383363027065052097795756863583927702861297793938889586566517643348218920098441530772756075390944635344412447844246575267066320973652748538042681107017338279909817970627344850186211296488018439017404181266737504841051820491413922039225704327844336381992913888835163846662003666868516887920116493030166737604519744317949653420313112849123259371549369065852642987881131317559552743655914547491137195274451001879337271583470995911276586055916870748819972757848225689828508129008515031656984566118486911785007832477088789358100816722920399914643354036296392597364796715916170963156144780070961120280358175190704858524800921143113564530992073095067086295188103697906141303721475078105033707941573003045067000973783440234006263226057124883718218291243996145033446468252178457537471211476907644526791021263629443454780498651815728893634169659908298314393130457764481011415366238996215817495842038050484282476317212532728901993146618151238707453993988248849819863519573555810064602156246669994286782405220065702337684652497509426090713902514496644788992034176864159634743854334254241652681853773104623578355482273517375103721488614370161683949631833804587939653878775845753249438500353667106811668299860380630571167317002486576530433554288165085540074098317276059288907163654932829985881715893888172568839969073748409962682755391298058030620861476426834964881710687661328954772617104386378827935341925007422562213085337051078816579365639018545080936797875811481044526617505682118843026320840689477551904217161491168691253550151575607220638392142778611154942213119144861131225016028992016944337609875699501929838544381276996217257286653859665043548357816585234089962862943075037080516715950277335244981454423995049897051247192319754784928081348531767220068598559365191903518874531996640401628369115445767231142872181353973246174510664660689972636881763694077844147120192965533800563409316372658412125137603327301033909159722089228435110635450473118958018092181067287501805801514336334450938868427821087189437342927988489877177766005965934849968142470629601917455880924973178061633608330419425755911751937901604542608244804003140862650961152082898109609563252099305893717552001089911993908950109396635772194946027598573846701057208413357041614470678077733245721364922337691283868433602950740146199591787325796670197148847383846938104524367269174209758937009075777319283886199630805428185657350879700780963622042265534416731403282903232587404025750904159022731017377871675527574844057174834059379475899420924186672879510956775533921284440291997758687602262515629230216065597112042694163848540755834838856762424156378687600000875242557368373629534640290800519984288689471863597376073570886603210170281934649055614283105496550054002104999516870135405051310688257705003781027759156243854468444105122888051352457221244054575478180564983808833984954405611883411575014016565550062659884836509379435835398287136314058949108558620534108084594767452519369207742267019120582295616855986761735999480343070614151251098304488623396088985466193664767945749672994748776795208352083297273037870804254352053816936680387392122463604432885911809335066711120435886754994157980879999386905344998672544073715300348842138362811621035613213954187734503337559703699831289890543625127935317172761562289693816486545439538748972155053083546080988143968241112529748960281951436890203247377175215885503528176686555439083060167773919204600045326695315837529340176264254015340178561935670072348732514946833328026266119608321729424471491807352770213454445585907530332225659893581242818784163270958132839417066632631883005786508572708733571785731680854486953532409204526607872605171290382785170531090553484099243172697848251899048432333014798462589575632141219359154894264245215091371280810694387193261968579012265164976635801459197236519726164359255753675116516979315329820904662409824725398278229698935571938916585084829519774867822346720184126884051918054051089693975154506286704201374953555155008180880889549090614244376539622406965784273556509725298485880232408470757411596473260876625177281536923776062479808145119242345557203469242287384255218669365686826152066745271391347690817968165491753122113162951409297097656075222323515360326829263106318684255351827209682097878072554752016208197494208226646922992535355370241462563721349496311234125709146540899251157274093860299119117011023356768448761233925655531625925169590821705266353371149827967705611382476272886209282082908807082045637858660837549047096991792859843140140256501111154147645211068795673869838525697937711604822754507322227671972628420858037771665340280923061713455638195985761215732312278385924022168129947390045575691284457284651073031221139173575741476962282317984919946539045323079605701853048956770671320650739272794580415507356820602233206164680288787490129786503028243211236079504938347594802327104250233320619536570705124882782891977448518474463100970537462219071799454129546583525359998111058348731322719614686914383397370115755749409610274667995503892389634045101363308629066633175681031414751748463795720964282342060263801581288305706739680919540954801806012445908450148197690896313881157414172533671450494146071404399700978149674636179505131391877973770989036406191192269034176672274523949687998680133771106977171070327698123938611998303797965286970299023576234301304655528726740021071134725273578047920479655660212883248024074312393136876716717417717973826193510478759977316383254530138574778106654774277297756654082223579964555105243113511286543301222008830598551927083233430738167708301038645211168348736199683879445319584502652829225344589873700812764676864127249649187387403092535486744454919853648722986211536672666598341383011730932486406568872228469522044813560503752564914981585289373694946896065329459786530485861022601835523846550164237103885245544055926013044108876930083388217566988891685937950711389587046737560508814082617175973136140617220836127882351219353895481937141602695062506315248810312268518642079767124794144201783557993316612626346067299752689186436725315719048759076213083927243499949965735363249734021639659824204643642179757051341841971659630469547802870157323787992987552809014432256762253065581970288399965312815921387157050235343484579523236303009075802262234493503273825383703857926697424499016362011296075690044142347293790170183469624556453937730137571516336500106685950755772942466056045398082587654385511121525763157014459921475462719453152212039920875403755313664284919711894511265411844866429064909127292090638230962973451373885024861467057521271870555209019722296832631997897258149188708113000771295261637103437783297588598844684500447030566369326808364223510942986989482875668491054608813160663104436811241795033265415371366248668103247022635641913976042169654995715288311239921022436996701321045910367028280769931302851614188315588308189131959642477158842009089180181013763016921396947621769788358820550601739012794200806621345619158946501291092752357123943142167868627811069667948762946121554416373835094122804500131996897950734425185393480582828430522549876310650608632235468196709753278414227645284936824577668687834487226995698550091597310626047991113155902049994604313832200443872060493732392901405887242039059441119944240050907444280639594212510758666910354208128135407868338181230165860474664358480787725949966508177270155740254677558734605524519841336260624627673075391233443359195919735808567861072845372902165429511082536186828616449320618808996401341286449073496828193011965610735253932916997033728532001755246887015227430954659269778242105367397788415090806436495089733661023208122273305257577800816362890009415143105025829115767219598571296223972628367410808006847133012444242223229366191777144858430457581255609622328907470748247972716942537816831188849877441469574749166978805366755877608296223489058907191377629133055311328043153597088796431826896393070792507696446999048859528258057434916235872735545798533687188145096682416047875017220592800848619316828306785947754072240403679780871919475807646157100963561253620371463740352412137132301212528256089424915507250062549939340377701114815086389585186324354182840311884176545777606984719402271124042428449837562728785811277251274928655250918353847961558302476572697538686449150659275432952216694650765729871874944729291657837719321993903306638034830250797909872184754600046172044828878810770895646504903458947395045103754735586253196453305338946069186181022509485415754330634334740382641387139110250196807776337343575866574998832008519702638360264340290799865306588239265331513865179937543965276935756539942975965968901940059158049684836369352297304164973216371559286618276396813575639798172397910110768668434247379092254586502073572418819367286815054823305691452115685088385008524454969512514784758624183431841249382232522514980001705404172506519981449625367324311193597523486467954915714455094318324748695767635705924512085790937535812281480863236046371186425848503130465545889135986076843050387474051336681903586712901501570531802157113939443517085456167399901548999754358283993248534358653924014893213127455388757845980206150661252098934916441903441424230890399433527688088177877376526069547239032424964052235506850968454535161740389337743724416609155667390729638957992120177790487151026232069100862243411022221337485585373959026723644447609493822244277469412103963069684573702502428067562420831486106001554531359169155169758332371373039614473919467227453292226567199796894582152180295757804320529701241357794236406600308958855496724462553093424239286899462997638761216816305645457399304328557229269926405167117566560383736076026572334596968382534575215987183147909131303180168623292939353325751530196233348683450850622770393008528611997113095543186647544786506869137664906834359122257151127828144983400704194559705529808413804572365817961541480318603636120300168357564989160519344001723149557464571421569805654233877407018992673927614221855120552719180333650265274659580360375000262730305958671395427436067450603949182071766309875939950567817640990505509604311773372881498748293369188923234222303374537191960305071693754069571148550960866524958736700501005482298784390590969342586531644547198803216460499434392021921280860005228504820064001887660184675023085349201362976199298166769915142367329585395853348500261639980393923878262558234436051795920363535059443761439857975144039926218712327892767912196374899746345038492055884380447595907930646998931557816746236945619902071198340669684863810927406557288934599836863711298647859271388006622477488147830606909605267197920949297748935005227053158189148233642281450067097684696219702405572783816726603346924804728623084323499388869520170062228522062949288243821077287627537376677025020351715032177508922418888154729067751041808044499003147473903874145613240212919205201403059199340740494634578571140309778159157469129345401272101808991755656311389150816850691114256055014851227513661556466349803677623882239057568483288710171634652600790693553211423330768121527913332489599098154497718824582679201277791163278447661579521438044963317543399488231077050715586807783125166866330667647173818556704324553531903302634918549145675964879349619496985888235165222964165226593512832534237031298263268229133339381789273083509184252078448022629883753718468375914929923135940704699844057944058841766372453121123671957702559016938937351602429181145627731552023232591690059190672672205843241289687425698903067651481512794282811667929156617231684034303313934704940573922301812467107495628805280193234956477537543553223480904947440789390816917843803367434439044126588493845227446327007630193429715550009453629679156221888948635927046557440555730397707054393238282790038008782313590995941098901609153354972972121308923934644947213345894435978425008071224604073093656791478895284184005914644689984938614727427517839703270289915580146325370462308077405337331098030644811435682654327746181503613808281381766542341068770978491633034972030478585306783552337842342822349110297582375049944753755492290826984632939008673530573952828354058143141208055363385978107258434829321947021447788182873137422385930824492954514007822481353481218999193828210904608165350764228803608296353457045531529297804725114277608759966302195528380592496079361724436834557466704704114548984786165905679936659337543369614858184328601525913763492897241215408404046846783618772032718830892753678399630758546099327939499822453400145230148222373167114086857076263291891338999287019274504062044660133451715963970730948891257518213199598003602702183943709987269599432514718674051678251236373638769665799893832546278354218017264559447500321821206247517787634920434202474728647701429275399916937223588819791259784148674165910800857697780820062291732950304416725278239601382493359842662631000526088228183228484277286567933834472798106397044904770896102555070255389878584351011885337817925333996547735010930418544482771799274008880724087382402558867945438621947244240194114817803776268537673062006150282208558495861928398360365543316570749993273803609585822014223139699929897253741162696619611053206392837082411641440783354602957686133850466594998435623499781111759849237524669489202912981005922612411259486837063711884900614106412172472486491676620142736855893930646547311081944077292092720335916110745866121814528772255199687622943274004617484359115633650289771532958783596512368367430234909839948283347696019871912636476992284379190567050203554295055672116763372461072033111216074353070349594660894881207074855657911706320251677535309883668736608380941204851819692093365997533502716664972846961791754379346973251802653649824960523702917294888103600463614530126090301060845073558236030519114265892878376883903623064095844846598697176873143349682403004417820166722668216070400380565860110986137818211557326157625353199591664642497170097522214981561663530839118145329981792244100794990328978322803213643843191603797835865154357262118743644709717663995171043601121951254267936569125386080595771397039743099356188102770286555096926683817658387663057258520412282805915521880594262947649351269930746085927599619776035476770092173762984498201677277132546520627179352195122787895424701415518079773407755374197132425805607153001188220332810312129107481447979569903419450182867244416801762238306710768453664799058578338187418734406139767052254598770977441868455954641318592366701898644833345849713791550024438006480439600633314526651601148396846584979934342371900232100464109628760189970969620087858548445005648012909989146727443105814791544521156509793609219641520445591197735835726558841223299278998100673782517699304146370702858098094068771806465720294214065430535933567559409748837176452413922856983620477354104850744719078003751196147707642871702527232706620528048390392586840528441912982937843837861746609541968097972621684269913892475104918460311401894059274239114185601624843880587821899929417716028265374566501623601009507477991010078923310316479815152928229670702430470594279700936676510500332261485615970332226230562741617546982855351831966442540770475859210334632400357615750817249620588286282923486223666504750495575394324473363177193632935057406364303948155845929782928431789536891787479149241956177019117167616264267587602931232751263440426830160482207544153151872173106513247483797647724896141660040628799596759223964351976120784805058088748878142008153616668405488937097018100529340208818016508338390019636710501470930703650735344181745050284415692288364183483769621917332882342696558002392813457750044285410966009123237673588530018531923198891803220044045596802713453976183380729325163527609194564439912594695615785476656447382611618026526093817785045182254430427350648923373924932864053188417020904276444978730895856589750450115610796787966605028219097905366313007213101344182228285017252739085704991380808162326137302698514812148669573865355986942642179858534291167079674288404204934208800866176762605367716809520306787439143328943279374727006373699285121286131209545476727674171809226850855754686084941420072897412896512511971014569331429158513688087396737624214659159086280885640945225595580945018055563734211927226267230723427746746614247486864416129867987066010017898305569565190207966058751082726439430456496356301985940645419170560176097498269183684956730051608633709545224500473550168757366260031630953157451043796233447231950282154007112946132461653373244248395617475953973607497557474175185672489682701030195445767984332269237435612333442364468094620857176252556361440536256362549186671807089521083112058273679548183787430255976071238469734359065391326084212725071033434342059841555574830818592166921255964556626113442046570797562813784037852610551566810944651578759280622676600536035123033683890275551720176451127176200284400492336190620974447709732399917502362920943331720687257865268302248242863947007464329273593683896221289929564361108119067300939127766743840785318048446218690350307832644190868087662996846619454835541783499487768677642488818757648053022054947270876962134543651386058506505667771977534269193193057255178911766462871668917325131242627039162755355505428719628420448742327543178860244361103097866621119310277297202110651901062294687784978112226615760180758665551216990304919365341387197474882254236606521484484396342263626773933174818012183284586012400533589200532618060821718124498588110919533022793845258690897463768090897078765357778638295396389009434435208770133100455122686659026813669642909315821624293378052164901467216732572503190934755979470396712676916513697220589107392217759910277355662136844197358376044670339619614722254205766327697582032874061099859594886280020475810232139065562172429938177544434818337863574610179561159312642780687495308950468579291558335515160134026765074670510618065727430749336880448294489233906026413641131605040717821042476655094420686283314461770601752446801734899731331827790754956806331336557274547348147708229416642273695044255126416722412595885431451582257652573878510966667367034290099535516429841632792515093925354226750532787037523335924037089952515986442397336984089782253880929957971601114245622256392299592034470609311503074182826204395877172780160567495313739379045472194581414815514506361241461169809933931597652862041675361970869979219631386535656873563262903324705153080999015319593803916578159745416368402717961225911284784281590100966173258177128761034570406205387140868027205225415055271510932880302437570558927805487351455526372447892912873345401433434699537145812186474883184437286967414672684952483244586744872482629611533811366277692574696286098909256422459174305707507935560049271533604617147958241792501600237863211368900427444187125566518447252514956197641320704543566363333945299662910735280299700932504416499399261574456761143277914204451424426824836892677674504008394094586782929874768325446585331566347688128083163410130516993525003879170738662070161882068898268213026901725599831203581558234373231383232917141103359025100284092677928407130725012030389521750230499361978621375339038346015121643457658183168353635794514231782834504776212939841497462544201098760273487932497572295374862792252278296340850553353321161076867188341957336001153937322782428576203125136035178441927671912323517653506232584694950491754047266376918466580090553863342507997066104848125261038543180274233257876628344895135036784137305128053886415889078026251004815057388039623831293108279541893297654228767765600847152954121451460532806480765860236830933835272935607020890100761372298349523126817179114693412906483684641631301937056105456333142904001451195901500786185228922240955052855862325238674236397989363275931031272206586745729420681688575996198657993018594997447287557452555829697065759116339529989179209835970550267043257155453151927491833420513346225035543547037888853770767516156877224716034870404580433280709061489507270880046773108374212613584225628431354933716819589934394088494109775618619985883362750610990747245284228390938866583348921937464488003758134316193309377811918765578877447726582610391152794546975232812218707872510167568758426858422245092023468333391049583553356603900804382973079727581090430326896306236904409847783959533954990723567397606495416537702969150705894275582424022965948670544781900565042441022334083997127702182642922119605354801960599702740551431921641966655707257811820046363190455922130471378782938093226141321037764067848504941317536266270993751527679320609837179867357976707539541135201236172761662980363238523560485924960952616701266716011046899482766416727754064908194075636505168524463354746475689075495165080470604059662834866648282258886553725081545253504678097966787531326024896426394648716244758636765204275433749208359078981972252903841098425977478428600155802160090951938080626257358187737608928456479296829119657358862265392973294411593355113499649295644024466344542022066284538995432443644382072112735676411457960748754237602469093210864903368347749378124094639824357762919621687805309422058175248928950358163028915801940932907534394126603381946376831302312623879238200171011803643425772472767842647699946158215837936526131318990159015441732787766084143804571056417516117200378562799467787691166461562106629115918361651063667539406053377546142629814786071270399818256263815465168487998350393113841746495029342008266310475427480413122711407389415184636469181760004823812085465130932503958474363628753574159981927668869856727049519837415075081629008321475416110411076432161783405046828709002724533326945558306200208973185131670772606774770527815440044245499418684254474403525496911592223686164951224620172691245395561705551452547482032914064760089697922437180915667511217510604298143723660035032687630370099442760036955773433617675001853432886497093058216137080793420838491567860374212761533434788392236122598752706378191704234568644835466877298788483099863415127242922261871701381457646067097084030449598016989368223420584891029538783832383466726664601929526636490443233797751373461279821407223562659808219306069008041036109112821523687689767202711331731202149700868965979294550095270883163517802679132344277446807552465961017453889359492959834165992983142309178499763412998169451952573499589820909075174972346191145730997411519784924111053375103227400097303683733114090179168145671876825277655506734192657003784599157798262693802228240001530958358188977533600851788913258923699054362077836328475109038900308528908071670399387693277362603228932884849982532506391438295291724394641647597312560208637169935589125611643661943371627884355058971173353801230779019824181354756803827201584395617147592951681007175101360414211977016708709117975581213369288160374352520219492290141861497328922968479243531765460235896801789674394646296921095852584319544634229622815673385029941081664690641777155706008829203177903649979298549988453528372248569101256780237436095906772199511296842036438975772845895036938755486256634221181624895713895613262824460453447086370931175785259803007557237918214131295791139547608971092875182083938190102525221686920904522873553393525872427812161942535276006946408029591453186726032750891434667489230439168338440102041626984600846829747248614174408777342429317189203919671074895307130200223461563777755843860240526115075949398062277135448986547638039293863792835789775116378515442801562013378364449469632059955652736380707214799222598280764240467722184994661528104477880295211716643822232851060216918834077686754428874556026456093481725777728403835495598466746508112189897655892850755161480504717538414688933925887338086272044329783685009228292821058421667647470229903467715981184480642968876259780516766791583111348573246776157795828679066284180146208501724542059820503720006774166641491472075642963622202515188529148106892476263739547211714295383631241343482196191379871483160617986136909807054874678986183143928720680342832325915532109115578168159979306046300322545359841144452150026512739240467371132662950793971340539054531539373351971654020123360200134563713374118073121649422894111589986739926096725679961969916569608734029301935477984847900299345122837209005306536141418051911653856036597268849594568370895853019160664034384458520924770361666677963290893755428410237351625687610258881485778528700061464368464331520316554735254656977435628877355003121062011835514993129582849165443519931734060819587424612356785583384577260240219136023850953651960166415069300969019640604337927678700813580511631051322163092202116161780266573594682919732951396690021592487474559609559334999412725820056788071826996049449973069087885458157448934371767641550677529757013839032072023173547542704564555009289040238040983915870014073672360893075395652017633712355728925227245557180230760311992925382336502513882243768500877306101527549899530602631696670162824316882400578954113590682545081430101555342523092456744803554871958155900343477052501296095360517847698471163548504369464791179067221654287877789049354400923702827205486573018988417209693546144406971306323603733034953647494302175554581546212476176774785942290374872802325988192691203113338472312916219888526777145846476729494391277814488116981997973366300167372949519095197144002665238468292371595786879260406542327957024723471261250493258592006118365050946494334839200390555085995482600274305158719972710106616633946337940669880158501549151626273741512371570562202554046627178412459590375212681647636733459191800330212807476419751734922217042551489507094316772327636468818721042820592127248249388775680709046213341941338787124398973657842307412675944010653093337593718455830027925594170096782060793640990872287655857684191816315352862358861600841422107935979784731653134794545264195744362541296533616443940908286572119168056084800752313432255582145005689553875218475562653317240507980319631969444076702613941623333987567455032042758369765335784856835629340388333027956744052744111575827438190927342048102478152833834774847337415731257259231579189060669870997330736034658400980890215362838580143863351358072971573370146576598127943160335067567701890981121627287693017105560309143393324525580798301974089762085544434179648900745431518496110478331995664626151427890269650958281529983956264484789895331712206498943087744822243719036714568019582093217482682433483669447361418462165734490348285061112984238240844866018175042385701346428251547740237363349493770814729120641600841047708073183355742054546420954654541678829663601010484945610320302650456176972032244273194603481534733107347391164246440799813275966904715895879078257905281228218258125125271008943173012056523088033928720033908691519021526835709401040945206237050939681137935983660832826742546051743225552081056198451152199280239897417870434447306748851558539258129788984231502790328645750820648403143010128673614114769727001324311685808508404222570686042725786960060380687499592265397778885659771452351905659965501213001177449391425919363459627421555659614975767399681980797418141475210462426978497758973414914068929184987117148416356833848383854755151223470426865953781862439430169589952704755449150753151846634498102803505222692405934519558299058930638509759838088063524787954796698656816148169731664844524699413744500777113766170010267153236034725841817096200392325034189178423050616017910152870227880970724597956348180184503763446124037281514364642917263377439751583216920403159723503982358978217816262183452610072445826392784924675814186519286734192470100360284093056643193952904146891541364682775388358392497229963403692508714462685319856139400209907265967779459329996821623750377896513810899922181178858370245926072252223142301639838796209179865048076579820921617535527094954977786931969490925436812011728546152810732351978463941151671672101740001546652065516474499862699671214465297040774712531819683164434305636606201708705872595371465125035910935956539152029232694148461412400455572325202783287076209191084614250446838542931963580314201705543521454743194862848252114144514344613345597960346964292442558300775813670168783472028385424663177097834430915979538339319417634701894837337995021624226967865621185434646298294131738791417804559512971832098979850181582597991084853939102880073590712197655937700015936125923196462284023837202079920662545740152574582306905709451844839977410807065963775517775934038280211660500484012441021866200094867362173488842538828082478232280740140531117048957034661960324026503795729318873803685126894964400532022453885305457454577052692626122371518283756707590255582320227478542484992980906090746131230952281324508419953507833972173637462769370779731970008813586385517588909008905270519142009376845890498183015206113951757666502271345920986100583036505727602559788921701958298081240778751563958807509477719452246618460101822178051807008685174245708624610130607198045775412411432522999220868214014292653113988454736698995687075582188720198229078582295786890783470237701351949543392742956429157250970509873331603187556715820942071448713413123279177943247707220440312196123553158149216643237091988036189743941359351628308732529180318570351495345030933898688304933526736063229701185618592459518565474813275841430150564658301020782122152876699799190804031096310876338085793241919764826525845099469988532644648064842613140386748994060579162942036837005476010233863200534870933802170907203100711411125013847528383395062027440935462028023675273252268795101863482127444928015582060102766954463272030887929065143863702158544370063602968923019395624376140182297297629572162762900601564749558233863925509224693896162362173808283047889863766532093491263125192864491496433236078676263616245208039618266639543461364235304554562536967061156856032399076996399027257429104786965595924898437519959024780253265620276894171590363332074030318395263018933207446277326292266109020090785589090873931874376068556222674022414056086156156345531219305541455686646275018332497049326706749255101442056381591716485367746794299986718865930777340420010834231354569821974034477566973863795216055918286877535183377195679082349300715815284593703879976928336555506968745699513440749389794080265656833931794115447898677139337865175387277063680945296071374619318590845568123224903787069490167289492926272035498053196841320624950138597169739491282880290491954073023268866344156365108492253484352443860886754790121526882685467172509982464292380256296818428798776358269187638273400981729116730552994211607313394086184044313469410991320317608886883738389458982955593678727170031081124329368326294528797128681213460203856562182514831840370573408497439127999447634121905231137259056391952992368959321046915358129496194970077367671672087668177969622812749575289985283973603396596610664261512469050168941890851236675772831028488179414603064875615219614101122897043414625035651233548240458537033870049503684228299144854928951674940635200722566793239326124848316439517983493690484161995891240278234556516893821507194587827103564500022142632373250272878164751180442874679475014399625093366745030956900818207391092979300314176942562949357757635656397173314602669820825263666692925681588482123680298662281521529813083601237565210744302402650849152453588586340317885253310179090119157540512377191579230242121625331854673837302810190331466126054347946978073392644190681443135035894458620131276171858137730852304495673211471109132227534947953604609151429944513819809601077060381360891476440591975196031404129141772348502093683172398065120938006311345814579143766042725343477115488405851837691139161374731696851059589695478287188902843091219763123813463812459219102338620043308203014983202816249884772659408408244980205802820715595494871484670067668373795618880942609573888115945317633836301877715807520139907317461480296963571723417128934480042326921068372181469042469388968308292544410733850141468106351313458270909861983184590251006811453806603899884146804730263113732296497257541989406137751604789781237200939523001008255448806260146707072356641895670180948205511634627108114175882753139420493812889465263670546971554847994158614636965246259594352707323628777839877543155341190543315736245124679540718491824542583200378758947267836760336711671408044982372112893823031095491876297209810743439685608122328192904840922359701616900050362502677414836331080073604415729596370068969512556574253863734778729396501981849930250403084603590187301318846997032533220025429260539791391285118335124531966003577057653499542514798271038356147556036919792850238525171031087933275398514420298389546117603864098946515928727228170057218336010106871592183053455240150226863232872752434289762035585157565359315066330441583059292895538567989097372590545747078967479135825720765660829140442060506988705502910230604472403515732242002172484158117278097639630091791286422764622389124154613174831619237589285745771873038108681082296537869171431140667293005162470266999316370120064083780959987768188066721896311963334202279188693312891229080297153565375893454796862973917533184803231318673136793925343388451632453862713791282259059730674014158976685028356525666119925397715715607988695527469039688740292162794017814993296389802411489201987288773270321360439978758068782382256063186854696768617630334574188503905293070902044393248270946577179975618911733176352718206644619989525166976081526900930674863931041665233498953278062638199947449685865888200938522821787330902456277021803524061463893791940774228223332753312549243474842065730698450488422693431673180592672459020029936304759908286740805061633009702469328300487352308385043817162877329919375824756664024889768189357232918692205226170458315981400134437624576159973035887157345545091401355516135094971205060129959284976007941371312443050323030486594893275045248889566373966902679908403790564201606945715976547093876818401892523010248120017554463866551594577749136858064515426314476719364625293803003612867024933271576914176377334718173633553951849701586980372521810972767921845436465443254497498347596134412568068735326156655656679458259202733062499164600596265112754807605347355939602182291868891816246851190315919804393766340241122118166969549261071846904780732831932000927024571612628816642892847696445987995000093019201231751212084657249223877739089706550889839535164780242017335038452662812732374086183768174772098638370034038852867297030644730991981609810633863299569273198861840771143615678000331726947739462524658916851160470405343106646057325288788150357855652780003765190042796639713227141791722911548347117990014727277840528597926326548629192766787581653851164687725267197571368356993594947519048091849120306029763619309562535661882035200641260353331351794356415689079156499246975358864079466940659916599966004926518852358192741525756219660689343341018480958114071210013728924444008445767899819285195593213476417927083969946025354005484439690432788212271803041317033036124392772039553131018175706157246156811541674288682375977575748168201227587407774145754351619834191740743128901984700805948216643966216697552897173258634394040742301194746475298578667975764744822551305871101072044069514225948609543318517884721190016194759188906276723285306248990945407919956984688793477318403299256996633395560066432795228711092434775762528225472019361552965968492214489756199778062831348117901499707908551466381972177227540189354303040774148137261709368945125583161548483866624343380422229215506402230787300333666188898346039934983292498668495997907177778715312689451054457267549270606364428269283496094813716128472290517318640261143311701732686312122945123406961858361572813342903208446870037950620619504927906755454475628980438958159554273795099227788819644256691677661436355681263900758631483257582131927633509539066726682766324254662589898691986344303927843849248159106558939348080575393396114198743572564993470871288012852725259657746542295381492328201235261234304592321362308052522839705680077638291587926047459858877426499681878379001338549835085197262861052038000882556038127254255560428210285687214904776331081509851103556493216878333714097411955406331757723962964098749349888471812722942256740753865748562202466546299197472543365564668857648422639579360465198560987741490459030774452721358747293276385386591722128959598211236326428609042537441492189496016574588793296808198436282494549102297026499557835915360488857859473255246287323003056043131611786452433392586673567610695234385356036148155433154816029377415765475813198650929315013436908171281158125335309956272175104507250791530826965764972081586217833931853143840022848346094366872112420513661955104892391188133770322775199458152747594255329366295345737742214571280014539966709856753552056505950345336825535321008313745948465438888239988326774547202726721795113325968276491456608155922937457786683793349869733460650874057187679988113479562002522669813881524978163281256270626845337613484505540734915593695631871744808882281155845275588512644530062024395184738627319602497080785611907881360912836052639764561314453391140928299128947910436374096454197967243673310012026199041316584980750619043442596896255880072567526616988592950572677720351164864186138396794249215268723349516439444256897987427138331011616359755823859297619443396391056123878464825876387920745757493929101148405532126565894399742979327416287237460688938099156176735164533483217034513923808981487844606056465625403550550442868234915423227584660856756122766566658725072998859784177136837539586513276487103961531622083232340764097236154864982902742186801587841110879458036576043179773540270689101233351694811463072245392642588034629434232202676800571975822391666927357153228679751221026180191775261387329323535134254685847648989054454727233123961967978029359633811554768145007545141493338230736291173435023683113054940312156886557492022619918313935176558665567415216418956961648309265808529454136635914225382210284232396126094771839092908312359310219497307357236184112040705233029726601478610561618695543103925329254965704087014761179445933847918627606408704324423382664111930405283164247425012004470293394074135276280120949240289098157887476273578546429890862139164138096788279158940200763701384902819262751576916324512764397894268040923063628284602644800662123436591063899102008356974931144741192142637410172291921495166699883020740370879545800755595395486914267659047246999781809249501693280162561139107255323492232316606384888561964697917058803103261383075086094929197373071273794019256481543182051650028896317638640278958247077793318845451596535458124411566679488207940855369433238660844320415726287621595774358893992584786833777046749476787442574052360836673128270114066906644283134958388960369060865543720498284777590196450217776329031382857288742381831107450071052240839586665984109541856620584396624400893239239028680619732363380177374675468276060873938638905903742598487660601685643897297443277514239001234793336946648225027358130963252788163710802254725354453775013396114431411666110648486214076799572576369788158767646431360333751787697462616422952495853553617277469346886961905009073398393967500640399829560534216397664977606829386908252957455948379400182058681853521618894430986372314272469918954786613684169905678068283490524337366429461026211191415216196745223578178403015115243937396786834633263130723624191971780473861199241012477981848488133305451183682333456753890051060327578995950810846467873126572927971075026617088927785900669649409594771925505194012730746036368061889048527442428331748108918893292213652139313222390832338910171422468318267993414243506509330918700691260165664858366632448947016000373176062853585977615781094862419432231906439110186615659833367933003879083833453992703003147877621579832692120298956221513773637363636588853063654208438213941953935477300861970323494149763323216498383205689157526452883150948647936552305850359206533832345625484499468487836973831765739916371715832523388430762589248131326038431238464448210170368339697638968300316093593755262604857998195896425666433970075987524456344098337851643318867926591223776273529699479487201555338039798562117743803320319523084160277211796243628971407238225366569100903132888238607864326327292562877039260976156406108370033989163396520044277904704825864390971227213694921838098682386037064980680657446364515729861012296705364595411964850323356405750172884484232081966155386782012758678344359224754844837363898222490138690867055871806844193666911589226377359972574837410977480089335412469695243097331671670249590253479873745844668578195383967664944912237015643475041244334970971086377913858747992985834636645803696787272359432132795116265728546106806454915305598966525862336783362392899162249819695641747719016443444269724374329050052607057155146015169803012105700610110218512716508180194889806775879409617727524711346974077107303845283919097295921603875049771406798350493031486849966023206988122650106295274241327903524076992356609347931842074672101984488474057512076974630230413726269049971503480191753600761211486312637965671795777847700323301048230285743127103047285250616813856157624949177301015271098139398211569066691215202408360192678962505580645334151352632379933352107632244391652161382000268712648184767308690177679280679656337681427139864907037773184925913303300755422855468279898052500259367637752874748622547466122995302965278054422564436805762025214490867886650022142405281178705719349353963717219037486875768413407824477831780714053294143708686052335145420776869344828946113588508190909152988470894283247269718776495306213768472995272000917418345362606722611569667867177950836579426193881783618413444614297860827809000993784043105692622018991862475837979276800575472528032494115988545850642959289232916859311933706607748540310077770152492763405079353278186331123883700052296699519196068414998207736943770346746981134363282766902543865708720811500854825898855924886213140137170313956574885668279544454697328752393882617085281178119950878919429755735022061662233701724326979018219521486603551225462342141420877898390630684528635366550875487577184167787707479337757498344657000884858237698729211650666076575986147379679111263039855583190736198816725874529104848340798236942990805931993174686872208636177402215660616357517785648874741272540114202268850284467429037693743108371286357880901829296291680604380104109853763160799468286136651964589410114821202534563762269187561728399845438076352164660776966680696769333306386220430761632865266166964016905464728195533406564380975693067252984258740612491081206986840313417102945740527227435881972674869836017783792703847364098214558665153830137533628760804799351101370058074688277870930013839406915099063680832662940701382497789019939355352596148280249920440762416986063134630781303119327489422789051514331876361612374131849011856293024634795817327883514477925469435315305326865730961443481109919475419043709818538983410614625135156417551054457472400919021513243604913094615277257471712378336737424097976932971849612667659547343640959131976835204475110732253715904085368879159936219241334346234387367683284739541167239876997336201243892748297297056063126791701404530405635535577926140610352390202467700409022087227382896871366874085748248184974361578448355559622355214041831632896922328473369883118099119853733115032896097746447286326751959425516843816058033569476975386693817588532100820474457375532276382534943186897678536557503483895605768255003526511775059525196545498180994841276491178595196435773537346871440311645096223541679103473904094410226829392289288312178857547499895334824040248560317532224641874227514033088073655069905723390122778435031237169377205758993975214891773881661789502379728317412754221710609220459766013037058349431433277015794229335594767686700561590956442426892195960075245356051468370677762134285125951871999335628141972488278191109544662229022511224113316387736558405777943751122152815979226143566183726380137399880921939879795367288785293165665354989779282976355876611978756326294525032199204385396364397463292732579021316148950395587094422313465825560345057073589361490034067304437215871065220822977992734802680167414516320197495730506866715774301044057272420072231354151939107304617753921187696913164284958532717978332431417962502645718873407616367201984432019409240321138845715480227876808176766671919873374429789927472074068342934607746382735979377700193549288291237665690472890827788462776014013800007169476336659298231406305793650688718897794202151174404083522534127761708513862136524205245520868986106924512838823534969097675242552786284015522561932692033775535358731932544136080928401348908882478800241713256034409793648383980263014195075008541131680273108039193789158116433604162698446731709352815840911748423136125105470878037704809496253429818413706306047539537521904076386897538587567210815627381666688571527691976196172134580637803601164131995041803728970407070430410362429053137653079181160509585709389683158259235924894542359923794162383295988115478783270513577217547403716767733320333488719666743820273582867848027679697052811373078031482460228137337477580336782911036624290503444598804251962670339744972036964958978177561471923138371461205111989076790182881116766160435722277073438997422523792797527004136516670191471457669573871558620110881291937197264040156834603945390503157538106796367654789553504404613664371154295649887409433493427443800481530565210489676318673934412196088306975693801952595072741718777071968399722408562163294767158514504696906833363249415943854080171246136319309786420603934030155071000819818501612511196910486687254933470233749127494657064489429133497376443719314863524117551805737236213770038516536180217276192124902925518200287541132359416695811184278785265553831858544781472413116939400204785967662396056578472690190176757087793923392273253889779344937435763667920428360834901400224687748366885546781868413598668185667281887422339861721978855258994231536098321613255084387511965385833175224910086185190742794663428912265859737448651876775425270481255229576266188378431001919697298263229247181860920365203297154913307532613862882622612161100995832099274218852577782946601968887325314208657266817000405791739417039250978607649194049039509277382108698757260084857516262451777493588926684496879261690959798698005781358395039850063422918244515554728635852586403054827051326939251545516756582469175946626292732757893289598568214507643339366514073852973900255756778566654786775350640216480792815748846175407901541852131651844463691249486241219741395241412638267364737057311931830511003349437241098983027178799022140665450075519683079622011038619466236075665638129729083988982666270204451253487049513209076334343509769816320690440088467515952737530220280684029801246121061429969589070255708440013710834470397299253607359869898075881373444208177940541253299870898838525650361793909843013357704714448172934355416403242301592529158589443396479772131425199514287238788208737447024376938577023909000707089437724672123658598768884395893103992871504556999478766460299455662380373072220162609413270047212810909242805626200868631219040600062618718305748139686121963895642022517908813804884762178581402510947662182534199720953961826856471617160685247192503810908272272997917893850968664633404682490404927840444558533351996872294457728103983096066484664205013242675726881940584935105362578243938141210008455874572280285689048777690570554542223732462201576712038665276216671948906602584077306909492950551710055302117725565712541639331667111323535475174342904577290680590910494937531107731293709169207268915462156294876838231418643880711019299607619304745187030193609757090693728553621701696593327160667884706324376390355810947934090921440703826657179410266830317956010367596227897794259355806962305167228790994183005633737916308120749651609711754668588373225538294541570779000780183683078487057508144431511393311142224800624591165369914585457044327902607760228997260822388722406951336131644173884464832984189240813403173190475833600544876417022784326208434109460356523142258218821415815817573590500568239556315868710662722922757956163343655476254183814156773608537269200372602787374934597972793802220294723295209972063448405326493093613883702885510509385508441836757791552118362753319434362120006566743190957362824283019283382879757692595986109607154801084856498103098184554723731216991504008032317297638197170817564786494761100674587249482071651685915971585443737442017352968273522736840083542837769900907942655237138317353985473564200314777959363589439729436084059569478557780798014409689636021277140242278089569450738986251839382336821043812725819129274211022377980219056820703243828375545282808200841057421604293408351460121140246554517185564331507418382974056330250989324992530579912888954726929407832535852509643868001516072225579941426937066104064154503457083220910895638543034595672886092418090804765069673565664130388698120762034896018871836639397873113562139414534826866434153249143156952370645238757852090723947941539583440026668348115206216573021780390176071427553202067700163635902964252143923442652107534397162544175052059763048299925504099652999482274405938197851665474855512998087093357386068928162949722437692317366441945728534314998539483150427897786925765143459478300005417033743072404769821010577903069631298777126195236540963093555420629144219957275800079691358627846460577855183724946261593215551946452717839076334291617774915355629940674023810373253786679944845570598271262943134183205450743536767310782676725693098158493661452758334153632619627360238896330286635897259502313056282183950420525224980618434839727922363716263113742647071105819157479193213683849836020589142444750310622004152769611080126907010287282375353644206984508938069781649304793152055238744478018224110842309223999357786326884729577711824334599287577089300742341059429814108072295794337260707696740023574518761401127977716916664369270401400903169726640181731004124822406255384083630467793333113627160785074768362044960365117707651104923156498907120017445406859034525067308540533748840227411482412834542805435721757659677734618856953335565762114019848002418749097700901390081675653928230241927187976586929589887708044530754160873591322265322321280559891992794707663414920977258243555480474222179748626533739033622219812518514436106836634457025231836192593908011715838717616925529173100703763573965070671295945467527429525169853836425516719027636562073358159622686968567544619741477575989116231224994047809412352930031432215060373812194534041834363677822576559993004878840189793451860295257390720641561679391361428683689393359900517453210137108379282509774817615034743680580745548199053736498071927907435107066035818116385832109349102533931975122938572889938700480360609531998411814632987593139431283189614652863250308448729332285519955944862620108591081612657015504882598600357636579084023442321272489032766683109676700163190229817010343104113208693532127351587926838866932790600516069138778305569026195326931203391563715252802291670087849100913966952557963302956499674220560963285870631867152318309239953613310709400356471563849363490931610287247678804480208075123887917378324079168626825228583952519235366662178676444167940548783217879802226400000334735536084462862897490309911914165720524583550905936665631576614867888526216903731502820684041429025502503939486257568841491055004887820422575238941244368770694274575405553635399636851474754197634155927336049758947764349239161626918070157221053531030070025930073195541755841153703300490634418189007186208645029460251180979495642453384179637621646673277210611076191255817663554430082458229897301088897203656556236076884171547618827785866252756742430875972333435920584518835825529960135674401192859894129393600853161766399889259116003779932466910446980356187649571046389943811240396709311040229454373434383710883483084893643182546245500070501405439085461574231398563326875719844625399051936938344489767603797674777447718757699003562113668972921878939211361671702539974353232781395022289918167268351991590978062327784599217925626432035481913912578412360499571036188878727238546220659830787504427310181486487314032010986986127527622391584290188672987034620313918278836591576563938049769739691822690135508164479330346636319482371361382150304328935208129601733209845345648978666898128952721540623929607177501567681733020757101122470084463422388801950142645587032073198023592061205390062654086815739372900576754326960320114187579391258611417997756076284962936986608005439313508596383815954102547757718257990209794993923970668361898103126479378994262507486691529059356618547171215731321183050679597774640222517512671662712297970563409775155587257133438243106622644583730611761217448495692052575785801684227696320243790901091591062790643963154144036191831300740196711083983052960642907166543063230122287930086439501501878008983983397124832112342867489784967147467863704873518418541192360717517877454852512326728801172962369225439031021898789077108547340299733284817629785857653783696301359460009102567637885302621554094403776848307081070900369963419040953377782657234822516103829860466384683913549465936137427176298637506793854162971557676032585301723935404349376229297413741384114014576933165513709851134629568229011642520945367160969403510925421066179064618471027853933258968746908122047399475013456203930875753850756703818835440825454869934488153485579909810137522264999353389385568208848337598902281775688481908356783542528700994993070661656166872400186609012275031774247674629182944070672237112376609869842040770595885532551823940846726476966462386349640850243114682805200877790870102745071625840229179169028651944784250513120852859433646646577984332585368452195244532579491804404496571892547647925556385203456913810538165983623046209473122235932558965820784826784338305077807591089889019405839329718409770123208689217738757270584224622485537078581576160673911118156268121757615028748606690984425684819795930251630389386290421833958532216775269331275416666432777969853721364389797403815360893525671870827582233621310459294080045767975133146842390316932404213690959119980389225750635328350297620679881060227192560429093919020646577924543281340373052520216698064476054562752210583791361331044254340697161781295919680298726626863006217913289762544065622350158876470942809982678840172966174998755144182276726051577558941552227975223332354105449027700961597492986962194941803724301019679620710428199432203169432555457391997762242885362634222084422403598875272643116664541765285303315925640102692479245091746656062773098776184062233255553662076362324826798234194682356231441360510012653154576918380851132663047377478420962992567180806857959047218876441474487216751296955530608546372898509114300690828886923935058867279089124380339815860933724779808107135409074818268601728031915432057054454522043137297510767591977306816114857296192568034234773059652951097605355257018402409403589115319824681477220243877520721127719776919578430751166795196385782463060339393110383608612260728991510536085156447973082082845737828345342875608807019369128975241138951402267575349811014658135937234783779444179848048135956541419459657588920358542397131438106691251976691121785938197672314536952212752433728086005890292602752313402263640730747524211180641949260628463424996719807171381067952885831139112343355024035116171788468412823008217135600056419271910443341925240833150114224972112706941495355688815743440710152597756251025564601891593968162482840777591012283769011683184865543877159628092248498983566067764197467672747964311888863811176795932100054776915646546119640971854948079830233623304700877345728342993980728127882498348304773346490484419118247029935517381839136366457050227416715626536768910225621170345015003529146823841210160747935432832723254468812000339361556795578529632499826322731878157293803673853676770667584874568978655604895629940930066593925630411855454072716274470754600336592018955988561316864749558145916934270712944514672355494882491023933730759594646144643941329980998428517788993364488194810339239923823567163705321874884788930360596632468475117624500688333139936979777930193844420619440408174848053535255310335717081470836632347925831681222312757847989794050371168263261686705902946304102802677667340178298746283737472337461194241348392752082687062448368655045193885255337048290112483412495948782764868405567800656119724306840995170084726175462768430805344115878828353956803874428801078104341232910586176475531354223797640083781858953452312723752727658955416115070467353655590672308662112782681280236234385683804111560448783017848092581449820092878926591712674135945332458251452739236726722088665787514491273751371850659909485703558539143603058907767456521113801121201909788945834257945822352833252352589737208474925295771116968450340082491385541529575951374713649422541775052719441446333395891901013974575252275248324404645593727052483517047411290435776398179171139408984283342811654065084240587111548987327626056814550024392709267033459286656048062039868007907196373570623528544709429867337716029307415979436786490341716247892475916329459814000047122197994863452652703436035765373408192154453089569625873829085542725719911075643250682855234872843554047335130538883736407895920549641719988382136760936844437373269452701282423907106692174559158090033649796911667575404786346083825804217006070578674582729861046068779990516386220828496587050618530143769947304164110890105968634362667181055109149315109087444722970960232534209457075814297642135205775072911051623688586935229683592324769420002020532446283639876170262350018461094449224922691387654302126544471891911125817729705575099970573850360162021767561754021697991532636744109923072466730060023944540163689692102171807026223307012738868923477386802896186033132586832468641809740653688491743443440981104431057110306282846447502923383415064935903715005937327708360922433893797609387769227316819269240201668734781628089037793066587706500823125294297156540577016809809929508815357803337960067179208772467539759728966486061829491548714313985029007356612881114009721891344213711403503570641401162646900611404081290285816562420595567848164462985410259066722961964972734015137473797068427907495695547244120928921876684138881422332846139844508909881781811024481931185288702348208562276513709027764324791557052191757364698382600420870348505940557609940345725944928665848901834698265273640132523072325226961587189406543752456817223829806795820874388951748486102168128628544479200535144303069132132520828890815207206426469982545207945022816265749676878421541277682736432379207836308885128715375791436197834180865703580648356814256681971136057808528006955688590176811711753557389147476111389725742534709107990445675129142909326949956296805498352724586545352875221151621737218398047069633824819071078081826870322663848731973929914752220902872250849530489591847333206123187653173246509100540251229287172545688504484239987629500861021331823141633650948078977558110795533584313398587051136626444268281343231914740270680985954731632177218592709949192649418459063787082925869558963429664578466623876062043142139153516657922754465025132651817464099012531896877931053870047543665304232568712860424531293110315128300581618842490424344600444396938219605036825049121313346665457274938974884977444990156958450608224744240477480004645782984367569788768357249391499072361125989418586143922806772762143203515882499436185766184749096476710110374697820150952176563536646198131207100491861660545073378153513444454445534680895016482496242548242831403074785719377139581607511292722735607525638520133073588209698793844794798234984718963283097242770028207277468935748878785118902069304956621174049233618684683966164090846443618148761599917308370953390711258502752283440105711625534929382193708570937134889918443512506599079975538555778292051063649174519760124715635247238509983754210095991209493585307277970214508079075352683478526780695813119275094083108796508408314990686414082525046181862088753047451268993093156610996939920141309624385952081106657109590485617173210810647367694640712181269353810784819826977034390089899930059410181660287534920750810559547692266883227924652624003046698633079373051512293471782527434317924645691339241540999962098253313009826838420406433337498968769409381974535077782347294688821141033028880114724433442748013948517927280709249665437711613203309958866572125814274266013048257654601982895709239781685220204596651118550329042795114055429416302415989285952376911634629280580101446334916836811713327303509560835176280776099627327115806091294380994058791862327180364710816199553457912465265015810914216111499871653258412218752402760654625797325898362611945730972836443906872385636882351379514654578666995338282779715892517763199698499345876160326884205599814323724722587083141402533959730353975504295695012812418262534061967786534419039217030366135802080158112929811615827311983873750799909651510780254563832718252273247359126567357183372964055989700718437605059949477083600875824712332820051379294984909568328307519106163655417451110269442659078691825071437065011333877027442810917088841043158274171094567617704751536211279604497835774440866734118394045282853818571716579309326366479726034908156841348540456123346271621825549240330829397537911424510447168495000603909109196644061209793702505941113088804095363157358533680347967030574741942047059893823185040272576732852736258538756294850163920513495257379174137402328836836290893552564895751782939471969003871522544066657926846378945022131663800505388249841142320452943119013255883575092472343256683056852256937905519837683295999519452653015391905748175239626844618326814051363947485548068459807089641168067309703115550737664889778697317731248459658502837234211632027323747926165437165854987358677355384079115649229798189267073721661310560207354750759593018523527538397932060298910831483578181113146258776784628772120579399626589098023216011043236143921808534157802214223034250376209566298510077357927987932170128178406982508348704435104407926000492107503251484067596934908593707393518769671833589681551129641408748209271127787254270538472946317918073535104200053534363126319359289412107317409045669938583619844430322171020000394248404135320360641428322924815734754452137919529699124465641374204591641454964788000597395863668771345626649971775908021366499039323162895351712973632102762686007704246213808523753204913463831671153645194110185461469342559675953242865144435391083383778075173172000111834718427906349557022731838379803358940100610904606293390350999519276114390290522334392666598818648195326156667572185591656012063284307919180673821272056363768083880592375216018741953703816496122761985400365937215632712516451330359906989330017052221073787836756604497397898435620332018066281655424921276026492488809185980358345037952559257848955184366751801694666042399474818987718703429658998410199454858260506649812600831290053653251096563799895099905636034343879627710598188569873196766829687907177974590455202959037343237131130414352320451761818636625058135748385160701045142868046494501093217858005484326362659424909517201332000757227559141390825106456596182260618507872875039334643714270362787663745184496336574682163271150414006873185573793432967157224014719344050127538768495014587385640963096109309215578244818062785930058601609025245485206865380039528312275875541117919944752182961688339816527179114694739712472239596958182369805123472719074995505411248100986630240378987100302732686283103951110709460006603083299062627671176022273190533165844186447834683365740017246250366266995500535575621782402234376979281170853288383319098074220180944731317161875568604803149334948668279113388994653606969429670104910702913221930319117676078469213296859161099154240254795552950822218241581714596579181037294766319199462217634151354972698292929409833431763393604368485043284562564032797918813646204832285868296572908316034470348030041971430363996318177398860384929783804492577936643343728510177671937080030754139189770378938172115326393915370720555543032706830866547353703627059232851520523623589275292042911923110407984684427252725263904520482432887463135477386203950371732120591074184226122636357116921130495966300887173161026773748461703439007546939001529054189578548442072167262342265098164982301608200387578940787357286063806406459792177436014117126317462775109901893642176613758846720422203350458195827061974880477989994242652559329595378775518971792974533325356344169886230235915764161146943375205655380242216281093937039421118442500719722788118859939131292097004784034648629388571530439773832104668798695558905182000665370095148562362197245954590892110065484268378306728519263881971286011901830625236190725392336260891650906316771896044519912904471062310148403322629136588023499877880033998908565953633135588795699887209664846793962562777398004865496305602835490432517982501330920156313536889923923170339584103279183571960718651369975684924519407845793753053694287073372651477519170320759012303614770133958067976794446342743581401662772865912243612188306885439293785578572331479271349868452918128311103529184803599942796707765214774455395983042228968568089478268574064716795764104130779586380260364071731954677793961792200103001247553715812690253106182757449729590429423915448984327931767959155752492164022318070640499256183353291591244771007133557241657360765449791009853625551052306647386760463268345640734442155552437775938233094561667904484468350572616824935068155397289994137195676977953099517767442614494575430752637459404694290058585360831623081069747050322653154483298404483813668000542207331433385250525881976836890295391987729685285942786183888469735321429336890501916077636517662044792450040234673923600136469933969476979838172214058483153624862426946899958806443079374419547371469986030751663498049847172341228331897414909423892452276410941681311260554402852171934382315663820150325155648257619549843965926636895167132597959534525674264287533877559156816661607129193055311679225131337507425312793131837590809731518925373659521874760385379905453290682169781372347042673753016133582946837328235963271707909736261844131536515292759396474097929043716658504347184036993364120564710433263561038803560194218183579274004697754571335250113831436677598345136696969764272000426264004488020798213535854173694625227084277749239480835401647700454816878583546672953299375366554101333843498028394741698360641776618606174689408018043289321546330947444728618528065807292636314495027438170847304082897604229772388739123481315053779881410468316957143244920862145892257012557489358312981321733116700563881075456550681206853921725560458831640973129373858617906069946797692278242067600987019168408271959631752497761040988264035750201573928227647896547188841494437180334574433510940920624353510348367816954731143308604131753797648885842292616438949314468345056566463911636285916504753966858698058726431196740131178685029200380928896388623617234562474472953969169312869043610486724979400264400419292483584189799213021767722827964593936861562633794871933201348790272076112796128726447729591798739935656168618595694733371371392047815284621318224568823561371897037228373348242082736884435291834395832584753879054167308657579472155608338150083666644197842594169872809834922619111807449314397386300964058842722930198037372180572188573344812158687702773860964597259513164900119085456241054524434819457949655376376143676189370550885576088119440444996263666870178405886812474359692791304790981406213396131495972976094234000719115164061324420789092997844869212104987456685979593214570513509790783758416927899815064091585647680123322478387682830803059951650267492929994245075554761419185213332404050231021487413269375339586422793840283844685875233784170157818331043048385178051149874629495592117721461861813632327218309898658049334988723393658821246672815268105752042192742079432008323315173085540521893225750299091484056373191345813720881821112266551709239863966860402690497959246176425046231784429880828902370868569964177210568846148864916394014707535352090099008046468839714494716436066031146993174607446106334583816848543102497575443661873934141787882656325312333246990708832390748880994278661737424911403018050959384520533071242910398181652248151668309804930357125220594612296690014040339107298506980545748270908643986534077444929686459213388753797474558532292965908076976248907475306086835921945201428503023666933800592204766016836472136523374180767157062024557455044993527364905151712358841686921136463566376674526503336445727924701538093589134857862365515676797161719514482150679356932016027011665601688119280023291026452433787169518515886111023003479703040020288857618345845637857490450005258109424597956977514129283731322131865607562313870195807258559766174935704376019074220368910279095311725722428199196327138168790334369302893056634531347115052966433662960433284422762308956945788057655432767510164458497431630736119457085780938981690900080851653429014332289774020675245924452605594612896321469256377717179110764223211100711452086688106850954979772320211036060209183359932549552827556888165614635115433450187598216767854396147873116169287348884442510086221171609387085249537788926381943068416275922790305943315583690236472264723431600664082029398875434451628847821538305332211208911322384077928671618799843748982793460812592885445276402386138141434072888256382092004099066937434907783020331750389550422550920240485448392147268576607882301107509293356326917757222274504039417531004053893229394506659124614503754683397054484508662163149707104757884544418152544159150713944577202700774762413856835751546716407703824577822355972346276579040523931306673620185217993505235627846859541626702310335709165256514774853401207125928516242985067239166372898429330365548896983623476833663862693313105766074409612993784384804788367877138140915943960073806080229411413991450138646976737710934049686984510641536813161465878484966418714866940008686147526511627350822921988212718856087728394512786035680682003568182807433556607898525139501462188518137041942955801696757454916659549588425006959908982062247879899997520424172059729971159232649890469780729300467262380266051480863492585925661460457422841078293877604959375976285672178820354999198815674178879317289473272850755264023263958690776579200310978065604275332499140382604650263103220453493633992519390971304067352647560696762020350602121983288221929152788719015899401772281246470481251176182790520190353046318161272311331619860837936894607876285319799772685012143587803066875408087724538956863422853098536056118062899068342557714159603108417504917002954920618762932807248137331796799483721027227318627889463832697231621130884693406352258352815225432658198370514725145919418658407463543535225858133479568010149562546329492049783061155186513430169299886067215915049781121989520339926329545026680424557480901308513159273126973905436478643713521092078234562513951512016777605188564759711464730947699627455519332481097832593792149725935599409867611626861560151183019779860405247370544159451077875477793283810653619566749322864934624325856963448695442699729480522445845484273339203470167748221054242291407821487810101441046458820715917518029078233808360036830177999523979507875957804746574089157971611509494592608737785242913768531946397844037390767834273523211010858188540441889762931276412182296919884738851505207203101041415104991851806257134832683074104113603182991326051356929464891370481292296520416211288068232114024766992517674375443690474966916824773211025312929618149712738357654549606904382707310388991460878430008023479270696335903167033538765420686617259743912585565875193137343062507618822650172988513749389942591612932914317418198291832835845250593374667870129654250240128093103370012365767122377174082130174665265652652984353274776575867258674065170345431945963002074878650237751170795774898849307343397190756517146633810775256373867220288354903990516017660408774925103839453478637710549722838461341859427391838011625689458445757645310748351629736482734505643382807910551228441143756407979876865829598269412534025446172668930879839142286951811969010030370195096977377400918572950220977754691324667671291187064298095769147761407711837289845508882791129889062630780215406232758370606222641201463872575151592661342147705362924920157558949971652582939973730654431548167270493257491726038325380881927554386108134710402609287445527920530092133203107836025121617172204208950069919117668762425787708772692953325170245804541006577423946343167698912986474440977652432847158559273635977098420864953496367972096268870275235973447254710477558085091731001233387678531261332659134363899005479087131347283927235241009402690606822672533659152175366105479238620806711663734672870187064577174438225106196924699282527297401535360306798325642516444318654813887420946131708211589898661584268127146752478467090220441370172534231114264993646806008704058832984000807306990768378189153133121444251643216078735981605275238039559756338558982679461269568896826577036492965647946119142657724079909814520794483112192410049895100695972065620253124117926121219209653443676360958026281474735730623681488895919851346744585976385794613561374904995577263353824365798761325345515168718510152413748811868046631391881031012241909040784059519943863322547488468534287130436544266162897492014340835903397768831478199357421447937217475466499862624121593079591277065916545854390726897692939912763240374937337286899738569208763888587624889345822826850577606263636215821836301639899147822813690700297770331350566421211544944221426194507746285226542548949335323125811599035216834312328274012376079334420961046152688413269393201711641680384961272950846250782717786827078505930017945629224463830245760651211906802871449067565565318125539868608575362243733340513087654207280686954885078514232145131460949221775507676028240163650482732799451671413199260410031331911798875807551552043951133300929454945514960450070393752245318700081860672332224536834989664922100328411846734254119944707196363277107504971011583573046190482381812700796280977287946244690707607259157191707883628657967424443533935545419087573799470745872562023724438168338374596762088514078861546532379302142534306183184824784176782687573421929072366630804465933677497722636829069563433141116700458357773604540278574033249316411689979074972361851013459933539695558614587933409749242157447865512803774382964953359390129195478271614426972839169397953565908450741512710606055802003365343738408012046416619322884549009078440532414586138274823232813439228044769573240574133088569812859220562621966065292896915459837423959319598377576573276462546385156957352095020144644578168862613681605126918520767208794341508230459418301914391571952956930960302816571728638975275159923790909920727615641784440421888495795409165309588417875869340472961081776902880233297801981694473030985105658598969568902008796726088912927914667658543399786923294753986642498798960930410504566776263503377132243497894027488340766142516145438662252443030915372292930013782662939071235610257554756210731559974899910598081034975623859968197179513940574219475955566229289773955175316078155274130806663612561280094545036547775110052943813516741889201648989469463990453157718660976170057447597985234417845605540299094796803417283412918446800415598445161166186847818397340543710026602980034176992875317088512354379601008283276581103459184427852372101875897218282970543216580208730984408678435105451929229857074334814510948099025169401204103343437511724083050067099725381722053518320931099518194501588227478471558169880811855453138410675882957729874408094127925017769752095143724586343666258205118916985832103329819968793581137636675130445083852172667586155542051266927498281596329435295944186775838744727935992699988570936905524218646020641731543793910977937987256120122517554271504727739811266201226298672821147727594983104210330463186389450459735709230538898799322040309502463300404268857503753232925934369640165004651427347535622796415967655017767791976869173993061046165156487166226951685144638330278991285108855697940606168961160437761702063258131445177151412086007659806676042904420498425290451811848589075823752214161593518063480215314174252926964219739042066051843477212915215930486751008300806671530483541344021128761848537065971217772269321481550434909062880476002847380246296361558256979768201951245359632357864840750656462817293239518564108447107680091659225652680186351381696770725371399961111701755311020218999233655742708459731868936366071606705326100546504857387083588491578130353210126395002247258608846061005618198360829943161795930600115175211653041089318701195908255617123401253126834567683915238797916288220424006344941210038917648073439803179190333056261155891013442791622202274650826420225382851263516532709662718829171953138709660821945989845309513730688272386076392505945035471932446065531658218732163678728023327467599057662632619354354968112989091142437644590643292820728374029156782999176887880309464057424350746435336079760168442918598644024757306904433610863440122064827461263715419025084341307435212801816511311085664132274469570808560814711898407217320717627945094013491298818723286722247014505191878883165728704109178990681598387528490654934012171190810561212132292875602627535196830855256865298829065944901875115411307889822462027124876283772996006302654220933640813675757337370246550658831429437824217902362652920378540920864559497076009956131004059245209310210183949301907522769031820036018136820675602771741745622894135438511112690758528180209528934457582702735743483246721104878676522053917077282064126670221801762234803140826803528097055548078610943210040323930813966062139953748275966754565844043561226274854828585095705984720293917348638921947865687691223672682828775013540559855683181882120365406674139582785770826765301633984499136231773059055853622195837770042390080981206738160520626726954053617304825914321318114488484407055246080374492220024431561848579461712495378964096516056990150665048691984991630093912306121705200650796686249835353507582972703418956814641361461905428429437188417693505500890951603842775800056306502217490610065228016682531353283585547959600979886871295779763581821057526825377026774806346743122559967239196985211261225003794401344452267133571461012724698172348952742132115010364096331492245585679860936009649973935296874058898772755701556554856291184584878298664230353000306998788073677216527440369615284337821705654457522354408735980443529830353271733824972151057457721104990830817987659298613060303505896571499201069909864057798096864159168919424496719576424938202495952707020175497625306803154336725459757680998559711830149498526762088156251487071169644517827129477671125991566271635023090235238020389990805125268784178622790870069261279764062555635493272382931427408981201565129493641667172954255751036994372430262147693094117974163775951675004034195590321512623587157924576054648458382104897935183678661436488686449937006448996233594790728231810775063676479979996882114044934198374507780777594607574386250721554976471251931349757541156744337119545517950740807026045115889949473788804339353974220838592460881062394391005100358893926483154498118483169472058238557416899671573508085274069982421090228553046963550868449582449562865934563513597907930151254966041497843635308078756379750423761371634429666191576364731721231893289058891760499590578977110423907493021350400879387863290091748726467176864094134415370089962731106263535140876160960616540418424263208712996082204435150223285704761084596104872153344830604783407231800636966844425034228441544005398023861822643410707311921352633431173205616156422912531935613074144144401980747607500628525587330333686436092211386179043076920130563062897036641548669579109538264653910069349486617015777349829133305857481521704797922164741448371118553578930484460429075173474861706076203616023663902586596814663079923835292473301963105542136598871257023794389979770180004203772243805231076554277536941031106214791374690392817748714445858917960688807585282002048917154742824772593034337601554820787523673709372876001702603237559005165120155118763753213160513347550053802354313752106281459389273886448222738148750323473501503907130321944593901724995061653273621921282358570580413266877280451407891764972442846453545263777635542185458564560631417050305852028990533786225066459772224104355510200412416309949717109604066103054116534720506427194150428545056717486729195517001246802613505893265191944349743327050375202490035804662086914005218686596459551036851069119264363907098032528199047050205740838668246652236877190744419980591047546526917744197627831485831030534121206657440960979233119116554345435185909327632997216680046918769755214409020138703754330059832483612889725824038702496570165678527304888597863908542510557015746395656453780314991963703711772663269531217811258873735532164045592905795201969342744409299643279417517162823445394648737285914422946461012887685124104731409626569187799743128177943191527811554413363872697899026155748335190976632789539201958867209983434825579212278714538683937431283711488393323678110787905570844079006882385729848366280882127329885775463145436016412281058129088779289997327898788266176007487624685439325634474690819989038731636591050615497778478700544598839694116551878159276632768418038773804862897050359001056956868222391641897426417866520359393126225796843350573306025069055997360719881890857420869235255973450947487720838302143738021743817651799532379396817851784397508106403092368800805617863078454547715596040409631984377721351506652525109077185719852666179350958203508389810482707077606611704304850447466327797692761647801658186659306921202853818358075691922300547025429810547388212092994003455005769930607325161698043428236112401305689602101478720259735623636263265759244993065115367737281011974874639188206939306446223093751678309759276505199312786158323354136598262255709989841980866251297158998438025304239249849370183510071607588773940670234831524706094571382868753022229461564651681972607058240380558222074427777999266202865670584350269158869555281093651261296191301203874709388040620461511286992762161218268084725421158274725623745965468547080967811081150159372668689010877051449367556298608663044737532646121687408647399794092545217698506535420071202697345504591127520660733175178863537446911946815052497468703571606356594616829816489528365177402026954179043499581084154615680688453161982557776407366919880454301828622357978783982704340817557048316804342506336041203199331970201639352664540146780221031968382584871841191143457662503931049192365859020925439103871587373966361890259184556783587563971273292044862367235721354551561567491753589207447397574258217059733461588543801039564491008429500215294801455483500222164716491324147945705328106604219545724691036333338229919596428792853018565549945584363022142019369942101650205112813896367396480733219086494998883875590526198968733232137021410019304842165548512213838941200449897266449760128695086072090895476501011906120373302486710466138608651194657703067033899291343291273890054033231140751876335616007475948488608874557826818940246876922418798810945382824892923044935819869492128166936380061851773724493881786089897317422931367684072814716802736349999431797469881513640100236412243062744133846830802739550918543296016990813325199979251324997539474165601508663625005926295107502524266268054266724960959835565351134376080689969151362218602389024338225456869361481230606068468711136496580230573918946365560300825256464425095825007514665765123728548579241102660711479711016453420157674270978564820243661724115384846891319746150756725703915072895985728393689045681184641086708643841374088611831056591098219690136237630786019825056476769673754609518637987077438677094494943850499687155047401628653949284974892367381981568274707736192194234835345520172457656328157379713042281470906867639344453424809185744010983802236487150201145320330575371304555654359687428356027376097094826600717420264631821766519794755337496536799233611427052385955992748390307077246851471033474307562606694884848122975378722372909440011407068674982773727287567287466355891960645865595327210953826065151298137987724958645850873615686460164588194084458416927572115827521823794118781049202573987869184791685424603632316332389967207867218620200876257946473767612934426999403584138654993251156035958586560290279066807423874323095462329937402730519888371795703737032243535613342152828495606741043922037798945899439617715764405759146532639295953501695032010636304382962372279468896375272220509009867955982728469465919499501834925620308963235402519012915662668628535332202729909354400511859441967887464129354787516759376383594450256237445961219210240862265711598980179533631102418952664589127269579565087752958918250590991575986327972448362528976328166338797806494720501851050251242074805907339706704060640608927969734148949798927270178289762400332568978552727477211559666711506929709332080573256621950769638739906778868576096521168529828554561149683069105587617969674255736396354430603995187730053510730558784062633248508311348867621824763798842959864111192938937108187988442245452124852189567949805267612792706714447522033718077484665320650514861115986239157332302971186520183609365655091589342475312838246574308617849802098476351690395354638488746663264011640232939897878022604404070174520621597752137948600897062791185634987914890420125393788541890391958915203889756040991853401900745233931102676643153436975537084066796969137511193272092981287656177656912122997287812101453606810701148669323077968899286908568374774455705870237250593603865167438937069125332750217142673824547678711390530450872801409921638867747236061883235187642628116514613266049911984046745768304076167596413773339857274765350347792926604411027848830757544687985702099678722406027018723210375398636483528315791505650345235408313799291013240930298303628217995712428647285679944124810482036198360694570240535719645993008142539822212517678589366745877089237441797665505972187532702329629303295679171747615210191055543618912367043317300732236336292182099835953248266815033822953155313640837039295243295661012081581564289383488738745904725396965565079795395973164425214942139464238900749758787672632447653330931712023001472470591583671546321724494622463007902962669012741639374230130601885440355867018603915622884123850675313227373886846740191045170569106381481451174122328528435584118922999498095089352488532358067869146251628243071762255900710940319549794263282165506953993738301342093547283742676175084971899725455255640881601328209628660957876615511946039795838600297618932715004898688120522408845595418329526646168546043156026114377568301267616311486081732730669141296186670725730064457438707658565880990276021787013954218070491481813946257589068208053732082788852811840294856241963023976235929925948304910165112311801353013450592597708797865017178780664569171760428044803543430121326643429575749000298855390167286142728973839201459290634684146097323465805917291405808749392537276237855985363711875757885510860053244703773538853507045818322530728636323728366506267776964587433684619847959265487709651666820961205143082029947629819842274538194115138047748945084585573172352588754406546140363599918020145528180994883405351372736150829598174408580721797733713282710119152713349178090306219305898298589071157386018910663355671643594005905970910721774948321740907131819608099147400819493069313128624283876255788380908634833550301731706368092528887855105164354043173549414196902506545361979908291933068845619784179801772699418286882821940591516789490821194800975700561341965832895716755678703872048358737284058316226341476911282594713971230015915959837025755714623929670425578551226373522932850242515927946797353019715499430944068441228906380162320406381554707994203819515802132796878261268172097270438484935168135023994646040593302012403369890779256519486237595417075852325054725264001124108999730250457915259235675506240081583197505337498221570253657701599847341658971453408628635660372788015049782319854775661786929957334335763434733213507814449419950333959068026517424538175884221622114642026726604319523529522826459221083894845008316639448833161032429757382415684838005269611724661654076547610632177996394292234855328297552206294203399048768114142228943339914135305739441623539868627243770381257808199803577598219508573706923051208799770742721965503663593975287005157986646820114808827342854011426780109643211225516764548719564291813014043736358268741406514713592112065112002683598223383540102288472312840020141669171476239511326870151937066383796971514311485234913101229672245269331565659143834539935705325364615494081661846808324418965099714580472049753351566175159932883991347965503737319111092803788094238721249842533993280547075266428610209409204074573819607905919739294897767498095992006364319431938699699502488127339187339242033124879889119483858936778609741547986157653886387658136917343338890243460812779165762210772774428914685782297958078288938240228345438156807545914016281318871083152633111058089917764426139354168180317141820217894361977356499105755635218456588119517742512110401839298309917804737641108954514993909830478077311646982129204042540460082278088761937212024465474501762790079013333764237248497562506992333434226006081008631585695022746047508109415084395428942033300954582200773408846261434663255109941116103344434837579708078397150039206965465145914501524868239956374044191528553242058291819519342380896696282342906073026461946044845122024510115708254662459328184590004590805629423804739126668165328360728882368067848823104140624796775696478046964541875567900025466193281448279789055088150109416133323218556154092869782539725138275186137302147330464181851739421303838943149688694664726378736687521858068033375480479366927937064174794470634456721457335615027189196182178774934551413576802686998689754095886010390709732900214182596059870455786623178659902160193389982157884146377440378873317328714773103472676138840385195408596544995371479413005630716342600962767157234673133881680410354189400027927293922871735026306575894410698570926834648590310946603111011699685268109175369247432266916800993423960850816810209531543668277566761834847109745891183958286829638475041534970367679795784676439999954512687100305867734418872143364550259981096297624003564128893239636635003730228936226332015625060143294789712227562973762365791883051879599126835091616390601243954595110541751067603106539430964315844564840004667984140992963458105519335096575494978706285781327896284649037419390508506819504833691594049288556337524982259618297774272446231701680000766534012627555321073089241051200945374516227755597670511547820646984615094692560902339006340887886751521244989550185851075736242653343186512039364257231318718314242456637230173072915679532220314429619696768748214547689950249657915999795506083216702691766513858782855302776132688626800319105410979432207912809743078895504331446502464162067588666999261990878306009372830315682260669828297821074379134488362186125955104449478353043964695554358705429185809782443180357258610672879822410810368377289607435075754459012026465555430882426118106274354735544565799716500341180764798171306120814279726081466259691746374321400612745597052136718934184965167295627881887439473464946012711851118200903337547610937685546454549437186588391210799827104002947644453019943500578586868647223356042125086340352015857061097035922946423201985482308171905357867765286866597496195174981128385541470799547325357292655174126296222521244352047306940089109202039237025380238309666147172849983413593333557224605694905163256094274842093993128952626137615336895980492821143673267919358983255903184327620831741939734218682575833554123879203274493406144527121771511618106005438281713510194632933621822106666525369154489454446068739234433501117635197290331039561411544567582760523784237048588313981757947496146788827731197526948804350564409432832948580099501847875811318054618789901019453200334966430826833860081226505139159882682245320633699260682765043114552091591543606170516478985267632059580712722835538436662904207034417247469858133628903523948285610694331928288544653289924626592274848245295707848180208938396411551773381839988326341420564388950288757773578497960766200955438418528008591101371737645578145596997993900255235541948178847769337585770132064299643145483340021062439086776548056169908601694633064182001769847710230521825733022657576629172282461659616266886431157797389475281590987213099678595421510066578398782271893024755675606245843741146251468947495542765727055986176699835926312223089295103956194577470848346389850515875198714724547909731175703100345503916675366484422891539432609898514165164303634205258627213968111048790447058659779398125155217662913863314799421084918006656429812001947876766497654368022740046631099463016965410130049699755752978646051948771744854874740108786312455809943443534022359393204799312189686217697867186444690803319441371830283329039283306406739473542188773984923789240164632718313060653498115848047367852944172456922209757113536354674919321215024784515951970049094588829571478957201895225976744111579898719690156282066139585795828047680901436073016435057378552799218502679615271900803775908964030211587892108868691609054963454372601869877092685847421514529402556133746937374413210156404894955417184338269067119676490518988585064231129384874309101850482073099798215096576591146454959429917127774801657654955517224235917999098962249455245005218920242284744980493952833731383050070582349993503835930502829637127921341994552231424831236034390813036298388379987183533738870026463384426711658437790176790630719073215244236729656364427358004099163439993796548855348293795060709388991428424037924189612395003349870216608716292015820640488462947779847194814048843828467622956173605360458967828950396225031448019060494447883104012744249771976964541795699365511788035010838960770391369291469810223003850789675334048744832416444018974383279436687829077674187452099943726561180370336607768891203114460027046544266711888161826633281750188354316309849568194426389460319409336371217386382602657465602821930997779849085430732004827658259005700550559241303554628401836097916120405317404124857114279286155628046651439121568815995017898976864210675334309864960940447791621504722236211620832478332306856251642672366589769553487243063054654540133928432391496482877551520588569274549021986631496614547938529526618314132332834036412266323338545993423770498025007040473633383286710390602620851839560974742463561711895048421979494912983771766571647789139946624040234328076403846221153878204814615488691512493687467118665730018748795488818291568780943739107858131754109710070888639042585280800913967692928893231190944560495972571258117913635031903123605733715186771066397481766289131129891937242762036350948161911549896752995500787109127897674384268518296500073315801114915225463928247897278010357177650720649309911688044510028404259866688305988834323706223405274766952136090726698059804489802838637647857699910397662866947248216820755719611991590704486602577505390825812781415494261638604768881625550972138381927977700524762038539127013291174901800566921436838498578758996717582554466460280539130343414210799157810494537597678063884574181652672883724888215638905754737595942413433746938297265539935577581777213999978715768352571851451412858023857860423353573478219983389349359396789090124948049203148398966109029754121879221846872557139638587114864173918824026638139423109135277504352108556616407057048016222011455447790524398800589861649895629375573781979209011285922524852025266220578233896121877559039855728446199320420204299274717801867349103102942259604454162804369481590832675642096596380283793249051260302913662030192570590811718329565053225904623689947452795585628169860599841011215290036196710174108018505341979078470682054114550296823152476401637402578760424338239330026652089197397291993155552851023465364410972691890185513704331112353133211895252335735945082764172066506079210716674952596055980819654720642306556987112055663299009246086765297012250182209066345642398278282878569779520271176916104310554729232506212176937920743621893139109280355265388927192791520633799753294756546780160290266217888105454120862686777060447009914518243205352198589815288516715634827344289731699994990330224247271658603193504257919249336993864276128835421675647027349390905532226881730616559323505872803166018918277396447581758082253608089009040897510811208941154008938252111744951077026862810440830796091677295786874705966915941356575852438501399226373740791958944851958437726003467260478815684707676902939632941805019530295956806721808409804926273318611696671636236082769805537654155849144128239311225936981546689458310615772482274297736575560921850026133866898812778867091697825441147650190123418678433628410492854038050111295394221456460882504312391471160014526146265231611467029803430534321329967367653473582347358165813802524609842836394798081812924994603241848096443764299934964950384416586149579301380720955755200885482006129698950164592263634651308823861992342629015400362371159740130322939668564615838337498919010402670810973881732215145941127556250034380043044462058348185190773267936535268495035515398391952053769316072158216305873545906787512988306802277318990305755689119459004876253199728929912364285325989921729984625978067335137477710873975353230252951837468171316941784374704579139056211320718251712949855843103917291551222135296005986883800071835926957754285729074181604229856404031449193903887905238184349257092003722360480851502468128464413489145754639924925787123224214712936492062957502810362156337509815003714011632930317759055171912593997926042525813444881894157272187209775454330201939133394418188978065220104918576597587737020390280358514940514767156648714353246682884938051281375137131955414672530789093118379558432165850231254771183077242939384315984415779869851971448344617226152063594106547257406988365870197372801743448027698912380921045726899846751873321157730642932043328878708191555431328646538071281431620232259557621608986453300045547226296239632783283356599234290749221901513226269829047714802474110692787456321492238438501825891720691027006765672860650768233669745823337139261617020888043823115497308361569203744013630491799017262427062948112278611682745382220654279871305217167857850476470153165437696414432627818878316067349288296715863978142424863182232609698781282333331932411334846146589491419502988543497681405519837797664197178094591595265989343839064167590212838208558298561913149597093606757971753010112362694543897754211717292388646739606204230435405594121321612797541425970123771636171582293016885483927424373058131148937671459105400957683825352402682205651333656112476819370966970371185522000725269700419653735567734944334537385353151783468287759236087888028367908253434648979530294604229911875700214153661110098103652824608938902248232509332771711233426580241020568782390891625605878086795677974481301354649262794547641548576061987486045934079417174886421901740271742605758892686639568997248110168969149548829058684014454788996497243435762374819630369658291424548974462820724036386290072149478008531489970246629808450870945117656664421338627699567272449880388459140893893445157059750673033817043666480548147395703954039632594295521630382623564426959091005800662526326521766610009458844141597795066134540424059777725762609368560282436292287304395761640030681372022974765963356154899567952902802042525097766745950614065824527249636026531600283922363920069789548973582646010263248984637578681597150488326827190677242211319570363478114443363228077255059575968360711190796388150972202309132177587453802246292788024343897827269869678722576524722046161358668546949537574975798386048468102736755807231866271224786050282008451742145517433416328658852346969306039940282935991307434528868039563637943938082317122543451023984403397264137501034035977886653375404715429947744295922027286133407580959142918209519923913128652564306558105329817495802069100855464053651884431201492487860488325729742238158115908306164949777088493883936398340097416097771488738908286981999755037297964291262960437067578343462455764020230729066649847985007519870699449414006719930746665514291803836890855277265548999796199311295066699355927292504869934469711794227300468088780498752697353617638665566445869069058627803423695110519061518472956941515561904483355347274313489357715511277096814833893872180667803863660855594065413122922248371199945921990633092372131003262930474926709022071753943547961671014462817806288309540619122784574896714987685068266496217523551098685911667927308413163758569974732374595882258538783874947658783753620298275455186457245215864389151891668385982740986481319753396033126851635812979527870548500853418339282298434500875714057939353050989005613264243660667683271215386448761813488850059707708183285188994030225375486608027888702126290050240593927974583275388229100832282997614573702128251410866720816103333262115294528718706393534682954453930818071775346177167500110139445612417400173805567047285769274857661796767024531980621046271199742059573987281812574558769670938813647709386695922832740007980260956692742260611440602343027119451829521854537163465021432973944965933258628308371592395084498591200894343524311862095324995276372179140632800320459242517534409128923509974541018220182008378527752903324513754149018994134594870178274140037650031156033534084816627324863120286113319395708931661397368553151490999989380027223572227402351822338346888052929411490557527494449078980486663705219042532908810498591056333359370465846769794142924595732657815221804364653908789211824872333556345104807449343353402783165949701209981937288943566719214026854681308689805023051214758391929386862212256308024095176320789830703367507409014873356279243953498885473923771897683939682999672998597476139757462841256504253803302065306464090451686539524177707727753900437944321699155099598190638881726318683152665454209021119165518205254623034325790181558611967682766672551976184549296041315219338612889649554144600771628065016722498525222218415112791633669222942771051460776847706037574881178067457785058189930216330220755030277948118476360150738106431809250341913626181247546383761524343779187282019767121612384342912544449687172907916751298159716489077697603902435044411552399232094784014581495968928575333518595249655263190773741829931968101123395099776089248727581209331931168961579381684714591706608298272403092454721645052201619826904730434421080479221669762100863183563104278909197620029354662160934114281154506049070819195764674053741800826249357312648048567250185724064220602682346135317499810551714756675358516082462304476195629303537338642053615736113365351612094325252437699739369966515810596952208434441042140432740810214520154762197547102182428213361604477806224631571652539347305405942106743480757546255211950066008147307815750670529771723640561640930832075452198163209301816568165498901794319050461260792994790609760386749262655371539469255401193471525799117474141998489632663622257412024964429949487601400539453975641668952113036482181132818363796525531591788348049077212774626185000386861743270162892104080578538162235447735728946599311528640489316097643861998320501145338600172346996424368480801062847867655747453556549563164113516461993691661592763870673959866455516370606523393357459218501359033031980704205613842710903906637602994641063828141788035071002879918468597741488234757145659578009637269397776938549042463921586046009244509167939358267391318745999291032256079612255847284820796053521534083211166820178479803774567031484009751362988267433272570742797955523751257249938216070271796792475878401761266795714720262349991423630575728188357256038230079440184942148358673973844841231035711692631228877071812031036731692420898213734477677614351359592784161952944292700358543962198853804714564057322579351204562855845780536978535797555099646338411405953278028871883749843091923490904221217313011342517835720211329294261276862638909282184319200931783638562770067666816722741180551707376264923378273987893279166828083279162765796223468094280253822087544440250612343043017121277018004604589805011568869004686054125338288825558549876464042645994135435334635230602130117408055510472216745599549399449122049101785661197526280608723555649400695674826621083718424218721852182104355000850557520656836738005171992873033635647246311425510239421291041103103404744464106464834050765615069880396176392459640036568077555755802576858863645773765027841187391360538347831244758401762629935318382494350039443501789919955225088734518425926168594793363985875175344365090277767682960094209111011146090000843134135502912177325871350604068531144489840533302115353665246179489590775201230647786706407337921770673235816499824876161702450533294910238025237903367849665770145020631595915327408419170673673738731578109979096307722462606751514954163385388501474354374935117036140829403429929602477791933816046148953993460818307530780016470198800706630664476862029255856823140000558988932914393606616668145158422116923729131930543501760669565636916504207275644407647180786836063271104353123343087050204088869928706303733878673079077415715310305820440449119870049408987140800307072239448873790443416219804871267868646100962487201102309748126015037404872998757281847776817914739422475248712210080167132811204991817678084805824058853037805037389885974278449126505529687226800035398592119764286350867318044579527622377686163984630584177536767274647604182127743825166449762700207272076556482932854363254662293257189111991690192156071566297010750935701376347722242637602908840649034163273951632034097194129060816736649235713196577548352561705266925504926403084927427390671722720996750807857447044156446154367490219557577224200412262564591139961552161403737150878108555747849394172351351248846590533293341349715911853967854022703177643395184939676863056134482381241134172949426936120748850233824654184127893002749197578251920494016742795286949567726303279898696129021560852326238560789897499945942491712195993065524806869046573241376726884560021608718499701126465875125868821412424361480972829769219009855081283653208819231280477123862227625609572747694579854563798905781811116514431792000095859231372272981199887111208420569446863739462695329613068703212411453015577066465294050658302448925566859216781706629994692015580063890098923846727247956906186813480431513553645862122635235029465507820590298056226714329665873520273251158584219179207727954362923512282763720214813029088511089381547162357447884660197306758798605472947993406887572721482490207970798577566811297218297202466639255111669747592177818352310619957734532698762885539132944226008071093979338272183189290887962032179296490318801486744791381846774931220570752518830402819157816742393667707570378678290089857364094055082073592319742198198785545577960530968685913136491324667636064057817257906335958454396531038303682246560271667897615877332711767703069800089406360348471473317472622165419265760685846784880426180565787010426571521165889278964944242860137999697796873461313589858252225007284820181476050700051621367813146875351899313102312248934076380751930758459680681501347041121159274162246352256815883154146214428588405273896596560049888623604242591300578782460242349313405653298954689109227628251615363164879335878660215731814563108470723902794098598971393562098385417842615853593660288767504442957368090757957384736488370534349730303974532968884294894223368466488090139623243648616021580935077859029965210623198555350384461464263510484658840042236090431542930381498446820459534616327289237548406912473216816020336209587737320330640213421578531077151888484224680763011464457092244896433861137264876518465396889230404274794961439167993495333913106728831437985193782071953912572635874253003687853918253581942997771504781018802930399739964921774623015009236108289975464949198913745695011715005078287591998642961370677867851161531591048584753493161688968975976589341035627755301882506220562094652858597495635870380171442664422500339808806548461749469087082291046896778951485826173562906185665996020714856104981109681548958120175770605886397420854951206184142443910556710738927994886063511120963159824642832812496502558214476999418660950801817404614237945589165920190241754167045499503457754842097549021751796343025465709342047580711171611864598960225861360479129657192914780123820443812864068350830708279110687308330337513229122249218250740810767133040955255073408783166203209718450046810619260489923590888884216464706986313282052963261275866508502665482882030072530413383747725154780390023660845481925937020089330024348223205068672889033008660528533154082000266661896918738307821172149596525681504379049652972399739811587499936938386636550941033643694493905023685049968461196262808627148750786095992857604718436634791233556537967372023863165398362518475094113330288304537190493054976551640150614136281641574673430457308775418549150132284567417206703847345647884763686146718878650109930308677507942837084628514909261453781649062167402963171022657145068523426293496774491169853531201697102108913054611891401502390757107377965520109416148981269648997813645791307652950258190316615979961827687297810870705443362919931044935636665514839931870747952585342487432512142708343344553436378634403749558609194194151518819259429760809575729913937069127382427730930232178212639319383193318411528452374266243153480182222929854932878579432049151754034640852743777425997701903683556215735066193009429443092623270459091967843630572161876747888618340619426035889507056419674153147960551453905077603317899644982700676696678333357694303736546212521118909757802256381556185605621274492394302401571144180589995590705563423875072001544209574818157597041524411352779004215046349842344126102294283215478630050816656739312405548938628438220641271365191155274786477743638949761576874551334838915793717804223891835067575044670813569131528217696587285419171530316738309770096524971557999125635732944816906700734168392445690641982228456492298151746837656771756455270137583815840450012431330335169310027867879868230545843871792060505634185885504798259821628256881295210303572196287522714430024123497789018794345134732300363095194569260040210032242178380928838439936279396036404914101220909284578875450656693984403573028641776136609662246921045584276058023144546424181296594261592208208919597863902026995174265026198368933626797379643678833467551729429526969141887351168189858561997208704480497422680692366231057189585969307813692105042804306945851734103901894340681345987792392907344124865880275814107816625740586952565304492053488440756571219621258732014833067730073723498092815867218136850795505218075344557008057387096143114736905338153027702908888619738055873008828511885292308102640351083474140787459882822080543139053774166103332652278911438475369018528321485183233802123938236671005965991472671507550853420571154637149902467187005954750596635471041637733434673065227648134270269142211390146413556277999054533398816777421738030586246218576164108587050919319543966709873675723254406366064945876420905111944492350167539275948834518716316823085558474873912390045911418519868003046128475484371109637751003154035545353037682698215170981632837037294704362315306855339799996264977139176200558321607484596407437759255396790117757789875509486077530577454845992059564780892507486550223066910448172131867253295223569360370167481238780282235187651829802579695592650843047021554665849165752912796769102618450329472612005041327008703931975749140617936396767242958326763134620936740024352876597698812855142608007188496451384470696028905254642894793457294282596728275028329417039810826737865356599716053462678367387912149453749787089737370494885377530051224480810699639592212122899983423435584034973335623227429076079778723680804881780304941828225415775789931415083210503918700949889703084521709602609394115964864307639399957344343987878627036088254712958032896620855937538207115208538089324362627859739471238799711273436817791403357294395957538540936525378745549346858048512301968360763853511275997070406867181698409760235547714855598930728667308244433153435666512451612791989318828868775860755124646687315201099782178246664316231402703510247778005839429412562623863901417557597148751817195808561514576914503446119403747711498052393048949885170272341729833337784269213143078963702876990381686310020284226010457040845848056291151638326223253096044355575031056103173877413924775962076701578124519963524759902937662201018011265277565401524538662024520150991304134505022690663928439893663419583014296283127955679687385120524757031395261227315199670710237243159412109945169462757169676863621731092904032226333233448491661139721483723142874064166433766479109441502639232292291094142829959038151157296953296146214863012623651568107766253025023917796868789371338449992651701183762717650506419493196005522348606722814129018616830627138750207818713392347425557037271349753395467607182995150237633838833392606616381136152755955699225367473176187230690610165896199021655387824593479097494528631272522780485311558669405615915806208066674468510333216396146284040263947484503085689935438777648392671076580693064947360051665943565214211411990339190327966544363834015576102729507079154431602098928463419280520403015615514875416850265596939303442823897754250479233692260044853767608906238852364905012785387322529661167658486413387335125218101701660023385096133329803936676166473154183806498498209776579199470389484754816655669326600667923118490565248019848638213364047418909993060487683199786754312885966371360834528116183709536207655350557522959378354633987076658774182509438065090196254399538690594541198504075419312384429374302164512158722013114285786613083152897428803613533497509272365881576168300127154870597124756480891470923203826115174251265647790019615628965882185229151963567440648245391850346787933045544329623690435943114716119464005334761247702191583983321677920746214439660884688707314314484761867452534111146102431500153280100033527390283792911466242505427104254483679312251658991555575427275577597095848554737937471430001805398780078678741813931933887215753380037656203792801018918178383112796132561774256026416102788871534146722737011346861259391245036231574918222086603979571954595625900863279949656016712406498905884983330804498383322747053383139967676866300323579766709865626292031971899487290724584791928989353312336646239948815186608913895358312181084680207979023938126475901098337182856635290373181305949230904809766254808124668585497789350117944972889139286861483292144068758290196615279222078664017326546944011462477099471484493172462628305549039277106687803464214127166600131182763610495812672909677868705317627925734048968040862846756834586030958943832041335459043936248116121825973220396515436130235970671944057536894507533195944128843474585997586889508291507025685510432198572054483822828312220566955998093319141332431176707473852469291314333457477944477802821068094526958002774483296722580126083056470605430951244341531407464473544460417561829596713941893398694540060912454835264223078145381773345547572435091417105361684802728993685219631978172561548659235092536902122209372470346134730151973250707940585199347609007700312217470576336270907189783940592117282185796479591258690364081392359353398347585145785334972603243264708236389998122130269114245941762338839951582623052742484426893408260130972909411935976567763983828161692902583615057296773218270740935231689823753250419629374462345384548787473319745121825787701156214939690839517452923598090943178059164950559474004374360262335612942924564245415469667244990486923917424396044473270207016735637095084619247611592063824935284354777860726652389700629320929589856627988784863323279862823733884943988632248228763526814774001705836014484405277747617193049129516016639229670586627086217385681386613670831784381346620581055814867430326665467277539198595850505837512198839946458909638548612830483791119336223764392194887971312402350044833304988035608645946319650378834771107307123467437616593460584599398503274006530817797296196993273639043458514179607451121105343298030358857347054073263384622224516716755742749774197230259146519013706203805722461196366595294591111608987653758429523202605483238647588476209574767610380258478835136753179506281083129746834279882304753616119825348951693410782207957989492876632436280883556081033485627578998912453403756990551923874200869570602058071551408339427938793034164172265874516807246587326305774752185173363564810806893565371784328197241858332927326934114283884098140314946844276405851885777545546444457332206576334147322351094851833938926905282250798839854142019774728998490265069230904623795825143667003908464263566453135004237824113836777222608312626955173570973001129798397174994249310297528112488081136017431459994208740042614926738516254009767122697436863776746901631848297326860953014006382937010202986618545428668552362501414339512877948716550318252556231165510001619807501479654029054728603416920392606081431235195963058649068941230405125343905535582790003826570576034362740760401461181350165805730105118105443883060252655580259268779044945218275239343241926843330802402329123367811934402404166154820261776468809334653991762525184279655700143612956525038009019499386176693102489211892937330634500132290561547032656828815439650185337137308425103102182349645570080924894601265527161658938985832943429668740347211452098921629830715823726248869666522513147802497906314641280124953784591021437865346896037693362332565255145997236197567976679031318054330595681316562106383484329877043304721049695735349665659153183895423307025611297823540767515382975743853099494438919757769079990591409070934494987215959645599310661741102014149005268887755126726659225964816715466034916116096512951501874641913955076385839509651648328051772174138883651302424774283803385058643852974675596341619112397078426301303778270799673309897232299224532842644243621164138758270330721472877586273434260334075840497494978591165498460267013311011223638898751245308250299063401598117754167592372047992655957258796183136148622189062261454247552438286775479602892266570314177528694226084227858328025003801790891754815629061690300974540159225384803184861327370289046288488937047581961320253969187820904860164595644878835126917720257453032134146717629194981620841677190047883793466051455804523505188008164004829238812174283047627305317375127520020328072211626291109092212460720563937188730310979521446581038388297683199797637145665839787352067191939196572466295474561229124790731177727347125198069386614209821165189507085438785515001377726324458767391002285930027461733897813669144144458325478094826680114051251650011837052481049318966439227158857397774904349413811471463875377697786223172755313344950232128549158272719550158493483863885652541742811601773978397997121437344320711834884755875872916618912758647720815722831514514336391035832333806794043201777361810941633952433801794200106934407509361023939778429401964721684653510558754801527020119198184794526467193134491655369856294427243281285526791216796674116798333904349919063861177600304244829061463851839634550287375017520546311964790664003745884087499313644716222197205024378941769581381445686260100900789137959129545452178464187851911708460785294610860835487473181664703125716122754266598318005550161347977819642852871136842187920965535234624182875417640572088666905343521118839733825634059224643418196306857292507143556080380007635486933047223495856564689446422453781844547500551247132423370122360213044318208391101283571400142994269812781883080382707551914592354836390601214789513119222030763052163841904924007732682125365883433778848197550331162578217974813073138506595978549128916345773634466550783400893339291642348032141552640913060124266156486624797127806564041560589419432174229524959754201737500922542933030933216611565269369208190676795095259900066068265701329226621043126397567263083496950751152711430209863346983711140759002012943735711507464491814360023069202006427698890328836679869514007674645852746724128566087979087916454216751980940863523118895387365436173244270789972291482681376834042110496394746450852288389072174328402284610272767511673918695749689835602754810175400112073371644481604829773138509066899434498011458785398814783111552181294188674795901104916935443864849417449900572379926197585324812780263524693494609993511380889154911816111560998012091603673986912333141838298199447494777764757865139469718084504103592977929378623022851743244946055352889758073970387697466853845955999279282403200086167542740416151523940586100462005361878469658905612528387140446060871821692114687895578785653100758664459089720226983130684484384929366564868927252084740829737183761433257005572996039436740953133105735562535433400010979284483166638289118657630419123637169367892210159686964533055166842131920448689973911954385500365052583088718048843564620229375317133492635754915302182402151891307154413856720577971341835547131992801677083078746004117161427422357333120418088948459554551867725650278360527325797000317658145213196476719568343564970253074427256163395110738372227778399079636584180673543754428364132944714993522986074171922117554212747714413566505942978756638794041454857803233470335909167260990016372269561773328565241624221197309533636332543661150126528644645974649290520605600300776407772770793002604691752992742650646301986108914016281872094690604956510306924609163189992764495282116435375681004342373228135119522426122917252095159261993738205020110187892049140890225632238303001633973821929292760901276531284590164255915964157119571922197380044765419419244067843220911081236968142732999731900481396892382263121023124871322191286322515138580484144956882939503795503076314648596841994330844697415546966064879105037117219181580043530338831012771009768258146828352908829706894391326832364320756262179376393683771127988660467359429317256846225356945530351795683615925876956842486802421469685267396287341494191396877746228984657909422310361870114314862491934721987533398385345466283675740412650331294820264641613846376313755734945083874970478551167305072120935188078416560550543427985313366029072303775886425427518693364977449943947998265481194306435479162755515973761169865607722210290351716953744110628268591538269066559650865255087101554947625764729705255714848088636692943045007305235756346985415167554947241816314179971641859302030989293431957083089015343708203004394099291194039822936177659480073552962420394399317296894753420854538462584811745146007140006918650933459883593123282200249094290408337033923332200245990655428537670246530339500034297251232489601685701124670795733770916591950889221859221490888415211874091856525527087622423448172862648335736479695075878172044525911935501592059802030580036412963942987519050384968234580093030237965493092036910015774469645554683998384454610034983564310444733603167329958361447301432466918120014323710810543078499482013509497102876781125229606266940371847111743603255806607429208462800369713960032271411372345589715046855767836643235856420609109792179916096026161579704946984783423608614438982848840321154499197018599740522538443526938856315964720723162498151718108837451526725958071285211498517413690917835051407940819688408648038627910676638165241451462073423775342056409466028336229314603943200921610546748109024478984321667728098964359585752607674982123878478026270265167099875370179402588667253892352090994102684202495298579106216752637119047064425359554992218166811636598742460480472409357394184003971080215103208303417520465893987419841431142198251447014041690965242013863023056819992496866706653144956119136514841571528956645639452605594787916152972100604212119367560100045706298908156481315098311183621198733332868077131583649802628435655418246647538241293543922412069403561189320659325378289741793064878504812008815434617989668880668011006760486542958386231336577224003489036571851735594731323600073058291878097866382904825995730767408037383202078190691880179790248772222049561995558484032541061716618916452054513897955260224406151504943367344472486754847100643065018079262582797865249023812558503568573731024867223280244371419666014490362087278522430985139023425622340022241883001572989279373827599158303222220321445269305056553129504350478814284117471253640499324851865976380563132774010346119301856360435169745970347255167304032047997043658672005698530660101410117521946498473450758506525165722590653521694132106438437801106855946012661794661768588221988407353582883614266868073503130196347498490139945006075851042629814683670293313691696970198611691134534546112476314400956236377782736999601293831413865795507768703939059411947824025444281896162160154942305636155630947753968114281263631425294182419351540513070562117258826461664345377609974298511044546885144746610456777155858542452635489258497325724559336472783516924592183137012142902931158922209004160383045209361515348525116356210348100205318966147350651242620992676310910065462271483714139498855458788507752035229961058134715938878360651707242983935379335134023138989526899448315752296196745749062008442056022183728082644655077211435396962822093901149734836435134659934237711091014266680058557741231193390562818714033092309512612314289636734796844377287116558172692995792500169182929918949077791907193800717894103184268538186098667437701583914997275192345182077997227944420269951764772867796052054653705201194577078148562300641629400632072773012465753559450612431585400815528085021365387621247664583987991906648657902320938672825239937153793648691404648582830059940889610906034856509551608784263104853579669579866794569023952146106227054610677995090845162432570069867008775958899507046980143808267603573956408662329907177060690120218860601418998610536629309677594818470002378870201534690338860824654091349307548335307915388083134151620371398886070465113211578967350377115161080878428184570332582216220265914632041747061499553722564807110731165444577883963349716052933645248644133351589207184120089771148201139796173492446055399882709176232140925614838967404488238858092494707037696642058510673426170086149282645219868163578071819134814478098778183647639238665176698887893902156892049453509324771907550373470212445227445019308891066695865327463440476339005799543237116189492737503166592116955574253024310329069670405271643278739347039036437983572123714323728281819282003585940849415946410060049814472339585991362003166011278075962434055828094872850201250630979091562154525325029991448009724446973578323511930601407549494850077019830088388225379316459841738174757240832009767729074806297618741090993707280835529158106761737885973616473253104828900305128528125217912905831346408638514694510054731123125652476382125249309609529618819057920075150017139918132421653085248336253913160476098631688197512015854417977874767639356744481063459313405814413736538753328212857824460108699807368117173140936739536137144939437931854191025595510827366886853783260588328807083188940399455436817986984358619466989432652615133748951958299537026834323757464879477442418293098697497665164082440367997416193918676677656956205357633951205348208289942918624337793702174652132504302171817594080673370171052853061392278542307119038772833534346798914814276014153106250613717500464932594813755979489220847135111085294969881588186070648972123170327986740327759840160056005827040241906718938930387186821031375853571978981650655502023598833150114466571032950090612383524777478917370504861414042610683245438645055980654427070151743452101930530076075946881596995831130369411488964552299207059906067862363040613797372101464965007464919201713118206047028812947967127188943616998541432782014905788704892502686152368277412467332184047878068325903712723073839107177090176448262374324063544557596434642086239689851447251497089225956748925938757986161052533637297073092997086012516927550686294173797118799788695241944435690061952539756865794230381603424340443790081293820074607096141402611209241349689838067295263980397561243278524685887930913339086631622843697251071769446175939817308764277531061146221716268012744834070712369561422072668514237706183260426045499479504489026530117377225849633591543122729825607407570307966728762329636318064494104946551149687781695057637420390663229005131028880348678146303204459712501232116855309000994782678781828190427346375158926235921442216925275968500314610540655095734374207806586895106043478095191471191972305352199155750368472992094662273525590229463684700536114917518666711285787126684594740135596580924385025980036114224761683889664950027346058996409560720158463982349779629413309473500067998170698103122690687932784511259293619249677631658129863008866895140360837448213382871847279049487097177184807058826153652086157128706156089607522223427738304145590641728324976099181223287146126757041556821865107561253935871213365997273994924179719878834869814939201865458765487362655496876873837931341039933029389289533856220988198273226791190052712848099195822571089783608512074745310810380647421845931943669784261535914957620259417554225279342563252014849417812682465645472152821820217514863222522681392221846428212526738464034781467959376328746620677948953933050569083932942345331078478655952144690932425988427029497824567911878649775503844145738778654834383083457091450326451710160903444214803540293701575844951193100383579842238404768168647233978749960309215584590673695756048940070081926612950822732426107606428955849361946345869601657419813801993107048145871828282719199284522373154189031786833095864938035156798959982796271399187585935055087653071605837265766631335844438897488295544754641235141637365452043502414090304671110460398597765884989523030881308964330751299610127210681037842974766717460152239697180188088255946803432080183232990001136543521504440741543826095941024880446976594801191792916405987830720085493037923794739791850569098523435371876397866953359780260139124002754561971350517626520514964973492053844396456582121082233214318638306428028224328605826596811137842746619382040612258593552914272158331133162588561849983635707542383862951928986888926421190670725575129368360212311110426125167438303317921607502650411108155873709470706675600724585362597688196420099284364349216740557367115733718148208293247006944270654191327031372464761156393460709044679486737842694306691304122673224423622559045230333445296059811862798309843661663213966004877143222248850098649836885631678462114765903924609444566098031898381715915847186792824674943859467774685925031587127384876769542636896319629783776546620354360155659294040697761679518947402058727535811889607653555319788001563840242904320544751647979643684527903088382181042516225600973688534544577013232683024061390187958740153483254232988641257795563352695139586666952791856877463038951147912658433665973197448799283119769181330376655182840056758010821931725216122596896232652675101796823956095559383637733406545568573499761592721289411407302936930979733104836382348734783839316951349730244338941514982644218660239600562908464781975768232238230853419187543429588761624775155960901535579949473390837475313247656835559794475360215817025193132051563485699329175539383860697680846592940320123756782952570093322206865199700214466939522236625620544373325554333013066850599116611686847857203175096179520118569503919754239233232720327798003565668505418135955716466318950834893774137966942793991693253775386605115003865805980514956587385142712093470829313231350942165856702155404000504411108292905648098309819237129544724663995522687363926627464476785738373321324245350218935268996464081961393547286937812199449853383026084229149934451722938393575141186478893198923164400088591341010104233928944468498034513765949458488656790038681118790830839991539483511474196943618954570034118787432965658425019342737905170466446471307645909597473439187484317455235707992231799454709537589403359389819382013749826422332350425931847853088771105174067431279853018225340123554460351895576130970450645833783600833892489765920705059235409423358574602645853378177085579608952317645962316633257764312540272770306273928121058745865933794115165244904249826561821348014995585234021264995837960507091208759394086934471843930412107828847417305623447529833993634138522485232638710406656325386718804362151837572559331268199725444584193911638405919786870244720675420904575837714898430013805726948000349343665031001272780338572788126704819197862004533467420088254161440684412051904425236297311651459740223195575654720467817816858367932994130743111649267851420355032422809515004729763153252586878561710009697994449569438457115064455479532905372494673026210131235348112465576951177735787362219802044575830551996852579455865070133891565201261295211425431958528844972197027656091638069898292085874508785130898273710574009217173056248458339320323039725473505208459337768546303656620479736692258318998469211361934169342834506455421628608924720026233226612037155856682998240692844030183828316682454341881908634587144226308595896231117001517829318397703166516123196014987612312722351244228460647655554561647758981400430919922075260870778001472850080847438890206786909008281898564995977921848147663931545587154992783911090931535085771213321630391764040798937455842715543064327409350841385800426715528947168409997947428251310225674215289466591849677254313046752875553276262306210391011362379469670166176812530851559819290589989526603049165850014371850620976727206878531343464534266383520140259911454753351323441609940263571366016115257611314706552680926379923723048638805441122358803695984592783925660948970002177966685906579635159899954309689358188733638873461100060563935416533907843508878315102181335111896078837770901620944557214650222684133676694223874890594615798825836120482702651402823317741573779423512303028812523893184364599955905581915196371870886817801768834099390990479152161757590685009984018081076444388327246805075505514467013719527588404483553198628432258832062861758538126678709372658708900746825544307274779699346472234797409829994986740896453139612178362483426785046695314962817010095070139617558525735847916622858718475602515749176625244441381079428124725285519913685105447422170452089702580032515542781209335023911938970093547140689343063448544899268256222358039678677415040648109733024090157364415805874879149887635906463199945176587478052505537937741438826187320515026265153813423126730974070968750882539182008028078206535055777448622761056109121272890666025814334554504228161693050524602791837045857092370565742044341650588546849112401776745403582914464261969127134930643846644256234009664189747258959795801480614389520264012330849406048081127914937057679889823541578448415348970382026944400669263083350895966496683398954063573107774282440586068482184472380575579852083686878400261324198223619488888865728793258537942777792336980446157242633063957842886239104795816622395566040705099790401349925979936731334720345861700897658105963280615132707896549135171546912216153014086648497041830435832757223719670158740671661972429963837372296568738134632130768241157040845187316722638115531504454892431462487519119792800057429551350822937114693028449786887164181213185855084197730782559368551910960505157354699715997703479212272312162124620524010301087069988398194345789213938072240451815127961940003417435060845376869639719526546681462518555300311941552105558072111710384673505015567267784785827358920361275244919875304210183313105564307181706182053356355683350551978142836125083730043419951811201857641668447617065469660496372906937775033250655486082084498128761162076718043535324899868903545364920965938567915097289656613498070541641467553055592212498180836158731502816119563270458858963378427638881450859543682832894837628289782688303494383457187387818552307498524583713568157428362649536829882436011250477804781966384524569752990557717706071312861475085405336501448735972986284551254017256353285961366939031949591935643643956049339081607904973807583145840622215161767337585388614489942927790522896585393174058618013843742977188227746077701279430265084841572587038819151201046802970186083957265508786059921471221029117507326778047637537901186531954334428900527588365329907009412684296408370500285502737879175125249632137228533168949879572563935097118110288286730479574883591021955523761854060879467926238010737275480791833855118553298151797796475781866070173765083299334486899833343415669346769049694677141061989688987332499061276912414631284196738618867752696196898577148614847687381151870364559536295293630204972600531785297096324343693446006670301441801850767762907892624895263214807926712178692826588812541204445535143744164368933619123667713050826857062618816148945015318658071383905187168780972982337451455079631215228376577430252184152769372345321152696824886733248340626348065863655768298130451241280238034719310077322039504310763259096742356962447512637217966626373838599206726533526923608823229114821647350833371627177581079004180550896098956071220426547699992773535903992593438078639371766933657276035032850981484200379064417159087308231075258975526379209180623116674819245057532795837342791323705747688721929671617621262251624399321590645501618571055539742880311472307700826293469569580747486731817497358866339974312927446720123921099107046106877930395919553095815270182754727020327221606812908107309976510183197359096590802513252739496517561244746023501608899311415349916479194486078810722064138949331643778482134147088461526290620672949799425631819692131700839562189016727749131692628855166151560315620691631391091246184894426201958414865670533050085004158600181676357524576343993655648189128984475935018262462344491315251225924036998430838918350689439843038299799703788387427565406834168657907548552947848484077741475066844288247666439978209336496378981273085876821063751003851189397242451625142826468532700243831441512599399057637651370756166630460022663614316377590455238759743808361760681652283897079257314053032715058035059017312368903912944224287978406524371020028726504253091686789372972822313963421912826502561873029970516852590512289296162477121546788348851146114006763631316135710169593454886179747661304810563187676376494842117445053890827868147308941202035627218553391676887778719991483518319847463185350945383514973112995634038030348115297564294392168943559924372192650401793507117385761917559999297860221216529792695138501190203505016148732049824549340793126241203450259329761769814655206875528616031005020513935240330804726668626894847034142438786340098173299383070517021458348556599537880545127954804534325459891196398057573608291757151626136553141752386760426932726026033870030419983907677105275786771016370579960829684984291516589430475062745204818946126555157715733885746782940896464596945999913315712376483845870471574651310757125282265613056686758019969068382824595305734454214513204852869281923649488269750221540090961103189406659002151364913872490914979181400846706019368921074066161315085540102689880427616449159013067885207182546691094513327247573222557578209675907133529596591057289725135823526928097448513014783914336145739885956235232768029085532224924328327010462810550067659433890088929320278285506943126681718957840959218020577993573743623636260000197630264830789382516868403340987026455137295030329994654594040158465297910139600085897719765622157680363085039125433289751789586447970066821239003082888588864372942959800940896606571017557877756119921884535172053156272451720880323780716927627759763976122392452443881054912947918834763798633008810428633175090063180664562925607260590943529274340720299622630628974149431402670554665484406756293847361480661752061904090964099753820856200600620597910472640454487168335618970987734129843309421935336749721046036832216830613917172863047994423297810613110159190707374535414609987884494549997732270706914525057684293680183003954159936445503666041338603762491885909661687160049480672567736312988495820391628200332099937858423150514444030666622643026252811716925651493895303925210251449572287229550600919494387159502799052744141675596649661889069656492133715563616584572433899465429370655096818360725132834815801915663257644768444667626834182343703875535868349653209354170465692240629146539499376041745154076783571180754748529167212462430253031103920450451656213100445463378364628930837197292828414691842116950396633327190023664809064407628538528973441448689092946330470713624239243760329708292870086468415403710607952346224720167408532787476593707041580236779293086068003203541962074868842832698528881442393160029286824616150545858192997045431173598501346226929174460229788837522124876715404674214302748042698763767716837022667752794662419113748601317468919710917730736854482347603055419077590714692936247059025855019783804806866906641255691292562492817595237345069460810721755494620092276325414411756920123991367693016940789179731106688982145259447358507008381258435059389165865584614752764318600206115085068413996814588895790564611273894930692923554504318616433764742153353594815438512236077636440001245332796233118011417183963934340625067703972960092273264115733408302206047947954787136481204851725432855173707364893434996332665231931696762247782638346425594421654914609900453694084477752340510986746162337304954249613140241950248692868476003589035803008639450607373167960753237259644646265898993142110009036395952045857218764192303634499893861021374738657290869201478954807953887291680152070403927383279736426997591757487740502087940773978491972548129832092512122922549185500529114249138671200872296064890412390950658931584567385090869509802576329957059006470292157719002763990683948213111015913398128084042720053824695706470187885485529408339326642967553652503284237111240470778062030097627566761255963543451950886961596919166464340642625435167349463652906586511823100512608944407964839617459001062138286481273435921321346509566069569191237547326443266149505271952195611893574106631295016230150789126614522680825992103178783206469825328739949173791215740020963642929160061442426542561100168965316232837152739334466451233438671300379307152860528245810710566939955556309954996547159563973223464378704365302308793168573414879346166680065811226934571354735487464961348963833785669747229236837675824521512107281869216923972212814251537389077247266688395545661824112055035433557455512546141623719030264776044054858747407295885326303113461858290754630071488040804384816421274268395860769478002385943013162556212464542691903817073250734610711515059510889905318155360798838923309286910436524003937527340219064106261177399997765896367963327852037238940934823290054502673918399502023801108180194086433166953715391018415047024806944942302246650545583751260975297043193036295555148237405047604175096683231141233411951915464023563504326487378037875897877013322828232105879703869051277896425821813985991730980956758504877372657993511236162871084134133303327836948734858183498134711308036623169336307448045409136487785211201844031567558677846901158238362757144425825847320581194853669318091335081758035417600458028274373987455240522425590665122456315761391652426833469248388480787628101695827550189461000829639293278793434660037781219866182848392160865337165573290972741699167363602990439353483245002506881413300997223865316485901960620495911250244471400469826545815051230403309459552807375641413957366063430791328658438805026288621677451831679244594240857563564184111472886790097769995401861077670057397962244538715265633211792006683936980727976694578213006705597825280628112981985776434072670008815275822020128897002479652866462437384886985756615713342267798145947348367080059823081058930837008124621564124500322390854346392982669628344991428341649660799962533858924723854397974120927578863915777782292705358809560695784635629564799369727339091628036030191341474231360276302965762090798906107686133297751638550451674198732677536150040136143546627029220843140407207765719659077146384038904986526366159987707905733494790160192767645084851561271300555228659750807544967395682219129929908194470299876922879169931381207763947233900562395408346021320758897068712563586696526733262862376590316221612441414071775313644652176562951336251910483412876459905479227194556838578165699962776268418061067238627465596038186021680556444946022815452201801113930100044513506338253353624343741835217530618344447137658526845168974478194962407872597204241505827929984827447826804488534402909244571839556790475853091825265703764530038596647852265542935021379255806262344640002289415241126576548152164367156477590881626084342848761401050564909311519696017335865965978566335368360701961742477856388985417642093937293487192732901792938060060695914757482821184409596752691059811868206015238342263371316341266838244468376541190999816264938890189858559486071262192780247624288364400583855533368265416157438331820415499628692044518844280584225202956412959083414231076931120178072982706426264684978843675971907635235148764035385675021578183811806684805127713071873229947948933088121361987478059641721726886751004059632073837224148649174956217844490126604941101344569244573766911068083906061784691396924003033368776693389332102915127188103935786678734237499368688684888040707987490222823548699466170140530239458602107359676148295673877133822861672786258111328416567365223504752996808905026326880007875353824028110804691621836810976102673847537878140030419068913083835693315435807656632795663785206721335502785976356741770818785175150640269066836043558636626486926322166607176399021692778422255978882796893870833470519838804946987847838961265828683763458802369064701406426871188516374048546491960876569431896172930448211322829704239572723825315525079118641935864802289198752089377667908450731998839624674425353944508462476370294722879173963667162693446940316386020318413171277080617885643656593450484201855802893733438711328065150839313936161273321853157441522534876498848287651394576303730693964049218044424734189884791418813857757625849205653805489473009844993425106796800688033004284267791224180430963314042534456815690494901582936864615455634200379978871803115103157012526342752723994426342705788150064720391625823820257866798604309279579284787814994817803740693220729976160060939920826884852067545510290205921641197938124292301333436384968112247306645687783529666633484406280890861748331679974158625207527522139180728038172859082958025943485032314914991757034571922036850275156892719025379561126138084297249525981279742866104463941081302475409612759836465430775697886229096871984766156542288839183491482877794091267851685169611290408926842879807530649243868801551786996749124034888155677376346782048140709552665955227031710031630833967412421023755061665336210251872304488020466763611920415864194012435775273815528064232876974360660855611551266736347037367464475938038079153363362143003435418657992749402331597411151873147168051458993001627756570252793665341435994238144833054332404334019809363897391542155273019054591851150559299013157946838870563304046109305608969405638494094460864675544619390182813478569933615743871796450642471416422813024328026241708459840975688368412856504925319072302337005809056461900162433806254380398584548216339298670653992158515475774863814795228818164483951898750789360969782513372688064099640965057943215535781730774758743687438644479897839873980915693810467746063860783625629603075484274722718169291370594501523783467360033901817233029927095292733091444148187094537558048575384300216671384908159793655183393805740441615928003127911937044676677978612248632992897889100801522946172785818119129259699057627795146068985032755461653253961048062253011191045057851105213825295063692545162137563230257459146748584260964121329353504158460990259918203059989493302917947144484834088112029367819128637730193360800685427597484463752850258804481703688097491343330311652420511476618653949977245730769104427121806228971690656819259105231295481706230441682710575629971738477107678798246167169395535131975217539292713237582726971312529241065150402302585351988160537275922026475404829160014285281983160435238869214737886607014477127773100933618865867252985149687307670485004113353555033715493811990047741975740033078803438444053280938796903592462249424497004760218423247876022965864616365685826437175857828208198186050462545524562447437024395306145439623680900771688176157821205686896422720058323321410545715201469565430299961291406914042587116948975601858220507784484300977692168176754517666773600815764185727945558591284696280132907538411255003297897045569224747145766746426403509351165678764297471382736264637076726586930606819080619405245255683304538343598998009194262246027629615740094275612635411850342025772051521411654626799047763729531606784946746849063583375498566315234818450889379753354315543078413484688293781772511462048631809408990587573130088563683337465160850830336624910277391293101567797929010367892791817301891704827663138399064367404998723012786285358056788274047222009296486522905072623515309121434278462139232624297289122470875747839732678901123453958026385669204816675871796298590465476331917293998388916148179086356514239806435011132258988036151393375472012269086716579067143763774336079176379546916967285177818240728388992205181057175491210532040678608014854080395090765533152662211047743195189842171628376394567728394492429215041512536423212017614072430404064413260615165766278978359617044480646573584239337021175925220942482405132817254905008827993483810758504508384572694803395879170745404795665647651275073767260079628413129881547354723487386936820250116643934477648869332061835609821988879552735742376089776180565964510080659327053664560912189507347460232858636794849513646231151680405479121382304228920996599212719865916554129748721859598653155533184199012951796873840695899894206139087797011830841585372717207537900298591255648604410415861185007456804683317579090506120033446642503636534513092170546334281983632178760638039380961916010543992097347846567783293401808517814546914081549997581301995095281117887588144663049983291316682557032008794482158277022465193812965413647403109183990128382110620779015516901314751772441698874074385290980576504794681637180732585078602913658328228353939487534541088258118845487791229326420169326646494808195603237767905909989647375300353023269855882322966358389888187790178673733921163515333976936096700921415178303395747518988822888236730807352207295689100429926728953976796606355282004797472227419904574998546387764868810760020334418211397438146732806558763930660719233576593888192948349825551216894043942510655318319323974812468813731088754503505532315395802433788511272445213172425057176609509163672221160411330196845492344415366215077553602494788832277617542230037111048107197929606713005606432211766191856422187983000494092947369492862347641117346025322935908034995398783292951199298854365713537228840823550820703971645256893086416174988029710542181786857254808923528991928994891996980915813994716044632482802704834742353231487963108845800241663260389476419339683623827886306549968830377011208437067663290851919735395623408803529029850413657618760072002514610555078253590722300514350769870134651518973184978866647706020841762032972341879243649330750791063542008022973913989819980425911600503252266296439255148368896883355116504020311737675355388724038786494848292964686392781532098117289664956883815785066716281016662726834246277613715317214422430751138314879540724259543922517586518827545686778982919667076418619865645178956677706270751329053409712588109881897734506285697355036074824248705129620257414604241206270899763273135227047634630515065470852622293440077232278130338513040212289180766063269470061221583759637324422120226243195943134484564016792810648615140629600360120394443693195480727498976349112556652702188816118241455230271216469314232296222663050815389710551965482574835233541874570293631492192340389494922289670289089104154985828988432768271181146069761540170887182821277676101141377812157503591256416429717216391861454832615897975781578441632835254562589235312974985191047448231189724501639295779195280319136594575940534134972649149751244678252586394971718722119350441323714285964444580693488312491826421125514579884779802922334712985918687025123889316579456323337664756336931935540218881204420402601336615220582791794315454961397042501421730342935379594059452240645250012282402425163593591696505022423316200702588578261535259658318937332973364272606962302039762057143949571372431131346181660507055681071241961723819240606189087607783574830019779206927443944995723676191466552454200964696729030201200542045484992630846426349541275007566183009821565669276440543014483495916629770550129615951585332522196434421663608931859203285054935804188468436091611031869710486172434233347981575994883466617799051268299307474689465926489073929214388345467939188089124933354783237013154118359051051507077401146306209784582530790897915152806273928963024063749455786212583903431713119243556826167565870262905660784713262781421848713359089151161177424165414848277846273492739432384040417672526223017495108472704482432110483779772820962078688329684347256358162214428164867233255443678928403856685720520280203544571085906712114993685790514028856228111792749692181120812111305481836025574581464527516209373904516857362857944545979543363330639610284238335758863829608531917709760245033977375272795157870096240447193983876845504510784187837535776510069814462047027686315326244962572510008944187977279045746736445700629999667611948883762457858109729364607820634785323859824698606155208161679993077831545472901665934396483284465890943534191057276121718974195026618036252853086712789088379191562486157894608932717413725877410906855189577714770491210724467271022907005262332182148734908560520718302908556459004743862497699697163296385884715697998059023315706382119795232353017761740821299009743151577466362759071285193516126426704880905329829826837410134321588569679139867311443659965412227240202471841056482022905021023572364513825178696991376996459080285310218935107902724470082795634605862814221228594103403913183829659091703909550085695746702728805014456639440640701257236635244665829168310756876996124652515424929629236597515950550332330278248552857423026303956111883013983257231966567796230841312714657487840054504807744660114111747075767880433290856919705384712352847894147110468503319520155183642513441049118778324809229681724958935893244036112784114798317789935847130314316802580230550483056165194193212500850466690049116210959529731666674182870357680629804343477897000901856680244914485924138285186370099673190602246971112284744391283340093902645185263473718651606551156507449455625568970311323205758801901373647288884547080778684010082733344782095538435288118097734704850752841612819192355299286740141489008798447631719019437884662662105572669159412603659219805882856686656356115702116722501166139818669730553843403386988529996139971322071802756442821481280567848613598025563544745273210095207460973563940759059567100901414807938509373296833245240223097940007031043046655283933472032394197757688734795138302643922121595734675492284438149854236226551903011078449466986368021139583432251993421483261658642745576029631021444904336516681459609827325637218136635977995863343676656062867293642421945975284537509723021001173441646688210775006842980215186056722519283839799606913717532892179403628247412718915013561290092883640512677546109001846445177299196883430391631832124352873497252736036525469236698611507708290653595931071140340289700563366257069186959710114451139340089675244246921180933218520906002779189521071037373604023457329909023240041983260629481400340045108812730444094340609903965117479126488599086707624796294520924377495313966706366047812028754480438044853939886518085283708575552607652714854378349087972999537489767586682629994823159417892693058291426519859463948185307760312190515651279438582860328660557294894714121208113304924382933359260367355024728528285548165924154854863485204312729149936977903759289031101572042269078489245245007441254532352593307845924201138477898454653814039921042427543200709654998068954212435705769487485619434121363576436357877054878601861064351781452894527985940846582351888019949904377350308854987455921537582795550243284630131197600630527148048646945191869335395771225732303964516644158041246147838022461278878621646618859887472207784159916582381935883147591647861499088445894911225096229630689866766633363539445435453275095324000940230472495876984201006157018823435493797678055314142047867638779779118109876779611239180239788291052248323699817810833166580024347080493946467814794071366719147739734657340542847865992809026236618619572681167614111343804902879390186566585326887935989642689423056914114410681122077854823245906651121642586943923926315371156920964290625041063515819420685237859845134036137364386021860201301305328186239367632326980027601226989897610534248592612845929824242592611556415950091648586240410202417874134822615847717000135272205005834979010486410177588135089003758505104318256086423202987358191887620611233750348539132272419419758294483692919548044937936685497290521181667042372555577478900860484089480112200453632632231762059100204437685827536133744975536627801797414243700172834201891624282169427987877634316774452592089994014552438064315916715311306041223796176039635907122354840935124398606515013149006407825827985842554295800668880383089580468015359573784407728914849854945380700886654443293319875853438634767683682383119835346430029249279226921897891217321647309994498937111844140418660870201901215177345138322759264565371309362107091633294062747116202574424888871487391032668788401370756174665788697926369729537104143456550992805380087090297462961250458184182139115673676727757705291888772696116348941869159196163779524250449189409702045890976301267700400280230712775323487153376753097124377791854201701249389713716465746076067692600445019193343992189696696077870214609079403066783680956374023027072081868548571980733160175479661290430702147680266151176589783664696042720930153390152352706119469703131628007554126491621912550977560132254588872324851246181754012622611424937422937211452420815108951442736890809620844713920114028991095028128272808646862902367976203514150687032559136895705166650270401689921773914557604015817006950031815269893642882009402287944916888555373170840958476610030366622971866421651859829209133166534641845371296177579821536160470279772196625964260252983682345146457082042563807469184292218939089681346990714788824987517443691075125280842776929312634412622794175855969526346502645109035938441451121395993657989966737269051651558787346588831766744508605740212866115761943917713757451303179488617676207520416684603405215073408019206960695516523546335770652002278688756728989166315517274456030880582973378552903457385941919107016420411710330049910549821877058634355023163039816171423506734207763453847934206790736130841601022903448632102453864169223074396557535429856107135643756504921040058036388859939360422725710702547646934676453332415130884357763741810470169433800286740844246609674104473135991419448107913208137687113560020282001238659782329638248456594285478484142766577985779162846817662544589690818849791741313059590587422681493648020361602485430856787269373842394175844639712303845444593896359432159895591350685902503990899373772081464714138116868496008014582801239913053251717914927580053475765789561065638286347269833669403169161814006673291910737059916101439445610225420731071503279266903411880819784108825334633754288300946650200388342453551115553634792024840214642737090612597497165012995740248550814631388999207841966592369620349484648996911801961741375618277433834808402233841678643976006965280474617498706319714104170733879284407870314238156665140104484825355487736373242544839383092936253819909474055448079294591166143204127835824628412709820235128502409168088649673605649506054361342487155005218230345319203620382186985956745767878415763526499884766736164043684745615642987091897710830573382132421781537386671440406418496828139276779879430156034846395531453328280357080378343423749280092277680197495013338135354883382215296862220852240135720860789009880263644046177267994757144927966074110916011801067967353068962196066009727188557126377054321471572394379322899188197013376767002238614557022616982416346268727261554008911407096053351009741407104191864600533368949280894092981396508210215043915758416764354591109223914611762864609309183759905822842074682554963978025856880173382899884649333375363453513999549885020444175080258340345637673020477020967570115412293134671730699928616468723523198671354927118497147307558688095272081964294355481202235633298000160321551534324292416864584824229502215416746361828800347917112122932914322497013685158986519426439528891267587987905145685850816995447998708236979781427978495776980451940900604608990258390182364313948214855010187024545993125497375318422180458341041264965291733528410737757578882987490834213243274187035801001700920905115357152142946645932953052992637094770959046494965911437775043816468147137381177372797409360873283124250586466298485136920558999287483620531152197474213331593346750088315197054627015826549207190638824858914528760073430748400247033994941579306544584750259572857858556630996127685259136669260730426499631652340794574984180437941051772180013813541941383846207092511298168543805512894909618686155668111428677422527201389666156818620417626500438804323376870452654314799273373097432929129365309534791161878126175266518873069385469901786714422613339944444242011032880798387360111897015067512911865202051154856638432277340831731843079877509564844102081129781761790295754190743298308901391062028439388091512816971971071809258115764534186746893621070613085420499744229436096965095245386392502580981211838025726512568237485844859287910823309010399215476899605612439392208623414669313366059274277385245658363217424815115990594255265330797285565137554481929798761270783566419603726873433982514648083116938497709916433336081347937120537662074937700884868915663023720321254780545660422725591773604934410794953698191603389956204514349671265253497716101592258250172400710480838781610241538359688776787372711454200948090158241514448491565303984080433068910579158892040710561766808686750948893770027362863700386414927346495239264129167219998491200190331995654307772525638139645787528303177467651811655924446890722377234742095738514343575548506060829436189684479374648299821301148982346545387223313615158959305366426053061521571219252428347761915445806799144401813028108069821728698401579998520767168782394569220793302543353420458818283853530427886526026779311618145534901817344864275102705558336184711799305402242445608722420237111147591141137571996055795990185141687912492244841487208740319921697951881060484043860225930053701748462039428207327775677576831852902463198280489975182456051618101222818242570383503880418248020695826648736158447372236226861244639849128400449699587076885932474254325850698386866940124957300509768410193339902150933115407313590862790658513180905433794636323343281410248000320507655460137886566466757388413643497124368937859222764702923111107057892088980183485460930622320475287915539279364206634665508902267607145788178762819154648905849064888141049530559991130033581200563931230171839134072951375127162906305810550669725814304502994287422133947768419990075025251763940681265438058944231730674949918795987592487044986091490851058273542954716634726394233171822487243838171506094256455576350560941734498131254736891731630464370883498810723606207530491854750867763116899443258909977342858872341580811023353199875448664928425723445160297010100138698848437137921603302251278050891704556244372699947356844374295080007649333523177643626847762259103518286405399135375573134426567654420052043904408614114137426511978553833421811148860022370364551236957592104234835086981402220504644936200340961780747735378984989753229121877927385179205147504084271286685638624190866455309331007416570810114732333992812382650729923671524705438022277873714529324126087129365107806023632397523569200855158393455396995076659968865923798888272042099293355134688504300012277572696981064301266285349893151187387886610991296319231126102432814249882435667900310756176145783962475486087125155565499735083759109509634139480840335141623946420397769364572726444070931352050851325004100760054268714304983891116026642228833021661502653556908511681684053550896336252921110409908992382872762931120887122852305280440944586094151583176906186824492627398328593764383157483861652250870941137893064716154980363973240501688970765090712273322509400016220818121783713698616114804956892917091332834744568661912292003293927675193813840253566665645408094124496476036663779866329299094109168509541473742205032605676047283797920819425224305346031325323892857175373326594231076169274340795928215244655997252518255196451450071449903928995728499841189735232041553901916971685905927902588658829032914370467138774757274786402613114860245169037333471025548064546167760750694610849266492241775501854281578533968376892651765546801378942220629676711248735524465288469898385683270300520913638537202870624952377440604566337234165295961214047974771403742418940345660361576510576091621906583819877565220465025086048066111715383529568274308133160413683976030706670490252465894982288302569054553415524097672687856007347817610630921916733256568820870817126905205031564479279279646534974054063468681592750365423687728369317163210491625529647698256780401153239807011259313428509274878280853337559053354814697872322813765586209438986910279696645769107341315685936549694156553699019166961669540373371678895419489740872434787317921561109577558636659833271531497404269770524274071798945037833187100542235328872756889766490954541254353074604469288436483950200737351353845304602377520793186965733708548351323569633184805733658924838838874157257550887004569342181612610670683598034908344048439510758312788857102667678266849924200796539608182525377577673562116781900930766453889371583516616960149770979915936111384497050432975142092540567575458328835960905112640501716500572774822638925031660042247672687205464353969881992455326920834717036860400881987190268245864349739974341414499477862577783674820205765663013103732676636246343182677051237971740920697891032497353164503166599524929539382592750476080546023015818929762752574188641388934874839747041161382944058078346734255198297444816497306261535009501378305818065776862589073782634992657018575146311698124316237618713851204575814723820434591789494042089873255956460866149508524296731914972285977928130401744748690269675600189882180085751874259021417972506474489970113550816877496382428788937247561349313685856145306901711256478789480444838287505216746302398151215754080450518470704778829725238047843880734600347897021436934905237767064940890031136741429891745204787069649876035989739777449038123241602283865804482017197543598226874849446523920028925903101820902794832092178898867824353277892300125893383412660193509320559581935645622806585126860667917092817215962241229518085301794887207674170642859513424736467963349862208932217088967379879348972881991836192382981769359900898721853006305078590860776579260740107981323150939524602737613233189834797259737997529411815068760866075617297858156387325666863863113995824149830228527673176513090348391550771520567065872486704204899100427914892045081704968753268657718262303462356768358794680480389227947270373109763369739522536765218494737402835527600344105915059091322072038982955905867498711003751130144200777688078543137171034660740661523047594641485687453922524529256046759391375867373907599743634129816577300675202831406371788526688997506803454720698622082727673181122302079422031651745048901908955339942683359538205637332284481875381732308828469719146061560782592450028182079210577878676411067323739589286499999790203022700810274997538070298879236557624128198107068727262245257879995968489264646634034886040517754806072702588822056915288301744404446296091167275215474239062759862954861567018817776014861101538544677665838019720991120283235021795338249355221308469035740935472252016531262154830409904741051944787216123807911248339889748200126631054848815636823660402732784552078695658792165916229425240572737115529225833488006831489366895170816956760637050622169151734932950608591214761223141635220900036445116893331167693670404618647941297356049602858160381627473499720957156259813171755775453931278234906269048400936998740017927925891157345267678691607828910752213584232387872934918680895952373261772768614077337335409923458621810472615950413075701868060047524432558065929425375864153520380599280275351321929819708432645333966527396857775338618682502235013146890714270498391405866057343039381946341003091678082985506039814536121917549281456073966373818845448166743662284042702368501299207411885377916376967344888734817529919062243214336530056610180138538726211475734570369892405267847781677981071907209413228993431269770429448458949580868629780264904260160828183670314949433460337620609601072784016656623790621183533841603113866418487875184922282538208311906376157737478718844140999040033224655787762440899694177783867473144275324362144568895763084602415626999169581854668816543901343050806278521691982809336492341520816494988890959589393838867836687213564424796393748923657131266790012544910375977072489839963339485740536976753690905186018932809586107018822009776653593748425979588035933775603270778283999815840002633896714547043207478317011145373459764876678916079645435602193889590513199858350796538779993741906390277630977166389733509585969749191877426497492312239513142818674593741328453670967456529731873676916758605029772618552448133294128937681647889404246447129828808022920233747620422815207743191578308420230954229003744927282068004377976282912122197103426232527642721316838131752061536650520639372186878997987760587651882095997242851429598932125295929072463183231741056196142634266999577596775927926444966933973732899328520283552294130653804388164245196277606001861800514554649991206614211378407199324997041194007338793915424461315443794729276054008262190739923978477226752911547601405464278107881695830716353353597761935926822930957073769779173759486486978456436342695278019743809013651983853200129728085498603801429582447686802303955140108107410485555400957703407377395615289864018286353303219471659344938005550164076472633709822435967531991046987803563030029541770557504937809287973782656250128056940556064142177412928200834921032803711769271561891184847823330069629502705963512733134569125347080525225173743672088246259632576845119959934870113878879100564703600458085958941781653517189460312918580374178848164895242055963706028535880658434882745458239866866285867868059615723422850143156015244487435204310446883254499586374409309052771448131033666606669561530566617911732753563411006777773463887642725918985373731351065286062085878521707318401632659559612915546665949506883023992785616654717839103367621855599085449998475062665588506556758796434050574993114306888863393368406531819340473091858194934578830275196574496694003611265499957664328385586389613667120274380224436742700770345822310847104259901759424004502139990978066517644229822266380353687583602132990658301460035422387642610329983666640057488609306171185358514516894200677858200222567486952483406909613134658768457895158685156519693047105230014821421952989363039545270177154973866594418060976247232322974794672071487552423350306081210701870914249082958537582477017899158960726404069499780164883124511083684580981738190274603981531235589781778793325607825337664989405414253291932641642767909934889082383763587793365314954877166352080608383441533339615750326469857483261932551470910912342114414006632355212529325845944741579823422208999078786286299354311119966164103614753132176890151169948259048219483779389570572985605796337118533749828756198480156300031713051662169560447313943356086038224569377497357029039852634620424194327734860611687571202005973058825993446317575425356527801551494163693856892328073766274004641967356588424306604255652701443862260147983815906682596839102826528417437691121050200775532046161914089411510834278894568619224329448287611362401698312655571915177750037048516058494595765507730485135907236432540970840271282856061991914386044591229377942906225237709604063043796061665984295544223279699446698810022575214795460645275245176988243118249968783342358632461569061583818662765109468317545525683923912748514703446465229560324732668706821864910060299428709392384713138676526089483758873805738921054250533558697487913614683855099934532959619070593163048781404107765205314827565504730084415022576428654030026597793263834136223031722446083656737101129748044978628436875656887655084523885647753315318672484895855776998632937394628058358226026104002930238304108773481147259810811972216390556649548797303770561917526625712413234861205208837360601918146258658365259861910687819904396790697106812673594210443376431594771821736532493554017090627875031632845449170838457021789384786423489370902338235666373963698888323579008813909506341095847270875367297639155079431392455323907739554816344281097906728495438611914880008911580195478558642602049215884979314969490600707277857093962423354062583575170061421831571552990056422260652002035248905754995794699760468143190362278933588938289391897561086736293588170808338171920610849900734586092654799128608226807055419306902559396321516152158290884430423923482823951017964631962572951567079754625595888659733622926705898160767961594219219054782288152338667617028809063551941643829048435203813848159413631289822219430964208550174798906559350409158964572667878354499402112960968130217410141362722197172582683523605542953780436147056269617041077076381988789511858228009649194604575809074668362657303650933986113950398261480062825643482039864965741758907415766208521361657155951973839028295865347057167309587275239301761367797995110003423175359592619441427660129626714470254550199394835936576502377861464179845952004546219590082368503497417757939006984251811732764018318501443544453342769023973658756638085602165589225584216806063221180538514577769056586523612436648668989150096842311531320624579711248007094358404590532933151843496862519629080420281847489966279770920097280768234466978287504246401067685345695314049408192997314036730148099419649343463606951448468589184073690142750489773145302309475946592182614841608701259468173522904172031017068338999342294281297779073357697561201452551599566739038504383749596098796395223126612436453797528112848891838133575556079614568633370442992311021513281347496168776048018746422575048594560343002145912094791237444821535570957551101268101714630720391794975187716802268709035736676102272492084807068525390834336203255855593981965537670229771660529055142582925769945486445903521182215837859150865343287486383337719112272003963558710856967585063797420137395113683706403955191617477662342111445279660566183647836134104984828572186051495066504315357942031316359314462201080597775784077170418693902684989792550311890603825035470429112185406807768366238981300817223986834346668115539627191263657441741451009662205046454080646795371187249342277857379883951187165120259598243051948481721806371247188227851057803255316444906056069774174691246468856905555557479896141035006130603914033582894922464066739590085996588246683114995509035957803334867802393899504543896847855951607471320224715329209590492740525592462973833230417173204556416677419924186139881797858471667543563619230752464269375418990154494762529658398755198289907150689836701054216702840447294836412622494466501082979839165073341150873711992770131396453904993690095191835789198149595495443206004919552369704126990664831428967572056836292263547421817430796613307068329217557702826410808705972444129492167200091211762052164422876007473068407548250145146836576626143355315235977983123443871678523139166927690037417859205064872990325788942743487273500094203707978898512126071277899191613840846367133674424131463261709594563622427571029383629514298842192155288810633423250543175469200153112739054976370700631904654487878507589176863509584001038694726793163530211294044319620408204093086096158191951162981353371206185818599964041480698907372401799200053999808768585497855761554733373281544213283344674184846599404344378335964475209752227205480695368281804651757459697651680626708183273391520917271823148024753581345707576540331163204884271909901377726756669940416617344980440396287355776601293889849074501181886850453374196818044514802038371372750971939400684283163818702733639718738422879691093521389075166489859075633010993363823438162375325414848063288852081022978920250792438943671594994580694012519214485994010443987611935398109664794428932162149919810029006269955562531943362811123018936325580882196805285903164373105811392248207942654098040294994277174783982725904455392071495784509518380796307178006601357845769869596381985039937562682041125564811512159986624694661374479550040208901737286134569880735863275895623164938195928374310860056317585796238297935373104622375640931283136476942561745317023413150702146500442643543093180044860189888824502490383110571731707140945318243042291166046742620821653284744292575882883188805829777391614596548340014508764008082595444029595833801557853790616115631437790761397805634723468407161209374526814512761932195724079912827436656037675855375409532400440708361482679089698640894269022457809481274473621992789835115191968705164594028813796409058100002864424624664567937442619918277419636244177210067806501636986445695870030824642869667791336272165880575475574640535070402239571054732698232954372654436994480397925971501911030586378410180031712803266386920266208070681069260875613470588697276695626862654772196221750996991908167040624105198353715235096285227800241405400017020302555042031257270896144033324474230764113373987495676807885718333378942925261262080572712971872428290643310287864609929813566811087695458371249565798265209624387382664845829566205402580459184650648595984495104083189886207496838287033626361643881170574762226990493655739214152792627185196263379568876043577026604511517900100432879383377862188597815217500790375628300433771403332553631889154281961569270658923385016468490234401578855093043200187621183285754078581080080285612145006473796632407159236439551215091376487062827206273476177405770199735189740271686607393952014271033528730488047199234017601584770439573265505537962985838434448990276956340492282167548143080141769850762218187332909496362936220105574333045255426707490679803773604036866965125304154288337880644531535643302219227759476966449702861264921373457929755835866564808267122295023316127594142716124986095751470962436543705744225954025244628892104862990740850405423182240211314230782901796239047390448982688142142621581461221897587827918861756097415217712853065144973314213047647018334138043930785391330173773296082900301331980058346038529844282469888161335231141377183367584933652693145287678628236819419715509373475800040914438190103423927478926383157390668011072187719003298053660645241769410918400039594053200053216391310272452737296619384858559292339589920888541787765454721668146352875187981330313995360781363278062292659365244141653515857175835108887063610347434511848255398065485478201777988816109230013508319524634430265943981515880028498005517075182491880205244647531766913442253415505499472046843470872716478917996687141638140262633684190202953648055187970420599850286919298146630919394236405173708385021115288555211775393947270261998423976674687703223323568014554489750268038206617936224719426518076572537419570019075991695964588221295803558818872249813706589982614038778597222276907235053580924718729514455862774438873832200811762276014027438899208501379843037346276632050115498379289343459399405889913070274659395739788612968110368042274776379928679435275518954128878908988262098517579804344294727599036142824290701317774424449369629786217740531243292832602642255172436154769236399676573330876888352940356640387715076304074411477866194539139279764232276719457625519792999837459778015361151679286959248564648089690336071418526132422424282888599798373007927056437686206868507629838570881788741824357078007061954357671140562885273579481935508175416114674098298426037555475226957862635941797087217647594731943434396123485106694969837262847826231696595626892010343992785071669918993175929412429142844763901089189642879006413457558657044518515453462952474431545098258001062856689912118106223733448459083154176208732292445852920324749399620988628148105026913241806115336514259284159944177332158205480223904698561961525116036799478822109589163850665958892067950797854730784441659229593834447315828759023397593730679321322078991561419707669245441801996150491667026406975297981684672505699613561616153760242844590126255777457150445589135460335171630418425577346367675789809230513423861634838617972539636143434125624414619988575561399685201192173264385946335690762074649572159128392226724164122138276164412069830959819037222052330646277908197441863254084963416095381854666310836641156166677766729620183079502692351908998405713472128164539626331089566374201524490685181263055753988147746429978756840714397322780391784754529070096589720023489924757480791719099158139538493569337078318385380115651557177413216076839686603353101116445783187026248939138940240699041345444111597780061406576901863799206259141028091710194821157225974450089065599680978967885820641076159092938879364724027056210494515885579685575032924087371148461765445619998022025383350021262610463381047570078823464894931866156839043890649047881639897688094218702207597924595885692647052160894584961722805878036513603839022502566424489393576913984571907377878814426341415258253200578392871184604000970366915437021273548106413616888522673447063782449298463705992695056457591435215283505795494347598466891252771441227068916063231302277641672817242976795428168928784430427243890114137834889483316141199005056585595359755180616057385976843549825313844099417968354107300592532957733521141269077126700057829530848510303103687968251425305319029106331575416627874277279198294792083243887609955690778019522720614863517559002944850849027161249046381281216199494012986397561196584373571173836161001787310139522987014345944187106775217236710199365582973649543884729972229066347195354199453798572503633568131124022076434227950039050345875228063182853895155859094194856983033717336941767137441405457029957295665831388260067987717752743812991553984456376520205597332445977888779045821452880286761855640501535056138476658120228000685552372373865583953124920869752852183363728273639818448782707898896959779888927889818077345835721450518151363211753105744267698462048890863756101747942343698795110359872178678211822340627619875247469507827494674816311769127247132910626495882781669756913045240699908664125908447583675163308467860755984102604135868771881905339542617126172689752417132748222900339751238303469213968970399402995253105549069207261690440655465218514408801516074493884239345546581526729307597798934201112210798006767737552240732934333876228576614532683490071205306993019815774614987905343841923908633969712806528036804426834370214819445675580562904292608047845001224924736649414396197434034943347529963878146275973617037353614418500541955859068065723744325345534748215436883553395708295183053466087669113719273429426161427300401087127816473800064387998716359784031433382849975973945806053402274615297770278403486953228714614090093681331331599275679622041650670548775550354681842190040534399483197578060378812459192204613186274595803903108928939174323389758817995967127294463583126577971932405245464260286320042602404784860669918353374508112052348999993937713793260015442955807519633564946954319153460170857416556910816515627310079278905283161658586410045461777616597099611743054187707874585623980498820377480056585140675849250297536533445881798957238648771519414332165879561035917682888768555657284751987004913982620574585473753395149443758989522672757838598096533872584939494130805579366375168114397854258292697486320440904869211274149786241281894096513288930132393589621696318646001580051298985012115827919271997391227490367521792539823182686667416156168968141575182516285411133724959082210249680035323715994139331350937469076430662384198745353276085011096853950933169856915177539305959441708109537802230277564806011901170898943663713981286844353320111242302932623190097486250328714774355435745210291776687446036876869436795164361420651509504479670752402255471751554650406034453672123838850542246168161353790277428637048612199045039193678265329461075299674656328184608078588910647518355467509682288688765648066286127349538828591970546120156530180069551175531907474016502593681315471462341834002710987881182949271055366423689084419932210486421645051864387342941806374813935798236354164164015905145392819463075754991296740984228688106246979416637362509405429316654354516442754090954687509414768625405970036182588822246643246485551541068271614378861222922756837694425481187568161407537914377415749965998068400166805599445180991020403645125835708075093590520092983783539793555701233755051613013799179174138487534881431338112629007075628685958688088043656374972779962806538115086635057316810461796582545299282284061912182738979336896333785339843311407466370381513575151796163404496354206768481558705215985244249234303510486150688236741129882735637894768995627534414387093358724020980437599008667574328900185573971116297760798633098830929825138001818001960664479219097102088844877264215629934839475646484806706234402919926350456538470903034349919350646898688478537146253995103317006738522455475579378587878963333964056685107019302839442042045598269730390639937356213542720291215178145886839774889610005551261070728059491440329903925621315742959787623762464008684168001506715785199385195192958632305664929679817052347961705034314134064826598000365219410602948671475219436347279840958085051199467689220222871503953204962658815493407450072858139589795824177302110565466053954816354222563100280112494730823365829442154134991610871759374207446759736665850154054966430757005045161438989875576915228513308515203249454844822950475711631400848689005160347212597553282839680089864213620351014663193891421783610519036661304611116171043163955450403196432200156751774616876947637624990958650979601242187238613494466194991016295294102723194424766979995952923397211130429780181021754429798245126110957085263708208524733440320393755553129434418561375082018923270167043745317903111202039410497664712971294490925572182982821530094072263706452757409382592506396504861696075745594800324410915731618098871312608897578484010976111445661113428735042866017792723152460298240897145320448847362570983242827018261202891332969595381020989036956346587413829893499912309046609035633840993328342003879469942218469824997571310438108649881877984073023796427837444567814770078483920231723535564735185090942329561752965933006438228160463151384619215092078490720363376856566965140815279377266769962557451028324902757603857691879082543117435803035654302063046228774658009563120357322280364728364525452288167139045685161042639219630626903620903103229360943434319004848459833958638702751808396068588148818889359322307334579828761805684253283980083909039151869140078572364979002123987038699825528766312377639047211917183390438622775836354633054845636713999769722699275237634298818664103788000307735124428907335111688107012694813879475786934291736335629283421060317535945903832565989436444887435739665510801135744877523511610771006026331733438118592635370977449714593763908237854000965500381320160216720296923180807473214145267931665097913678410614311926690883794446150982347061852869032929487743526893108111801645761201079042392052865042717587244351678396832162226033722249297354076273365895756721508756362138030228026222316830711719063261119136312528707466288445972635526613297064169424826213275035433803545383607965996701402764635049936522104767235751014111601286618769509725609008428386957251730417220389560463382692895272684301135759387510794741514544850640457321120121757286031427255466995744109911805596908501154877805905143425501079945469339045300626072779248866406233216543131629769887706363427488449818600330269465796222595084658657753397463346341296967311567663002834777803491563038300123545671906385191640074784684486524856831553992058922579492886640095349436972481863977476187136184695873791092367900711356568590092248272092841259978520638377957030468413956684330764575403811874244706961883859006668207100281242601828056541518710392130090188481519696756096336590392061806469748627291172594222283642345964765081912003762966923698163314328580652909277587496924167419582525623376151150551258705936564954664392635027416009551917799922934098850328370581913149851723718031762069021059488600810036248988767888711080451377872548003819323248335107714338506729865793323835664564309616374642393437903974121734928152553091590053995602123673538605631230496467079233618207409416444885000538142074788864647610718941394745173387916544269823483457525088421045615784749410193695896349276345818462232891664523323985391904141445988693927224279822842056305849302015745158285926336683913264445734193223463522001285168387892166341353379520261203362306604895533530853825761356479071039723888901412955712253577660402645457823730625497600706899346015083859895291846357140451652394822878609435362654585383675701800772688171989776262904030449632671343916113050948880425834306985288335592244293201062483918258118452718475946964797869972473365929444895012671338963922923544678762643453968440137565049215021640948206478123971432034036543681246890540616511677824406036079406847367202106597792795306028350944996973362706865387129370670910854080176737288003419196605324748153801632256576068675122904989984998694650809674324461604550650194268514058329082490927905128298730453199822207357350512542086357172867926101813423318680068830685186693255334233010150491476119529060224967275339022491719287821436501203841980137935473462909547662194386564882719001209009983028306281423552910234823840025757778971686411101148395917732364976853006571612277022628919503639047354747580775144564556908213314066098833190730760499242154303136873237401911842593628773870479137763401623290474468488709736110789401687538958228034150549030043134400955436985596497311183069763836648106509094374770580860803924657666159670699014723776793921012777307893720850567693993958385747775666360988174988042549014668647301999096875329359349598135221422936325371007928068264014961431882179234513375326173736374822443137878267636744861119405546737933429021548036655540453628477962740804424024108713337041263889491251998221672517597008966420959195566322303579445245688219741572850603769998204089077545042899755961430016589325048070145147833645274417901693738885861648283460744617780181289958770013084278180184901701479180457385748820305251825982234809295095192692526595365132141345562448923822616405376223577489839538649690660022721898439214709358477962944565370087536124737320691745467996817784871513007753981735481344057057351774003984619343075010840946023393540823842672631332429565618451857097866635705714054866815779336319710898677184213079781605169887009241998035266916212987323056823256093600566296528799660816764693119049027945582920100537147637692615968444154112889037391655533708161902529851705999674553866153877578843362144518346214992420369121976419831190855715740526715583096467300550429581523491630961936308275623686493395273754211043802466591380989246060281343950165783063429265945681087089542178878971975334505126952663962088941547269897805006209291331635388886307618479682963772258603775069372753756260126034786347777110533395787563800579072012770386666979199424310129565778037263237348573534086105965637357969136806884246033564134188475347744290745439666526210405674872501097400879677951481315655141559655091423246668415678866217404449867627171530984512642539264914407040917527370583444837054351848679489254180604471058819704810480682863302156597140643081812971383207100680409151592357031204922356385945764298780938378608226662708599788757456968654004660896742926677399052780189349449912288534050919983886494033917019742224785776257251362536149718612573098275468055288230850885560611879803381915379153236921320167650115962539539060901461948106631736076816635544551063289794146936594770916976617698693784860744491107907460098570799493144997835523268522787948080896943547668617902388411103523748166351334875666101249937678856695102533620898136107210622655827653945291943699278819377205908505972575433789981388173785725326298288128364694893657499155455405493687714063808546560050979347131770368689052457174395340001676957539765818278926060695644568336535910001276396942039480173179327627023460398418141171739276025058902836941161665017048775187046601633307350404032562818828547364804414361559975765996952548302980924392483283387543250880756676153101640938358196349844328428892084590473409182491027264933651429444904436838100043234894781840886011406147358363410610718478644820670566457811015702093845836946623058363049038263999626382400397046561931539272238474167085597842427469148259198195373259563742346546291195975059021275684474173172290576906985466466213397501013552847014782318599156711968575045371314470879242105046415516554404727896577500704308822321234272759111123697681194051613549223540419215435560383355461484273277732380653945256532215519091791706048863364301877367315356614442280128990058401201463098785998297500808823578717813813947603938976664408274377174611620894436077943818458102772509086827120803649983538022164321031221358998258037190779807742526978600565674504819638996467497233286862709166281904144262790654945953261896818453955480064344936831591757532776655841377257925937856839364734257546733196422216794440114290160247416862119824589638677183405522314957891354733539453307770551861432030469284651401696165654058518016956730140063808893503179928438310520031148749017724800019132839443171407810700817978717262469313148464779680066968603860327316379215034676196173887380751735161514728215463638921175873396361345880838826942092166169869229701350420331658018848710620342126854522243494229234209225531747407447392505376383650440459732458559427242640034091690246214821667414618569185441784639118588296120481771781542327561637711666413557850792487524446655464211729695663233984528265795745787098771885962534203020487855290205160152770064672319244913378813896332162376282369284142084794376613279769317597395517708064476685132885531200795890416367859500560522699606718629093330857561646141772814338500084089688831796636776569491736587529406578207878391555875082953585913927206685435299644900076648405768310694567211747269281744685828820409503663330945214685402137325677168182689648806039692902387200050970288348707942014710908424665106631894219042515036080627918587285780174698884683240426332578870387824209658880086267022735048772618569817408715962012034390339085198261997363633481291568078334591116239348092484420144790849666501591080944245372608824316507502835297063901074853054189862111901310185405566283435723358165463350431700315684148219883868719859981884607546496915116184347534393628468380184971256469601608036214435154098651122480985692179385239667048420904211993365154785191162891402903938358035826343766068653126787715552315761848076606218571344010454893602163947984837942511384206905598489141099436740438471490047927419541291152098993872537020248589704750750712130465582290961331123595456531566768366018557380576155664422638560741297174657972031372323004149259086849216239533377164163607903023397579754194020733412382027880305236058632703435404168364713964555549080163892413860398937180809121173752846407816108142244733910333024675906932546402830642238423236200096741544827043791858157278820140691191298839882516242640617909219344553732209351631805880970680002573157488508861384642510642067770172995742775964311817308752328940449770900813371398395188290563648424776055159000518786016834305799016057856602052703698966503939441474247384093160842714059095955192658548134735151495772014070444559885083777282016618813536715638952812628924591616255836128217192862807671123647517027075917352914356250099077701895245240329794634107158993227538521199960770662999297329925292241633991940789098542260557653493944122034464526963405460820636227823252223014657683450968431638669347590112309632795374404738584242244418850453576505257845852917698955252318362082514971909849856821436052548169012813706984964425460510591225126274912474794381484547899269615677543935750579195405723328548622090881498523441275943944891263667455444842643447202166060659047947195114508885367656605011657190428193641825048752009471718287781345859647908512106930004293109547823164212031416736821615567934286594292049768654832287891432972283926103536697095211108639612831223592092426760786946691328179134607866273786818401241096887387795998756578359584177562602016532801647628029991782964993026531217783190206589644571121987954419233123987284547138272128997948756137095077063493188779855984109755204971505633888852536349591172859371342388217094235687657344305089357240779935400333596189335229915043177808661400636360160503816950883653553271139327877133338194167731922181094055028335749115584876130375595534030639313324045954578202904124643396737516503286081079656531733671888377871889413928457571108335343554452493143968137774677350090409118095092305836388918766951767743984663368440504785831580988990136922551985797696316821908923711300882688915384290444651759461768389887974304238901302256904110936231055569244658836648118374393836331281509099536487168527868266738238308462643845045459162086182509374928019405722653781183848872221711929099658939792736101991007099768963881999101704330854507969503824636356006188129162606856823181646091964676005303502771771679972323142517634144605769551216883746071416859096659817229088113530507257251872177769016126336702760824875467735863339534352948289585230441018675735995346138983532590131102971878385021532073851793310838723821735024367637667903042285476273624924136111905290369413988237498155365189500339969121339191605148925136583844989105489945772521927422685595349405033674785655204515351253013595538194227133113081295210672857628560388453225573489140332482291060587095618676603312670985864838185035553310729545043964257314566010537489478381640613861152676684359453838791409384900197314278062789320749802979510611191902953667004695786068458776513804342947689165634360221475787082794854145881194821618554092203968610638432954618567523567173977565833774040362909427280637400625333129586409750658674679920290002490750224789270977280878301941713187702426209802538659843759699367426868004390040886020828206066229043472193613745566402257472666078727838019489933694750879411964123981203329298259922887620242861976900377151213197776205593740412121901176264336757338978743060055678173359220027037042744033144342059611676622525088771380116059834724520829226172667255658043131006425704084340423320619244649007741124542132187504452094317783464307878692376511368998486723215228453761180792038012784221842616240911454250704050234701770592631511393514953025636345276249810280175536825180357002472039864141993732540013911084451627677421706092633714679231955161109864292427937097695406301175886266180374186082690988073667540038926144769933772324910266947589746921421248509884426634954654814465890164424604530212279587141341452422652956711980015025169440125385756037874647622424152845875324925654541080488222383299207023710880218773412321818122746305803698972066091862465509641176453347897397537157614624902080263821977869819828713392728298798683476173097239713933679613254716199015468939480762217346656683298340309964738683576922317614693821862628822759252741570136735732248013123513595350662004369162392656453491123127084221493773346168822046575288455863581938326034025011819990391727058134223693916874012787848396742446246473497241346997890223962502470466019376179646347233694767667801244434787260803411769128738895833108851707752520010895149960260064910727291929454332808821403586569726319300291067556105836199867023692871127705369692716580618229224902614446524279602020686473005380329609112588154293356406638378049858794897843447509449392275010375736296168278619122870278493857948611610866944740721149611508190196485080007380908881785563903529263744667641824099981309561784442566786994327327768675172255417997025488508450867201134215143427074059425279917212523206042035349254759248200444843379033331468274911543717015144568688140577327117269294764393602854303402734066999453951777546752206800534606131256405270376145328244225173263157489674655072184908381358142392245029297032903859962593424205894282042437872105213909285086376563888661191173964119817297687172341934234969942721107050783317989672914571399758793618178839828085551241182731539033911734049241754523203282491322203886795194177139478135274633911267821635181260361462664784388192057469009192939450863361399828290311523031828417682414387632951408440825088018878721952880856588440566408953066180911199356799951834005898421849908709957983758451558448148703618671761492416767196841846444417853276694872414292469387688186550579815003379761097515831144803976049767278686760300696245044484779109889670688342391160420635497725232782970418690286174925741190745126857284803638012475656598994932215780273726750907817558556457676161491518141243625395743530246502945906065068062861493160194918515929367720457847209001818642489049483062116499405202473947898516049509363190515779883174269359954852807420609385195705523123796710040035839544082476938669437179545986846276831061699373936484729751939438394583035566264861602393331141634730558952548606835681198465766891172355788778129776717552480905992678625511352675463085293188017120676209317671920659657482471126795510899899196814675877976741422449515171414987414020081067219685244677945878647514024281881068815070807726282843394633233190519901214848042036667468943089116754552269036705368026881285233074217670504399068546725830491961395218111990581624469572972430515678203249888447397450812214316300818176842753779856845280639141699546575456979425504648959624033151524251048336439083492071586307926918127651108208856880251636640262199914172116616968621428694730925950993994958472821650608401482129733307766375250332134785597815261555284565115215201506083295334526989678856287410851325867263328060933826726301673229644089655217614544492981343855312585701821403131601898348249884860738830366088400422133324296212489996482736457337396762289558480143951989455136294577555704215730291548873515909527659214161912547100706749650030525213359298416196389595324934304652494186673699212891006002704294066230223084690184548740414223021494150211435680068671199796045393706093067408419928149921082426184144109525997373759621480759951428640613872747353149090686572116727652676752797097497834727178127711387924458571056014614551331432969311110542966139183907697320883787570161381683924831712937854412589714236184636792202918750890236859694311328239655853084023138327203994999428887787306811650666802354552768284078888444931923330639514894671050887430284663247930673092303761898937662454195328008667222565116664343322008523383812952508686061589337547756945480585794785429644995867830227194840445858529693648881140024226165668162041841693738080443100175855472583156164160287743683237236065500087482022314840139669937977960124888574483148363589981760979154485422038502776100618717520629736071779045858130936387922883068832788630200047259013784986291251074416403526784061876871942989742135172336916258655416518071533573117645204670331757022139221364777097833495408139057006815801185736680333358897111913020005202438179232412542778595437304672494260001398036625745164157077496667679102559413447569500248639713425733045822325238025604746394287396788498900461928495429433355085552163381565715411404196107435067505270363393760536029084220328961274495950985527498729369667324034856403006955457534858404264976626639733254783697643520863770424634902682115719440493508869142293375737981503983915175133399368523239460010233524329462741032343696253839520593223679015936865932585585416184189518518790113952251080635021296806023342883805714134772604225341580098228035815590069166759427332306969546772576007145352019862855348886765271582220953409033054496467569242740240346776617831484725604124353092208796585247477657426345231292508100855711257855508345595637749939633847891191755853918623582681286865667964703213936126096236607947673327167364159115409442712406622315208294551784127665714635554895351646242404076727468134619893514289451518799202054290298769547591686485222088859745590317247210552850035750506804466305325850120555759334541796307369179038185383408915186246770431810950020757033854881472555860562368596173635995535117899001905437195924966081914578065739394244792031703049345457515027221570239163911500773235220704347905462635037686674539088498443448674206363290086899926759109034392467793001752723134800797481253425936693797692039425442903600430222555570139382269577019114898907107253454494307290239143315176278420595867599378628918483673308275963937475900114966301198169470936543947258655379578869763776990972672455650618845726843895334864858441972673890845307475547320839834756036092374597799725930427429863330133074744402589623066220220923233163999498495835634881809752757009213666941902206260334542319271117575247164153561325505588961639949041046355358038290059858848729582552375098581656471092924220532637619875181698719371664322019917453149449252033787063322476012090350708162292881882864120940825134047349434408545774058302918718384733020614141855151163401832543588195356591902268075547967777649406358860801829970000991758655479961048890247157945771562105865117164189837599859637763557541566687659228285641406925533114106516650531516059294659715695199767551772094376618133173101445839570914526449220416027201120219998772320765394914517103436518525110996875134016684284402502675864208762599664481350458640859315466680251242741711025410919750968457447841144333829755518488935528901642214341029398803256508290741701044695759063615234039971945830805149759609991546809011604039359974259322566072971236441331294893347482028368889309438103924991437741703693540922227121422389800773904044444009500607646432620679457847494470921790656223710329857179635413720708996211681882395664432572064427677404078002828118978442953201793438726694804051651234701654100334685610563875141277668056725388162776432204154107631896541085071729545961619613504143077521845692524923194428966894304885257199629912346642633759556736747449259703634181235397660067218992820627230133015066527708646984658259983084531723333610327055643080296359936688265490901435826029305081718478581108470992989057030645808197666218064268349835109912972992006339712109222811859607270866258525362854821239875090177484078848467829071672301005722810768922278812407725596682317521448890629682420287698066627773557808712104833890299931234164558617748226674801699135878205248630564572703972102961978361366329789348403261619378251693192189544174978745941587307793400756409854600874245878026732003820523564855917706639005327075525702146764857146725000590502866673689240724048833783018853369758519630994021388025193890465765916081316998765728026606602981252108741091000690211534041613328123438842064193869387144720966910032992712735330459359025655930391771114658662900657438633274628716763322414223149738369309786749983951759753932695021380454968278654054828448624108421116782276424295483176410714764786619600176113287692174043614366451523362994876290612423843333840374921868897684819206356858575807642591480221126550717227711020368897398696110164191980912701118333467457761636599014279111435567453849894046068585105647506967981573041901453339863982007907495936080929508487049258408730032145639637865845150844963422517996765736599093158867450327187931935013012958584123757652058098552359695841401097315631111490019749001997647560118655575746149263783096519601966996403768713904675773105345571097261718409699010133248228989357680769651322965229170263283702274997633333831868044759890390654291261207541382143511062262298193957077396271726465728705600194735451594943878463208548850413838473462217373347091117934790445697707354855102340505755013702950977898806911537356346476454044698361192144744521420987179105910392480840956025161026706276091515097781352070109816037708242696639244558024924380154287654603201110661556041012588218147154884396963078172098088874362811189407533261344238839312759410338307966202708835495480851114614931362624605457142048159202317975684124539587442771493665142060162724358514876009526827706360054937541017065588647537639589862602461373770488043624526497007943503783197467469026877329516796313157670415822350338292154200144314816308285946610579384531940633218289081800695539630405759219217250813583746762738542324704530519266347649892300037187588364401226656648594605557189483080974112417204109268609065912129198275416375654392257535264752937329664051552611877015219588602771174596298484721111138281380894445267522551574074343599144398594683823320449250378741515022646548402419160519712924386859461785519807215620628253427231796512584564202442419709224633826151485413218292930295032948172675427872353819559990136819875338863919752150963440823712929477317656576928699319871622197885047178941020062035458453739845791344462020887330467489950184195912507917186522400754897238274682440969600900265748677770228805270693850646909169119712319797840917950981370833265787791416623544991119760267024497413005507225829519356390126299345894373899889249609046381424032705259856370306790886202829830526966904168084595755744765558824333175856933608879265570988603934161749837786856436893696077525188529483111483844743159199561248383276154169581773253883424977108928852047029575960380068401452619186188141126609348219819189616042437189258138969119923664045898062902556733925447756421380503155347827770912070502511257663406658158348429486317885895816290622191562647297286250393019580292024600932069620755177104895420345063821228494240963149115215098666885227055310458284061991169529668303745813557499512199465701447832548953706251566631847295705059008677319280639444261913764808767916124101789921501617847773998479941038816191092823212642281126939388555132367951688796659932888666975276593424053432315253872501403851499308522976971425915230295897350778993453344911978828535910305188424636579348699698303059138932053837327370589123592962467689396482625809652818956420127336976864501654009792437159841551532401570844459949420926197802605470356976772162770129620901525836042353715863873213971843884750970248924094665670579350621559188932237531216563031193316671861472294122368098983503286453886204667769892184411063716339276721892060951404797520186058627224670080720366343802527334678756774446315796063075681926887210046578187714955269593405973036545136398191432392768045351201662548629642372341871468740856752533487885451743647170951106136428776054664445101868883762956573520253767697629444078917358871903218229876919643656659735494117884277767651084124471479597536768099345357900988661678384126171395785465815548672073577214084664992876136900880118244379425061571281887189672561408228961038384157936818499430204213459628490863409652453312073802920155410048926307503053040145380001628577076410424615055846515566315153742083203955249356101183028023817461799438640624642712270005692686861686449363074842177271324114047886695538115062585331379762195354240417210820344880556045361373029958662216229925729399218920404674153289348750939297144743226413042048586107176310624562139946367628862063221792007447173372579624782041013759604870955346249170199552189462026113551514004068796792219841617706670283072735659457040584847198136238277203293269370519515889937142520274927464975266032521396239913113097137003729102709531493045912907543058195581125321493875037578167177984228562450561504999618100899339176496710961511409398709908071756530113974565223007713950029656909412634780223338247346386340287874993316083626825821286938140076912764396089114399833032170622002131617669174576064175149259521492777096240891722398872971724987473124594628746006320453550657301360259900779623104789175536744592089469679073612908563196955298914179672876670271616717200225204212163282783015438335876256862094182207374460510552305927441140312081807151681054529400918897786848758114021987889959066683012031232129519077697518287306928273213320769426794518760032272892466294620172438518977552600633050519427853635459377244929367983083064755486140033431139698833257069233245162651968665870678373546183979509935083025415831392707727299708692714017853760118584129034160453615348145479400024474286749669787851618353449074227250532124444802474572000140343909126585105491949401199089059157521029634861880916064760201402263251326279221265620271724737998319506054385390471960050023649466971901736307703809379160117262098863180073505717683972377790900494614126983626028764659409470169716623130399845048351566442315087457139728933111938832259549070057800891831957844643341295035422836912636295130107098563868813172086778710574492683896056549688568493869842123596100432604392844489781978964280708890517469180236488638806571941446101839484871424192190217262346309457299983527315975040050426391666951565631707684679203487142613107254714419752650856502428826159537427880858541209119555725090310613560388129131035757377718494168763306474869987410223798922706844049331074372468663315800008293727139973692578376075463357472255420962106333044794802300393869697838901984348122432344498790016872573133093648844891933354594878447780227888951986830118089430859316638604804032309493880445064863168875878590619148215964879233308409935174879682134921034235953562726689149796023672270627893150433189939219072522874682023420942352418921275888730552077993988755845639637302399203017259269355558444065421853809266343152063588158675036362178813656345193977725377649837322352131932579885539636921047147762777661986197187110873641083478826843874063612419643614456847888302133029917192777817470241832185751092024815649714015690729159881208769946599779641857680460931648466251357197525910947098625907929602304384532999845189703006591065032216366332133795973621874855555684112883865721558989680069834660710968175519692744777668398574418812856123583234433656018102386810296915143108493159255433091273014944730900316002022525550347046790651680462146963391773123399310047871071431500376732938011302603589502612651671269410645785827994788253317342887727966790832628445115589035464314213365463783019685417698113619394981097016674793381631677625726118240722492195826432907395542692530285670650884961342212266359999161838117647956163057590875503331880560813941971373106002539040345837129549651384574879062249717055781779662791445547208958991979054943737236117779828048607500367914001156064181168158891806901663302224834186494192901018067815536920134308524037100317389244224248845387820784115528642695519134493561603676781646949111442853702252334275229836579015791635523405740751394127564406856646364767150092443350007649360872004397546148065418480588779267771842726572353176272413457919851573727032991044372671388095232400042843670088411094754420673021159134635159811704552737475877434685190488995086689170245895927140874269235623703726376843969275222938743947094978262768622515410123097135603465161863779466475109360328674666036472769562913499496300882654713777990878680734778141649108600341031052463449224070112886094662668197603168128588677188426472947294934740258542437844306534719896432744100996244117187534370936389376429396905419853170429828492303980300306113140578425969857706870504213132852076716481261161322337271022369576469619102211399051358406800980621485785006893970771430731178861540577861545991166578103765146169773878750245705705362089257413466862758858628442965258370330568046820827475664260388703572015501529113465859416975280156906414001801658818321864050011252267989408776305795444979731602938198407369386355757090619523969336148157482859924617060724686088137473844581596079283909385875360015549260080873108119790278866758303686908537732892982912181227109541558086284884185877769138225011056658424436559116426849155193327594735778929984404426719206762907537235312266027178358779570339111347749550791801516359689738711309030369497376743758427707853759049985028819500453882458078705907535634933790975575269107521781850285135148419309827509898376051797118403120394652947001952142354137411680123052059052209349079874004178792625601664640159725422272863857406594162086228963749135867571117551219269864101073607074765323853305978581346692580707803616153850992249224504258527934532080405499171994252232061315461389323151098665719763291759733088628138162479313171998524407620082004232978192963138511351644027705684680606678547946322644971385095600095047780797111760331918195460397943616937675360420412754752094531993333962214670713647650056856463715993777687938779658128369338234249306653781274077896315673807606977837365582928033753502297351901558802742820128541398795929343409762155554836622723925068365604735899663521795971452954137227884225427568158995086447923131837510508605732181967732402378305682655426573298513368490736254167066149208225290560029541222427841538422373501913634491723936645238809565348045710244544636804025822267815099135299727482292672784018612455189084101556733327407491826122126509676271476001021168433091130369806956319752643244027066942841093992248379747317205269801919439139518893693794720828115134319914640177792934093155854844034892895024882746245763995390678544581030756879856546592614597320753903485521512873507520158504236092068441443130667349955234543602451755234192979507600281788231848886768304876404496313290313975810803760071238109761346154462550872079884453743698189695505944428334319624620398344817864321540245470291167626565664397067204368073385168395628367906852306156068532394105341791584412366879848985588720359858152272015243847715094990479737322109806169613846883336405732785395799532482199424011496465268654114508676831760788039010702271232800900461175860385435743174451790188522468894587252933983190504816003928483126944994581973200049632141706192120578801266779343887446988953662048016511658138105412137328140040704028323155524127154912302225125464030379632482935493229310292668711434660941287849808805857965730445295128122765797948311618631676110704093293892250600441275778978216214321691819122839373410923811847469360485698162850807067694944545511566002699697157816762151422450846274937934318782277629488710770611699169958383777439298288200476993323797149211544720847508915227495111051190502430553983767067987363113548906311987106088726996649607532009012041095272855054797151136315405795895255316228566769604230392974041235640226173646882121877749595869506212724449249323176122429876246321040561351492059451702691754315273448277254654755455340623192683541852803872659379984784024528784316799989493298289953078292088952035108809889295761919665769240060447259787773209405665413948609167734200313540960172523540255103644723482986660310283899494492938586432951767441624096012789980947128845588008983560925000776740858444350885193756271174191295812113222223399761746011420166075635412041848688580413222689515889835010393848079181053316135418312304483238606445701409541524177037823810543883047942495038480631093681160499600743627532811252578068591363322345424675286140523109236362511181373269740038019915278445527973840548068019711863156844683527396722352435700841441123445116162512374115868278356905432825146729349170018106208759041792201334061624154733348301898233520114573844871571810634671412623557695749290712768624936200792162789259279800030498332530653675858133302247515638091446207790250538428104554760956842450962192162014094509192360280214860825886958899645587759436341111902310013186084636674242834943019555383163940945429735087249108551201541131309426364562383732400439368835837040646601448383848897126256688292499892530754489881661387333797372100800589391625245547635463663215236832668074439313755921508896926459519545002342945967085472712413689553515795675878642450967333808028156205622607984563114774792736346925123170594296849560731619480364503895712114570337410286999032694269791921272833394188758261719736593277232260881534686992065374415731182503010364738743580070903106703469361017175445689190709182369287998861232556062125965294102248923659620013800912556611127200665171270664237188619889996160825896784799026470076152539647081035700644167752506655679040875523710862003874012440155223650561011112948785965324081806036201217370261628662849749780438592500373341674264532741212120190684568143889976429429703251784909327395035848792680928264667499157484893106696066401273867480372520972955250416946169605837065661932891652282701542284153234069565880748500900879626437085871416153939658888958507408576234798831440126592733920149270641765784610521566488057358560836707765836611780153034716332506513412837907774774059605490387924679357840921045628077289148921216255878742397764128488831758502654550801074224743927528439123646504269968362244716134543921555161766543700059531697807783188046200477452004978097895700445089729990119767964958819085540342369456787587724628324815922017087148015802127521187631331816714087959887665695867930596524897810115925682302156984405365821171376679853361961401289240821354761297552089391254669780286645626672018201839702268540491334565406362044775255114009451177976671020390199128532749827532843278267886833414488332895272261711546753522183132087912208516258501991183078795173646940598811231373343714670402301614862336151898608628086915024586942854495476364783417624294829816161022278334576940616652026874407026875302271105199515769579502172547779739940448944187916307466115337760044500527490921965686212543759967293232687340646215585247373485576999687949911704486651082958016054869402447173766396382473884363890719045521959911114906734731824947467289108454257673617092549282444489965864557466593510662791329738322546953080505217672222452578107728873594936037864242897611562122081957810545555484131733305880013705594801983967741203701612275464503577451128533106541161580454983904390074935172134853844675962378324651954121459984119086468081016949473280690070432169375694451518777378808116786665290311442914434182395798444579938431993923403151691019933349776515577364309652374619737214041955727217517183307881090734028215680863639838068422683765489417800067416560121865472199879496737928558461442933235200376417503258098938568811765922353738827067588846647814257429436212486841772020862924410493538129773711393108045370804000692293170247334459663362767878646557520775936949906517450970663305175001720235271612507952586268127221116421615807725243612758516021047914042914869973695868942088401799510862066321071894259793693081459606862401449515194587456299425822724661630753184017729367404787517212100466652345602335664571045434022643686028724839879266903570097906601512946172750007057136345395984345264128296272182042581120152960463621185948117544411235279404999867542741443950881462069764068579083673419580497968890069425904283956172481815377665996986544081652516826772978382006342646755074110024005358999500899003207278657086516130504295799107036804925600649907025227215326685297442327248665937484602596844553412774902918442645736658430446602713321289097522305758306011136548485459011627558186024845952024870683065040514019203568957206415981251998742140496746659528001274782832202748072905170088682732239437388887632094710674578703264108780605211850123425511915633073111213222862881665658184702910181813872926748372115102998014901458176019752025348430838604083905093565281588852877116312107426765816309691227914499774360540677630807814714167275423239191797982443812853028724115875924313985365068291532325587076133206999951393838625460199671751986899193182716592369561653137717615556296563486750837414286426435581432871343196611751122263082605916811007926588589541600954164972853653805449033501628096589563827832422030455521718957248000442227179317789622235028182068530332055351357600347369550368135272588694349878055411490811486069631913149090286569722715890409498189055653958536098178442221305833868793245856785356647855778929978646404898502522922951539016880008426327145655015854809725616106039907735717786573805811592747653825349045770758301650110353219170146012818902984997422115913684283257505804961852997626412277034966881535342599464812303066220885045142293533124417184758163976655870314999278322785590696736968057025278245249187988817795901936240720212081861581667913087378287632270057705982176234821970196671725559058834584305759798407776481234881439530487357495303115735779931815186804221168805557990033250397979420495646119879858647228841415966877194408505288189727321544485472347422736150617383399085367155201327819275356781131635337724660396908783291645969047342715449625106417965079868594939432054778315680473376984512233981930578454669998988374246262044770124292766631722390527478784509826121746218277588985541829196752827351305301499573773747344503454486477450226119321857807006430046894573625882251012069298586076410467606040067829814232148587733542005966228835429054986842074917357705533976491680973325321833386852989866051873303070546367768299626694272218967085696439146339346295783875484642386426521844991221745027181933541315646008809815370095357991871860630967635448934386759807636653730943957042403222602916789027604351041990857662269548771828643095712157369050460233076050526738680467830056953295774609677609467117692983439949833992514836685902526864843033358521560621318381205178903318926915916741745845866402994078969311564961030274849428890915721180215578277309548428578437805924102485996994461558261428130954299989205637252304183905808324946326601968924811005137167370415508223795478348641983506220872036349605345159378257075157509537448521881725118982152930894704834799198233459525402835628969380723536195027973280385843078376205410076792326256526833760015321253200301629986521030312575406410256450174687191526782905022404751348762016831348347116980439853497686229161708695217598103835236305301929155398660291210352005315964050945563766548303504721994663944948520758768517480255095397896939939762072642479709469943098057682661700529978176466793266311136588184459571048159376958907006345516339471949359176005356788460895894741469311591358295259461132060176197308556355806549820386071834977184793890770175816434408206327296635376197107752356702972664158658923239008651816864450654876451501349199953573678309791031116539692809122520234521255509093220134873056966649145379774005704614916148244687597348396723895453496333988257838615310806881026335259999271201968639024762708409271659023561356059746202964309796318494788871827031629453682001998493891606213131321514922842908563222447474163734858583596428825310731352554571977165208490335364096738173478827230125881271804736489010172728930455103906281273285475744233590863406138988842953818608314555561341243356399508007549192747397289816670698875611136822459265717419060836097538373897758060332488116457226911267634180011703295630374074895073692916083031568743355757824049974985388326267309685407153936204322514511184440446842616002995358734577203119227935138453034561401699844421087797504598509565179473357794027451430211984506579039047924598236734262634119349800044478276878716900559818706542743646163000417829925369697955510960097701282700055456326509327909092726438764614823241487282538004600324669001791413665794508070709616622892267421900146325130190361583037811933958139801420357966024882501245144620544656731422383813479130627640854008705281534475417377327979929864272177103881241434186172028793173550692369964092285362070996584845910345370560977013679765546468136011718942534181408352529250650637157594329089770721883222976767031876680275653263346819600027497239752473781978672522868395570673592691707400380848716629561336514160821061176655962234168338108779622529203539145287462108574392033457469522234511039135006918064838196075000747893165523230371089009716721898168530326007807256037732035632613312977932420507562641247505424478733924137265570249617945736031766481907385529755885742221299691859223552373227432925625834592307476123707263751960662333005088830279008899373551045677568136707718420527611123829444592288119184179731330932938188259976129917151429440658472503524039507824610546828101399139597141507995545542228798823179953852540973082118248229024649364129098106512707697847777311664303577561948356605517256023739873526190532996315663630468742008727266881705609942379836487073252190258412797129268732162634665145284952251620059886668652226963961051666943056726383455206565571623464283673713155947985388411689031779525946951070647800549143914946642134708342477396679279659447333124390508118296871199992483949670205190637843854412728452798949151785819503395921907203948070577754959419933070964543508353712064065445044014804744008237250913044375438333776268410856902611343916268884293573000468983775012823428994271143328904116625954892581980721967289879575398083239455120473478512885760538505397472843228024159111261066967289973629542793177144387650276721315747637280211952717890150014006937195428852816724093079653880993763856301172520715132091166993114620635826178283170336094947709981918700570945854315351914882591829504787681594264002396269708937172637679127389895531265714200707431968329942293026657945990830058757983658256002176463800949625952430095847581362250046342142480350392146295107563256541323483314427078751171063447162346228798444225125706876943070062574103000277194221307392904933353867738716698632583068087020407371679863002845232127770113390890303271990776541681137090942970217029575566058864773773514176066456536977843485426121908148440441254258078842415868099004665892047322374959890853739158756811623645779295760982056475551047061265080460065678710849195587934727815610215968753168213386868227963363444993215538841151056395076383208407065708866428810771345401982749222181500283916748430913801829765511032020645197146758218961320691659904515363079098018552410917389447616183605801184542570317314346593190515745900517072722897997081588779361289223049126889026517444293550249703719068395577671684197111920414456490475104653938868848151540800059848509422323727961261776888298605547154511633717369660041678044210206985073275663175095313603766951401229706961385099781503741553110599560680203169792322735908342774471392954450946634627979033270319627150500401954213235264238102151239492507226855479695213810657840072289491583518763435131760541898019194220072246216586090754264100427176991582874391355801938659797102376921987424741428587477973100718599499708246924508448418368691789785830521059708685884948623423638505364093790051261597756140104524879821850482372617599375551175717846648902003781676386927089525528378298735754390152749648737076373499263217703952295437506362321575345049086725749924303701565089632551734612843636554787181033980332340639596882153221795206607386303720942608116062312007637665188449606555729179748537439238224032230403320159803803124635960607665203071347716601239032911282654283600191686303433322932702056694486329050042009548548590261366692916352835303779558551103609266573470561512047107250010169150560404995018479634554789422386682310638913397229855104045600240177977176476629854290762132402510343872985409753397231365337385045889795788956781872534123997673356857192507842340467540880153130240163798006524503854988784693203410787993442414691934356203609718291218964371341436295403190841341852208409376955068842749582340383007768306241686374378361647738684068936478976896333039854438194407886297900091104660874168279222528409400908118360116649089091002162989604000436134839575068614888266333079998467653122138709080597430621658310485343890297117762865039311270841185949742864336358545733213243018492229275969265341236136971296073597994328397308162412898456445717363689689643747263410549397246738515929545716053069295232380053433274487383583727678934691118131990491408662224523491532149340863553618766400757559382463107944306209636032886869494936949394558517336016491359441104708332281777551729451267116938034333890277973448729356017982584668270271111113582112060242708486830572722546870265570470515947616985719302550469313030005523177074923810810779413755024649384000445867114644508970137231984327977928559183616152129712597765001388591462607394213495926072410330341858369288701461048442633152403457784368997725313316727631760787344843503773955388037573849717267637411997539809081898607055883761988588494956017013317573915703600099050255370285056499945536267205701799259721687048879035342035762435276576141965227507741288846211073315543528451946989736642948170433976376303267638598601224286111514054210769792023848224816452762669012397871747542223164947813179367469775953445758777405555373622204452637751713406249418772682245225124322503307598155263423624738401526228036682781509531288632008800292166942970262315980668612153644606122880879719911937234009345341694938458960793996094887318229185996001003891141538913847608715323845442738458607137558278654360109999005284266966723904558795165399312446930634387773120758707041671372798755513019015412263015086247512707772234680477828182933408834500610471023328095880586742267322493526446834008183536806116201648501014423907363623530451136829554634802203290005910577772370830541650473453815181868101311512515156686215344282574893900070430090822301290034161887121842662668980411243575953620878527152392249760654778649419813728461076274179116544716160903363799469819803659558974951618621308542339152506450163717469491069373617106081689784388442343848903679806725041878619999109475981981916632033551011931467174953265281049997770254930190895571430404597818398888353528837836478692696975464310616469964813224760702290067628170277233533403887704974528605296632909930371033351566075627620160665806770037395624286763256649919834348910041968138934013137188033926982491427790392491314803671446168997056049581076626731094113363487986294399125540034411659825109167891462205347167723259409444143626417283643359866361283900719475332819326898580114513584590806623676958491492394170842197976117808201233252572023033432725239393905364259052206241691444550644552645344117897371012752282874478174702561349692347605806911292428425996968235220077341838292461324279610346027200006979688456072307111518019138904998902076755752889949034713438525760322308084990447968301079949343163968433372406848093431273997552894328582472339153293299127385818612148213402842491985475381051217173719208773696873505212152879204377357147889840770674883060222370063550015963455471599994110154153238739023869820290300432571771517713416189288565845560004520674181955358023863659002092203275862195119683651032254201179907934650218681153516189400364792157700808213702640537358992670473191147016423499193760144073702114648248529372965715948578470570243583206714020061945620073479820945039662881354549067481428217670815669173682487335487416608437780162739054455762245884800942571455379349228249678221381740647515824783923537221418336715211439066305417238262511313755051332633497552968218179615648819753203145443989258196012361114008966501560729858796826892966396295888340556862720758141954384221358324941704804548821799178586521720826060862640906010547682501514485852771877887653446880106327774678554822912747417876882810600317028132232690979275536520485031287794715271584014818889454956163279967204092975724701687663219323020339453598398369048950066798902520318225146095022362964481968145818817357673411235362154384640091825884750817752764915047681494181252297882038413256192592534553594702618543710693299142117439060587721790835694015634407031052034069376042083185808036243383770328242222004391330909355850265182750693833509868895538957585384187046587687773331397628399052338890408638430299440978681973107399281649750592893741386260720874534456685767070715326361616405372921595510478673131134976515261323845631102988175021368370129306318524783869560274041488862299524692124492577286731406772244929173769771577881526340511896225402240156370602625950667476010316359841449352694306984106144649546207439868806630480306870676660274807146019675601105583750062816318729125155167160068391991580803456130095002844539095112912043796301578280136609954631342231576083108097031693074213108326301999745293007328639305735104074343838460412373957916087316252134780667251534674108764585047985910559643502610964802950244483240076628000808780523244901658464366909006079148077197602249678625650244265058326959355948008268265250394171795540829157904809332679551537462121478981482755102769185034483827435049092371487683221104372723654806341494028633176682860666054941552679642445040766140033556426687035050880771167728192435120194924397946734977304757311827680598094958520597003338986338082633362000624462094781658286660234176037639142144546989821893676985244792625758440455796084637440788772656157889540457562981071721766616086275309682438356592773770246779065996986079078529453612725213310156866798783886708896810463037903838019318565597766696393781138266761275891061314106300988611882175908462609382845339070198083430444282694264491422546802534287697532116596873748222895409873581925690991002905381539903214862154027475583733049198239712420580499887600938307574313292557266225467683843581709920273534767790852625059458108201836108724819323054013738097953617757134717631861137263581811877190278929287930755551677618108204079111438292802448798862047624265600642313325413938142394310889252036415979046286577149199490309140081887127552228433368714429168404144708749905663629707787970765750724408258521371618026934431665662981724803211938540226660015470977164022816523047802629413029060758099719177026054271444976551136879572711414743656779651991052242641144862300330263829645461806864892525107659858677157018039973501743532350683951756027633589032986596955831705400373365967549264778649314258309158061904106883190961316244165779422255638543981559579208154194230737337646026242570595011334238154917816283610888454241485421910332119559947256396504407553752459986004522013516129554637929703561133590213131676191138362822582580257944853776871908409749653740262840683438743791556511612381311970490750474305564249502411056627305888500847183338429113702210178690417527867759355607367405823631554532552816238776954115879491905081783197465725843799993738045349218958638336588025705488487772689652150556716669938133851278992403078163496385255117373948203709773783316289744503240296824060972923159271015430594159137734576826704266332178562655925258129858211730190109354836132354806081472795576922149766111529661920260826851883325126787500911594595007963512245068905042220498735721955185128291069261314514069562858268985585637076916105442583502710310744466165721500162779882639075908836476983466269063183964117080544745127408948235967428118481636870049702544169839099169367580510199652212174426604993230538771158985978588408876780151178900627710383272247659385231010040772235044970252393806858136013723262990108551005924650267638158726344490701876037341990074054966999900218255433282525511151504621449657163094203944144182854552395574456747130069832330363194651179492511782287062924910595025208645832558432846503962680232754407363565878260482476805832293706851963793867854710222066730377414015819578435883701939074238414943891611643826867209859781063901089570381806006363547953628776435367302240665251779838782873444782211615109490260513689704506184430279784230852010135953433243110933682462477359747308650675091585430853531720577497822025779395956744636334937001706357263528674480571533941723146071459615328719315525195948564085429938305304493322774236296144324616867244207440020319624612774642666621532972818514840577428692458473974968418751694884661051709026588580297171587854812459239198755956776609734144519065120186978180537700992991978059722215239035332805416000995562542112661897216749748529075636316448958634979286467335700116901519047679670631540943587447052839049452884513034994843377865716588779862315369304901846190982232161519753619774851412347624014371745639025697483136045566802530197876821999144863041289096083612638490079324011007753794104243077846499032582995844177024260228293749400988939683273920138729397138781212390993995474901230258425979338066396227684346580128008560439712551983508147336031556573817739244093581865793502075644490141449350641559090183499610571908671007719700012656788915613306421266508511950289162302261588649351229628895444350969334364521910042249998444349190944166168917448056893453079411259962819284556024330416451437587588442183352004457628382564290506471136509032766091496354408849221539856836460157416386566284024784525789821863415125028352653909130877705105604583538672411612108452638101599014529005111710109779977474987019284642340317454473325605500012455000020331624457157777922697050312150742309308881519035855286519126103700625481097011905494059474135630633727831514072323187810458105223810428618957474142072285255678324948959568811328246193476174977582314224865731516951420805218866171210110844773034384136742635316448460310858718004103710491598035902519351936494959259733883372028237130945869684666527826352248652330732251565054649011840738370898498155450154593161105504829115867170706790904880671257588643670214201789862826861051363975360073926574054304886695024122818571020044966772117388396440269720984512665509115132788556279925611926940784852877282943035543847878162642507483602762936170130356348501774842921011358467341378354469927226325890149341001068155568342059556828625335895413610603657306755353121684748959842777456191064611736594911866053987492496889924622235438352381027529929714873389317214799978374492505057405632736650995056325551773206086205363096761851252804850849954698181986772140504638552092773407475048933646970844780326697280655301576978108353522376736596215875373280738550709716467866494469690241233998472964368522071496213183446571805120358363307872372363612035146356840906057725898108284854900266065119657227268291370289040424786518316233421252983075724408243402376391849101551952398690912622986802528448265397102009843780247976506169356794950946658418720131865885317474502711833935894394243550783209127058168336509422840931290819321705158803190079306110861739620566652990878543046617430931229151346051765539370688428121889425310676175207272936343139473737394421911326124646271777245094219807044026905830151066454108768998675922853736071349844737142163972131240702618894800026407925405109628278001451031917578138838823816214045940928149150366715577416919503551980398419135331295357397959772168304297334998366770168258404959865851185692957699415206403226204141730051448030453406822531356428918987877231223352458866920916004142942319281732515946376170008614032053221168651580895016768405999204213618849146397420244285980771388288699730787263727764400424910955912225330857239647050886540452342953211584739897280972366269244600694030319764399252856362091805624525208902459757393390944845142395129603330109610825881389108857566434746067585728993370756891494770114323925122671005994059038386466528974151413369384944974767572128286616188159130412046348155465764001729338297024482948460643411820203438990751937904478213682810063542520390068962830930189135169325138277547209166287191831103918074570591277568093295052486331622381257381720043450180068931528015303593607794853479283234294719027172081704924846226919797778331699146880386731041752312778751935592685629206348594166963144237998963676880209791534393885604806171629509542094345745499817815070658115319265177537976068721040697551147311992562415934323043461652223227884929443310520878297131025782230839055970390413486554689186024316649096890190012055151218350220902791037523944580450619293008125582375139324933329599643013722403871126093853534567550477212412436906309356135647529296205770835628611279958239703446154709981452517370940642961449761136868121755407791060769611033344148630664720229212107010499115039700507420201884306048566300948394332705908299105284938366409934739399506446478941900180814435284407150731268947569625717781786450344272732405938347376836740266282892426376333936572168018597833955463248113161555085680594369921133559791112884815594200643643107710398219635614623852854331833899582098413416492994793764513216424746842492923665234343433397123398833948422959588897856499955512014630973742172009264472688146140004724460437229543277902523861558865861692517911400133045530218298977709055358390202002921576575517874668734909635798230910463746157467483254113362986794048195559504628050304921966018803362190506521397859066180083296825073153907914487937523348864938011456918395736840385347683448925140974530061307416446220909989381009818609581380848827311424865225509664193170319470457337105610362789907190102985573922501998183736708687570371842382444487242890173881676613457892350407097846958085278320600213889795603024972262413025263898927859135806769100612083796702606254021979326569443917346639133986332382760236721572894144189522969098707656442579195640610638861502491759165175941660598654259377075784979863890762159344970818365549734299575250686761811073632362830264450574474255051622623636032606238079854462517829082099752320299558615975750857275150292744632433279278542461382035552761753797979483382173290931685817119992871210356693994125632460563757501494661391264921527226714276957183566325826083152938579509300014645068098997710588293051612390388026294048719866891712792960950768496126331828086545499333670528290221793993042100104605337742214360695370746056363583232673554413336447914264673254253036402645820347340597729473217516057948163907045221938527719913133021301882697347726430726812203312782354169694374430610633605711583160996610744769446720204067562042507760195063881140485002421921280327736840582379295034639506012142613245210213523662289550192949925488878970643229881672532565645011138376194147782596608264801291195813449401788347087284118915068031013838528554332907200049705685210596943306706072624523950578035173674380460289149766082480296376212086335525942151769289494169573719343391445936345418151463358460316462997370927180128204290745052467367252293494366370383221523630890013378861085115474484940409051594004231737193192687621524498853227821761317186820930933827000191913053176925215794851164837766428306903274540975309944843685114594228953800356279677441393340061566159924239251424759247834110424448528351594096326595176041172933308078067592758986905032439738800160643772063205434782934972460484063034553365742231754354550835457757776420958927594032048229568516518509191340496620779502272635579701432271594273659083232504935051035892896732069811956246329603976777470006939378958051215493226417983286639235839921809894662442887777308573395258848840120840626240844243775702433759268933450325758692580293210839607112744182167364621911483693642116083704259443201031641894023896352915028483810743155711674067047779067300064311970645744634735805582332134053918314728563571765498920196040023344433538171153701452072128027177178473464453235018975444248649374424970745788113644016254231020897164017580114986048285341327135104134350646661227479167347664002760955062081899922933699742068001527213810972110286908665480913531898965744729394864958446547554566903143298202019712239660831255163067858142193342856370316289460620954956584969347673080688722416049322035168141431236574048714791595992026678233942558341605335866439400883918842420031936154766958737781823737924547775879042113450066341453403692480161686704754141036469632407929829226285784678198786848302123359034492803795655898167367171324200014450566635717054722652560028250582490786529932128859029899367298011572161907139482388659954522822680151999788544032752038468075403248855230163675038809130345347557517342376599719365033702182896015561206524934972357874661637779799269557573572538593617013914085902221765523598579795819395637398417475636230348000147858002643339715664987227946779802968073802246273750603801972168472080559190678972818289498966579732053657684422713597170724830038790590346426010280946920465903178027343437930131435496022125725417590908959809919197376916584906603559800341175342334590681867223496729925161006852550276496039911898106024433236857979420285122872392313727887885288833239768846674957268915664808908399039945592417350628251405849510347361781149861273297791742431898036713168774684914267882186835742383385325691125479615727505442450984199393676031443071621821820583542539248403139293294580952790214969654032809773930317949998301148422355777344402202953885300981331741300824938434353708805382000267165114713735343081486295898553131336772821166433896226514295759499554552314610099001082020509878498075360930691330933537554422149233475016286819573682925250663569952815641586003043368564131378395596288509389293530567804180851117040670683701149942543520327112717333613166346095975022632051202916879905617014472463662674512566292001414620582465469666007255865619415847095404707444365168533308147410277159715629433929484742337376582330657992750390664632287169923618536147920907816173191392561214078886580907752884748185582711113711953679923260728792356724016968026498277687923374216921058531607202282609831202289593908551006107281803398332627796365064988391485505802890325025028142872938991832310781599000033477208560514650184345317790329784931554246628848591059511300109013034602097890915353050181038785992943577008024560078493840715983386540695546437889624509870615346292392402787343770935003472577505567910717663240955565633411789998110664563636470488971675364266061581666875851296453506175702175010366387561743425342862597008066901843835599469077675127038965880442708645954616257757902901972465793040052695071793733205297379993884160825760221612374826564354717679805795364626506551896734883703486566675202287477752614875122935417502630794521462224954245099718259696312475356462987777714163397945871366493242981701492509283010400976681681070888636715808522910751037000244918296124346282208448841873016672226759016651428934297271337865082145399353702246112136088243178820442142012042208227379402055522917907712948599653469090813774968673055911454560915041844467021597390931409538254950377983762306013099640534261279814828212650004522750664407261619724413388792790457730843532550178481629321979366169665837334792472232133067069575808706608874777633932391385164558829712139810702303372445729747514150840376085880682146215463809387690711584093277759341930896965688362749544065989684014978498675500603910636284225266571086445528998498993245493890661625494858839566609798373946016293340128358100440985682021143307126016795996622257376371569549422350796306123032016641895155558136085488859576846468561910505134881288696116951081652541422773702276711340928062321716193588809203028913298824482470072003824005759756714505757979640562846066717878723943765562799669334751344523312994860056157498642737988884124836391675433500829160086795088857166645602122503425821924386726123863640028395071682809919927565463542899524695948753312359222216886214198375490854164686438153523908974741579929549256223014064931371672961219610842851871982162528993098649387249162343807938298241847620156861326276542695496577501742816076593159440094850654016557805202954046209886689455580759521042266389085444163125841014307175145055971868304812366692817508290184144488140839523373434769733191907677172019492111723790701461347355825216606816224950233926999297828673554581570331643451121885428458932586493512848796876073760200407051925510578593265393786616822694328663714987089297589222909514707442950100079032239234611607515591563752905308168051586517081873897086313489620035090925839967313478613418253068387269785783236912984254996007113339872415836665491889592884971351286791106127461734050618186339360300287749726640500449563873257610804348324453430681099694584821765554401751875866104481681303106025595992672968499558637251046600190966610259268503806204620274121171524901818105941098317589409180772287161872057758127035539356559834743841311383457271508195774132646291108264332741225527197545100900463161143563007362967058105865896648977376005228416276346843038670102218859694591848394234478925288171193494927517791376257747461474443520131245028416738785844602758604027627495268531397141266023839322096133729218563253283693001258457344204113621975884609081140009505930069597999659931439787299068303541350094559824843198989010697403380815628046087894748156508433218841530371845346243748083330605763940769749592568709546632947113129583749101991794625227317316514692798094172661129562573334442324056231357908091025277232062675269043152843125267418835091054635185819304838020301493134587869853871428959213315748584048872930517156997730555992670897257586166350603036355570625703017551784555456141170485527415567166337957193263568657631859456518811342429433317595811615006454012044583867744530275188763059521397567046761911846390970802911786641592571552583741562102435798490075288235094242016860559886682758312234761947356705907771570419241282938624548079543181014683159010959580187507222129893164822025085716615551998173153604504802142107411611085087141104209565464610138103470213726271149074684248428465678365550223498408758885684923087326465086844111958307737884158166099956214905326218567430648860893584322641690850167174466930168477317406620493524848001599566539652885259446745202015606118576688431944815842080575374013018199716749042947525681544414383388593771137924483132256574986334434026972827825057263886988141587374066820204137397532009024071291066043285199662929160463195399942271282697492312093884105434570975993914543930127041583418586738233969384551979594294516695358988911055573912658974354686138759501489718642089283956269150844240971511538038544484244816617003614786581298768335582691103043139935534319018590333488714241030698073260434403054155588180439370570688379679657326194097494084344201072982985937228093206727161358499584820084269473406372491448952112134058659617147617147928476856717432061664016088404582287384549177895991369720927716007202707871155788714144060681878303833079456986325533957070968056236367362749884809910374786753552630158948647711702267801518151551142295990925731035909880786644682380594510986796887939116034967142505734166899226973798284039690837196720968846529446142439667994024874927721089267930674059318757726190819257489334212125354650237730106653974958716476804662367849769502658905597872323245025403061537415345706298242864784307952122486595470563455559078334419993966711965234247372496763260057911165590829975040948036044600189908327192497249539075265839381066909415304516815113163496233791481841332566214367350011119083942736206573420404605268170775687615678171414322826180423011957531951349906778877840493993147324062308790953816341370986778347254163101437238715084714286041261714722281939189760658486496012135858505333797858418533079260594122686131487696361185451119719604596638245355939650772336179984618678143847513424669771546704134401565471036448037216864800617063826953429224525524520962938011786873570999243084394016697078896234919076108804311590421019876549378676145330797858550542690457610047579508609658099356764583461886430957456895288569414227076967393292637625000288483164938277942469661602739077103072505100326973229364582521425478287457460788585973925807853208439579361182549632858106041159993016138834422724231226991600577803565698903250346564737372518704431378460096092790276382527513072010014824224100349596698199207662383542909485591860268922266801620993329663051275941263931194754576865755691360718986554430531153967288162719851089662008162207274258470135313952754603322661758364371328239877187758348566813746618966775160586833194157243995817598174687957963109811745488376249820854510131914619132779757003084124635183268844913651003683141983957311535845263459756778910083779702136001878043409567229075748178977564488428227551228154162978268098870218478915605588719178446762926943467993432624600844581045402463328273655466247040225890816883370623554372442269875375523288630014122355080664512759920653241596284280615323430618735734335468086661742335821158961784140489182912361266143193126003949776055765193435418811448038110963942965440712327642089073003387881629647547329245529821898845981303402599135436985111786229787330914459122561312559843120717032150385954432350809093409371324730692771238932910739728090295830673222521274540399115728127957445039674871467069299901694769998382983016423386216243961602014302428825217684413613816859208698171515056091152399286257858798115802149350657226136832302192493862533723471457924228250882805697597543580718000555286060721160348876985827744173646657508408033276710275764294521987921838311006095252690376727776113815886887832466452690665731893335721819068433680373517701804974341957288279526583537698442987094357031742585695556033617291857949854853529953090345175178548521407929520283214302434671673605987153447421224525154235879470728982286376456453237617272396542661862550391793071100398563540120868661411108757172451436267016986547464291415845277381845089446214581228631572335427823312900295885593390457966785827836105879972916133142233279158047571914363665865580019206147399672338474985860327466962751861369404550003913565102534919377467759155653308832615814347203734109673833509403046854139798440155537924715243689463858259969233293801406745883335072599319688736491563885552771653208358949613916439921953954296763196913299587469908078657963790849894300446367292347470584681315948327380493962211039656116972737435288879555315379548147717252187800866964076292038016931909219913454958070364521749193792660923689802238307549135478053869316436299101487862416805496849109015300822656476341257549280813338663642036939204647381706169361563114049900814024257954348437150574343101645378060793620325058132470174877051523588124201548163287080120059504446119212287804973675363880931428037833664628550973852796673583044920743453262880593624299831181131980131090057420365328840535430241568803252243518941162974160155924045845231567024496655991200939619691456278453979201241161153878231356949030373397290655245870264039986555050040400262703661559658065975518086403348474452801723557307629214312051024881385628553700708682562129552541332813864644107487486797130892319096250632541960354384114726886526407086888559121708841532943552338527501939960957225509135691144925002811087318989600974711665917171025153430911692023271292961404213216804612413669652958106218375413032884609631153294588783585780620727166628320962337249563744926882711496103684805128483209312354047926235324690207187685551895381723622126084161949797418592149111857319573430367089297562585488611142299565608529627114058230117113579833776794487096036447561489782585793965404119370097340374087254848223056509728907914724837262388425738462249315376386462385589667459703311463746288937893198912915561058816757616716261060510110526115810731141212141895208425820278230749566849966011003214748685886214494103373775008795644460845642177515794675701514767970754251144388876609161729776170473912756349965028429596789191091704181056325430942419173774878259663378470119546713119160179810530798967737498100396415065822683540575913282690209631340126309855598798314857349500532580292520981600369418153105742084179343202428194691441363780215882696208894705661411086879556848944015360797607355613241060898647954255315046999958471117917216050148332951169982815925622992604555717584092199461293016924570336997306699572005078135465390673319256841466129204720836886862181879484206445671979549443918047220963728987242427960756926799527661498291846690903780265326773366274267229531725140751411802161296283779065676898300790549870422663187550182135679291306500767570835194022647693455965101278569597453321864635652758483346584161604350545366120427973052795540212572122946769353029658893220372660560322973143502738084300294289324984782827573401421528177490521559439345592670150711826316519362204063678326170305829622543410407759644118436434799267058155114013552447098608115538464699635751494448782627959376158771916061238504335342679037090507706756531588897727344458699599386037816062866027528519513872867264338079946851557137871695530652685859046973944122620402445624460250191039820430047585070801036259931323294343140657023214175882857803354991829354764498106997816120559461285480754698130100743092215773751532282122173726250589151834642861146295373725579404384908120297477911536683871678479487461197614630503419754486884530347910090151336887228902851671018162252109853581970568092130668625922528959406511803761373355188306900293193512784375720003883165673819581479766376133289278513239939238188519985798343024169508673125892243424346799448309783564711936313423493907612703523066642547489020131948955848642191421473099756503897678050258044382220501900401693586195091253735648733487896706417316060851480764112419536137033011767726883685305978599428655410789772888982687087033348921225902834726419212613318256365288274122037975349203195015352940010139155900571574046788344350408627452686838642102349856668231233235221552012889388865653529028125700175208770755638085525039951168806236607379867004681514221709300414723917260582036767892401863421595637534997499334662691370913818231685639318800533055866614242000486593067089732084177455939158343223026573611970953136955492687528915277385485844709825540507167417834990704065085266803219128144644002947698882230666265157834602385968758251408256589719181311284515335650201173529275721840929192465717056683613168730738024913704440520122761712459340115641655869369589461860115181364108890693205898320666663609685198738280374745592273174632520189863143552913139002969011617678499759952326609562138898363676453882496455785959508791743692681864603662430527716575346832110848714497860094027274763738165192560161451122202794509164748710673100369711932571368170526381750530176618601029096201804121330169095235749987773442183044366594495300439467736511349264274336708678486717459081623415788951273775296375327098312083667345929243971975052040426669585647107925871210767923331394493740947332192129033916682272854378416736635641442803400308124745117626867860295255171277400849519882588356732576556951854699516862531481804571991913495433147090263842192653382195402824607965318036789712969231886810269042985604959642100287065214955623761143977041276234131644780881936823857325022081488096961107479462718103756987584954807610559491721546121320482449251118483416734485554089274725156552321876585261279776369089124839789660079657150709406009016547811178165453739989965567803583460263784487590700745586826329760814548750039775302699922985670716030176992983649339339421394109329246255391278160032470014487823175585544064015441188173089270724837364127516619582544609296671346527159010983814914463524835970198600774325524261872816827716619490145040267064722994031485601897434094382768818563582108423403640872829446145560870438313960327327488563761101606760109643431732785221286320242473479131970422101323652826901986428704551195278862593692458755611943043286292898783301999327345066717292187639355059889878897290677084210679335850768158485617570264193926735084219455270173881759726853776613199752012948988885896943793926540268534910495316729409978480930838668060082147361400442464174239021060852965623168305108022405966312746721267194749774347209951179584249869405509445413194093241455221965217182223959189816181858529085103781933565719951778139683690281127142904538040237359538499421604533024784983566301119642603155409489430016024957431868057357163578648144404247427567971899481862841458133885137206044528420957756975700094714452961868988233032334158181576708101849326768067317740564560159784698567642512143722248563567404795050533630768322573878545704080126964712217059282685362368012718945148037988346324722919656568633082966626459487487640858841011358268364623119261529216593448970418950287626158722924789291847004739363368119111147963122217002388518647037066891157581767941288375695319463143539540915373912292267593451665228731867058804847934060265280915700216124766855063373984663662511751005132966628588785242939780068378365015723867925638976116233634214113298384106048104508260089994789717095981451273617799902127462593561949939015013971071113457939057748008908255095516086159896471699197841212831465963450126442221150188343884182999068879410145192507531784088730818366404512882993959556506323450107189335100402955473804798016932308903539560707411424364634963597356773220843698094532408798003409253745992828124125526890229084716409985560010094494325323675586303353298848497553723189912309538116643193414991873047913729690455026589288853502642998842100725121148065766317487398153832406221040623003216409287128803069442463697068282480125412606366779576836172155275783791510761818655618615664655325156835973213699494095771191222607609701669008764798748389240058196617669845145035621275910486275194119287862672114352731326038240334272726416354377429148366095717202353678654664490629292719676475309054559368144556702060986424731190992189324145593701645735203336695962153565343720685647670772955036866853446670408656058805182569767411850920970452750851074476882831014975855065984951317787091510591201696428972108594295009822792531027772538238481227859849607408946208097951837835143261163126486643430695134610785267054033776664374415997229527172549769128134470328218160559028756638195522552542888111093198645297565065673877969033254364402537236451351199381205138273956977659516973989382181572572895645349566877713757387510027480346544841706959910902325058828439976961766549196927583197320476299302962514986016645974665690663838903488303524495249608741586297196521092798557092804934701472246611545009860159574380246919900098633632329668676113513119517377780961014854476276628499989089236462134165769635132275651419893818976881866919000736317218481145350859043967715333780864951311020397198903714466731455802462412348126082326228259177891266320342959896544336025412347440585285379678422540379591802374558269391242614982096958619350597865469543745490258894537272962144910692056991767018203441771480218174999112570149446397708528590151549431740260166635212931944276091664076254242233519237597826028442393946360033856256146970788242574795778883823931993850201224512964159741265033094339161551154205012026874388292606484366629212607596231013086324500018406594127897892495337393579650932523760391509604032494488799883687415710110240238991213453712148874142413054750610807414187696421105140350994276121540967014164044829207201854996863245653941208357056717551567030656035769637711660408029310108803520424629687707795092571946967401901291850896262300836867651679147900884819418086947736961518216344309203937104873103030194597306033653798545200538036014412930204552492019853782275332097071394320711349450232672571601472266882217671358498861433802368648940781753083675843191082034940196522684506062897609445386080064720627749959705809929148819266191056187403882929316662067023609859036320220512523951997077612677865279611704254235170617902101975211461931530194389955116518495643653033843049498401089146751581340610230540430933062318353739211475767527403331766663531028742560004867943685834346664963378105002513636658853666362851715172603792424778689588885017335729230257610549149050176587510169927557049715569922071690887751267693351907225091725378483606381215548841432094753177081749563328054648384557220072325588703507161538941161535857252767616357777262135722812940331374391658976329107752887390543881371857520356656399999551992359152817920949585915970836763887394445904618426616951786438338352366295462018236362342175901120707203560296275408532234495135269804317748887673464814502519107095982769752063513661682707849327628213263921254334502119471494543809349521886281936862697413813161076327867461351747788784631671920791427688375015711274772596949578464189170661321698530282226721722429140650811332738489456405035744810072460504173737852533754319115344544021268946153215321245784408809769237044801116444356343958292968190189831188942830732104073603455351924355372253510608454580284918187977492097947412592823092650254464859158974632277455995012342032338727107677339397153799620056069915051180916604800823969443376883520385911429066526166066343143684556882249223897857463909180575476833252584424547103367631351211796056213593463538141202909373702513439558786415305059359352941868446946941621588977989470793697134546431449613866538515700089079668915967915036044028383052496425513842220628675958712599043767221149131713409338543966126894138122195825840067968236018675742116655867188390885702425415558594678972197576078514981145969070121702237400376669697858422411688465451048415355575027094532593632900656382697852544945222645482978692836439925400700007836493192903721531186384498952198744417021494615350262008663965470437359702198723386435343535745449323640379714071386358800543594826031659656486762248636969020225112029842833363900442304049165636531914672165015188231507624821560830786737336388981487669324457174577009777593623805978403244068202815283364867853531610089924939513713505391829810166379587208043307555916816605319630220215134588943668535435836528348278176138403886882306869750494960501720920815229479515659608471308398688544732744295223882067835255160170916951803170532373951225879655816345114044402690260726803062535351953704073304306659274725569099178645908465705940908700584358617329533513279530509880084685383625319232818743727724622274357310502993581641031182922340805228272839120705492963013031789837926912035024873881164717947118642958162453995833567649934264699803971333456092542983393697191930299298592890676472043831174152634025400099712641593262336934918336721111558463558569571908043209657605741539414139765505773867397960352354784389831861557058005361222582111815253918012008351928995076138907688898705448437380378394150854572098765768153160298729343477988815851446301965405917709376326139278867669707800456068023956195106161607725020270230208108606793986274429150344911981977916059632966926382539383949244967526548961772418680602866650259432337489136093319671430197624093270009866755827664206588695456201607087712796247605308743722254783853378493150395165752922075188206544523670292324477320203167662866214776066634405550026820447986746068452402450422267514433586425143871876236077984824051158215948997189521491294737561303920389051536262121713091319591152982490676845859031624201072956086796373894719981031120585021032023240471741477644574790000083780088310241579377581165628586484070510165831302097913707954446386783067033898345452342691142392837233194243253446159863444435076394896449074229219980615501937238481136555098712902888702724264962992003380937014781310707001664229422053972548591066850897490594894460151824169529613315087122848845039878422373905832718026779953501825548420080653164072752420390655320140633179428482483966990787621678041329948308782831632586135153951685301650273328234497707619183261632223856987804287932703516516501611777210720704119148929632068439065141649302293391271796104906971389129156274677562660222158448879029878318802822404027563004197256320438039388463411547648348776063334377795049935826107679214930590047147817467352206642984014599038459692070496329018246014208696944901671643583489404653641920490475024996957259426637831135982480241798837322701413887152605586565906375216455305529237487924143962121555122417163209337958872008089292981426834620891647110677219309033585051464009392028006807843415561333822357743170578386434038208807876629886364935462331022264336433470561576939344019259408217995071681460435818617543998531545438368002712480962776874282197234812423639782276440018701742039975776771486599281143974048751050225606154159988844484607566488668402014098647865819235720874228191471451942457055883600358763614110736124117932932871386447234252753495767097328122684115670109161484284741203945322095354270958208117323445725912300759544059128674495140832694323765225133937804045530961478821565194587851896019714435582914729208638243928568383611915653291982655511390913918622991472365394643915575453024596046654674112373339285778281512447138425959581889863079896527084571764127501764822527902784441800045778280773853179941494356101821944253415336463758872566802252436717858797160840917416624199513892370483359793665388727599079661444121818362422814543695226647700446027667415389213697481928054886808868293542566765561238701780930244146930029279429904625665586593528534427779559233771043243704414436657859376067806030990606209500136579635590175813660318054059544334731613915729156360269287421659681293310451447091336437313690944468737811720257692422228156830574640126458534679686330806208947659144536880044891562756067477149963645376559980503003421938645083112111434244515945553553211907726219271111661715458843659162352061473859364769575517474738422414715695405462710684940960649623510350791771032232988831305489503257861408980130034092598979662348715855498967049030415859870051206005665451309317567577462469356620404288242172452539058770246816899241608320661483290742811617951294205833926851129690323518093680977561333280204907039889138171895359286047992139298362604440670536753979921408545683108825665139117664388746152498468579391768289385087318388935055467298380694281078044253659090564910159284580497889332199345039196101886095727321918483462299061560873220027823647436571402475694676242931705540033387973662834343087771433966966514717046479343634100213851278545459464809082008276524434688387585401641706294179825902085727049371526516933800852375109068877589086472249077031350833012506479787345676277308962318661095246828022494069575180022634351695552506482526314700846727586346470139729871682744467463267878876543758177376116330834831626421857241634366512546672182459081570972456967021191935261273208821631400187697237737968796323648213540046560607177997806627019001630531115476360136090470350686355779766085983589662020358228075163327760881114313892780389114119498070429597105860416575831190483918842547378626105748476898406193929928490253236695672351155011995578740119630565494979505461581279923906902651098723457770153290363494469792617640916478279518307154195998878175156254941108312709351643626033126887099095722246351451084234977059383053321340082642978449068725633144964476736686608527888011675814466817160120748127949963177602449659594955255973362520368487540805284741283404511539683630598645682419589092701136835552391127512816862783355768596189542667848143144191352562559474223568174098303439813290142995670221257318662969285123811093407581242636039143320519381651603749462204537899120307163833853542652578206058324703194314038528685391073869468078203529452996433923283076935322316485515013660715183716364158664210456754992213008774723594348494083277415472485226991387039449504230992339986036621721163472466308476587094223696204745943553417669477506767940313178979642142585180204517565855201658152358759264747016164797059992289188430679365005680133704336422774560944008853592197983402070176382472694887512650454660736546228192927400289713587337541789304942627604774468962556984261352827414128324445641010344450468082140476555409588011933468232618856186102191178901667466191980760712605926620589652472462903378984331210055754193657473609563081474100372914701981551912329676770019526298710801425657530066628521964477456208696269949111516525723553816744698522662619043390278553345768296593343084219929554797215431401900249709028235537505751908875694186788354939323281805137955706525339663165717108755640879818077645936032629189986153568079475671719055020690288114326447002977734578179377737440411707789708502289582547525554839839775334993906428953809191552883358153166689366078212405887382246750258404326163805893387142023159751451590172418619513523847539742007519582541732413684101340209986142431985930214819017244929147012123972611857827204420570946552332366443397883931544089661286660498852047315531449580437945866268478382263759308437037557085120714890046486600210552355747246900105953340285494092317160331865908285459755350766610117386369607986471112521333193920043925722679979810710963381836356577363699613602595745690474691790623112623696117830487152850858973238895815392946691168930535646825869916718311386577895702898119726856766307294281784239081588948731576598844337962214992941347427721314061193993610626945870485398941232175485316154409885778448199943247118045185111028577453943241049740667596836369528243028019285794748753703674956780731215636684963689267132067738258344086182336695715146534416216975908296901880807729954400866524042865137811041973506318249807030744435985190756687726295081104764485610304394320792577516121948654261018050563459793881520417943258337588231838308729372396030238166297821548200054295376027428453981224905655728201736979698761889188953907841291036322897795464212415041070952381019418329660504309244361473711634771074140014451290292673360938915327993301516912786138197929575975380997666228402927902080230873016168524942882636186095549055105234090208774042924667799629472125321172217218692802199842745315865179188345837222578537863458408243623236192881125064087705144209228212840982132412485114716071841890763684968503867886678700933878363000038823602049349180805006398229396804315573241443684218939158280356949547146763578013694175713491245488313450842463148436010337522777333969468758550127250765879508843368647802400820749182002031148110077015048888484530152933303518476771710189710771141066572027896186348621727575397262404958910194421154721471042464289109020558278638890294660283494865998633207772331992099016689427778962854711504858363255176688677353966111593784476143196433621320049665175444889334500928862916773843719022069678616769591535662256404200265243115352350242187396253620093826261126012579517145925452846882765416215891316042078172176300916412140230716632199037466059136124240836977353109101269979482087359882439494737685637756010152495462807924664584595148583846262701194623656548123432709362926491652680420942310389916705328271039072159237719938147816864277471716466488112422500291888457222269835443801746066537443423836864982874725505651607317717185863897408155774041454879376214839723238701346490870408822863846749685507115984473926249317986749506765037604191542838056937825671779747353078484351435078245592282034729557455350277955109729472449324756296044873757219416778104072283651356498718484662222171515977515057809109399386493126991125560383346615523079740598954058902576468028412575628770419408783057241704474241860332292548729089570763524058049172163796040983822113541097009379693642417274536991397101827614806540257881884854621037587715523796384067125806583427958253446400388024825057519732323733240410348939862763829122533607931434317148342401907124196084782015338646769900762171668653047707437651195748651916104635923227701947958699430151928418874661471761608043805041088253418440792674310812206992084629235889761718316386133577197469372922641336765047783513839172021172866201118031955920260463917060034661344099774090314834002619791937958467887645339803749505821392397519152184731844984170513030199391786617658072664493416728403664368937944580484840887917592506400491865180792537041120833794372507837118364758059412077730373307817269486963558665644318245345928428218276819776743101685625870173570467033290673049266706804386560590432023235387614517952441685428673431702807072462530835760159744751994469917925865944674879657644733458460216868321850643649538307852808726798067848732092374175926328663236329275822921072720561731059175442044818603248865756538162081434527584004310995590253181122705628552177513593355014052131922544644760947921298368239799019458697033921874092021502461239622922628358751918495868291942189276333073380411780699522178569948766791750189078589525447869830161914372196680308893606334169893236988845380442264383387174766795830555534583696654537984745095173349578752504812479873121314851351292721212242181460713149068503982411944093061834308861883461012366472780720835480032145676809134305398108513992645410427940124975600016850182151083029957137093897758070734636886704438991899483716003227356732737718166352018721670022606269990513904646263232053906992181228503879557196263571325282111107594188756450883707887549400325124059157924849559733981461071709754142150672282800603250587818077617217952170285191050795868928923159285074348225810802887269490958336525917321684707228085907509865951176216886600994903858861143732572009161599322857391230836968822286343668399395594668503873794673831475821596923423008931589302576599499231499094545751232561653037606013341787494376205213543912167432440788545666453711742306310172563921653125581449912321977866477998196768467267997743404503704455385290268065173270259054965205602039878795102710032514469916980266719036516291678060911608138362870104996291810169190387968095598171726207649731893287382402670716467598054252017216781360023947402195599348421204373477573953027699610745089352221284973018140746875356469549096685736924273767412737165816658778546982646869674871550458810738397231558815031528310211327204191205312100607425954654690270502309326448544495449613443010124709557334704037544197748574013609592696996886389524013350365462404309673752007144959464165255009270085790431849298268402439453424628183964304266006648274837983149926881968436162817649434477079838363680528667600922445599480033709240070817661826979506624024938392772764200503631573108686703525112443177575236383166719169970519330094504514355853413679288320158096711177589517099067174769503329056157515981393601940630739293431833659873496211208634141130491008210167163837733381578836563982898450140261549070328268444358685655859200175943632441404646151630361750202714002428390860890867066931324621559320295286127518070372918337454639843353393997110480908238068863328709391586927446012276363607477492819775894328447623272795960217038233079616489202436515241384211598906045674535495413109902717393238475537156726515628349935088193697131179771942482666842921440565250820269414303698310597194670579269126581778220619073172743331366153269869106692575325478698808299634918953941295014812129274689538606314199442241015160397084763729694741194760394142858060499267858090384203159453154850842017157788104318826184162149575166249298619069467455559196994147345153700548330972958036202078937988591984788682880859809150665184979013724036360494792877396503242641662697493633790749262572357623754875798464025530840761602367213020180658964958629643186680693621511789073714188656554323221207543398959703880132663687429678510703981669207338318559091504651121566569352103114138976607715337905573640218042117188914111676202633155282682450581442921479791322337342722363940759021473612300545765811963377344895632168342382598434277535717963022228447524473620605468368318412538005652138008513967988612954970399635195588884899003246567867762190453763823413808288329330662310244839691481398392731892263675198417933968318312219423202631273593620041139223157162571939243041067226236985882511801234233139947920407210301761978510017461177365055408970949660013419122219393902084345612104770509406740945004065803103176798046745619431764316059636776697728861187273969258022312015057772177712748625476219730531005585480286084126178013783592061008984991617820415360948331683256377830376562012880454064787055999515537015422908771087008626032797705134620141074521544401083923969157084143147482045637805892522560682290888295943935309766984592466639580866349073276561647550040082929385277369769966288234882038620164650579481814888762907969687305151010769114413594670364501194027502619752273559306884021132842158926695589813115745755218401655159913093214105736998774324735820859399715095916675177896335878912806502984522490088454403894028801314064094446593114825883502280459113526507453594415174596777113762682341167186585155293066743900625369112989976230142431482793286787580986012537981430687161798547915161157262717926890688445090913746357256949622412025031443425686128871803594284464157306287185860701556121064227454688632107000646853178049949121878266236960158081260291700368185157455061655377978329061441246842598199900070494131261577237564665562124683715397421817883098703351075636555493374274127928744224246714037749701172339367176596567575672226198062033724647119412102917201691926346143411748182611146986308917429302841647734412467689914883699350813829985719617213397635932659439294856479993946809265670102051402269370536935845143996059539269961400688907377354776103291700279396394940460487465520244569245226564730783362091111632506385695395680772856690330052297975311091692434722158738811966781941305948288619847603029368095987638890195827004451997096707971027935106105732357587477755121939432934614337240412243062650713403079438499026024688204024163314329091590016049853583311785069329923905688213875382957667239305442288403888291230861942736766592202259295563386389023689586058148831039791354783325812439578422151634209176507853999328044839804451559340648905913020048829709706396285094561488906847181124949373110833692310509899345039386120796074587906294539412091429918151790084900565998381159564110502972437429491200776593171608223775549414172383069685616615026759782606308229604669853247666163737549246593905889106281624508850236815684588916215968130229144475196166425569478888281707586221374002901003939193266942471622126054514680196162022501283444422569184950865784110518931695422886754361136307434554139413262405548947319798407062365770169992492885879149982008031373684665237383511241567761053500230252671126012704462699893334082736660669716405399626515127576518148807234395964237600833161425492059407979840250265575627445427410301211870858520940036174261773147788797078796837462024444054854707103730466921153479787789329649476331497180740997760350888083288064391493953102623495587968206572651449640205250020930125199936051300163846298097987994137962720332235198137448464907617852813443188176403581271228798038080369453929371202862347805382672316619508776748357100431932032872633616472293166577433221454092881369361285048698458442868022348079163153917329357508978274217329326974091613687849351915722017213635255127054619046827265399407232073272394904074294643226076945138892304676068746622953658229957082136826783486495765634225244474180724511826110610623516560807915054490826502803521436119982303367954194292401616770886164589993095280957540464548523813666609246605807727210319030120884900551463593717645704229543208129055241255441600276690822944240630655516779152719346714984582791681213514984285874261471572431241512939546532022230218383086110016289495983305414262104066995918914700312196078158147842050565523609878304629998530981415457743913896516174241096938622196086243631115553220250624152008574120846071620085692141357464752953804688913113685014860134205098241763078608928045957653528000663889470588502002280572539575062678391011435872596339435938457307305281289095338239008411751260568175598546053229956805456659735683676394446691784821465404344987686478046599427709659938768708385353548962429122510896094326538418575580863447476435145032499950987719980360596180502197541552346699525820233208425016887290794797859143065033972569676130630068065259645025469657053042457031089095038428506252854116755288647889908017676762708613158363002199611878643017415522998469132709198394090700268221780613053708514528472213781257431825469675465315237398066454575833614901433892883136483040269798483386624740631285785726532293035033518320040381067365298125299106562204037621411680842967891926828697181681802604678560148191685058913037849823247561871481428926113149086156650661157386723458496035313329596815753638656482588483718254616930757960541388263469336260483910676685951045044690452938590383127648680859343166448372217968683644555273587858480262684710923470508214657495309186696121891986070172934811813745573294302584150465136346522559574305473806600698227763067161000972198489086877968648977636465970184051096115646913010181328971037553080100421021371723681565770585933901108149930496316760768394543769501809371955316470624934829797301733888636340548958194869449207447968947838281579260043800242387455444848061041742838762968566197797697618455785478774258750606783588790765245172253820946295893865261872634052150536286199323985257909427440508891877978375525432347312093848618588282818853790921633536760361624847886199394321429226109835925621290721272208324347671475025778478524956247978955758776305886849632626203484194834920953876948088126462167334424524753416701350097480136527230281248414537382791798753515049601575219650713679055618963685862203813115758537445014722252470935671004003233234020691190519911857880006204187224866979905193970629082043300708386363675490922832481100635293301193207458413575444184097929391532559775742535767062867893773665507408857623398187475301041493406970261016944083416703176928574941555650537384469034974966844156864196462686313955261854983528829232187430273390861485485669158899885734381803236987579283418505679149187869371922551928474056137447495429845980896861509036215229840847946511279554927119717055976544433560579369890830725055701628128673881355718481669036062976954929165020468703589569143519277353750201112748270875417096668224681552304343304307062404963769067999211610336743161547525624599681261033315974267415026513241607706131312435027875366147515827380799263438444579319391051415137779465780523693214609200980675285510273081303042270562388937593029547448908731244048407805303689645805121114078663548789608934835545458597874771632925609178844909615927330519905063321376525050690131691298748205990148018526228819154693085359696667273649481357439268403393416629178130948509526996279052104487797890342324455591448177028108471308332635528131449169698427839949138444898812084450536228354397469345585610545449335894673005445119231575215243135519311931189617488287559825473129096777298743112227311685536407986892941228226131925582344737168588307601973820745253096235191771124782938642044850897121771474351880439645791212783202940838652666169424665339168370318298572937672737723710870066530739369025641315990866192718618423409489101209508194236636620949949123152560939006168263840125359668077720745293878759203745535819661135973702394324704822507798810386895259867523709866972762264224163690833161093933734364475426515091873281775685745499243714979670787781009193493738597721817574589702392293353113654882516224163982576178353963930108781915545300351496751716806903723921847309220920106570404215631783141563143610595482262549659318181545427338086552316943081519482042522716053462944382068913022850769863964815979192813996583511353796229329887708369592475675780457933010970459300109122116120560471704190345292974745568426119624010612806073978465385377379827799965626124169650629473230514992763203849470542679141502250762226068227377179920158591289825237427289820214111597579388276782282631186987600959613037599185433215665759065818878642456747214830362391188543845922032451736348773114665324785804717378133303092019648974277518313199278231834021477143564522711820442575128750376199484336912869175915863744340866677971149322883430385219716439170227923382877132097062679955185334169173078947724251840293750889280354883589568120195759683616751281617234608290609414802545452771056824312141918786219970791887572779667700558608652247426740540847337238558078508345447567615055359558526421203751106495735615706335093254586043930125024666550906099588254639496556639104765380321804031867488487491765900779515733355914009192621720729693976846468738571275717731305728777193215936564250204617040114077639491081214130365812120596315036356081615439270405189327529503658408876789912771000540766510200952991493689239877905283122488267673288846241024390865982614553668381369166141272661936609474213918869709610035234445427151970620480809418657227844158660691518718130110501008216109537617126507772926680338242905781067333135943437199784513680314051904881268807515121151216783815928988095745591144370201801890295269679593873811528280039972168286993471777018556991278860474012923849816184631074403071688858722903798614681791580657245801488511663462732700569573954128849940164883815080264293983712190646743596761522358354399829459620881184417054153130921119998704014829232380636959927732567670220251391768347625180383873005778574130320093534470013875688701205974367676214140128181167930433991620297986102686196017653707706585594766282087126817296311487151444308334579357489182698025152773735927864453829015546166615685149256402142676023757420453526479238282842431653399094958236120907104553816012451421041727382065648753833247380828756899145087996600362236678213417253500942337327105958179181349413162853942953973535395949828929228278085025872854774427865131210431513586378329726727029800604754761879895306871334130681864155776220841639139153162033286456409704333778160152881961203068743500904256771138788546922430103159720174709840741958408699240111169876019610035119716578798577635376949669127191803963054610168856542751888566684400711068408537454361440139468379534112683826974109993121397254109568380262182382749073342174668411404609997334060765871191160139702624618082529358082526630790057178566689878542944631132854785253352964915514374868348788013624526263004218348138341804552005866009612004865864224858413980160167986020238441262491123835337921624028505537301950396584607200037524447947984745833595938516189662300218829468966383632956684075591643082390275176103030677731389742218808072032929442964393438763440933275554739833412040450270804444722113176901765977326937108417545873096250707970025358167314126959196306613674029207309320344479356096407241202148862392799958272534801821911304550129284932701070636612352430533420969109070327928798486789313280709078834180101072048216816475166932317753444035160162825174220165274027530025987117453975421812146517959341259238488246440738745287895177191062819065569873462061164046677302947326917066942047117031780625795760891242527331725249865356900253771264487343632114299137549196017454129901726870561659941611746396480288246964093005929517807982233402055431397787331911970011995011932128898836393685309833011101254853840207328592217625827501065272643664371911560344309544250708416544578714592341347705242737937777420635306361865767316094985982554354378572458602029046173606460915337486031616376258679754298499335044380090441255972844323854732219083079294442745060518290140145199299787748499624162508169809470511706698208679164656645839226803313229455517681508686560375719692817444616932848098322436460377039590422417111694476331308852409983027311307771395773830178300929553785781923325209079745021661003754875581440582049982739600112381248093166820794883651461173336631208564581728420820010522040433548487091881855605994441101314022602827918089947186441861106601032659593960059930229921228879252939012854755613000100566539815847496178005997516152927327404223628801239280097632434881571913903031365420535542323098682008242433412113104014093141006588225147688277705607506433277763282176240367392670536532624794628481726594858238749091617906457444995231315588497410775727869405174133996708264364732890871237550476325539102927294752421385883063202771342837972823198376340696818636903340084905199711121813715607781553311384577731852528211428011003659653987876695097124219720733053465734800383751567879301409719021557080145976229420889652858576256799248140973898234060930474967437145951114163470699018431560256933386195348392750728982886884096157999604169641003695094158122235660420397242841254063452952377650756279073931109119190316330480362626869709154565878204290544412516809726124763285254592803274062442918416960076273798763764225320534027571107354353800138688546182198827196058907722462179218715682374583058732405007127130699332837667206813841189101246831353256767508728824776550253729319622003045567390389392633861601787034361291802623893844989661377338863469764661621161786150739464300661155059646671713247808777000562317052117825033295841733561658069417052613793723695248176413111176031763041393480075534805341529495726246585079178627713262628509418810932736502695677621427511989523631216484074928854889397252987163064560214998202375211244336499342594944404773124294506269924742184995767564353686825472333740932670984397210159027753366252170234558595354309329894856394776870123633445664161989405985523386761141689072926269591074912275089953487636485182728055840712410233657670461387946220533395196160726638078440345045933752461008276102299943412994739393116603163556651540975271322101269055588553179524986035698526890013043300672184163706728053775398777767459108029762535770427021795222956957165703939428175371314635802323025880505401147132556742875518351829365534458718543387361836459581001477138297118124141755955518510551862758727888458199598317236928492689040160447258903310890800770381258480052116912471773871169077353205934082415375905176303887843433628384786230797455555436655378337376909292122374485643766156332121863361862280347548614984969805782907921541473739554555718934842209392815284487587929478448626857234661232833985629089678777833120953294588301200019917374834760225734231861246452752900909812688865363753032952954583682157315685215830937830845930551046005325787298241300756628246860460831890112285415103919052378016389889175400693814282280222094755217954460026428343244704451619810319581388428072849094478598786693590181193700446482683653955897776951090468443320652544890059725082236178340730063534348135836545924947761996528619252201871997177571936460238647182499343990385915046562487749920004001054713707878220956310360152403928374747872809908686090925725795043421298892279689622436755753378311209468980242695474768587900665203560046111393426565851471341635411956026384178255791154093295505144497102402068767749441100208227244561417665856751179782524511686241872576037134796246870895789963057275792297054722202323637171210019672066401421683227020236265439363096436820321129609183388231959026758343203726348223686859021241676276670856572873550056955911604379668304276239960052729718831119508544512819842509967558714328706079314354225733987356285348477835826203909076090193491140558266467482626653329853634290007844730803319008267400659963698319015273506157509750624254528835328968642192249117105554933208668581443771346684601269395557057907069975221946122118435035300732726231345768847342959102644448396918899293066355083604730837022865571074351789917659126431919390192705798346605305257547848689835652107569197570657042470365911560541358235948324690594660356038847303443258105056037630191614323774488139256756757678464580250787633541325978063950229476663549172871152036856419355703974817953662624473926384624679960815067223199054029298761521365748541247350354975974355932302117917705179165875647467168142188506000059309734248237182870374071161773691626040899501156221472680675205877729622895248486413068288668162252859198130932120375663226567131720768288700518012545898218811664482468598585368536996983891439431307273917136213788220309428410583681547015520739394434630808057303828073031850167948208643197896350015887861940130756057431920532369533420088918886351776842261917191431556651030849943985431703707465016536599184366256645844388326927660506850471200826905345191905675261314041287927716505340962396607608356547066905207371833695950185498875674656458663634256481299629039196681189257010007476938435301026145898857773073758883828436808092515304949691834369556696003098169812440107240276846558133253525851475318525880200566233970399193629031338042969883455289893970822017151075707282090015873367495723704092082308280812240394003279857602857766866938850800403502243859973633598646122533436567260299840273695888243429539010548660431406090060447873839685366012032889402335578922595755268309423747094549688090703486434136244710236677500866931480166063890985964110293149380129319466477355822661536613715377167419733621201143601715384757773519637384121783929036459204181050577561397525983490500102876494356339159500076858056720408886984986637003276256414440256793775147832165113343102328634078412509184041383132270667123449560403505153991315672330670682637811159839433088222722763070018724616165650208650177846002166947718552565135859371925575720459165207992790796587762130350679476717435007613915935192450535071009572156224800808824566284824652085816780099584116707868466529475731625517631574081303824140154924007110872481170192076312828386147095595770704733151230427716038088859229302835998498162233750022244189182862797368459601856651245345455000923607630766471351897380248926881090974599614878300586611831518661507652477444911945411647592363105391440461767731940516219979754380085494811344064719770496842800497104627622951872520331633288356563167709596227542542374924133558918980824218185509262331021702201644974640748124514170459886128962476068700524434296034213634791683044033690548443222228130157327290575491167946451840143473113153186655240040608784345690498165326366746970307453305702708788882674418550686567931514515576746344532398014118308746491862303632854845916833861567004056730683866809872934407694557444679641183116565149477506726376483466642017443885399936196760091976566320253960806731380940417288397094454150632547825372346907182523414598940163174955534753793394234103509028907366176467735867515430103649906693026667193470517668485607080538089063718909511578385928010580319617429132427817840335768280486211757650070752505886473061985857845599550731426275193332672071534040294828901738478915469685403954915966272628774441250595113462452027030746463286685831433866487165209575035371273937523178030167821803986803686236514156756578113337070299754586386709851744486141392213178163743587821653723683549148127185754408110718514150698838013422655496967440437535373148579389272690855925461870902480171211119445957407860894102832897550772439105246726234699495896281103085217226609631238569171221156809130444675388089368404282679077997452973685805779596925804095643525395076771822594338011408684161486455309985525405196937595493072195677033583008502810351562506491068913431461237802996444411810646519576415091975677383095172351770608877622900673732130427122456300069801622013020282284229208653936354199499049335228375734345226257710669032218346601599633642091393078939706166479909966125355020284677451796734866989793626896420738444346445176354828478082165051190516451977898377318519471049438546652944600573105560519444365964807243270028399888671052899736953244358159487861253494891198248518071965925876698492618431913571217760714830908327157321412277097087474927156888565496209197440910444230411478986866759861392581934302000425119084523116853498820694907499301974890570518544872632537515129173979319708961904720771624341887468860358603968767007992855872856456537903306912045074067434777165374703625955344859501450133193736904298240540965132007273822327500349913712218251626532945174889279585421058656340498054145636706773677441602689550693871644650403874877572353850824411961037717352404204996044505345144005618872242234176928284546800795619265191134619302301269762961829707255636217953478391988646002049843628900854205981331244048512624481299252498111271386262342300767839188506742595576800099661757663012296476344965915046256199463404804812925933348835602221001161494304109248162847018026177432468626400805946207987416127754281721475288860585284926233478355981551807585560900222071682251671547015300290318885314211995573953458512140251889428339586381860310011496361200898641419236713105839455390296264101229285610981450122070099383121023879327718684621142513935005906244668196773195993244173381780079114521436913018081683701450169343004481017332139717999535848309136759156050799072213532099353680106718452354071042309729970570144163739901537981391180555859624884212051849681853643916672563306304321485504786793918608600676571655354751127977202955198415643313198174892040019422537757723186549174878193086903636281310191884187446325470855894435414816643799971628836624119290914881096898020599543072185881026058650957073999723060368766609841119589814923289920492150899580345963214928501830372557131605308768477147697990499136997403713907587442264343379062670629620145660167829894939064826841450563560119608895656151260771972245001088466986422704491745093753610419667963964962505933664497436278535965925899205517027982386135129945103545890689241830664770051007258214876257080928574980367078284343486533367875584560535030645879654767621588617984144725449849930884141917512798206702347262982968635501307588697712238425564395321269296146257932534693739011412116935506790798862302279110855335562418569895844373370791097647008756285426028773107661106436976312177366813194363592610619259773393151269020594642129222483668938713148148848151688246989091465274779547131089565516619379543205007086508050971814017740910487698721559833560065200012506170186647429547739376481652781889117858532533727442996906790063633381238343035407241626262497760789319769313335428643562055274605716411306506302028768268742343710824542167899199297866323871648950972908811175767720749246333684640583947741498650723659418413232178694520064449819158007783485240021076764267717610127343033115312914389273198747967853359293716038433945651263356144991459604025413814588130020541937534623894859917947412396766246593732873457463609736620600786729124896719329237364450153631566607991015483222528069814067107984110926387369922526233268657579617858594083400528835428177910803355191316152955681457929500227291524173819116595600750094901457996543436122040262969567577753587383357516426670097536452125568133318165598605055930705662794393305335917257191432827095072926195910648950343220292960145077937235940625363108084324875986185564230185636039007380426598342972016486401081155227196918636250037902231520676171477699304220074357727468603060497423209819709502974426396398542884688760458456093078423650954215940854369856936535015552430412698298758466509996275809744577363701035348180447695726177358045941954218704241296942046941887185850648566638565682878988364428303203917435944675394311968568711712577138773650991912351505923371021072118408377213718770868386971998507208649819946253222246708747144983484015111856603985231041507323961414136834766268664600908925219637083803767880761980162250820397428153724886927323346179833873977387518357137911994235211247764060273888993288897509311146205338104425354372357780209508631850569341050005668410239004842954032187998346528650009560945490470445613836323257249445346807801069138240954547489806460331963620088657459033897859313976525767877796549950601459054601917809337831016287854510942700371953419369891654346630818424568286832399862642286006355458666050786921778476799369884536683041757364491065168668439340554268223139650871339930418694973375185059151116828365651574633312705116281356467962045542694734122050881346212788586284279645131127798833964883483113628550689867840991510146135193614156245001688148435089679323990738210406825193775066207587457245287357767259348771223872309654764862416457304125065969847519292813898379671406231360358732107388263782795683818444591985690263945062931368687929906371011917884829925161517004907593257593472269290927592053284116497959771159678178367529375551906447397370088518224797041738185434875773855215840623227104097780974037927375250861266380702305352375491916667060577553539133578490014394446659670057731386082123558008299641401736239354189881418522445928845055853974106551791275626875415240158954930515617150202381629366618355781256711010405084503301665483534533508100537120248495980477558023921829234061896741986109422498709813493833481041184425024887392811951436186468861569884404470736110106494710197505755369960553799536364245557393470985055581127573065577565201862934932302744358785357254398088615767675423145918310727606767749921208851533939320226062584029149359731678759033839156334857960233858457067491407224673541108955216909574425529445262426109823180897898673068838785006181753655220156289808899122642917544890207069285875559162546060104811834579384355241385697186355537174653832311828282115823872511324193247413796195097024487721899637495717047988642796202627771421450315107799717693998762726654032088370929706355808884801688807425685091910538693958636529957665922012834520770582519731365758735224791620383178146745342738031674715795728125998675346825211458449599749465465859727493261614882652895658961051822504087240239050517295324233943084309274016434752847767160733600418089469172988017580385333057370391845963822680535717659910631698647621884686977330055245812240568501070504283483399408057693739604696114185974339984758971475797880707768504287557595848008348642398820036887649262855040469093305417234411911808144620429235122552159024130125390441023892118119653409265727717544266225519043932732529108586661791826116089159350239824695510956264299646794781821005633811852737834767983343311343970696956603092902121358771310003485041755703558835983815146044553334281348790341247855487656295319800723893385333495240108519485533393568392770518534384420454204365917804498341888488304702436458609574593343356252913011869543135481210679962468909939755475787652845216812973255110949405571521994849721110961710140337979832857366404690162680380463185733730590175007015389623541591502769111216720606191171649530113455275586504347326517363320221658344003937284699943701223988273207818430025993161897089193006038130099728635259159052340901617544751682275289862585089369082084478850305021635725109695183094516481957290407997317107987740271831226545836113873550725962552978121604759791125442553217556723768095018844506916096136406152937826857405473387582267935363467111667526789663590150150065416398857261305418075380051202297720878506549866927432534854504448645128979016468410005619666358246758745358556932847877633793396314635203847932417684428414195728428070110144106632016139016036297186040359640021443090737602850416940265274709685080943161384522073288678878356885868922130147992263638235775627293567661178506786302561825396868608929024756033492637149678124771672241237559043792546224978676673287637436628286508423357293519588413398758955564057495934847922664386788310167041721787090880199232379850583445210285276211584732151310783546883440189550761380550745446744040003428081593368062126775273109069167171668950232069531500646159445919141271803647016425797384685899774967144874419663362566394740687096033091947770286035273817940499508000282242467235563028661277466956430181793047777530583747492899519122449322762255351667560424244633781140383501062216955644152140595563665246320708339062633003932422460621256176270174803230628379861607662291016835075877282483468223503366034784662307623977061900443875910482455195645003471332233260225080040669328573205721880984501519510617705145142907492415326196699702643924333229957442493356318797555123463527702418267512992481088602006690397371682872721127418130206964747633756626008278053403933474533958300488172255322115645585481174997391005038072648500946521647352646866762741200805255037882070939966119141617334824251606647341303112608499107605962445626330374127348820193639565996984617408666683992903457710394849288815638952063939971095761735329149868760680020875549109838320738413474228000757186282222637861305289234791266930770054148060794978444751614070607577306567219258113397118964350587075650123254806746144647824755231541989752179066958490490256214829037756514034854699180270693615658345554176155889065523093018130166218060418851116171958482045246935133363634903818082615856858916418639210569528395124173787452552599544291342172699753250932837502242565666948305102173613028887724956518966246971420265026296270476673648293429259615536580068300225317705214979951816528088567902542716337745545764939670399296134571109369605156144256268003157842669646999150489001368944281322970831347597584757954129073531458029688071582561531933725702246636755115138854975019472006096282827543991820684422730488816428067866098366698718316241095440543145265382542380134971256638506800325598616236169042547818241950111788802145347412520525572908996778970372901130400691810961009251694117336841241666568243992246946135799881642197612710403874257618108714604548712945898400875338279587741197140904361677994008498838223702795958320555564386729139982284176354258218512060597304954736924542138866813371708837790174540419172810365995099400910127613717825387142321497101821511650738447997888715080307926893146918450196507978193266016639424392495447321988842915610357458190388501854758692677174525300701219571849304488316271703196779615942364330936530541078770404015844516309717653372829639479825776982046865021495526430194877163305858756921560688792851815729184564021683949927899099286158099311897980003899929076565891960208420631068346869182631533893401743424408735738045896340884057456934574665198525782763491316695444109352783694264897944134084088860065280836268466265165013216418575454642656948807040023460172516009337629563171017249465295323954628768202236903809298919451267575293601670643211629358035095660126087663848636666320836519953557657434606394865133196115102184903455888466500389431136963670420041577229625348463805024575135505887081454734484712085463272376014298388196961678597956496366613950723402635369821423866068636304714399872256384224569227054500928139840086625667875632606436197674725653216715044432961814558441997542338008090903499260030297457183570763002130207122168779331585740477430366280168567502777330833796068924368342662132282805215178876341075239057283152087990095826953794312619000943882339405700040669748715921461261658824084686949801281044910825155170628563087646370800316485516302003807410010854889766666678495529491538632509174218346888200928946959856268830330168189401539103554791597660381664184770956181345748645442883558927888516693803910548710026040276409707411937213706042988500381040883388370134061083165079489894679140001581371102712111212986404910102723473583235992688303098383635324833104447843032940914984278371068973626512788049409037624680025722122640754638673264061760546245947639443142203387513600842674832881644606462144755511721470170673433937316065571355284959124202900353262371414185651290837654273124255656235478498366217237935684673290698832603601224706024428838667705113984806111375656817895293048158543078685876812709022271011020892252132622497076493029568647868280133788011795342166298019207633757727842520302727497264269506057890009586669308320172750013769432557886615766543119153230256267401093134107252955762558918943713019678362299965550902362478896477513703763578352295693920620034887256173638699070448335814040843663966554602342846503059737615353505572462735497051063953687084215605000367640190198585835980047305428446804884861364753445798042447119707777482376791549582911700206984052671266027131478493499029395479927918937045026412464293081759271601206352294022432069803927310013403006343500778101313057282950147629659829336334071112583870669887862187253734442652850360938888031219960300234291740374350614653051569891695392347035202292461590687161743602773539993671346716409561327016832873757833792943538827398990936241224806486634307426761897378283394359711595383803180579752270074135085309193865496072670723042006410041271311968743582091013705713496258127095799660276252088568222783690015418776760160496639192379946088029298565340558482767927350386155355436801349071995060593929812331656963615597584943100642281297131987795008900478398024086794711532074008273626345338712109297235059475677586679900951449469336297442361686110503738080137123499750753006280344201756522126217444041780681714561761747197003993682506999780466557752953120187314239639049235695636478298594768363095585321100925961250966715676366665535176116982419325809564842632421570534575656285599176392894374930123414443217090458413498179245771833093214782615653751571498723508559092290071075968447149968921533640319096943689675341876677602111451789386225571408259598472015162305413336562918874700109156446814580246235096724931413365258258400009913338856890570927651334199001917320726120245160994842598305814858915964743393169461202635171082221299815765076926357713729394547626863602205201731824622825004113436461576577368281515938872248034550189206714753988148455650266924376904764721285291545641448585134029093157931773381259692315524846247931820923515446061910195023566123825224891557436069477331007608035902861076736178205394363809034331615604707604866926719986440716497625495938582538304544891065164541324891005762379662136520502593804362944570833597337304942221590791615598773103991639954115865628418609721468996634566220642794882956940655519899087261701056405729980705815944223219214785170786129420820763127906404585511881817210792105296978183193030223108908442467935278169645497788042965117766733389181186752739164112312637548833491011412852638419458453227773394894792693326397350992225995528634752573848345793669260184728028728261187414127930937201404834626911514073905964773201896807909646358058426167769142612121728473327882761740266110394215568487040052544198818859470497333163160240317414270859209511488928097849711679612984325645479501651152729568435651169356485695558378454876897538106513091679557142190769804483130842668033855443910220613587110676345815742312420313990471155708867294865551849843473832618527451242649941228468980788589990285248269850903045898924451079046423279297100831730496103815041069118058235212887670861438287855604094210544251690975125823836657960790764174728115913614358997582257129281430945206483892375989017724834433455714953379768400512054435803100720534233808042124925600058132472666722706028135248436949670023392704592085263026075817779863216811018753034329226732796550428191287997366282235844157889467728469301404111134319885789982975039066763749463422270063449791431237141790345126094309401215866246665492863079740026071254976792589238335422676302726394666589800758791423144649414789108264242480859532341116076414651905780178765562403556684539696191235695005570743141906512881220612607042617568136030437432314343347673443108167689923975172873972290388917157679334218442636983581846336134647613025018837884598801684888077007699036152411646427273168552710069264998997822271738390060755475708011206747504862259391589892663792165511341218839002520052118560560931649607883308567487899723993253254366285024791971000928117070587959996275204373646121474609618765026484953830615688678135308446459892427312208938648999832730109228613783175846193609669779040283984408989752154518529690182275437246594925804127142410575531711357037251246054813767813542041733785780077591739378269500014947595603503101384901750870400865468898909007717759094105321127425272395542216392774832561312423186948945542540988150477832432796177670072729501085782006847206957323099698185072707843745902808500215208882646955785118562199953505905728820873930462794783184096613813295851036335204417708295517143872996829071867204078783624149309949958971922130136575603696783356546323979131636646489418702558713652266271353621778618710251657700543020679542329650777039398656315510665213649708414817219064284894649975862714257551168094645933050768693983437946738222462523590977253879162834633693690021224502763436329148908880251565424092832672962696931590386659278478651534718564122108890563892481327393641865277650018312009370078082582226404712648965514613045457090634096237124012104016135721905725320391931101070868492200382606689817337564414661369572045352761067565509752201484673845139112226117199491207415827666048998563030017041338149870102952365641022168319717680505980295627788462655324565774167831050689937660954301720497524179163169247753105316815698300047681944368280009691671499145063821394440362233627617039048458234234727986342055665262708017115211666150357305475947490689460253434874632569286478352836599619640666235294912705932575102265223501124841966225140616138386925067140900053285824557792213500188402575025078745967378181811155171322504095051891030888943945627097055975693668857315373520086327519520145459141322352522891081987691098400481869155676634579410285113072520679752259734423230812993019163880780150549966652771686217428503311863769622702826765740279932545599816661896714359625579152785024218994590954308283175388090811151261514207342256506333447256372613295915212566345261994065916433134983535664082710179386763873547037071812463226008355527054251503750175279214494966285620881841981690967623612443268353799576752811811035028193817301848240187876597021799765706811640135518943626507551003312682318768715428539169109583100291799816672990485942587057869918261450449807147702410343641398578389315548333220150756141440713526905830363516106103728682191968455319010816459595763697537173396006388258175975941131157920594190877808462480236773129086340865583662781997430644389354428726588911840034961484405216146638616856061918642088254823058757631560993146960043937140117194406124400887463274480917959916010901678705408347416280423334596763989360449404659501031534561974477565698692868479986107493474452488980384648863443748401775925120218831301536314986072249145814310736007760169936033818293661732812939881251267879534286631898598347676310718317796809902504762179296023806646496789804256455728884619968025607172030092038111881516279438054124357090112802996238815109146983376567277112740263154300145856296849614816947422685289976238514725593645079205681000814247278250151204314144505563832577810898937135064470828393407163677553363979342254321762843822560726464356214445194301714362212605232377926048140012296780122566799863788816697119736059612334696617950211248669787147706477439645882196524301453658089542628811016188082225695398333424879810614631894507778850747936222069043832633020725395813086761032040335127040124168601718047352068278792850287365940042929830942304634994716385499549103196416326229045472803892642806851113450336910994300226382968399028605850997437536096983459717948645743488577423688124555389755826262924247936671478073431458276683205881399784890094577662151258888235891988544105559713054785581405995866380667376960574534134919576003360801597543673249440444589708606113195209131120230898893826609118693983299560133132812107266230288086035633484246485924814910351849282871620088042452357534870253559541385670485407525557303908899394732202098027010020274105366883366158379417644228844690329824730247276455791367858825412020844127204465710006185035812032887791962233783197317846575747215260304551476847891790945737793229473801576284152648925682690986845689136425015527910163218346131030720760761593684641009069086448567710570844527499563935186542526202142356391005107004257635621011582699522592654976329154853975929135966536249220369308795251270841689320861340058617261692862853692458148634943379280907672109189613789793484817240128026148468965001595097533685063148684615145061192383337390501336173808506515810028333624337364065796888102593286242564628149765273819872668703611813964056101396349114719801622657591528265829654664419150882881763611608315173279675467495789922115394808530479810992088039850700672907353271325370840514047963676017383883116494678165177947987748170508435735065134102002551911249557077224606308573220635653972141664885091530366122922998445637283232403337035108119658328876147382062869458616240026780733164632156072072257455541198700886849768838954430348968622922020187571921186722622490694865753577489984226139739973700015978423609613494127055750347943423535399857535587379599326810978815009402637163602919680398920134773401692743366493638105623947671894720929443002036564587696239001170219842843216393925747556921384745166479920809469326196225142501905026813118437504419015626982382134941168612474531473419593848837047533824294049943005614223975248491464680091227394720806539500241889354776093270965943204406405163422546111656707935465787560484062808271167167937273843905959821632458065508572724857433069307414517247212338596002111684791078425827105440378222487792647891365335993532126166295349691665076405771307338249821381303158714426469795259570417220267829034343960689971133092230802929963207668431250963868976790905287108348268777025338801309618828689198134098496294164705104994420220987265524041953513128042105609500932732717034781905626716327466051685941460757221198218200354521024894247156379503893406679538612837871759808979832324791284762807436453944595515846270511942587737631296494367107061935241552979807392588722016062180523088268700535694552294938756402661358515857517837184993684528729195946958709124784685261234950215890865794456542571555536775742496079851436645655434751731720322811660135953676336831820499626062641896210603602319478356690231510311083511143011220998594205966783855673613335804553409220116745464799338909734569361413183685032010202666431548071426415576038614952805123976580945234976279561866810611710011006202199796087369767569838236821631568429340940583183301909194700844836671076365990763655241339854393804455457022026490305332160002495696313759953196816624320960869701558115468104573327914405860750971657548710851372744561090835002610693456016862651843978545389815632846089874212921448406814555667979076725471899407557749707052745043072534537188141058167424516225569071004530015860385717358948057469582986720019107238450259181286661695349090578316985531264029950520031595179733593440422186870647124788867436835899478155098714501093014593066888248662944816006427033556681551188215807445988800489020318432379095427486079513865392670266001737286153608578519629789347242658119624261995359741112841501673274605867361635420551897641079539853789900115868679609726300467619915912743800244089262927956840561625343449640617642869553520348662625206506214822352628160446914936335968978970922246279457113212552123876689594122499287807757227907757546532037068333577453253659293715108496250377274094916368588790690021380872114339219680319095566735572754090676655626418882041071191537139569377060738435454753507582664690913987350579715882934720689589945189791157514475393474818861578470513501953875045064712375514258496418450163654463812429561835005191651473505849522130295717939966590178874702774126816759699233564566792954527465487030111361546639908782298106980290756413359275085404105746203074648416972445134393122214293404733306934209041372218320242825909309266365663396450998911181814662715862148114144546738045670317971635729086909896113607332852487549543461176292574728451907354105014079545885215862600827641925327730964122779368360324613420245361419622420232524711979418152069636311233592229194367581254379261988730390631030218417883906577999158395819945546044673667588344720838854907002695951809991107927073222755168774363431057238032690353910613556033275960465461899770543469301692410327650165365227792566927051354803284733942903477001669854009991907974534990229452795281446895217790707956900299077433864724397301192548620397966420808315232165654181766535580191012090841601784369129945800212772654776851461884888351280150651162787469428740961986380812653918970877454658338638903412723112707982870626922145248488853778650090894869631427237691848610513375808719574115179966246617568394710880854359468470010529361779128763984221289574716795404293618003643862955063453978539650321358865523053310129505490589122360081583817636349257880374547916383264944141690093622284584270530050622053570995139903013393092637106115068466021067472471637145793395557698208455329897637944065382995922986426327311398060311468789834401078229551618607549023334656590389552358064867869856554472218987555180527203697949664799130431052087806503893813863723999542729761192854485209375743644939379315562711499280000168689899067378574305878925736520135615428231551857340720262504017262047110398701876005475086423086983942553040937232616172122886422614523186736855027986189848046350692197060806891325937976101106261727430107972669548690829337238023814992680730349523064805363568870944392120072600164993837480675105908243999527202885008438034024393402697410448164246412840855690296199113054793998085435062426771574874505128692131284045788456686073955417971143787805121572094177431772058900207736346417220808526739915737476922634841248370001339849452993575235924170551399627009704877705244617746918992227316257630840799484379901388244678187629063772923914521075356239678482547125029938605277694327602084615888491871794882227199150587923329826249636524126258125394374390190569832680474576322239041833678512872467722566430055982417065648843230163508447695853748543576318529802312684856161688054132339624949147451091603178622877850922894459628403593065849515084254745188932824524371198948853783587734269447601941033507420114692565778962145199444272644061985022471245641022736198344527675839825453356355785601598842796812055275627094808804704610074796598880307649166023454719589235454926657279160211310467934446509717145056441321591841129278894577576283474107064233017947202297049370061303893208273994025354306375043304216002421755584466258289169809122126696513374077873389849481668399571750294389228662045810585010980868644482352675753718986086066427901450148075181510760335391341073773104366242958941201621170067396682432521137690079533455009735597892892566028490593086135422053842911295914763817042533016254685470634999060887042062927067160350629331983794161844268011585296254414519707227266114887730100051750519329117091083445998445821160947623508840643701243853601709222625573025924427036062916057432489288343737785290573960673926852672683265405684702264046872551360548727666154170886947687235255865849844693100769286667346525536258349818768397234334676887479196452798019604727920885077658765428116004861896775043759749238159885057981419866773558492881150684987579511397090091426066037695097529949490795636217933518777915496522492278357237963701830869401821224670857737607552964587313802292419608482926662580357225963384913304527330901060514999926559569468521993083488818732782683886472211692971970540811195804149356903051413662149086876800127564814103841288029133455578055895893448317741551324164232205198841535023128296369851998945765214315474716222158985456113446324616990734595083173601315971133922294227152850727551235234190221116333310077039483936058932149759956801676644793280085365640391468958999770304767090240398180499173996458165009426217872377606006706739424860638861990585905009509835955270549599438397791022881433889813378258002397970901941212444980736926647263868164093935087977528305274164662867672339973514743525544513348620236647856781713979424526418306127261786741348468994239980884883167742161402061684774682410795560020736249133776693911085312352335899345566069718316077195629091362613822966555232466137193143576595049413347693794979425136104803934130586523820736843979088856929355929477785810062617688656473773784916093894076845035732760057892361770830063390398724163653285725212034102383507817330014562359449765525706162248521817582060073973397858588730020501573113486573634790892288520430290038124743188967248522608867511683903013650795386389695453760645252547809813940646148390920418031511668119291516994752101167401328326005371182884903331234763859854935399487205312014425039534262080004824777674926449230946335509928766053092306146663608083884011091073745576911573618638808650864287405955382675812724120427808093399066239516787129708930183365561998419123008827920546085476429130999728384134535746757584463655451592956964815644387931361430563721218750224903186290439564658953182195052792891263939789088702149484496365481438454516965633620000737457087676417032125131208431901463111870535220926262863468077293346393486438935206145401339936417704253425364700089797626535479424234382474682937907452293942243203329437958370305659836740246679352125329982940535760576910394035529086860552634036917273798739979175597826099259844285435115761603103530735800264300703121093683376020535622033363989272282446701443647081843818721926597025519110116780457787730994112118106190366506971462601573902105368937000871054319261760990602897171004799472527534425271690984941202791949605060055850154053766952358977505546180766991737900643299770034127252329960219410408965520682571937730245467847854409927186825781702481765204450698876597365445700125778747354630293297534756319921412154390893157683958655963137247426326109973444619423023916986818765293713537495080972761417697397651522679459456986789537235193516294897558470990772797142842732353408666853120656858770312910901050102706203122479164094413624408796401937153820173328908493560013011255839412517832340385950886249908077802793060061947121848769904666731982698432545946995695192551180106851297961198545044407277703504250310370380194635207674784869562926601909837589072441021536403796388210263304371823406668305298732527591416244341503828572943318552689347152839264887482913833753238332573622130620223957648039113306643897448929289663806525408551458438733127587417218565134146441218645558338125068300887833340595602956001290068244480646418795626730319961908677728183603960744698838659704061330442458280052013084931313228733634307618826905097086004564560426352123242573505910054469218205360927223243125014982934177670590651829010854707760244582679038180963811582338203754148642420158664160192728681575812665410628157183720424063861635425655832672233288118081474713149457030470127934283026016654336330066021900449808079533856956970343215429466817074698899472509503888675423682875941991640288810824921497038532806508980353417075211516038307084047550064799679169570176094518551932311524090709153149438936992277764616948609180169539409944797658977750865346973351094114347031529376142785227613964964849855630092493222230108589589490495548521851368046767044818943610502300665398903987344922518385845961340254217089319896020096367541363613633669331681576386574904259749926485859225111841341397699294918270078462315663170484015802266029074885108029721481900611228957866757305773211165041249307840537563521872641399715271880125837301237797222500984352668199037648482817771469677041858637753897122527423770199099756482855402014081180582391199474100386403300088471091778976814598011198639781768336111110748155191002340819433690543935215931245636795182437544331525420662932504133968686304644822446781380106652260614956923085013858913520718121318116910514782077476716061736133838234964186018908853374801486121909564413097739549890202767573317197153208466875044125736955217973954502140501152765490301760864482826938529949899669473940452903100584316915274683463343202527936954144834855169643517540884327808801063703091468934751749269119132431000905427104990502096907674105697300607422645621958821171230463876652169085275962238317629832701124585531587556075904685634889120717936236826344802046395650299974530920391342770552489204713803875274627631603589890073619842650294371619948196462357810740516220531561937464821652411397289057594092859434795029382335391936482234165530278669204078372514829268253049896494801563523411685869966457074128500301908308801213836922794999286493605702340100700615408813667835496953703457547900041095889779150221396275319111231961719581074368654024556556320043065971503395993509008132592541823387176659208900961011785203008297512982868518960852252239907386116196769443486643175967699238691998113102130681845655613872303028326049493587836743487064209737595789433699536536071281108138730275417993834337213202316460633677912426722803097765293021063738471108896035967119411832555891965966030907139796128741501392362109938940143104697040406621822921802870392034755993425874933465599569006352519069385214017614262422735360198266317512475512469116673457391260398015601223246941043474240813645527948954605951203891173948301288047581525485770519714177945438496220464469287988668852692328030998805552262052047741819626407526932564588562966651490912977420377102362126795677474693904817929749454949446790385642437906657067697293296609621941359324731980164449983334818899163281448905727887744843701357188009593219790435927763216480283504463004314247670116452708227674549723518561626982135334759971509116534724319852608517021657882518573515294598424926500100606291734815943896989392120430813154880295488526102041788195790824496595797230306918869086607234713032188895933926552249658919462422527742742015077062227758982889927262631530878277913073602045872555870916211468377428323822818049750707172798167277614179994104597960603240506117557910700814811008003762723358598270810961504352056309882998987194101331155843071352256561167741440090374058827163266991251926390299678724193048341613804182889511348435577217068373966663970891588577516485762262468109950157060228758186571644230363827444872334738112178175598114365378670660221090942066473390449244276280088803819167687458532387242374539450149374199677565638583199398457594021143956694360593136278281124760412235883124653459071781310036685668655791945863674152883738189906854500417358318889996612998067632043628843189473602755891624783193173432986568216674106918042002686529767727913939230325950694109683634725880782462678944507183982135431719184156718755338530229968809493958590938094893126246932914406735592502520395836126256940073824370496036454933138595320674931997425759130138701480778963887908820263579088131761802349256912934854126218619577271656899114689631729964176129571924896745702906722156504941403944531263179707550179125980826648791974659040915706208269811225425046777624035181172607108727152015898707024528674302621563077451987785218395754678386587064611538964233002745263491780224827230730457780531137169532628326426277185226741140073858460124445322600469800891729551745414533134111669015443850640034058166869826029792401448649041173555260943973727770091570858974787789240717380687466906964915322835139783796598519688857135601740864246795866946971431304839282943281269679269726367626667759214445713987430929394476479666044033734286141711838350674130904827490718166224291320525990456126950217327966835893926626964366119641618690144953071139905404301329659867618294137543124932507043048344087502615968025072444493642468414759056888522134380052677627922701997556355647367284683391952283437665968525042173212044799011421130131023590490925877489784837796050390222836595724795112561573295641647549067940582507392600742607167235456961779570670629131265632684609424525785705972328606584690494668320667643297893007485880006480062131832835844422733039565114001372695703273722496816682452525027811610156981372764440542120106152382414951502121347207262226110627497865730443794527689828700661872935623847239580747890816907213686862893976838789876492832154394122356628507995093416569182440887158632248667847592351399183129777754022134083097888984810836314937076611410010838867242459582178932907745402168561976605800675551768363768949474520024379155644725298385224811375128137045359590689507362955815230671519909003636114449763510900281073515324059545386598225594463993509533631820836366965545582726430824534821967268926598623358771849285760048637352240078862282706433445943650887943776445888291145525303522913264795058935445766177670592639744289759099308825478986188858127482448970819910923234349526463583758883217670671540864047288118487048373405997941051253772897792309667610450122201282990636648373555401924050235659305038141859243455880627819607428786428818035875499650911241101402176351915576716462751676864528125211182387184243979494992228043612041999576178819332232999755508234043199796673070364189430962759152906095511226590809012778163768063801877022991878903399859623417589067912683542141055108909370386915863077988104180890657282624895083929092893840551203452185265345580321368473147688990045738830999714084460591741994652896178058173074045876179180007563747152519861505548547389660065576169252138922107312416458648344762009907622467795352406065972773711559743466026413704859794320910043707720981094293385997048509424689024035208792444530954487611669277952944829373973350753594476629757362058011012136840639453042220638338050510719250501522639182980486045129249513350770684038749857596813835845967469319302654569328299526400652979022399572971228952161215946385947248139653178366486203747730601517764869080544435671941562050105925859338663891682448402522322737401836564893062541312935824442260983882407090022327309629601643428574090151197101129453853651752780231253649324716624291340609770179638029743559634994849707884889476978535966606816508110337054848406822695998198621853767153549700219998130835908714642823349073517827448517003691624468010576623119973364469637945385243278642625622177281317740493014569147798796823983639699945032630752165368814049628971588059320942048632198078728190048855120680723963283094358564442503580959303202796843393988930397332953468083558127543536107760149974214382173087804319007211792250338835804098854213151382314421750279995657461641805550205034488799177354728804955496318760968465056432851387890976064012073216605155449103612454695813323536145644631922528224256033506877159794803114222915270501371455936052801715873881215473959939547842516201128586381129166187217716603197255095637563264290294089861744567501974017269653387141910505505102754176539850709649677306840034524129658837246350810391812310213782958825335747362295571639066888597274965299347630822893580001409047101506659600662002021089548757295826294209810717897148140734479814448330899906267087453830337640349061608338208254202394259525034782907666422871794274758209376116440258751044885356094166302611750862545884203109592103240572823003743510176334748785065279167091176637021467043957894155046529130539371557061401137048548438817037392979120367490972925499738794037595969048633364025079094236955728260947699595095892422275912910174288214005436383363610565309313057308093828967388673493699936398488966903052962704140337625713196967329042698402803532021769587752905798727956966107286017214542099681327831123377515022749777853858781453608797318814609847548474423109567226322035440474486740605685496008168470112312908312009631056168618381098103035953743769247941614019524882643419304477012710160000729601111408043749521444326094978742654226016252507041286454010311756664697783725876237898204788105435324201222413685634400842691201065074360646656524944894256229510602438022930749300319080551667395641138532276520175914093961152758664375115521919073767425503557302152568488855246482871131901617786300749049082367460275487315026961861485460465267812313018646648572988676313540773665189449748720971667974581432699003214878791681496374637306509989164537813597219420500733734067723130514540510883433315296331769322683645322380794307524189000172400494130390978113192388479356148726197281233797857669452657265193254914094928958244759802724216788130182423386252311760035073560789081680502422967043408327104959758247446620637414258542582550982176475327182172919148099941851962458596119760965440414866990969344275927344112297503949201434729300257069190578506712044696189119184159810552005228430295514209403770455797905362171205706102191535864462659303164054584256325238900569472478279272081637663287241396348924940157508218168659794132786137190316226787833931562783231013041910854722700589879536590084402841031726441497170223096372109885375798427866928351794680871715358446432117011725808500623996183645467268672596424301758198080129441136896321956980903234129596377739002671186646541725020475495985954919000084251084967859651102510443461983416230910465216081689678344631030518981929153324698869392340705036868544566239846232624781160389458791636930328612030649825333768251768061511479293015117676114205852577547035434405686040045737977719856793075531515204401460930814468340803908979950685413986811647195822927299907640064611601134633153070058484982884006496293252809119441021171609223427790452880347679505213953171977883615394841483075566174581636845261745346562889023244230967436752399280650066060816200145397309552479410966796199792900479477644792310220275576284780492166801681861207108557489846890653351908138471246956868417590616170447639368031587948208985597144028060418868057650210358804085363601894675317940652075901294795417446264815019407909464894275767594214471220552175570385213616984517166118116338100057323826262421698752481268626325162959670808514502408424112221321046775367178315054066488983139060960400791686604439139299524260350493814667467787644435650324911528359223068990139018117200973255115438504855402768230879711678459042522116687761743962729919019724890434095108391856713697744323149198165107816859649744436150958361147765344622195213583971078737886734950035087216459270290799575033117002660949585541694638035354623101959088399573278079658666117952265635823145124000597409266321467669851539916499309509557133053160291712430314929231842324349676651066469242869558431964545833509547346360351714363016939929162678767207358772688320465323133913355339191709024358559056858618575496012307216390234761403898334199005305870222976442645225820209264329870647440647802989477009886078850012411827577609299276144859222195193168958719737151052545573372459674424084509761279988545564518398967095612110998290274046936392847842807597425980493115120150827095765425326980195358463715801191524481999318952354708705282175172456716873751256722005752268258531006212208459992479651455318982200477825582920271899834067921557849035697158738145759655412905274314624368005306365601606884859427532007062475192707126493219096430310206560787423722898765524693232051122845019127787234596722110209224915352316844458630353907603979456652559299235300705423310476537400785194285239721664420632623398466352680408937503595774616888111728147253177116805063667737767894117561288334260448031524595056105061304968220182334549646050519233229490274356142559290526756889609522448518656329723000621045623047668823143815607849742805633691270643570667027203649943086564719988646891760923867658166619065671516758282365649236973856810385483882201702551303998769865221753236253659156489586094931020450434648591967517459077214195923910157369815839046097059319166023452551709362505959531168200019411642632843157621531555859363598620042439897844801432334224358574662236753689976961414948894216499169307552993271863845142055685349909069796103373906666771949941494713871999433467706028815000971565409869781613734158927483402953884768718952944523979080219761759727918849815221334651747575351422198441633652384692045784411871034555792044376979365669494842975136774489256711920485220857279852806553327963429067881178629193447041524516704259166902453381878745509993767064381166329400047454853270224069424325591685839463003675356022375774173924695878131284817146826911567984763077420199321622139739576501276146129410793400076405000776381261443169510652933247896308778324956907569646739771457016806272558140407394609637179353859995125347267530802940043690462289628020033652875993539138202172694470763104736492604382402182314004833773509464715545312702449848749273667585206458724980516235760258750311612206450852400675323454610849304321312822296000998757263734130109541024486769969049444181385821311457774681081384439717139350992008800011336846742926157827438947018828048466960600064118255816716937851449059625304985923651161247664682280972970884163225212498286156828926316464126090178584912583222861993701963247274820809938973778375186528411308952745520362528742953388606623564194365896473934104186955216842807909718876747861237172945192071541424420406482843274116864877596614604039866812164892377014581126821866070249773873538692638038948893817395588424603452737521573533208186141021495849512441299653798474455851771722453531160169607671390121072791439574873462975556210727379516016799664448804786246743667383182981348433437466032086356231641627372144846624243165664412773627245022454248875734509811077213959553420574412769874926747626485101503720996056231506714841937995217065004544110150177439400147318339588592346911437218200823969913334679966706187297712990724858523089363215334656247780639973991726962295009777679321565167898942471030091022722213416657029978443736126045620636057728135944245403323684183198575527414072808383714629972202722153898744690751364448691738594135332641019473208155313896822766142211287660218994767114705765898200594618895226141055123785919896090091660228624750324331282184692007783511864626296230799182576122191423063052692915632635035207367285061795610926855039781757448318445517596380701769639723132211908669904708195784325507322499814540445069371635956480430964085074533025070015760355306406562213349408359079359708343472482397720396638895488742838981337962697393462373914296518639401125120531270805991497456896043334211666779484461677932855635216516244554981068253038707439766527846342041726092234300437269956501102086783647596041124747891249966127361877810478091708677989015738704230043927767254713863812173199696107980071547559210305152558241687378771882804891128448566732159218174825926159161677711690736160877422342531057775828593878745679449805691226221000814156772181567023015899521057945490148275755379507876877533606641119808255105904109050414944919296688387812021226313606925338814568335360015353757723300551607709012287905837968120108591411577393751417374234665146048320085012309008792711865441982100873532602545226119165710762273826435499438593751845168830803760275361262933339792829031705328597454600175248498112851242079002707976317463396480778807765735850393029831099856375175235911931788374363956620032141540863574676078553479512743439276562565063279240930968615109658449768138373966978331642960825553127124923792577251660517585109270365517317671996869238916687429446235807642870471060774221018176688012419720512192129954901345921178134809546401865975851444791597043586856621907459968366752800074296080478635384310707942615672628742485124691818728212404777058013612079279993689245723314894632409613644021716501478761919575820839778446175226436989445470318600401273101815003260747804460994633749901374720668487663118759488820911512197071503517887776945739862565200471016122068867952629235087071493144810984299990092257700639807863547679196890238918632219528769564859173103148597199035187574452005083451046392677742383645875498688957663521509251635992408518362817953697005864227918727397635577494303775229632163478558194939725686238794096430620095309126630204879121269641099389017353897763178786774317269333469217246023559756434491670979023644187847404966695106608564570136588157904911734720170770032744748903267405870982671204778296962648430062484745081106155145179364457341002178783264669151233623995430595435118441214177375167566404531203695504356698858481665036389981193775035994179946791558074352810528868720674907589779027665037896133357352876012391883475404489715282661141210605266720167849581067735099676574549989608488543276781892618893523993889611991681777091450027783333491893719850697625103052768894230819888811716335476384944451498808568505708973190754288125963039248831619566353881545121220872833976751048168206361545984883515703697623548516899034244262583136254594473952924548895546540472222116084625001929127364916018202795704072990112415125958082034912971911067768523282503301586811085815381665636713798830030331310340029167936685704584844788013598597760821782206898392760155829633598843806703400120986635879365933261093074794734052707598854446460784867451807088849988753167043722728461029889580392451292548685917995434751570496081312120322253531714838971917039278338281112207741836005071227728036696912525300852746960625171007308729613620632630851051644771483124551602006803880903592871970996695976266364381268380625534154151023076032947682750473356678968945910885408721251413477407828925170716778308554080767480843167365525459111488978296677647174757894538047715649742413366001994692041538281480521955954854084742034460036246872401948241939144715495547950919313968195529055150838430685958160411161323437738662257779689575138601192489353894822574896789102469819891537019916191028226264001252707675656545805104922309747400396987735917646176065760064850891968453566034164155956261061124857781717814369075038945494501139132880795628077783478691130656603307394288227708306970644645266195452962161993068551511278284695042565224475919892900818427556775329319135349156913509439458288330676910487547058675643758612190327265308513738609241556393075711115847744171916710721508052200464744145521019390681204439419734999180474904210558651685016983158994180152748307717759237547153449499359742655103861796466281162342535866308393990590871933040877786236954217671676542448473799490790108526129349496414196887287562809222926953975924300186872181759381084769903248366143483434129251388047955155086277129705338593258526596550314028791975717039996585093138734549287788523300666927341330282895516307210406311405916317232531612254462525373617075580322677729867913535708164785530877361397173690014030546999917205918946284815217795648192020500107939080773302748239250337410095627107655737333894163310841105968183246510419905513902354662433307590904448676436888081624840500403718273440203865931942642066337269806320768752031490686175658564962346034308312705105679847626019704717433946293773613567774305505825008878103494695356505991840638644678036734012978036968899658508195523625212607096360787218194891092728957015192666061358327931459336907292158725235947430793406941998691623087258081894078975459068925691508141139323244143498572221672167589306700145046543647001155660566392849910010071698660795494876695015671121527253898529766990964438521059588813125661126849907504036709876774210729197184141376574433223405323751895025157019544481115346867669334451040676188234007717661614099950498657961864330765377373917645670971147545183214714124250617297180212315549973111023744005805930668622919226324681559030252694562690843858371049770761779832088891761665047223965017261658092923350644372667741874912944032383343080871711274157121987228560044293773512388194417533605908778757774717457804899981792439022656733202414859107972364121556179146388213163766194572234853271069340977153347837235667192982813050557231210140884806344144382315704105436460365732351707308202214114772679532806757451801836698590721599316720631820068606323445304257735258623106051712341751703916685226922639035645680668990327247561082659269253661865722788786421788008971327379453809930916012376888480969969411938810182704758249191301910534937812902561534363278280909879592057239052509681496401761816739528651676286055247042037846493054871355664558134554786265445177417583596099838818980508012401145136520136242635795436390920552922482051575004776910587665078891946289809483233205481249558373320860918314978888250539204273995295982665861148200168649946621817766787562926532947068863570281083460425281834103093078239856481930234073517690651168545775882230224272830951054871354179249546051158110105292916324261155682706022591236422246784537787791941561365706842778230469210639940043213282029529765680934349614273679074238172715808777434646873830593286281382027290513220224003628272015919050259163770912401735122503924249300636104365651265475323725406182150467531851108860981379982989900421443616864597079641114691030087536418223107118234858085641862105393410744709329668896244795096620385519066693622393058315063867828745235633169459439269250641225990470982799955152675241445775089091248189507398059227575758978820251335694597145218230391074458829411372495089928518233776881778092181759479935653320994749274930526416566572863231031736470530929593375181740276798947892247022604502376348705349498169778677237805066674584639592149544128174104748419558666791184535582516773892461521787386412951430614938250951743326241247859714958813964227221350915775417797139830855264234631131712195370405982443057583395957354961396171162534997327229983084481053001848915057095292524796291095761337526829054600387232288808628189700991732549440299208626439690309785251625179467569305835741721899670606877882733574467718729727247610341707089030177626734476345711043477114374675184613891651010759943201288060413472103241299378321167451967070428557089865804851649950613789553524792745279719776140930780604837853363465259686256406116802889653627319984840788884495452701496155913059039300222657805134419708368905976456463522991783982304709510505407501707134760795172782602462103080619552609358755403488864091435625821369909820471061008260700943484409729706876696446023298587954387881483108106288806209197405787588904250906383772530868953490558472707535609140085772414227067212019309199056963669172303919927058523787146865585701329050863304016764634323489173965080145628016766607224455372926178877832326235627554759563615029499596008282060739340150693512516655271756301594376402542172226207774992857460150578361634248859452163269002204431429838697511722655949558057059589906747181716581728462006476482030654182048148445115068819766323145674017720901377749105691553621161597868308502560628266005412283275251280840502308185464728842211886033635533638343808261186602198950762302718764502374139419655268767560093153085203708358970834207360442390270031374989237435594058190320930005851856423083164452583899996034726370551408020615338526091328088698136644703398824278688477761064576796465233375015711874724493930663240609171342829103181240425620446903852295975290073625240455673956444554836164325622890888942854461526698138098444062680101250337457202628216781905522743994674839208503604664156109009865507903447828815674690356160395001363319314823630550129868605358198930551531847389172282705824706490757089741817905230271769999482091587756745835542396189627449307326896757639288452118234271200965857945389158923165412439065959128134658572704896744552028715183867572313993327492588934951665100046365726646856794187408793531351022141009889660080817556124689802394918111557811892437155486196525412390175221724336122687246436805963286692483232609717492501060430868235522319187730676339719127767001482914696812134607438375222252426874059451539324759907320047142588281050440421125691691051706678916751089895812360249978870293555935935314834015034438960071088347590774583795691873240093893498730663965439482842058101661143117864692094599137084491274806917649509155103315308372890660060173879895784491024217323187314826286533049664183212568587677240870235956280053418381465080642528485660354567027374762885505097318227497440680870975919446646029482206128031702248347967065811134900416382521413545122803414595753654511444357909717449073579364278780577954670851237497317787460741783247392553701195270955443660983197239175402176330222679549151877665566813926874193969916200292381806155158182599805536976299241641813691007507402744575621707073447592314472483776109711469625079371385232017408891979283256899808779754709588287406424078643660575964333008168790361406094362662944039018811329766403603514232308950518117327506752162925914590826878338193015035420580392753437204784977622076482201399623989012453489019201146426477439880778116124978725008270852081427264587463938992048168682311081944210614879114787066670181807856608708332146956460037333802332468579914284823401659555405121450595759085096806878228386259181800250103182945423203100734040923868773476666361102111374576252589183568372175572564742587004245129912107882486504198965484417502671851525055714855159014181885147141159032412056181320067303855657492192522254401697518062908531550967607021000080817557067914586687561488316824028754628260402329803447510761766267217673816917489769537147323734824849386269093223499546650028697374534771670699469750234486984402814492054236122730648860495960996934465531854538795666395054948579364533473441430697835336454912496400914455008974812229899738516079522894279764754758191767659081444242010373652601938825494507470485084444835589084675434684207698165637232870594435371088638195672971071614850378851584333483396310140840491221173012519035733207755750561342063149074176710535777881793643288688529863948195364331172639039800784808257908279030726284512277572017045786321963247106288175308351970368089665310517380204528447931937021313036987484722580741137915215814332119268808843888360955992846831667264847085273276113824024828166525967598407194945744169325394337104149738936044001086984576043106271505804242647445163229310046040838586664162643182885777514255889475999968561597660943911041266477561511050384175517561449810273552045431624291462277810442738256428329683372843475360822785340169037523486217979517847081855311375869465392004218215842144781611327062765342466979898137682641289603938779706075144660643723965654086931271721264176777619562387792011891198718156596351271517262334883689830641813182123715157729085789166061911920350512044574559808231402450368540924311964439404819008408603001407769367109009351436057394337443551111488774367055300272032707865106477790593891073002522636624002230645459488016392295911404444001272080508488533756722959159720372442841069454388006905088986575755109608140777937217584679803389861700797417410613214784791459747491647685683764952154692227603814580687290997887999771540021393520522633590655585499018288420915885248013099973777122599864963696271614015864313492767801938280526639953569871264897745643200393103113648853260361801071897440310571796641676073785634077109696971586710592846738541866031982646269015301880915843141441340726109176999872663989465207384150408174130786767416542044932335629738248365693108722673394947396126667573639772666177117598805338433960047645868801391464346244760757658136365279608371158083674573979392364777317809726097512774497311884622001924161076184863013870388904949228613268199751832975124323088869353955083121391277131253273751573243611017347592990595561565501151395920080845470263483972423620369211464751576374730993185154248383744226063250950450857077717361218389915846996927136175746472023972850306775871439686699992249887764140819951163944392259896851053902096019074113755276309630609850846314207585405458380719137463128097437629730849073316295134918745914480682988233862034299571095483366696897265022442664876933061180418616560649288717182593067993675262315149853330408936810028307395317569897297565475765349790821170407319665046427729935173486562416891245967634859663077059959035187353117495205699377949767314043494002831876448079164885223551512068180822818378660629864661523301552099788645828254734879698454756346349277833256968821283185126097212833796474357785586890837954386421403140070542147748736703955356229762099647529644874610628856045605789305361339860310187810407140133049640014694234510086410526225854474229311427065990160445470949614037326845448632995692908331205871840653392690403823854593686477181049138891214506377671753517400877577141923516493464356758771389467647142531806818164038686974645814915965683758907281594588695101635817447355607876108560802648322767026719327872564367561412732763801485821783263829565340854310057976343233658306544163038454350455011541091050678741757585535393815586713357894769347237150057504449023797937568665110197948194260530381842341577649338055836020371439571097548762000268359110329231664891525828902565089156116664061528707308917067088278935278515476909107450412123292742956711898093999905735209694676419118980793997722168438877280115622231623813913545808230790258597727659498245863760881451616062248838595679301510815181162458216597025785002100456705370701540234842553995708060720525195049554494741297575861560576064560064578666096833949130294969074843212462510219228456209469669234722959926778449641683371427510910938395181209312196334633015889609661114617811159710482951351341800102314057671408345695973205138972135101215054341057510419009450190615534450558294826150617911395948227732282836739682987493848902725765451348806824167381016139336257875264011661070085142521353836121900238251091618757179580090220889919618224266538538951636132755164913090203389634051680650511189796791032562331914468653384604391276841207278950925622118828896319080188470620662013847966595904970083769065845437912142586155125503236567377574067259961125586859987294714052716158524414237972536075247696789080227207736794131548815828071070434222727594552684456820561199644587588782658249998360101957764218372471089535456951787569691744656135279266859692610308834726530010862038579652761187533777890388515215627781997224556284938236834944414286029781068844419028532319007397976084712430426616766403887738777978103961592203023764400212206349529313920978206206395662737541756776126595412641682609774821673869189634732069714493447976572939082547338951240857180633520623746495174244255629700364842576151279999275210687342868019255878850023172397350405462416460781186700991878916062655243920729745662896291808054135328293000485945934875903777113280491018254047175365211852475453542635914939196665156014819919726015246824239929200791113527942708500692536286270663256111482489196222021404819382433539736790851561614919664191614356708770990536320197084545769225351024480307016639756501642969486842853664126379922300916310870003617700410905048476079856749382049338279080037158814526521784702775486642640000573120223460648090993498177705540646251694203503526391856923615060082209956718898311833747059389768985576869521069083024435440040063433369333498246295250765070023062916720484323047710152876509563810373561513934635375111254904776142534920204744188113233917961549116609167635925016691358100620876921764608763944594217028637142849136158681901958787620227891908364562634947791988760254885540816307253161964773974759637968020559393195170415495655947301043668120417427980057089135396358670318498120054135661888407012726454961450830723011588639212466621196781628185690109184566605472548779615941161006627155855844793504459890087805431924506645188614472358747225179623739525116241791683396883698355116651833950852456167562684016072994515410012014322767626350110190805432484722941117724270560005198039566942370947717349647644990352918706808060200045838042343589086419951027199381450224220326140271121892113253041540367712904176444530456634475836585519538244624390727344599256423852013788602377297500013248795743633986331282380807518072344991652585752095410975804363497266416807858443841358088886397241998877948484874513594256095026608962833099824597473588210998187526961151592060681918723457806131577183389223229876367708009228851403979711155764057673485913730511526757100923884453950805473748316075877658282937633728598442638072507412184523081554580010813582584392213507607925056961247831020896023886228359479835015964829538384273907281948684607556677999152853610051811099318104004346137443609696071887718753053838238166303880856968904663800914800581444497430383159950942131146573820141633258506968722293582052555607503156340702168043610070930515843975075950374097018869465007244102644758880767763709149604994114739937695230880163910569250324315896798366603524897705869711725326968618831656221028661061050183609273178653591334599914748810590170852618187318033051319500437124187876669962361205184027130985310418251187595900590075954535946023548724278755745451477798393672021095086554058639930790474382507923253890542865896923770696078326494156778278865886351520284836059850253556060099200083030734169828665705714545295519220747866675464513961547625577388013205122172494060916019150544199725722939716120357172951030698289269259195355685940728178278805648551641653180677483122787000346702755945863221101581275612755733197552411364709927068941306328087313841319178399504312645895568480670402837678452879757930159691028990902133401462049829029976055629411276168622668459912040825419308358439012750541770141408579135937748078112543316878085530199782893646216649753205920494531309743311959534349475502286717406170525187034496159629294011431304977807935899602911102016198319834315360181569025564367820934935471851859961420558692975273525377261492857730112184513789441581604049712046340914663314271681197311057013579618835171574237228123865589882828246469545459496012683806262757508102262129184976994873925999824104438123669179557494585617695414709830253546634861404179106271135771097223583183617238912328178487622992692661590568769666854234834984509713260173064696036151961838250618313935341329971888900580102133965026727458794518955440527512332936882980172583551272121088743957629151759154630557911309789490738607359213897100422566262362586866094042688816651297433561456606151381240676689763255252890463009834120457702519565285949894306271969626256501492795601044757239231406435708598487445189346436707500866964415344871058823451754385517454374087040441791683588140301111551709696347886121379447903985328923118973651175288940154033004684359625012192355894709530394154671497418448473524705105644780257401369737047239240543854996233540168820806653994977259977455991901807241205748480299051520660608144168161930742042122343527095922470960855879644786408635603339916264884228226086670948767717114871646748186581622346736698789355087782684693652888991002074722929710110189915457355257389258341018790889016586724263528979612863642400009946115101843419861714469462795289227148026555665799093282186636049241633186552361297653049667638287519914806506157042216120913759536001124585310488617714010744862352512343061236336710484049931562073745554546866397246696432343799932296777411048431346632062570130094435927974910796517851062318172492641250194527852432130752180073317798979189229927611735544724822920958815922196204911995628224601854295363460609385634741520148252962951363738478747418343691308811049210035058543866679047288710241815917125623302148282096793918417649185862653166586371291723236803778401480422277139511156940165415231131203542870310851294595873734203596964883707478273622079737323870683286757442564294679620768767036403021083370691474269417140457952044691358686373660637711371603926314974695583399558608907294653174496266777155128744636548329098853679989858655589390282291856050419570329338713491629890123532614965055645534162899708126830859275330673817726136267683052459972735805222542994822752011085258790516572235725502830180102390547687093555301256831498630052834721071753274885265930314316569089686146746728759437759562203961511183134123013892757787969140971297818103227487909396541541348374364379295638396584016633254918735880633809253303228779252877334321324555575976530774684423907402052281511952062199582135154703699205515646472317004174019792032164462453063573881495038160572166824681876227094559493556986007360483813510281736020454809920768912696264512088027834152835580983710286748415569492596100847118850896957713656211387601747140121560060998498326365864552646820212359195029066969463337271355259140725211451026541925519251347634304698735855125276436111465521347107281106762762784387730381788086389052533812085464579264256340523637648549356405766647008138043897039265945962057555716234225576061032585979008716756606543085553602690933609517803433796186352540895644134869149528681819814827469885747564246834793808739005654624079089533554112493372222960003816021655831075324658825729075418298775048214405922730843962511209625284594535905961785588630984686784719577018512826799574301912108113913526989599758703079986834891885488811234998608139415719766647882354162423275704046917806652696835596296421005963311159562233583914591465736184553416749637069715405604439542195917886354807582990129070150083093108799684092670485576704677690169920512767588322442878079550791736748503853535217078594729734941497017129493885248768660118520899191690964817027061192843844016972064901225525350953066328024554485667744945466929956796109104714891277041542362214119551345206452444404127737846515948102124639345092005294286200911356792263420508324007515296696160654947164774301093052505729716005593940435088755128821043853991537382858538579900034542143894614578366636561724797506013634744235038144163223385568727200937230116391062020874021696672157613670290981424666317987858923036577343809968828535644155081086852166144303112767856927122729428368026323740769836169938740603831008583659644744224042887214173140838046127359989507157816001700369810338301075597415089470195772520678004624018812104242403796475028139114875349046983109022810304593609815695510782487875973996588269990011673522150191465792624528886428092396505503914955521995760328034598033679591854760771466256363995250392189597892105228093690664581061426523775876466822524836589936629145145494384620059190713019798957508521645212519933247312405253396261264891901032503545312963791345663050429401934877672670565762569452171310678480768182850720136787758233710513391610471273645744603367528939050614783458119070735025229775807152139352257909300697353942532288303105567770314688283294422389689252031951143025800285502381775890569998489910614691780542190697329030606897198600335365652348530201852846411533481415408440468495546502452787085005225730980101398418513244008888184393551431582134966693803571849581141577772270850019053113897531437882691953037617230551303626830051105815703627399113006458200325067880884109672022204249677095995943314132884972017252243338528413620695839918314821398344924866790461813796926957366460574424835547935882902122109707057278360179211301466566289849172409437563380817468654894735761952010919353053067411381486619942446232615766003288993791722715943450909108441553436895916212287035734528956168683964405563977765267356934353963731388020118903963598451157544945274308460694894088194149839896961316629614309128117071265936296621011784841087574971887318180848064330660691558194619190236513255510180244643057209318524266878011995524163799896340355342037279866363762778725961279362616985954607593352100211948730641951246667839737706408778896869906418201913183254104477132741952230759917795932493231661903587870931954263105767234374393447134336763180177928114575028272896215457308575708838963287882929932176225515824994180780761149591056449402693936597481865915553576775100223187790222700955672290092950687585297712673518525284756232369172631348416426778411300278243003132194090722216016637694441731765092471816580363570424772536882861598822768537009628364400522808457248424046556825631529972100931678584335815445315791862184832443973945884898400379408851635223439135025476191910507546107967708009389969269009217061754037665660397281414081967765167061752108891851577657615746577577235671612020613710592839822529454596339219046460848844854172008896901943650102248512231639642180311155406343527610010207890657566148413604737657901347970030457587984300641459517174900996938987559867878336831525016308724744206459632103100799920018491198908651140633008786596146183946530167281140218734381137299743605724119120497521894992453618690238216157102108420830522621156197760865220503135985822381766008875576481295889776693528290239754894977978464358340779833685992505352924757209064735586226991750345159063419400953317671684793876698927702216035431609926348992585394833481324803713445114080582601891726340779125984519012771619429763502402036124174835451543524588081509738538442842601512408766966797487659960324986038043747736129951198136755919255395313604041231855377261589818365276773451389751819234463511419725282130051763745594624272351050158626004405213134496841879545116445250538472119858535799079919773479218567872386043865328975018672337791108922182607842621865028197365706371785808297666964192000996080770084647027717209466840680841716284959504378465552540063173644230161939607706032934670691686993406190624664822955696574111148067068330715600396305497545988984664353875883890763859176443238411797646855113051259857669020780694874946721428009976047566824636554692917818692396429772292365846312837114104432870904751307431074050910845094034425522741754628789659303040702467344947937168462306178645441961334768169983236653598769180822853224135147880188847580092241161154678424352359577682385044807797250957398631505283127226210288505950459022011814999792640119416905911848946074416286968542408539810394954752980833879110453549938485197966035294164362438347786718251528950171185186653311441047199288629729128978346810473039676560245819663246751326981134237820982620010143822889968775466228283655196095974423857530415254258683853765754059209914630186122280226723631092484782089597387233159436945648560131873381330766920340104317997049668023364282783887428223432274824273008806902497158037945368001443322462753819564354810143655904336403223238751985816128802651837453898351507531694204349369137396327990819815478832826226118238860191232184158251303485492792922191540268706121160234549132862975014722312168327278860531502899909744002198940977603542962423684736567620070843716617154510735338659757483043072433875955115144864599239433941542627784655776283887212529160033883389790067863754833562699394753326251051621078873548320560961360250567832909085752441592263472342892136908364475402649081460830142391995292299115141879850964668133440424200886764881387826166231465344116335330118157979701261233786617233177495260174846546558693890179509701877923957030856576781704522451371055771666208350428068673464350095081083960477233589235103880374142881721332081268826339963299198582321914993775934364833854016825900830030910228622411063587142530296537516428246676364355399744910189141488411948496176260197647206029273784030883493278354832529872847080633700172932648235440850632627885762715972091347211432688351708165420422761948138154803917224170549580082695128392878229973506475636972699291233458622634338586265897026753296425528518316347264794880654151274290346989839228638711933954636279844812231883589089350639123284862913049144508664610185178035092444121696986175994292934002769540725338918223578368766352117820017817752649260515907743441478838475268910549759865387909401458729494858181192896800115643846952792540506708287491354750438078476456884338148669062345529400569977636468701048843518503344482455593485611120831218402202464193922142629337089440677240790239818910217150865502755412470713532249840390447727811570015576886838559092016055335587839965537310791289187838292601354809950743955679226924434791221427456803996743202058261500202688843907955957073803156254265481192702231267169246322544605337022315734260834957562439450068823339649911100030700184466930999669258772862904911565041394136703197333302393549525164899083900629117791748177221824713099005801448980500260231590377217009194466543980394224279863096262718097098048903063753201793519875441340698117329252336613067862096481398013535477289502192793971768105198262458341941890429812477445526123894275877772706320912821030731132366966643915842110951241334894519825268962039908473015669139411182413090714030331435600772620728751020955070259431727176146281034837057697390990275014437528181804611193261284323054176455211531409262633688934122311420738495884280127745476154150236915923777754544959208199223166934102786229340753793372924231430555321998742907483214509255520042033514074257408143722968681734736184488651606880431778588031524555158501530795098971007473064007308221953093691100521652804390794441397869948859744073068214221409549173694024546051938293807137245385122782656580327569867413935790901405482451262411816793713763322416383780370534273037712915154326974538314548492182258315234838271923896549292411974210001206124837629215782635786599904317894807531639979282410847553716998877814219421276859316376425089942105227003035010669041623918819366411248345248003549134241748995748667816777594116851164936918685515072056177736187513466827467640411383309297893270174208548537907059224966946027476466263708334044782157544287516034018814504524325752963978929890741505694503583229619892278954799084296881190120466834216708770068482442385088704073648829136116375657478182250524385496448367350234812238801232116519468898895776540733033833154897134477235358740699471949783113489378150385252779373330494045406725352728228607776728819576762202208871004280081405387279041680880040620031213884880439311517467033795175434600012851513163225920163988549390872196290825508455248536699765825043734679407870723627841095596104183886191523638076072337217732301731344027921486732938902364406765686002839836464849081179502074063085021967293067203389470706414900700891572447275723457600956035275989290489870755319047984389474431384519021695949698760541049016799705504956706987997134775671135490142943192548202803196642169621582079918444356808862324770987242619010663778378925009133742754576715942892671881740464380292700319367684279332997775332181573806012632251961881893587765931337927706873593703778645584484127568746235866509848599859323357786115968628161752599960637648060603224297583682227912021076863022359275805563701273996005562626505734157364793529114150392681718396917861868230204640795213729718233953442842054914853011817632583446967016868051867336098866138912130103564836266953701740691586803996431078263361415295808673663731526665231366827219383053745287206555469461001168908508852416956631872426371701959364541054796385345233169129031335183921979024160409187379108967329738603285129408055837358203758032560628117684968051985146627673261395468906039687923833841089980983329074917323283988513671774524099532124099097011687317643630521876196822966276825219154168063881135183694213560576935010505735393838747822957987263595323568106141490932447663050996881116886175247305763970861209428499125927933495014831042105853261666844014877316485940863630269671244543754997057296059739987819575982695466973276576008174999884904365081367006271388895223631366717451265701222257239669618784181219820872203088394777124415425467051070242451372236217040058571001149701727808157587028663280579625895969502165606692475139252588924472380558193369903031571721448232661883933614851612538380634260766282152395246684679322397318285138034369918963826034514258155785364763708692514679767911423232087785312608436549104592703890931082944839034555503392548051659442332007399052868060926521249551252704604083632996978238731437728854679100529859534299784139493543711243259253397376178530580310641476563034989907395736355325156042491333277992763508726395254679702234824178333548306768876183742645427366501843219475790963728760085979386363214165598026540944939458903099676167110214072878817277630506009233602481721014747904091264175709985363926502749672801480242568671505568684497302935028418372048639666338747606814353566169731594416330090576858916219785936034535995903262410245726032744554387288370365296006179818225418713775787851838469460103975720345079677074231677507659040674164724850731467444525901877823218273106405788377438880635577258514117021358809657908469025866158312542143446368864754958569902672413245009884570718117195388567583491893556568160281011259655198541518442484388043396500504804981216548653043020326245142885429246593764348560722416351996768463785695928112585239939577767209954523362407898848132408769853884330647447142979950968287145238847904970625229557275408733499801828676561654823829375745894039723106977544067909759561268723183918034092794298428657493837248628040752238789772803101913870970301543424741631168908568531509771022248151901164895597931102162403029286043711721748146046400214473205339562001640837641498553187405904507862024933494764926414452608380443301386803646110987261397144086790046153228547936253750745032445618884197564353538849339962683100580637008328105162608914294723140789343531016236999987831411685782635015187947666608970165462274150254621619120305200244792316100341580827981796991252285647994424709972745587775794970159380810970090732694801975508354533433848023108611188840677582705629330492861398717353860147881406716319504856796455138325458390374727165538836834450796418473350846834248931133906696997091244339722502720682067638899049563323948678500444499099318679458952511263788059782720722311510156973782399553383535145769615187577683584326862788733703186202787723591120383869888732014985581555802457638609516400936037285720639409398319958100660211647953504722016228628084622990809394244669459083593068081123098145420854824655356024161608663509658342840405707478724785339927321337812765482952143602920293703134472394489662752045437138080944188383138634387239613597593793585503297775384831394399048774182301371368207530079958835399415020262986800071732403815315111476672442192162724647969108105306645184467378821657967335705497509616958832443084233783577332842457995417928849368721956198866052487473473502533779243949551251635166830339546043881240368778523843206445098294389364905767117682156246822757293822075907864554248303806138420146317279841706731840512226305496706629042093564110971504872262847980173418855183592038452328765335341723664429599106557909717447531352570182811096957949129205792389130339127876783105856291019466365762671361242833798986991601845845244236349143267434151967658334737267917638326804955837873291027322068000265887161362191115390608802169831786152319029162678155725463796703887259054198408615691875171325024230923652097626241795306849024320445154280376673275892717446048783105277174628313631254808244515165364220186320683690960122323367135171595929850655727214375716899650646985779965324711643327336122063865669783467829959413248491559545522020948300391279137084486128886707358178254825338143257611858145081521439401554612641912743901341118855299435909009111109204907139342037924470646051516615928881046084821663714654528958963808849081572255460087283600420154130264692371509416964080955244066316254239884154883443801786020632372894017134241913421421156018938289321992801314691505563096968017491662888101546636123479469351677327152267556422407619683023388260841475507310516698159183256540694533242301308923900447508847867255764582604419761587506058197622067086184609485801468486269340019274109683546253161690261166098779694223338868036817709270659925946405370261010839629152210297651633508082418410125328365556980960746047029247604102395140199781903062465728869833984192579169449323271295729254537263877141172884435936197231858605687317780686969911597734537170812929384312398023507096791353381509174738629812738619900869159334580110336962243871014522739114618632434406821244467275820989650370871545602166696427480411076876359876536743927444748754874870656974936085181763589062116702469872771633952575209945034412034995941126820205404107692839732585791167493156788690394941508983888254256578235558368053894126786586466450225244520489286064234162398766718075289598421646893118300595764522512057130057220961706214924314359592213145914830579561711966949293172357423392369074007282351682221002535504762463211889816206618882349078061229971102574731295008508122343293298401322325752717673467060299052872623212269448503854973465264520819904964864553676742091528862717190373738369313041456855247290284910587697197877015698176835135311100870144660240097748199213196903154522383720360506046117544282658295845892079033068511447490657652179015575128743026509886709634832657092292735838002415733555100912354605691154147037714705043488807784318158103201346548418436730724720924653811877791707223372650519213061580783734537317164017639133948234278892149054190036405182630955945984064411508395907751249048283110460578951778529154836175711241779282367507711084544926138726027514519282792646166649693011288429114873379873577784341546372257641590639895968394912831277750690580334564697844108228141542141078997836470328655033083912620797336268232218884819231164591104037489497515291267546185198360267523931739641531764754140285644182622016050425154637090959446489132849873190664453812188212070573975818835002564492270397866907202949751367302640920651962113346021099476425806779164510749986976131580991414430046170053114003519773238679265921676220576928199249860395419587034645054331835229282909100101205002651652849902642287771023389406468293750117865838430840416660253290240584950574720842496035433053685206953926213085251981944586008191080491500771716059465386180791657953179854892126241453778293664794344652671673063489887635239671583221340966493832735749177413108845014550554799666809742633067908294943876552517293508016383589178059072170989128786622417129410080239385632211376075881332163220983722006815475999343066706019315001958577414561362422223414743391618689051555580352965713620951577164522888845674476357386455111954724190584846644026879515251206607779799505103926941783339421593274931138517797762589681920639764071083768927701275322945285071009672221930338839902111453449383929375431501621745886479672192390571908209593936706020755920635412506055662810845171527581815176339090732488052519481263560510933686516796028047799850417263952503387782178881784337430332554081576647500231347049549896676197218447099210134721729066051806573228152536441319230163034606987457476573339736577340564755878346679794293632132968028732615655979746564659695086301700331268098857150124665348864248503842777347689703191308701147766238938937453345765132124427062179644716728741692230871054175740232513172790974201379525113477108858286307732637463232907138460436004228039204990247553159645429787185670625645928923044735743808316512092165080826247868303825776699467143413508638730008569186368073676706515611011646344024983955149325113574881669160257231151031478015368540986575884886980958411140974309279961799597479157047519536105355157698996182282312164122298699941547753154025473906289373629078372919473599484019217055306256591881081495713320720997995392425396611959417102594885873541433473812747950651091483966935952660400283563485383754695410994503907855256138040604139756641450441336943858376045619715843714796383120675799219689476086496694273134527511718951929401070565115379449918597701988497297206416305202037671604219222464877567336489569678861252441280809489391872236804561131649057474404470651027862927655326290114024468396690238038804248460317134441737059347560825538737436058759754055986570592364670159384466168522124312007627875335347028995911559436802148070149094267088979243962809385116233230304264093521619429421126923313225316842008788881565205635980874852102395551580047026454197454789105814596611980572172868513327511020159098834933711188045142165315078603321017630626758513084932287519235122854069170561052310095605485935767771968262481710556064432559584454238203896359795673613279424722069176111628813006805026918536688841561805149660902922903971392782710837906798002316534272888605582787845867863175683677915126516891256392269718472207645909878304707480305677772746443411145400452134119578201084779733702859037684099369312428083741001960863096937392052091984047547347935158622568309967530341532184148174838496444079182385972049756360424694712902750670742958951225950511513065787443562238288977919950714922232522196370306733769643892163332941614042340165371687169968789822417667683149536787023351684814738273065963607347181385393974090045187036814713030364108242392354067001671444060771466450536306364452013201011397767352920738331277287452607252644325908090989038192822265014586354933014001837082207956449420132543813906028596397120566797968895764861244366195226241091748015198060778354209128305788786032852100138466373479067464921097277489800720968602543817141262920845356748758542714433209935269716416002657060699367870716661331561247644886660440500351069280455927511735923367253925016184096920589958334254130259186830248976345062164769989423616878471744243320490448039463054496137608457205500883809475479767469294117590203463193247697021920222375212776523283630257572113921173852393436014880879652416112316523629023971217317715418333064134794122454627193110127186801135722728741634942641374738903525737807988028405675218718392128939424140845423866240968673088135096075863006565712670820278848879181885909577477056296581700442537885996235345393897656837332580958454215935046611658287059039657845401904113527435364728549772943096287755723289836192179468777074463257805306618773302990066826334703650010525232850731811475151948202770195802537021509757513967570652447130876903938023825568484836453736127459490623104816704273701870412841137260153883416325378984275031820477577329543475617355020862189336456612270580251774698751790700952206176352501609272101769493857535163839396053849016901577541265027585327090114913780049237136437394125697358093049699473276742461217889476630763080690773377971884315713172007623610093064533725232032685694865893787347242692222117784347305040286953547476149938510330201662969266346394682310418940090671610069152460679558361408982555129957391058377392072249557926583380575396125630022911962880267353787529680957429928262785303076989537766389644642112129071646461275228740606715843122380283982433213310483525611343912431959502660233184916271116741679721679721992870050333310739910417335071125731505215423621336291911208290790095825585847738108618418113043806951900960788533770367340793189945057877090618593878500772217747695685915126258529818281462477073129907390649890949187535843245174062979457949336441189227711871848903657255696204424271089452319402358797185470790898411561193343182376287747451250021986622282674478501959472503245663849901552310698491822352997556699853828133716083544292134379043518982086421146160215468569430979805919916800192319473235746250443451565301110549383466481390756187556891851501224719766386300014891041401347352409966028042295079561461493880336681665682697285908998839374732751445617775535910021901110731641054534595205235121302627026361231891283193433609274028550868737413680266568775759277770657545304312924653363031971374024969192946971000723643846314569791089157197598437524272974612726985063541123735242145657690456900778514507953483335327621608935776360559961716484894250685248249311761853379137285913732406857738986079103383699095699803644696045427326261914252724159193962790000842705003630718305210813082031973255242744472685566233180574448529990823312043862486487437192436509716592034633353910663531582751992714032472436524434972778805293415913627256370086419213696772723900591984464164175574281634722790110760183900115638245613433464143976142359263770637029613346211558733653538712869927832270712393932629007614249995186062039198906735432169722749354160430621549070503883803249313440002335978583477171984557186669783090955713945144862595793254534567797068258084330179263623173345931992883370098297376938179865564164348986006561685230851844771563005171769569790852409401120229884626569965822134673977900443343909778687838380749567875395707574443615873415532524443974611848347162238638938764248279980173226037017435187656504566727693188330255221089002568331361657386410288193067026072534565439397488601137149188998120265440168643318529648648444450090532135977033771954086558253175727896600923754735830378546583519650091618837823588379474012484568473339018710884925796817898976437048470448543072215836005007213240682986939065619849549908136158621727722770207789929752054421569012402159889996344718836691962009587917194482281501999677832359782113867013271274351287814917490575629665551549295699884973557346027946242134641443656127655180309022908490397189310944675847154973784312698407910203054596348126381431013711152571354922043639473084949797691291231332085504194156465488047761416049012491325160436332223245273048516971875751549116046328089036158775397516496111493328395757327634671392097043232054549302526234375737858895478383880358378260305437007159166996503393700582987568317369138301337094341949735672492505250119727346770005635749340242240422475267342278170543897267390990215480039943714827175300170880824009410729542807965739870972710938530310346647096682849909813575662746998154080502186209558953526719685686031172196532832656769221171742020555418774871624296723617494495531874444458405655373046209616652327536008660655530045262453748266681020714785180466155839353525078330103874763204414186630641477334355575235950241732823117415073835742640555087828061353019023743996899945047343569238527144400347618735463843300045017389406824076713513049022060814435618938866448389504734877576174253748608063789315267374841691813413298923929169402544658002231206613896891473377827327298061606142034597285124882883855101774716595249512216648605335824554745455021600008405442539828176413003415123992539772349868751173605726482856238746445506591996013044991819421344038328950102481377937931836732606939969301220874895825115242469092955590761616465602671683066607803443322662528189064057148746441385473520677580520591950687838966427310337926271352699921123855539346942979316036821907107813118236217388874238216541933177864546408731895998239724657821588156603637293488950859480540069270606721053175302503208133300813214086959772477707533323692440625302466781669917727706288569156125481989324726240888467457219403000176552506241460106999523479367613160727891362442772110548153661600051113456997812056015332854627621186096904767487091499920689261910706178553344925900041011128363613785026932095319429187223222224380669671866341592302031596719772567530178840935138286150871351310323913305061132175105115233606895023033471194257820655456084615580850386567742315671998372476900233220902844256535775240813885669458842957678947742108768321665537568423246830573148522100991206406520624460662855788332561684355723106679683068428561479854420342856200222822241715545812363255865200381818343729039169742089693867540059273219401605168025974154173567802275176618177340459981291055177926769895433824396316795658533991067875282871636676702304868132248666180381457666628721905073249580603954293253766789350975660505187981182554340297639559267468774132671501797462944802465946639971242049290759973595450556177286138506204989752675774392219112951813419152939215756497413673697838560155809935035858031714205010391383635731605782628558482486497738682704093650109869147173329204804218993868178373322364467058917000338716926164581880022899258945706815967351258522551749863653123954264024741951974747946688533213257243825692011662052220962097205269939471845428915027921171451053038016901794243654759976343072412913564252671644892946565830528848815037539850426590987705806473472211394503110481374112152665918375946702823100652693679929302964872696750397488466796507119212802747747107088827520790739662737905769033704679620867966003154444471079876846522842450703633259234581829360972849786869012099279501034341527312805371853776086107929680147793106971896944367232860057190421233642817645212076095479609260197199760745203659384852769380928507499114384149794429015183131757578950647266846564483119252075141432621914960250448518856675971306893713486046596379873951978508553334327154131629643330064078427337740185554489420971967339933254683441575598747052974542519685518047586231520705669261062036476884411716835047002495506942513868038243938903901091202990385748551515762027876056314240153063679243963199523941970848612276771469684179641414593626905165888908929869176874326377770238866540470796268685106052019436121068109177153597916992375087200532159419811930418183328597710147651285128455072655992338251416921566242747401766357091454301121227556809736222716974684571016526809278728691939629740712143929139601051715136754192736753506338231043923082687751221171602558864698669619648274689575597069898003980964953579208107891552296695553533375557692568542649705483380561380643113092250539537017434187510842586005977478773373445712464687885473791791761949952629351590911158434497956723566851258386297144460427168762324454070041147113169788195604043690327057874681387644807585319017245502257697996815560446557302198615382336396936052274060404535165281113986986198685371029427704099651496232000225989051196509270401782239635216832847402540991198754394959217526837906508025506411201100384483391729187751269073823620346151704930001037247457749801929065414338285720672281573565827269983022054585566187187894000018997358658946875056329302490227333174518138652410640226639285830957197047302247387509980235078930163174125396612780120316581068385273318221095005790291075633715026079490950390042175831951077807775745715615856937361432501789086577778830622647621356390013185068020101849822778291430806888020419902335210606458288582261705498697648002980138184420746981977696954440763141016029770607485348419832633145000502610239644740496740443759763424222473472184594901495044628425311928582079936096992932924332574970223588487185355057745089144870633171342910102107874084249238006407568353123038885055862025480489843908307884445704726385503946742588696383158890755958770526291400826110417696986099064494726088846593494340576955592878733185982852237047872664096639319917717317450135767384876750025012696127067006708270465509470010009661473562241586102900653684128276263410131197720248189173610145942474050012960479431898150574444904613646718592771293533204610379587182129720283412404949796353386638695990774968087713772477144255020267506138608734916855772934929727910777172254696169554577473130572576059692604017496643390572911777390946895046258627746466623563968973277180113425968540793485213361850237579553562390644172334994555966361416380644599600353322386992811977641809288031858529826620690877351193210068337756167833146401412351919228928925557988351385024890872131777530706665978210727455077908602706934703336389426266329198089984076849905089275468155534436632162754422540165122819962455018548369307927294581310166521793511417778401678492762095755223367890085214302896960996230758088405957517308443106923772625050369894108323984695240763200274298630470746508054329214552087392100441550643295038868639413678723744505671152648511362948556865088819365178701849287649895133010120185167312119777662605199040603889036495106988873764779698630222135524836899345488654089421876936532962703558831946534399809814299818804900920833660692358202742751424717558767999382875990486875087689423598762281617817373557745665349837350805411988486227485376881319372200129202009407237151767061982169459555101014813393858395022816333559251311820792550933058370085032195361418975111525280316524738380353159235448406402952249213956314254520501187596581694500870517969992652998216539215908007926751789808874601866518629419179906696200843114497257447026968928120368643479359508606264654102721254627684366204861522591658124913203354037527892019186776840445928425673127352173932224162612359726346744480473908391653387466384127488563447636425560375416065534832281518179946050027863016722430179073024101696960475517010071462477508596164374881406171420860674983767646347146162616437175479371912256438272083711207489738756100695825172695854305630762905254178600583914508372010360219303057230996885498360523259967054013143894815441484349997547443496567834069777373398446669067278137995891614785191775761613362846042955931620392918779994128385262167937923636790575163133053458529666243507108319150599180223254209084710569243988737203425362637570652514748264560281327563086937895307389170203373635239740975688005142874428288518232342413367216617665831947574822730230724126765240581104214344573572539956296620932498443778880539439969743301707535679503541152511588420546834951065636643087655249566250432458088845078877481498851550248143416544386300181095769794461210663015851214019336468127001249760482675880301985091069050485421823883965681673460606313982967373288403896724101486093476137507757523624838227927429043393692961260540757701739194932796339153022030473924685827082477275084769254766936699152420849842538828718047724516559558161705524439940266232444924423980776783414110366482385134702548569569016714410519756875062843089116251313578863023719064732587938276073862950806537640378145723785850192827607724673159817562327608342155569381811768469661129498715400225402177803299983581827743788459055444981616604187047696726157504552181485273698363393134649693786657005392391231659777745898723104746051611415099970893022885693201978674047827924795596649538981467792553442587527063338643235489580279809262795397824276236888970657381031904163491698026820976702889067043978171558065635193966500929269460580709336517066235396462094170796191254372122475206565296339169981221443112933401422430386062072349855511829248162029400900325746209469350847983007007117364220256225323772897969371785303233016088500844865802424176637547628663205734382281850055225272306864764704865434881708409297527859891368357346183836276799010018396357008104969605141393837360703620391729437104047946951152644144594736575341485415702854130677182063992013041053801312249017745251759717213809474779407558122157810332729326752207926564927843953992319173094187676511306767479328487171354865499681524455705229501976071414622648862155616920420780921509019833832308945258974353988114005324604612320226741996448348877273406974793266713458331870989754412515129463340068376087138169603034010705749416015442713768742952008759342155498995357052017910767925355413514762231336606485817610407644543736625403794603196399500273206158857026371073552311511734916376566732583236378346407070031695580156398182627883232685489465503613919707095633241470093473552055255985629578940201612739836009512312032468707410074102185950468387669406575977430407418248221013743139978226983608399024598136312428085263548443982129658110308470865945596533324088209949302270572376565760136794029029053427478326021991725601890094924042206388893953567779522076697752027466752228157204787789639007774243426950665903986508594692467742250829184565056210423153304283778509307458873853883385032633834028315129441568010563136361600076081980261900108832055008092241379924572947897465223125615253820368282288818238888810174328426048713424144342889454949736616142805919231472331997834637022770841410249808853415395007964262245676194480610726236546084766556825369929091351257548733884206306775189846969201108337768234897333951866866258963117036486649179647296845810363957314457060667572089225763982920712586235279383585328789784296964995069022921136621708038818802397858335611758266337897244551324004657381022670984967589441302007443128338853985711819277050487684430541143923466020275808095228631974040602895295299599194009228803286565371335288345876403403694592879989980592502356727027235719409765791952912107089910053102510879383109954466740530441154967491948485187783762885505321293100276282215718669267193457750464994265673307536764288305807668259887760093356645473932422120276462129489406510273151348468041298681131508207586992233736457517361696885334280260807996210949425558663494780457394738379649958961790978298474305515812016032880129119546240104761235182891694257139332529915974003316851357757948476353030565903372628205285888640720537789016962950433027922720727212597362475793584730806510850489794975592709755854965438952996199346006239777357807048775661250382786182606184062068225767130493791948816984358269294561182185292477854323227129081272423940396457723604255264773787142764019941818315193363489598969434881979778241934116198060014948183105131185778996007427031373746146050667837297650065291423178814556921238561897324429891629641373778964399384815573843279228293203404448450282715005984365433963119433508311509268925448084755205601310697155788298909363968486471855490881555980229833109600970227176096340158104122868863185366500850506551953883545329660876303569352717666083683559248383123214250846773752893759047316685302755757147412930891498176957671422717104984311759915929079332043427722404413181180238636647245377098633743726920576479318833243352570195046449966276478857029255451963276973233771278679645318170796049714725307024693067643431971739525566655711739329219528692809456064674291771401504607139390929904262810013512387564697896403045029302933172726916089543479379379781341230016070301144806961269261029080865144114207170970570815857384667111241591893497261899432946011440690365395099345111475170050424363695074458002544729903133553119685861922215521729049208607115716144338940566852748625711022588818483316166319064280553607064209240831967677162448035589711320344590229819017861014726436886119593914649927742493425621905915355658209246646940307774511084408145126827350951891705556521175055301624844637813976858272272333345774024585619451811865573506946215495231570479752073886056724485357353233464602786504159279069867383432984482473310811825627588063654406736798088302028400896226199014836159112786476402629814627742108167386489804982856470108364680666197513706390553230953075646306508204613704382048571034933060468725012126703581358837782042696328319353880196477299187363686019346433195251947601334479155450322989005238105548629913338503807180490582186163660143046362621200099968643580693504093907826644733656126605304711765689613235667181648833572713382160620701560687578421901462171600091526090136633565727595439130228120915569316793419569129365986066546706743017530718419911044391921896029133251291151109401221837851813178055457720784111861085856428366371237308790100021588296720848976662408067801173464098898237386792985099826824367426827460809991137398611885701351391557895024828041307192000392721991618130425496429677209887441128419633409899136774508633620225284878121736980296458766223896329690453314711896608753109366666440861350751859108048143199027168768972736713320046699977200294926688277162652707349802728109648597285942875925417443934208932623543921809521112316827620687724429807690363760597362673726730777803219764631764362039579462841652269964411119513946454936750604648193805922502247764504957586128270702618214655257787828086683103307227252926285243835500938173246031169791745423816096971464604983338222930723865501987414928865658707034869857587193874667920841983713961107947068439324086601589790356083777320208355263751261023524487998697549639177125893089218021446663884008280686037724897578008848752376278369941014101751118735950498605524915345297407618995789359866364318733218255655464809103795702431333270230928502937156951614016142040712740184925881128203682302047784815326174036777499251644379810581160811749395298999854401233815209676254683329423787347195436147307299686747005779691607032915365646348802947257872464067802050337805649260426484349138317496572386499263706500108393891542218761326257833865729327550909580473597580400964763202999016180646359068478290196680265260656920854891396056954211365180200944824236290603431439218644318149279661049242458215367069168325005244763218672094623104815743207240181394625171406109816130004616670423305922921219470422120275395042999997961318734864908819389730157149033098702499881838562010728579047161784759025597386384940195511245229559378623155339571515588940243138606268889501420780672596101750404816995835386190976985622523880385637661270498472178256248540561463994509078102664978195025609974862629511797768363834526353190332229237179237142950064854431648180335313422309280968863018291664151697442317877009742615289044818996387196977988341187734478769891409813125243791328178395362630635809460365178443098607098575669726931971976162323908983535487432516922878350929047460104072769810077737238597822126164633235386988827178040854422270743254984612108088653775723423537225558281168172380972420483655405882404007254093684744045357127109842182570767625739545275935077948654399908844210357395425970802093358741335095852159388891881835750778024699915479034683990634493950244550470348453930822143765722546018104003357248902706636670191209522647410173320374708894480778341264581777291498227601977106386352305895643504265517051367810097161618529767335430766859954146968268657049084539523270704877791758956059065025131628035259500855873229052570763805977759899946349081417607480620908210458501039502794892366236331811296993014639645935032122316847035455805132515011940451056497657048144887843047006156698058652434845414566402534144130142190266135865890462270177485753285736474250625581663798117594199661686210219003768552799159410103359270017369760959216062642211234845209706095473845311719827915041631629269600267116640939233072935542784429484148562893019863976757509021497167964636545524435407095811937742116684676010586188370904298508062425812274197040680358998768980774982219025961864134760893094239996218532456256367051111549811660500934794245609292474110388172410259337778280821606406440659805308667320970077952083683292379856376055920988918839825088578569400943487338784964079698153936223288404297572034728131467084846041183806757455680246465129241568428351511422643027991384463256418970471061492952975934177087045856529842712771919148094092986588891418940602084453799299804127636127317277459860285516451388271172518114998384515108231479785656971580142501715122919037828530294685564496104337101198859764291166055028866199705767232929597409314036371656518735412483120448586015346921665136473708681706799885807943599615532142296748554358977562475938308130785780165756779871797566585764129802697949289540176769731224203242572794146334018099546553961791716313060175746690402485210963111654504612211141589955998484148323952130102198504511920188396956383927038896226635765799463011969022364842996516137546804523991176191965822157021568288150830334467027049271718200613587404345025366818106737366630053971090100897647691728948824587103675255734759431336533651473222325297869420614653717521704844267633346486607041026245142588779908856773631811153664849568967514923775839987886367118291345692904920561926114016630165011473764299101081184721930077047666951881301546057644989397162776282223950464311934289747817347435627217346485543474970411929261494786975633290186316188734939092291763104134740482074169668184208829465029466148195254695479734730809541788232465726416374257949416474063836925640855295084854322905442614264100380967738719146117212373971989399881916656935985169051534149926916325845728096148997273472032378422823550285679789782402537188219779117645528100018168872708189506408421542773169259088843396569230149043706821748873529289321178582588093245918436535529942270403337190934645665983933546932946378191893263945633482540313626029653212548589939617666709541853257462417270273628417490606740741799159991062797323367243241432103911750865926674477599108259442551897497418617205586304287165277085741208680582197776750450797271481465697093577884184653798061528145324258516879220295063428241256691472053263919923935689429075207122654756361596627411174580455737282513475003310985786605914627401954940544489441553151507264428470619961337614466784901777748698149207957950789386921356837401593317556089934002163673986235758386590841078363713909863370676793440816535943543063391043762125553898215072845824835953436259966051662977949085848080014981060418596417811206559561706948726888820495936219855976916659601865617908993349989353877055127566412123576800132906554563935674965359575624538952938148199001188650646236707903238274938141223753770326708416286186512276617768011773328417843303481392006743883313870934681493177709142979621070484349729381085452395017225142978095333261867070094433003383092776509583589259870627608235582820512555249773089522954629023872927708595089810175252840275110756515716569379080932671039272722800083034154673073034951706525037278725366611391948174863001662374352812792937384142051598730169544626696375283595228468809542512301042174565605748988284521785247270798480636655243021149475579109371300545041705811028933553963432966647156692022103828114524068736815352927497663408527601279954271263439018074404154426321318178033954947818231712425854345369464166323102931522543309906847444515667834193024045267777070294493667571907809895028263443190405436179262409572849561228129963587552351814778350126057244105384136306411587465560255166908975778380998464982975178115626942886116210212547450519499531219821653378180537001921270900632948710279409997995154060353631972551895124335025102588767976644025175534881623140643822023798379635282645251448046709060907804898933565298879989943307005900955628261780776699967257787325317792693430698219703890990152118453383698824066397301142232645721029450637997039711979464020033297374270856441375228250447560024255319787515428273727847636058871823754768121367891016339544690570669490852751063175221214690512640723587361205757338237156062365254605788642340038060719091631811184335613095408510798982210077510333535728092102959178121728707848706166241592887497219582401166564756908387318606559087811296480383188491996120115678108223713494938296014552573104708444924103545207535533209441470473971508262464349515012858859596405249949867184256306317989603714944707936171262353694470207552851819127292864144030616824507069877136824570526280026707824261360837768144619255933651601774745343869503541107934380672200331968427742213774216861436641089144715860981314740052680313617438355345470267526424768936919535261504666173851916206950377132224777514935571207766407205677578432624257366101314141612793644768308851604475174452671525166336623186399442439123220976528617639702663627527478171716820060973833439835526668816471850513907278883149901197161889526271873747968102340019865850973620910194478825953878316386920884268378970905240959776091860978367185211972601353064281375597199470561321493940031900591442685717086090803720226298280102218125825652222940358888403653112106682057791027778807774026541127789723015633450436214261823204048224311696780169032280202832732769518797662127484060846255870235169206058189748446676678533441566208024437119384111648055188274270669852339362439325845708112780022367235527419395928573909775660067964296947423235546040109117212810787770834273441855138318860046574149770906611321989372734341039221987669354929922290188926489831854992024730578598798423715144847777269327195011611446225618280540841565517334076525902667922839531286341436715025631337531718322744129948832011030475216004688978139053542529097255331812608765402862314612582980352394821060676872817588019101879266066699898216273926030774612426263241150165259057761365408213556267546811857144424840154674254265124107207246068083384173408613997496186164276801397179272228932004139359864948381406428544410086361222834725147659606856028840270789760796199069634477880806584238882427506097204786852133551094303217161519089879026306966056646846036218638371302736775933602978734960302159987245749649695050157498076787551349818049646859811351670614439100015832366080792643875238645787643889573107202799677796955878382944038089620488287962993126165964657782782344382399816850743700132791252113167929886033329379860697071115450989277362320317753284086910293171508716699108442241644627269594649922926105139667282620937953524565424786621338060333179177769158912003076903644666194514712050945181079176824044578216828066725528854401700318289547848164691701137873132109843877231899959621246149741867272790826935800100368627739405163567869206460870768738149757551805962394866557361901417384707799681630275601558333705094239933383188871514072247249373025134991900220177415681169720531093469546071927716725584042990440687569168932207791122477592739385531847583934607529533389364602158334782134658364654606355273386121192810889984763271868177632941780912891986490963134717936769029228950064606288847082631808361124966613512266174384422315899768639186893940939169838953005205159004744454351666324092092629852756904187343931208025395860251274368364545273273198722598569525094562301426845359298556494997246664492201841918088038812994537328242343699223792005872934144761231129006744806375449845173665929234323337946264145510652599311326782374251708483761162003947491106316520031108382216064095341968712984125115747308207777295153947722752681895205821764288783582074071771108178247408401667518969513333731097943172540449595144007612498714703725966494073328444265245477212021495169393023433158513227822698149647145495135745418225191984149533482336119462103675115716865847685571884952748367901647513146198249702196624758715349024254940294370200343662108500537676821185091039257992572426769450136651652082583455824074273293572451016048167008585754737119671214562401672142342014183308466198728351071410141486115009953664730113053090246542828492161257546560436706067303102663902807634486426378188292169884600671563494601302829095393809452116747036903197064484852701953848336382018711468375144122713133483814103805799059748417020628659151789939669172718172965053348953986908896586087954137324891064805910419985298417068526866834534827356521248359187187927866062464578655675070991646465608328292518989450949604036600334769900667346477788837549360678138451040941397812916829407275845864470923506384072601593669688886562138196771200388743641775761172843034386327253774977371133096590874688757330553029063740826072511042775509268911970698094031731773529972626847903465441643136459282786192537920667219114516419754901236970704347597177040038725904934387846688271270737231833707552354507743291165152711557384961804358889105112620944633312651767118210676055423615689210601970373896467705617192063925701019410990489533926259626321666236777456819695327517134652304340754506043931040196331045906201682896912218516555151207072327336841520579835796051593738217908051714824564115533971868554990222672343373565175684410715514880051275919467583605697367656455101950960673753138129563806016188049077576784557284023556416722936000186281506597398807940013955669966034041259961739092915908182033901433075911563662137594448609837356181910505173199542540483673331589448980275104989811301916064537753375711503269340930166462948872773623277438034333766640580498364471486389944230156755010961781782106474617649845851388586850103183748325837911942169972384053471696761216715027391516805107031431931274450689075397112615669890541009074995857872970131636975798657649041736131291233848870006567422576624000725068159932162622448241108093184772962425672536313696509648205033010993717395333440632822863874518486209114484414573713907334323152174832662535563819054487134902875543525936370455964852863530736428650544578822145273782887996990415057787054239656778530153312773996295971798240882398630611535585344125513130912348112926587923485821654436128885491198253256775733201330457678146399831970196723410898641161197249689378719706019401525112461812387332166269151336620044191816826588074316555579740575946787231565828977367857071342913438804250840815013039131878460694517969113140966618088027873396473018974908636164069438717476137076234540958282324413546824298507914367867430299427162705027338843639482736928603986171644752774765916890565656020322790476619637600705353066928082098145077009727241136633148855933635238016431987335790957397885490303517094282748162838609259482920699394429189219177827929446867898009882883083411752222176573712112992464756521036267899563157329005276363884180896658442769183145175656243449400569186314824195825790925901102601082698470375333784065982321709709294874391976345776617305459317706690583086362850067478015880153655484135630958646355825833025735991548555932799443769164451009202493303192535830189315288896482552587210393957985526247650486665305817007623077349612983662980545728077994110779981554081119844888390868334587730341135805573690795536789297399296913460054786333560158568950083936488815751867101575590796180689187256542569628812251468167883687595002210500318640453164228798879757921106985858914492082272752588660706342715849727980883692389969249366917313054626964496514953888366309364976579682536177417496015514445635134016746745390610153469472622567498351858222024833843284544913095178454629826757426993346334462172766057276870559954000463584653976234729545425804668654796237660418918179590227198153715757941359921426894814450926992430355307055166984521054673980870439189257858479910454642144690699773529082504877191241677261646702392658959698615426860175380295165198490290806443619150240385905755348275165841506370293090377134792049697236375267616575845791917125308853863957808734986976626561656759544192066086134892714007214277287865405336759112190767919679258396370068729711904848252369127032850432812823250830119103371027877996536460908853102787653141968249507022438395481850656348826566051833247136847007863759124613746522802277375404019191363154102771724513707364604654448182905343328445503282960596156259667851029318716799423594128361398471480552863299448599977149057906790295658671742666556554976023719578337644978167945142350930784432567451318765727026259122508366726636103963721741425818996054206632307858244558577706689744874032875399809422904270158344793445716868195808552755923519342751716987210037275176714395434346340771988863151862539910222007940981391243396309918201378418317788583415881333223625018492146258018585766531036615059531623244613892924476311173775763830206732083567430841199732865330821286525288572642929572683051422978953153093857845873321179793551280520080311675549709297983874367606283031667680073869100281854455379391531482431224752691760574943120994070496853300059348664803948106034901942396309739514926888223887047786614965963197420916797401640084889672490712990039430838109430131582544201691197869634101675000799856555762210075037704400252366502099500479464592230097825647033613902327403953624147437243423996890835033032836998535066654610679733126782989088442076505889835250070594415461297650894478494696062320651941757104063207345528712301376377604506533108094881333321196052748888917948177251607797921228485988001728419793883093492581518105393505259106178667276862137459923776971489060070945745763871281726061991136239171206723984668427602035676527642219627416551535985645850303342519934478722228701778258114978213337756010166975271003455141285473457919696812308755843826653920816091182089085328562634922723001421883066782983534138594700222935820934889754045012553819734200933973711471080829868861445262711513389073478198964890524301828184703096426746756831327988888990994479038015567222411702238466625735589913700644253036438150173796035492491501656330807225811559658667607281925339201309248186348148564267717448669530849422794803059677384505159476822771665690882951446295554979171453712471937413650460695258409345879503587664968391932033510256700163112099756242266966374622754405066134268870698434704674705197228049066294058918134517021875471312180814023824520316963131346063192332892583083079740944001302054178676222055883497457174662031230944253667665689925194844385770204823612475156255437580630985369995435144862418420672858629112804412111248200110977228909804710065315618123319820887502466302030474287064742809091861431826854325834075868869903796992353502075483470233966928147024405176587113998939307614706555371539713007975838111490139020820120980606038718288931621053842904565806562170441520401822589922826886869946603309030789051923263363972646888944732329312962166333620873818938150580051218324074460555388589515983738388079644359588839814097239463194269627069892862562455056922917883305131113661769075670612450351352517304331601308849596894451506342965695339880618591970289320904829806511506810085658561486370220737584436112714664723371886749441435176666734793165283164809673091077289222253876853920022360609516671530487661740597496882907690537076762804282647772679451930475665700450247725708903100129298345041251875895085122814803683127985845030437567571337632444190353321959603542886770818419132480841083899578487213490756362643733636753639377670766933454295967075808733097808856004480577250981871091039518789892797491691458961597906133780745466662077992455990150369226478410558979754073337385787497121630604364069578102022675030091976654304004751060246177632617305861921929700805469484948109708067962684336558188619833563705420920410665422306237735891743101669018020662956686530851225057623440633039680289701366744951014049813836552064708593328862453402466561586726218174266685299676400688195831725857445748256660739619689453049629794276616877767026398917680019606287415589566796320906403394350876532054197586008229660315770257226766445389551799756136485503446531820474323678311366974421109495646400247882344033576984005816834564348269789140681205272877165429812280001185809272089514549588038480225309071657920673354250136316582113475863311803294399057060589380081513780034320700374025596187463305221901535070593336818765461637033450060190426368594694993221271410748914438702457595116540506791534229244769293330470745535908266308789391878011116529200425475527572780119644049560497374944781161676092898031156738253689634089432934051183352317022294450071535047138453856048686121247366295595952283284838978455880399322998850915846428334787959285629296669669567973845700313876406213642645905797496868606877049968417192176170390898182735588810166441208043478835086609907493630116572245242100431470924404338103037275229098258712788368994793411490164116525184857895347962750084115621754894853087107017321098790930736092319912516948778705828743896138319689975211937118433869661800285423818022994829994565346102338169905136642088281875937410537323918420527944031230784297585751608248904798339018878573067522892803569622058413790946450916960776833146220097305702099378170804431371497480673437596395456864378597649775007535069373593885423512089051686410462920978668111372847009289913724851566198043655759796898224656163075731444783705991614462946385783712466322522552552835553260639371796756220324954023504144929763326729818409965770959378471014393222078422927038952654795343691964791390137729001260170104886935709732803236472120490545156456155475590385222356060858367461235912371110622186560055494714648849335660996779891765036128344243392817117623102125346608544121700499272189902685355571256274175006841774132416750228864678838131691966020463034718493901138404611685061739798550532048450366305873100667290756823685676590075797808481492510737911087327703984867397258255022040152145044795836489393657558648914955947343966216050247135795913529230863586580953175163769732258210321414124416141572138156513068046320526235867029520670997179983751423221627144584912629591562539929212717175323144824634961515632428351621630598947355556922790161890446392537740482674178296139479519758589505458867682298046856335543718106901585159512510721647108141300095774719708555102984815272348194757338613163791178795991929457137572439005002605607928176897698029523563694622582849699157455177904239022145144300299006244617722524375642234693859190747918234120347820181891942081490094442441025607950433352670677021410370561923249807049659866531361591731101964555500898439359474379285572813866594015635098505019023342451645814011255475120118439330999131442809022293079255273314631708107804133436779521310490707728124787740682480015248236558411867247094177002668599882197544553959105106135001814280051523153794370670832430783785582097706566886495110541257768952656473124394812986866421041606596713450243344636947224502104971786624669106491617063819031936481728253259412812754098429810264590695636066996695038880525197737896080836284190208787851742052544428228703607344989095150040453593186725703002934234564571119234356021608463990747343199428608044570155968486596146549493212655771469334906852768462243949367328271042887996092377547354945288451698304512663884491444402060865451318022752023534655804795405431019587391216406655822409835041482281116973388660071317218167067920674843674273298923917360823226957278964812738388101885626640353981894871042838144465006734148450714825202023305520299807570537023072903229205002470482865110731644226642806266527525282933897622081388946944124086424246682860964560065573996391127726191451636010992037007857770781255426592478801773773878614363701808551722825301167684775619592985728619503212410535417782347739826597794347036551621096270589128124429092089891188972749291439324139183990558371630195846564558812735923740262186495099758428371274096218463242374957145063568384479760223370379249642397463068872717929254278722245723082095428104986378447465727882126786611387965596012190300777942661220086713412124291841736418253191068431987747915705397893039631866141554410190994971883355843678731086408124236006110939887519618024285264201292558447799049748477967552202304947121803760813089322981181336922255873564262948297518115484021196565346755511892167503773861083897384450827098092773834322504538074550262536489960971282843192441734596092619645588963129755091493080893330556678699211588256166799278716979882251589690673385263199311524400136595060968683667942250167302107767153427050476873146632064084414040647894322385162315225390583152068797172292738517990451477171990328370018847381364316075037669940323894190480580702500696600043938814828662097315977054229961020858957420468327451879340729655848644750579113791748581822629141352790113975443127123531113448544699387137967305632644391512284364888941461104592280550681694350866368959813901455454831785820556360777596502442343587872996669134970820873778304136291260045249663370608940454164856431785377892764474851262716856365431245434631435090377445987682408888675275119630546592911374585073888405332188976592765274733227446978236368769831393200914118151753729274994693785158665554967245953333813248434433845402863479773721774992435632621460269799635780361047115561804322835608722712139394506905736978831166353338621172164035293801162463480084431511120791945174856460885525274931509338262645406991544754843379229831179864996480265746782681819795454413941633512236518170836236098458738293700025972197426039374339158707590261764681396987901248379669980859244290449439964826634537407549851781757057356020144132672775746993482949427274948969390050379111725884493259249620106467299841331875107448885395087312754298537365604119529710554859663582371817986943261488765719114682612986842802901547507722194374443415480704197467581141685045462845479767517904118418803673643618104482663464077187082578181274560435765949386947247779608899224104995137981955236035221865437565576500656689059195689743926900112484652255003008431810984214066093423360263379846777290494709055485256609934313580135301310708809670812094608132747076770298201204699046208378629423548673861833081852643986790610965111402289512623312876930247249804262834349548655937024217718201026716836769867839899886896372091672664497725558364603435137879541714844753398481657569974187741002593997140651256445719381910338874160234745480031421962491983956074465365833736248383190924807444489862113256023499422311548844589345841952007832046471333439500113129588506590942793813007994707160194908904881084330979530758438449040874848272589180320919097611437556520081389031313798470298908461264234131856852730623421766866575710889103474658539872972039812782949103003835181250190293773661654243086137551243109612454057029880010290376788168834675636622200740931453331122035564329452026050858546817960845177119992552142891652513543735944461919159086991473151194100516268087147935113852267135172308340322761591943934179725018412011285968765782461200297608059325636202720217745988247507761384409207875995096377976596626997713076722442119415234803149349303047834278788650554573739356594322450712068263833880484948531015779098736492756240262259222594445927216150747338596364315572775339333766195600445803395705256010010577116428976829110355700623850157166264800572376057079041296790311461493719001401564956695999879767090887172564981229047715500170463453041508696610262437290796082264445593725544161326971232378033974045931213119435081042723458039199092723420056356627281731158613690003197398436143037337447323170193571291727087114834508865196622237496299576861151063007167389210752091977239556555555965335872022484131686041300602182621249331327658089758047836074856154224624292982745659416544215644460444353726521888149315054099144787631706682278249425550706203586415360811849493227549511643402156691979352746430748088007832278724326527379737347269919225610143036209207766148040467150035755944445580684105111896741766134865082142772166532542884505889657522686640261255645524987036482037781131034723938313898821094992065494983366642181664789776524497852228676710597016371283005624047749750085664466376181326138459745050390613712450654914471164094142571229762588917104942287656767383678782878601029879432670900659664726916951149682153814354004029428796129237413563401477525854174197423449165854006184643452463949551162409668867619041980770246963075381382772624404555441839206244119646840584098430100359249922550331989852009995643951022730610921691341333914904241464322002419146551385815374895740155828218689752070927058151970307249725245733193338107196353951028822883350408647822494944200279272064993557887788868498202080127813384775196922281741419631042613760501635210766760181761729477813690510164506457757983284216047242476149668956077831851457492566012414400187084818482501362860928003311806558479341399428884465828326966415701026033823009053536786600644156876501971257469282590073810224799408126536393974199823161986994760091444707920755872797328684573829515476542198029303529069792044946409632221513102466189052265030444127851070882231037052323987497895561682101958781108456186372390380364721737731433157039355168123196779389218558113334566908111956512782592713419691895226080647520215593949550355455141111572678195564652449798805283099421038663919336143211340375506940141101905453158392150968321074154890233236078044395892974290920999276704841997862538133473282610376931755945708962213900222427581916551146814384261889728334727711502340437668964446559073430958772900424095402827616311823646973446729485698619106552425050074196645470039156403110616965073237028409872871085135346267248690735617182403058943576251154901212260493622538329067457609068439124151280391172403430720763418726408422582200403418808980976899089308921025852461214239784276626080260393202882744121558466428554334124570765828406303624525080821780275377704173549778732808957868926564822095709969869081399799590494462734762121567864228609073459262412163170188212411939392481605276024443334917538178629886316814828289596046783950944339812205653012096832443945448300874778796680114900041860230890427612272898719136883223471719345903950563366792779782821491062595389029304015326152121885373664584776848257542417751037754427699116086007240562727146362105985960405673523546393059220944193371025677425590392317960135754064857990715841611989883701270938215527544987038024338117177242066065492325563393966071454316639136082119221963944874322572113494288550765580656600425375014856437481096973325692099472405464760072480605421607084465816477401840697287902491768362495225722712156604780279561158608396541173516103595857831415230739960607056998910194325542765856836477074809986810317509031557807432783151638072004823378127608383116533023564218374536761874671752739319851357794668241925319815639755807763369481517648063634723108711707081448073454972140123660071258632567764803775927611667927674689065045104748631784185978571229444905013645295479147752671488822796947223940506202322355380890551039794311904625745160458169136041898612499826244903806396030219717108035546903165794101879947941829362548951858575400679363805259192388492224246688787002434817941715706828615157705721016861966620626756381528530064702087382916560928591774155865556526623521770899258391327123018655818586548311948139219085064034656218126676753010971131497239643929659837847383820398512386387267272928586014147593289343314919402489271001238942933867581252461817614003383962019571210978669288702433523019438729044403115192990411289927680053335355598896002866050110011373703557898574918958242921304121508888962196101161240695911300255172149404257284614382958036787970899375846177918100706175744824354467549846735244130344212044232972609419028123231562442831607299933167976568156792927343695492032852854221379975118762647032128897390422382580825287394483495494947180100053720744331675747736710345422328602115823987168320521655257225706231217434784018617913587372666839119552088941092339992063852095137311860355641177757573409645973860367988463037546359427779612036198054628156109575664636550793178236809711978996707362660447579825279570434188246469698365424980488702311629954974776240865501568481467098298171391447334110461594909291410452754492713386775885948121657472860624694337058572361033556262648583328280207899571415311673791401013335287347437883865907183748756199868966538413511543267600274353994725366043343956716771681359258007581830024983307231742029937560874234035052365005872449888120796989563583297754969395448874219096749719413740597480061312810931695250360785260734540950974079020557332625528295832721972708154057670453449390717768381944628012962002107094658822808210993489269180717681752195272477992388314925185353288427924206890906715892495878268661358979518023108004248644339534407465616931040736320037266544600275724166475588068105789915716859135499279220509726316845570069317168753782265537290229327438740919184382826957266738506258181212366252917288787918660887890233931448091386730830971949415743794724967717273251927728659713089766723245498183378832154738571877286771722349373191851947500643727935132477045017673621975880875308672738445134750014302762860896584529603345720763588063180630856243952896492795920916786354296526325585938933193927249071963879625562356847823991951063939097286566639916460284700348618366287458525813407322435131338518022232294011293427684469550377148020925481976087642227799206750788428113282687311327912155789330617039027412779643732000244927529847771745153417618881291476464602416383357905359629940864257975796031517749179658519143368635090798122342429081872825072134153816454238405862708705154347608277857390560936083560490290883118436699332983127227138506801112153649750395031878703914606369086535993040151812026016577668005895068360122450480446173445398501285067966100783451557434822904911548756616403886694737915227484678051618222717740385438044236942280009190354722457342296960656241198169611891982993232554446592618739818654190568642779593303721475364781838127380868533296138661286914631596295515446730689540175355019180289096870678279500576316216321511953715101973101132828382942037350957198559173444921770281373276286758780320224031131494336661727850414967681860369048475370663745720653036152039968957062443005144217757708237073787429792298352824489904374399924192446670037087839065668499425633769193708443544457085599584245211063679791630602745952320257075397882635672626029334195992487824212519063251426846149025414575031079986954023975441503360587935650548731555035812080023815655739197477433676880583753271648585594381265933184156645381276473948582679840501103662383303128002551201385393801874628350979345981066191911155585910074995638348459773685854629584821779436077309512275056633011539621664615384031868518092306151640809704872097691958989609489048569516475358384161415977961851058569343688415328707578643714932767165455781783050064441146561384556738445538729229908190269941536755083208073115781175875414944553516189917501429132448529099211290254521721865959007208258600711783862625421713511950851914824035302517838728825020407524248054182299983336986222257059213771228182389667810774360806666034741983009816192110856570775592856264759499331718949428529802531886546661439059418406629914761953948290939003135143019498901187217145911268327305613569376523720592336693509130496613215052345482657574292693599436888052961283842737220057338986291325862195322036289571490937583742097076043372861595885998731223578779287827650253155995588400794001627674901220637595696157296384522939930877270348022691645597989343927309284668150958250316161286811276704659998408878663513635081615495329693030008892110169130506825553104601008980316044527838409723354766078051899978860804612293994315493915686549021030242125681099238187216060588643314531629672320894521200137757927476810274252311846137523691891459857492724034229836757120176607425156448683882606991905684990190497280964987997023927406348153030802733394881518241741700714092556466511651196985052217215393520436602644542261224357955252887099697066975720403838034143005246920721044694402966248832626570786241066455333612334631958394342229680262483208995212841821938938064771428297222133246163853681568287076763378799813243331397761316550197386386386859468185654529386931179264956257122187907712722900194178920366042761808295789132037443622844343857754697776583669045124717742949150174793219330331610247094878549957120065731865038573118069886915586456883755628427540517561594179341868935657039500944157273622843549025267571045835349398965794241528904943160405094704281824375436161429751213696389210888169140690028140942756089882591915900790748238149614684298385598417582836480067792609611341120767838053376974096825851698764479842192599283694739969278913734392284916540929425299893624176959152626310947754136656839119150760678303406484269588805669145863934747187200190361691777461956318655029107592591572760218642333224147695758138982086341323202540978070756833570470775588187650168135125161641591272733571911482431344217558952998138501278009403511445815474709053053126223538016895696115914899377104179598860350647818452948072582293896504471031912964245854805110417203383906530039701945527820843919015854897295663219480924331424376980998933806586715373398019337058631859896130966656595430983943048491963169254920462072416884054334513086936062523358339174701846230263604597984028525886543749774512198983642207299628656731850544231937226255910192803921452937340332913360598599358312750357892555181346731235611835648933748975796845432859613921156063420674564470299412245064191143118373248460290857493049160244610601193359734576307967930823630434988323392394926975889593631176081551549622157878556922749455077261739090970260187283435818367946887202511968203353560668251889677393485548351066628728661362018836663036703294895603480956074292802467499177799145805635876009872247860146173617099144940341205038881055432295381079367342177441171532054357703639709983715597267945069751651393757468422822977399052054456517543368030090086876560451187668448437308406354315836279485928946664329223380394430763332082548291677666886050998537907798817677314679521687678442942374128050313224234717047693585713300432697355971625023785966739943343216285185733386659238454292393878872779703507644321466593210437508627035592751692931329611315636264765376792168886862790030682922665363610003240929553878945894697430947190773072666092920481277412716505401687773138664499165458898195499234909326483028182479672183410295751192561619643528631663149490057908973439463797097367087787339420202877247969443036063175664568640534605556152453138222823305618960003924613041979196599828202686447539678740648467924687058404286525857024527977836999602914761539700034802299812908029791281626032693530495771671416473852012482278872949803002864596437099809749909065440950326411067158519910324144957553063213513591799938886023474192312787939389713603926252724060629345870236415651269361471695762305798390911051334729243426327044024594903151596125561881460860836229859741233304276670442478976453478256438442659911122219625319110453215077119197878477004414679667575195053834064492291164868239233698272646110895008831826650520208031025849240030946283950467955803621481498420570005702293305185329876613717484099545223152794748828835067036068152305571995536981368930245964711955895508709860643765202972814030198456397427688764761950620256601165597506056685807186285786551739321063234553012511227584000620579659516350792062175522724020848122119694645201780936478694602216065124136775861815936888541350146684492869227187820642770026633524063514311319835796342986759461435904249905790717028014052692709134828901066766621111794211422933108995433817948088384593351881874157251291894769675196991720171302603871383565794224360552533431653507962395931363339163025417900199698796163608274502883912399203522295714094462622436227978204563476476491679660283999128934604272210228992151037837053709318313108494963347744944671179720039428924899383179086812007323764230806233844066779617660302982696810679807087083466922071777500864948078755217256337039337221468115902458547487523691828168607313775524065654610855941222641391362331757738229501938616898456881106625688908991050050875525753523248843310739275852384960045737339157348477727762297163890691599448721382416783183633903618696510381369035726384655831950780809702977002424318399519802984839950356315178506357907202516973507661843098660361014579446355218563542039553137293616017316267268712121632111984751634407042718797900196152930202819069510637941845334250248373978668037787755183234950286871978700238163111731255755803191507098729764157395986343364656572112992348617046825372735243732542373452815519312408315611338147713629676188231689097497655102294004612629750415674594618414886691179836758046170489811238310060982212253960088397678585166226050819889723071179386029035336739392092418161894207393540904054140692419975599128958282854166991641783223222890947005244030933071035708064112359626852334508414756334699335109852396608841207594407810549560739198123521508046976064879953587348537147104093952868229200259008261040302305396027331542481189099873942360389418261889491282027920160940480278556616077828874939300180939934640135012626204648283241350658805966492532351318361975993683764049237578497753742271596772696839985127280400610773961515709618543767469797157633756944295233146622223542325150623584499693150176825422112114909227981317565810582547072625669610322847659897940317280085635670369738816845553220440764189057052908579327390285407189983048114199041861652018034527431117983408373445537757074327862562656690601812352528524131377605143306338160426997957931092010755428342060919359542617451131726020969537990264859172676582934278450448945912801476366266460751961077552314074977993686306145807752769236795264813706317493379822473761732397282065714311877931521217118321356584436300906821393210605348700836895755149388197495062731313943565205400605444411960609368444588891860352884158626705012637698081761903697083819838006809525615822740448354572768195739138306386941089757756806567633457796057675717090050488655109814240593862762425237300732205591169846911470337634050454947872230083107322100208427033325430875428769585254025060879146041976042282329201992925168111834814662099043402045175634574551635427951811253879215260447921992979703892557323623627562959494976915459232093024252170297461550266159696618131573915280096495762178796512082829994908108178085008801966202911488569879685141330405040489149600521986981178518564597172230623961849963696124915180552610611177782002627523439555835900086406209893822725555980646701576337272269385235912928003306684819785882142059164253287141355246558439892121011269551668539846431952565211576027290854527177879561145200254203658572766885559184088433004652474740612140017333616318264393007485407238303557359998081818766699903008822237657046226795373278519323662372739460698122747300244235599569816885245221914457701617894686006920172149442971627000085245158069866425964620264275148108853730142429687631410780304417716205973495451654597793004427693630271719001358717853736288057308279355638325454136676700860042450195148619977847044452923199909626482918030930670665730682211579168534663346441762723358213177569906897724650788822517938311947891501859745993115107115190146535206204193463165946537198247478856163481185476906775214011902993022898773586411835928197937915251989877139151156995133300170976696381818275044277431329939772161696953290048915393598782178836637266260959317349398513060333599775473930034282831156583033213750493722479064707829194347844603681536942681669358876840254116699305110253648881292813468053363930584149311223631128059572755730205072937334180379896507079965401018969265620408758887670758875953997926214633340934903084556625522905941608214289920481431246574119863271301815441742634901387148980639082596721936845275299967910879903115236050900345620934533107850006929376114824911840730169078424808948138218267438116797374493560624081858705614356454327415651774595208487381090945191843169367267296027351598470786114171265149449057642784412031820578517352057525203411425683805266664712179861438138476045873721349592091217003811514329520505765309679377598379863239439364035412808524753912759093235808957341985940618649010821493747186893276921218927386421154010811482493930319222282837120487946236965571514677269711690129924681351372931494815936234316608735072165133556872865345595059651922328886565068705152743231006515331198272138592779732937492491008382252213022093029514130378830710709158221660054569975536381633055795300393210047133698081118350942504823073446207711047796006948744619388440764456700477138452554287584850099416918495197720747074338396755557423618185122268201148862492061540360059480008995412820910726195077509206663693314461343205720943870516999751568330659649666794432328767567266121253715554780913953037778369744567320881378149979799631560342695985349560297501962079185722419415189493412762751577843687462373158825905843358662608649461034734217913423184696996046859053704721818393561279112758893782324293193806357491946471998183913614616491402304118389305004023046341567432228654199454711862485234527638642779293496493898443909085477545559578806565720283849995352584801241253208058567699606364960547141532718004078566293310682379132093057288299069198601581049857378390962199699874770773447423896823362013611816247889748547782425385300960117114146944121416303361810380358198886926440196049529888858744963214389649562670913107919862706911310140184915144344984108449228680503806227644128483694436424012274835862223343896070314712742937524514853343753864462729497232388651154896835632564853417369824554604900844781379594818654677318321207045942925582120580416594211030827896511267539014577041845797071291583327258251579224655396729732187406828999089955060290300462566450331266075371755918754009258245217962074201577688954145239602743808744106088754209092448272614820778350601978124933082775578003865357813987580283514233940030368219161973811226590682315514444914103442357994633574522218888591129250395011808631139041506767812548265981437568504313835517721215344515269570704986591362387108070034177683475233515804734962207444377579938754132284153952021163869950578896229002140076200171554155098895997177596547991661260390373131242654123676564082953526811405845306825685697423475715913436379460467107507078960120809892255511332409198664470127795841178524595696485364341688195669779580277204337285836866414429297327683008348438392433285095095052414421455801205254036475352552118739982646988283277344507655052129218807370187363029867790102750676811831481979647210000798910252132328965531317298626956471720198322955508313042373894895108481905168443086937152796954046424536064523515309104965432952561796837097871803864595551912146219518792865882651391291582029960060136380555866473449413269791004255610219638733534024850655224101392250577250920370854266808910951997908945260066108124815487317545121213678581939862961476669517827260252848606436274295675313613138470733633399642376546952518875858156529721739421186104745912288026848286122158027954086908193653098304579873752025824157082289059202558524687890855593646002158484159534501015113220414386033359796027466167146968559784713027616648825787756997815670997576335859076637510013453233952646193512842650249370917903862607685985261530142134949051037457193147299045958694416426929222508620344695309037719649881235535472188625209370696415866540541593360552044330704873466562738689611755197186304191332735059374670255357460518721243970654678984494543883092497120861814042556780581426812672047246487170190330725340259073556901954014008464936214789268034151994152715236505597234379740206185111742295145793863862760374303653870830473769415815450901910156272434043031060198259096034366928386912743834436917419132352376674587572318703862446047011354491879047716817333149639553422806662121374615857255006779921333831468147509330141172962979885230472079243578121265741117199543595625896405391386528831396730817117729368338912747376984774052778418538782345717930690350504863071587641519772438853000590687910623374520513785507360220466261227119733304940826484838633695205662442937564895898433637161680807758063529972243924106661677281615915147663329991464107331988298239966180916785555564660346681341366078749374771980674969829694658039025780007168235605862941895912496521614836423615735646781333066980420599570898974106064077188319578942642515741537402558789508507479327156002362165191068849840512904880114896660114268445807779896355087844829640318497742762145642612994314503597034472706361829469417087941652806730789442475811681078550074553266017999457906071820856514013902420245289701249572513687106407946379747456578418090242611004885157525298562352618772226980448012171913297597841702700552896524852036487024902484597576319667247015907702631942920553429451655800225728782321200008629330957437967492244467574617843779851826275536122206936295964217178389998030639016262968214419638185636095536647145018446083680119239216572380744184337423028762032430773169961869916142856808232862884446900660711194681083763938703468758964699943657038586643166559841670734630995642586815243011366240706306610466436397370855082942865518998370078377335081995208398060869080312454860510207497033100082270735469102499505862427448059968976431390568017340650350764898668221354935402213217713333179579537440139269014304917388208562802205902150333670484156450714308371872796765415333248952131949781272632157762033061541574237179067353018494328013596158517177959255433786205983693057122224603486792100681594192319979922319248778048682702905925757936119496262266447842162523064666207568019875189572731523036593470912193736673636769926840901448832783627083525343474885334716426823288941018768743889442631002853192155779595648786851902284783930946791987162809640497278425176295814917720996071875140867372654677290624010841365134549384829138871960832883846037717343572961625086195448632877153459961482216312554571570653803268031131285829361298469208245399252825384279239375743330733060503922623464468446005926143655171850979767265274647522619013529241215876717593982980784990765515526062833266094750479863130126185707507102617850194886623765751325743740569476336977626836099834909970925135786060985517502662123047121189155023114286093521459567963998274893228506616452643843963233874709173306525407111918348615897705320658447981969002760778564529296816399896856092624543394621026323434325577181357947635071520137936673000596401859115878194941733258923410003661038150335885507137793853413916801439973697862886809702833227710199859437312220565412311716094321692252551423617157345417186466081963013576239268963765663337982850848916507250463781698087627856659733802178520060091407583837605625727321873207117278438836303530044762632047396629593841933687530953967233673369287813265340955268091145640093918990865515937537506089315010016606500637301543011248902084966596897920346673875483508666834546808796413920482002407114416579079357177372042045676648486692307506809725474144080572526829960267596186042239485755318215082337416298601940086980786444937173298358696760940450272705490703472519486335310843145322756911849290322546799475977932172397794099269149946774730711613088877908555279274362937069319771094406954848331007017978199343848896802049904286974708280826837615404088456753546989486611058506676662566091511951322987444512728236887055595811707257946831998791996240208942099222735457280911174580533745625672249195957929966541196945476783778362242622212274842220910390498861923736563125166612697982420251430801057120901701157582644637324548750251920223609067006039816523204900971439173182133527254851549475779847949345029253373605646438812673676098814384116188983719215885056953157623424756727663993658101876592332885057053036942049156506207372403907162848830387692585815899379419355728771192156030450138951980113135125113651313423621065031618618667574386779589531372199562409171607088461451179258671272885812171033510816081063859554875379459269508908012238490076003775290444895884035187257492021416794523586101981907693770593409087105659047057934939285248317366072353632733192732128785842804242142591143006927605967110069399269519110146061435470173234429078392432161209683429298383309949099326072752526392007917450335911153210221949429505988092333378410517908665365562721424442808838185418704595841682905135234276062010710276316690328340727628572286911295835455975049233720550988591097346803682797097697868274660474935953859956233928547375677983962516126101559549199570375694171202114960811863693144814859439261673199013934317953777527439147883339249911040292940199762599987079127363452285831122542926860612478757920167540696905788579407491988440894903839732331565472181672084514059154772721548150887628642787316880806122666246241922697407767795095950426056692659618656331237771814153006958924646386937477827117296155401962797390622097422073980378362741065326892315310710571114515106371784609887652250415749395842564217232747387054165014168707904300993005212731433781990378735726640252915015178516829463720138153044969141493618351707530462613926805207619892726164107013495208753696135903612197928437575843335904479728332676971331079124362020780705707464077761568721839075780713448573842674959532447460016695060556974662637700573379942802431652454294459344662217824372082874313752085272647143307959412677244787531954022313650362803508419703973522879600799312946579291874080190736965419491487004634569121572235712686471852942121536743690357640961116048052089087292803152468921053922142142692072057408882000985832200599693523760706965272215525776906801184554454299815431985640536011057117170459286568550643065989506644947544862506554563869320615054104763719901418749580865857525594073733482641294983534654648292493194604302287449183417334981683839744517344211213420744006649674146579358595399296441410003700502851359974948849391401786971405638129323954910189710538031450189355793183649848799413587129433675459013191639010738834200139545406397376870170950492156592955146445508447132363135246087960713921575319524930108269752898061355166845688403707549917060707326052260613721632533327107401953078694836148682236458514807302090672503573212247968831736590690944688047283772091616008889072319595920030002064983794436428076940003976629523018101656873364755596618065584632574195574690697481951471854757455039853183389247958182838172425692504544203959347490833847208050197060715082821448800267308034659174560371496469927350796087151656216344502249052401741169536495225000752348671222404405347241303267238105938252650145710973597361191612975046292273926562437918593408287582041021526868117880080371325809083727958456093539284663461296533193806893985236342867991683815600367368952511656559948033649840152924098594926343504958344385364982687188832531945486672053879090321668504520159672573743471542499928969481453114248910715308480527374004180686246963844124113271985312947389167874711656046944682395695678051888957269330700923835547010688535070904870622524695866545551456721047250672984084935027681217060356111749332847225080751143217937359159845445169194032235107679189539151025596071224636484895259243239289581438816180466188445273637735013555536697236605974821022309358214235516461752833063396013393680375611993898494373283488270361656746493725543492122371546863939789007880942389671023097808019264678181006231170366565824802764046627634057499406615528236888743551043903465918265946651932355827519527406232448317606705950157054467335968796044830767193936585345838039808498555038766671111644332948311142023589151990400977098761989364618518374409301778589996393587317456488753504771249388615660106819926136977022866945246896365898967566191891197992601996163198655114787351859221334418601001190389012153302968274209290440534382628191338580699533901210988588449218068415108039765683691679893191459444955732285144275268614662187713639329414896947620591405808873846665988329730481403849161543585794374564891244817706388151237432860561447111153576493996944036895113066940890233565937055138609860283912185616066344829275393611680052796624892238603439809654698369398030165776662111168000467106513060150569995383539531046875299064177622676381653855125111128395322625772258610469026689638334977167345949298198891681167639158635943083238602953782672511600723473917812982130597727017107625908396136273328785494953723527624724268629690459379333148908218560778920497582404500771028017378138267423415003071164468359837349066217205227702130530898045459691803279276295870452280788183964270269075377215112852142851963838088551508201936396329210116364352191665916828737990992827556297007739903537981628919466795094456744446537903562608728332957156162926390602846619647087712853891843178296560999562794113833344129109733576176953955085248658015824054621098573076858577994681895217063766382222930304029598775531795276889972292149304653055049741179895692734461244373653584682365050146160150309374876996476399530060722586819768888117319846001845204354888398650460819397822878687695190205223087964943915993968258579850297691627089040118963307852919067036992979211696164641618012251685972401601002054743674136745905414486734119254227587971512208227900907932974035433581545111171907495487969062604628024549101183567630755604168921509681966226480283701408847879456341244531119885033361958904324353601826475974031479111005744171587940534161888003246650513594764052624790125212703306528508207467899426418335079192095669767050389471577740532406469459725251432747121356022390096323029072896161809271377889314330541327177186678263261244104173314066351605635586355413952676225705091655501441884859322962404435225937314228379731235333453662622466003804887548962766121767475457145219136814525343617336559941677237578918715275160282667936202162747186203534863986170329366917702098519936504137002875146032056698231544320261909384107142765185041442994163947551541952668508891857449419566746210240250784519052175954544347999690704646622425924022069168726545951913175989186001652617703796875898812821923919603630663862349336643914575639656696644904857482383552912725573581650158528255452257715736338237745690842028274753330961744719469988340422061753053566684721642158820567532037001766394448415988469407907760968762909332756841801428023567449952836209323481581872089731501274792659597453252572947453237227416627740118576656517264543757641851006930718662697900615690319672635848266518785126492082875527450737134241049048657803629033510643412561302139009897218675115597932462793473439654606179293168315221812941599459947004225197190154260539166586364469814888506359257755090381108976744869221023527659848208802114896535613761301732279554581259995742422217210096688083573089329647172892621061155837605798504257480744727436573502289275414871699037081382533875960299743989793788957655950731817412623717405208499253491439192040169543310030907974068203532383328808267994526359373991393836918089502353319179103015173551457108653581547704038634353153340549380611074102868787799807932352626640989982262928882115408001939407656573691615163750441431836710278608614043226026780670173882875754824800554370503481408220147275708159801960702326480324219886047197464466653640082721560768001849938539045425164253386318528272716107443165975194236175561087288532341668216026800098835734814195054162369952805227342965058196073242197061913751397768621480993761224679900891780402427215631868930193352246375793640239618092867845458485670850721417037724195979111836983347503981712647404793984378525331269988574041606702912062217585032908303659316725090931867103824005228110708064843667494452950103654738494425699084959621751767386244442977695035965769728822769725625817036983360696018985165649199342727682349923544804197166001684308423677501556126413950788653823510362979719182645631017243511611898233776597482399984669069965566936803567375440276710662061372002099927510881246499440457693683837685774432803963371868407757919304543975279411161347703067149014449790973374065729357572043912675209961818648785309207811691374116124143773619268657879264132921055153315554770896503214590608503086526386763075448471620306142449375785590510547156182679932217709579016317293184625386567812749977021543985526281333614071487426412956592817733023240633970968794756365298566157098157681739614171931089966495362577545023291288737958034144381270599508442902850952083496785747034034590170746818045465922819093302643533743604153270304498108694349668519679383365194616272872918474409746316744820061811304410670047477000609697464574357817373186950892637234405998136140870097840783322159142065490238846660422757838235829931411349113532158155911554942714403755068370240191064682431828334620478949843015088892716632380274484342053194620504866114800270513662200164803387031591764336767452861719589753424261404728544737128816579397217968230848479191147262052814798847310348238280393613928224683751666190021847996105935258215090854332813038837526057877936407749765055798863577115463443147580548504654466633599000460689925196266546486671320928715822326961091399019228519436062409575069598757766408520244398414940933835521697051789847205785905162103481754650601275564608106971264014851266677606420333950057237660748377959468375434567379028226171462385046103231660103921538694559776639521790477287216113381352973476905386780387075874304602840645643400122120331973266370684370449217311107538367644473287125994366683180454844019136929176098398093646225915018123900637645343087099114296256239278493889067729613135411825499503200099122368412818652868689407725382138658079457989582443048009115538769374694176871241083042780871049136713038163202799947149454230326453662595700513695086199562757358140241126769081340436454318521370975161261691840438887151843227402121115205462869524862434927621621950511964056755765071548494340683867786307727077951056290727578537475182154208827784335467639974016673188891230445300202136236461674487550326036606781796497723061870166538333513270084256256151043273323792402600948088987104817206140009830629351142600850668408593688997203221771013292273400998508077240442144523612559209410728295303827531777099986248322983388253694074989181155985359090223413087125458997082171812586381410954740119562480620983721523997370486077483008817564651509959852831807923498423493983497547885883609541254929899716520799681134616928456902871252456112310371803863241620496047763933329529563166866338489947007154005777340781801373935327353971139124439571228908246237281668826925054708165710226860295937286899720309758249873493922292339310443535670867282809230458686970425699706389656506362253183075871087546277044688244522915645608212769697967020336687454781448004863812511914983633085356234863778390285358473713865485932600640909619462639540895627248611179051865269178828350740566333540557935807524819707135391214961943678708264420527120151245990168975074503866841676578092729325308212393845949263399161354840382960918502545208849159038006275026186716430547598696343000565530625415012506298521083082713319289908542500323488002581466684940415940609070392303960741549873946362968256886425205135611295340835479513108637183487243244334679215427984445314559704890545443589935044121067139664341759057498612721928535966930866154648351569325906667435949588359276851978882588001799280019254177359331322515156240379595786036139311419691799293481246374711637791159986066950994036088137192558667469004253541725871460160834107135439018145025676761349986697565153201184122752681126238406925979185530572310618701917778859456834850754714148513616158367180821421855614725474817647908188524727905551787744559960960223510707665271746204606617968589081329303902543313806916109712333945316569793618329485221814455708511837246720716324281384845044298633599921030592256287384159925228949468614616978366166360551870124662074419074219965486668387428643548966929456971873105726495374563790695597380553102265008266308835955541106868352912676949298125391244029869067707329355121684620543592383418965063199216723603346565191294801891183592009916139073075087842314862976812382156591311399517962898849405916791733575563002350350671268312412525841127954304310462237349066105941861350233608076777284003162216382227961274291430191087307889841053982754172633782066874703658474836216140039667234552902010101410569889972382718236447617010973706417510679247620681933076175839292714430068774786199024881610059955827424068751645732562217166684475338047785262367285479770138743392235663718177273833254487104551815667459156670055741814624997287437753132426044499606014985270504531342802084931817202095245594243422027563335761825833004204082963472113449329053213881687356458380666336165741464186829121131477552237945292792100964431470917721965655621079715831058881299408959720445257866173256813721718373864989475275992946596786611784072105353089312138282950829096078632937896309599901913572084170736759194434302057941246710667870604475133487981467035421677972660264428593277792818804914804821498137019219559231530970351692873074693352786383448059493028363160136968744327436772621659209382852426730320079572552632748996713981939655069183358620720191961977423517008464689129038812040163257092233850799047702949421117346606511576519177715250091167090017291792522094415590082042863724625521821036286368981351380660068340020038291485096917951265362739942338114245820383237317881296784074138990045622539462893092483394127931870306872135326220669432000049065169168993865438590564455133477281058411833480401226478594772617601963709482148019202008612923408818781312923411395266170693916925501010388866297279256541031099422060408321162087429534498416749648732719714452177513129054742665985088386691947051752234323080701572064727463887250164771107707538592318565169382739371177781912121528249222719302391525845588737956452012517732965694356984454695836268083067979997591595937339556292899625576325128638571877534006324158814959437122904981782668832316700585392799964584034254700165734852558236260852670516261822255989220614248782369434493543882723367206479817344552915751700398658857370866234000444966076209622783820870243642958713166426922613959887886562729350720348903063084214103399845580476561652676407254401191186223649184561268135590042383780868942033857091356219920924656104632611031556477914264069712751923941216667637744976474456050388464530503127353590781528091588570775643016558073145793463104898075682686013573472806207972043158662601189832645831902790496903691239044878955877536890432294737837775753799489945780309252718634000672576251300555237627801136862475846340230982582524412469799497237539004813672687728604397137616532832414462659383299000703421216549220627890344734498967748651398207358442845976398663126696459937706949991559627906208108522523355216056522410400715587098308339351921667991759103651408074979997622978549860531404396942118122340631856902067378029194545669571677980902649341054424800545776029169879062036203120142636935784017831530424415183722502560605580690060038140751632543035865850665993715393206232315347422614302462324934226134412355852023774328083397060697422468046196149218803274361422516477033492263646263922218564426932199344738961886014180670753069698335111394298154563079624215515221021140574722016727442161366968664325283154876531527433695059651123555450070377856773968245433625227212316188535207234355677819070175871172179289364278141822714463075418716317631020167817648013451378196421637658150341732213565866489666562432808160986394679271300737625687792937814068486086480850723283013054803011260023351098520528532645618206283845269645552902632871594322377720102315470344239031171323167697497312232372335214838500524048943311915158071389320905523795284088007043546898238725229850222050261955975338865372345743320568498246375565600645651332034478378956308097543047369862345346064462220350001056678230730968969138780554126032821886249757671855871269753620980583590298561842409767740625336893223873945949011349384649064750336606193224904363325640769148186713870994593877141128056229172714670775141101060780950581138061558718109604777050092315724814609668259901374555008368360828622885236633578905634097754174531167989441880351613623896884625741226357053004377769597735266650349632620943829420124402068661546214370817667895887285803151537865159450592009268300255311742050246221437781714554693385949403635865696386072256405296790498652009496201135687522937735751343082099043328988436074287391336634943841161124950207795759461409182584569772446447106504175191360063554609897344291615527031986388249614193636060261012019162326767790948886131050749267530418992466489524001975986461950792333207906552297871359052178741921830925907642597653686132964487393348864358253690094785566746939173318031660587567624301168718315500402256124904746885595713593612373240241524614533018839639736767086565397210195285742589333638275849071462549735846559591202374927214214988928189812798403577789069151448842962576027142766230445738786570434114326428567615399903244768792843701344524691234594156545185578077756336897963485324120223627596361528596780770596503637446339047622695009681685051069532021123281057417472450801007490163561736991512182540687626898750040725122270793152980740252159617822469973026114469194152235115688369642450006537147879523912445886255313521864389126989856212837030289631126522549277790391791981154358399957520722379150683847951262446111073703142623998269669082969174193046293654291864605090298475199158647379410985886674938032220402205216353551340161718744824677685341245688412317776428697194342269771391204642823511273234370513145711180526711097891957990243176974048458146280903032411718977114002638070216522728953281507318287259905248760325334145673648338925092016646598458725519749934518597354344229462416006016337453187353100880735372338898737749847569093758873193201860602603035048481938856035459637623224954536640133749394040257299418426677389110869891101901712926737689084144852775941149364131753497915244279696573833718001831207257400539233962755388230848594402943013029297173699542617927770469132575686044717003935691884134372829676207328107520260139133320587584335245727259929077068649459206346247033255420854041552752803932042287439310079244559850918456910077916794828379876598503241165147880577265763458790629325442532342396177817436517833473939824033173771754882926637055670975253223706343770883336865951286230816822836323867379169004835229353927076273255554896134719181349449958658985320161102767123326211651963770990647131574048921936985322302349186666328265407242785999218162151800499912513180489278336422919262205086843979752377239525053413090210049595646781971117355493354040729666686095670218773077997073200796718254363695912035561325440823648138281115517021305618405950722880943641382214923298075511407651360464430582500282518064425037928023915618276646059165267596459324494866101730625704710377323710795975593546488199218857007802304259194446418955015105892325976758689594114287135143932456067447708110390413642380650009010265671401294510263149254895105612156986867923733109479855854881139688994819808067115054122494979836984257517471013253015967420881612064909511491862634084557280553228056240400742090131184499904477263125790960117866138665951093514851406173863298698394122815066855831488536908376330432915819529067037357755886977855837794214639584027559718884532563570422989887057167076274055763027320076742088894744586633381735734971251250934687013673092507874284942476228746434086343122505946295693460373461875766370954692254268160952725587731732954923473222317134125840276258206777076550518710529068851935920620221509814649290263228899557411865394945186356737008402856157305150427474234021989855328921992190123230841424023452571296386055171531078919624379820540869453902161571393707382607472251851919805730013498799863326442053988412385375786895304822803023025040778956849319056123983433840719574676952799067901914005549195980748692171223243496761863241203164367726271161592375502798565100100978367969367477410716636913842950621401272973453445857329251715221842854484295093415017543057361362600366083256088676307683581643351176043980713511458958276785555765879988866086502568717307535508031921015178532630371849433958128379175523868169660294356616223680671004923184983230491809882222984627858876495233761004293980517013040413444041879015782830726406020450171432827684985874295496326614475590552253546532685696979522781901670812497359319347761604022500109504926005885734493975878950757445669735854261752233972824219950851052352133795825741848711805965704262160089365295583942449869467679962944536684663445374665007827303610730568858907718053311170151023518440752851225328663725093288916348067689353264781419601925959265747945433521211771621709615793864889647024075569200702506075167874549630826967601820889604122133942485161942920881670837418059141008839360208069758093099923989250398737236526879693327627912164192589350471814438782149862249073896932155503406681825886824487809628851352895481740368731011900666121712977517944826708471479831314605664461764241273703988691223487961319478596825314463694003374553665132180353296143153983761069328656415190054815148545877990256707330203728576709230863557194125982081552006947611795718774482314860404629311135419657959830740734225658579554537451722058750168823412021741055962737998102577319809144904410729000858325642797286189093683249888628364370642565881402864100035598955535915969316837760123560185078052958773549232601563447236747581486029557771319431128713566644031189250773558437921879524099627606747053789961245458905411518423566325592457025243038415107454277194299518727665979147918284093642905561803888919705357748091322503467185359046527907488083264018889337171607208704806984136484152119466171578436536100980475857356226567088041461438582336404914031982894823082255596474114194261214380130160228255178313127829449299583425511422658450015372801577192500423979103997625019195148299866386469231503870026549665733968493330477795728808156008171830204006317836180278633231409643500439976365051532876609156595823812323917985616767631127049981829153739055813038691593576756301999811094657645249711649363713195404682945367419108106561885778704041639106396261671269071353980817974495521656140972170492077997471728691837954609711944668549620169789009773972575990945177546680787262195728026369831591002425777884032979213556331939107068556895599425974681167721595477047260259282295745663190379569025643179955203599748391225967382138874189639370120173002454014864713988829200616670428594708184037529947808074798669375640541539310998646177325501421148243842967814514938868647914026537633305507649598945264119203336131284797698719095058467600654769320554056426725403958223407662808312058912838177503978850853061709228484256038079305871512062955131353292119778190354812768292156814926220333722386774550862817955757633888763350303228056389288604888998567836395510964662900064083618388744739330830326495479078000314595401631801413298214229378590283502144522758937836197817222980971406762557558165399108544111016857207388427300442894967377992526425349360280102744244966960388442457490821395143737826184833467921329345133102294990801043075621297540171653607643148932374636643743172692847892302595490337935914727073685452735084880182826181669442059310574326821109930513597154912698506945286594388968841641145792145937673797962718876035092941774159803993367976851094768943546089084690885677085170968783001194463596080486021075417171668138871163359723790802698836336419958386387874954718344245337079199381545600392700860345593699065170378803363810015101929566951785591718604097534014200792414049317542287670377470225324111106586306922747928315359591606616104423684776646930064234303852315498670078749190207303416450805034535913537109938503664325123111115156678393514856237265286333086473439110160649327657833708501760600029337969890779495590809719058066306509266801073385127342451887146540145334699233229245205824200963554492182634502391136744131994002045771688097590961092109575416156134120035453629420831674340030022885413659773111638133765956885233881834233677773581630525487431633583858241948783838270539457667960788026699665009690544984633126705904301485289190922360903341669192266005012331892455545395810865044810506723440683210896372931808037565794089409896086838187219485592346100468084132611067038464433417071523728745468522367624718257313115914686438413045006119881260112264269393053579361688408555064861342353108258500998751666848871181925361185866615440719488062828185611092514668277094388954378569955323285625107339492191524680466204560975192990971489476838192461909945756375483085866037574067893446482534135349287959063269811936041092113720428075545157500065488003405860966174440452361398247686169149284045225225528092239106245456011131767590311387471868110005147838222186718979064341297228032617788427187014562353351370112452642123782709570131789488158574190164875470824121316964363637351801054689602729401594802187911404033979717894415571080624833899960844745328578184188354760841444245211018222156031524925854740474645096955207812245034661797814990222217205621828109497253976170064835684867532910078600662430315172983535153706269466395947653393916061694291878769522506017020110136595192697212124885686803036612918399028222269582320615172899142553276104722360939749488888236998241491952985636273653859834506091678950158277280132531235475054877657956121763718785583034344754048599370727267267882202494154353677540136739136464685407168748776209820621335544479855302949786364305716277001276813940683510874738324133967948125218157763445147216261851243627537040143822945971511988472582883517034305720379543242461121111291917099224733340719738199499773032343248506166666539429130640639879490993672087089719413663971162521418207520327246683345847750163840489866292956381546534933340642094378560453213462618890303756829205276250116309622537421431861521902653481519135336291523937309626165329079837391550195802884760760392726440990579709297292170754499501020996934454418028606815578303377383315751506497811235907081462775252324066934543726681042144459323342677761196793695642865671632696606165027464741835784866422047501318631969708629312397537035726304481335734747490748623688668599446332976398661388420344073543108046842712558644520234944607895471296942266100446238307060337535772757280593134116214122390308499135639390450035674251020766102666185081890147791889379252207366371692245219359919320614719076234234953460611455047796392297014323527913521478617941131403251881886770233729642766050509764475345940970367203512937453537697603470291244212039864987394656951183423860888865172634440315153235583744732705796969819413423200281675745796897819604082260718645729793306487634218974895434229252907579205278900046067798672908921316555703367782907526706086895628349796036275093206348932667721167294076012148104832419834434443478917966977563167822597152131513211883714489746387928271765863188077592469800388933951970459683928557081445493893412602245787078528882467221510247582665423055926490880214173823542188803091538139514876050239739878583554603424865202795875781911473400594877934901873007703399093503555779176998528900159779946293760054000691007054731594619983191414544604343222259325286306468368351508211982808797077970196530963916640641327083895168807776876262930699207120334161455260212711987876976609792268293844999817868661975115618550172730497862469957693180918842871059747514957765216359412000885506868929851689260910431227365616885020466352894646649070419265650605570850301828841817436767384469167027482522410620052208925213761159168367414195666459267137622688258609019312865855943019232432483294684618883080881465142297656234012670715037134301402900045311714027133413670704005866577701538020921961114325856309478293123536165740946942512456311151899836075463754198585952364971928801703009042450249547739238802093998298278842696896765531600034835159770338282934944865192196187750150791278609507636346705899288302762461509894292331259318526129758837967893948328241030658446488213390873022404046698049343770500607507502883783624251689221987988528558770489733056782144484425720451481687025464207461490980864118779305006620346750931800522357512204308598469802294100690700634949456019301123428505955678654188835962201392106928858065389050748651497233421112390671779799050017997669971050592857459684524042543897067109713126207283042438731222331018421137930832570188025669902528678165171105751884085427721844272082485426308220858372107317788998129867887461607535066956120189147604192533550302537451233377492138979801332558052451494471915451580701404608031037398881008508606125306380440293997525341488498187584046502810519239935724666105732789502819120614221411756726173418224656005443243198827374251786772796561037354843494130816518249380508869552189781535850510990348787446072222455927215678771773004089941930477108906072415689888882690852017878339152265027368422455333128953505920575812508284222669983508622562936378038262998803101792752960241318875847402442814807984578722906810040651997934406270102743555435319505022012666726839446969330882648288785879925167083386468474372945996938360169724211773227099556574167372577204498745545217675662035310254563728924461505168366021702963530038812065005482891767569771033112952856380037307303373821905902396592927108031425303064711809041461977011182120884144308781201842507851349522378981446419046019284856345927513750336593438227784419246448062114587419691051032979793236702640311986419686273341849579105797781169973677095949231066892542935066396805773256192055195644517558409909743977115425159225555187769167785362160298076491463763047191337453754592824377155940418546302247188227812754159224906820408134153785795242944819204758486434634924023191607020456894843299948276386056968966736504707623560006392870415849257405513219705294534380808312835056214010525973995093352230226174082632408347300935333592189691727045792156471103025399956969775556577801678697369685261805303770942294946931654412463508407432748219889035604283373469648422899133953750330189186981136229349735834456817300857210695888888482127392072843063952159814603008058485739764510691086519437931219887357042551168569407514401964002698373924608051839208217413617316011181127693662639728651997885742672693452410876962295612518231051245088066237433665581587951760610021650242143532331280501806193062407988360060816472027464172612938872614648978293395255283920045249270357111757815863447218684462170959011685324989056444427848799821266345411381399104149424546180642644934611037259708576795050073233655790081958671482551830018606772249465056316086050427873356886074932209979740176010944221945480836696766473640776951642993367793054480238218596266231805310259293290390202053701441259280952542608605741159259731621130991505705892529265069747577261768690964609456478729394748323840768212306393714022491971413410728116172546631032200202755639777014483610029968333213358657063381294696243071452494725621799948305257820049061890374269235309619614905109586218585967162113241669438712387208829227460876139293145046072684485488206738306544002434997838239773224627444453182606934749726306302579803042030073884054199683661122766860462253123334090280102374242726078036121271037639821482103804414122926143891701122758464974814408221751529535062015083388404386354157771952395627439486507711842588728993295731311038086354164752882789044612836755082778175724826095376393056719535872683684132024053443101611597986827683220458352004450769927200719974167948277025548617553414749433045837729846226816815527215575313300106025723346891790991328583462446601890058979587068498931546673330168218811156887918079620317771400161779907107479680921470001845865599354237053427353878209555892196951702668976140335245637474138057544715968135309909796011463440053267571792281775263286376500979990906641700831131349923140295731546715075194231955191051558211708875578918376506532170185071663912286409710654662606498584589260296518314034023699835622905047718096076955005284238688319099687291216101827817737294706110619212522186785375576818142090321723316846965923545350750071206428544163944685274562924498735129440417701854868402634624848276736363476052814847469692085605399069565151498723968511504568288129533461123392520037785067798811725819184848582489691552613605199155918025394156185107029317047932277479199173187078505360808691565558156344435050256262221705192372789978632287729998908310085059842017602060302612568080780192543144429056311570958791778147494119619262015804406098897071140068769767336033180814080458073715541312775747033454873170381726076351542959628427687433797798588935261004165795219476486815105975802656228900042787537119043359840003076023355876483139199937510515002135563119582875905963359816404349264366898047305048886858674362876367625639133485596159236515138669921199177533916051079382366958903436862619451217018844977091491147725682523765041399382241782485031420681029693874510266859561912096069845310151162056735793687795209555237316271110834637583875871177129896248938694239699822133894825822263512993239645783049787687379813359573085112878047758774800674030581659499066144332564732784100971674583500655831060314316881630904826670228159651954955336409196780346691623170172422910018965730696793808869525356003636432920025186761123487519530352468730940915746603188123909026069758537019785874304334910976338478978402079675278700602534595495214761429885259613530793621124722605553770819886972723181884191629525725837766975872777851433020475096487915345758021831350644612769019400050368400379193502173436524363261911078848847844600780970380444321991086869669657033323739550683868517688660785929551106708155115742135034301059880803107395045458774775910134046394404122271104527761351372965634207305319572770848212219353416033641149697766429392239190422916356474342672524754208799105857241695164758809470082735400534408863900510707906482895454365753861868601817306301196471515592496721327661649800019017449485389980527525235979379255759886782959591369558415855736468689641967725702371168416714634999482509112520865572919273449308432473388565025682068482221862964932875765120970811143601469457235314126070015635344934672927678143860886963249143329162642987208963834627415013320300634648795292911540500926109197140709611644644823701156126285089405989146147573594521047686851753808848662071532903387492190982701005943141581001716223112746447127939132312886569854713370609604412689993012368596666361596827345943919929607345790109853214909402867147703227749193238410797598994997290264359885151379927533888888318274420424723317108702847075267194441572924545017626745097715750247821473136432739599958898780733174493518878754402631262063285905452398931223835671446877838229498580433288085758021123622077388892183592631290783879562008135902793308588832718496235223499255795291026189310316304262683100502018125421038196877661155405557535180075158794150995452332859652011170885946928468154298508980819280836031680368405175052430028526373955318085401347913377370716579673537140101365666879794365262540569438713935648742616284313202431471200174779276301405185208724952897839004733021753515837589805055669881835293310733664124135800095204779173640240628892190047765739886408173764062093443302030264453606253963916990731251132706606755433927467958948487902298887820970407812371724962363362743121320515256351012575723443963133195262049852295269897331889345478428131342457160647024772799672747440940102623552060117102724385065878013042269026986027425879832518656013659190095332148518370249683088093596785941119288254850966332098625166928584248522578242177504761659724366341577437390967519229119666586655873268598398208482825645674361610606247540581875248952818888480101431893209525970645403809217091510469595527646085526805861452791487210526515610016999461133349633786614191486954654766496166773183530197865387038629931160102674590996358017833439947220016827564573331966661099375782503325692589879744108312885564305994263351013267319075636359051875580398862131825159430154505241006634043544132054927478036786670538551237368473723811682961105351493357378504172293348924190244229515259840361810838973456966756945681228010954136532544519841569756624301347934398889191801555893135938488530763573374097829365377226740918788747298625867250089001121432244304670983503498910974333399776917000347255368577645363404387252679292438033882114866944465634799750497880571243894772444746403255722671700214623443855596194299317153482121463652651237278991291459267166048087101255678662752656358682703214448640488674839992800190925278960948523169331958623799124884820930092538733068026191691719966032109925054485444050659467927993858232923268394573073522980341881264032980338113065588259497359626411645817231928774715945303965861156534586182578800240038337739234158494168051077979140922902373193710720820605080347125896950667384776330431958847035453294140661924681738929860282916883382638677423201708639539159355266936654015254186503381590859303961909577881776183559239261730990090059184789612071647284086192890299471209521890021280225364518407427993822410100137092673668135651297078001053668740674710173130622679257261962301221100208396530788176059015158032915543289141422772357597549026342712093735047925647272885612989428110828577936973463918845190390131423988880618213942115907449811609401284911955311155851136497494451974410025483292344398352536464719324380746942610970172359947441695374347746277097615339513444551452089180083676515476711337360266690160128858697751790817113267805892622564112745268058247500413179715149874838075314823361344315770610348143040181400802021897699999776180249790384806740227998428468993206001557761603384719319914082146741648643358308064969361041465001494680527140634120259472229279652144421890914806501497477883912924884773262470559742149583244144074879694849576563313447069593498740112756477096560334779130124563360031375195398058718445266342911961152858116640906833616261944474592290996888321392114352950793162353998035893150350486159822168916573957906739753892007014641067041596822543844338667373549219809464750668416834162203591836052748962523971246906241024173505405127671740099781582752165559665584330517971214579165470703176798793665612850055584023237078099415018270121744354129247216311716154126812033988560794709625698529667825500889093054546177937729417730118037632652769723233157161492853651811617807038231822932842352831668210589828049802456522649915667799374524576968356123502226463707162117425151161848877733872943685705083729256123205941440454100671629232213900924680294009412940753720538265271125306794392913970363555550337720138887971758704614265729737121375728176872923627876081387941550817968354995439075314013629271617604842175744002298336173807075270187499751916790596098176843711859806548700973913454615691434046694698860840305843723221882420863293395239913024354947648906954389491806442968290838366691226601708088256204645602070319617682105540242091874678703418363669489315286386666221753104217823469894922420966512434244949466853305479425737778376742622425196130245022373467126749179138194029795115787210177709966339316981381504174094861297540770479756262096954356270883486203187035862592780238653958328986834247589817895047008414327027535161808767954972709009236110950198790639504719423460770652159151766994517654163133485494071707503120504864030426202988432419552510780394204473618255314057611554972098493579144518148137640903726234191663962039316678060131545799884165462516898815295296149132291517427666215588556555262064135001001510069870992895218937919509387791212589979190568629439112277480379048346932831873047095663213935029879994303222398953797409057782915314922631935782390301308166050615380506651505164946690628847408484892999604228838002460445284183251894189924868246020499519027711639216910774031221757529351007525804594955765659125200030369944567207486516674674463341383200519719185773238384889698027641645350234311677592857851614090385979033146265094659557606028147647518623413824131360971361541308066183300477292175086685859380285902874872082786525690457846357388008969750625625535831805297878086570787724717132298557944068613468731481825332718914963746042204245298571481170482521577938077432849396527925550406333703808958317255207849182502314229302379330180259384910696952389361580574159324114700259700995608579191544430328364264749472708567116638974885805220375774499480055045509257884168019397504415007047673291836118626091848656555125683377867020685498940295375384877714643755018052520332920773037563263688804360924371449178656868131618052798434237338420631629274082789288009303523955143658313709977655458894169972572778058736066723087253440328708898429308269468754930672530496077513541254860550789110358865925328883069158972251524855502417745170119409256767486719921408900998420176457855042110344343962060376742493377197182151209527647527367897399925714852450205100394532623906476338631990235345499400006439112617221174100770099318288543562874709628477130085334560703238962960885783805136439117359638428622504730828566254602145669320751507873184897315400703160553307343191431231119623803395199759941919688701024852891827408026989755250182845759793658826063115693609505368888036788819109784640877760760976553745698863166701566098957495010510127443214100986078768406188528073938646241217071105767716365430414907253926308892071466792972591653152341199890904638784418917878280578720904458492810291410796203259900326720035072485884208998684150928237605973746161744543111362738200211679561998783806350579283341241646232012581281245904652492092219097707934150781063322663581069255755809357521791242771525180044149617259887433419051435437041648461726223623724710275258985169572060101214248033227919397113320625132040180213480611356397996505504470406987119137126375472636315402401569472854712329770980971154894347249327301628652898974998923505655265188202081131897041536409264156502220886475816757181129792049657643525934509856558560893381018042112042573520125210752909348566623022101202219225569451281960380064129420080069956675329521129336637791946095139408677447308079734126181066353654400792595094702942317384586090862953527787268092783044565550546072482244208105758420820441042262401400153886078231990035483063692584586312678131569983442004454719200104353904579667820337551048787955273889771195032008159186426301065406647774687028818111535244641067633239405036684786288834279009711658928624508228450762524385469664613486064985675298219415847101791338078035311450302589031472128151745680156953357808392274994976626150756356931900280898588581772036963053698296736449718451399037906324424514079392603192394600217862166862552205362485261716759148738577574896592241585157091766327218756466593565302135888224405841319356535926925670819331613978863697653627099185610030931728576408861139843143169454598468998669192500369168087241683160654939143928929393826310301543037556231092745314316017155704091216778407968450912249094552436315206908958407080522510892110632281973672604531246891034281110083255342919675688881487517788500920404795820934952864665071404521901122490500139496155479234664474132453615586556713229104161200856063687319361399593429921214286632474707021491620095651749086585162848593973874368935319922390336249314928070845862996168411699129722477778333868796476645898778976183416407522371042096499388925339417562191184556896997675322050429327941001860867039202917357309918277110076955450743655062038695627967068955231175464877834380162423289357447355386487796573831705613821125731284836829310204559996043347094784168790593433833624359071933861194805201927650940508936639548148830905825596467180889286265778974747112096207527137478000532780776757167449578291834511331867585990765179181004180320553093836829505292746360531378607874350138088425373825627851424795502490025397603941571466383331233848037231723099608312833249451421344591239347021528748916251492772220192511090878290334264334695509756065051721475006796707881894456903808799705511066849076071024651027189774130784940851087217737373017655420272553035217458855581083392140278176644074357689295817729349215881951612159527700758889028372588961142790322351834484980248476181846560502393096159134573261332971144187521940991251210903679991516144560563819258757673047255430088310948030484476431250330511671828719152952175229269334480302497734669747916825681622539391114882170877782797217571457590529862826522704101042372407767934378511440986637450891919967320299010959272053541579963420787373130891612183813342974227875575038475947391943857523464417815099487752720749174154248387879492615744415947863779778415292186610896445859854280553647725925963894269744726245558361829996684084084023284222431979393008710542269544908905743705637495514485940315823617035977449520598651907964011344235877848435452537793005347536206689997424642557276246261897515499518243583820517179714593412965515420942752158140812992968748140509509813156140300674465098667635376109403567963796203175449528524843206973215329686486240956602145931984107003113067455107254211963448485421107203743857501153792614415943872102499769956433546201465088778629070280558624396136155914054676788909178108473452689451670394654720141961494616613555365569616118182233322173255533193881589039140606636652598207726549748337236168864408328711093815429999755393678048578266008951215827029495516319875234917077658124098596617166211590946755388690199387373511086375810866139877558245430410315677106269965002879137452554292052084461996820306563872611349113209952416932815045579249099147222175138259576097116636445174832085696171877529924528174979638451765301492636977922574047812290063970675880458119587078521520717696291954750122002963985236123065429924491989678173609177484578665689417222323071775424144318839619722971971844489224442420239725827534376261457443991789419478039569339161248714371499982807472844267629205774147175691343149104981748798140107232710187827291948493031010299016554952670998482211633579865086822470795818565768885381361583691895603416219681156171783539466352237610242455801619901398421104546094974721810345180739023083816269262982984966061499466777397849449184158107660936976310795605113441296829818857058780295220443117664777790222379416581537385997917455715916908188184889332434147626795427383173783575058549676424368385845037310890127102923579505308883853209723167326749480126426635689153951527360515534545371342558890322210656655575783460165919288570184399359060187425106136094361175594220585771646017460241295046970181384813720474730784864221311918667929756424379352174034881934750564102563860926136940866792664231932110667473506712414806971137383763651268630136604603305328245536375075163488248504328467735437947945960811928507043155920955199412154521436528885024969000433077670268381012480552785089529224016247526113636927316548227891602622936478475095511846126961433245190492796003439776061136493649464493092955882515004620698224876238764564075244656241127350417858715002114678529682438243300410909522736840030260467768294805925796304590293181608616957485233773566898003287169947300148619529081184398710596729902753254705610863358170038112967007414768837656648356403708051561431112735554690513273416592633832909975422922351749374769404855524485282972968713616970970779264397996936648093443149206170211739227082117859669137006090940520348372288425818730468698573614422273082262227828398688609873509370889385072061908305606118372741299979899786706629016390267828335365043844669003311489890333385793436364585705304702023112105166082960323252568509221044845885959998685211003588135213338365803721953066708102811301841746817497263282749720614322458779302494949823110529511826210373419168364188163492584397885402192918006360772216943190905335348862416589588242253348706010598230367505160743634844804486856763650595254011910085469917442991104849570000586574749960708741951036299873111642891929271109395243113135760144329406409850959668609843949598773605030301871918417841547315422571560827807753080921438257421714066571100711913110222799096162934096703835211210569975411177166040619801977942057470095553465516909018200588626970618804976627257371185767029913233285269746688228359137056572388967064976499622412075143520458919399504611847272798840350520669919760633369040254116413949010251267995643835862778064425586932606224051301560615197863617105702904240889553888237264938029154034482724989772124320140330531419042113639724054025687214579337607473634299459253332393041606900720051909635695039873003420935948201185875572053923294078839024159965434805735267950727657972011002482014754469840246070951269621643800366809564945143230444524571481004270862748709056500591208555734051625385323694635408216154446147109415492064288187752215222804834467501755936906444792009309326135897054628606407482703111074348223976995327869366058592904824569563945704180410335094230744017054038875380686961006072222576383594559775091840961442438674712589262517564851733730855294415198281223963768172544059041348350411371578502738087650194780133904708512850004693107563824497557138060286215218041337803809273393412315704995347959868587199561375935904899992838056755469713424632594006671544782399899216162174648876162672629183274521998047026980204571560013650930163980532284115144857119428746113473152125144334147522674908201461033391260979580946580485104298032145144290316583584166907171517082792264773081669417346591473212797020956921812252103947790946417100078886316871771115289243098743666445211872765466554306532891619229847293182768449286123073660211512840278149211180339192688347761711612527870637683410845000895165765514544703470798629734200749059148804601762419548194342244062437076487199078568437473803935987365838952479357771101594202608545573188753383112880800313191100749039815349023144736731857272730464572413703235282921143251299099059481672243062181796578736850325566120678359917736300298505191476757537527383339433298579018627580102184945439923444906030047256849646243002195843530032616410944347479415022857559475864530294328474903956740015260430258952866325127978665986017683248192523710214195811732978101274414263489901777238535318509051708707130962571208388774555138362894734594367215774312762199471980186977743094165910420286642839666009390314386607929147659862844690111542485871361963105889361479140039494877375284991466651373029679739619620733061873411406625644864260163568999794335133129936530588723055721842960170420808651663279855884169917647657854306397062896611233456409100355667186674759963918795531406490043131180248914992051414432291863118617404300169816817110410160135849132873544742067319517068790790570183715251862298203488880988375292569657439710658210209458403097189162391136582757410642797501874816645228516574517059098526786684990731018115594338673333870935237417414461847799508113052085631648107379580131287185489417451467760524525326443967609516527185581177410857084262103806889096228546156011520683419047456634140193936903546080754818196269702486261215076256036089433030269450349441482927354048881027947106463973545720481909804243222708220674512006680564354652982149098939888787126008926429285801257356509755912501907273381657687052526987271041649721230402422888557445687561033021448894920225943394356247985660359171924902581481341380462771916747951233217095514415070741423253140845233467088879428809476515273583242172761008753549426133192729713423925108754177228044230342239713822103368958129568309760952931976037299896746264171088668943525826692759374853311639464628038936857793048715676430790790632985470979549703419580496058040540788334915436031376667963679714684583310285691847714056397983373540336678805668858229450519143278927125230708770606865584532228230518034128031889536275545217285702008956657349280199446253185965624963222473208176448594565852134898026561933685500109626651212193351490947267669523893446182895276253447172345357654949234480754418896772659643926995932806869448983833961847074968649201874989629052422227475885475910352426133579085368277198384330774635368210127388724108544993616468437187904407180023324639726987377009724850658566236056410360664698332762662594438274618321626794642294717529310608059537636146124020826778172169287759706457526372222186498008081975709744820529038955112218697399663421803412580284325671495675375602052267116571609550179195385562497543948518216489214051954076818356817839842877112833416375200498095478760231691260826986645638394766787034139107568840334491699883096592103785692119951781290789628354790379631556280180518636748737953331386040694478064843534994768361093168410174055745096784896008890483655199935386022052186098847877814175974435141166467450645036527370786922385859144813115825862275803545913788769326582606820737128283962973793957929559096226592392767113844390860218253758209131852118590333901800764637516708267361290375810900632530995456931099406433452298481001369255451400678160236763553720948903860056597011418398731090286181187276706842173849678954191661691188249904647183412857631727346248995060708466205923702432388756813949617523467690974274807367603610770666555737417033487020236647855203271192660910390871606248431171868129000055359803727407748521197375344942285100324705167039266011052018510484897925534513568331071789649953964631703967033923940698751861480935500130719254557602830298091015836234719541655295792731385557814854945932589217399977662091831642732477074306169454447908523858193267698282472030954326351163060533062092745333033772638789994422030930975864497830231191771593766458849451931882393000645889082225993776519942410944386428125023489481256593856228107171514798993803854812224338480457479619885132921817383255860579267774666846639673002998694178884031396877096648827751067747252299021038370916672235026245307520881281277927833594532886690277716017918107961344044576665560056068222636404445834490420593274324350713112696046050376813974404917714759644955114928751768852005666817655954344203329515838012717878076063443795269669624958903197633702339123769317119845923211239283946878454821970239799889344664308965326999468372733909620286314202744386140411739655254065386935034534860491528140290243962498070482654956164057602381101046240919347740469765592204344274895884045627297393372593792664088574173163781651577921116365520059605387567426420778053734951109368004857269678844893889454960975938337283234625382592571203488867106201847703754411348270242360992644497949193621657761400058032760800912154443084897947223071989737484953986206679124545747129596726977836818287652490870086855811831922950100609096565505781922474340988978958414378841013027480941318361769002003408000415963840107172614419181653217756558630092134965647533757693577837176259866674604277435501886597494993395188346247141417079860863134890436665156316041226267112339660394610463309615188726541297591486375881674708099765395286585019052156938974708315077223374436352437868209385879611656529875538224156641833380339569733650000830174048289659433873360323251727830468031284010633256260528374876144440230749539453190220434654985033832964545215995431927785637094908325445923582759544200786878329169515508232291224498617036413790819598139614732952481819665504877146521888328508921959377753380582588276367755557161612065372084185242946661577862371106142166953498914779447115755660145803605661197369896982739015926475712237820294543510188415372248103381464935845748818627085728093094753058220667450145324557883127506734119314020856423962639710118919183242204423977465969687560516631683089943017720237395423030972873009630517423137239737362678016911688184719160701930780006318591910111399637565558070702391261153998612468161888032518026460625273167966907980567245944656360095498773529902207046473048265090206182079817246855161639522366682673908322966651582303551815040119353246542041832595724318749365505747272810988836938684004598435279019894253255096219636754166137918254349279117330654831898221975096212588114191608080611965827888569645758945568744327197655875391074945710899680886762854415329578073775267613563184793435654565991867969065589472140883071966141403717546070217037374157969191187365911878528348477072778950137255666385096668725105708648715486129349908741165776676459098445671264690310808338714711789195373503011273382384164639406693677868779728670134841681452529486161381020077080437240997422556652817107510365891650133516306991529223541833687243043015913762671927736515296113819467588589821148328821664254871503504726942179226703993240793499293408715061587550700978561154352897889541880016655498346264859503598607090927989284173218033555483203080494508825473793946207620062347264792361413754079211905318223688595447372075557366404197283964873528732463061049180046800822911230888123452159477347988393298378657771108793350675183189030079531951721857260038027321030962936131874728859926021988518451897060068485123916511754837409944486476726111576573982031498102253768385891326500440592732788352874528889584591661056953238307846321248210990714465947754567813369671368001673242330395819798029249132538031844314276640063087841765551619096848993852417678121443841427736768707778512888538918606936552657550137712716030458808416249737256224393393651406377035892354047753432243986250563880084293280302586353473344401490219425722684667879725988264399682569174750729908001221425865266227451740215420052905639893688727288121942544394214054425163918804778775413994135118577211914333912460029947028463661738739500705239306066947075308703969317349757839734838236018491406720381865313655235148736323156345934522034139911077751506598585147819750676586128860508800239334180619802914887808027981683023562467246389593787813138179171025155525727241321174716334719634037034917956937235443081325710133676343604589830094338599366205214932662953670433239284138511892068863045095936245787473976037665799953166622278801486162318553077701579756377054764998052643497061295146213170399078800113207111181907071068131523649634568167699348420963406242918178287872199576136131783807765050568367774294327509494815953004183836030525713343417664864311615381046578239888120066170323009446415958851411931365822766613202075921214885627816417373658508079049046829275619592846593638511402094278648751513935292174151946805634019656466058127920051799732177295852358485849399236234919675657588347233088148857207545174804838303849648175229269595421162656963857222771385697589978906886439874002989897048597888938788992479370974285835448920273158256011959954181493141900210723815656582598660767226919678316158800252462400300668443614596293047587822419597334530772039378989384350683766479174936273328858934791808677880428271985484012296497244825121736673573325232780327773910521433753423116656160615254874184705201763975787337402316240820722244936334489212941946150824424436172703659888146109755410949235662653795170017624609336479548733704919940017999289120152174607985457494616510151961596004333782619878921535682706442991247225222859812346671953396522829317944138734812984261706900176017427117359808337913313959643857504216630745469827989439545554299122435485253399265050715114871212042191724357965381801069481379956234764218681881736856219931451223856204680105830056725815475275661707096894333919807681292157852408008409649977906439333055824998256191005632656423109010688536470593609496812925981008469932251617626287084525367160772530843930381877138551725832132661150581520893944373165402443813795936061580935971378408732898128760920526821312013426897964300254265738436018605154235052979313111489891772795808611645769560291530443432282044864197685375660538339901526857660659224324256338486115823264840537333904343336831451018385752051354570915533095031876312820820365807629079144390982212054186715545672338273714749901405593550882667663979854208288131890220147488812548107898594085205829353128606506099176588321979841973136524117061917283008483592276856023867596966721639962512699293107262538255528100024047104655190575605769447097538848431926660054964332092974560486443979171726800623979573518202475861405070292382436713509790116784048554577457187549483696157301838020574927678712997692076059142108092530108919368183434527773041190392207161819861793388215302489689381927420544797481528202438323185935172259587796541439791811642498179406102773351920155569733937617085252882277899888340175038664057368974059174720925081924679202162197710198831801953461302785923107655145232545305498143635188983693112334669448059028075333094530280640445735340796654274097130392676933369699203295110035518873028655776019040124654221299089299593337706262706413306867368543063898026863188230883444721375691150418310566146825474581237742205577370410545609498934218616614368185767338506313644609080613438612265675073169174520798190793186242058473934033684765919439577649405982451052044710013810530351694374044083958188403690757921330812479043188551741094805719803833895338522063923182213512115909034808678695111869307915357834283732129095822837201827414153743333006156195213169720702249952547083704813949439128601369650284409839947565515649333218350942533199590529779846697989225284965484636964474236146296050100433451567917959488543573373658025849700369014089852096591294842766330347322114179761490088588503194591704633160182679768896292076631918558141077797687926278363488659423881679060762782957122010976373030448832511753000473663729829208609586820893851456868953521727537681598618233180986062894864717291777509439185543916372690105011463591437567096771205223496925480105295069629430364744416097652977318693524392142618544700239527103928952601336028865192362263443642435220627103308152721912730443810542325842499612968244731194717079426663741429030700142965970460666736755738545559065057057254675178932918606586267941906230771211320883293926881750056083073950951340809860688640769503676573856649446810500045424659076924011957039486222036050849532633714813310962531998885725733335771892565643786633854265920742016913170839204719932138099844832348780207372411915903307837437145241448632422365551043004353008815136249150572431098746005665413846603674827585591586534190697446058752670448287787218200143844942666356551189784470419375875758076394279035030056388294420305214081986787044824144539082312794059136856446723995189444274549208952854948279979586269101761099763793325389883721645671670150495377878776809879975899006410460470967495334685660096676452226848199837944326282226107167418144771881190128986141866878818264436682177787238578154557345367213708856067782180238681497657108610211284614313753358844488076055881854469444896146904715927706144772255455119166312091918658174067831380161585298106814334263134081041360810664757244541382582951104650048764927005297273027480755873485754496184347849374692938527595227020707496056683826216885472720446747431518221630817663800826055697913879388776271051321556081448210568779955760831975108915384337895201175962938367774285294020770264863517357971365215545230620812212249500459318061291172154233558667463030086904251255928457402871656946182903638451746645576377113863791990775089593370147814504157197030831924236475150064008896011671032558080993155698635285035548724427487862847242179945515764312148406681597235052946363469802757253671329013035725084196873198516227771216221031891903846161421067517238921881333238429313264683451359990502584199112601266155893441260166972286042777154309138814999182323467353293184942163348909431949611901491275442599577840155397636547118585464769112432170004944462786662399809768026170659013973799744978657379448304657827145721077499498911378484409611094743247251425707653981011569587908248698039270604884891901663916992407068401931408999722228186431747118903718088189483412076970000869857909706272924896803474159296676867018970898748518271727484342522501071094680123366073004416219833382016530646750002990582155871966697036403464080716969932158183513853577677312284005210262661076365495725624380329058339380766248025988337450438450697317351076943972645207499069026890386340137351625110596888453650426145825106945079695768176873869107426620421658536190168677521316851100468051953064593409651589705726714246062622884222561293280693298901234647261981509761758061351361654039721966855645575182228205407434300958336955775651127784626347846412281889482050509959827851414104456934978485827734653187804665818101153229720020863014754811300888941698216464413240116773366240580696287384621315354667282121910618028864212674983828328598849259058420197943586854041303311161705928310027165693593989020046045891764277923187587870847767830595162120855900053330342331279121673051478641881383290457325443377973917945631231346328677085668925475152881425451175624129629483921253869261376754110555983647251697862963327621163159475347795535979971706415395910300282256230315062442998465276279039956669288779447945377647574500780422827668517632641353084434994721925051819736153168355080662810908745339223107319396098329807664331166815767972696670791151703285097332463891710129039026359591681336028356197332068593904600328633262057962139853869203432948506617427077419365159198092697905029469245882127447836901433107251707258042849054337590200237547489982123099201057238755504894947277705376816715530507101672461766861404022691011358947716416905026593976300408626213179089015639776691570805870279833222882697040586528389322184103292830515360173699254301879819900103203171811026495284579170015456730045356083176378122631698218726336110431689653109136764806812155111014308437705450123863849087447274856479090810847099993807583237353694908988726398448875548994715422502112788448471244806075140968283593609463046030001134392696014223030534037860037560242712496561413382384867189308194076527913667098814708982202475556825004992674382470562691544757528605497459501269510811031293506120790408204580222006672894978531144835796387977645478773775257123621478556607388670248855117392199043971893040891730143889541896420352250768149780128561031186563812610426529720700689173171081522036172194818459730382026083475225552918814009928559085450315158001539640317260379836702038224060662175966867994466574122598690533862668791907799395585741776122502389386012438174748306121780233553676965872689234050843336680776584981245100110744076216152181618642184237639115646459573951169493924784107913345305739476989397079017279960848796550117559271217707891044077536998518997922312610116008052851743184870573633891897527709093269793579062129644333740874444618596831241655134966588815944788753363102630638870200944953023305675236506726315941517454484911788740707787174621449195223917194464316003389879477991936759712243146841385989363135056047632737449630518287819921433540632458789497066308514881876925289507124199242794415965055344845342561941672285508110295830435797554951093325845090436720324692169728046193895693768094890821944187895846932013286375973961258024805160811428977862960287093620906838851735760441416478412507444321384235261560345310187080239573637436208394321378153327676536737394563074221358427046955892737890753736627471116530754515476966453885894151532623097503894162578886932562165600036126584870312712677997579732964918406061372507152881580494100209041887873334651422188091056714111427503558804279268994301799791490230532625442906281973455944214495820734229007137305522749951404895805112181800076194886128679261373563733816771034231690462981758880752657458425610789926734485591718050755534836662508479844591898192680420066088555087468448032465989920535977624910807213393954905372427519325093549917348143967606338971239229703645450467863083810277971940066095817291046705915425268698588526795522271301215199807348233387766781316289063586841317743311866966675319285668454873788674140931221862829065768284844840288740652956559028803023485948255962086281628932239250995287678370910721446899481912875317435029300212927932107369877554989886665204887517227550955682711917176393264847733257936079875781100257684664893038068792999713940261790075057519414655985887932574322540788954833688384700655715144319744690747014087505093029564044646788879851698858522636646066677881079319837019516330478374553257597624293182682610575602664729987265294876191772176068159060529105193900155469392508370715448409573921333650697672090674161955910546817082987484547856907996842510200685960358334067618309573725269287462880455100040210919975195403016913125050843676939568819717479125738851221252517690924396006369841736288856375428396226312677778227996974217593618852048075968272445903457376502711162097280249920045842334210058179340538804626873561421872359895434554540028665879583408648430757512202107736270535506381275532042361848470991317451529370957263395970805216479186388352407003145889692148367876521327725064671353253432452943941360908768415234192833936972961798310188151309430178263102039487604626972040102647872721081846275450879546989992486759292876020223947207924948830053922038393139799751816294854940014291882713768728899334283199134921963746037723341449709087255815482255632168994689709795993876303560000398814201393568091666096767439863417335716269262265084571989851356601465692145706690390854755707979103658273277361147595116831255258723064787204027906390913039942815602444672614835182593841118621215205913593026102601838157408325467433276940940406537463684279501138382217126271535338618698651541927292798716926065974445108240777182294362845001405867995592189880390583170956656441490165146813268046817636688254822867650390536897293808312121533193891921389839555926882728575447908013396785771867798858377404679246102168321451426615642247081841999635010318202897941113782696001118164511603933390649329921248396800431731784489766804936499868209181941695764487759583622363968000985968398279414225378187716774656172695432272794815069792639028117534169207690542475626633453184656135267010578122047196729549573501853120100418642897602162098890201220479433524764680307645924814629813110647544012805578193107887826377810156179833340923806514007028319905873277548887896578496020186325647208896600048374673126234380767477037451041184276123278681363467404635110476642849093541510579227423995820767167481301034066127240168891918127059106362150640840135181794735200975939116154619134449450903310760965346635210165307636975221020385858913476539785939069806303920882434004818437459457733341581688749310775950004819259687967086752520598817440316115092112051670841368081216729134970675227757256298673356260016231161278643522952195069127035976239199772560989228649426597407857868810914432437249895283574050741287936913261245385266110181820220743520541457628143954022709977398122915000025281077923131481325428618249009350725556428855103905793673780422243650915880956129102949008217816866968476921302312511025858312242967070210917455823236229552411685435542670201078922965427199679437602331130163988051841268270684305066063867078899953150423650775634780434627646976124026870614724459109181281755220717902527370733496072038425422090819802236634258955347368908807375932538505882767016787768278673413835827124865645476487444071963637664765456614564186127558399944597003494821342146730619370711222612053466917076621766619392671388133369730502598336034237104104913289279036159595135187733790731078525779076928218086827552392743752926055588162682481275149584133449348812921741943646055300745243560024800950322097011852113164136885104558109489207005333708427536330078725506918989598702551540147900933918248627087182572638931185728565250468258785630993098376995496572382561681416507619032646902648523070081667145729662943272756962774209524390329854833630071442076548992578811073080585410421783310403547422067982324153851304442293266805909990201371542614291569258630658997537277597073480479113188501421526455546302232991627787145862316883892809898442367760172773249282132338966512361806025968443724833120375532723335128488741550811985057870877642751069947447252729740086114652475936331230932176001615329235237587623856501452246673200747776031755464515194146736538976891630289018225676114036714173530404611044048350067702557147987675316907051113009667336534598842115925893274701105199839430468373236948706196373570992215193622475476610218644963835805057682588265015746682329921978653707439333865804070450482941974080974992601051988252565279010419787424457102433600263217405842852205170982199145300614490131804580762627826628900892304893438901390810432602821839258399096290698518179674121293361607349442812592890155240785807576501649504459322354615654710771933646751334885254865599690776181752354942641260093562269519446489864173428438184858041152385655384884643599185486234856669268630199213087324914190005001882954496903631830122811175934565960183780643471971755445917246440282548982128400758591919767613677245412638782771944576757538283103592247985447388146028137832311793175065888015558035868255520818617827395102783155144053014565545397189507193533271418945380772767599677437921361168478249394898993163085277120054599906892130056078444718000465362067455149743848536236891366465970635495907100132857497975306302128304254615863055209281484055551171495439359379826646034008983282873604465769108214912454771721241396792282767185915407299489728691589283270857472873201869618180237504729486507670297948652301533070063242265965499693327640222153651249527182469257355564175179602507908838093738132458541741184540895992116270457631622337213366573570935892652143210404525173508946369848824679349367705750848673058522483578214911759858097706559763625634692440309911437672491926409978718841526426813943971755190450039155001551593651069772912051259892206832749108912897852958754806596390208276266868065131662915133246569331259558894894588579832085632686833749836558985580067597629066187701566428523354798698203806149315709685098825959482428576435390764639984748217048429370825919248069891752128316994726986945071286385601435178159802680930724778133069724023503948423321763102079847605337259399278730685729280266983224022092903302150871440985455969244945005728205574077891004859286348244927758671290200910169187736092342329635842441655134634558109462718238655984983514414674026878966972255093316998013889160964509292336853267912906130306404847086462132819939882868426265748583239570278114971593316835587567931805611875363154836467156267206933469619109162551119601775444592299591066342511172701093780628535001357670136830438126157631686548114613829472248976908747474921665407220488948438988503209769499741582284131735896007393977412987446873523893814576195235481563529216757625994919692977227163994259528503331410776315320379016908970890074155333426090225656242966221408009906606791520781737373007032264623544253839288340726082688050156376111522398847104393582600496298067467356772020827887870909089610700508236806116751662965605552927343164994271857709106036129073462981731480893446161022947604443725137033215274866247939206020049141924846586383913845052955625117271114668061080472130782221516085962133241539258303623276066627416773405050007548675784107309583502915667610127117279068116955605585665569350319577653340614971393869799222307657838308218144353610886157860711641273495919578512569000713381082122316512785771561828281203277511467216531763396936570607039978110075146374018027651073611974825755808884249174929724568718961528926701951875878016486493178434290014468348425872096426572632306959445018552498643489826375765439030076455358550962508706871056619881629009629047201605019688790821076170895369249853285921414957923356542281165332842470771490143452644203571617262222221653460067326305591045664179601999005807965994897487738852560497024786470371744364931150294055481736582357343993183157316109200721026268344943857449106436136889567061484419302034665570047678796560645637842619579514069587893837639735384283020432820783390216604645940211062391691435029798420919424416263715976642106296748240505852582092171340745227075650416966821489108889949082698732669781898591095227902102814617343724939969110901687635805932371187041717929198699941718743241493173517962495268029075584665209699356715069227215544234247552342414334377130127458392484111583527685335018214687992616578967062075131964221716446198787133579094759179810195703408048892131357134201343922469398150950579526950883279162443919142523689590903187631616797838576637159236436385100421010912930079684703199918563876742938242728471808637682319319886411622774786113199921617609094863692300868795838473936281240989295920545246278529786414917140029615972934656566982966079202538990756653480966601359313208809963808856473098319955279552097544562363796915560066847181061538072061828658145204247394750640116575171889775308490775340215519136911846568940498513277558765979915389520149543653127746423507795767583000603972641886013708090311368865017175148985320042122703125828133047184697845311025370578455125352986228690213019457620771320040418112257884572433553462017218997704315095307314479509747543351976737356101259465471045380824374279599713146004541143304308349080739656939180981331742924242701065454795294980338355815153494315206421047860472875269868402327299513547275610117301569092697340304801092922413494388195717087494270714334746096312873093731231238124690739573988122672200958694113926878729438368189356676917607623448315602966967619669871986145121876073203602529393181210515655964817597285588322217441925900155181823264402947776794880357909864519435392344824227065603856545407704182587568250922673207324727603945617634026420223067344163630132736875983060791602664840247283688180779901496647993051120755450072005237102902889660427168215144888647380738492188218049096047054343902385544991195715840921960086245188721892624239352235909498505388459043987570483088112051015136174126293067626363509986223666012264194377289906463210852376861538748382214493492596847940878131228365074249761114513134430169092255145910855591492969833588229462970431293080347075909263614307668930643445188729461060851302525915347201651159465145229042700131963201420846589011375819155691825375757404049106903743954348412921421692129902729119509584118977169091148504274998307848704640788735176969109067238097309331808090587274750977572442944754167808347545387777065558586439084401037231072639872955835305626276611066348232328182549136511971337813681179795985007118385307970469103550723809675176935463713939179317236301272855594189535687137018950374161861326796508182731731395827005674169027948237015753925890179847539909355155098421485159973851922892838444822890238358247928644233630124531287808663845949717136185791056923472277294193519009112352072064339730179326663241066088811238958677164301291128258118585495233929221567561508367666579737704377439012066402866041723567231650848926409168105211464612967895539798695302402128647669893801091063353895262911151521682508405121679483105244631844225810276699456765461012527162623166906844947659875166084351285803694967163234745508983252111160472011241902277509026107959354605717642363024914063131736865659518744088242353872076600376877711763796774063771709476394202886540416938252410543233590501401387317283247960249817413861054703883642466203969838956846698358655343290208081413692532977380621027503533808106478332072279604340420740639380396395902648447925576125292919954601578248648052843602853505822545776321855340314926428476556216161597554818615938920242225778636930277316822323404914398697748790930115710103864402669667123521938234487694032287952030702048478976346043997011459323366576976708139385468510969640050475167466842829164526809125496462217734538784842754573915744087502798877661359484129530952805602362516832929155568516899645631292876010655001704743474629891486289655383916498206020945208769390453306039374362107246329212037962271924301667967228024809355616639461467550335066438219303662081057137843163865450349563861857647975841834520057361942814465699052969738324676645508697024325232998861935159296451873426250768444076454587981585959398408351015592169757236278238123650532932712080550061851549186481983258234474546576816150238014150587237122994868403759604866515253794455995061491429744896869943309563045857801973775299024694340186241001864463580736538652663318085557615767738640210802714788403959091368752263133116374226821177640309540893438388193401685730666003286939785433336432086914737693460532098647709031734978194985123311249163156970702645612537248361641377035083088832119101756850623843733251676712503086242713823258997505487663461428956569800058173871317844945745883540678074710198388546874701306118655450818684931542256941264058222284899829050712307125248181735696905978998190357285850884085045078199986115166473549318945901619309512157505315948443545453974466872474484271685851509511494242365241612086990408731864221477239012947315016105158574602560825229101121544092213225784760888184860828002016652820478035026062779682390015386057907253861012366112613349205870297362556613340726150821953883548495018782347942610790605822804669151274481558544539252212366679203735885716766554658941326805245798861286285168318689811313640592543913234247136037623240873337977546386829899162458610038626314579837994855471994349238618143242909264715859006134039182487497434024711584607207504651509320868835371175656629016826278003116084544853807352494939574465469537498501400440382880568817100160642652191068742734945507065762830636157621182154842746836539848061664895070068071076856510162931855960357999282088207782713324915022291227452884196949834478554962518327684613208203875075569119351902997036965249775174281380460123827805148235119602774293153655401487356875737540996712497631059099217601113464368867990464171094131386391751361539550492030941569097649008610310856249933331617460097072619695569044575456336780363497640512750891273030946979742435272512845911757293393728857455957923332878242297951323397858991263737366702945290514924596824876451197579670273179699572060998266089318054697655696373365287291750283555439405560940891846061437405438472307221374612798337045461578908962104282242118930057107643771424509807894817676148606154937039137388582300851565476973734566844156230203550071054726172208826194672665589410378500780682159709691783213661565288512019377097115367471739025558473780770897554862997594308140571848073033627350738836679403252637367408830407696590834729034809652338770454803557460849322698977926668360385210629347818843899729879355033298652650196897779166884379891207859424427402575625763379957093351599176171893426836619480512879340968690869846366308382075982105181433056144190639777920551033246267104685549549492606178000244662634898483019008834541588126514015351606735679724605263233304915944844902547465876232437668704507634892807823914173797604205525060345872217581113070438142825237692957521920702252631316352970575557434619900971134199266368659812311920609212126748859443647555803176295147030876455309391533661105775621021843327444276807715555096835823353595218718325191710604376316151955895682099228849062481704971889142174632091606090352287385215157545565940149763172809295161818085166202714779631057777883259001872821818639827492213078313401785103165819400599642332821508437278100346392733998145187286743772357927404897905139031066904958497139820259050758894573911273734622515318448110102986928329808064591895119827729872198212503274452167331771563720500118224428903906210671765986137781138101024241838575771331564629027998580127719816128468093141371298434604115134887742945103315052266424097816528933520140057333133928151493154592358331703892337348783254589924447788509152240008754296550660423775929952608134016543977817394018013874205766064224446083901245705495090642358065186562913807770733453254169339016249390243873882540452581297191617745378125626093201006359353725705831421566238078009955391599063285914713979482453507213036112640480138662154915371445631030413111830111584844659226633961586217206052475609324712576735365709571805195420267270153521751061105562918914536962882128569090864963604994762259408739003806800782193307354456921479554225550303553231783958565260682550030432332100061273037384101157456347198953488401968274041497305972840772618640196471318611808078071720299549064328311915897150096339454836364631301619250839654928598310972205386818549013986026064442000144019825958957114137723207362148936702467883779263971567457719109855221862461396761433182043698340499163258292436247091029205468323505808550764003164286820955608217350903020659277615804001208587448001132466165544682648824379467785694119208759588410697050685961748095271149236194024603094966011897556334670612502898843367329204532664565683914851847860940974295403551340667965731453072843543218135605737489697332879489168968803382477653103736598757415956521927880226020947234080209727242034038914638518948319517046231480672739089240541540915910543978952300553499278023056513664333816004589512551405571224184467821829872611660465472322221549687701200832415456774047669115756013699348160435481442379232225001733667822297767993938490409553069842596644160382395521285836828177588827962763302135305360321864621580889171794901020686976312766522564958689848986940360205058600946781665601504824208004858568134728154855869245226557074491492745085046068871568343564265260604272828685157195388239837561469309062582301556720895340469588484765880782804973856955127758991016326437205709622207346755360956408643694958677831941875611789130993712000089310745183197586228167707143404040217900426355119665924374059061561345114248654818286203022113999979816735399737338937617241205848328299685326775914287427040407990552283723939777046255617013508054181470574918097439773557167783218028090862137637386060415853719803129272401510195749620567920222798736837672194854109459037969039373371849596526963715945001310297590468609115803813231257047868007450818760610175130515517231966749414517131343143603903918285628088923189371198348215313391487328955793192284556438741230977733661536575516308254457547505822921972323643133638331225640737067002981308612986337468365593897263880831811828848446630058779580835315332542292151374288607725989060303491476721580280358073269300697447893333360369515738115853301704269957571672975707787571929406760881365988639531786270933855441937780008392356727900353506968392398815708851376945289699729698455001976099969508842676719358274666089405156974835590061767496848989655034732137561349330659184839288231535177378965434359482299563778608841755250014221676185201407862983949469713563518479277955821010770557700403923786460088444861276933907816829881908567629967017403933686177478732817521129877557545950370367299834992680830578036663667617293385391205367819707894794763102216535020368804845521752455831160842140893693660795926807396015406110135151545940222135627318013774469158076521106963189950824898763312152673818930914647528243008377499158045443882548510970106158719315793305265470168339335454437545873575397058405208737634923890466318511276533924687683068634786742085655426563137874921580401787751494023534796937018512793014679483739569453517274745592238468701831918092386267060628736393884392923980953760490197248113649012475745478960192354924581945067445751075112599177263581586633258486400568351372119818404716918729573641040401816829086199068415766464982191378336826648984305210408676751321431943039405469565591360965311810530014815017045266988843532722452200039480020416904264633198155799758379785868289169085592224665042293899623157081191457619493827510559393235611872393101559311886324232566354958882660140059231650625727624407310452137720355997474913669911748663843114695455162849107571593890292288933772522456901809277659191515326981648966091513808688731932354936704742837710234358623569332767915622415450542960572238909515810564916964741228612366967446324020442140183626598622113445935661359628270253212287016491055862795619400309821419908603597686726705908571046026382924280670649528478754844320686040505280133281522507968338170018709829851066572882860602237742067329921893910424373461104158422036814584740148667195322282632363204229336266550387681053323134871785850532569152929006604318469901859633704644031836394154488122419629313605020333880806224298478665988541495036549287466383689096917173651074706999937327713477326414308653802763423791107931270035878294068439418719640784679615545017881161055815967614404064835057358674224907912017605537217718890555932249102277107304267670190232859248330158964556133621843868594003403669058350429254101054430028855093244745245508116625652661906080900005181735801769419447603777641159025612123646277090298877684818876980532346003615629261611368115430535753562787897719178110114316663158501590950235917727685709971791080814287824368246732742787822661291969656207927372893182606336380786867152467364910861171924458455047736509117852876229618729025801846286792257953999778175875671639074329381390154360454886883345830607460843251451572642124233989062266255745319166867414193598120749890113870071234521469019120436096105683254518534261559710470810720884161806628713712584234860435711924300002374331289012294795444501783174287314764755357648780345490654890124874458201318414753796541960915305753563506076529366004479826933532594567719312426452315935695156052639130537509649296550130453221347617893127705374153934282999996425757530477913985560287932429485986461505728378256525439196072737816515113661027621817078593681676733351396378780811991808108528374818627303361427166433185852106564922036776703654081285413691531565657142916370327893780449870780137420109525840259815962608194087879835124046859224864925453646000405081962976051069351723635822778566227934223640348898188624053487901087829451308762883307937591413038077482653733262521710031892630478870212115270323714999235493608085580346065198623510482198352841124280210026075342900768637955450632113228574768275245418345418686279148215780930467394731387962317025831374466803491346884142287168013982190876711317293893972968640872371659493499699645012443145674537002387847868803372189388332035082371169759228049208349258969137613119917722782758751985364211262936765655082024424671417152920463771004825174063039092360462210306407242110649802129533021554874443201259691753557805441776631575114348066729654474540853974236112493534433943472370249928640002986902781256355212829490009681922231316193307619885929236406052365207585831839773814485536909222073374734218965994542541761682964206988221261450443666529927099881885842962379501752638508592953828457092003260171164213725094608721875113166271783123900137720347206439424710462088019250629350599926284714949135403757768511282731849149033568260747594535827439297524039808891626563854376159185268632125461948858737210836429480526562481944224047855053294301308282681827477892739261505547806336208648840228831162051241558254514645191447165054294056597383552112489783217084337056232645906742268654918758708749371416306871848888362975057822893877315792632241612399594765684209735810232390762167414429000345384052385814679181500471134393066019863621771766894960973323263709117278795749445667208570737427305002098492031346264333751017587532999138391677312985515589039838827482350968877602833515697926314577007783824162038770520588133141189160039713071026041511643788044529118574987303408691938589258251398983966815911346798908319281239973115612222349422484590374126115345829191727534150035058352768377128760561229130471795709258787072792443818644354453411202258260299630955642397356970111203523781867476563745551599209145018623112741709697941686588350904944644873598884060255268162109498997996984728239729456199281523176969791967354873754965877645831028439071045020712753123785073888511361119253428880045974382204448116075944692008638768382886536658236097670976888792999309317102529253967463375400076208086620136724470658486605443427916955241961210429067449598641262588011655539512286814141149669070855813392835166206316603772465465749926164366166454570941977758554122807302606786685245321039288544880849400956896399590505590784786813051804188028105565665640395208082548673257784870775888960024823804773044363335409545356178375629457810843389720675548236251296807551957620149942904215063788640237737071937991341162688327539339088673897979582638923163834767237216513954645519823118447588586103277522714382917847635258431623149158674415776346527389336430902413649907787009380009247185407214174008361767902375140134056718519771367313947714920762296031289777955401291454030255404164182411883144260743303530807734907574765967479254471454052932109817190110584072367474406499705942922506610761422477008215337480048907089172137754102854983855510880839572795850830623841231040188227054219377376878442333008305785866568524654997238404904642994500737047703628590791621937098672702282534290104148425186520579988891914201038367268686038743276827674422961918635692177764527735699555229303398026828255897576757747791108395253851348474558287694664486594132422732490834894998421330743800541289346636373760367183370442019890527667540453149815190535573394322174150058058195189849212847021598250548471846841785474990941666089763131321526956684312956838246335028133060106467779790127444441988525505554229752122481331649383449326072668966722404762939197861711117431319981565599819080825765591849160117393196768580786752883605305289073255386328756813386418727356977711651485930428518058786955816600903545931692828407937323009248392445277281439117140034214228671007269341110306907489211839957823685079504445775194489205685039590519872212738087603479762597416138543142493735282658094677734881676274348530010511389763173962582683588053740692133805982799216713968817401198827962379820834673752987362551142187633124434085080533363086998838975578289317341741484539744430369790498963812411022363149477930032011604102934645523059819733481999121517883279438187080568638358394466501915738544374638240853428531721798223807659002618575663436311959230641476066576118560850198773393828462562195233289014651459135835528148540316582282393454965619243902841562301067293730079576917005117965386534270965773866983645586656260793491302474051347149451457183539887087762877610848739990697835293183799323816456009815872824989542808238155847666668417438731775283092304181007307217615629141198408612791540047100694987333508256302016215388778207205689435149810510759968608699362369716975441373084955518121042549905028993590475129528816574460399966096573791868234787860855619439750586039424539737052190950376574362597442065249856037012735634408280061288219064476795151391730270515942654014746589813885364699664010231517119409767173754578685915987287279859613178085377548718818812606069207215407340746343209925032695265661261803982235290341564980965290000450681264365709639507722022217840361235868415466073859015707224060429812009408601760310381512137734705698595492450049161487728254546325425312261530079143768359156345269571771309699662096296614874181027307144445363457801368495820705347004265340079979991921400013042078329065107005471137783670229846080643718302682203825594248834727083830746495363620694961354632566836520737861632765688607887040404504382371111229116383495225831070349457766101875731124250687869236304478663302736496728600433145530600504824166692864279976993073575710078849697735594880671421305632788443607399063382912064332558218192484440296809760324013812540088703195055015799813726284238009008374982144226663113577191222567800580745258851438429842307560960046528681580860440229754837677548515494123368910237768457799333230008562928533657083507913477251590244262206500933532011385329764167052569950641070507004398008033609216162136760442816419779008758484091182066942899031523399059063696288550922697737504485072377938466098283495011772799989234901439740691407171669098935527045690519486277851489778782662234985470273653965794498983370988493377346225496360458592598481251549816625536757317719616617231530159580875804881444358294283060880415702864310706799041064771276880025758206671405868548857272701469805944791779328486093343045307546097325763748281342919583039936308291781185895191777079256455775088053527608584914982654886990135687311871423804118339093890202692043398835919935372853674821271826127601474754989313636515575022682224912704102048774436971139754691145096125151644079580970642100063609171486707461785423942240189635494073707082662454006614948357233678695485854419977850354403417188244985540014354682995084973736690468361820550268679412573485137027995764925042519854798629953535574583691064721664330237625986824869624835639195320912003895779923310022258663793187218713923018099174547358032304497752914293063536705141278095955732351728501162516016038401666514990136981774231247540822173151159813713306290268290561462838601003043911327876298321283853074946611945785139380268658911285673112702431114281264067570727129525358084954176780795916821247899615119224883000994857375036581128490590455399734168476578847495267041162969000556217760341277804207639762582955757768583865451723227419975026140590123373353477417933850555120076098968463332821922773724957180526017728931151610587865435747330956611485078321264107017989067344511805562483652982778799676065754798859896044940045231363344638871347728834085173174173139376364548697565067021802790059421117071124215692334729170527445491338284366781763850857618832791944447480653037849557703769223889138895562086707985111145544871432827074665668673100592236965695558368609939413482502222487180795281665789009482934878529409372086468503768678484145288740205238262996191208688114220869642805647514949029197506343740321727563316931605872664279456043815847490540982058959013750020413795954200850133437006645210662951670250368670219928545680797590048553242875895409237054382428284329529112631682981571701855769848479385200648993718546552707467940676265423494223470436306379620481169510548895160251706290755846592422859837534436061482938270370467786590386159963498981553544981309837257228655204956754480154822511553340306435616833979053694836527225843509816469073814822919301008040685980983549227767247667234546667486936051656568970010948418365211184620571211078034966442544943833925128192516269936958444551843337721472182958608097732011213788056109952551104033499112626102139950682710625952611780655649645605854128050252832576104511780811545203293600577290759390536284929945240062530207137671539548141442166337915699085515940277976032902951261180868841649455668114724688792242719341592348613981806269417033522740671091374535700330632341298968230068051393018799416847396771114075437336615427065824694338687301776905497089539154580369612091301066929646270050036953939132041675425849341988756353036315875508394747888544463658336519972059630129802656280779990470444175886372824935033846604803401532789267023866201391464201796083185543009713559310017234340004299037190414381090472575189195458385893518354025044993483892465231622986987861506473014525954534744062627381743452519653437154550489901431247624801701724568972888200755844760241517082905594809521244994355208868242720224860799202999055864495383562686668869097603403292388367643571074066796827145553216656993761840914129930742728869805358970334657160374659631860309092898124556096579624471115688672846445794726284385487521237519502612357403284756108698617611645214947335346690936838494149735351991414962464962942025721029279360364709156758329083331077208104002082897764586037307520633860410164370899216497772062430978297977774276318357567005671700583603749920262750392991923067420295305216122708901796428314944454733230364549125416688804064901476419835523904520665551156268543002622402495786987743321368913811580903912213137830218980231101501104826873797543228338013057839844623691075619827277558868007897093972440386232730200148669746235139078121966672626799713494537522709721476089214390983759850168793283063360229369652449844160713326834671850094096940528577805730601050933218647312468272544952451881866140078322167151847525636807622320092340999645404540236700906775910172780290334757921903091408429752879145216601817510756386523733283816577476583025150412442790870772963232631177390670793416612254909836415808601966408857619269146902259937412766508557722197972457599633351902834849970036031183834908989601597147267498827965334741857572909537151539588705997320858515027197460514560852466795876464539600687991010328936203244514770590372329496684205180567917466621882820492814763846072096913842432576607745724125526064799652605965109375683866479532081780912796616844819195064017973178055500716818562212707608350178663952568119636959666909886458922452419239583763042732111745536486222653778980567504578247815312568063210782978216003508890812448708717776763043897244816288200288206481703583077945106329795526660668249940216271331165156383796314620033285208279817130745566066737090578302142593393377878087141902426466124296952608108815019814804262199687155985030506356001727597540522060634845819874821704513222988081431057097932000896364413022088290901717545874974135745892824422509124816457540825516591245935561534267001774075777267287231153538112687437243077559867990795195117255337468619603355742327670493954277714997743499912103196213620036633345734845436107431824183289079037481141520330474462026928939831575149790858329878299418345183205321380707717208753997183456756757170064684307687734015771494436219356377163097729093130121511171975737230551489709842824525463626833527861272440718325293935862497523663251761636473603552979650426235720900604957949562227833997330615154579010892650880679082560828764954775069922080096477248533776807172065903129393423357260109064748023165681474009306255197191745420762807795992180733788248444092245284612690844246850217489553287145098551884644766357756461951964839306288864291846006933068849627441865290472884807105819885232024246230496786041367005988425669646632658422727788342754317014918592139033976484157793240806108778205836501519270289972262726498467889164541043884564921332091199341815052390030565106427451584033767316192528837636142202912996698760522241985703776256898982253532104300261512730832490217207911542560001434535338543973966743227728715608993457037370140252959469867656519928075715724124507665803155260029914083846485981725630064298010091408717310766278180390135578552745944709794556951244699985317773647433189565109177476953457911759747414181570406937987525093203910453643036050921714413929785380964399978311257580341614636122695034530776777549444821336932644238674318712447370135154063169255753943034472293210067103200405643923510473663397521374610907053198160199166698445077337277079590706481980438768082372580084111767260480139529516021206222554869513796856547130777708098042951310723494458007067817971863084105198470301165530192490017189686412269012113981846977857189571125728762253822772224299434863221401420897865634191769294128341276857721974255919850690618067801352296448827160329609051893033921404268557937763957785843238339223278471554870092292181797157064910569750913255873554007081583113470327363866059334135789072059560775513877161289526168113236801401629668681465535608043126253048942826624172923652391651730321896524603090507939256965143445682047252864108388471910787039787403357953513924935442753482179737829183382932727976565937831803593692195742761431142450670921642873122719219614185237693047539650579809233362289824645823387124279870017299347452314343742539149200171114690654533031558937737009425607154521502718187559385480547728582952914717542091914681140823625246835997774135580529492956876658053133153013039857439924547181354582021466381994876447994804216091788054907675073191022806215252828857769910915826342064153769378416717205823977682986829555232296429572265770028181487162161252887600473322498973355774436599852116325045737110836728906436192760395792143125627723402663192966846803387551256068418668845218451692629494830299314313241261529440280956511336947414068198863162225389143272866019122892692611089676941383667071597089983542624999617133713982140088572245056048190529965566242272889170664783945812930862714766306973353120989673373061933043552523051561110316254290316288421477793492199204035333107538229716407023611908728000568684383936680243050031405390270609191090056459528955145708755352599891883112322822806653069085925611130096051424753661652691560155520877933851614628080603252493879817138174904814823133354790555649649687637202679708471188401823258551574544848835420438275941886981121259392064799369449752905728062966967383610486312774843649723589379402684262813121582297449276071151539551921999867126098356799620544983793699390705935467531179496650604398115949485764290516058270036150461758163293807046947707297545498412954495713891035198585887178176589977166363476584067234659991460791386184608056857648404302093701941611242466490897223976111515555680572387459428226955709300113371551991443043705802584306171049366798363945447302930979166120705083252629797908844109390803624270168594498785486037384212884694661639506162939309297574902188027766354907192070033698456530751678591015908792587186369525787300238090739016192938802140474594607041872544116302714158257845014264392769221733455917588102076147773952292286937132348390472740021617040723356992677699150907061480695306795694969127255327006040516220623273380253921484888193479535906226895271109252923658736161803650262951475678781626678133791419523124621787402614717830152658641716744338362159001829647277872866615682316416759341953409820241883030330458521224720226842006232895988556202903221243430427407553023777148565258148643585116271812199017673827785943269080422360990961552314915124122759643439478328802285696035961455944283676184882666917134228959578647960593590265171070612943701726610021152865157830770157134968507464395070526269900393038938163531888633837161113469078683488347505958083052371697095176027764038799180695274714870016670208099441831372287175791767989007530233212613035297978527852062055949718837324114577889229870730629555477176302934506410711226641593021419739449160752843758717277309805172192105459006065189675555651212207112931939427985355528142491476499507899062815985328714406924023311225977836088840164816758264728151426348568132150102604506046430780884940871491140847739291131862068579245672867560517351885041726826502998522242745695449950996356109810937166343203636242432365022411545289445692656495957226715593879815059703193212205114086574743035354189102836100138871377911145250610062651205537570852732352124553729357158731306601794159900266694068633918104962274379822904175567124572823154630789487955543555595081679209323831948267350644204014672901888065288284888184324078118538586550585926157416011784564790810565073660960075947828456541705408483299998055111323334660904399227453340463427756487375270553257114249125921933804856919123497077241815634811745492326351013289959101567316860804595786446309694866207003116642732971027165438799625172989257083418757408107047681299832619646535430200031795187229180425654260538302019824350258823105272096549985933364788646320746469354082398313581033807652683020265266276751561400839183482336856568437107475698937903628885682224794339397379586595250739187413216998387529093723626097333187160459981074421300672687385463956059215470641900203756485101295283929989623559619741243644351144180070983665137860164878579238558485879098347435654751793259777850704401763561717821291840962734523461031117242553903902022613292687568861012956371562531578345928092374767621711618372190887514545462512937444494840709863872784888953499235598534792270324497451109219888497381254831504803763224456007187495421345964180627509770996348671328394005400812620247437713393990155005430679992758023246621840656865533839968426729632597556830131470383296077483496050120870225160394951586780045269493374036730432471557949921614002049181165857203885095533639438661542695987183057723952125540073657754433043830620687733672342527805810394769511208943879706439667667971206043993746110930606378655823164228186425823936140522275376537934449286003370311747723443356094315223114508575796036854669753653553971925525370276600695432038325452394037202567704806700875121360168549579591689230558422212956964874222772816473119111195303379395591060418920370962886297562474295385781201047950989854170872831471342234794219817837913592419822364905743040071650705108979840194516610723391651479399747267182211616533792351993512438758003551713790328658563573513276893545880142816712806695515979734795752921421754272984412028710776865091000912150449042294631438428818635215610198867061076781615933685828385297900105173143534756142680241440342283484675421622162491727958207531799779204247620543259942950149068074181809637115688175088538223399272134354813589450096459943006061146958908202393499786210870468647497756537009241282873922167324431782339491334089832112908518513746209077277541752113785648510121704005005835332189443246619108395549705905735826470212510726861591819618406644145459553082484320003754893398450334220882983337057147252338976260953316858759120530525582234235399005059334143539666064540556981852265231232585234406353159336458077061017554743464141858126272320957418723434841680256472462305658489931938869700769747019819457853954931337184188860916221180038376747589517261986805920444254389961865639652882765250943116863683304829475107887353513517368048938059723886465598951143439421632433817495181067363960740687940607484307689588204383015557206583869827939299435144367722089158390190619207573587347272771720366103033264044565146108551645290765699381499007372089338057469023516025309875448123624258564217870574238302085548431580874388272670287327708205624323631318973915362619107488701193919958643638658300295585749070984882216659284412399926454965482930031695502271948261872631144312658923883139265167218713099694451022447964708832556684303534232948439176573856229586878521906105281687345601711735981783630396470116842990574252205915687684570246362855150004055845985906133651875411991150138416033792839305054423497525247919106864639524909726467963704361885006344198100911835670785098972056567348951544174455003800007479691797658158454964127447462384733141811414002145644838057478803033465578965428673418649195026519024183396455009543200717805412037727484954907803770088462034595855650455049328599461322605735889304179961958356018602680971124259304528003241931059186194030993448733786814668749437030329815756887490902144269529987753818289345794270785724319561779133982653347649907666094512797847097924435594695650306800094907811127775908327910288005952253309581611931653643142280889483816373057113322040867683304385868348240618094905071657025146246574463231772844580962815962794259307674582158776708584398122654512715353261685910041252465038461319689626862215468239280406982357254108503322591559519062040646659590898618013766977444320715813362595206286462566353882555835992054026459865634482965814534799461671326167298320134172782856155789195381860546070407334276570549437330298485458696334711973666815728002574823668776115426427731222432417138807257227050122626331185763877215807431040113883822288391711287501939744639646279052266548989548230693986665956960417191516334462268245082139811457205487614207914691891602213537396453707239208563155745909735645387205556010326721653278742006012868309450778896379936037068414879667945935866446472525128636632892964629420257208858713328975408116166471487529775013665900018940229008037614668964295232960261954807626190465638586217611345797623451720988136259604000577638720381954858987498549173987288451163998626716682342622745712270492724119609813179283734381727443646216911064764429355595015594829258761040419231118136416033103879725866568157794144388117542938201985070323339072163226759667291263309581789531428770300674317029484264584370328252341581824719445228704593535953162673560231713477623159777260325005949595934727602327451812175602153092665095136922059376800483796699657029981642717267284895535094258850879431020392059675831607255512493829902485759831811901037304372033238440243977764939454584818650671378985272377386378561548369024187487200727144418752798953570979368248441115249732175107389779412254566656498154504269342423956134539871904541691853884939393166531185690213236361512452047326933955979679225453211023161164589428775578237743132529249912107461934597629593207905575159586731290262171594104356605492599150326243575950310342118148127289440700080154673667624452373245850656415698467150448663239486948230538561056694295764541227310997068077928843196782473235539260897299668380276732703679843554035108134065392608355870794345757088444019153193099199384012496650382555300541116581703427785088949054838751643029996873172475357647922708065226537151052795255326414253445940299783427410726863814380226943018848539953214477365185029955175015531628463972679341559140797217021530472597061768203991731597975036311052142954435465141028543802377246469201935742533072292850948112113061250611175055879847136344584116348579003301976701072849921237262572485509859027447237328737645697831325503389045525855256849790251972896561966523696686754990787949210846248791852847620590558123896898770465976353242778542065491539726613092890289526512000050176830287116937911988003315673212719390414727984305668362983332395021965974420333668418839542606366104993116725029755157333596991311175945294600420596814251308165142461567836595574963399972551717945820556313974858878721317447425796007640615845756593403321509628079697154294135656401116645863894905123529830447585798697852887586242519516557278160038353009673764557455269811813949861686533115533607325389562806179443483576369964634734230973366490829795310497731790123392542015567017179219019151537018186631849232473445672363404165147781282494806188930070242675787706535110351051031502732203025944455809120196525024955887145398186453419966430521412753702912650038135849629326030474934903844334889289376153606352117506489543508599310112252138159866574953967386313316642050521042538685083885772989634067343950909305805224910337810749470519787495417564878546449790335034339876722120757722425304812263837190024056594512854994160724009126991709237956204915938838780351770979900987166436050905646472053632132118173802247695858046813234895281047226685255484374772090785265191895641957261912308257304798272312499287895233713265740099334408707667445176161935149370568102951332795891886539452198590187247867724456018759819320071403313173490974337432590539181526910295233507597965366252601786076696257263470600992929303321227632493168785266475102072125971935314225237373760635643248134859562431929474909850420400829403256622781748238666089187810894141120826736734678331275248407053972306418897193928942976270119721581886340629003281620512469132301515258302535897725549540318453585380781074703693650009509276266747341032846658666494477131769544680729516129152483829513153154230583580676162840946727559260857369882868091306342784144148745894606870350113490333500799159249107472812218612773428258645187725606378861723447866441519235712556726025765692239425392008038644683039484353034536938191488399075745454139388153623228523806570536345649708993356762103571912329675377957512652074786430120626977958333004463566366536405557555440417649289316569516596484489990781489404786456484754065886477199992662376644194230872247286481155667775640492768338990239461295116177711366367944651170133900041852382806626308862530883723942696112296236471696796568300310863922574227340286121126372641381229537261083392725635507183401847448684535646736742718441356417390598575105016432105367865789759335775630260294537622358267327980880876388838170024513783833327958211644776660678717445922494013385190117181998982887799960112945983101638429584364612753566342815329868591689604179494606668666985917572914883866564533376165063308249714920002516138075891162386629330580669382240988064707043893564500375275202840495859718904719460993617588115081521491070492651985837944508729261176228015492426966046981997916288770719876060551039860034820146060346837612710902220675677842634801752313454254034162571503842637378726569718445862391746150373074131056759531392528492265255983023441142133120425903893718914803213354463524040908015776251482907842999043609260666034366895589729946945369770831942352065883236092895138131655783929514086875896760295563895438091854164242354695506485407951423556439601172465758130946066461504011833285169030665492195856275647299974726467806150430241048237297475187201781450385998572527351099541898241659850637443117400108839847639608359560378367849199961109400555021391375782858669495985394676320295483121155164985879404046941774264969699753392067683098422828342330790407654886874205359762464732213229301426807739942767723188326757949557483539369050914564047619711698727159469620241579287393716152136376236794873047093798995059069904852129062086227342760310441625116072594178614019665198139408725502811728152322540449451183194929766867729882872951593500978136289546353676041114565171936664911421866525389769843682167869666578542386326061784032439478352426164915780219136404670485325859351044799535616899366476633358855103805015763433288575036975067681284112886341874400683239040235784716358790460175878245481407242753970769835383610019932027007440262601582424757386307095630750498763020210595511303313323873716823673356496434790031897735438657460733030722986400316614333738742141872805292365432363224898290729447347943988295124008899833870136761198212765469117852262198017328682369176082487049925063874706893665186539740346544941308188562381598357268645413127012889391591891106166427202043735024616632791378496365414008235118424374992803924858065810730871675626548342168986861778095513726062149531663891150328140962761109809793966709696723024899738390124634507689176764971439185826704008954445984540312491330709140683382418880240453032503164223591983977310857106048094563751601071084938930134706496155454758945747873312620079714762462237704893152894705510068407324750930518492281233072763419974822772866141760179607343770523681011678982524644174958578674131801336099189637026746604128167184991553158783288597640228224078206875786772694949097472180164577107748349738882021017242158209998895143973013824074733170183486303868682226019179689529460747045451385300035616050453504368116238522757684200453478448237868112556166208262076118591465433331797104121653707905567008893572414928787763559918208010896654796147200415054922430163768841734982702616939539937566414032694049927470134763154780936284093152066743453221671741148606533127491750686964929620044199659039919909173896502141529266362733762311012459403064696327829704468854697498329509026748948510480751325111016684918334682949231389486967776795547275761580117184872472405173282546761008909238789196736101232185557101660810004038375217125311985161575618661363005911277175588591201642229880503531134810116283774851071642684056318165899132566087613033442150578780113150673251455712831447946505338250560846621105651207101865666845271479843256735520698490710631329424786014022391913501947275313269654124110836384931369211289768183222355289372433458012099124356219457587243880667477565318142178035820422319728294808834006735268315950773510505828255543629245696809249307815310397496473265243001371072814319708044335144620835350743120174845975096792421950057460318144130401913494794506820170253281725648259030366306339477135819684753530557332153724514598258899312733824893460228839726660755281831611743145797577328483395209457957043004976151821314285485499031205934022749665517828432254035364603185743474469977434634849258466559693561108897084042175299710970807880931858757887007738852611236216718871016758460010355791744381725601662661398982195108796487495646975783722048303947045239819359118137163564958145781286097502079701057797357213395740063657284627221483355325460125112007465046504962748218014580493703432681634294632507629102278714278818754932049494863612293225072315543780173511764434221564918582261400409655211686812026513002659081597428941809813549602064205097620420030567572079684996349605105435824180274163416712133043201298735331361449309188472554798129941711672836861277887861600922691699030774321254194183597748052814846203937172879390962625215165754030741074189630924704306810770348260182292347733924486158248358041069944380992105942170100220200562988465241001594419380414775618061850574884740719469195226642281481195775413089969869868422389871555619804438574206377553696449161457298271676170168595886133608299530057351549258245885941192171668429716266353022839151311735757390891184956766368576253550706408118755412955266267189833810426645323268632614399212335275757035084474577485391849177791895494725498468392562163441350459556919117777781590602107287670629437507595405853024141200004855047456787071967065790378779796662064330594587352704623590321012233184531068100542823518682241750606777364184969184242100500407510659362443349967096340395198891993758602738924874482500428734507849632126112789291220463502585263148064926721728327788667123786183352047003166890306074140087185671480858609268962942267573604221897137485836367819234781060520539485095052470194847487820778035666778792045086889764006952333114071224108785587964281914506083176006003952303853683098281694328364193524510727387951684937570732092093535359834534824998120510905952346912526078892302680817973060694442864966488598764535271248909199975953623530886532165448100596291201692888178841607798646630281333009414336408826823173871954407105574267831579940573028135355962053548310605648057619673801403198303779435723255197280895989046490938259099115921191596593092427005039010054774924532292511600239996840015536995657214172265813282914696325610188443810884166773572026977254234555636951422497148370131821995472163451367898841210068944516550680960146513336634696029799384687176288511165375328316091683379566728173254566210489792193416392284722142331380627837856890633716185121197228084065345499003105841012315029252071505165026157770049478707506075982012435205282087606980342660199467498361411438928621162983813620077448932438183213976058682664877521824323988901518006164138622144591442807513513004260078981840800591876277019998761694616912797677627868961343280343976606116790467493983813106998155594140662499713748990582868892918543863501782653929942659325464035943437663572020005455081414680503244537139555526771240729192222323842185152294751374365087241984552021548789614068730542711161706616231742559049160776513136689304676716076820775210631159899199570429026310046533654189526110622737006264335588257309402564421690416757200281202781774321874512074536902565463737609000079107196252524280927369046186954785281488651000801966044439780960793088499182548774583615424769750726559908850999190864285925944632133375739585402084733552375454936130808133041232199575936866148473976834126162398186278885815133004463404509224770193248959118893649447032139896069116511265715056792485511517554619495703940888322115732778280414586764164646734377738647736882436710909589763213686039226772521909088820772377237197467148428572810040556173833994418466241011067379323532892204732104596614406852615813896397077002441903594957756434348583510734140602022349793153492139470960190210215449976415510415642192640534002569869088055755592792554258465383253088981120027607543821789641327642422607883536951402440681495894622459690299557462542426075390134612921644548530696853819048902866368744178619065199361714889312195694352167588805748165701327243888838817554598323931046111834903260656694712632021699046689853938845030163026061535302660536302514776599886752114077084708231864371572985657299688138086963682311416321688726547618905965160434497513389043045644140068419167880494789534872463096851071060752930598351431349402005492822746822754285063251817106626188631208626035284145485870862233884941634235010145926770945261772988180526080546306967052018289555762562668827332026133885514751332979559739026112291039055675713189509145852418194398830122904862440071042585385368902713404357359720019743089261494259683730597477371904052924282313638450483708993800188914581529194756384356609253520441413744145248154918970556365124950628838279013103815092263325647908474872392868174225982833545570597481639981447395987043806554429924412321849090534769755504898390460590534290313396489986570588201292480539585340264719850427613089269867743135388321318691328741382586075783002409815689718237439183053027756418113887194006765516530984038210666233688315801877076561121260527592977584385386696836055028725812391348077821156395091788932525745753245357366476498528500222219635039198348445036452697693041901553302627756017053056726864506243361196762908551707449273865373162799259533942853877929319022245247289733263865893979749873061723733635331628237209740276323494924625399247804393153214954858737267130496245076043071454970930080203774660331002446386848942234668731651880244204216202639482496444964363888134000868815521225911032505756656529909165855965825501650619608535833132782151806199421796796996192601102337489027173507762649367431306071276173165165067753626708429529281635645516339760232835243277065012265136396001456465393157878714076513269836290331143982401387929113515491851715276411096218477793740202725604406645504771056183943468488497861415506925218116723140809550102344124777525825352278065921891874103068421091231691687504956567161673679046734355359842631934673521273207871211977236831218952340714571501081012823617274841758142384625191864150598869226170675761540223972741431475516747691714886792823127428594365184793673161484074685491811582736501568000335883155169202493218933380849237168732179177202575297277929558687264291240759714357608804788867495695654598974601777320982075716844591149987175475676769486198339298294236270892769983687371327532012667416448191082783785956731151431454940237030602372629324894761269598517731329090518999269692253200637627014826438124059410526098318436322634788529650375410180853929176643569119322033027837396974020631028901145850554259954009184599133510296544381286332383907552587553213663866828248715585798036885212178154634960367217474249555870659244539128246683433575231442432472935518059938176541164639725677324390790730321488022912988307211528924033152800073853053279954124232379848319980458983861226908810122205683551909150307877267711216980652852844017101392969267276347079762805248024018963068912891145484847479574712852096571139753532235640410278086853484341914888415942288047681161750940663758112786505607233802330591037146371786348350925726534427497907723568927784105818086578842127300636542831083883198613263799721089561877222714711351084785336704366866905402549740477817348767482092908560111253867029351859564362393487231508318049226916392499333605968163849365935092751248760147656894703408311128287995840747265254001827480322649863181972050864112772272484010347013666893072120975051245774110327332508580229918220491476428258556055235358658066633826147825679429203152783058459880752113966683256380658529687019677148336453987590483658392015377408231468898176197958610767657958120914834360397588809272636868170553274193220066760707372918564778389668087589237319882400626623194159287376300685914309504177201590713711193427000234546392449704535017494622202062886216173599737958167891904275071849975917905173461911915999334953657083567144090196089596934268359345751663844180516414373541828400250509603648918397649496319683416714250504635205288185034180875080355866849415195650700461573511893045251085850519345293721651965036111132911066865131187907995419009982348120821371442851960419755027950615458224536005185458382621512980117563769294406970699658216670828595167418665257103910110136133989296145584060933424121686266440406832884301900433564184598934470778326873184893519218045379320513420261257080157276770344522643303777071849847919552507174225380796557424530276692007484047026430918129684694755780009356433498197693334157055416104695886735974544652470227094030245823826489621007697652478295609286706603712489978728122252671631307014302973525158092151394142405240166360106057064526859610049882275623411439111562056867369535519758759180795184735093543976423874495482126538089557121491519571193868912262441673792189961326250854866279035289099336359009355298407534794282372771764566885289341683496909522857944045948355114341999786591188106030446632689889555533837091744238515183992903603619535729928176920220772483325396448144282229953229617598009259061549643816028554018057364553656153539108524647516254097649729274607965329887887277446857627389474768468771630311070450518694690101352921840246458861637961859273123471846836121017455383807465400087888128629332666708815344636606394932280762362751470072177226476496735529983312256019025242115474925332951711145186161990432009142607291802709709274725411647284522306828017043876722516792195226199831109065125914658192374384669403261475126605243193136943698774520335113233617856289923297523008029511165597697747869226220316827169071541451717579136466444626161581528966235752746371419011209738720358740203839679709479445575758116283273816318631685284276008103774324722722730948876041795787051744300594218187864090492661401670761432800653845349205429305038990912667261241526798765137220806824819587211308012227671133468624558469401582585068936075727991533605639203554894683070964816847070023437489646824456760649210861709965961715917234365488255925590053615334291327279459553564627079894466345409546892790892205708405134405385850201826297337170297465115481815655326974744740826100766785921862474768386669623183976477703699356597840639980827061602387875275343663840058367582319199419421976989718250872427674052063446606176820259451598975178584003926053412038070771098053193309644450348374569832806915819977071204854698921983602940090363025449314689311154234734200190285223298661941147674858359449661355865164897554669154237932238202814358153490904261482043690724015722352461551559730709441751430658685289781768963256310343127555463389789065143642180589461565413440560284663407863389222281669032764898310307231520981286804942702045335686437785481440663564501628667423051462552679849447707639612783327970523869535317328348146714757592921474086489229408358206976205946580921702339128191654392450822116618848750448935897073097542948256435683777307652873294892300630115185425244822735112254074640893863308118952053679993225918414358058102660762256704717858494513835972363739580952541064073927329091743111218959780804822668401747950637835547901520855896728672055644135663367879822236889405620207409242822095161246995619601549142068796864293498009121056623638653091552901589052278831754166949934495140071846534597504028804691134285701969739935089393403751702884563952689455164533094643596396975028533434402966082649910809571861519850701388203705832917425999008075781612725595958634783024567064335527718897716881537241275026830240209705125686938476849007229071788585293430686363291553677805878667597283447932849698425142248245881811819558491294270240414162880587311869823668233971057651388653617428414395550286300581655147804193718086015615205934371836865730289970477343927078404367511460195546596578888710573026208660423490460937919085151809820345044940593330875662732909454692140344207147877275115652728439820301725128351138848063387225869853148253794337771091990522536541966859950818338387021616244001978501951493990974259971692359635276145476098681710285938870530060345453107861435169575237102417108273667534975563964417978534791045368455731518344737262019966882907302254772146999802688494497418769922252756146790745551775125624176054165765361021976661715369008768114807195518947925083270288263902522865324321856244932541447372763724185576528157204043957813500598654455443614175744158269892104330274930663159594091400858101936144252808174250550226175148366105164713729777339441540101797173990933210080782817422000090098818359156345849949799993382658396604028855187300227786309734816710648393166103936048109695725006376057433627716543465023504978777720260451300237061479714673063133288748088470415380773631763856906036959277493559731511335457061796369305439638246585964538978773331243056009684023740625752786713086631555425034553306736817318472187549190510411252710177933273966562752979976557744785434207998407852569265128668524414781342652351303521488731447682737580831052057745821701047266267856603466721995635249441800737964378530932594929002323686190249110230121557521314856869025214330885903673214568805318465508151661963512971826894906499663297797308705084301237552928520968221309880527002143867109026249218483989899359127569984868541650292555818068689926157074737947652823627777209732960785249290694140184562333485440578886380978582744954161037915042148074024907927988235899646982464301485592085464221702746193372916619378251314567215073851300575348249797539137620171982896779969109894452563506167300951187438902051364015293079723892012272090357456699426830642979131702971602028503493445325432875443690113533649038471363591009157165072377790427680357484531336606558380426940703744549395189043016770129657640713423146899422191586658924506871002034331623821813295516194442985233664718621942260293728513995192611263277974665223743271924701506021976497500093114153462941147809575603715562921858856381725038821550902751509543908054349786425156579646463652906375071328134204525388714132881655031460665760877794367883409374809887130450682229008606947584078337112203228608465505326645000062061436702909063682047874348713562620282682138593679822258019516625416872933516139887402678735673101146163374362055708455692891140084440904234735132480576859317159063713854728397149776954311708213688927061047068823569760745253488507448706548293473378950338030571392415259861037860094792860191899886760814236711876257797647892929232720399759548064424503727332675212284190070316810079828983975399678468168106793709186050838354178149761736279477420377034743306392883820537919022701128274715771411455270840456129127510286194080182033376163739361096431801610850342902586842367390975690695265135844870782448381530194509109137984240041168649546879827204825984082900678053413139532525248559822125316167552557424473788273697662943028212918557400589754433401566865175933752319974468515072090445108649092932159750958014603858636117655951959905575426455823481833461663623416675073487219799810374176682672569316536905057576945084681866465636644719393251473713926555078946346987680367349947161707276888862217368504967599676261896524866000710933891768748718800811840274886345870827905853962216003313569555088055951846294874820732432282915422418171701369507865582538373724170361999255996329673379313840598159548443796142883283246686950634545539083248503098138789273256718127130741656842607208875656496891248220758928734641653811280587572628082939054453574469135291775988377567212547495618158436000410445968785038192391703962185590215518930392563812848929157047532290242052540174281611419585958513110858663017760985691538128178610354355744954665250022786965538110119815993666331295217277816304823567156361770833295147159665894078904899845366760289334981696661424878746276645477996516112171672962906487261039404731118225690163287469468531655696300322739249803594319107710367378891009767627143111076043908559390487821324906796100592691811910401299567712473987980848294510658062058167841503454506967317965218479393988596410387722511441127921534708450001877722225121659259046703964704917978757949183802307174593129170595932203913914293419349583343015358128308746241820463306753833060091268348136637571666530186638161411252034190488792369232822048543814312923514934494995863410253097200519420082169375217360073335026291419059256614553652084401616001270152490149561293376636993335121746936157173895222968544957406206778598470094908836884008218897115445373290685167303403267578570361859572541922022774831254762616734724167084396180527959128933007776695949220672198679146670033225946535823426522497130630027500640335832021304818393446179705107700451143849577732844249619247159792715187520026797211003098648968790648768244043555030537534543939517967555841022192127343556684779733385563529792862039022636148572303063072039592009518063897227415648967578680191139566697500399771565693935415560105771952204039416012666775100075369041083286965175775026285664823712164375916185863452634076810322692970684929927029349926039233321735447226171415636110609705131092929945235580710909344452821300727365030002435247429554094617732833217230315216126374881765631561787163507779967705732633514550441493645628660661309876836250387833645759171932848607886297589018133037166711126524441659795341362195298665968023251290106096857799276450258836680480934519168650695406076335539726240049822689904532890938492500477502221291613050346701653724199330926232172625835025500593640849594826932087935009947046125961376827451607145538423053741022229652090798314405081346726278079104964121976359156239792534983644661724929373780356730414505522826422211637410514028387619558684333810959997451060330975001229213181942594615748678366639326862448439721536533195554123967506474009799067741290093862638561404919592292859398106689573500938268040758217249729452677661700603822688165667669099597466697621205556635897599305679662634761320037686231186702413153439374189884473441447392005008636663180864485161922683234762252711596678935882136102767788347543738033406524189326125689434552540234236564861746965629402370651461092011497804970344367652399267655573047415794146631285879887092395800941308836978445524806651921948142357412189615176515844371712314058713605394675579017190790975567633445110573647690105008147459695037780190413720662520898535519847163786108829819504367415108841401462764811739685046632696343819015693028431057256449698045166922653312065399646120679315705656328324182319715826792166676138921689075640741137706580976761392540223488435961626284383217807323178997641514569337023757861156433196800663515631439460399996003968821870696126707804972237516507160726405225246316427779674178574272613603929061096491612027254468099373865574852086630665509647797485465407352594907120331906841964101136682391346421457295447260897232266115991912824122376125786488161321887378333070320301417897003214666534523234891696722404366128110601784801185825778353363804248217474878592966157387519185409020140204265978311332682593109119400228615704146034724612978233636372288070507093034442392137545229208730387663113845025526023385164840045278029236749025119209408635389572044479924063573203642494230191743457285917238999376715869235149893694259205160249756692935725272569768776325986567849721523896158110227150804368294202305584343854841855545145047722755528046078128489380605709598840910134900564789309836921211469485480649260590668570667378343449274580905351677106539325044580786491081790954144124753725943243818611021358896723470668647608400314490023011485624796585398766099664241692109087770694360575632201738842765494541248690749831411034319761809434831207211544500534877553844314856876758556504130680244639271704139200361710059539119347587245804712989173801703654071223403661771064314085224823926266280100578509791816736754736051403767955061548749321415213756315854623925999831261208438553208152148140937408902579708219685456556691600304327658431059256215308292831961420712644815094438170902804542922439727023124336846583921268435263532257788644403195357198651567173205050210816504236372189840691638988545298836727956791423279759143803904990044288096868278250094653206825333564131229248576628808329828005150071386111266309715534681712246608782697855432851499143000093620648800109702507292211353073372381877005472684534364638167168488791517718279364932582790111441867911966140021583997778433087595166815690997145727878649863273487173409194921726186371154358982212093656600244462017903108522663207230477894162693407645978401532887369684552742899924915849775517215609009751670722296359301646698312175560367688137433007666570275624935313741278898836749473466447065896275270739140958492736846273628940857061335674303823472204209157157087869694878709502204634271645509649357701611757359373602726390038495422865752412468682561215950134317166372869034915018290444935679654884545875284679639023916538919068770167101250102470514045444656165326211403829116469441146710284818141173526596843568920350815937888370218237787340603025091160224282827086952702692090436454872991061842398310838527900636347930354411221854735249648982567104703590523746716619585301337944179266648622161126493516771659505126030836390200859764515661826698809426773317233242327221471417212124297386257752515662370179618525881608544818148675099811446175765013824143797771142684208083077161991543547941115935077022407358291891022882026081091010822918261243588671532160245389482860079209398092385549866067884781821970456809691889711675507981400334003621701091302198763651762124058460039841603444082177319613874876302445554626417231005272754909515903817914007381112916954871496217719190838698209175062218506322306046063717767973130761021940123393587651487531105453602214785025976367185527526181491491296940930820179194063398563085000220308612785349235693938485174680818290195118406162283408030979410499545177177016727787218984240134217808331035752601608218415406902215854354357588655251859806841018177312455150734072125070266877770777361668474091403072301363898422074964170463113188803699684713492433017440004652411742324913414884579026858059399074439301918665029963717761431379043068589218031915622815758415144977066937872965926654864288890726948021996288719570887209433861372440671036707341880674685338039518996451626746063699508627449727810536380059286878673427126974559924698879225484507828498106469783651616984012275492032886042704099811078864337691372756256377201748162643151336562682387593677522793997473874446986175963852704025890888842471426882783030823847855232916920131824813118109043926732053776023500573812635331940216287095526377761715140729540776454724884000871589109934501611404339463410556724597368994331287215671311003713394075968205553247602159333065121651606372532361767529412606402868504282706216179270968928174605794793413361229118515413923297288319519391779866654347277738597735561782695554295574607041497417040086909154042621252914421024556206758458500883313124828474160921209240432311236374806692762426715006177130301646919442930461087999227104842655078825728279300133135051659715707308644163830226306537305487405360014177256103158866531451033366068063940762650074801763222139369638909593307038927751063618529582789891501113582357113576870722920999797825024910474471433826161258955969982697992772393175067955000323840843955934457146126056111427825596267554135709529309079538269752568702017084785428856246608538445382098745391176545107402593419174115641041513192925056673498837583407480051388489070968286144788265701988177289015172139432452551821777324283737678618747107449326385980853180968474353735536109106622522278809529920333641796871573193368348101500653810172456574386431473116085134358894173445367386562778028811966380055037682752751494673053878273075451983236722503265470890782668699180191798951325005816506657188312658301035391294021812955297532747461517210390687843120259380577646914746658292884227708722093643585501953171340583823435303350324213979507194958163866571288084660275632418437519827458589471625806352170331341464678768838346527382430501500840430491955336330412885058073486985468379607178018273862172903818381737129524999215107983671151503850157381193368145527881507842383681948834734385826305158769019009201736596123676353208259625054683655614592549817011399947318543930695747694781355990725734291381252652407560447160860527941724905077393893927923119844994542888748051220206448941520851091483252294124692747497806136231509120981127521917422889084559411203426161213950980888638488537777804259176960211782251452126118710103739418652132942423141821016366527137276673118859548938785966921338497314078382404211718685537418713972288517003228667841798312356629375271215297131179551957079629392082232167457341051729082037304325093648069082989129256655923971949678463768623279401369605520295752451207255489352496605765104786101525524495977562585024248248734633380740066308420484894246887965388962699955158184748350265821216457109120327485058744568345595674586815525967493990372448281858341851927842131651889424160430178127165946329706597093333254572433245938405419339695708204604746048567164466131355823599445330014816087866594325073219215111331967113981567312518513219591557357310267737392898794096673477139795101320134045962741820431756891272594443283287436188538208870423587618103435777640162089340543388928247344746658090546976729451091727441417561057376752230027336776195861571658354076901554836549033657466265984330871641097372626879753020047292828367751626306451416732733293799054450039137331539961390137336304318619495449545893522390756617561310594737565347961767282525350683331884029063281563703053514734364073575714173923675280722463873707139470498568458012254509384937262291802513405269845626684223993652351477215510443269622562038286780768086436706998710950875866243835963300723165387769992554663172963787111832468536376248713780019930635929747575769708860717799488750176846681385858441329191320416788125835593673944480796556802103769512570952867213874000673988873362001009155218225441644419800571141872279502770377542767016912105914698373217179346352533583175059979438425257565874206010346609239458479640638438812282049617992634413348419722493916240450964547044055007285548248566456482592444472205623317335097079694467969606465334123257458615517481330384889730572860217320733020482653782836256657886811158050871197004405092445793598270541020671466028094435668242545468684701219118494946731052473742866895993093918800884175148444256027880561923561228335929245251254653353991117624307198043989149367759797450647517985284817062783180529245447835603841657573316266714173442831436394710335653459305751128393766022024800771363161797480208218555069445542515894667840772902236241199696957339877493130264467799136205800552454080116662501221468891076035002219340539873381021452768235122064377467988553132153574963914143172756340896096416594542912261716234450087985428722817516798986352012206781467330280811684124188246251750649428385596576848080160084112430994145536161917215385722016136011605325630053559005873135504160490742281855220831070668762028960764762838026022946139409516594296750352009673359318180966415698908805666069057305032686078022568231665259758372457917280592309409319029894319467490881893296483394099374639801198144063186484089622516140482157421365395401383796967959367423903521265695158489035320525877336965962648445767429775182773130165238784954776164682110587200812815305378054318418586803316265007739434365213546016415237447369438149527709133540030253566904879684748600675023759033616470830062980997323905472075579476248312580917027059241383295669808517304886280311060354370749828845710644335620421811152049596528147080990382720925857263608508095604808754396074589868356378818273534271135484496785662862201168933076558246535521371976354972607403224512394610119512866074702834025769957220844277197882417536638648085031383470429379688115911590709765236750339786504318782874551462997618256800056081007111416609812062424386316289666442747690280399223531357589669246541716932951366524800768865697872299785699987089561125039568328231204590966729913472011831766547160334194326938678632972327319426976992967614495246147151913340653714911977033122911765238286811794920766775859287306684273476598987098590275945520604500051967786332785607696394737472386171749431720623433636478843634971534850107072575081771196148363492245149164724762179441465460266435953715641226682216903181001906449150462216499848831427870606862158707476183311220745509969378984098262657969223689624187318577946028412241165632815322864125662542730886092866463475413736990076099151134544952123716475695983886098062177577443561164012668288906227593290958826595670743722643070095347415599784263808356890033726569184149479840363240152366474695196704970587076027785879701501959543236941573174261134260223396844991498182614011206401985872126144110350038860572291120420623101030424861169451527616110238362179350873438714504660858893249236380699389239695616498162372266990411123271545749374823323261233619705989176261324759968693563186167167423882327492524830014722517430424302426704711449324303037896632738102745724485623599333312754274036338396601815711915850725206447956014875245952261162835879730742050454003788112674093029966282316135919363942762741277599845723339624900275904472858605396034151829979772049599367534807870607705791633682189686350946902090919983307491918742796460297294200824435505462529184645678371780288300951792686649392882025156208052975681085608025453499614636829169121394599278969135190683230123386430575649783165356723878329235989681025911916642578414718213052203629737039000550011250799692270317470937663403786727074496622939367060617768250630524956712643051042434800770773266397722959092773337158146833254524949771592536287428424235987130148630019499856228535979991155389866326515281934978564592182754076010402127024212620977344778773729385219431866724296697804043627364222660757111059539788094586486678054880993463708921237144897430464131801515607597860297555678497496092815989650317824101718577039673312677465308865725652631417654618608803292311633306407638681604136864840513487072916054162991280025440210081852727851564560508406337615179909407815781870084051395128646904655937678591722102190756226371637949647681191034203027999341260161585648578754988966171354726083006463945880643947916843391083950710381428519821732131198969682735214663398756198556631945640616144313404816159130933573023563796564377193266215315634730196688801714489960916394855726381345350416023108064893928495951973089720257334044938419583069135020981664204234823899458906416777256991745812195742807399807489870500993183244783041919076723732731812677786748509128741327794370821162164886061858810486385254059639054022118747958561571941425695694167391434189995637871021490278057151851275800413319583983121465486859431482184738323265196236551171272230388430775100367164788550711227260442699662573671709630005875868489439741906218961065351456290902669743160421631629641737131388903364235529590299537076063830719310440944934938514966974948184076369530309938859002936107497512869674131787240141704283855746440777604070210002828413078392920311822390114777151854657501220220727305193462073140492311760621175010314328861367189704061935759705603446312323406582581601381756882580881160490238400909751583044121213961031381665189864375545988142053847411568638606255345938867890616446059323739497020653224069921084591041973701764815393349182495767758746575589679648701496918139577342862848957294234609602920007883577035951375334890873011124738061855390532306387113987427766607726953233965012463734191416493364586277795753051386280354928463917222085234675461764049303187379569712176334980441225151362943068148187278542549037498387541580776923941470129234905891672909093294681037154228095317362408729600753629270290327718567354924603928071814328700983340644057784665064834721416919943399435376173313677466776084213073977199516928245143439557403804354246331582945270014552894535546672147312815819748278212536513869363277690815837459341585472474773031181418338374690755973926536448360957245185151012118296577337644063026385961770336707845263046706758263104799595823806362412041286858412150186091429182266434360753932929786451599164867431273096006553428963975413060698096770806971398891770010381597087295781566565276707679151794351934449271251149700601495424059928020218129549982186237543783305143522152866166388221524360068157475717502737238872938489827235313567910272276709116376275589339378440172976515065261602114199817755069707488331833314990531768918301620870598507773935913684182297859274224919779314457161503298341984646942062861483704374892833028031388788271197245341941138510485158757192324765904237331893779803442645243496651493424513005383943833163570390153792757189347484422444715927410351279892036216630717309628906495943155367755222931675618078172706241128944804369133997570781169685564873488275413001582844178037309867005985901360563106784441442847186561694928319783583758542605300982939749416066950814202439160393709252865904140423833125580568048147439690263099314100212725759419738524323512562870432863906337088877477979960969704779928045329533792237576745453357103413628063968910754565300990296636497115767583359610215623366051539251311862133848243789500734598411243481902428354894581812235543404169499647387651767035541028940055713487592864793854642392184267994057401585361702304110660978452482987587277128066620586121467151330918403531156384378051550119438021475569645865526111022595623241857103589844048731363416410100836832901040006635524021036556444833559364480835292244826184847923660868223246768220944323971961232387707174728389561149360141974168715434121450994131998123009261521596529873398519674194125214528518691473906264948183924456845736162096858974200844974077910292375000521748384069689074087489695793166019631194526195892045862878287437816200439024044962379726348529905337539427144889208760950501896823381637530061589130981363995467040245877866527785001014820592653082124590529659659076264605724665612148869309925013978602604873706598811262276354545077954732671379285469914578273682527596144020362166521153985391596664178528438917558296252584979386819552352677478332243136622353218308208529642094120442306753615538880847552958328714046053730669333489170322825762262001845602383396837054343622973263798230954296072237950132657543616236922706283984162223252908423189346010450203298153988648634685117984763222093197393678157539076870206932735234552329630838511980850083504289103657671976822519497168082340817699117660838100620258854481999048510191358802675339179167233882713102856959654759082183408635649497786058845892323372514888328260648808899524426722720759615220233508039960808651193917158336919319397447629974334737666988692956440347079986945104774865861331243832145072618789485017003817347284453894854425741300659803890707423337225916650543520844465505994800962351059172666727077219215696575493853141092901197322201131099290588017631568590653603138362596027878650527437460038699477091280818853790990336780529347130650542171538005551150057342176729837644014325572044812638573467989094534354783428582178329093859824039170956495741282367598170834123722561260638994740120155533375948970145057895615549282785729927806029931999352159102665471998149052406618776989376674003091641025573364435434443823916289060844887162130250358150763400585975500207548071029590983043525871105412495648300035178096488659294145268145666038728857827930003396326111578051720922787414581503932565827547499109485324714127749142873670294768411659561010970405190254080786510866249730182108600178250546987450113400022741808824876136306406599190882120933786528127610395675390832288098121555114450844395036790286855980244847487429092324534714771614398001542943201359566171863145122457460192171924151293047723017066759391178212480006525562321151950024343258009470496182039693548309070480945467786797830513385456251890111074890367879128087825989085972281767293204532381970399815195066584459821311989621527991291425094661359037171855967174465745512999654241575239815153736220793698292431773720154435973481315020425177124946126091893267099080093463375129074107031368768388038952649615944894881963673502627301181547943609414470147056146955610056154529035837854811940467461243068361140859286805265513330626920846386964505034712535452833900919551139842032180587159976728559833212228184387709942166440625325009255348306988766273326173879197396736022915915460015394262953884875572092734096867690722017255377516413569479182698839908496540435291870594253699517067884925672810671965341614950025769010588673567218584503546183255042594466850810097269715227141000394379426798028441516399403611439852166639207715941114097035513873776414303585384593039223807254727914468546526213384200021052601276728250977019027334001230749932302684440258602370805617662310082788506490693141035227013289745466276133525314290113917335075830726640589670354118621698260949263192612595660083613287349967582399785471142156627099051125251000816866267119890904668214226457365236362569994023537869183964083430492607990564297776204043107217574944853319959131656686720812461899669050404804294278382904200497870262644272924604403938236658771079203114448174555874321419853503557858829425308191869991471064614254383678662741768750812591048169539867940082620782435205493280465421824304441874579326862996000495433904736726816798784758628165062712143303432628626141261206947955460534937558241109407604633768358106321281459002939434950406635300044736450209772964797327243603593423246894807042349382679570034527393345621032478734412260280818069297427317177368406768749999789395916020083620361363697965896491597713575347449035926328302445924882022500789631595301428613573286627461324809279926405831057541913842470794838691086235910124113168927114739521081232080836350589846215785191800110239898484627353550759062361666137862197586183184241918793305848076052868108229270458942372644870785777708639789181616070534035101304494222638385805036231501315878447127713694406227874908119718358464219236990940135171651968882475801866080169005962842604259884269046704262018423816338955728860137655806580358503450964146203759653870955963195251502085442635074565137532945158057593100170820614995417386441932029785873939904600198104573477136997354898373599497746915426793143265047753256693686974654463894217198239923078838136910213586041972581501714042146652948337515486609280855568323614685982336299547143704847791206107992055125602058367801394515508939876075786658914047610851548804703635853095357987213652951773727319768004115786203590837349490797648560378205132971028962644923922056876702341023890062000659722826078474411844143580576325001164975092434111142858389011133372991665611570675705394167646098372595687732080047329633614473672979981602205054766544848843624983616974790916375483918448362449448312644726956511727086125875312118576105877868833278080416674940517633214871540102949360074421909311898527806041088328479862907264069130674609574839120778956544049604389292504210289047064106412705308419391096721962525521333782247810939549598522644248504959603311198300818347047033538064757703441924290750240339135360084447843764179674782095771916019535167617006429139576430445338319580385678793879663970540915315461243368115561724134531768298160429450024068077244369642788154059427631018740746350235118068265449291097109791986985575917552051030282469590897144331362741273324092366805526681152581091344348296084253788105837567070203935965068350880279810141085330921527968590024500943307821502668026341653769022722864331562525720346486426904296397202077691009364698922091536290548157063990797964910102301480536413275189317339161414241024935140270463999040773636940742707841990181888128759425485816012291555888322997476169800634290328566207335823794537847158450718344211103541349185729969338882831078336764322116979863081270076213551588439716405435054097535517713121806742117326471714092654302656566228272511657138812824705987506218568250578537129651049491742058949919652843455504961168140108483335444901787062078761724441696528419805265861013014061263788459123317647431390986556115605343121895366650392087227571031768795116463117057575222664451576797949668968579921445423688443451092204948874412033647816826090017951486589196207075997520235406305770454654609956026706207488585614585228339906614114399208594819706736796284549742508182854517180858270186800032205815061469703897742470970330901292100839615620397855480086363084206909828459370800797125364325367704273805054944386643053266696603426597008916886976555527349518901611042796815139983496309236422056630820261636438659864683114980817948043954354298767156449853819278644178244190088994685728575673209462970359349042728180789165808072965957222618345070511411062487340103554594387549920351984751803096842048357884105304270401421280252721180087265748022830717779127280594146297731723373252186738405397315861859968363094983551693578894095055544048195797048346809296265326828431242466928839265872434379713929945464605913777216877879568507733009732332195001717799947778315399363373938987648289768695096387217969612372079831286718226073388546242413340944128149496661433629228867517834429910372717637887715761745152736088897661656296685624845394795290125694688634640707638655295081817825307345200595553986681285225437691060912594858504489251376683421802240438844785120810107093572427349249005952683767154319306006501208772859984116593526605422169095733827770192562604743514183727482438227222635063308151360345668653549417561933888821428201583516136020871187451730140111129013795591772040450258806466535028891609799878331519449093799169925360708341472205433905191398581570459585551941249657225626435066819910843168379838897224337980935673785201470993725523307920753495061054750516988859849107144748100687807722413585420001956361792648789800097442817849892016300359026646831835252447238972502963765853339302753958479873016866588254282235517059797877808748421099126013204978955800779704085296527001513315462608072410194360423660827434519260547695901097776621488856679208931053135604380806825691756594895260054268981242208267054999679281312353972929166272163353674481302830103383986824317670451709110354718487296868106243215394056661616544038788180987068838021646673444580194005878667632297386449027110055645173450540927927064709905127604737998314580036138104048427660856239995161290361487815736126637074324179124011725015723219500951930783085869292447109106742891015472604082612809066374186826779252690503752569849863237129633404079175341813201970346652066729256005303630461465057504623373168519288796775205949461156522975373984548312587946760079279411194428531404939288333968549050086571203742914312468346616811590138511625410817340466608711457805617389020518949462900226491363681319146237791558727614628952143618944038472976838641431579925170786237959317754962306727285527660669727071412467123137233451509101639364090459796477883252420952012441924697428625181555220780253144928228638087116862009163922527435273162602471958580444561030107989108500587915923076915403291623563915119192673502412472976145118819779121480740913261921260135980891940007570566546282489571635048151801459919554916800425818631366991405577342101137635949027530978218246366577363414536125303876861917698380221970919037190987736083715668167897827885205407090252780775587206059304788535119748026282197415673407769619463091245276172712170620596687427805209563355928552733261610096694621297962789688927274327487718989802503631028144240468135629352255329635237023254089422291824818048015299373150547162290511123851957966331361949362202146246279253336453518973299193738698847692385913039861610418583480350015912939494014388096077246954541222379557965528942727892639284942847605364112544562975106743910996963854205446923008702025186134150187314175785330257992822497852715238898353497885942021265739566626235045866182992662956364493253812891305607086721183975786793599530197322083063327300527321241237361463059707054365410647966344236088931970375079987805571930508669538455504203726396936565643250958319862231446419710146683772533481224371353734668075417097836297486031096200641682773825435398290733015460411881098624166840494319541977164205110158448994927125521889595841033703747812202212154855844189991624505919024887513828167637190744436872424018947900190784523755275879226865555046132236706349159824289806149148653178767889959604130641314060054181386833813676256122384911634780533674420095574501975558581606536030159154330023041528364123537122084746619268405608952434190241925252212394588873709961055331901596573810884211508078105607777732554080997022519899575850935846089783623891510302494540969942923872768430010311454587239965771543425864030921403618844445228585138386316868082314742038919474438582829757895233755736444491854161378111117635400278978475205047102104865217101778390583913961516754402825548987681136023740281961370816821125568050239613893355387864066773316099050564923577711926264400082326010622590942523196893772103217809176867531471923886336079392524202564423812402913243120418648467710675908225106339396461300275372717695568621300470689154900482829057508984539610318737664069309863296801413694083347560252433262381251880905323661593517756153592266256526726141785182198430176977513795338833356677709061111649799926641510782517993983694012353393234238040214969822360883499183066994935403467912073301694218367905787377642453136780380697142249800135048101489269229748787900533325542550446279196024808354677632900537960430159624170020518234878473563685963490577083507340942400470324000303674812539025427186232106911605810086852039437338549698098379011547165518706065636139800912170409066163775847837281451776199676964447623048736307135715901222410118639872259548830437442000709098410879263240458836116764078568431898648509189662226552702879683037105058945910948058993207244538185898864496506106201654263456044257641927680367978629618492815906630924459932731156741389747180722855343787660186810123362743909161176269893703012069406173989880790202749519465042420770079992739431106934080004683965283981426048091293386169751712011325332110001337477552097484883630140832127356965427987733616868394484743720269187394815750172548012230937773581160933400719857584448118779327698457501090131259271235301890927544111793801293699047670511796014638247928411012735678880033145090345661492852521986220216828199756842648536796993366698373183847919182118868158775163315295844420466737549054384089784127234789620869355966834929186402839857760255808406709987176392841170266350125256715525885318147178220753590784202823150380987325494855745124900276364309742374488148680426671992777473473861535453839977110291078795680287183775460721249303471051995494083502405658729300160198126271582626893538795761436444645907844789848252709246349958078078992719818234958765139343180639529184445351251903532438446428649707772687268293551314273109643191102823350136529748235968572131236600640436454229637526039558969474477585939377216714879897740741098701032837956087608383455593637217826203246041657525286650007804231101426640956055861852688315660144873942170736735309838195198697564300969222469791069951867540898345190140988485975677255360461607948923846805605374616634663488303483136159921056807061633417488608493518016978333870883679996248266926122618788812657452771355097897677274279717628169308336727262968975001050188184712373167100451999458853708945187587519210547952614244659710155013187096658378675887845653004569314325734578998517106429699550115253987073849497797089885326150829554897466037301096926331745384801795738061963195863717243870496771727502580756160412067093616248919396873974826897286591547654718407065281971871240469725818619788228241222053534542427262258392730503853823455962494705262376330642616282514387809056982440938915089111969224232731473410978369326024653760850203138062489474606067070121334210566682201483781807925727389473593690775475496025919284946834701536504346382853826602196773967299027183259879917125878673995053663369961184298358619569179622008351181893818071261485742609941619093423567793390398649173482418762273639873655395384819239849468449434583790364372665921334897422891113894872668528389336008222906171603294385477249097593549214200073777359010820792239931957931478045769741150209847652213121521377853795809724948084693331094499109135626488924680922388352261021530610133403508431410459928201586695810535822051057266013891846670944835929978771770217210339435200743245244081598891672208085759792398901893753968417312830568740491557565776886481985349688293169118953413901219918995439145065966609664222213642628273697486020436424370741210041155874200156834866734014023712874967207461939512561224018260122103902712742349135179282257419638573611889370114755064022639700460125904593793128011570015377092565711246961050577528719573982260677591312186139554844336568302263133131842867374475757131876382561657454263568194585660671140317101774365577466780128471819366881916756653350776266582138756731862688681875435346903530030151727907488370468818967739521716518852135561561052457822163795892304096155172916178244684420224334947276856834934685862179370010168203848894236911256663351297909335057789515205882499511072745171663070797156931412793767985765848872231644974273503871543345214818573776144189371808820778372547531082682699280579026923535522698451816890703302897738720562150399419729024307297250374061149636113910014103125393778975534158415234307684447601325384104695899177471415643564924446436587225076578508497904281986937586628131365792680517132327727666035943973704851941964373995359756645885786663942681820914228414095512527980744228703343979562124782904625783656155715347651604505031820194714486116066498039549240128750822973244336020684328716250290091934976368050402655619363981445883860866381153836321317000460508893543763098129207046051931017406192467671648005144645447735631985088232306130505301652675934501383865010175309345792226564846214127299227764597536786165395877852652957898562595553175959386921043216821885645157332321162187659991095935121571094945629946297861432509034831500263342935190683463231090272516563075179804153919209907339659519178671319211468683935685323588018823135064971014840961037192025431674878496911304286754170664671117509448733468535872311042498339589956229307050096208420549129071211627529887731208973472448251064711671700052555901416168440970055590505333081973572347627004823727212971970730281830993086652562461920475949685055732560041166933828842998202841611823919596964497010513360183164214349822464567023851208429575709055660244695903107019983599656923050397739255559442515914644734896555961465851844815530097873173752454206811585837092697895612491579435447300517407440167663064094343317782816166032958379783472894504715607449081125836286187672533485817580378659961813511255291993067631130721834280627642866002225966384622963254264532697630864887117594506480354433969396395585499716164317537639957110873660842554068490518256298821068904575371934065449080474604083985347927755043839467469827272032604380937811448779578716818681510120836818102735518184898585644900453974491328335699020137681103843802741901809037818840687651600623511594678439052612807596770413075661702078222500688261022364931917970790421513339289927369202379763091356854994212272761014353424389466036748751184854262602666542647601699507734368228953308095857786649732223112947953663430102611850636670833605618316462607398582613281111400365573102283673996031376190998437302751076240137217620814308445763489741741000826828456425171441159894659883987734895650496201811167183435951173453208021927317438482912792643741619662656081552063378088603798964917087577177332274943360464521149920914198106368248761135176117039611469705887691201610574255455336187049124514701339212767253233041773334922378045609569168215079370018825189320190315808526503430108893460499486262642054250709011748896020180958695013740270878553784215135778700394650218862112775213104321956017530550999481563766528702169555569364473065428923083188031878703700850251436367041182218115165323254310663663600918620414963337281853341318679449346027096727680765297475713433741789468284968193218158510669992308918610954945790601773017029228871017878311394532065585199528399480650316714490248376082222644918922479607082196964044381907887184802086202905129082542696448454621269454874683185400622863558448553168508329743370916411987992808037472524174698750868169396136177404945368622750720754996131745949913723694012407793239719140348284617283410928028776748279938328282460886204462456839967422568024548120378889990060827694453210732546430074926601575564430077568069450727340187668052187594843448978491742515738223933924880574831528075117324784164526258984281332504806142370232864055829258870177378066687232584208438988223687306361430623607469738853277818651296954170607038644016478473808041139031291191201072483870592083336571425474476490322785202487468011707051491686778752289131585491128094745806189228622812801622008848153459739795976280628748517681208159203411702035681329344726065841715972862665046398027993398247540506792710701356975201207489708151959606067378572793822287847058699295192358326990059831934038641495665849761049692814506073615880497211399492961468782664487393571673746748808058778807771148337463141720133456733614482435775041643761057377829517486293895887170555596781507095178993833363459950517559629790045533176181001063935818102083426119782204914098162957135167277615792078808992609970084821632157805556779873565955197484871901846955082455640822630056318617706189187235896349610611898687251877699970699218697482143409153772850137068991360756403582622878093922917198501853447863220035967986405152473263287794259549073472209941537978681361626352333998323970194984207920216953895246671638235515237551879360493546830496648639004670237736680568860363679806988588234855198490581909038228760339825917255333911651377724311177678593546465107523352762041658973072976324834951179645582459561234799164854130835593994933910200296133933098025370058095374484225983568624116103647622619759677832266207407100644364913287980504230123660668125177692224471137109067261475181246263125959494415334332423879955406847165318933164778577317086150412259383785123538758782258372265360926193425033928553934547402588849527506336470882602478909773508192158860148903403888932144783446550619641599946494809951790877958546913391573852601929831377280558953829648194479444733781584463754257982288662727822813836378699629163813697401201366681104676910677158456370210881321690793316873793998460922307690032090133491534719499695120753042687785565621647897650022614366947136764324174048611348976994550047840111266937337493972616426486729422446715319498774162488323065949797176751009006419703589408490655855740710454138970218908004646577707085826033274096337731109757596764908694535315042010073090327914822496091736467408073542583693855530227419583525454421997498912787841612857300202125601686800982629335905735998989213969545911269725742876833683673430622105859585842767312345078058272929983992409621855114823078021724478112438564069710341802172738656154275921253387604133423316306713601451295854396915915728496833624095659749484236806571971938392246954006763611281046942974801297145131837196627271877180109103469881969983370372062534938576018938806760854615344639209818878510191073646597703073895953680632827085395169243041219134387087156388583765601223865456124563704125892319440182859989748379890327288018101346853134990694900539636743134912066930060056550400703976197222499641186252531555901475331002104350834796471259745929457767959096099611901468558189092002005732219076784362145779604436521433880581280156025677049937749954319742636543056403127968229529266824619705909877719375347135705009944012355273570774985970398458458834267876961234263888703903028360330219004741536556730381678887607611287410351644369467864326017150774478351421379586260894091631765554057276673471354242160887725998299815904969132603841895676179801381373715089673322659957462501583824797029306440359820604177109749314420750787264479929992722035285744003283081059122850618729950696617097035515745242003405201985003268323298771288372093890519532188402684205557050119929799002568474492344563031137964882588808431349407913993130250919611377886044533578467544155808677246751981364149459814667046612020282073505364121390097920436406136146807251250968216457828720293694697180060955825241419606194978650493903943743527270514494567138723243797781801355214034870195358422172988759149405825953657760029076257391006101355926039227427492370435847753867122651810293007650590793971981530889988897767833289524874203745314386935425787774478266037737837951226607381772347680239528302733169060115460156586403131818484045607418736576728084620466081803341311013927347336956748316229095488455377041694136689061378699136683792203917488984358047494371111874310478239611703662903653449214654172380115598664249953868364271288692217510215348151185066340137608087114781353502119694975691951616391070216908709976545756683564896599628435945290699961358829863258854117761140835184280000905232604802234976307344749810315362844265213065659497248875815404107621060917955413959942704184029670232000161450250197865056541818224889754329194112434299882090167395858840932422723853952017372213674258497813519632108721319595504509043748573462261589144407857292102271048276082440876431415866288229449379587282759257538690100771476030093006375497722948104167641779135272082267705780405542015266538679875819473627901713450364675184927589260967786369741508480963474257859190919844024125193022405770916373966496080198592623367482793345714320910492847124649307732175222058165835052274663269227835564095873522394528050924941540153469096177309582613035909025681756615253845742201319755606135860554883003667093216628457694630197656600156545925706830646011312033898552771186750543841344513399153340642408747276186419529980255132432661996385752574326977874088306864271501977833666249763443286763191655416369137691526617973783499753478642121114570283376764201233611539507583630191312641386549610837800860344999642585589412252084801061292690088183765356605960798921699777015987457173236634645523344950730015194942279243991224095223772411352470300929210246986931731297937556595693318683311010088276030709416151294788921145099128005438466303886306255992352230931338778794851098744607241880131093126094715010004424213558380218968302952408849566831287514316789355972899396570453182712040613104442044783572033471978637745728885444785232118425314683414506236909363010543266638445608072616543650582475681540664365631421191340792028695881150127177261967119143899068090850441232052193273825864380273589934567259898268694778780288229572082521614492775461235594424077127101529663417495697305214869380386857642936086706541777204197322235487435260516616701044521247352263197228687438547112638765529892680525451156834722634832805977683235391359346261015194761219302918578323820176858401880933502899834889945501823650973254568971456137241522363385208593449025522310243011735922027434231663386292488484506392587647637998881511219515188453045078298759681227574844652836763983331673523952900686609076030012194689705987602510905683361383167332994892747848528468726127236981298758366180272762161872214505830268033575876990674859349784012529503593282499635885621055956640733116046212928825106883141094071643253037673373806413332656297603617049041396895492355273502280138378247223547606033810069928910588988060988631806825695286777669410559356723537834459956665979450315438019977498341316881990005603388874781476986123207576458878260921583340691909586732285448652443738933865145180439248305773347663355624157422789626610240290052841288511118984940277776667706868125150578008986653728200856942523999575875467200128024386050736673038922953681878078142201114578680191600202106013126997935039771459614748561099258226533989067375898883405830887872053082113846682917922788137050896970792372268563516981847914737971991302161897439458257759522288019626972272908156121769584286175009089442105757214984831960994966813089656805297903393099592136887265718276759736075370959452338034234428255638798900484015187684113408451568312961578722371458217378120817278201894542761773586286164543503167993383566480751361701680673677914121653309394854888031278159033397507170395881663280794857035752349740043012453846967555442355549938744874205294907384285620221460389008965969962544849394537424275477056265090626247804346898405650716549788566087067170797357235088851700003504050185248747936656263694889823275231421800156222069248491304639229612825405937203907675381190341381162979744672140860772614967127531266319761897022518609357937868437452155234984915536889118192097880536874113549774652037511033516997395695022683927916217552375830391620011948956820654854443245524724413362450067649267725298765806833962685082862014313152700144939104386410678975790341817400670324185658160935423105004397488374724871431858504518355215861653735423387175258055032115139555442052492998629325441617767688654566595895631135612896640085342963532167064336753107236425611918720014809934518269707638134897226484153575512735004932388789757783592860931951525966149331343797400655547171411237611246217781352849664122326884160781089214005024145894626105073522697089674931761092837077595352962507147481369281404176917179287975633678755123719466105859679629947688358022132254597600204264376065687038040833853372921428798965669223170736086203723493010845101796081273553090607861037628947170946683530631006830033137021044566531866150317584303479231672705140860113854107691158769025014214588662031650666002751512208477225641165440430045592279630022014941906946501458573728164172094466475736223765381119565081785590010281267954797789695625465347070270708900912109771585723326951109357750273267584233698812050727222306043797653734800716458041990531433758518325381938873865090146396703067448482617464376602816215284658491444743795960819361635492122317922295779936792933215190763018954002909195875686192434461909586872771508806861861503435585441936771929800796538834078592648828587688524821853058082133740773246987356111931071719984097487983151376698367357649886874323457107532893683975264070558623151237129800489425965167914337393896291777421890563077010245274541980735986451737711023885340603682600645832319256292130514254718802616742345354085375797922023622591002403744028153490285909058488162449979782602128986511233151733032433593498057876546587092916624933536755638381241572788131153853495674664223991345268592248208107963730338563162912742326619156464149431681118346936542041172206590611967176955405833374801451854360478529229401460978043967091574050420966555093970220082303845107594795356085633729146559897461256978219610325201820987360114559041965906174109429127679824700946118532408973270375502994744943411197869964862124223740963813211696699058175276049350297387997972691645399812530558903417101599253706254809153527566269039334042532220997884977529032474172915172081857450534681344334119414421453395066100188420039474117508764393397811301193813449193523501640621338961709613214374503091175147551558997595835597544863169316277965211344573471790777651056282332324538045899174960414334821228262038637863282798437131004268773993068974432349557166629987645159650409349414680329727210506739509255129380479326943265843628883138741239699659766774671816099283976690273148701875618492400006619737623934317310793103235128585321183341928743482343281978362969957561513494439975759855236278409195353467779615390068248318282242168644843629931667699728989756562072629763095787249349826368214578595962457432040778962116263941298190889648481699746184096308200865232884022795114399271346703603255080164746285678679005741982975240094196476505355159377774669272390246320462728568226650180069203808311304415540734621779846248723127637184379074519081698693974136448811630658185778747197678919160950786984289397329883688607723214433373325004485808772354136182004898203469853223925624694506665918091798841548626573598372607909148995319276536213426940876571269441573011452231324030491300610361233356933094496483140468515630378519064643729606173036874193351340745801039112805002392137817072102672477731779785814001921512798251130359598390909254441477159626804387964776559155312513464430294818464440631856812315877652835914995060021347963138061434813535380307296195890442295913448032021165846378015636836235907392125366815648837342416623803815793624812113670611898212410141088098346051538275943783849188178816104779140519497043073756862863362815046863753497131889841819253728761011904978950593335351334897068561665987370080047621347156018826689199897395868973765172403147126549241451108064686099867461769703761352976849049977638820815433701505986957421299529992965695465325055884303023626609238072542051101863736512399296622387900122654371490869252622725064912554645657537736855708391816672875616355923294261267134329983739641615994954078233482346014800834746179895321485271461159126902456109622539653794390022411751630226212075847121648314173771613387571768346080220022291747372123157957345724042153012515939028296604942340341566826926751318718937185562380606582108023735884586220536254161439888772613575834609743291091889511447323522084690389822125182503850108917709726946007850818578211279628014873197541481934724637223634795596038301564129591130922094201262994915031769544881884127897550598079442514412831693695077615454474703149501481670604846985853309217667437878420014085244209641504359103249075639008803926744335559418023838180203687045999199309596600559932312307850670297260451507073963267623055075887777029458871185559580571129643502488209821385809668125359740890452250339045457695133677172362035894165777510634881854215665571018315042983789928032504578302629519721600069165604021769117108900319802927221550649811410790985532113790410950757932173062363928883716361365851260622467753994564559598935230939191530753796630636370084026961726050090203472023619977803578832144617252760397713154994779359631247106127340223433112594736607684267557944533664172985069847170483966358333098928389830070635074008637599140329238589319538276500092088551404787102444413586319991536853597476980621625996767438525268526062824153386468002087671492076648176693639589996407299699481356916113055682808919046813467033632728287974314259131777869714237948770554667054052196015917270925885851648821365922296220736262210533109286489722068368756950377093754546832581051251130516435486902653738753729915345646787283943549677818829638671054267224235343428392275624597405928109872916677084373425621625771298361171044530094893332428574847768922094650731060046326176983040662760678443524729563440726517054420410659072696303213100967993063935556913187334933378226653301887389688968080055832199789685728480853414452856573668517862895161887288584268339874352334466004402147568026799961413752567789569164623596543146319921521303213499904853248937171724866728647254949205437615549146916677831428234912344587696033843022073023877818661985595962459942468521624468700979510489229390886315169328179853483695220083742505665721460111980105986922345880634380261384207237979220375758265257909978811004414621436629453806903125703138322825146089583594631743297301101241375973831440903068053369640382696342812953364358674594423149672418019675572416745737990334562473036940949791331932670374729514070212206277696929717236966603531905151844202082682021681956720151177169889138706638985043143638914537191694455361140747916263338831563355490189154454997516044285046063372035401700075950938823337513745641253137775415374541968271707438939387763374113377900670132529965791337992015407913104587695713576029309978605499718913193698149869347171789905013444203618591949689145173572620417382063292344796630650038427860695199257294962693080341239744646817824322036078329818494957481128019590878480323316745911459106718785786943755782974437197732210325420367270833703438899755105540436562281249147750674319890373450346148351011094505964043422144114359319323304322382039666663772471629023460690438757795818966171724754180119700993999887572023153610291126816934342636462248235916309284167729349053597042593944443467022335521138070245054238777470731257220706987197651369498935807000247300406966151479697373655832277281427542553424455498648024751367642341904646843800190013036933907557361534260331028089229515649102003512826005594277133801662716641080028181514927126083692586040873956748725937029542108658280789386899184399654428341270153043647506897443533041899174371558082674023004510339411294764309906204107355942012972975646098166765664834306362450986894946245140915096627571900388932557113321551170631833100091537022241068416494846154815235021677179770615929181286737612906734349742563488546998437686133429770182068967805083373694311365549765778419358423969555153452426949609550461017036934777773888370138257087218122076137715016425651052052792828284632675028224056154608148933169883542175564880423340612853088532579262043718575331323614543862438795265046084925232576432016917136161908540242188639606372504284359037331600595095218471353219583577941317772658717765665517251255786451947972391380996281650111857481795945583010247694275785166049350591369472210301260238336325289561849756036469733462231364143631873095556023670295007965926181481574618111531452610480299818332204202685152235236611831346507743218193569613115648668591449439876087111183586603348306989391006186092854342039053209956940572851777789709065780331546678232974348319305161033014645769273594224335968233869522097785166981372960575802803384338449627280149628734413297626887750321914446864042211361075026431942112917062759520936015646698037764960954659521671659514577359039609733536256825914643573776737028007137685530277433108010556289157812627578458916808713553511441733681955884883180615052958973877104323105950612975359416476775088670464462860173727053137623691539106145334393083383327489985066379085154343128058174299270204589872610263284765957556430585880891371174531694975469487892115203834950751256252959744799857804155481877183499151944095694750859805456418713360745699024366267144503284657241392644050592974808496898774252057988232804788534927925645678817830162220835428813335713249444335284941243604613296526610970608812747708773591146552340647164328127505801236816381699283222637265543724636678522439177374968313528383214354373097758293087212469115591239148462209157482674647972242254896119249472081967821363911763129410927449538596546532846204729892227831591282783884234364763621017120435141377712405923954515486883577695276786996387826710207638616923721690913883696980757546776307737970280288757067328938834771240083416686289762718210359042402521672347896401045472135831448180030430264314309772088742694686637866240891492452252658061193660439715224896139098531468593860345474957966892765372829503290112358402698500943880600867320954745124565933676041964306890859147583902863913203975830626054006726816307387374281226021311311839840280019041700171977050398046653455659299750444763240105476313349968353796841899842365786024517244417682301800104905245672552788797677459530076272482372484436359984271127283151882968725057873459187490381564691263341473391951441242470966234157603232815019918189373613200412850381728791204941527885017385097816653652223043188848815476360890415486536401893131510113465899133719084997127931555003396409267676587116127974251464680571805585626710866083540646731420806496428318073788242558232641733653115546500449224686441547828648290005160111860065696713693861207259749646043536886911246626036173676830690135232610918162679803250537386796416837832003181791473824831365911663452929216802672336466699049938149754879125162103582443143865152562894559403038271632322011601952393253712551850683602183331282801505206310941436744203451835836630821686807964494387997432830746021753609188418174284389170195321362470441364449871445207840628616479354530566154596119611159844526217107254344012112740344994275651558505230708227039376654952846043728605354680566462257561489999668378132084653690965267388869585243472327518193772015361085276468844362799094914827257466219782786179743875641216676350404191702208580254529948433199741789799381359285590215064179870220389623834447238447902573086671410874597180934568065955873567061286611006328052675690536446940964594485045948554155221148922764473605877327356991007728818747327671169268358104812833873895567487228447414783266291991731336826733330990961132810424343935857021250365822849075878342331267896665641673579080178197347363215775937421516709581735177064325851246067474127757084146510349700716878295769618938337318465059475072905997229163421882694415366793634797462459170215854981973920434659099517607042708738142722082394950179926512517363716109231657393637934477828017346922153750555611228060741997388412183278324773411380126284369161978612721338613830863796152302738266395995042134651695018799644253765984706385941204401216038872210931386304464431504603910947372905247014998137662465721055278456761689798138167234348388973086503722764787349781431796729336496182589930574111620631012291490829590565359927580887527449707597660800079088139011477420973387374340589329630485736718174502638055963323563971579567374103433740482497781922405189223680579273638532147182720942259964486821202464275750798845237569307502175519450729448909579882545641613569722878671203643640007110209628740391644422813573320448967161012227893998687066009222618425543957048863371230060917629303311745404616361616140198055856110973686512908527881699118488009184491328660537877723076292100544034323282061304032569677777713388283196920438959025845276233290352568284542323355360643649450783835399007105015447047225454407743945711375235967291808288257992590786389123838334506171589105419821619499050159875827511442698830722487301718596639279769990390541355305179892621793294980981684165470580059428679491931117156135503830327829598961831076962041867783705895292514461203278871260568223772434782960658970875277094607735906725096502055976798007682429474415906448298794733719919551082789222855148212165799932851459776072564448573659962946625844812188023556507607175456657672220479509750042279693519570322009517894501099381469684903859294767562123232008065499878683833878037311445248454757343903715925662269235749540919745865083775581883988392777780302166095131372010967011126591493839924226467279668968800293496367169052751598885473686852373520828023397332197307796122648859335117196208228384166833835817046632882862672512001468215117963097094348634961221009930219622437407419697764574360259881937145490772247735525573369854525866822964349936389411850188107199715120691012382485181676708617017805025907213431387763032938712628642118228252176578019558704815810906308771844401789931115613990054439191471549572647337313486411313389889806715761074049009445665929517401251085151461193492027403177647521897573429646321202497826179186643730380198915754990690812626962702055976184577347099786578178953967564998184906033851239290355910491675113156953018443350334432009737855980830511781157156375947449021402511237544369784621989642724374089904449289832188825296433613751340614665527444792673651443148142863879739513550831635479047126588924198949419344936836909357578640655457165390015696388140817127083875547813680440619826763142862018324303036802832954648845336863861884831108339665803325720768341968660379852732601191995877211407273195331366714065460905327022561088854758133173371570934052922893581263641624570960863691072682856064902366601825268877614921673171945066996841638173977698500758816924290860050118882234566589562869077231970093487136122144735535180297438481778515432335642398943587454421542971452919283460565238203108850660957483772588227845911864223392644567649169230006511263494970948848714352956998425594618571096932395202858972466641946463537042387015671717620314077989206423978542463639131197781950099467867766797218822374988428455101952977750975030028609121012653400768702620712190033741272776207675940919506751405179777237191866913134647182106545554109686392713644402735646717067292581191168544528724927015541327038471754932469933456363712118160554032042039239620246536563861068460835286084311064691615367563340408332920715036106533827609302074108548504971161518574675536621633284064207241874754537623042399449835282956852318510031212030163426727732622166748009321484110354717362572539503035518676270821487443496325081256405919971031074879480192861978762546367015126260397486996211896911941001323560763992056724487482528576931151647187272122342494253337143791211566710867453117416891676771366050803865631831233200698172743912398983044338681154991809764489931282592200910329003701097993345959263700868412523369109843723456109441064768368285984811668190437101149010696718376762611155828223985006753606010322029600704766992011918074040789468634055808085877452208188288210324833162415255746499819269434229251789718958958446331044181789971138987267896807969625501926863841938446425649166568711064010842776232060452100273634273909477382629565947206351296574122995534281030159545128686425070672586341713225626097526511396754309646899231683213220246909062528188097671625933444273254104147469302356500700468283090077829449625771920506445344093541735829165136394578077859539731695511593121650048438636490136092089480969591701011587743324144484577925032693285345500811820613415333369215192753737858049930177256159283940984786522795916208902792661390891390463208023921660564856770819621800085829736231941180772368048065963527193935972866766873685233351843261755975449279753479041557110744752187776058593705705129934702038535187777024193896827217315793359586320194306190673930150595700121540400494113509927098790761890716327544941229178390919866431441426080435135359976765333467206845065021363934540334986162305288957742390014234976949840563621889189871125076997648796075892228192646135683384383227789073273163827319342328253300792511154567991815246717322806644537377751584601969009830144361706867930636877665984509061377488173097450259156783204596384917795173531859246908470523554706387653203084607979963722537662956865975667082417260468618493006619708470874860354862702203605431158224704356411142069993277016163891632825147367160673935521565645442398247405095436698574004192115274470898514725855587228628906900359095800658104628550339438566085293134045739546044415694234490802648645510533876594189698171285449610307758000252521882298237237475302549960328878452137173016837367264711865595417589065832246669652921962919667473453543804445688020204593337324968889248246121679338522007639199367862102605405088284408730626707133791478643426137509300951543120050819069948324284006822108622359493857395359112003513370102177948067888445415200001704265253339579745268504598969323480852441059544276335360613969093053437920738821311353659187851559849437810068606200450107317225368482543323603649890349627084837089450216422504053738444212339269304043273773433710670331657356011478589813785342919398606874875833851936530633126993590421995765205282378789325379249794906844914411772310471748855448982405394597997336287965175448087854291845528867955662592232654835418582477009380566796778034680514093176673157158018093977521700436091781871989060794738108011020274599064394830343795879335861120652122943470799245689900657332113785755255491532552584151117160487560825054056010690468448403865818419409765779030886597096378844629938765338516051546301703793933274036908059133563619684727098568440828654096607433246475948039024273511241071830950163819575375487780914575643130300619181837422397240660956986854624084731820886805872712116718708583279739632162071794296104430266994188517586670398866507301656554849902830724833843588508060142953677782070407188113431924223682440848034332161571414416357815661037124410720508729657519738747936277615069143618703798391434182223304689835170458094128426469155352135219093459765635741176312670275811318104075843144662727058484350282342591669377062987161303309728097052827340600461224267195217182695658481212592949084182921437409282934752586980084479559731898171428680842760864809630931596127919088015594417690545361333117227292954428932792530997461395327333670251905480869584486184597476515283359570229127232545723404528610681193807902876303823167898954260319431943450313926191235147584288453407330019154061742926594843333364739824554749072182478294486549047531432404756940239858570611842853074247938660975932346158374101920045638071345791487440574059032044268968802445119510656433451010402820808228221598286390851933314940142677811058695404031887089237514901550815450109588808318825917147370853376003196543327283917389463588565387210334244247242901866867444077810273934487709738696275312944377763238440762540961961411125766880487649845538239057385405093125103579458808164858327070556674780615420836821424763783280079846893378395439520833519920503071847796176651162285095112054373850132827645729264409966242610039211983253345368446055760733276241170342765055236331802373192209864892069376173029522428178633310576241774013787210367128005619853228501577440296499492826405946940900228214229908374181888118833438766356910568450067099303854276399683353035885929776412357713668120897337076371389448295864907735482209242448068011834711985927100087408182353675969717724068902237784298110218854520497930462624030079941018433154125665813961122908415234279765404221316345492045187096418082573909525859514381729763299589432249999138468707000565940803883071418331992397319482926800078509273626021304930055922082776845270223365303334995332347500725374819552070435674096948801560336188236614615728850541300722461275085465500054676381313169987623082327696661810124016185080057314032275945321908673793963233580219323411812850028092178961342149334477828813433261447277862856948199809922634008839225589075368569593685078781186460099892650739773908701442736695452416160711715312206634237865246049512096222319200880058036691523499270281900626243825194424049763111444992942014493350447161382460892208829377617879833427755163978355480143436079821682449519417900862237885141200041663642376112850021641630033510706409341997977123133877643638187174459913312606454987370700567890240518866045035738962019280096288638902956355657644087755277215143158060586091195724993377152584814012972209346298785508992655857740866617991027984958229333075720673200764293561796071792989312365810310296342037843945029087133312253261177137389746061803889948583853241086228857926845229005860127900682992386799996046278460804280259231889678456593538268603174313325756571572700824652177504307170808651915525961024305378782103976068957092139341889592535208279311847131008844497575106714188318128734264286812478927240399026124910218931527135179116270738022803863912838618994573695920892419778682190732144904538166775251668705385441612056049310001471861788970167590352531046740158000589837437150740952342189918809557100691932432001485419566184207453531014250548316078824413832202700325868197121048705019596968985053013190125574721651688748086842133692304810387393482463408741386800485573869238750345073483275115885879838688486834458102869049126063160847837622394372715566281019172141714818915394596451900136539974044917783597881709429716117426419407329796025745014967949700077067604160278842034913594960357625934474735140464993558680527768564740189087677540863918561696537106610401287483583413725440533304643428582183928893738587108191019474011626939582843863603405805933698808917901498288684788129664635760778796048025333634148212451316235178573865752659501897375205914856338904847892095285633652246648776320007775452175302864194937340857856347001424033275508769174726097771698172675397763269266143259501114773717875788182101504715380883773315383543376974061650608284891151516628147311031612661405878597686511865277609041097501896615698841505897155532902946873654717388338959927407533580447030131922230787026640783310694290205867345656564208954900363206683388349478979857732876860152842955773103262969698526383042401903603045580965394205591808430767755347155200765163530749751334850815046798210686941198153959033791280474608777058554395967438125503049897435288899577905564396823797824949183045969095161384719184322884685310510043843323279240041046670819954209010932524531678914102644551434704820028915445657013665805811214240953960727640524885866621371336743784867725483380027008695441312147444282691762437717507970018159808459336128109253268823551212778566974324904293393634267374973274044846175795295864056676775710436373081569634980643724624002265354504178198748031470926336572449866403030652336589245933265701670780184945092985369398299502533825531473463667844722550291364399722071667841858541687198995450869383226028751985380372650835238634709591868452825887961856421455441215303939909109466618551700958392591748814198290241239189260390181672587852864147826663757757947390440826346887925067483397263324846742751616988041061359675390649247288592369627920426327140738831805999212823146693401145029622718828255174314382854116023921573296414247003202507570404911414558011999753385571346043565630970985406609772843949165925632052547798483062298950503686779260277248017420028459723725924614554898290487654617243067995482455257028037055364485661063191811529969840435006151061105824242790489929503433003120605955324426359458465055311790213163325991854681906079280373788596827717896588579776511926032508118446557572078664645459508417010125471601953749200569859401457200490089249211790284245573034244265902140812697970807606152393955797084532854147768928204496176865026132315243442685327111915806478126852943861655672727397036879839074955140401367411033931376964899108269582658727854915342317793444716698451142838039679620272130883858930520185870440031401295230937117324504263996702114593107490831129040670243243380309958279092485530084570059948605036973873660328767665673744960517710084859531365892444678810220671762770098030957215337169603836909964009175522950130188661280879115269754640764144513287619494064093863089843617113978636591392953234972091517146524388520030496690932018412370685844495183265112461833951646569334247805067366908010599061177086788556785793769663960851984079893519183069304173787832706413087859670991823081211032752470115642058457420583330931039035526700333803347686058041136577035879955283695399522320902891918646730804507973485873443309913076380915390592396237717774737282031292855641709007702836603604891866003350919023180689110027213923803652431882744769427140344663845715824360741088525639358245187492052043569688688907492037103026393526638442215038222945772081374136753945225785140638321832091741468278770489207270128287635431631378326016294693983640901752255008797457973671963276298180574012888893852637163045710461409485123328320466397423369595393015356298846241742032143176436002859443727861716578636831627128637144937589510964318777573674697881865521177128325703174113124599724134774987874964521559377224263977910066294553390852389979635400054388227845310495768127291009549345678585663140205258828776046964795620538586253956136306486347949431319565502314736729164512241329594135857129296116731847981792110819055573375823450883344771277966850710597536692454191411699326554615093350301561055171915505622802302416910750583098530199586483956613415060086028468583414635141396818938158838994528115582769332277599933174630543540130327928116809185725179656165973751923157827482722848290433920650660849409077708801197488736651789297270434297360337116020030684992222503952157969875142879934386310851400553798250597385944776166318350536505716318741181582144163634351923533591720389818018997462197967645701037957303950398389847275165170902928356071368754348128571993907036880415828708604228381625249256527810478644713847484526099049974623226755784196791044953413119113796794435052845215970982343750074216588845119857148609896431664958641882708247809024580813100772651397899528166391960111082542209855095719050855883142266988890858375170263092693378032398740119239367199711963917763327698364073611649469749468989383227211196919282371057960972106090100543371228653501004373610102649926297655421150660187072742850926144877137680695356274499983642180504899943636240252923752504580361070461008073921160927206611470612304549277359035147681534244951114033786854740258525270092737272793692475211159619734126832356929352217540083189827770104323817222295422699847444138407522055450919773333766273313533096691921917460765239108982539967716493287860459011895345312092138164964122509138369517545997780985111287450091467445670353701511427839711136347044128970768962848693288949034663786061530198358105361073018997485762531206917858596017520082199970651671863260145256528248918954217207339759676871693869618174585355251936118249605118343612191340234856635915539661128616970131651627907073360961855642864480864624916007269859863107896229257672373518200049524458672501222627982940692131156641830716950725443115382041896312046313777030883890566461880716257326086749689320286770966507839761856006163917127202825525547469711289867414699930898546274966769363960966449740957732655575225013816413728530269361814601643884766281109530371054669651676985585475700700654670051354600604477243612496830718945499814325066954830017192995668704726387195117704478068474400270914012768080410641514138867236813567071175228306848608510608181364151679584007932080877288284659480253290875643344009501506674911680901395378823257726645150382146457005617072631495032497329326729665194989005462687309133190022199023655492729079408070766888597388327194883164291378389166664625664872523359083243475808295803620719873218137050232817432089673794128720981184310373864485889049596052828783689936783229811457922227188939087293499880740334480995216472672938851459201195197359852900378007786180936828124765255178231815474190453316946953132187807875013895457009651091904229991314685536794214368733228686532306586615063409806849471125495230061311237682871987367895298870447998889416667955680999574382573064183667257394032314904880598279758367055078940851521233061141261820454719838913661689964003138239873925325624527386541471673796147212288127011920220368832936758610196678809362021819924387268419732192205720210591177516905121431868197596292616918245866301170255805713030200116286833115165745386208528054877286001858927724826083529505913427563657459938957200572800918351161752247070205129374253392558599601752484912979850719828953083681905636671773927186873634359271362161879231759038635901778711202340235598726412791701467817852478684134161434228208145014130144273661463793751899458662337088587549311203992980027498150946801929599962797974846093431620396829356618698198459068065117840240114094511122049074597930947702695241044552153133474260768482981168298568840936714675086426940124448958587704356506854982987662668305074473978638516625514238840885060392734542434057231029161895592537266124204048772245089507613052833470252274959668574407772535162113144440276613361331011677568167968114316202839476661767383848870091551751415361204344170882912842175546276409069296879230904639042858621954444082072019042760885984333776159280525952802285010006617009469504891923269573480389245139686861748652373950785620979567718237930022690489797560504835383691342798315904456411227320470637028421193566177119299701245295412056644744387597754275044570619231343813361257978351699099253657621789819458147310177039786653583191714605005978745333170935696717793571703280957812958728743187027511303867379901223036140027423682814858815717296389241621837664159905821656903838715617701114163252652179228488472047946038525633154654484751297765209239928703780851355942334385030982055329147605584336997085973519059458052742445786314331427856065530443717453142772969748887455563273088328213730457974342334353982093369261475405431345400305415011799175883634420330783230735081326126549668192137239541257018463122740780623753995629431595423756463840859355748292472731061792306900220611019414716570914085278709620819974071188783750132372115042975380489556543124941851601531777230973112177049134116738393321062063868419498441110274525898842072385411983946882023396456097130726237208842810488522843971610943843781095190441197647714398121160368624696232047638104651778744453596716949570664494940143034149888988125244067245273475511176184278061154648443599556517838761801513913869277228487324294191604590680520308592042655949394530474441568988353708901682081494430284312134135176964709955144241081432638788318502939362580785717311551493721286294207982219462922213413604269319319935206339649922294048427159894569999533733081778329641331602313825608446391459093415239633914531681488299431117712834080669523120457911334444559210393179550799123672795076627866128215956105891702988066494166586160638262619830870815957142948734394007129665940952320241467620327975947464042738401224992701523416911788991024548028721378035278434999057820537748966239445385663565709653278398486676977519926370758260636129820634937055916130249832993970475067025577886076913753696789843714761875709787952537479239495117016513460836605882111635683240885115042928830872975129807447774812871756708340475402663671735797571541738931841372808893762465683152237287617595883579885026552690234943021374215653176734659762733064208668670527767213412636051898489738334938690454738419181270417009925891335872760097863092476741121498062308451488197821119367612880995643996841529382495438536323125294547016461422618260763146497150186384006007553726378106595186482028441284600500375928988274508297298567425383645150757869350233098492286161830793136114927950409341562862923066482488516175363479819368405775390084111173321971436841315701231924774806455323949005983974804941437326421942028692992317306522840239798267410450307864411779065505930097383472694098968224570859146302936395452385936756183863247439089138117091600261436522958154833540726714970142440022574167002381522870952291019333802887681553753422656033050782145716920451349855188817859774250970830231272172825112251034541153743498555594639178206810506747246970710504843190437975939259496250977010728918043959876174481855371686216935679665037948676653368669460085830646927800286733716926976225852113526577436894415218709644889059569955690006840932469347794745932405218106985351771911374712621865595532721831939548267290207380455654343520750796411385817758380769490891813583482550945650177474664389686625381445835648435338457105422985811766526856919596936577461971210622095287055189958264790235955073256265623461777510639505567972032287817442006806253614815699059654171968064054288984722616101175695227303378408219219679579771846374708815569341381729871003973057636574246123561208019252654271420857023514809188484745649613784119219874308737405397948380027449816900149329216485425481620038647002882568051092299751849971786457904290612798982755439798177732802134268628901098220224278533913156649257742393263188913613585656883741987520902994472389191751564829711466557910873235005609826736555294790146523388743360106938875955547452578466766304435240535281838609519934638999475310608909750248099626685923224661393111271018467146857091800720691324361967869364196096344810952802018467848005493144287347013486620649867440329700591412953741184253800396027992118660831173565937954453638094388915590550005789529793488177397468020102590874947532499895788002440189502266882307064232058022285753090036069927340061779148003661493317886308592905308778555408474834291123353903804912783275657156404481422293986747398379578290281164082293194938650267571445329513325417336050332426132369387267249500604162924527779660253585943836412284060238619796952961114291607804952227344217047443525338253695459491061748269751637933632010538883099669057528901187820176936175005665290154369699906089589394186891670495569547656274349116638575200290697443663246995983054351692427676282713675476195264375068704452040270129366144565914611018867470842592825290879441904617085507650988614122095706344542504969183962395302146156386830578052280135419273900501736442556007877940380695050975522788467931074062820112117685175892422524383924265445013697274776200520198626037022903603712305526406474390734956412928587503780423336583712948263157324957177298651420372124477175069052128080814890584520251830443876576216526467912384821233569162378676970454189389739200260721657800913311982603003441888260290194260263379595433241659131090239391070577684904503689217473610985008993626531208829993776574459296421456112042104915742461572979697525862539076807586931311986314748118230961312096413908400111215582596053992714901649586124442721118013225509592618728722079581133693750473393472020802569538554529033213100189453390081449278331483012301532118191158275200766380084983787921393238399505021310169281737507085164556426289571559855103116381558153379206175155147350994350084154810879636840524702839445393508224002315149028655702663700849861171905088579484494398226186653967435600924752166950190156986142038749490169792038032666642793639023329314647964427939512954526824489903996421958354695389727409163484818706065487233685815727324428224224418992820408084156151083499740582940471504213003610656909123338986130018386469426827074407674995136213217639640358733321862222954864287331493414052616331446166710795627323254602753345868633655794915692492054791948806896024772458076956682275819239426900213897139260754105579550999062022689709516930850392991466150580120479173089473734466547494750718469758300430855266234521870738959338604605687052869578942204235036762766768953344690528632765575629990719165283798021819509197726384050809601241585049558934886798548160093616604203704247112011300034893148524702746082082880055325021489206775076949854557963727937681426870184542545436585057531949444804328101219194968854350072400454117444627748958381566382053735332619624418154550952371256939907019957137950386960508660381057422187279180583034357459731180364053308653240787341835772188648009165662325511044534533942956144019290216197355802126249511254056202776193764664353778028669132578397261933273109398345221767264522615459985757188475490405866898578481891710821256517287834122693559768731635840001911010631825446648210981397399695212090634273297358183676252683158658931754777343498383686257557326540678344702806449355456717681571136770402591242130352916388603302393333090419638143534186305433295596243378920205555414190302803069557230041886062218251400207588585975325533981609359647577916822369157589468359487587915875350817729485114807008102096920791474075836402803258074736422199010016252915696980536104940937477279242582057987860280675683696708441541722142459597794032495954337377820989024577941342102628617311242691385459101965836033523002953996930373133372540742400636000066920997857745370275241187914348441256235125963427138482095147353079605894847521560967465595302928425003467373338683152909722069106771036177674768834456771982120095766983029106644568645049636845854143816006770214361300106736895340343651401556349227167906965543334542750574682285199442590359836955666820532925057570706898876631431182338416818160390282809433908567367300178038959578535813683112896635409737016511857944268621522425444469934705361248094193147600052499698475858118000412781553605263665561996752178331124277732358855419564199922136488224211612042984017228642566935286708414419268110446379542694983780647963102122157186712608922873168059608173994547862225229937596967180994817355992650031045309649066873038308133086848849508205739060274492955072073119650292782859938322761553006046627146794981027314407476055023625716853766236929224145028651059176075753847131080677421100131151190564147634104288194324547292849305741878002849363861602045066223793246166580995503906179238740430578756731752142300086368483805466042027814506082781650090388153935969686825374102368974053262685427699773785154490362165718864812066030753132290345778127839775217925290497630675295770803723435040444726882012875209201631051621407679831006656668707203352987071270973296978342271527912060347516392703715472723948488084418115088467237153401471583643206991710802088719665552628467529214133061767931371164714683488024524205973541732099833518771987894602025395314494873500600342883846803036929429696985172472687235754277983576708923748017834896237016296166287257427561716246195803336936383125430593782309291774913507423061542534438184862335379619116351635928301193744013735483898275235971043364340771452182178955844900425413471046189540699484060380095364890191944816272421474607292541042973996776940673851817654040819449249013400057895256960958866168211520396413752244513196184236260850771541109761635440034494450168966160476561019702019237015748609354715016763269495323588446053085603810375545863900257223642854751719189834882735533147695789379568285635720276056695959915787879761930771978157916862912721106830279934385639763649946487791298149385549196550729378526656799015353162826326453388962466898143538863833205009506850072771653134372591917764233461565660400992759031011547764943710748966206116237743709745287819265502748537420593155097668305167982528833227344741313460255099363713152982980551137677564152896999482120510783794390974884768434063026951335101337412333260010983046760300842221339695177663035278452068358854251895371412205136780366048885001459031906674314707636508524257020172057286318944648781613879311366046575236526446784324998864887955055307215345492795687027755960161209211335994610521564847251706191556128728051608776074316725107450180884619103926856820426183562126134796970988773044759117337034598455752853119941265552340469360525185700504816930194007153965428502113330988878614899783387359722180089421297515730793608505929957753052617476835638360014717541480611345453150411016824883609725292799628086571824718428004512370915959886611846894522172331945569024148391088075210595335363055184738875370013243397922887392415143507031532535076160226808351089553236303212651192940828934697117225003997957682512960860169443237903145462227653126239887011467807101263544239175048641829059973960468525633436546702195253305742102984169184086283434574200091551808711452209676540307133948494755886732444952320643308407500488366782219818518108268939853163498010488528281081789630261717115182512790729880110345560988633905211535109547407909915072133130837805880602821661379175497534810652350053970822771494169619293452906499154585161446200048124313930959902064858724823904348038815614738478431460012890053713272999528345895224249127406167361669699236397944744676674840379381340517714783318108775551784639977782521128573524062201186509856734740277318022229709253191587938600461898727630238712835732606746348834089458507673039690803854972648045904675075610409847620555600730956088125070778211427034314188467100702630667325711107994909625868896828801938820126933820934953921107401994853470635370657237819004623156363972339729560300161152755532972427902244787078489306706830426488382834090071054874608082146661068104421011250398473583086291783557706284315712919006036987662243465722062421253684393126870367114887709855467207073377616731184476842470382512392204285882579701616160147712194332854788836798484744983284666852813810682840278221039583433557494058033099180454275478206038413756993551822775845209197720338578603187402028862603570510668693782514040734422934172899885298138287509143115941818216131742529170661814550938468355977663518951015290455123646165707847567379950536757674984662219811952414400350113791812415171776694420912252479963356652286142366629994453854833734727475528241972827448598791579324908849260098143306656271847629191285679113983666233987473778246267173954686156601536253042777562265320847702021255992516655681971794747687285573043863239400580115051624410053000469473812087249433201419938071198053688017674420407134416677129652773776974117807357073663631929429269015099587326147782298250053404236742107976543653158405708844957130994365585812877465720151368884462044924040374378365989500668143692910676494690216914848441485008937405164681817971205692594497549521935900857975962402481497314555188606512343457989163409983114947037843396729151739167553869261519775588928473946891047677042195132052626964095614118791947622322158873222616501576137555920924934958153801771086368497821794126369612776783887848526804995039292591420468798932077124782499353472751227592373024085149216114673342315728818530273033918120873782622936219142583040724110054218135549280427062869192519457000797465291726103008376569697040193150514676904738350681186340079293568645361353303872185559524034315448458439184827477864268237370441873496473007352837356475753011523594081127066616513779563592162080702276198133125429562855969386267047538557662322003182389713248479080548733598022674431372802066246493140702612245751055239172404020667865205393158126403815522648453650962327392843553153886679800887408430163343869902370854369735216542936942871044517001779147828309314440338714903892244395736253268317034270981659080186566837521732852294271465302466581175847193798908060173290813683303753442286796301753303878224701229977832145874891360789081234676703824354266708485963758216191839025133597616510273746375869228045520242191443670930179694412342968831115295280443460580761946570173746045024102948388985018027804355641181027981369326381860852875948534118868883625366352714519554948529372876943159675776360727670002896765785287858093828766095822058712369654354256295569903304539052919636661067614510077377160470187567676485671937427613643011137054097175225881670491614553756037757214429240995868206777449597506122193011118817375274289630292579624187684137039356727968109899972385834345040830287947462872488504485587975356403283118491601220826328688014632002288987839015055052378986509604871142514824080149824188381821930840417011518023518142067113511875433689959901770719777336549269238773035349372720598599333601195721397595900585432366671513384583720973132960046588137759645865684563672973221556097200670476485144739554861296687679647572470474002409948736238073336444648319075728127007619901863125890613617309333865360315874054984840525206474595771640498504889221198456642738953193349921839353847577458955377969998452009291294911486145190849725335907346193944712352894662945937491678148437601144314966703212261198501130302170947249826123672610195668156862640809182625398128708418645201098573491624040910385722442053168627826830294928351022694665392738185347288773949789503080528159384519552848997726837705944702182151653068719094522412178490017959464897458021411831183755811457883963824452502080123202331201099780240736937573925174209275548482345703576521362279759873673008598247921754151638980834599207813451168979373965646146333084053982597725553453592102825523289954579508685323292909365970604858320054729977510678984977003811087738304381897635899163917980951678049023832107457068058563973522852642269285627085700215394132660465626647357279898976623539625027926128441592013172762410795700297263086345116550799791423681706946780548981800618457780100206974593836279568673017011363406489671784563709576775237255450689289016329583778820969405246835826721980367602831542040415215513813646467789518888524697305254687344738054079719606368836730518243108291655932374863888193105236205770547965241321017087953381036785109505905086696746010971154419378241718583859037786828213041089043158885735539820302199095424650224374436585558617614419755954954233062689787430987174833390017054981371743023552350359100997814625862424879903491678719782257037776566135706399764658427026085548269666625721163624365421717744420154138880315259380289371691754207782156517241182333142702709058428918766935691512753669607403214594355160208505013164183134723746584398771121028560888701486366107238655016862676822291385230019226789070304430784159545520431873806415540522420621661547078515251881238025120430097230660892760003727990081730624781817786140214239857667957849847548558068089634554231622879222040365501158166584645463442016764754602682496934125669188905535341618239212776134225110573396113933766886714427198966370804764970330674082340650528022402544466145003780728411988932254913608574226724290847136892376300176035893890812633727783107356278172225072143828713542302766514448392093317051554362110130442041760545290700862225336399383932560926164394962671590620818552631004356167958417488662615417659522548194444626428912807858693170971848942092813468049738912529372960127147293237446031610148807342795341557654732549418711501386234418139613937384164053840725138732649331450554342454172206625465752987470182651733607227089298300868098765474598896453511175143401168518088526698191827011456914975378786569202717745811876276484796457635245726123984894876444437702847864873945269329699148827073037343718516028508102021202847461974585769101140616213076578731448569543012115272642145519143603716167200340638601193709806224960720311925419650218615013952809080108684169615931743556092744910970542713544287022091272636050968807303843078806517013055450022766908785706864932547080495550008063235835645762989031330873484036954896906502660344456173608361587208549339191949202107352726113965023223069409300993976022351792600797583131935805399652940650833598533225865247530507470056919261302834644188214440793152007700586908539967277515739800327657415094563403367387156278110276819825277283899158960276091541901195103892709863692775689198570792686778546653354366425538978744103572764276573883391813163542979737976367227115296235595515678433830021805270617216625795748345167531981951421199698486672047671267557576502645976205972828826151087949583204290823327315404277175749371133434250950464701224695314940375357357540042920881160580109725806149256126876819349153595671408585333880955023127295197043256673187530490134818835528644434378962972569985183796400643511982868105443839009993340801916674225102454990872585733101833225627012152755816900516810708046529993139244600755307038042567517458744812220293818263603174346822094761673081538930165637540702717625397978922788399960762610110021026097917892853926333828823832545217769092024978076713911703172579509397789720541125606073879294438376975086106211786086310145749470780600602341325876000990135549103309341070542001775910599724889642988160661114125564665312055784239826691860918540058523785973556617174189971159122522586335565999779814692827621114775505131173705273060986970489566315314759595502849289444836237637800281176275539006892797324836451292806572030165277846189162409322496665544319937410901202327723503736610414940156402410711266579952693934365668890024747180919166451889061612467079918337009001657761805466026852065437925198708853769380448180774658091531431118857094780307322513040013703906674228661373505487321811113529455773376994756912863932001577193885798643997823936370442052653696706097561945170487590829262373434238469880350521148455100615926592515475853763975979902059635672578461731764222168607656268118592978218021691411473823386593038518477808405190547006398089337855749772045357575701359942706137350538315008550225183835145082681912449675848134045234831928921283482419866194261426835921420637059156074135122669368503818752327438263443679264362889731555530837995539984802978206369555762684498125884902681326025184691100749195575406852546459172942501131797100976472962393714135972460891012034767338049431941837649354741509352441196474220257548940861951846618898051552772479999865679224914203884359163042133500221335131536332136113707905106399706003878276816481514180707521794582797308323689646355474779739717694423026306446926814147439359533911380376975751873503335068092771250587925744660164505208766506591820223447156799000989223285320204450456547417222890579970884281605868392771645266494176323495766074065785493450674227469443616312645315996275597692314591302443371225639133303112200991798040713677323359752225609036056887472844928856524498771158644537494133871562294045838467747840711460529176378329696151578361764962880908819671241151363064013042489817462143601090863364293301898780732643092041421527913915480901725663344375128307454023582823909604630716045145582980872481216187004898457511213203822843394193726723784027183770815602822422417735501615620660431190335709180126266955284013019515696096057355327552966252628220933481581646498325635941735122653278940421010736220425205903058894315417398203358340307057061996706064330425911394787121200879729712470462104896899844054118830069818881101036827786141529743181259439613311550633082495081903737754815250325708780592459840793005952705601203967963238201396453215898653646958182058691235325970011672565381202649118015843695501033503003392449905972367442488975918517794884721761002391035131489427121664214219210512474700066052958449363441863856137596676819582933046341816474693514089409396812063613415827017233598983979851339398895070026382082459520705072140469478144197537385955196153514818378070520731807668289367189591727962218692083530385053240966707597415135626093152301438333293671232607248548839249927246803457543795929862666880633954425323141899458293309246627868022087387816983175416465078608890354505910492753632379606443720824040638194452494958775330920863457637804946347174558788644330460550681953494408145822021995350240109238669695737479716296857012053697844544260455632783947651295078862972652790007342134161545876831065891128834302720900688209677990678982495122925564838829502235449736297443647611523504511415725610630659936954310659281437733101345632385239423868539126981986857998183592780283544712627710061419249453344318055785402301955551435662760344875789751295187528003446746520119473445087078063734339465375533751255152002832251836261152845745496526572245193878914247699204054655605848718873733598899065479156396100279821957907697523384066484491563352156367582051782882596706574287228224572145656239710321746216541408966202635527887363961611148166297675695068562834224356137447863727601970426063331930462066024964338511297330456387273266316759211272130894981076524957909120427645811118121299003088196231493996727556802414580751226493109495728719250923095884495692313121275213928724211906345526151337483782179132373099320789719840809411105857769756222709960400214475014962412835652187544950654283763741142023746558413068547393942331067521613624673380120193685216242204518018748406810317351713642167600697676348446884494864267420718906495247966714649371867923322749272691807376785190277626168371645920859537766678265709455046989442898973248351846647193934458826832965532957233065143487331644250513926744336725339113451577198951833245925913758527722277193800517312174463052811413711437027226711267751862358467012360985633271058525930826578597837542983898618595668399776915387468425706534899892047782806469166143190820382502518540477673963417751758626212776227257728154553555974355984096668968464936430891641384902690604443064567298522466336291346130688187780787444938299160238561523348206158261241412452495635039074377985231836952994922634030915021508804514909140889178580314741438277049968850819333958613785358788189397634291989630043573402052696411383706441941916604911430893192047336313108764884609419952665876478921926174952171976798209904673685375239179147939026972474767572964179664590406071593858220764345804612149312623457384286474734938179836689128591825607652948954713211381256645395721901208464687662382555160409443149170019182304237776466609359256552568602047047395468106394119170937639299652227654476689130911822675167834624833436403546074188512653688996092143739604879390628175635166467313848503266415021054265132063115304638259056840137398572378078714284459951846957366893203444371990734281321303142559565600283370646819385625686772691806062113944159368883680575306156853872403700795309936234628401169255749110011375145843030220694101755608363238712452300795269351774483251418391158539180214063276827763480621762578338964976083987006206984834777527512976598676319755769147339207706314233691946825365991320706198000819767332782568174311516332726907922132439843136396817273392714510391386806121796845109542433913037105731070169984623979970548134751187880463002612173348441008568247180173794424586776045802709465099249100070243702313599286045028374612945982026400441353346243956999609364966229682676146402474248923160103426023275336467020962850107561352102056867099040305466048197556937010668704098231153815280179915745355385422248330049437200611590189329912141367389576411716089869672173962993614008046039856400667628297379069160933458571313144271933109193728560706945877729393234535188585631260345201172811272864251626556752650507943835152023891954648046372725234835709040035530095703296555379158214452343113701082847113902128765537706931003237123673170815738646020581375611071496350569029293008716288474993466170961796523550798383747924865408942354358784742466824932095064667150119358980962362342376994732746670989485675762274452232501306822486098570495244036272414478412679880530751305505831998326578976603372434738345727290374731051636708664139393859191585396873218389041061367414633148690724035807522900352636725749798720292155859748907010000723504494229253996796671870740532634397050500253683832720795518842494697110365492222490239461683304452861600076697835846195148243894271748690876595126422536674706938982976888592138428998409117920074226754966412243708060005553157884853263207454813630830551046250432447757494328765009547300875878684870395792530767088041019720375309118347013425222315841337603851142673849552516745196867274528387518485114354766987530433122786924950211545709020284181255771608570105422372663461535238774723247795416940638620426788600201342333781258434630141715995551582909418970168066367011088628764732199082875683144146172327785087823634853855077591546950743335518051439136601012728340736420833035299626194287565227121709534231873073533139591758634962227940935886961611010239539520856392979875727110443806520627473016940549847277968190189867764501399856427057663160106833216787562128470404681134360252879136516998816623892289206882303390051860336723361071949107970993276438679645521253703108244051063530373022093327648901400495665117719481231761274205887790844447600486870810357929287095296819407227776544156157271908928042417416899190960422348947366396790291539328128570021615104142392163210390054651007971719162669971284490704514211515392965614437286051079089513898845250842232552038446990999332748066482761506568591604018602662501451359094557717439906903317238732649061370720022078214187519428500394473936678137023296765843676188771820704196576867677870920458035235193011532857543743615043322120752324627885375121467488251011113786882709903740152388583949071647881341669100895426893766452502474896682633201767526944404276783629452577086899220828404972750803875565164329957465202757076250614613170322906400948299450083296040564202560366796022572304386048996693801527742931758101866145177455878109419785463435735343631754745522311790547231755815409814847922014736495957694450468256752352410195890851246009314009522457595542577799938940981220096280458543331877534194268047162228662817963101119947011578692097702996338726093419909413487102410275830851674559941522053314915181007017389900590124301231148610161454056523199156067349609165162448983020573931173019620693537391329087138902867812452535313048169122041788506891734311429241548806047305114350159155973552139935129892825908877600900459557754723544634847283254917972467138735237758496497260362986035993796323900269023062838093912343504652591787228403784658583140296290529827274290150527076766789682473409928173573066459128350513982482489611851032645372741750604089108179200832217982597553397995447560366111427997349219031232188672776005187202911939511831886260446632391114608240347961560187050028501486993667596869610811921565211512631086951354738936636557804804507109426247724395621720093898418707190307533942365253623769282935582004197282575867751185199002704349473432280249608444201197485672046084876600237884703482530878693019388263389950523662346610089591989403000024383481012187908840051379645676264032890942494546689097805430371947372089676578964097191641200471092693602348169222157448260903726454033288776699939632793689149379743934944551574792451394098154649336251722382873647845204063483399204314218572940721710879086004407102788435376278242324322041966622155179797720698396666187630438931178608600920082931207377548800914131938514106513354495149310069792194446640155614527290067123158380263615909245187115097929456818883202377245837199448699028632508884258318923316941997307727497142199667329165625575275758017958771728138658208704898255726111182315868065793921101009843446704784735345960967788156533728372340841561821345137893398595004579298710645638644684057154221878431843096092076550936916052542365222145655740058743088348706273471929384211947971762067990920575422109371088715450099701741652623088984702954354066561008385927383453396924980068729292646997324754502103553044515575950585754895395090398772195624535894522602105082299349453056460781826216849490662678851867699707579285853420451259036722710855551368540881864326149428961854868752723658180165206569361143303483999124648440589317609833897426024958651447742411472252837940598076647773031606351465697138769198158823393568295404732434155347502427184504551712379116446603106319816106155652750074059130699852401210521751084794453471034397304245541822566668859217560371768181389874001265335687638945508143973942085514664591199928337580280548804010430496946664267099666780340385816357011059947322123514693506462566779400677601565299962291552884287986804472704114359520031278109349666479251131681263124154482912041586068896214193728779149372093154721384597502952765464188117350473977605016939063508599674980210465372173558329498537888594405775384814513791307598684937802835407710426385856322366957569452643474406050964735736499110570568931558456775213761031391000202034732417458133000836688292695887428265616237212838453420973282214267863958916521175882276683697601241145289202223034295163562433891203795004355706335909400316659822200479628688850963080824099773712588563110035369212180764805665948631051797269768238522231886404348302212232791035765561816532697005015960220920663102852346173066616656970721647974309321420234936795969661327960188040135845268467477227481260476549142592929896318170794419789275326398198884861366852043653377118071580360176057145434057216544900944273428639817790950576178446520483576057146239835421560017626722270945317122706695018752228711730512570755651879029209075999229102433155193940131237473833376763180961227798561177788236787760675734706310192017662193679447894237758894058889019134974180866766590584651483063260686992531042056180466700342541122345284198923345951368966706333536653783748549709246963622902784544661395782193570107473282969115188992364422990710171391186564829219004299719760705681964819100073748271933564133721733724689310796783321731674462703000363962270867675391659878801479203243239662507791321496621836321032648193662766909846553868129107554714253121634846413654962345590477146498073403407599076202255348264754249430062366019432649383465304150412439998852106393035896737845607518223388310388047470945364585149530757642426560952548936469559684022873265898482755909916484441036978132455631122036677080066540926242978490885209557201287088765839768790206575051121583046211881728107710385890621306597449433229151155407047758539280089295566492517909900273115076250562250195993062040302971415356932364281500751148410998214450830864046718932280032444524312812621121140926430142120872939155898485977098867736646469244755861395751778403437966936479697406286983318126582933605402077058392281866270249373729617481154570925995341530093580686586922140009016267000050379970463842291007562731323722977027230767140008050078284350623765654821865505710059253982774320145895889622010721336750209450092491418410051950793407575276925449753115989415183738260227500854938443212018701854549606467881906637998943172083114605796057518485635014001552586002764437127829910902136200204636248230059461247374017993279818672962348915111849996495790951154023410564252413854701655536904636845809068481219087667122140723644065768288428228578854677592197158627199288337923761175415294840241681875835699173835849144244821746410827082076135208371962002921196094344626593685132539595078519956980372514400482204432154512260206497340456284201544480565857244102005979517892694539389411165482501283123123531873460722018936891541865325091537118281730578882999304146338911274175589120840339294771355987104397158972828606021126553349900601699357281041445035423192263058451057759547538894657067039087069272451803036186726908754794885773595487448602037586190374779694846847552108690210744434167133581034033057131134303560606937778746793302239138239925555849670714512220347127686774282244286118031851007645513806721552093849356064827690392222094050555586012525471369703579966614365812653674439407304141821981882280333768247077134677196717561797218070387944076309543972774092396063465281916651883706255773345590797759652923972902335348212762838169244130693444060086250700947938935865931209838353539757555132313624704500032635155728688776610852264421338998659608495101779055232964052504586765512241693973224186268052284313784914522541088253784285822072947607167366163022194819155503145988900441241770539809582827063293883541083615550536468986799661646385969703645135798443712835608545680329891705071423680856540721322505434426494186831158937778726869934279197470795894083999671752723639550765625076037946072671885183668677384616762206331524282821928320881445127375780023472622440369921543960675091325193606390005712382070660321528762213995981643492742656788696398031414482156746997281719895132102950273715088574126618030910516340473806047392628664074103838034832533874654005381764259996366667744704876940524205093556075770909323630110112418173146789366423102656545770521784690173047833421617362958922946458742655759587417871379868535274279028450958613429945040865731959456380356032194085575162103765327765709630087619534437799157903429235817372158172381172513449920108546835622232692656706314646909457032237338147009438201895275192774500438506734030444939851667360795533778586242755652250535176810823702036464623928505286378615499838619005680914002004669764800044916238379618296799708686443812827408177617153928177641732151303210527852946533297653721237842532468740582680106360345923211229473389365161738186349826033372575008715829650134146377386611534275427478071755318937868280977286367780768252074782301505443180557617676045725175565396491100424539024710369211818076482577580691818371957233065758376093282213956902764828112703769403670893843874981491605645518159585766462984698595207402462574743209597561096883320958889450722485302783773852854598031118276951099391617406232047464630262822791797791285372320600547214821096062676659496260191760961252344706904963804318853881982579807871700757089400294945104826825197848466291082291898881956938312096084406991908712578739895420308682925080749671744562522042130338204084644987801274227543442577808099089162737096879452808799031494952329511032220400274950045693013249099921956166327577382832862860605193123921239373864130096468327963004014719195580733097711411085471302376469055912542725028375972515494786155179466524405228453423309179892272171344023049146144370148644142842805943723728427189872507087422099887369457487902893257167478450422616715261985607313173771765063458546723606023665411570233156057398080199643352326608500898481467351439849808707503157423119221174965201014217153475258268224148985144389517556880911413378287311677760032769845539610554649592164384135138981249487629539043523324746074820352213265832331220118029921186611277668126779012502238681327226764102418660145613739633099150254634219119108702304269199573765950303240266017861859368134563822678526092937290170440901953725863048638536963137286920778750198695330438854257140555549455254278062298616509079327965922581247323076254597679375506210938608140339547648838432722465016761792931753888062673026625596456994201924517881564367083691713514887431334125796120435388930787602789461691469945601569021461184993876081801865860981475976698875837754513922255820962030776020548484176657181887273165860380472922964941025525942975528019966707533924995762029760677268869082981674539282725992165543532632580437294289565192131991422738075479247143355464697693609772012557135161325727976950787018593536477791933712770328322676370076095350431984691090460131685625442876651451099834745634743655136824609465429470445802296620532865308265108949416186370416004018468148318986986464665215805402989904480674029696370491603138865831752235424229018238289841533972345383719540181273900603202379770341349785149079279819396167145269231184297652323409712606091468083466252987713835239108314813073030332442300804787144207362808971898187407639072366021158462958826458855865679665798920130927768383497235598861422479361211923165486319099075357201860073645602792921950672055074055482846072210248597344377820589172774193481656936266616148092785182147032325471042081589559182521812190985383557865871005174775489626447585959718061990235541487650036271204357535146048668026331324028192455616802912556214272960812553032536355031126488420021447282077443052631569710120649909013930445146004428696101046917112921671431330326270690268973091873673036209489139990045535359939927456860493596541737102216730012634729180328826704568135054382582804688122237724621240507927404426758816932570632489038694104669047326535430311610788142285795251180735377761846986179791566448034084642805182847956655683849450936434583684750003491041694845713872129000435340745979171895666770771304988369256274567948229730020494127914656997395390929881175017622693835085308029887559572493158404764124808067530866479471866517340243714454130268657974418349000298829950754751165390200347574343013988523725686261951466631544677306391919012928266885891296999286912864486096321972394353407563783446536959202255683296351121315835137254840401471237135432053739478981197204704220071602998827138980615709421997702051146940690194933193722217962978743700958348998808390073141078772861075459849674688584686579234159101201179182778371616225527639889867760467329670356295657259944409950685500103692066527887266500140654518767796080594914280376179561027335439997892525598180297564993837078547388057430939803084525810264562242262693917201041369192156741531047550767688662836495668138408726845891780244896206913093994673658097331090833565767990674116881870072789617389628382167735369531620211809065856778062911390990922245705054263515278003459244022950557542010320453122092221065545083144333889251634942357100239296072835847216832509903618753099353686066416683136928926669898436954985591537505982878511591005842130347152733212194283079148650773596545444441224360526727618037095123976282033714197389567081427343419762717733644432111966767472230431488743026042199989117892412012635744194056447571510920360099325244142326239473892797643940939960570986757734575409231476340524547553430211411330500367429453792312088099209546419682527976770505343840118952943164921304294006982224483593452489524802110300027957795244839055205429176928172832136653159378377785767597350996337822257721338747657860830687493912130308291662163750777783204442502294245005119533710176707291394984225127768014600404825290920947263621374961749655815689668882079694342635024487811978804989746311291737660312371258592873937943896517366614471962901890604384884898742851534039417596960905073443319297956993582358446819183226835043049402720579733172280904082427134984022976470616260025463753537552303863708682187576787266909181505579679203097830605213316966259964317901869171525242392106788070041425730254889735971530233255282912479995445154566963405944724093029103814762959061172686446361996286107838620856338601249378597641394467495404892142375981965219944213698867989125517047256579416919310016746423562753538715780254422157643027460642504291539379841478402707317224186833337775026129994970271764416523223816655944226361086993802998598002772229390906758882337604225443431250823421973767333969639995064189824740652725060045959955841659717586854174648060729207057637126645025677476953944259922164388580511089677775563342379941989612743544428531235889217265839024357412456784702680034514011787581635426330004758946136875551902784352353793729667988889511469558817886273130550934041984063805551043393556941140906083146506032380241910342806229864139562290051060379566215966591005380860968529569481782250070987363036267872989809597836752580945902789053258589394052108569208025302740826148886167749912894972482618500521862397725686925160072583384145227325139366407765981108061185249318564835516564660278242284206788148418336260101454965087063785487054146852146526164760125896274201987701411692501831717980984963045947856550474610381470235197298164829855193528753994457248582567696680969426798718552114980515602981418031457976992689265325146720373617158447703904306768671971368835298047125681758576751337872860386250016593470584966161218495995808773779494590263076592829570005015759090423333043224833265955781364983183225373456651181607867543926772997778615060928576658475054648777510306357029752684386754465656401010141750878851297788641187996243049622491898378142556234942300437932331023832060226073758072509536280755447097395567017270960584912520551413503554495727825467752745226366658760302706094620079968510316736101727193088756206637685429735690367659581481137920894590130144974845159704463646474348322783864149524711063702891666165401283562169384671402724611156154838840235477710960839785049590248172300690547706685928954492127967137521508600140647856221584776560746149815923344915303830254718191886855166195592233089714298716109497171838976791919459250674795345848862832335622715411896362709003475438535710834769560490280969155681615357407987394387013061873996683645431542467716384499374957505831649369795744511372782885081139483057930604803269582046449168844223088219881666298847365640024510487635593315144253566526296797326456564966833736451749566103883398835963764348366860098749163289919139273383162139496343471688438066890522832495489765105772609466975438749131214417670394434687255693161212539898024034204660920649029159000500157993618250240629498951161901935855820787357933482012184160714761104425088869128349349388439261385901153196068171210312367999456294761382944313160584539706872410903898933520572825398617169965044339173129757755253637111209021598108908047885819507012808987846070815465103674660846701258909224806342302687891500329412880818579101400363419148904956663379640386774287562562689370965588865751856749764910604579560911551815948184404379403073167189149262407625538946002834439034860827698703403915520172075269796924786190578585901375642611739395281521606180293014796743309323986555711071956017254850836282336975942979212096787974541403276127955916659905004288768665997497074990272766152133048664867620405134332841048375536664932742179776609280729475187806217793719425498422426623720227050706937798546092986894571631774166689504417105938177066797205439754190061306297846795543167203485013263141096429826432641640135892704294420058175900285984697826098160011494711820837972981391976101503681307618781375362256802334045900093181660994516429798528219358289842464026154650121114198387302459953672946106803734160628729751879392450079859019847746599794861657217182896307714923231930629998747201615341390978124890399582662136124378285993187100831811389813278872561876751399974436254247043064162129931518123600966072079475915826286748376168454506275274479880404235240008202975704070241313541491636916431648667793421013541475933225020930466162614509767360273804141316685484527289556666479036701643378777482519265955753075881422270799241944417067863502334548494127644254211338523298557163276654139836837142613709800557061408130704675823790380153191956117987008611689089240150702235613455409911243590403088415452861152033695667836185898285184682333265356835977078334883229598801339289377638365341677270588526127404727288386295097710862001869420621933598929126142593722980692459083957203069887638720864459691664218331001233856048655788109128097576363014896062342467743598527573789505175765233119647241480478744291522899452992508454250702110863670539844679918117447821100037792079333258360447539063992398861130852978629339481169033768540407181908919699883087175804405283748188058056283452026761396646881283470060484140713210690971810358042466829672622753395302190327205308659014317599557906125832787732814339845555618131717149611395695319271356450114614418023435890064945669234199388816211687744446063003708605003920959388729320158213137228853053200097685344808868085906948052576532487899555836227796160086710788737251921374407409925997827557016593164227039323714694338192015569607284884848913941395401486210174057473548406333925524589331606618596485063493292674625724789580963788848762415016301167944774553678861233272247010935680727220863981986779169073474533313277173511455341513987917886470742517128801401611505881445246940352354412318683819526277271994010506723625443948769011536193228538243705619275236127990495498805948561294607343647096021481406908564211206313587981339060481176344697269969368609277191859244599809558450314235192334904844338987929441517155147243218544002172070762305882198677299056983236931815279263429819546701350910407549518565993244001430342313353137867116746928268613830590682895958298480123130507654906093736436021252617975151772171171692516498310201198443397673430036393806485866170769363436227008319588885826769990359699520605416840808185933760586904859503745590099856462428870013302982774231901989344057721220113830291255210227127526173108640632573029438574930210853097582890943997990717789889623069135258822567296197789944227015953238707777517251006212123370944089743981222438931896606840931179824888284195079839653610459653855387935647703678007373931378104208516289415684446273818272760920945174357155465655763462594740055881438534303845965446154864421584245748894957928346561367301584348015765429737398974533979366706414880463525339815854754904586240965352081887978998771066658570605970649357524227465668401629525440798398862505492862369661714504800878510021353177399553034768115251575294995536986037440363356285202373023034231856353036323679507100181759062365901466900686102864992310847467762123105875205746907162798535294079841913972348422601336304802819290724403418715788601070564040343043486623307777872527944925403779269288897870472741634098340522405887709671498686712547667257786885840590705396406815098931299841681065410062713132834473477853618909443659880105611433624662068411531517477917837690146258161755627292948141489114156265177963853728168459367948529010579904529765852840835520495352675561887333788455720153794095472719925236654756469239262488410753838752590900219974137021399803100453628237118578399302073251477406546119195901542787129826146593816590899775514882722298432171770988039875889380631740968163657302824846603690923346599493431304225902152776799891002813237881736643030790085587900467876170725579744702389004078192735111691343221880033438660659717354583371922140730333546809428338987723512613451673570384857000908113549492420194305845189709993140970365553253336425199090206633777938763546916649830690846253467541277069656446399157361911384323010648907249057730756836585435279508207929229316257416571298783240636422043766633485055256217344444961517790770169454389467818776983346208912318912618461987560098366379852846823640653964740425426948600276022098381496365756542087717234496383849364187504683585825981071879861390348191118370367823553929711377173283630458378791699000026763946686253925125235374822580445870226757506090532982099610137487862639407571284520961005466219417616430850958847424701607079391846187280062679127631325938004234339010837232190744461294842777123875718717065171076979979469799184686985897987546707757152559254447061145796131108438489748031111232461686821019685415711428029141741282862674237713956619731697881240797478478932734198820350657525605785410750865845171242640126758254086664589748075855963536302677321851855957835335077721123375650842548185493864131125909648831216419276546115047629374806089801992082189079692141525999961081874668302922528804744101578755471142461265007359851636765576230857026849388616400471953376459752071727509687840355499867330493780782699957654839913064073966185055279488102199145818162948715528606965266220514521486716506748567417282951381868828905393901357003310665651532485115079199426038273210157259083744687484750628115938506190852037892188162022511506903096083321975682272310454211776171191156252530231236481674216860287923040596708515410598812335605678106311380363253232888075262557650062819737230470532364743207783628432798676191285763580426455670748660159893210170078827044173503153399738990287164794752137700437203814508862401395209699372608920080175096870866444312653065556322275503720270434507991126964092916956198556578155733216749658245862634149832754836154143395006818181723691660298404358379836668826367208671813746159372471013641924120561717670093032312900031756974769569096122159051040689825200665731883932967190754353586980169092258712172798961683004891438004739747766538801614052390709181587228181622848213231422699548428823440574520618528519245251116614542550630293434508074392686798460949569091173291184552126459327148603930516334105333763868975845471975615414865325687780405544739225371282737596036801746622468882943036855797254399033487423446112068850319312061634197003381106756177176639490274766646127277865144699367061122947573024736747591583193120565143364349328836841853224209418304424424680493930981481978440135289568998849571206317263067496058427903868158291695534711817387135325933866495818254801206992485230426677526782911775359401031839101028096623947391979895225084819467596796407050676558816353230053208058318585685730391125142845656173048398059659503943624709583411951627747612431568852618950850374586559056234516999320039665115373223345784499068487476793229255004140198932104527349738023168857372471785814544056180813088917145353973301408845807356400254452740050866284776791744444060280021892781342264477724346275625628499592467905981409228645227101668517075401936392216638090363723203676696997408947245367167771970772252926738153990239325616363208012938484981561648887286330614742212413185453703984637711907191578167328218363898146888742205894895281040455346134738646966781503827676834846387078229281626880279592280481285566418947417141558199531959751224882857903911499798699095708831337058564503179562433284492334889524242732494427250182794848738821213480548074561710976275583728328488287760698541497867006422371580852870759267041864693971701258563297522353296041417613597883031865368953397982701197106892433161049041822753342451351693809612374442731009859374878105121216138595544535615119948565179189991805541442270552443912886028770035956547235014976790429699823652628313174805651118766902878761973637122696748352514374788184299057838406150549585446352873057623700025102403002062930859169466807499846378583320303254801584132827577181625911811328865041653788642283616662532798892426230276680652522413119261284522647667992993257700676864905920677758527044206023963340506129507257033366017559141464339787414412666663484752379820892073279674596329268996865666439478511017130172593187898855863665662138420264260086241178089466169237857947647861200240751593978893772796925872662584481233692746989795118715210373486322558252936164985214739102901585066585783769398831198879253651370511259676493861450962894788782217639482541858968903341951989053777492245793747235946733343536369235303555928295917348532053315169143948596321648468347394404470438432979596606519382741503052455356600748968745651577351249464416783080304750743009656148218283877453367515993844610406731672875304872888843310298983560402629325043088889746967590130854086639968686761873328312109748898291138015576063742657975190007094619482558188354443103870498443929871892333454325425548126799489917993112365952246157098259751711489905207974139444873245221935905492104407803808749074553387274659739654224576403816910429215734318219232264685565957321171585085461163890862145048852497020702251244065089345631857964868008688853004863049422922558704197829376834044673213602607720854747458834396830092292539949483013473757852075139537654969822802992725619862235122681505100150500554856574273380270565375492354631021310169883402730459280915598572916946526403880100595484183036594685872638214942015109051523209907733833915474022611945384388175573126126584999969988451595375164400600544356244217554309016205417629769397417413901517230399075361021477799252878488538546872948429971617982851152474821847667152306627437356401358005536634637832363400005629774289812515116345747952001332292632393675562312098890314698959409559166100355024321407696225128907399743714553711444651591253599240433486703222273078639096377475725859163098961607878981056616359836454505144929845990535367877032976794020605016991618397153586588135550824280745710053370948357674425779706242548797384374704925104498112471182118239437965270590270458879783398812210949075180212048318207062293142897931515679749215105273102691621197348178653814997532251788593713725802126939304930672973303990935846624198556363978058512988088247912357684374670461429254628152009885735181377234533981452091415324533050983140042996768430750839936268018438444540977750752664803254238858455605785899861437796048558670921382135616498160687271618704893168492730993174085774372832764151000464462007346923346924839508794288686309709373738947817363816084404316374345664882584462398857877508905419547552480181254348480873817249178014177352147430864633236739098884617911761994173048780880718416260557456645407093667853821835705646331287264720659332190665740337583765723031357960827370691285606580251311910495355568766349352833648438970389573648420885021364254995812734532547157501138940742319013854953691413794949931730073357585866312807494749989829895701602436551076636266829679660768706859928326912941247254096114174369955535959516706082662190632064702712913692701901221166397478087911384783469153569452012841751983717160167108431324019656952071060164297536316861627347961415132493443427227469596059167679547596914449967441814322259409892523510059458761701379588539365862982022493806818268204838539160884624847702941735270604615049181211093701120540219069857424227118990963502494818655380288509041360352998176376816151159935933237055843717959290596319663324906910700883023461944568937841901565041610054724793411778936511735097220664515688164108676880392429586176917481535833686804060831502986753205583192563757053310089530884568882103050744897395607915875522888007183454491212285726189814978927656391704945412227685465373617453276303927660294056160952560392154694464729714260663935699768147067243844768937763572380735730049628997816134226371922625401775303044168429629157852123212369132783901852768484154113094235278944291878001639391623137668547196732827944366887790245863198849599320793599547823779246186043088240515552385957620757710197205228071018516736687331767825695503508415705850387772452576541935455196506325990467677594787653894831743144387120046086077535206366175966460953096666036232709149136718149013761466223596428778526093328756222699171703191384298661089870748936234213141104209998156342768349324428104963177030635035931552198474485100789730055351821797089502989618727640117576867075932649222234012209870222596279634682647145659338938938976382670916056612991060949009209136215741628094155744953934123775818005075195279782109762797976379919890777325164318563745801043974266529646864971316994246610031773199297619058182257647826809813007397002191954802572177644237951759547635960770860953834242271005837113757633794711681733614845993811647878349745313685429714797017041052073790245366053084369796722569735388283312947693078698698387597329915265427444370420698212662634582827080167219000981370038487109706286955237448884203390145066409812428069514200919695618960326486306003776619186069628797948568969630475043456826024895781733970991573557343853516264726549153357760240464495604487401108407622105909313085819583463393009107608833413249869114274490387720408135845055545306922846293826032683777940563195779879876990505524503585737871190573817884445579287329922433850539668867905671730202731546373650100001716029222357055115529177773315908226257669280441326498144988682145963198401571149741199914998273468371483888761592719950488901367563206647329311616907824292147780963335051567241272019854466813046949186783968182736294914879337779672833152660232679619005194270505554086200868071278606279171955645371060283458543809619308689900890408051938726891966330431941168373243080818553973242325477962200491007115653065924401851598251100599615174720088605180319465040354930647699934453844219347479379573956332773252017832610205741930914885782851437621089529250451265601226978177112638577992518834751866151294325450519729674044469563151993747688206572064997103931522115140696392429343920071418156127665020857321203586491174409642335643479410883457764989698902606095740821232262413070857182383597339760841231679791074572763881305546092968602871465146413486320272956273581893778059371170011576393863434329319043223461756175809624192344609197280177749055242950018027427158784189948814097428380322634791102363753189290764645742231294575657911316300273986193404348070576235055533963509489910552306372341670150955789492221434656693112076538046008690416157814610505338364524108497124214639949001408825159961304866168202096478328411019479500601433467313546659240789660897015302712720098641804632893550524795343046002976140955771563269134653138130541337051356516715488562599172267057759504189484187192933659895992382522563612174105781163993547096206284973369871550466079775289727528475799513197930234417968345087862212608601540004649564145719544419735173576621568108033817659690580188926774899001008650055809044403873790659056546360923023790793492935372920025462379791936640703845347645864488746437212760290321864750344573856770131386560606805972371993729900545296394750450903610088428017936745380932699364475842032697212457946761601481654509341161887485753057647687013139831455119974289708235443268206747590898466910572186637044199083190782691015245464001550976157295700374990998318823693774141886762185903252597253784727897591348258422228392287788512986665425525438057767243682575836217469089231458532421196805917803578987086430913440446683853958075258910717434347729768591535728590241222384379890905866998429868584706937133397688401163407353951824382538222543644565102686687898804210027090791972709811136328994773789940173577877302018801006122634030575564016358974106244439537253081149777092668017315623106504905076030575448374687715379648825132924680099147370883674175188202572673831879352369650695571573687577182727811561875775063494613889304550262445494997266580192385989581960159743520498664410052913581682933451743651615087394276999786208463953694091069850531331656935394448974261118145243840772994403467297360525788506055974326741965808775335114451460263322871026878285550872959923289235310671141485666296978590826150412747793560611604744773603791175723146445417498545253966143154257056776252206395402790505653163897168609344003206979063163078268338534539623546008720380356660314115097754740610579005190712969396720373068674762737054050508455040929015863242939263562704967060771495400442200178898573448200042900480363457756599149267028179736878740539833716123864117344872942473663173174278773998294130133049336434849933230140830422962784894663108975389396282648985478095873433676354499891159430908958899856055879598386924297748584038967447763768496665777675743347404825701975084845313938283717851360261665187685754380994224850429632054985164227313606779775516425916761599546102333406385365946845538598054206724667535867414307014721488535724609732140524035450871664090008852971381039238927101587059048241719359176575715577288433524892834935605396487021624778376676397531364461293448481958588553233187244036243590755299855005789862481083646512269642288949734292722633254908385147160323494874476386480767820913316591800364389802433431400139206531157037182950161310319011287180745891327078185718310877869159560324980953923206151259446023339612490082613334105003399285129961433922174662527200448706347645008265253277261020227184090546659702213115459348281384028444272871873672952061807871874266206563892947437909822501901774353437405912398020536623821289087156180791619307762141142060856403604621205890493065666904319385871033033018923516767239906421248233572312173867819489163876610350371563026323303776537248093400568004470105764033356426360308929755865857182159423547870415761212933950758466259609411009005507795302573990843904384223121066887473123601703421423642668397476551592742184185267203502225502966556718879490644073046967383868302200641748693804825972550084443357852601815567261675063093948209307492686250693166483365266532143529092137291686095624689473059894779219101807859881721750555587860589574874374209761819778767779101104993371963035713275071739549760018214068882834520951003135271350959119737626389563691341897944991057407353917248146682712915885624434048699762099250530565059041847021272254991430495138879649669824421989775251307612053876718697835865076362451185912972808943989463026479137692364011830448851469067063501588722289492382133791791621301303325181760399166297020171761662152340801840784923686629162588473983428119572690959212221746075894122276478452828619196356087727250569822928608022346828671357747775303624615640697962465240821752394970571074684537783010967300251159877422072675581336463572134358835320821578186391144432348971518228107253569950835868832889695898396677112206054832731689772493305393890963232714423583669714920252419892389779456020795134760205816987366465456445898869415271044970984177794408537681074704082992348750505467184217205866845924196423841484252702933682069015325150636190497843041582490952278993034634299528245229115862918433940362740173264227122994507336488421149454257803097522211809296294724626981890438401335289930054043452033351385273307690364441555323201556957093503098293585532795239507745474768072411383541302839806402808324411609364713508894377088640801288360461204272315553938544994062583712700986207197957160160404371907109864139194476923780813534212956417986000333277818146363323902016153465445822804653971875209491467695136299461211700225147685612030223483340598989264954142189790254762715177420848820371022258507705999569497996798589876223630842132620390830441748102275773301129932472737472514076428171695045984247806162532761713482655246117171385026144968059258797836019944620817164881522125474201329637920434027575949891580668775839410703665633245529926546603550109318931987497759585053417473597195591474869253787078178586238379957262410152106152778685600393085123523816781365166393803201370402150510438054337832014042933972542979701686473973693912600309040877720766799145071034134915514639540120841537808789982739472042306765890832073147137696540077482172423859411706328351025909757930084639059153826580673245866730457721863196476180366777354107139068256439691008999985628966336113353891260055772172196739373079046914671156972565021353623488641568624080210084325440746776335044099685506393523878119793168590523267334463928242932728155779123633296489409643836691677685427969416393395042156421763653202470630889932063256261909300954433643200618288486707218876938061457064590646456044786252515206692222684585310587590133424258570233631534991623904238188947185177504014304335235592794777666620170139953414207494020325893359254792588185109982637933810339483028772815353847557011684371223103766201013976734231379761774456084575856954211020359388251931791081586368046788341659298795162554822999517901680855941138972535561507458733592841706915792685984347307605872965076026155987856029538139214621589224784558022632080751115469423283600076242004518829672030963910286188637379378481604741761537730911663037916298543931323880478910122406829183682733887847928653777275862254249023284357847492035925064883664297913969961903412678973906440958367463160380956613986681927808538231390950551037626078320247538193657443488276989610939787432901284206453825946722124949420573876971559982274426638336452336650023337079325357899163394880965484897585287403335738001978283981127865011340947177099719468247410772138532665360139746228612040521958699543758092091312666991541966722681971848460958605863354634254353533347744603860312377085235581488779508820082270433949863967286706454236565363602302332024308596044262695235824909102077808810074129088847299340741031052988668193863718024831012642112143898032938489668194527700478562923773574528481724589798548360794032893770691832347224845727470342430785475574920593653031891403092315692436027499913749796600808716486365182728963559389472553372607973066329689516622002972574157689505097962373386952636663066305024217227545224854227571611696928709962195582936378042330648442595252304959888872172121581926588386151198860468346096192408966442778080220175792457674660810327723490008738241053932083300145483854061437760904044037250785549511064697792541757368169869133467685317002080770190952766511245185634734302457757110443812804865767365062595166360963865224798758120749286055242635739553006123087648803836751302190242953547723624667956965377228509406879942555019332770050136182575946146362033563209541577627932647656978066570444702276199154604655031304673099688621127488660261451888729116608645695783146008134569850677109502074780142330544942213863090088040208876398931447213324291330390090194266709142704750915441070021619840644816350420783659784004270616753088616076006229813296075454682738905312806293010799762263915149001783076180384449585973488709586996878955270663579286559903081675975697226576318739817370263174401462304760834563756551557202547149982061035740748127722705188583606086873464817752368471039282469323261082743683901951987678718233407206698898762695233936831189395394347422817746766118642356081629182897146336420716608386559396920625026103748816081205884865695158187585251861496300422504359672993605312132669864200760351774884426902126856326083521961243351270151313165684860951709633695246645282270309805834704903572915249698886269515135943126633747464382121786435820997764666467219596028262562717937149062664400597157276117299824690244077572357495870845144831063269708998880619042310882310038499660080187888483764407154067998142256746412474490130731998894816028007283585665473891337723959774179604210206887322517461590747512841044906285831870809640747984176226024050588973348751846209135029924156533206508939527276813008806565908834913601241509972272639177701207969809192121371158741456106131896728054579152960823926688754132023746831698712667411883801254474840857113997134467632790118494978759366651320665316486047274621979088971925442833069772551992119749878849929542579264530874823545694720701279137223230965683403638789388627753774557372369187134503895679056956098193093749161960245774790983270756317909539326166497243710592499880367590123679764740403431000974337439866062931858366106108103226137674043048356094987058912574544875248913140585939440947875946743815259762197696244932807699571743956339792447249633091554970082615946285766795314523886398637001478888890052100760302861169425637861040573037440330102015721714424689461254201576084413163829262978442190490514776880667771624016647497448944037696514117451341175623088673449366629103386677030534939331957986843348001088645750207197639149423095825023644169630386682475012565836685533637544608479539092035257242193323734257573267913312459049056944539530307995265787312281874890099610712552275646308534040950995020456335396137119944873918415449220624714987931144538994535055776438168583548757281887227920121531196180849475917884153469247160450848271168877911701327135510697623216211425667008048981693118474369845397746257212607508424299495277052678504102548084089241238400504004183056557227248020425411039070055823942546011649931076010081999387229419160570417982341844158841835355618610181354958900649873827943476129531572963031255212499191682355295646635033734081984990169064597710017823978936358368301549846772385780013603468088157621451978956924758665566981950408235030911706639848466027538024041701352561628306495790855459517955370228888055497799442113740474931954456788036007662821846064026838924495683229459683031955023030592603023114509727865996121947454540663467433433239972565762060786725978760791952264803709767608843089098978070689530435545087925860333362543630226264864433691525275490736588477004187059444477621156507551028931352400702491905116982223630761057600207520743259035209462968698023330460967088796999370729487322347436274362658585298050580752615434652547832424308716361246331087360667144732859261861830297615939225783766994560851945160174012126489418504990664288546818540945381114370745760586581344395759751928434169778886624961792152527113959114439128028047392730084494212193863106884637931910684055645946693060187599789866874527024493893588564110126888328872847729451945043297755580327862083818839252993826525615024059410746683025307543549540411323752843745618980595815670697028101589398806348074380777979242739282395890566626420751696328792785463023466276055091664015335428501429020713987731169792741527377552252856003918758256435792984318864314522467360198804212206588290382375160637131272077527063415720443991692506312728555430801866737129507271697405367976167640210508518476295171472501849087931466621299591938101210860568498842790651682880186145178503199778463234983770767037766672853667950936798803210966940569057238153353498498637804527026427774194492393150965024764628999123978539383121848192901676571389348008337483338910568403239070437362387716454477619173702143548045743924075402952627405612713339249876831744868054827286691011723398690682006311524633067119281780057131317461730524753867066480948929907552492597132307127300515523159816673629383233752493526378418632501398607437083385446735528557692790912482262874390190316377177425392291350469559422668153753474866764943052118867363089597281290609674283649078267564499958582331894433137477394897471806543620072917629137655225719982527960036458200876994045583590941993887161755608138721652735568937476126094051045701208710095473717687363210317315357844307394224253931930047760471800383105316488618868104155795112216836249868642949670259912129592608705254808184800103872964787821198232529139222341819808632175057366777217640476653775251486199889487583135554402904618332674204595941243323980269856358706715537358291574806114192781697892236283758296610883403951408930659460410755393039636204924943860882067442274965674115724766788399313546310630658599192328965969358166831952143320636346051256926144902088382782381064762863384841635693015577023624965220523498222012107323066782604649465955559691529585601882366306693302099998967543757323022906758781475776833201940783463138114169819524550139075303417299087495963537997863319982018751814456539984977020539819494833981749071791018927483145991806772768172570590065428820655348491115441596029477896919110107056505087567456306561166617335248372728040852521744475193743782134163962686203404460796609678860250232874546382387084454636428841439667113210610122690683485474507098968716567709095449808776114461445566455374295276663478650084040590257836462176480130924174481019190570126922931305072226594112456988778792857109352942700496736704201953869298774012481449861585945002380903755089670931879726277267669191475023723660483102985799448176102782791825037170291072411558588848230867286267682392169605015579182082906917793403166834942969500503045009774681902081347878233310925292357570236517511723301101265723667587381056750745815365033041100727132247464059729656526001025075625473862696015259250498964431201410310976799571628709488758964442144432389890167755652998384297215447178252268137280562078138739038117123881755946832445347083494637538547129136363775358435135313425399890662471466141548039264498197224823830932481039969222029865025425599164323254763625923234360040211313827449982490235537576545095070843399988136013011300662622928202833669748845937978540308674576050976566963357460063059913587848677315993409917773862793706881855567400992918094926368684194874382432985059890718893051033496597751136127859784419731232808633542197950151629999317140073215142009154688013819869428224719046841113374630426092724110514901389933679318290460103910984256049769532317126068147961147840643647557358520772703721182888446418549985785013268693681957809000576364168437602956244024458719899178292027028238747955476246921042632070747696616704128964284057747196940642665574498172842828883053601852424030329505833379323563103166827214955012577753000202847221370103124106670897956275733548187803527988201937203568030045564698380973700759342147890815521928065402433633417368984583096932043366107009027943636799687536884415275679095039961323322861840322108476284795050302318105213855939763032498168986304313134651788958259378028001886046677309806171193147046413565767595445144306482640696845408887880289134173853678338755149739418426331252720414312468848661543487147697715347943450517848894495029335945420861429311702134979469115283026298904548741349119574235647334846060038618105473417501188100285321381508315458009339360209400076786493458111075635893425476766081211374309329766208900753086473012114038330911083674912070100901122350394239557481956458011353930467695219288454659144750540369254868351469124117381414080361102899889319615104655530392350076036488900669282535345861727306274010512730653137242416703040720733252039187393581507642585472303114469342298572128540288968972131093025027940987427475161554498381097608284135285136112414998321283913230374811312629267663603165411695860838202722432301773944742384521881390846662147822827566669813041215921424351719471354927361897597576852120615234420420816538951806183449115300005161687491304728007108165010258541815601908205690276651325145893987803591362406027088691129335367774268426156935381856633335143856486410895963354336142829163310625641357434025542925969861851414485704674669871412662758562211636651389969633258518396025388495313461212478928396695995238009721934643559384810927100398781786983105352592963935334452851105244766866189564239467351242945677913232393825968705471618316221525159154177776099634618393332685951452089012616420180500712481299555913183206195632957939217508649643265310138082430115647042567340494421692978579007316249779652548893034101070506240543327308716215885218502560724315317766546435857704372186021883331577509869766337587590012818464980250900974494833441917416554054130552016475153725180703445255113226642983220947960744604038575001273133867329820640630962578496204409036896296635390229113930917163404299014354080235870639791597574304264099307574261501750274472223026360153494984788220961188973345837504051914580756390608283842886384489387504757352219552440739994356469359140273337552754376740431214630506726068829319171082869053534534058628453537781110258048387437946864374552841554146147159906536827654585393226954130296681639459268854504780469878123839301597145452166185559707596395864519718965677931820712923575568266915572108611919196378359619846107578280835988024902879734070879016692414079075343714261269558022144650225288824419549149560650745379936974663522275312751946633187056913239518314397500236629747002151568919139111317909209744539202321386355690666445656147870043018265915459819071225306121024241793570750479885607991672142681934817330789733005943600142881866448573150391934455301719934392264796565919233909416812985728843524023008394503048104185653468903608283310015762901764286458305185717096785768084388210268561395931015875222667773687640342954737128212604710025744677431909009728471652296243291685702404245327733548236907002710724375438391060526076803411267313005162280351785233466155948021584216031908177625078656066367242938064375129793152471204730786623170115074433452205777237742010259875700751813382540600389786371913033681970163598062518366853385619656233730477674498433581894807697390495147913232143451213464461392483674925305693563752962673736448807746369800533164367693672071670403890907617174557388172077993597459255025037447979822647634330849141749122109808862325623877332712731830708505647307627141443837277708716561623602676370715645222496907926831280897203142864066813724559468063038480115195439378026762736767589393395146003322127468624338007135430620580476409491291047860044037586150223222122517267839606057181715616227296748536943389751528838661285925959658885071451838449473082708826638356718000747302395384959418412121014995298889052719098338650193951697322562352614305373305890438707082548317570788168184507952175740230100539488110590436249675632838884167841230987717039299773603756693328109863557168811521354181167555045816176835870031725877302447919399883982274883875817898645682553721064264927995300335388371613308081149655958397631595381129460121751514425592312156870769131526659675367227736818127912662786443490871202498759672931171344660549257500107644795821471577619053966349497243276421873717798895124683617795940886155128724863888724372629280267791982101809605501844613850797252657397513294691810143176800921801438829382676374768257463004428403395357299132440628046016649090038723517236059334792875632195319004377055623613546683449680461877198235605581646513861559008085553506129707294717573885470716125320137081997514821573110255225314440406694057621198438384923342798526672014016185682556934328723491321740487288160003104453730404135775466877639143917215079781466974717513552902442620394012342998314094264958651731176507970523083686562809652509666783098874792778874128485129886925680116938171939780493266064444441704455566593998066194189341342517563351566705553001993855235294318285119673927887291904480560453230116892178892998254280347247697147675301843058987153385111039643672938845039348385291538052300947201781770815194022448964475130807602652949351406414327766450938867943019810821659958781447510523594279493271875178539928011075433774037035094324784029053729419785203815132556509444437921423508487676639161618888333129249776353800485567854268370150913195156834299319787214806617419936157319526449653602783587011182520501875523497935318748867764288722533858927935732211487990940589119929568991059218934790957924668578276323137307942554283167287463329241690684412566044414434347857344673287345216325669326553430581827430621694914380062328420474135976648204381096864844812578903988646618431615496868495465334722120481967335247643843112301032558435455449965302703640572145456929956495145339377002139351398098674718074526332306508104540453384835265921294052191358157378582616493455383941497475384551039287573740513970797278603164505397934788813938793234524149200022621137867775001636190178043416319146836328157642347501603771039843379163637492567659304563997823686281252983142970665800200579790231786493131658336147762050638154796283831671925740356578609805472970813230911488213980110715521011237578433625474969597145950083864720356061262844904480060091665123080943175453778337338768871928693505001699209460938272645475298516224542633060377286506037767029541230550445183070985858628189670193322847875232799764370668833144474087177178598348743453913203886777353393147296592295722568448883369316517086385498624100428897954929922990355355034687500325559118264655912216703820196100489719053496937847217710260357195338489297626827409389249287104366086549643407293889303861069218161885958857159380176215462521375303581126856124584550956599398117261671763901182060285028453861368891767573152511831494425610656345809861726174853263459911791840178224629895243756821183585001346519446453946643242865849764422998815765476327870460098373284383295478179645988010764619227436693761257011989863819647820538172441912606946841115283706559343260331949835330555876731314211835040505337770357062404499800153522257283371932306927012494930821692853272772966916080409925847553673368024529532484113504514400107791366960669278238534135760964161373673697177184093266338017425776812498840080125762278744068469389742104520310893589967429950792647983359909528349073888601794749102499821541402012785692479117522609108672099542498181755797836921686018179375268886338763641166874973422158871027664042721497828498555101961228621177496820468868818596717407251431291562288412772537253615234330569125999790714913124911222288255396965440611631699206333622681917912411505940208806687731841082813943707919887176889107852761568886056735831740968762139526756586491241639267966312345966438797652236687205631379088863650570541692400254937106118810371501658318145406472679285780123240933486523336447083188490066649814668915029664637499373646448315229447256690374381652847355793000175985994356860974761328448099306894256382541815226663902544088992210789974224399980039035855646109333908960093256921812225522579744854911309746231536510871490745776478518023061715682343488592212178320368130168407136836997544044883319297369581899862217046884456463518527762300772056486126570461611457519042529438561124070733849552654236640784863426920050032153201841449629877118243058969663770688432873122700864447086281753674816857996208956335651498608073851664594461113744510736588565364319347818030427747390335318031135373333773622405844552030865616181778479074442929746200569318925054654992595773572711173176676794967376046473814780315319705317964912036409918851533340137952850798799624070882807685384199132618736650628085030376633105666823032795071576537252598032220996537360664456823987901504412221534808700187929324594727538007103053585458561330907221214815062150605580171236467308601213489666293737626450759405746305673882463625763227857681639011854520244429668997245859631504961487935491060030711489475939634798276286258599696549299915622372667083260020731140830576080159439337494303054460331267128303077596980606175051064925333967749887570925005018444937210916909758115048208973459044184431965781656608339403702697558613486295003628563895892698503430179409600785158237255638476242278261218550711125514737104846341143869151004406357967242967058922076185128533652708323245433262464823804697116155305497300539246992739106237929330186498444373612614303876654206404177756229673481195620086104154738343994903136409562380746870183010448357310302076129566191671630272141110621520250779041099932652489561248900052825498822620416289798505650804283068518397377102997401605668307333755160561517149168964837992327799338183045545986868697628025960604820938629824916458596254806299827684044736023753790950987964860185801081056237922081233263237524401669652095790910180954271532006544866773691883374525167901276474671719797127089475223409913516280566916494834594933019609373452878707829845896417889132584787359070075145085220971337109072597524305137697781099141107309074745958649122759217957057134193756159501349620306836757188633046927332628362443506110842316214371498975783783944147857411957604485343449782035173851129479669531907121718526760050096272010221907148976339286171424275676947872541312080261824644760948412070916418361011975516687756136734561179613493565757823931697704870553145387285036879677330308501401799877548676822284019813309561369081550560082783156249528507305226349154284348164742697487474852760527133927427930412300252131540068860972813823491716646811890251471769506271789632548151776302476829313620822747870343966818370203224268083477241812315537956451208450413810776312145577785942674651929239498714849830563965542070982178631773254824709424674771260262994560712209529685665757764497119300140174029825427631759957956745660363948475188231159024662917197774961422414608660835202934727659553970415451025486696662929550248378719043449599381145842724463109019078585807443349830061042374603878253014708244421017691376003616176448184469736162527489861980537897038575351266336490317165721841609209447336131751908623032595172923120856336062814194915874206587262276786426358047888367815489720700776320272179833308924499443687887102781977703541806713861000088848504868133224468505779660675805409355618322687795968226852550675712050090468189373594008320194336250392048542981881763595866850574306067359894754608240012793514056063868174202465246498284339394015267050931226658353386738169668698177934794248701764102602698343330032442534209744307118359197021284350664695663636906993853450294488733407723621308672216766310775959962339134960278410568275062335644472982396734675378761448739506618875185963043289744639008508445500051881310576943251522461506635229637866110916883302532252460555078482402108459430387757723557604955747559310764454693876858356049857122901645840227517560565235735634294466217684340418795346816035424495699860845098847067799994256514709560823362296479318677363382844382268336676500963597345705150379868097441363576540592318668291745809193683090716288323513441586448304521914536278149933956464554474295406677167089408475858420134619018545784024275293435437077057940111132448417436973694141731798623982638714952065301955691037748227582076598772356496606007522135585699547418294162224717809999852776547379945007291643514735536239371597984217328293771941011169071417319858148937348664584868686853674138755368258144241464932970079053448001499254249371105950791040355571292900961891556425346952945392985812969842035404709774912505056546748452226680619619798743561335476441093729392092345806822812758661736372464752434515360569459506016318519884972663437852825484443406459132326998043747616048271153090230647271889864039111816258582072928525872908718966136339402628001425215935560848675272415104975287539655821060523061270531007221070589177732018901936851194820550017228933066095269147675749872271168165619309630072141408913504350314174784686672288241604524811692128732006764806807973153252131023930613354195528621392938929980553621008767083395373622266326419374709408784322339289504793799471800629017040215532291846376978173226364728276095610677700631688215191289364617603446981664429402593013841273118018126996675668323713231616804588161828911161665064503574700464186818263818490242678990553063233362125992329997990199666567694659841802056359403399129958513772063540721199786095491675504136529869280357519628788868363973280222907353109298727144812209741690575004936353605219790527388156504332078335077335158462269711334238874234480086224378555867006408384388202836544605263369339660144235115596164646073413346105499495471449942859297857173553497857073209856204717103013621223875651652914010741490849708307028873672902760380383269529009398928072641025183027302470527638794774119096137326196034848093985360691273909534933798074884510467120976217526411540480608317668703229959935582322044101276862327256663389866203411718775520890695652869966561047051617663309954719167209607129237736102297670256240423593305876587087881274551704918548634737330218741701307795646715509278916357321899914026375038900515222025509078357869360568974837040266449300253238714699580331693723997137214753744798972200935912380668554518175599979126430136570264734508587415690090797263803848166687738512815188494868218704347818941425294592365447627640572583313632804029925042634697145680051471628642511226569559410255007270698659024009292170481348360048908133357386665948862525096818255011253971395070238704787540591587739899370106590860939895477173698841886847518886288729563176730146288458348423803803840932281883716831203429379320979804887534461199597799334574829857176641516228773478775511112006163172070317799166191147023469271937544823335756726794490979862296527163533738877713121035887682739259793285466002501393178484151994574876493506021884841535339481645864245924865034638574534773813566617820521281446080053038386297526605318264817258791654256196745586586443905030181711306261868078315468414650506901936723267824877412424884735866266707588822927701572687224906811438579512573594114812593921452982067149053422675541430763807087568903844733493072099376384610651007086552088276443756495717946609677278997988147765392207431544003017724324029173705550116174019190763784801883150330181978497248639817321193954774423617655632770429428006650571874342738739945322828069218819169730294493345379366920739278868289591087007985737587111105572771132731673519472884927949652025535201027373335091618350387581414267273288821473395271953798263042265757209291544734489633430049635756270781218924018852922680805734515288521306960507247568790944813936031754276586738079168282840150443100272405174965097712864411937014744814931133518701804309119617998728463532077016803276444556796730216046466605359134062624117049789156983451005111088010208873853411837177023521311690720798001916128100765200568340344138673125795302874458305712595817732939974619471479047451896558012580955880450710890451720246815466345107541591679267952106905294406897389223211819511707792207302784849533991225546857357485564378737984428102006010202668611501515097240360696974675223005638941348395281234689892802866864443719054579112995420567954868441050946368100570387428916536845384269282130843682361758220983151721563398146092212070728812015353277310589076896916585205836701126734071310163499146850277622479161656404811496164386274437922630262111577841709314268488701908015951942482866397579044972355072862398539120301048978969921345889708517375269982381755826025758322536560183405435916778994563829120734333073593966577725251146124472901584164651855171131935433992925435109178835020919889845046831583276001994749456118468147047611124115071500122208377248799462038509378459511680877910165128748743579937628911028955959723022097802574852641015538610841010856771818937191374620035100808960728388078344386099928513700414705970625300304511035732500222169102932296821012484307546411860232449116409409822584244621935550366459696656292273068928783867805782223038879008230322583102602570491199007950779037408500703293880531681836165181710628126441195797538104027690178184136011612175982427759133337219140599124946395129636036336067344658555331045621044702438305703483375157142254304567281470192173165712914221675277314763521805058178590047025626992468550215221966371438421391187894131815648097130717925198689526890469421334304081245141166165502867428632817396494660702247811771625609778686936127758501172668857038019277533070284343598949981367101719177845016548132348412274480550817214499857588324779042257011633817168741397070298294294727105931416060571057234323871244648317030957427027393352620655933753646161163851471605940246413537974406140775725164778866037835128413227354286902513086002285523033063859793299264181802556610116495601698938587395263773043728711426085115213634247726598171401644034193552359589940083006452132151150008375613794253070305126544527258293485391368745241755157652050551136169496194099834321913965084436466591903594351324132910092053726951825758715754463459808444793289130152811775375018601274832286441661763731131100260605248078139893017411398105948867873528852137547039239557827655393917937275770220289716514248738403447560024725985995033347500460074348397530771368573867172009493475109776623626181129716376452158648737471120781930853516794611620659383209719309379148346264353997164534994972406006936256793218005735891574186869779760455430170702893762804588254204931409484546782239233445846083612619183095662794084122520147991352758266753643818737498288348507922679409815847118824589630248271246689445247286263159349640987793340754651045575773550543648561750977684043023774312514761723681082142536238977608949317228619910648936060492522537281760147483855707281116903538300276164037501561380194864366377546956589431485882459938709808387606409760432296974699263563826741477882437380642804150683721972662220847739421001392941031648267920129612675240752959078233186115255251105326995071469058956559745314805041267374800704338049884671847866667230922947380364306039681617262602568944865836156334958859248539358427613482636743545716760305851046997541252629745730694661851723677639280963668418125424052423062755876398551435094911298403767902565327725843865549218560346119302186127489104817782961074023535493438277177358762338964312124495939134742663400538797413002732893015622384485162222203480791653659418092871197203115970732261527559497394036711495969097263580105569881580779433222099009590388959856963722535123456601012965835010399257993643709237283069159643032742945566404560184943453581528714730184370946283683445239292398769654634631149822451868601748682521126801550204339139363487674454090160415664168694566548313285215634890946123863523770683606920298059670676458031991014254283703593091784567156460521957706259811050007093662112665902454298564895701313322750222567172655516189846418063659371511130699884772997918374420932912584083662030799552671175771602073121971406358651093995777936881417947145892101638138606232420193832096270181401381827017832140512476915307337976507461810193665465963356502892794097172544633853836163875669422637874650073831563985671423203730287944929306893463558541506942557032900033879572936746786195102302009661047424927635715593533396242448896563159730253038861395522492425047791913975965592277597444124279799533087575318161276525385670456923134128969374987891176244549731265649080484045341048386723989458701561693725027329919129986230285573872628148974012594265852425308223955622265604464346885614337573205022537126332339230488546039058136498501937834621279550102150404259803584345445408200289821074641926254044894303703699673211004945768523577341487502150211702342831222969567041512989546174897441539641628612304419987122643649515654232209923747367955182182056394918196202946276039516406359980139779137796211867587333407242340597078569290890101710741047767271467559593115952302356735308944306653686318789611003281212266179678911624245562024526181145629363818916808442090439976982560854010090041646882716638197352363683473382261207543150233438307848454153572390861151229824205370644566797881932959245642014721328858011557522806547179804369821237519375150445967604225389675554101494185189231102545923263937041776296545793201631619544541652424135034211309281153452550819197671279710677101096252416160540326664608840596329081423645963166956129522599856464399271816159979567135350181918264177641935115515166841305529979517845557170043526886280275376183119789307479999102102016594092148383546249687936286178529314536031932323342973816440302137043885282831098088729301271362249542997167134791887986272102823379477248724914400421123473423115190792401987038612302810670219243854665387434739783930255776628290601812367883981207263360943723721367724800994743652881199279147805679491789631680981315499659367617005927176241176481285697812227469835468783998014965667914754481824578218362733101879687538349870857126009509890116358450799798820131641667618019859860560925964749355666241881618924521918702494124869274275201974197264064997211199200118574111015500652096714552560444126506687394593327957078584048723713657465640227067423935233153947183422746874449850634009990926159279609331193793185283630033443964294054141222751956545884137882001537325234930231769298146348648215139988419627102367919565717364683749883184219996698369633920476050691449206730411495399503067281054855530020059270012071812110931396953907316086635828599652688222847818183795582490210345418881248899412849282614879370981396681953564794409911541550410197570538374844833405588195193835762495403202356775553293905211451631895959974935190744375068480548664436624394015124973014361130707850802245156892700805885574526355827101404700590384498822300817157666821132868163833569483323088232518718033171910186118026663595684652925795717853829398544751851402708393220407125982344026052971534268896601859061776035264706363717241538743889944914951530829915633111413302306626028455449104496868223252530783841283752557078200508881367116301182542292186240695828978478528469121911493469391191072775317555936618515563304946757642292466671277751570212903684382695976944213777385290467066126914207486656333496367956655276689669361797514482706249931597211965811605419630472789022368341556777106912845100593415603970551503460532573046032111141348899906418973180667405488019969208952361613542854362790657543658624683932303504635481595752566716916382727212609696580328732656669508852764437526622733404433023782669679871830697802633370072039392925399868274597814698990773948070165203934752071890952649475012189481728781043093771353612693718911228371092338253652163771066563601726495894665083815185185359644271778050545801588321479307809138522173651821299494064185215498677679354108924861887170766023436530854407125162618779831434832434480640047531564699904201618624007916245655322695647278552826231386430534134466852104404703548410131103676747098811429977485866913195609348141404500757399605035793590392876663643936380130494438169872896239504506777633197262902887763794535991213079606959789667409386129002171469679267625596753461043646301576189560021345762572693383858288469225715182335732859842930357362382732620930535194923832734583045880329984248880161879105560214445247820149675359454424992727338924506851143421092944275836567513660865198921731078776585275873769268484837529760734952697897647340813423417458796044468509557295300658783936124823461928484130518510541377883786685211783391148587749741642334304962551562608985985623274011521991101938512581906126706527070524079177448780987184602875330511589308295219591909111503582004299895148877756736590925075762761889040066141378197999277206451733913378114626491324340815393688486949207527039589580835400920518212708867250106072538474704761888575023873699910055636930437817556222369215055481793938523103583600304031534590835566979199137805699683200208711674521005784266079562316833564314183709322427620548909658590916519417922141870113761189531487640249252114815225939140705439654414032641825615060721067569577504350278978518540993651544782278991448080170028327480087218777559489022952242894153920162244893231189827368023444343681201154990974152233900605578010970555877132580591624376863031670566687846390086736875184317020402466332127893831763856190582546064025640611934144311823675715778430656779619302466474241361036404996777850113617718363676670797718661815000911467639960156334769501344176489256911836369797109368921609009000653088491402624619872184254630498197211057924075295181364048031463582168303971560362494944044973686892946893571324329254175238573601222804737818883716774233831572215560504130983892305577585160922086146711289215832855312387985724343585831891901064345951381280816011853142315871133400222427420216916771348187541428761191368899157040829867197946750692957762796343059521864212373342265874838549930282135934946349354741104986933060382114872128514360005471921365378029360604725712829943995947203231763763291470435130059264511698461039797112398754550040893984317562646939587224697288453759635096328110944711450560237141640786106280881243557725825486301528308744169455595977653640783194683301048298696451069845765505629075065078447572791256601419346143594935232417284353123358557189282587584327560229823908904715753641028772991090538797705305461596791743111505579118755269753064106398862856427687531085361515916016737991608496051086935983899088938209417906119426227594098580693781645038903642370633981293914213713967794526478436840425410933748506619856131630054985013373251473385488716075898821125278346456312153570459120558841403583359440803848306615230424328330507927948911099914755306950783856114376246159445263648781853124880135994387885145658490108845914971511610265321184636878973478005771540349901764268229037204920463597447583671783979337135653783674933789771089423745010880555594429424478708278885356539061281575991841911879630734945224328922211105620783131431319191305560655753843762793058737074954869190179859631769081339335972120702895116604236159790454292647556061698564307381122324983509047606363738201225798407613322729042936687399236655844810708708147975486614999382069689821822242196201180448738076622206169086062794214923205315026274362516529614069632880237789120303841119344780374574167741636856214478593242776335962150111488367165170874528706541974956925315095839595171691109915989758375629112359872271356553199553994279666059901087874663178744887095642904216618880055858930877704637959567465560029916925907215107130184594465465014140302329383238850834138558396860572847662241122746824502180182606087804390914138619895236608226246426660639796863100482660116046313103998471722483131656686394987553026672506803051918790326111589479692164748270021204316963607189174113561277967535599005426354312684217148336575540763621281983300535590787646878342711728840740726839382684574415254887748930174983584992714403014064801647391796348693426143439442081720997120100899940531597225909469848779677815767682541510893315602954220003616467370736505704571260988723088158036027011766334854847236367526016702049214253284179555831946833938747731930431461851270213761425529794859317312227329060710157622175708565739521213032177734707346282347416809293242264321136277098884863928512383099543814499803940001725931886810477359885051816060194062099864026446942998068903323477923610628804211172781158420303243469675195771013767991068788355405961242892736074205158370287691000060612424971821500734466940496017394590535129263743470505728202342993096027328058861853060134181295894461911866401374463350387964769480897668680029151725674839322574971738972775891244747637076486336341370324198987952419563031425323094606673328129786799449957528830115468445505022685974287631098745378542857410304415397786422568990823215242383347536225862912877853529527207041490635967759968197975646808259014405277856551183666211203732320581834165954507735377698638423668389386225040948066494212410938645654790686126637407615929982513130054167483804290895814392945064668846470930951469968248133519221470471889040888416402335695795230339906967160528834859799544483208296707701725590013543904233792224334851100977837482528545426064663361722988078482153558929698374062148955660365638789232621365540283427343402691349354683089412411345321227720046912880735738192156476589937444074604505283708210667473127372193463828991788422926191482499501372031045937983669728326824256070018830484809665189845849064630038963380420309042690024201534046729081895877241043898925743301366062464372827748968936706232664799978656122450652008385849613799911740273699695522133955384170544638239124467498870459360693750697134543361989124370520181403681016489501100213127458701446413593859295194691765101959027759152817722961078667937719741248698125325096959605923612439300129259489966257265228644899234994675127838534892451628115952524543170173757794717392871014979835629937493802441699518875726877674191471559076015801408181623645211572721058789586928046352366521747097435147648693643029144350937561965362789626384898450221747734358808581083388362070065914973418230814866781108757106551542236774948331383428316614873556302821526673555964733811051461708369167464683784785906642046911336479266346643622698365189905700725993521502942557296092571191515968571843317512880900738875153138595996462128593266328233136640306944918355994266530499553350826571136820117248835928590542391352710707392911601348892783263101192416336313326094436668867861684475727925140019572688125888185860693486699459381120886094993678417660534209031534899449520840000504575700440234201799225905436588695188551885588212359783623549325461095446858826864748407086539534028138070029542102328397518931938155438858154918503064268710446934509375787409198091793683597286032946717420341661482494412603311840002337576735819921242074241148456298979089954638630460437592780469538393101299907685373045957427766152479547000852092871209232672181720729884877823370916522186979043540854225594717655329940167146592302156436828164216938881930227127158062372228268747719328050943187769192196647663447244547366705190893273456228903944670955272158973954997192972771793075136142947601567124326483614406432275312316454086660101374499621217748610753119334125505134539497822242064455177373436538135786320656765496930619984727760424356792204481167336473486203739273555334042932810978860509725443894463177038707780474422591183563078975081757871762476227723396823702733696556271951593982355199090000254602074698118272035573726462388123354257744045319066290872756526338614423894917203100895632373674748057770527790020138538539355947142437897735405113075176699483539268316072551078753783700592399476803597147608857400965088656440699491394417627528458687421329794005657107115553646581753377337460996184244726553622150305011671824744805605273586701554223114460129361035215256728490162239650946921904346650568956623988363828735677420802950568265403432761982379697848318581201251466313568119506810233219053422418780916294532067130183188670733802489657565492258656611502963005003953019178813081732256982485085415350691536540799261855255007867942647519708124833098884217583621551780604873154599763908207358979590676528588768267844393816554876766186390036920365908045478374189424546929840449574922105186497007878517505104938872740264834885965458088576460150788163356202852482165078552816165427426587868571160085926088017040451811096312626668725813621453450033826358495287642515828876016177425275246247655481495521292007668150343486112255931393383034192744039821547768649583356273009993414495642979145667901608470987855190331478019066192869240429979992520153684654156715920769163162657366401231679938612849990276865828268704867074055133517967259902562283965514555181361077012204655487913355877270251797449601353166556243959144086786159866358099424073805865673581076451313607137576584375144794832497383381465664136211010121426493002193711357211374213619738181250479643659536973802739465327279382358164590663170672557836425765028445943061304097960046176197915468971447464861825414796951289899901745651716874659839419927054900408010084117183136570527076257902485835947048380798901727876556648719551087742670047087203911840953137637659522272029618394454911115695708015106588194519547395954427279659575021901151579715806412775456965125757255826802220802821016970831749351838884696689445323559987911814498408682204175384504424326060491945013974553107430010620432084768693833132508087247691674788265065851225201784469061733070919323318568336101893242812719539706849408865138017683576612117859235212628888641766322629627113643184452213107372078855742351441270075422616662792509848043065811007389973416382126603576125952479833011743191137806139033605556249594839125361377729905173644655512746627342400248979507483818835771546967876726991260099082649911334390025511285867929084007220651517483812159098360571996430613712132310997719008949886542600564116799109601938460766466325297748494295148886131883696047490269688823076881853109960852782019029686036233872840074547394128913889448812305117282267314991838941156926068772331650696297276053951442860431610960760917741639144450164838264951155599101018725795528691628394156921745441781414016485440475184373317080765733253878193098005957811456133281093180239893699534050121899897192881575714936822847303445808491994739107646880739864633831310949951666340827437077021518951565230019285900933098580102415820094728359725069580653775155346885852184579484032054012891859639653173273202988445605367232586433328303779127343269529088007918801990672369487599704040375190844541194256995323899927938025273510213684188563476265593041540768006571418989303514081580619749893981828273438895762739229008724089831287049915796456711860810950746247316356153944383999972721487575496972577700197284907994075838041469476304829299462579898201534913693020537033569230309651352557544116516306609929183933044615640582710178482049001962853361696452078887885132695802723111418141861043756475933069558231438320357425694730253233692882129325052481822333696416805160391107108940250939167096013431742421219846298304720383763941939408244182289650602857015266899341124388271371189628318632277464118141446138889811745363709618541991647233580388472864227929595815626574309387066629454999442640630975656926244329409579815742970695886519922535300928420626917321546240181087944664561328450022537776121657634573556848129165294051843977911734766842806647515219482284356594963303882983894593368039733551698783861782409017531796744320561371260697612040979161285157039647539798925108783799066887517960120480840986313830864171744881824607454532654604732608025882865843577344378811841670080791405163315647631456936566503700145476280757115779831365785286167605805505871332117503653225034804177598359097971408578105575599579690409926992295700747910772922942523439788645012181158330387920276442838215351026068378053604487895325172420182601078694764063123896711443556852330402210348651407811657422471942743003399753010951252665771826096563400441972201816472453299195976246663390907075577265623755398597316153354173717400945704837830432282554280612772537074072056909588888244207926802928708598887692185901481860654479418831741547000899189433647260611166329600786949410530899461976783537341097540707066428334766132351842174954185854719240124116296140650258052061929892561230420269339905738880072671824282201157917447812863411138992422809501735069910037412786835491538971522250414984285207061363264419909587886324863019875696421744733057416034968517624024083121111994115073361460020937648271438550883879126530922079086547370943760013471748220098151500191301247272147757886471396374159084104014613840320184814030812631832400468691743089259528316384193579150984095058074558550680564310788506331775580332890947352441506581205832316028891029110405388033873721880944907263908959692086739058974659110998639679510859728679152299096277467916287586589456201915314900378952392740450459678812367347861552600463106526862586838759396640930684724939366243845924110093091100963033118137188840400226304329661280248043018013405263126302674209077502006613946975067422301778874340111420300820539987785315820103905272516058890955177985567053851726433282238828611935605145139328432290841527111125014278160636849407279432609186528092571948463274937033688581358128254386908667702301714118317696513989989476847490456167986316918436858386240881913688730848397780951963390857354179555754934593060988604092330564512295514167298600010540015110850693419887720624683366672908920780216671259425892427027058666566690290581460664836375920693258222355813448647814306990022424649285805701359787841352550187702366963531637596894697207418951870957004257697452773758430408285219796737154383607406274904993962534432890897191116994844517823134500956380258801446656255439533255657991791472285734872083659077426563147959652923554082364064989193133792692810083540266128803364310667517343654513686926894277286994851531895166525871232645800751660663916113264274417153994408018699658899764345512131915508378763134013505701189184199010249950754956938548510824505393363927886663912248400583968898272381185568544998126997473398315990044496890275085195538692686692555327051450968479892446629606586303404611052676865447945147544508497754136238187674294442402094065634075802602032984011927186827753659457145689973564348777549048131126798620109326163001946906101855988414037093238975998971388210095611547819021217828920915741235274444267037277433605071508540691181838680417893832477562579548495959642427279591127302518770450937143487426180409802035826508020059422171286609301685830460495038495693697126248479332846503004294483900499188213949819241952781785680275560805859488070794448285615630091217960030054757771126711592760182167921348122776044055045798057263214906481483208566244836736556604708956515980810345823710274590442571379378724517149209753519901363286205859281761416619653915884610604635923656465613028005622561024574871878318993681652638441602837185541019063004747459901736085658766120779821702722230788206153255753432354955536587323199933287175816660000297267833666971776859451921982280805763103822726599360612718390479062804319012986981275409229011422160520971527030624193197214603745159117557849124510795029386808063306239284889179917237665297911256019340050794235356551615276697900639580883568510052807580316370655682797526460419537540677270881814261014572270213418111478129184021002048782390379498537272534780893898032625316300891973447191460616127834962693953731045811014198462240713650362608111644133256851254468909875737151972301642494333224691254140047424788926150992466269129464007100186658384486566803650730074990625356345631815035389103439437457405279355209225370894823436309133566626327275709076110690051118507599215863943607375732280825648545788574780217350316100715354282768774962520459375252206010838931020969754077749933452504779510508716881777469086698708051935422687001774781905778500234093549115987366078755082814578951650067017864638127350437947867488029099294486203984452723967151495869825553282156261461297864174124454831168204852766226349316784672818642584874409778532647017435603035046782814667692029907412787378446383079011320730488723760270290942879288243971034755845055243392664273103554219352655951288078247914049688405638497080280739667954335023568203965372276342167678237305784911602530615949180957101061420273583677659620538556119987488573165170968200127207319577257649645787506370329759468874400802480581398585492583457019393609274628236658791847959126174743928448326995538351880929692256795724129470826311619979720129901510767463038965339793619319945826866173793749572267661245559733673192378748132959042141704729395547678358936491505669398308042294324173899053074855643552673587343676414568631568357563859543804983703673420822005689276649888464269191351904581179397297899714417842846588580803347982487970171842630622129358975059008659844771253809611628460115614234604135521901733141432980156641203453224978598367137264418799859342721920862381367895527907321557831098363558887018575928639690685406956173743384224553719752110328297738180745255933749591976817262756396181330656615857839593785320881477100652326934266438798369233938255001866897096958082295074036015132366743133423703247119573749661061221968823724555373739893071933625119881880090436309587783709656405731773450100200691439323161231402113783971370279455986039032860608156988649330416575532097310864880074796666368666506242564638639254144786645258847274748584929167407230021918134203691706828023214322110237311106239426768785064801926816384507567699624687111862476049479082493689417600133927324237290106120126205291887557151900773999957157925398084933127330706276451396435430006433029164584101236949936509165979895132110881597233995521613331081146205306649118549105233998875262709078478774736707543732308269028525215306642206888702402236596663128807335898547734341365552348842540111920666578050151325401415802477365822775897678611775221564191822528516369320155198546507507090746021789305361503390319244086428214374187627410029998797648279584045941956472493340294111691614712131111501307651060384838866310937113816740986595468681970844154329920519549617938757514325376046532818027267506758000240614433202091879494626455776497818074648043113767475059991428186546429650008574612056472295805145731020918252432394451683223560663954645847832083810342650257428845655846541159502789299629478085042082606902498705672324611605772978148522900403687053322125627928436638010776606961026343242739670421527925285428773172205408522478347063082410084130215979312074405112422453940588750201128749577303669884409450123709618663290048463782230562869871435078407811587961405212695798934854330837889811463895716743837785179690279260201267845621331291572883940171320031210591044458806652120412357177509585867176452658911227880372525541473332134459981138107582849767978195219001086963124704215957427283532876311158213580370639161182217254869253348235620847670394098981871346705811849083993548862739410125580567987507872427817559826493140168170786676586933139855658028607219134139293121974276432653067901369979172735751023193861770593524427676496698652593682411385228919575647602929562097127501221040342594993596086710638120231837266638542172430596541219374088542624378390894124963891768605827929467541548045960669520698240393174559711473793702036285913351958731437845726370192032260979563326425341602881476057711788235793883687286980261324239242232185744233351331090993456978179888555277219709481754818339071974215831541642041092431335796205577402345525391822709880713690245079627022484861201406442824984639217715476887310567664261391979480916655341429402842078161753011636661445860470877258765219491430907614798264323149959980145937643275938650331323523117941038102891877483545324183470626957223622630237968779360115152664915630868068439881441524836552415557595572110455481066605172415952455802147973007191597247131210950441646204126872805241265672124628198404060580518546871884301272101390120602641788689236988698394990095212307006563311327103206319546335482977747218013495082802021608265050940697302938083607901653848747113675294510304005039792531155515351116287948727438641848298552530630467431212519048698905744570805249698601884848034144277437799153395339284847366938440730260420113445906926401654633098852075269840630488952693926036486026639704306835029283523448457599623956165233653631733193092840993039154463281558058836660788953680371101856191587629731905735911552872482174949760409423958599170020466868789299729556692877149893830989731295946313306728328883754332864887275656484512232711843319997602627951810566594219840303019630061113461797695177217724789684880717994980774521388563476944408545879733896572054705759152489195412088879059789632204494532112744717380119949114136001194633417303999141027006123983729253148902042693293957384472903727377026189801692209934758680174290693955114036186448416428192098881996304154520513804477993407488424635876404010412256137082273092066894411276823496743839666102695533078216585264016483131011365348050776680490010335988811711744425506067211171889929091714195357054398250390953597702725327503033231342291555431615585427201344971080519813956719411623505217786159472290552479996255688962629529733041095607600436898297817431335151164387564973877143789467292951370936913012444819627086221897444180226013880831804057166666916287728311774614086605937376069678232539548225712326041354001771647276487567608105486881859255529613338081060786147252635243030810900693313333857345310430123270028122750876551084865242234626334496538570858533227756554528667270164647268461476866197350675681137560108622177048106764727715935375296265223406534483029590802046181468558871342501987459554335928619616242591987042877849338517844013898814575091274506366876148754760011040429813246676800090417216401881035939628474473286036499088987482831616569573334988909906780843934473648449815284961805409989070590760577377259753250835788738186511756935416521993530983826663108549638359445026324473736485738933803667289670517904475631021868418244579101013617453235476511422260176533307376480244788840425284276959441684531798468793723551841556646995175480516978847263280841147170099706801368612507265782439068768494685729448982512096597259511357288047485586054615544629805799811068042268017742498331924236403358369262486333427115687965694976764790217785650171936097628495091289754598340482920626344251083205705297526324957682587946463746298700771139883166231495816659191043283856053575730034887317208809402236481049438389271648086663608770714433984520340027251511997136672735884941274563252539184830073247745848977675849380466243424621785423761085860647426500670231968031385183638100034200477954610676360325880014118369462561732068644904400300090734540719803635248708328721003089361776995914104426670371429927066236770207500522706183283760181598199406339814068189471462770184941209395383065190931916459447640147604073888523845652580589428715195896181887822373693910191371883770253055742491241903673087177322570724685213432729713461545405463748342459717097069727643063963642065739403012574931524417740778740448545378534560121338879897998700083133350028449838228595656605955667524763524744575890948347397806375283878318995165558089630487317320343341733533980070551534158107586577276922502791034344886767883779400538389034711959337560628877134208054695541168914621700480405624321047677288194804878154911027696216993713611240906524259822781556371362513609574311085331306907995900390083342062922631617413229372576803282061494953248182302925212186127031730194313157806140923885770667386139711515121688620852116621338877878818165283062112249739322374247321638395337994352939591117624759994645909751942165230156330175511966131838165153869751432289602115989406565692262713535975507566148621852013963985896589430204522516990567857366583007213778484592578750569991665183123473007426948044408873172022431242514138454162550249525216586619067960311227311990095953130541773936568579389377234856669351931618719918381688320553268487071637880121684094880679716912800559795108360417420387954640493974419659034401981569164167811813501054213470258149172791995408417792078076678633043146005758200383084904738184767628032539784631991889586309270450424661744020197140863094503801752537844533129767087643651158800985070464605409318570474915660647259928782035728221225006477165891795564637225818130442434324309488721714642579895396422881825325227625416631186652172564632779748075909959579176370608352522077235451713186783393963602311511110552355905341198411742261833929530448935900093635583937564333763742777162619172412441816601583979306667218057437732976526428721879556490758264839932157747887744337493897721683087618792969953996024300185380926194976822326033246747612053512668588439582649486398991320574634214928313927789504385627768258270725127651537706103656371096330050832349175294011198108626737417187041443829787602706985836543751984918200073774138896732373910982234347939153652510691491503526207935452893937669305927275101992568219798106177500039673756069366738886580635843670975047755018645476594415662781308089645204079873766017690103616666663389618465508881536380373974620455665552999528023358920813121062105790598078050660206959425895555967523511526049993363080902634203920347110313774655591834889108875750362790900443873782133332997816675236765088012031725373564476381089125555706803882635608816127949820225393836015126282868069492887413401238666330051565537775175488057464173782233598189075417472953765182718722630019498034196097150275968160446716568963799083315845164871444511826265794965421789667814066121459323117880388739001061865754904662283003386469689794534686615376088796944901186443450432158891613792955564034531205315071264236428920448522447738637563805299899548946841447016863454828615558965881627531683166406349197357211639463034710860501933008028408667257881723446315207020673531700249596889603508523410872290273304367812651858850160782383236430515460208964426888362502538144777053697462760404153865046913225579556738371470042424790580109727730899321770645125058510542862948205652751677561659853875080072052518524557157753965380962291363411130251815553954788289474362848640514586109748167698267295074174412705546325057306009147126647728918234757527870775283865050464623875961886668932560733265352780342988362396072515360244548240741376931316328242160809586486979871852933620061689762284182579556498863558422175151483391585206028760815477325993904416897501027352182977425583774131853940020389977663201100343333600894439724961439112912592494232167774916938496880224985551416787293833073383474758499835574192939096062745677568184605725199730976443809775825639727531373183189811275001715296923007662402968012668661938455657869329761067932780043970637412005016549289072543019010797362771973874661598873446046821142012104452854522355388934979577127045326635970200701390656886175604671546860975688244981376792041181733234075926100399797637133773663239135224785188543620282326004981645860086923915267327409703979107282538427940665292809596397903229426400272936399284829869251191999642677030410485173572465972261914684044143283457053630139075836406117072478459586804767642873497584537443528765446712972560591872871920149258572093050558792524479116355451129206336413867956988476721234538940370447142877178581955220359861995735953416354053492005178255078176280493981379908686796515789525853377471596899666507707216446042833382002400024346579541424527781478755541376461204586739714847482448538994982317032326999713790415511121531019045513946843132446757342364247048697623833640707802158939196292728458387196507675988512802543595465524202885580679637924005215688150166800759951428714255250484170570718638846267584275897962652211114161200707394850964836923762044973533347810960527677453599675300703761107087792499186462691032005858011110837248472608306884153355417694341080164994508237848596231184490902453646099105988477207402324087213647407545096107120681726213885884521130130880886462401727373295672183554074071831840220817589567374279297758981758884135277953203016759750828587651795466813070120212132743761371398722881885686716682086449306750083399334788492860948109671145452782414081341618189943717401551123745863193368907706336721058340439470659942298988107352047451657230839279101062883967832166228621056675589480296040404501194514818759309783808164724099213277616377193126967375878331322677390750660342338912645744616494224912822426793286016735089548409250077413390745324744077479959365717495251687898756403786261928115978522880566519666386007256768078353679165752564201525491242904395320056270814745448097137611157805388641473576986457286332279450440039770071860549220872141611115808064658703259305147822850835813241743867772243738708013109179033969829669082983862991842038409330482422011880085814990449550738692556068898960565496192255502529766775275743130200277586830674734380491092797219167105121525233098176561153677465248350664426016569667851792747431649442267594375326953178459820608688647397969838674085127539900463752439017828245588009062811179862837146009502668388235090446900491995649840968142526774921621411490034391496925930536456203797974490256995946754608663780990868290397987853542353675326332879942610804201061974374685726101854754887097799468539132620616278229567605281040058764125734072494135038750226755777070046676698643426809666935563986015419541087139234929825555780170225301885875439435822426833039025891089246408356694854568299309492516956352916937511564743220584859425618026758942496907072915039706220574851846252046049688443473966555880686141006497586682077266678487670215827123955364503020400710430790764626719847381425719043800448310221167489398491066896634613252369906166215342689406482386819194441817068817498986275154797752081830677806297703061827123064885975947941012181201581612275515839153035644426430708960484175741826759317833713588245623115777938946107086675854514337952396927692248062263418319237244779151262434428138393379161167249003263629717783664464923059538741961183410079936589725668933944006819440718600775414406653755437517685703861205552371206232606266598071989320865501632532780993573860074040577980749374453145792339143087237098039729750532502696376738337077353372398399155282192440875661732821312490677241795887632393987531537976258402355728899495662327686371893152565442419372773569190773064657658564335444281280950115210153338316813864860268285834176864337337144971671494748360942961966539403111889941451116503343370513309993310030913753803944682146814336046707832425423490422574956277703861538951169324552272665089751654480312060342344785393758571888086466867626305609168312559508706854321009201978269893153089102657535908545698227438043072988932248136463482322138692895356085452138925380727678431427096716185755741732181332850548049519067496436436980521488341806166556776804603315061403199682595291668615489444981668895364304840269069805954738767909950926885693711197470030936614429207996888795886004606864463919720335274378040575327893899609662382521794807255088012733861331636022427883786354774683763489761227488735814894101668792682467064461427570219120601956158671329724654644076828903135191831021232402820341698986679675752557118661149812982565622478477961551543209553416825230402466583188977024022858910103344776086783160547409857067346335732067341108363491669894361636385672408586959173823935424056506085399701226632156095195248730028066415269130278969772510000310223418967537158352125554585423495166318182290078002188138764009423066605626464931646252016852843366829862200148520529899355123539274076590348256195767426054248202958878940735851926893408131373215381412027020603801866367031437902187101073347625369655331413291634774496854353445071731534782719217476102642521516724849111097721050640489529519236049634349579012964666922159795554507179304992180576113129812083431769344752112834550843010209651960120018898314101495624638998224193302734670933427382962660221788085715153086334797819654231144517827809512969778246815320575310228340852479151342149276165809121360065647509126924481669956198958025057443550808012236994693794198468818723092688115637134048536817209969778521749297307889077329414763800312002122834255894775589390148295463209338215431541078324233230022404659051281732226217770368483875217699642920837950709241486895269968105141456895149801343187758131932374287482381785461707151370072890634355842843572223380106520647553008671780925516463008087097828900329087313106502433620486226827488420945083118486678877121172405036159724936488755661393934431910146199875184040513836296486074691358249044039428490298431663466627721845012118901803655143026610980364519758015443876924724463512102229557124298233098747500024627033703774489980287945275211134453508788607882572797257083917290643222290013549330272344839278488879117176085011704753965499323446867649162423387295362665765514352548006181793722083227495424145574751940485202822511273125473166242448981183929317099381854048884157635165740354854140780265980410846036559107449668976382777610546209073844574413316593394528161063888153788053163452762933903994668681088980911366157435388212362182248071516779632445930829132434996807031347311130779676271027572864461550487722599001885284703239917310914821841634454377433092015968311908591104095293220346675616501240597001956343326698302931382883900748199887397469966178828538237676629125895005565504742608016434355317941222057818624233404295979950544247421598721489687635616095121200251922195790076232156681402919804345925836419168220544436126155010446021384770185897052696068903606524676634227897366674501508749732681981734941299529744136225773041609809371323498328639621610716962604294605936121833530803771811480213837427746030900341101765164227587392448313767682992837934396281316749317761995925496488607219937467873314748991561296108270180445128968251457813180899898335679346516874963136283491493158022438769195922471019361966635155391340602719795869395259373000763169916356817682604075426227288814815284150340931479052430464806140514161147110234504447137968205745058163399725210945923370031134097389871596816339820033484108431658172756455187879521874886279004709343931303532845821670671498550589522502366773932442188786610570858299481292847962923683204657041238247277120303487972284060334192830184042738979946377005867739595207350908865435744703432187004250040326881542061638707774698252731406723397172489532547449395106526455594084420275306173760859662313845909269914764304966713853602815723943139857926785819530139100107044423472046531604097525860202101932076339571334866957758724487423729854772926662455439837096780088438399297859235041278029509264788332676094013055790952148316663732304408352413136214412395827675358388484998079994988442121826062290110552486560493703717322258941035679446020079224175026613510400509107044555206977745098504989177777590594815821572590482290182509401513425969243568210487048429663629665498280269687210610788660693263003504617568131849802376515588445728429937397806902457176277552273831806989112309679160377746003024676776236812392952243786712091232130909487719869972969016898442286839845597624749465052466284520773383887344327830045469953115321476391368390832001813646864783810209510462361064674907626983383222985146565813128742641406385835337945901076611080632355731627914945693721834705936652451210622966029854789947821543001114208846347278162265557818410441108898397798802014123760182818974225462505753174778393909867749789254341265363903473509205959878753803336304590664452309302681606599040874613223457146640224760290202444104441108305768515167699513126428461996668614864790135563305341716774972019832022121958537822660368714066079004086235974721769326721540289953921775878835375379905512714252754754231525150597092289578530589148838962354435794843177364762642058845666855488995777020581606251678281510826233260847061418775351109861843716237398535820697004824152484455322431389928075173361372024152595991384301710607234631998720530765707868195804001773532372718095742027009050007817543085168512124021067542510495304710093771073923240099367050141503625639524899462885052469221014590212710518508511766330384794376415295319733331902979765316022428445249815013244072209080412981890750232976820618124763116686465935893241646541915275207310321493344916031842223407907091115759650352827322867477953471676810043381707759725419802959532555004849326032010849079330945761937331067137156416691087408502083866744659846726117521247491450451665475221479061131754000059819589074324291352235378145641385440484435259593533901626083539383525159527545049616993762765311157814522666116326038525779096281314115030311675011663331555299125003685472792305937449186502230486588657755207092145478220908891745646276499883681572553145599815376442383352586244386057871493523339059208404523512108183916705643066578937393949237013750575859259016597122729514092481701849961748894220738946440686517196199079436645524608452979247125809117929958571542492402187902270150141294387395010003193297202634285940252110644215371552629320313563563041405796110022465448768763319765642459674244045940662794425502225221751282204635696168457100488863173834621717871950438572125076730569988427990039528767181209980361384896053509333149314535080709645026615524526279670340078953017241742918839257752773361621219262506511519628794564654263736186355035260762206342891520479279040603361488632567116194187650433052937302237179790034793322026813026642729399125216418175709955507087936393339323403747370843004681198762806012173287252408451073118367551138609978968445955105302394565158221244277463189323484387684089471169281098070091762966702187689565825228494736285344538313560044146379740594508512931304075840808482096732795350233161179425296176748425622588035065292757400536091797098916789121961080011769786932945015523493515800910068692731376977485336787591386329634691875448051085625152395307826099287726306318556687674239348893080557581177994190016728092092839088948430857694829377733934824429135949442152445869202033699088145350762476167162865875863368116573260586655436281999646642893730232111382875043138784372361391887589446193583336530479470395023254783470577042491523328426193617919182733533157340312347129218374551181635905190792548737152589727083664548882115797312570522831359115052050296557034679582111817216124852690136346073610267927022004928307030520026735307228024159774019802182918940671679057298127613858577718697141421729848986435079697216949543078898636187331888073951128203314800383831108250714771540247811537464422690139254178512791467893058717895838004070518794197509617111887876839646703729088050292830838388606270393697347964608940462341944258557883826602403673684286070685049571298264274782951667983674632871735084317354145348746516161926111745846584131734783155630156459715982029099132669254974708016601448661805619447476058125487485725231735356662075862035210923090309256934122029258724205428885233259096967385974512312719388917187301281588253413955270434383704292317175539535538115263060144341554026810839837417370138190666185428626818124810059353241149515938751772575591600863162259705508502992302459456240179965648650218590415356964040257593996337665690403641228166832862708613735615396654951546313774629563600839382976502586039439337253152283815298224562511379006601196300027130639725018640290545432311481813257876060410036008772514785648343425020226334207909667529326716467893166021139515308389776304479997370585175200551503124785485152063161825795573325573477693046662338014671106912011586568364473564522030296893726917164155351551106550985797935046666655314261593564346282728110522643049840813088719707142632367585224767857450356741139198231978423220641447722254349891388822180476974332321139207390849665495595077549213751736591784654155587069972115404045358897884800370895467331667586158707452887058623143066472326647139548297979236094383301141721809598489457015313393176849339977958476217672722388672243057895194118508119388411180599544354049399217654566798395833748053655448668932427020006504716465070057545588347576958148925231109569953468332045782314766824574175206095202737854133730132138081904532362389726296358437417133097316822906688339843713458421237627325733686138331562280992680384548733234020798224068009809671378296234227875360194709134256166821916902667082168754815138166420679291498457488041102741220884269118685799989009824054631786356159613276717688129573546399844203011078217074319827858942413789865221661949583811839729874884276528680448196641261834887303138747022238810797832826503834120956814812973614557995431745238272371536353172905592964557491549029578229672290312268953986092493885987507491590375555096332163784548399502783140857231782267118571808814000087620253791192720554864252633424013201419946282710729114828900356433445566630952378584290878404904068358632971055631069901537302617146991484336387370521070344352679616591608577080086326882768882350365542507297468828969647840000823270574320545668544841843285700248277863834762970420008057144512426304362278685395444594992162637678745435263621638118770314851272430971446505857235382636250297617408415046976392716346729209265281940077523927026491935078413940783631672393717323267555573693650337463087753572267829675893030756646417007805269823807579125331400053721598405906615537532455431603650117804520666486896676203667941800024645215439751444339933906032460277256335352912760068479660176608284369174604988274908011100928147622095554062681139126838948491092541704511583445778771302443781102106897093140277937528117946478206497561936172051514184516201756733396200537429147763199827072190800181200698719130362205840278392403826568649247657672210539838128321405559307394153354933044916460286416182950171950336382058387284700046674629340246153028090381726126378707371424294406409511587739216997286395075312601055969470686688311577074467941944386933216691254983717551127267758254065477490616340143903679730573394794569871285067137145363456082758091785981208508915814628067817510646885639488659294957411647618741290171710774729755083436742124337189036145521319744306096210255586491736945834460502075573724350307459790551260274200375894401774210616002179184703654100338427550916355718675464421133855981485247088650005606504817641495338770575875418188330873345784477242369821496495138841310657627841156625397093126158424966825206524937534922230993546781689498583678478625113543732128617220047245797235573899114553178867188414386453663764840223547655424801683574809206404712974174523703854806392183713911198643533512339079639970142429838513265505916866239003333993362308390058979355982498468038202936004977240696800692398378732150225081199679203270314771764307451378641413144706407035950835349082612696263920545311071755867127479218727554489365984177105465443320129508618227808224962909831837513796782891620247081681040058146641044602237091154277917408143670675340930275548242605175347121367965194831812493452796585504859352983751844732065934287876035811368890104359458667164526145476896968614118566503756505309524226505465817610426771197765931714389302101660426349053793436724489692493104188712415734481820626413380640252114966788049760479657450789133168739371777350693504455218638997580406107759624687694129814862538176525469625964615757983635941880179563554186133770080475275766595097244916462578113213473209519032522188363263656892894081643613658637191553587925124503622724581361223652253526974245326920651777167393685094231129415671253480351712743752171172363830229208048189447628849252285876713130039449653827269702501023926597083340664175788309382255736088809144301946678775373197146535040890301019979254867385780580270498830803036974154520541764239570666776857368817408505865385064204670189420544070137685810272321082999278925178592886115557480390599700160815285349580864935403943693001569132696798894981718633529517950612630063653952809368515611463372998093115419372376016320098160925614830417288554817466084791810418656636395874683580358551759343412703653746519419893200376128407432063879958294184551150424760923578404182374841135574386987777789759804947558068739510590102270281682250548846894129069103596645549807167308667594469476005418131868135850970417655119400058617615529443997931417832980181396520774797909705986203571732029340045262795790464860467386911758655234412280778610690190882387550949239882274610001196773951324468912112852378891306986521307565366632388044263702098531201984233952707760519578056428211122446986374014001154307637315193433959677881118785193952493360917190727366527051106183190637859947204497451729405180196836386685835155395722562376632435665141964613414759253313763617899379080794366880189084420088189899999509196139407242596282870638475236128223646246552802647682569229932921789374285710370406103775135663520251643788483762287476391945532446802365449207284914420871109132022081172384411341915229201132542274244726171022462856201991122651213632316018408845575585995984775848871966237991684726370419928856522153948007322860266732271235984295371488906315360147937579603685725229031490612128770157840166522249176512960395192039516240037310793909024750227117166772564552870829736077010379043900924955113944638963956274070423498084203479294270900473478318113371733732769446851978833419727444714117407400999461957693159641821070745441561207234579600244363278524157824068973572031132281817171131920145509033653916212376057378957441185351530726498410987586730787362884276143529708684776675935976975667207489487677749135854624105622321190096470239341394051626502260986482743016746331442749630883931233452636810661969854499297957563643329858618959553666985594764963375549320732184901434772451280096693011747700633774333365098107721816485534404214839955739904553829016442562463213099580794722406860718402669301580215827497597242793656965532324359533834406949837858998715969436108942665213801661875793998523390474408318176563695923061352603418254520850341333350043367844672089301125423366005636529395613341998630182696451056632658612877894219560295195616459429500013435500273093525565629365857413325753505761677632094755396472506320410774743041361704279292544972340747216749409925989017267951584919868841121494498755050600941345551038449741233950266562832576126469562766474963290651219224341675797094894538030066837063210220305396492561765063150558754039608602524207045791002099926343848723673953562655703533044492195553621505012464698475315749941215476436596551392810875406360765533245358165543701422104288993310830623643915608561106209107533702357153580856797433243715284151936837088760648084841760213115256861206032541272499371151784221751065857684847988983054098741616812771540727730625167115757700587565678777151467021408455000727425482688946123351817886714011727576133161764615267722283898262333817945919342346303139772118998190592354736964334522860133600196351607925513628503779438354568849040460359667331461323588511454565929468314284915615519007786973472975401326394432437941869872392282222716825186981063009105821778019633375689715625195124319890887439062090176443661253562619289988130885955340841513835351769821065406784304619441910839040516563911346246036519235335498724008269278361050565084157211276341101721278077699690017654945460164299217143255739527482826301271411553133503595826979379603651935730978364288478921812018476644145464880084354657342241341849251859087696648121237608406814157632369441121736384409333598819825897787744417067614837410320742416785871679765591023151780788434924814122853037156263291490963205245256778282239894729366962917572728024451643519812925326642404784406513994311051294559249017967115210161431094069522807638793788267889380397503838064506241380658624574830305356607082432829671436787372665965330568976078880406383304216601927758461636374623050331692136412102644951390723562010234856835679693302436625671100812796929335280550625536726374461353510875761083452036903804271711265470446587702598963280292294960297163034413613766105511404915811167100414865252052628277206169074908631300241266827571773512150002126897815730043513866137867141058788144292653652681025296349522241208065535568576309075033423798473714932288915828091471654593390729793769963772534762802440624598635820098091256068172234506455415123035913698142505948268935715240265760661579950763454238272315197174306470700036992091289190807542296202839087662046121090361527912503847297678068404562944539912159259555845558865995060064845941758192801235953609068293711969343580666972339412980725361801230749711059656897662464151714948167192894117501066554365148275674184186815927361799629000916781673235775174716178976947044796418131519077048947281244775692656565526977566699328335363894911594637381377757432167838784211600250387036181339945510442989108491029643624638505764496564299186188619673284811266412392366072515109149777634916273111239929588797334633230223596498291916187252625063321286146062229610670328543727517189807930532725284806620441361381334531426910449071018009085675862166804617742679512140052023536108638373474824393822158426076952761658198702441207326030145057464361502719607172114538583114391564034596414507261145192148602128726249522915107137424525306923181857022175690302386786756513375858526253952930988896957350544292445177649201004466920468355427555143670214444999085068850250387305650668843735064601697147801794004724333627046818115179846460362062477740864894929882997665858054856490993239361753582049840529616112837369894004616941249048970993178660470272615827777187122694910169117514050237812443560511631481359696567150002556673620332022230189606370701226317647881616524426827369703271573295598519459585335354221725294252701722340813574214366469660358037242878909652092323230333439659079399627361441568675931636580503206034718384001320769219994974796041669348860605132160358292543183772899711172841113130449420290140618834381796404875774854358880727641277082849748027210359806970399558434479957091418365754222753396385615806522098281702832577009097563562265088583805911241154556451663459537293922991783657924853391476732319613748878808686224370659338721558410046238316575898811671720601003456295529239068627114664825434487582064490843552629384382741471934018683417957872401329902029425686902860207495132261739324879974319880633775495459408708470625641676846770433400508987598632986307425501554227358200653662110097287728458923733718605075657721133337819874543918485839090153229927766957552766581724643790564386175881515912966580008332925842646270353719636439689524005376000828927465994459329806557920830828539066625555532354135336486805675867839307976405610168196371170111554525529341513828731017230155938922378610921072374977274211389407591053500451885513941559824941745832828131554179465148145486202063425536896089584597375648809678866451329594026947348129300369738776260342439571892825338159925918782923755794602958597756397577963367499543783455988600651919965119365032830011898583391684006694265519221520853027948454064232969822382883547947280975014628362466682160705102495827473535092358124795499929127909126149392809095158089686870348577209864345325299432907831905841657294883333711840238682951355495007091343795065084666322122015203361980691136775142308478190402029078814097443397815779271229644146253305129584936704736655336619015981063109951929759158645210865405012575559701899488317362582177380160219801350323487713633761535167095394734214501092712834068150400099620131671879736157740325781097689945644407878801341938216516520336123565188744376686659050651628230731565282520756161415888054492174290519141300129061295059233311094895029091901331576463851670495857074224026425366821472246691305729279961735468251037981196114595232969265892857404577205463634456336817029280763039066987995263798193551402344831464792125445675336597459693336652842968010715857129716827872691450431509468054142011192082747427233938962302325614701260395222802436397998756694773333185075844020565357574601543534558222413522633146706613219461775369736527285516811204356210480061003542478547175694329952214891270249856240678866026446751254745372904645244849437212753796156076045502258243539018887551383176903602465456239084324861112807275601686369115735990644361324269428475882322811790530735458203552097694874752939868374988717973689528693602786951404140991737218570941889879969177828912432940990506086541953042783109732089194850043381763089125200204311494557213745254602055178354568383277605123459398299896820835085425924316568956972971541681161887573713739045750112834793636999076907817867793028993254234603386986310735056871629247985598610560002087839156352632627385660436993618665895089857640464532077079946486735165684151159748748960726983769766835131389410018333191936172532136536944857456054585928111670522522175484892981920181705435926516884465017700786657718937518146162480513463639073695263720497088712162973723203639541366392417174101663404374726835821641324394282118031188586801398924830936652997833811022315651570028861735957554840766307773890640204600434248164918541359737004787596568922733991190725384060516215510510803204408315521717070441186775907074767314448207412758042924664337822805965821632822441295477620799948714915903669553971327197167518156582312533436590816511201725917121134335327077512910373558344615056995426247705767089274260015474890529016436561156544769493032084542292894787791630229181376484069093813973455082069947036246046663012260504672026951268076504077118613819839148966218367590813823093115141823929986205635548127717343400998671625111507954374624275326872265039410223947448548544876277493699234927012691703772742981886441825343616903686813890668893416283907767940480777951603848697356794076855630335638207070003757077231456644643622923954536182356099276482876846209171084695993568417127387625716019106609011752432435092789966406638306063488581077960404667497671101654088824978680686469136884818653444500399290822091830168400507910651598382828823765754953857663274204762614475690812192969247834663703730475873359575805114705318518771904023748489742793559346823758017009282144039050949117055682330654877272419291397778354723214785857977475016381826280848458500966694155067581119285962557635719939649478100794263133276720599112754752468614837513755823332056204358505495275549989258021290934264768100064844229690206522121813008092740146614933672952788822113381816550650356215958788412886335835586934850099730563411031846931617404429448546579921328929683095354369075138236011417464789250108142994015520907545535719250201846514468897983686955504856230350635008417060701794994590727461014687007247005621937265086380191594074745396498698732513001985967131692925538765677953773283924795296925411030027604792136458857058968646073603185169814429535681143109231177982944136073414675277564183327470184830327280803819107495000164119575749778692053989460769920417742984179032863466548658034861688189060821914749916914943014455571320791133154453308574518279302244921150039519275351111922515235025373572207946360708890653023026271539539625939763302671853455919957971846930926641337068034525394536403669522970920308935440255126426849242001951623937662550928066516487541592742941700679543483493419245570595284647656967172397759177177705660053671567776545935311048066622598176391025584533558946303297950319485253205224967176531868199461136558740976390922188925048623983343468647843891450762079255804883664446818862680989411183517471917304815068521652982888281943121047049130579202003313264331769217271237211350509983295518791411610242278926392411072615776948121236971762278596211054776499407808863205941093856161029266170731010867443721662754543946145504044074037023960487865895879543068346640631526833408995226275920578717592681994036560342215843642006820290467790469632244894273465057441483513293156445439797393083249447452447562773084987412735360960351915465248114538239418016636061526846998936285697364481434016991801307813510659873089549309680354304209178918595372476678437567767662242319413170906576843873767551094322442551956137814298219091801349492547895298328852856485518268539659602783839908889402650839732633586394940385846379508841984279468197540876705426929140898016202500077716805718307473873276103902403529811497601852100260095560733149647538831778410322497621556728560276743755292880247285940099725116257786529594765240960614973924405625172163936053608923288180496950141152888043446495158348248666128675454132095872661315939692414503280807410624000079402357907759535228077147997216548341670003110931191049964324717068024830103953460053366466811827657339959918554307958571205672862675421241604721825543143802101201494877531359694154142817892606404537123618075769530783015422194331267247682337152607793892271888940232150829350669831501486428158977979262456837573101607728721063659188542474217157583522063337117842996052014336188069201991112990019133016406195910886909657467380565299353329163399787776684202194519213357120333690566815065535859429327127195656168823287786860682632380200278846748292907033212334065683124343709359358059812637603323033279826847656110436402325536405587356864335539406768538990210392019411638640274848468064252858729035885026418116625017714133358108733623637133178084253268465200424013717551466545341685852033237045534130871489808924864987419134543397626482524321347719674566237964631802139418713874016104587248617421267980161229985337282237337770415473658804455503962032934282489568079605469058111577601429267204171287719032559809536032687160175168962987272655260008151863991038380935110855990595038406159017403584405297991623557261019131000907166679623637636016146500163172294277216923172707719296168432422608581730394309808575262527500060860236702941674640691494551366375814769819407457782960876418751855463793922235727849143464238044418431360149896848225893611368086809537463846094229030142230219865566468321118528478049162391545548432311713955895394586163083300834811151729827341853276154970773443666949675066885771440462905666173223090989492115843352773958517920407682845269503754156018170519707230640912277891154410408307088246081506003246745423224356268608072167989271977841447743643717711163609173247840953870129463461246096248653145044336365483765236578938913587677779361637707564835079372696767330938531611509349552611578510778986839148511221234583370095312960043013462943298742192710248492841125376785232033319022929464075675683212439535319580516818918175136121471988465713165587482280570569858736140634754032426286377261975634755681678069557813291862954328504330138603700920659877571179109757407869958363129258179217929242918197500029531042516615984410921552452504171172121506713620152258916230865110023637926698819659924096429062649999571349198031460736302900651386154915400985427527830374371563481568612039326213799704284995139491270293436251039048051401730531164471154740977360073786799979377502512013653382648914596113658853308588151079317542659384158479082002942939404433717180045898581070421869177668596780615810766426811222237041973057596017299533116520095014783969289253239565023600857728585858582285849282593847318171545517794275646318031442749891229982558205918339057630477078638668333467528667555491321193044933896892818269149217789488177062074261185809372137772848800829601276800180655058045118546855580886622917651740976051856204550053466463597045433952850282380784822022403257924088736296391547807485575027864462169309606689971605289774113888629639124263734952190942872619525174390770926404009335487909659162518983825146998697108682415207306642865726857975302091545140292748035257654060298407659264391226258156428142281657064977437071803828177751602813667913409979959527115010061092546564934378713901857940471160057208506390247478707868425510392689408552377076270865017727734284163145479368403522334454954576169747838852863084696167623815146744285263305516791909889560303263148898181775478670328449114142171714558098929449514759749145800822949367148240235113893550605365733157811500371028375608707563653631004847191933796782753754685274477685796849707713819354009632536627480139239075794828831504548218372600772379177453213091478057027393082856732292279308946842242988893217286834279651229845378477271233649995218452517810299416346152633799195429250725408585514659803205901599200592822829802835451425778999173008417666669361612406588541397528979144609114007987756380547531215672338694477476761418593485988052837773714931452813029477129236366833435298997704048051331171359324508235279064830783119088510336913411632298248228944150684121637453224919354272372453498529509844388246620489711931815414865597427943228840565591988753124766816721415149050733095123495069573943634991180251195997148793119863028829387302240253988789320150621845415347558167787090328471236909470597543629820791276273352269391680979716426440441551548979406913036575948868512042242272491371860881920935865354351046343999052826147516530802704335654950222908267067910435915151070451503195530362470684952852738370778067524910843856194991615148063207946438891689141501799127797611815218847193659880537767022019506358574560967600387047848128224878361617342862255418333888973107461355729870490781481030999220231705513011891279166341200554471550877903246827139625462509129104414143933705215800933990301051091727731981588952115324570170659474492750665969045531227543359079475133197095672799320915168366922455525620114683877464782118121666458888269584866855203823575204711725901269468109227775978859151597732182143695535324584752658095070824692485503864316865986078198202718015747753627876782079474397021857946114549436030473154979708566444211387018195270933580306132021353640086948651057125255752585011921985783524407818556893369083534673480802866837634186495415682904215833693435413687746429759913941325917756285044021985517511322627627632674020229014112581804868912634548163475216577985990349788482192410062981415856510922970535106196101504152762602875814639015973506046805235222957399026583222590480199290127724431503704308094123885799464790917504233449721141271044495888574048031765372869380767375509366975851726472532532612735607249840741255284084237702436768637192586538335180138062141406674480029401067463762517790996631801356958680785164323024331306412656832803213803607762251018799885774579207986467896913963635032073787892849780341674047706884639522155501939263506516409942405487920671037714412664043477791105264640498417307489011480236329308358560960153263552055987652520244461268795544469033510104319567015304929027695852211452228454898453509888511254520912653908909894538914584607247566397281438407533923402557637955104788452668078685962422102043162826677387343836994150459575635969270764135962807603389428461086802152164846945106660660021077631488090233995098244642806658484590347029140922914520095670710456426499513600105790512956992468992574225479360355841225248911354771789936012777144700322124328445314315016022095058509547983788238262314328815929652569699960264125202632450333220759527928121255791731622857906026807548522513702568238120019494036328965946007226254308499188939893080029643846478313284707576081631611567834305329797408803754086004689735796588261902491662363078776988342070333344460728233252753879676294167834249823904040571668693074759681552230252756094996939828589244125099833467300818737825966416811464807692631996915780904998940271910776432236155167504380098960170076177172099894405905098400038564180504374794989217941111668586154804542995489776752986919953143174796568869004486053142796451845967724775949339121786149789364520119678408490557855078386644603833408762671651662719643617802221184652528486261389547945056627269379871395381040330475208147732807618504424814765085695614052689568124720602320787800098294359301289847946489964126698861595725554057483623232939652986667613161098649569692252159446872785077101059162747638170909840872368529326880400192170139711095520043868304270448330057609393128502267757493847991832203436671804934974451094093158078641900595461109073401971673708801125208175251972307321151908786117790842407616103046982414122980442246481305377264184853779460649304685131537038218474635066302734877298745315354053250709781062738042437179025149796142609881907490415956682758852024224155165615487404471599144483062495215479005803705919433790316272622111125196182135478975782515500335908097698412555967246313972387605785855862482447744566087160130659957434465194223080309468683153327719448067074855850691789837128461496103518760470909296184574132539686265202157565854503770561955149790006189630293850518163227673093824482660825167110431305463000981926738555867965661769693734335150006406308107314302406746953536816633715871360126645813154775623591427731353476717514037293035058461457452415079758428828459002899517122915319270677393786844676894723823595028411037185301471392447972810435520138664404811939352759465744847952708591287631419270610360415642009692637248668705749139775906467413493439478564180952559670263012632049308153979399744200377990649525473177879120620049024365411600557644303402878796808997392062932737425328315818033098964865025521112165411120768188663360499292994581462083421709264451336286051013762887741016518059480484489164192702663824780706198600268551971813844981485495267540876976340190492182817708147989547009239263284942942645750608396997885246772331557408046194152169536879032730840533602101095377185806363328484591623722651225122915388925419464526324428721969014644982098439347281795669220056454103369554071716446994022617332227553853385776482181068326432573438358740535256749336298058622927256309972328248315249675212921446246701155810910270721705766354088405472354353088844983503334621710191486123917192803776807039345141554624973245121796564826524457564420154287350642803272391286087530714709703578109926913875220312305183088420541979072020146099755034078850351588527984043714786734023731678117222811015252797222880720233306104072443052558491336856804126385047173715432103019431881352780525359958317684608903032266745381816056614123162701830753315859852534723472070236561849515479971187145207748333940525244376663324008711789707866857982321835003748828552039679386123721585133566483131250892349536161566335713984826926606395912484772363671332667769269758604037712663127978842937858183695150968280458419094344121032951860186952959682607952893332214037300170396746140617616396919396699105319101866333558857421811781045943004989147512503166981165804121176552221123793374874518941860883657090220413977777268637966946642449351306084646791621882834599991674123141803092560734527791410433105106887630575521578747672186663987713905646822893546702432170240067531461496349971597770562794944074022560529828528217041812761660394482772491356015088508641376888889518021824473541236836459330822664275786602330073890347843052846971435816674244958655285854635572241400111803194512594402486587697397920669958830370469746623361661433278137999738354905074457104167855997766163738170504842503875499359755985831795461763326187887235330539443583131798644619592830904348934018853440958365983924159621512762372077938191091221827610657251195949930363179257296911518632836784093720999833795062405944241473050867425609013252545780166457975887280701224899803313945737055634126535230173451425820652349166282010904695133456934697483097765398006308537120091729867953986786564624395085482032843648389201411615590754695347726496248206183814015470727580673593500217307455639166500905118512343435420200077495331130771397599900392514963120977112108144823688348807472810828916922404408278376981292242136528503734041426643905291465213529184664341958825813392101598421613901584654970413107828631426316383424036786406617441159268572810034572403587311701032492616087888397285207904783131233249286930667026446239394640723505905073180109555228352269144713589096025822536145819602435119063003375420877437496863837203985118598646980536180865352639879322320083626266608288037388317296589291743843903153710047813995200133463482890570919623050298608386767392679653854985734468069319182879302201444658703907701610313000166675487282570930502474927314285638498274758697206055663855792742823944958718894433885037769819510457397995401591205196771739167520962407829741830350250159340528502728375727774799499196519893099509207097279120329773655737732980998626933297222310673602411459802563946925634266970004829871933011814899572802105875674491518821849861471347037449837401390222831992669634360129243117246559822472450713546745002001538613659898371323771967478315818875373557885915115864801681001081039605976350247315862075740593601294420928833084384422997845666939585002575962279701319034916540463746784476034154700888357672099449448196632465266060935898456508366742839868868683937846426029872742505271476617990166654732132167485297108562429025652221156099661330833027461451882290790910393777713266543192464248146151567701996575159231148516848641147124603281398165889329587843656404749244517367989955161310930637180309872822200350147488374586609122853635876321645327896838302581698067954081672763189949925969212228343256929214732269482003703554597236125082318195119784165866534759465269087846729586765119262585523862950427682186417793024705811569286677590095290972851944079540085388632082812067585006079529603520786553096214758189459488467430514311034791943648763625754431948105747493598076351196888902600934560966316628512200047257211329389411432216770792147111324217800764096123388545814392619093277956763851735249224448049708143192268691267487755925309010313053816313492995139274180942116834540258661382552413385255861101589127267690562006187896706433280435038302123834614757590516710810915634081158482711233866716724496778205767762567457360906564022767552194346357045876469235513960003524006182684005453131199272280553468686050252929448325936062636587187632696415816065473505935000230758150157174442610416556808307061816424993669546697602386989659007481320778027555210544137325929795948505142760028445683626302520229560167766114252412758087902674750937090969433080511883273401835362896476215184826262340041057208544461920766848244452078255979425396366805787428148913305371932328107171254725244105040474778037467271627647431633657564986180140579745621078630393864695651490871423590603926714697287906700377086478410445995779338870909871825961745050799677033969055753611677569844210896729940454626890655890255751293416044733444551341275606272139495024989527775060656686232617297460061905552722113567647738534699298508671172755322137648098407478570197321005083581427158642594983321922912423844612266092200673026485392215807150385666377786759904023003247446303092203349423835766535974335338377644239422464427861414452091964942702789299862935481061433024523153920922424734559510652190117393908173017586060660940441300606444555861867652778361210961329788307813061627680623795750059534050098835531829904556169914296082360273033929690027305101924582471780536279609827033293174388948290827808930583458598347907849472402626480090718656430962563883144188454729181995249187851560748703832199206045199142438329598297727308816902827904106763676420381565062889129716227853399846370037460203881595815633486497689585808373003666022493918064398015189717560862962733021650386329228826824800559095282402090701907632792465680463420268797824100999312707926985686386635321923653456068376475991636667340386249525784204005198295107657731607044422101737561236543905476947425246553943192407282400461905031722783579659378418261294963921683230923499604764279653082163579665506413308719423523707619565226594203132866643373717457965356808244390294622622328096400809115457658800555138668504873323695465830901982644859642947801191304763953537391859798928474949774410630092000112033778337143594903084625114061390870980863942546215536287205539451348418823084939933971760239125272767679045978817327352284608756192115067306940479982844667058394197714239779895367996802736801764655389840379203075464998935804644746806534541213189806038885665228807638993156455527988153971616451924653703152064464031837365039453347728601395316347098478423105302855725487032628963702076102527172123731499018576267172062400033045055209027948186488312615917748587909850255596368164147946628708834527847077267972175660670926909056668136071524747597582504354683160736987312220203637965059558777564789842951260803072503804505956387997892086142940165675793531017618974916662571440271312336064991720049744438701452352877253050269343526482007933150111725810960962377457607268614207167642560583808201908041862707660374225576875435417455452978132194370119185430062545399564735095881174067889780895158912011895556113739759201708154001965830299813820797775285554168582183292003872069067934676921398152340494106952278363970674261422093537400614900231729634899690365642926857035952820533250385705496747570106192805639570563116728496742449004226645824627154332422965158183871375165425239589696400185695291047870075843657312583211145302628207682710300477265368736461744734830766321175809566058604778764600242332755479344157758125589507786317219962597172275074893056497052109144191702407060384661256633779463601024653403098209313249403017895590390939504662357990925057617442011551230472449364723236779631662695892753334621260749735607207799194156925103451411040409794105461133984437615491397245854328510154577662824919384845219259678276852186632256024368279677995753652996103466395971075963680757927866539094893538064522852817693834603365190932444126837201864700368229290929919394253080910288466185663974698105708635903311608447764769924151572260782853293676513880831590503760756198231261260696712158508072459111002282348662225065438267658001338613927453289548423736572457796458529307476077261625299316414852605772887050456386401232353283470958037312105911851443301244545248565820249244608660328332181057274234319820494622913739095439704626536209073578352189195859017181612211890767518495740606581029096153684791295053666985103301289675001143453292898957633929363624606735308607636428208068891359669044264161006996051281714253875100294769243659703439707063853473564818790539225880966865989661172216254780853776502489817794917442300147133252503194022761780651496787733276657762245860763923054106405608820016814851574459742727766711318978479096026022001194708905675962568722836220724339108480266445581761783849863203406963160554630370150509635972311877578301914836040281978883341798712348484961375552472534370535584548752149935559555220108939023648843062969833803578647788222691416653550058305102742156220160537542846670259041651608304789864812724593833576831565111889660947960274172389033119508206493728756457767473008619703431034237514246364269093836769535023823405852678848717085522707981254690190348162470030668183681819105997582202496456127296613098478304040639651024572330418932094547159586410226199436295647123359373307733302073072038417064296828290104154942409428557564934072101223465677189023659758953612692863092385296528134703409470114589631509066694046086538598896086655829086815442325052696273870686789107286158711244613985229351412616202034500443285626078680462897199382642041989998370344775250177105056268593659378505267416273188115133611262915437297142422428819860245699633076300064424936839480661238409591412273035725430914943141804659684211445162683737776994069009561749090879190967614097940582579220313304674426479448315771075020556980301471694484669127904934775119073533693115204845210621294122423356592119762937374391449159305536376857658254774134804709954446577769906093273943898537935628796871012227587478421570015282074033546657048926458330824817178269284176630724082856407610638985216419255548525770428029607068912660526487051698861486907654547998389699975468039576591426676846121295457117529188174756809296869031877584838598018322351903006140869438230807179393679448175106169375314571105933992775661973966289765306053196944292959820660409743739473653772677013991123426348562014308326162278735157902512582670192069167733490152685161188876511883383670253037231285554275270571930579774933511734878157772501377228378131239117543976715926599342610232691682997575535740673998428003717114523956947429068416743535217633761051717353950222814700307086790400366538035077698585832211088119415257193741910682926964049499128892933724022520347355022436838146238242931810331011140490878178096430500482162665128680089469188098128168577620329202278442675570879391312693141459064506496787778619182957704876434123228984489377022984690842630822669824667442057586975346586347266660050677758670743407331367618328005087992027190395295142324741060001500701700560638455917039829000077196542788549837021065894223646646149028263636422023712055799946032073039540083764931896300054977861976179430947002188454417403557769158229057994344468122968954950558924769969250438074183074393999489874703870037683906070186191803190661876132017379582549153643510087761110564465457067321591292342484807496377447744217829695512801853820303720902001113184084162689529788991968841239927631633905021496331610780327325805588553196117347556330827620986161546825570396294572812817231931435595887912092710035069857080881300153589506852632855430176466709631319682426242813306037612772626037488338696322472367005842251176863409184692806700928435509784246124967149399002460309413969228064972408724467586572974388241810341728569438121577156296871137770807133311932527271280823509926318363347832322196559235111700708089026828939114026344637421197854315258617747407173037957996369963269756200127960981871727331267795844432725666420555177054527958167858730779426205198064782685141567303447638687845556980580537557017930518253597118077020307665449385308308634657600697252195939893521606162050435279550489894497420691346326740032573132863322110453275063762517071749113362414555645988073809920879902241239731326590972509780659370690299917363308401434638433458770859990897893090987315601473438109948492367751815228684245468590530828242872770606053885823544301306031457972776546238814767787549256489749393716084943152330141280472048155239776057847036304761914581699119752369389907066322745602518631624043031724170513254488052332777969694244449206586150230007351459132958318900071213640804081194655657575427426682400897224819097653561262233510897908340518274236546311811361203868934154347681189004698718900067960768913424889407813086035057388532342171581080316915876521953923401530115040279585314883085063918004692291338123938622925044004697064640306855044365174883615832690621746644908030701184858656560887336489224827331734120306285221983476427817037853595643559813702180302734111792705878977549531717596310355568965639753421447450109387709857654690863865565865353534962159650747095387285900854451967250265693569672851046011323655817793592477522661894807529952192952732659111050878327257613228873025056254244003050887501537370840610481534708673320880520057927949505148669315911140841774094824745912081284701615206451534474147556015986979096920488728282851033798240258735998093857314733098961768760221459358444909023922415089683748751141747929365706112524711612121730586299685446316411798928436623112106855405634380586209613608157497877954906353794456629028746509181711381314890684755318238118706553518683665682692739640156737828124579795667923925077281921056924887659403987555624735180879712960156228163510542060760007626125839402746217080521989846665665508088285267414106246852458501001298653185713540992043309360832360356076868808813739063629221824750905606831102021307165642318663751372924135728535506043913016418193757397390076430701503930316708678508921781469509998356131694916805545937875826837545207170497667631388124376541352490771071899656611350564950487047873633890267750335648376248914864893734154431750623330074820199488654068251004077567280479198022847613133794033256447983771139697469276136529908578968001878483910701022852087888484184475190329483687481481959645174811950105719301539232017753575028851731684894635532532280507351597112115117078179102957563397400840399769959796956382299359037218541322697850983546784820565116628329800971266795330751956577732968538252851746785375802310875818304691946056941831288601362006486716178891898409500932731223054664089290332016327011229109373531576046287157457219918491338102079111738135927549682515787807155323008044847628480369567412781860508908497223553500292988995373097620798110532425281082813737130711598766282978363696442429193021578934914859241806343789125951703490744168501366845245451894910995273440498229081201547780020608208757083817184456189154570275865610798288777955805751608251314440462312356713943629592560698184848711833273886101546157213133393800042094950462640836392785746491719451341434459933619719787047608302585319618647424560097663595762369915648980994563002422132601664467942290371332995307210039711335581016046374454449741364051163759866378078853149649586264016600178488855645207398406426091473224162286582794745095815134777183234092169158613164693420286985642421130971410262708314903299073478596837461568027885130148390085476984608233950307695824473666912487782691402976625259219922912506111667549876384771799632052398517424496728208935998374416939784374994093240858961950052752064869020208523429126813236696916574714993840949683050187125980351752819849029247340514335750568477917491123433710671663299299599849574830378213231696747662859422461060923246265870910475909403833987734708654090901381514729339838431001180889356388392049323880816011883949937544896691042394595285285096397461632784483219660224338311780175594304307031555414455460175757795619874932769064988977104163577393946706394746809525890765411086492539447878108791577757990828352902574898985307584773187288977657683237559390960226858856010563839754522894028044096045999395376746590249935153678311167579127690651763323354025188819423576786083388678883114447234564187050417015525479335274631830031847276013710079982923070967052529819657182727292676676380631043723759085949912474891968873891211283433175549644543932324712747808822326689509452857617935988004153899436261523730378984283242706434972814517664043221982454435632158711047469142223272930958896291689483239654692909697322515361960133340268624917067646456805635255012669837182224140764411026482327295820542943221849257124858691490106461493475498746330021610340139802452999143431742787428878023529605878185088770447112906318213107967053048550794210681197043113573550178842637262041122715130970387376289568793405823931533900407155926953558460866673766038744592219204298428556688188681135699992327560288559740226377202880349646353608753919942904534423849800412250114911077288294889343620495921662389011523614637003121338954838533117412391019287935276781680155219041783790428203683116311998163388938969464554355137120474085972958277823892044287560098833386035095074972728163082134267078246555326981938664303967737209498364804104682068210636079506100463599808177148988690714624140734127347366798178481176918562070140988145553806801014162360961653315216874541083586485832462915393971207338775413161816177555076917128407149108058839855531862781900566505625470472658618020672872894007756010011086243529317738243776505093161653415579379485509011254889434518573998357454409645691966804250004113060225222602559051076012396271372847469338901696851349566198991583804302107872148038389132186596813879180924851161425531574045712816180063255352692517875033858091042369154889586449164700785021167835537400781481378610286610223971033379032209115532217532062553389952631164026052779636608463357567959885951983754478139501195353547639176803018396723979181386539139832175446756028947328454673319772659957563482657867906960838632599236581006554239299458797317662308813071850002697619973476083716690148412354149931603310981621015856794322656910692711359320487473417898410508521177019219515727022394244193756240627896625937177739459587564797937593962362080887579103875059684777466334874410532995045767839958082124889151383791624016689857022194912857905266021430671384758878456207329592735580058054885239968970417172136689753036392370750875785008271984086188043374193231549116627189910635989056186102368620059715448582298089387302659565899271143895667133398813280164496121733172030774779533435374721515225500675565211225747147591022514681056356018665793743950529030735799652997114623970750919362321257714743736838832783439120799076474278600888464261275325088053927095004176322081424477057554175376171983324291506565809990486972795018614116162901360097899273487423013184098992038579843993675852205104606212793411943280309235220419940594446407855771641497383946007987902078294425738928202199393550573729199850902528212536475835624629077589611579517992002480925474348347891781601118803048302625447246491518449746286527608640739511101077924401946856767134779191616388951350059768195569843565063224012221311648406021218423302652511186701047170707410250417755771153639345701047361108356278588905683723647896997661093165694980587424416257633763848290152689579929522639528476187549961607527926973040156103816692698348983907143792275640326063339059805196083391729404297897923303166029247037977871199966895630208081369206019482405328003592374889535766733892096379226276706131730125424223117192354634165808310732454164894532858869187609286027636234623551233312008087511318995037521754152569442147713830223102528161436155467213089632829198348308530354351665989110367274823998347672543984436602339736902954480844150745631000710052859722032204675354522322412493998082972975629004748718091284144586783265678995654029471863033184351459411796033851364919142244018111359155084887564566586396078962594499844198236749534925628128356258909647844621842254635755960112335139367359745925488085181840499372183251860763807333110455488879656299145750328031210680354762745695340645919204042151590338949018117422412657334093640482397723857714163068860233541525131514038440180119250497409390981000425255971483598980952946690000851876050865194305019857291712585474153831550617850755081029077902899072885959790748262113866182336694162322323485830570149004644898914836023675936275870698794303115564757136381058489505588547738031574293214023736133293964168330372291611172816031200758336683872730584077728609924792999957785827919576400570095270987419281468449963255110365691085316489886701609760921302791395055972492502269618433780322456737345644010368966896721994678453236423630668194236411905931223584175501503078007519585241261188132864175854898902086526542822650672283920730690161290398187577154507904367802758877592743813334932651708409790534356981819988220271310648613105263493874287160812748272917355355531616841887918252723628094147202286368809159491039775321515724173569643225677770954246532490353639354813308089279351549190249123172769122893134171090017704318108054337983636524949085409122862490724639209029864692514321545030616257466303028830888004881724436816216895666587607077220445513321544994031896444379018139053527487771562721457180495427367560187837955478494097306488031741512396584710293946468996352834230560423033619277779735686626769500527541766418912973413833254833765887465095525539627782266817123215129698792170444752029052910196227346184930518981592997665996570625223299627345506805008323608125813368615935350562813660221951327120449154590994253917321491193979144640769257204561299911785508106873418870601871021680930930266402206530410695294764453267121631115006932053962503040903619855622917313251901085519350023449105529218108344835308134672033044434929775631184143120869553226957431526138101692349368159243409712901453873220499430197195673387103262475912030120833157227739022175606159977043214303357130202032086265610792916819071465754424811700922615970419506624306394245419599638284411270830489838595967874608623242327101204001806146599264501165642366097115562859184024259014014643257131936371925421352992066332117752034610995266032517479012879276081122690933632771177794006087698613653267758452286072349694787572333170733246892559242690720200764037839274610511823366262466205778831063588591275113695908699809194303341960673135069108727665408711860427499821193262422492991078314330605947751391657789488861926307366040004841928825146369175717472046518142551040640355528480427959803860187875252225104705476657522132961821000049319008413300403807979516128091112101441935966997909945295594294997843727064649390429848788508240027921399931761011756475860217182214697233886785931434756801115051380199863565144917398533904872321024007223834671810169978044657711805971852399089822400321805848909357100518329987732187123595479224763791727368911598938375641446008895312100583042735596432621737051913336469620284544261355233896441370243146613697243979871760002349151086567992488965895132807071237237681857057223802776677347639456848862481504112567379530141089186537096622639408041797543350437037421513929032303405678864230380866128983350765632614333566329203900956856852382454083942534606202535163943551170970390479652205598202852898788146085267501319274998062240636579598568321841991867060835966475513287288143462874195564504763512933248366427764783203558690140338129475633861433451970558844884352342714315482066249588466118248175076590319321511563241646899848985743004590356697376712255770168376704754035580537332835727317291335491095264555973235745877925176724180273806150251525891674263029263458918552328503340041249734234757422132381617584920071920147771704171632222591531040123346898033692408340342183397456628282626196940961589462164213378005785216124149353624648385773982884521077139690438755609825758429872084694914811790558296144224110557367623418396408378421353350355365161932320459675517349690603889609449528440953004638438954906069936827332935262676600406072216910890619859234210564814372915009671969650748433524997023291684388676693554564344658036497632672975938953941508664445323596175522306220353001337399095251555349889026330600506412829027609301000328027524234596704541083443317955646733228878770732489848766988856882919563086859046442758678434288120906506926511410903173658102523872764556299573519628675089960498914426853138952837107394573271394924209296994202716955169948260223145160395731392671760154569414013125145141285684789123834220922459116492004234530813024744598216508917121815579237145072306807731289980353828516703157975611354509150133458185048853226345394061226202763493001029278860370443298412076211156802265574519204392301387875635187994417864572777514888686211083403224021351093238245028671723010244038204457219249288246022647250337819430105449237475700845142693071752181554785959148789392887443754356696095703846548201485055093118313817743312075869931050204118865055510845675191189760603428290461845390818846606779198523220766798185568281009990733977032887024419977330233119910412461741541269960386478504384849174904208415930426808739237193353623776109109575284805364545368484227896593895235547621211112669202194141797381828439105206222362732778118434695282254897783480277827119388295362183859897415725624993413115149895423080024816033591905310120282840622900840520630163655959196050650255240829471618849186071585935125261812931544060386019218310441350096691015036232362478918493107640503791530123026167799627319939899374627521972870399156787578944343645689391933413810593532085784857636808710171174919371005255427684157873549581408189463851418935701050351615885899265801152287399382979352549532265376406798882655815411194598539150133646339849730494592230419702426515849397187364790076349113174669091873563518394768290676248038626218636550649487577487850938166377130555369811064853740371709109889326912718023798929777228973396666413008567411089599501887355151857172516260414368041923651434753229715373633312545788025635251968215439806930718146453319578471370085110583373141036387401917646063348588441370662541347176534892082862965790299742900516589962132708212396098615883933760984363580843285750605708021298233928422507569799852403008059319539144348266911382553240479031809328776007164990999265663592889093034176987399341750621391653491374473645537659379571614985209495834732313406596119061760369467509376416431443772244093322646685049008247490304561233619534950234536896481170218552485188722309335368494597517870756790708690151471783683373310896308611578677803778318522935529677291709664420310264144561294165009757319971945073912150021035926055590609613061691293690639643557906160188612810509867647026240508950027976154519041492274965466366783635232638752075004678853382402349062208477423413599331287734359730218455756264761468543799891604041717013414229226832763375678104270418040006776734198034574062888078457477718443578402526330515161387768361025679630320653944581626846023235080359757726143332967048325191461551424697902858515262089535512117838987597362542042493546120005595629716881312649519583327182058773280433585578850662720826113273874555292381014320355270960434227025730464455244653736874319061872298142700741741365374149204742328285059960846360197275640315387493433796660886929296653938067318744516614861560260017209799245589805556604052849414484611167577400977192096604963755193461241542523972115493865722134677273311865930084975364546088642451163375724567454659011310379318245143219374628750557055383504213176985917072517728635464853270125459459576316494815498489267190804120658139608255787834859187655513215172337250934933647862391716063501854370538898916329323573538126966701529679396647973609246948522615966204563832817374116582765018744890369439408053022539560152795687375478531556629397807317909554450620666269757473682578309524600391972004541848438247148309753436279544251495873524685613101385221519246852531881455737085529346115671089944153056782584407915812806131564679827584798954515806939245393993246411783731921756319773570896147152252078357030700845783128772757310799569385732780777969970907503074864373781817626556067233730887498615191707193246920600296100529792544279111393855076342789323221482130818915960279768274796364418111561735384550001018861831057465065952785222385312963086470684436674060019252211649284131870149030017051664316289429342741010733280694107454415945093851652116704687719077725562268232523658345723266508563767532561925916667928079713196642228254276104183757462268472619212252442004324563757898615579957033470922971465781074111606387137374649035888948830232636279760366119951183736772512054353093570097509849761001824404743757960452898166564994207077756469933459298701066735377518470844793032454430512549814204640735652824330192955743240452725217238204536930249692940296063512981697569414322325389240320480713329476960711292608790103806417751657203504785419480484477462765693815096452392906900976062884375577904114146646753222055166501382305788856999054503166205250379045884244495303568342188455387256114524203075490198397699466275407113949622966584489394388536670596020280000430000698316427653541187912322621624963117778852832588273866934197527947507836067418438676580078025409474461639214378685632078036799215369486163363350446790814883298217524141542296905722100091458338957618393918749704500685477592666291434333335985390083405649068169485215023297104861815520489436577991023920931638835834178187236733217176674086518277978344465804566632983717688480268862727203129293092046061269178807661658369341727575374319377732059005022867902688258295097412028679483502931038302249025596927753360321691649653201212250805831003103048253970071068550532951719961700822769044853385669217151934551674476683034387001622639852323499663885396148184793183490178034611755213517441492463439194374325794005186400346765161890755199617116444943073111817946551376525656485730023792367927501782592285492186201211954279987565873651069297695850938499348601885557034239546064581681979758447145382063079743310185356375865512999180496286971763638902548688661167725671857679381627872653530662229486604099683459617994474070038530698966731883876730756912660018271982327465031495371774509830077856524093850954351270033117105298816268208799547478916755583186307213840474516049406895818007798139208746234796797284251191729948473457048384449489471570139925466793894931053399955079055146090772107447200887242187464469186469226593392025504464098185204901662870912477477089602899861446738321612729730502399281623015331030421522288211875992125868437310680017794857101884971772822397548338876787016596031879009930538855339140842475887274313059719471782635351812800531256461189323506955548577090259498081860080535394157527781101462663244820206524380634002597013707246629174247681763939060445979633321787912492085379761877856787591024932550887284583340463902396784127256974914771698756914526954014823657340405897955452677697331180378613979507517566785494002679453283409513426139835164598301519852394983658418695097670850841969900714185549912585023285075384510211092290668038816795109373162449229144287512667770500667076729673168336985135366129090767628177793813739973034108367772346441991267909883255855794499315727655272845558336997509246861839393915077180695048879414311603902336701385345947026120087969986989666595659564149432713453184500784068276026333202116670032028370378720374161368333521839640138654652983713367904423860242409806529343925786927237282845500534801762185351883486101752435539994702620959113680555904443498611215734847112276753584787060853445808633075245961007553667168199985344600176696190428896576429881143212063164106369102517280489277216460970765701261731725031881076969999383153668674476704872096378457969177471286822051072992266732024192701856188261242122857722893444257340833192062880086348736362801128913166678515954572660831229495280143956851246209402371657338519717150453953378955874123323881868920380689232677693860925099631824333915467479424226141467043920311861031850248100008649067839156405562054463003423326848545779385490301454415494007514190822708061376323344162913214140810840300790880377062587206827826000085609228276162562908684647213296558574769213057458345905120894289282196928917336555067800235855516133721041420314576076046429575235047295678850555210412944902000404926490790387307195656179916690171563454887390459287868402020148972252088510745840507360147795035888833646028342702235947891619334185882884973523002867762471887620568521799999407450522688996935511277405616818962611819132867735838286964381452616858565383199405080905245580879320396617434764382927663886182981913528406096629010606337394173177755522637019437810797348115422023639402994515036589065869459179178376621736411726953589746601144238099594945234442291387072875998380148980477667376427850914849842821599701151707586357815133258999286596865254751374564041169735794519522355547352833552327899233514201396272427559341381046134111308241939109645879700167002628225738782451242890945836047474534838965911382219549019397494088781908929109735863182499910918126214517723471806267770407095595039711025153859207735436689681481200515795475857736191636537143077152792793616725928141780570225133516273834869063952041920387854576896507257211442920894413395081182755396068181592302050866827277422827950013591728332896025321570355921081480017825434733088954805268296386985150583603285587060192165781639711458415697193344153740006326207510021325762648155460374509981525931023450208457771285581578096460215220459943606958368151683222651683226796156275807341781926327661258446935198953672951479873958327145602636782144810787112496424749600065702588184679679059116535328826751458747563500338346257874675585196799067735313516403463391092843821594811119266076378482769367373393052692772698610174213321055387704660292120204098225944884008696941549131987202252573841911332476757021743712974594061083648265901409970189656018297811019029925289215692533054391595442576709830624228822557481744886362275880491506071274992991924071753537006405715551789984804364595262191190364202763192361274796987930000333962507342059406021644500802862032259486161301576031219001759524012687159534537790286440509863969195906054310662329911147008234218418903485934990861884630590273580825852514763317410028270419812658638405446229229360514611067564349062707336644224108607630103317890426405559983132719053007421852735680725806649549992552099603467982571311293555350131723162975490102791304529091798715406314162719112888955761391306384922890625045882800231820637332330782790043669636825058484950485524912814375921862415452141161229946212367424656913509790271652398312947050536380040138034753802094179295239158529637524331594872920468282705997561366677256404767126531809913268128570206989629397568316652596518239792672541179959001377801054698345941655147568209987959897929907585768595840616503361208505474990190404615970636445832577042024646101098647679631930427650145772410010511320025112039646403757437073227777729138265959660045226627721599076966309829379604174109200123265304843807618062902821221699065310438528071655985010023597348677721746752168045912418878212180090667869600692917078577383911640514655742247397594087899331708048286726565028873089003950792761372019061022379875678591600870101154803471935718032505944538523437918166857414556187144515783475939053387372309670184599236559461895253334250307611693707158990229309870171728714705204237813124691172004750093973042460978310983725536460090018272755740681558504432653521441479363916742065288499714696415771090354449211459431524372105787077351308386674488460393704358187132032578040954786871864022495818301707440790566544373785833472132507369749259573675099418409165302000548876180885307417213068629496836515501633863917964502130319543085872053387951797629409952331333690470612971610097461500801556962613717197214493711698757962345735714421757327893663259462371142731949721072950435649415679719852138035816179904056442321283934529349827731976678999739200552192562345656545154425051374221719312557890609026482336632958327360651669304147068143488904567733676076001690940090238735138307173179756102980325984988059471618157851246789682421301922501287096637257196618362136348238412714851745520155171188271277561536200848186104434139894313679343789132966662562215882001676362734487435658000595996375320386044534222578358848179051110340275366840713081064486383938299533557557617551073302776372633151744506996845440319460363091902091557763413366453306476535486449322004083029745126868777838850645790440205241775261009799097913681095360015819150421716831992309526917475185369841102558577178436195341230155308592615654347180904660356090519905098871915831871490359677763005523528885081096315239837151050980433006445477830213307165811746792859398963345235724679501052576858399092954694097556851380772664891560124153835815930386333903969128651365269147991492766329596667432597883154045890858625677438975417347761082040133030419271139975249161581316537573136528940206281773243307925934494919003562163370807960823946139751246781144945572039668812199843152694003527984751579144225008102077051757990135274326475959804629118236927084720319239922952503136548383024562925997576733481137135453870775406642552177834262103478631847577314632661831504839767421349661905287163636430963499601493294001199165754965541897870104354813713624628762606181651850399071276544351565160981450480977222182437759625366256265269400625863360880142343827338365149460274729872649490353012326906410222562105667089562125054139818074876912638438753752481805157135904517922969115527795400956999081549622406730776918325152888378998896845267615477913101929162345234551632835173205651199847940516466796779554137655633398313470117671328220773870408023217925156614355174717444229981924658860799284782982737176353228857096665929498680899894702654543128848565914765144359823149915714165472633423890318768407682943355664876231755156554470040379507622229363274947093807187497312340444919551526138432245634330586005624078665402850862029180224155841595861051977785108962056212393777109366231828865889972895626331684337898168453986808955535263206727845476317405725384405930230845682552592756379272906509303548878485973308244578797071165511465782469948643584590000122414676999317682466372201420501038686758124510984744535453511328255536573468289975365350817211063709559485774807368223488610642797252107204878855618282084673176515209015450700649459195504963118562961799113722309400037253598700551196097084368443407555196212186602506267626682475101486394497593849818368834194403810286109102555084880723150201118868399033906705362310382138506633248059407792153259709239216168051322543806499479350041303021114983589811403861819990839160369188997834821634100134005737645512329958939879575197289034752767595566618312155391518914155265665355620806837057624373220131190391636781637649448028018152911194234765430526884097780738401972309991327454903562150796131354320885283291131562847958025820397185042045757964694003871657793197506353004630672706898318512714791020844825784454604754035894901772563248209119366694140556407397363021294792409713228759387505075753731958118270549103722909948166464481500528275929473203975289191166176476720076121697475844153157079346888905398985347403127445506010009501292451730329505206535098967684231176294186717182158937911473510164622927260692747495658805614268041768033551871654296701747320918538413590109007001352513328240150704068033155687789608827805500960196537071697623765383297951875498152904627139842408897416163951872822925190106240085112770873091063593763565384696324644159795483568473459598954044281716025678295167539059456561443018066681479112854363052274569330331348766495278824097993392793231669356864641459442296858409409015098820969336940773167568746818608779269974142283576209945376247515248546177910563291547706064698087350667731891170013393522617997761039306189888404177890605645411016276134484343395297024634721367420216815624056077764328629983362918152936781861648473367548582590431624518260928513665581060700426666118357355594265482189180067168230283750727977044813891155761935900906926402486084273715970104003201471535506744991660713035441955734375081012003433659022780317794195471838719589393793304573926107095024059825923099238017881283433344884613695696167610132850479710521036148649143570937915241893186358414598816665091658359259388663071145698519563634332347073486193143960784948739776462160595477415368840094004671772799422319251131613813315057211365683485243138825408579784265703634159413993952415458137906332939950720500850455300213903194250606046270322979612289082666077382246620534699585116702978288766622610885044270886965303093294839451326112726440157495689783967457575261147610698100167352216747657940015527752985695294473686104504500455271319955318689219482267211551938429967861818398790789678533855283040444000327083771820582496668278170506865301542851831698855829505702049946858981229869452509582793425150722348676108376342421071000157493211276299559755339431214736919078625165279173223768083033913577403822003077362038325794071644166705872200861709842693788427263623307359481523805043906002868772442265951791636811707360337298385609526867508449700984629753336270240795571297598727613445100663202978755815354881358613570902262824951329498194639410619546530040290607761057351084453518657161094994912512897556268767749358821906846889808153528697060612577282224401577301009800014658027385136499064762940267042954271986443256356476123331218938259206949392943057771596958750274940590121197939193780489245268848310104564826186390523054428698234446935039964684643358274041002789480193954525264882761718598504524192719681744205837196138672824263275528201155958291628336189721936261003631142495549659861518360483728509968637083582934282006630299428711448391877622721352159321076597351318381097611756459401301683565594766650631905855187118216069569831211913208333979150658993301220654513524735096839078578284339470209656223662069728586094992808046827395206813103217455412591820075354799465238373917919845455972592416930407581877322876380807176297320512565568272999047694272431862326023483158845025271339985010112030667608851477165104921278468506887082306080330172099363349091006887158558813490401853659597547533975016993871009220552733500905401738791087015508807318507692284346401896044392386509274645935812517771594785727733823004531982855279706939134521484166751835392943580810384501058839627819554475024877457851314267118933395004766566474519248133402956725301611013275333993386661108854193373759062649845487488699255357570021239847387232610939848715831565947331068725754967265092032809561678831114427996209878180712576138057984069980305946983635584927741089729958567104269522657363708029903467633537369563414299842427822425956704896744151611226058059910320535093378201371978495957996794193263103627232612957086731506428470412055807381248790042669153886686614310144487794236435722076199345979199795723147762296200669073131504548811510978657824301333642270337710548652039844927514557105857098366752014736317536381630626511747977200548823481930798280345593425342732499006403431913397401442221859272176617224637976813550919436048685741969599130033136025071574825761912454015688791740503453866303648779682115389354965620088203209726866029930421435310411125655750307319819140056443903615899260319912519335887056750855403405058282213256429029548095905243630642304316067708474005638374829540015238609545095176452068108838309901027538921198739345404577518541282899073006504917950574099266889764443379128044851113767645396894457923066340494753941144491706035027924017702517722762141627993507208655731263947205330325908128864993234388901942140157696931484464417823178469308801094360901613562324296635138940825965518505367237327139532738268898977019921440591735196361126703611613758595241224381357093371827862107948258973256053998586564291934574216780556287123712561245717663666645751757650508703991860529510076576793570509633516060942802701825572831849164635168780836992043120746338800520105970944141475518475375829522682877171527065880832710527186586134906223375119235118309397228106233327900059916026801987695209211776616791729717806357166292246033595510597935503580499350344138608217267206873413705850774876068763609725754598365320892199754879151024176888682964021748519406765698542451674588130235530940137852062411049046734689912110083360566332755709368010300386176224899347216011052427816179604631064055001729176238450674153608672180817021930193192025741126478380307518759662267648955839159523786674281748926851115834638393165252126251668929333158418801580217319346040866498326541404610101566425880537796174006708211862222488475750748363581912448134060755047660201651940456480195995722915217254424746393684247756990910867476062167611583917221566509393861413241945151868267150255400571624122419473128036949402969218481625928317302624918003902768369599764846011409416627494812722673193890194001239132586119916386612391788393255295034609065800446100577378690965266217785646217852118991498438727070556850680291198846138643809017680954011284215230028005873564239760162893906943164972842883584458745023715338394441013650274647406342462356467805242510160254465981608553793503593301874864200658313799538471328709295842067731632274660137253918461807095149272474316087526723497716494584919352783734246138414219538926120023606638557314659808259493469781314428830009156538100430064139114762722778321593381446291082981317289300673681975278781277315964846619754029558516574698878133999126032870886073643213968566282065744955490534843160647156975113490057055467678087756653330287635725299233770066344715982979921488809191201110687524220989780947369707933167423436206665553988948552907772292074300196982788148687425341750751173609077541266448018756241806841968282286881378033575070721776470250622991752368384407189243418133951069094735587096265026254369582058429918907317884615972819020748025310040944811848625166369914107006082592346996895201643896689009176461005869623793380284410416178880476943919639607496943354438699596759859427682899330849833363023752902832984061512166936062971556664720004667080489831199325948057976520246315610991592286086763998537847008885715078850728475870804031696505813904575699068016268273427995840361563598120725010043410606263418471222101706420821931362894415445943257102712569560665667044431325136902022002814514214784800022980325621044319974220854510836970041944077368201275536454336004138775259636796031533740827405695186070710600094702149586461190868810333905687796314969241728911563948845374710782627721559373905930466502548502356260863678809470936746738774462890574683605684268476207072345488995507181494050618598663101318326720729279460400000884726619207416818869627248583922487058520736701220568120467306930648279503499730235965629059846826087250177425280516214432015966750374724356534632481442814844891978787620114548003359854326213271637753405974835054625904478684249765120812299756066116964902417543521814823798583294761710986879717084107470388638655309214484830599204381690996821978107071130665174234308953232313073436762019004351950382577952351043883519082935516068350937529304928683316516335854435298973332575590006441381397040618604654587958938173924267299011235243351159852502557239314800858032029969957166188291621085911246092434768194764657088242806084873292576974200092967355631827561309687555299384364384776461247652630989869002257304598960817636867612151572746414672204090146058197718660143507036614731223720859995115822112680279716669006452072072977326012592369088623014678168370831268851110784934715477881779237917694367646350188372497600652323578515811643263362697636494681350321815291387506378009633887201288293356946359608059728065817362557108438657132187025138858335131275655902250769027158044666093241560939305333099906143818834592973287411572731590111287891023415797900320969144543185357791892835159422969198885263733184006911534571592138308909061297076818280591430642277038213929745878121736808147862302023434094610185956622429517783040857996438314511336839579462340056888065346967149040463941974618416690615003635042196167956821715645667183622988587930297510363141810446577638143717068092204654093945293946329894238470464285395361013012419206927724426433052366790280288687303461420573763164374519977398247969024869762385557961050490939889412148055918387329523933564559560662514787100883738550233445229682173799716242766910405499597942639238365328802210359112152871354877398773196484554277120189453593866333764357498146246458100626455040249647396662022267260724179426281319964508249042548726067957369844159258751474164611704359277281272704631260990862127175848338331796255743629149685314295346316526899010738835199044126723307430497824465826654438351486790077203133380964791064209931037882919594818414461251099700873931091445526732009207995343225875072491724891227723606263806759721684216751219594951008773722348292272770775217946902506957588101537147760670506428681497709901702196693994514505294955290485199146930342286326509505262333394430447916847713579973516794713309081460068892556461961381855158742627787291458193483801107696502510050837357087686102689318183374378242665920443827986099941685591899353417739643463790370057693877114469055581269712871839746340223375008301430244408952368225365908000066950020076943457164235244279529305843670909580983405716199047343222450231094963103104822883734256450364186988543228769232136033184168165704043425237072974341321713193272959169652590350146708182303026228121156673958147054592819160763582178734418592284779954049230540025980663621873375810601336784228426258795261755982298916405429009359001590937425368828721115427153890788579825450724992135845676713174562044681974599097179079876718761478232703975681186573203425048223449365170363876197323685380465706048588506519034259154309060572843804616709248201678804863771127975937118409121371050270269293149062380980753478026518689621267394572309421192898571487719722595529331575719164626771763781130929406314140685023396311490463468979246116467823105004143385001519913950559247464173401928651015166758258751066944772429146793057132015396135281219622806472572899063186821850244759761163086494260361853493360678543485995023592730392025260766690025613930650176687481986155759517341484355578430433423308354427854146766060531867657744101760454612198034056913262042320800396277339698689049842224878493689797741877279939336340999868798228865230349429970703916868898501161934623358805626030592818468239594807418695328270570100128293607254745789386399251631522226094446110511324174069263047941274607671980092661289874961123159174880140207822702974053625789230667045321393523142234458289332684108252361873066695370966943404174006757262865261343302952446451347969739127543572347868668046021257463139361315305382387194467260304638127150792287080533545037648099521355153796699031454128015131697508272909868004607051837410345715206679525899399154177565260009976744368061244864393651050664944278651900631746883548097150544926700341439537186650196501025325559871985298571284131938212845120462999720862749488876561854629495276178342948010020319733504323030250425174361178085165117770526505766511532826048311550591346599209672728278620292193655740623616883912365415003929057652478522929449292677154077915015929616834825176026513294772035798568758601814657121529233192365588958679946315380751061627009997393057414160527675070220435122276380487978726351374494898449657811747269601907850431085712363176253858960621224257705951653622720960917931643924915001477415395910565800476586217956292797959752769223336292860120484620728472713546747502170561796781843974925549071812020703993969965428495593446995051584257383371395390626215865944136592527510376120028292061128942164340726077746716127938969391171677501868758393046969638646074682589113963406542049634564593181979848336651099425101419643584442540646013903374821353165001431185205140772400176471113973348933445226852783939750054848300909673697312653987487480144264288938475810818262323745410140646876731877000874620386694636621998427378335771364472149590901310104676567112505801340409182978990656572106010963557026086450881503025195420268022428829220009175075816439302917932397379604939859119305101875957841620481203686400367293402781033146121204349331800336089648218556648084128876448781018350199150014541673605660490351053289563785239349269846486549778857804737615494134200604654239421910270583213482412099233746579384481771990154786824140545142983606300565788497688655257379736400756059491560176580397691037700060017094887640430474852727314721046676693817857278870779932158239818938620153217474566898215670369662226830822237906768329624332347791057538210919759445442304112429125452103137174054343808507079571452620466958735383605159392892663739289874339587570712195451402051691978933428915092636052970770430987785415176460907295760709981309253931043797739661134601714389995482953322491973933725149540631908996558973538891996330930629092996812283939365865223313695588040417729366054562923677163657606734696949831030779342136187368778699943011246461653737105674434126379935872995646027486166882012985843168111914401719502073407415528409257099341025928931467392197501378120674853237815723168411311166423118461956861038944540611632544265979888507684205941145311079792630535050194426270955765915410779574100859746689175555693841175313619680439373917342613882754492749658118695540684927599276981254138545589172146075386801443533496517425581182239941782911190407473452682997323098711786009929682873167521538078996003003964248985656736605220789529809868143855352195852733861919208794958910832905215952501353952336362545702819424098159401840944405711203137113173078886808479919491852667434810776545539395847390569824481496091903760840507415742568949877935265624346095190330947263522539899207365351454141980626976987624945860139200536699263435803903239578032399840400450165083674750284289364168757863385150544301405955906669739652816588967123573059319838821238903534145636115270105954367841506197321256208643854244582368999524075814709559826136528989709972967931904950837678736535706040477227465249040317847573512949007273863618817100423323517120469228299408281899289810142503270868793404325483808716907346696561727044592606784019921682323777136922363122604610953682702522851577914141309652350270565756669180199270637165338191072887144601965836848257565330491963002386766974726493274458362905547518873151992762182402360188585700950066035323859525665778954856911190118001731932263350417834992850926829835601826036791798222973831364014909394430812108112964314474549359266457537934982554635012012759665222818168073204862347492640638862428151952784002313610662607103430085867329180469394170927588129181486215870399074558340944179696199568529717502254951742584441635139438342187213417692728919380185828059478784017767292111358660892543281914943980484163329763376787954904580410041717177037738583325771543906073302155498491350487869221216731922842968128765583628344053015770622408353456853113994897851886427223439656395015079744711393334913232113590740954886311264263613863545180683556209724405356380444108437428799901767937840348821549140252138370179501202895989606896460511971381166623687626744293001468375663584939542936192607207956491784200228909204842314868415907695859380002936003305201369218093765783670758952774870496042066236197067167037381955043073177269363322024956045715222361996970976122176446900100189984828350924470582303443497029523755159322777583997913137582691351091605395324967510473597505460991557392413605069467761232772939691262092420955886712047724860843214349965393454246917173714011701710003870705974045482021928859741737068294652090384743975537975092109663827939608819264272477479082395367582538216351172781516087281712808913035264880780349489479531419667898093198362822047398762470703418186951580525325170768407885794413818780614653046026566801618682136272913725877446682117724095783712351424480288753004336387382312403170666412543654044691687314446409669553444935415119216451171655822389254265041095725949695856696852433819599266589852954105829973327010611822354174739519562622459374726483758471302868955959860334345349792660330478075517450087641039987980124767575597718987856239373674190429494791900672921451623892504320549444849045816890065699324316972353768825358251549881042624657461035802725045613336885027774091211656186178986042237259772916865272225220557293523033718235484110933192982651932653561963148842070087858622391734358443528895920192998990126035277845617799101563612563059349945367261734649312212134232037480219837827458567393667936250048775736890716617628613549319668619174522486887325123253154532450208733983050771395502421031756871019266937813375958079284686277151629564787172049503247518479319096724155279341523202629605333584769668356343408662531845644763910035418047435804916748816770541391986309563806420446226201138613332921099129588425348200509233516284533822969418393653272810452525664620496661089442539515817444687027776658930360956423607580173005039817303321639736425889418584912723446925296171197824533233012314020216534798904148012129112716856785984111752481202364906088326779345688408975809403784903223576026496732901176208774748439532450072815995636918739266496505551951826028274827917349094213189190690009784636621987818781052686886669023972400139950603650885256213476361726293793435811050918134223992141991600664410162609071673442663489128838411587490245174408027672030108964028883792935500737445752574176106778600753635346198783234581265200941250319432625838821081999575262010594859242935914653993172720158447647238602474708242276339753637591291886426480921084154688113257510560445840296747883183831930331164058403149278405560856377840546792827309180400651867185179670766417634294579671281458345020776422702776771412068502962536101767462466908850772389746248663021654719295678406006749566334096084581318016708414328479778215261892128610565809060793757350328856921136378073325622825057549633635756326333559775772380122029895804525041036125649954649409771499502844229205773149782046789407991931463104547181072788979638202797197603445063772230185217550910892970760261934064558137152427413574098216406478622672277661697062812218312171896089379610305362148881455050623481109813947047281651157212903912102562777127331019471820618728612627939588436174181211721957734176022834594920284709035974478324115063680945939809986880696802038933834596263060858320312902822229464167813209569290376422038729019720658291337949167223255590049620548720410114057983047664576242359107214503385341935400202356766632243582269949932696709415821186440897054318752628943055004935417748548859453139963604479366748859292521427672027515918300205275550953758117029950683596222871486859580307612768817116521088742200892185798598021135688626753872208658535611168068286143471202829407549207181092019232922803400197328209230434662663473440806550479242653284797022954865848187355210719393551164643747358474951429804465494638505970314910264547397891067391576396406262741415854309962042981700709134575629585237128636534242105247649499196136971027555479020183231199001666185028455813460147921398698615357084303854161122855194128990667686739200051461628483592853049248161674904875175584928130618412086651950878506665359521506401528666382992427193669788089607795893831649417771025613707640823849502654460997564822423986411740723633294176495667462150090107662289071745987170783657374216887965593593950342455179654268342999980016695212980951855001440578437309065438495305504660238225839906734569992820230060288003225796215213515429582936452060293265449019803514470078264868296451280562470577520203666169356866035415507192427098310852242042913808791867760944344317521664195484574352779327245743998131576781301309134132953403906337712173502418456388653290313419053847902505506827860817682506113888865024943159460746453610734129720853108289509646292451465113724001851024222066658017806068879189982704983531727054756296060110083255505130595841059493608834144582572287215368303273601268491221106116631834763978603542683847813669135907160220343178191278825842297926651363086635651901996591995127560203580032012291258409118468325557669540668341878974597001291983399525294490745563137736303531826059091226773361786352831293194895171372614365844951132284064441794004916344311968303757684959533692534005716288648181157524040069275475814601605149550114432180110458941012145564554590218096137603036612332397016369138036213645712110800394159251617385860185986476868467098679670555003890238951266433190718567056422414301116785350298814021223155902868399018612964974459270309387417285959447289289111079028964029580557827777686271624739835288564043605297769181525210254955109787142593075857345772841490057950796847970489868579805242287964518532109214633754082284284849568755563136111926022531172341334219701154180794173319664093334941778806661260262139798569590161108016049514323775976625927064331879548623174191889080333664105775292075237607436260915806569265514155673006737442893786118669030036253804506027753236384228737792570573849623475655960353968252705678660899963146677911833566796134141701526032340987766121700735480481311086902339537270026323732302138989085777994136493043287884921094733144867420542024224122829426949260945854502585319648028962134388591840727612087182051920162257264670126969304468419776521767535426796474337668005079407087200093069714237970220776856754340345704199360804062801208757626521366877277981963616876357570580182766243908515148969978846284182424491081253218665528155734889527383198656837866997651511821400794350719529107398394326013918509500403489887882348062398070564687970854307455804671176796469748843999820716015027135965170820875506414174239601865792397123310998587516084442131521354264139714737189784011344980316195386538895291173075573810266586317743941141049536261960567361724297773199555737503446124623306128185372105734924875597031975565097464695630978448496150134557566686244575348621840808477819451799732242922869407451581972898327913537072827290218656983998052766234361234659749599484075445312703195653620344033719468738884385122957220708926253271611464189236290896097844986463290124420435462310228208511852001515265960334095999049933078574144540593010093063743888794487054612345108415455716633168745091178950326146932704442398045998244607649391353788465529406782214088388427013959236278388353206291780170741480261608818756391958443697501638179377317480955176313481725395908131739817857712539941656364144448791480655509885781783342281649523134531799647446262112865343266575938751961668415131081275050653793249208673361575541685658112937033472264754043003909045150140024313626744241639144753528809095427511121062168403720788312013595648257167861629537363527654479655826519518889659978265008497895048131284129942656593090661902563279773205725508029582418937825240799234682382540656181865091550130770548947898161275903679556527507339469366808119708941854569506174985941636684630857295475541352968400689478550286759033784997463866774634521732265917142636791992119029853843678964925261746176678833515930166478892402112469759794349252348730244664438984407182659257571594048870103734798786454993015624929392947261120620456127075269551932929730096278947286412678737131159883659241504759928812880664212659868679955096666222662471271681633002700955861833678460976115098738580914969302254036115043338483323727485448517036524358990674565708846230648272362476908536064058208964368030194095684309511039073539462911866205262057315540963469845562699837158732846065761374746804678478228260804301052436476587975960920414058564727959385206928764484487769733465071716955037197386980482601403967290053741386459204158070127424747279127526950901518414050492054188776204875914386627051488395768443794027238601235588350968616806880668149012579779157187322029526691128531012425508427189953733806741810916004513455608732580945596019565281508486625797828954308376274819785205003039391826331360519460865930166146839076122629241138896415036186420816890830597033277609370286441567649381610506456396017790168914355801197613804660011911370667994400449483109732742396675041160311143538216921459654234531101695062837678807368381810485372238650270107206562538221309296727367493458487000912877564207107250849339742417305109315730711426221357026245665379497108152902027478481661365820130580623009414547591803101001560765164302046096444733530925108148307442652783573229840506747586216868123440191758110538564861132914424982317044279921389122852552534931313421091092476251343721069999575960971583720767524474520767633761591926015336466814322414295785937991577872300122936713128087786037532855470056174684975836681060162977513101540729010311943222357611735949016429672205540091897284703504474626632610889714533844543371882332900402980519887327892239510464957178316982883127323944445174981789106964406277458132407478947047487596462562776260031778149296660452242502851294895002068878335893425550174953074880945696882187525493691938035955817243242077570463909736361214657485485238598519254191475690950241185345124264890495906241988843801917877142353215967033464735898300810207258640288464471119002195234745818581981068611318789365701237952921722830011908884961444114090774136392570714363644598809357110753203057157726856222276668726456343290445976368357242464359095587644868499170100299528278566321952162336478194114761982566344166573094637957772499615898749286498961356253552994206315214250670075955304280019170737148852994396289471415197777101049610691161580835764740052292129948090902422111616936600133872950860657815737721456178304902591060216464912647773194406353750935290920414269040413460452992480310875152918846689719069730906119422123354457594736228877317953874490676244155790874076510380649503109990667955462529582474505024564457734519819916225637149346535379984822450397905372055811218845611281893330004823522253119245037701533242529803288281512394972242658277625423020906576427527012443921762433840498303023563768780745112889907421148239522177404194625714740616502747460100467887008722080689218432293165158710977704721091248111083119253722518599768110256142869159324704573583769580964884717114644086141570329346109820375363477693909618851544516691050459108243490398994053368586110980331259819409916710801425558678921715759344981077981126002473297593045642050054238098782661792488489457527526124787893210528932148867204917473217225242062354934117309207821710605492911964894988884099942787636012011999759294571292706952445809827295929728653593032817267753946359849990154903165594598602540906705483983823726690520315956746661754937497432404540907321183792088454422347790499186255166534587318114870057125915539449251403213381828259576670075307771165095078520578334373183812437705510653960285588447395418366914357975971643586382408313887733035957812549341819002376211774913966383638745348696526481493293025003705108417520105150402530156131710587663522334366189475287579705836957404217807255165752521392004671530061544767954345670064519825669973732696001331851643188190746170821984330446739606711724576393555314446383328624036422991371835102392918874557711383004868937614671737035718080158156798028693986325526754531080311370347944460644330423539577029233782979113782879486556899732106185020860236824064938537783967848469950017882270320654181903088505211131752073385298169800317349115701557172821182428610222231795415066643254418181534301811054432962060259041714642400270361448311226790594857205035404082053359148745295803228959483794931332824478033037524505740816361887783176672382269011461510150617171069617981215843537917673563754383318895352316502907106896988712569379309694506669524202580787904630404852997391687529779638688091477301302672041933163508140622221706900078796690180061710005501576968763770082735093509620213879751557853020838500237427423959416173909955754562881669277256046501556769054450265767394588536799054936329876948409323654550350280289279112915884515165590550872792639523991043416570864481975344841042844282635827250035068079331706154077717119018785989937560495973049575847433126913927363020745979006597020989563949361754210955058551870450993153014744922870474868722693109410118585074463795073014715547579037661185159678297035739301943576556540212322429706079139033838198792311510377562898723316846057643524909148550281941663116530360613470385551642887057483101585985866263902082384470978446597903641012976936657278512258678692059172995319680978747962716507387402148970297802435969738228952830890529377959299839095934194311191326164148585316316454821146076323440189232121275745623621711122941049876394013456699068718990385208808464707707095260246066206021537446147864261710217187534299274312683099311631044994313121058032360817681804272792375969263547717431480587836829868514859044316042296054994797295564927386805503301201343339942555801956123379726359514680693779094640074184604173886724957161558422242356171248780666954440408153962271167503504883576854794165378156097484780344837346436609688026066204652940969374447230973414513246365236613594542719539145282580053058293229147364612864498284715421609572599254535448562934532052539777866130018194356212736191937182588761183049427963122978439712529163051600569871304939596257899541986267316224213184340177639981485395153088377748207406340627458807877275686822598935831725254537560016238783633955981961600135663013282076083434532371406461393964392893402313640771117184338854352218535872083245273286249210549700287415353388962948749765026032089488524687604546611421475710533053540579565483904836925011184961110699470532266601673472640877131044854832357396995822549163214425847561786616672488616531540815676676667448632183979931256105024761484993376360679991444834192861564012821541542799474108713144277686699787684763816964263324155263050726638295096663793651746340669960682312121872700755871583561471608396901455606996283635744767959950168165532474420930591714175096327807931261083991417971480888353372864115869940650196601935781437217941915978745479523503735374006218336314157817468674572247957344366475121918928624103979072115437778278823534102409739704741937468541840837794872520405841534020723610681562832268395404823896884830956345000693412674310369217432835019306990981978791540207664892178809348857883802910390783941416537583634983118954742593336491986736780910971000495387609768928684442788582491023457128484670512608241727237996469013260992380686870287851660656638756218769965905564243509909959527565740589033244141715130973519025530663198615450897985476255636497349000054144334120717616670173740649832836429770196520487765735001976585195922736939234898162256821700726366757770420980979143882625900074675913579415445883957635308891669219419333781277453271358206384126119093473811946750209668133636177197411782132461308379380487167755599827886500195652947553377455535406360164827882716800721697684444318502742902950987156364088354203316285078589515033378138001163950046099938880647744863555431418643572538282666804684158703852109312903767525632467163351861204121853360044071659562715931812375972276651284090510097245294984626613118228353777383162505396115900450201417681645140827045587812589366019955918699370742260306601803414623941236771657180459311999610113602521657936576627559452123283778791983659731543069784136747830598118293308472594633132960068650901388380599701805460372308748408457348658197736957651276998915109760401103121587666229961423544654536678398997769814959631710661703854781734893158753491173542299351960758808043322773015172975128297503440894347578634448889201444359802708905017604177940165893268392224842937250747003322199985320692465375041475950965740396707712884583496188318634983313417609508737014799003522799578500564670484843012692614444500463947807407657809034262801797326054030143295047896126935839060257221175735479006720746858333532747632688902974487548644590260094840026242387389063912869066445738621797847457834574224684646277867214923754077563953105888004389735060874986250133785005026754949285909071164486928465380104138420765728297313384153168053399300996712313805335449326682571689740496795173005598222673274391835468185114494737132398059530806028456764030591964998350420690318942193509208282768076357412322912352838850141443102864049396112242331094476215637551837985287979303790758407247754508321337467603388191449874275350221143034238727692072988510723537008707488384588427404919945633902925286232861895906681852146289789410748590918456257192793812716648476287625911130677837055247649994459750669190265677740585731775169728659960206158757099448186060710452836820226664525970716792123499690184638968662489176886196750796193661675513121778030805075313366373895660047296439878596392093501153184262447676230071431671948264178369817676368127955000666706247923085712948726045880001277641964775985428702524089330027240819963632815710808817535014395170574357888606774122319183345609048908448520379291397630729712064023757421153009684465954076973036731204207473694298068370700000107928723561235580154732499008696418215281686330064215209823293597964781743256161069318310502088318837725339959690111722786269541678106029706766141598716952561905790977151907389496135212579896048273922943638004512241491507961389063188114323460956726066525714335098582116121246012936594313297403749556947806007455204304554977122355027066106345469174510657950942653425041096112274477362335865298038436954895630194681175942598362371120986041614925076144968625970502646056725385473251081390444119166316036672144935981167136375868221216097913698625395350857610239364900169761078688675216243531005666530547451372230238834237264639213443198335714326794904120400506236952545790061368596519466972848166159090629546630576375789657736656637013955726341180270051637228265561923467155070502304943224838694482381391391962561415399364126575064157827349960341052764922083870303443017675901669490913341170899274697262188011601482629814308334071271378164871160708702751549249260239666644194663106270809667821802939485568050529611436228688714932376776585908054904920651400286925752384749616347115343916999772577628847405478386757559033763509669946982000521337181415772709384550428241524515270653823891471987528139491312364520780869633660915977659664161697337658779764742296357121206321576625024509773184979855911749578795912534789023505559507039036953715622135539171286589562218499307611209625534603282028216399383529490913360211760059058777026865844821082330483573868249942720621907401804390612506096943318854706335593521066467525057178493316711668088603753642063920310840165953612056471065395744972450514922951043549135781316270140539267059204865736028952296463338867141875525222305465354980575492601526158251371564455683419800669737141971296286765723700614851960093145107060870672874234716660170099003981739773299779353431563241909771431570590316313284615040874721257084250476512027684448970318881520806076215492004138814213884201366762439386039337879775883329580447359543260857455542409814137182690745060954893204284195539523901922758923582268723520550468989914576552459987579810130514728445093371974136365656750718546169668467868973887654347706588158980260799537959793437778904646993317702912398175100059353437872940664917264534932786511733277870913161877068857511874543624710976869153872992780031524261064511578014431062828935344530786147669342480642511978846037323825470133482562468169845986653158649910139891466874948894352957145895200028565965242663589718819443778097608725886370411313138120666404934524452158934627275059214956588654894096879262359272997011771039636547644371481549016161658570830977933235535785277021246564430164181544263518868486370941074338698083719205175734331238668406644489691689936554323046344249282672235495683025447706041607342886453185581093029558956740775915486978493531070044349876932791705619756562446708379861598911383793844610722970130302365950084821820171623089335973534067034404597179901029769221870284729296348606024058711889107158376442801251876030848976530036732124785208999230886739990187337649033973899894473098935156275205069792509476558413095260995239059324789444855557093821807099752475672372485515218017265562241570078283162582897084476162560032364667102767787034267688311399543687623022714155572454670424030312201981127839792409981960398331563830104305424958594950707049685019821430859533879799180121897163549367040912124592199035002193763387847085173734793153244494981596507805964951173747338073562073481931962851960911472091640383880634832813197741785718126560475882875492939577025339571182801652260983944417024583210456841517682509446490336486776471736826109162252773068758407033798911026140489301536376974137245497235125854602962867444902267824792603452283938123697759099410464013608771119266346979003545429646413643970254087035230054896818871608485913398996171251929297686439789623826422488468863081954823106641103691511315242497114500373021771259176347675774861815794364537819179980024590377063101125891648271628950209449933355901171331955534654503505295860730017074878559059658114886042297358507658339807963139581247642017852546872017033413498612783977367304943625058957179043639289124917178241785935717085852739667426022837162421482770825650790521226917296808315754666020892666783537167646610560432235431762979760258427803150240055163092774637722731762702589635059076498029363837756103986725008666580423525148576822467102183546976342058255294640823305325289948070028722075269773272946480566703023403825523954338991173062296974579918665246332691157539733336620942384456421598533754275950350342389054567693119931244619898511080021986477201659116746675624489545327149886114532701047858128536607813515531162185101651048183820138148564364523458137212714532347115751649483693872525427059536044107526910075245925146015487235044104583749446848363193522862868794740487302907380025574853322571769380224707894533677214137862146756958689187960214504694439243555476256990075682931674391552553227117896056490017359613681177444133395299293117522904145014830733856022466196182555158037034853289520563736790735465614929144601267673844375325325912335303958023741848943732147990464027388866928542723320983053913867497441079120264119578647957948850896053190595367442619207865123112172550741058225278126757998614880911059133171442727745227141296781385220580121864555554096316819661932794012200465071191611334785789763762335709734819341171093739656551138060091073627751304153572583887248128543337225294700129729741746025090315302607412138268266476601734911033387657695641150414804308889536793729808994459718266414943602702299012574860441426921607472694337829309438635634792363342263714924435842641085554632725929830268087435534086852978346278206520034580041213311043926459754598458069734505560070321317097573701527916614147972228988235208789916025263142827919835031670308036233095327110805899278088943100131800020732327212459495895237141583292808189687614450104172494746597623035125555622369212156386493530543356019651796577004780013766296869021877000972445823001317163889564460176037339703621091647641402394592702993853515459431529549152647532150872029247344759315563178002893807583233046228557688851267792799494862560825445652548875966067618666545521879301142643480559276340691205977786965187720487554849009190663435036621384884252906103824492180425780836327416564221298261074931624218824393326612267569274834718314927825664104351541505667852401570945166769229169750150874291919305607477892280927094333900502749396963716688210473654065456330365392136873347823356006071035207217407564075294101518207698235134488391037981184872813041748129010922223893957466391799719558978059560961253206501253693608237505314412097273619256023452537759408190028876756443674498088516284350733141406260423112795835289166615835681397901343115676304553208009545866107185684360170385015648156257303016098020113974553296446797128140018536194676445639234606202715070616563335771114370201524470689298161773439099128700331466302896880449624321210606329121323438287184165151552756920980017965341432637163897246804002975056052538822954340520546064033039680407083722654064197277061160604534864610160434596892332423614864339827471217898723344707744626781496629634041030761438492385918550536988320283616509752657904314824820569178535644294092872325456808283766861727118984322187649394984541136798595160899939027865326116308152131668162098204459592543432645256312375817135295519501553572406694991736818776688374783656846622318111811432293235320118120425123568446952846839548516263472439783946745777358124262715004376884741429797076359874645675012611339112198583826799247411882205480317573752644983686309647442203921695212282347114436035771432492875612525159330285866221782451572489484729916075654985275487346027199649497489241916414572653446705940484129205785152061939921012639228696110126359332799298222413516593505863881540629410793748704142309981601526447268387460663866081513840135583331813823639688234891093819190064031310124256721990959193550315725534141164571771566223790143878343471269441342468275377940016581712019548907786447613399735148902563560341484233265860561286225204563903803607349400062202878642107261213826602902940588711978768163920471037890262244356494454762054480000180490758222007898926348733299447025176639969919780356494144604897571371713753864834658111664372808333344420091115302027002418862195591601422931095544443923839008972664663672778180289193950419761665051470282421311552072934240166316649949118321373334705075945636964668910792340353283253997449162732968077476116638415888586706061761589519003303878401585813232261914567085426193138738983588343409245251591829692483218422418410302512107489300351898273589067958573922875123914587575015443674314670862329694255556835361936148142524761491053597989299774688403728567003588167062341694762688365581624026739238906616094495209844202374151057005393116976391111505146434988694182004831415275734659211665635011857913683206999272524267669101857321602136531179757650325314224256742301030039621965317743787121840624380141288264562044336889082311596681011883996868454284618020123266503076478233025239945779932056357964097307711029169061290249028491273460264090011885904526328330903527391309401580167153376624837315690772364887377999680188268693985678298385540303842744867319104924685730382137942687008606370371624740848352865751531938852999299110711284906725292941223900327995675626033159829005531187221927771748444731737188167200487741966155450479786938048439156121972233565432767264359175528625914968894009932869879182216325159137759719348927865654543989864322621249428757871900153270189754777309039791157062135467281977125724408624501759733327817768311024633956690659846053808297506814154167733934852978879069140126388290004188411692434026267082401036747342326272986930194264559259121429975207332700558770568324341036577086255352010401086843200775183506963732501962637903028060042197730075005575507171923579926007925716776799256751166515115993646201684797728968451116248244269990441840777736861624867298369284425093612189503604644859521915095966242296504824863099739564363845517015416311605020501624911083493450145930457392992946870341106428205516782574626780098472577757860892688497073955998634784760802434955345228470272489726912927257109046187449780585778941220627457582047635168229415251270610861061898437142513682973992310745700332053234652959850513882733727294521905358581928840004641806332390718390828576023981460033678624326309728185606701272518034932083737380739975817537869159033914697102281046252670120327737691796741506301948749065417104659503399198442655400108242332566017517960816210336359401378164436782845163389473643914714762645550190956219016444430018216842146794714881635953411435967065176149527175807068329733212969094099335714213619999275212413928709575007370614925052994618126254360481575933425269490621780428660368894041155824671516190530033735845942086740968802620729112560932412782022271823591422847199629448554436994874323537463220354765598026841884158295455983877661139749482436763753685381348006810827687825920205490676333503630348377196705767987740059912767027482935599515814312923270735118729589176686184048466749952715001239791333392859192731702276509827807504992888050884216619775971701038291536364865897308276908875656340726904161780624234444266672149963799807248453784621305624303412784695817332486620763334485196839631363864071260668990053306645292337529356947655394135295294250983394668855574556491858776079616074351468530917978281738167261216334924124002456510718403551205852659941235596696545205210516481530970831333478477902480894837735836102070781826826402601111710520735814851365240828111368550695972469189350564597824574255971950529792987161115773124466469761866912124881126933048209620444323590307705888324126109099617174912778564668918832337726328048001597741203538630065221272666849869085470119207429628596181718389109457463488406604025321263572329832587220272421102213342676787127331605659925103570662994617664557279198171737853676212294104900801027450858079501745305881736579255718639484323689712280286171814790640240633229371010616814413036047761001022631813479951250555279105168696110679492221821567302112922393569854863084756558389809034227048569141383522611251395347212562749444503592855456618250774064869887719575435042363054302545581055840097279810928569625569920312400638198704009869644444124192387470857123514407768853724573756245065359443292701345988182852373087417822132603312536688856229603166708079648203349841038596744176308502229516822192953401938823418102904977225043720519487187466426562936108600091195562378455067394989141096924280155521989508985065172238400111800350847375226084371825853258960122139462196121100711684903225443669645618866444932064884371546684050710073262981312393954811007379041059935062106709637065904243295455936557253761371586880839975458763429448961840846285040596193041726546217036815212943579776932011400656603976789036694376949096532683338640683125607519610858424535839371982010616464230025764423691938462883299591457954399145890612484045248591657133494584841461825831832730960849235750359361609143934222456501480700103685801133284425185311117244421392640027761500792233010999262182082798988384731396578068376176649922814138141652163982691771466957291937914538542778226701012935547761228127908463232900938771603320424325579700519838687985772823777937404880219219845326476468228599256578845691289866915743970271908533849196115005299789382539162228739720957747720776592137267637585703369482704422227298257936601398867931391944626599157875606264824377974832450658635834843754693236589437484279210178936739154665897259139016639930431073830777618344750954862202373234918271476173729367306533412595160799532537769958676806666041658621892737118230680314080998810909068314146279748142397742114742629989529319750471109699957955331707221778001309728977213507453495160616328197705266829088419723619145705785375509685723432110837250695203532314843429983290611594034590853488444391461111848931756722528655391926867546133381419857968081541876552781479268555348563211586752815475348337662179282800853783731801019402976329878103175450038157034785763053640792757084189588740632837023088746175642720011710346836335301145988879145741112830090135076098867549952597503070041433616623872533328989107041807760418319604795526249420996007587974683013872201162663003353243456591572176130294308176845884252480704169361130792886944808528021378616009241890175643425371734297280186404869228456996121745849496374286019148459367241269805629731352083162693296066501553837242936759920307603580656586729794036416817795332573516770241104505066089999454790643883887366738040994204024473248665616013919657543151720775638746968193115110464377372122327741013048144173184497027953778562542597012949284839106455646873868097227541412321342456660585158379601444505924114070328843148005738709157758413987000687655732542733399075067748147875052865375844416869876042844277291969998089232893345039305639291960137000705923972054930191842483331369922393569418657312239246245033385958039310389168071458538100843958800202501958291215179303681209621043681585136077785747239300309982758594008849921243631159645494837365455073674685252115711470948672450005599047967793491193050529239330351705391767038222675957749429743060794188997971946234571902120650301231456416615769171548748226344318192867444749699176080504886496509550311290494558174664980661145064546495234807220051570320081010802715098566450930868407564796810671769958074640200190157692801871987562193226305926932796677099177527039612202489115337083465454232098950664185939300568847845604240437647574033724166040196333539292987964341182874382546361143274980841594792458851976776161381144343425600164214879673868569536397818362758278239454284810445491771082095714752020425403723697420331564271749867794796881479787712168601526426340844138753660553048157132194393915850334310445613149168320590022244361167654780804590522022135408082782796497992135410392175109668210102173873510860585345228835021234231355858409144268319708427020414716922781506105987578523851364502651468849314667356593409824531959153496616840765151105794776690030901303895246041619394340599570173984821677142776343127799939298979534246440792607670665822587658004592788442654569663133401183002518959810503271882035526162668038175422337571960722323859320908778837011506804235096556711418289617193219926135664030975895734126841872021178945497167856334174156917944617063747768545122878930999344318640862316655043812194809944359785591480169870805432333488634340042006898144677631641137639314435555598952650577864744403306358372808538908342834610000178058823939251335932640325281581802779231616532639876955214125827455288970550953892450599896691334108404776075951127290761884146500075923204992692102043395145682711660119450740830321470729617898684585079644288039930900877999888266307526057995679194890049273553602975925138098435426713033937851354669663272559278812778807604777614791716371293909300488850184256861498398187564141408464813868059872480740418247116604358933227466352261789056378525447534044242996442096825919084766827624541952820564097546852843937309379915957680205460585487466750164970771678672902397803546919617136683973202549962249396362737067533743129121253678212441901636873815315979793648131083730058030940681917121988979344795240099707157121029994823285292424586249755150255580074199732628303375433702624828916127746758046283128171847882757538884493719808936600974196657562203839770653466828075163461068442159703082382353438308563328032750177486309879985099708255628320270282345128366381282161131404775104497276227329307726999854506864374664194499330594244012436080847291444703457230110430648522372962042205463340295303298541677708744700113511878730492671806567786453000283221528049600413243692339064559306544057923836101999437861477114951229076384459110370383023518949587063404985550357073827563100250654619407044425465403858409919829906395391660512282436455452802640935608016207034450806599356685939449805436601572226062037093517464517610539251518996056780680909308386864252567870067669460875032781233997364695821370031381255799770840862850382959718271571974507583482009935763755583522968603478860132196666265262656728321284338013527947686659471072541708139798244128777665376795499488052453961117155072610066732228723302354699980086792318279642893189036157637399281443059691904266333850551396540231387226663602676389646154631553039548734941710703067637103895811302517083725670572785219574384342649608722171749888845753639541740946561646737667635492205283918655615437638658784281450536018415249452255541621114023382279494769169412524793642099188594791735941690154899215233697443862732576396321386875000639930560689211015081144589004586318323903702230663142163879138056657880730206937611860447308160907223818360026469674743980245404674826453556058528289212395272337947125029427258988199223771817202013135702664702481162136901429388352972130347084723831158315079574206147441671561464537405060236721281627311225605361313489238040361353926387027753910174716835942574916467960344261530331416644486951260793219157306593650425440121973662225196079745797913520220529655294072302783964290420032909528921009127327687251339648311998534747756834029289227678290617430791323112717688638362777627627765822812734464742422615936097295204579167916503009665412188705402488380593648818468461666269092211311251123860515207034128361041797520886292987791343863206516555263746338741322661275419596293606516463278417474504927128389442659718641396730589618562750777493841788956706344933321276886169741869882510159775648993979567509090314048470602558917107014180465160740287411984507289901558401897115352168899359073959341763135752765155204979547285552259913189670550839066983388749055860612133433573414789463582150816173010478258895647342334377750173540909777145172633732584765242552372087344110073547271403923141479077905326924233008381978912345636725139670067831528344841613714437208413201484390838766973367086777525545910213938108110444148059377815847791580867339527209590322744138278628891854731077266075851656944694584649525203619107171389072056952914722278148666372974337579149560890708235422306423103265918344646793734846024290563159945218134960092182413913972332903650917419794287946946359028118641466341637035140472175998210269374851011678706054982073090642341773025076604331839218624919442190698125384067411784738829533559540921838495735229202736405630327023245146601191016047530978797455702086780444474186779944243090705352653406839612438750891987496361695342342279007684126860528760246190438494713599966803349795344258850507989006256905910989432594690970076114103146421973967191541816249394283793540127774023402171536960467917252925952541342962568810581110920596090880004668485983024508407244450127055285817096037512591637775198107810574079563356930305070837477163506083745748003253151567521891261272289952146080761918426344448689629484167254269305801606243257781826148656801260126982457043342655738512710939800604622441135877605320561734144747433717016329194908599929489106555488822029823898557007561973293272025799621373818833664085757264202407570936889083791103995977399850373706841704668434136639572877927159974062879254872255538807686018107610987414808407141349207296151248757326934967208539589792811174669014080019467522154835945802528136375422650485140883126921364268298115214632545210489625858733605392646510411908448533597489680330583156144525758413612516594395551452243079117553027091750194609053266804077987162164384791128995262235528554677272387510314196869675479309910372379243249070670973026384386038987397081854210953875963012577390942914482491223585691842615106745595269241470536330424986504117982523540089993356107428945341002025906695891152204106585077243089495091040446357721925310281992058808951797628164273578749114331323852528465186771841448268963194964401928988601059170121557917996213545857626982162122086561116899785207713178463933899823524310510134348600657018586316896064140086436391443694435953696294984579450072236607236293707370157412554448999461773256988006859722437063868300833107174670852186060971034601004516170159066777657965212579933669117884634239068061573781693593457748909367259658151576603483572122965264757587373366777230231084412628037463975431330904968025077447301251129072465965916775491846874762481005371367347799672647504951914509576572458401992011890419471452529497025257037423758456361812167661951157791981529968202833662453980788481245928146620260955561775917049137948061064313052819757729186590283200871802417032847045241539867893154541756254220929320238323626420351890246407762766277761548398080432807676499983281376387043622526392181783939073228637632344038305326167301609261006884095958573580155333497037111170777672312566582360749587588741407574391678590650379785995524729659583356132461490684622863587581406761736171913725050163272295994065683518500316432897015334934083233015407792234606525559823938854146339982561821340511200063112714500731299943437173524101508728631182036871507088908368790055753613281069722541283069488781749162885007612161346164093615989311223323471931677528771782600861318479249450505860533624185335011548031698137176886261541873354820018476471796353761607854528036412211061781277239815042583536644522687854238075229739535058070530935564806804507085721135130313275374608358709892099438518888705631084961576906766919670244451122471126409535255044230144711833034945616439076466847208521151320660822082335164440289132767505426019976225417778990502890734993350021598641909524599564198634608970021233440321898501522854851562647652621440907727081047993117849938713988851521101988482415974829238860121648469821878146569334136626492826598590222075975353845370873671005034162790043412180879979625552234739595731202488808114532230068168992162012479526042355614691521974594588770189125765472027750714428228585239991084774190120957567878074708932217886222765790407301691854646741064377574470995159725469537117385305157208212357674635451741675437732318349025872027713992777205685163346019664211556912778401438632043155123615207455108185346689943096317736081230785700049852960193245536486820592506665156900049648027090642468314363096265089370413038576169442286350412815799023596777345306619161937690941024663632208796950330863552931402942325224196231632465516378392025405014955590480867353304499822317344701458597404473109291751374403747968830485196740562620934002919589216106003279154208140121510725769795064435345076358210197308332293211445674719029173225747229790147987293129602093509806129006856674764149975623961560521402981501665771750045107139840085284276920061725212180882489953079927249635053547116246656591573958629180025873702649900293423014685342799023740443442181062566015461423043695555230140626578785155451607343038242990504960486479941090846170917215703235164016133439933168596515994367973363565298343831304956005560162110499220317857404002589586679845442802090707095190687765992982630176374225828246521585031594175051074076386870026930512017869635210037803621726637255292214982379319509390600952468398308019072798227767434811271308740383711006595129995900497147788143051754809051601742536986576461002333185398992138394320789696063559670685280800191968053721557526437620194942825028806495362763142632071710904912509987668188415971724006276926123196721647343086047324251234781461649593347320856826002352963219086001071330753034427959383830957467552941636797853338148185935716666290705419022778807908722207579129304581869208511426055177927770092952125570047317121933879384066522252563768858857368811577598820886654330367892694739263159617927718784017846230586259571238294351252470987814539040235676626844009576340059735903038174889695069483230320239978619915558405600505330714430236191577241567889170237262125343435130159272774372100781822750448930730794251435841775207835154616718668782015239468361552806594329133877836939236021509571378336737690998515914884907209597310548927977884557184016100931687957430985219058941409083874828121480129483542425483000041002929561371514781674723770842928045601090002011184177390064012033246718436109630264229503139096598978194049252733038021103237067581792234162461383328221125152482380757322181191021333126341135919859522395951945289423140128424233534270390673181849492553158102056972140129358886175267146395248754202942821326854156113176462361819492742061391170946251816300755053518207244698751280077441645978625524267299064872138305296591538683535380332477493171313777305950352118934310172988967206650280415328241644491309383071063237828675156044127798715514789531928613165300199893185880817849376850142745437336102802753361896938810803791797996119022552042472178658544215501321141138245449836118311219749166662808007849855177741046243998909590088532401308203380085652756107775700501049652776637135601065148399891138626691395473791199996328170036013848342243341654509847706815014384441726119158754250705029811442541450709847163544545276882833743383102096775754479007854087502334776909302840509983470596942472264602379233800186821173618424147593468472401073970588112425427585160115467687031788484673596306059879551178976983597171577800304607272936107567666494215734854542978979300615160305526690042533769386175870308004578387428235600529598267551530557179434162888163008527322476711859289594283497966379373029567282982323657785828898881690114118612589843586384924056599416903151176949098941316091015064003055684439620902801208402656270533709155000327131502537630754874277492570272074276844324804400653347304720807785778083089127750133295139605532497654615673643039594629973812087712280604962080906452289791955397028367294843228148543433706555114204166910141129423364925791130763897161716902729314093382114619807076841454773732525604357448693589463200567015663888074397415656443558609264137070270728110148913477615752859738772365369604734228767816910431085259747484875602004872545147952857147369718542290247664277484196641100602910616615376743348793108348033070569221802051067528558523691055610549196076210556215997198872381634621337900737863004756525284118170506162967430705819119937655508744572960955296919256717302831344168233260056079828578157204246076477193382583639276480376240126412386330863862268555942559690804763864114683001005753233304234726123633998788442655595193793739515243159139628295245203059882145607604424898057754655230472253174333383294551705950212105908207153209036853200528582183545231434417889033892854473065708959130914472061096890122302315995883343630391627627279199521165705236491248736961553627939219538095788879138331547449005457437637420190332837454442608813787735068204031334804630723845721402884910455167184967838215687658739077950902001780870346698588127934194937008276038907784034135390438293643048126584981369409942287967152402123807040720660324480739063372076855018648820954682966487122070639505331019524570301953956599164688909088248834249929980743227888099567885926349889260662604412423569985349559959886286869871596821274564272514557160782438669837457588594521915167180932337372497005491459582495062870246594379879081318337172106433590329620422542851761995889098911073144959064724191123796024475868699786912426623987018865255857182369644542513098614052716347350832541173035986638812639016012345418110131481451939130952499248302009563698655605650587631238821551924745749088521156759774125066778517663396462323458454159264543219255386976718588698091225128957606567642672468820482306460782559313490726708341248798646865386967783438844938026599518096518480683601056556360727886844320197255240423362628351728617424038585194898753933707716634789343756008627591673949695066978704122167411562906772624972353638835735939710601297555949179983084717430853754262064248726074426881387033808347673772675245321684514662816242021471935215349737150842718932084651693382758080056798535526544417238176774217518605993655276532570510649701782186037658590496641701513797116688548269763714418502717389375617523838677902616951372272500022893256010546464611311711226366539835570527916312676093134120823595102363317886033211618882510222277525027363979417225764879691891972668537795934168328644277295269858903258419864609071811111620093317510128906064340010391330937056903323015131996731826003538929827008529968553910920311647346506744697378707868992334609442230420151216911788965878927620514772553137067745143402039847049903415054669570497993585819898347360730813094009388892038329899033580992462487123818946964651285929406902268088290318660622816815426846827017715085357901055482771410934962495115560093611798547188293691539382527404009008956925583483362942662235525063165235051588401921591212721769371317442837189800379011647493720287993038639288906994992119306172635150714411461426161527645966736743182271696930504741969564396317647661101433158415424987908118090561860502719922610368300632255082182526531247562469917607586413845307314305179074388352391978737463832587516774832904168532592643462002138619079901187499205634698143582933474460298989354897379008466645327217952580163722390116619376200804669892335140599452504060475140849731533439425932167177508506583334922697000160644632203619507511220934846825707991617829112157785212818388326595556374687109067746529656047611877030635419597664406331213341048772975113145585017329413894591236306936072724869056240177010588053413370720228030454457624282193979765955603493898633783440798784261561392384498328122578177376597101906902290186214530840261480587086291425601195322559421383996501091793623001224229021447830723466060228787751885916046257735038687431507138626229650541082511346133490275087824757437394900437053240039799597554338047637183415118697575493825999272258822130851631432716149880996538044952285635716779880985377364333187879674343684459421900053054453065017564893065121271489193192382497980316565381975529577000679839400282172814801963436941731251533990648550728519881109846734791649326632087054782713560071580336415442325128751814447694971794983316901176505945944270738491383558378923244786566479983759619835147445510178420944123651478984655626438189212321965986932161084861782278215126215680392196571647228365905755334973009646617308353859842115906034529846719776563883336827747274494862810053025282914852269550392212139158518455496436870871481753698096007629288341565265317177090299583608417381605037727456387996340663544122619248050654041369783608798943606623673087292814503658394433267495561924982114733015709816518116132867764474332168640461634063973930523532693277349637921604496697320546248446452054215401897671211838817205354137756059118002106837731375833005669383968461533277310256031906926434248632957054217240680388312092493341102326608350881783789148748450645259420410270073481291566018849622679245354597453906142566645341015644478893663442139726149183678899607619148422414565834276938841968358596555147579557833814413159559196615975867178974687276919981676486270018440474570658400373226032003543592883430375253285259641857980391501922941193913922254177042514639836380284859257560766033966268533642206031757951324288337464544372629249996021938470799016834885206057295514923425115314679127401996079491223183097259343699011775007600615580122988825359282332509253101861450242955784792147436115815490814686633366885766922795707944007177095563581957030787255104909320824538570785388743948696223848114398845974591008587285145082338487214257437114359032484176031299526664207998350512588929046195449013259258144194319064714928538593216578651707654927253984798973106534266076468143478548044838421284655969194802289457266427413131706836964101344092373477878311880487221720023563864875191588641572133258916073491693826957763890431836707421455156753425182591353160325358069670491798932987370096737073856768514802709979459844471632736318199260202371514496772683859839105486974376817900916766730116901037392873293829606682683023860367538084750444007834823642689909289836537681785338567199724096781609484217205920720020434166094523677937872017285052795495501795403394991771556395395897700873317049375072339594589712943031451682601985179540297354701662428265486023796463696802488715615870360396140407866103860906294643642927761286778054509722039368438743825640162854467583314678833639013106972907109427274828863243695386892769339356076182755350097470370272329858295915280372776787309449177010078059465162062735500645847426813989268878662266601634419114059127175648821671103493150781165643602125815830198147386035339352355662791589530912270380884398691161713587804352308690417141362692658636194260568999533962535570994721240204170753387144874179841532756119902409881627158784824213839514209219253070960008357329908811924891543856591497401825094104219446695733339911005221396524243081739217035819895586243869027548503742050103156539630622386473253882044552963626242070669849420493113609080344233206071772596716773480964831335304927002118713903424236128508727113350260746405522324844399040588829179861725681935434662951515729467950156628935905783539032976124095017344125388903683375932294256040202004194623896564301463746320928165633999663550243724825276773762284155910285343229309523466730221081019574677535721760337254658330454497282891200514492829475000696091446308496732508276642992192625772486821402702067340314784820084379094624741541133240143815175657352471836008924617894627347995665926370053477765262250789185750207378955936652068148038764723148828658253514117274123954079397344736005035563622497702265768555060744840258065410897124481116958365480629537859481199187863183730110864258455891877209224493132386086948703275516666460283347011372223794745279316712874581155161991676720313730966973033137516542567979249260817200335329407732461208924248003728709097275589994459031605326168706610563231145554370549222652905821073535653315303270923452959996447747288045655613496100046736441622576028038576040666856160877714128130109695920030841919639112634532426626629377724383566454268522405451953980097565291201980516995590750298763580690270764402538644047180379308088572438929309776563536078742989953684561726867489903377014452364577579633188675270349679515831162152769052273770639349658378581039537281458273344414987606884562170692094215354019792568600542302983767560926464119806432196762395290335961679927711888025674480838776535104888088698943674805438133927448875100169165601183316125465189821293587030250217126447849931498019429126016148914902865274167664093040502682957293458847188578636711207695415682654247794986950377892275840346862160059476878172012179217587962989730786322466475936517310285917100528959041435159380095613855103118532725248974735491946097693907048126881782388479551761146415969740805297288386110063914579030174526463201994489620073365466123792082200789567471861857212013987576014827097883424664458859180949592883978550452831999435807757128680181727063796638735827240914017672039902310283941849463786837845527097281893187799266143392501205768413993019875710866395322674159145965633635669550071014417664213311577385993689806157128083126824480740836961572744818903040519016662421842266568041721430092718811704323627282462733460923253743668121517289127541830108727862502088627520112042622460426463890351771668062822626334876389081757424529793750171281705237293426016423318345163191342427384847420170222302619449759058806667028525367230163869412012462294580715816835614597928730304148512651790055512597365108069167060094627507407680021445368081767814518255274006498986502486946890139276411392879057732530200067471520123059690936143272386600217873599053287799084677098976151083094456560759825574696026365906682826116640872897089366064472796625787821708588658677354478852699933770665533256916011686112347665466086366436833205751354004527797327916678718904882654540148587180635631551252382734118750714630698579477644226822092810193074289317397845783521961756977180504247005212305302993539512187684145335439150122219033994702218695510300432687762930726830114105796724509683943407856941539105472986009313716236890596005684195212370712686484390752465412447978849605867225817257220298256659400314437905993620039406692158235019851535301185792622295814907167496188487415073136465396313730717391242328576293326297571846679437280899840008502804086244506901203299690629932245782375266296330037713504553512052553506647097031104722653748961310114983802154042484318919423423398426197671808012623647691272165271377276173786598447234262067586148829293680526854189898132910508871174636724232146836991310874541880342758634580458184031966478671590397819454499284230134558774737513721867131960706300520042868180634360540851788545143005630291785419807470467542254286801437375096839026416227967190140724521310848325677975655864045703209145019947821192798492222772938838855774398047440711627471702739985403769003880258537926008257145775733624321635061569661701567473782347510885164892189522839796805587536523366971628208677632245969098265445604421560175816061443243055760449113680442434247037734049699192309006646954071133854208687115389261420071315380041905264066173136150004455377794485220752552290264648071910788789124476595836368785553390761821705016531632551966350530858044221984551334272056857838220398497704443493701935160901351393006128553010736406981978495540037880668156381278154767840505260447239119752512174978861785441824457529787786847389932921716760781171699170307966915025288039633059383877903151805457844277016981532438640438456705147779573805880585071659866121957468350093728496167829571434932078695601571416084777494816628647520634053930219428526435239739926092689846297313947305808965136331271335073793036303279174941149410948096447429787948079378497600579583150019852460398446664189675609637018912669271830025588157826136346749359728537985757419352395444933333042444321966284268854493956288657232388346666704108524242945572318399712387342996773614630957259669111770834970012267054966285085291774792770732362904647301253083001083238474037015315874858707619554147667155705712969154706969594172827479782970389220547253327925140991517594851716875173263375553217712164082888662849455984283418325990495119288992354013175021990283180869051729527985377318056650296587744384421687168130898247787781739224936016888622232821999794559233402919375953377899860004482432513122428153405413853099662908887097439569979807425533375939617531965366085254375627315347692441120047907673409736885432599306115721940262336311639221216634145465367936369723939817741128547507485378897082550529138351141043416851792692411533225927618025516982540063581736403075400458237430693389549246499650040738688724733641554114168608760152114068038240074722479827379056805577228253408214743490361816818666625965148536938981108034767594228093868433267179307462453313355566516103824367104687072255600999759733263288719025347995002433488139717578276435216742206642779824944969161618407348080276930284391871444373493655791003469051896235400110975014129289638656376838732548383682845145458551793747077272181042501421016091030101163795618329741853199292181642737643122704150494728000141983844607519629274350554106558720143260082081433767652091514875559939562216716845969790251960977970421858425094428229176176237803558663935853425066733847702924245055719661424596548414864042000517227228411640982804976586016356873945310742863986512735301234897541465070358862678596943535386468707699384402201701547791395398365353908003268656157491794191628666999735082498732924567248548098234564688649698363885891075416796917432289005867834208323128364081317360121039422966441176246969662828441120876395317001965513269227717098065466229865072606324610001622224822996781948349872949885767325449179551838572624348392599125302869271793834277895705145932189093433194607749370203906433960604952265863676193014024982215071146691314550461339354087852501632074244650357343404155981980838947301847922847874571803808655909178712997865521200574465485894062820471960776229213229861524299721422610132388179805201606957901909642779225011353245116979401255389236810536798446091811997970770721721371267260475500192462231998112125555557252138221101695403338734977956872684153991672495130923332476381459298459830719517584711857297270207741257481403252609546984539606837905773356095085462437392170394265266704153544533373349889463585174724593482472451184514286152791028333230515596731935064993682578969589009220523673881936397541128655809249607733028856561626122716733312324324324335333657535897842857120105607048824269801921170270724444722639386227670269767579466297332460506793062023369835237773684555735391880429134362925955860137418653349836108152231831272137826151307220910370935600130594807403331825279898800373259879687152014951324540735713132453455908548709023712024020905638107048668033723140615409457886827328287050379638109178005540113660743964106723896173371565534347182745426808354967866424514687329453916716866053443127930946456622766466149876028398888382375849101650720348041184488571187609851142758708373666005008416187004164726242835781325351830301749306991508014788769812522579921958234946908736081959022709296056791766085677377214406515656671737339642959447594018828023942298056806062617467619425281965803356801680277128560797078457007187296748740568757141136091522873909248363277201684792698703350357777286732985389070022801457283298195571183350243472373665134821317217578739427503910308799168793828957133123528551543935789084285740174738551590257326878314922060370600755359185589924309263638691940122126230128652906716117447863181697828464763459934604979197743080806049460282474498723371884078330482869097287100750578362175049266379051155733129488029625717634973089001937219569120167170698862353540996752399249857231553915549438882114454638659866514907349580831434663477748421617715096330327309523581024230682091829009937696728424279397346174226090827943876257816458771773133435279056900116780771736903110782506129872929876612003015316767457256724578751812918777119837884854155141081689969154303905900096436832248624791557112665904662624970490803518249604647995393580821473554694023394254047677936710505274691080449716466600044281477577320055608245476303348264660562397197686950649089970542606070719203152416523758434006018348195663965718889140731733927381012623439348464583298999933942620320536710853299006253638733642406460390010531065187068176214818087289402980644490723139790420869751613856174783490465233513611690978411942346555366952886662268009852849847946108735848056903552324122121322920340582023583136773254730773118060768224054914698376050121202091150394981268036107979514079361169310033707544525416464861928511045160751071000923420289979140393933076770241615126046861860922087853428420650517283258933185676850259086470486285830187355280941953256319767078350742981835193093909282514003636033339781592657908258089411369218110769130112711013747081569022520337573432676922645024054084042251299000924184310876157619753602222501795317699901625857396070866779356904074073886521092078510393136316073346884304630030159547144332747398691809552211101952535755964541909533443600620213158891069418874635465300006645061072871550194194772142012941777437437282224324203987294704094910652150337852050066161124571539914307185090974463729751173260171929318900144837190973816906331704464272883897984553849100591130426009322325248742180305567837782786984919626825595317178568468698121890626187354719126773629661815870359476763344327960467484292229520936647910147041868798277387902884587227515147430726961921428633916058101619786955320396685264407990615690959963551647592517776591415087160732683338319993208284760025220463198747568040168366946033796553569162350107038802468688417640388775541256146403729020774113607657177922668381486337953641255606284008728906474899214222837523937711856964156276343508482408674495094827874970907230707459756054120774955683827241919239285357791580560254332629821150790123393560829356990817203367128514915792638264445789815774658197352090382850274055674224707763082050401361070147785530850484165270848213946938646851535043538177758562422326255608738635402729661494607646188120042471432118114650987504229940085549279586283986425372226525097904223885969714491924568809466135036719305231709774291843509064565675892132341280622814036034159743675300287138699923172476247353710441198061286551656429881794018606036100976030861842484581798059561507233659294321069347907509254193773674095777551154071974430302810600122385751657161581485437855534452927856890722334791792071546992150122986057162569831319164914896436443169820000765063932645647610984325464405522528584400323590877762521581573754411520029167429395018688894767963955420610401171886925662193130295362741045173810335201473623274282941848728598750528796112603915951493165552144266691926815680890034878719273183972734861233696947008651853572160778820143139066088503834919825697528699686191466371598991437418646942115820657096875097404955552153533134003838097613954584847501171049206776993182731305775367647252394655698449353262549411426087360609897922724512187248129759604676781001880599254688023755415120034026015067214513922136704714911554052804276760168080383857839345272982689811048616053387516929636985204494723025440688118658263388207323616802987310005709411420582975868267890659959934994992421182185592221223090808957172757412720377547650087680692556103262301870409055593546539557433290594792823048158558473777307498547130327591397652768934509687852150751014307512697241521176699342688188218737391835433943522771246662217067779247383910991663771447560629143013314016156617682633752411951891087529629341610334106497846623916502663205570819664414406446061381284884286319825587655687876849037057016301444104832299805159595711016195621923668465621340474484433409685232418395943641588515025297901914484831882665448136803358835586965986796537418035364314708284241882060614209645432218723457606545367863180280250744814266430823309694670683648447151865695468781478219630263717820664391081544397094145804463319302709278119275299799876665928618767111800811228128338855578778408329066783935773294904593713916341012723763238693578198644440820065336044278559787786761423915902219280149231700585968496960194582993432210827258574902978305904843899356619988621545698153405179907141254767644505212740397667747700681119900241000863766086153888917918773714840845165856629065831563587465182897370464712070445540132117281076245707807198799381252011036055623259524055861813409893394834686497598676366604905981482321063336490857413147096589135728742414845952383631180023304734307934328175038101976828406235702339435306940141088077248561338555740372343420772584390142562374691974160651345755078552817400634158078900657342847187002416617430920745091577344104585828336253810990801002521496737655003943026195829986683273584879902329359383135064420069114117603804127256161457563374955647893699227504039287818276067568922757559754526806820463532263725648572520345296791952552865193232825056927416018809468326258603811643431397978573412295585970675917153312834348141843526141849769417929327509672082121903785285456590816977448660077023687393960484162692551977505648630584415901843475224586120056377698240609832411578732749880381510884907825913867751943432144687133696108505304185872306446868430783951912778402953263709597826032077424079605341845937692803326869034216617649138960784998297435722474727682849533031739795251932480878774849634452876772106679561222266117480980581693410600202591984422436424251584984902866963035502385134820929229207044068853542282650094027904703003149408477348350033849659004608455863326356457820677824852569817352153227996892225533542752713514632715859846559031250346499201511498081757673778705552221194329594407427088705454906519332781585694294788864329759861413777395267823748627148003417776234217023624875102240568668967878770092866891329351988500408611704842519262735909925597422249305440089317120523002106834174357426273329384108813421605496335098434946423513946167106656899998348223849261296152864071241697534338423203008207198164174418458157339471585945569890102159743342707641697143864653552134603765629051452854292707606125469150121595274056445696016116070210107388672907988715669971459242981798108079481697183221665797737355306677494914659601358603245888642254333047069721880226017424327643255069802141661787816134697911099755645583740695875178063631097737468245414778720659217501240135132982933373418019206667595545916033726317741538545567249773284613626832322526595276320934305834847376569332661498766414650477128290960869572997539066577369763296293689786444007495389730267701904725921249737236715180083923911041060317308830513189262341983155717963400458898700395771798933785454118432445974515039791760891217952420428313472830809254584695382595531139778880584666304199370276182704695329327279836106850463368259901956932261144428548258894541473238614644215662798200068431741103913680121853631710980946692890937971680783257472844526395861277946805629904310238108822921002508076106084079864355307400872836140860520299280006156398428938321171048062546272549937227897319123044095482619043559998322224950188666449002646341623618151670868622978003562524387965568450714366747775440441614631226757798200927782790062802526693672367312431608577721428641659496751833804637611889851388500544635344425237739753420664890884539412270902646717281731587562586502409878334240051974133470284728128448485546505968560726429400334561767412751432121353132755543243207772824401409507292943173111981954970742844227839899804511232706068883294315843736674193901902174812603526118097646171595443079306127858600868856305675555384975599743055090620530128545529939061599128529160744125990539600089981558909319195964142311560777162095783093513108310526658218598809729388084873698723079329543672271507886861308207125667643788891257807619311387952241697415910091982435679606122263342592824304566657656077923870913896546435043548532373812406235691278426637103089702851293006277051392758851128408256355773314225592953169924013657749653554154885013424636249138800311258781312643708942409085932577124502065004210467124909434980748333542389712056630360152858909834452248777130654970280227263054972517284811125843136318501267934761234699169630114665450882045085816590203084226525549569731173731475308874201299693050648224006424436327678726984674936620353390173616401952238950992041606207479082279243447207614878850472328470100390235171473433453819505824888953277212954609003711232948632159331945885552862601613732723933853669218316603667093976227457323468492739324179448661098031375760893401312572040809592471269245076109096600515912166650802246283016530557184583735218702686754587591555487852671881182796491271668672066622869633225158137017728852854561984723307754663742918265523061852772459495844188125350659989223598051892226001908355811853803664347604335078407939464176773707019084184475241877672437663862518654242596735695286912052202386704417835203366642078680965782883812662260164789750951710306308850855019368097440408584133799736596480133957229135910339684118939695624108432983444121813442239610120827028299849940800253805902399962560177542949600178639116490584443812481876506182121236393673925733015833743054541683521873674735430689768022836772054040256761385912602048581922725289871461254661355082459099971690721101218237160566001501978376570138290642197976432487866494945362419191218187190729648862081207342273385515958420326922215438142330444537890004249621743402632211775958296066100051437486885677872844044535131841972419832461903911484166409511352626451951363052331833909458407449842993048939000485937531954752431769612880981477234161637787164021055678999675791747162921936368182641330022253695185859686113830452220273923197644880246419477173394231066402096491851067024631849315837684097245992303545832053000408567152056609478540149693252947479128741028214754512285683335159312219934082407332055869289933077765546960549176297778875228644958368553929773391974791011515331477513739221071976332130387558887789520926019006394936199731788842815329502887652936992994069850878754576873925517567813977093281208150368894478991462516938185852704067075407741455015928537496897768111574973480168666955711175045736470916185914045377091239157869472882974950425547463834130814346033102437705086792432167955046650754720522587451201923846692834419617376462721931128228547319352510780426570026520588427594648662119468622338340804501280153919228340683451126283070989281964459836315432733706388311111423314362721577511443552805650271155964216196668650743204504859300144853525206560871268263126425955188961129245954922425597693581224878076962608440588518804218854410138960997014047763962731963213971384886932252848223811463918204608776999529460950603085222409710635869183711810541707361521155881614770313672998880453338586122744669494653440750775602053279903762091279564189120128946102392477540801907786685139904653028655234306317050457440379871328379838757058294629394641648705329913144892373687395961055705655386434216750642380758717536379258492378693489134056309152952146712970097451147520240823979386364819536592567125770089493256654430568517041711034223792463362372008655436879158320299672343891249132583847006607070210490037021804869489143153364284097615502893484650403746218620862711526464958219683531359509047729674328593777102943704435171964576347912890158545068598448224345927556529358989305301413775778504830162726906571296557769762959310037394838857106648810911864531813517047221650558108907669512034885734805615208119854966851622690591351120144576647826835091319112539930365676236546863255539688677342810944139902085101053338505620310648573100767033731438107074403147650698795191255626382114302509359792816995241091834468415324241281328365897466644258539366276497240656549583758455891105735961717395360888073726236446991641423513821452923781955695491400853695572134910254200657875646490745339039535123441318857341141934522723924906131347330965933865849577067256347113958376884461431815561339006347081299865210279851512820966568315137755402673192311836929860125560010397568321407231523002275026606523988223112814788563569623857420392261489476023779747479521937447385164482593364769660776691607527132134046569366843264929782770266696084732439500500260750745249492626127413262985684534738382174864720439742774834649893557056653097895288934926091164442037776391361992646243901894652874558277812285934728935413768067999045100535523383361802579486836144191910952207597530405484670948766951701314404970243508966939024536642595020908810747378648708818873919598728704639986872338847434673161604985531530639003219993591845656245127221760141566199161191645711031615465537713344265217546426427669293677686031102834143663722423262658932477242723992546971024419672366515653556846771139096308400295448217933984661517191494526772254346438386899719651053596891826092194492648643701206435160814970311631861014574635917689909168794122626445149964462775957473147291231493815606607297778966214581149043255012253370649548277110059084260835858179499048923361806412936848036208194820605497958307584901684695489966111453220707825145560864597263741344642348144781648110530017896382132385031560782831036198336198195263771738110589393429061048464169041436587485473876892164047230374302174410296070004535457767427074575744707887785849588466090596012540995578218377235563371184074231254761798497303641021486494376236572702396393142751965525613605467541131895192614859119605685423211865269576935758538153750248023529986026144011516761794857656722342983205379902081630443719178973462455286419959939273335460374036464253638916161479224430496890214541614480961136028450114424951953956758000730119188808111143331340373385639074709680946824780160202147088355721939978532070226428733651436327837694356400217280655657998253659969476737254620910801760429240012981713664873103962818356482097774439248119753367004315589495766498505208488520352086967273363234474697820265587302250075462721232212487701124940324906683208524304269822595960125822438830123967575810542623844125450307087966616688988207863014295811941320018296082884412226774662071047259307356538858805700577629992258285331348480584885860148652060234253661139535744413251528879175668206100278501106380892005468464378039151919201029273578634600627135214736184591884887331639421705509356668554913231850593534678598084762918542379092647009384602548431923092729138670866589408593439236173135492556549596243633171692886009470114647011915898012672159955930272232531107654611775295415328693008345684974463994843535461050640715125435960371113500736901300818755274438238713989022790654390552305609893805174329842398715986668917724356880644472830070117711636742230120203782476272698841658952711810231595829999884521205529496357566392940853668550004707820574941827981723289976820966292074909116713894990710005856708232084014898227866830187149284973233055899341050257928604754355568039796891465290498427954427310600412585919774133861768758411784954764434037715571825619016526518671315029413827302769957874805099175207657568790055359935140797438646400985165116161213163524705040893787213393445505915548492268108063328632516046008138300450939447090098958197279659438995174212365411297525192226844470148258161064130990708744899210914692778693110827663004667514400307970852818288701604721354334059502933884821697566485296126183192984796307730696253249655128016442817545889484036092363102733814116589728772738829762876367571839610403636440488068375072612703994446109907651627124141066599644079268246060884476207192572120879236590089709996246670298239791937813029005055365820340007247087758183350387940800208270691265003844114983720368008737476784356693968420641192930569158596663006935502784597332868209139663462444765666636927177249399943283053367092472868518289835449354360653186121368538681461295545156734922806422265563947783130219021784018500920449998161130969061220515853567318722529881175499855906208043774914901842384493242881531688121830669570122461889506386019463240813068351027824894393717543755376657195727342237919237164252446654265442385440790244867784653047109366293367273453134680631929818255002624148649161470240408567104205253971920248032439801937954348602664372890015881922810819167977318130327492406788662584702811820029882761365361856666594153022101824596323305402194138593766816546935439623141527554805493081100076224450002447412930294068626352268020684503005149937340081325525394223777925920415404909404167172844614428646759181580999548180120357033395200208721076447134200839641686180688405603182341619439878162682761525958053651625374558608811325293719487984950571450792193466491954311591561149830122902097110683247081450950822873524355742151236867332163552375270447872580955962149654653523612390052734563248762594693748158288902198829358445378709076856799165928291741545118648156760813937959672428088279299109181841810682799942036258747689840520065406078128655913945390192915390955660726496589159947827001290851257011632832722380010936323852435903459715191514342003810165516483751892238738828281998436277097125202487638330105794498796567699253035438912751816376039441138817757572442538542811276915511914544985858746030840908288923084461016692308626200364163454098416520311280817198708557056677363471152332654808603078269128066152080916090136159262366018258431999232884657611658384013521741663907739912504668955691704763563890946549177903593669145190582021023430691188517622092064835540933033035126606448585697588334695393498055540241674651889145699426103983372222360797201102414466471448192415950204853097158730426724876127683702096480800538004319744074831336013573203512838762129974589291712612992472076814694857873838148815647725917775661846573814740867482954142235760316859869044984277474646755361885543696763366063587490993730782746524693856514845572221617133058359252355695087775444541264253919597777564291384777544787947737734483881978365627281966152912380944436364287825831174990776381208514989249978886716954359553916379895178173318030350886222281989735461215159232786373918399444284245388132391809953998619365253244232725696009692878887769194503561793730501426202865383344698412095216004177527858646862573314874185499658619802289380173616309546165258019233817774620247585470038170784462112824721503873873842163078707757525281330315321575602516218328613235755980876186403893134399383218765102646506932981325763383639844233061254202964970498468514968295519927741003589850553757664248083703492685349403704527732232301693819112141703210175617569203206672013783276186026904824046780501157505775872410780964001825552851986921719207060193492710817946016020407502070974338174078664838204917782187267907865950902773229159660092042007640699445829560069353896102283179762589916274997930458282816679058058029126790791228964778173998704520585332783176758506224536858547756748952059941938908070056931199279744609093432325877402864012554712757926296946166476464600903599196811829276000752663035441671095298154592946818377610009708381448968842198438314744876454971835983967405597143061091997292871117417526637916723534442956356311237183426818062234368801740803340955500108344142676446699451483840819198462366870219348743424546459595447382658219450055345401856360664317195586785868616952416314865903995594592033053095517624522211092968767921799807640753829186547058259432047398720403252471995838190671034517794809476039028280740190168624604128101148632968317380598255816871173498638091183535743029065319029330774080611613629586733506609487685973645254771549075078752969253085752563285001792952412985696539681580771737477304769866873847171096615033445999033825992913527787727240003385520470511679812131707768296241618526299962402683766605151324525271878288513955056635631450919756364023189440936198245987215943693397183683127685573212039283307042590172009989584298676131339379004829359517166969016428727591889805573725076982031005425594205014637609192442262441325066723687562554612108497698672436810068024405980647238854551431794325084383610546931904185877397216298435670017426688067420787054646009866094778016831792075020061249186174900017655913452672760176286770219447650175378305659709490265599768851759252594753553504215733071684776168662765670393743541886128983765456192337589735144701435499565329946234536000644742090096000804949664168670306148944258599642211796033607984575927340716317331076819252715012259088057284078480592606491194317796770626263338202296517156889185894259828372326478904739305152248368313815544237341981291652758759772614126197184431027919974826477132743049449892356291019951886306307732862435633661237466262229190522801526601619873699803199244977881022685675094335944961868498828056417671095794966869407320730147578343652733643180715749364441611038383810928281446867237544167688212154286355652642805378765141853439473606449709910051948814438853314518286427126310707657581875941950321654804405389509657744855373425527249297617915147011126670322288252425159121976279487620310157670168124840622548307343952507410517946249325970676631325369604672409873916435756181856879821157999482371677202205377326960751493541933351977427160366250593319763056441382898687994212485110511470410570590402188818256543357051391887470238286085753747236893362189238831621175493201227088929635424392427757728430777707721233753885961402824711047419408657140749489082073795649021874589182360019561411613215955403216834259907370313503820474500535675263494556550804516518830185680289669735953692205434271104324203742919895385504308251848117683567829145436363662491802176601719966422046349434386251754596208398685660869675096811179044982147672969449087764769003563300519930974051369794651894359725433853302208155886948294266196668494394857027628549548331722313310668426919124951686664281992930852928212751577692855951205198387176463985364614088748381598432426995702620137938813630075457816470256816446632521721150891373746715813304116200012216774028617988149281356372851470981673745048793238157940345289586001201415875447311358819581262129951891500087305085422175829807292091213824986210464246226599069289428668893543289280329383620044796297348561851771586554141682030250539719410793559355362302191952572920730111118705112771800897185883304663039971368814845510951640177397289995120732400240626209473046079716888064371599417660750282530942727524762139528499988083568532201911359908537638898736355424913123382183151597238094234451833961599803646846305203674688961498788682632088493310400910219232759502675197624654397313491896538146215876300299220648226818078684559893990236561814670971106033639066842607815362968887567407526093000065567186304247429384074093571181971943728985327418311731513298835453258936557873997708005783432104617962522158739392530289824192330965988855396676349917941465252595361874275354427805477099552778666935905084410874390422618447545474485730677537195757736262343951664323774358186387657598662609858977040147847995616328453711715893220280690907578427251246967880281146459912076884836907641386960596001069316838237968255444109437851303912374816987414738367102917614319684327138615348191081854875472597232448781234182689009331730549023272703885774513962292147370945177261620283901576609925005914097127550001703669049006479576998706056216279834378120716635480333502400722266931996612914707791153598210066607608176499669493734457321889736736338461458439805691994653560092645637967651787750135494617429297023513622634625351941068702317855840805747640826122884730641873326038316604481158598095704798679328179991014193143895836528400919211875555594418782720667338563551234905844645681156339787816320472976637136672842313509392492931914260247569846915699700261201794973974513090187096443294565650116877009871318723277861408978514738793809930359163449844645898967904546701113401175274156287982963630042892318962055768614722044999228360464066381501331261155127453993680084981593514079727518732438694229270260664566061614102314640058624274002731538377026296539151858401974783942597435276248000418826117447965996909019571785802641602122471833923188084165080459662909556597267009238846121536202659083194047994874640895976859295522238004122487715177850578035728379175018330710336200586580946645821113103762405810051933741753122587472102138675439850110445920470402638745280652134913229506752740363193860165215220387473587291222477340070217934100822117838313086717932164096941783505611502164048192253458797510595708961562930539662281382980361961566973279984873325156720996419777433707882117768299010384217571390133740488074506306027239627989849604373757087083282462587927761159599620858887149742485599097019126816571028820877942720537380266480998170352812527613118895222319820761006602879080994407775703944446960116491594058288714740553988049862504518378363368432625487928700213272559441450899704596554622539800719069449208022282034049814719978145635276386755673290778214663584849394602217143868578540553732629681925246941958414559884092378161885702209065300400766007716676842228348040338597138011095268829847824796513912157679822097486506237629655688299942984102076637993070155398957407975948994934673627401987937493010525194619847079080647654095574141484749065550351977495599504791493621046702076841050560160977581956176448414137470079245898767116712082960296789135761515750925606038457048585276641391804213563128336469968306261401116509037963355700928331081023442020926763472271325774584180604451671298601128924163598737839823604452328776742412215682739644072900929084817714276265205829078354615169419472454549922449238229262992760709925945325206514780190137171337032439971189235000248821256361359568784839242602036678942946288477269130941177303097568807028788012072011346824610834794150027108701543348604648585885203032011881341319578513868616536250659041866303304544340194164462679545494692898109988571556249762869955604641603095324383609017221461075465206524830414227760101612196416364780980583072126447742729159634199654810248205931752797323526200001344090211365068408886304714104904962743950273421908968100651846612942342046793721189607394417069044954170818172984696979301989554733826066275486219653945978992877788709803092083233604743862201678107936617980943533650001269125248842078329961679924810447231079391571353740831604957627944262559019945164702987767782035802207234917429045977223572191674985574370043608180602890753744997122535244700257296332478008853085037169647679472907078783413726662323730281077006435144082538539534789711985399513212694353843557196795742036877971433660776465280095480868441064602874667994272440093825086052301439522955235684393284804884027823488144849017588512573082409872334481109776453555027299067157491000196348868802039594283665591368108959794172170905697230838947075598666208673195063016000194268357585655843816950968850753295469781603132427210913448658476964408223621784503483638309910738912824453312451151610385798455159334850968754948960072666427058890801045581730909847446216940947606863677880218286417074495021214948133395537167574900574340129447600103204613460735061684252911044414292917351093680609540058148639917871242790441863733902027176333930252479557283214458565832533526597507139172267850669431506330724429250328224931114140499289311284767004797230208224232740556218222667568036061252556328579336174532873295864423131775470330836741188685325536693963812771873380821851114521379016792548234283888895259219297853601957550413028845236060244452786321421581374884499706615641699040096445044336312222361461088293021088065686892276030534630349206654333133657092907143240295503418794641018165175890485438727190046698029095405756014533836736261434034789553599770872813613054925587672055535672279376436228366346708545744524263627145680188683049356032295545875312566337044192039588463387744069329841221915390929605392684506205879868109282760117037437784406240924491145586813853586262846856677066775425302726675580196270758223527795960351594310775789314547506703480193018062355958374210702007079214458105844564948854046636442943807414468266819727416838110937991567280138466513131471796555341546169207585919741924683679748680437569094863819825989247591828229415960123861371774747454383354263441011804648803047517127332008607699266335335110485903518840327308306595536426417773837623815985752903955472509080097354353055664762852679352308770950078204661781756778209604961018323916627235024104014373665847229449809483920702867987775313219752156624907692802047046319585066596209248557587369185305850378830414220359328095304821239297991626374564466966479543570319182496387113342542718080264335845988922908236295644636918806242751884994668860682571552910617039385457404839799632780008718104276889958564330164776237360568581580202384155997709694887939282306662935154442705825052465128660714456424736784835348892335281995519188372373165831566162776250239816133490473845804705391076400060897770305329694549116080027002413295992302523448776149034958543489322297779044276366813321077071590943429450978780602592028320456174000818520854761293124572456232293842353803909687127340430030516260868900697339711741107604893577281756926735447608405765835632571884546889736930557128136220277413969595822555596245123953233146859897343713326358484643575396336520284527940880728329868295810358815656018043446288658112069035637662962233331232688027124455691483837127376487348493981969816625588443651747340848410192885358192186025795352564136428083887501405019229750650704846492892642492391953604340519183048036582491568545868915100769456803992329641194291488922091230374311489649154548075739675546842473932775652672967017161503622030494301080136535697478429202139808473606822597905695884567040332913802208214786112641627907662224786455310263406991984804254996788079624419464556137005766034251515973670063337615846764816682871030578234385199501195042575494366195874199296869462978107520707633759462144005291634227460268254446275498189046298832092413332661198714108801134077467262632844404971406160698876671783520845067899412935717220729106738732649480193440920894678163522295437087982173825455038285222771496931040341293126952300907717844137109819398274437244538150983438492538416488987783235118709333815741082086942675171177008586346781127641083073870230766670527347775121185395763362194815328266431583339853978856381185274603630022426106668194837551055190904755500300436652470706075773762616016970474211202761530693638928584062116877105054425857997829545062337772195979067416728009848992977014921797779731151770160237388975535191728036203008783363153647721904848366182065798224292938809349339722173965072610437006708947821173650525914497296423834889411037569404440530810751712187084466877898471083346339838119087006342295694038450662690388113369007792693178000863410904664715745502180202538591336613726924865855830544013333795117146022621474215598615280463329037577526550716818373849390574191749459643433238430316763785773864533112268334248326024581681719896763616284410158836560607332897955762772163875262039905786248691428889854422495248913055297493296227559205890837234125875746208671344992596229846248599185319845407144769114458041596350928927852104856524222457444739082544850885414229361676601357156993479112869716345070400884901746703216936136304987176923627525706648150354621227858147278649776919358033027411994193222000758187615656271277372026709431701955558581271310160867431102896408263385520294183335783532901837075968219102921410264576857179016991293706416825763460404888544364088101466063578057700591276341318547132633167447383964326299344011529657929593414506977526549475389594403442674973561449219423304533509342470633754968433143219382531504992436861053167615213004616898094559780760697500859949078003275185336733330009497607715922043864946187409208049889461558605669412109523850982466822412704521678766160776069302949665247057658998178875863129140937691398338080438914000348715618868275610166998003058556944403032689489159667865237227660632239309130954438517913899417054337776357069152116282284363827623854086807917793945986185596050732915671579447273898734907850680436474552433288749463299234965219683219939715499841091667667676253930662908487148585263775705146289054580718981136352724806499898034807492149429530592698672571371664757437615044333761568688435365743747899078084237617019670014954988994830502838847850248101837059445640241956042339871619074051263095319846043084022117877852859134211986551583908813213642520955052516900926885161244361860107879888790765954076033301379871128295685094114118986722080169742853859436556787301491594544939019516087237040081579779867182489278452487857415744465074187117098021529664112005353922170918896659004837298867138913471501021051778885939921484903043895147284962007402729245295202060322356202084828930376656022476075614537590913236299737482852366062571725629963185022169438908298841244567275774212122075827820494712878772640722700919723983889009936345937063789570929806807750854575369637718140609627612370074227371348308154587990540503217771861582789511284283280024952357693904285386838796132288521217614774283894754422502236471223965129743245033420721899930387361948662199549492402036034310861910712391644901113598913761023163515995962085372722344957829923665738694831012979421365835185052172529512047910912402585062055008686270354965975390089303780094899489907849738640719591860298616060564758215387409654323688765267219237445080064367922875275552972079544550328536178299174129840401148206719382436378803852251928072656569611912498436500950624414334239080987759466585781989180267019519577852038320706869829516940771854212280977763781643525381682015858930522265364869318941801475209776814847247616831385421699556809574313467883487497806312733091778980200628131073363208779035610574884104092495034421862040999227830808457915774002470177708418920413217862870221688639902646254315622683542128615000963494940446774073026012715652401513600867935726245614272512630673708030486980705542065875000785193933117160028102264504857214039669823026297100814953800746769893856834579266713349169351016775031320036243765031853697068381101810071477360338737219683678120572284959341283058915360483518849157770334743032951813678756988799046278138696794189463704253740920505764670375780548344561964354962946105786123187807685753655444884165107425135445867908653850547391107336722172957332898695087309912656416871171443256305223396531561194693000028155596064058593340596128541011862686547034580601387422708292134937452884886393847597461245040321253020974486812860439708777171041082872601561531915104942111234184739031650508584707115855525685913631276895592840763877286030423441764205871731947821000259764025677581613936447769321482779385493232044188738088925549243032359610422881782032170820015267403453561472737059087345635893355585908915095259533725098843462818266507223000382169445483069876628822997483976848773318171998832887439261989070367884094601260372695297531560745422409445094902073929578974935824781602225730835898407156898595533792212887246266239921083305831777992725227575385428669190806305058886263231944130484019633044849310736729147344845853852468452108234977396752769138075206240726711259793905086503102375520788458068275832079226957240422678939417181575812206439464756587582419096677718486259746866314390710705156435383439903655393363719356351530858818351146564249146315673650862319388526411739649427652156762603708239056677335361494812342985469879203998740116100319821165816576687757952561898655360827484824033109870606726433013040247510563846431087117362879331591087690246065299100418565538460152396179033625807739372385484758929394002750352784344643249955989129294198771786311546538250963265471744723871702050869300540717664179822964138639283011871475865727311542374444956935213906494273630886591622618566192802765162352128424295917389808956374758067751455796047433219259104522564691701991561389237337784339239838254466882866344521051630366787713425806323249924365356559345570889378186994764676208775280882686821843103625738762243745242004490090269126901580618577863188400315609850256346183479825969649774914118474809671791263686204823106504366797300502655622716659632666205710037999185048625122404474477414620483140290915073319558148289309204066969771899544650786447064383003371858271628431426105092699634963509019365640344696764380886706422836882172339751111959548531386478413825778654541778564943035551461566627618075646831096721008688507127785466623924277424947340910465292366783295646897405901958336617823244832521465577616273176418758069315720452135987429527976722669499184712887784353482679120048269306409363933150431003303788839920679291830532591383807407097087024611820277633688674820980183409796441801087573629387917774122093159338489925853431993569490915890415066127911665384759918469440218248132218100737018944461024208590154909462445709304633748407665536024018914473443240752717595959688665285891619931340969304875597670052195484376327367228465588296240353227686773290782137635120347798081966429696980380330754698166005064426950286338339335505015472362941759383692927831273959760403087931990385043928863917818348922661617333999225369491115296602503291326341781137384064851824638167660604481433567384514693392184129268942102562124843004980092398065484244015057719809200081451458670838909551626780491947857272155519902554319921233515114595167733909345478914498924599109337180778557149747631863002509563009505687216288995523505173205626746839543597640355204972481069908417320001680988785551610964914476379126792109599456971128370625470421031294409636722011895313285111596720943972988801374405861569992523232822591783357849171245795618659853231653219874787867491471665470117521635409617744273742819709480004317112915810056735796073815650514161253695761592414567615905235463184227774257170325326613438187093771073379381117497179315900999658555790850095765862263545729465107511391282603086492267543340042224060169479952090248224250891552147259509982274292877060883875511393569759267294359201954221645681767532498603731757467103644633495934582785764103623430454018748947898522369962846158962005803392195482861841709157244792808153139209059186483798359086831708810241824900271953560563119989233298999502681078765218950746187175483944542312008061119518951735542626559836973143418312285193707846101373327843016993728716627553727946072119608036016354915880949131762348813009726693170649883106653441210707997742513520368587024950438658692198077213965093504529660392083466903549163736027432090523431292380806924892415958712889842873481155782033246733557561586849614075993548905248945583083663436154878700568406404451084774088962541543886789458535030556208960692043335876083783164974160989879753235024789024873917070808790163228712890305702948518373329804739225126800179531721090333523337832318905211711206395225530435963357200580728136247064634200310502914949921963911578352562781528319861186826152079699318948267193683106049649584709379859019551466410153471741119445989272684987382813446766647482623501839190884889179093900535644920008553826303676412813647422245030192488610996286974989802653403191624639577923150038512911150910754960338711055889879629284138411339213030862879735900967546438040716960921980112728925376874192583122506788978771164580142085802481013821092536611543060455907648932490793912708322622856007264853284268891889321868817624174272244382908098652325392682184039953475613085842694296915326987144867350464203937667239144753347429538107020819303575522893978660529431783872979487181576838895383383851598231947513150770849256147480116720442331092286035829361252486995763610175134699214340899522982361027897405423659517394625638857295203583758255552575706399843188034810430608890662736434040754841592855866173615654690715729791285525572583489763726065384658417794946526771569814686110860385594460243767116986874246289729373893316051912567019730738269367982017369170783012961899573342303958996260049210563719987564995459298195804144258047588301494822761050425696506988130959264981027189659768051482637590884256616898598831608997023596519352928910851005437783674251488579115399268900606676978580322339444880052420267495267953797671918071741387149281558324621202453377066934578234958042451872655854583717069518588003506442473796948294575910165789778155583056179523737109295601067311886359551220545370175723764868706395131482757199068261255760065188917168117718773428118479857907306889444940880158628467313248400986590405771039687988862525694803396036857189592172507638204202416991145693532393524413387996400639933323180461550257373013115081365369953087142364018103634951386869089469703866059272648497625414756991041025839042525389485716557260040298208452306551466166826798863154841756845547415201175971646963894391579752885652193219499549075279523373096954090518060725665306895487357813189829507885321382905995663684424381849617710851910593447756412541420459141763636792995688137685887861659003562877824358883248051777369370791308038822847894730058555818954005159002764515949462587843885092453647184014456404349158969082350261636866243761605306565847745655132728072819678514931954332956261621062562456238351702438925848866731227452993926918887566867068180299894144077690466868278923346222603316914330834190339682873926356769537943782379420320902530213106493450544683443523411982018428372589854046150697326812934585150904230613452197665857180822525250172804171949766776493622100873420616520595381105999952769807051605394389279871283453568608588226048566844175147350513937954856392616050176687733455748608052522765918577768835148363675720467200474453428470586125979543792133237420568045023094578912602849426085659588041527568811865863909447364578856829127301755573507634752662963778740452620964181700221781026213370755051280951993531145386645394644617972246774369127456196528422089279733292955710735780568383651598726513482120534663254014766425856444240905720982723861194925078063179014206110464321046160211843531109314097159605389872646322677922825955336696685222609571262996765065330860804187167703465036485080605571145866313215774515040450565820318652949910546058354285926440842639638853808872578139642302022087939140413513703165621444308484338266914884147756707527383970066332267431001500086439387561183594139502846336184616312721207805078741514665098544071602342134668323578313162412713030290444021569264456241107079928403992567279145280716311613374094032858967580908096518603619430482388870503774493451106747014601782908197865505797433553571336290847258968748155643745593555710905550314369871169828114069133839428664760980242031074482683966688161250064694962719280140665779756242121098195395775475157461313110028460968305479436962283684567735779878322882311602739814844526751110658413854472050413500379578785359887224063911879040602849440949940045263855806395391024428149678188243109439078242723914876905893617066828452193127466338380373957118315321730816376716332969701821823429772260053095492151555489913102337828037625728073302483908830336772472502388496664736076557674506593696347184284199929249845918818659913912877199600234029854014553042035380789694414196065175317692135055454810306640706219704716449352562707997252291807467927278482657327906913947766483895489773903730306420773913356701745183928268290327292849166294264528415434754265807626599036756709780027074232020600976195499606793179793663974437912844023697018563406176850553505600617117193651472341797057484297343294998449484329182165906704250797096323839463877552567193433918288061518238758180751011937978255876656641610056164297200849325793367540313747717974638928085226270996096993096045754793653911059073841152814819344569937763077654087814364145632585244500671970291039634246391574388911982145416131073910078789873485925985185239033959772650976498910113580501114376567457404835772426358961203989785808479888964433064355177566642226732954830785045809465160722126791097230897232054558243713565310704894430381207467962112409155518688726631450055186544420162494906129279960157934260569251283191744796758222989385063020785511679973814532844894422600807012269694132211868159242276537579192333456911479523817995802577331613563713503441075855117475246600767075447512179339915292817680625586988220329148703033906048924226295402617620711481091205830280381797221313368534844517416404352567098747103705491105833638469970415647572928790287924798121516892314173783506778848423035854052707110438379794273999488593652295592609294432875435452412726814573827802692363006777697332660087857319729181213936044497146761390847843168178582572292360554972409062998392789436899399185637777844856109989557208640804061983852205568770157467708954436060264981070464289737419405418723811259584418240714903433160748322987958984663665860930613802726748166343886812083273713798824432823161376609115627688051394382528602700606582368815468377633678263891657377726942481799379520345616796915694700454284164677418629978257907120281977626064774063677503951639419276495028773042810416002094044746255281761391310612474174265512512068035743672325244647503914125066362078503674083127756602584379074763438221963202159666539733213088147724984505326246935507794298291892420143729628020395489323088064116943650985108127288872427062009428793670080431294690350613067595889879888143962969003858609889892633815123801623032687729787906863562028636212991643974379081903995091541066743231216609667279592322025572041586563197351595395482758843073021359021121211173762791770675682856890337089995130483997876137374018467427959465264664442178416297811169437174193836189399769743264123955178229346567918233315764478329436977898338099197024986468179420669310936356356707636431137745685501196993282056622964268100575267766827473681049909033859861379033508157862549677742638978775332234553355603999445532786452682827826374447262832345132571865720557501605413107398983098712253869923020113993321286023575589131478828110813479753416650081494839983005595040859446134871968542164538832280472968260964928283292043269429124625867353826053409844593963998927590847159785940342693749033139620633024392357475313469232899039723984793435852581627546485891237708655810075960645421728173392069066118889293076168746498278549363528808870365615544494481644951868073512004732957553520730270811673306847889588512416794299592264734062209279077202080128132681100057594734920079071327473217439862762727929798263786014723646989972262658719441991439282757855132444854403262460648861969059604477604150488381428554967628766797389851570233485507524594233754288906624581026299821823263875191003592920902295728157128218535424302133790197357692383209291537799904082408164496751696153343448519597082729803867193454642135805876471953327083665900738116011429685901776692755872077442358498643575971609515666917535841866786875202493959542546817658530253392602795780695497012734227836735617754515996093134743626604847000159978981989146439828354285529517195570386019750061696854903781616633636846019735661348160884224514779852828711643529642383806870620546333057933975020483165850348208933809693824711539158959765929441519341088089003420925519300318802569877430203391854820484306209574235255788706716214552066018451829086960011963206311161028678921230609744896072608720527723529171609714187232798249070619595627742556530633517350633693931760746148244372107660898996708067502464108918906486457491909895360711496447246111341047504006736369248864809553442137436325625314787382645837663841615155279825425862627276393302232878133873009438872314989907033276027175608094929342397599536925256902269936943430502736705288893272644570689650175151826452537016413045406373599541213006407358525879945483260256430083756309429931649723217117309286221615518426293599034021298985251513299499886522416491330285425407572356100920146304464740222395914608904963086406209013528749671964513973640461439474545720147077663921465037164154177999824427753327472650866128384748765962776692068403165598612479336448576606462152700655886373248931338072479376392975867891837875203541784834391904023134490706916040204190560232080761494159050445027902025318282324443300334786539393910884440188617744889707364935784775764956905475133881990679875505021501234218360060650052936140593356728199719951079939085542886661568692538731919904738913413516299962417235248811875456977636276944095345946109538748820650768032460138124977238744708858944210713090424735438155820783245806619670681605692148760310183056937497272674702061082460797042987282387049415954854112116158254391560894205886181909203892092622990765501558368045796615552107460805841313893879170298435135027191830961058931315397237284477373243905294749457766584442458752714078257710258167478938853742663239895920114313197408045271947969486587099711247540741574734333606925422801186413452698462502351045927605410760936997121631893365400106767014604846905810340988675818047422584302813186431320677794538220730894740856846760726692610761693205463682244007057671147667132070271447437551505244599286614368591424439026213710996959748736356068770391600270370975053832365603424210006427491983732909474027312093396504101407783524548168880539328027423365148149543424319687033488522034638270282068077611965766109508575979010891074520516564911769446540059828973031798310194189201336723921076778998436742808270256954897830928067259520769690840112437224129346117915832077170610060566869881064679950733609287538065435677871104276543417287123885123970960637827605453134524446782041901333591308328039275082003064185175381770583173927956094289273431574626121071772851980511574402830759942881454401096019253734640758332683027075254560045206937651217808189511606706402915293672137554282956057742123671545630698150195517541371755474251783557854776518883881396497927165340958368871801485666518997473537112237517981185570531454373248074031012576118137355398496320351973053110699123018761890253650270307782453990240251342494098984464193252937302863311083183845533018655097415274747165219829180561108481615435696162149063940984140861729062315252686539049036505010408380338268880421173801084152356718002243255065437581807208408226024023503886643950334635315697531537899589425116838841644834360150735629627252115495222092341464286966402103440147162303879183516499980808052065049064882425043420190084251968132919568554138391340006190499202407382733177076026524339991960945396860969142690765789489866738650238514401498344178151220828542737805683882978456689459033741615505249041360311063829727448499808973158412977076392886665522175588509640865504382739903432960460082699499517830324313459956486253065080440954533641737825745369605919407054859792699784361906063537565851931020421973351206880872241654621760673550146750060496878476659677677147809792236071990361682029378941829207239341698640496590088364153284425340005236065862199555190288289073650475390523068741499877949144388863047461506048961109180828537953234616928285323954143000612898094307084384717543466480161066939218903126069299291017178584238422604751948747520350241600238176984667582351443433944428510207189067306159433123813531140827288461051075997918843976797182820009119998521377717840355730125099746454221051736159596208597642605803565909794088175691401991481434164555293514121387003099258673006342899954360798239732625945148429919157253015882488588870164601150986718433842132927757338346937609424655718069835119363824699164221784559088654992512134506916084287731399626748218034075694138996780615127325202788268366339154859069037129116596145602892786731926865167924915634530927742405753939706885801963957606334458775939044988122172297495080303416869786893014623755757778064646236592168086485705405757068283848966324661961379386780885712589750211915781350176395057772382933951328724429122024639389519337773113461260671770565155436866664004944301132111812575229080151750610305981410624866313455380225883059719498656067137447015850218290188113623348533731613818672951041388432580713662138765622380731994177241805642266847212148394435397282065972004079544494864564703974222239577399950277368137387942510544064863590844640525594599149752593552496503241296719742875444420624541172117049660184423109857307641214397952565295283289639582109407043415537938767268394087959424536797681601313329570265077610600786964221002343266985075583552443217295745661580162332311541677296006482964484134814698095170611947157544224023501700243304695155094096093947163562053946415226773094045921623614977211662218750278840131083182533816873794789851746854211421522290370661755526186856557612347659098691246554582352975138514364641177901795790401294213252004787801423666360858506434941951273718786208655541352452114695900160472323092262629172121517927926932496873091314196662617244637626980871295840704444830720047932656526365314919276401957419846603473518116458562330025928420090870315299296369562121689168670333365096174881192910526269941959716461393060187000830490711898168052523482623324093858784555326186084968323914836652180265626502833364157410674053196277955240871924657843980782582024682161033964792120646974048000805440580320529159956939455721795684092308364962114040531717476751476260210731017502655432295980581163054650809453206503411411617600154358643137360203323891166979403821540108312627061848352808848980584223987382215912908001220501866536991878582083948397096883638322751863225627509547254396836837428621276029173839175115768404852579480730404214016994536709306979383232659610150562212900997634914481793947228768022934006819274149414817263101558258899856082546118398386309280939172158949699551715010325142781044318034287861251684627669101685147643111009247292818175599688058826660538643180097462954041157302354082002737513330759929706735936948910946935740816541469275986415110115823319719541958483327882535008435793184386120212781446586803135273655063744896296525211435377775299890155618467428092208837080240172146184193412196679219737208664635116764355400624780603223699890423290446900141456642186127391842759899680952728535692874770860754556766863670630443587461404792090446157147639366243467376082000164771584626973164948021087359343433768251699662980271091393485618026405973825931553104484385304834211181873573674744931910250872059651488610778764334691937435458327110088430624031812837614826337295499828436337131520505132962775378958853459499657473404085164469372710952463820644038285237532516356658714546719174921755479306058746672140641978176276697668567299857893559151721660948630407498555058787707619170774647191292344870340861676157440945181604410733995328353038228226437417179331075610633904102282913443944886570251666648801987275028382414781956196806123714255422182864240071614392200633197105552711690164948189749273756651604777090155713055789451373361910092278081320858666382189503297633900671133938684379637459475238683191234634257475024214615278607051360929710201967944380362938258914386890758472636553430973254559756875122992170402654212961952107589486991052683497917968466889393106928873350779430655488007176964932335150623002325527922685853667889549251516395291738817140741267744802805631360227168746695485923502918218349842380320725208357972397499524465003537114660284738811916027689449645204572383822709204588026351880389148700756292576633332485170210733004036661348118929152306634546871530258318023964152302018277567092694429549035362863481608131159312369344625535749410994112365594450354906118783520401393879553993612573428486460041929876657592968990066817156325026017254870830204489354331962306116353622588292240338186229182642787223169694777476739523083918387570400724211393851006357966797732787900095605032470563926070057613400676589698510173637971872067830450586779064400959518416864282463176478093090685265442187616105641774561344915140597276425674913403052417482145068641069281899577767606654222631251213628069663008529960157255147227339513191859922539296718379971234709977534985777957839719993108508022527167725429233736117733575206083015648417254678266606560731011741562013027082312155978001385624747873951021090226743968759163296271300238671883363108067331202391962829706773895306032684531081703161852704649095562526930298167429146039312657717474322594468263969776877707517371811163674586374499218128928850645417257026426993708465424388260088458779580511095353035569739889140116273422323295766795135836628754533850365371674279557462903792278627395718620779397233383018114164536495213627380694585945053952362475891518451798850850457619286833137820764815918416554638152782310964890085798706315028162220444337127980817858642971704645882841266142116908170081351376651391049083407545799830643266990244556167041241198421912871651048118287291286128746158889840061999994510338850826439741251350359578537218883632199604359263498859030598498852410656522815732561983330264774689701066000660241191643423352427501975841572608818794501599070212134773298627273048840635103720688771237877833217161578072009010739038889859312864167189720411250924366781468105551294145535055313516157236477202885667006432667742275512631363134675053806026355770281804533882259204535733128327385624324585867872118639958694564240046927758948443948006494621851031837271670819140463594369267524750668951416444400069021093418802228544671696420246315152089398236629043280453796503890117578616373870366467550043803004896990195849472896240479632228669238194710647369455060755929311166319719550871441225891824100977908097896403226175772695763199572066508156441273246162323372521598298671324886537822770270074590985485365216621721104332956197972415303589854671719219420537170806100784143397960774709545846086461812971096531959820687985817713610819654116250337670043557184659963440548475248609020827712465170126684338102144059650383158838518419609104762199102820592233542639921909518386613998903592275044706415237651442044678632577317926461471139660938978637124590439143965606566379513217859939718615621216145709813246367957887787847917434592046197336663125993587549337066982697355002333004989704975034549734597491027985200484128454515121626286321797392642002647280830945525422452452603527459368315545223336221577333179114666005341728108075996621822876421698042057103013860261274593027647191438034631885129251467503925209419382136948460230820225930182605913202842615423994217889145686989533305756361926794969202118861286652152947214516824126459995480568836161983498698081847778793612427682742656293559465293147464266428331082505163728418728921967129911661717696099696424564878821762123826513370672005117069576712838975341575775447878268343199277800806619715411223021248491751985597639230036829207594547937914472682897908020244968562008011584724244254582070884645999958997441349968335199736248784155002284387726332683863804479793670617326000689814680212873149700208603837333155795753418930320477425201391537144360403721645010570800317627738916977132593856480485344361161614881897819080678818590205818308242421811457733320800639693164096690788450320890993476956379672939718859834866263077967304360444826261878401523315556142287645461874599882937414050781440010875461889791936731901501279389566639457818353149550168507186080093575175931729950815536306827805796333206368694348498127330718619497283335260816554767256932127918948469853981288773230094439335922368173940762060139778597553811487709141650520553715867589649488101201193683173867266068374241198744316770664294910864923760177902186935197517215976931595807308826733201941919269093876110690186158641830075489915441723992703274459476501446546057444732626343747229383070766364635087590182915446386506609230552916097636377492933369104757392915407141455231735312934700508807486320056747592188659382955521194376464415068929514496244288541498599462372885096685394479187135636447326095901814038596740875153763655038702750437794940696922209016406787723196734546660105357796759952648070812373052218905950003805467910517871506026736902068136936261455790350053365086054522724049451453297203831902150532417868933799849163523134108175113071312066881916773087840234158450032992518103328506127458456243683280499343823811545207775668051023294525755919352505691136243033646502862023802243880220927562033801125332370383634887398552553049033550982363801492800340927304385579236046443353007317383621675831840910464868889538598111213589265214108620210632010180298934603066378449461196380274891109539542809575227907274156602851940280887554282148202515224256752152665043537299056814123575477468707111643463344353890544805762739781294291948373343733225691312061384888157078530056132401322339890042639119406547497647869069733349434515430572205250232933516181883969698863182616855913597904137496182307327271329663495022245790665953716824723687373164592782832619605647984924466597198906712578937707854993963720065924650209327145446404776378724013181024150859101234008712208141994301911860088012421816787662687027176466889118695593894942676931243455597292316501825006034951954417396470456549507983883345926719157348160886587679244614063329076837700732514270810366534850000588215412770038058143907547257710184087361356717094549528014319038243163312234568143605932011484021159562393411167297529583757819187037241488167669177255905651005229803355510461455049379375759731631677511201256205280742639824583581684557290805566601418594119468764094356341807544557138050370502424365929368908742377103510705239369871737115408692387656761318620499285847138958691169237906124505622475888362009286571960151331102403624489626475691870989523414511257340831520490236743598793818501435843904902720834713400644612614325647941922662752108938053837464968660261617481065243981167144219216060966614455097425765062175188041483393916977522379359032522092340351714108406881908916797767279555355836770011550374103429783845740559415127684635202504595832247203648672969552736163734079917393895527152623105197402738244973548887368780846891754588278961110732831238652989849392951126528087692270222119146769171806435415430552154356058473948695222588117437914073555781268324967167591066061853911304206626714492048991790723138462599428943138672457356699247367239964377503340882700556656910402343465051901029649344723626396846389966022094977235635401350134596161119296838332799851858478632954917854767108417815533064693836747005368192788769073662400123353694171710930983588954240747589069816642283681728466644510644048760405907233018301758621573275752033731298788511411388687187780983738516742964501497653075285062498441190523638006127719972254816434812242108991502010053880540674252593650397170266492737456709414002266484962144073259493689724068455401837538776988614068954244330740729756554663302295738651319345898279981910339686858614602407938096076769320907992100996924686202095020734945858303102036713360592731675575601772967429885400009196692864152714479978689075102082410402892753133103572229945528629010422589939618733627619010082953236805554627030297496252950901265271871298648113929133311124128520308957969033041053738873189946209918966063729224309385241538345565653888189381661465219344312741108658674117242764636292665602263049615860675095490291805956138094150877243277353683188377978165259509493979660272743561147678695349338153770485901817437874068805638936891427467690292670707459319158322984189441287176998095283470283500358989516852084427722189442039651393567466421471854600386247384799784352935152642890521337031505238376187175006600079445730079499335383331494852877424943436401039789624296518347528044355735192892918159556006823674362530988852823775169686728685832992115333330283284421233206213735454887487916851846752197949442612657624407391329841660257828605646382388956406094490621557589610319339035704293471570254558962872770866690206164406662231035553439669462041252083598444233241740263923969785365230447736332942661064054646979038633302802549447235839890730818699554584181961265506447877467486521856726257246339450895783696918486146457573449345928585177360390029163494875691519201369730121351420044621119692320424088749282504712475223383378138073978738828200872382002372131096438545505516081151122976887462746769946082056284722091385860504902661757526064714601326215254413888591463120178886699701985555152004011867840570606508772097602474751581628463487918665744844156923685210649667398834936930323190874422672288234614678106147123671595402021513062987358992094238900196627659207443440596335208741581525824227648856510937674711991566760398510861201555692757680709803814408676362550797839341746453316656982737561504032121607735130128208047263398771722189937944479088843224443017907727462207400428853941479346883232113901451686997570134127021749562576785110117989700919403954992508282218101346771101403457629342109865581730242947723478959451633099954465154384315543377638083088015310502520422665279178810005752198225094629997886013069730830003806749934624058407905044316870343386972120454473708683853481266969566793185397516729455471044376335894990757367103126169800246464399174742868403329677968011747347545203776971305929249212896918462677008616686528566137741898654961667391562499053364740057565222767083061699594934892068084615334086743350839846227180912855187897058366589296222738457510617650547852910154025424364225261013965929796140528411523539447538832835436102576680790614346406996068539660798539139657326422088771429320727832250548395395943592116002283731255632678316181664516412308610645109686936352483853750372489594311690548127205539151239546065212077705381425243587663424786337192374729674463848850086601374735094353488367399742599587630561705565989257374606869210936867796874686161303874377235010079035068656705269353576250684552632387616229193311411008915983539232020883100125468076772773644791207655558420116027886120002415382321343575255422971333534319471970804105904714170915022796045746774349055159870851881252107754915255307492678086393481541673558169584574748239165961939945055737170414302691871001691440297919619195426468751914242450804586944888169625886879464535580567592453564565641004125493194075477143750747800060869097669327075753237606767448004132147895012698715234067300981897173704623060899095852062581034275888690589902319638693145887012575393255705016815553549083162901344921036076783899469983905937513501706280637214081007215522698265869976914365527174539632307667458064316402663421361127720245110281076267657347768042565433499515172625833584646126362109768374862202078852864514277195481068821913050856259884098682367584219059384123133211263847590698357421878940608057494932853421674417350774063559331949396842783126846121112349907459649691839189966671585945614017961977952406954805289650914617661116358223745619803354916474349620166614835429712541978789169367538955584222434929205054680145111248443108004587298498458405250665231591082172160492583040745676499756644562739898238466819761902130310490669172314488275851896826302390510123748652330948734292166374913028310818577180552445069615867112806050708897810494563388144649124407704287140554302999647199510213170708434131103325621043395653257562333701921047250148108618494050263974047993178474520148878594664679978920143023066594311060108764914816662964081750990057173812506756491266689390137143457265383881891228978919976492363629277228119707864248349650523277950829018545396981970875938732952316760119675643531744396560634720864175732179519533425789242514550105093871416815017703204762197791678909389722192467991309801691295914235906820907750643059538888283834573594886267224328788308092598654259914834751659031752856945716505036104155894340208987588433844623973465877622363257181739493081756399589393495746745065327701007560664604854522455290894730946741078844046215405098355753371560452251599151051097713033525069046722192558802648366446762053499587128386289462216728296548224733217697257492936322377747873646758187506481722532160002204447711613113007045582566916876793700019352323027111992140207681292081799886057698840408773024328315889371222402578269131925996946982528021253194961982619460126317887810780725042415381895821898157493640823123033271770042204803507529012531180326132200738849226562817322187585882862575678954562625158539149127211921931253001115235315380002723297487506978745480475467129663436485155031439320976227585612009502786248953784722959856189128416673005145915542269582730247765235274155832906232901168963393244196240212252932917930850818038094978034579486552692154427582076671044222251359340427702063474443630290335602648533118585676369152618622890095768676096897121465246984999654794851771977240365139783915733547860825975620756904339225370332783744212049860456943471380449397755868321468973789294715453334914419459780998641638384737498951737175128694492720233863241083629433872409323659306230635418861449360044397206796485720185918441550509863952651231620151157711718903111970485831924741096233093176836418730009428625401067173938916471783433020658167535955133221124349402288461783960461719013778927127269611734836470994265589846221481778393943979266259557518607619111014235112274298225488123034317596044473284023174191347054998538077890160956424659316086351878301304088163852261947400826849423876921986230562324114000801842939524367943654542568265023654293261334476923859549206016280927029294023411708613150126843501444118175088106292169198114454838935668349386259367710685396074572997593560096281058341838354311661394367423198606120101080435236355709986101929274403668916232308482459882478533078107360329084837406303256078453953056006663764696872806040784278210609845244853968550690269971156111214694738781761095651149541724472293851208931389755730151806824742687211741588105875093781418909295262124775882058970138593301287613996678896735429922745470154962818328667548184111679342879902573207487384864116889580648374452311542577465807274753684433383757178394737761152617773651381237544879335946331897061457928498543682409678501786845950859146968747752981491190452883778001746453235126017962542485438776825841687690356550856793011428617319204295736532132174381092047468514442301751672299021288620802857215642645427084601230892014136593228654569574478570709909593191018902001974019774340429155501938310846581058777150535684544416815562337965048664853851360754148194127573056067606605686433513022928129910289829865188708059363322755652798819876744964413145146193296589805248461079541420715518167552793931273429977093226406960853289006236154023851706884413097228497137482993816560946362135672199360299148381338687644642870006291099418747058559674848602378353469966589900234130847643958138450889492065800943639957140504663332181234664032036719824639604363556286917930237120561719191378978213757992498798696535253175590029381964325860255075497276020551478471777289005351473081552534245626637442616088232201701299356846508240633693066779138426733461166254721211487757045077051494898814582114208825636962619856228112289963007300122347215279169184220764851541598573058616355194644301567866243751076890550325444758854164634149756615562768991019586847780554505587805232080811784642437730670056062349797477081060076561560958922261505766547150506250593171617809252788420750364994780363911375780456253031606695643948286270415817482558701662270113595238169895155344719465752430090392073786763843980068891373041382562353776644074028827791702809317181550166473756864068137044930852074232261362026948338368498440947783629560170722107314061864431216463753649744064240412612203227637227354421067346959681008085227184765685967706565299546942110808952012974159210899923576046574732276019406988542046456412807804155118630595544329015244408304056925096516638292082367530607332757309871983463708939988146567516292730612510811879536369696599896311197890121118001464547677425066130077799712479141870707976842791780159371828457685323289783709052566665738871298767197689810207742707862841945649617011039981012251797831158351874166119269285325401920645395304349921054359736965051934094856493618368030355011997851724109521487144512990412848055118802488137438234913695962738466441623513388403927394626245376935779089975064694805812498963476303148304996894046614092442518788421896744805956870211818497103862315304909005277668229850782213321572306087368015077165836811507563642212726625334121658947654321284275210474238751471660303555051606924969210924635723772221714377094881096852426445902027132404899558448304910522017442187438345651847880378914179335279361176776371017344827203374541017413744923582953247693349115737980024922960176641675551696753099785040511544130107979549402966402582449180710459914881749451540341051756495377234679816161403258568085931754303787737664194137962135159676596161711119053090491117758567463600240723717001712672776276182813034849395779774072700513036926073678608194696152659671319591872558750544815596361605258256865565876950109046385100653453899107575209998468150163532716710182567517964159786875578712040344804223904644163620544441812150291533916316937563225808740901792424173297641562731779194006951718814799749130617769351832563331519736560521178656501973476697664016516086318831252386684797553985706985962809725920491868816204701541048530953758682328300038100932818832699015756005346167231760076185632282022111503771565499783808968662341736127058093508235976619408737897739509932605397913230668347653548202017632815598632812636424104167696813688294050435701801649460009761125415186632397186424285569137906008582320525762570120404283710860807214037058402041078623075062588561330690974341870171793644465215012792961185895396694323457692445219662260758075911582114580531515621275432765268766321790797759407581696532363230575379435535648101272034237159091424961602584364215009543475688237685401229730927058997141966123023727090837645676753911827314595594726494881681720114104556266683378902928587801064026480451477234677215479128114253761992442957537253546638768997789881910450753761554273256484154691953547596807245700060132490169747451366486289815902323271296981146723260755913336531600680728091334335972356006675606868623541009134854341792408070186258408984551442317760639340848905599300517527911865689594562063551536398055394277724595100421097152878090299188359390985741124991721937809439054787310355071295603070779044700971588804768560778619024806523891960501648696499344250735355754107710747896169154041883632206631042608700523327437628214372903087749758497731879570438439693525724225693597593063849404386827278438958915902181974018809529203942630152463501867238677003615257137380104757975537401419259709321049988450980069802117634699068793299773023373613617754933593728304028340848998846667819017621322952388464003932249011680229618311576216683763655916789860653156954558370099595601891922269336761419416748260504081357690950912205291882289663322864157898353809538567203452621018404916705423143110441567208148619835076942197589723055039039193667242481470823171961242816208847702244223325918188637959286269245726434873412551418650885382531840883472345736728081453082515336808998179235367334447266785959536997973137841675889700352335397675196157587098134992091755865838174184821524878934951346592715485361952814843127420325951113912656855461380784206311319025935551430622195377200279312773877169028420725010266311921076680002331734630482803831570196020738510026588640115236656925957095611394922022277370896108914625663186838551318633062172950018950562037006308331061995290454845044602213948850203631507841787294524343891982477093763144755941326476787117598892299997315177482190630897775915873504337331818092843671423316145485017876120892952220774888675363561331706838936145292500762969986593623543221193642971889508690462712786668964739867602029970493855213978474737265319563672490578348157240330858587367902725504027060222849377011334749451328335235681369753629161852044334079076652721646144382383444439652899817306585864538842744515824713592167414414616887430512310831389725616801787218866854811610738090579186936212432165049394764159171380784797069006504918840547276537834933218851189044050070124711755875741334389033900209180640466308521763520498105258687180891457410420376939847525878751619622805992850624808023206491048157805884717542130162951934176278710027708956932199221886133941240293755621490529760331636993672824064871567745651146327741520036314164803213890372482480918280539740769201143286537680624214854625407568498932525767653326636318764636899715759552263974103098116699084160841609366009857182256500148372718798789765906574854480926318137078011347838056061925787276840542401576531039164907540293823438269267175005104298686063629230317357148555527119786330897986535709538542929606007223200212869375598354893252068664612106856801534774538559596851503491595741652901166258599775861540423052924806636667442022966516391065799016745372183913123972197514339305266385640669425081154739406917036683059872712229343729013135340351722646468709685552072684772332466786355998848667696596788275156652680511538742112335322422329001690495490859339620473615174285523701637250959316223219711176252575057879321605826011522896887418568920156335210809540626676721091295694567968180934398385116739458885566364399665608473971076076739068186952493639616042851253759813612649418068069261544130563176974551958584525230795660389816844303770765627394310244882235794723739157590031739332147061474193469965333587980110171171033396798289263902376132113865231091062272276382836988384528155783654494167684329144535369735636984099292264235015150452582993181716606337605725614775662867941294265225973761519720207959620123366819174396571260581147358492445946934406853373347990156570561221495671106760699539992056408540310216601970794748922955577690931938995192627089842771067187707211775431979530999108579627284899401144408000775559698504205830388861625911373135735362534330809079160414225860647482574791742504740081280084388826804056071445443750895017590017371627450869800463315123927921692996355545984252541989676148455320968327835862249615962981103286680957786362486022327336007269958954392022154508189700748009268077308552195563734555814106998391331366723223887004723741770394314192971291807667545427657637742305542540219409959119073782682029585181685748210511314374010273996229938216076269430730051761226983110348604520729468056364271062897781637650228335188367452421266099068329505666087643526493971635334823973163485634748484399514988645060082155810925826475336435002757688816788395274648616495621297033232154517541005618132644628318294619400214566816052405281636965014711881468579199065612780660402890022431798110348188729899290968103265963125309587824871390787880490392940801404109020206595860501877429167810811806036391321007318508827544819866252687226666004455418091223830489730719156184418490118134976704005532419325003058906318988342067928559975075695033819557141159942813902465018813906225414034440112307720092611135820244949000254945896806461825375636521020757791139570635429521933076247678154927382226920136895184295704643683191837110971900961673881855555376717924506877966846081505608712510244231408900547948290170996269604438388692781044692957776042603476344130413574574918115536035125806604037478338168930011644353357043719828688346726689695124416240602875959104855334439202734859963017114442371075959625179857334681684958616033838925409169497984268391307419339636898499482031348305151466689305726621601695601027912859517776240600179946883691572197224168718535482920328304176520734876163889024354659494714923280436952048805448211522025159886671300670134570514927650034618275206675011201226114311727409751275229450840095331559134415212190350475049654734036058504821143018637175461519700018267908073569380528844612712378639877185030027819232023532006749811770386563903184691982302180919130850706050510458881757680108435590585562345957910494334414214085824858143210872651776766523006044031233928327161735023630179272192359798416555679342456999476666300650191522736016425696394885426494857367453955530279384257491526123365051560862277435529156131182555492899903876587817774055823346663989577498503894746572895455928081211833379402934238203485708852287747856456928067485804752173968128943495371995565006648159633177331530641269604981637378337129499872502666294331591702867154481106366154150891684073046529031185601081605153939666082880790030442246708376082811182923369085531429939470941264232297044552261616699922584607841901571570273345141727517943468627352927756513165072893506515031108615614268160186961761215046477504755955780958240252124411642301124211331256494848035967708851167226748185055125892063496873993558322920402336114572336067761378614870967916180262565931699050986351703925009956231414709769984501845826876058303875227516255996981894246222950835327082026130397599151893749610949542854722424170031467644850611290810185031731637655092875030633687251086327306991548038297251540424041450004916312461904497738964043768820595247129410979106238892506638655722498367002182203705459652043828415892802755249598421470231994230672065345488171769458628877263896407689260942272331228250265161347173493321453714842533604580661661518957793776320152096455629583023222433331991113257631553056746626361091423803418740773716889127412844709352936674125501418983802709750872271359730171815611495871479844929633497423636798417641080921029132853449452780450826100772247084788566761182665041896095149660062559937657825869300858043216008310188413764975403205354816989554976132236490968376207495895521264558295902087494675634382406353907873734338829944995886999979259668167693721823446832420112150411054187828718090895279507063234885652769636732057438652608913759942435147437831401071383063893616939423890557906363428553036498388484578460370660802470420199015898838480753668349006715609450382117670052289702041876293941045321466729078782035013020051561660250105225923965394687795704049052813401360784469047132494615262545669058117951442222022763379138605161925246207094240387064328678397360722005015628121029066984789597225095418997134489973789185215810070883546325726582987590395024619458788109314874404970514307260450633870064232024878861308551915986446884513205417997853399261170543610773881261241266867657855184672449938679981450439138265661011725084066290377626391346829079315917008511918483673205092818148046737419571232292964149519276222923686961329189370568805192404660516661653079294847024719868185289447283151253601975711995577261349675202281296417905459285013863374806337944162982073493948432107000863192576059666927745361851093839915327164056597650737671294987138199857824913463969531036627731885656706049816253345214136133460255180966804312160703102975301825330042923512265603788313756608216050450528556263897286591707969604026579103527670529065115490377166944526766683372774225190162933201279543971081053432473755597799122814209305655977091653769938828261308006437797787848349379058515691676582343405456327723707539434847826066470855571220710981488596273739828043335227011805836226295364268030771954164140638521507086768607972882148537983191106093565608855268261734760941171605763505910335457060902352395494113343615399497838684037793394869015362243896897358827724386626218971363527350794071942183815058116710449702073362264101942794066247230649479767429824666397466378177300327915101580464079985029232815199360179728871862202894205349792537422406939043327684563319519777925565454169076056394292144340334477027452616084090775980384320751222498229764862964179170539822669850294358025318479222663524161871225344563158201796195401691736186920479886416999133513456863821956707464981296450638784928942232760376751240407215685916629812809668934651722519683575517506737863033904649840497421040359323322858457711912999984795782104560896180922782112191518256456827431955716845834224635464015231734864497743916632603802539289805137552563603765466493407886950531561981674563374472958636045533705472673848039413430647731920776548003394978771954915317687535715919014410921382872791533912691360697414841515890559616750532401929666180021460624586622924358495410060492621412076493868458677305737479100808711783834937220396302780887173179219885328401938231575613386022731649452467966612563820544844188827192844554072273010877606739064200291601393492584101234305794160649604080982376968543656825762144989666105788488075164252934196672506846613610664251921513324582400103714639065468193516533130379433187504739771336572873624483342964954298739420585980604938809333646161574774082350673295096515264674469017074566227140026497659859203262086399398741870309515283829309255863979839461943792385400959921968984651286809433433676810356983823709336771769058452489156785469141593024764594224534667165131967745314770273661860475435691180599692860697329846412187973086884216031452252257936036256905668933576388365663172975041701325181276372857204646997924608495708377868768140878233409460759217390190393996205195694017817845639622121608437201117619521223829050333552561561232076808104404207552184415241622933782038113533940844665566920824873179898499543726116923834889027022741341685007580457691403657258984473598526113761080959215466482498829772401126058765722111144849147928050327347614822370312720438654603111444547268668438700601631983719429655077812417550069496598055241488141309439042812980355532872585961432258801986084072504760066846077345736453158318534972165376607600483540055780182076456472533922175331841510419550834822556117572272278223927555109973243578655254931195555620208060492936625113199505651470672397687905339138683591784204283756033445065331948380899616771687415056878880896253371787676215434631697533361351866239052066721862866094061988045521462696884194005576771049005793051313347950807990687746772179165569961419046379812826330185425222205108514290881967957010548932893472314080996927741528454936186834961870889574168346662022174458491129247538551418274260216152565235511237203945220910160124400156014462968004007936983731195283248107212294010111266806452179458641103735921395918640631560965199369956152509174802070897764000306554298465457640388147984320815270605854196491519026393242256983497117977581185014452931131387649304378631233628684925076317499665236130860097609430653595820971037386406180441871881151776703950361878405198316223516724036140328565145628914791212917832795623607613204588857181192353540357960967684257165133273339655248380523067145134169801873181702858169737878569275125394156286725359019528221383008158072402838408549772974036704411186855971574506081836069684095609073383809019724642735812087365522669825956975843516448988796927458328373705248535552818104671669891113219396496628046831327833127737612202547880228053083825422448925480992326384235962660868767288488534561731627110927232147293700963638493336439321140735684164512902782426158554005156722631454254718328384867803423506012487681741459164049600119123380186656029562430442572285562637569067321805666829897999402061209070899062403760074195640498165408539777417834701302362979704953402514357590953082576747458498035671982511642292524795134443200226435175860779246306895892088912919005667146845629053822651011467030465262283714290800542743539273140537901026466534306223647735016351127167821187643671489375467139060294768049847939708731424264866336207718601079989669973654463231549353226866489050890991260620461093851551134057019884666100153446953971344181343649108132206085664059616266006108399058396482667458296128091592938640926942923162488289047366149663014304337907507221339089965275236241621635715576667582584755828125234082518972657787738216646638826528577417047415373587472149838430241008665889412303200043730068191867929281750244552184242351822934458155206939977567598043714422794824779221273187416176457084155510233497619489771379486963086038953716118634441448700314930225112008584262557922007969174359996551300407806490944220994141749888317965077241213711036477742795223906587913281928633555368947642276863068085872937578655703712159972203012100586297054923847763487570287545687798543180375963796775129755074815864873734601353701652146860484268914900028704147397151823369072484202430901967039212699568929948728197028648376082118322684208933540914365632580690090028336490107478056844345019754358461586895330586380716942725506336545074404513396731995184377803267206492007133720882547803503374551026572377178545686578838706123240389604264641677347737058534777129330463194206168771093693508319611120171286479262175584150708530494388123854313970293270742679955250298760749663798302146199491631976670395646324361471972034438459330077725385313890402760931671711811030418847523313896344102433893176559504845323145404842214807870354051451058036054954065246475221319634519022278220966382284585269152784576985692488502685532678105111244418653333443231618041354641668536712969134515491892580210187071707273914363841918002490749995581330705731408216142062420835763791925454936119943062134523166850173110989855492839409242956580454355936660438933090960308649107310609378411365593582206366983969625531247222034391879254061970135622356051472997386875930806627340157905090618622159498486460205499726267637338094272320471877040978021938071196056440130992584851931948418612160853632581796604785456194323439813703198354844774029624057217173872450500491497001347488546968900565591067705324087332463329341226795919492650932952055865765168225344071050769735980994148193950438723313079221876395309518370866846930551919983394590260548928575684917266156951322973252032944832348976584712023941978354627715573265223271510086516569797854071248645107724433963512787441203451043566451021182281923931933392383635864923932237219926429998654322775454161236743768312947151542447285275882463096642666973180155783450829078181137362778697929734625357635611155554612023086479440883833656775661573855170885496147036348547288178440408716397401409101994297623778094538804541031975042555289195923375517001697373031784354530340351362565935817105990048913441907671742287067955376845152999038075031286357116020132247473559217234828660104982781881240007481587558415592986894233116141060443829625759234158860706008121624358983274365675698210820659511815781952353922120705241954238161690933413543538509145085237655615035736392113346268630437369070725960934614183453079009856261837615270087981007251582108505654478270095096318414138371397290294729927035853801552386470895946372125163713158027585862838254365847602487081263833384189154510286438297717966547127453228003892603130520331480466312480283730124161429923821053639518380402467924463720089938088731934801603525939361043202678932581378518835780129558312807450262800144425715335910189268591307040679995657926744125621433876003287396602335604490222150358690737331220818123846274142247805600452006904582908316339694679998399328691712981914729728236305430625008381906579353339338119014197204370464799230956318195177940413048377848964443275905712428391192950590252424899892319557569440786498787598688987931929896662110248079478634559184163526905178786261944482520287444332205283190276947573298226428826729341608659572610193845460820081033878203090544904929828861522295737074828051301405097871807809701744577634603997499033716807297422482311026753774877813372456391694116306263283677645766218062518386610379809137666617498354547251663505153949702794128035469343041142783535141051777859546511200476553810483988701817862417786570453771881098336518730838286557647806627793183959110084643256454821289633049332712007044694847657575734038612571460709921929723600183291226680021747598600013038541952565438468490299231782317921354245189376129096679364396740753072643660723886682147689431516828171724270268623234281707190626514029936826503177323160806036043301985100641957742785391114832644478775927024113356697872931957072788726107874028910406955185064815626137191851044928322853400407633633353501947672160235262928641178715296540483911216337515992922035949082265565072638342495064819318386081974539939982335680240326263709349924908035461778402918621848404024869416015438850866542678329490174813530191179486586286902238428941084195612110589428596937551216440992386252802614064809996261766094879180587885029754303184338286754642858403922317698717771252417642952145293515421108904836844787545982885112812750275346957141240994457351964967425607911138389229987771075264692385084666645111358360036615966751700459616841473810097065559983794682426609732884687121896547942352942700111368057389400606380608539664877745388306942775173399395954046979984185472609156119795672847943661735207039085744514327791189411970626094675698832091646334125542545031257797973695162757285544159744424455326000976868968511176510552180761083670295666756200108707244802142228418701027555260769664524406966536956315176003064482241297838423015773840343058838872584045385170503504499965172053350101748917833956153299138526076344149831567473640261485054235622822485268868103545349015552826704886999506423320052664780532362370802995453997834670987705445381664655096069214281497691406684738258362899475203001890749927567590412577392355731187888593114708049972990377431268147039998771443802224612814245752129444877359762094375868719234569257982836335134367511041269465462715114794116685549117728050436345837577814212769234645164541906314912578215490301411981704911942185916509104063454801147512463044754554164375324328792754554876800932683631715104527333181641544675113214441724847707317789014392608387805804239655487432510677469057338326180636046300228149743323692743929826532711027633821576524067611619525051433700611025012506226056550399242270395488570331015301207955596996233199866411084843865935753545976880031820501416311173569672650969946729624513415432397167235737094713105389519356615361778544651057968273210991443581925563927490080700109150377426520237741619849130633774307223994897848491385070676046069945305778062956156679908981756567033269812494859189631404420453240805039082990668878807877970712740211903739586012432107680542583749839937585767087607386401792568104955857395719656166046717023944779958539433221399592756796655406615585545043066277462066289150172748255978152750608703815000849702900448154055446184985132987964337327276126469664422993606993846389168542393603812414393817260618852175948310547532636439423142225953408005330886750076819032778191267273726876781039946960222508904826250567319856353776684028864640976325832057097732171590776918767962624038415175653804806075682513096700884530431671806160953268563661210371986566477949636006027997222209458329853473743210144547525434355043015505156763275125457181239677418977219410504470311552002041925205689168032859738712809036162460707244988004064942819032953564936551744870222307546417083087172948715584651038722952181923182365771126097585682724388676348905889059104522592098674343878648442681896979478328695897613323357337221605694454368823080985968409793940224409086292366964940123701833462861199479857933222116013423651634375083848015555491260886697514916140144373156117223335610085978997529691938271179621314214111893355146093098132105835303358437473052505708578078508165404398121549739066140324028197571694988817272367131349950437224644136781304818871779372251540122015105467502228893929280979592002113722917798837204130825770604107267392467274986835116165253165777499953489569048372633607512933543899772751250645583232790575317350026004577602146573145349343623292394499184955388238163253990241271707697883982155828112327903790871466787385004085934572427792758449783009921192551224238861442445747590792537804125795990950301757168757660378585798624162158535235674791468831108636030050471256450053846291113616699889142462496369989216849848628465952219325142749016747911109254616386466968499921602101098428828839775311643486228835421950922169068479390177886269709830750405704754479724861891793491842153654524425925919378895466384208430206670489894316236573953458824053062689407724307886000236601815232961961177541840679042014362819077097629723653161754223009650618620949749989500491516383629265187075547449043546876435292679427968654087830034479112558431552411585211231149127955143049517462948814285857808167915906523272819071655199966034089827728020144020839449133465245519918218463100933139860374983236436956890045987398202389430493686561465578248856982156048967068146814823274477560654538334307834028716174935873872563442997599090031364240000811646187263220154364968570580272295518915450459204030689163314529519445427582811287051596308070509370166378257111483933919939636887969825040243451738078568762471082566970553119844315848997799354296912480486985895903896927568374332770743489856448181718976518799366541407925506678708282664499700567731947299782825970452425974303758338660557513915069965891029092393283480897057925922765673872429212057915565200813799834206687702812338157061978230444085658224939032788925679711171756122673255717003886633458009486839580483280251574331662743242128031937133890693339296162700173779616014805532306524918181249651397011027810917643445108902310841061623846730312819892785728477740819772727265122120783799302049988535673199735902209745773045429479307854320895255213273380044059962996482476394067501537799915431040807529865480778750360431468331933785761086787265782445929840370775137971346168648478715272966089081625602508681296316090903087961918746988511186458757052628100853741566132268896176358770107175453485151367870997722194637845427751937626771239660578456224286937084689544218560965980304331585249543123598010816745106181695398186704802795479380137269513942769608597908679435397275350179533132815927123374943085776435459931498390841041569977027651826858511706735979058531646426836885722404966529185972878548901087485227217007367207851134900391874991063722187931907921281547954255171453502197212171770552132917405932462020464873985328301048427972530297296203685646198208175662513235663960384273850050784647573312967086866806492760148929448031359193252900617458362755269905251814086443922196767287709094689406394574833327223142707148384675117817071624414279611533542793261621332577741941193501316108858013096067518594034312863730201713908837073212835466851845562774893341637615692460024271052087509156232143241726124670673428304752335525864171922323057697819523336202121525947110551924268055772582560631769405416739262006454685518237692479621031989202882680344781751891293849461233649917935657128398759428650278157282978904590105668301703454083401582898462774827719457325675582605577416718721930419367443355082694013335602135793067118713630272915455066470128520876495612174373704152022800211850107847885437423910469007913817289908498811300105680103561890010416863497800262049679791552527464710356662411599979784087480596258933090126238656516283990798452823014889700872918426422269300789168111776102521371552146973175201043133211823219184608392752310812061838202228738320290285276448512749550115895454685999682161815787469160483202435362107049514196822055275897287797487739905427020790190344217716271391960932880229851733159746311366551201500152253919086678322385438819991998327125959462947880125802103083304559660587066819628544447035597024185183066243606545588849113757338764392681001194506497124357396987240256518131002376267640396861033406789317347416179693401006881187621718148575881401494441008938212861025366040597368733156448817374158496425594817314884668624345599044212720427879410391351090892826773826055630296702002108540740078460619432741529732246742954749493330171982884341848804067315795237591478426950783703223578300305398408889205490256293317829514260416910808889775682168592755469534914487978354153720643138729759065939415764769785814195266317584085129600355199918322721384209062554213969128125973406416436500813870785103566360733613357776041073717879630537948837333635467638190384552252820794305286101975738554230290316673681678579217716688583891738296832035455949063089843874881995414767920458000226924760701186404295658325916793502797264671343716486385851033027721561396556093538967370302506023361270259720336755422934605161820648874223104327264731460165374769832065971665470188113020071751015982284642877073849723773970910097360026925350192165739126585865819282732240511538361733504759888014661357910186113122554971009152088290184241305058998824952122953225255738907323550073784504452571094594865422382344907310978369707567513000570310396473575373566769057600730716946446560403226348673135421759963580628598023620132832503786759873652294086704715039894454942083287614238122378805019854553744826355860956210807341132490479649992562788253869416316869371989618803918232619925606217658735811235309231348645111491367816066211620185935700512564716268731110989443386715378858967756294860583633838078071164693823458072846003308013153557130478716893541265466144922517060695691515429529930068138931130916374397277043409849630718136050924915471147809062170891762950540337197830119779389870408471239442583321641352520697057731760712095085019124604262711912905973141595050054769500390784950331542015000945437447464216616097258115000830999563978386913235766392525889059610594861081746788171333425300854023464342537791475077381933668522676262664144340867439344565651333466116967770526328189618596419831888359774698035728530515666854249593326724664912596943460430083841239649493010752926382425377287722090552894155120387878681796006791711406867857542315901245836431476582097988821052150616428301864923568094589096122105143310575406143441415575753869869106635353820172194863529398156084006827809475082652490335530524711057076809708541928075827634087252676312600543397591303116942572366698252426710331889622641053327459423788962713735251079014030608629093218902201308411097482773354261483115418226438904056412669702495786951042796081362738271586658318832736847115302856788066753109490629594600209111497950894344917835722234984427701020724798101859505764515340115638164494185670831756689594165479585448543790549223110549946488164481359456163810024849609948201913664085580156442579864984948262126047010402829806015691465472131873559168806178694007145190624152026286145178554574222452721365911224235123406274355322101843181782117547203799633682841182777328931845708772132123106605925368098971387042325829673855149583721612027548500026113480980988387618532493973849790434052696582726954705974835313545293390424047003713664433847307180538934461837572166503920572446277653498023430131609508491092400983423093278169463031301241682042694673067607664646454595113625226225277622186697543762136165377008289461682724664427389196310964434083272870684574185874155741137741686147597161679959090241901402315317873135321445910234564964570931449199669185882562136056859802727399066158914427655135312300999947895453617809875374703460300480582128878355096657380328273468432163708257796437900066903218312715064778322965115232978454165373850534036233669213266612722740715338005206565348802335059483399485578195139467924251846832840247867279024441637304465272255023101818656749246917591914390943521431822041897885563960183895269300572237208054456305244425073747793522029450214469076251208905475685977868248322335024067079008781929666969031416218664221770574070731821953374177422410167404156632071492209647448308154123555301040410222752545838579094495870126472691280459089124481346061092790611400790645742796882712154060128649518464361532149748883460092983938216082927435045275177586347958492280919451530859284902558637479831437944448094857853498867696626234832750270766343725974804698855420498148274073989805553826514713992007766946486851574412881907296250170085389073884426566878809511050041506422365974998263015195252387511994030992681444073062731644845643179853353993013558768508682579753604867687282612133993376397660419072699986178127078893657793688327320025929469149322618105991252201284389477040604149516894993316342877498976079082831744566384976261549344121575602869626488696610422741366363622447319721094082496621036045866812488452518134992933297198468494357502100715791089589573397218748629569267630401652137906284420374990831991974907938484750578633756774229697020617982188255305164447487848846938494012023649582444533970541549550817062202524418718694125357767475981753569654192450459032237072947342188006469291159656919908438854959684981510351140637688697908855346718311637464285224150771764434851894524090796385196470343037258559058123188989796929478305344827334494411548218072928623934242483779481997465020761035094998633035222914983039456212411357959156860799887866019068563164672045989495297425021132308573816398815625703422758971881282223799629574824049975575528024713448326885687433830002474549705223944845404011659758817803035046069396337251760329538701588786700310464484743016932628101728574440753733364416355814886457787078732591543887921400487843557828030301939614825097682616747556541460644414936146601657896804176425829198091933420059902375889847522530719685961792312992506414968312645752842053557895200291368444961182075900679244694112516422675560486107669774212140719862195568507627069552783236888543363269517805095030796748883817451282164118320442464770826421232755315454815531390707604997214528931776353856571181935472816176665842272896921544295257318947023814104334040585554665098894647395423314473856802060311463126223276266115491636926785857108299641394870069779320875324911513285051368639610409423821470861221641378553617562427135913406993770420694843706535688463206926832563070390834896024619207860565384264657245137668030004022763335548296944830952857682606579949586141120102122200738958352157062314210597929947466671991715089222514824585563654803443947807353214801888267221928808208683635667167693922741431596031494335046000058778186355555997591846666536431230682581962153191914378433787131011710708479579077787591820366435756230890754458381497685814743637871670975103690389194753566892446203215977775316968390980326081177391872497183152634376044937430255282933130506043421597647825915846034247346431206539768633862407420431498329277447681127773634674618000322357657831294569480486853988594470455348977897183644484130913694108340104862605517280707418672561496665880394771762472460973109906281337302182213671913646602898664863819715329343709656392017365923337911129088421576595632272498840838093039613364372597593125246802296974532511548373873850079708331468954166861974498466865947294502912860543553511891954088436172406627875118123161351650994732709599046140711835536925993868773559312502797284509266446309151768136921401565383893488074401345764632978038234474552591925567199262816338220830548060755106102272515356276541742835297301798948697766860179573108156882794225916254818733182124022466479226107344559229198424531953159865989489959780448624800923477866047920957199923650946441848662071676891304564745729905039630068173528029754921308277706787244586612601433937904169440542576991697528681745585808650774507261748419050345736850116463653814137579845708229350571465177463882890782419420529137571690233101798258492063361877262143773004775240684830503990148995980585239691991796041076256252487418079725246294732053266215281008906557445180317978453684104932496174597868432498923005138103625838261937769055805626101902822626251782261298831650132954279983365263244149562220419501983104380582211575818034926825418373798109582797123813697419139522626467428954837420743585667233679081398746988031099203356865751162626842036297271632957985184139693855087869369067077048978764815394489015637118672334062292127519005063913592653280838192328499517546381741465107537499733663890728392141920527105358706109141397225467656805396411041559518845724975295670781927383102173482653287216237523809911805122634177727111986672174414043886399622271074256969344475125168773917124658037812121858956187575207625723310632232424265632374052124981983507441902097345454982685798399133689343541151498485574055068494471134138330263794085782166076200980443649801169390777853867498433926794983031970698843151429537700524750613986551937847749404701283266297567758294390977043304239905961119497075788276646211865391388606883368096567125018752833741511527210301748919109168759077796259076782783416811488709479170761431585988493283037723723485552805478331587053349873003047140460835222028153244760133801586053814837499594669633594060741859501102064232210632035767515251320527479438114020200093698193860698224423145833220584667976990690577727138770757278393214899958144952037196877302074847016933067468867072815559280128418255285100879985181700031556210669147758678462705909573975981136631666243137584357334621629825620082023867672260221837004379653781503926973416449256505619687680561629882685097088999552020294656641179138771563417540115492542364608382448310800603817777523118101426754716945847696202638345951222312440107099362944823519572535715037878183936883182531483780816007335881439564268007218716125145745014561120512618415782084325127402758890970805248365317271943416790788875358960228083012341315239842158063798945785165715277405068584449274491632466961465508704255580546856250367616852309701134132160558646006979212033988183727116555375066734494286685712181932677683814217096133453058583398493425623873772690150701621886912948599803629282522909338001179735415364879823076983288709704380041959729943350697337922009317885332798126252653668181132306625890332833943503213914500132135021434297944488681565500759077897921242696286241001276120700527610373871060539673972711653815043935612151565711689496253198885803702362134677611829203003924923216478684791924283785848015406011338706442391458502472395317143627838973683135534690556140972126522476285213628747221484163917280902705391011644108858595226926344012968113972914822843345051701931097998614865088886517834148174579787775198452451723500193308596846943536876064921255253460076697277421201502069071533159082425205557216792168831243070163576795000858591317004500275341676910556567773085072303810897589626693493983580376643344280929605195601796308809377496689168240014151740869251804704003366811853106974831336248501978526434547820290237771912875931669682488034018778549836769126860045942519507179612418882470009797661717753503988110108035452186021072799096456099198207869779276678094573698234823235990363626206383880175622844686436913201577217085138745213554476939579271464479175839201746142520591020343297324231973699628663866377045776072284679298110532170412966228580769294193739032239497593635840482257226182973464790805287412468065144002354128121850660845198020643980959519604512517306016662976792250348602193397939377906661235083975739816330411758831725844166674508531676066406098116190852536993031319781492611954253717362910705141484325394596571669540129224024837429442526763291475186119927771225744502060102639012500957874731062963668903899435169222410397017898103175646962847126673305945805384210000137764859518773885547815237062092844967473459472485504308184725435588899242746752992444836222364672760488970314881846468967876642902383773195347970732815720313459145147737655550668912840245517730045259610053079816294858145242590070819649827289452913762421366602889998987082942164214720617507699169301460291288143733826905991871843565842542385331288338203061773849663734527733836394118726564244661342604186084975856730720453407032123386539765930757660166567001451501692641379745559847935239592883911356991182072810146283713353612703952920594733740313682384471269998470379878724106503198450201743416223177734334815044308339104002406382641563278245428330309885491998711315995039516336016301468722811741764438801839766356630021160299871311979601670489520297877780064038001310331299197211669155287119998576229041221755660619499884849777129096055428035891386747291318569678013925836865281554194216562358552452473330387334640709583998423955791305354702299915132603003489767949599776339978117981042306268986971204860538510552917654871804094243308052361444371283349153939165558794393447281224774300589518292051602459532811800577005659184392781841492201266588123317500908546159340048651888596517427877044798685085579757881618039482357830672047150273048424218054319920088041325264621384231322153546883209235253070254310591388948177680975898681608934666283102983671525712553784732869295326148692937997211711857336927044431581203966874533386923554225915817228753154013308556065868640484825710346025775589487523118042997599899814932362465242208729371431055804638001955725614516573441685175936580846973604908773602208189889744813499288452758640046483598066659440293099119864451799355956803447391907568396437517543238421987371126449824472691983843044796187200894609833637424066884820101745628603166256193480544027289195097472929227932044553323654552850916880305273480660581293319983536449450028214740437584510875024289827964579633871850430665193737828717723224196966291779377891851361166960369348146576102344854759696297564757876875001325201106482851804828194824762067613848905595867841487575521058904793518429962248498105949480082131057058177095090767173031526968222923092197907835364686280176325382072437122753503507296514693094160230999675478540794019952866524044454839603861436858275266143418068931226431008059172720678574587502503758882533359661725368240156305969516941284641036853380527818864816481395312225359674834875874422927520355343838646098425387437996212149484259174104291524408465949492299718286832546743202369649404202107834952624234781067486165004343429161737033158997990321985807038256677319820573528364379355227261352181625780685802120476480256008985837968970511380234371033654063469667694049044535069250080658597433729305198806931187923585020736353907098097073221181432361844891412946133171551382558468418795491281856610282519641973833178066519832769344459360943006234096745129490746982779650814770308907175265011407540639487775581857121507500925681398718343357130823982044697197817447583556807109889636464628776323360066649771301676867078642048799986923577679488561543652344511321181259542706433226152296784128957168189727662885841787755211686714830958302310564113217901848080348889610029309341218541334343273837284235955413017145225379489804968873903889293988341672116956366275917156377334556521270174770652534867075273410052690898107605295805255347800612069153260619573851323050838071452862631437687587131537068535676898376965519910062332005468104824508546661648678094365391651187348762191024304009635425803560391734842546354787928765474791795398853614565292236862602519400435373041080924521211197911325313319442759364291777107229931962452979005902607268600958912323401594041637632628255325344653793998532663247883626160294581208507478999423263032835892522016346964963741626438976702338635472782610979112460242115835528543161927331494754514589364883696027192122435581710916389788446908502560491970578868053614476259744206410319475736892388419770977148125399796029996267339632153031868466314874903462919229843414728177690989045163267866398805159475748979761571771148413396596616710523400536426814838127708470333199699602663971120807880653182552382648502290365875916428613043906651174155408843912929492779449700572725741329521447727758383829418377121845068859906584599256622638861022950161411583421963737530410292325584739158308699907349640655826175557091399611217664913939200726965117119697323491119299241131939600378886581878830660096731369404181128598074705190953532981381608823748268354421983260191848633237014741517261029585654869532424825746905388197123328309613151792252800857582561686060859600802174593755129120084689932890866539634197011336374409782820173513949986374400371465995668595832031276973052522273779759319106432545202436517917728051594453523961810443710817512366748276351295094089683765126726698038699309428253702809823623024159183606670953820594588616355579182677594339726376347501547337633497992012620412878236131575444526476687385462794289759502244615517812043909199167113380122073099721509959636353995618366170595654968236104431737925682408592143128842038494234480301511788334589370526971181941747468029140155540466358558497277359258822146926358404206141155906619577498061563281521689142202794784771460672311109764295746377474564338508616469225475111567370249660451373900926948105351486855697289536470049459516453522366164731301318286291045722319504071597190725398295616938545599757833044282498053921664126351556838082171527866936457029481543807740661964857013063486533385237211505519503043919268987773493861436885000262658764616849654150550493449259931516673117692203033001610596010200400927353071885890560239412640952595234989934209711367292761923075508063987894769040007520779682030598146077771422920309110289440190992008024813292803597324001981955788031866795199041071211820166658760220862957195818809624767594338390658074136925329785494803010953347867816127292733067044432432224861647574176757494689362813444659250840841830938602946567820357752368510000203841585909838262484463207070679977582374596456102514639976016576008021494629123790700963337369321666258319370073212991237325126389319585039343912168798334971745211706162507428918988627715603709641601718592377648340281331449428794069149109349803019100820483537531259230599842445147372418775370381161249331433701276102058030451913936966051591435938334197604521953678408447678566969001168970352191176582906880833778029611885385388454290383136728359250908920562157796903875950091900110879654053901413755715295987169351775876924688034299789146477401994764024211411316843361644121493313297434463210612401289175700715161223328248369949891570758197783549193485412567925901830425666066181986443953009113311061677269040924748219842709573674034376679269215104161195047187945191430918895043186180704941532742492624035405868199955664731431446999588125430967633516054400492150936104647079650661684387913477106795231692802849511838652511419484212996417710688292728322129419647281408185182307461984349844352847963758928984378833685727067366924957969974788191010130038728872770037521178801544025665821510713130769863330480444612273259664854380963135709282548928387890071262627923060242461920938719554440632006767446300323367955445325635635728275389440769356537302655825066635366657330905059246557851210783539404944618306591289175965746104734712108543877224059547771218440630722869869613236285427216933611360038647566401365644156324618261606919909466024351183704720789596851691737458650068869417703360589277752491063564973667320775357010202243712599756475116534818193622378576350114212663233662832911584929571119487551337988150574925815711280950985629728069072044526679228573525452757741528811790340093676542766776597617650800084579293962720411132718209623901655474494480089547908845676852529819904030471809983093581819392813878567720873184525690261461514337349058510104805386486306941886102760536182443521801868231630712298300743047147079364265004851529072503777388210300697810583110945163272812812103352097238516484228510234423539867169058159328895595076981676649167183347560865253729235439569142506999860240040338306021910892546252082412300530176724444095317525678983284063329847765581310689319206063614887293504268749864442165045864992529248458949272992577597644194583386718970797405329932225702348473285308338190019192879014009031622812473586612181593367011697337111258058498554145468093114742350406588794362880802767998084549710435668918227236989543695288992290575286895472099595205194939659226166726788555858444573136903130450871614635041042637441679039510910195830907880931179737389407370937014560658586906129994200828261219040686216054784373195399373383334796237892305248468554001321834315231611847807032068891737820091818520865241899152084161392414685472294590269803445862030763908205990209316416923466802084511144863402760077787559231094835378215568508803195647429390543308773889352503775689115364592526566617537296620702989158159424947034642085805581910899844188586516534440723516428254707066274970861253915885581295965365673639791545400153784654531018358786281233944491380087466299011908236039991388172055117885464860360629632355760472877639389024276334738060484510486986839453498761816934940170945685855367853205050820155267340845957275043359260383879547591009937699478963805894495806296601569404513353354338507137315198300003098937693361680998019826072998766563129340344081316562813840520860658072629857411651607172543965590592823974713813307259059459229832020569126512475838967317223649371749974339660407408330317922425164229459916935396189324333334052851012180591514246431947515458765637052050231932430808763278724743226390343961685265818738492257414154982605376999330769186037899586759763654771453825123445252391294341079546543019112852491416305819258450647057973433065685940994111948594480262292777481990193233622977504807461261084355641399214891616890357071626295684778285286684732005167701554789248469127869497707683098819580318563783181518059983835557121982051094042059147754074534914357372342086931653007055513122258770173068798783286119586185569638705017266036993388805389303482824569535597185062541355183727526742253394357222446943718496174006423015297855453973380812876561177044399333252228594571500689169608071018792224079007521496975915201008998619677479352858711715316242872732226898319690201863336928484075389901119173289966359428215864445276465795170335006341645390513844441325106157381797553120279272507161216078903171000282400846812056780030092820502907705876113761251367376793100794794359741610410116683535448298441627783184504049262246897898608836825300330616582566479831211289672409466124351786692720732998605506115133679130106430286385418815236459227679470189835901741728033073254188776812398473556600942714055278086030491841730042657973799696100483476567505767254676735969362607826504922591665280436697445045415916913598705906314379030028679751773614243000573783079217322170033774017538815820103065620123501620763482138506640826112083528117788120679943365036687034005947044024718506995999183622730448430307617811306909849666805243269933364043289495351772791520642489498899756533912082736079528775882045529561290665002634566787148489988364221784329189329012705252774021231930541169506203965418604639469738143261148819323769174090771090296113014699346414081600552102824999278766925649125403291272327654019957346366067461454178223043205584708863505552700111988790873521346404952615500300363366833699670183455414729002332608642454129002208245528327236583786220343972229966543231096340046957675993408381651273501168407335117837722285474209122275852848386564378322317144015757354046259191985882029594300763733686385383828935665333329135008316257341442923692521221988385759264533275359605609364366835724575086934117499317011615869522190878756687738040855976111009907192707269967725520186225204162743200788338775687835129332099823953900668774594683574290977643208058835669169835000456337561659234320186652720758693947425220393740556406269731228272756302879156006159980007187038181640201350297056435551417153111770017105145691730515463698733039884333144206807339605720884081272627681766235672697399062560141366254117726519750409851918534968424844902749760355183170641209061625489425736021931507885201267413788222937156711325520068478991097147403871065839032985318945869685216458001388384149136163494469166384865791084037175367055186977926549302497922073319607672476837737982540800826140992910229055966384615808113504792056535801231365870062544156495882503249186661783887170595605184316291566317870095507270534832492416361084535617598243133538177725701018497224445532137493158798651554615902220590667595052213660026012156852297364549360077392368187241302396245376216216361988104634399665908328821875526380374242138244883816373216044865648337905867531148323207010270585775268212773728297187136268548876992489675788123746480289536486153268007179554505165157560837671003020786080727784362662114222029925359489536212548454992149508570813511978621730451686607719802848811399959076985946803363520705413732449116073988763486755916589288999595570543605457895163281755120191430833320621259877651074740721689052744614926797419494705674022900433624295771947419423359499169968943606469567625357657861829867605867597278232754873316628399103336432280149819019387397542985693020446258985238297699634854887115606276303214877590037838612711917737210120577770043895970459775243290358793795096612051504805146341351204936472962002791632673108595394347562430038552751002854146408475521466312144197585661770045774817465092659855799054751563219726728407565692118699335307053807871875624001887618521204819999543891629203484689358815250540751910739961845473630386047556671710668704470801328548802028067612634004429017147021624830159139215326220676064234147927147964732243429908801095467289699845441769754066063005113098618829509446313891536857985873170869430613703473145991300584015972079258187849656287536804005544489411094396454175167088620742276472490014906138821719032865656133011186281173729236305779233865460824725407009332763033501802989472554618570407533108501277315037835873026861919731315232813654987553791474583838634278461451279582119548042355199249576583000892870137320164795176391915312812722572535970926554394597479295944682407458850543465601792790365104830363162730415967439500408737900686464349287413041141727137145105305833923239202705315738674448957578549263677580472782970311674426395713965587304257498517258008070365440073963528843683445692780770174220609950043885406786660859894431798867838898754769567615246793697442522168177339883069461535226475757526202126915357954987734066550242195312341998266047332194891706108759266395460251695004265730866864099410823813031926857548376730295199511973596972062313521755237685725051661886254148377014597150837663743093837010735556038404152879857440259895368171304222019231610779440891809058752652100993827324089408063149257159657364936827092958341677251975237025689518509836979934365033759912549208078429034827890201622585305123428110128476098706851582422821457979073761175641826135647118461494524891343933439829031426937496655009372460673016196184737292432590190338766839111610376202154899823315174993293378126850241846823037142438894567378792147400842606870066894493283348078573809564670097408893496539606790374848796506745945167074978512370467060450007049189343743344510737792786320778589730684168678589679601949874753497771172615147358933791772030649593386449552216482196566551053638569174397034611416411225519524543506292061959245125464915011419314489099386614336311833851408866281554509040772180703877821454983305000525430947857878772301942863453171019549689538790173127865140767225522232652223329660786839042343057209965938038642656624558524904951553125691738368702098314866472130771053982688040848553371317376636683842610292249484273803871798324249102278838841531151575699778498649015621470172449472845813903799156067836714737771217950993063422024920244787815396490310193434288593220995439725020322854122574347332240936033184739218247017375552699700785297395419158041154763213462449979894114372923768983590737074695758360132680121969534242555703229661145642227700958321877894504770627306590123181503954741684551172047318924182216859935310819422296285820937937042295021514939672692679076849719107143350057481843243966217356253215731303138559940956941802340097185868753780067452213765512102216275435597462058198591137348547263176746805693789201230388993752751699618614712763217915433546870457113156825459119107889973221176038006530330436212602098598630340853852980022852001557278945792764657376661001903388901885237154411345205745148331257037494351352455732209343460839431953974235853334714534525327676096786804129066337567947597355752534862117800020962075340120851481114750058035637642183904822189827509812902523434068318094542810148951292423741373704878835663652557272304325698983721408406130502329437352822180215618235435025370916211812847113094776041824380601825909780762413670179062704703963657910257900592617254267258409729001847226048875685141542150109653064645495676141865659846019382798359785787411200742055874672219255267647997543981888874322434399987914490676848594300337851316331783215895571092069171893684388275153227710749861974358190541145900273805613908693176938946613173281950308726261117241720379368322696492896346171662408056951093590817441456457087959353513799896796825919059827450465302352696197650437305079920832537925320692780985849048220508055619918147001752889701836389995888550302597226930282772101417032292095847683457687666464531825076110176943689384317210707865207232417040207183440911172543762655288326049250966312664264639866565870991341460508607303799657336475253395453902917928137676167977746030343314168036209904982388117019240715144178894031731813970153527339969621665600981298353548858555004763915941694249008337488808055704440975479846308342616783698209232438501057370259473026284941973486648484997494402405216609796306451295148669586875746772323684974186763046550841227250542892877315589343075232641466713607200991962545681444236275156776978474123909764779687965083344430537548190242599039709702356043938555081607505821126616555807734137413161725961377864657368086628492010475072859602040611845153206110027367139130868676737374877297833132566091333527610627222591771397855851288961568789332543942708442673204296579527819299004621046903293064911813976322101132933605499504095408375777661466275886455130181834841407114739244324892708255257662616995580760068397329799593275813100385898908250124814659201547671968770549933751391847106326935810094530120441038308037845202095948317773495398695178597957858484647041731513943920099872636188900520585698376628832906461458172550205897459330707627110362142370973893432507768776466892515000295861875402515399183444193096926213170172760610420482399713604914294956276274895673833577799587120599588541382520776260204577929388616957800547347697764344447191727830059155842957726641788761082483660194462124906289021107644014918163024915920921902786035789492240455427759015289207010228379487145649629139514321474694574896044582927851190269828049439227671332144094924167777885419231326207725010679176427708305345722777841523936513860315310808747297064285638684719091192378683298383324927823595244505059794140275951830185596377234953488509018489276968589224357710411051698189870503006768717969540878171411240224551359272048038478492247946531042641718614766265477365919790613756440820377676853974752160951805495756931238706527213507112256214026104962660442524081126738105239121358059490583405498711769614725595671346576596764333999888295038127347479621497083605849840841773621780577870439020361729958303332707349534942488149743590462897179571416830145312289202877609502929711070388192664526095499379087492832176795994981676629843340848800439442979637076793206716096192354414424208774241547892865980867102459004474228059414719260067130864230561443138980116638718622158746668927817760587494202364363481440686616338656630504492622717459732355484504532149771908665761699846031155276034630667592777415952395634475202928653727150450696191677205388029999030524483119900540225378438706531548289179142537394873244522951217056328595661490372943658066197848453596150414437595363493185908606444627720944460885296384935058947745290671090455388467388850372579034918561317857272950256231846342114848884690346167677800257305953120518265253949066894827694859757172219656608803197682845026497230410528934735631828474899000518631431358795887412223288203268831617717431369069363726316754562348090109294268081093200440562718372696567780642343359844907747380110473203208129765194810849578141067352079009802653371714635619075906629801645852911900545966287545426486718941464764742371501439922635375198193833515259119361426549220311834648854828652304435228525428327862888372402926991091089777561308184848332434271668397007256653511571005365627127648858145742545513882382931836985970026793622463865058018528483044586028620558164553606043546493840803628759743389283954336952131616093405455645385928263007240013849854461120176187935232503430792423882074843990988782958842259194130360156968579878560119337432530088023042337351088347817700037233273545716150376529007706098896982289675363812894405272251903057834056616270808679597044217157851916942491945359448520998711820986288817006295840979100354322521176930491160844834582684608516753161939984415420565621872654789523282245424793550052321146320539316584376268042187695178132722299068168943746523308598126978405748023120130403165373743888200898057170093264112112602741281545817835145641763403008495302339757595198184505924694052699433203133485346042408701571873514434881872041600389979474796981639166220017354277526825977290885600996020178682460585193995550714394821483656050500292598873785635892766958938917978957723657452272365195379586566106316042970765176924101704101586505938294884075454822557992118840866407858948310011267807777230124065662361130823811067842409482670765532449563288595076142393617063857602583897055171969436415118348478890056163069641034472952292789093978445884035600603471009258899896432161966490971231018538217164563345091736003306226885637723786635187877758779748761998518879495255847198297418155025690337804748364313268669451180736220267711296191328653980965917250352335116658046880681969931286830369906544924542314393599827477523089554353869644145421610362319643025889622137514596890857630100918142989486698758242020160753084450935637612122883954198087108542666350407115867772526934281040252894866905824082714664533311681653838050014325674491557277532589147918815621327880733541413285678033088748740077682932439195412260159794310672506081337386834809776210321664801493973816801205597961577943168118725296834040860369178041748383317516264043668500361744887196436755649334419535075616514733797911711885316065497702987753059310667015808752706150573688350460766483076526219374506789013548705936053107820083350256656014677425523769096595172667640848441710591486861001223047061139708067444386048479723946844917556621317140528869438955316712790053828222594196377393270551819993449950457842263514774124453585829343329057076200718724620512230178024244798857665970831655956544199824067652329686621325630573141723452325081876002945039543354546139423536431686612543420733570494042949944062220056354985589333862947007579964627962801458147617786028598877100836772372380503972246632946866944732015998097748944473162209381775716215685101463082872643883136792826299129142379558950213430591853544799606280486933061087662494154948378658653941582253376279051477207041593256889758205372015612327371072380260003751086243080093677973050897773785887017906931425121652201600694315080229326723276704339611085782892254191920124731412040153510343392941590466966061607782802211420915093235039652681154970090379605320419331801727075122024270294059822155837640219042530242190022377924560981034969151286837853029531927504590345141064962701049287647390424594469737851544645287163609336858197901087046974158397886343618884010387930366350513558972394407233055599205600960581189588905125665358689328156952869485484520381679225474973512270672283830868074011769010874164108991955543469618862475075500320399633938666055371029896457435148880775856025858069104146368753056899705934363201310201108500824144357279371663752871700763941312805822960262474602739299347881259634605685619126416738385987609049767482776758163497041941972727467565018274464782384815717966331150404719694495427873821678262856657370578094970595956205436980674605126408780557052176826307520141106875236378310693355590212961568272065866516805897737611257699126105741438500875756764150177539925306863985998956680245739050728864562277782233069066371015634267816028231098880751961495443272906607608283694117728874865524916356097649574517094175007181916423652721916751062388717885198804782346582425879798328954257484728004269733750737415730058332519857935823096367172284078291031694321717113588445325346560647260146020575432264779801701062852605999187142808934633333685118261675457056500023413541252987726853770717516690359972588078981539545547956352690017417605391122846356675547583120423581891601343771424457240004783812297928219434979536514030015212965742444604812847111418151122768218875800572423183406812153800637257996685201724308644759062113599196065866002943231789155809576242709862723608581657408271021696014455292132824656898006473097163559670864125051724603075708731161885044390679639659599870517186751637148707286878387865216634127531769939146785426759865594478180065988543170988809857501361810637025900789804680570678634622631013908865938258808469513857018029623093622616929460020372525654567771244151167470125824425430924210920825334002507880498869591842668777757856063165433623057945772285246411248299362015086708180412758381209271102474254094190573514796095969633503245326603644082301646534406951192400754205046483284281239646028956849265704015921708131072078772259076589426306700746875004984058169000192657218001093889211474148237907169410885878007122988670555626548667709109938793185772972914135279500801666494404092294326390645753568288504263957356873947787725546882440965696612782424079927826611419476949176539870125255676864839797987836119004089655667976521338293293651288606879790242313519525887352076080848094347926096210130634615482862774804674217718045623192750058381720286169716949085168033498378500113786004395889043023844152079256359626015838080505338547388767282697318354543569906175232716250480319487833594076525392673707728979605652360591902274461878688191635575152737669395081209723996694665720730967482922019975791003345790030186144455040226115390584071117277146246237699549831312375140261925634583521835045934747193272307574969164648532393600060233714502594721183924669024874770375720092967151246461178362516411340596415672814664145454140774656194333142363870123974438839507514568018721997199693728562303677582114374164091254399963013865593820592400130817115476758603305529424690251889683922719513749046923585421051647615093613576825179521065898766220804713822729938944776366588670830603010030919092337395290347395310046218317413077811082818118370395872461507629722957203881311836030658637663115093833862988032973066553526701362051252502080350895072201904601702058718997132725397575348396261919224065665804282625993205729378096555254962782481969848584425051504668413183013854990154530739752963339606292107131970701058859225812030128206315911384262396111218667647121371303141650741108966665419543478496301509253816645516682847576405303199759635152150867631167195557853813475165777375958697992862661809774804019848709359577921386140951570241507245229725674953767832911233717499290101666104960486588912680199195305743226598727056563677546648929606935628147320872677705855708646446458454558055844370488263730285639017594081235614711927694607393953846238142412827271243992160334867329277167721449451017981871063789453747837884475086474250276982505330781236253171338148532074000042557555735766900001692127965784232295366310002185266186214005839509014574566691258656213558172924435608495602678413343603246278959168741578140073246872710615051548621873922966623322747198130056566169384054025578636844551490054280505846904324269469391943277701269539047790438184782554202617679416068307507702458774258546745957503423717531139671149780789611963466871639569829059919581052527926697200709023003446234202924893259151830002710771397466468413858662502255861022699431754104055909160845441644537130245165782922035225556463714690574013519091522543851107308088897577126633837966182037567369270136596024270975465266380187223479059101577574296777952866279688067049160839409549420918613652562479461141145663389271776666312234509949959049614924400175940661189794414864831762969114524772761572945652343255847997691755458242754668570725086580015045135885548571509850335052381956468417840148088808548792468550492217728833081602443991615518802938265091461252830369228686191456532106513983203727904756192803610762516623541573961030067432484308630871302091766177142769609504085784922704150875309306985813310752818758157691178932586648287070163063477788415229611753867134979320460538172529786252905203704694415116540350209402292160577892699829886719487286957336304277471914749979174379729604026126226967656087213537519367608137079758183639723337501606547390048662726320806499272110445662741775167673620278589907080007894598543311056903646326820044069313789641784623015686280715964330749411225152772224633426795742457738799011190787474654506937123070580442193763908242577995352146108740366224222750569954799956276160548229155318684929274312723747040605039711622624146402207333921067999647155311273575365037000632781120617129512605658533858091351290855411658707372148978737659144972512762929430559265681353676278970166318661306651099113942731667739288798387683320246777491060734747235855200474613541267705705191565346444559577796046871534595568728571499447446383418607286774623766482089487677100418615108385457109234822162281022467974621491991980358818880416051454877897149475380954507199760316915087132967921875304393672034233951802341157277395452645831250489919389069496009341509563433641857689242320518517848933520602991345980637753735290906597811300526404205052413279902183546704839620141692989046936072284881650316970040130299504513347360667579014769588200891563982564371667322609324602026859811558024395386498069104641332557536358323139560261170840376821640902723459798997717124370660456822354533422448140042718770059597093769050287025034204376720893560531974210242057607245717727498773363365115565378867445699368127810920836959117271779713724308428877423550386972519465363986370128683500258613397519488668324465846450358731488946485820147018839759299348554825152842657406861977314921024689891402283754571120307859625962622902624555577718533817365429217655779591271319944882870839878622348912770705378843135376971111766951176312435014901481844356205912303665873959937259837465987414461868009222438646379527630723871746029289801285288920614735479318610512469947830522835236854394397227546194651132006751624609695249482355574090093995962355674354407853860490310283348181953574383624056197321177473806515528701744557049453442656954096297592902934879975523954632307743406835760031030022916745723328088505040008504788818802417044100308959305319419925854227126355019739210817457210070010328197716979279540523796029672501033476245574805762686692572773289173305575893779047851591920342205059014639061195850468216702793094070817482897046974529896066868778075243105881117940642718471874598253929628805803526780328992212381944669048021509591015704211590217333154477549397844466818669777841430162490987303041604116920083473574879043192363242151459954405234388845686671265200800881083183662344139531159846465065082449602735806519656869181178886002532996922189111965974328274290010738911641432266024758018915426656941009430801958986413158357485940212310744174901796239292875264887208343873666556844110907899421123138438233863581589431214406842358297972427393002290189181336811772491512333368600384982599576004155656326687468893243075936207282186860427828811706340468009423877987241578297880166013577426858036387857676504324106674372769328555145409645448167207187327266427009073488877321526608599499474685764821671495767974973998695261822134526739300306031071657352847749158769353317872894786869039506252411003322266844084665520691158592931768024633261799056894662494922625426492466498071913653279352127953715687265438780117033533349492936055272047962686155392823322410360287812645216370045761194959492464583895216571359688672361788856174887044312117591663011684102103569569238479240986121924430543328056242140242624183748887898720895854150427487791852959125428008682523817417217885278673714205348266902058900332528761305173076323774090600166049752442871835140016811832920012270762714919238456161193797064817284775268538859797740968930060511583404027988644099732993139682078118582887667835855420169190584968467797140669258319352861243541790165893084007817431269118616098591105960490041632984713753017481603500787789345164538497573559217801512558919329863056536108013672885105492340834561157372193537294641884201701977548160472952759364881671872779982525807847034998332334285594184918294388047176737684349014230838905345847730453494623974772374104586153225486075377341335605065430203190126092327768118545771478757664008367990706607112341681011770491553879718993085403515731732682753564721759450526031745584941395586466287480184727559075038505066832238387042646864231228307768964225225876734006281511704001565125256104950924527487540776446645337173038265890296515350593872710609043253980442831836853611201602500867680926543314306735909373635785754722148489553611939013849138515768603616311088247310955926799319778876858181087349719587069966833565463758838407595718267068001185000411544621038697385283680364284928520403293516297111380366211761824968378120253994810908806645584556738847989024612426911826760599465562310219696616644482217847333751632242548601865503829104321337071878400114067622021848808183299543611337406393044758807060459877830942554354419050528489458553006858553209593867036021878581648697383799301636920956910869077628109022492188880272818550057354697421026715847357822952629809792453394498553116112483148904157953056331315657024612958115671075346887477668197032300879278061485596079148343274404192329522625613927769443267076111435488278300220357118871445797975886271039281889924761243310225515795893072014593245349294113406368907615367084449785525490071458265717659313504621098949833312639174838666313526622677158677304953525085957404921993906665173874585957817571470021675101839641701860247750688601265460858727855627058298220280988112761946297737842077370613520982638637328466381757329801123301803351643941978683450297689917172168903809052918458038159328717427678409436618480534123071427760938877454421663354169151748584848380774979962292696590900519627770455214474952747605518265049874274185989446337152389287989791576566536038310939853613251300833661525216998855200532683361919552326332092298866745553705624330978623065589922302706534002674144998150570948315310911153223016726225558926455886435227935812521604938775544626946415863145806174940104438775942925764908954733822253165676132925736901973798588901254978662838699088620819511034527392675743169183363126103423770684559216446330995331239816644712140475016664185634682542208878037172108176153978435141416162356454596001426499183600771383412057779410943809858672985231802273170281593541038986075303694435230282055812307144327278434706059131325442650985457426380872807536382471252465210654282470085869845488116408261308828439874915759333859305008627626013832563895335131888882004903310892442869303751160397220568579874964585593270510128628215254567594435066339221676603992894916799471463117481919643010320558881586822172836835615221280567502898189768901438035633502512647313387878208832539848195684741570099813298364786773213144055048530764496036877131751540641937191719697084924710192241889567452841143588748879015081180567186528031426773417124662836898071926109099626784869977436216268980922852205170887168430252799752421400094190998367166520240632818321325036365261191068869656245335370341443997273975512530436540501565676558228793141610414457529093651197392154622622717320461701421264432716203998200495965307672565572435008758777570203650788667952503802019701566371312456247122851512028030910556586182404858231082504341229494368173801876343598241483806666469184539341318216602258487802183629186867183832305195851182148177370477994625858359593895787054299505921464230790905128441501396344078005852013626423385413599456181556337128472902095544981590692700584252575309992429310607511465982274777223723451380233939968399481058617786827987479978439788390567842707657982144438320063291827320786130008117898547015948016818964578704472879952071394084173283154787050581003970137492768721914326768765018900991414551553212605848947770463869844404883496494575712387771534849182758116042766746423978690763896537568137640249313148138428104335608971274561404558401830454382468805360487332170551328249109575761015794709382172265858147181909353062041284141159610582045848945193033980066151273423842706780905047508912589519098014693759070136037317030233029689252164235006952508899437799143200833715346700562689453458299892178046424973188879006994037838408334451931178663601181689412680337003217620279898499041257910552775743659896914596107872239191107984591349607993989915892204399231782968184897734208990600221369150224071560514705228077561590438929182817423835133382160713458997703665942089860124965326947443199157349519273719341482833004390832436462643758981955906649168768164119857605050718403007367627168792344064042704531541333387813396278133504003934896722393108345680233745006318751461043405418691998208178008168296307139607494208415911314126386922074742730834333834048075391513803763759786137555897350036927892734693699854980882427617784206930938491879152300528547593976715342578300692658397393365356557263589185317740767638364652386952423978336683972056310170569195390179291662525695240703145873111281911404205016610491843221548546872671689715721202212249512637666229373655020726756420437174003421977581575286080525674837438930170712601769007311055801291874220708750203760310452425998667870043118710123994584429016268594425317024562123591344476368036410291927844709292266501282622312670336199173737448025222969977660784283068780391643614634521963859657280935368218329166686247873879543929711554638796913952270614298120949473972173435830149304725941308346811678666929978940336361555299983163033884097924500313571053316900696858662265453358547953596480189356712103271556874819835150805289809116987815420939010564714625634581690169733653110214511279348877770370133518522422445748482568970055182820591194753997163709880993419403988633357132815569510337040282752113599339515870139505735248335376350740011063945528562419603133490970053429933459436063043647680039001378610497115548492208990420901412063258653117069233997236928302794454665073561713691001876405046763978065233259279341576064524921916664227201092340894618632176287489960926674918290483297907071959891703202738605883120513132036733820784158552545181893077200342233745806067735235974151949082863997167052729163387438323408472448744244902423926541529686529604992176670446882945500187242353944379417681056761202667442728520883489349352708330723058109429141334599404150374359562360761800005766488616841613849759850395039729920057332703633157602741755680261971447499885721159205537837864339418197782480870977135944458894452279422293862857798617732651668480081931676972988684589292320361793132058426349374347675690212241288575607832370043105634993461804023013591178425530031669396167192309009085686550676785649818251200885187832795897194968476526146230352034946939309927121627023840651188361280389626798449035279121051443933178603980925159599866132267776857729013508659771673362576484994658763571232871855890472821331535161903705429835462446312227606307301343504386368453326245185280164653200842135733625573622639488615815653188181842202837145774065829432768156241723380960428137702772485008530045824524792128026294998388626188304304561984085383859152171433685811823704595667192019093262426304806181039309650466593629279149892462090894133677428598688660158838364683105666287449855501458167550946367689811733842777701868840913861487235468857765079077133273026773979961491140524222190519259997815993718707939959888259912960584067329996287505412526614339149915385709263097222239937408756859805657064210291982566282657535210911089125283106642895382663364582339919208068379386795060011674724454344009887776088834801846325645252893714040649151771787917600988873854012919900320542675466050624857784953542572970671599256568569435586235482807032193498232931267512523269066970404428202475627608124389398671489564990140123841367701674626487774589559665869954706092140506641134546135875137737966626653861404204215513907531231487798029828890871400743607441179496682327980083693110757883328197581881266686973712509147709979893893463916145963797824064100671668381156950014782391541934684293277395191270108101129894767790530271187851195357087036790730457594700391661054513920627660460184507085900950891247354991253636919688896761930731780008603942984959377235319850735025977501775201426534579773808308215528302650923539975184899968282867674862350149663177883674712647638712220765410635024727847462080447294014869608041488891947312622895351609764282968924906538250407119988219132374563441800826305284129103390834339242645842065716483917854086173922098396823118077623199739654595411665324536037796144143450574233933295396869253724266827638879572182441443481851267663822283623556584186548513730526311910965483554135204005665824411326092107218058247834524745214987352294655572745744913028243840946911803327599227672911537650170084750857637308174522606348698666377140878894272889679745329302418260683729467000435007395235458323332274420936633056219892646410319496466304627262779686031949438532065810469551613673512174800097730062943861564788538741126666235766330478979042320068083242785717829016953935143590302231299982466887946502356447125204548797450104758977192229399892017934502881448290283851970803930700613069889753240560720712087096362470315904305084575518929720648313038632094767898747244693545511774665777172243352410944600820398220453858202231347624291273933149332469777274415993169384858196226291851437144910260208957188620789602518484924622329455615290090781731270599228292425128685423597877335700774578133236759845857739492912237289988428139010091740316032975991854585183761162624577803320600396327676196925631492613831264642870597116031478363795026365660329769653837753028913885372962268752784572499952325508067763797797999913230755916915155401411678937286099043530185938719227423014077884306991630728718276169941396023753540622878363141319120334504008823769153602937990654281552323122977033842326095651551496496262470811932990072249893044203716538833254877997526608109844443284850661902713163382951813232855456137079324269877995980048800084537007607794875910630153839834065781931127961409021406510447869390978266769865112423181760028341968829107384950425271483313977927039315615079036796951876917298952377178631456263302822992528193593524729171849679661921654920122840425054329092294521675048546726626975684777384112854276738984483530095145034236529440443642261901973279806494905607050164484552810378895515609800154840599051701460412072130189767042512486799321677049386017065255791341590449574310172472233916968499664633384298281218896516221972482330291382118168601879774818360863198949619276435107364510729186898007545249870525893853156018062522281906574817309202361261860946638772250001372022748100767494107184593983976961976627189301345203149933665930941369089212136220558756911946936595862483551145652691178424517730540291691129875669061989082309972115511174496694533560921428959356263975591561334901910578323180030917732420183407664395567563098209654858848535676803558722568947422905398509749151108709927618299814502819163329285135634310737161963943282607272913680750179672027332878190315010073801427614441666251764449448116842164383016352750917473814015671037501383265510806133866045191388438537221482625341914687249144996781880376201040879082205187476020651989839882800082803169819214172350536160711193982921799822207433987514272117066443791864251091216857936091109966840605129019423917094443412194193927809367848956687178609560805672642235537011207093828418923322590049943270835812301147574874537291397526451720898627577489955349149026103229789435723847743727820750341260607866348270284740160078782188643271029889957975288238540896392358990955038539177211455547490216185650353261905365730797917962373808315524809606824213471303804488583656167803900376694742713921461590138713513077986217783300902332609502136180340101624402101163682964215577148932606059545566970435855518872561763976969528576980686966592347302083893097178642554463711218372435035797003806108547245734380137553053087691486959765629783131811460917475571271130233007010178577997179262771420178848079054970236189114298985036808702811647438472258003913070154336141626705076264580747644090289078874502124634914385439934270677607746568857215347483934244031959169132535112134518306827798082353724751639639531779677471757586625747448668739401445218622559406805757560681185548232492340879421645512434970809651059510271994440969930821733450070488849403807337491109808679785942514568831625421092655482949146841880634741456316792631791188294603539594954936671919074204194545838841896716145748466621736734598063857310507402118170770654835264905998525821407833341366820616642617691865634754648186261518039353424922498672836270613730236435155297356674891874358093721815514317058375163398850365613016212036533267229917013729128979860919969008809082431926961202363948902478950089106348580634178957684532343293790793285378859673065811948513586524554796634124134832958462755870661324364787862697242730384681026295247024015858006868732990827170427941241972752116123814471689528025537341674136563207242648422270211749767121460323282136114747390115822448064960595449295462699478576726288444017982238817374803464851078500552511900554801050312819809179354386757737625193336251981820204206175897838738117073074284335478397206291954006435504665455430539683156483704064633666596511579123641731527200377570976146418634141369437043383762788968603298383402808299241866980570704973108794691644329645454731283427592653218152564522922303892820543352523465191414796477474578019863097814228112790964079516775859450554579491453620790229510981767232412616427588232256016120664064798090842696180984820441411905589761690204718709824322298549345755236479125451482455316330722569081454629959332069849487757894199714865153580516680659125899289571607764519013980851711298490369059286411718343811781255078062941355653663980173640697300113656294208372176503159719426842319513148786165122290603297950460875240559172673850830965928439336198771470819285354378398175112456474418367798265640899152897841272439389171661489545225919634783984314659938951596986221108525559589130350326282807889124616645679523893101748108322211797363192861566412535963373007079987153021290751454248086993832608372304196289497624688045558033909440094058825430060009846492221789731263627552569057859709996423031297069111756335570407584305717754842426596925709172272104359905509206289777470745256402719708752627524974963982916086771003383303580091223853456891140365074147115960287399886525120109626024747454623461282804320350276366622126632310425562506840484298744800309607107209234411102677857198320390363836540258834471588458309155913674872219570005524898572197339699153317016653094577602387263708543802831993982292395825169787884199247315533877817080774746138974422463371530121716455849208553072916117132289515573748306355602605996720931759752155949048679834539820139914998420877579894063614649306552291421852682944147276335260214170784930981915905507552152008281936955255149192385488294619671882278697994677230796287092769101238082811396695626177853369199398591858703421614037147148705319018425967456675171594404651140495586837016500286592005269114616427824994611788759031688073219983309411059834310847139291462821052980476557910771665516077285046201517869945390533658042084611312346148570089994757010927187677781695752147699928262555754775149889818378089622702886556881444185996491363531756182732025092524706416575152332788555531449479420642059985870372841920481063269887685926988521437787476256131283280902478170847173303082497491058861335505677522995510751565706037715574171553160008084111826826443086005346769584739498017925274767337121403602452027179883721246127121428385094463594153311925420110611535968521281993791212468941767670463415087054137764593208873637842129141817410623471193670206581174174775623424814375628555040020756382364405622177198669930337073546560182941917572456857418879012559120818559799413351145633056992786300789538325035464465075702954572416786646327874051420694648206102237360968818762924730965524682257493740073616474176326329126025255128673737648034616696402035145575673020576193846611260019811316501377549350700967206310054366450055062842217257571102451585238454208113487382532333852235762631355688020979839204614043154177120609395210852159689344400728398465656548214263506270244104256329240095588429874129247172058919615324970231011537055737495975589523147554061954898431126579832368742072565238396993973115262340163271398829186281889217394429307662617204426210827414976900871537838794567514539050745562346793433681064052000326689688426884794601162055635921149880185473927783655347004696320805734968150451519988283219415497544191590913945897866836338233300166772829895377582167213263979290342817572750304722994421625775416675760595557350589191968898079114872053199173332956052713013277156920910296351331707306143015422623493769715831746922738148445747896744705491405339282380497423976546751630972700995446888110423709762806842898144761049654005077544341548256324628150789357481214081179847199714628923893131919603051257114433926134052125474252046705960882710859936488411615506970426560468840079787897778208987403617207515014619555661248433610457282688302602140810354090917867781310053372674773427815735560017582027607618136015851282351505876983063454656885720892591109780694149820764517766896893732244646862448274794818847906272434418191559563713388688809895520971537954186099614258107530052910787299688579617488100165247947807198586217481227108231486408489034613833449133491471063317848463020393347113758932800462668261221713917507067211952490425701152214038886607013077387730578502746556455448145789913590848391163675759073582560007663723673252651202095663753550731847091525385269155059076501348840344449357636976017117097450263339822392506981928205382468159453144391734773926267939997665323313642947152392220994119363826923535858824088917087407948979905377536496212308446139619202418723205963627031298129132576275494542283186920376466070881744730111398345248383238778108459356324259493649319967348235855260044700741395563321249254712771637746665140760331209833975101577721588317371289676677091341054697681161404802742511320525587798172743145377355009573990575505333541865362521187530841282375859042593392528421262693316516848076873793162676894420390736392472016341431081079631784245152641558914433922176001819434515551422346730439660946841867059847178750737479240572081776771983805787520406799185186019563998389528329850388074654894508503269578849087697193431842084212740768076097579202407795063913355901729858997990787311731909592956995137599072066671685406193454745058701409932394494934681716079867752438392278009943294047580352038560997468241656418839602520354690742507566601563139880058036908080489514985779315160200531518916629756336953495185595281462722640243359473476604420193817328703076206956369597791484536404329004450754727654001149077730714146121604429991218165783374733508165770888287059883855654086828711583316985388095269608781732842605040064821162278076402892981729708549332054872399065864569818217333301202506174090002575156046397250735588706904557015050388191086092095433083123371736559212426720034374127010725389880637652380376381450693383713561790871901365565902227421942190394137841086136603844742200398690686276158477533614637352563568922016971306103047240494590674553317659260017628786969645403682108424229024677144163400018322524773998983458853887238207251824597556947427856020507828853541972284139211264798687785951140942279639025510913379347867700399846227645328130258664278480191531073477354713021150519627277961017160187794767160347887409608768573008744553641740730999455644088726582012177326582041180574534596063204530168749513611363779337144377202010205891111956792785500293859179787031597450133027083817390174706278369454246665114363551239455307608782684981027657022159664103459072853286527296333848029512135704814971431299000077582219965671687928982125045853489168849028072670726397240560878788987578054109188871305732980273589412362701018655475153938380982301454369267719823304438742288291222806811093537672608441119768939468079645371295266105385412881707237141893420137300512283556984406612986915551506921303307954541774990814893504354623796955785226640795820661701315453290012340819224899280707098273896001387432516092915736917760012877064620568437413156025529793112212332141967391685498001803553429001830216768122528797772686797711311458377884719147838272759469607748374664920571251958013545498847673906737937641220701861265481159937828148924933970942340237038339055755776810498376411214362133835122830122564175786112732594733372348577953363936315577580016715624930709072345131936517262927550893425244328831963831920998993054971144818841848763776428128059191738875619715319415774249496001350495751622567993763246003774154403901288660084654857462923146479652828865120495309543419049186686709429348396768393555344582720921404857522090563964301815947379384804545782788200133127296113545381370295859357597486393641700699699010727545437084241119690868013739045366341165750984470414300897945137640007652831630981228532608360934750067008327361259226419295976090228956753562173810585443709820165446713280673904557841951630498630051040465368630741190527527573127498381665896316258830870678720762910579602309010445661488729243017051970194932439289434251199045774570664776691160091172870654154088074474696534897290995240211968336660096528543291412190410017556037812031626744530531705258108873054506612876536016562259355338939952934505979969703690840403981965267022456931727660411236511362330718528082511091634703129164049821888601462658519351958138566327025820300427323387768053399702973777937710893698094186051687782674974319057075428287155332334174438160327454165745078154789877524608314783667676023121514072958827471568642834882570932175289298397215367694877492568136760668118383639729280516191325048754936161570069299199862021919332191651761267020250478310556797833817534513719422297027490186673127365128213616678171153406831644475933656679988512339478157907434509350609922179506760034901708842925881536023841802840716839280784737741482419844956456262787195016663843655204258644584080537748514906233394139476154740066532819489951232360349309010577513463161391029049410923511732622109971836975100957089173886688746127326037745274225893274546008747677991547522881891716652479278333140829033184725563872795194185161075237470904214464491482133174181892681353177030588114694385161011917336287771219060716969063372324693555684865783226933388380153228563811756389658423805511065327012100129799004934819958683574410723662222458639231006724252117762981016920059622578298049288777180541611185552895241755756759769332878732285836055057759335749385995768778449273082222178080580772998189004228609188868312499013755472331604752138767112670716688732725866717664855540984245219873854886518615220356045271304558896230798156619906461308509579119524698578166695202672942345735903082894400738108797719292468033048531046183950325443661519049302966699727416054404203767285729525233651394939489767220086890270585374239723387769762238155051608621295423199975159748111085068989182531756745617538387961175484517632442581457681781440062154133639452633802476679630444178661175391860932410511321078288135333844432373137090956208891243260375522992974412806702367574586638922652817093599978091492104466228643145735175741850037682610344341906640124663934144924669216876235323066321146944950806804154933897724746330346384227700174195335734438936408100716729988797392859193549736035765743781152110685243435752773104202570543837379086629772292921343887092629335353520020323758734115940802913357735684508823295308142970210144814323965449602730994890139607541747540300413375973816872014641406358004845099225225309397229208625106852651404952942314291684226324049127098694611631266249414684905435378402686029157607640166190019997307238232151944981316923440633017180139362545742600296249183931814091381585080483863457331231580484009212856946331886562771907289932049835326025488833772628252811693175399081893662105557106011924713916267981868822351658024600416527390682155706462077698153475429776877927366577766267511004369040823780269617094870004899621399147646299799903564305724490703460590949917557172289178884772981903049360926847821683989227475729178563159847786284925161797067023605779872549709772098980482165407547245007965649922057752930938575406921896319498427170281548884842676694758055094772989049658331238395753272731804993294294606688457324460302628965686703801986137716965459158966565217001868416274404940878526452403632754032711296773250363211119172627450535603272037935514505102992342045598914753369052149322499998608411970094529293928870730998023283824420114613778730656189987745561680090599828018989940862243036633074027304902679826868194960012496106119238379367800773651534809767281282503311662591010370919051448544268606512130283901254522974259663591106981298354018557086729306453319209084317062370610730743262905072147845275561831396054713353663770391848913854169502124231929405457926244677021795329902646610903984489863243101446972264814436744987053681978604184224429474240155773686500417199636604592708240906277423373294717545364278672450900087374707137697825332351058084564070333277631263245241404036721285107896161873789248058824064398712568864543551652030584431185584937965752554509667562253264995842827070992626875432551699089366784024878890591780914434688661087928502768001244527911731075570089880216766271130555347605331551831731397190782039111920012510232481363007102105509445930119222618064924199424397707096960343958544827622552025753627216682867738467829209775890996133078054058730795959562268064696713063232667887615160053564740230624877249875847136033492962043598796797005499966948616812064619058120323971515091702811225860894613857714534403842894393383373915621409088473337607546847603988313713820874858799812396080664037097033080685509706771587606056671493566679740753656205063307280472487610732870043990547044242827569846427561084025980135622678041651026782609536036142769035500636131076985948590480229657810284177150397117584055840909438202740435238712291312107609314611177481919647114342010104252466903734569029531004571616375481456026087606279684696399770101488509594853670250133708724208988894234401198299254153730758396663332334494248848683641932239300756258736600044768770107220279762712456769464363493069111711973660887530338937457460944676814181600004047561423809608234699784098480592899902839618943665776636951480695819698005731291647881914048558935734628844010659208955932840896568999497842069104478378636350342061872885967386088580442351830761142785312739368769283679776602667874997069506045279954755246593488052691956682115742654031678472071378060185801143283749663827708411618233999939076669809385795148965734538153954139253569482864037640560067489928920714639953300142262445697047774259492271642430688738917546473543347530990995166397701397538661324096384099917070715458720346336983645509438009308104118474439509001349201999534454265403737405862982411220560086393029121923505524827146953958570765436128989291516382926489318200049096376466214366434546271489063353275147400281369173234758907648347872403419814609903335467408111910096541479376376672787713161576020095065911545163293060610917764924083724285231296466210655577510898976299568358464070163985811255351580707178139932912327855694057364874539642012995293933717928315674845199987884393279147532154736512782235972234943173142227591410132831411874661992476105245367261464533532762858332298202241522590267748882911660844310874624315713908331469557623597200744653926786029624709699822095855003908413628946052411933224458569597919406299110934706064177772134684319295150156895532005294885146532463914815519615708806052747147620538948714589984638951638996537950578544295646528621573383962050937088655936151677167208143155767275810201992115979755108767952890765527144619154463487363423179816029017377265783950939138988802426160134723749578783575962419746065148436263339618601448831512653360795727236889531849939356254798208570698992213419205088092673537593551241354703211930046899644944683275835983080081288209910737560121058049138352820782473964197809500182534731613532598488187927255218763790043039897126344445394831095254763210582220965881510584217899353905117736474197560003377721236861923168216458952458496060480860208765154881325599421599523360585558566423445921585738270495756657161375613090028197350834793472700011324612301690510881202154676311047970145731325232146946826693348046476542044169645432910651698781883704770787876801066623397020192779466756644340931293195076752548094619972947186067075473988192314590920138768221469668164658946544302257274901525398981807009594924622003277106729270943002529203435308638610214343859010942736393726421273091507709455819717268488061852969474084245919385214063138326097563947942672576996371628170301696687941019180395557473266854635943021295654883810964548432230495363341415532643518149260119670533833843382478367642876582138979110806706964806980477197933818249212348411356181457891060215784393761917622924894779112623054322689202747553470029486259789155373920757296950884745550742377937075498405429296490491141890006249125732318414414031065315185939304125705697473167633487810245171218989414976526729027243330427681345862367798457282165447700034453353915833725793930875628186692297045434484601176741327728392623936706790664479130870800958019305608512609101966078858914262532103646512157784560618021595657768778863552601137681320432698359747282290311990329422342349194817027137297899651458295001903501633023259390380782414843788731386047826064528337583741352194681710049192698103517314120165808263793701907397323648107145086107171502469829974129822866465195487562937090957825917443726393998327056641711997137250649292835958797823842998170443871553408617659732353500873846924321806046507196137538017501546918145341243571253970032779760002581228470149708261765864026636633908552623456893886524285205355600929002332090356702990108074480017524015525789903418701751433551894266050411335463985837445372558440858983560766991544155291759899544252860689864297117719411105200531894639993841425289358910789066288800763121485074743119096999415333365263939336294451050284201331193917335295823735337752282192997350160890981731609120416223111011767193053809608819580717456600859453009481863189622591078328689650824086531647410951510565072710233433323000248501938681352152378470544807042874586698202205414972239887513470698320718386108477396446511697094036967580384514232518916327521414183610737900700044078133092214687351284654226704331429625976520008062739521279731001433996118468088998931256883487459749094027769373045508597974866931775425368900953779243231899253751202960388992351058983342042521098673679895369007068974988636660313666621523410423100764059906984715477342674365479452483790910880074432803794404477045048538962928920851205686542042346241523219780312022982354160311013735669410113337792063589778037983764519954512651236657977323483968383752514287927894889553271153207183642283595976379855700264555735369581936372264350856739741650772815242615529584599193423939579534414970587871192907426946279640154099013989639678021020254287273918067423042150838757496120220485798850070860510256564192346342402400185026711671968656987031542858773012254334928517663487790293226116051407909578462155342808264647593919299495892719923238981808487052111622015260625648725792166199586783842232736085378456058201634145334549633370927265431656573432133416140212809949694498507203006049060418941672174691302443920457869326391445142805454793144802588432967523605410408348520561005767802670611668560968037997616640735142115336191382983047667261306205736447165485999945319868545373655026087358317902633470516540930610811517004891105948071027897395427573117640415076902874792062201214255558829307139413187824622853997283019859179921687541047200990421535316896780669987465360697133949070543050246257734047067238852023810156288416688834449028543472719998589861895707113826755187890209035547783274743969424555108945243186580682239274642273429920501466532292598136034180265747012402530913384084582938787266099667633561109138834358674662087134983694335322215443223980940255225959956846919128923074593124162259720129028190947805639783982160407564601923579386188092923293518582884403105807451839358426741563588727924151931806915993419004955069621742832306233333407936993088027248400814926468319818062856503621796022443939516147358907486365160689643477922413280927931794290188375128566934292269491066801128024405296328013685440334791978170840583882532039270548479566433617377769249619482136208417670679671946009523512124474535206195269176164161345822171251017515312502374743499972430156281596895740419338637956077823441755731424485328499087348506389489068156343230767926366433619241148430289012226519482780343311182318673409377803333716455048363606467722014657195724548343030584767413588647509171030125356480192337167550834228174102313312307876584317556825329457844493586695291742331438098305507691360117719007420389394525455630839128509920222207171805809836095195358495572045242297459461847071328990850426276253362728826220285456332855639004743297816172045789281741756365012838860263679820798479060315331244766724692566357274914450652131574321174336450129234920475970899184587460462368694957737795980589721488896548248720585288335485597332225124400899576010797547086318222153667618564729075996664152659820588926428325761718789554035625990872172544339531181127429022023563818038721837167314899867080504569711596926542359427865224796384094253510587383117175412991301701655011484662596354404434946164910508684578440193507336063575324310297236333913390850408026565542487644919286014919130433410593845199508018158555659121534960260250129175162873309159968782956183523401548684181895979526192531371117394297379702426949210036912519959277870831451973237853022360685022546393049866113289839655971049815855578613962711109674637727052137915420820116771134083750968396305435221084801042643633555202198985778079769424690595017527446442227027101126759908510032215816477809775775690580888106335786653147593575241702495589532933928634172257304617169750354904054191073622014132676133119622874597322554908602663833133638618203401013612892656273522286758706908540229764669293322134101005584733404305610066516959957117266606955732171576843694274920647548022934151241163646243663711766613115337490514854384433678864819400767723750889110295717700523786923086968989354934486337375869933289488934464051717416173425859633206410081548688136952645804311212934292356194384360170981100210196186588285331775737017313241612618154903792326676868907957808106516283254634393336797180145631956033023953876541597333311928864020681678277057094287201792445395756489179708621865276552269165606436953162429747346901999863217426792230227634636741892686318512920194750985273373249360255436508867686216274348363597629471263200267934534160294762019150336712807634910018937753378120430249245187678929150084484141592804338758783825418010558779203734343469097673701073942821944363710095775255841691067475982261992280436256547047401121914089526143272010538784603148680405846553186470463946892226261040361664487487169317922236025138748701395895156727118658469234005012807282543066382071707708347610106193909945503614912502049485609338228358426213258099260632009652998917413157507071644037799015657188281714466431226671049706052055603222868087137264006306594772702071709953771903433154968031608910434607562743397976083676735162726453197724677209465530403081282118967393117529985857902377111920305988258637983419663545821571986198431962838286083908309168302571031297471155777588005474276133798594749357437379169475422884594664304397619738299795994087631681292171248938412329450449560973351303267278929988483199313282316679501124997616579886260028149785716240072587673395332464929838621607230336063768673663176942227357924050585314079020145046217291860914313775273553717994000730018564807297741678946520661721210870640110179552871863404159037926164071955734558314088244838339082846041999326763870786860230054930309516575975341072332273013915741973054559003392608788088039665504760795865221183583239201924968578836780916046076077646272238166794456322515441734865872504308439394419041956050009271324525530653577644890256711294751874099040744273874404095441983933947154326425264323061748616851018294792882921585325200331212682913540660974770288052461338602203484550279139964820347302262917853767827328449167987704589175195566429289758921143539730688618320128405258686522651289142094805117353190722367037410781927431154867642513006595600329352580249404040663395076349960112039405838484469332968783307714389554191645346600199653737104560445779182496492356970074979331640440443727215020510226909343088439914441677655684014671325053199305919371438713112583444016172100596750440098913210199253408817836908870350823373573907195864318458697463517257442275486293228585982816319172284982870801694731300469627353305683385664227365613779505946907743561365867801886792045563557552686369766606291838883552318139522744077526448273433672747278808030048415920794759194798672820869867445455518778535901752895266926349427420059173640230571399239844719291724615095677077608234954000039266508500053949084039865906530355378411920155149629807920301078193837981091650466521586793432244016587149524853467754325131179248126325675323566959712405488985910567359370711949945208102172250887003984928358082856932453906962017905360616900573801291193301964140800236427689858282997445544896214616727231233969531114433517062301808564276256079964914827285206617572103581308088975721856531475031129501085062666473859619049014791230621692263686066556947260088860129159758568768083888787904645290612532746520404598471430494754813537056129459928256124865877764987360088491199864088125127318102494782829120806111681899559380612888405360044416861293907753652056817254527485121900569690342373684165764367633455871487454936520610079694922013632769033296925158150846964898396310746883228842448687986330967044157810666317140955226974854110603447084556240208372738312714553513922963818982055908454235693635612313875605906901485600120388318444281429120670995760882232385158137098237200050559444056401340611082235090059569886543888652585594341894467427920657319412016012824763367913972591568565105294150528606943402589166204715611534667765851489870596943857735142028183005067106073182356164126113882363704585498758952931716753057073476359830076478321868533397802548013886072563425109875961953184839482621977434088622035863085510013337870624602191597510507893129190887108931579114887765578795297447309158823124950312559266603777900012142315058954902021111024665695476000560561465622727014404647007002926259076971539836268819158372603621594305574991089210295709847567037472228856793407337431919265396747199064320855573979963736856831211124438911808976783739313481900085025170290342540610567720934938650662841252282869198786669601751650435955979788717222861997333144160464925175934640684180561213519675510475919187288971952865608742866019648834463942810506414369424142793648060623492025151136483337300505395307753294142433808438506769651014110027244604699224177395813273280575714560733500337341376661345685688603216610284713458581417205866896728111032937942560450185533570774231638577946569040168890516652574611141957391476650134764637961822319884429325639564286711123624011137867823694100776194580184037054178367127876973056558976978335176224878757280265118596229738731579284368922274597241596734154250904249857278724149586053777127023818787085182449100914362778973825693965193058661442792534306193580009440620443658390043743782696120492678661399812268640332176728528565491846097401666014480081392928923215889961157966167292735161050992278297822492363523957414208474122236347303129222550254069339839452912958662696398518157020325461804794023855879186914900325764871786105649271774290358414656300644312400871022277371175224469492340926556149682940799007568309936868139800663269648108709434579761324417818155933085429511855972410852782747042997646624081003071390829008853477300378973879416846725023408131126836473155259595309567345309535530331804713245019860378449503925647849766398298669216566706630462792014177273736813738307153119682044214538111109141522054921118697215791956297190202110826990375048811488991647326707918359785072709107236686518484234288157364131614989417297360916162130322871959847697662682975295247495072537730592045301265417172145293420592989173869512097048396532531864503694269445423950313547760211770196668720352636297711233864805078886761894569036445970624368238518589069920813806556456776060135007593784558796004465853937011689116206473903662662361972101946285446809253738452980023820857356732160551980774728367558062652634735592365481631813879853858671440214843302878463549131511136348952229108678074910855842599847633815412741060075560721556536610420309116057255505340839424967352335203050270308750045530131003163835553917869635998855564179354684799697676898904251146851952129016397173395781225057304915378692398847370239522332812940729772706322179305673715654998282982662843438831024471932535044391071604198226252425347232665625907238645599768160261780074719125551468259955789079585786149188562161877195235462298137672656877929494700579674235575245388530354770778758623353654290703947906159341727308088095699946785123165217306014312583552144607114346615186584678704419875139880371760107735566197317137680700364674905993564616471433768864471387243565130591796000062280993582157305304429931563385311970889917161760736431704344070363139212813863656310241641772895182474563278428954728295440768105944227583130222195513701305930541035404580938582614714812135783442983338844120033536826694036511287729051753793490646852133353169844715258492894407574741014459307184947617189329758193289839680310646317466541596362608622067635758823997683598292730291917117112121264370116095663535199989735473344039452214473057122909471411226719335445466416385844743601842940093809927917381256675138955539512289393755748773752585748026943960930786496803912423014604623422802576395104539454232736398608710621664198124075458746656945412547240157927924148620863223995902287310246446922509282437325850418552936585944421074850141648663321583539429946058836846750922269189749662258829222949721017254197966546657595121203500567231610618021721410596383657994582709031692783817231220271130581242451834898555494291091105107917865611550817476628243828397926832017514767143163294985058426149416539354731689232307103531648083751591022617502264978438901348934759883992680610684353100510044524955674443293002014571995074327021793206499541898867740707616794996888284857972304220782427497607037303672149249607922845464977030881753556752345580536299124847426623019512410576256851550539378048337675327883115897430071830362427610895439892394573282353956337323313843608562445760877448326128039419905338780023581211375657326169234639058276185728743826173701618116212620127698700434858957066499160075519973220370237366622474939837412492323759128133846987449817861439619123417897488268723464195850838457136068209274179280903906841725505173800035444377294883047029311607186230949819024114192578080927806838339386210455434992241852071247148492492551117496122890909272416882256067692003157298571358233748428027853504760146508508272063230075878060053590628120031659286509841796388787636591728322522671672464346003505700750811641811017515845319192644847832267440137997701516003988246912072243841975713214396317168394093577574062026602054610536656506715232231125745883220881564564236678975795198588252950699320469591209480527992645793820732685653514817910662301000973752487619616402452876407055807526008413146508391733140483655065879505811084364816299488751997294867278946764205536743309363279677933372517288185570674136017118311190034100862489657894846355603870805692963043626338557032839118343614248121247161281271412512629299379351483874197326084882938558121331548037163913251733684083279753025756405976463086113244735244311050263450646682375584205305169378353033419732721831886972030348981590561887179797091429131132768856788905523363605249558923089108072616917080087231240869109134942330262595399120187264855172301810598152752760246323364000785664962572339847373436013171313778916532078471763581752285973790414770644444390675001230974713914513010286771821617900964117028056210487701065411794917598082865428208261947837470551830089014413260789201125740437776565253471910389805039059921984555958080036703511594664673777057522868995923041367680875221846418650722548101731058465108745148360380337815150455795467713415207826652333259103311046591955913346961166381983577137943309841938118237558404272926987492500474513884930196579507869170191231903242258812045475302417824983893427058423184807210126285828900746975483021519292630266334162630994514753100175103452924757278083997043960432829190798114434907845111699344240354333696276657276591833884628491209137551680810537274799778402211962109614103265453902181158571722558665952070322336509928509409298145562809122018153679304723738835148282730308600743885682585437370975297757593258451099385182291523025273149790564571612593809896831849934833273559529586658589389816456072489891177143736605547737281330930566295276828692489735668723100869714426290977910984944238428132668477567959065796026790862990359739007541096930590791021173934945929825208883710730111000672689684905784897649749117312664747302169368741596434285228115289925497484063657799958694288607076693010336603977317020506374061412630170903812381670998775884207722989860209119365772643032898241873336761165285966949804216774591312353278746125728350986164726211315381764668430495084220206493003315980383219546303149306289308903081911625020562811246591493190658908110163680109283320117246205478311049631600330125995139457926227954680217147363263880898079644915900986867626414878912509918265532579641557968921294677368735701888467526978712219619653264190598760506868760104717427282275074351169165643635704625977103667132782489812906797394730173711862888674857943363065838938030139589115269294336178176085712193619379410782765180369599500458780676998625495347276764701759287853335307754764173929681144486638554243669316208793902544978745961961793403409923198490210952265653639416681228762028069851579906385359632474140735917098880398361359958286889163409439967657780696749220238413036815700499327656506804935862152049094631599861025452005313038631739661139003521487343523313761869926652711191540002891395920460037882043484808792745091172409716900126245730435382395815229529314861679737097564666463337027272395114856121349233051923947599504820516457151338642924590665013177406172385747163022864722397082493295773187924528144112284747425137279576829785862862496597731358715005177682117710115354567870402299648920909826041953706823580003201367839545318760127226540439277305577054680917771690698197597450608751168882611427516267718726305824903396214991788423820319301476832732429206340991739613386344768005326801645572975538661222033842124868794172105880640291608586609349206918660965075514486848595360956753352588950916058816703027883091373302735891630571544509681321954114128198150085855416462250058995159070271474049232206706517284997964425381261688309566884283016240044563616094503770860518975223956943180844484307720713039822167390937699780110898280885885629170259796764854669170425765442451282625634407905631327951348488640599916301021330830213485289689587530848353385241303027468472118856556962796423349485102594070440831767222428837073590794845431862812094357273969027569592725505188789306332994575708462591163431452618768769262649507435675746606858073466143525392094046548380649062725584123327578058481059642011173632438975828752985651105207321283298289244989029717515164348692836737176848866956315065297114235140507448901615496961965454869461252079928384114844961575957945417550728315591385384762858603094208018974757314968110639322202342682897718086874874994322150615474618692012346312395509316998363021756185506683871122957736156058288339019076326514256367852971895740262617602237466424479686788361028175351595088756808045635749646611926446018949454260558870620220472495793124078408106379139055149694896451564420485184830746190779503603312791836434966138935354443499788698369143849370207978650082233483208858734672046214492305555497866416157714065415734464441403196788867649862666155814035509096807618831448737306339622966494556559949195989532145573509785943111403617138537306918861887289489649338765294669380046151224662667370844483469064532107825802537834074134921940773678967598698478812691569549168070118181526936078463693867568716636314761435392414607288848281753573310606561895897764565920561234593270133306924436109484299954723325680476187780445670641969506569586639208030539589930485179638494736518281396627534592009399327014050510922833054601753920648452502808617054201063592314439001654109912925988120676489403254051104712380318198630083920614008190326623168125220902222510319212459080578715265984898091530507356594693380657786178480414436283403352892859146466124435648851959533727525679943036511301027494031152189485759010974592252949215622220818487867553656621775149059304723752372259247097535408301537597878209563095680054595263439574376690953965736273856844790039045450922453477517078158970186042915723828111586109764545096116288013013534586085243397808586094897517880281126362874392013164465188354078408869953296782973613370724082567788038007743066666955771463503065255735370212750535578512923097508822498632864717471653702957569763420495256500040384438961511098690939650403975420174214209783708273273598578105246599256709114351653877394416376759184098426625116412249186217334860175993702034528225861868798369112820541996191876154681451473942015259528868168430776599058847720526998241597867865749905974970170064441709392944372385311454556218616435989779922371759553419248094460266034720564400422346196085936484607681327991331118738452267627999244673840597375205408499477693822382983066852466550863220292037674003456560257836527501366062605798257684242102030716444062336485973096065268361334056325958781624848854828999389735549911606739979801182710971390248116624081303513579771641494075122489600566924933722266306118085349461485039427449325569938677848026318016190373222581668830112540260364269251146825436979914575988364780589176354813326636380620456769490464691069443345797670050008721732645943202279587139265127703666926497607075877534532049691000118618239869644637810700558631373987694518103208518537455127889586318763700725472577758979327946339538443788212540783183098927291929647233251793122893641284495605477626727067043330102678799658022163267604002037623217707267692338727720624851261683504480938984074897607050502917374978853933210675519484435758932492690794488523299769840142142429313769142997846863467362305721609217980300476264871356579500244640159870590825230622065882426922376524623987608229817166170547495915711136441068443647360457601037448581058502753198739933936210309429342602515896870341207779950911174547964400609188011243060766980383065729685115482383000780563851104247679187718785060275136066493006618573268559901303611578741379761147674669910012696689854657590335808074271335103330011027187929783908405290369343587652465442824083900539046657501975052920680307439257064195853130929034940315832445184635117355877851650369999460432813602773903615558107112965986911810295859047810241955050032937434345958322755876809561605927052554310440479986257566064884601471918170303586890763274142279315468401416098337458796435187244250492810945123196806986845237568444756350661354502602652532343040450958699524613338127890812911568017315476977447332980922475816357446667189954800975983226473069030412062643812863444653847076907375326994553211515717825918905690862850573295812644783189692951372718905570698459581973458540640806344883388911910626853602549281170827255009715438417642330618361634427914938004496737360525440087173149544831590518194953461019840865792919278802661914853538855271932128963026172349457389339085701376895386712315606560751386390588489008760262134776526577569424121243035560112101663545475888639473823273259909758707236617361238509794186890807139744317853647297088116507190355699185741882319852052984471118109601633707820756463731608336603710391533590700601339309791617233515576440724674770771781948158969567924271596012541035875507561712949462870162524048432213147499619365945545578212395202198895625956568278224768299989055737446017995502180736529332692044364939648189071231145120701472233463758576197090742103840293531310805352042444516546370356370201749129411147661843924742369035996222244283748217507525930345016027976631745005113567758970123169056770492198550319183050972729935760251212874432171551361665970828103144587414069841025431621596341647604741316231386388068824350288320561094291662714377646324929209749701853164231080030921365650469125764147541294102838597272755328076296064144845126086294643211696426767637424415599982398686185509770180852446829340335121094268251316375697588471884072839576153631303095430725234273135664695722188512584809238080219004173471054550003626704974449026670344825441699056083444993886879403788328303135236798902950270939404649005790876781205210137666144736120340730344623360258374514748366814359282612004584046516891765096828899386551693428439956899790769073789915217825930437440126665039683376938172997517869140319016551121660307276299790887315171595347103255337399121334883075817286571858055965692758463804512196758734935448876258466875067252271529610899271045653460361469817514188315600762971009646808021470220638231704889437360139352154983789458407613797510225533746616454081982826844592384320274357729273059019568856942919787614650412701548687399268863775183315649537290722506398449462023992333973690884156876106226971323655848235379298707181809680120747210629256046515903443956572099415817584142898875127916238257471674009547053886666751050557067374874101309626564487367707810082701553741031528316656269898768036817195429677390186195563026682081181662549077824959551511919373441308600106021167331618148201811051627865647698593338878510942580935345548652171413541657004825108574240389773983431989492203200683736744098405442358326405909474738114660806971501254743061324266714957626893228091536469276976388258436676048139059279732097765945950716529436710424827701283697590215548397114369584995700221352626574158433913302062013952834782766431673838422460388532174476835253685750170594606686183798178552936345860639176947830372243004824947816750700423914246885256575235027052097924586383775563556258429919265339651159541775606023817868365394519579135976046699266502720102224974391618292684249965574530388056558081745191969571770857793135522670820288711263004098636318190059890147974426198338147827841989240426859890010332880393515342453176007669148863745544725819753876395035183975844044751084961971702557546402469523344227368316394441101169205064122529441870109271635767223872639362607399851977788393684851712555931449687449349486718257632430512778430019303598767911679661552048819675261066895483659071943092074261679484314619939239262156838771833875487469621644353414430195154822013544007281897658408257149189664388817086987221270327153027444616464451357297795213321468781127498322078484806612097230385333072009743841033472083304785924712591443827177490496119936812218362099472101267934670484768258596105072560258583507162663340172407131347649406528895492875990814377468889481486193098576621141866747047416361500695242434051930209708473493175566366427969721836129815970702943483221124787014746657952021929061482673086232734210475034781717349651808991864471500805079424165761506806151556962031602380949579116803895747181111791580904728643343282544235624816191648051947472083915535696486718844846374120126035637962352624943251801197990477507218813423451383506923413487438634004840522422230772847738719679240669143090484708084646046854091245995431100582027823975333277181073555244721229416301602713891497058635058383401914441046050427530487451588091308941485091969448595939055388046678275759344565192628638520772884724989048863134688933187860360383826972160331790344447921240278899633761239386744962804171192765042814911827238149701724157829424191125897903018512767138844582522865815997721543347867667743429901544206249542745717380324638756914933435987281695363671989612164497988105397269757666194610182322501297790321993006512917491550921671088285095626818211762025874941218061353200254430331035596934296886905873979014079199566716255983706845781353001517229726211949935140020757595147022534020108533233611385356588386306266098168743700240838253417550570944783171531968212871532871997295822480582410153517177317581852295554195099215139043775108419221388633499487463719950792339212242770928866278223833148465193536410760951437137808987715467822693094752034761637142407115738954658074907932991672121817987163780232377154695503528139499738913401234849402119030718927544924600781419780852846902091806504772487939264869037959550168027022204801002908694817649572154620924956752962837654426709078521456348727452901877050913249981522438666844463113940504011333032422708242005895618354107706461436564068260553554038953573922937516525454833243064123810866728087768277832645047448123346293441576105890833376923378397618799080635510098891414232104127011499267091559101405289814990110710826801758078628020866690149418627246742232723822840457999357900917262110834493740684729756485305417895063389940462954648527675838303579235982914307917143385685868152054087780040090715685065807619208105972179879429187564765772962897253284400340668506768402851561360184839449754556239060177130894520362363006524163306218330679099002494514585909412476743116037296023696535643171537920744693977656376718624859732532190301100359654872475102253154105168662290145122968509974091284067051729011776316124967095794473153393408753794753520835268401017649738776902605386106299708905681499151819700867682027544240232414308539288720707912751612184465679768812106911257902742868890725449029149615570489797778916093124777730384929497033294098153211457688222308369954293390043593683341520103035811517762831166293891902304105073867351406961753323579388735171457559369304461047835687299204838676949163474199609819166474068475293804154665489204104759239940628400200467406990093264054910158633377619295529074448729172302516732219415427405504090217893329633146062895010218696019240433602730695045820856172333125889140136669785797585378155478182173424418210457496306832788137280125832734877695177007529181243974332675306479817295652567434343311295303267797109722178455093815573371796824075879043970160833437980888561102227033699746648917435897072704162780174948770539494141768803778648117275179194342717755022925751671935249604614565449188154319246057252862926465997391727663156630487935603148393732698784433136968197577750243895212429138157914682141579956286549246225339544785777451468202526616265010146277578275244057238160692169671921382530897220112414307224064773153568889268917583683108365812805012580532374332263549408695794516893918609160165177990744681971464829790464537387595856785823164368500271988183102950096100295299876097973886677873809144560466825631586849717371128549039046336304476204201910412908280609653947265438405618082236972444164178111637906562141015230809985166709133389795169482847418758106783753663877491515664017814312805267312592848099744198722342981603692309361273830280697300942010984091880382745024979052822743323604126928190073870541923920242367082774457986954930647482821664094413200987805915485694300484010034093919174189676663831841661882646723449524333533762620340044454762680825215559217862501315729084072070969149972377617440264658840749655830820668250538042081454731359720195680343543927982079338799907534098004538422126109777135641310732462023894777428690559555401182245782153812549497015064390233016543072052823070808674634919044357200122733548458586041443476163717816579135362953884962058103288718130671905724251328873174245800254668357456569970703772266784245081625919737130823966831143266624384623749138116711879893959174875074183337704276647915137495935782847792619940113753721121337296136100800885065107875294732993204918675110850934200148576215429596805244379837902283316153547199030550341403023206163179401462345746506705835699890654008547265892557547138067351389602125212085777242740714090263836612648457485726831632796159646853963110102309342070544353913697564144739145934296523610752826205528781971900672844786701912737413526502100872665461865707418498725104271253398455031711806743385135955676747960890459915485374744796523053673591527912548809836870849281793520558232173872218245581795848700007052009666929946482013534260800394781183433654415313575432946278913543034905392195068358026792337998138895706866036404694387615908797684464198536512003816833172292320019507647248351237377613051670665367404215755865929230636186957710823243654333608335358913728152061979951072619165815946917030311332141108203627103791142649890516414759496639430742589748718761610817344133827513349861268891549622376136113312019272573790843623433811098939259528903225137742242894441341144042949373250509987354217399442950048070356074598511918848273382415582301411331059990947428991151310692889699605735931555397063371600199000491114395903488689333409615428215461750301376633868322823306019371314143762411320978904476310004949644521385399318218913719627167137376166427509874879790749331938334613523145379418195872309387837137473995168045203441039595388459165941167719428750650112869552253558196416223959510171909052846023233747299399317708021793455301555256550334832195026452123264971304185628719648064082430816792099499296154223555161737289179159407429062646249805658630898525638902542706130346542503226644403683231006707643285242070314778768086645015306695450564885303038704123184556965947678906701125119874188074953131586189878135052409631582936209019601640224447264423442373218716768998221946485965371046719811688406773854530079812062474610484331094881553754626304158421041711518464303675810786946844876229433859185973906553383834193070879104286029428360705286176026507429615616137656719726262612118326745675990375506777615233269380581682434220132886037073915391681704130804923125146229781429404011776686000529041825819234278244582371969647120016393521954136314762683825513481110627178471345573397133886135880211934270447119490012620792730730591878544842454171232891158353334151150656367792437052060294569654123205167837550465794149743816987632032777194706490884095791035261380249159758478315478257701195566980066113434925512460264368342815593545729916374724104335390822811656529013483027491877690300186083215655756701915314954884355886027979913955332810537142682455667618766845119349303071573603837294959361236554611271226714524329836710971165660824146579352139266316538011639526960981679034426633377985198521289617537311637506540697399412923255743615839974556376053352254391232114020141687172986306336505335320339272678965328709771550611904927782310228109612027313453003345043400362439565434382946750311448508465725575315806526114705567398328376441847878079951551050756100186294007812111802946040217805639019166266019773489708970327869423491884169923849184722219779240840974709042927370139179565368798265726911590946756240896159085137726096200850282755391807136751466189272240360101108768795696503996434773785069225289581503893355267671487784787564296669969069383330051275938250686099751683738789797903560595186829357199504084457864660160939283898740653048825908540407481933081849438059011986403099776669226696419465099552586972887881168850623348843569882570242435891709619576501561006017728481386256702806440549572760860931404931830789141419349835201187165779478007622216270705934854067847035327499551652825928399109151392527568914154870153883979369859060318322940441392768648636193674921376564861140988061851198952695325295939383837137169274648128177879432331578658395307580831628604026412711262524950088622512512302952241697133658936941113676879607259428208905934467987720988942438603287247842414176784260215205452163052855052620477718191015392556936979260270042680396923711393966536238126459180709534314738376227371122806591491797959564226945308711771417116050604245033358873476814383078485664572909708301319577614338379731934198059543310446996989825925695791689952383800243447618572678890775998356593326003924610505373724128455883679697320108024279654147220137693133583606732146132065032060908736745437331660985497605711645272721124607143705443365943655615043921361581222567323234293164241122771058860642927636671351084306494654860084112240281885855653088154497465304746184238364754689356060693142478511551791496024330781286574189857138857924201134660240065955443268590201080950590564686143178971208801313779980232090184024037523699538398998200094367642271222451029313538409866700512517238037214172400849705291320591752549525147414168069508677151781261650586002933618004761903701287728281575312076069473278469012087197512712318460140070005912197799412627373737916508033118526780057589738048310533182275487085082077244185636876399766758328330770480228416502026416601330139652643739125047747532621711994953803190562820119574723630475149380279209006821795352247739601840243583674092303193876949326387086033987590587725800148611454200372365946260400542675830894478203010136655052754493018847201711403187194358700601142188429684917326150542722213953424195150010140577680403437178683760332923021341976372591303268369443191820523871841572048953242818590786117531078807438948653084481330508214174767420527360418018147882971378204685722495615317550013956623304673470665097129618063677611570442985286862468586495298011528228659207754471156124315552156051978186279726179179123442586743592724190595955061205179492507854767327152814739285957250862873685261699852980319303338724484735797850751004345822073580861694755479630413907591302317416878638302455828514117634169930439591547950825667602603301045565492869311161484199275676485062092291383638094681903611397652317318146035472012182776747422070133616374314275117814616201822589975480820061894855974171346908052031929368037115939698187979561512058339110432005388169551648428280401355743755952492975847557369580587264576125417986614324798055288490736048827674599669174340348846165000274582862112733099033381493397298558834770715851071741013778812859441911881512674536181660539452653775790254418306888743805369753539722578557099045723064000994569714209185957571173097774371884334704088619948565675940520280884073947814219843875713125751314325514414972759445441758897263005052377504270242594615448355574856355101824996017745805064801599765692329140150530249074381293188810513929252152529915346128134859754703806533059797718741840619862018868568970315405915910438404269218863342956621462667358570338667360908000827725254062613349678550883257238624405080602444472125102837847828526156574436650173659838720115399483264875868933831019993803198616894492398325605283294121390817297003777970044146516853760157745301769698951141453967499969983234013872857200244711829072249238948928117365761163713146692313791504622191038491129158316834894593922370941266801555923756752085057514009112054899117167083051335335067466810822963997448555316628707428505725065277097843608224698336335655304809883624713037664995172384954591494098258616045182133910502845155810390447441380387441557995881339805319310905384288554952115538286789279902157883284188461972919540797050283181662075021533113393138742597682512291512529546756446134952558861709287804473849168688301783764349571487149901763500918759595128749238773351195461515479285851745217121108610554827631226527006025666243624338932106368895244375922086986782210988204219637506225233167850962543060040032539161336244283406829401983031245862392641794523017629707278147478495880015283485860302789639668433876987869012596801734243467043498897622637213471067783453493907759036859263206380579486415179004907803979947819148417200033727318952816098739195228154841576455794769090644955632618212291672132453209650097334823881583073996461833064593755306649189794473292290586782148760977361613759086387336947284216807564453384393660161167313429709953433422380868744136096686618495109994000973552398689006505594607126805234034653784466454611321246641274046519604555903419129924306052162758507040919645853137684529296350952090094732832845395126928854188139161828828023572295445061549425135542865659258269379668453602741060026144306189245999728166557452894318766215196324046173035710676296237000973274873305130624295255043568973939052329667012861008228055618412891065048144804121363898571075410344957374620118520477855107172729624533159523380029822322115881147633424885810271889319031952452591388140950615529516771230849946299195748607419083969391433777082612719055501858594369353006627908002721225716076191662960463455399895002868969017529085937081783925988088633855753936094381478358131555032293029611609306113763765416562504265950746932100028388394671891182970759685602974003607765739611401442123687664454452266825014371041759052844708610822227213193407586532743725471823471739522389022923666212107273397148443470221878080687573363025546788062026015523263729592224521948548306650563561543737350941958054307703522616995449752714073922273156238405995409376403358422724803879429093805140398040157333636768742709518662163083180650147409559305916968646250979819997816836787764568230553299288267775168339455481275862297298167753759435269292673631939402042639652006159321314125603336395139100484258388849027580637730563496964717983960381681724075137473654388608643314799313300363458475440000233816944940258996447778371770297635089996571557721224269405736828653681417946399896510117568122594868910954247822272735132370387574651911664091879003567296251079664054355052369857643078329348576801648756090691817352800546898544211877354997667579289827061694107055245985153817484209845521826121489604161925214846476493220975013631201971500810102380006038524243411212501584501619157000209104886099413157554734866775413788082646710503095429517019697072952222837149329455199871785042431205148596019093764944722315254877142501816166982128142420049954834794032885797559865176819540144016502729163104664861136130967878895632346356586472208788759685797472856263384210697518985852803255388844656377356440907363839383043564166842002054501465358790584186630341344639238880142231397544979628434599198535052156684301213879281240221699819924529999228565510970943620255623160596893793837556672725800161928466870950666082861976311418289042104611352119255097865155008989601861031004957616291026640555060758965868866130992485671632773510358253964620529659277568681286269183277803873456825538113836606926642050669640953615864168815558162420928574187748363575166145563699637464813227280205768372229489291703351467703540324545827543478370102634698772426870064846362205103331578725728715890059087001795924554016315488875218562609172843160197900745778439580731789705769470235885254839888903562009940504739935532181955857001531490933128135771938867305078031617842545111088100897937751207560251196614063120368182750566929669678332179112334233342156581833937015076708439438705804039409388605801189150883064988961600971314369151210522788853164682935704094933862485255603925147300032124237041732578287248959785001860261397850555190576217843018763587151795991054735916134263421859135354057405436042488147351543253428372743653916099344988438219434038864875897027443426174726846164349812902099678104093057938333801966843234061740190220416877304813886426801040905008024325485737042209436534946384837612127327946262902383760627497348518699817418870164966931108215118374946296723258626813548327520984206721408005704289950691686447712262230962758069413317045985725690929426866485284695255409630663222927597345211735511429083571961149086572297529825385714776985704127241211259519218084502874346999742198823393800245866356276405533720753910436082324649871603816286924579227348974496894274112237290828578380992255580532041214881032242644880434797805000425262486931158747780591148235374061027759612894499840078312686131067962810245250811570485930648609799063044306404030344476457524256836548883466946868533724204143747153412103749151566849882772943251888499545071967661646534949700780454988052813344135668409203387746738509414769976511213770928740337417055424562807968057283901926850202541991462887745105767630982769813875896944149753986717182370631787638469983472649064080158711761018353788408001437517786324264418141977629560007757330464701291558012922494316477341511362560502650846224703346943497054396483688508605373928528957412458276973801233504150109370534863260927922456196082559373409947849759257996413760376201289120046628274661619321621554743719573905185748790613299657750176083906981418487494773607853832494179104429667463593872502141165405392613233557018009841671334224546753574777010960528066123985769103476707601653054784528944773848360261266010035987207843684872553262937576338451240100495926066069753711962033214111424654771174998301285702102151385372177243153710954889762017410399199636739667345352894437451331322201053350814051502796784048933111732054200866083200115955557598908999637335736618536418463137251337293341094921059949474159942429736211636584314329414933303116913754205770352424715641355774324752292824511214506772796212028957438997726943492221574576037241104155625965129432521818735208568287403443187375781693126462913757515052873380442790887531631069190214169313507494933330868331503632725052556708592693126248687367003710179873288741950235877298691419568740948498570823656906984466099101263685642344821126807054037014515887016591020991454951187679132169926866922174914039683055546413679542595909891540934975149449560561933813649901811714804082551862381363632055494954946711630401303807357229048639794877329536053271839171930128962566771124559563419468324370074801825469423747605427219560349595243653320550230278170083573059772719117324483224279816177013388437324581606461503362595982735154551464556927177931912244121274888666544242643302390936157206715643755478323342397343780077048207836392330853767968250994388718631939911482674936215113486583219739757886430823399524926650751273528118920368283904068696856891169950978528208114356638740233851503096931426024987616865745815548118405236705803872740259002248347737728251631884776999071469284139388885348678048115350539355426050898381994617228356159936598893703748517919970690492882085821267858677815912348841382557618782906989200368939324221537981397037774651785120329885697964087433136880217990083686625156231767251935272485493176326862611698843056465146117090419152830322186589554078998320864543884354214227167769026551735133495255498831332233462684159810131571150045259594198607968434912879733611525681231390953420329024819780124044093395204238628527528521251545498524154926173662326683784250046057772599378844306897670580192438016794269676478565553746935472030609554388334707111846512664039181454496987544607285412079565188662759524891907290550069749964961805522941179026038098197181646961879019293935609222842792180569942630927522105434602846186811578315615657259674554782259479229895648196231166912674472804501206639779218837345564168149000236031702067303466929562640611116674997783419579018517060946999699503902303466894832066744395597760856980719336110573172108938216104860227445968048490086564929765666810232714258737527834664056751110374085513307104133953797475592816428098009897025182971130470199721875955425126626448856300418066952043682210867894080917286367414934632547567793839589782178225952982940131584116821913992895447245319970780996851849541788552397534598207763824637384343034525589066888020221617022782095462506357621501046168595767004401939104784644615206813888568226224649227466845901592864747734092566936287123383539689291777791321269497823357065852146447155429150933619448979229070125465795907628260420167416532017246241868028548872713103167281534143466758749537012751756461775629990132985157520785157496716977284416353151457390630734543002095940568956545174090229910391694438652537901167472822233444951535671502003790267528116665895179046882249211853448462800451027798302710865437844919354647480328172520263543976262138182253696081483309282368827370787999410884313441175438116342166620158760417954257951360254023924155163209985758986472722640712674199198299366011741374178853003650803211592918742174186013281152588673573816484481158646249125560419722608392060821067596421821654409298593203058467605812695099997071687014390600533968684056893700543869750624191172934001440132649772263381754902012279969431720832765537399609977621844369720228452342242691264202096425174427719165929349738351914895363928273983138596519238784324642842705881004055342544576289113021228812343422296209994915870764855483340513428117351820298670263088068800816780119736743729671528692370971123560014716931779674989327129645169886738824646639637107803704615694325771882197063131330039994924986314302015147672168907891485133440972175819015629256318163568421821288900061261986639303752447356949198387963680269643180847514310151757284323003818989757168686346546522205085446152678939199708297702615341654728067908169183526551700729404133954980455289467908019526958462615451392227037275296111359776879997206997251687040602212334228759781226558396112340994305033018010310867433315024813668834982995391234302567414743668579476699935405483646881871176407597818300152725296456650144701411259074016166331503804999539492540010199444174368560903125940900148878595376511445434952490193779428801109366099147992974625180196462622309340641051699629574970774914112728986086440715205581828207902983967603952007457009218602068459452481832413490168317429606244414225288263611766526503239553037639977677040816903420955983882060438025470650626483381472832978139827318571387900684990730320787660398953151715737446557127392601552246344224881806823767011212424043517945867192498624256170344441931671144118165867173005413695775525269403962730144762080035872699955414070963660972204766204701934445567044801295881536873978844572599378316229725947073892900485122658933800989368348725908165033928040391162563264653677697604582118120797540113126153011115326193115437844594009082181970416742628150381409347949168898812953102405074349303279486354105939845268304860111284758912950732229088577565941311590419086224489317496880985249790627109059865205287948215717311686585107859493990069635688894377236769542460443901522911880735443445945895781809808670607686696349938695308963482004591488953529892615529905894948065446111715324960545456924948551172245725924252161652446642841504577840283886915013196609687825163644411155024798890987694172783474834148637750689423271839185679770275678117993909664225516594530514882719212017985832550633348752043627553136468659520345746367120044997313268759031590770008584518896550365310589279991546994986788654976673324247458538755624346071303789171947856883195631682009492646922014703242108178170934330384042428367848874911321983711502476141479365322285340937033223887418198622414259869845792426421500843145524294898912938533100877495843787162016856160686012764359861600922813130353123016005920382436287307182779467044055648242229638504115271044694234344990535544619794082875785487880576418606952611490435344302012359579124064857798213963829786209573315846333896029605491766085857707923414587291887970495836367275589414564909091097601111999278871342913198707362126630087074152471079417043670409307615227273547839828682724052513043924153309759517724518903104551532717835931173285285684577871115686170683713801404412263923849043536995978278884502307374495151990172424741992157447974907182738066967082396644804723122846171568336017231688206951519506369899760655915616052718010165938500024027803061002687228385838626967474306869872808623899949209893917823846284473393047026575192585273450586381681806221665056467922855395678560567651147204898877502729489978384692120251992662270857600211948989727513311182966545777899966867268155605456047968536851348357589713764107056451221074503456238565405757200035857734536918102563205816456405198677307222644178959992359938259064456626547480612633107227404863638736583491605331948344768273013238895741105191781527068204164270838481054203763193190505608316436793832638058293606278515609933417750416239781446729546433020088068629137620144215026104998690417794156250490446495141512787907601580779132598386584756624129692880702872260481855236897242889028541763284096552561276178910160937532061065493052403972500299930469460211113350669405846792005397556193553700854314894256340158087683366852909602869197758806134953559360247261655939469208681338093898646791994914581488596726908227574422719362087408190509772127119063170170407035025946641285294470480129488714731873471518126418194718721875948450706449083376927361076437947023987162568759781984186146307181786307118038926889179215892807898424915933503046758829221660273839527040832796014137553907938465231450564852452913482201511004770072478915964154922670548460030996695202965393750110913754588803720444698415277243556148233931746973532603601189633200655331407943024429922252821586566243422026808774211418403944426847765169314973679714472382978609254329335546129020302577802230675408456889898182695564256411534160293516526955603686573093223245663498024143443112331443999414498133709937497401992792589536351716636673702461232601292111974736647828434393439869268539416184715273871831984542139771678028851212864404069441660948376909506562952261201142260701983531008785184883211486700426796922945451607969018599866674444197691431256547019037624457723223465611045601357686199870727311331958673030103001810713857188900504093698819859704801792889136468255957360829315992814408099587838935985612240155012673441167252462838581655360892338313483891969021454269569391708685593218781784921329409344423703245918737612066092123893706553147886469518635240901986137954698175324162764389032555300156964530864313964929777194019058007834164227944122687527869274977816800223308555947589002490379948716464263569154221322818652840851977032276870541657947696595274157998101104847080319078483278768467855938887895938804092124395691537396182001426899610474247999250186983557707925823024616041484120117172281224128850416339888978526254582265424502908356376498564536378726320668384110700882646968437031573201128723783503888107001769090551441309835093353292892906504074970700959362941747723369198085607320859841183310941286561408356146216617565708979770311634323955751107151061638648271765654112323982033883613512550822373621038766572294372588099954654998723447113270712599131873433693511478667890367100635674168456893913535570387099660464175159033059846243075667335667239960404279290507250204851194407097442958519589064169955621711014002141647380034444469089221268620369713167298868894705325613420234817965979762356112958385633974199868057240098949734323692140319044408550347268103087996603716832613840318193186387401364530458831958942951681608546545178683402278411742215426005624973485926402268433177971351368468148395239756344012440150167671955484311614671673972139341365913529418336341925723642223003048841933158056402611268858285853854024747300993639477398407633387921652249070740581996516857618427345454216018245876792108829024801734551080011745446888167840883909200509109330271798539777358195439658677994062723436855070144884001256680169383215035244332102886797253524314082818195968660077659388625666935464453759115144816339672501960112434922353516423204049366937629709652303839542797363843872871667690742159920165929834605607209034475736419975141643330160728216238658532965577518940639742352085051062159626647308666169060967451242959546927065605430013787311112038061476144402952642400753739945626042223864240870196920593514968663732045748193683885126391701188137499816382996602895567239543869433003248318184002501466231698174502009403061564280711217731008058655358398140624373149542298927708184238338518071080079050418313508948830710478136167567486671847944836749150725271184669967327464160703453489673056090802511492049050633783422394131455219803669498620151210386374413584162929663981073121025711613859717739848917652041354707974902405239645957107039971416928957709004336899494290972339874000888366836953739692289085604277101871942563789781666990834151404874153195370841921340926846666678557500889326807349932512130689099926798517991296632350141231728765163112502618922935561187725121052857993253143129199393100142623182791961162157161002773665607738626240797178831586551754407138607882567799997225135274522305410558873551216816717792993206818087180622574242317382406510917194663173666563549216061426845635741349329558287344916700292047949553884062734273245030611380733879967941144586860701434757789957343137704457497471171617732697707825707548942193902512179861447141730771862681665970505995208034288115065017437705677502144871515526250339129747960428962330817098081127084847082503301092055143697889161836479652674256708111801848554603417091426331578184427724143519848770284699806263071336858001871712855545909055764739677673040862113907596762670610240511052606306650343592608721078027024647978359982236572758031175242796193204833988460107721935790069702659908792322497513754057874177701119510557328217471605881499113337403796152003728806467070551033717818597793173907235845651126008998813596023767658066948129683577154077195339617627152804370659712439395847187477021031881401360553413073610245041924974562869480804308519358765892367663352632636988507341657760693090279250712677623645989664219303632139507086222493735571650337843625430496268799372327071059497687238435238967884176080994728278246087342397045285352698984538014153988334401749153899112795991876634148297621431363703788694888908024807447187624124315029049347012582657941309353847415837299483959024536174915882363145773596709218539403572930386957448990184494046453710025796247355821144555816188141682574711272990033583580558112243744368526095407349598896903744492965606875290508625486961554599944245250569742703055363115800691129370881502343465513348151425715648247124859886558897339728474801124080801401681300394578907905286633866834670767425249453952521780994087907420295854912396192936524701993555311958357072953159437627320007770184144277899613685912770433234660353641044587519320440315622160005609913725123954349909212290253353766886728806212505807889886165930449612171305919732141150665873864604792403740017469315062753108656302772987973483955798460831812551333824298050608017838974582911955973079285042137608212184854341785012451240636582199307084994731344753232960337423916560277258958535328067669724221278718771947875515140794316144192853229347406424932961125995159792542918849071873160957241004518796325257453464036676249803833049570654992468969378496513178166383428731253734824374689634665982326099449160642292563000945020084301389875741055408536917839200147157888405621236447767698194367558192599678594804715278531530575312701454550599982335718395801908640665595010993471366947026265652237752895087311986293879921850318340417635508420757065482057195174086871321548841673283005332931339754234289219587712919428021398370336856005857943798352374556231474648206161808227015929845307236584605713115661702839008927074849763645130509721213396370230973557076065503099197982403588739200856946611054922873443553789667233676993833427299117345185041325232396595493927642953794517686920238894929576412707374202760793401776511080391130598758344330149648621981757152655714678289589149056399209530268235159464415457809622156388774502454738295331000570364286943092994407500568029528357822971253559214704041618779156805528324362012157444539252089146626893809211322503090472516228137691676393991119464428842970873478816017596912478705294531833113716342949219195969368423663448207011376514598480558203920332005453738400719323991643963546469201956210991171914672173417459606889069293383648666874716699529491565097398538625540301684071303163665843698538456946581010738933462120039134976136924528127141627806914878009231422563026665398601284775423152197514547931503012735648410654465008793583039678163554039947004124236011403416151563082709746288561924964550160043101933565794169416529445124541932082268942101326421131941319947450839632575098227565570429412730225094837106632594109598572997735730589387597926654196190681798929399514298577403775057721444848903195200167353120422708026813998530853162476266611620794415918200591740072266851051505288330446525194104275967864927897421369313210720482679899482985245260654890208762862815494414092048045296867594758353433855976490517684765044628057395425006773692250297699809200590242582234513608170299716374681765389173406058153815599934123306811812908875683834079676870922931592174004598940865282069887504738051374044394441265060688139754904781674630572840997780488580488584029717243829792705347730881064623034613646594612032347580229171907496642892656558775834428677893825838478054273398069730752991569272052741342710946833726542739318099047191085058362814355065882184953195665234513838525728764730928245757460820462789490538801105867184515823689836394472196142115205480232774513977378433931883819349751408219063565750503204508709880540853211573287078339315957887670016191231111240761847858923816823232712482850440863809728223177743312099701051114165414055668588219830514625720395233160471306954389603045850873335265835201260613684202023931549462746348907151308450309038077075428443869334716865370743600412086923350782103721008409687662180766415021419293404523074561506615761718837701005257571307816561538553258594794893073551522480764332981568210942181133875849131890684172357211287841316592701898498361503629405441049809595748546328350354937695890969156061338900407634949664059125290111333540250134266850941103900002305908131111343413505425391078953169279559393123854818100529870007899658303374976032699456420944795956121515725606734227556287434241387416953374115556820789022381494191616197117454769453826976119563289916066582200753761175053762733052598804022639055638580903830141471664280565072762981781020786835426591485116463527431711707715262560487661964800984661935755152124357149948435177251635544058472207698714626179911190060754469365595260697116489885836337542855144354069606881787838419713329011190920665818722102623719549573612982018386156754733799814133984291836400818217617855334148796693957452483623976557820271730888633403057867954858983652019419787237282521889554255859440460021817010889480208463471704064576536008579939456542398569034044271265089688038598764857896353397000629964591622897806661602092533101650078892712446020411533496355911761226572793386645188332521829203449123497894549792990484304961155150548999629218615126444616221679190460373183763928924287883054856863138980968840560700122280483244093040126725672382060721897411646076160687899623164779065248466929091465560680646825822538601325110899148921726503425454104275848786219114461733641236425552490951378195500797685229942447075286137284752968615547433446175678442647083856258263306956444774260806231705858267361732375202915845513646094142188241611656192528744663881529980386766687639296395713203632339058080872638097440525198862653460517177400388255917014100663171348945807170234818474826522279254357678520461942760066379045091179086388033263583371421453265191671789631760082853801689554714436414821386172448932913071539077885550169559286073606910144495994780940455303795441375125657992221212133357392959385460181365943011147612481503157760506638101922704763241918475617195883216443602775351999832699374109830946451437033826337484427807845869776236873685678785307373045058312433316111238965963128079816397554102636493649102462586789169453188403002384967586751834408016056923094791749289751061383703334216404876845126065703724209693543948263408230151928051383141234427657539847100919366319383567074095933093567482578496773001640331475476318539799863582119705417257430318964904723383324289946935861495412784989519163710134498121471294357120122248770685043390506577205298297936186347186146360109748669172978953822969893476181737552908504318591062376835466396119039340497692897763083970457670249116055273783238619919384836858305478221577357399345361987224667691763652040147879259878521524871276324370601843529310325861156878918237342767924508836042785209346782744891363439005865908426554707567366076589134988467886753588797988123814240363909820895254105944383100128945830143969945396421864202572472685794806935014403975968614934661848357880721097080928996120271613685017558613536606180492072443244005399549822051117180758283046837658704843228742806801769847085170844869696154972850931896694526818593122802397510116520970109133847057648710493088670508476687068697770268769084796152414992465849075234552752292498573194001618930035370559061556603896608035157802938267469506617469493400150290488868605617188976266285885899027248792825898566880986140118533416625258025263311043861134462711096712826145566119972024450648490493686581202974151364677571942554463970758942011891598778882904724989289503913903770846776172668207653747447910185877495082808809613844254469108424284125916969472189502046375376346189337067595408973240256374466653278282086042770138503515367019128817073438183892817297155583219531577621933980364716509951052496548504993109802059104824061612773346480765039240538452555256769277633511455380199947593152906686039999490532563922767468216810248458914296870219690913547224386643980466667607145201576012007133762038019036586003442722276615618063982790518165805270990325005049517647278187547318229347299426282901634223095648980820093318687539451409549201439917507599238186470518897372720822977568097924852059148181503717959705202727396128637549783633594912566148613631921267304629262049669403903178358980099224158531577793701793074374089728928857889436707890072388962387281616832582341906993649213554019332049273176096392135207768248361665315742876182440782769551308525043547524575102195998506630473035161964296926775585656731930685808341952766459391503700657645511765843892693013543209924126371587058730155244306633327826332991343880875312789079405371446765805167401085873595653044286120864710531813345323392507647739637769946709119043807245949354492481708387586175843769902280694548729623585662840603100030752895811661665111882586043205213097889632709897489220226863846514509450963792791280294175876757527237441783650547010367552352018179365316080501322914268326888900979325348265541220607602383254323756342161688378583926812041741886180975297041581967597178579693615979649471276576929905161615388547379519791151610863657948330127681805223023666313279890836808548211604619216423816699528027200977422441362440542107118105495176176078076625818094817269342143589661466277998618594151764560784586651537031215381117204994435935010981825653098603798367060046638317711896881568310164614923929244202500692298935145182834558610038366184140579087329839855056485499941871208106087760720765935478665838614203874262719894431356589682155008752503667264258878359058280713248507355408482242065437548341043629564980973742026580880067077178382102771213546734600274468164248820883681100827028203792978033360734099066572078705694767094685051180453913762233446480552292503897577894735999097680157533871539120581944395560026843204297561801881708124662313972776426352616472096775259395309635267525045085544563985879637858433817734705181589856389010617598729752135453924118624061154597815091376235774021101093940539941803160464629264042035276210914851576399732151806595811072592690780534047470126105152966854065065220151129432648528279607765498755144705244314209281098856002698275286356315536050794504610039454909426544997104092171381026044972013167721692746501957094790169544060111917849256888479718378504347182697734530458892046229580780102255294412527537048703135240275924416564634465164518717575469602727185833166316496795226762250668635552239997702657594166611520395853439166884070775923458896088087453211061540173643702276937653381261711707303560196840154998986617655581927362186629693375182445287583204199421060839305756783200050592686798945883537796163765185952063246476530359088215078234206225002492326942844600641993887187976649515264696117037486126848927882483228471358028939163235395944351243121290680056497137134496645369950794247082437825737351497285872634465801949043496106991190382272410079866983692433953650752735243005455857358563909343226699378443014209565906454132141862696589321164189754090591849021739993109206827464105590516671984493242670609276241762263416224821491808670114839239347117770167008885728525896517481363939702337100426443494490184949890120427823329218458580170865260339814683238011063216567255490086065731691697180060648481314065844151114691938747999764487773501205286028898251538466388400062991532353680893596891908604519909812757468111779577295487464403953995713279220226320482368028558704087033649493247574554755284530775176620006751849911482791556342883001350784852636635547150834680342580062540205788281225460961537449040062437302743742439739516589289189565365335648014008963277656822171040435936360950053638103080081658352190287825184193807422995651148281573515796839716322670635335808807032082076594216364218108710233294762596650508454688674596181323042982312160700359959705232943607130572763212910631971973949656339532586055325524743641859876914680571888467738196540779954453787472768585633860807828998996678842075472288544946406132606819670383703584695464695900241921782219023814258905768346422180310034443333363048583722138639694010483701220504564125437208919151741090153114089801463819531014283224655559366817588902665730093594657098136668077248877079403941340183440383998005681310959525206227069674571113153591670074796876076395468378729624815054190137218863658916497615202691624951870568359731137454917962279829983344903051437056292304770014858101792050977083513158132128261979620175904572633736862559509744829293197082555620021315876335734410573513929020985690121732004359990931280232621809580870417471721421191435199610167788989308121411713074032979214777824351121193287790211923861837142493113712786681786857498515536035066884899823266676442796196251493121820711587641506264385874131676231854541428660814080935447577757148449098031688350198559893178642261199375628382920703571395514335110741974375447943517052271292064209086765954131422975323171798808956249095697864344354282287282499234278026338041930530650447254434740832416750277589451422356317981398558679908589656494977197275072430512153258838487168537459800742624333445763533388373482895240142307538053668547819430581436147508131022290982135744122091097478127645557671738409173691973510992682370319998474407345521382853947778686673233589439002006575933491441728629735468850572515768742541880386830576805328566372975773672770399769578234801793661549015851950759915191564943424135490598834383901235604210213163128917371563487282322893775270345014550531857926621638504468434552058617120380429386578152898958966977221626863135023990134374728640889054972246995670697296103450514179959056298331908813883812425081919651374256621934043773768358704901442389875856918242192996522701495241553099481104126528312603153008173889201805257136718416342659156107500119641473033293855836981463425367732625500171973181001247935781437090777365547844866519432412638694268268711149500388960185042988927187543968596177752841408240338625832467092764536459205087786116324685059568966860060896435018354031472684274357397087958084463702117886070661192496985278523674686300237934055163709051773004111589098823881127534669618866772798752195867415902429159013194386961589311861148118777311295847539899922208760033749102069827477541546144131677782706692325144916238103409614831454714765151457274364274457926938237002216109335816309163279200210256639929654404772828993790916150074064171070127441980453212287564296738955265017412450381686542809666034983195585372728539660466844652593572332474315514854085822632442394690503151811899636761455570974533668900072809625081974218226187007669066860540853602773739263015533086348154319300806086877040248192203550596228053914259865484319972041960120444815152447683779298084163479420925644024057516114770121455012481694657572308739611782008299705994608647303836365751017586937984242800855994929254400889062205042474823269111690945228910990312238002845563871641522885734485499603955729099748644088680392107220299761047151952024757030580353124584980649695899898181585093447842041146256011546160892532255705532459087786472100308304221920175180751732532223896415418278043049911482795786052901502023594257168851627234013762978595274687413151356188803616957581792177724183013085109617348228212902096983749009523968068958575052798710666278279787518029034742764530648900948299476367154907959735909828487114625613669753376762879086270215858103061442333831557327310277783434935747728657055425497029825291549020255674351662363465774054457106894334104301283604203571866508243655432765490011864043628611805359268259805887395532815834676509221040729061393324112843906038820221188861270270546269497336586389235402143705733499529295199883431477524678755449878492219722623829436313320904210510628479838759810431250927330776423034219766460755385192930025448978452949996363137077147981278516396525520666847443536698653718241647271361251635706711582911353032826966945539967601872101853547098993193662566186986079078429047547180612769213065623993213304302276206959712854131643420832275919285280779355415569657574664750518638541223260355548818049950248710915812384320330728809435017865647412812994926185632772789339061184783740985810939546611334644449005546377509153675706033552716159734150945682186889272741829777834428193698366203415906503436111721948610278002987486976771137293572213148863043577114253442747303542312802369480622800178937051137198927090789590452709448349985437731658766705246494281635842875004664679333190559374093621882388592872360383228834207229049067916324273147284835364235735329977814526599593229471955566932638213522374032877794448235404263880033202524553536346029473227464103843704861213151413712332076752614279188830033270699343008254261000923052845996985087642548779470491935754019265651071456688022358175619312357253888345385146699326942588038367456901175756175586738415403110259812300500942322958306049982081849405307074531403895294885251743541346383030921830274954883367188161190927247138570739013003372470858928702761339378754147998568274039267499940031201087505141018194371918986624722664448852734610424431867918872302778381832190192284979402705031305669713736540385029958676365021210634934581429489910823946061934694074739784635668891451823248679483258223696164250919828787104780101019526442884557174293468805854198765033947431529802628507004669941973016726626555914479399246409516385503873874522739270750328603978177469096725189205411274773011588714550443836170323207692056411981804100822713345835766172680891986695545625360204035658481496893739200036378183066261168975335371620189168189351323205902912218050621262330095233012458406404550793661123276148590012144023908707642439408815375592043245124605743468321629773631794482625827705712590942702392147985739435464436946625203666544278717916344421332497522812243871687378113491929624669678218668759997816068442133225933681911903235124168570451395834028939298499050868405800026110394776140353847128110258535628770171300545214566604433818756931949529011017664169160629730300715738867725849862394279086999021608814210758477293050527366270623493158582309762026358101173264079630451713682396200568085105312280370639858117065521470043860914849315281158257645010580899315469132592437061434878811310170969831702617396765087042101239543712790888185151597269758538156701772414747722543256634113449307650862405218737209272391473025941568801710532906610055813540370789111768586857296059707091999205855955553655018988803936488900747290797000767039090163248706211472449513256210233616080284634427964402164849999534256010288539032046201224116763000326870728407697967157946028851716086991391450828558586396337101710828979597348706061140101596755768789723632214020873499184967410470239650633818159966554501785328462377217112624633600261914496167822003112023198773818537997941010981985993797633827157462588327586750020281390668165515118197055484383601168205381749974603416353037643404681354448125703411795332540024220616316917705806427302992391599347640008322260226707122008260820360659469031437681671859895229711814227164096886940336068103454409526285191635457388748277811448448468531920792507325651608448552346108622084629179243978046490586965703027772001761229467919674658201846760796252271112587392602929833912249606647523047898275580943848361464091905927573135135192968696721902979715211792059132700768408423946267749944800607588372046708456464182910312917823112839388912235018112185677306911554773623711045959893271679861534711723654307593588191548103946014972937869025663963827738985381758631080547528371491468935938667401132291240811550815765253498856275753282096885247032966645476057420552132183349646202764491445702957105387620458102871270814026790918696118865509910750555534806269875287023449949335348045919012166770656253034206257118752067966470553647340857783881911484160368992154302792804687401560369322183848954760818305144559275668537217020796982879801421172395500861115566810893015267039915592930261673092874989266543667322361860484298344859201183995497476333927185944951238591584244792183173032264645325494497063216961762262658992256067928260504435273787211928290772522395159536736702753382819253208143886812304731768498761850373087697550231843676063635473035011222524387229478291926789271563318338328858321616007313350669980844397912394968872882789349277083880730362167428496922122256105652030976351053164979542132506298276653576150243295833618239116215794052226613308131938211426453417655792147995376134627256734802649484082501904619727440051387624237223754246447266166723515431563557902279094439859740928649199663871879456489984930993108088968232616677269111286105117970664278727881003315361071323828614630953442823311598612103766341568139509742198017598519348389661772342321181315631465721460129154879410299785427990591940951198061828140814904202124830396400271376648011932118974034543275901831081191666107015714920389088785118949947613843820859837167607126168943452576061720182818646920678853431159694031430435174440197128093394370861849808830185373313960762864774474793973191668086879432808699116168336918103798971620323830865083484854894704119489647046034527289122498858605877309727389059667075171122861657823947584742484458273727503898925556378183345093181047381741298981874240507416010909079950208460927487773461457528782088313862710014661923249358031364003945702736550554949418487336226884225998312218864228773853874269040723255354598254826771818626611424631143165517067513608208361594146233585921423414065131484424749289092305262980639568960730545530239741044918630941948634755332099753803216333989162088653679050160466089227178655801491637082637037086019775127191769763953900605939410500214375264025423519428986318156429154755385356218953638392199868957437521420165892817969334309887935566452378140018048675575274205187992614189852710663615034759644000811209438728244882694551594257042094539019901622697281879921212895174500193632793247095587871407762595686028181784453247534424436628374568672750524853291756892506388661862602871703423132403638917657975015684552624952491602303765180189498162371420812694594849071541331206812311091555176757843988244803383477487823290151793114403914174930801759245008772058701510814229846791091684839644512176640985354299645136382097624326887247674257305345517753008198198620194252088621455219674574695062702326374645917343269482326443343002021173426493113262036858693451373862153355411486311035352986787951832296802396606069554495188782461346067264324689797644830134941139740733759206547840121328328261676639824859449110311434439043612859130935894641354564225358867501926736740827723290402127351564100427980127046027911223549806132651573075234601024628787948663350672228275875622956578486434547352321634415205504468805273986834229828893147195297324055687663515785176663600553191469908495611791730436217572660101100413291186922691556961751911366355150382038130888107210120467488365348264731784477704953085685472016401431609179454135294939268831698574768918243266309862140525360781134361903070444402627128807361026339549968090195575969255160864182976310936158864096869426075287312930045920450576170551342433342579995564353679414576259038143267133195442867445925350564413125209394158721862307171604507066128782093310412873456633230325541213821222795067854308202330379214602584403999495293177821186549352863198787503899220288363236669274880165937272009500655430973617509019844291747784731757898105837072942458865129920707072500736353430928311980201109715592846181660765343627314548150371897428563928474030674156909905453609385925391955992873865624200611718824520206336547475431278907263179321424902078775438919851849777508800800988240505696164970497099660255230773246341922885084310459073496282973713947042688121728529334922299573717425531414747600827543388443333670161109124186254398881841561641553789543875748796560210464839842052382199677308070259084293490003464974689729386981920205235026759805183760203695062246769962314551047916017301260228702160040804009935293576217706755772808015103359194648878139449451608679532128489378354423140660193928966014117940588743873702925718115270875016277292064656536523818555334525448818157512579860166446580771747577405105582647791299706649686028923379696864327130781305086491737907336553648865389690152369612002779733830228544796539086467047716823836586288204526288885538420409421171144886387807474389144872270399093795611832042872508445336129369940304114865564127384377661640812543548503830015355097541889634163722349832793971259480768419546217481028861676367769930047634596795174821826909793965927306305555356930303325316169591012768489143178017647630109740932275933001831303379307770435014589051215225187317551031200198007550867069775719740184935662272024730013167459454420146008189404205929981093668577328770418765056081475908429803315177707023339430755058190638435216490308315644642669498510881126561780902578653220404573994781373451800767846583831798234503183360263375523416522778234031002767027666255467874392600289194084184043406871443462137747555937023276696157733693354427624078135010426042099108033232265324816354917360203547707657153615768272098203265058119842297320745487259941563840008890869930861867098698262324083937266015879488371972650454908713155317859276968954144067165638591002627270599910602165154814188880809080667777456848699883061183132520774780513279579215082484040145064086214708210275123494390633964942774420417397465774969668736084077287911820057535303032724863426294106033465362971337562898381129149086873126081278825836343515773333776476873399939714838546070701331138788597340779596490553204960247787740423692889948872127647637940762736236241577493958260333879318447343218700164034624846607580698122232908516186395607834238371564742015455093037941156338684829682516425372810509644479601260677293729275657710473069582783960230719050417023842447033431623928887326289754861026107553608473059427107473224913110413500831260463358601767656855474346201567033991836859336633985377646165973683691687458543293327832427049477188526759894619563644332348820452394818128512183707256105552770063549772463314543352172585684587282335540379969819346645987261660838710906784546089891309849536032544160458537909427496558397089415635551895398828991404464425273145476135580903540059579171427266006929871067535180306667098411659154247931339670840937606697270887314754325699650945335280114320090240419874741476372037970689731020567661032808116173704104817545073808356741393697373950425823452760279969358181768404101903455372062796812580531916763910361687177165792092305774233697626822230106089230615227633213939878493309663422656165325691229486921050760628398856790847449387507953950746865345299382959650582063492492483078017563768166625419107641758427712280408065894604217449638348219945491809302993134304461119534702145909329255838097414852043208302984908928473385698562159422090206779495072742105250038754524917759245738040268619287574635174359460334694923203741117792684408813681712937158010226170793955017812287240788069417497147510309196719792316467011034036368606511061668324793841059436022186372990279499570555717468094886792323595245787661654905008050261122857306738211055696038451237396675942902373539241204018403045603447848283830656623864956565129454967363910825080829219812389837857363309363219909969562987834702984377856044053759869649400867044479899825783421996651719249029044319389797400243836178369467427896197066329900510069415520651395087437199960451052358265141149402124459651286479964402114662524357347584210093662821465408994815915247019752117331113594540726958527937473984930631680806372224214281789838047301909429935320105149079358847370407352780834122833806528120848063715536630061907010648915368640636383864389271178981071433445006985529815477649116668806522310948539907591458541424639171845454834436168753926131462390296788261253820875465097556255659850263487149527950448373181816126487130688873068514885136793619164132375895520164510809075105917366099191629414072461459050133397542361062566894243498815540602620444602687042231730903713243593713774089711898818902356537579779970273577589225874051112885076447099352544821057319293209759708199749609784156387069959676521897150377365077709269071304652038210060965119975270224667277667654594091319382844666534600056508026086187759223714840463699867793246351496606127232054961444515575241088403855606448662142930121486707863367336695170853245657983398054832971590447672155549078876262082570854472065038258015006625736137351568201188621223925530333089830669194212943764492431189379894449403574934812861977662208050055936374394078450035654557379585480227886537826281887064328399359551350465526702006015713859002302402982908279821210825235389273127852521912771239272849359771894873314937899636113839987132899570695043246924885696662715949093240175726581909624476700006597648962156326689003226565861920428736547191170472389122036751810345146822416959618270539600548284629477633117586781937759020310289985779051414707087215165506045204168486632927567677053176315867740961942928415628528675180125509105544658805003366677214844650988998905810852967586222999639545675184828457725789888498404073860997518284120356871395165949629582213567986557962303566528368252431891424052830824473012811503048286269919606367448169801936771140568688888956397137655725708020430267713923902341865179994615750244159072326781268886796463631631334400517400333874019228402411007672444658169851440465090597152352158407341700580747598410487044498046281645147048732660773699106482201874136238843390831567278095734800734905450075919718081253449878795884000922755309958974338018551026079474572392797292393841947127461203452656584928859611211780573921794098231753182020476691089913101016761813296135442668213954030581051059574303625394049023847424421130759283210053999835202133722198084433771259992453149384844322912869572478921243988106724182981002100670406523230702855260640065441754746811741178036785976123142333620488769294466039825732556369682819341983962463745888871551120984178589922499765686774865526032169593739163806045248786336254170918582589787703604633612996161718495822847856153281038132479572932227991612439626717256564113031237630385070417135143939412221788036205255165763897331381570090221058878131983208015602527975791286126162578248820189268164701224549357231678376017348340270539508744442298787941469070244419161242527174596830335746329278028295692239779711331131359025316818391978522796083091268628768097758155680256229547056101344467646353022424376378421269358636452115005762052483967012555582276179668473356861741162683377978449681785538585259932749534753641283865410149746219848932854370237762858717390078490267478163446336049310917457716345478106056911688160708138464655570079204388014792585499786236029692536848747496214229790504045720874350890104988965616973110774644992545790767094876743896054723327272081885294677182874573716017439680490769087760922556404857010384730423717238511627567134521816396818286639695236898144244580063321550260043654741153547919639410626106404056688123730832976536460719266872193505354821293852092995408163795382692684006064284605991737114381998775469842267598613748899228492448301594744578994726408450567630832760152705513081437271763307467155333831592259190849975887171492417865132081720818596621953600722798173202071339902601921967957004331109761944868700292553766723945867058492979285399249847516746959811758084976771581817278464607971335025653241806223726305055420950668316525461959967127167319156572945807824641827796671813477566867453188204329860089741744424663004203017773770442875230127409658024127336603620210268938516754134191056483416275661540368125559974146200487422553951390501283010413876315735908997043004946739523057953637485949997448482400077238096544449122628694360399912435906335592314005438946488693375935719067555828977120341317784290596405033463157634079362478897557005337740518730148047520561530632288544250284475435026724651301335042141424987497311637337698840177712226487028489367819622607317963038265680625122724355803438481681963718545995184561085072378126934243913829608416974547803719610534895684183813487544602985986231139597895520193430661681211450129079462897791338102711899660638386451698829992828174379808488378039164592852115932741347565889528506587903786360623041432949556672869780138100013380870057775345235387689223473055010889976815867645889296526830088799633774135259286792809687509657150783561222371582981210432729751554074729816633956598753526863391180558903866025803377213756560244474055562262713725769711579417447023961003237863690654115610565107775509797646331565026648516488096564172919635142516277737445027504040480498398226157766031832904456075355433317434159941718206155682322570769588187533716563745993199622804632504466221087193423663102087283858790195414667379570815995174983859291842539575749827656063171398775777131580025702787294072187820790406005943438848302043751326532704348431101631868380021562908740268468643449378452294468808509582122406092043154088322918176712109136776121885473040387591413793369016396356661296078707381619447541662123667788111192578912315642381857573870108785857226557223145877380692109405486209119325795495995280264799155364238458975084486082565269844934732086906304720506386995821668636424031847156725351519721464330742222961376889731747185030133910586022911604735371329974346510743135298095095111942672424666335265088116301030143442014553940619592784240516665743964541194675780295181250358046793801874414332592620457957743177330029505699592840200271226340932710052929010117968062774963956518244752497454717058112495939763944040045074165736830522794072498371741612177566847127738102423258395274010159137105691873602030315243494091069882882584549284104229098151730578334440463225277125881735911922399477456617904267206118942425375690719692764861297764172720589938843569893048627321595080549677899026648729876442121221315698772065398540431602552416645346498268923015601546768734255862284159690230320515473780996193559627346653105289736005483189352813891034860968839183132238837317724449211116013066838536325971564362175287928143858125156876144202386499487707365218351781758926985242506616122343443673317567125585230363403601057917608844757489465156519952526414254189302492056717568066491646073595604475682283423305986110031497556383296627630081148443162249388463692433948910275582031289365704889909461201977750349320072009072898775589143852988185262917244234438103978387204947545789942176706688536590105349957199775945222785431241809099537401910901885707894332187546063352237358753455631292706595958788393196032896110801074036799008036660933485809967491854933148798550892027453417946057045783125017266127363660485071166129492299335448915866105688239485735424335131907652438548458979353799751072139960685649938499429242434100116599781077996386627314896949593836072007627135564045127888483365674663071326114164117042261261759424698432952894357559694997930594258498434200654988645478884040136152840347398849015918353100622415311772947569165448386713856516915721325566986721276041083563416705700525331804722605594128857721551288258680085553755590083219292005915120980262803057806621918160782788740628753945603025595592333216819794062084632491894931026100443057613033507060515130272441217617754547288506738344264197947206107875544601070239454092660107930641671953564671805078634315403228749823227948377893471876307280810202462041414841206310581026452651151135430416684933956477386968734549105580313505296710848149105896652976809097540094985727766839638464057311143720732250097926559751914754468483214935001979559611095928636402290013196465469321876347475152036720718537003824767186912875812986041674966645482415004704917801511088365051305665526570222292104266561485669683850680648625938504390175399832672335993594265429946434860447539916127785713279322181318138332740182880205176526027325798582825208096987001675504746358043150513207988093517164537176476195699888643243125020093170263913483790910802292655769983471010266807720006201224549860218899662519791806402094012880836897965078586528950689353366336916331960319304526250608704793389739010861433645591651543355824892447476362583590113587159171410256455308241103455493325734152440895479144789970817513079122053725370261091315097721443858702896001324928147386783026024654020460000619284508816792996341691420841940033504261265982218161654227267332553248931346548615508367223787143044046188246040894334676127646356607173283016699363335918434177761895780992004120498532430488224296781111666947210137130307528693439592805597763512055777539624563219367453404664940429141268006176932229504594362448823203221160139167571816295672445303912810549260337057229219690615828506006479163601313227302574010468406996406634502984122649003686139938179991432068090531758635689298906499688236522649765945364088002861041027440054383234666489431669580618912434892301424138842632195790937270846295342435622053110241286581138480230432805119551262540278025010565239015242147565788450788514857246682550831917373352819532697293400323741794183276816364561923729628016373279084689697386295669693765661427373159850297332527558541281628864729476768838531397059314468975643579315393316889531348706236130876220343551758496469255180969334897262632806771803515280540875211619669458050087875152900772437674071688227155030537511121911178380348616870972487025170017325273518608594893143031406697296542442968003734142073544110059963017559662239787834150427584239146248739679398478222873775890390663037392631128788584683758564452628032881489228398292840848424757948455138898878669155763906912172281804858877591461627951049449184773124737717921927714688556040800874422338968250081495097045578526268760873258001248681500834935234010960828497652319412904545567584709974118994899311166342070798623645870398411643990447034827123375668454302821248571107208780347006107787336389141755789537732036374398984775309124356164286689006799027082052393836587614963575468028298465029795045393933293491790008503932943101584244818569959897702491904204748397357070244631849371606256133122743439849839623092214856800390724389893566782132907088131114692521168369654855092686126352296267002560962012148219727229018138267108030775070605747899453796786008595361393460016304804366370352442641901973576439869805113239897102991729116323699529966880246059921846028037557059171742349716849391098673489881723056923209878935072132712017301819453945532071536696332725855051123637885142930056506515589002396337368188359510193008473899085362797162703781181469399950888275288476391398921396733091702878318401444004828804123504720419446738414633358995894590124786122987107715379376461076554629514508577210912613441202118219662861638136594938378494461866947220355340544514498843422063628279794279886738017104876347210915547368060264848136856640072896133596444981037568273250864830957615236770225355751261293333664882106041528726334697172115851274429323551365229393679335365320139965725937563242028254939372033524751005665268646514914553326242285139022005360387490075442854912119755607610378754210599085458396353219362857459318856434196578173718226534407902250340002744856997472445929057411322369768485003385427019768842813848816123528694411167976079205022571362972386481787843918053459374553413670505071763356931271029056115274139599562977607372487748128587917781416296855845031353626029577139165599698483459378565134042709604338405854836247664020758049374650139650021237377368997453132812629782763100106976392421664964912632278103333667193435410056716898192445151591447429980400962192638551190793587692093499983655713707125160400168590903479117454064266626034429015870955662580986785787915814971902380354821276833875160551312839749252704503806751790358909402863284111656748045081312860272468045053464917471785383030933774448484776765811241992644552416207973224173529306215548159183972001449913287549469820475872762413464456206387930064251813402096406788103829882728036039102042239313214228032656287588461068184428562426300561024381725888111738673906741534519336516920373940893639374789225514792737360039898761460530286462689712896033128107556141353038236585601093853044814618441995379343718473018605496468903744651625753040424653483466291464902826631403000830872204698565757301247719866459223371872014238092574555413853763361865908790624507457546852904455744385324848722637249167470302006142247427149613130757621680611161071836604561251932091033480984948362364906067354417077001221486368258425628996499822320266296556034242770032714216987768898641480871886010602962034378120070893594005593165477231221108311378127306114787870337535255201686009480597199692857766473538749677631897638874086750147474307550375765883531780365904491043794214381713382220243739287739866186014793094912934501004258929160438974318195809150211051395046322225078096314229151463279144316155504591500575415056026484177777025038276208082852295210189751699274412795017271539506832705457843966534747848552356456165408369904614603794657350307683776456426973882358106737957379627685092462394613825440390999501226200709595542949594511387408983165957904554943740056818647787614957264133302920427889530112831748675598937173137414385319315151127471019817717302939877371028237819017817160699491498029259300243786096155480058338710672031627893644077598639343527020314707203077076966572910677675726265089116264071194554234525107593116115467341388457625713007029777710117877589192075299723981033898679659190659163189435895472904178697945129147573744777015632921200399368605980050450798695473733814899025992122997430963978678483958386851552395363462502929540660338056254444372207136341734268132106640406023767788392424571366989079005117362124128641285146009239939665205320572817935349454694550826612730226686476660321727648188553400382799424718133059365079356320589507946886779545711810967221884646129855099010936116197648335052225254991975020860689806739185049615369670625254279448708323561327720055763533718063139650947798365702935564650108481964136071614495690210394723150956073738877407874229799069730644629552289421268746166518260092591745766721531786908506388604399675682957797024565352632954796256425985085555441964165368463419341002161819336685063276454368745596612905513836955189369497280605520450048058739577140813445465956944278205043589382892125649266978405377627417014863643756261446931786132493452564352402504625009485264777126401657853789527875010531127366882527836339019440739301478962621035579340259311057900413030694609090616392049194641451190357329381230040266404685817709450722134231605082227868336042211057759892067654478266541290197945230384069208982617470925306071391250336061855284407370378179782229435943720026254383642431016982044945374651142600585191757360816037225658122001395931754875054730752712331090191712633868921477321470094135903951897574337492640494505562834677862831734863437609119824051568765757364708441213402040251734230040482844058411685485757700459793044739852717107489910149532320748567093046086558137076719402713448985407199942232612455502556373922191152675246288484216601701191571786760685074565156238877586682107507020244140838262766818899496805761786757797262166574069149888133962689829057042154284621797859600475128271001884856487779927773267672100141281732708022211169328705952799620993117096634037040758715121829784255414095369010730006967357262413707888761986142658354656880650269065346081782660114770119559312327794596299613246348304975334605603161043098758392997125313624129664492191722153941995532634189980364425336749522056379894208611046431288893965687737572566063933224503903096911562536434994125200843781690043283296877106959029558289094353341118752999663875784603108970083155627346901680289013586495479501545841231904641558303727324037533864880108672850062032801697468221732387040687725303115929186856450744553889400102270943808077422225164111085664612386082126157476384049796036172507156921267961348339969848249557261308294851296081506440552077069151544269942887273030440838896164481657705708219896344705542185875384603950698859138184169998324645829047888727139087479764965262367060153851078371684027402457368254136230058645030253012655704558252180668058375939349759516835801742250693553286188315839334395187317965097010209578671869301286047724619340736245872418851119211204037580028616865135698921361729353671568293272018462353566599831684496274636071037083337771239268606208700954013569072977827483653805186008527558118154437745460558903939329454878760937940267836621816352160817954945952223219223679895621104131195137707271373004653056495574187366473012353185238190207131299381576506748048829334236260251160644192018745170220293637737753209827784408775856458681050907051926989455268378026133759693479644335608411189479491338511713726862683796087163620527888865285215293719871884503797277821840329497060180626364966582040295675035325957827198798830478375625109918237654714076376422416180862310850684801262046742336209492818796272275676727746362170500792361403500129530220433656103591937311930881742463233949990151962438435114082984458768402090326468979275503303949231371253797566356849403615954308808334135724926200556068062110038581553209673873896240823699348292790794604250618881050973059482386901766273338538034401791807070282908323960228149432064622175465564686900107008305595688349554903403315655295905412506588043094344308997312958736571529270950760277716971005784195075199441639306834847061369897751180880456856821048916965788591783317316707834279421279839652190570749401281892148995453471713000409665657264926726715289146691021882351101831808003255039930939659495267374365475877481535192427504088132153098779324211062276266317872758270010929046909458621497293127893474660516374240083966695493559598132081765422135240848459148858517410585698052671885658310237907081843989294712344331493284306817264063813548576022181030456232513768108382962662687308714732056530377372548451933038148751647988505811478519591939365913165086235687592647373744391043441862246794248279347418586343414668192863944095726825818717668276824813205769332124470627300248523288891207071659086646860578614475737464625987442145200610163284013937602728258414308522403426454761513045711208797847076927207126094330849336311457839039175025823690036405472055143507427121081859299688493627509194641985072218029820027176743007534426127440085830498487740922213707539823370684577529060935420412126700220851213308515696693889317579382745298315245525317223584583066980883098160219233621715185613692006424148415709223600526729293769137652033395632994473278695639157462206029265166036343119240919510782389592968463991911049391620421364623041551467345152997215556820771809317468974339995889953457207109372902801923509450967705631522611744300451974520928290542977980712220731646012772729094185589665963749170301661972837144979729814022092713851771606012757626786447523173816331461229995880234225907257254777990135004695102073196056446701214679546305817607452435320341547964908517452509413359966960835463444398252988282191268356052058834558701302128871879187338352356322803936223680569528435915769526859839516393349003302075029635607446242924174375288514625176472002494878435237925981906238272299450653512149701130987899096698137793815193190549657060099984180798020395815235727677625518411276582104230091070423112652986468668961627833942903097383500073028491711900241669457497279451632651592442405340753974691303513366756592737456698359150097625409020210173243550423985307114160688823331697305754174185922528639858800074316971539521047740731534860159106338512009914780196515698974036927573754638238764671959918389149828873829807681397575436871484841234947588076224081463191913671755670298876054238919586067723451384689752716867258024094822837275724362613439112456025673592596444228644909094872947703568255089508565287470363141939485850210282960118830835935566630291513869318803716184254941398620938711509767274326889537107356147398471564920776625822283329068565544187392831876490455162104374321403477833315090577292997897302665576955625221467345029178806416876758601724771101469037690083509179036677422680000660763028356083344404013797822358561711244925264378210244533184349269741290310333228840380516532272271710305126429978647680151664286784546322561454442540395112156792543273065473817047312824302566415461476015195819152807231246692810534598556227300376600781795764438667192133897005742394305011354353696831121862399786449250969855132345940978020348558360351273403097328529366272786065425185782529659388735294405464473900275215406814002967634714609378442536997233680520059037824486057489270786818499639829919020487151199615972789538968809049628022662706850769524718044600047720773065994672425760580999670438698520439064476718231523440886983478451191921520334628884231622668005952396023158060106962385352381778223256321257041166999636218911937472465794669391785618818100931906621628177266837676061060451896243789104372840142454417117487487489818317137006982070361871278225138478468926845294125297690220866995816082797637067782014160447590755986935984204020702748887092085416522417625857718225194085155046534673869509766465541560035900432257406978595942831751456622363655487934923855045628757093218370818664691533160601767061568615339911819844968155990918442482331591977728418402109245421781068111122865192338213574384890697523307102309573763323028615006846800723953185846830799485181600351252529267538290059592222912750179132712776724546552899661479692045398761378206831702967196648479855582827504027389579493302601255456299831700069511228784055868720007756918499460157720526138784579367983695432812644616525114080390157963240181244761526258292345674593458860309243272576923672334049524490604545157283957616138831154526279195293617867980895260067448838572055032219842373889661573011144614765285068389755693816033206899855094699954276902199747533732093691122749352537444788450052825889481614503292719562585974861900826233535333417878103651016086058292341218515000116784601892571370278061394423837874105866957196990120540307824880341382762532990127546237128694890222181967643114641735359258249805798011615996082785191380877852771252228202685031882969603052179052635323527167219983198289008649739700182694296563637742592192554040684452088129923553755234261929186482258600360063482346004329958544876640025652233450301555453476296995619328234864714338208827653922422868925974300674639624930994744211297581566565451297413355161242029809652360391684940949932712033073474819236467045676174113029165360251586963542015590246595743243342691428952723356070473942819799937921973928322900976054399490873400937763441101005637438469620417336436713866342701888250258896834480008206547926104327207530787244616171421337200131019785212767991797884406617046454891858533500437720493479616673758253392607477434563481087990136383284619832489283964229504671125593064455599684048166631600508042018747010155279558116091019010408790296501483443689041012498997831352447391577637066496868036750730783611953409823583940819900620478445534764113248117660920256923871332613913472443786530028831621386177967041310397854619988711867478983386383253575217458693780634703826601565662677069515372267069566910480921208155139526346650389985465176554036454445975990691298717977616148318026806411628101425218589356751653469034535666153075457125174969547113798632517758981881375557702052567081101498345526943046039594948205511896077916848749497710742986839312326380687812710421873453860782760113950421797623233676137945433673730774360358268621178589213410695822871475812998768477101555260602029154226261431539876651917731280685659248313200553848693466567637658056401077643531924177845047240382118923551570622778608604713362786530189410025799519520028401737119960859831822114169907050877458525778782495620558958753150773121694473494209684183275384976072144502584316437366083179265416584788050948088420876483424866577126595320037949848580806195708749589323903447364867884196755464593277552078531123317083777000113926415644771041538893189873753790521550833858499715603737013761483723011478925892845602047889688593651773123253605764082486708024216968777227917887701612249456110069847857898103998797525673839385798684796312565886904307143148179036093930482977229904083599241330123177086766739436701288286361080909247183557757130328662733774816569785571759375062195691443973195234442036195646437015571937932922729966965325726004750713993379415852834471961276709641297365566763153789365732205316957512013257368150748944177642976927933502584596888308530544811191279816050279095649307910157296389437288207975218220714201855063522398195666776869343807724785464905263179848815601209545030941139365172325683736137211808237296527854578814801356369834893562209305153825334134019643283172367093134941492372542205428872844796667072240320987909290092847064173388867689593600545870449801803583333137740440787443316042204912909012778456750089217986310407961579210046258881171166404971755335441669623620144507142095994376495110219373700906389613421714293622737963111894689307833530653403426219367568714059007476053240556030421386194456969044239706460460012574817154762749974713816174823087851691172249060720607916641640235720654970099183681513731917676788441503607079499528100659057440161583488885975171299928728646558265512028268542502320234939640304953977749434227233510858118158091447986624954923689518234331598199562525746871439264620316085094120909231370731336331551829296023994768482424926856205653237209896639330975138678048855176479009496042703800374899628825598645649240899280758118591196156642128471145130395340120424417759856026417183027403844710267130517318877474912726473491656651301340251847424616068836172338430400762644139188146740939795206907946577444790110366685369629040983079451044276372509637851435625012317918650465666746572733745645102207044995334898055166488348689937465119667906972369334216191307341192788990169944145219537876721935078250318846989878579109650111304197906992765465553190143909433524722144629170863166252118871827642321800385098380911358926715695616482193981536491156054997175696314643079805892675125824356310905365567665691244725692279857786939987797563290980242684171721850118862882151877901949492436754055294967391584447449906384461544971448886704867834434535592539369976041204274606959620392475964391785260865664278682133020998425003563098456365145609410128798668326734982833482544138324742590209937202055672613865148444774119822219440065685554784329996090777758717802630073576088691182520634884953271180330456725732457180237818040552094602668673791262981904806419404171753398761445475076596256999945134331234046011165562186247095464992075226494385974385282056562743937071144882084623128722511451829793312434703332402038127699434030258783141514268847787256785394554455195908956266644264963164625804223654480395149213321364477299475578032133982978815557583395093619416107983377672914459938634423903167638975874408413525958870808168678787516255905620414439625649698746945009983346428358529254910111014877100275932489455433345911673700706340593533690966767673471392434781353179958362713393232090830645562021388915685177622519844330397626467468624217216892246827276905072185487967455509169738487996775111246818244145282608465397885856711259213451465464522277610512917788114637592304650924768513216347315802220213901831237825314084260977371383067343432157841751848366916067812161293957782117396015794259229631332560538137777389585458913706809497263120014421403419552551707828150432702738169252089209336115044732892929755940991598025510457490868640028517686943712257210347289130945002105276374048226401146899004101631878704519311148559792630832133460806157825280486807835307340617928100561657630231339921385749431158102488324258221796485146634955403589754255581788297074101245294016020782383849334631614256867580081199687628507858231418876561455391954057233177828121637583079493185672934010834777270890898717471062048217194940051971373177890840413555265986524547397709510578208423760476325793883404764433135231777588739781836472106203036544391140392657600578854144015312061874820170434885244543045455726960914897400039764545036782376128471885997992497866388862490948851461155487182884895044598444901703338427730699528393985487732030771843943763775503408360521895415425721975976987775038044081985993627960639660547824297825117382358219702460091485847392460292161116493235471605227216085070075042352586619099810566207151908530602403819545051172241776858376812512885383702661891305059428514048321983231324330752644434425097278705520080151968624018629554524708709052806061397190079373219375635642270592515959832739303545623123895868861336255282063134421457748601160609160299985908020794529663389065462166537541296675740233482820237017985235658606962594022434143356239281728648736135471972456034290476465432824669859373202800414383764220158630044696268905957095203949224514137243403893019364017796119245476461180134456403902462239074797822870091227437696618838944793797289013559071159382974471986931013095282040755516604397583141929636691854137947831742531678963171373577820667772305656546534360897431572935197641336512648996898328668833012794704305454304413667307273025290741147463695486402454978518970832959762813802198451995908094577130091632068779316065218100904912963170383126624368391403244145789654934108905332160276582682060121800521130139271550744568302678663890976706035486517153962331857020492156020591990883639815473260142086605565529871942142232422539990682071745154866414934599590733467153437925812445634933885194765096788766933237000836403593588818080602757565390952877189063074858292427803247726816397217354721604866764812063181371810577596253610328770672974017315098376381559948689143932722076518538494993466432622737326288318471318161174770844312956066595097900156406306878662484460218855089878394733266505951612221034882234296744155014949192749503623447707539869581443991448574934472427881829229781927192516103665267272810819749389426759513333762042873205188740949880535456892551773446114757911601728037554395138309460018410949000281880199832624413548430944358281011132716007859082976545514241236545619689911793694293280058645169274722525078659685383657491786732000637483518545127656240128950415885696332988020747566831398966844370258387900934523548156019126598309445947133532007257194666783575028267201228374411416763625243897436222914552261265648740725410577505080518431191523825558315514844474368842479453064723001035433031045363715505919930850920634107335685408655050163349927823928718470041894082290858662313431928555469227979734546914364380251936388801075281264462328348995942250198898104507973854324661146800775322907379554662027787857454271241347858938203641846905927381701599027831240509319786664059054227434302075900192906411307195064861955894704907473434891448553048068821409316565975835808312390218500429071404661758063757330957637211156349420632271061593505358999638550992165745100500560814427912009781760568281315801939576118471003926852812152404264266615680635849996127163258283388032436552593625904113132497189107103758424779295912554531500366502792821928046870663067943469056945441482325885308243978709116183691414315035541166191856365582661779787965269284932563340138426109867793538557509970185992032496695023284354454100054567989062759194180167851043026503014752534125355275922269709306039874705671878373756732920520653395806830427587870637709993975920266820259775698690802475209163808225366892376123971715058927098080514471408390666167935863063679526698784199983124302347487856188130077032275889715842786144141725261939688398364391300245423305312210533161939450336053177066125455274373263523490362290053578519456292710676851531472134702933813531069866614528365840480805176582613636444224600041216288865242120360547669145309403113311345201819270310814523611913858485995250040231567335047092156699380670040404936077438179799285537690098446034264606305531726170417640740850896985231325065195895411886059018605778463378542960726612221919671579857994926103693313042029103007455017336774442346394930304451279147325235969328791371919266708442989592714338274610217386508141103454448179715515178518591607576378723072179118216536012099785825932418435218741006539647224861041086551588733089846828758721989163572468890131688001770271004075699207312170683187650980705267677210048709084246343928251816835258395635251994818832573180538566402820237651073808544954603688062303135026774715611398757824068418251969438481481135366153810130243094600003812547961940414374414136166741682874766859068751284556600082717944329204950211648148757156887860352664997989681291861057442869360284624209413482732320921477342711163917122523940732231498985671170850132703087297524731462805960054239009324481493328569360846752719107707975486806642637759858554861944546540995683841742491215549340175844535360948776301823565459486306667331448427441270530754655519067160250707507468339277518375431382076343345362057885318642953026093411276795108718634668780252347358129910995881777729701090605017177959123797605612343570836557962547036927136287664807942616316475927606583899200878507152881827126823719101968006969360099153367572394102382801928894437463837045225934712274395121710163791328993285498864748917209594104069369568992526195991293254384326962217785613775242741303729678246704095087926673594349448704132318360328159634845310888248129464001394956326920279345585707226061021197215770609150518955598003461553794448553604470257735849980058571543965173576038498363574153132000090714059036883061344266238580063258771289104785233917102446563521235232642141796231862799722582773563107155286168836340234017705668739213267827714854451882194129064923070803878498630399156928635571331815153779497006499005004896998430794241646398915528066620326710230040970241500698769776994725956308810333771431715263315653383500446234324348668378274415962938470836852230146960035273661803762019221536448785423795896746584241048414620419514992319421169902014691006956941992785612638502532042304089106605832836615688515182426111716182610611517163369839048980202482835950888136574825261948049296360483978946717847125918008185976035544118088242624376182612543418085991356787847628091231080383391456148599449935721551638461241320209423036388097164572247430923406469579023867047097664165124319609428829396866800162901267036434423243337061491374382105470495129161656657107026979225990451420241651169259220001916149369668200500887996028972092775169728344071320742687675000848541421939360307790920183185540115093994555331021976910766422958120213711598800956451311474416084677581777303275905010632285532108549469990846520002881677821036674758189373213232711300123139076278630279084246745837339488266531214767461068245144971658303420506740590687299717932534199375105433643586068934246675897710592024835023161208713146841644164123243295993154884861998705802537897894370826037829920236998086122315350276897733742459736984309624550199601999061805508983718874298054254514497518927463659123720188343983099315172234765903964833568246459771965248389508553468237139601541054335216480729417107134851338201186921656599657994070297643409074374969441811605316853947687155237066677690502189626506390575904078096730732968136063079113964263185557642000037245742074946209810213659236057087087473809840419483218256551105807376946583779654788148539735109745275541083993047386115612449834165956655071328255934748387375584764342439165975376041931737715462860948405197032600027008690135183162579623474548820507093707930236520518842220044246823448608064774992081936209082381256126945774545203551342745706048841495606754370444279601892449771166778246688023615465447211845498959039279720761448469617916885991021357504995109583438511415141771914253150393762569803343140733783406474663777038490247999865575032476439303229250480648713034029104715141708242027090353149995275250301861742206035770986708755673749560343900845960859554609038533813957530361296351256191821637486138045493718438344293163985150927133983754279355096914796711715486809221840121353467916753491054799037191047255095524299074750094399338854530846739612163519919737475045784040501555636576741296668335143335291571632111930282084122857088502760163326475050591214668586233739650420282496703482568346081728837102166046528403401884179467953448234372888651800071674613497965205011550559193035584603728074566786328309258693225258325413507623914092027002591831854715327240471310252179763270615138302222482810934113170390230934105788751862644899453970337586029532001956135596005885389398877902244574766619617825948726616736464387480225312914990538546600253690598197870925827897994275853062892102437993425497922517547625174137931665701843286570377512243009038838328463587441239964405410244525773640299240519845304600117075075926127300677278697535288192227720260339162833742256095702236190365512409866464035561471938541853906385548994170018790858684222941268293542425735247012613218693931438249526943626651872896330066759258351693341896373023545647298590959502430147138372806485355061320936329964928473388915001521823480728884959722324629538182967646094128333164691538320684901523062296710321285981904987288288745806538372210138713883885459756624413221202369219973692263575817532895624901896313456261967725352541998923395615310325781449133936997454515984785691832869909080384068862814813889529243868060044045290740816649160325236687733542370399458021854422310433968452891206954597940665173454518264937335172936609235729100282771767783249926545663697690679201799957880241709994221769522183070768359232008015402511116123729104094981145993218404832611611740994259752618806338107166011326623446198988676429299798975473267209577664873511842749526010139356967451996017135716985555840256343690823241377321575509108525275340612296875608892021542848287903736608197946664113136714434322471733521783836144583609981812162253857642531132756209557314404317667274563836853839193007516135530319076297563984876364997865914863538765397232728125953801503845641357959305519952716334168956580781379201421627032387978197199509696129110389705310104832638240447796055955696619406142599156335564530183277470816535143502161621113933473478979635199223647995115278606245055474882870546613313423477932024814152552327261689768106609042057787283030207759022098405286431474134514542298137324255498353489458531633861031113152126554688533082451312216207149587881685190471938533825701832530081469525636575969908717974216065624676733551657387708929880305711494901996320778279729750916182773031398597604983513924937500858619825276882134270405366724577526188233820936865898965984681557486398755603649927327959419884776034623564672164710409298458907746379846835798587372543961686514269525982152159518239420778961079474088243675530931908429794133823911319128924211164591363164519908420747815069811197608233629978766826876213593066256357519025430355733503170131215501434674882649746738878103357339228136240343487712893403755419095480451490661720256498835006380671268407312535289776575984098022665562457441032661000775272768874397925693189161038848137959396584324681092537963905559425999366888838169755088506598386987945309452008903394747652346282986767466468869391079985558088850955436854044381865278381968226439321267664049767706029993750202039960308649337257376781734727611345847811066083719709350662868106941187200890950077001077008620874152783459907845831583297647521740679927155078326474488091681639580998467006689862201714134535831679746928621642398472920305171736955181861921686973078001480630351273143911006622628221064268825960025865002130582524607036556850495817163229611969901018639758095360297359753943089985824051954825455933046345626579526039272513095253163432246568300698466879066052238363515658664674231046017192698941366843039701858294018097631821350340098899746337643769008883687680638616428993976450049272548262466797019144587973100047003032081355604097957415478957314979647756643784117473902169444695457164628283037249288223536269427277128815396385297200362986848284808573809319458250025413079287641915210408824471385141163769993921192919206610955092494666829423077983322082888491455918306501088414074701106726754800067499157440172222942903633226397965469308464358722396699256775124043722555220924109326738625921686424571788943812963192823844826313934890640472575415461515882658811047163202456528769763594643003959115102198828028208861888868722142030290004458602780497346601112058404636195316312427377651907611811492103826151817866066894739887783076848305981497940335939433561603684457719395195126397581114549423475510767517911409644303679290949462044239089408735601055077749852049877233326809446310519091486912013114752913304141324190260554905050184275208363313250097377537610363580736353025870842183146360816405439041438470262576327168451078157724574204342199300113925088986661695355042747577757953735392644110232128952982181837232433541562680256380345684944735259598673089841920648393965403721325296037678279261841484510909216225617583779985134802737241349243919754096129278860343361404995605265011776444705703465106371388331442675445567744000928268840696764491359617903557927925411604945593007987253059707383654513752685901936232670472029459380142270790301453459520895241717559190054209880618899484764010559762975740000503053730946472470823301655446409155276781957267949838541644068637412308375789963986021617044172984447699071234220661927944205829726602664101905628797187891963756495967215025840366833565708222297747323270110719606210094712513922300525415992800706869012386665172392709024298371815376518402479591784972487718052506517092075218728230674936410676771491049176975043405796892894376013381886682757787186387568351838035274453739357525953254119351886737618045436625417659750795934837744304290368740319971209653198135052566329475975054433298183737402166557734921353427449741427593381943003518210435865180835686709842033435270898081836818503930665232973418427270573985538682845730318815728646436565629102152964162836318511921800997222316530747326653335279935187255448130861993106915038674293543128636222675947672587310764504937182827247815937293135015211800716207530010943955565607193729104339748600165736455787241666798355127105976237043817933500905907085226227553091990313279170102950641249147697784201642516254185409007967097759499003493655280304785732380214917654827656951536699037028688525215009425951178145301488557626852783195649173507774234049967824216321762728162952713338407043578643456753206484609400742194466166108883426981965072189581472078859792573268856986201822059022482800830268886264477820014917445815234854087963760543640962256544537135016068166611195158061931779520610041519773421816734896561722750643645549283889505001683191644918105314034853857191557806874918024483425910906295771186218378811977060947059475877507730297510372431790559043076495027163158949170211352694183150953716504684020565973393241308860922390303055172614377293404569956999207865274648390561763055179624307827952732635928599491557710934761837693531851955434090372855476065664049026621745560155688371249820312687025875242824415240397838416246133082873914046052786880852013963723067217839443549647692261855049382163134493362700639842647541596197767191476663194997557514755583315737910544138066325952744718281418571553399725430221296786155351409772710450263872213589336926000443220562028660665498160831954046375589539220693438254662269283229372527203907590865979192680748620930548790994724803196543185820653914588309643848310204190017805283915771788352174229876395642750379058074380674522230230398677775037673983980911472348638208131386779020122203271038387352386941098538950458012093715213756420726634288705088022605299574915387429409235688256784290632972816846465489467169582033087580105398453611786195389790428372065488000068730963950747405380499130260750873784676081338093237681300313010886567065449236116958074364997804992416780109157951493817999082535104427349281581307110884069679624222598020269454883143214322835285461693488523251098747447498137104504039158502055989200087366094471092528265425219902903238460499595566602550418651863230210487964950534146921437861276210201047153784822012220127564721041143531770252963573110374460507870995687374114254979153150716421493683074217517258365190433064034139676959465303174511097351016774926434085790982755678614694532383078375211697362782934185683535701714708138061881061933914442073944081034028467208772316223598402819308782775007676237820302045891075142702468268798176195877102303890186186448997760377641814245222970191266066976493698644603320923855154002797101333751971084813540835690914606634372489541923556462893430155883176613444298502999061539558255738947945031614295692717139271637695951410130474250329618873459735340708067222769280775784725839684672483113278297914357122766587538724954935320734883043161921749855441243811690666917846958769271919356310920064245470901057083672747897235891107221685531469450560126350144996046580411824259178721675093480242384820610419088878628150628511184708986563467318412710805574646455394111865045642856563507078313711690039296189390732166090370099229119401676241592879104557904708299700885135595330903665631511366475381647126252466695633098580397257067138526116524170821676602148100224415042410747828253020678299570498596049756461491754915540529622912036266564832525648177438062489024081244105003194892222575235402472860914698495864108918881810310311300743040827040654494336987194109793915801997248594972437840987075153531466379581045585960422716310760227467093786772134176953723639244520365385035453237138955072897900588835870068231915314416015628647259728221172790172243680263508911691427626513140959459872297759587786073177322006519950722132399906214338360354623407445513569941426655909946254700805929099751433816658731200203053129450584658241967753638984303812524297374623467466280641185382022508904194906472672486452797294924475181215628845632453855252632715447809521874663057944995649249989150774192916895143998940214594600866426047866169287505955430810317826557746688942126197358513601390242847745418348885752134638297091574066786384919909453124183198620968118482376059392772644252014847483450636661373112162328448765417331038440619727542955166276625374864377463761032511049159370119324859198087881166103399035289687097101523943649530630238276465426812212560061148244432787017314366137850683758203073692536897340473353778543453154556659123223066658495469043441490202625314267936806365437454329777620285327994380217036263714593400552326133427780746540647036681231260875546971111529409612280631157643346958157733673121685572689012953612772333404967319236289276134181706178756541122915814371476866832761706308647465189694767238947845889983841409006748394411411304899579667399346141815325473919415671651554776582094860842408512011081428023961005341847788061835515324519769754757851552117782540588901026913730973281039646140393485100362796319447574869603497642187563831124903506000918901004623358557494976355455957877906592182208963053084454656396609452233056068299572204037033576008510080014351650471601215556775486325184685266439223552557227202481219576314122319215669027609597703694569442659922259854875020033419365021126287198035716174298648974346759851835515745393228820674953830583503515582789202985925248132185362782396350920191891959051223837909964514376110319303906783275811490345462839385286475720950270691432559347198266724399772574195751503977945696442651270341400198037323413046889707624757957109011168175584424216268128927194180990469781275724230862197303100418181494461559349609192167082937823975182573837440026989867115130516696568821538368005624427415286696738158923175928512657336864766352365662020411844846512342981483442166010667353420302328536061915427587947801870791642314127675851802911316783400271516449543562834863611758771240525828015099889855680709351218039215638568730663905871178644323413631485708284709648197625759362141927878923319995565852438574578403926291174000434385440553954461671540050448805797732998560315650359437283302788880905293540147788342666456169366731601812174693781041615540681100812559335654090439480492831040560192983071263475461494791329977959300638650588707782377362859680531580892653907930234231055881497375360960648529692003250692801756534241762105181377021408934268323610455584878119211060626056706066891649243689110643044165615151124506895794784407600323759860266449452936639559264533850053334490859322192286127172457660558182088964888560964669409557275874660057580759619691548025479611140988726290351502476117442226009543872025963839146436818623134925162831048711007301007208176426622331096924777904612919287214393445339345622127625904652945581344406201758410161893080731206921374992074580104139518488637014020333645999577426597962821506125313354493231365918522428505437371413940830604545641215070147386059101036344404656138158837668972438893829109863730890039276815361521274471097714897912774050937770677978324759824693884928053600244323139945119347440330280420109690759801342580491269782688232625263558561001130389395499655781336438265905694097121308279626611947906794801990304335164964550835736577088900839932547528266079044681460954737603137303777798306812867124615156204088742659285186208741930394182535054604214726796295075802050575886428208346919132972005882431121024220103395296648732849109827289364300132611831598574366476366193432083573225996593216200651417054567229970559639412675051503186012462522883657378479825099972477156545397763398327944861593309493619322380583705964234016575677048196192381309656422796797323160438498521046119385238902926818260205721298858877276917381119782910663361801784396061954995956127470541590169399067803414258969225413724843974612027132568669345585382477399600692068256743205183617858952068555311055702063995539333296502017130492960004361359541524618823793975827429320838589496896670572228821648971390960849978298142046232268346596524590073157416377220460282312969862205474565113761174940065542745304511865517031501349859043259296023017942587923448754452260742440181096958475282041442032666970196100242030350089788558242363245511866824917388567180604415003412186679126357549362819385377477259006834497408678418369840672571277347027291301572299511412794950409794600277939847699355403791857529773975609435526142403458903283520464134077526161764202599301371586462169337340049820466477560195588896258817226942956757579400406492557614849345517650644304348259688532168322393719169950073089353402296606341949050490734096739230400595273610006743480429051378857602851606611649450861703402519224669248013099981293879630866382350996562011443813734543097442448275947533479030855411391902401300567521537646147899453700143398279883732049921853081439198727785371091627270162486714118286437956423607555156554586344249786610518895373215938017797465208183831739806739842422320991050267552020195040893257276186645138827625527868137490008253113760322468007629867671540865611685295360728482584255464105347829325500818701816882707121311725471056518625722693757019797761808866355690895083215438964970576590380443764936566198376216073616790802910354695917404396281487904202076732388588873141573614618333489499802106319391254012834791846358690989227256186566992835974083156509965378092038985472882036058223726371399329033462125696955437543843876257740987837844953091835431185892764838603316607396599596929360642894454861812960204705672991663736874986632298582159025952228951607889265875415099351448320956906376582902557740396730765003687478286950034051336575535096210120769987096840169652571816446836395063320795050685388542801968980200296061813085978248408970812387996498145840006064581205957252015858459732956619685667752057970027150685120996630850133250087133395144822131334418819228346480419874932252923056717940103663837161103841485377245044180324010808798467363696838604831584280077077863782791891414265410765662512405702073153296532861110012817871779140335189212042868198664116281163327004195039951582467576547623999632121245541087308371575974314179961056852228694211630244551943257347058395516773305990751782372016254593724438113335348725665981750132643563985964463680691118286500325724841633728660105232293131901554293356203707106036087588226937062353817042042731992803199278702349794733019726984989077349730900490920529931286271215536848535145742740372795667581474730122459868131620296792087513460256229723639725793737211419865104605506016917951384409794208779478908313417111129731222316857557446231350948385886925588407069034842938736074472483119256596403164060325580129926611467947473322892230567491301901592886002382015450332147975203526699723594889765401781421741820988658602302216691596324470750550707903230499905207183550562614757187206027058233622159452190474035982366724765686806678633768674072697424390500801222352613820556193038212336833958959393145492579567802982219504584158052757241120873854591554997743665878282929304357018167182873642947086718876915208315531740193683624949974037348568079669677913582361838175689524900029771185888671599373130038574097255112168977980709956335128438473440174996570206885138625651974950242431127346067017446243617238573924332534225679210160082370775053116142349325620773310102882630136319523374803187402998716491842430470616883087839831492338373002336207348234752393095854225242039118202459849471362453907930894583392591170860358573002087000550695430886809843219945434632348656991625374758832887063997454399107666917398219616647900258366191023369712186621487262911161808545285241209509388541646753426565122983524607642387150966027529615225352971209442922313940784810505635040247045368017837246326246921059297625066589344953038965919978851129538658620661050759604440044411837251728806566672510911373969542994351591008964782961698491274696031399763273909817156852056337573832300159582114627788637194433422445128429796931435946063554736951238789479310861455839079457585583803124119782462643178153133421347508319355710777176606992170109902775261175235607679643181235183722180915302992417172620602176444136382894183356012068654625469029241898045020474792236950878580663811777271437841112917036831768923413797455152155044996944470146163603512411622781047173967115228098767619498916460720369475859931362477428181435655901053865746678253129325230925323124667590447919888376504387802227215605073489129257344894944579680041973091181921096323744242352231060252818545823948911319054238409175665990216438945761975033045529761598568295641851433848827129367729575408802022189821155372893688801862108760457092933459710258749805302940797638458333510666517729158966495268044625914803896913781821185543772723140670825680517445194008233112461271701443700344031879271554265252720071836219606339529426814894813362536054863692383958402164840269314933111869041508340129844620857447669164238792168806883082084480925023941448522838568769592944921532762070345837043745270560153868503592651179335579545641429257778153234163105327215143398790290175360987330304485932042635071442491347492909472716839300332560700033374265320713430464477632683851841303134135272222991931190295241011215222678875077854893299798102322367557435962578949134292486225353488588032053168103707205221209925016071977993708100503992126276180081503897993048708400428975140811614643843662049500820813903370799019901616412522463524845006084894699758708473764858543908395420204052059383917755899416667408264967328274052992323297169238680131863552231075138019245706784246107176950821095317256499977878670347985845475471687172017507028158568151978211665100927765524543537090231337159396101679046459223813815074436649154021799778024374540225241607062388066298354127689736028703680479929715397479604318224492989687846588231612864162055365519619018533243763969865526728654131650021530772599117805253430773936574892381218045411458611503988353828814181449928009458073947421839834908623207193854714690486339387039034755008713940585177112228502198727780369441102244325576644949889067784802971346309496118082657363008178022256012941234361106249227195080901682762213046849693455396460732530184059668372915065694809681627217848418018100562448062440596126416756857236262877248887959270856447542232342790288305390233568779881104695654602827074553350458383571397126287842554538229405831094109385721607766125488442123584461096740693859649907805942020152229087246418116145234559257352360085265325074268912731928893676163998360209355009291245469013101479856075801414130805463582216576189130079066744414459302248312773677897532657256753173734438375036880649790161538875428384687040533204993084303939508392666267680129743301987147236956743304558525497671458531341253774259030752563268821436950810130572081551379146774674737262656653402665672430455685358318671972321132808417933306790388384094209218374665301618793924335308080600812779660523157397894221010861308132550092889982498107281409135969930483063029278868153865176871764386944224297585278913809701385005936111275633772547165222154245421611094945577074266503823075606294331877278557465137178680146200846811139811136849344047758674714752392835735115634027813511375529441844067888163847417514258620655753945866168735978752179168756426555280975401948765669397394949972644298505273518812986210764170750164751575425462624393529595135551733948755582497757649750356620013059738227156654282986445870020689739872330069772285037343831239481682055162703812956074691948107473414163264000751796555588019855316359516073879603306694170880920746309309250005472796440054679955516993637255928128201078708320842213575760675014243813745037645814165762435012526869510361757630325129217971939849876304106169022441365765112660257352394783412942790894795799531902046207015532198046055778797620426278755748601499050007682812991809370447986921574071444406004904920682778445394086567114123910428210181679875884355294137978841900136243398203295040578465904111202384192587216844046296491655897342179107876621053580274543430305012060032053411152854621257264438148347296847587796209230709837752020243946397306167957050066730569296633514063191257169297507716477463629776154762247599232029584989597151205195718619663628210360505089024996008514877555895984559491495940705061200367950778674942513723463347316335338289430130767670351758488140544019783581886852376616185553134116021792945771495708605760128548481292787430486415930094598535636203978774205893767934774373521365317537455751585124964947004878298205555411208128294200580932899547872438329528773482284863807755406270946773758102923833602299340890263957893091898888582434763686713822906731585918873328142497950678129310123102455436128423955257239929886823767546893969253216843107371458814694889887841472201098403918099591511016260627382897631460256796631445991440672887079527529065382268491212592712880412141909179625463175664853998722303952006732677163693538470977663811209817548346970131960139029339699248951001656679410947288346033542111655414808511794515558896077895890709716816312681409226540162962436091623525969976048312847778329877757045744214507064220099426311530581732651831278377865178220138933601219951076446682951639633257626161866266402578522014678017146784713370470974774543308932370406390916002030984585180137856751625775216241153198228436274535952813693423549264667661687617396200302371090244084547910199603715105635524277866767858827257226418991517861644602374389576372636660219563205282228184089137469696866081863265014370571004515790566353210754740433422713743577861797100555890990260999191751539181575565349934293410691863791910577460900193034025411849624759572974909088078046703540593228950242434493541499787294659808874033433098799179952218884937716769970371328368743963700201326021861536414012003500678365166488154098062162628817745235159205569668360996287325709823394774783857167661255118402205306648894925755405158080811745666137939129588107763549968762652511080887009054460646520849116740590126619517445524777464503011890133405814488523645481070722657140387853446756708358303317363396424477863224800088259338593830729151789412787075694392497896962045510873043940417103194718727502725389198357565964367242629025181624768006874126294084590808758527981742009876095678272127345876050350384720397133789696963757162040955597525777673537099515914994690448793007355801551678308939581321078382578139927864473812830993416474436028593470761454729531837837835908000504611436324680864200899744247011798995087713310638832938499613602127729794338073105510499036251978611589064695228341833732974554366736392257523841314733096588644680111182388473326071885844936197110047861985538826752293595898153876570623195604439803929226345028681647816570669471000784715074212998906509940579352948519163402713715645236517485249220676987298413337646495439276613849918204331637398637360248147672522864793852588801869996235483495996642821521021413676038907019607725174414711031564310641850075418320984186891019713986064409736932713362642778330029075058852165574568499542549483943573636031431682905282504058685529324230144064858743784871803868073208458419392362513789214463682561366199158986068033875807459447865085700947608501954558463236038340848545353885639497609907227695698175844728997983718170206579785050973438881240698386086150290257271289647838667613910705611229015741793343509277121196334058283586662214902913801534875680452072903142429899106901558228848487457574375776016253445205813308154088224852099632054432129654759868079307828200439865314528772503847610477939646059149893931638797385569161807273308411699444557124179648579682627577970305394966487501584120511702738635369639610435116505240336845927039486678650825817121216951671405023866629144265535438940217804295244767816603089372959011581657760659524481019774748998158850343633264725668916522809231806934687215856469387132344716395351522501601807625889201797667705327602775929911367288708921752553439661697963614917027871060284840014623871497850279650055752613327599533044246355390158820285454471020767505836663208911474473776140556322061420423235157990607761333530134303704900335232466255048552176050182850496903666056804354544855688813881320618431535136677259642993574779008917417456961949094550669837485843399521778549013685656428750040003319160748288767068235113314308962180512026220099051502193972291264849594370283766655098748755721247484489581459591293517543791916455642718143531251366758366081120213747130165124995919001633693095913181206514242053073970611232379039727369377024958129225641132702285559089281262720326473931928928382591264860484797616648051255267666458844724554146802170282648225765477081624309256555192620107118833248342257543621943060674040977369508614985319539472428507361658667179865594961422012130880274265855846402539135761596508671642205047496286082352129788599889140984915358267417699407733844986530879640067275330311735668252725166551787166883809830724545656648358379197677153856637642063510944715501976501910898677845849220758552728461789571019432444623413807127496675762995933261429110684037818803292174241744656575563538408043808626052654198317930801840743187291302469584161905994966908573541090605629623418700693689696919450803567554947465705443468908682823633829685191679341754795285827523400592977163259967712263902675823823224806275247151089368398593275248327131130628921708925376735193062787913102879736458830538708898139959963260791442432964787263858666228191230347061568819688597150690957636077600464929986676910227405890456624927047951852883824175395451596550834024976609482730761756521748829457705883463412396286461278322567199090252584518484607096106057820386845435489630839999184182385996851555499960631239460994565924922609412730586300193728914241852207612827741885254577827473965934646615196206639753002836757844413441010602953178235528451550288018826643337607066045417684749910758365884103726873246213580357877726296018777978814575136191113444368406931132606967008318547103350573122304316346515941233322175438902884483700262091991871346700578753161849972173055619453188507009772479609984039544805769522113350350122035878554780253302431714005868950424020947139329680775239887266848346345001626259891964107149864487207289963249917834422338368212595795460148375064020233160788639245421753154133761232861461292523034320509373079605203024646010880664369628125029684483344288554046199358901146805904311063506638915284595098034321870828097912404431604526580246000260615150734048018292514169973165657345633700494707650576851780819424620532989708790309300456213249631570323746783939710874559032036381873853538942271486701081569406347611784177736769730608759150858903595484800272078477487008757755066602436249375322543028426802895984270077656513219277342525935975023163881816931738435428992255630753533352831347551436550897523184616232567867304626937251029028857595773576987297691702657240032406103995997924701268519248853735092203766761658670559871150629529073611309076318804608570803354780242583967162718913218407859735982667574644434503979767854622113877895107518690540461049891544106769762493293059967848010170266141906153363702642881490565819459791848973624435086681020647768695586502780807615363723256447815541711605677276821772602860296457114815734610451163014595673131961727211679718189083592627627231763586342244247915629275078862340117974943450516728443479433023150804937618656582940295149213879081641155710208250154139705817957176540986250634749828556922555227962326616734001640571922853621365505631595601645212708241191354416225054877148173074397896864874903184138322132167181478062044148726981706860980388285939723988796039418818171266210096001471087644491315733043551014601360532252234938748305185308008003736103641229915980969516451931161957558522402801851074182891684585114870443508468273624115973133304408183702819295017437245046289439781656293062903233804690900427485186491613820259578699107304284463193697423956741255054988974594566741840248624065140595300854622931307296523792022469417395248988375437500804689996132378342844267631420964246620522927358563659576266561412305935608188273040267204007926556064624571023863655384470055602330212574855360729317097867909973831932634856707397425206013459663894312094522989044401128283803945266071547731557112612053575532305816858301760360429501064498696587086063357277394151500283536331433692713302726717873173234094513065752303845919328765094748328408265493162045003301970653887996798054285068811626898393210901209776368973272636697133262414942913235942589621845998781013419995383572675482954510002892943482516539210703968541317489689850643574903570643170453868483605689798705132374097142255593070328757443005093813009490053682163999755803848856491843036272758438884191421994896197090454493512980845476719502439879255805533489580166586865411537829750607997095636523028523887909600098296492933125456559110253165632654760905567142708478875220592354437855433966595368323474707771142174711780404354953241201326562765037887789519681049006524427987220328261022098783582532498022722184341675362074491379457117000874465433097417050402050693325485276684349235952266171604731556832872194556055136930902071585611145261567144448474614781534525659675997605473899403990004712107840376063426598400747617652162889677169028305535800065570559372949122165248250969272654223282849552927078370483902978527606153713028236276811928224672068969990012992428250410826181154418477077811350267743223626356841606313659916386256858914333342930166640756774298101935128748832782254866210581488233357473111709693254824785134564355770557739163313805227830604114384636665245506701129956532979915280813890511470636625426313111921873301481453414561345699117120175414783537229654126779930937921347034989079824596395796530496224354039675245273289812543325568826472315367621844612497024149979598193040041616032239647235336137309392033995967955506719585310771103364690239294073699726168302730245153450292477186066441022838315658194350092288021072690504091368541052502044064596154991394974980264307791295277532660561101943169409384567844898511937828542619913554761210862149151145880348538943143097592265366622507632368773763176032964087796136437191403121417577772392600340977271351660871649235858332395351178973190350107156121730844463616098494422374322534241035452326182284559532231502688228508167240988882339481629458957538547202250541520341594130306892576270239739739043037749780207619069168129745281644394080497090715738977892611499308658440966686005114636913418007345317907676090343796749232149165379923773420048626139342629742703401169000157191644737920600345875928385377196306426946774764672880635028573717748651070757565369545781413989556406956894350354439464428344701868938584728425510857427931231232860394461310215834497094122292811115918783226189716214581936104445039233032473804433144463776599814484046429524630083729888195616581647226102696063679889921778246459951732207450496818474777264824785571194546608844475086113208739884636112201637850213544142413160061042142253968923421548816651858318575409491717005585225656749255389036404042985787140242839094114857420055275254583022186066888300126653112219080284050144639261920289405381167838058839737442870845964285496921043872288094441266341376631072797248670863325743271115720397317066684459383466995333820862091652576769633199268667154961703528796394524216407419819784551924358330974063569656924312430666999136203733696136614607522446890954936894149810957340124108523907615749834588395808727640658049123356651780981807122314528487598632806425907003742141882666042592451298330837176518488732322520250812639678004503112041834462865846882206657605972703384169200939352442485884795781329109095233230587825414387245064823887317171030074630195879060728144264694494335968884850264271396599532086339392476310252144980650597378201568222395852002006546838100646979366711204802073539945202118674216642169100675044507541037133867117609616018766442876614085763815618852960530894119925691778461322163876569635615688736189883976197732423325013877264483172340492416075980243807173856764032140864876559789114716161668784606160535072590764714645456944086562007934377194064029843413643518838982372823804333077886955599310847466261815547291945968483188894603855932771281818907433841254586137655642659050741504069089592265485234206801291329288748266152947896741659248231881498139960474798260921271372606391967675424769899263435615481643653660518272197311793556176913402250711205415024091021913310134015875129313561448132696591831504819686663649905652408973138741517482630361979172499199678488757327977701480276177024194119907803319490503013358204807152763107205394302408478753322000135545431546600861507201156090601791693332465246012307410093256496531844798944532091585988980715791480617811945328445090102834219173358584877652089753894870976071198491325770194382340371979328036214615624600896996942253913247247415664094655023441418797969050826862655366386623609258596012030143182007006267072258864717078673885443831062965650888657952495331473650063840771561389132558552048067284464274393065243183455779607397087014007920168774196392524237503188308387729537903673479548459069270513751168339460162792779754971779489730112061472107357109625032686156429531803717484067294041681640566010808320982038181988058577405664197206999922054756385411577619063066920770382575574568941916624157531580465953583657955978575293557957652126213364529715714485164976097266746243962013768814605782129511841771140422376934061538465474077384763548855912798467734071805178232193219953274520952286397464213234908672812854613783984577880051364757556905495179062614338983809965379372820975188109316010904178396581462059302476244168361071705270844496359220033676910475178337932415126925480016686721228979412763941444365372634565718916310319624169034757267648506239581497311186159702685826501678338147741724321070300225037217023332918236357969757795034408537985220001787981634137648263381261981602674389755147703636974876891785095546093075960919258318651734635343516717322452537492250112991964798460967150102454132028557459197885583170139958401935259959842595805071035838461662604392108687640967612861258129671420900960765878081556271078673016260046002574627147129860807499185905311274916127489623319911359018525840591627010497249036289483359728267368533154907481728328683610996802677546557599229647430766264200412882169504521959851000329726022175604679213586315761551865623926067035057809303663109731158582450383273971873880635212298598399093619724902710167826280283847347920427493543445437511942017114672240478232938387776545031378323811568274886275873009143249301498785627361243045393348963973017975214448254433764647723547036837713077253816804837570499068847152114934388383303173440057708389217598099434886428998589639532780873852898408768491690872892044897066068448436792103927081325417833350108113644612715287615778375184250408121192357681505359940528503719769381909983397253997337773895023991693703393972147991858022809246576386164535277369513949847225747300485650598146645549698475791644259468449457725164403440696649050435951623521430329792351168523463119638287803192632909246047315123943864591024266702803671147984450971557804143812747479157571787802366184771029119072663605878916143989583803463314557885532364585736841989616426266271723091862035658937251547630187743136498114350740993565711579333628179692401393479337899360789080878371682133526582492269496003067905968238291101446636373077345150782201446180480528248516999461897256279311694306107580204117096484199566803091258733532433190382675885679397929069769652590738320445474850424993414791625503124945782079555672219962127051495488415964264587300885526986104078711804293804894084434808636760763858262794337515223058828302196400690827891357193624593645334595932795916400392144164138638485225897668486538042871956571357305173812854283122424590497749759492937040438260170396667893483133395661039032906066325113874407153464332042019200762142773620954960034999849231917578704247393344970494802263851363372767878202742492202144230649667768271707850754883361418438302666315308081772815998449871544226196211912095401296078947707347889878641069244692848289200565204420218870016021935077824331941456042146304595856676777333006442250965587270754660670745413936572915006347038171583100137126497114723789318649440948223697075773897769409338740319777400957895781652053387821377628456192380649956595029499587786119390442645116000904976509310093781519982512802585091055762600853601338826864204927966789000011364334344327678652767745340120772998056100114701814324923964824444444771706684663975455100830594439150479593229405165196452351699816462407168495938100571775168877507479038567227998176413836787733245218569746588823839767040067235283498582890087691620374023237780995878065665418102762528416447296458522579803320999341960567466870169576021623414578434738465875589888071046688504283400575740546613750580197547273766426401227533668549836860396979412934041721001319285062683734359480754873458125867381303745410750357460094252331993614136547466059201856740524200573096313204886798435233699921575245478221873876068450420553217194079861237367858457767574098779922192650594672001496417153019504633946741359452504757316749078529137514916362845711900166104549116694915922355440375784910077378051217669223523304761004753646087119275245595961835363730039391372225444676578344217707134211213526464662450165243920888762779702613908850296814291511536699554065430475419440141637344981241469876578037146176838370245361341678298881231675863219724781975068819179377712680592589754422808690305895861694744298548689846617450031720090755827563798639992750177519862428491626586145481816652963497242065806896924931081941589641966645948328362774376365186262323408546965720659142004014933794566141668934000979655006329270934750524188906612911414991952463227605322572267989114216355696050521111727302569034079188295130967056999818398473963453939267956851056433731278587941858328375272833522833442366925179643553411952121163610386391434734859254792364494053779694334198969082073155902884767342848050510901230810391188842352150644813533086867645443061842695693520382073943916684930732126889156366383470273022987937239115215069292942330407800325609618606500840142396078251604690546230670957925103664405401720064779809582687747627607628291273123218951960708668878557653235864953506368231882819224221476045851243312789121826039916117069775933963834142908468932715889570936151020459474351782125358830302996974010927364558389335741428889502370791940433210784347236655533645581366018878302021407795512722901570872963352007651615302680731024671668288776267568317733299142572650988747988661276964399300067598947520048542280342327710289406915522828615394721241068890264748504003496207556221967447788934716943448944611599892512235156803322940649433736723230680336553065243164859245827989272151780095470679980781993306493729136408208995120599519838237070740426120864189670121499173180123203604282043590092761186270308688754661298080946589529419878693137720616503212627648166763254839743640147535118945210547148339693032289800433036827753499194213397361311570332543013294034671395102817217056804170819250427759155505958625085050354854335116940755198597769219639309653762495163058252077172891101676077165968671678074644971248915764689720086100712874514630559673536664782874330822871620827208809420318113247373289648414098861407270312209883399660837101095899548566016171520163345850940605241029744313526236555006077486874191987862155983451798188151846510932337127195218570734887278755072762136313961079710777374531869866460340550559831254509060555707091766777827602731128942777491572657251519879343522347050952095959774195324646183579998359616619954817930839671737420500596144971739277403014022110037052313360371577910400001952823783266401796224255044918353326180872236626093320110978388662135856567982296741559647312451285134575144532560055266862840018281405795397665591371332303656199235688256847957305980586481043671761903293035835075482262691278380535985038900803530691266106379421268956106957196138236934559354324151899386368227755424996402254136799756851236959670962498982782263246967367066230838248341837236657842886112991874877018841828284135117967239515506160771326982176078671192498009198140251655244360609674166618430049740347041385328536998619079576876219029684882369564048900899413396540689500032959374582707588449195134986542687330477154329026003649513693399812614996275822066304715758738185162465501851457999518993413570900359170705408248795219765964294876207193091301072455100419986672458920450681399175472398149813915570649815122045126509378873704860714480916075292305038103678986943932804664335888076054087390610932964267836121744081241808804002571252671171495560687044693754397068270610389303000596659713215137299669575401588820539100785881194963057738244654313133235647239781300787222882002952975996370302307539830957881544100480845040712920970349907531264161039510172516133355049412949997384263896658579918463213604759318344382314861841118583587494996501245049024812894494986642144754785189897650133178333115135482734932736167008507638257704934738266427380181120543210579430727354140217175881769898246604747705041224222603348222124805308543024158543162148568792977297860617717771215165884983342652857334775762348929565744383835625396368014335222125139649293798162230089680056351318971232223539153498560156551472586373272542642944082901521394394243626473308537730590195219861265808301871040202218597565608134893805436517389098934519659622443271803389451979967086793484368459545729065770145412453954245354380385650132071541857043763998915898650451671001392216876381338079963916152834489186818531951383690315482432757921537415011757426956520776103270167311213343441817170641870826303706670732737506758667645726488077200940157132864045292856657975585204807625591981681892252587329926850494024680470003276376934719399390797109635659426564330893438467244039513068742891045709111254443657584598977653880458791069351775995327359897558669041757374804753552308987212049001435400632805078436696313576770540436879191458480735615804761138189900519961578154096277018017741122609157727945298469586760246081270192693243699295776775682896505419024637149721856222784033223790129840401456541111425323772338508446498168416297600624503182407291574615365919622043295477308050696187160306669689306835398726815047006201198663733402346179157451444257712557049037422826586639538771554780564695837631555919380120382088553169419792180250987675138397724626439131711058526190692399414889116458020235505859401216840913524832047560968840153015545343017612544615657411328918571428348734034394811205762770166757769597745957814752696351431314976261907070685995818844667141425704913105803633373204578164513113531756678309986482747783157454167323829662634232389101914341880603876213759547464803226404585848123346874688351437520748575745735440475313465309908116392577962945586841001381782331894470505070294719326609575151545523797003332488029430096121434301518234951097373751736952825042620482759310186393006948783735616204770825142025620567740250416487649899481009329580375770097581881404302503238314237952238224338792758079313853087601325245839446992065863174290873335234690833135190903559387006034411733407084512659814389619820867030849359099400834692005588214843362331946077547925106101485332908243837391581341236269694754858057401386007500993784253169217311775334665872338422551720926092404703107154314338720160820345673729574223238685751904416839144974697086560045180861351238893747840261031955831504211616004399826639226924686977193468015441501940724394735454500879332491648482735991937576799404517605191979439348114053495261361510021330776973221762199216836948185128239258263388729734543086952195681844058572113638406819740333262219213279952309048072154208942409799609272442796960049760440126816054987410402345202874587794619833241009795671617629431614338011726108435973956004103809008625968119686488328908515240195256645443344349397455750018729829460887553020362539932189791357198571600828655734735107298920068225586459382897555753807582746607173904578472630162927367936630691466772726716864988883584271853270218018387132202898571096548345254544739674655799820373488708419031309826285244277370553147453708929746527489504008904438542986581352286889113242491088848650698977118591186455890192083329374799585801624013511562550851283019637195356560602449622459063007128609217758812016761386705208134966716228608027658651248804934735623493317878166248183248160925270476286643556543622896061838710994236783926140538928273936846348913410642517397840013506070793563662637266394599239855573582151836958456859389038464248827652813986974469422474656142071396183201043817439487151420677620592096744800673720400853529296731554356822672403261956627184036916134810705882965090434765641599305342994616646237859956733696025307218191165239557434776865550885049187131423695768283406758711322658591989385706154973146381104967278003362036184946741419320871256700395220169523394856391998064558626761091132326784172730343307375967405675277630117332086433848274401528058816805898549766897954447277097807437893589558116597335662207627233362953684695952028287783678949544028251387896290970572232546783373474955924139296424887958263285852041873163420207351701536702502583145440476489291064601130484497179891081417398965761513360766003564629909560221911177481966659685225316987457384553300305395750938763697198691124985164766338819924347514879912802421342873097908369585687553210037181777588786068378076157503680824114928232662177860819947580464019056379123155187132571640765890625439513332659271742790907926390941509986159355022985282418417808294663473137325986725299988052849090995616300769297742367027848055928608852608787892929458115301125272994165746142650900480476927358219278660260709874344444483182150384836213362995496896808820321546266639065637098630644710338097183901713036763501396154688754326862928301648348045456591015050311792721993935232258835248631727564627309600235314904948415844412326358014099103354598049506203281394180314499680590493440898618031403832229891485518821296230228218893368645429009055636453518522589243138408199038793183072707403656571736248550078747026110861695448725530028382433861764180758739404587394886513245234871226747627034204318198181197072097985559998181574944717513395565857538424496338390214332275759899754065080451672245136413643579817801451181827853927732153632965254385180072155146542203513799918236172622696430466902974970269306600731483903174447557257893516506290908453728983910567079114862123517199513349008068362818844004022816627627032743637836663984531204884770847126454466205974401565017601589475157071384752296713571611765543353696839145429840618841955108423924775780869585671558559111283112372106116571899387344317858337604533773113616289554999562435461368277371407144140678256956097450597993846716748846425518316371663414090233852660461093839710885744729732748230189986855347794482226568716741857989240443729908064194656708041928968871519307515270498545804284527759690682927897111927735283080069920392925783274545820440882111968988998520408311987804448329922378909825475376852252207160111584901359045428182089778089481232588739289660863951892801102490560219210159438371618438044365896686221023939917075556060878435456910033412530669392815937023321729413441276949182107920582363059262921852626167789335924735697500577123997154531252186328307302059520761495033528891986261643318800159450642538407196027893889975448704503440389563239911615372427256030829613003658563839064797279436163226946480153492649219788938465332120578958343854828263071867631277571522470423290135417091033137894155907204616537512425360995673589958094920114873257774663996985875162249259252649050139250951284964876154710645083137063021544954391170916253757331392226273379792204675314388351376115603854276945949549503659508217052151493330977157363363429547626880567175877750874465750553095586780833533783280450169721452879203475347840649692527970002673175050086263468321174208770223930240042087931465208071276631447227519186100201699645012187328493189655509651655280078641623579054703132829065626246973976357360291824333923295688660641953123392018023544009033052150690023116297337469916712784872448753867907936503792628627078829346699201545435208607862034476240220462528530648137329741611993984820227869212449430258279867580030354545509378564075770624457144749871062615617771106149126776762552899671421936292564882875434237634164583855243225125665370219180875165213776320279002409754818357717129256231023611970695161007338905519720394785836836932630512914891520144439601613265440424177772036944154057321459349209749207383190334842953532443323132969098523955549131006668759118703179439436048669582154122111952898238092501558093346301700769586570787339137850936021746986609953733402706299260845706686600727442702027747568290459401683619870824352593511174981511673655344052140246465001124864805126375283939176009587926749903756499912009506467902738804866136458087857364313954475947189263451673675363915173272912947935862116058319376968064641600875762283125260477277247199286857468676979540873190074957386554183084761785972542117903994878747330274775451471451361922569658435322229239879343198980073469794533744613283987510735657027779553226458939129203616103506938938636819925208186331974179433142828325258917904452365634104239216095983419174842329904986687983491224888614777103229213727627599291423920053756150538462874544342346524198023789141199147713864429820393919815913952372364761920593724479000961143086181149485892556675739482010045682735806952710110113368415457138175930649079510495689067057694538650365797125851163034764848542403815441888563002345365258040595394863344161471825923672148869390682228809465598957738609303851846144584424724222395103944989457369861826214915613047438799702689597119266479939624731815598952925015013166886348021278160779015907465676296505920530020406914081367577576108361115220577908629199319783832984708828810083963070728677620564772885761414161399745957417778707264704808350709184604824502864898608153300370860128157289339967454746475100221604710639691784746509680194918724325162227639528360239059199981031656650749318543349720076288043382431228427973695559314351156456578444628228519156465930922206763485115628383762103374993822608079492449381073640798038659712637085378920576113580732289912406948983301985890605809241503061875257608795985943287642505099664856444089255173149548969068432979250515409909300828800686392522613780589330283343107081309762210587555655866960072221145721009522208019158715870654099148674658665122136910128304694680744227971764572844763562788477752475628826410863778891667201220918205174219732715786046411255676940068480049365666647215867212503943527360340583726971046109584505873770529683435830174766531074663386662338705824671204168326819741585781823265584193959620306170846463570342066309311527517976199307958916863302194706456915638716552536163218258281021872448912157375227078371276934986914861499257560479796988814219057746401595252893828141351698412853739760037098403532429229064784887912846888913798555302218526828284736427070208782019333705570953548092881256030852686961015126182859920514739737721375027124671678055433172700229591849084019457561257944806659352090118992981215326911497868206125183489183473296725176948378912474586358517793525165940595264141179564033534695728556935641859276521530554883442232800035207998032145938947416916554813387685206200505525266842376825080155576187807546402466940563994923686199563917017652532356514509639151281697368544488452592839000186741608147011493697957529832357777488781725513918191449225991574528159878349307737979754645958284313097805503971886590232984282767637378621091445011237380911110990886000189899762242474911155854885392998102038420016979291827237024320627208975134028032536774973430344624579317036145434502322087031382637568400791655677871578055495985785201281129821170297320207559710613655112285668321846126692884762657422620591820629424302945965141041878022859475875143234138422600491961374523332093632024693827447881053904198887654117550539898948915441974988373174391171312434243800831574693651502233598455819829959053613459361152502754663645408282476540104197663526612913949701790195021528871055170861861536447480631390475671755058522720188552681459956700341880378370623898268692916679381913239832342795267828530301155635796849182058373699480654868675976734669512168756890218263848629641514616251329323996635584591807281768891311629342366998032665485455357134574011066288760311927544364104920187577916597743210733510173058440610740800828901314738278113012616085525311992188750572598098593473407954933607458680935043181100045701790328023026440296254142427617919975329358973233667331218977902090150503420323131076066732678265898400701478273711161856611435717705863012570834548357750896476464208688361212719679961099285901316296569663335391596506056339573045987262066461638989998873867944668822844904849642685185585899826290616005649649666314153979863285200372182416141052780791561208602818191317486522947034187145534475152140320737428103656888379198335658431014692710897667290596849583119575019297344586371049649674811306181933104848716102835158429681293747039067813402560449718323057663706363980555550194410567402280894179447145740592901230326410161111618279231253375951108224303597589852063519031684902612476075434965216987768595316256782457375242927852421843977398049797257881839365513096912187231437410490487117774523544429175548848015931479149127215904925737858463274342896472623624993518677371174035263218465086600500472471599367416251694291293855736322166893067134768357572527955298180399888852021768610084935886883227963234023300056507199165451260474506383355463682276958520238687807882509966594325975051491097475257350750243171979365791720877350475807452517479806894765539392001649596995256490359030074212589554207166897610215760783772982892157384298361924928620399722695519626765225389032789298430832560801220845837943767324729405109801634074319623020721630865490263746336495023842501791677744799172770305499018345799007722651786821844147106084911140324860360412812330687714036362540366081428133257346586093059947971794635848846239571799654343032612421577385386671850824536920110090113553912571294600017028891146000032298869177292359651046148890090386351841926039020395504162578866349519207926556222371886547466157150498967542227925659273800738516844799209022894256397515796391110655440628210164994604403751828115394850943756333434687309414425795161832241978442524793735866371163343248650913746143028398931790734012919101073938881765894645523718922357562355556387167968218569064743086981509784374308703369458989245182770507288030369002363847300351289159770766231393749738870125279043221959385806859113735951833345294351801247175067217538563591967244366366469848782182373647111281688855055301717151126870230169792883325966928988613617855158940136437334271615356607386886524878719355787653900142091558811571639859797933685831282252602106236271910849004124617690071501325886638069960911067390265486288856570990967169620430058668266592543990330924813142670409869066124310131400632609986512185176835080676269611576767586152471867829249924006799984759624710316119386308876733473047882990956077896517607067949621871373454174618559526412419339867200927704176994006212015443835715464047314224197467152535467267078916391846860166614626311752905530407561709088199811677142619497727034512160874240687403843040164876016444462340668060480834257205842863305216060155631174098384286492970364620326216882653497219671953974509719509540135963226784129763967687160612245854159334787734573591907237138301181632672623195984667885006506267450342745516410531784050683601947762135501229176605077829208460369879490140179729575825341838501907555952386868162153759096151815382317520995106980313686770268133311698214146876601380339789931479425175680034848616307297457188429884534482827979426318544388735069096738051258794569125324999252732900029979242071871704210249736787966804971518539311071619065021177520020181250912748178217659152625508961555841853264079941255385530558678159788820664711366956123959465374307150028697502973415345759161793502954142558742814513043929279832108360095723487319523007267778089922473009312306616268070293793203473555633499086098043689282486826050488230628914456296252806634235602648240360757381197080891982934607584486126495204781800838852527527798800141700983093571922554908223314763636975022452277150918026375073273474847061786147608386918033447055637851385484135267189016119458881393672551181704389784364149131015775093457615849966796258686229842068994130010022600740437490511448797119944671636364068896435271873194547965342729110396667000665564234813278782899944963059297656806054493631241154168043646956377028520161245894322086488522643825143774605108597275652285167154227728129964436319893140001664233476256746804829211431127928913591420015125204016045602576159463693512040800269286318410979362219619897134502716907215505749417711849708970820735619606461925293947149326386219994281975873460895010987692879431258087708783200046160612061606104002920398414877458081827035272628443602671452132552193752742691615908956614726622036803937181056818488983625848473694579894455875713318928919444218007852623245610014372775192473017834319482554512153007929847097185730703621779648883792152442274236769335844569980649701729366258503272365897473811515654824525796841856045218215975192184889929762527846894911708462106655484159805047738706703265344846882394210704989804921259164507046701535270573133747498138530151527214672515472584798757221389780798171789130767897942798496722118803171901075541578932506258618766810230552253419259275360518734279207454314031240956005372999778074566420883924599038339389877240056076269410375116175567812243274413434959514102926315547089774886928031238016538256584685597637213743235469333016073255604081816435083822718003336492430365129428693566462880446132394312945699777610128503763940651454944206485899509531292994781784958357556650295043074223388099131879002002592583092245792953616870649506373040142891083440901985390590734594742836740276981121212156743080611384842382704751648357009720110264673620978232789482240677800500093575292029537253894507954394388759701730524484955164706372458315916036559324677364080540211682301043775047351621410464033900479649967543987632860009482363432877252208480419990608598011304245543734827807543121646432502654762166247061300288686106617359698580074114719665013743527390571731772774161018569440952826958011863415152320747500177073586305502907550666358231175967622534536492589138254684054625547928910353185410671955387380198271203551602598404695263935926439627081591682801628469207198551708334843614174899758502896225698307946496678014535597302958642911767814538329690453197455254420474652893765684934182699300968124532357846250588593805293190173895701871924816029276711356413910130058352759388344881295838987518157754325300443742549059898490441605907864230138046968556356153916474510043140180741345623431497651251832122665375670231174301200520857417542925880284400045584597446085317273594097844327696796765700572239564234159585093212271319618710492584018043982686416170820215377909955486779333706737893511698195762585576325873951409367613906379603861132963492042278392652297620328249060852130620677136952952238712676949941350333775122864217730894432652196886954553527008323291070556121966962675600829801882804929508004935041821889882670414616384132511878969111425437625041226900624487824017748868642286339045279274566161089786038027881063965887189394578155358166225991609705274583416482293258642075328300576575150585109850413922158693956987754306211868433299832618718793369642178604554523230411969928264751357084568627823935510292123279195096419145146378618696541220654699468678869968266945768136899814888077535680799730031665277706677022438487709141989541380916177011165829982138957567650580453560674752030424144670996211487421692825435710443574858753704837475978768005437366519907217717648454793912435181642459615868470632295681414681654626696055039096017950294013046674761675609618844661086288020303490750300277809242991136402518982127574032192524193151536806971495785064374352241200036034777089906277885494249624662025653684056516677755549885130984132827853492151422111711225980002214071944514304766220266854767041918403471377885739747377712680521822405416374799318804199055406341777589402823687079316282935348403549280602207435357508691125776801874750353538586280978970467904803398511561612569773632362380853131831512835399750997980726811647406008598709697645947979729046840623577220480134573217232991962756654289746280165350273303722599600827635675601415954928377625620690148186658134549992331127826140173601003527335140010430715624487362412047180357054680604582067424387711925780913974414720708485753486362347678797759506920315191059982994302731991010681790761117331337365087647666545969338345149139288153048579401376869109063930226959975033708973662197282619507010964475575454000584624761988549250561024857963965905442434071958950953022270335751976269994162526982878167486925675471077585230739337753364933316265440897286577665501183401063680597675904772740805631792778864406225509585389652615556758393680515829146243240928414203305682178769548075454567717014754940595582522091487729638479167779634198409034761652332752923007028244418502634354888989043275934143804843615030246147496945372463590826152747737297118881659742966845958839079521597858609684227663495510373797166360000568977217873959157826811181983366676824904447799805594671476172461335310819376576213780468301734295610440991441490684199304520342587009177103244319150131774805702942891371569419183016640747530095598952050924682767625330227668304964442180003602078174881405199272299706196208001738365834216088707699604472014487033317585283914433368686778547250035112912443389306964710320675314264117717176624140720489829115905231374858164830378848220240104727888036775688407300394529528047563022409101768953174492999614076117078513050198693502977265658258255353388582104955574434404121272029044739330871884978976221865013685248338067892898754192306001688257903499360930070319204371056777869215892777069905080269550367209076920493667762621364678187010782796484481039651703853811843828956979570904725868628631014850685519311714615734027327010053661682241560751368968016467741394263963924464252642627092354316321067083086721521339358042277974716762998446414954768818589536984943646773286637531349821059238283750091325803392025532469439369494986194022641941240727520581751297677768997624229099551047398422165347680133317887389537138508143941727795520660365186109986159713935160854827686631740346985733141346757452648978773981361704194528066042328969300197281733377228997117966826613996388653000330105667452645918063412732008228175145197372558931786802209147717129354460254021770936569973190789020943865854686698054613481945759223790118028010802331464691031527929643058121531575024739437638152767716246607169255224329749507025559954126287851456212994135977184650657586435848085671996334393204613896049972166510286995748477808471001187912705141166020625342568310676702749004698198922206340106056829266760427317611502014057913338169357987498989130737288801810399411124501131945917734966745041296326172281497605145767984375162778438343529662936279403448220414569680095554470195623243649571091891894839669420914023652929512749384487884785654768691396494689566554988935846815661238069777157997663793201310294885416135401737381842146193531061798566701505634209955900640715557017564312676414297280261185167124559618029943566264716985913744211657399114697469002481616876529539796381031919839028240797135395430744093907578706798275135253378010272395952337198776827121104492874116916658608322436526370960828721120384842313726733331211514649910514053469177382215059808816079346064301382681064339546111363620829875532995023906760697996772988036877475598030663948719840157594635365891036695786777250359367121503118412551333195573513930183608853390353450793806803928692039812954763982620136363318887061271994588961259633927932884304972818602831653111431938468201051500081979008459505134064567915603089982727309564002745813036107114689856616192029730000725468268098530292425879781881064201052597241940337957620775494611227113356580793931825891556303834443960667378369412085884128622577641317465271866681411780596458394206238724426058755186383774627847487335378792342352982907345625372785493463839780965308832262013739227704217197934456628927406518709634960256690237794997191207654730363179197530370602530808972785547301340667581181976786935590592977258413654170532627651077046380066964138508329064593105988799187344781984363028511958957318718368928206007370534993397876794926035759885544437742075249178320805743662036325405344672100755462876453320475338801351100754414810211539128556127073032233962242575067880100447295628258158635599006947384067197114242429327155143061007052081255243679383377233880251832149586393222742673607992947966963545463656128223166833511872959910469651332194930639087004044818529383495576132190834969139191173529891270255444719119481962354950300724934699583043665890268123062138154386618690143803304178934160885360370912029585517413742215135904358044696798962237041647315266868562354529736406816168557134884828888025726214130712506239483674136242936703811576442696973195931738010496201727974295247425537021230984570643127526693241262303391271810767491075289925196883686378614950085967858895498118317433228144893728309086022039329378657121809537272492172021239131127115382231546044273343734611957627259190299563001108985665477462050251348010576578558281580909059891919540055523007282576361187976701681199506463464731672062047199713264195848078762585291177657601377817474371347098099112313514503583802976010240519637528218270850565912613515739263749374857505475691692008653544211936819645949283272685968657483214265189226157295864277945410989003621021405721195024172809934778846538798768224432904465553563412086088139466817639114227303609377980428592420793875665659658815969031069857694992473398864096206626345695792611393547179549347172089532878027923034522191735660687271082306256560011222060458419922509005991899437833554646342133444263022070124588698415780207623437049464909052098684813473504929473009374187765127128264777613864085685864730879725268219333283897438737013327608927820720367316013680888105778074836165119013722898347020263548081970144558594693715852470271609187095771892499727989913737685186711237812830673727248847762432374531222021314680350039899515137287410624308390204732532867699421593409895820937855806595830192501646746670103042448079715893050158607112626871113973106967837835878371968108809194429245505293191564533291531371266840019514034918513205719164975470335031144858426741762742212773655157935071118206285585565735573449201392187713108656096876126702963930361157341735696382607978262879310518670631206595385345705448927590373934151532297562882266241937221401868919707148965368574443854583213715048150002922555603675750468639864641831980173631215684908237385070309950650305240448402215696598422156949250221282868080239675346494758297429243425476090994242259272629186276835858301352991277172085729378163378020260055379059845353418861790545262278944831235220815583261204947485531498980342174506065364373489834758388436816792411715775830178653373409996352856781689057631229219994784934390047485181363963108334997982075439432051247393744121105956754218597056477380654442917806538983089423032101064725709393307689004639900021479701828938900041287552887218501787668225062645702508456028883909553534445005642292174231743753552347557594964891435232133111672388680748231623055109771749712589278627190602497726179042032002009995333533355400980725286298781432964284479625491127693826951387964306344234338953653245750937618666689658404258691926203133931827049827994588341349124703049625111863427239159136266313422200012567559815627947231468707755617719249271608165956262493132355965430968754515720436656844361381048056521654874538351165643447249552669069175462443585284441975057895771184786223952033124227508763972287636142414903630730673865478824738834172177790611190546761438193127039562817168678581633025146646444698216863957194008466113723817146347266492174752357837939864319771089470091935325396772706565353897125949293679745888717540772495583068836748287859932766707264714067152915221979366384825329333204107071975294455123844100675305281996996955187167560160230648276166519495171325055249718770596592220151600429138982630691057671721765350694285058624542913782399341108012845253960835663591259471772077862141682815580414292557456704826553633170748759585692417369679608119869297145158239176735744963872819224559871875499346986276325522735343304552237631068475830435267468306944892623068146960233737402093769204145759649396325058400279739190649356628243965363707099709242530939773459230186544742537319969059772744425791164577799504834939414258748533215573422928179725597431405833970027215143049847409016485083369258714175772601668377278195039770960260677786246201540656008328820007023782447436138329856091590940016728445508256680642145636094821006129062214195134780470086226115522821343061715834969667887586020082331444590773386935052466296854234656350657840935339575709750933822911364195930720905898884375526611756479004301010950238946720837505295901109075467238254604414055734090695466876956376702014027466082560558769459159563512165886314694253680728149102307251844306517841360356262443258276436555007133839553967853077749247611351197560375355446901595429034473970875049841113707752629805542831795711473802631857292038473726862539117951609230611301650940792393550574442033492157582564773040036656523574233137982043452547735514903398565007685000750269464556588310133516586266664851172621280573716554778317272423429822057582736147244020289007190148718311017967789389217458537656933773850483936474692571799112938983671137259788949655268096895550734085379661324047044667992445705959185686420735991282526852510698157449449637131424825803545576960159042399064099083570092519576213754947741189850945483370474426758619588920154440265668433586927449346122050107123567842531494707510069537387122244526642181143926235817262898386756070168966258335209800699325253029355356729645548054641019435626329647303695635302715975630320453271018663963185369585351226355003494593317216370290936138727798298357322431793571790768963261860913102067326096454254974617763298469002089602888530266522175712556280919629546740287536562572256645100253436568127425074538422077513179541261299764203791809857622798163202930930685594388170968550490149921795756230360239777495254058041360622339526525549654678744487080811173117044607740592192687608318077974572183642841060481406894231014880823544904034781118295953205075954207229443200821660643956315754754510052151504333449070153088390047535363890177990570699591735323083941229447661852938139402579823449261547099888415437572719272733638290676053226335154485647532943005656792673901619506139118782410969612462448396569425161700351418831525671818553734338049523930002840615627590202368872270976238635662392832748782142793863165783579165027858357532979112233357559993133232883937469641403956155515096279842673853695406220977780664221394012375774900331513315267411001281897398401800243309726268993072034843392540847761673779676561848646058159395575913369759737961939047793366894037577753089731908678587594672281164494483240227310112867051300290974667265855460031790979163348629206701008003423356504206195589796617366061903612558279376444721864156742502873882534714790845936889317808531237014010203007763259595520070172513990962520246135955665628853062922314348273088444614158308349433090327491287551220868940804051214461295770439170441721299778669442496138361726079324844996181027839095309703187491203860556103997041520836293041717637998873029547690346836988925298889305494409777321166728757943063266116798520894142635849701466976524882281227020294987998939105561197938135478653025997944396256446221130474662769210254660945608444512348854337851230543471712194808634162009094498536303587862387878726024893477318786815632808848221945162388551537677920569116081465287371428205477919572264040857662191300533158308084436346922518757901683572952949904110615847284456334694033244237524390301233364548741940942282264535999504162739427012021439959161470069540164098123880440622372483513763371159054181666730066734203857174801700482327279164032677914249670110816273605021339120247454564465333905174053251001220152883745978143415817044605556269478576720405627122873525380746290576297270624562868029416376764560990293233429889151601352030015430014619211330765453158191075490486591618245963382502384768271831134993481603326541271656559687873184378268824102019554466562554464202529082152549376809325177180665382142469125647362853424277401526332364001962569509698436350823081629959702078463021422581883094049455540061920944080210309294534595951880828202125702051794957032809493115776941304137798118039112888272475109083242725396509092434687581523325510075737099093632155265959178371663647718371730539415935894254384866828924537544971430869486622325927407485116223197387655441287297401061805501372963810872678496625651440077321644251936205373965340938058790831533582824067445185733047564215367345726473876693866294320597039060128422222991162541437531819669500991344902378167558669669285689960828663939676627460283385985009936680615114308093992653403155966165254734597961518290129267998547381539884602678988789185461279768496480441813002084839673049977767370138699914778691825916038060070968933334025955076160936095873903629790026253208601875776086718486856395771012189635879983087854272088337179013106081331378833613101701453150795493848824027809897131976939382858636528276757649406787787952755033860067929566445943532693824997546479829127898585954494476080480062396764063781676320365327545010640948220002915672745695533773144421411606843257730487212708501322002778748477454007227718725159207766928646587016854521657801854635036046390727532407905945637731404405276278723777072512090155290641185262343598682539388857258662242197689377412815726415001944699485213604093871506500848402657161647571547315157789589977814582210985918056369044460844889901094906155638151709841192737426004878658591185071020883949866876175032419767415430634143144016587995241252418877225232195076015592800199158927427691566035928481881538528725219995636095870599714404566909757097387255997644875957331437442819147133812020564627376544170952207809139411944732675493542243396384614982961540270683135074458984023616449458193730931205124112393619803388773784972030696279018224696286462405554965219547080310486319529497327644845527624009253667589369614877859925098624620023283708906835642597980463203414439868271202234602660235266492469227775510595463106572652069597534503009650483764941488404361731228160077877135248312906923755590427949701115475817377675601591937877499468730719737249974937488158512904755284613912772825271285297952104122453993860522782803752807665261008342251564365558497390837980099023909543481200373014924478034769148015166428892833893425302422806645463240637933817435174642466217408366579348945295626513196012022620498864550508328354155322051257226898634250037206884146992679229481921146960992665605160214538384520217129618192424887478277698875643470214011134647942601801344537783946055760699775564260036314785410318007286720095834167373690491149989675902307842510031500050544802987404909417776815960437284151289691438377333986076677569471353911043138941872360374103682294448488415389207364818265406141448727590551898312299482305187164234490442230502903592179906667238236996483562081460875116620920164478457727974735620240173195950332152176664511501958375703128299811679159548277541236234099850175868648958369389573097579554062803068918279613848711413386264696784518888166023427616508260612574997525410199301078847040241680515778640952073103670425109217910679365060323929988573738540333050937831847788765365991036362029956733497018595196782316865651230828922309137028582256335231108857297020349106160605105035262854710293220105415747489287678058245793244344826386798808674012744095809719270721987037710561856925402703022798840967939678406776696170173320896255426895408849807120394261019601798017688009243961534290970193371323092087537826580926815117914966136981284345576309529660947397335951027086267284135048636812508566968744207497159016164522487104688290040313863388862053076268960381726401816982864203314267594394808321701110488568808670240381814074465103393696716049752065804404333345175801467005041909804637336204995241654163882669493120721584747454404050564146547034331869748590200625888208024388719339379825437007156891349947605364183353951586960960975263756192006071714913804571772131606641385464914821064840018641519561852918590082700907601059572688154992294644404904016585526345664383178624915663200860711548588359572763445596971919661149592951067871876743083591753276742391662614433146292995928037177839520138302460193765305332534639260887914229681113069508407307214580600613584437929345741738890572455824808640963499728268193119979179356867305679382695177593338941064032223813710596302661221944759407096336093119087673689266194534184003387125344560245106004117897422176040248245203930455548937588049139548282432036821323910288341570666362537503220950668079534139743731441002504808160705631285331635044144346612414483058261333610668858674227204450205316744787158162344201587338110226656121584578267460788785320405058427110950724680328539918321079809978638344881452341980304068274454406890968390890441566456597968857982708135345749579457352905627150625353756063763518166587274197952677348913676514401173883760342424936331713422626974813505290388895629323424621456348100857307688228176523915952617248788127803219005163108168096847085079874948011767024673953336617520248081008743346088078620430195538941733268980771529174284353161429134866903445591889735093821809998752572610776298911371933997727566145639124502979637256061479201181481445940071652262524660988840567885775117282264784420709545828283604703458141586986587578387942396264659472246775410558217238583466204841703558622978226338481397341077712736104773014617783178352045088835027426717655169844882278071118851401856187419935932363369807130792462183932206729086578058545200959416553739861442363696973859912731070116709499453993100757475501598154333128776170026510484141272472063649030271943061532945499336874464939262007771897596861031347474218107992500705492409319374293542568970593700423615574725468779004555500120838575556974222884998234836168728391095096915640090115894393744388380192079746428437003197198297134824728028002112269000548976510656972784627446514313684032805054875464959825282561879586698396668607180435563404809154586880241461994466839177653647939365231299748990222183800306696054971092820004412476803438693742644811304701320531788274290480913757422804578752716288156202487957606775351735372829177509434342593427820461805106674542535582646139958191328433088530108947525785383346769900908612012899207233009829407789982786870842990206249188556957450224984141243349237164961543159342641695975051815012227551217150914872180353043341699979614621296331475528608742213819207512651707685866130960576755121854892164993080536506807874888419593038131290818387944508867761027674740966160334315625382405827714500166119869974690339364754304541014047442457688155809316531407829273285104017912877639781204400385881541327893624644449697528842227682301822636098414872665655665143244053696835721795551651476283127469854891701386973074690286304569736064279036890831103077873248241941028976578151061231746763398029735729187204822204576446710831124568721637151471396696551452288508423149829946228184629256656435154165244054034583791893313717236299541460516950839461342071836362186313588511857386748581321442406352604948665138622965652401255852905884535822762768768454911178253431359557717414128347141688313494659448248016718391144442595752168566055228816502603874289826042696735890754625414544294910015858088043478024447355640122066247868504431460314434708816591252639121724923677233005585416489515580620961827511087555811422056966740986120020832290771698130599800118307836505120820847770361523914499512705072088479169240038093803007047342779027461003618213762356963684861488257091731508669676976486817000301252758897264551544950074527952508245537368783078228193237004379435715978301753326287019625879711572374154575431460352983598490212377012727399131967247161094441829549926204816700073261979159930254144814364283021666450430471364663573338738190093331579314720820976962045663056609390273056635912428943796389716191834839985126324152951051623101415981830240922878232580440500173374196115780196604748034839803110488298576175534841550851281892533384661051315360463875396767748666117151819726758485898041176325523014538488149283042316485250038702806965780962929580557696827446979916507343150562605098621211940614088396804966526312536492216026844613634627279270894364698680205181900267521624317316980871326897915606749427824834235754988483180436035649243042888875260033561845282454126697473379771456158140377514038719087525022383019889418566734808068082662891968224372780648587223495300238974587280257875234471378174203468081865621608734652104343959035260614519869444275301177862454989694279842331827869544711281227982649882489826073019015584483278106471185927423927771231787940203010441490738489214826628287336556685748878958457262634033315267786954570099998656553065842829468475762579511367983860348178708525128519777082872486902082229771022716987455258733589751604287582877440974547733847579416746135586975826890865465433289012983391830023633103414445156638172297538917224479806647066159478024616921807705882394391963604769752225159775225690876567066698619475198929684430969484756456934094055039820399603453791899643835773896626098348299517923883425713989101461165905633836845872523771636253369085928531748573327526412604473762907181167974458577408408666826251055463279184109034516399636571294491538651719296218659627573639046399701518624197459073917315723542082043900610217802892491083497039909038714397572497640009482813274734657151044860070927407293632262271873145662851318411031104731947935284597978366101687536999944600365558144189658856134857336218171937735738747252772873039307739389035181008154918298959632362646498809185360866223552486796817422541947634093833923827329404676039447754581438042593488013937347429134507115833853466129551551056678653736600001295797235222040777818280599971498049124539331284369120200700654964186357773933327997352615469160532677972048828947282791355229736295015178083348535514728346587306587722655517478730152149304087796255915053719131662153149246720437139236337590044515808550996274122843054399965031473024507158154966664695673841063001183814435276255393822913040265707705933430511135037906642055562946760301968439048729529203643774100444536568446786642931533715581103868218457539780183139008050618462127064060674225811774032756299976442284331081870650202955390290195268472956304030504470176724253592377520230175198441937384533022893076234775344896555034247662906939972828271443383719940524579076100058767345348510517855289510823364430347240024794610443277115364080247071559293992293804283873602339684333465111735226242121698302285433591039330827310174874760012640382006450428845094669120046052449400925469600888931652522449132755995191866974754686320900753197387991315964873556612875503397426518405727838465794472548139432594722247577553685010897956529863391378051340780132300329475498683754091112243261350392401245729430023330101705432436347115597478402950753892148967617548933540027972164684702980061249580315188515163970560147410380367940586758705022450650716739939933183687739218267717317797611728109987235300959935356077128780970669315603035048414996774486731927629028919349870354403428748187659803121742837588580146918073105982826049403601529708702708623271551719466638202547403886449162571954198449080887898927629936689379834481740245398223139242896067623975368256476992229061751548316905121425046344151773665093929634030068844362710720484865281891302095864990035483078726901261235600299831220198187792945165339715297492203344645597248326002921292581812014792039443867501915696081441142653970611112459253870522374712655031429848949470587104612275632802970488081878148688902349381039537191047147929901895622531543946155474814203189310186436189050203823051674263846375078049604096588284158382268408641363093520393787619570187679843955118490490412226769194839228875545671439112316418204995760061619635450087560312403489091009922521445743540933032699314529262923672589472790184359713211053250621349025221273883544631587034533192771938170970404846662588301774550370802495800340974918692349231230486472456500932749269258991206758703689739557068197605371847576916602398426270201021591699436454497478572206533318385776050470891069101941481115726995765113174600195061695054272985727553116956118689190850943474842507205694660469693753851143132140791974009216048803088164558075336975255355274231181708467162727195479449272867199952925276983704920577744099011795343998084636288259563739969834137138705152615908372770545235167792553761273447674709044355309059600801539920344818729594798460816580185885863257369951640887043924301303014885695378159622150124862423822761933932825802452014395573304703348477559371910653023589026741989949585657098056635496446556275710433844017572253406975071622403229954875675779372494052727089390384867617789812729055082960154989723804962015123497920213256960154651327091526799548190766415280789002498839789922060575096551959721835797877393689192422237133085628639436222584538764467858883224122252859914799700996112449460301528711304172182805347807320361663065243497149554366585978429296778852669491689953393659046822937599925317506694019247477665247204803118573386502401556211021589550585595728291536681431327659711921421293873250440428319538947985065742681294606569539930775146060887434936409509740504680265167326400096117277776841025815762335014209195017648740442954393523684323436028631448256630899658125205720861698835039036251422499283780994261290104731127092894725704102638939720460463360417146461957630578393014470977336655305732758557093400406705119535058150217398467605136814049264059559743373343778497893753284510213731811901593805115120386711897991343446398235822190416523241799947962600955911762743859205012726037933193502582433685251128348062278552608857686993736734528954452086956718819066327459268690305893050283682099340118820169223218738019045506445448799713012692119681003564563304474750199710706484784638783337326114629550734421255855949165257831382853079187773879800603164844727200754439665030540964163177018083133357057441211512782232537646360939736251014566006012214090749321558804409135955765837921583694107653912265907477652645111955809763785788158477086575835693331135960111155277956217911843536075922770178941497507786149070313285851594077610040316859472468555639191570488724382058531910567863535971826519394466819237613677741818106360386419861119017757049267179834184125133907492530967406667573467417468081375030659143705372267218740279485342957354468367670369442104823787150592937765029844217875299168946440885777693069570924046526838365640330159069997982617964542700976191228399529090032722100861765366086659051945536264319762192772247408783757453612988903538049453106650166659813025319104974555265010840014675574301699639154667477352206670377721702494519384340316929675713676553101321601636947276008784945194306026265741123974866708538297547287151431937062343331887849709067656715900483453084941046223971268590860467707585862033774372788749731497182656172022286041752710669197036960352680806394396313652162005104287476714453337584273009343800146042848592814255724765378194132805979199745313652557677671129287950239202211637670773195370279321081487773825822816343618780113321188828619223150576407727760983138649842382357577314710348791477640099982138297740904076533480400333538790390106076689162996118875907938358570455366740117486524039705062298308476935622301838401511118086183398509168700193034713233894524138743367164497578093135692953786260396314004552381889263905491202280237316012093388580188494643374484346024201849982850120322478129199793178152324534603030889725509466063189657843547966588389897904542432385574839015901946381550136173372177980382024604348985031115756422081437284986519921178840212622854367956768103965392051654264896999862572091890155943663259741682488258427111790261076315385778674071477891898980016969830851336300470623178610939055003376978363253933072955857722872126673350158285249858596307195091816302474998433856369227472657130910602938038519519781523445983782032881906519601683810730404290930160760809468630727285752918238575726486833371763196614533351930155618334171827589705735334781727130018354895360343660762796487032317980170051081504563021378086780097175289871216208304994475106506618684055935250254270185658923734369623203024236635012218643133646521566835689581080374259116986808737411591772864858972435376034880919617702929415762553218936238191906213191958227794348812066861823208620227308429412410695898889417003264502381681947754279493501654903692055846049679718959843193890098687215798925769794578189483860538573292646546703825209292922439117130294290707362352658492693594220266279158241093194776758965475960013758814206015033793366671525792122147567374774424614414179218357929951895813942704910218207566767136494032789478562372083606682478757825834034397042920597056039078969442896623232514790889411176841362488592710510558849926466638949104554427534547304367747366384237140968766176096048605651807648114410555549173689563681092576029787486556841952556778156981774485133034095841837062442246761273320218647170564074292591226038567672334275827055533592533087524667366114249442754973588237176602919811998781241598506495987176580221348058375249735084990069118657756204831812058438394421308373023730256378436834729478247973168798489124465192571389255548967912562886019654308791548894479894854199503561516159250552552981156029328771212191467639619599649101985945159379339770919693687127670997676717376775485713506835077296692912525136511433776563154969487568033076836295540981167467560574446879089906826006679447468133704179338717788060905121838011585653345198123156266872146034181994035648850772722671479238466763374832809378735061685215689839586808468844778354650730361926054472591209885674019280817767432777986308234243336749610970505429825403026198547384843786464434764477274263520462055972380115190726055888053001926379902619042720053266344859739712419247122445346272834287377732023140536243415077894035877977763004801417500626150194575010233987177393754733321320917183214800743083987858361809809147741435872911952759182802311411191562799856224793902917048351316261988997912971812649972541906800120915650056426223402665150097939953726883851476246836407071123109222227829254282198080754603910646221794851619677253058943178161149270285120923778836258436735649487356575643469747169517020711499620573312606607020695078830378677043925000238528692998318528777800958343032011488879073166196873153028839750198525332282914337883544935735725799417198453065317390473029163142864847806784972103462485352810397090644277633535014119439624156978093139832327796072254634643186108615619647440310058972905002759041365358729848693902992910106710396771946217231607381151355009463332513297707122386593824339993794756457756360808740722808576838554805421569233376160907750613239274858247639011846833731100200020223542246131249695234766797840194805869398871462154372284123836892494989960708547456426636233198627738491067443492165732641266346375366770868045041054581245445484018065131390460287454344480128125825065971619877834962367840221067848532776029353962085335576937761803831734761405376223557718494201323081452931974318027110288620971837495173143311615861680076458678314262761222815709111579483782314926774893309474950235805765207427857265950937675513204872256570194064862472881869826063426959475524647391684628830049909979763390353893509210310473230372922628144286601962595053647637885791312142800551937571059035294109262524367950386990085462941169577372737178378585538104419198603781024580213904971426573352781278559529613783212119988958908672959332035089514012204926286100111091349205888683168289285021970529924367399863190607342785199858420544974744474219548862184222390880305815793296341238710041188366629015649243302378261355599927619731972967345462532218237461827955487848333151643434110832324492378529633148750098713403996512057916635832166239669048633642824764621575554843115794857718876836923450972075087467776859493535217554218047654872832758010615728463114963444184179871556399965311086859940994874017035112555828586686463418463033640084048595888850553279095888533612870329467659958329344123546221672322667969888785689713398699435016134535079259741042434363527074604065032276530400179346538313265997294581874901620867389732934048599180994018596022826496378086815611329873220711325252527376453440863473638760907233885517346414970811838904138454976046918176338580401174624274072450189528142968201073985334478926604412036803505266219061206571163661649624109289803728440267226761012684317727037764149681591166551851608167788862552696015246243328232401864571568150100509875896012338907785971955941696490255422567845999009135947066043277407272850498565414571960504872910735007979246218813700774979388672553381260968674961216865329159915572009067961034068220066035050527270505030482945431843912077705077780226330785845944015422006084512043860060895407864468003810001793611850935866933973516834916173915857277315037899186033081491141719670873797239692218131039363396210038073623378622176254778538307180281916254726370305789821310119042484254251948188565976856146961995267019202649499360839414160166865350201711572385571077802671465151807645134673788494105781967512660119257175747688472502489071859679531241775247459482582045858781802252703755882727903690756316477111624048855360380041573551026019603568047138467734821593069986785430049147426128224117452440708754568285663498035447613880929601927815959957093907763700533276604683541529545519615461954650853202315828380317672012184042842240698267751777055990546100532168037593731718912262455323589867205945115904609506694293675547312945236226931030223789177880026253228621291767238038620305192477616531832832043005639063449689511791226266961711477913517432447757912874576942763294906102666815847635290122841106801388388426304167142226952978508806043330432733981606330833144542651486124662529928818325316577844507473474055742453782632457542006701513192218619842807090451488027454941104985339090682825914111915659149636220675084985835390279911461583497579066682442498152858240642621614360514589878734246215027811747887962736279936589789332489367694984620137054561415524161548289947005676926834431050526678709657592481074312261974588385375290502103494054109899221992444497057988022455495146647782441835343607594099205878532068438256635383262782008607079613626444627396526666369726414929958146355215127145670358728983405569465730788369981576528114085677303247478302122769932936992160488984590043030058866898017987372087809374615961128255140276888007298944263326343091298630147004845672137527665763169859114439141376487695268716739997293839711914434371821960156915238829880343197354006331700514029858159573103261801483304445099126740126628034629240291349132628782290011386728614840237720371960123386765110277070954633913601908887193620327793686835989609316122585689300639868334468446539180100358641946275236049260697410163784868586398280655447837099376114923903654991539828264565273879608211428574868130179412626939501370783737337487867774051825060746526210914039638637921742657424028690875233084896850813488855776662086577316645523534350410272158509611703078475432283031253477842918323753364397562799102038331328866248533965721723655772462243491116750046553622873518747010828820950066014389284754471834095330859662334707753170710332629828911347259870926328487027599391072214458470796030891316107069523489085559325505754625043607256469944393955795486013361111189685423378450767434331683925493688939118438008087346501476968899086450827152041482582991787079750973305515375620593061340993223564130078706920472501164322242004373860745604316696128802971495770867372457735154856119347145830695059895253527754627701733033079497078663325405641404601830971547194900520755987894244268237813689199073588744071802466408351163436497356891589271762630659461168628190926878509231635812376235733517953629638073029327113927397716793891945856871146990590164004049831526121081784557603186910411687980124720054417626296678849033920212925514310693615028302626873121812485896841123945133505156058720787523248276437105759883118302648707172361034315355408053106404076611443119887792369137814903735530365599538148602692199048524262288832680197797804195608211225802593087958557278385179771925561239762527137546726222105289747113853196217032191675127193734144984315421194160714472824900097813513755376342429136416709746671764404806843790884148391978000157775390909642570257950708081338023037277152625480037079173155357877997604929479322112250197816135784838023131635953310700405035877417716153010978785744533478580530512370664006273158254552383552533829172274152998001289460748043639924987186508445434372410355877358592675238656883888936228603263435662962568441324004611537922891292604234993829007892555360953185419165432188666970551348889286571048181833097633740247012469074868551260247877768432552155547730820122383567919068692608383351583386886520567917127554560031961451554013671680031310331788789307678084321421327382236096603449820929188934346943974185268103072782763580568066580623214107850896736492113941615969831558552505937870407970374581350557783174228645590242293481814531712360169548272629837062130596701195972852041491238396032954058899474338808048412545555521408160156680351334848943090598067803452170296458980147439007964411384417099437494471255744473046928165597189558015398253637161939193257595673841347340984739227511778396112643686739342844877533577965316587937564056932934827209517498002691761813775097985931877405837544222220176669345403455106701888787984439402638330315791642831119318999180261406831481192569605832880342717260429198575271162555358511677012693425644613166551335484493705498071541905222471376427786676732994069228231480986658420914970693955170200690162157987151403077985436709516355435756825514867881883357350920789778026366558405430856535983160505070892088467980970092830674760983623176271532553147478658397399552069190162690654555477346176276097553815768659309116973509915700476764506239502079343741824588557094402010771947893732229456985734592133811801325675047437058322258698359585273534817069700405295952500822067419743618826187822410256047243732495885453419306967480572615515788330186836546197364671644969721841808145295370434124568567400654055838620677617197002784088825439860106846361389382919972599265208913395404257586578322806276709912768626045251392638248151827746671528535119609462747244019614581032353502420355288994635590597404727167349439388479647597218893048479107120746216067933253760233132505385946741008028636376388640228371680728243097495398162461124216792457887775062638493318466040219419102760170146703663315672240602807405943371256187492652436448801431681451654027842704179821836500994904271926043961021003661146036492976880417214908846039808130234880389161936173220219468731878131178209791156795356586640403584918200828168640224276235073367009970001129728045122776415443481408697052017335781239221063891795358185827174391433980470581818559546474007699827303007283782163018096973118073503209405121102040538594080079637881145469898307581721419334604133793398397683918461301562288862232021412821881654347087078075049730567072892762713996170533901155539167641142693511228263621565145943160392387075765809973414722668070017974478494666275197646003827428371408904667284540604815269758542856937651821173421752946676236804498203597765847141631762075437338420407851365094813565141263147380349629427031783362537388136762370315703422142781713953289924805399193430639611248042217326668269006300719792584205909978479872315024921177678686775925328770441332711438342403534727018186969680462861687376674749878471316965620082282921912397921635796948117350937218559499723776639977794027040091345058949332566272834055602594340625022854563244990514662061935318525326439624157454725482511914496293150602777518960678223202782548852501781966551852712585708017580114495164405655943634898974366276048783560000290105848969317421041403740855870375836432878846293148473196034539591245421488646492935672193043022516709587429834959354149417290439660671362538394928337976785222501134619418959548684555566188346378959568970180680724901923652135560538803097838947044668909569089063944320058321564392834291205532527344043208354894807708852245900769050638321185212284664235030359011247274408274035215372276583304313725492575962420930089496299888012131551890016844400592369097652507197115705897812717917594522453352666017562183872654579369831566031793607265412677156805438783748803480103945449954034149845989900781645990431784823706441984158423295126317723505665839469168044231372861107084364988366912016423963303831851338238717778709852463596752066755283958145790169661476803282024345582437590928529088524530509641022356593765150538308606943139588668619051273271456320352217684340227648591952013482863172051981959708195050753926942023950920849814137184097841692749996912260684935231489533151910797849723722322324491552435666324586854089784490472082410654986869233232127126467505910121592465140008217527906229825591212424816245652613640183693509488040097249058432604801935447178970581378524960563736100489174013522076191162559053049337445410262991019230450306385290743610345616635643402827486298975136873138557020395558051725842223029959857071332455019015404736861555104264575463698490710732030876957177786796047161519792141206255007132318297090865424148049632918545617163088913460877912928575031850105255263303967227496449078570223542146481636125107285256100604673290299768295217576176032328580211952964265873410322160959131944611781450821346790174773642347226643543556904271204353124410139480536605103539011592605297073117026043518933060208856332056669806411904714157945868487279723242474514423081060122294188358186398629548115154659441652255794093614486671665742863052841801860054850651050080549322481445244734834340545074438253755918453631358804133418528403090839406530041178076561257772864272324249832137812679476915242937412938663819939582548054641404294052965608306367565295712561255991857174060905011677829584555474095741879043679841473189696915452516610134993730920324206227769345628007457694716745687150169405951979687907322821085789762185284850347033045427493870317186196380906008501138938932209432772559602156324537330202152309203630482689360363386985796239027748916124640358176840953021641499258476370283054679811461593076558724799352542407685315270150136933727867584901298084372394673228361184717250782010915841512030244162055348264313399333148045723945251244536016565563301619619224698984989179191826797372777267334512425332196360385652233522856301389084490168397586872482222169445996188715325525739145870344955691005332109366182200732408654181289798866198942052600550279567893498623968714992611333284887576631279064990240637685318569479960562464291510925142604935283011134125495548771738248374947772501993743315425325542267389147805035353417609844682364259253144710638836496504604126661864783937254325680779149734173931455168524906036934126889650946534361478697218779461867211641515929271828277196762664247471844162485148055425580504609786103910911019732420909280739616169183776475937815552461606094098421116854420359263968416903530106749931464361354063505494166962222964676623735702866359688762764945087840589953708936093662592999040136325571051793192561583755813983345362113275072097513688433254701167934870542753979015649042180062379385771047790348489014677507601240984686350552292651514165405768784797512680026760275996532179690855122606021006726314147275142897476176558314037391669071554828214563019893374747810134516343735099215442215748234838806901411231851665084632455126528122695820435006711929864522372842602079564222515690719499059186681303173451838242350355581000152995993545417915129546568985404954480692848296928238462794513805783303976190551746448606742041011716020896686112665157721509916819768765248708638622457186227577582089738715139392599764490886623058170187454349779592274668256491323725132597624088108323238137657104331264028793605414725353675060747352309582971734225272588848833942427057270055240916322390265259081203959679529411433520561857164429656129951815600001521607560996091960559059703215993374781146828215534061000376424482081804826723642841902073794615589579490845915555665122228229718114969643051694214148297309874218000304401662179083021910727263696856273190430752498982093205775053283448343388847312871434522407546531270238541256760839965838116696790584633420354645780148024614447039149290725958067486970526583901830808125371074494527593277019559588534259803526755589834355755665019377440177439323367899484648426894332023317686537958312465584521209270749163441314497499050503001225854115339048364830174191665670988099229212319593760442414905886178129108264407092215827099427483391664405431452539427871033638446776967691746759178055231029508403671506822152527024255253884819767838581745415188347700268586582425182326498891708693977290313250667283594559569150298661838116584608280713836662693168286708528238745263827325624129923870988538122602454293250083938190260542948868816267806614042919217034478225798777474019677720883716057019038098549936004535629339220407901398708089139631069600627192704522511521524438839190673715212986498196019349552509036819877622304399068164455837374743606267124119167323783287419240933369780796413657202651729119143387370538746710900945305996840459257343381285402093480701485400809337149684614960875549555848350890938398725754618243730577808620007237633045329018708904325599037022583794751550099911565967599107526575563214965382915712660130670009930839339022623737230863760567014266014479896637273052134719189246936281255623710226362566086483818675676299256280471083720169307969985730189066674605965215477883713641907451966961478554892095671746615316863395618959967996555498043327503563808661901085543951505900253088377844107602708750213045501011073783437562111918963508712585207353963721658510239909944732969078194195684738212939818057392900665825503649707981275350950957800157740108642713824408694198120748143023549572467223313737118560287134664110599702683449627335348388261375899833244115404287900496054658824883911506597948098806755042230481274273090123631952026745608196949155842250202027097359812195734098461958172219860153622882730159652358343549560834023676295139378966146436704575680279478411201168771980307443342262781492374365156990641735086391281633602244637258841573102263513174895542938766747833520677007585162795054394207632935623308223934147154501220349867889325220613176963277681910473560116229193560069502412938057764684367424682214959092836228240279243545862080049725305824962785014339147860244965873077931771107956221687007984777385444174952997205088446786254232577602686301301510157570901387309913278531952754004710408898385337926669511477445709515109670461536610114230907146955584545549545563335563300622877391188269116122125915413112314557214995478028493518276971598499195401327259013961421763684526378750401221007546055497475240049686970039032018199672653524885322879017015802563561244710797294492651021008794892626132908442935260945364395023665024083237249473789073504017751492191654381072968673024384240604943693513659288344975262479689567457823794973525462346352504546058475336734641993947924323960897540061055214827304338186855546208618615272260151988542914253784239514740462449271187915983065301638910315467758742136869805139001607839808248939815552342838794408608781288659949297032488515788917343128359902686146401111061771543173948908900659903401145270604751245700244568372773712693319171774521814126822445052851749460127037804979522331693522647996453964200332263301548955125143654274200095081091682078231778331987384979527543099669347879967187666070580024961131195089874174539773575645659075770298760529728448297964325717869000139100458567344121360449419379894516160183276027689168181920611446170415962180693508917403287867961061755231323404435704059569371290039747580751970177331189684419015292696113090237739487817081516440450020797551770392979321756755428489587370381919938709011872362259974462481696903740579967952976500525144376708894409507495178113081289107407947031618772827439733929732641708000960013056219051213905805436907327287825137308291136682486393453007031272629068089194862485545647345000361322889930687803329889783220815332778379563220118227844712698802145623263996031474329683801879925299724942465849190513079059024829013238538314534748259968347828030804127097231583102229680125543343608107978889629550890664773150074483727668517392630034581229739899020186023469815485431489353422350499042724914718130348635271066893636006302793943961364523825286495799308781257055948086819848985382587639403995732447628059125811192178785610574292325627976319987709201227646871470085785590643162534677908334028542065487833274898529044714385815419411694318660217029325652734452315417852283311555315551507825049016235529023963385053233135805081477314600189645231689078065389172670356504073886913617901398895017455592857168012555968418882732230989162103469361460997258816240193464282082407326420341663874344627586050190301755720516436751488121078101160321097109648280075959341355455625467833864421354935948297118540244177006072990936017482060350876263542959362731174071956725836571717839345828981366725029369741662628119167867445586551265630900791561715286460184489922472947148803147263448235073780178448902798029902962540184267943363853125264876774001003676261424284856553980468888263774296372515979358461478792877657131310648308703549538054559645275626806160395438800003037088822518536439320513836604147688151870002302318416132038423185292865292971581490498692638432661737992974746702815297431450957805750011316934354973566187366724800180674787413033474112046410282004504794475982404225104628727956903921460045904765834408012359917083827780254734655653734779383804734039866072204875909392782317210794771956683835537828278978324037169481400641521002017362133538345197735911939511625087688109438408043453376524623568284013559631947506585206823501213893648966338935875602697841615353389872874417272779437676709121372819964923690972371601423329900327257332734783288593486767914397027365554493851376693796202035242640651500457243115756342795119889637135478554034902492925121564830148170530858337193806937384891476101254635886292177555631552198947704359479186437571328465242155625622809159747970575691952406248964402576838814475840563264260682678701353783614194529795560455874374155584440057813363083518223166431494556130622921066703232748234855530042270827408839970401131453775465406731407865962251705220984558464571212080092056748145987554544055703410682934963130950459288441760039947724878099249647625953936735036632061090178955206759018906537637463713730342971832378835668725983632907643170838225778467009250595789294147207848368235346076204830406747072133557474293272447640291929398708322067872234379797848963138893427338024450420222268647567022584818916416067347201859768069015771598782869081347759682385719638842144699756923220553237571936982454805480742467411913334951874468096112432317764364579678312377930530185401000782892256732897380208245234700341406345974014475279495242079833638611447657964401425408532044900730011213550460736270795915298892794855641920673730576751426479076817514751824424623315157161454077440811127036721700466904086241194321587413945858217819549376077729843983585380639981865109106274659499498667889341737141036758984247708936970521821855009665353142065098694762948172777047907174777364720031937123959537912874280888846909301976285063885803772813209063731511965815341590838112009854123043136054647856346773170888786567233767312931214757965297364300257264842801358497262399406792852730529147825991148181394675381842314826194349760108301087699770467337157179814952091966240618644135416240151629576713224812683104129929625096783643176902365858465029778594053073078443578401590358398437946721644509378654115554325871337859255579217853580228883731644570867875491072707083169456829347046733116741096279085379708633205219630545538774055118071458634039558597270802140786633116930535197424568323932595720419597789069357176240343959194610964505770016263907941969969890016383714521201059969447236672242419677767134109785455751432270942944028482082665950439558668044072944075626717222835022744283804121187125600436024240714696310661681628740655351118743222683597728505272940011830333057645198868306305303131096605919603568133096333146055467418556606716623245323500777866975133868691626515123082005338468353789801806949641658333129903623581305538759720264897710853788606894679016176621917157745380228494139460343790433676175260330699905675179397309654600023964403928970577565802781713667217290635397216577650368517081357266745070524259603842070297457225800104211610987896087721193801781547255845434999058589454705832918929161277142685933995378230078702430990560820101008614732367993523442022668581421074048236093640120639954622353222990268224764762854713485239652896487135142151320033316058916458863939419866992655828365303862607732011168388698534122523581263561560806322881417031000848107411520030099129265810380994222953818009952739961746934203013241709891953768219891409340422341694715659157163601047543474268564065672199538256213164401368524037451156861698569747258585919000724691070912857204208793498328719539909280089441733669642557474514231017120060195590886177469350638261476668951586598987284862886945996632916540027559963826749737097093775361198490629032972034217965103216612097763235270762423735091809749065786360531287882696826128960665590570392560550600572929258020434482414727760629850731319875567437706647344936670564606108560349298087919508690117961020465162623496464037949597789493870170838492853108629767663108558227541666519593804785652966705897750324503403262952705612419807505074567616160864558703268813496941293771416075228534811126762721253429827554182877660036481638229851809964883878226586777878454441911821181528254076040452567780804829557883348753368514939753679071437888493063616875392189734885261298652293811865471044513268005959287588259382829313698894573096102051033490788709965996807818743957255497706949314363614984016115656999306838296334151240762176319328501517806856214286907207084957540871752912876334618343207079127175133533582058178985235980723209009357555284185906780050393294738730726003180066032477125892569567388846484885249755431708882229025110472759217385389355264565208659651714211058729131443632191967640652059888402360950172622090048982783619426277562726936229119459531596138730182845822099074404584988545939986621633966027167144295492461004725240312096231089160976160892760400421388803165366179477940286218771105083929465522012256250713295565748522792720958831001013757691617753929802129607560356895761657882398544119890411817305330910180870785351586490266235765917480003814860182190302168697278158294093311801485680880736733417049364582848463953244879479047182815773451208556003369587423681484663125182531691640804155011458375081316848603762467534499095552099272099049996333831808298468057863264585453527869398312192853179314436489473767351338236103016564544359358903642477817205605896391089876615261494546411164500231352733686429023871043024297529433696080837271186928851135190572931888781647156526813549677020920910463969125401731284642705668291121817562998408282262994798500656802139600051252475758433195083839357675068473079403055536325630085025013785986855553063233695484588633881941753964954949028540887639709856214050572154315264256615227348842788822320558066373802824578857265033478281909296827434343693829125767657065909354819654095743933155819028806225544680318872801469446141026837576419495238259993376879089997082660539321196106660268954335147774018403204288302590596721521571447273534610617515464379652022226918540543127197144028632637251949241794312146713580371846982114062264595650700973781358529767981244761741717262583849514948487814005080872921590665000354729572108525306383087010820177961227912710763749849211600617438817631215908769026835556473596976723757814356623269076708084268089611493475440928415699561416354904095327137385085320948852934703005279296252577798936555972806669261154147525116093436534016763649087493107817813768162323530024216602292629341045599734835147176968977421224397328849283334781510304514119759790303452962742957917721635025013869267471073483041019225251883841476372549224752999442805235807868783674381427521189849256343109623981540885867977044186837395399887999837959827616580162251124908302823344131328373395164080224702274875716754094258858071879348610955788940820044857161732099912144895770916726259025085247178702896001239762098126097026739522080694829584980368173005126772780802357473317846668723244003282124891030952041095713633899384146557094498866127540047541854336267577226991730488108909068597128706911825525599613218588668692075245985542782305721820259920662819491573049967631584542579533381635028800441793891562108456339753061298055848913492932490524562327776931833541897297215739346764406735717684882268540712549798262223751015661490422046441541139348414884506162335272099936100339727601048200764319026144629243156546845664478947287077845153881346546481345695096462576553071277059191831191496256458902393801213691162913129235748753409035373626463097864266845770420318057284525883175060455186783584758189500306876111117730467091132027598772426829946896726913465715728168371771374258610586042432812877816659824704388112142110885543167604233922823003491999593830242045405600964072603549611549583041070723516315730708620865482628911058659481808002683300668225392865502220356090501338337217360625349335046937061761312469643780850632684590374847840511029637014331414871343128513005002111831007689540601807727020650148833208517224368906432395601783404353894234984616778130391935812829065029400003570402659793254859709233776338358547527152019881980080473935684063824731000580492619041374309537890464119633884217786011779147972278584156112078742827326085287701985159025827291737226544722734068817303233712789830962555344992567712167585431220381851845631162443431481671053218859348112575356026316682634163830186396582997228585685028312475875428024059120920511482280827471328492936471284875943417064942472695193927388491110426922312995762792970718677582042898649087781130279130597392281834494903318984226337977892320634951438449066622715132112145831312136704236297436554700295312398605776897950842266800235284679472588154451559514591755069089217213008811962324309813417014564840310636733448162560680907675132625873559647176110407247514239525448987697255768181670252104773492188688236102912469928585340918404678309905096111013531702641996021268981580920661203965737189279634230666503264205894355758253388277658342443814544054099385138712961415726986256538856611311100583523874954285898521572362841562508876941302896608540896457989237205536920861294980823668076118889703875866131753529436704194112471555110279612110764815351627157447202896742147226903172965958237190372621062840664898668769580779388967916953762825631558646449033048059487858401597863601636499383730652068679656943002719200272786759067472160491264121928747063878213022551861434776362527121944572359304620603003895640041543984002623771762189273415559623511206439942610578302271933276799933297086769550098779991610132139515214983211540276901848173172421004758157914060774696255437198204760478059257060584494208875631548998117329833991881488171372551037425690314226758565088667645115112984829438897106577380863357178569789551426549891904197998415285010882079262974066371934119597507194650690132337230140456069160378817954564887304203065953087694344947564135533147333757395560592202745215970052876148103462029747645774811398445145858544861890185688206446117750470647162235164247156292541627799754006693695897880283640074101545225178951491821917702695882270834234168450122863483317951968434598289941723658810820003895447991764826817739364416159678094248852794087662182383649286863526566502651823835873490262979356851825989199273754168798103099468058970826875340834292546426889531881012800304871519271048944594709500809120821742631789050011627691455394502240174621336148038808142714128111925691245051618134406323415434074867470841467044103559380613499845980543158712195100273000053954209096693936736429175059444872240099185306452797353053107555628899258351495703479465046825755421402438692578731917990675844380905519090408386485563843227898667114572620418956276493641352607265500670101364973125002119831485202317137774167080273401522760583059227142870883347851011985061022240036872262030860028450484744410561274638361100099170361397435894383747284825876754135827223311990516708749114941567359609313119341364974089289757167975573992669354992099032475987679491558422585122442463159610351525121800988471218510754120299421317369580442405989576121871734381166154585478148753630348703733882168791156068375748836678408745334905308312350831027124548102572361986180307584990169813513061816521288307282434237732831969831840969351963533926873144960292596524578119246956544823350588554324632929264463002830184419360483167408735797108461372577961357505737626627568265734826985298922600567124721464451789241635849703369555071814320326074092349692674696962739021272349486787731045395968199486569929738243929195128315159795309130636455071548705450597665162631431917668047741904570030209694451720001879447584208149184159885559040042084535915996818874918403419781139863664629316849714058152895063834475684796066679641772611714061763192774339303339445480290742341723532126932008990657741210212701263284210220681963183834627624362042238689809223984303260078641708240309665982690537827164937930163849533204045005495673619774060460489106749889381637388136476610449016014137484181425151025463785485180158843702310666291706934377218184880708908651403100078412040268187527047745642417273358071606994999725834254400836260885025880082112247629807147977190295927269627048527541019879605320091305256255733540805751574052989404535036910771491788185258863176915855301780221341286390894467773649038030914142599177958124261468783147223662250982008155627667288628308509078228073325424455285637543991386890212941971127509503426099167194239858807868246671471747148884915344092653124205901781219167065548461678527076299507545129361402815853036344865564019963176646387055884764477927579981039990129757008172451167438878739655260302836913917477524149957128578000353315960111481552639865880988875001113631075784888037888710890156181692659297254279343417267526916115531616370827849142063124882934585090568010329531169968149894535198934950466662377175295960049739359551780395249048134361619513355614074036479787074935462222079837424567844831866617781274226004196946535279155827834721415998308462966330295393885061960575507077541598069819788986019154828528871892521422456329292224783665192463215604088093996093897799674928941027946729158936061392559355169089073010431535862016378145455300506883826697719091872409218061382087888478197074223906283412079137523357161736827338191208673075401398315071576760929905153224995298503320072510968066466504654615436164512340760993646306428603003194087450809120749217560805711735680036651680127966489336288866689652890512949158620623938092977260603880080176484501460147786399231987423513230859278889564447067444496202541230497108458840960673319372645383218840335842216081548395902750084253760493691941965127766220367786630733064868561214095198613323426906905466710648533291835414939642418256677718514492700642072951773558917167991208694856510604674350843780851317259738443456001714315966802357611235144377937929776373998295117859158051224951266155206766600184124030682842026646040513707467601881658284536356090325653923218637541534588229271530834685164324670328193108652576734358116067707288649193561640847068274860639426676056382647912568616791659861889078408835700719405273400046761851470059470797170008257119293323690854583421152768844092941321906113645191046729765676531820871646179549688832726695506572589579418888867525221555208822756264674396338597069808543667472821339300308278951736262220942423296052973444583997566761378307680046131693649633657514778435354778718512493747458739521249471704425609367175971824310848121219203723461061271290522042783580782390996402669338889983387675162465726514796171568941996116558195416766578654087321839501516285948837681466589989282606734959130353861867182670337740947521401743929869134963992986583980427963302544057513927118314941514957940190415214186004914297307878203204866331998929150613990785412397688414482992299815303476810934935937530482569788097796569683775288180896726800510131945805443855850534995852933406109403077116069235990428316792745694251411523926529010694383783945205245366154777363944903683901070260329126069341519365211541608892356571144933942785508389800026468851307527867958191267427742090906379007334285518048262038826217604399863017509006893447612925568961483514048284434726982875883244709182811492982513830417787820071131092840484072501451011220440574974851228481982782600592912253192500791266740844304845030207810654188830284138383627803301806503404122991328276553614166791892259220818297577733669754503808803638467954553556110680649103698016220761538947264816298400314899582233778320690106200018219357326397692044743818401959371298467981132766796077369805774020756265111850139348745992774086593258615170535948129003048796656280685430575899960844586165670976010374093585272635158188660787402154521432336910976437477135461786915783718484420661781988346817425253742764705986770321485425290287769699786320881636978165901016100697798606988834465538318268649768117818134393902976132125027697348602496758538744983338252775695412709080230648475472377423261971760630277618112139063202515680787316694400382426264860372820940505734534878017810193273983321779433461566290133625264620502127440721252142243812534214543131280276316691125744105275049307768745711466638505333288273794209974431738763352015361429034025810781604505373746242880279375497463910184949760564496443247668715865693711410230077238254745964703685522413797706817754162085198721922251830865606373658533183074174725112958007241617625151962109433936971341890297694131725533514525630657407050429625780316864419127290512301002652687476926647022203941976916916754297985904920403671676812964361594900844136819897605714199345062177795815616137786259582570463213588538757673003348670589756961347689195976902189457263293715550450660481074365727165528795020262217960137758883270577678078482415408666422731966557416941597351009418540089293682109989821122134583501174876320779106981830965644213843408449201530802552584631301581211725850748795406883640205420786187404334443477387926341305275030171268584204139250749148909672127050327604873214419631607340436072899637980821906793846851026617851424057020725260334913150207606971418285803470443399281379025731506583751747105645494025613643053748737593023150675061851883009750578431256345713702072163574009593321245129245230725915840220489542900947628863129341899717176549235617655747244736499917252110909924924201047255592547796297462807980901530950400150619725949865954063216555461824949155590229859627539075310086814405767916486488952687339202887509246198408125036705626118801227903567410790692317355339689172412846191046038100515215413278210070588338505655998240865424546919376808528443498575649401052683265705966273482702145908604312263687791497445609166149402861384919665079890206600529496849905674299708839492466361844096885678729106009244399810595079308203990980572581843755198001980574209400608366670643830603450443411858936897859462447404697301326427759928326844643557338194003358185965457406041692549346296165196189478900671555526368765395833687309912408370475757845926278364821330931819347657660781333600844692455118301404099244745312179531778665670511469752154258672844864609669929625469873745077030383615259995662975213363113117123756059376047144724112509254766680426016331459612296198981823529010977036735574089682038176877378588633691340107373187099837932992818756934466638389595642122484543184418330907610724768029493055201825500672750624677783512400190634187285411082478069151870848154148138244555593786586039604292259470037201118378139694872208378150444618060107019540614741121166086624165070350890625990995521246470920700255345002400213321391050282659436138493141018222762634346257106933493154487380861288951254331628015411738480331305613356479176833397723283870783630361206387745475104985008063292700048629267825339490109937072386718071557291477106142728788227098489912406708077210014830676636202798297161026620843516836046126395081811425478112870249395862522510552659928401478639997717799073583726457656174943546633413457218620833844039464939382862686361895316800400298341194137298449562520425471239419778526705448132229533141276280772881315878339283443193133611987818214666457918167757483933268797567224513953803953292159735979799253213413495829319412175841069337459889845697041281494445677810473656464695487812269068522091010668513770740746605523892412761805391042847772593864192404223478812246235973387972941358572901474671280136324570948117605044268649835349426120489785681364561479543715708210845456320174326723732840338559148595006272591243802779844029835670937284250743418680975531336643676779333050439808710065740548324394130040831281843341256752486443646685179528464926579812155643827869538591922110456509113399803037206794967145251795108435700508065101121631087074882713398606640603464006362139037605800958574330446761386227214613498676006789618506737949899835326665813404784927090161747763269920706165564420762055451290384103562702027515660553867600865277113216050421003119815805587356088241236204688324106824641419273107189569990118721162443042048013469005680146140218607652615308508877507194792533435717077966227658009120233186085877595774882639627237833453026691778680670728687814239307817770156915800858736391090840342384270071622088451459031063290697703540350726174917966511962355956763369361369228368450201108740922121134260408933365079178655671177208368680572886261110276928353437806421408974654784728096902022351720895324403199220850284222672199265383933200448697775239551548008474500562055834864734904725856870158649431740031415985163239968508861847314379536601202078763000872501894458464213676533937802480311507617218773277297596440317245737243264640831212055767434796629385687707054078259443546754651806221706736983840159565632236028960063893780426898256227410759353191733639944556794438795597775566789532427039687307887677581769157146527747812237121455227252125936522933636958611915688225930501974156630694175590662078200319302072552926383268081853114090788450168392597282653077314570320601546474753552655497137967427362890751124368849855431268808666482550561186482118594405094201387195985241583660424983259971988353758920562078094179559727799368253721612722412204256565634054481669705646570388846532172939797097606778101079946448253345688130953226116229767163298374195739143086137107984589773812035013039582086456848617227758773635879040576427532298565718173975218743743363771731198712581594129987411488358036216877596786790704050250812161727050821402302514184061200650310598507433488577778552967643229060373597478040486422355812077414057140898334393754153859991516424694206500227702395597490972299412152500315668211922960509021572280095599646885631982450248409100718207131204697806916967590603500514132150650494592271736239624016137532674956327862435463596200010330816660951838478510265835708711770979885746738907783243041770464741572014027178204621436914307081522710837802061598383849246515284746014733622037824857294470168922525472295459581178116575509611632073475788273952300022149613702658079595512541173274808602130628749609331529296821813153349675718321498387684033687415774702786696265222730011963553199752867139685974748626863050300443595609955792883463881871334283232697792727238563393617873850519206998930379297572164886522237514466316569616903809403091586320029311573399800521509472718703067009389736508718463479368232487950021287059160222858116808033470274650640158203700133792304275852880660165174248690460011720920579595099372168146682833106887483652581530244557638836535575255015862125098400071602444816366424925113927478397844672025932181818505779824857940703156450627738481518528723973992882573984797400234071258049974557475885438463764751761604937194605355939872431568590048475486481375644281972128942875450622811461748777176150141143650135721335237731665576867947803316916895180482653468914523722805027767016316847821614521466031563784634240822631340263713206042229384552004708491125559138024000822618524902699241975249796485495587314675190634363872550210214083379029072643310968314339167534608196310664720082393001399275395057034787210434899351000280095098560660169718138990461376707210248645718139147148589531726784044063882883380796111602713121184449114755856669159936452890788999655745619482246433545089909324385546782466392792400288313680956918248854614635984167434526465404807689899843175592618071331160502855618772128964576654112923276544861139728159089839685914559556711722153149045745482541124501380412674735531700161565921747206827575067407907361640679512397605312597618607548945377792239617095573202173136203548675024548785708305614052210472554352579224420319998047504984206800850036611681356832426957924698588632399775242538291652428801027916726945492496038705892626986802546638594922823836582002192410505698612459386696659996963811504421374413220871357244841840404785251642582933805625969391173231729274369488044014562964478282963175788375059704357160569198316351776643125880318403817077549564614997890293163485411003260778618347570860676218871372675604729506874450917210577058132282073179138134955930855407325653304539121065723116616320312968489580093854478929293347066801667380658975448257067325565408193678665015166693024106508278333482603330918808722900244956351802612193548107850993410036311276481069496702698383713272013360190305501464119595038128473330834936791290387550163558845477348236147899480305271229815428129717992133928794236214840842345716799255856567244040613337451240111479901373266523679819711685925170343466598089756384459133630382871626892439388452414283163415288290099645238272046025449951733454625527046101942057338786083578111539024928485129518148278003850847318505100474973752534518008746022830921711150894265555853117254185451077159962649330427593962656428704103874114668789302509607837160573569895519731346488029746295836839649496958535351917556256499975981380008055938084564425219947960985529791773000361029250598581196420988108862334294293253075051617633383059520992240418583799747428462543749077235370853055702990896381879725034989182371578316451077080313295338263470033152827733171610997870024674181094008304752534806877382182047767283312352971589903906533903261777240036394158605885258599744396182055434468001609558431226363876251232601273177036865631634889609059125359884278873147055824200538876340003574522232673914833151565401809782059881994665010623912916740831063965046011487840022158285694751351150489020893543569027953707417269831954648112655849633006780521743464785193471682404493512276104291921534161482417661383458471080492830440510509385709983060706369290839596932918824023116754080211812398530766535499574166603650464424797724905254258781249890186297857468331975186562208593030737551077056773326367670222496242522058886883775558272600418826154330409572876142866198102660662032439826196876219848645751198167098405458323650782630354329202604118150975982753079703380977677623033301434245968824965999051006334385299155111152185576649609383010304433338348663737244234000039587477636622171125699312042331919395884322541221927048828327777886492668392995455677663079242125942687864037556560630717826239880015826609424265202656241668137092556930517782956626614824441493086953396420571206491678806768617332854036538790414196672279864411093324969329098727651787202525650360088077893615410695164756786777588611523177036287540340718858419933148926696165016864895020280410095859352326739059987835940976839724757381592357626039504856758267129599743078844878260669971192485066284820682232706941224844441545687465240346302928820077405332697020837962835131440554124935980738688893977621415467791852338457391400650384290209435108610098965409105374475911575785773887332300176030345640857390270190021049674855337818636240941639909909927815585320306585673472407361621170627108859482728917903542530988179968954597437263201147169285425848126399577701067081008606504787705155838494807465365984046404321553851431929336665584446623114838134254623482116587726339164174739908021459683630857896498595071299586773010199138379815680949631688563912062784817313879952508287684908689507080770024959920528888761514325023524479165858520833624302857597272319180046801711281796812107838138763476633749912909327701886361630121740001951396496992832093919387032249914753135182993218532402757925294399019168314165746390646798641140911482850787222306492544887618915784012437129043941244355437051618480295448201652193297031493610144299000685962031754683775687966143296872116009300704266235963984100585570451524023925600298248357389178270254341862133748446205956780171997184281309267750125532475756435024652068453344772816253665260924737216771850746031804425304102079497490390517160429185866275135763677686602873779736633456107987312959076772387200709560099568415116015423906574656222212306735955272812072563887334578700241550500528012516525525495943905423847340708607478010211607654426895557984261956847540921391957003624352960338857250601948988082091937067016233222262066960641449723742792994771024137229232269248734462892956652051552169931619987013185024478946500636138847974734611447127076717201609625421263288750721541634278475498770636419518622372733329633555640156455257717918665167239439229492539722581389593312317380319250079259247839100347924587680988779405893198655725701892037326354976556382406844596969992823414949702362728412207363519688825844806237206497990578701503208754724267345316183887798066894535307205021416303392265686616649669417182396232928781536105208030393672015597116809384566912468262267167146075397889509138388385014566962325038939536490414709915298626456970552078417777873500058744552837508291697147811484503240884200347937295864256503893859518827468243057208645522142531574188499358477041509851492923514165051102994020252063154379495011872090596533379351793198860589420232177961728756738413649581696353578662600054089450596522107294751741313912360136295143089873429139446578454172031891467369259913086462064389421072007108005377346719304900100031635196681812855866694056924383816162411542712572238834202559032965667077814652064101704406010011477863657980601412587953949974502130578983054649475974914316964715142103812498088430767769179543703034910870960962278565870062309320871605890062476751918635388689418529113914466728779995965615820110054358064059607460759921823839458428769114346357999185861239748863101103496893837174401628707998159422074340157477093006382693347114479095487544625750704447259481972755037743474369970808536306713406937227817833300123993490892117043862450321014935046743551116676533888512453287835645959723117606374790932587733870180292017656263622179086647951256902916101645903004261255761402713034628337959106066252521459593107421318682211966685704623574793056369611199237544378867703382812096191668690058177035745483484363490554247785266909362255367807602212951094513247842311163432403761757907888089740205944031842907013581276310158477826031028361380441767588981674421027835688257493233720623858279598116876382214074169404437277495117211367355325102282770857133273951808822264704147935782591155292887718192187424589897729672709411438127071191263863729008283583248754342033335106246440525092240817272536392661660518965075715946140509735479316669690001645481276234032426024495281293368337716936483717892525363473392052169855269332247073329428447714266297631466305625657663962739568125605297237972984253134846375495081170683714345839861764157000583497438032456405328592746955235081004812023294143648930916612147461685589235879982845957232937011824117521398015866606276689877798538897848390170114965126350179319320524879656988206843451969422092967220318198257591308911294946906982998946894727943305528256335127195547165143212435924906524247867251213536388561194323141529909180983356705237630685275817021138098583315484923257714035226664957852216550585824249775761423848535557203990795284186654852426637525071641048679965573968039755305337213568966874159442981270300757166582094558643943041401693870867982099803895124286337397033514856171862972206275777129687970371442990626873739230040831823575284179091288962221664255779284987149724229892821613410955607415725470894050454391761822293190603987851168970150894564827979396736826397979365908698162553551356941018982229164995413984451149506755054321662252917487324624463083217421361532566765484701719672097632842354909108719948433038042785642474252487090563108261444172083780291559583575467415347698101405871779720984854630161021192351647067511998146070932453818802227423426675512224429108600928629343235137268425035310346399967661560463026938535597250793968211538586358429031528872260926346697446574093713923944451365927218903398952926648117794781057072747120767721799643475394249313574338849688459329003483898297169473707297696069467581267811027949751562186997916125844240038449056566098443109706562159699428001878205251230047552732651264761558565951559565921041991007905481113660599758142363250281914836593369467507708655694062583962178128158922052332523425152529482684069618123677312139282605142061313640335940171446133400543469889775556585781346112008907989215901406131195830850691327596968109287684007589322516430193328092969360443107898472065774118398453873553099068704666546210597600360443895675005096615677502359170475532909845484082172656416662285153735746255186794221403131760993684319522357938809652448018365080236664330627827769631023361639025930444811070632114641491716689549860923047086764372197693010383185758973535264663266124042479065161179311972618743823768500544390408842404094049430472658668780671744447753605265810196534445593736978247032030064496008516122204783885279419686583974636337323329056296733190162028718606841946376403169716219278029646059568842893367310460981920202172354804061411343290984246376735104576128059808121210602370749186935578858319494306723167643141569735590378407854719096205029686700867475518857140144646862961900028386236443705885617726145434328864177274916134659331597793642931997060320931478593541030359197564716299908351507963140433151481988723818565969640999069697927209491621526432412134320159832384850714964086803938265216182857665185027272663292174877924251553607773524790835726388806064260419935030877672734334516815818866697852361836729775258915382626516731743633359803781863599640947583879282266910725992673755011350718820505264788742831652369548839625557388278328270481974976374457290128333871190857326405359859143810808709774253165871186977537648658921884379041325020849180544740681580602331554797637175600809605482836721003056576282845061879689418879557752625139616265830545792640431014927411322414338334070332043127836142169608236677792332825042791512261837149897968836106720132197196697406439159904139594016825131112024866810364164783581186955207815079462334413515733351436379083831161804989203210287495799378311902793356634100993942052486919433714014142044895051051184679385875443217322438738497236481405538152986915671137308676382854039415033227369190424822726944387489935271785642977453066891311222240806436785600401770753597623462365159627684905275641374532600461139637848067918196541059145718247081802639014302937278232529451449014173511245132918625363805061220189191739497197346707517444238000809709014299206513085394652696314743838168721355711858609403042622225876739328125167998088713641800341326387707640662535484349926622573282983424173585371522373851118157084139302689529672369970503961687081697087311031863126852157608384622736705508830398449749080791768769771141998475121997817421744230967680602471505477353612008214049863202648537337420512239853618587888750043199846808335787212290697806652107903760760938516932293661138820394242148153881746799017123965595624453050667678791321209299400039001786740549128381867896729921684779060412556286206555558416749739896187412741780559391554499525670775110042938574208543262109783669699715486166955748453624678706959173312751988846256440875471528848806218813626185202071445716001267106260330257513167785128322563583524183493156761613193886866514115793236106861481387598896272718307729435123714147238853872299257821304759406258628478119020630378118453868498124585914430908578587157849773830109466462028245457653629002426834958694151327634753067061221205890452093176409200990243394198727598640983394517891154037954882760424266145098285382833397889096360280811378230383843269809856000010833145297879683474371542620733403754257648638229503797314837349727697747230090452484504778203124981244827236297316647355246585820168042379053602124001446133760215408185397483335452264825898946662703947965395379440949023005581739939175693398912500215111576991708703559852603058839106444222306088500136848736042492147616771829598716550086524928949210037931998374936935090086784476126178463487685296736903854034459546452337706192355451451438875074561923380553604148214158211824069657091740773390624612861715195783464387651238857711226572348414413887198767213066284703205834423210865253586263191768426674982013143791287790096269544875170951708325443500713594317099275749942837816919434761441835788857482259232035189742582630609308177872894772359300663001487308498959663280009533688403078856002287442062333602542651515732814013257107757617341381073953969076814299663612188392188906907151232865118637929837296737936817431552536536158353518961069215968267927121051702739412917377057526946104597302914424345094977455105653066038508506201082160147448207111575453629408295271727468858739074667891584711502650498765332264184535671486274012185980794526855344433407580811576499171691344559917832846888100874463337476153222728334395615144007748918469021297753464458280700053505246831186599539205405203181193423296922114139188673697127752105417172697580509966113538232286149522643988528551498819194906184464644683916187855863333366047451085390545880893883383864502043970877798219924347672019079615516790400683758673072188767972997821362545015079031077068505709377284374852637726119297252296363122378382738847762025967218451621882037311513308102972868409208251081133962699543656645869980841091521267361837304146354360553313742165485674490587330941157594633749870280822141722916844680142931703692466874631692024054909018097585561659042430727786322722731620790407206132700929237493456835535708609419414174989441661597346799314541335067617475099662100295160225808843029951700190888757729484078828299313812733382473237341438926318142535619015587318432772401494376052089372782773459566884186285349814443647382712455920702490173889955820944141461158203131511739910513028202142125611754299108270614935406054130730587474559864261975192442174548199510057334884927205519740598904746829585053834039558809265712232472675651709821009050988227055809816176141401601723635226391613536782726930338559525658547081031111583920802983607520958792927180512173441671411150495781689509407384440006081731645717434951402352121243388788743948329859391266281510259419726537980170353269720183780813668604723212021200074961052818984986611996835831961590744486631196774133651627510649328668615689710894303662663751424636159501939757602299667528141798589246366834593072890883192513582064344763465336810110799599316189639546488154538269338327766864498684616610264320221835293396465265911187634093031158079268049969895304254137678415172452902126038976267808174981736908521197093978920209927257339576672696812619141141516817096368829139157276924264256710092939820574717631879241344126125394897722840972708020542341196165348725897676577264947766149201293715050337788504582261827426805133379352574591488348490678002006505467416576348650865493653485542379478473371518891093826809534344265755825072299775327834568344519407241232359379174649019751711587372615736448867269030023044096989979689794685121592619820863613408885394792061171083137577246041910641869361658077103485685175401311247372268069411263686643555699298090056697906289019659705165019282069750748601329906516522501673647333222228910782939129272223002063870267828228934152659934881513308021616466610639471683597586565253692279684486778004551992975500356998807332126089025258740575793713508672527568710022879520967467921162938456973985259930410181224140278758883912474040857419504124881360820099583127905215881776556883192308993673143108327002353606455769827801007663525696263755248263730669520332822296094641866415474270790420742807643141433568670259770459673700776470521580495122941047800653065844669571584176202308636449120041145874893524132374653079879523546004355242865240709609062568552354915652508099532313179342311116965033213138712255758638040647948665756341974930506856433472411047006395778770237248514340925852306937949963082464100327171419552844661479167095238292748312864317747816642203984620888584851068642567594404836231558583127034865818017068109789318688887743950472706942884909421806637032933607066086957186961702928463608578909603746445495739242891757150925295924052629737494980764313717508684183162695004608129518025964172355024825336528109199483320550445893449073255643478478914505240564297838994370178070492863066413311516090536841236323854416979948038848622820002195257160649934557157155395674497827809534461652777611428839027577825962121895219012740024345931605879842426023843059230645888454612818147311547438319893512470369952434398119585751613750447679072849461767389835992884467394784616647365394335393913357501678270116915502788363820592596817518880847752685202686573696690682878744707793579199652714451003592681891560921640423836499058963555729943498103954895014824932797775970236960358834133841947510767192365975344217549174225756491040966081253685917208361499375379962630606224037166601332739421991819872939098713807647603025260407456790681199544540422750233675732098825224896809536539605071780638528320383620399285095049310966220479117850262323655246772388986834639156090176815996307650467922291307065661340364827799964783023372175445370917034556609698741507967454362268861945719240820091596477327522089091758924471445250964496784537240322160907774797458903446330662476001401318714266960049162049905554750459572082701967498817687460869360100559218732550734104703771360482342979497020989371846909608417557319181950401939246043271255318912988113121688178153459321300088441038450875979734624868760952725541578312344954134939447497434422007880752068377339025829272692320845051127201400127603251170647679370996730172465231873920706438055379852740611943140276993469217739526370217859691437247332250913674362155039361099076670640622725690955161751706743208136004889886032068744397883111047890953631118653595659395182531150575758712386940895449920005196718568343743790162141814332684079545342336220003650912183904958645509226655606563469085518438378048421955832962747064576993330769681213907270987558119529973071234961305918621090173396507140897456541242999064797479240740618170156011030588753546494709184944110746257116795417545283529021228525582235387689219277606837565859359239176331888376918001246873644449179381284203499960676134262385175162833921200328842250090698069446666321847927500245453458752210611113706683295342326675436593692203524192853553464326679501944960055142130553631436102545549983268380650606208620184487367088575351614294918186006318410552022229519651669342366904739206826060055798136190788569551392652323032134194645334536343403286963354012607314209368154352723150052769421668201496054330468675096027478212720034338521353655433917437673854989066147769372410206554146387501944147114635402639622052052459735015081906594053100196084137926545775849573728339341385037583443271249500814167707865987180096542602152694568132417476996529559281316030538074215656732590877982850037328071467511190520703647848883362425613426346020139264382786930490857802048408407764392910762188662721792671678975509933208157726893459111344113113924896833266293734657260550068761862237652483522843526702022482603355094471557310889192572646050243022932567755432519783232261670479033655577070894686853697193355742353336077265859329473793772441800632547352647394495500038020153206843483291924721976456604822431378124999849114334857008241392891463405091216952736322077515264806718004466621809151689292887466639636234480896606573569800451260237040819765551615182786283788841874255325343037596112985965685988848038714051883317999946929747135425100257836781157942881855257495065084465404203836833428170440372633736090682210007650278121082580244996083746327618223656440163551815817136850150310789937536819701384539117030827962542332793162595038127944110768033791792540139678879099250489375491500603381594428910627961784861439330515636002490104089990820317696861055460160899333365071206603427762265171677033873243938353033363192741535677907347891538124315556916067042984126941858165109816367193785298576273267695789182210995975956279196324385403791584777483980490328033029336468570913327033562822378886721617073265561032189311125578733751474859975469324196506530698915099031161182692124732067444921251612033928961573541356885830695368485630144057014513097114989853189034098968791976619646403434345748089604779766219693176366907576160213798412159363157038576063238708902046274137719831274073552148920624473307113687719641920220156809874227009173795129184394343551627988229784842418859551620515565753303177374628401700905303359028187739608573022344869354430955235130191653491224563815501103396701057325164515285581392777170097388120285598963852285552488215852692378515628924485425323308183398200347650778984604941114108361001895732417739020720240769241472254034687018250690306689526873337862616521271833371892883232027058895484791148773259081988394135023144026819780909426633868519955093054006571239858926180837970367420198869439467541055272459020178413622360515940738803299613361963382290332102238011430373670133899021077354212751163172897604709582345292342401106253094695620637528607666869543682296100448850236271754392027152826044213326049082246061914260082389940403227114164283720004626720794610427104194207426219612661064825373579020345231055122512662026710854816801654790447784110310713669530862466157897111980609304486430575813043310826614368819620335799388382679411887222211078440973915005661003452210694362547381519656906015476250493400879120146917438197615900026620015483850342457551993553541674643055313707174883191708507286766761845244159594783198793033861230724696779864528878613077475494006535726016514944994624105184374108066513771714543321666410052136271397176220536235948109077946214368409931856796561299809331982533342115280741873306149781351737876576497737229066815750601009997150667765164447425730886384354111439082212974170097768402992697269241610673122704905752501793161115899272956892515683535683974466099956866178827584683673096416976662553966131657629905373604477474618352033556702909179818981693258604071363784055130148472534233832741764181727918650094915763863146303082082223603377476255310831625729943856689064187718691746501672658748220628252749302151398432035389560838458185619080564922187293366140110604968681523389560789567332880063955908538271485539611861817196867358930954510147502398943708393910468035073379117802749144967704387753836098917546540171688496922514984156505617125203018238496446629252250247471064883315747961158065350081898224551958930925012617268286297271787492142410868159154234320149554295294012088093152014060730413327173584113927970511442198272388449817581761659795256264819199437917296585206241319954949336451169639900721454578970059850513385479340350496657024957507802762124554147886405921165484153358595617052212557009723063660490572782051255685909956909511304121695048843118028956135243402276751975155067096718286363392186862810948846358281085310633945835610318444950272555080117682467420428018679664941334657640415827479045041006809713705581231858517923685407986684742716062600228359005446171702036322430508184385635073957852559651143659211117128251041564348072736098966567336971290810524980582828659827598265483043778647153212187177477271770638590810296075619196607440513868991950481667856763286194865562032340605701466793854755599406426226655182440529958687737345342453115830566833999458288253387215375116631732612529244762242147087508270082372232197976051453857367730785276218057880746685080059463588262060341979277400305932323701660658325023746831134658907946942286517998235796384478900050931152401205653640405212669167704251524665593223047828510312168721679210851686913280831908326633807655458869187280956524310405739009932128323779094042977714886328637976950298101361243235380862638157427487396513777467441344886686136068873264970135999650264696311699273301337476028817536507379849166716748054204916709201624620045693435037971984389689164178403299825262775130063493570181274258818812734750362677327165792687225506524828385338394398233391463964582266771773366471550597148268378586089702374767900023988942919971219608238350244732330121665467174448746393376915460088861663641685055910426648276347496808237574861487174551494178448860808519719441357157216391083759409384621970838063286581271079171034187712310151864704693937458171009980775094149856894680454383511520991850157338868491813058599936944992188505111051468243719037694306027364178149104273836688840358918745754466851110372875100531975718813472805719689732753568776937883144652770442222385019539086625024415706700662407785395035785785800507166714437210071845409911184950642766425984987344312715690608525489272817089017036739384142534603555176344761819387717763118382531099998937336246656855935797191582182589882603386772298640782803488264596316304270827399952855681174027238830441032717930138477467322273817689404908345254605619770699892111648090198322327499194429551735522347451213506587288253366911837342577729597066275277138606380555521175311160710843927300892047307260941065129295905772005292015011685080542627976636327020490007218961562107078296254483564798781954365889155577204162555123967874488501182475205204713995270030306325544000423628913415928380417778744230477639383441894962165628869936934471111935396117089521261173321448793938274762374521711581259598489755466936455549482025048098367169895463038381298716659554932696196195092945630004225373923815763135423994434868980084091998873223540001125846519438308028173090993669711024102302342354150708946395026596030312744891912214548804582737692031004421761355986626080090068338287404910582740986307936809320770060544968137588842386584243650302323770186713585051538301545520701001984253178662663596737643277909928373262926071752505569790505959585176858909593808240417081000579265777285434275690391842170891429732515379969734979688085007095255562882566835119826324286711109966991095322470682102696515204836243832208285519591298123233170444252711173019830286034113531797698843542811790425289806883359270074025960554697028251811214654882673111935795119004944760662911225923637368304945804929835298150702364861122600516795807724165642028415243436826140239116780857195270719416068831008828182068601697138729358467578089075223923301486017058378171279245115772423490473512680303280540653420353278857968538652772023771000556193453895988363061352077093728621775792925736527537263837544176922730219537414868788344373500812864523452874993004130003426155689763867006054713362905453463174135143607230264914352891680390721999574801618211938551911081221606828947135158830211751436293191098896007867747213300742580148979272437445162771902147340619433646405835963161730938260830227782559363036536801287581902277743361847780924890259339449715722077659015365275559137959169784744705816156666058111634165022587205928491482640251997709451031761118163579067167493102166167828078862915294584292352085635152617502329871145456514189083821309885742287101912919111676388562108837040218908512426916857695589171029382176906481825870598913773854399752930647315371543481162845917452132684538185612042500599021013770252565441200958222399309621379285979224532889109342523333345379181525909264736166070200513834053863111803668281253117218440966504776817976261794115321681655846047631887929140366236591827688871598577788411553937364725438893819384790169806263686880736901218766778856712683497478638021025175803058940910770711625244768678201173799961309435934050397076026999419382989113031989299949783863986096219142921127839189642137936241479329293803342479916697952182932996937451405380706935720262349231903099406786097908790778629653409276901283767862347643380714030270880215666937785028084187346420708233767546387679133905095881957322998439708091199461365481633347357393510687015501730043169865838264084690807506654727791839140356538908546911991603635556932886870222016965524071200705511003894994971457295415433287381412851712629364961681942619817455211243869762888092085707683527300055950139458705693801571171242966964686393196018847851075018097359766812429340785319387833388154554043079610615328364063595891739944995497968798086516991634995824106621309328458859562346400289274988252705241503633692109954063842659090931541731627161830093809561769145524951217996463423266549276966026468730341135516406245781204731685197011493712008470518410394060311719826923938545168515037846163433833827880467972671007676541362990127376031033678146068857238716637536471417528981401786365199759885634694310815888802798838249944339154388192432778031459930481062859658934211233207745464160166175480718323587016425833105704654948910215663600865670809187228579429495743602071366927054497639024661510145887229073879830675925029123488504741402225950066710266699050652875316139136242780676590582623761671080200313332406613999370797186896389632840635344206442833660964928015436879810460504153468208644874783407533402797568875156501583948270692785609776469324901792267322460760695642128506870277991671709905444179472706255489537919279869908099668581437954206485594661730057793020163344322284597698524156382559427140124209987720674670691891895192103235695896123840865114906520604593846578816191823354006181631868906479568441442661759391388470737798935384813515350460519583423595164099643115072337488313114188466632024874325389253898540372874746974442252404594302528629655778937911316278462077709759436858317633298888171250942378818489048533944767606866229945795075573287012243204050539047795406843874157260853250636371381793842039944979265364449537600489604688808151534161904884066018195795102281748354147236402168193671241190508798602556700629320552130159622911176406325064840503366012711593368868511297546989014353367689131225637948531123305868326326737187678192620695044388201680507065155415540622173848144630245529830911741801515458685345815998702384782427056492875988279308053666582239598791689307782388418692187923177431277555750368738606422389236460307843443686941760399451327432098427641179397911890436239182442411141162145061362332493736800088349646320332058569038343582175497478715603664203701606916308260365522732507465376402163122432773460073326728236111106620166723168444067649477337489166802954454472358799403010760756111744487712228549432752696125599581224240932450727674843283475023492815440154104492315043626004380922281128383025725130758394524184458763238471541288812929181725545235132741894233193754466516448757325723239311396267407564565181775399110392273756740397216630410145218993734799731660827514138286299823668678264130163142035471466157610005281938417509454911486379222835934535326748658962512988158569993174182905448704278507221632090313126297145731880962146806843752244006126738718456079546754045680884207885063457072359379620001519946110024084543750891112678560749838982836782064159369093151711633953041605701913085811707017121761993215213265722212827615162207905841725768665342426191533814446039774615594156912668630617029521975684700917283413582465158781090701852399611864079561645349812805111139412595001514490846397392174893135803068659999789927579416404221451263048631690871426582426184709960445679066136796981894764915785738663727869102062687188636303296343473207075883962328813651137133300156032825777460489145249275833611163260083760568803673235451299677468529332265879826401070375235911867931505932404220614950080960993148561007074132266442545855241850182169897179287838156727671162559868691746548925891812868203191144596646849535431411101908068198081745046108854821106431648363604846270884456996321398630526433176803142431948314938281087237940038743918987349037207096080924677322040851553355274371510798776921100883010490750407689666665275653062214916849955314525965592669427428566354906321044378823023612679327804802460515146741344186119044579652804144844812409226097028882663087913327756107700407800857902436208433288871788043099619622895583621916550268357911827864841699406722371670985733328689675001197228233835158225674720331771879213962039478048493712400869925501554236550952571044838028824749430005912981961227634238689677500861595901638511458618633552627587661060928580845929620311801648964443412321612645110533448599424506289243971253632150053749519819474404284918076150079482333385281927517779176211957335028093088304771007909500418891738860693157428925054444230003253130299034394190479346693097436963932577058699870540636599979407057091515340777224005081639884636547823920074829414964693850995850719687543091298347088754456517177817444728310180822274934978889802855700738072389934064544872969842331038300569456271238396302371414025971298153578848405563339746009389590472147804302179174706094346140878863911250005254855468818347765841130598485378972533324361229418045616448607267678265558291415958958447985728887935090288155353106907514010680921404278952217157726526468972833830433817703377660548816366076395519717147707859084396063616172859313787604862346128232814685985559657037078755695197428103551843711915212549620417136280467813711373543405415631587284892531706158803511670385584684255286107110305550338196160815589090906658443207527868052868166445855378327292544868246316294752645250955746390868375710690976948888395223208981930824591863749864636735490703878491952225729876749032006495383396742566641654241560814846080679265648693827757753532344658446300239324665751694096758506829797831404216150925108960973968474531514826584802482466792300078078618912524526412415958238057348073251493605645853446237162562051635580908193393714491489365800290673073156745789772584446313796716339809879160354499531098065711675236999738990399439586382785828750776328203734610536581086689141635404116865095286164099783648532057600609139576402210866123040657672551161921289192079278819999959981923734978232155305246723996695829224089058871416610176459225093602684664101963267594252735935570108205124612424434852937375305872782597367828147530519675489462149138785539056427204926153505659412388533538470984243007677464210699740884313085942598256740741615573446627413667742471697967612642890656099651398916769122597966390036316385565233802091476036503145670673550339723907804237247912001586054766052713288986511984290585841151855474092209618334925181376619880634622986195881417099636858917751530554146825451381731550488938784856254500243593877060238926000463836896914219569371547286768779031279800219825584169487803227480479888960390937330528863772456397296914129562921415716255792421775253788329064984760940801219338101847675203915391453885190108071888008220641814616451442035636628985563900128032874293345177988196630269705682895769629154662877855229756753826888162645679014604953009667684168051875647934965931549251704471625143571920510143578130676561590197398664268126085933735127720647306928613593593062883180708889318613271128518831631257681365659292759255587661969429469590736684975583192762492035949372057056703860970519155629583194826190633774068840097413978032163745899778875050058916587653432424130184725423744833912091529678818519298519578844240184877240602693160912619696234899094630897646034305986962264282965895702611649009386451573072260758065264855061137219800241292207768187628014187733835486904436465290013454435319123322144400095885755789583370391660875309883002289503905991957265597158273442897059621540370077300166377395379325724683697970192347544595545202937375369482319837226816134538019140920550095863345010341505456279977336013200520377830270660990829385079059602636442474327273375699356700823614032645018270631978462243393612793252070062623886316262453815469568323523703490377147545678192703701137370223161544705955716197168553722743598806161632762187476304751766500311848224385787327950869531847870842640264702049948424050873995505805761214136266054138776808845097873060678146633848941425162189088579035476935002074057588875412836339420008626594844313650033026907507167483315112803773099002260136099205626023856299792558762906614163185860756689984516884801941899657128184813698910609047754441064687207072585840498276836633781342296125021957131081030508613742227265966074622636475106194949396421457897885417050428961374823869844040652668523360203128701063946896372285526052041910071506455609682309453303577487278142231453688433387783184905789371170518143716830733152565117727352548601490547390303503362112002515463975801405990700525725316018132816101151909805288917873157748285780368770677696791935317337126620248729849445829940698762032839432747967977351171600181587162456218023354882826911463434373822592307161475813902927786350364895662873666418215618990820522048214821473532607710394414754878061321715226626939804848264277497877413128934759053626447102304607621193920819332197787443069985093941873554883749478727459895472139397849749099361113738420214096121963079983819051616216212000585500109156496367660923186400165602226788810255409446731635299782611290277543256235224114201017348935915350143601943433392823508005726163864106600717419788964811206711523232466204777181572905830271326571690412284577034344904929571178883298480097742968977225174276653945126333774500637148360310913515847373132558279843275240191823914008715554790341789529967627843362260209812344867345600442242221207510953480272428070047260409515582868548039187243369089572281181806078216648502420486415369386109975073071162332932779736048260256257774213617496402570545099765288457213342494364507746077653458673217343631069865001049473721173506148491116732237424309472170041888210168090450874344147113853895330269870371285034506044091506234391277766797454321924882030525750862459563460839214556494395834587752540248978935008351641598751659122952303504798579403917003440134812448919816122623213068746504524421967542178647254289626315170541562203706816137666675884620397483272274878444152868933785373632317492881926295471034130462084003432917107129675550496841492586992126459145115820447613614436982696130279805147925145542275166652561940104994390660883477358246261650515922144678008921590141691558606687365205314135791736063344193441280686219213881138214006268927522210368464446345807530138995004136941766458754621282115933725464010117170154601322349490094052011122369598161341019647507287634684351204172726736252910428369140886574178191863338010610154414180942334146095245984329002587303468829010209980265252553044887964822033030748443758516388747058951736134827655905115527409322519745689492138039213424261848948015375755548628446835113886282228622571683473086630833261251691288215735526448615401267618296226565960752047296763004010652904413676299665902761229440374098619948690687863968270614721219860514151058635528702546212360211354998340348802443388853165634045580442477010005200732206055071656354823437345555867219159229761459292782968990139871351365532424672188161040978531143588735420005732174899798834182137109768136481983673895888222860673687261003289073876905906376407155131072369209735225745836295560318155165776227546525877492278732896075730747039328195049675539024548717603899042627669199689441602631126979557425595635250756789878090558506031086364972523040473940277409983389684091761548570474711829465931733040508102486047273709914929337309324276934890394518787444933208667744153297496604027230433007896404933136824716108457169670202790239912422320109795304383873672049079529834227371212377953886661510946599935589795204975198942826456772024448811662136746285903043515108924316042183356333083864290676658252009376111626953833655447309347988798016915115149097937716460550276831412926595217516050475749319331452326520458221060600834064173945108615657168347729296307814352683811961038102675764772523902464632490874087837778687282243791078470340318156287243090090580252435780919439388915481071234291107389476217042550284902470152018572655003361966415677973089670321606312919258176836415130050887464756287709115688251716178688226673354518153949026990014268387107653886500953015528477952097068201882378993511891635468845158661839065448988343573800721216046438458998003369580584539231256114060307398499386317585400893706528556753359313969857301468144238481964388609357085838678371562544722536763309610587302202539491643634045233262610893414449517452455027216985699857279666935047994653879071410653776105211100365454343758674987163226933128469609903588114632063719077388889692095472978458613812713336150956237665856337499037947992818843526066110489927921054442864721118777172172356672755022127143053175544879843898462031002270511665348424454496742348783549143404492624162772227507271576700949512149624855237802154225116306718493126862158681836690670400746703615152487568463015206336987485010081715071520816864628499696083394023141411902585511714919086452288305196620449399295873439018447246394262529321415402246946464015612863700958270372762367265906721990430867285576964499224536030357414855266261480272391285220576770014736902496603581765062185023944636946046473000816871714296337904997015681300464762280580721260849182760833928047034480563876157853725501612961281941644414626516048665145354076033755978254049829573744264811107296207140528613114736424268191347059088561869998259660819141900669999357019737623961862756393251255863006033678137297147192275164380563221585195564683395997179690642437472825839936939164228860069407934255176604124048166097758124144495981524098878256119702095986206541367876396018825670277268606979384876177130902547651619371943063023177337745499896254687248847676571191099741299626627127380997707078881518583246005536161350693983145318616294981756601839840155380013593352100780341873499096204026012454252786454385192833046615743137871898444051123688821048029549419827526265266789228144233930248636870591412715412442449600056953828825566649412257618651768909933453585104777257634483817046351216683071967849944082205917525383469930426568136545276294726491346574238608443715182254946583799303999901217766307778335073741202871698657139464113297846581298627017914977559564533731255770255300924483930759799983069559259761803150963223148312574758989768204451490734233854725457237260918940071178517091073199576376223786616066020862169928628372376298707454260195325961617037334549168156875890239937011025662714478427680814904794925182385258978053817661103493082837063121478247552148355664696454088548084804732458851693388469180733560299649753499409504970759762108507471966774353742362051984032761242092056644251568041635681804520367881224489728248822528010088250683342998706525437490577136931934903128994077816693540585488046417917627811560956036113548629236976352150759503691883398665184644291215614739756715874172070924256557986752767086540359049293406754115100742137288535076304926324273675036183009346748584129866099530636538064760401770416490564697340563552222209071525836621888896791179187992752585002170971267020181917752022320289632693315010402039716827281890377413058502810125170645099123244436857213341475604142752204749371347790789877860237425976110546565594255907728912839950091551591496684088655325008540991265088692373867037611560907602075266627480803934974430876343786923299172343040158751660111188124379266352393438708894232029510142527119708050999457709257744641734703994696634013670350058558421042441473951319331795391891109011636190132524108407498840410595982281560768052624643106814061076609007121630055448115284166164520627124547428700707297238416017179060993289326618653808469781413911799627193021995299415683041488170999621739463089514563784301023497711187025870172726934931430685874197378507908767019018888985406214055950981808835996099526942605580856108056895303247334377826901381573233386890826289214875533615464423624095563964443633926392051573654650529819777572052538018777882117052485079966205722482894419554002270345932047873123236791652824356874226427721175291341341562401283050407464224050322415691761621672249786668086971249044976662797404302364764625297296355985771541572222753945047449347226482608136745581396591066691000824638892825853065533553294461019260764738826124542665449245854039464340836196371126983774137010557154865837677574620982311127235953017835899360775436298587929437244776853738816192867101195954836557991808610810258634308431125731847348915439951999778590818958285024519826377917474866230320366244150687961996781546574809592423311190866650276892330163737868309834494850416708315048029297846535363741540487493550280379309978795246444760344083260055857483269321579892594955245169861709603438850775990325222846774347247986993490849540941276555171672434946138821865403892128361887449757875031081890952753611444160591690014025983860774007536442808797820719004125167205784445168371280415857624146391021851980780578273062074474531749848225642548377911926293300363348545673717448368854225713382994694094888471170400692850655880773085296620938050589051736988552795956325652585092651584454830293531662467366236466548518920232415103683252806932104846217453545100621324934780589746522698806531843187289834797673122223897261988504038163009954449457849950102802318044506933933767964662843511606034928143761271142319408554372957032636642621024056674050919893125238785319943949225840325822131135943340357510024654273508221371155501164954968472364732802497540439478957101217441101396335743558405578692820294904486813293816290250583387693420249161994860790404514903931142098421893021983386266049315324279587955664143747267802326849219941820357815349136203327259422160261986049461127514765866429712493938563780212599261188159598318134688137384481399537277155298793759813474710648147405819170422214662433619020358599589806486366502206996046949297114543711411975664629838921809206859088669963916691099746296162723748027877046892771380831732395205175948795788545722784727368658803385259388173354481576223858055895931115755515162233443120477253638617212730820784662252774767271269727539904349952800015572904206169406710764753321755271673001199585289876802378683357477717111471919136559049418753482006691672389738387975013767584653075570331157994905438618487069428169576934038791569548570334311972999474221657029564888135425335159795651204745992484031919592084186131376412210143457019532559758084923919066600869315833920778205961818344671993493121099334944760416206691573068889746258671044223309974357780748007224970906876591802054212369105179662883849564019471919428688261852943126102346705518434473904610182200959136204099079557922428532985875064270129909356457690794402126813886413954939971233107351931064015045568655798480467831513563826787094300503182891253051597880329386847475914005233064804503279908182092303169388137796315274985060933902788845344615940128689758456262953076637881854614432396325011925841671008304984717935894923118030912747272191565356369287650053266427999380965794089334302079419300167282859070864372525096300808269358685271304276124335036481642821728332498646137622629664163940463896367417233455965562026205289631440228847748684005947367954751409895315118365772157955558624568658162688471486994247539184100257396685311596806922242546187192844069325996868037503209980868787384213285402646765181280563451671982006121686862172253062917769322719412261677346015078933174888682498178710895804445573549438849957668410936459221187790808490149282882376584730801569780181974802345424425212654595378114712309652864805178439263893615757438298638678025386000623908988578567501852047619120811267570132583516775126436922364071550288804220724227511173038347183330284907641867974436446161916438079638046537279531173032495862839007232263540836350397177119805513878586484850989846884121854327331325408787282186902053298450480277000605465538304947291665651400115683094556835781147113301964662622417400126850726633946668300754591120588801067676054225223667008452988610576196468851798948615687150871897561457088592441247525475774892900101557145128822404105995728136717208131512312068889635476658076984276573367684895629626365938844941118268872821453801707980486602040878274785999078388375889296253041311610946656640061406779069753968160115128698734931332073894406889492675968060370508237852509876506734297917011768929119892893132621410850714823304867873451662903588248865844043337189376938865419002913235773307348479104232824890734922986118570687117276431064043758421076229784223634370329631874077949225499426434592792461556807751803246833780181841391114880804158893776054295923814757726378005871883782342952044041549083833184537139051651252249794903666028143118274188630480642667692719780553143437332966495845984858646907544016135227385859121959085092516949370241959968901609782613074361678166860616233355406854084178934970126903934794587351388997132990555693213994170074387174448391315952302552581424004787115868311402374993127338900197429667383757025385371256056866980593406105826545453914573681119865985407229938687744189194917089366285933088568083465609058398806349934348865809978913918104533250650894593776336728261989239998306351633590947674187077761890718621516370086918894968545280369132723631050001640383112920838845191575557324467698818692858832861979081788197795725235858472656120933803376815056804229671377008779898842051109411076588418882846410992696167729179456092064233503458602344582703525321254117638960338507395155526897239181193626471212682823822009831151786288764274156808762073753161393355166521531176437263770344128243438195876648716711587999833424378999127763281083865919661643113358140106338778950423005133682312164582561198024608242769267252321228903772340265200549555686163346123898742568155285540160611104193112278536403852690395989850001284895074658111903358897390743286057322616952379671080864372146565563759974142723167908326681678005924959113343816679641216235265889401241322417129051612766786553161598727114525515272823265507326809930787516957800964305979464506095366022048267883168309478082518499884503676546844827317667128069697311875919478342626418546388218168210217450747471228843907116648514227341957018124266642499022773388421861506517436225137141581019718871037577699664012119971877748160222681676429741110209954082431252305511964180881815250113698646262504284655610640055643229458083423821468595804519468534962371972557135282728797014281688694246513503432380349742083575220327380992649801781387739122080973340042923645021522158953192533191520597225696344264163569194440987463339540258449951786811754260818217032613114142447051114507809379478643038920730770228451337946834382378626861374612096473578372377247247923787271410320645097776788471640893423173245091597146186723364759252949423867030181266351457275419021071666459184491941561415466666030375785994464012843880262924073428196129037489337461780174907041957530305888827909389336773170479961189383881938764261772634456401207151067053643912260284876262947480157899687188043860106343496394938537411369245212485869045338095286534978478329747999281150960803493695764537142272258519801555883764336426027343240949597413675310064212693926322393145216701394402425123112946805148733195555151966266754856224842602984622999618834918457202359018413737817903784063615698743154722207717560877201289868735588263188205491271945570910055462434552696039546038719160162117744951562564982400225373987208953289610491075343323794627887273522073408304701106117629468771994332870887265449721065955043626763209283730428228412948890369795918274497462816202200334272726730666752741238332558196616006174848119427240025489927749292448255307373588439107729622317913299785612156202259306691876666075197360586895176983272239458982564266616484624388311981027446174483414044130415847214130138218536868053256843887068498919649869335996592613404395518215929556440984510499458309394560943419535237948536893061913548212128909518983782940658987953302322821779436822977207235081724668787369190493702815167019670653783395401310012756749905059886868390105086636118810904622325503618877367301966106710924090089585222558594341314916991205096211070189167641888828092028885029702989422994205893326993297520807959545818606220742148157823605055743270593796374833032082431634584051464829292818332830672881163709876720243150458944932556679504832384435142178508199420018090258501401935877352532022905289853632691517093548810905009950420756218937525681599867592547629205986182467003432796659930389630647487584603820264843941104549333463514393550235390752242210772418760950238175229944419513935217287421607012931471861087753218491606125189965824686723157255096611894107733413536014260550476479089038463130771725576976004092471536701648759477927402114971362865705609191239132258446712244913051766119984243882068836627425163417183622307100916250936794651169879177129631103199966723869402824902248078346031114975090127258746874969516028143144048923962135511753544058593554361374838700422070637872774106534857328759532678172186127787775888988809171268388251770230952905027676684328606455918944219446600041227746565688539921706468288050473983604736440967989623718383457562080469684250277191786886927797440582182773111129376832576269192247968114230595586529120725344853773777429240140903900049617998939994844095668209048064559805180666688417697371943175532161447231390510865429007640777563540779377069872375451641840769674636282188856266042024850483479528205073154370954565107490422589844187049568191490169802590695289280716718909326007627589400657406844155334119761892167788545273807438017815508747978867478366550344904886681958584395782574223825586669472359968616190956581429182325330570776003468021405717176941630882076249576324631170456768591101269929943646173066238395958116542155607164000414613809963946567574828821095716699809472108708904321830784727636111089989322129390877125313948204524391236899983993757338266742710130901890542953349080585776249403669836427362134530705696426561883669527540205863840011843179120558554080054488377802525224723032903748427748002418374667984145766112140929233065546102741540783321558544455080033621582129466138244150350488306911625406376699414147294626364088906039235205782129559034268359584326856106934363895991958984690027357933456546604409389757461239385542009817941225699736214227161568824040145314896134660385956115716130559172280783119145450065947258550006226317678588597556280136657555923837393668670025273806889647070822623025360284366582946537306951299847025472944313626864534221955217193512516210739229327437602102570998145619094257122191559025824173461009842234246763031743277871192401255539386718904488906431281132116863782963426346747762621803771930035965801082565648453659487508359922540849745773592118872078913418775262977415594196702145880532952251803150412888809260686145462878917144730256336396093480653984240673285440344711591147042771943896603966031946796138029651818875040898177069282576148734749126310961115229454085305798260576122621769394255889816540358373445386084106758946000252735001347291819426549455446684746228918561331987962563876255653894088510413317751671212212906134160273882530398797093137252401306167943598648665085200376255245167816284286909322710622576403056124312541625032696393058812380163109696423448559361555319611698190906190246567036300982252250004988361426590758092791088262077859830414059153154961082252410162306172693566768826875990287162304279069873782852548498504529815464783411686567658397858068713852527051999013863635244873405429171382306568218467337453768759423034671587009186965877807163491651498191436092740864016281667920443024903854659178638025708969806041121887632833459675450795306555072034393725070217188202598427615233265179258640941904619430897145228515403770854502701704142782826825443042518808759393523590691587393451927536434225583544839766461262559170723688874463759441062001667894238826313521887047369649156651787627095931731271220309145586202131934400706192782300331719546969321203386745710911004304156985835428075610354926058893585745976635689133193821183537175730233772643257798700989281959643219183317140732691420702093680339780642845710018135666973552162359634626178526683316086632586510513653960434475575942648687367778832627884558743216216964780713093322900439341637031935213428669798264178159421053445995805796352083323358774450121732487288671209717051849220552060244301172795207415587298140827108036874085697753132733173852598343319226896309324515516065463384924754267470186577465746892881352076531299497022187084628153200599487938217898315297864081126508781707515319707396871382126578750187057248953567491928701890860336705048023478688620729403439826343688664034879654618813990244432552804744678201454415532607785493365111782353196908455343020418587072965517495080387908342773989614424329468339923381133385816004095337507430793076875444045696790124911492984283590850439315208684484208727845094104260409717961013737392551516556869271747196630933225623372431807309857906724886758679271607715347096959059618291555821220225675528623930257339499424775597643651974092146496593637123269165167078769064778202964137374520341447936094554082341761908180622088058676784642014450785926879944718088735947064051540107456271694147797992310442518864982467221341641846746715044538546859720154432950961511710660367905264774814870998046314003708425558329596544966591268823265009000315541596067527885874649077674561752346934939056155435531511867262993375853970163974919368734537864317355389150468725692906838168113591091525245865869064097808120125364549042515529796621656846341436681809512872742266595207279236934169101170269122441122309067316656213905661570195216894972079658461326668878479762352895404040382521689067805099111871055797556897046584835700589336994574338458414131312133637073627806760623555262303630614076423834248279940750865226095255367772464306765109124964068171435341897506452899741046407188679032126574103452534680084192396690640277768496407409608492909141214059809125932161688229063279501635979071409861134413090607714361631078454566144282901636724847269437967011506118280259878157931459039553496864993212027339442152307960766406114651499017650077116880590417138783300724923095067251960233134494617948972544949649646850865999289321068568859115010415199922786030090483351256496002506774654924775262837902410416787237958743205401375682096107680582022428957760938761593443109460115357909013566240405947047033175170980714912347720146051623248938662417160492503926810389154720206919116279541343349855461315462138295039411472934811553550844817282232369285115530884781402478970859290245283416140551354162564147446858706649734913281273793196058706444619794275838009089385753423895644007785941389833601499174746168987492655452918542103920697769626795877426143860468349691045825114636247573658440751002208039688289089041531214764494568359047796121544278734608850773097119609610191863400702880343763373064791260573006408000761700833508269989634967624328372804551537501941543987428424271052815957108608101587485925139499048396130209494669068111474898616983547548987609583643395883371331240663065996383699107464558811735692982228554643436094961090139543816153357354585538922957850053018392127980844135308573872189120650585120440991071467627478985142602737957203859158875102486744362939518139517463500625686750855468513470546187995114688527189374433209149949284761271618184581162017799615911347493222226591865074842138431484594450045066420166794678125762208818620047430803558588136412148792960041094123514504652225970782777275252804499229369823998386053662238244508767124229101137848674042839571958972283415765903700834763487761595859802805188521419013191944986063516028444482425653889000250457587662356382455432265468658404275046875068269294763703367597641926755611706310545467576949372822367742065416881810014065173825465380650774747185959493009945337572531360419321702474791960469156827481103668156185843742854694598056451806636696132889351704314856132028734807871758390542472654426772624950378104732062926473225157778302291641818710167282194110013297391637409981567582691010207463949428991299080303808754177710809272138175179435159832420115567799454842770897701072119059707131224462296543114232082586990272648559843088366545362246735698550502084927051412193542052732003602749489345778590538079809521138432595990071998397994461665413034629904874163719011365376323606198572985845687476678250164178404163892664026920159281334330043795131764268324945360987467537425471957477608191825931193259228128214411864940748535493953244105771386537705075913700801349734046097275419709917657881833315421338103381152237213343675255619092292973133022570624823108229538030865663106048885522944472333020304795178053089823103355788860114619611768631933306086910372708604763726619966487097735824946948504408027775354273541078458639258526011708946651332277331217783287010021678068953136771290603437181047028184288893622589185313729195776814828388018659276444837340187004361457646240775501965436072687996078565781202828951484730442540175413351561234143550966346702277002589279346938427004087731664480330550424283495710184264555239225214798917597160298279105752462492341541565064119466513741689649048580897321047005914534048031420238207432334770513433911788755013396265610351698550901548851472456269569141867204903246874253921285195378813780098593112561054190491616830303502664912892164184508316228593530759254577662210484960691076338906154803067095014310746790765875106920710604291741049944021199523516538924822805880035660409571463568112025481244222297534392658340746032433246497834814734396032690481255330185389588149663676573266621232993113411038757588765595537763098572475358119611220282662493088866984290458388947300895670060641926759406179647958246449714070883457529171322823834068003778173622477237495707439388640479117578032059215805597030338946731637944572758357212997642930815012538502214264528570544601535322528213179285044333305671114613183654639773476836064311505427458565587778181859100283054579575554166231398109203588886942787574149466692642622984407116542112608768977538426229311125470718174991561614462257221517261940968254391059584548946566530652509703968050823460068361122034614543260441033547148544100794520185523482554179861444983431957678776840744692927895623119328330336259295738897514759731511655552546058118294178099069666549773297202230663550936525161706042223025587174654283449386347215869503151986730711169601628423073735266434056579391050902390582618361729706125591600657824462718733630088620468203365269869351028426234564025033377590324821696472941593722786212021589493355377464488946073352277829402870364913440128621328197530775026465384175728464664125052612501206607821493676019078336249081740696759080155483660985915059575598824735031729714941978769764045065500136353613041365152600962182565113764323679428902460867806421720268944311992542986219690534854198756095950454311038216006201261964012097937599103445485655645273496915896980253734358136205159890500665936533482676653985419111277933223683244936725219328906733761470121622633358181331526276208339465509767674362388316916710962915689800836054738638572175702986475496963309729210875853062610346726956235209786869641545068052549812078950223396054146386789721677953298543762957802321278362491330988932243356845084575001089843641475015238173117607993317671762260996543522619872552839901839454324478036125269182944094047444169969508129653484713460860171427175008758133307112535899201955529945412131742626496864439812956299546930179397826296778958970750879036045281536201088210397648246774542729587570735036565565166117476159476971409766949752019023888283710362362272377410081236476886238645551180755577255476943772778212326074435298871678442122844724647989650615892006728169726894234281617428539030847088400224977887615090742026559254789974600981651170264987678775608269040337254172195503486025751865365381679343463539244231955866006786623806804065770179713841673596292726652379107218860712609429042386601625879027280159019546993361107501886548661109693771148460756864906569953635555816325856365949924495181222641598983638286294463907843740353250029444975733732009832197444153095552617446800357993723730072025339214993346979466081470549312688695095851050899422747730091606346305236470155022275588651751470547757486121711397334124679803240527321659262821537876385187987125196981124945600158711826949774768153597122524728165676113276532026070057372119608310419630373109678973319439277477072129193757772755738243514930288818500417066909457717845329793011550254132058266526898381935004450699961370694758229778381873826574554046930452143982689685759976916716264530949012157298616564093705833173934448269214199769712851517070138940814238873285196833747869105804303121104693615329923294654163903469949157609826458193138076962508980795250172513548199329728693860323886121681506746556282899930192212066578546813895633028987033017004284445283624761038554788577041998823073056006583620744208974294036559602851207410664605813730836748338311398002718361449382008249577340536936569140673991146392756141621363432203351250783603801783554506906043921449405872162555967419325673964138160245882782827147682655555461759044292429843863006648555765730518024536191132620243334909039373070812142409035825109210624402992994178299593443095919160082829648507488733086316138775316731141749715121959845693898252368999032835335932346957422288035908945252472993336256624989477449428499972226098690374750263834449181951787612647756275192944491626427192332677495561953919955150083103876802027747257491999689063121412840240170357691204306580432079395580164970706548453019676069725746866822983425395440981709753921396084526704160584204407372100089800724067207607003082446030010693890709923909299386233453025173870470065836190590740837478241769632930061584440934205614405550750442573146868436191275414433245112185637842957391007686716912881268271325573917355894659084123932905385712990717344271995238995229927903138798794403114834290537165236686521563267133941255256096129331394136969406744894372142053177019473442763984472761435422475174758622479228364025977281528860561104210013510145825642262496185893147202484065524086782443610895569271268962646478476302852690110898416730470860799929375859368216816479760641978765226519979626115887142674517123858646629820681606302604550968291637296573275869354402278820790267708915453446767461461800886368480810972042716553455454952527037193964183766781856323562501073033239572416751743080581042485536108637724707800014067629303438429635048911614315979783986056298520117212271210298826512737779574902622863200969719950523475885534560178316853757056696649747394095055124294073591536009345118676333207455289857425048578803739077103167829609692993840224171778662667072286926486436004889145360244270635864860759945758166747198685524457757577774223325944131857700688309974599286993316316352705134706733019646198951386853969071668887261892908398824146433154792480039831401714249548830984412449671880729640202150420242662182965163242113175547465223877233639500126935522994516198447815221706370762492784411432770289387935427099608938223385239760732384873986560118171910421353735727578195769606732527874937964598251953871894480944608183634879119992722664776974014453590920534953873214347769117578355486167547502902882164039293130940870893100316503566858683012121678629714574429329048737304882471197400979338595989427036310444250648455557842518907167582945545300965894330134619106516351235269047991868543560297247315986161917172497357419122361065062926975667091648562627213445983136779054617171305276453591928282283320315387558475156840885684771587249437986306109078162896444810634327946330683834528784046233408574474136026876401221812822014788128380212949561080716315030026222814267172573726530093695822207651238284137854723592189715985623658057598803768311197090164214823608028537200415065633120828521945343731585426003840526068408996656234645510831848274210999814567198875382626730078237693976479031305267212301708739012088128547983852182713891024705970843770855986348814837228045275661355193580174239422297859626133740579357742212172247698450107690670900201223017524849408159544630867773205467312079144486138053395261851256728583926710954326521124240012566867458597390648746493341954487421899911181877194134545091411943858876115842595722812864717665177371320518825947881926978970403146653140286817936871950070068354172414336360880943965936298461582141660352168788351401010444558606565644569939341565566006971697701660425560854332194808731017562203668260716920670811467681917090603368841986549343360048838660716770081150738221583122842163531320160091878661243180165621357031826040603698148391818884823406204219323153927922991800870818989729293962354150539586111449820711602757781889437793781187579208791408302453144124515987619453546523370348120166762529652291895282778067230333896547179067630080621311898810651534187194723233165578282662600651508752285487804093907657090008535060379645841932916997176328688243057551546823224265639562361611592251923150812769759521399911989103867056026395903325534123140054158924423157018789211278370353971708794492596081624730453893009189766120008303219894589775719308233804088967256788162384963140828241201224870584098989523039561892441113206982955687057143308824105555165747684957835318359842288519524857443618950965537101715778634798750971660990059387025613914148994470292044372602997686602797546008514785776215566737341137316832546058425065922927999033608092035620166168614866558062814081525456565094532747824815180538014222630234318216938180199621329205345244982249708229353140738256993530347886647937928332324069818333021098114513998031150709048321468307466872532483166675635304325016187675993137516891744462292837696345977035150252248843069902197547997341120083762251723495163374457543830485270446566985099416906215733107309501624293542111457710352302367357884755753501946168006496280722668451452630976367061740301686784406114309570723786862696169358770832159534910997935126374074064280580647623006388577505660998889976559595843523596864345403031609412581768313685802542528102227078605144529788955633924837731408862970337650634439641933673913633289440195668443999077387992472686061361528734312379387641232939998138419665033750217199162303087808028701020691943654766075110087698464995372412229529495283452865046026656141426628737368635670197590428091309494513533790542702220568843924499508339003044785509096013687047951486718041165977940224124863448747270684897628170125880814869429881691801242190462472852508946949859528706896825376791338205236234469758495743131557368779380736310496509194948783065941073476746444525378466512856016555172351078181419735919829028433570609725750458237013488207665949802721075748318272456123615691015975039138871551077081311632951696558470841301581179980796678850283458885180383252785874132383035656341899490850548060967084655130609014025635143055041551958206138493185863528384226873498315678178155167016287045937788428651422223009054306816374728673923261876462717236292119802156571991361539301618238825656021305629152639751548261221476358990746740798604867962417451017012992713936433604285465741239021536532382358662207953459688788728655053619012590978051679331931379783288007608410608249919522122649197584108864457228465584780087741432901621680647826322679507070237281547389574357883316866824921034876596293711377682094638364205905962151249563284589970438276547734133622970785083701749459848074299387721900750755182879539109700587737821039396521025969775475678662306822756356653092859749280382232827502417435662941244376892256100688337571559377795952138957663421114837371836838443988797549988123737342369323361989065466832882254636533667862682705046634729246312376607168578413092757278225972750330856636498220684712482973903219048048408126509143594225912136476769067735181541628980148258469466260933436814889262005966978484980133977264691007285929512604841787049225305800689098204845874280408420373957364487310080232998901147972877196537686599695983593426499653311048888504130977492778946423246015830916835912767998953676805474805980023244447437409545735898203874624936576027528340466024839604972895574978942063864984686903930963275774701900559528825218776796551597332136123677698537242548765078622684067540197647643824969127962382839013334987190951845250290902739425532289110067976645233921407905008503291411154155739401991775914255937855973447217758717162468379364401701812616258730475935045359892036328247652816884134043055775717515356177479038362409849595701553434068242625836197537034787032116787404436248123657267915323780154350286600580048184000210604646869422947206218666868772596880804314226261310354648794944552448533961757715396397871252476360542393955973040317622901976193156737518170708496047151821552488859139991107354253635859654210001437986874933308339877001428836719386392346718114666722038135180480442316429476007552946637139133538703657643125055093865672278628179213530581527104288112083065267987254678182942613339385086160893909271461584896004617422685734186329028730045544362414726458134497426758124667655048439761140286427603713462576358119114533553151829932743291033909850645260424931253730667799521820344953523146628780975180075703131476531402035842768822553352106629302194315698942445894372351911759118382246742886404800354230732489719082495993591920538043705645110650823066549024705632892806077260865514668537939416101496189290805520039440745970664044566821223658544482770243296335785891486432576670545734081381858666850012177592255390432933838481451420255294297681187948095767926202270646867195104284135480033262222673633205386710187177378219714720680033291652236399104870698696782738956757434602601485853888148792451244167218356623418043892719229230530826620204678078044989988566882988402645526018948571618148541690139890364463968044092631762081125743310086166468520130760724675222179181733854010769510922000705845894559649284113693879218444715608985281852215416225547797290902247218232557667847568054299451481463224486254735331931711987369808823695668203947954791769333870083362973775917156365670821163956329289815406958812638290597533937245559011771466291705131862984343475887721117221748236205220552499978696181281821556740112701591317568696438067371713820028294891218012026230271234435074151885084720686418921543790147302508515130519054234479570884839264613995556674526019336020824018500760221758676376136162766371076331355385259758968595529794501642111557261288058401278401276509710011169839704166847151274262733874341373580290786995621595133766049527821985745337731555716151545453912705352262856380555134475061447075202516302840628808300308122473798071402303886805618781796224175485273017102213023188617259499760696781508135388519078083353686011196010527038513754979782465012678685558070125025733140060538216212382778531450813764326263077498591978260641047722900036149183183016277195767500411334025285544594552033887271406951284402431091740003793603845261781868270805351851797217790345286049360019478512874085788199581999326817438805803024483665572991319649936246057257998072105591593964061026461046764670464002640602380266866372547603058683146673280213923659951428463471848809404509271173745419272570236722269028477045412712944589797745149377195677480587623680837774775848208465132609874560035592601862356208428862067422366979779027581853769957636544339024487347087814843991857584970542782424997253446784067789620825826754080632132096546057942554238267359797779575756732743397869798783066956836963607342173259825660943295879195131599959327411149045224813447557314938490406199487435431741464598628506390894870672360135495202096311737515072377269897418401456060011743383791229807718581674465095851387627130093759351585175994784997209368765099566405175425033379229607125484692941009598604772236541322418316085298839587193123893104119187488310020763179259928151138732712870012102642364438549808205002304115837503636682524924583717901441931111206584550431063105156785325711301195562744845245533118912557689171413855224344729968727889365156331878145215216633910094666507492224759919239095754479087247908966545563294549707294695268994531612342141973986070355907208162347134677475839855961363837653138915751399437253156149253968872638608203765942141939011718756376917957324175093676824613118396136290296249868011296035711110036323221692333019037731527584235402022259525731516647650743010247288951414440558942316694914097594703081440731794677600346436054127763894938830956302940593603379751382147910185124333289206029105231843681608873240094393170006101948931315826689589694054312293439086429996701832560473011021117475840438626040439977373681924022764024820465317341496365710767643130819087503570490068280566115762997866897140608761877132148742913075188375165920649833248189942794548946764256911444522514507790672341907540316920450375097963565364283573614190762453039685901497756822320626423442265616179407935414868915922742717182199539233340923829146563076296773235335240567294078997300161019068123939603417478129435533919220233778371869793405258032584231580990711897317485842246905771829515875502187396875570517967520649934778454745614767652149967954287290748186950212525225032848950527431740046330171973588710044054094535726807754875882685367500133846993595282638941458426882940620181706710547381103968559762180323426277916775988825034737099669324500739941375719148640385496111820593309012169744149345701451816312310843878523085030444193409819452408884503026556894116566944126601500709510587846804436860408422455658908488258885635533532501528196255027045746970998403586120193763613039876934970034132814560489099854088457432986129622332073348683553055388287906520864778814160006471023154948333771427661079114507615704604849745668631817261716791531132486276443652653277507319119112672061173597887833597848145872173660876043177747776007557211363729940381641501455788949275782821185408823093761946592477733697084736789330405802733025769649106789969246123168215870562057295492598641186676106482671355143022676111213917428391898731954477034617873806943726425309726939571172687963692802752304265959239867633597416734277390576468224209112416914774365524797113309138899260681897913192975882971513381561996091562602326206724489815823284462904326982039982537595145179958010709432901986365315258560214341835568560719329590032831782289854972096679972932476431510274291593560698085724774538631497070396677642760699032464114113770427323670724113253285526637862544109950136825155287666644877932853237122172273053436055629847598978152456531070213329817063668213884145001463571848716800664202873335570517243554272316312763569443118085718228977212740145717815707725022152556257005014612016866231826650965680353076691386497118607431062831406397913952473051944843917232291628174120483039225472865326893640845969530951375330940088593992197033573611926982519798821627909362163522565220221184606097653334741874759537364594503326110120250315708332241907122809370166820548890085223150101217400554590100723346292190915581369090816396771877060924203253762328703445886507563356333784465692859961450120141205700125030410711870057830244545644893635557562245121058972959229107606071055687405552828221482010970002470162391203326482728788390900413968463070563036942905816345653301954433722636011943722373877678354703682913619202410753318409740333548488200902758240861585344160558005893114275598168768625840394109969389169918518385847432203460197822050005256889202260557920741829112999813831425901955246319193941661387036972830786083251831621818400569773139481652307503341097428526155146071455228462060479816101978830131864838410578800887159000871298942704442042997020913439212288570458556904621986275885293122102171823859554227980653664177214973840697985020430432677317504201136150394880919642297309461170529087673075113301778496369843229427894643998424989907541925845996286071335482911483424641773971726780522634709064454186421430463164317173689977585065616576407061060997318585053806323703144361496980018381931606731666033450570105452102095473532779859244705015363881327263342141014743226728065545528358570334292498976279625503195917554568020185586655970719319025341057465971869875569873134407576521615927082417836321806126676698477829282456075691712525485191636052709290435377788321817761534221110069051705610017059721331388312649409224820638249543680960803846694747955425157232811808107240799058498352785972981392128320616962618246044603508680381315244352364825410988516932616417669818847727879739465551957378963345443952806737830256098345825905922317620980424680775755250096001428817891331965860935622194384343237594456548554129692254269771905665162538390192592189907034609252504613776796513699547813291265725392379155552295252105162597359503457168678051777330081947994692357529638953140729350408586539548470031273401096271167349486217338736689986436661040277890224822939963615285860873018631324715665353090781632415127828831469468365926765876393936509569042576731534357094971474943135253830293510864237368069731139452656912082111442487599093511777340309045686093332923346274712561609463086576444536576258973786158766280570871472096735626262238681927386086621335094082922219377241266097325092669113209740828271304387418770741925416775647477400105838535113287607554328180574889754265693433234998202147315500641906301782252018000778094152370878506402046497280180836617680172258250748573922695959412612635217745329929963091865267413829892219916964871814525613465628743408185776871925821421022599379073582137176765093226188533325467521325881469759442371551035026751139591010235042859233216937037576189669765426814276562317039044265149173227496283298448369750526610501227738378443637575727803122126286342742169262063450213841850239293467301082743547832403316522866644872279411414891644182117056035645203176690975583305864782539678027228183807346200212098910318769794679622250861769863521320485432636942176329244923332611665510396827226388338171745719776691785967870296046254688950801923322689304751210189206401501390642279812350816411224197533016521218597842959744547341007380550572431302808520593350528337859530752642492011337589604210189125546926848981675535016525804706601552381868678984077843481399887177609938359760697932016367643457515008325581659281992403694997335175497621110878162316828349580361588490757659688193066718064176605329756651402317477705732160604180224697221117823373060408855548101397891402499332710902873664414929863472427132085216797539006052103115224338750865935202365887733092864411176770691777413298314563459458862225150386083729557690696279344721670594017493875451902259369205543279607175237309319118062249929462103142776792951444109542888759237399197426502297285343321486339257039799623868586091688897989962489005371592440650920567985523614641421083413880704394261500909398696050140151726635536452739023052950205029845314297584540025667296462479006514664403635477173844784329598332734920949647716973709158721929540238119040606705058682777853782837484954618873418103492603447985771719335618958079807500007804776690232850293819384229331728642730710607682912378065252369078250471025611160071920156921708683913135361129592396772141812959586913113094782080953039010446034297589731476892019674030789690853148234952581949343168835039621967211729515900795812990111572308230355852074266614995547466782434904807443549633821392838611508540714448908683041376142008406347399329745789438356467334178289255985717317014659022055806732835276534544846643820678962266098517636020560086947999029607344894438234958931591479732920171099048468123880425356548340723415301005397010051037990158923862805302651702544536957142320061021092461993261268478524223469670553473393187327740244857103546683146505167013878919931431371559928159199191554413567629108611761000974017603966261271042449068718399842124240271109618674161549779587813120527058214335406775328279065672032670782505191791833082326417689578017562568156272894050105891040007606100776334188064242595483057754193660157546037303462960284511743902474737558750333630767662847920635342858769435273568760586179107276474849854580831130743097860363368908006503328341758043962453178959766704905355913982594464095280195140266123990097808300075940753361033811752159028890749715844886270740887384999559989085769704284278423052935523848894059315355826041876760511113184792080995775883887195788256610574395971209323311610222679872777181607251135753434802612497392173165521793971268739335399772741081736803957725637505873694559486960246582497946073014004533672354372409264071920014193544668835185633112299058599431423066085075503899049084612047750546241872237528192676623494750173830691173780048194437553907190417401849453231318129458853085000051896219876765405532026447776339275621872548130882609204607894495645371120686461784313426986690169182467341743094234975464804219196302568790642342133750467198954788243015684083263566112233504472397881146457206879710802065300476592227809001986825732194416640169648684806038602718433020001017848315327503504263274044372791577968800145423765445139952634618941831244267859906758827467039671817266009866505934082861964318418922322746328423705551179903393883275924073887920197733936130949596458353753979220111627363145029406815318203747009903131851545315969447350249914530499089908757539373119275360044405541171579541532599130594416637157504901438637559332619455982452870055571800105512882654710396468230759109756849705111047300006866235994077543263099866366830454434022377618178761682554905635782552679471535681460195693773150635539921874474647749344133687477754497175174923140883147065438280373262331761303365470893373458565219013622473181512644618869263179883345265971927601858832408301638050651457070477542162747252499602038355438325045192440993254217314480235853928215909846862595506827139154177896245674323766101996782571634927174984217189812907029877602421927374274328956496258633918233560600619110016911315595794843353740861811313159665558937937578263836688350602520593101224296111565985413831085919966058934939126603520082777571063160309714566498348924806502546486198813075638588260615320183669591055799942534431201240754041091666551309937922726586432896084921399511009692298316776319613405253200315097069350353120908731198282642916948985705468016779494630664509561763364819482104696755398715886555186108068015560804179537735242964973411485729062588413986490758962298967652674225169596287251615612114317242724969313168165712453483806445569758798857758450221260959458216517666186420447762500057079607012070929583087581676669028173093716017798763891300522116290829859529967140535856938637664858268948543649286207842062762470613427581858789347165834991521045106762292139383485041589603612432160065769445459953987837232095872239928907150185375796193718876518472643416522653297609957592423479251963339762831023668343041723338497293289541959402709872527458245343724618332058578051205685270635897698662749679020213783001343926766027526040079742201755847093943637127095565494347445265578980522196298283710842384046401930647842279621936355413872789791669363470833709237243698605971481087395488661796665459238536225148675401347268906049255578539051524166321599159140188308175096022585902288190008756895628301208380748374092658773628457588623490537563212827214760248629777709284434308246413726273118946435999210249785779827483118289371651253040600286451858835224894600499892613940250781956381241218753447426926388759582963629173552244588440787038729004411321480721342709498850684352396458480540865649072913184222488797884236281481882611220380653981699195097098236569357090655209772453869886692469557078442880564090886215339823444116971070453505726103881765553108819363778358002591753044683303063935312204388956668690628078674558097697002050299348755825772597187211212095113889612501527055961428526315368054467145237522734922552253959379478858975649344792128321822827891433173171170572997418073878535898606644469372007031850250622406017907567087414691975105990927247618457792906401192886468997347978722911452020411904844285604439215272503509424944486661515278550074638334790028801579439232743910917062713732381597988072834060506351146257081973471604361560783668346513050173964861592992186261497863664142092593655518517951940701166897470732804323231211607988044294170370373124456841218894159445403917622346155089214904207276451717163330132230406445824927084185903548576015606296878426033638228949466844889030775449125929430100048576335195376109612492735031948218718859669862967484804424627477149152666280899851360059557485963558406390238571485870964083448320433977288613182319667175269775322175046798262326565284477265712095372719591425736913915344002374368540248179394799392385190163851012849525067191297696058671227419976837480979373788881310150575694766905064658808210075510972913664860006334872641265628588702626964863150969640467043602929019904320709547435200454448971163602417155055333296736090602333099244332509438366278702948173923295064842092780840777840371765887542323962877804557995270755531593806413086747952261025933230608905805786544203096166148007320584270060739656638761629540440665293564834292483225302626367749284477565782915832069780588887152762857234663735307146580029931814892725592678870509518066833250788549111013472947150608629705774088200698190455249704307702777521986043568480050956902605731341546238421828434258876782965561683803834710908173497484053184490597847873245563644930317289558105916853563451590086604837823160830051218576435644552321573742387512840673219489387072317929384561834910816821689810744860415070955892238388775652674118558172862951080844142934331422976550901551451079527489845430395908902615561283861421942641252027090938409022331341756904690833420433245155933172722632519056213665598091182261805543209949022299870675245790576395775578855668753659804159689088907322602991000046384516967907912133820822129536878156687791322785599083144344837531620761738807141554829761657591995412609014516132419582586445084406836109762481435751099637566317729818516768033768346010468884998468022355521840746770678092456675444249903978986697485262799123810639739321887406979077680683837031647151181564756140112158784529247925087912742360991871496075059311821902273120254174668941512325559024897199661577612526791616481649691282294513669483793486286015145621605364435713105295602356433027618089186839305662219438464943203606444349375908728134701055796044185633749822400875965120794277782597134749551994638227517925944314549995879866014847350001273663080785000094612027879026472479073070394980107548457356652296119213274876119690184618383032679719947210487586580813517103033922665479225199681961780080436822856858804806737866272333809137429307574785435791631647137571545361286635012437478380948500141281429072302635550284662266328743233581285589319019535087158217340994899613261533269158917340544115627468497142190380862808978049812840720034608986499339911676624157884928241714078556933448380234584774887297867604525887490275314147647542704471142775605371006029486850277674008545858877353727600333932929217596496372178765804983243852165780928576631885354672051237670841063736317327986089857114412358310699334621676930171822208433605495998573220107225579519581919623910180635677799397510023704576190710791411685154876657880529997333207491697990204174198224355885132092577140226191334101257046153150895196457344422660816988176701951199866925589307431449088375652637272062205074960812065805824553840877179806835960067191293618391996918454532708544741843208104693066674239651743844625724241292769005307756482797881329838292545050086575427737073493808450931498302498018663459103647809174103804871413603931362952641367891031388518579339256616291211016244284600134798500479047496155986849562333075415579097213374730953199460386703103687055254814341331417401088371815529279743463220929446298408082788802713142289190371440917805318233489725705784909612293858719134175766217657672085123438269024332014131738987171653904377256556383061213758896461943424928798309926826759934513816940046937467057538464074124103244470261000078981016641000662026484898414487237480063235641172899460334875015426624787331366011978836946264231083524522246377134183497843257468232826998607943668126850988111321604101081655196716477738335477940768161864349073110375637614048047714326027390524505166188944817917530907115433402058395152102236788209313429079773397668599191009675610939684280662877183912250914095092387200714124898234829474452434761741824034975317396865628069225743538247722986514121554986519549214602046601482431617060346599291121588383173923254395817106730615688748843272904623258918053583089877728740439583005484477994094164360392221942901667063719251587822012603781820865463573603695627896804426165361682527291110917730622203759568410196960153886610494624292133585001957950598784588805195631735436962890783274581015632289244550628021108323504928593493060269473082125899064647195646980550977896524217200203168233356760415735748775748462066283473782031160914742697203215722949458216699844491211861494975801841954667047673310741264986744533149013154177504454263931799086197304808362391317932005150782067392087724737105569270672304900259073210604835563505322256619744970793413984263839916626967251600484599717319030028238448112304197704251926139727535633048776054077441067280814889264165152917994704901367465249037376593503107829076416547829575395869228934565631631570512361767402696492123713775951929282655062079111060506171962315854420751871742799433953951164673991518525477633104652195200009493169316696724508504382869016220737333856163295210615863605547285851241881986789014841416600901349367938545160964425161646529625684487188641830184722588233065014332303654679236997844449619520155544213565802406333604972881403260619887728534685655715878311410291012746711434001290810241685545999425438002589788176362593682159571987334616424846274064276808428439546808809503050118233879028133489513480151737843318545985609683385156073244671927023810035473918317025853062378357041606454916295784496508170746727914079063464209974427098653919668232297825208727258357223471618132304280870625766610590939476590222795048611823066364271365358650387147108563101157866954230292317998941510889971773611197906018308268188758156779205631498445106813701738963373686247214883855903318721106867264365157536904532271244476445334020410287607182394769375718168912687480248414449498439232342726330679717970738807558567331791522714909627442684511733034796921919492722136419819266473389704161225614506916825103321190856551208297589266934337193971112874125384137028903048025620393972140506189968137729553489116331046405192196740213704010862361436793331341666203829570820498395654500926441174583168569347174031427229403894736207014600299976372256928627343100745965385684849891123284420168241566245079263502496621461030286867776884908717589570239916050588608726642157428887760025623484798636774559494667218658306028871858730795016402387802733862525687876608500670819065766095084504426067839382911622210338783326896839856445207424070165455716008566767428265496339828390183839807979618907835386762731195046003922687420868983981553559327137499731355399135741579525727008019731288671151506340584382633522819895186701210872042927157680123292560690889203289138399052587934027877279715724822731422226351213436840767285028410670091615165980359072547460198490549456676618168403979790495881462666452674326827345068414057944998504147586212265471901499427647290275108067959613161515373098964984780229789152063426439404551946303108681856761131390425032063659625728724769831767668373957457598206582693687225950806749646307795469794460756782053434304007270741691576424592378216584067448667587597008500384199944668674287329400873802569170915434472729938630469689774129166442673420546274485286257651963712724461042354022156987495916854164710871349076859564757565702762568982801924304451312986697393636937077196656780405218900767099381611547916724544828405562239718094260058539944090897514422384539310815630385941895394895019337459501285845170661123778271095723419866807593609504828725063539262484289137073371698010709470261679331694559419237495558977762730934970031825063799982443176048845393131772678626387952719384812813966263557395270061254345042790703839594397426266676122253991250347287326857691695430725449857065025551501597307128194245671355722748930893740858865083423824438631601045481882579399176682439759853413174798177747617191396427255799024576461440129065841521794582817526808753105839793809554097808582884715082512163021210607097326757410589719252143168188286168372404253184911874381591171157031402686829956572063473018953746958893496734827759548543549801405424410429462608804131178261500333320329837828974701076201460073676117646691290092399954287921771613078435036594815892676271829147829161759958036192751679224290967444457372513958414273220542299833887908771084832468025737491046381922303273019209668298123012846142275419113229415095832964672205112880997367957337527585838398357544944339731843949558677532371639039742745649934394886517261369746303650412057582275711934756812360736801777718882482058290723741117015331038206621442551484807192122016627761217885714449644022564707005964518659614285721278496394419699268234222882678836395498881158202047411264760080849061514572244290271228481203394339368473185156337044616267861195641719650364849238626698784452449187644881287399527883708065331789349592013134827644799064719681549961964913551324589815188045522564629310503727452812381898949331613646969852094557014820228019042281841753855953576792839313577040003646586047154181152966584585158496932995612286453759230814148044776767753236929682429247020184370456789036418579312902121354133477318615267782171880397764192640713616812259456774337268846197423120896103459619339465348169907537023076722145101236844243539370571405661650189255648387630408745891835365156471031231678369806070261716140742069635636638463021246736886628521617737606697377507231744389309896851769970805689544549765507378735787618223392826018012050689631103625229516941259556141635511357876373505414736348413518680401112737960022660055510630829411520745188272433308880958353861870530803128410738429722961645942691110344573380078613272369436604440854392156940670292683578156083810666380653973053205290688403942553661114313958593270731741564846709022862775362162661911276827397713594965203404606665292264057724675136223115705167379074221890872316822740164132236593963373577601111692669500736756770830086093031595848461491956905455032195583623163906406863743111164031034892777245116329072861710275630705767102690855849923348255331412295174763152917725795230854621336232149774090389544396862919013297580260415710777445088385322497980822551291396537667232067139908924129332041875151509471245581949130036973704203601756770853495190360983732094444347666465922381849273536451435234900562857371382401555003151998650169471221961971183923242504921433810600046356613717212005005378012249594691460501094078664255928066466149167893263453916019319665580132382041839840065696605388602286989436076946050793868239133332805439138345647256312912319173329700506879450828234113243146788298223556274493546781549282146394430549724420526441459154447537856354752371722717665673846000818607113859386417870089688836469376443361279494390506699389220418999709101600143867594601992468875804893442387441733823837804469545467943532062329746810425528968387812594795073508728568182178390846404640053154220566742945615645445790839053270556354370980394971205146157878482537774797919840435809554192606872843169033257307179342794398562700605004498628049650447567771580556156384710452381862618825797600278011757007085007424196856844343887423311864285159276724504068513587551206944460602476030142326886425605722955292025942211364361875729066700616492194143941563319650497956158111596253665774064559638961240069455836787528952057815845177505678072398658783731759722993106693436759768819848166299825495709360025653952075919203007409319546027238514186639105478732453016474718464633066565751555548329350317383151756636071008656362954158485791574435422337047330390436965033036099494402210532435223637684400843615468586078585013949554506396936846083440778148220030845402415178483451092584141377045765102335007738277356383126387899481053274148335626963740443693307281426632292744194892686720356849184811852089136813283246205504997342763868484419116052527357617444013356514862354524331676339200079496507139917792618050964937027021553870284664364026778923728967581626225376475530172668680782079382214849983952521137292422364471651767430000159951739499252784357696509811632538074390176624774590062562912253213406989186977915071865549645475868402973023758438985339339879995495246848685633208688922273590372054740156982520642290328920390100811132372065001345152266942983603496646420515800739293751896665398968743429659204547678862457096249075405421331419537267687583188365196109985257767797050461349507600694712756184106413528887005440555534039426977632462063428148624296139669312409918850435152097813209366152697764294942882335875901920145888112836622447411968685290263518849802954351627425067892105337336612034319729091804823251466923583757993211813434879916436136517309660207280363030338198351513708911967306769179827360883950091948637230255931943668077805274982996606775358184603901292749364416994301184802400519768395523663971768466474483570094274898221291990891095637628064312843578812175427587697197242473769765802777773328639084158936415088444046563142957545197741779919176692237581063159215526441302051270871094831491911357892095759675644346022953877566954243700750595255443563774744234183134378214786979643787791079706579016536250561386428797608557509869633176786975073543311403938880760208292708755461132379767323921639268174117657423370308835768661562276083652042109629491381929877789630748634328879175778372322058126302204365799707604318101426505816474493006192731935496760271110025601112777735280160343188999094316250348011640323391831786803778455531615438479854858183653852886256569091075619745570976936614306889467019407516494301588385841167196119947036362023826979365248145888921639157250508003770699342933985645451606350939193179451426319846139080891584492496444086391284428645141874860873748078587691926291826089072948109174010406331336636821181505298916069635625712236717197801845392703039350604422826644912590672395151767711007176044703342275683480294706645812200349095862768974739721329322148392862867973550036626277146443645520482492141014284015854265633403776044609101706270754429304028020311029394636274325811031490085562627426150143978138031399416652542191154030199567714248047392397633604237072323159319447394183638514314218431636250686154505111143708443361160619552369429513592272831683570125999286274187793015728081041043063010395579287428973420100998489151423947411931540827161184229341194254745889972351066060267614392866049723124252175967858337052372228093955036973001830175151862427369173640410055502618695146860095210017678780308802693988032745981510701918551324122699966180544756816443642313158472236647632506609474771739943522581373919329387113240780864542368369768224933360136970719854150431100391314222730245402579816708515828221438677437607603952404647137349625333401464415698131411568407308430178426109657262354207597234109871960723607242152450300437125551506411988133091797519062424396999419504257548484989603797400840024274426061338355194915204626608127869632432959396100538003783364940634468779500257176026668762791099635076426776602966640535201802258003857329766978534327785040468787889102890404079850364878526383506656159634999070219081139276707851838107812113637276183519508315324030388016844364760110010319738412466037078066364674029194367241600388948525853429948053792659398869366779645850493553057739068813154752083883295581075441269130336821836509429355443520975172304698058694252433928987492489732201924813030567540973671869527494199252068697730142504937679363269602915606487357093530154269071885431498184910445125972635766099478650946669502720338217370224482411843329556490578967584122172579902250172980431845939091479577549991948951841120208406650888422558423955734983301220688254721175933296837294107356125592801178483078057706314976593256614853178483893741906943569136136831925596469067351995209005611790258640889530614695199596337324754083939509118830169228686650524977020341004548892289970353896542872029472735997199050676117556844759461743378621346602213745423291053738197660730976930473215277868231866126218803842061212465763031518407955289475662264845310685721358702498159988343042516545281076360372432191354986431854471028079110255439017865925330969454638156365972606794941845839381303865321596729485953742634812729789315849290070686405146144293464043462975841400461447403212509982879369265466394787769419737862856181676005531725537946743644454654522770075459934653385494937298089281820446340538081178335939264408119709205340899501179142950220180338944513634924176071626733219819323827971129494807642029801156143790906932007101607110935683763679435630002593777647920630818413356322058599902263376256718770234697732729890837635769537972853531984515954352466212753457139000354225076301358880270649404184753495907704897381681677516681826404933946914830318910903066461792704905940160657910618181163162967096783430114721383963777451134903007338161189210281561469554033254686063904763265095737618886383303635139655916155448608491379233162519776906112901375709655173729461881244303817408537117919381948632613219591872581979091207216641883663345491720547609446769891386706704215277054682846081521157150763005797892760848460812956339299847333146654831670983960532288022556541826885764546854854792485167885385590079530506882000634031465713313783397440470933988402487831419574909137606035526851671299158708090743253431177472562572559722468009454144970407128364861040754403296691143677556526508148119603147314294612191209760478248318500032782855369985757454698211558191054819991242510410837980164835035124435083086153438453440250260227942791309126541588358515328893414459748600276285783045988636387417478464630081293062408310108115239808887543692913752519430289404275260075798802762588487906562789481568646778740672226280477937556902341178530058837527136048681049724244144795192337076422042690234804883214561670751370919015051877957045611652418281062901365447966919652589703224934316493871603859010034051838006451757236029420091838216357507184405487239219467946621322956721944332623018703909027931620509446740196766402075999261263807808060915562401249242709121377348491587044702240848003879946383861507165139575693258782459773244580684542369186572990869871989543400534875395193544577614542684049299436639156647956615021061497528202309670861343919949699878640514410546636359102813658854627416152798591252158258625300640366115203482506182118399005138761598750931339983592498676806378768514186223984337269201907030023928040690317904991407920830089909600503416331535893803609399931093806732695682532174222647527837303514993052303866891235768081548145506193318481796861405775816271157176416989715042736244468650910896485962366917403202292445003050127606265036808745073921213064457515496712346728839080741679323731366364472102072336118039823604327452168471310246035641084634948145355202306889190692946006893440580449049545322657690765991889051422728873771194398799449199579168133045893634528241588972940830502581223735217954444155033322784265064582210358812900907640936909914773056744036330489816797177538812598934240844987258939582883293920234120982699002341683260279611131399548030454552322931086614092443829580905056921238649989145677792758570072380566817298578606531398032941727930826347611431073647074656887941117041865431179715758601968622191982455617263939729819694497022837663499851804507731924223901158442707578883042922628746924843437705137069515484028089346636144823961420897305216642257796550215514910554466077230629013690634241610098253921182280530103953140782015255637098541650520963528877142724407450561394200918455614317995154484885257309900131440361667663041190127459181389600825617451366248730735818412940276971134755199600370962445072165988931703225352174766630399691112940724016385653530402361848757353977958398650458147464090871555550971966592246689723292228321344288585291670334187358182782316295973866988518113988562604673116303060893342315932538777136774278341619018594232278052188534154095300123643903693315589092130644924018913405424301673307154925003270543178540353381266594958844821690193731189125144278822163327487892321989766935247949518054448522610832075478094922554846474971913000575656459881010230467822197787281822728144877421731093505828635150319004711452744193022147539352470876189839641546320600497327627644983292818775840241794432303450355519452333500139847167949988473508019721531838728663687113598876134248008671334049779007173896179381116654659317886083072458622444616876673773824215498126969334768321634011429206820292470107029300622721533175704758610056679537178617831448295324275112785722311371830487474819883664581280917424524739353749305539865383778892271775456517829512859058103590640198017415952698867081325072662834700054440114843577313413243331424438274915182670744245247198743262523270177086283595651290075218107862327274364917599736997518892032284527459229144773541723150828919217609159624306504440567762336191199821093943765320450138687846306543296224021184295293558435435094552445275667094132900446355650406757776436901727764534622043068527461883353470741063533147315210127885322344877219878077892535916639623170652926190607974534453544821684121126734278320014101113221474867407878311639888915342451191847017047023527076193817758989461330093265487979659603944842325874427082892753057433688062708043706873587425891365072914746009289280995215583190593021232320228936344262171149126363660994188414942344302724159192098304767513302230057046410981774095490562748883640208921478258118372023528594414669915311041737332820689803256874061752244996076388202019591518944060701623736199145226784284900018976060453972689647306704767922732304540370781086699262989755533757873673262185809328875286031386614835568347099493794283169331113073198137990834286368219743259008022064755049075203446125467024909452907766745159659079619888622059913976944229937896688323648722834049801757636202921728937963146031593529147263288277095110954210994658978342007891349223487969843478151304462723103325249071344074365615147185436692968813894655989737932122782640779284450373350926876986635694464586735814234008086760349279446162935212490226858085213958373801321723737120926059141683357419627489918795063829057839998699734902408905017135156257459228544828630533548481126729406363386902630282747428942329352340606048351166692672446573655968393001968856167154558948008925422916965409231746831186353583834896335968251346622847140398664738035768713318096854812412312826469271918415512485313480899108970273280531133184172431895101946018274000633745858673021638180910264863287200584033843525414296168662725477110399597141065569183327562779049625406529961942235943646130180897122996796528452802205954285183538916892395178071018563707831133201013752202331975887736857742262827916878978420427858819322643985883035241251890397989282958949105580329336202487785274025876098659390905355632879663158143780782229874683797102048178347707230072533008531881281328931464154918505917533560879455917858032905207201444857624935131482457315792061918191274739225469549156622171411226158769381592884127118443251461057445471312162535128795258747973606674053923930826257844461157020067692561390667398140946754662300227669853809151434747166017086885769220835319016209326227051788440522650190983760446821882066490198237734133668832392715403881920138438363871912503826906919200327553158685679378533205429583390598743314601608365519426071031650850442687075491260570861398667033859642387620100894786140727957279586069360435669426536796941863457868903204634189463932315927683750710831778431629770011859381844433092192281704163946985863240839241920393219577907951757879114514035801727528127356763367462287734100760746658968524550447834105095601405738043614600113159628422971753868091254131660941917652007659763542105322745308795774286647374427320780839550390612972395320847623450664914174345660241404885083675494690494283058047096194130963977521035194294472490581817009660244752075560469881980763650880312181265101826093482278391164750942208900653300248072608829141587434984096902760976782650399628071708879108768298743904657718569018684025498895408375248098289165566507483722742773782753956428939601497379902364585277265338969797142109909609561265179187317157312689924507240649507045755757016367934461453931716817756160382624012493206296161227987933036507319024088520735308291689748891545154962959362671431828374608035942531857501315423890253101800506313676191844580361620980119901995779574766106639019646680668518147816756852183371424380980423804213150911693766840337709881779856177022703724826094625464333448509649762065793370689471099719080876156533881104608358768675403392271961805085085075881771451313230117383473937851257766781678414953488231569921357569690885047386310531293775835093641402564996001405777425020493887049964898823916466515484357259745032103889211493289811943294428921352032042047693572679314946829393628135818684538273905399866993809281366293314762132137929704945404348178069058666542145919200449697632012341444612164470690878920783906258155367467494758280887454691635048823521881030383737245826599238903795032718119438053907298134641300105133411985749239206701722140475665728488562888667132511722063905952473586437312052016459115460510389969423522587586821665362767929561478788708601930542491262376196240936501761733070916499256480925428274603191477551553523458267480857693154923362677866873433917735036481537448793935928700887784897152868111147842604012055233494904384392652534779777658170823732032130173457920306563922692698435434405421707855232256734485071920985146760143254259218581091360478197210734356958835680873701685135062524806133251897542726049735325590491698541616549629637722705804550823468900394273459812614537104840965207559862779013564022878991758330531302849455116510478145881225079553494450154474220028175867645878662566676546421082912785712579433650086818869247127054214655754923305917559210505467264156017673278897357136100572145876160450756940098256137356421475907687110797505189747213674627560214970204679723705719000497801600252413564940260561224920243292249439657147345696763521171925672369588483694823218393865774068789592630794405094170802357665618745903043675662250518618373277371055309891388705126713235212340372511427927138468312484020762099923666987546014671097281061906200667853630879538020417227585568805129418685713732947720184348712221097492175347331767455877824210623918211543408894965683120456179539043858747426127092466470873474793467781335999949437923636189904216294412614673964011877735083461775142105526961915075025811384115514436622836522803892033321202601944901799590183390912176322234033263079025884786610877769244037930682784557647173595352595859905786569922940010281960060997646922971850067946937953592939147714571420618814762999242375283636068267206860644779654015647009293375927449233040331209054151620975503483230704052771996100147741694584315917995082168885970050431263559162932418374386444645597627187066918594185989668282183393671384632698039768598826568381103649415413823619768124130457891716457203073154301127760592848292305657602680896996090023389438595747812830575386039269567829028898702302721219937565479927910854889725316109820592760847624179130677367849722661850329673381589382952233373824774700172510605787658993218912231034834347384862164861415075171908085126184212930069619265827706045004821803066649384066786742169623087069084879965652207680233865022372476032391683403083385942165458501970256194871385940084679718437608668578962727651668190071551934465574723087269020154373370071281485242078262845831265260829569089325776203937266241398733941331630069928325354350078686197198367501142264885242878554425311124888136488461134520144790885492546646141427026740287806033343936507732398615212749825810149490861519890797427980072391878951181105933957931999876806007334458156162387542424770813852808914678968125145847545465521829165573053185397771267485211473923000162483091936487683197623965901912187897101265372757277346434698109426311475967130733525976746693818578247523644012485284978795773366598059366918543291120185517669935005750504308846044595324591528524179862527895335846173935789779647976618235804631481950751153768910156056505573782138221588289198687745518956788030177460503227527237417790511894952253598475806992602983245192083921963485046096308756493391059882052728160681424899617967254120443297079660634361411381913280149590884803709921319257170305878945737095430718650849903312666018284732128657009597349608583772363114766029475534025321081231057073521081169705138688382622494050967392074019826139067758630805582205173336021839614634336369406789734581802340226478957512296365670932684283668804547842464153498486010462503147206181653574686014713161192671336500773388675570167050323545825436862503242069586448391277130552824656029024785313216569914973315313952352481237273111596457513745815541938387452632368244999188920509720802512719745404506700424547380135995368769994475160245024475485322856700641257935273874215883731435712418103542780222884610359857165208778225762127450426020868119174889837118754333171619128136869033876401027241857963705138797334839713575510263294846191904435854913771069867799797012361441598163885508003070877945944097305885867083363230112956313386927880624957994472337442012274340315151302189600865420845064828518063850799027465233107672066401949976415727185537941244924252817469807164907746880993810075838127191699885202268434429783737855248571097427708612416854215142675359871081965881383267957225061298458139346781625325041793869496392839842591899863843776023360581620668108232485771377961529539442669052022828377980660270803208481235653301539489411373171822319195453224323925735687129829912262469124223610022958989165442671621183713703582392192053819183798772703241857138689825706806473904732500719767016393604608755884388664476262918162066626723636559105506815122125068256640429387912690003657921311165505640823065385961084488769160037482018979943811016966353501606745603992289762169272951247568324781420534198726521223264284924487344244475381975516294341934933569724643821321377950384893557304541008313096377906594449031165141116523360030870586792300657967112699613895833348002999785259661399490502606118439586420178859924114605800608701237096301793586372105165531604681375913720337894224351813557855267362535562556404276072567076473583086853772760168988172193507479947647636418260180573239997969898372939676970530494371845721562824530651311671448316550400522025498398840481494576700892265631500760460783568468462648950204095716156685674203199530186342554534864474293143251357376245534894473494134610982669515193797731609708308745585202876617383691653230440966455865035361148940699846204341124475576516261226253536274682607261341619692772752237386604422403784267974952697416410844010673259277190769545266772824847649241842489052169216657486030000773533341753308575536995948478385223830231279830576292317925367449890899492607219954295043033286491554091472342898431981463868656679752805370936519219263315303589536790225200370256792161770535732104138407669370145301944393272645134753039874869679540413766191102786231778690668853993718410338536550916842581685912990696488778916214956211171933191243859818912649196197423587635003313795117935476782761400689927875310401282566124676626648470527974276945096946920709671001623175973339412611130920201287819105520814508722472095651886101992801190392518828188079736857114767705015030732077274584355270231941831939759330693745313250729523124039189002002118144201191286001153220855453052448186891995344938514207232599608379606917592939908209112927110664823259666586072361221888378098439350405223537298485436372997887271294223784035772292813750161841948974785405387785173463227025166947930608889444869461183265224299798010241028573583923326295905356177914019345225920674420126093126230779941644092532628286423367782319497779447256380709080897966269613127923428224930820369584138742784310916339263526716409032245978329561710690986514154163332175349437707496954378254748265171514950221078396942832624129977501668993809181321208678982899375954541762703859380842409999787440289731476548727192891473488572081695632862744797630679987894210121499042048386654208320671023316197104736833664088476028923862529020723286716009837200914717564178780044103014460518844171821861430021679601253918203441391581264165190776457016356636565845265833761705191754329406586672064729776601875741348404300915570638432042983786480497595721527080587198565926772415606602572461009245789458997952886126351373726685284393740865275368380900448946781824861354602823037008255020416706421934566018378997658685603216012790276951652722966234999082369942877699561066414976413983921893863154280767033617065656752434638068846703452367947041708407989277757946792510926473875430878401575726095348237895272285022624727033474343642276227710854678921270215962735442234283218398185272398816364409060619264593183814402678297423448133382700155608355017965630657761361640755908257602711170333659740093621829576506107203685038662297365730245677277696322099384534673637127615766307353055516389187592682462270177329148354540976613880374912006952220355373784001842763768546914483993428949840532048941487489005880880287790814117673652478260638880123456999670139278137276972596491744514192885679909444074367972106845335116825129641688930027995013568484758204409246968778948687764704927928172348736394849475644844485009867400509318584473400951231437572440550144237730576822864394495168251994098979603003385778369066730859371464967071167442982545710975220431408968157475102436456071899444489793002034871360086938930085918398360400969546311947579248725660435422106078930138921421929378808261125982796134112040890536530488324038085378824375650595108295525092673308492309894962472321268671199848122981847464484395981221540121502452985973093560613506477480786352169178084623920222727035442466535752189886957224325713893124216078305942106111369550659755836867238764600280050237735774329430975773203601828934018132769656485208260406484858410572796357753375599412047094082815748904126675284252285828082450836163869635963607834154351166368752184770986552595603229112197314593263265283215773691486201318023349100515718610851416671641014865316188346330627930732054171783694338123814306366338983244694638779583926538374089338744783609587752481003995716148104722523223901623131303293305766353131208396980897031185115357183980157941371536129337776086828688673450265933744646891829419534970541305696082578753586078314920951398752992701208160598480417666738926020113611908335725447528833066809640261199149357568643837062377949876046022167051863613121489413352626574046120216084314548381063167765380557682769962625791157437754299431761707501156286063604782354045502784545536051984368780598559596630871472382796004397590206325512144337657597986232601530124125850617422218800677639429496175600014887659039428950895724151588281006491389351083348094089847520758488802959144699584056599630971724242773731296011066411887975046950229038759413426654026228913569769146596121227761113879876874743422331400824466873518904482829706353913203671033673933115094838618876194003163059596835101046049035530269101474287264442907487802392949787524584434224528703504450402019855758001860753088566574599218239775084184748334050273112251061442071684221095268754829521701695285085514329422477132315637403509776050476927980371529293750663273046195991443522118105226398995344072079402895085844024609588721095000637222546004796504402890025883690648081852623675334098535404135029225655896378945657610644402713616526598088040357369849636423889594787749454642536365702864208473314322031364026066451969324846278738421319484017456545927890496520998147035449170189343075726908976237017753179028756850697550000240038102188027653560849640196176225728743983712266593146017838376201482917778925106149757542640048562262863938816845956372078603610709735584152112689865005259084968621831093747771588624882759683635295565369822339256337644806576319152160742967063758936540083682318658864727224644954760209536406165468666447321105413080505034974312830150269447513963518063641455651108435216795987058312161073043795730822406067051163523019848774469075844474090871348459282611282515020493267366979188084589375670793426189623966140830050133480348099950349546577443989974992180207450840672721940293721297556146468081936823729542928920091159183045163744025266802331675122588121187414664065697950863872194528037253059028795859935767464419273730299711640441271417514907756905835982864243845284360615137638272956241065835931031780430540559890189498758418249964450085046270289796071234511962881113838423714260159548927555233965047939408826324940479926369361006766692290703822138502881392121826054842154652927925171294599233735830692553179730215997763359972820412127396633991587380300657786330280273454312401885503137494311831854374947203073041619470506937929978043467930006658369006169176771407338480419863711904583305069202434382413214083152488064921106959293521245607870472756921711616777318311295036103019030690175227457693937284990180750434604586546973613996869558005168612516568282471482059500888952314838265511416320816671685491811520885021366684724447925062458157304787609488444286575294371904955837641352483654239839797165915150512438298364794640130943321111989603574714946703774236156328429643357932742511511349697942206438608661449150168587706255343609234570696065108333754732808789128258526929480549768029070331061489670690916629288567917612808559525445589597832667707004490354226481333556459874185837699716975616591636701945404545472801769175840558923644857204516787511996150350092767957785373063839923530205771303799031802106671982843701248639179094782844126476919354009729165668904893979395872183599026425734589171147106286534569290936089736319439647344364914266311714327759300853134715372705510173860407559773191133699407551366838391882399394839933956556762026320812872436175017059332943819560420249903163714098953967194057308272348029324953194945167262481067372815465279244973776013875275918095540677278470479910968162941200172188902035953108009677820296742989951766103856131079209421703903944170320839614062218825686781243821850900789264832647921497564343930259147395771019224668394903912338520328764172523023642325163616182556981720118878845904485745278653273135062843675796958468701377349123435970584350155974410170317428450736545579532879083061191114676484671359043696198152373767268152801298753117806111602758592627230816390826241607550582397623921848387227786850987271361113681470097757539748630296243564382071349368694673620512470147257330129450461017715182673495314618140104863733547349428235982955369337379589741298693238761196858976259563031973932106775917558072900929897820578387757780785466478905285153884074835862647986564182728837907118965523378899124526535964332559638351843888686644103291704708288509408462817659738278219681210058323985275896489131065678202008339788409142449446956672921679979939362269393805263016297858442387286311462213780787777213555760509188732134848280758134132161606465063566443424267556529085177896076956945015332887325768909878296713136077091307461772864187235324786314587425627222700996386696408492774326577976234753088842678076348932205471247557233330769872960058914850112487654706497742803161590849520709593888811826083116652047022787173225827301344800367425446762870924202979521820297723738763278522182111520328623660242001918960203681506946766050234111219895664492557333641369454604870214245768539586245429976934380947981479954396749126590571603937221559931115027691787758833290324199639317396869383370172948739961786137961113671502356324422510656326342887781014183055157638128894241884844876094141790747928298785126040916161480577088164519325927526160598766262272277011930543638213766106205398824151394645154076644593547223221064763795236580289743094920879994982541392009487557250314621404473901065444222010353149398920384646519329385022779877131977902526252080085857870704235236424476635717648216068556772907281736932286924032231202179282149958076710859226926375815173248165966057540160286425299285314632808809910247711277204043718068118442219361279118006931685890247126906337498271117664168111208208505487307017599893268599982193570669562253323571638483334196062556025446462401774659203113671196695456642430041681083369874565849789961148210002343371615372225848760841518264977820364872441375956364377112134484274842074362465379879476179560242873368802285806507495902280740402034729329585328835478983817203696401397227778940527263975267653297853140706016214079363383122372301303115068313100026901283565849603343714873142676109754918089807146832062739152193165624338920357592978190385307498225869028564594181543833307654113044307252865747452848542844925763328705165549029744134027723657990850658812613113502041991458559674909748898144437517358968637240242808598408942465700746132368683256647469710382249386838945915689142110665527768580551057797153497429074171975085572493015287504795335884746223952296125609087302568138508516220073850592376257718312995400388558820665286554979708766217644507745111611700684909348206674631191725431911497131755704172361409292322659515567485701819171864046563088323668347042469104350389168601756119250380253807895819795856746065461431970975948820627042084097481520327169464009658626238960653712834631650044509994398055167856354691252619450900335693859329127343461974566566904869811796610031396029641308480473029178977290412652870610192682659899096894255282066140818898228122864827415028610836475338993618656640047962195422867276283196027199082055645208930570701451162094303627130880928460335395443096212519712670963104518995196557413256905056585385443949200840646407627642425994345124620796298823740566584411636396514073839032563610804074662112807864610437006060490097145536427274271164831703273769105294105680373794788350169538718050269131528902991840918659257086032411769302877570215502698601484708607209502589237793865018351419081357351882402333073946411505409291135648376567883911540589632429347770089023563527997653115745987093699127190958166590445376321222802866869049800294624492094986065547601283837412255384721758224511096660819895824022135953053798071529759166750124724504214370534514475465230136710388494473969128881680896387140851329591594697915382155093207050810136548720829276062390772293446045368974545711815916533362460485367975234954453808076519590882000887139139744262538098600033845273578764057874389475785370761549156070607941203994788702889364233090383630937364405299996915458290508488189578114538845041243183527509818003932322432144042481025060611808320457464115109427268897803400927815229706796422707654878462779025638480946099476487250744291720679736712589960882280385203165850892081314482222630723698023683809730530979918924929935859176044749025591717489889564959987187127033938262948855620245823962821055564416952552849030111359937563266830960682910177871022751337303413931841735002462235441997601386678860500377913294141444165645187180915600218397133551802881623971643832574946952875917915104025771556500382876614167955074921406411665291373661139812066019859103015106428209976366022386825587930848923480763195617577498277626830921061597161046332304766624413320780047083300736826931808385289854424082242967962413867314221851327019241053217759164076004685890185464945821328876768928840954090239227001359275847379301391358605204071694363381720227204423498607355232138617364405598541048352163489121557126038829869867505439673134142930628842773812015659818368363408588312279872529679559071887292072124705801085983087891744237603769162142117856620154456533869741389222291134918390260500620000476587246717204943154857719221352766201364304029187522595770306027317203318539023056906125216868226328089601698000210254993640323119107240289146774264528451255603308684330128305835806579016028336402947777478681307494904307193967132753776516042130167231219140111504069419220754545793896035699956090482043920661510772048644021413013221905594683527402520958485596419632798419396006954408233750489820869987074775068849224186663250912012768370072276287424043727593586462330936537676626116190618252098562797684155055534034252624964841529791746166838133509539479716138242335979994724315125286853561993283646556241904083376718874861746775154001194316752343825090306596095764330035215292933756420997151318984936170263649686058594596902569411885270565083341928276865541945845247795155973648631566747294760457036666215875514144720968604210191025538679401150436173810337454982463825928348287724105809719904360099753220977960343293623748655892975373627893013973011582586795857400233171055851955532290203840733779601866548147794009121710624780626767579016521963176684914049172025668622834606519888765644822548956427999377176378804675325231171234878667196282663372553662506672424927764387714543741372600962027350324563192409023065097332648173389631109751110399984104691043874279442694432707485035177780103246669803312365055522108082448996043920762532981002036547812890023118444690505706810413483138595339091616466827232420306235262168686636619938304023740328976341432935845523962382809048417513184029669698308655458095595430363117675232271028696026409156878155919870752219554409831837176816590493410680632782269499352545274355661540806969906584614482864596505843237902874833285775459103102494195453825236605708437019198987437952537909041190115448271874946141442829385021285063982120613227519369353679687105976746998032665526392719459008619527585812807889312222224863358886692885151418534246475008754230229764864058925612196226027709623891391117390479650288842979887200375290824655175827142349098255954034362692724618025932121143147013582645984482142062003126769104554380506942571978158658344400680487409271745900373983767661526998893294705997403675811947948765864759269116733654033634118106435729607923934595057739102824621854331625581138726685886420954392287017920774307072668210021565485450051369618645855143684810564775953858683891541647538536134104683859703522727721873529731825521326461078925169502612647164080374509187856490931632210877557390160434888213042677584602418077173166931942493493901864933960838165502484530161165799594393981913370562303762944767743900047029519798315767308564481013282662868551679872350294608657470033241157276053032799149902311055132514502292309472832495375352911834287663825847021671649460460625874341381129430572032377945790309135378227904337178199958941596667861424878403483670039883746005490817394806906862906122263487754743235731434787574183658597595771872270274653822069299603944658101853056420328224602002413852979116135777720074933383126064895665771217272169336236908628767734626125149543487802953680965133547773538937945857036756858831028867703824757828380980285082015243611599035038785317548208286284460504090887195421776712479804093427225514130163881124102084817370565083348870474867807247318559406123536702121139583377894782542175019863243112145913559100060116457179474177423415343722271969096469561054415286015851287225135099163349964350939138606002534725484269892993167092547972302606488553331971839424870021624421159379616657028729360676682207918856772662416105098894092542551249366448247916009463614255727974881830839361192534377955565491864532751401610061809010634121232839275164760935524886847517855546284877220634824549619733620108249085072298954406675149378240400275456383312005796442813912139708351016737177381188397392668784991790704892716273846990465066739040060373360323924424517921444981296888283078144448692119786701118079892279432125075041274239920593465923767796985884263181999516915335847127646106329680286164556318072849082105292874459382964929505078054189970741149326188528483430872729372538255071095381587801592814372599569273443038910207915080324950510355585771042706299228112253817718710498634032806603711794162813076783604746459852603185458722606037126154541662403603471067914991586458350298906112769093358258948681631767314453610919381557034500927312952147802205035728315519650871001382200409377370971932468188285763467961157865119031305291974507726819143321010329124750671415131544460995976868949571788713664807981312781579599424493537913820747899638110270432870069371292319819243848616760222071413039904466325185253295506822300813870725613894472976240780984336861004064943374218309822030856153434010316027322724985307027652880846762579850868140135463362527032669656210734784631848155371866418738432377785680234213766281996599943086546738474606894127114706454300100622011222913289879767979498126155198363103378581314312579028748484879153267649228840588215406334372577150586357378173088560296055823974653815576511972245404833446413998427068308307468440554092643092598358872766466192955885210931582322599073600675595005781743518403666529713505336443818343089577423392817919743545397761203111115076790407957709997403029033671987757762134669214541746485218227539382837783881926148867931924414436358567682858146420541709287915489983481916388024098252933121967728100319419637128059883057523504599024889510672403436506545105974705272327648532969132301080033289623276613836373679288051887468503231118129104479521326743388369977928047778121518429940906223305806635616207109331154998731630706511352799000599122142619797923678857449262204904318515344627426566047058220423019579163027516395533031953002327574804897017368264393886301855168382135912644604175906950042545696321747198504528007367737558074254016784930573164128051625077717709468687804412234108685930704544073461835325550462966241620356380193012522730239083458770689996748520679505796306268166367744138183032176575241244755390455541381843639578865295396543610888046498500121613793252720151144274849278507929657288547689789120867320250909937733093349577802528435085832413950629447703523289796255753344441645066103966613459561230444918867725769338663310304327738452291997715111856724865126263028078960514973051870588387958094660063497627517239346134034082628659599073782835164521403244403091796292988187521505549816636044752937815774419117660473985315957543590766547964036790177810032893075781396471188509882603961975450917047437923538296534326650375074102465118586967639049141270382556541972397768319747084070051180263975935749846888972683928752849114551717355391463848562063187285148494950375001455498746415567988283035897038177391830477289365150404074819211757590313068151922624771493933323961867759489858297245355984887722119037761439678441145494838311037524815103603496847812137401301176667244291911321714089738481448798265944558752442325334233796482331170748723996122474099285476031467433133334792797629988729669629296356872615738232449863706123610935387254234535872559727845017970926117841767700743581959105761327224282385643200934498935973358807175567743762645190672150923923894804508382839619702151274544034406845763598834359592276575915235242928833069946827868905185040714318250198865024745566352492713485878647432302330272690963172197552381844707938561721707342809859641654724268041134967961017765370159483644127262243930954225495442424818761874628118991033491913498840792275243667153873284825417543237022872102459849690849992833229330697886483635691448248623902252210245696551016678144029869983220718892724938385051291843582492451675701399964730133088111377496226475273205634474253607692144987609941919643908781062565280562366281344380766765695466500943513461473926022845862725474713015762957287832420337190198100732744924067452410971081065332063250200399689838685822101225857080031346919640640068047989402762666365655825167459078714755343715067748843885207064056069005348376741768688717875067600597040712323113334035192292217195260703249131492828495972697939413866051621726167913477586941981370431987987773982682081900552952247784927487246591078087424547084246320480204938008208928732624866568049850022192648764205011673638862180027637664539807578055935978746084398339688399434023497547694869733043100326942748444012247228392514452489678137053176826428141311561243509393729040692502606284874356373306751545511343002920652177463002329652713701093613450701310436061215868081617545584695640909767687071379432858362202893711985676419548036295309485901494231932372101981806582226815344651577463932929392393645450536456025660043275434970446494067679694040774852977926847312140483973861486764227251484081981842114348096535833561226635254969969236386158664098378971759379815972324114055204245425324734902835574761679302246742635623322822428486250242653788815884594173016832438779918043173146212825511419959395058435057798306598208975694362213863982137729821938322355835217309882121331337687952109483126190206972370349518641879705260371710397190149147103955752966057679653923223952305782926606471994922712980745520860608747368027739293818013415839797898131662705448884898388630439891686619847490397191032345542547941259505603448924937604848835007168640385630340314030561300469660658602320282489352792734847597757031184418866361594566329049190343869942945464596474585577925459728519025665279184918864716429978717118387495747073490041326123593850247997915603557051182329933263467206579033359588749519320012855650058908393295366468228062805299996419860873427434089416705094364612912852158704769019396147671108158482164445420482226860305088244570308066402047325912330398604231192851467512425424119334211210031774360853713364448273887850322242699982866276362090200678136699691637184513699743300551785371998338247607714729117102065922799701369790241582572086745720781656172750078625252111990848426650998725508860799295353079394165968802637679655722603208333341458676880724185773814891790405668607910380836473151174859481036301225095005777142834918807818428658270424036214793207981268821933114031393212885749505549863814254677832452694763489145164855890811433092872665577091954691489341552076354561532701275605731971175118506932506394496724526251537759617275593901727363414751982029569277731839623846588452557683817574075454146116558568686608121234174644751831647339259699707579556211373228669723818116316151006176306009763623839538981793352869338307943865136410092345598696775259575511589552173104670175560711594381408361838688986259797693920514650196001536853139441183673714807114964406657079425885718539724863125674332321209529003453963368630916801492764308384092166997670085900411989135602505584189659792249976186802975342132040051298514024347844548128371364777039048481688052310071332020158266678832352630294049275979560340541113379624827608466478781171992706065211030248245882514684002749605274424292334878513784141169404796599615400613008139783136862258312382747386460126547270100378250965057504499848502913409237591508678346995646886062880144139599184346112221065429013410301032766035189197201897912597560510921266288904617979962353252545493704505732850756207558707477041245305200560581867184716521965133700294883567764682147692578275445397748653027577018602853946170480317746540739886270517578976263820709194733981195614935809226725050301480288051366012925209251178063919623974403423908540857223751082224551641293102854905563261358205720992370344901483205378819517236447825689366766976119842588384078226893652994571270363667621231836319139157334635692488678426775714371633077758313939397109980029889573942586708935893765697694999412904247990481499213782089516830777698167987651693493120090619302268444533102707671838813741159808589685066554228421604688871047873865737830621061676223330929248173689154047805006592081024203585726791094614237874905758750918199576082959331153828157744135759402179143475018245846944830692930967747345802167760022306653346722164438999294122873275379254332012491200646375185143841761267682429623852806317143010920079463933387351587840522468973082824700160462747342013451877625001224800089987478849856007856126326031592221659740107377502302087420742957143316715482393819052513499200177650532854428634550665398325833604771617225620907696268685569320787876167939715306596835574517192105870457460982396005753972657630888799834764796889767892949585837446232304615356849468564824317668962251461470065595511909581104475075441662757875757279513961924993343678442906852611480713702374286562360583772813432422556599811703871355552789817987391989525018501479528865688637042082639563362148464682359854685924333434910241868709126198894982046411434608155543137991468035789249826684665525389091577372761605023158244126373639207531852828991520919472622778216921523893855530701880932282221715093829330348106241383734214580968674179073585618138520871733700542542324040201895060466754729103403827767808601601835135651547308672555349032248561022940580732327211430149696986940051611127861640043359322489926841053263584316862812030512071963381996680118919461539724953797333860267419251245433625197042645614022831628197705225702864076319433448457858891201608058219561957034808306703555637358299485860196075276802425768482280479357694256595615886450515544323098250616614730795607283041868264877681585856414700243605612515974321123786678762880086873442249022143598514202739481843682239687097482360824927602842534970699406701393552621161292536548926373464949179436215908754287117173123612367639416175413883333826554874410214065515607026379275872164891040128375622522146268982581128128899936739192607823083566496613398033326466808146602795299116706555573446215997426689095989947172896944504059922039686829765597677201144467573821914577459690181616899359507926224454612272846448574588831283926431244149500743929732058653095985169212731259498580642647828241139215789623200176168035724714106568039899051766519347469903348876735773040871011480957008286701870617875116882402499638357706268293661748835338163481867267561006795399366088447160383184257112182226697631284269140187890035216853103118849747205814579319169620978332370594270403611952931213459471755861716593464401815500387570562930352734006576368173600444865493890005468982324290762270204977757798189053312251261715521008022071157421437601001997080455820476581582231241327380815261474909496219057865486894222005456642940987471756564406999966617971326291295772916974372583564177334587558933646480046661345308414895197539779519725866355671057808911420791105555555853227942180199235977941250012278121330992624179821445782267715155784771056850315937791708769592905045794997610312794770855250303092490929392732200010750444646772451694602031353714648340720838261873429077950421256841171278414408780000673471812435694727754747216959942001662292306731648837617626721677838048994386211445143100327971122798709071244192934400210949200121813471290338666945749781618497980190694842921879513384112587177329638342911470510784874789721946101337724282333907698589568204271033809143084025518629610695948715154072179845731514367461538620453768080312528932683452778774891658027348267338635859915766424362737583663310567557906579262104348508485816630233198921223625256146343392392609227343600398149052412741801299045801760082640695272949626938892159525733725411178408724714999933444785528794203629685312528641146092624253479407374340941041807831162879560062800561501699725662755883039893710417742033685064533313148293206514660999663383160498981242040128577188344790628725214890911985585280593437321208445309645093755845096702810184845922586836460032404452484947698006766551322593348092383717776775393362149295628574783159919906472265387264317160293758975327807699838740648460456996282376667030973551111445210070953191347184300180221521856513842369397173844382123657774478754320885609394993224279134149417730555481466607862541272759375637389169282031235109493925362913835528446506255490660453603716971386265324853740666655666196345237231791832825156784238262350917335110589750384224311454917618800597889528142786277301625549414219063514521844988498746550689312700140057939414242324835210255091669313871140230810113787343823459847558202836780460075458386889966412095439919833384825412849305064087164193823122433367367016948270677197817121057759692764373320387848523402222065910520485966525042013417984328565486815607106126349521264439679216813873541565750105511455694928991535436422081316826754572199422370568020114460489928951095110005356909517261576668687011130291389735928786619807337427238383420789572835625790459065350562458770337928503403307968383433611654023544307712289790904123793194770447014299893476765925045535342599381125269450569202267255714670300219842934085955640680752127703559112023154913351636955781664487506788725171161018909566304669127617276372988375354873592903268299633916860752974160795447942453986362665303519953119302836108979509046215938405654875256661199752969331640956325971146252542880262099897673664470771227395926431263762404832395514943633298067470522423548600716545054240788012568243943126960817210818004534730878098471292041516790265494257022275621171094856153744089362888286716108419383099679918868931236248935710838489743557360197391342065302212164827115704715734077945725355357133478154774439436089201277915507212754926665742042514118581539467841113803827804790911744604893435075407527513306599104614018774241905538754999326324893728209983838580337862928642211216183239656746858698322809950360211849033694560055306323388697012250245469371205535728007644079663679161347096848997584550426282320503791488077844242185198765013452457737152837389726424664676213865299410361376207024314833912316571088611447237660904581130720223666715506530936940938606976576740871254051452384806004094863880968802389181905569013280025887077834029860775434143305222640449555944250397204318398171382168206536327003755636334356676082813233728724667411831862174990101003267531687502613712569656422651355000881355041333733784789200251606389812985566345595870580559021470449155419290132625403258718123164322209595383108546344407168003980836285507216299213942291939913309502429062546775454285424492375106155842618357586638800591976464095654790936998072657549206381728529680972906925886407293921678810847574393151692898415174845233200222764968495683742950037013663804242386759385407105609713890970312902860629627347813570042069086768354840713791712173632616886866286087932882895091232667482168879451080939577902402909959262793881709419217774632978395989900948454953103416867705005504984872405306061632424909713370505048147489499786537854201878434149279460523159714720340755631200206722160105280605914896858500062566002742959538428194025916388815429143315044901005545444500410761411393490591323724452740199875645014971907006147592077546955029938254909875776437764282374638285267952571276062461447273233721932191597627062312100844031057445891534621305851613908453400879270813927212804680838414758275707766317129209084788823820034958509668014449318229780703806465643132018960877376989628997919170749037344540980663715348180942204085055401460505552889000682187040519262979603281967626543283595947204705049329367939516139019514911693726777000968545970941679087308325359625416470914851746305578462965225505985100493396144966394112754890284463708081977943684313592479468844623031284280166619542801782409482265741914944263137970594932746903643179896933997767157444546007579770144453694543092821352965432965111869332776890895265435712583622605412545574959901972332675206405304686810332961431232570532557755366539450867863966759924824954490708659676804331981647297315502213315437117995492614893341148069257025858489780086041522297625222990565191738013986162712532149087850330549347022569903669510710269120683079077951440670112559164588341409073452662953733727531014206619861930680905053609075950988077518906938849677023367853893841391477929336123318437043755816551592180901740585840097078743585206132079652886316532707357467442668639605744664159171399627315458318312310882318907554798000075927562720844416326715429034794915936381422152982746801376399818275079640200300283988192378835574476627539220380930914194571504426690781229518842994870724210654300012079219673448390008142092789299973446813223347301707520856313190701306626589987720111017935832334004234446005134134638400912436216593478979292860483487417643798423341205869756429546720008308951550127143001627021028536221257735575601863160947414931378533941518736242511002170112758476273784675039206755247092056050484660811943994110440955700401023815340678729857766746140103854864794421823188928801011302268428838057509518786329225959427144909310477043825475899512152633973770931092485523385030438037462664700681795751906566029033623093281353800962906698744894563762660523155410376501818824489679627637806219801048345507215177991513166721079597290057602873926233919209500360988008112419363906443529193269954758226894384596242126102877723108219412636171780411226296339510233955298405198876220518733639613400248368566864431065284991100399419669522530554410461629813470913055477402716950578943266968346847108978090709280820374982516628429848124225749930552650646843712035592423181150182571404699243111979593088621184829490460585056337300110690237197794651449926626843319347533045811210296322350667803673647019863775054465747128214921861493214887406283980786838446064010814004283745142016822659315574779547994872756321077502056895554685386699017286729845181990678764922142984180330986108794679118021767661878785961789431066149584986318828242477711479030945128826721132905365400070806567654999907163396784787468265063832731175801257246379079804216288698911231408743922318539491411252184031393277032714306248119117891109778352071591519306206903040780857894271857249164762367520183603110347735182503316730573770717185221060409056950382942452505842561166240434700608744043768982706980722569969396794908566092660063263599777427023436890841228888108931866739349314363652375423307185649379180597664751202129010301738518592585794565814078543484945201673311677048461911920057680422433500451067424526866497944631930352717873091647092174271379417610124488526599196469546359333773854590448612642007955367947392577868703358860142346947220586994027151159286788487201619541212548363232962508380130939588903225647321423760638762970754066752339774958314510089038912935899741746083453733984173237998784714495298132557067010277628344679570355442115693313630499085994519487793010781122569278017301641942342889823129686514937246374937936082594208438856350411119514968371870886756052981355113351682069975233117973198049619295992829678785849930270155555570480195504015370374771275893412404054425069459354212366869001003975505417156057686156543056430555516563658518429371946283336424793992279747355182108309462056890657873008116160632471635556173117487242756081018722701958766411714927948028033211836654084664129344344539371702321683130120463001646337330567877984479431568833237527061310457606613026415929079451809359511529422367085686213246967124365533197284776243137178783366536969014572416721078820133843420062013131249986493330781922747327202583644276261933843372408620167108931332988719970604343359251774560445924980229282202373873528678854093176992825124953678721715723730708369992536637817705922816842192959790438194355200209217405946261105425297275959899624038859061417443925611222951801049878617753247617414374129549430234493125391541823849392038866390732099442687473922681223919393033166768221489522455481154619664951026056705337387804706048006098092148413020425107051154765680068942107952768531307433047990572002115352069556287623222026543326444340802342143183816664388342375304391740078828686228530020314414645491714374956720395390693986536855310132176312385024312439784012700601305457551168405241097043860367990571645217428257169755976192084392763629924912458873170983442285516165143103304867930704265971626445983190498885640454896481259763342870573887250745919487785465796365894181109733634388349153519502765027940468182809383285637870599831351418759548916586613872084552979735976357642026676922589332619999191227063425521045075209272741847677851722426826692988200453630343793772389049598013490865042558088505921094528735948851117530218333099658400285102916626987978859606816344614648788136792885645497596785654872132669726018954065888703651600842890221441935679648507875953939382100940115476194682585056177426719199722984959993081928113456574194251426779616044232941861742442443137666004377281251680959213678664397121805502667144192337426502839423770769327622184575550922546690551429910332806912402810913089469036515673358967220634337752997265753540479640586379343003400457357824471757311338751447964667383026169571978158506369237054673777778846229325659498303448723690711170455064558864773118526188669047993927093463190210409035297420598483358482907131086916420399336483622101539848195321581515520754768683680990108565048834319190978388640664792283463958507451580983871854446230679306992407713601022742203858950446305288316292588223419343710849386613415766449689495375784285113580651355553579070546708803630265861604844850932477960566143865990650630263208430303393005234073526272431015453687064971672515659239615659874455941690112525564374668412408905974083777214183283426217277226534266034088080345244395796129627728630959229289372266978931715603650304959230372490166899279031266485096512416800589534711044070988528219894280789433627215711838986081699720448040512837515425376371897116990238664308274118720049074521423879457176434206526707992634453722765231592144973941032218830573032044797004972737515002448766868659358634500940447792485144527487390462258211597712473224854418243249940724709816432277598678368934598319290757939669737258524400283133259724868283162874289750986166390463493923824285243278518527630507334032834930327808682748265385654820642632325522160543508751503804914368679684341245307792399179154676200522147080727902963265860093914292075417916123552478991897039728828767145483020613822106096329663151118348958422542809141998339877077873015736042531995592474916973940725209385558094478678015018214010426020103288957290918126579493836698132554655700092824070495373556264243741460916236342236246554736981220210417514166289386551022403725497630493118755239021764503278758847909840879978054869315055757416391227042093184760438191698981570278900837993339246758949926413655221906486402560737883065120092350580203197307949860539201904422615395430540575520131329126013814280117022387223289390375112499395893875489575779594747259914161624068879694540908265722871860767535650926390918370083059346258167066445446232538062925171496611729387852499506352781964995217504902583544741930800622374907566031822826310394516729598782368941965800608350360579668875140411621712784298752795240850540812361147991502485356946271559576561325224683113245877892480498049958471773885201358779816583916928750956955694724866322095055511284565230113552720344723824570662678353470100667425985376802802752663251683737314349935333675838369514538436190430162375513386539103475576183561496383122882958022969030321045810965015878860082883245476160358919598250110363085722821157276076689019208320492538569021787264615474017040213546920345458604293865520998049729948479951705116802516426261250509990792818404939202249840198065284536925689631668534786634089439221435762845004512866880781040797905949503216073913509338150064337449876580242621691728888944507369323429160582591663421145062622225739392022428789207781596591668258330008049885016730327542923560716270787830009854525881284273793820567671561376603591583640468373906470088054612548851428293153270714673867527232250022405808630694631790931614215720623380490377576284311144552418331626498704875230146461399699819090035700768374574913175378999237876177533194150032018828108560954127131264144885875773505964097442152226010014884128243383552292828669096589899913679281182662547963487552692349779551231898211910924562516567191311226722786378831669406899499134135898989464339538549520148977707273251538248970562658790704016280848803378609756244071166877094873147682235727823322824683476596031940683141799207335603518352500560894152947654660263048489388838176557917863947546150283472888165134568998426731303623881420898990749148034998174374515982952790051577860391022650513601250789973397826115006228513571608439995062007852418567956309746190406255446478609262969412377724372763493125668690375667635506393027356257544130582882567649192086350670725112377388505952896336527852668086741661212999710492075524196928412412803527278722538438480753629562625256077685471528082180497347438032860660324453481466782008870235627646209748465876842104510639431419461155045507992801760912720765825258657584188173691759301941135623547631240192843188366819742923711786960481914515050228294282390433663507937349118006285078160723402238701621334093694834635072243657554820191009758543097735622488508678945006773355555865325591264574000733257939146371170721604578442545160781067243397658497169413845094977328425610717150618443821580981098029157895915822106830370266070037130462581842690643331672669184149853636489332327952999327190367289862573505296894245346033351312041080476969365993149692079112798226959812956015233167165043340852246684182557743140595240588807309404718893789285556516022885146582079123911405564235260248027915204105321917081159153186605134497554957288420306471336630203560770231489603779141691508102619966187247136765050263986790877522371943630719112914481582823638688025540612683172627766562441076137280985484124392251916611998706748133922990242388015586787421886515876162851256302894360738456025964237254453004995895337803566752382181993691854282614867483224700241055468238850631674935869455373439527261931755776308190734076251802344708148156096661530825607310782869433510421897633795497218551722267840888828737970810940361578796393912579488631951835404944347956850412415898436021569027609096925656844670311701896011495443550115187461200609589697098444927904617723239125303074961533686127783809255655449835006283463408250919798730709670880694789730815194850169202026716621761813872955609137572700820971997698614595875574303055876467509808706547369294415024295751094762440175671543093815383954512480689148781238033607951095759117349848077956500308302553368125399851755477001748693794391487922889593961502942552701850605854282163996544600018141183273695127955352164451268944867279261235036925119352059737237928253586310987566442864506325823682746264854773184711844930714284752549358443591543785111185873745820482638365855379894226262411641205425046887768405772518358787064311153807393849589006460844120528427458054460326086706923923597992002371942744394994678165052845366253060464545938845041536462917651570508425715764992976835586707037518452915152849561159705153721249436171667822257083041996775855033555576027088127450832501020235303078918352681905192218673102746929673009988526088554472467943877432353979764025207911887631758343212730535176961287877504550697116931838468139942056330300626604614125655772683207012609963170023705512949227633016776541417719059764974197620902392805782142313353381544820928341861894978098517531055868587372582118012503086510699496793851428702264649290861906340230956614586338799234370258748874254211254106038660509638428152897387331731816306754480705709344159546032516916582506611606922808476287732640416669788648920104988408204082800193237038821412843161706548745864957723615413677430644292113136543941335770379399754777115409143952049514674155817139412001294701438005973355268306924241619994470551476058214777695617057596081006139982004978401904442288042699065648168945284111653390697523131096944976623955447066057482428606245214473746715397650021277504598517830291907574822123840886054909698997792099107140723119680381534049098440622172820409627311337841962201581354401282909026409229727383733970454462604164944090596981077139000676363098669321630271144561191027388393918100854770672948496306139873363524585965111354958367945519124371030357001906428150067787921880552026548369145024005522293846244347611308420761084320558248736242137303900440646594734088586060401752960212753949098228239191354771407580466289706103793229040079854194010326095237190169728708256716481697913896620789491633649411427007000358565378529516197125550285940063737694930554552637589631095216750412044123022901641535034340200184848207200291768584895909667157616380310610015693765679021932868556808410830012211299957288271304898117205917978462365853883906847507272900024044539331701196372741721764655193493797524749908557162169249172423473512767430590314851169774573660265268330138783823062766211858356798582067593104291680762581259790042860185705749326479467761791215429760128050673079352684679435811173656119221890636448287141256668624316651973802393327425388089376941852459613402474620198226366209531188346626977655004769599083349611383121323119360955486705071118840424281923211927086230311400510718115094733960993881080219264514764657237606594896719054168136878932841427521014858143014704061356148749656871191601923309003576684311876732859820063363236591935006349188171886010870486526158427238369880390770269685152682892642754038086818102395196066088558283586634253984321493648885583397957001915734850515845004128750298948602629059762050756445914475583805082579574830889262533121929252814315324133296690022288009813127272795507016767851071312574437348392739162413174025064641475954697470628673900008135206376440500003401399024491885624469811633045061469243097556423198070736669662997171004937377388398594230832308430058187516216203610073894813276235670924327073550910384371056231729745184390935272472293051831120239521817627151042340564260189097101871692792039824455688602530567983504439308294124561748561370341919082253142461310649355639642909611612257751079403014637236706063311973034383831023874724596559828988425567139379573305375630195050733761261603883853468732229844779295675315199480077837245796596382449061882712105187942292209585347520710813202416437964658840908925327618330574783596392801565795210751448422973771831173278104451147590430591037833979314471570986971440774878665373784825325251664895256632838600078342285586304433589603173793842434601953873903184500314711320432685889910968833902703520235286351456182285336471213750565204534094229603652025366822199594283412347778583637553460611269859632276662781495723622504231683269883113255406993199795104428040326472716333774356568841439541352622927258138002552681513377829625181327304862710866877074327209418014717227889364199336871957703495734213952051993767455215043170413244567106236393567184285289935636156106991773771040114775449098276553257277324376529903585261084527327730931309042229018550705002746535304475539495594165985732937066780873427355569103241174840287992300165800125214563664200561022295052103243334495236372466994238192015569829007278879943792094851822501313229220464021359101208214466691608385170245744609999007023443415645114084907648298897507181625402659467830114439516756599744871964646877603641347411469727325697179927909843895131761878864747985741769645337251572304657494541303482690329080084531566304656478254322729556595192034561650389542947599643267043156068365000148419102782124996329488433857174142885911589697214846744833367766630335513194368891700955588587105374708371588813617925463192983124359026370384566370683917293493334924681998475369286804420443938413889793498338102064537949456678894428285033546410002948004796596418823702670403252525173865522552304571183564635628264751814151607599754732338285639857813390543668747520090950700751130422559091107377929525630431781609898117024306175501725097996874858484337065574487089010403080972298429692548547817536956840340438679803513349676282915697002314070714785962134961199429176222146934514952906151769100540807429688574326941196871332151016770459606259738942438198783983561582716804981555051932277027418975611994448550159549239286297802325552498920718599885870150395228047284061051395109484015947444725937791524736516908648158471201545750224076865558844626231203954193901163190095022966127364244691071121521464007572765807908226670831604290916527814026476995000460073695526454670712827207965011441984434447599379544843898449924613814693499077253010246484309370397745551356426417528030345884260967516921663489765511902158277137388818760851324656118128161126062375557213734214378801628696426015592885467281132070187231373047904669502262793780034744314248582087554300474031537809156259401047370554185511007153596535221203968109573226204799821187364252543839921082272803832564600150162100578024382558484918684871358087337210890174656132266531273620114640611193132873650596654935926799245088045975656156704718348264082229653183516571096970064964160211309824108776008100135134873392178175994565834856059523468831101739041783517659342500645702201039538529957073035708269913091258881287093240846624473276259095652205001379344946896984915234250212611990383018993875735210938121677746047316697404507181190749747955296309287925164838327104852459629949048863653750176187813528891447329580111709105433619920894712116798375801370257590360134822703400572635971502479639525870623197013135710874326768941438177855788089263478848487125405678077617518076776944237954791257728979113033406278899617885361050317935329652291748052562749211846285982646342566883203137041510396753394057099719242020728229547628120488011432253509934329308245335713700743019736852906362493661611665621441320029645603195250897881270036277005344303898872121113230759629338272575260905560440295187313928957525480054423034067554631959356113107707467299365656678117821636504063255287739174190476908057880991403838513658890667051647072624507831845942241109066384565408322490674297244635061222206289080590805349689843274891322924366109520964477285346200355961306955764978523195864962007915194016830280282606724796375224647430560739204372230217863628794583877479765508161830182923732023741283918678105474534026972051386145844181736740958890481293472723552369496930781371674754063942125450995409225184348225677624334121440616790109238946823617440166739626316398142333813989969143628724751367695739541556675089870426064481669421499332930940369875003859194514173823768607529922408389305435683147079942569491484974022222094065534775283516761153831359530250914198089160471293245827594002420115474849712466122354985078056042061283541821079338892506031854382455682972282360395692384173335106188560278498445236544751565197680663975016997211140677327217977214584068998935465273326732904318181479987718474026553123316052167954048246117421034532277101372902096651034033135038419546962838954862049596705143731527351233308370638101030898510760238193385069136543373245009254607955836445068122218382005096039289703445764274974760138659033033845252908849487835878419037094215809416089882550204976333839000865393317361041714081212144704902301429715260641629083851734144681929078941726923935334115599309586802167851171328690252401635709746353515702797304562402868734756470521145979498152533985642431674343250189284680464293435657725033468008719173479381834826720121354851898470141697861629162011215304788211300967280714400421868686539368598761871506717778519011890869137645222243844639644731469611814992061383913358424193531173957779427492952382938096017638356897203654255350293733016162013166176213791457547468114804009215826578940529112061645276502222200098088542527044365589209626819128651501452170387050871364955377492318723305417727091304257381638269504131998603140692986297066262520343937054516414179623015504968792299822238477742873356393277643709343903189302596374882836061351052111306132340615714715201626829133193867831404457924719450315584874588904283693622018795001610381890628920044345780649502024213289706353021723169095523706570995565776740766421967248219658220769517744937410240956108953409373280265501618913634697819616087409758553464044368628183386932623775973341723252783961538552565141361529323520031722969846210732813607415519367989830879699963919354271404750347839844657116280723040295608042129025521723558456198221927990605837869055982341637037605332408409350418463615688869708882764526918840899575604773315275193107425220598414189451275267592854385243359973180323090422163179709148005873758177223323839683427121521653022963497295361087860265711405121909840077724650664496983825579675909294339006062217949059322369814888582445978288373255755811175521253783171257072502497099010926459750320421344840775069869987358735932060849275063573964141898652499828109870069123076050364805282270353912763664788792017627201348677940009471926098126432450145696942405446366099852855632475685396533766619485811388473132896687355372826977668448884485563963401889381309981809546324639438082081750248670219352180706082190677181738018989756022094799420229986275460760220374351943740003534234728220620338180039898107699693459950905533637632776565307254738917950228194572004787339424368490830231346962588710340153338492614701190682727408033982323530887257199461147734640185115291492242631266812946862705153200029377008577145099175461271729042261591565307940402092163918758727201561240344972227219394543174946295806215975788445832784217959193135645157027608335968987511298033424339670426011599079271643253212153995393036518873100640664902784207225926220719050978054682172554212399118443530107586848957495128241014881273415700871945885154252742542531813552285975923283712596248641558675016362749157900608658745366743787781317283955655925502680546438893680972736416006320062401359972162559134180514725242568636707260349814933931593099996563980120421749277373756476163525007097293060625460526317746357399535112717008142420506072342486231084188252796487713948663841237317521495568422895085944645994674008407604632919319041223000366151296834553717792586617481562791993628881224337062700250283459211489581510425921856136437148527052224294214407217908545602907164282737746158555495876319259882614589152878525549307533401166452081513862615171582024888320388557322837387005176558742635941686991784005058204884030374287754175530076484604059738819834421189541304429860411910591005808290842461953566294032167834649548371884065747616426096619317369797562809362608944149929054263647346596022941833679170820004512999284913976306940430441609089968684781089995682617442520753576093184573733189500948666297712587438389790712700514281217325848381516258514323494399631164152769656901076476602904340623088575514239195363853725104822530094347221889143655145933440574757853881332443113139058997825793795150258440802899226036274154933173475884329241893971986203523875308389469525156994406741192865403312576852996052184636218930147414918035632779678483791289189408610731224805551938789942999491678260258480104306111207141089908823112808679232818941633714915855630544385578089740883056451669896935032870496542475462921128045685971346826087187160271303028214810201599175143945363984464430814402396634296413741812674862651003540254025709013252640781491293630897967780029590040690215782431382401211997963778137594533957987456918261556060267045284146079183723645342460850031207072177176693479936129671318529731844664214165770920930468846072095658520500375628508935971536747438531897994635228935644217192849751460280820655958118462646574206353784868156979323440879188505530467211626744774275195964232961433392507589981556314405622130307341147670533226548002139049813503235414107578523513167655233073919556131108224523160485767672140454081190890164130810696920954623358963459310816067477140274576557700996475773505880089882015558125735833806024586737129509194619738547562479290324340992878576634144091332767148156159731333588945208140942426010028453960374433918666696518953072949924154325071107585166047479676624574571060076396525526100120520680793404332649028694368432272797628717243739407960621654649320943497884936518958188842959228287796313952139700182817329959912487294704681571194101321749416276944636446327747316289149870729064301811745893245012833670106622965342515970857858927067871457309657681781184596782972037132170360757291058620486016028454228352011132682690349937806647672734634012616225678630098719667062957679732075615752195456782406324198140280650750224826823703336159720162734514352845577839950467489650220171806147943167941797330383891842345187044224718286785127247774036499669691650093652747635742016958083704944562275242258827449245377446309441076558242828932462893143785874776780682207307391827914333255340214628223040563937151170895808404416496168918324283247885244556240218046485052397439547765021764642036932014983864881012086756307064156189188183751352172614060803844076528317667913868344972623753015142906968541667339915259710457443454113702206535107987262983612083869471177301439593677647056635050362766224887332666847005891577145051025890085398208432528357499377825035770913037653258035547913559276548092254781407830148214397124459723142942546949750351285033623669273655101261006264104575611397506088217109001580212286649177120435628468370745547256706764087424887313654154994284118864749833255384703690423237340491337650359836209041872267698307947954505168290343430567322961207282411504081227499646539415846977214645344555546929813809843062946370228063760317915878229685860349688438107065614561463605858454697693394354345961950824247289207090563828411178722791696422749690643362904098784442167972641433909643957503307167632853827780804816129661580447510222226904830511140819875976176060647204038158568180375961765471292128443404938429710207826637782455184760756463514371640151378312065199527341872533162982884959034910606339280710341825424963287254157530769849963780600207098635508595266955571485344309351326442344179235968414769588849597789749579840383846376219034117638189431939701546826893270354719306266075899758111296241330070461608510848362199010102216936766611984283575246903908937760441167014076292308980779190923994347494783598956950616474387127844613413224544645688731570874603538977898520096110808410452364383518576270766778290787809409335629884710068712391088858854059505818826276140231074176888369864732045635358942835384671547776744301752128033770906688533618336247518756186021823061944777918899659944307059732861336501355156925588973758160834677069428216350809243180167971081604320752840425155199192802041827537855557443611955151410745255357887656649870523841924120331313823727097254207226875022213870493633062598412979708481527127793889523698938632593240218547351609779392746499878648488367835196916060143072086755913011521244518278277329086476291857446980811954756437479743467396482727426182133859881376420388261633876402079582986254702622782750644838799102486689536474790368114198300765708460733336233674296162793423563437348684406524119704036026871514584936309285968023179105637622039702098337857366894281375317177368106689274734616506605531912178446675132279615580788640370562268834074741413931927966823473000180874439559224747229785284150119799698877207190452284460045473379074549052239239081686649497603710846714352753722129478294227634225690905171448746961063810398960732544530545791745317992492978541553063370107981249464673133243281025897816847657725527121339986721551961812498044558422657043516676042051825684677256010237402611051522696492967465668461142649947777829935145145753612658639206307211530783390537021268329235098381118718621231276233717938473675542093452111583133007723513140050705370882598083282929746011331017522126388557167017888254277972803973239316593806783756654912468107424224245367339774836665745760928793106479008855370386746092487879541251303775020556090558439824971230357089023344965091965288036952585128151925291186298583688160613396709611745072303282931329262000882517937649066994823548412254413069891626769062755318723056041007578721109446407028531567969957044863203845290230487343843613947870081653767217579054934888748770238434845755389402866046881957501167794093558611944845319668054074303587275283978477782040738979517540486984096658551445334395768482698512976187468342747657292629533089963045885864996545110935854760647600398934672138528386183936091146648722997480840291567442293113685306058240720080379054955035790244123945727188912982156680415394324048364526631504140005699298165732968105969437687272587827709332520439452285998756054009308909290344325121218332810889063234739950114592210278518881630446989518593548178046268656051500889953538919126812133804923396324824056382536402889674313498659741428661728563132008652783907160586224154495353679440425929621005466553844361132086451621315320747713571162158965444410883938236225846233036017246201728657323942520477821756339759542233932265880253481225358357912241355963636555132189584682123261345802984319622095673708350758291478203162176534564783107849099739600608866535345029094418232446369186584522322331667718548069507822969979257323616494456005025168645528779411988830200737150582750936549974679068611804227379371560242242489115169589643852742214053542491241484165840448557523426599591180815061150112440160422690265118158039006812418665705253802139861498060520611552700526332493827108000714504171734260917651661245641999264172245174375071565709266069847076405250778074185004481779728770319936091043282071672782410639763413494664950733605633973509108698433315183346879603817127753901228913110754092758685511675139777481362363455249807233269965628119702096284549475125125803915117608153543720519734576143186202465269910925705418965685829566818761869141088189871707972407531084932520667456324947088389489647820250341548927470908334218803339663495705764350799934878126589792049326525462404251604989106254680787609836569680464883871389115315610692632613493955226319224141953178446966829361778816999567086434950263720371232551197814703139500232767783596598794475360034658561787758009625334262106843046723583197218666180565444048549659653381062380702196746898906993513487684837271392357526062765030421703145462161694277280108112114254316519792198879520172805373349912273915464287641793692876903558008291901518279806530962932142891846855926944203851863930398833310119619597429614532510051110327024740851846383645342685576951100385020659469986040292008864470753930379373668496065632518571086045301068779665142004172451792598506961696065860664171566889255353063390770241693888071936661968598440140996169250849266435706467408321612570810250408180302758039848858341210293563922464677541997230094240889558587574875658293373019861895197188912761823659865687044665516208449561279696961483098119069164851550754314423975689353090838701216241282802216101935146137909426318554201620023361717488775978477804710502608166467422050141528297346707349131413640677442179451294541430100324914217590113706519406820396273788016816069888242363603083720255718037050998205456097677446058558619641501343548755383437413424282228225382318167699144769176471654691662449999888706829864183132490093381060441816721002786938153759962850098730951487474739432870830230121276080980310036420388185228085520375945295221106922366382254879527809831909509891422002612654620909225268611140110290880278618060618320393556415315691818865912718627180416755315669113029300586487799018983484869513149405637254915425760058392245906254686005412883357497161010512666302393739034643432476387257279213178483756574258147706178711155423176094578209046128967001826515516421983593439806551127531506767461629638536883092193089692035303680964826316560808555771761522937264058286672056967648234092144246222508961482803243500726430693804284400159374453183602533952033034897914551535217615597345532334378402009135429704945779110704167346507389876173811692046935761519242669722691828471948636074172645551118477641300421492278204655458577244016616644671655358462974504759802573530245502804545942296819667838756034217773682378739530646774729609129278891879485786451370015334453330445007362858719123431946605078570638583232817729866577031467450887456137141617421192289331780367596638560228581060672356607132957308586760093266774857406321082623693976657833334245310322966307600735217096254078341577534058456973644595799727175430650306868028140136045815816086504251552653427692789761564787593608513064212522190029367978218543722180659359877273746678000019140785102957604482455758159503975233838828068474187389503469460075416301508311104145273679317300062973741967732285592362546111022520967124516764838822202980741290352238153779133979267263039174424929222997672197040227777455225830331464195907372154941099202270523952614890698328993105312015723452290627791282662435760223112941921470135821532364298828897022623756885295202827615470468551830240854671349279967140351432126362034623137560902596813651593339669440037115738779987228520220924447409780759874364529292378146928892958002591768108218077061811874760827454810866257529628277903527560697561906207114680159325246525582800725428359320040495270777420312249905352329313504850398651674451306261486773810097359313703979927515835224472506690876523384758060055398741185409224350361895136256051709874412982480146854440511962224143422004907816970985501967955915527683144634215293189117865043895267987787379958293120780866420641045863301194834159524203049460891505451401191952064949043931498788581085948170849716674762794933191324995332882858114272722921896336373321989043928014738081504374334878323046075086545252746347522194451951456511549405089388354035364310719540346552248471886243120803886058326179347657245310750156838990274965369757233825500226603458485788756271499726174286495061022634228624849661021555577606921185750962017537660829710698234051940888158016128680881659198085258164976190215120731187121568297426900142454707935898515067702710314882698906427658689286174307304723113774956453526341786613280220506856757476957226865073664416071129483145605265817245150345396199739201514162514062260801335448675277027458818817764349990159587153076184626158543488517961140417231054785494827410945420408026612032336897333159225815593903670821370306446696375152693430105429369384640120535703313368282401731016820591139020827420795024080997820848789194011840229109975844825918498810648974591637676641175086992827441052064575163194979828582416954494428488632737228978079393777772228005500793321693958405743060625681322446472872288561760906612171563318661661040551747331989198944888507686548999676828236101427960975730519860149326876460723844691187298704123363671061180859503411933227797132887603957295875125599281656984548022301152706220510437189805230613287986464971253306900804127416460627920317741494189220731397143507140557052978040431582427046028269251197735154666316410992816723605383299665852127725070127088959234534627523453554165200924356615193530989617897489676720896128507106629422681859669339731942428819244989773384000234867966255846749367756451252223849473242361638307786230769838409481519769004936234450280986827260488558845651901958827799990790769405987122792604430614160167340470961044683925159399303366696621605938542619008327683083482731206654876228517567419570828196096105179743975611240871071868235800840517451669640421948709942793684754012787221627172491848211067070777839839625188132104715431479461975708409082315889714572739463528291014686697350441944322921768008013012765752969532905593571986358422619474109226367309580125042111543615729158698594311068566731995917104590701440949100285241788495510490933606639300473574905607302026502303063039397164807790884714834083166288551518883238637802773930956646431501467313382058607259256531323702228406677619158772334394409419954260305917511983679839670737046755405511676008143455502073192606388279799817114346940313932517529003980225323040364378551729556842316129056196059736498369497957013176684848887862488785445294016953457365967037424313246791488663376294236171737690300824017786446342767137479364198814721467516987349202768018686461319470650184163603558835608759604531738575429687851741512268201337395318932778280610719859451461268427812612807061265539335867648745981472212031116647767361164819287690193778585833038668198191786285660205644856304777654310882965578079896666075586822844488750820419397173909484865544081985684432128651983195014627241274280094185532203884084704967294141723692896223294736960530990232622175126162815122776571602234445814867897818477053311545146081197848796041387596145499250994619443430805539738597767316430846730900669440358065849115528627780809245466988306243324087612489149984424910339975222159421638188365281510561350899967761419039963979985607720654064178862440761488645581087420910972855962306166883536212890680699390757835183350756617943976950570768677711934842231433401227190519897079234129697445428272516160313930847428953356533197818214073943893833708767109661495979283595398531099779982573705751078231475205458179654923891319319774846638636726888744721879943371827661417752392706180308708360623520940698950246707112908123610098250486490497932336948274460579631284923944147538777284643755353042775310413359922544855530105248856254819149848956423508328165878636358140998874528169501707498148783885639643858896234082924800860396370366539756130256558701621708778204202560477805154283172571458049432520238537801049086744613594498061560509492747049365582246838221575686323378610902458225698893501266321364050009947559046156821727315717645215502012921116538449796423535348961601786203160596284519287147939058520618772264501833125285818126120495533159698132299343984854397901809422202731529220693283968519090823967212768457640180604464648529657159143843776729828780870399687132939135090705684866520071058575616131201601399020125459262281948150057309971906220702834961329260624584043577537490772116097199641706012323596153369823015371615414633348066412220267409110198916229018997464578357443497750246290433085985755241631102332747405094010634796041105170370569289838513233148152020408030084918875515346207373078756362985271568637789154669186305432358402294520951342468006611492589203276486155503122437563804377136350791152377248847571083259241189102056669325450629535516215437371730652969213970434814143299717193698007857692349125018927596964467890184924345996238971792316454005566603739882466628956365136975957525797052672412711348127830577106753126413590886205275432433871736274625709475095842659289585411305813428815967224450281756121521154323669934698854779052774765170842148356555974229128315126457463284105586695870824611812531955374024056848467257121117039198319693925686472801550100640708666984213714726611440283683467084625493904417484858500445980160233907266441379360077187788136458005520209153578778503771795535730754226656514343254554188905919909484502535616692771874618364218558021200803644671924124696307857129640893931219905029464594521316336539908763195827064666464569866637102518438267020067880069116482770641882193327312889881310202347551998371581767695244035573823527524209298123555161168013683916270290217684616835453247171463451572153935163053549002934252933591950210741737882759680175925178909182100552714470511782231240165051697790671729115189001191526087963048163783639142862962003076590240484983612507506036308986533990778582228070300200272529580328434333371543549765866770615170326273096036400622185849602134205135396954443189055621699931702860308198255736308726948111499177208128870602915795479798101359265186837756692569607657215334759474357095647669629579151343840493058452707309901047149329398726151109733005463352096971473205563356427903798351333143924236037379803891446112446388049543305321037386719244570147913678163810482725892987362724599353194795699703123236197493105824916692343072297320651929587092790330455083960239263005362045512749741521094590992061858987592100804090652289841839763211798596992264910476149585366579345958181381996970814116307219016650858915748383406949568251208252947300535624442299383927067072262197683916721048910407728477770207402458155656254860250124933460051216480434546900659951121683691196092773345334904383073342238960387957838826845628068659511053596675420757548069478610323301761974731487716459842612845000893855195351886300720699086192905119970554675795797370686381202261351088387094440541683714692207517942877517149112350170521754312193014679725871984033809201885493553978094718933839522142984651288566267907944602983423297227111887856769888792983438621725701099073568270700971866960795822041822206130241040428947385510533777291553784272898562079917361844747675303744438853401919372256354230895223704964364802192825913731311745593716992351771757329578032793991415840090845712647522788746742348700302159429331721220805971385441812357414391865392431476503632571847517609902801383187986587155312292774965800859107391603358005798218717987674301967804835452880984787937654247407942504395459715107151280313973461560908306248372056423827213914038003569558117153792709794872505770268352379111745065031352421642953988600384007948451070763063330676003861645155388341369210316497189160065094702735506559396219083960048824454116034803710251062641450044253558208092195934932573869139244784484462741466512782395199467056517289505915477455208164404466747312478023666968371722335726624086575409903169356000438865459117587124966194741857841003844180666650177607595676045250265437013029196354952358079345685073010244969733302822830591300865755350615179880950644701122918522964806765802873272744039503093212227914436649846870839494118886142649348805929801752181541669645281417536762263812053723526129263379756200669354645255647654395926795447488098376747450319581082729259358762706876851100391702823340368328147022809238389873016272009198046910081766856703216277183667083925359872548434828696676665517865862809643315458808026676491864657715880664790897007323450269462124988420110505212247114342603693678238864444536439092754623264886608223071087793302441576389758861822188034536776656215378643966436918900956396298897998215499213109518380398720352128987268784380310239078575724008097943238034526928190545307805926956854645932748386334786565029448890474923927193865390269148708424549643377851622994309851872998000883489214045193330100398236674503599952893706950590155450817552309529690253438403010048300556310628671341880516454683644817367101380083712273180813766661715466915220223926903373277320350722503154542244855773593361427035844819699961073546176381374464670827888765941100701244543852670158384289825558802328717833813450578447460740934709847591056727357411824505013330453216224210530992590072353504195353977022455665760410348680198186947607022158680256310447664596762902186565363869166999988824451149757801992567309011146645988623707625850752564578465743515758747472971054330328905911057646037859990527965655259462489436615912994254008168737868214964522662788645896247973511387508862713356201290333178543412128025827115485989627001225220111048353193358630170651168208072178200716933058359443897545457119357581410600232671402783606394236824936277586887319380068593756032488949641524919892261855157717309488489922567944849569098183981691490487745837696029831368527089564156905251683287950438156737329290838830156880482572841911604246594593944750514352679883792645228393207084782719499881708177989329979055158748769141851238372078433073216624184795521681921143081436396377692487719981573226983904922809248993000900263772596498374831972409566904800770150086683116623206775078069285412007702364300551804461094264513842175837675229602565296414217007183776451230908352297969248232857964319390749714028971442758569889233045221462566980232614818993813623334282478571731171542608353284547189924488662401925168022790148969236720428144830903282566918751681750362727483614088346381620841892798016081764791488798061891105218858462053187446389522568694781991627392060892082968314623690812075714885068719342929857010529454481328143153286957956919849430813102861663902318332601501304548034953337723470677083125756555951760189416197273199803676688253907583648682906644213600448778548251001198398451369400457472891573529746957717552447548533494914048602868448346125854910571950906314349240490145386853745952059869032349561808616367831794964097211982917994866850920097430780100631768044505701809551188243487301712255449448328744074865879328138683293310982398709076759526387958356736336462068059447488006134064354521967701603061358364332183360975248265671106047890298201611641845995360882552665210861229173196097044026953204449887391952033809019512061540986468196732287512909794314215769977679160083036782381505143636003190258086915310033505455446937397572536302963140692078849832800973887632166766248527170003463832377575478426766553014580759682508369495557668551052518690599927253513456241833702448751152433404504184319425141232192857256678702822874586302871083006202980904698083187657909456510408783839767138296363960912484620529810935898454063472887183263921571267627266104872935172096105175792391126030822949715724164741168536316480680972666157777663019310028527652902422450341578313582531567623947359641408751863923675796178299985671637666825869353691456918305869350438889725500544215227202933843194566420960875817393339570446894426045894425740122870185046322328416237531305856653313153828351721086797026010339407913427473948739942100804008983375982043337683076174746559869658345155287479021087581258340623211406395848133248311161020989095492355767050931357982199973437085766179477234879440397351409542585937877638344709980117295535590114365281772590827847076132064759174860277338403675750740642795470980658153467202924795820203442170578819191531847915280239001775704614056283387832593506225220670787143951325359962256787223414267577401825735300110412443290336335992221270762692957414272464715873718486969739819474832733243198917659625470722109840934514321921021168841506042771009379310922983446914861842169482695405505156825883680631823969134338337530258921757583274672393220803939805294068080884668815234890425227420212748010550089084145460608191034581068092334673522798058175013841416179224568816451996052293730737930992944572612682411634756729022611000641166488577743019455468478161571660026857022616199266668589506206365014102518040607525186204029129768314288869504423607482173547047294403312837994251609570617850647009295605745105508036413783795744135547898552699110741609682927827925058780232367588343408312556606530681721091033237572218444925643827787234982488707674960013833637003919683090775126962857926991699580629607950827338537260152269298769537433919283918532066475142269152234507364847930593418002271515435078798500217742451770397109412469405997968198334320847493403531964542945515710424849909915459937676504826616139412942837195986487126916423146387316116864639585997165982357931494401916190572595218544489005734694844223986259594089101178524432567827035016308495394430341335932123763723515890536862658266123021739170713115834744092797460907619128672978724358230916043948849165301151075981308679261562816530810950068135157501948105871660565254057854560517424952824913241920371753802844320234581740523524569709029979570508705028919407480902501182619940954515199655154118307109125099106036709139428580049221825530176506637093828861072862188930668154338544232541735050886657537526522873321743578579449248266906266934544475101949335429060480539558813374429430613690868323955754445061751573999953542570152253443506721174621474846118962761652971314480407236648187414115548306836771819063770662138688658044747356758136757542847614575329752723240890047681687895196086567760954641870728904086188391532188790196087283250635510808721611119477845300215874639514533731109076222533422191680833334865430177610000198481125727108232972376658909119490771481629747749900481287101666855122483272178060356560413857631922677507892083358741511267604350401325596199300189777296003252237536090940475675942688130465627869255597804561694148688211570434734779504520336694291526290880723772432869331311301859839109065434550922535480956501061657297592189766637816171369562354775483297706876761573116915430859738819317123567548187763204871734618098349102351020265861446381799319970258803721881388711296188602301312444493384098376680081773243266122019985056797880378273730186332540832223399955991384791539247648047077390845275176188791663295768936840642633789997431857999299203422441777486666783458792371412141299661848123751450347120352953551112315550883533625164276397447862272569164702261329690910145952589929527161365398752333444592562981632543506830079912342668382912687849881249463632162059415103552572070705370531751830753789262363207492312266423303323309269890180906439862455992158685851293054114152207499964571193147947788631968181834497943760368530954719686010356309120915828105536604799451040799955343878144384574472495309465377176997338481000332914042035675679363616439457379006188449125740327888399034167971893213721012495800347768669583003736021766461479351187521088315101939005934419152332967002883317026497624392041426886998767859775373747847977743103040509901513469176937564385164899942358085764562183879621229395634530866124508744320656411329135129989033254390262531537459500020765849634416478540148931730913000572509251511366947112255657021693939786398485732936694473451666353372790584425792444386158244748022700843971527326572995418959882073867140099551866479229733009212034567721089727011447303876700421136419138225104775290103856696408687241041999832263991234371247616989700242337042349266025351885466026796054817655570565762244544790202657226662272779790039123235931554510393640910806615290565955670401961547820031049421770141374749988902140250088023386077949358514584239438107891229322793154362930014832571847579071217695722446075045335550149478775811710087941343910450388851610102189590093648786902209798605813017297201367096581446063172666935395923207276726808942493065027769874098082400966600412527288329093174492675088314998460116804510134413741125674359479819861937848385596476642978757278394457407780589888674310937993153553661955335302775513844997013213504948291417267689489860515452265339064991994547387474879302436381282383805877332544287487535092645606428906204764193549350061571491542812044499323563503448930423486042991797637534698237326946526576477246090966258762270214784010072018589263395453831794149482365009637896174072319885957804218611530128052647207327010878900964454395928918636216068675181014134681914183630621381244786223573263843849607009767509307556565816739746252604455978920661734012761300157110833213888500397283762502007625785347982382671980241342625898062315064422013536375647911133897371815545320207022911852700412321493476771235946923472484748189786431598987938583435647804113215075139011798114473099281780181858741223612836540630797914616536139030751826900739314584295405964525940817423574482008341263114707779393740396018909639786385118339772010879080097529748477595438921140614603991933093132276997354087412579669755598175880295731465424006430868511630055262892179010306675664893389475276566542879225771551811217291421274580936581463538039875911360918700785793063722014063793345329296705069689402665284523469682710953957392353094124184283311979438258458201598910848670466065466110470894174407719799525092146561701485041721511953960796464728410001603009616604572576849114263291680411718961193573044028088585444387468571394585002425265626227440361052440329854982413824823607955277508445767163926233282583057756472417085244204664094453789095000010339775888539858187635171724961953864974294805619212201055634421840526409293892676597895032259311592318995061605564288988666233060732393735238712007452144202569576970806795772318747056522138786466943077785408774412803396684583227238140291419517020809598156138826491022706856000648275360007783720374998197638355999747121599030702229379181015744915390508974656803853746010320957267160564339293979603925422124832685980070352057338318011371841378279842851103988660761427494959418860452103351333696054393749159005618677395908364268345385337608877785143186608813834436912544631041923739043522856870665474609193643591043060263095498502557262053548681539261360223926046522006520844254206338777981915090696216973240725323165797531216794533452082181444387502499195524698111924925145023615763291461247688479453440785859359686879221476861699375687022482463290614124842699331630164597260216395271733979684299434572917550169126302127217579615062596521920164234161424789639600871734879182506263195717412338966814468393280102956437063098443363524626525215781433523283206605774492554269672483836669017862902703095216099392310189598656694561613650919230101414483593491741303336473622939001917982935757935209768926359160418997684920414019389212310127717315287524867265966833169497297376814023036294221750635165162787109787288493496662425225578124080730300187180861685213000214585736521545030826977924372237797098493134338244348039136634885681750708981998231903450932982613243153380804946505647703818571848885033388885714953774887603842206810505993332414798413131653479577630134645167858934891563085067320628166141100683453652565926321490880633111277013083246048289373247868987189965611282646752568404151609808726104780418412094123161356395725237208062038841483313260220491441821045095689934402714990923502938789000329428580057128564374209698376277769238011465114390205317583463478260459358631391776774895301806901212041962044497022064250322285934938044965856361620147360961504327548873069861915627329466846817078991591153711800919550152033939258064445354229150543602467696816794008964113349446312145095473369676001072238630576192349771807523902489232240212376979874237592915594663564737429761668045361974294589285182476986639046049999197791319914130999365225389252208848218740982983129861285926316288079142315958947650797948693113507693563838132225507728037753795939040473349384940488009499032565550750711954414548095500140126679984671255501109653635245579408381234457725235216801949738432419827134362921756598514902770264914796280015810668729673843723789343552098939874505657300740020914454902333581736770081903430940307419028461465340550190885470959167554509809760981353466653020713397326072455793301745022375496306256899591602038219457627007739920536561322007916821192099530709927999319659898636633583654365635696505785824301137479708289277471775877655322980169533826380353385768320112548037773515207687867210723210456924688683080112787169345362443056067171581410260593496691625024673816343039784744178777523015486975408850269617833174833926297689998797163377883517061964402168460359550388460621889046127334485854493865023715647350755212619503503633326620365076593006742337086944916053982776348394915154722702310422954160382823794874143988433099189015328618754994117500718434036562508100515984053574819069627440356786665777587300402592127588389760822872452059811292237979686524827195417443842339523069875905773448410711984742930459373798762550531390978935668503265013387644833077817238058086479276927111649141148358680472056444829094174518308131416761706915013560852496002847830079586042661910733253452936783468331283898781944712925047853604649937374946110001959700073037978526659815744414225039615320486063327405506915490525472338317703904422341165370230245226749888163331528166145041712723358401645905834226146014384077412055077343393865287386004748983123049271852001954640422155868548414914211114340222479606739834152498871108829515073127666913045996343671239411825388650178442533233167359078748744333081617578986868342950223440135101799660378285831158204207515298152028067224811716605464438717003471043736285522669399880752018633028369134318386579069902847247880844989556552399155435265930255317069010607390332285679666471862183832521911455078512949922767054795253482523789020554518786072272890299288997944507872586563148588466580121716096860283171776495418357400517821896752408855453633811849867957009542770867851504108986516836120603397327473985561203856874172299436934679698896279219737475187351843105787384623218824767017865455100443318788535650256370498625698518476347420490508440493743838645907718905116946876777240480768603547929589580335487471167392425047367122785953197440199110798952280841586092270366093671695688310765116479154817529654995204016287097662631104777458563959804765832593466731493044786673922387802106876482446340157048476545517268783235780358340792965862865761532952591992591144301363653341647988603745451200608208150556024201712626508397813745793103650704698002973788379904233346521229116661267606946403128560509552801316246268857460193295069651317428991966284542910885304873200040747412380054217023030759216173183280320230372956849179130988434234173547094023552379642992330656900790931172255571195133159986808993837863175333957038869958702974777448318040507728833074479846763827347296328978045708206226754682055534912131805846754112381100910422217150062235129301053606170160798081529136888023159196029089892894668264772424665591075013262680931990429009347779270663928287529966003493068749564229463884060570783342130690055570659718734116914421626160195999890048801137873413940372500793126790925185244183311969828769908803956333523693276521142065106439876502575296619366230557631246347431355764063208957314505792716022034011354712902774842558620466883050806722648816388453431007870649720010904665746863037293663907875406867453754733787229546579791761854473733820623760425867919362606623500014041222768156833579147591918276232465875117893536369837567377302000400570528570436247736620842218736830282852905916619718067843776381542734499948089183486505117684914749870198015602994108839734518994987459726560071945455326582781354424518158925468607774698350248181664106515929450036919053954395627493069929892141291480135454542159577039559710597889654543790581651135580457179015549039836882622476662759096835381591613375737890774169090457808695072372773448159766472131972614783477472225591357346728268914834286643535433957809964253710586850184685697007050674001453617912720500316042890974467262871507765925819903735390934991989485565010630483765509864685253920175376690923842312090290636260608450544319869522415344546355164312167369859616537145822999734402045942736528519084441184682450715539631803854089254419980924443045361553828764784886653396079185351006361640648686991619197545636600875586041474929962265240736004043571088645684105810014457574666569722498702574899673016063606479149669728264463342033035514543516709179828024282356824754793241892150201943406645383723459695861910842344837996388582782913395224773990409546856787508758181296437441924485507821416870686853847026035901015695050712735753865013021665974857608001427230463517101511114988553214840757267557978771540715984962661159634410288464768891867205986568042047249118888361158540413329333706688861516512787930187661870221012754579601514639549664697340906648758001458258730223154197392418687477600912602973544924840464721930504900534200543839777747204158164947589972451309393421941251621586608001519658073699264655744293102008511161791231967914676890985227200889981768599486063192195546750210069416198016124260865385478201884160756506836407259384703414409793903960134652426473825989764038752248486182985127970484653947088614296397941939232954298631704708714056442504926836175217185724861771869664330115538982507094777749765459935435498098046985337036919980518240837126872170666362354477278203075274015835516274094383359607784608879382426730836878613782281271685262494250030672290233010242254473806770383098918108463025300092353694596330062905697549455769006914469972893057129665277236659245147238449836461590887434967715447401667217586777991105292784425900728529110191182752841367722264849621058311033563576728009174937566737371530796664178633082921462781131014456970153880469381956666095032652172553011999239124012376336400747731287190940860861535205533702802214499831779973841129170435650762526274105974050685855826653603334151354847778532058573983689226681400361984103523929820576261652347851999549201188005136335625847849392747561907905349037048136371590349696042060477824512643234753689033859860458040809639515681577498334996747417625335184534890001120320164022470705025166540521616737771028815687978909201993706709217028685674616402501515393943514607901012038498431395385890243238835235413089936002329301666506864334575945834802483405428552775778598430647187761988981020201963610759189083245253645796978869061105641138428361853751929549968450045423563107103115451522729254293609814256228508461759683898544433965163169254623919540208456830593793599652117311696557637914772463429986681848476380226376046616810999556002169898889642070020572124934387847288772997650038779001081210136975859712664741089876524220068567665721823441473112689885305154011518592439873687019568791952120332828507197565539408102565930913169965366723121046538678589902422732671679123793549551080774754665268145552440553651488911659819998029528698219855577970137706319951150522655495039670153875976610398569351832542780336001626006948430892606445935128501825304430406680463515464010893971211148736732705785572158589878511708503080857856994387488857543976034907056354008303812530908727776538514628732983456452010015123679739838611241862140506903219081046773777627106742462961901591533823469761990081127246452928939913247238999159450347091418778342110520363350204306915249461798134785161468790177725648599915252485452172558176232907703106284040600285603228123922252569885589589568172042335034001404689598200148555792643354825981052807130991867622566492186314669279724526198117526965368682335545445503856481875714371245390465997157167279408361554567991547718887975238687529226245349394602813917029976131826787250297678509454725743656665542827644313085529277243628327114456210176798844353205460448492170315089119646948057167170670363074284435016796612407634882704613688657829958414426604635912644299537676918778418473967007471672848119116380357174167817120641145936035611140873961093346455589625429181842519340395939239474412594075500209799130388940490869950752014306705106385216943798741237546158672947877177379850829251777155956280412962176572949111742067028642047502251024246655084282202894690750570503246652050810727033109830972263257213025795822572104170182478583469846416286090246448344466426939885404065862234759398115286079986160360954566974559743147162104617490527750656890965537655374758397767854723881458443516627174713048118661360450739838257123276684607334926764435682401929605519951044531046600040152314578535007064841296360718470599541288458491544100745742034594746231319620287251319873183187116165641687705203969271775534524474006441054313735234746936304260639441743277137970537695456542296305944356738798974555221891850865525482664883301335520031900534617503436590878402994186373349349295706827257296806868383767501958358967404180618109439031730715466101938830233493722995668371777467340422472440034258104629970839004103781450005950325156220769029843542393377869137915557785340423315720502609044872053698105914183952087750206789814920488312576667401560519312267168544324996290418098234808605998242716064621897934387106372960486162669124833572285283155095486269074455924935681381260765408463238150418515848945444606557452432339476735286574672790134611131196047390095954071677978421542709902996131567153566785475330169444920458491606369866638566810031776098440968996063425094233646239664146618196088967581483459709150396955607776950499997992780329191032853553043490795881474623811516357286821072680538598474771871101814059024066128856623535925178243481977046810496387787414677648871653816932345284072090116509106142567810434196274779097946946497925909824798907488472159090044869960141646825703394800900279846795045462842051275706992347548559952988693708130818730040839167310969041702333161099610930916213086064956630344676373217726225021636408514041122846371639200783409052082628061284352220492732851975461799401544248028387398645029048419949045022673151994562194697982264847234078932455440684404312924050822932700418864176288618353770145236758623602440458725882152326628857349040396451228372548244809449397638631556612857028912350040383798159050056215922630887811535685182760115834527485639313768033865966495598508832507141963995198047699094834752248268160467109108322456711942156700094098589051948018440431812274761900503461609782237119518884532485845603557498258119688699375149633786254578596626193648167465874903701553103611882907604185485607335825177885021337329283918329798146544048468413794822179094636506309119099710045766209484288227605499850517545008967474432831567774415483396306371939154094258892915741276394977156148012269429118496948116658721894706118365529318317081394600713803315750213914576125224745538048713173359062852771511706541971747333173544028765974205336032434562635597131193895708679283196174752022664343256232674110392834550400611470075880061433796267186381374613448193621026513726973895652807361533772349880084523497657931744315867846900027463489554490091228138196238029502781142525128265384086565505468265138083155091883801200444329672830235725344143005111725009643572906920254958636224068499874923782480646136277734988893041192219763242114079459301197023005317179969741922420010698728979911091579168517766464630894574132804573651359243351691908847329551451378528222010935780196708651252343766815832193844246834151404753522144933822759712518789705502189200731289691731780822555547233658482693180426163990161842490489042558198119995945184638886122809271089585460398727705052002171364099116124725812706481790007689445386818273631536646838988309227751064691860931775982122426905592419218088243919112999198358856661080163547052440725371428169142805930162508832700122686158465563897342028847989415266200095996812236215338268117702773952612126341157979106182611859869442876279960981476528574355361723600281390993467572717782536431508815907299953173521676298744589884055899590817012595866578975642794274709895222699343072950516356226324187961659986203367969957483430779149302623707811225206245636315523006611949135244839797403467038850221684555706918187501013178137113646566886347358570568671209405827267212234551848118653131668790007622850540689047923473942271512575189692142149072571851175267422684747980778364930303189586913857129326984448089540366276903449487628626533142436923248510573306570670002271542571601901374711742858912682147150058554540651768568358677671059699455410703268811469629224083436930837819262805789577707019036171342118576311197210191751300021223500116583437806389683523658456400892616844588871867279212176574005903431685202789352478476769963540580152012621931628039484683555133120130998302440836274392765818484892104956447579225691774888941983728396288278156135999808039717719878808685730968116933559573377359994020770399594468714865180548066063971149226391352938341224765939085665409780934334599384006617270018670380067951701000172781456195589745207413787856886324009251517412830127557336976188665424080418492856356167396119364436810777287604248067097852181804955977368038183625354790423608809356772683453034859156349520958977162229313856272983241344631157231225270364565474506430816479251128018984585320506447979287744026580169671380073891055119123033078145290868346049041077349151772688503638655014784867897700480383103478747672496385529787732187446046322144257538275282187484253068509393213634608373912139054268125861146555292758832957511588531539945238547219556754693760890880734013605663318719344601286079502494212883951484656047988601941202589589125572646387036213142165791826328907370775163312894618747674648747489010929479186231338573116999967590586118785680096561439031420151796824949687022756923834593088240216767138326945154192593624313766135709970055622318887995408091493632859199737264784251476348850530043343681067940585326034160539807224939617575862982267843455749571199779987788482449125941030948133845435686527708312118979110391201446255063904653517845293545339536432492510755396311612853668036545738424027620922613749034081273847418494706257111213787065089802857810804239220095831832248319801332000861019779189675679472964464106493005142002710859396367823950279576485023423005307296419952598404681588307481076285065715310431031421108201769795086882505444399082334424210099742431817520747835478839733440902826340615567123231475109769034638525248335871448565291924534533236807285210071776657213823611892847942731720944352244114603256447957514243275633042196707379224242094383847478235038544086931779728512490671971503451078126215938301026177439554633452347671531089425538463802001738436500009569295801071993472049193143687812568371955510497622418687578033107520986590491464687985731567358041953137149360867452124323114505321605398440013392960876049032010588449098691915648591860311085587644224775897309595674177410200730391400074797358250216725245159168046087140328226380499928682238034831873433595209777335991636922382468874907607927324776107171673050536201421391546993929765422015816212779917341192728149970922830121796023298071370131629080970053114421139905137958369148509452732189877881075815527335040239334900208611563796354703986855752004875518089604080153482119594140252342318891969348250085322049021164533947585195262483511678482138340971670986317006377694666334493660774175261310183713994156961928126277522984304030680346189702489372413989213826829757301783087444683393537279889813500153278265379614253245536598432758331133608601724999111215749248077204951588648126719497470261701385513722830235108579873394804146246045706026744480156481207919503401623430233813314371779841825648726457883286576500319461144837571228553238183468761650579436568053956229248642515717693157259195825535981670726235493381070531311449374510172861964393992345151283477646169629297111387082479851042526000436353217434744420145222524234053767935683099458663569768715959759475867939749478435007144211929307556594514981250047810700517427146836281409468571351488705145834644834387722727607902887894285146568316115274087243489702297906287948041253701318944373636397225869284224739408579633903595708982038450666203672688103851657269124108519447210016767481478942025664413080049666971591235328986809000696151162464597930209353338732519061157123922769587101170425309510162792502654282189519617892493078698102323278889797443209042364148155780113792456287468681486618306019796479515360505581435357422281667340924276802842628013855856442745167300217581314130836554773755232415880506502372971432515663558919641606616672905681326264735495912210406446118095962937156106530048610101670230460516498596089093824385516585112578819847714654583949538016270167668524570715649652040857170974413834809656242356207084582652835170680868125034315814289179793916060078759235683631188458258028874438790657237924250938806109577275860230390017956433047741075862429242628088646658725196725501567739627682641496168800674938894518979550969449121401318017114208611110863453673143374963664854363154431198916235949776716837944965865131647391502095340287444217010017579075610278725402815357479942335727846852355353426389366391811927410364264605582958390705979629108359622887485916257385699579413817834676808658868194791578231084386609857449219183043368716575346807302700246549910632046797147856438900967714985493938703954645675163978255244259002867470571414789802294062464128361117452590220082525963304711902084041815263650777355257887423990729688787036580668410068887889005345151947176792233730934041290800243882340429558987382577285640996554038572094377659972029866776573679804219264505118411138278775119497582367828369503844658282363137023420584936283300204908165684899391367644091945422116210854039523074837978897174389760287485022717895610898057299858364215466079586167620792494558054179251913427923324732525146923600529700366539657275658291494340377150040398230678427884215705994713423304340623656545444211360933602872620550303908045679530805672423675865691486049706600685418874270642475548347278839504051957146546692145805853922048690881877264925805638956995460127696504874354609651495242582826175828886856872751596529370968210062673802163111491711182445064782238047083620044747464011425367756234059423678119596258612336457629707440117400153190888176681517067113609877008576347137221217505411640119163935949604700737653523166163853154894974894385500155888013236339950652978810275530707923737975313403243568968590277805801829256618411187585420082409557540247543281907112205641067754296324009937677839313742084729526391092765744705701229561741299026500035836651522417881010326704614004754698963627717145984514142160468957539107444378547427785812640832947987517915626089663047763097535029398761532233440304450918443176224942714947144675192281766151777926976631906185537511339640110248868590533776895922353532627433534854848713861783357702039512225051767794224534074910054199873035661658745518456792446777025244436199507705893731442872798011752581280672449251121407330849981366863104768464116456111305692938915273111195638765796055320620405789510253802655056874756504454503355263121951721714121444193236728380259428491398150505823150391961947470320008983575134062105740495224768769732932991357279284917402572398796783443696730534750372880385379468880903879698463833355793940387489196952768796346619208716718570997642336414044925600645248431350372618718853894043609068134257148834616397636546734298719466364864696101751802199862100864727165813486109785372176121702900306773730542315117012110258791817795722641052543891019167814473547553849443534862541910963507835304223085336383292936392028165704265989827495605399645593672353853552327737286170554231089385446879280111816095032030337461098468657612446150272599332707359821349460781930561149129398834382946110432878159820173124432872504343191052484457443064270761135333723832792248274234554159981659775594271483694011636683617745714563244294228062240173170404966826432408608322923138655077200630983687128436900164607308755439040348209953917226009855593619439578854084883098157169914100415758298641112890499723620479284906759323373250768542569395773378845461586725972138341100720993076823022406827354324582761651089561113914634012873704700051647471862651969366335301916986984100376933394322402137815935778292399984699344572036558959206055087177232265047260050186829964571970002171104602876529779231565127530918042473546549536922036355806923069112324711157830714564645238730163132149485458970821767999568163180732127303460233285752585654584809561532089344830043256140210704049517895698003988862747356633130797881524408499576828526407029764216913383524367489308485010468992761564379851762570666669185087798850910181433254114680288560935971195513347233469749066610924599991445364244459470651219623603157639752226598600073263227039773810273369614072062832801317028644374433219160445798577982334595101058730665332967631514869254814535900950174010991556657359607696793951292200074318373614275655858627198682517452713541098015167485474032875703308754708161442704304627796398281542308959480729721618360600921364528138453376473093994153400591906565286336060943947591942344937520653156805056547528323625560691869151443747031228293853045929853430709162094789990111255428227167433037581187158949949707662503871237632107859710302765216934540772332052824049548154950881022529110958736258701357585750477650723884659966577375472390649153350029368958186573517592360233872921373336370779345271126172266280750355202869143140164798026769329641687340876048319663376622737065082930988853846793615210008617468785497997469349252358643555231470586525509658055300452760260399737818011609110800648053293114505861118018166360233705324134260775862760284046909358623347166199091173280902027334340233329822493248657906514268307283267483571826823974427714380371268335190862892446055934923405547855224896108444796690185828076141096482711922700747795139723335750730655112311547035998253050930512403832992807530455787592237795725584534477870437857674542253366274591642883735893681211547108146256899687714577139486956076872618057728186224538000995594488961966552835287123189719687339954365645861663587038037543384873282156287237414652644556239222042569926543704360550857250106013979850867461387413251606334476610240581692071937997436200254879338309167363577931033999177561996956824008929692948465968406849061674977245588116140951563821024449078276127435510010384903311513982690885127099135153850479223558196638221422493898386460523377154253970976280312482611306859501447447235757804340190395007736230532345332236835112254346089679255774124785766606769457285240225100397295643028597036813298284413431300930372298174423316190314983389521312229396658473161920805757576203739547815818301767046447120127649278817762636973685482890974548533931869959088331341707655653287408351981915522456679009329641359075148878859935953869515471463596489867545787450561607484815608742529158993684245040963515151052117530138394283722691685181240545071327040684094539989417475674411238748274389804603697546645888664539412923257932133017550314943606379112503162945899240281677948593561239757341938395810980550899405841522699883274879304318956965569057203455443041764610990104155678712694810429603163510568144403238044576340498376703322629568024413915996430945011797424959511463894513141500691500070359775526958390017274001071151169457191168333368741560300473920866068576217491926144260447673313220295932926551778940415498454006801313425013240472389266053392319037319828877843517441627752538562200007037348923291660407223518147289678011564489587068167425796184473538256087942190413600791528418551744323156549025051597076714262261726998101393486252659211970322578141670379333435403998336223221959294237875415115165784840292996892796146693344790151287746382269520345006586624618780483726310922343491424182840376291099055557350584871733615343482900433285066498086803797212025729512486423971935460739244881505155646682592140310186364775427511949551557588440192446506221824549091802675389872682633073683693700774834497315474458977865497806427627405310936637433741290765731584234931761467297943357516691700590622292463118529318005474007867412819845077230529824096956120578703542179491908354823125878016247615950747434010275951441012316944560485446170251009877590479463763757233721559783452969501917490692286420197106550726362261764226315658503346066841231898328389627836992693313997172915538356349892312903964346952774918974977306124411015344286766353853648902416002722200664530594974258307669995381264668691437992809504862124781776830114907514165403432943190775853864818496401688581617807751946516233238630978793319987699266209885275963582830583676292181275093080311385541040989063517672199396808432485836303756830436510954673531265620530632456216298117083430200074599904791156009982373438750262681651070318488588041658147520606244626203510501713343285420207581949475467883843928961038003105048922761882555683313682560890969272538108190832341259285121160575923377064447283803686970198207798671253120725581334329352212806310410040397146740789949175954748250315151032253576786417944312901434530438744206528580860061035382487132003245513482468960359673702791286144097158590490972704444940989121012112129436696170303324827558240037523903699506688766787226480261164040949017874312387044607835442148553022357779431051776523775706440827278964923875035458858956619885209176799370290129860716967361267218149350048548729554941732948332105441387932774584002534389517826479908598996454354775052813382077546920459531962250695760385238976224960267198994531285393284155238385604232555755154809164162200856987768816465343828893570601823108633435033517624521379280602737586143548608639297609484242194843930869843729901704128738169635713996446337488772452504987008240795186627383000538095158377579879196431329690404221428022271320169270021037587349396414296693819920757657437467095154365477403653222371821097858603657890607381837435642430062486520613873249291235507219985229393948785179032892565172274091463657814816176699456556364290639546399641747192525893817485916743677384891920346194349741516779553445131069473467943847240734188069450454449401899621273463856923945206174290790674644450650499803224653945538739214374643886499303238476120299905967701994623885993887727323145716515762051752274750094264229058018358522685758869796742297571054386091211411372351699952651656150555521788398804835389709086403432073122456549905959764089705143164042976217366808635392052628862721913505207290285743826431853449819650552719642639500440603933817962584593246118299968505165689778605918776679195025856753683710015103346797879935154168400479937007092332734339424457110773508475244355417546911305108870449674572385456752072513679931253709246316247977849049850522742604525158122678231016009944720651426025410800086182710287998627287459544887661032676541233045817785429672543547266166154788650052246027411438436932227671231511893533483859865204661068844929093399430248405579266762618261662860420319245479668201454730245101650027768314759031816380295398903505503453903604531150982903047187506341459751597377102461756049557976922580577663139113427319097032456787885343996449031540720249905629680499094179652384429052515663902703623093485919046651793241716215031669860058585666409575455925978827679698992244842171544307441004946625909867000564469018412435354905762294193369153334704928886315397513113033149530884024712512965660920533285123400584219628004521580671970454114804454306473871694307233284752634204563330436231243275341931755987217267448967078762317565205805692864566140182636239698005329279700787541644877134396012440477871709848074783595767218989881612390217575332506952763530084429290120866323700241173706462300175266245006302313630097050741083488079863532740837812754722597455960457854505916883944434377241823914182762897603822550551490234550636076099296604105442529406106695888608635864281101992985931115423708375920853621611721411657452432785286186629752614092508977968982095360874899971823663933584383150006054822473795421622544195798347246808357571538415022342655700146426391135986108008716775087703123011159094262326508231576447074925481344263012019364822222352541770248633611069647130595694403599844322513737152560143801734533684495768285654348539396798760958991008188961342582532261787095982361021656019333749888258440295347231808526599006982142311655449925670279563558687419706353566618256891281000806415824157099602454521845337119389324393739469438306852350351743723128329247660473692355743190733356538645807043363519066277297965727522537591779121113145321728812172061922140594571052220879834649394233897276804798940681412283503745996950840094211257986957257468651350519776428610955485289100145632201681725811813579239812775307208880019808719172301645185187719143655651238351224765374370542173125815266106064058306431873314895854559177482536513805406150168513682329862690619343353079006081846649054339850169459642153468416228283124690410660949232490700847008246021661412840280081831357748346598018918313881202467201784460183321310677647356007880465567189940797070083967793340988635915879253887860282264550940774498465688014706532756200751383317937107398321610223148464595138725486545581960670737637096010974769893480599898871734937634118410533176774406769965371005266920491255373100500325076489548093403841281968793479182333380431459968916413163425732375652319506216404816581865281434796977133886136534537407566636043976040150986830266331404140771478335267208391399862477613744873672086093680802305760910116431964266816497960345001748006333016109017374020868540232847839363947541653991409029514632182030914016112459270694407302616724708816888274172439493134780561632590039167816270363129741346829617575111254619440170002308543299299959840108715767449468366370311897267474340145485902944916338083746287343136146267913492413235052256363051142634446501418164327026094735379794287978038585404614755548929513901236161290727498136560349207884744480764082880352206846352289670621482377454565132596920276578731537595891436882815915603265121767186053951416935188943362715279892942157896797188265094991881271766188775524617956601982203957380903998421585587310614555578300535422038391960574733878277665930179395037361850216763899356301698743280170644138460322027480617988786663594933842702022029392958382063795506797041778065408604391277636929358435633291860983607436219651288097988047310529284550025096481179695197988062847636804832296838745531442608679932271915234252512653393904393546179101861697762209221030571192727241753542386236334259397121968779674100486686331513749282061308497817233853883510254028997038263612865096034988719125242201665656747728090498129667575320299526014849619384498631095624176314221714583994845493985650956796370158749616210522251344070962720467772296613970343817135966015289444690902520214220055377232105598134023867792667716370233645308238144177854512213047294465639402129099639607478740623727755677515024700318855067299534852080591711217902975180176711296760719894402039235733589655230976475459533500309161873688084104084876514800493449612370455943807229115047626224029105332861222340809626155989164055713111176822414956303176782353326082201849168107877396903131034470844555980582949083665999686501641313718917102106416859635422097863901192788915330807620846438392940659489061506630588720214810201757886522287541322065767968938464207531258943447529449861045786250856611834775390800673567102047042705166791172428279910122690815875501136214838947116406833283933347774720953860657450254936718956899316087738905083483763908530666924124675616951368234558727225638248252572963478844210052791099341582485874051667476826846696483808403894370780074431092628589931942506886687887935697646305612734654615963373106774017206535501561594884435564239105158899243264924613335352120673328708900324915390068759836050259533729620971665809063225142791578181163091590135001202994151399584517513086900852780635503718507927413919739233940059740293288490742748095606286416548227202248612235638530943048538215182369477712934928189068143192298558087598147853723069808769318551019152453818722410472043176502024310173376809576630437612696307998277234410061254527958509987877300306495037942653650915573334241596555042943120192518958252603463200304394668589459032811109065359554529148662415412801495124010436369236702069914564557841980075026535686918515770279477175313021220466753895068551578951242591930776756120840443455367678740434709447326841037631054524419034391079568777547543332578013012267318677677972108350604021959354031935231062386661113788263190544581385742478072688811734071963968610760365073184651594000170595708534313585922010767715457473138056877602885639378706235555550435619877967992532237108746463847873035725134070616530645676601983979540354297639283012054984176707451743707422167542872327968622428923979411236804292776547796055389640725723880493266016196640509610575877975295337781890275204780000520799304106127224426182915351803749496298681933470373397571092592727653652105640724904985202383990355991895035304831522485660883817184975013278736306156957260422302696175308171353071749241106152161567312131437055926304727465128834324680129100309989186970925207027824685575842412338357846692119197898930826213980312577633466404876441137219476199280571344533945015305784064137745434402515940606872537626763537145932697331322705088916150686396037292178300257390795907298383652042666105524704142170820223108819011202605927184465027804428014899254229873526110939412819016019049409512875199783761631504305238290854273632301797825269646436327284230864606642888845444802653906071503630476715992434495290908519305581263201694116644808783344526395896141319020739265234043405357025569088973230106553003764315341916585956227722349881715632234853257998340282937465847827414034589885241170134395158272213409295053972962850821010140044607030854110307713235451866457665151023828766151459915946856536790044092403316899809290647652010807164469273904743533461784914259703104417707960454903307634827241877991833658780995594096734330750954982787054391256926274613302430596673357227966311786549181196359220448401409175168819167047969157104616047999532942736961168969115661568479671248013508813644058114911819883903746459834779218209041429229052871363894552889288979935686620360290296359195446799436139977980700609933031020473807047210158140160413689918424298878970265380261425882100961511130022096473000544975040437648146079737832496952302218858964189306638496794132404430594297799448945351924601174418323146765159724954404000540239960722396543751292452707244972954039437967663958984160810288319726607294952758076164875457239055733000490207702426787990291380065574763645589801141926831479829182206156743483924658232953009412140910485695516246970342838366548702349132195985952192346965869655253420699050942531042327552058644634401032831810775918777713196362900690330141177622864894289915327686440203995144215839614588875869231587897320077598295330272739528876566714766549078554067920634796387000619874711931436574304935074492966408256988453117175386356626317427075053608258305566975247684017904352742326376521336580048280625557756777668234861419279851168986039779061178186541141847653920402227435421148409175326621616877734759137270080087824441034053795398127684383362401029428209931250521734598476014739660241572640900000853411818338691836360826911756415302163625316549461199651795974921464724181341109422388225138613158011851007614568344161408460809305323869266008420156753551018007440635062636764168704036797771621055554065148453840136357153918673255845480980646267233055598889157206434490439113650171568605912185129731263181643529319272826295380974336234566215915064290266311153961000591252391610982867724953680419155712613070457399759790920331709533012281380890738450851359885733963668868565584615385320309103366340779162055502853832203027536805001332251541103022519440617393027777749246190394659194978086817949188843172125103655875124313564190191328546372755614500660338476391028378523096146878014488588754184749220151874294035006954402561095351243598347714434143757129039158780681734265251476183552040199797115421433316168595970500464458374242237065440984239083884030705238919556846461348151617942918966711345933978921827783102539387576004512615518342639110865420292965045307736344468774847238041452625606159572784258862674403663636068567206642891030781976384018987278560673079850268252664178849814641396412048194700256284975391666683107777418325220933209854924788643937459029103241670368751729231012127935564759398171164654225648555676255921795527710374754354154116284966835109273010908215614418770482631272069120758765473129742647721100060631545876959324498342042632634070290721853743455229963588158207100603255924962891986387888304802977996298783321299484682104341348579635002707107965732071250496354797281962987397237382120611691458593788940959073486697604803865962389918762807477816166505685372665889691087341943252662306477387648691162374346518943950469447275213184934358234077741757361253950670278968531850731803022040170153786165246127523121495417520973695197023650600439981529007710846402540914289270980248430006108465600853168569531503836518455199690932779413998303324445573961322966260891843841959288614396741798640727690842973789637680822281396510916427882558742043401943396187284563882446171028438454809495130871410451439797098796892918131486462614710512494428417405269240243301707576759163243988147580410635422485639383644063951811466480937966085666493793735970936961540276221907625009523687512852192898195976406139504749718768865403647377542019678530596331109804980886187222034699996240320142230203783579267705210861871588468657874125326844580922988101466775159089467001346996716209333319856532759054782923422882873354003804059508568214953159102711572213794625680272969344691387037265662473460902793166410633820898730913269181312357928584141130648439239457773024677617897433930263886248010417929224784700243681152904631943608630357076741452296689650552385633403173364011744959134160923986667244503574590342297242933124742473953197594461033040880050829732219374068453700001203447522482156235983430064499960208099050380577322227865529407530278106089905601913068298066139748696989475777450428501382324517134323135837572491343942849658339620266565850240569368718154873676410270187485057788191564002275880811236577095617510715008666411995753928430035250811893939569972967930460751597538849508112781407648408955044487441493658708255240638659418693699549954428809466514145625108500159612633906920385655457514519785281647707455679681428928562068788161144301329136312481607591922002675182552300586311490922627175745816019347489620615254723492157615634586440596865870606192896788981704138521537410560240527256599015281331195351375765545085346616484697959669874815904346919928408726195945985300008574970201200066741356416467319764682491962403409542909167742751275643204563966874669140720072544500517604397801746190746991261876402711585803659229016033669382998838154098041732519463456994592851113219668755463104767755663667082671564467874869224444478749589710188118222144688500563027847057824317683263060852804092210407527774669379758613397776532133550297840185132885685701916641488928171360050278983519826702443037663627822385806604113208488794703130383323611778756531666952348759090324137612074506125188608117745750019666844312380190836219036625701523337746416568081783018495339826812316936350015836453927004435070358961476143012735386168637971349220041060103859051711650752885166128023800546727199835134177960278527508128906759708558396330796295436208853561670681720710408223564173494851551173460832046994496589885645923813708164337132598428156682965738673630704696627481137897964090760228801775342003441027842104277264136846047353560051657438889754889958502424320270669130190813836662012480569984029589300746649916947780168332059075453455327284934369513970971218174456087527926328869570844303724119691298137402091030971211402389049292654623778958264674002327904503703179084023785866048137693644692835186231118357999689964055327933771520001118722235841416311785499515511736157996434468632942587071527027224804117976162622560527271293262982432132802416072974114404872339637152078071861664577392426925264823254697516458787679739999022647591126223949548024453509825333532654031110955595897947851028738643397753494521200023666672444574470952837130135781224350797205565209842881539320048165505589718493093008054712081684411219252961818072210315588085495715010321081673174061372382986259391737335910192699843684378260061843138619337607012160476688973451123289335889678378508836933505697937772687868399676294880671910880602035335014881574072041060097441050618465268697731310952218497825109599490629002895973870066215280507967286480275125576977466668675187667962099250673005467343492033710943993488346139762776924765016884776445108401473711062529936943825358877680943902721912211429376864411409985829302978848005961972536649340605892729683865134331722402164534945918629665562250534933363669142170786843779179964507089748131498055587808902580408185805323116941248161665598747753462515030178930523556076411625518486589261096077124244210297420723575284191234567373858867464897436279585645591759758969697086295605145855293739646009828943065700249482189643290967037170869106989078267866588713406952491432055794408402288417624497505779284942188040120463619802442067108085997006086135349857625823351811836335919523554161341276049403604557270421001612188004485334577564516964046507397654086201864583461542636810404467448650273354808750961723784791489252692222318350777338508111169690983177580179197687952149525614220365002781558336772887221125105005915264456309372985325902682248458471479112683990806425349672062490904795333832583101228317223840474814501585086732153905983868687871548663782998236424332383709054954458745139651625708294677277474462048739569894151189168568751350633619376498043309093745691119984598763220941271956795698282459196436229589865730335829444111489277673611125385936908654442477025625438017309917098134424726334033429826162893475722494493097316611620076647798332027231205242867070588278128341755892186323476170740578157820401296478351609419253697465917541408017213552940211037872572527490131020838301848591295743914907883496046864875196727981668724171100997155558010000968265137007856011985374030611203902796284423458645161267977749807910315923592383110912601290886415591299520322873732930385625406963683194761264728542797287452040133267321495844584186404341168196584465667428046823402519496408129243680980591040117555526265221317365629821182402552544552007312663284808579301755451351720296836972827366311232251958805006286909932989826851928136175976865493563076921025721168822657263062621192764883433719747298617677654247358278265326932191679080932681304541769147352763903767172437504577393151184532089073592030207997904304446693445310823624972241480358159302323748913635156472015556244248527196808664031960820568712109531098168519635534186685905717015790815436741500625907148937452160809774448205214807612620878174766087571592598170102744994021580455007485334480465459638044674611215002457443669986636336013569282562268936524449834739309797743482941282022466190311655611601213585146597958438855436080122776296961101072631540703586020795929345571805170360439415121835676277168249697362335891387953780203429180596588177794583301503480878577190773069233176379979713241970533949610316357012288044200658283602190094009035180132249130548629920928766605947942926730054743465229231370661405265054131781587289791155817264219323226473306991977602886540821254675083715499314048362415583428254151124052585037930749628064822470370067829932103295912330859369428139767664834618362586098168658011961532005773625975925816019376405208828503050562867945890793888344519280678160282253394485179368627402559655382345226931083223030150478813544681783876440372519787470289930204123521249797035471720352381022413197294774989319001407835700675322976382201234970316327329116631480218127309181994517472081407524527635314227849967369283595676729771702892905391583354383937368165764466839030432832988913718616714171492308941430819929123157268170799237873055496845705965189670294316909960214407383623941801579852421734686154900959829126054774021180360854839247854658591874605497353767241921866836928659579594653205767236595108183340296921382393092360690280135083889267403005923586634171316651508701029249114644964868275564812231426407199394929097141301098849072822046611219549128208794268855731073538325807652490791647846432271168394967150863606886978785954275475813937055825348680523582568050466387812014961365803318690113273365343328470867517706063515918908961937634618592097708467680490141312255501268488207838180586016553666040655529115614279119503633357464367102807690064847761329792450362494076587968291876008802169389360596283257487283225280756339839135573826886195316431102494477423878771931559547008457881990709764112745687203944602421042228631944258373388771266930429386091340731981699634916225539116185250004007615751104646002325050334871709561725088880739106234741436383079937416058720681315951726388055013296178755841283792269855126135918543788372086575860530065209717394057135571562076304260099662216576624022440177707324616806765652307359845656345427341111575712203596317815275280404099452390404818556602392897769042092832735331390145498221486311328617416061766076180103802380496611845251746189786764352337019476626854893349059004156636560318961527250448338393482900849115745259298689880164557118367576804093343638495179408403408384329306718074649886779009845464258324874142331776059634789018475019456420436065466741956318918638641994442423328540522891396422062796156085450288051762725290779707609896965934097859735129871112866273281989074060641593903650525626788990156022557397939100421639220578896098423110387902460046980725553967380423009254269458576122494530312727766530701054728282121582305571420496602953891498534732906335733061106771379851659956880226116866475769163153398289973544060277322703547366339738399860534576339141422152558332770100481188514404142076126888392299842342834078555013629317483428524923366970544996688546425082833889253997711759418359950651472814992108956282064844205755213233818663184559675994444408251030033885974103601260932826880256658416887634055139826103684371332925375443593606651928022637036259235992152028968031197936109706522162756156236543436465799646583295943081092147720947735904163983572845517536666701451882247134845490989205292861820275001364536390250675347669303869942258237991281915919872912422178447766578457152823845093172150617797146410766243845707664442134568584816147256210580135112375028470730142725962575584059433324447608658194938366783323711539692876252749805791003465686867814250992535906686782886614066686779866646516801127341268278855083484603617525258172014491189792063856044216457854018395527679301628777077989485571555762308942859631579773198325919203093888876780924338101082192562784579654109885336062204867212760646100391819541369239360958427949027424525239023822484419825577475848339480745787515361007900243000164299914195854556476064393056453207918670688743018049176581261281678619126029745886728774705432913975112228310214806126097942984878092499965911771820633383290248870920426346606986284908827275572938947557922526389385173882205207665795162208837247976023614430685432855281056878511744793541809014700186731988002426642827363745305785851610221146319085837575933359719104627641610431401723167788578047733824821544760470211274921407963999038453103616103437119623437725061330357986462362554998506051292800390468058979003156244325025001744706680799848710929864902525230324885123107677268750962208749403844517106685634785921521756339030859670804657146058382754122293852190985689914734475931804418794148682434077803265866046276475151627068638848681417569052641642921367221159911135226766838120630541921617371485630088776486535115658662260006424721782416072359372222259922299322694122192563200716420729014309130684478722013263142673334621655838327157741191112603604563323400738177418951624359289170129166496825990156613335760623237284251678227888892442459260664192898428348206980411525691197413446867800159108332127093204408973048727343889994158580230759516615506512292829323703948246482672715696087754787930811840456465421221798163651415252085761422140375725988226888038025600561069867253339477211476598184074689819353838570313280113085474389212304040836484732189576851912550520049118182529689525051963597408178678027121813044405804845594811853509812150619351689510546933955067511630910474149194344723507486331063509774361497548500914259462089937148121352478174480020428590041261040618802841296904582320502829806458056778673985175141184747493598811169874529051027135187694940475769801040174411757629257369899860623267840064832445746316851608341999025806631363333465030782709760192412217984015228157013733696414697294778581627213471014063688642559046430044000104868986955136967194102363338191669528011558796695832585379139531611919166425429163864807395154247985463289135284931507781380105995485895380140323420282690301520554385921493289846333948119098533341717143342448840338112974115301486173645658313526755816395715909728421062980543768609954721845688827729586137966318356179564706475085280836655477840747708693804753686806832317941154770491350752917788002830683197785357690263140463036130754569107759968040049701131285157073674116626364285586029113274005168115272709791594314116440109243061942048965549079381427028146593686990544518953876301772791932193243031404240291156334983395620957963082941450521064441073073606736506282132598680946436109483977688740725482564492562704137472576731329958003468792115361518285399760070480705966376342422710395049859296902648385877007863471904538355244610576641739625092532919111080786754630266660887941216882447679275777517588177671375305200089588911676183318565478949801606069999204112330512410840205103120041636073326089618467411211366371971424649944945300088632964910473216471753893528904225676042410243211640133348079200734257255841320525071622418078352950239237544836666304661663571070895757597381446523723481021334397357571111544522737230064421800284073296913127893201908495273007333955556283878393458791617042372459810255539962943341020915808697768166474998085992025049548673248611626118652091415211730468138514098815451334849369101940573174491431732486059204248150074144619771380262174235005726761127733704163687041649838335545646381815113766270855886678005389009619872208712078747163212474576348492342215683138458920238832654234751358698810335449189445735079607892502050438213344947825215733769016137527868231719013317794893796339644479276615603691769643933371654303781986451738477703769558140219916792704735023128909495719756152471156966051403634219460515777884425821513698492287858803937518241474442656930525730826469599447932921564190722315068501868972472030557047023645874598329003644105810603049393885222302888634588020475586447196260106451260243657479781540154932968422618608133573094886346558065910689737752423518060437620600012656370715693742984480641506896533925363020425963675543804585274193282719422600012276864597880961891261563608081056246640163586270907373937592537966446023520700070543340222191171982424828331815003448419949199105386363416678061286904301800733904833430292206950587571285187485251855773046780266499353587805858807524915782413373040459529468787789679362207404892917893773516466227493453752511528662020462655019225375665678034189033077162871246681114186972371709711092270241103665841468305421425745451328211689694543496376868620170373166586520943080225479767643574218462132158033843529003131446245505475871516123690376691497919851736570708897009531918943404751713755482812106375734908706845225755897790238537377031019988093204968841685287028192495578749816908600614669578661500182232774505264973234885959122362005402183905510327244658972829169629311745864741665392148527504299826068652261826931545739111786027054431477555508524977226994381064671214725704102240054308806944797769833995562621391584406186759985147313435408422408679860758698826935161433723219354660207153758443133527674604640083242645159656496208341186895464344483117975054323641899204468432401230026913880131066689968364001496576984706212887100418343247291556046033462749327557758959554467496261096778090049311673524662062917177686572242812719672750883884753862121240096451050501507046501572100552626419117492124829013574510144074077206588562682241328766110936225195065454579429508730074455572646683001199782292061446109217314456975033908111461994171357848061444075443382792262474092573289869608529549879239228860694612210423378681520329422056738888370806475166222140283021762762326118812256738881565234793739214368287440684138304695221909741050780586999238246838524271189650170894381530920648501821056847860752001573850841873318653694903709744949502420704544392825877345105320831560801691689884810202010608743988465263507258942287244548952928542015780769793906983283167449071893939089743879874255965965101447379891305780357706180979578834835047390156237408221113663258715464167676351840135986139921217851690135606198071369099842553586798179281088797836532629657734967465277038595244450525527637416034127701638158367684542953757948101204513701113660037227105268503350452233373241109451419280037322302655636336864874430541341693585674730384994434098406304978165523178484612568268171466492327183327261101615068791207611757993808391888029562654089814910368897782080492257711458297875723314513598880329074023599861832303498695704016574874118704041528416523768829837435683416930604818778519029263463557831243277696543659057873224117916272651129837644730599129487582757283305264302121379301678925470172528817541331800282348918641500039688651836966296176990547892617750107602423254338795114931493608510177223995083501956687908335141655910805529453348151955181521887693088583945719451425813275334340029664571371172332431762641468303561185683158856112304717306150057887701247915254462415397379311103835547611377999716313733114697171607865960764441332682343269310725146046551899456960681941002516748227095799184179742599464644054956392691341567050311705581743502798460804722180418562047123976611380917922135330126986956358148271159027616235465647775951972400484949531204258322188634914808894087353996363758117039559134832473205398983508133508834804285462539489600626601209914705022276175276542751958737764671728637586007684991293442173822221111816819001483287913786167440874557035662316935405013521829085458226986892358434376304002266272402709383842845361932972808550971039079545244847130946630346469213721356586385061224774915451767560501436319476438043473398474245050550926396617269200293970241123050100921480263456800972093640887247239257332392174702846696700302875179461247243620641868995887703643615881667657254590579058975128608763689384892228056994322052128945343221059378502359529035257858798871331677872978726299404933063450369440298072909108952639945314374554567694246291202010052876239497040343686074337130190390498779704362707986590000199434178241413442433528753892196214236206474919605732972053269421987123745744820853608690379039790664818771714966666622248539231655054884966078523514956605689907725035972970657828803707294752777387345026156555925664138247913056288850895831025748590721425256719600151394228910295504705808963905368235180253511789476052320402728547793124405879026788643925396253745170388564984429993280905563020105448847583951636879711437095727149279474658163045905463596286932130854218455174914215293534310873409645448420836682947156281927219761756118177675314216661069244387577627469170465693363077594698942389160471010544414829221134361304823126089345773663168961500237666459186269916706317053791645197290248682731062015229902814950813751870536988371397820721687447859805237950777132539099198819883845447448587535324642285954569313512409534033113556848804102478464929886714223376151191236555680568024796282037008105405199449503919892619146127523763591636718416292489722929626275435227274544230024251975411247144241537965380991235298046419049294264634399903598122701395188963111553416981528785628966173558260311637616127746595114559723828138723178571362548908496527944654019116325239489627206388974393501807048901474124735447652316219999704602182982133851456129438065486984087560837175681424744639069352917161189727092695268781121579014618458279975335344758957685300733754001739272989250692816797656534348295425884571578054641233461451538760810849956656672406190247026904936359228935542283992809093675388366701972522914116830579037039048171434426089755615349069871289775138944744568456935601091066583434393042039435054518815331194139627798732380066959098404892451152904451197287060891097630837664229833373324426127187553435722170332510624652103511549122366744246917876584876803110582813997999892959918873943352754301471912713313014845968924841936449514200781314180892081833213908937035521087974270874179334205177146598390934179189659140281994699870979598623312629685523651938931635735032448020187000352296592380961126238777260069675311238812525128151960429738244389857640990165643688550808764901527588473700483236468941029598761591163001853219725802985585907193449153696971757152227222912309638461437623194610996755771799687990859262781048762052519197491389863427806186411207547802320999325961150443405214686302656262484291992151005949818714623950001167528982760698812145931349360368196151182360023685685017724239081026789205579281407266986062923930467852159804211573141379559065262296614139835522811153515649657504579825728966252831715575421110165290646928001447849260685993085685154210536202539789853337374363625973348943844267582422764065779428991120333710857729014350554925447888736832917234136742308232104583299030927469922351328270043205718363673147342871815226059706933765572500811843345491426859401510311435099202053192185371177744801020698557695129124084540433442552454063198293274083558173794353493699980999755325767481185576359560040534888457212233126589944763549931349827260239814087421611863886217245631200215540264720040830547944531747132711674913894798472948708430881249849433706291178755930898711789840701219537614567222121965950705454301410681097145789921940188307770483816433883155026993344903090142398235143909877270394998697365939698392554818620348852692484776270160713394341861201914987349502680028118424552294231609865036802717560541772722010535325418913326017363816054900805121230999806075482553824324411937879040889215504621867687289465008154950586585812602491075755353981322708195308508506131636702081773416659413528931512793614927116382371994162008946953887419376165431087713824094370482220863067606362241620920654325326116700180718818467228743479708585557936790850651798456872542277219411987597391730727201050608108763158796000910151025239237081013048858668500240244881205642351692196313595117305020847766056070920420739112322409064051459441443585773190631083805815230347221883345449123485487359519310854273963082899330732257842467426647505968000800245042136952789493572375219131383163585485110069737049306935979587764122029470043361320872084211574265333672010001169532387227088286013710703508445620218136892211835051456871526613554305991961582716555213631776812483492301034468291694409421587481277228772608876213888991667567388677176915316659316567121981749122725818897351466322217226762412914909541368422259686205028902813474268367593589184457808063628360410203571295851771703370341163882541173778694025637835895338266331799618347786248061049556325021890780241651225168824939765711088680312906798804982811123336793627418207423456783043779622646760825998963784160301568124025395382718612696585486959245708826278085215039374007236723714587936803030207729844932300735251828228515077694415058879307659191082961686104243937757223067662092615260411761101786014905738479728841497700358438446996928456668196512905859817415906286661125943423424277935373423440405114125441613014936429508572107397134001921961063242316912077646797575222702064231034009022906436609587909752502792290645100870389063667217733112629400340825118559766376039727984044399036689420587521697437711861455161057705541969559057658593302873320774901505206408287408787641573661018999188963480159211501714188336225212287735234432048084631820974285486330262233346107036335143144836103771643859954646179655575292166026532632411901845702969144573551263524666653344354224584177195644407833296360043112964925094430136668317736264883989252836762129567017449645971066556717955972287031350426215770664838614760285612706423356982684658173220807938275478594606310454353019921679976772689720088201649240830445067445479019925163447198869325124858108830155380724255502804987950877053563851423598754765593187963101296442350733703787245136025141752645953825505946465769154223958085482274267047795834436779312068784638720890636216258504485334108447269128734625470726900778659726903616232844604932749604734259396585501791659193533060504080645520415602684849542213409877917959855167540188524250581050710949493194815893570678557881473770464991936910299131258174184553529519460933320392384655407612196402785417530517252098962605954556724784082731201605745356989275260600216872975554131094197154475791055679087929208744354412734349840748318767444999039643376269570278789214522548928275291878087414672259819999206884483167303344704647262376705987425064252005263207006161873286198817677736649981220020019130670279414872970323821072337832363527667806755428368556581060362354709201168501775827153758079946004940948633367000055662148174183870107196189693039927170558505060524880050431843217877774327708254950560867186886392845276491153200827842682218674556800711280384453236127054619841235523090961268001657498790953900209405072518116665779480339023000181249122124229272314334253776541833821002343789717224865340082213618316080245304347639889756752279348560197571301121009423061950636952087000726263378341939184435899201347787975488011348645775778505178176050244451053151095995791692536509984382947862154746027798283615395234777838172526642461379258691039377474706964312060695330679020143794474877710277025395992348588318888649132916680916034246566900489819386849079554211929457852787514807245422126397353851174852987674358630167262613887949130905068893768123214303218418727287493919764649101565947826205172648466829142147510773572148135372102884342658695719139727639560435891031724213256999302553357589395952763729377286563920727449876558576329607643257002621091710582038590676904237289830866509290378503839649400569179374396243050003068571317666149088638238969675834886654540014989477184470012258451887360636564090804080686513469648628803245907032167981285477755329111444547571442462072139781357366012182368339699537568180728933598776616533500875715333183010599275563350598988408631485908383873367272199944076489307631013795646630255023876532693658409089299074102276886164359264131049780793080947234477711067591823186982681171875798528531461885782034398793881188089931536382396785816288497575971622224822128480207575381132724422788922222913802117336544665098778078160606033463206956738054726539348184522253920694836912875542370982831956584395760744821916565469523843620504654630787949416664900367293892619271053266828487670911689014288845292276393822699765120494289493321958274773128103921366156218020935047938555077219861186586515488362681322055825038356097460458950144530392689754082007029773856087504816411067855604356894561247468981641836482034737664253261873665379400632943795911433999720565134969204529721559064771733832874118764818977460141500482549156098708558350635837950469942895366835337192754200320167768704506420110181275047943240944266434415817440924371358276460487683640573555144429624062822365298801459680928688989111228247325787063122163449256799047367350991002174581894958414808309063803238655124461279721471106782037233818025361844250232245999161476992461154058579475602242567142040200858732038699791755064249086500190797388503698503058188345167960492713434846029870835595237725065458400728010606616089268121110356648676703216265381539629734875448697426756904839194086787296378062060323770208849886692752690297417926719516797411448115751340463319594160999057632840646269253793043834298806612929094620360546633999266013895290353621224642285178024852871238089965080274902709433372002803042236148518627849232169723285216849856483445356781762083582002075964408507706982039047879427924677086699596413604163396404526158728600866657136786291167865834402477860512763851630092789633406590383545410543104922873488732513965913348023698292795715088110487242924479232523982725535574730909850772771645212013372087873391245342382187507935279522509330204973504869569185925647376367967537391152520820140853417229055322409284517274413325972879241337897712370554109079450107162249236107994167651735957766320655448778797318305311419010007138480907858348522940487269185500015704387657092122557395470942971423323589599409679748846097784048369835080551554218971239125636943251471012230035620828455429463389439666056557514829080747836858704739506114915391942848249138507970615171903945379670743230732424303653374646819541717910336398121222602800260199413573218776607743674835665610078797097145656546589911865788631493669240213912958270967032714057295797895423659015151183899980003962167395897342107241869992811576667573739540183900062745743837562087771970169181817831085732528902067710104261217193465353706849536859393883911836262387092858180684084955064867825934128697233842552848883701054551468016058256808841358447433197163415903688462270947326668835841517406633074508116748895489927944832598720412645508300091401990423383867522171980082998744082531253662141332285284568464316028965171739762809006738538515644766791353447300948112884060864522020662865394813314319470635951705490187208646322206841716400830729938951504388015394567690282882981962434656224579102593545670617861579953271832535383325696445464261022051683240269386087012763079825820956788194614307711988678399721920183801224512693105530524754083410394137601114379397351524281663318662119578716386869868041536081129401324938192803376747180955296641475895889350960132891061086625880834087674516189300133247622410969776237431683262439471414767904821445001593502852332738050620801055674020743757116638577141940193314070716882311606933893604402752098596171965017530843015518355947651670687403926272198097027626678589352534867461818336839255137451064163240705827939968635654838439965401606916792727088219264713989668006994524156820995817299832964401472529620448829057739413599155995562275654278383048986855375111298501261275305341465852431887107916701689366972177274932667575189293110345887693070512241414755983205497252886586400776179053501401517105967876200739315734013272455954887431246906562768741448994100204475932613986042379851582800635943772131232304679276712696994002856195770649798136082386015545879816922771213530004042967334492850368346077854142159256987224064483058446532013002797234001210702024139163117283439946407817780690175339992568986426491671161483715692860179384925113518079217056641091543875247432170585195084518251140850155483503533316494770243288426380889708438503280064593854871973816238175990196406888100225157708099321162409034266251509736108398655050150682472450500605544141663423348828101837269123475746794783125321837096415359970600481305670300266366704799913078595333086369154990434737755741997085815474351580406782634488553619504457246855743389431339536676546060388751026350597394011332156800316938635405459209410012837630350084390289430087549310930498573237849471175594720154893913707437067663744547447308610878837211846353266252589814206850444051315067914840233047669933975906879650376655216833014238349366657746994976871030796141073396240587484408903559995721668695378112501125214379173533728531863058605833834716341912049495621947258389768242239213574507210127979656591873549653715803337357468994206294134445309952098070979683986809351731157053201022167363427119371108298030402814299887019080288711907097565797966806624537747609869297258384134713844994676870401946410720570894878688929868448309252077506745049669319611631209711604599715646077562362805990124080152340017738216579819908094905366741721661720949610713398344765490920477816872740711882866182440311212559669913433441019770443930368974585727800437708242183847424000454181536450355364843896634294847916158285331995407577240647953445475655498287986708401006509363143308971507401215993316703833053333785503329765779491961557948379001803101812418391558198018677592671026192013505955592811484181411193317767994367307408637442694792803169642099730602627666510690399727696409685239143092707244748406725452507755001412448835550687583993780648260612696282347494099583755588980670589438043195249421847460688079109962513225294378649880730972883521671550065214011430202239298326304304129443965860879659187111752670543356689395937548359763652815141185769912957746358607584826060176143187841797000671096674540141603843542571544772313983035272283002627020301854840704307219816949882867171441339319711612932513564937722070402478084546671475012134597581998345859796550789978688202015565198852143666364059081839256074861106269972486338673949053091944720861546455309352388618658937919859814641057129591246994564275112057955451379182033132866351680653022047023952436862592571165178361864247390346603495727759122462745081880601880492420498603209472296144412320325213355294717662515574348688031790204603410481753129809539912190941915794074347000583636843022861651993390365060166878852282083829628316540468486385910973938553220782647226275578506352943445917661430681177231115856531062671141679797003086860172329546264376586557294572228425594476008194820185892976782038464120665634715958503706246665998063331537778143139906110908127533216487281287043242629426475989349680586566701710025297879877701490859202686473236138840912958906847316079305225541413600239707160365429695331212996944147062201984893355983855555634147141941922565655401695881700801581523875173535562006786996411805357089963484596082436501530563063736649951114961481333476385888869527484518825868069208001568227880573934610135570536293025680529160484135501773052782879728036783057372260436619012796076232491886848230504742048913096334322881803076216360856637851376031615862003087014535778669036222732910045793498791197917174324313246555378032422681111560508459316841058106006201416987421951876436461839063879266878053260812733996071162574453348879345810355267505733421457916662452505909883085342182665837811365952160710340856935948800597311090160115755689952902959612878238982347434430132171778538236458837095859910357743321907604357999882783982090883637930200211436999054299456057631864573606214505668349021672514469606719090617958082342623591063490742327311953167560969820807595445811594613468818618510276858115828917828906231275936252197464265168734944256528554512946577074896005447574185508698638791310592867849545292105092981903663296229257675889220045681061735454437041456424521773481100252460866756523017937417779203841029758993257420784811617448186266911119973167279880566840439911669341712786000617086083967995095036088549727248612387562220150177193822306453837659804127911749977100717037833103291519024387213796947573201587325584282731877484408074438882350919203163873254677480776154765025100577877092329746767365757639121871544316741237890631037577735349209606836873439245847955806309551478212044895664669566096702070150307427301506424992542154350066649655228224451140645375309252031183298082624019941906105988001084934737222276692046307927394690561699754154013021596973241786295335789329905760582860350447003677495009803697758769392842018834698091028523477362749518893763518012226951953834758291225384933899215621522587153007184162837149411833833270134753255575374589664145628810266262249995811623311339701549434031712117589507368239706820746089368303858379657267382135286143174783217498593213850578952966526489203423133231717278290627013878903304258807113454753222278555898260801403871452766609905714793527076331670951385192606448481589381653951890389601315947634089398675978669936963443555257333015992209739983404145262459353980461884732522415632062154854984209818879029686104447978440514475493131815082355708039807574484225969018119386935973936446085568142628000634565751244963979755958400092947611842190832098450606729217178116887437084768316260386116507106654669509188723877317768413304299601782245723526659438813919629255881407352268189632072366668892733433138284276741630970048799630936850309630623572090108483212816152196865442304803690594768924396890238052824694457100264098608881501371902474241299957804122469630359218554673776135336727862740395450287676081190013371189738623909326192786070863463271833273927944357665543735621670622185538754415219000322696264050773346022925198566628748693493344421960613034202203372281364925782772782306937533407001614652771067348587341463801160558215138674419192392398285749990174536972862757638881996503123459860589298320737801690218719693571526810248936059006072458774789658767857078394688177786432348768768551437406667560498671766883640839096354182919685298491230245443545883529154398367887123092899188141487840144154301946507632487095999643323876757497760814670493566796043240421976472360858257020531899056384093202247539331964455983227268675096870059689413997107933226398161338530970816624056673021290511603497696426266471835166554515511302773573225371053428018616778432662680993638628930797778370426767048969900308085920748178754140351466237139471947016942707715611241676281550708482163660219687149787180986539613758120999937277471681975428619615450614701428826038036064264109912648936221915382547421879416259713871365203786615888807664781281901313771741210796321819179999729873685015259232450144693647701924090492144647456008658510236822162653094548999865286594102158510500233552028908117731708288474581698561047852146253283218193196725915414889358598654228761360180487308121716590959084923540949829852925271973082687546919425943813783201364476798445698102293008099240282901694800721326930596009673993378801479310390102368856335750705120867111684876385008659337964892247172669173459482052537593730635891568236397734215775155532813293595278974783038489169663579544030544811067934919322210487643790267759051420206627327042418594979046614064433322955731743838687860105229363391743401571515706606788763729542915011109833393940481185629471835491131793773036326981140097393296015536605553319480125445880588817785588825551704945979579776338577179378656443769467302599629304080996513469378572873535946438323743166000399123824797452310083351012022725742599142672792844647600652304946432822748294190424645044534065246462937696567913968654610003398150392799414441434380943120572858534463225247614825389668954562735446091530534774762477867074281580525274324657196455442258235806477575000638461772163981107165921375465104156332395446961015162194625254553639613584472375519780768229747779892030049324172867397998367077445625000269433296688010934157217904432967355589995197224401305012048138600382690160105970978458006565317112090829302339761069063692786189441493694701339501478108574962585217579488493442078680088972320477551110969122907134330975076571217601386185748684075542052069796424106772865726452188990379303864038255831674717509941781675757563963770191004692654289252712228955024172866062104461290014666651323238978457338520037476912725738434673903664630882454380194113612081159788041671238013712933197957434441497657703460644899120349559255585996500103841623309393087441033608816804300675989302146438972472733221069899670308277077080136570112487543263274594519565201548398682241951447662811571823976789740136497240478580665224632385432272331097789535295663663336420483639486958001189784249376855933673152856550614743666513135627237957476274990649923826619562860863656660699221974015073962856567734973491578921718878042243589148385285018018399375024339353987312697905222532681284113854507619031571024949983117064056090937390923791218182133557236879456365517993191601430967337950343371971238455979605997443963867879923307816878128185321202368917332531929359685124970001808848776096570261247836530220029083059771203786475873801696125900860581382081063634605133495743378186563392468508266169862889410452935467369768941339581286782583557113024557448602916943984333479633552638598155240632287174627151008328104643758373813481688591961804909639117408406272659049009590743417480490869210832102547774187086027081324245485013643490781899964610847514746263020486261074430323139649108597723346598551048713854440930917889724210758015603009331342021973519168951293853616419097204111325283962014562535002117025171755876166805805672934895192104624448445145562931314632506781473215487707616976035060514489739060142049644709177129089821366108042844967374787153204007812157093937305821395973849918321813910707817129143935170791331356034589429643923515294180906436142345640321083611649548309418762110197598903344760572542821849578717601523615359255523879879600617957617368359396564634023433073795386293909674575446716438305765519431026480739616526554245104829502170597727608299702556088494086253673878527209369544963249937948560030242399445270090086815862310749536953625713797976868768873406976145719773881312624512915304455898348090804236982586425164564531746728301902833605751099535000276587492303488558004874929136926631386020066998151013092535532043039257723528457800117118564060955623383438548040750701826561555330786892561167893166159116487651419876652520769972359652996210140930627772023378476066092198780172970764553531779675177578185147890885678928425205938490805659734707874281237631928188392553549722749858212937062195216462870254247291267132467389545859544217138731632714412232586777601415067275649230349342284479364009554119187897999773453841352032189492608226579043485325968540536290045948096155715253346647692245997779239621033406139733201898678498969903254731810658015648108202430710849757034080331867661644203235446946324583626234040416072707046714990716421376352833900618656582644433737011452431411263438920077287415469328422042429246501849690594855827111288458994247885985298899330748833864739292743154665641772343116016871283520578037829742865607134275015881778359859725720134617136196625829634318195504359727011900689384436036018618781599201742847336983625515270014536352718329528955095334802663299810881995801768300200970254618911983314812852125407168813951328537896590181124274139265947759043888263044424962740863405184772069081806954535352269663759091976373180520644822634363131312890372888726989000876873524882131276407173964534088855755328615346693928288660352573151031267976115690447550633091990527547792072470119908081732529264200682301830452544918566020004540090572737160087147025509410840914498021001461307974187512898735670205462734789328572729655908000785300072689852373818857603726136443784410104621044397903295372270877471437620692527072343817766647584936933437931809290627561108661640126736645684532509117828346801673420890424953532758757761161262553407031728113724992804090512108709009958359664282083453096039515704444878682030052640267926730556770235613704389072603394005532239234495465212336759533453503685691543096473471142347919270646351929307653972983344278993123171045071637954815396424103917765512252600699139021292006781059835880544969956401972157735528347438662839863903879812085925200275773661400601163994994182720422702751857800455608110714717733060939802125033432024470771946124254040856798139390078905619540394886112022214435605808756373895858085036711774908017326757463987991378970314160592911869608717535578493158986852414338811509796238035891459419084130186566504523587190127554074942618673769279986453314360477976000334825924390722417552643038247011032695102407439993373989803304194580117003035168693455236526584514230558656693756620971097980118692178315884758132883097225740561891474475937445764347620793239606490755696320005138787853357958180539306691585695417967953536126799481662600892784959303025083526407509961214543618790311668664188828107624862056518133222559251451398798203167771214188244965167512827821504640891155137842584365228934692824461076901588154204893432226153718895407625077906569898083958603531908560307466213345954061252047600818837806204928382192733653065073786904257654938806503835444673042404181499325103259054374162906063327742675513146473656052525920970267186474834619631500595623655716723068566325935875707514360041254956783853704788677811963290611951203795626577260072976582438348159846117971510269723880896924415577409252129375441154110327154996374636996366746987589932478923165591342172841460760687126458555622123915265669401041883653426285256556416715233605828864230590389023374423690745125650827347895400767929141585926654794606591852804355423394286185020792792859718666426785519517927050229678001389579376918895065549580773506580154276727638565421691404894475722225832902032634070642188458978734463882205089881818406061116280236449239880558001544749049880315603208209348137330523711555455072716866709335437705556519039403964459447854674859657096111458825386572613402285852643259995689543646680649488433181716864458689771675024650403177798600325529864211477224270868103318391673877075255090836440448945324492356518891185924658772215326889645898312025963263499535607885756859802238855636510483117812116440140864408499670904320783138178081257386694637668065735649897213351149608656394141397767098127558107998561606484424755445565197856844588580760234993509841689719805545976630170314263606358955880881137484938748071901080360436455334137739448413870569709413162452597056498696821885222811855055281293406157952766304044642160570110610347122503183673082451892179618326346774552846105418346934216499305257419460870624325684329557448500707747692292486225828939886443137672952294552681637563980967789825741170446623250141164479593266503728411096631733789193804495121794305055253698538457813831060763535423147301817727018241378392625591346085880583106189354410592138546656990558054090614363404456422091955854220407455849311393110295387211026939139525311780167930062943805267291789815953606198347465181038878155761256972989197202267107382587271415463021585388445982371406873574166281357987155113340911793069607644615022287968726221725758217762207378817424779162788433362127642073878294373795450812010286676366576748698067535226410951920344080006215381633980481851104609804677078376285687228601654716500424484013000392384856566570566635822558983833564234837283433247391220776811099345331450137837939635889705654277008040865747160345636055023871927135717743539336936385087513862541192535780269670248531908827078845538905399217764413780857693446179384966481605432938071285259782301955552037126803480862008593530412471328800707054707026783199909821678501574151130277334754561359684227884234824483280520231716689408835508963616237100929234157873473293122821023209245654897588112128531220508445878337297604656017812371520947718762439086851669317866704762779507358093473940764955680347576760618434175019143338333881551158096483947404614097430074227306868319664225667007616076015411355498729780128725849375719935054741463718592588059828404351351549381833998712736749513192948404863078835977694379142681822176738801444298887645639207579647121189789758990028787842696485104464521344961344041748195843584735805626572070576333980583601262001001859259382668698029566268010177237979270459144831149029943505889697678660888311824120245325384910736951845285898965656097144493209460853504720975691546705546959304984638904081183154056246331113910898478825683296008875919187947702489971902061508145226091598692979577223724205021962569910852360790592572362595497935610521218689443122506032427978892799481730206356409366727809440416054579843085952079090292871804203748790540441967875425533354972562782108860959481030666389153242999950636701968556914399767410541891720500352773691296066467260825403990732015408222224339324146421320844784553933842780690006905497626936420631772254452407159913523658721131052343714434570306043714992094786174109984152689801866236660019829181703284155886708778895186266205858014155715928021954805003477614095337518396745087372960638684226770579730026470326275237789083411234196858735009896239139974363850929038465816394560019829624761996181676692196707265078904074290940697741478193998619470090144728209514969495223075225803550544545330621296534067307475161201709617910408002611405356746589860979117715463191408940657773421015272598125110030037801007746058481754888234995033504823180858495008913579506409642673651242208953424596453615791405636127491906544150890888754439430028082224353945467952660280418560226067481281135852993188949226752197152766373506346629952705019422958482368806904411419163522067099214471504190450468879265393905721053620578753805065607243365253148301719024907642870226169550460857283604207962790494278179760238029149282858762323335391130762609879741833414871799446709848075743791930883573219387979034935180010661508246063811483961592771193284547521760270576090333394702423540769475647666894048628732206895234053584833823870655342699011234798401941486333366785698488177639926064709696110791316790391688348569305887431469247623833585193785013555882050048497554252282365538395552033183020157975230397440564037684647118410905636733932629349163426521237167278667002152521329850197080615964767966864271307471668773630190164095631504670688737071562365483395591990352413134433522117263520173371817758067601226703430405125169180070055031778501848868130895013326483546858099556939231456360939901424284243132373539746703530280129088128998901906929427443356889486184718282022625307708140922209710530825597832366026856741061921444488444341709948215386419057458810377530910739614045101564687736398034781697837309460927408993948789289181966496618433074628655701597753926853615985418867029631563942474501536423204977380007562794815460467556882771863219377838070732652915451473637609265634397900233951126368378641373503380659306061440413622545989350741391477618325367322699526304548878441153252161147765892772537097700651280787981978584380772779826976539799501110618698696539192367114418241071564994750082717690702368097810123660870113786616882703576220561394298067671083670956878046805875213465829609025945239473561730007466078150875392520351624808104836912848471166187498717641532773196304908812523757330942798517790170042076352186515975014246046789759153398510986784645276125925605992484495967550483452729008277052603410369553027388254136080205542691540324769635356497570075970165304107683511123461503819174063806555421890811126726402212694901516759443383302317457119437164909812586685399805616349233323978030226233434936481918003126914576624809940017318194826318061866845287555030290827820477948788632830408750225273576847736392533878318435815433812449993787428631379191984319418786161497926799433090793885827902511713543327282545741502283009892957040983236005952277485091198321904635214459298149814559433095965711845410962702867329800097020151294818139817508862533986036471502645074384777950186671297909429482131282011756388561261928322049711643524958624760122151890845185281684758354988636660891096022278072382820753917631275634488884095987514312593003980473130968537027228140786520594032715212664240402720141384452296067647663995481827822518109695248426622011766719074561946797460820017909202330771979317088256787744729037378711563961690367645999524338261179990225600587821697641658928603509057522674559804908827569454046363198092363177893746921573401216628734729302616385873303859752546474091134603854615423439507700753391873598697557607369568969207601549347055353907128118117777761292079494777076561815998327570032773648138530231235844709236905679806952419279856428590433376960826580727686018739343034040599162898516545443727617188254226524031830566249465345591372388684296212790971872594812200792827782549522037240315237023923747510023976252258695990353211471683971809363336258117186500662443291758246548554253372783357154275724928957069517168168984949121761030838219517462869090189074267683041416449985256282720880244539450845846299647701969973289310060397731442905043830408968357272844326942126159903466334136983241776867123934883701470597549681474636796723358939020309264941709469544037596571693673413638358428569858822131451222340941404568861628915796238570868845660468218720993612700249187992234107653429423865341610751864667270537057342404321222326401747774365830154953412774759529465974244252491802112587825060187674683925198862624199625309316325414431476643765581195077032252039457849879298619238229654023891126249924954636742377244323805641033462803712739979672161917334087832743426363065148516540324880174714849516400513152491020059062072769696937923812385262653607238362195461180240904123126579566951033762543966794898976548623490997462579001635899391944625747503951868656822474215097816541714435838377083230035806667352645238120121796242412105604213846316297271745201356897761496705611867532205123037759257935744672024364830301174509719294182138522078136795560695200633900098486198733895845595179307388224653506570610731440386480880519110319700516468832405494241083410123215034335813231096641117809831070198428537178552620236401513602035204113604595420636119379451035268456202259625437107280577555370363023096985806791566863822827558144459986353524220843461635188523861536776295835685614896499370770005131255390568030838913122153434823941814277714128705711748535565022067814730074795267078653785109000327562492298242717708551499425495226426656776939068490076102641330628665639215866665912459776049624388943072087687304687193302879439103740330638487433259952249398521928131271563342154189285206209927190749912864272072492758341078243368338158610181966137802511059516129202310947541327766916601617618983445681298947168021073126191524647111164749607711405533539419926333327201936828112564132611162591840475402990802036303844452438491054572561426394980301280467371674667682911762688014108402490417929438493777064178167003625880823121150014651893247241290139017952364752240837858794248083154016933080714912732065054536565291135925700909841995920053043016532628186599260299170813829615449599740214329119193112056379813062616963512937165928568170263323267136575405830282159529186980443776413550221917754515291255870498557348263305900817484762459882789049620030274194053006840783580479196869406340924336601176837832714651816072406267065712332813066500469789548847849925775468374112661607312676565391963306085157410211377393434275381607372037269727024097794310356952429965329018236061035795625239317487394406276428550541320832871643994014001986253509634925894293127996098267930568968761540538583334460659317849928223942303298818656980336813393955784340168640348420279899801386389727603552927753389225821034384760301339368002953884341926233489636471745214554145431839491931999734788447019922487673560961791380959439229577370727222743190881113533743163502650328488577155476216313361507889915332231772289859159500613248948405184164765247363276848695181924856930018428310226314494135379646802832642689762297983920898612075034844548944999602917193713642087180098474969236370429882897420878518132501216901561128697078077955547798263253930700491036622534137294696360046446221142450829369768049896452615639489280087126640099890464154589979574191157995009532253197601028522407577187180412496908596226678995736315220917117303420431090340088012629749073401578376591251168950778079435417468997256038364530175044766395048026531307199713672286363703963139996094524124667466537755746495611152736233948958626487299722942508470450773836188256906144303329655465691063083236135657769891281552947176468707793735283594418117404627705892820979646801359888170528561748056968392886988985365887282848974737249045339177829166396958987903636293548851617646884997033354132616785743112249881326961039516860522537739889946662502988643371452185823706378709004400025282158105246842299031267527346415367807169564977322729470819721790075328629238336963453271816111503189328935891977353400687985390298079881232929253811080348586114034582517193732554277769676219065594085802249355133073300930647472532778617646364195728778233989186808508868199405761698687654490484719389903650189991986475129280093035133759270417890270281345308322807228136353680591648876965066830195128148895238863207009391213416070242694475798263387704252507963154184955056309469268547777067661570296708249474214535787394462394360355800727115341677475768069241970798987841080154335433687767699010031044024163753588250998917374069984313264585767561112378906360026160637536952560949908779983711191656755867567975720428148094459458922364428930319582936037233422063588605416009155024147110680374171307591932985715114537163906776247453982449444151802444474744005332401415738704105371247680487589258791770320173000696413349171301842161705185735721739790014151340753621320846008085862659946766659693202572108458769391729789458357783034092699016394661054211890864929003394468286188742392602520346539467732153192450834529989229284663937726374498297748508185182095639476356425371283380159265038098586255328576686907849127096212792199367505664051199287554736369845507192983720100392631952768446805912320508937654989899572138262635105120532948368976431292418573440140206379678277680582817423714594239178470135464948102785121894012029733382054475907351332516852529804302895696836378093962657703960325397795207670499809896772234936798737829603328133060327812486914971470505119549909681642442953273743606303111361618073445956270003149556142413586659198497733307986531961359216321582105581306937182968433209893568940368706594224846949711768774369536248306470533120486546435431390479411303129835164931154503481493666679998178799396332829803457749089673766349329695573522255791429921961830610733800665719891365854397064219247958716833520011856063219587418124649992586826788810131467854395937834929101203305137210706165985651343605172191197508616810621064820427410026560744819313662126120878914293784756416970308169732923469097445205505755241178141536020178863060505547781705499875073468966954873958703085257744733808597683987582942999660690178434304817493454348035987746659454610971667090696966270040605899524418786332913575842106069972989736268789404677344159428780390153256192252921333609390237562303362865727567496652742418906018999858512872495250260889177697883339888983480783738128804428641973794780350457092204811839616765090562458905758116026129217919488819991015116788018502216802227545724910102967296935174111074277327173638336563141781472908402755943310868987109074124587020028079163608258779002772720663316024056018751137484669090875951794945173044894610083600836583651865575075151624703329887823258464951933154790329037909864362226676812340646268240812106698351154342348016762469479291328941587932760228790677726847530209812313169851662377170837674469588250030475554370808528034377853039427541908357239027667113958929467616779896428927123719232150265699978695640242256877687603653341362600260275485411973390392787451134412652628982053457667670730302526303326854807973063306062123668285728669356396273685606097683581106302653939633763042328223014837054367508399434987140261020614525480770994898075640739595903667257550243747380098300843436708895067098928998961423140104139081723998916834195933407754850878180305551358716241986923569878894086483036653987249830263926509949856588879607819078545772466385227669218284357551511182480044043643751989568077982783922064146729873532283796394178398521017231568937376865240103344747592904491712142308768285819264343314323232378110260559387372286448918813674689496365261357821324559032040251460800177217061885017467950050145067305545567479782607981570781304786705579841198020932382703604931389992490795773397014923673141093392176827669049708459124139418156533523218244022912101942588502355876774810267228494178277285498536567217340959029721313614505978150812219799094004119946387341613886664453475612321122511498745711864344539374680689517463499877672454456338423733381340714590416535903881358523837933043871160581718786379546992849887610849294513131037212720253192941118504243696486726409875467978346409755168708389003308228392888093570392841406009960396214328055385533365217801544174377321801334969375660279641374064929213210076521048340406667690190229688465884609486926247531069160319115811947784198107965453872749047308178196241111534893162612122701155833748020313206610612832119156754524489214914589786628054715173341784977152509723353303381030290208307669512095321585584413152006409850066645930094037406879312268420296150003123702520554965182088700096019047596440934746274745173523120097942166787300170402543371783227750179807986030193071896271973339044187509510312005916697805586790203806381468901897243115593929427168098168157401929359049361487496271109007646551733499085498780493646948854840796385820586842553610820154854307263744847537838744920006333563088056316882968026988272251741998237162038126621254362779697788354662477246664493982434282919738565159766232260831113865527314921945048418059036087011117586677322344193264069244490734729933654442846086895131490501122193966363139444105891058911633911603704110788491836166765086516699510391744818667689353583693838042015474212047956848142237574094185524824780596159959317460395978242166955712740549930031056638520870244106395078871939772063566062985338053389254748323410341543393557002733279595345287002790031560756424342526327293739802023996286907877526892857640375860892687282640568668205764701259692114138930492216639576546347204700119413468992656041034127047835896554970033936434509894550733630843401908638341533037028141199332559757078716121247369473559237332915829499965976720603115939770986154598976985017531161246297451507950398459320281230710779553100719181165894337749352496469600851497030756889230861757360638699100594082239993473347436799628776073978664337025244521427435493654214242485647184595122910984116124110128799236583955304263612257602984486260862021335297783850373480449697202820613458045186778886003829170493842132566482245171644420620318217721021851377923730016519900480295329516846946782517867882100484222756840816294648632592949251825819283478862677857581226479123846873315236542788256703025826590812837805874533790308070102565940374863801151113317104444623611633087447795385622227045858795095667064136331682302057519763994470257052966310203960367031227936012072893107199542453653952334249742344316096285345805387506817859261527798024289045778360978398352127461888083111544468022137321835391454814286105670031119706842265306836918040793815836724258010625704183278251024635061911913577358678910994117636075666068965108137502485879679657586443119566335172690503054138520016434251119507428508740895841149832527885100176282468813556117330079409131458634418761720657279255958880079374782837599929576960573271114620555941544919354044652412254906334809700906227415597466606656776361119330595815063745166298862658750755276173993467804041345379674289765442340386394419436521442409773679246608386182696991805549940685667283344232132710564913408141485164424718815424390839540131616697501263301737511079752828904270973732128671098294157528543638011168601225452197673835081483924023979184181222063296731383646708053760538783817181805762439659290454824557013389694434715675310193430953046297427017623662612581974500772052584898061239873458908550311799560421396230484286925983312375560826513318504391576576135648942610460106605955600047892761614449222064901994569766485142500242990986304914565686787416984302403863864918761215685447025640704795500091238345373348559262857180913294749748670378175418196122280899512522630805450298055460893711264162101115315530938529113854710435284352077844969009222876531701793761717186126640592638725665891283064091628538132288526631814942918331103408431176517685084027652573168895417628801961259391897753862632067495523820428905828158569434968504925486214136686208887360532332554210633917954621262244034007512958163086428399381063672061388672158638387406003304157952310824111424057677160194145528044699495685795484568441010883112842048700390461337215211149960140985398455636788896059880034854683862611554055804443631583317305754750945071617570495874420207801137586692824670026275571943363276793859955538089885573932858458891781510750533468613554117882184291538459203789520908325046173433868218786408302056159064763256522647080092010611902471074654534435194554644517307322097029266363469999295601447281051227323314170049417160699884549709138567156096184352500597028935677127889948068448766047985995356361497921253788946672631667995354439610231063435479033323799881605125986170387011341020083848935374608534269717841919593506582527854512245084260029183165565438729584144728269921064412096450182918855023307448313889921867264508561390628038397845390379209857968420014800742849813272239924501520461062881770333889295141810511425836938414128386683483680292303371457289507311371411309448051222923100678854572113774618772047516716439390453591783055995566468791670548061467809789938467159245605158623604366640633692567104936336450877839414467018124434417971867783301348497372784136752766637064798973662817987625795297273847456223289659810689064385724759236358350404005933475632402107062556098603005157190511200027447867458834999853045551342225871167734232628285944201114907446365114740449616868977029970886451678476273471610419172553971983234219785274663280835938588773812684873768703955371516870264535104284181425395644804135068006178233764229021911677496013010472968163829941593325715447076907268330568751412285546029309742742517853695534146786689405115407247917443331303459915358311596620855724637733512822380391527927323823277267029247377799964152203834365269498301498363980555404942887440251723140017600021613686861450695659155132440018663626135887232000967215614913479638106109346572879508899067373739944074673905046550556997545247249847850317423329801876791627378648567270341345903694301412344340189427191178416069173737792463537226419492769789270105367174014094162669593500099972104076996463832085882048697645571325889792408198803664352481321050332186491644338998907285708358104036220106004729734874866408400566296538389037003279761074000508165042801663664528592062679380366660501409871957951682889582145552136079642471884799676781081523996188910859639084217929325137752479040203382646548041319123856170500931554230954974478079304572909943570711857160555024302800812144777662124843636727077751374814964356095615858962260251209267481725594252923634749609470069575316707277918389791524244154033190595111973806186592778910240550481228610296649927878767186062010118689013165822594533208420945633083949223246998758073562099244832683450656302336855644884081666300939079723059602907800233138764110059623612291174158376860363840947338005108540281585888046308008181234698188138394524422555821688762226155486969078589001865343661041327791304884513146955218437968837205388910503228722898217459480382598680938113925336979145669179167593391585392651156410524788457651692270057093621097375520924206495624764008580739181790418806824157893426074108652826369902067007286743743960991082365657806054362858220923973736434962588069344069345356269088121100133931494907067273780137820222013793416521698590448744240827904145704738789021146712122935544649810629827498440162752408474552657373034972292447401480937762905233546372582142405588793137070232177023598808020688950795417827263244535034488292052942028721008463157134069862448354700550086843982855601915461741512442795626476752465612897043429565025989787330833478075410946779292845705663382865874540528916284855804645456617288492195696079406205329906168096472018933190279106699523178910245751568186566160024737710324249333191325863059366925008076193166780443605261326161301260791578762719520443967856370816871617921943955734463123870713327798225159932419808151740593423633587996380560953598492254643811890862069145188458940927028218089330368203453021596761675633593471598262562429259244125838623124741251735159848685884898262344666114778125403801932414047683411973172108040878527283642556553650428749376174985440634759752535044248513123582909717263993489929435229649282047679353028900102490320474878094815100265604302250486424869670462212204176915496705972819910567953022513936067074397348153322714780126488638079236085504086958392395530595879480714748477628308817272075180043073335860653612892284541337138332445332796638129970577771133643241318017351038057474539408187365155560186708978283876576226437735436698235277575803681125126281837740172167220578650676562522052200521849704488260808839017956659932299717564163594874022274165954264279937903091301202205501815748723515093676084690330471657909105942050096830138304032383907020274921821644992972856409005084222084242394489904850186750997102409922231028244085437985934671938631223124103288554810527653853373791027527442592132275256392867170524309944955214480171980016810864897431982098123057315676762120405589582430725239977743876290203201631173468204940703512702830168838622497625888676263454086787870532078203811067107705022434452094037967173373374186656246461704349303692291288278486503820037703049785206715261371921192652573051383606951412988292701864577778863721508101739786936313368937707338693812177573369103495348941649082602736091233847189065449156738261519516547358567953415701131979444095509004377872300106621695187821954364284514530840200809034920722292304478971357298921214109379444104944225347333266488005823417013836177614451344297982143102676403675672615387597141632460552611897463931645442117731695816342263216739804058816485470633764132619434592329766820855291305386409755166321622291995818940956458998447233788439924911150550375295513577356373942565483984913518694015167096179675141242029433837338665086695005476786689449904171879657634478024743669866024219800934601309446266246237171762154386045982212832877303932027277805843099085898389121019576577603675351993525521111350740014436210568814131871318404966289520708367093858463479588411256923607233725574059849619692765292702688083509864986032311468893261223030262044572456517989556626110351383390594152025991848395904059424512992181248043984472678551177334483137545268009029479819743415452474469354780773003389341918872224653919531107272257903440008811904621256807883675708969978259856463365362377264211844898501726487712595355912402800189484035488590284549972804931024504165519165979130242524253154772100717203380724752993031359259448527444349548891449931392951074463434199697210923654092146435251414835819816040227832728631247559352795517125802734664689493179151253344406061377922780009525675025353635551935483473641254597532324787082949894049863782237089976396874539790139634574576280404145926648675212085364925436496782806103178226173492368061303076649110932740665080418637982419219346278901199986845672588801296075165258325134420051805833885955675387174510077737327663928745329679816378807001735755129576558959013923567158233277079116015960099021269523868880181004130615751712998299598902460010135193523136584595416784305344792783330711700054986773035921794303004842768086869523528710185985080084445804826570524035458892946760599191202882526683460040416125684685194594344554942612432633450235717183776376880273601390018349718978335465484336965629948590287224511307827893994093616501146864608967973934227604551190783367199651475396757313505694912137915172881846183747144486675059568083328441732499716940408541577066517874449400948190542077923374317143484972468829230965579412161869513490129222666916399393710706091672483511290213107241518637294768705332310861880849491039242615324184787617017694491030281896278371194789855732593003380737241885504633949657558663743114608789818369123076330483282973178463766795114193896680256450472225751151963433854877303727967535372076596207420906505467526771568988941644480111326537272475768538550449094170651091969188498961352188693250961008091409617321829724189144455839444094812494939212326990573399393152236728055258932916623429826866601671953466861445217997591468630773727806792940579201341512088484177311935937326537472410344729632874204431825044810599439780116044927614205769948485333420483241499422970719370274924419630687804855599394478762077865579621422902651164368583640207126759675233650418971623506655461132023635673218178709910895156740530587167204627712071257615898684919846975230628691464605562131796349801191945309501236624599330882199145727299163087861705344753433770500891048331355549851658541699023560474869607897758290081662473659880996155771795091953279341363428783616206147575171754945570385257320477302820493086060093493682145950081131003421561845292799046784719918025040333706398064406837580859651229343255508297223217688961410262782621511498969917173180531605131081932244469626539491407250227567338484416768995003562159877315745835244781699963167557010441441329237239505554205931533888260564635367498059064831676696213510720120292851589273552754259172732270576090404138691598098153863031283814928809432131276790117136928998713618717346730675536450371854526099476596427972922102112919919819661186353124635141330621841045815491655914649690197201182043086347916088791370376211428887561139171993912688485121233917709028538967459655377129200247537221996727010393349047222470996260599845664160611239615870639050904120939778917589022031545324315565558326713527802489535598563867770644740382079770870236914088243313259434867275291191767801508782287647798558512251609137306105114357462773221469903899087471383323416880416310691877623880665389300826190960953171982253679121028060478361343787348343054620043762159213286816975906475992563797299008784255727735309346570582621939535880265096850269777377030011436869154734175899479603922861553603724248362008076220362397475228148007367549122491044061337253239384125438545729279256597807391499255593039942216939252831859368501325126512669536256564381517952350088715320018719219108571294608702709913508875497324167091163352897858363057819934769419096141210782525948952789926265905738636718662845155771402724817216561052710145508954160360483860398274286234068449492251786624073378394308789666292859064179878199907774640186075973760569513580313331195597999627950661532538096472641332061678762665587678519459630762751971202636864147419381981372211583749426903341726991953996277570942865835882398281208513047768488250145379617509346004731001048950121807202941579923384118890056959117766892825005781261220324011246286852071836533126084957423843641447040014856747685312591435931977601256380574042838929539738054645590698334292485300392145488565388945381954572871580866911883238357674222043132593305343018384969624739270050518221416016233745401176618956819163763573124132666888957619491683199008997564440557055740903015912228288105912060534680001093306493537220995590163042398250713645200522529330360121983410410138714859012941417133736332212488145738593997243636889589711922478269958494272507488182981680782650542150451520402174048552685708255358584504503318249460575615155913728139336739706639849310180412492125531471248326960304657740462786400203863438897771361052696741884236930403015754759436200657564189698169537208667609919082972143122314028112441498355009426042233387402607252647489808951649196731253965388593119877397807800022556658111889584657685029775004373157456548836347842843842780095847599183889388315164492146875938779505615230758992001492355430773007507500293133176598552123270064965628012939095440456125672689188169775329896982585782310709376462120806736839204078468136468316572505582621416290481850700534894825025722393161110116560806864970908161824238834571307688214879805455537809580663677838188561064322201475421608901798930684723780701472233483788086171824924220715986776508947396865547310930821903481981297447109333922095720236998631028635040414427670994682256743056568310352668654882429707020458355783270480233643074156831497163981061745024104654566054730585755508584564285554473322676013233337673443776492362235338017796942796263465802653823459084894433170266999092121164206733618850353113841270350439514149643171623646715696700488084463480373396449273276150545863541615586077950171458887099145517210391449541820044988979726092206421163009437777464475041419797776202091070126386961783199152220698426033406569081007300978398477714326825532091083117914823001269183902194811236490934742267095652065097418570161737418980821196098469266275351604732685675140190043343280330457197128513587247574702974200805777481034264294831538806684049060382756289672821077620747822718369974852849997401467373769327170387252170112649588209870856568728986992455883015660871963922967047558697242304123729111289781592565487789551344999700737092840323877903123545227464687374788000055480707660521883290477600754220743295338434233298524608911387647405995159969708156364919317170807581817138078329118580330823539470440570619359542402432782166551059141644681019233053606793855838271460265366764973279309658505018070397288118209237484859340090886161243424983492364702182048363999680180344865875789515918657936556490713635330215517312709406916272329737875808393885308867696752289074910829008477231333406680621560080371399504182728719438082526994094184608427850016134107758249396191212289912763733356511684305535793609069100044513874298326781256338870509303711913955928813232642671430946744796876126627088226918783219588385705379591832062754564670256679566688039018135275294370067872281044417987320673265455493488038886171913934878912598772350259008539795768684129403033792922627932744225389206609359480226199230124090601511470875980951650586283467847738958868352417051050630719593605774187049342422540450704259512277064604807630422055372490483215104264389234481727003614704224295032525722421163593356566115176772776922426654631412735913446063336985344600622417561495105462693126453591512744605391504623924151034164141768759546322894529270232531675372547577146559418872436496666989925399747218783031305092679889923659428730855768476297983448318099136201420666226070822207360092786963588959669732062048675561335559883583842073761424354347933809402607942126141733839920911357590382199375222828857877072610158983340743648894759830409720354329222497328477717018815389518554631270034262122528906667876457153840243002120553334629668338575198078995423360947083536664848108542089021830858394581320777500435872711027294524680112506610553820462531585675319447042418391872645510194442894550626974740331038925661430586002098669430883891905231645787428258286865453449549769510080813114550658855008052080797365195691124633526500655120407743882256927448251060708390184949472519076515378901341678883927927742613640612086671994424136787059982635481027156199328945540227076205038604497005094902131303679338896583623787443483425102902330052597328545142527736650443596974259434056280692520349244214666947131685533643066854358345673226198884885867272189799764528243738910852055510175854752799315696698324518648694483363023419024638536322731628933186832435335334012834722435617273609498382020011886269048374464794687397805015393032853530980024578412860325515465260287448645278792534780633539237216336785941600098304519025081451443746760731062768275564969243002933631155208864219255553450104610681208603103855984280216076487289543925308604541061817742833243369800325803192926165090986930074661447687323125217508830693077998139411209272347298704794636073468379865254547855222548405663700061209329966319579958681217336165687023362605201274229430435455439230444826094006191628878688166122423327077763437885059451452436361216876236703796754005561932515610793195785346960205995641726024230164693545746509394812718697980863713933231336047341181555943344050420370141722190845779879968297694050511899314488464222718733257686436449793674813458498177934539410939257184879094528807729384716097697547306403775434512880230611511856501477455094033222529567004520725260274645569361931303888778936911098509667075311782101051275361260183181879576066736767401126479561524238069161008622935756240728866667693557276704166891291457177356730830441324845249197546286577673075546619346458010520350908016281313657866984631534089338359573758698745282045904410451858310325640468486519722152943716030584400734447140621469874109911255904913666464446246184255103217379029675039527482512587833497060306999898940474520597087848580264612098118055644034280080511190909150054519770422534492953160825855156268278718076107014668214866730171192930315748488545413525693672157454187737209099571527371000498548861749694171544598332180588214352755903925377229640416280600673741101020659840568101672941073789249844161538147674654902947669796495812760108423416971287854028670185315933683637183532437460526633929779560088978734079055846267634045414742095173415952371151457632773072512887326236873168791629843965121780597732995550286233668389224715447411748391059082220015898973956826933455937614449703321854731040034627060058391258366895135105329743632718569903815479101730073279085954452963477892473718484953024011933307416141823619940851020401661201479290039971783276086675649376019706280198254431591417512872908662815151993078479298286308300615836085526405543996371762188114440002318008676556097019083072980621553282211664084031434625467035510728310145305736432682727055347549783566776534065475679803715624947357221483976979266316949526019206795405482311333473566580752328423682647018443983357651237074231472661143049216591896670721071304591150626849058629726096970060359687354363831170933682658886492708023576856131393503845134445395025879314187615072139601992743893795009514274803992140962846090327823993140988070587524588894665175153901045625917529264401621115509649787171074915083550942858606606757459633411137730129377525820651509621892229341149096683942856494740480705147654735092597988105940073418943408393776156854048036983777605122858653945508930127663668149557716653786683326243793395663792730605093950203387829455758499528759055626107809366343851613064037311282077064186472788145010433773577853220537803585309295840377536013361827995445945640972192206156580297268225723294196936468726462839021145941078071092852769557242449812406829349448806031806817935783588543470138955470106588499426667681376324522552376884502740526503520944175908377535943448082953551415176626231613196622562513142275782877295394302239411807213980158189164703662261072136450065882499578770061443136222971219014325490784935078824178651440057449930849624587495501922118043911902553949566016866622788043910616507850853107522467647354450176829768390365060583616146802039953323413772128311586029913101200378764567502274613929236502953787385768722240954842592994214754668983222485898810288059074011625288554919576033512197877603036060751096784013549108661239018903569884217498060273257951495487004647044124619017726756808810320998508033814615713661030123446181450639640655103545013848002205920245265715683487940730471103575691387866362321477174639968751125332524575514491171604966799953277208331267958186050441436703627913731603900331572398446946771416303348310150836594321650207938652168086198117731482223145249068546665410596270850824128586082299480566523183934235187774861033807638833612301570366217052825066451197705665486843338379994073226858719342867907497928685114284865785812505643845929350676052002096356602661204300158612576765129141781459167501703345244060828926631865538989477432303929742817934142452719832663519950901465020640142642027851959631902160311787353208184817502669602510957852968973499479429271167545531867966245769518743328635878027966398602837211454075986579722872606217303160883662792120700955883535310660676769135739674727386810292210581232361217741628262172240843281759913712449806119674218321099341760776831520565607999252705825134480880911721717998251836717985863284321597084189958979789143366218984057576542232202545872513051187447386900000282911619121002472070385599218520444838368904478549110188600982491744189252016807272380426213303831246162464631990257499925299159456734005700737795335266565638319596692669071224273071716043702324529311372858831551480346555566486999182319258412786553172976298143365157549679999451741110333982725519367010236517402675242113811026082797356749873156583440260315001545149169761455112584831947270329440686631272428012704873862513018896892917431655051873482422308427834186048517635009436900972884344054255800982934592350956507187460863302861898607123529752664649998760955678321790226106831512671607453475717343384819385629263931839213233006656620155977937412843081505061112042515103996994017104576276461641702330635697146965324360682922838658443687544292770944806011837784132802942336735518117979816183122107629828393829225409114155583512475602197163500704609858427432396277706087607412317484888496340597347722076833862833841511392130666970333947208988850635271472530981588933590889831941109580548522029956467809937427175386798836896953120596132546797309412881413111958677703910084284079677057539416192156286494202873600382113350116356192434770590243905588996219961718066036892252106816032100335649293264076397149836774431286870590603347798627158183979435840324163272825343393110721651328137784406868571623617752953172467272875489940391152103571324869980713034461699515172506666911148070458368312799943591891354351711683113791682649075964699431158195384394956693999636872130418834447475810883259884541950430753422056378754682662353708678035007778706814120688383499460059324139231935500234981812333977103456505347945918709972839502104857177702330745229665645498152162853098635637334855109957399707589693212008190309435030883950144756548689489775025373900103648526590798370272657867161722866915795668827715880056402566343157355272372697994664819010256449027589695503400985631501347480238907366736908156230104766378634714726796731321551035764527421199578787419779857257969236142808037826094973158745749666959473091203837341564999637382974662287035033158488661077697092366242211627432499881528681101033280266345226678880391290631727019516113050551640936377237021039273147459707622231443988152610228281582719035868933783302076664451555999084957271736269269747522228617234814435963327441382177302522547909444199101915048613784839165276999817955115995964681877652425167477748148729814638750970784940719284263959489626549472045135479340996282063502365855519054209398821342146501495256109563072690910391220665920800373311765548744427074030022359826556017524665112734223387227315606685467234006503897944675440007651738447469672360454903305499057537152745445543792356296478237522496180741825633920057480248592983893013065425797933619938568106336252911695683470273490998732131628346914665290164256126019925054460284924602417472496827285932940194837853060378424274342696671762562514567140562035388163920362530907316900796858864830695150671430803753576830486010975007202691187991788394002581691262057258617803005044393095410007617590908932376323321348055295217811396360448298643044383353102970660573847953237447453126881352084213386302324622240533969296968669684597103821583356112390094723396392520504559281625191118913971926163539612457852280669516741685228876969933224331930249349953826546018155669013821818616293310459895017588005619265750379232589410819872219112366069815824986908954240665834619660695469537325910199561672774568889101311948348250215922149503003726397367873306546081780758330960977198995928085025432045536822797615385891647462034674378439747209163285504839367281340197631794070892525114062565711093610681602837787272520808086400597792237559110181744872548611341124982303115841446139713229288247941992170362384226937630885484254867961039578268116554576996787615852212904834695881001512522542440951985381780348646792500224272373325158901947863914507195456386232840472445267925353739485673718074409862774261353779943764967526068452431625589756982162245285637537342294361542244138950547993742866609876163265488994084027685354347525554258363631183185339519312321587607080157655061940284084130602535446499694235063815702058146749768649285209085426413589115751377010917688212876834842155628717076771726178684255392104966315738531368153049192925869592234512490924120654992590739050264577022435543199979128095490807848976801411886837418537541973768600185062791817276650578194543218883468999572472579994084481741322664134086160765958061185219400400638202317939769003562903451063909960817821341758446391597623943952419587482252400550685068189131964267776262576512141701094111279879742653378795898290977334482195782235379993730385993311745086580385223596994700102270942042517436903705457281187264957138390749100365512134914948334285851149334423010800485563196574434359800104844826713113994845556112415285142468953996452628098054852530772203810359076156395878069598976693782823749161780341419046094798781522218316589879573953659612754816761019462823700039517905774983492525397169811005372792459194918712216274818717556077346463357384355575774832020792771497735105570159421641658947705662570324509400630886099366942274583327158326529130673337644230900241551065042825350166633215234337141872777134835885322528614590988641319894136546672582446622333362591697311944960210107269779064084092575566443595671752987787896395413355333659771057370030824788857974617798815253171554520400402493593213050876271684679787981430125820962040259747453237598380828066537572938576426013543054571604886844846662863908017679402999775907676212716132982826114771095780421195936853310124341212648650843138650927857669032916403965660491078820808130446021142389975823431535315635759618589085512849718476226492818868914206868730043030122468058065784677310203133290630424002534536559296243099368308146584441798370874173829427932143594227233254797220035986940219926487233061414228023327876366813323764167876120360744687428887269099455072450859095726408034348011459509190573560436831854415798801582084048371875945970976619472475165167321688169278973961709692420280937618332252902609361860982730779787568562792732265852930571199696315068916851871271250228183066201063850438043118242118139859313729327301597127704391338930217625758058513825169801262011411551910044978951361192111483657085899209524053576901769729361820438567131180556613461501395284412463759823790327383471247452228106290514685189920100686884519005495122396138742246779371793500051077201779595076021303923358748930303613580570820562870071956798523559979273417259857640686320477109815855648309145322557705011952413063447463059138695695977717352904451845512524160638728753036206889145357138766147970585232908635149151919974454748867890847564663796481538616204748231522829028318233207719479889344420376927554108557938369603945880104599427914027324573232742678798434873885273770282257969039041686302060741841595849725952826946431600319193319768129234910086264410755968138709250770337882846218449294734314563690275195388439303795058751510020562774437307348430825751303982939777346069384594805325126855855515581689359248954631204191905329957813143294900991793430174962456037169695875795572487780150889470742381830049958702630877664451033286912118702432611309743329518213324046876367642460952069578269062151261898896682548295817836775806104618607499600110218689050998337283063977578074096840492111019684821848393651588384075510486330500067297439056946004381907334821534954819685372471662201158168397813049851288320917942686637230160220666885988884380093629209468075620438546255932794159076568866690347910455290607599893592606703728059455571201641268768316666706946226389615051833975078243280485584306858137578577041637784049567015689366324284703955281463493848086269754199254321007835732895456669730012874488026221879795821090190836581394904037787656702703656923707475335648429213105303031339641670826060489961877716917923027534712295217094652730759685832397711476175044243296291698832041365922506301871055144983765167565912213315064882339345101925673588608204181812822359149890030136120743915444426871141164800029242167413739474654804889060595096117987765459445800554599297127375025640707875358713642152227392725819728171195519815250842974159483646285414357795284222416240621733721101058066576515119569552181973001467750815994346465268239071913237116362633303233904103723769818728686673583300629643136775577169249597533287233414421371074498568724038683168035696217360727027807481974154718538735834093425218909278263413152332493349791572712554998294136855677638415389550692322226733213847049225066163512921196438232525865812492064744056275425290195011177928858464411226780679935726555258857830758705765355494682570126351528241620380961328925592602546250189212709571905504660314727731991268856269283871699261991948149260667310559500442780738791485797716642104966514208407601691284957595848610873791343407198063852226463542327733127364214595323148343983089499704556519765157019156824045849782562932190313356997609932713646684130821885901275904745195387078871466224105793735420718758691130346354063848378351595986413423899376130039427039060253100661716875239630199446667798347627923661389471596708677433642424079539683754023154514617040842091143425962317887383205718718936828712714125053052116234590496606490069567241407806017103703350951916159071851339559600987698612623953499326569304351532871552678766185651028291670108376194271906237351930799957476451035935839716080655982899003777333009984356125639932770944751454028170250992682923811265822158493725666320801513786253583186704028252961920053119107269382610739170124565827910659210142491615168544788856101518006445734396298811196813240551528449365037296415527397996746623270532929068804081292220230070248407542349714401535292932010982453135791378006708782953740743030472610154182463321416248389818615138655131777674824635315156662262966902346646253967201510795933381604491900364739071656457240579648607812201851648198117209568981418449669602993720886901797760887396812521358283960146344998573435181761154656359407403721910768926173088028042660618552206170253991772828028686570016107269936441635976930481305645417616246149639013292155563012081327469860296211482899775354012870911721252559210651552046137490798794156770033540495521550340320402010209886700248118182636944753035280578817818802627787246609847406903612220527412372718541819404681913639942570645225898225487128325279571454303727852831180306656094264056299006337223002382528998764033459628161992234120647910955700181858893914794502458085671662604347435094681070512833647549380875120853718844622458085559517313790212242319019147481569357679273015002513131837179606825089025988748545062723502392502703503400140722930818874556159335717582025531764969727380546284014023574281580910787689116687136420060531535387857402401960258908472532421560505839028159189097593897178936788067660404484591495732953100157723236830636455423713543635323393628170961287860444429561967664445405177330277147631272833317464553405432131708847941373858963462260529840666576607581156241625850434630596491849239709244496621025518718989991975181674676595500685543020424689048860348196156179397705288197310456089360931574729649959822257019117325349071180461753982593032090818727926972645424627842973972837572744087846408597381414203720101116834372127060798869554242714360559004708689237028456060690103123482008345611531246046781667164840019202965314415713387568787633250499617879763267690950034751463308747012801618556750731879322258572924399931953533755296019216673826748188523938581597755022996876400948448048350814165110638760312904527353555306305094936288405626614368181414018938911563337983986436845641240594038047439386704030212937980417422965433994415629352100321542194020798168490430929150793557141275340760989283779425539131110166509461977859181168676617860385274118808998833836142967360233180567292551717682606426433249060418425167981663189138265027743932661194703486387522803855322545239549620774932626445571286702510531252661046636105857997563045394713568996356868810668637252300462561951046130953035692762436977357356395766307317076137055243729104728207304360448028076177753472153214979702699911624118401128255809690326356079106740840893858848089880092005684411784914268860571666387688369023341621315250687636453652118742024097713687585485915401338612349707915944427666354181350536652586123811939653679805861989698907162661192127502993379668426560450961920462803173725619900919382012746744141471383567464147535244632821908902762794103945971026115239712025975450186455059781035415755039903261767705491231307338384541003818385519045169769420526629417551660222858157628943380795752711433936128316090529205663898340147763788084421632607802996691469453372627793243696267616618928639821339398413177129559460782967124725664259041146122910504140490955699975181951369637520691811531013225638408663860088661169901098276340136624127642541026840738406724010536326928027745885123677000798840192490177358222455750501123179910297734012691359918033840662123893328644557764065760578511684999143920305375461835035421430940102965124795852741692550837558077796044617714955316466488155157559096297465257111469916608070888721655311768062557527234210335671038905017637094999093308870988186833357720486016160677808170125889492355127528481323506452378674129155977176626119091490307940093177184574190548807417571397645928128141964259849736568358147281117132275301329780367822849695187866074206107833813143066539101381077466672437495508593977054834147925929112549512634804859567920369507419337873568493153462686919820669611438240461223131229015296809229147494540307511828515033845690643697828763522261701392870857186248352811215626605421620222991653257591861112607403473281250773963410776796227565864660064487100264055114066191850932108365436660363375217218129790739113324340421541996346133551655625108040145928405082795372314553224389926569626972384658080720096568948650571190184210260507381150396095226756778363911277353896900532445362400898255767191891178150833898991740099285823502465966644283342424537031979261624123592718569138773827100515040087519389106132099766062142970145374733436788346610090481162975411679295585466132435477388320933181386327832243284102046820722430093588006713211457226613220296304399850796240831933206695541826300873463987006700523218112973767837416190355936376066916422872850628139080716201780580320755408059709963608384727884170893189912344913200425824393226651788777360663588347912735126278937533828635461330677992357462610461802753504011987143276312637720519667234829663913293290318514711093842337099498894916567034074070799496202387852467521550333997960076997057885709508518515397195452568012329921442829991745795931279053083931117539833359543969063276471642223188209024941113461728714803195223867746266716789298948014789963872639711655233495214400785157920360536855435691555959311324966273664589770766646038607265890960773257852693508365652644109981499250672188643391641587177442033742227646658257182512850402535365167163785979935961821948913963797418381533590518541969458049950846708648772811504521747818014522347956894923769463646929638820321492979820844079659694183787824244589105534562698465497793090731137874122364553636646358946961180071575095843829286975773620101980667977674793584507924749659853232096911487047394698578524064126359817934934085627145305024385994400873994584600044996424827810077378949897650489927987040261252056244586851110924390592295951326419757425843094708950663124721079186958665673351158019161744083396335124341226312918066832325649876156078862758146815062497509348898192097659217928384281744395150266835957883435146277670659505902337568812858344391576013153705893849109272930262519126728557431089809677125360225834853756705483202509492585163789147055235981356352640848920227462790777137378994472697702072168708126325689139274641163139354801158530828106689248461757078644415829614532106647569208425324528016668127046917809206044191784561592036461471713230561645010128619272989004861472635468145110453245074352514631294611794352125817451254862362804308999419283136925558384766682453244072265295001163537121313013397237165729301642750406833565496071363642788622690069984391779784042857074316621510489112955397900116589380493076304265152848006513935615801256798783353078604400191387677626573627554115202242004573780620933580947024454937959269225284282532840911863653169141153869377823574926418265809267635613194775688034653473119226413719981660863436394791738302037332013763806781927799150052601656990465599107874950926281301122987342989449772514783273270543804287650212598094101001570614159206296317951542196700504312576758778551331805357648002305489384354189880007910472695082726931639804012257466359967818094308858340936573032047503454379647091772837979027326856870768270955094927841375260748057342406168239154937173648514132817410593934190701911850226347291884728274939962855451043814441344956310100771398063047987472259206206833099704870359397867240778998684659891344678677036270199518789164461276895809473103302719397334017893049172055981243521763086976666363477139223547647390189189109898798935714897882651793142345956289003974742560793380790676797918788767384581782907037227640946584473148192196440340288021596661382492896969289308610881548906168374838192952390220489537984867486927922412500369440053223919380040454544274569209493052170549299439943507317354436913011350641473414097332015728827904986992102252596404157244231826906088425009736366442710563718563256261926580668267778172473068010907175449020445628561952037924410319936847416705805404838181020520073557832480569883976058867210611031934068179434412876540540049971440335135461942758607879945360992407117975338326242991250699798144505176830708272096090090651433386132517407262110290922681640268884340235952793959191881928907591903212545809723572374835663333172149114612995522936967215758335626264836639920913141025234024186768789762232382394769687755347613701598760211440746002339533649222895670179493538904547937516119831194769937081909081669369419237599929027414764132642903732412448140415427108908739097160879367196118669696625344686607421093561431774071662968047147996245224056421889326111150723040081476479785376700266741663723673564417197422554707683646116656258692904710398572626577865920218147861899587426533466576404793148929602337655381022073237245060473853668167144575540865990221615225836871754384071440687144999570762077057304595370448912003398000945772093112056477197137970111412935316251563449002834434176286610540985589811464063159418225829834722326169848271131158094082340710957321766055749735925952223410275983608459126868809289351508263421638870747694151969674458213501604703528442748673486978046869477995238402287587867023324624273974391763452807889561934722391831375352284687189392814579071860112494597906087457911822556569590302765444751113973743351193434774538682485502745595782726592658993494141982334431858578876168057076454152144125987962089741991978409291790537340829936670595952698619074059567395367865527071177348464364213186115787966156006013758420898581277990443769646205481598313842075572078956320966927144868853358232116302250347617482963099620894761644848717082070735174159282263167453387775784905502191723496260966113433982952641680817472258203376071155103894014520345286300111572979943965937504497406174738961779214051070133174061136299514805802127078568636120663920632867126943425264966281480720505099503928627955708006241353124254011328652743315101181682578713471030005917488114988635063898200818010370821813742190229076244892278371582086751027557159238421910351906640844764936437482917543208426267122743077388183309705366253400140974270923458982473812639882329062071169727983947825908014324939761714378111613509434331935381587927187230987578047832225176978822780662707230568218446763270199388529047498146730721566343234606926202658735783204254047194494226929179955097565351912675892689692659180423410040450173030095734174516771606617463493136422539992415828668583000999060210935923483914301677690791791614668356154243310386095073288432735025930616561724228337502817630332667344293883564709603124148519382492573236869478833313293691937163216206583795356665526184000969688407980053697861363775482506974598869382563336765180269313729247036575347256553362253056625183513254613118683584030503363216958182209171152400017508028531066375135008606954324852921797553089139118332163959157710289954442031249056634987137632918996534758671805444105856714916357112041538989130970873491524824114177788069430216300558708636591840513326522005943505563840645310611107148836735739373875707669713894470493256592470126273373675832804148232523259144894688439988339471369581806013837264061091938302612618255411864525674631625241919985872182957121940176665316374129398924400259681647430975592363158517096107089314403682851271632964297507787028481899108504918206192729098031790527074565619665298378829438868938838433833542616382231964073447369181460844565647968268229650080551612071983237219505140807516337990036250363693749932956614343998134419487131554476903852349193478186405174788052070765205171263474267984372098561101385443601699933031799272423507000601906861790542683142810541410990080414601065594329121899247951549845258958493312483736691020927835698511808942378510306365790398639268352553711375978046599998093603149376650609255796228315327673421101783514435029251095177684251815656451984498814459475930465870335199980830878057098454014545109266742945535583268000341383999469022851054094769301991832192387705784695068182186103982898864956893509387830854493937281658563528868650396426100880246856393936773309102174204255655079032940788352506427814383890896276358024145192674966640164829744960110427535113054498334754826047182440503130778153732996746341287942011613949288455737785060592854296942097310762809381294754723372681588472693850366155305363504807209709345921184736507440499889492924595969115935521303794961052506576011325243507695949998702591873471834332089130856128306350102155135784313396167092104571135241453623074174972385609486311122930384100307718150663003767099517433865796346018702811688905882610265561202445326635030987173421514322315445575769033604779184275781139221963841395473814608000025414610684099911121953951192819977859554739474526470889472397876977552743871265057628044942147647614261033736466008761325292970844970684170355496399376824947457467980384389316544117013659342752307501772491604639476239522615569530257336036850261583272625221167629313177230899912407637449157602890518660140137310889370165531424192616977083331981300680553834155268654495895943801681091523620944139255576619230637085428970610004552519819296400289117139450072304902040330295683619850512871239098328202448567689654339392614530954528012543579836797264874821319203403782487343245689776730010513361264555545000712939465375451392653266903694385322203896501770015694727115413386143906861993647040648364296866702441975659016432544112192161128510026963356349629992406787044745394053782623832008215994359266185889267410104873477428961466415590623214233328093310954625719586341037322167769186372355972945494220858060336926080924456328689414027478122287750522536305417017013436039309824948729418444859619181572940100223951052315925788161659465539785213278064791410745631948992593040674045846533700069201869672985340036896491813503860950559550612042370200553464962287738076249848073649536683586484540105608025270077171390091994711293928210113786372679131461112660222295079513622798485424706503685063116429884074215041453249148251704359778489445514710746636370241352929366319449235108894320690777588925993326741562154971956562354347867862277602577436160402517557277703307892001905133600961908036005501821159977841926099379773561225164866921947968270794968256386253854709647421608135168976599627559929384349699711241333310779766577408281444418733873144828640061910147844154460846811042435499445752241976597789996817222237814394854981672147248851150166031285644375672305874394188392895079577619165678203693347326941099188298162406441811833710574208914794272317213406783211298839160332863696960001429202943612180297055125657178904831501620216026789099912281905774855122656257582646219555799190254394745694800193826228263677826631044431578431408820662587048845028886317256351682858984819125176389299670571467677974712097492875803420053905524800039472950693964033386922564404784372410885777770701343688902405574036714005084161484701546796177998054027553841961572704929527046325533565805332877222695554676691440827844742019652265043229626104712737649336191841336399403818956994835825513372712959497670853929766162017382150879745027555402177024163714656270191232290754302822127656202947043759358584564563351821833535633228850295124151916075770486631126693471137884033333500556381764700558439976823758410217839528340509571293097275705317923697332943251845862134487358532918870224093279035945570381674503875873781378776684491565226609842933583646054698035434646645056792541840600245529299499498909059987621534913725073497950333558108356487773223999116372664043751533059490174890984265018840140397534393055360181056303539587462781358366812984201223808985364884355261308035889482487079704939938400441829864328353665837365746840863877121472812599678691655983243104067486252570063853272472816104061272372070336584218470785185373771570208804939812564774505975920209856281859188999900404907786798747189933746920374544071023127537424560405891916574889988920300233833403336906667045499672803796320318912283670697929178389050299514583718843993829719962886344944829378187839155918477046050250599004993590714856517208118320434403956796235984358348969180564921666571848630132045241549675428415116522933640735110293657260257479510323552542453030145655804303338241702810935717333233406481188086228754979113444274659149306984248306310988939178750467655872837616905820184136474080842968357764849671056654988287275028091581385515541727942266291637133007128217269309435323589303656606179454316054400655769128054930615115815546723467326544464075203800348153002620259790361833725152161230742723878142296070744278258606741946293902082072189400056772029828941234489872380218721173832492633965929368450075872632288656353504528342287742578762341856069820921317999976320794787468310238113461450213878987604605180060031564696586803993795303155426050312004757363588671752343472828755733416516103617720920416599851493173150064997250832875398313689123972039602505771900082179371360388085486906201789656666531392251174134225872416727884131495508286719299520817564689714919259638779685928673926916908935561803783783647828884493305670878236027483825430069040726073796069249069117798810733042351055074784140933359358089762116534100296270338179097448453167203639703461181572050381460043969046874675601722052882512872292914670652432257247547590422902732586205281167923210522452612155653249850607599439539657359677233273352412579541759124656161378713113687515214388545633056863722595511399625595831723655539425519240835045095756320505050835650949406623120717664084252290339577621857035523816937627690241793007129868338600239211783165825983423556333236009293732722299356742063924709835879168969844306071368718052775620991480849556904351143459604609811875571045663213153215670577655561840228516711772659789429126991406908750113005534622646731719297406033870874551061518220566524504090197010499589334345524947056339234382104159799254460865173287033907374429186458645950772320329221488728295857487792863852403327433848436156506644359441600340292367641426934376664347542372229922212432155807470689980055562310688672110697411192422804393100756758886968415859691988826554322731317395168406088867420466260806095679201491103916494327738532990140255536150820220764328399057412877501860583130376682808750676110152436893902610868456394009306859392781780000967099013728905247900146420307955672974476147845209461595176136392430736497869528710770353037499731264405179144435612882783423617548685682410756863070909308040271532903426358005528257777698791538421365018913838512034081849442893891906742977095411309507848887176835588425000347205515102166232316737611844218005995984447590192463889336362606920416352462128847334410192102647337621390922135557344727179019483240101279553567718412728139487037494524056553079245941932442048130535199777993670828539123587620343579463657591837483341981612387250720289703803886159145469608176761280492509408373437577826981459569792199411023475405206093426683118918096912155471407980552028718299332318983666706932630050503708707200887526436406707680215831403948788126871799525626771943700738065617371941074045429376102645923060943171568430243380488360960401506252524610198510719644732340477973592799750450959338809179973189157338479386362066871815679662126271437078510606462432632961838504412908531330210955896775035055731169346930758201526157287769272145923486132726502015027825239666155158038574867790866175027868594673556995645268863870822980066444137582982107586600001619214877774878482170090078309931375245237466189285066941389349601463294775524710735121647763794830865506914992172720489118222445214895055043925676082049380459691221664124735378052511511319624966499549843016521513226521511116942560287600992109445447293368580237156944155106589655700905211074836211912968524041543215426807080832050118592373110844438736599104702736295416052480350866745424850982168942864356002739589116263442864311955534644091256557941276059746042931982066903340846010948807388993205469205699890591264043110683573165345375794526311631784306906968749439125677377227487858625318818169560889673932727859813010619988633824543499486343447940060067494676565806276374817367811630546588855730680295377890595752693671420580560759154320521416684031071672755932162636428594723949689441329832750164098028200179518129102367215095029043437449458443006875762979189573330893740541301641868331211294356353060096680344464765516285998462888519419263595070592679382338506731536093368715371472659922256781059164030216777680276499619111891351338878174019915914981363869319419017138636744026832987088472773661225830041201442489748132852786701373392935824484539503305532353258193079013162542548521896750069097326778032297012856974651363635165314839116067945891944173742092957822568505135797524927123778676307821449749595942836396418315008701719805923186957155426174827908816794424199517377793474499857476959172562728089735849991161273802286975849286229839931737931968576295298424218883236098232941071459785430806927499860762966824386332258893674239433129592153731867743265001054418224651127649336527607871259674792879954748865396944329945168522154264701579920385111928336303328422565811477613842045972837369374469515154114402010851684168241687293951359185483129370344979494880517722620260392300348786714839094353032485850750434666505273971165391595201138150807730709030046242259814140460533221535256702352885339775995230500017648102477382439168544913332967605918725178545990923297408834546583589070294257042796563877114514476366275287302951791772665360943974186322159585027096413101484317858218452246662463926559369513422552203004356614186153726166233869032682284400037116343745412192387435353227215543978125895968261584193503588937511618202651086234611744160586346837853836027678125728441794449768302262182343588148010378798354650520730562806479259887527653122553452471905115365832059566348203952250516721810832449056747282711681290457120631802969010102474089454182818293448738002878754165540172048168922122334611438676481974609646860717537189220085426532443483149845810548177507049562571490906867119415495923939359173551850430447136843548840853486263819657570313120582123294770624457891073600537580464544564915852801275735168204955308577082449363200936349575390453770485810325995074328074929503891320308701959118164550176604959579848563680459806417249033404848675954496850039748142958863807687252465447152828904624123366891078912611961393609737409939718835039142553610649063157344983165944458459154132808783263191005134120538369994153627868347666246074357909700276604357493817982072105216123717011302337611251643546082410918618390222105818003548162383850157968030146118160799750920126844443510528374326120499133554854116584384516204255876491605556877895378137914735610037032275241608340892557831746895745033435615869108326864922347286891041255302586817191981225477878480750858544259287532215789527801835891772013791008487845855912898726138922126781749437457205683248796421945752522108739152701902080891982460076923388221462709212772662751443318256896580023607246737032482534922575386724044043380276204805035989617180066859224779304030183199708262924095405965512969183878029830628027110965137148886822893857491906578009537089779342366781253035104201371758475745774265318572321387668557371693897495052092253707598559798000632755031516464236773387232636382765770535666665090024154337164275761210115528575354520146381737653898148221695246750251992995113706552431642479085132132024406163920838212301135293332130295609857304735215002044185944722955097993587405479157787233662512655095824258417411501426659594702634869422834332240199913747852257683718882163062781199432414754913015275139910798782761742137968862550449624733618533851851858933798539922238731311568071305389877221499546211554984829888813445890064623191692782951978070389685216587246218645158927960461395297066751409057509705802793460443642159328224002539985676313227560893192797718669175546716627900650992718715859942051411453818305755622872221943795923214193095218080566182636353580503755716525102370947842894186809171719084926101058279575989718260350456896319344492943392191284146708265014218959110805301923537160928130012363239517820447616412169591094873353439183617516657885461580640229933712651881167583713578583100557591227899021120656234424574262666814086911136281443961237749297636329281698004317432471137201353489979999538615468590550385093855937388643035893575176501897504216949504668550931440244708352515827675772049176522816526129009287748631609915581296180783187244098393718378364963488752642338664703177696792707092769053190729640091547104950079696702001519245466706501801459256481205828524664031025088791214715035610911977071835039339694535961326552946435573655482032642727716774978615987512113136175032455054968851669592667623589138413803665706601246462840113673187272877332482477162229493763942032228804148907605066615143873347294128587733697121288438328793029343419667973018622890571142224739579014214514799831701327392770872872368414439356913372652007038774417427960175578514043132887785040817992118720865830182161682619724923891968915882273204459979278915632473173347504425449284369502417510858743602709189486230817259609614915331149888962626074013120960085627956567171485729465649469641494189369364514810593648061430247400106975517151743357025593604883330741308907413611585710842300404437403867561207975788725766568958552606181760452333910173404281620971236375049126753678867234657193853661632252685217343076833615697279456757312307181693795482240885957392444336687069169813338677862532594892684796558941131630285894927353798535146555464136273206267337722451631307912159963818514006420649628473327109647265773960862235496777217736829856398775658316139527388488416924742865419973628282673448743758826693645117775766390100136593112299019151624929342594512940133188609041327076118472802621375596203292107194972998650735736264736274088816624960505628327738150792877532469425645799257975963422457234032698302364207554571402003174181788793537904939105344779320688631143898478365236527825879393850431840556415640644318370800792758271302932354949255184052415232724983901783055254947831611831082644842139850834450942083492881920701086727238944384540140727026186060637001590619867060975932602772593995607126596659084362446031258156135537347208513281815362852447658176822179407201400396259016755564959504091898050590847884973411234807964323729189828407124776850614613848902616565794377750747059818657513778993254553009951597320712046104910547485965345757025083270335178993318857860753175051431970240885852279654442693716739740033391086264176049182384167061961674359724904053655211826614569148665064459301070328540511715101866265861574245910225708404824232306237120217795781161232018425777850717957672623825637808120820491573605605032273868959954656661000189397506350954404605158814922365206113523357418223094482167860793739871643735482791599507170320208796513257747818518675899056995323486369963525635088303585298652330964539116389074951280973410921333517802733201766573543342678183108213817105002136404887874076393029321747208650948611829030753196105791605403206752180867277513187062077771889579192991194145386807076535204714483044346081874810220659886011737043264591213103608933971364236514671702526030952729209399683806393797035236453762064833032343659139105153892266337711175851363356659276833804998756675849387903850358983991202840424461559288650207030829835547919776547704285886597111703927145642447836362287184131298330360399780245021231431861259964821946672237427664148954372853747378615454519844756602377965518623697400798877628369434972225285024552944712074082195416191096090231813889288183223208313853064818153355200033845505568509962853076965289430747170599557568222409763422064003154212251395161406905834027729514535642155956895813973194960770730756369214760058273756962675989652123082702521840413426770570969582145294006128311935413085602669890947850297864989086444992131675662798527283219112640770884499884465490870302777186351485777761895028604790839371347796364226808737318904598213181772495299448468804565284851022762007128813916692993856335576244354450832696371013700516787328902007651729998963797276349776532885770205047239013991996627361438897833243342387059334649228958505524350750632550429462990418082999775550349917215516127738398690726707302677981195223219819892925443749336956714628124502744539887838979249513798641534523918272212390001398736363320597289930810035695738129881990887304289414239065669055043181566122340287539195666346342774999099612112347101027212263820603857419898907706286033849309652796322850674679890249547931204845170792894943100442117633909379216743160412375812536144259577673273764819494032460554060147290839722571517579138322689647902379166648020714793785572635657572687187863980829538155071744070880055049248521094686877851977862907846988464749193572581881511101683967723579187769324826573014832352773270824157988911055901078833033723968605781392909529488781299725515856232442203103813084202471214309992533726347408073682407454684663227985378074729387354905807502551653092423804055850236439594630359594810257481585242965502681798063301002579652929748080173222097142723058247257887888479308544326102249007411844774733225390758227466007798213163450086684853525269423229258466614934680054975867829309036566670541345563122846841736836351340808701237510822970779293567713709966718469818794820533055114536670785579306242812408471509096049281678592461846375652055172848229292502094356965052007725526396894197843758536441121838755927426476580115308531049863702250181131312038984470543829679225005431232346232039932408800932613190096957169259919294608717474752870730694749320062349220277823067981240843632136361193560875929363990960662030042553793004463969511336769641796396506558496792050360979070244786250016966603289309011514851949810545866758598673750016455675833017340642266230204663773282252556778999580437497078516996353498504376109446112333721225282721312700102414440844260998302229096088429885147397304579664234092838754221914048095177805843438762280062826100293220296956080709220682101824141178751145778411417559068034606422493109251780441095232263320640908800607963821133195020664833613871520671662450593346593959940104583370027832432027495257920635603342159805937149279359276325831873254543982431111030401959857114038171639122765680400590625528256353592721124235163879555707012294827275621068996056189240044289689689260386148317565127949837307608265476526986531338707867019309838341401663274528526221953452142612942986606132113185791118626770954753403067262923261598119068753376220324391509010095965048554267086230955925715801150759013492930254406542681484623208605742037684881811757882356305559507042870534978405277242207235645065935478657341773240257543206810514963600817908992236633849838781772941710757627499749294457683411831367231991486662123890538474859500180828947225493499310071634324019661121642265877536878047096910849271485316160250246730629942112002231860617209949290277316954757946217752519459088093946767331341083888295916398027782678469168073140925657466176331474068103373281317142296159509932364779360942464530182798542316965908242384645000499881445884322691305699595627880878770892317882318115494764066640351646976781845959730004154845568028983538718243196958762682057082890835550938262654698887353506382048494635535288027496737876872227710325652720134465795792713021643821862039987203194111402883660487195545969909839644443993240531010558847551944096005037707454890593951544965898688889256830223112288898212868365222461592720612326249571356474085180469997666950873374997760177221441208895648206742717211347660763554790829481174888131273935450290524963978722248162213014003553356628463903742400199481112073294086285293968424996796691399651773970367843748956809552762025814816971454135866749308091207638884279977645603249313878015869892514324787078605482029306645485214867397126818060424720815428135729144716333683463532816532112220237878111425577739601920322986283593748765262844512956140799844537378537567377503353373389897250271305522668525277915993675483605622536764802382015122260399268934132102171711783108377729076681782257513954122994038271499268358049767920988501806381759084321755928028675445714616858398956128595489029909003496208457932461613544971241280767028744265703006988925639493519699444830697739638533744354270473278702176861598891286269334860026878429749094129791441942851879244503581843206762339902908674767665336194617097816601616561470503882966878017254566355029211154940116300437111956974068250173231626787528400057777774079564573349109228220099361050825272232232270188058015562135865588293940010158859172083849215414097352017516502276411617706153026964141150811239745538182576033396254601240396479631803049101551505325228064988266962182228851949785345468447323915434767944469617360643152334128848374984893488042964874194849295807512529220865040067629971339898615731555101628188063866556816986466221567744463787759534057919165485929123638861435875689951446565428241131753454041045496194807375664720373801481826182233305438823359444165184301853982411151993732924360004942118395390263559020493468891882414948994644954482404801042573907613838867249298541809507443676027327909258427836225138944655979376189429240572580491731116012582261475008975559838845298997379563197670991712275822412422180497494390297700448320292372268621556195050704226929042559283246845307134139413497960267207709857253274717161577915542884147254278243415599689364827282940744641440650787490193578684682326214622258700088602844583638931358605536357609058378994117508655499633430527738438472353920276393358349641485779443632452163224571751503019828903860937903823686643652897390708558765257942022213589143477900805503557898772781451092902385365639965322501144521463014327742961076674618161747714608447154240364905715448807356194083855958147538228145533577502948475157065701776818587033278282038397571544570365712386545778838458561699682635289032838195329606125338348046881194386025051890240876614126422423208483900743087478366933407283235206376002074625662403235971596966093152886192326172392438475280708140941680652411462292061422173628721148411792891154985388582050645406956792899818709440540184426028419197754492171761760308248369938366579978049320940790320482402942590732139253492868778054355433968365582499198952050226814770695420661532266692632112087004756553765201842309350914542885845661311230379135459941137897385841434099562440270873648224527716151523187516079245817376949808784701978056713879973069938338531179648158240292135726078971102157994246870271168455546056419856851926739143843536464000792718686585416652347764384886867892557457157334921417184935240149195572161416224649386818426090917803266349939666752148130556749897119588274103631433957807408063779012511754324648444972223184068266503171292871868718531414967812823751235453166430966182866492130064543644265687433251316716414229529475935981105245150623026488682186064404351046048410869584166217042095732135813766588070984611029851675170675846377328666713240641077382046414868491849009864018630230197654348541518885559361153439152506094399086296261726672832703922653221843678287310135922503473049621560902830088345816260436746605173131966946790682074124560464183928993153179517798832428174797179773059643080446063171566614374758791422403539500918117086836660218242771199522877786125198438108208724620578441127800988650247778880400878677936465335112434009677218833786833111021972685202985591176763723974528620255202041447303563152974920889944154498562758611262067028963585600539263470451728594131389777000698658012793862852399520639274203147982817081889109325787593387909221595811138890766971684797137639040946483066235826797367689712389140627207129932170899314175883332090505048161790189867309109919796867405815647771286347904437368649894201644061865356380715230974260068668533897325274780494146254142201636687555898809057247061422961437008653598141525522741574348065376209959823991241546090999232481155118523526950287178545900731559061234200810862074843698654340750245639089884141716906001882688841072756200399408106089843067739686555981408768657655643160119264666919887757979047122076809167586544067261105846032485530765050718988848974024685371381616106355516095565888961122229048819935244872042018607942273197166789591261749417415984332817727326024768049191709093555524742286619558690117305655070827709020974132207387507792345120870396799386718056788750522776488126904358248487162350238223832461728048338054467778569610304925823072380672709522911947094524305474142308526334295144348182175393974325137886205632174520400802776063199703282006548969628643254534289679637720634866191511478331921149112492025396221793790431238285428329984827856348686276767503118807269636611968663396970637830846641560400783361049420251237490709724769764963221409541498073872068148103824070263057294855077307610348128321849646171625713574129517638917874305747398377569272301896867467327013469565990327536702937887655223769530494353658783863979741030231373790946873918994989085122752319719795544180792598430990149835857112141004390196887446145792823678613626808790966738284730534221410338687617134660419247038539105433792043175084044688437351535948861930877781344789118092310675968952908513370856163058154779875795253210286753147282177200256852794391505460507775916213993041694336366650437139442251022045227724804164269765639778653077573260593238607485036809151525610770637395622670311972668853456168526581428113995644108392844276520787891699172437216757726822884215150536610509297286303141458375226814099908798973932376380243519222923773431087321792725434041686077062931851110260202987829758061447580059502177408254687120311253790068859514058282556924428971669572062676029490033516340360538262681929291527973543572689671345630784879201352530264550282002282270303328497052593787575720306434238852579320567489566692127945975524142073271669007929498217481123139900371570873041153709645518586189245231278331503410632875137689238091583377914101459887330541664286970063083967745037375340029806231530325278432539316725929699618844709734859294105604701452449047895155953610370463125758974934036192237051247493019485789648256147502275761096465362028189383916356122290966145382106414921139789037621825311625815680305774643283282809901422525827952440780476687309436293492239733024746975481323090436017980971023667476881542017969443976712927556258167696531632924295652943267678939728588724723883911409170443457832146526404399651174316796179775422882591777233802651449446282231272763735673316951182390933634785438068184055961897851536951121532224892489475296752915775474113973584363014474429612677969351965795691047973857968477555775254538342410400763616416801164523815483485408785066268876460027240535783139212492773094626774375651693359416000303892631389242361883231937764702372059995097571376058597974756748858202791298298736954360944658732606330311654375920400585158820192533748976872084790579451247302329769892803609765689991416041959737467132270685921997511578170862361692700064279244225947979365405204448929641144064701461095738080298497823815029590993595763073145187442323675676611276134505762175762822353261231050651300775877217894946777217191516783256508595745809412925878989478212064470417445228443033815419536051272974220049443537749285187340202359938409570909110544386031380494944042281450682524879243206494331420727987376714509448333199380913105274842444328326449274461294887584619981041020158887691935506308020001895410477611939945897308708081724333679188260149011023938250982410189475361237222232364508206436496408110572168662564303989840102685114169897057758179337151477993584921641625903073987008347705598552321149732544775240273146687453123622171503510497578129852948569886874155273910096181657372515010691271783155883831205489030064215936629224349647424305723120769043682453276584702732188227642834770282052867591175861421393017437648567925909979533597114950531839789716965127099807646481174455801834203930261813706402674143492037330823712460829964025818343671225523162587562458924496057282464742144826750694331944695537890682057915286068729108077819594123817983534128585379420652551123160712640792278014470476513232566595273231986154463242136064301536952059263755075117838792002221316048200359096349614826294176705883353098055419409074252506573922299778255091334449727965435953232030363062471276644147176225710700980223937747755007564341951725791484921803273922776875064207882200547686217741921027852029230228541621210293507342986063324617918552526706386230048497832202570007765602391531424204033291163124391938095180986092648725076902629914919456876304092815101279592419023355053152541012607784966647439380392919097547741731844604852957640231438673941340954739843329607380712798166358844729148919987860226333741184855841861941846173355694813151987130320077654704920981637691354960998464905838829501537227616632314657910506799134148606779323940643962720423472550869518956833840789437796996690852748676911701122836240070816478708649098299644136727097000186405893233709050742314511638808354596167426287493342157328000013783884451753254117390669551200806626302308560286587112525061289130514733680929533741836501466656233148251168895997708295121127540487964766462493622326928265961637381202954191524136374307803791650629725031894163061367536001112782367749529455726365593892314322406239076654879774837349045861718807890939859835430716294400786869983612042175008570576465206964619556855439376120251521728180748183335222580700760641903776352309139896510317092150909873209369978227419607896147434647055425905597538608803200971925742976520922246882085165426639856891383816023986460619645417239972612536588541640518741146475571963943878948712079774011387746153766434621041626447218591996265552915453562583992561141241153558633615911691777493932321615841271282081257383621536420510354393549886202996015150270745187501735286694296341003733892713984427909006114531345618394014192395823104495514225643037874816184591706384229106135617163134068047255546767482268268135387795525722793920547076359733383196414632809817947270301439087410439836178876214476455090258862702163202222787858764106100882154533351093847305918812414718223059053106839749455651584740862854834627839361419245513327930033993960622591407029955500960615191696771282115935706233707904132451043589831504520872138742488362163568812071647990028629499344886062753311204375664984121939065921806206820264507239788620164029726347524074235284057783308964515723897090007574462558072802075832635143253499168311852383141829982400809826458030376104147826887621566206129114277453138983437195516606492997207184932429996803234818334255343052175181344163098569631405756914596996366554088202047665433335231206463899619256137460097473561166510422168488457974416511394828385663179369281768719107681804283526573957444025966236021609005914510862103378324138937986286336678947161355858785589720926161236202141469504051990993678879659686409072362364503553275097436244500964001730121577576332681400502073562592014027085568560882154205399312121340120331968933051373627847737849980842718530729517190139697704630174987651612840335309532828380731008521840586991889852713164997680763818423829226825439509413501481450715402357170093781841339141982247614181687593107572606734889978564935594973369755102130264979073536409682704225747198608995366649890204559064553631687850771763452279620690792378077231397847409185591743609611541823993264868923433756710916297260150762775234577723424654074311392625701787071039442503746850571492570082970276946970515296910099160782255812394120217162929909970193863983076467369687782416784940138689375661649974825380287414073289588237598848895646743642644434584566428045755793387794083833111902003435447232876537430031099657422027743228951990738854972685866419875426826087259297920600989821984701780425252823200578898813156484895700854946665415468172354613994119719859928006421411364001326647246153594721796810279867322737752602956001897031145181419657706240503975057803006142449760788114008320379314717214297208059712679841155310084618338496215613435393936642419599885622889123435651101590246720541418393987198116300613959329619827381473115117929014771278769115335641262091508951380781501677266074285260437340465922306873551189998646742562063683671820803342616682701554274359807714668979748107425105365838308960394723172119825878976689058997857003890351955281468307403109373361870598263027492922701162827797249448295266651817806762856564395475038693485860010203088132873304740546715933472826491038239052585954688450848755038786709937716374227219631962472413594983988271701082965824559584295865402517911480542647931708583308186094074758197345432380766104903089720783149137584196371644744206827907098703413527208838059286656922642429201707270314054326282013003753188162142743208923567974155097837281513243585411008298318699285524885015198003715613433132401697252955104983048567201314415747440436151630758544718665761412322815087236533096036082687224461881706958571588124059480854410234511022766880897236403812395846037833461564440279663737939228593092250264936789680249906081589864292286699448139452884966598382209180786852625775862921743278348309704782292368210176911679739205245401508661375798030236353134777934037107599485318375849437389065601569937963401795975439305847386003916186762493938520760255987593640872052497740048496263588264325121663176826623693520255249753647555798559374099824841114555896121583046671035676898040534902862825845013152711948577151364290435735425610093007770594807679628066560586252821251299220650207237341981825832319269328466973404060862113113413794967726506164058561268658875747230234649101564980893014630198325909654658355215874913290358862750413729949200842175127067633526979355617223955802135430834158299154687734370544078945411052813212368432738607029776518368714262881725992748868078005295941624608333209338143120829447964723025857618988754143490141106852960259647808684492953704924525302869774036795852184520653195126995626124229051851311047371687539602015718880133664610284323613577846111004872050434974594701475787448332310221179342592262690930254354721785496508799987802022182819047113642058981558974566047030565954407326803846964276542160660322499523661232590617745933448639069559917896095855088166958184716528428504085594888727597967483722470227637563707803312571241326921450759392547028108207913109069368216644354472608654497007540250009278047408198261255574527127149361592062998356983317075596153566653285191124865364732270726789718617800688241738318244060248793068935595309957930048046632713578388560179678121165065023602059764417088106274404197446136913581675614833634947586920288504546917645915193538955687509473344917390046347562967804428917274457148880541254471416939693809124339596509665414406721054531426032799503064411545028555820835507426321614532005345049152628524130037173774612574273659818342296679210631709413264567138604116491813970942497707200883086840076508051414236442775904600945774981540870340004318564486065668795306821406845361055027000259979838895035627059920936507414406873508218311870712224829115008449557787656678677659424019664919340083287144525606815034456363725880282333417578896763116631650391843177372116442355366445340822924944564452799041174916269491719051601601657963475403577137968112154993683972840663640540480975512963774770381208718006039909263246172992322218919749794952752246264798694873046502622352927687542936418958402539172043220062572720618648508954783430000575763239909874451158822553345815654044648196184556873775893761076825673092495457257536477550399482250417016468215448941814368848885165489549207748673633634930728691338559236465129744139758144981063584639585319015547513529264283569679704228320528461400009717298248987789803974238415248966184347618490097927921768314330900783741546609065349118400548947505985272126250097500606992525722598309466193806714737239463402280996206928318067921417523678557895556169610877447954040008698593766881594086098409685765244862103868224831323181568642913982566493137717572627315060865606714430987211234965737265524021670994325731315388481353220809331563515373199231749412133295310729671362064906436853139507246728742616038010672279931007344115198755403237657898517201148311621432873968862874239705803124478640755144104557992690479650958863895523001272285786681642759496531583454947369112176431678690268390802139082524339656786644882025122500503256460070425033224595070466299993323336225955847489566641729205276811121363580995283776009246447206019256522389572171350459066619255601645564516947231104376006614617447115375946187250329381537343533679840831865689338853453874638419748733706804912286254823521111529162534727401351496431586014398264984978712533216882448573673028228565867577422062968193218950632554418142479607177340667275704149503241419410824937261845373503209305792447953427907589217943008271535308861798101541169930894496381452371980689673076825275659846224711481106223318423681040582708029722761933518199961583715871652927492370968998380203948399365951509053948785111426251819355721685969226743039578875846044597757547332496554024891498089789297728907324534881613276284730817154670444293949273545084409653267626679926985305136325937227758929199928500868489143895939132126272726010023509673261988112808305387788514457524367193768701731915025611819422314170627991230008442687726938435535806287341934497309802627787523239696653500148984142477191831369230369738436959063910130413039120610586608482516083219525953616561883974102729135967035500701981984614420882523640160906525052350352550234451084588068392225321387391083167433431534305257928231592498525592263602740356187796798571419844820799125415888594777407050825934004907362315713187749444876903931446808123143965685249661545731840497634881737292887089334368265516724233361841226080641238078843660797446978230111484823806100723617009537258965678291493038312315093174146340298144130963140788648029255085789941879690454649590812587159248618588367286700689756951591271833956608506176309626136021393981023825002969590126333691024598550181691460964952491234841650636300733367709071514592476193657477562363204427857494608938981610309561238218004292062897013085198803403931956403721739128267670927424192273957859878830473484504198123275630987448763778557956930979907420076896256744165927920121420811003640559809418392337406289161702992543501448659620855061304281412991393130387876798354097821430230688977368563346095497724129466708465236669148236120955218139940658250784006417314894089683052059257103087826787764972364978593996993115807345726180807057657230127927989953621237511145949415623798228327135297388204840960095812934811239987849086605325706874173729700565112754475515284625561603993971776282037281346914083347215558451030853776872378483135399882603009637966897283966941362835445371255691811250789375381051272265549423669528787731996531429757250138905304771531114231268062596319379164979453336768956529060083707385519211913326064906660153713815230212814912628995383609299301697224033225504751949999601080425196671174309257176600758933977071105533803871249783889993596922512085973684137583132813722612922467606066082395825444642815458599680772717721931363784310437020352160608161285903238577107935420681371909016109776721866283259252285015750020126416356465312645702799069648897113334721790976419562810170835070518064284359967483288552760365108504704257442889534164570722527196198648355367870759170591215671585298099254304923814360058407275720461200101883658998035208643933233922975166418751482946485847791029068357386593934021451742986582360127440749859114121470388173585795631224248162698218955989784850845558109268717467554362426612800234515464490154667675383174289373051158311725249109485936911121285382040339029323282762372071005912169540379215605994217536567747535534947172086566313178857496157525423001793860002652586019526613278122883156111587736047569569282054510739615146681507495943302748070456275589855404360651353808285467388057500210782058512591196755011575526056707485625930792894342665356728110142067477872026563667183620896111256809095187306607340238786848679835498166224852629459655644212189573488133868526747155280101078624598679642730440790171455742355640421128021657296017306768409975976664503973883741741803883397570695315786136629004102413441622118908993899907597623774370457283601298512084091425672092501327195482830239788239487421358016579145380959127871188085272628314959080384212175246383047551870409378740273762615333457778264316403883258056786556334972315476865412948983618602543579906915427355297232870391598346511220034811647205519131075488554648826521696585429658099769149707738031836833928972131882914524904585091658475124674080146824899449651382477453286519256690624511059658530909959503834757488822424579810031859808954392347026020846901930952395743074824502504356615523727711234558948735451871322431083267559122082804767849043856569003689320982657188835478783145480279488342783148514984951082082648693781029617961686098468333721367467029708943299595604257650597246547158595281075314444518415370936004430582545934212713364429895059469510500395914585593498230574447820087458780781569545804420661017443630177978455228786129634494418170038966464142516470962676934293182822457913941993723320251979090088920094125508229429146747142687174405091313046483674626584273554489851695111780230681181937587912542360627846165787499564555473963854933045930631116005041959150410696966249422641748872682816063711251694765712101256757902031629300016872445326521379116652563762599222484278849865997239834035552183528463446080310783593361996752631087358983160581385214169109547044927724868617752973016244865891931816429925114019521562434067040815172931772815944649416065684729259280503667248054368367017443975216789792529641446703592002852267051443514803392715794529568298091946783832057351865776952187429768802672526645959621105560850756360733916012425942715931451697921527680370002512254832036368569164705250895382779128898820900676400725388402297677135466217354505577527219959838382573896465722762574217302343964627624414700213905806110500915049440247043926215445147256325049819122926764272247379561077337183517377224902014865147217651697371800793664646392304442711228496758540907265445490631347171141200220853392813917817381037187601130466170274832713882218890986519428660969648590119323385493331852115298293408900920552969740882553107546830288042885957115211277681218438538490880117288811031249528514248842553414954094301438302575988504667954081985826942661520291924509754476133046106033219365789828964232395792541936107549884427589237125132270800052436435591043428134524686300936178938581509602302238186241264116892352260652499353236919446083955046689706197531764479992880753006618665539375476575161426187885315315474713173397067724037765722956166813587812976898989144541458168518273593539820105435643824834097323680163031991827973991340682045874436981047041099468652922437820031821226241571968168325755629526604666838842090139421349348849255127316380420480527796883177492519981125080567359393281645937114455644673590701844059888409926948694542168644800354468832222092502704664279250905801431880863971644923170269721744804700935513962034251140859111121055896251397144270692511254102782196871915421230129932824376705098049984039006119968580884013818692740596699834102793368335286995500407266847690563346210917252556375279270483937849192308237177311113651890838735948820713623822028513318461632862849614888499632295738136496837374623562917370294780545907983704483588476604892046803321957738909296670381783768785045393161470071008369357487103908334010929521107532992589915396449311428588737095162870861825017213428437716989678810187666801901574313184634537300927502059927099839749930369948818295046690193077832017536155058258570765627957778892892815012553566427139560369588359521231723995625103829809826133435964916896484407881084491646903578136817489988604216837134999748223443160952016553518272217099869022111939429932467833250166255704239906556326800732229206114953985085822142048493012967846916987790735079853280962921241760757152838343091268138677207971088294093853137432920328593975316554989381234683327970109254107839494546992734660365368387073969934015890613826965741209076262006858337560551845309436353938337981890317804892658603370718736203806844326320921491766141112876641510160003622997966087336574541432225743797201049807989040141310789817453280228644229689099143469220440918498673116384894767405398359056423334700774373827952783785901749707083828056435780555491183845197995822801047806227628628746923192970979533727953173286891983758519193595123967975566558694899611407616748134923064005113533571717425912806641138731777297149094985919471373178022544086152093859450039376622596212393368365384317987450286257553350327784979948282170311234987391242263390324445625177947857293769761919718823819183896446311698693611000764370076005845448000675792819184270732850250972432981753135239016237732920757757316961267934273813945759379771772856833701575143174736412084673311575754332102708883542416838596801592994692098927063981119809697111115553922110457312901554575857668268595791761025111887889643108190042325548495161922581106246429929891156828334605249112708408044990483627664165485869469410950599310081877871099908247235819499171084318307867961402925987223884093075445756025533655613271393535770890952492159808697789099462992812933230929344610061521699525398015940764576603512591772083937349615568883113393781717327880150419814916111246983569269831531293869662082997331726811478794871981473465812966972991595710140918504730044791635445069848041012450221150491048108276527684831382712077303347003627844498372070044130521628670267652982766985453439192492407019017604415486239537941222570982394155887779460643306447443140206685091699967529755900511339660661498060287988512344154409515838959258056975648501229068617580522064391356135160075232239708181987626085457882726750563963743058283573987983402337125991687232619661333147676074958765746719903265531179409406429916476918645914180599715720267918499462476499414311964957048998383363990052192060619696203996002706043535409528601415872220802521651055433169693219247032491769046929349517539146164404120299340371093512849119459511266113737951172793930699317579984746518772525194877732834684048135770798244736124562523986769802888744469477146105638755910008106015481236395280558927255137403161239048515241082308453456958224879432467597512554767390858420141742344422059436071354760993744482975271118095683368799045885275043957828806031885164046889489500350492637653287076857821177850170736917107244986078764471257508464861685706702406390535337916376239977976771842816233357889826290449065454024526986056358382369682982123537450986943777989487295721516321043054316382116934366205383455473692612782563549542570481747212481979564458816375211349781438162704895684945364263223844164379721115711920489121568571048756775920394917766259162978838881500438010273955126190066928391984664945869710703301251740819892751355966656082302726110254929670961631940890563819644936871272150885904808340485903290547528294272236595962003630723308816438551636657433166980582205189214167080501767661990717096762151546056802934438130722939072284993030820011698091985037276582798772863354804934510468729370143591571474169812423270077082732081316777352231100679001391827567309708911039641508013473197726433723970586578291754068258405921489185223688263996792860561772553927441348390743525687936573878128971138165394139435178068939971661027024273641337936907302108405593168894191346048617964361640095213922946212178928454287653543514511787479498669946635423097093376077420155794546941708156981918790314073365030672332420992850353546064850988743926358329114031227517563671600716248752509665245055476137192497175448485024821700084293902111456381700751045392839503966364802195549639746420465792513322346390624506089547587545700979762403441665090632491904614700447710332982082985017881857736332776032889948054971768048596950846205884504082476535329883867008743823492079974691385241166094259332516320807215920921805573448193320987334595879027939230937318351403912888317825640013645035536586359501763943059755785852804864021633005330375247503940809221520421488163094661639365756246548135136325155027648088578976502307762282204280824288142172192801061791259172121495529550370127671995182287752433283119719813950339555618318695369912586909076543390698464481512461795903152191454054356904752908269351453584008359154332448423847860585661566974550826631055633237094639607058337170059485622372317500923339334518156526826729118851434608090881875137665235005077703052199998144761618464653351942031426320441024309348847802453134680048049176747245557057257663240564058375666642273487995236464130597450652810115368222967003807156941296350475277522687350956479365596217069530073582914144511896235919932850047777605373651294708231511467707550192447245221754479952850330537789739909357543968403728991651600137713875464667945980980887015134099315246291085692753772925847325583566590312538505146946712615461092950558764278635364588999235047819291664074908300107126996223302817209105413826545791076878085882291363928572905556225706821688038334450881237978875514032354281838733486197878307545004484567187543943190382342847997962291767466309782631514334396135532806385528895782990392352904948598103277696687789136176822744286328911672473574244809438407643086376150211281263291656312175400205963536912044360039469798994937443284136030338987732480796845944147041292631847256916516076253251578812397346534844165721243963691606288471514202397347907129270901067615950344846396975004040152867742858149252629338972963753351469141864500584247479376115936934439139732124888792712566572688093663969969972515050260537844847220366337459211227330759006824845725076759625262820000495579240115820237462885082039197025601667445065799177239821456395407175851687110684330833644209854444569262667027397331851410214634845960895474141738666511920007878101135895216056895700974489591852661916125924360708539796938867487106550993839985370643524925294849688308603869239938294249221432862529948899735575966751196116196045954136005097672691625563190639416504006181693991985055120347091756630735627058756896984143121552573296034735279025296565461646100841025413712114152859040446087098934869579061182540233836505905054188887376209011847680806178226889494919123229421606886469443878717866626931308977017432083460996938579398476501631925209624184134899040140402949939641402953687888779839957096442406704347831579576316293357867909052161329654565303164741874477711246856499865682704225099184772992396660023750903294699169496429133052216087530582132995214386747532556783227289800305838043509597883216246405869265205461312541826951980126876423238784993642037788260185033821279477404490199499167236360792883129770101527021887120934255356844272911869669985835458244421526261745346567673211287842576614005586656233629123582012079756297422872555819824846089264252252073513318113241427050319824889430826025644905705687021052004819197753928257351219257746505932668649867874409974726913095694896731767606745845716650962441389947358535958640971051578621753345074227279256433882139231299348606718343462825711500192806765134666857003836726764946478016159033720587079802085946904574737056640534190447799355421803779139032721269960794798953387988775689328935448098803988880593239723276545046326277036754431473166094109760943538588570724853347976176027418792632127066585002366805871119005974554564272758606113083247515428856753887982631104153307637406824518887847234734477253281193926418669607029450016036968982398190172097547618162717481947394186709772568151148430120918750581550593443814920784647691226858859072951573115317171014996949680694673387417424347286608619514233435319942423956919281508961571909433523089186339698967825852392882758839222893998197742518916226576865018062587905942489378191179127266268462659431834503235289273648348628195861994501925171532821997624730545238269889003040630913967600688013579325119663589832363911410818310909939418160014982283036522528497341289987121395270108432045086459134472493760400616317039998021648157352930131797817499402380671075744390176103248500853002008515787953386888056395615780570647465857362629892874149663099651778268293735391276656290182201514337709412611857247667353072583117784620696815482018881610550294949060471348219289808098753942414645712796872647535538541745746136634848122926394214380212825398771756518776368180986937359842352238579449485537791639308394637555938000430487644478535914433441034739328324671739947765341916047390408349830394746256841500817502223792364346841221047629343256326803200114656338679487426981842464222796509989909228631579035533218115841289702294901071601454472564247476919924964689674467015386386370718252553244955397492537484159865574098060213459023456558935968129480173731699195958654092150421723323553161273420893373294313079126654652509549418617051131063350497668219165997274103668128802636426190977427243799182799926817739411015703256763855572286882331326673716545153555396525268031529138707144344530088835249296101308275757957996288916744390137011336137232268637980696154408180450783976858444721443936797308103107500086676564350839610855173529668614258194756118388524033953516397824627246268840927859345912369553620206475766691677833484945869730175387550294190134561290293570749086592191953876195384223028383606989675079193046160543122294735084374729760850720498011246207404335508140814822594369459585784208696624911379478456032892558522093543345970546044448703127090330237143539171613320541124736477235071087931257287976672496738934383505834248727568893941547203309170976348417405122386912210698446794433918654261310361038547824652592656262045132097718846669626188446831258802685902323155999555417843491237026376190436495487932261041811327757711528489478916688270925590569611985653879015799718316679624540515570617973103246960464747587119700975416809019230569257485992607893196942186689005730590814308314995500904077041472258697151861776477765029270486944198826767638414070360508594032195329703582078519740544162980170917000039015934229374506750114852040549404023902784734521380303935906359086675267550548126041019736062119189776610135715438398078015430801439535661446256183278266479522781644803188101831269501232247164336009061294247634838598671482287244920320580800169873824875964407815920632744706648438219615778159569713146360829698593275181216442102782217218634824732766615899041206071571809115061197643645293712117114705962752062895089425457356645143151721536359882418095391771328233729313769887139500869823064232142343323838288805657288717225940490620704109301784670492434572873000120290282397484421756554394089415160102267416597476546930220248681175692771117026442732022195513027234144562210353155074662377758003068763049625051085676309428821008875979147729275172043912320112920709862220590447374939378236537953337313147077865284863815891662227520842695465698226924951156847514437944325871830740460440699407605899724346207010442855487210951695805043735410742119458400259673984275399880946632541851750533923196609056518791760773152173347882514888709077653845132199127077257032038780059179198042818820518144259092563380113293624150289537911345857515863193832984389802363736003563010528599855158385434138401233081899945858409516803285305189488946908824738537389518460538158320111608366417715514718593134085326137871104517942694986489733227377476775870457333019786063679301894923592795439293181037977218823273664190315821030642299724335364990740618535571260313382828689434539381478977639867737951949639466565084889270446195824066058007827970750796488497040925733897730480098328922255440874454958739714055631289076766725247576643176633688247185293883809297488207950777935246112197950219718455196682180234237136591666545820249439899984839852567033352072862256650115351442322002250630350530551290023039200464920905320678419631394234997427564235703282513591217290252146433183420293417077620005482019784828037641351765323915824800254408030099495148343846649674632918769786488570407230676592025370083636017215412401599382912391575502025875872840818450347316220224475518304681410040944926460447061376921111802808823782985387893475215116917327083171535398613929166661487321313434102712497807525889374007719811910228747875989748400961504611837996126970475602769853537158250677913430997407286564352221577322301832638916901558979371392810969620105335833060132047292552727169344952566077150081813402153888177122391145072589271816045863645405615885391023513446526948141660699215893700265014694790365808214159741929944045033113519838373720137012508877222970799824643165577050548622865710280623170204241227628084261433580678921298133731275351450096213310643821053991386380001447119236930207262977719664072475706640550427124078560080941026652949002760740644852243910050999826877149875197523394299670664364954044976372752573424001032336686725737797418820835909148308746708117979668298077102517774786600820135960806846753306207853539129578730897477577466173309809554007188019965699831753521122344362541983340193831070163356758885652093202625051217443435113208075765355578868384962268550207094562062683570510063914560657624291694731025441060118859428372291354694038709311556095999911956889628224428048101116497924965835647873420385295617517638872572212086715638243428733045514705920083000093252378936867157587219463244685145158044568285590321088224232357551509045825816008666771832065724900190814931054911213747257867905379797418141737044636725685278248536333547377957176459690460433164416577748788427375844135951195647102616340251345295026957455781467663375075222572251449014195640096895430893601728264392230413038742740053901707491665232542553669705574192219094084225010595204289218474074735250888153930789080178258589683220135411247947354411532737024460160761606271425243531554567416484900440784712748640162040471290964067044076943547826745956949914156124098679023186715539348029942642202255455886101033370797184460631504272980430349016753334572188542038554314588085126758917433190652336379698281934221363119637960914829629684435661391113066055604792080193194740388189787344397512040177958204312047786569153631706643345849586428744879468248099426939157410839806422563342383795269223215105767054045863692184917884463571293710957257568028297652563454420309096413165546137377698895946001663983217947770638658612976848023090558004437288528856928387648216450346371906357126928519921101144152408561158965333773975871113707620070038501636726410882544429983482352367210661183464463709364833877363068302502960909065204442816924303874296284492504210460358810027352124290355200837628851326759409703928403833931098932221031149510430483650197395353273706806828422587766311035651173511374675680542747160236635506241612124930354252678264683493687223718267362695543630660568674846458640965706628668416239996132781687114328859646895278654924988839871182007129038594011235211741936295353127652758855201786962036916547593199865262161085109828965164339168403238244596650915846182995918881783210062139374974058245761681524404132816876226231997296053448364320208310283201413580090669688170280774301998123231259034286928947795148336402857278169672514364586590101185801747956819781532316848763270835414565571379341509458405407866848855862083096857277821587140304288017641845729666476349677074782528989511183917034171415611290808130379384790937298437289375142341446896201375435149487042533556204587533797615765009842223348624551533323241621417193714782391107939807209396102084811511357332440653102573228411268193859391808927762401312353336994498848679751558902294235054021982893484077563678190311611949845603219367489105616770286313795734040992568618660065643775963734657456603872092482996634168472681741053686483182913012116754339392178629598959005028944372695065642086928995246196328076893792251025637185512460070190344307703684101250717515652448526026167048654403805155797175210087782398232456559629121685659349922567397091790050828229636770337734713182852827640241588212441034775009395207836128382205505958998114759440166991570571400672116634090483750652266078092484477923844284885904898106847276986481425882475661155435762499161324529629592159606656727605136391900086766942654222366695031368595602587241567530593173762647299796845909108915590250035282049871280320386586121675388172851359660147843989908189387397691781447149274686340790246062987747161356377527110677710712029754571452639836375170354422034856420954724130673982104146317268609196867747522206507024891365350964085565034294794975426235560621879757138935788545770079611974446105486608060538890894880021438833886523470977481601330217366523375546252735994650932698031961316702914972810752936110086567624380078803020245730787278064332258384483317366743999071105858098652409867754309089733636471435592398089635298023192215239071627353739309054787516865141388770533886118295871895866400904674141770083677758392710823308554360888134846935456108977287377217464054878590218446219573182368494638555665623946112516922986125105896278685269651061304311115370811174137873136200497940095081822303807774028950607970159028054881255818538513604299058488476586342252934391812831766798921832369822449953795016302104179533144766757966621693892791315695778425825903818072809212078108179692607615844891214368019356318937217922679002551239405760187114654656016153524909494581496491934573824710805076476318336738553340448939912359791973334748992804268766870061880849670393630772635118600881231589413602305864802825545705215058102087038522823143458686372670395657730846669580808299143406573085968159741053860369015812053663315764408425131755564817648058732959296798188782481326943267542730154259381461225707343407538481612894101631702640829386890233964444073370707106247532478293119569001045187920631587992136463011920940428274682449425757253435268160926625934682471358016157752649812702978216084171495752722018680654524956232617370989339249075963102592836647859127086283828151750275856165419040715719549527403108256631272915533571358658086107594377471138109832393400184476987220229256681218570831922258670951614773264029789557138368434182821794240031926279902683792374023410023225191813053846042507267898180991632623995357432107328373686900516044959479513668188776619739952404329104833619416720971616141121361707906366852743774862239403614881904021669439418246460672943090882762128040430156109697435937953933111533229928599351655186415774600814670614618569056223190630001373664707060915758268348838226874636183331864249358255963765335135655421759375036182165454552804306069062825507563852866897176364653482182120815881109982839220760597786900895153767364094068067647846167940487222044571945750084253325916685620428658975867839263960595381977832555655221999110010434482783667537610915953704011367357703161125917587598704309340464046461184671507849362606938151371120887660104741769600778589207722841726401483166887044841068939977135603906476792884273548997099291240820867863674161888916656780343493291351774758993052579438369309997529972952231286105135294034681187965518930284835449995668039049264466614774310819293131479998496148099841896371762665449307203716441569156063081423286346512545903999199835953190471970998533473507676665858597842092707270325605998555598426991427907521946054874902230890878848409512861770025257064967770139615558129691608132674023928268968329192280324372287660620808654979033517495665709425300046659189485136940657931041673285796776304093710591318110212628095383207029850454068527258505317439494713285108270445096690077941966884018702118103628861944275517860356140377674176553800702485407320175380062235318698268997147570655948455744637405451919428493944318787467848701497628380026409285309107090144071761737342109393564989239708796310938750773634706116760837211094014107408568233509560185385235650292276261059749309919115567112349175644234356357156454121700126601339894123154072443215612571842724685721371134818132563639967522067805284056026206307628191198244774103097206858613170774950812069408435240195575209949453091081037519163725306591057412576504027232098900896216998142003492313756119478900764589473922698310095912425599767461611564803068902918886372005027905955352693938940901595677818585066349960585207522256242846874014487525626918723969376484084760373022688258416156997023515614972307651054757447061022793349640774606330287780309531581008070020118741720597440007133515068826761024948699949451102486811764466687029135093441316066849018559441053090747488576095717651467344920631919517111188337808535541009401276321723308295573204068784500506768936740131204544835734290621013454101066363535818769345244097731576111789788265218884093605982074342917258954050731759915529844485738191192395703532671206614810208210279035218089887944925946116704729444486328863580660384945580371847290093109493041812713237884662977009725306623709625796580419689033976644934906991477873190431108159663910722671937321420836270619869894545737190747592543660903598756688939701675867244460195088933680428575255997204432935216130332229886700329272934031339695133159369774919925662293246806795592650717627776002822397133934435206174123741719420315456430208586131499875149819254866780953405438676324862797841328009770846395505120740105758598503987358045223652197182714291301390381893928314385493492726244689552288340452247463829047263271118938214052981163195341642251893613188159560963223474834220274438078298780303108436209121259594323769242604488780510056787409498746133733434276482677171513646548837682416010830255256190273908022337229084068465778520735235946705284918184524774733709122826209572948691803109882542676680634617245100536318993340617443909041274164113898471171116622427024098885933485931810755033043706765847702849209336900525843596908806158396712208709229114289163239477160176937838551530022562601663860855551936129826138120465675227109062180215263472824532343430366859445097638465567670045200837342517118219143946105702655320848585664085148597592399711195615200870692714255960484915809785174457362365603006526029626294822887858571629427673719492711129465534374244043607744753581979457560046580386470965580250292960755196002975577134427902842737176122269397476140566753298274502977033663644146361593039947361905898909106712898887253745044346438900040564585776810764100341014798969827158026192860138741658145486742150295145880983177427163616604166681766169232596839772281951957079608115109626763610965256503052486663462392596629412076921454524460804359846842614336082926878918072529853946398949200146700324975404846695703660648004278552768098098450087013854011594420374326119132771783062831095632215047360868905219249198571450936925550210653541987156147381493958534666372068429332597367334312747517476800094822341780283203195769799609922235476850385552315092684393327506684412517920237424675637603693230139635121950303669575715039668943353965200092659222548831904627034508116850672940766568475041130873807723460438645442206366944871594678493216322939737867501232593887398326570094223770276774277985433448513837697501865536296079910620550003839628022487095223941755247097011552302923983317879999309531736366672835001940741057763864782607059052693641406590471585506535469115306955660925787581798784029001197801722170302710070993628723970514391905054029899356233832455536483485287715756182057448521416619734193397714945670452759612068116626638815187528690186643612590247445005057637398722213079417694519383676798054047770829263094617068425581376438764923705640872502762253474515710269275938136398882167724627464469187557958373500400894291580370062248042010413264401058033279207496861845929264683573574659134264839989758046067828905148896174743237261524978835614158002780218643326298572845176383980886277585459728329098324163055767208371264443675917274909013863127801889252414623101858265533682166192415616487369173084371470788229124561853036804580793504027157035911559728178327751240926435941817654558817373788700108474808491119287941245380831765854545204960897553806662101181631325563429947460096602654812640925474050144081929144671093566480157334498226915059102369375805970761423055374032775527870751362792480040195211609937193977558976022940085282045905533670886158686187914705109519081618770904395520241469046083330358728194443245937632030635914188709359009048867328107655093974173446186566431328247603659693524021009515201200197940956258984712753545595120164573522907353775877245927579860997956576067996222576449644039417299554908991692965545521507514602821488253943056245187663679114834388821219999391216922488450286623252296606015004688235910736802889610982202437738560754859347651620302807227184251922603258548077693162534557364608632819305019498056478245054160923688241958588933688310596428663830418074167193405652143907432023488657585714592930731227034218182281423977272374309974803922683172730970468066001819398997232234629449291328108384420646669824025680326091100636250238804357095490026512250944817727542603076699029725433863672467247843525297289277731340659214592897045538314925437485475326255916533387569125217492968624188580089037978796727723585573203485562691535525837814410964314979932229603627375401168258270683027114082025274544866155422025881231975755728203607285538590107778960581868996065699820636528713023173308163984712255676881625266507054998909784696889582121385086937216871567592503305565460325552165300083107216582274338735651465570454591263819539093022928119944429640798849321003718143983770457245936329702806117710755184598138433555776674330924336296244869464651656003104960344830788875803107780597767180547728488227656409627005482814261849282242749276603006929281949766737886606529361922248883396788299319268864202351084690167110064225678859201341880759050083007948571910683467111017427189252406007473580409097908669375629448644841950186301312160103221389188401037035154483217112113141838526718440210377426551608513038600597728834514249100550739995444941259267325043782012104219696831160130768537830397257623062338691641740010164721493972799989163497722689773242974251044096070651234524855103029668340668233178356500507207262445725956761527398545162952568713956305946905650575972816925551118647490653428505314369596835831819158186725223762275563093544763682365348620978472355242061384601261865901453692451699279848646466379607350528481901006054964926398311370168129729260461417464474336671127107242818696180241346412231481599692668659762249993637849606282620616135372055153286622182528369442821503861397634826461727725865051311624134702444216346887877321497718959458745183806619066741166139222916019136547503571922494088753485557029037807969078588517101372978789279864968668122784133864914728327361109442395513405202008001312755662552424652393405951113655765022542602690652991550113134059366678377150223461239683734971168947765188463683332327244142275585413007035659063982576323965429019575948087217565317212596998213679076704870498855476459420417986027043504294526866774005776173627258119795011785933627229235208834621281115659939372442273443948304337928296580576790645668809048138438618851659235485438487576774397934898210055587866174654551011742484894571795287010588052712668054354535943336650201420231310907867499155418934608784023837796518565087764099397801564833521046360495437698277341224806664739055142504878588738710667702915360744511087674763554697566691401431154055753404085852291228807117385337467914892721723959700742981869207158149661226699566774533794450217387039314662472856640467092001122963256333230250780833954822663187835044502312351574508337779012314689635910406059169087574340941778443113853497948632515589540396544616600035605151969564217465123965187741001585095266770909217029304445820707746947135201300979796830777814050272897445353033358976285191211233924158506970429620429270914236573645530879723589732600019084731407477377278289408794446187440845117077819860394431230625029303299060846676229092125887628982899424642026507269921013840311740904460645371465900978716705796391813115854147959346430684099040462735968213171830538774942151439108433866731538054463209721402288206157548758089047150211297906413997932534815476100950416202478381163056676857269231596836428616497570010935900363967664448378913509482146401344899207502527269346723343073134563908240898286581667641168365084891029654710384407003573041055399298248546967018741943947336454724076605882524109592991486335831185233051946830815318902613910476803163966300051683079656515355468971911290661111475338338414255019530014688934694229186084444000205330436118172414034740527844538223247496662144350820141224216136436449010300907457516659024787515150736049414421214641556134232494213789958602362467967400798424091223351925692399271598260481358658558934141047178645037680096741817035367771348200946771800046097921661963623511978187068495261919507220370652687701062330619441408750516934381212706455495362547970026110832192403776642158802684308448861359679730823003542611224676450598468050543898475830040149212256410038125149561420275616198677874627041196977775859777436359794539666917299041038653252644732196471898181065939905259833122747596515137821152854206677146278067207826821685784262394737784313654689244981579960786565481226638193010399596240669484499072271116775212442439700541139397713045244675126497073014965226009541117378048922605333907606211927371195136342458369312215035807643423885905750141734808035365582286467313017119600459305916651169829885606322384602332307944618110464843730735236377178308677518111054323507262251951594207131577677364630687932751692691724556756715099570094470122100214218102987347307306146431371754867368677944984998810544846827479548168553396512134845652849558537308504455862503798151684624480776769504225818574894734419358376894621621513967893018048403636690499934537316737316646569994996584613809411240423601260002509256718558754550288206789379739375513883829382740824278694750624358753528480088318616929998306559510408339214831338429820724115810509583011475633403277311301926222818799644610617979403491816048858239474355632509033996682369577012735787753248492996761779855626340625458751039673108095792943676454606814849619248682802239779518988742806471168740279375323737297224733590759196671385230524463226080409151314701173663068452352522693001815613826820814422856846447615112024162113158369183046778192965327827755559998511479869233630232798390200172361321998826383512519662354052584957324788296437585502845838041275734555005287674191328002658069616550710534556358478700809405226563390189054223010601295305762941278537841081670822846144844882078594648523399636392525593300086948436677959891629370403131863137508366741204306207641968258911305488229659025444735895624808915893331472880705886968291874533062518517839912406126962471336961238971735331222336832119540616414077723571305724250035520120537464854818229720095874226180080479191673092436658995760061617193632864859383971111317030399998442818768853993250241153216841743387658347783901166900866995452872458414033653312528125646070741003593844389843006151357129322683680096610030653078123839944047971336832483354757374409396015589233434157246822461753627907466732876278606103163740086002100296320915756508274747839213535755411394913830110887521953541420762117855022889183811430303750400878731277720304226821200589070537053683696294882577411656551387811277037925354889033580528420119073044415631463190794378361869361971245802002696569496959008052992460016778507341281318454236960615270469008225510121235177146977022177829425877580172488359080109773080679946623182416254529748228762133944705911391290720560014777324628537100522231677615649939715626079690565817535801128063904444955700362543747140358456970878923344592721862205139548055319839042123939474074160160291678404804665788340484776838500557586604977696343388265781253887722250425624115394454807157871798153186164802272347281815634134466342767158311351356352048378771395797360452510057687825987569996345545625531944822933755177203740655060578621297208836179496730678589731497963379394798788472941698220274289160007435063487199120692371174926969494777108735684685893318442924822307755457848890545858996745400817794098923382823716528171396099427945250309610841105116172121820372910656252262987158828507821881503079654684653674918076192199810283437212002076773522089784483396114265902170743498163603442069126967084577170864957349132349880404619354152833522690157282812259828210558636484059365132362917698763615609314225392384554661392837041293085163219396590999474902839206481487592992655410592655677636641573822584824728355707702323763336798350349063008420627143098728090756936836652689427605054038637571812141267325054781409213554389724947141267729960681132152248585150069713205728908602262818851750568386994222555245470387392159881285357444318088465833988519528070022015960034788800990988907401827456600413388184618299997262911432008294178247476471167855322059816306023569149982717260831176524412161994984605892601561211052013833064962001337283022038727250557761242542766288049701346733696836946203263460702350106976343213449109192227426969061861121720278062441731908004508482256430275626111358294205670335319009408926541922062946592121860488010219071396586153945718678791127738212022000794398541033891215677525574469120207740347043450850680785049263569426889973078715638518432904273132070840709530298733189404784426249121063464640636015800951616047077710797325501972487225340619815259605936898692489693660511911910371358149846027413011200756309946689479966626058889201856287053238944622940615970047598511588182716746088562794424148523272352097176241051680013641828056454967832145475056185722026636201450523919630768451895369345024412885176476163417637193507330193434283372361484990160206759340117473277040814456659600436187381667595476636307051894496284860538139782979592256415760095347183170827455330103947568168578561242144320578083939163710008044152850542932371690964963680859689572586143093857865374048318182456923694980618199178039134292670977489319508197016921912535843714826631234250444855300371725806522650049937294042555487091201305509827959940390414721844924767802841266005743674499505852391366395108246028346309720512855536932725998909331805384176028896781221438927037756756555671634844559597529119402257337576567074067304677610477492385437872708881642221603737606667070047029647822573484111698789897504941236177917803799105408449391137710755040133508643149976656333035479712772132475307766324490126530079832544438412488291447098209122342333201442249924784411565351079972143285167925422530189793178595259146382992249913615036390985653564098254655928675220834699369782764181301395012533526180707705536924956631181005575970476195275492648242671132735715341285695896510301466345625549129969633268442168443921642459954408743650985300685044346575151794173487420820736789186716050926477508679865521320899158777913763581698128807437610487906905887260002024173078564595890465032834827849914047307490185483201309771750740292039628008829669602247674533349336498493506041756628954374611551764156881303159039554919308307542674221251960391481439366930826141164642850678665027563787299735706600678172056588428501752565021043093724917111068416255734902587048330138841224252852711407407225614336680675875709786306796872913042562940206346614067812928542125377422643260809724472802803846271986362367928788421319921477149031722312759481803738203267766873283855808900569585170941756874202984514555185259925027160068280413719265635675652741057991134922099142742116809555280142159534860467407503598507925112068863347957683737818740620189834158134241691275007145780780612934552713460608486274158299681243188033763865622325180168666052712601406210953986230312918882183718936328513366683283156769907041842277034341056120375493162281915767005726582500957051172922534079923096753210800787017677501846030554874889632807457632743248538663749524031630305312256745233154321556230955587936158309354713277456658099374428774888480725198882335390358007860037179866732416339894469212238043677409629146882213178522867528609577656741875422928788786771957037539595017830301475925414939457391931335120953986125129314243250090668003667871328071377123165973000864525009711462286219029989813973390982159462497593920119141637097056835128676279823066607897473120288659672527958997094362223264123311524576246638263024654186732364912979309230858614004734691440868531961839698070313057832509111995281944222625725679910886611292501386162632818029847462205969141400696365191693054642586034353167024844093744603699000049323523703944501632999040773651437370201657467279156445741240060817219635544781895267160981246703983298575519710060072196009040482039465572103715888449596221497711882661316652536270540179699370508096074210039169790310789507718398034381418104046508953078329308831841752677515652620643605866907672720045975185313634644971102007511727642759215548526368600588223922142946221731765952351061776223170089972809211169641104103732577150807496246036027213828048840868029725755043921408261099482578885727930643848624291329194065213511236916174579615971284274270394993978111744237308644686418474625359518496441611094729857492785804128244041046999534605749048150114514855997287574607882357663230930342738296868446597536018999389544272062554060113079297045457970942800015728349731959891797829417018785139500226208792193242479276985073037996984346609666493991090643607038057190581393784756251970612158062564240999358059262101296122568427453647654525351874334847072267055499143370623127148995213421450424257268610892196556992745727358651483494733853929599374158913673713722915386869626968938258216485848998105379851972767359368756583793136542532362482696703312231846299816789300453222024869716021526877301643595393366335223711028295683366333978039922341320543441941359149630090619771629233480878911548051021965788668544134419046238814961100426559033481831249169950083639045591473761431747150185831993812562371827746687145870890277477115982466799158143926480935363997208287989937297310157141574530340577418762461371728508688614981276292531122977766112311826963940514244201013429975029136218785938314284497421440539296373497695626140933391386799667635506784723751481851987105931205839100076746334766486598086878042870150686748131883534925969631764053609803013682188852878187904127286779746729279354700417666487733049209547731413173613435967283930311110514104764992411053154908756791957868035925486104762206593261560795115054705501179336508340136142279152006368633381149033985172844009809608456456907007416247231174420427244123192319118495717143648173091438566752274031835706089594359396420455608438612416538460862369478354635763803350444057637069018201141497170020202378895229248736881902002354043670601787364359733979617636561618071416834671243323686641321157984918123228366044030996731245175352356678652604025123520747349434953135908331103376199597623852256672226716726655071446955602298627978768188492813895603613694607109539785135773853656591308067189790660112052487917965411368999471613860393670387355542623197036733862936489948332359052927948149716354986709705577858382946847728297922254891157009680801293457287475124199938879499806570062151508432578192130542896550254575852214210913539898007863146580829417623660921375802646109888977703974569216129585207855246787472195144661824970241661802912744489081631901727545124185685078408680758521246274812091058871641668059145511181127179252555887821402169258696530259603234342384769872624136317902492884993823819968114059349381011125646229424525282542703207075627772451322693940746922348501569658900533677503481040035024870951569150293019004937750109253100958791209831674771015280416177327161702531654857715179942797900125984409092362795521217153388509899339059502532289028503299350825424251195173630825841560208610046990575415120986008830224579946845812093943531249324121839949479173928519087187258622046624326625230613776421724253883975920043566369817803547536190787614045577027181691194965076638538544839453492931113273936749721157179434936978397451989468842396755602495438381465319454663237002930344305051330177199758121380033422196016467352520708557318380267924145852224070926524867058651132739517721901559212176413978118028991160777338708516803805104566758867870834489780638235811158601557272135709661714010105815333325775450018261774373256968560166850403515208431494980507248020420778369426185982802589360568368156319264717635086349031929083659714496762815346849669402255289903930926500072690614680637224786006478293123008863967889636400146932750355274390836514634207848760913557459141600997950543026402594053088116207649205523484015065005951298189237237776040246906153130759798657312609944317859335009674745001133181795029014386812870321930768622279336983477129396118150865833106144094553997428820699548760364457752590187620708831221494202759680053955316124545649348451475261350573903239332279071284550212145246074601393014141947193838518630308000065499888168208011163481675886132254542437610140583011781108801644367374446640179002810255300834943197682977594893919397051663793201732997000116521471042780258115892424550978319331608776911401212374242621841551791295495591484884798288183192356909235822302725898994153610790079002949077104147315987938801687696393152863020510021653976042998941780394320574686075737534535346909567111974702725701480606265755586176542761235454555725826823168804972782731179671867763243340091784449881764214293297748981597630277150293884858533177535875966844290674623729910427087769396795649225334164958585090323985724493647828303445462228028829999824048099427439889756306961005515053511773329525387068535293801497339676901070312410978736092130040785678088929581105305743310012440030914604819467204499955409730201921708093241076014157889499700272187899353955669715979911256926479298850228493197763118869390443682468512576891752656489212782231742869726879547606680047139063419063703940496423883021239870183657529557992482906940677565990600889365659334042162117263698650546210542534854676068281110467035812636644377359738764657260841473217537044448317542101095686884572995663227971581822518999804581301648712895318421018483394543794002179719013084940004534703007066139285448578695044078544081889818922710962456084986113940947394882133170571032275691118627839286217100040895559574638130757839380802147529676118939000066264892770887182749446966296545491517243576686753171417509489887791962373974871100583125694759725684635102638160458532840989719778189699899828016948949444457730386612069599706252665051554830970524195267553001993054840028611248540439985515179876496083712970901342474530400702357849168407851014118217137392184913659033818901598631335483812247502237578358495628911518004759344870879763844330876652323452473917741354893652070956075980873816032853202070507538316031927831437728835844219147155821782033427698832638405646166426873755217505442377322817587812874491220971434132122603448992397707825508095042924863764053229003543506407546121283198614249569747121491049428436319784646409545084761801418026278027454513348860466721013931989900506282134977774193722563464687810652709295666227676817912310429749543243975945634060484634492989773883701478772678954172539010799019525825020629137249572673366966178588858178934477600471103772564300989427589686659911480753874459240042555984351450132551340938905087736341840362422700478627457935037530303703218411442650811683849772176314028792145344226167464765319261676746930006539518916214215707933557709818974871711665466329082670037506566374503113580096834174801559650699026573859271072819863852978388682461326532007246490589587100287966350690191948898911257595561441447805837517177069431193238742640246485557045513544437615447267653419235013483203410107950785208879939526403779600591642461045718205572822552029425046353238407806426074562602658293651393907495891934301883936305286324013023141072153188708632104008893226566370137575880462062812227355120267772965516182189786503854016944331289343031920588008605397831702641418498930320135478642688556697824050186941300949161294134498378639081643809908864564628980383737484588566299287894631152688305445800105937160185128412771492305645420540005060410517702743506612460352938268959682504631857829765726205934975967571870784823672534839654604755916772476624872797830303727679898784335560407356699881603864593639869796988660971937683154036463190518799359377874688618201548589650841008057400273262811575665937950893491879422980389529819944092222380718635613259975202677406493626179842733269861871968807697118011263874040002583391149838235929637328975807171161369190594671150059261764829623385263104987113502517513980906270066733920595455880146640327854245312756151738014817679295676742258704910942369276363305184605009092320801416668179509986079266919901135377561891588526484943564065501527609268806040265072295198353777003997012467016467127130944815916071738599495948456196426495818677159900132389256395352656708736703657042947698572965860073348946752943777876899690498506565441775917169159434261761553398514219618648390149292371357566637827523571823148162540013752594878879607796402222474181274436312625497252397111109594315849396129697679175874785103985794588425395658419147338760927170928440588067426070314719252689615398625430077314086104514997711857773863033532417176520802570524711164560800488443497562688191828956013160614305723143696611758942555015201327767802463129555376218674751432755717004965642350987056140593723755854580459473617608958447306854039617083100887756182338842330149262661131616318813540791295851870087180366738597776694767046991175361644120744975286854434698805625409478971299599544355442896614890812539398867755423912464078533877009035590906567415816733385490251075405427141812744152339882692107029436498227127838041251301059374580393745848584545543228092221064821316748128706643667146739286355883046786868788026644666448903413740144218822161884882029741488617569221464807503264074543968185292757991757976665745652589863845314923002689400023005928562544791643680126504921890360760421247274347521199080013855431908564857062667010004266733660027312521247832048656404654718941335681696610308834255247514736865601809563684088980454135640956034238004726106357994199386306796236334172199357823643620371968673463231806073897724085029688029423104224863904160961700324637700815881136447187103237525525129536078291247637898037981049491198247955509784013401803019251823537633467633158226370227288395240086907079767343393813159848553852793422068454061995133051918936382400087571439261176416508142085345075983401127485324667573938362833558553965508289752032187457726907931847794868691146933668990865998086198080729007645842625219911511732353011717805262686339579049702472445373364729058304332553968144479158088033398929762440029176963100597885894374232713335276650134654989414022883992918287501036318374897981783508867947228463244614093103167354219372247194103697545161690687646657187889265085935024627082893924324936199515268447806212923229636292600836893717317084979929916614978351323128041368684191225827080618786647421514828275661183476031529035771007579973948377980964542833585580426462598764724204987698366801013094362519005258445989121382172271444435918529167862196456948629543838955238955917858657967770041858780870809913750384192226365303390404391672899638421113077396753335605369349843717387679296299611818840819197838813966821855837900901960463207294364290146734921895328674532470991647827833271662484066538551998001003417919120507612540997271741499423132066429486510843022458928898003257584832590374473933646666252798799011628976168217393472461532386475612657221504885852844361149999646286404754512293731161581831664466822657045515788049046565899489563861518493778368123034585257558547796469081122278390580684523370331369748797319614065147941323340146397585097688225718182723838119357870229724159668171517799246667061789403520617134125581735070289792834919381113525186953475872752770400333690841660437943643327747740574813550004093297432195734990289069712348502752180583036586565626497179467454858243542100705370007344362318928059292977905349003302208555206466008765568130469424543179663362146243659717085664422563813142931026140767638921124944443773389531088762427312677886007960161097279142880331560164429547731190363689508463181115719748913167440488853831863144833719748346276562190834219701334125532225810945085843020349867069478586425845883994278775454070189881059447656443383965629922317406334154042520812448635931781656112588934812273449592560128144505489161180369216271855834651806733184772048306054053550133817749408211817344188241907356037558852192202829232201020274820255056274996218374920694903168704249626856517331425216845289512291565931296459351315092648658347677117346707408796437942108028987168598756933134622944860838245420050023355225515772763776019267500518894649614377890439743761001247082423142867152525440901902941121582943453407739973961812417953609793620754287751187538494140124254201680934594627069959320546275339321522525281426454736336478461964590862900695632795487897906954063122741333588169099104831124353792919618383572339221294694843752428377421483528877142301542739366560419195563356155492712292660468042954621263095275570472483110099705193755283586434860684147424079224986670412863963925998059224204298923249215628782614585414779864268728743987043172145873118336034589025376758886551139883828030617414753230598042376567547345313867294586951405990045819476249079080392100333120568934181903359181714718118720103993964574162234226327411299559981917509414554237688003683474495834625483978798006432063319069823497394124290888521352108673306235036560289840041353287512966946425196660859631444654876839061586134582290173641698179909074166260036816733402107107836484208537402472543032676706240200388127439391978807157673482598118441290982002983831443311411365631034442339044987453482479985720153776001763779161497578961242297392650495238692884462303759151095592634953231575413927405598894350080746512188416266942966191136061272886178060548698126929754923066868764945169218994092448630393188723806567212892649138764041122152474366508585343417953821375870677516261506196249152234629921342677214115387677168325337412443748507206152302797574519390771610193244306862791802874476690332002752957996008722413305209154186608948969127119075267461751366547084902550365907485172576397175832876897841758725228065286848280641695124969658453889441251614189936690458731334454830560344361233405777327558430464861472975647830019179231469245573040684870078396823497487304989891275621031466726335888297651789951389539570431849634648413249318051565707852168671946150217038085661460903141062961759422215646281563251958366338821470276961376430284285867385225071640833333160205024441081130806822285304258369568231854834631368285428277344046006283292969952068158727937244809827920121429985430247083859589251955540040974704078603207447671428577702156331939379199360895643343792645522066731195805653454311534847889108603110294325197889897302622798562332184452336835319132345713381242284252083837183134892843912365011537152208825847193811865928708576766590569708111573986249529375227509086175846386826403031263287612060964814255926675547434869498902317657892277938294933168723683687982144229291400747332426008099913534377693306444921570906325674046148407479561351194837269953843649444699497005285956047298918922048387711012760875915489435750596964330119567921668717975969874089233742479646801016367414207805502654272691219247030772781341242857227255676408737594392256230783771593769166880059840164561477268585000078739070290437622259080348868657423642352068614457574424003350637005864554426779465990640111529399283259170042332165514893219619067305101985233416598183710635838865144885935992999830664854128900437200938863794898699666337374602817641806345769574342986794886742362670302578325563309539681051611256560546608423524093846131484227882002538125200023778563187528402916170128417445921171259933805037643701616585639482675916336111790071260198500133697657255356613267040884577501694172503259972699889002611390106203032573792087097439508336149318685021640875864691990771346997121787281224680299122440001513550272480015015269844249121417758004771412653395887367307788054625629476052674560640672109658779158216684253860790455974677017826977400306137739097919240716971595650074460127122285765126615013753988517492976331692415538780961798008027698788979465972482256146830696068585266315706692476724707992586269572926440961828538468180330835045558447571821885605416678259795458760329995979432951749993588689300107763979507598709334421833479622902477970797266903598000163905403836176098759399746788045651266961349383624242238996514457774971384214212043528485828410590321286947394767503784947595435685793958951572997075999084210732851791918113288748734110541823642024164216999279575634296348015820630439967658773666577655857556855301597889904770075627126272938043986736885943852846726058133810307087971838100042816251655044915236303705583079448351232160052849596206031490379181790836179477984360143400016311789137494893859954595777871720053418472617120144704916846701427207278061461718546250037768103553070822968738200566177330366518615474253185521979933000633987418264311044121884448504692220354229854477387117510792043338882308925409263038312093705795972622330400442340876327550641387117246579859791574588421664740998220681268991581098375381560182967165603943350305894595348408275411781980606773691313140426036949340359424997658562187067015864300653959795227399184281658865193926044493725666715609655326271594180054442623681850043970259135757893118714904833472179693469090313040091429170470112640548887162602927603909248637587009347226290322124795457883267926182968412609399792078520405258771115457973778649001988471452672202557623140404863008809089157219641948868899731006250488578860390076838173929954226924593525512680430937329488720126853296097783903479421832259069258446049395530581339620131072840868684075123750403950882085751474087520538807972754680720592221513502477713335806301507109441200586964226462713612491760687575928719353509022014842077188570508777508594297762868888483506155410160391965357521268250876418756177965663602193468048342201849149606964073851645366354489629142003664302331925375884181999547587128113946297897585704289992116173051516693569697746560868122850463387121925136201607367500484161113383964495325979459569440916368535667778484899744410157749636956985103499363727947103873536666600635959868249819570082314316257124289106352099847387483036412347470258794724959038286731486415666432409480171766202369947087838519877837320973539634454918969989600031268660383070683503742413233833427895316122552154693844031914413110117693459976246504512583753369093372871014653102969751283875686001255191188384404706067187239711073075404939561245768968426946042842742389124188192472717306017778742610457145270596697294023906633416111929543695736388908839761290762956289527188900545559610303328562668768640861092671178014116216220837736035136970061301401879489920947119074695370219867577965665596641678846004206216232658378258698702408863116397627461616907587269217829256356312012596367780717024513623325628866563989424894906777864690861009152840038146993954245117937106004946861828644208756784960367192571922105037075702120086838345940714349653389820633161680514715629755601169124963058980731062507402172993012484717407175049472440356437715448531598001597672295045132347686221448894378174437138266955883991838526986537136903395605468853680509519594361860744614778850326016994259872921212534582027164084869112850973079826831118321777663135144332959561372179123272681979412944163818005602384710036348130741555019002543022680692597219592636045636307911265019608745757424802461777472845190206065981517013304609756435793906026614422771420060840233659386545328252205386312518503779609312516951262521075088431928460698978218279359050113063558144990215715035749214040370490358705854575631148449214397461275026849793939343629839253765074062615796178616803126008477457453979566404193971467597175490677938253903299329364391986413851080621029824836701167636819421087780755344404492296940746056488842496099922747439249173118918514403699352872432583338761013117596522868049054857901532312842735140664475715795117078033823305718440021610211026125003835190800324338703592947029774870703785097823467825709756447390572395968163519133586931514994020368732476847605361181557119620174736368818457370320631179410252447878714368067394038442095046835809164823221822143695221685564869584178952145354260024168684905696711148948960107271163917801866679945778610199041031455599105033408299765630267357331282452634887722996618145899354057647474415125434488330252399061747598750216715573274280152291864430756082691552014827801055857455920112829807914761061055215053047428074224857925410218461533517337876339349549137900505130605608940369960689092551696968539333321588146617378344164313657907211764553672282758998503035997481294978016835027875726932251686810035087788222598198611938178939777806598287573896100403324687823708627133171592433886249105471404822892821499135537221125658779194371909434277099668985632185874503456612207788134511337197794722236793188342494229534770883657616526373964576631949788936818731435199032621098300620364046439922430836986900299930620571460921611434569131531362610922098164213070236095627912054615431391087516698951328427376416562509002650788905182514818450664796698394865559330616541376615565563545619574522645592278869115139390252508395149787140621689909989325033532663353663570687244447980928074600468117996200387532227763260931839093904306672322147900074466763771715330641183153843726468927859928417378034600678615086073760163180247010776192144686226024529291752204858652333289592327785118008485044661646267884401742950988165194770495959468613181561344681414937804213521022876383514745614299155333525058768957961758383278056176546476375776138730722297161901112662666798745542979418335663684660922133182211786875394310553982670535649404270929223809644745200931128814132334752000800440575099781334861834201954106879818175258301928330532467983553590363997339506430678866611953396026494757661211538527425385296998378310484178576289454969472873562180314801551385793586777670380357682122662586765381452331720508475206515085092243441486863772664535959189180784350174349570167397115980074600213112225609383559476170930959851280707720197607449736228959806144228273737526988304965322062680479232360476830149542370602019358726622129178982886095305260277874842158126514540137762887620190999162887978659316328511708305001262859852804544247851494996463802313169214575519974840448498038516968842699945269837590935849107290111144676215381766697168259854877004954787110769538073591425019875530305229397288077941841932313722128274488943124317571429087204128651687769528232387824614521650888384503590207277233698998343987696178944599454299204267828809447340070990147993836760959190098968993758285945886587381056124286239016271013114951115681895103693920522624255529073872059452533366729242460481022139229024682260458077436259396989204794622725412484112198081579459342095930607894573773211364511564827020017695492754765336181920711242342875687864730124155384888297150019113846413064614147346923565344364891661918046856470834350584842703048782501807896223284473441668396239718973416425682157317543332098292336085375792726458340398031074047336356447551380355265645026968363711172807398652847578365605366314235285259618065843084796603218286060271610163043217103912829241439157487005220235276037513060370551433208550802126143999330924192529936904142037342014935347886100688416581239755818340994495476085088129744096612527121052838768232249045762907683406894956307489455423923164554440521649224008754468611325551973797669969321628703342459419150268229470852874753133113529017368728267532117285175207055935606485997537463679088563349568480163252276081289540531623738040418196879524380844603758130117051245658779744415624384401280260347061283705154772053585813592756391112920153831171214815785113462340504296185268022960380587347823412208244992561153090107549392670732945205870331997994602541119340839116821041487920520781849074168338304223900120604835824293930556244416594627730735270169875749589127033910628421579778314174302478063917369570421571509650405760605338344840738822328377297349001255921644656897054292473883598611836345910824596093922521770442152315069181367745139334038213421220575318146024511620473221035505900526112455452879972705317825755528565362240606790519311229233518062134891198871908384071422733269590980297352414443298177209574885007899367529252258911859451618681722186464425157183432356284330712813413325882008774940723649594359267680630375173252520550196981591177938136829501784177819179771701876158374891321839040018429365258769313143098731229850637308302272905017113783929335443797089009957683142996294132857756683805193833741575203869179617690659630719490259803655952018986827071871657114907738169336050377216176401996282293059240175997842029321352496580953014387344321229934343764793669135925046296386600431411342181651865585149882111016450839886211280785337308113203757432220948411560963178484664302549978482956447904939693300260351619833544127661704201858773721845950479642468342974745571064130773584351215692879954108995387495682640677686091169431567442798190007918023382072525851533760324435887236083343016389440675202497665940632193569791201250251935611232694554918289206210162802211478941458304952666481120608384146015843142112736563945423732543386173186101564979443718867544807507600753033573653757303419908388200840709906409322041649496128598410018152380234451293575395970340812340035015113974381034403324422215990109161178091130218112613484611910298257876022864420086173816413046564214733523216581865992147725508334267155231573645626094452563014511542466104433809192108811138246543595555827283007732760910617411622323263484135139744020534149961022514566271316630413547717978930384720370106038010438285572963909220948606083065938438387571751628810372945057399360419479477447572520705205683613125729545404817991170338578804160329445437179385196997223126759265325262060535587895898174766256807288369959820237100459854561058567492173108769856087261415123378598774207399683813328557084800503328565897599780686792413464489077879991741737667559506407440619797883745914421483955550023574545775240814216610933298857767744797056875424347146495876157656225938857643214750442738946109206076581984265783408822322530362655975364408319281549262489588853769748691016095725987041004715542409501454949784918696660469609778716932535810156809666840658969800718929437029568445914384414468440741761953207365389007988353791514326929540987976212537635478020806611585105101725841917240257113549795273825840138237422850323853396707910826498138956095394935035472087714009692128399120561665452117224915669169864753258847321656268051408737308392949215480925515806723845675613037993367700371859974869070333138620766296380769421726477190127448689934285886912644129841158550827098454821214773504771742678372960144722732133127592099630103239503406865060468918319247923027915043954032118974003504595610053168696292439045544084907774918475102790478322710028662238393739366332886156539852933193512203403328357346162953883426464681722456226760122840637331254756190416689443175158657287975247292212923921259820366249685989546408558020565870915921671421170601660072978044956675796943117421096967168673754212991932997551748379677791274744675423211125283874049893862796804335975262358515053274778513520988913167158950155654362091544235726834005021946725704339417555618132763589457424396071881906757453517554882602192462242510135182205868323375674138855290652338082078386774392924635850928548768926809414728547830397965834707693469901646180174167567605469636957570988722942445372066978132579608057695649368240409614506722844677758439901542044576728842008928955759413976918331253717915667268525063489873041941568016802112026746647289177499286549184874823907985149200914243672808866436547915380481254350166372876545785280521637714296372514488431234429979230751866684640433785488893596259232541577160566778875556546501238540855858108668249898022788311692201046371886125624945992612726035019360748665378519995335796409197832671534251633905739065847593024000643413490955080052816359989230060261589902124156953296592232753589555328021289280359802863472811119441675330960330754048228014426489137858330297761604268854056539277668342916214095630323139667644901300069033647230247314713756676263722586029716007792909459194473851446556983805481330830415551173635705619333932708553912083865315508069898076400435636655026734962433102470024636427181650207314461296135975539207686955274530895137633994481263204942935207785382826185019912918469686736278913657099830261429589036837880107545110816966599866809684749967420809341356654075974633793875120168249673046567010744672480776346773369403147536701234926832217170585416267241554447560007481250085510445421592394714311011054116246851076649776634249077181194679895979095742353856076314291142849792170847885667594053667842078294633822052812953814853139635091338876537319238903327574912568043057408028077350882375956097484137639515866022652592242940604145697165678323533324090747656775111594918523971857103297888881422452904937837390434767847275071127560636556306597630754486823224702062617514725020258673511150115759743055459525757372549767495403647010971899526206131137288437858544028609937390600449345447218456837289656786609500015184275760709375432441981026954651375090431799658370313568680028240637100684684627641933803731303654742790518151174773053668843754140215108641456182885395949762702620788438057089904442888823300590145305539071831762240023118756697852296323862605388207732769347026766641684345515929482280474140905252272188970747630384474303312513087108378240814591526555204571598433309608337327340680374967931990491292102340488890378180333114593656085941323268578142625815953277287198151682930538417621269710631345377102333920871208692959357623958786480889305878923317795757088730669706809184829242188775694763815993342590089409167181734234103371910032049323126948257665544576124793767161196215941403511455197040648103797704367366342258511601380350858262947159409124164082147919413076577885560625754008373667919382527883207393163173624890483028449382104909025724974087587048783249646543956081148413390688778523350781556794325336507862136481003002652059348381921981343356632970636778429026232830992964297959781898179164983091043160433299693096663811197908141801533066387641732922235548798613214463709165570401458016366067910343997927309605628203213227643464778987869986298137269448591725578787978115386290048033219009433288391348922041134646444282354723020690376401225663243317147364429380492671950262167944290570151963538849826498040946381880233059981814158108395817153006838152022411263149683551896990908349855384415377418800627283358611684020823939150855161040707693397019535430873377271401984857206013773112574272195659029024573404116652751895743726184902712018644068388687814016727316418061097840041765560374559712811986032995591015426577506547753012446217543327075419092558240010175917819186237740686969658527643931247232187682447252200526338566786712754779185089186062252554264438393127259922414263289022292929848496711072608290104399884836132771374905398453221843034532048509035361310748386117158934124633681900279086640000225124263727467328657151844212287996058251680191175473586305974838040925704428496137850308002144243921750887230038928735138687481561376114235147151807918525048508620580023221482536915349624071430187390260791635931113550203774419759130398624711707040883394688042804141651194005846528727549014331997533384981569040164431538325720492389206798619477846390961617238857296336619645329370013331227579307694223200324972295530111970673984252909862291357965334243052408034326576804295963992097333265407032917621270795510931038637005448468644003382297319387776884546114830083963261093762822130514364182569135171699601002095484465280442601348001964902531565896706787321982454759263762301717501637248364490803869709786322056398225706185349144226168433183063138220947882844584745457998698408752631585989505298820537875156924548284899957152435290720581047099185384287887255441512984897598764627794078460723284738025225613198117238906929153659463268888780183732165004845640011382231996443744934066136808032799490699655115972049351619456304552989083154553427825047659691257107788142927334721271263569478533503515604722409809086648656930889872772720923840173391255257448303515647874344252684628581748091205931340435688445520818937217339896581607797496363223057202483637310149513117079344828222407563093684576146511471143370924740184329956788386879715751458507177580019547270404294450740535216646760573970525842860193330678170415847296413288217631034318910812735674611270302273375211064620200153125276147944493419127654839588675142128695874246452048482007969306725500346961939579817269194428957612400107303735669494516225390940155028407154820637351720829541593461926382259502523744615876177924780047327992931219414055633768528823756190729859696797801052514359415173644819419490181897129776164542510385749381527273203159535932701425040985422492342726127497545459136996701859166139642248304563596280628681701106659641481149945500044827668427743953071511712510144711320733790028051662572710392066218706244509085366225201395666281658170245663842670725229395846168556693474497607748351425175834311670893027268957508335598433113291466977673435716722031206958818764793629065492059084688382551225414897702122693430590747064043214619011744912687452263643767840116340728938856780583541382080348755049612837760227341855411796356366778910751947094274640288666584518017579912325013915413401592380828190191287010707934976954053591684066136567644456848766810023415472282344100329570475958586701477315649553413542918231537085405794257200222029473000996304960675924867882666260072746872662495138980775445680734549091830635147101053014921293754804505419253687811468655656217534107369338165472020735493843275639978850874071957609414897518482661670496453468226960642511123215565217819204574047168804724545815382430618630367491744682201082704990072327232963570524621143457448268129666100347338270574139835104044101144215181303181545388767468648506877386830761481740592084925168968750385955766900363727844068377114070639554318650796749434043949709600736662540961787524635349918890590896446005702490253504549034349432720575439022757845597495768082812993865934346279421589585950924381987001638417639609138155651682062585196012531159411116287229946500127790551859077084479185516952849967035996588959259029467149012250320685927263687698044183060009965185766403440250579276777777655356557904775982577295707142176736931808624821697836863211339503137672731977851724737434552979502144999589889815345220822492304718664520278506957451473268581398117042120676441565924295214023395472472031405501138941943697767289307452331444900680373817725615165537625199331951460841012464587304940922266114133402168682971073848485568658489107781971312132363999639148779344441488592009732511344862080956460370840346301082477838115033744961897390874032400572933953394429604969590742600074814961593470513421704264492683853319297933178745460693455543021577747125078878607757980216795334841036287743188092382614207840116710457947914110650804685449191537508780095931391464478037627224093609739697831030955283293954844399402174880755012628694121993140259884733750587768071348765877606959933374937158596610722495143339765693138951900951869002070854257346504213217441205189936666814758962562960806943989216694970739387266525559912277459655451185278214820563521674063195494632801582595083694327028768720093166892313245650291664331525249316905575830676376292437795396016372222616655421719064686524940117148191707439034135649558285996290672781356258972177656337690140319906335052507545139651076279829391016761783794095033015014738624478498511890149382173040777148137695039302004688341940895555139501838497089426040074391402763800398154389968068293323718510062007909450389049300822108902433819048308084785418490859524417273542476529674507751437106340414208053068117329066572687794936155205868375419696230356936350809127635043961780676395165732332881585081518623864471114787914600275642186107666062075789346241252546059540629144143135327679892726191275101350611924313187603881111333746031507021850369176333374239823925834424170833878497774446596572124944297503585126683804861731191571844897855560669684939073174152577975063207890070408568323236295787720788548068827116190847279523156227675166741193686366707086180695925731265577394713676036457382283296365315996235302354597992706251017983495964434794736734312833526664811768336137035115165838756923467723477728298643071368181662946988530924830778413722885438259721119680228135316976297485105090473613506475720479867862101612989395247791168310115758447375709246985245245513316705989435527118418123165286661560429725650430302955718730941774541061583660141999778261730973695164837765710599552718228753879037774700374202299131451125498680680788740105674414063295933669994749161728086288628679334565346068141002787523236860221848829488268530677833102890940470885003954721386823447434841306463616247383600940464300069323715216736584993479296018661880257445636600546565467901867936582012356253406161907736896244586481054703004974623667295299481289231818526375532881370526504967702381412392172309411272730098108282311727851082804953616138269352694624979547606659747937212594663725849307879776996936119139528831071856054523334253962514253390992571147236285340510023571651787283574606620093716982586685068672675772449506234631298490085023390443877213035815350036674811654179322171148463693004856886397136907911444534040892089434096717862663811068601043694779622862447118062073651248634490622691563041385975465877312635221376208360388709212445697437749814429288661872068616562794908881805405678890307992472128475402455691418882108328923097868283646867257117496223507748225598269175643808701479841110202065306356941562216542678862507564304533983559606094597893730841861812757760383235076007951830117858701230432083763341259785630305576425877037687916561576014364772927490050421681868994138719668274039027864751887610692434969284359020171595271989932337506426380410792217932694352566129741912987476470716841748474235637035497744395832063394247593369817821420309461913300745635342529790265352470636424760188622588631079862242118776148959377866322315914928030392245615571197386096732257749535517349524538662259162364623061354186230437801435274249328796112553468965344100205530446569226603137893597754572779299015843535319661043637151364274417561460272617842341517482311580871702722519351408296915603276229933455863785421579613141708733023658157181150401973871058934775960674901821208071508428664162869594481379504333523340242223718245092029663314563156823230768078051471242087380370811710427993935608910426783561688555560680649743505398584755276742302316518408017435228337448031481132054212326618135651059724535957230606446265405439213460393941983225092281223805546407952285307585895765098955408202069637406316234504727122987257372858522654054421469153467294643141236717972690475271106719814658762590900115031937620654140407236263116241675185973970229074683102943864158801092620202691736438076041282215538420696528423733749012286143637783735905361961249632593116379709162066865189999661053274418337727934950945392908852916704792502734736635281090742089472168426525918111130592379624888217269618440433932922587848019666684237941824462533052531114509665011467794577327246851148943846225311576610575954935109135451111683346936999939211627484641445095563110599328765302930975371219862145560199850885809267545441092120404072547389128864256377806444288211924602413034638806555392866563580866105122584716821766851344366676271402605483891236263828866959149594356450619954019719228461208149572394314781052591444045310763780012871077382513622112201829954279956475470651681793131468034762911858922163856836170733485136434343782588264907820356704550327167759366912007955540812253162587674436547032790563252962277783407056212217623581318259756724455074842489771295695444145919376343849688260239110141287922768997952700941008978934914711972672116854877086737530714311896077836917709389075709674111960175081423202333176621271596213923928194932142560829744412697387775251904337457422437314637169972779539858757195076079875124188007107856829826189342419671792983174604170385800053497097078368278925782968736657349004121142120797869152358495715329408529314198488624022944267780728656284649977382187204399581794667709322444530855213475681763054428097566685529047571271484220898537864155766801187181798261904113995523277386506351441650142834758990627228134830542663411039210117934938405498001325382513265481633699263915891645934013763478098975945724138208806201416653962764208943251320628923558739822510063653597106848535440796269743857467491542712490215993446161998542875996190796011167773037753671121505992650305020523914201200611645475917832960150348248960248191370055762695206896034541742831564972536726421377088834618886242430839875220076331129441981248063223947067856396114676273702554338772043734084435228700548996555011300038129257943980281956451846174240491884854274249337643894755863864934272050020927964751130227593782588966099125232333203191772234657272408957533256740397376050918494094224889836618320389609540436043444603491442227410889794632040656067596433381285696597667657259325408661466452676863691066467095397718351678838924180742029416643022890770998409174102730864518660322294588731714419648415546480696241513159173769507475688671648294196176611271059872783914165609391926047588166132559290129411091303765434043147271396147554374329390230239329242964258057627778438150146347214719954362859714931896247100959215247892762254567071409996089739451877116228883503461601318922582491741505317120168844531559073971374798416650207043636699673260923282128836203513923611036373948981409334616596038163913992163828925923571883449133731997972958308299856335682357582603010343583527172333928078678770175130932476539296535633722416311221574563829710779695647240605687084594828177007321751856637372139976318013989779943600264024346680074064029424654513288670712155918787266038385482696839264440459877634314767263147626169370543802064235206477361351221446437651348570714499511002819770325073864461566911271337944462995789141679816841121014752471671849635493559852606982698341667528495548398255155896458336468156691732241324456591039987259045863339805229019761222034267825331936956327126591117234094462818494516582492079673477145863298703070165342836172927757980264250625853495989730831116024194320100502549757309041451697883555557631766131043927949961517463406740048647290885836229124138340101911010931987032248712043606064487745788070476472930746833748700855258944974963034231297246783285390861405534253309431426946070856505121949062569147165180116253736431033093933827288981361058833380041952552065899157473792212387499871012515030252672019562899718331236748277008431167087458030187618618994713011347457927109818935259853339958941620166114078641697009012643754534961576777173132586920943319439092663137239192866924679017784194010055838149182518073313011225227557255337251634322318293874208405647334461818446905993149399463814845185332251541200112512690587683488717378662531397935764493500852145212635818515182420134699959859360268571098352648733269401469604841885708679487810564398111389742688605168185604856930929515189334372007509063998810648144772624280430058891324617999235568674087363282795544848782863609916811866133592730930488800213847820052352130914250430553211237593045260345090149119933539913316531264314072107513486838058303682907637423897007200852597480442020669561369163953118673996088707210439805219412667978692794376579778447681238562907862104084749763193594657516482421107015693218434734866429773664400396147647036080472584978163779725077648984746995066537236573475776131019137317630124524358311945643006012095191400913635040426236106480465661641718624919636182365467372418527877180748500042927151054134578693414889062109030158634999771794299931592340465436936742617994207339328493832955157088988222934151378174410635445898324591703067052529124032938523916262922439683001248845570215605841043839616836659298153986736530627063652109425690427198347700346758029058900195062104084667327135537057782999821978614741907483806178408337858188847272536734231053287760551328117522907238497004030911548102964530252595492647193770464828542791748530759079646999404092391637405626568214396967317415982018764782700880347799933525417281531067039731352415013009302694869775293773148050109903061257415037661169189269320198469772505680767558080547345987795426934197651831421971482399586560892300860023491776706102953827915728245945296000471103971881414484229407144365843880085946013592361916584237927383089606684794406387927449536420417945132493621129715421471321676820764754946538012945290952808665720456525010838997905968163342369398498616788155474000321363879399283452090010097650382816040398207256904292856691073128988688294214387708917653475813338093095493483473551387506205870428966810785125455994200386804404302271884799720186417402338473806956125256155484554854281215877548946561376682636792946460417899004396712526152085431420961998055261843509004969573679299741559733918411953959794581791775016990423589925554047994331223689179106633449970536433399032727084240410849744490171267322053169693898415800400886866036098001676933452243069260777668240423642887132008735737421694265600260728618047041341883395541077850158036655894854556513228946136682771220146620253444418412420790783821974272565311718928756682768510328779968710224533181101212902204816915195376688682598232132017101510077067170647468483521775587145220587068970535874339116222771662230742089308101097640813705914911669490959960274255008402600205448680258827764312955566980803461339123445319077433046365585357848097586633210087873804037599767818406300083373541358006568252643045460362309460519114510250921309488946749165019648046138950079602399205902958724826968198436202958396985831123373768404886497362498331156095472484996485758811964424330800701712863003405569702252347278251570656263124909564987087924295885568202513086153270684856006670461713927200955131348111344822961998617230499620451132323477696576859750504229637090241148067816966997150264049302002472158424038665298503916316906215326600430049493206807096633064232008774169099577207588355023949610134162803707653744863851614240486507159007313245070205675279239962822586110463017601152994102581231268115597776716266931480183420444144658773939264439816141742438368328775977580586985846192731619409188618062747623102326341171565982780817100688736380913539128519046084489982693159333125742640159710635600502463306535644264900772170067281283639525846428826634945752316156003114867794415895665251757314881774781596231517861400227215932583409811941535994546947895793545922834988116220125635616396713452163262834526140578792279880292215690328409014662461330995490800080849926520623376288481114032442132109230916465771610476595876305924563582662181608115668592712162892280312723102165721178913290666360017692688624789733219534517177075164134906315379218934645372860273346460769674007972139916356633039010416229909899049117306703804176473582520253441149165173736670954621094785008446357378827997153496630753133155620211604322387766655567614204958804821795461355537822091209550878127929498932996954097729325670326602357987726108644258189777642281568482721422692802696760863815821346156884488444769851086951358550067699427059687807100887734902660500036504752545913127264284318256588478064544270084892496074582423364991955601355879156491469591826302430552733730724361572543801209615170176639142598322312094388943469694769190069618339324766535181466858028737652077411737205045756073080029724264325968604643808016657456286154907534885165870721929754097005660120670195462838007399888335237690337896252929394670701049036213163634659470008710176713979024753786416929711536903023686410028301312187858655046427484608665113918349355367130465104970307559691861391225645935427263947929462717438196184546057844458059254274996525097249679833451552261826922333164632709861282580945914307703099837701047402476430887685974194890823022493813824770962642729167711716586742497594690702358430723415038464175376688013765576563401119471871991586480910793705798988102678876175071358484378975029696333316738039300788498098656363075674790726130947332867012299376416280924106227000523493701591809264025557255256978519409768317761905311409926529837032748407130572722524550613480826904806044451327750784557990840483482746730878026559825948959478261629284998847458245441543688235370207136561447621562561556174108787109173762010975620861443697322885792647057629295271934735584013600569281446726906841891727104287790815153415011778241234477674720850509997306789901742237773722870310471827582440546695910539887703895473703128991059658531450258752760127697092523683208484950945443458283947574569294789738093104219113876241704459672854723889785723447014087976894745676892739953769479677689399779345814428656800202614292881985854921945394808687115453353764003958943527182345998131105751932440970477730631030633623870738038868884613907797270326797870178043808929717390747711812566462572217223452016901896123385518646724651583204707592134351432087645921866725794189891086286380006351087711389659227076616582036902453886192639466236906524031383711484493333645550166373509619653137392152093843936817951956150463631233367037227817727396387558865706401781073290665036281513350853211696496152866318125168695713451504365651977269528316987188051321593399766473460020552981523431203547193850503061495400547106621451143435396010704932966792114340253311153728569942316007497232050344625580854676662852070006831182410385813007726442887441267108834851024000849651655159977354783150043342746084957595064804630663778082053647744941881415103116319241035353418706763814746329173525875072628600264209002277912375643692108599236641444963329160338367844545871864266879591541831815072371505551051029311739803567727358574278705609386703116903996133010134248541855431568311072302721749153177751805103624588938879774121048154211863492453427783393417485166403072898630799663455491015956550129205300697648171007574409971264328846167732426899567254985970662593438210208518057781528547100317107282290275066978969179921428884874464547945294945009929123817698962104846311388768510638168300572299689572845801883199142521313284390558769668318871657472025342777775046647589745813522628233543510001360338398663843571603048101126849500727469226576715221354817546407975302620211367928593658415469669853942190271653559446934665868517375076921803181218745816395948057770323840856325530299265634197581377839266486302519553101292425726698961225176152449589248416331112234884175630205607046964443338286542971724571678348215353648249485186121422780735582702605521268983345690445318545389778187783873945890573566227600803096942396753813762152311005805481037429032757310360845665609987082954778193403637208394851291941270973857809135965204819214142291857266319668196725202924389695967301658355813486841794402376262501512455941079906505962524965663212262085272787515558598666361500560837995817146420471649194874630682089830350943370328904988424084314792407024412192243725021469786145899011380136064337075958585859643894878395644872337723128308680211115847847447835611137614900969143567518001035251302879178146035039981782749226314854020964030560024309762382168954806104090156300073800760779566621401732569733130359061698781501895050379676186214860389697968257230326192239197386055682959373384819430637209456332367393812870361985022026238551149850051867929237130923896300364093868934402510664501360412095962054399406955203739533810094763679106140110754893027355036628036523510614790510723947525063289662230405654647622074390747224049992982234085266540193585633175141069236441321772368841652080590503227868785346234297247770402410013312126665710703942001517940314968339544937741807572667525705143141652115668414266402742644850277046717589691477344000359070225965643729095962444902289706424091942258309915787986659298067817440049752041475187484322126379041010951355154969220068228746516188583839705835114294628744867833220297550143705175435215264384878532017252365628217264324111798361573835189375840637070943094757073071037472541668517625348236533854962318457053096311642965988071858859041602634206415276284306436569800987952663156230554340159966702316240611176960682572918351566791762019461445144209104509965139051779407840962995827644440958601420019433690240469642719746726977659189353839024870864436177247529110024053503563712126982681549307213365394010199232950477699385934408144063148221465360576641992228837701114281753025053650019139727733725580982879238772964387157500058938633927968054425644327945238130195325302434070165757097805002987885955845850082922062655866319449750543478043083438287322921291507838152832272121736695732101198632526916953672109602233224315098440961545203868475938451686426645436172585434627605799066317144829385218634030551199646058338438466031019287373542310452591115739124541463997203292333975765024944979674518641705171332401146467287558684680114803513015072583770474768735620174668830738379028506339202806717007116599220855143302935677209557443865071610406583649278733813729062159461827727866578598916791180600878349964360146169382720005971590001890677175380535366609185417623690610551411798193033425207862106271752962601300807576145216997018987634353008737159957817613719975679601139199495446143097475477279386155391402105060617352222967125688028084746314145643828445381578251819123436961029252806595213363125093303562405407768027662594928004290108294091395434875065915039319387393866256513196826229612666951920962652330969218635997019040618092163160949180442292990762833228661360351554095669319255564895158562899594779986174397726750726497539086334155779711155585424254326784144980949537107265631773105558382778771835109222922267158997483655784347814811659503788599412826351308119541947262708944330289505974567382015348242713271751895276254172662841003805672244711642780345061959652031972946786973073337834577051885652969173380947636964537821334996471745869080039350041397919720919504395901030467641279374661908737329034035078484278712697463320531697945371602793725621080634529587005380382448131092797470412157042330390858999589388441377582520838282486551824935634486565045308536595535553503794038802682499347644815130324905393521833771783235294417727799685128426420414929255359125350455279905931564270827614800691928890611044252247744738771331252097635449938912805237274873393999657299387736810097810865450259126652423199898033121499336821998342557160119466832796712016246163958766504478344021392683020486494257088317420227258945814666073857476160833326107496935222844833164380649690496196407604476221494172523215595448966859621551862043031159090293125042367279203768745406821121852562209121384287910540085883297296760654130190024337814656397883054861393876335626397314593104683691762661615070395527820707328956185392612982771593531299748721328738432346782037457176542131572541436905328875618792982260881968908855480356507014101760311054817973279941694753395555773979351050708067818705906195470859663550570205000741735986633282782652987766069038868664841484341641192183013427351321483892567638639918962766557924520770222644493012985079069560690540938258255499992199153984110259948195127234397809725903936782949729483870723243103578906617611220285984760393689900822294439518980821331887733901526680195800297802748665347685925074854094148817751229835763828997512807298183814032387280491538807669490772508733392080913706818706386101654075708070140805637685702387157713194132541041032624410298477757631826151566361030745685921810275187554143806870411470042525404119637159679556640622779551762206100856605912253164868337060918138420597440319689830535431189525741584969164070619961041184031013305145322974498563087878082579382310931569341323498454313144406221797860912902175942766260557114458121156316832033390511999721652615949916970074365730788043682285205912161948012908366063277071317799313036630352674106894399981272529133966651696851192241786794776137357707090667092449692274506457410299807867547306344528573591080288843289435410410693906858273294614641465669037244681459765826544618192215584139816018452598234329378167796099186687775361672714282123210632988731767416594043972645648539151544658525084385953852946197253727439922734362768569143799955611031428824279532671592470145328486484364287818530898747501349025845118711153634872099490542781291626010975428665636387013067283308590055605819308955417306306426855297743295337912876113102399463322285830643097714797997646093233983420590555949973973500277316823735343258053117578692235099147598133055981746170234988445324984879104176618732496661663641635130819114617065730165565668365653527431082630009458202116096108277766860467517725852987444436304623008866106652430575714979992314882344697831468710680497529644846859536514673266644485704453479653869932187578231351300282106356212232423810478707110562413084576655447372118346885485202749175008997200134041900113308543008898349793993136625494353803469517745599725810563515485944354168621553984165673586897362203022893322940412578024071505888084452408991376447009068003206263472065675377385184528381804378703281972306401785941072519065988998602274607744981753870890577915604127549138832983449363984194773547285299670480302323473268129340569998925031915971510751798538070404502383442106180950326315697771450840773230763918815423520954481359483143553491893081175958628218488342544551908502727023126644681384528839106007061169779333612436278298834860657462597917194085567978569933449045900626763089926955072187403095155719532316473259559517876770054925158290642718913960837123617232262242238290454565716675838974891516444477144360356815091755634681877749029474120436852779361346124991011053289240558684538557539733852637008352166817990155094728538146818869091705905041945342765218059660712456428617977549762345991939049348605899144210097141561772508576135276018717093484758279284684326062217037711175327469850910199211069701391611387289614024410708001464810732352107082756645380815103467380494391157770521187660316118669961902607749586803049088701284723711606932084951978774769989904477914915764755128990154094152978726076814214947955788458693466971437497503843877620787632555081948554068376663943333060457223069262680501465635652787363003947970148954464184561653099783758612652357327665746029203224438514824582682925460585850497478616870328154236126613503169603744771668059060781222187409312921708465739721023723649172799611084288134976707392717761360920886820975975323783669433799157133932509389691059642823600785303272099003324182685608445936884353756131429230092021720853410709719544598812829440278978647891315433211960407390300868251097622283775370360221337749271399934161160534463523952708723377336741588540812007517529013638008064138885238126124304784058730912869671109268724874645508721276028619302514141821190864739107876397179292665558622770131697563998213053883526723374103892928901933627684054887303673475382547867570427448924241857450810482862191836748937583631415579608896217588630402261832553917934839458371511327308340609588424848966807866252912246135590499066095420094587120147955846155587285029143171947224415136028695182093379029087369130097729351101494523355639166490337200868704977937329354151269429414292664816190803391857133539827278370495292202778862031750456088912516621844084329343637267253442805647198165565895172357705757494786795500945879934884793042179381912247109246385774033738607714869329249620877061869666044496098230995347656452573804213114298567334040727963131478419017385528381388818160752970582144891133174650964057024057146303591124264864507372830228673746437193962094369723379531237188891285090172649562076822732642947639097867468538642592565614827519583424906725396925811439299089978732062292551768959717416040622821110108536895274693622909345160715671367226296262716228816400675011210602047007329721397100006375036555213586691193216749204964800445253733931565634965825942106282891403974676372360394404530053929007305721758409161563053561342159031152093575195240858552149820464174743236623734851841052507981460922514498858443254564141001659074487416412301360351823984905474858894899729984216472168899704638624266696066836888826644492410682797701429365158412076226793613132755073374584827596682216544947145188689531581663181414071624144132665983073398929519372352154908075868316277529489530316892703601135255485245913228450997718672590665353871146418238469838666453355295393410153168781892159470808676527656729203846608016369986081476440402825675200975935463419687147617214159623613618250606684244828333484269953213603610594553235987693343564893104287940385304464220947479644782943300767761594661647074683348957785754363062970919302281716923890370487426240795607419059236742707871673819427731042925459470740228169855569301289719281428754575904171434103782138391487006244837753027966750570888784923492170960033735083202270924029293099159820288547780488743990920118402886434320969584681812871708609194037329680451854313819601585753188109755881808580347431605151081012670900888448246465570782941555500014554214219518004386854064869621059494954158572576270052666550689291458698075589987534536586358495514551327021483908310742291475818104224745610092527139063483866118450818081439316013471467663803376154848875134361381204138782360160481628522126541123404904038488637842013865448360027114272313067087314857092816986754563766584453822986132299371175287468137949519607894971601959435466213173974082571305270214253157981471861003941532193898124600773138265579360397840215912815240568466407109892697367520813707558893027673766093202485978161256301115312414056341784302878571670919996705603935877204410583937595204818873912693941946652055705847636276294260493312417098583755052508579331190791068567719307546589583963474341315192548550338230552730999757239296319287248067571136838694569482001115729541609752113348439925932231943575446172046528958081492995660355606052310982768016457490197923483350434144505698773079016870356350763718008677211134204666467577792016500658852137533591361168184796191640019728169117921213472852185080548290385360606739744536640106233280536924243690052456765266032847025473491429210710922366407750508441329614496737545932209474989770380632727577718129824637787413023276757077950193612620771977311807424462603761472558186080592412829193646689105385148884831604045291376010778555034166333256699492056587681977382692724871864506469577984926196406185165679095174971573885868067042823548328965295637068961861197283524982349913776850243774601279535744024484338209068659623660385806885900179667989740474824500392535673925748479043898562247160846262103242080810901079382822087867649663511826880727254319333987027488903731376073108062225332174429430881527264086464265394594827486763545833760411308796275037526065649594761145121036049913377929987810651522681536187342046449911321901530129486769006615369761280675252260648662848327606545257025600535061074238862400391369955966085105881694780306251514382080872228990710509014427139958926320896171624012708293510124556398070476482652500732153434135642382808430996145270709391752498521622575671460826473344531581649921745327556030876833611545220656477619085138258212174928620175166701434708935646412207584856149652742855058990899313734821512557034547128892499924053614195520020484896588452835889615371458361701936583123651188287604059647000355621950559860933942774539971851017656875195745834414896998062262518224587193037475254905591470706834348554568517146160843645999704283470212899890420994872997220246398777347020459221562357034720001281109550506241201111369071012198071784715828438602482822439217133938124952879373155631846194465584330350955107678739579021065767053435846828952583271071356554750798289798123730177426174522811526659150943157416672819226465663865608114835458773399578910028914872276349196612914175945667012050832963404916332810422338919855533008981900754389475692153979759163176838367467071201194897139202346980080309268310772419614750833168649030659034035421638544365572033742237418740712027974265535300486857889442098953948373706470681707334987960395658826746869773142189395347180248174969878145771236677090220180232344956440173402841620098916701279754695329983554321687336073748219316616995840657794049041117463151459568637363093228281320585322912248781819281730854016968368785716925099284864319199761804963655950382299669558786774448092404065634786187755133024045388704701171862340603766600328426018953859693665436074586607997729477272027688445634091799038077378129025910726920698456498566273906558809942435795751716441358269734080087306361308546343424710407072225112869634679181967064945793951456497241709385701068510277872058539173317472933708055410385668631647988963763526359996399710641318860107718013110133257500179230998024880411282736834086116672003784456039482553986032351853824695694766880462676767929371758815789573749557814637795188457396485124329927415929892597718719650035100488230552637276630833682104986412521743681129178155433740898967858104286481622154960146566011361183113068001161991551689813396045338321560435479392043871896056666254001727826277395477697541269300713667070794883549483588727308355890966236057682308098550237397703973474062565053261546983770454281770385881261798250481638101776805748645315034399633551165394738842538261847525728224156160062110309933454509151823737312681304134857442921769693402289185557801734122890172699067185672363750282619789548651967958738049807043288858396398910459721396801948918418339315227953732765243458666472488808881972834679447980982362804926089406054999016489718756479388591242024473989037148492859119991189467685829124534140613995649870618995569137206523452046399646860925883000387200733399250102278558787668411922148468468367586314975249601779250696801457422232751708267325701406426215431414639447822054220357807090442939213678777373240252780715463447771771546812406565572990125720710455722554287355635724625427678806781501713322226465998350972759402446171435969201728674913600099886558576937910609418699817075997759278112171824316345044595173596260282671733501948281786099455651403098018362866136336051972628363994427677638597853897062909991474123585346092421794481228657244518101083954093423282170347525242176542046687111780306133780261001537485241373303706729157989644091788271463101959485170503857221987331632556808113199482518578512524911220827619209414435315023169631112250510765872892202711136915380073873384103180830951359219633651158181914867144706631047950279933064446698568713270643926822855679965298404486932757862697977120551236930267144630092616631473366806560113584447444694601113333177415564755681633286098913423529693298513694089218349727809538707969805435036907205927193293430435434822012069063880852385004794757394733648505590229800045861120326688542417826158038497247533744600833591025100813181082663712196957731538822629236804322617730813418672070039325184314850776101087964978152720129640846410398387902178219404484712854919452224514679653024923101040501001202578847166363768227840822654122073418506323836646439066352052013117767954710453127640960668463195640474322049227462363630134413417520040168636228783600139471918763266540312564224110226046933992836984456119237538966675539505432802607176806140245774351484422672198638738472944131508318015547606567289400190576477106401800075967304849362152254989214740140065448220527929238156198873498712850050676662295258701494663043727447061044738308077750614413447844713516652055398077479944980261348429099363724530281379682837989717445665677452927814581042439822680669053866599905926681643331413189542674685079619548258653862025379174866089817254977573067500613465579338560235485362796637252692431895366658277465419639109635398828377212945867965058308901888667056377726707296433927311938432582040087983182562960277523815519623591448539255167901956725606826673991935618557511575963591117314511455199531891735024290975930569222505879296004235587315413068372880738617312885253912056570148811989747700232697084737928734534152748427157217888315794320548701177341990952228340560692500229616482928006423082074548884113708086456778692605976775897831858077977374805258376534894979892349640232420895772383970142768565142305100845896428617554569923637400409694073502870374212621327634826214981615656525599675560883123570231743742231801289771648591790171042949637551729656707058883850797208908304467342648473449945207320147326254292334136546878186585147941486028493826177951110442595087379070871948715904635095741278485996807066617419421517414369317328163169258211072311532791375626846698766834190433539626056144795107046090109023181943566152136492367403242184158527621530668379653300246046419064338753262015663153516868826207062312594741950525285959675819174607519901316635314498106801880745109922202725527245082695195429955525919443374511807792345234309240360182384008796808141121138993041091404695332246940073394878884940883015050069972303978028861159446080133521695661198760403634258644830833320274821844537127153549014327221684455238069195976584959642908958962941884515324358988574995482292230006154080587281490019904962637545224597506106935585543827379583857469197442604537599873547172428097409198678049909123671096673095758350405884518770309762068416222024509999373933872845275592619795026799275724318032679739729551888981160687711674291270781876726148593201814961537959224123965250952596590052662207356895519995707132646284922846637055554127239965529093413061443804111690759853996729936857818806793334568494540611030213789534212079232222776802076142003383865179369583193702275065809855425418379274302020471901626726694054133546011357488155539563139684533916357424866536905582934801431419105164768776156362786306722262208648895613170014095475501191347272654926494475209770575044534740078606368617271481002162268554154979248016809263956050268971539109557401093074868889341071845061472798961936412231074513398047356739871506019623084458139615924738571586096981884987526199625015962161519440229309121069720819404150457376350163965092020248258021919164364035643742558273069791897783528540439239283415498725336991582575936317689311119252574857672832261243389390289607479824363389177217239779116601879432659544405294456506057161036983897897665858603235778028163319183558768269672773259069277796904595340347981429436690100789463097642699359109647713071316477914223653276954394166940363383231660629188853967876200343760974504200141212540555405696119448332489825828252466418878444702473836010036060959783035991152777570679247498758441953841149436703715698385195562254653753045384377297048048065917665965518310938196393441408779255310722266235618002747173971362567067282184212111974028550478768776532177830038403885395399078276482036412645338764707081111477512577886763230932524141880217133778568488085284589760179654908151256973452727498075473855188295202021856229454041727463595142440044614032495213221602872876389881689522468153441779266214189016784027800878294647267074172534082916415683457558195714793501753364646525819029865858292384664872620381416478092271831526607076640131078480852877456524532495502095941847544162397964606871463364567254622734790111485450997681094935303589949539170422699471627319552372330144301116846625933585805125142719747038341376023010499257161567959926659318585046893507924356236144628029868414593435502223444760080911340394640788007604383470525875417747794309267737499937402592469447087871769129228380617844038868601116520650890152367867985454466342702040543546573096531408711297718289142055904789646327155230060358966255120342878255002553144274851359853360549288159594499035940879612832174289016658238035562458332528872135445726768299181038319738027511832580693502647684683873482878596815534204955054329969938269859854480884575053953612104826634469180183320400575993839584942611356210625352428493450695966955398892087440133883004377571397065918699494339639373237043915474267555532897105135351037826552492918258927787773945753033155964904725064074183730190821094000737831853533357586766410068818997873570423890253894569410603964522654896060559442729621701528520002719538894823023087475227490594531787822476671372116877786817249015440392612965750811101133811997306885311319135146609041281704168497791809678454403305255932111642589038032654508015155862460232080132378365134876051617482098735649722753608954078724197670517410901594660686853663290413913717327936638833848519347481899344834422439287471636089450984135667013069966369213885581163901675402453110570191941364480541638771077597052418117114173815749618773337806832340305294078279394265820550398843890153459878641087332027449708540295703944529937197626769288776131412492072425734790922933038084811372310026516121709942824615161234556607517930943759458896043669063232755804190059955642102074432456779804994232656705145587743650559708789178564010217493206607748606203146782618553308127991657507288276298584070615209298232628817283046261055681639595168855170204122322111031173666049794957569937792441604398250891769906426802176284803028760986132575781499424025565717455007074328202892198707450247921857708498493424806553735533806558778862482313074292014256178089533114329633018998886866665826735370804779704012511409159635819163303360502619363699022665736505914017142853350089834974587884319378321055070452347586538914806249905340101916797806243542800177845101105058063933170270406192123835654780183249484113831374976257210657922788400921668704821115073319020730426989194126027870817952099714453535483653322428698854634111084079744641510173937033229207041008908203161876856829118397293956365060170671051587899899511179527995612169400440587830360726116494795091737730806833684468351195199786184721519425190921518954906074222442278061271752888224285347753496776922302953147737938760581743679397609536668560761657355643490675234610332579280678260213383949202576691015808743734838244263591966676623080458578135850342835581563827567588090398986003855176064999566498738874063712681655245359968291533253532875557432288068517782843914120339842398776944285628083998823359999724532156282305282304602230405355109626881050748572499355968815509147549501587363964385511685427708816930217458353936995623331886429113816289675494955396304547234318654149602587152305116609175973492883685513266161000483240211045779066704846705258149613940522390071655200983083396694595445509736509271367667890550523002983160506726380452857989423666288336729699721955349561065730746531146391963231546596667012450919087861104408535230726313729914845604219348403950234849906084576832800874460313613043261793673556234479101262090730852751131055077866832943659342271812627787840685384134916010159570467962076456465930115673232272730576468184804959003973904304515256747790189736014434471357738460399991345979247725069122037274091106203161083388993414798692270153248368640358190371468124111029068363894031078404774156405626576295650444020926183458190617057320533811489134859510680266703596002867773202460279609544853228882105342867141843960454507902888978923993218600658060941092639025147550985924017600468356223294001002993927498718845468061889020687969911479878548790320119325988955623737496930998428555289658912998549295302168758465783878549431686781169300840598246145487271278190654595159879917151929843750723509045834294273527534832098406803592968215409412063225980734086240356257355289777114889008319418800780953900609859086766819878467006091290131036168228912028168701220721733398409188477050113455187522868790746905890492270375994097257195270545287886484130359538729544579138741749410933033612171216604725905855222303809248863233682641656213978041960341154383534998968915636720456649682687088796664557398743552746342656109693339532131808757698370765725477133828515294092320412406195525141502102223784450604692274506943078308170131776157468326345538348067948090146298410861707586624181881705532891625765963175378522132610013903413587838172700752844021997217132923554439520473563475666013368266074552132480191153599517370062083735666349670669027419127503403858493187836659458354715335747298082296608141644492272688119081060639666858861371068034139834125396437624506639359911641277850806859771403606120280530806921115308450233379511987971398341935509763843608552933581004557843494352378143071410235565659010240144434104745042229453463769719537003481275295849532663978596084023927041862106012182337499247475483815257151418336196607845615683361284264052513103805248049402563795258201097207302105626848377915479725645883155153993125631465682272674922589859812016967877335619708182296888470190553967230262414645026071485636790447555215058058337129426165657506321095599626572298458451334157163720391715892734535514347526998721287863085264793772749687915687469901050625087474904608841719069394835262038439712067270519659060607705866734634331525715255699588420891812649808282874085281947213889505206430909791299229345266333441809683612335467088305912607509809998752454082639812710517458935157228529986248866199533881045544069672068813004710329160632632207779709653891472542636655479822650097908193651248061355347229676765354565454254922654163871480542278279499662491600197336042968047044118804949603226406456906653881245548078119328724292146940010388517954469873575067579410829721341507492203024765994274673824188881991197407510276558402492449571523090172268512195674281302995117941335475461512705185229243609276861478311612049915315777311696909611152789301673784292962219649096282035196039690933386333618411423401157760754344007582425796273739617859706605212331098247335688066309481368628825845904126242596703192846600546195446315532331603061442901961099786936756529964077600017453216016324284987021653886500138541444627975097660320394873864267895062587213102071040952818939166174570901518098506712426339226521182145416551081573388167302566625146265013859466512881495987534977702032453515991199707401561530262771109877997275649117658412526505430363802807040991454079560066683622748964866772842640842504398832348549162296612640458688978477942246886110266691127616226278648300696041483611564159544271789076752311042911691810429484818718692882636439156430604080396180435381647667173904614363575753738904639723049550284993273704750753511803132474862475541891303265660370190051297505945962835836296294902664341538111537298332910762784073704431339437658627506806904653535902868460290546050926918221764900286254222219960098332246467196243094327140451001630904464026466633071906353905811511505697322221041227092311742590059248692537939109279830641586923319681941730603985353948571324989465404200980866165312370008181379557970916730940544651407373400626001727922679161665258708209907033618500196546734370304312141689578241797555796947691527326102809141621703114898201989311737721869641026196975039065198147598447858463373849602163392160787541354434405687867038002532045815821041747636303026653064785075601883096454998736594877334435525966845441280715565618872676603583860997222206709920881637239966585113184964070493296396988575443465353024741621109303620168557483726347905781460604432642844279148830341220739959298977178957949665506997634130422552247685816290713473338094485764135775350000030057133754697597443912949178752998611555069282860668754839688390485157768036108844354145933869528411260281281426551092688463109181462739019864680643692985470676521614185192988441509873567776085736193769142771244508361710935924327245906521045096819068113207298771376870817572284909538584339240978201779693105133657746104991547028908612233774874721044349796719585110763164002479241301222939312306026013701348142939653190455252039438841656298895620597499550920478898579424677610553214321724365514022068272781403824740444734173331821245211980662739611842099720005841241169762650968568702268995136526625262663944088496137434122706216148026168168984314443013929809727547605937694065422634785027496845515687124797677399583727906783834076590215493893984163950671115900722466584786181444583053378790528570526981065515118562910111233444962929812982571262129237863662609471179487478832514702488728027065177903722975467200760509183517538158238660388726565719478197204276106884103272482000074164519747554763865389981642705668658112158507214746691757801536058023489990061227866502230828176152532152977431415248293959982295141786805348043433077509844641848473063204017385789127760912170794773021268025385929996547086054102967822691626783348580760486098078113495080661970811627029053457177364555133915143699136723124924538277789154578582936022809592470204815408980206804048400304003524083320304539374950301756114513264985907688003975328606362395838077578795267679559459893581576006136773984622934542572198888678770006156570850306795263666804063012055218257513354540169010687782518144900206332334616480772243780538730147522605684861700925167944861205620662353482036725128452953109825422553587560822856298300061878876210562660563815110498778796221990082788767110124865020978879906849841415201902955810214815170662881707434639465019017700643019375967690559162262186875040815828779775837761486753673574561434183236748774899335475675705030292329952434141227330025383762051261012187029914968973872045635132116521884666648385366294904707809389878507759408573379385233242376181787143462573028598203322398031956243922211739389373360817300714912756668956054106718475372486451870238576459571404671110691013099315315513306854290974067245734250270383329033077620769226382743686821351438036928683869042842772914705476712794305112922823528426761060385072228067454470942368100095543640296268356910716288524378033735563242323855232784888659960103785058632298730296224059518015021149959145735251248204430854196961762034427336476875442416808957297788988424735772058998727102833312083977975928696992847016043870179824456724827487425210188810672779791934839963479255267617796641794127058288981758366393580783852252200814259949102073960218585369829492570333571945058295846180195310844577623816548558361433126115011057880019687161892126417705429311507358660825075141855568250137832220108608329789817854123094970001931617956058659266677842910707810990962998839538382017841500628561074940715220821908207166620157393764907552758851193954886983242527240667892550332878660160706550441400613642715596156607125868300023729495248725331360483920638603955515769482250455387054590503618799831079337753728370277560967525756906139966521002429567541672242475788989765130276580691140814884310202938645373979999997198367948230602563303290575344992888082394926678151383682752602866591618247026398662825807106156963817924519676801562770071697310011289402837634549026650919123973345021071375767416962476892908826079398204090590090146284578557565824717582309410385490049408584780962024891313981292843851000756549935732775176615723246157986581435241976148351862472970999510555639371191031361472883174626688013437907039887104604885285596341614603163659848051563758254358833508929660953437248251409771002657608436964523432487096823996433059282252582093107201852007247607080850783524960305263069532550521805207910092390613806804392658191250156656281409950766466510483862109920549867818661822285113140479908066936071760539555628024767230307896080625713844304672575809702984410663257270181562584860513222731446980717501234871300091706693167789390579882058064282195864923787349694000310420980088262247491895095115836798264322725323950024782397025593486967297733033891453448410252937420433030566516627698235077770029806397614024350188158110116425585751012712182620453587407178628848912146126231064073797699983384237043822330138953782626734056698940355261979442933763369573879655345039139262813341198444661411899971773621370873677351217273224776105230571693910205628022194403820604565165225704334969642065671053211358554391472123264097108690404082247885881720503073917682185664074985258581560225029713934497780657108143894272418180361401256366910753070074951699393244056011109133063650914458279246836752013911011729875118614202763663005203272019234178112558208433165483194315275175346938855033460118163554020464126981619214446276742178619008844431759665381243103379149664452068080416861620200824500148378286157848451629891153247001655955574351946860340205588364679955578567160054066233620695793583835381880921324170719588263132505984925198403102492194699643887323144836860319736007968520671612759689964619045184972421502805920514756723705687861911836542542533333457091292336941803434060205036486929796785321885102636930376932720594673647433060456479982046771446726130964396734512931206653054363582567537684664347347076313957863424151151495249101554610595440512484746547639228096443322596410650366401977367625966115196024540080767296487632132466433368910945688955154324836526888012390541471302044024829550735451650304162115999523631692014383312844446561171917151334539476983245858604141950332413355441002490797880155527983293197811112839744415807745593904509897653756011546503848002975592214291773863303373253703631472555427302930114380723894788458121551595511870400755439740279249873017144703883811279245556413244775929140847053464540907808362448598354971081071841430574733478566061640509509288640409109908353153625336570798544026255422022283410989116795957339055346235185545344984939910314469590473871498234960537294790389993203934823165177902706136299306224894844160076522172684277984456986588179155936625639168596100794231278325727775590578821579461915146372331958953452409095383382858422306186056596035112339221821467284026151093227055758295630750598445044563587530871147739790281487215688320969418687127185324933562320118974495655285682660510817983482189559536939306536560990326131768753762270514294514677128294391535690162072342178420058353129486492341331056478566615439447272032435227898627367231542002105438126334144313661386895840778780605306708180057893066495758939676555126117263159459411432366874781440786958447037347282715115363940151804026658306274067011088950296041089172523746739345228055250400178981968945899014368346933838495981662411797269638628905611055597478797498423388501943197520881134388738117003381680206045042291185944668823843644945540984528660331766753719791355226553100754791372426236751689971696321016460624309665721407593786521389634872995624068476841360685518193895251943470718795085221471640359885121657941872978052217645991074094959221455224162669705269834866552043726771630334383757581779232289435657349483524193209330926252279654305982571797787508627002298017207419977027600601726083102414824301518807917794750984489384927618932313886151568098958728384732299427829707063681738712227716367675235621384261423311195319265282608736438838778387925960309427232708888934079602643800747729013192254731913385164017102216469915342770033532208187231656624036529647775614439279822690968913199036428126584050843528342346561308905707788640453913866447345850385350075332368219647206245049249364008929706213859051707294221392343289948183758404904311144086878369255542531627004098293475197735130875738440469612032315331661592776635822718621901911416563298666386331728810509797219702572506256306904143038180985965972806003603038845669366436720983064955983057132844519865919568497564600300055167910312735208625006710620606008694066124337766542197133423761777982910215714138191741609190705480740614671373211712824067934447713943699201012839092826881082517582600395558012474739876389132723111417893852824691276156790095385556666790229862035209725659906158247098642070374244039675189330458935687572885412413461244546779617238959431159410154170522103401199135667709751383395352379830905364063882577090026497854170355408753098217795139834302725781155439447750796786402646259253155390633871795035206901382556983807761943096557762090384423858104403780397895836467933872801716077783817043353556966963145887894234856355063576131482692611054068619352083915917734710496745972670313039630215083526352857467084337931165780636178266727362997155758982063644465989659907402329200527029771468903465433977183519756123192377887757810351032918740398699462423641288645524052510426195627642064397417071453301628132835090893917780902362047709598675148917499078875544247181585053874756617404859402465698999703473315716663926584849851052938236467806227591875861096267428214759131648400716242145565159229801802636126704717143661478098321796873903159069848266714109083674348441520962473138647839149740451772149295323490822315714355455638783092280313886284319882909625075246906439890744611509928575015014783664317000458263410611252614861427587003375230169695883692872835408808533478860469272081357790037263370497369005591536972319427341420619758733192794880915970701350825575283861867056137165261540157991365124113266748371958209894201870332217835028420197776117318925530402165850882016485902398801667995681186143809071298240858195481752386341863251662639239617981504861092901313529714425290720003617576784529425637691796647738013860493015689672898188655398276597119156985169247660446374637778722037678459687244912023137580942816505966317992234172560466736438640040102543005494787436731372148166133488471245428900561806533243063314339197519934480616254996881729685897665692089800942333350706396256929187714146007308006110014656077968389690894716014188991791651213007614754358449351255758592563830095617043106738237608766975005295151025726398571959609467401849672254443447847221412528239906444138320953907263478363970132632811894623293909174611439292813539727034658867852930700426215381021936771988962198816911866394492770797327037697417586554150453508178297323718570983824429568625791425965045572690868205218686171905887488801708717292611123595589413553642498679203185369938075582585996286978680463703188150295177265954918622723051098560607319298881331448895845395678044312861429219165079160418704538334691215950934676812184439806819578232380865204851502765992151362191164958433707230237821061757775504380952326667345439887980809193567538993933449724103991277193506650252985113584457290142524922191219398217952488448091833001433805130376281544282836068441233753525908538593850195976297846127279591021558092744108215184917827075047215881092873311853967801625853108026405888142475057090826413769500914409045591775294246313514293918254909022161258757306925148126865387582323260392262141056033203880862258696323369779451506422692090598401347941355166821080727947257965627954896489857236515706162943041847371951981973687682319865597415474848494236463442779261701105971188655115101682862715349966508045168753168508543074184453572215867810499557900793142304277330551301576797716767472011550451455183811248116061913732894716488816651498292777337598664275021786031944279015526455259701427347260480200805339544402322090453996266402639328653141709764685628758943642515850711773005031696489112467057724921141731557882589633217460079083138582418450239062676940824421766199252771136397568523698335026482814717945604246696883298107656917047294936730127059949223629867529058502214434494316617188761510426474265450668588981678232303745082119700647355455312878153066576584697915638017500056031802536742715885196588627890209961037138872656450611298420346821096427437686168858069362450000368780553561668194128487121229177887763469133720030672352113890786535959483664231476105472622564182678051260404430081633659622523448189996656746210703670761866403565740751934920929434280477979513010375979489521511982077925709679850766994598083685672884918432271019803486155787052700970399688713356687304810958250570049864714763386680411309623823996852453717630655757691214653691414909375217710538369156405926971366455602547697243855112994002957999022578131043633680430427338641189563040415313226325160466424527411069760278934632545684029411137596750279884622200980533486843732885441192813221405305280463373276266269271466903556968299067291965234598655792750722605792235825481466525182781296800418734565342544381306567006603785437419823086881838451832551120672551679482052113793896217861567742799845919831791999251022258000583260290871656607747502581564981055809779401093719881004313784075896309267526582405317683329416354087813114669452357955423205647424840446169908922669983983355894649494559380892514491623057688095502903244970350155360655903704076708593375091616122611676647843891611816793716815276681808178407496782250319979203039580768066539387025152896717362291432911862986270354267032809225302533922815810925567986358960798386451269415348425362760349683185796561112555281693426112009254879364060156505749989940720225730249605856523349627762710763565969461696500978955687583552935308873439472643824164286311296658483419243258311669155631314641378388534206158478755028299825834535193321615681378454249889784739342004337473235339521707561133627604734549931913908754925881754803829862402841596239768087473922965038136704846554316412736191080717960634486859859558292543637249125707977842969287885996497431331252910403205811785964011918882092852820826592856301316708238144215920786956216742502347897073280792151497102700455374342041354236207419596335205802600612588460044387040868234589789332181237239755167754549674023912453160526422900871870464126407586468398407224867022728212061560310235356105103038829392775243463916894910037456129644377671516479357169208321202193545367974965530664768186871972554148270668635544625847935743005212665592004395959651522867063936436260927961759466161889015337440075712796224601227351383827615610582367392136627710646400342927800942000515718462456088735842665259279332636930166550987648102357064631972681659386720000515282866058220562765922254816644731980888741283877407161019556803999914695615684353696075426934664894836746833774160068039116316587475303131631713687717929716329467458319977790804564923266464089324989622821506960422947731096261247760744678132805696449979891808278613778541518306034356342834734437437600879225432785943348986021610941357298271034842022660690864570151065629159872885676559343161219816949070462571621640759655086056582005687874855891195728273542368131355722972469366982235994488918804571665766920664216298474770049486168991023878800567867277738453169532674315383284901140149724119786897856485553596660046173157171036135695465427577930552234071596633671643117797037524968803416941656271023982326420707738736106109671160467397126816979582953116534005223596849759730223451055645617300852161665719927569787146125878948903172306505542040516083619321109535828086429641297104697253838391248195693675226349872266076527257768268555866043245605643164902474420720688778144422367736198798100573260676625082881754328784963498593417393183912749397376362622926006583989066766177010848229714458731856959447770550043502254089942432533295287360803646123474326248490480164433802829579344392382045911968329642851749649933252641853405891716253474327545454150554068196289181780274212798982871590832352594305135162247407794725668917357052897676372616602875977184145180266662924776687002336644401645535805843311703694331384382314737834722931327234459575295026839388173793733831682176371929389628347632725009214237229283988589171433910867655179963217207739441885335458947810519783340623093558982507080330551237948823356796036300127855758078470003352667750592175152057208284309388644013704515436082669703831283983528809224831665886931267674157716730572253147638948266241557697389313774887078213876692518163573900806471362587672279836741384992776304606913766785263217879622958680552658224746511776609441495001511106258508425745401651881261709231651317887189904964324533546290550398519537052390288312218888213226052020546501927041176644627539388373810473871484702350169885439030313180851084367775155536518220599155460943508588935798501257248339615110019539227490626415353846801386906856088818699169460464820593958316647429625393055168578995339317570798500339186747657963737956926140485980776633323093909614764727484446785190221237755425652668941576112359453483442371063170280704780901562510796763751201434672803277102217524935423626736993331995058844119219232992933478372047370723085570929308852911339651620898344589691139245056584585603441016612058094198852591309475452997219107893030806215477565661866724526435707577068453799036333935266785930334453014900077725208395785622576101454771019318568253514002399037047550990087910289319645293955552674692619937512803249987841290511365661578740577099742261614734160985320615105560176453746771809573793696595095720184522939557496711915486413853784539536404358775797729569551098884841018461876102208346152513628774637905416108640373276790129106155588131967016617417333138419679882967103112465448798770999442078014624763062798344214075983066463786426684629158329051976885097052410122771565287003839203106840670277025646088698630771174863764897239570298402382843306334183868536028656408657752326823466541083298489800001995471904134473516016453068563351146451162610931661653697644957813448963726324127061556024410817585688361101591581172446463260899086077178324554675153257028627790145183842382147646305689525657542350127876052296587743092911838803496322989490863088920659106666308947171303616972005882544940173655018122829335449731715179510917864587425037251888080261571273242361372769739007818970785433797991780310371106914331857113453413888076678042670630326605369565122697560828865236524722007692650364260588916118640953611847979871264449381384782240674798098375085054839903326473779167733372916357266427726464877121336057281098868973688931047350711814925326314835131847366461865086572584904258391315098706115380608813694172092108235187916286412755839019601127388888159776098747850171661863237316613644200895087764151518168104688573217195775767821094886541123041810396688309201925625871705878887684290287776070995691116302158447814944074655325589180181736005758808281881808507067919964911167885335150509983417479093390604397820402978086589250052295993132694148020034454407877830085410354694218787227990087918047616949703813028603466229878848593512655958763920216180175586277307748990760047140108707771356687332980272207794882231127552101595403088898654384039251658674417664167531990234118020033540663609926678642129781854027617360310033966347209892891810789085386702492900107098900626390642760928577964218355926152190290236618774640850227552571662575005550936851101047532994227505826399429908651604163060826028298769156197497856979274042701432948462519586991154614006455556726663359526771281254038265297686894942716797257259607373629384483814589718946423720611485301029296490080396016123017920619087725221925249193076389604032449000265169304786941388391255285283510437956853260510055879827713335454502969524499286841372250784017378549349792296464102234323633235003456290104864372481789806001816233270456003442526706555591853495361902153845367617837381644914957585406396137546317546849655403941501686829428145977038715971043669580836402937588540832815119456951866302939462720673879573835234432862126367823317390170961372441308159908496953659525609024039808855222823452976182626949860758602573321995843338194960469661971143293680434471145515133394673947619180596223938109244147850558197912350506317853069645637736225315218499704248588314670924505244340856798623288373733589874466408915521675264964796875732418632396739728386030019093676419802575772554588133506401259907858396101578171957412039371555640227522985518138497363820045526692754519157336050125886198643371383790036621364665102446664528283152920274252612201177067458664813874755793136055915848709654384189059038799734552358454041449049556859142917696523791375666139350016393508647485011187093469987341982088712651477542435476338763647307882027201057286574552154202183095358745258262787582756411416309369141997521292011040124109535586670584841351211562629012668149655715233060227731946010573443126005666570783866878247352907973026311932277693714512786045664321865874885891728437229482312623376198393883086713309480872631848646642094033723191270930098943417945678469880232197129221419857666202296949934803669813428535292023983170730433474405442765991150498595729030810248072497975454725342674800130068354709934891022819495033360210031760053730910889667774395147639620850818328265452457039942349819901329643892130130892873889752779641643309735018971778266309796191293301336885524990520339736100335835081736656962652655781079410756544631798683276472824267908305928048944777308186539059275655869159246114112469065091577103399252818045774530011178099509006866560546700930330231040744981019534053458560382342549664422203514821437176662374356150657072928467124275240498074940376999176915274588167948971200981983668896276935753447668579248895243024675425240356608255746527505681465915091524053560556491305986027440608888169797218282172971964230392282089089496558653334482104376815340086089825405879765966912659472112652991743376604979765221484397172377084716402387195003606969315523129419675922736763863677783346460218753375471481476846329561661215325134561408135169354332778823982188807476618458640663844958190924000099123243788270455073414594552210353335715618537182768236731740853412186154452161587891445890188066827012509056872630387267696686297274290130523225066453314287100973271040250848558171132389407475194358800032753982263699049356506056393772673538773783066873589574405985654356075706055577443488575138050512319952674845799698879464584820985389136405693655819542450731306835057817943547399394736455995369656953066990850114871105487764400823360283476455274546919966029654299241231609658920766138140829186750459922172472787000159440925273683385664301379917698562529932573216640948073181687966549674682722699662299697212208029229975550748969285592378775353827666347166386751177493691952315822729383420256746296985905881005511225578075333238519208593800491972169536149246329464313208961384669010667352122721353954752147943895255093795297692602567862582040618901013333018650637180055370905074456716017849923476583162254574303230324811414950461178395176147364997886316843807474109322136204726290283515451825905361625520013981690140824780557132897309773889761148376053491039548646002124614751169292407785968278247450777583897160977822029161408469405019513602939715971858976723830715150055505146841412791021749286730717266865708641729835792160861459129708547813307974438108938359931091173524984444886798223214300241195582782462309030744775858200714643133994650189934767422991466030079248590382853836891795660736616270450814997257342021475337305496526185153610471782642709090037242800230678654620377893747122519308080285502649386585228166676793219107871285749182256105859066320189350890890766700223494490470290902195091544071409547100953123787945243481141480003572283414242098494062449810048301121265524303677298137808356422448251950153137907378217928496574934882276644953182195284662843871639195801564868091178840771913749655338848888475788254945181534458436027879111366577398438426768653212863879224733248240876822185662119125964700800588310026405704684432447704707991598729614611326370462949662407132217518036839650412738806350203203360842713905764487542603069708296245252285558402581681825777191094507044144096550091162041746822960139555186341066609962938861449983917838332805052899032490062036332350659403131767178887177048435959025631006082209482902607319283477460465009516163682636014814264928152937491174360755922872059548850645242660736002902873419307786814467296968428852063918726208493014983711572095863862163210149216347490427643371327827619053283903336067029460028473095337179548009309346365695901534534534044710829594785857448160107253874317757494706559419538943943435177630709788039963466674538099817056330317632475051053907803403240128366566031465598783521519993168766651540661559914410738297158627917893036439116182142756745700318139103805390792921756281308014772566299620483393993593050896513911246466248420581579155347179570055664038535780114517464782498973388982084335401263455326430321379933653991494909787483343488387001601822189861800468118799748771623139804415653977404107996010639933556187865447066871177104046043272881977216471625035364536671565276323287183654514402951516780099060887623722404803533621880188883145200756673243772376990596688203242985855479176604683576001763198579187525494710444364209729303756505334489322911692108961826333544727599646493459701360489140631855394063837669460923819806367024312268270980781445012253026086022303713498627414480578854026418652528873760146709951036134962407374552866293443394906048052464550811108200364036872620623654992526921038372957077287868415244122433389872207703718842044318154019767662784616264113273129225368048051677214861064293181969881873434632716812249367960890251911788718648615412109331070672411753089892427353156429930665893471721420602688798914086035117819724276962947589227761083284872736280218920492655890237613697846151402173060647256401935458156654397972147294964010119449151431405598591153407266362375916769728150221285826086400181199465294081355497848037882292979782398514551179310052557903981712708652907982393949786739401114281952315791757442359159358047773994241257841465528480763288957340558720746498530776722326879045580800489208833530216770544176249361848151975176181081392548794020533200961839657618311452929703815181564026318755883566348811938848336460423091552866362681881404569136758264956246043642663585159497616083732094932845922509224731623235089683102296834239721814806809482061051813227042727275909773020419066727578294678742440328252513645714102441383306268152447356357844547852118478459420728365802339341731830059039488545798186340705391725781301638923276648545121531382341742484983394194720822878538199351568079068275863943780029734396602211864917519072863500168604374995040832237426335290842395969366446996874319080780318138498149487873515628795697098235583905930036748952638551054816357522438952869773311044966339092550725049517641560425117893523824361251523553246691324245329805846616258162535329265330555419716882372032635905837629750762389100998293185416597980041658430466221757704065518277232530881474119101842433005968396197149368158425137631521451471869344779911110315128120567815182221603915052745530824244998221490706450930173189983970387108297011933880763272837004087504369554713350697031982322989023164239782187549567435765861802917891412287192018665153614361961796866720948168974951382368087792642687770282316770909628279948413366727755697550861490976516644715419358283411214692925004156392831931874511237802014761636602648877480599572219034078173365854923153178397587363190347777455227452240996094167487119452496700301161467041102387128468367147289728137251242638113314732524727338044617018073362290924447100498344341119915241195702229447451062078214312997352789714795054682256008782406891798566775568368734188880622938651791414105963537647321056038691127999529376352564331393487606292878435827403112997069340925639992245075047640695736408190311936000905728302857196957224236462317872888479300530064893837008412962234705410640958032976796853311121511460214981408299202694393444012922181041836614602667077614140286628722247422122792155149887288202107711547063688507033385408641855205509247943039064777439138005270808094154220731971432068229750233172660254354920156387665346404067631421261451131036791518161381306405246623867874377860413377874849833657149115617835598135333752213368265119104009263095132152312720132738074167527562618221801853407726955351559275059535550227097968300267758622266083325428666812983681773335585472068152815186150010746726905300412149889406398968899906593720881240540599094956705871300834366606093263264369604564485662386916569497702114105573068131858776891871604379163873727150608188764770926766061057508109049979427384187914957055076726218311358390441770265958274645530140794770328574383054341202577246564255846541000717664116793229886448727789655783562699478080196070412271825856456914866698732965800142231524296023985214008030241862386561220862780444827766143151679423057495547279964905942546417613440198912792190872781710123008116227478858596478660510367837964321057355535364837488872390749936746746892714687436528861843755113629800996236274207562630791273579946247855748011816518113780034063464655412772974324079040723002287588950374090404807564187268312255910520670687832911945223184679989970999884533659946139263663954563003976202163813974774011378799721604120536077496910261408648122629285541363691385411544494916882574106340531422138920401482162805661768877706247512818264024526558809688218286951754920159222836274700759356114412214056442221613888870379457494807008048482934359868298849018417917106813327985846169422385170477400947401364921039801947974937573133508899475766413178029088416285757409699078110705268662304999281991785001079255141406394697412851189332342929553867338218956391296889979160182074945080405526226180466074110927866146659233900863629889340541852899816935114586600149011115132763311403138575157767173660274124230490904144189032166200724882025032987591013205100548952883512836666684666643700954051425169593090967519165300926183844178327442095769717133172860605589302538581435757992825497043477733960783561580204053788201242870718624046044651124525222088689257484976404285606227155249452767836384932487135110266683573275356602802374713297212244389503165141924289362738928532291393173549084646260649121744296601207993070041070396173333501594293676175124799713647265846659237515327162719766516828828148091125667469463784283215048256624420634177755011030652652025361366378900714324788488764896610341247791550487656902002363078502135180606925372837685267268446939958627595928300926491657005817053095488514422807231885878573632425002205259987033834575593235364769314080496719851473558596903584734166750613957787192910611105971536615080924102849139091795890380103235906268716066956049227946096900709251815821599037264677820571277499193916890073932432749910652584354250882253467516081572551253674508493805823877083156917124097949807811606830256456363069926368905812097474557385576266543841175896505159609731425421742056395112133926757791294595933609022078621859881371985676054245574087552969484316232989875456650972726881087248856909671436871341239670147119388248395959758767663535433973531662208079289983535283069304931112828905469814427014706469785522254387861242684209844447840169781727456630527478188414519442398018518125700960038361702575075428530191111557203005690951215799715665696234912716899815925897501096141858713699372393615932362499461864832523340974408453399980370892368189452151822713983708836524043336688436902546324045572571209094414160839299534071338292471081241667327216719252778450045916264389008374486212732518005297028272363439687747814960602465184606714308101936957882593816829923856266973714908982113952976923112283645915125083189602454339054627812489092188056046691895404208974391405100348783952105138975955697139613815327883116766004642968441281847774741652561356826214325404671995027628526755804711803169728303507495830955150027784848590623539095972642788138576818943427350683191626533470159309567091787666869356863736663369209136135880978406354050858259773780432739193645981158247541592951501789834620603527290956919923416145845189677230452641950566513607940399778532787351448456988405265237778114883332985371958020402677690745019197192609332413729984864439365076086263333485253169411186501279427835503096329025927229086870222838988873484019118570785108190469292802402517979543613172896291305942644650950756115594106501096611059126925183459061229604564548758690531248036420786978769179947963334367264423131710712184935632456562516609303297296075261555708871277682654597756974911148120856042029069446146146760936270499047108443832695150335648463697012563495493791511486095890952998997773999221935221071411327209068056442631090616881226691593770929431795683816020048413525435610157333152304092657198117324465447678915506590097654686385044148519246771229253129685695168287356746478417965166603628546079617888433434597009900630766596091497935195529498426084782614345495538048867547299625052139271092424248680963194441481595558304648273980724863653602159405687349668403341019760165144863612470897809072849259463907731101872998513181175824158493196822269748525304717413835216832949003872510656764196229040159378468030404594416728912721959822865172178425549326640595912943559481946513787221999165897664242573228279135325774343933277299081134372146565001313382704848428662032189871147281207542127973061381229097113533787685876964739771490104772470628415026869893453330454623379690549893781786725196016268683054679911361854347151671639798861155938336108430281346134302977356376121289660118118964614502026673000593919712490094765958419240612905375894453626713425100362158042086342790952373488061126099849330799719746510937536356543436494841431717033240639580005110325393479087554053375939185929529740426358181857690915605343830726325026289229965582340789986736429399711308614671957247896662607198263404692712125530865895080906121558153744744299144792255144884397175998315265079741700969418112834773632191342426437255575448535515425269581734695023221648677871763956640767694201916064301606581372284311487479570410222140300174781157239936261121471465930035553757119463528784481395637825656148936850594154856654296589734539857361371749557580553942269626523539934494703100458760325853341668716529134156251652832996375290303761292537316497669735997604539723964883581597849640041261248810730642685355463212843384887948114758525189490559332919165364050263987383608273444445325700846021735315747571375480291833199953439819247337099924145798346007369562910067849965708106398651119068245982026224691677626337676013259221067255731418119332034835704104677954515896618996571041386018493942252508137857783596919817113507214887163190660568644806249293392742120302753048634842366644441445341740786983806879306418362021429458922049755012496818655003514547792750385200493362553807969543372538229042540367168270566476590544777058297472050004334824501078411347201393293298039332311294465749495958402727390461441322502366686524426587529950483701466831048415720538240480633044904422886993781535848926783662089854529673300345679172491120109036672205620559565489505911172631847396289978404650091943237184607001360925975184531908219975979701173796670948932692699103691611060900852562434406406496833984142132368518118823326589128859622257350815336693821603268403338315362089042530059915343791641844351331366238112745721651543401284082811913450054843828545568883384143594622314745814223217632289959632846915861674981827890238703923069331651144779109706593526947786958398318496430540739750303680246178241850880002252651534370465242346265687584098048163594134575251397726313036953997767709345997245092593975387401201505005013715341499864991713329424923943181669858619552428571401399692379025548507760741899678543830897682779784761252122799707533510259010907057241086529142671848913075201554856606515711131044825793518853142339894371193657692100402136680671399268762168673161352203184898029724657111387918347046389037252479663565653483915028803724527966217950948921148196441967454038656398064200885954330246854290214841824455239769033459010011523347350444506243725130515248308852252975163947178804822768355267693671753533724426806253863504171006404140630863845295800286996225698663897999556370347216997798864296655938227868757266719027358206791970291041650123607069065831562456739491392470626733565708286692837773113255683645319429726850251368555911699023776624551837893682458493964841972490504075371673239736811430070392652105950645997060914829879724983215266114192542200812747554103776437829826274949661467135606249157115615062099604434179597688658166452380648819883424247077139478070139218962560089623408500539706120642264935767309380685373107734326444079727885261918632466156024009007152957519117807317317219298843630014255919833856987750183187889702184527028287250361654165479528157738049846894481545176515307335401234804009849770557408456332638481180311166062246200427114665655949023772435593360305451373020713505087035479574656261198537208812004772455579468821821000464734643123595998994970826730108991149249642854462607505572020435737241056878526303677826050886407829006385049539879562494596718440518375321128038697640677375257063546501588161548798025823686011332727937878154062676605908440240199356799942503449402509152580989382430507943817023106965661639668014473472078310179895699688721230339104947176385387816630697531816750970144943237621219719800810641655386623772371182044946556017402226701453681575706419455949741197455588800486675032366956845213296711829709401138560878132602787189408016783836652976063697427494921869411787135385364790168849136677426883135952192236116181405400287803801274286190013772173807694957417822612193161467725630537284526062908236829617641808642692200205012348873404485014341537627723166655014299478880200787234209761919066061512465281489808373212540656503783605815977006694243394542812598743880402606382622404814575284861544141708633742903132079446443586850909968926205585557569890762000244789955172018497061602935300400497566983037443361663008320483401590396498134811521770715986722754513417417180433521231851246652740425550082506998080587159955564629295851451483793827410355503824850292182141244444507975117733926522360860465395564059932090751615728026612928409926634270001967627033466759627366203426606335943093655151035717055494377967863957159039057071886467209626822325430349436757337532365607888102859206245285012862053344790033707361044988002277877996548641273105675379286047544343214976356498991168648433195232967010889081100357129291878378338380055287700205799958261223399763502252125758416432390873240762501094542976133457152209069334907179551824519711235388455108309102896131273931921625434292310002567418966312346617302681477800318155655870623648472527400810441804681335658157961077738215571175828333198981471329502189844087114523271392231120257819753989807373286091553215755364544753815931599693068785031761527931368305242208288689127014530245243450139552675550261375734106264626783160075178002515343689490425411827664191806636220799870925669124319025960288436329294866492915178552021568158529984379736702988934118288868841147640353143810957258024789506333361583217300847083094697058426186896992073138312850201877131571244086295273635135736243291735154486163603185761086528361554169688613146216788516524521835544583764562855601433671927853317822446501516626739354089056986884276213592688925874063460043362507956147325844123314386028018728677410776694135300690101762384590638020163317541734411569352415324418768055078439876328996706145092902949498907747236533418212663794644973914781580100013896373115317745969775730092227727271784954466237293691531178245736371117339740594417461488237981311515828006499620771531221378002907756600222972061000803865989918408234671605571188996086472054509792619211701261482090318262781847203314756995614962346055006445427793579236374861227293047419382215701487512684930219805957146502600199560436281227362822530674243086078707035804337976490762439231609222003228657599212864525479794064525706540215472219838173079814513696442730957270519172513092978390581513019951333509567101463819957642154441813557488795186952570864086650956739044944910189201444089004840435574996285519655569018079083084724080170919559653348284309442099213208962203999427349485336468928830266446808377350962000659552026016470018811279606911879761539292154600808730144563620760432149165133327500264193454325963921934434041476374184200143736643881385243400029501951413739091233224005886414774374103585072642761955623018567039548190472973939518271850514755442581325323104157132585122807885148449915695009699088657287763973721876771544656458440865710100204644879531111175526461076914522204975835456775951697424372025022177801483206866190610210023447766599820659466131008537572215471062362971596413543195817485153936680303450067700396653651070531316738686167043957494723664414068004826806421473925455806532836001109032302671683479152547372733196194619184757047507576087756898397138120423931122169182414878065749966901371333864700151289517113624941871361217015298176645362741828994690473066902133513614726922224909508777687146052418465276699467432874686438046976835943788254742722663145750443808249835561979763456200878638385730462863159558182972068786492976304390395270633213900419391532316530850850409746875562278106414315439520217026778785736294612211328270695344943818000696315891836557402050243914089083842663532189289284370592931663798821530284447451516616005848490469021859025561575858429755976769577582688544856330653276153210526923661234218473813969807223314417168898199938279492558076883494221483367833743947277906716919279198534279073983693597619592155901087185966953815611504716770777981670167481014624361531244552569826071020912387496965790412070584532367388172895901719534136405657537470964829965874554929514590058057186158923577106537546342286522119560363317409488228064805454064806397495318881278517522305745672747102285026739144215438553740071137551792003937715253192640708567238732635343685114323502202452952494557475269685687065635768805455362163990620273665750303488393287126545527207622056553013234689459269924101676654229763364326749272333522712381663683028618779370887598247665546084394964443095038720018396133459637537203007432814540576910156451019114476259436068050907878448316912894551960033675738051470096490596860589066548885314012431994786430470416398987159378686163493165960410401149093160468717300150929334850195202480529833602208835768442792195176107114855631281548184670183937867320409246392054191591734465902099940963639782512218284714570802681261767332214596738695920317632145904271852731290925177679995803229019464276862792058843561449519110431571668253464004816406414297240965346299450247455768764027358284137747775827130206938707531588222537691987049818040430335656459299337577223708847198163373068350667568533058830456546602590002952432792669638082501327739082728345689344635784084027596345783179363548156844896434143200030263137948618175940188973875531420254451127678465369610658339552725316342301222104611786555063326613793029773078584250479969798090377907283548691536978053079252152869590604886232988341045751218216162764400943304699606697350107982881029212890631469835460421490412407321773385717454689138247171910680368719256370477082172379176320944649554106229615032063069887819825888886434528287981686343277076376038416036899026057075747426802496088182744628358878020784438382128924289279737926501985117332175871727866302364021088100727536699537305421602964217646592530361464622800691486595447493501447408385597127959358182316050109088340403623277508605992628333776378747448630525732059855229735713852611864818807829355000227170573923522338849039713993778569111792534359181038879950656989487221650843109349007096296402797065370289151684724324453161012150668440597728738694410963877975315373786089183657740953231307883698383038588867553473672856230724099251785207408361269656687330460485153705044211445973584637786328897710026494179850121099860581360302494364563134524079775796712476105047992511707104165073221827108474898384946383879089938611771498897612337486193511517118031794212222636304369007305284868502488661908993463007141725367417168451666645098364849872588581921855281916027542759009415882679709718253799012791874441378859238305423273495648855373863783493066920000100327253736574282489125344694370457783294816122473453726761954603416213897004837337137524461800940712056382431202393434757764671816959780462355654519252472688402076173670185857701395886035293483202754522529441828624421987899778632124226253479699643233247670465434701044429554387912845155167690967407407618758644048954469658470280156558349574950859869275616784333414279161598687328034268961343193390435858170178572308226774940343893207623844276412448314336001432136859318286168159517630370421078178526844675357332544095699582277078135629306166895643370606727660690361900858160719978676432456640136175551338409763807847575632151808058616962095483120405722941113309391134789068269840549239617588355843173008305788766598248188883244371115775068392441898577009955805784557357147945015690260340597425064272983943646688548701638996187282238634090927221481532359331883670135118005518328777954899692937341598773703354565797485852158895327578911397372246278212021043919234232947294799682741382456400874011835407695025543483093830687205867768251048140849688173398411585897135106351605437151188621195300848792152950148319362994569576055549147985430796218351117355726366862352393934490557070402235344540614397363715849881888879972024061132920698417019656866043569299609845571808040359861581846767600171459981787145623255795410549321738740531841223850440300465676734815275231552712164044849868209751867450444523370625417007332394373071911815891300183247248981022218541160308839304058538677074659736792169758559158877347886675478696861291837501820944398002432488774868687586060444255983177738124505651142789755521341057361031078469340976170803507175865041096128626934424008418555342232222816352096891427158316518447229953345653585096819882553374948930876777295522220659633806258891479189828034154510704164303352585977890426589096055534062163369532399881509622042060984438305681372685569859499616903208019750483866033450280908570591335858942848179484472332908686396391208465510371060717790990688598606367217404844933023115184941219073675158989524898072117255925288989851000107134338919642185506993577614553126005473966081599460121588305916299596845630553304183606327222725214232755301612567214466816639032521695593330033716573804707540486717362264944914831414885771118443558296535306675641207594050855064004504520375610149050160965770955792713998935677067199817532477320246935463859012058381549359401972316266039156686944087001912992557561058988927582435086195515687874751927225463797105681908781754834390520757501169758785341000086956560766741214603244970318250749081028207451349708378928769725051384298544106104890342554566799103930108711889199764732301352478765051409619492166069963916332375517908524318163303216633649273793728667847943435705994527401487139875791399023953096592583529513205596943651073043060132529044248127503082348996158055909627308163653443375366377262085749168678533521750959058850438603659021027324602221637341118942537117245916571553821995031956777483149634599808573260764177114068441392625104974626622037760135985670551781912772207043825156192802116035760850767860637075614409841523907734931550273538143261018334791997739692062381540816493573269994651575931519112420550960598219082565888256749396831799241876062965190995705120709051618417296704987115643023801518837163592497335546799150941466235301970196939577548519383804124132237178346468971178119646481242388455077478476049615364256282580427667106849949867506472293384417514057567316517116073389569103481260638502074131309889586931357793748050855813289140231066201129788807463503748649169231420739729247646404974963751400397817730253335680108361853279348521326667001986252742249136373935879692376046358523883086308530757519246082580541239757448003083409256859094157869415765519805976502922854385999647638183679207673105623881633465884537193141471327424026964064059859161952498117336176143875407815122975461540662826188552284807951466357433179909633738829648841334337555830811842933378673140707481892524197266846374036270260352822621108174169947570142949117575276126582576676292222017403918272695035813199760940693555437987046237160309013902429845960861840990447387735296919514076703837916201579586380807964687148370053342889116452462372301520325371695690297116120436598006661173111859249815660427086490969709780334567802640339241737760266361965407254969479317429213584386590253014630215279043079584020480226563941615639100502741689360729333624997964076293510797860783503088826815608711594445438988614944512204539920927560986461495926258849047825926541097062051828362210446399635158317934606701569829598436736147560734076488253595627189671128598374777256747513132517891641288471651649531411322231195518500850630635846479094202320302492319588383802525111691938187247029840914797510146924715579880687928136553939028918107196622688584285053883956732191432545785044495126023396610165707085574532758787647090806609304283012599482516999888633699143672657066558178953980295794709269865219210636671345727366016050779247297909880734609545103808672912072625057983515089272188994147826405502182248878607756195096985713273142271565477059710767368771521678960650106083557485834340400120349141261303397125765540798325689992815064348001134477648709924563017591175531125426735551215037985556330336961422536410276117121513907858732794305987421980136533558008638062062042602215190572594931018528004622770943262245702302958081807022749276427682282410618196964582910927548720433754838877468811614312157767300355013433919039122311010941962437482074391980615659828066469952990212881591785254067419162745173669906949921671489096622895217181345991523715034542924976332843255604759070282756347736193836873548444935848006348106360085709573719293428619259454470176559866957700990333877738024297801216742614335567704862090126145744834534892108519955994601851557006240392110025035939333409108893390289190609693156987541055158330863135370016986964368420510531643166523272625746764099643084926641802708061792478217281568571225963077713923661565866328936988555108147302122924896439957694195914668757179949860009271782563123299645347482255555071892456421145108811828112283091070090093563643958534821427367826632501367607705731042193432867274786921257784056648940582080631985813134333451824105533692698320120762491792337205723946152621204360098256629015749467898814418973265920705157907472353640755997355296717314619646874588098254676109214211612720810869992070880470979666404377273335818307096085612731760521699610508522151050498523353206306505702641335949352220827378636631237409729590605415275188958104867859671975002292815008967489160901792507344055448951772220245850784255497505796259865768422876531507925782363392282078684736618561429798249913215875530445873484378448425992315146343595471232231289220079814341916589697605875443105324912365067205867809661854295143639220086721326768533860088048195960574501733057223179010468335558370477067681883383150256496165914088447271731995276840739951747117821261230312486508291051806415034923742678266340988156506262031217301132074170603137001386668956126510912657030284393288255857327270508949446639684461031233021400990611224581081447709451721162439862108399956159782883384746404935954241800673911077783344544492817339697322704316448210872911120451276406436175721583605166203119570225161377931780609048465700677703803439673387023771592564183524608886059630781989277787305702410927212002612684221313098421541158164899743292202595387720810591952793212401993663819877916990313769373328697065056712160918194381377054765679625081062346401563091790400298985148873392996049766772232011256901763704398866700242298294359709923575269300948927079221279904628101401799897279316024513600003449713989349355687589654711984476364072517813881574767972635756593173944263541599840720389697738708992375440433011391952051365669242289571890506462620704468332239202823142512169924445882334367654800510741169711030574573552764753472320374709533884071750734883777757788863566849370782879141954542768555095567226847732584152466234562711587923425223297511359188547373418378907828608274258627769198662676195097133156807775004577111788716982808497479892114629486282306075722215040278693863519743206738646784425712380617400839225748585839730912176520848954869935195498322468703762922468549815669104625210058979893107383315749981109818674223031977340242022699555297425688947434826737836975392269915080268466450478725640572891679497121018930594535841324540140517241713153601118253447074043792502758360207318038508010092024782340109534606336957537804404027465084443468574634593118617948794765363862568685282556360920839636186154708990288055676299561266838761520544219497618922236347895962585824123157046218357498668115261065090482895850095736266482935112754774451411990087701668069020421655855385515572477182991928788701419032620139646476777328033001801853900135161586258542405196151028379562062229918674333967177411755830528524735761701103004943889532594801540689703464470065347598392314036887830163233824866990257657802498525238569340255396743734738609354765629597762233407717385547439958106849467999931611660582571295096560989994969593026876529995056925877109700025699230217792691862042712978208300068781432084414363173593502063445342194502041548606963756902619811052121658148459617173179803009793001595015519884999516295771765061144650632329118045474036424011157509595594239399675577811109674842068932655529423368734214376206977046602415281992010622895564608373637412486564967560969233656791962834715569902747365401346093668418385321489634167821397143207382133723121826970677794358596001474481644083709215797596556306588704359225382853397182931903377829380085571831196669766670887666125535076674006382420932156945373384202697415357824946868419775823008910797298210199879545569818642436607060069679877360762267793534558524651894008273262009949075052089061704505580053421096465532321433571589602077611739632175979755139299974985012765807229171870306612748687020372303278721082601963419079135598538809648071209632995285582460768848136235547858259920556736552633506878865216730130239702547527882930673342701308569889511351658308125981865774821749951298663637132193237216112300700253256012690608745458825505019854611887738448864983678351746304279499370037538986119822073856258302855097064446740366183125178778509997715525153218142210114399111244801138336228881450977489258797591749502589530416152577882464915336709103874161027040629737611279912625922745879751957566079483261989480038692768156579955922690379165019746543506345334538950980703875673915428341348672740334028177979177051292670612340307624044808509978322034864739815767595526644680344272918671839456700204497176129666943488012952743777461930333858545055981212104781095058197503194458770546779459689552884018609003497280088377228254608048530646210103853012957700524411241168305202483364092167791263514536124540088257108251813990247898147298382670380059290843327744616173479509862337079957270053911533396959457194650141377742640970346775378459958228531759247052738765104792390691822889228296281327444663453563071523397971961540703566006790475016115348037476205643948921176877870191913097911556614839829794092785268610370608685297602211128924576644381354706369649017150254309553151045612174269020407279171065532855652152870089966784686163210527941920711892056197822959132515712764679491419046715131069681021369289266679125852901876404712377727716704473231795318253340324545418873084509500909278763008874591101554983000586182312952027253451883208520822122167297868547521358763766571658996889699849956510084267424507143063194179919053478308113115267228189257661488788709732709168898879870947570532734783473870867372588444954829627022705163459236382846357861426691042405792516638925874772641105024335027358785454806109525633447112711623677890859346633492460865671169060351569872745205298271864855563036975586071733223893800667640577052779553482667284571889222068116208863409096008082964298139136328454578902369896870059447100406315179875273804591897229003372612063295989948283290714741501104838287355483424451990047942125192885038352987408180525917333266333383305553909649915073916101168456623552134045139742762038915991358942296931594243398564498830596435484692475770248659432047638750669071569436877551952780509319706594220708869725345674789425220200587186853617205183107893069373246650866355574823798029508342570749146640501536410998568465989995260677423520107014320930775454457317723168364099533824097140665986140725431392572416210598616910378819673853278128338690708289064599386655933439632648367540752791873119712974626358637990711922403158949991184518565569173727162787170977333631359622375607520954585348856697190041986312268074659244437320659356745937068431366899303392908611368452875735362478967864509821888572290452173983274881598166719496895017008018406427973549002162950521955130114370680419567251421649097146237248068397168001157296146929274334673824592315577982766843375439035260786487501601610689228761639696878949768163302184129749382013813051069039851139292886197353869191116334344056277084927726793974123897701572010918281855152304854988034888357029317746216634843446110409320025957729327776845170347808183609848943156236133826793056923333934165808320055153155246054968289109230915153595371163509069233047609883834458940085361165442646570825611034828486184310516957953874276391563007091048418138723578069516792007530230942681889377398570067391067515145730209695310064981984152951835246532965270564255668164768254985813913352556408760601842697388141491870351162589532688889701088612380641971662130773341404468492693639112329892302189786900014582284299120057118872159941885924232646987171983538589272521759113974397717979965688247473977889077437939951549900166996826702709295825934605593092418135424683026657905912353406450093784493504711452712780109457951777266409418178419644047980594627747639213682698177614368253279711210222123626841017054425186782324185922392230455376244355836096789672189347279848981965483519383759406546088260971367582214922400894268551619611321112716023152111228116754230065903071201952392448406669314022901910407422202266091798276736204703023300251552473385715004007106190091098199940177457976774759525072759166123382599159837795625287176474525084048272726000346763354174578076701781191664055081285621214525057173678085100086876638004027883268646262751662945155370913177221429194540127173046507333421073848490523299083962431952051202023625055511106113096705781525621489293355918180118056928205267130878065084232486787389926188349655031230261504122380109050241571086920515828683521072523249209886601623689522294147711562400444131333613481256742748580026459112042846397907220560051096986824983322268336872336542322302142215081527123082531448664433551506086300262988929803617220150476029920015489333625341624884183040108881227075672641028222322948474271174605815729522830471885463116223793315069822288637470515744199531677348313345989885508299355445796086727803453419157738861154468506135288823812265200690752210170059335417587079473305369089516906464826038385788693468248648593802696726822761738529559823161876469603267236350636997308738512992506916530472021687448621268269481531329781910501796969762319821983092335178297820227647494330941131832198101322640123460880617981206194572314033221035358999323038723244292247394069521498709787805683021503707839512121042957923771378658414997808263702913397789814399302050528879258221906425975542095081002440745567982160159823907338351728897073705845693101056455535967809504034489958919055709673909235168060682526535923651794278352008199887159075283277955868259545565347879058304227521153148976677482794140935631469746047274953673922017408546216813159523253226076586897618188104452687709490313659905876284256935946626080851476424331750747751161024494599775823099599144380467848121228256025054597430096875486915942326246434450269991735324152479846625379632673109822777229761220192775998793950221132506187574027566392160339088874839916515891861982924537794881519655723244803680891124917730170120201105253547206200193596609301798672846777241100554262047245162378480876912919852090949339025894700937896512331978161013752207998569966222862362929706755299790128390470404324572858410764652370512552892052443016276017772846338860992430377453694226966924647046149768696858609088197942960445308668768829253168700309926905619969012244129246335048498202316050971856248595562861170708876662843024148510953925601428024708641717127468187945290925589432614900320121342201040646582547538817333966409657475741876227825812769524363878132172317595489573095583340711328444178472611657615475233935791272237257916661118605880568813302770967033961728317955298397681891625677062290550522168862159554856805651715180483197392876358984063526970848623382274945858245647438357626986262407817571418541289519918529340370135657954944126575324462032738309162922328707851015594594845199850179076022946632545022597034417889595191707796990242436048806358868616840150547331667067748206241723084153572462459245847011413586830846018742069118382122270512786051774580310463102894726959033112975206181584414385054818318297954822003746277208910188761048332529620153765146108076323558409287869567464079245864254390633546956046077739096818174390779825747925331876920835108425300051970182074100453631645479040198148967981426327592312061780933291288860585690236574271001809765640315964068079127596066489952316240547859522550506589762210247949091736005284065505265712717912392350341162090697104105166710155145797275131065281339598895279328599909477133625801299654564412862522110688491613940024432918107244958766634537183030406257089688021809779284591395170949812622825761770743466183641034102281640108414698219882948381536444503049333775247848148031653453506783505169022620705508839508141874943149965191015048923648984561376326723792065689859127536180906348158060803807014422553426876200175467272422340383710293738856615937739206211912261816527595059005427201592911198798395993618979406978357689359984597264658827077758189235933157895016604514001171111161767754774412485125320594523893746943065523688634293680332387669628663267992320958599753571378211393510347298277263792472667151077706717277679019061282804713251058987976919140235502198575987159802729257350433506256686434472187304326579653927815149707800313072175466986414402324006646741438003454254373954321995588115208520187543264840197368070789835878698906641487349261533601427069549288482728690127779626607095150435338787354237567124711610787123021248765461299916683646378353099229660960870561691309794767392765780371681670816370402209647625820486779040720362671633803392958657468135937089827909076253643211922815786941091084895886067971164415106055498115714990987116872599844096128618114634154352932588131022893867962861868065500490258443444448233324801180663465206685220990415418895609651774865506777292027157305588370879210187393119321265497692282927431189488627826054648096150731597975067019522792782419248798732445366217514648123345049578343753218933764037771714966673497207564669731445520268680058733683529102424907916517977656610600756834513878316171220297270490171535470260855757575939713407959668055708387702706013113956134385240043130218251578617996276426981334336885265088061863085606981760459636934021539320864778941115958181177376654929493565578143829338951946992620766948086475756348637255325013389314408753703347332938744462577669896092136440382917614880599205314077855690040157826901162563994358708885776478778987339805612268827498626129795763998851662274262086085215148255520734862641966042410402809552796820208433024211332736137449909196132463882841410119484700945711706911402947865804774907601531843708790067501227942961956051700899339275527066483052504287576110345278040825547109154162468016954774164258652274340072520152999161050704687015423953335192022080677501827687877585719832204413327348267086862100179465737359002688927218539043623573452735283176395017749980072844057735629123272679127713930878224980676536738176183978258291388971363095932837475220793830663057481344446010294089863854602211378248891080270574705805921669628288865686402441754126597322146101627055206098026861534642565365232112051154475285788635589219414933295607357945476639442957829923632119950683614050190432752277133795068838486844671996515544538132899716362549649189009174860662239699309413540761083830796030251272962409863069701455327303918445070953920857790196304233155008248816769925282616036785094328765746448316819132065166194641379410114554747234961515220041445156151203674691980287806931125486379214900333195447353765932093957396678017481137597388546748547903571456346314566421940351514739598199884558646496967255722627308950762766149690443435555499444980433574540876342253269186404121241815104466315174142644169015900980718124886272473827949800245986706210914772716592243530258149423344148775628764006010256693770416017485854681193639042265387216248410433491327632542669077478740315763007498752675643950756689250490782372825532042480580481708222647480965411056831519310530357526211656062208206419179093014028523286044176204103942694892376078197028509712747100746270514750646089924006920110116915121604037340176718138187653548854836845819615803608880354477767087047161059358423250924904087122438927441593486382760549689275710248818717714875809249401718716039366083288597885856401490688480427094065041065524918885272552546075362273963764954400176206252786833018904604857876097684125273467744972601065048089597608650025432436793278627464785605654520714036287303029897355593949632879176096953521301198974512236203033219706468365445640579652621837692630935066837926259261165813664592109205864420255902991496858360410417416451851599327834044910646048544580691470644846228584602464078707348717172791896929796777713701146627672636792949886397074873551461819938171464010951521623024698952219159571931637561589479293139620393878662643127102544493513110703646455857960539012552491716926693720371165898640070720042106471948696267491083514080530977768518625289232855731183540565558148266464258113370615503650913911785784117397687199960389482496467508884216680802142886996780042063214787438470323192049906625406894838492178047692462722648395724822757337497936626154975702567036337270070333505357961536864566010482834945938301596517573868476812755537774354579733406718525251274359689439126732242519252206039190611906106637669727755082329141552158168251268362327167283845577509225579228842797396087575718339811140454641243495071306471579836718845329779950499862657633172262047384131389785446572079208153581079469986916379217382711239734765861847948490672672322765450166146154869501352627620811791599944707203638436558061919703364625781281602741965820784385566854307948666721578409982623045253787784963340160283024437310948040348040529149212496621711645997044167848915883971083251671945020369907779293618207335848258011291067876658870247892938668614171261690233731729632579666628390821487346541229106165517759994744396122115336110363853075252857688146903329793314021464341831614698453109182138455799349495018845570073030564658312428241048552931568732640380399342031176416632972278633356362149752825275297909165521185331301125806914798788683796495278476600296801894102599737361431510025741377221970852751881146750992958784553456000620022682726380602527643457162628814542215914577780421114895578852187772871425194753319562637225790503482435631502296928305794916938190442803987048052539203686417970431899940623646664087684386125916626746520081049080938187568080041042949392000426706996006431248740958437823379135594658669758717107649658458863560479659135152860610463242950941320531042303158091461203220287176762065693648547062556533543356737391332814023929791534390857792565068082673586102074057611618616757251780936582829229264259530816646222253345624204170413197733639335496376023332712834771284368252951395269603396101275082626632170703251676837651830380972049462982541517814818232505594573338244853651854501624125943499807434296128070592411480255234459781543942227831790457061035240270516806250782425819059675200371556935147092572794870104354589907615538190053653566957445233066181134213412341382863646464792901190164327624692339258665499587310558057003865169233966798023090291459226631049555528278565597860629810645721474680983602071175385077113545322401293919125533723303316396828244657661356271133154698282543852692023081004318363918631318561002475687732302116042407872998632644421873658721055734009360055831410874123814667710389475149637911926676457113930218343275687311955062208488098406090065892951902460298860209140956323868810837733204775789257708353573135048604994891614248892983253777721909819852989484321340223909638990094854760638024297260772985390618408684449535313369798657343878633643133208423405761046633852093998933941747604770696144715424532351938705831356045738191926279825678056408975137800256728526969928279413115646469749114869611088706485167294236773725719370112843541580989598941882306737606129331134292714238320812964886372285461745700363070096256730174445430125417231163075960428986526773105772462226294582706895118515205158404943549974841356657091536818649547148334211910501598121875740407056339630399741440037566566579696510325958542624048726730347882118901413105291083046564208842935625566956459088985156494359913883960366700313401344415904274658705137475979182438346253592527520286887402323545302146583238260971207424409992512185625301599280254916896018637254557650387742023476326855458434609246682461059380193843256283378039828736171396821232084127263305019459998419587511459344229422027226500775267270243419176576979711881907559799817437000940885652469461638064965789448248241955320153558093015108543408930901634168278850402239487219545481594194760628488401384003953284191389810607561881662426295210677519333032564807737132791883097583055835687985640151486766078174941848569883856448093865767140090332560053964057199380564908421637113179222234106526144005316430258643904949443330712132133861264271948507515062408756948661801859421986993673912557528740732676859598638044547291105431490904022484870026868520235235031533654091812631449801747577757491102044719780395731031442802837905935351711937548955133071386217361058194463272734401213571318019397317263547709584469334232815270469066510070542425965677653001139332894535700201754913764676218030847851990421581764869523400249297243151053221573275961052529894314565312665018556687286928789792354409154010695201457534093452482054403195812860189761764574668113293448457343049484465286592146330643856052085507459930326120856669227437744710412143134507616935142850357011989552269785298296135921138783270384668168410455666957200907182545884879422411327917141648782151031155007827929426305545294502580862098512389347270410314894704917863753361068207905691741277989202153652381754905957365500587167440919660709108327003704011140318541414305619518793067741456403727621625629522094705444281434691229531276320707551128051360107468295057137879020367838639269140369237010962176647323200200177837677059999857500319183523998147852794208805845989301057414815430182863300448879293855452707609947844928099492402187760774297880940978273327711701094083582525085474144739495658251821626268512172491129424779238224256810343872135123742394240962176738781403758791418223770709746391170400614058987685456199285713927818806406388165558697707616026272410369840169599415697563124406857615626652639240675853946810873612535637778527409705045014150333337392406154285824989664418945352851648411630726729784470332952551864774705554617103405222649301242466437940880417314086992785338002654308219088529357083359928770652439668468975489493328078916038864277229588512103031309366665832152194896000145872700268374965576449244714021257152958083630433266247536365971299801082953439478107996097549950274945492192197716379172565541157962980622864549756061968736113537188694830156576756864646933968792273950049982678482908838219337753579127586792239157814719869628921726805680256772615928031309258998496524652841624885075923790360158473089176012534816527368228730324254807706457316746624016106970920371946780594399349935636481379311904386867975202053203598995699596526302469080708778911154351458363277606332518143496460428082309047651927807258711417410143228459911822300470198382640260234497980080293647107654656531338770389941240679505837513778834842205150575702116996925587672678077453032302209540553163496989687654093576114683925303440685035171235204007268482090432738346291377149903427950734073660302577674404585944583403880368283670552592838540673533539013491679099690859935339332245367955942115792916210258552901542655867157849348560052586500443018239992431525533329003937503361480429862396658418902042609905939740489940591999030433797250984433336460437926667363783217286139188596223426595662174957496409016570292274884563992995396655444888857349108008764727974606135324644120915731606845026862551603619059748760639529006269696972285342978265879436195800032488949051268398503290383488416544886023070376080166561386475017320798107970914420107068888753635341625196155452258537561757274803607945891465765676702598624684028308903601916123353789352810714435477693006222565866509696655862898542753455298521610664219329242014806209063971003666535401895947768864945171308628680548540730725996957048029663955383415996910840934603711569337358753224463769048317282398418468246541317121125544239177524438050342568589174079822296351112544137751907446167791386933015873198932139739980063976030187961481350172024665924895073656596192283192546332881205906881127560361873677308529626493633913301517355222927375861362774379397035702767704546726000919160300257790729433373036982859648816333159659104751414745654549966962685678958770056012679793925199448635083815552543046581883984970749417354207793537573368154884829317441285395358818356728903802637252590814355108253318763983353571518990533971415674114362857876552197179808388648653312506259934024988506962041866021921234833052316293978429801342060125315531583764977879477500705608211640800817023806775096279065453859012549866337779688228617298322702005833602680398512655709729077650679894388024280642667869953570654864434549346621613016778167886390834890328555481420421696944065163603925291112426018760682171301081195100148433324814369394681666595420709981284352847909342609043843544298747615877222165823872248631391495565361693447855055244828454361284808753805056200837206377918049503126671291339486624183136633372057437660560511675960442140303689602207589856849480350201413510414019717531567461575097796135977098715464015183721765044155622066121556314382587592834043742208885543790232494640787275125203157005237745322806536055146105967676874514791822049631073117966712337197715169976924731229484523315031640240948218447713094017473819574654662768156593751202110572246848821806859702480733541375676122276675884988036696034072298454522311959362007667081324023106679992618533663207290839660044624595642856759233593571759417920082352033764266383506008832702923313648472209052490943679473815142402266959530815867753614271767742602047782900385340524210770613561256354920501044840268141351244879778190184621298862997546377033919439819281810157677334907901758569042835110348660155736134912324357439053220933137251832720682156096338391136589057956713132907339458801144515728482239668745264876050230984981670914993822231865001716960312451037462845553507241302466186346045458710396571194633084877441424880788405652114151355872399323586470230330667612498987040432737370270393514739413694557622201627321558643121649262437202008011184405377083766494162140495251317711719268867099309311028626590841246572502265331028277351180842624003290260854822433573872508843933457626601012454550524305025201328907501041898944161105676750309588490405377982035432837176067630636686020612315590424628580881862380338452988770877298258909177112298065517473425443045656045775027457642487948788630496912302547732215399448213431944713478726049562886270614202653852611673852849241030051242799942469019230703077343552431696103936457885893163554276706133085679399481864864428066263199692036891626840316172441512282016577718859540450419584286405251845699454671135384210343850534114363187629797446124894603308160370663882573045313303062708337457411564900137700848066280925871741922989932926185302787777083600781896209176909492727159772237584750740392537487281036570785982454977164306461197898594626191711066961360359298867998556304201179726369991620780965254247717681420310780243208726761219253495964305518931140918399958564496438118091663585721280190676021612506280550939722395730841692391669090607263624609052029627603105091758523084307830972120554965218766176783074847331803554053656619755794763934074384123198712577098499492990756008987316396601374677322278364247129150979943155584430655054391773781510334109000395138270285658709153094251102884597001337835959504311677640629968612463124054988232043863675705901616087457066680671911344500811269743706597996761601982111811617966094926320713180811925732046970353219735550880638241983075868644289524161681406647048014880019388604098216764247028038771115062190041853514367821299912003987860883732341686795879173893328461296108121193317652361188319380011496425432922110943425380334599172949624521537400300644757838086714778783007342482911955255159266596584602674551655560627954130049032777012374878457395201950598014026308930892800075454126489301335882719984436266379142558816923896989957142687042169596107787033661169357576198355750282665580944472556330644028239994610286831611061290901865843434738196879016384993631726936312462819143632891726301978599029560514429885280054193571868579286165488006693508149471652191119948555608069564908847607832647302861618572119251590204715059152035492735556005695199333497481494767937449714622369483969861653199726141693699192482199598427681331465679118622643891260048214509620695759153829459340013207619072418083642328758259692206277116950985738254582269138508889368045330064907875862468453462733241247435887245517364953545182658659438320491524153396955063719304340560129001947922982331686899476365738555182766978180700753784834006520667144543319955344190675370234152134112309516821813161675964224242022933517951000214026790247395272078414085612465888743408027152125036901762087417551670713624737522469930108176992823240158469582754777971743429356462219350595373648586006690009221306370206718316961792387999843377435941910082984680493574658158017229662521972034287334687914146892592091598039196853185500281806629648562301751642076459740618544064699023780361226529290057963509273989751314118285556852731812774606011088132881162412355495607919709299142009616948303369823229147242063879277683693467162772593602398797984514477177402630288271600730564211114767117699765571462434582904728518366727005851768732246385270493653583869743119023808779847115267688314442658312275693216867867070844642707462829508737116156458805528216336170884797301671541860449463703886007253840592416607279227767811957539318096501693854569082026310454318342227079321192479103436537643298042577759619765779316787506114812661905646572161169890268603393991292477826831795346534116471640809677088162172964740440509317140530532893565107565678377599647718203122196260764591299700949166136070548238126487583267901077283146654620598133016516509720359906507254681242198595646311064962396637209439387009964977415397922380424347092709854281517981753486037505394400112743504432678742261742895950630122765954595918621258288574349811359544772436186644732084874576188606916645717514575167644409681198429093785339335197224548786025507684685778575242817309083190605625643530323533600530196495123610608792370940344901190762244382925090317248224511564115284784652739515812878552198680045565659431784542347672153151092720449364465537876201772375866887176452900695777180953881283666690231178337411592528405492932815726315661686778158981214727607536131476047208325133131558565132141272428905078295376212725049347876116879932897054693286495877113841380277945557701509666156845909930766265993768712613285922950782050888781557770990113578554119485750268742510958870564563469247032257915738025402282845101565029818610819529564336186824193512784359349652273222951034907508785787024066363478248114233482839132823413228482958904630753887716697947486067820239755461954013466337227175836997406354459986339629715494766104489117769146419004790427505043081422594464475921502799487159402581521655679434714748787543450660829622247668200035689796316491218943344200045709860525483756022671077421309408810015176964882443423467312754027213110928019332099761019003783286795860813243121544386129687548433550087053913301461206814830236799531741167397464346958473145612392495744972376785973257621768522055600014494562514605177222792187670170247657423420785210443616375712316768590256820871013756440571183555890909815878726838225338582317630717357623377699010514909472132021402147330750949089542785472038891378069701932161721435863299587549159040128361924780665161014904545929769858642170018506811089971988306689232520215692756665843427923398891565738341036064736267817803028045975056167876809166456186602335610956708470357650118043252525313165170828613835098620192052478964559241308700452625788211521546002973706959120552946747170596021915309392838246997598058895563514567241443652196324407301128917895800991847303175119355517472988114629421810354115068312770524103797571831672887898546855452639521352943713659149425483900233678553656943025306335690708300428180734234396749330464394235417495734976287521110593530835008555591398183786726396491458430704123520222521714427295472963658653722163559187667313631914733757984899886611473069543544575938146722186969064538954824043259492008421547288605929202227504160162911934069224987251998521811954593197815487944708185662284598705133278497644856656056198024846480505830258466031421571681388758440956075461465373142058715998830302922724484634663953149730288857593968685292475965542488687247181329502268733188850490442021375913845950335543619540137740910363918603074566853304912341914024496855203995292690156077205807307066400229754620672168792019675243819280851741510071859545130703912199046875668067654690472920470137903452343253504106660185281801170240644978137123055963180549448760592204886363237386035480002635766932192189051759460241349647756533460889951198454891180980444766442045542068811086357925822004583844303876058496393025516779008158227643539377772776317734178197038471007377188597211636883845655091019781801739975176724391685307367881802954040946469043020967096378868620661682353695385845816027266076401555098239548419873498269106044906972294009428841116222204537196687918384088120660352855336722361116233879720465076447776112167239956088228921495004780949709994310451013158555092805851157206169407528022253752705723519552563115429678320370652420718703623778840500853187547174980998773945815154734342737264437368759297681172637289570060111226899130421164093308140642938014437028739340811916821872039235000124869194561151143156463657445279412455494211590689403797312042320309483812448670977421356698336431635640554643515756505138365575638307798748514259428855093444944321245287765215013314272151702654185832291294066752880285043741100711575187828852670667812646419925960807886666945379507213444524596405565935316349705984176722726662800969358083548120075313188470325030392579458108916264451058510911160335631664301274631521439465673819339501396654531474441115256882942677376854091316142058233103019440081306932148180239341088857104044166834203667693092423350321131101270157228685197139964140277689900139610437445437760326040211803154963077875988128770084436156830063416664632095351686090022720766656112197233999500006442453580230274376790431391545963337066950991542113774641604476888255167209583658592314543142058708879006331079538797087778186823825413144251270946819613592647004977241904012509786416400989068097418901546448075971204611745500174220297947104614562901120293990193939480773467097258680991799230521413400385006809029311986274999359329468202767683767202283230827840646808772308414025471360269409212251867537394178488077934492590395052868946987132372240130965588862116890230946060627578864960919795121816228336394553699737225452777654140713008958200547755582941990261184532099646679236416241803866427573781009843015889862262760391997099539172433711647454744189801233221796342018708916593219906808754094386656819049444998102782586907512257479121673094281201902573614709497609349315708289035568809147399799731070265775974621494345864688464541772800967730193506871248162920556928560571542311665241801322261491114934049955066055672755419370527688235862403264939519175211817570424735748973281566680077881882267228867657636057375150093945187015781387492054049460214959357174368266263089980417727461819804251276198898903972780520347834481064989150260987274171565224404816896663188780094385080085553535315078409118246059546600898301360466969247682590211480424800641517652801902697055035665090886796833683970948012812942924587071531515039527847519094498184180713108209021622329502170539241616525867799201021631617266452851829762946159153047842323094379961529487146326261984594047929074531589816043264615779106126906724138080709883113158778032505489775654299923527305156279655015430573083913799834245643958155979497283140533832587271311833088484159026086571735621898966095981743433540545062542837312124321120930785625742005747871964559357120967792068614457365828925398449878048038413172805402168722587230501793475103753493513411267736083435986591268265052378944453068088670127645551686927268912590087474343679398297655064857222052617230515411678601481466540445184099532276335676742605161067594650183600722571892443572246244312946649782692361842154169577083136147299894850302574351511008027919786302485056786851127348054513333365614578960199501770373004277112002859502884675962109516530078502290850629328284098492397465653023549308903923137804058869109862215026914496209800876199589421692573564172803420461470646798538078519930652360559748005282755250108460743770706089369293977112525842770210003522353172502467393044970145783541449104800061464627096140595518747114296920188814755557648866122019652260465571757453492236933856046664071076612359665987510563121392909708450320580086092967184266215262612869956125488480452472730425733611137125053978088305022902348873985492781481607264199940946024482397823391904378451340477981689429782955714504719757404061900988998473500155896633800711383225430426790496392688026345952356839961933707873934352898929353299839834221747733272561427315566496656629840835351732418922197056378871880720377460241354749364720869439977929637603163469762367039706376494394020056090442184442488190594400380259675739397036503448792821200604964284001349728350612413067452040054798415674743487099334437546192281261912371043740501610595311094984711443097796918253550579658969160673683776523323253008195940129673202899382749066279987191277774713419425289790796341411723241163002844127451018295021414428119880430396978453456440743959494134290488311597936333898759128266103664677859116829384796096802123006069850783467904309432382815274368068170039918052621616936568312420173734814297799359640442781981054114637430171247028725210212920421497639871068327776969189643491348174816228606518679195747371175223984469710394172886041722189952723777698428255362175055388464850606342946573664237558652857014692691444099950457506465144109976232571601061177593918374551262455449200979385159537817196337363700770840887864237841615594503175623270364223502385527064101503715304823838457112176807340458765957254965888439047330164207686366358764550298055045008538644992650438145307162276381595902959122223950775333464670537261430640271630687461131410585610558892555154252341577343772217028462746806827683057502930868391130825859065424583247833739319241958603388433295252552048278483633946239419914919829451170813873452407206344187577218554991901446371926174232531666303556969162762528077376473940771965568588550288065906960676110560101607462937790919690060389382594851978188372575451136108874357787155259472613094359945529435495343183216849625986902455555532227237417544022262901736830877595825965115947320185543674981097351475420172993133012191200251783020165597165775607928614133837529372666384978989713066665561782114905650528760585283169662017868373168590301839593208015823658856459904557691945058157790123289948128072751486704882626929926040229352081711701166255569474395654966698011982138918443945916239491218496431553084920916192902119427010688090587947300015844546692471945535235579689449283629549797819688927522596377001618097598446018235207365431230637495486025966026305831603995858692585276704571574037955445980399198336045622413669502987060885198465504809032476836683424598703657258334239755146117673647523934226836294731446654666928936850401236503519673543866115194561321446588583760836621032594973134495478586788108699380810599129527224399415241073786840066278001418374611970213648095974965185225924611605176996166669685112148217983607069255402149799235298873073228487858216932451530386728456285958406518810134356788157509723063934575069515498842932473625328467264315992347273301509010037187677532816428768551678663171044564818409815952751598382903028947095306049901890975647738529490404089500721717107587998939362405836349078456621351813131293004015297096750194494715930356638534895398046833764131134305514420362383291798476910665220193834517014758405788447663840937516939035734586719843299444979354528411283394291265303898065601170475782949198180599798222380806958966152230386498070761254792301821472055004080217358853213654095300457855356999363563866715556276763542471368440223862758572815782023003299567905502981526630817325775062272940026822040219563717141759366841369294160887044584618733564785696344555048920970309428504225856700812071855786722797909058724863645348534708599891036620167975586324190777346796332998392303875030201303317452036188989352418254783673143289098836719606159599113026156516606306214595448086807516095928517289514555604264054009908724464042260709136366659564036242157930953801743400966975741322513544225648719161205925100154078822125118756275796514918927544390907217617979216634947278957246832557270468434065733485756104451638349317456833635080748571076117741217510840931861324901452626354134448896185193791907670683842139484135959228115958409087115693705421685144226878167883575012355359384774133657823494171689994022322942329721243909817921092347236972150116542667949879550892189101410069488797677237359498625577970635398118342218607051947484717395454578682846072801093565846805461934429358724688029119893267721571831149062796840929623881342368719217320074489320631184304174906273787961046810832437866690882626821233511435142084324156368655132916937252423268210979650558988796057784102137647016456026459537869422624972750850954845217199943366992638024350748122190756810768394435437717891321339055630135364568136147022242559828890637880112010706128036795360822062441579527703292756646814010292930963936028278861288260079170405338824078349524841772838342571302640356207792335513870946926262784548549167115834749513385434366250244910454651477108884342574040322780889156180009754406071017364144122886490695945317736584858373718643226337084418759961518116171263251935770509647187876684364431326225344066335187866740642379953257592552716594493977579926776985450487527872423724670677329693629873968624810127267850201654894095302851100262051077270467955188475064201259644421338932726358611479808955400055232181716460289349667360240700959225518899455827177567102858976737476300924662290219843507490877806441310564611721879552636030347642349592257004244810114817723124320510348000973749217633343085516265482884217402475663664713055387076891062434179877263871665817497113294290884394360227644038599145611853412980601539698269566972998435404663787183705477749815805301170872676028526192121916177712445898269433899127827333982074167322399349207295744391675103206559980596320242730810441041795859156165626345376790266194334139435838852450576740601466037363693316748567510324565655214665763181718959047877582636479471415684253450968293369804036198670502523306291907057166033989922519848172337190160936302810247903176511637287813582298427343670601171721329965896386673829774779176907343262902240296308948210493495034252305413251931092670079771482401720837588690096170833334311428915416714024490481639164770340405437245246736459744392762001217142822792134630220917343230541975841354134884717376843106375469223924856266469061541940328038800752524191230444336013192804854115032938662833007145470376781382754650419575863608801210880273352072244633145065212182305392858146984233384390576373246450057059819080521436030135637107333147632997115122303384401879725734683426342925495132877998930901316877970528445263572225887217815216111134261068326928359565834142404750697154078976959722447481510046622201592332870035769117084070566263179470548273362274216670533560405637882437473711878548442872832838558495568754353513070147825177709396758460671642099112538655964214283751668595456213834749411060996258177311149450507453830251106771840539818589711927560904977529045386192562821384308948518944021798519854258970912627021855510696138947792200153389556051016388003929830792016157285474169155523513420553554591854108288934313584185825443780321015303612203076409077322338293683926624698439513861041242958264364678414306000116271581606553933996105805499190624897781850520682490672039465471241150878265415954434908474352228385811808459257183692414974733195083645155947309702321233812544509439587055720049228085550176646625627625117254777204990432775139518881218564686337500717798961204581223590640512124017961941345381701278086288857639075161137830841593328549479624815242151858532597522713429487203771682294599012320151367592413958432532575762240961693348329719346833053573262216927473946596383646772086937015065915904490571352591150276852315579016262539252577855843713908265859853419088912255964268677626944689328328836856500684287527451617091304748370565699984831511711776711541129054744937506077945091061506094781635671561451422814736865686032419810651910242653848202325816387217242882254959998872729717689841234441149929167236937890776736167355587412864045364009101532710445513284695336967166321948976051055397536159244335927655556845942954902265416833417019899813475590748508134350875392306672811318875576675227057004120269458451245021427994885352261348785940651855985132574406188526228816822211528503406366307416301539860064759740169712028644437855288167814090599017313059857706409471463297656602786880493660346643965305424518437108412105503342388288356657514045481461238697650522438367624183676768857889625009576815048711109610947071985817559185857004089462167279039065825135712772340536423069760784123969877213109981826841224633282476111925873288589165247908497915087707758815815760733152343667929048669863725747439428200189136816994159794552468127054188817298941648012892237264784681562352924266737436673489211826138923535658874443810606973559949816138226303660843324634784637911170729530755616576529690251388752190538205284854082812688801393122098162395964393469033795990211801545659499789517031855237429017844589653435346176043708582105729371544008824370258360321654575710895825550042565330395581746446098569852376957715760692867738740308777899494338001353797278630830438653991024957062502086423662555596518535104807737273924790318259136044072942257077697595551514407707742615077640528093078895811365314636038764967951416042063330438607382495478421601870239022769245358462290179920303380178016147690905246400271212849680841009164715234119805013371798008321018532878381445511158534191106749000264264493886640135427365522699363943115313529532291751633156056515756697727737465893849831121290506584660291485264664956178483500430171196708474978440386125511600468175807764216517243501091866202017539999805806710858254097004122065056541781855046132888818891284640131096023077085872089613543359035668211669524884527717461318724298178388158890091116829772387726623758877042480613818181872918338016677718473616033810192311857706393856285545234951408603085881068642564064902898993504926386264063546190696458962711899172699286727882387630277604977024164484482511728024189183694768283496604597763649674325664994898997226127526936510061264350980927315635823671566087663484380668304713458156488689754559026378697048519283541828251742162275034194061683168987521696706963338353936370869145055444952152382566180053530757928088107241764324371344095960770397641208842184689148972006064956505511593832063217927732302261755100199997240819617810671644325342371004492103930312322515316628052994928972361468142205805070013722078209347319800709666970832397831631657703437270794666463714563638507069849346208359485452403817585956765476807653409161490022098422931864703294083959497791305250413366104460598179455563889295713755163946037049627714587530133842190481584324667148476561413661045210915298199715314111358261364015941932279747155060720991795226640158946247441372068443253024054136551515586258366730933668379905282212514237877852569008875217677856187835782187225316097923592401536849490211778685465958216655230676697185402533749887116717253898329963974352379529242009592887234400262693670970959351419136601140448747396290105924118796875432228556333781993305360691430784036244564634095302503428293966967703167563597396527343414777612777768217698027587768070537713573701339687182306886570499722491981802946378349992245299728487408595261740193887528280991903987079465570375719840404946706382731853024729357608431635407649386145513815506808726081494991748568618524670520252381212256595644617910522027123584583395280870219300443004810976243940031785715019418701335494538515226329141698072736214505768786024057536339096309315699876901687251357387380909942608673967377860346406160248390736950011058775495747803633970516466511810238422122878417686197998547397027090253883903338527243964765415866178346968762148141093224240449793992929215209927330031736520197078251255934290558857674566623694262293059713866934862983331370631245290478878821309739932875768182907389598009293388448871033579636612715014640396325665921900172027032686992377301311023867160331477221618389508720938194618188539051053617550732094800746472112431581812427447903076395313320619138993352630908111050496762055333300027904738260469465536018238494358953181022408408584911324529155090276893754719302101521839514532448034838453757287013363430566483845739649003325603705546318403815365328954746073388538357532184378647162064471582724606845535999981784117682241087737022871955459236636388797101007407875296420392184259210258706818512897658196725044614982608261256350562548460923353327215379427589191121022693456150579273254157427207351124615500344475272991547408214848411938400455117751339901333861812061336466905028156836877697635960919734577538498728508926932658858730761643758671981995497324334060088039167920697212683414652720114314893773088273664374428010074223886103205146064065135083145795283566122531604560904099152204905955606827223058208199340315066220256378063609774661071002726899193729742518119104459110300179368763099213704677365076533599631721499369768866383612892407326771951741569317028449020861434867526561107698455518594142359156670160537062852346233982440106915632637145482164403968998985128235129569530377897662213147780485179793657357315655174614072246082979015136807651873311467611751098161317843201417622414456021597317131286707016278916420483682035761336905989638167819322592634213574120957719339547997491354725328418063468837601573723028484151236602311744764038213770316277385525369265581713506156736223896779799583559437653865094682725886099727946348495564265744246987629407199217105749353023860087364395373282256727443911123327061960766110058563106959478839873966305836683330329345262943534970628984375179055198158156644851449821718413831573183597032276294346852188185987737556102715889004624742894835229575474592388698811763713689567230025164069459106959144699089269670783439818054126277334195443520798730685501703780393672980759405583830440014310288264935894246883451231857604242499474380646121514200353571548907857373261734638970198593581904701721003659450672368523372163729549925832137259048179983459440589311871348567350684716901815889678725098086238630071546434403060916028575235817560960142978597733395731635557716072638644300219146249440508613974169128117831134440429888748282896552612312705994733847063236292341566346675666892896091919699336493472328639912033733907245969518852552494404071023841717186383304019063760857764981436588078684027927701883104752817114996293492957576938436082044073573496783160196684528698779839926542066955739906861830994889694122935179085099144284507532449792378095521338322252988458047919388872842302068057930215411404068175915412860293371617429736570188606762442848242491053995443645598803965547705301916703818181753024306001421019571923010091792315525814953745131372423063950336515002297704066979434992539475386739038915306667564399134282569929560260127443825581155986185042102961814131113894588515832940903604397158740052695627656637295915585741157031242045143356537326319589078059371126613795029229526256053740611262816882248716102729177825033529337267028085556720204580993197991629075412608663015467672324686294154450430798428341758076684773501138915067135167997723319718130621143052426309158260061140486027268060196321084151333863391374687485438818815292360884862204690722951998223520671124344566108613009192023242576789528996990166830566513017581410550100644850907588713653225832125879220849358249083472870208397861650855834821648332613555045405656368555799003443257345841148500387991400417867184668751805969593898498389169968473894022630857423607864893887616820756092673331473773254100082550022910266899612654614139131767608616202996465169433134350046750528283566285817795697951010152050341121051473737988439013425276078820427802111400800046854517868366946333679441036621248898728173173873288854813226808781545633353453273751579957039126973136737109046897699972203229953216083786690439760574076927101792332722064694568796022470046623406426289367632104503743626674077745086261868262931008213350673477386711952883887617100472171444606100939770699346276797919974014028374946608293061712721510566416494477936811639340091467160947724202374026857060612668579988636754015336309193729416347041904612048494598791270690514304319829330041529383367938111338369424427995660288659620336264584031465435505642086416987040714052614610985094657554542429294486736220998116564918526522646582691828383225072459884185582794055619530629681614718783301073132533800190004686065455232410316057445963523039175604281123613195238518638120219163507072727934997423179516297873439956388092516908935828781851719167438611070678436522628807253508968465582898926861069320532959515165144610382295335229661064482066932299019644321912281607799610214518063015841190705072638489963904963467510035710270278603070740507156625704604744514784605601661687821234285903409134928831526214761996431195009018835662984564267117890748944096720080615762746418427805014866514433545171633196202670085645671835807345120951093866247849637943887703377962238055323522181084156594052203589623285405910547968977620847501757240312095817805608219738183252859424788241793036516015042670274419034903463588620153998444638676953883082472405447132767721172983107967312004178595738050490790236781112383769574064137159082509314255984056459635242203017395450611311676398837762860016654264860378190567848169311540575035336885095988833302067583923568453437462588969249904685258029263131100725018253523989814422199481387256569656669646020443053778342647747865120765832728208423408998458112744941170920328331253156287557744265678522816945426246209606781479345038093540013262090963720918064475973357823140513220222447506006935411440239768262893197715311208351181928950040440297604996874113359616938900131382927159899981362493892979520900406650974676901897540556983483235480901919495790925004713039984824507268753796590831161469313940949010188303576434449919931795472219773916174866064854039908681519765423288514255346779412181541495052119852599242377275565598314298161015027464199335998420334390658103274268820741940406561134554012287717389430485915652090051051075736874069820620597724574918977265518502864818684782343300823073087821542600013291134921418105671913303249947520059801529377849450742159347117426224379579079169714673876163840190899035313516254270900539111621004115932482311405660133728455406824434272286110401317223536023999179211611821038227712726595538958547585721467027322730504376118809833858526342445619572142132723010151004869731015610118697690565430850799170728468458669381049402727471936672942744435684535693059026112176981401001834410426665860900189254339960834643975578288299211837649924795669287431702508169648515941060807738429881657937721018368215766294366576469726593042038168706165456026414350788251269166480200252155524465857668392841715027647902997820614592062363476079620046004484984012386628004724020135075708776780378586827394615932027774786968896657600956691547962959981274713515754220140248816912848383223832303611819634984015446077323317820670084741984251311235684490314390451785378650354045563479810567186440528637812951762777585017572052063331589520542027934607932963701235730567606462622142196782776109641706008429859397685690497505516384434420422956185568214810332970933270763548394020074142832903541807504272884183543279045597259973813189656451054096628055116419205304553960856963251566834461730658949311857474351269125208240273134555576219121275675314135021141807405228157664386903443625256963174246866452303571542401960643997774123367130289024868250714620484171864484023354601318826020003733779343387216096103589040065123370690232784719357696654470947885705350894041057874751239159553011975321598910350445846058261809790598171566503369789949378970576026910851082628927883424189118317913269155618665940301488927639031039747680222448937037914885067058093096498019723636212169922398960855468115501971911845701835634306524780257014293097778510684434470977755836576956325066575410549432034255483353984594644452714437033353690182867454249301499839564949739669003067619593954536423784340816704717580536396842547255529327051850346155551411724812532985506886167472873526596391214355820682866574575251889047110739871872422320105500059803100475689249032440215882118409309817196801764797729132055635037481927187699681887233030892835947745364116152384725748845111686591856585032259668553135389463020914543152773527541438725817283595427627912817945507096332018804605909291046772302726054775234284521159446189989603199932292322693512645617672026898386344504022149377366189706882869940379154053206559092711674142782462654951211519285404789586942655346445324272393711312307994750081305851287669282598087878210328408389583823132332986145037561714517066057284410354594423161367681485345747519844753503806268576625086794269184525908275275466993028434418732381281050094639134935786738244213555990858059252099363759976689794307699085651707235832018493639679892811322996247513492173075660829616966667036063685791971976006422469090980963977467297166849651865315811918248451570869347728135192832947522697869487569937104090597626250370239845060316133782021707235638532986740920708868257482454781441699348109672578321718810642040685025867459208172989272913193399613849572603494911809590399917215505656295872039227082420025923770734795970076581776487451606464189711781858247015234548154176984301883650955176585480091420248872774940947591793409845723524700787742486174480234981550366176462236533543025122694751594206869841400671213631854224350569850512247336358485016566961258800027059418536696090223963782004404477045045705964654320058066823020040226469533611773191337883790031663290043738539261083254490510442570645446335690637906252828023087160851265668207571907467207030757781765376791912001132600236481101918393215718312430514332856523695029617204675495865023175655102539161211714709553335010288342791731530179486011012943871371139289800672815529985353839177175633959370118159665448588103881127583117156251185391331159237025033923850151764046289543414536306529015340171664280163960758021060174584371327031182475972004087356183776637156930760329962612254791136818943061957673194161569104496653925557789071197028962260706106250241143058768689518354320333306411239264391871315315448146548087952968309350450178174691641037702643567521004747266051582774913691886066149258220314047250184166671132710860004513344652413877143098541965443385895346102412259576980209261818647550520827602969529155199110950732877383791408174834468995354486507299043048239656296554692073402984687292965406411433066565896465881900565139631182057980032416636025930472090469239894773123463418590188118028058598705358844094840033160098120071887454473640917829781173228719367438548877567270259850700969094620164807952020412561590012207244615661597010494063190785093434488901814562770664444916118660610358514706129260103204486006161997685802919378575718791221227253680698574496676855955522362905303895776143532595865378657677101686222455902906235923469657621534672652857119957444988965334902943155854505606735132093145447999281749033013611123925989505358697613627774747371613941031872870779351635875943269515125318244290401584294112853815364895917562946986362906661696926860233958742034495336256979727849862448062329694065346956005676966456777914820087600933975906959565880975521822529493626799909147554972893178708069431319244952838908448305636290398156410800172521255464297646295074381900589383987712506544916684422249230117409194270212517850796684367832359672060020958177379299286266145382777381715285126869683971063300462517358741280605317833207375747517704049220342949448591361853004672241599906219522384574765270347603003552895116608512950559617595230498104341250750351637155113773695017004978972530732077801258907606340148396677542862899085755210174961978020951961629561384780653898989629140201896953809719504428542680292853316568738522725254218582826247416065968896876908519466088915896485269750257997488558074199730431500222559778372306587151181866285527957762310303619157029920824847606184692248758264591162285095839629839995742669249252592988924364952274363526498704372909709111122547381050681487965568073593160783211325579751493581786419459551195332673148251362830481103930134403246873573865990917493932515421675388564191694746865040436395260574304358784818181289456306752821044043292207230674921430437505859959991779199105143756688889290728426521190361608352440041622360162505461172705249842520204405521916262807206110194197422129910974864467172987492446225933049040429404614138459808011748310426600390229321598130130326093632287664878694946254961332069739312198330370579219545928511983486277830824562995186136549254797950506448019237671436397497060769489407529190431937186506544758257394211641072702199076555194040068170778472334291130134339272379915607638085303705094373597899785179709725735018081990026684430986359747535520928845296411817192314693372773141067270474387083842476550403737487231946412171377853442024352405239148927745751642404572609139720503805563618249120657308628318895001159158887331423862454621534030805894969787498873348021943588880486067930194638344062009066254375345878204136831033901401725051944079656148671233721145471059739649676875807949960574781956691882264030425623970932888673142428448328629279374479260440703582323535607432723372430735013049973408425186528708225345831466769842132776443058776974250444908426733856377165350974348313491938037245392256168496262092613757164965742846660067305187865729032134955225423295494718332847083200075960154509914487770362863513491242051263321374045644603188549798481719879340485953502573722414193007762134579386570994040630289503137242675906256993566864213517693876103235641686271605771001408723497187277742449281456109685689105022723171464090838759072915966880368871935346864093142590351355367637034562604229516606774252726367463757006851715042194421704434155382462726662284042992717073330161165738301605243800706066585362693449891688090875380890948213717160194234228864966814863432430757908275564116604338402250034033913345808830503562470190527379656356696619673521740750992933232296490169119555882248457839001818899115075304081348792435590304812629618859716271665094698257329998602606326361537259147724657930353298854264877249239062267746998444648415455167794782848664000026809701610623372383551117231720128782354527832370377448152139538475894658751406242287115285387395351021724624108584798218764061043489311801565657747364846526508876398465810963275129790351308580572533775244175995519738584386640723987076017044192743791807867747606484878299428477006814540722528780201353097309281787058438157198491353393853103471231332477844723516336499191786986256488158312174707967210781753640416807514029593158313363817253862194295050521690158449497866416207057625054958884588118876198460520997847880776366409420349927624933230296393417466617731091331749735924984579368132064915909020198052220853808339748836758051010642110681925097603566841965233865338102934571842208778117649529102759619806855328710367803376360127777146535729923807107834157749521793068131518575543240177596728815037458763840819095083524309420312661632123391380133176381371183314097135055496778974454402040661117163251233346180994963157182147771633434420698759784672248294119929463995023775505662111760914318559330793752095253576013612052556383443743535165785526611371815878717115751837712617420021625281004680716461600155634835377470733939658745946963467482145554362029324344470062391642087169697341896900611436500793739604427735076527171060514364270647484841525282343310139323903686801067665092579326148145972663205716503766579379066823041738259089345605114336719511192578304332109110298850915072675741357357511749891739607636590050837817880170857412027575479033648315702336846775720130018946111240359859729404320097689949990199876955229435491188035320480369539961824757868420846274758290284378626523389723771577221670003419541298796884571490739364876440932726847067659810903747973710505860264187718852738779628164246921539065157753939547792942433160268776548803461328925128624595046280416035478341071992074760098916467957420241183671618509133520483796232389256727245002786783846938117909281124104506636491810542284548100545619417167916466135664478709028568207565590977728498027557398369581269403277083871555058808626262982452094478032402509969409839413588293088359563323386511141108911868288026769749861009921163984835510172463939220667059729978888647428901596424325322893218428324191847584152792964607633050675800813734972225417455221706861119295663589915197681440292228903467557382833320539480573521982630220573368070333723336146386162792560983571309838381054375047565815201843821310724680616273087267814388257774503012555310171056133749689381179710221719329389864695396548773471278278113763115223044564230653451783466220822808128132408364417525524993273320302270076786476669828811539320578712156423545691337426437773428341196010215064629831027701849920585266961553420546805472928350432061793616102863046972083769528497262648599652177479509106821348183265635187331324919100424059175814449350771051964706216902128906295769035113720575345307192831766745654741539016323468833233555022667667579093595153572510680256968403925748635684375335826964049624474198460226029556389414073830877021227074873672133434657208245299604024031238723215013175867503503299055035021343868278082298515394849989665359984265818861099613400881092712769837875795571915179221982467630378152162655460702946918767811832031425879116717945045475948446777457286558235810018444817739498298246862012116977388081696842469393961282524830300911456277188390789753636047632173335816720983847284212069196437586300706553582514778368040834499864410503347611079863056423319184467160040259386552701698183525081933373058658855146768588632294853007326861862061947509037876119495151189622966649469153971275470315564144148704926250220463980449751800291574808940406385380352235303876415383348201148030978198278343950498366513597424417073397725314189461671096383592379668929923748484250213491079374689803364626274905731459898997599940599483379597926795586995644790770691484962582205843975905034230686426778059800518030612994697499026025880636972774220895811773913323389100340443333148170674471308582580474042104188779691321267306564845166294303666642222976718965349142310927699660839091331787680254035385825290739612380465140729351582378061314626480117393944689333986351673943353252861911958832575284192349447569345124374857746541647428579008778239450728597954335697412491109755899286594896683287634611101936669341823385011789525636675911207075070948092181377733110619656944539690898126980078270942810786101723635927777893608167562952190386756402089450866031235074408621896083883174559809795843713317583443481699415564028746272364949139963484430128900815558838342879639763499887193574774529950996711506019990249441833260545227032965813319226669853839082359717032424112297424237192839968189946485199339206937747351834743687161776242765011376985438187283990350643514493073819916177414805997184455032218552724151105501389573909776112475244580546596241104007700567567748240262220006526125744752398146682726208198113903636814722209247262228176965675111397651325129140204054586927101464373474158083795009455485150335812593293984022655470567640673378359431496061481997031162637996731664265818632524226575416731957107024713034859642546447871523002664423566448884372790394703927129521080940287237748199432897463063360109242282676815850488371728744474056791373579304114254197618532888187483253085520339860599305566696780293129912916490008740324760928938510594531209281542827459430345420516652755426792800080830960842566886159844196557116932614517868001935399081647286754162770124515240486178956861502685211545060156066968381827257802880847978138193947627118411218658550838160275821585534469857979147288993422835951531088161381704151468269056365340651361161091198256277050234595247171367469972226411988491502843489088957163980705399680160012773587772157775863731227457516688295051654142428886873159593439817777405114388477335209542058799891269949361528793726812047230967319229745525812649488360471596803996157038006455239253218796216588999769453817019551770945253586789792309186820440529441371240663004588272358958910782567072063996003720055685822378262494854111390076843984635733227528672592023349637720887766896892843273136847816947287399808317104743795539936431440791754089497121739464475551746842073042288780419995355142042182589858886789001884338524348464616038585327916085261976162343570393615038432470808772542453520597572575970367173592729088121129406001894283798568268217792888409464331431962164027763018368844192696730481645979016910831773765298947018157059146451860075959279939485979740366925312135585118855179612310563042622624930288639241798048998862539291167406076952938278095854226132145184769693709779904529853569995709614121505962193551105710950951237494866323592448267398618212825847642493590997140560967932970146244324419821466685548138243330388528518020206698655529914365989316168124576113394155892065501114324572020303016177427198935214258578585259978912851277660803626079051920421083960102077776945668312525427794434560276049195972502020273312529220819251136207551845205132833737307042261498215171350228292966455027374458735146645818830731291989836655687026352512162499527206295914632247494446355108030786883278465858830892716849552143717119038486972616197267612338030444152521356968180935762266541564202865053442728874460687792400165736264451954627538993595286579719542651632337140027682051455179548082747780488379722122528622460827233960391788877664255836127390559684379658789653519139042544913318977788330045451253652979645380576934027971175972201127384510504789102102793920521926182061736617562227756356996224045392919080686626667865407835907260640620721973259858457515540644607019126943801434185259148313562660151435032760415866788035086503998525161240639300866266671138384901897984196163862938173416541946269819912369847109657281906215733206640570071419449282660764413565317117020977799100018789565138425282013326593955968549163353548950583544279095540276674120715457615329603163317657045593833171110427227089616053865250668042183915185111040203608535228410390266143609410510616374794445339967413275793438514205974806123154345051690316227605707429684803467749784671833763252957070677445996238333232990072780965605782130526959949704950876434767452955445090303903713340405599079634264363861822480756492691327720893972030313446965510213521044873433889506346995361842992580768172050212829022553736446479603688541847034488930540092024290709521932423736833375970568697393019805966596968289530453606994226009719250243009481096207280833280023352340902151701331187096111963665555391650788348409328656496997272443319473871765380687126481518849129587757974695301719115082860008607584777582337397385782160290495392613602903673784403573999134513527388669718610218558542986889555477293650584100587668750521474017929497020733843231456332606093238673524037689056370492168582863702040736925032573172021760079293452316612381760433868303048495410702149767330049924000840640513185883268510718492859315945847834304086645195336420720381516986397898568380420783331255768222052862133257235376271600938213087517020690321961824064632520114490504645899330469624845349751007406189554179283329409688590220558561222394412841524199063834070644991439378320025884374981783117713698925619868262721907946494993360512777164245833172054604338220854102986398725735709213125860380598831060574796158285255868335026278548618535786553168284790800995048980584256490064648317692234078610537716563583849625325694078298238092618242639231735809645381982622649796423893542025828287344675094905605978940545946077607724107995023001907581084325718409417508144856326951037787645463593260590280009483823954937305234063301273783681799523396800150715191763436856707719720427711886971740866261623325998669691060368534691035461170627967978327420370355465288594859299613156562713115180080145298896066635182524936778148791641114741093789677671902425253633250956016087664690979476286544631080807547005432422038014139010526478425743068312330117783656423108146619513882649356746996667649048578599556505560251240026079235651493451226439668561087779694103549286126067103424996145892366069342743350428927804810831019470231873095003836325448174220223005214191986712172540889948748732924269056569923412513375234001999123017110957960024210229560255342560652781479157281746990930197494023655763260835950597045043065220059885760432690567108568827990684756026891072646611911775789277503080159843679387853905664078531127193318037124536048784040275059053204572526068486092039113187689634645882673585550528656974209288427988851990760412869169110323114370635910122025558068887129495090636099600607632457143154649395790577249101605001558074333702561454478445295816316588045919608429776474498388496551181790096312868500306092467606660647463014165469944006540693754159176075722333848622013630367100107311006522036717327491081169429331352636834697496696146950745436748302672175365180706942719230691770191538994413358715757086321828558430955215020984196993532641074010830117808377487001054572837354028078242893731189818245250299930411947380982794822249135538135342944125136062965230290707372502027964707109268530799025771550595814892026163808893955397658630122978566033093937747440321031748849750582348458350990280158404920091527973800655657726767140001637980388945503007555879137492981363894023122666039633541670337971402340576464024575814711732212796923351082538077213854637619669439973075313030863322042192326903881537358148913998906616920041207563559445164049748643900859137270916982051416173564320532030553475735832296718157992830648795820807225479521108543952774040731320369319091745803306838390031855694674155944559944038433688571286327063619676697463662511507615681384207076279412048345624504851600235271986737649249629286633415835476848211181836761419481893770980358865073942595714870085046962242311212715692657894116855147443439109544326393541664029634949801668373052778949485364565560233927368234527017499459068873482134438657177273184163604083112589519237036947786714256538131669534950720198469554805137171809541783235275623323353501164080129082528220368593373763518883513806768227307696622968388663724033850645317619267144646022752794835274976870010562847222659287501247666328200123583629516720422271248612548931529319065529866858481696151479170027383498368064870964401840320963733343168888800104846589933645095525028829810085185477493046750002624959697490820317487577906977060705877488209178022796059731192355190618200925173314191255726934113585389803001259908162781398300674647257171011659053211443012762126922432506683948569590348355084164512342073398706085135236361767531363439292749462850019264079946283565201281293370960435648260133324508948902556525343979395296619013376774717307385948010323519873901977867522965225875452865420234862950379258256106625090059846874614082525274145322492397207971225488807682105407465077189402743718627882737680188203231659861929790747648248212010625932662579276567611510040954326372926539927667696729238961569411952066630281057217667734081974880953902358924443192995559668838614569651907635759857388378151086009649888998243226163000435077193706739375458216414336931030483134444570667640633759299702550407454107823931836566932457018452891830168815569467327831415652707415275097894221790486961478203055152155466840808580733663062229206300064866329358205343128101141630215754041743015024505439220072128591041380871211102567172536381141144649674140109672864087959562697572129395021489010727667393052846881759681602635416976948395076838179853661633935433432863260266255337068622752953261373970646064967553063959821037200519506143095604671728378850079148657290996085972603759899703089433616706500875760009792385649589574308035676473816906619504103914957935004035500942624176022566007471631686682327945032369260680808413319078923800667387380773972757137952423745834762061005358850167170087841787229536929152006391628091139539138909238385856524408912218899932224799060137856778499006829501865806259643016667244795488956643581164986070878474616475627362670632904993248167106194176145320081091951617579807449305554067439481191198452042089856942429769452119610551258608673783026688668639180556272421001136165792878915844119107020532075511694722889725271570095970368187905070559973153147033302124582740943870408258857281261926270238382841567867860994326075099485965133130463961972462365255592251577832486977003402554151253194658849528193434990272882100681637969672768693921876210314879981211683766233299758409203771755210873710641288773856995822728008441847474752188525333189799435806678913650329199975912611205340197568626959938509389983472686519730985103154424646611004429891253114633905158935482243442410638724103576739002894864864315984108249065368474104434443304786035625199905837623353379331787068933014097795878639861602131237826965189893016869989639218506157328809497491276947588055758444224845295255405089051057117788147042558965215419411962125511748576948013626849246154120026124804758572705413666222038691156576987906489764801333527770643565422094079964926833035257034831954234549056533373182054269971341570239075781033335313451677748067565331743700126558506249886316378903559991096717734054173878991404161671628215696216492361708306993386335668054980096585665286172548973213968091865180613625044838597208364812729446856414419625243070369463594397335849180068501250437272478142444649632430588786007067094140163824949527777849658774485489795384493312118615001610856548274355102465519062783906983033660963550434161289129317650781230268189642165866345352083331584628011124959199063240019508796614782239270190929818538209193096266996523782735096521315497247989350040304019060611405299538786940075522908183795414655833017106476785342642472811683159648448126353943179713070021697140258808413451237581894960339300077763006897844266624138213998696772273685963896781904968241617205281805325429525903750638956897655125838090075618709575633216753284167180758779309807022006628780077072151178193448165324015563951635528894282685320126833422830468958898492395126796506051694327426137782075997106207771915722297265202475297224243753196898875122976250086708896435345160666981936582886541374251723696550120051024074636024323209917318727226964845060815842722415013654276731200507584955643139400273857562513807346897963727433239644593654601803528502721173846125362956395571389902155998226589756700907402523802903349100465982679928990201274921147558413157622498191781603297639981677020377536791577254141613808396029542183365122388110969692626176029686495630869131276382807710894181253151977769791281747011649565442548987418985818940664081781805642886889322701090539321984713075877445167100354055551091390871316829591154843409770248183081727657606060212844554533445006197601667467583481505797137303904191976425231073358876728112623961685456490610266919892117466404027386565137055244242127125683015578538922019259937315754500622729780336041982625995888640302408857930919208333734578630085408681189446239488582200811902275791164412034855645744838918985488659633593530453151689357593192966002477065634590858273903936780180132046168471881295851960640719617280088855648230962282401888919969581631036210836963612683444847365444998904682373152344626182331474923352766303248183179559236854567288869897050405028834281531577833968402937357328738977827002566522090855613402350654635439123870264031303617080637682189608111867292865605655853634871895634389777551514733951921408821163092864571540085277209226758314237049355204751966363356929252922787763782962439428819686661456369661698622326485941060966003959635343796774038032281161670883039247022810588912960972076577397741521351801401441828722657839639898888337372106931444844070709235599367774340783057125722741563330867830935601316076406761089385654810908946385975697424493350472564490069970265544580264123668720198255741302424423698607671553131472043206922868069439984630628582934667143889916378115674887531316749658312997803952266522149539390267663310032844342482535419458488134266564280248796620576053738475765908826671208117784733296625968605380170620546368002349371059943397985637102868812765231979309868861585427284191678185078869935541908527175153929932684825511544224542824514636349599532854939488634623981711123209592322845139285570918457069231639325502974398050754437361869052376028655293766119839401393777293531977898206942351616044126400290109052621052681337363699477917040957556980315540329275352747753633378807514048544244272841512973958050158555096049248581798418411156769510587498540166427652289375869399566111745045561433255540958817788263459166542060291625354417058193367411937208878089539101667948996524487561595570595930116549624578438019897739143698517051499729682704857669255515301014982804886384306264196425238477660347324586649301140666816523474169659617352402895088281770128105659359055311784738197224261993261158017959386733859598321347841664400343461918142106951054091700044368726215721601487362578446508768047799834630749334070977744220707857061488415738506270204834500696839916618789715799383748257872296442704388884109350101686075617858431394752043072452445146645414108690501663121533540484018717579633794521504873916583719379465236817854598059515365890146062830862939588696094529785803692206383948207277741194358808176794275950335288093792889341656640345465153495112789472448873499669220289212934388672998542517210350131285072388294311082884230645920660506428134227427312851642401851361501733135309792331424142701792250690118662521738034543589814261633797376006343842444010790589427809588077067962913705125442913282335101465148904737560227373034193929447652943633210705926269929108946246557179548643512775584051123609282668857335846511047176593584042915005677223362136897159718385496645504718157144675539855787931750503771301676694616465055373447516634117488435101220828484669379156108313811241307334295438963817512068064398424633544655624380858960297375628233685053731065280086337285545446392008668030914885410336806308991205020803259553554891461961656842845334260892929602891799790788546311644080325122450514162497418940806536796206048362910873525854725965809686229459639403087501181428218159301570689504129081348103116298299986153324721183026924272393596753634585095346651658358937416453638148723724921682355965795054664048850991402563879294117905134018622720764137640845121585117859036605859014415060995982875294816552384772252841167751025775844894177495253925194788617987396777323459145995125143875451928141564647505880575128354574327410219844508932054255644333838923778030728041158234422985796831383636791795132212887173542526214525584612553966265855810286005786860708273299406524728341228649521356755264575020668267958026368903252490857157108638438489255682770066068193502590918522480209956934539208639636406720228078040025760313444768924225420178827420040244375439078134855684588231713327047172347209303841858103180912355363597121994420497095685070516428268882376682317076917161883072889011192074202991108758225962330514765645309035212061308014035237019416603658316925459892166450440350964332102777717556798743169749305424558916691664595455104707421331582263436275088063479833719205309882151690097561344980568280165455871014117508986105282789360139476802267316742341272743266671374923164663998224601007184889455827492267165306550265096139208777630742261383169740869935116636909864394827704184816853237915200703820211750385947451624228914601256038015696648105950385973206189677168519522715817535633828407995374426059784150869348123121461851677451751015457296667707674818516589974132309860715458349901149113962608892863739093526503755934408424819655513741043392862666970035899317904143136618428762011944010603985221633436757504112856987991391269451840924273116068196026661196056746628744064023374055986125250127766551138802103654957221814740457515571105911596524314601906917641732885635578556251709637177298793245643365299741585112460961474757900316071540545720321547527621858097700582294265336732703808810209876581970633637057213846764545878593825726491736538448555346968305532948388751365173935499393361888594519413534997208400239856299409520090355370481144395431632928026781804253504240342916403347116200455777090653421121807533566175060331598781291472179047183151658657417498245947371856726968926224518100126752081985473545961963042374807881772044055252761361819542751723095568240873026839422112019931447154165380045148256405064002793710987938650794709579034968712881398433241803273528675849073145075535389541193380981611366089106550497882902209083447152882851010371647729822237217713167426890551028425315652321143932623150206758428662422312582758487617238292920398347124523529668552312420386945894688721941492182053057304806704381602128016103180080864850075800167673791393746816743156816649847949899973602219379708495812169186553923586955114760639917869628406867511522673780337521137697652986084905395293579670418703376972562415210477495028072394618087598051702574553983590037963193460128855190250687847004392581372822617362456902434220473799739144184708055316663712714390802531118709049953503647748410539433773242090735603297911345094962845781293153447601713674692949773577110351260003428807188028205102175556698514697804597340568379067701432405506788613028178322047918684882112687451224841584874779615002995993530159466951529483105489268396336727195354442865542089652348572572737453283436117806866255203957957685710428900882166218931438381356606930440818920324916004688222078781542963228693660117659315975905604885853143561345378743306474113978051272991502699578629820503961324700083077290954991984681207856456582033525370077214915056899228213495050075406471733284313091157985416551398328925959763175244271974380858849800818310193863489341307648721797895488152827286275746365575280020227190148911061264144651082435166175589411093603725563711200849094178484360337616526390125580151173911287240513758009017638239531607846444686275912818935550185779734115917257838061147624283629763138335848548658693303502984904978537961723414688651943700585448896402331401035872586884184630300695619316772293382949277687777982844665515856809016002818167547205998139420718906892910753915167247096447637206265125071515311125629665176374382523947578532904719567816568901688998455348361083357243417197110737767286526950932698089365008921085620937439153777277731459099420780394193612194428443436280653762891495866033340915677505121870198081152413565361644938598766344977542256871716529411292154882136638013436152056712542338491016603867920360428317576421554458866837526710482456626417654255413780321523473932171185487478099896308677073798507349817121733339030765239628735850557993114362395265837295258766569872742133092737391777271131908386035250523434286066935481397584701302367584059755666086636716424058283406633029810004704997747144517995638986077875980216482214344439224550389305523115767518306189879455776310832462717219228260607289011373582381426484074373744318002335681940554301847852127582057592859462368172536087556313371877927116038218506758253549629665494622083736401258380160963241473628866441241591607271605813740201302567148978162420188740716808275986001045372893318138072705126733262694249886863601853668966747183992322291319231539804816282411246747343938496300736509446824770815803495119174170607674581469311443332371418181821288719221138062490624888454467950323820178594185553696460305757261113078077585175753615304379816167502206936142442637668023079268206958044149405478532181724418234046056141664254968108412410507099107276822953249643365198474587883743456254979025163523005007364138743280948047930190051930494055968697034724931170355449184752016803346771295013791674061385312984104869387310268423744182769094396249485613873173979818335591988982891449559046445536599352953427383107653865272051049489382161714972382909365842973210426693006256888691590195740013959124527870748341446325445701166090303340986928693269028303803822719334866960200969180334363269887921250915432233450320363055274790889486388073628759576960825606508495084867437018262953423947758648105510935058346138782511612549988254880245812266607437941976564684251768350645385014230191900848831710812456185043280233953800276600438181411791404870473335225582945547189629931371742980866314621225421288818728272453899669769446532072469247843948100048648196966458180458390808522983103652106547745702228107082532459521517507827097389935345393405260833439958937787931872441035972223129983851256621372539250366367339885579222056078917081017586378876700023265884566566275645185062304559219088105009454149652116448106069024667486674295413594818479133926816431875552775921163536183787870902064083632539936176894259673007346429689894837920196204078038787626428539096648302935654778992364819537756669920098249035482417693707718471054204580389919006162568618934410658923072035097584579517593279418177234379403665881215660111855902902749666998220835572370719636721531663170808664369691583944019040883942752545266125678045932684135309230401049162372438896290855037462692856035302110582833384111238271773690655740802698658976220239185946215126898684959044475936306898593762538330617960802201741885387887980553677834472564045770309376902711122020001145626736768045591339013373944971839155691235381473829955322337957363138639993857549636024682214757913187755920520572548547945333826388009369919073243444520575575119246842383192356937391722963507994631983744649114189943789274706154831262275553189238237561247059573929426068574759872830998716657304407008165141689254195366820806632886143118483028987443567344564329304011951754777294188601524400971906705968315922756872588632479951440198004227627403310097913138673640727493407891998268408444351028245304558480124509046530485114866219729730423236431173273426924470585784820069174901281748219859963922538036651250208809140176180026535492780223659272826067728136137124768248779536375388978850584487198045573009786740979932348852153625755141951234377367919555329240549649115926345444129396244445076400608396742292867356228144641120308062019407142997487617240462123153992680926382282301256545274395863860565395908147307475090670055234409591224265267207825276548924275084971112796764770762158358763963446056252026818518669359711583023312849377399686117315349252338971654122241724317926968389463272846979950315508058888795944355357240417229474101146917729503935636878493895199583989311047959694382301630622416727427892897150547737176564791977562574634820278415858145573103225816218122958104861990488547968815607945564146837011063531827758566755235687742228420294927364834326468679438012204128151218215334446025695028040261608373771665458029686376279107459473908939588736839562248888693593595529308396635716922125666105495898935903078967845800556663565708841036216239639079089263367253137175048699777475784007240244218261638047073574586805528725054414034623397471901730716707156373671727019409501697971838703132343357669510757325636058100710986195294622547887901500626226372100755281025686993785107514315816003608766516402616551032589469558525082826724472739127430420460239400607506832216452478563038618014484408416385403088977147397653793145127923980288708531031902418143826825652187810785763777412482212179201373327816757764867550544875716206183341326246148954229309041659234068656550677448430754415301813677495689169457719364816844576621796975296079883954373350896074786190164096847403860766416849058780545904155633651966748125658055834490492045564886994170237022634044635066014974907449855495418273476924078241870487133330495593446292109749176879491664599726292403886399678258852926890700248343990157538825024707558079744656762315873118304336238718617925684203817068966617320961769692240582728769198569172500694960054721262403732481007542101841577348509383146722340505704238489288203593722277542515591523017411865474411060750174447954657537608080614341401110913725605217333950635969281572699135490566556400791209395440166128522118720426118073024285606485379493708118906177600622725891068558619585106859261248936679805341421620166597534463622948030892317644106657037349482053547586147938132977028734385931979764333765287567431030733518463991310871416273306829989686313127628419985693171797221449404543535329871818412606514537535803923159999189167689886363752551501024214725632785476998090672505515908297695413305275837965355821021573947918505198342263017220702037660917503298233674542912164790079669221044116675117958883628516896993902833101356051005291506964013334710935981248512009502240120880405989728971425943554772502739630312865110233853609953215773318548704280381975057796897521959329285549949938974626498356634422959543485324022796984505152934752988624603956205652540045961446607003413168399762079306818074473036091820874023321142163904011709251240002337621494848371284202425044528758347641084913987771561068069347453459994232711842694501409030164736079251137595523142182306297946770789441563248980817629496534470911218558126671626351984625105923321341445519715105536049001140586991835130569066354622267794986706476183763493912442611092917710720248223473757951231207597387646596357498498875866844530736625770905764745836177256715949968634674035550529184906820880969656544870295392900181159050951974426249732419465034827847888836759229108516825154368387309534538877048475459197584751568612231422881469605317602362282274856360404173413626172709385351027145426986607174406329378521659507155081237295656862699581346457329644809449731921452582143120475765348727066547427335859084884973032802913465027906497475963394776386964404103289190839922480205061845823498233813559513361798236786118858576758082462832110673199830889535740283821846724107717290603146006548878735476204720862802947086839975688438592598120896947636740694403984874592832464389995666578243562410761750667693076271489412259775515434690913705083453099802860368662314693590050558619589390872585106107335318975525857007245185138837000714863229752160610855791680565319799266735037398180919480327688917589661856135599681437979816281750583716549712899600717557838128061233443934200897079061164521741780777515763552002203639809085495741349751991302706318130048940739423174509924460701224663776896749219809831731917246361803198615427212096097802802570665798166924272578213169840730684598567355950477096295024282828148859288465063909042135448156195899807313313897394021765369594838256146687477728194999584569421486193601889157751170974540946117604476068273522692615211546040476973711483782657948692352027165058463028649464039249806027435083394382245878874298756862830157792452419843941946454099534093265976879948641548498248758323678176609432816662752172230471921445788902899145398009356365616442594728539035028919612561443620227365405330320063278045385931093951404172808524002959269272934229177819611616870122160141708116103370461968267844538778917388936411910679211087276025139404191411306604979822044512357214041513094743970203719875427569560398537472484146668658979088140174236534739102787791067155356432437818168687956944657390836921097603027313055247620336566554815172194122407886090595212363608808963278385561496351060378548378729778160448726256668327954121228860963662287687193008117865561244917639203369870116186414912386206651775583272674067813018705581972811192483484613371717490002308863477841455437884890530734746986513280555207021377136883961247013796603601375110759467075357180298184342080078245613532003260071066398868279222530219072611464389248449557071294194661920559782957196354418834444576325467858069005078898900460832731849750595362929371782142870727530974283147836701840348496682309706231743347712852035829554003376666131362756865103735273399316817983456725125037616357908441802461935158743218177331652864005653740616529142483238182867572239062331913793647312996075029696571678676034540872088274307199925413710994892208602683985555458030391249608351730971348388031896360851499551113242976280532346877236929173314062485363470307893588474291438218372366969749622563118329488602332301766256595810616945640760146372649363636378624353794417464353176258278082179676582356597233962141140989991608658986926828912266658521951919335383716141654066099619397197465248826968853894019996070493437281806082787860667044937807007649361367542857539994285365059228491955416779566528735078995639822243319055139710962829726338022809620331371734364945213615576072442555379215087274450995669159393044015794441443339619687182383321702994713879603505909749813503265859388479586565327586925770128068145413381251446475068226903191382142044097486860674964868171730046790000096741409310232625989232502111243819730912054035546054016485599152213059921640391386455999355935386428334112334962843882815117766863095150146613021316117774024096242114426269215561488782218542233016111893991433357004202360198749529773727722141565808676458836188287941777961109754081031568286886821739294251581464853482971167515001837026503838076821212942642292143969118742472059144039988406816374136930102856910254488200061287648328405794888633582744219446278531948222868673812623672775505072393084402546876291806005929207361881556311647095055401940614549332347410028977373214256423554407542907423466715107659265299673878836932516214518118152243195847119760345492477259570920997245771688734122280013634700119785143937841538208869458870259404662921021132907389604658432725041154124768256499397307622899091291271272740849931774180411236706008024682685580464621304553888465182004655468132482707321978162985326551237994812255866399309659893476175085407975043220460000191527222487347916594666317791314192887658980699223133923229247229327193593980415374025677166468417611489878547639265554081431794612330562127601845204849644690902293973740849049529125368856521992404009208697320084267022973518807510637273152364841221514675377375382785718545175084191875347536756249546985758147909014866279309951311908387638889078680454170207686226258445330369411744094231783884320259608105421793944569294596157704377485282737124377129215810700076387139933758867079584396877562714072352236143393767487391051150566085444607500428005710555427019750089410391738813845543223145080100447900894283599425377195331585048731631415857392651214958208751628233626308006673848069524571910276303142104562654667317924286058392273687036130741003610653393589490150889501342619031510493827497396992360674414661057875497274020797863704727150731995709443053279044040630144411166052868966757815831863554880521558863973981441369028748743256930059776017626556666995627959070773751070553988891356175601030848233399484045638582174000861145253640400646082187178009459190667497262366077739272472676417634998008423644840186905342525374099204745021355877861858207256563325912812814124000770724992498658692389003024938526847443468074706885468049560460752253566227549411228232314031665065256561382683803813264439672695384889896264570754873803458474240864762271023557072060643050322882058235365522572781720663259578840098967812339624547068643656832150436041806979489174249670640182641766949877749943285840485098142384667737956615630742504381307186933492519525017552099415244857979500069466768709541349733441063486830189855101622722764368097203106756729377830714109793150349145546068293858380430500838072784890196819524631093225297024631972841955957536273829521551660931510745338893558438309810665709405866387239711830981371102822276982259044570345031915805178822826192479557311107941519953753725294932849333941320262875004211708577738243895165268318238845554460897325856288723211832645665218330893236476776302312289683949466416201058945415159650116077694220109318696347116633688993737264411586182408435760038382938453202440304515037327599905589849143039797324418428103886754671664045312071463151203077385663059184261586565468836140049260422217106558077739777905058046175971041019110464040557160817235066461134194704766161346666261751191911181011914709728643668519442871723006084592973395785989813236788314108497237605514127294513410543879065012944743035700175856045615081125337905063949773691445108767621435723797218999138066245290554573906102988465918438997921248948735263428431138497235690690814473121955661983977611116741055139192678539806675295637563806498014142983386641570611706287935529455532347649433842215241772884584192545669277800439386369771002392214378457848494112032475829010145881749140103912681443637325862203885941848301786624635486848611479341629501663918571640054682945125836609057939386545479638761503182971841844467478357755386476897076465803007537109181590498656718430678879001373171325566546050449656532825352554836564285553885654189535048764051548975290232461011519640333997849564893525636100342506737259857125577337771660388304880750651575560436781616345123859159685749531644134697657288698166171914406194769136634127467657583409467154329397680949302388852270741036770320679197555052378279490402892077865043168559766521256367646220696952884553352673664778657933581101810481761374378805802631387669532045882906655890545948363110813461576977258493052018908165697845906980641497910463388811193549101816696943858486400963506178221724917293129731210636457274913857173490585910269551345192747981452040579227252512870694777873818728242978975124041850573761374998450338444718631229063646014721337122350285248203947945108778853128953133554782871540786568198229313172799693759331392852375408781101172315250987961066299852199247279585906877853484530247794190044864804879188398495694222369296601459710089008363072187160712964183251763235876203851720322762362872621083706439983899208936406825657059293182608320593523041294917139837888743354491418272634870501106547754198518453850083040605507157258103412480463366880647310856267231517255401543676861516521094448032232224771180639005751658777776878794699181940126836009620348459095096082912481135768067711299907289982467025579767920241725166329779948962037312455438012703618038871245937931366315819805868029148947691120053693856271143549948850981338001150188690068153662773780791075424819477623847807066379964570228156868156416884362838324185443889014940397188815326920638693726464741124281019613876571517228365879530192333850208481873772514915869092955930523108686893020076250763980895815931273321049591873268414620408226195411488408809709750035352703577098715737727067132908401604785200874567696798203918515425025195417800825460800646900324676715089614145264808142129210944242512094336112185275327824035465672943313947118340777750648184326551287480469102760787377624033201885152947221039170974312604358964982495898833914481564090867474774838941861762641587393748465491797907031005845309882454480832049877799171620860137736332097435149428216209844889516824407278564065596893313350146517508042927457569202062772249299442507084698782757772448994183127715642213285983608625627766359647576001947905921706410963244316469340345139757756904101622504127590959682764596883381065006245875014775260117183096744673931939314921673347887109096660804404480271251476457342185643228572012844390687417631476208087760406886494721034896355771725095266384294204782571132165926131728584965073178890415686098070559945446466810346293187094887913709857658444107909596172155093716101150698777012744039326716949927850913441064736873954127088061932776034836990635586938565270503195278773679162034639503318947514053481357874810257341112252114288242391000146423857473011463436584260007150801576932213216356324242333572385491159746716653263962385415131896440071559045713884140305325549580549185107577161051745151249776553373731207933542638811953987551134937115796555933327617512275421154608706131410751555176424599584660014884758265137025841400229016052261867148832159436020184258631777647740470145419269584463209068913678169998115631451806831940886918287615375453972134856863612365905924411384667587652763766273739410720706892149891860074236757865970843796087332432416186208834005322976326836409940983252427343451778245782176308477906256203630721341690995772209622173953746358535748542588635461297462146645129493974026676100911474419379467886270124820145635728905009748369955210502838929982361724188266478985119964039978817393853879546267689462235347425830587381099207701755278439001118466009409694816724284849956743158692600617198032690294305970327568890702739170401019107367066022386238951665803928309589121525344875456096516260762842828112078060680222133535931919559008976719300846450067857177968127686261689580681363111835069534220302038513761059463698238819357474255166053115091058528406780957579433178593071086024345201408153337843011278663043680715215063294227933762424925344497852868646782208156665822123007213545516837658672383114052684542846126114147291499109453097001801387018548088924290010820586317941559844088855351445155899041828538583886220444978279381842443974816694031137928826331399865558778437237114908960128305317167088287475908111686902680570869699816464451318225268023602324717544573401123068864649876065850364987522061696300016030328262611869301665240478190669686810010341430012515895042631029937121178425279400386649576576073134997007280636344508562063127173704285961773035738157352066138206128122589128447421685790675947549555079183455948441432533842904852190122204512636752478684788162161768390201065947008289063448966245207659233276064486616002978304037818400839302126481916236077295545525871779641885163072102973096972727363580557676929294780864707942724297340958548682804301864626232495918617895225425753456459423605087823574624513884224905149925435708244091512658224351888190257228735708790840868274400081166871426586035012294245800445031366107312016508881798831999163307634606007468423519036838773656307126060928234737798830818028765048827789659799672119329419242664386476506184180679011374035403457668022701988232652760209741542218894953010443415567921167497921932980597883733981503281392910367868599116054939014446576965669432174982279267871134366564363781747075171355268411031278104709331395348061523144193907861025756821720541470367279715435637115851991428240809991302236987787536768442276967908151525806430494151024700432371783666069687650211700833613690886175450899780303402626754593012956147450412397961761431200095625117020549076035563764439684688512788188199066962071876500906008882216096189187626609199975219931094373506290930461955661097308205117769886680945408839909441039519142275499311355316872744992508928367785064509216488037619757059145102109665026828131817978264176840725159701045842351224864102853449360802229510721965546190544268695345077832738921868980557997118923554415167023378987647845067984916762041289069018630022434492188878281581037886925830795104594914112275403849828578642930114224847353239577162855146630143213770842830642678204788933367975189063892392967750524766010621010147492868394744798068533662224171819456655136970805152845042376625426441819557366874004147759664323230651705085041868725752379903617731180225996096833168004350002618902086353175532517330373238910291960830345761893921243441428550867365954999743713241718107745250097661574092633073220806294905785295537938302839786118824532884223953730651588943184363643404337467400160287910393388835799754266056075983297981711718339479160947182878057626265174518500976085639370464423343801151520005114458448149221838803453146347967774534726548216539705372624388812032629558608033226160327427782958922380215168102412872494692545632592328584312632308577059231741268831385047577311639230460416259040040667495484833842281066422298328697536225188709792493854391311778976921206986514760371356902518459668214668675468728643287282920093084206713561821870667491774021148942704126339377405233477930399930903514424734301023085427068004200930487877295370344422694783533134408395867724899153088382961767710429855242356683789924359505815278463263411534001441110367321580433366195372801272497805511159962746358238881062260813893193437142751018823810605567040444655405929007965203009668784128711790831168938252654893916978226023859980891832256120442017704848598139693970792873104033956847723941617223732920158603578926618222532520583378136660195144942848077882603633788812473622481401237116375273476796995312648773238364267187259121284806366584693898743315633508204894560303200356475494927948704697140954417636796923958467180045766516646071795941351327976333385451207944589236010282483437282476897858860798133605638654726865135496729084123737477587344804304311874646727177850467239734249883525317237848785199021494371080349826418093909101236042294691235156484284275632779196380641072767225372987900459220781047343443740292360155937145641147991565188357647351299656569027082842997730170465077120658336142670231729379339919333331711161461499813853461541525861083657943106579967952871209551413607213848884316287633244176321054014437515277092815506480602001477654062523673226408881405241998254392975919623058459913402621597300121868959295471050851465683962081987584767391997516358765889464470783188816500510453172625078811065287590604975176486609984453293799958780546948469459930760481471384652470985391553486183319757884987063799646618054776883437471539903481618972501135001165714528211250922751397995116739132773740589249378951511452261453355811171617138012966457801088689865273214633226869675428996295708455497580273519997233264244201723583011399051970948368147405991405169605290419264350250594318467368941750079122798873047723237335283604531094903701565902746662048147889789327978503633342124397480115261499554713096021984427549015998921592417774335261985502572522193478854919875026570661877272922515217147450773735983052053836675892287750779131038938760972803997589790532348707222897990895807201162913480575805755151603742014771947804196641272399533740390255389325723168308438399194179487989646810305748469270740832283085999292935215618632205692602148841234683685431921364399492990123677918494425508465881028712067794113058185914568116912990696635050159903550735008404804972020978691856106497994191969009972331973637776779078933273306453007215973467503966162420431265050823111702574668932481436339142648980173831142412697755526540870519971341314162673153653304883379270222020199782802391588442489433097717512895592029659174266718603378912648622706886097644226146848699114682790031096882388168731527185576180340196270033976628268608813552365333949862789394566219553676060424607155859764418437453746461100124129869498308067063985858088909782035646262121454214587646776721230305675035494229406010810494287835017156084993727154173648618664492729616195938733855639309599778196364558625990985384191702816743385814463240013317806209649301884076512506546818382701911649883581306754731989399704325420195714851509031360336293717780984941089609371742481853698514281881886009584485446008457241448183761602673468357904829495296524312823342511557181804568820891249093349953516701881904769640261922862217327135324857428882407291935160170332447524759040050443441550111312987649976366340852181020115513307794625307260046379185794600749458121039740137546816860561349717222034216879725210838010768852990277798034649868056599699067909821724145427516403096269450822670112788768214777026469213555276818528352619357648377260597450183093411500410212177885174000612052992187130835134729773441032065897021111758259429810583515568597926751537811461761222573254376814446665359288510652084798100519776189529916214371878316150789572007691245730901002780906435003195598495415586729400445153484637141684538843561751981739057944322685546297954140425091302600745788380828277500801221566996355530965648638040562872149108283963164161088340199967893567578662690688634693505785011947291393787039383104800343955557935271212538617267114231751844832372943925121521832564871274872440926297138282593155997831734202741792501843402305478826555810935828956403767962978342500697334694002426722021178442014476809603565258296189682226923448910692638738698455280010028685197018509718632964150559711973245921864040516556641316477800313732435704860714434354823293892900335645495380227161832775825200959107266477283315695594989174162490239653725115757647718707472507134838125108265289216705112704619788091485270361276755284250748246023989769306322681919368787159369375166173187752492419743332569947115022076327523659923117294675592029989177697734107555391453712587723235877647801078392112710986339019053303054662945318392921509723447987172543296893377043836953136761576381597393617149797115733501694927497934488652568653418230089202462116184447516067334913503051182968084460490089984947309010427294616683127297674999775107399410374246556277457583361503074990139469235302945541662263304495745423589742638085709768068045834501048845900774364555685109922935935919947614708775754304173756852179921357525292222826943662183404883404516083559256816570351008965082478204805337831297099015670218863443062518612220429077399199476300713637246806343811152025388742371640752656062664784329355771572263900242737083619853046809480587421638869880157849848944813002663806964321861371048813118908054197491120157231001359099349495896414102926690105077862395833220439534905319797174225074677629778913092078338086959021541019463917875280686830649651963420400134152407363974753847011000892921795467337444595493741437417304947231715109248660823925003326140423068091479957100555328369579217217329031406379654230228405787528284238143992094767160274683621433561228364917160965427225501998835740091267929183885759359857307244718485234563482577288292667430182979263943595003327461044345019670117862958139795052739196180828449174716396704247078854011783152378646618398686413186145345229201126090687830311758569566824280686746382965847720072370083315986039146781928354523721508315575040161463707428500697362079014885235344144072873935053736931998127883195215517980789378013088034784371748106540126979159403801990864302585023392823011382993689529228310407905353892486011239282079751233117606075322924575094839042112588072822973164013299091485712838906781549423134217040488912868263180945776052840980414772603769323847007010851019546053432073097688663038762623487667168294823211689414790848330519887576295159842752347922079515813908725551162262596825180591146196852068318327190900393154839798323027635406176877344785310402869877270732488996735341701836934190958871183879997869275378247619315080622723606393101663259343362228780964769626009028497579430853717661091945813728415592060659772886612361870454572671127000958493612893361307632761861239496739289765694088640463272000396852288616952311447800377358165004902360216346387200020215698266867464223193072529296267962402215103036953828958606405646635523480113045018128029604951813314409217354826955871874867576738576243802377044633076876723111475591965097521704870428260448371627620225758389120216453199722406566123931062469328600866461926940103485881689166482947728154505006638651351067369051171119090020998020309219090351378304981897466255422566030271047140628099093773515004532327889020242169441600355361262463503369477982897580748439153441824215084301056150452892707077634805480904927930040338101749402467850789511136359927524463743430237068933653962185927440212604952203108772039219645817540132231573116997608632575416670254049613857824315208315735678726748463133828555090567556693413245256858421910022420761630726443247859980662505774359019340802946848396431372550424598804070356640135435919819541173557296293714858404187293257291837559323899282828989213533527654767154327465022841495502971631041013152025013808060719336628463670814327893809557909911817939864343853607395466098735181503330344753136241432764116609271631882828220034043311731022117598864335566079598320688208250499179128428873904760159848914860728465589677889945563989942735370159564673336591268168052884847411995321479902045691493359801531288903841550232162107055647073744241565972127892657668381309974525848898140337936924813216238127638975273706059093978701801895028512689117220243739331494009393740316430081873838096971909461539669037876130146543662304036136823258233587607757330405790008418473026610772617545349087929270788358809393415806796122758675626023363627349250447721494741013384721882931912888330540067762289029165015326491334832190467490677295801241195774541789248241654456411731446288274424515377409782575556210084378745415677517811589571200745283532820560343918643637465299890702759553716830188968512977044619448066756766643168291230396205732728516410120291352060730108702493008400062988313522767675030094308152985296390259367457653389377362843571507861826936377049434427745703960135930630533001863708882778904395154048717001156421231795685944327018253664159016792822913094384667438790966671399847841745488756161551853502765864269370915500878221220208503030562472579435380265798820251075086423577135230221181827057912045599949088325125979955310539626595817033785340329457673048630793499375046823444359849854939893232249085865789948858147925170216481310039050033028197077239388968993220779540381330024839520854092379095406769982666460116633029237586566109355392188167358546462969861539551844401195537237218104643174399770103170986620932052809993199457712530349359879001972566393813496331187133868954623529672800735988194295563462842243453442708250161875249943124793162708394486274932985190212592165145066905915096606469770082849550883701422886825353251970541321276033746924352157808745249721066732134775233775609865253834705569302909482271871512818130647726715494782880481236698193205757398161329221512905483614507307950909050594724710764830453896814025406804062590287504341188384441603886478209341446642061023751277784880224267512467285208344935694210463810031745125564527529003330654057784031143687689474693885072621841262808465582826744041142982575567819157932614241416149382550873407136519311476290630039823455500502068904432644403759820830464322671055491345361203531548794981697404216016551870314668637172723293447448563754361021992408383615817240943541424012268180937097124640849490299102247586863572208276003278331928055869088822570572773048564815375126967763554860891272191442618858221314621054887632903106569410670112848283506787345633425161365447161211322296672449660501455650120837038484833762937075711323870198637737650166323051443430905003899011653841413559480553485837133138081823501448933555823264134079996387661113756941260563568158628064584846892092250124889826846671408820701704651620208362952464674399015421070036141014996256416258023547785101212482677093219652751377120027398075652025371140979194078906588477292137413521210363213748526216367772682187030290327614902186373704571279624622714072452057986902326595032426969251682198083756163857955234431132948419353623326939980907153955362598661796769101112712264535483023205119315410027685572555298592492662090658642807558818812669662443859767702493896123511794256368488112636425768710624468046913303007474080622150336500558708339187337384096629108649402241751977766558781481257879596504121222415812526783065717006006139785796452550937451704397570420805601522635842339681371171054149744223456605154624545790196505597998433270817585666171767389205393411727754467439473659880912708620640925946347502496347384713119576028596581020016329127083689162014766690112500096423687782386071178134055393946262397028903820158898741037768399844317226874757636004045540758526545057840190410894325814478600276132528148170030358782604574359629775529739280693784203219642746461211935887927823936580509566211872167832494159705015321518700091230023196036365025385743409986715646051076030951463589191766910598211965856898671325698022019371325783258028501353415169189109235872027433476134113554132386063081632843490785075743207045428696750102112685200960175290416987172465407745998571837514118102333143900037214169527919484756762224317521689967521308698784869214759312065637245271795327614372405464154564874441642679058777408609378334610798215664301856111792995216693699822351055186147348159201592075478544298413791995931650551972636410666416451754867830207565442120539336599224219410396638233511669112046625282722262388013615648423782050382358160762641901977217770262507809344332620729106572260608155222542396420099317212201880272916613825488327199140490976272283728275018328453071674256819503923665808507558598863859355589388829980284972811438964046780587197135311764009961815193250599197131276427179226397847234145671448108971956072040309108716500768761428761090169305530261420778349614337328245224608887181432010688663632047494731163019981040558883934331362521378889907578672275408803839879931301676465415974251499046408776035188448591714631624960342067496640440168615305629874707303735686071082289218352736357692417237578340211523863401154188053173715516047737227302081513373555433999182763166543174523671325741659484867974048688005650693911916091595694384743274252701759781829904115518132830820395039360084291003652901500708002843160239808784243007348088505042548571043489082223908089447554280885349244448998701002470031026177400561092818602085128362997394676718787506527844173393209181568783448289777207400332896287660811397136205687653666541700474953821278670802264487817625040064921692451066205787362146863652574610487655185925907610500604437184012468694933368120531115826522952500409957476382204537104341528637192637341498878208085684594803988300738817327622044458866376637629216042748336212300570670032276245100550308417245576525126927316911462171831085161748597643668740537536426616557453855957056370349678271799805531780730357956239403584629192114420636121795506656593234545841610395246919314380311389689491922381836537656082308876966210724648560943919929587948524974230086386660382815693250173926581200412661008085896004147582342907969152634419929970889036633180237670801170477794455830488240213058925636508419418811155297476994419667286052857448174589377850704568376832779638916347397909398105188370009326683069591960059160769301770144616813235000880143415556590313532789175262158132571973459110283087091111505265349885331524001614390671125087739830084728797934032564669492615774154966079110434009180412237355562308343506382211858725934139849188518241260610505249284856698862965711216610586365060635891075788250876806367900283223961129940812099330672592566426923555481718354066831463237264563727154419548939406136444542773898933060552990796140995765045767297798700368236687107089855780533619672347071487977015731314708668562064554922778386144000751506197251931720726696476231614488860290621218284428190940576470222586868596101463655105841272092835786454282487630424510565258846203849128647703674067516066483586766849446916134714295502519375159352240807714516265126638222113167330417272654133400809988604083021700958378991271086599727241601806781174171948859656108987710809652763570504744926645136905014417099169694918794170459200235919045282343773798654786707917547212963363504744201358627567594755155510684364362432294395559275714328611593576041475544728254780261130613090872076651394968954101248336437230096183886636010125838517116379759582700953430285338285601077932249094229238290293939046552251799900486401428954451065918849813191939368959462690456362672600049324414956598022577821419845443612569878464216662737935121427097455497893916538821122007173494275590350188618501978454845488236820017514765881216728583999506293847621014847140014515906977718935107427509659993188733332028198061084954950627610963366045366721291563810808845059735749150680171836557732033456851033936554879124208541005349902077492701445801822649586990832706365105243127674343259879369448252815521970089987541272268880551203821910004093911480765160918678916804241010588835251658999897047936526710575389577464288405004855992115878568644519228290309423691433143478295174971745386210536469263389370983106530797578524638312238004290640210964173059726916025522843509255907841105851413673385559067567062995350525038441560418994386906931227801877984381183874358619689533712343694010654970116178841648688762475371627566550432825047062445639641920874117918229557473832124267948909557268704303826920727568391995218536038044682342739595291072519515411740409075284733778846966896873934535637995194705083088361704176787486367672743163992438152253531315158295893822093469659194739985254579109962332642411889781058366267076352792469535687654534564036575837276287197712457411260933270760904264945114428030646692045441299529121164110814197905042087819177125073298742325822016759633492996278145063455232708588338457484013901398601588342290682608741431037698580786307798339834222587482732619644424464354954796941294406289331515532049658798643601284224419914216119834473024554141819620128720270516009348756222289297353289202227990670949044331982732275097463134412862346500999456829869166742070835596816570263519828742707208969724175338421882211132605896758656085911872317288479987446963989912371699762879552854677869607589643715403355432652312833291316200282960092034020893619860389689487107785064306400921658526025543878301644666378971458195762370381721897740588394400393298057057295795229149199254543850120013590807012734125276635866588426691823787684110851268214271667355779303982925242849321908187503907054767955744999259326184117479990622534510964327794656229182260916158781432851652297513805952162515230275355882116747035727415616029477213172236731788770396707028940934217805295937906881895847363436256077817826329422799951794944622195990588576898353043043160394396995329722868939979032602175932678450322926436712819520489762716008534217604313853061709811369079511047786617158433788008238398912520565068870428530981006077791812338614119233066493883573631200228253007169163732794307474678277107816846204555756337021083766935671235053151472151802931724011265790893062020400909412831119010992051831626048324439430084012911598718766170518913615298827769750785305316542262895613410418028815064757290384176960829211081129654640360959124583341025397531235536010342843981762605316578325701371183911369032816711664759124780030438822084825016951469305350739238951899441434087148311350478983787868981806340579460221187213013168148302265272295990636095720680757628295615808200372475426167336955857294109422337419999870840534153245928893595563203276281419160732724216168474051820536939939627827837992451499762376282998784356372340687156680924433265743121304627793269009179324757520418349911559844117333094390853509180777625598784249755060153383230737126447505235463083972278341219257834508673077262039378114924286753819457807177246040119356729766844012044415754026016394670516426434170225300533761695582342041148932168245224190662684677709901708911474538928398348699554804991552375901306583781101137090521861749494366418232839066540050585741186782859901757251018517281134299811432325462215637468183763166420330390093249237608482988006760401799619541220322923701450140755476172684602671702751799841053142782219644688186519045836128794942145470945685827290704473179679728230863775801942180983851410803273848396701480030543688896621418264470421642569777149482787580626811973720251540706186694195845582066375995311476674847561401817325969788514322215238135336058099444271288934744418430036851729765758983245518601403575856829886307543425772922925564707166254858366394869016986608453824472552902279929012815238566877851657659774477688292783410493026167198646462985497447264457085100967222909017119368950929850226947670938459186369141136859058547419505609105269847170918125987346978210292914788041354046123782786717932105988764728022760888493245704788807176930704657923028471443022449167099447894479682670144274370111679225127296667018997248397262398245452645815472055024841843901275616944288925031216237652244660456162995169085809104636223619081333039291657665127454782491238425343179827198319063947973715307250207328929014989531126949185883514346142008432219800145010053672050751341075894201174132003516275059796933626040476342668745061388410568916810903349612401229648307125397824029054382887950836874576139067134091219717786605216204276671869595868315185568798443079968239332686357537198773581360716056125613926361262536067675430141202213191033662080182295728362368554334372049899208503926548286746288846349430551454171377248166653259221897166304162188014103485283208195462195019322511252434961052186690002376714325890509647150969320538356219823307141437066555985812352077008772611786711339232546043096961545555856505006183850315148506296907804347706502019099131419802521067836274767374941773771065079620624793089562608794922280278655676117129335535798104333037150441095696694864297240053582870362752020975733292673532392575137761332927939826106441907528194260283656228389478400777415247758987254896739463404756684104943789919315235784577274413689329035431199896565021725839425441404229643406881321394663764307601203214616498152199812134655374295395460690225582597287828941420539365804066935269857140381587344652948444150228383887325292825080087001975580456075850487913837331549344658817066016549305973815717029724806936586782076675237817303442552024739148881779456203878917641328469047320121047696930793875570515965290180099413760157717086950336302315196385301124780445418831262443179935057967906638597112642665477406134335716019141140441142544292675725921943584957973037712601713804476838072097835156287138261067861254922125335101462694201456845525896849599868504427265550303595199017125935391308696968758135198858376373043971056131694751256937595257594370655076371447698251632262921826837436105743358957436355115430763973741847506084764644355276857741945003822237754274654887017843836370304197325916173041723300714690243249862076433609791210945132380118088577211205298622739662545071994529993449738625078188778287765053671729810299628509829880197470078984208312231630288511932976707414898812573042196509244621814154641613725796212356323686388406282906037234877853473109717714228747182789220558578756807616961723276114709855750694013938400002235866652439391592774660180278591233112310855199760303803167106119221416725772968783109298860501815111917639864279660490635249992383888272261581071606937403675498983903629331538634129077880095980969702057259758202158765551931877579090365262417520842940468721792852382607852500767971294791382980797476743479404366685735215309748744121443914360311130051468406760210862346099568953313642976855559718028252815997610115787630497682643456636565448173741046221443276564998217479924248040025142019699295753294790133359189579991639521506353642656053887905745227389028364698568143838488748818894181067053323247029504544138528766888262856973920993883876733782132370717916149762744510913831747803764737161110270434088808532666938711699020984721766638817942282459396242062837110916450384432304595436133290918902979002330627073414119744676801758304809506259587938905819481810549664795455879286717426553333614946357496452595021907116514817330254900932492469109440679601739490317618309482834022032924240019934666345680689527542134875898088446839601666231853333525044562096759478477995764994431732656824312449732731097662270713756115180094064936459287955662064070516615423794139199360556279973385626272289354006348868364822742694632601533657353494705631251687693762855714446662638214137292091063108760113266474244817689805164142622628441979153938113527981619231077224119461644362414454492294190616905705627541281065680158096193261985874998565522213278687436760376264305490189839608611317923845551673367943849470551461025648869327356308650534626944831030469328215449721863394393564723584972439571146608314420751065842615403141546360030823330281038669564902721571496744921246417748315967537530757229559113563729914074291410514154774332021208284343292931964430682247906575638926182202586663094677279305528266167411053847013156871367895817944768551101688057353631387954073439034414465705078368548954343036019383565284158189849996414648817135471836314240965211941283394827814346388567501242259981582945231950576885756210994427870263981613105395714143296876057147683329579520748153347059279249100801053087312217327781145881140665741765156917776570466071325724826465079137336599447831254828149716894601975656934148705174923853165923075174971496089590994471934012687150290326932843390634135798102114072669737933922668288558671359002482439194137300266648492955658637560571256286110810727727934193631735760884347867608804401245774862652872288971139138254016444421168303575781095081202422505945256912188757419110196621769988616485990382249216813280825265061770305734080323452141922470336774323567546880890789012524958613598126693058052065886522398358739184879223756074584645296079508796948927878251877284335075350602343228725219432721320736008912174959690232467623290176221377005455639645170900626487976449717936857618824986940297585815581652119012900898726780353566206809225205684539913565479558010228704967472978320958184425462160024572917276830850963375318488080546934089019981141451527690528321523857031973481463797446528946380798465681084884678794689989326314666112170264739613547742634301903479661061779639394992820975756934182220285105250750847683405572617580957452997077116264152556583886892957694952382497334811006470867357661653012338604145684523990834482025530843122999559351932196317078565696504550891579946564904072756160909787003281101456594289427836485257504882405686278706010165318139527324285797426206471792609675743759148591933149308361945377623267187375829706660840814851080488002632359807930396586237096606485179585324455970497625479147835653878190521998863377570780499763654701134758749447428832259478676098572356604052154672788701284397313410368376102923411715912934289459129416098740968099541223800811683915826223561128149444888616614449301422059175842087937309807181487020533558405828989142632480148552171889529306486790874805941295867900019872277213535622053689300262044561145170040674651118088047843173621198270384387381686369608410492527362590070431356148902404920105551312921870698192532927024923346022588161582457213500447855536800273660174656474896372125195572006671735404626553591251727952991882659641319141253857656800463574712827413090540284132742473167950487497265236118768910659125747777047598792294959622118021879532226964040107128504276299855873698377102199184414471363715277042588819976746203123126090608340198263662065095477854087445079410180420890041359218440660070968675194768830121960097456006348159819350850603330304521445034160022322901933646095630165199007483443124367857987274645657224463010243640253719481675474004315306613391659543701467225160541025270479930383863151175195975238099041526026540716631068493452522127718378728991619739967908180365847186928920634120283452154574511416297295462394382614593610480530959174960209429510423570782197041533507034395391352365234231843339997086835884913580409641390686398949662215758310157560242297461616182432877144963769528551123074123603211530007623915401042411009408277177568864092669908357239695161742376785741462307282082418274436624078801853639161697310117257192874131401768386532796050672794070746355692731256816772677138471433604898032921253814738159583878427043940612597820782477515720439514604117189729949436804716041034069493514858820462897570195841729649006717772544015203752903729269920504054025947837143302283470621742668773139142644642679133389353047086339006893547411984881168674680275287077379383849932291314601121221349832810988946395152139370169858008295193718122048512554138333511548888455841080425133729085094290403982053895321494717586644900953377277172945707957151304962964150144707029849118454865203519266157305921681266264908184143806804926087588275629479780485632856018476985516891717372014112778544443521516351921412321754014634452593029613545440194850527112645642790612816569498893542055868604044887640290738174315106443353324867249272995393733875509877552577451104070186130352868294386688809429197829627852100286874405445589390989145981274255972360205465857993923099234213518010090156368978145224059371341811694193618245719883955088992201168071317029013602244714062609469250980450878167098380166609039299045405974180806638043980470036586819375206587116080874536333334707575626989538681728913569768043513416439552496074609076562141383965362322843898704313542671401424941255007729287119024512181633356979882309197742088751401045301736899139878211102829478285230501868167840834583256878752012153845037711527278044980561821633675465137138833621579086145765587212943607333612598289636268480142521856182432744171325762690445958780717684835906506252821484396312509874504673716351172201058904502472754405001102839666913356122789482852574979039209237720539375485778891498253837181663204043830075669958264733854864219922820637769148302969913365807610432524212361439004718083552010902705066956309732761188271412608893436467993543147424627684128010750199417671669735405540336181692933286441376975084426249373253123214782826031283708099227951664291914829197338031242650866740568342839274508885957742284606518050359159961497029658122685465861581380846758421636884490263589155191068732991844772011470553662718677764856904985809044822480761845005180891828955031660345282274596921793234770393816182678478007497269306029630971092614498884084333479283940319379077589666028604282192928764778731200998944528736597937761241756873024634519720179217603564107964781345862981914424922683916854228070256590552273415327040839291339083376854292833340301716966491372464653162257416963329840124934344799004092773853990468723893436790963940317821240490260438579352044996550094136579530382365217896592260135029252694778351043547908898523951586028165284870909390015230431084393513011758632288035492907729989344837741337043267250426684698742448823351126147878280586557844731228452233200025376527836366803757576810739613954920632168341257094156313610374248996856102120505306127161106713486300365540294172307651271593644784975024648080487950318753481642952757334100434602333115519658731306977055753446274461040077159229457354395106242536866112515319445153930980130628539096982604662658276868295889785724560211310992046536691646037030483095281236831745359250290143378781757169525034378144343312525749367174910930195860802005978759429995333609438958774319284916684383672053069489209543349198665211181934544273468955461838173829978159596364775509511608847815024564950362978029226782468777234344998004890267281167330401680768322749056712459303125244531428731965711335194585328641265397465860924445978871552944047276017385770738187944354941595287873339891600079790241072858213713273916080098619050104909675435798174259578126477767886108769356734069143011724388244968520499946959867280061500005845730050148101810023075166807252046639067045472904872839980618973780274123972245057677153036935525389843007708051792888959246815982077382290489178059070020536930301748337787632210141653490758478414420301465841973371730311547995657509060742506004505061501731697474939992072370427129307421317158745093078011982376858185667191438360378825737039549501532240878780559173669221872553096178475036183825892356384324943384954527417451459253378275636999099841393912034008157024147772288294945863921135657490257493644222231575469845563050449521072845608474088436812606622959665814718004343641293637079529549042887396991179761560025598300578864995541849396733485295793499696393080381716301946166123850583865849990902573651798293349524333305125068794394612865090536197180670228661755523298868992728047151177896454723324991825213819497184473877910769965480077684695478333811339021238840709783924622305757085662623819362685741875848413268032916974827106208535316183271242209241353499757925646142755866773766640294960751922201358508561426794788266007196156848283245520052286696009020918782046713999969297121523104514630772735120515043211326335874420878970336370549600713792282951637518309065623480144534030794274833117066636843643894761200408571881461517120024195547998246655629528424484217497137884606474194898374287025367853166410041205753334599302832040358134347834114050388566951348400990012560960260574575735964250706521319005544539722706829739781438754307739925514872151830576013773808348483289823699690813182148989776839776585442602447404474563762880168185471872086848221745073895341110166584127795382907333010003238035493725922087785064577708436090308308952327439701496494684442610920855053392213966753791954401604165721625565186350667780686397864032593837296873713130045512935401892240242480620925091072457636492926833593508041349130614596699258689655291249238355954091184195216347497244166985051292356647035986000378182724472490263239366165408358218057736410628472544217843010860253674785712102105667765588193061379238303415936753527025582719175076722922428914990817051432010897757056788055546807452616627822965568934882888061825529312151217830422378655236704713748104556283707593251416199654863137625008424451506221225159233513319942291973070951095836791218449259763332620709333719275938406670364626163405945328927626524077323112202749499234673054465876474686251074867630135215455634686861534581130623986216513684591130476948555017552160166354246946678043497124284074445127064589614712208438636566876481904239214744953727445411180768903343211414211715183436225716701647572944385094339672848815078512787789063506451253184453037639781027735805784174177463795854427202760788735874296244262506478059040346238084331792378463130023015697955804755624067043321480916742120554174981171385679904600786020159256782084742837849861098969715808844826642327772272722449853859226153242574413590663044489203819040599563419080020443908226971336108494980382717770462246591630233740747615754935579995850307947795496407962373991487882675118900582834220065697828323059997970675741400419452263429555598524825591816301510699383360345127381145271240406601339283698095959566693964980896199061922563020949564254593637630194449053030713431309849712611761378730354906734785325546169571217158741521441180885199103707032217586148140539305182387001961505819318024280335948624337938356863747926577638864464511268125837616928812331147409323829813260773443791320147135938980862985525538606412362269223194479861047381216599076257905233510396057949336589554284128353713415101551735523105955649279913434908916904491400243771264597575695583754242884749557427564970530203050203044274777836156788172568339925434936098672287555628624276723024745511664252415780484650468100497601958779253467043949853485429375240192805238571531360455910570229089327691016365191156911603223048186917545102717326784297653197366141930454040581996586577445303631982090127386804728601917916569361558362970365526890059682138974733782290477987625324768995518822633789887357540410762892358889733484790771202801410884727774735882475906388484121372425698601370411146062180333143289144386060538909904753976248939859328209101206254743557026895300780635054563030555982355023371290460764715328291506123252146052077645187210238072518034715116510999535235324994104613760369536399099857021662770394156220863968733727586074629067385963728479642520803800137412846603386458323763670068641751414649379402302899747580779727871983609079713209488098913855624377972942411304293967230960264313598235619650628447542987204861922322283278477370605707136880731654394041434520384598983221465692371717295394920428856159829544012427883618843623499513583185353633893622238830639042706609420680151119526286360055683101578206524601234720558470666110283494048728158597321985040336041704570274274080853531184960844668998191024931718345327869617141919293460858722787331827313088639826896962956667072143606797332214017396077733138970742099612358499670773769698749103789037670474087379698869960497254188685902218727670036152322015988959930502580697032134868429337354736621831078607467505559555105563323659122730844553669286451339961609035624859088234887796288372298839193283975783578638160099333526276620244076108458905260923725644809941254478744003997245292233766505358909267458752181314895429281277445401674424606053798850232661098555655504290469315328996000895744703512088433870384277707314496395553175312453541699240803970179157140111598456283419593397626918233149629105847492801199133850443002226633067517439479042209967512001721387145967511936015650802340119982283612316670504368861813940177003238679682569162748429533467434288947788638527510878677616996260340880700496301254200637339249474937411371671606424319902932378089665951918548056280072766531292039301162328544357658033008501801670491077507475970862838674900971810463291014767183120937939076731421620405399045974711159552580483499174104773125839625462525892226162722040578471389888068005817719316460210658098844085879177080361106304713253443275601069760904034960311056733984174090244518263819255672617279334622843795254664692320128905165131703051540936346725570441486236674306073785299505934743532209552473605489314778703287454897587995387468521420950482015675355179337012901179679532545691045794318346393915583163521176686520672253303192927831841500403548606257868568258738089754014035086336861691325644540489722484569143182689034213276332252277902786761391460451237887680804007723017618804628766738005811569999328053267114695364069039033095063280146313001865768227589520658038757089709803602659682233491537208179639244661820907310876645488813498584125562082471572940456076369072520596867669840115816098332311829046490018795732984022240868481857401095885016189869356770050379085234440247078400207282412917297796862828677459529049782286629553652050190054197146292891334195570420354952745455095899818834870093818391497750344991324459184431718763706248612561037671001983200115665702690772940270917182740341190304874568071513629444082889949415334812891944522202559615885371839766343786329376450951453935046981143658296677840303410921511109495774651816872406037987936457701499821714564235461943793887609352698001881533631148650698976455997800134477410067653442482805754517949733883768251928038327539268453853514504370709903951827541569460260261627791043493066302985251953262866393940967115090063719677143083939089681492282395137916221814056583843459732383895281351521138488352217174889136230444656236216127847444885013521706339554275996322914279463093395232733178129099974984124567656802121645419805806696850129095944888113876196645193837138068346345970374305169513346460098713770749013370104615455290870914361964808066169714978935421684950128234878955193328152425965660167349141265828072908743066680966185406008551533194765341733393710020300901218766866255294839332701399473711092969974994641711257789725103900035560910168622874758426466436409635835427237207956231250588548692163508944200735443923631510299525625079061918874032940796297252718579625722427815076855915060486307414413850205125227803651192834987912653965878692610348530779442490271683669655549577473532655433055420768635924402556729381627460614285506439707101120403840954075592245691876718204362806603308913412585102614053800887028304474418631411479577588831535162678897537092057363142100248222546933378272908896113902450254450460737012649656121888886287446700872498196994005600523692709536176100608664722035052879969441304605230606987425062130355148929777972638788724510893907460321148746869917342244711284747952761982983343729177713325765829873037333378281678870588484497995726971214717758554139718572736931607790881638774437075397609494352076831532119711152287458268862362649616347207218598031620141769619136421433170210470034374153756132981786500437927182057098909700207740361546901189351999083962135648113566394216658288013998120967483594690390796199823754150810541023238917982194292547617976660192207698327046187691902141138805086785984167921564627368014828613707058794503728968799072594693426923360987857663298381935416750083885772360906296384426245906854675908894641254685364410210730052829497240758150049755480062509533788940647820066478184351436743630780058337129408243244360217172158466421307607501241030667660659389820781364413986669601440999351542434387667317357160322350048953656082013416004711580011316749353617239671938451972506967251190719323109745410228607942618243419816210292845891680816009322286134047682652459744628996511631604279648878556296075129413571215880153092492748334464295488267899843039935115611587173357610739201713569538524368890288265082243369623713150924744199827985372204142452961074499422848390807507366860339323947673543817168142958876701895644039324111490351708953046973518192512562029006862765223680004054325357735446387237264495602248241446846574258341237815288901511821762526976979648380793483966820055420630332401651691292166684358314089414855632959746202139536505159504006949057470190913387490637369720098775790164857864790706409670734660936516194015115639551431704799442032627181387135948315303824258500288802306155795914143821171928970503413734572664948963424094332963919876937178028196406911762829963365974538167647655892628508427860006480729655983547243059670841054503462741294191035849889378820105836187733386378417239379596907791820664126264323362607074103862382079078107292970593577347812160076494973677879092141532414287388491311332191358147414377727136286383244325065923933482637694895385011839264251565081366282043306487132551117228386871105182328709132815848890906181328756276270979646396969624301761303611674600027128818190472622443155441913689906511178045920378604622122885152587596843456578940487476546443567903883656580366840254705604238441151073008274752898863563360507358630417980158514072366438167208079293039426585391841379345290343599580591020151794160089773844187404564590174344851256187978245847451876904712075500712013505438017871118744772333880150802370990428452435251007147540979578215343201469936236872193237563680734364792598763211587014050882522640378116351196019558282680308672177293921385040279067265980814606111665654387918080880424048405692024240318738210665895368315953497427514836301365913321178493298008957840341736395207984664379231723008202730208897340948973521916308153591918746107434524837185815748367534457438129290004768790440884853139998203406632193334424449666253231392380684046080872037046936153434814204068165787065416198647871693247054233979192721204041130439530474411505882295649084619732425182155062013518089736002362428730828450883013155177962840303673090864409608603591512519890906683548697381220083200348298469453084388965246848515122765882536672623820436642785217311113741203079887353484301973505763830742714028327762492556162853883196491755647969433726597735471033814399943730617886298891698652546750600229794286511729313160792927709801220345802318012119673409778281038024293551417206875166015779192857948325962543587709428995245364557076294944957629029967214778714453006689109808850910556507811625123694384714471294311564977413181199807828382619294907278165987546461298353339645384601685967370147433040792592606127427682437103981886808180572575366369559606326785881680157207986562274491095523024221450388086053701747557197604667851805182513082899118681469519969682650527760335621416895595284054308328415256975428017381609993109789479714259906746088511973549276806471253543412801633099083457133430018488589517497870838143247546954449487937923521845578976958955257386160647610328695780896216530719702234412199046778067849669110881961783675684230951279496578787750948858318250893223677025262205570913801045332338119715611087691996306249945206387567598347828822556873239490442669633539140203966441210606042791943892452309603421795785714495426324167542302689000334564719445808134811739796312228264750119835673058019715184844901602250163736759371296690284921606680828864701892274592709292543117080277244177639581650687046257278355252202128980895115865001616219410386839826843731606871889275157242464093091492706559023039893830945275687262147095794147783230271423996458849830988026487695867038917546371458988818833205717746865787420194145452629604427429585976560467923933911947814644797347346223718999410776424783269392286767885110918204782815870382831439085866513177627013237029554917694805907738687665673147587646067063290971528606609560024106486671746595694473457308541627377975477942651529700598690627131321878263488983546903727357289670694438976398372986626267481578073645410177041280448501238809310491065719601812145782266555052354693794650794913980271849546522568290750836377855552666739333776146948970256297021544576979195777973239125314417276285743557570756050606585054486664903787055761747512516927488129915113005424765262677018102877979432848778265049232532816641960069838439180362940367513848177959043597817732124770335636795454334345947135697150325873465697099057969637027725244864685378652871318310597383505707941194722404374196789564210935676806155643495042280954001498592910096716645562993425671180786213750941843798978928324342595577122071352771518821457105869892443193766098766019125873765709752131618206953482066344101484115838826827532242211560411222645090578041773050083909060018535549696265400792836316560735131948237673277556983333285537579251903310835397020401574752382113132725531330286137023864016598576466694602544089130342122339838424191218063883640142270158874419555757930735399294518053890794530778417542828243890232344065222238378269850167799672460539087112609821987519883689219850183446143103779077498798412016913048687976071747524133221816305498590363177881340813174266727669889964846498497816037211148751140590449150165321142758723255803846728977868973836702644199681281723086117841003897279325228091732703880557593958872804512802296984801558756462816005382964131260145148177852278714767736654818937785308434137857060438932774166029581964174067727361173887992882729859250187634486435236055989494951842858875797613542404548195632848845880390548585475247088553280415658040058673726752125243191024650044516407323516020257758611754219230846300740575853090971150549179836426652095035976829762441794814404656216365448830915630183052608667435996228840403800181722201552409876404028529076930594673538327587580864071731305209959627331471462017694761436788916029300253471780148370579858169421842511037418417105223112990964431157593205244481890594177562507465835260557925895995350048136720081153628651152321645994580698844215113964231458094756116948398888811785124542474434349499539525652831813131452909505558977015801062886934964853196805658750130993740799348403385135362304553082095618394382905943817018249606115736253299218333928647808528146638747806192647456511434925139977102426539646972149889879785215992789143315441683456558103125364331027255720636477327845330607305112948566358625883413677377102709602391256329665959024937589164378212249443937436967589745461978769204824048173654259147628905682462216151628203546180219546997626421212078509512121631518503612068849210773380353816722643832137470722446678276828841929607734586298189367222797376808065286513559632605314486852468485442099577551827605351464846518649122870252335515824170295079456362027867124753479372409103538941740421099292641965416452474406198170199972735601827204952320207451309703541416348561103997739700680947171349001216453298786878536553454997178701416954292186806676935167624489598838342356829232213936670466047581911037988664121487897250784748015424421874125316147702374362305443268869969592045581729413102685010994379023569271997187927577148724843134995826824735154705393303611311379530589655928501688121247601786202911550197117167755206663330413065895496846802551077290329607604390675485834055859021451045819542817513557231935658599279793186543686648330169711142046279437883078466502055869353357204041388355616890465983191580238090880772367599498317368650266885740127564422380602780313921352386444023097796693723587276565902545170995715112218093037742313959733783771387219550628868255218556199249962066875727612655576200366111746342793197665130501805776336731049200265088359108494267078739217488431146970077429062497120967784231633764508506658689162272434883506264370013758029619390956759063429774797436192766620261026796540732858785154152295146541725359087268570471745798793787403482356680636215223889001201315619852453102723400781769413234576401161883123109732540857818810235556905063009336178438239844466428563358630531627763120563039054669651810506484203183690765875575347227167128011939033915853129029657518756740865704409566348492368387011381769189531386983197959628202657542318463939121401491750974269422010672997714119447287818851742769311526380655487745705303854306900581205062780481442095523061513224617241550474306656250016971026704659268143847852401685518165961225661708800809737199314722126085220477847187070902964474169017707017851632920578735951689035918625272695883859099153020017256760346780826384045753374220821028826609083148560688935184404693045085845053494480596777237400352041355411998437992273647743612548157649645345320359241240214509567252740215376646107118716760558510035819535955139096959424416384025906213773786024020785876849216286319370629557356094952309572262827928549924792882335875224056016108061214869828941919295531264945688950495521672166258346905958454309497823679199967753149116269489218202394728893778767440395618196286588604304427568395480756524446877874509757332294908464008518675443453165161374360797603828021309219067559581848351884400313067782174856379683956608554199786993631188440558381958018862722226870210988788573662117600184770502761559145137754966664831274546009469362137475982819912628420211854118944566830121573735166842156576231598765983190642956092321302294242699620557878634887583482403967459493380342111037336699436829720700119424456384220170864522562193849101011003134278004039725615261578104999280417425986571644131878559731481955895909129546388264925774676831800864477420098365905008204837022088088349898751773071025994006311521383647571856549279486536095685554371215474293644764306497171459397068518269112010489567352155924751681283661920413557239781113450695509932107627062279234639135184204362644663996398508914482848198888846929017768071991607040737909737097627351351604649010399862450230745282398306082886560201539424006159279755925672555658703377933381099808166584103155739612688414386826929157075149208336283195591887599684529378631623856297778930730651988801324091301165612184040468084596977280187284569483861112564411588363021878297299257155220153982914437969004891911601093566200290998159684502994746859061069810271873422136792834725275631097645576561240016013678082458206490073455694039570438471574466303034469774092711958500948249517883638497922287891727138617070754483743517556909242163865801042533302753047200742602974358734291879643450456304852542176738256579974689484739384339753277980675900240090000402640225906643413805212199901496061990294251795992771892676106958814365000681538256842762785659883699080868012515089152603455672368995751992908864226503039270152379598987421733996992357447454846194451970815804268896005790279951913522080845775443531426395948781777562675853451911519419538579697095113576303408085533579307173409972230715627946733015230151573284150561493816089477390678830148751558010410421541333223628815720371786603889489818683570744484103893491633036402192113208027970494679511656708806266712904736882285040628878241974784156304038608777750705166089325196540115122372059327838440742468856505132331891556602358671190178610709588990525027213606008994547051065739419652980089941182345836275887075583562875546824496382320860064023726432042306858342731619741070285458977899775279682533205688701810829474398654348318770068066297429043650148975448920690528765248496153670652519138451594814130575829350480858248425745437594388663854632336462232323826962267911287608179628766874656129693671143516084940837667068140919557527391302685905897108712989927847100722164027618625908375358429809898264438820841444937795962833944691786305036852623848281708689234510886641611848629497499593913815895847637815793638135427881584567635682223845180504781622976453729079123626253507433480689930696260425537498738080760877144280087203494341405611091351254228081229078504847899232626318412145324522254083646980461074270505801072718070217966008614307949852200726806154728847118941460156444046258603311423799501209516606542474858024889175579356826931809162387918850746633168147221124867132387355879804475162281020979217449303112832678578743405017001709888908159526702326634066164367877400048839943396189695848692377231440842401752337390569713121108503469114345569797157540839721113325947562777984747683154120187342141667967921603379728659355982724016587815770802764786159223541894714677282721824506686466791052039406833632244665587413658763156433875583547686433762551195733982946879041551219947800274213773852554460475330610266262187174272326240385824882541984677829076692356869519273317551280391350777734205395874753424196282806500592998841505730170920198109103679694251908082696658057907629940173499724203844383004776293920591738958466297911518544295514615132589097034727378706004825239703046549092749578739556449064610290654996741212779283883552017999249959112972462448652839345196899462681673468189734761073437669865120760337914861010456956998465241764286989239861047988146184954785996119550403764249937557338496336493432233901818661588079599081461253723328520603020100263854677870045997580427348477605908200778270684986142242993924241666127571542485200630801841303477795051428005606879332467264341932195380214606391961727769118215199088743520516987650082203028352186399759246143451630336232448244370509868338290225650542139270474278192764551311562938350605388769889224696961364855847646949305759796669259323618221005401996431499381415113299653026543437016513496321667907142430131936060825824619109547018072532741472158725780644902998435203416313379543030979960909417725169858047407909945892952005455543788145315259465652095502994600974908244349728803608067352859223917195025603378850429943166405567410210007920302751698103796722697638554007687371535228694344277064159832049521979248929676664820000838598139300920720119322523349548685891153924165180574662798168199410407281640513901034060914176823332160499172373104765213538673767980083132973644990395495921617437392231164488093236465222589838763528542058520476425693650991457573451708315766807928641815841553107855805251488376668361856045170493024050965410523666423660183274631651161705767917044501440909409115256565394777632797063149799334466631439479291956937815022278177898009822182845245623372303918586846204427807768678951475820895096589685879559708372775459567767948483677410293159434410105788551831402498905113327747112949882695796378067338502092496444959849664633875947562622308624916672419925234542447880385207986331673792765327500065615928263265323782895966369881846347059347359516927078290449335924882666186728561733903705830519105749159463440063706678026720021995711074688413846960460985695876449199360580681619768146956970346029698369457572548389661698453335653817128341152442424642108966792497370262579901321444937118124190978536120937828673196268790421566788804064320128428388786998359707289036173780222885839213345499160152108680406941009169347320671567870157934106648203580683979520743749125459941663799460740470299441892926406833313451986448707530247622823838919045578829682744657922666759378717626601553037590876615842053857920290385154603824259308776416491268089674982195630804690076994529266814530725250203853052558443773390205003009738919250380998857461631151706068616257483517710379722795713987937080409675079372371165881513709824452229663738272165740103621103827070582316097630494282551651154878248660765748754105735757556885189827002581175606987725889820228244122986801471212916377400106150314719344045259703481460746746760040451562227440949075758543248603280898012597502293628924829612249537609674160675038017363234567783827349640791897862841783807424336041346745684206204568723696338220742026450714812192512198303712072384199682217306574867441969877737202088020567580054183451082585151289399800780489300370375272301110637356485433076881490194303862702773901553548407579160882767264257911952794061205177792092224229137843541137135758625078154302989347143523286846437019439411452863633372161778767986535179166866574685890213369903805395259919190560889895585404043719527908015331375420291549023031231843082038991495914069559905695962982654318479296516571414217234292209924665835034529770516873501985628585235852998408203289892927506701017374924968757035007125874988786884959377843108116363883751106815720384505788982816955001180906774720987510000155383193346842374751784670589469411936188040642710758735741046901393210002784263316994419687546326354453784296486855547797774858784031886000173548811013979126102747395276426586126967301087410789982959913356893765814850755992560287218014230593119579671021627916600088466373175601661485056313065075414305036105538326329474709869460354775048620415913923947585524186251758438383833692257668058958461216652923274867781201510743446257630774953963488448653019637401437002276893036763775592717090124446538797584597911858459489786200301588102458428613344104851000394086896537982509109971833238106153046094839188277666670847816791428796102424192538678574452947297422900784907223172730668576293638170146996480841028386781727859392441565665538223795050498615224510437211626083929375139724567794605950921292755726224953525714266972992924049058876381467485203117937405931541665221743847236814488810765092787117437581883610588874255088291892713662539150451464383176501656244081895116860125586629389968753847330587498544435912625771948454615885783534351442545639553691984632467834513638656302672118841744667740840567122536378172950645828503298372172372019312489080662032420024810143495048194406803168968886221688693006523807909730342380707853114173588165669439928253620565290331705878887755437118667030297281622595201329609497602907391350421243454871046993083114704504937895850093038017017760614749684888637755987447486058754884843646207001151223890518751908215036246832625048253371129950439356722784522608950365348789350428579575806323423776711927908871062637612189322695726664359778426730232408203625241243029340897775733703449700232779857554366459750029969711008219260691051425672774816243339895491885779781285458296803185285482555880449524836842360225521241497777415226739407698640499413206047448193869893357548966507880340306536711607122982618193295239933827448731075467088312422017204818211353352962502229492939225395492525631258390494840853203911008567359347826445333896372302841939219348407215230581760392000733879316133370908863354476129117737796050234590294839868893290336188806788102778938619098427589641949729441596252293085288448604038585611194280467594158170041377625511901188252213306483358063397158087319616954246525511298195090119095791711149518981323454044943814304825975607230881266609353185014263622763426862083733808786573323790759827556149400658236553364619325334721919783011407623658177136861114606914404077203185521626039072309363737349837447257877202789463200732361013022641337473186318614452010661041683820657234575171164920668273145794777277567331900138728870869161109706276253387470346411260028517204139449223592899820751139354997225491590394615787049946179500175549398518112139753429289019724285274163633523369576199341608175282049705370454612783022450722406285299505724541037112130902464864082194084852075020657647532505560831527278068404396500431060549309310833017085478216151397564027787601989127328876672955945689488540309983146069228088545132974171633908846373362557766207031627264405737663212231547925270609375018044160145562844425836398884043007374545136396761945761016777294663439850758837779401444403185690309791538645527983781225806309201973902273554310146926789459997388295691578318941761503238329169613235551583358215776492269146706639297604286719283808190342327910531818276522365600627779037615710129441401695770008536413574875867297411127567171692341349494457625792474671975774063592984308100397665274293224283457440564332948242953908678723763560856923389878884748889757268653264584917070673265322532498212411082770722802779285148203067077428988276988685987548388510134926766700793408365102075407460517548061963069650626491668376758675298113836840628325089778608521795396891319561246967727888983228260489585874330446620797012125927528644486535728643150734002095646254338284856234507780981351481542968194801569050186272233772607609416218264298850668633736624797479765701845619295233839209543424341504671755685241543593035335394625604157163163211452975930771156695615162629713082884825718094847800064121618661589679857709662245377618219947872278444203121267799052296361526173869041738517692542779275943823515032860195520707110288193857504084388718664104048519553835464407580281309644484012898734945760168092392547226200924353098578834258554073041836214726189376577206821250160944521154834359315320648976023646856079408589269915457468044828266162538176519595284826425244851138283701353638553350817844234175351747422918365104768171789473230422745225913886758690511206491843722760842151811658200426448933769199969792708459631233186637087642707305395024358948995505244924426758217092600286723928814787153617131217871006260132512002535092158096385062680715410027329361748076227393293809954689947081667228140273920747619803384206645701042516598272646640405304141027031253774306869655912508371392029862147844998620164213274173863283003039736035457297517191295145433130429026863269747409966049953556332004353821000423650786837545504628100581494915612784345179382222264867718329305827233566633693649016243080275671089703864629660169844144566828909970518501011674703681352432020564655188713127741729971530039778154704056515783949374676745560748986710557163971358483629712289821486271391852262157347538689292372665144108660983323297066843601305409634766423628708448229475855955946946406028412226830891224914632579891908117139088612267915624794740093167589038481696554058564127757473351596845475818451884711036065461923472623837301548390562974079759143534024896179175041100507662262738205065438486348873816317329490331585978723261894534220167611844502883483872292022941480849907567402961659928097706288879509260987982882515418093170497342462458819455991451299207120405557142435737553596292995670726904632096138040119039745972320889757456809782798255560664609184691148603479503259245132870812144308278848298396232364583872315330070819230168768728483499713102873174102195792425957567292692908263425480819913017241519527868972776798552706820773353476235042071324721551283617648682141012211396501986142468998501720908253083439961690310564765832024166675015696048555685249292503727432550722558966453678912108029673839784005311272904718557713177888517101490719294570684828970907108427646495975583984096171448582315809364016826051671259928968345041901365567669406839336373031484630298198506519510353127017662219571081684951093107603431822769380847802924299984960071780137314006092818702827515656474902650409320435632730635404085382961903904101651472738828949216762718907736814269653113082970174926711922062939474336081107962023259174990143293743462348763532035506391518749282441099214871006664741516991110795089742390222765870007567075179520633931413320501331200569683727520531149133240849421398720545681649499960609348977094338248052715652621540403956536151454048187682708246231449646487557504032238143734660522556361117850474107372482763077824962828509442659416582339889180562902388233365916030270471599766729971721892624580892176631437543365548784746289540995251888919974133643004642792123503598519980338431002355526131970267585193960292151739661209328258571356233038395294896149074983182062391054044892325688164392390197613532409589564564894545775445739633542946791184530200718835377544610955475653404026866327928805944006572610702264856979290227849059137211767092672150744743703914871323728285413750501637933800996679777318059233332031141028497602072251324293723017380465147001505870694493029191981086820323374009657374411448509966458753409774847248192115943846641717842412188882969974753461330731274581823351809376958370933402381634038099395618163846283805224645021325836388253404410829195126446319435342434976632488349398275423380468907333341548756329239703232317035190645905080561166974937603082680865989829216306905201453608725525922603731277851777002890885823328052259706775558454765667593191766716960658241599948921570342704420646983892376290891633330666020263058808026783877800109960669054936434397967954144038210868121291084209271960259231053490389619067064364130734577109547606763969047120842372851634518268627863081254851299781134784332230998103634726801383190791251861031082629985408587231737740338168098160724475095806165386614418803947758457080966858837829067478552947750295127017589576412469185254113995759649722275674672433615869434355153080567322749885773192283748362806945874715073238189395926320460389069238858127508729421129097544451262712819565680176576587364447776642897480624257073741447292961964601355952258240799404402636241621804436691546683155368845689574342880083269756879656482054963295505989170396558542392068755777953467632615363848418944427270406664260881385887222371903772197397729566814775390377747077403567492987766745846459158299756155040056078998621737102895472773290600190828530312887121677745636429371308291143525498497964251936847704133926813561013556343969027363878871006930246361873256299091011621682117890015736251426392947742415829681744976976574505073848208362646800420571714721885714965577537100711763804944349283441502746529806831444111161706999190964650291597611814313103901322837422263873453458477521005917895023225020472178600184681942704395223158276799012276721219277607478976066384757067929354025083258590083532751658316520725684925339380003143281396672716945253730368557231699292012945961115851123883534377611763869067697533023306079059693198891420355346502343228336833398829263072912494702794142900086530270784492827365105981884253104698199759130687859102258886133125213246644068487300680287419816564083139514617760603763577915981252854929551315218323137223547129546273286810115797368803130301548919558434870144203362971793659918005150887508665871431804828633223018847550897205560993627651491367530843723524273447016142539308130495669192094340133115017543889562618934580188395600243183699133593984588691408836844999985100670876647981729491845294167999895517530434921926291325671634036097157106094012141157955921175020089882820542261506822552185956307624379977617668851552497780545458815634659138903136558088413867345781861449724215773258192726736972716908757887492803255385812015404508738166689126535584310660851452797667485609407605402945755473784413991626514648382270868770034123744829031739045226929425785763241487999169081735855007983551955482853482432304800629990226490822667785556234072381356098785843021325619609947662755485653866839947851179807966298679854912741109104287436961329198898216190329397222958431288496504419337172456426004311988193790671855829709323268415840742955634119557503853001282107456769066224621378305078716947318960241638675453847218354064948105292943457485855255117656452061642883397273837445960257541009550641280835823130166728089594153902977858535988845537227150739316327322296173817388623706516322536100537002568666077542329727632930975643095036153263792374544974903999605215912180478755033420883288258866946707470158978624970240982444253647354254332120323830347795117700374532080101580058086427266366198609609342498435681840861457677072588249768518137112003209671003815672126298826679337793117303570693982104267128747833382535773627943119016164000915812504875065459341646156150216753647166379547019747801657297157589190333855893129879846241401152376339774404888449919379462804363225540030523041992052649980260117181741712152945100733848021979682844130298906315240939417112058261904592219587952705246344581061454464200750393047732916338682283726147142029288268376367549211691410072096027278812340536823090864320606392600288835089534086090215578152459960943008517381006591938333100697154376823659437669183523606056622380280597319977439086939693757789874928772362827776176308253409173389968919696351626701391041808172823407910924236818068075030919181695313474138043499323372766267506651346773731679691596527427194358434600044150933280285435167448542176758049610489601603714975656208271500171114449443055204424430463378925656517936296731678597484386746301186935823381248798791077370094907804475922647260396855160092012605236451124682418926255596538738758660483974488015939756025850626062213864178299881859615153088744913451517816530606044973691453238022626097912371085299433559823300452869511759849242363647969582475925699910872279903545649098023971397903714140783431045751762501484842697781658549405883099845113458248820032491158465800843686984754491626388963895869632499280106060254864806418454924012562264125856766952947527684925573585457273253810761872664144439076410989908425612065822781393983347739857515167664771337326643975174280739165429555134859993658508338786162056022483641981238894635357724085252412479952463183287555344701452633966087703842468978353514797185161555152710152883563402237628764336818926733571365154143073709172880137031595420682721242753481356883875389043219922123170064582919703863485959151684075991559151722550945902407167567292064142272369367710473542686921444056553187190048913781384812795598363196048041435016108858024558150724163668639273681399319763631290058290094454577894823616554120873085371061939838987229608374731219825033310427709139593861224063287576522323370237396034799538969462062343668641163901910177477426907468371483774729011811609944921952943029702800505702688702058243394978322330219263737410376950642405095556232839602434605896007584372078104016130036130652931682733303150359676801972893518638409473460934002100658454709904230141880039365535100886392985607615007631498186947157299068282357145502109516137593079366266269059962181726305691606962478528211277637932143583108483294264195399735996001676498821827732945162677216502280651265152320772554392215425261032219877208408096089435941764130202220414381269332713921430290322161345647449734411522101835633254488935179015026745366479947262339099481180646834756291481301091294824111966042254975523133773421727760053859806859499271997315866431639890627336827848874051096997007382562851978606047168822657849167077229717252903492583211860706579440752954896875174229821645142160960023922065958984508478143017532181608355064023696925504962281339335410376557544140284570235897706667097805858387110186335485860198912017783288913014084777826843049233867653051592151798912584929759672685917472889040784044337992724437415654102073199929071011721064473737252348891268687661910022975521500405714571354109379813153075158896123116593017597488963316901399808006996562433583769605586501819403070388010350103933814772202228620501680865162868788598230880156894537794687785300693228887714165233509826878037356369588337261299733137656491842617851648378654710235916289988768390550953748162918199153427477857341471556408617107185460279528573557538380838150228140491768216532023111705312791095585640401314657789106922332850689156375144384667326942005291502137442654982949634954219721463154889648503165519772860609189393408640291590523699200446821111226681707707070738631395634438056602584297838141112900001358722884322312667963917687102281178568638506278081283883088617442655259868733428186040226938774360467747083542465243018168246807634053286782567305934836571214674959962003707781115579600377018227808139341673794388397800014836306515147119007093806986210701001804064966704660469208443662016890443268919542509599931625323933410835159223029980561830048966292595023586498661419077701167393969595415264284814087502924205945832087572642522874905562052856695480587931991717307504996097172684454646039063509189546748930350548881643926754604157971915139502909192552442615337715569213049947718891640416041600166490084699583473335037483096427887460341251473496923399517901894480458937930412176374547430728098431760025198723066796427360096510740614825631469092345418214179265812150870225877892284840892698468178236232228490716388745315244697201635685513355545343459922466598889458061075934382114546114398146736573756954137565125985102309073229518023723616567370557567290741491015931027227493029016703222538129113266309101351639249689438582209065975583527952166819320553744273030788313993731546083335969186142816997097609570033887015607467119099540073194115248376958975170079289348030570885801812970393048019302787699530742326829667897201325909375126552730898723468376068388827893090307706211934197410173468179640816856109063535669081162496847009635832942390654611456178329875865481813667273217567469669140431100714307523944673005952160377182637603228119408661943298238073829741111546504854899069266795535292602685479739912569776228302898892276944400941128516783764790247825405386007177523246736409089244654266002587118440213481608395665885832547367408356082718244132762072080908396774075442145583858598030899942337840658556042731528272260967308517020095373316143349102073547876538605019724299205440861503303328109492900555199419472677206887005375279031884922266528131310941438282118246336007588854437650414400047827311357395586325024532952372642427826248479433562395262306885001719558925949531094092416013609473768805882905150927811162353537422635945262707609642444927121440988387940433355603261839628227059050985544743480117874602552660149626004909775656437027821309503207298207100096544423903488653275838098653235563360179054214352495026980052259730591869475013670341613416344700105849259307871682130923127906415937290725845691889404660322584354831648972552218376943457368355282010188121753586112756984256716785625446301011507350820538548823037159245257830118102103415234324697824147815362435849744986265654554843559128820562084665659768508493676335806349544372773328720144045717659772092730058254341714769111720944098674064093773052723985219991177486631528323467928984245882775860287411235915632238482216125965801972081424759266906419882727200837902424710861319005516200378342347659821995122106414240582213635725613760665684905218089906960772383376232505597614395361575122896277276917763793407926948198678127828113875279191901970548234996254523465752591592369907844767763894640251016570076109264692030319844509768854317295920000331780098557178962342135371747495994350970093771247042415263113114572440809375276859005190478731062149110159028279171527337391256363686610558794057394543312454922528881110004993524785656583220297282773192646686010896595674914618712029037959528259711537385693315568081840872569032374594624552369467758185066177828700164623212345949950944672901584398201833152628692722281782095983418742771785635472114884507678115546189290231768422439107494587898948360488856811210322043123552099710741068051925055747515301002184134725183830086330722670815219799768639937754744593205596873707599137746481629577748361493135820500538047312979385366222580059620089390893984342220100200290251012220452975767840625272774632121700309029182180810124656931767112531295299036782538290370010626029536422138494217127697888230342817379683660866569659560818569877940676767561030751957725198752975667877645425128668714279025230450166727767456007303112093198577633790464758695782876878300391967053204538394112669656065328229905469519004232179340001051496274162461923395518547779152517866330282056238226076662932292245490829684454360753885006636635690390579780538768359017769534945664762938520173727121153391051375527083818229213165348431204675164542860858919864522212116764717178861436144362426360894958115979957191008306540755581123594517237137126279793122847381270866798520199409608649723798513007246398087922316611694756184343917436447920986997464037615652859700728321386055893288293519431471525375335428076823600042573674272843710196209598994893247862798042565443386119346698076935232590520822310520206849027264706816325218974209692294452198911398377243762146795080460085413349740533415788955081522777889906001124036192704085574213621213305246201172868867569606589594515436329312677772042181733327237554992502593095672322852771437702454976176193258449121360054022198768041989506243987792752362438420148184239495778376262645248608663832110215829742064336064508732495692030674189598239371791993118190938824423238996056152662775166736565575246789201757633546199380877326049555792873681346369648174605235567079385577895441619161724995300639799366853946406714604755300726014835672673945326919254230939399748812225177396535519687630148755417301779706555931883958804032618764974340930152922703737626127432005914900997419037905744113753102584553501678796603855176533199805802608430173831567716567369455136214119094198484515120024148922967129790201896139022320100629244803979870647925199796482740491209117211179316438255304521670432216918951999857876779622802359727999709072913179681641398489386511781536514337558890581662367993578334997288309535156368088023630432297491080561891894518024248963035277762730090304962313920833551567142115242676068570785139418112008697637067533246331529470757507466901313162424171011785889228417121353317004195909695739172587082477027646232192489295225578627077027277530366574007271476457134566463634204946868118405908129626506013113694181648182965455733785398189184558721135742576400769728292066859631241321502622792679097743298225272969269461574465063539719263066383362107203325964653911380270833788838594403733736155298414632848918633757691162424409280185572857321071582579587787833544626373484569082135382228856948821752782598823474829242184052654902137835125107069148610068090995846128065509927965781963346980616143078815131609215779208733945825821475482353326784223307412688353411819184525770328453765737497889615523889457703239562935295172747232966041226386710161714440700565372438835824650430962819435452334751937620156417670359897603848151000068267947919369521199047218226573089156651712862604654845238551571207155722400025070336007710009632680267636200531001410206115960680572355918746644408587657339902660410025291363407342105967293374785594775620619033457160536595145819023065098475700896080572421289238037698652800587601589935856752717904933433771462304921746140705601978061982105807570252406226215427215783017681658209948482881723321446792098188323056504246071070101179789722920640141004953184552492999629115574044351827194397307472942914285708662661393035256960779009947703456859637341502358904071090851695861974328652248625689372959657498493192053278053029258863462030100780280280911624175664101350569665454341644571402580192878781755290926872960930695498562886727471388179269962359938410677923652283702334756814219843115389211961164854341796320915784126295789199896863491723921834565125733203678384706745100144363807702684934661104828882462762019970117570845843834399508089938566844663111836978318901321061636500930247402782230296056358365852091710350440466770154675832682636588266672960662898745823061379963313288741922394724509015203061954163926841988892377487121635137408244273819026491323468259967848774857960900558476228060981281221164890955426366006179349797069253684686211905660840322283509799247842017670570100571148775187642004897157413385827640807801081247276888170208452496600360131587341961374613502404843128803005852095402118110492100639217319792186394935347372287078636662822413703652926021581460587106475310662336923512319729335920142006302038607210869355868547169406319187971286053384189351762758764783119803743347790065717397431482168324770455109453806396076839204853987093007349806050409158786002708718050850183118521949695617928761055036827771360543364550405613548852758920496494986082698201701838362155315039373735916505460760216663074895890697979433803062662908046836954906228993261317090013230778715385160487807483460855697811501110027542652689226184142906244688806597062990290624262585203150904399323432524209325606154820964353464509204789685349262374237636103725026366430932696583732916248804403197814147291085827089787180819797312224003193119410911065115041675372710337947654334493855173847954843438892256229319513308910824117601811473774940290814992803396501722342824878159740658832686140904520326199717477873416254097500539843123512643879336485913347169450096505446105128552445992434176413209922717799479523108547056689902344534570280707236803570414824200862305129147303313924145816981924549306594250331192658240938337768638178881939803084130721455236115528504218044298182480967391439659514561305452831775720297917479345059562728042008684435537775995643812733826194778776675651426829330603876272943041209067882168242821824257291914495786042705670612858662582998938747235786594417696656524987199574095783425007688491295017725680177003055488835217464993957474810283935806543997314589977828747601036819422909056251997563506830046910900153318501357445632074886044193800242309362004910083257209717151473510512906728738690695297967591064210568207612091743110364141904704651141700438591688395216102496079794921267229373941117056810939372356499789336302958004043665771074840713453770385177157218852069498955942760721794941343703929416026574072100125402620381305499362438322870343217521857768153966207904852962990184817977759039982536499776167037995655334114141647178442767065470764771005578168999211873755025088283076171373272215656589115439321048661307297308083412834573949569291637252277628266617893857813548506614097468539346714839938833267471556494747570666240003664533799800479628246443480414642619974579216792435185584884362596370288782822821483498828593222054244368317173199535800354553664931779866382275438232364405301027512528604332867850829549897750095087311279350469234680274527995688109699546176730195336231413488326392025568683986973072412461109756187259598638540632600761206129947009240945889776881351703651422695284163178750826139854071082666435067840175906150632489793789450793164521562705723336535673189466618654586212920343712307965596993047219585087588243615681339449231372102189754284795269931095695821556649905410604973888725092769002424783821257506761505864435907186402824107908657292131970686748049652329368637837301446882193611399027863288140074165655014041524063028519410537534551424433470326275526819177709324016213148824967705144094010127880618310164062683332114303716640339694279825051582265030326023986095506149513241611592456016136801321634813406675862588374101820735111542676362522862086530997819558532177628994576659871880319347215402626539561423931459771079694783865817153665259018588233625553949676882459181675354541167308391438773706831767720104923431341159678913678816131400732598149304526024686268288024980848678244604916573841439590487164980704446453784540506803907803581820860214689214013725567906066559519489988187986131516596206109141905607168094432760787434403346311203198810100345967757349850279899060382998603821991956420897777694646161048050305780852351921020977010854742595223353769664044623503922731379703944540817470919844610322114768842848760899386063539350070369737372883357637561700868641997000964984877951341307539639287199169244776281801822123683147374661089614715132634761820938399437552081163712562218957965036484645717804848121210726062503089588882704610899339912485517325769706520429711544054101264959830669207891553679117443977632413275861978699992477030477976981644723060921053605973012999159311421683286126214639657381419776299684006862441461541508180110920082980801988037090565465925773223893476446124501960719697856170883990883295035390217646582620045653279718735815797529796324863612104777460257410311737938314248267639607227630517026668188186320116901418311832199120250541087893259553550677381153154965280962960390258793135559906401351633019085327687799037805757526277068752428625845079653760622622080477621401243231015846079294756106778593863231468402759370565331786980477563929898794456530185037865286870912351800609883837737155138539275496304830266157581385648551658102325448641716932981955689564123701051282369572654492082925072134410538990040755406467249092710497211205858221938844083920202003148055096193607468289300609162493850832037124898778502903534161441626216812686699624106951506516716814644746430032804343739664527144786554492315809165616528414972052721748519807402500096656805133270193588930017795315312618218626865418093185413539282269369422068111908942504838472853136689382158261909855182863203958716760738991274961947069061327919812352791224812872145014583044298294935435974871993119792635058644866765265601198505372489662622152054609587994593536082481631747599343126295596616419898024212164002392145556066697809104291743504412121512798679347262128705331341768133576158782625078553352731588461588261111654007436015992468363892368778966927574797721055204125549005410216257859137717555463463106738107688657019462349447518936516784828556370142290644706563536024506325852860653216101650224396631509136794402194009152877450288161958569853856574822606057860304635108455938619002372414036012646578635500491448751621704224811411391530296573093451307541605790594426475244242046331242772253937862505256418456168088201135085651775494134166341740112788863836718219006698241560112068989267809640442530217027789927253930484620470347984357787221389144282504131660296803337195554220327757320378958077967477663438951790997754962091248993509831571637002443442912981218082624544671649393564968063514552425879108451440115416236225998238732751719341592447514879816010909453991766242890682530506359538972744362772203282220739099991547439493080345025344259693200771752192931534674915635847194714260455671016493529865113775903934087282565709844885088868328471241270426128625760276452423550605974801822980918586616979408115776454517427003247296031184408592954031426373996613845179372500029840348902279333923280889334797373850285613517325643859171669472439149551642745262632298745603564299431153465284591905954592220763321199717441341884193433944981667218154252413052208106635930944331279487533812899300155708328264820169037425419667087663464631057704186478862289841577899832201341150411708199011889207316918713723054970399056844722012581208804162795580424601998577857799402483741424223750313908743978485022582961369519535265359289579737202471682888708290509733167589792917619372067078312053244738185463606729082067197851198819387001343024455123646028513054547910855673905464456105725792197568310472591592564087620993912651862307833756998040533943600355705822597811563735783693688489737136706201792483640384879461583580136272477727750557667615623494659462746936977302140258129484521852450339857645464268282597620140752475392146935886676132175264864814036935275374430411267790196783356094974074693022326740285369884255095171845006839022517279543488877461077921768068873425488978844867431758176047391443548215383003123564249960853241004600101277697106841429985918107752082309920622885142211034507956573288754641981890751197215175567194247731615399194890052718519405507069103691040645809453966308489217705268312623317205279308834832703142604226404063394768030427304567845349058953504324095257251119382392449356532265452997478112866449803819452946852404978026122288853693577999975773737234631775627775867134793364529828770900864459682104042894497024055889887383052734282317602200524791255729755175023227532494656445756512357680905778536841980780568970970120831646508468557854455101826079015167911432864234579193553292810910168137646625410691579108118427743997748241270217275489572801691814865955226281348849655108000101199692166814029462511288271975301236647889696564334888161885205367806907116392296371574291899505031509705673855696400497819124897918740199778486775482739442772342691520340283674599359934160560674558973587115488749119166659180731388293570523019053334416635966002393255530284210264985253738549725141473204337611600926448101543453956032062301435355990813727003576621908847099860159603170457391986737689028900702234562577708301901579785418506774657772389712049412429261307962605795265425199522426439376868001616726402522816800791627888199033909018773226171836458178818556944860812499300762268721146870540597308824362172154886225574286869348471733247394001258040532911106741709853214815904286836829316619358523899915275688754575587945998367625348027352540488531584466420936847594154546756723780026700971200286346021824932877865724063513328435483501440112612423929236795175584255277641902220631271106473286039458178287167697074050842571030088951626372546737883836621175470400961843157031852539188616899736779987050628578617673118570816984350660334151725348472432834804498386078312645580278172029566876624362848605535196306481508528553148292755837129269820743038082459786365707441950483452326217764268489857584503306884584410781682806444843578398019258341030087566442509054238035240068806504667948562035500690768765178135974258558619178099316644821116520288565526385955906724998624264064859772819236677721194353509110010516876122611009006554837179484574578501478991422035145531510502023939891825127616356429464657628858646878567742648126090948625612371098423407283117600158595054366669670404172842813932396369205930307353558859741025987056637594794594566239862744655538397738422137084761594635148712559636112925876665497052897304960475835439178225129807450351985869207199149148979888475353291994903944294364568073417564032642228814383172416405702202449700256326852928259856414255126795681816179698117692119463230196981343816244330994197491918033071914453660686006755921997936881325590863305762867513770151156532878141721927811354873294519135793143852832577566629314004201779123278164463626662612901625294938852486971369383072707470370052243051114796295344867215982390162294295496441866561934568722766942896967191749401401736229741942059915426673208499152548209597185252102262808729680260231440354155399403882502522747819744752915928304801591843813718027627239094653493691772622282258807871629125106484090648192770211789017918728773042307029288441703649258913809708293422938354255952693345250844218105385824907859208474056732823397551268515279013956656555290754942790756896554345068001769289206626829532736527395401972921329568795520319273938183379971271934395727154855438352566262670921362963882259964845610764907501277326544460927611588176167325197421930272290508685120796183740610447351555762089420438794594891599666409901191642432039142570381470743934274575785567140714642676742175493431318267851119468452347242739317162715738584500423021641452051268129228586077178086964678765153844323964399929404731832779191324818601689880564912086307601774580676809042100603648306439133010665643219650236910097774280663019861847233738457828423504968129788048084741651869992003206215133548022396383189868851873014563606244059091245996347074977361454065741799937182030505510119666111559719666646187867272263128754719472464436043181527647879475865114320475760710781262849620419132958262194854717736764690121062063600784973349599080220162157488188664569621944919425666965351567320224050332745968080342869101603510225679610850491839393575016731014099175332954726059592362909307696612540415876740461396549125748409908416095898737185739281471455479696571935265831422328576574614653532654385372684276666396404031512214443184030353957422168080313261642453297284988221175040980643866007055980251759064838211325157509037158900313216853592337259455781004603346899517131964798294412271490912282439512910589720062059444985592575342014586373895431998476537305318994496201022226098399388160595618856876208358054030585976074594555865286168413574909942545239443997869038736298567362962416436136526146896853101022647056838202467328520948967117489844374796269222787145645491482426040096492441499942528781960829236095802866487904603874280640988445974137878688948393152168967023181344592086843370097897721530064677375876615601180100962875604096956160399074681095131308119708167493040138673591596752666618825357594877381648921671337785832671860675345742656676297892445658153981470207872177419904835812752582306445761117401212522951514922570038037744102042421274647099901205784235687359280068742929326169242751646579803244899214158099623950487414654333463521032305468444668709909020896320030713226559465958884973117372069695525165063247293298504038170134910234030481902513142309143355670911917369951499494722505267394547482604545688290746249971664991545311462339077553695435801760222482496201052175217190937115801126947118317681128748120602168985229406309544722838824573130740009898479561723693399960730850948701551778667293161426241304964230585310804220839626820747267402381175040118073079476913414504850913972716953881343936453430266067567562779220453440329344078842480327993343952483197747680224277449508083875339215327133226139863341082404102302405759605372112559839159463605560738698724046748587305292650471213126686218158146182555186750402915833204225225612494336549213573740452828955634741426817034318451352123492227113539507151553522769127811205120877557249863771485672340174963268971071195323603155839951591102892286509178214771273543725721033733411692152016168468904552079922585771391187986327500161766543652008850364875476716944497882503346053165492466093788086422839711652782349880475628516185713926324335560597321970927835100998191037876255478651531574099317624306123177421668771468274477518154190494507470153482243110142053057847902923934393339732259430289775828175912188241682353036450791199109269952139431537199365497083013698344145335899900138446942337724770718242537256699328645060261737158501910868853886985778268626511214629488390245622894874042769710452114028606704996361048784352582725304263739451160851692256138527118913337001312513086012290822831483099044940745765487132094077129728755402282813817924098066203598237409817608411976927152475024927659706508706575311576994820291802235742901512475447864090850723053436875517891146577876085090924523723529673181955536540252823584370882649550130124088681416685755209525720167124143425064987689963078590044849937388333015379964072319646747784096263178084327382751337297103888144000178481560288724153124752933837531674616224005457576941372108764955125308388154398088362312017688402872039402668747017586342199648478678443574585579409730345605599734884340057486231079488491641730921062269525209477113859298524414242863148838264959670317247715796318203154948829892672401987678067954287718628710664465595117758354858722689575822409120545945932663481736976978187916244883821139996481653810996682095607087951177460104362636318672589179357421899425825401054817484965561674859950238015372883976390038622735862990244042264835840808972743036780498207249676948612519071199019594580499765558091992726914291341271824162941845387048387001443099578116713128164460836432134040640363960281132328564737267953624041813700370379193040135825078631461731246608328211904610446408771623133751769617854586832967108809817902645962954770378001991232163636075929174988521899515824144643337006060368067291630357997030801051371255315630213772742246325551745418808916488540554781003269395824380842425631258727323320838122842100069134225515839350877270267248752411143417183718909447968286170660947561538975190608349765978786747795676398270380879018863458224641588486684892902979658557762337234769225181605753134466011321405370863611125973129985275228291644893547904663443775312860336425327507152802273092581895751823546331545825747010401477475493121232236383199800227901395073538443597131019265669837147682321473195911129554320974586243068948571730756946468131820046167227353450136250363784350410732965634312945045243509545724139035451961645031407147823422340985034493000201011022405900116842124483841268523970630694478639918442944558330296118415160280744736796118194879780079262191674830131433380559290039236781814404442159226947794819938166368956763029446881300043399257674875748120979810925489074052942919562374860497102422319103583600481617094169308210137120112439435713359631007886045062928411481371933033699790612500489269724001826988717072292914745950416157860600152705000430831571259765304347962110259685663836658999390193067280165469487991031511331543002981581913060605571169343699808178557635687081917370589421662408759442816646883106707839040887365295203647321778471927124270730334253706028719361370880496471471666137829068884817156355982228208653981333766372034321545902448338303897404938958064619733910746314645788310771999682603471150508803743943664972319671055741363340895236961033697811963905011450202077914879554228135482904786857741665257254848694822721335906454676545905211969562072922143467412174637193034979621837823914993607985025574274988505865970856269389031250532208847907073183774552901063049522716394027688599812185800916813284022016755651634038436825396734276282056311183464878935748543268644945416260465954602693831077700248366793417917771049192901167389379878778385989088880771563245572555373132833351028927871411183907237504533227094665984507438220772576442373213365597808248302938894367913777612427457316590200166929445994238626473368188277435126414387082691742386239615159006424420318517116896675678406245481551113552862672099077894631726590529859666346295175979336675239186263963769103263142421782337131579295037695934469862566555328538805790663952822992732944144543723671827625638705274283789239424237320944769510100739693599560524650010008162818066427450508999149759474638639176865894638151325146710031943198715924630411415840053521010262413620744328780471276673865031715012685394083232986134565770522701548163434055760691887396641713919813734487094999392043003509825745863013205810273834683427410304454389459273582109468208418475920030712284233197044910326495718195747527652675160085839752466955302153390665863023729560909000801918702068365423758876183825703024671261550748266203682162215221088631816636921744865675473709301247598500891266835140502276635545962593039729943344212189796967480808859043360674511067097703682928366075504532737290158239854647837107527096984803111536511688071047353786132992244633795563616786144316326286304757742396654326938974032789012335944369049133296757293480523920823532284657533312190073382616297728224224299333903876973334962878093813828795533369004635942778767082089564609244587455994224792373854293277569428037422065382371360393205449914613412428205653761549345637109124655143153464189346340336960313491712566444343209139729481528720741829018397717426246894074216427413779650360186110199384362495041219764345908720807298375502234919399822942125960967755246648129421599705880926803600955325674101028924918063328531071862653200543498365693161066899689046121365056063070457125093839775358096905890459264912906007626860047882318754855435589173835231702583147043415379580693539888029080382897760254390455059254039567250064922317517409794951365483534489923078138785158489719254986490666795710874304137415963614363439598353971663561137440323526608920758717857637700019257453445742009167099812070596745236390891838181429562694243381934894300117208595588393636681650683213601584556247170050728192323190475834652696985578304042806771798515198466334137222979590080149992108378413747048139027834140613962446087670845991255932940677478909090821509612420996068684640069755823574317899385456981687243521370061616519188379784435254877019759360929943031930858061469364420304809920677372986296368855385792979506631751249882633209592171574684830745709040954290017901861634361640865833151185492875210983817525784004025946351105987303700652353428444257676458189916884106336778306444494267177724975183487192235163175541942056716957688945454064942387745667526621001254355096556622526118631121039393011158125445950877593786439601525094402140147290592825635151474160162568027042500618914485141667538567962420700858189141585119177187153250879336706596304983418968023233409484075971610215594888827371688012370407640897072944520688746566153098122631688458103234101856220425977788101691222502432227157548564164348904506191185599224900158393121257396250878826896596037165305362338861725426184036298190402479386700256837186837502428053120253044263422186565372633450759766834239667251017144682855510525930209806737673774979407326745600186645759366714820221281713303536075503372667881384739297488705568417974717620273885530913036220369767151493719398923990449909581934584155354506272901750449705489642120058610541647193441739219716884211868918561176505771508155643142800776368327571993273516143356156813299671805239658442641474562386350714091203692320091555967263464340797103803649117174960810085894159604288521326545654182369395479608763267670327157187789001043871004587188061579042765954418838571764907301384278119124002333666329735636686902657597778960144824152072308485260310005930689465893530682855931161621253151277285819559733597739100244429901989427289497307936814924514040560475744081553983790218404264016244069584453789901371420020126625516312851024715756851756065439218316103423120750048170213145622423149961140109435724632025510370479464677900230880613255464525181524727696336959783309811360397737879496158161159313788120135610566944652370002862658580755078920668911528057818609989185198465014313362438821644252713614451444026429837540324576463806422889255276822681144236513382140866785038738504828401733649262425571520699986584810954089694944247585739815074723646384719661163697441179097867589131683773241814537686891203235892294424698273445386863091632263706915852653741930096464591427840444761682314269278123295078816407308432561125518120392808927394322205803828746300438187516039677302433869719528725908159828788876811094561056055329866219514568581916191656403970878912910925131467673763447401546868174127978271860844008949201204549433940519234180702928872588559779616128573494601928935146619630331863979051356993959559880277488809239547187414330937749841714316230808050222926968568780762082985706407754060357741242203424255953996334048784486281979874231618312430601546730097527634898382086892385101325899622076021563832331515838707002349543767539500170188498115869753816023991827794801005592192537468902642189925711204684137531342592954326553740854127494958255108512344222439730008913930354145521280859997535732046711674471546795285452781503019231421284231425012379334442325955620561837748868329981974899054549704195612539461996016808270187107390610777542676553606144438967321385294037028047514147087289694931084427162081792302680895644306519056805905708494559767364336057647181863607871959646216098895748725479989096361663363975633367657221182015757743337167649731168013111903605181472045413736747305269795985106543655734834647239827451403687289613140445028606757881684286126910390760849528622993819551883231494071761092519682610342451452156736632035101068030173505533952365644208197191377203639432291922808685459568590581591875793355083158281920281383967774713355487025122777999437900017068324607332934181534326299575488370990699220998366046313155094273243541844902693164995836608756412635624665833413826709320252673947494692518543261985711834867934028037509715223359845398248556478717019113838108183783149149702557507360969386051136302886368966734482005715259894291927660269080540202406255720292293669335596703265777046721202647073156067557042044236550425524387048295391561935125661785463537263132405728807862852151309944702615148799234549629684379893727066966394542871665868375520506637650830507237432596780780512777748755267616407618624235900333730862438166925620983865723416994291028856063393225201253786584876664054939274980843812211061329656354258648670741639975760795936416905478809166019586265506230694248353186735832285066133013757225542509856373574626183803615766081113716852233248970049841200249146098223558296955868407497228216554908675558942969069053025612119026292899739699737152960110950400837423089222267472453702639734855198936753261057851409202314414940723788105685104421820704894235463585291235623403048959963964781571220279946819012163685950358551629079203734464207081377515057714001009435291627932558568933130538976423793785563369394639249546502253135192816441874544826339300055608653026418950524644690802440617092533588654167068814824070559119800377129841349094550275576191102731318795041140648529669502059733378372517741424470020313355654504413351426446001393239981336952136746269662545702406410176356318736944585588602430392053371095830181583056356742435226616712904541336553260323763793663710720657890488220008139694494212832845367195597051366148643628428270101294020001803795114772095308456635569630664490178299720376079979311058344912402401754173091957863514361664386593658975455185484603579490598081464709480339956849913727799632684781385027819908915578126074800833759001189715773713521039420014115313704206242126846568976837285629190430202417006489308428657032319379925523298954474290455620751312691179095037169488641772183454531618063232825027276094938044823850190655849905746561900821448103117892622718062792148788337150081861796728881973855033052872407644059955489948955938153331909937027902856914913867972628724720968277101158362508773325855831936583502979100195714556804636253475428821315980572148963552497408692950857913271287600369779856016726928053210000756057209071227609095424843548001678903956149278809062591206450860563257459899630660090909399531833626279270416165440330984143074109566588241897152558097608617775356532532203948669983809894648708964216038384661667863949640477446426761200830656015341864857704996248136809758118369061379566953500100427980154302038325750480544820671951747107792542417490354804744305852686805538654057046417343483808407039750224183830721165595291952104698782486932833253356407593868928601063844772564632187833018590220406015610828028064500903420727152711899638886199025555984455162660537258018186374782341139916453591409335417440562087469363331602817874750385641820543238218747818631273874990145905003148006645708343340995776773569998695803422201657295360260572105704053751376587837602851853500071238106385816836400096745061824024197837880869123847915467746279188894703808517699053142422543629916929778035627301271635762354709193471808659245638242146120335973822246602087435402357869987442746321418654671078527146156637147917095602770623029421862751666248471577578634055532890618802014156557500733099095704993295073760266208413785045670968741745409294944059851133632633512698914150430932426724359660818342065543694427801021975526518105630479658530259358523565576692059142577870635389736375622358722792936125689277527117666580782416217788286822280802904095783796643433371052239304022780655999550777350132956410208714314781254303231405891009393563616884055941836374742389050650202856467802944101177837492260030795944449019662125553299606985129392712120997644389600907691434076328194356338844256915055605682735627523240073092488892096680009826399430455412181582804363192118292490723196484002554206879911389178608310196007495911387461840564572396736524276277019347655293169489796326254087059445836012279734858696017752510570187528659227220637296727589681565464888242932388205428788017516699997569353742796211404005315316361517678529001606460604582983102324564425439676869489298934954347038224496558053990496307193366551868268257424354482793175870194615448869546638448422817330531341803474714820009852529065303276586333928233985036961455903826091416163839511316586799262518846680498843831658344372635610919754667459890273543248447674386295543713617977338117001216710876578445810774525525575701465927830184244507408916489640739301155653833683352919104962089543199675885481790239315710435764304442374095141257972115045287077413334966725863004299496002194110183063216104604976651864290007573195146602861749126249238337125000993124972443991554077538502967194656910887413881722793369907645979595119425916224532060130659289447147709338393512109945195301660089829366455582908380121043493026859229785294402994443674909948206453299091483416977818789978056952525943106051594651333798334620039266838478071100550227534229680034377000023587031527757277104020906504926315003800577964693722489466495729231514827822230534716849977442907445881409545406449430333713925683063659339500904113393654635006120831189871842393875146992669570957283493810228917214789825820205302114818519006377195621883316892946210153265869144300635766099912904031514684691648308863715314302961295876373494593991368864599755324998086727151889452579368728259557773424346432028283154353597362143389192656358266940156717869272128578355960050884707842323770577964241343534041951751600484153787037152068292301832307893411846639569789869408067389473146589511257507726892144151198554313438140480089631504469823139142412565333144257491470241586203822594601630312126175524850222651942979235191220083948761603200115823136496928071672685253329184729783628111833438358170743611920205286129820561928001678089036729677346244886213286660780157930455594719278155508013655764029917935249000371314818525096676605205461225937209651103953269875442780217249244427702277922736680966427044496373367278094527837976542373992488097189187837826781874565999113801523511913432610881249460238079868452084851747347561166854622939589338968992443144853525295548214746565206107242332155829636197456081168148013131103087630691486803026332494568326162419086039644068196210111522398620367686666127112710947817014989255038953785153029784528196332701175948182176582593949782667505410890307825951295442137982417961120070090790582864240256705934925510513910958961488346830552655224271663518954811492441171723965193755331763646945951926049278332631556722853200902801165254438232938957751246509112169479331979046791021724016381212665597543325159311192212297880437810907602256393508697621278940952880269832536776574961956029256355090164395934037966822869978545873131218701906540914445214196611294326501584895752490447995441784151620267111950826131821181494236803355581547445204132179445317323865175656087510246452579873818945432377306282113133940035227418320105882782191254873960553857818813691888856548068640844857308438413252647972022857990052364085889928003546916910595712170922445011002758282218689984767702639594888429059881410899006775330931185766400487675593347144785600360769041046480079931927431521606545603123470970299460687769532696692395387786509869329457302248779258311435247966511588196976590074497408069201256539679348483602506314825327030695062033237669021510925385761580094755118828971358052901763982024996232289704099704225757659393924744409327396429091358591157881877454377718497941956487121573492252661162713334319149525696075354084068343708776254826123296048060942790106220267352042321257594522147587423373897983433988190083028762674720540225028263674382414170270126829687625757994692354221352724245229396269531009428469521094372021055333541644844998544337184858033256611598041913534990587069593496600790011854317273317135451069141420906919351321181282963751539788755846412285069839089066716675169769198761694365648179428552699581477658475215800880794267635209883871838062977909331510771129170289296269378738584917189131967674680642628089201220638585065410296781981038121842073974560010614977275072984166419572015258829630548244626356517695881966300612215296718563896213568299984399350048303586999086735887543437766971407040901538605112939024313342338910203544145506802133586773770518014581727983340227942295205523876188330562987219778878736983478083691474532111346639256491900259698791388696242726162113542028286581930698407615124181469252109097955833287567803740334458643144343047726266837913611503279821238753889567166587768377871798545283947860575732728243423342695885295590971553286479309187141325803124917591447098650797766806465020142530381382172287275593717946879081857663393506774430695769952801231281207247068038189201704217416078434962325728641600670936240919294339860037430149151156155886109408580780219376642894140662737973476109987383120215208048885430398733202190038170733289030985860598361560916913784646499440716129040482635524293918099791442697622937539546899167454034811527000317370044463357394769096534204893902215497567602557573554645074270088197360539704529433942097678557001181399619083565944577652783221976373638656530154627637659257819573921205333829521023756531402044435139897760101765897031252994620163490911934922859175841279561100523067529514890183818934093203097424371429178712552904698458061266454697179063505939228418639973356527530068217873938144161605044210518225555047387564529081794398652654351555874959208349966572470032821639688506596245112468530580133891907997210253771546072739067647185676612932704208426763745044346525478640334213334781260765619196807673828368581956320976822880311312386917857635510997580743334648562717821543568498967264471606723317826471407341217438522444363173518924848834003430512271830003098213401332721013938772993691038281324976031741697929051216303910398035979473352620291326824021921460927035610343452927954680169638402116115067001029590674663907671715741597900871891751830738821220067976905804268500727633294599713367872244299080027788848766037165289258068337618480175740539175982196853032802213671350456341422645358110170615947155288291819266960623712616991742621968620480107192579432711188206713581051498824604262251864844912774844542301010865013437474018765402699141910347417218212608343698810656796869625676599814208016504425621342185736279596968978920362866591654121316266662341621681047186126212154969334537237057188815356323212305052561156293835749550175375081358501119525307837044914196437689653076432974782395122928179449829209266941649713196545548205648246191785713186131083855096859194847569645687351155135764626486597920600804058478725457126261785093826738345418068968565072638834568853718592765429731538068333352738001833268409037997964646321555414804614141580705743034507991660706080563038799323335012477347088379346937123682579758928701370932535186053371931092350154241352953120848633246484790415024436456277771963028096558637957255090320786703744173818047714517442643658269094562407451173349786141137043400105810249141553550082824968995112617035304655340923897374319516644716244101026065348994856882797824762836266014748780389347166906459689933742356894265019041518602445602868315632761024239875840267316581134098567154098957339293192983001226007248474370626052150268232645720600378164203448480854884965483327758540265533684377111355304605433651000633924314112533396083981384553479620874631719034134125491333578851626746737901247154606839578738912471701433416946726343353671043130319366127043662183742465707674854484732634731470540127886640778037956896624652771073854677650003952499528432080605443518760069950349001093557788906681177533368334900288022604425655022992384015568030802018338586985562926069721414136077001209304048063527486300006302710441153686213094873555478011157013359110659909547397199593733413768070669429220900478153172256764862091490738653685129237989837002972940993514082358932632747828758969393567771745250842079975847154102523531795657735815688224909932332519833585100392397128927771376112645309311938795613292029398826283611091260718633521729557193476882557570154979166875556316313725264072283371285162930514220087797986685576210499649946267149518264762057729909529394640234845228606977365612042659838959599175207066291995400154363406506844669528174157910144095255319378134418141329922128677743321479999471043552457723457947480058978208017860842226867643401691210923756223982130817158386608648575709464913293741116139322450853956692869996359605657902293675821274999513391072269285065122282073886759414095022213441113406919675425579999793969621227146386490120858028311113467478010878983493708547213354695820956831804271317917428368563830960562837760765242305024532604845695133807353165415006484444746953520325667479553209881621406331494539613187100523854491231759569364745997795256539194872933619631976247551494649516883479087364385564941848629506609981927254029629315748557329442274339962643241812075740261722822724145303477799129514909398335630218300902830837198688125570969467116949445816250867276941499923755601325218126062635569575269441217417140216680838550897654024543000610763619809821423982638738881503052054297017340398670608013214300428087795950805032781941394574184644338852945829540368373346752849279006155627465887342979847568673715287320474150708612829681507380313629022501975879959306817377273432581893577217474658118975519180917260938756588758116264540443225945356513819132553064970877561814481745513943234477703724129751554512879026007345876672107674989358680833083378620734800677472056053976846136263287675719253707613315628373593209465421966855724369316445066924392803577822954912355127596208057170023558386087770305054646785723096022208378142785412261669883208702915093569924692795007580774031197668323577049328726728367357898520881741871760771946521733621587557450461114178029316330947214755551226668199247278375597853108746644583112615557214599284393014070331961684969173170557660430272060034216239785746563182892095160732667282248615121610097107486721891739194092587742909728026111740632994809427523444589818578837985283078577979803712266090454190337386881698283766320613451611187016826974540504090854312549648262249099588705387320390968197324047285266091515642414475992824641609540859010253400817841894711958147497532658124782150273836348395158555692787147179983482673184828553192218111025856664609265093362283554327648719177037415830480436191247684782707861592897146884198792034339317065352973910977141853301102334980054402770388011169551345297588500511434198855976405288380501875354385934342951684536904656990216504782689305581216623452323198256815027742014190407457570726135645779823255043608431475647960519803907961669738263471059821617106969859124209709860694787032499098661615757446236395303796560572615373555132242069942004500897902101983203221207085534169127123995006690071312590094235160742657768826552579075456643733130929481757820942706787803013901674400934597262709007659053842855687284123982058532878396272216265919453949732658135052654344226508882787668778990510555980619434293853877105847409556651022258170048140588881201241755565880330028406213725449335979598105554970402397105436961294416209923856955215734610597874666334761549236942995066904072979762106560872400547748982421487599546388212515704434680331669776151891718869683970397968109133817461927647395148552955590924709996922373919461355650305507821294749862609866283237459811125183818878696115107291064136967684590596374454356499870237053995576966566343099616287025248059437566606795918763980946238552194184621758059333240145348893693437524630906702037451201859663340667524758248273515557741713664763874014506855815018401843858224592066087374950608421984813819670172754256846815949556882827543396962976671101061252633070894831121686547708172710600078885061289254477907753809531295236648755378123479340982730222753284250389155113998306786313386387314649939558893855989546871579408595191242305540743392904386079857198209179673534259155450828009135669761285586341820617287002695047282613743288053519823793746212895053345944408643245733891237007874938815153693171140689044912404786680194791355058130929358241367376628610288155061188929359427715040880140417170331672963134289983390174153320458254654918246223147625104036697474750862987898943225164849486669152698052994207925816820205217491625821131326106187604620389229781319119387974504633786037968192439133889855573721941831413425450315229342124276073179770266843630679508421518530397189495275051561289015187456575978832185460281314678040666225652190061569540642206997566818416859842982791850331826579199061601551343443931859003784898674521086873544443297083956260434393560495937346262446793898288687985578990694025519588098710369444718678705627782226946993189241763233996510752515940768811793424514896887729795321973343932102132290155472729462310756395658863647906525878672428396947141318026476024579555540921526438433555630168925286378774666739195051990619076098482835560454780466137791401335784237026738678330171965075572402632176771691701522044159875614267893276546832375093529318654525154687914868721077597800600206607791303221115041335544571430096617037908324911830512177293418880921751055755340543758824294399690531579780093970383903748247392561751785318091527255297602493506985735664771325011442583620581011355496970439941767496251724930911103068800165944485949832942746443997476498619567680671045489810400221234015213331420706454514366475678122402732029785986775506439814934595722259093539242669658424711340101609159534417350578173602861655610182352992776701039140671389051610761253452122766666020783443433178772590759328351664042656975688810692529408139181557041658798104500179080328671923741482162118373921573501526121166022509486183039920001299463118041070798353777918138717825275044844440630309858613800642280899718796727806361117799113748551917428280963425708504171393679724014912580775467811900180558544592382636668998467124765014644202147420266823160394776060594682741319846306475391450498745394220814585641909700723486392132114761319415961393139338495105317947961268396138093497162116864644618032421901717389858419330269559719930765680950468423487802586202785755917863462579989591679411683908175084103560376535292524845443749537916039114489176508317344717557881670256173195108033073760281739804123858721009095012484773701838647551358040098917217513012586971968355584493476265784993644980257534356521884881285506997949046600973264523019969546717284575059226155514961192508121315683840638517967374621236109591805716830802183802245078023013240940689476331315569650018417573197789711602815994081636968102489230625583477677725658132050306631559544155875519722782131523338413822771398021562680393048031787932564708128007312793970510965487166037529276884609610778610209920893798853695686460014348815579532152067105866378027404615617516151136422133223651568313191147569544086390681076481381372063870016785675215818654420624295947706653567545910628189222168822188709193400984999922359660229860552932612752638061581055889070077240016378923424798394443757856327492459821720733766239551832328238262715269875016085145773848840375572703773040873925162079391518552878947910173004465220137837559501794510225488165199068302549417010983589179605984719588552193916401519232840255969267512467464896999641315409461196616292991419236411955332181282051504444390017660893459534562483925224254618000280426743861845831288001540461115365380448051283079851202631640649251803472885323590921145688218674502269278603324936686744625658918365156314455743215350335883587807012936004264195012641878008129471595717152984664502194269701977324185893032304219176323135641818553773491085858408274921023964455990120527119164132527170144936391417868935538707659056616127871854182089242685310432500843278644447308243598417591754603330965189942439317837515063582531283077431040175430898617751966130809890174262034994277912319063632949641547698449149466486260133530958739102099980020547980555818679133619914897960171088369390631531360229333898451282875463725180538175195182613434047402650674771647983846433324558561466000494955891223198370035896963515110646416002726408315090809383389743374775315261131788996973625469271553829158821714007509742178385774793881615401902203350005491946103057880191783033525737971495105081732764927100505521131951747832999536099058162147022655537758751046086262278794990585973649041500399826629398706140119594837692571827356807475798868253909933269072947785463634427682882881863957739762539362807593686530012746723948093435168059317381005430348074911486448542681699289784753945451568924905644820667585632266696455586877896477308460387162977318897406295504029186722798288399828339300752889666937949799893374253005511511254170778024299436192992616224479347528891748756181885586760658812571144568686967589900016006796300147769576938475511406652958781499185381586656337682340016646082491305015053460559104154717227244735082383500061527937402020112630464106845792700891979585640363853248021018870790515298788973326067710109925750560690762601987197328776229323071301610243280781401099059287348154658909132363058810032125719855989812473484774052424786919980852429155168592077441397352452411456605591759040012870992478527956538549638752064418721263201079362659158120091212108605777325234607141954842250691728558200557248873778052559394135575459293288301656153866955327014650241804261536355945059534510499576994951551987824635247419858899415985687670660806518183032019948352362954953633022235425311902153856722224508553263354128725931767339380163535194706698198841096329141561599178617353467705402030049671668048352996547393966216999544094673454867888736204217541921613235707096891225749992415994824171144354526922926312230654719361968158749290373992859895185203132010742493287237473561109492875127795428222086858448190859607964036569088989241128492038407443881742014700581592959554297209456672538139070625304567908786266461306239769993963493409107317970219284277152338729965563269055924584435866143439993578138090310257398462791127723033845109988778769882645258163954458427612067861910210303019495955288929448282377010790076969704909678992001079133276272343045734801813297296629494601122081707135351810956646808969321866517895708067756745800299038775766720108196444403392013317854349907232288674655057523933217973312530722430583949291197980597478115397942025421184962786593920961013531033741136171676845113179939325925403147374409908887204168327673339835056180509957729275735094990192676218578406538895010246459342988595784955516740129623752094468529892988764409803954376913810351402484329561559792173830647170217202418263094303788432473650347784813991354262524126917906674663008539736318881874195337905406545237873409734698840376140811694606571694138900731277290724143525702543637703209450310506221827224542093065264561124750813896598778006688921611473596913197095001933827840078272429505074421845822705875613390574927626659032425451972659975545378231173668573266994947439325818527147845378241902244620920302857808321436919102417735745104077471973740811818845743212990653221650120315614331643149842917576029069687591060218797428750392591273183887128069970877007874156059169452714426079365872083998608390607791513605344979278623972865313273086384762002924733942139968349345075794807439264404804279247713110354459963641782971984719690302564969077762896928295619116105067559991859982887240217492029093996129791774257968012586472200641416274992088734775965142630685017513467341592053585701538867592357844032116427668050162762561785596383695839537013784904694244639155636580889362764540506633518194509836889219388760686416320875666331296534910386968265559821235395337404573886249512433243454747860377316858809849304228219570917855300430255893984419247262106653604482145128878274386205433342795914415930939271895911772618907249067610955680591994605936799795228726372230615504737803872050640041151295673797321678463532785136610718893667896755695801500499901662883932622001760965197462632719023262240139275072180328734264368984752110897357533450322728393085634839060818518652671410772484800946435765011223241216611191068874415441390721529396508423204940653762766296530446864501186836045918971053977152490495124403197465480428273475656234241295959208449569461546848627354796376503038797613910989335221299789258698369566554463751235817935772964673813735787042206799329342633688772667641106942808917503191233101835507077195658407541287320071868857911467068394336861289947988012385588080473779783029620868544343866571912286450021677204915069028667444089859360980180689706412884830361661343435567918949612104548347381025521873409920306669858734149837124989508155922408510343565531295252691349151811772197719725870192901420355861852328371408103976800158020270861389965172302853537443052784995525385099855543024824159377973184126153963888700244967999591721632937405292085963326894441490379187481647853107458149207190367471533672501913199561725148709380112886748950268543312769036614407673231140088639312728494656475078661420306235544847737970542441688406813804301284870980393318709474727565894693398668596139455659332962659316197113132486106404217175242328685901335381876297948595657085244075453934919610927540302094334773059593197656419558743046527964913894302284184772743448522337768486835166165258295917620326222066239452303025317697771117950300347022703605332678576470087568213658665604593011036591885358234110665619027966136361489608075589031407291335063437069256738625559563169889696390457159954145761393124690477468025127262128118421860296507038577803319324264844876569153115733346439737168885608691294219005322637213975518639241352965148737317561303809402123740532441098065989162131955511737952712864069573400500787955470676684598192496317540242331181789388865409625133325613214844286777503354615227585995519409566200029870698962061564449326019179035243308153009998822181845821101970376710212215223006777914764641007988177568937482182112962780214860209301886333761631747124358370580423661636052158062992338796759341741945688865317341983180636293394283338562848893137648057504827173804905751344744850422710363789189639346741549487249660575639651281145522305610914151378122353868063341381927642169861634534458230340471962645844472845877561387286900262011880110857860786583885172104220952117792282739325781911777792731433990251383636438893133224438447789749728756610853015345114176771440997321138263632971728376587125440180553699761151652029198375722054327749791408340823177728641597071773946303559706298880523097451929877226233130114492936779302242548323888656374334473055434580983280636127813309115189335774400223688601641395687611972223508200394643985782885956436279763333890754969855772319259357871952884156451132633523744295006694836522449517559838214855126115184612554173415700097906510550033485612928210748875570715490809928008479103644624793016880193667936058046144143292913063717381943344252494569485199982671647895757714306212548987906383835216634429468903583518846430705784692223264896619933580358142925123083920599728165184638085061990009616260196848552910419063568900650700214879669532018169464943490812895653016376807089786473644747272581418000350728386508024605224435704934019726686530132180449617058359834976930886109624964333337949975395439591454079412512121639281685657852214863931402588916105024987847418579050274535435455039983140812892496513050525911591969051174700179975308724143990033576942636611400316750993436635148071153273915679977951199047266756641367834665061374035662011039679975772922340669653966778267607428413393017873132585674995121460563142609011702336512831244582238592075946424907325939168500682270905227941125808794599344978346182512068618604824621164885046243855457197564695265768218953833622655529839450058003299234686872591311500236839751918760084735568516512964799667201680257619167569465832849657546160216638079336995923826691539289511294982589707156677925054990747939620158869805434292537135799527751510729554666283800064685982657812312497573853560496370508469981786628441075209724812432462898618065693861228070832069552182181095341209235083107214987935689196444990572603945060232625081702298516743393802856739794867675005950566392488621836575393405380096850387413574032598965237414678645671301377589549584202001864826054160487569357325981799761892802460044689050858699650642667409116463176935162356754990675045300633652200924183945134763174736832649210130394079357990611987484400203994899541034339434381505749210905573292221962119222965556302415279406498757264523578233711916151792340981007813419467420101237076084349786633185913502134449899952853440546818638577333333940404937649228838969525988537048493859334177738841148075876887423361441265949247157359003155217129281911765403439477343703443307641041921652515432018832748122934422136900720530495418100149299434474352973407926975633237832768933986024276723152175311392269669165546862491712484717265178544617914540462870349844425684066871299808998031067993369311377919554340909957413058464482297900145354470591953452552423102053404535143593891638160906283295964620435622855854366973705960597939103770430101915781470581908254503260037082093479896282639405983459317142646093101809799032438661165257850100058184783626319509494158909979430067464963029434232713298669732720882405334747081178266611677293150077130235570793235959144901902741334423673776168942337187303048810118276821451530707223730275947724108947448326043993880234672669462442450619119178663969099419978699483506229899566691276853731998119871371754181480795122599685502375358915383658334885585637753899181982143047814621789485001690703003227965397381738284488846145672718699394403759886023327221124652130466695789139100427676930894796139702179392869093867725485605256965852641558129145543778585399956681307041808551017527300916553017854529243709144246325009352523366518555019174501759103548010765484187045526530717425363778623884815179264075026525825500021948943995705402452672848877406323961840791017357158627182753723245142277513661922005358799609569613052255454457726137321121035816185607487135185614348057428045532527333724988046515082697111918006380866433801850122555656056280952943206161613722843548150690510039757140519772916555635387028936242421509053111105908586927701356822561852286131741990543481281788641084366910844255457487644816098830478011058955852119686290648194053097213907817092100326302690939537340388482544459394169712252372256905533973443484716846869382088706248843358603358401896585132522149301885173003313041222493671388372956079913593403307486556088889942582200711706818609775842225084639897406109814881630272727465046429197748232800319660794173584882039951995845861381324271381985309154008626875390757043604223588234871417508313944479356293885688292430292010778836372957476729155142010918663107932868147335945794793892981072005556509259171829232568353147664447098079547429354932741802692619517226919029830998509343275819612116252242590769432697002422656914586207650523466872336219258214749578587749390522511437732270672824768312447381601782426833551950341003998011680254692933042195328698921406965212292840114885546700203395086334975205285817606319615399835667621270833566764377092156834970556171535097356188690487448598786607804430015487129296571092592112150994637033082049278646115688543904693988338135166536447221529924578829162555781572564296098872949022798094913018534679891514809871590319431949758001321494621082421261795663224971738999677107723657103985773889251347929876070688851181146860525464952248676275620247828557348385781977646362492582484910954156100576296507440573519763803916662767874089370113066374949889702141398144730084443469200186496166434570795540251505784177241177203115674985107928453607669574043701315892324529190223359869363658672727126005693228453339322371540958505882905672795564860212498599981480716420278072355253635646979570839460035255833316930009290959311178077210809947122751452343773835881969843502794221984427706257463883260518124144128881797261321592534358142327474912967283149926764540213843091922980891568439968721265299114011868263821867828413472548629012467509872002990627289631412484300653927212913068346458367326461953037012746483679876286162375167264997696102086550088755948032001208056686051697652161153850625901535349622671534243150570731361789969621315370183891033802539242197828774264193978024628635340399855681385198240614247641504035524524729944480802991996752116860736783572821570305466952779004508307931668463383979016599591625841013104714422043863330334336490121994064080396151044287963458318990313910865682451661911176280247575571285801051144841981257685912836870162396172905987953523130485639502105751588517572163803489770690072064527998404506592883649029751466592451347479571737471444609881166210805358244068369314677998547535750185574321255835335691601138365018640715377035784651964646910110278331132639817516125359120976472724495430535597840606085639206707647578951409080347614967800057856442670270528051351185839705305699203854429182625368945479823314078532018605448258571106149348827009110624897998579185805034539706077575186112681908339235195588754765508047585858911212141966622921830693074061947092686679392390588398415368495949945512494386757022049973359069542170036506960881711897313335164891058053337148232015262166158439088520038662156342835568970681470281997727192988178559301428051761683554881581629860222414535192301925136806483185284255395275133884926393535123854896696128330150181572134803006625177757139384930941265978202343836176390604681617924677457925885130934448626799491384733547574187471265741467608101798025006319284214586701662577345099885592059245973750967750340391531965368936077783857055980292578013519476934870512331044839686133417262238971466447513438588380606992965545332268436542454976453177451639923047790557001974693338901629138039087003559913861575464095131041659309051283136457888854433931133292247210180677975356112463535016053570378741210795569038684219429535154655240799167298531562058109952905291198897311583364035110558120016467998461442351174414215980645183149892303826409725414266005134808221781201236044722669896870409968005037495834560623161733735336513844639449369404057074627976917410633739008885897780082200020915501226103813726272997742154360168291347956758073456250869066830980351760365716900902981386206904108325387901746641754710378233634741390483978620322784874581314906544058537354890383093807171267353756595166443089890977223426431067284451401579226424506243853725419866808909040404473002088602869690483418967151990819947982342404043633650201369098105685495415160353700860042867793797284213439806019376201488281370789057376303202232708707134941564993523542162497371124922068810536036699432541296119157472362952527785618495268562468831574806946951382081686938690577717283096324408796018221311294545470682361599857727270035466916857957232063300206682056098686077534126658371494270920888472150562587714867328899139302148302438527861962805536061027941580624696988098487760106075373614529394891867629978683698918531608390749079205845532605452173635092529633718658799908189039820564163734218678363843495118968501344902171687102656008829391679145516722643272054034744646233632803424250966003081019679083570214406327864012983086638158583388078853604035530926156176811504471847082317236481257466669155681866710420175184259755304499719608411951075119361395364210846427753832615813216404377668944681528887309099529040845079431622259191519191165102649570321913388239047895974628168239250508648474277157036878084878112354253743948653496284842561961466783422804567064738977982153618383930469621844579552895984125847519066488576092402845160095142879821586536937852153560109727270905454889120332551518362212244817068679401333381174662656233678401073812235139116900870404438400751141274657253378369416885846697701438066722689279924354622548773766651455404488585893702335769886210504354281655949338936596640764327714149738134610880254622220897265435729748977178680033861335170628697075333514101013327690929573644853002387482918516531007504165130689409390801517835782771429481234594034956807401875035574371110586504880611164433705138162747189190336998416668024014830429732744240388627462099597121358513448502221737030629061407228687551646988300826956537016329807341862738305149842780934670582386979213706753259952231608927106977524714084110187801555470196042533616644047259709572062777726643283499699315197933611046599927637071936670126080344775177988398570264256435411966116406455216771348745524117053067494816797380973559499538344827814330577889803733746082984282907702677597225058254967158013809399905148084208895029659591310422297241713078420252478271651690474696611792695625295310822851280041761932078273109587717243972946080037306270742352293308191201368693311013897516620320273996263309301596905329943726805830328343052423583093057556415207129155274184519797330470023977999156565823411215212716139667162030096151543140736917299707269637783648847453243368933425435124057262302008681711136308272257424926656447518817586281289738323042511294919020511457260054588019547143511872282479630818924836392289336130643926448541945740153569512359868750453932306355410600260965686159646012094976552210524154897235965313203653351464192705821485541552877795150195033294660569230783388770376081188736227945091377040018778618296616690890878968141870822517827603445894888877219578819770499449777202665447582131644009356027892376727802318975320930194319845165761562189133006283941168282599117756812699169279947523855271463369784740238202782859197927602145300382864282313214879949048967699938783322321939728516823881024499417630251600016628453501474216874496296644903761039949902154708771073423177332916452135907578270979734893653863469516505920952370623270407434632741945541908842204254290721643488673298013606664916831178562689917689593304328166953803691816901055823325792678696394162796229884050880149728236703936617686838688260861544578886199787113003417903744428623780384037439634721302923601265235100298168518380150346212398865046320377727669912457681643987924390746280953565745799560525643555852303055007869625874032036475007676738795801624466500845060128147126621569423849595535553002065897907082093645470927709311573653971260721642259744060134251048660924619397562397637261594195904025200772629317963955468792161373802922460664727655095198862677739310682936244173477558939484412013297559626424603698534786456303459325406215047141383468794928609514542516047914694142019912583511221684500462831383610983294928027455074574298151968631116760340548169600719114424631325896541303343870042605483044680316644694211270142719292249336504173566537159483921291778788576334604999521688713924253192531544069031769281286879388873031153469514168525165389649125215520306692721023959436154386949838055069306066403880342294802769463788993371302092014672971618247768501044808958171078367645027193033977102127629416324056757170981751985788866647789986038098455811448063120412528032420835559376074446678156548309647394244235352797942062300535124654358916199702172556758795320136536423805647420776649853614041926722110912500499172001479572090882124661767559018460909865382376534969002519755648700442969261992032248832448396794280265633186327672716530595534913151352820925000668744040806666525034537183812683585586826676697594526036997281328077920327545254419712599427503306256529687132413630324246051801490195445595987656814957896295919407070735878564216000982266776814675784301618257755932384689330744576222506095183803822855669493012359214759209832931605095468401466456660181302526698657471040073229296471797091796350770396198191670701870134380519002342816614248099487014738250883286646467770822053156359318855587437531509794715309201854854000323044882667349356951929048302338428311765520960185809068876919178737301607789634147718847751462789722652852824759204626301219761304441889422666821247302170300493057382029701681982773569307248372382867292891754137636550992670221573889178940643935369264984559711477363387225551460691816848769168256992563757327829516278580272399995148590066040526049378015261416931416771586052287978891901147384920197395851882939910702976772006004205468772322459224721784024800463887043465982536221017270706898757504609065235290193436388881072954153538331421366293690040303954653688052686318751581404929608922101295358375217076320859016307673733206600705378555520081987110027309718684445579493294295373421943350548703155688165266058866617726734854373581185258721755740113428421239627331257238303846464362990464758947892217428479576172869380469466122201324658056400998163773344425829362271207934465891327778582031481492671192219904132993011004477342695676345994902612537349753423790731860547457681947361369940746085629917373339903159066691765158556596646606665614967539585111727295821091889933172332546204646928212903033770105013914280318106704304731407890614233365616365074571702243384781815286651522816078832509189060957344584720476249677216933443941977227134773876267413222886276589950501113800961060063705843274090489816261661742844741213913889816018541063826941909276413049958683950828087552138793226603374310170650025359020956301691749455321551609411496697430336928983467602871640186782466805939216511273757930895568669727838248634042428043225887276329381279873496241929770994733417344181095462311012287827696317171714124260028296055799337919444905105339120064535277744833130550491961017927118881216048057979573918978432782828265225352125874221971156571120536244733728862111294217228093363206014080185146571296119214913929250296869980271498274755058976165657586160304371264963272339053245001613829343213221189430178338229159810253062341909474570964812163611331656932222840565754678383222686272215848428057364691907308896884360336843110508337761652089447051157531576560833609688105327793270648484416303696957464212448133387950778945597034143019319680993639003956354184455987704658231385928540536607787612885170749002877981379861232188910024951282317176456636616813904878486046027994193956054868156885988403895627752807835485920926636328226108187250772397017379760349187768645453579767600562875294051635252786190090904881631558298452607040596543137503585183325572141557501889631322159041816877602630175399268882642207926736122325960382705976705196281539330394788910053337992007891709925085485359133799606221162671282166508941861533576441917137562053501074428751041075690242801700409794437861865336235066846487861957255927646515377857621421918555354208629246856256199372348780435921544402743381021422117208271395750702127831914660836996314158528784006543480422160047085915195297430857463876160520357529233371312040561746080537972910389863593631153722700635235435148000665289650660728840501904606765377507449975813638120187103224635088402305101098915800245067135540117162276942975390356204729122426011035568068473223601460632241852928051125269741713941278432129619702117962348332296138180917548988673025040653757027163273337167458586473115728221227657168757558265655131543507340784578923889115601655191894910747931887568272004848727832231608484821471498551198476414394645798299337518448013204916598281329290668316461718859916952939860178452360276301467240814825875983051369222774853541689705628992369098810504497499684012527736582881382591903950295592530706556030030225558089439226685034803434557916289271077616597286511564924348562807953024613429438254142358164433019976545013524534622338259726127955452264500975311524062379657824074911617081815041613399672838051802361901969739942548169134717193469579313273387005571550679974984359722340664372144894445483905675265541707717862914964455299582768704783471984168272787366543649140397333400158177755237708064807017992665403135047148532676712046612438961896502376851293037622419144507922369512092789879977600141464113668413592480238253392509622715432150516472924189781737297950395504679198509166231553242318105120346212466938836074916787012524684690930617654919609439341908780917488188487278521630388758020454968726941512177859237948503798139894441772256671831980558043392456365760058667368640716848905291283302177259465654004856976946406157777441134454119684169218591476119175198385453514982810490589038294065227885198814330073474137119492880405409097741786799496156920557981701994360348295498711513458127729260772229023933701283004579498158586437047112400792998606244868355719316157021746588804485859629543052889652654885517099863871903250799928408919949901465968686952033305742786418764287972226719197332287313532838699263173424339950556625416752737885242889151725660291026086646889282694481543843003855127243662818453028767809417733508525801809541619592726405317680595038577372277711023343600733798326358474012700338534476698102604921582877372973811435558434620363561345936588952068966511188890752987786920936169228939792909900034360313114756567832599471104373977824636005167387129210441822534355295503473788223297030843993972134914194472282965078947246640431325998683091977914579245617922864375596708058891282377943674494750684146770975549493491846064352851715258242946762496054501633873249225757835090633614231827002407004454505160026175722513419799076871104812180589338159995120291288748465914707583313750043578285164319771443226830237965788052723388013748696693489732565577691297794845420844551704849204512197139683415698498099416257855986978030834165101727280725498016415175376376210769603524296560970310770937313444621088248642713367509642900136968637857503495881235044151882004389269302534816377440007811703028822748464128994469497189244467449872935433470999452990078183958829361430197419322507282174286633797633596419240997064617891533361555364380974722919999775726585028654815924727173604796898105306545115743800523053343254449989236804004074286963639704370576241393283205093763984936594942298905082740486324412624337130781841151437951924150403796611287587286641769338001146396920694283348344013564129924668543576178145438097714863517968389690852976334096687792073620984855241560148883937728809074455784969346539290625909328069435760552969546798140964575453931483559686399900813966884619044987249358101292065808615867966136963028017429610673291261561042298937474657957688651975998502418674794751986931759222864243134701535452133971638699297332245370349028911658478260189233873261183258411486233623355873057525067433029256569390189727837927244711748059138786326491599746873333466183741469347415307734147716313819759512999170772948386183074543949768439696048881942565623653031019750613734109891284482959781492041004495372084197665097049641425262810500930712631525675164215220174473753173566033709774165706282550849552504015241789457029958443565213167617409060585053818850886429092352182519427021918444530884470562041256632489640051307178896824839095728819224984253790526450679707852390544268653685403458271081648746415094556465817316917476445215074973088930893020593378993879750558970808040230405171278717075133613947078356547576718284737273933999816101714460647686018051997286386270409709081844214386137815189589677503543948968124084186971381610210631849289069158753471512874671073516157874270800116938156201742225225979794909401773963761074008420124687589764062491697264690313048169842053935801954006989851770765310098548843760646922906239027061564201366816955268523057802719715596901899848325414056774968953402194342574431875719679875543688285703082327661796924120306538580262393665681159544246323263902881316378521039802467860937252757033203124111996601671046945787776510948981001464752519330559015838013369187945703655062565919945447483273750745257847648133627806284823427330479613070174600118600756414695983529505475568089572791272941063669909379476874298896981765764671555142817590614407567608373200061834459637697533928889540826982355079978801693683469879154906754705650806672486346825077042595930838772336292465281554481704583977374580950470848089918688811819112130432828095534440388400772896977244933632634226011218870923274069159200559314874528864027522867057537181930281623070753646854491682882164273966659490342264365826589468644749257541494548205317699290342154947461174463629003764074406422954726903227955531578206782732385138111522793814508692389345214080354148264361725145305010284011783212723614384178877115732794765584436590070657521247754106215756716632635048547561977814485393977913076422990221267905356356396565732044763964058255144400477914613120951247909600898550621164652960634038587278462870574319288884889852507561866726741779286474203458331588139305388762566786238486858151428484388298804081642496608103169068150594879566974155814167002748677996418753396489476025266159848565802406369313006300316726557170875261961975046696335873017162456198708870492550290059871561835171705825825915804171043466897890957357506730182403162954163330863195980724521479246185228336636010684406746744430852856266461631509237653036583007390602326353245965530020945429716296441783548807080115278487550307542894816486289463910330222910511538784118783534248382504897511942397603862269162984649493570447607454786366269594795903663350564405874808124762357539794607406401841264256266088845373766710496974513371817339993234616867738648782575898044247558658024428181034721551843703818548877083587999726367692544211253049600628989048960594632826410617165477220627267436519115017583339043162804451496060790179561560135291350625310457263462528621900763343909414122543134434484829019937535863147097770096052595031068386254787975090896734965780010510061507966908666497936074303359106743709477982144779327219585027430757176538573287171020114721477338507807604007414283354495034013868670352503424838190549285467219498474647429726149528285840618261386641434708564736206760243869738989538972455454266289116840426194851348702294400983657497914570515665853187701230654807319662232902074285180476522928117310239307836539948256646620070216696125375394722085049040093396005997284283097841229960578502027825405729095306408379926746501745902485381897543912432020051030514684707832444825357143453731849055784866075473018258551354948055493426257477120591029649533571110202184954761347464832892544496339551532794520027493901613194053253128292713650254502191956708517381125837095813199570577100692285889006884553896034794127321331606705369502056516848306225170577021994623687922325651186379928662147725542623697465722691335023243333084962077012041110206460235186073414239791718879607811398057141847241324106338425087411669012125820328718975700839166867052873497799879803383741869174695707709946743192665871283010053729885924401749695773548848678668485596037837351531372882723907731434712701932757264095435747876516513725840642604452134330518839686590790082382707985359700484098152095308155233285427057899025038715328403713785793736432382904116120993625010827866672933486211447420658507858058838633490606424075716213388292887506884414173464128464430341945366659138093606819652332668160609238352258559040053688223592202000640915433656369601354411764203950616561964694077814126873057628005947640841133789216851658338812382541265654635827232681049444074196081346389812802179423119319517657377250699032938178474450897114440500794487048214851615858606091194197186749039298197014447614474835612735836404930019011281671346454599442091298439141022232776734012173235101240270988862315391135365491384269859815846570816647183428672997877772434936371407130242584057260789145669382992357305043783310568344005201492697221792014784927565082721308608533777351713923538779307929276441336349611537336513068589274139100444500328011298781209647852162050045973003919117436603833980092141296458729111131533055783264414970382009805142340781355208959480101884513624191765075068274704026743719793193608333925667866957485978508811489653350439851097224767377067470462944053273327381811220348769346384054585364992687224013115110539922461333545721802288174004588586615412081252066108079298066084929694809501249519060851826987859861031138072939581337538729815318794973355359914990222796325721008263101845387949442497614347925249862422560540056131956353894933415871995531989443592663711371421391132358456229894848620509284572710645558679739600614097087436570648903946794486407446178814527635567427364108004601852459125124541606622991603491769831035387651028211425134845306743887118440717718964909015566584494374910735692742544201838224461938482565707984302418131287124072267548121603398944365740671111617277387271106915483727884012154495691549687380929066909142226386638822735106080637440559324927909397950619303333927198476083618278428599710776880931504062151128041788500785288904166637491486363062304404375201091556716689804854541126855557471902384715322702651358339337451165858037804444963123851615604540583922729726423622003854419328472641313034420660369887775067231449925063087677475258629528691892003593065104633205099051294909145066160035291792624508444186428212689137838900912997254919891518794941031427805247731028630312455996945161400402987223583296114463969214328502990679545172100308979160633256578837383367794731612148777721357531289975672615773647817000980254201916755669920798476966899444074209058432983287909381998883882167988984170876288109480179360204846949620312160246559786700491398050531932882664007942694350762430074376859813588445580282842880130677598977359292171078438648408901045388145631416555500779670940518800121768033573093756000639634932039739662414869346013526829868953633668829849042922985903813295843448563643999306665263594473166683470055096032452978135572450743813141300280037892468860827512393688774098277375433385448728078261253969491759814588108427885067916004133515894425034895595097200231889867171629890347131227715193039944691162111299610948872776321601542809840633578833271372613838523673530161096489652475170941289767772161208910816087505921667200022505619889378861598603418152919973624763275617225227544453533685001294755569502738161790586676233383064003197857991903387265193875400768169103019873315836871133703473003477718077868542087836121347002265741741275839163927041998895810583624235537742767583171952643273039125990105813921854676075399131939126540681034209753120559815279385575551577300475480316414550664254153986561961718709100023798234901195394658532271335874060692633899777047402775143438954259803136192225947609400973502707142825331994134648705118388951246816793372566750859212964123971464513851572107157159451368513300297024597595187949946466678662016640051996520782895886507029436766942680010892449062596955232926292804564869762894284072658522280740097817836281878215810778867191963136312527230346319078255128119377911970108583645855163113344726528461319306706661774626182762759752846947182224898647525228021783915203942066422014629676170982445549825316526417673683081461300931273622481858364588923969750616511606359472142309565558657731635861011578543325227180687018226420978848278174796664060982686844216790591219555120329628937828399381350552908104043458831095637191171268956942592237214920051814578182451653712695235688539907339115611854280102111853009235865443202800706928038695937043816600176478411055822708919504705717724472366501583388517779596740048096521087356919225081280966835057410085805026830869189530369713378718828357665914654379562197346553723886746923885427289459129548443230694630281127067977949556814077052274668256126838372873593901245324090920688249291784279130593466542738396160592422851775506960803549162398341934384563508258573349733986445401164006089815233029450312146722779773163450077169418391290490067071882401084665340368025485855739698009741531634729455531078044526114814391152358615457941947980589710004907676710038605144120926307691819445923739846573786184198690021002870978325195951583487972994068088502737347659968355381252315612941671783984740225238497348504929563804692371689134646672634023021229069131296184375571672689390740546930837250088177352077306219607557446664679158781518068278549522828258834437099618056381299237752151239213217547964799575511737359098250425267908867278569663345386734683875228713546406005392838264408707566970672429725291000407445815434130552151089804669917418279892312641533393351167881662916229181544671912275752352204277190724424718333159180932881327796526974676170067719245764058920969469610423651446622368010864731860309351574510148744838296494466405781142680890942187263817941555873043370415286361084981541071361521079956064050166558626870280300635702054315732603093686617975151945802915187349737898890218180568897497438627674125859630064582784347400848984955567967564544245848001201526678587169582094693167335427352541672808923406867255651615960582921749487805504238839455059812372785509755928946725017041871707313687282953739025884085106296250443654984480484092795935084246245807524036730522471178923685230604371408413911144866306268434150261043385399909348793674689351985104098705983251083087403945168179629576866314036374610605093189023641592589133059687425912686607493613055220889024299064099966487780896592663020371316754422966422456064616015200267131680998212232599043242294639754017891750114631023726309295074339950402964481990678278643493392397243763954739746137365108641916465468978579831174413216082708398360584092864262123362288104028607781064353012332755676815162503708966260189169495737875192670125597422634314661820258329434098446321756667316511346948632211592073808517633217762753751636762399708666441835079098619415207016089267970936487553510902550401255507219740533998511372091591623646580213631261360033708667591400781500850761042827840010411392726739191905631487823712330533993071782760326561821910478181508561812062068618525408095293348272729562098981265506082886920840819447743259855111826280946879690262698362040242253955794255493067557281660088380052726003022289530067599560466873740248618268290705540119573748276052735111979000205529105151501548787418006125206626730427019059584797431922884180870633645498908863442725113900459207588075401839995519846199401465837184604381539970231917419487250249533883056932584584054628512615838831221352762528730007817524774659656786229071051326027343379504904077914789553376884529485573522129239623077481347371194351978063149141107494128513667193399363999735243467692080033003043595552127009277695190870939325037630589637255281863284438613223652148920227257816127568547980264905442500176575794689732834857396387436054826589507864753762677457489417341512126657432538882308435284428379065474937153791532013261480285347845478904618900845874874885764392034844810608792541964858008839664454896538984364857663622839529197820987039828373840690210008720369489441445718622291656226033505715668777545481242650676056798488668182401157332591250582023442990339021350934881640363155932131630459668645847477419801351221708413293559808033828498191605595550401019642975100016471270480117972089493708030616295365976090313510271246945169267125662629565147097613050834549321601847588111000607046535881299231190966855755304031964253204824009136212463638273072938774379946056879865979904838197584223140017921741652693670615013779459081616232557301616915072704697697714492712996647460468794348356992343042065299468952468421787827946187701726738219868595350557375837207375372737684881161087902881505266220583218528640629035754045144554424317750759054999057258149244552611587684602354747319384645566152205930083600659234089319821973963700626161334095804048516116660190450068975473307523851959613886759937044558649927736606440964489322882775031312037363589654712695438438752568212110435464457130930948292623992467601594953568676620371128146044067529530082899734354255122961764971252008652658631836255184152402656673592416186091730121973713887683526089074877617148339863050837183751270014107367747937432894415515400858921706967384066939439082053555196666670341420691430494824888741571084432332258117257301245798396443311358036665290424474637893691997092719472555765089475901201720247484437085291667939965293800853955814018426791480599076387623703526095260878750599612665267998524255183053712903937861678017369621163774854447626112998336453398371520913307448504437541862858392317350038543202370189554863956889324385323513189585085998531046624303420573377601193619762088107438231663185527423780017687183640254588143100641823154942649152543212291610880321722164829760128011872071129823658169107917562617773996946986615279853128238167477437227918327517045125981026193232708994417115230150973193533647268363931635857302889379528428025577012379330257654284542528727603963488920562497815842357401657971299053276458073372663086052815119171726395920751691706872949981301627327460089344719412961348455028457402805430350707206697368551028572672626836451103422534247410056257118175995341787755258137622495234764903701769900652514537053084248133319770516476782251592292202647781419201661870118363757374026165866180751795308113032724333186729094770641896451638921434002154191319196254206976871146161277440403824263734651701737397489474420803843688270787340459929281931854675965818756390157044915645572725930883118192587839100241562210206114865806024003062656377250266911417435695841007708092848331122392394541396422964676284442052301168767836561430430041891234568386226691905546425727303398294880361032105169625027448113818216689938956009659209503481692746317757388122781755899558914418373941317328274303428667092005028275886487859025672360227775839429008110714150810071615326533270193996013400287054118137332405615215937915973355656187367526188289445944405543493861551442000528402442556039872278288976977303280088749835408630786793406229324308795922234607018816112039798299240052498147622452367581365852322204474784576740399119654593487895311262613949657459041807567748440883695841012700739558311416161024526086815030379037422757880409813733859038359920602182048902207357236623857388131547620671729809504462490100954703604843592522104689966351218527322008264475594671828075600452806088278088239166827447417743561521328943754538576760727193922807524456936203209344345745881749072467614230025398661259556876570003239859228984759884595708467757591740112688847485294775736041775997540430825383797852387884510569563986344238140155292718645274861502901982042793377331798241425309017627315515730324805143112463472913165052087257625064139758619747079521926190764483148125299801091048123279464277646115456126398321758696913076494190703590574436157474573245133525235669677406651163333961628598454094646905614149121117093160380289408518169326371075009477667609942867980021108714622424300907878936320852246456500611695981824588702757609099714856315454043833381736257251025645272726942264417482196288370123681951594880794287606109973737521440833551316785283070172530024906652557629524431040992169290000298719450556074787212932257124828183247178844470675010297399063908232387947753464063535732619041709787381634000081642402143093680187274071562730239311966290323950247856102140773497958081757290759120253347835043528176537900296424419101690744496782044735545390152020546159133815575382800258648062024066876866163060126648063686615199079805305257219998130793659822165457878219705268411013293218817496071000577064526620409379015029019916789743996993167637866446093871290603827832438140101545400396907598020673980284377795796743044224438561055549367828478948313055586389766419551100751829973079104560209595204756701065501641926246193467254326213224216916508257084070528986951357002633489356901888934819245667903578712653924866953457037043338337320955851792345111835678574024466731952771242746950167590535933658758540654183792628632396864058185443273370261975292690377839136183730775350293724319056147446790886729819340138718165665693088452408166887617114340140726326884380288978475528309688262311867673918355841765365218798100847922582333361805148380728542196555686331683464490690033449376562982471988946290107074357644323034692170804241186743578859227586283517041658115990128156803126996925009486206435493059090006846700867709459925995949419006095453083666403066484122784019416697478877615099309379144336495786413348460507350564809874156907350017416479787434501035692345626900300935194149765526558668821149246047572847812661942471561305765667760122952020340024824322266405556413723456735162632234509603365284783854942333796719178553404088391478954753413727139382911767930833348439528798905284979749093053554820610775739596844030167582720354620644800415553233085132779596441634502184381222914018537642003033798411062492456854595725883295732037395301635524056482346006853728878582554755831358457487679961143262100052266926687439515949089168108637953434958852918351446240529603763250157610390084072247779470947082731139539190096656860306380737717395685558835088814509317384937052149346440116013186593094623661376036089760099639725034514144573948655297670116243834060687483140954539151780713227596440563684443898803395976703333281363122698441144323408963466409190670754361727367171195402456180837514501798344488834945985981375572404650416011044923485175141368304821739458359906347904060973376583799630598620583953378142327167187537882760381726488105097531265674697860882574822041541096287446365867066540871563586507225128485313891746686219313815973445630631862569253619653540664419413507693169292787748242064993746160080462499384062281124240837411780947702363382648208031310545941321340508105301581077182019760327234082672633030946914714015378658228007160574626828526891024807470327103364563282155075236837338887024120334567825684033601021310815408387761484027305728171711110065181853220097688389237211327351027026266853886873601425512142749187997200495235838655664145750828340759647222418255594635617084526960515268804680355726613024082096817368570099006810307116518554347028728980780713780967770703002017730689104310960904454406270571793864375347557194669433004421036589749585438313677556382833973578421689642078692331865609101333214146395708022208339325137056662233851333979458153823375991193528943778199046528576865752704956118510722966381794797186675197607322771718337372470260990511008334297385643871723256361610285181376405810694425710674340810218747156338697541881376618760384851924710380334769854152796520142395643430160919863858829966048817891070427244796587322249154828734218362553315383012576398348509134069650697246159534860705051927997883418031296350269149527583129969025462886881109019367876209110070299220198926936375923300621346025293081222188557527882728581461189284749175714327907473913495099356224763759019468620002137300273127917202823742647758697790731103072345895276698757696225384600144801363044905333829784425286496817251594964038032343751901180946646706047880865906370615064213612063196085878297104765760067646707781131363663032767542435819936224944241691923062008169246036485164647317370638359525247206349198097326118640479555390645283922709109733227671422675821693615667739323416650125849933083996482823958884023473749581087904128910078548135031436215481065178211393718253624406851236133083771709303972689699537920856319073718371027992057048008898936679617823117944237834125450342013369926329096816970450462737671859816462466272422334140398414894033862692392556671346460319127709523074849012835308615463867409268674237773282485388410066695171058967164687916698325244443141108763570306017695089514607077624374001486996197626612690322755442806023778075272523705423332211274648071297410601013254693677805054032797782919303415476398632328504971301181216357125726933266221885678680803459695552110522563177785658532900079484455459370941371628945959939391569643005576209936402073925551863389614801360861375234731336213544543765857225463907090435779605448256217386370106910107097050184199087408964882924710103220833190459308917831173235501537340951310172438680414436733244676412051874778542691450779864128525321501904850228778373261722529252718610171433486785608192009729922425327877802708791658757827523151986851273450411160801554077663927288441704404480402366623921104279869173831170810650289329831532275797111060652622277315858117778126183704434516686201704499192985545834720311557622378521298557492580943369851238176655350829114800426306053049997672029944939328894708079451439270116025573204780455315462694056765067636879866964789786685201419915213921116438189694826125899154062092122093179527777476665647523639925558821537447138298360694906457502710065921291988475800390545303744555217361811347424982287280499672622626951330976569470528305567647739019751105144530452370386016214001065642316171527033441816248400685466960855181093075482607960502273599317777596710648742421459684470871679436163062213694063677359432731281833236678859445190090931359408726904261215695357899433017963840196027298684021735818711397377139115428081114198464105099553494220025412989331595331041100883674182002293449765576644005178393584370898567537672512570809607220638424906841157768386384871869557204835355422988473592933408483429350123215809688582146449489447291266522364388829282611659675902220193216355813786937499519362825132488981840516237222822593151560062965058424547802006562694087632683915322183068231838025509327183216898264170149854837265090356222893489602790944046635473521250211440346048030576363900918579398482436372261498813396348462407398094548921901915802997760404112923443734986121132460816737338123576062826463041697786421044166374300449114506389945767287325225790699376404283597155142637185020093268428706036041805322381434826329956389983447497538301400534733952234246485494812220011122764517590976807346539414899998923540638875041974713146243132693680061441675496377651852160439035871241360007040256104044569894692716577458291054665061247026994194748636168400682329754707822574797357204488117289080160866892875274624637151858901203679146187928259647451120981422942494425885523592835084894917527280953921900936057624143235087246562392055615021010530963652872477955882270820990715679408610528651108963979205531552526838902711414216530019350803131430184460504196737814082230444264824267540324982222367115765082275662284203486389563187962056063511550434425285198145252352623941849686369464722904348030958790345930003331256138995259489603168272948717868795730822041134679498952782458942703063241369497443057287140085893421079877161150185811082972358733105081523498289822996115381945055961219152140117979397876735006791740966495696000456108057473095195447275302571595250948964996598530339955950057795385495864152356536815491947093699480636472030359779329470048326068127709523511661373129225834948749270338485817715813424144872524529845121639280928808909158813406357227774625890528715935916766488096341199065469709686121645104470453175002342795309487626968625026142949857851774735914153350724892800426805922898587928207001017787179293193707059949599478194593802285816012170184919266561086741168127438002522476503283368374334863057438157793251819580966130325395616654716324206420828094366354442829152139588199619068496662792070260762330920342815012280233720984294398057431874207125071223026708528497273361953717270236245569061750941667039686766196939849361886376783090661077443857290084387286435521670692645698613899180030781528182115276552275248225179391766134570705476586536767177020596527226029494982066285157152029851353491896888612115229195352398850395170139538627704138531930775504629059009462963104471719361297804568361936336580655329883762248014619775799384094411810826731937771891426863441235758042941575458094920587370931352233927857938237949037193386676676146213544181782359856308523114594920236212164378303489329290349597227773098129495569201722116430837749733822339176889525171377826348304758160288473517432021308387938400185073407589603668375806448765863894036486386392801095476280061574678185422604269426971474451717822359013987555813273653846313541036674048809659289899006767453593067479332786932370463158594008961539950089076222955785444748737650181891407852242429964351697237579421987751555018402777261701481909177630133524661274812036390836762029629252259325211442290987545521227997164742410754601345120485201302693691192625055234296884532920726160191337242843787639711486617511579085579604936479270381820327538047828080748246554783782360246996099634680523962832211045244366219532542905668172022156555508480611779501135441903060125225385806178922019081848744013591052629801458240974056516076359790951290080251594332686914447078204485660113828985603733483671585901657843419360085099460949702100462824996232441106572401304212849747184158146155707846443599983355652006093411573474715199395382704806410924212194777021827036451315451647255107577859628189286391829250453216321146560108882935320253654890953769381495432469954094546940999791012353198590681767929746384672655468606187471753065975200523536359353057592887631923124712284197009776670785101468669965857270346132581851913943902174722953181121842463913869327280831120769216062688825358109670999929087080167319457643460499490902406619578979685742297501221357842617404106145947253891823878284350626974754441411769310782958102309589860682924775351635712618088404486853839887009958535930304170051984320562355616924416896679200838905423325271867388115601805465925056975969154354275635870508017394743246309730552127448917052343807403472052530137385428119737231949169865432324496551285304048627783090599499940078949787569853696740779096761982877864505071249178177175860113773306333953430283698370990010096993234652839829080296819844334047333036291816318941696137546127936582895128099144590770283209446203472987294478839410513286160170730380983034998613928098918892333074561722894810445937381538975383897043483588666704715266638860412498406545017167367576156086523604582152029159323792305747922367648630205442490326482932326676523156587449220380794565410638944050175287043736184728545266972719706030262434448913333965780299566174853737991787757275841845774421407079983549686959637979273126224496444592989474958489724173053021561935853123030997702467169245892660877762988625154130948572956597527853045295541526351970670869093127293724287238230511922026754112923532287212521134520316429339699149260006362936386400841666967757599880260714044523500707691995043236492004995571303164276596557583253728276409602396565669330825641792040714969344022013552041871227592390074849474432812490230299099952580294931772632424068512349848698602995666700667346299546732238141627825466156827748672156517081264357329468584715807872216657206590094241308503848412024329005132675282970405936613922917857848579421318800013648666343822201489783564624619868518469363834372737677296724577201926024960050699042191805759258358632742809249484242414680082119513882512810029559102869041953282941019936805804720279192505280056665982932635120354607370301618325479656753853205319008804089565894868566871516207995079774001009311364484140470759688187834847891329923873556015583075062589395088015615985106958813672233884334738930259253830491508589238431643405862427831767259838231476530592563804018713754130526812914201160610746282283583884488858811608529095403700271134293233807867182689500126708481432575064602148561362504776980828358589831310380471464709620111072980391604354231266460822004245004262959811375059960469587003131568552864533475554028328138379587895538222604224314978959761199703105268954294501793398700607536141723066148849648016211864888430755669454592387749312331062847723757023026158963011911304117505951216750935097446216822278860486166728529143953238901564416685388606501047989484124428534295389475008640622440495255249450910980703339690025460225835072764414591412328062231772518742967745539918737830490348015272105128382394590134898332672592444317420418329429968122828783723628107200416692180120110209129215244413471559986742251251217251513085540332043546834146688462953411213891124391599757313825992846517388386000337774984040271955486097630116282278535147814147379390606423844725222533390978135852667885045061087014547552698291800451868491417132582654715910370945576790389009063958579298739565185979466780517554016633772404324160156934936305349452931267030860803396260292608295392118366912754974613281790501025992112642163493358036358084238237141457846371502454816292010175881504666956937942878052476731185946021161278432179324787073415983427710357833883435902909346341156798040928880075568407994752301177336677585971258240862812123523102552259489115634831845729317707466272632633122289477127648357964481039122325721852210765207702823737991475781962991236675189836525603092697069874468937932698444353146464574653552875230957732979733515249280171050745563851531177109172675625596032847673519876929909208033238402237467917834089869360961326503381603995527857512807040104245210627169531036103394490875480716826398949002289200735380470886052669261578702138272593267009561253949860373422129439031460768305728235746321931461896199764994586816443901450129706189391449469966248482449932771034375757832678828185453322254388548945629292347082632924228471853030391874892855875248083612397304831279962147592940615214266469564076638162135270740213664891754688100321679077141287740935887465760288854258410749946498398974579948895041790897640297073616676902705670097803919521328948935364292885444807754869025791064389924360352407398550938206476448726267878257708657464055716876874456918637383673407555389334522081872558635813492342729609925284074527104873080488229551151903769151348740218994491865713318972698361523234855274003712997939430743556831026759073615654641463889246859307138495020727638644224549225968275721747423010395676632587224032616507637966711840189497370267899208299104322179266342407297855313735080379057402799184596908295205029763381528203198554823725500086761097485140673563267935723980751368552463773136023915365393357043234381317783193604912397415955962599035822284197547960576159935460091681685862163449169442162706892157903879281739836337675305514915672106246021778269256629500635482598898716260964633945785251328462549106189632332304450679044634590365582934430565156622215240401933658259667036138764289479707466409614235631732538736402433668863794893794878251152578292427325479996143580645612355193435221828232376142370536514341281937161661811123684282080151268147226326878027013943530913904820339029731875188126000545881288324728381883880729693022887889118033388567478618543270797157427002151106700575580784727907388431048359298093414541669532582714893754570895138092032413461200029940470776855359177970364017699563348726932958353442925981781245682976870505005161397414268835181450203814706200373075914265319641042998690350869433560673742651238497597449700884655126215778422443415867005746386557291405141669402709351932450943264443163800625653105777055850302282538780040150525120094823782418380244208724300222802590291727343203461527255521928193822595726624043363752098001966602690464842624285423014978720473223420168276359807467432375198171222765272286104529141661037125002625628180689925231952934942812350911273719414446407204334832886057882006356638286822003684185983773291733984500160723438802156104028258655106386710445908216789272653544952278668562942470437714789941558765640729641398709563931827380207523973226756312311613856733241482226367524443009446840486041509512915095122014184014053560135244454925124572148586464750446051331039025712328770471296278783946716977402898774445870873259519670821604956438287801935573392023585849748710887337634820900443605343486639525110060204596788934520609725375243887266300580255842596213976289552019981837892470136686834044483951562665983576038711419306605273130553537275848481676810652776236580420655833225814584932234110241490620885349258419455967145234578196498389084004659416913840122728296267927785800720490519367598773668528599286662184790623793361141034477774944723336622726326740859118776220401267248549336020098715559270973903976404454051232524918202529479012375434786349721341038282205633632299984330891875127447290795207224054136478531825061937528981100860009462385415314728484344667170519809944302592683982948012553134699218034414050513717417840024163039662839228645117654882812462720998070463359360029921676947233525393910153300625072416009257797193638585768864973829052716281546958596572886341445784185427167974857194619381632831719845302084540646852957482195569916086207210944903662986137059163269762452390320803078492126885641431453567596339947602939756825217527699149898514450721283409067720598979616338332335819834256642970364662990601700451825833595656114083829672971175603173643789772451881542847656897640360311595488128661319126464742757264575926044472310756538471521409356700750630685399512312563194635809953298928792623624477643576996161764186272842917920387532196175579351757374742240393724406750359670765136877101756014397906365273775507621045405714136204226197639610239885140867369347503834261235525013114604600890573380000740531615654422436745288451653692293858520125815696786889496284927054364178383012105717258110755373754555921659461696696120088265110701446958831141563695879954443896905388908008513778542777930921508460021800156723271860675226359235563194397447388717929033890927129775834945596296378685361124618701202220232288297936067302067344130798300566804959531129498778796621379906185431270075738143045700844826781425637135964168785192867087467021373318364005552121229897476082126087810529897342031050303637542869023138293067405870628115856015524185226026435155311920311613301189479648037074379443534795256645803696815945224734010733940708917240570389275282672341283665439591253632384423166336977151986174925501370674669161039091422377221331197624254024370350912027908426202079319527163745673405100817355148008754567728722464839744675022270973841457145990692578214425616047931168322572691075815840779546950657735738278477268220099031244878525360496862539703689400653952639423288831264838204816655847744029706933486432607996412089866866041280237589006747169867795395230109840267764224386222635196524909520967113892896971536542720018110904431637725373434043423847159415321654488087208305847746028475641874219671136504571885792778543659319623278812476328032855704903271533955839839366275801021572133744622986232427468932096649075259652644387801540438453091111013702574167968954406488160948626308552434620097568296324003809816804670661570272927038796898914443440433463951596141268559178683738653361208569922748498262859802126584629873336945296588523537247102452532596079873805654820640328056127096097361485283843713919939472467703141904590788331673422216412257347306035955359452369480555680984331072979499426856350154133331545607714665115963120677735784689089068370812163964999504949204336519901310805104957190129684979893060661652774558981801150508031700378955400200223762460155716090687243499297321217690671543089885386141169048526221726361637982779052069947594984378218785816378196422649239499738459047505243174860463265552641810501223929630056313520234557091802023431112347313572912939875491960603978385699959844142801332352670155088485382023416233689175473480831100169440236071698872491889815287863987778262220268654817607185318043048690780918982050295394879842556679290552093377458516443260246148087345725460589386088923040261983555302378624399106099277564506149096922711144641323845016069192508747495946618329978529107477458892851492657883664924968742698133789416810907091335979067666495045565348810602164865675610864888441123767475394622485292941107561679268442513488296975682503396957349715833662860659723246543699458481205761678991616227694021561167130482537513327462788458715124808987431728985511473664882458526807580211111935412682451770010517241553795205309683089174906834424051049328898790871929741490773261567098831659545345765239166347225410553470635983437050386466566410235566847589477066694965513322278684890871331113256449406813346534459769512282844686139463995029164937233288021167359512088859912990416723947011183580575032017673500542759883290000212677783964644952064358094313120498905975617103865445434042100213719482263994669864387522028908540826148936330034413711394715647315981228047094249845146885759911701376106104067870594574029548847343157375371952312380524077264426371766291509242898620609748646352904606366817326094480597180690925123764625863177860212023517473984284617940927659488230814639485208453080795583289281875867455233690515740653793405754308516952003564521477650366863851146617787118133250693473563984050469236635797227620070043300347921588365855272824453353915026736895843369309055159400432803900583941143409752365249859384893794198099682680126359365900674420416250431084956282221316461043626740138371111174302661199413496294421421275123230785024806844149436625866029705930752568725590054702835606857091813592546610454609378517851841240618173081031075462537054080277517265458035882970559804678474619723959487847028367172146981615785351144838204011816231765357526648405986239935404975713096770908145137712348261591075412536272911696349210900261199634258485040701386600828927891684011623975681774889340006446009351124365008717499098268682778953988280193830128040601355761055712527562152877676692062471974774408358664269188529743659332170027610873374495593601469650559196693861390645143351991836094160770918546766381805856192313494922571566133060909275313564389100587389889951948572545846096417552645478857138463735769908601013135636520540934269944891498563850972166712635527062325830632146929707328096042842511847619736996250366527945280747556066220754382767108652572495897161207802290908893763022722624345722409110565540403084877990680213909092202937521375464278957872877821913721497635915731726300245576885753127754435235807873468987968444557079180658632198358653190685812564227341368451100887862742684644234664895258924000521979604780964124946973750823506623319115071204459322932274244094636202409671152547745322977017003880122578821390075051325342478312062304156043103670524381468182481535007270568211723692540932769149021963695809146334202628527133724030013995647357511167853693582264736494187227032166316510382908899973189412376156536245714290928971093933472010112671739003130156713785642134848229672205410384254780400231179118774304912853097281720869927614305584670858737879099128441837618043432440821943488867572714128218217891559849538854097774601359226017194008542633196547934341919144490319174497158438209901635430847530597851261937533838878376174268807901584953915668104360770862120168802528302852542300836874499746086675942437927155321740416363807395888304325934346823096017882982859511536245247677503093034142862470336879972213363826911451057708606996508917349504718852559567116131947768692902453201035974375539652710512209645185336066663191605201044287062866982872820023754686930683781665858714681066513795475878426800483179665903988085196732870554305792018197327308206262252856091125995433631157384370120812882452868102517517165138707160481009305988228813197030677862040371341620399941355005757401186933997246558514598393638480050995841407100495041425729306334209525040217141364357113421963855559371429761064329183165112232372893546809284003221025963216224841165207897134916479793542280067534666146551102840405248198736885338601520422031697714148563008496566031338292504709048631845205063035274516190260574625961520272845595993796232598464913492847870399617784396751624647805216939564607369659654918223260192468792230577694699870014544587579766685832705394519165111499418202913833580949805772219642331451227895360763261154921518229996462332648363043484661137420385945081369706035033172255398640459904132679436452227412597787188868695511610885254681328614558224012249231524940910404620079023312103272286744550310208990066513485374301354796685206219551470224546479971084484035631157656051737334830937815910508118330848162429636031172671087206296395260410285867044683091622727872960629231398904578008086167129536014823950091741570748356296395771291079476606439793272072824806727015951368264280616927897759457225663324292095258578407831043493846870294036732035619759106730743902413120137033799719904781055369993928389840352718313381158981931961729626351099704617454851622835227454118094558587077345585947544839064720280073428118648229472925252097142697035550813375711017859722151110051230254701963804980969870486928693510517582062182477856656211305382096400644651943213345454730463822275320858246279062943853319908605755169012919284804605925809376207460921723074532174210216569162336348393748907075715305169622768960400107327437199539843215621698657802101614957389685401580730014323525990186572457155370165384666736242512503111196804822625532384344848771749803722967269144325899905883885272062092571921803327347909801222082544919344151748155137831155737704753635773626374586762630578959011843786840835504021855993179862165003632104630452059726743150942495202456382289830305079139961227308498352136098313288817168483334747181267095745264015593227201561996931081532389014707319371250956379597829177704633421322335644221924469970333566319356795542882989775967535422575937313530053558298103613671046846303880992705640831109678784529772645864212161458668127894136421004893016202151434192024329506196941654828111448229135586812135653140738521456701122670213982052216366653381358113769934704070612032766546444101918391040976338655687058858044709336861260387885988768608924102540905110137189925899345127273069190752487136644266697877730756337802354835263017982433995694480542873921275679125933581750921400416547276841769422304863045250136404673853136292824645798001554992863208049250427196013785752104487993120538424873431105370669570942433897458552252906006520988669773973432164167908708982875061868872269579760654520232129710123924582543523494513745936741865010297794866305288807866771484279517457856984953886432407065755258554181743434711123395825385666927822836881268438146191774924216802005591253444770250970234921230912792744694963030741759236500623824545201435983573674167462082702933231212293038945776604216831029272918245638979348851538464864527638192929692129155034753619444170836907905673539063935797672412835285317669701175731472517840735556976546246028199817708710896814367894409181244222203557898837932364604555637943480129635021929049192400613704815649902363632194509691293916095764398168984903831947694095263505313340266801025583652251724207754190859934002312672353424518059750916887308022983729032081306359199859245364180766801223416657742788825529421393665832510129605931748125303052513212688085236144396225460575605526962368502692831451788266399929438373963967360402757919338679985117992782377479007042688072947270582874266940621688092474215934788547180594814990275338226998169957974737874786880232963753444244432496261953661931514677497406723396902172455295885479077341568407400348761966035360191646653698175347115936782549300272918290196731614852460725976393071761708641652867577577741456373041160403735425789360223396614636647928592628910807922745257215156317093452750460375464593148483442880951442612414281414883993403579581563140878251777318677961726464706086533296634023729632073889219265675701822910267176047455044501503646607899690969675053300405707924504686107630567710684671609190786840720978393712361994819608191464883233737847046379393228731651863336721532035217303764660677421264635345944755561473859165512642831942187243165206314383719164691815432836550952993765380167813161191726906340475228024815990440386706665446341955339399556878203954380603925531836653019837727446616369481186914928537488880879865404873128031075851264704953990533798717898715522442077753770527558131434938839710916214145417026107831894282125033710372637918002647354500872817096396051719546359953816080926134574943915983062777167829188379391316501033464594962406920986551128170511728360958784195399169029270056263233516330561449072795962770429700026252219805810370383763223384245830674837780311210169209307433254157626197079331173137508488813347085793905669092735136415542515455444208179883979602998029115457223207337734464499511943242777673508441321707703130410208739744997968745542257413326602446506618764152174104406670684925079382474323672059136253518539417665722449535324165518741205765663302794800420702599490879126265037387294741858943610905336680662170122456801836493601131191519829277293091473579740745858349485281754133479974821426044447014945991459462584098580601499580314399100207933811153680610536301056114812451368592119154696573646070053001219433579150767343986143128643008862459838366222014795186571859820246052584392351793099281998609913162580875955533376343394227912668059659233813558922287229325743835882742614743874434464572119486679481602200059494331814102969001278785665633967150288479461758704463418584036209948768323447263172720139755709443885983837717225385282601135811175351141767667028753090446174764130838703478920248841480691385404823520650684257730829214178392384322526610652904153588335571541025910811308985009522965043201965699293895372579245108403410248865537867946722702919506990475922914308195845077609137509766171241980881296877675874946520603217808203384122469037008574881202715860898998905561878500706512859288129856416211943609066757008761282110715246511039020914916438392463900562330124968964683290465714923154351986723011770417340547068011577824998889829922716526872065149107823960886589322270094004863735169354583971221207264698241630556641246164277830362458736043941952618989255798575794927481465965630703042583841809987829970719725456639856565631204637880134014798441225938713273481889768439211762300803807785275311218998900193019975385058731299586046971831634319126729636859377635537786704181971433143169260265289951651532976769982762740091390756406273736789118893637322716374582940020982938729007006172826975250727146707571211593080509995555501226751543241014131037752074166117171790734468498477267785183139796477231584417371292106688383294657483086014902330004236350573407964041021889384733632162958554980502167104807479412993948700267227062246019218371080106188788386031525223378363884397203246011040736999423289823383852463699831880226280136320950440144278731130312450585844789684283849296304318194068433419329318613091965042438615264251390571542391064571248599553123378760573954158848087135204876297909350263873426834556139983564241050564213274956307280622903205770101642129015275729378343078919048682638712960450114562577004040540627669649311769786904206476355450566555461743004303664130097401801056103411129882563610468198824125299664715951859663384946780517930809062847113399024882510865400299222254783650210479380243943334040751273584358849484107584198140681614207308398224600963692709705509813668638690864747377078889012951431483113641712496396903755280469624670302728619062234695441552028240452418118214985040648859208041573976073428824567539674289144456986933047125013718664755102725117792374684825550801311781933308013565160503225692968718908339495736461203456709007372796918888951686865656484261406118805126365156664543339999874977777030843714153766520572960666105286165261876310507152302979494186528613940290783892382407355009356052582790344881107941426830163294673970377581042446551476117005736336121899637213076158259886310167104772953916937639397548264471997670003176492353034137537513546323957916019354288882748415003862491175564937429943976644630944303825580389879836749225577197127733243187239728354855403144986813954491226752382804516695865222675890262473486447295173906692624084996113556655659707518591222795991600731464673700453026309891756600203821054969923483672314014410182684149162022491741650522523001623474120331330467748138149459237245003795154068257375185970580310577211717387279874730122091350693258483556687542174441776295145046145296283632035613314300357048981716500476836764287473232097708280681580471038549113953971928059176444120193977891072772523957370214653765495833270953731393222177697290760862781336908116860793494163487602510537800612339337516880282618318087935233224275086139459415072253254311363200660259611968252156869633903867513630450540295353417590430083949120648480551427950308713380142492290616339268069889889676951073274561825000215817552349542423898014820748729190407114574192357426511238002531896838396989170136377756611512605367509077135571444713051968564127356205272653280084439723608111199036333136109914692408329169836356794888079111634274422686212341651049375184762874096104650057911981454613548620211822601009597524916338509143043566156787248723376935556802927038147738687395255425072583605704445020557746179361765658529382183731812365689475447696181840856348001287793577074030022078723056535095607128393301191443449929727714305159016815149475237030566031430498802473145266493624212270076929405073400677005820302473390427936082831677243584336764752668174147171572633890279179768388460323401355255721366976844264206516896167540022400819815309700309908400840760245416422533926604886794126320870108629448224384012807685647087006524665917532142627343479965827131645739035505314920392965283977615710447523228353158823241924704639628767716821374075231758377359958499434208059049273467967324052686920235719640773047431043507646984990440276010794597712644159176093855075223920730337790557784643555192445132321254644076067241967959882698595567817748289094983997982152225508026522229282211685407844155225538822262947688477286996099907270845473258139724111990042788876662364815775357775271914251786571686736871310988420512452344510911999084777197454270206786416694115726053311823425165174199302440078553449508720969473267469523218916993347198138543599378803536836044822947970311255035492944087772797041590649670849585708434720266012786592512214196747252510803042942207432360232089993989638450674777612061121331140317521414813641440951245381980425862579027194756909844717762590830470985035217947674643234908564362528254656573126101128805411818813026049679296131341042756534655838975537746383941073696388889664414590877007026158957185083683362573121863610092948177902188379475110866908405483325648843105345731582958563366540042552446865276246104887369965262220660327847474124311831897024212354646193747401755951040980842246340465668456259722258838993485931530145280194876238505841956829470090500583026608654907821964516013175866803430034024248549289780036229712856729206340847491350718044613251808973275100372301576203450904511973633752603192103838310592025818502386393130035418607473003656473409455337082901613386881921103105721659815803595341919500335027778432173091793103945976978944395336629255210058270971626959521959243123975750558485913336975445805761477886405226499370628786041733055832743427354743888283379825832469292838420195073848306072832249120398284474168269042951900255143972539527894343241286792290797404678685928060888096930772707710219205322852184168667852329828506532436997775530368786631326131640437440098865797058228718468671028806518790172366756627408812043816022796248113894134605322149368562909088717416401327467823321361442680897475122523022816598947825065569144090662035793940870219558147780931378024693887431733756488789229073916616395884046156887268899009132752905443540827950441441184046384745015798349048377415238895679594761028395374005624125575810882462917709342723559176807749358496548848704626157028059494924207644735300388537919704824764397279013559384209870152312336267700458885779126026913169255985635346675242760051383641843538568788975198083469295071603543276249053153414630556744378676048558757321916441325075505910560918768529134770524520317905838068070227482104305744892566271894778758522421018556157784492230372831773218921220829758839458077057389119334679211077204088660430564471644183401634735176528131963466237649480922427852132984946125944551566492987782309628631079089826679866340711674195568127815182180397440246361102665471228704719518122304134124120487964645092054355732392874082770171119540735560703160575861901986886317034058253052534576809700575479070479955757815743924661059203644900667575942534484004384440814379097569550920078050220902224311026851819223429779556778410775273037180714170538506736042465934600819535300285465754066811265020557580682841310227227244697652777524801973648576843163500426571518707075733085743133515454024126749031256497463294967503662658670956622503962255018282280643510632018592201703584467222414699769649597264532542205244671196578456700033448808086893672846365238893793998042449301946705473529093563524537286173338360405016686382365570012631109890203846744741840551576064022337737300746665408440181071089571019228273052277103792090092402339690344867211282016713352670014836935146353748916189097278404060108302649873966366965609425986236219767936721662860014013238541032829850321224157949930346599857705766514204776084096093662065475677315212647637096126703570569693319238799652117615685254114820932753878745006997679868321695105296619762060824607163974595976614719194153076945883646683147803820657240792264530415486986032609125533835589264753510118307438850198840756730509811524655155362584953740377451856637730729661753846164145977613324190643214315202766209971038004941092122753547325570558538262569251057271165374953605238985356589846375656748992962662165050851600473801868605986359727184909134179764962781153508793399150499286978515528624772256271110410492514924291526384861856403370961653215942197835455423119146770499494130827364721904008794364432921024865915099209720815114166090430570286284387503708783019875628776406949164222912538615996557478708683624353677741273828904049378510582017992460467542741712132996998351426515993191192990493463104597095155886447458645305019028969287911374642171445333652950115313202199571264362476680006936763658225111417980375005522950657535626876696397961409373269664473868169509111802585337758681422337495131807921744434267825879065276256804675704637034798722024039302387919214193136498100482075271705781516855231307417288588059424698069696192464102081043983388794114758531476327454460215626440142989139784577778522167686350355183440120341862824762451226272007964496833864402196335768917414237383590732877442172906376612200101662386488859450785437784313042550010314347064852339842131154841912705214732129791730570997345346255984353068109668074178680670545583256816655139513699602721230164331845329296530953237431844721249306131586517674733870733439803386027733214308864901615160795829953169528296597311395328053878242844076465999096392897581447810220062771635216253563328436168804983249198127329965110921189972312708815689380434207274014937779293310681233769942441015433778014713235695889720119580099814036326407270900406016684860991257777812406462927462229585525950407571100355242562049916821824339471902023049488070107003453177739166562037470528051166630738130409451020134564716038976612201876259023522453251413256564438012922669990154291199582111901149046102164101075858802653300991420757617342504718520562897486381822781281932158298193758066505136104268042243859233735103268881920913544573990495047885193241659762959974038589955559296668906630795148367841375896987472559944293381491448820962522460410540513601385058463786337078966070866236777421531912492791545614269165598939525072566958789426996115637436725816361304833887562369724157953295556031549659721241192281129549051517016210053342887124788257313835832092114197228752966527561924529962825214341383578230749328056377749433735099615815415144755181016459771048180877458013437024888531077404463939937270263825208601578830356150950750204814002939061756392242915239817703898434501601576075279355733627161298397086892334149119417298594257624996594732324423951584256022495832883123150326236114258777978918396415344514683413595398957445919186091660402948431175279603614978795175159216257571689341982040211888710016917836007429942315328731277590000749491271318757807431915895998337179303726188929978176368240360647306728993719037931208456979901103724879997519236096735676821738099846866429026327705743917164609958343561196060074232806272400222687967232928252307082553314598548081295983507571026157306711165501314191825865173051620502251004032058774143537832359610778540940147085340071324757826487236790714300370922645265553050118323093859514908002512088109786260037759361072468119417549747782574640322487053846632530063146851173400909811839454976766506536115210840844390814061893030823138706555792086980227170534796975700471647265298592501711013158857271565430126249015614864719225445457684828640015279174310405182575420440255340844943633284118722178486268259594870973018093199878112868742484683763588965976730407682416241921128471341324369493191737630249153102955816869609985233852222537906649143605780288467203687394668463122317197402878187772709127572690223584307372397456672736439207031886037455995424365842054751166441272142572502931636200481142863988503243625499635525478252007820974921045079217632069938694953325541870770798381521942920109754283519213078545471553315226702204034111328560369704632776276619572230366059724872777770117536625533211582321856337049532887747483626222355873213307123860929050249958230078393910194870150858309367754065511626443060654887386818158985188810656570384714965943055735522531500773636145712467882346676213547803293113674521925843644670043199644288300879908253514380733302669483144911245612291108242214281258056179156433505845512959157735478548732361004802684077506698209315066792541055815735066709014485636077160397650756544228464255936785200907278115299863213832514500394570527498713682480879679948829459624690829853849891054085743283920500107035689444474902066052336409360783625793811201000959981509149302135526041673116464665394225573431106948754487208463657300435545799341873737218130948112732735981349967350803900031639750393266297579466460903007536985658755970048859306090446631278802107249142944707846721338557020910508255030616634758151426147172287323364331845894810240003212733458487646921969892754706273926470548187824419580847829853946623735705954154458940962544537776820989410337504576578381832065232346610557128398262488251128507740142072163616000083687531692173399486367022764354669492371838305172263517566802892969232322191966607135082903451000325322710522258032979759943842819182520093940347761156239597344787517153337944182489164393589871822996754608029433808705816618123778057344170512968845146773147369557654949783229336129572846117322085520139324494041694503260454830411607057350602994961424873698308376481199024655553456354015295286127436087587803832284620967954182816776166737795135791988363464079114314188180199335389600636193570561559504358167685905496438993163567084555805727699517740638124621819570325207720758913369207681357611056902776643740204610542908574895134301999944227939785138313400107927293125990005211161071997308117786732371889577403987314967985736360242182739175023945722673130020918798078653884090827891148928669163627365426443008775613960056398703544901100690847771401176593120387071991042253241843597272669694310745202899518855854461463623220811990632837044245758488043091284603028948028483290401126112760575684382095148999638913547840922190561182866522092048613260982478992672792772768164468092069226943352959861229556501855713240351668711242995351336991898996235539612269376948183431187391515623226339762568745158473988249972711699295670802552110998440799864288627103435105156056435815431488704610631602964084771086436978095317936772846117560407100972448177005420321169973042805756881564249744897326027868315709288909036243752766127660054826482330394412038913002081404429709018942333203646383333233532247606081130621711387983108393430148195418969520234707435357373126429790920192075796394165309204811757391168620098443413855897555002856376474901139792353097458495470710084622928203092532171901309194086321277527500832671719817512347061979539003116050327496599847036202775235247781961698752554908107454275809131840147044900599913105215262246366258607401682983594225369877129647735803241140781016831014292577063858183186109170281363153427104864073160876150533171280094119243768823570300758521838519003928505424271290392106021891770953482256906601774067520047980884347622071602308407460466255328086845552405431948008461123046936758594935172029544703128880313620861279227403750070780803921702822913578632838648885723799115152696081715227545487157680101915486305696212206474771391802898000056671609996719441149931206169872060565533804065450164016940785760833539786095210061793940674157589638081941931482702873288138376574522627448088512104752348766272546177965606842363232188908308303641616370549315176311358448688069210943908306691590394085010164019313205528026113575711536349454078815021365099988603060652331528462370987888231752315403055443231917242257357697000291836457106100107875781277049340449419703259248635043549936466033321768747708909080170059924946426535363761266770731915269323686288523782753431323101935995886061458366386093193117924949059292107490763640861198514771155165893779605184428592960161096047896256449662478273588860193163995367083706956923775684481515247316347858568594612555386098174316794690744044968853619308695627546342216424358865913926685747047905424549499529225050381273745631243090108365081172300679648432079817696411754306863249625364182126976933252912025684644256523188666935832422119121559208980666613496550501502522142350406849274354985844914382588785213185985040262562160307458501727644941129916949955199425499780208736607951205949561565933539459111239343472214964891983597526741007175466190835828476846536411710734647324364233562374432911177433326270156917285767213734720124262238481657752613931630043535570278590820579111504388288054629168817334214199692523734459363181455039967891708965904839980101433775769372640082978727843276799917755508428955869003882863840649212566245556283308607234762364145168511450724970201203086881112224603746538585190166000234302917448329633232933079714983842169700671902458747145894657568904471117724211205847977758431202900214914609310179301624095244779699096856997157118355920878702996956956728627848053612045673906799617310046690816074408490331784810529526060189273592993590937700611021631146798725816463159658278367631724136753715933425512534721367920998337769307610723702625729708277609923836943943547534759046175709278261089228449353336055497434192556575942171599400161790951380197351535960705943723154596828924538976404661026338736630670411154333547896304373371965476858938804266863632967782077714229991294293948968845519951557920127511824645548910923617102920041235258237961993449191893334509266036418932188991251085706548322822070627910551174638773777909050994595744516685536288845061709944957786770754033517611702288750416502843278820944919592412472764323253933508363789269881321325468159399746526727582759871015975187901382404253566532923496838513390975609020080332912360272632706672287378255718876981047312230947894149317473313756123160244767300340624111988429335643517037504212495464088865881177197765309152477753795220009865544390846113434286985559571654222624876866429683613854294025316427202945201647287835425338132879114811236767883886527108359706905770977069021832443843719057338704911242745530399365696944184383251333637843329819539528054672436521369167326841276211781056294145479895385085953336008423858696285187143387354350130702657262160643004346353317098816702984664529538170091666878898296971385904111581061695697246753516757256259836431204760273691555367408833240950459061398531083276263138000528073701542259962397026220377254280586177380928270008688470769983472146191921336326230003448197138304985436973767920885575859364389129639056473913092306507180187641382409954248797279540305533413260283354422209629986797691549928473572013568376011383152972293241937873551101073516367635770613335475750307991995422863980890852991335515499236951329541919002010754706682611531151234489492030232977404837537385819833303579531024657860776624449016779955704503656643357686559493247111004899171915057258757539916551446371099289638250198821001694076492724781401763775444734017427616134091734993808356428382395578024611109662677503390541839429441702507856132697577159600309185860626400049033220827824078324811148148781638919413645878564804469311321091369961918629381660497673390562115106692777758703661466802186450937299710410941688651692208696270138071576784759427935143464482422456408705940895452510533902169402840617486292290287806630004562285567557147141333042768122801503653835583822487023466428149240994725971730735008102762807268598042157180311077189741363427358393943641221975677836879877386329228845465002336923569476089397563376164587298120065129022882658949715893264408940800862342577127041455750901279872228236879154907778926330190143311601712620870612960238020586495463768046870101684200448593321488358834207093933669214504256666397594644378266140470678043290374767833772488700887603798492760792393453821104058933156447181729000069779442495699053151955978485634345918849762979373393478177195915796854255841064514927061347512047578762514138848064336379850259206836644060115417926440160597354079548649429840062616864386269321746618766347929046826708661437099460127886120403021672973602141187768420667798227381248795360698844190931096092687143019601681748179707044613718249368497309378477358136391713281796568124985631697662678149621407669288794439752286440288995954818479091545640326780886255416545670368766467063670685568264077439975734285503542953420135184777904942587361697881285881664453954782241403228480304421478082937411276634938668624879842488351106750466856679066350194574599552959369696444899084908300237749387166800929351803877625769802780872058271693885583969230651753377281815807966695331616426718433791644533740313530406587816179021602159155800522675794796895277407974807438430678027583305959605796000283208446069469491303376488208061375076397846369772973926518027728631279743416072903956496423402382074532774419421890383316107149025029831649019712552716087897485574317660273261292430909985119926124668006679538771270489725285550326871539454751447707830720224063086534538400610246454230141951440386232351335364168499220125975287746575635986593794401119742750507440694246662327422575138351485291999749056201368798027393717471217729624604658125866723901981608426009228802075483785702527315541634663161234021512839184154300076059490963358022658189610117325441223734591866640341510139471694331208396180933025199776587934486278517893008630183607440609362990239586599301940287869702673190679928529304095821082746159293655998684023153453759638681505968430483612250456774780981113319596712462866812120496834700928698987449758812175806635142679993406548284770721078352963257009484512872696077767180054853030446079017617401348522124301322944850378774857286309533596475903523366493834004441450353428258525781027809458335652322543640567694832513108186787333439711843970131571436414585235916541326889552273954172791464530919869055328759257547362190723977282202282694843635160789592529237501969493200907480924301280275972726710020763811657264068389184266390654882354404017536007812115794498989914776183423259703947559948353233274031922897241926485302381489808525878098065463195434384860619340738415094485960698912396506033952543146463855633588810823755434067407213584501480198428103070680935662925474664160060028841794735281598377543014146858084354947618557337655664144748702796690201632364426094144987073042851379017068798729766818256409127186705738349216275518047689467487641717367962468587331517974207273681294064365293953291494296675476309597866726681307826594527815548748010103579447224976097126667579820371152687374092598150014924154392264369003164282539636240554831703851773698464693096643286575521446949249716422245617365841219951752407153715498438871608423047537798104375532929218657513837246469642719586735255509775732224202895232119528147324053943072794663962400433994132307128534442918563630111204959396910838360995629082387769291417461292598807934415578808016469219393192714142501577772638938489471504405813838233024497056218976042770696154343382906745139575069513412928173176696962297876986353284246630970626849461830406562571395391425582311326754904145103888187620356089613041731635145987216983340242916701970348491242782554876778259658776544070913651230906000375864362325010932473610630790903961032483569991064669468092292406185873967905895632236757692784925928299028309552589041231358258424230830846477741210160566723103639689507453733087757816125599578366436486738544756219679992853348332173123150211853740793478091608170583140903140289764983531792818101240406447074485800826781790694905873089463435380300231969194178816506705446613802610371958899659769129268814194717475438745086400163858015441519593096101650518899020765829358052690445591260868093655203811780999825626307574132040240287807432452112377997890570333350334348634282793304121108830957856968519641420512851501825579642364437786813184070626119749733568737597391693465979154088347679762816625038375611521736397179250744338930723791950825490141235161168451444869472232668233255153136022965449432149424762653415831951073471697861368258403102667561011184957094719522455272662013244876014899995265292233175103502205094516681117852205573163154018953763330566201536181487128066612290952070324788952892162032587648849863692834475971825684133351745086129096227145661689658965774741981556360162438783673822825911848449900187412204491745883249457738512318575516456311083260961073775569438354166387549448604973933264640742275861937663083763588066904411798190427292443077438574599365773766531018099636859898985958278616529366426644966861865478997929375448900443979061353958210575150203196461089709856041112655137975208180072243074454447853307302400107556302228014809011945933358240406462236302201162270042547719034411893766043591820105132057644647148516521700658719557511321707358278984122659954580532167130846316828096198252100776829440638052403943248288635598845906784665945082822790784519244410626208271289723576638889396761246401135222582469859505870362789212470222218737208243277851420184666845344269885511340822426412121142389455428606243828897246924758869566659923561925616843355813828286014504117628805740770153721386087552219055202303457060452499607384669322844021479742175337069695535556814089170173097987580260105456076382016161949070146418122727859289738171372250002477881087478260822459901911194775076887131743487352298786310075716938980770102682067529787054901451550291830766914123903111250246037686766205505882795358411085569180549111044682969194660176455623222200906943838926697033083840139916466467710284966297836847683739310971121661838975239682130906293925726564256755787144372894503570270161189018306731058092727921055498598342583812193458184264678380668141714170485206588042976846690899726001875676785561987758217324532686240990942713839721139579126985212601935544073621914785807001744544457900072728715185487794503306087349246472918492809441864932104487218101548758480121628600296852461570487890374702098151899330509424754507844438255148562136310290615717152407827039392693002221583156035137480254735938285661896272548320285648195490696178148828298106427426914262387806427642344746710756925296446718024806138573635817875080527353599265801751925582153352395751713515609918526493292979677917244343916738901352917582939010931642967427301129054056991548639251312703134752663738968215540498248643998415150528234054428189020372845518016081999433014118903156566055459666928318346117908863807636467628549839595749488356783239495251767636742925861620081983224483243519967911761200049542904366773306073842315673498146529614794739586034190703563413798711899633345740574046606398913611958062845711924943766090762633210842642244644279399277747205197609450224315908288780673784416691230900683443527979320213901049653305100629491230956555065980065533548975341358230907443529114304816270302303727295036448304677079942194839282887000886532338979729235051804212169240161621207863830284597756505448639427961213857570199142176648792503260451490670100063904973061704457775565895057159787879200022566786883801478782548240864732267442931356681640060118559894863764191845538665077530850084975298701797275852890715013792381195511732733532955224972602972562711956747675139284103302173347186720224659661688616078294114634252439080173410220509289822957380893450976665795568657029405976446700874648405945278221261246548944372095147006084256735335704544419968057451625001756527050592346204563008956915540219633709853068159507203721328031211691339052018409634921841331179287599636235844120417208355010915650107797905819530710226654598253068370037824627200831450461578112467417554315157384987677169464254788097710117643811744147486035774696187750918691743469034612662648925597486656326132319607250819092703632101419989447852201687956132485498762771268930821248698212361751030559919698278534443781020095639703388866870546941631821456771167842035508548359162454261471964827106741251882517076860842665140870711168162779858044149193495170441725671990928606271867657545930077542073586895264874679792732449097302274710929004108355142593780653760402628958866327293993743781943978445235379738340220766904909814634665497438220687703728466773384032314706838879650635558941171766530585778148072010407473423720953795436372641014712852738716472904565121220019811128487951063413824191723389001937325027321196448995360328817315719384168498030040538205137144053478503659348956754642561290873238864433808233848745060818360753798159340133981787729149213793509499316074722207772878641632008834720424414844681071840230770367063283210763144363868023189566449326566267305163250328255479519567865018571322802928157347680646228344561926287171734045870972037859363715847187021092157231822293352908619037668817292568797628625976552391580708810456920392141431759319953213679538571636963185614191172270077038250076205753006428393646168915324530295259633263974507021321217669301627645472371414443851746785152767590936402915761182771938092173498230116641505387087694009953358038569011353191964499457489092773315087873502562578299620133822750248730246940550856702826103270833024658886363687534262537072821234622746042213200428422341190809867351963160091988544762409312224858527735788215417626268376716236489291844199336635269951857017599414603646160476673612147456136538377221255831271561427806540660781492265335774664084350195308783236756900726775993743967505733955791145680156497498666377736992156223200777125911129906907596809859929846955475898843622235510378865566803991447719403903413416505963590934216226640767160958625361781999769817327436612173874806895014314948887184637455476651659001803371261708715449635502450266412184185356353553347998874293631495975412924677569675957135982207495159906043988103564027315287483824153483699200236039072535619086043612164422426244476974888447200571288890686595650583501679795230204302735710848771585669879103798202193016332675319020347630123242751195737671029084230261123932567274214472070997778525621788426392103072725832485829345562036846880023433879916941887760423494998962627076757725480486361407666388279432756693970083642700497699194810138099741412391969534122594326711558214636375455605649846657483250005186789951933300722419924497367156602742913102145723538166281511010519051570114537621771678059300491073977326014474750531308924803486831550991986248651071437901211094983234741852986638614161309444184267853271675629938224528988351851223382366016271495854905443675092469372524387472154978763196090551820196334864470584133967857932885028494445997897100171445465578196708119310183601408976170827150934228484752275761512853407637941008939696594052739642264173487155905284792880511164247211073152133727999206101041039301700673480836668421063456055847941799923316195632259540818623103850888136258801675469330808009747684393446666848535321017455875341630876178273046661757028456363325813821922299645647452469379495806584701645827395532631529695548175981197348757899799842679980915409762347797103538807702755229110783975216724225376160764601030116249080932146914428502914918017148832932682540762744236236305596463715590408045591913791204566731197879340679734107825556882016180919252176520172088645562642717555318732955953783412934930906663172922316013512160744906088590558037412381963519140237218807539968755752355103330097816759905275371151062571070666954922940093312093968243832969521060935092927521224669231285248778176209760287251182140531945181914893903647772981497159105913376333450445641630038007475846658130615649805220405398444910739777628803984401483594486261527682861500430058327758848419543533712361384219281308525979407475843916143178118020172455306433558856007899618366498899952695117041619521381974557775262048873198230748628710148324070880395391473281504692801057901325870167483118318617939873938368186850019258442893967551586777213496805216142270749635563430005393577191863406365072933032822102756371634921678254891657208210348444976564614623543921369193410210954994521875653211885861211777373271546326554961262888364341366619019733771898455021702943931351914706786523037504671156903063358227468616822385213986793566415250748032988328321023866820507068201656817305419241315124063960088267080691853065296599738504585148403910968564306838166748300605528110645613388530128243725123644841685778321523414582239253716218436480289834646896537933949734566054360535589480690283761477479821097936584777423320609375638682243010724318048532289486824411073751689130669894392088110317437787577820150405508348373843736897724190195272996891115580348484800700631901703796919419783491306276985887911775352764072485915465033722756017783484067361590822533778619028253704520365554523872078909056630411756622051141387315430262132160570294778400435757140186677633697559548512347091342260875011076171717257281499888516481277304678892586740160483194750885153037664621597494004083408169565473516416868135509649101684036220374779005504617683257708328487774558367526357952937952965935856293515679934991173373492450379836449212881130083886504698908867102490343845105157725615511695205685575062751358865971855430365032294431508334532702741171443118648224831457661298076478163863723398516306356039562870952917279210473011117173859239971544472560098562311057943042350851450341472602883578213639395722469192844958361865458135604908200252581200783683910296596336477530117733826371457838854000056115413723356991582896649459719130788741114829366919584524251351257622105632516625076978801580477689136171862480757135409100212345705233351974082310126855589037331944830541571655984381968819515189138171600980573186930870259350811886791705702432859347301017160755755369158891326736106919351915895976046958514785338909360558648807247162882130009747450480245531213857071684244547033700482565729323113889179367983722127043342133506747180836974989805395604116941293949410476087880176787191398200280052211978062736209723177520530444907668735071013946240698986326471351728928864456825753250469293150228978682524299004403115530885552750945934426209816058084161014824807798852660837249511457973207824809733081368448951827813516026223984069950110996639861109778912835703162678050939815509119276242584812881963067941351460885467486456130504260463220676056863097265096971002337977830589535495325130155249832353027677937597965208748988180776880902139036068698659495461936806934142438730033230208948702383697535728299615392592704593705056021358038754784294296095389264889647824070313442901687130200105145552695951992725607707526038579167867360297218608747025585051819168589026209207186557503136952738753512772118909643363835246751363565056489351735098711161475388975383039446336833200567899027864190225562919209350764619474328970691477655989798471069301543351082079597749747585261248796249969832309730918519076208062915151671690126117920267397369008269085460562258043649903495820001616132284303642365091944762076638063584788423559315359818373545084960010343050434396374931468354741065537197928574924383240727174346147448995373769954874117625483931110750912313780989106895006314555631302148962416217724921075132704124907677711819592158693640548419926305758403117630831200982685547561122062137390939945189246906278998762103666555297619396471139700786543837819722978697000391508931294906184662112602774260865063871137043580849852655629177984397224738157398182612240296421080072010058002345104132803166649065633509382010747622132239486868957847272048289016421607173609685171962259409901762395566887958589691737199294739650623608695122891661559006599723217666335521784712835377523764015546998090418008298347228706529711036149073059786999260741061053990708315001895361115399813253763479482676105499885134089157411802426205711319588787101426614118447339128732764360254635470302206331365593127078649171838412934919830063323069603624369550639252975165443861225582885510719199536710800797701640812634633836176128833324363541083717728756967098465683684306933160566305551372734601016476425220828993687966524374482026810784863947657730835170383820028299578517883704960761375404756426106923652137062068124774320865287363343938147329054035767105974164483104117773156590456179464561049926173866556249780150758785027641665705860137850002711905959189340803026701886139238772796684980240783120222844264243113879056734561335411256041709470523331667759253450468184598392421809763072189729227124073495558276940098367096872382791349360834160544369334817690144772338000115947399086279436528212519301741190976592203317391102874392839810619133313599696329374943251422563898120926699572737129839716094132135274989339928148354681108069934854511218975944844907113925996927153924435921584857778721646899757984487823638347894120582981804503414789799422205927310563699208893497218712206155173604423821807188436999933262924406600007124179878565443725598140774993661609857127072217548948894403126806499165863527410214699489993539032817216707094390095037940952592738378697567698877648885950275765626590370579318850175050100230739828682431211817334114498738303321270532765553381199423871481084007898592845222573341507123719434809201287137552758050295589364103159608879162968888004957833417489016568356269033389322201378272364736870250205877510354445226020681321471985983542819547373249065918011808448484468392148675901776317000235334707625233721596871133931367504522413898190938225742109011324675629095002892490784605423254910531599957648679021895025266813698914087582289881486871773564208041515737534539671739955796428730341818101006789540019063957939543836293139435406744054747593166997563075506486793467530013768421399216118927911495173611661637274124983099195738846882805343080620174982631573886840974336499930949890955002505435455693397163067108242855404079118503642521233381552046056107687717499912327361808458670709488540034114775957390462947559409371306239791680821158491746313806758063871733646309209626757442656784076504357326849075510966847870559634052515445108196806792360597152088459696284772418739091318632339056738409179348692923983056563611935336014494332527421511217112650497192096804166101330292800817063933642163571690605640026077379076263356922429154812121050671327698217125483442057082022421349800206221118629034831728245593212568259616072808568095414648157807331207189503923955807347496543138731531646614376759896436262917526788797633398757769051802147040117688422445439935294322178281931975980185325702458264958791947318889939006478071572452945085044976977829972764918879075980827065731355362981385234838544251010957874686944110629045864482138097671373640548693840384402435486520061856134326076539189141814315294926855967434570338096581631442685631352802451336670462947363103864430363083407631535108108503800970552807183866998438228315038755441287650544060183902462153984662563318672043766374053759754370089509713900903628727510973095119913624746978322509336061247400282429939121368278644289836489305514516121478591900217417122089957994769398292460858687043766000459413515335161289916210802634809050466471243433011094035797915722278091552625859019554862729415225655451091277257826140521193955061162284003720293624578084099149425222812036709577389697143087372153687537457535757091908455562326822270401512830171924122113295880781410369637722055844335714868535568617264651530844672352578175660229400517537660748497481782731221635030275133187060307822048701782983172612755470435106822098203929931434099828828608149080217851501403896884772084000697729650729227120751023581221540383482836622748580103418717766528429911786082338008361566345534024932951485024391433645349197410509698631843618112978159046087517623590133479105053796417044864302549155808375701310480793442556842767731641367253849683106807326277596021107131751807332878288556883479083719782419295486926928928140019791502454621725975924541160886626917052539182856568536636190113114639411251265602896531212916593877922418681948035824380630753185704391690539347142870665009421726572005476055882558998334581281562914082435863451928331990882340224408918215477496256643057098857884900323227476393872991166226150601160718011546711029528288977856362028776731733895628232749049398085162037599518240356758904279903986319003110608421907650601484959598364463530568949690347354600793192024560205767095302876909031412261988148025450442128698358224577573491116096169611648242346439960392242784974947892136792885076040415262890706241025463084364456505007656865570919094039598707092645131485801778847144093011073472929119351453912098958208109551520205937946657607727072276210479244013253493814110363106763987796076569407213460414660341631958339671194252856174829219823304051212906227636993349803463326518373359579384228949548292477980287958227721295159480596861372628313618327763351203186365569498309255749688762438269047616350558717904661177316378890897564731624255775579056574647392426790684639431417621482523570663568951839667496472384812746715585618327575001556731824388914194536578425865062373955851881538303808759425157418634817417091074711893826282777761148549550707413665927030299003824993523159633933982615074603007135298494033208409374781812535516446210581028761520259938436891279603622726675294236602590997362611210859460653063528669426677218750001008061864219817442566063156412065091004006392183962647433644837948602403714389764593803657447007419458711355436748733416149892462769052537546585134565291474696214126707274949998600274828538820523545578539354332270252426931236340086150503851841310299167179369333283842731595117191532200196373296537097114923198968892746130864751686110918192659614754149209842275949575295493471186486953768439405170766881249162492766347921998546822043203029370651948907690487431007047526411891501930579951072305214165472460976056559278166604700760294221514615890022738395690066316087149825526652788590490226419541625097903039535184276502511447625268299452150366125495880956305108823138093913043679487049549653271605439422026942268962135797185732742029061846663750193356206089822651095271240007967545688479529787282264085679930459446920033072877673262628605683136698967287277645099699253824801290815893568628790163551170428766388342484782538092587969490797281504321929575034206960741053009497668106865088459979219942264037295658760670797153171090844923092117675340986201233042923372909222479633568198937074948701865630092080113856556119290045094183198472981825293062069062539179434604062861060593821728896121875555443887316262848942805552592362783459335832131608929768895778214539364753688800794408771277194158143964698249779728947346489535278616792801294185478758864448645322520039451569297610486402131107629505145294773075581603269588625320776364269346599631032794698396660794590478981074521743454930554071115373192095920707334681172463509103142385612602716951062848313512555423906592251240067399165019418989645965118766823226655528566363228563817374366478601907453388231593104700747977083335978262468528756205596979585862605867745388983012939349928906625378964582842768155247618554076374312920158895742868163882027686369160057330114717836615954065435356841758903020038060968391222280386606410001943740598466428048445070909232010370126280469874449518480659559773079251208133190934572506056719624360166120986035355861108985815620113104019198700319839184393956038143830123546563196248209358011097148875717385762568482065041682894123047751093474132465524611878079301038176025399836735621785893362392119525170932325048224277789147418952951208052313739785893085544505564145952319484911625902370198751399497234391757657690892445902028203218670707588390638915472262578363921909688244684013803313363656943773127542941676026065910274933256836528749574618211129392953465735038403019865730543265698699666595010840471059899520457026384999426329883875515885208621239231067957361114645745229515615597379075430056467639925198351026982557615988263936044560897509337984284740494482694377914406964063681401344939595276079859380841733179729670106662417411878243132320553314116577865462634206463973355860590605890349957746550000254198471481035599352998686840870045698740784061494005931523351885807085717530451625323002001370355187696246548282000829694996668636375935082006579495272777417733060623316287907151975644201384469346125614667775813359163228397077501699656578554939225998812562730339851445528248907161458251967650298155506533806168517596235717954289982888775188990346934649435730152437689433365283356861459364886239052352952397952932803962889546459512671743717405954445759850656609493845803814768552936746486527189006456260369514506124507555479848994960538486045975909433480993317347881031988509482051578775408691114074062240035418918823394689448346997676709388014254937225184640851163199473304547148693236798833324254797167698746448408545780201535770885477228657496814076003521797993708711268461625853750299041805875064676132651407700027049255413254238045662542010751707026422572754614369687916644385961488479366451752298377329735764496182367427896127401971731805132060684681171734352089523044984158773776542026658004956174544649065424980237876004190069455917772579427882510352203247647247555795958059044558103391607875818532087361983389566786539123870153030540381412787641760632599540935855207707135390296973218281469955918519771358725409815664960940781935611461465932942093837644907615853521595117908866305748644136022986898041566739790324247577153971595166245620953007319113097538708288941288380566025067253610183064414682180105666776944212998822942925628036201375278924356975230192702295526409697187326278990913002791037574975724375574158568544855353499703376216080923043022828002389290306465998694730845254562076478217228061508340021152450349972480030066310414931316329002836830306194436067423371936122560095462856214233051333183029150567271666053571453582736146959011865760439888728150414899460335874010115134025461119673220939345196469470685827383608962426949207010834179319863198559881464756884158728998520720878383353367331996952389944122946847102889196769052155920526936760968861705037615828216218072506895783631820332776828688548078296123122859877991201319176596667101674339754223179006399380916650341118209778901401223706953253585774504824128317645075416047721374006688769567190900787004334334631685474516067732306139493355123170780403514616332545797151723653833991313587269926501400080281078851884752941902708860538697428659897475829189080291124549647274304783355109537721288235132039222930966658753884669663993326194330498316249937886263583514359364086494203024989174950245787901390021176777625683392751303163406738560541258397605685086257559646790806928724280114330734122035579355150018937077773088967161133255777309018217369912963590008139945688162348688331501323682912935094356719843281073286860077447231892154920189612110221935583114786263424097346310377425283830174747835371266895518210186940398798240652485621408106924574839758831262448635000277414831759859972549001459427479622503446127851229846482100076785575012712518858220934557369415226492675927842820531268825766438663650453903280550773434847481548605197510037111034050456405904739590760517899023784109913055830974119155843672820322783448646966925786966030817852540669966596726147496996011299024957249635528979927689046620906280336410703658959726155937209296323523516606945072205965075159272657083620771628262677874399285581653811388194480629599718023908323088718409593226501681013292834740649462199330417833156756404764073743751208219042516770425289111903718323561753276985263022618686037799416312566089785313616430924917707393949877400158974520305993680277245451009129840454871616922116845085687823420949673977636002339668883779934923493152135966914331054149380537235368778417752822169795867101449529133972133530785579521003287325216626335477466053312255717191533870979432645409410447378810387753069177679371427951152055089415943516908965962967968260071238782652775210582332930955571036647442185859111010310644412650595161840875809965699033211552004167094039235099722823399811490716130827676495662768091965655535625136488779991834522626115211779947077102484994996616071923672112938152179487511503742681170043567809392954766926886388290652803638710587831660427319003133945010590053796866120759763196031561567757068933235400601653075471979022616587688172442559222892565523251320506207660674050320131657646266478454715442295942557962383624040130300291211541652719552346910740882160477519658024235551589461627802268713302473418801774225644748937609398515595808162897704839014663356238732947909666904613261541940223534097763846135992816829852382103436430449615358984165688806603532048078081989133472457570199741317124574110782990266236011039634263828472562445279338605671269849261911006190772342870520192984667868983806888843095216097292259781380718318402754870102283046684953553517907486482002681747068134511255620480787261997637118918407452040807913337582657631727145554564140206613415258462109290091218770635191831352245785093506900684289787196985226478682003205709222244362830442671399234460542944824475357657445175946021386181432572318416462523140315291044653263052263940678731166354859146879805672815526851503176978308579255565098894874654658399205257130303734680105566490950588389923941524315761206664582317033108473153859053803050229664493726901537031974206075165754000145241251861959665478075226848214493383115673856834154381298806286400406328641569972151470087807247410288638661310997155616354564716732741168147487295757260843153247255452683291079780358201772634409234752997117383984215322654574974263138068492583191665560593253066067306021662810079991613490360021122606993091175571829083277903088567582646410373942748919404765832643921952221097378672401626389066979342481311595363858297483222585866733605475015903976126168984749055219436813968339265943657460322987362403373452236766698189844601082477535431878486917271459645289734280176562737378771722752742690323442018328170699825317540629755469135637881061680876660506628284417383072701347493050116517689315030967255500574387135885890063989069125643271258645652547274483475726816388797966984208475009667807605633519172299292375300593146536906389450208553697194619359811542914599990681249622523702227829278506935984728014349860513383292432291376067552071039583783525741672816309190287931239049178466028840851512778264225572080737484552347212335382793256146557808280258443877123633826929099650023049982577472507872167668562509636846940524797865169184096147123127180087199610275783948591989435027012978071107894861092828625683198268043390801679356628916021999201628864927955095393741781311539373936004177466981720307357346248251595584333989831730528827020151521944847835844847232617849583255607397695158807009053537490556975444829370656448409762679184148953457915323488730867540041262315017641840146433496646135811368163995916676883416087065196811058450398531506447840099354025914482429634077252575795396470303175704212421513461632894436369999729775187740832419140438609526005149385048358583322851207759587564553555203394630924653380213332517676093718492638911639171007058056465355187671460147824152917004146269337030418952012246690685924275528849526509031263972280703081157057099999436729947167851973947030626854940329904763549791840576351045884777099334156042215612555809800797997511659237217529141527153375284148247439001675284133587124951517829770171226366623471014860216005590068169482493043212477928242696470468713698209039967502151892191518116444412332067080168341407607187735254518936937236143543033053476416219805403919552664929871534300754467168418532083725066669248167610750379664795125799344219153949383969799611745289982413618804854708870639994015808915244501107093794401681308344827349490300649390501084268348373201436481191387624211110356108305926707651193118410515899094509209048130635287943307977592201492596502934645886588131588565646835020661731092172754547469872039238582343409146583856001609099014737189270871943457632882611131121134289850300366125066283926027110529252705436978997645348271755917569999357615480431031533708267189113102848030507281341506054114382803633446105077298176336991120636942095686076109198752301420865464957627162448058624815771368141563811724871453408899399695522374207327312830243125180123101268391250904547767792060677129273605068655648819990669215343823890947096697504520637879031406674421760768243792882333019844523666891038265717660435712432196168871547766554749677704507033985675555913025248453927507276932443932513980285984264223555155898721057972987612996069842492364495480731719376843760160960076519941684929036154414918327253363902752177638289030127855019618118630960086067409958697130707499569483622643217851592239012912917653520211164934192474127819685192377327933067666447187370222161810510921242481194070811243738290259341491217050635872593325810968148382658963514626875087289188134218064195120516736591066641825085551809756291261562896005172352874125112689017688395932054415239520164526900630618194851956147534555336407981096807206465805838497921962418305037548014916923548141061898937175531583666325656233189053760444626414645433021132716923890457398440304726464502575841213877130226915686082169030710786269420314735392351020493981091008332887807003619050371640904791249164011963115259217330196527586452275405695618158078151485434708964100161614017664086333140853029425580394077369509640264651315444965740766692986147958063753257050012168427005849811025602980245275755439990103099492001329377497171040123495265389509018406793178814310091596321925378134536307393131786179292604203034504440357698218236691522608378199980992778096134230579324564577338192051881830206426474761972277463602433513479584739745521529565020395903953117311884683212122721160581345959305496956867407486897099963899039464581375624339451378828857612780465942474475857810264340745521680410111789292441443863590171916943678337115111649473898179993536324005481807234029340628909543290992464867083697597517906860108808588320207644440092393699098802653798732689264246309841678150170298869025834398018119999590273341100367028571249703473024820319929099338235599996494980027664635196373024850113338438038082331523231315779219634695845991853741134321621824507477309639278737856551777230585225274176672753491920153705002355068175382001428587948317660093086626473208417674816533948028718335222513228157275587081919728648774983227085930397576409794238293151385220085477267663205238104378836013062488245456214943231552976601879256298274946261746110362985566229823973814377674293290161901494738980998975072580843329845910189395122373851099319362818208824747572116581036968674456809555073431973198644592064386823140803555387736741564902801406700045162201127209379845193742814829224192778520019846576746140286048901830779304648913391479754539018290482775347165229320462282476273909692870206198776902050227146710160544871208330489026391423912763422041102205179541251279546634372141604016777642845110592445058572800775672729134202005455145984274879925994855520046155723302829526136055922026488344012946637718402479712490258130924797442093592554898333043223593065639431080848160003892637497094311641930633791695272047301535130283937570151702273539122887950090696578733783376216033958044047751521542253329894062868474120897915978314792305327290721621706542987714859914264975615181491028108523271702333303392643945243094710071965878027476397448054305892639561827641420194091885737629760295928898928516470708831232613703078186731370062285129724406298360491281596208247510883422013852553557294079147087994310834982348005848440210789131230977120473524155487378536528634666549364082178310755976125214543689918142287322045676723924255905459029950146037517384353614324504034231984732989253947213504518131938395097045489486446872343382639279748032252993776395734452965131785705989662580953547721263133932846544450005899042928191188402498720300128319951913332407522321347750144977394679593448454783625324858642634103123691140448577916398364091784898790630506132745895125182388875509695902420599747782196459309162745317773863947828291999393445503703679896623184845107724729336900669656892848674598503593620996798586730498263193441697939428551794987633762213149687607093247063395412951674896064902241876072619179656824192817226347083854188285180355893247791722811787762136328049787669187303075459013518925414102668899327561688081243161549247573618346106690213942172543185651118284739986409850227019074526789271471635032843334293960957043914298204339870791005709469801865880681890556630559154978169017476134970547426827908894737537660888155180599884700808040204437187155362164085768530436652143189386607515238108742047145656467963702564784125448085539977722031675752855611048343522993733707560394056972739309802143109318980641182908789554580058628689844758049739913825065688446709822958273023807980992529942820726734455127163006223255070350442459578646958556201286728586968040739422049666316463935047467639441803181687786487966714051146753968446449089138232512251564425470222859902162454576044474703088460601684342449435159420350891030460050819734758048759881874764897040749569585718134742611901128804022527955468039801015622925112433819263429922039465230644460040763049361722932151869260661239010850675425498233557237708087778758932156221883749461870219320164700888370689474888809534012341099448800195280778581534369295738295277488781480420232160137549490721583279342268788687308836159990655715726189369531342680903367896768865969217402174168651896304639099467860370537149689894272179478978639807589155002839672099336796199042466675778914467533446352646120101588376914371046752816749535501930647132969884257854263721308037429835015107072118006450890051585650955473138073962979923849303786329314083578969061826686222736309141665892028465625845930494370793745373034008970112582758287039033708434611707097088612658646296690873742133602181741314084749425668774732679155775857685858799539759765838081015321343928462727306161050776384553782784394945683836323645718678362122243075755594641986799999038327797809725986538666540648667383081378300556928766851178843055341938662784308954874257377267224378604138547177162999971519016565197612485139041578044939141329316184575881235590440758477688471482983657441743164935600252978644573361276224207768893567040400830213170586654539076512749563152082207304070541953116047880083468864019484062732163776095064799096756179524000524970520829985299884788788267524457830798987281706612497663007728152316053512648259865132761635495140293663922072836012506403417543724981487216842344451232121560096746528595854106277572174796466071738053274450987258726082963469370889329293728772534425184765150847777768552313172581818543349936864272355313650863841976668345767418424985090902333695721641807439400502285975216436124635285925946313675140860363165488734274459775758334446177775664403075517464713847269120316887474787110782876109768321129403991388834306478078674529933230475891608883196984808816827996885917299902001757562609581228873985559208454227035503057848766554380631923201795090069339907307500902655186593839677110401862857794970927126807380434746868579262079998807251641745320817482859661956244709511191431378202944211210459770293458551638660198719195743059542105152628475770376910893317806071282422430799320301337612691526515655314080633673456914468017912686558797333997905848942994074913313041312313572860617554752658102677753187750253912728437835914526413454416008870711513522989996953186853317994841233167801120929942885989571618828844580123404926270250887461346001001668622330852292143612791948164138763200034756622676207274346527490471747524087757318550021169547259699651613201667178043957103865690244728795021587396030571731432503892742405483913819217925569811498667460710448435261389787212115935039000122785653773660307758226420535247993788409381120516128677192178540985394220640939361348485465637276987962667167273518645933532630517720581499343743561788849755363473859368266239986484142867375315335253992192109594728141460192467834778004337791448957904260233705037605787906208624225021894594970526089746387948412991964464247733849778551464405116499381580542569439020682058058774284963623254306393439598579244177112062434146049094557728375360337707263773272256541875728164292816875351693769834097605724142643107003928581491070320666343444401956034095875294883610537680742022512674585410742220244240185281858868796724021183467082697494286254926051340056991355074580439783024654077993470303250314241159544051403873261552034861392843107121609835246994129417331950415442726399329448042968468051119539982089026813585723309465119283051986115781012482338259564669322650320039314175609942276008978614536946144268469451763503936625139007510065573508490284176241306122513818553766814579207680577623733813073600010015632471275342836792085015891253886126020974281384591665311448237217277632721123670504328924267314584454938050323362943714793296009470851095244087209738460400253285299988140472539788594963458332037156851911628992724376832946616481632302157973224017176357454718039203860379651056985885642411214786901499458097256980510604859655312922525740375743262945549733149624663098447830703321914877542065590699421684028593636652265316706625460299865357969404752736916976827179741299792537004003797582077873629998287102403699098194812683211436838436943479638937287782239154339995038583959471310060990697014298735820013028289096864881953166445824461725141405139485344781065126814834987143760272178380878367148033934863717398734371043713118299143659892431647827842130321451947788230702575350980779188351559030433875761566096209351063243605678766625511242530549748393176680972874517126212491570644785131039585360409488046941846566881204441441057699902343727993872630630817985339322539499948333541883081872082671982764691073167561690769397697734041454534480317786527359269952246186079285422634667903025803661348897609091180583070768113075757349637400223079741983461902284032688780993152925561138303877352780719300594052932057523290209057997539049469128251516965153845889308144580204258334657269708139823247433164130409693417622893835116419423639492777075157462818317692814842021106441916878894881012299068383892996110146695462893156590927754278448837133656213810610899225875672889755256826705856254379736921046637964482619082790497565088692783166655506476423698882741022251192197626584478411461292984868546136938854837667193739575249427584966247357992657135906189389970177485742549483693430287615822361921436841125062588863037384763111457131453583569078881976645800962399517208341916391967079175905146246913068980682286715228051213472480423801635782194331723646379239734747563995597813430241973735990005596848384068821574656854545575799722516350246492057706437427578773769905789671533983192003432585129006260306655387999660085671552735556971251482611666597935613616968154456165169426660032865098227062881159853399041830883904855703228358779112194502551210052621269156010534267857489446405564102195969372303961657798813351698275364465516561611529945956049907571571233340064156359087326183317325052151206103625993388758385316988077408391573510526753332113041082291220770204181280439081690508600662473711142205597934913095507341218969812995235248369153965230368034864420399054980240568039357274277689815277486542337436562317110376419510753189803984874361854597018206121957686782211017520524601863313189220658102732258056196970818484029512422603034690768234542602576118707775844869497864347692377010510304496977194482466665255321840226723454021443924268188686326535910027599613362583605129583757194899775367686390623093870252664913303245515113856312023484518712947583483673100002850144138386528958425237586817429612390164559518522328542695095434674840417976429437057830854805534638723657473603318624478972076420900574322863574689272198449573615543558610222485005426406702063271387339478984622902321264279565516813794101024618757172655942442869645109851273466139817087234693955327038583763553656032395205011003510173080258364679067814967329044293913279985037561088841754623045113942275955644816615729788712302508811332874972433293269272553408315827345506060740564430129720042866319325742943249871600093264416049503626606830773992126308067490066780610900219303321882518200414838291219334178317394208370953496320983459291576053392986569569667253152668520163831827576946387285270007847642986758550439932451616941448826589488573694949820554037207761109276836726678176163778067372988684684903153351957377325242224222445976524062130672326652877188232968883078934306168301885121175197402699806371483532363727333252536192748194994547966944875995391831206629230048532155629069621282308638893340642988610990721003212458710440747199191723117284164466217058169464177070515854735508873058084306776282222443333902777983825097709543442201606743980681087779380694050235869177834117527743495358029285106435237988053490828410622870025677554006926213945516347275636050794165281299894903720373972512000037420242516050407147873339567705760717878738331596435169545508885001681481188760655393098350288968007198441682434102599875610881249828268712250711459065823361088663580569296031148291097476369885817810991107440309731566609487084970241781930722568425134393832222388264556806427749773123845378475072556166866711879958458176143956998021216078703227476128943610476735863320978579990205530480041109196721913113728543687206907138501860896364427718380642669374673289499819947176805867002091962331516757528152183173487273446359881399935755779930794235214725570764261579859396090009883966095967620738666138302765040389534398847142822989768343697205927524600552825330011175047207983051468826083598560090331170843651325815225827124708358761972842388101941059235611106942130012049700705049060942498600251536448946094893425683324258518377685391967698102483133294375487188769253607330619765531143037305606659969750734084052830571265754245434249445547805722060687405648093213426826146445689667197459502578051516555888544738111279998192165413796072052133335722539099348331749745661896993541320779880571989146149026203451843162145975490749185021078423372705046154859405882667096056710292389964284261498160215287349676358073301739730633404870062603710350080310687809421377883537578009633800868327911070524140825529569884825272453127142583370845577349481120545092343441812643105609198647362043605430531031485650704907034852612304623789642598921464664412117395158127560119243413438814808241122765672434516372187609969876458859974680264828520216264519132136279969497686447363912126442608437641735849313427944280907884983542121623635683889616779822318365395248914118950364285140573734703298738755447849644806945135122539435838814910312050512124467237327582607100685366158417845071249454421012086632685695201721572124828800580649767587946598217632994019978304406774545310710847612744362076430989465629261438541216661608615475309391741123920031790788424386420578902161801824239034300604544260866931074518935085429184311482817494466498142205014966025942542544255157924178817225640572423457831486317961585888084784195359011771444062276027680440235188465534792468138677483130930161324500909772496597698600793290431264676509163169890980828069941557014209036013196280000947227491389387138895726786477613510206483492648229307732886128542579600818676009533220287568627159638771410028571333844968430023226198485102235925687113631097912727083540400690419154492287341621638901981377731312834408658490301102067094199047355860081342686873127692161609678155696551304367560122738912985110588828127558180115934466388517379288613450023100397720773949300946622618326532762211970176662231092827497665378732709937290921626274799876496867899497294624610823689445132030293985516226978408931215820275953702027168027155260557037715729980681886037112040557374474764033257927990342615846732837335933767232308655730217929278760853610053474906405933283240028569393174647066165548162128798687119789784179396946180399825779090101801130960536305907872834125596684910019837811428564333819798416763904019122018227126477018929272720847046972535995775633586060945505874824985387621038296947898484834367676419480854706165560190148309732807910119555744352938601250144473825220092577474344571150372960020851526470486262786368073209728713127654647816861953005732531256203067847917349306846394418899225116055222400555829550007436622082904712836841653492374609684836967961767005012765757257279056918916039093807612240767683320102166433441417093322130667961289377377783250224749320145303898204000462317041236072392965829555042719523536278051553440949252329252018976078912396967133545506484333869594033037990914722998995291711900675340952816098095243792840335628324221780758281574653907629489880703611547245166523393302361667198477530186932600213441629368440353341527366453011720987323120726701171667380754910687677694053150259742720801730044445555129662930968177405372946338563729249298546659239270205507284103913682166548119643592197067112494266401318374389945602154341159467056800593793288832326608129149788334590914181707482179799302786004936382250540108931768548803435907315876223451335199871458926883009879167331834025021166568556478503958720424040525888909879875721476708193950263932881966597011114523719571187546889022597031142573332063013181248820248946034956334628358563928419922674210387706777280066383250206909770631336890671986722027459774099812515271219668612418369395016068575124360288168679161961042750159143694452840345250336397454933380572685291151526391415568528128186900582154446407906001746577476238475698545371978900392216706446929202151721196622779183548744644637860277501819146144029051512961292262167072880306709606667579803794288500502241665776121808559657603173327629418919185643086387559788682066503210708160868975737358995014024366519897801773378416072705660787993836530135935737465759039056398279484435334271158730188623320838253565526152024123658699927384785718387629185078848729812789557316612915141896412392812681550971596928799526453711673162689026896829650686652731216554984781619504720593677666254952171862947093434235373950883482509629098309743926058211570919130077107692814389066897587074011321761885766628020452770649177281977191337311571846519599632390563841338600576418242751927384151359913630899017719437208759397923862830238254218758646321543588348354698950065034809506315844357472018239937822070465778616740945042629523616295035255527288241000384086615106789442972467706927564272516181059781345673605235348134355939103887270419143362628008673856641776879657848668994841395810851846406629633777661500803339908834721910520868846907044230604404435955050281165955981089658377863561456995023702830244612146424382515055906181649157977057598466037362201627956559152827227927385708482349906696003638577138143822110955656914997533583575285820447567019653735924914253182156566612415827936208190635274156525990815295061530622437005865872042069541997581219218854629836345101470284983162550196988414871167333050550024898803092577221079457319818097383785409334812828965781898403653886770055193973681931958015408186527186177812162274719365655944676786276074710784854526588798091295777203832364365358955445525748135769215123331768691504046642285275432424529490583305755769136148999363005668203901808640783918689942238552440904352257925426761766049092698690421266921352136366486910465451853881431222862935190822950636797796112669813476144912570618820826701803759306609642591450836827468658858821276221362194737434667529784427936303930801833338870915426831048806325230483852419687611137994557682839895989048088184215350841638401724801051850941172398827828808556853156168350411522654999319792841974816927074581269859527656619598815949273374942802939749723700104315522381436455790008552779232606014027928782119497537183531096406174369200607977184292280498357623362820043120513254097451939926715350614204298795335071882163631511130265353386237646986699796933032253420907053717805247482218517183503944890282288835764356954377066320203369635297533155295620484719448726372320650237493019589329441112717782302071300942449528796176223876218054034286075224398114408678100015938730997699663314528780409449107773742992302595898918432108841850561715903434592848694147593760897129375229823210178324604229263295703753372960877764509426289427305886285457751877946057483678933594388394697708079426723325213255182942521600486926324295260599422432315779375840940956155126171046402528464472129881896910550045992604438580552515964432243506937204919000033930958364874072632591713666988957204380255388610079268111141982430778300903012849158339023391541935508805880555023325226031615380961427275383067888934783437319777292895977730565237045250055712474842143259550113257490694616405956466566315970570627913175666763490628934854243318150110661440219262457550061869105412688781062112164946999742361691146104840445383502518596223845742749644268185368335446576879358847830022473068021220450571501031526638794120488940839685124888771363669617051331215253436338854391188108484285546609103793204429978695260215543252569583939535411951411717971039662666718973923422847611771357159514938083454617485444627467596847960700317227128946772154763374434271497788485608988780648516412544059116216184301685123189001788151504348258837515765297634577960077791952656755627559148361974615535628417900045495882063992304983175799039385412061605547861401362620260817338326567896359949229493836477472119163592478180608923004057326127056187116730664032988289134852771924461653062822370956934886801258842232258010386456230832984294531295431236840238156829018451560337689615407334024458886300583592236039733265825051185541620281997075538988437899284102758798391791601530081524242996868027407123857358152630862771601004796679875188764510039674232345320038510990937089181586960658693664928700816619745465310781039143868905466895444322387040214976229087717815676501056144059051661957530085298775117201531493372524241432127289773013535168239900771399615926783289030489378057105830064872435607650174637377040840014822480049833544971112270637151596231282875350679295080759855714515185673278854688139012499675386004388500586504744460864461290662725009971188311673564920107398901521851224113283925915256473103018827313270379240126798927778598035186691117149826133477373300724228215753102966472218232527581755867056679704033009663640106867034879476041798705921278925712551138982382930729331709555854383211608335418592518449276935565561621148787261682017498197020562064784600550269759202852268146918319254109791121520372513190922949241916414154908592045736827605979249254284916610224935199426626661433195139668453610984277006848098192842413478574239298629583834610836423866442854094550467511612402887182842415903199633941238277971057251854663338272946537766305107573768073224800683844138934468563586422265107511543536419797273013228919578086696246659463180805205064449810681300387699143175146657928112651882087076285641750515863366890406148558076516554717747046556166776359577264526462775366494167268298231443373532318084141231451860240291761690808673398801004822608418128244596975863290818700708330648076309558678572192947649543649025778504222485496773401730239773709601834497304768962231166618760630652516529294881909744202199891397313460882261483074309656134878924543773902856974582859526969574113283381100424527883241998982934590125715466601820887070950615563888703815421311693378596014236899670261788281252230870772831931078199241363057888392908506075255627599554095764875047615482163242052850469891539725440090790821286540640547916269125408222960547253686113330676288399754194314321792342652080783302420381323888812588984900503338345647572494314540408552650090460643529991196895972935761178525461245006584595806526464822303344226181372456951699004632629504622679884052029113888032730290648724959360114487814011118675360086605542103174215390130907687152905486138152773201367299701358462225155821032592635294006941577253697090405097741869719119863817220124285639120882649697498269370578952230994025708483029182271034377892038423626305439342156652635357240231672046882746453257952092202407337213957348768845384935870281196176916364828016767987751186011365465758821057293483539312811314955857322643347607930798924266251222709553749587617071966049034257115050300218673140956117712099960739796471245626418511613930020903653195600691711199625345744157588560320861526923617487474490560641589720448279442457932287339513968774223744467483884112398761548194505267673366315310282235840777343946473188667164395944229456443093257477268922837219470207854539483724198909481648399665567240178463413515995115030296459644040464790047210030725961078528066364732939890933111792353633833692099331861438669636335954464395101538266300605916063674292237325243368797579884280794846424042700441657492335654193979953328496252411702514244009983595013885165833972814820163831151748922399863583122859408696548368229464636569420818234195013526164464411834991005914871340975197896460901464089109999907378176960277115257242473634805108792457708702904552662589531344560334635089966853282822458099977182716776073290365547498123462276731592862685367828300262230824153067477500968457650284030220286608160228094380192566253790626750651762935642031366929041091353178238742788514753508787672272591930797753018621597333300004845350189504529651817651320017940152539397023357951136445295051052648989562058776303206960819246519653474184163353510802160441163949192812495290201032006030576951046828286633757692913147823095043997356677352498533925942730480099182345633451486865276560876861756976018606994677941926286857600286868549085561295810828806268746192613484866367204104844765157115872698108694384877210261153516896199305137717824496839608477277556042873956868786083516632564225848983401893508477693755722860071051441798062153157465121769392638741796553442479201449439258259607280856145967970692429896251379378618361602709257799672210715081658519387227106035232750982624331929056068512096203943180349436644623453768651726088103369083763374847563893134757216469040406322198429879034185275264347379805634285680104653814507440688404514648166503816918627744120310519078537728350375037893291660640916808579122266867757165706258588427167976064877887210751514535797132329531162163110650977400983259545468348223610843850616062534933928042182376373210806116487638818571500743465089103732047869983748370552288465697349252404557974649979627644976808488163221420693866158124937345847446461647404260312496242928611577488547657179929369695344349528607235072912556877158580344417330987087081129602512190480657832242333855095901392166524952872070141022140331094117048466789444808517733952939268504867923624670243786850552534015768188051703238297445487495277378158376359283078358386521325036090129727298771634129674111095181117051407738022429089317522965981688203217275844726522730846047749788189755090970619263101123099425432571848161341875287864441172820935519549247894343369281611057828551249215497127661670687601048254551588463970854288229473244859562557623261372210832530708806031325525646524285573640228619461778397188877734057769485956964780927842612884403803504884387798113380659414399095097390180731212092172599030183631661464387241715264993594567253611371916443664224303566262769326648415178517727713989358636871133350949755139024365644955892024739617972777201000652951697803327535000049130893377243208341907158745559807719108585124147309943682900721363451794364700111287185076935761096162588955230536274886162649214522791717315658178157145436992368420560635343838943283679143953416707605161197170275170974605202480985519762087913195864864946025357608317225266889347618887087269123847499881800655899351828423197971590772839152609530556205199246778967187804958876296130953927559355464366334685294663516888407474327187221417493194390458451175102389427292818933965373975715916778333629183680807589925645785445655067125691770853517528528714819144543943157101075207807585203482088549258859789051483290743784764248664088796420583199673542583346420589667566629205868843171430960856715667630189813417136557260328237240413226706422907504974119265237983991290347665100597521497720429382705924021404618952002141376446815080563896249242131397722237079740753113738249457084447400496198113757181483228992621310550799337706783159496928550084090960059828735731666326833345264971262903539658448983316680279940881787113358610250727673256459311047828312230357692260084780610734313669917588047279753556574340137645868696307003134110235615480932632662944765907302586507686199383268391206088054885986068863399725162734833158209970558515054039214675062029619291157262048992043035862877547328659314653187917445735475391392681329234230287557522249696138827576974962783471801501688253882952377405135185097865415916324716681322667970291551847768067541207506006306100074008841078709832997390635523088278765738042923280530703702685485838198846268087106227758101814227769267175166839925616670062055415803283670266614440107079340400450563486068464322806429554902910002467485829420073042738291026730140248716082821980653468970643317866901186257277418942063632687863686605857020243449064191572270329652824226344965427255296659465010082171037551770278028507428663036996502252492870931284582548250715985272578391362615553562473300021699081861395224458530002328713831220518060077482763718902895221239258479080667933603459212121545802310782894029774542536784066068311859826566740090516454449674862893233404891756890976655992074421890759305859842726445973051348798964024866529970060353618389139636602588872394568412130636093496138803541247737647915436099280809651336415324439137892167093851519519527039422659006713408610305899837544278262462419170423153351032094025480765694665770083117182056696864122921453326884800844055888729431294121436819638879516305814525750778280628910677277583836180602810707943204966220807294998615615442733732775311796220546257400572633376257165489837584031938497563666309446430371428332195078378341466999051610708710183578376454770786902842475932529938579596970630867210548079226859599086675425953599673915783693177405889877317173193897046639655966949622932720818586916297869552033145374702712768678462772796174046566406331183660660862432663635919573483712304292393958866514510755511396008700852306306945919313105582085610271125191643678161562358938321178773032840875543481680097729145965501923653231682359475822590387584330842476768506753393205064191694213612875259112317856402672938307244141008022107438561079979044535400039285671105679043625509790921462342750893664201663781092165206685698028268191525784363523993982941480175238358455230446005070802257654636086718049845983825219130973019374289622374956992214432503519167473635378788294314142653128418719915506862917966369029568551678436205068633048686364856489183982778824103051875480028469531762013887855694923184156050965640926149407139231658734791179314151743741591080008231659875524649974162775626464595846308250409835578645708661719960423753441529098797145902022984375611537333951884880795286835638026251167636097665218286112840888420189194382376520118167467120719671609573659501846261866875363460768798905805672154571091595014892157962855527925194491178415897559905811931864296166405940420581436876676679738037835377425812661970264760149705112288807878577902529097027666623088630445425651173939257663027493857551709188517957799545137003261635505031738971755932721228774220358309133240222253295963156210784417941403822212436688242268237262707162359163807971243606578094660630114508692288528128559209012551161503045287006344823480329163281166434524706987077999233902195794087315282336027215273440828882066812518627954126695944237394013358296152753111870270370676010265712777185774887778134914762126776980263816261670756506909616241415405215079556201503407885155567177638935531394565908764439222880824017152752333735139428542468525706400890702901172236679477393410624249568155836414896374742300289631495015835116147702891813174939399420823760400895123121768427640951774383739527702572933353772349619096312496210633105339356150174850529733417523059567897165444920184176112179452323251575115550924272844405283674246574277956446546417131692163042484374445048826849349682240473982788313722875828431954522041138558283823348972575507479284188229843905177715192219872590210409109719925905037646874724344348189344347891823784514803302153439554345102911627371048023999869004528409923582919088864063771062747371378226365923394806885903701183138598097301320021751588971644053603932657852515807256705023974655146048321976450936095571360789659674289674118110438744399811513343088178176933342731695748062085467405773387716546369661922348294425851818820096814004305339392953257180939625802955996004960036973948006842094232657896407224785463965114091125218171243915101121470613765825897091456676066612340987362486667416121793968298197457508062716717238782524964584995894893065714123984256817572273543184078455876606120473788600597929318413796403448369790716838210682823030324011093933146797237610725861059363885644567511862233427225038612640881598102039332586379112231071922960928235256976000671392921690773716661168734574769371912216757099509469380466137439066717500368602225514148758078568488506849166515224037918438982441518359675581905858896015028170988613399536862892393018281787274050004725721679859518683166113333204444481007778875368526515560601047441619839802059528806189065581247557211383880807277545916879091601204234626961990262387306261719094031180456118378000246956189225397646530452734728627596417073245643603687239088469974022057800405838681756459309215271058885309786674867180861200549547270520844899225900838326667601121200933918760825724446262369478528963153086091801624693240487609206428233199375352518740217211053178388983846776391251931726721222463747985598864613139144979311500065925512194237904587608865705010335761236436829165982737500264186319282281026264541385810939207480267868949212414878330029589121213759394489460411293281186646134478189030349100390062305301695851616320812852168427853558618878736207718991995583248457779909803363566160410878797996297418700006911700999464211299042106696731191107311359999332662730513943132486992119179971743985029835492297443821296677856740068319853003652795640766288952070408662231108205884581036565977906647525436826175769861143034459874283317938244335850826956759379423183260559532786695195440199518444617585999085932862849430578915392738588740277123762430584993937158078810244739681946292363500673368080070873721126977721615753479234917883561064694337527454085254179246742685711480594947578701140883626848766713421590070299229133270534616276051310281485157049423670234936883649403755789392964686729177633672405249058358918831350622127102108614030263416906794649296788744837665876754790237798398553069415723453308437724104557484062502374854674561540958539793594266678694839563129484571850415711812977993396507491524076418964239557819564407032633301388479810883356888014304475661877819563173051070384539670221879523902329691427297229925660102136652166042333931648040152822308589252054421745344712493423294404167729632138669126472939341681407924295696423185410689644539053767748760833637926526393122742300186287043316564361301444417851529818276732881137427206493851848104287939120023331040494243132922977467569090877233475188287445903380424223696143613834457829440311414010840623046135899399925006383884943233331362523172884968674215074695765396805587492877138584717828429390952755583193665393628513449945098679286174090111776365594593657092023990334759152064453565525290270122034536118447564219317261212363685563564726688034409929233524276120718288201718318178349064002758286374401009271990585518425617529391188779269854823242593369818105709362774553333161994328195107942544427486672943932174066755802345393194492089536525971793425853863626878902176588689215454846034617618799108322755315245538629511513414332183997297298938250601654776236481544452247591602371170171595645249997720183569830211173359872676364660674750844298846906486551024515006252896571481023037284541394484028728777066236378118698810232723713524094962042082755524441602485271200882324369572243381892876328134655493775950186812680789673362861439221429651194120266833990661081975167696253671097597596201105080139896877901963335806928098015488962757379555906738863419438430617447165373325976989399857336364661060767214500185338960263062135674546708950537771740172633795388750386314050100816860020781462000509299309524615605169837503450804502975061583892740759556157706803165231699181256933002615050578868099166024308239088312561980003098162424791276975411793123950462029582510769915228740168562374509982095261445657427722024679454985486823996996088210721492858053076208953675025505722500003475109639912084426874640521752820921959088116453828704419520403291529311636092567452464807759411182104350441575298301115775049132047369660740256468971626935243267976426622315348945201287561435306082392278149330257676729805849558109546497624695132859631921041263080922177320127313871750709273167104020164804857627251975827499301533905204405621391747311698448418801150568711746271569486831670305450721616313840738299475171258726802073595293418288066568903597233693676308618009879950951630205712029770426855959755638029754525644960858248893266507203216857855694855164356855388419162631343050716311465259305740057808042955292371774726444235240268977959008088345869513357121019092931063244711453998055144309448139161745197468305923043909055175682656392681759987334045897743854967345288290435356738001034291929406714663289141688133223542101847200376787217467588869554089211015739566914007763457294827656210914081253645645111322889131911349665663225086973263167034372443464373370427535180806247790294030419795709763708203632499587764610591963301376729686932292454890478759193863154171411262430714820672029724654809823016458805085575435796096265499662821687839154512541801100995434254021756305341518897728245735320057367093571171152826520083253548551972044542750278688336992974879693268934861052548162843655358594292887427111808232660267558746522108078847351519189365914042037656407155610188764177242419730196427744531077095244712161845693321693270135558117483741879746184255096488821982086087092106495716092114650524790396107651956767954460483875577817271854249283305426241588447230094759315628154379030522939016104148972149919687295375508832291392073262223196063020924422511646475864752638656204842253887668822673091598066318470966279197956000448494503175572892937585800876104546670230685437711430847758884836642215040829425599673479647569087461563609909574628632063401336516757065196127330812045564651480675461929043592779157821871693297086365858042330789390128159875057264816047979992414163309126681993847640595834408418428396586806144297598222032033111451723219336305589973725822322704539280438254801168851627585391161429198786386121649914157493222491774804221306621553320321841169384454703900590304944666461638129094975829643845308708010550594041686453293534245014462582058799941391978457784245854752749016901547630337215780116170045561662728682200403127157630285357677291252159150524165624192314120145350372111689213040890936318981293265198420716067927301919742289363381297820782712258295400287305425862820420046373026989082931773482912990248533987393829273776421928587909458611200826321810480877267718867396140935118852918028304771433135076550402775011920813524070380635547072652273421070764035191352701708551040493785860193306371574518381940775137763838562704124882367676260150529850301458846873486075541878135268702661461963311363381092248224018897401208811201080548393574495889960072729850743723516508141218195131164965318500061078021478465382360580018486642593509805994975894586432722408479424564191818635005838066255275834395855572257101953395928732527269956134875925014127086958071855226188047216339756910924661765342661370197349139579126909264676642616793678446508991971558483454151175541911857289665968218384625727178225134124324195145869826664447326477763840009715022237083357498416125015981957608669521614693658538214229609754469861567800409160791825337114779224074753642477179604985065557568296130318553432704632650567675200099225506303183048654106971164245893130484028983186711493829702168232889846858310637888957130918608772488659796822219029872932772289694428705500931596115398857003491388330556629597122849293783630572898220437896612293143748135026524091016490982200408800791362065632930763905314800551696088158074243605526468220011436483804327086790345215083429955594639089383292274890560620409953760155097576852745760913326950372642361729118510981019084803851571213224390675507986888612692335839148274111527495920613216930212635547855688740764988379460421893698958509130020580839098459886788897770460931414094389672386313605338655960270010033100741353749196625829176177891133082084359785088734672038144005748637823999354529648457486004636739925549609615727887073432593141851424346163277700550738408447611345224456400570943403930856075833644193921529867091413980809018088482017999668847358391899320501389748647321952780469431265232887724147556536542008839084402462359942876964242528087609873044911951097722831912720904135671979336036503378288333547762348460891671836501014138469268409991566512701559428604850553564899332542621614557954994037878483114059693688845046527849518449107828437870956435013038354330461881211891867526379763854866471082891501848545337865048734052281696106399232640110000565458574665629174331550435874640661665724740400644376196316496430750326533555864703893113628999840268099572043464065173062476579722173661478681974108431558412060997118523039078792430996112672113270125841891703789163851466373237484283100071415237772365722702564304172766825773900760447203276617577359697214538053135139985979609005074184886933040894092443908833090014325802771655645734934632731417854487289204582246824875793348789596606152679767051506648926717761146192739486067644351777809566917383908149804584310602678147626584575418620371206214857499924282316506099208757717924863661977707202913790522681329709370050931735981129710361617052666339242970940473198210309442692199625116243276111024127252633269286315012028697923048932974133289378585903293510331207116781116031976274927149740580175599161476841501048931904302862747460426862292709109704301514225342293108671457065396024779750467914699022654460069994090710479283601253884798705958963855681432634148004834273094603233458708897484032694380646536615552521551610362462242815981117117686041472557620110892526772190392833674336067877919730058461153801442329675438200827947470017089917704256664262461751414773868185546391228060999357836129999891565796692350922918728242451953222566277192662764343035141724701490837860455883367306346189995987019595068157417043982083924413615669444670017268281288040701749062410805950997919551812047490875914735554317754251236438899440495630134427440579239638835256406519801304530365287347807030284209583377999903678224815370131622183268986024632190442873402240689186212435744718272101486788718031681880973327454498215060122064735710031721519471491586174741907482336370519448223075750108138184315764271991808437200586544744540550506194712532205760495146306455873333942329265993591105988231902828607284776990115780881005102530259784354035754764425531790416275460183549288099126087133850743222716355268963267449291333557001872093992217639415044170386887759058833396788572095175166672383027692291243411651379860236758210592695921118827153403894732561405085513024589481353138798400566242533630099947718607894193910028532389847384185994895169101450243530315502538402677920893293486988448542649154636762872593660643527867622267155602897040568398349358308241838194786491310711167754172722442213551389336036582601606380218450913460785871738390669020023375490280898804911251763947614961615132725700571237695622656741172614340512837204507677359601722424231735887724566657442784387233148264234797432675447721356600082580040626872427883141730299848699122564217220086983185416280323146227431621139865608424474814460607604178917246351861529233258241186990995335004228396417167786078884806131788339569589870462498159694495119203074061247920804711445106454954812493668183790555417097801727421116611996645651664486750239349724910384561048997891368131145551587330999742581043723988440575449350426593994068291270217190348806384136071228746150290114647722481032947098953521684240567567028756758569107679828859847421633392106348344435377025795643075133363802948333594124918767546873686685608690044873470838422417640143940598848410683215011764414912477595664922517195075694515524023206694525708408989514074834435828322566665603883124944316792632901379991536855995481120968973413647341229421184035755762686807401813765696231778941766988163452133481452517548711198605367979495480077707132154562066002637511163601498872973385314263801861352732499029507435698334703819576111776883653900197230795499135859788507369062380491911510589236037762463425246662680137252395365460172518819842517387288726035252447845707254136025398096226512300792852258806976918610678939154305467903236892393808317320962544774006655385519443525051779386438735085585966634492845943342844462416030267096015231609309865838819359751026229258336486492927004100428801927180540874754041410914824732441114634796937153921133394919311172991535589960360182623372869415631622410961138320651166488039524332195986683838266957613584819011764295714272540113435921018630892331209937646075271102935232002394304382759619207594973506764066867439669714605509405361193191115656411866287517738637219002010027752675070649814086808208737283846397239149259717243121897638030223507676699481760992137403465045125092393273914820796083055633969687963790486443516512401453721203361027035121519599042430886981719788042745871392432386960479141509016541480634854186031254089576826546868972727181975658393390467916555746947614812834268981970370375184454497483446175346163517972081184490565045421192589653664674943000085305412031024670135887122809650970925028755715451935041958684148450639160272926491798818287583374267234120822820780332383158983377269831344927111767008481171568674503604114094285701655580583438128782824365680970232359668614746832558379337568445520946705710736179348195080949130800655478201537256895877089195476001996102821309828063756874297629321296914143110577654084813324886108341724202024384866266188943484862202145480025781565387105574403783591066703441175261312679510793804571178242577175673228721804656661827737452416674418088137900269008787975024206855877102694235962510805294634128953984064075692857356821882111429910719919273739390838219465085293854043225275049171759439592378702172645455572928204157321448022399277989712531487285485671661893049854008146009461583900467361039144344830794829728591858974304069787009879962225665396376320822673947918430973641172378231079704013113170770177214716789886971719606178016242301738452751454586978251300140741397797825348733938140158028479649692102228507508702357671785663567889007751117304379594165031650930781565720404191670012109384852759242258001164894370361195832663714319333866268419186937473367699774183731140775056456421928376036211244264494951971887007631728235391718850941707191038574546395661695070057652794205074814486794726712461402087361927412362003183598008535998279787282069449940100634820128820984892559645945933007311019476409016346482159132004454203878922833426065333625324416404806710065342706591306222504254810889900907542765549056149805574688093121654068006915322396927549565461800133909280574886297696149334499256035323724469738273922778465864882827822465216432875760158724994348236909656030115223394138057471543938286562128266517494748715642689022227170411228215053348648334902304924901713216340749865064979458910298910359288075340235055908110921900615350311171188440911962196203187412647528323907185179659231879841833605886075653122412157875824458537403482453050612640367198629525062514855862632162405850513950302149798142179627639533079896032136908051013339108330756527469835039553756282536734006350148644055464228398899368767848400840019411041921916762627393571962060667910414065494863238367861339126901913241555237507038886334710626080554959888393200476868823798886873501565213200694773324007841222484535743329842385740556603561913582319961831109127273751670071580915511615590310820163935206310516352223431222344192354441982396767877165971509271787879058201015564887539025947491479572911068845274268526057989883478942684593555982267833164533552533161279351973530832473464783193927504491733897374823834487055030351740744227964781655955519972126450807057065725655191897796539684996182787754105679990090744670081919718174259621771236607691141448774335285755230484901128118243299835878526849997553404798350451959680914544268198805913038680797857053311623944128293331251891128420818387519723967141580015159311605852200182967869773562861976575502368929328886398330547428865025926796654794998977555816445354319926526963894114436209429643402176300382732070790393674281754493867800457156272403758878827291309462710843223004067833244861121549988558528502757606514047597823835572199024219606333397996446769598437519001737438613320818484012694985147998195386308312889871763518548158703019693894465895833368694712348909303831893148613639915542797273379958530712390909029673099553560481535838514802639721510353210459546620497776499201292972676854893399053604336562691426459067618298606535354645120687372842601199112292734871845300599929451066230881561272288306419405006791280066940355196914851667903071811198619478344751088095997436304535609859181526879487771706374026451207121695148972516521375072163997909831114443387367759311794438898767923024139381638225139819530388724131019138552126259422834052444552344806502370786899813412665488359861685839852346044730508171756012563155998808443451104700312912303148334495898584341460005088483859235245906798347400028854686150963683478228211386439959596932693137723109312909446544968846386237388490208364203207991373060783750638383420468135221552501765106815937255680656837715706471221198058194453879497111950062835864586950995231000749971966420053710007598589962716747547386976055549844753529024306079175106995262205721163085100413507627365028378553268726270248677344201111979831776143779463151328957747816105593611253882775808868013294001785875082909151071526369724080552752658425770022992709487609946655671470937709011681406842290740291968761296687483315602545969563512513418264830486739980670654575322107169217873890796810078346195238061601506903470387446691747964832927390547193363209860169196380904789325188053747089308588471598106298696404811119380875865853047124126801937164009694682487015614612290470341406297433033842066240110280300737209813541041917554785431587554610674886119536549304833674831959595232061299888965338202290133997548305450756674649050051934570087130742570531469483159769579915146778963040825215863662231344380416646327014381079216873100471421010933709500684366824668614212911341307570943450815389638079040632697231354376491146524176018476830998297461697739475193824452617501544764342150247349005042199456435350834188105553973961191721234475446293646095646847090337809683807886821746525693172612630116873356911167344183407303846110689571588724024836737219498654761596801095708169768187198171355099184890763303914433110354491678108584508054532527312511979090471870612183593691145759512530197591302355393106720415342740790618468587422323929763457350461713199263384431669536561293638047091640929049983268817487165373477841294785132304206703257348013383443593671046095402573660922611912944245367754987851790915307400539204685111470354672395923235119327851441664518060210251592511485877935857814500936859527272417694107011341544558905609753799597789111444352326068079848936054442835965158593921484592188077403683813321071046364723127375468283987393212852829996259310485732580018259120363395028923924062395923841274597009801325564201968171521272883570217086728490324825624302190185671872483805577316391733693066984224284831733804823407365698217561615840657731258124418436425405829527204024099157236725512124225816879744325388951235344716404578112351205819815249533251486119592017523723379941800109834603556651585004224652942923331862370110639751246081536680482911892779449155329296751836776715966481091746396893402156155624530227229452449977607776193117539148401163140005742688912701225923202516818529203060716256104495201577202569300400189406834116769614981039935672484329982702631005524878344664342895194185055376206512922099740559418581400839789637686680153481326380808475120209959175373219269192425639217878830043459807208247082087338205988673919265319233408776616949448191113091913546347753387785914566645042057899915708997835901437126718336777560260131930458352736021223724089762940151520622108352492693438715158722717004941796519375819925758786444149792744784240946153249030092084070404705863044947967855296939957795138477990574573094912069031152214031595045426186824415761770790863776829667067662809750889600229687840791678412722155325009799755730725279107971942695713746225910029183110197374569804691320672418808069575191201057843082134916567683396617174737856070627611515187407007132258888730939385330451477274199353534301305454106446175893096002503409638138189488237024760111628435794319603879645323932202769077507643480175212905316473228021024864268777862557892154999254406299506888102133626248957940637557210950336542849583501905892150076692836063710452511318949639993542315603735140683007705552360751496023536621478677305401373353360338657110957142887071102438604619886153301134267627177373069362571926784246343092469835569625222103824987562065843318245263708804566540305704630720213613921071637630667004570365156455041751297841446625528661880554269225938532098160395451299130654250751582877291875754656358867812889627675136520342532663800890136731542387609078608280742340917414709992221146941677393509066742963530219912023419774819376666077649572529977461639632685542242381363444119569108475346895469302609422640082957579303102217565264248499790041159754434194482141264497868569120741871375785923319855136612245312912582043990962232040519474277611658167366095872195342851064095491187619598980031226683012810874043797067351450325851628060435167040616942566750793933081543556395025000493586797940191100673069823989997499825801450595763941608146975749001118822643151808811091432364370756419421667512956145667573176200137665807835531052682496511874923957485614044418203713052205513590056954129754770964373123616948591760581797306576884706459460794053661733737682372843096791768225857773996350504251722461119120112949049503477207777232212223239949946177608738504856125163762369176913825906636553873520479278891829895247945312552541125139191757236188064992511963731874597678566148427020426936311622935149451822591994631909850090938349586020876646727978799902641985982874148947904535803691938234147293320344087078625907446373942284039445577395549800060470129236056464434809407241724750922404047553505304424289312503119056967033572310761045212304233235217125923071230386313937394788861158195058296998307118273723925793469424931055843740918435731346535040057827947207157861943087611470806879315075386044575493334573862669785309903520541490461958102850441122800373518656080413735664550658809116024795600345384389589192450068550463875190445172331644106362515634565814457820331656509931136151393278036758415220124625533982442756677001505304207905521208361284395070077435550471066347036019731081676935016631499790863072791214265977308014979808114205344269504617997113083629358960342035658927591166550201919478097919794314193612498216852843655167762759831310108061969340562317946494766275960568196615010303668077410064399542364118074106093093999724403737810042663564214186844523152409244559326565402374360303315676584342001169019144518050101607076545485030689660684946431285130189051186578683957738937527342892161796578612939224617833700406129515563611023340181998941173510527964052736244897132636087701114383391825928035552281143178228687456967447677408746860765021538443857905616866261814248661297041868484843710707959935410695389563273544056609248604606669769102528619113924890897764076674258389362936314108148329396018836544071258941850505770719641838487349674257979790546842146358932119910005393364959310389751154575226188515986953896116270701409466581975962745717213664117751582396145109408298323278940913593767693126422822008238616216494039052016912153395734082047513597417096226622521080277929028486063775432104443044870349741132890203293103283830936023906807695168097792529579285775289009735976274163813100570782381881941101997458666717113053252016107523700628683262342778488924066508010671719608076387602080484410128114656878814795903742887508902721320497247592068354416040493940346480607286145492760346412336300988134837159290001235236690338252589332245195468105529464659154919695433399501511182887996950512256765485071240501812067553878649477686646359339148208460111894109722047040112184282886987727818480006182143313206295433769540479300426066188561512264258941798492647739953211111020452857479748367660210595507613585827855107841355645767691697595626864309886347203356120464821735140044875197204030891032478319497260173926253457260962597087517322350156871774656245359926061792203432490926142938350553847390452055107305865814712799857587258984811999513846188659172965360036525276630349282143871604403426629404314955912386259625141533107850122533981009026908498448886092675380784775457185218724090020480331461653224660116238795083306329112613974987975495283544276374710007372000887016608335784789723566581143290156700153262209067211586874734572018535839721995058188493721660308945670110135905903146926288509431355631706282695754820655284250845092581961289353662992949692684672399237177959995834715030219470588123537162706997127364820421110586664304076637576421182479536313522894703900299242012142780250965682482834508412061132104451490125685252944890521617112049993637316368255510930717640844826197397454310175001334453296412565642928018118953806252444539959916016219364083747492029617329680899972760013899343863222032913313717179724539037243339032402486548120707139231414059210451099781783272186156273796677691893474205611521343436703208833115452645990117127197840788422984035701151883399991093054286956805389781783820991760211449253087229191819491323209698210752580625027885351967683675119840154579066075336142506483726579144886079476222807236772800830747583106029049079213972671143455069989937915756821480962299839946449956537786487599831004505554039641524157279614232687155709388523314473251232429787891332718617314424104664553862116099589785854908292067565901969449064067284444935949093396706286399978716785069717744510777067392939037727364667346298570957987423818977231847828257546621615251849338482954741813707202083165905293360900263440095743840233228673007624719903404402067817966713847070829425177890076621907720316631114688975020558902104884689837147803552045744863168978058910517276389947193398099646538243734920907980397006348989096758749161511848583708950596806271599447400314660095923642476746729545417083316973158108411179930274340233057435534244186871873627510105131436375628811947346832693413264342398104685126297752935176369323203946070671998806399371851180317485928958422726242744023066958625879768154209458846088167613273945568453320105887164812995965021253017702164234187987497101521345186495139123990326617934414441091979798867728980890349611012700812864591211303223423560006526942683900576817279268759501729610122336207108615051373764576958717027339185944118767327701550811501339420962147035867484694495811007109056880090681180960346804757035331247034014829355013350882724117083917198416262472751360119339444425427027779193843778384353690893678837344048577459814058086977473656137374596140829084861482573469675645926023462024354804343777469746711772085291048453288982543226405178075778553976658502800160167027164040475802034320538835605598794320017165671791614666743527601206473463012182438279751042907474591002823028662561503515871338524535001174712288362474332087634005074380078008701068202182488640751132632519485908075341356622975555848698864723895005692101081483401310323966205968015607990788018965869448889616974812629154437739624053976086734712314675021264141165776540282887239315756112450792777950933115090184737426369808217510647196847996612450111573443678238409452734130646593343553943785565436226771308916798838311947895686988243245117378460444514289714042260625537487104249794078395380601195575058967348274725098394736144671673660168070607519087060340772439621905096947343853434902665207710276535221880893791796160824484426823641282890089735195289102615313844728611265121413011996810507074765689233607157787489950760217578364994115622083370804067280362934193834527267002596338142200696880237542676566077751540347804504539833811808282372964234924999917800033398107654314752456736761540744556854933468070770116639278202609336991529833626148214856916437028420686922090016694980330469040782102366189588555663181921772807312814965294502051775947243355441842429573156832243274723510561902112353642844777454333943285841830557591492042369493505346507474057487712133223687011230115583558792767461593315438285941997265785363300760251624807132579473776426181032577486622782330587594651437312046783220434460011234653783736922163488695121251780123792590843640659955003836938184879743010035639297621377453557406873854994350141509923810360159511900853015734617216776140471623208845064915278593865635890759671710773701554740888325948546139194471220469761981890213518655744758652064691525024553055204508346376032413481476452191506715615124636340339543140079336052590270123017851610641014243183407233446997226272240549295765304282962502888773323852116640389992760805461197945047410120034913701581892748909134794548217023122786833804207777828315029675426196090700819922314693422765182464733855892637490835621427993391899073360871082654591231121695778017787034768380901387510690788105075952699737501898756296173081329334731558978503185897531602218365228651213290338423784575044910533544057043655178957910373263017543466637817168918511034880020719611990963374999207891554241782532511594932101765322107280453723785349355332543188915612336275192825929460081603506395147946662087555244893067242450054571219543555330910843603289788224731953617329767599538938325462871605156343308725885814703193172474920789046564415978134286634354220549425836532728599160008845728366934989361743727896648410724468735619963680153331555027785688993100696835973989469218511559643800141289324257554138361071361474581202649159879918007588610575877930771582924503144031237832848684011825625042293413355575099605097611179619743803869902814909260507340798191607164963045448446047581869969419666501304760955365219814714202116545760960906559213389495330694735528474264317864217674478422769937601062239055842662718180601931630112646121694618300593575833868618508952148719449437512578425279505460515205959288864318339160096204109771929885658043278262488840246571874751901371832690458721217955299988101637580897239990727943188874193104610526246113054093355846478973015046311875416988207231779940467528560877834607540051271315577814120126738184613642098985933724537414976782257687558224452426593689899692995921803748111656133538453343168348398471334796679401544068819589410494850661655592132431517595113359786681410731098580270600839089595345660795300400304983989699461000627202184229143471458778190862830529422503219047122020803596424267818793305645012439956723189713358841358245962610368333825312935200918483210530102259855444924546148627446309457816793980870391116066761510660229423657922977139974428127660215043107877386363920121277714200260571473205492592622716539979971457717713157006053573945597736974502923873086715371221795661246681711316315745085372948061385010249734799440504445478379393025055965098497062493668204975682922134725146204923699571774583547968313368319119658309363262459397470058009415331297010015867650214536311364647364111253675462066480077252147089659384545139474336566499817589811893639133342748573540224513971160612717041517304279197597430513247015046231539753502290248844600487755882754550143222845656694919037379720688134344209778556885541568570930918439292489804694153235940314151403481820143231422493317365275812724161142726001288162812596351432892339670584244430980988461055840374771773071145696321877623511520896027501056015066472876056059232706285331464168105528472113387833966389392223450882732166889214493295336869713316607310791910337411475468455674933226439768490205346585581639654888533799297140302614743562473235415384173294888646751792167249607324366872829302705984755580660127229239359589685106509323733283727059085501705647202805625621708066004223686711694488868987412503693664773419928195522967671104725670769343944914318845822194873504175034084843347400495198780283517029005404240670741954908237485815997858179324887342425815095398225229158956645757014676428372063613055854028881097755951104220602398491422074376758340071388128793064905627040582987506942384334918251407944683008772860340647515877843881595924242932780586143801819099249848629170303784883690549101871601719276364347772909406433061953966051617449505118058368162472970510266697093332871627901266740183583263788761649313378182129658719715252911483951918125736812756447403079778118219851189064281136616228830796550109847256114233885733080162291752779758540066390343646144001597187046702366376509764444487524102347778672111157076213209028788718407295990400408328524221238568038281408998999896569049290983406703284713750654989799151417998115767560703877939354547386703903200103534628745095622219979989236124444461495874791886307129619843594837514674156269406304496329857334074566518309250604238285181222620501422460151690562180162112131982529567995644083561795579479342552377937800619308977702322092071395095732044011492175921087234460862752170137247520226841203362492712619371835614749498242094359327996042225287983570820710308856873825454959092724190759119786990995526515855530416933413809075013892812742406975773493618707513798195649529519728495834652384060038302579163783660719567968449215381885667125306105517148576253467034422918439967901365725807922270384537017700862200862405909892042352452249531696229033557038798201303424000409553528033602939682529009750216956383967810432910647579747676971748165794253440304741805238997537373448928811664710180074078213946291171307963404681363363292277673904737339761506268647242087069598431716097263511072864018635751177415827600027028869767355884943677831275082323360746503725461158924961281544751670832261632764131265808839538251661574277962078764362583769959427412085243729852764938112697197614067959784468745702272914423311674266175347376051666547935895444613515509034261711540618731292847760812538286281385963346225377268219404027632606289132286057244551780462446829059938238226094212359005796956140090811581129338738633684562773224699564350983967747191983202162229225420243870233976557997262978908500809304879448988263778771562255978074617685208157896883257933444977334545294645165087835254273848928398781207131501321267084748882526119584735917911490491798035868508403558102708772743857834831819642764558891742387660384174763207249211330110716187862177588596675476952545583297168801724895346095817443521808343272297527366007454450085092304667348732973825384002514565147968646799415529527331390224637177581256256376477238030822349976373566814920011924126066636512009152741444190007052809757046466976332653801353749536035744696577802801428749046456222245620680369060423884291721179422076680363536612140078041822148179063196720659365869135682136720053043561158633631442307382491923493817217774583471386547287392486441296268659972934513082296554860020005200410556671224526271927176300300758192323740489504130674161985002128263774472762292802742305685085679859419798246331143159517583882614431490925046353602768867715415518265230274812935373830779005041354193550961100730640224821638375654462775809913815066667247066700173850800618649721582287750456829280443637264367145313351592333353778211778609757529868486085813166293390962022923768850674556019561411476317303505135367740365447873587897327362520749040781225902536233696851076993294644102279449785138739487189230040406460492158779060758167369082319911408382785796420633986169354797593419717466591801289539877996891766996123183077486428545123975942254567090722134584505079939161590243275939192130703822333491148369111102580703431448428995362031889298290871261784203508645554481094213174035767206761274033872789002516959902335300060239574630788696233242368701153968787806998611891931495384756446679156712123730776248971906363930472472471036644355205326021880417262333760532842575731888645110324681740669959276046208602582644318704765237877055769191178366160122570291572477307397953834213308432043924420798186476237317511301845685792645124692761949468718879811732514787306221932445656404368611341974284785203265883811454073608755450103781323689303077368653019368300025939941183192038449206251200421404153191200551490862944434733073661631757903434629155774702034084135156681981787198599526241368684849696502950510634691730556278116118638323403008747750331317680378526418141945886494193825363332547792918565442255611956223840999215416446428174220979744614158541099782780064181868065050390174427072394022330365123746996285316357140663214179814055327903242372105191201810481780957961608354226841886651666230464626989636483062057327417792378084930332012080544685910179205077233414778633039520056604946608201695594383047619696778319969581983531121459955296232261998982150117515692228525473235141293085326524474646376905767347222377810976053027040272561399698029546316599178469708278743423207253409170665417387064147165995830800327019573001165985874103594652924751717837724011609490279761551986122625129132261261251507281498718135200282685488797738961254908768166350556149812699019461361573919662642692922586910868579245329468907453968002671737919923157996948289483683073345777187795971656820694117919691663948672723677209892681793333871116086836692265246698643545513283313008002846926741726827786700308622929384280696935711531458057790916258930613214256091751553960753645108768825519474861995738837984309814617637928586694643770633871144287468864522388420524660958512397370909736493038098854212859322243070153935038406754501446026436382124777354273726747477161490994434791885446910038598361684709072681860817411453631975243552456540667672890982259370414208430366904698022649808882181563702471611954267575476995156980097510146621564863208501612852151456138951197809780004239266083631306862614232313781197247621868363824104371563464092234315287246419839355284174108073361534652781550015932717471540845315889966258564552778356019027208986257038629491871998109014666267581712536020985014509381365041362711406216891132399004691966068932786725016743044023384190032493921851719526948060659394120252177196170956445303674338434628885164892294410601565685776419673824997327314836130954727783051888632447349826142265741035648646876011549336879065274556123470200111439338455302339450408192397493365917643643486019709586091115699436113932727370176403369616310651384147033287447667963323738019447818568861599310618897218296204717795495362927758952111395130100496655446875792065411564242309875738767747694835554218751318805804903397480058039027831101062465013172603910297895009409463327276218002055006885751626479796399814116034835041375471421340171972487593842097706074685715447726224512587936811020853378871968079091221868141942736036261434588958873125357697960529855330401343362302117998154812811499824449857490694761369894210852121750841239235145277535103965799690821723323881712115468791902862687822106518144340921883934622287870024747148859938319590451384496135410971629078454701620899685721583308305750350198999199224167982319234180229910871260951302464152834758715067480156982370169189050379256544795210054427711984356618779028973236477174784031511552762500828388535196241196043091800799623160212224161336059621832654359805365941093884450978520334027722259289449024588441407665937556678552801582392480789999960370049627038140174443833420417588653205875062154021232151950168873046101768337428465301994373149231682780576725450570372957620113437754631820517684704755867528354790422251497492077070039027802902056247125322242265130065797626766361324430951736780062466735021169058661925084138192537852373868208573087758692598452436235495953560312161231485118411852761638530883158212517220421799397811703180153988075572844030236935448526139587069380438966010948397036621221244586518695859277306442963565089204791673511632275624592811611950017276778297438242140769847177422376021315382278395880473694269947118254691073159399655802871416581098524894860184440340104978252220078342232546632436055404803399626939290262683913567625955107816175288612776410460531812206866206958328656900823393347532666120642893496179217381512504840045596061664321815867966310419504216448146923522995381848879497714709553554287668343692279565392086084297210191601700902965740856324017101529151982757662390531168390540196579990488093626175948065563669887856355287262491204500208417716813308637508748572464127989590152770980639291340595873679569128689409070108891189252268333712895678829308596800266925354203752423251303966276151796832618596342902384239088311949166394796107426668892097311218086954820983675518035748250788075954435516644574711725863473768235900079718995994116112561522609245154362971541608127524037952016924936982010193424903814598624387270347601660079631029099646102878163373289565848859106538170477844344407570092583938984858143368819744054061589918237586312787625647265340709265416745232725207138426542238831415319664855279467881445846527140880333948772751559552453907876859948697684994116254386318269253857473838689710988781117458293247410080126932769315805042833815810739565655153615601600686076331840028937873323705675240182424078408766671713868979397520314145188513795056027289301089582776281362735793082077199168952690167004946159998976680103474205899840638205703532380960261772370559770098975883771971609466421105368727185533028308212921483086505541285191145471221382041695985342321504209626469298036073015205609165026794371699840168489091934666233301802620076431190757936778776500398737473248755691159926920907258533353022658577661555452642924871110954931500679809987930252533436461912755675900289223135936315515804346448436115800587821518408289042486456102414804149800881594849114458603379521405944621668254584206049892746163803899412217869286939912617399176198415949453575384827923714615671126499464408359177474586982516891958493106514667213382813253902645880787977447315912548499881773016638506530916127964722546704722467250533234771081995172192726717059864612994353934398284947952733530494647183547781081357458512234846771614633947654719607554405446564671676263548621728318704556868334994515888815205530162581069276369634885993059981448047324289468321927770065053319764605661684328203877508135969441734558944739196500535043799480474952981667706538648162392270593053622179531238477535497381282242265209049162573632766764248459212743471783262427358567434044085778819770337076458996247431346013457902204467204012352507231191561519136831406252247207414937246238042370159628468706698537713307415333962403856925092233336554442145593746204661217339768330288098301954777461659501442190047345355076713084183543347799471446091401212540123083400162684293808895286098591911577282098857990715328464405771139857440698108297411944356092062329370997456133451965036313983248500702596592450089210043860069612710149503593219961353030859982417378338776380228855863542660284438958391620928271793696168348541486295573317295457501156460354735592691524877380869150150111465249769322300462599295464507695366096944475787122175539788833138231187361619743979406047483688652837998043955052968228088172160599836386789965018132671160959197967625116337520879658020129536087320011617787848306612238680382893189921174832028474155820056815069655383057892036806663388354361572703671506408305057806805977408738653487832259196164813525042581626417685525833489902662748257627499520828603375302973103959654029442370970567082243027997502167806437531075857911832334552439903920530634741739414480797971656778404790080872516226198604412299561497481239554172790277012767109661077968678058066202257135681071073687684403416027171791925897581949978801436069626110020036533506532757084607201380891474738803367974952619666980527610154567604858853881142750936087800678848694785709758622486555506685418691798969355014998948011434409117231511538409160681719262439459996479692486618808909898237023134386435637500944430382923543767250131172539199756342136893977898820195505352139566092625378005450074206103663599810427234945042794581651887422895548013298997217534563216669362604408121495242952222629727413981711869720224285196098683847452957779592337686672179658388026507309751030111274611115572442113376029675242688594776371285198048620961684420061668847219303399371822775491095031132403590710951147527687861688556365358257666411308912769945726243069400034475459266862686546506299990788306683069445782670860460643351720635056659732256269190166184759534417398183146297136257972119010227766388672391659022486066410899880538440182788866142600636406071657904146450459677714902000418463891698702125253723582804903030434233396424700692522371802472393718004015296324421248809853777818923850416941073710116845023859843973155198142329224096271910599473765494378262909840570273546680284557519230309105476211130749220868059724504444384361694384906759283753221206857385769689567841753767588382076409970235023948015876511603918998892277093495482911810469955322286349391718757143747951650344713080059068379422873112247225410796678024608686890082444949250122712455984707079284461728834554406451730808019402483746336052669016804619185353683300702533558075498212692863935672024605392913898272301361406728473136664273630523619880081994126245548635096923526320898428762873387586100509731408244197667003468707661133835169238091507742514056682548808912700104505962275561700467640972603470052465379064016222105809211117739205768610136545730860278528937080924750531166897948945940726086070003797159501845085297460861400426717781580777721916999294733002708607271641705637359552439589614088646410576517840143079849083143181867487806729632949592765411492626593587916390737185942841870580187758755112996738344894287794423245168990435958801952677654444009108789959098410375909071999124376789884040775009814326089615138811852739951578386199920191683332947300223070380730334293438601167407968051920045962407078801034434610499865759367092040247156412561856785128202100783533735234287489114894085161829278191691455619072777797400980609722799915790768889013417939931095717749225113252584639239142769690783137360678093983831813330442948955573255334017511904761241675227274264498218700100999671634768486737065907919592750364778272231741585681247681887336248178263346422541891749582965816803037827022351061539712629610405232769039589062120855907612029525014686609245363126826058672812384294928649306784096337098579832578463487707109485413790901354491095535505195547483541098970742684018485036207060287923442404756029189067965062358377261290978983944261971454005949071585677399517404896027982407317513534080233546774102904337416889856210643881605296591165385391860954005016369648708806295563640587562429791744472792750133017017594951180431138513160713661035865994843241101400798914682498994649791933436580690715152258439145047530493668749384206861279126355018019967149699680399526639642578176406486607290548379655704785794725685147492266998931597156272843136461791270809270816495671904542707514673836480870969998219226960706304425935771620769003233782421653255006152958412483115413781592662032536231163072651123602394435132386955619365504688231796298047222342677820359080729269280098429785099580516158467379601689975562829765353737302984776018017783122230102294074626525628171009578131127201229171874685489232189999138583333230052768154937240392232704529284891633028832791402875328001909963739844429868612614733714534779583946882106500753601817910489841800803426518218225620479706649606997986239495984199914724500200554568221287272055169430000595713707803455802419474668945294811370134107096084285337131301761223172497763075216245797757674304334089848595862810911552261348549910706098893433461679719653745899239230912336456167413684630022218973810666782946815001177841971065107789096899804358989309834821297886090514294916138302288407711517343237430819822295819486925191430902009417899239976326262898202340886233236550298412991212321583667593176749845142516913373354782856811165536867220088040817324209302283724292920128295876783560212754544411978339843983362202371780549097383084592588898923392783011100944483654681770876718869400696501842430862103599761893900635861753295037380288692285379710277192593798896362727549743078685057212148168545533074710211567834633304226466990283460372704631473457325808875479796788451911493613623267628965845452722820801755294858524182136586890584145132477051949180845517855721812256272440794246546080882613339902352449738878876410340596308946541674026997831103405689741736644838542411035740592290563250424594177503311970793506303137595997390858531786158904657449346476382869750253172939255345052794821935722789034052467230064139476044814062087381168018196942374396157572261984058684050119436011643558040490680174757353240959358745870229250838083943180969688398790959061942507384916555119366262063683038705877950332933378002750331716435402088503091067888080134526116566928417018322555349419430477863112320971948778421949023560149194863870175255086000631171751409332585380821260568974429766767876464238295668685046743341346183679146229467355949506735994106474195576225218376102079093942815067150616308343600285741317161967456474393907606688550795793893742439164621013013124467702561531449329022929628496354813877193460977270689057943800337450334287441112579885160099489150897260077421668311171254576002635524513019318320339337963111107350152482433817399801026135012401245372206913371549177771496189588661353636467002759911624992759605107621210251873273614602875562874524107168124174187727348113386332919086565333879264344371806448935085552456986871434705922751349491097878078105246552766861463423338206592971347604504517420783485094127813534396317508098293765281038990320234910822595023287367888512751900832060026935097761897999254353370581074804210888918678073086235323810142977690576912046391959212618990209264263977019840014733559300511004060304034020598722735915746019410955761269040221352811011756422065256298237839788458075344213221053928511336833180720383433107125599188608128369481752103348660605000673728119984476714190093498580620350891153486071023264615828504912598405134757236337711872513134858705482728624339324235706881141168525979536585157846636100792363469312831258003141708179000119642469159929994539624085094998833599132414743826186375719527844405812112255154343711835645527751225949050698598195295225427072004953224985214478480605418824297979391226441234972421255354696353471419610774655068313201706549120430249525341966199984638245157694574337342318122526143720138787039360941129951968874881494106904814228390580282025889960545523071490587119307245226756089631621817492934769384431375060195913712155241334137633321910332191470226679912849684710428780874916465319902404523226792829823503768648023359340794799988116147425688805416093346663902335152433145803826960153045763966653622764153166088585128621558218013695631763968173922770753704244890933265196789267586383419639465318631899951215211020848946535851715597638338313194771666437917519305526551972899879825670623889467027089148687002918759926662897198448466136164902979283736512926363991301652278846610382042700138084933850952917796618266189702301816401578157594979622394542987577911281670098242407273148519979291078702269228629225474484437286378643683430585925550459861294273004382894742128191902880713335314418978922997236203218186079751733680829639114902097312314801681190410780859197720657977206732144377110063595365206559469876548162395132136490025557827911254496828913621571044650921725454049624692030639683029706083878105337544282785973701321764419349449520713478016661251920130194995694855990255965271309302507658627569469541514898081660469357717447465972056231881102969120322326385330903890737039055840928228783408824852429386088126985248128347947867846845692543799968493985722956797252680133259419202892107437466672646178142480226940723397980962275906869309136146055722508010778526749421659359741829354522580566009406065072783583413217189651681107616580972607526113246348890851561180023781353730035903893255858772589297736824814691913670272649372897014498524162964660472898507499485410355403987872391085152136997124642772188250622109810493795475041625962468549229815508112368530592858595273306308642428572928558401712174646517661572026930946766743970711865551716018296272149305024616777849771722104879589320402338530383979113624897897638117777600800629371511986704492199156105712837755984036807524883554188736998102878281024736845049968890093202574337687539830545202188024685108950209527052356742352746096431707149855458033389424987859005640393369419801486720053472501634614400489654977572995553826476381862593792837606892908125232760530323024641694898864623975689730679690205850784794943984453859662049019537828288658831749976986541850874770736124668915538500168403926692590962581297753606533395078620887726408673102788013964132916271815537444207594403062830690309177525813662512638187938393770679312631480191752514248204044907465643239097603082487950323584727249825653420132264372500510391843383970741314836956330271489622405309135032186451061511334345338857935969324352931555730030535636587244452563987253377596067463761321152819042864407667150221718903949168604833902849752821119266277648976678422051576495384208990694726892091125307068929601116354080975157829316575898948083288043788837946275465791949468510819870301959659805958536899603123125066814457939768387604506470686119256295031892746282246418662545842984651219417119033690443791870578416807759657397893541649907853584754955945732689884099772700564322382393368384977536878029752871892096286332383341769969924016435966580143402977165927875194080123069794287079557683009376691456644558477276913523536960172279320072679093440352415413299488979978922254659967777635913342969182621195699905623561332608377426548221595797494737123374451850154081573746802018007258727022907345846570316068904559868246757393774416431081278062533798236541563176351397090298767006267080933650192194812929829419518651927643638859250961335854079751260652187527379994505018683074519730817287824390411334136006106056783573166559319204243431701056159128422618745279581949785565606762454534478958847318225655707805364856844658859063731612004671176009544158956712531525195340675874082530224382693579655774376540751431978814682461783587669171042287023182065203410280378192605279488977369196519527819118273101923423730008946586200610846594532144239583539763026193987782141655023548058246477616623205363153910085917720098821651496308659151307295442009631238656726990611034143101048812541083373422601457829017747044064521654619090183841122231893361147951190933723324926686625066765172841526978406614228602039948875765738070083351280329135453847439866665566694515965721708775867299959827141205540205523589472763938271286582044815636602445653986909389892906690940234282451354479478229135810284974029334688850987661650232744043275765157221854818535429586203340568827883546498501334133408705512954592319575190761657010251271535169062488260773007715908767968551549638774081907074257228873887047818981865761437647603461971582761839281324782317040023014051720838130945864220177035320811322920988807580499178457461328001496057537008680429288606471166039788945672502186636064766695383360088577684980578274734771468770097868116780588714261483951622989336674703942417170573298471278458217439956269580278845792669708651080817604538516765179173676592693152402639456022291715513845006180801914823307531972964398727309915271226192461639650142679964144286156442569701066878896056130495115300980499031181707152548128708293853263180078297711513571949020710224498411718123165699269836125968585614378389269961751919126793874772449179507432967664073891495242087738464963556773314921521715578105011577298390804070690314652159077741616982500630421400880098497073438869282899854418041527397310141859903181795893028536644887641056577954818737004858994174758952506939964745565545748242434019613220484316737169507342992826825332146154767921588819643297939041791851803862104588362447956304216431775657739555293912508798647864795755014275285335274777191772373314093010063239825333507036087320615425471404084136387143886709511023646979543746960106294550865166953151028895862091005112553566090362689868977124403430691533658738381108441063856752168225957046108399425984081683924781819731775165667215623616585142628860188994327870389646947300518067779347914755122285903870465941529569068456709048163228181912164226058550505419237702441303400264166592377545559939426979619588803690403031110889473278657545054210122396850880897828085010903969057064366150245769991237132248461618276020405833924933505184240709374565010113149422141312253730652246130403542628326106492298706835961492001486806064465348009480026894067867099245284503162086776544564887700978667689678424875330465002307838031869516535595732381454076077897465016557062060451308591944817372699518404479225634925599132774412589323219184714936226854809213038651960214998994710290701701609194944646842376199206827753145788744180591428338273669616089854970722726146263395294414067052958871143939895399043819825731993004780351911937522089735154505825330274965185831323499059790108658531389451244066177728086036641514497246567151133968523202019653376901737135586053311244613536574194563171219539121719137282116733789037683341518516927057613188439769164972497537220704291248266854948737471374790609242061652759106722849669458191072117041490574938489481541487209843415877775161437298072157713262310607941029159645969222700588756639605279193094459766698648432071748590463115296526795530268586265340315333650639908539790283511541527985786338443410877154530596606353946105754662486000334479213763688023646899671208275120866976225049082327417077442540642122825860316982940507286248569868835976725794308864802945197544608095621714445199281463576860793480295481765666419052650363398385952229444065166901494541170589173252786276119538961841974733587483949080806955603317086005253923473861051782720299887448680378464923374271831220828414509834935160777409332244618460863409031503704130224068900195941629599187484688667680824042523666169246480617722412254316577167574379311090887738393040786949552090773345141811932363114993838411920892844850817988964087484963977620317077377715357761280796492347158457577590464886274017930181258103950021160582267308161216304143463961247273493004104319238652286457843318147354048226993946084580378000572381268495911033085030137868220600629241478273935052090623464724902536273744376420211328022595812494420497812628900681084669700168095435850628604287314504422547381035643689754382978274201753449462625736947289722103218346300853607508741162966855267642211405168440031416204402033404614610438114793807148404598724422729881320214051096193918096998088793413244828657646468559104952948666044222733666797624467055272955334402252816564941243151708349930149524367840215278314566907834482791665357616077874569983858298171040179508001660984362645403726547001563523714656764901230204409870620829827092446738113365330268878916049710653610432400380289809481382710980325878124465054443171418422863006818961383652427824482123846237896554089561070738042405967755580491359897757713005739509047980015069651334025938923827676763773634415977101450132362903711598568270233697762323748284983575838255458460156515027441978266712669533004349876937749486605451035964164342198470872749607116141345370814482479652840272422619215943006776541184533260255672905708891647099470144647522197841520127196705330526513126428507689661677087373505788140063191984703224889510301096477919659664234133810227534523302523245600148657657813141933547177265130324632375568412650737019092499808084481901334797535761359771921189147883209222693032843984155558881518542508869049066526929595539456708561854770763749115219656983051903865428121305843050331449121830060489940136374123261683350698773638940328902605143524552969846252806339379828980415456617054585002536870188777225216557065375152499286432335266327979572336567484097535441007415414559899992198185178302730700858150717510491414609024134237660287420182145916338693313085708167551092546377653290471941804533986542267828681839389631388505752539457478889276903785271636730276901827816230259476538796870320222280699056031711120366560340623515619596397166967829070269607294120396250980967614263259323680751035581995708091426703545191101561845245925818652276483333404220249966861954032121158710276149315756568012904417976518456034450665808018008170457796370077477776614716559554376489238178684091028263431983391293494207621682836527468489586052390590556800655619408820568567949013258378184592575025428601704639013722317486320911122883172695873152702700136980086983268171244684362369974850464473924665744031076209986663091939167249700815221594837057037508989532559473287796349389153370781923256627778760046365702043496193290928498910979964683184910184789237026391601585221864578451222909960253125769660764274287714058949033972812387302570196746366917410048817446441939587495423115817197259029414485369568755867615668059637494900210386864731601280172708603206456599193405721171347721581177573639671780280346169680231361855673331654682281547239722240413065851871427960418033083354555844019673040106821013750671484777925985892706588295033043756752630580363304178631040581899454101600033159984774671100972797007611306768309496267961667217362598804281295034851063784275623255932899590823193614063637035001643648635971386507783798064042629407087407866995684125707028457325326157991237685310778370572009433663295488397914066842198324499118191058992344128561622353330735175020347332625848253707311220440804232772727722295019868552221007350699416671589972739552495389118733730967064456182292573521461804762849566180749149026284699284918818795420766050628018582735464649996227538417014985318049888427337548732576973524448449598388605588129015581031320840610409156438360996637718106620225306143932511731314201850873250572130033014691234281860630299437630389167742482756285338958918621041733442597300085744696657735038530814778276641029798227187320261870308410314253570930481455401471396244637917754219673457544667680283322213119766307022610191895088031647190874112059922541111070705213163043879850096833181404885062208083256436278562102394864612184921996974422748590170675797964991202025987074275064810805479746075908317985829721677050239241706035601807809730792279509440563977319420231099171833216746272299772911168273031203531690318546901318312129972635250998474099311371082992208051993640072473302509379897827610168431156544887240110636502196096528946301705842688970390849761049833030557144119957338582486932325076212071037763586177632209603962001068221504537108991455182707072527228500950616048998910175983044698888605612139759002973349671391964010766741736229083772809478824765186588068544532042501518162341716026395061942370987920389157918611208225908136086327200462589232996585242118084395321562191274784736474877180092846533584151022582460196592645430565726241125326438489379298306770763729584684113143461500319508080902224165271777048061395381277190584738717780527325629715739642061058213099773107520646690841570334752390979908350569970631797635888300467759019767905287141173597193362976563419334157825566341153509101123440135809344514922929880493113009597951417209646840255837864034916917316559480934085637560305639931872711410939216880201390046957546127146517495142166364516847881459171769424566483451379829883302894645262128244770555931932923242049426842442394115346023275672491933267086058134966317731588602712757155936820718492994768300693615244371920811517436949393959600559622952121763690116881239921655771925848492310383455527373238244404200524463002349873099857770196999557781247290278226472524897332267123710382817182473366987282690872669931052545256408095456603188651266260417692685146654951334281143208694011462614255986692018975802412354242107649205771004560074067694253350513590377925778693876110916007894504721485118828551548758964427110246458798933832467881660571619519499823746442919370957960392755126884889544505521857921283914822182954686870675089093691862546404463742931551193273858405682286824931575731872647089546606605567043982212277596986238582264831120694242730849748854459022638192686603739417036750607703550961184653249173066010604241563247129914918893619789204384994906471089933498443130880469004970991868659213585355679629453319877391321526240600677381964119219875624711009474289756463857223702964352336374422638000707658623366991507927957093359567613310354401316201762517681559222546731541087409858328050343377142830738762926504266118675071462916032289704981052586330058607006224679783696568642271128401800900124626325527639068030764961286733942197045165641768826534347140589428202883029353665102781583009570603375076958746432660375801041764986660524216563857400496630711370446381380561345143858450199226095900798612840386381812892988603110004370978528925130618075329483286146075477430547571243292502901817371030402167434648243001276719565003598268820700717825665533660062718157432333928445650644491238448065969631023473500615595215803732807716953522706146129561950403307660447783290183840897920114080543810294563549453537818180549097189867573695045886966448526385030175852183211396927709433394790713589015717206879531328350932219555049757824247020684896155334914471062707732360350260470660049561705714721967928734933041453333075141368185943325597553108810557804717392337862497155467655246759815303836940684190755366033077258804300485117792733369314344398217169939546716243626117547716740072507292950364525707967763938402064001494583360053566117723816133348500395952882525068517583191132673223228105575982324404533589042688247085555938275528834653651549484798370386352377671186002565100110137621499204311130144154569817552730982466167066832960011386029217979887239249698757017124811772966608128527424935104708768956477248639833962502631837055499829619418273963544498134582191005156202379563828850937281592593581109456876857824717785616314628759531743219667140899210248511871069911144068933749004748078381128128539008623040841436760372297055913104300855473442727906949530356222666989488559245259640631634147066255986203802274485569274612198265770975804946701781786674565180342923383756862795008939621659567545613146300826566473181289358790219890247033033110025445081334387724092549768622577535103706374514066477628527162839101756683609556423160674346084190573089367416950554422960477540615405173454565976330570653774505649317613375189749448702063497185101247389902137094567858995166777121150081471534039338791165684246747027689491099819559136823713037563611431331975044843566622017956233057066117910281051213366979966926741043843174929734152817097306465972740389853331947325318676006731972208176202863091535900465312505964547365376287025621937043778584323900102972505470289454268261800493257600799016103910714018856494916758740739574924231412894135938930847342070792310909319910736578259296932075895634497423301585582851445063740701026030576669127234221079632666685651940464811126133143743849260130946161193175257798744005502807975389580826366101587017851911280478181572983823677022226025391183095395739591773112116944308319876925293667619170135125721006938073392575163668756958658884741260526840691925604433968597228536368334743683308213175823768450974036650306536624991489139144935773068930415027080031584727290479105958015454951969280145196892611029237556635984258800585430084168806877570051503453237710024002494315026129234193770888305954166750710728133425690861879575216558624245422683192650512834112020081515143131897300766999201169200419853008622545882705846192377602108898054929399106094499023404206805075082135032282422514242145800330932182076916511300269991067195968131685860131291068748456342921631771529597992342226304513375162327269078712416213248614958761033166789199420496935648563814621815764875564903619720476733282851569221499728891967950976242269205564768184633160884747496938563251707574789582899365435361913870801238279736435133512350017161891457709780926099396055624534801039099090191820040094010639437887408308145452127473773558665005426909129814421244902331313716518688561750897641607237893278743897681293220368078807953346287770811701172254715047106902145059541515606701294573790190331005611284219611108202859761058373208574430204764028002427266362631820604544958445805017889885510933225034355057147493398890386317291306085263756856102136331364275908131626996489988927885373596900885526782001225080478545700674376666810936464396156422413181450241559036195386716832734741995852145404272357839902137312816574608971311365540250966385454552988961001525911678996779405388875195624751970546211566492230205233034290453622163797128878936079290573404533994171238124402285592154969756108973681923406298128538466970543439684534576119521676709141698032543032456897761077508869886314944211603894246632130554186314578214127853761599215099684762513821040680863866237382185931231631063387206984254648906836863312642287392523179707781684217188775845888281668521613735785429802866243746507893729132288998478824790025116274946299587810755674902089726335397523839105321086976666999722658002922456098905547714841978229868609075063534322357195384424801761551232589076273179598092482725434280813095555089137736211054906065843261692198243781905469870141437925874934403763636819752174784271622770698095485231749474684643364359710555673579824106252669511492834419722095677767816299122482532368065204720231245402736608926700624298068695271455100914665253433404977522511100773867508315931725174226305835519468755377935905134750030235461214061289749631589819322200573580092266650524787421270258384452153874679535217141085242519539418429943344135603220398880821340341906857297374922366272846074505445859138798619048335986573485420135206651688466133583802778090372875617608408995609790622399270055088014462579978294237879678916638534846021995969390841771353363602125547982554530997887405510480482230535563805152854125054832848574978778160168470807039233289922475018126233335549336995441266333361664287771912240271498918665546694961741072294141629165855042173445594452062964856236542486203082452175736447175395167746159773926734475966923767412927141511232489199922457681252064496394353838834459113055472482996198528135719682316761924332153965891300978779148542355646180070457794446696696808377649035437484256955430153251000445807384013282495314079549116878509535262625312006553054459963862866020662680413799067751832039803887027068728210484658613123842696667132134014029537193928023314929637151773125022899815925445677926832650717449060294482863807797139764167143175071242701198092392893857021064377225563697077695385985221940400584860193740271172392670484961180836971564536095194464064135478824666632763393882227193763362265331333540971951750665166655705156962544731631541611865331363875535382559955089678347975346026802687549667957629179818588860001946060781652472949568599830793350907183758428509779002921428059644260676522851850813752321167870845900690402935588465594754924436018311440294455931124262231241045065621294670868460115975696919363999733545322693810831213012719462239806206132564403520049972511614235476900269626306370433991265381657197258747798943980985762204952842585864382777858249432373470142467467395483383098959879397021066848133455105106875967504202311184302824114859897129180486791593299017261365254802979548917602066229489523008842963282336872741304090683090056514595219571390921305828224130345072671352385642944391157296137655337352557160286873519028892231707839894651292398271773361867166868151577659759855983953059692574431751859752220809551054297525721637160742517378359237950168700962573814230203962363930762878772004110154365805250333763543035476668641246774007143220835829021697454221951628194415468278179153231017968686011160209455148845578398164797385717935461898606194831381313510927450343296154590252773754621990048355534959242026040841786502402462821577212322273150981007808000018072593099502232512543704553915750399101109039850326309924144450236207116099783491313174654648425056259203569451156593532541745676832436687806884527060615921264657593839023665295067388230135548295584255732793330809267326042972074403370535619136405620168658769528963203869370601698070116829073194781897184918050445852527831417394429059360783995899390405118590371744924410364049669519614455741270200411239303744253490023692619714502617434905880938872032797630161535825906972828648838438516312149480169789745486248835515542417278823781716076472188994370935122244994995988488681517431819171868358504333192561377505793479930797514207850612341715772360807062721137259552239908297195028681198377092252597765035637141184186702926644383709148116606934639380961359922169994083106515135733845294038923395422137279554699425733034720931614978708185629520226984894548775354112524408180927035761277341841319781637554375530224129561829251381405948614066404321791733931038836186768279989837699175726910910279082398581962679729122526973874331108380493518645679175469203759362776201021003725850544973137626916299003995832942916220212099232464266239756387603365076578981280050437612313914934992403622787031576200723761605759838978689576170451639618875777533580809150674714766795052878886339285874618050680852018041180507588424959527481009452467687589164850940605639594918871803885635284968161332159714300601385554267438998722672762638678526577750293940989264804771617436038304241471850018696848343166934625120234880858927765805004323539665378640686661212599699439669318701486193151437693749491851091042528818367693307693630768510714013956290298391656348172883465519787713375326628019271977215010532399881973897543466892885015437091314439085745427892976256041752995416655642900913094764965194712705359630393419110392191394175631115504177211319055678497884897922263922758531984339078035885080171570514863680631282089472372483409502787755228428832206117909204082342282850887585546432367041892743728636616718964468024320916547891300597200516924524096945264394828398387745675371526791606340544703402974023405477561576964686097056959204295040324704235469213288130487755376656872563213316814867389473067257983953345455264614330559110524261305498836474196014874761110709277590246451283839703067264046059969273223090229854148711897533734699024226578167018225810366272079896896486428199174721508463976266208735263445545517168446379416471648386138629526809578550915392066926319537071267586797641034437822855064477663252676331239358924165676938944564613907114250863961194739328088865684894918725681306022682444818346614158270652602616471205665898983196825010806546186482958744156359628378155374434267018120815572010975706544993314980118176253342809000678496237758332706622940189545121328199580244776976960269762916988350291768342368068302442773396676083511199310654744653457752664978513096060266598652180495850905225136304723020130102079405590357799541755279443020239967634092320535068112674626352776503882783655676655464212795225292456759780483155580088287859514831141272345669273889904910263821267531067026201836446645970095967782681535631370078470370499802574486228636050644911745337485448283119388125024089825519168693639068706317550380990694653170286586510544277989819099137405886803149509926812789593282199442045625829119459807797206838987572914894284533311894751973041780903688151539537217363593815695115968081821762683189434305924580801134144726681591944587958191991074496067143938133293448365591108008309610347957084540085455587352805817326203026865072730633554894625235982191411772346859832140261299140515897155495612478438449629557996156469714349673310219549794354027761891654417086741764188549853059554128142467751276015881252717958790323938781436506727751694950753848597127323998836557209834446820716957843460255445912646118742166645112142190475003772398295919251511146023980286030432567385980550158955505061803047504469112807693633262558181225342839040778838982411724796784229959837141065326062959591050280093695397619804939663218675386702968640841222006571433913800857850621301878670107383784897864265673374328162857222103821114642644070373566471544438678888495835619721648805704747106851251925472197470360355024266803103873546887576040726562282405200057390234565429136530173732299334065790657625947149301355691575224070106297700851845552905841871292115742407141379516203687730428128070333790277399415028935339377612318645986040435686797136925806398647102889976854658177232471020776222734563329856976889866965889278523196217335844134588285921616925524821586031496057563453516164726991190859496430701101497194940300162394110789872706379613248600757176380298002084008635773183419238853627309574765304636796991526290172778901930926710677045835464542316646691644229546860354347796698097074142245042121916305333873549818210585929511546590760747442664935888260670210343911823110541636583885052595185025079067986578468086907710692848861599926106839916280611014834692332005887548150790686187558850785908012023680860061949760149514764273605590818425216241854345535247187966696136365738944018335039489972234718247933041232599683572936430676264473281872806617220827832886994388663681850726159359830193191393972827525216211895566114843043796484884384621138745493734298392606475989552211663003922872194163888525515109315363784555747166640868661306755695918055372547411278585250686484184707380654287050759882664042483470360745999497025760050157942776952303452293015674918521128770243025006955599487855889616456773669461979354072401814958540318384663763925951689165027102149745216697791419413609592309177264969575483870558561108004049740518872477921091112669089541022160204207965892347685483080445399368538919870737002086465957535748804600843322879709555896264623958159773745573998602845450469914760116570864891435423926697475853853886430333695533743416170961267961845863971514952943751433579886780420143112800969930780464080326611746012915854679675413170905793515432339602694256416499384940145493616915422034914797098251632244212896618368625067470789204807158492240821935540441299691046491649375958129538213027634454861150204325390688454036424528089950457722219506022140168016633305386977840287030465029194485736406171256768284238773804405184647192724537044054395411731514827945811137942377271428111212194619704973993533733562981210178842274010885073821094977622515031726447515715065315059533716739535224916552648388308486373942936655483890619217584139688636670554474513132208483255182146984406757090263875771822794816459119710357902809106746900707341083703103729400128856918940496278203288686664455827440030080215958731939365900785591619072477275006167550713636101852847446776144834921634037731279705765042525859564935216441579603110667560800023796904273247504396258925203489692572355107858520597810547293877702281288760527845107713664445741776800171300736896447687430882082897651665798074808207009582037049335507927965093817806462549156562459378591482695832185835063337236617276530084791619133128269615249740547099721637058788798674597232150970665982298104110284279991470590085840690730319145941808461473020558882476717405683239195438244735449819005639425553626799215504253251299075397991062519943241407310228237817563293686634928711317630689366188129010017038399443410464260894108907292045803312034260303133383746212545973443383680369972946251671815337509208051442071624795423028158453200145556108922917718959382673809839272644275334004566929091785985937530643662918667670138788397431842499349067355706596785515911792078909609307591019748903874699818743912698706991743619863624050365728624003930779384079763780765900608118706298603807774810376166741293378602026706555274222177787998484171866807550042254458487169660999232915898752975931034242553812003922686738758774823685973643136262853672008305936765524029289140965806995463463886522123017609549406941428965351662449683332029107813343609197684717987311715397477577771007625971583605159602606035264117695290961035204769188697161368730132969551389998491648150010014156347258044947313642772286639740230214391508972863554668921256588023275716548613115366152618630650836074611767743345892420977414210592398499692866935004858870899320366365759820358364559999914372035703452493227703429863469774431842046361964675192242424192520377196071436190368970556401827747929758667429720785341541993315999076996717889335128027197061889065337260437017889071356492493254944707853865137686694073248821517552696078224431921128506124700217770245584466049753068983867446327217509798559269797425673420168397475214767885118174846813575852151442748665463476537165401244206744559952816057017581482308299754689979626732177797720606910974875754870319692347888090682169328389252206931123402675982855916968982549454680429533120881626889046551145645369350121742092222934297890278764894147147062452137930414555233033395136107196460687021328831145854151115955422086973920740813092173369181885953331376240451882154030332034529233167881186068777070628713905762111506737110419963753451642814211268791427508395814407739907254664910576911698153016952958066227121711402336781047405269337380931536116573430661671875902315244033801434180366468656685412551850624431201426275829841264076700209699465194245519630608433138121844417371121196882893775302494106282365918116258329189514690038766505843732492728268207265719954081278090647324990847971570060421534852408685421496878604089171501626581584142096057444983115589780678798102197200503746982777947628885224409506470521587138674414447159989529883322081130213236112337504732477361511024460822392179061352631223091977781160306541304720689494936830708995032667032546682041644431866642586648319502879126717857891674283758692713169391087673267802894251700122326526754585541812760997246042597173962250020806102807479604789114637774539428509161595685692256774694141180207221488719535034284375651775934224561174497928280331816008122184064137101052515948908865644075477976726914452332481247566880356749659758812261041914334192990091543896792521422916340740422511430066961746448593527698287190275979438273103176554665353109515766874014070986932955213708327808738116578910063286146368035480687262020667590871203931423224339399112088089759948036909656580682248213037782712538118585252588658466665273672832084147116961376396801304798203934498846188841030351443212963524458077325401124111150274239633451969506456630282187488699820625452205138501695692142788229189935419708608213316305826515047890301063287954104195128508464845094658794987439677905711229779294661476359554312470289428925001077312666647041367576884066243401861226004007609315814188774232630569183386677098172271114249383439809775314882675041350562038733577543026425366006031653561145250658942126860722018996213931014198874497412660571112157251304070894376244208119415659870078850395976923848127774175577243432491278402062275900990427314264204794923413042670344922947834585311232154813371345483997788318331625066002913329073873884487690773401573657358189468732996302216691323243067062434070543904318763532671804255171764568667648964952480575774781755162675873953661828475929400893993579159451164712641762975252675293823099245307778085415994003534973535512927925162906022943790941804573727750695162704866026648191478868019167491994789553674420530023554997970710253454649889554459281743570932470137844337366212826771406753610450339360585903954645756645448207893427049694728595770253745788105882329070505164950256502671551346378223479260729582442684544196764841175006414259543839342311750137054718612070551483035399992416739512654357377221586665196843096622765532191271470799094799522113354100660708038858557553487230788660689244727486279567372878538973160139036389388485322566239237335466447584080037266026945662516632063000918823438552344841730479506974173042652648147149634275675202731944062739417298360620645224791875400917543963848855463644884957441957749729208131781867888209615389660909740291661006474854871146392665981872424063855083106337149996348343665056717682496097147728165009213378806123179793412367212340793608497965996698118724246305936918214179143991391039768033438803701541533561545643244491902758774365482803961584118486937119530276746643659449331570358337252258975111312973173377590551066385010141461601459010193964778173198890914363771474810694102314025548324189145112922151158276152158578947202908781023948898790262365953711065455752764052633253529214233013512377178314166090588805497754833657319207045130046902949858773732709852465909554059114688639303645490864325714056668288281170452830610893392109650982157557770851167877148118888819425798531227883160334187044477246241639871307998299874476240872305255760557471053729734300315581360468672509520533594874028236005151991220746829323182319788319193099461914636388492299626143577938491006342071179901071998811087012660757728401471188220229686221811943627224245987502560224228073649981073927395087378644883581047876006381209687747422622923314643606169230750500929936239362828068355178794489528622039856436390352245980106655795823591664858035418016160246942817062264042863567658142105399884930870594074587601506150313615712083680895584842049787276147801287987957229599424571632177552255788375244424209582594875760471449007804399679715392801454839136599191693686223494161851157211328364147991824937679732600170020599938277943739912494013599782521192130213378630788903330793054201208807959476056440605657435111678207984307036359131794309154583795981785521139861868617848009989634590335497881271178565338958032816303587809954483378179931206902721481417959816489161443756890044422144437310392962318373983200813487611424319709869937706816745699819769406651535884705267910490521113526759339011823902825332020388724720720065122011569115917902199625430642409830396431983714856279041073277131376576596772168220207726700348004857023835804345698367829674132168190770710171901518697944083407012171428300182990965236545306887961478695511819412036798966786466493992025954557187766062633266286708762207796137096432737908620669890490067631685737980670688811330112821557340637986791368308463362324753634428401281464886049832186943015008060624582687995606582620228014840343391639315713480950429306875261239468489370692413830294754234703805603004422023774574818981770194846630112247799501239495696283052159363739354290763135819406001878465945678256750646629817047501145184733383670741238226317756050276989804664973197598787334629168175782585662197488062862827257074575806171954533031392021349004672065055523378369083963056427487432474373194484255228057097965056635636673280612945659248062759566931277159943987473730455212544947267599658482016537825988429952873433510212415576303374945794341595121724585822761908202370649520132463742061782742625045618530604612793512376734179588466313844666352584438586786990955108559911025331738103767233454078198492604035518019619287291616735098810460397205179029983291132451262384504561580366820629240870809603333107445336442158714383199751154742443973439692645781511984664382894584645060582177868117205068812810423266541551626874159945772557097693352438045771550819681254298080571992398078100208520375080208945742667720803710106895451304873505031634116435440863074090365749111753836292669413138928781214970591931270716767895717853045869620654071110988393281270579978623614858472237386423933179479349283465674682164958332043525555434900904371179960080455015139353876901566600177620471106731904154731618307944192007931548410980382342874387741348403369480909016552905653536286776466371665143338869695278266373544300422309484477180630720013852718043602389557345306937279836056747727730188712833411683205002097188179280130252897221294537834727347441565606502017370076560081157551940061160436243519656051241228263142282427511530830889865994798303509167195722419092420494245509704808466646173757418541759201774951917641278521257117839796790885092904186538166729973725405698100453936033113827600066261828847075654522468915213115041483796775232745238598550614046243171479950407631802410322187907346406191468221187323822989396017123716582833605828835950875313973224386948680548191391017470657416480847499538154298107395741555859331064795121142274045613088590001528210776850488623954936238214063002031208971387512330971483423716472115638524764509302448328501008414198472748433983304129910910788938744776532526999875888636998463672252551457414399873481387737747414205316570184352974232160393159632893434307255800017603693862462050096840366981106324596941917219994012353158462822905847575853806929566128651561849363382218861094694237161149803196478631773235941808690502590346850935747227080493444843585706228730538579541383011642974809488142741814980804346708863958624169462883479339754103354509701752937141225765471334024900586014405381907543998369752393565100433430768839179281555091702242880652967632133364576258452280807771286210735450654391779715292449635918522828246175494078395542215601881931855571736735553617383813498844978201010756185592905036689662881847420254708185445561581510923037321305640690953245243964053142496842386451380422205851296791876574963104585191847165131653117232781971078253840539265363127477609687893678338273535548659952380150892711442717454379244089762507728897376139666783794112601986112669792601623812212879041886417377322621068936015569829876647507060546894430776822501550593914435884420105807946431610854733592380473757502027347880120194125200252001026065560016330951210419635759917549853695979720775440108639910107645944120856224190984477500487996914693594465293126010348011846442083569622846630197112421327859723932742533502945491904218701519851030418834020732781447396159929225855442760698421722553549683196490369938105352917858229961663473539658337287366090469053604027183207013460561466236846957483717359869781235079737154366180028583214393741300159907937963771053157881891228936875696077636774597033183956674570523636000008371919204749405656640872430404804962934520071121758144305050342549954394571445085066214502384454667608127221740371016299040099282027350572602264880587929717372036222770979460803869051436827814378379775246709560455522790156255326478649651749976910812281948542088702033334486751114706515517713217774505337906137650823774425994021368695088317993170843381254421559476377322828282658131522249408374689749807275110998747877322153330825739878121263895385824138075764266343971607944472849960305836079208272222480392724782319716697980933042913056862893402729120268834578784919014010286137826931816749473129976804015438074163125387112908599055680117222972031949645710309891721814144494265342806794506886814894704165731015085973300150615796767947198317577054296264003716250128660215120900857984288644847169649183720039372953477910044761397266252003606631487465811628111271513197396732320178622591256858159918341149195721652400861781127131673147733239953025797048854842773900607658432767977543294003189617919616649962128775025279968879218293439440064601445660762449945163918830256823589674841578279522964892008110949482023100351184861069805892639027351127636500472854680061130634758462269589208538785012286145349659112798383426786039399708620149536461708633711011161738585769774880866166303313919286127722562234271842570717127731519264206297952214228376799243284682007777416461792188297359129043900199127956015886160511772085172053879936520421355160233985062251551146166738707106220158628691991472621127555132431995041261639464851735556631325548608630091643560303245083548210870909680009762457577753674580957616242842250926472525067423351852666118389935078262970359104372897190358336671854706255688220288510513852647393102188197337271758844688012830042105530826056068891761653961004582870212787583013128573029663624052290794974980528559049794043645605456035263104634494237049633891418823208146118998907001353110571921528674645837462109917739168239634596539144887989123914725446246954386833238190618477475737042789928589061263452154544883532298572308744990911241193641842136462319650826832667370410669399131667287268244638204902978979352157152556237662401253483233278266412188069629423990098171457467431688957507637912799992638906162092439634807931423950189566268839947152504534556581557871007291102384032906483488739654152083981232597647159918099539132181840767464716103059830729175301122416588697706242721300640462835980445090523918466063471404022398001110310642837788491609243333561999614604667399188824116484334968053409705097604559733955535450790684560381646723131473903319198927329491132971990509181153275793770253873539642626766361123749463751262622282542079658058698256498441876662485137763594242933683260449652090200549775004853288314847356406863360313156191131346899765450625446103239760062655824544657892346422390617042881940217796475787162733627367252871966151545585584005626693684936870762366574455012320608020881877510395370147993634425546247576254844295897434981955658943201725506940170252188571881502283106584703873268874380493218359075880776765159614650360713552748390732355536857169401593299957149632137659083708436339776043841802800497079774958323049837697541463172584009509314000274467210288717908091468866745733717726231401230285984508228538147975069938812815372925132959316028458893831072579980521048900725191546419220124091324675599235683012630995868813896719680450652256384585461324258741561329831198323908713338229494417241759650057449840512083595552500903700186228719313865012932694050553321006051550397936021506616548199874079428359492519648325484068702258700329964094264706389551518159795698374752969854589575953789962521924614371595939463732916840663065135719359416559485896585479171893052479056242101614056908971815508121345969668244156364525845817941849736557893003112850110807248840867111383836736443429059821492990463285310356318184496238068874520762476912562732575861390407010224060522917901622786855052249843312017609719372612610172238057756316148205209312978521779262325354852044690649422589905254046525878400183305688921012958860141303630482398546662316345935282821066359916121271364945599176822321026328596253735483487412798955966214775589488853020298449510483125977830917040967518302630662862520502260809591893090562686142267049304153194233147617483784409697811752918536005806589443700066356824013767504254545886974189396078058604746261368715573317951819891262300964437684168537032706455055455425038718035746012374582959180084197200380631954247518900316224102856610251446493974453502100347496151895740797605154112032576611268530327173513162088738699175350151309840935429886761167224476144382142377525136955356909926379653904410192506396663699159710900361147282690459309455159239643865803205678868504967571227826258054138193908400569201568388183958193868237364699866434348197645544937270910605090958282186585042503578822062309035093686800352419095106685667893262440351742084961141819366931088139548849791860915603733975526020190314579300947231052890309741789348830723148172570263508070652152167195930067683766740713577701636312198065808581758056580762751563443174926529954521893240139828154558524941346784320859367997918681986447685343691314335745047718414060615692637699063882844182860390523793800637462037398870585180276492070477983649414486095012491889015826687518927199319742686996820482021362195683401698814196125326713474423246383235758843288941479935595525024223354110245677688300303294632472270150490669580260814265408627959772885161584127413773711979997012323782640596448557158510291115370245050229818258976400204121555060227500733614494407678245997230952738471402852143578210705265698940324067901482487424563177611580725507804974134155744267362372095745073491718175685049041960818189518570558179990231834062807022813797059491162764213703877873084325635293611988129038357193929044514907801071764525782470265096790772692216430145994763887892972190554037971261472038890409292635397308266731052269272786465393108068938544888998150485589644715906386798112676035610929826786823885717908853517054562121222516885369686675392434348265757351314011548667757371443774190761506334616578973023062117524468829866367873165038020098314051544887403839488143885497100790930999559026720734777089921427305028570260446186407922664083274552460851319253577562031690777849075402389642979807452514116997973150952067352266331716393369812412217834040081535524376096795439753499654497428528094212380053048618735333341404259723941570229287405220678131953658600828705082409565495134009035692755959389097906938653020466233878826856573906127820352609818030363604782388985480687820159737934493887575816472799261357105914596845072443978821999080756976903587875302010402258188371410925088704195720315083714293399306211077733017579925798996951780486946099696719962357806575337655841217751687428173541258482608079188307142573308132821667415520734843676146289957215172287756635607561497037737785430558254392208580979719514972295636898514904826367519689513889540500807400872989714033749813259754239295696283414285565609048490007390467126736262834915295892457806170395681476005982901487666619559706215961538377744265950366652157856800755990409265387082458415432656512013936078109824584844815271456379356331017644704165458748485412125078791442869537716161207133750048105128584373697228726061671290526754188114679334490428708064817212915617982471681246972028619670385334615474124722473967465822363709068331538004786453345670642333274339828127415741743492367539026780048057023734972127976002652934730452635977358828047704046492642146245012977904105634600364777178011823545712765268616523437176529548972873573263062550047707397996226030479853576131580275901587791001515672513711896171613605119901725092692493658222108870100595005619670083332439867778148918129965356427568037600232645453669070638242646214522956211210825439294159916452849205477499427969436046998271052055932223872721601445012267103435772544473393171965708090775487125360573941395534035996378810440901948261675120110417893919838131774274406159905237954335177094617821170625676436929855102380763006782501339164031405006595021656565856603399806230978430119721645572647027141631989961884404503278656694122625997885700542966298941711897892899772527852609417497771851439680446357451483563911983060770557146305316144105274049625781248125766002996349852544981703699520070307950436888416488862750355943573681214438441459217787923379445709317398141330187237304036921588555478273567855762711454718224928568842587291124077475991816902674389457374172326497842835259053768307098954657648104560141840735071484659750321122160461102814376182585590468010012062656791667035352030364844922969179129222079865290757560318204725020830295920360744738217459281357388468086974930184835265869411354904274920750405600468742711079120526509198207160937287126322164872084368170016232201007860501122462131589955444252072982929046785894077982921453756546797166236786434539167721153594132062502128829934691257242399845746230539474655175977808879223379140856432253796725909995307090956089870443294399449663711868263303970915464290179820635152507181545584364875283073777219248325384313163576114865500042312243189722783452244867059161908534463417675304210222415165351228629263192457669408683690355851847525639534319175532035189368212542255941902363059307547423759762842756181609152232445281199613173006518676233781999946799727687568445438019272734337118188029462930500981898514078436198761933482514512083783156731884457178673954575109208603218725187426216141213194376602596542730785650236467208379312301058316153941387447764734597663587148840507786578421994394664634931881554325982990014375895736318624692869212542944999212418336905056850173236636119472357810356928042657138829977084726196649558874763546724120219940366730497371811846033428056263190786015885187414071879939896604841228163901413600581907904739728653995101046114034570642339328527702327489230725810734992513455370085061201802152010058624761188835496709785670012418428262052916893742489237157423634252178663983154151280638726071723640038542357809782871868177851045609817886890373832344767479789139668358777547561712981573761682113099936080451610083175603113643001109015169074917929098364463709058593375577063568860859532720244150148965064907706732567738660852020093551124554217920997986223413945192674672877418804791237070186843113439835897212190206279708080560741038327578651089038284319213006802753443684936145203212441753034204157516464797880976561314487763109949964462725541694277449980701499190139579941924500257258322835650200697509084121877703357702744896135782356901192334486021489245030586005428916414411978491489929203532037485735331439201742472982982429787600968905638705296781605767232638565342971416975773264383555325891994312915761426785689218121810325311239923980665871004502583916904482690396956879770692164911050818066083674772314105209080270403272173163961211099834172806135199893007241541543747702721262132956038398002906143796897907870430750910032421088266677621411030081551239720670068819751615077332924937222530249500270807574947711760308654289707256048110630100799304186407401131299155035647904415908340078369696030210964611184517047333166376073919572306768617489804299893187562241452943525757403093717531317995330494571163934034187941992936510079639439183694453731950278432124225226545138509470865036371723178178881787502900975748063364488313137104788510051996383000061656980014772748859232740713356045022923421680469455984355853908182610427500835575368395432445277920952402621242851650918744284458888250059256031642901867680564569661446232931471297544243306410063126877696548684438736374296253742189729028876025398785724397223789550675583521176460419518451200980623393720857190917904641135100214405927046436134394636273494593022576884580628634495872020841148015169587380704101930696910881524565154638329064923801220926120412798584902527806166105827230935305018541693218719020927508829810174101091371046579681090941550127398363257654527709578501138869336754315421221868821036624486998889084511358610498435917900933426669155384462516427053321544405095454759202161742838401455928803329138807176207597313170365834149091362551396164816700996454731472980606857542397571124701887696050382732266189211712798555654198974604919075955784012253945467119470333780470369408465347010060007442514250566768580433752997659497144235627478269897085558486361514979536887439933745025348925049102681753317138995842440990894467700823782956701690017257549766526460828423006652625859234562200229238746966873864541648010093645913159555903159551217368739461540885906423267974482875295223377850926857286476256416414405383612809006646093892711601961755500872213213864683330682456642254769587094763323615755367735086927672057956172495854397252053564847695739188130438596020476641708054494101652825491726700134374077440133689341391167487019691952785177220482140693996964305543560220956634185640150048103105849183696128257075115791421725867263058502937637208085496939381647366566644978607894569253545771838768946195067046712237190685017163684254986891734526122469968843810132776760667859681953998907293794362741974232935055496758139009004404836892855480498812576381397361028699497173102893535157248782669294763521717600891728393889258408232583499014147018519274849027011423714281282330553233904853366231657820247636263692556323977911712570074289133036067130512693194478084803542923883427855992145093210926730662939583297320199327611267242337012675513425246274127596803163808157271482856664955627130947883806787923053934189738268443209112608907618150055259004144027790737422591527267255621873268654297070883767715403341429622105170606407823303684247494965234202615709816894471827056541749643521596062724387472577720460946388166857791881686699491288823874019822418659181776421855141000879586529856771604925656429209408620192219878408318912066671730361250404905022888858873467867986947844597697247689901490728321088697858755194746684960020164912082439357838252310206706446884657339788285801248740039666920349807375537767392620104694530488136843836900093427423794761724773823986501250722364147370211338939717722664544838044537730466738519578286107211396631728635360492999224919031312648649998339853944349315974578023597906300188335607472803773462798121582108294100350115200921461456493569178698290312327676137019688354154463714143947174311134338846618696001992579186384848101836188337462403060575778693302168783087137334882838189428417948705978997124376929102715931201423593945625024809989347475840458177110811503889637020683639892651685686318108857757388676392045481539145930372854787835141868946586908893906720012918774015922316526848159420415221964343498567274425390433218133905809184666625156741427637128743851302051118912966725921947923208457008377033189188025128081570061303522711680460359466323950662486862480914908467205341029324331006706221447239573477859721366909681055309094473821462726859185517946539766179558539575875111979533511157043663005771226295138527865682132877902555334592504130462203764295284987574837311657377124506434024256953446291988533207906774092231447670233300944310779899865783289744753418333282506369980211654061737460408558678581257040687431605568066905240662728637044978852336257973108041979511171416292623873206298869485371690942547289959759080858773339890312925053543680973057804445600304299652915151138013723076820607289188309723818180554481643657230889876281754831376413917259355791637360141801145043295153780283528128883986933875642858416908479776078490326237727089533093813724519910487212145601009753228131637472209926874746365005027936707107783250986966220730369500823305747004560926988131983096827816600382630241025540954964604315652205523760440138125916838190523508592108208567989149547922587389007856437476955525589952070438664378463340736577146256044951330097783842896029169473909001322302971019419455137584670964703946791629090783662001237170284986675250558533439425674492769303588911245446865232718838095687630066253775505648114524462670901634161311933276139574424321557857187890872958935544673822867226662969284555642386940457253545977249265632216166159781786513280022085942167835538393266837324336776774220582437076601921716269339032261050406497667713111404523055250102642821279309793157763357079171318103442905108998298639564271545287805028436601794781343791570015983576531246788294586020155138271417978890044832813769614346210313603059043479529882737480615286757453859293879537997976354812440875174081455185181791261910778543840186137231762387117215629837700943666763187492661970804050104425924247944089579135945540951503391898854119683883500275836227333097928529374399061597053247880332111244487398161718433510301464248334139089343071711404265742355107908907069039049232284374279719847092347185631941658147205171112690445432661752504739590749355336616223013181458822640995419936695864229379507680014750787784470418338342163625121077744862791885306782499504791572774993971028001481822205241394412957351361372274157837684849096474998864542490851020540380711155074989775846756981436595826813752836067250095136719818892631185046288394628927554688040250619127507456632700886366033825684877721169587232429699440032152706637400303572411803433778295919120693015194503868163377760667643129182515447541866617447501999709994754443300944247736273994020670945533062297227516541884496319929943095048187828266144120292523290806541728503943397470274316922188858955108481978205112689727163886766933800258613926240613826145719345353178308704083636740855482618870364371962510267468189871445610126438434066403771984111463819752196912123236051312212429134753324041145519286787266190018780047262734852844701204818088695723367109701461246905720321681119686646920054126875884047282863077013899039103275143572780653301451028558919829360952801419674710786448796529389606777203686353470570610884706840195635039808772040838350400809995313446877046518179425847975202198057929007017089167555620165507061173578907476575441404651197422327415371044565239286525677838121575732805859020511302263135829542068720286740038852883021435984500129729946494864500811872339617310641825836396608218133293715585733392813322155696681611864415465109443692143040691483140780336604367996103907122811911919187215418578137228470550712058351849925754204086441674871682392469372268461630976445187868695783034792844339590793083024315080280064631745071116952618015177826728749882032677310376261624116723825990096940014704111350240452267046695267622272732444200160981067046041985097073879487494199840017338974073058598056716438541306635495477189108579689385916113856586243774171325080808133296754001160358549886402775542992681682576552488963037781302428293726454255015496197539822520149022228804373481152531374291774290216087513971080667799247808770394352357343114176274675442332302532734312103949081510528168520908131710841105809749748714458143775826853124642722488986689592100298637111727221043933937812554497480279158968709669763540841069211913164281375964607182468821750268101573164449783788690655918009947761583761522395645330684718060826118336731140560639481310060647282313500872839693506347917844150220366128092549997129226838183112927876438737020743487466035934730985823204744693775331624340796491589946109080411204147266708593609955282571776811424013176359699446920054845639350552637294428050653231731754550865369437494700120165035311563757244603219928873732052725785081105882683442647228286572651406064636664551925887310694532574161814367918393278595967975363003365450876122436634407915844766394553520359407421747067756475739314504510111909482473818348405449463464301163750682153497992439502922615458736204971461091376557561470169958274933390967028210614180405299621765838287370570171730621324434156490337290740708486845016772755050821934013226491337925276985433648380069411400852547165726908371652176877673050755518352733021160444964086345058024766980123963557132685583105647526750493512815686123121666824121828198326040754389368003685170216876935633312914907459610557421203965219180004478762754260667252201595039076808495486058526512044065851896720418757138113828568769039104194787296947821623315215313400208946262611055632228207716344873990165813035900709988518875704440243085442366450304898887401714966779838521576537534850686824207950326316598270206254216530554817792765464993044783527409498348214569112527378128456387327478004343727091588340628729051076112667413957478114561041669685005427090427447107883232661205758199214855575704711047016270113969250249639349465186662263797947441389200880950648528346293811934139106550351067596162148709917912523218270873237894054646277321129676691614712345376736609552869941980874582130713670478226694623768203215453053402519225990124295522476853289571906235797685499286132379176535899810735749211902335282322639892183267257634370785263242757826396272156513141184324370699691696877776928307555596733169358901505657226297057123151588854182824469452011426596455707205104005337476087408486117644509340024046005439336720528170048815353788323461484597723220165082311743802708035604316820748842720967863511399790478113086464288984237601334237734389727579211285184705636466782861886482072016542401355936844328817931420861695432061754585902268752381885293504068023650902247531903589713057104871195785719051254346755985249626105974219636041112526526216727138233262511270353211785727921863274710366818240242918100458410025780535399222465632212607211544183870501913971297699296192188679910732061927053405418738885925325959160649659208912353309661360131070514864214002012708906411229919771532451661850990803089650753787382123567467012185123103036753702442118286354268177618252179204326560765025712977642716257587089456939249986927102206933833128147172087644978011334872224329488776497427237915312240881196632920827248854075623328545346918008514423203558028372712129785339304361260516309217840866642365239970455203935250779708056365985222515733311884756748719806772357338208955704173920282218128069003907408273417706495782831152748662422489257506173502558527951600723746335862258126793437364226597774580654554683612659691860200119005937948784023014946730990774141791596595617497528513774052271164439278856678779822439545630764077143889621572182226493675790756127490596858432317067872011925749676548444384173423997731211205524430864331845928371314675317662617312478115357697322045024347574788334378872891749905979959633507142895286147320158777512047638917004053460721633508029348629524695507906783524634372122067201556774972350355052555133167845732115381458572928394033108534531288377579311545129885536310439564178055778420509192718006823944003523078703362190443021478090084199832619390148890695419473001735647144681561100272862343301650625016291202905362032096188669340546981220358362977938252666632474299191588889398894907267324117041002067227563410762428627760431519219975312624259436082682293712401529462253068235025388395447043283429971866137465420553151140619565558469016565855296471423958278022504912349400393684293942794201512199278439368059494400985629472691876979143412800620596820103289967632903052707733489269596402115601680489258561225640269198726099811828370081354160822808100725180097207372718839285306765563918116502957032157622964267302940213361650957233789235393672580431048928936929795482388633139951153120357018252757236184514429929701487506410936103353343605237559339824698580261271768229904876832997425602162268098581113760368240241164124312855495603236977419864594304207913732622604469939836608408422168419148442274994703701013335918740565439323485495625484942629441018635443374045737040357751397297452701433505387094464708995529616826816450670336739919162927682144441954927475175808181223299224780501778944272092557248697105594590802460663858889140550522021278203827098679803368810095461013466488515838703857681746880254050627370879966482562798989706920106857095005533147040747324262633988871552382636549292852189311254513670055455116437269460170029654931387511419362500658182448254959393831333737032085506183037792036481723715788460119677091573257779939921587533483328117926223526932489485896505973190062794588857650332994573789042300739251689791726870590070454877805712749672327920642591003186807248875539924061034585009332385487188885121766223545319049497363052054307635817610142782633230037003136836065712909204749675113766348881402627755462766958259005856811943317459546332109246133518516163095103272988070816505795830324058082004831776856484596237424721781306047474038742579222963123681555120659431324348652445593892513530759376096268589058865584137888887211954923107024774244210774147548128091717123265954902072354263692343157615670918402509705759130820130927476211467821898813984180171989884263210117094669328771004233256474406752891140237798286418770186338520514607569902321880723494621768148283051082220831283054236579123013337561254227789822444053423001608629481437888578899731205538682941885675184835398225966859740092580864883778979269335969849217743508449121958384546359349587072794876606753192551826333201189091380398668038513983503000033700680092030694829661487359360433630040203725744340330326049545411648293235792524121006463595157955477349953556574903352699073509586371679032600789192013491326892483851384480593667234236437050320417308000659483633131158700888042730700958435920274000488437270721196286414435450281757316390904046121930325484799268948556064835475630647130872814741731692369182029843690871741759530833705407742261617214914643730849789345628696940621488151681343041525205220206540899397718844339078014813303429113890419529015529775731785222951778920354139378273902085790071143407773387744462487430490745775251250000751901987910724558327268290454431061302714925246450279230151133831003183524154944305546325015521854514220416136294084097483393562285534315134238137797210179448940603180991600536154184428233540302736816615066487619198358909333305882475546807774093081032780698124236156816533883529702783115628218573829860831567003498821655155767123793597253003131555391603183871927789307857574896737390030374189279294775602268131359219454603430709861509579467908914998719065232860772152381905205049408421669924478974007261760059128305903294011697415050216624762077528455933137144739974416134837143034818221801542868085502534410516282970164093503268371880173860958664086010943653484701394692377732641260072906663738758715081510582443659301070021475622697110927686998140619930229989937721744099907167775008507077561974538612801596217113210530696933967600161209874211467865101545473698950515011521164370397159919578116808808708559068869443219994173209625313907023529437449651803337903433768979312791331257275270645396717967507614821511093714629548449090618132549354280699086913927191140471087968256178619551967739539851941114375442164642085727596261627714429436705150841172967992630011913130518908280160782934090508530436613603620193837038094692032703581603768670903711345861130790417335699816279322661209552749364516105567149622948976433717783879115713412456664641020237247807861873797621710312436204730449369816414183222216621763328550384389024926405175028163182184387364606262247672954337339492535997027439088936908523174666566324290236512024611816308746247320286467248153246928561393279615817210946405795651813116417439462464756128259579453943585130645848593715655437703947296029795247418996465520204836447643038214641058374593084107171700964464987354011405790920860502450838491883300787106888675367753719281383916558142111211972553356736171698293996346756665665931635876958620741776655475229209281197303274294227998556940044932910009625808170629936619139034717566810335538480508218019150460050402137026999643121243382547413932199779710618256941830610076295200020914864330278423475750811970659544513498086018226292478318468441047281660161119703493794247622004607803902193634031543239168395653023637863625417340628858659270159756094230577195329962229896567395081086122488326026622170009652556187568806529286001460852733257074121039053924520397309384410796539304773933616441963106901126241585046506512510842814277603900337363412990730081562826842486256626356768593333500069597083549746459197179972320957184560587066221926433807512753901483405904220140703435237944628767248914377652114108546826041996892034213606824304687234913902156579017137805355527479010397535126026838836899317050249111164881212094430111044526881551677068053880245873338016871175799152731850562314756388814463763020994897809178815768283641216501766759686155446936904884723707097844385830527415933676505125167708902318944844567217881317052572835025604698546422072157341490541069376982720211680451989278906711506287038428365986815663776009480665256449676740772072555604942769958684271957054342687137300306941650573057989185882590945359092924027571825184274797875072750828171122930142011291402592916536353089148946770382041844653814366723449031810885911441007915121887165804687581041750531579071925669014785815746072759173745528158770304193501589380506280374861433628707914347202931059209570645454504106646663603365041130861728987413447233155081900916381777301230919863461842087066176018519333997667488712026708969061890412246955006662691342803174789570203794559978424413137956260564746887613970790838684063733227887884045972364070323710076208909417088933065049134305371753114078065708976073733781158519051611776951175347871767744401761004666089619344557614148452888266172654672414997769405303275671514276357447421654489751700607650087858675116534002306539980124607840421656638684015997514522561720644087618286792859393610725852471398428186973717038476006994470887130968624241088728323741315001267423532508810171926841193673036929610393849055705227954072837776494672775013689314257238720340534127110621487401686763956235149092766904691064196685245461159878479748663122479273760432624343778327994114599114912685587010656907992752959560358814742523687897083596404048217237500416210272185639094317265107967591668526525679189839774879109535105315016971319932516385348001171188448971782544987129147606198987044063747981611871211746191505762234309675347117128636624333701705951537376941561195916171022310160887535623841845014780630241186453176530972426302468100999119274945478206938604349577863653185671907854152867781774278468427690323617447079326658076660807247369582038563559137553581808091183290956180997456524114689951480682897861173337344507550533559740474817454892858075784425575358681470061978927659035761850120399214867244063879587381964866252534383366761863701858181887364288163453361562597414742597668632950301187029138437424328896496174575520097089913635523454754103994067490171063570264508589988390963382558676729495702319937257518280716161036124476977015016714957490861897127047513025505281230800989109262463671975580566671531076923795142101578045207344479141438715347005646351856056373915909953993960006037762642849244588279864679309222047449274890551543699705221500250939437146250556482519585210434279589551755337976152566753864792322577111414119157165621627019005341741809556465142734692070096363415624624888460786819259863559267465222107388179536875910656495545841556199968697982806539072129313323564847788261620908095003302184161935019778991644071165041162345141828494471175403586507078799725117134008131372728442945576252529129503742929744235235295322408177136847067358787182120308069467507669957513006993465944346152864225468489088878769012150242244607665428893067723467131077124204699058722980591939907738472092275878202197415776815257569399535663035702756334664430651022073316957059201809282764686894377331389857601660112424010283021361845129239188582575844346521009679202016564048587235704427370381415615474461109516119292907324555704821577093717240411597764832600188517646124613409582709774208215519700264063394053129565790506859025595385734671836855558160348161216669820110155155570854809502949622256414320437125668821107769595751938360428534957117800605369362683707104128179423410416582970289251336086042916927250868474066028806778437063988684634823018302310558196503670552007162236954794028475831660332868660363783624008887770871515109237751761074269421916486889247909441492132526819608543704468966267536691566831582068646741979724868424047225374118024261652534977688357981513406855538923901909661261759049278775847698074928401107238048724284943700146764506481568423292253377937402567811388886075900359406750714872402430111078363562390920170905103978959083627642428789597511236709951938954770207313519523872913620278038257441491935494058987732730252326183747835072926640700551481980862422635761698329104163351223805279252477999520153795659651776513524977217155210236290496387668699483723619463499897483898691374709691082304697885285356994033761973317883178753944895524900793540327476945895326225753807472960814837915805350913265344145081736036854429533569038122639785732380629510264634838422409067926969501430895774945846070237008527029819477914984188753984178475351261973358060004283662167884053404607048433715981649228896134062544767839736069226162371057009899117930564062048329212424607629437304215680541292167611009947263204591678521031030494860101048772077096311568500708902117900198446611745899440321432122997131747164921730410832577381814627011604585585207086268545392024388913927244863351082787601022216759105280389799996392580679646530415747849062380357097097650201844103411774795381119956912983238088625545778990845493685957009362352070917483922741924247490225010582775134555695062262518186827303119076894182038122399924611498325943351782322608532288909209842013606904074656312367256178089949261125514853889911236142681797125982255144885825375050975364730109825884921662227373553288624505361858548631927346709885565915625885658670764917242914945819001214622076041725423456875278442400950131518466528098555165660267616464686031201120294003415715529265456057799321027202660006179493403888437221530025524793075021364940638654317433851451814015611184226505242758514541254870110158136036751841374065532407690103799662664350906577772335970147630572489601432772937675913406070587742861656242969965592486252511917011907451101259819672901290102206777042477200205052423988110747298392352781392777136341889904218204787992461578823293096635225732434835847457979007350644373864827092158162355091631937876070864247792702758346521783195674513216342276290963662894998589226496174724422004589368118497790364631727944090294299599662771288468174784141194283285498605189681034226487215506158395683741904285911542672628526773414479708923604443135672078948236959997917713549053977544686029473671389431883815993447187892218051196380961674697637683033175079638023611536416954893528463457984076017055304422026846618760891504392672628465836327970439942181604267973293431458645390791004351314761080500967151012920751391725876024715686971439740213840736623893078828422637108836127226922310278231063573377783442692916829908007353311245586061507577343869033375111776351386170787264159219174110159071278533070758586929341425632742961800811509951845122546694571166575093421216971954972030191798068093164662804981465532524848857468184031896908020884272838168845937280502276712295842737261495195991047433595233593390274838620536451478494936592286336676401368874443371916651171473024362685660581184272713524967187663606720885526614602370238043175361243799143484741118295327670692624983256987039946411596893182575031044854778866193323602221976266901419188218430190083271807600151318705306958577706486643525175331523909356182499347615713492750550669562818550640181174879809126397907873095662007121159839636499404363043464598693371301268511649755174140786481331532054518385647267851765438623405609765057987876321371709689514679237208395934965537101861031672858831859507830981677556105996951790476441394339352218600751200490566876507425634502572871158490211304187210881057276703213026689954488516342864451540786470942048893707465793912288601268169408280005028952558703574206343953109656756847485119209009572621194260208306323805233968579210667040578402099891198679225213110599353049337671568981922704777346049194606498871998388034271747659194698924696811236664917843059092434437755869690551849784272717149779546342509119304427174973442565927086431068103809555863732099910618405880110480826800322929067059420116481759665585552120808465925752271795344277896607580080451471114762233147584957420807218850155214731296759014649748068008790443616927310645846915170420380504282403455711515807539047204760242065706845089158871399332324745055651757841631991020974039932892750241404959459316220202314016903036003490094874851411051603145114569193981813839851350919962079926893330487767009531123538091795562249195554890304359248269086413539454515004909251280257813349999898775086472050468918237161748073208784212319130191751962819411885108376675474143476825170149578553167908009243142317766829033268941031757249455062419882609571330287781805645924145746830840198721716175920418329955498761659549499519293454177643568091073522593516444339986781286361882508442267474444672783519712066979034096092689277772711245719814233045947107537640973528742635594796560905275064353275026445193658795127659655479093258244213283263297057011033337574724070212587933860303787046052670259611565732121194915594957367315090220453578325878791101689778281040339821415707978553500493368082904455392434819381524887244380421947572878612804823831123708211177910429031947024954003981308786641258791992488961815694752490098756742858182890818857723714041925092150053389343714702778615695117024284071708799213627357103718255190510535565332092405975650675009263919643435866017034342324932193369641571256242533221244908011110116430624925026425370175203385383900117309610650882209977750373912687872616271381909442790628971823736901830827587781093121939475518850920938215166378089869829213198210739372714132308314660910424413768321120525244263901171012166014341710715105615295646743630035359294971202738517980303954248858384594257160619496354806074889143675733164833239829841537335361894799727322718165957447299082498690342989887585009135304847359118290752134890373165727098734294956691904050313155099831918552106241012321110128358389227186634027583757587526160564558140959344856696769665848537190660715617968566699239226627904031601249120146101362545289366802655027057253930394753722533197087838630861012846586092093048315302627035050230280215979586656239305265894881201789266554838846845967672259669176057278231650841258078730671425392658738073036804991527710641353878100155829048012846447862505549204236785650636333782013143707754147934080244835197762892754693052094419159428605712625524350814816151944613930349866015434304005175326863917770573980183431171150712968913300656736823255728338232090056879593751758716147931429576203355687682464007446349062241819796350280619255783477204288835604261636310429977013464270938641818132218116887651021029551162759439709678088571564717717444399566370483059784523072679027617039115524091338888881393961903100753612685330865409606569987640646203705140401868649654451055626420684432696632777565382529192870942614311364701760391234836513161533537572198512975301912904691131412192504525695558289206449331732625543219407622597021287834570949180566278635064079997112116904449593331263557389777304695947147589443927488928287483534577925447093431238226441693731545735755370616040328534489771827367447485594734835185781000373463346803355673019588337772527478788656527617957400410006747809887340088341673588621192340248643817429480803150435829446549683524830257403176029489758501392038617406614546227634606543971113519141173685529922566621242610180398038171964148999421064806260916785690481336889236826525117703406497273243153653586369824528362833560185098849966565766076936413031396924555252790470371362147090688417800176285543421811838864378397870228708623111640655626883111766020836758112260405574058341574563380263368350592522239310404418109168461404298524821017815054008958530707754931785094114746784354921040508938177315260319189239445501794671522395944599003314358739974843794576081740325067833948138329948723583332159555596489713676294475026806356925340052613449828948285956655536039516343013904767823012595869985421615002012035837542902470421325360433418792015293782324332672005047147958280693362652557597330709727711173871820613559429222356290678741463029448517627576812015289981088156114867995276827213445606785176087207642108052515210763161680808350109228123012832320076523946464204917945591795116665198634271600586379934502604131634673573314730816738567812467566072191873922688859815238435155202006185916451332957203192010043666735157567444012780751530268214128051368112564088246517977718212097129688271873433646400984093243758867752332637237915154382162948741540326450163399592930609897781428647785677152893573880121406661967253594896971524681605900349177052768918069733401367213513210690501344590216839479802461897787592800897731847719547924466075700048766746646805574186699490333132710719358490031834205804249932579013097062923210015940282565585468062359855804837097362048739220319977677138575106833179521018931067321485581833231929687176906593203029966782274105425678223929838607449359976589740752062556440565603663968731884815089760726098136709915838630427682475987721481756958321419059574080409414610297366850871332419557742495283385721288694946757988584026704423375749960267489846032720777757336029980607959718264939871406024968614053756008082358283439211490946185477473544476604268882832000281518310715853306730981995301224861597217873491610942266209788364467961962167949709946072617794164097776133051297556233454883612161366580540064868972513564964417986375115719903051855647430218010992983364265830619677355738280759918035024257706756424000942937515211373140856792032293650604437379556720720500411822095120165624026221406971511442546587454668148522312491550116855992347729260860963065081375795704260644169108257279861059976708237198997887306146107388019637332944043868280657271352321470138936049866891215732547209446366945013706843336139857481010053032788202850722299242930647270430814869334125970149677863308990847033953974469479044309230453218891697538785447839423720340674033450456143776031762623379947495284796210653647220247933546006290087635890617740433841718811013542056757868242420269976935368635042310009753351004691902420724700574517858393372575285586732637040495398665926565066354286294599848202934326011402770396637650639881511078694888784882863042136144646128911093384678214846853037934414184723224216862527248207251702485196267502331288794046296839147062052673215827403611501348239562012987193672973546102726388502854749969232101165823669468218647084303143305644903302880674165942090205283408132788977610519843745548521984706613441435326792275193298144668088269176928271024875367170501323862247691148189114952624749100144313833151076057606324211535190857779092282292124484392192285743476864998780010524175117001454134369922957933125468177303118593245496708532742257153950136786400189401496411357852401807221219864961890162559832086189846123795192862574349450021780319301579908764724210254268099832763171409903700359602004800917433178679289037011605466099647423489661753470829284851285204723652631268706873623033263320546411286784794440230596968736894157681189838143726504475098327417023826104136169468482814492057543390757428678176717226433312279295111720719312620145544837318358722650802500953776985047449646204491915712776530289177916124261854300102116291400379434166734470380026171373236417796920803950145285920109893189319805475503219454487709037832134939807098917855284954375062499679527011296311339075374818853345619101593398304724190723091283829424634965606388040909453592252016346380432139741840498453341455524771679882436242264910125951276645051913579526339208637235851389511198385738342079207252546542065181716109984187559463976682770324001209004980550069434616862562661941949129649153777727381162132190285452184443850678097003762299843052350162095380405018817400968889135221562735078237146736702759124376053084204174286612209853511702028573093309509467629134460738331772540287701138910934127187616044192066229222205351006936781571812943606218789723279051312199924777278424189130605339811523363601903403995339732800040583516205724379276971961801183076088347059650926862147357588534513320409165813914844846684510220778135578487088059501127566600594874542637115797195191900745680392998758110738155705765148176064886063066151615983078543160199481828359975845254421260319890605908425843387629708877022991975493146496638325615466738176628595661609815536981717777738077827989601733971733391806340505626100577289888902432341033463733588249667889699115948882698587317611848109670774219912014029585676961899591396783594933251381865245361029920344854893813934089906054544979185651426328091304155497091431909921482253818623468862045706242004617071911976570494417197226767751361106174501319843527007073627930078799010072465478821209389839696534458760649149420019251363355050621405555726477910353543303733979578988033229108873180386197031022490122568220632668126809077111584050269468821472201189066722788084352095490190810901988775192529774665421846075149118054384713099628192165991823142543044204179072554336530164664409910318430235260418657820270710191895626895176560844988127804717784810651964780237776345478137199647450534268494316686313668517803560886134275801963913379560105995465220059150385237488351649217048258836378239165568909304725861251952707522228309747112494409750405109521426695370414969264920508026469903530001027278470368385383062348248516352877008907296304224153342776195822123039268797048028956757158642588852621992813316335421243613082767793690298803794614985734259605088770648630040361047403301131931745775589564236807816093218357080575751391806542434018376095068324156698143996361351709843906725172407073082429959052552770621815067277959178192069484818365403902134788993820730182843772395854175800271292986696774076073378430008800667616657839541810676432210754291372872477036507393845299656610138628013611914218280507975940828346884554532881054610652184551061105343532904422458670561549428023354592211744615849239071461517824528295194608729236575226021161073108350795832355762333144629820010032330379950780143119876081441400949569135086603891183695826110780944557670306311909084644011202290463149869572394658097791571812596970146626771987751059893884382267495889841210120233010356788620999941189968074372415248471477954589597453007717893429888910184572205276387404635517737602495179539650192765829770692178703530005587095510352307601818268021131795436220420975055860174080347158338186992403344604117569543587342679544155492891503896390563011482363623582138967789724843569302282499237152157498780068278343041512061393609662929093072010133135638649546082558421608646297632345071930538283856966024860446807241722782253213756328843390362051545330080861750535857913344715596604535370332091855792533628495499910442908839999737868618124460033110465127090048828530383729683725718363071103458991352199413664291468128250008203359829024126475168643877991692047205188147020732449263758354176746995455326233771553467921993192988865306327953197780794096068170186598290128164761671899156428160250237073190178705993142962544199975425712737463794741627905632144591718560651321581223214823835544687263615957091690106615097854192342247361833835155505078005622728244756062534951563967913445825351882058227104007375411188287665708585131547203859061672209761044199135674907408947941379312813789440387051269352217448771297519631087841657086773460388364999666580377819342841319436184148438317707238618949927582464455418780525858294652435662130495732356684844132951634267773773159156124782068714945520427302414528090766065739935425014681045646137132538344682002268811786289492269148807216986985041334539669942874961039534125987910865305244321979701342947902168763296575142850153784164612197107500422252772646523409305523525754221466852129032011272516480822713789625750115090857902966690017430874627404677985868896793588946754197670661897168520024357737563448357602592803136335005911077399716626886978029089261489419492344117072266307253678962900071292638418286943831779245489361898740115376397446609686795928655801474357812462974132793898052888919857896487190315766968101255006011724132521703419501788476885447173826433733578265179228497563464093271446468979709621732155917265379148105436339080029992883682628974822833212807665361352535533743658706714378081273959466565680180305869446791651842010001886581800857102498897663833314070513514144944570339217931924995898471707544061577188657429393693575308939832254670085357130748623498190270137321549021067312511032279356564586934221836069118611362831244911671244070317038275654140984158008485204297089374150897720735815307137310878489814511777476978910278896304167890038606876030405674731100263066298332818062014017104383750015428060132309113934799324955477539247626068244126960413540058397781228952461337800700988904002607952080114155399030222255992212132044412739538527336709152139782526782956505668632979259678830972246680138555241836854942036952390025511880688700890365450828180686973115565480456854991017616644704393071055251254157558659272919513229543392649735828482719982428778120924126005015568422074505406105158273896826161016855467184378275550702652461810044999944297005230121807815408690835554346224941875692348426609723507337929121767766806552543427221677335488512505556458376910572904404404100380799172140653501619854846839459348905713904336240697887555343495821561704585386286639366054052036621305491156603325900999880574276456861322710357575621257376863814200822451811687372239609261993748696070784753187602829970018448944732271707240596508132057273349131351087114123771281780099710878784329080974157547053884505708077117996062195828398020787038023917084680823600804799092201386026421948577573166754931845690744690931770426496527841804607493002572142342690789560211848874581120778839224043719986465756776680749483062965895162354510082040737423241378781699226349630038336001623067221483313795207763593161948630237048880595433254288473851473554257715706452570675033734298323071265937997869744070092954255892255843350834003248784342510448059784850155825175303631247131506592252907579724543292384076172440583684968362703190676553932565515799133444330200956021870645559784259122363856002807135794811195246857137222399731629110904618671717762644014579891310833438530614239802970066319809082211704801076831738021774446747803357886180859912500657916180142428868851931346552384802712376780897388578613686581971243035159990236484268973415475651811060102582069841394242739110239591862852446191373272111801381584549375286829950614977382122635046097494970131041125141377779819409097787999092636491005879401490625979123284947750401050121976279815280227552384009606551466558705361909862583751385882957137403953415681950574128347450510097162731622579342815671338130157045541367201227070127877872319530876895074771575211800469955030001689728005343060728850965688248981818633529773467476449221250645170158962305874296822459163705912366113516712601610726891780007818120093649950368775352896149493659692766198079909473079824198734599248329117016762913062739173585093660537538769233478615726647950506787670741500474535159153470636976141346203975292124130301776239808391841599941226032061834452545024237621348278778810747281050991821962386820269932165803823255104731990259179551048267262888849432305734099614233595346860312799213590664586965639836740356584974424599234544321898791608379936962517529840734771911376090583416644367187601629781831042945412629804574880439752506106671524050316408998446411832864386373409518999520970734437346077513405988053223216925337655673377516339384766900644876859429680224349784865479443700473083743358157981236780086546525296490355800088748754251402226981970820326626380709429538256875736240856096744409416767297797355726969872138463205584930628184597274062802335222642922656282471495424786817712104404933933128953796613691579026592109683931756749872741234483028143590105444519722599077979187360794495654049378490103167427115954140907797571563361231577912891917891432651345590505064998999138905857273008154697281733473496686134386866606120269411106190268494678717207289934994050600338678615140308206979000394025202926724769042527616177296753582358757992319417911195347573868530387824098321615258156657450959007856949528471099529579318342355918128513691605108114348943598205304659679256439492893967853318497580430890015277286045369330360306965546507986295738345863395271361923986996285061984514673308939025361899122456045764720863924870622214140323687276373466982304517371474567456109014091724917229870047990818215346789776872221233747512310433676985335379238912419861334294238036978410504340245427261326761440089202449613385338705052887534840059150931455270182807157451893072385160290740757872985098076984185908684273609953837278341548768060528016946376052575004875697314358576000268679991132379280783025104414818433717374889177878795835141224477826682670664294254638649346240202367691716174446051079705912383327235269317366867424450024975778874227986507894489232146109789926243300961065207187430935354821287864351495437312546241747479043717166842138379330354878130016911398452128840325691641647909685087547074188189983402656555498214543331226376737125168972211366565235602552438101327937963488715895495871655610282323914172148212118076719682836471029680153817823899136096244552527155571080066762946409531003864933696486203852259246971608600786787012661334412576317721501188708815075840093977718208633517446929733177110663447885603130267578751165931349365420191316358952540899755162311964117428676062894180310427553418164686056221280100737221507368457728316062331553553682540633530191048867519096919810431576756202294514752818991155541406997108100878918966875040304624125016665834923022012776538145621854709370467240243711733944683895913741908092039075244161704400174859394065536261809734696967122704645921104544451293782856380168081572849961926153438674072587608628806551124033884681241405000888859567530735251989228446047456215110861700534336963765741957836446377611139012743474521398613593075416052625222233689509627596846560305385590762468018132019588577592689416331399101610775192581606755965940908647534216704899067025314307607036526832465234412482136189356228044076434984463903131081970926749584231853468883229667497906376985971424533367868249520236000014165072163603031380951079164277931413031556956950780237278146479346331099929872414744632449383544995219845960462480624847295682514150266158124332803613313781211283025578768210729346734901365497430794913361275178351900059402702367149994983412909965544515920515599809217147783428883592604751622063260857233811063039112268857996200626955767524416850186948730556243450069190655075049902809589566747984675593479754718105214967316583528663315690160773545412873515590044660741490927783827840704370385172386497997017444500131073754967828172083012776357589383509891215335607068534252941729540374474059240412860148826141568651153490434724910213227477470571214711407443186551380143537110630989911776576264082724451307689036827420782945259944852642215697968607546982877586027557414858754804610788323072013681369619506151543303716761697995816175995072947016986606724961189008350279090963625416519485002784747332076695674493672105697816908835986380247474985914715628579425228540351067800359490700017732608008500750089918658558791479667829405486098136110185792066496783362477718047729496003702571837113544991679863687725002905206684381103131643810087142091126206568637580871413066687316828846353033510003007591599293442277967511434916726575663805127521588301614291308001363648705583962096687293449267967614368045354163380916398634849914834659975268503867924663809860507159254705793877585148877894899035139970788324833230509741854183205050918599320044880102497442972265205501407133092437170045174090526988121560432101103350443231746876799377811282890295653300464600798137692611664381013538304039523914856792599167813263226645550123849234057009283231794715041732619462658163912418419271488385565269567231667492704547351308155472107769870576035874684720143215724630992245450103697331082039642904369746084270727967935968406606897568426511975600644734540670641214430851022655719824811294493719432052261301222659247650859316131533504258419839421186508331698119568092941463106538468897098364502176357374414408164780895645931529878643095844099973274809772107841823694928231641456213150607103567245800761774962302994680852912618210022682055511893300830301340111235183252688336222481317868856799974313810490914409460677585220375820704602932035215653540002069199212260007687889237796839910567344536010974938571502076982727083140118850765390183923313731442353767139148260666946824440623639272605656432480323911931481648058380005776174019972200746111118189724606020496576330675583234224873546489316024548795855029329854976892597689857885267537921467439008902693426366625319050979598277510252157904078988725532690013672441477801649131709413692027800425393527886064408552766036578691811623259493752118361888441968538774970009016793800200990209954093470943471080297450109728569797019159599773844342622175861615558465749036125268999342625390412392758659952184025800226401659824798700434434753814945634270077094380151613651084714777821781122484616927948583725495832064866012664522557429340337248988152133605824215573346609813155525102322383417225698111949056910007599342820488442595909872356964417904956419167982238419507301485007262730957156509692033144091263689333802567370556274625283940177067113641281085513474788571807620184405591982076040075187611176382845478338894758005239030040165761490859884372751847975699184666533879241340514301016617716062418492687077461056977109264496819695799090485586952083453889944665171997270823259171142999377561565116088183038689901641579400268110339578655740426878862025982296429875636700617526950637410341548667529702816663888392456295376689932481053602732983060106316971478865123047328781706309827342883951867433124238998457448796576625804417810774002258191035358370906950244067281011104169840744192786385417236998294424621695979519605917657654563146523306309194114986296856311281028987586271228432099530517948998745667229107735926182513595984835588397146071771671749684132396482321219193849901865600614825909499039561013693151402573829301240889637379099295318459819568714826755907777958680842122646893583861993236020927095571073015721511822942986071113877227734036701831872162981054791424254105836654123241081245978615429263856857143344094293581650736068110316955614792334438397893741641310955083853401468826468939276119953516870971840367022705302495469013852718947974072934256137644892135392549935048023397933004354786183515629524007882211522312686240046027717423852117731092415686255467719697044980866241425073049281365262020208056093818532118404070141852820341884360525626822336294927038408535632625042263491979661256436982675341537097831745756525587645295820722369070281718683736635262251164882349079111731909081412459132964340415711377294131075482130927032074692143435429761732642181599975821766923834774450437888868917566700123052591848846340755846491800975645266478000806790811817585347079923157941636991648041135660353070190394192598638558592679306014186499404243319950792922322095188388855244906098037975169261728044300884521308244148982658394761193644145127750869870888681885539136511698931948479237183602131356068934122746861307600847441866331435282557153560757065301046624366530691884532480310264237921191552250786136404028698918595333625303033427709972814518385878423489087188040445141180962283862604247372635309195706769574863997923025922115035383949911372259431077482510815804429638414085056942736672215240470971778395936107790138930769064692990715809140248456175852629833279833469773420002899498273645696407897136556616126361667063406419040205292119139886343714159836347765071091583640532563203938999305677901313689245854952623299338014527212641924843428468214922661593174042331949700871758428175628071903729633175467186293582849524450901545958321094570835679511981245147403813186435582570584849030799629474277623769789724748325235899254697684009954767828517354100492303934015537371652050111007554605264450370056669058080448769813956836829228100726101911259913996948583035223516389202519032042860536327312656023724108863188252433372784128497044404977141172084849932825600227786863392510446516002556506004340938398670059691608705297298532996297152367814047586987596663848830066972056785325784929644530772736691884294492157539009440842391354742864828580334603804417202539617984490753811858811537320576258176887496689783456946196489500156814555741753683209615072006912415948691179759577913026838949832803769934808262691441026078804123597415166083618766790559903420756555186049677798149778492930341805855847185518484554626252455857944525281839268006173841657425215265119803580531002737547645569164276506948107338297181363772211257095619594395755362073059399067060070814104255686599297107415567745549780796435801429648284330578882159946972620952707927308534312668206613561698055906660478447164593439139146352310668793914830082279612372765154125034016258284578743151326972583554375583769587664268311287749312805020403091999098867498735596303685824666987871712420595990391492254272381247988005892329926816534275942326861809568862082703410808626548690803542015672589172125884989702198693290924325914871814574608986275575439663691864090684328550328655930506011003907076434170775824970529231782454277645758962739281262472838614910378468253580556460160268861430492351316804027466399594190822676998126574810223510018322242216733789648987180082905777577656156018190874601483119154992995289527017466595949354375345532711950881291128419365252132061318475368208384004796672046918629061542816582723047199952408845971561411025697220664710922506258737935602609778994228412829420863019752894543668216382360035952582195987441020170170967310309638803257754694032284622886415227616662575214153051808207557388612396827851718147790318844444632676934141677448396386731168123431510285003108131222959162807790839984160740212335779993750934626747195640998339199083251967632346451387927673682400866000658337992063039464191584327268259778410690573764520448203784004692806667443796035470097069015096312916661969401508333671297955977922299848826657402919563581992268955069545981852623790132948312523439487067693318269091864355717789065992295928713674331649457768043044920599072816259917387728021338988480970576123315469390472276651541806508941525752933760755800399920296924530724805977927521975963418609380945698837563528793336175508100441324660532432985021411120226345160169134102175466625575822833544530629823257763695114006220641591383129989557774334886137358213922244583849290743307556707250363375524654346811275715774874194421143904054131382773886289952632986310653113602222865559298067432971516846142831759653996190501595053061063717252455427114576428969249162223679729605765731295985160050648524650989674461997924827413798815193852259565294905130292349697086746378708286065888703335128990419384333709339212700822668720206735244934487408939752384278587998944573655625236621705047446723519362680614753106868739985729831146677787332299311766409174152234135121490446758535357706109078468871029156026788100866974626121906322283541986309902333210198065897314322353665986218965265802626515428992849055480905192189720476733930038340366993005680940902007587817650052461585273448522660731075190911573725764729442445106312323096386380526425048783870853461033997656467017358189691734809408522915963831533077567438771077860004056318284463536482925399901532366329877766434713635845626206313440369117672559594351040351373710457490349284407905417011785094656630489794596158299173796866194938669897868240929103348549257415202295565399772803431204465309418229068776258196155008066086490676403283866294403817928388868757377647205056604648144440450113814071951811173098509992795041163641043314270838602899224505423225714776288316129410845807169397448212886805377168495668093055921166589515465348570377347830432939986603074754878855338985362216426522332501123805210780041516938860196927082130824299597196992553320388584594839505363373823244862401857304279247477111359406217789316403778033149783787387471805919251361471654116864598611981838483501964574775298643609870308132414923578069810164623485982229261448671321959086927415446445349052520988247438078371301088664071849378846520940160091300624773196615253692103389810815808311637000829054728529964938948170785536997237115175310810951480757023262378555211778463566379758730498371101525250553425108395266082065861849075155043605123892179987549905112944161727387534969915735707989510137498767914571274335396509012787006963145950613168530258605442015574021526587990157002638473510018179765550512472496655834553527126806775556723920693320810258197616939497417838189753123050602172927179209146348746715800750326370161268233938513202941974440700198520904110358469373959270109448506802556903273279034940058318247794038192016566651667932262791821184180084298242204440879397881375154761104063263813438327892829587332712630314590556035329068593866589478002770540825976953119161397235538685824185093437511063969898995316569322970441138705613683084653452095847941241989809717230111274126610598938879753483857478658061993778974596569671251428963422575540073690679515248953465242929506534872221753657576609397851271260347134269449115607140183870909271221971286344530649693053032008882382337951182201125242347849303712653322471150713927807239691377235192460274967613205364019542721427682113051020004419968838948126868250502432183301664997899364272398346712373887758323061818202561248272392887105842284929630215624078593209334792025734223748092303350526095965925149123526584850544090010189102991451411010395642876255658528815862216298669926200065272153548880376203327533646782637616197076160471825876220383510229594679524976262008305432370748593785692438017505060502020877002410691141809165304327896459120439135641126518818306949477703748900966158089586129772881943849607890357360830120694704259637546558685623167920083487609622041440929355711736675007178211833755422126142257210015176647304771417023476402683993255734867927577862473618375295367422868998307759092982174258930391467682333560830088955274147928581379367771894769511327763621596241500396245550993144124230358005022931674628362806210256084693565967877738186613662644936351387912516914292490051663795269383556173636092462011952418590587450853632847417923647920031659756237105738172236679646522286325870704179261478608227180380267728538862345303252405602858954400252299723968987075682530937334721021454442973523916563602080248687122621279013493693932998933951839138159171119045197683629552424681272362834580893987350278145903312226520716607504059829780033843641153733543765692955571644977067073111639105289555995204437162089847272358436260276291503045495509503659626289366121118320202880641084371059971699839748772333509163707141955490786499206521154537816454320954393293264164528830440131088079948110487393918524720187576477090837549120741761204360249156904959637010090970880806656219278730976926590786559304490187376996854896272877626303738584943647282645762059901750510580813720261459384270943275990716236334866862751082406012259950249937521805243651463518121149344956338930577838646167600462118079027772225993023997519907396743008712011962382020260995877000620092454013898136127005328154979683086851786546402743354237956127152534577380120954172170995659650749568503416465067942423254292573982005394959441118699434333645764714710980810557314402325693543861368229921991201213932129764559922004476866227483023348717243518372867967154622880895291008542824172773516319129312587987480313134326815281607372088485122914261347043722489603821402503143853280867090607619750302085261854334416866889130230103545051014741422358760297433621123891699764454310419940442465912818073082512954080380031216488374583670101379507897945381923004501800758587481823038228780403316113478455533088226837397037696269470523147130358669199769134193810892326078579099253209645009563996382254958321514518368202356956577694058071979954840308593286296213199472752615756789006299273131421257225825512937727858221063115403915464428859345719319539029474966337961497017897781980871499940355683163693250203495424543698675176883692939700845958688167758269883264012454810712109032881755309045256395873794618804078772692800531118771128973466955023410696369097962350114853029981890844994417850464222340858110151936597561237720118664984938604453676821876167605416543818943547615564855798740571443834423124844422971203230430113935670848919964520056354723114858678096557928413965558350536288092813800231032758095167181560911813314329726912673103115080654515312948724675627704139813791804512791820921866806260536925209841361008702554629873678879633066943492557018654625168253780276263941343932707171049912881179699384913459184522100663633546997313738997090198585888187851738032345372534540947670293865219949698964387103920366201743119080878906276072208543435866816071858835997776801722016575710259008465538777582998261430823277995971274106930784524416424368485676675198978474773293570507278716983660827394256623516428881354228015841146816953242118079912138588088957321674709260167586300961565452254960599419111717288622320788626972748263006221495815916859109507617548716848895079218898375415643406629585237047828417132000742080810773024008855430471226434946199572175172487231075160287037063865502678767134606946491342528958719897241712467688547805508154573840139267622910536616525369825630074978534273517623590027934660609733950197212212673953592036359504693126210737772429220459844000329783395815227958929466201738494388998888574362684361137813632934145031958732915400814035703179021369597524895759122047476100316479253071503350357471739428651290874888392217289042414290756528624183388388609584124744322614988984521891647679554408593847793896641099748644501534359804420681112516072985598189028250495958025898059290606436577624895001573783645123457680346301223099988037243153426567528590565247601498259607714644863001974657885770484666226669200085854315251870843618597229716552070481835565190112469974921786986364396023616543941234266500533395312797568531678462771764991026091036244982956875554837391075456035436784017831688276839132702974384343424985350959079441456496113642222800197357974873732266867647227919753678183359336204993025137434028508423877907975140211001201032018230230340507422231500797660745705528996631636213633934574873630310209929101624981128003570976666456176749406108891036551595874909083157031037352944886632658891167738840634720039064027571313068321876079361719084321754580440049138696297230748856241516199248205680543950173530023774251767566960662184979159053096063474352788190814421874452266264925322002606357642246119028455871501799307654514922046147448255384386969360774858794934311139494747864104968398853169525233098667760384686014197107694037792565888244820582844624668765227524408202170489401136580978358242457792883984462502844679165790745449402604648036516152319477114617969390632965641007934025195356186776736192427334198092490704751166467775017886861932159873935693892105363643585077719887869795753026045835708153722474653012632961250054175177776720889863110457675361496009442621619012974722766474446423162989241119715079021664116441138080701648902533144865454635634840733475308613918239380117599191540983522454989444314756972433348393923354785331875008059205086015737432454422241254188998555501736429333984320552513697280709282374265924172039003141629565082112558989204312317213710192643429291176711658818362586879491843981833536286109179203379603068148698593352679133926084859369915598741432473735080455092793305832613664378813652744508614049552976457654598902295114647334855061634250846022408417264394080487917764916179330258059556943673633823538661417449592405811790857251470895249279999802460701337163700473788995775053875325273542158852061757938189259516018809175788179635844615462141055326057931044537526888066495006447184728969046559975871156149100888758380705265780826810192519965015453833025326246693392379653542926793377395656220980621588909343431690594362204580318627027889732836773050516851215056383930061868456168560663784428498469981739866887854617366311153140659411935790204622268782150023437477433984592003840004035097327275641161331980898484742296522224185469565807515947567491301009574853682864910816477231886664167203676066570292298598453874387952415790344360591873543298082669957296899918454710579533002330943576720488394236352623893241055317455042813740106364157838570534271547312704946997890389138919628485211382728727789536006612680704598824681218531778634635659364162523911830406777028415663477198665406587220999481381127718531186304512357653366374728964618695975445660091262061732684156630942493126720245303475442912904614883366923151399490530692997810134095218837372784903414014271626223930958763699413810625081213463380751590701956902014795330112025467847741999831902873936711086852181719649448159089320591914188151343962124533652826685545472155403216399798227255539119786044762620414171046380457057732040353054821790428533186819382733391228786349634957495703102946317183832216152812490134377206489896691494769240733220893506799933769361009967437727350085391361094544144222957558487584520504171403338584689255260107099012601947802247007182746923086428707494778761748189442091426075738167011284295195502355730495712062318704826450280727134409633843140377970628505832428563988627742166725994881279012623773650541017447513190127640471118368399168639905325063957350420561653436921755773532389984668352903064239335341880897009978230765392925171915442005599479826647890567613916529645269049190302075060193522231702030626112965794868875971405451475946761284245953563714306586201472650706506785938207471979586256442631586229334300548358942802500783433514455543008118783791293838363679780796656535257560871166677649889001209177479920821490567992224264301240171140172179581086154997672698382707989355107406724149983696596387791327438267563320051778836781853547978201579255558878498628585441352520403856246837312613624278131794371607748859544840738754365610625102272819105531136047607088898589347707009549475240581836058848993546967975644809902683605876122760850186021784795152901477424127117120657810415638097373251792066128179343859014706188516801761042687932775182762092741357134037863627294934376259270114315550758150352259381982755274184028285416158427505048103264955268023263525300151147690605711799750078406281029755686663302496343552326009279426915519869790545510308210091265572301750379073925659009011564078050567869397275859200873203236117766697306683239495343357412782599077927208710974984185973267246328597294051610444945965745747365382583614965354933667260057774222890484495243815668153900466933656276481971239926101457705378522280279655194884267206300300744108864302399281141190921778524890040357621886124349839240067036528001679749351221470847759618082287004405084684583460665228528974576350545107277961247435107366100507702109816781304374641249125199554188060385939189500578133569503616196936822864493016373441787088420490371564458336496809038466360729817899967252569392783346586035713516214212145989950230430245616463005925271192647092361210991443602190616508807178975180761301293429644644384343384462638120742437731074954195603644577378423495754599382760495055025415013876248114678694556406287496055411577291589304901925110832143613538615696538558773029386465340731559029020972659991769525391835885377362967776158527397308887717839328351206987629081862864221739463690912313963197216991106362104280481830533163530365795652066776802624002080021307909671018157974476273790777501754119216340050931936513157712399815302451637574318614765375763278864348523970636970990012100978592782612246011225787584711616931646140885505430325230058051389110011005249888077276437098719995876861390090727694673993061125055576791533621274466686802575510808309696050248121709052845217744530746468997835762743597467164145053292787372110240421227162689288830485494476902803578036570872505327951537317446076035142059286304859575292916713260912302573774026530225918520429894207567395323131882317349013672709214528810839720821391721806641630878917382001291455023029640264694574874685410565858572536870474580610105714720561090654402269259186266588303836508793505822511315485031218739253480772725467704168805743686514090307502476493073649080419905484990871981725010606976309675366634613110728255497363400386474086605483214755379848998468270341402669495780826914373241036756501422465685904159831769499906101002780707245649624539198443566200478555676363124922768156431226004944873932649502338969956587531200142211004158305725387371967659702343466175806503466520408178228131615146706142908656473172444699996413545306230489852406152969296518420637987230935861863999252450726925891772512776102037210948623515877962510334513940993178045871971623727835547265941880333672001581169868749171680607182650112666396264251568762688305004059986237990582730082696678350678553759477953616012898676038180762846261512194054620386258876974666373441726366894478546034318322942290631050965676023350953387069892288979021793650897396895949490058721118740152512570142864164467472235899223348107437037206433873681085861426831990578208550470372611752863494674591734827551468194567769853771053378633451287754909153023955163387355807253041285194430772578103354943132651145423835995928991702005639246314102287240053093720818373843869057083165518206630001279740850461052350548828695860104273756312586709610583011555213945439296053887131871826892004296830812903149679981109170979130953634385911736298214388491640271914884719322048078275345322666966547074823295901043901191578412790437718589947319105669796600300180368860892895680495430529924023583928531338504861149740559774903414591608237421945531101472024198819344968923166479602000449050998841122686833002938128002222836080275385777412839218966268732025648041548317353927582145027108403295298074698521540170704689492703817956932713421084841217537889629557345331984935620563517880836160852534558580003002980632497825950300224136437942960033308022397605686876798681788499667412222374169572867431782031785561308482038359539667531642195097306174982816776487075037909059202718597462526889044325704374185351131165354687807820076241702356624652861250811021273110971960027702899978190621344510981647375697299771837298305182898654976344459509459876270110212067680095973084262987344871117737215737004891623478178900080887087351917835761165898559745132197915679446917220950257087435043438623493601671865768897909712649095537055168439057949042905107006244035764377835190775021162591051344471533333386313143147595339178167765833107940156786271920929443053731288815990139283246108338832779311640587284166940962939963456830705741671186595637867491282325718085354138723944957738761033852198727993500536202785480373737456033328024256384589817248305459229332014930568932654659568977372809955402051796151356173802433326370223472705084592642262215820663222282478646619420727897589989536803522788796811461793860162643729893889100228115405812007916575525683541191748433175305685988136440266867456681404940653980913591881385020204155719395671865014954100253391317634176466691569315384870713943561396229729052966068754458473762787105773897975162205923537705919501931176165675151831512693540245521354465287775517271521986695995855372740073087056418576940488985754705539507691265107055454691951464555014145128077768182858075741182608314091351904140069981271265403474889798649916132763776637367756853721709752640320424313378007749851035908508490310981992879329057351495240935512525887975990307222605351678885018652165032750731818061274145112339826734968738218865339714834109725585147765300909202432221964583164415430657938531900019525639382303692117116517107517371454071000272072328910643947234247671553270036894430620566113354694641112803595577376065371466728688105350340476505107171215534235647291172720640278624532167375930542063490409922229529231020336193214421447134748228835261909765611651139338363001452642195563640056033583739817697129395776420930643823224706419545995353028863319180344585425306566145974625771563918286282336510836125305938601565077656998381451546339168825005532410927467794408280532263483543554117174640041220205177320996726304517337252023980267555368994492514009132074668528041642582222483976079203511800020422356239455123384323996529466655578342716192573588133440527617758935317631661295784304110185821243717815992732853137307962908877286346136876289879744145285280355034367259745044595663255119441538329863816302744886428017300814493689346902789194707517427124215128384501707768327233506613222570303120726982499676239404713823981020283616873164030525086247952105947088330096956092237190765296994530000239671846170704270178431422000251004006094645137284988076984149200422483600853227855861070050163135186025151876761617714499553719810920468355324068128833564102274261870989333911394595579119791897619832160998213898274723600403428012809402678936783812219739521336150312070321744207191364615588873885427549790750687239428690388247928993911728981998915466192234765481139199511947119210124176363594916742391967238454280021795268736367646908451648506038806730296869990774228750226657235170905897322023413616325175721504056487861914433661716755069371283888497875209099918545212799533278446729964137475194039734309561107325589338426353716936379925591661537858639690373052616654868669661930466497026192457761189772515394592272681412663141451713288700540887287676978770040829448674636397135349177125326059164332906190181711708676046682455993509944774710186234751977327324460549065208202546692627792394288119962956371608201056759445060640069578577950975128854932450369342646579713361060637892163360284893558098235529184576456836256855123687078843378290790693126902770249912444767747523885673127393474662993399647188607604721547111324817477813037078819636499536689916012631983241589678728891162790322456428457890981355093349754146834815171594046028143918050571233332120202984616292134499954342168817460277123096103981175141732427636794748139598355699098592199594005565036221206618687038899052226511881595680282765744606330137683912788196456219225519726469338241162290035044238221511885850979435030605902374677518725934796539384310332452516273824050767833314892534354806952457484859168246477914233816544833445148528799484135733015581044584143355537143882849527967045896109606719517099723358413415998780478744210943793905553839428142035480154714228748426159312076190311576569278419188749350032225654038543083057999256789854228778833573976909224224793223750081074639135951271836956722415164699734920874242183826428658072336705644738316118113231073947560864583571066618766891838998519254991854816918585443969649501998371004725029383723403922070759088532132162575826806613580676308145154458882637250914683799099356715016024533553313412335495407793591802086737505422694440793306245420109447865667416917206189731365296511491168477600017038547460534200361992272295189182581258265503154888237646616757336523033819146656552396300436289685372456170656000602217595461783281876440755865780238933330413142192120329620070596808630255925883312127937610174405567338796425804698357975489847459835078712005128461155105818401170905214850446692209613158485084670815169558646719320087749663449598964501585931200582592186363307206432703839460760924856722246757349867661923093960361850026859364194328730475322876887154631773705057334697552507878088123629591188130610417358286887913290758471174140201656283230317142443236663978753733083870082337524490113483619410320799487287787863877718633536371161757586803235600997634600291897490569628263814060114167369376960026903679754760048718836881029404928626875895523422520576722280558634805108116101883011478489281219274485301128801567852811324074880808778921259335662868681840016431680991310354570060663133980500778605561360080762549714264533866989024942108498627940076614472380510859904088726369435368562873708110997262357463497693474746102349158728249847610798159906844107437720596417063575107862890601839167979613690685259612638047132885952930948010540795613920659771962927616551707509667117354225170189094363209029040088289604369911951267281258249802706618089303804206245093822008929457462353359088348583005495956239474913058555062925771522744759267542028936638246337110437348283149994349897941241531046534753833241792556579902178325097223049948402598218862247931872512552597028880125662487372216058974558911438348338772808821941223713306293187454563116369989527956143894295670427058964572912663678864210197945137230026026786727532008306718672156237060526807597904371022536143515109949352080940525434793147979893088466086335919153863266750819708776603978082116765564771389504032419295020949833339408425714503671289621032372025857155511789786905939683119760739582650211529518339017419980174103790818754511062055280255202352558478688533144165925094609333333945157109832492192373255334593814580137855351001334922308441594675906446253778591321580315382610105832356997916642027948580851114256455779885263582015633457022610466291210965506653824330223924913294055791248926151958398962995492303648051790161717033920596885181166646195344927103795226673033792966542408548118170145077020342528018912985980376606432984991931420169428652248681011132661045906835992644555241817580725836124608512165361395908125075211100496982834350456923582539639894413315785032298347945490696743311085713867729599781752924635615560574875610385575542008542256360705441509934180253861536047734663525553338011753104742715087917373631883320124232371650684289903258274796005923695311776486486635198653273417954349682795313421541237737771942474601443808421906252480829208385808239813164045686480315570257638177632167541675396955968277102585239640746047451005204566030526145989654944267576836567100453764733155509019606244569928832829403381034642283029116216067461890034690921894136571402398904950071473899872310546118685927150324543202136848455143700948788840248450175301212047278947863762533571313533133311980232807693455298591726775332803452073001370203556650043529514077849199447464314809296522467407365295685269067526850848500279610854388576398543577402628317004059650063487625718722541172498128172544220775761830990185301169624795779151494542079435359831120212818281227802452664065095501039425822909849585166321154693522066967559995327572875284019311230324348646720332127183310635607920894695670465583060744215230476894519531292405490097854012290938717464117137592861726069565287740189615471494288478462778582081679165790882089960040633672313621322997009478043636720352985410557245051846061759173482708672347881709702947924579277028552602257579178285099586565240628889859212497800274886432477295433114127292123328167437677829818474858364520867401421215537109402449236491219590229194211081480144150898457375726400955971184486951008694047717252498090567936498489475777490563356943650430997773266515421905265004657741717132689784469298116528219858256217319324139854587833486857815548480503224861483517425458738551800878431964017545360858454376357724846376644867951682514982659043632517961881284424854877666119978794157080738319136901613395325166122306656811685448651913024904745632311533813094469158382649400720726036196920832147994391919958811910508271423966542196620504895945583867358412002818836915950091300171450389383401160618081445514147459295523512076135763210737676488205667532286933567253496651008887495578368964063624404708924255073261612289357279041280049131080138465497584763096132079896208491986518874499739479666954470179517766709543620917985256189762419843789096701436291616750583927092545120031228854639273470435338146059662938040527133435339105417033404713917315123961038088694492556895204129307988862003187049344806931763442128044183715930491971792665519151678428815107644995889798824362329451074591065465430014617645716940107193938999826277993081158248335739965657720897887272098456336259232527221564597164079058663846873042113023879614378627398585030215500834508455455554170947510358254902595120603490363827559207593048098924538159400884673303728263768042691203709988077489124858875902241791414157414404902555793225323337626288325258327047216740756157579803095910976125433015055647427372255066152797923518340758449091096583464458347542602325751811572768037042715165691613784448452352143514527251661775535655207766946908096597243217222949880883679884868507000009146208248674778870913074340233754198706524400754663234668458375916009938845196564509208002316706556043642381222192181882060762858453485147519552449111870552740011370324362656472525994631944261966625619148746789528028278144138408955969384441175505964402120222874737340917611321994538881014225701273888925813282302667981900575700942146706549390436525664563747411637591520231661190298262650559040710866033711209675283374666890354553268679031875656646629658031926705698727846093948694933937351167208568016872188817431663506793885030391579151497749361347113094514102947432858092780268200794437529011349955760116070121275684327097630573650870684859424331215805536031690401063002815572677506280229753307087907195117039243717309943632761316257417118051831899406900529061678231664003624201267734159551819170500880835609888880053649098306059565176318372074240749069662080809952026570309407510575173519023337851347121770487389889133672726787403561227827503900477310149054199282989782383437745625173043976829146060730162464216874145731295232677190850135057372452019920592173479037406683150541519502932305067319854423095095067371381662444516977656866478358308447443482284679170666455942457972647809760198604611585022826327525980376709611912216146214201534944211388599914501640809598226113027755710644365198191951688663524227884607714611914120037743959050018816442606926763731814811095709114759130071007419535607965177418661760646799312163611273949874088776233034497056065453989920560835146793931245099606260101602983808918139506474602953650372187670064763944393813071434550200718222447284529333636099638969500160707750619656965000887977930720893254017522946679493629029252168509875717610323945652837727866617429585000021526120325113399606829415587445640408998559670292700384539879097045675598020995174575799221419697266965386601349981736135650861723978347951652591257883736049492366417960296099273279589608704698646860352228938813957580844632163786945748765002997448942238964681534443276193149016498267281383493034442619411882480514175258515692078973590229468166923111027386488329659161238612160125345052019048052178359629637965223620824826123285503612149493164182929552123707351369557870162079886014864272610421209541387815731933906830522602341806723877371215321235656287504520945353129388614093359700482303385638105085733114316213881259855980570300936735234023125360481750759023380835819613101887398788923372987647835966231348775133475724184920573597643717354290881320947316985297452279675307780502508919213444933898052440146680360714872459082077026906904689345932809905109776503455786722368667145935674212484327431412649481032674352909715556030897586847313524212379695967714440475166151256401362024386342307973963820463178977464035454159845751319361498019256762757601162223797659896600402491751114568353515139734611766976238102338627574374248584102440125967606291100061364270817776904371213756813185147828119646305815277966137685359771996889516633452040061622977990262492451733726823383646065596940562042785254129392612044052781032724780377020651781649600037815497964533104075654403310190137987754680275127892150334030300676860418025803608472674874659454962509630241425244218841111988056065605620655134419528062650901570958691178004366130468269606165232511245474567590759589613889199789353916164493370551807068154301459492115562732130122127577905701764926577075397548251259824235648799702555821535634457936325007642337406884517294900409994111843865597381272209371214082395965470959773592007291821556462694768506058413367264066324505022688209526512042421672825980984102748732036553278635598752274595506204123122504709090143756185409607843572282061552466024631211456641847002483244107042595375301155831738190052034061740907778106473782692515128420153875921826588744707084916964333263843401063113315768230400555704548070227242511609306704283124326897901045486412710950918830326545913523662779213853669547934908564381008842278702930168886705517922280710345740948904004332918805351324921825088159428661262179127612891248197162277797366836179632282301192471066528788770008192608953206271509759751989649984560068265987527271511807981697851981522678021371227100743978414694666991582288678637405741096616377895685232205442702373641981311050227556358953347140293983319146150153982878979321467994667969821147814257971187362761571207446164070659816686270834521938551819673020018544522886525174116715312788947789418437730307522422295806487533418081022126506358473859191387225238643779292763570109394619343727053003747120008129177104806600495139315214575741292872807651482315221425765517059333322404049541109867945356969441067271276847720640598711210008627486398420514922430729523005575031736049660546028288062833365297969088086472939285070957778257313541094434106801576573567308721323138603520088189933664648669237547429529379082414326361627040792898844285901374776720229958345947275677093197493161773400206656660947762056318191829982715610880635877949313621508484017693032062474450960989206432410679880911639919725161208527579088784302911698524018741939521449839935315935195800533073493693397179055042649946900662234440199875419647825689386889148348441726412214189302357114135742500271285708382741863660026603077039491172422604836726162656835462793787155841833299633974190452421987037200526495168568411863708513990238395670382133236707318659111690539858919888713510300089930661484618197702733849562830948820615036039748140003723694630452554599787864388991194876729043361076784384044251772817668495358445494144407469988792303736292125285470418445575264074922565504279714041526730875936784063526879788567992522689933566079458673327884265162391125889494707220165766863808952933040548613454732411954971056783715674214637342608524305610815742727519605017733878575817023851763146329702865188691765966186361067240234413233617707863698833726366773802356628154378833108953339504216168277050230748524155704411520228821903627962836000842231733687789555520772298689302164280477647499146583253417204997503504716908555878869109251561696426830235748878444324430517321701259418602940219593337143030824214554507143372292552200313800214400687783249055281995090311902011496845185091407747904722627064090451802719404903701492147376540897843975657121425589517946419023927750558286206951371044035853288117659090606389750345968963507436937858668459823604354921838565998104922035557083373955445385795857747599330938638459283644540849294012677246240889555298272323428065664550929857948803121014172749678291765677777201170170623330581864254270524843505807842661815008914210318380009116390709327052076126336326042888065154610694457068111250255252023095112480362230484836499521245227400030734103441459240759413233410061648878015019823963198203522629544811532393919532899475661213531402375961999481614141903813905299581184219031227883284251480866780176182667738276598845705222725463866524010181485065390542135679807398503907630733784918392886812072141817883781454179255529686150020442710375231204097270831533846538067247294168853548931286025300859032041313275367400652758517832576816421716603349934786583467779295898332024850403957729409846425774642609139583810717261487093115054338553709291614787058830491819043628011663631001243244048169160798800373650897354535194771813948332570870184002316423156843594673030982214536406430813556050255473888117348326131055595798438469220057561615562407506776439362547675644128998919644478920822276156916698605911991938244521957753300590799449727195399294877209935221120370334026435711078026222522693150192947081581290514586593377949891362972176678185208016709835159142956700978708893704346743986927959857413158525225564044396986416787384170643200213376077391185367794016561404364647493975847599306674243181962989587361884721539723458216242312577897356054389621289745809597203898388504779910216786686876955986420026617861026825981611392827458642929772412588842741621846588413872533007396035689221888452417652978998434270431538356126502099394275368390862804598696713307998184940692946784906488951007085996793790735081267076978140854348365649710441033403798933434252973683971825069854448506413676665173542258728420483468554474248359048664379908614584695181517376525403911754505828265646212284407079430816418762403169549304888565729433336163836764097419999496771460639713472614220725120288140691892068497453002889427109328408285600233492555416764414993872866188634277430707530290684914055572916410713634701397930377890838570944686698699694281811296053970411235471307478418110362495696421941628483618790608285008706381444974755629284670486268454046341329364849123900747931499224219951437554077041854705641140006408346745719372616428478171940954573923207049126820084624542021087902125368245829867993925024118958004629371861750148835679516995992013942821090419982039493838448015048708198175660456853905620110478175054151557702738534059223939979970081403593674653255371506382188104642734670416901322163456382332625035759285232361624804321436452893187498507099923926572342957133636209245116817291384346643905922215814637727976609374791945862248146005597094485061314865962715479939903742161326146521112052311051258140216208307356534485410169269485135768549798028017977142016519296066975367695982843694654298481158505735344124097658800324323130388973749756950210348500809778120930066343576045476062726440128948492992817145124207716006572037465294159975473305555077718336050911853005128532009578837831351857109710958332718056102210696805059145493082927730730571423033703541365338505232753233181015298314488595667365537345167051805440366305900267049312772530646610863958908587698906531466464779133105397519332013686211596665749715592567286461149283162226962230737095277714019586703754324932320905682076640745485859388499715122059993813289053768857919458358081446624856125124309195390972943112572441079202974018655313163796641091578126191008150244586970083721353168387278896277069611938220621863494051581485913596959076129997263108746344871830568265402683792399727697920984391948561472462565650860958854067807110949641965420131262198289282416387259452942750917379634508029158819715306197091402547824935802783506675182200715347588597723943151124130848246622375125044271466178824437857916765570661049625849988816499775534044693117747265082517369226969835059172434773320940475431910026258758159211113984765935191094126258629284510542052381906000475655803866172318926916580006619073275495478033582933551474452769651821515428409635369024467099974353649164531387793144590607652100855505453686740521483329050372298519914969815988507098159863022814065842260187427665316119409219793681023012116468879838236385852587167217769523357714664766752871542074709179400670651796915105225769710067431555004252486313852092578130396837128216393287362603578480217497085658201403302362527768251149285773162671121373344734176997497629762865921223547978158919994077793543966603113455597636491424320885529705753214656981747424936888481482333956382147038093049206100107608117965816479399741766513098050544943578694937116250617308064152608753537666576428483356355677982671794322339450817157769405406658991520367977422369938341378708319242073228747665524569332545853840573092695454686573144446777915757533187457415347439472442429339764446666663984854156992244763890402780403590036860025678735558187192629305850588422730693005424078452840777681025673466570354387517399777957842200253794887879642805265835836709340921492220312728397826422864164819816240498030764066023567069475991829624815806434939827947772144818158993517329617267090938029453026753663176079486144660339063672443471963669874340276459605131094453521213243078413807111940467008335957551591468366954526658399652767149373555882487791781302584688318307278916633650841736888427482902230532674471880728440370796131918191571339923653042831458157989025676609683590069218255136410170519062948014694384813087301732513880157805451356379737579263186530745823350582982609623039077694048766424039686235891978768664909856407376237407676777164620417961242706188547868913257338205318471669037709939893044285670403031624217731753334292511957560780779647683344375346541065404293892526198251682516931542441197434628674116758060648263338320735745529454534926288314339439554834923752908196015042110228997467766175812374547685222430084995450160676576863467311951789995770307868490799675703281906019671945805048109121549935296111606663417607517542531589460131097574725934839564400263763545291054153168288749285340347205191727987861961055556951248777652455260261131460387674905152621370138723302482939099150846155195661177553485930261722009024356207944203861871695334335164214082828652793917638208896936783901381479076609318520845570498016543638086538626948197453390257926446355179370904027756720692318766193290454456484346257197716212706992389245700683048106339458831056213269805157169214606868805813411233374660384095981996315721064286368850866845458633850872376046523031582787871799031959830818428901555389086429438971053116181429023476120396452171762164271651703505483211417147012856489182787966079505335022620224767375879009231046791661468132587753088841991408907174409424673067392312241835564019049286576188441267890770273403724436435270367652173848852241791216700620727113142412986232142678863204833878546705959152228433159578503488014087084885103016767876140705307425743757378470421624688360719526022964336947518791550244414458941137167872731784705571584396277730257973153763262752736711978153083901007139899064060118232131782199020972673744519825732763848253491095051583941896768115622035975617431368623162095069890555073786228138013180188924389013253518603788759726119687577027634123465180894052900226113632953234368518738039126739541382150552114251192188284494805286956144631409646532970053279725910120165801836432679523054555930110988605695218295222687645105334341069831116843812283812633426594823229399960361009854094874351957060879575965935817090894084668980264467610714517187773136323615555287035162558977786574538270637462535045610919269225377591524681154491110310530698501003647354885978679269170982925578914631781349267953189280851880083803399154049165382241048637482982851584887472312961338653524054337214278245213663390761339666969608499003601421569048869931805543743511937357333101883613378450105204647529856448928151982521578091172100694436640894650355333856088488443957684512569611392289294557434238129270826133358112363024003872777520175661075038470892957693572188021412857990266060016460009430192938909493129498296776943543662344955581338540466213070557204166889317095806509338095492300377746256733522225522196720503126076982477489374410274234089493248678422665661569679497900942546241437799156370328893525167213945517361804838552101850037863496909888000126540235524574762911022053171278793290199996863120855534394577787208549177784992429312612569524788871694091614734443859828413274145092795796849709192268342455063611394953598880477405735476240306891373239767507934132398030121400497155705315996592797472075752587478855489200524338349976748840110658398886020589903474988100866923035068482409680682341488350998190554506414345512461752040633479319463119651020985441682926920008335642261967162842157007643595930246767981551983265015857561472648441824210996242716767888023173469292256095624040296253466192571888749994093415499981023120420665633136601768411052259733200627596963426092412778399343766184342555086718239762564509475751708911600400165944303181061377047139301218755909799325480975112262774751425257828387732780681180182487458257218181295444885954495613684665390007427662020236593037092628592376135571663056116989399545596565121550905735759231093782711109659743749129975283125750781927986481425515996857671491793663872194510353653568818944342900349908768144603391464873549400780811499274535775481563179924583679966901778888962293844527447384205676814143839342938882359208771032208872047125888171249453364121428582208212054724714795273718035100439461354975867175249355530492144067373157951028677808546393451508002538515644265012796327517929890510029831134705702330452142900988379874410151316180960581261890205903329604272020987314197331586078085440444577554803852592894041860213592685830997337441759558457875813659009145837634450927760753759671353619412140387252436916781341782937042091961711956221771804777245839553106018016614309075953532361251841332347591371151545099171313116688758092269768942997591238939648908168611032870117592733185984063927354657218456974377490338942784806902826262531517700237399104386672219829654628784932762658802709841769992508484154905424922311554805855581307707298212220547397295472251954934296199961307702605564026422132021182517766381623342453800955193213635409094655815519262905883522831455362594247608021822192576344300282388102820017228292208381393363824408961552215654837891787075921825473316494723454601839621614783477925711507030926017145219375851555845133701930303117816216095840401316656668494160900223115208499504677900318151373918707948842248984384762232302099182078927954060420161892068208115006707580276888921281156905649487440503888997858977260732202396868169711318328790225630038184316758999942656561357359582419769893495813147742859151940716989905179778049078488704059264798826090715984570407453775405135128450504000327072567020633113889553016928228065945765354338244307747779097905550640678546273641949475100929312950976553500965914781311538635270222820170177477082907251758840837492039201876952935018404228987857682438285927578443351213073309852900019189061595146528236149204584992694250539675665446550304689077152739759022061495760790777145568231554079705953085037559580047345351927760652372757871199862064060219122759828744353913297752992814635522462281031896798461656192886853366561834789741781535819575712037141230777886494486818549155571639707502652876552286716717582625708580381982539198935517971416130827775479352961543267446714690926582595927090606506053425318564092789207297520761479266884726939678939482935365087373601631271394522617365782969856156774506097264043891738683863508956523522597482551249969375899502044366939344298877639655282832778100214848145740044262220298630260000006169621755835895127774991029389848249282384454723707752833270402330753114623144843155592869861493799605519700334934884205306946596397277727511964766063702234138258851965676684144971053342707188164538083850110698826106572730728233891254362275569571367214816280069474044282334375514371423898258448977861715496778987993460291018758464204258871823229067318540606743089251136103256754829035931531076418507969678024144195228153543592976869146789735476853605385203246088655629157467278582178366643576834467111501961382771251803015269082804443445117270844378818455592382815560162437765705487361936201062852969374220377936860942934260755178217073190825429665484785350274083154670163110364765557109015303874190779986046088876622284019458263252297338406736653481025269010899304315024277980764647875241401378987946588903593567429822237708004842448910090154440947198363992209164744534715939122175872413976320955808293087483783560681675240188916302807182246899887030619962282578647281632080739002189753694024162929052472339088020420565800574849205602876643930293572257120668479552284909996557660764618076482129635385663169410551032556736547766799753279120952042418872720849979855882492287023828961315343725829097919203215864462473634507751480503734111626298251128308098344005359096476230950780485106074754136173013937634665071399231622330905992301765944808114289831661585384069698555175981250879237330374918828347703338626830317493673378128024551836107726136003201772965159768786242219719286357662749476417230444170633924985725159869518233692245640277632370461503639316237991927158384399677493654821018673925245008540950833216862332023432874012393266562492378302249547011896142959254631802053080318079673367955199501679081308945441512650130300818968763965937804682852587624822251349691102484373601600603811670019853912351178528928405805280512997688098992163497665313901605684674538146464663537985665916945373697205939543783245453440665276206313816335216351305211268420395775427083126584720558726008433584134385196444577166655296800712709446264553837680408588432627322354097747855164676594051460439555687061764686465832707612876235678346235627560161732210599974855829291155662881143613778250097037745573325972806712536897771854575000844879342717342316023663997306835521883070308778789247403269004820127599288226981550911745706141493395574933718213781604542572544695926544586786473553855455868412530116580706624581107767191411258171213352984245006797072855928914595895711450114492386862464274342553201213337725885651302634851863939768935869534582614957758978139947432904953809177686905938139768642770184908293398880523376704762627237711670110802261859113598061406273068832484058470552792833596447117261815061085590922296374744102842075662274219062501697311457833553700681306414504612932965545711571887047366221332619440681557736795559210405897692155765186789355368316605843181168050358113582576308705571441813808566587715833007397021125740375415024465412180232001752525838151250623938795538584115740434244023663091665874335277418450576665103059549852448900232809601282666820545982926852316458681004780504501456873362535962015716897489320139252010640737166423931290480757644159851296643238094571442967041412659916361177152474518699527928337031785905254668232860160303367559266600629735632889169630312757581136714311234633933982188102370681186190687426876425648592456310852512731800289556359335271976572960334152957435028609551612937931027760057624051880259846743050204712018994276396651755232277544647646714275511888442683271554083306083135024067721669663189848778610666516650942166973319074689143237181398273223627809365128535424340546764059479956408618038510410287761249760922170498913916169881908736472559568669675236557372938947372642701856393194974573097951724102757433393082167701210590803236815770570543269737779679682497827272842601780350974339949655703057050096744892055572790259653086591337060488829710316294127940991517246141689298163267261299047532259960878889710451318907377167243347001897670821744411673790498446718445974706534364611921176350834892868445415598350187897711708331703020045448144161461443767975103385078584041791301572705896631900076021621285434687895409872349933653826545141994371203832923339695723001600503333148177433855064109534707137815126561755196875449822789553071508703758209555218467666462322504030028928375263115172228296870791409299202125165951784294279991390476867260253552308062847497179542647597722821480593154819318009743904138797952155275263290571337183366304590205843689950341209410931624327456900113941462613428165574132228130014048499777228817478197137735021810988904001002932405230512739324733345286066422492368543430381028939709196960187156182611646712444513717020912257069052921192800218415571578559720663960675578819990425985646039402554882507563942332076209996601250539087063002786054316874170755074995010621575553124769195115391825241428038134055099784141847742238169009685837243725854020486071309634139202841694904768979386225350352116875095717328962307146338979894635379779360083605503478738725017246318771123389170926708654131255680942162768318298116412030432991532623287058953386863831408838050529827662360578956415861836511952765599721005316463839407339789724957409731105224739156355499268134263476509207351320174602629670661057175084753988909254381858979769926545295892931488036428618540659185400488935136369875765912784141338974967298313126405522009880404802060732227438068404802917240811254686523422837347773024940270109272924367014596648233466378694414846062617854440909446775752993358175126728204553087086974260457943923763299879175971195353173691744456954473415208361368737610883185290858225429593792617212542246661374281618682880694763350487075305781178979005239971111737737309339644522361949041248843838229357948453005643140643090311053963392336738421205856404146536591569067221773470807709887656744258201176426411751973583001132476208077305041832013549347749857083797123627575270342437069348583170091614533023314173495704482940552608651428600999879072037660583859496944857261029739251252782105361450420830452430726067576868596430998591095962226885326410262356699051393847894799281348831914323153100558064011132870468836175289873397741772655298369620814940567984361491406027108001302231960379671870694744060822261224922497432927120827106078462929218162678852345934877741381714518787613158988474714091368747793991852021712930812359577023258689060968520056919206539301780004201252170339902137132600141657029196849055190470341452052800318410624406415147003122413058324588869672702008265057938636666990793425435369297149299930330035630865972359203431237017285322025211512383922051976853935664533578148306367934751167270083214803422189457836942122768337885402400603089144546779704828433319741704910804686496524192018321496490961159130880169686256559033924997699750789275328584979495475262859840547279224926296477729942959506025675249242292948297205974300634148358647385332747452786560853593046770789503942766381814521361030816923423145143735528193721804024642010605963820424997671678181478408371812312544333063116299973851356519249039743831538770788082225670422858254070330509693106088229242458119539153334208197514358081716417895098842126801816234749043643009041697603464228964290264390956245892272453846840304751593324970984423097184806463646278294076567558379314846088204410282676865174606205246564112256787807783884976241608249173109221796561722931531849510758635550798329165259888275195927470779179686442148611654207155312179086972118452483300222411899733502190595027997746140043350146333028991227184255543092176065568944833808092463316073522585002706662217850701829082588381999305512198293567700633348758397096113996142561249448198900534485653024441513222844962211513332586187356625854076223591828575856618741399063452465600553821761200166584106554574648413846836274803609721591597074841420246354304187181915776446286918540963446361319780933224510543380378865371024099146912456217653263900549081501808217197366082452125535906626325134611356045378206192322275211316141402591974550300535414975109669814906290280132116030170470128494581720416880568817538876626504869463893563332680085425368153256364731393451941535947032721166498331745216685461004868230823657681920360254507646669150952580743705313676436556238768845411076076162976437409128981277571942019003246243070908242314584796908140389692092392476712753410756044011826873050439699785685246251855376567414683903142763759346948548129953350171718324766497538005590444311851163143966112386606785098127329818206439325829172516172562143328034154812337573145111088446997963667605238051135138676358717988783476141017272029155960872396232290166461310984808987637733059457197670903370695430159922918309051592212934610832027277600008059318019173435065494474113272102828940146507019716939399720034820714437563590778600278260408065735725715556276418231302902912287510921181529649650862573560255168799276195497459323609430707879778685642231708400068304606010932538849774465226642206520330032899724878875791134945926054199320243228551566758523177074026193141023772642682596809126793560115535102515768994524474976856563227619539728553946686293647837858313093993940407271160690180286302834296824211092613903415387502919944966898043542493244346020177033841163342225153838501839656090795883331483331453003681211843247973879394790837618457777751736307047025467898890515619716195470684423870807093807161999198144031242316191872769582356639511412617711988492843474192825690343471780880229068701681760074981159682977580493799057317538515023991126167141174667830075652880890291487931070272345999234947452840280054207987468493260244782464998279942631959587229154264730963472643556645521725537611706126607997151790768655980562092171862418141697467891187247068055780389424456433717418845293443490586326213736829871902674712139261455254911610620339568697295275894652797513144015928542444172534899534268652937902327589047850091881250013925690252583183696635091791611165466383355686475408664185095690654085744649429467981520039666205870884030860598667364436066691015749416719725697324042976369691547659902432998275260106840226315865669818793755657324548064734713689758286431830320901548562683423071531346325712644373771926813079773682971726241164818697860647289958605772015698013543134673485526022687361855719890625111946849327334080422867350989927071361590365643079760116416114684238529055884588403914873571717452610306415670055367575371344335486310164933269087399974454533478016145507763634907540504018726038138318132148459571072814501763287961212219461054936944816610127288783551544264146769558618669282448723731776052032875442960379038915721939010984411134698847796956340882149684762875713136521770422771168053227609423539967393362398703699287353970807871956741679781228594471960596680681635604775398656877692818977077036143047805401396488391111230029958472047063585132120300197143787180802406274698987305440479237081569387090893554283948792358948001332624422787632551623767035627693886427720596832617987965228907198227593746629714666448354853407254289163154434391313891024140893520720677042601211693238313424293700234171056108307048042850915278374247390229753633029176682800508715062802147898475742653976130952372333198725406734081811031265161946036191502040756345479566018318820399212748515758690399816325108964357528964697173857661652877658937544056686014535580643904852930753263336159973386209282240605090340403769682991025787820671861254310586165544840300625801273058764891386674476500899366422821198010698995276753064127927184183048262877404167067509183338400050411174139447953216174083718049543853415387157785788833326117322743257822143254596239002356502649500355203427989135501933544015512746245531697317748404569563927208438300376733294601274451240605763247989643017691008428641714012150865676700268289531279383306135270149283586739741078114438455486176759449780432065935228012191924252168049836972588097123119237577343864996910661917894795195713722781943224031185743138544788762658428580062812416181231101013014762472201807975140172200528284136690161426666889869987869404165565392958429140934729384431989740826920957935355364524403865045939985944444726004987276225036034299806432108665246339402881360772820612026153402317853399304592058465795190148779223084666119536833306351371465084385304338734944642364811543747521245633719367688010353092929142006847462426884811228514317869671636545356409109180371531041682284400451620266836267760190975829478139838147319596466516424094029260638247454463607522510744818962949584436226377412309544377691561064075586417141405907676857588154710864426002346523633475671602723016306119637790248065302632983737396918799163657754181692800057413917093073552822897315584214652447360974109421568231899655416250033208010666682272584651504937306780552695377038207920801268155265236043373935245284857127425110464453094709234161465857807109131375313702020397790607432004277950123801278772983391637203506987478195816285646476300467786280398684575518320285388410505201223230815390726983163406287295263258778333025126259164839582092805013057410910881733043786938675818151111887930557412406451621075890577720579695802188881402386683148575321594171684927123799659241055208803488420845106066177952044600017978771115882261344400311298282824241019730156950432260060899872600626477421160929419443409284490316539033361176125372550623166593673715650146882206718469659172433267041525029150710036555540410605566099484381412584812320691477679642258394189712935681266795674477103103532704787165979458032297723172648980327103525691118834711453032820372711732882979852953649513723409091074570650601743971685501855827448642665166779450810048276928967881584141899183187243444660666950882473151298806774565957324339569326817795311654513235822680386349082491308099258988751254328242820016165316574865650981079822946801615816666192962982059724878965037581615785590988889219354168933221516666227246562245330594406391785360860305760937839000715759430836552061319170353699076917926518733235721570310935370385851395106826111906813683854974464199420924456580649235916108131822005236130424420867773947338608859047609272278405305789832162093734203033852603459949583635846303609821745830299879778892715668310400499529581698546090938366261433764082248038265291046705061297798287692876379453764212993022677964701262028587575927563950345215924460641541288240015999125226313587223494988541131130607088885299546364524134991114783054179103451354605501734224653444289845182431705273555268515056778023474052383840995529577477809605168739640684749539065964097114566847290455502074500122733743914351139865377058132766966104925854496172617874949359162843289631751377993916759488684035264956987977073578600818682117067626782612601346904164672753281631350678341662364749621226986174656100722407268263293262256762938442222029215876536918983142106620582763197007546035119558199959016696996551694325846807719315608515000152447589751558565144672647522211099931686787872448445291770558737000670311030492185925741266471537939400659557230297327402734974426395834649377978648061664656125148634767476419146441295928043576000611041596993594639030653824863123656693219948300523000837061605730975123778775634502682127054473141380247518435380248416042783829190923606778402346480346914475929258186031692353498957302550784400046750494920365395943545080325998800022199531569371668576647357545677082288327844627314942939771443335836224378466727532322587390102378324717582039122254486267737808311043498523371642307903124164941035396351340146177401135369703439546322426891713094946362300833639627398762267103832652231547006348870925254572966315868377629742518910546932038296680296882059959783050710379286357831744492561682095800032303120883133783213648178701044578908448369525584934992800730161989939636571570105882070535755682646127704030518692782779464672907532214189479864434550860836454748191065563940345400561939299696150870130409926485683518988602817712073637841530013561583632593739970843748113929544480233380372217355384983440458352731677525625955875402090657568815380834643620754127499191040474236191353070545298694446047863077363211398515121626775631403664072749854498001714214610905477259357644077935153674646496474113713011761496850248378809581857250511085209566095061504647041497775788129105923508382603743783564586988591874438650901414800774837681592883092252235815403351894792178880454333336635577779613939127140597540269316702913207314330015621069689939552111662198207426754817430328876102519909962281758825150518162536124616821153249900567096122347864718632200404551024074838823847148660079713502905735508626379122857851797999773560325942528067764599887001964002971797402262165412951144412888819614916034858024059689208973300373955132986778955022014229290962512366467398416435433181646794590864644245363981201491300376065935077901692855761899395964138917853653876380077099562872541386948312289935698129965125794971760218461648553760386195012099987898336357073411083567011017572418276889888627989778961415096864266281473702798229954888394177264586096180187743983999561163929246948498554046810812087678154322201638471517045159625269353830517429658703809834921666091066061772812835656640588041382208997751315381854652436967554961181935031769912116028365228172000521505004052157699311946480462162402710012804788203856707582924139477117572905748279409911044162507191648659186618740334387845817431354904946400381492947741891878581266426686263675624308000787875828995531488343032181338499132217034519394994244508782745729036669240447884581235224103284135252068156062452071565716507344579164710032724069711128629629575931904368810948661517185812702369975489742999252149796306008252698977703378920428311077804378565031524771957428279217525590581417944786963416711380392481717520597189585929357042603818564199561786944136909223785577739203631893483120798690447185392424372578855687226144464127506250752681775049528670325833096221971782566087342168453849544855021373446921074601175945902470937970536631092177794588865210866646311517985508167620610900272631757433089096391993463991650502525340451087874980076010736629907710717882834797281699062603614214407401655284173115817733396224854940465387366834954301020362341997543270342197677123233339123878513575399457718919112343102631303668496378734374505501056461210949340000681414700279837655418707816353332667711172226018986132604686279573897563136727079613362926071852339613168255136111791774034134475364961472880413098867688106494454781547974958849560092815862907584907969710449892846175825750940255334003064504387909853051860834808249356346287282525990424776527860630307411397030553149592092602082737614172219263126870735265701619332994965616277715015768064497635461201882541585373861725937856211228719016320431102030224754399465773507101800172129277235958817421421258859986514562551546327413773753916215390027275224247478869699135254436255375778781057003741779247930681145176854127245761393259865711740787619018380164609660130087106428694159930388667892155040196050255773108951662880793650208278057829535567613341104347301859350984209416125095080487340753449225797869467003386541084716213626747202914805608616423798155920988456151094793909488435569416036897241417462894815311108810367013671449658434741711548287670111375955245591041945585123732441596177219726265665953655951556499882876505590610934492501025016188514462467271116090936816090708224169816957198550029739989716133555494882354556321812729958261614794532184417402470062470715949869716566056247645329753156226638698787832360625229422735662166768536847658674967211898483211920890478798437646068216399787546429103660441301671137125900464858067597685490572153730769057360985165068206736047738038571014246734644562923730351947567099823249740864825176811367214476917238544271471623374530940646573150067634659051653129243536894035372381322107155824339301863938433976610423027392576988887841189379299790757814961856253726475104718451638791319693940507930071582054824510074729123975657818677519406036373724703045802295278950835665183363691634988223681070257459272962809138131410417595715019876749776015804813559085848980623421250215693010106723030564436218506320707264297595618869879288830963478358828488867744360665440955820367150702643354496194845276237691410493092372026687133529728099833382937985293980185365496173529087256110766872558418211890738479333185866234275118118118671634897006325802585199668612547266708810348910667186975400738880388873829507648913263456036277860050942979344628893860855037414443715897319721230485952417685119880819584355191158203531333078686382229665480499833073805646076558034217523563778444734592290179056837879039026769164809413433042822043198631776310815330307444082426984938532206101735361492428104786583971825501714673413789248777405710544084369966468595073859860492642406648592308755833996753110163751030939017164879597862795284981038517103718164271987435887180888998061425473211500193352247576077045398278706129390788889650705113293629445188884022390128022478879202035744589094160418164324425639579407850298392018897931914914206502923190991336594051802373507068585061699021863444130729528143952213752930365979018384388946383405948063341581339541763059475591312458657537630152325043681227534772412166775857976556713217732920626358131686895573252149864878582304743679558392415502138722618407063467912378545583575329940051020218192092513923273807999982104054163762985117130923147340725104181009741217903715292929785890453514924305329017367781834219678160223734712496973630841504448347443885621970193321416471240773653848748117364112266092049927589053901973226651417393792245368313287324382513284452719157876170482081794923075470135630886542250713266826197429360703833372436393076311141677492286343995673977995118785729009653230120604410472212830947095850615976358569255358251911351074941731304248483360241364160408984930035088967942496418248417415296133748950801604216946029155866706907806825556520627554471387418909931725481909970993062555620576436999322315839903084055504887188480698288590760063415604346353107139991544347688257715467991808139908142954421891477440164468064970634032266160081130990628321203860504531682950517261629712351701880094272815791846495503364970392630253850046609343311942524363217314333618848079602493078453894896674566430160400115673148020885549814206880400899138868603239023369326715979504218842739791347993062721181721315364723052755062854551676048820145914932661473858437673475356509751059886197200225862783492112224275398125574173410283497278845039973915594220200214188637523541261866143714412921970055527668391993512575047464722069253185419762445772497817203490041360952728900459277812858742155131323369924403477909020717975713688997497686418332486389221113838088936173871394871196766798211328416964915370059079547458778260274558927238549785329087358790944015353724663653360772706769238036121054051380265091428915062795203259193399832408364581865044227919044862335706952368576574086596118059462171181396968231914757291554525526007845817357534541076505505940319260222812747140679747771752652534682995058696402617568192779246701685100558690394766138027572965762947252850877354422542633160948431614608761942132295526426341522020164133737437660284805378285217358516451466879356180793956078755650382436950115708929108788078827790788128115155234407077469375102387788833608235471459525943166650822139797835227304734270638984796003802782372591205620592492546783145294585289798693918906947895875497807267863133115263909595160254234577003038228321832899029725270804666829862772310417833370990299414101422278667789088872223602613302067301360728634096935925805393727061623415393445519101285796112992114276011366208114909114939743772511747058630594877545439185761256866052352434782292010084239182057414187656031822979194953503204949327998165148841398008952465350942791998095684323437318063576023168763854991236806890421589205599971976654054384544597911306234799036419758896262111605764210358767010615351028566751605451790473387035019954653520813594530118309271122951539250406127407628293141320346387160262297410635377504480208584879354719033604432254688355278037561401047279702098451961035349434517877368555650896316522509662569796436389051694735651365772361525588350220738570911644650295601160671015524165273319656305156131272418733137684167551163050972659610881410684017485341059867105907953404004271860834308680390685684882604740727018531216080585151704496370953403131848329845231428262473537920177675426672212683563835130504943762966270289796841887711598328890337114489933395483784243649121622001711479020398654385520217506277388204564129761799801954114414791403584555117541441879280769060252902701262604947576425300866155456741047427148610649799976923577884853284863753330528388354670685683106387389374304288926533576325119631868855741682808196882901951332116181408431960131976013738423187849853418388987824895207607440272578914688911133176652504873783941438068229540267729874053303700088178651435209317733286798849477242774726390492035135832829822543671295190295421070392359576365950821652246903313311368290125893595337882922664690674765037813605877303659165287864941815183577358892735692083096301716053625212602105041219382168840231117475151748453052469171609915557680076343679566330131497552662177411180902143897951258276279297772414123766213407689282851666406578471919923681689305002264642703176039016726761006419199936909798100990929201030413758772384472850641141376048276890675058425248351653547830681851411260808505227722598072795099696547538404167159506779042013362082431782623476467191000261376189787672446863875065672532120904475366644262589902825870236859330651591139805160022932414061772979224682393063539099143149927423400862030735248378100491119164062458542237493132738728876330219255634321729330101858369104959649504799229084178601358556510549302551570042356004071218285175177180191131593635454207200512991122362852412567288453162331193231943787060660648385367158353454010628071683477113535473682226592738683673407980801155439158575439234508330565448245978338992110697568256691041865162654418909493732871276737593476719699492174729350955191934616318458228999843293481945764752745214615121964777490476880984010962024766679815367309864848132010588069976179338727195876505970637443837157780995303898228838171120032968020858311080967036018480275990812695151621862367188044892595972278225068792599253709331749028544892670365852167116393743691539926072490053741948000029610050049977584321471521109695668106122949792405651988517883631978598941499065989758056420157684631113438559253613587449302069253937712896888882025971263082547963338966402407705378968302690283095667745618667533928176566143610761466956136862637300619685375108933455442583926501939237128904378873481677667987503613381625630480292744283503571568934510132410818076603089621599108465766806567676164211333796014296856602783941015974892928369872831469589605417541784423254198317602117476547050162067240208865167509151552128137626437704077818782903915451263686107791967777537962489522595467605986425141340442435245182401866590168187945475206704649652981002002983077413098918285468354055370365700741817604667029640594935194985460449024024319209040403703427728470948307515573710057188256386689389554003077456909114204074583940876587706231413980270626255904930965294020822631958563031357131156052633416300998172743201890171684071717448174510876257151453947801456471571883092997996950117572285073324092775348673564846291629840162997508493253456264067873801178405939769942098785200043615996815907359708237314601928066299254302298856371790880029620146107228329710398639592159569502380021754597583383042507147651396722663543810617859984097080528849024551178383314313654760680038784783098639187102891841978869461444080395089712868396638216978833063799492086401563349287417686449072029126196340654461278676140172498754863455027554298404409499264296289575763573434762466630656331468386198513242851967350243941599435246429732276468110911478067249123573328622840121579068828602602451325924375186902438670562782430410398317173487511627219677080584485461000591309386669017070649730269251463561154441326265468220625379089257684060360384562468601638114819584088731166498415408735446195085989204948965333000544012978376585677486199180337456199725919089922008860082201774369140806654752142689819911677349994083129100115709738513628103480202484836608033447875442417804289815552792762215603099280031088647863114264489038085958657754620483441990389013488211216118387531004389445202972902114470527852598695504711438953213698975938892676388050186750877026497179912591395537565006036465774948685472657311261013573281554792336171617825090236440739380496497880989634937621247157591863685608777030641682158468814715964647221054720085539051214196439845584339688915323015471520769457086878732279881343015756929636849623488991501484000671414249661114855588927553096477612163358402070177595110363677738104483581817260122843586516352617401057346633098907051361908979995829068420584933242905505839635226922549650916566764045880215895367611998074602918202697685060158731414753049744428236265082492754581042737577156612208521052151186940493429410212136527971270530574046537708112826098932988707489248623805838350841552737104602944554481218791966360450254185016082902159389473971298713650802779774559049312265359276909278404296636695284702325435583554793826455604318417539335143140180960003823618706056530590363813212298960993452413294293421950041481231737597403453036001555512205846180427082301657401236889547796236474172942142679881427841477913573058245001634143976144498157752379802548426231480416444768426486671903766295038197718780958935768385399416811600554777996344512138899701652441470341705244984080399350089402485903140595664768150568454500518236506930736674446939830819773932670996103024969059188196218760884026673928753106283523754394227146458688223254835573663131115461868668632201120398566607763252482827161162972417732799456397345532968107905599230162216108089534720635621114537209078887019228734716402532051917021430570431781541411027059164228699419913188681438867587363956046568641655856082033187892929088981040791658466403042346853904291759057202059344240848678189828389797441740856126445430420197354031783698497131109567248397727503111842660210818414513084045926432784643744230722671354882775957299392444529511455985195379500525757825342745333905630012687143440749891453353972301036442003829837188048636653692063894939877432392042065777304098002304818346841397342328609093514482077351614201759037086135333951239195475691928662929649547293437147451846113968482310855414500663093047193956235790631371425959157882574865902154885640239382541012725040097034234634201316222392266527619397123324516037378347754874688833339582402552159247206431510162479794059757601153777268973608497958941638416443129870241729181523232266651658182093797428477154622211427427308071599815075323589991648626432168295668357614757479051280702747651338203312915993497397839841217919585223133864503307667314036863367053647523843691224940811876129465066981006549534278710628717308018602280923676834804655265585488474505328165569054981514834814739309909891924444541352514484550341828767119038286086042292344550419965122355917405960517854452108888878444517048772697465831141542425329624871013186806015349460705620960212075102461221734408550184156111948457724432856301466010531712538186677936923043369355131889014515907075292318898301760614418857634461494067616961187181882173935209447502719932747199895896555964015833117713147555556739350653595855746393122619601617051477535970934496400998013107125518098137215735341655087619975646835660522712071999291985348397548458889564687103020578276654914279978855865726137583647658580329619972550865819754161309523777348308409754203527860329960670854910350518668579297101457464995391419495427651100602559506443819826596849150130360812786986153873593947298273277997593736346741656318035401025108521991860081641356243750933471980079827795797899186719320850670218542854096954794739665329603174717050053184086864048478564618474253799681386178209975825091705227181941183043825798570544999931974891324011388012757179430411327483768462469700105366362655871178794499540123551074651840473766018843622801712153352758472913264955263747764985111663418515558621890844346927780622260968046266509658031592750860732134707036264975948656380681571195422274669394729012868864993644057069676142625335563638563017227941396751241763474381320966845173888297603581116499239484630485449815907386821200111163040375341652014206594298899098832363435801681191837886380064016726626244537660155785796161233233360844611657897992911902852554569405501581063232661418555814876426314628799155720282643199967578173185330326231627191680360103778726325737684543109413546357531526106137435115587261357883343077177104074615640151631672330517235146651413437544788527921685738450637289877013186240110947978162200816849736278818657945252186653992270629559481227567515317243258782423716684622289365315202197159299483354849520384815733913562330522913197816957983879884664035576653703403150181110305493821839781988301929788900117733593717152141471860606514671110607499282559612707263072175618564817921962179080200636098935216912395007039127799436427124379573596010817716836442814514184012973694925672366101229219777281212919870174845057208562756577445199828103498704748903232854434247375548830752251587005218015175337464654027595653898504816537896636899987819531705929042114828951390394728824718088983163006599032260906101444983173536324806508399590549780084434644125566138298364133453940974815730883918479389595588376443797894153901886045033010539345709208686799203376546093132854111999205752560034705332665383859062775925552223419962760590434474511709378242263550235464848603085336432912428884043594609024332789904921804365514330869393776268545929237908917141272854727172289944040477077132421911967123870535374006260813137045686678471741339191593376447745830167500978665097779237483056982825137981166964513932937534297054210200850774956079831173831393690375386482487978066562971457695024387514654030581320365855305839893888997685833581407045572309588634645025944198479406865904575065994330210004489583612504509882757979932773147464481394996058787922629938633641431132325755420395461678323628048819079864576388888863237280244019885132445607936076190968427316770798995909672017792444662746895097646634460076005092026622470347020863491057692727136055604457533996362407404709484839780784204997840612946394091877003084749203692183881365863981921759239958050141933699180266641952303333881550777850036756564467471578957328624087643198941620099141774461023652735868718234384273574384527522203245481664809174690838392612951533594451203928202647049821753782039241413187269055626726771033902380375465342542797743061177724104899007293965527451677682001519123171503039938651129567746742903873207311915829740236130789606432015133075898794099369968149189706250827708269031819565799020077345038624246531946406673544308443599045568740194515844453250959603011945174048194815337322207346932571175724473748684586389872414788445091587162574874769736511426961720027405886727588262884493935424528396902436489717843019755372497683773524205748105040083778818921053358581066479628921988872474172954191421502749285501384622688964491124399207401346217009196393113923539093183068685374753479863819207295928884386713863180845118674170598532083171725928263408859199276295287281349839020377916579128986586358977842924351110070596648765711660059088156348913831965131282152030536333077928735911412454878820738325447825983551983249473066751212119471521485878885059634777512189453375114999160148612031197063601716510547613289728356508991618371222286401746295920589572749213064202334132797408747443841177972099945816372662113328272075569267470491531981925599988126353201700071008315531549111809580089866705019200964439327208736870949615718718308725408491556620366499969537020197411403713833314883468050497104952306034941151779508319543691823077230027463355011311911296105508486961412572781373741731512827379500871275714226577343661755106343183961252297299283767910774267339953943388248718169546517607863175621144926456030698889610278617024503735840712837879602777679635673155761183970107629967382134042638461361277672009167219406951535796851646618681128491600129134943281958246186430640156801878772184093028528601963300089152988714994058968395574714276428854820229773210831181560472518863353874883356408756356189803843591401146545866851851477664126835340919157506201040634995222189605354697647304476869594018108854597706281933000010220352553076744179112464364889375373364076872299540948492609159860108474578536790388547752706624635457958349024190622349164956587903087792849283315789691816806804441447930404711426587795449058500854482794930075104334339747935427042781792585836976804650602020325417101532304301241150219110222288003674016772276674474653393299033336569423495096812343764913408398769514282693919907955818276609469195647352407465937525324139759189037406645077965639000174420877839322544773952545426431343463117197625148738647680044618087738033418754021657564566446115830608795988694013501091950066722544532469134220500399282930661279729651295902328218607789530199278522626029838169268797927896094145504152140151243114006028549550612631865374808424132231323281800653484388532536737877354287234798393577951584134405785011496209907958575296444474203567919050776726476437623008704555070994152066301689488668774306955998395430687104305007578812315445534869897954921039643537540608600695947122167617300666788436041308281307683213306087348157728810091380097560892191872105874031020513507063602527250013280269378399159688301622077561990739583005967743287020133879722081739031467982217016778031015012494609520364899502929445278446015625159996501650464451449456595287724055378487834571768117066598003479343065754575867400172679886440705318699510210752018390754961696696485421900300802716939935754843999246015672698525548211340860919453910216868609496826966528378361569047037834151237698155889836095257159491253678145854805710695054111194557698459335384830009322069214584313318236423528642652887181577439798097881182968372147442553634121685670584498297976621736390565650460275762365459382897795844956828427760350574087282323774524726004177153331376029001397717715998978511355980299193799387295449576612323859476661301793762426833685431492795433659467622979756131516600454971725127716522173277790093344588450811336911863381120440206064833164396780729842301870372135695298843394590853715876038540806157302808773415712292813443046725278029278331812438430861776476043314450644163202587327846489446038490929600916842992117643290149078865658986756986819535986952737125871236651787491158282578018995881248522213144751244883706859547263620478106106991705705768735468243187022931965544644797193482945528033269603143876626327325206050508929292959737326267093701130152699397572969034646450523343557055468780666853057227431465754936304573114091334109759469113201688413369703720607185800460654592747758087069958409763996841602812202098736287771487400115802458643226317323825649139854871411705559216661460382309339401626538929715169408004541213916144894276722470815091708932421818274558321498995422977879483046112096674205390883065883641520367480576440138537915885721517671959707491882142388012792952825195141025531190633048812868237389324956101761799780181479617961273527604930431731944298210797181806146896604735299174449171449187435837768569457857488992243409727168151200480103709751447940852495624480816600057077079375049903011540774546077198202412717980536111672067655094519322797004693685360344486254948843942888682538867410986009143897964971626210657454076831659570667152567472392707073799795094041531486646184978315549587233513911962736941100798244043846058331363016826640954745594670466740213334031512123207562904580450173828171556908489705110833517422998209823744454059070880450526223316902941227796924167548529727712478989457946868087713902799310558995979608082120858974754242782743198265251634859113657506150323771077168434701673858434810968530433442111270978746818830433927738457559490547402504438563492238855340370346927337943990946672153796753507732393057532810798150458834570499476951831444132639389426425776706768285169976624380347113024563568029744745207196428575314277654055004163000289514785228991839634040474805462587269388559236491462567477931534317341010857190762318456504848241353054160898231527209480280885552044660322816794832801893728400007823396314395771737723788409190764511496701276471202423611982219780405491675458776153396084081713055241115019369787374352202858319841650291277259164360938562041243087474465676790377221025002963966974394467214731976287601398252443488067040202401934788424933925705171022313315324514537706854408617347219798527998660906873920436098056213880324771593873585126101155656164553485759012414298543464581984553025795143133269600577376877478227637561617893239187413813136593927062935508460937262356517584401717062259746144946101541467975981469836236223399111665234280111157097581972033661081132585278624222687668095717150100791059352188345165197261891496847073806436013490860979112141491918695933109720844279158224412780339896735671053088510296521990916155890713843067972170748063677265737616350781080623349483950047540366398913024208648625563013677696179183128466090667222636637074704617258394586715634854140947582272444846444348382545057463846911794944789521531856458410621403001489459042389837469205324559673014329344556721271053452873877484689357953282942483603649851661274261522133351240426325934937547820202295205312530564774827175427478181927964168753018757456267314947068359931457490883575020441413163363460367597779915616487168086306212984226054657624072131799868920671716137162463436019405027409113872630351330354643249055079351015691985695218688422465075154892252708642525610823071099550337223565834637756765317681252962114311300209877436167232553958336959800236049142515827476250878855075722396565143028190894652455217114497341966900193016575644565598879849579294651835133679101586097888753335977412309749425820828122246377536805043653560897520434151571243701992563756618898080190670644118181558109540474560603777390047737683478498245343414157005554530666601044242498148402509047030287634535887215152785632853679677593818178575166478247072589401485115171089447836638773313861812220864851526808985250198540947713663302163432378381827813159895780347961178228080500923525099307985167890693786584270249085448293450718062589731002172881691356207635539367206361568048979941248472316856217643853876252028842370560793303619729445434201762989816766235003476631739387142684296058626387844224997147752750134162675199628500044498139251576804421252207673964765815553439621557807038750356660561882440082576745804651498727853881117046721228214606050248886548264126716834935266094706419358615304437117939822708126239801223076546355080921296456418085078798799164549864314028603497945207078607288256863100988441032638092010239775651266503281046154916768499951115744413061595516143711762032915521341120116792157917893900472726024628103047551908242043641762739559829062666500205845624753642917015256292452304871539708768364051977199173995442886734540981732888579741362670429442547929110128580417747467055641286349191048891283954932513896325201833497545416251698346947249059148577678087755210956454292941512118744478324495093947059394235072907429978815639945780702745145914242181057641735620398523303495349889273154847494711349263813699824251986535537175216236942748690799009843666824002513118950468245294730674808623303388009859618737923426850144783703281608145248018143049946531831022100500382098551389552972752937395712686980899262244119162022205676054162117459435437855066269096130046968416586128484823947541038801698789069412880373940220905867490526072485116743900298869739403254400227843828012075462398677589409762594634201589771831104328954115027782255417635414903829368909556650537180816585761396381961436498623640696023784531232184360229611117222542093056140570333838742623999974245537671136902062619648148451449787174068491370891027748987844189207942734193677177153318845498887777997079421479505464467649641666803976320308355961116909698763586086842697743323494320247943185776911292300668105763504676599674740777039548164948730672126866483798300203534363599633275897818053292096056204631982776563912092025776648354108108266326471061339591696846165574016454458073145618443300678494904031099638648530551590835972474616732285427190572333045361040412722173803276533915926408999061674845118311408234519178265225235996700969993831656446751640542877279274774001860581973915972934279477720713640754384082779491205361681783487528952378566223002877726364173498945887494791216593915566745284340486553897310465086926352304427718584273581161430805982790782753618201307000190759210014355713178236978035274693300483819572250471869568516025387208829793289084894985353002936620973975689860717997972386926292033198802325761978860649413276774877566913616112962593179402337363454881308550447732969532384207373735855608059363179669064671764435942774392071509881581782151613037640495801307438098428158443887890088334826278697035422564230545039028374918216503570722813768149613913475544148396222228140347511615324909265966300049318568033970890854591249282343348078042441054472789407539065094915556519299665935130414337183543038496318717620345916086593650189726859236450277632510139161620669772789365843155486481895776788774967415078747363569711829536379994111865114214488422692551456916148445691107521157406595938399180207530917543797787116827289426367971044522056005864892500066229673598125345999860551734757652264265743381267819108517984387095156664796082022084712077238970755896661508811964078851699499628140085283269403566747075734790263120864598474948789907595750674294820435885176051234713564132891283622036611854833058721894989899544937348135199207687028177609557544531052447194623766034974102241121729187119714537540270805117664552573557943789912362828007419939508750097108930563058923346944413254676864555155000980177933479869690884288900315607395165638928447538687476682723614734206848712605361561250681540953995949938111731498199243521889284805199602292361362554626123295302116617258958392334061859982748043541334977629560950803752903880844455451767693770510253197574893253378538093191090317580620436315672079413582009104113882902892293550835840330343820909433263989014343094679994605410271157758425182189783753131671900051388568463371654757062070675872803069461173739901828738729871892937684653012260606503154177002632168372134257254358580743059833303891507447139158197972355312085651104609543628802841561517532257590845752564936091942577663428767430247849694321913266658589919277195575188019307083114196037354393526832373511358695808534315129209649505351508492963200801967690014449616627633203048047814025034323969735201138660594404417867197367072570150243019411842192538699060437293387611905846208563974466546127765550107605920211729006546833690852656453706191597011776172723397536464704234343358455195183163285942092247168276544163205674477212199809599115890073264653478989423852149202685069375785744358608308757627910632670988635222067415521279098439327495064365696866417978710181512946291624012176421643698923935193913501002948739612404481903023710168223058769689075955845783884900561831979651574031604321410024583771319765379352418131418495181476512672449470911664468167526253023829636589610538337950586595615270117995699575195167441435142275580479872892049376996138479197618459871645651690372905778163980106533701274027336533769649239871531915196256710181998087503322640011060342204930380760599338128388810922846362529872988355704233784798123882931586859798851055973222015937094850916700298061264781661945633466726274966451876202657318377240616738549057066708506844270105100928069267585006499918087154533244620066462091123588465391123058086706534091312394494296333100346012603163517307200281319821422753221636979830666135490491246571994544288654866152992740518155693674263248967839561697454152868868768409733794870884276935811396749023815895395783078050042013994109401612134748722430107930195397320288050940609467366269590571138940681989905640841185966896208068001770361911088556025987446392908089019667510001413197021675704168701909111637509414996701747697040249954321197344888935049711866373199027387570717808385768554663397914301078960420614725843881082576171767654928615954167689559324461984863720697886142187440590047832349742598062767879575043171023665623735933673746366450072377683532167608549965066113506603533526731752064529316163118454921205234226145703293953304271081723223401623136153120625453947102713572361350463449759320935490168553050294811673242201528937199165443933074559190311239689669095736118446706597823799707101971273513347538703698762154044226816598829951085773786836403021520079540426930106865784572108754743527392786184360594981096278543283970448224366568578423675115061885311347311894658860607319110312453863859493145691003681957011303897799568014116588620680312567663091915325255303578967771541992702874381563446850631730280217881886236663691390354895768980521699737713130373927295046647447392481842883424958961256553711122177577121646930633546050936687283983404102256021484823978314776418574195449912743826559117581217425664793090677792565293727529092232683032308261224003859468013065098282743749530208033619285796942878642221379369669640317461428002540530130908869141231020771584614886257330341155132548935317216027198287360387144854077000176514226397021525198502226877256727415521693230959486226002670119029759371864644901480321323788292586348338690719660602557373347097421439816439651291214789907191378378353811564646564581303386597385347355967839549453113672442436979960355181943775670759228647459104829351755155272551227451399403354752034146925775570670860011789528254815200405659850507611986999463649669430891913513504718327046144352171083366698234354376779878840967175236602315957862256975418631781620112059420476828749591113354419590084474791429453478099229276280778182809807314948432433515918024825137542453181649181579884515078070704467346273943220279935208188007188575810380405578910346540468768371087761007171416246857167052431860038709495204120313042230845816453490872532847122960950571050134169502736777451976775015266989644678070479710668686382882340043873979982676740499863060662345012750516356577098870759582859736735418996849120090584258846896920498774042030363603023800256459068469792926504361871964091099062996983451289385681311561753301461366654238602478125185648557233638416900422893242868342154939099974649560533302347275919640862753943928689265535713600338224109057319685136767602288870255198980606527384613747875595311562246185395553471849414952790064550347511929302523665426562796424998057475251769447283929634016039355394712714474311510672297328010787823990204103425569740379784690282985438701167849096672462902529602903383340428362071546230084816491043122502700921419701879458583928619167790655825200502335843177300143128400009162063058744926956649165832396756556378049306348658399861448549633165388451618781836971403267906310328364686951369707157956541366188641607676114875784069266062856664709272304320929324110048906288989838544326773458259133007698746034768186965822578406958395074770299803321378603518395932707370300718066129815693571972956067575275099521594934093707457255757722304000091329007576246720924317150293167126794454962836065861914404351279929447309328208056917327832459035917564193042620063951564604386754187888828890633033930881049971622034920450155051517155046377624101248113935900549911460989880160153775456796324028730387837962248197674844950266566742288286087044868718245767870093246956413463647358678862301599425956862385954242277321404663641642761310973585174684250190225951682912000511530445236636110450732907862692509744674775808728419499201075240525834723082634216347184239736389660027829924754634445160987332516009921543030413394472685058730744360357994366938692807137301600788146211008060179541493718727162498197211105119679659751716981636162999316548834671766940924326224827784283056767800696056645581216703785975193903894485463306443438472091375010268572941546380082425184835591241816919041759061350320999756155496418246540160282535249447143013591484119252902118789003909547846022358104975328018481804270563238168086246233223949707155583005421131923909032990282387759599996497308638482907212729295601353958118186589758628720230892242574823702066079377148183357441676105366230953207688636478215385478199323025981842413100688324127943314799180479430109159293520665872537267892995874294851594270153275801035992560474027056266890063859262950890371987345222894126420332149068754988904728240931615229604079510264665020740632042559555525167808529403668700239582184244107591901493227661796713536807078338399775720692577030287093335371165368976889293367086508560947846416769454492997265962161557289289300629437532540133106313570508286156366140954205969824709125089814752015779756115058166092404491484003381413485493435304746059146742146530639348178608474064564677410307390366998787440863647307136610699230932015911877054252329248799077135153191196286492781486715367024511699488716004237825880385332031172496073187521365276268168183931138530069622228401469018229195858176470822878332870812655669021606084446347823098473642135027565106411307125787493834302518297684129530126200911141124586067780834102700496035733087938065403492416394643667002369906354021118320654541993966160387433955625188531635071555013562330874160021612679706960336368224683624250283677669447054559629254119916043769115489395889774717798581412664504177871310487905631839643249908980538090640462213285009306879992872512217640699406859749144763857096739702614630231157613270970045932871239373903693355214468066682388208076789712134254539326898481680817544825159636294072187539200092769017085737498470821827002095062033097199760393644078424731149615808825124855704594566077817647452244169487543432987853855050301374706015178052239510977098956902886094328468920790867233378008732299725053085230069547830183924685718451668745343252402473015682547213446154396199657978485776934871221040337001051105151072976549674132808527158792244486237083994038539557000918832669611649176566143887045758643990551401523454611698616413692573908276954006729919293522822970660007185894985133034763381418231340662902437414637798238736548279004426286202592035935495584579071144637794346948437138843571563849845068729177772387972277551467783819175733756896703358812085997338873668941908488111547742642254524913434515200001746809460544025604736581345414986409391923157708124459314477196788650308698809568731728344491616973068744236886437752763400780450840568932132039626304236148196757426939387288271047115355450291069793865807750507471476348944610442756092345237917725635233988876682053860703458473101909772673727617731398684777207288178373261167521946742782445525015339058623954202663730153428927281213260733246517909605903195769690612827567406133505016319047208574675650993040210504399728229394680627365193483412127366961314277794772221594153124294290578474046985656782566426188437637864100689261572761874425719223892593742721156923377796600665324689472674198363624811401216852389629064677539108444896330352901720687517371733881287930039964975288484451246640254088070461733762045514509184842298384676947846397604343814558202034753703383217289381325765645219817817751586377971535168655310339087169214674519028440185429514948279171755516497176149891908201016930477268007512387596607592002587670043441533577248322139044660086707918991367540644983855173410624699127894221794837216424348136607473482422746126668155754364114521699463165839571247161368883443738942654758372305025390184053912759201297695051922161368191471399508314999844350262165083328857653573116640364590396529361492664402868430231714733251068270982056689155788856662779393596843623712477671636728294362839929864868553599396305815990035633916523475177280408115366045644109532679675533899217771351815853973755289898296807283646579573542278769359769843912702105859661651098205527540707495742605637487321304707600073251475910816222507343327681805735940237754564602679492885021601426610175770013991388473741376049934611089070905257720247361499466641393048443464214867409796039247715037331930436479793731541017297126073457984120665214749788966450495999471582846165597660337556112533101845987459104042917829791474642648875474214297021910685464784403998877778397787617747842034467332268698481300432520035183287980702049903277638560548152477275854401668037286679417558494431448987220293183765515777591460774683616466839745433402592256748893313951949844187488816027167886941117141612994990382435666630805210986511596907920652586578604046698048869738805117329497342876817680152583217814878638998533946689386964866870717562677224998848757714103543955649598386118702566195324694349684098455097794080325228114981632241379275822000004083597742002488936433942487417770833871172684485599519115322207532054323448203881346831951550272154155009363562262870831129459468796099548319592723571098254449124958199094124356572145990062332965269389990913547287014565525089955289591291086852143961017265981175144496028069249441197782348052241279216329150422412462238340643530283216719041319229059647126664326842601210203211691933180289899548318796026189518498612453457578012243460945523792611048118544469371151268752997859947893829586230608743255057204618547302749239792587411250819888863981795903966505713167942523516692644924768964065602637697279617773779225128809046022462043628688953069185364783950655050906582583618425783304446530005836271211479255359821619760020068937998319724648581443390071213663536504050536428633556381076646997887320655892802629011312890383769104115283142397625322752352651072332828337787221460390600748538267093307192172283066056342219225244833952927350514525980452979626571022842851609946012208244644903871457309073315028238219906990828162986639242245271226843167390883910705655788835258831427693432097146422495830987392577706375915769727460108302604224404503784550669437776357757539802094569935550715494158460784286357209402149544816523856086607182422475364235588517834262218928887901690872930714366985875456498926179085645682157216329490376126481998045684406000175352259579722392569709059461854834642185760465490430464937440771479295271529034559450395561791023560037736150382628354181440941379502009199322614122883688214557020515609780583359203619049641258269824829369183364556739578724712026702199519942367197843403846077973942430114360174377098986031691958972987787759871191144975985855008620717224504822964685767280166770768699564815605989309306492608582726339770999062263695630978477747902611897903433710694398851818094443847840585351850217392705215403913082363812634239921474598674786604178357217087129202430342175237832911782287555617163650063141313675370709762591630190669368552607280350642590163766897824418165604446477672745837127408010577273596323151299156189563201579743662104273136940367344327831577264130434122372293028628121860866861477169180748354211590078338538301488773557272675412448040624344339604807778380103077036671689049458193152555763495372096378187279775184537942074461310993461808417711515719979171761119340429495658309141274480242427802149283564108855101697493609114768841940372758270586551507444533384592175534256510425971412842490027288615205799840723415618559133279948266114578595536632240116240558465444990835319508980285905138410274397834488040594396141595909388994214701604817059628600053826962402049332162386677005848761985248091806037993543728748300694956650765004863488283362458752682693093423080572659012453964960905803875808579788600478889728287478633927427776958502528615889897661122802776978843863125288129443845558041705519296872850559635957560851864105105468204328178813513302499082584299770064288714557450971335702198037459195251062316093868965848263912306068560636362365870772024215901472018741599038227940468202353161795109546592864797914882636279938965023394606170587926038908731436912086656178790566986299156239758145244372246892889327039236727792290929082703798153701541752789419727296949054697879943164917485318944281748346801298308062565751760246454234194779593909683411893567255737519088339986939544148877149206795887617520370227968734672045953976706652394349716706393077036566979219899779726698956353688093073048134643958859788232533726429164355171992895499483112898431083526311223442519431415411230077169091513738907705928570486304851575720055204670283281705889832611490152992668679524698345643625801889752495836469364296147049531499699899583105096217326093047741359883038539536929696843146858101220236220443478707944560197005695360314171462662379072102130489335481853469551414905346649970426022490102761167018550915875043584747503436677677279437091704677939551933811144684103990125583280028221738674592428959024548522547746861801161157407935754866570121087436410183649577680143659832209550122636751041738570225349732786516307587453155636056532423507398520139393141804707653660467760986678608270993932672917245097641346527304698867320182514488867432198749803514420621112077448933196443733757337300685251371842331718472687268136716309048739222583770852803531347004629816008369880318458285915355727292546322359653028375382609194043844463904139341665103492232426807084016126703614619492784888139046272160117307583831052494672317865945868912783114306333558004847590276575787792850973269084179419077897426438521319888652898166010767698703498364985036371500609986832633845807634516048889587412948122569743060825112025360964938148624224454149881692562211012565580137933270413798393021292216158459337807746894236531345806364134570588748132389813845743526135651193059951092609364401644421862227060763030550149004636450164097744881216513494175228156954193082853920040900598867537730911157912157902287388567462473423875658828718087498977836774848517707191570193161335574687790881185991349808435565091774701223440162617058177576871260443405236580542905502955436001047504306198985247364430028791659521667769264099726198694485477104430098821476353262325537031256833341641900480615394180923271824918490926332984983551298774099285961889008182981300996839773951231999805591970054006466882692506208753334018014073725802879215676385975213058524690270999923036628781226827844040036649440884549200767169189618350745070737620560902204953877925001794081352806163691692084933697225104767019189902379880794884501774164209126583231203727734770243256578746893932447055301321602716592263333063495182570656785796209382912324607634185491798205066626982578125181268683726326125485790828075418324470316157954822199189590495313522503258967959797082842586726791304772742341929121225153068348919524417563189398647273227978335964633460806128260763813411865708796839498530400030013979852839387225379620630647103902982191476688275957296333163942620870330783904745264543489878356843676870615388986316685059483991996855755401670012473599981962865614040220009630174384777192766555702817626676392732384600139906644996642228743874323254966218647478992650359855053830849292543309498785728937149199336289237057540805178059651027953025992077914697400146519750790498579650750868377855499424995601249875880739879029545355737897011551983268242489061335513017005192487290495548023709971260387716313317443049116077159501891853632240077676726116414043783174397245609817552732824916463153441153850369112730716248238456960045682377945340823159029771897932135781249718967764707915118507065535218081284776518580254768582891442800960902924909614736012405790153532006020779994528921465585142008655395775509797646097043988970752111428524876616958935381599870907794320454526106103678533785835925575493293379203025619242969314301318388019488516163647996209586005492385959332517907604877616822948120057015645927156646688156914515086852246815562196032541737687488410296642830006577435825970644104649585252848486003247477599381993999789062354611995200185003719017154961035661602357538218526835134488839720241136266601213994152592181296497511255538784159783918090105659115776346647400391328491239657085683370808289536291385365628486235753373818117795527352455189486925406394973896690727840216872241264536815239479283057175294336335669496701781275730341089509233525283645419224193867388590051938210792176740961695269484696083460082308308500157422408939291383362497080819287841065042825583819398890571386995361996990461997450018369008737003721344021036268712077082016407572712996549038120786723499126419930769768566765639032602189049515247980379468394952079251409302923894479069340169643918496007873102143555495423968551775134137462478535724886813970969946856043586131275294216191031006185475391807956041339870697864693774447017404767480745605101553783612891358425216846560690561247718405881672585018770424530672232716502074074406379294792448607703562042912695706355545685907295157655919382146357511746294496055295465324799066531343552480869414289707112165625097610333895160801735975972554152728615291741659186775597787620367851289583390328557539440284756424568860867711415479528697730983576683141649636703270389899748749271270243308660082931398484859895315535278519860916426932349192956294847903024916285107210442388689822536883097771885650834242239569995281932434287557200525173558643843914623247976120223718375811596518420688380831031865911507318524179306808105070633343824817146070869994037093919165004507796624635650131487053614355645990134791863312544756408475296178374078120842210812699216093832212294432610407853209985999409147761800211907209882145437981089281229525781925382117028188637469366031361142786165463405486370952672710983129652374317333691272838567619168055818882955648204926355449097177798978890076039214184752642825222917948677153815991974566176543875810063688337069784572212394615361563551689521721015370163416198032303296003325362663447600886330791083823151710642361315660658114769504876200412468564579273992774202706724690629192119281080332750429752572874800207789723756322534834306436424225787625935651264373355592098789809467841580566434809457854910136832309150309534207980446856924000842676825781902246030658828200886409120179561105280519661899815156234724334886970546940869092557228691206036312928917394339910321495553738469391318456386995701249593786057100672492875234063836636515950451535822839633105607848009329154039898185365533163975006880064600367484947158730938970576994065197569784720834727722702340544065901329425260119942623882126026191775318319019713649563640584067305013575115422649038068020363599395289655416111576498818562873318018168193304425000990776780089500192344898097608314553348061167920209966430262102135238958627541361924720977791112756041732536546846878491176175309121752081909925610764719524227151844557236359651640949783661106099716837912935402434771130914347227106932051074405178107200786145026832877491784440218027722551212012110551631779004067586428872613412580855010453988464041801281594560403503255266181277248822393215479993902591573371069729346736149320835083730936577436079329775746482141034562849710890308272304364321685795967958442626669277001473082713878437806883251953179236277585670886297322251920123362485670628592155640516311973613997757462566666592072875353563533056972023566723576140479752369242953519573983409551117364147938631191887496455230209528172502750361826920723618087367830025174487039502222524540749130529889694851710365426158869390244733896127669810918944340739757577524169097395249221960097856454369746253737240312331279894307448210892366900014427669791331242724247354104092609363435063017937750788660916270227734724705077250790291176198429479202568211107241066561150560259069536897439591927607144677729273273735765457994289977445517738402216727925830199945748430555801823003267754831101866904292736829849492340437605241800071941155746038136921559813175056096511391702525023274218126525716275357076684281542248206719302818297849138251404786064009433068452803939298232965893882287987859616811055248578488343705438467444863894987431573633295356315130758649835975118024182003760036344424191384312152742746813359813570273234557302741025752690519710472612163399669206369431826096042997438579927643767750509254151508592381760471927913223701931621435966854783244827223441402441023198648545900720902906671924316721637976164987365282959733640573661653243074033177064034989137850080204506550350632035029703267156251451257243575308776245575923378334781167236263372757141421787106734728932009512881531388506733906167000895279469959921874434145618539812065801597355062852927825815794311443731146441160522577461633546416567622590033638820002872857223723844259723578666106170878163175540732164860736824805216913756985019573486713887452755632528599186391145209611837368921082134720198730257757941139109117000222728022956601136406105980678237484189966609499512922101591514447967964699991919960361480597336110628461715615216480240887808904385423633932039792189370746892576317566992282818201543697242573526365688198147200913534746674278119689716254049478819395333264647511481860704259791608773026723618323908870960440601184618463298820386770313357786569061198302039305123469461644288958903842310212391728850280009415627469577749335303930226421348298540373221442570709406698234859764931061292098680595763122716287778107367366419921522374434404969497085676747483159694330369002554248192364842514112096849571574251468417897670446193505946891048336823726397321820481773284388751055150683702196290726213351355920551692475808909531384320059074681115223063053707927659985405637007036783182967987632562280093560940622114051311060603401099901426799301109378866248786611781548802575257172701027897479066750316135628833841810921970734724302060373537818084926989911397698637833556169516738671343742014463101297110180513400814796201839187666852211065900336006539581141455542966996522063085663057860051256861786042748886580481152865798437449051289538713381774423727640653229604030503687354906344702880750714161244354707568087686718883077148965939984055410563139650479483153152763470952216485327904508962521699808456103031403299741741751705218649986109317704089732755675630829567446466821299766127155481660580359521052344506614368104358202196305821832246904257800317417547858197691470273440930761700627850202813486231878892799027802255777991411343022930440992230276772458520524883816636618231698506698871633325413916824420879457525071249831161452737565159513035110608361766523735248203087533312403138051106871751636555821630330624930670039781169788179524629469533641736915408919734797027280923028208058255220081800384689018351799186232108938088353517475869955019493300754601188151480773471682321955411122313565329267758871553495062457060807362469125269712909296490012386925980362823033068123229719193779642317715049341409400694975627717011851072003820490235793893064482977879505656251909171114421833442390604687993724600163990251553352363761931196303491422108199289697274332530599590061235111758604920446986954980502607501029988991875836051839062771050688103425132289360896912398060593772525206961196684487389627474594888506654637643821803323704449227233377182284155227027163041975853052233886915865484954489164475856443431169587305907946049649777703165798463423654162075759787324736210229019459248984474280156176911834341949749335676457398917993743890531253103555058714326619098268426283395174204213955279436170735853267450385450613703231844433131158878973367872024187857042715798183673737296686542561407287642588461205726566975672093792619490157403398417098568974894235649757648405838247476562006535225726842875746176717860245287613179180618511940808122449612987975374037879458456615281828116446550533094235032716762803939223983899883631707538044584797294018980469557387234743058628355452803744967590777363916273071320850501700754955422213214973588108039860461774289610568682705395850187504656398924153360253648208244654443227601045929274973424333096331508849642088921655391945179775470406968541216174755066570339095804037550292195913517561240625239189751561884270930386053016886971557738986251102191002882272325430856908880489331595864521320408801506085932035216504472285323749147949557342552766648215639142928312821287837853402224613069001403578411356483338044373579181395595266743282495345932190582126913593209076321184707619831673090865026865451887366631146092531361804778335242552564974066782310012909050478985035374764926863750472971740565890097852929711094319272136546240468931392011431864602075600247639189721295368757748136366156220491041057915817172225989144388264835490832512670306469560389745261073524364209110268720500768901351941211967225586116296398792531280786619542758628020030373048828954051037828538370191629673514233205972304051421081414264283079348032481920150328352735704355961792236741239063635020207472759273856100010527516443298698799729804428327657071588152634302702577359567610826862810522394171462817623946944908252500591043472812341580686620672184720287245754508805547005498987861602421815539952680274878474695124538153075264486465370097646096971583377873627437866464224474181788302735079770362790810654926591964546088110667600526554672276584227543943508601311636087381290380621416353304349383804413611908500611696466686450794996663376704126182331966691313663924341741378065220634087461564398884026347293418085696703060703782668981781566210737312314448361840106020414434239225216183270435668154051055073687344700582922748549555467417640830088826641663685464654766265787930822106192357096338895799291182046726287951691011359426201492825775850968559911732486250168769739265813928241909765048319999140161253899951956392362869915346567961000341620742999343440378634860786046427678513886886617684702019422918337766155554228330806667791442500133988577543996828602461565669241346051167983244223706582558647087299915406681354931099015363477227800636669675574023915243057918094373069548315850932881817895911412931799948234061137148913341797646043891203857776916178293622396482487441594609718949912736078921288676894200320320393166327985926515291732391634598551037726066153243116405078675971882489917556994016358915633307107862577925804115197893312022350312489843984060013469718504695034371526659198910854850710648804547651308636328284615973161374851984087199217347242755217466207752223949027594324193863937741766027823053300017553837436196608693119287390503119180760132352460568628752465629870208724818163054788830774252018323615737592557772962706603744858128219466538134789115064644373927146364816923820862647959824378437669751249667111529390025831308742908499801984995015722129094488014992559969606134714634509296678995263896158359629159779894217610855162590127259242850049070298483860182731921780525797086001067780876711077847415111942315387236407716026561784166389296290917643748033513456022729598294134415918057970462902159798237040234667322800030055193800682936032915767091233931590170774738417907703769359016492564907580654437738175066216753866074854030049242710052219028645053670659417142754121208142021401388785157507058761487067487831897667805042652613728802244890091710174852211237276215265044068595400003262305296433677530422320960653633701472544103561125381032082881103345110423497338858002991137867459235726985032540893062288259050351197508123674281832232938962558733669825722727599895565668285588066463057451737502497456873960249959032998517122175967606757827404735331928042372471224493229735168967113243729810211653878795445719699554134016733195040744837846207989533494895217981893119768116577518866591113511674393559435284645431960823793164887526952780327871846970436273270899913004112060417189199850117313404056217102482940447678058077869877781443278465274157399468737184271584634979511743881325052951624304428508490221646010891253374839937101651951724817704512273940241841615934278835139164233165360715366968411292121777600060723830312726801033032536178394951542115983551503466555019789025710903191321998890602270858157882270813136201311365289662277852340266858254596511386560694016792320749617744096465352214819204340187992633736496394346377503955553668729548821542568702740901888434681302133322777129032299093869763779503970925855624049175607486441307107018507220297479473320349318264369520344425113219759879839565326327243138767248635489578345300714863679765680433257606630832184162464530791232921748741990058179342987470711018574507440360836673838587399971991865837775508955309522226850570466773083141023965754595353509257758340736230733270443265861320869760501833257293426289818648251759022093365442298402082585251848947355698435697482412299935890737899696565414933682409381303146963740255389898606455187509846214164321210301177074590410294781249281750764135754310784340075583496186356223787255220489604525110531508789117764966653887126884923509123870108206041776716689647141876256593480901834508147502545517409454628156813182771223537895689699700136976816944342138151234150936362589929747475570379062239451341752807957027862272147071405119878244974444894065388231843773528262918404675458209289874160354723287724666241526234610083757000477717428095728908413140166251149253382085802608203622423821387238475850709293933652296664071425318645841276195350123633995588350037448790982103888776558918549125343003193305416999555756931730328493666969672663731586203454427006969438373418046550747400364304485837588329042351671768859512528496365151386364817046560786814552998749112672312561458730333769919592635883019463146932305698057123860482064886556035340422342672732489185717474135834197441823545501032362057911739086004750081106667161708573495228538866790377316768218404905591221647499959723085989348890054755923599831136970809770113326704461991428689570945889957650893235453985737823937070857119865723756982468711255367676626054899504750487927057610224512531554553228079750973998589192353977556396354230669382028259044910712587162237039201902695764045181672098505350930207282932478398402579676127501462243568485046871517511915364337850613594314840321085604083961081367130515578424696077716537461650931750172007398041797653505680968074160543411483639353063177935217503377351615492830593431516497161706391508568623851752508696124874626449442747211405461077176822815467094689927121871117489397151489671821805234732153659201053542923599967423116123196813026925653053268984970031621630999788757354372222892667316919332357220882504410079386872774635953907803415655389831074785140853058146472913075785792336207197171040253462455866483383593611408899043536837770500671466022952281278348907210808229568810722386939414995216170105413500866111062971846743700811774406241305574603233791965379236840355563092517548039843704618772653512648461502836942255763831227094776566763023771809137577971594990249962722291865656107798017978936585118407026875536493320193177608240335820240221732577294125853973674081172768545361425792217677370929718813447343069517280097787065810431346042828841016311123728303052003636377735478414103953201540701442618607469587590800833242030346729492319050994341296127246946023937139455690917883300644955971859990524455791003198835198028786515204741854884637808873710554535216719127999604973915694813976966165268686580666673771863875647444130330507339624620544386507601568302297511986692182619462413422265702033165879996423436304846623454464798367606766694999787913854217641599122753893321756364439575800470175978337235188243403387778624340052458573908556639152596350861321476266947247596888903630084781112503916876028239381777937891284014381878847443629619480287206699204639465976593455444893566194186472462815564424282444852835535099389089761039055051877374087557808576880930297947488756685817876714905208031192948110477109732262559025476297348344319300757951622149588362596133730756802023827261849495528567478754587622416368141527977366220594787447407064390235780069059487172968979750205137191748562358334651805775112867929186963229646269832948256261996714779204504058257693458893865669609760944061495598219642103306728213273675934208918451877715832170031401940904763336147477377267323910685034366342495847753776769015682119704420856688077860089899062496997979372945124983770307150874087521186415842870930103945419958075476244216592974201959189143757372114225103702753437895265491411468292290522538739493823535446759257462948473001294766036129159789205167365564258435072274063256614133066318253073961425917574876919434597182387306430483478294231858152857119287784562566532099269775029910986917843051824687245448313541175867648016233815822717330863990540587110957273299962655170526259309927085368700080382165223864694142128660687896992653662197391307002998615086960123326616915617135743892487849539121279610264964452516624620516173246358111037039916785854725962430542872693237514512757740301542955258614325890994858636969427035890945650502793108389826116354269768184833268626955229194245790871932977753171060144570759723777091390468278428738493714642443256360564736321994388618248727766358840429282829979580052525867021182514114260085912427596280927093072259685174890485933640827335253795808935248916981741162226504371037487380058764669647725486207320751996003857804080536014097286385377266575401141097977483642725895751903156238814007057687362352721646762060733237800247371959671124460059541551028817427495406087003251891374200360648019916637827533390762871083281922212482106539392259378844042143436478109731447991952930706153786278277341796201285739517698802623722728316548523006075273587276335630814225222464608873554669927640219238252210862029090056892262821538794418557279110017598735737907297388105417201719221118477828581075148754628946600294979143045528464045552815086354645559893623120484940805708290220154834725040910982695451056592588106282153954779824472563299954014514607186317920201946248812158949707898114955838410675588541801253577550354850487199971192025831327479620666133600576652920361092730177981833285849202687568960010405617184122209908106363083655194911232971971768848614251799289761130851352710798861895826164728298320509574961314112550704309895746918617473336042915669332382684691054839538981806588176874466751791732795382186935729934652604740762740328538495148261470132104598017696693968903687135272407767370586979294370809459870048121444807514050866167313810383872180732631578303872531014261705399568181845010368501529335139773419014235303287708645952805133954844769188329496329352687249485223845642854872761050120559537092540133466203514825978918799387370163880339210625701912686050222378440322874142203094679224624496061011253770862465414107630561916759355251083156167185334555800207503943553321975289727897422333432203983784992738228419931046227896158874466788981117783398405206019681589149734685158608141075356749033626666549142121857749864318051974657876921481860541713452709781859839865665324495768117287424805458794049909614272361589837625867858043630557158742126936746463250114752985542527654997203848381432635494304773612505913341446962579758004677697740954366795339808321041229815188849143618000321976137413592178030758747500285663861521102817695481665709697981833136602115474274575807076104254482773992304686680869813904572173183262946773042233973758698854089540513600766214988629800046618871934026935446155555040383210629576698004437873202802376837531660439325148294749734358817669676410249325535088119906768027519309559914336055055870315766539960663376995510621284444027306062764616245074343638085771247031923690572307803991131782931872403055911735683367749670840552450311495910149420108464328038091554052074314142989604571369474071060432933567460624538019922184986474280834148820929029762550093984268858151663106774103155055580050375762635244419529729286718792580753684111877922330834661446621440416932099886546109334199316032207540970892666767694070527131075838973480307987810284041454232982609873789638408335327379060052424796282720693615975284682167546471928129934428734990286631172367094392857523201171854838337349550148698512708030954003566213891038101817261119545407348759660185451002698557918405216070818416622839408720793509656171022292257603404677410711797849029313296067265849339440702764024522081338402686085424314245904278256787921658707705871394560013151208814010177119598045377425570517888433371902768639786411744709862883013356001473122965530954995402411493255132348358161168714636709927072895119695005785114845203445455446483349447901602866856187604840264301256030082280104859784087936628492112274006245495398139338448371049884606816269396817435558093368743528867215775282886913261203362313774604640316866002488685827373637211302281953717116694915404744572302970315562932956246037626531259092468187025755121248365055446300549808032649588188684929333770849966257742761833136937499914656415407336880483862984744989681135638781344318733000660319430171590851595737443157943276521388150595468893174221761104880369304289814438272111055400830504578333606302441201942351118901155805799466984052771616898620598659705696523848028531709773701942633209476504127132767618538542501577836038868862531174825215017617956948092641536692344837994150747538451927032810316473326856714465037090989982926178197821543687447770901586071507160547528437914486561635650242135966045558722793813404594915370868861579747854349857349596406428603214055289669423482611758787510695004792388484518164059776946469060381199996515580960312926027506799967717563921633455027738192547604785328894715064419752104914727716248858557518655771331284722628655018432394869102625422597531085058554735385941905760080110578666168776084671363388228834392958380095371816737805936769650119316231446394412697665323317403672019909344665387414206853749296665049561963106454183043077838964986711851187765290117011310228038210339062674539926743556725064706618252061259761459956349521251593861159877009864523027659987603861000832288930844664622856336807971285417130604071261432777934460439753853631427179915691498053190744021668244557228741627348234655111849191971798618883675298894441130698201420132106848124788842766284654342218008649306714059122647545937029454900419041963239009128487593578705750039094131146725572209876256181486146225499269728450760765258017442239170566084190382415068660834781134117170344942115446306893437570957842551190202452594171754969701313725447678973931843151618530582400527025776545209849309582773613606249853975063313442172950333639909947734691873521812284853584925862201695574061398063139293610766842937357222524614868686471115165311745814448331338989058054567753190235099772656744154827360642353064651603859917768156396361654362630524164190524592546335046007462971228755231169986556405250201474694506458284351464521487379029185600713816762442127761938179686938641674995716461963428678814530107926912424649318325975474727667864277651450235012508295386103355110332359793313495035755460903232567484580149777758110626343116959494166192248381940786503780346877299957040775970414202749862665980740150658398533788027520272812446291636669338625639641088819801179739097470535482253754322304016552017969332922698972930000252377608348903871337239975940432135475162717104131534365279667288321349955396870602031416491796247624681464523470476570216367364231732969639366118172851671671975414337551809457423474727510208537927304685719925956822854230348000783480501995952115548719258914473206693737918926010565189905009411536829676950042055215313794085830152795568441045499610709686426152421851987698765859857333115984642315380381282239152267044882732848630574544372304293479275137652779283558924342773541891058837626392593361491245994801850142732829671545739103468992014984554195083193304196810967332964572387437715073902786638605265389732471037754948040825743983802177549056861206197907898560336586205960441619077905918023949806738111082813084319178085333098132838275386587546741155878487242408853610104389921763085233835350595156497720363482444034249224660010985975463174404024186708594191697127923131222958260612366225346352569090487836704072000255804339027976974329613771302273138850495007252994949411006085824383808548857948378543470692567452030242261388245665507744843065590215826186167336837288685733051200084488167802710476134465782033389342013289618487315641714718556425985511799791817385241262544973300298513928136139383663680906089944162259505654188534480900094983430736637060374105577620055641390543137418912483973440280354787365245904625233143525306984075985292189674277328945872808566910298395431502024672420901406194454230412473830612242439193069460980279367068438951308425250797863139150627303568481073025288858461740283862846717378148327056412469757833380209829384959716955888708359821529375968366148308769224739540942875048360379718168550174440356218266318451025987070435754836077121743228405094015435412347012730492905005544749442019927689991569839990372097260160199659690061062352372807439490606447845308968318087610846488815741180252741546022706940315108142834536647382162931485299745592038231448787479258947682252483942389506451767405793261116347425893144834620376455929004537532702581233906878752740317061058566594751536482700898098796033578268139548924642948072889847519579301263950144686540381996378078692832537588293015169714434030960362219904696751639647198606062131737542714091375677286828807843182072231584236078419806840094848462451195649907357860286156257477145456625104623519268873661227731555320145881221949738288064985991529856180445385297212093897777239624357580476645559826958873982312451056411104653259940647185311438906517720203079807798079607282437040043311813790216128208823854844699509533551695112682330526953283531185013712223085146369243258131854178830751297364769309834167943700222622478081090748475894253970440612855055223425863540414866582571055661586950444191821712905600562498023890244755967918921215022796519935899556388269041007122077195038921775815077882834594264949961335008207766661965729424374817714356022347905433473079383385715961133782338036399463259030310990588555801081434392912633722113011609578504067432620487911213087630660730200991830082071088472128362532433869211134823505255182656829943022935826714450498408766151778965854224482726935743218929722549846994362833620570762464841226445378459332002934684327577072216540123194916868804694434104254692819208782014501113892394557054707014582902629134795528520444826340742131599034515430739314144114211198752180672649744343513702368882116047402489555190255457895405793133609876412197678962243224380372738358610000354322316154773228249654869666999918951221777946589435893342938226358693639083578171795923138992774429417907880778861649118709217470313026365004365574729370082468963965805704527178538981392662914304876693908738036824383631054452278601791930020898347277548383885559896231663724445101342748905351056197711742917297630336382554886279164201267872721188876311372175678645244355621355982049849460823919360304045331191042708152224993419765354512100545515016348699614339166115454691096847250559168844455587823935038884627961344319824490734989126085352335296400973277846355675259520794663460000519165591756392174537467449683241936248852213495201340636262469550171469991360583651939688045092138470965868603332432836657783625389750949735548249494009377152937008434060580606454557248806391023838048311790681159977072910676723692850798581866966411778047350971958393605714933290474085997045157261275696576278468404664157347308189430894974926412471135381327518754114269819336680567218387284915533716056473309854787732715618074112165133928518157927774978249668764713301290449635150005080127566940917152511629102983636716233365013462833174920008029366568201861801151051331481309977668877634689720232275939223589318068458937109402651684205902413593976089137635382902567100451943853141255864008147204906735727213063391094775720045380514706075742601651560230413130504729434208599260978435099361954026857175161637168685966981245147197954416013571368107305536611001925991754969947564648301636314156488210544235216562564523956896058179892475865608165011697349807370522939080436784181518460311821902746677081373189270584192063847957842675531273113444963653907101885959817532761449585289626507289237206578169730138951441578878046654696498045548281450426085069431741431735743478825729848032573624526501065998677516485832304501243188322091260436985923432859637567402332133448130571416792867577827531048079957504999425295784153418713809975945472949127315404778322513936588347393535080557348020572345867556152951671500373889528606856291164142402211795916507088448101099454992465767736954498239416446249369512287536596569898754874210601210953142039546732686878782357702633450921345888198596265863692969095130174322953327342614975202636957112145745541538039701554939456331700486005620351348837925663386751304894651947085417324447978208822766469052460808967615989381548314641660944087597457452336946478264472944191507950753147578642476435298555112020905201785958687324498954893569103394224985808429116134701971483379055876025252257159314061023834443209146415634558606868351669465519679051942400066665801318538442578281649170728350153020121032933311379942185874389963647613168049282599854163860244526886193526048219998090528713348540417747026672298902778123032441496483703183443029299008671520586027394383280064139496659236361256392430960650172632311435923544266798131033554550837820015870571984123513340150543067015962160173506122556282067976680038168139372141771823290741030226444682424124743643996797815023768253978468558046308748906527490421451139227720996954493177223469820236976025307146312784990420495322388252693656039064526072964881021144627690671311162080154196472414234934602900723206865744871776179811641594383454991610143303307283157689595406874446723630481231678411197842558683342163599887226786226702407754421973124354966921383502564800296056701192046659312310047896932109269681539686254670657886187975699947812425271999720562947196649489932097738481281778706984468589621702875792185234385097449443436334841902335647630514246046689851804200609575339101829658532528691465350488367570837991852761235407875244522764626664778551437658750439442479348126399370882212005121458322506983932130629137665506213025497143965846685014189928030512651513897820674218648465426378831016241011936756259110353381084980535343511522392590433261095487018710839606050003038549455276489632504578096741673151888006180871058611889748457986113848163965113337096218382404076572570128285790409276487419192699237416412717892815356018395478296567184150588811367514059904255866032260327628759887439236186175130416815476896115789597342656894587679876258181273444644995610903900286996818612914533748126085761589494001239559748600643753339111054262570058874379336588955420244128841918949747849428244846946987278748010611610064691083630362888598707904643082003069347752647682514097439430800761432782977453327078149674709590154268073448564468675809366675495822695508682236900953018567771469911336967836390681721015035096575691062038993221647520325133159090072918385346620530295797192982013166802785277794813230000853163815259390668922826453707241752947010800634892892204922200962899746351581076290952597125447162886125441216744335110865198274914958379975273775618688405650192375834347666959218142758007697041438231992095856179232499053329672741215853570317947635656073303198809596185199043688345719341942274646608032006011077657564876749087629117133054857235385932916706859427710148184439768179331605704515441213681304824457873844331367487421488927411639358315537260536060358354398141669141618411474247087365470680151747363215198742682451665418191528283731323905001894223416630703502075626015066915548239827593251218777638917246605721008618444723491816441576730904032401592174406848961483522664067595825681732527632643708456349574953508568759724979787868254066404507555899587492693396173138599330476699147519873326600552794353426069785053377001482537670747401499768601982121427172124663742127236838733354184086108745263254018976945679899411647119525417753805236357511943570225293400480072541865223357654882256167809431260622752482188379427395321598759086711046616952176690690657045552020785392615196484804890791714317875011951409689745169038304063945637855414728660322262858089133768463114586470264007088126415674918112279613556792846049183466147684631744975337074240775632617042930305081982979139776482892458804080277613499698807910107395699079649081228606842160789181750916916485020130985364825905560095585762089597468543594677061340422489115592653387684232297884214272533367853483636721287605193076793288684039752214694790086388130375970175760403020526959094589030657009030777504959022564762667127829397860558750714770758851084419869428369474560179068459888539016991103348384796546526693439832628465028778947301401755736649790155903316192967023695894161116799130744740012796256701958947817639439594900637386326351905707256650145243539484936672850003365865981584830379942425962175855022975910115773164169048673455058313250646330157278273198520924987122891625322654609075507906752711217000276031575599094907743935966032989488109608375103554429444833751531397210125519831345078809310198281174925666525150039070720142840477804113557698539643765382342854663168546147677810651748161703910563649595909609926218301147362284607973285716919047650146594184559491070324121321687609343850666971723662188922115716722897585447293993313809763273491647428775255410852815885155537391587093748744679425832873388780154312088318740922083190863993982486556383050084941329153329062324150368110709678818430806556804903739237232093744952938997325647297229784499730167650719993393163671085337149794873492352065760010531014242094360990417511281658094428315321089045730346221655523307914013492168026537298944614038279810723719366628400414121664885288122662430084188914284014551633962551288148442644474274356052910946198215126312674956911135420608449649825659757214480740114938893709893735138720750534861225091170709624543964765116496891198154382867414198528090257865020693226261994591904143902085841389689645032142252808349645889117417573115064944902066032595011698588712792395717349068141072793033518795213079755793393752001329288041700634082537469466680014139413637056037998511377501748084542816228177610531763443378918851395443704988552070802420100586793106524061842377592079905428051874755634896545702012267685195667585591662288866540497123997993003302690343917041311562322314300987675268024267245721157877151523489046468360378815919763208074832122160835566769803542310822982878599704320372070694523239372625873168216824770995470409575716267986460630430176864076250531202127050226039703149210270882819878382235459101863916329588074458631547188735969920834094723658034277480096543999981298361652915063978199114091213912058457983741976514567809641993969880329927809840554042995735588860739878798299726520439709136668855977001753689094116729107331187010747944986534600468714639928350377533119383081516450331913389434019869868577690658229576410381433891284512925606228921639897602953757806871446859297750355971533557391947239887143293953017798126831881724028287109375244083808886261797644392001098696168674711594159882848702439722763930203864866661114299465791402349555725106863342418740779815464764077643472243190641181534656476164879737584569531556301499962608327483575283635387278829193580446315209477650715243471696834843860244865704406449568239708284510076658134944017968375849445640966016139849525212566791273787821240443649582883396604955765310534949587528295237867769684527991156495273788672243003955127522885622764450603266900548512754775173995984046704012678231043899142272895726973516315838222534648253233230828117754084996775728039561229397114508417566558339588790758650503855460244304609948186376080784726246630628090781666846930256260665916515793306302043757656411849092131020587960414436594252786069055508984393643120016604460308438324184604526282704242551244313004072192733469654445262758245128168362267213998296109120205768928843307790082598937245734665504847380424632355430902507808619477232437841162079044291567948015013844893294964245013441645695433908786368948558605678601979788918187257511274702572148937626178527965873670490767010198209543662972067587218576238003082722121273908548499130073817485749380100900212060113798529075719279920799181710710312552499757600849387565554281886399779270514053188946728009760041028140084917427668003539807936564768987645684270083607982386899155895625701563140959129197517670134262742909601621447864536909651742418136288481220887032703255926612247475945962668074787271457716021328202427747304870365806805501447978622677734658423513551999152714242365855716906755346884049165502597362447321110397631087747147294065698774252863357523413258673965348619312091259453237885475504191265579569767791677194911958847472435987844749185077703711024655319660284254234630609777838322445110558569726082851349938183964706264133604362043850364018165348032868675480392838589365248937950143905343051470015641619851970509849178414479061314502226531414217677029370847110796080694479836408723306885296563906420837938177704233325155259538394071733474836704726194603264213955357126040279811867162974885283834754691891145143670339700320194545276723226694279589560566650291068486274425875874558111651032364379716643793537991747941366963766486088352534765538828572823833431981941269769246194199471890034369835734552517293422963514417732264015059809862359201085450097934319214521534289798722070408097050429183167974806040136254857723290049019185537651047992604437323489253920158160207096440617548204540874746634918082795599216857754564457163218935783429595869019963123244677944133107057125823619852437952556044715103616424122724124753610111329604033553689559913505737726652539822519889007864064879343998379525618180204976509856377028813652474891713345710866199263149876227029270721456016438418824783866941970227289050932808698643368886540843882558299609166656688556889868192777836137368955212114429730685234893222061400587176397447694318784805639675374913257487013686536065547958064003763103241523515452428387612121343673412981093295955963965872204726295679907463375968992129920847097531918410172282459613239710778671766415788308410455652827771495425088696386192856370852373594112534099458852155363191642857184762772154878602432153874301097583281911090351330783922012289269297888866530032146292553255721988397536093455544549618541577936384868949049889711128335415693310014145277431970615985439463054120539206757569528599884236270176194410169502649414774750227604891892529396522331996915386186454450699025718068437153267514420245536640847195558319656144189019292954542046610999109340980697575786563578796224613610231746450755612182282039424925661690445120140871465490827506929512787056947613851263057944045672550084729852386623459823736406355182993610121797772918814747076117812365503936771204837882183950635992944675859192980069233197305687717486782043894791862423891245683484508315380903462706187308787943587009660654472936275539063375834744096885904457624923388994734956071443166206535160555908666340983222797709784370032128881686298773317915852000277126576264018835243768085606418700308977414469763207565530342201141958496361540979909498561782008863542607275846405728424602682807208857085217198128476341640787611059417966972641826587139097381782371299692421728124849958355347554476870972448132663857522875809617295322742468672092374082500487030255305175021214731233808476319471554056572948364433437026857866215881510861074388900896591839654787026464505520076663659747440941225194734522747065409577927202154940761566303166996304969908126846238448491716924243825528889082121808926627553852013387281900651103091421977986465728818973371628827559378077258963162719217492192907083943916696389629864764123006441379989441757595886685484614134282338812131846626289766473288374821272835026994571174132576958304012740022606880942409518351277930942103222062889397046124962377736264456906155391669114211637054514577268091867998050926795239631253323228313299675568401783381711173534004481544923147012390007027017363692092049638745368541212435919879383748293644548768733174378181513655003605447493144066788032472055874966684986716468267716004705255825058633881914529180767413001593840854666487569873963214866771260096627206312888811509073081961140258489888843690739472595940980058795473241944715399481207733414738474773118258307799962033868018479142897987107944362857926297915552081204451809164358902827562276526155538814025288969612444639639608281882524898236220015326493301925475488969991265883437966532417072299904753533745309410127182969684339651020662241484568176641625093904572586737273299345166598024983394642074205559728453577892958171991134443545097395276499402028139307692262950455087197747212368469191435727877939765449732684902720990603130727945042446147892453217275851305139898141498630428269936554704239900578871309947722801273128192263383822924140415426611990736921113194854561773461262945682587272016850225623544319835723923759182199588017699434902806452781600538218474490730707186291577731317427872173678523152516305839652518446655087040448528494910910943310292852931118136472130764169198642439780649590699917078542132101398374669812710059058765148756645634949524465543043212295025799172703417114873814382702612420836522734651987790097199913347734148960155299779873598554245907843989071783255466197616403508905095859638485962606128010448301981572826560076907554994199791184027257330739871390562189055283984679550024550589322343620537761431038539947405607614609057581841818591128781960263423016161263990021822655887117014000890224915913997797532948291026273072214900596858761704075949502669000853079579900921968301234293032827605515687409422298672758465672391599918530045722740788464860854910032518225302022817696511984899325563004400700491488063505196231838373166990383539577146159746730953386797994890341436614017322709702558036065633684415067627153376539369229325978283165152574597646351883439851403533145518030003565235358566508456093227420484319998018123091496226815406506185913244121568054971359421280169568708573888656001237057727933698981886190244079502605101482522454305488890652500938424092412178243456829612990765472825286349210313930619165778876862337373241040728894556639860752543960486964272732964339110933037893739658997721151607707470344505081653759812234269776533781595792244978998957915578686566401445146139339109430643868851548060172922740790734437270364794715795209485807919673478887041873283921589615003932604095660823005504251391534015256848834865240759718492053860543192773140176095060474706117138753105892497951929262463109459568888491673072641991669792452593828885708240495181119673623062012703005007461812426174664098889015734129511578549056796577353592816554307265771496846450409470432034247758868896127907675584879836206885011998080091177815707411014974724162583546028167116748559534192947063529235604332669689567160373108577030553151734110478397388819625170023801395809113220666244450303983144708443439172605619573709246480228043732611955022424513537892690323482070000452854317004377013900045166341326842746784872087673632840916097699541211771568442973294041352274513627349788459673956061872600614900484002580279908425414600141904596094052801638106869684662289410882926326545290317199046232171963455066487661085896345753553918758551075638830557881620852775591874639561006373901363566502179226279442994451513824010884974776622030212385801575318513788294346220435551735493169684105769382353807597368405377322664896574926629185718030709284117649376011001188251699418174569791330878305947012819843933377479830661894779415830986593922602532623759621234447687651416249165306578959561591308406198481409060277969955525839670003157020882952061425494378587543582572335862674989912280306072736957265978866625948025524735478949817289955058236857528829710809213293425270950631839906803395689392354813016134858064775824345695320046663429598029764500145143680964644923252071386345150985987502527238138114362397094375160804529264071596404657438511193873743791899540647000657939240777537907774535680661795046504139818584188063904985872689297606494747661152005445003261173285432904018905512347137887035526650035996009481809428870538293629799573617836861842679946758433383009267549377623659337389124728530523292638921269395366777951799421933569687792806928789802651922516041857669860022649919633583669033046533789474543546358243669956998894286487884582944804739107824360600667132150162202083674522843146240667329325567228182125409014766697897299376419569782213232385579560934782115927729422566728002259949417796007452239946148439182746995494930184401264541861060127267415463458400379744306665413944044125584750655648192737432196724345798454072381160392862721035632915186042341426932753596791817452921002818608226952539151178753706501301343257448668252469814971106545278365018185794508898942061734812412886896938535500120053893613792535803242454180096449253603200141542204673448307727159354916626636968748991871111184674408172370157082160759230230403453705829778392329745880321559234152178796922022679430080241103629054690921144508608587166701027491789875173359644396239532296420570075085536163989513018722035086555339142635962762256542787203290949320309301392087458609394044200248546267424531284451270273178287929992928475149574369857096623427471175070339806192459620628686131296204411134068661082675808725719450890733244853627621674675340502920027915067405101820213890181068138214110221441338744684744026074160876590173605786544540745382124405638303062709656240978922394894382594592049838510347912336187523835431223022106392355651254698626123888137705962134856630392417617421480280364822169562491749352866231235198205705241538954038985298483041740572378180895589809070237462494820800308012080847242092359124061226850719036528516793315977162026303177851964392286109174407779775950881534008407020307541058181218837688325670279876362346721165975207098360480475149828271095348386518401767119524670730999775622856580552010444026722382162763134599403673079669444341230820011879591659524793573894365326766802214446870505069783245358615417333315408030529332168577578427928782199971965719660155168984072890297358173844896468200953773415676047617716439066222443573432209600834940950367212182417543969280424930440231634795585034776922266654051420366503551969928364828716076858830573371188300845147066621893698125435331261735182343310310639692703792068599505161161225181705974540851856772710363989866612009591252804514425778248618810456458030974323227214743527983809524587386875397131477158879908060797429847786255983534862613234275277990712616732639925277945050673625232065611974128705862596320476084221902720149020710643343548355583578710487273686318722581394875640583003726204299600499783727502324010577184282682558792888184974714892062070897231187226802631605928706744878972214860487422923811174468822750189778638836098645126281972982573339635139120290209702630373784877353918617603451227980362360661181478606365279300076642024305280177395127273340871502053077309351700641979694117484578756606700442797947253928799868658988824213037239148600915023425240861463321522983683281890882626678110187600192557010706860630913506388125523319939218250543514974490663441249632419103637945374682922223862734356758385795213970946594945867211187530442006391507205520348675616537009115664450941175685734526603721321824052226392418324855063171292177986734255590626818912214313706409047922261074639151383336896624516186400531198797315500142846761334348688906019565273532370819933808493996276937156972399309195185498092043794974375760271086616239492335302716343273268616549452840029706659990968212897227356703007353419169415742849384699109782041057558047620539443650702225818752741008150146086321155835492155728556427962908461352658032656301060544819755283256074922964777712126391728083750518091010293873615309084725065437570078885633390609062571912302816086756008525645213809271671956343161696460404368206630207377415939817911556792432883081633248564773354198894415615978751355903639252984699981260075618656817772398673261433144684468793863272192184326308157707769027944460358268199204445491344359308841889185902137502965114514827200838583659929032275620178857402268860096033785133220266658477996816419681853119353220593723669881494759697883759536195151207351615206163500012675490281871974634994124524699047272066864589685692582587133338070069722983181587888315390417025604363001974833659799155373193913640945413288889675394933072006942447480110996722568176800672920669329377032607100450398834983758599145026865039978978647195971750480899076851327342084151531853376837676361890333239203900865054260089594753551562041611317577181861433963602124397802749450070320472737834506804264688223834520475458374278319151821031723859309970825056113986276008190109644333173449689523255575399727736264253483196593817951969691597503011289885414315009909140568203900151090872414847429341869787130651593271654336599201337148708690237190400022726684914711110167746342058063986869736346581812127467658591288644670806127011593389110752344648331037554175985209820349246499888501093467041521780659224164405802985817220253535772185749065621967306125706414424847880350866789272415075862242730770234056160851440708675811375867429896510337159660897529994230870793956109498481169349337213002122060938865558563668881362754258239957229538829701534524919332867457467961554619790446068801726129784678882879635510220369471244593259716046549916798438026146983818385319429222870127001839588136984172596754834423651390081649676325521395748297502071612637250299500095143918040776994223792227218111811005828052308840660362699019767929749153799755422787774291867685923116323799065104680730722145265647797593153181468321872360807894891574817387166025031541933070806621486694876524593925438644144030280979969118189872397903771299531141824422762979087446288115996057009446348117084232190211244882697565915748095805466845776594524592037580263384598990394167601249366446083131211647933580391401980297522350873158405589793492393107825946669632576884967407793584955962737862295648556858394508709001972473432082639813552093941649726774651002509687820775748311013175419275747115559198985867098972672180847322453477676073682207264574878787063567819134992611865905401501986807900859163832425390583543680945322529611110641145430035664191155501713684240255378626093053367165743354938436287804285008886614042446601763215009102326887831094031609958389674370469586763445599968196790207363238711503817523275124705950756624094003822363532490168076983394944428994778342218045782190387762123762946307566434267447274526321383122987673130748587206462007100169464056131626391440164719465679716286614559415199352424221397417190919234668520916373690851800451302240012471873291092034357738752697316941259416231018930142564043947713279470018311677834241397328380048269212137328523228407151434810383355446427284611416020549741135021169626987563263210175980666797836332175322390492771721810001938856450475492606253527746002402813185236110227083643723093963626918944749885653727868548592342346834376470473862954967278456906132166723980623393939992746651882709898672161588588218067440633477245138002293523105037351735272821389002801371429750447537358674171452553336937824007232221682664529286402542151938495693273904285204141560611196475573741694867965480572857751428689788777257509443089202684256158042532490238037982107695888909631814700826991839061552643140515662728720621630269262011954580657716248515830248963237259553894319198848375568830428555051592805974038548106412763234213874475450628550990945243561389781680594091030893251513593291674403551949887911602027961062766029677542843551777482495951038181630647446392054877012519732814844895830662530180871181455466001139953370602367883498434920128814928835762318214752763864960736587831587133191464587698969181663532845984086946580323328601258561202974807398764623272377617563350250043757029108631636231609759639810015895096446778520293715107445504865352515337382734426420441768682701313941102455892493007622583915993642368082656642198767443611213139997566985564338108316779580077800988610276845774239838093781892906063640288322702152485537850471289748663677816511373029177552194346656686788625522104839321003715244824643003007506209489636904155231396166022938279715966700178682578454127877391498747026467766946595503094022419366826799900726807373374599276061027482074690651316158761279492115147670482048306026037196829064602851736963838163474520278165170002293647097604632575080184107887979913479893693796538813179086978102057723636211929809680691127491008773282365143507949296526588842750029278714124798684311096568496996667337681781586780484990691469151303097921667368854867393809543800660513425707020175286172790237484245460253931110076689915525087030380614686596336297532535645167483780698755071608664309744449649513895999967171158657271305902991152307999734136521871236446136005875825008800665016159687208022716882800626678221155280226631618511522614919391038586969018921188916506784587136644189984889594203827551226398045651973217262492831467886964273488681791519593306655377718107241436043388192208223689496540780523180041500044294469274029794112400957348582568801844501264494411445341051602590889385572738977743259913112915208893790061491144609053747666295746410159899484968507409106694375092558868952943565467357045129775693366902553356651174897219599197369830500427391391996107526035607992141593113282276551736563501928721397027748930823261123882833850895008023235278609644157877240844940436002102538384492819266102595852895782429462519794060183727994158452539799199462858886782092810104431774020245211500888780792478035632838305790306483671210704054076164038441743790929473055231158117383503321883712456448007567768547249846283034794986157066517069717935037063609757282738232510545457457775655580489840215107887285996825731413242245175019794161323424525183448192005240356473092900861647933025029397238736870461598102507845541246399385553253665051971454833260161144211225972401482456244737013817984035446384592991128191644748971270029178861842328740670702447082220415598017653206181453900313341093319789181496335550325968418193745602292795842339543283653725596973992597636406537903626770875295665600079407314208758085434320567422562908984533397788250541819400741757070603894723572820725589475794198155923856447304694014670849515048436637633151929560220090920296211732444713260625297414595026660368343565117378535754056956226650136468602268089148448925216252023091649769780432062000623240296619112466425299100671978500391252995506080351093689625366938879754016652390812751332259548304826241401088536525343043163591652241456822643353933768862015240760420270598409064453680724429894349175315928594846707981519808604380104607299803801452668556577424933613211346900125602141271013028561990176392910015739830540518197215522347873987496867205741064961263889239657630456141861668040689791351990113701413720190611688239569234610684703042771780565614480199255446195466781588760061580520997837460024743149880227149892974255779716157687853062489554398214708367266884512863650026230449075624667441341811042282148013293468737412417587908008571256468967624290107508668054510493353832679177931353852538394277238352823635309116234348809237755723679154065574207192136382266317881578264743659339546628420654724044668777207672421611519987260883377150542576750573535848078286293712652505894867246778601025988367042622463136939275013816671558464555865606333552773341084015618425405980682440322039605775975836074351146399057790505173901175557846052975895228660656448769962024202731197332823304744571483558979532312202383758334540479730827581218832114145019551716218745132621291569561699954672085263839950144786774220254203132606591424836594209625992764111777340927116355656228693008510905291346370589308262257310556213596530280057201272766546725392299470201625549628239776883473122055933922218356892238608539625904130963040661826567523181361768101951877689334586697054470656820106814036542325678580555919388714325810794550508078891394403604073898978261729492898692690709611001313076709966743599120488261725662146385415449401509444444340912911400818460167901528914651765825010741659294486726839681125578551591958875467111501275415737497727198324996185492515869063051400498158299673174919284827918700290830239428856262396508256888171769839916957343438848119733613558647588287938734860404943560323966236618719209111703762070668934942130136587397259501815159366964262016491184937419732000662848638155931467169227606042309080235506365252954331302970054386867763151792410849995156407290625171981606272764925575606196614735205995592796737373490663340902786178637224406504704449305402996273353073433910194343051543857445154190473696950821135665989243748850190159812249690376612712275593749566186926903329635598583521885422635755685605617141027911379176293977278063246274662714796195219138664147460391541515055214140161790327792899755717818261010619149455299265016069492959138249058253882373781550622248812124324643279612931986345352937991741981266079638961160510550557476836230857766472288908641431659159737044238765473476651256328303542659789912716642064950670510908232865261163037720844879302780717300727551067750858116427143810232869657699707235690811293501916793565449916421062101041312712186135857636025252310680408107656328685222067598391629274272226410106648280408484159221604187480204957153533628434246227113691841207988759070732938571369573552259856983353467599407739442657826534553663157318368037887943472056867850651942053747898846538852787345987740613316152165457736316825067660780687441928868198954773121268390943871191054628554373099816347606469419261434943931949235891115474799362256755413774105799145711276133654387293045077454715463480852882529033202858090660082710462460126527392360520112436790175717206745558012821427903756879038450800251587582379334117857486682316563577135492176441811951263769572684546470335079647684823644161595921992789387633452991770325643126568440197812165868199026392608003446981335443642957871915150756382750172628090566066124199390496227872720291385281552392477172592020305664609030461745022044715984758363460508563143061621033484860297694524101342004938413979104387844211249219851031178920533263660468404884948523233486621032203950846661932574267769091974678485355848151772877990535732686187641429172398376934830829267987282471256363717222534771251020465301003572755443444051757079748046473510312755038900367548971738354975109339463986834152919454772294809721174670574424549553702948276407444071337415976232188351814849304613815894369953858101344870519766598938397372898605394609213048868678878530654010129824107640063961483436215902830887358125275726214175285670887863897910587441932869350481968958068532183093017821909932830944360045301250797406945042322916174466663617641058206106014063467882968402899488538903659400801423915153555152475389504405158370355062425622992239361206478466835773444238734108106603598306088550288239046381688939401341398266839077219367086595267755913819038049050471690761694227512008026991165133620179131842428732635079058265239655682092787146648495953023271298841361915279038297457732232772155025272279564037691463102478533403470322626889653214595225810862307109092243323847773514609855236378162000198717626893822162802343487148673309857313801061546620711331433818439776293934733406890834212781896633408268699726406664628525876719190758438544178862316052969176819141183018623077511606170875083357145408769014885362437757699921443179612812460211509484619127844736460284208307054561080710990467161357920460864892767996429935647152922195935651939032366655782843812558537084615673530489265312540033472141548631250505847741786360402673832839043202822090001208262776126385425704616013370208715868601165824595622502520720031618005707666613432759927101287267002860085143452639314079274293353930414695135283127451756115504788783508079762583341140234072831944351698023623833141757456969657988725030701541180549307448947160570422084399074951815331961594843182917641477938776006765142754109931849017752183458232754179691929871106777357930666317005967914478091713300054877617462775948305551841553519286625036523299388722816649689263982313150119786657394591745285002751688100100887779212979960418739617556185381014162149606695275595860177153166678168675240479868949439297386616477116001882613979853324739231837063823083067579432197887666068972073434923348801256630283373495223482434409284199786545636157994478125384984223950594854120299066219518713860939615070141051274108618050706682121476347227485433338856804688978497390213623301885963032896671774043012221584435971401088304058803550153710435789483057599378595716945774058284314090412256279601210158662740594183601320494757237273059781754755905461834535591740150723892856431954838391240911918094235059382747170728442167194261379248421427718737454031372575962148222998978537927901571836568277421595728463672580743489597129722123707301600205668321426314174308527497601738243542100285212765207594004909679175462409768480671100635908029384486578026325453225449066400886771532094494977984456163380429572859990368131212629455407063850520569570699223589582206529769090573058306097167691761805395300319549085493568687646902873718828134399759368802994897176910151520768592979943349470416623046721397874569605322648447988691942025576457661420381623156992532340124938036889287293475132721046150294618635065183493243532958861909570541116630026891001598500816468396165741989905026252606000362900240537598527758381260198259574613538730798181693409057669924570898150077994620287415854266803050753428121846644491878337885198347374314982722119306095041851093764403716234960201104557604812009331714770518320357917202315793516172167696412588521722340228938036294062816509817580332006684007786087549093126138888141273788510413698877166932066347561961714147517155184135643384360800600071041062818929049561788345229207831456058248851146010097519280041737362169955264330052922555749811218921430886368657221922611946149518777520340874640505168023386956842990801164849668260123778646263548798416759289051520417076245328887800787769183532904317738073976355492015450598736442005301654124932816761941703319454345609498157390086231052152178115459815135115043349739228196937096419849874918674577418250625373633573158317136298569338138253369759819555044503098455522737623805804491047756886102368423246649669660355673849465956713798353099461813869539526192411340127003101605725575878385588376645094959204680690982680807079792573209881800969167683874845468619738888769265712873966616526976889693559207261987946383253414799072240088045231787456084175694522218375329258801173733656371796443430533417380122212663602640309772767700943952213534150101628079439268830038118489491178911654703285430931076175350932115447949803233577507227508960053056152842794744241010684808743169602239001390503561360100419298191252789081928258995443793022682181852987605292093092633100113610435811748416561696971893304409604857698659875135776269736015537903638374949949800837780985188732289852561835175590565917251803483883460549720322987212602077257520959904626173599353956981905908502491285447644405381307966654033578739831285326623406069586936375980754232335601927794264175579445985141789741818492764637434566773347311548136002897785238845195297663839859989455554247782799579357873841472783074883247104749677171476234944706758155192806390984810003725909325509868560613191145438817778080515034581395683427322799355772654073823480550942272026473790824746337585833695004893376505473460557369008156831208640307547356717042920135673059118141887261845855821976373778254937273002188429024445443728580375293292402558103109510162982717894419527242425306685702487587206501106429543500632044698827900251816556551830944915647290348723775317908003687122701438002223692318632856601420728362497086467547352000370115502683821232948108143393506353873676061288712642934166731006551468903212302716032706551409187683329066382563636689329918197028610813198613579304868201953753338486792259208189515379358473926667522416968358529245804902570650596806995153509390254764310282820616955479738654387733778228123043537403160893950789549591784868187848490079935082436263627612128510838508490327486042776460716355922533230003565449288501654255466355848142971089632780789595804712110472176492577832094601862691109021111171005040648413123453905078123221060382836028557454383704770306956433579841727522803976793729630702517767951325584744647888654827547732126701785474435526034264891300128503140357348127956431229158250583612794492376208751185065564896951615886481531787286317299239669730859874198058667928243116334101015324406052951022780528174060175395485841848447307322841665647600977068874079092909888282660893999679501114819230235476804043982709637768785517049434287750179149627256140197297359382445753754347596065234300552740669029697156311840886338977956226353612720841703029161074141743424593343774107292552803234329883043605982516644989974075689808992770697997461478217636841806409475725813541929463007903211022915827578401463921442031301592068319657710736669215887323178888759956128459035292916448463416076421056470598904778103469573821710604427238971155659728316349439650201624384753681056062010289748853213859367855707067321040919362090114770683354390789557067101141745323325362050271782337808750796295396628422099688921762084188706236038497146996943713433398797859070505057080161061179796955077055071650323739441192362370355393755601366373131970171546948120817959130193852470715167280196527576553764886665620163998114920103147397674095212297539293020143757584315376572056430240362314297936900994593125650079013705102461842221365633842416184293963615998834599674928455645708425514196137087749595319744492490509063538920353072089719141531041070647643063550097141835722573227880004663715143596712443963548883341578993501529029202618792000229587130951023587063733541462669676457989941258685771318960786644974229694212577517324620785331287252182823765128265423474963032414853649757865642568049296785753807994306862736846171612103149734584663610442533667816009973613944866333232521855818083118336592547427986433625991281488862990938469319171295033794420267448931811556018992956772355174664388303522603937589816691201945155727229089632530833334613985397399407745460929937450555900754304842570340219412830404614124885631498039754064633256946108978314989223920027057766433528444775309424007648904240666482392336260900129291066062646489156799164975761598649686672235646671134542122724821814390076173835201811634286828612428292371128791908959672190581997220637763144649673463495634855119968590159234504724636200336397906574388868165381749110424389950610906672755923512544245617398396415685641200397835468523307675862711884644872885306969651600058446845207367025942311431071874966589245819437177886836162614475642748091768999283169831815608431397647972641496818150722891217335214072315353508308388634985392198361893742431077344097414560724628937595271678194182905900001292799219273222969443820841023387218655842971393866889158540018505275148536813212007711816771936553211774443462276440939707364365717079588014545896135433367384798641785319580299235211623084862687814445764961000307932927964377220936502833210177646014060110697152277981336063212106860109371755070585536276015098092412809845265735582641280932237531080211567682638847050730877114950694881953524243828736144628797668102448747599812436779350242547371292984886130970879245111896492535655278286256573483849223347761729137185574944589078976823365575956277918323653305251431842742862196145424475042449748866293396942364930449952148139163100117569117689078948220304906427538841822894653158361530419662465063601397091698276680728872623022231929788268635000195137813985671512053521455809581728267159268444776901380393511463213042773164400454647684557408411637903803409663579130564704299682094557307234292403221624818868824794562756205640996981317478029277256488536521227470822177266426674342510920733754072544853656218333353905439675079859528573035738399670355236643104219331648604062720889366166660907607042276322298701830113345748324125210760208541356568633866635333962423472491266406618974584501668937449135487916694844242397648069190882799012266803249023906046231763823009200512156828053916648966960639057865050675712524505981215915593151382681278355113092968400043806177476365579947057879236056130612435535580055672096472713026465511594295912888278727128323561191152467488830204015417325433029458303679645739219035252806698865663533247322342252229556392629889501056768387076608566706762195970315242578959573717675790856152195716978991518489421438764578023959695549288124160782575242336933269707274503731916051551264886500848050009026370979711108903419858679085248116520835638656254816001100230161903209092722988267139916737058180155103756529461632360640960271605898522204141499598419033104886930764642801014241442876400972745739460481625610524046834018388066481968436901429100821718054055285494297859992101927889710157277746007616265368238167648731290620146669720624780417972883439813499216436295304322685190080068495652000436228292249375870281814998235531237222719698862964719803867122434981768991360961952103209241050941335970058652994605577556273156894520781235546331188759904381731238540144543316026941744644320820112390426087621451193823681849791855825014704059330178944015995346561543885957665318979371397700353875047311189683351546685767738373477944992485630578649404299394676168159508359885682070000586130915430245227359323704420925734079338026321030465753622374371958600811367160516735980844663598880059637708458603087403569492574621869430528467582508967996253128106152127135774683550787113802770206636501991062860612753513399223659796365572489096575234271250144256416654377225112010147036757702811619368721073158180945022998104137395123270821211502111554404383854679579737103183291711544957096772411214505372740392579554634657263916449937157455195829377793063816013952990383628597286182953272197135465495511326664773324520484723071557562940942661405245737792555907369222149340768920153331053574367764871465724126022460117152104414815406317790501553948181844240434449875282077473470627808640018775077398758937062827066589316612956093561280790514636727825577532627624954884653026097481527952380464937609402859071349833440137875889286176876617414944247775067109511537003685639362251125679648074779547165237312058061468657669769941209442576592403102059450839869066352005269119696876564452212334720127192891657907878597884213483608589828439141812370250707295047955824511682688686049651231701301131923155557707978766634577525239858892926726258804546293768845174773942994297343137677905298345934500978698542713444811752657331796719307787390667004940436518653554791852228769714607567978505928581682260309833224386252428039247683799508280868840959802577475012395087634623363685477858534071593855387903927544193899287044539681527747716482594530507174128417324665623438863026553599637322976786319292543117433470765010712900145627941521864540455285532935383199028260445250474930378591824478843129055140827808933407992869049726539256839487052234459583707361294807571455350175112534837159216135147017349654655992159740104934277951261412826321360836248232062491482260921442480814708325823062416264294569654182919333441347303230276023719096425616377364971466075992276519549238396085746286852139415398645795085069321677076652868336782687927803532070480562731594604527566429507400469751997267470508084426700134199262716320814517598567634506214449614084918293223597124059416427305951728365963671703777062452268485778341997683764604647330541264913067811682720763767892271349624761053174143494365721985286413499481930733257737098126392759328280226915299875110334017451359727833935960590679937762565103314135357710084283824059804614242693366573326490380127417640154440891273955367390371567177304824114693322584005475477454691216867860281944348355857868618190748640157712881846243418160652393425317216572460539926524948952026056860897523861084797816939601846026782755018700143065828977626793587252979569630145378450023441192109883188295525382206607237287613211489788334820863250876029740084437154046966835932709596706078222530102715794584657804653666731894197488882920014730561197807423918002866757963044980737786688282010413423547296180328769823570938126232058574548830587210164298811904298147862460810844309877558977146181373034877148186510518766333101150319293000264148618156677453281990538555077478582287868991807942523376014165687551622705249188578290867261693095349928780426188591788151380135682969768136074568584366241505169048185695895663077033855399027017110737009943326056818278053675799649101567844056254810584260729123574596299860422320654213222346271283385326840155269338447264768613340348591725726910710919895095578740318269625691045174413264842789404842035073914362299169570502576999249314794614979535052838041617156527927406569313725693691231919441850641750601636406368260645746627051596463786489170016065430862933554926163629423797908383519952004681949067253326165744363257490365497121918240371441724927512121337966553725482835039628312288360383749618195233735310855927791902120970131703312151774428688495757354413018127440326821749475269898481827143957891701266901770318247439013952817486375485613868728409044843788908637850265868836240493555949817490791207451873247552741566410845584973591411410692939186596836912454992938629724305081636278422473690998681293037732808015925594674352214877185309683150239335827351863366811264913300526691265081279068707903438706688048380442004222400126656427044344569090351582313615284480117833166452406616490687927123935371952152008737291947677408514811319251083560026056121762264458037446118373041316792188994834036580500272119830367126197913399569642689604001088687022133203614804769833644154196234695942693062142438071619731414159372670991719871064775959135148222385508509676617947847027706194582017215787041381119003659028136788582951885267269049245170837043274004085320071764594739910036101085864502282061118263805531262134002274294597171160571164724328427816058771705074648798416326714772592023178446879634380115018578694411404447639737549705543012721403525322435493546922989886398647408129255645037157898176226846355815034914876546705749397484536177340985580885938388345413024479066381567258073396183799124107877663470851918287003300590090936263564269171753528693897791052904556567895826353532097389526404199818036772013198434063165386523239645574796372525991869072716788330354789057039396885991958815638793106471023686149252932287485867034672764175231400539802535479855233734343936790279685499023147101094556685082038750991939026862678355201811361906022342860209406317172147038489576509654197420295224234951995530883908933216289561984236594402817752928827016375193708835253721479368155696395813741212157134602983086173271440355250854736181450135393644193149845118171002680876036354159770140849676711764172082336657762358650910496189223010986859500740252970540629239534789217359064330456549629224801374041945911585778521501325798983448335819003558362660695742014061859843239991790387751445059431722342197222759907042962663023594138501567068557793733851547614649859736129309897538057661048412595523087163830582838678977670407203646055477981103305812102729220138699779692553952882661365223808775274193927215727742274861248827283298321592055993222172873151813882239959635366032206232891973062614428773396278371505682639043712603105597031842023782322601662457028994416987447295555772620818116248735262372395227125601920032563294454794915430073663410954902383155475152253868906126870261973327758481432589837194447560663155647070055629861794935346342093947806727423449442976503007485398310211621878581308077044070841971323252200310864924860645431891470811459484771260386939206332755102319997905279733090173718160190332828324413461833715217196491512353968383289906155140887351420134367655792639274433544878333245094798771691083706337864385542457162237274427161212669664964833964631024655888118707703433604092818896381654831978341191441622103669767104837065828645047045104214288889799445072502480423419090337081766562971807730130025757575052037650576612323963047820677648956009623835043402416222496527927332684121297449458689168996895849520617497216594954675531469660222870475893466293205950083832260977574118173068118056369114747411609736756528425170836949760804130861796947837298436717034094794032691046792776011686020459401509116968404305835501609762193661914770555558199228297060295953755250073558611664967026246671652988954522423272585509208276177810582543692085226786306773210263354754488390223358161413465938581967603570118258015174315246171490409481428574558489246821544231732612161392271846861104473739873074574653725750959380290844872724120529637576807927087977965002631193735129730224401753152456649899643146324387683375582378749838081870195870181810786864977748150192849551227418602369909412984614673056020342825734260995161036743711873673360274147309549448298238254362101484532961371574945047398373307298559548238896980052849638911238258024570643371519750309896049391587745216677934565919870607988636147249564109438449486221073503443441161558972563232065262624976499673884850258189162307514632390885865601111891579348297355286405101964963533079610732943008129363530952011642294939625528942832207336580206234054221960870306394274654344383985541858017939057007653866445402591999439264409642360553090413219784792156225689840202582483507524689217411708967745855798888562794154596347086284283246089171228272653082510105359870040469917157110627011404108353001960930057213817249144935494182971503276197336036783782907978472398237749977862486483768324997547105238726048089779256589336812830126585663222653971103264014842815528037889479242916813076513247006927210882900203898701450681871050445393134507550681150136689511277968943600561672324648284376034672968127417212749438403118880608016180945544007131661255762333092887063455781809405058498281030777537371440784275071679760780834846441907251052122023484101008008736924435865230751772490865250999744732908762849700551373489813443684810422643439990079794883908097453534226083374647281390560462603146207856751508282551373501364698603278800408301050013513689996155707515514540034218682656703950829053168536661118318813389429789461344680260355217943863034548381449335933523553366673003373511016563296639505760504697626151682961315678387755754742428330683332719585097503024691680733583652150511484319930049980013962763427143413793680884309828183010255089181289474006317808282719869734192278870796383924142495494937019249938673220846422773616459158373722952179001501014012082576969414949290838778166689717945707497977310669665227388020486490943656786390388768538603579206674636492481704810861663841170103772531415498196375675429945057868344111356420671849680755850240503567406914478655007626126329431338918293570152977322217862793929641725169550267126311647865181739057578266696582366395166332375326434397437494953399041279104745887162294836296649012900810998666134207268568855271122950245057478048839136500061268778995619421014385907807201823276399259325934956677082459795248232936992006059486525008791726645478820758391860499472973690984640562468913691987776072068141889435716815700632914569467267751171163909570183107856666958060798649746261559581123088215296617796644887772053828438591692313276410747674794282114504894239242983830489199622386693058408386242076577410340711636124317770759526691972803226635747233631729548285093173431607902730593752095651090647667174845374344266719328118786123879428190026192745386840900807644969526292636201256579301525262304358210641221975627711957379267598481918500006117982121454821226316970352044722590979183590971475227237974495085526429265298504182861824040144863578990013716806773481826877940161231102824367485871792234307159897280766293207802273113531895862250143852458783338521560992821079465520968888204759374243626778496382585481799753204048521219324438055751012334169404345063453812878813107332817056421686805573224792097913884176582788441772980404372835204674473432279960245085152509148414569102686889943216018742795948138962673148738106520926452965632499810117644788859971674771265404794339215097589991908515541266458367127765230603596876514070164648234391691790148116370313031772378008568044294562787307099336053578671028264919200908561803338802368018467872125240479846900219911595194662598080587739497931338990934337802602362978551081214762318504639617767813309772713550846400592163850158436864252279694664688894063527940409776456583499228871856130285747638697935777046738160468055205987537969318000726839685582501891088636211079881746021958153881567532484400916573374296844297333210556770939455705985254273118450381582408855240310586481766153462417204031173746238300699827839218815162594683585783988824894864220571522884947343644529431143146938168158427901404444385852430867420596350993415185068699895277273186330967963074052244384066519076241442713488599303452321178746943204652098424690330378527246811205509492112964954147555031159656628697333763834420919799984590380245460775588643073198995822267383702862218092195801414277415076494605405910225601945020179055006315449134493332477593499804506804147949926782394948152045438715665839121799097457285556837468617773825893579219129189926282027314810720253850130714539531547205954091518473005453605248686265163667966128158582289495073078724300825311963927567461407913853620772415703363337350668338165481504335998530613483389231966652710175311791165834317334391277365970861088466396577232168222017495756126372831730928459972353588027843246089817666669234260880436112200489181552771940863972381272217653247027331553303913671864591952734542375621228637163157926498346750321718439797021901690663812714943926935169835272037014304716400954357083186546531310520521607219374357288310674974018207138918947169606044646815884929969368205726791980841063669160901168826172271197313956081071755498804972682704151361323679911510238681174182742119513736845341244865793457032453199549872269709280135745102800324695382352591521273149935598669785504411484323116925535987843517694603963136458356007089171358479929955156596624232497756922913419955835220063090431886022410473317687163045775859380410531979083109491433500296520672264010925351075304004013507610906168759883865024359349587557111575126334197879702999216313675066843146776026622477737359554297834740843549274942871522446952689734607109646074055068755156602601121768020595521203744534583537515639770515427582455227923367614353548651280432412930017483128658698425439855721740389774047446137972145136749148097588645279932369992934478152370233942028020746973777553891171918602900268929337907511948657267917326356967482777386127647295619976162869798289927230055228141957029727027231062124790923036284441552825844793634496277267335617086583328476788321290280361806444378722579767578463145398691212526021426911025349363077754769341470185653352216578509503144831808264929494861841927023810307270486176040744156724481489380168461685232002216025894942037287279629067005867379139328834558219628372950973503002480646038953775947624575780719262904049059527835561331349129396658603470576688842626323455905153334559062785969325676914396666493726784879475679913021228157408852260909394603382822565479171506714648862220396146605069978544735054770605488706629834948364473659422726066943778474986670295508549574477098217196676071998803140809962086696196061414690501837496977199711498908434793836155978804229359271253525093927426962312408707699424315307536595988062399952041193028274081721255175844305756114694744170982900197100479344159538160690355228295506771446460346948067054166257681065853955471033593146794196003946125333374023072079272166067334151512099267673894800961110871171829879250769421579523574048035352719625752955714732623915794118351613507117374096503431270417521684457572097925186083809054752471482127432688165941813601473363172767413296479395182570792414866696211591381938048197602431249341801990418378888340250211408946211232373878927997570462428752440747078729023040769196071545076795888074932181007218890785741539866496639601578624397968631123810653606113346338643360478404912109224970255605454994070942750217517012804193161364829178108115857247694829437607490815166236215865069398360780767164759916013386418651892568467171264341251273886977839549263468532854155603890103571577542245896644674027492291494706315253599450401915991287887997201741252623948790116081319180224435426360046123992181290011361635949042827502709823254223604630680705035069717781031608413422457409751723784554273501949341090317551605274009529179713267961212883442831217095971561521986032784180948927549934670417575469695862686549652643386595622824843627506720921019995195149722125507626701809747172862037823001630006735684016283002390978938567545551166011242222942314266131368511971458635329668296019875957361363088889366371393530899361046452666815750496675119144519952219792321087896428719433866637183173850608860671703126687510048389301646935990912130800106302277644963273400774285948668265898507642448996855576144111942163048985422379510622188634523273392922469785197810386188206874803407500120030377263047302976452772947331250494437990052485536946887387794515744257197709466462933458166212699027927093928562577965726508287203185964446453583495199273886718371255335173555841658439240306763764719191022477028592269864976260788663207022079763279277991509451537856764861071028703569491191456966021677887093617535498133456576105940994370106033408175833373623330517203184832263874321914930340907226849325448964493926163435957860355458587403558094886382700814915116587436089740628395758589362874576805944380237221099655392186935148082851746002331677871320655842418504848117188890437575121868679768644230032940033970109297367744057076328013516964691340324484615782977930920191687482013754340415933370866184019215070037171542344958392844184334884279732893045388174628332032508372473698796060334697073110429838798470308953908159065197536139281773775841395890035110996920766244319822746132887618631434816094264278289428202701561292532424665016867127709270547903257209937003191655634560388743078289513775517695169958938975240625814521519622197262325665964721884444462697705324478789509848483698284871580771488602724068370998720544662056939973414647154851873711958833898644693022260751608309780631305167818725098359841352973705636878850283110058877815737565220484941724996719861679712491509733593518432257781741522575825177031334684237448557170797646827000653495830860276075585088168870964743720020240309743685341517019030809767079818773767948327055737070634571467926467895160581165242946583426151918172356273096540877543735233236985974204435461696967698518242637209152940576768730194480479414846462743948756766790439346676796676876190597847708766201701348499131960868796473769759401556838984835822082566185386885419472964364053680713059417867139778928745103421962558482064525481139029644276020927731405165060614004491060727559761535414391567196574453829630106135087063933838683734529769903713214951085370920171198830750559048282037680260969812537162162402259584976302902106645755962593635514514148910539296951380093604235971180932030273890099021211069877831591148806529200323979845415519296668309861432279873838540000646471283443960543716900254479701738366772821253822028615717338993504943750381797387675611382353335415377600337613309410805863794823412427309992815022084364969033572948908888692195535268523525867727383252745571887111588196017661963216490808106612688117363351596499101972814299902337261667031214854304958543312119570979571306458791044613001777186041291143669984076552036807993590356834533189105363212756491908645802839387097863904323167335013418217730522874274132604477072845061214539221708312685220331561132841462077941959035840752845972857508200749761474222985947017703189192267586970009034595584117858622865884013351535611296495449368879829128475378658320953454990259092404726571456533760623866980227880745898381871633704204458125342379904475214959520011652841135385914570679502628545763263224837462023273856289093137582532494832260168812601004612126844174283005816237317135931595098379862984060459832059862819643967000161533892495410405768959174775640202695454504395683870260945363209518334797129120414860023125753121702858573543700103357799434815080552696731677175149088038383221216639349717827814400484672365837029665553988881130884344233480644323732317900350139747084296992687788294858529053448530506113611004697858779293559426710689445129802469044958669935396191617966214614001687109374521308071522903740918307717545424396566797287156346552837709568145560730432413695055125329632755666604557116817731838117381114509070542557042502126872032147017017936853015701599991005429127530354257723225833853318657837763645695492627407458388644350790359512635415241590933464630785923349548790519978570689711187592427540544460796330399732920310999934385661714747656327233560098354213176336363093760834964480046973661416448990773819394145573405643608059610174953335954460981574366784577734059294678623557531133655261911452805859185438445821861371153023536295880404404813097743294784419369378264762004067514881435902945570544693205120981964350781746093635400925370640913159623706282057810573446419014997456160210413640232912796561031930535521529459334217966592896566160852448557186330899089983559826861080741749801180151256488346159635062580648259093243837398006138576675394800518968974676976366958155759643378634799854429654672984088369844986013342675334739701452200897909193513017584319447413396026576277380750179757265786405941358360351602672807081801384686339391392047339458709152830442694520171768556170401341186133956337327857791348772326198173619928709697209430155298121820209326476193670487732585821494317363216095009188331260578491050408925938899142128080729710172231076102411758542600944728723845337946673507897859968398695484072094737775185273967727805302172654674652066355210199142550828195656330280494543480748525077579086197500655707876105594053985245764563071756588259311284677690072506740620618090889093947992840129792389578704776975813786922567559822022542543660478927589925059681223764088024526591515484064182254731804076878993598783821066742037508527966799489369396026980752365735182821979276922993751868649655437576939434406204626237453017436267148758976505668770921769591266331160712818416577977584306266488378729770009137520059480489842302727454070313275259669809293025587234724013219343743558335225731233780697964125867445199732326384619955962295521300087028032846519363463281536816954937435822461365435146764667120935730813123883533017341211724313787541786441717857624461046416753411662554477039620497174396502337055160584577882219885154301709044270144175189648548046643480912970801130422550518150744355186799983026612576292082941309080750615469389086677089764207193322073141394930381508352561501202750845792154427526037273116367792307433913066237866551876025159961634927105007124454643121228049566981855833452134931793845062859281374023854240246864780057601603241316012722212355673629753858469736072715633304707600366112349440133157896082536540938727668185504572017772263309048089829217447739472512350565964963222729486811318288352503326856830386450365928329626183137316311980941029226739445590183884643517100925193034431567000423264607137058549046718392443924538484004315057425478176017566254341792308788414019420688729253220156325812453547582355233938154269035906750004810623907246273532198821139406493704044697949097203887050719448052808819877517036860016892576921771998534313368983409224295241401222092078446127907379967466688354231808286513815985298608085958310188004926880447930918715784535730893150133570158958712474618904072643634089820058915632654008276117824873885734318024739931543046241274778909382542123622149197217767119432878163526017687373064506674195847752619353327770075072520233465470441337250389239793881027017173077044004771178116027150360859330938426069031759050507973631846350199404488073265512918003725052432991984310243983889898486016255409471781683083913885357291924262941519958049520125103959685242273238232569690738405952831316081355375167207218406818544810108262416273405357402568380295973133764875453239663266462142830117551896311079204715671452886064832397094436461845040433077668745505016451297780599419302361620698760098401807727249632308784200874173682705659114251834293292903991052693983944014082624558131639140717490865900799826590277104528176418690672058164155052052208496887550628728753348728805928055307664665872949598991037352936512940333594663595906650393568897350459330996741820032321686614175914268085801240857030389776488888281538206720742940047123739366279336625006854370885601613608575029477314247874880162470619965067840197581987599591432479428407396158314902918838623891247817710453735164338457848493574960398533300723646916098496208321492828775894858041660722870992617723801202860293082405998995294799047793737167976652738880421363947225821636908496792762341529701182064381209816693527049026822107946468030378695433516895892360230960503111832181391646146474266243039676350045519390476768723218155380053841730798222445307271907732569212917056553916574611887905771793554652169191743952113813106842703150523842689452443157046635521589450356209525533059195413909033960320374052562536062267146096264429516913783275450651800250122732903070910150397156846276773205404991588703761745667433836146522617556398657237658605231577624727342757001306787897442631300932093734686344286825603209861691174160482951971758629030031915401688093817479096733211962304568425120857871771507853760529248865150762521231376938435391149325159188541411155810603201369021577184037012001353196107803061592631024690555380217534780338831872171657543948740274844769453685965626089527073058677196281205877811408995886712183308007779688275594824165533756227426196736270029374917828015148559402189903102340071531666989046638840780637255994067690231782538075291385640253636533815815488392226278997020147251361175542048090530548554808741014445333756446509264705409469889209909816096540549617139993090959310091837894535373556320293446515455244709440613946886719097094470076354351042649778589775698103466782045077569233500147666842771565016741075679326498932655500511902726866820279838076522672264569618879647653031305932267220085957637539960704680303570304789943143186198677556952999431037563176658851614353257300034982230847897952481182148572634717495066850008035504931871716142497154228009854949957753100738104537792015548906428168374844365070133525789307706877444595512784042227920592932305504293222538872363817973949652021948327828254421872361787291800577958381109673403356234811838106203586709432162666607908483174153990176139821503656356909919988442029296071238576517221167450244054797209481561365536798936127170153297402996333149777984826483063489990469498183915249208542034425239388612592007571578931765312104518121016295354945792545519943949905370533099656546848683530673427264790182506855448278267399375684236928504318398916852862475331174918790685980016983399417525024662870557635053315481598198678810060352850586150874463590932250623749871176575019324076044130873655960305675979818954373912269769223392521378667517255515815861924468502826647170785183652065969843733858074156226603538499168513697558250850436180506549014887956959299114933667301686088555807325450626512247953795734260456322622525062120499654860539625351738001177057560022302739723340306180358740789879294840688744929532099105253327834885565545419650185068647661232573199409141735547226947249700561722563368107107869473394450971899191741660132246991516813531194896606146311832945374657999577383478972319448779276643135587975146447847381788433034639163413119160707880712825034643914196964465827114230664380506978457068648725998453549607574405657840028018214132187961227517326458682590731094155379480042836933449660792067174265086440735862278433840326649464269052471868188351378177813409435670415076188461057635166316430396422301306399536703577735638349285132721901738041953734815245580232136369209719455577765846306158387743005780613718260808621044842336311484114853760933882995151636153318931829163529062989282055416223376580582059811615414592245566011983837825566938138779713785524596959057277825440783960648364605461290754182064369192664122904892303246836777434892856127298951427940043357128487587609477467898456020440663478377591918162611300196853466164660897102529092629499425787406129795105268924484791381557346285189645013948676597185039064112367578430697652422958928417897371297400676574898791590195864307497297687429327460776278998044060614368461799405923802762521237398573799518997868547146168123486284450471380713485154172147583761171437882500074388289920600864446434115010523758464658665679482409043691849344408784410189427246867096371697699242928588609315484669730817219652738653373963772073629449799642909660296402247816001661899559146535185844651363390617870296977446178191471693762237910077034313852852461468975184409488846923787996820868663291138548951876645601899402645189656454497174714376332858038503315746418509212584139183936112122956343685788096868678133190041884969142872868356983584703507711868563726517894794224747168654622520096984634331864789524935035780293166567991318021943276824666290281480447241265236510048619693395993267416542329251679116844634227760095883503786122061577046556361444571579514619659317768933096300567017480579059920007563266091131570183566975701594277315127444260958107418735626247728341655828843476636553337471826267040069117273497527416516350098641603724875877069824970624172106762871193019426916296707500920516465723197420008613426785439357993473886647901197443812337044907609798040235249447973954899716230653239046503923547351910318947359428254858579272618160636641459813570664182754571295498073785225005975521450211572807119025215451591690227435945003288256894803638390633931437782104116450248062909992151763333441066294016960478794059648500105578959469917709947797273544667657587373439963203762342546289363066829691046010803800328418195429800450628086766045384740434538270759516042638424792400869169175531055937966759149593925249327088735684390439287482781185318388600272928365199950047295575834574886664515366580597950064370160261848925213638018476335244004130564388723195237708721891400269868341821975805968555569624322713543896185123221504307972534431805388450277121611260663195737711818925696328913092130865559401180425257620960984886395085712805182767303551935059466983122005561283454094274071544081245156547757022779439469512695122512865032753669255934383141919471434937937946426842539534524946707581525145178439507647149824347195387984065246834273569991716083341165660535532047054568313927855898301370193312441605050943900274238583415456068021815085541991646001791414268754358405261953873938723707855138997503266304400238110495377684835871394924484881271956646669335099648265401518483825236612792277840729639745425218568248387953477875263542060371898230347420628979354936691686669215405525777613568693843083541271421177903034599795859879149275305205309523332532312075022961054638408539154709124877746280456264518155349256219934485269157601973402993389557060425553578430595738490153407621590999795241424272500748359468936297896527453591424697795169871123691411227350967235974419826248241918888073228173635975255999972475946817120110341060260819310929602353119479394680188622719739996535156955735872009468783623083253919705020702113972638175331246341743952038417811252660919148062667552457933036116104218114811008918396865420243835924866521754764015684284653105570417785116578875895896525388191822422942667686875261134196031277246852428368891097009535872339387335137459935004315384242317596850808787404114600137036207952809331993953462318556045085273863364398189323395690800431199894692520052384015166628518292056246103110452167948573976932650770589515446579043238730912010341860722921063011498696215259560224717102523133720325317580832202071055719915133553953996112134871095018806188258650135025314616798899539960028346636879136951982708014399902598240856458969244836673326233842682590555706272524647284201457037518816761977599060819323526527973795377658836959712021536746781324161385685867747179597383457206236468829168561775792634688118133883704539029106432526097848126198790647004893924977902055952011484451639955238459901117760364709516288391969947672188559025872629839027424653893657920736615357700650343967317304122768402206545173306456651451601451507887553507189770775850092372092299861846993517949637048157808914490790512699665256530862235219167234597098299754249348231334041368932075950603589764989009655427238251171371332706746302820294327110579018417628151593464043614920722727398806105856364817178569390293939266424125104792826393351943748055529215787500503357873050961704983876766219963378127697118235417268247822121404698590239473627693119857143685458342459145395782238330068269276963700065824743180503658310633021684328177649577960646101443277466335097448695220339129727666505374457506841293764810947868562972526004829413702460950336169473912317572853869446420264545967297487564178545663285558560293979277396208696024498160578018036936409075896468331597794070565840053573988880440519256377336308224201745273961320180933233992128896389340522215291802726125732732944630274714230014986258665341655842179773321003549191604465071835851586894396559624888781385785150864567457468783436213926659082663753400648727675221495576991084561154699792013440273951027021488944536814455492255641327678382884541570272178133076945745494724795747253290375891149957758652225883037341741385728873414707355918143298515155643149904134361525325407915581279496879258209578754433174384680569094684492431765863863062407888934997745507223378078015415185325344543998146767609645679598902718584290345158354115079768900909344441428895934787178456803463432626169092695780931717400327068910516623830843829163878808175381535592262950281704079968709768588931391437275994083053359849661887245184851085089368789741232515140478428629314364519351880713681265232465014264185066937904050972164265504901669480251745221781246631332882415378145131360671708687254567012014402594204368103655409047687104825597324050561414129977522149043129021112095314486730265268038871965119378644779921730150687490200803258780839975724544314427714942535626049113593126837849908053289474267714221303455648673303085028007496786656384751796730148362776262311189617815502763230629110918095009993548636211473806231221401507523578562473977666693308436541420585056250397239417297786474241353419597089958610281494653667647235307807341573946920928763815109617537120211007738215482402674331359215924293868800760728540298093396130962178592548109955041147039384584220472985634757488565768087801598425016207568301138607848561941711702124646657077079265113618618923951096146892977880081229764402449388370470845553671307886448147306242905148189311083765493767443666541013427118537898374407518057409016022229346464944317829865934822636471824724343415982214887713233073286567393047612658263890927642977799409964107548057793130438004501480427104791510944093418854161243671573182489850794414422582199632613428601555254520982323248809472855770278493773488795243370429994958323481588333753720971552222066170897838584086823722849932251003133351389211086584837894802697804136339004604953415483149302209908329590551679505999527762827345705626232354733823958440861259529119019033683122099143840763749778408423002947441242325752548426477324826792071535314024896454586915129267569882877338536022439421867909465790125917427625433809536274558408126504456611212791943722049067722972403579306955555298771258775676993673458070723755354238860494733809130326186418557186521542035468598207292029124598551577621143315537490047933421747672975512489864895495513997576295452798449623027345810053839532282663622774187525996963204095674091004915577385349273907567988296791865245001913667176656186757203850409024147148301041090980696953260188741111490112150210690495723792224933240327122472679199325022509044127375099922996376169284003172230255638563850647873498722928911143365507902184795099784877061665561954439825200426227043243237675199902990631063544337451225445074851038802175951768890489717437245727668264808158584819151536484372780963304315072873023609566417821696777032056518735349749250240225748037618763097040467448290936029264243924628341239536446823603156597712514057453562144007916219615169741421576478170475387796207358025448313125962601157611665757986181887949129925584984292999128872581324491644704192299620678898506845620245508335276584444539261919599661263593972927282836754249895083663537782239218775241667218342466959716615000250595503958228201087389968235469448320660244803636935239357690464540658060682569303820602448827427326751029389328293656575750381383334913155393963015239420930765393614453216472856935926335902024837992900230412138520821160887078802588387275057933790182918785898391242827986322462344977095400233167060648366663444244563391904065349317445475433666823161424293338508221614273849343122461981473369895115488178817937971103674155642495246279213028390669270114262830567093305077884487507645577403228682564285665779553823583807871985002932431829426354978236331572609944247403079089843583664153783979205895475162322589264333602410995559118331190854177965730015474234544056082257568128431338224913362113162527350288085459231853250830412323195450391525984054178896820233933427564866784952865394194473400779489355900078655604734973970254088025818484071560296778997647882435746607656816452560622717848294971076896581049254811684579223308564095068412340402565313534718046206317225693207023853402924967463524185427659982337925282266513313687281377077178565840735687036516790207939758092220133083975922172060261323561163421266466472519169184240758517136756877415874673502430723412534905396335035629186543626044378519874329857968981474848206908837282455280984507139941667518580728623832648447770837640470516345733875331678720913871270056034125308023827411999017319477545887090020335399513737827992327183093862000907320886858105196023714215725082018658612869533611622060116310680210723635538955876010026374293147644191795329515721894271950939275873361615924946780059170830370806091740421962888293436093605888740387965170402835222436677553224847088709729804580763980846754292176013697914937370654161277967598287650183747844892960027015957022502130697771880626278756656880337683404682768259165115757969297622169804486982885520161723287324208654635723115267478341329106242508290694994342204554458610761830191909944921774194248266203093336008904919219385033498288832543275766457274804675716807575716475898109008103549871637682874594905055631114344973350765617384415522023722590876850936237361679404336548232985609159100306002333076379974060712398444124654504779537404696018499355242977429381403515126388147365907101328868928340119065736376088056621909615232936367229819478416054390652742735070020574970190876686425199329566879530031803678963413925604105014576395880914805890299522466276581294791366302965862236418673590678702694145945122934041918894302770484817874048050015550969705524397339788256444522797766326155784753541388564360181138913928565121506455603384799254791834062023647061388358083924662128651813093301163748508645447312188008993340737440166371659342951024937952800959708426910355114384376422467750843230939699444113329363155166978103046174879276989665699700419410384991384457265508760347389831976022754048001025718140720551975463279899570191665275734136753971475994530806064711377172563625502999944006110829899088284518117583345766816916190051522616528217711715958045217062402008221334216933322062522242845020205461939823591260873809641168742545965910723970199967828313266054565120819107039426347274539357126322751526881771099516947780688616121612583025487951894591560152307238350421103986467090299905418586492173682765342546294621684121344809167722764123515080585396788381422493846810202021597534675563125200006639611264497972062165377387963074248990676336251814032478458134542100443887737754734193845170674583418031682389855672650337703105924611063983564671879080094063372245865466856576349044255336050259435271733561366452230945622026323265471369458352676978198325819016038531685198114096693797504085977901793285489412949649038210282799535697606071996991313655833304134348180767914785874969873907522843652633427934225431837849590135800474110257153768896755643957283474435679796988158862532919620351706131826215162481234889474316060831509826615782340501630854625702255555335007161967103357646772007737986449141308113079122043491149872744840301229152617218565393323347067003701777625868699406621296635391050456110480981867208773644953401272710165780295115571098847609021908240591855443903512507240488614817398162306886375345534155220189468292119373706988263498885704085389232277863660948786314833043908681893065237101974507743611139819245837087742816067623498507453423783662537891541136475182534359121939657638764519388026648177488991899357130091443359707884703442208984255569213187784101263456920706207444942989525673855676696033130478421749429668786504156890862149209266756071968395060538101394673158281787063180057556959836023235311007332967652387265914592735245804551338702418687238548799710986951470782808791345581095753532832048099241057064441736604409941606010841896279724277295311870435990009309564754942983206375055129778586584037466108199217869654585388422692359595890558326051546728224681169683019052716692870766368677841667528343770330714614224591028771520997857835988117171870548395132258355773461953794257114237952596630144358279628738111077701124802677952267817509813753100367044215943226336369119882411351788494746309460888979555573733482653173474987892320058402731785934456190899040299321816114603255429468064104994692189843870193444031656100446501821422538876377260460659668331412946832015283089740765606559558905296451435250491700744984792885196767446471618250694518909049006325767148899395705309920133653383033108521343516708650432145254197424733423395052018774151331699382714852973103987121183726390601452690741085678442169967054396793047588135659355150681494282424580667776198334805998636723053440956051262729034030924911228327515847149571510162937588328381746476392949405662233428929432467169460231553004711758227812992484186085461013332219815072962166864095998287877832389750366326773882962203902624383884351328970003059436331841306861466948392085085039196425166889812309289324607006861519084006038703827955489382119836859307045975203219617067523894990163067831964141233638655646384969191293738822765096618728475572156794494210582636048587048587872039927009050532764390758045270243173467966399121913090415998207435448314842423030820945937978177265187011138276332308188968760643779797649856082341663986870643871167205044970839243533944605331207234875322910416740146371713413003828636431951192171273526771809772146786112589763778397769530580411570591886918184609485404260051627147261510455226375658252469572424074533669481285387462059190514694916072466425131560742386520283784028001784353019746468403223387814963252536197791863960711931699413011430025446203717209742087165578544928259679554651841026619518789410732640834340081701987324087546027375287305341320160973581888775276454227842686240804385615339510149253110292341523307276206098609256474593006412730132825621237200979700254310830660937461959608551029906618188394421703887720936424893970290346755890932672628441474008063583273048067991909044894751813245906938134988198317985382306861490793238053881078373218069349883756005958910372510553108878671588341405252566609432882011452034996316260530647376934245864453797675077838557266432706765670062306461342518176385169212559007281271071853640720855977283864779202640049201243913563896736433329236138928431189517209326618822028973233959371563721019450659295890649261883590187621821142338206634418720795636212023898839729580136680445830124869258467552146845797337458216542691407246704205099054411064729315796317774334360912950648018802545294102690281567978703291592278821961861111788477480451243431384614628024021070598718330178946646762817362088815193785355829698709393342511385669661326340455319044891806372371716950897096135648464586675423996642192497461745755927239833801131077473635529186176960754495908501081879970266461574193598903269028221971353388991089882728483626213405014683967163457951407737028362362822160955990659170655993739926609473681524463916835177181521154663584545655411655261602802179319032933088594686282312069842945988919811263398426326738956342251871470036623031522162536511773822879844723645642065975674289245421698345450575498911295425702017323005525440112292989636815166654595253509268710145463342994159589342750487796495788558436412500700236958956299390767265659350152497331337090102816413941032293228452408223745824937768158146212427302160518540938052710690150679187734461793194723843209566001087408840004528505896114042357361678248824312073424945871986892243304721452110056715851044080848511178435608703241241603851727634796028230103117805200082668848420901110771832043750070149394379101032954516023114134476487718292405978380776035129590382708442213427763942398724837409366792746481821242938448800566214614418656962301736053664738424712857199859713416440036217285172731832871278928104211637634073926242469478469358993098548272212295158257353753170401861325824082946106322029809304891455109794858908380313320657435282503718886480074960932526534320587815357998565410533764447336302568305910570553976174793240472673396466876036009732614016846813945861630655983757303011238652473898797253139070889003483414454786670451416426460643302739042511717829827621177472841815413282996274174519157988338679284922594160394824117245444142666008989193428529335047138686849383634099521507913030917111004096407376470044236092754172989048943344953554491715099193708085088368872603051016796866692475552192073386650818542642145040494490747443247394864723622879719135693743112788597715789706295052062148856468103543509312656350348068365978106332499813875418238063459522651749905350178281072568954032322026716320764057083731369244315669745664081022281511946866804228505387522204660257910978839299461655033707915464841505990037785855469830146120009956894176824564971858699107751897324276930767916877099341673552431408529575313101533057363345378074672384896550006310499105501616403088107454053602590882352725555855801415494295614382023358160897842925472205333422473883586214104473062951312580383006112392777615309198012001824940838855883646804717186102472357285121677347322494982958638915460061528267511986498551854134161229471916218141459463395122657525945099257715072424560919708104333717575566946425162139965501963092950012830689736337642461374268774801670897183688085401353614136627203789913708952903582206343097351980274232825836641845438831971923154431517773278735655996567647810405843968574630043265596220839305371290268187824177369675718303615934536457402271963516823415496107222274659518872510038628550402165240530011958121402321639764264193217979228691780666687595137849891659984266193413121981894148236112570060548828653862626982574887431546069738473060466903385119566230090172871787489014178558808551073853096196717101963750267230405496085913085036198812382311199545891259941307515298840183257038521933450067346474702160804602972025131471906019272302272450487775341178066786474529979390570026586651893179245137820136837987654532715628821422110168669315769149746439334860122024723227795313609087510176863149238912839598290817790649192764793682637229977877864435032646693591647364089011017389894939453424942366101848092581558433087329683411308228676125581965890651945081777836881840947049438495040421524344703647220053784552681909392242257581467117777417163197768797162451506494811235213865167046878691915789951511292903390607679758090527989833813068955451395473385317638171332356555223667219301699956645210873605533687430473631583397075004296872144851838598182997913392478403677334482374112921950470145770585042413482962329401038443608918106953186886541711437917031916156031540423095262976097732590639282352264817089613960780545572084271264238742113036332789269428541614764051408200546487083165017914480436423954520085683602561806136735920908642368763595645579127031110493155160226001738254896756096787746027628151341839142237606344455883697870561360985777003903738460584424252003883702405006175671595967988128582311463475056933302008127351760046627646570237363643595310556335028377729970472828333022586462847989813234424688098424666126819767789686354001119480414154820303579697567389159461356994213101013733058189111234846954579565713875142212166876601555169588580010540264739803083506055550305181957970500947053598410854019747261978334422746664993610095207463127867588012500704105633917505106879716675720158839365840397835884996328401169616870758847804410739029787165158192879736813138018539539950866102732859132980789779534961521142683684560068579181445971384584161279255738737690940618214718045949388082528821536869689817870814188081903763508639156016111388845321754959487531471687725231346473248844230141874969859861062827967867275370314762981339569296086912601134961254362248587908292783668337095831705075311667965529557736400677236400322734289494353223285256818241050271975856255228027998476864343813756474006333778571268905327329839407638529327968499260225395414487235366032930860917239150665021254495296440551263608138106466881210050244744519544722816923788987496114411408674825806930645312679135987559967777165246702173633945335902387745362794112610910377913784774570502169069744089800120399875240923504920411961424931165379765315890490585503060036014871597332283741230272054299109361976060518034722092679432040225035350975304108849277585227683366290530733760335328635884779163808382472820130668762735421297892889302793621258972276405774646160484234302248073180355546978791780419075078834517322845811970433527076788873547011626276417501854304346046950336895909720879665925584874871660839344739177255947732999552613441024154591584631498085789296250115662281055392709555256900292929606920921485257513303906331474698852794919215874741241439424801505058716836576404875183083397728085832852998528861835449421992557803855759163103718894761114542397610224157551008315289149196177877832612012604092110619108998868364816714424674632057528377071793741066184037049000505275208091407952419459027561434445333294782250874795601452456085152248807139566696080098970677418070062400967329695444112571226921250380613820552212678104662442880042223944940543836198421220638953514896413139047288924447998132999891066895595874669688656980950159321316092154575070979060543215036464957906700023366391700180058621892495931779908814907688380374905923023896587342442289347818075056274809164674551355269951423267788361868667733799970141211695388358015901367209667556223359062168824166584887761061065142398901902690363003720385679009372723650243580806574529939402224876866327498705288183181807058253410432770511734860029898185245457664776516721289657529131149141974269641908961260997169972184023423424552661728297920367436685985840990297433023849139968863768765010072206466971889674065421741176992143648793524052047363097634953186735226284881784927000505047829238770927475106339171691919349542362025076339874307160654246857211711346373814135323017505453406295316523567673910346546023060418034317665304607006059580470121805174982172395891015018954893425529915578820215723964980319769543482529854514219752446077954637327810850118833787284293151297309548015086983871427249848683512355691984405106815291948068879798181255503530434087387992607233172508968876321828750407299326696209310147171636126608201655884791440080518589686066590201416267018041140543102128710391924183723807951675450593537600327267187575386975604084445228660314775102910120260621354452642087244483230258723389667249747769032894686131642598539419269921809606519093633474768907201060170752830003928506674842150991861957214663375526744970324721486064657492116172771693172701352559562765237547383377870219129654901083369794289720619870740109368377327351219026771322075427115466750790261828795696034377297503934830829840728592287960331875296385270215617655085350340305948449458059535252552372022563084879827091120668027767720593585372451625733640687770861405343703411773428395647974441012908423085786915696048370247012182526458634229269768783431727477164017753736256600886441357028456270380947610671502394089039433737107025131947346297496143314762324239247803216731948673101175345867818647704969484688115841015963567773562460393477680601506026490048877454167250810712217917025781059677910469592508064523667177587561694524202214171085139818546282921255860448298224654886354294142202022739151316634552536963022658828017192243061503593188828087156755971186243071218058122467481269385259804732510691143689666133227412006288291527353752642790808168026159283927218280106313629640724299357007229416156973257341261497176845745331070179548549509960772713588491122410298308217286938066472871372071681181823245458094166055435098789946703145901530113563836626433281624695832276844971865888440891031960269691816853983864635829532438450047798433515756632074780251103962195195252999732266519032915815159258816107008026533087378114598330909917149797920906790411113038530328377854635639783301440784690419851360004765699603544469479590591732832350537915179920220850948893029747574235410831852874892688131851849160312863919149141289775396691933099364577508639931560660231267479907825923275074311042370323119885779965058270907665019746682847516672204454983970785797074731567556237980994539586964284107896209805502259057885743630501856015792376742428721831203390007236625147568914828305142328096588646451254255250368174625011306845981735447962298156065916135014499428687954986936925104030872369507873328443125228278869216294660902749230936989021560295108049342002461072089784129294059676241061299330481847288106969121230501896702127099130684573118800201748949595052683458833963556072023425660142571671752690619386527313071712027896891776138575948726461831070894351570268865746969602921081172349831233816630008712038317846307961688627895252874601190741282403696546575216854729260736693848972766034670271889264507329803394756398923573832703460729476848709882070922023731946408276061422230984222622950488687278091760118115153977415423942589196101418077966156725124259387413912706263711091109517354444203286724477990446754596728060103556266078220915873085280801811441595404010193816193362671061267454338135063699100336732606442250376980818973811118696218398830723617304446314496453944911357855016205062635955609373302657620465707060452172023630848066657199204617043354142069384522399859677390827020224979472568522502195055432701067050809655176990938031601061184085377923589119294841680817633050386694230137598536775049766066401615875612539621003214267761976678127021530366280954932779962997467832253262595280042899157698392444492162306707001285043937982181442472356315534403369820586302844699863220644018298725976576369216064118758578261670161711615724814455986734442722709272421794742513198303735538508267281095873232630505209417060531508749015591986942169236941473302419355102087899570246227823570606297344356214541597530687834392154644722066608162013292756099398836188677975917032704418361829632486712734760390948826577587569611877174344091097804999708307889896657511556576495273287044731570545256435129792850536184105395391569054004588331350608739737459727145778685931919370220415596575807396159864552533295567938930125139085877528294090311068473633499955424435668133641405735317522628556239696175181041648207152009761295965006659784167151684694340980446036163896129949766895024483707495546086143582929814615594013201870554898203279220408547540429476336707973888128113591225980968662159148820132075458683990428351861999374387168859517068239999201368838051598808782701605335492720204568637474958695778305767023809777498835310943441164895672687948314237601005632648597923917270510539707619476542153117878058253721626213408487745189236782171353192972884428365600042176351878068049079692844983968201390895685133599795972795262680854129455732600756234300762211800141248296044954103075899345859331019744869803676086902999697552572959422643086005222481695578960469090599571292002625635358794714949202108931178703031987314588987708502220082007319779852246168185375110961683910414640870552718436153426473197319235401101803441360180065581432731675247897988815001509155863710792220390190031365301531975253652992433924405048802660983124676554864764278638238301611092845812605157402569200041718172775267587394148212574392724824772607477141630581238126268280534286821419626199059754726824644189233343828196717294346885030094301555204040290657493573436332330286052589663506451672063285114063667544014171213712386087174205287511550997421615954872608359063663242336785265367014546595738935942833823822517695375281448908787624265403642201779309449652626749943283906365889547427895715625069836727755275406392229546401460906733317244683622607901243944977651393969583426004706993613642451581638443058245472403915911178495431817736320671898972562334482259396395516939618879278441840907409545248227462402077852388579076722360312108043117322871387203096541475139069659325867937906975033902101161755362746633472518619966973831308594120599134680876383388776645905282772921485768594399653523366082680139638182666575586143002901863375125901564462153685308125267619087127589868077328618672523427050336120075849791486734374318679905866216627206806724782999492887700684308715354159502003618613003779874418453128191328242299908525047660986009279625830473559331915122625112194801929001360233176579433814602146803571009627769194180489467837707418070008657333992525770518241381903279018323912171899033619155017346328162342238428556989225408966443202682686080344722853572267503113912225930793843729879042360396414829484802692517096910442677059431856571909487691241963086161615247137214012914551293571485343651061041242313248114625866934128587650896309838158611341204205706062624645182494361861361609320449123753982685753468915088498586205092974502926437571984105843848106980778669541448561349422018682091534794828423864541293472863705376129168828533403451025429934221782686056489070545016774699580521380901915480021611228559274648161801362865698588421015938387863590072481733741032128896223643865312787484782303781516297702858118815581983357544177311423798479288304389257592946266461049574039706937343132190943948588400020427232779473080155846804389616242361777670637947713114215888615311653814118600249712047989584982903134900833719555854471352903261216411787313582935910458154958333527253933319422580919636615914092993827190972435058426854293041241855563471631471069213086671939941045634377469266719858206330775694058975798821673244227775514395245683338428708341578521086532014827185323242738191743022718365688095248601650285199476077868418164784177643654755571311673296888483319206191778285347691120894134771962342127534471989960205218097437136472486244441518946422645483485101086964233408855115817278452407296729495031277050162027609655372168471728620065812821622225019867789386243829436204926404428514997158745767861514786862366972898207647650588751908993722937624532005616802387415864465418418165214631967913651938463495859496197872020250766766473691889867708557991165435194009293993836748792378251906825138895651745341213276743447256611044108244309438669848089809870959401332806200208683439366500731185881972821738221622094609142074796908723908323796751142685029866631041400624330398406360660736166843694635002288876318623137342056045880206715708339200676844986955569211610559094638506232349632888237912876875657935683710153719875448666862664527998410334514990717801554042082371777895092055925665124145809749537149298514766487430808154985462234084742574633118999487820244173284946300975577267797959093691031632577815869628811705343831826069573677930374908075485473229428597434697721780903233853837298774322355132987858953654735763995575718612353317502749265576304636737388044165301794763609712817020758735505569288706538740108531249995688473461304739712103807896367918623237349403605205096447663616975317794894410746585645314608863531480092817707921612675312935636885782801814484963947912736886628610885088318816816151457462643330938958548166058740760593330655509820838441584762262440373867999651303926368399045600297415332505479227837901469272843094731685794975430995993507955812218651774637111248202299852464865097717779594032404081802115779415424104178951049501025927335459411418033121045188291398536534816869226720611855689116739371849926308277102445337297921438437795905426297402648977123680178618178124788821330167493831225183044540404709193333761574113162584287056080946279140459420301613487544097703264052607049243417520570090569364354255960976406321427015018760782380488018800187753166229666303127781786665915396958608045266608349462601635490199405217461319433380472557021582601154811328292774817010838788845126778481960758202218285092758324112861504582100229590769738156137835911148353195578557295320308911073900194458257261089724666847775139539678093650464888105690270404802005234274549634030029503487767871146617197397674196740026147266278201061618011993009679328603368968806036492797143427003711210052337025295994287011664881927666147426177593273681597065793334158470620166718407960696168511038275870740631843552962520211137345957019586621377518862765345324957156585850987173968922703277339810809030582839994074295255768104738715551874707187341315120481922544679196788695507368544781758715179092150781664472894667848701744000062893272341122519997173441321356877887088503768929950007914866749399748173790616910751132965100884133276167003887198157993802622800082608666432670043164349038062654342141599850048611051637830556958001386678584650692690867339699232444156103434995202630445175955399437024913817038958686909451882490165904623768284786979564071337158871510243205209666111455646421312867356678713135830587929139854411801050725019661353664587991199164879916780962922255860558214524723176418727825063743084426162585499989122728554092626588148022759057762979377408004727582078449901193065971493841643544522275297978115129989369851698390460268589754726649119050894814943188044685728967748058666201122435054590091712356911305938448110845679669245391160633451959940642595204026308159111486065151064709257873434627499914505779811012557128467846294801457925511105187947211897193402807522041301125006018713820652846174694493857557244052082599218325866344467571158934259607505749303003157756753466465135982487461359376554418533053257092892395528177928765480595663353300545218467735685275402676178305006463947370366682963984843941290222784150250959384649710838357456956089778025791007078172653879106575799086064239686084645691589267053086206908769460939172981744593357921909428517584942885244035093802434340678655536647782870241041665370622671043245408722481704482526627869239231634752950341777612418617280098695897712425676974983141604826501726268095969600632903101343041430476766284636724939270195231328442652692849246411666549407226798131640550773101508452461796752340461547897847232620566900025571665300031266792428015780067108531109359261498943323132047977312830860698553320670976468995432584389465474492489891845185993260725314507990912418204604035089654088211410960590129635396219894025885642109507383025920622181405174477963390308417363623027749077263141355756461661217747017261800409417792249748059907466091558563013948833690279212217242541018196001445989432541514456562991741353585268330470000103855595169187984673167677758302639075128001390748437578164906793702658053335879050256032901297407319080776983215915072154998580636801053061717339364968875263141475686896412690752687284431262570962938697809021907520650367645399307542136647676506789921434691159342704427374347669762322359621165608722852133449451041160815964979073893204395759261835926227829756786307885618167460318940556543596014734286215636642733304087813939513173469360071400495549031161538060641492681949642805484657225387341376654983467610948721552218089737320758341985129971621623053438603590130674228781639405431308805170519774103208892469984193067703168332539253314925082414834358838106700796714828569131385264140061277112660629277497846188974162761121485275057856070824566090281035740884407722327743356196925802580662702011581445218499803590874354050072405436410064857000301770912488830371967083821557530893624562074419177897713772058652226430660655276210970956427666334833781084944092253527044298624072623948974907528228652824848928053891219714950316111396803064106986779234717327548810088703218962639736547151281658286082582504402296107593751167646429969327828150473225733742250834441978978478098418665674254547533226677173617116696914013723740815583943291965002078850003994268757093878512068045545973540220628290170525721075576613742085350183479376471665919542781756084075887956502143816551209977271936471136042623752877640886829157075318553862013186122201327730244117066082607291704592527273392313977537911250035517340353673834734406650240585733964023055324428011453226825075320807564213244794004884851451266805800859083561103379383863243566923096092097280998552053146500420087494331169193184549791389304005669766031624489724185681232023762685228856902795188535118147612641003650903537037366339285476654569106780529549457117461622921526065884483887996690575512582700107867404463484072362056467523927530679040692972996273239908950318385547893860190510045613999175766101200738202238390514340718274428798197922078633954700845379460868561394042349925518816668112082611454302254675748090413217579699892260023835863073926205245531592969844803284002156826658185608900125758422587851104094375436726603912704937161875940929788534965105745307094316522660508345634823989356959940652807529316291834740909465726528743868394828703351776572257360962153927212691295169658478832783917667921508646762635889556007243571753267240011319175743214502134038581975264540166364511030516401676584475661818040538443746967261362093475857255651683115133457792365708255805281258676168211036560811381544421151978584870909079284824015091077736343365217152034436239058434084939599123031676865882691021130308706643990579737037277512577491370724798581663716974461758241915462458078042994197770224358466585270498598752056366503068719226403212112179197577656326778111906856126658669213434482103898758418829619067188682878069438751199353263657326276747097195922282434548060012459383899248093913456320417494322208827661470380645437721637148984492465010178059651826305601846938982275473095482757796886034846563262457148262894686897307554537291977245022143931883781121997432652952558817566186744208961463338614101452896414437095249888168949758218645651193071904722851575114160532723497408030950149956689266882589939079541406923675271759610795531243709941937176335063238663673818066145205529985588494717757173213901961128107027762600061839059100728959152392223814129505587613123734679299786420660191129592218753553163171347595704415678324934154808156999837536248108552216688141694194486942656565714509968353419743959014401816842401892448421627250438105188862460441624289261397277108860299391089021008466565711685038448825195459979533017527125256451117172191582275674394590157738794697329825943309138119004239113351243929557245883402148658093349733955744244922621282308671579212708983415868296001442886920142799435482659252354597604142764719120215993206227168075179950150759382155411433189506023707118802220143049520999851795010443798971836242227450078178111388289521928302684372259625583362032525768817041062382361722937747968445605648386843699080268219360515311827435377337682300583215519802755144594642565929677396499824675027558924453478595676901895496440384658679582895689676619801708957424799262377856538236925727901430851283272498441291573146792199751705184625248836617995764041150692665843330265427877078433941180848037667000674006277172443110632892622414386557892265252388362094686125095767409884321968835463896654111178570659651152250333156311083973445983784121106759004806803271336866243282442674240004738436495518333850650708176607660630070901308947778134521718174677720243160782205671060559580477894871445111981997940159036864836733312826075369542545454565483726318793212003210807814298802079745126602668056724848857116188289713579014720864047549608851979383479642145779547813023734814219852817002093304313653679855768076922287492073055953819711834189702734859424594393310276213216755189731955984535587978730996734624070762535781687766017731566344397341165861127029570649859741434449599526115388975708169542318899044404077846451386192463722859735244669281707129167494861719677042703730672892617283919884716668200264749242101006016122457588479625335106559412493412269148020337736707348326408758170594431926736405955185599141614252702483095468338132343576324181815833720962662469308633151683971779860269497017572153854786803521349864837864185991601868873739128983187662638936996184463106497891806878311970889960198673780743769773420593327009439379606879361566360166723934603453310120575348398840637102913294925768574555540014791850914579011440055820772412867518318591943313732670566018256735342592155071213571463653356508384190606772790670823464671614173647174250030021691076490194681264737509652386984785451879738268328488722144489354093378850868637947566015285411507682543164607817626134097324159502723665853175473500761570712321487250318317441884578542376672814080819387243770165148686635906248740927857897251613524868209506531671623451653392949127575149008968224309878710712186401523284477424289498901724272710182072433255782378578554493830565394889869983169750157224099896261743862631848255285170068322610298175158380142745706870094589546650503566490735128024022391620710350516761765179918230182698731422954204196174669810993092766220752402784342869037725695883472876273113100995256692754449200179857938612861951301896781545142958255974119164818787470555981019481366807043175660297001040305833000445366012368547223792069522206854240079267360856321907835258768419841052155875452525329767037621172428590593411408936244733556335208306732633669524563293957228811468530471123943265614463819471676630484348609868862272592080796032701701911736270860419698065007545935890252275862627105299864510530919305913346865813330280175696591347032466301426320666987699996840246446479410706838780958111451209494254074493341347222617380918086268421944817261832692959892552661293173038067609539113237812847096802480935300398557838165894159252255858479673898273588069379968192183615494840863776389577753402321659225903915322934964582049551409597251226755431891599800960693919786536214769498432616650155890818690476987185966619430068026409239611572082533831874589918063037571589462639058387386616700040695850392435470466141960435663481819836781315737473835524342770142468364022140580257610573941262719654991680743203916482392270999281408494352142446593994743687498887711353427869924209348490067041658423100463977730587360389703152773149068728015960149646674239358493282932875209229890590564133789120522571844676038529387484628222190787982012600200609048609692084643475824403730750085708776886222610854007360246031814658579975541171486743185294067101704288956039768358317710396811941416808879116772915218546481920545691114849259869683004659461278654706457914042546231297187414471343012566836836041870143975320434627233045799108063010771797651666675297731725427910659983587094460877631188164712889420018237522125008055110689378774204287234121719316816045892585066691236937724902082928631693437456317537114802668926361964761325901685045805258511280305457825932672300481079916030629335432981791293754888713067820748407247826915416061344095927540298973927871030491178568722385442189830739703317091037393851585165377567332709731851447793006725376204337407720731325688322604263025574173572822935320211245004143247701445650011948232224570802928849159341325557827503715597147605933886199106862467364324790796230721746585781462503860895954586559353557469670601290503954230060531522907855937137993991652135144304651897773532480834792558229461670125132488327537737648307987431623800472889324615590688580087629842684269905543553670878200939695499116641549412321977037499017223046495927952202946451278146667609335029235433392111420160297404957029054420633372638102737743309489881177143759145801506530865636066964895019941429489528154263066795472723630620479250210563772752181842029971971210329803800148069871553317925041208757635880540110961255412715271245142814704962236903306355824551104119617976157313684788837910635813635738851474337284937195236755641167118883816280422709471124904952973620712569115273405628771478923940364714427930059586495967428760968668131809802394312340601071769589817753718882730820678389727366941106713114181713238389805841141169846272723413144170695359166600404055915893163941314516130946514926028284624573302534748363046490500589690124258984479078124279136931131237888615641797715041815560522600192698257918191157060752496530758684025155266034350256572059931729705114218832626447953349467013543821211052325724173967382684080150058596742670552969067902963249439758532353164952963776301320010966072406804692719128592328562676038222111588904398509253190751432183516110746710560030326574751328944413713592663478206219212869321857902991400602045525116707273994947547614944759555647775380430890821289639350267340743971490071147490306666887623946602325571765710668802213640096124787337461945835714626582427612110373260513556234013670435147809330476347293591101402778979141855588769927818378874462490309643188374867868929129270686805214229466336245839684959284744080043379937817819567046292311533422826000860087965667835646349501400308389240980204313360382750939764591978933194483107150144681081416196342536846934845226416816336569384891598078254507512775356499288573134320888786626274535741145584838621896527940444998214133923616771564646600809496795245064520498943982601185609781458019635622535070664899040943191369452624931620139714451758206147236881950759722472318171355691677695984349479951671084313646050749876841995878149260414586701483280580739570506032551386029685160400093130312782489848674316184727422155645527649040384963569293954812514101799866461174892929620064853583806824067420095108617123546591648327152041312609226221219394160981313665065666668128578767945854957977034374286393971839754460032036246726895876547208832129334817448013170157012637457484807605031396664182004290656481989470800848934732117186558186065331467460522922799300221381152557822165434137780024622269011227435973580688553365531748470440808283824671294104445105275157530951962045581838506605718111782205445566741681624693523197629542386840635829214968598927011870672062633380785718853088464723504536386741176095245917676099848979519461429006227099113565760859871966409946257581190751178204708140430098738792286263394096695957952724280263990172465929105884923610991335484407082002191289676841622467097966093169684617710436329125745995066254881882657800103228706903699323008090531267178018161952184522812683184811251114432391682522413016031283557069736390993513745240510975058559724682145110314238011937043243082808103390692419839401878588541922752171724251891196809534966598517180992463118285190391145735619182711071207542770652641562409756917842646710578656144743114678323318415486619600295783126202427726900269162673573672093387012600904290302399642435816006029411753612163380610514504525787284673608879111559594644671139475314841261799286752744701182784752688595650767453487168845202343348939298940292340628510038598050116840010971959322170170755004229449636843600087415299555654054362682142202386623508281740201066229426321059829981407388785753799667145887377150386790902352182420814587292319875532611600930765652760970952008999366866834381596594969684817633354566440198594449022949354672703166434689561436137270392122899116958565192957489708954665810748592287112286729166450899546044778791066607098501777673474399843328813159238309418601070965161116212979294531777452224042448420871614646793844515791948739595342507701378670410761630521582120501213371946092009657593726337200574243546292891210484127496668336806663748062192613993016385732647736429229897467684007218962401765209571130250366503714576893953525867452730371839284255413573570197576559881994985536159174729703989434340915110823976728165335398247566581873756675686922469598408716840929426957990488836482497869701017884001177033645179511336718941770226342247206543682675059442121019522005337723662238756902362920159762117149448764630036676748582581464124532104060810226104715314847737875687723337526948751613150999905581971525098551534634940727567045812279646334080578012545186672828903522495909593755758770712717803165426315035590396613981045155196084331723760652834882089346945215110201190559115764004944407269202169242164740930799932735434006467303732193531614673095886212865105124137147652923904599518208341723892126562689137957315433489871389928497451735347436359764861974004614328842899196699212533524021575777638298565301106385939214408230283141167807308563511140706215509945645645732278892380185723463134760762198111520064286299252666712428045328715406270648999499984173074130345767614567006780066489530448521558283997104519442760506092405343812860462167768602554433246361595818391187433443513363013704473044731523260409040533016112749268927357906060035873987783994545736948182763561893215610594779365567596159607311369378980309024449275363833629279167151517910024737213071488111176397343870570307997187564727374002898459191698008710692544679682554464426430908727188633180134502284053342927970471784940728767176691488965397993360329400808183535529386762070801632405479985729950283780418140692401384299706560097379634997689841334415851886382319246103658935236642368252766476687925305096135311886304384253641470600417733573990263852935681511078108371076192714720217016328719829032221663407848749085619244858229373291668709592183236523190697627587006701683850638854247767532649875943231204833127651785572667325013196720039658219165818349088221270954417796366703357260283875275988730166157759488993117306216473572108134078181309833601283478294266034990748061863387371452558764823777480452009758442095098742045758457212015243535484511302168909639856029212195213437919550497637670172428060700098485768628524550714932950268115491530140506597692982940397741799510406156095160465545209401439878084968362897814754879518180435558052218233062226092489844179611476736201074626171663970795592609067135988731406132852407103594879799032515129159003071397574622087026704100492325851788920054513023517452254775477243460999514713263642801700021886191840374425353849742928824878759773292264394818501209653282604995055986271512658050629165267608556204003771280693582594642018567562547866363320465626947421941066167779436571187953782150621612536187803479629663141380492967320559000561242172469410690411395521801146361511654476688315323012485490211329420997729321836005453148212549177100981782764727988357721267739609609628527788685099770001308079217293353228906526247620136214694411502962164875406195359708241044556025139623800784146861569807429681408163418120397979121210375563691277772693058661182609004647675736186862982079017114860678691939625807438081997774981241791864266927050587322178403852828216937195523304117514938984480065935090125594021088178437359023993238980106770617991006950257038527533678957976343265963201511434546567433248112147827653156751177739885669245581550161681435550349071649151671653852228714689237858012115761298596760602964773876673801005676535380605827117030333644121331587860518231614169229685397388378452712511200794079243870684253706732358194377408387136222783477806921465712963535722888121402425765577353523447084337923995246109408459627997407948150907270519571792373966244941830194567117180078853682592256816551597056855646168346959783560618507301359706391056713945781067209033459348767618454100644150915958888993829914137094927141307871220042420789435878614173275262602728602276176734726251372769974355655203352224468355052695172557591548017752521055849393187348116927663665426600336297163515060162066472941407215785585131979519878813980875592091620708751138824492231926329934986883763554112508323001630943152969246212341013095517953182862373527646226143983339559280329844139547582769942722003633304225842735543900518186054122656607349657189296548799822648875808946159795618440066078368642817243948857396688931451327265644063452012883324680321368451119979540093733235390215061962966230055639628442845871447734924796976646087578693188607772563870534396699326661602895062113195364981931746119794962615589168194168924034261379198898287649913860693207604714399940049155226844451763699546572610080475220480186684286930060564469994758696231264353686069805452204463458800195552753351942223403806798872184966417595004684852553589271721959142412977742178753896809813390631533345586881275707552948886933403793498581177424984724003005477747049877621352834675585129579985202214126770762586518391421230482547844952762081908059341278168285753054999352791058879364370085134024826735676481245430448439820003741452777902509769206538552341397444810297071733532365725811340635996593380504706683638984606759604894218700644548061555074875955761930307969836424773576107078547427176212218507578046925472905177480123828358409616157502419074892758338179106112662019223907043753709215904092459028586773838935729113845592281211101614630238721479138308228849777302092200594391756324893870712845658035108169837997882419757678139347340090242078122897308319816189454406678784377746020310265137300994829214236694004019047132029691682465216464342069573322348053332643072898063031233271224126868378273416560314375700187483017009704683760344321702394148407657741834778888457381434665511601571877096443801725149869729578885829709200419473916537008033352467402828326419170063585701613847229591723055269515859979263651780353539595253948660620335832848286506778743941702484530866293717928431240830690717055094007403397918640736767472605791311665189192471984177146541779125094133269344023672078024801817218161942521931235047414346038771743907282226942737753620420205986166598011144807647944638999506411680470324223753509768646078221763405111644868913614026636373226346691730532105328327075522432614459164600472283205988010265627566732416030374032875706289199381396820149331517225661928010643853365283577087764801642809190559583261789920474371613897151374477133772534087403450944679694633803653661830865388249220574298015619527480981781254737817939247719615088464904241468760792989316854792030934147329858695783046863482846685403634353598569731579264930464571807121778178805597435424342111461080421357646478222681935905013428794862676345437111355400134359501868507159311387919353885667923928203594946821623436190418237470547246991272109494627862110736734864610948325828386476660447527633849451056104110672868381610148468699174506319980057360087660075172957365346131207600008531697344716632682584733909728353019229679913059526164459899901418681888008022415705062925879204689877158905525646565885029476744648869968990664070742799601084739222687344022486641368913717596737063769459305486617354299873728992595055298791346391487108450284516601656488716876009692137051886997024392093093336820275752097563768136408697857874350424186451843793071071460870539100846359893051089540880453728155145990805894333511933638071615568555683440212576556908349119035457538539716547637282265986219200163621534640141706295860652160147482754858210730132888218653449843300419090108633698193673207271169927272849821586995142532574692533420203174029907393848850569609717140110171645718471116202441096064484209243633245620561107395519031401354597195214289446098762095434143074756320433818401092294723923535591060410697273224863756397032488001401654542681817332116867292228967181049798390582418288636185910081410803537440702972385397056190623504145213591449293091647214208147376774923991373186090640781401132766161501802628234405004742271349938836394251999621406126392926924175636575896560255237105866916507096961195785665460678653875670976172412490099778453844746843855635894353104225410709907626000966473895544211440993605108554622564003780879192021885585780318523327469107851866476155613989880386891707939541505558028403267757098639147214770832184858823432731028712181743821887282426048154119185477739290341149523501533224637875731602631993358310368808254961698961384868367931155923614244711172382872197528532910695772492556073139903006358265928729180219536764597568195138961145785327949066470977160173647237526640359823023653148294389904350582489655233392043053151679672668920469663336570362079213858034310960902102480841341547011397632217696961743358712414711395408606748638243190336647188777910888379559629979050815787222652721276575749963570238378572024312784226585542873671124643300479443314972022651641602692128671747092050963172821960865755424934225769352670920877434214069263432279081966538115565446124024186426711474903258431871697287184278559979363051365406793427071905912827664899533119285291913508660270789387206573535234373189556770100980853483111776177468202806782646571140663793452473018413154642973433928234623134432803882365683932561198153642315003270792018488923837494736303468413871590851707047408394159448139245223052155037334614366281424571405926781794908826624241802998403388817378903625565196165284311278065038040821752389138223970559269397958174838555153227828921091098160849945412446617375195552721952466354892759861095595051754962062509745346812951368431997773360215444998537282814330342176949659128457938950661927472187545630413293476822668538702822493286788853594838748314673411368833250364803006320674923752103355393250867397433290387717591329172683495300932022194675215555447438354509875750997461808857152361113180423524539996897980158562619971519103507449702507720690597062943154872837265017728739918242045629559379800415242600448192566954763713508941055561523171409630168548424419103286996586434728332649562084062370477373038025405457877272787144226523081874213495570367893474278990469571081746656158809436411420777743792541918095295558601154698692258359420838571956995354805932287173844526715657405880368740366996859502534193411617000717444613720675279536220178835898041286791406796375365693077105534989314454505831286982584161673146301340348436965078290742066129396545111956259499774470347866684923314417712939556416028483332312701442404521992080215604604252420598674977681367103747290409850682585127176643539858099962173625651118758136158106555902931353465483399301718412709912760286948622195496139653438150468953267076144539548056599982467668444749541080300777809525074046172529238202346331332959903275198669633382709686300873252774777194807371670792298190698787933084331915528502162787345575245804220794659889006280462193402786281304415064335188322540386659868521320891033281515738245558927737416771388415191286306592632856359844163273093842491364699939624614546104432551932060463488084784249407758772814382178685265845243728821801571988638521255297842081654461171551276359921172189054755059386390799489275172511498837194598275857343283730629702224880741311006872772486738261644363856640938724053057066212120302725447003183269272876862399688412545708439392937169412776951546197985651506580613939069096923754183377048714839285363044680370994776364181174452595506918775285136969097900515218592525592694509818486485560993507855654322879543179195793935639048460550484584720290467520193809319059904962124637289428179552559127236952907459838749904723999951504043014862231005200990853994398325570325485065660159854381509324055660928959691554062359565663463526631006756076130078491252446350510522074011316495043996276394952891953744055510618125737498519629929014696720987182671564101876499197519584212221692212038374918283725847308796594168861707109817405309008054854324885825168484840550846815845656616590847040198543962859118268099107668053828171523714151849170396787214339674641189019776486704671591200753432669753038773695207547259917009451238700591364396337518362413117639274037427773311945178921850749853142339819867413387917450007705803700021975601483322764982320160856914002407461922336127341788658763568248146352535657095403762532599224740048369680376990032889217233481940590304367815461706048542878479368200939921807831773962864999111762055482324200810056511531587187814940742874544055315414822318089114823829191268783701830613237978083309284681990303533620578366052409670950070904190985279761578923256557969284633163227571384157237121538461839581465015466685600180674664839927009578612709690572461667132009181702724228956305574650931435507263853373427025813258996517105329876807453828054351524544020322964757812951115182595645555778253473236613388245919805966335108138128471323294267000187785287288928655338126469204923766609122414526652517324070550726799343226136698557281615759375317460219851345831229169256062323384120172503096074383685926952035264231631828723758021905792699000543065204760531219838459218256557145286616403597178676607025112230225360588606031733569944030249978410602196722033576702071956269834401623977666965026619311059477773617659081629308154564165716617792392264849289058080229363903488588911817858070473959660247155048718961804689029960735669911929250964369516277858821648740036405324878353878278912914245780573856569443251816723878929325256580165799353594386696370811577903561416027999620946409722539205441157651912441822815834498777781275099175163127327313444182549883224873190566639252561231977518844152287037505080388697484200233407765583307694983928308489458827517184662515031221272958400923201769563173108416197457155473164308440301292294414813992786986466795063304497922288611273598341668957544781371137714467422850460742216211540494598186180878448833506989586719221202755745674058075581215565610438944484571209085571386830476225123200190033811067531865655794796098278594796615097955289711865371200597437341063107315063067981003052003174719975859796681389628031753975627806857967482407663805366407161346788859921482630882923250779837424278204434070345032623690844626127212873725542676697055587037408608816905169159295012465021782950109165445478568492616523064390961287052653872541670745695620843318138344049362303856315525710427649409037934034785498196569037313451103973924626384057487163790835433723223192175647421049009057326342399928692863837695623463069707577645571865341419751106120165099073292353623003431065325558927300043686670549743900114243485815764993830882130878763721635176629471142239499477495726398407922592344093814209303273653389760244658461164666419799342610294404817674071303728121379616654471606512816519587433033026171734976116839089017559783314544134445364344287459463016674714953502881590002102534778209090132050952405693308171371152472169555651688663333299703952688823106461213341229874962896023992607977845674565619109132609703408594248288879373525339262500136869983932244080815111688084608005537325527324752720129957431364415335013966567823579553333866398880956739532725416105580901505728710164767558069834803045115758707457443534875174425314867724961658488331143006085728505757838986954515660737356875282788045283018875034113887646750213386680757367554258381302178248574089735628468922375982379248836424008731618633388506206533162657405636888115349266214677340210376093424005692723799655014070773238034894145771856981984418122439008195756734928143827573442150918761855831900891275529456323074633655660044097151159455878808158358653726101873127924681639113282155144615390908519675336023603928735472062905583614971980351473667785112720160181519220217260154784734926013438507210628821364480813973262389917009142760114914864199030700556261576533880053210565369282399502570410132434711452037485561411711966966761940724363625847284891053089973020435240342673891304260838985763223606481966278184340022216046572960639774126445885198349170647493743462185997972029887241223895635676407824801152802809689476435839898643038943363269428567881282136313445829153481546539189152799853508193532882385350887327104074690302173608726992887919669978638180771021592209928380792719699999533512635303975835836349116245479880742098920676929008678323469840319535622901255089553503524453079576348193341239513202571605270431470372729601573093649093152109669343084762799125894780710482765717219320142014190107302003949041914620207950063832520991196510622731496912161354808723661958908143357804066158050186178000083941753473832563211134510705185031162923043351934078979552861464934929545947910507247795749383691940175605073974554438219388982581281497856646772167357876475577606468917213437043867797611993014271123986507415800585732726707300137865209345731842621759755981581012342239472051933449446152522548179908316694914096313046572243019685493541756061291747808854017623040026073249425161974217474254493726127897727213874674730902979848014909534011482745644477533866809208826210949348376753195500907767423035495336425427596515559260229979031120579579160683277626539710034436005406071854585686415329177231837238358636173548971972325872902752636032200764148289127074521793954412071754653595281706428372799716849219505713134164257026731854450566150460392883592300698032746368979277422923768942265034045032445992592050726900854836809866433937197599475119179930865461051222405719465544035579274444683065095087681161693247095835437543727618924910141284936268387587973940597183628160254878503489628771150337393020270183671070008028605931713073638422292359407419206486871604691922830636728761555307653833135561480405433726814281619304269394495093285551515612014045706219415249284935210610888155441354350872095425591936591198203803840628287052113438416725091928609408132683861983154835235921102184602510519195629766095554358845028789734917020323191873832991053125824696423518909305927481552405204664595297537754223099326733663466434045807783857077811875633850327487065755055413996148411569579605996414417246423410433573080423304756743675796229165688039173936783572372148603776508834494150467518587943162966523449478341251566839868196252601367441736926628352184298072892210181611993711347116961129858347546860231975295490571508079709239463801780219444646323106271271272845232506628103512153343278502508194007096740322439603265681132692422137153219326381687570165531203555581493478018870089320882911996200255997134225028856282471241869522580251503745794065882333324666159828805764708547057050563891291733284632706539855165573100764191497366648467338251168586146217287521295379930472140611160527888292051829806143335140796952794700262773956498429237587466754157787120147338272085589376290130889861493272337437929804658168444412707978767401756085261471777233220224929414319540431805181177185208480138240305538327202177072215808551882173895995071409008224628055690298304928320836063754305526450425632745732056395394836990383269694719295048038519817146033363066956758875259005905146894516818292314771376708053263809087064569402226627606527857253170277584132885664253371209030595427341791049740789210404872326611531253819730293747497685676733733237257588595653597064227527512714772824920010389789420704090512745206649143697699792998645308350708755319756386105990970783235521591906292632216727832605926564929124166303180405435551032837013435073440456385906399624532233559656182927776860651676080384630940631366359754259650969164918199648913637367061745808726721351525841378760778086550661976505993331319817179511277942105906629905279702568566950258977816363982023620573998488062950488500132876461721254387594186088285282792111508444960711340172818400891690736481441899516298740073487212183646461760999438060989641952921882638878252033343296906088221486009340571441551727773632688075915674558294799614611112165562378752845839977038213130047634284474229153180943132719395667014522155556855058014511563136834533597394065592488245619940031278154324729853671859437516153287302010272434376559046379296497868945127096597929818825439986073529528356076336851202766747352068468457655112791841806780767577146055574573447025192674656891747295069201119149658364771906131893285985093609340006283306219330896107013444580302492637620586149537538947636720439064182195199185173562513295319753758042141687837880696218203146849242527101656577313284989638454764574283668905334999968751519394772385553135104157946665062954255908455580387166242787405848082022320777024846681751181924144792302667812321083918426234091854909559934453805958039278588556046588443378739953613952264859047584340830617542256576339102806620828863066536274525697920602148440267413628503122150723292325791442384666660057431298304734798584506292642013014592422533456582435765229525154145223704850760671364231389362967511536052316450793423881036128624275200481525863566285643802625494043076469601866404363090903742780501197401330889153108414853391321357776808622700523384479152991044421901296595040756721722898206983850925950009982121277256710948792015297127485878291568055629341638191745142415626515799499592787434378813228815328962247638897985536275736021509823075317346974799206104476262742359993789576344919214493267448489423275564152147934592210327400242355373015162260479327370111862573658614642008847039066166790521951511684543571509579025845404127976247398790003438076602078055110065948573529681084025740621497143283529186600800317845369200994192986801115623388479016475136303993971761586993551370127145423915672060708079525088449944356852650743495360948053883242604019103558313762227822401683001954530663301526575456046385066815598866712544496346014067555243388367745827116100984504714202023905609356925283663094222453764778690781664004621754702279365400064010064846197416817061760814462304094568913854126221836814305236625151717634495841435377231310891704106945275552984659186561747728619190332398690155185994472376361058918115933670158043564460228251602606610707495435814980104026303281217956851495830963617021608477010832066006207952274146642184633974155963468233006947552113263588080676190420651463857230498302812499534785307977719496320017231839780309442045521187120465617987982025982394981786229805696117186047400631828258325206043576043285601675948332808921831365025492909905031833225534543052849855867750106070869318648349655446949681361784484832220014068096918202387830689587994991594486279442172147571895524077491722980504239623856904130862771037281996383308013654364981255352761642618514975017391283664594113614821053498612305858376333440332044998790986580782324807721905404757270996653733725805484518876550166642198027618309622190566846771691865697085473628695287623427251641046935660604987844869507075784754509880839822295225326353324426383638467750594151395376828084565233885710025182643187905765069377335080554431122913916711865236252601833815183043672859453705666223301384275993281059526083391728702212898345380830991694338670185517746470811181412568098199029534928164880558693747874005082800612185615529942772714556542813466274965414663573293379793014661307547862181848526552984003398258437243693924349527010459856385597720113478051959579692474260448712778987325528076701311730611539828601937305636873370196619082368728612086419956628983885069898328553650781457526503421485196754407749551157555287324394046600033873017193594288097141793690378351517289227561011516814391909078768888530188005060014627737521821340349131985454767193202514046634706452512457934522583759509089807684359996539526250502006305866113572914856681932109546164254450685948563906443327214404847632674566514989564010325571995342784242413929573710509323825011629908085612941321231909742337787965212042938250508955396440297789231338068796109580975449639598754859651484908872016833084736762606222487782667026334720105400519355876241695375750411721879944650732349059522294725108793137937372267897385478258768724249643715463455671185954373315990004260525057132200474691963796115458107304646471536207312984253655498146334261112039453609105778452492122894248700430800152738344334426591240377243364092185762915188768335716210227181578476181719814328809379329848902540563467346838135876052478050483457216491557607081300090234916839588437952992452520775524684605377142657194691931159547657747445864308738239352097181279064921376034415930275058400906136539043740067096099740965939246925686218482481871148556501123143991257456476446109941700822239749903698745610532508084249778716145587115151136038238805636584053529793080963079790654750188401260329616762016490199441604150451436058644231461196444937461287870104320802137737596982678874157001344185657183919490376402129914269934685749355878323980353573869110576476531777539531583511707551948329854114529762567644448811456331055175057312309393768347958195045341406800661102597888511683240067933407010513387179777684220739033781060510488545923802384370801634272297896679519532384829547964665905914543226825607968371641846498846733876536887242539007890949595043478326198996483054315620509019088391927797777265194295560671861718417634716429891764724076995112142524330420845176751222309769968971376102711270271929376797618285220041041907981408071609331285128068083348803403819570737296203399543456966928130039654174208221676076321566274091151856477668554208261687490524696981984777293547687408304086334370183013992722916105900845402192349077874610197322210397208414054295076292238397704252656342536076745556808505547573791379431892747582372555266636219802155142949497809271639843594301567184355911278691161906818958480561924379180117798106253001114742272284966782829879201346708824942841379951507583794185831241806297619786254785346880090671122885043223928759982815591673716403561177348643660862767131296929756428438954727556082110738666075603231913523586791717309432402222609253230643184088589460669771838137008707314596908232353421288040382295153307434479106027647639436409063441202508160654392021373360519867001955967919545507755090859600161122209318289711265424449055296786765445135127942450213375151069519328119747379055083025118282982580831285404913992967449259285376963262243006462790940254396978410396427965716697914485080329775757081644423995809459933395552381996093849425596346300806823079318672181115177834527246141741469857325162648091729805538677621768934987897584523182165498677822842372682096245903059799676540447024780033960737351167975594053337512393320414952454987633520371987480954957279126365311865541478271036263045244688773982293802008979357430986567542058996039899968617107674876307591924085709098648523233777460655634013671353332414117432758369779692029582889404541282933272970928440723519178941994601875198827110939416084550970168295936557304714309820576077865689585628472576559647645365767261192762738978980613558228636430016519892956552516765467646290151638883510494406759304911499740524049556137725449894143678623698212763095123003371714581689970113902789901087007000970315006779721925934061125385738271343410301195961391026181361410803698934312004767761465784784290764657339300048920184758205198595660094114376337289457054444836563812653291130035217490509811612861653615487840219610494167215540076794535149674535590803114054987744960450365611411984285533086135024986827611441027467244430527157617482085200754821833181575690957765113479630042133544579833654152435880229845297623671636216290987965382926384472812187105095380465835256228176671545453588038063377497707402307285719911382380551409666360670280992722361183542656643159143798352874678362691478695063756674417068756389017493456564684915890614253223618818911302178368289902927574218182331123852679892235066949100082418375343021645994294337545013816383526339225227950532434846800893612613336766799234920678115213622738301914683254904353344220729027483176271461193324256221589895531864582342428794534758717332054778935660958815982464656543063861202969683130080133665522187758086984621201490811374400667548141540336794633634988878818627971236957851684925243827247530637020880566559592686376051228257284837448622476130617921138834185420911256089178587468018672304636577534893398954428120651185884078412951809073380531360766001866317385011915394188307092757418564801888456567878344306082551619898910913492114467247372319234257297977838019402826100952696484327479380085138139305575517964582759779461323219520675896447937174980818711965504798665502748928889782184748140719005058787510971941470665442210347459808412192086340774978362816987373255336103946080992733671556004853557172705860176060278775040566160637433881181493198307028117768440207430239485579593853406050259824322396337800819473756394492749325235458625841348160389444610766976906340475315922271953728259411006422039131703293232096592327912422359923418230127272952708687648078735767942920238567808471483971073174222113682029557745103667921100274070100117524806594138361221011178224434423044670197278198693817945365260980498427613878775442024614924786710353745476066524836766585482472665942000908921890246402371571618608549386886395102004440144082465478969009584295407205001882078462305232094523847325184263556019676808936822412474380684365959794079976115243732690468939527147659272560093334953084101476026299416806174444036774616381791096904831329040163082859178296623013110851416237991237871213800373171547729233594697376578688106051627497316221439377763997254863780230482850815823964865245484570063440296283835499989063440083157039097112308712037026359359663610901207631329365867487275572072013194567596340715143814961691958772988223813022006837663177328564356561036944801931494987403602109763418229828671605842582719716662776899882183483732851883485188070577728579074743039006727560265009970168937707265082857193587698994644728514076961026885060982265068316504180816524651446937085983835998183540217631705850905601904845238158059788147340949847902519910855572363118375845272637565339098061667582050915094958551813792597975080269813533501557118372402449317806325535817785433704402576664636260039365498238210668538070797087073519589984237458007498925072699822311006055638192463512844147878842354713445319303223993913590396175761362540420574574333267852008964158629536640420094632634564952336859487842901804057029372484493626267101840928418394213570250711459218777610975493933973179647039680029945691156964905742982652654050635288212880916418418863483235215369455130319260577918039524129825512135614818188413887322673210430665019977755036584521320153304740239913981282967351013416357683095261938379504090283896069429763427850752702430287079293179011667360164156230702609953066979864364148703644353197190445270546248116372259039687615256540244721846165756405152078164966964570615035371342493211050017340315406418106108159898437941412470439433710562138618737167444067453280328168020122501284188648938793506967373150105741039693731957718240161391604105653902935208335034815511437737711105034940404340764095337539838468897048703850096823742426832598132299304623645927017739631164622225053751839546672981321200595234520208401768965151952059147677832567995926931458180751907048026489619777593387514044790858065044914262292332443953374907857423845452571718523071728149027989428516504406299578009378995280372038164616134214049734095574171736776402048966817659234704914565076138744456230555578603980124254835711261959606040793629693705676960516301463157036748066173699925419109918164810806196616817720158963285758948404415687158512737646549541867743161536600529417663471227671354670060386319575910768411364211756532050043696490533995303468077883776638901254558905065101300677861258495805682582015414573145347881570923653375233115960192129809928779763518233073396519016515409875236600370227300740084172150293772529183013441370525740135758595464445285921592790496575143301456814915741224365361266815740589114818760095458627514352308318688166928468637120072350106942453239009229195726094060198816133615826616474038773134420504269181516729369399615765688713583426327996268796834129936760376953452612227646737171671217628462513940466781429144508434934282702617380196455625748442347196813508247312880287221865430652940230096291701065892111235711361402859477840052596476497710768230653490551148352596284027771272627006616690207148128121281354732787840757766569257734888019632758935813810789080354757845481035024533769443566355162768866171807060287494847210149993737545677331191335723948672295651451809221634453527713579195822074687148596042245854707008855492358305827402359969548161798637113468753675754657419243365089583017608287955314446832430580415974325678990127875684098982676789181548185867111320666631797043437294218636203947904842753979578943131473104514036301956145722802223059368752085547658718329934479706336337548508041225271587351626321335812611726423538681946687751291736760446877318964628368672062420019164637405464069181854419530691260723949761843130979218511415200702675739268912680936563864748463064142799992586303332067966778824218217206282204057614598035700198446273137836500679874667869859886632255781186901956312264757040031932892374971404739736655029386657517303145249774019030625792124752371485409935288447512972661003127118840515126230455757993862186736956832037977558335234594517431766361135301412278370427888088475904558661424805918890880729410940050852666291979485043487225960648023428428131109456829467517248264867508928295821967672444614007508579092583471124944569710728624426401295774841398455771128708673498467807813234766923225394470252199966050976048022909796722961711919592528983585544335300901716171029800708389040653044484868659888252955653310321047538888807443868776613575720063849430588688795734572982539338983253144822173150275197579750446203997010503403741427094494116162128094036888484066719926018929677779593792164174243771438298937698515727604685867628429714022284283035372717707368800160584738633771227927817462254772675534240307119282791235598860595767987443046127802860495184727059918860567958591278794291152704106289784387698423356532441899605578891263842631021061197594075724938569756443082472113898307173840206738009247587740032059839939091670772402402860832890544233592881307854151616026193926276181866995107513711311245961208337697381219289799766428177930415527648629287766618666116062582807590150492484623975029773825319894082014872197933815924132493197268207281711877001709194697189308792912291572896840509616077398686195079107652154983289595978623063137305807897012612364704581501263046549308604923256800272397926628993467965378138532251270783482385910590149145407875385312790523982793058131650718675397401993310581936170744770380863798911434780904064796804783527814562143995669132566538690257518835262011415682178960582925455839649876382957140830602878566533644459023970527540184692514485377613911119497662213119752160894450810958068405094871730679656221542979086434251133987583499836534332532819794036977252850714230417241562513069083459066046937992737531912470821527316165656882127904174154585363014518475988026553838057922488731041434949721586582910374766035946385864367084297901997721925551208645947281251969741651376577013813650743601474894457044768563976522204371758724514736351433480356242668186717693974399203393270863870275373397593070550653895050644808749535020543984844779084441032853193559864523639213048868342571495543627472082696116325500286510974344855701265986830065881616726443749649511855907869456946325278577875597130760294864643485971648466643112392377348779212612533972246084431106032574827304124569319159909719082303874162227072819125268893590584875413420986596333956459611681857533399462491774298596269912462146785002393580926893211283431443771651224807392992067665176633560765768894031362316694463091504676986362724537297345183415043691244781899901934300234697109530258582131632370342773818408156772086708514725777688628907297268464494047186065007370431551506314949631922901050663541027755354941858646613471731604725850266696210986823681651292902872236552356361459436905269182171535926307340168298965660168138570741861243702346008248934762608666193543465849891486612590989416201132428031908691805533925400406894632750709244688081795077847687245379861175132172653206734771203626086465900094839021683540434351954929344112511370599890223252406339188931892893826398477303441967520050212591713170854338594517772848973133374535624467948613540113995914155079610104545259216682627319900540229136760452996908295263340491449011155328149250856094996966166558974489101105374244299117827813954599273169283469680922830504083429854349331025636540626953539647488756557078309729474537106926849836505893296075624284452771626883394100988576096734313606955489084915829178246651746709153817624630763819731290502412490382795210298406625692694672080702474128655881221461550226751271245684342177168354335263774652175513678521992860029158384714862389444239832673255168504087848606020447669379514647136710466993288756294792952149674956897246607560581028949441529485077559595291942536382920945984516681115120043439951676330697113815514485974954712236372083388031535975113948194120393726815379388293623379084097223200920840581313857986731344792254391344330245357299765636044382029963881791734485317393510462204718814059877744871820846512010434051990264527054518323589776435804575099533492949104461443893781860764571659150307926240904728205015569258072045142810349787223229900418012973763335548737817689468460727697501085456009661013099403685961273798472660080241076106884645328032485618547160880254313801558848477696063877533241872811270930094745061782385196113466479918621122211004357376632689537795580018692026783626277238777031408404674099544091115460058009697670494167164420408568329302639370874317148971677969509666104347335652214462271750230985154217679240916440611712765718885196186979322606920117610297836400086640529130966941568545346783340924663346133899773883067402513795256746608171822245961389020131243103494328669502742261096564709246662749562368510450863865987019094327865543470743596890124613720831344659440103968513993868524208732760236197731599114833656508318425237793878351988172357598566253453674220610327224991298104138672518519068310794610868212183976250118637118145450846051802828371887977523049948782545943600295748961793157872323777807893891958612591724029094317451561033309791212391609671886797461480428242335677336532202734020850762314743243311987181636877531703379062865371483722836654529577997181135691421458589999627024824303888050393899996024529638534676296302253492502802836413942584148730198197307596292047878831317308257412478439264225750557710531325127078837556731322133713646688114537952131274935477213122223068306079855547864693717905910775679680298747974707392131573538168718486270173741978069194560748581947207409715238095714410284086074488246821366263046659835377143713870847806877597347545405396914342946292529419119270545536521763493331887740348101532460130464274306243650308734008277262295592570219000412453057897294339236074157182961229666372325642673639184414926220345767568789100447174004008883075430058367683238229274066874991028094506808396243643917358819681169849240670884678675838767130387047292712462486326775726794398597897194095989682876061643568526296409923089768559084279371375899528804874008564435974450264399131624785084902181079165455896253281926610006516446883066355002736651413405846852362903234992650188281136742805785644050164241079522551427463048822713846027088052003293883960500022464992417282919104401073322151351530640203852450060339124149993366380846535379425306280176542834344747433222673088918073056742312448037202111744269974105516667882605636128538346316770938977006835186423347609881480548353023247932245176084971532613206331266086764989936871247311900419098723185288915466311371764355148141522563464705537776863232052493427759124280789512093240502235768552536497088849309946126007790720655470110745980316084571647929167842897553965708809175149529672555307787106514987542865569624048203342984461752896184234890348314552508446110865574645374097592105657100229321417211905384307658848587289297770936193978033649488009880726960593313192531003416998356393021792100779379458971274260042005054575572392751947033595131039325949116520498350318855690054343234318695191731117486199419888117738558665975433500708054569853054230845008211061242059076786618907111000681724365332315024708470877385080282935736026316508820892932950701423744038190718801747610551883148197043373941186938451888599435774186920299875775167072585258736212996475859333607584430226338220816240247475139784054735243589516647424149585470701320859771570726861432088712895453465076306774561766562382898887028497039445492743005338044204271709226953855726854750495040763688435403319237094243287564792563054005260327500746714631699607857151246661812896221201917939941713774171761378091886359190549941551450400205045726541055703936300507840513953010317440705047262305736452017624502630626284659854070906535588878076146774009269943130468099060075141223338832059543463457141168223243487728265839061478576928435094346267926609876910418425379361624252097298373330995868135881052381210468050259369965426292437987185006392334733849826377769998758199791538810377436062881975039126009044106506371528620132121879468523001373312265295069571242514525720236642015790555713544900053203839435546557379344214144112127122967205660320647297983193750076764476779003234181314960755792336125432180044249226357898603411390173064889689322086128200339767195267878231884470382429064291084769249340176192084738619233197188041095445150091701458641592052306680797029513661229659480125910996303549414209798746273378338838573632405256097454910244629533841221603861044451478984856170120408357447499485822700072481816677642136418356289036487579516973298850865298018724101581101783112875492528603513706465096197494772048066580806780223418499814286378122861845363594094591104713428885747691028801138071741562438518309734157177655630719392087290497373806903566403711546737352348869614149399748085270690373329453440608391875894743121697963936862670963076719847523437094164628928832705548635221821498606930479508439611480316241995072765148588692551211846576867657064593730492188385694981561637763427232495551210600882492978584102892525697364140262830821977464726509312638973159168149447321427897112880984386749441652510559172780171291327792308789941445533518780443209817957842141490900594500371461665767349672143418252315589650161229470413422492709061581425149569642502408002930428459445856784471390005753630825612486168385363406998996729576594787085024898581411418483610523060872209868795764654019836434086332671753213520266912098089566776993705890168660820813443548395059050145548354571359893231539341161364670173626604985524433695336583065512773176534957581263324212792257270074673886317693952318564170285749381065737785438583242077432733283941798934289369670750554072596019776435500217324038690183557862966375109423988583618076702678292622237285845792871495328433415817882513251279432042104719037071867628227829109824307823792081901987454450378031063512258892072586405495997741964022365452361894168972966419208327192168514229919728299830553751866040207829947590908566073900171001671468839757470308780836926319722147364112343297258073923733927717248552219278128804815924995813450949762003884797901145927264367757200588170068323310756614995181662379073377090633884007487134668532217291877415883894425095279004234845713390443824656428312692428901777830702382741430334463304574233344308002358365372973738821683693815582637931206002485938204045374250792692276730466838404897066374767604936373083688422392501470745892240425590150457519938985996611723049088330846043323333990568500974335656089176057831163090897499990317981600338529268558826935160169226583559595491542870035972289844098144561384237542322601035069261389028876644337888997706532520583085547782156597358084857492624751401089062830336200163828507445755771353790461291636854456267386575740595438018898477358974209424510736097731653899906091001337300726011094261510731740832053278404207306786524727610835555628056889597324691827007844186965936415326325985275475395476546521729198896953738267969893729088982430069179665494012302061546953627923436945539568447729526781769717306306212918917568131574118087389113146673865009556199231724377594424949520963264466065193924909260383952930380696293411434929574034825663564318495069260436469017352664485915246589241869132042489577819871651041887187727895060309096510071857072752389383989142092879099111952213528040958004242345706352906451903764688558248697542860180014914234579178406408475479110550571271309549262043967653705691189113900233555024328581626119463888293469636757302972888648050753179339421098499677127538356705864575893676900720373696336538047045154565496705254865111303543277003066545935759746584089373367626381719939172597255461016438694061941903265136301658990547920420283971230845075438470386398994048680645746265942949145461584183283786200313175214485524211244333988120199039949293364159955341048068277859976561576516389851786547176401781571784921379008965430439495040157560925996131341609653568351297179292841518132565505606048407535621390918565221099722176639363032469187456488808968306157076480711630580613643124287779711480843895595548219186363017743015811171070155389215646841009583453497246613584621931325820347534234205728050328686771644505788174047527801985011674575479430677095571885617586452206753892260634295579461465693359484034872182597950322160273198343449140442946331061528119539101249605195402626543618709271501554682118329229363864537603646371227361183766275531857514016373918459600281815305853017853243975069861771290786836118008250871656134857809382091593854427783980455225953041671224076696985804349160361411503811594415280853553586113337754516781629922507338140750992145883383340357537557172152987059266100342055816945804576648799480456126819322768049306621339683190296952523757805119659233095479095473952543898874715034531582978557624384127394397647905489517419799014604374556808026842107736874376408358375195583193151298081625072677822263169567371537511634971338813737135288585314758555477633531050370254594468432260588421758548878443125723368475339028853830352702289942668169293718017470597286748952152822708387580650615248593496785272440841359907723466914531977663520154985782528156402164114448075791135685721895679207570160989953066366859734559388843270173248472334539322953976932488916544843333951586931018920834173707127223883885158876603476255189134343388373503716540818702540876895222476666481768457448802832457486319088099232985581583603926842662559227902058976404631002565979455135126502244208637150313953193838527455577319071763637527319371971371715562281880906994279452499458497676165658691612702096961284613191824101044979644569163725142085558618599668316256184239753395529247160410951430517109091591634266425061192670356351822961608940394376620378538331827294205912126706158528430881052645215407413514160604452604333530059018121295166940125436650455980268454938665811132291314103826322029046928907054427739982668196250176308494752272132198828822911964582921162215602960378463942900677014208071811716573382790492461372448514201796839310600740896049546121480427598370338482398065430225845577228528433432326186852844878429757807603204622299359269024882679021582634607379786633874012831344014856287521755560214026417127454006144824924314615384918162706972495663582589314707014904088016962756822190428732966703073513990436224658414469180689842028231893868487643289667259983896563202820274234685949019562617442962314549175383289614129705926382914628153150048051095482954900111213558334893759329056266778077928511592757499288806051522776872828673449625109259239893871664208094461223242909476196465894917336682124065629300028999612114689449113758978438654419312425348567145502542375197987139555743908971917507693568887655272593845436251555517185421060500318159066133892542807149815205398430905260056964333098234293873786527453519373758880404906130555555616407254506626154177108587593256643187759886444624506190285649114558830818590632253699143389124490979816032583946800257409763696786116936055332616538578562807799530460642173751830689054363062311056546834379770351391933444627173387014291546799915668044162688233833687615156369708909026344725971793480936233259948271294319412506717212166970264801860882720492622090117483963285768964528574113831438674187474287472608137997655668553131801648653378930459076922203500895490594900805544735107244815104020900756241535518079458454465600472141887016524134456730116799833981149435430888540018542811378137676047047865462301781501349606137747285423735923147326263226282670297221711204313576019534052814138664725702216440811266765374619279467764491441560924879466698349485781385162609028691786378320767948711806424126962123538010251109894077607475018428389755131703361829139032284830540943937101170596234747458314846380117716345797866042072815327384502777449931888204290638802435710709796416464981716981248144811646033972626550369414886301520502688815266176312276739586296978329688091702027835020756277494430792705758635201623932008506139562842955418070116389524886077025507075690353078701510570789774165258826965442115315277419467463416488477168816754321303521012495018180852495958257084166328165890930990758647069828909306869133791923230955414511887909158240841154290287163279888242612315891771504919782825643279580713822631569239169758133834124807612393770786760195780532612320284226377378082525328739226492980318646725546224698655496215101603567623606324383884206302104568742106450857555753048334403626472368366829620831215427588826924499832173345978182514543914002530715899811270643238888762665491716687008149959093440949859384437274512885331986488216874573565767172404377771257848176905499519909357329090282348852490579454907458550651048972662623027818005232097191548686805010839315083895548818706398684508506078821892305333650339019546407350742060573902866887628111107051720168997760028381442166811345497505947245060386918657596777248060628616149150531245083011291797209687182277748542070135472644883421615194510938189579179109500488045435863152759060293458828389971891566811110171972681278305546823676313198836730637020573895934289854376275504277514553070114192567362625962056079898369514901201782619493748834577829094654722162676670515464458233355502684591809410619157690742814746719689311606526696718022301203280007151215113892093034515788605076267268176086675856424422546959559280939429499009494071678769753467042851384374568019513420704564168875994960317247202300881633735845486781923763033307495774522585269960199840318260586626121505284786814891374525268044059396908258152568559331894382363028498340803837033994497500997669380640319468829144284485823724007748904542075994837062123205697227310811373883103756351042854168865062355520495644920595009752963293812887125121276270889525106027643654301992349130701283054213132425464560856928232190151512118505086751854262345489857586534792112915297814208162923397726061031544260010074609570306370691395486347181642418188765774817427973827846915367427082764156781849633844824308755501998485539266959094297582362095993042153227831249114018570837865636294126759353732685143911436646564941266730425312546415047655207238441388364372528759703088895737826583524648766766773139038344317232095106971625432060897434853441271587528038356866518402261468186753929098266279027988867241068582864004625814172117967759419677426871322955741750679903457463555284652725486928673328247730968844467735448293075696111268647783733875465715246097618503840951919326502056625808245296836608828520295496317243996564296243307899761643788500962466716791801615658931615812175262362228144093238161811669539779922857936600672180619123157472594858197796793761815739016587993420830458526039225897609475261872411400423156386474645507360803376730829853186733550687039693706843198084104129746969136365836939553386284341501318013095839542359973163204790611922176932582807794809907262876659599717206983953428112158792548684641460403235362674598625126439839626795657560767408983924930112506055608581759287875418941780638285405705906502638800240977724791841310962649926721063901737293300600273844426647542406560893258662950595830513875636431136390697103297996762406097931714966223796528777198995225781466240433427633196978568577170659799513929325555131614535592186137136329511329940718848612887540414560050146049337171066599052114847394572406334638560804593574987228975914753112719632928881677344693670414237520469628057472214095628793056152687600632622066557060194579804013950064128713590968377660484245364759189774475943839278636299377642583278072843682855665038914964795376350459207923906127601054441620346861772442904965901637256040032482068875431314903618317912701055693624865061853261526951602600424419971881984927468909365182277967055350319188835315727261401798877556158538843476727526984610174822836145268776678780606796816319300544455827570451685786510353663322352604920947114536432751476459347560740875305097534113330601872771146044506892377952620602639766011922679200030215747418854774701385271576118872307868087791595076197623534293172012486583242615717208580913025124586019879831229045774488376853928630322864670874258454224910498376848530036930270491422366369706416210588697633511129369963997678173918955561004547935590947961596998030988584312435853485851965258811800348589581345988997143312411588176058346839559996621991352110990268062176998584671153961312074321381391326078450855435257130799832648219381454001232937164905510589436317122314935850087951297435476944342705024163245656444046507341038408649315044913088618537461240698037732433133368208800230708659588097688328218739894268955398925374628121993062743803454572682333269438759873277240232220560494574663086447132037412410001284017211981591768828448018716108628527436576487419864444206013410873811043123891416050193154983448424152263411968431384695541793795918715060922213958870848723685078337694745583655951243101215074326046243520088203852768386239390261133636265017222768853957381851910111572358254624636947983003984685172621045209685125371571477147575466970935373820588405115919393310846593068939242243585933028957510103409014549102617152908627046858747912119038749179734739894723941647918869855382139852985755024201501624891377184300139041146709983871695280128775376451750853719775539108360018935297234122674381921276840430843571736764974073717327924847250170392716804675543248990877609667395225785160827195977038064911781901088780888722785594331797107563171024884027285502411547497408078561986283048909014522430089298528254339679291992570262403678960939469403399250627223695238789390964183002272047846292837370163270259018734344177526439655130537787028319570518548312517138723077259438918947165407762776648473544495794787817246128089165391064754137833175057730754386412026169617549735931887115816665143384985185269216980698819739551042429345964687710826426573714073968980457627463499327107277036704317534242031483591417555503710565237486531251481098913985721046574849004263672031457811296320538530161156059675762991333155457177305716409656213299257526990140543418051360858869498599886864649692120253659342235780921507194486820419375760497552414366091725929082985867473073653723029058838241104270252691410706025410534062941135793322160105496752550463170055278162661691273077049485372498960287391800579112134585183796815942333801577865517994612548254880265056994768004861114357093078491579844230376921625120714083296484605821676713733059383242870841528806931229744909559838879210168002795741161184376795392288963486720165371879190289436236208892497231839018613838950601223888798998359487176462018786818675546962033128963401276855695384224581907599382304112126748005349453895843838917256860743540369733810996551190329213985551970320001713828308478022515124233427324269498377649492996035591278387427450958369314382458605354528755722887553474958198504862058042106926707194065475553190024229215874695010287216414851011355892581903014169657019866535619086603622524170360282831696135266028231026403949518068692138772257269701973797334118435513879148907781156644111578070879209211224895334368621467592376183549696937546916131933558032355411530744146473246402011580315286862306920265931937070309304020833505149054706914615414965915514837914843270337664094574473530709970343186480853305975956072942594422211764869285870307898827012884605937589211159522771553141186336972331554934687533116625237213649136083766343407189019435425795596903785458956967770557660528487529440988052689297901639950193417250758689314385787309278890673502952257452392759340942222617086489797323175446904163401210208344751015832654128800472714793885468319624338780931169286485831549523715831400222210434127552008717260628112685729616364634502443761737503786801546619750747144026000520230049216594759100559411376118416482727116652449559807680125544743110853271728335072083021140113862319132307511463346699404521414347222091393861875446337471924997486915138651980411066721059229631447146958532534191304094811942045437958801019928346583292890033194343474861839910545377492893971672520340160598633533255754601385159748621972649659683615947510379655113316088160502526064777035797529664010309280901146293854247797282582303689701530021689350290537061192286207403252944324302110344706636781944854957193287010980940956970894932622274908441740941376035638692336439900819203797384553783275701965930277403418250958510684348511011216468189408368153775058710384189645498607206172953399055785712809805651697455022216053065077393210199778033204361538035405918576529260373321086468493370154008402229225891227788492284872531378862904883755894501592066506020004106261361946186720247904755818423157619399354562520199824567682836294960532025278401783955073309649967636164561245929903739023424257324911335139224975681674670340597504115202659948285174624713234777460689083422353712418641011237903717154490774283278966917714072878384468968589524651762089953808320660268785025013768863692272481291622336668624736317639127847709278062615469071342885185341684190960227488006354276560926566036866111211409310618773641583130850748044487534629677903692920583497261375868066020205938011305698914734940344726452557983372049643759925157516044868202967179371655273727955767223955111981528583502139257094291803129697884291645408080402397416356903541288496436126140875571673572773262053385441654941132269744501161354087453681407543083788580207786849166766467064130956850896547819552011224368648973014240983979459549243346801001755090563786736659893142545102296514470397946352777911506881814028430536170103128116037166510511655191215662096461484736491292003668998488994350646280585316556331750648033627122310923825198797453557543229645225671810973259716003497043876252747720322019474865907202746550398828752262500799042656383670447012237757782172861848885665283268606742894115130052900744896473595752249151519942429783080470721009523144177384193107478545984199079890544432794508685880632537131472928613865398897310120226364389254190918796732063540649133799142870019577740758947141972011928698079287507867062402598227810078586979640728346425255158470317565197028634871536616753481951348411205214786093308979123691024838834483979203535451219557920393151000852829453180534774632215297507604394692213914565145150978216103743982963725826691760328254461762559603602393511735212355479077224935074362010113737665559383386376909265466523002789408596786551681102674193510409308062790527557499676772357783014269690117662425554237212440858082131948557781464111176370968456266909272707817928512287858757251338548107629997539636018288343906980726404458755963885649993448008585978513044426330944676719486355377630216256077987662725675357293332669989579590455321521077352319106976812111171413389706345009369964159230506052516047852565123340611289559792319869924431271818922837390998963710954610510144607550142447952818707399368099346096140100599372597854593998493723970562099022547953740285299974609073721238896769920311948596259053972373585247330687459019075461532357829685058102528850061621670159571853276229957909006812542453718546253775595452584838056526378158564882736456361325461985083894909158700182065475107147496484891323464131228101574286719412226035237278385890248000768863001831654647405562921902696349526387114825412252223945706196534339681741323728463525512201674309060424156789987623574503544151300345172866450705519971030959105747999407982077391018485192691102558596502923669930895965978411901498479354285721897613466736574221302812733876783912409622572405199698996026739406905226827776698165186595362072698857836094789631121877072561922849821856306884522362057716305882601008064790694823216240310285050182783989845853917230388460035832632434616069126264559913755897541401809653926496501499465110681506922962703107581127374753709489601925838085696256858293401385581107021063103441816670629581117173225403805867428484158506881833109358252570612669866847580050083579685824119650935542185965251434148526453179484098314675999172175596571376394791442889230145166569809579965053855104828101254947288114168309014545377884104339123481820172936642190331565285287233738410324122082213276115060535071201496385466126344039440536841780711871105320419973493121446547072144176901118438434664370840777774929349491775524378315332186413464352511374830716990869287064356435927718226730724619110347730904446999987030442044779145511991976115181003962757198048399614460218945352312570986377700399002975780630814047724929558327605680346691473003432800540245558300106524119972866925847324732393028013597523124738863808087191313241808851390947603478875827539269000001688305827956911339869592837463478534015252887235649281745899133672980671648905176411451329949100412533090862750161229823217252454150329266736973798963527482391234219531691884679643088359547006176322768299832719138244001025696988136992817478388168432967396315301314018165258888812702230395018484907100792424326044317393337813088448199693030451811668147511374909438312947374103903701801215770787922773184115344256149104802507222399902669210898518145141967037655446619049050140246554438311273716773412343356047053131074786293204437197369971193666679702536184304939057889391960459932515724871800829807435436518384783885269107334433736585310444576661513493476562692362995476202164466802852047397613922688976925908409064735434296266011150435516750932155707952082039594645220548464991671746146558111321207003898703163362263312150677149583464849998998497584568138717554653250470839614864600615332110471403596508610688978099990749409587655099640929592810081333554708091626252015077156255427078357074832574232362807978885556003703419172791232804993818916734099886611280540690671768681332017827207075747356409962749727120483025106108755413748466562173004069248578477059647361320327616187937759925929515357288300146494071469029928772105228462232722855139386848610271842127360049715911476561354833361733954512996762003427941843633626827107449293864444413826641832480435815549713802889925222085932962174172083926126227452868278102401424977412641639793353370372607013275508730609873837005287781747204811119571618431104392740560459392214884951198534677233461765178126947166150677663738705557401047986402516069677228673897014051065488353309606540771431268440078203456347677616831366302513912044020603503341954993969160770736459471472463479038632130592269383326570961206801895571170739009819954634038620077083875051069630655851622497947192170385540612537463599505401234331870864779878212901781484266474782382186710299842130455509177784026007649678191889135622641985712631170013668300679425316822097918645832251165931804763045392609752725605606287309694900749388832190845589032500132116523020609494957832251809881641777004151261981948951569554642414726277050125256091761590317221962949384202047091551943788910838142306465606146331370666165484724995269795253968432052188389463332447649129860371779346972504593730731259723048096244115876420806836536680877766842791880258807233614481214176167704239794600331102359685338938437901277344311181151455349470324707864475177369850345852710829869497090696718985923962814711303583010146962447092814802528755974988613503136389207755180748292234134017580333660042902222521885407616802521487571978238168485754894075582523730323736292284232517732223481518146698974713952056994113321843106246470173445506241031403080259182294620933222379952974987454374386158969031027301099109896825300124891955538185699374862900820754307110362599745950708785484978000842974107698361489172963667148325150967905791781753744452742919693068244299288930141946242918827753458580493389931428858750258007583378401312483830208850356898394227069294100313840084523208651019517035718020316004199676832231582825870111804106907842439158318511091757470960731244458830294119925486131565628364946173591446129824823118915472924859378495846070505880310773089319115895776133060139252668490152925790542013697624899038639432634094253913141883868258209231139772110096025428459906141364625762886493423415839147067759452896999363298577806623766736316019720407992082802090664759170541319899239558553414909580279308520393628349519009918695848495365522688624681680047563696820255530851514033563807518944829528262386107670695320450697492315508767522374434602291951463445760091621161928121565400731722019389162236990127766589354232438747540660869950275476462071088935229550744723320714711219569635812192237532637805497367537700111862134478136293271191383314213209539967765918515319802044494942445665954687744238251768845245047634419646932380160293450803216956750225397791685378455587151729059602780267067900880506445269054509775779779421089080586307799558528382634999350916595238953359156440232508708880215238542762835328302202002209522614112185189945235343355586512328269713939234263052382865973580657697043244102779085777901237100241035323836619569746483413775790432616306163351696507740684977348045362102436188036458856747084562161930371081660973851055814773086153067610505363864963096059809364699026428712476016767287532374368910528391382276552910905128624155807758186349636894080602987899452053358213367349853914952448144470119368513968420247821820603635293590443429605353458035600051774613269677134455713310521724406761200694467619145668556761567384126369667042493436009325833900928092562789492181945278510219593704354964854917931104074992997537049042361000937007267510574310829359806541712442991240025680295698497552342655742205941465190843251645600348630248579499818779161972218228046798712409586062527842934892835259390432741154549937714663695202102486376271735067185055452695296454270590370764466306865633287507898663674923102032466635507771422523942331977900468205695975821461712077622145424594295375552101488170072065759669332489312160588913338585190087163054887818441049448604319300795970211877392066491014131482677404566273116945863637409252996051368735116884155190080304425086968941121319827370381745420177720775578071437547255041096782889725531982466934170619438021017171227970008835722214546270622343839250347883864888305148171529450145925012140752010181106085471007022407760421597905488564924657575907178671380758734097345410197040335929481220095458910630534089935103863754569638806482444822773195854684609485958000545599630397615949146956018399384533505486516366333800595137857045741795913606599907554961850476826106502105575341035845910210882310388377124608941309270740958621451922889327557394510649104956101045996868100982970576355654324689747984701097758575836680765451148305739920067717450635151810161431865077571916719350264453063568410398955277775731872466093178869855344328094376023995466531568742551078392439996776976571944688583165520488497830727927835492616540304876009588416107545286947089523084302889754136530993284919358286315787230158581607530597280970205865519111123438872466909335400176902761746657664003679330444486962583012767387428311759309601898273426107018419560774054165319354063142687756455654523590899188909295235793543455449772749086011562642745547595022004388389278746841115390279120477553200181881925692858447133995633549464867198059060779894706331873878812116133554624448687240455974013450940247827129500294039654522671169722009839413811653981013235720099224046631095535384144643830616572090315936191853143273202240057404929062906251894990375161487957837251969131033358348157056714143423187289233563967639176854800800341866883155129613865002992804312215099985161175055772233863122855433210281146161106262855523167493204272713800040112376083111866132668541110158906660658210511257795056436737377803050298888160425198408134217255722843752338794039682593066752011698646763839907389333275971019288659951939408521785237540783483307505664241824046664456003034902246866190194905552447321005405322115614056103461813368515137906000569128749323796498561411278711012767139059106335074635055076423373751491046583143806965942475274884773699661852361481423909562916433451843366320342888140662268229718392709618247147600781928889884923452927796536041465809191879906470824941881324913913078826708145556846565660264834968218640461483966580505606355894852817959911355421016709258594357701286256054145473381895791820000705786971510603113175507822181799279140115359947399211401917838092516329399230893668517489777280473510914496654747454675525585520339027299675695858831123934567134070636334042124362144623147125738945085891541763898493076852452951366888195524954732010211709851206673261740232326754661704798744624282012121797458289073572749969067037773703969133850890649525225115891657763645231093803343299275453789753194117028074124277286550073567775330427942981791406711954894510452304393553510773354749442868883479317565940299707479970924547499680311862075541728811883884612825179995389398964517302669991945805972273797193362460906405217285264119287993415295413896595393028304915143517125551487898587099643509901016979017896365177251051102311117668718527091720432775856017162520547571667630339473921233678614563110849083460861439714294082851666476722543066527700660165639065460923910178754439471626326820114654554401198462722644820928939218456509377108526167720953222167239297334935235205034805100150561931919868927449552546878194849864510829372857820841769763177004895235147064230267797164297508929609605237022654873036103714820937555263761781793704989914202361359788751220668644736439979418194195269412087394834300611329600885718529544768388026076237759351482201371615772770258663334139035297157148734359158726782738302089737471857318437169881538549774338920225552772825167068517596385566834389051297817429438034101434603817131775086105343586470512423643281805616759444499912371415992306042894131817568705043579884735189312160577202949385015290742449780235762997966424513046421069224723959636245954712015704534544447324027170080808796107543230831175239381695495050300779601857198626365271990541469251429528506505824280301094962656793675655754267880553083536386183681398743038594570114357357666170647947767214530326048075711198906896299201694827861443760630145848582377433082102861117808052259818171427550085894858885853299050011268363601543618844614038949815993032164767911867378574069088229599435546208446147337615018572268429472542326146568079672016441960757036846647327112566287104475426533948494703345846639980599117822202041732028209399212859054367203480948632404045166238261445604684660368304551046199025733985035638395279399335454072391860319062017912385116109435453458379049695970095049772818142380967351446892904705535804663903478326450658778772908856251873055521821712904976818514719210671733319061662624398731530996836948062377066427782127762283904899384718950908083330188412007239675826181013809369321938716932684277471310062052871740545035201619776974624787148245967723561034212081493386681996688325347654614488704688018061750785197292865731753330912211675733375801667892117061306067453268550799140653545458544188806957089596127837010662052505721328532600716764254888930068878996203743248215978573296092607703653419565288555866578309068317134113064019001654999711986689757553061867839659735435733176234419202762468831442292108782957969542347761397079894955442013436977499413039696530694617802887537651099353185491053729205853900784217184257596629091062092445449457857734201465415643115754682167450400225498124568092012729295639778561726113198036037958730808197619014761404707460643915375679555822995941924962817941122713644461116011545042874380991585774067537866208664715999262266737155033729874669325515577852083270671137128445849736360903129873405208307315421213702520894973781762918385152114696687504897612729326149312697733814643173325413338496682256628897107123311918838240404030651473239969029590338489161838870037612628888039107998459948644807947291998267178149864065355713971350577325504193800459482315090670740958806572715087929108375057596553450705288015482476296844135291256302717316289656777763152842075053888392188747315635055485394787678668000370759808305631464132883084049777119709769356217436409993033418095227471840703169594172772748317353735515581720967984759859514906430102065637301080909404708141281755781246306852930625276528714083650380703749976147624153564782949912208095292485928229169007483673281072128442969209366896712393525814369345256098495948285013716909290899011341948346222354094164861666707384101078536262013045070296525873602152840867137106576201770640564744098451187273301611380954217596290404718514883933578907052123733110396254693247657012662274684323584275864177998594975908614745809676186398041791845199799202874342087162417808624022824095021954833236729637165418982847808786177047669751932322169193703127749465686199949605029910851402393790467664766769965904025123634870311162321209448241298438874583813824125278939054029874927724158293866551750905940021934813981827713910682406113320586223286038678619156174305369861602613210677124765551228565969075140724068015434832985130492296846027342270438334506765249406270500935180502596285095000239372680632863324328854703518221132661580379178229245928453466678453452862823653574965584343861071781573062987035610340413892790511365091560945905555269034271827857179746806098565032646268583192870206669943249141383190094154025520307730140194169667528961965603952942649085963152938549360300634135554062376069968406581545947966205804506080876597304812983297609724659094356101671767757841909166505562298591476291505341380769384693602173421573571482341393909678695977190852961976402017687599622197679131338428353486067564463457533554920029569263927804100306725273794726893914899435374004135099147485705313893637080472216117144576804878071329385099414998373468709687852505106391534599043771897934134739162934759226998336985790504766861407769466977026201706225674455279170945588622345666712943801200009533328722615329982740612869683839781125472530002845058986925062225749629183046305505920546024963194942602498396466211901182665527209972464609875349492839914119766399163023910410263467428295442180837826968191679935729441070511548799023654754281431156543750622123007501857181250304695064495796244519561640424324606992994915015282153521827484207390024746501733170550239614354789818405771881638623273535159281533399362303200820764766762730645358297413470447991291462714483210951505294616074325272575205186609721118609151935795352603015279555959959536427099516419749140603035969377663589845844678497802674250639930202389215573567077539717470348040083199463318766750078211840475186651947042903538252616414686657439952355433741326883057566929382384939341302536099431297556485764471617252858684772335916714988978270042513388901760836300977756180304020707303897807908259425993772533767174342827151765262063237140647362960995774275899983787756581702302730653561141407376000680975016136958353604973165719775295633591248105996943424847220580084496028614583881475870202437133769761462193153438661701595588959085440541899095204300479924198772282298203711119330339325422578135803809464344614788375281099027099282210421675293658621968283502688553206168254296323539876590461826652113632696915655426667209424328452169770483006898063976566551457691336373153819506629392003835803620812939555547505481614465220961217998309125782771007014100771386535243391370197951040483009143050808631554338725189973292439267516753586080815197037136956444213889755677701771413051289811666246205224920001099145192608098014217909209139757520620054217417766932178066057548800043955904533037954562650280919288577971543376716235772604018678807862073547070248596217459070359714314659445436062249990139919907946605243566188037828219104981977629544242831473436435658367024667746785300037471854541700817270096211055128251429543034026195314731358297131611374608911164138443910063510980247586781939531199550106163102600953402548462071077900159472105647234625110870446013585351554205160892492737010832128093718878282311586461512492221120057949648268728291080212792756386727798435233078900082516136936949602582465808884361847838318774283845829198122987488453945521587170119632565875216244545422136046690265279113092050298874869661201470251114792982106418976297436099720878799317132913547562521167858337006469691703705836666000358165867837901112014263119285553399322132236116605011330580668558471894415522292908260036610110262935470647686534018755753307364322264116745719514606295034319899440019072108329115893303934851924432479745879227630843116399849233532763300285203158519958893644766619595431182746217897710917111441758012671220928014349700602272847927667046451341538518792101334511489446596385677854682588146524041519659226925125610935622629830745153727913662924371649786378685327125704098588273467065613146453531846781527203747871753362683894061215917540617773950634666614248646124107320340447414688690045251345078109932529763424497562206937348136052640364103365884400655386898550360504348518147034019439174014812826824131558924361853335702458016626736856896192487365673238845355936969985671400159245355741504527902077308956540799844186108764341439880750824455958724799015850579977368759776008052393061451388289894733257945291402640880057608167759475823718205760298790857076402817585097491175223026439251384029599533850321896313231448906436951682040352298930163523199170312760828851313535872345723903589891377048501394434799485621844320155822429154585437331433585155054542844467583462778235830949321731900066071939285205200685961510848202692904365012513303617146311700358942755295349284807312641428745272152850210562868655583774656641109885098559605571350179503295265759028469167753090748487848159131839842020737868573964856896664024750467258611250826204938319782827833546140330746951658350779679738856563867013761949655411503873519690238801500029775182671834944919438148549794810195324184107493892326675027134937219424621819521757110142427678060663530123844266658249254910803785104476704853632401615540703440486458669824658653504036876018986647400903484156619681726512972955055657391829891226473640819587101705101270253976759731900885138288617002357520635665021762823153402404086495519210138122211881761895960162018144867388632958822716167958607379901998208520489280672648879670636193034690867555217260668997702609448306965816359704021834965508759807481150959928511417655193756332959492996376189299641099963795183904422303671131484443046701940627472928462201720950325137176845021306832657883864265104644727344246445422734925450115772975477211588313548107784993400224317861725788096663642377670962676111115090511786486234991017689175112762586729886850244787381103152663052748036684740283590100547206738637341160210897029298497633358564002915122347802439007601807714156093131234373674776760996292568230948406290132655521110019107842248383428812508713846409731410539391850962590765314827525284394322682021053963578515942898683497352491491161801485905814939866492144165687241948988704986959141839292199180054170496655956176810640356132486444371584270046704593917889947667753851038016677141111713444299067385468685139680214381361125214441363112515095270719193062961862632085806377787004350182963753494473264956607687156668179423664908427146499170542192436022978388919097640887446349009556834285941335718602696934982611856645989245662377836365420606288867734163766526020435444227642486618714046424945176894385968029904514618230696234985496489204664926424497303047430505144980700663081631584537442703909313462917388752533554208493247829481990181044663154855304010661174080447470129655673749047138911615993069543778744258157095387880721583107338898502468351425328487030576689627867384981143923819272598398589697207111988293134480026400320695446423231357388716220644334961060164454587287153697391332537875842992844203466703768397388999635044739771713332487158603984691868704060344350048927261130623535624190877633347695572439219392231339427227855050610558115867431011490900965682726981220168422573067887145851149179187733853572150276371856564522049597018256856142652913166485528055335367408955144323300874718513354176095850519386795355744641463386658769384377455872414476311024163843273601268078094575815127217790417497696851017307351598666112455544846658396117893384883200837584970586100618307395074555337637718813354648655306172894406920304741911008808265721058231565948879387319026857766428874026966992011355091856728177703103799249717482251875613647246633974687446341590399617799337749677172789253978420908103387464192449481696178035270807340212081512996933346151549931571701404352515356380738450089576601413211929207517795341025638222058633155009379990679945832639611608573333903520713686192304410573735589296564737892185512735073940676627261242831868483164511330482828022222636118657606106544699964089841232580045796895558899657089993877063397010239308438061003225483127302893573112179836141640124546537982745309519062012444426860848573860325797787989983049024744408026306557101329933478770732594188126629927967526330785416229578967055399713345659293495819087391393869590068018194577250564359433348983868339713227166374412961164331294278572782710762171754070878871099281028636508163396324176715543416880920976204619097418482059799313142087244702395224768816300355019747426154888143349953817276156874692818037443137974879266556391594763646431371276165299562668355319675128100417059707711257068969656750597111601587388981625549224186526323070713913542157060624065518420973118035659838715749425116000422319696138629652284111732588930155777118158765547131083598289535453995717500166054905071924541034698226028254128142626886804127014769692034978752483405572518833754662956241529826792314724311151317905842347877917040611577182104380689453669417309983481743379921405431136339482300451409233698064368072039506484861641761770736089281456980051405512900447412901275455767888574129063115432257884400134560694623972928884220741236141803010503056825818911933608934834231131093152963183431950057995363625027733968853278609082002188869998977538924693983511038969190242734837626593378198474974307298045965983290299286862135241955487240954382131234915864380112144486435088580393269746269948736021646124333054520652656460247937470973558202154390478156494241056164491845931735735749963016733648964343020355241884119474406649582444951716496458186478489228246082924950918791892658909046547722852544951790475588043417922694562528808404243867885785246335841991912176650530087102681199272984351341373587185404262927358830105105463385774362951161101526792333549268194469276107497640965922595127065146261142323874043237473464658397660037208323419026321383542377550997610146070279703116092180625807480017587351086930072741198656865301394259587138886307241731694821285089910885973351127340610996350257043889870991306867943600774881529239857358176288772220004744753228927021162304138730643712140046939353373555910287152872915829450194567936171275632582557585703019219126251618465317303443110026418940036510494672004638673276172305564458523229942977857082987741616358318395025191103370257390316921770468092209553351554734992301833983470443963137667480117232945673440601196938441684726053712507632244042442092524789671030371801276422363187373872158604476090055274688127193985134457221515903337643340770573428500328530412727608155314410210006679053386150849193371061176243136664846818571211706557952441884772454996937243928183748916669623473644860278047542376368613492431984498296585149370491630883018103996044828308504375597879029778790296459148527680674515969602720807274890312009990915601420645802020490261682913038134719747076109323989335961875884857854718899515458135949622218797801669471830802014790908172211548689128161891081573528728100191068255166040139683633121538823432164716922067607724452757888172305036368969837076834412230437057675626574845836470231892634030941632419937641195498443748954203208110292200635798339664942689068153169940095485001248144451850796992002293140409462519496823247431535263599968463120520259930991312676678261217323510155866937316519783690550397091458479238396039707453772773313412427001139246492088150900269652390615330486627649294276636765993044793141825480497685742674921088592239266193345360131601688973254456606003527755852129940708197153603468543373147885801000852910491910133808031653725108251678062871172489005856028208183217110345259041045969098514834159670508621491289803001714837403975594617566200894031697369516928741078520680831043562349022099859917413196941537060439145785652329711720557536081635691028937099045738270030289993106944026029677084845310502025383420378162607938001586668972063758926920621735999669280883030921910442859246580602353004074655453660978246623806896910862146918352221379144834485487833015011553227384698956464676868633305357186480332452160936862664850166819343371431422846623186650931598444741393806015762089777102560267975224390480152658253365681117362182704802929833594197440596841054413901251657095790371317944026243876888137171619092879683114802765263693624910369606277878984856051666043052012931626908169398611879421607481234203412141903139832772788844765094950678082457524529309751084247240690990909981693324116653497120854377397508792145688563861281627877663516678245547211517798117253871713510150968888935698730820918667677334505658399783220167295291759594871799331632027809359980302368644300754523314284491799630877525066859479762447464409190909963839336167108060378465676125363791516618491472480367422639168587572478153540254523704243069954477025072930250599160190830021114137126169297920408610033073276187096608647015683025875920853511457668016205401753914029472298049642151447315678323793875560691541920729285301315570165480275573061746039701738959466818877686756764739120831523097424459665480484122610869957277963092864262362023481966401398517500392321960172449914065974277401247968051316955241181847370933905450394447365981704112445476522541801824750562463897379744292889530703896415183825281376910212792498960642447376266669614605955525972071259414462252144421025357006058935455451927980065905539786228033784033027416269588801342123850493725478383182931370621360304556803908975867514194847188861173761062301575986971638514401429383954763029139972333241642356139853841048631192037324580914442741582144239928819826632725341015580116852131031293382645954660007346169549088614609359652538683608098531145927636009126928811523633210186048855716789647379017780550531180883827433245440264925453195056988167417814348640256959900210120027516948867667201576205727362096971172745267352664696909477516107292103151111220664481701622307751642243004549721904767224356395998372650923791510721945912202810948704228689093841151758491395931431112581495846383857800915605609681380529859208569047093981722225551235106988629895766241778428683545477193380923539082071290752515426788060008472005281256300453341411830194850348300627400150231084132276455361559993490581017314980891681274876102515788703591734173408570913826122781055574618476027169640217894847072251263799777121191823368449553511741725483028590383943718509947657102165827849979928368590751759108311406238667378687904884197825740702935779202045427940495987177587962850881207797053284519041405585347541770401080894752582144401618712306347543228948739566838116375088498479840951593826171889998096539274595671573035035703580065469638841858940519758592330703763904878216733921765687552009346891570163244184525737606863166100122318635254615008066695832135054756446611727271988010332568648242190346807324833372805001319842281124134899507523534170706779725649482858824397380780289358596680001776110009465835467587786717532148718378654371408785881276854447548361922377713894415034499805283144935111083550247517007931387965786618706566158241435131793135495880436736998671588096135106789524505306795944751480327388983422152698018724842080158194776112544331973158560026578212800188632692238573456724478207914835014479932911485562641657368762648252653268335758089885123299722694640466791708809839928610907725026215019848170658079368093463889424226751061807154651422907794307593039217088426408076109577233649220662913300340538891901409870270273144646576817813555160187391467214686003810137814093607804760143293697866171590005670166263021747230302594956854470298399244599470536111244683694427903775345311662338498427815876914211720110319177166229178044215190413896423539453518635400065128155225907763691824631277657786257471212677272775279161275200749360369606535695153644798006557109820644927467491492232914405111566414997739061917570519913043337575465597212589548446608717100168882871598547314089223837356257675170190894277346604773553724615770323013892756742877160049442578146567516931620863091535562789777403467684712011861790648693359280322261091111857363847062367292796191916059601569218335264267142918649049827493554923420811975300419148452966621592066673998909974087975811066428063348409599256777575844181727063330926264202716739264302190385792915271640745208235471073749154469443371129661124444013927660946740726711587587924403545309390302110133366563202252342939616555137621812101127063195464343413906083078359284425402598118024652363579070817361573128819911009236415665861243734679746840861279917645077165090874999189850970903375266533522263628909393714209630480258101977267323303866428572469453041209387929703474131744644901142737419885223538140726918458440548375622819649127057475694571518818023982160937766591455472478738192335041812230713833547884313884477588736199155706431096221246146357933962034567550640448627454173195256612884686661656731163607150081602976355823368633301437050148784900383829801976905893438399538558448281560352334319412603557434721659142442416988948367869296954685323770398510460562899853106832822761639990850571586872239278367269956711370042499586830493834015208753872157467723915063060123234149265099958684458857708769979326627464358083136647427230049080328761552024006187380536329177003060534758984958984367817243493601457021192824834312025155782697509101095723350786587039090182360876637926891477847146497418360567570984825251565982922551488555047528624447504476663227824256610792421417688387607683858055562034770903699510152578749032261512985924618807878912869719318108735190685926943820027174691552266861932468053918681646422885966698969450521080794778656794268884809896139646768535848422929591935590890196290100980029956171919194859836434583678143620225659538943542877563120625996033229294606639896899960483216698068640979121598584165166048335892871794654587839110603288079586362120732489391553702645657852832943874831283118295981369806084388939164886755565311245127825979472273080674344905500069827150542165594804628944801392346100895680737917150970178284782650296655111113901538219674935046722992650642119301859956155548666316198708596464014615522457589546057745600468291488337686833239643165689172408834757326397755306182551001779927594737121132491185729567756906001426382408741085720763594386657471898014883535988682172879598003232258245133824093964378954994179266612660633548684261188489613604067827481391883535142901254402246550793151390295189308042275486518459759410179384961585039733566206101230775034476909945987573424531832521756983810027376327881074072223360889932823282583654877337796401456881501410346924129501235416456596765894947847304711179453907865979936348475957004244940524407913721419339906238933461445514528903290416756972209237973204408844444423583602164309733110956069743231319621903804473272994543194692064637032566291247269714765115952021533769027033916889447234862197535399156856234269224046284783136995442250732066578218603060786440318146315846763349343890295131941497027661194416601304134940902238845981485269659385772565124158111183231905434614754723012439552671219174373072870390826576072274506176133918454226425929343723784184453754917595669177002643763039723795951747850062666143520217278862115130353262222799338617049509894749405500230989062962590200638343118788208507758107762043660881490545375163281900169700796583581719796219013304353694483030923029659043546663755406243458218896333041246425596636128606432468130028988803260176518997457641220056599020920521152911436443065675633034752898054299141846761137529002385860510378413185246117510085380620934952919507559253696824184697443301568399065009007385867062324457916164045684083120100574013186327498125374169363503569407906159153735064659045129954883533494366346076039549550382993040345632748512912808105684511089209799136433344499001732449964324599337891568173078025493345836900004581647258040022738691522135601255485405284227226120607269391958829340177811150208354722261091293197440609602367226388458670783080090485107995992486504496982490903338567088050894248799231870397293704802003860572181910862437696679900823692462288321762279360267656004056876038019918442627890348186941862477632046718826391152435291854132670765342743166137237468772370053059708744243582250763468934478086099012134557714334229387267728172119038525046068842063748126980411697169189120414071871656147232151489443989401415345339234632157658631016201114957497823246994484298556380893694104954383169981280964926287318389766759020208185318798487116262373693050445366532274947553136626411167034715159284922355467003960686414661328075810624005133226992405474439844239351530906568197069075515133056082330810646169580310543731896218683402834070062630709448796402162292685193567649086235809144283867156371916778659786140403608527626384682778629760294907521466848591321312274929625058593002245429979162731535781900470471035109832838803697950431585422294931009860308236099444565849077276866414000079299432843859111094850259993796667979642317791460625746480748652125249923999794613362905258759778402299281413041121730944084953354267973216729043414304877963672390109070752547271740825917153141365168012822055949869752192379777034708010115532096877525405863198469579631719758839636841924166782903742102171776385503389186939538322333478509950678485273393427663813690199901589713883296818845703149010698906713515914725538409255274960072121146366662216805339372854860156967450944136434445471081949147595977305005056887503906640296178852547432872137834443163418832571521710944971019678360615480216404010471956919899151734314828532835840088486337708542837747970461267577595092261772133444799605996299373052567423660655895650355240182708849368357126486772960462610288208438492730191879111587471018482253354582151462500171976654174318182838127324348028692598367400670971699263437593001952746980220606245079534445707600674240872000609529305845618662009492127117037064401646552320906550529238483890140062937913721278149955096702738750777717104406096001744810790037406131810448548617355069800991012181785356485653584855537710684196406256693261076565221378463462979040326588629615735433356287377683197720763619739825352417237339464571399272758895325448532059748624133705413020017684923464652990636166208330011329069451569613440069145853151974767067215912518776695894513561644047983566212174264250236749885219671798594310837887910985223314709220178545681785378180166770620050137792586215736718614897547186419546189447226511113957511632479510820968797770449068536266979668142309463148260085115428467424770868983844336202902999197434196312593811260654433292160845334161528969988295799413612876466372209420997202480051640014471953323040989656741431118685104783291338091990132821912028805389194978066404523778961334577242870890534480679105235567710813452819354212311537159901921221490038282690043733821400194871931501442773704531226115323622123167121008975206381298892009196321263246597090375337531931972955957928640148336676540844135449126910194651050964926387571517009801394397127034798371454529585755158832088762408422540985013858009835808522610269796373206921686994021154931345601952079730374170247680818995711396674422591675335378051457682368662056657812121488023204690112195582724558899040372058130359931470765070381545891586505638022541804375721096501586170872601377735538594841433725365652076171437144577044956490713601611519057050156301187378049010508547083241419478394321275436208172440071498868782898898933315980351842070459067254872167506061924726039305521032952129557643386080699231416605512687109095046516933230266831253080482407207611457338614794799061157538486149612832664887551115591967591205004526468639549339383734796402416683809591306073558375903657169130094233017170242557816262121881267915156223715726488544977256917048836494234451507968536086109708985179744996067733430086219963547394344127470257187816639924066705488010296472121657343984267005617666458403282097824367530828118597730039063210293152008356671957772341609688530339710997776743807585516998705932235312401104371910192679288740864942224738265418299251801781796475328787548150531449920901976708250092794599515819422237817783551780394977389762415984096042901127590318364913903051052682507964491375796169445695286172262540110981012406751151759794750269642400955834246469315852314072297214880984189000730031222382458899177793486295576794210768439430049348662539595138506985843786816143304690581356834043860300247846104689337313796465212511555517544458915842876204978580324554987154543441047595175852373255385847251795177621195727690993198069219138662749937518581591745345361237132537950260067836890939873064693958005561491099343349309583242217499676477760801317164774776705121512792599088899364622977902641132653065921363741009174967752452369208265317770530211631763086092319815372228710515515422829101792990999578043262727488629761726989073928480084045951948257763662024684827214563900743487442201668223366707119518890870706951877727020714247362636540571826292991612556445399729676785453100778548538947892559561133193676329000981055093277303708606840283272688001503973571217949631728173719385657596853874108257576414356394110674984316511616518914116207062194863882424019710214144021330428601860992928182955144747923641352794548156541920872504547876196025447110414257685491636579491234236261232177485815323203084669473555211342996418120279221195607077488777899556423637547926342303020109505878112620292847441377356756749100563163209164379929285638932326184646889687879514064840154572655173566431492554402303491730600632226182487785923098464330761049966698560606362935294355003230296609474438432759045109252107731213822658699862756384354860236826241065460631021539862498752889685501686497827932638269468605391703062800440076711693684077578132874563863495500277685016668602910343618931168368315659047771925431288742689404299153072429872492666957739105649910236923653605040044131857459826393200579780019741481829368440629700817211765001032846599622788041592679407158031719206775391905881655183571780853594514397517671695189459634201412668160760994187783323987123020722038733143887991041825398639984115571120237451169576878612718158167417715024359253242392931854805647912645932443353185712836841285727718910095994106859041958163709584413702008506705084678013073201894845733787841012065116109241847651468216585490886467094530456366646276183033671544830015623843203162002174533419580714791742120005884738704027768516913219370810584671250684655831747924260897944112412210066421684075360415680267653610579061739808524977627477391280748008065720991015992924095429363735949741661773908253739377664429386003620137044474685542524852415502348318278336220961479895991852476623958208482268532568085809998463767592307233070983689481888118383230878349515829856610840005018877621678785485947007441505755945571361473346811415736795525752193795702759092190475423052948036853377570201567746623898600591415178088291746366830249062785798243841574039970799455745617629329852228695740432565189028395094741646457938326764621037675601396655553323955323861557457308101195879483647623000788990723957772027825617595157091796300880636703145190639906795459005278660667866987878052251509967831051186555552467124911337729843134523014244102067838872380962170001915386493482232019371504654006058737865089425483502215714398803732112481644206555243921751494691813190498466776715227851303738646493558284635014018158352107568758509168266512182940997205284521934389837385196151442517660466620696518494641034347990768607335766698856614585135979519601313391522510194151608171017847728715272957386738355812194587572041410930228680176018201518690984787501229534898185851127509854371184520935579178630900399253616194614174160429858374068293533337350806594541653868857153820148961663033328692726725941638667173005698644579254009109969900668881312392604650914181260189597500066928952428098755944544898829876038029777388570217989324182173931166122327725943045990586321707149687754323186700623315880945451395684447458715141699805688382401787270007807145366220287415998616936200502109751887015624068227999099636340018994770985381071834283331492125350342907983461845949269051148144145265906596079243729160829332576632574626232338060531953863900725731853595606026308709863032348557689857218545074979064645807550386745658577652383155018590762082986084594177525705659239213420237508023609834043849730591631409690345324080848760017179816025596853699592119495083201972077786117251122554441242277484505871979406744931231880265521399618352711653080989032487063414461201853677854339687056412926335864009020118931731548576981048966955513690936603482189555572140914428174322685353038348000876426977492580464127267962153420128336559691261395843731607344139408951035596535962274315440666626303366690093590966140992093416878647009651843461208456418368064672539089981315209090205489626819353969912095456934475082682135859776411260990802657643529024137663441689470581426457310431322086490496149464314371545566882839162679050166070442585618721188401624791666436914089305406465224410211820971361707896820298113895360595758631420688875686946040786720038944415243187480995941929484693319778567392368046798898559701084665261246257998742496130417597493187778275520293790186327211455837280322138551656061554158901222281511670687052630907923653930995574443329788435489622577898829422036717471361319775494565711324640237748849874039934930150590861080416518956250840776886505592897879957663559287024711958028531422726514972593173282998375274595457455393482685006555698403298742503651418018253081226600932654597016161305504802828237395231108608540991238518936232097297840085849294939049714791991458009172880986045148441885560482837576926092304854055324251598553567767277517890269916640867148209512576908100010410960672786442985993541855357440661063562223100916810138496300899205032549166620449347662382776148088091904865098578340628705211808262571794768416305782777315393147872566069922241462379743823295030577672214362946460454767144111048174864598906158353849327213548474351367118503307555440724999692868487885273459168897750646547031957825948825700570030524658152066221208008424342896584686308168417312791518431266407116566428843569982566343948487953622190154741053363596831899926120404044274959337170038377644294996507640319338211507436188863191597149830124839865490067769695111602711751308026962333053434309640229817573866784625432130976458012541109823567743405678953171466562000465525023670949393679194650734056745422065996335982498787230753386981251337642382897377292906946325740251540133847993518133987644015024895231850416835215935184969804805973143207483493640966507648798134204140232977848875136396633890513812612989848849874269655278920505314876388554331429767242840047617073052794287953409416799725752361945567786209753786959511330529128167209381300548433294958159726700985823279752659962386772073234667774414525850722527829128261234438228745670285101131715338965733902304500923785529669899654105500168329338366257745255676880202283786729535409017392477061871275796333593576284828690122213879810856715449089032073853624895580730371855475304076507244811971629281721210693148578957809295549496793169980647696752015457346448650786375697616720912171931608589878273545937648601958625175510539497438916081469736793961915475349203705151066495954862699875740826057052081955503541498388692341613619832832526362165867088433856259710540310060716591412736924622652035591472961161811530917430513063800269157666017404065735355065825621835855343093085918292892157169246295151209918139431243613142076662245461052576863004370545895303403648959429496206118391126528228656279855394266122132085429680541594771207529199078122702008183352648864274857892443333576496433838194559314765497838493494705644194856977577838116256272320747661036443550629592462314989427155424879203634622623465396777022256670335552034477780523813393803966327347596985567342208913510257158919740586291053607826217959859924900257238151128572608427821728010189299148163259961372033155622209849478588069310493044387278972709519778844867736644107390391337910142542070957357869447697947999484316482390826940202308962010544383533412734622384396116968731222477735936982892325941649536920887451053125314737059386809417157615352574279471162293852613463845557231537709337856535040798848119891306408885638928923562930534612049146916661747309203484364762351072351266971130415151908698887785314601118851009198313564894973613258233916530503131827429632792997859182176914974228302400750876134390203144980447473740250247826545009009550519523033361462314727935924108637369361914313743761364380452849192647444313939034740557602415435183346986051004087036011267322411787797579118649651568418084360044404718541771456486063986300787865189687239699829341619307197989099396165226159849000151027097563713911288523820773586716116124998247725078157080918812018916915925056726460994500801515581410113122327807285979698493471251033658908620960052009005826127121327657487079439770373330452198278595923277664340350157458541173724834015147049140336687190271555592221527131275253877463839023002253130706951453256081476496488750393858631594755480017904096964829080139717718982722838462587854364238749620940258002147264265672101644342595555536071134220319921360105941105038816340464035342493638396938680839951174906273148574001248362764877196302863907735201504448108781077443830909860972550476809168065384784467793405320416153016950814507838873549914964023408734355852347738227376415691855173211822679667868897646639538567304628594566782278321147569565451346034395050197890368328268139954261367029992424425157853521466238227879847923264009923868267461427615873220758953701970250923589047633180056881310325960209598907800155925471154105864196826741686359323708489399726185509020616666136158656462263972399043664204201303197411237181427731865796961161914951535815877159424979034419464643418881098286532757385420744699818342935980191955140222830373762245158909403410716181059115917912545167664460649308535650424934637293200253960163912391810425045112786262685095418643344715183302069805868647475608046883947689232788945280472692495548351925060493196607311969438636572587401599365375908482213358611516168432394404650171787060302713538810425822075012461132976555311016686853717653084085518117269245582843098185676698430728596571321799060754786230339490436260053677492062823497760908795404065117047913542275100718144127054424730022906052702723782566794610134882769708994517930343332425832879711119123674280895604250232487050177514585795356987183825600756571726460183108497746956114445509905509377596433526089672754734656670241269075471277251259287775146116069895493363991591364556685783276561833374837497802734696293777923817304117458001864492611380813085753336835619564923089329171258631195845366749777060756194477303920236392907178250184977496933600583806803161587498749330258271672272441572835734663884632179726901611299022018334818793832492066163642004748077748074321991656271647379738386954160114629522500036543905453664338126728728840546419699016729545010501917418425801486923810752108414480818634879174883173505528641474123562948273680268977994415952719920533153949947546276239060872814172271166392959771077961925461216808820601982134109134664587125423269932339180250791614623728941120528933402975568969413591765622988891413480152998793272761904802429060667328286265234089483453418485340523840660586656783381510200709064993183955570526193019205635427841666124496539853418109942912319888587277344095072707707010532047382849237862405065855919545934940860796458203084222760277325735421970341179065797918564825669819659624502004531198413540071464784145124503374077135977559528332024186769701353831554598505160771203221029135983046377544830938257804130794787319959339884181104848831979412199221581334050592892288264017757607958703190590250448452139028384559101138576449003052331233870282751302128703942328383468073990123614157059187048322455680825853912198728477274707074736390645517441154607418252368820446325471699728287472153198441105404486793275047541542334102704391620238909458412308513010612949667599411142004129238514034904716981760643858237590419160006811673710662949942501192728624392559145342351845213399362129470542048714861880998895066516476454332344950212675136638191164333148508717342639892659084175956676318368863678840340897506484426266148278858831000705491189956289881934172088687428516398351810117595725528571529078813891071849277987079995889751901986192399285206943475451381461054409403225989874462274054968164541348260190432127693849321329060466746145750842305736051695385905647516960541414807375483371810807294995074006722741979337610134358173973199459262615325177154064010613201331003773276892632387147005317046431727260143505442642142454723040559745038286394697302808306361703058039443584686826760712420058079119878042062753201497113326818144013077406517012564020658426936029233538237396939581453811376069993653189342368068536928448987074007078122561087678678631535332994532985386071916618306447890121994542588598022801239452017978441709627384774417335546089184141254802385274917151925983205880028783326573712445928219517827501911577887596257301259898374465875381151976663450954780922773623132065484787874324793579075158367730845544617503395196710387796299460000587853246679597720368380569055699357723496104168746271275592210488105417085460800098537267351327961359885264516799583771950857284074130168647125537612895675639797606895177907700824935370912992470692117567930660111731098912097273166943016695979729594643581263549188259733758404717890786995706043349011727289992832008838024581519527083165590892379115976147696091955577941508242495909689297357358512367007945009873032255835540292088827203526639345425664574151515736725761598645884701907547679257341453741916539629695485607775293657402380530894099888624774408320088744888845287327098904748709856365416946835012118978529043403150090327804943661277441917040840296986775489382423008717121405745343595905369015850922399619276434529590340795897661337202376799657116694878478798099988657208221372899711802063865958868460537595593202091355697023438119496392386351680541300456048274014844516478106008445225498083312902026274612177878410763692712113575716622417015361322634023661130501757502399066096662844815725762804945547110956454503647554608236436492191751128678042118434472069152532320234148406461054813937875991474602977998596157286895395820315426323534008891090869545799673956377172810416611858028509816120296421569824300316702806024566678479780088815183688446318919923778166050170392242129122145941763487226703272937931949433494408723971444511574847230683034719663532293941438486661540312036364805273852984694745387878253992699878018502455684376451717802068203032915129689053281648919733888513528962268821866614943910216544609662663026542726894704551757383775298366978786226556890628521636695006968190506505480039614469540953438607595531989258572590583536449295712529039968656534675994280746699246091565802315497123623608794843443600416168657353376928529789583203329277404537480509332489590884681934315548303677588668147605248009059814424245099988359905314237601182506164368157861242628780362791203306589578155041981110147783585906585395542137241417079221369370141102430720336201717996817232261609568869476982148393043640828039176771280449381651750303748074834327955936333767470422698701508871681869461738454794789318858379352483754962685497808519524128126387014400057250409991467980472135930882799395877245076226293993465991311477558925009776558336862083534124100830913065962614798379640244005358379956927050215838637292592919220432965282972759051863537309487096120142104557796438863285953558234312136018033044220749851833210738595898892087741825792215021879274940310235391477573666205238000176924240775457958286607945413742318168019162060005529504376889672903750252142176591833655462292340644517458224487362280136768839335923987976920233492577099181587658318718581098589817484673171179253533373831905300376334855111601900599781028616550619530724562206017528525940505298455968587168255133778492556179857249382641862280360029690293784555188705850862643438928500238261919790724927808975530137039417007149023627422185814828610415265027584631280479934407136908954844717664508913249085928426136584643199369938766214098697284405839873803383176642141124460882820998414994937621046385770246526550370176249452190374777260924660605887391524247562412389991498485415834499656679858636073270354220230876836821017403706972432552265820783485455744746800429388228489703501315283418015435350060036858327106094900857799938722222886022803993090471143317303613615094750724326244297453558091295976420835613908143914727999665847710946405320836031187488693993544672670726995794042204246874968713615437411589676080303539248033328716950657027790195365765462195603073763876467422119471571465629008589391630123405384828698635028348744367431040233789493676508678641867231920373130838063313482335080183232728486111049583907290723772125742584407282439427892854829369798381097154687814260270337830454851820191161699684732756698723682285700939211363801248514521746942574529376798715228083620742139878334698548850798252681678286306551904844386373796472316188336958226236119654853955282062985582696040360902062143749169239473458380310285858588332098633715173209457418077036547939971277325809255938572032546040188004387497802204124684742257145060073861946395424825367078310845914338416856469354919171111550239969312793124064174235830429507161173601050292601987195714823264272314298569941011444839694219287098034391179506617322957757599350610725297033200028020046448327910433614429565409887014900610135836745675213324653141015367757938305438157890371314617404901873283010770144531618403261557015518732781411629976367499707108681609450362980900739189799178267124730998712388192063884665893743559213833771371765398178808503676753937604774523042487783128468498936580951011312585535283312994010590910167508461561592857855047218380652811039407092965422415785902765821740275740792308168377687737276233067589748010031402498394782561196952422294577952992193285796252656136326254753633531446037524628545197915676516587242233083025895687873330473123641908857717980305297863727582406508394521587025044767867216766512697603168749704563520750782214442937440348090279580616036183109975585887865787428711691877154863276216425865288613241029230951278160708677616239488027151940547472891184099502686910461848833163985197627986363432799577558687655417145118558528102914724723201319918956939581655756876554199161729229164938547358315947975727277398053964239610918394045718324808683390238637923657982458527925348271752236265658545914840551409407512990141964270975097612068654347170833474028904973185862902249451877037391619896523797862213968744695332413688499233641254574567579066070250970171020844741129152846030928023489557826985778506307061674950692127757425799480564709973245401207723450342664081171581280203554972859367870341869348427590533415903760205474286170670288369257904348392708153131131506131112604818627251865803667112402039243285201055440835079896778982218271718737366975662077658204442547383252282715254345762754796733871191916131725591855172701563749880426041766183310706557943841258893348820156820347304591134566765632375471796395910649800691845161494794545139461889715380305170946550065794435866169182833467067932183572353848324157949535849367167622598937860919095799651916604060521995190644173565657904816137977044718121705181262589657356548964354193486906680131594808180440084980895956132496379343790682572797748103491594288650615033641467870868189302616481906311725468453530410320514565199539871795361960903192671781899463870939712296590631257049207407432483354933050609907392863471393828584718985856474674541702722028261985746195497129681355805447123686683982329862458459584249792199634414740394263707392437876504314136511333993988256143932746686307225268942002113506450304560409727661169841903748627465456331124242301283283582350001003587569048411722292955946784538388166945737747465865197329603894075373264672991217950183770058215378250846708146510705855649669232742774943255434566826270049837780948601330978321853833996329790612009138311770621539966776367795305351281932956090524781741546882026744629622156180614389611788511125684239351589630398376551499849258692366022332196942133506811354156286853891698860930842956379257902596424691297803881992183439653084031425907767850894404955979573040495315066638061846491061454091247335334553535734931222657987088061398531115804812093001509048453806550387813129138731156577238293049417680779642110949716812757001115065249088668378525203490821289319193731584990892688934507770481675880417913266334776566639394870839480657850681866027433648392856100260185987618509044356622050815071860603922442481393344334323454656544235926842537259521569104890204837075145625638099917631691421060207134886099201545460625177058606365089617367649061537662713038288872944237002911246367187787170452077960443019926999643334429565621816214128315727177310973884268337640934886065880164051996660752560825614972205558456555090337942484580081611217451338117039089649193640256117618093537855682676270904675054741795762301438554671242984697387984617894055472103973711872778845769002207310838297503936740250036930171780357362277710292967661468047091212098734955000390872192669731165587527200477720561800880009441125141043012864649913370653946774613171781141141246760476756907454680890170359454152769949248042377809392961917279088638921445659655781692317170915907769749699738968113100575263362181908564502783804379711763411695438037594112094376555286853841681200450691387521645757450564683218938393238861758028970898171087011649767141666527213348784312257735797236293507607100917827084440518069605988075532805911965513118264238108287059416619951575060555786072741652408761243650637574588710429267038949951132675069174407451171504144902340000320608776144088889131839626211471881677349840354111393224552999397210154354064752583854048786869450362790144863986830838753044671091663469923486390041355681586520181965569219888599466102015267651419737636553318852794809318416677102931373306987109459308555389998069328311970435914485225999075036889158153952224889015016880207719063003110398591015482844843676393261854032349332673116523377212196754321010245284996158084041731220255649429933419395232004900782940664539770499361349552924659256226456079456452931034157537564098437522344015940743658156924508180253809060923726238235679353616734464700249820639039829030567559616456476586068512076608667848049154382895640123978182887092238459219898788363864300451022363639681203602799844402161130030218418055859558724666446249001833999769188073106910497125206644735856883411312441463547178820373199928667617476509533978667519718221248119436353062483127894954458885845757843980622440131363604691116503079002028806463810810763765288029137012844772398440714453672552383665542677466926111266749240510245371734677627540038720324803974038779846298693067044275843136988464892900179620498430951630032021827028404953962278124888638026599604920079020462813835588668902219491568570468185390607314684870260996570811966043597005615116412753451310145062332685542119421259151987299874008183995921088613213286737596358431767057006090294560926466884820424035349309942209452670893841230364141291070337849474799201410364416129974650020543920561781227842087298579925024412899935480699210645220008588069724471512412190623427475219391043427691685851002679878643507970418129602723861885988965276585359992272095376458002190660910348388915040962731855399411635572223236110139960307111000838170972264645078132211702995235597791404417890960363390280051772710341058311813411825530143309830692647966046006564155776631045014304004237458837018207839546715304560234989659709197653930658064096554236016155834464111854518562637134849451097190964978650120378257506423562792522877066408328713946411435661038578759957029176141188385678193880153834948473340702356596534959085012280281977472826816524516586074428685804036049038933335158288381458882645603951368308214679111557702093424830330489772991448828242076174613334016822347044183875399099607372913978608947209519544609151027904230858586752241756046182668529709059404335390607040633768269847023302623915722320771793907234558233292237327835744621831263702123841661929703938458355881954631651373601676340587885924179209613114842874875389705439027217613501577638593368815442218822888452710420203017398263046376545474213652505855520324100304177482431900410489801233344515285045577551188432218754814174650107664364176100797120996267771255450417668392444333950073199831735645382774816615547592449115243382595272951010955066547884003647037867943704806479423579569733937043035261411648513689942932743109595177506819545952025047736630227629498822702167371884119569005466526239513848335771090125021630504070494113923661116993605032759576414725115654892834568235270951420008232992899697289201841750335675252037075896809185505627590189317425106914112950305605512899452152743779465170473998609869254713409360725682866148539932067378161261585696284091820865428547354289287791925144030023092876811528353347389567737775568364682546324444299667961169019550506158583663244809722728016761483667041441322180582378527912040041324470540111781681006238084074480413737362297605454584062433099621197035166985958469497535861720868042709642774075829869665690621293338152009480840092886559312169965272161482453626988095427342635500296354068201320553728710113819536376801246818558709162902980582617465909726795961424824558345982161518049584188364597007812565541290880146146259327421810970414276376213276122400759468721852715592947551875255641183255155344248674682417541393456353333725420928896752524891005555910991496029830541433683912493785436188955058540993904274043058579673176890229536682073237134233503770294874151232975171309014652037608360214615167929724066113618706951902938563523813571213690039304179309897074246975557336056977963956919216098638090492571465868506191589232583106347411974852367059808939598440303200632044006340373041228429721724758525173762655123523701039573862490037606627101279624096373911992832594816452237308135557306679475473185894765116524664633269339830921155113884801885975500014754979822424434827961871655419258232474875780511728487669416460901402674413110962394459412669537920441849448101598252654346341732056248551045597535685436207893639337484590123343855731213262828010553440848738799125168553220685351461460613378288302244569462261882296835767761067978490023238433401515928366920295536173439892790012562447618941865220981795036037186939024167171829501596197469958367039798822572842310207297999058727197568472797164221585958237310712966429336055633978533352667743671966363747059695146019358096247187190887030051103206290902715326546321767876759295745020772149820772292608788891655012099677002335771723944981452727741351211961652459451749823410986201527721419487092591369227295674643141236937907670639781150238508625460322459710767928905351052516319552136195344595235052942014734337594029571894212009873267180464970438002233544722847574674360544114207082548929735140978357775447817793071992913238202854959237578269903027393769104078820670454848087261732135191042150568312946355751541374867578835432475221787892768797509995757394136910003380863184569810327780728873121800796672032289241374250145416512867984368137233017427841945390550094292270244793036462979934313491567940104202643643994687914262406777695864149396669656703269240906716620761615936929915896870464452936545964210747120457393541572392281372743525920176656278566160730890753430326825789276816917422740831672779916177134438701403887926047788361005480159967094604654356935474738694295306517335759572815793106068568427753325344210035745001946847073472372665238183461249971787381045130197811127301709756104233174351306718534597663119396363402162720438780707513912202786568834065678538582856199718626303784817787022025635376581548329721583892688165742120974564376973686382065967245177660491784357182513403011577468170821051268700645442989410228127075519129044483310907227404408305809897718374454331887179310456907491015412477988266581178026504101494468869965138707813068850550490272502824851822084194194410790697823707275333054422135581088032269674214962275087642476447662020861800618339070805599359559203051094381845201073941241951149886099994636426521928501437179049336206132643419082146513357783380292484416905415292143040598517901337337615092783549212392905855965255606131288506868170718111300864862584443767201567620717013937941403974951739501637006696701107424543437773313336529222296353417165626328047873828240238309671679601021856966428874113900982760238664310441159475980683078967609549852534278798866980129604886146121065663923995019719627252215321401064004662627084308714061780419547459647704809552738085390113443215769490883798837789916135497591633896325568878427725868240804814001170479740281189214125598247477088421968767240273820424385864303148414297588199985648735531066356883199776763599549487757880530298338190212621757985605318669521097518678282846494171843175868407643953894726504544029522927593923440058914693105933675490210617538330255310970081314368819048629274677304435973172748281710021928635713337941180625104213266324058248552391763134000950780519248076800618224303145624692103423092925563523811442543949605503054393993450657810445322788050248922605661427887973402292414586440857823671121880381696483215712291960822404466819124231182716033271580250247110206105765684910564664292602224016102874604963893834982158331118733383774264290781371389615261367235297808589072411953765945976048513339388081931710807832272643035988681613412335169109525322587432829107534259936218193691360199026019040579774557658631760435512923725221203241526932148475839893603965694857075213493329404518239802122743316132140708866454533509541909567460623999849999937095820864182487537079470115947834940912063034141559894484703034461736603675900554319484704730071066141475461101618487565903685199583077244271079022205675508359513081178342641358357340378540150985662036040672688667765653727279741233332459709866882540510001702055617973211981509333609085295311985986065649139253833630054742183621328948133697901931705226172509631993184931153423432736669017143231070385001293054820467966787376640212881029142942801685731329608229931569372122249623908609028919636715532047048660346102940623415606081964797867017411751526412094851371233117542360040136244129859320638149632538357465213673075812192870528991143051038951065723262741588704037159967212087812901733784078969745440803095517886682355371325031488592773117398173633648927821990890990761607606634835649193540939727590274086708757682580138824674513112403576212046396798880315026904206864780316149411812966992909283558744090839010116093661451176346335315478740943692964852069880130878347627676553221806405014992562906903236687964252607945976607433198608586803088459583610953399582125087890099359592119901308275459920897304907490824684957092015958934159377771162661893258491470171039616834122742122406768289619984039317384934852111239345328038133913340192307771976495180753246253487000516613565486834970975582859029638331658283398336692316773342654291282763944000976235907383195750626354275881239911765509725894705229580687335820796395073845542007657431819072267213162814248340613192660099326450649803008902213795615348439554558121813620558161740180345226156191307178263582460864538974921305011103140756166713612840816193003561753580397399736380932157245106279937031017627081280315539402539092515138220286935005587804208160801226150921074642182816694997784741905889902197552898712991839531694501948165030185376120511923833368309144176590878185002426120055087267457548110388835304031372750217540281588355543359201392492284282049805244651891698646795863217327756425436453679028436594574426813308689971122714014538359964647858797788992004472437081642450124014931290088840417893309790266190808801870719808616090509965269979964257654951702267977687444102663756977351155213278183601159596637354309691868487763073961122502627937964901643236427682703055205333164023700876268532882385778146587144707956324566571320746255543050100069754471583908184403158624148871443244169157835013022179076375413828141469939116949945448520909829177752850297215216022881853340795964412711811353427381773471128726899206008210994302555741445892002792157549890897021378783248057299890762082478274640684862546151633483118356276323447587111496347830366049165467927367583612466697240051634728289587649392185225778542715443189327022792218911459356239128239674493768892206043981942058444115371655167885444331653182369079231638348117325230009497008330706039976168362497486730650008297367258716849629180752690811557964226122883695959535201298109715588262703204751444024584215994153762860962134458113490899591670454251393836641995610927527747044263900847737876391784107788059849047985666754811475618389019140070850952110700839756454489296285822634046377527427477918952037395635773811239254062100807752129971438630861974994556471087362750866303672803836252063188959237120781666931179843146110875258473467109741757379337067558171661952007294710011576717222599150339924852590809656912337300356878071767037174771064692701479658696215352235242002121558856279061285940786769158354855111209395999571239025313640566678482397864683109977493665538604548775178063935355336424252688288592519876041271219804206444617138559310385146062872024998598744878386278616274132169967977160137325206189946698692083602402416882089431829017636699657228308913468283642217843498562353557257134494563737339723318013344698578716651317535422125235603472056813485782117178443943048370421272371034631263796035174791958490334249264768827455864593482494925208196452269482203240561692998373822671148005208894083396258065023656897502610564120190562438461918837898637646256647112526771569494200799771976438389495023096927332684514770984055848364833682252000764288363090406566981551801471146768812473943992726952773978329100854635529087579410058839266405732489271672499297394747221008794551445412948294156025587532057967971359441483194293428625518220595473724465032756866725279862084424946081712151410132104736204335622296041519346090808395141216968839674849430004209902966494819105491436385291166354817965755182388893900157155066564819248543893264702007290718780606086704305551562646920724638804620689564573323966489280848351100705022042672230750134127641907497586022789223182054543027453749834357811881520566621319566375160948546300208638271224090155926712503341412341602878258521527103576531643999034941264150618288993911690209234295552754596675849186128518335943952508397426900846568222210198311743575627591356311377861119916908845115349049032990490161007653277706594315799613219532987033855787115162809466731362260031294683390160368686945878648065566940463383886244375861476905367210845607501462364307546570937594886689640252364424695900461744424739365317457170342052274519357302144801023728657192265290422258927031317230684212101261680671495292317987066914993314770633569010485863563389996024635765206566109925143451684626826571919344843961229504731636302152311632991265610878761470964930653623767486650674163404770616162554182156575207734809048344428351156809010965641081866167326399247519721549514725786121209145614642907733453817668005587878263647607188279127297421880018700687613997983998118963244771410913187895229204933128134599730994601326126462879662348481220100322866866869219458532097004800782433287247627579927984270544812104796559033527732535974138310338619277404401622960522262808804138546406499175240669523886768028931393989533196380706221942722613624152674934073822732864627484476015817152884184123781627216281485169387064554991313470713201774008797639877396100511269342420922382949904577888421925583559571808182763148687318809636792466237921941238467628845954060437988287515957921178805975872922776285059751351835939986144828065905408143896677476470545988423829351548977195523024708923035656086881586930271796949246953507460406879122118164388654011620774184800166619334462600456597897124037683607534772323826980687900487406454164961176986450261811919921166586191907355363286128147245129314090967522281691469445859071975703205781253367593528741485301046574112014944056073295696069969897757679859848085523503581449182772794258291883766991556252872804763128864229189332430416637966590360754331052780563342573361106058084214635445200140784717699970716876699878811005325981062574157703301799796183323411336679140785100780697918613433022818985927910622346058178589426799356992631602353978476963393150788126598384013749058549528224029411672507618529465740542115214491380676289969942125139406800646336190547038642506502746572981711828889062582101895210340591386921028151677786638214264148865671574441404528271647647690539700090195872071025487119517394058172317029543965763842004902459903252859597281380593426267976997869724100437056761521569171608292349609154582720936815301501823708666214986490220264496669002099393377791042529727051962434249117100478745843012959573382162282095652307546450784558459403174358366780594917977439109090222723501808851636001568865377938623486036791246930044544955044184400960745213182640289804803113441933416376415622093675966194399807135213954980985753445221489420677373484928153359021349477247884371815425404115482320515874396065797882548511011216372123113843233585561707874832003615042952265031295056393600177256538115575954375467679742919448229983659868459966247981518801032080716835938587471961172596131017661986949386260064121952304178054430369382858550876772678656191032028344171784029772320894565179968004642374081618784110928230759858176292093793721146626720479274949326813863072873783142280449361160954721917612261278991653413737595617597706101416852451399520653623300159710600381899843810818137132192681711407166967784540685380613849817393157147562553644983497704604083053420628811630324021490200209316090646950898858935240502657503096425805763563618153648749023463275355379906582255664064289377023107343172814569401791333682689894703537914902412595070606052942915027076212457575130868841259775449283977616879269807311255363748386934723718401293211691953629125205653473426646711287923790424630362637076901601275858564416543199019042333558729524533024637525195192332382445818904771629368565013680243151939427961269113633058527633785481895399645096085043921657798650161073372772654575102121670176828995368599489867135197187227635195469505801874661460042621476808409237042051479547589720442805411355915407456034311217330162217389588639052227374361041288440762272904016950055382513758924282702098540170539073083325349101665810650561935754169248997782260607292170390026807655674254647836842287355034453039773167309540928175046340881909980000833568167784920561545735452101160791838574624678008456428157380284496726148126816369582004697662893389043291064193226165395561741148645405025894679152803632712569299792643174311627201250553844813661680669559100732050248211868911650540083503184281086473117408291165408730175279259751932144416128976722182502370279921014382583842051080800383699261255682178664039584184520256473165801503674117491420903420966501068956613516403863056449083350000527937163120438092022709601654870258047578700743897890659293805336545051676789446628450562690130644767052445167987659542267810965095069550317376004808151177461571085042560274001867722234809729915238684924543535654377193801389980947462101405330024085285905941432888620556564019530267258876037734610762182063166035870630969066479743310080347174068259233823680991547064239225345190276578322630476179280814874498327706052764054507230789564210950093671946904129344311781060161004797895892230848939475997880463091160550495815564848124936609442126223750001294722362054338646156115099637791048098404391440524503812272194977447543864396193532249463461208699577428196092129017508353197437656283442307428952877383920039684380776227324293620444828486569869259477352316117127133997773050320433041490565743372750280830950942110316289856192805478517654814942379166854496734257765253978829526036840918523865799510866368685953998730887407017899982736067651559259439169411715382907854234010319453006180294618791290347846506879171656708313711315080407012554530630356399335530321847064071959871117786420544789245515523180226522855277999146357508280864708972002583100321507259863191137428288420152671513323116857135764878329589447521389588312088607866338848522750892813335097391351078665039076262204287880047833279202874876320254343398562252760839571255755050858764214047204919225725499133956910333817219962286116427268812253579298503907027913248705560533206053985399086678507196474793265198435475228935034293236365211991110688639842954430544263236299194943932674006210714547939684768947672247814190204892744539063569922134586077221179229918636675189154154084335372423456350365262485799131781642967841766300760377430604734777369684073472580335884522153133740701735893749337618433041697594674243786699305282758055123997433639651305616794299059052640153695798312231014764816549480657698722341153420478985613261202305864075156899508562643484389829560417098753406170663521048626028925348599737990550444697370552463766254769725528480177005179188239199437314320728421815332912250457322545661672839859462157819561224194227744578044262070814082261639175341072582040059117423133908317899843374001382551027809356310830552158023883361988134726113931509351995959164223374512992128546180040588078896614348369176585324701863381973201264011527341391019382790138179893005535143048914552192949794517022919471900933314462809175592682219746335760086310193530828987441995213743139080732560818423748048677635231219637122780705040514304037617208229566333663589724395745549236583405911590178334895537399459096356590847293970894801289178191460071349959188088065776778332717979307622659562696426023316429231468933388966260453202857607363326021140950042843254746598592562774779008282063898603269880748168997034313374366019564131196276026361556287231840040423579413085280039543324680562008983697886679537737939796847202230787282929407037695799064057022174920169250814942631631796107493898068112101411675636526470372250119954386181564563492691357022659245220578444251126577906230417012918206971048636231482322671474089863636132141358703227020048643027317592068428102428751918161715268013661392104682844954478927980790717724472814021755817041614456200661046313651442047538424070059400238540596535997577571826303031103221998574632169059870950991269131007913673617350178377537388826301202713621707289380677905128937595124704584937758044261888320590681133643617859727042050168664300608064592093547971358918384366362378671092633940524890747008025754323250106678067633511069411091076243909091688705099610644580772694242068808030484492777039777514131313292732169777183568268916100504274232075708924893656728098829903615494582063486217050990044372378032201337286078431575186892846472922979016276012661673952178593373833432968699774112017554142168644732126670958024669855675416655908337260534259689346340249647995995018717422470552290773569510712975082252085835166721589833256892874533971859718512016928919625391387587337877591840930306168983765085190716251644858546379059632443471139421122979804750553238567021761902597217567608751398971824724044069038029067934085123215532493045134451066157369092542674414108643430482093886228875500386758525820065810110640027457246146469925888661501419159967322034480911238450428233493687483458953531592581649474140676629617580016437292623376534251155807543977495684880085016008861982702623517926375153337006712243975803917123847456497944576911908072638235465700276958340075166313199804463141825548465789720364267575494285204915169277835861091582234643911886352496671144712642777338477688459149483682695944471898947976778368223326824446775594095883512891588800214827788994791265783010176041606924474452547214977809812996825196662699444753972650696784707702740451065120392305302860656192610170670800036976055693669882610628452259640407890176820269660736204619597742953080582987499663552888688341584492853936451053435198998036081186843622793100805174949056508193635785256710986539267637699106893212024322883572603739375797444368184648089537620155306559979361915488272854459357843490582383171451653558145479868588908573137820287911878739728671445370900389397594537239014870662539684250466781645163514999498689156030342867390026403830312751829552381300356092659840670198457750172882340181252265355286137023294308370597481148924728336517470742880136737731868963305648649589140190982351296131015487211851482849107332445274001494297405238623248982513662723869001292327644641629785903641109903448929578168747240325032582193969422850188368429447638049459057929110604489739869463197809292289527933292201948683100037934508817555696954338532639458622689374072515134465527986467779352997292127175246442935240646169262016944613754171718179184298282262371313168317379503655838141849763743253503643922479889168605671109841619670366700259681412801716547380767035936193298395945081320412779566497692893572895806527860326541337196799787840142288050360261998157137038724807947973415299411054425625689199992131136509550587139671947155525145526930313510242980636074326750186903381586984441800395585281847194773171042663100152186556186588881050989772001067415977451365296265857271526844855085699425568047374490568733724743154271910520623604535866637163146610324858438636664927035735440647125178355880147924052606697274648111331842495991253707668156476435061441700001723802231865931350439501358217961776458591814793818142557013743024253828801156125598520419616914528870335836254260654892582962300542174683155550522083334988517299922126242550791723986068818504801595509259250313308872525467940238909464261568752682990568079565631500998916749412015990304111243641993266142490356187407766228910673839229842108251785914377759336074568035397415007679259722627410806932100858966879834410270740543089308613659159101506163793344109967771649607249212014184148231090274002599087142328232201260740605014001888682636288763248719979636006581068263652263256694374756967577696870793033062327283156459713398743174131121853951802163454383679064864902290266582245914663775408310140231111825805840229439948907909776533789805222221597925007161222179226847202101904798780002477073987836020001196796477439736992616971988407971674392690601243427668846544458952858690667509965215214458368169543948324483261047178540816375538746123660334512506075342536628823703444607987140876895091801155467607635889522284441807379645605975273357266118991248834715635995435126474994484722784761302900236529205421697463613945881301601872181159051511731567075699600667771986001545321336469476037942037722807216556206118119953078749824462561617100175970231120621162464740073182474491384932691730837466963707964448794450726256713753673673381189478356300246671133781217843688525049381592693071989622031705263697350192717942484851919627688261944835512234898190049067705239881323896843910251980778481416081073231658251453642658574767993750894187081593323220374350164858713026007273365218857083390134324809098228049928111978562481974720489941530799351718646464147320751560292182977881462628592821841087817971179110302962074790637653544632255934996911974122551644580264627557692441253554952354190093600147545222715983334682808656434771694720466646856566330625536156185639947606581633687779218872679135053514203086303013927251303948320150521155417742923586595001905294436666026886368094437385747036974250533621996327436420569722347100857896729435643562674145227184024070357828795833930889810795374829160907724061384767398312841262876847204536189323767456907805261749959137094605563370311429162943924335962093358686713386232227686663930545333570424416542887478630140610214891779685743659895964299895249103281223967883138794528318370612726983034618178662714137068846196886132788294903907681366335317348898579359735852011429884333622453695839579307671557555156965458654450368879192612173968259239253229809999346937105971528878520497531632394079453967680755051799606041711514737246523367970487683920840219258851034500190419596387945972982995514056880108007216180727564792215670194925165768815974398148518904087172698586467958370580836708815633785415360986843156888385027517096684253438998999253756283226386801966685108056218230138790945663489333189163645836100685356276912473465413510572318119950652408606376571529174312286040393062781124301422926020695952745231441771010487894920546649726114569278069638068498304525610872421520277493255760523404811154753491093703547218450720544569790375409390262535219369721265839427551466875763880707734468116527126476953178802614148338917429013481474410452883790671274759518008674124246804306501011298707802630122468889048060890406228731495874368747795774489324681749218865196277302948103425493404315999184231546974519651092890955620833720773660449483482609243730309585269761584110475664762411561268793375223213528694038147826721445206752148794123892149165583593142639477166522870265955767700675336149930797588064636065065171078274334906707161444305411617770729313445702943154387697414070902965077140910385091445464720504740957104279124086069636159176210788622050727380613009993517126140745280692019509601913605088488596293134442706619419045393815869365956804048870226388886967618329370023280063076437716466909957913587830172794601572949711565250669325827154761251128490724984200481850366307462366916319837153478053141511294786431025702857307009837191026574531536825998455557091563657592755597838861447556382596100823794118714613712018330846568931502723752565435302039250876374868883010554024728614256304700437373223349410414283265527073120810918216696534652088953785837866260688840846773635278481819022746413718902014325768405734760361038509154095203147673994902381813663304799350325926108833154988544109679822950568321352278433839870326198921406024261929479690143790751353802969607661952879157624739113755566852173500430760372185842408801835735138415799547015630442011370619689095477620793411344199345807673611742147078268945157740533849736163197883363393888076910160583165224185229462156701621598368226167334932723079067709221778905907316040055294999851980120839420825067147301286840837685188459208264349434588826513771143187591397150874463250254183738514104725468071738017968019315564062041539125223276132120495466726133601038248272584309337130975262079178817162618374993454261785975134162813103566605741888104549605236131852925479341810786725484354714016924497269261515059977524940968826789251963752072933804066857913669004783910766804612389071356612766145109139396745407503234960007068048840127328217298881814049965081115280906055046274707816612763800625466087133771015107165156889577369968742775163733667181996657757236621227799465894375689805406106383944181653880595483218957060787357264071893936503716243864920982645070895566016165548718225177957059515242131520779093817158966309820587538156836680514907284195354738861331229856158778468691461943325663006517724712455195518081055616311627002666042255610611148896413925282852944501218551988027359724086058815020571879608099730295082603221776140343175666881568016364087405225988329585822942140319580567189862778685649387584044390808040072660820305500963123139909850087323213975107320044625147593447362116078802224222263908328005329201915791402285431905728496506850520219771763119442904328270938724956480057855018932582815873802129407479009800576937519550226294200287032601551789788261275384416672031511029625501589893516142171760915128904980385309176504130720543639957512102640897204576875963691190494208789828779056303640183886797884897991768500299508405887690307756007708298840324097484381528214721038592518337594221496543009164985998591023469019309715434365861360455840725357437794134032951469617577174832496592790063905459207204505975938587769299875153536767758674279351724891308160355832205452033592079296800010485682930519269370960129666104418807696758391803317347035670252338012193899981729151633915265432523623108011322858320945734887333104533431914298893746371739261300601455039174369182950856291299572895465412162148978334520069286418622160220756063920910306661804947982196059221264442811130145889723388394694779034488848105346277391564228827070416258502965916790041864191399485612915802769732247487741588841417961874648418943608335909903904991902383877466072495659514536869066513096352499700811896308692955518172386128744336144967116430165491993501617067192186272731490583527919278461234850759734169989305128840593916613760391131323308805505350406704735744815022738113012012189930641382802649456941192471132268417911674398109968473077055217332849065450417907858965176726546997221699088423532015333518999380731497830306720469542762256310828169871006504608979561751510560908003694257651173083919711264094207205658621771775962429111271727830096290054477944726849067617381857565553273343471729704277408895836693735914213672036195373361239623057264300324836613273850944020672250189256074418466660003547193348469072817700157993143693192974314096067193540602506181608937409918597942201904772335712898340428666478285006747920920679139735970498400176257841816814772584657365665961112558047637917998940998206573902763671312476636487972107017645547027986050144704850723198184841042219291662823060976037623578840140472093805504118989853389141853444908918011599391012959151160031639107728929273822729311171596339352897937165841448919476797291909444272988681979071829405730016038905775515588278767981730941657483451417201939697530325086772506806371037385448163025500986707630610946724635495009848193662583439021079912033704317698915664649248033853815872624003586393346100459401458466250246127062809470035596036222280879629040054679930980327572314297841232275539387175592773469649936325363757617298639297409340633419938261503979365919144365171299028934894693880510992249183609947753828844371016845928863393002871690028181635621834731187950380678679547226680450243144251160740475726472237140443326683270554817430097429684101252805178599903620493514478498844181737030331712403829531325692443753156597963359831347922821819448103059902453566132813445548110498129341662136365757236836517471096025057003935624144525495358687030192563757905931432294367295328879455065424981656197943563267153244133236704087621055925957468184285698911247000955314792949869287227278726495920556723544884104436497299481010044213451526340398384213114393996394620516515577767230157588816669939977245144880888845196316830061301074758370383027891466457604341241071537543351911693289119080767736943390045425833462209830337961503204055470425478415441966378050847172223217874075654215914040989275632339339651409116691237070355441190454719336597979066385128048085712638627224813208478521469633220810501738889521535415865252120135794571658381377490386493540956796036237461264009701399745100832038204693949903572947722243631723305283847668185200732345327611662239578243197009309640948949792504981841944077071342338367592772573217265342356973364489754736219985863272225050319096629169409473412461892172185898796084106027242924464186268576002695752139408917477213604144852733325596857107080758616913010412346778073287421339956635685636703606309139644966583123109472275833210468531459908492276279796995222141399385427395494263290074289869185062945705359154699769231162789086664037720219585365669603394081270715617713157480411814648526325172242606321316761846013695996177263732415562894653115836777693731817250618099030350912555067444976944491591064030146251258838175486682455416231891514349973148655816042181967534251022673672674020196944048131321764659759849284913219873966310231544420134281093439584903340921406253600904662945234222044747382791294162998463362076422371950021238799597909132736635271462129322746860695118776221198800882700542407896914795979334441178747630221318753188417775889461737440192529589205197797333185308644400525723437941625821746742974879815163275291095999608299658073151355397805547395444147769190074682618319066359595907236685750745322728140893501166831227546893099866404140297193257283094329603182722340531401804251548186847176100028767570940142312979591480417983832612491585494691851798943775738474899455478626648247909370583620731420562456331364028730864109627232425708216342808466404373136950537262583995307642238165396039569342958753076673647103999493260990724815600005735706479423839478435572202948566332605691490349357290616539725377879611638697042797914451080885538196101634580271826944321210091595908132620297616858964865633761576652115204548027390612473144914754976115931653812887665802847596633986283404451796083030794731883613969963231686039246699259064679703530944463154314402739616077932304871205065643596208842725572391292067868722638250858183499994199150939627176315425642831811399106441548417226971136504065946934898892561618453328844495537706091525020353433561364003770599347546655915223306852972104462404671807468553337569974453971952976514443323190634413270757344039909283172471464350489114144745173982632929356229742360004265859918476787041166211171690442758733396819482979677544053752845732077989311521246746163587436380849339992199540542675123523296705252426771000047808389169310306521726492894903294207991337041791399088369373589711852159536389912800555782890498457648595434784261542833151150685145673500694375131723727701004467420587451644404635134061986753100940862990690304980984555072679232668655231648345997856044149735057808096351823232321634729805571015323405175252656541352224484115205537792713203898598823876440123807061403109665696097401387471394146251835907328811604747944009847542481323866173927171965456044629786039703720063437811896434833401063328455140763395709516827404446904923384156507919453465416993252748854477478352603031682263002168827933500314468922751578713817721572263400297434230008992388954548530090258500803897807808329413892648700919961924808198998358530967860518728657714195585979378098090403320796675646119845054802096874534223339530427291380482375776583198099610937509370019968805217748080365842938480555196162169389132343754441651701832602284074282612447470508210412420204910927300155450739565848518826415744503880457839107952540322879045052360089481707877598327882839952169262855473668340681652855799125763129289359988307718702117911310210958441352505866418148533889859117006941333824102853317665266246030183579798071752639142991585570422121324943225784377646492792840258101478102308602279232396033805862269884026433456301424705194393441999451429849828312556728873424432922090029109494759822876484465698339183451225818944186938603111118570555776368622519382715097476001337254164380085175400564352766354259447184728434241673351550919635979925366453136468176178478489738645591496715086325711213376817334139056525315546650986892907435477957154002274145517504690756300224335099240645218404000201804015273401896435156040056246555565915985347671595102220214449942154462304248222506128596457802298875863392803698267725550488193554317442524644383088584506630398801750794414246886449044772027409744332169925015645017283174055621158023150144965641821174650512611090825104865851680200901250215034217429709472619462738402820298606354042102433214872633822201609730527996747376531990965679886740064874383931878586579167290026550411887841381745038213617531618433402733408797083584407479023375068603261726448839809485053241123061965157051205120169663561486608943937149755198429682711221439946820911753744723803068943661058628794305613491497724820724676977335334343971851300134163078570345154386947870408085951253326345433491679747035641451781829973456116641712865302343735200641173704411718107431638126579736025025980429036298040417221896675859156496778121321901220598878985544024358251811252765098193137052366190795463666608345341407941153837061861801427079700648125354213928626223222761665887758257123165155131305264080469429445919957449482226433833088016841382892890973288716715093315840919644862055184698691873636798854136102729790727803041277797310258789943567940560138540278458328236866441789058661731308139147961900633853973067119384525425237796417757057061597120042458453393703076262791932286476704847795590299684247885144219072091698538372108438993021767056857688617632562245201383834261674404881636421223113593380343788108037217734180245346341359054018057362607818118120859009451111136564256346273134807404480320027130349732261405125361197375467518419302239736898035853949744285581006222818252806515485767640878970079256737540816059063661976919284057787495583828791530542547534837097130037410548513780879075192875338691595740785082734558816220894906369954072707171619883530236783865342151906490768274479843659567341421274825909631756349165652763542052820445934022752388427584376530749862818948442711780320233083882399795012480551315543082751982932683065104581575607067354389170674962868153977795797212766157426964884483172744516499329829240225342445414477575484181403799067110368022311607477228053082705242438539842923418790269732068505910970338508290677309438811803040929764466285356038385796253179114765882821687111372530862790957513107145218804810570635657674188539143080595424618042292116950492192991736383699021767840320904487149547597039338514052029794546064317961177078021415294481297925778677941580665675263233549202963408938191256093367118393523960612116678187778236369410459868439035323485309178152283998021625258220471198407997238346030405810479533417376340076481691645293552823812330796867043304866970213812237110111876619935082250005884380886567206422506419326484532408302523429854007622117533904299162197968838836207891733576382209358747116871801811724910553195082810674853649187354196611600847658742384311246215517182159227084985664890838648924703830890694416688366138870558384519566592971161540727058114267426370279400320090515453079915625229761728451384558391130613530795280652129680237651493920751789697704058003871411738546723105061391895285207640113574385693709634146119441191400536292616061866809446309533920502590196398046045709708110563841922762047640419511414235039894941034159821967051732763250731386367064916242178138928213638297482708623919265648413698655836081070238125529435116384694512306339242424369924490986277742641948438784160395234085542754514114656540967343047746560113814882482581109307578353052436539195078148582153438975282654287668282985071539378926109297462075717544158571982604844388742641395614845634160034032993928870915662271110783492158258256834894321416517701022357833512076137004579787976182068940826153904068876856040726463930864676374267979857447860377463619377000781473038863601622643420633258542533468881141898277195269575027986234187317523482043297598736472585533772541046525430599505938551714474447031715144258203583262472771795509540906177137365539480185974985707126360923925956853073630694429251355185465171839882922141138346913065593473200754504136121429765139585338335951352469425932689489658286077284549886253327055958230054860097490952212181001438091632779915243181641359341129743767538559995771875818603983408301385753286353285517255640303167605000641025509404345893990763066395559919902511715407244303645544002020377742218164056613023804899181735792363354273411246164289424567666326518295774005684841126938734278702871469912802922400915397374507307090949753425204163272330142282974652735235102106889203480400482465335200739011293222217713681527549649573785469058310829297327002661395746334800855247760997448145854701367699474444356418665881221040451266788858878134014272592051560979346902456888278568826636885228654970997319603428080902423206947359122738128600328846919879304193210098039697195449925032921481017064461060900184997949652574611391379253631231834753185215253348944877589326020247825465239931506369074777734799514382953414824189063583203952773323832834444101487309876747519569129514101964622834235521720078129711027360280880727188753952105001011858672686488527708344403681246379970465279325227945487008112098833007738916105842939943425274415389359055423086608280022283909535545777644730474745068027044664678750441928472742966907987549133632658669924991431890936639925888372234398218825778112913379162056807952365249522505029028950204922200474645256653110948388896272070391968634816640387980389525483650001174829787066370836392854817941802802931983917216834838789226967451149366794636284752726416901477507711230415203260696722897049704896606461649344461005298793642465315573100311424295804261134792034660579323337426234684613501309329175671806846890122675829479037430044444534780050874351362693158982772185628926096099456580482093567161351106954557002431673508229049254920881195068926761446197085743332648108858149958477852281400801311602834978153102422410685684299325704549275170805652700215106439367966550064140862371005520383228493442432500759041212560496122672721433645972459333637638198497576837461612170771325079144114922517654968334016291131192232548473998730704723999114778567563822844856650499935704276331043707370193476460335496709490877102883368554772635488160196023374807848729208160711188765925460220751853904403300127028327153376866296361969466058225121231578618990638547597466610376599940353560275892031431043076088341970181824302507357439345107129798687666437485807341291545622221216334579562785643918266499692498508347488436604810882027705930981361750939625729820958051396495490294245447780797177986052977887315936024405249971473746865767708556946915850919191909174567409101593722466887482287459515106267585943125865563687351601026683065333913624674465957660545435308534654516303546739689535308457552118534350144905457203202379271397734394853056710080132674934137097234973174028595051453747029269025683357625475507537858429432271028502174098391128186761854553081275085230436953820079851471336268501876212099999466503963971669705077342341364809625754420198092475749080880704188267375518516774682135099291676263565685163928891878590168555881621381648397863345371531626269899368053604364777850980488326628985357946962919655000391880783019917146717345963580226289609037650853062533466331307284164262981879886262640761379325333276316712854357318033832067884295706956114628478265933994682148589916827972420229369605437366137528913342420219111089199890593620743884118752572856199607068268499370150648481810328739642276575540735441111442597417677700451223781359493278001242815857559212188173964263302111706725028534276703243446858297057593572146656400001079468192619228417668718540974450443417747220903916478883705134480071417611187269647632973455616700753499291946044640335209405846599231544108539722851772581994591735827047947182745130334785989940415257299040404575237658707238975240549869631363935732022223799427051123608848097419533520529721356658822271448468473775206704549675693530498801780074397955263942488510193813832708886714197153533591856427893534606209167568135783141931138286429414753275815530015652383472057248159313787669110713297721614154561988672844442286015268465895525819678707506487933572652321023280798752343052177788742629501477498644360369512153043371762563290340824448689776152075171628680973266925602019631242354624690413895141555045645717492493769203618278508305217657038022137273316881127416497158630696585354235063634887761621043081801135336560757104807958715008476058452243627575314675588973169705530224554792603011320614584206911020558910960402313436119159252506306720597107954372638149512372070095367797727702845189751319929660212348356355941541395205535467538010955832835303129665593033088276523251069816429164882064144937715949804480741333104410218072774077278076949950662118231573783838050972554689232775027206898633668405062636478497383094526526295088812218691351839067328446008366011287593309537691012014140335949035892095642330445052673471330004347423641322897388990040074857686014469968075059618246131820195062425008510773030200829544229077333237785390136598632424437238314614326174921880575026946219635174097352198507505319441516515660551838949964790782732916390191536044374973685227254168181454766169968934044940899208770899279337336138827845505155017466131580772706973816347184553194336052506342055934080461389641928748520991595582699000116439935560028347307018236613493645157656771939902677951893207916441345325567512964134467800758141984518366934311207164669830206729747355467459794153617246749300958222012506921673277302264096654657517749925354707217127531375613695536898427418192080151560815464294593115747571279652477834457901391581298580403271114936377885195174772975181907323697069777704376561188431847197385102067866773189098060285772041968317724329228647893221257819849250313536452717366419027152739582618284133634479974594470257569763988698652170793883448809929620519937047974845235799255098631690758607374713782501716676493256320051637857015060103108613654663256010865800293864738362728977143735166590429117567661461133095467354429477278486807941602549874450033597746811186623505602032289019556024508796815840953270946993585013590228824017082805585898893547731855231184398468791868671582772838011324997168356159251158490823372298714859282950736311494189156989192287442444669772106881433237960469346090639780770760605239630231761063176173573866004068592082033263592273200057381164539074208091565517716791126130539454887425466379216644675287906904662094129094872096674237045316836310501935366504877153149664275019170088067054766325767305752240496400535799231917258165139850779436045648713971948837554930853202359613176526572133303967380291643045444743520444590619920907277970545785212827001267741729238585508146703228096018427556135469005841997897335202006269740549477714102231129481715078114365788850819238362907994752901890718667592234006062339486100539453594097527318604636291927090375401509848862837642092980037663213204475685932759216384715776899142301522255279989883587961034168601394390929673587082111313203935376178125721686677513131858317549565435542498993912789057187055669033120078941250044419192854892100636854528820520153699290691668014232548107324596522376353020127468716809936346241169826158774607389527248499140450872762552356410270815722758924307506013612314801269581202499409105117035618881161504237707522718998173404698471451946304607974322633179783963712168959849553708009641140734896915626566416894527096209553830211166606760298924621233834349669866433452752063612009528104350270547154411051972051441520653218265033065444652534433235825860829002528662202555234731842269203449880069415867753900548209354223960238982570248821813806228250710774433552798052266738551751421227256828525284397973479229180298831416408840701037056657604052890480180104070495254315586732994311088667253475825685047809683107550327225244953942584114985897143563834464587830608854403815079400425839850128199767093164617768425194008363998016173791223319594476616275642991235678895805319253570454011580764513000266383616797527523572703122236683123439277848861169426202109168954961078108926400449077284387670146131554236621919036798424847631972010172846127858551204968401912402833175330017940779263986460507285778673955855438612105557673424339329407618753392601938471958901293029283837479365201933738302311027872347352898394924632244230508541059209920294271553268986382822253954394737838220509925157469699490574437917087344902934423305709753658674820809763229822141079577124346732010559542173902467522818571754654613374048008939962457157946102217959615290171731064245121857107871972403846272993846340821206075262140572785483680138244472364549822487994097856776051485289870693622568089873247138905609144994249878616026522480028449696743306135565755910937384673054017538352253299183087240720954061840402002384575288398683582695096844276495604543230917995619178092249014154908427851713394936226580865445969851693036745506017672889780913577843643166719600290461601834904508655889652761425340089483276388766259749913139478974135987494589683593630744199963161580011198801318330783354265006600614516936356130383742209429877740616362917142625821118129172019168567733016295972500980734704039435245185698402151078559586324286671621086273971400810642527310766125928347010338246600442650997063195269723413762987959904245209654295263226948249745419193778183039912727508844084582996765680476684038208915459685264789710449111538836118321820292310615847446741277287154884241953395228522512909022447915804543752362782554059231581857423787317608047936071274563100659726509178997536995029652850572075040599785753639859752094942437661569381350023078159561083313732072952986364845585445973791423825150933698982018820357657472583995713898574680221794478517485242740679771216662996515344561019059768654589222567389894551478753995718686915513965656961254624385142263537774001381660240663458289974438286233150196955137705011891218390758583388448551274539283858753944339328723231128566424256809435253346088095220590853466143363149956387723324790147275392097665261736540293400896078330752990686086075912200935500873206577911761240489260491611101678803761674460492563561378447906706628635956622886438088859488293891372545388066288364360265078910388280189988853712085387528139299879015801340726891174904692101703218464361837422612822407820779577401505534891007197241560923520196562758755364759441306600724575561866594463789601425024118582154759167491046466856497558667490545780321096249120802160383953508474101789431226770952564203531745365398816140381924217104572366415356556988344027544648622975950681718168559384729671373554796736874873297147804351243475480053458019222147397554707028175041495041439216359252979896533740188778373357821526222118759805804260297672920940192408933758832280342984613698605332945598460300504015304600542027805821846977540473069578869726371582527777294008549019015767696875505423958633240100892029621175750484544466824467412988566349099808246058940019444930096667664105571581908384120880008406759952708247639526471529614746813872865414406173798529844258737426844449252729012363091924226026918595109289004772424685804050688002417487522076290361881756302892153469509372551448653756124748578281059042693624611060624752632821582901694481105030593835174518265979048470736697312122047646355155458470139908043402393470882174307431062548640414511962541106016415225012363465043477794780704672399983399243416023723311707649130020761840131002175245252644536139048762512092897825844243528570876622028523183423425025168583448940293402683107056621049710573188865519171447617508031318102581035027218463198659964598552130487434646719006990113176184773343953563305427426519876944173730806393636697789408951307904074683562637309209159934607747975924726325509125238628087364112876494155963584313958116765655682063396672183493601946886105897162781962990247466275138192688916448342531598262471937121437737940347189629635056756695755352087692872287788723248472784116483559274989615989028947268561400909367250005848764516197940431265309109193169298382223716696814960646081243082143121529366706796611737041135210415426364546784785410059286228790821749851475723521001375887562905185786385726502213262463242291356184287937727092404221818531896365442697226369338315055812265969191494422929692091122942733103297435666862938938722726698463327105945386043694281218893749621945135197132367835898487146991613350201683631463737061298783988499170427935042294456413557545928824849709062090559353380186716677802884101310404778483723475108258964912211158909112593697199604036754433389267405333275756670621408209078454809171423252279052356961670648637373951873235835073965472471335260844356565531864880759968547251692250221046592613778141398633798228829803817889816605919032890594792785136352873137652762136121939871610711365130243341141385042834397484804751195191750525827023294040371942911946787481893228781331782206446799102163254858331824860019912531009790671172698987906777871554428887787703288756690592646104492161494817346581193383759829179246613996691837804313971179409734088628194295307963479275340037460197449165180254250128871981524900010190259722785030890877945984323268403732844541952969783122511497660711774722692760381477726653889670991890222377173432197482374110602509431248123758930052520997961213426233830752808479815786206089684548524497996597671907202295855412115372495580322954482260082757250553017892309950454571519739147719747287507854099452621066518816668841266884932296743456457991063085671430768784059370583982195046293975265523425645992684900489560696509141636182345972277080699396952761060512630271499336175224379701236984309227182092880519566231423050189837333615287127749218742774257944524018831781196920330939064260232885609303658380321005988352275665531795593143187710150067333163062405277225240969656029123042674207224668719433785170486865676766552482125790745003057459252463225364589278672420951057862449582616280605096760377714297169552145842198902283255289537056088610850876826209812558863419619306750901862574167545682388480751102436781879364677798729251637738420051991604665515598360989937087994170304306499688443732071202050697424119336065502988175636060311967613492771733400856004953580213764752285916759134045352843177521017996664903513979105308722827918727028922341601860671395998401617809324342989410235253184046388236180065298341756994910431121457864899444919900186329507613286352607783491475697824489253526000348438418487946369725467447047035699047835272578215241147645416761957861225967914791429556200913685469817865714220906155915879173393733137420715955783975957851078217407731133121321567852026192430295351349370982409017072339172821313967598444619618655956416339824716526440592171304555377988128267043044040532522152724623411944688889633680745266950117089254522183649951526496255233476725668489070307266636872502645957411649429535705973457551591903985775380708187014564781194213779285005431253481641373020310645854259672623329476550819266745726230116442938356521212400977813217156836374532254392912791232298222248026486787306562799586863207900998498643406067892051773062415792646694746417814974689012750662485014232275614286766710518176984637246465120209591622696237635420998329799470030044283886383354119667778199185619851118160012768323477834775351915104259177750464821259096398571011071729269003149480069924934903027670881107150704863920803058301881064409500932572653160382600347545483223560433590914006161417893374786933640095256253719731088250740990938257436764827256617237538194331732912076701514830102135567819491681824494564688000383235647482196490976811662382141204360148066412908001049339595915136727630202819656955627636237709271643055945240349951447430004107288557091818570100099670908180641703703878285858863956218793656107668171606934378679599732136535971752034776168275065630267766995587712873974326375666378195115773734308175234503243940962496016083957028699095453334342506685328500601516148373553596765257972104552504579604362122500429422342637498150154015429179000490844644140391239105114252767713134759626244666719904995159650352426924890063137010168325328400622656378919733003521604855233438418010614363789906793728794534220603842524517649133714241675704322667616642215939555063873752624385421942937946955505187849897941795172315154647708069947801988744852122243246936948510692728665108922478154534956363353625671651694532438929977072320732558453878438683309091884666694177887929969120621650820835134782482312442227454166293838904494425336101672419381413755419351323053858523681005936874484069056358250834021695804862498441671386026901346388484180474099889921868970046824275559853444445226058431015614936235365246781787359251492315790900995118191083926074445383923249722316517707329045559077093622107674928146863334490883008473878149867913226613284880572745387676040115383686014539609641083473764978944379247352915362644288350927758579687879647091838130656165893907850764111918964042528122464325727924926003853513470699750041034607519136100197585022114773673567552858402465352297613901730275525776524038404179165260033774662473068080075417417468874189648102416322424452708709107547802174108854969346055853685341295746769643126608633554594659118186550728583699499621873071832983469030003147841644348783490836821191829048183407579641550789328046517300494110652498747125915011787056129720029631194264052211118437659296608778738369644197421237740419940813307971984155274730172705479758171908191992291881700487371383814417664129858535577243545808954080753098671628545549314108688743647487599045531397653938184092199196024688115153203186816565564260125414605778115743347317629245110821380617668983810504893798990265405063152501585589426473558430306989301929610900183678375669510925571537475346242680396303723568933661322316341468227620362193245594017032691946045867820611130785548399276504215388851359280564610001002978673127976009920420354684403549764300574568504625822200835372403498702892646523322325528080164456897437756656357994143465485923497470883145628051079076803182627981059683402706610306208648643780322606091311692064500502553641344656068357423567316700439010340473926842503003294868146343099582703957539384240633775665800839983667387473618771057497970223975317870812845200785105748181142630786282887129386151224686809478285330927785882798509221199363502361003632645789472246411589608559208141154624335079604817527618930548388099101141634320310954259653223995357938417580165129131501024796866263282077753828735630104473463968344355376914191284168423792508846314801911750981471609411944131379737306239651845353685469794809967366690024145323979434743718120369301353098565064510191819369376144355339103950962113551636194394222186438374531520059145298265835756972075731754400070891459544278127478161400773871613318297172107204999835005468175712790352998460172884799711333565051622842119715179096024879263434710062581919057299567126550596936047271983084871397566643669317989351879396364307278317100239526901296229143003624251787363580733716903542309655996594829229994498032899457018665904080578313039613715183284820900838337585129981720492101629374817992299014592778864139572771618409963900041756957177614996185105978431067881109131411765942047056852510334296820685159929811500651959815295950029590036084639287067020564907183592672190746815029585481090944399236459929503315394320305110259360695151179284495672400488250445009750895369523651207512652439200845623710931758344402666834196990396228917962278687953129840229508536536496259545512061055634557817371033207880429969324909845823987291534420020764479044430379844255206118168304510299605813448279786633788941422745267457282263405098480066992771411371917134669257735083548059561934365684918449037761602056332220362626806165970728019394644619638704017821647772742201793897299228935811288381278323602712867397477763121900432455226114843719153105906865090086806339508580445204116635363304091290616064971885810081778474981545904429401044406659285854435785695510493041494900746298877781923224600416948725852095245494294634245146118633581110929538303365548936529183986988930004116632526601576721943280881107872631706551784358713683755476374913686563020785381640390933564012732647384271631475768799665101465037751837362327606513500044359414509682786146823307194968547003789269603965715480583314653456179710696269637085159942216316546561019064787626431549062455855318539698546004980954871636200762704700152293448457813548964575036074515782514574917845271171560475235503067081128716302006249088468029660876963350996607394067498347010178562949886944694445663055637457535993990492000156503545451291217327566877538278225379801406275934671444780430208715507582823522895376528058131344422401327681548523037849255396745254355265150626567995540478607193212563217172150886785339504867964198365190567278854156128322208340351121336262161791772056644680770686262036121181785014969372655701760431258352288545078949921958766604209871876198097601530361972181224871535735825178388338448265290845414938750065494742142783281942902041354576634738359361527249216901101680894540321812867276994432495076136688859905170716652065412419115964814724431450922845376698883004879211258586141124745420910223452063970989377746073815291381898022598924872935912233791402466637324471294138582623675310289150983702795066726145761338516044831004517254970367875252096804643437697972418708036644419997519655544403969725965822813327092849665027649231011344819901131443512996182368532650363617344656193469219319381442342735770346294470243970967541206675048025314177141215943145298824262803207905393138599629761028365219599850981954685977075306779691601386430926984898517094744750171694180701243646372014544856668926719633013121590972004969775780813332086973817358947134229319478146545131741799031224944799663444505124624359766955832448527311178424189787430519085254767586003517249816391771650957901052442147310186925585634218975504660605040835543155626229018306901605650094767834366104066608217301896194294212483384699234979470544801206741283122635224519463205873883348764606677800366212743138614919793679004083607158326829637196801380507881353218765809039512409035919445065505670279996237868181710758092398065612468437481421002815288719211325226054455484349030709448950232248179152873238799181338046151069211623695521841192775831651525181617863932725996212220147719678501401161477137651935732280396536321727827450765467206133194669584246941466008311664581391380791500208618990048025336122165786031292012591097103147184043140188316615093032269861967658089615050969890899254660051413183890862219450357178770869398021372507690608257394552834808215012989715796206614410203748392636453013903863825182980771622029540615535118991782621341163288058063946693716259810454058991371997159443625204877846262622843178750469973866510320593308280782818863620272334826266981205769833775674274167378997038416178261198476899300652108849762777456512472550826760350648039162421017020537421321961512349424989069510321220237211799448215204168395331264957892739118518923881169550716911149032559827432259772175148264409173567936147429186160144570470137134545630927693453318195589795527690587312217069906272759167340001394849198959786546784268628468774863293452588991285940706324151986233583280350304801181442934769312106173135390966779055008495079149059348047158822271630876664469381301060248125834244386998060154937426079125196194934414983963434724894305176985348480930870139687410206601370325867449822999616392679273141434744456178656670713233038588935456703654758783280537059341830949471736481019208245326846118588394953746995281002933187295943148586547985524964466332735630917204525385732284515819698462377292691469256196180016615391962658167760231990170778349864430819486954187024533179934304678129017200691039286508739115775325256082646018026601859567103862020229949459634978274052318968616021467037173337582526820547934573153028346572319177664113180759749533356499018613048073969280175856705740082502101651871301305042671238351923614590360017301915837953409676641401022419110958761002945033667266496774119140574657355067488495561265379723960938382469702109115300212062066474783315180338404198151763544473709262161904873668795466711591996257523448304344699776830140032916998937891392900686026210713005665169454859608203085112543817437904709304534583293604794990112409939327328091107776895334363978687516301045395010309409442498543528234689217829437772742503942028066815664209894149977890855354339824361082170006421185580258209405036168513463514408802393496184126151071547462289261618493499268221845402704731397514075706522331365543304971030163148538991055049537429513503114506463307924516940786700141001467664486303607518274437680790236362785095042784207977856224490165292413075864794678939406319977119602194514159947569069944154843398526827324919598984937590531471135362727263660782241416988899223275044687091477170300515888030846263021747102174852936078752890368580303409124936181758938919428094019508766617162950527081313766958882453231954238883144815428857655218241544107929057803284264841328715138955280680298589081597230536295802141252856012621947119036299239545096350949454478232341319253359207173751616954033891591643776702711854606645021266995519901967058909335589842172915336746660668743471180625394896223279473374792690112179382645722063295930438280703599880301544222531428120238094531934633910096637207989114231435474972742993120599329393060376108370387185125713329650133336701756093941054459082875392200536967018365395245756027735221435936689228105772924825619219852221315342986676907747971126776087537081052308331910010587047436909781933889426138885719970785857488937684876788284335801013743794748042616710265002295004404064728931867574267775978437239157416300800290447901674068577785151408013915341028153258997064441621310508064413072554382331032283950534427885289149581380309674286890278713431972716207847990241613163526706051132093910098430785596713258560574291090518786083299522966398755503243309905208159600337361337107956920534903688332304021109015034601286486941454143655016198236570003075452562369545638856868377840495861976471032733766267630542017059187306166202267951137539890305103008628187155831437772550670169305142411354487004013871327563763525086713084539095644432120454443185744154239213774982977063261182648306854486269512758788511948846352755355574690838183240990352781115494742589629475881780182602364904376823044843360779760917505783351349791043437155013037230552073458315996775026036828058752056401103020968685045070049616763343249049561914326423725687108883697113769417865456601130437286767498722376185822258850180682764161053766115331643516808038927957701524697092559352983945938273538577212166103544986413704505323370450307155858248764292497138777381087238990129168396529327354853432782615049756783315440035084490695287727284754322596401666633047533348874576485660556885629634441841716832275075633658456785805936954016042166913878473713307521670066022150713674681991330494335412332459772321492119302151937780449940079713349469540270878696406543599842242928564304217549960594736611056742616528941727270465855042686201183140654932895478697570330803748030843352874995456668589622794515590294355765232452174453273044215549430774441850329904999672162116894801829060074862759071808181196487527788369721195508882775009141822375402335116991175708103506645193364552569709049006459838799941206237276349320912359809330160507574917264346443087833077800623517065021707745435250885884190153794587773020330183377599934039931964829521650054683059469439826122221130716372985462600861436369193155344697816071756260726479355643238110416523523669682230412185080016473137608066905909096304207897091735502978574737577244589497518098830057429097805660010668731160504262840800825253055524679559559024546258597498446061918276074187282485987297707968079698368064892797669005152119109662864807040249217577460097848218255571770359726484604270502972513753775083768608555197104509673559580738167044004414212078507251643128722558504364388184729407156728374702026669834758234333979619103402257702848542855239194657585224717619227809186936640250208626444190043668557398833368474348704278682708377459441248624888154786606390266229108759991044073228813676539108932493541521590075974777726583877400798936773253935686852703953211812106194079049370692634525835448613619534120179054235566706323956409069574505259655916826460020019303820922630378716187181470143952193113130691452305355689977188796044820734968361996439626440933126370630606493481601745225054597766462794600843427490701001385122465898337769136753220581681105072324858598922883216611683225249735249667892661313070706834221562771180103233028107683860680066571304959356680250118286360662439213534649650250075775531822442702758183671984768374610938683929426611050775032639715815783386270504596994334379532637034474443711925882450923424101208397598136209355051449960008211005411885774798901317322337927524492253797751349426973141542588859708852138804576815583203911781296917720467123913557424728035708445031766226357378576085297055254171307209424341261253714023796286011602299190343299427764780695945339136234875539924115866867130186135637227685880462053545478105772378168557433686546503640306807544569402540544265042338341367483263906258455406149440978356328530275354512212690052351337777596376473768079307933629481040553961437519084632268751861227100144383782346124919217586086500450115468998148778827374138628228264079624652209458961819826224282046843057652940805669973861185012336943188098772409211364997837717670282948109546565979768731978228894473453297310395878538826010883581501486660035910583200378412025817449495592912190421572624119844150395865875144127007740359884439753922730138988057712144154485049552845753962794796215203567015756706558156211711435839569053885335827811499623787945199632338252065099234339039625351296306588317111500857350062823044303542136424916058902512709159669007633337143072084145858578720900883938443522176184429490218185874633238300014382434846920922436621710124244203839206378383776167920397225066467738939625470199006893000059760611502457498264997070292505733178615157724665281683770851068729110704963061784754175329418544866761728230058178131262724948461924521808830589568175290798433393630242688998556151521089950895430808643680958074911921077968604719702208716362645677286491046992535734154320304025488866842422247711820066572823687675126044219013649639718470721185088944312360966817629865442209770251078553254738524497824579054320468060409448591128208352009305106068824482392112531757739938112710273683902399832026738041947983448038339723862124019033457966199062624477006353224946408472486818466268486134592968354578833337839177148941978089594609753026129323280211015976695645677538360973395543012536817146826107162349754423426425762510704456095288551909675678175864461123458499726432180590791762741029728273752852018515342723208609861080496891304326983099209172161124669478111645768022389380620247449477814328942394593409563076072430671498323409094624103072379238521924428337072365258555944915310193175208304108640992335758821350818577522530858134113221124622201744665857140930580658567144572227777040294127029860588932264408414602954855908695087676835079453418852893123312684082942706020103013738101116734945591984309592826552485456983419790514410241434593851865235527281474097669945285408180884451537323613354886974242358874724637969208595690466139832902407238907205743870507742697242491698003205508856147402922424910386288795043429380333437654448960147096512826886479525397133345192867438190628755862909249171781394755492563068190356166177258134899830512818056508605686558603942862950220863985040085890867088899112388962942291932339246348535170306129049770788562365978345583728002282827565156561375116152527036128666910122137071637860374959074207367000374921645819838591337740735402832463421541391645118251087765598978295359202481311403652416226617527543689802533279318103715635330445101747641254623312541531424845259217358774891117910884792881749613295743717898455560028638769935473277032811400061615462778768419682851188883319505599133008944800528931652543677775969369255953016181012091818383972363579458185437716317231973625860447308527883405624184969739888676404554620783289862757066687609201470355252771290647067203823843929441643985427718778952066112238370732187379111732084637731091677063990097220681125271320311558739054605236662335968640044850779030108348114180155020340344065156604343004288366580315958656137536765079675936755345195353205670047136466098409958088347943617990872860046563599948339652397946344878625609959030031675199528519380070775399676627203400593394062338758283869472737694290450653178194420684369580268456315114911621344770216112915304699040718442855750221028886203143529613615287655546648161380565431335728613127273961593860820996224224631872061400667678902955411746949091837589319634060417013225173667801488425429701465631621662016851499520406789255311728848005900213692301243158334955810900874222194422124047575362667965190384398980705062320039947355340179913588820935129520104979224701663620604289063566460145717222006652511994457802386006634232749642726709070230542176444742211508787019166743995634620062701853137379936993435973110813282493329156710224258890391228694568730057954137038589725574285602236343024742261168873745471280382414477623812045142327033088659005617176736024556704047574824406897191739055256849594182819584436319735797422787229488880264840284309857361376037954894917987712491800666242810945483364008838033139062998955244864199571804017982029490833699846371858425903449238777605108257451768957660279815551413123753344465931353505977700886556310166524927999196237475988095257081309550540749214611210195090743859585058580292497166442444253926318882470726048171106591207086188582495211775313396973283084967947061591063554277463622913639373818576349641846185313244814268390692611254696617315912223885986105215913509612853619931759145850262635116813621846857799225414617265839960115682641468424855549441346693793872495737676656662656501168175348941586536405113082026516310883345435701744932410371531434710028184383528459468674448089215687889291429921227095560534098979212765628910562342516754848995522982866157463446994113988168593918075193283950403652369042873841880588463402170893550503233391191479676741155998573270163765314030287505368163156167176843578906355219934879902970769275598860159686769985169457846375179673469544120370017508577000382140359259714697691037527109318981872973358637493474897520819087031360406671247007182995331216846930785872498617273200297846136808278662586120026459389008798675412172938032040591640446355764041902930726275788267008845500857379551948523855965215317630817421785935621340455075494866194151608670522628759210872939621665894991047419535308031892422639473037613088113716268425279589836685521371062991244366695199980785473028156052750401136600176360139592990188019514889383296367616390974756125308085988962155991921403434416740127871778644050620030125766282055524434565252362391840704953276790766789620372726604638929537395571779443867441136775203150161257937808513245554454433804457038663621075125827742983075902084068807755557545351147898780091118466418552013323261290238253553471167174827623609065767881349130768508433106784174996470116048872578357894599761951326159193812250228257216138496076389527054635102578676501105949289507133715134064785366186996345783994697039159808837552896792632530998205766367545098080105440654330547919144202803905071606936609030389283828149531756902507297906256769067927437116148664706481511146119009184620609458643451620785845629128305753176530730795575681721629325673542829306449496613797584558017958679120028124341682215058932461551012786244474320382550766448164633640536931627493422388479221448682101973446986707105720495084285300852588416262693065986934585545765285384206650807579201971270274067401471356860236888667256977126385257647451994806557307122153689015446685435036279099402385906306099584718759475518832317307291683740338159269381608910549159441777535172381505757440843484439909017104405416065044562484733900796912968796506300121922264316413904859329888371267488620500151400886724790770347146195559477197887962326236687207390893541273777140378172659980523615556110043663588393968454688566853564816589631618914043360782562531136625504558408796256466934161793431862977405384391200424351816321006078419010241293436973695944718377122971307391591171635035471849377750218548207552991854887435266327883399638691370305619267744464321053153396380494256573580982103290641407777097420182619832513959942887567432928400172606971012398255542027791629737085102680323293821004234833938064175488064130917008454534920981169426089689803933442462243765783518420834624883483434984221675808285278820561277564847444130927548330488746246046728126995073178598247057499432596360822811206079549117591000154691944875367935548865697366441121893016122795147778543531235444678025106480960127975855297941861452138109011876299310680799006463757025197205703132475513791695284850624839806301034121848182928872266374088106333473279876312060569852275186236165153589018279969533498891922620191197680679823515606792460637459397080562640759070214688375259663469348967569304406062073982539369192274706130003461605931410903811112625238120957196158420612260126686372719549024847450702103116568583142048903645967338834069156301992693346201043400007357465265900893503622511509458632252471070577048358795933401049714951518331963152302166370479297131162086047439922832052148913676510283152650277635547391079291891356001006703921157454170953497964474598570649596796751529539027030796248603107838940696244279728676257388991204170879768494453641648724096909591065300573422195181461262119459667743405739581588293243042167401824957144402434155344861990035976656976460730493018985996198680761567615373582207166770536036298815165660650593382437411190867215390967406193866246387031595369004923378043478169616099519484361503336900981753206819001633252622327585818642681212397537196245358632847723769822615871301350225203169981389152213259644440370598480851039226275235615759345313272897179818119536004650601479754172914120469667930188443985614791587465946964095470741114070036626767674401094114348553883400258359861402972791706611344140718962966600986255988275269423109260182371307166770540536024981019676340726350296896653743456768918815272544882599684315767259921733708285479897009251302423195917119526371348856286861359921713595549112640027294734703352491635876977589463208985036293404782023600809909571920148395428372927482353902425560388959734045979928665798240855014051753978443254450382282070503730615217977503242671409997730412153847965585031546026204167958001675800451771746650997312039974952969171495005675821512772853424431991442720553737853887684363912994540640251971019171869749456397530508525831162946636958039099995268053359616135911944136762287708918798169954677231750223401646491429147658804013630443451506788918532962588850191980383687764358480681328443364230489247577907863677546360074388709584214389525474461279709288803620389866146892515259999316624034486537819466470914586532649934118163850307705894127189697259230965414400096438135687338909918602937846327344114613830867732823199141401487050717357572628237081022951590642914670580594186223591920133245950914440085657069853149686580360029091033451547494261023588304804000670404146666992947745365597962042592093451151057635270865211087084135794197626198660951383236210942632194099215282377116878541992394186628961730236766410301576872342876647779062560935523227241578320740622174520871447630146795536644755951832513220290316323801867879605172447331724172496224258846420963789314690987097490285210609175758490002497598382465845025387880565682398122962204380211369597275518786260365523744571353186216319472697341032823622311571960596228516379855365672076087218445600145776735587557047349268901902274787937162139308407945991279872498226611097344363125327880489264534724538847077610614711509348415472532132354896630534365675811472756750619126036909069499042409832015811921352817614767931232749948227322299889777934226265395962341176767390416177860123864802740266525070856156510878443906580834368917679366268497072568876389841391254136490823539264341117217593359207696759894046312582990472626696163988848117666611323515422242811492177588078964812809025015382114155886329289995873431415229551712733453671777600799721071929878152638133423240183305608173195005049911793242415819582494599606653729325465986629841765343824491845862922935722431837714427630889360586132914335901904698058797698799269578544033432958798824984781008729751847455498367004126875818686322997767802272986085810862618470105077893848043761624767014281702053976335032433756212256552432629376647246655177983115601603648989116828694319418237667297222611354593022262247588224588278201380686118945909316929216012715482071387392938352593668619397569315152220598697420357079206689572073517327013344486427964304416841931256991648550893751427164816737322210945049172013018623230848413349783636211045386948546016739330517671332853051197601579988697417005632588782827871331497148494861943011947937459305619738708764309019394769822856895116293561245822531093805634167653439613075104710829202734513913910350262948026768917588944550121575008583958435708487902036607120930733196212684579133052395129396662547499362204098147643610919167321830443834177862476964181583884321543000673571736711757196935183251509435035149350601192307572856773021138184053547797237270680847291259989833429045190602246852630983737621060996477492775201066581604415513412892910058178508392960546759665924960734478579532713522236620559396791045073511170038794560907817175905774076870904669672836747509076278654217063215840551586500817566390804629979612987755724745784559857561040132830462204713903330541553176780288708239387885892888546591014283277104571785775588182264188908583009782678124384225565835059366901793239774163497647686474767447207355582565359802864137215000503459404849544923558034205479592974975640614605299864245674114112964638589643562266682488335522264919851669839156969665312254602869602037964569382086972371125585690747543881303865477800820603328151289759344027148151304572939681340158974242787929684209565400445960286046306765627081774474167161117827205020309445485530858639946016693708567420210904581051197363118282037762477029045625796016830261809523281163815172312580164357332947022454307891930468261038781253413109586033266889644446766231038105136348327883029413400559957874269415812648068389085020843393583967382370624602333257139383761856587907528466377665985259398750857336303576706999408926366518310960981750339500062087068323004143532312767659475786533783067299237980803980248301010815843964602866499785351751718640447194826074552005082211452396770397309492408591816913488081491293378143075212553541442183772573157335464536293931942597884404495429068334268670094755860671412100625024836255744708174639571537777992337667136505558846940676248766872714283818301168933029388432111379276419929332206355958353486855859819829065182616988475040509415934215505823599462454793092240005368546326535166813959653656990026617148269225611762358933349052760382918649438297120221359686315498027391130483539850104675082621279711074333497585220006135632249312577148520655879889683380525159655061443723424310638246666310144143990536199313367293541610100955735148374882861076298373466060579171090939893800804204819180818012056313195079225096313953041754354956185102098837855507353578923195607076609661471350652794772393423088976700163048905061831944701964333806718173564148105059702392276699600801765949326990752060846620102325325434623309171939054296774747714434076625103387378420762107361796367966981988490586404332317438932368333332228924821206502633645118398512343132703596656074096710132637041248065298787826541475190166815674293874934773797276501539785951536418149280947518072425579929417954157271031598702565729353442460490552263158670610636734634211174183774465156591488326992758505821068776346874188767496458032207664913948610816133042382570534695034249599772428421197956185200298888646320217074827335116396975134839032670555287925019744772538924217234499260947086273562184859528996374485510674748639102750056664803514778336859866399571844925586952184491290573839769848103231936369083715767770286745066213840392083172639235702818345964879461936268098611188691082232843141169107376146112148449968402699502149547838852641095298287941910867782022919674726711694114874732943330775756411533731635741088258774548839757867317638273941917091925599785770032282366762679166432427214568491259461471618900983428605559222931181489072959633324589871841966626507816155767635663146621689440147202603641983877289041156767843201761507343023684825899434447078585263642494321757488489963770253409325616298115884431189465939341568353756847312534013233958122790326957653572110921154124523309971173545235489867646937459193022334808953843262371177511231343601757219781490894566282891403844866496393881980882805017255887623408253602369575266848658853791870587249878870670526281384958498810569248073820366950037046061681207409855271207169992196239048502554673401776286170697223728692804439209451018053470669834379428591265219674457117479904195281520955740441005094786267136540378162615963370458387476920475087906362229648370489106019267367481278777194346498426977317694064580475747886499947338695332310551964656870388808655934141770223904687283691153286271669521621078356421605550369698270931521986127649821861865090142062760992621947851139000057634371580869270863618253437969181671877686953553132492820627026958973565563712232045158683533720460834986577653732819030530533917960942996118795549584079089229515933293440812184395449280909774793518757919167551146303354146686090019197511108253552764273700360382655050645759229659793994895027973668916146997947001457850967782091222754771418339578356295914056400698435171590788627372370535764521038865410886616321561686223016610881367027397213555331867742110840266861834636824517000642981390185831619242025917426435751446449211147406300450449281607591952225161277650667503394975859467233869385008615379853920901001032784448997180751850255657705920060371077540758201493872417205233869609633249345953371659231725959640668034605231086532994720246702422373824090532057230457916268948018062805243035412459687617398707086878969414595712131241060454434522372511175244119911143657708141689730046806618559018502441328206740143600359599021473153159018308398994856527822522420885340360769937254593525239930780717041965597316507452604164450128366723770069815408033779153654995772638474968610561956100803338254039847019080173803782065001737351724147192028448661620964094739785288854427387815942848554781113755738071975750515853914771319757517039954838163746294309544546543922051358177721562846097754137610434678150425624116630697383498292003374065453005693755772293078358927871304969987535721598843059778896799951083578627665245442588508338684843988700638566961276346357812483144266497396659102821359204191727189901140637124351747377708152580447533356947879920815768473350071350214837514740990516240496999735471106003716155838460313800584026452169682739563274839533305203997069240979955509617892837033373361486774711765452843036287119578031234306261312835202108556599656249822467169943744539941182287001160274116755133598573017085807870693809189196273835488660685073983509924962078466820596832332692177731793922730947579865821436542191786708798261644499966658513463745843955613612661952121591304504453194238491905405022200738085643458522938310855834913867076138676056984217985350890137299607764187926895905075290851732164059782747741878665567115506818151198551710232733270564199797166671184544311725353145489512506117263418533575636069807133139334868599213294687641698736561602876253188348137710915311569840773050011100524750804509983606284680514589647140627674481628432304577191471199990185166837609295741848607069825565955164627663242827646288810145224042976818358191041801789577816844771747701282502619369388189143583135281469040609406213754036803813700859776137648793044536336506909971749399612551276247867282065388531076882236473469890833304288420814787259191223973302034118753884267315262856280776487496156086520471638797188779974275807205749433980687894754988377265146726590598036228953517710785682255461628300138310675474595154491508193036380664817756526063896481958503938083098891870134377065226360260809030389005719156254050044930817052119116798390793628815959825266728559096043784907449484801485348832464557008903452755160642063405787479847347300202774468422556214753777348376076145789653815572736148210170204664571099392076453257902005413584948600107113485822410301414838785536773302274739574773478740886513645309616073409792416397231910120553969688686939084954723971474819486898360781860332056791318912962852504773337447751740044796177334498540556862107636773136023613907686407697983203730304815922732949008581008773374653596767457805435382262033673614417804389015455930487768132521102556779231145200384001404979021485374300261049072471957802622362886308802558114311872120667938687642605936355613484218655254733042854643991572710508943159187272852806691355815739235426885485985812885306294876996521649341585463294643198336925566120514851678045627653490664572211563349085123414081054501952281586440457173901455191884010875235125309876775238556063536698609474282467892980567150583520019227693785070846087603128014348360749463685432522700604143868175733649696517799902486324996246755750841528301450386593725736196375153498560869083627530992432318900782042268065047454162475344075702765438318252603224312074252253311167975745768990021740585254073949393788101437057013109506800006858771233489623542131953362692348276982427719756590256936089405630499631713987510614561429816568962523993712788188493083390664065712856985505178661017533989828220902474510869382342921849015822354388093948295891856280726982322519871691643131744148760347122667093986094175531222595469290841791217222922717928689393065442895538545333443534054418421747180667636219490837951272381182369473687961777658885453777376756840090658847797753276222125249679734307230917328774053308309045683703941121533016616962949527876939946866344523186495938851841447621002358233850089096278565738994280087382872862819384139795513458024544537989888670015787417622368143227430479183136695928405396123804022741001443300755761319248934832981741250481820392163886026064931537291551456856777226230243299465598803151407560395686673658535939861053181573272802504499430434173947470352852362371479579356913832514086428349437440542941554804638181246336060078389335597050669602428846382117879971702419153377168720735903884646144660031949719315326137330457475590858047806441880827626271264467276054531206226278262010689159039860606206695292445810800148899326493351977048900515854601704679535143646084809230557758848302952834039474268853078394739108633468452428982180954011770682499088954425282038333867071892898659155477949019633396734179672614597718415696956296962013044433765171350010047680953705962427680431917478655972376901571978970932742495635141886629294243496041902801760349943146713455903929125757714532977225802912030917875301725687660934469866974703254292780126844661676658764785081197524388676802667132553109346111613930561089316066887895163248505775946049940565289652532522412440724895408842690749149342397539844491935366633549182976525392622736656993798451183092494780053635409596298593574824978669822541943283496364689421795739603239694239528738820452799080065260162955836523157821593743222291167093633164023497239912715131071940805797329891000541946405751606855253807663479091947462514576186972339805753007460455528435831017920826003251579883677209680111471544983990608184569818046055463265109053994250807322201777562370361662409151664249457774803591214426651738221402161012283386966563577626743581962126872641597638303552961835066706461061245432599600087512656333319809283475582415540617014129884313207439673400630056223869263276368534024954709169822420604624772942399136859885954270005736972693978593504921732764700545508974554973483501476910059548703229802159297831098280771477163631350517246229265647602741204685461471712247702006477755938163359749526917958822365176825062200167038684516563473756364466311732359731694922815387604901560899871119684162763672374767267464311940340956514256809110508026338203964932941310859304742054342884230761774838244811329129530593055614224935427442473325248626430802386417621463363240793746536294278004651872809249150124608253290849735982562019094878339585797213020430679169909975127405874671190455785381943876057390921190741151805144495092826208208057519878319743825758562205050185217478577104379491962281723600560864829711507411568040646995294435700955929015076304035072225325727907364047990056108083414153571581623396325019866267753896890460248051481233384859335479194624899248228177634724232505238884847710408413102122977738151464370746232686890426094787138649948770434459638521465827666245541411460153821043201150833016325961413290624337327294492130040044553628182450519919356250337513576381080554276040050974050296632383852790419647438156087589841639928020240535516140323029382013330937239065107054776858503388566244785625160323071890473541760530516536695810907327049023705899534996475363050124345408235930306751192913543832092776635556719542943079486468414062422054847538660150220101813119662245567732267668988827072907492885036078983458567443551020405964818444402839769980300197112287844700008384512549347253029521961387400852015553921489382444919559147698238325453025773559468896448125841210540342406246963558072940607719678885181179582782581375213898346996754798947066089649872402336526331288765996429467561203902694567078894087105507580434767697787693035406083476371222081050534327572423148362284899364045095500452564751811714941144420647292364624893880789692841867434014793006579302272164785774649010772740288418374015111018025907878033288497649190128211105648716961246695547766160605563037450170276701360951039839083704270168060198736602485494408627322891462356172229902843694752057514980782227858299509648012780557268406948845746452055382854400697409738721000974043569855714150712790887470707593302675494212578674282077705039248305275190962400437423883311769123133892363734769087156078442285665590133043234870659278420873227613893367280567793856301921210233458143212411320781596808723034068200533060430161754324538612235353533764644661217745575852929273498722018537079609285377301181773817689935656329802974613585686421286319344834017873535406078540660591492075569910473123479757609954658490916387597122370917604138959398095203687410024618412054824591757743470621323484456779454869018126755677656216909812858332283595651481271469966013143860461192804754230209249951290212657900260743678795673419195056651881453968725410048799211292658898141561029063636949287490968429154897555129130670379803533610533924420870709308910806805717396703406830612445680064836209186186060847397416800421582632464775368210269932530920158211683377911626812711924403175414860844793027530575207603012893165675403461084124759181298505526110589717236323607270022397179755301251834432194058545081170490745305098179397428108050033104501462997026614333924904984723486140614673141524311401090890358222584994803207740676512217058331775671564399442137166312400958261359024161307660718932475455216070832679051973059941562064961165224909920074193452631333216609702433144816067036790537599748334008197899782160510142177248326640426685193135894010279809665492843404330319231777850799526805769814687904725878812795931601815945007372257940181765835215859244612002701773955987119310671721297611883729535846794469798370188553228456011282911981510658531457771394815187205154482285016617291483509150784695285474692174813117608985997032070515612880135219306929494330222358437435062280809909045842844499042605265640338000030216978444000641177378717731208838869722624771945714023354418043133623033165153037280522889266808325475476695333774551167890620467063219530088514365336745792109150673452275143397623295009913974496282213717372451425343538057568302485866075652476950952051078198014574856358103867700560414938815910829194226030055655092374039420864302976549364185190198756990077932706253036535903016851266107096229255634516599742371513629839792558370676579536129078466616778688260750436661304167126351249301451587888593403856239022859896278372309028218286114583662847117430973893481401161264281732315728954783016795651579840935241790421392285034150314777754124092458260258190106229857802845272434626747711010891919036765873099575569217243490960120639290118581362188894185557444012965842688003381250576522000826486706521318081646372753077276753912414689469292837491586008844205320102081430802236720892543784815829930151846173206060105446036181766452075761974924076079227721809584008262617372679647639482447948017823465084047597337496461460717474851211886544162762277562523408925295164727319660972788756393584705524889035087907990605130969736358710787703925341507566908388717055123642954463930834904429078827796918180464138357872740575643318305716454720705582853877358275303900845435416395719667943625906878084511979957089410907363753431805396713399619769238311152213165004792074426615517180406532655162841699801601874310648485880743433277689126498832018374492563424661036410165603033247002152216655077457225443598643064146518140991004996570540594329810655780573812761840997613458558198591448157972252726448420080474711714906421458737546664997304756252870670723420936024821616459051608461163002245890793742497503060728929669317839623298508126345976134773869662453740441719328084560184516307691220363633114921301597743768157774212406815605274910952908899498164653494210160125051778121806808984399438227186433980288078899267876092644473248603331713298955891037070086827348907463951096636041483654271167527325565816955665501478294387304999769412415414037131709387003922092926597418726516601206319772786026050532721978122357213730940104518995567362714216784824380980666212644571292830502321187451759905437337647153305854321494115161460767343783000721601078396733879674119524398547009933282796372014902845845943275185788423015514993786154162791739590150710307255853196111420852371790809206219941180166076661170600140766362032523525280166738985801573677519169971974880536796855170784869140158585150971712531895728974050696404861804848789254614572870337096563796081054165284838217425404420959707760022352949303792245650667073031990942061396976088367387599911260030714789583635775614706170181295792849344159599890657432716873402690201317969252688832485767479573301792231956911624724698774692285883234288772906431313889770116442911584445998451225649198903658874394000187659784526263247912843121240680236135743588962482636261376873747825575164937918474452789142455665324536993765780235495194232725331951157576147240187695377978684650468861280399627662017394254269591744532721841136384833124738089307719328984287598487729998556550270317142316128812388089698487927961366382044776417265058387617775722311418154687285115453417623457941920640361820757081386014372986114231373413005740026075680899883418900250507761361825701543174759944926083305234485805099902768809432447607298643550526566234041501813272555388019820416602479453837640935333635494529854244475251079520779990009110923143283577873524636411272771272082723068663643803040474445791956299037544880274746979858776276474299420636153676775003706855329953611495956413417358765303817332146821905010158621042309679773217028636540650661330738022510583994221266992704809970554120874049589714727567696257724275238456251802788973016118216303552318156199565170463817462013488600395051683377405926051802784443865333130972146012499060529907870541810196480335716828816388785599002546736139690617236062899359900389623171325054724358835827643271478411260804702379465466003148779585753860537924394557875428250928897974323818043808632425154964596161979628142409049854459966393262611846947750028453812897570927327347207862353775247541453769917566354364371800746198903309325340671585639552847366315637047521867710980497397299313622940810104391286819001008368037523450263667270593814778317235733148892353653490664991048006495879597188234480820636298760748283185869779607784221903539155355390202684111834713246288370531893517314365295396320343903999665722685795346172176685448404017754790738512434283803080628009171705026855588084314021606326838304483198206448492041108679103556477253571311023669415520790492692963886935174125250927200818516710789495522079155377615578492653913506895968478895759877098852155765402909378633264706138784311321407733511836177930377310898825275207322173471274961312348384299115859430605569365218572440249874109892326315360351234053593638939450514052761350569704685167923220513278741388842145081310599565193199573576856335026206723366564606879801910764731565084235701866447807098979747370076363840461811882751487398359423144579334863367021457467152994390359825274599087562635747274946698893974498754382267891940235922888120100840426011776400616331012207834833417128035760600958941356981843850891805821948473119060605914146624947958204171916770536982408554370058397791127278553407845644686783907120781066774450950181336713745184175142064955121535888879967400978571222585935046209826319097061514273380220225747166520715927165201646322969109439484666028333887901071600111807065362722439066096471301596263594958088045956474200580647226538700840860150315637992187768776765841520424143820121186316929407643599093255622644070520752029360159289136311667214707052322983787247959254935204833101730760194348334860026567197509572508263575074682689401095438820647192857399984568887312452273084407361483745301269529132682500480481501744468220746644003078941140715920319447708668539381169540216910158332683905859143963974123037415478350657048463441386131008743101401198159796100997642001793633507951239062540123780576607959470930690392992329540661134335269281947754895482224026594736204147875761818796691312806912118929308521608134033291951471017324427631868067731400924795870469510901329117498209645853851603350935424638428620026046051962985947221365778011961280611696890398051432797994195413131927487594508363492963476886209400724254429089709942013914104709438109294372871712345427917524102247790674416281924103148987161129578096071562258905571419899969400711759128501507240410480694971363939777273852114175919452002756092850912564037517195900900537493498277309472170160897281387005706525607270344822573157442890062103184335760806462515766280417054959824906651310825970940472037097302302494715669243580605256548299873908496734452527815171793278511219788211153118704015546497268126754920032768990622967437820798392824374123893261831368949367045080485448167874811268429585573832138023009554712536345007684378896576756437730440493178210944787756440535071029975052057170380143092344041313593921195127145982746220651635163315867750673180686016421794968494719335254846167355687113071313961017029228467489381296792741966711177142003418905382466642671717255431720540997591420682652189712765369414991535942653068865317551442991262290909832451787622041008398894615640211539275677554035105978076737263776854136618496072437793306496259619765549723233899578228193875110852649273775231462426960454335525777278489767390344508862950064816299193032449305438851706257787395924845931841898972907528000370132224635520721361625779213108211594705846091069252358137304655756146033856555697122354635702650824306392525350458061160247499756918966035470614594767296110838405280071892199601657197033742528243529676133930371009516898608830273802366426997377625480647694692553810200884010586111545266064550443524929907322025442473826184432379465665865855373002898226891966908621075603501947434304232678169827890864733633011505640218647907643422028987676339752612648157739175060542390444475915248911965840731510881413764902683781512974587491865802305121500474038644222620941270566839965304779461972118550498514704727235583027820169671503199160156831657102158365475638690731425442683450668756511335570264269826077610021251227019673835783323284417887062085161797897174798061994442890401201480139686963668468533027130490382116009609290235182821750690938956656585939769050068675076828277276227986136642844794402057688873608179638244146177875509280520421231954432300396850642848958926200728526941758303982856665815405123955948675910938493364550104322360714658563571828607859938537339575555969429451596812504273105535621652919733084465654024245490069663390380124834039528306280972437908318385609054075651396433555440490384976625064281049635523000852638470678543318625686410473658084229915512926512425470932656306330229897883503711097778930139290293007798769439440308951933961810342058687452479264163455001806129709083209790321559723184384301122376957882066964955515339374600239725640978173212503941316043860650131839176991168407451048922683884403194290231267125648989002921266928216270097715731534047549861888667175425240736926375113343569572478901287212953311251692484725658584576530755655325403870372610617922557342881404013572019512295379471982297683851409568630559663889899462882727512866190580348582882053629055979713016028868102311732136494311483316356837816814421476227910256420277873916733821508846180851744201305831515021490489718735389732022902331477048996992641838696235126254331293875894789213318397939409874695944398428780575200190302345041840512482948346717077567492300536453429137604343117003566222349505615470104555699334433008688394855840713134734902902300868624062501798571770768180035717939363861767434099874434490662007336484079466134773500946709168613486789852710242496914295352878112020144729602744735686917311995252785636090521731308136163078336267585257211906637550463647687898203633476625649394647216373964691954585627378729028172405420391238906092855699914675842980487020433025237835011825546660507459754708369306860530639782312455606373562571528537260229223536426531079627719908345833673032237175906642976361596637767700035678166796584931542122808656008904651542510741732401660056596366089212288125420903380462322104514480840471812657959439143727214763502412786590508554266396472548138058589164999235001216560020663235154534069538034355840676219561007789079762631524803531374066181956994417845035915695234311007099057918788365761774552814848596078275559718962896621548487587075195856398192845256392154324467735479202849461501343526311421426079887162912262829386361888632151353217347984558553003787056054783222676331844604474495577348399643039291656997004206753386897623184144488790970735842490120130921190471889488921929223857093302122025019098254076254434413473252140003199927529134090008682157502574240529900844971648560910213489988137942712593180090761690136168101984798292865364578467495579085238537448375392044770947785566871336112846005103623830962977846921978834374747549812578707427589040140036719117483235646189274348481029952297328085606420717021080676794519152939045457254182888620076139471578923326956396170933984173758794585899773968113624276569312258449714759041849941306601381545912182592324875813091057045403894891670053053824521842677478146720187656941613450702118813947023291449193007222359670805907152050094479011723422327035752763081395801492002814183890800354855945212950763585978864508744835458729732728833062419016399316514127599030083117177222923023605805405265052890359834149789126004385545014004772685297820206069230216901273338019306494240943216881460112667436948173724603705032324613479172012456591923655324649598403004317903150693802212988984735440226498513565286346486528853120018747363601536953407976972232656039280913362536754471686608017628245226360718279492966956960033634414324616678582959406617420275178070042809814165147873620560992648346634630404596372536018491106240845694427305854917391790834597039415105940975655155499174752731127377265358531620232931457875468618042642596240519234339084940942415454365293499414928272278933462985309885996627448854987360825476163699069858221037740134619131308715656614746091855357270668771494082545187316130798521482205733107631065719914521996922165904007069629517699890225000455865814227240349915204329671942601555542269636745711801829823154876150094875174015062388610214386388741297840163606445692194890446356775508734348543549542762934569834745433090938461430359634387694630882197659107461382920127925978405542002398028277646078210948580334539311922317674110290785559536242067198322390116672162129412292038063191923632941668441812224046390896371783550213356547325307264584932525048732613402029543111905583363363828869143716328646738059724488605193837992756138137969128440244085508769287886777578118206913552810878758650434078889606310054655048626107829645165492927243975657647692107259154796134869415742420963764322799468682881851033613066391072471971561022886146023140283543542101396595414092827894189150503208064083054252701047397138708621482835594499446679318929205131904560948181990822811873762660476000533435996947447485988958475057666785584556098741838097698324210239917973197296347633205623476137536123577624205238707435557574678141117618157605720355248157885530461841908321179759774637001520468513893987974394001522009152171109724954792160867093600927314873771613346444653994146493089861573337965122633024377832967854357062135619272170548523543692249039484755295734367040350464994010007855918671269548322291370634758424769113070654106848311927597857389447013871420280976295345043447597714598244026473422786267679247290726433107676339406236275259028851630582633055160585371907594900293358153035710893132694907611216727405383268729918138015562633207454371890651957612268179275390720595982407748749305520237622005318454629630619957160828503273969625118346520496258686092255234178265145348286183382516968213910283078843625041824417744442655166649174659768670582178777226067317315814583612814035878647445119981120948149665699492388717981119836535905848036736977535788067649653142578767149832061149449552568074882897458495565262055723686649568759631012804272814982269194945329183847199402776158431200814709885256787716948728942961370260508121356167398515259324891248566146413912046708644531490917750336627078829426065286569535499548129767835633064166646976769079984458826274460070858199034319827851286895570462162746583840527776884036351169649464404627414417950022658305525130391661874484606003754221129400144779526437001235500398391003053084255196286107739832492344901114214651330562013022847722191966462850582668018256349496249696423764123993033690562803559337767148535240719539804872762265249106945701544285287991256448000787276843451135430307953770724711374082217579550467453344503710691428934769519692845633760041932387465257482101389489703228989052588209826949513608320001457235802202065457174829770499441952338222241450954086298806226967993670711878325862286525166311172182460878947535331262149236934321022057035219393415062507460079302746849052569106543999955715836932029459445202546962631764857368160671861938994386932175966952731236276585330017152357712040133269406641264029164677763185336295748829152296373684815577181278748197161093770227242446938209732733101901894549239843545243873450371222380923145203624008852763972630823879733086541396052667367331179937960466219484423173739838777376994442607627213342590643046090342846809439195426283689572058246918554422643136376249100024510623704655275746154265411485270787984390359850898046286651018536549663324725649931107274724675797048756506827669053044288788226567042211481366997588784642402680938923014460213446887759349249594889169325625280228216358521571571402354938600825891855728619848016098913979757038281750431237087830492870330656686013817131538264480024854775880821144603303555552826632940356053136372847707624970092648944213225711656129440068180920428556801603870433983621858679226435628751494661102446557444114416372723605751944326962718663765846373920631192094087564824693657881250505074529982310302787680564715596955545742955104019664729338262074198164436469106514627222481533654355726478532721295953439322247036693260130162965825739000577551310924947104630732791505719045285270968308342678384051534896643987471500717144423265826842138589016874724192617111204234267288085640455820088644084238353984887228896541732807339679378298010403732176262300767796282515214393208194181225403111081594254077445842171106597569100815060975241563209425633879751523695094384834899274740063410044821145449766526760781821082634833285809590820747976586986438106896983064552415026972052743917276072045480788477565173324389403825815962719188661905000109742484167483284832517790038096331470003249816986701894747698916277864609825177618697601669645180547630257063017921257478233323415073127376224927597520742517315073836780765596596700165792015491875417647423700367916811656605385739918291926846675953287188167583526335599734191191452784386970359810791033774069837715602023843333844381767592824344898392143823117111507341230857346517809789987507524353023899665302804987159934962002174604689525532700005258530304154706361457868773179867135656715306125428050189581416342537017663054219261917396410090021714774097339387611804146643451223541551092691529007762594066445577132751029463731126323163159067544529684429869692925852313029406978429271974108184291489039103993565580938965918373499652569994689082658824761326925333152458246674654689391031206713955552530710161866913140699312369554408671196550195369356462538704564713203255203903791512603010337708759242623794950052764521094754592846103187152791802500291942672890791798493042845536944190017980440734332589224492348021864386711602881782929752324505818381370423372881037273915584948558189096891285320510786509774585052802214625793105798211426689431272449892331905812247403244654655795719756379908035062652610145758822265812573062568846278139255365954581375185181334612284565195544635677617627734619865835633591415857867418259469487196868689114075789632581863123332833843942469102422118186042351289175153515232499217832230810499081308716005623589189242308509596285295031191065256953124657432817539526327179143722777358895562031667814287699988030269005393575642260404727931283514483283885531435902994193357823244247669291616313320553847731303435180337648619076408516609961542466957694860393102345562132912608316724758360119202437777950699888195043303819355725479167889683495329970001809668182365540885128706646293778226411811597180693355830588202431935539398115101442487930175841558751971374527427361264699438402942521142005558542931823945025765406475985123389907996112744742748481140687875422967715696475604316280196292489127391221534355632522325343686356699609271726121523418515407310789223680441927167345743277526419320562350432948567126679339107028343875173087115007494655070984167021329380130845894671134553480758905620699640356334190967292743302526366433171023550704116626283948462996707425971117012548198078401699420184270953934491515223415866032265038421151094960813732685460959072716847849836267996106849771791917197521793760566570912276805321678574652070053592053329776967093464578066308469440946509176954330136690541429917084157093425372455331234185048414227756915864851220039205553252304307588288356688278570739529314180503941479352630738804149059443583262309067853134643026727521593685000937732145201111900469281397485795677026899506768335421903383327279693688319217890927249276793159646542726290308283982587935995253699034635997774935907762311608148088630014225038935516640692272122708608775692573235710608486368374592966638273337110639234000362698472677717701645748764390652853395694146654990527692037095144615777039455526316108324985695330622374730014869495458296526833622166212495796520004359913091158094007675581174866242190740631800726403776152037567589765930681448924767038475234660768982926656250059059557339668572663285209786409539786105362723197722640972048566420726977022628768377799702633363503444162891419587790254401643649143887602540529858227311302082551556779859289203663724155276546130584142576632014121728322014008620489121624390138555913755631956011475143221226978476807659331096459522292970161229265306063642199623166831854879449891487577572178419126747723326572157097617911673067787637457789952938803923835797942947595279720520669817474518057497331263617247390502561923711418810392187340288258259773976292164309918482800938502419471757895987565204780401641317242266759798990901745246362637994192971275190986453064768388589491430940229130609258352990117377336301579419957806133333343249794482772546255279427202574479622147445887067801703634938934318908003793871118116661499405505683916011633382057546052343000751322831192602464158124500290818528820907021484399591811572770194749641168394493639429625761123458976047206216583382796405567552038569557592822637522927714500163270157579135268633467603623768247009279220753383302448230158305512331726901975390240891000996492247731772820524888771858045514290715586833833361625274660393909382845636549879007810757670643264684872844241717511925229538609270243834669722869273547340797201963295821617570156202248751799746574092275152672784601018351740671495904523830250549230744116568196741700231119194541100973638890805187475580496146847714604647060703997298744617448252752068094729236622576849208739046190555174837382146480195171816415981478275366236265310168948253881355067867404955284682428888036558848760934256309100753187039790516433942576986594700196319778809020356797571529229950143585369370078192862545084560519379933933899185929138449017734679362386880146168579799148602646327364437022896093009327799114889794083823664302253142830026707779087206357801566931752866588430035309462784275895160050983927913024152315271043434484215134251919691867985171709592630351360496333103922854367810053086719199422723613573832502472133798454075076890745649946247613039952619774821005162416284970883423823951786673565015853337482985850463468677998933805192807640914086349487997136674393833859835617653193971829060037749511805308210226822328353932550011081486943287203104812881258396734155806102639646169490054061866239577110822148011668288428444354427594324742692108457426815149765700271447874977914716174344149553837575427443269616099976922479352343255465973642240344092886135952958980019343980226242844161060168561060866981720367986324031517358664389978902534926989369796043337937129962062984618179085720435453641960194272559381371859055622658184790454909246610535743955051275595023303878682949947639729566552084025266592170289816748808921332941938479584440657643184741202262706216372929393516067779780377991384865095063684670221818151842103610684986180144615809289313925488269769657491790771121083320343462694892058270434090637386644978694255589650771441619058666069517854180492078830537639723776455227169976422182843297560156510585477435296436545775601250048249986710826671969712074253052506586581540457248792223326522817802009202951473214397926786958043291465571547070477539363250799090294316223108174174661990447308751037019704036207916014377976058935593913170156836181266844934260512435081884616577721078748681084835759139861683222066532420394928578412092110577850719377878375589371522171985624407755617849217823772705276437323972696604773442709813654722542805886749088849465836999944868034669915938307647064029471400309525398201098057082003196830689615205161726469833935816655762898258350443433159840907748129037427015657947914361293318964924653710934290982864072910414478172794696530380056917284312881684304374203889726182297588865527303552648215364678131210162123811392379695668695746346747224799917631985168930934787135442584408923994520248447161865775260200691718628343658749222660614041835162491358115251740413202140959249549682970768153610004367932229695170299000188183416973043161156396353926483013551777345144396166358703630851516591123706244771848599512930720558391578198095334365434508087057178891439889817884027644713232368119095874048121585574124681535400830793108959382029955909711654816225273702963182795787688380154265625188391925823214113222266805942875836241506817985249976131625058953586998109909872561461123877584957320442249521541534256517986752824233018992706486489934728430867805681968138132522446448933861891427502984648815316524467093079119149413894291537357127954069345827931439258949876305799881710818871613047572985473435971877568589040196423043550073224410724268459168074518327899794001077334876117585308590749389613533405608801071228589794990298478405069624185978570247777464857931513814779279597932068109673678689383589331552991773198453947612481143403038522589459006995478682790747427097981368502966752784973995859618539186686766834037903359344263149048834956678180117217857273514293244386219493982268484809625592074459244156331165213150683890641676465117037191397088588547334834863354428645577056062778931018892619979571119388371491987599362451884593684276129778858293845003553447905768832191720068559620557651847515043126190228875470831125237207845583450931020597776164835493807859956309034782932114464199919332858149070885420982994616116211078780079398356410895713638165648002999561978802080400472990162378324663799276271427107854328614792223244520126189413639380038239354033027930751091302709461258759749367882660583614393952797727764723733359963203040012070203484769661547600874485224568177628043702729017838967556777992966450732435551823438057975213275218236595472383737272886599644637801138574543663733069922301410776688756197897178563168350771639103308997974834171601655737313158013646667317546046274529122194451401455892207217183538784289260913866048456380560810886901011534713969019412892083546868690811419510726922872967890817755111036055023099453889237678418581469583664864998583494148622445537035837399505161826713812647525839604832585623533272264054249717856093227611626853573032250377599153554339825971023991936131827962857211647200014212792567288187732436717266213682658652191661312151906302075640130629195809843081125195282071074666094367133481293475511027256253736741957644515124887449422235012907045001775366737539737921417392006510413974025789924372543594628217817781819107971894232201630314665865750373081415779962645537905560442997204261667023371274446861152305596363407858745426871608365155600838544703223006775008186866412870147554475209052649879535292824174168924376938601162343701771902946518210097451416563136447041709250330897955815799793183495842762913347870158929357982623288329478714070128172355640053655318771812122717893346019096357942396741864969564834913242855445112326964910238281469864969062837613770728378593537035958842795473606826565778980746583064019850299617758001717546536979788688284924818585438163085471025578502033355259970485927675848112433240169921699887336026460404105948526619110971239863432637817611212939504760699647060352655505107050904552042163610182630852069233338349322415531931594600287668462331417139750061716928127440996211822774557469352778994065420380490010269218006289533293849596260961700681273367467181129344664772576793229950411689987861830805617066076306507034996068395820257987202990758694148508998754158526466840821680102363974108057086597588292529922829117999308386673633364928892138127477659703351376269201134220121218848981094812306206651533131043685608480917998094341727929624745298130808439325968830685098455906712091591732833082731499253878829968197849452355098174453453141811808354005190144299618958225186619286918430026290380898414836891740877256096807727914055448433516577150296158750921047591302326994462138002080457246058101093579265416501672268633888858065072607502634623673373026545251697340534302424517485741440394305102732749010185333854654356927047694635680892944541373556186697167127199664680728164631258063362324015181417284930782683320639232775134856183135562250414043236615900729390722431249267588436401858740556235197302819372429082084312160955954401249411699968992825926085720264665707635038245601574134212380860808199447150201390420718096411386772210069741344861524686067732607331740971979583434570884860574988012437187562014306935303219890535886299468809702690465238283133014775277001852488771238687367948060109860898731195913083305079690378121844787599990577853952915421334267752816314461959844774462698321570812589769162315530647762728566847152191289731686392186422492168477402081133124364494511860451727311168433752317483656206475968982344697294168082010666777267929853768497821965073225764394874471598780043058116269643942598946174629519183109436306456563279175135090941624875061128486191660174589973947188099018215647769552357087653382241618363933421348851220010684237601377742229030186843375569803212443815389199769865755160447662042715496985993220123578192820952669428583939170611509649588595248419413945601202093081497325076531585422784683422086336738464121840717026170257399340561769841533507248766740881160166536573242178112007096035480371831139123063617884023303057993237415623741096638556576594681542005925306348386425433647671310795876165727036105176006507892296460612648673267338109675931608181186215700761478360167108572917832979294477697846071299038933107930900563127705923349307958452419147896740364504961631124642811162145417863612820681243650057721948155792462182352531756487716257597470379215187047986867404251996183040936701895381651495053449381524885048399607217476617268782625412012609556600630466608617582325615030219419987789142091879792345853077942321255078924524389205631569106107689694084892007916804596748807004043334049338880118051901166175097472024567876677725530829726714202060054652121104883518866259667588279570127956542386763394949518999973219970185473409433578640106660413052546620254381912294321120276725668553747252380509819705423273789114910491794288927897701621764309616413015128871492976201846638920461829216317939491708877820880194451508385404377874256605453117617055884634891237106914786412259739996654930172185964650094475394562309751589042599612225768394788834593023290099370172329374169462073934270726683917052018078642999808155623089871153095466160294805145378423076837906465883704710847212836315036850984930428635102696364781764144717460719594853626765710223354975894912796384692634797827664612227407551508539391295578318027394905939024124231522833834144647163395708184402360301800459302987114273681661623406918451560695296901774454553124054042799015692796465588668186297553713056935773878913937388937663741654615471073850668641546074203611181938908561633338575466858814202886613323029264381439669366468474033447474060912081578178388336879317843670079661042410643882314126534039453731095326393543755601488186140106122605993374095187843324729436068297684924501336629353335472436087024091010021678457418342739282132356841062780314661716312608223376318607706747720636418270260479926449012438726365969980013403997580553687426090496975661378974684833220765406235420102054065285079039804915449941838099497327077283368328747855870849539311747562553769929025080567701239267634186391904365561049761402859321495246641770927278009497065142517568512929329157800115920530156720277245495633733099919465823177179938551495551658298451185102122081446353184156867155299630321605784302557228559633724240867707663056731996325090493628856713732218871752158311999580819810596895554488105686697686094499505662284191809674782268542502436946359499676192568407403962737861000544107562227929038422685718700527079030465733313045804499356010588281761537253763712165630346037959120299266835867311634463113798081221616235176412829267879314384575724294331415103474702587450069972277096284503256933269734720093805068274561118009852288905394521398953377434074539167408305904895155723451206897645504552256903237651232946893329618997961472936403978351895645269756532925667323728521423282037626677032815085494155679571550655005724206670344720227852004364672866897049103183105154188327764082406730582107374751716072431435014477326670302180670887536748710255750673489714314277684261222011243597714556026973127048082731187021489691575096563125000042702019695551845899235702046910004955420781473039993811083370423392755523365380284441707613296250246129847302781101425562686963867810850308185754982300381713947086121975965207464848778598747088404814046162126579274550518837095342311217582436229798855581907453954208394362063139523057074357056712142747761402255851255586615727483332915581760074051361059840434742121617894448763801873091635275931432225223780425046220991257690912163910914534365246640540076167630599611537924347966935838256427485730117176019429338108524858593772275548772072462037261324164201330445027350556516885279690265412295772630411310410892107300733392225048150343973786707258488765382914693834691627258642634654383526480262141353261563722085771743606670454905905378031617034177611129843712289380176589369003695907063587127645091990665491918222512841664326156060862506855552893426126334533062436306738444487940767224576591122600692045120650130077341336106059313797046516164675014135059758084688226370928580376405967721819257371959088493429418299701512857175673485259136675475099201290887209679291188289478065316245411237787599521195500811686582814042364090631067934227732772779631894752488529752530537944045481512095134314584955576139538002665284592692304397145893184004407831996731822817593581242711357943580225077491895152136025863610604102585147569037542038328301334300347351263795368661751383964870009636612292760115945111477964829229739616414099621608277453517441441042942556437075983068881331779557721063407093655916850414478810359431700663521378088484978188015623055893031285521330918592348277486715202083294423000932459267004468154732115604878530239676264545808859160002469949393254609265171486207865456733789982664214348533047213971363006521744604025751183134667852026706104798501854187503049932455541158390852278974579283164342890748465701095585488769400436047299875412880398034288481464770291173131462621850393247407955416186930079079779428453352673693496435537210007052623749469149973171033707748311577793860712011180702822404165458056813292804152470960549503286173819604497893298080280488979670673917857571776827884814234605374119458564395511919658981983051377140932780754954523557489445147473339803177213566589729437108831599292840863961137631946144812889208903257428891568188545892243213608694126527073341969139203391531047719057822631162456947094773103459389902278522509802882756031301789349232584804830168404897563550855684422263876000042988149736727125045859134168538893823009616581299833458858068249868841017675388256080357633406537356904078168928682172065082806883279453576535111214665933029155350057480435511176981307912409522138384929968236089992592971744920611636151365784638468038369686324770473517564642164844442411512706191516062122437202521040830866786984170928695105849942237269301138681913759796963909771832867519032329863028353835097692356469421929662207862019319095813314043473041403381760920219713485904805913707647131276422024171892320338493288264393810622663524464868828769296629734349054712134605231837763699113865353881949196209739834093558603963643709273011293574759850682085184356511100189439746533958291699983037001571492407185157451139198871708383187981526603537702661259314594724728395794719984296476959915255006241212348740443711535355685388570565137967396712152999254716266848882368936772584859003884655668808416577737295361365190861921938060426501314658366181466915621133565120318250448421490660804802774663371960147168400533051397378238764121298912927174730704261698088153495728253719251279924180727084283231909866517069047576995873212204200625631829325087321218402691203695603128827960702736142288413788253794810656879878767839677730085694934050927203306665425363210651899142712790770195006439130275584607770693788687222994550742647568356611111033166469241418254262610586701543084701662531598427093096837328996014448562852497132047447952441228743806434606249075907320502515648273577435733194837258464020549074983281578805889009415946528563004687741847346342659589895503039758416611357326148097510722577438032998383394060341133530246625326145904389438633303691198816298290563410278345606651447307995729701319763865427418454295311263504041618901714252840954555773130183795429221380385352261512710956057548031452072667648303144189314205306731902040901702350611327655052488511019491152197217137589787746232221555841936688317994406923218617251521172524236851436824999272637468887837623977004955826806650858439120484355212361971147147309865572057841949145551866540718896432113714810997380091241380197761435845341491152614933282123184933256369519690457991808993157408706605412521958406074004313674426603870521997473796414070329396557849696661804217402041032210889721574174066002329314444495852940015705121329898740704875528100649260772058727086690670403324522640430323400734417229193059470595782138432613919318758004357074860022670985041102175466671243654714714930210993385467587507307337637013329119347964764530364129260921605212270803731045144313691600633813274023689869402018801440182763524872048492216016562300763205808685531866205999268621956885999024894951659407808328381380509779483782065082584630279854767875127478348839986752317443414738892402503225914262908531352564886649828005982166964427176801725237061842085641774028183191750300741677692528198784227761666313279517592219888286060701314832056095973627878472084014785229560277611848016386120940030992043239926117426050568448697844563859741160483172909264730518996380359930370900386102966080259231157501998991082564507645610097618193368199453084287232819500993420076041712787477694485420453886258067330325660912076900552743763086335955637678616160042079088438287006415652462471313104309719940664520291975232635963067532755657803287117439121659422612678447547326944007875176825801639957397459524137155523229682886985988389685327521177293897449146533390214580804346019129646486150534748221102324596105527797909709031194299731442722421475586673947837528285762749914829660534936306124367448350232743705160168370315002113635027563341949278736279671152813130062703964943450197677812985831490146212788154697395528407515188738704280418836719549647421682825518908761391338870899638013750987501254478913684469144605484314628171459335690172864435607559143146506886411276884536640075377868570471656637804996855645755768942248898540798587884823971409978315227615550327011481043408370791962851526609414614605056046405535346255327622056341743293188212082381056567892016508615116105188390100119618034368911549851330128400558767670857641277587793292358483584731045380640357426893177625853772065045405426179254282782841720952146711571750352175614235343993744247612187796604905032565433701370408364931961032438928386878527253117016372391365165795312251408091899320949716381818911635479429586837952883785389909574642188164840040147788373059602783606554808944761995646397425764218200071864160288874678198441102352839520577658921324321453380083137837229462638816248684016981428136425889969709531622467800658408738483491824513827462101940572715463856962217790335854783629409037566205158497124073509691267827010598404761028984201481441822121778950252693522226836605447080524705620522691726508176600538967189065763185208205614730984884874435049721471036605186784698922991404579799781224672924798377042793927559966750281362576813796923529562219086488718097042525319192942600296754514906479488586925012776203773468679323096188709073912651470771995732524758597349251708228054463158649255033476413570999567611027238154489888696205090041772299237987677084273575087283639789859087493516097637278272531903474761820894064197749191494082648274691906872639271372136925913595912910115841543931149987351951675032996899177527590698733126113466714856518257251476358446875354022004610654540589063098193691398997336213533474492749277988738530739263429285130656253774585186536788590856832003664904616652346207887237609443803666840653511638220936734333862983656467767958061040017450759357175819279221422032267446508509440524886513171811490521464602218239949628235979855386235910176595679430805829859335522130287440386679984404841121689079044591242026781661056387756218327567955019679166188199428215996435632042000280222813217317917153224236292375038164291625771611702816110894588950880683984430195282320345775195230916337706932523464315081061020763163827975511971430215684958541351024971283618484438057279655081316109270666175070381994130324662416568136895928378263269309047972109621298217874662359403887783284266349113262694684070033209337012574766565368577608717817462069211492820168527734156001190456241536501232834306869619913791318000062382704066851546198446557202325063042479251494555540844656887356874631335169478167868422360696724180563534079262329673763715487993491838371844747033375084785932580826670404800666781317319005016640941596151797792861074670493331498830073392916260769540515141781035573082254981404606566031625722390621443497920796678422169451492290376543187991593744104078901389859232560586040929253541835863521229098417622574813312134424237134109579578245035585280521842246442680367032756473075922434333502792828883502829401325185943739485296560629990230644469750819387112947566530796594209538433869139815469952475526983081842841613509991311363861608825998208003256784990998825129779774488704753930980483254043633765030774508648150685101953822352826907369620205435033074585284102281226169209176979505095285471988012799689743110447791423585225738047482756963206020421169330687826198585137777456266990169806892880592241107850639536060137153476209756093648266701093104568247546615130044227052748174871529756417728505112921541658940435688425781878117712567529046831023398328792002047027773200786808693964453386103676771034931705507255021973335401444186127796696442811892720603751215134665091035261372055097031678352467551023749441786140606692141409011176246414896352292273817737430149689619160465998747041802915918584589283014900862177101560116793650604911841908898528642427150816715778450241911892602226080621982513412015931490463465536010630537675164855140723371291877962876330171906568958009805842078478953218746801410281181689006386448987300097022770935552013493319055851473270375480514418651264214214018933637155594450880204473019011287262888167196540302705675089240451442763048648414652418306632344614808618755551205629795109949795734539432963807752991605590574235166798140380601967607407151576514006213917056484469955397483920039815316964065201200699917742115201423808282968107949485850229001006750450671085398786439242929578849044250167902394745673806769488973588169986949999755424506981233623776821630342538860999944908729587128284172570794615915793447505948269157735569810358281729156609933541148759500453605197995453723200000361657494546639672014917189272589170324424375657222524327464930781111366913789742881805935544811670530391057672719370660648511539660148203424644374671711190479071439625132207351292498131631184325287930047765118796144751814465656428756610123049914647886920388329814621597046109979846227940041630100152301069291850482278528703708876322462644188326681940149143986134926772034599175609892515887643554688387253057299288075711002649874065230213891539071396350231653091233908319352560177831607865418950339925108863834560259610659924668928736217132793214359973875679188104125133743432557207933243871283003724771255815983073958826148042939298948247993664958235294060328187373061275640633857148392169474006982529621420912503931766367549755271845382117774660049418496653522618478541413629827289165371530115209583414246729278157849981603184984575123981857028937071736696537652744221682272890709217507917697793574360125791408593936363071739360222800100045094598074031080116496576333888217769342252969194703926454023169590194448008602305616453362050834260557738002110322285667407920691715735785358832748218178811415124072600511951096290531601277793624490646157809908684352851863094932561519166223867550418959276061096990312583854870403263153408986103416670413430107907320113918924406177987647237903447176775485597346015279845932415546877404453938866462678704170922044763028034809676220602011876940174457179083463798054491111798595299954551363439470441945826112828992527300923716608205206271157841546110191038646772520407981530239643232827141462117707111752648695841968274765585372742550162016576768671566220840739118239365472846840527409629381084578953423195148548596179223830693843951317993206008908621015199013030728040285986511197800800764102676938609611864535716742198293669262402737545129195851896532910709831158807715393227868862232976938139976872912400959342234318775256298978090100371230381427124946642315444406166191497866655324878757568468198161563631033689651132379454879393935921974807006798379039095618186768363081003617804062813764027517522474015444896845317124666950206123507120897369743797329293272507647434476838572855526928410659834933767617093488899937466496348826301591670317950183489940444449988010447650535500308013607921155607197058434708829910104546417067160056719986443551530406279613997443090844027507221446833028220965337785956552198954260110478473091802131182259043214223845573849432715721743666798131164286934023574223982041040578595705808290606157600486092892222897587239303650713277351717638385281468609375401479670705984836265539837639835336323615686973659917542503514456653069153826477816856192343441953353089024007317815089533134844679771731460499147711407423518104322501852700004065159456776777447329624421513848841606775610568720910984759256657384573561201540020435842228889491414363183274298920279707528835198080820409446790292326499614807520428639358031276898351782176729192076081884556582783019773661803720278214556902262823783754532821631602839591773796983832041774749328630551263322623428585197635795307068531079124044184306522422395585563244151786448519267478865302070504869358531656917381924004199025853074991818989364968644403523817445748740381336255652054365183291084422612029119028591234016483766979065109641251648556747019988909670075516142912602456332737374556807008733219195710687823643366637729108581593511040506409239737516255103401086301717582817418416118119801400102961765062372538922476751450935684208878210774649933268875278258751547696818929011390478621621232656295968618581115989031401299243484687460371497742028844802507274915854215760912463711185763441393072536550799273633908710412456484648742094094186589051300272296137993986442801683491432814419575056047659367861911099187769008439281708996323723926332271730292984458309478566138069653373808574070414353820918603421963119664628153772735066501064920785484982411270131521440116368084663104349712461832656668007684530334202947915576718086123120224863073541773592482188319153590419936160644068102838514085926639939235184094601367550211539638751736780627956522052937698030748100687932194614865267721038693188379211765248790636221371736537661562343523378619709231520347650841536947865581270680775585611364581027333421820052740291537849636803174338010906512776893218230644864893411388688178335569547027737441340063453642868316323052805325209408386843687203760312008654027494437904085270949704631675352070242885985679490505851982319510448109267005264765897759344701008778834642920983900168964939399598982236140712855176882986377353985926250452014101660758123727551322569109030449046530837184292571436988934720231798777499022429538088758311010035848338976616163908929433499356638996100946395363108894769258698425131930376086820926565129745538125474877696250091781056073328211984736377771010848211453306133979971067392163021391904619296767036577863151453429545421848035333510261525356696595813061376616895381174834666983592783992168051711468334235772855275228440022178088273287550270417408528519687743873743393937796122785823766897993116288713396326612373815679532440729554149126020118453012068216651258284081020839169700697045501692583540212139676371943677604547967043441103875746778873967864457852150231640361654030123017040263093159018382419857677661296843523059552470231515004607350049664478961140437653070990632010740587634676824897555470297359370836466072524806395896458239523423612000352237220426841292623664430253991345317823563870225618295953305001563131181477973243457149925767223831318292842207560261244496073998644799580928968240874083996279149229220022650864517762296144354055982124449603534866887144295787202508104199420418513819157485043119594921626045924155500373334024726180016784687914099836382306291285000011197325946848503976904512835336697497910623536261915912388902088321897901157775666411559901719738120542635043750839576085819906277961054673877041151526451830965852778388150440418778210433556727590566364118684812459280112134218404943662221036382492437178652337526641445355685417868238525394400970244412799463958573678818595162112426015564151646764059709665086488161256514541749608018231614906194426041438537406900768099532892996509457484687577363599526930388100432534185500609037836550523932905095709567082899247024113599838175712505403225181075692789174973147025399693398439411926093226319625072859003971950419804269949245160574416875009088349315429045572369603115504789062882782987028533321339056400528323851822486170387972570219880848889141349244727799815422672656967482185994115527778861438788764615169350086094684310844538885521524107504728311710825970563814962185798250216859909651187808616960469851759930072533044980838464263944614539326021811764017945954384543539686828016788692290960321527277662553294889764220086074938631883450991973848124463227310538557325480153673920856146198658300801941469724636768019501525092800607835755611354982619928240590882580730045321117475384616202324243544577180079555465969463270800802762448404958504468744554933306859239389429375168941333167537141120666488442811636710650418732469064410383985370276130339516078092753107759840416675025619690761092642958665548742985378991264013280945119868781162060764594896029993350605543137879855323717584769881301994821198731164977857028033060406247516943586598135541348765201950919600006223309368503310559528965959329184672567155135289876990317379776328084495384416530777243562080680046556800452103658784072421555851388738376942028047740703029711981967875213977321718408480040143518873778070136359666549467388659518898908731787828961711643653751919484230770059159273189670954236785054620743567289581244546203603477788790794031158734749232122501023968897203812770877412243709178151489351336204756925407724106804991549202531517696899501639610901958819778344747958499091945180346363016534461215493537842545319223571550557993020362064913902385538705942856409931484488037932107310673460079203642983901408432037222020362924845401991904705164699101643691593379000025821686023940168918901662392461783500570516336754605292918832354569420969446507821030496061518465875900684170239950991348610195736669767662653551742537157175957588679995196245217816932333899255435493914893746526008655385450990915015956943140713552000056602018273570171525401968852049826040591044534831927534826703883359492056351152319935252871081962147095909596355157600770562835229331038270794292402156702719976062746501877756765721735325356347613063572123828911320759049587977793546555241372345032914736628933595258210077665007488443980696818634232195667830736611907089557513746342936127670410248846788412317989875205187194288325581209602168704192919252794833192551524561986863761801703252379184658023842258361527453334388056901813783077352290824941812852586416258508514290761601614898702905405629251432199757381598151100898376428190821502611562636902712078702723939547567149729092444515997190039761157971841803828975625603831756451606626897443099212131499507581675506062768690269888344140061676724772026922356209963161263746113584342819641253480813320895655322976958997560670596643405696523247675850913719734215758094538155787718824776013966615854299039476434861983594742506350069513863140947202621517554212950410916639027657246935311573062566524933575337440299822082685744072290338318334060765998737397587714322766633657923646244386805568926531055657307502397961756436086282229929255191612873506478498013817426081985333820536946239076349419051864172777007034378840285084883667005352145251952514491220036206634434759686700219470559577838023733122993419154354401804267103383019041438349419972371154098987464080997277245572619954891269920423349846355464084651872498524409953039252861162778873519436132127091084369843802548997825548345442199095652862967512385545731212915931058364329890779969093080517989341151444029080020845799945706212095413365546977780028164985273501688294447923855580557930646051625315882400461306516032237281148607368889596832060111550239733477131070202469807656053504784997915571116407276220506001109574767938235476679775278147633506830129825409991426390637893126355485584689001565313941286718962611244855948633028792541507445824511805700154868036121929046245284845928292648163870854137115805401367100364906964574005758566369185700595329608960491794729424025164109315288826428655500977483408303550531287682017621545784342407005434641198900837228634410864545014241169556974219640872027465025433351799531677177207559859539200202857252859898892479438696188458116118034692666685635670486912244920304208872772438535209094297424501149592469573112835221958063213108703270700336891539141736773801187475438615421266906926702169352091346208974725082822355460152949366652527935551423175542622800761017564400490430093032895710283655840318264133670615884739365023107539102532387254327715914884693092882805696546572692300044564656230214239826570253516701772423103016825270960383353733725672045407117648376526045505170972210300342373626966662361210334338223072532293901274220646422117897748760368329884162577478561626807456608775863325592663608422075286700790142117127170758152170322563901848118011846188576013132117281741052852104996084836441299320487955681219852463890922660049168656020690278353742104442728129690038381803417089828549698601299499677259255163081642184930373151621487300542336501602054775170741932539450901429703397143147038848337270683376668064980317089169357531469814686351135599903354300872872897819972506621701204267976206967158268746920784523316404320552015276552342484934145806227769285100727845505613278169201586101520458283593784982603533438455307236787621930603351176202137129759793159533116550798048313325846339234763672138842023677888462734387692945002393425110206363532685603897501291618489829507106423211745982258592977392584377171652924512704861186826849269089905777932366738765999985969463061792192105638250463649388709857618118871092883569248465372581934572610370008162265945970011482674713909591498215883642183288761588777791817145449364345579483770639546605045238104965974459567929474635892641509045204845536667590281894039486061262037581829929571075373452769635949231749889492181074472035582753605353023448650447178074254015626544601846867762551933299660977765066032072789893124817080701646405071946370361488196894309898741623452374610275068984360288160112421908974643738222712459078927585824395637075588420600782141873001983114507341404479575710409021253078815166557040242122852063840700133394874258070895783402915531026910477754822390655987509610997091882005337250892469848841965917979973136663246639540557113210013206523970284414629161129832988614263645845849739217852043144946988592343820767295971693087324863757407998856282052936096918640188807333611069807918648625720738392216899488529179538842719801097954709694160547292643025015336683280057893723883524920569525152322919888165254625925013794136498883853966750332120060401226941616025652299204138726931386929550802933469835173726650562889380516189307445319987991328474479984402394258771413368968589224498780648711870538032802306608103385162997046852114846996156357455027126792350628257916677174903558916181891781970428171357372355885541644676032809062120346227416805957742813494161093484809779338754129433906350493098468876030570556698760945301793761378624361096588305799888118532628332138942920953809138953653156457478581669152709680367527679966265430826863973149747791026161702901173390573533164004701874959878918326169640034821290930771848208388922313782328750450775752271752451488213828460473412785399525962027379775006274777997377217943050577475017610249811861806529127395910494625050936273700324953993031687252925740876490363971308937913862858180985899755563860714575850226841800297957953721036385288335855553559661730368712401031307907830565660426190137359426976301851535571125631148732016502073533223396069931906338864755941599490242881429974488325963514201945095178062347252524976527026905288475812978185454459910490179612581747500403997361464491303310178684442230931220630746343681165195899371119887198505153192482793441447062669032557222555183401393094093357567804369527108078701235160043003196805126239948519144595365378625876740308927720737433031816376576018415370837726400833608452701270266461240725988574029846608131801444115998513715420052467822243984713320697680066107421617499056628304475851644035851293480182185310447457441927581028547413899318112374595914979665575177835863442753147672127342216624138113745848855170702323109269677798393528124816787460725677813551056291343498175854574568017111395774868844814087012042364685742324294612589162119813031333774415987274246718294711962058643897398001825390574713466721405446323618243065758943139008965826890212639725550512433402502665782349330342506296153843329480321393841583498189602543203231709414828177484079099714749251725475881290734345179810190893128482303422175802486730652815777507433693063875001852032740873128970421439264967465104304437777799965819408025709267521003807292598543479120163205842355772913197883139215438071282054048632532192214110290778445130406090466854397285010007235642456202398156842079909535657904006325121138386280320947284177779176332707554722396098422359144697390658621567977108053880508109126037365009960660993373696946601286785036834531552113050179430273964158165600574405301508770036836323129321603580420685570158518195099683590025579136311214123358481198333036762104609408486450575736370467747632069940728932632511638388631669679459795297825515163994342287227105764616446501140795208891220401041762114741422760565723124480999125004671368653875457631258541988331803176361603869722259703096729528519517031937679008789947955679328606031331288817149288639649126417884914000536389147325187632764380070785624372062570606719202863877726895728793007392975198191712542657671565580263197438609397610727198110928546204808376195814502703492491002035044752791890584084237737781533467356513700597664039021147957660410138165502166670880678109690783294981412013658644263065728869992859279037272549564176815672212743202072353778078633720805580884886386423612080142811643030851671561709281962204213408292428113781728434816505788336314017225346627031963419768125206261346075337366785719429429091872399611323069158217338605594297487399513550730599106822261463966171301213451116279563208745847810215079470067798327819922952676511503259854144012437652438322223887661773445805720402164550397116467047536132045081381578385338578014851025768625441204861134131754685604966170778077028290081875957013338871837655587197315709198677978464874061504649296618880453982681690617526846143080578686682311625208367191890441972563265093457445685317882581939992405511438263937010842671037996609692527934982343521772948272561199289455179037937353884757924341127428139267524970347341285113951835264067232704841740430693593660290024286990453662536086636429652096669391312719660906206906757714655392482735037921565237677857318860002439304188286262575440510300163149605077924258715139504186557746877531472725976570550921787708566713685772778882102143342170272579430814723245698326482245132447124603691105345155336055510269426970675642676527073783635522057118943914331032453967613544386004803454555680684174324116975398181937921793322265141482609891578909321206753950641349888572176898293491233975680764066219233217061771114955872591091450792320922453030088344538476498444570861099651419550918187181274307142056962500530389426991297800191652552207138759197537882151824630958647080228593855450566509452027463169120189768681505369387627652910199320230865584676139243038485602913917374858208462471884648058244108641005431374781006837530947759630107221874779425743727868052579273566023906668590630556214186470586285718947695533857122592800025647533064027991672437214807272246536455128596901076262147568200339861887402705554073090958618254263917235176784731959979841426313320841595698068940425714505463182730981522888042426573352141916999001527223003292517348749948711241055747964484408132594027501942848882386669295967742622243799613015506275895205330849701724756176486682569692093173278564530037471348648305016551340575156754416502725610826425863473937090842150980169501900541422903928155827806748201096991836934816122499156478805159411007295389669653794597483044685057113414136559698929101859365966911607275668567279757490159547524307545891547808536485560736398157555698305711652425978174235397744648592179705148896096745253659052377078784095492143162605862160458348339526219246234302242867106380167176271331022712371282094579810772553858948507724226013055308495442374086961808988371838978602877534582961956993984615079703852448204897415875425943509631161460223751540316415195772695062601690770322856368390030655782374201462322362116914451724612951735146432485765054477308185024108668461602360414705373615352855278808764908533328895393122550671811928011784412264131695285974654770030349964315554528277470788021364919078427185023582278528733199398313153941117401069245770784772416128801802940737872036149063800842832426730874134397662861374529921018907216714550155523043299998730009418365912191651028586218258667273356369325750416282117800734711601552517192928214835336858107777344931427576673794123081824396237816950637983506628202367212843312143161085174798701712137602927589480103839532952346950098835418641108087726686770649797162178017156079053232321097556086087432590423204948567687142982904892236801711307989345750568607549859798284240523792195320202868833170577259812669106108019792870022919114492607173917904364374241716824509038469482376264079365811314054503270344987002884194367155166871971065768929428697127571361437340037039339041200858599638052562715065055835107276928428974803162188440332440044992703198222501641953486973782710268714572228887606025539664193337998619456329405493232123556614959152583334501367572687112130941713264879733133129883074574025861887924011935648366256867033043457321879403777897951748246873925404585413118042876809014602628077888507413826895969707236340026750138326434026285921839572220446533677279953990470831823494601371030262948107001443968973771733226512150143990534386760614330447895656990281455038499866485855008690144315149030985092249915091325318296444599301331490871171750160249261001757208995131187860898740615446661462507321639624650949759389502641920584872651706263860468804678178457179095196879557573877775793745527631539471898577389681674725601256685318152596043683669741190130210704477153031194758549232280519287261477001670202682128933840198263408831091817294407329060199944432855008585398410160126096050514041567188387305901774168457429216500365467407350868696804358179513462484150422553032264092387323049160818352937470910505398126020394061222979528085869577750250369979629353539847335410758674660663023481768507619552912254144390172131489103694824804353121875937469913861910199499702453532642772362984632385408925948033711432467233457487782905261810843629465605366975718079241123098063767843838075150588266676255288376140165924221518730461365391998220081666838815958597316875206096778833340132264700895352696118420537341988608844637720409272925625721731971215785383891823325364183331012810480549901302793927280404467230920865844636389390857167886487386066665882772842696627268156296889649948279867171507533674624507135561809011325172810283954106607405966069147142483758736796129729463679000015312659503365644097374133687039452737056432755972407800347103953829926484690605463738240829777437422128066947252501619400757317598711459462627386249959557198880501136584634320961709167483409066987398603214226000266054492146893226314088120643969385488142914835514964372519269361253795958702533125119706562818744438381460361963189993947584693684594166710357698044791798861453784602427866285873024683225531677846996254720741829736695594720167855690063936407477731680287948451476794093046345377529698158915020595182778521003340630139899650092767024227454865910864867624529736997878878210265998811495973174257317376407566521261007074488991195847738519110792788723863574977710239280497128418308414424422334541417902758846123044883336412142896964641912428227435877096891336359489508612717621552085162901301631867555855823849404093522176731042782964369855875111459062994990629457324815944075973091679543580623599327485957002929609127201234381711994408105811121113923057702101734037836143267396414087377266318514038824855960125700254407801318071548062944796292529663951008777758184704405756833701078230522902824344040217286351275625816960253431567421407141334203344254001438217942250300357501370373943410786194973631807728256366646671253318598857056851664062063489001916901662783699131650090442579174565721760543308818874955139364316500264393252830694286519647609760079267394187298315203190161998749350831868051354416074571426334069140869680936127219976600806737421794219273617210924996139619414343275086535472980990130316239021039733222914423261826768934684955318929956907268539883097348727875934074527673715024550663206775246326578685859630734176653611970057858394352118231060812464486049524392960379501459019728504311643065692950573491350244919982656306852945326094990326721825110246452669515984468758568459492094628850398084967646833160029630146199519578155960884963583674606801107191043982940311110916991172505272898816528746445686750897543239189517877609543660095741064469102563216868385589344310661892071075400253397886114579575592549790928559478621428753600881556544672236889474599428534392876426586979866922372126315053904289257712862698560804735740348864474770719004613569995519769196603510867982452622427262760400853131453449855418986624400063858904762087540864998864138324794234346750230337641934793790189698063790914350972778028333077861285531798006591751040423331180613422126812699737316768392606840208898548499811444758353914613332582413780897445936234823867410381724216183492985309980282646745111800004413548784995330581332479428867169264633377088815505807695930806103886368246002714214835926025648603325066958681119303334650925047238301502531954957263847678923202059569676010582245859488079983219890110799513912357546890638574016850536396000385246897354132752508702974239855873684158325625126038115445895378839888211462262166751259620276595312352829605176937075192253593960241284242416704093506435348598573118972085821417780708713784902945705765455558461618024748742363048324614260370549485417173993909877738845727074381315986416716012863262793589342266369529329439861230941439844263227465870870070628497111309368414382537467936356672935999812335095662031575544927656580409030132174598854963228847023470930833427615417422094850864686935937738444679898644188454247146506213984281879564458662727836214709517870834925651767601755231525953056083109833618253856644421886239242371588251413045453682185733578661322353827554894041055339358071535429979448043064659613833743376046182392250913244965056791139564290173763889454167480980457613643470861217536536066983184545138120442365407569435556998818546428639238167650735928633489984148987880417670932582294414211825354084180720918373450012535749686282038453895126566495752196808920162787931715114929811556958781963265116822707657144801415366286853362711553670094875645875029700393285069945289539947263315034389821954082402706060086554799921129327253622423399189710125983240968517705931722623143962782040470677304103874064123420650533541637856990790903223931810067040686504044458090207388368377970787957851580777289639252391437125375709371582288453777478854843274815240447923954158173945879182932927578278847018459207778364131485830866416099247240799896820640495380673987614084903415338988970229562072785637648000460765995721787777518232997280194357970265878814775703126861345458015472518090690030680515973350097994066608797406752992361724940206956988093800747432579513743108190269131545389754568859172484628616707453876299871570155579838044816717021905957703053941787077878197815071616033459199912919305239253259774956576116738993729674563259130948483604238544012408110103805934405582912796492731615908090381013311603047301277635625770284735288558600289496651243183653777950216780071628964971977214644345781263643692795648904816743138817650275437299968067024988144191971958882330551030185699682935114305251950374856379851128243675950561143169500951797362365770542678389148830830435692278274393974665737790687158177311421865855785006463964421594783301960043934321718134151561799847974979017423154102477787197174904619770524153726772235847174039283687817594883740548173304901273976791740684815874962646008230811467077639155370732352342441703648555741269384125701336078948216745315855448288818807520657308307907886893964698620068610412604135973724654468499797016172037557362413587041444951399706048937110285920581447550029154623854629298980778769218947164278613411442395982636057220594455542949638873268425312428557182407791111281197377752936600351212571151112941427159338849683686822663175854846329758625404058611358504529915806122165602700641753538327721925062923124512502209792538175890780869062214958737864508921132328710131072557461135099471651043375539238477306807819048327467258786830182211366634244481229925675163486444204884797172418273273539570566000834275625120528101529547509056906624560497250004780236934167956541272271166324660095967689739497453171184225991407989380543653318262845222778030429215240658916312672508190829925436675716109693247761980737971790823784545917402649445369635270125350560770924556687723052435544411284282807421529416472261681794869528983732333883289046702218623575704226498213882514701856954121654278553585095905015949132837318265585808033676621387938758856048440741959929653010095825539159487975292563773404571967723040409934286224299066853954340786078196315630648643266927393895371726001070500994928668792613002942629880222616426482598961255666166566848350152524226090889387909564246835074296458183049394557484573160848932844390725706775481205358186181811629220091695437339756864305992951765706068504778569738391037066882547044254207013221243236150178332671787711453962958687657070209417368882993533674830555388395479577483609018353446025093311864786554726591947363228510672385129174341210307471581456316105539614740632824238281300896556603013033856550465288898468585927614710212198175060549144411813339041121991330177719647297257098094127129092052801848966376971126171557260989780173211851635894328703132567347373969518251893318328645210799290393381290908378987996314932725405485817013680969315354840151990401804927552363937979377545643853197096791651758300209771712878155521520796539241800172545295892496142322034602790387171631752837341399563937261649503875115608595829420455915466021886276109404150390213290888152977654275832580213992866225368529753916451706324449636004862164089120691306086282290745799240421480228469153186864296848312072819941482829201730369922138899369636671572697218337287944803004149649219418434248320287245987043391068375469572915757531885992638307886592198708018193738761484698089512017900529016740823643627915983156685251180136362675947611698252266038797056118320902543378560848779375977348423214790398403097262787323289658573921822581607868803155586019539557484726381882214410077824703063529719023182871714186807215489809508607969413556155696614728630571082372361856273213691237626293907964418650837792548653148028290854498925951462621969977540525871335051998048701115196745484291602685496943899098658343651827031753587881278633735887096573677212470892570039705383771674655686686547116571409038586111504294145285769328405344295399816949585379770917535689253452343566039709588615203466625947544128915548335369780812462471405459058093762284449084818668213718920423079413782412377185457777654095956613314795184478792263010450238486534470321311893061025488491586811566611763941045918074666449104314868160140720634124684400612760874793282260110023189819806109737370924447695973387794710961749000014980792106500165649137385620283148360982421342939738535781615662818761132170239513979677210466354005492034375355875520898855726667079068912203937163470454533907155850662707351060098913795475060774408285815068635044343998269990938848051229039741609682325250218094631493556872713058329791778696559034437359144399187562245751992289557450125785736506548845091454675345147462321741945998082617634211216931244372228601313297241330743323759021404422349812353757071916267821533270760756105423658643057694065529678605264702297905594541159931546578567207068042435242878856427019224460147791345619120732673731795537469374353442596134368237303582039919046581440001550287951887101394592048319191820939229421103271344141039061080270042962717936098063724095258820151542534581464193719765693361014034952323930796545364060315518325349789364546055420628119688854417964335967527782527951292303444755122340302593458477842141243533049330606896009301497598285907051876949816476038994887114763564896051216757485230217649923416779607147525631481663247576516265873425707765097759152873838194362697011380083906186121011955931252563512956957406602795876430274508795165833235129773822243331208929331636093160238023585402438450492616749202645224606650939214282622945086810760585641963762465243715123009085867388346657726280807980113402546497763518474452033376129571920578882747546881880943690339001055115053238756291513603020213666074997338383911415131755275612317065737760707193504769099569307146823226145286938568371345240023726296081690510675197888285842960203832194691183235837088099665597049578632346181019762277846903841641807131208339774127346657612146089703428864140676600728289532198407848488819122853416081035670052822400722876683536726238163351628154512438514436161395955391637772636556121069991923474070143199945557816283526443012924834841716656975852112351890934800911242909867335457095191481672323451082142213716454480748233943291690010602388206339998346156983618952648204448761555617205955372242565665349121871342737819929993982324324408054449969108612336623398944438176838836995072514501945078367914959965768339188477971598316299064971666649829622811570163602482144933991549253567896483981370785566577705625496780502155220283636136751871575808017004812526752822675685873950051329622902036561864955440132564211080943118597664480768539727851776504028351774985012547097573701738611643623229345264043261495754332733497663717468462804734389037773561688624455153576815147882372850732938373049318064996097529888024600953011374216421459741675028195299030067522686447569792648084323631619121686612347725426648316380182986475029809746708588638594488269770800437151679940289124664892352501497430077813318574802890392572475872566222132940453464535006380567574482377950855676919506413604313219109621442203945619428524971982105021219268570284391454617849845702348848805984491936167545520460858402907004282578696697645781504433827747024808813671599441994159042722418835931491061524897337091163475602702164207728184580265129511599746684229370336062801528380785422390175348801974545080483028658543058192776311036302530185037754936398268510243493928907513751393042050558525520239095207056362015450297367544439935048884303578920743258886731776349716008974033803598658329285584796710587628672286340761978733264906358780206118299222224472391862462756830200870005711884889576994765514477197019919386547714165321387807445172140808045998846074732745629304910888791029570442071971325195540633953795155125454380424746101009300600866392697937658329748407852457997213519606811580717009485561401927737970541599036992024679456679399558744373945924691405143529776011418752597081268695918858381204761207740668056723865943358042574249909613197617283906461768076266717797339613067476110474833198672966566498691505630918511369376913419127827809096758797673573818258855558534308425094161842475188807503062415980382219507470158001395711970556354433738524712676280161842959030075409970015610649797765103589098109904927812023130180594820239369237762906110880502556286369010015008897598619363948986601941201436126919307743056865310178899092200647912148499596138269330745692434150615764379266173251996853760033213834016055272803460307879208632330739274466812393600600700319331036702442044646798813549427423029124154214652624862232637762943154099363525961992957037607832750569508345016569883914081921794773980127265000021479009615616873622222043416045094071398363649396129407754668309413053785763600434138569056222222526852283186598540647013247809684406301195106697490253930899290490666023637629905496495147464800485120483985187207750242467287898590319544335145303985509184314201505015961335218375428910760459329236872381238170786241228560772102714739648889128529037479866028606262419407729806362508387615950769161160311022429926218196615073468663141929196689459720672684200012806823944379139413518883562476059119525453499887344915125744486344747215325921460554440145202986080121922460684385413970717677280691771974914883562100889330862618161128955879303856930456332032740496547925326567367301953828398713793892774913232202203689517433769919830199592880388495100893997265184403423639864369293660062134390489295466350219360375201143946601415444224764083602634043975978260266883323033964204350341843883553682378061035034318544653698354994554475946980928961301210899524294549529253118319449940117792959089504364732474762576278313705938295155010860522473405202481829941495860875973544731312750247175329248329996245995153501086214596661137214563028756033926827809504137645064565358234335021895971133769963279115202371720747845992004609904533095801942224254432912132526720517876247738103982962184253243698681397638656734295015712049920787248283854890338136106908096211558216787297848052088296074756945242628816461374049247280246121446297502785559985573320228895121023375480834571223245976790959402570830594615239254991040435269968001683677416591299913587103929442387673992724867384873316692800425161997747727041654117377697327557271705060509188096595510376794964369895194857381343188810434607967792138486665744690780379070678177226042671673638529940757687816103091397124139849483612462463814208457261048707982717509206314835831606350880423512546138099665715903420721086562437795607823776625320389386170922250732066281079231525598866481105983892827024219130817943367259172948596222384837502364687682748040652481918049027658798353184611751794791243615897951733789284735665497280151690114305382590682936780448451870374903550629771096989140998197647472627792321243287391196107212101225685144681680173131515209398568205207234596782041386520979299145639225171666422244753795238217063148070637281915279157492705982819328985519259620699955823505526147279031140900925509916940599231066898822546344256815591211944247756774362549569841556151760928955991091313882822375242712750321869044485797986428020480747004389983940757201598853003747545613836242475095490226224378787528960802641499424221562000853322660337341523465510168014950140841329867712294345431585875883741273095948426091597727868475278027560871668717219610747419769056773521227363183237921453501072372946241193970400826045014160605435750741710930949991801302591117517044450112788321610206693689542610738541950893533142457187521704900135598336193007324130378645909093682973062677618169858216704308059999012958795735998294789853289748509204185118830810828469157935522520547441949663618982377105179782476474572889504725062832950978377474705529167946296991547955809342460393665288657568910429199770784016149394696309271800441061264312257373712579160191694572557824594287811161822257701327984982089805308101145376424916711059608596193831265063537378864578633839687938645153628624795421653302513724971240739205450354103601641619219807360566519713963562181221873326852400670284294295280758813787885627956971915757283190582675553073453577418739237793999657537366462503614064725527701407379282065649347596284937047167036547426593216788102597835452865240224729914137008776720955608692308751831576252470018580203668280564390833983289561510434805628438971829164901255492554892236323240247932277892070734495624534413188469055013583083802634596172868687988875689891471144906037413131847515602351667567273902784135414691392907523498833184004310649391319521643719042683211250370599361807586295264078999362889103764625673366424069133454705233218135760129145146819954933385370760291010443520724901595941643089632812476839018598688579979057414368679807889285105569794233001447398391166905845508220233514143430308581774039936930061978880891243654937193574691982980751621506565252232671708407232285188328616253795934314360592023208155699110704694738666251357964091794059784408253140570227093857135445372768281695031371739906748382081264641830416960929671324546180490578464346858909214235556343503592608641359429701761333499754680101005192363309916418432011119451591301734323040781942182593931662974720635686297238921455787190335243645547436746073913795685959494237317808761407210192507381776512609170968501331272196118715909485227494678444587353070938356130730629800308162850469350564883886898234871398299952315920365294139528708455268421303864731437251462710193287169071618905782857166148989526181105250373545850172072938819677999484687057056017529319234529811855422706335964454442210583236168667219690435970225981501948028352449462459146985711538238228024070145459583883835630053229081635805644110558623901727578794810997880506136649523500488113024504041920856865509247011271797333806062859722466621503415250930274406547844617127868169506447262095723160001159822990426847990627486871765457745694864684829659376806047618467780287777104118902106275598630467530602464165264240078909515155153023111011855379880160340853093508141870847718553979291540428021179197544242977317707255860202274861708348724533029308354070444905665637786876140130624219132640973332797807306591682932338763371482096403603241903132506165408664292921347054329049143289016012481767213289617479309276182486049026446855675905505810609487740439222132382317989901245953823431782149107485475435451309759117646547806101483829448187394086469314034039432771963530180239237978583069028418804438641221561832814765447651313565950427680553230710522171157056498355169306269148194976622728005670930293505415837363821506017932142006993874188192787438035348711676311474357863046271591552574126927698207879636483808741179890922729466475738386946174540961401030437603227360949118071751701033760721634764442574902312713405886019555930329833728559326915578223663959540576706632761375865561133537270326977303253999223340529971629642634103366160814846529414648484827724492995427347956404620405943430264493794037532800042228585152912058205252391068439006170941947808395295164117252651387838822384666708872399996806567988150908313601762609576897758005689387893395641065742114831949914125667151371817059155580309070891353528939690096037742037316218986271367531168239599242722261584950287640523897223441500887601585226433597877058368260044607645825283603698814766217897190568804548044856872902284917904043951516376158564655715279440041716958201036511103124297470968828410349496752352208009748991598892191856708704480271068322689753100410252537014919787924320798987773646620940761075158919678252393111334602606748270564571724845551321779366416534575442084211931356819941710839111804829996494701722110009907209958120074406279509918628897556964501675487173022021523932570476808261049890593718731058414048343481703447091081146635595303501469961879739594274143940082396699869959914453089810123371786552400816263887467502673782139685734198725703304033643896250754166245322535410886979025755403405241074589445004601250552629434145758698307100756186665645760870615628466790267004184489365026652621029443089513202426634553043433600486739761027934908747271539203235488817125868341881333883791864468615471963196684598599872270423943650677820932326717924673911557414167132092861336304608606484701819768701804333067575999559712563754566080417291721981410989737843847892287723257728812057884939737013812330855206569387054843291401311260732956476423508482665169944111992131187168598811191849856661974273517155968338259647285999006972786303769112551897688861457433476619694430209742347142082004929257139853611103640936702143340741658299054978917458895051266650710845614599948521281390195475215478393348171979339884336611276497862960065281419485403586822965985968704598458938082265050725904933612577650947761078819669112725367310052923902976547654009895367651171684831131001570928192956279078912421545214695641268866428420478750486608710757353985475655791136265629945636992045969926907940785496777333837218800831633911323147927835469541556188790010194694619266612504811486437040914168854488619295787641992969341550311740679018753506708121025374063207156511855900653835269216763753312883700611824441585327639116223466621948248700810560316219961640309080771567420247336181787084478770762100426873719387259207751935877116179024467829453592011047894888296060507085188646359441524194301782975947265816122459363955226288639740012479905658763818982085687983775860644820380802129955948964018502712611884616306696615705103581966291154887661573321933748491272577985739510577525262927409727001890553144461919300325059900074002322142115361258732389198781232587281376062620221467908672327040488236475890552698727967164115819373641001662485281606650547671478129710939182075765337145202247405622142141661852124062261342396767304996936342847265262012963132693834711105529087954963904286682532496657751739293787147161274839214636810820994481482582971015412241663411916320763116147296491369961318616822471357252709128302490975852232332907881417156133024876275868974543719155226414434475905847276411348151659300807714218407146078309741138920934707989434929483771854406347132196668792376574176988325702814342572396613012957661892975394261646843997569807578665026769017262077996080870904137910612158902739012139756853575462428679806434983557771684418252965471800935244820191218438224689942613768855588722452295353011969673076718478500419413636284896491416407298806107984849464332941932310017326488127650379347177877257942091167005601960668305933050945128718023097084909890598861739414924698392515322672702016615999553060726407479652981021807805516682830961048925580840101955485661682202549618054671445103058870339423274543848473837563539846242227790467014202100886832652348629439488272272945224224520983169967651844428952211127533012308410601366044280412735883264035907770747761790988646463569007153806080835380692101670870349027239939253642224780372245510065418742398300274914881246240335640924533510404017924846597971625113644982192500397408170428670631365960299158979912170765786254783563676077941010118745918068398200723790944315233658822819133266103499874151816864999091867089216249393160352366474389009778174606504360961895146606571668323867647014419993676562571499777053851826908863403089591887874312344093407222601165763877827297625096131610724542064843579010337216830979067797088006559712163572303174457866399210335063917250477708939427871740226918313957541893930779157918017676186812340802136674136719522365676471377821508135636973411193298094170193530023856962824272567927843693301068951720163674998853580070330213010269565086718888104168197649486042536141092539043907287248691750448047743733825016275735633426897297043456906041677598255908749341282685278814654417614725494604282328963841684573949491598450287137338619400681071442038833762074042202953407521764497110598483958988459431054337500744497871157019934907780221283840682380484933171166487016689222956420702266251052562735804287141837763862529750100071433537405134266223411243142462757121070763023497989165754928835155871756793839096275602222932747559874987472815618143210523956909346417499667872604362809981054859009061954367832984737323620707810310023506351674507392170879081786063905197030848211403874058779316884498630215814803273949975058944589334888426122351223121762369099374480576453197807825270684474459746772857669580099248167458826681911487594178115166057059963081930414916368343201661427092825151465587944234060750739196594121023899472689794795495670353456018937199141887951196747839824664546788614738570477415492275003731374828442313056699502514765400286718198830264778392902587059414647143398349445126280671033783088418724347103398208061217586267007251347882708513371299614593226262861714323923262502068854071405763243037940955517813727329119695749716648228509652449444036656212060277391241137311154885257340670380084467625504959593051162697657624773928964515620319145681750619580239784017175302405646788098876235912116279247618891853695014452828156629826461664991440399868472061237319827268675081493861113195340982627112658903917209630124054269957904951512568676406768665899905780738506892241896374088506767528377357120034484581974111186705033609096085825147753383275273917141737739744693631736390498105876966239397444904663554447710605534074071459344124548194864084642776154005364570455338444790331281688411595158790590633584603437026382774164459778712100448868709321982351729121151569673610931421847727208222200136471486074832305240800460266071442006504448322574711883586198420158355365313446177444011069885593528810219757914401092852812485370035505808948631157823070107299117017202562906195782512596284525931793422174451656650737836539969118971936746483804251188045064619558502714937586561050470237833407645709074291691478419539825983240865542317096786963124197234740368138373745023838247353004432213731910630548633485297686920594389047489592911493760838450639949077874085900614324606569570651655443325941146410079224041530790790319309283451060743414248992236550937095021513198955225132055510721896658969818409274005755961884672006601228384834250411319944173378944188479754472713856398961508724031296456809691894207080329949768459327948254120813274712316386733013798650520928884798559744936080162949745986097401884716611155198138060020354261089682724756705739294433108909742396365345175521570574500117366423150891544450124865151882034470748339611247695814583877952275432770612620720298143312793768099191592213754419187400209698376851256105618800885138725830268724128520220728801846944290757258441290295446093046800867198050742807377553628411711340223569956666955209998080620680535959079737839345159942247709211105402909907239333989785801579028818076042943095234004615665069973797774594638054165923807789303051306690586611403774761913668600741366839894496216962390159732269902734431746258002506083653792802605848983891511896970385164330764489045153632153257713687466567178029637411560559107104520685278396856499946020029311577953118949044533799964187081543440000985174829968000443654969104863149773612461554017156057053942025459068820338462148770032160642803525196802419845073718126508953430305698349458362973616073190989485610510806432207918864964648264488041643116502612875768293368815265498354526389596885924382455153353039670002098073592262548133823226310104941694892017412558799094878225145542394490386904766250500532875864571515807779201892813579005626134580495497497021825610328787969886657921583524593948111435291545476723050439464166194939704293853589195702695749133429038619049452095443685191662260158093787531130030228795478878476927893694018517307665055003323521954280260652095472180581334657062491773294787705956343050709525461460233594391463607695968403804050625606930268169368509782959130037314760846776647181820023668197936823415532587768152564206371477174520742630354272229646806512021088279976361874482115121472331321182464963988388160789225218054813088881628664094492615427299532866564168147028149055055199587339855595182064071710571320667411402189918894469969609916377726187229731159566093640857162582976080368242751940539410509212462829799626123226312482592420333719309722418209416244048941144506928706083290181159300401551414126688419124017396725848108581460548562721155782400683617932739934583374762035255007317175166891169210996155419404349983816802035570225042773754919794268734639910640530866752969782190140623805974962339713456320000034481257370645308056320952107196438069308371398797074349080701826041384190757259311124785412775460863589448550739232955130157536764201557381842748327117013167706113068604420173625842889685974009642824832142534622771786190964218724771887959025987717264802476610182022581465626396520689964233329959166079404887985322398768184146982077551891594501295363213454569863164338146850504852896002250781717156242791455899196630042856895959251102566688129484876475023087453081796382471258291826832822556104699919040780025390616663220283048981033539186606513581543578907734380858403427351117754918435049614066676412248659459217257347748206159881066417728796883718122147273340730439054821428750760710740341774967646522881454760646771531586425421228499762060501619368503456032627448740668414151691459139651179430840450888826852979794368229816492947493528596233678792934653195918434681437722179691181526246580120964820748091004972490765714453593998773248656133215631614850818573523772871603147590254126622295874673826266995469786011052224274504018220205894138518458058361794091801835510486741817842227809465775689777334483744251916996924480614920946653242834298001811552677757477218196751998319456021882952867481541334192687170547239236278084889931203800644454174794752093568948104496522765050026482018461547355803214876442817534857279289111905781935086089893680960142541839703056359060321400645012826441856256505628943223353514485370208574532023628649894088307261261298725606516428480596298902475080482431480694678503911611668248381465148927433969068325223406867764541092061832859826435169313181897879992363870324437894633435978268561264639397469191903834040749291775643163708514587203642265102559089430525044862541619516814152848089560133410828517857050639452525942111688511567063682530868242298446022963655992687449946647139454822176123981307887061517045355695702145759888655681732814157849449006874419523959813259975309999331516649088735623558669287035319627001501905617945743541198100785393661240796881426912038263613992638122583096450997408066264007568170609176282628946797684229105815446752284560560625219228631339060018199139791607026729329773920018771069790535946177934908166553148844221911062670038164567478350887673756346360196314814789770524186481192561372496992829147687566575106866685691280211927309196199595728181097879469102953689742872419401800419637270238581533480926310730369523598584756904067234214245508421527061222854254729943970062248468036090346517247124601930164738569065524365831260126226870244935364829348367175335343092483084732951975096326756582118769569577933091439756591325818491152876879120263877626768268010288098411376864231685862808410905496630680800257324801885433607919852775761058085187758852964780201015035652721568497449710777257362414025848053090612714136901557677858454882429644474506722092492258369432811080123224822336039237312482847480808506632999531873707211524001870114994948639896162064789406973910889682556389333164281264703377983602007413902710432252437925999538238520893074473061407240259222414066078004140925207669706558184524986603149291581656878746327870243039097282757366614564989345058458783472123667132897983414466505147891593837552773545392213795621575169724488753356925992037531869075501439036519033314339840603846711574242089034000498536936036855142805057057666744358480109870345953907194531135073092518342215729150785743733048721556705079790091414908635519306247194469501418613461475259988382283489304938931332656495563475828992277964077281648589124593840597340937018423690350333160967986839095187486776701588659913598110978837479084498060824966389695147963710891907232057526321653782679650065772840426092121814917528662894515562736032986756600363888624289533724832774766608883891810269367267953495514061918863922623351885187732338001694068651679427740240972781144306351615289138719827017589939599528475474360466858651779920270823464623783498170366364534172956863142495950879606313766497375559317556601867005044900811789045628791125569982337486537717613700600316314717701195003163644980945491886399752663989197223074431774230760688255876907626047752799448666240127890264044560200670809163453994247457455656826200045017011077534071309553833278712800670910565858845952583667221227766639695343604275783942568967816499120903187376806428839668118713968213733440173020253055005855455690400013750688908973554094242418163822643802131298509624405237546632374432383196579166657720486433929610446169764132278947712774239786167464016701337433811529651797610457012570990169126170695700184680829129604933995765232236861985310761687301588911138231543470474029860580060222956192201664320008048505135481433249598874045203308918241189385922815838172978492398990274702015902545039761382411087383713447913596872689713077052092563393050998175222292937957635048014619272404019698099575307735253685082104890386299572766738299976797816906905241631885706204333826982645198587858228980923647707143928833494736646106498751249144092705882783419935674789087091773524666302235264631554725246255737710229780240262002702741968692237617841269455533043836590496519948991775053125480497607413483576414282334596874093182428397435509208622670899692608888572662435302061070583391723802528375857780515710204557659784979915372381560249137779309455369351537416254492931036600203710562802649528835574076737641011011039335924640924769739330145919082383449708172070357907216387958399426162353368763965883901823208679133508447030044733555211681117649314231577503702303648698088652508482328631200791270640028374217099314089515651257000077645808376700454624407359655194552514876901057004073478861960516196456141291684958149951644504771646955116058336369677057033664471986118943912606763272243554643341281770065511600863780818357320780500517870142231090027877225101553536298448695228602845517955488961339363081158998084993765617756802009924269276631513377914457227765667633027724653308097136374486380961535425936647816414094244448978945594797582642115599381302472821959338145770146275820848761484953397505949121479463282059887826700545619460226681073067711868774889228491806695061271783474776151260837330807459128247988861969999957534697290662578174885257160629748492385548807199191527377594052854244268130222521177742367842963726346758306494829068099722096814412036290310583271132359687096235433025652834297938600256962760605549666501909573105593559737070138414704765418552885675431108591889979102086400707962740009098864728608778376673940947965924868616991315459729543709222535845726594428915352950106145699087784019407981534676251871417887532371128718255556350591442296705552686496313514642646631026394471249635335260348204284918480621543046631330517050879441563445034540954307138902477692691044599316154797758667722310401572463330826013482397147396530482575151168604835486368320605624783687885167344317234615576755031846149267812653462222652224689988688532285642443246967208745094801517989496001176456460814609605293929578749353015247270124615266118719639080637124094921054586299726248558803996874123261701532226348341158031800840917913986019922782316236250722764102779401187085577273933254604150204042573496803963770865544069636191907372711493104535455614183912371433114603178612283966641352665728530116041109708120070065245779375625079052232181295047918394183591718579542843134058151643075432934528815970158341867209489375873121318970538796238654578732802329225795070511837226866434626649417141433365625699757145801117184752011844349803707583588791656776376384272582623555013072579675593514392754044980897577788747295107428078552015176792901535556841493248537173177719066561589624175696443977972749201949734363152277595182275639876158770876928721778534575946684611617005497321753618005947966660566312640429047601093745948856171464484964284349697633100070009809871883267641840425265871696317464491935086200894549611326645041050765369879026527961642224817181399782850452065100796795878137313726251263953256180363205501142633969242675640180634190999539672372176970913645466290865185000305235189275406350080096028243912579201823635568744733267625394839202261066373812662768110485760390815031115770807215180465121263958820238940870566273546336057718446398845637566427232513566129865574260098896103200081607202298186644402779360532118281153058142434778552399675531696885328258909064742673557015577948370611547961678332938185957956982801299053638986363905723005557621186726287142365167659030036607253333142045556708086392310156694835846887391160184073403766429283120603904713684233363506639660875166821862302867972327696421185673651352215920452389096382765679320544655568416763876790644721815626373031785796176707622151843512505791773294104014449582223005609102922907065276592796784581796988969711804983032654848352303257731449464764353892508042178070736184622153772520635564253688655167800743614980053250870305473828179014981403579266030519963826097326958386834700042550406703515085758733083393804928891192783048326781127204609328164120168062030704682815343311929949409550048476733379709276027913677016008343663624364971204536086596211147857213800812978663673261466055559493177297389282938113295859300576951838805476976981947044465787035048137078961426297145510300099581011387516907063104780999987968116520420560520690260994021425692231330575264834846055062332966902997280154260248417483192766457808103531105950920417992656497893866814924970345116533531781376578639715752614171566663127820555862476205052066644902443067281624840994846467415235802341129009549815926738531893749670410459649010796847925623054102559864034270731491600095765448274821756584675222765676198145178729969830693852213106525049927886642258873072831275469062462309599701925570879101623180769963586908473189579802661397590295265511832788041509889853732873548341581533118155051454413740789496080890168378216810175658968374165328504618305855031418679581422336717532954128258480712997081529087378180376390925790540915879329524029451930746226752601574684699153895865748744124510969597028928153181191596078350789618666396442593406321527126087261140591630568538180853918818518620580500641566778428380869833314128734590997524254797461629775764134746985345338610117041697044230442181749006467860780459490846757512355124022777411402158722304192929390712373497043012334705467789035633878698661888981216477986185219043843936054071008052638974883118975316201758795090823886160284546140087171977960995892582182964542508354784338807053512921571486807843129024831765153627255551146888953408549623861983831768553122147597402060554411972004501956182382953031994967803833396735114497932518363158564910034539900089889251545014845634527312205557407393694468814976988710473869201726459875362210182393933474375010618590156408744369655689458627026723012874604338517407026859956562562706661903604448588648316273456447175524477585503415727934822881661907921242612669330177706442669834964809004267493866679029794520877430984332711308570136085376298011316918406254144618189763566176190306151168732824797847906789878277894012422981367203191759389800644056342885188316899286405423288618652970303705556061039250450724001285137586803802049830148481991891658473540736712271211389151561661412886415347357191192851603181564747303230982158225354395834801138268559209949123703550584153819293153788429729801415085995632596288752637686309013736091275725077951495366827250630133463533879595597168291776621733659500577846141566840122038711898011717548664803244397096847559441018222509993335013713983457254313945696854917794498303684995820621120415628597322412102905981564209874584463181597732294251093293390877423732289489857265696710348942454890145475582573025076845205143621357334919773251563242245062570714418701113629168294305007606365273982655157037540070159496464693695542443698326662567217027007388365266608399513304843082390785979138064523695124903043479782547811272076089796761451686644469332106209850528030970943098712463049874495448692941911703553480091760820851860399220675848263596310451489531546378912646430090452934208118859899325758372133855213552785612391638166739239545384116853088332975865468630084201754722537263774158411374725977243746200665130051948964100007149564823780572190546286870231107768230004507139279828904659143240021255937232831502398993601807959785818060547428660174055227870404243974156285425281931440494393390474119530285802519768877853590352079742169433195411914245257010405721664014491279433559796911471797136155198512517691861492879670115076074001768204162892397250383520341662908526711928786827042229617525989145649048726239066497435971662620401761871975540537284661522488267617571261991706953981674983377280659298538736274318854586920239608155442044668478222597444104942875180123392058474848456553638495722684314022690666332735429499171954878824801824185204059853876654529171632360258984239156023656064323646534257173586419312476019681783842964587337900749832735211464634126290992165427184555658655665463544528866604219331949429170335800783331551837796819319246131362103458252846125812362442499274005511960994433112000614958568280153891393254341238833473904924471821759294103058117561409957502723915754287197059315432919567547944145342541516215571859777633829852834858729056591095143283458385775294713446572895966904158788639930303078982571750738761128690996516275162336693936246068661232013486734379432724595630992862015647805732312789653957389422983521150303374501655026707388041448020291354935091866062559509289075391936450200337422292034229687510846569597139363840652481112715751774279238462992493517706408497266693763283655131897630325660814248263005725020768462481150587919653093299624404287845551954123070168075961084330400691814303800473517960891807745392990401239644904775007996701109095055300916723678005710742986199362298927221617055113135663918150601781988896116201775866017305705507640164277422203056257273283522872108816235980222529574910129562488452178420100230447243723773365989099437605666373815963736795619414953216013610435277523334173535710420667725832602124195123655943287675520680100116143251902286820997406944227372446596772019555871313613527398626746884355248137695087243016237950590612505529252110098986301531489325493769597165583517321461786543187498505164422071235746982013584813455673397508446987648421464149501714567493580349236978814777240276729034311542463078080256692355642596226644254126900705747862107902596498459152391173962660050174652613620140218806314726516714997752881357835700639717211854303330011474453542872963932754598691586613327584121951065085976041586722872018024899360867444668287905314518562255677792547887650424340329289372238059690034131561671572433805420981914791246535830372440864250966965592356326796096955694005322100907397812890962372637539338518656297026969836523606317260972588985190197584705102385623412963534375866902821664932735994434412495271683551135878639559047912480477856611515824860088845222366894759815607896563534602703787998364696044851259682956444799864593997366103704111900777610337647615420687762923769719218484869881203105729641036130201026090156970775180320243187767673011617534687382903241357898747611639378404945672044755359113388929748280649137593802456509618479603428919274648613106790390222932770807145472996831481483000156056023502214782899887085109977210810545621558690082934493889442960939025245750257729673762067519972412150973678582665973827875230646583020639248198489942990547876913213440237045741494230284017177452199384252832895756280585084333760370900662660821175654609790713111420290848545382794636643017006316035172601960314192298020356467567255810678944378376277313926288739275826104249224260400078368428087092701806409502678593553086671415242658705621090833485801794130888713162198059437649293122010465534791796654889871292984699941053265540063122836862738465989959312795574307168353514175953318563253842708440360783469660295069072622583938321294336780625624139221223762664728615986774389692688497963784998095520003768575313600412501388005770918286554132675091735953895126575428796467663741770155834046794496534397497942642884745501046660892068768939655798200298287199332093617257002282898288136045897085739562524265772756592708064223080929332415771608371653171480435954763445433589128646181792930477646743664551867356660768774488011985183964728725278701215172897276060853484313747761935893637264557244907462204698880509259628581375816953147290016546680400785543737251328356867580553682693754773802279141224822080790844618156517934083519671536485886353735476101627736932141818394697523586319604374909037601164775343403292023968048717101373962697193812935086905000366002982314698464490848083051581604989277707749749041869767364458237497359286154307475384667885186760475181713892715352304778975605173752654653109385636209786541255649082732803198635700276627818932184782431299020161871340757356010952773109724750716442691526867688292854167193524242942307757893933909219961801229854505769517124964260239745226939930386235915064679023069145032070554190744702520490112614639410846103610249985034520014414420490552622797092098460505588718047970798909350647092841688768076913785690747484029167355480976519012970476210856261831078717358776492036190795680479535889077373202576617024014469603064576701460136054782642060471935010590642060626610419704015245931610332638393141221324166819958522338211327898720288411060536390041081680404791705251406857866517887551643763042608047747495414399433356567812422019470520065841187253451275067865535205893702088386854737940163236124668149417971950655253796026854458101851014396557690196280405964567654127576564753698446743463557392151270275512912787411429782020629110696880482309391095032381997012741232789832704554495999747063751705010453347554615981663872966517901756287876449706215275294688997311769746194376291501509903196353487920805923200355067158957663404553090763352881244972147913615289567934912971953348546760836079028315403377673100496679320904256339437616986119746650309277052518329409172847709901163426512510782726552858679293919722117264615734500876650178458249942639410403475991539226187488756151272756275882179902643388724154748946298931141571288952371723393831954153050218798708944182996945911211973563779289500323630118931060446826203953303079858755386173539574088171173953872506323647893585437361371229829649346801861863836577661369243744033374716671080712567667576015923157426373683676031435876035075471346163024593394143914512090059999511050788572809819054343801800097494164700902048528295547240941217328635649623401116997467330439376420073397453747765379819006691068316568200871384085705351079227467887520069098856147105092011482280437792775691490593416577705659175436599514048078319957159987171231443596474639334235307290394797893183833289490357631687079366659847697875446891121131839377668680034503585022010238036944522244533746403746782488367309037668805677122487560424887801053167974089619062849496574992094170690969790163103839180195744625902749755938355577826638129912902413211617769990586432205986195969252216820049328580216751900039243938408186072418648051087324622914625646766249715578794181490427995247439892214525330808088279499560972010155650019153795223841436642996843310627487036071341369081956517938392274004848718567315567790930242421043629048215806499135197130534046866771086269253984744055041380946826365600458305350114986481072152422410686857468384538451179132022787275960639752673527817117699463647306256916614107211200462627536351091741502814923241042206127214408963317039586591764072324349652353867251794259785053481203893047227614544880629112031131417583930295071598604762556997190332397831626865651802555586739070826261723174880887325342403061848730431089629457978763418132648371121268084865907307833219211404482057092746232263872520405952334117916566099457495195393785389266486421875045102180597449733177231808669024561175450245452101219496151504288722173635846848571407241452848275682454987882027930104752440177168900733214993607514050876706961276613855674120423235210947674193855705177003584727942047044206379627617662079261134303224590345430841255324628472803451341415050177997114677847086096453058877739671182268632058259471326205063352754191536940070777482709150806929959301765655581392574467071040147031047733010476092318046059295354721138296319041219605679670977323259044245493429245822651316807179316326468794132943957923062809712114547016138292562807466911134339985317375177946155906776574646155714416434760191033191723250471608921051261728910348626594054693025071643989638580538712257969934929823047063300137269594427375817724491598018372870170303824599664762698492091575819154044954736661122503261631374500761187525000110429046612325635373354679033705764263703200452962498239598419527696512669985915337071914939093656834985743334528777936770020076601117184333723330756603461213291088713816766713721972810770783634582079104619638940409459197700315743167492634501380042955452921525951405035086210903698010743647733924711637925619432159622806826898327420496980830388809834700687105984411348492416397789530256483931471842915447623539002403318883176419288243510845067097524106988553991448486641002178318189102145142320603843896579335891055237289719921054606900818833246809854471930031938889201422376738593422089075643478694683231584831932814948068365490119559702170354794991309895329943802705113293319355216592315780837894800448755693701068879300061216356715545756596463169326719140633593843186848765125481255788478874251126046647855792873337253449591615084224994410278714195344287783642377463942277123440294801304485551086241266818211152830595846661010838637271225841353409140247463687315454070432111794666456159418534134058113101381115044760228776707305684397792699562416996242082079582349942371580845187555438347352354431669544397092660782187731044858195634804899507038357416600128419521545637159611997759247838209117516012014449779507115944147005484758154272845263525555963612367921154872590304267250199080710693031321954322892042777133118885465564487624699248543260994518702515311451856792535967928743294860744109005833115804483994559321920359410056493382546814360172254783725862093161925410504757469105979641889162602221487989948665778222353220086484199578827741576492586016938839221575201007864401020490882386646491737920065231642207337647020949946336387751843570537198495751004263536176469107236980001860900550144342410141030351360423876782391855318037202714801420803353607084813176147076092376346063384706284362943000389795982065130925802459447043855989318703643250991256670900475894427986405074941524975872192031739997334384601886560888649956694112722571456840366665335226278897700302248154458073258582831244624506744050292681338036552257750919206026358106506136645801760758124433133692123577141354181540011099507702345199723848087296375632644749987332107497986291496272700331916939866129591653998464065247867267122995366735503082763891137547308297095842202874352113993765311783583609969802942717356981122529919774417094381806395703004214832085573012355638827342280050520711550741065222403467651766939533572116796060577067622552358312237550662110495808417858603928542874553530227911084702053958858890046510186013085309316723687683688762867578407970574857552792198100492559235031684031656976300963957882092926904296208032398557863315514024817022724964885585220305357355838606471574007598993033881290983191071869191027052105780657306890687825665775902187450770124858027338323615403527529979575671960585411799203612937227296964345627290537417906957900833294615034757447845684780877217311996462382986018677830282566114936497659424725889216336678856768330858877306974969917085255335651505326960465202824264032354198300354793419951095034970264780390574379806265178282455976891139009397222971993453304925554102643471720458303687939702381008579636029193985338381475305186393067806266832264980134896478466264356360179747560983887847766052490210797194478771838316065903557246661960081765608940458239517831661817225404689197523700491858703237572534800618904776663114650401524673924850650802112631842473558715625314346210528848429820686572955202049912792766117948066231471273757457327914668010709178844969452913004674038599167153680980893482242951554080027058340533362840239056793248587236273516943196087602395052557509191601533816688330009809824478084379024757459705409694007672671889064836850722516173715474648019287250088383924324120642875891734517683241154223240529578345228871798556056329290164915946035621908972413776838279879825586615701934015866354198938278193622946738247759355493195031954449187299294344352228706243690327396415305005590378320421862647219605993259728431255479859013332409053826577544778262575397531636061644841767376344574779936456493503591548126995319396294700008530904071327446860018609428024473993716238916609811883730258268627640916276035931114125408168827731286934897703959908435699981964911894020500577783236102818930977191847469802390022932566306452948319311544464717046978360325535411348736518553044447527602033525271750845160020832666921190305245676316679636654787215211936183029554530348222146688045736110384320362128774499226814241967103477603602206843946204349319450398979731610324116741809386019869423756403583647817092557901236819445232906381034631846550008215820024336046675331568294955302176444116209402741028647688371080718341873061150922123402850217302606874189196896829338285665105847209275022987018265678950132269850915727468627493518234279421790037516008981223871010974105561415521982288401458344717627125569209843508101615179811442735734607418727331079133973507375134912511746533314049003393845987771702088456870227361026398738170891563718373635801601126498165399191000707440309695751530601235245582101857455034028213377892177138049393963957829122308718626854727052033914160747807378295364666925133693631967955998377964847803784879624832544188885397575259802376905964419236634802266724244985871526413876891051124825874497849591325901296021884234290905490632613840478387940610501650592379135421037661722675051348540575863317975780537682592016575652031587251441563989598218914916189338817044009436211432714726420190947145912194019134430613937998121522398266927758961508378655293167440471453073084072381245542491438603926191790102215661857572057501484792072424004793254183168683748069619541743329087179237334158599592594507154842309909761747850697005511559107657204136424729338214780680418804592796678628707636968610105012100387715385459201932867874223747378795700482935628537493144297687195388776094311114185729147893662644704945620792793452042480583646184129148610148749971240697950546569844354144762839007355599853964271319288554795930453418469137740597502573903339247897121845806182229456702158821501609108499949016845073626455654366250694530642491969389219402013539572928846528161221800585207130495351811085135528508077938195781511064228093716506176699883698312978801687251651418262265670172629383807531901813706950647317169322701802286318074859899960811861263150955813089560584462727704495174068841016432404041869325972202808143165980262244361952594815904246572103899287341891054501875105809566528070919730418944783328012365207280536385603307986375913573110025773372459542063940570324851369978367419358784936781770666506226841287523297011259356518961813476798064735165855469860104505773381483897295744459267708779308686437254353216616503134427338249623975153239978766333010371825397492771964362533887862609364290935136447679124724182517400909748817831082399594893590063073497462500781968405860710157719470543300574626853315709351170304311700804058335139042898564273428214802636436366809552932138603584324317844530172676006055878051640494759861978603304354924012346421710152197994908960695015912540622073576125271585898481047499412153875030420152951025539920366692892190145644962308847405621841044279129103453913923716636821284428868221917396945121542240889035543136349188251215122781425385601580510069474277020347373400680187826118724508579513289318590697302657760842568713966190547756111948634657035454544897029463354029258495226783603521477951228728556940439030335692580565435004835460425887745412537304266337614372784025522112505678615832751832392215864493440251631759087914626020003580697441558671550112899575217432047912062949758423335030797823378006130562148594751991002901346184227927790772021508781281593699044040600300183667644021724860051751830913353226338627454085090631515881608363067875509497600915511185244632283571354974020132424619165927655553057905013983084799239067631251904115197486262196986355417583618809906970643936987169756600226454657594970602796191479320157160252204315644515607115465216396243077292871754667420582339146644360339262540636075317431964748215151375220183718628629930340900687116212081867876967618244785088202652271937189456347642854676056885912028127114387732874921102622890188596764348178604009443311613837610026459694601624421819433777718683729873233644489901656006639137740654936488041713867089719884112664993044576182780747105814902524911235523681324296376737783135982864186274724284353051267528954757240360532351921122806977826228605848788664273092159754481724394766188263450857922822302176634247831310492278302508042483432363119443841064077095417048296598591905022877267368796159321880030986729850407836629185616299712583646162167500539947971300912099387116619052136895263269984162296114873300086929287089504413137390510937588555927327911172584242425832106766991419965690105577679986310527871030835946730572058652323329191212802609536151018158927402658622944681353253427417438527611786573801726967987800511742471967540458403886699368627396823780282367221130521368516996907057617120595489779864609023226396393054353618143501502434041009304730177006247594967251955084373022924031861567142725978491228176769245113672554647870003073999027905948265178162058165774809994433806658807944954274670727035305775914506777407186361109621148008323333128338433639398395817327462262514465915907404332653826165396486379170526348394203929362970697424247423989087009071568993310758454007202329933397708277348906217362515834605866912798929075862278760015062495146210918774077875236042254413808705287799884056888586965641279205376288031173477676158065494555177340153658025473094057054507749354523331011909159458715909903937719962248781753673450919525887586678486098676814583020043247839866959980179090413118206837647617988955876890907389908939733808562501064302608070577181186883433831493263822068511971992381847844956487957942229635765445778802540335554807035593105838859541008572392797749522585489088605086717939982632470152047861113385954893851050211898269959954523866639327278789343298288687457510533054277417612171427056736308675216442472325943446853016107689328785268849443631504241015419990309930353014070430608703735484631408979185877688732267375526824920761112319535925685081795931959477952175540649466170935677454971683366196270933716543241173219619327726995184131040879822818709275857453343216662747322872769774847735029655693900759779727162297098399692575667783905348360357856366800234175674283685087736388369895732724509656452576401194808951870779631108401187849670100133256168274254726639904654696003002325006326887166614274449445014944146698935286516179607153171757801951300309463465951982856900593208354660467689949881849497786815590305383062288900655979589085301913826900840289075307278723936837065744002533574027816163449234687474751661226757245455085175128566622378073568786596576894308623187227863249067839458089838401393515124281343727516230819107111828668719346431333464028804133391774357125729176283751245679618219387125969406216970835490825679249132859565288372633537966215840243599703648654155225134462780940955816422034144082832883262551201875981479313466810925316806925193835144713989980597544433603283966734070135523763533657364498250766996400707060517182123220983132521201704740553287451927990013570622334967899015199057736433087460373364192579780348845828437814394918136571736093239973102036625111004904671788344083045775458183846122977085952993615327413263750918317045037098461963518085324285108096926171353507371894741742666681678663194939754313796617448125042242434967209023435033227042290006692799369421800833750303586664820483702729618553150628749933656332370626007439019438399587820048233933761048688336292292315237308989994558955036748093356973698775052067560794985691958923788802561263121682368149058881690393019895763873415000126474575086521217864746384386792199559731465274329767123021905867949122166974465256051500963657581004154445750822073197982912893527243503979048067962390293622104094529916092512429843773863078851609057043036365072422217271362257240551945397667624267716536706071487077321640402291357453022021788291374739454259562289329589067253549268458657093214293268443585787469396938799525006952670430922536201888449432448942556523582998904598740997474084425983916420909393673931815458269394725414697240995564062062795284372102250541903114159550182107315777119752112808317317960503437971338032738053244490766859087540052477981279834378352580660044745383530131142516188692265102573746875733753538894968169530703706777182886594037436293606628167121976684070770872108856210873426898721255345164952413798689892043493740905578659207084664661453426066822758239284801216048818604130026935196541289491897547837639885794991683739752162048370705414934013024508157907533325503675078292289745066665203406810977059037043558509518095794320826101975537819724681196168990340516442311157047788977723846760145662180479808153179992504824845745723983583606494836503468766925904736956033381474378638339232434429879763617726827249795287168495799429862390365178236073091787769829942972024449346322371770235487712268157544589521584841242139766499114655347733115344989507955086660553092608069972481937191339826792370270548723553068626661721673765307693113916865766675133871638307675660335818060647200924022960304505024136837687616276011895252350873109511024590887078899864253709579676898418120941892022058331573331183378130060569375844512963513468140675563139125350964736866859888039643974428687006913864302953803303630840140358716011645634333117349973996996700228253309256311047394872720903205433953535380503119725231136899439551574819111686466903471602399947147846255606740936259698644006389742849913425727408249411059298549933212348673128407016376649242540238400317060342486219900180136092410082097300812102623552784636257000486530847555649342042708625382763625620090823631284894835709214441428669905212908786496902121406088977489924575162238858367366369763148703565602433805777919140068087378843816224068013330927224851309008515608162549714270445525703926731040960969674788601854939356003727501367977769085356079985046033568624387372784458892959619614961503705095042316222601228587261283233308523754995719591694418214036630722466444178997026886585339208696862966654078314218547528815046712351217067670115786901787679487065898418077392500801975500842838921142770082494222092613070451528363019942434203363855993521844033645014809375645448006913738996066781235899029566521939399010962943273826511695643452087762619947445889237423346123052389129053171067096659101340795403561874604243823986984916403345525820895071594250344417953154337126462126470750829925893198293714598816373882844263822351970520461337826078490102557824044038863291576348397584825625058342058624184750289149630841972509992354294498597998310105652633959091608931080383220230866569258000351872286050329836204748263722951460293895688124569752085802421753459970054901495728109734046556233229008678488716322016082559600503398221355944045643764690897198199155423689123159835289187702393718525227252103856368829691286831951390354407314119467043704724007120056202820250763863321813103638315765051851160755343395401568118981702596116686498732170187966113046727746074020634501679075073469872015227178341377526349956856486590388017632728494192651826314814167473349127242716235364073271219415871619938079939040364024210030411070730112987094637504658256296655397426469523606147213031931419854425003192926736792355554214288586976267051327731394873451314555804448989783571225025534638722505934618395146126188774784675347235066541724238425125252800811161982220052006044930266070740051030400519245761078486089112450239016184394426229864389361375228736518138450964994486646335284769838262234776005674796653212818493376214466126367248721338683729957879596895725542973208366289149383236138345382821648893564117106868897229139659787608197298983159435317791552356247971156294942077275391774223135829712736267515814183533438444950604130772010810650739224428204749360076763760819343739534647753240064395158878899657432032232956688883663671857975352010721125634777901199620195131963510346764561294625168581971456610745236074540962981573973257924035296711156012122881116320126445274354933671815024910211480145541308245618353518815394632802055428132612884215249014792460852573600995763100321681763024707192742131290362218049227811714918570333949967298385531056480768885253434524005321512749630475439681682511799471924435020710999351982145465422095876699418555632992706251888330996458850531933011620948287910455527714126614183224148977436304100466235870220958889888281976973951194504641701580357615191502187572680067814212874450714427981412046812653911491175589782038850308214534990626114787001627208980581810972714315722507053412620421265469325705097843127306734921621498408892276262713850865199974933141186431797644676891580822473762713849359669587105525226214836244406239263834966657474207927922175383453614804142666937504748349368453121677951186268415375436006347421237616130028964950710006906246264657591295555162860160823972105478799255312116007040154307588050716407726282096072192987847937220336626574809983051781096523745018914788848014012567173104344763215631517397528390271814158147391540959431863775881690820813420058929058801098508358379550180450026629773388007616184998127132223087641796761737121344368549401116288082285895421049078352708739284798472964245125422684734499121966975505125626147061727167560731939000290414463359260031914457958008955603530872918718228825113792421577799555000261811798492248399466077616561212008754914490044753869070668760498661497411878290029564122427649497105673009126810763951033262470058170298358248012940612428294468606853370751113511876166076050803143590388132762867542575866305153861784385638723948264763883999000072070960254143277055731497653245995713652807332152329679282906374081510553081056619631906097188295374391861613105555560219727909027840171763517919115190374031372539018934316961510189584379239711922240482484044901365526683208569530396660981682857047820581291044631092436147047474838028088991982681272506595783010459495499490518344797995766542658145558822117612195384173791743098368444709987539970844593902683158152579283290358819753443598799625173559254486843137601002104425491983200258092962763633905375424957795306068006466034009495100971437510855013320645770128765131074809984565814727688756232708785749765250464738141339799028076366868814884867909104562398347009400367012222751412077016440667243932494522775920017946465627405519980599766536810775417126091409490584840188722490251474665995389164433430526869071638088245055013224973090122536473040979267796783227980014978483679667025036651383284556773895911928199656242728767181860111960629917355344093588102986362017707867706214001590083440100362379580949808973690194297615676599281170448527461280498141905080264356375958443629262263510854998117750757506206523550935753135592890622380059307978422960022273191136237530429984664981087461123581151267621403363717136766584185479343358381560978677025432085348134032110950658768904537143449373323746939557361192302639565707251365655831276159898761958780766742821754058863835479882282785739722771893938114245352146514529835766188761481689304849459800910776257613383738147771825378331270587701450906594987041195738227192247253054738265619197871831850452111390597833423852955540824870549621014711004001839101175471996791125687107534078001662409233446422254438974391194805963383690136281250954115190078896904773029433367742527685163648938836218810806358095647714873061599832066028153573012091750314047290002781724294466875601146355879567057104262383314277577106194924534489308964160714881296017459966344631221402546365773581622259631018169485974601399500120178542451920975820642992226389137489743516105800222871466129838828353774870513687129035316457155172413285630724982950377269459279145024641543268828853159990981374249603400981332129530546710998973146174192302219146228212230623122609147985555342784385165137553498473437557755835082971737133370838987136304940893439265800057533976462445090899061430066355583549562401547628503883408694917398304626497666283325355778600331296736051722726632079607048580058359010489431585000651796792825731160862626532358866642748452645203045372477484174269833925810459832102586988533166069700227889774853809816754805585579036054873109326200052926945629657252029196049033774131634887501456094118702258158380516514878297271124401918429306795608613309154747215481559967741749312468009148392021578747391270022324333537430542567800440300049373844239484781113806307196198090511798413951009359161563899360397444157380646984146759663822555681331224632621806164626104718613868963904118129772448253078452871793425200218443828886442670881221486415081951250433879456743327896225292875621379046707363463198017981716313890953005963614291114933249765430263098101153410299330573821730360234959401264628087839766577835085797696572120998774084658640013701226940660066576624902948879859001945092730320019526718157329647031554464185135968566840610488091101508348947208676287917762045746420601565920363913713153933655760901199326214599573312702223563600136840623429443940267984532508928972164395920177120172681433295615752597603879463473541220127222179831859980467031698837729830447654754444886994664196992048284315998132169473082009637928317000657031058708213726975448930602608818679359744126670619528388948451487616993268899896568051839628965204380130528602450476403932362272319373531617032948899668060474494264875377420824518722952475560877501667138552657784414115427411459821739647977484856662453581176129950482771191708415144483796734854733361983165382008134129735551822295380329158829667583737482810344050087036374427706029922957622290979901655790979669009450744714434686882032779527127025213221909953463899075347654410947284282803355958035713341969855979914059499130195909561398096748111904645268286447874262306653626277880001797145599946650599700099590250367803575609180001782650207260682849991933760110756745661375208724625333638824883843326729291793971812836392755608148291554771243698110143777565363897307263072026808008644442534314297009779413145229568864506103851223378603689861022252648556360569828874673137804249458988866401297517053323059444296410032308513409116642218203561235120902319432380818085167390689412593869487880833279719160121551549179895142074963873035520218489724308047491423470222172430120133267466312266358898925551595412571563463394493090120063867495887996855512965793722327596933564821162382042863228349742206989286314502288540017767781051236452018657133096844225748054102560615067858997241281344633333662955396499370131594880768951931329169177110635014236551965460143212434115426945077595560657770873625803489869989655410188216790831244224238604742013650159978631078614515662074153357275190609597533776049410602734166556665642666108925918372222654242101194133797885062397737675454817848435577538234924911220630242737835725688125303322760262991391242181265192113076644247088700820037566409230215139111480652442859907319285329287366511172190920121464129639516368455271846967484189672113904050023477559029102231555228949893677496412497004775343459822170951551271095355595479080462223789834508623430889394000014566080016895878108507595835654714950934467099269543562570422911251916063203033548577443808146362553494394625835036849642814672245603590601973962089098022531901399017372756523228090190805403436253865662527284201345449073924329753133827436424109486087696739218568167948761700748698457095636420779172155849014501913962730232764827170186309779068583202569979801594950633011444694487625163773246755332710314477330088270691217354694523070879367449145254672941041923678115433693478915699840455584408701228789816782993552736745473554905308008360055978423050851821905164011410817890716655542653497879140661719370462722952763701259684518977966700401207518855411845908103703729141182752122230627400058945140041829157150380151347694408078906954238383719389635502746165858055451196231742874399100781223950377583009460931193030154507929604469967167564421354942882873416803132491424669271876962543838866964544070615382069208988851885479262506524488178358096422932145461452801326831988348890505438681964876408344156445502240687320668983569702462286216527142613031929741070075557146403454898360163695096310200321800999422383437109495370329702026991041641097874647160174870423651572157222595187488498894290281461196958884829089110240850371310235060503613625354635144410050880315446431083498807462008343536010965764101505678117289892134418375604456167901164371390352470623093937711530419956160793547041619428644152071638689979842380059587195513334505692261239498184205861511809203786137536661621397130846864315003534827270158053050039046146087005525938365716751230359124573925673608052793886619322999574744694943073492529348354122528534173699330782327020176622731979934046914542689132046521389713186034048858180791936083441313824615647262044514353299635672678655649040879517117445965584939251071217463427143339131873043284030853486278513961112849940100217900094857089974727996751242603445320047058515127063178477928484098061766381052458945482850014110261073936553893505627107323974276001397265012086996521160662106749272119310479582918321211683102171876729922494560019678914202301688507286990473433694725195034500824732197541047576637282222730592265857626123651977790608509086613455199705286722845096582713565398283409046293027066060401631383872113294222087126595490853528071342538079368894233779819672100396795745847779696276846186973800339063817341007771609902975507476791290453887021401312645563453363685299531309784680972676917568805935463516103544586625431881636638334400781483776640749696191832279101559467331584500683733309630222351604647013418012313658745390010886658960967906946879012062574192338319939983693493340247607733877039254020510735451106092946394090561919872351746405950207541443408972572368795939217022830943478671710893596400113834672924179721171106980510428079944846495914865799471620292820310012539616159938769398580922916373356119213535721840785582133506809960692631637971189365409493766036515872043329450469744168387652716190303916553678099531565707990849344696591559787864763515516963670253424398335209710654022724339367776607784106120020201799284321289353713872692152710300450872797567048476550993474542093474743576837916287216294458347400511818994266089122541002138630909447149639795377348281189696323633213860104048935193254877330705836695756755382843179941576245484042137224578585786055242780831599001711744156491871444539275440964027831523103334015636442149858612914825229807815057021704698666283638586912546822028987470302852101924881729545420978452222484778639555217654967953807377308665352367191582458752018918833169431811692621145003924034749230251165624788870250836350839117589628498600336778184617676704086488286449651918738448196399991485214533112840709464096130918313033040211945056098052417467479366755513037186281272050553946866059864222682419368908769663653753826866772894489456892557841368083532401795073029188167782218097258091355198426419030153957417866082452689659614796860096317857772053156861231381600190904931975755192074215883421150881061740945018906712269792267981354947636168821574809730823824370789900988790075347750039692019790964128382738337620451531581206543586397953280860198547305692721557620545222537295675661060018040825553131693034048171586476722050838446800979502833945175212230892762536055615789867027549999069068775508716453404850526544562133245130965773844232848674161370036564129550416211145189825188343119702215107211933429158138436226576025991876705067685530352782636624853059470193454283673594345863523639027241159071010052246254067263286177835877070125160606129569130611667488101247550986737481163774180914819256953604356431390914407118497785612975719987487392161691130315980855782842781791928251796448706874002060888679874019294951084918226248306604470601153202625318234639520658303998258069404791569143208270902484872952095960892523064726216107245039725250449756997707522001976166217667749821923280374106290706264563975710132336855005380426396013895298334345313650738655000033374376559135978900496400581326821552220567016218348245451907396322359105472649208991160402316736267140957716749860000392208475250900840156917854785370322342778740840224626252469939021440242959488891625563658046815542719888608195250196523021229667181389850632532908690180310452782086394119931943354605199318767601025938350203353853778019066129833137448345826345367794197075476462076206705189823705496086467603887988389929574947625858037513580706155612946742057298444387340991471567764930120626286328655158787280785370149366521155797662856732798328164403347953314739686028869211995324539898155839633749441437379008798860413871523896497164174628818783182246121435321818810565154419405355276657765019690747381144243236236936691358291110508363635065539896541055856731059688186568906027496283070086467961605556366001580890916732684486105276440550372042001851178057220289946111699803767550928640497429076023685848019661901648402189101569943359475248863240054282356344882130467765854293353388423890036369899810466820218503446115235841805152818232968051547795526100237465190974686309042684524097314994608549346382924818686017193027610290939816109212406974027729236325382686920238379046766505414391991267601886872672262403287556304592064426494259197504474322403396679460898448522805687699671668652891227549869022058800362426640470795590626133240273777142701025097302394813414597125165891585694821389643533838329368207680122963345640743293610412692899244969549438909595801532524328365754170159113398677313476541240744584480017303477489575937048694968616701973936384625795850444591053304846170584111793645975682753321450068247617914958256705949617633271772524580513009216715901412319614888983190181295716919580522096938432109036401482733420946143716192935906140533217481918898174749432127081847922189970780028214801471707446144258787946164820512623663951835796667644227820222585170600546040557097936522989244647303479852949617816515704771340372489789706402989558183035545893901392018092354055566406677019021929460535241905557037791810486468404936318816861494113493412070748208735207029669453306234846743478471697335920714084096399411210977523688217789819032846323301756863503002321377374223677960019477846623873888613992679648517491269172335977205263942041752247413679797432587799826521536413817521010489924565552965815991540928244213093972203930953688525572534926659020771470345797792193432202686715209913094448042813640407429252582443766767534619049554713064688107422930509915551726089844177975458573131621486880396936862644601306500587680443134723716384108162604637670125708601861346447949496397798656430192376914230228917495939991743189437006469217342409418981661612017484216221994696901569313097753852800790652443974900445911300012455189850819270808536223454011777815599104739754980124508374398688030608587015678638755862179627649128589247945042185317000597519127709220262275881174718768972819051048875117129837042630950172434525350794650621639909497879500424466607325421242279983593601676118196998206808922180167180607302435030270088283795253572766123048696179303275568416833935130984229269505351838569518245329504911669225307155474967851705316382807387787740204938190009514408102444078374015334280409692137630063560316556275370339278990130712272124444095089078713664666833518374390747869058260932990964807618166060518937146279847885877168369567066562334544037585884239848079002319702183595805525145185245085109062538794016627703228112544601953825499422353562586567488677938821114098797835357046410794729271167058950602017510239094596582006337522478012332043751409245077616143234727748862929841551232830308513300118748027322884781173353185441821183838735220100814367531504519231381608355466871934324183691668026274934354359583709576857122115636727623846422214444538462600813443051523335881116021283243780154259465390100996247911427444873529476907693566921987293094193644904612524645548744137103339637754988036187679356786837605719792861509663142067826959357008372185480076018326822239139761800738708891823564043439878398100312849199310188002044531871629733087754402370451176479359589197664418445427761220460821010566930796183063177837471795455872997690529931702059913466167803171707624046157607099911542603089762821404751656804094221554423261191667858902979604375877770924512204638532371731766453913360044125152088297049461876572263248302857375451611760350497249565040184153661323109417383877823962093737744814323452416315167659703320632766353951046452436724367866834996999362810773506353743423693545885413288201409979250380368602437103353218427179206064714368885396065567962769186127562443899451678497006249286607189648162681020565502783822828398196581410299531953262218323605255265010949402092572611453494629540543303124706582977255219122975140344057167201165574034787768878778136356113742130798044667454931775449263623319735693071811677088709430874353587420510293852596055798521971212542370852217992366095087872328105621030602035339293028087316212789630762678912389158483163365894414237829433685018836902525896279998522649272263957234160928299602941712752435690466992246509227108696118928944903112073023115449442896388448817216758801984922861788227241115460677695515731904885934236337845985982748882777085084029543288995492184589526477616203478235501327706022880933760792236106863406618366188852215187791243238932878270249438476624601802598017439630978019789147042773846562187981634623851561882245660174688094040738543652166226409602266073386444410453754660802208885071094382300614225466574505164730138900435884392023759452041220554343485812124933310817103315377048948721997555544188735586916270390268474345754970421692121084975259839628151481478532303768094079869359328286932087710554797309898672049858986917347707276616919041703051938196794994977843997385335302592516948239713709850200303123686099102210056554797075319901193129300717313394164195990461112596665775858219618286776769649465318234374421701550347450561302107253732437658385513144594136623531323510861754671184663186087212843965003664536552935772968980900809994630801953092961169648956573949190446188958112695653031492253181344053104820068967593194506913589988439756926123788377799851992078389220017787532532052708207190583068067838207177885709847537738794093020558573106133388243111905487837195088082261210768367548516643584893499037604164668407339180370857076497618675103838016379087593393036883379677024874824433604094199557142782402507444372729008264128146831336462205923981209643210130895289622018837639118892083560171830971342702182843660561103617495582688926632758140562763120961201531146113280321389251185151095972543495425179652823250584770322715729511448508582545151719680315099806485226657215702716850571734802920481990444320584082911609012442086120232636342675795270731994159874956620291026049441017599474991961636998559045310812482168093604479070608727169046170167395545404192872294653273647596243893080847393592608038371502537292486912785849082173633558104145265434474060286919864574275191353027310357710632292642935718637926947510962280479292637538942681856391864218017957352025489754122832398830643522940623890551930552068036786008372704270652814433953446573228597886398961231347421800410743659039164368065555492766037877569192143424530918919095136093257159240012513582764685660370810464763600008068612288492241985471165699009034453270544329110342876583553393960901748731546506053342499551032122760151010592281813308274160315993093766345244404901219687033949267213955064883268188795914784200023619624938053442874084934071890491823122835621182383106786041697752285482952572432854478064121345003303839102904475696244766480272286648063923919415873689352718749811517874388321989740619099074829827513107101959947371467991544302159937983377895257857356870318321486250499088650592796468244024165722837331567735084987658328857058908364726446343566987651792732641733040716121949254806891367398740623582724834282657694267483259787836354180447065664299265206492928575286783950270857785205874321298964510185591759430781857068940500936890176159591050324470156610121288757536525247803341109465349220641520398862916500173642073436010801315228863905466566177168257479642696143301169483965808942579491265133202098223799584155824331202712844185766382123248007990216539358782656407963533506947142293062360650075551537381167787428645528541228584834973032340870492490240646652482760818389326723538325155035640344664674605582622117046270252962866457962261861036963232306406863678286003760986967016529667877159778898110002635322319789107014654395059131049332457115525845224963542787586820161566087718101077928297650125627748751404593981197483928922494281985431612574336117428258446458580144520773016255349957111288641076789200643570498526075273038665761900468774391188911916127447385318914575378300642880397986084386845585446817125265677794002693285279651898287989776376278937605848916933497155244456351035960274203957751527151701992322721571771349276084749005228524478097948630653968440158342727695440018122254489958631759031467105663299654742027731020294365325439719889843881782670859565940440057315930366484213004234295739998907794966232276923264046160897057038565774458328130248740389387348988595463904015670439416949035037696035868272540400028516649325355406732211666068814341892178065798631424589654596011347041628805421258855043370683949638928933906912759976606656445103416346581335743282366482479325902351358402469777948993605625334255590969938410789656659663763958331195494866303335773507832873388546116466124079785136302622065192035896300425488029521147269619152846724200681821813140377319774835533591399508919013591813283734606284525327432304517422941637678363338258816489013679292438507184568463569600017098163146114665839450466108503959400415615356501658545943622543423704180735508200313920726550858192097830918855949064387715052704338704248020685227276841914551186065479081595857751990167846417237624938026675336150450472478414616965012498551608165094785909250236774102259437781373256046831264540080599324869621395539602901969770874269882031998110282898946548347278273732084988849555269302104586568176295560288530241418034775171380891249024568745818497825742472406914249068862675787062278914924657337803378961031459066758713476431531365598568976845302742919338693355632142912765324913803165085487460399051220053556169955318291767665434365287602473655327960981975303043886864583281619448385521041177633603771636015555896095790976187065233983021820431713176390887346625185761077240090400242241825293607048459745121722189936231980285804926429016958521280990611591986526295923627818880020239815837314229430597732856200196552273141980538211399767866858026736273351821686997294802166301564098262167085152473983159621478720371758068207240063952891617335299018131131410275954169485845209991580681175166986033441493580988510933082142041904830920831253446142034947427986760795559357614885705933851639102169046016374721755981780006549300733645365356844523814996135276632191052924808143176025549146659316129128297513236921416173118938930408469425030284346554946054923676773732451397497669317289232246906303470222570950673411003489168517118909383222686380487461305525053336445399563737492429884783356390326492682873373139333910579388650040654493072698288681060225941222934992771465337418372417756041319138536731425951303260686937662991114643324340439155082224518175285076891866534615235748351860673713878110785178147365481416313567478430949785748439249506640885376034793325242443181285632289687326888687558536181203099764138872253934003239871769219528827590394657374218087845706710658773145897507870692519761846731268812993621827435101420737274536668920666319984738471571163044321388197598328206523296900036152510310171426326519454271463807414245415110469939933540173585590884283739602836679998893459829083371583451469829710727039740246337960767490468097483303775654288346564203732557871065455255613221156517725262727050280115855879465037957804401096176557014800569049022288370247401725604515319099391767557017289714139214742033836408459140482016561469156009538650119533778952778125750651525791895767918825519332042595372330899312174568406034830132595708813876124117012952054160183686401031681118347082759514908088972635150328437992765366501237587106600005075166178060364298324697473997347533550118624651796223747214002991206719981462310972336189638065132212649606911717134782665426396581435909512068809214331790794249444411424915468283077758589809665774403594251874033138263093159306554424133250392855876951877163698960288623695985926173775080655596553434453154192517437330066373876212365223471537342981269426439271771990152939664892461258375606438170930598394886930844441550216673919757326182623525248865979510926665449654430168164279779367981274414528502977340140174246964400985736900870992876293228946725415576185321237034747451632295004945809001765415575266299424047278132938960464926502494057765409846310221667489848987423000736997492344627125036021284876908589716613647934976931760616658185272518011582112850326296527537681496108636454141757038219889501060207024971132136389218662311182873951183673530506652254302195461978200788548760481281799126751006871602287823483836477260606064695902212678246331497699406789830483949302930442042073927386995091777974039453975344076214734888653053621188324872108448978857174856646465250939806818390417792884495163211408679060634172933543815174884006890638579214224984544713714298637488109073245399712724043696131745470759814322761895327935103596926459086640598156274265079214262452121538426098573179277198780448852722316151284215228040226690826673919362128702558171468975321136583563561596766734239643904534803118204579064125307622858921802678650225622120369997551390292174588241220687384096884619183038624789598040973001098729278017464166616371941472482846022159281470924549726828387222938020477991437486123015212319678012679183299573714016357586878779298766537175918456273232850067394912698853930141115563900208851104223227232734328638394485727148344083337549925117606147653414000225909315419913207709626176104394255079077274916049944427180060812032612903972653187330753047539149332211584634397157824748676853798917603631707062145048077111099233898210811821561855644378890589598218674817289926323286205977091434408943692153147209310551237604436675184540409636513763347100002318368094714388501304994952883338921395986850971774987337303157342224941467860603986746658066321131630555821028588160868936095592620157705973570369975843197176375165885349803732453018752773682965786547839789342647294508902677270302739749430712500625505008851932995171222091699971637146868602519424115908700122223396812961392240423150317622613946285494784883764096815708835958089710867607302056431325493903305354975735102366482430564877764040821531648992282049045688302912893290154869232419071295428456531373257969073692170163842403846802670416084248552153479480483610069805578301987403251140288277423069873131201275172211456025081998861903991705361390145223254241269141398742302414222796588018218138479187171711987872310457932868343912882160518719548201857650370968504080376573775326028203432773819448760787692869447411995822855412992561157380736080722157228414298589273521129055721639882350160186410837293434762946307757401518089301947936237580577229682777584384018281826229883389256478028337106333681948389179206351508182069259870367640003869615141220297808025149812315461164767943139045573530284426547295420334990416752273014081946905119951399334613282557362646116762747539103579377613717603830239622625362107762827625207461788022867335122989463848313092015888535421490404716346948112502989869377370157371192505343946406508485061852639086364738229693209805042567645762207286298261954895497667794725353433836763619068633726397984899061161286840861645582671294065945387111015102569810206960991527432466667361838339701170429436617800852516660420853238756247776401203223949362198682736121946073552471258688698424932369389134654458744287596784232244486589936216492374897138779250807198396935604479678375096422387644337402344376107274290352203881569377207008970224083286251783268976985440501973263481285887618327132318644596130516173248876733913804426541845822495182270029360036655642679175350629414771936099954500032826685929130998225478152775774385314600124481140953031456274538636805334932818029752503177975535170570562940009904853053761585208992457558716489872112556146805358962448241142649645058006921564818888726480273481846465759447603768830451067909948247997189400868333785496636442219919543996056197709868096665997360764993312031139899803207413356881815595754913209780292697674475600403285376516199197457718258570593002448299808610288973437821640058281912709066161416362788754687052112498566641657259812010427748002010804672812309069529545678123810857039689485148765266433761515726016947630868408711815724003858937814141273129844961629970465730866215508355203657775838438368293934770505043461378579481086392615269614012851536984366174660949521440078210238003344764057066600869732603576851875732009906186354340992801484726608097314388252680229682875098549965638083453966058524452529702389950640644715347263889171127110261568185962213801742147894529250229102350755634861794863373107588616528639749226497972891549590361605384758304401294033660737107511265233043245697970531822780873763822516964613503636054099571799996437108169802261886286011214964231386038757904387291204109811714906160213402083517818436421865513412954074697168138763238411599504720977479257342275961443978548302228298254835526423625694233173647615249084817567493139068428114069882274135639941150774510622937363821123803470294667266794172410353184251765243987101894500257932251354070304348305131837235471262624567918157965935326930057722745836618651373359716561878034749945170120598153684862465527668921946486679490210034089708253349882582473528166823731816332620788360725317011524186372027168131276713572986986755653044441100809332210084263100031543295552174482041310620970368704238492487719300643994518978575569467833288876173974589738358381660637458141530404587681868559452981603478926349877067899317903548689189504340247728923958676103054046590473611907417894936339673929220229899105894548372356348773635105490877752503460918994851040754315250656784063016108192090226433355306458499932949186374898904593054993410893362319186359640666708908706740600036353557939400744898694087560173733979236105098513423676946276934187973012702890869425850367045403270805266160472308936847596212539366585358220252302625106454206321909277065466729411508221263015632602082212367580643071065196092970564284123926884757943598208724818844409923268012650798752900972453436179675982042301401263514197088559740908598638769607172684478194581058002587225715569098885363183903198444601098695990813498548693463712176731344438273524244682096328396415325017682268855025960366300037724029230677623621345262181638851958612305720902776941615669256236875866693772744551946248959415857196648724790707592231332024549568104108191836147937652844494149442405285995768552912282106871746913418219675845708116978809145445116075851776496000132058810554250199218901441358406879612463184654484626585571129635821860652533938313755065667770758146066294760465030253953479207061877312073994398515698648134750361950722126437379392020732791664736841669017355683644248068216015388743787698035415979621809870493740732559314985614105472873827897050000133688173204699047811720905779945001514720312234873701334815218006938200956011134629266301559873764155353716710518621379384077236511886635654326882446961963758906419824639378161542215070918803878257129059674282933137617391948643054066602045199842072088500881492794319492769037589485796909312837151414328225801296476638598375122486965262170048966793625283762385234080124792302261705028713215926143276918206407894906368234716296149538897646822328780124312176104037324943407020455975388974478697874675123937688038887058648604901027853408951936541054067547307496245557981157168518854263827215392507100261681080855183997380836035303191766122813392655649772356509984526651567054330768791591333599657174597332492253066070519845432076267326373373121262746631982615774452879942519216543460511986190923572153172548361427491322976300589052191952477411684939864500417418014640971901647102892532883447920943567798049162477745447208004038613669605233463504591945716898967291898327514051522166601471101056305393674394921347420259341382794871735512888836549648821234065653547742093479603713444656053297490961826733775571642236887834084925507791435652483848859951602690459360609114442569099230258280880125139661320339557723887069703270720982579781222367075993278909119931734304185856484011975793298100862619907459800196566202341580287621063675269815801552032936890142760245311043837916604667219101355328494117384276412053024363046749960432503194513377413667538952291152931028323254485601988059309172611068272658188206632741187572746693294029334580130617912823753639578611387181814241336439492798234497237814431728637400228365825067996213010272175847678839562712279725184690930022405594488087941801554197711590400143094239272727924996675770513787688805231129051402077609061009673759248253261482931995748682082741682177497878029446887099662284614904923586869197500923498085930468773877410977444813892021046567263436639137165898982136946393737125959885925211475257124888885169344784278357609434324180650209002730786016101979861746783605996541556979492968099542314368534939284198954811470115219665445233526567780868834077440653543300855277480057278328054358902223878723656957593873731379726432463234245711411203695717914110912024937223344410773120615077368531505499502259709081458840083975091374252335470758526806029579972209484913879363834284023809387156787978951308017669954473340941956522452899984660989230151393196152564478462093806641248162862959337941714952483243054909935357365847476471709649885174747209479302160814436411145146001150791491795023307886987008232407657621216312919451427246130853592142194252930419618650611318778491839377215797867001424914032482791343242053839252975709559491767705113411653656495804065743485363878643129090095261366934934691536206878785740712331071967008861935825838309133788563465767860554444006141238216432192205656347238030444237628062989122448970688870767121609484828588098087851028882424752879177733034471282688660625338977495659923636314811115094724060885711282508031066002871630428882353026772919134638392351028012496672992261025533598969357717346593520932319071966236612905042041382432981323872322287533927367399847738705862367430586836519919361540669756101144124837699232537988500644747898200303925289998175770032596845643746129313599126463126797676519019686035558318168092844669405340158724659025991597671073058506880772118793208213247258460462757971603371486239366321839850181882152180455656270245294968759182525549972264585110262361322452490308368543055392916225780244431572307867349248014038439966187080948152836325026974130633511208613197291303880481435491077833684347613757757276652815863711090467742015191791949633836365576260649544103897933500512973730196104066882720832037979185434900700423882654437360512298421803754701923010945793746957977176122487189177089028964802525858750539064282949659309330773875773682648131644899876397950047324390586682406673211230985969069719713392251032471352350305328748639911513210885752730746552575997466743271980632034605859919600803384002589089355334304821787130674941583928341929998462284015942980539281539399498537111432323692536124667638411285474954025722257677704728188314522533482792541245905689968348591265914648511201857857353699120591159801939526996331985743181590136799806867534970622332158264608560889414874329858330882755403027997960507499106455934355755812475275360384129222991870940539808962711411574353757442315170338674321071760057965506436105839122209175431126801261571501870189635976427304906814556372447497629272373904353120076571402412218972000449006485845485139348251976522029712162547614869748725666965430851419300027179893799481752949794976854049208898398234295370793754448309233349143498715833066344358003814867743189352402551799233709557223444964979822723387797204677663381692317936829593530546270677164853623866418872356950153703827031144719217387906796764203426229498296902573124727556002109149436045961430971962887845229554504761628378475534842207458189895066093174327749154365819356123074491691385058398349894840872337737242453254830729353403358242466912428604534531963880135514580918310133089140248940296901330244642703229662451181783409575331780696195151599103190812569610798487162941763129819967914879964465544468991771161555670682901912331990196103918444055007771551582815403220449405499995282498793012005631202258084812643142590539001834583820943363061002065313852754118920441118250558824477488010501759782081641665541007586258333701066673421122895748959887692464967616326809791213155311483362989935790558128439751178992487971855142752284477787986847589730058739958807837010337766969181992454414909210395542210045896587830246787849566480493330369864539272258268652462402820896591914808268987900362827398579104242422182249525778559953233567953168948262178129846783694908970980262423606865777292075851513838122150268417457423425340881414738117066950185489516477199024910015139258814256320931170286765129903077299312432335035695351159232496829736203565181533145611166359576048728237336373782115369930711411550148120518406514646638295875283851937364734783740719020836301778805750929303998798978036392867361975445465991604456385856394879818110618497391007283991750652998000880744128755147066981466094891481100468458552830321322010632977341697321831745104902699328830873545742511582605821418195358919788770051366933023642648378907993150934012636399008105449711275560631898444842311494337504149309884168176581139132422571910199828429626376043745415435756306367836829099128826573546117197603717737259828601240238794329892862112001529087411824558351069010205572742728888104245383955356139652949490082998553710758115188212290248046017832448482439306648816198328978885554155751880797454906188616166321967028424649448400982288682788776810084663927687543867540811649740444199708558784236547399069738045531933940523944431696764562324136088238850925727499396798600979143555312791212381343796263131809091325129001150223737677329899131843210677733259385951268284995772607260197885280413226231768707048290914907283245545683653748022858274666646151430794051740539192850327634553866438092359708493533818910245818652972968638502964750497815126383040378355296890403176939269389895332677891962789929204641564324117506950421097026705887170959737168292729460098064772381834718421554465448705247282821667581519989192876075037370852879495833867334425955518516073730129891391126384886063400877351307159820137521677487856064317880754724810966905332329315098822736026866524552198436571232811296487315772110725852254017591085581834784821866701692726120750231907146049387549555883355242480769715756243710103210124005300082299417103641401087760275142559820984148601731255804850172800730842785511141064192553599325862873248015675616931877107308607831960685438670549493651457018164517774693924127516187933414325359774216144314993161566592755217187514626424075123203910755638741914972605016921468167289001125068857595086962623477182159902015537942346052386590861107905670419836335044837099237405830230960697426485883347714963611410345462511078916099135711036218163177564173044648941671631618411201548753925491931244068549356088793262568808981926374539754629124265195921936871071112854861024547044340915953812918431016597203490667065186459959391310846223558553689549078955057636479914993497222441150347091716406357863192733090726426759759420139116814970012954312459769083858939297563954936455219245897693174157878501557953866460744036530441897856614104215953113060891266994628170009685011084110236254969044430952392245115758022689370528641842422911601652413015192385896600978100381287281447096513116588587137083252584983869947466859325036683146423603376326889545232006814752491437228124396273901098049012977759441899037924523456624740683439852643549517455303886290772338070197821250547287409501647996767662317001922816308987204294328612921413948445522258717570524316031506711279744007043326348562262940659883629184339399262163374053451879021460910548268000924647560364380698093609282191789277305073825077592580423139187626542488302319151585537440475287323020817290370890283359378614688203190653886000719572291113260912110999616269437618773302961093742034391690608018845485616488783910476810549408424744460748466671595203955141247046898472061270195351926563013153044349153485893923481604390195398608477070329043605748470157971408248728515727507659355539505466814314799044555216289579702814432385950886553586369485985667894504286061188012161716719410217257602230778258311707669466724406313781209455153260293856018290346350341643173076227822131443556240532721204252392775140748191826952372784006041189580189048142676646980264561184267354258262170480444123972714755800626369908335046560941895781563260271033546377802677101455301348175669523114968520082689937064219481927081537196921343830959905578975393536690988698848331204765181755179613749373740486944255733581579676099313240081957175709693134443059609044867209743408104463528932079640541262738102934787376805190331791865749516258217201611226070765408484279399050223509475799530487792780959429610395285393559029144905209801925742667795852811222518547985672371807331403329805063850764000960776415539206085312704124808992473880569053957665885939287149395865536933895733241603093494376525238290959885929347644716329125500809358338521082185251326055675569109627683000535258009623437599877070557395226106121803376644733921724110287258860066293499381355251971872053962075807944084070350524164755676804240471343253997525079019552377469342976086571927872239839071562940962504496003286366953429763694423248890570366040150960499962268731592947297258426871184098844015919188056316602449780673472746791011868387944307095142272802241734515168994370957930334109932590194416758344897069861111002307204749556441671545138377626644391137327813720375526603086344211010578013996991440700408359873320199251231354460661704497154298557347239055727052709157949845656510758272314498333553400111141659205722505708845915428719816392079694598888591484522364719977523825249093727879378505070641493652987547560710947403167078642606075641650483462323021658239477354401839777584537533240960869960891722856114110336412325465686902499863280759039112800584616431812826240684345299173314447158387271783582034857768356313295379063924636882651956281586261353957513295422145921858204433130477692252437340540309422145132860910632003247033326733488751210895150448626761635131879156410273331587254355974698083851291146535262901190330453269903196576468626215397484839419386704359482503953515954608707415625399425593098600121722931554747366895209510741324662777375799312959317010474945146935202316297894724271352204229787400677605103840956199848603971194800517981237225584236617634265224821231161585878429924760519527488028309374707718357407252409189332966733966544318454201042127216267066102731290869200230248764405409975132616188653448213639078027118837799992964384905091305321296818659327822505042093513319958375594629326923936541608413932580309450344311942353736709238591394670946790612738892417275557765512913370821277910454236209899412869058579170617940884632059888834817566891578899737268872272374743156962802870554185342476056428864148388436871550359121583499324972855620780116654956195391710658956763080822421539592798412673263806062932721889821058507462959996934072224836120195250507014577967804202892741392318282401641464669981242837909888861952921636863036519895376089843391184399208069475846313947358425597984248236875267562732697605579527517928307693650359712049975832164937524557716934799734765916950928365682200202671850846767177551611204150558161600555258155028132857414110185761270166364413751048350845762048556323339524591549621217265690788875462894295685932284977540349666798883322329440113884448105210242183702444170760949086960917897724181747998667353609947378049702415969140556029370556593746547807013395833254794383621127601472961924813329133583029407090425947384322984510760006288645239990890649123759420302330080256025143432071114317337658064735735951667719692355848930598646706305989138230202576732810193240597490749912912428646869587385388772955402509647348401890473356280445467015661246797104571097822467750226843236961786115837878566569366299989100979292275523388144208680655830171201472167285848340281009743249293865025893599126551081591331975429442135990935370648638282181939237373781568476415895604823022514407066795394800632536113907566673776114855476443841593811608926344595698316891397970202139050288161832100404594034825090397356942604913380154147250934403255324190530105206181491228949561464289556651262663773347147659583680900834835467605954685508999566523211516805722132368274961566181092194995436658315823650362187464100246178719434773148412884731587972468734019699261980155636874591653952140303421795325709876297244432065556832068280621519103042055343404015613774853234310946814321888675375065349750776262625635296109536038113715045613259697092343653824966828753148423877485666278355651261703639763391679144336031361296790880022237356844632569831342270314092206756520519267954154325688170886449342076565220084292680153010067317085615225352920900999918148901538964462931079558301316738257135375013896121725265462970882778060892562230194544119952584011463367119728773775983151836298329702227608028100234729368467358667717944589221804107144876033735922773158375151434816127312869542993642765572167549377988455221751103864746192624969633639379628794666546055575647665925550420962211069302989855467494004299622120456046972830158036086319045752200129570578649539197037680253137624844592297477436713411096419567424964853552035641875245930655776461185822724755927621964769445249336523534209106075592655946687577895469787033115126691094275996965378626952616039515612096020734015072642739288673056886996490268229043312650726008716879657411330951169550493292844803896882803060204528555304170577176049505967186875895376813203051770118610731832197750189398383713157018817480151499443591589202480592269290639968877817175138770024863842725247981524775993092366988357849730704753582577262327275250578657211451515896084240807561670128967910347607709796490042191409262637684046352756356285404948731548139065916237213270531093393758013738839915279908963464183859473341521309519444643200697924336472274503400430701477013290883467026486618016134814785856375912231067111630989132778743723564134937555950950836124670295786514596780123508081538199864439799735938633567885975058140250374348008987393130728859896509809608139056811319559627114682375881681191447797917671806520028352565184764884528802386578623362526241469400291480558868255134325942211633966547244697407343606543268056055380532169494563397386733719921383405679149530660443062948069513244115255014791242133460875706949366461797586198485569572294586071865451806045983145333694731157626416011453029652237961936753647125737031072804387638364347625573760525722850312619034541192334469774435801697411909528407798385791905136652002646959993344890139605805708728144008284666952093737829200800790683947255314699371694164097352568166750111592641860513964057195419028400935749285654482728123580808443523899793706548130382241434557995976720919979868304060597592747872496961069549229707282849518624928274584511733017488781464752115266844318770094659570063309483055599938170460427125608162484582171918503842430968232768502008476120222863742006481299955058498230286484848080015325279424582239597531500436284841030772249523846476363665211934263360477697796056597888280791326106089673265076897209933877599705802924522998145090834519776904086092507789128109519368262737883737749393252345973781681318342027255551328569955926741916826984519170790894510996172156282103844689556259166805960844751758719798615896242011255865307016797602127774718438911063526233342636675518585659299188451251351543558520375273630750203099722474658094573003870004493606010255941491470862920947854064900527873115559549796405689823709181312544173433337305420103504647379598800824772595890730123518576945954914182747129523723525082062650162574982098730526472426130281578794761597365071913907494111076473309839600182782460603678833652601763568413845061059465716803473803109369129807348730036311997816380356505356067207672095799876264599472058359797295024535754846575340892310891983520892782181808374930517389447001010516844027481235873700128646899839218683693080945155994068758517884442466222448525296411613585560779934546710444061469733336662438617566865965223188208373253790827018666493945513633706572568833141276570211132225036142832556246453420792409579834474969105089497324076200476076342431739934002832160460591944924537466633220448960835219598694783334600645695628303880153078726732694976905293877552590053078379086655015141353342745234097038579873519728296843903012856132592684249097334045408934399752365136651948408407776466352672779731093257840189849988150618965159512268201657448934775026516323400091091815252538147279047795863974770360069962523357378772134074395118055587514458090056449771636917098715805508492078951235627225287891681758617471941228694429647687807271768340346652881679738496565072341901002611230612359804958108999363788488009437041054360881233684371342770131768188540901509829083049651290585904045003393153268650116036517853199361989408013519083245129655100864578787319930704361474553713759788844616281104539942304762097710697831584853430519761061572891888559041453976220695079430438465366452060656022996364474526300631241215962797902017180672257004365577228120753923217601718248689312526146646320506582770760329624896427835102671408127817755952984399950892191429072345149269197388221574793739203646737827148662448878251973363116189670450018750107249164704537122571281801856878868804514954703317794415041593888167345070399560125095192510450884958697878296704358263474493452006597569135192831765211544998507382514117813458221108605634978175122532281721281852531904538862218157414661299052114248204284420894202508687314575360918383262914475008123451280936285788326588846726467749355662611146455732284835295851616193147494080796532259771572979564353146061318278406942286327491061609455250424561774792616460909113982504563630354944094897777227045477943825965616656517920244047095732846443933144622331541502219860977229910922083677263856000268473736212148417493794352646100673768599165106067089644056280085851818108344861636127563029273541641188055576518391689040465249155478698767376680696618923218234077789069099980351365118588538127738573750937956948672661216181496060572464053067539667624369141335530661831887565046794282089116689541883568727855686980337541600949707869629847080336517204458895836632428794541707742521136885238024991534396166692304583806817127084741499067044410018957471559299563933451921093241496334761097051293894668958287973161688670887950135302891683814555038981710481518782139672875107214604298661861097602813894937540109522199954634425336975597330946501191139867536169047958517020238272750063529021328146028575078369132264463604945129392780459524309134185854076987642825841904176897260667493234957248910568660724114732218478648269602964969387785792274193400034116437977705061877830925158187332790652060169665734966672909836063486665287064683065027221307086444637577019060664869573199251237487417672212149034022034628541077681487229499761497352826263507193492015582727359177944347094512159180270353765580509588487986726297494176580835405982325631578273955418917856675743647462815128220088599015986116390863938205430702552038340525216347737831633888950865263537229171786374829728646285849102338327487620676721241646043913271509555921968083655354257900869660803134212933531632010579429559312461807951599397395683072642891582354784147477448842488079030607652936979159429784881022665327455185899514848205692982392334111014786579491392026401859263182821495390697525079318850090844183898075626401960138221314776285284120909728605633293588379525047244267929697278775431110799272053040850892323742859673466704329554625807761248282170635511323616581448518655621092523939500051957867803737290222119286168080256241575625767691217895465613894604700802711238088460941768536818857520159953765100722522795095406778608053457108155710784510526521404174327981537971887402385047938694497785351209788064313713327542606082368599220464768043626576449061539952048365087468456025985191953216652230306272464084625817104559034028182178831470396724870359464320612267001123206373027728038678607489342958785001441228342194346498776590600995138958436256201161628397963808297899080554646054746947694035562339355513906346279345098717359463889904394716738447287952853455087294138434833846651598696813914794913053345727845580417081549361715679663144517793123094801408215688028321057456450818894995741347827304966421278491508898648720745466817431772735670245056623891918395492790707969600445195842465405244399641867577863976014521725571965242765703955248840394773545009886470426942830897030519523196423043828593099620300161227095718057846153310964383332044617297022695124731683990662336852437313967344207169156047770197889229221368072916661552014685421616265238990237545825936332615570018583338290598951203876177132137391444718076616448284655731710807779437188112869590640193668751290981100319857250321391878108396585728353389314533060790378893204809591211836056676905753594588446374964020211615971074566346700955984298462406462689334258587308768696813231158286620282724785622397969172309927528493298009670355233395954819684714171887000201187527120935550092470933164362519263129726624809810515335057751649545736125423556221060973394559603038771400666766911728175198939826232723804377908439907781259439105824523055678727716298167731286453428565617705243604776732645948783847145818952914554478925754509980419933381120062082970527189945107373542603976053525998196593099014096636208925147586179013576988608641773942506867686807978243991437692697935862654361567392409743426464420766392791046749763934734951234977915362724272581950176863011128659401584482455241089123024074621718064433965086486587410484875474343934593592925971771684412237955754632187974124568725812693784149297413822364523562473777860471818660944395031935846569016162704270912437884964497898081772015226809300371027987097694417139289734695381467614111176117643724390691126973508090394785699406252581044249479037224721054703730096512407184228953470818785295917981962520191033953912328104705292751577109596566965814994891240905295901859108924692025477511363736043111597800158474755719655327357006187484736545456312328711374864699655353690386932226903259856224065743690383681281196651107639978789870003856603743861568069466471299061275341305459257255411299313766885841584714468921163300596013220578747136341050363308534909135487560158075588397444757832614312975167950357147430690788233362024596834576443755930450121952115645340194791150284405774287855282893080707483616147131225571673391037204506542214703678004715370567641327359630683271234719248731538658692540151630299164124249002911787529801007775640457549123405596159478109104598272920686708260931268118629604628551912477375062472047576428827935566894078835517170929540756376030858456493468638863684883105167810323886163119746879901240576944039747469824053295730597407143073490043251810292570977042213193690552482883336306910782841298786784071233492913856030049600233771374364089269298346670036180268632495290756095018741297050040843393128968034440359685910049394113548657158088781247307903647139914399860480077549208330657260753088397501523953980981946942946658339968071494285698282201612325648530050723365052664302107442239591858811175736324570695299560836738657880333207972386385691138417796899517486532116952280399385440809021633986119220132721423912100089683431008045062076320044613051353195197985640760949610109308452926301476174535849942114570062876693158289121237946619861396051081411219239188175299633578804224275399434544924897465442722685358698015292042465263478527966674387845451899551796474766765241119595328411897784897284672013283063708635990622504204830035040993193191856993736119219546866722210950989327685054920598482328056309612499957039138410977629769451415124159128013564574185147200591601621593196042570569021050225727644883485432029109559269570959323851226252530498468588780247116532858279923057346862445381684062432256749120837259400519295457577938380608511503123178942365950715585810903543564461128753160642210579427779466407846374155687066070470247330751425784915694195785326356237920663677943440069156392288442618391837778770245840641538567111050756156152512424396471247744968909386921362629221537713328189643681486457185421401594604949974926089805005956679027236318445073253486507691860535800320292554280102936286851252055531167723354020463506268901481492895942100250710919423267568760157139714586514934307975620255321775609773433284498877810353622147709481775325038309834199333591048620733585033032049035511215560263478603840866854845687472773307555968644121426976800481408420253533437627980041803545166356448855223447600152593091757018161377381298666952413917991763470271438981530465688389061914688246092897397610235591323006163152419452831981354041109278364964353805340184639713447756371951901384135447922179045841954459068134669193619172347173148528996662491030181152980547793250352108181743265630903938299768723051602672628516124087769933986676123236353193522133142025277980499915181536770744605227209598258275104022914899819426020650966143403815586440172115587869016995212764394422780563125379548915711887797610418251378706873284688468555297363703799935110712756547627242175063008953229881071718604681151896964184198742075144679236766346894641081607862241371154010279227958061233034588840426081659281582058829508633569082221780171295839029955782899686113827137902791614112178583173138577903425234260397144364557117579895196809860140725263652475366299910426005854941091124117988157840596872098741300348912339962850949536032866957082249939460150958118439385573051170280195569634220102076589209792617408916074696614371012360377188536415074368879642761338434243177194922402798373598509378711925538132336219569406799399745098266798769339311150329605207967540180959875199368009713402983844969331176803215233043071732389178658628654129834590407948993702547855017768078195429642763118167059176193906189093551927954035069320782503394299123410668540544764501441509304396406618902766777338977065978410809712521594680625786599246569060873094359918824138834682734279562195424317101349761029979595995760823739619308808572942291232638427703434321833193946120607487782966473898609922217285809420453144424828757976147014711283470955011532327192073516532535933821164128212617295955092832772031814854265854735816158710578495072879555702623515809106143038168812771970562325465587278308521909384482682667973115170583038615644065061757079636860396909201336159548920895401217883132006891276656238854116362830329019851699132649625335753073635692831808760184659950265202631396501567605269254203802204643145355951058963479955981364023251902829934331192926524679399827773289189748055006319669220380746808894897917981118496780880276182725309584389351942055115986055380807175471149484157100397791079789404731497620848101447258193192775762281335958670558983339506999622232686091357628402337771314770056173921787272662302006772351075874149505422186768175480136722390016158893670902785028914152419544170049191831634551355650356449889434778655130792093225915689338312663939794829266672015154105563192981943199702485073891322094387577543719353069362540639865055307518830005254771078805803703206026302738185939198765578181509100396795261141013272028587523394631856150436745789098608422944655315740902124833977806332144169575821244115034495627513066541505497488689659973121200059662804273594428777064551335316401435036564445269968431945055678364717004385499329605878101093927678218632875314591285706071242065132174330844672281424910864445889692600697273056793993186710203334243141754862775109586043211357448608598181206896645679054021414597725448932053143890184750414508979664760424616501592264994855993496037778491831509111350785020127774512888044929680553415236482287523008495251291518003053480543338999699272925639224796357451334394419410581688652474679399644696513070793057469714681557978313066805235482431039296601051180078916791494089200893619075378922719672471886271072622915571859258986740790589198579644889493031687462196942138562808987517493555217732076075836148107518886266922422176992886125817774961896610274026923222998462262407324141456582147315537962172405493467400316976482885487487279334909209985838471727253934017416246264970672297221933175131443078563343361124508169281666462847997979369334276653959983457601240154688688477898531740948652004502536018905171196352039070652617258595514427736496596364862735835499737440752691491410556218359644193613944427724346599921339219695734925905330168905948915971346995012750903590553073523703525827730437416457353764983491137502434920662684678847932278711422553204656271076112754090762176276068767319673232154562744684767365652323433261128186492603420328111424441970125899582594013654065522121828213654112255197572146046523301831619160403080024418133437255048036769275795663662438613537984211346239290025461194876314107653192657532513818680909474378754593877819639949471445637489192884077617869063206172298609257426603454702770164866081029388543560139242944808785465363369552258440400370712050533592797493235588185843241747645166614723180392107215209715872468013203782790661327656095003748468055828484055627230820558194684187746395121758027345921862487843943059471285259273073235459796273691567020878548536336298815399198789019196117633721643167450072027198331983141609449525654408734824435506581373909899095043763701811503390170633316252335665551057286916749460629182777648461987356165126949051714636686087884923693521337667238873821055680535047167192172743089996787476418060895149938104439106404309876285855539801026394796871443494209701978542346726282126420404632559402328089299778955347704453384013100848300677393630472423182419622532646114310015530084178942880656361325854690697162801950859228163904448304492298684920821887488021780634038025528128998378851719084053945824186645132714217120498722886722789424545110153894394776284927130971032418174638410347313125742669589449292533088005357884077525264815056167350774376580227149496051945881376197404955330297452435711306076500882647446179841127554248989096350779812541292949614928096943372200652808372729101673365450694458259564152462911664655091424426978836741830650597447065861847607828008247639304100748358085769713856882667290103316116395834340444878724995064197393285793599698577141957798305146754786355598847511387647752106590681436722866812029893890823657967169264643408081818460111458115630425037939455084804998445129815396586836587204096376220781681779236117624676478250582139928670178391476243281947444443248531290109929139390237457869238776071733164116026004210486561370390599875302343775521318678360640218837243425055517860235388837542912564641169564119922136429167195127049837503070890280191800491367803885973622074816926870531353417155596193774909473720394369094155885222638858712588023230198534419992065717063185475158749541148087842652886868866745769635836097795532444461725170877141873454627968721700109025161652354993506472879994340060844475399316471686324856822371949475423971261765941188559238441904149090127644886745182343064201594815486224004312610341980930795053368485919631290878269421441332480689553118564629882465748108955573225776079334867706639362807231956102095467706225619615464863267423922712713970277268645170667313859650543040147426896714263568765546173161908236538268302906057091682057278591363957767998038464275515899130275746469921993303003801058043122297083947500374777238235474145961975188088346605356201811426312262945511562372974864990012132254358335302302121301226901698135113441791033432025383902291004473209763513217550772426038813446530344076248212473782302784885382692640144818759115948765649024982956835151003107739083410625258450187021718917962139853089109734023539890044433391416381751988940101294176047399300884353574681563324211017912271498246850725209634404478523253240715033209695693858947373611524731863762246099243552662554549306241190354951209023975485102568003781638878509085252107923907448071678777562977391411239010755958393923997411139191265706321470510366964409609658412718376969433178743737266037434017418812512270995607980024311312635693134421980510001999386431158060631953405041432830547385530042399905833416686167288640573274802421610360322524800241416126641068403156104933934871478192209785697944532589320131364562433375043511882138445519310074337445129977346765283922217153847362983202070780092887737950379441406215272656096209610901250203487981108726125090449516873595650588908254409113069160123788650339599786907396832400981887195944935612652132396551916019699239286367269891320167298315224817500445541457703588388856239869336996239141356695238360507949235438646093110218798016513630760549880740703124028893356217844726926581733731751299768794672283837140831198980211129015945871981299798587004134320896612707306284717925449135768675951684628718429334682458110301039952081231389872222840762414212821670034023812278344473808410035412502438713164015210723086247426408381710943637890098591752572838983947363033769397320213146249542816893260300104697004850732138871323225484118823509901301407811028818134642640980711802964209817008627990632209020616896813173223423360111632551675727996855722061074219215075108805921669222110834368925836127624691810360791317114635718085795559609444528619516738202121962574247475838590568013104187736153157812015699547088566849990800439830636941289188631298471447729058529789942397076319950852098540089871608702240192894024691653302105837741420637701522381771478953199039309109517706260399708273236545769626387358823842322036741954135702047736514109002370831307017169216422500133015308766958881251107932943730636482101805345565760368227606053809178910777879267901555553000854746473159254680344517881749658130825796987577523408217032132843107959238827464656953373279199942267387281440295771007278851515177405501683076407931396317493752750474552788710678204502264952018559092811958631845279635736254681893250091235576961768865642429345505852209031772016572462910739975154576409565565950578772610556904931720217490772381128237111992700578109529626353802996798051668034624229304694601025175203507970509975497940071363988257156843763532402599877900807809594165249988456038178018326847246476571867577787570520508229365476389809337723569168684065815858850388708502614825491257772186138999709680406933647606089905024045009217936919460027758180003901396838170588934871671971820698940571013458934824383200728112401980350432185886132624008286086038252685952521220512921843743904328822820604371890690561845184772235433884092357392847578145173754689858397182206298991772797796146685920269654925721211070497222253325888069315054357763615216246913769466958291358986761084013862213215761988511584309827017310406227583357563595817260279370119925232368950123402495470053326022092639359934477246023663251179971769864520502852843516962824778841698172279434764516431053805110391761207847224332829022642318194635629510675175056290656969685772520925796855312273205325570603217732499708393893816590496595951298600105732980626227167996084517258624836265319668237810110238944538050706323004656888649863948834306906476498412394937891484658052663604163544647690377759503997810843882746236443521790043431325481211424129936200421784256379845845423699003945189571130798444260185336366639934083162005611625163492307852814643440974714327745838453999751675798177090917856742018464620619955021799844485777876956073043240378144977524184974901597818505015321367368569508253091674288619435841248249564809053953904237550112246857046911737094132464709062329548252992927384240046750070940596631991847957587441467558718137034232376584958235876419392050966157137545315502227346284312955474530865296832706820916121699346734793726206095248714510083676086534855243585872300927625662773921349035991356968940000977183509249762514771312689909000279275245168581644507946732140870294306899218948998466686844097388778854366735815410242040368356094849020911445495866637688486662889347983691739535985350452741639436769293170160004374464375732047957153450509448342203540604049420201727015482214841131081523602284025480835030058127691543699722390965100427273347323634469794701685244354931929705008753112007184525575612050125051455499400324615393880841948944075254013531234806584591331483651245957615922331763305734298436925114084581187014247896051743394695416153282079584270300943920179720732930392734769379441474312200434743770558070329137113120103271546424553405324479249452258871954959872913254609429798509134697409693616791556045630326754235702720998680607292047637502671434877367317067362963065482730700527355026885960228828309016094180374412710569000875793539263284353122463617568868950679304669791752486688356134629841271848907349655170221355615507592112244224686532069256447490962634715128144715657637849216838779579386278427582369408196292377338294605557414819003824211181425841669841972646603008058324055678829995588171571079579386195364009361434562575702378586170485306172669167909766612452146465297558872149253964561601874661888872111669093526336919416424743360361568133740697326854683152833912690835422424776751106574191869104957664886723393555862221411420750264316061961345385703393858701413004760812904930679862728078545749057997778631366093897174706423444092608184004048506286955465701421477149218295052497916935565109547096885222542529337007033320555186789061384392448952880344014543834980797999192897496482425960903844459636357885169366088391658802618717296603880148691422259783838510888696838935951632120524769799544937257832070244294235790106672242094259516749303896995960321056779163832676978520306402171892563752672860342850683453949654887093578824344420889666279305972558931900081914968941174404659990573644838359508442727449001659710624641032744192785010214790327164751762369991297459373470591812517108909278738500845134819034292040015881754872576610303848286638554633194060458848816586815285568848588552970329975290365399164830875081269550952943061857393678196294750096831897923778705583609466959763214512741603654806928669245126286877644502549134588062619857620896140257321186681186774979772646867779413042958868305841482499749869397985005171314139340960807965564926524361285142648674694742958601838379781066479077006381621711907330612346417543590574099085261968185071857044835670270393019226825723840842133596086921572650847876809846337279219780354889921714893489285194882839857578050395797735277687941528577394400929203825266340096834652003050819798536559804522018086487166897256930846193320635758086269745000705242778818355704116872638053286849514081789669545014169920891914004042497213466886312052237656301521925839890146102153816376275561023107955169139584448651015925431899091383854209868625273046826229710838388305216858635863120044563098703461392920797857076185351583628607917663027958167972336605425211795717127175140701300266959402187787941877761827943526352684460218164396397715807232963875273934880823712932456598848317389030347173541096974743977911429284141946615166924178495067606618282166312660502289175574735661935819912095186607281207853322287380173196501639763142980123764818729805360969883599331581188187517484619946454712880957896644065552638215810381898318550860279455859180841084832750909220847106926057818523819336103150590646619256160371817637891826856986759841963018516913936234218064847476248221013575707171383699666910701708026617019760507211533682831758192548160120896993432649596709317508067463630443109610206355297383215815882216129463837184857967586978825488662565453797734323415503347015299780626800429618254638712736493415692758138921137972679466581642352305759833041792411431822344108669056012583582808715856126676362322616474548392588153954417254779084375017879670641688528445998557514280604354851977957265956311022976722575557310899511650604543032659319755671829732105544940626968904947836031787137723590535428945744261120169133289673706282465649949966573894038450913206783286500478372899492615582037848483763830594822652847399306276789522890205668220518157500057162254453815908878059498457885632295458147942586505942133799164931228600153793395490485468506553314993251702436465897980209070018116484892793599729807851841385652346072377864569744513397043976934754615581841348725592529796061053366455486667172122644301850608890763700722479277657853805653034452564296950312477544611900869820125269314294117472202599920149074476917489020112601596157745935683530300329256112515118765590290858405940138831775527351377692512557478520479760478540008901868652986158868885098389777063539787489099888430995237466238951082642333108288306770281824921777380753836272230907401965086551458328099756680462186139000190100198268991604981082133993835165524755332961853595795408022459089405238618967772435440698528357886834593318379955062232569833084161951061370696565608085637121146344687158385773219098011014985201033925446501025268303564175165919820919159107592274985184388135330468688272624366084923256411296658926568886310871584391623143469168780088698342696831953275420061093259511064516331383003389604851464072804783183093565508380169311451289685204795710154854457580509870267095106836822906439091405113006082306602119092936184272853620574805198892347880137782896658759973305129430686503104271719683375577652282059457860232528949760476871384114283640088823866624016206898830491348422519815891959599827619998201429573410435559491640315045798268604201678519047991143432359768538849384349989427586755144698324917641210879372929384084496793653054194608602230754528342508907472361097218508881302844608064707213229630889686213674253616226939691192300866498386424772562760020703810331388310869380848287743218632606796613860542672620968726207571641289518146204874809105265755917994563627424634644977099575797172689126986510339688108909525931282072907600570824218897702607029410882629764970412679740659796391396000459233990220731103357509905370061233244664838545180482432112051049887639397209655156916170830584919339812196797997078905370749349378730307800695789341410221705524890434306337794550576001221881716171320631237640494132783243005155399809606572780237191891772074620138665171711546996041327128893734296718258851643693446491730237474383388550785050209896782266433177364950911421843843214392623370627261406455791310641444004089408342475208773499534586629570657153654319401634183543516048706013774049847979599541531048767558033187219529129250649177953708881928894062788224969565568777450189090331522992333498367649753154911226825713874548955245233932791346447706071176122590692660553730009390792601812892255180103303805253534598729182800404080186775659924265587073574234959048316713143959254444968975990483882845590282869568844864327752596847800495794497270178605300071156566093542886840862520549735459782547961985543839752624953841871227352642654610438991088775985734857485427291761188756725647218435004619016677087023944979246647327516478168220679453074455494215351322146357432084807000768104751525884893842276467552213194414691881193647383081232526259314086146244313420810953027237502908267691806976988523375616271412814807887475874159651990419270776662380466320691953461717061273672493992212397264041539978272880095695241525156031552591487238212114711439933960577207314670837502464238717081732804541482470334699197911904261031590776489527718541600064847078916547259256796586252235284246164005306339001971329424557606959317858996244629810854188427597840725529824651831499854093036598545828464986252686524328363653918831792363882198980880552040247272488072032190945385831826613489687848402671441083699511449156286571423332982585868393327319325284425998429843863327506337364128408511662378865221607412396246636268898435870510504472593172921241688248049151849376938138786500984643828916620763029158056731015566414512115740450843881199725629198725160799599304785403842896082088965356590840572496598411483237505630334521546215297711619490602139589838406570704643979794742912338055604968474977839937785592747402027326653335602271106158159344347839839038741509771024707175513306683978008096073754729326272625840796550773848074478040770075819871821344261439548400770749985927321576581164537416454884212041207719988068066749791198077238379201753097431631830874203104884072159276156275466735959352158834666110306231110485825562156360791154147927447228638618251611586820440195133419707601445519892682437571711032410567548044826895289535248400839183528377096844784135866402629772745381427553039726435622657885283637480459400795804438766510829457809047560558106134730947239174133086683976961455913869602956146708733623931634458152513048369972831851253255631283161315538140712470954253211978829621286375710925957970031090367379161335367756381748458740279788145614267308432053319425928250377598157836777726887550960119447674198587018511142247967964887413475533160499363935064509988455800405953036693038421971582535076025059436717012554655128474615737456747448205755686783898591839025501102040015107009344941519211295995343592214431354537821141962928611671496753666566055584409632916244465398868672630498761028580180675336745823176639012057050102909210652592830846566853698781936845650009779726057588316896731230758925702846119274959048184812896913151674335738763777655485237382151201547078025690790148689537675663529312310665630917581214958449631856579713063786680112297708325471528485741997076410605165388311367220870887179342924521241579021313492054584976731325996964395698872259930743144480994255924709781237988821854098066489468056030443035583785502877492773309371266728981526494176873805000805854671241810749453340719391955376714041373575802850237249936735867423838950320514386321911681966662759394008359947993348694762595128831907163249655958741192196014496080707407467175362107243887183567077765308454406950075638098289948150150848678587720356177726033188432339017721973486687125385093004915612926735489426550078218551723649478715711325838829600792030284492276135867686352536018333010255966303071913750689056721451411145564422487547753467979998485247356806536106777792940408369168279017142655665496522549356369989798347353849314887792341762588336110431999172533553998622939547705494075865455356069328987853242306379186710110590475322214204880802793074065903339463500232175013020164415183089588852334726252895061679061278494888956841756170140297009997171214493776625225440731724473200011372775396656511396627619273080657133182803509455642411765035539915742107090716552556023502954827521439808244685637385144446099730944607958284074918145369383336137354533257797211146213331230967825764153759011225596750235249979661406833930306424953236042960398357530611594660367768070700850846896071897874410186838934643356352775451620889276208046964705085034828088525502392306954969850161320633350316434610376789594455374852300012909470157560077777335818686905543744786996582033930137806829547307201498059694153192385243626701486044201275163256801137530483029381638758914856348320468702616786932326077015115588043971671424328192675162937433691634667209366361488617631139899517206446976119132076335051517934122487850630613199097291713923773332805178795207917340209964327394426907713038859997122339057543751850002117642924029746196334700179731967623178275345548633048301119624567561604366642302002945802343153983071476582471587900241112685088626984780896699034678823298125346207773158918125938376273995316207615874502064190711427980967785904547033975913112203207851835272472196714427101784609492436404574976447684910083744073235041963260256688225950526702211908169040115995446648757221915787350136089590385161249594915227518008217762705413061213546496874357309444817085497080071687537791787176742606824550690965985069946580998497837933749372401417197822337049018080800628452555030654628432392708314939021272476207831305277233078870508914344629867425663965700129391643512690535477903439119195596310292666088864967148182429525200091728410890848662452624433222660143876380499412621421137794609195233666769839292825852978664239979197367010932268910516028148742224650227219663365993962383653214278750462169406312312617609109756150597857928925004747249401332857959605461215275274401182859985816943727356468904251890565696127777767421494364045973768648413396387136760386388014727115236995888613721445904292165750266831562973703748975821757345616383717707872478621818920252661842302134719782388854481288573374151109694401125139058498375910921727016375194984223979732189566164861222679743479442349640694324524556060992015162890330818930774714294520840619695663630250713572629295147464461838446327726422865770444689790470779171933656783321444944445395104012485064034783407738061213917804811783214557918693786840976351751934994346957340918329982854468865146905631183971757807439796573396356033265277734772320065685581705890312307606989457860664141505856575007076081458829352713572541181251947735069277662075128908532158961779403660271825137418027073858247545660470925296189010253939988569582397138181939637442024572837288467778167843539856716217514455016006647001424553260373798072795340355583279410958910664671981888225675939063730671666318192053579162768767340119670166856504006377422100523727101069880776676917631883266075906318547115351712634497104070945094622380017662867811351723972497832501210029030864020183425916910663965395670432850037795720114116693612392114700644508102296482110929787483880152632475015919273446352806499048664202400829360723462380563195327776976577300535988752096387733482350977204762578773364675570667795496254208665222730902892617153070281412847890496385567885476374977941576322489947664347177019115641891887440083441496931409434370344238912931236803964579297143950134433713943609239975516729977505711459067101006596553000690876957412807421344447417111298192566503633403342747703984632853756414484859414421715039033289715345974003414281204424187020805387355114488423931040035984520483045839584590356184941836462317729182678440934832693779742449491590801910985706849855026144881339965506925958066102998045372200687823624427324449313770465965312651779172166357420900555555370397824397962829865623952339685440807100154685507480294484448571516668716668633910835272791757500217986576956583099255738829501794356616677666970631307094207420455196692847747492670310825340573019828609246065586090803352366182674244201880008028095115046566990774432625521205792965015052002566535919540971344300843651433595432474433808106107687176997590678743260695789746918300261557592397364938776054365984412686303280001710575038890239255920762954296635603941477031949709782430914691809939256804428321416825162739711857455996582466947067991784733692720441026249649995046873822463554380183451362069955327695021457875820496577388509008772266703077136814689832397424846939942767006363670836512076998339021476760648926257856159619604315194782425102662855464551713130995379367229706233751816033622193525650952785392155382642252783311849407375627915685812819177586689734917667314450330154907897642608164901892012050769933952022516652466304327634660404587852749005014954055235464502924028691589455184061667140538277216287282049581699187684365453574596579456602314665366922235228394865486220954821381812234567776563658207153819405688782855599984855059455362867410547827286966704457098343823683999739542839631085866569071996775844560435118614906583086176357849924936241337897533595747673337485308018884745660722536916008697708101110438087537594888114386033247713168657064099071265298098397748274042409438202417989676659926583527681450924118224763555324946231380123811536834993990218559611520802257167272322881114299880157508864460144903000371711646251743690620355098778640289820783518639265735231340643722212414518953611797118548110162144306590032913142685793760564402396166906007606731883912880903499130193848867091465092650353518915560346882513711236012911112561118053696783888797204037388668349662163858984098785267155765893312302607897114681355526099461373769596370936599947468783457608920667842094399063954179031770451793696212301582700635732289475741545581457388342623996102570191107971719554721068013634726126797100417983948328071740387417087552795058036202465902968186485489113144510289404077533913130582240834208716590782644792038892310276082858846221611927023377672751948282456754008464230793784080666303503732964545311453880136701996876796459694450256321459219706425884178005635752533772803473176286233818620291418607624197191439566663479021452066193074774578557116604923939103577889267697157370607466940556053995410752181147800113866522728432972821800409510456107088168235550983588556767085722427690316140223699164103570904189678807603675981900556212460472596488649667518799879681222561229599548116086929676480473847902184019443871814922867230333971446868364970693608662321827638072152449049400328618522121097969012211167994523494500920015205453660323960251570590563090626373590914382701428451872937383144166169069468593725181452644719449111440302552331859134849632906209041075924780150766020462866518650773620682781380011633658409442346738748667959547168672527977496059042993291651269530060902084467943749791319959287032422664160828084031927741634364759169689079308521637376051478481493658342172085401891145898560204582690132754479507439380562841564944630348107248100519944682175690282907384152272500862655795483586899081958406946110427808568314974802497429070700717561260162849271485559822086886054918416286242026682571752696107842185599523460900688751689831681007027042147446641796504137087428748372649091888036319097284403907433310574137934752241851731189794899787315083760969485660992993051741045124761513944067338493705513250742464520334396604564380928369582364754217277674384124626064897287901808363665279795685741278993273924729264400163375735200546509464039023213496882091021235066544947351531999746132515265181997905552742657546650125515206626603372205393686563414864314240258218575577297733991408423266808404924190830470121044629518120665390222058366244613801232731107213145671891747381147458402674297114553588440386163731121625711279733796134350345319897700626129620656800274684124307920221983196388704261434491341830875638393870841776606722139735729816368136301359601392241447842860697387445834965826939209531534492223075780597565812982662002906683830524941740255006644919411233217987141476628365568167801792983633348148033305462835986986975433355018898309365728898445954007467253615393549561270999732109558006819649996948083063567036635925262880686574228458585481119639693740093599229363882564852662587277573021453339494567877502016235511651113773982794068898407019834560717301531717067789246760945471532879231833989055607001871286069523135319979359903736255395170272700571055127717502805738529637494333499520835210982676140792485645496845974316014899899129346586694809566243577748495212528478045973423977286409280363004406986371628402945001482748324510317644927487940469594628778465579157346791975750375653421139489094379860927884095774070893786450668738528567607257933824644549150354243374607212363245484549772675279908368179244743923637933000222902234369516899805303371574506175934348113291164938811316954595306311615385228816542369044252918442845741452174761045594595540107666163699417604739459716497661750065617852860542075168774332990315667499350052695904730097638045158420632680702273396632255212710750463144058646385879834678130017498916673617721485367235762107854106732132915733848112373551856712252197742747089967949251950638309915542435064712481811355420342330516284879467240797372627113706472521006411601151872345177410185435383789514823746318219624965699352698815874032536158988255250230380366865674164731278385561692596443909420583360939104545403222471198153940486279551456234167811515411875787707168633519552174132786461856140735801001952439861989963445511652256665313175639578728050144715617740992572845463868824442206421903506642781506286987177123349128682561252504007993296854893186483997843953929661518076326933607422650189247426147520207144921347066691596288435017423229332823597907881184426620502839161241272782255356941437792187121654553587102179406162103112480737096916233758586095401885968099197188579936173027046953975386935161497449034177932418628309917019709655763216891016887839725261811826964496009265862356770522657854003111583442855318648966396129794953023837328923810492599227258829094851832475253704734252343960993413911367481224392855185207010740056121769993482627923616866662562349731022031579499082978895098967242257949588564671401447418345210049579116753108094802424708781298005533065708223734133239278329394477422333877349238265507712231051606587250686493925953450504936317701040719103350000438836810310025007674970102833734896961671760648668670724566756401132676826704354713180567548812988123404117761572175143826954850960359476824871886703828272791780327283294261885420851474615720770657787998686501429470422818018340962937530247106000711260867334404172752957508503711956468181094245406102285438716766832912276845442558853507617699449543772607986188232652171044300471373870532860695196000936936794996152147768320787760119216645092725216664517085796577280908469667593983660569858362322104043073856484927199555820677627595565516299096874057404945147278273730087181611957968788271758704121706670183742852554185984077350949792138952623947680681803876832606067866139483020161646321962038150953255241856231229434151613685377698057156181291753446847449121414446771967140527149661345687406643536232365709295258709847829714613660473977545372720244390217506001064386123445727938512283276752071305798679747871723614848044908043094708742035670188000043145635161654610368037576630240976655944299372806084394754571396084972692236900755847384144056170987344203495955452524248986083229554183784621348182536158681542028244395696547933188792924391580997804482575377672281618104536383560729510437836068262448486683166932433384021259941564840952788730349114216269620729697639214188478113250379723255673891595061383167867632443944621184574792860140647149235956247324909385781595237943250416269832726909541250487732108119723375229846757299840019107632400320340913910202126350085067509502247260304174209957922734110870103712921954377920705351125824460206748508951674859140259683341854999962350325417522408004756800296395491619397102817692365480098810804607432260523278317036078481471283893067854219811990072208680464421571782433809908541198499118648517070859478396919533306556460631874364360480103024734383789129911345195161875452018581555855974384170623080392136301826236520504380240277720924723847696305108466039833212223893954930965585225589850381546876499197469848513465358310667717324483510830418743723844252040160485248386746942512523111513159506981005300683226419284249317313635658189476606386433111413242747921307209061328485054389840370475962886228289456796432650360142342796703760471318290502871602848346039159821257536202805097591546523309815707295722427766362770219467517212937855571409791445951352803549710267982010331059182266075431068230196133153519095382891573411309346058670485761702686045316924877614586823947044067543204053515451321233129163711575448740869801961718124392133592549850492141748609320996593538221073665644816547297615065539433251767493398978089457320800695775943462537804846547204623412348074459902182177223507576799398625187621947408875910346766853249930861496474322756671906000758208941075259057130506616700752134908351918075937796272857755255355294172337183442624066514295460979028162778165376196264854065069375696404137731133614620258469595828360619350434208244320171791423104010537660965846908216774352254899946338885570628950000981602092108969919900604232518054490543800425430463059603319323881120871542133601581673913357835080604574607738814386158088666558762773333067545137351576781417189166184185643021559210881054008062542244313070479527139239394539171509345357158354608984510659268578318298595724835847225452095611618193639203642599882173484576845488071627150093602427930736956593335110897304851222637330994942939141133495542902280551886040978801442168269254028312773239156859028711997455644659104268702696767676204705346864343554604699982967676215197222890065387450393542477297971042864178603706778518018756885640959815395179181310857254026643814603265333583291268178188365544812163711338148235120530930776056549146694991955659725419290311353696287779972151593666400289025945129277692667702659658783290756707536831293377176558004239933559825705164952932786185172398755246355110945385164882655827859748805237165641524805132640430738651148581580737185244403102959964722529886409634768359088223356712798207173285239275534988173966470155038371146709935499123825487510342094178459304380083290024863467763442728319207131741335435805980168585667179703235413325716663278714554369225871378608159819125315402315102138946948915738271945561398317271273981593979765773379669409868026904778658558151420084615095555013866406852659117565215262330945492967650827092822814013165471729039119780475214433370318607960290397588887085375029383323963267883697906488454794516872378003884616197586653854909103497680693789055508097860741335309493565534894877636935186126958306485748061893033333932203269765462276105950902710066693804125814916173389482042803825302517279116214580845572868159878378382832303640095598732999380550490934928276062694453241225910033905606926521507923935768894193448759463103380897922763856233716002299416752036391273027643974132086911952050710466613180709942792528266722597799496185910431515331141631763257608120448832148918645308541324606719310039910814983539200145758018364845496612356682492343808555256160912778821398238571376603132975859411707160997928584684341058626772042313746995421177674022916164511462992884600714120710644561755576080999548560114868129269183995327736944373456812518707627975448480440881733918587043036213055354264284810229781670201365877016226743657294618762266467908253432608129300368452664476218253450042480699874733611682846123319755846503944434912340799452404301838929645434190067601602184774461066299290150364995970386003160500574612558724157609261384187140617508563512886996349155412281383265364157864222431612825417261652143680802742565265064830741855256560779956497839650375176819126197965897663567477971143381724572601521350046038519976311849828525232032360428753632910463115180905366636504690404940919915169154790452080854464436553281785860278373691630950249388578252800497628982477912572536412036702243315614297541063334580601830427459542178091634600035654756646755462055669709802083897701694118042326021613290572016675810228944997462287770905086563913091737715088319932967974707178008541769695436790637275224997180353400621932868523995313307167269543883019556448745364607348365580204222058092201591110060332094611703750126867202846148346511895929748883078825467678173946005853770312345382526953339893532051888717049585959265838020401977078643440648916074038402892153224408258903015289504981700108852301095944473749728095870493138367336753711672919030202699613706517612889936326505035721226955453933553829854504258143257034380598409833328982546663455495118169909991800455300140127344901088984623899986319592343239340321713380189914034105931041982972306665472031146324881325426073506516213397782207422508562990090713391412821693499877160087190760674766438873815618168923258666932977902602499532836577970689129297966165646636099871208406895818292601295573207954563717652709085139225983341375469068038113761380172770173078476839633176952339683484738672653584385862094277050981858488570889061784314831317655706561960406539772890955527852510918830421929248948754346143017223290058614509156011591925603422941309339812227696092977496577295929263377358192883251114050739726007482110284249317453310606494219348863211169840131180596718636967228473100187301220224144755466968138891658042910227855399251906870243302570357646820586996172850267268455522416127455334770194351232096899785735244623104578857958969997107686378937393249698741308138591486461430992438461979121317393433017036061188232229866653844228727047832194658426896305726667828100611779920579487436852606857370533780073949314201527832236265199953130223583491381605639021174982497123321412947613977341078943532868015384129810819286950193317659128231135055382848370710044569571580016825551465408738922397111441284879593445285877859226194688717845407419800434904795122038125424468295619427005916847483480145558667329210061794982315530198902398706667988944622469719630667679412045949386700530664512900861969260280104067445421350328438410736299115687936594119136103190820319701560133886181612127780574993443379379209554529000007214771064752613006331268185197608763059245381769162156970519373211068990080090660532291025077993731479725753411710615246450354253643477620563640608772719642230809592183853342045278439530216942768990391703524729570157837413662325708500566198443625545258971322144605328539476781951930124753528381707247799270999554024668098769871395669764729793818515996747838625651862585189817040350848599968264345353755314812284248611416060629735294545507679764077959112788032959207189459372994770309680272814983547557096192740766156438395122292916838199251971224471748332814571299084773317698166596811415305988470817480791590337103812604490206861481379993944188484861458141986410361772899850094142803399637349351932843613893095909572767375528798136539407116355897202960435453316236639878624111541949435261611785858076146470972739475487713008468020365935460657238389393247144955346322623003513530842767695037584818483495319002766940676186173111258233181633751616066544093407301531683908535729649654981227617551889518943580309929804427766507300466546951850284342729104247137677425022457085105814982843059146138527212002963613971167973632078637426462790879912545568222835162324657331285204171304524445524813743915727021314419243231991966493288082906198632098077734997116184334704725189714394155798566236413525329055014711756884051843494679890925788214312691195289144399620022357773678372881239578442839770494467669316609070900549786030175728579020955027035139874459107951918002819853496673010382602964289413935720569977377840800886928371094996701402274478343480656276854558562368552096674271357086081844133043003975734366566274531110356496735245941378715753108616015886028447819059596574622543133477457413677438049029670985313579303428678884926641704108797952251311811980010806086317035064037756551519657800540807265991155586341027609865018024373277907840885838871421135920015280995019261180731356522240942600155007117588559308936820552892782906277683653931793961242996076508955971405146328695175194488688823599720557098848945517235067383778271987359976171581472348170245802948852727318470970283843796085716846426716573056404204132134298829389654101320837765409961579218236125859094706738161016460856650230295336921743280237556297626092741676219916672435857554351559917197673326147001730278592730699681329306080000875416680077017163987722428494723922577474939294738229407696441786769011724189844367473750037601717521782116540364369370577425797956855635204526898400162051770081764949715273250624410531389159958446451397470327961204482155554199624189217381794374102378760183424025292758908486374994503029260792397249507745923909293053486946266448944099282363072802397855162256903828978694901101899913853673141733425792253951159912553310570080798722206817345107663591713021244160816085197438454868191622816223108455501414964276706248751101438101592645270024464995421610267500683838392177839962383824252764970200082733934112771861533856187203958445617881561200509404643569363640005643592315394566882394965543369922469368949380736595250251400517373175768467234113402328672683141829426886164843997126400387651342714217619238150342436172916024414225150067433176496485535951291865401298285156631458380472726985129535128595868740931056213880253984441484440966828434758765890389919225328517866635031491020223638570551866395385200239796418681765900692026574846631679923946120278073065566148306433847237543939820315904758237906860123749647238994772787141512283698096459253835775830720224695714746697229218439745969667411201856666548036159838537139765868975223736041293182814715952594389131767061605708336407488640195130823096679366779503204022166403389632745516550880939043649591682696711365256773351478955117509711674732688184526229316652172103181150613793954880706586070830507062617598312029352779773522864965792393093744768685064650368564723235063395636610446598334689918888312641950441899054734714931441298349589999392646323617392443238646786800457145345051933521054840319189164781382531938346005508797492773848479385585642243011850965739089668766157555197414208247694411016705982167753785421258566242618582489736792334171404081754675101123868001101214094153971598236126309993957936337423712394968232679703843710816029115469833971457219087141728166184050710957702158381315050845362692989148235546416948391155220647177243412413793448254569146725686822656889248797122454727493446260234110187958288222624368411963716856279603837805258935831685436157474818751169993192667533627628909105414232480753342947922972283245826478364554940096477288771712764626507242615067659759500781235765709318406178320634552389202525316464994804153728499002762175277597745836382495891337615514211150997156887001482813416464038371987166693378294225291276830594543488809167027614989603290417596824928735874511343556741667119056014631773235685453502869034887511983360037970201425643333527298409387910562918198248121015985097215568300369556470351631474343418737968942143960633425887717203665833913715161090125325345656481767489625321297378076173015065653752919461521241668935573211700892621074768190916980926114268879078609481308873598516013598470823471213408510888787934824973603267428652416529822146358811086857254262989126809907434156774182045337927527368868583624554511117203050292843721694255764724005613317689001654809835568165100539409310773624103506112471647194637635844869482924120027583105105813253124114602192677838645904102303001883524498805342867397552668514036709145217884274307626704330791311061342441500558864195248714379832761301211624154394101082826286331431302263580841395049382066701294882455711444417643571378765518863538379357554262243872157426331842958146832192686686499877126902153521682311069708143006934206376528990251100271151283775081573950314063446749564017762875350599738289689332437496502699035479026640273454454826344899133347253461005612061602329278809415289479119182004061132744355102337217369664774158905395837438763163312117145667062046443779936621806626083011026174034367288198486779360915609278391628762783967040281370207265961168952052602985125816297409007500962900592729021792418351677081717905892746363497000969874077104430456869318684157015155719217853867934557939094785528700416547264324835468838147650174180740971889150139419426287065343245169606392085182535197796548344697063175669548445438936292122729975205341580826322002972813594466586036161919495486401872332859232768874160981753835932551318121097698894224256314090572104117903263812619963697316158809185916914755638141332601204119808071907227088297092133548391189628672331443594538633341457272883467636967277698670268745052600426592998040867455613985748711356269378291889573885724448961412196638098348466395091888204934464527532461628211733254713728562763689594865090758963517385210656967359734963645760738640145448266485499672527948291938607011721931995763847344560845207480612641947192427299545311513159730188631658721229982374844456164220957204060581018271558674114959238147419162026612577156841180260002993107404473315976628996251176323092303880401972916215970316871233208524636268326027227135897760109765780976072374862596688956499974437021824248512044453063935943127371850129595523816263815050912202053098450923340112905476002123577549923981493606902042625151351995823192312780136622006473480344761513643974129797422013350376902401503913899201870925939268419791688183887842003705405968609475500591139213903648187748300858449925055478264448518504252908798878576672305955807576775123102590418982482629987420333576806519445724540914637699845013841459731979430880141222607345062022848680610972085783161030501030933640656560567167478460271557079032043456890452134838945264645970949828170883518873061486596714129047000450451984079671501364639199415587953700862163787214260029379368106366552848899062827622486198353027703689660731804851079287404633289737040817863720106335680269962756932333642940457042414221293661893106958243440611474520967647043561602285500660270588741660727830675379578423987576926802910589433170342051300505726016969582405561073294845820856425079665310459565180278651224966337761596013715494782435538869116271391840765738783690087017168074444517192775280906273060632420884161750244566366092375957980639556227560867323760899750315879978644759877338401669698173328082043076674630407850880586604717426203007181744147416162349642499996616093478227431524607096654147862947510521345047625305525061265250775835208069739818845678764826308997724461693257421766886270857199889392561886422472275498298711564203719156421925587911135695289089563219913960904399254461337024928962274165471384622201817974124742732986982956243797860060855169919320357651418218751206887033041908938709267103936478386927355104502281446950595455065975013571229291165444179461631396798057451197167282506710025462831684435610309473953723590418968480263367070277105366648383377183743348402953708096603141066660053596612282956580743287007441171169339592538796957092922021970582958014214695862015290859362065810784373247071587000187896004596643855300408837769273298679370476581516075124124937548423405657825591580017743663609589352657223468077679911210929145687908337577120797388392086544543934071862617043279621804656226142020396742775853694097022827959731323990634750607003100856425258598405994590461768833465041280294402375672072963333153062015963004560577434249799689925044957204733070825570092407943356245059277825666757519215676156309039559945012633633078057464373279064818783882906157110869709444661152754784939109623514365258435812708025931559251872221970054212902683093827719219454097805086851661485321192476014507211795869299161916276995312454089866580207823134094919168036566908058391103113334083962593543407161386048854374413780645154606996588505179534190382971323780505601941322051475955323304231703164974549782164615223437205829823218798814747181607830260488941337550558358363669483983925556256456449135528546280686566372471461153491382101138711458453657314907363284519827190407357129521273623927422867102899662069747731378158231657375118430257748050820122000435222186718669660371985839282152583164997668795863473147348052895218910108096318838602012647925589534852828052236229933151052153742185567259384601473957704845449228022220710868275099200137831007844189263915344927674074083439769565406481598669439447380842405131053276796727626627676670625192737284177714742151506146085737453973506144050576482246630537074672652823776489833252962313618832759401402729481228541803986244480810031443350058576174042145553152534681529203856832950632185735784820767390085516064725575160184885923751070867229434580335975927694885062430455153145797358881005468649111926506015495820120151806120408987487284958150030891350550882764492407526846977750497081607186873331345333341261771872727426234782980132738807641014934891668416329072467011254573472213270086027956974949011564241666478925179324564520092645853389201522083015227382730617792086154602960500720111820347149905625286262331316105004867815640341468764591708388189859113001654227500886276389831863516548478985756663830439093413040396140602460202595270085183551909209419265576639556061840583579551117718335735924311163414115798652357368141935176628231110150583340550870871334754867766524284263013074255761939402113201757738509398395786716847623521691056439953532805114754414257106624000234636523207069201284400561919887932831860591627064178797285841609466188348121703795365316427252942577323404168112354563632961077836943698073830893492002031067459467129624156897548584017533386648425071448121372108552347403227801998901504789723252808743785058452434013571305655299729967837910641621924996823511482480385334858617001785308347321853427723511642137545541775430687571516325610899270378788357059245304197835900624958546530942008672353538254882880274449586745791850829931215563463130759448479179913496687698291227346781935322036209078586330513563063084693606643630505639503490053847271579795509145322662318261731881871006127101311611295221911862308012114759052969547030529008699768491993304611980037133849859236252207337978578848945816879750897694575433067794122371380402272563682074712121239994394763625626101742290723854423603712101868362515120480112471783203710077752455179599879321391433286478394100973600375092654380939081600381286308284453130122317836711849957020076240304948644317465417549626120639876182773048937625617537437298992936887444239811191149714921601254237456203957745778190025158239740929018466851364691609666092154970333323933939186419629283167964427682475944378049803402183657534443967580463726028972697043396219367749055561905332075797005064566347368188168636327768824943382039630540968056903713359613976204185835961246039504347057839294479778529789365087750107961741603936283450354029024248923512040853809413927729720886833832563543472265150256773940242875932567228607286487708254147664614522062972002622070187594400945942828741217282640811586277396258922193040206813884215568866862111312942568467705837052817052093967876955488581810097651523026928269647460186759518876861859022218684940626856613035539103122425326203859093458716122945461283543357536301458983764242610566676155084341083578531643212446120298836805500580349472188408505337849315051664778923274442786327852130350801502654149744727241574972989748080302279676045163421328359732194178698749262641483342506187380930437899946020887958435463454133787475807493655953840076572308768987512772687825176248927743819002997502378424219216565322235207432197150563934325367631316307138934045994729779857812657822735548451593701649548439017241635694572266750368149840850109434326172159268865378773605380051269972810182288379357794196599206985518405044623671113387095376133700612036934544687114215416898069614820393025583544623249599413607008095611335816071147381234445158914755563686631494868623650228674170941438260980793994565664435707598667214729305756090047123898688931265281915598858742523225939338734428315386309288290787396534841887314302586549722635279134208932084458047243397389800060191601553262683598712065378307044259383706491291615055874407490331991397885430921193796285141811438716550259199318998208442024344921550537758289502425366945367089980399782874681185732177904540569248610064445142594757600818948979271554632337607883249912023302939648529552743420838124504128314558799986556093864234415738309482929616659443008152194956176250317418074628089532030335858825122383340783669551614191545761842317419123747822549294273008619988899691926166817503269686988818438041588589258328389747447952541303330262657068047844828586070263920343868950492631990679525955979193717547760164205051357386002966243263325085093669552842990013540061526622166528702977676379282368722364620667597267221754981811522054629915589821319357358160639147823081389045553269033307853026518017160599093219440176343609076751468695859261171568026993915568959712634165245025375787994122140279252474333441856088720089924182681425497565830178766824908662767349703692860755512688312480784036274371887251561433780485348427585870989253910110052712951903011973427231432062939195408650988940654671571179789886514828121604850458827516727900008093092063855639839258228405637295737981738109247504231223394769158895103271335293036239654948519476856612678983455618064509419794576004551232594798873742275970035731185048530622340835223054598708060593508724425768522157499597314274890481928922121298870560580992102643800158307538286669598557655730328076825767525616737758157554888430690375760130634132663055138621663110018225713468187065115748419213973749135886840595424558376388154524878609474005818104615982459779120917750649421969603856511075450840472418609436310604482323276653957291189257457709910742666511222735075193415321257941448567614606583840129587495170629307810436795293919539686198499894808305040001389015731632370377462963736526675417374622898692486347461645601057637532134993046558270575585508685718445763526727756465939071378109999653172759111053327037165637090917213960887835642440979571585564817629144904290965200699740033723363078415636265980289778003710283480515349419920823616060686006338170990084760811051749006448964317543600758985779700483953753438640444385728355171453306150366283337353659923978670585823037101043265669621648819937246221791054602777537646095444515294241697772771672395052826293723023371982208989582020322221734569568480116703182162504506732559151637092706096933289064645091920433958605322711398754946444634830575590436686693225898366435190970050075145913155909873852507909620915114392128208368276156628978359481092818890625411176363278271877090504993768798196407306114146872960217966332442861676511417717904623379424261120506147919898907548328018254616784368466436257728588549720561301351705607533533410701633150954168809585256057932172434843528211633140698164348596124022160903352563996218261849094789910073239252036531816618974961846421631741911964939282571411879692046888193243818110088873564444800706433218150017025779282101023353687084865881400508404966554147096511231589651039442376030402044490469467394325070503690714549034764700358248116907677873214349335115384057998427870034380211491784638920706171204179480662409859796136182672872230553730609937177052396842123208033727686339161925384588884679116082769808467881430976699332338247561659217294956046247764962662578780084191838967537081243263776385229610495011960064044526439878269180699166792326842290366951572251352634803729497449521439524678798638773854435074473693446904208076514901360058740771784582651887811490756537731934646384929673854755469979953939380250763220075788729798939115329418362373572483662564515565998907976927287561034263716800958226431563413474890182807849444322210991603648207415718099608477406008427673424677838678081376400441713269068802855443310938003670777220731814319414675818848824413571520704730330017523156592706919902414032651802554225185761839523158096403408206701500150831483684007739527394841848332287104432232317080945165085191268735256399773211595209065589075796996680939928301893643344966715734155132968153364312229975961521006662232961003459197966012754101371791496349026265551050562886055185065400957945781080492790341888974789890794566364058239122027947759041862422758253918361512116373401944965474454227070166195317823414148600966126933475348603818705141735656702110128267971898523041569674131343655888651397030525730227738703111657425452173010420094470245350642613761623038250754933106082230825165527232031242128880459148981725399256198547914422894908724116763490105091597168194145040003198654056390670246718527810803665369173008207773750638767819176912296092568577317101238465756993605653254555594254673199980331591225280374883770909022448732210830144043769113294740404107182178216412469913724194848311534142326281764997011449982044833075002586439701509956980543374745396519597292028031559109449509667887271862204907461796666724797858752193989748268394034308123314199012534264758042838207826651339864568644156674901295356708534716023054361715837356771496338059100872009740405674376489213948996757943129966497497277455597798000378764268930512248079861217565633053169673598519044015051396748602644550179209976685292419784154663210113856146977704506674567284259615937055866390066991342749137931205144408112771780449680452136951498291579271855200023891416764622529177221797248793083169597438448949329738851570450191785633350193443775156838809720692891272547232803498748894862260734809445180450845254092554594787539857743468432150397515668148945200668576145145769057034706164416511550065941559556349941076629027041008247323736721177674897259865390105871673050070976602266190216633027655355447685829279471592889293567042825444458824555301524235743528753772739964405608709537253997397623413498708373868299898207269853437913234073465100167576986798577016447136319295579336623025950119579136816954863090445154643000644978101018106657357930357424819260715797253993072412336570897795064545188867575197742813480752130402837947224511389879042381060315319476846869825408299886841557847540732210243472942374397695860180786134614372087481101613891291862413572898055714214674965637036295582280759356727587899498271081829987284287726768522597721476397410226639094678029705825216333801469785383962508751574043334456711734104024538535974214856121795954961004356982053265363211257851086818138333383720219206748950778187695953196098463352913780621004498024960360041349364773131163683946333071246754346189458230986496131754359571785374572189581045648802680670655506595071603692026895987860298500272831263137304769112267475225788594295282813156252953850523939695533335307943556462168193277436588522255971485034307354250648246391664337256345334989056654477981313892958389013654065970518743977971993845070020755594982178204556529051723586421632520047215808152674724726618288096527494593863305601928648670641126543162097201851471446566144991044709506241947265563613032532134201611718005085421671343390301738862577540479907143880055545274927591822240982205161428295821884460187197621619013172445628242914832984224719268223981229523557466531870530481230575731727378918387107822267592943368739745368516467902450737448703393460472276451156916653277401696021755241118422649583557310080271437815097496942889538118106377102139521770335327142968947074726209551614659028772942462570044356514875456724049831186611102650770976587971795035029127209304736907975320682302597314686193770364660554445264449744085082468618170982382540185411025327792295858993166601406149459122490043560020934478305368941844856959932419202885612359341129037848786808101756550254029324266254196056895958428289534309701140167322018753357143349061166262001202764339496526264483748844999368169223000353258726561432508429093464224968763837091135517789494876774442790195654737518706476746711852721093001127956394925096839894805828488031969792731728090897450679012577021729829974429265369563258442060958099489245086219749076202073453833693670634852552300823233338023821468097126233122937721364040336290038079786620809867439524428675522096240665473033342681200390473966202684416689758877872593865981623111497894005107320795384849989789779367381544183147816187882527737987912652005977060167979247483727976439837788532736366471409391015166149764589646255142304885478825228970605105366429652313292753544231308830488316480226004137183102473831087865604614578454071698884954444513714889651075995837543392720311291967592437450154562533945482006830291756910725002955501470135759300412527675112593898244560706344175321010972332416006779383671495691845861406673509974969042104878526080977616701421656838614581111744363847162028591329022451005698815114302237877325601994725928702994436025229227084593287213992444764672389509667038475334334835122907549719932276228003251268053965219840226448637770945330331466993245459895960327958289911559778943884717227132702864989370484527833690664797883619223161816223528179203813757055210537359370973208295189831770320446336635666877037652659677313270835166004711211442721770241088229150634781832976927057205306145187431018944324996134228787424229031669471671828723898786240939333629925068996910986956215492774083405244706211193338273964846541034380915636289198833403431495638523605049652563698271388202186553526097927041618830019281463723522656762037314428990999029604480844196113748901913319932421227994451385862758879146309919700959153987793010654354235637012564702281858893974109942741543082253656083412161439821084883007300681339105025920000286913898820744233515708041285066819176029267072909985204558199772484499468443049321678341317299704992042134559705195122423340554355610381335430786628794035640323480184811283940983811965150965958850043207627578235742773044077383086898976901259747089055094357880798474172841629999520889950725177374601931376827664951718029457851391790074277503250244703850510164572672911313632994079236936854432980581676434398799709034375713467564984960485399066722717183736400570460638123019982162756978338188454625035665612439114888867871111520504341437814442671833635284011953665308332536321316434448182565917147628899588988070676515969557110698940885915652091292185203129060797867815884846154722911594386218465677950415867074718854570897602366044848429722426123411104637612403442806615191286832375023242616247001267514894428599191777297967673335679732710174525858093830912393775493519357618729416912015297564493491173575369227097448737248470130620041740036285401742706859753433454395780702326381134938116156955273245396421768978690215924581321555545834559010340917396489244563816361097140865893179729255219033852333214687717233101043197651337343095510816481120940798161291472915594286263733677815154280292846674875706723931888634267849763177792400153070395148633274379369190194856865616720095180723031178874612761230739812062178670997681176070691009563120424777237082777681199720347945966368997045440635004937436398707204705356427404172639839146732889155628536903311690024976898996033432604992214622043789246170881614094866123251197194225877322077051034759729709243431542605447637908291322396091449322383576740390781536226348004466017129856334770694691661967282946664828352688296936533768731912026134541147671685669525124909844091552217919392864638035700723811124241338646082845558327493933573031253306768399321375839643601022922478867529117533990860295478819531924055603108769988053666858446526973002988018069142821477908316338517302085608616736949912414884658758527026209054114967709023383426620459693577359399855378761134923085756557429857304401802981476693245091967188717538139787802355369396441209666172190065109373256903869117172341008341273352663925946632941925499759469270507600702938145096923565311042227341460378005830292395927609357573891664919763703347460081817653542674011246462533664967693045664932022774258206966255349050754007673015524041968608843854486972704741666483821867898683455653198304578981631382654364336122342360955296579227006120325020681196686911744334558530664663652443777311099710424999314871720174325326733539458113428202987467095760631025513427030768850995677483160845451685250470386077260780381964790570860649396955974100550438327631752941138115334702009171056962492355064114290850527532224756600120321545844012141913415830103976120089889989443668814056286906874728639967671896281408138819768479176673795958065221441856258652483878292789110510229759428009071386949666223620520354370603729033100696059538471454279427626159160009638907836697913485230607332798743468183502070538187421038847198192077491983454718052650176528723322702401332866768984013064561673788343005481165583627958910082282997370076281008911764385929998990382614100739265527102065062965572970747103810715255144403319464340587009016432648141158257406796342033017384356380327657413549270404800226789015790014644821981151854458635475059557398245051998375996079415574858827598630441318370466362292441983714776472218569767132790335930779496704642297178525934918418405863485995656260876895259611515222373777748110825165648610175520036995239938277003789120906234726289503971772367861336402265286150500651494664645786842748998045138338401693083524219719414346102897565277940151243605399564221469822738215210272976947921883120638225034309010927336584756962115826824624145770323403015126517796070519183271613375046831487187639698371113253820562226484702236081899653068124078999070578306157902860366516172722038293401887797485457895135424707803008422116970023744987417142681789415275571019788892230335050535530986622784004397207854940081029652756038498101018854969480768062109855681664041329508857657194463716980971296037366632181546144430128822115735332385068625727573908008259167186318807461550673584030467775455863511453257899229430625357970612102965488269913509568174382050140420244288597816248143762617695536732604875432670232372747913721791798330875215277206608250989956637667421516960479629186377414407446895555810958467959809584117511547008310139885339582418177712727629226878915126797406634220499737629991865174988276768433611462577495474494468148748512184177972476759503684293802352232887401699728952776230691797712030723741288189882229322597039256446641929653561723998742365163472948267431513291935452738035853513833780464061711375294461790086339852489539236947493921023054481867880300114905339544704305083701142370126604157072380969055149930229539011619091600676057839607149595777127653483318309002480835939460614221960373278193937725016979856262124816460105528090525146522976956861535890800790764962730543874803343283081146372616117042152386878165912863864543190200689845500450143424218260561527066533443928421470026015798341651558674570990022600191960323170383769645297662785082583755892013611233033717306436987649712388393036334747091961840742009065325285853500870944174175936540955951303706384721368110706819661792932306709860352824431573640197494963299550566374265400859033590891085182144216400853518187366057145848803583859500346301635940681200061188192024434140745111348941666288805755814955022162184588328611923192085859840388467539212142428572616300760971406550802724423837095641364516334588766278883021039808052641403977926038767253705217861956718724783901414265892921415598315594074138829558961826225643304022975567469139301381118486334017715093669343967817895949709754979945433565772412709622415679520254798469960294436890047628533400499253170503824990600784389193550813878476125879668667403591523272226897478434316784177276655255785735425986218042527916467492186036992757101944955077398132937952438546949643086673552622090455804962325771775725921294218324642723872108692574483493457923124516408952367389775606764782616222938518320315139742233871974698660989659373579012724747234395792902611804063072396559122338324482004968259997370881656985414625342634777445565303482317435219253096404372913368842967770587472401052411302455046102147794134634785418466308782034115675759228255305569582180772788996554186998228066975065475419679175266662081163497677320302415433345131641158694084156670989753287821033173680716554693293565131201387243524789664787231274265408764634847672009814387386607468378250830412919304433334746867866414267891827862677320640880606133307839588667147008375459397951709777056173026537100795756770874530477213397884823157252414056569849658341371401200894504739424980666085278771028649149582110826170528904109243246841696850514244143943139134329120695198860947424360494262331040832584517436813552129955366070059260115095338024148293740461104433574106518818220545975048651151151698309133730626132218524041917583980835221229350438535781069520882572837623147226237807109746986963319931008343880689364794129080161365693011483805873621553192701272798864609748955786116054537450648908191232617917445459667705378862542372425043841270621046387381475991189250251930675403897143460856760152549619269731017285657550710392113814634997365391761036365903872974344689988552693177818005497985031960948448528634108968205622520301855813718523236043404305368702810323930923678352670125659889699082365628551418614189297604466550855427363940193617717643596723688830748617494907050575376157518107310786738120214200742097108476387772734766381629206330399109405334360770181675200340933535663497317339746252717508599519120425636469996460615974918463583457611389902855805370483293656354726578132958273379934820596546591571654477269393903747232566118092861681632703192344499055504909590912351947590742636554010742118065708081319982528339336678798551777721268354211383267108382409196490030501675519321482077303792067171358458094412737317168873533832078530496855878270983007697111565411199082060188182412999969150496090454158373545054419983021311092257782753165351634881872207064791171938713195040252096781091028190361704111460879289803231946613293114280966023772143298921753258928785315801251715964742730658697180937869829806148192499847750812645359264749632098509886994731996155685032147039635449421664718422735461112392872346166676573579098787550888819418707185012603715065392932136488827516749051623335519649712152946298789183896502467029206007269772061161608129602169169464923366779305856092545776035338431183671303778131718272294929754778322734258297661007669961460709012455557511233661638178731151313546512303352220329087058676398104914356861406503632262039214861709707121619697968458665365590749094774000191611651914872570285484135015600286558381225311974050586220455691548066683693546889620594532455222792730233070229235967217102648845334497270456315008737362002099069870410730680603993362773495686869084424977746357533664702586213270914062331682075505342933737139456010339524649224566020513962404516947542090466831298089822923493549011389008313196015586073189542352914506587826264912380706684542470363674875975740713928190635400313652317682879275711823734955216129693061756044633690600700608634118206696472447469831692836282821586205036449719710978745997686145102313075133127963866754387900419053212119512881689555259278616117818628886118718724660408363687648646403970114562928188297239685048331358538251898000563186827862013744222070423715871408245132154669370049041699899859093294578666695194642950872732617849198004384502368712473142898010402132873347853987120098725892496771627660088607083716359110108256696433321387673095780375067621818074664618405491986033230779458156277186728252376698494777432288105078570434170277648891327427472634635942231498325253273759379594049962155432201102508991742024226241237558023319883205148097502387655722592899404217253160097358069322173884999968961652897476095762885458708418729885643271639273601162521381281046592763618042771431996788434191102420080333780323474054980940091979200908554958873207359264438536222733453273390808514096042882755343743693094504048440705189972669087936934215363728260013603674257079338549391297442740540925176895194865256293982821237727148068705450562419450259738167037911849357943544887115831798458769387786006467636855731624156964437117910432304155742678266176428268117942312777208229972269005476889221184425549573789326850847255089707038974868382094736213374122792662082672509086110363085829458356852058714945135834013064750571700851783307039401154123164790236332314207935515852925223278493329590749076372209461817582084633804176531385151204187097106665388633904426377072055824677137177936719002506374071285975131317532041077765639954505765187997831810834243780052857184733349992678745513193927759364166223796517491292437591316416189485859442886624497420980226987075517395119620418658522019735239209366376300385163724042608872715112218443293676425537570153490311039989129416326862571205279328077817226424282102588618574493243824009050378218752518371098782135574481497216253793254286113169736030352777634435551138913705773043218058183973158745814205589375753021393074516906583777535563788975378093169941335091744243519552780113672321416423267580774381219566369466170821170358251677568366198281416364239236358924594523202287427206285887977524515737117853565911293488606781209030644534028784522853479551089040558473559056986992835969585224604998389259238837750031675728410039958545118510672722838706156641400183130760962430383999448853008577263416401862016323219260144304656416366460780458119136886159875841956374433967809051588695355920727451798206691927805665588353203112000003009948398547553726460818987938956617908422735039447032757726881225208255157911195795716348563373341081109876449566978775909326379130050121434275976368854894688389766146222625869860728153683578167308814818886016659082957971683176042338503216340907429566690833369750561681294884284948718869946941024466176322536578161089507764506914819590782910456339441256202849709244569726443133154605488978758576085102490869324636153406654676197410230394717604852394724886058710879153146539446121172171672812724237518095792001530048858140649589964775792404314996803764259941510603803304229526994216287873589775449384836474981611951782477157501925730425736114028719790022745571941414051985528738234969079567826569334456107638434126274439363595026508869924838188112945437080305301555613193924006476314872003031655824754839795818754114704566498747459151972499469961648256884787640786598376084952717944128669442658286861742070402794021565694674779742592430139192040116587934607446365411506650581555170613855161885473628659903411458669739888325516007892621569873057775729303634322426520929660004178599767512405370070982852515323697612727530089907412893096842698568500169487121415027960365318372654275626732125967293288852002694285241602763280395572337203122988053023825459943258889267095463346317417206439336774101467933508805014843131254877131141639724911627583554697889131628219399836459628880972834405939790779241478704276768499510547746674991990592498579386924620117188804892033695420488679112966346299813202570712807531758626733949921721650861366664834794508154730531454180069748598649774608834336495153602144292560557956211340295982369977051429890903976615123436843027928074366503047215998931417415501323437325937336859910572188088569358468052759403940712429457990094098329245134946317539151542757567313090265837082365171219030931354650505979470228750834199635906075127348588770601166298173926009436199529675300582472952001594782309646082467762023887431555458400821099560409737908663682986037827826334075064417023326371470747605367976783606681471603930624519264810185546582102365618209575916615767156857121434102984110077931952526503714519940273443196997181325859723924180956872815836381187511360221442030151852369734172309727795232487147615119523390355694771808756442756086682069873076635015679497837858172676474686338316654115269247264106981016015071426696534744908750910149853719407334512868587196642246327104188974299503291457744891235465863012957212214030124032534610584083129266259678915757954383146496653288814049193144388169263600077206491671011790944065181539910265126931638084199917976048769338313389534112224810841096780463283417979491646309210086361441529287924590645582018404287909630554200101597540372154344930396734386995168794895862671536338014753733313769607739690594029090623267515054680789336653735703885314654518411902098825470769814436291771578462937939759760905340741953607150106055088837379400625424283053140719854485185381089630993951905290632690055464245638033402805191497906422532734137143685374128886567286872386907283527487020904656421339060160600733856658525537526028851901690210726787490975368980802294099881464875702218709259946943290523845135719187511615930132353192614192294929999686009238155521324047788582370110734243581288904619954913717717331057394876167747311139907547277254319322978017157033050407911323200649528184252249021584244385962881258039965154667607685683823672532901164293858980518759510595075369736977846498318170750900052190585234644081539345420714180373959925590539000856062013986737483319708935835295079360548986181446423674218851648829222477822696142486505357196812407852550411900216174661808356416462186231089168234196428064035258151482599327401825750427493335594319983941632171113449681297868099400055437514305106293727191263290920473377815443144169708198438076497205553442827676767922322210941872190743321951004592508715077938101161641714087328598676653586713148049488371911952237231518744500264096797294397360939798511462275727803109822910740129445420950959203721943442865014317281525912716336922731957180325915474698771321652392497137831686886092914160848691908981375133266879049824294127240480719851449529561789646000397532970515555329031426901301824921024703829192441827880149580264495325134997199180635200397381785014962657657156514396837126250125591070289745744952941288135286028545256725858756778232264798019722993303023720109698565253346914531536356409601698054233083450566669822544327037987069265877665320328500571179425999388779254002574824484181326084240348339004967341366354999872473492950777398614651501772805718024031654522612912729899734648307385056560880929352950311913541990082086460187602360257632061177855493957205296445330538387415035930666113325089017193462956460126267921270175358901937815645466520762903475610913674315633485613542975751210593555515125064930724086931199481936752864676410040722134144271859421903215763725361889092310087367297308229569885524521752990177596140614617079472131451493926426301538894139862060904459215457195788136343713043937602661184882760453997384482620768226105868198194819217399872935151413852833851958788712253300030071648755354644524916097563190647768047248506679130002738650980092160225611359013225865887577316351834728838679577008297228808740299278836833437164488457542362088584357875868610804969446342163609672534808158854486037839001310142225789213936129879595840400564588347743175923552701882012869379101191578601326867160822389972334172293014417569777651472902930471184206112346265638729488713953125081514691482689504917507611829793717299748888472388487315461644430017478975967686393962166959128898173884824983446751057188170728180681415224420219727003364634320138802232744152644627485770166939173652734505558847797630214204978640744404419017187881130274324637738230511436585913723818595267898475712600008032015826253331314656119448910561384159152992203350199576058129315892774556865395586509427302478780952106466793716261772565853063135497607766554433482107041180126244485152215207864590213247900361294978064132275540930212568761339156242015671259731657829012188474353517037717669265282702030222769993141572118071251862683109337925452486539769380978147353881510911941663950272289028272078922617256509826154578767259324677253739121394751400555991332586951296269766133581141849577400091638544082318532334854229701505772678263748253716767596018500801375553381267930839479943747102348877546890183266017350514808409036223124627363677958463442257421006387335380226426082897817629338610959061255557070151262185454890070984868441002772786611578092110744386567246941008272321465638935686853222774663139156417421380293359921924145906159765092494948488396990748420366413292991887517588628777720907154231921598416191168014893634036655854628570958274471405359896680837617519562819058415386480890101407260971649112961753095166414063637241370640938347710727094534399179416856491148721134509698378303777136646383450670041004139622970176061268126680540266608723568003215662740794133319080888652880485539520565235947516562031358839711018583196942712808091405030778614784701018857154698077971881459127411957093926406997942017208185229985841145097746562235766528269566128081250178009525053186946232162991647968613537556294419244674340450911661909330427290151637248302293612810642665432183228027602141079618198798756337722562907459021461719257215781382876764195537666870468981693398275830010792650187545416532106542492330969589424745509038858080830313848494693321627793581126769140570333059962154176447347151241252544130161321518370203056523963199858832289975872142970889928974198994116072053903902178447821758221436357126957475703468156609002909777847943249842324574681875889033575282801269799398896619347430884299261253031510662124193216364879133661080560855973892986746898355552531387971112008177930986332995172289368130342955120651021661546797932887324028610203273266345388715863991993782495886578737345095491799754263233979451206927434948399940208278176866430258031103446215002037197045745610353999363745777574661062990878197047308070221260670435405998175472724747584767917473173953452792575141283822892055101722122010312903728489156819195275722026592939027189222394490580876209646594240773579246944860946080504171384584786178635973447683186488843798328391876199218603092622083213608351949846702355955131025908772719392637517576991420145460328506461217513306841221602794193024435037612724260212850977428954613282275136057134197666217807994676884698976111580293281201843156307985120429956363387783939430738552022961427461015701004837547022230393073241837271939677640363035746569526370481426863606292386352631634892313902043995915669828802242064520530347377129249999768298725266454753730088417235354344430026226790663248592772185661814857663330205354358806575802601016875967548877654633732105724190254864943932590061073856041068262841878399194312315924640323786136054468629215541779641947042575930587587097194565316301876717957477243443756380479022483680725605532853620031872807967668953718785881663725198394954481335376157820338785531238428703453482665675071328927836041890801093335158146217327605235398330100510626386470233044892501296157898110859977048116964680009840032415773318492108485153033999716984777829170505470357825658790577468221584541093261018752584677651236050614625836896035259824850963554818929502486515877744519161824104674288998981716463202638798272353033328391292722236259470078294697236979192086617785099920117749912911976520802857649433934867645448417423567175956112062655955139786650897249863772424006218648733638233666428550204315784691709664460331341553571886425301810274192490063472324344727283508100384251997980826938208080717108893973247966339644278065391403138182396742038987628260669977103129355836385857491294889319065511405330845556863353643834623129539086319951125325938866513437073081886548389448721209151084679358852651053357941412756131249704178259349871320842932056488040915708007152725054482578741009370461963176083984795836135479781843719375034118571253858456896327846247995366278361026579494600014878675831974151420048438335202863782486744202894904981401703543840651809906168142176067941245739788346561245787208947244583534058464274064799046907613999470394499396782753997294655031044422027790065887252034159459763660295122664996996404080724281341233363408922613456751207390008159797041043514560766039711919449056564050519415597519424165178275818688245551975950171832789881468490953028178630038095224974274822265360989139190091349234689331378593272312584713706970258710996325250391900702378005164519239365503041303322123362219180289417714255808881375066935061569397160704106560393097688366951200365783789981661451591774416557402189633435852187790702749935078122589350258187381016810626715742172749164522445134808262287120493399368660320139766510174056873455598162206024750530342137063136323727343308514201463578779201088863135481202952890629878853121307474231299897044014291683791254219874586014840882709565486854232366070584948208648507667236839227096744049830045727279672998837575863081407493532254932319979276852054127821819275442421097513722690082636371565402455067439198589591706885918870812157475194911977675606795730177019314068033459163113068330292872497300205859172167465245965233046775794814683438979423775417122630740348725427767905846768631738585024330655263812008240352030715834603145262582885175023521559090752029416077963997638472947730629920076673411806630519713029142979454593631267669383366865533295972920329424818118819754864021158286546708218972954700451984278380232911783649836523968374994553618245888891049476497535904266313916159480104755081772175513648726206756979726363120858041493575838184624531924879938090528369881659177707662752109655399663999321266030795094283089676216724338758644568218373669953279822530696417142477504628938019796835323879397841574586216975358254224427502448142200464793044387742974440549884408463675326064447477356948697603387216153386011832785404097311244261204334952399461895381650443635570559350126017054367808515587046918047348004918152181033367036004898950332738921945853370744872987651091057252515230219652403371066226290804633534482450464539280264624066299469798872561993237310126029661651285991680566020537108566843600080588116128732207956986759035871393255391097684777351365775411361954210989241808684005657119280545284178555199032942181224145556733238561069756366606965075758381790328281231370652906123729018407795508156363320381614873375842018088427535741934377843487967890278935047912142342611353753103027202751777947136931664805941452462409018599744819005560829469286773046178737731914244120110883984786997590448381445374412938218891824764633963230765297983297875813835542075997896988318575160424135902788975799756927189107293321170271648749115041562172619027912070554994397310999432496511188556514693910215335084111521961573274122034608708155366103142648367771786032947395811575079170479945345274244526814537208844219916794080996004958748584531111340984471763414174091583804980753533698159865937609323742910313914787738684696441407205583990952078460525452810160034755909131827261099766368936112390465319404405784092413296500524579320738092244648321735255565485138622664776830797519168402752785761161116562118863574028739266374566295798749547984579676553892100024483570368542161880518496476089681178361931263526511331951261421565423701685113964157208313030506337953332975216142483069402470859501184604143614038314649811503849005194021602145289814464651373755318488767245417812079621244159133838200077184702442482458810707531891913486328583616451374661735366287892708874075638618001602199447734042338271401368074413817811087745954882980448871668811354179094221287887123168976434034365250543655214215546236311004244081699580503337156004040196667611741920333697564685869823215016494941596205015764963743270669877005867207046940391097712924535098781314517296684274336628753552227650985418087261190658224803555185965806362771265310100771710609334693219283380118132369870404176370981967119219973404106873502811085437315914116144058213828184969428605233715884844740994754324601304792328277336183113714130946222038235367848487112147939391614803454691121875846086589256919167632114953023013706442356328726278614134127828107214137976231779104954703214921839258581699024817048938448136484019671844935384111283934230271986150164848045433560121563681641543913626174360938134243750323183156821312041423772440315246986067537808681511377015393485417210029501570946988642318507485154586319813210680278717592236536404706666851579157336782995705349335173715695456335315101004192823327761758133339956013594911558291202407867514368168277501424509521635781939173630342838743797442825016646428607652414621848942263070229478428411021580185391838677434973329379039727413083153063903292121791914718128068998878826360281099630471140702177597347017861713575427319487918875406271473721002308681728105284834708800960941181123078547135409830263132670435026844035404727866372638700744907605419066327056901390263524057583788209021549286295855888243717823241822927453428195721724218950481975171725575307984719053900764020916233979744869686008094153050971984060823333528100611401718651029289933701136160099900441048355682155063905090699556780798029893410195483876573775780984437463516278773769033342698071215125908211644327330819422474015021958474656617771971259133631829686484262160670648067971415593311108603555420744117564167575248637869890589730912841489653660469206455372191799822822923293980429564567970702022480930289448559272976006154432860809292317289301441049687174641141665694779417707094082616670396616190621378353820651181531454994215484271887760933506938040571446240376060661914868393577025659534064240686444148284015865337497808546020163958986948658066280527871404342156075045642173441374307092176845722895163596762073605656167601886894816425818912116190053509080297425758578265736741580772928544548041757076184155733665199538967319242956276373118629924019525904032122370927135829162667811012164241366790536158684081770995560687468316360248402861399643916897068713636259697720170793108012217725580476397067209733268854160983289247394080434355433996715308518792784995349797523233916607531650243266059049551398960248431181821537385963649519863860864663610749565876975443581278907329453755458609454429997280232873257431746287610545889610962241897321186714486162637342321133060474159923380518007227021192462282782268800130759772559813911014157409947206101148417838816554846839907176106316170895037941721686455076029298390499048989827355456486997786939282857441043296591888478713511657154355131153385896985601126067944814658148614166325461599235214559405824714655647282593171072503448423364381128820436472621371572942533735270875924184826948120909084610107761925330278884603737883496940424585322505049640482092095231741536017995860749466468776566227745507671898554055673811820048005306357272789845111132910838558932350152767417775082165305108713433860463322534088530097367375308319561320594096752906950164571072801263436383208789774654540453559329979064894388001092740655819971313751739407233448553295745046706922243011523155807288581753293634780602340768746465891164715425299475787535532606967017294170583873666357383794163509532558334375524557585644865238104723937083184092943740423062292387504651481849450562401959850476444383072230408767758506638309987417686525623702311869082587416912306119083078250716771456549582471657967971066317380434115354374379455538107087996503970966805376037985013288661000734361514804746316282980794380605867782121955546805727602884295663525463733220953101975731152712078354818291307937133102806753199423666137608611823080251853846805926839603289236521170352441649434996126733627423898986149177367025457544874949565497430383921583940100557200035616288038097118369622439733680777718102768437641994346596855582486799928526460254162018128969559063803021572806240038989687527163713644519623103063458481330113898642388857759430904532135716224112777170288501437371334075890475704733322216426927234438808434501991411450446680167111184626837110647297989848752540047774620849684624002927267600439695180612346740578077430029833296205198872864104963037142644525352139263698922780703349410805647720463227781452635992842289407720881644652519810373603870980104087811049632267989424148453044022321318755755238714229728655663829121058915757554083062293596841909667426913525699500673649732531868704478453744875118168259113449508965749372797309556081013086129207230613480774183594084919351129183473743228114022676010822483494102459452065169233197978944843963743722612160068592308924348736704334900712725743523402083623961872741127281630678276923099932557686332011877887723993134022607347834210526067402722616701122721873235870772846000532888116789328365875274600213430087615994351182201754189253154481522420155239222141206997132753849588328361738355213298535560202744916762478970767476031624546558965963181530760099090060104902847775083431391906300512112841511099875975773678561554464262892582164088746653369889789206430963159905462866785243943274072276455367646136295610558986052797978308786090075752942062061691666901191536620782605511642242442478363666678263253306334538123886974635357654071958650993150169726143322607617109643517798021378123914687429038680945112434685426433253602421677404138289479974452485148329620110670151644145808239976742974559683434176103896591703580398946312973605997768077842653860606591588559038376554525479540959918353131234906532959481486099967442547617717517539203461806262041733505752656454922400080813758298978863719600985639595691828696688411237881797270548534501205933117472741944223743488585379618951954053989632800906551459721610297911519957495503678621966525705161418605307416180735895224112299045032867907906512054848857742455762721386942558680846660359683029838399354143799956456540410463937625074660600945875169585837202223935064122953722437225508673478005539433430977686121094979237908498597307712112024480322735578185600891516092743026549991070486561229830446318882778367891377666656968609151725481164223343974559487789976832261437563780959965669875505333923921206870700066122978447432374053228983771386904302232093371806044702785467931505319826869920555540282503513317398047930836978016681637920589435964149898607729470403691865634881688604119634769424704448441576719517771541447332550366304593445163438212968923132616623474391018604255609978162691385217062218443865941843909215881000326820169082798987809201712501679227577670076205546699459798055111842163732641344801613991268109996458905312730392944615677057152237589093491017697339568842684004098722265799919609611393408995103774048947188314605041267106189891373661226396572613714184479732925989217056532778822636330628799211901709622523296823843092211285060412014601705297974080721942749271160308162479154132207774241977808046110282935938431295218735725433513559581044559933194433208891994543855308079546941731938759709209114673303962802563274540674452237934357462741986044215673670717890017039909678084091664445678622200063760390795999959176772803702451400582158911167497723657167530255230961556206142329698500467574267664758134794623102581003809882647112050962444455046226933901199313290377421445912602384702280795530266786123898012319403706505935113587855419733758206645578617911514148686240008417888112181651216789338898020671024225713024949602817653949472763237359261563048219963020306712376947896283949041083195348502214172950906587045852083744679828916506813986176259213477691088564616370016892188989264452706186877016413717703779278090550554489689775661490409734322499404821859950688551107990447402070095784438012955503297269118292402940687426718528659012594954378030974698859035353666060473010106278036820765664493778844958023578438302227458395322748212073111465128276581044311087767806796004451325473757674100065181856909496784371465639879925282981940387792732498495098795543696519195236287144624624352130338048565139561060332200543359027336932197862977802646860257735849104015953503266997122534082100576060088757200997301875416060782475380515690957090930830509309224702618287805683202543506736642759270535292712016271694721324375017017729923689923679615705952576226687433596702019882972788533087305094851934139210577227344416592741276616300634230822357521407616329971667112924498527260471778108685795787792215354357489663673408404581086398215404112396381124424411183316557502647349027238804103323161091058021863673615776028587527022429130165526331293277763511052649866645620547750624653389276144993647863841944364135831575627593139036609221077203665228229328422589813692969080627195765405688047751299306890319411855282359460811932716148500689749338626288093716906311165115940626850687149072368087950184739087784811384563356301291345785220435557922543547826611707108363619099899060350059553952515142559304195516047465691927825391343837945092707199143500530298943362628765409707673016483982160637407221422992246509830336132521642432626034616382406525735316122652301869758913290106699692166900154009399338098743991424354438896569087226404303806077739842779380756375770875819971277299336944394171115730990865728949793138497627307249625721266617377895629966270815667162203776208496417503937753166144530862983784336186378204108758948751523373778690119893936404119508379475938719212173721096200810462790668417023247481398568568789680854805029366428836839346935371925414360570097745934513022855337332111338827504215206285683744159413995556251982416997457372147677220106392152308178252110859987096593069486552511982859453381908302252592994383996827325999376404808240110575841197421712232786811086273053746866146544327945276326240360805881221394653024798402770762408444020237407097020255838110333779839536123956894006116198454192737842610418362001904336026478154027967092867057030797206006327216017940082759090868371524207509497926591566489714550653987518462987082759359946020716842263225961564390274708948116286056082483423712758517985213267923267767864365653387956555976506597189845427341537245415950184697321583837137441008967736293038734851697161869127332473689371876760087136239436064857700072069450554764379013420253049829606343519082244018128715227977739335486659615235616982321641930210272987482387996962306780541509679433711565645332177150191023359826072444297167074477184396107680197939679795978521902692300640033372496715967139873858726772016389281925745413967873537736746541916308430173087937822003897653008947816945775835436788695130596805037386589140594018745626918671542737011985156661359670898502161837012682953165921682183122480531747675298493553689760624443643987895458384472613203039729792180086182270944285056538340771760788558891833506511863568403402452272016386614014673440324148628969186744155385075998902915000735096659341065952377998774678906211947081654997203553842099101753722628034953282607444502062052098351906148812490303538546301617545833413051718993181887089270389280336976321414243065113595882558082395880876060059275807697306304526979047275155375987077320171861139052810156712834510815958624626745382723725943650866884514595642463189499935995300972794524366180397871702026631780830977194507419824001054994149643104058279721662722473983983982048808289126884003143542503713548643485584562532998399073455746805090418396613197023403456987896112938513980369156000506269475933117741931607498099243921328840501018463482654013130687576267504575769616588368172834293313717821812507176618193996839561018785365140615382681495555496893171426859575779568103820400424883065332047094432755526541423993730031503853653097597674362309494217343645990900816780575722361457179554397843785515589121813774544586595855995227187397354453740118590584160745585539761685696987474173778701186585628368769880023746180120511696473683395300867627276026282501946026376043764391972797830552263105690296097978301573557242562085412958554083167868651215542646776132594898321961994834355218981487445890667199572588132176361224059773744081513397166490644532032443526165453283406986893668805965114622983842428929160255743353325465721654878372654262313968728826807987036274155936941417173549162688107632255754367153702525129437484687524470262507016628641645855500030444094655406280491955803041992682074007696809529813744167048862702284781110616780606782817946873862514016086230990032286450649617937974996172449765055023406113264592256211122160621314100418953675820453804492054855326759333235932697938284290389308087256316943801141398349014523970614340767070939913940142417873460652487327632031554266988739458041541574441209909839799014084684030482972005243369849000284065842877743997487432434986350612275535703418745773878830687572056669289573516523011210742218656126833133274349305964927359053848284464554859790796178515811048819669577706412857482917649636209860392165574591765492575727737406475797278625743277982228446938648857018527598248744411463791258287600842546970621566037839008473212090026733209490396643401017973986778021956748573806140989442281825391116509282742296793969167552258054785725988430219628977864272735351470926185892092614782718012640659488837073200011504885625218194099423931776816812750878206842123156993902929324813754601324794145906689247676277441564735517772276493770736272418033997781441001852620946998475816094803246989240893375382208878310310774680233415880562199572737521913095984937996407680373037658686385160752471530581395465465222356957221761250119040781064502602645586442604032320391444401665385303069779716501041560059696202997955437443382514737597112015814877781113856789632812001412757182269591588395149284463113430396697190188844374191887350546129929189580652422378296261541089015491649647947010676353059308318652136408552457314318834047668408457215358329262666366512446443331766617805542292308427732350592307187620678452242779126606779265294665891173013060647193839596029243939312607941436451168995735497233410852356971899747330156113092936989604771005563797712421410923401043092878229665023775752116810937602583513347304766015287885740617040542532593681841478874597460948014265235726893248250682276575835024019126840587461635745320185200591054659336784333409629209492454013206216533042641167823657507764176287522642854283145241398339446590775892568633473935906873148346820372105474835861794985354281707939814953329298558003213872420247531419622182201570195025687271014909665729096368066464710105483891872121502273224407489396092335376667638787801016005481410034716779409859740299581063819841582091613459066932648697387919706943382107339359178442915375210426367786788702449859577357649458328877849029700655611180249011174253861210966241509486630335232091787813887321223798559709551986185280107632305371073189833495858235043063721095638606497258879595143181841374163911614365938684040842004928915828339162657593846337596634912692668340025544609782562098085051741939713063411549600982954947054169602837917315282760684704242560476747767323165916891761204042212855693160497854625873216033605170181932561309708029016998801054098416689363574953472447707052124848964944664110538899818975907974882169578075701453625217549722479608441683908302559671929664034665188428041932604053941859361748320546985294598772982258806204401543395131531993694148442810938937058724144110737631337622585863852023042260519500147378715378489505912337018392694369966214166288078921987775849582427590799251416458498746485911550435161404012340948543186793069805630155240236524339756158983839489577560822988839681728631598408768457813800701233518777203000130317116506976951366394356788464127950989806733561121662030168157233706713550557928383133722911666976331059041716244398548182488184880026075214786913089721587068486938872656032014889107165039016288844373450796039416131861368616841156595225920060447077798842574156079651913542506297167664692139088077276247559824869578668870678916648975856591147214656317813921724050059075070632936128106297076511102781209523735400298345830495796011532955686657942856204071915037949536729604217597527824123489253790023345779989401187458345935009163228529937426916932299209403176459680585579330977534672894089692859977397900663060359074676198837651980623335465161526470480964899983676001516061424503269947024171793081495062863609825934331152674740498053118966904447510552088298802971996351485959383636768750595123599725257522612178531873293143886657051247028491902304675961777062324513951619781614747670854334118616546070730142796983278348714641279158473613704895785012291155742712399161062177371310681637026230700158215411876645890138197716947138103624248022102419839993079366395471562862679274275346330779939137331491827876651934414611342775306195840853652804330850858915782134331365303146361537601714649022416014347449338476180028146604756222223421788052080013603757146307780997688160311330271573524162452419290516987747532717586163787514113851818279974056460291979139671811441777511202336140655799970655390794316529003877499480043888147262505253131622003398867740568175786760128212231148194663980513045374175961126798690049962852053242821917136442111810852101168229963589520943691082874820921801353894643593396940198229129866672451182113427211615154132400366477371808723249591164649001836632046503340616138199904455812086660178300286450368191708932072308532703753291894029533314823465368088864646243839378048497309496817789845435319342766342839278261165341967300844118105859201884204293334203512994385703934991742759605474118324302134785760499667491112897113589943419315843646432157703941827100605372909961733899848006686062517851634391074932266288597570027822870697994250246656799837209161418694686435532847616841588119147662979869201452347706016335461663652205467687558878503194002325039826550967890746368273547644860898177306327730722407463620633081798259341609881911964388506519078871431104802672047136970082561172861433603744587053950997088638239239030658526982246955991368300395623647208567057186805288899923960859388004638238837239285337821310246943407829780517850520280057644529130073902926770755148073060708634461590994747736887384616492404998389429682674442557581865382945837486383542320101187892503017479778871516366361519623253310983561468639243618152087374577501668819517091789178970370946881808482581315441207695319741509895517688779407503553780402248354088244251400354379381374795924523037965312727842433814385911185039706356798014072818810090982683321992830402524409698938568451651695156239943279175511591549210645472996926796887238721131784911082088869888549218306794410361704408994961827113872631958542618149676163939059188836793639874789625472316116630998562764457586573514108492035403141522175900748680508043253464364823540736338117210716849470788089619077132081952858560717414354441028903866292237510733092408621566856535481708453661395579393595252971635928186602154449107471768399479865650049446811274085420496069742056083958996867040618720643618853381342889217409534017299878486075991130188665049849587121020236473533512953584075685402365595097409702798895013413222512135995084212647689395370261559652338489203592387574565713082666154765625083789913182901899443292428848199507166274767672362514339996232505173981806471391271354632326382688527012866029393798793929478948317524132438659648755009486200699515872575732383710421983857237427083788112322670154902372523219707889160873813031237272110134357311827382391073056071271386987171146350957174265522234055473044740209202717790117838919212301610602624384508333392206043982156637778441857290342022788615652959891933800707188903119152030652586309614949601377993001618995995414333986403253155553587932553216544766620502276246023503906871879738447154378015135227973679362345031695734914060211590773008884723667226392833202376138591938713414390643741424329290394569825921560823928302554411438973473901885539288378092995774999314404468330600372914838637069857797714508180668695792342170663105086381779326688207085574825339537581320114172493854870117074102429800816356438517737846999058880400371512221413103082674411389319016367873283261000540637432658221622546576653892640787147405181288876723222620038635894454625829503350459029327576137605972180776602924498326779485872361691243541454830551147517871580575393635759042331037490601942703921328491966751263861409081239465710285988673654341585555457396304640903529618886119572162139556546565024975761678741392772466445512515686013341246455936978007298691216301220727089861295847170560667025712262038472074680451691529217641523602913995100775293381658902690520602453182914280323155603426818141099889404616191992350540726512357459690604252425180773682487991416015606999936774406150812958368835648411587460739505335367002004365746913776293862818912805706402427780273162239228285549661263204154659325304285178380855487357969953236707201228028176556197209721421869251426683921141515237469338724362135944130138858643744421036971185029828113318403502168396037768805783052725735489960164061315799909113766786238523597343700389813049391881315787310060259823565116843187201018197798818134865618426152354839623437920075022266873815312374394631856301504666069728949500748364796983197284267254222991766622157669187194286427853227426893556594242190183461790965413527776293664375580200912581763947812517546708047148379331483222950780244336009155596534802595699579363240022512331316898663492129357241180390104580865698466199883961140761970484163895001449306617144079139328769317935728247219030511264065282547746624253013271736780605064066414745038607104862084092700544081019628060044323001788387712877771092398674784504599751078867998431742561556650945324519511107062019627896112449397987047310616883905093631235333463248543752147221667565054760626892598633246279957935669396106186689876495289575291050191414519000540978937342406986019845743233632033489934335684814655146941489796935250799614109309767053411878895957385655931957617804939786191391871160987815327245407793245269318514848399969298515901913716780950548613508699385432710197157741482867349721686704520116461367739277854909714589390853320063254089220793311019512133256022999696162343485808165473205558430350744553230047409628058163885562349997332661300441327600453334008917437649300755762614674982589823684732975020607763757483728730856908016999129964183046436259721050874277633741435704771154694335657354065509820489209583411508274825626314778708513803677137873011613926760804143718367940361378757671487619747113062794334643931097730956001679598955285057571366964582735887630852626436275778702174304820841225501392773001717784871374881428928035398221467675137360741493220626563912518198986020191747232771527463500774263806614298041275599576852787894851542132506018528019552389079099848831444345691545124183591340463847067528245269943992966237130075222747801428844488308715213221409258138681524796426065026634961613663348861818614166718717299615041544704764673388062468047486528291150837465462502525828322228131129844186301401356830351617903866081083975615831837909972803930621721653530656012722403027317402085643954231102062545373928095335709558346606850634013892755125553983526803344724969082727770693460732119535712132293624542371049068191261375713534906725544425481704567788324024928556470453273895466540422504329081948752052757061430761333589576109670645191148419450075124658621402340247852653006893519932151618917100635430299812750033869923134613877231408509214747407326613339505623439871692854174014247329473827954233154621018603157909860874642372312391559740860430617544924832782611787278989271565847292445075599087833087809288416402360211753908931255458034051373936015687906257442128857973804994892867535189711856907894030082761552460697751929223307895739788910860372709571894922764815109856502654654631623007883614067755817484099625050026800647356730741501184282576746948898458304449068647007204449326131319019868759597666763066907340105993261100406186619153756972231335208259652995541192769960678489735243241957351473025751447951886517205685164099409577646152993194805798290915137776932476541629353300967168092514240679907457704613350403689551986201689314616106264734111243623580587627129956651755908861791566930109850172778090403452668402338387303787457166345472261313334633497218362565755469485330548662130064143998269095861397601903824809953685940048144228060774471320412070671925289310235668701997925949562487011063548995943850963509401408824970636092918832384058873385208966914882044931233414155955926908272279946867895286422199944572083955653551730526282009603898101433775267849153585884746444948117495426505749530646266197218969503035334278044240247830294106261307219964029302241947904962644518110910952003007229540241533740826441588618407692692272947305538573642232567820618183496464276294011827928673298354342978170205228801525868684969644799689317296448220941797921160011484463270102274910281463044022204905371132995799571559610291514226032002698288580731926002790131522466031161495859251848326943255147936401704631226540879548844106107892849182322739489353798117051464777203863142880491767266173550532570732738837133007751599786418441178908922650404641481513594785503545853384681744365798370350214276534300466683045097278282858908071048647319644679813319737615202099364492164972771701370656159287226845695664367510204110644740230211614641768321484901777134689275800947467599810146639230254106863708961704403683932495733055353045133061133786739167955779440485902870043367222150560945116401094817567357762884682981237857657084290474651737688139879463912217427631893017823658551030614457074854335793377142232060645939954743618595296075650836054966377358795238399912195823464141235926608934134279719832938153845187730035113122451034310435861396694208694225897261974261309352144649589553067736998333550822665149019478231799276264818321432295070095332429280485228558167724952762511930159834304241997789190732762236231517756998343017830605957519470734355478855135950256974359004236364964510795865319678802699964017726555506193964624640182084375581401405964774899282901194721088813360665760002812863754032228866047225058460883610902599773923560673672745930252517497805752607147910268702257304474664191493747936513014258069409223988901485464782499090306930487143990334022716212939644566257809625872162651526085680480016530030936613662625233304745819851827150622841772449563840157768523811273993765774136555761911230654666430207085711720866124948847200963752497222653007945011520849574054709928896975201118398759095936346483291959717235137578949800425777666482973864010405278388574504311046071355361812770096301320755237374546674106501149393601078848257992731619768054500363082749299826675151191156524310012426614466160693587182701322101714393048284499647760043502790915369857325722680662417146138347432709862064833476538655532044080192757655778373555410453264458058377681171513461794873162959899444453241010503464926967498020035861623346408790442058237504133107052123395690407972107508522993942081639723833501563192349830936584164097243710711113887121476585711047063145472100901888494884557512245318296834218846888399106058629948818285458324043636814376004526582510834106420524037420872981837390373478935541487183838700833795972258387232777448895826923213944962230158752393962491383608898174287023829073941553547481380571167062234145627752728754598539964279300082635173211761648359589089848651822794757826879540795125558724532229947702014728781529790149754989551083820051244822239309855292693370453326523774731745463109673451941937266465670512247249303718434088851805965165407231833268143563704038527461670094740497960484682218665688788614491607379671017656971247946133793239681266177556222508877327783833433056053533524134992386949388064294832645829998248569717782930199924947316463908622926599363429840068735796657330333562151819789423749005942636587110933739085632229939019098090531835189808706290477778143888793740567439873194999450787202721348851829749884371602329933667837820786587904724569254589034292144436916964407229944576801130195102383248647623661308943697511959440183406592233199455529992833454208946323357133565092638335805663804334572186960133936279229767832621638269793591347562559712351350377337507454171653535830352767456412302491062235545760950608018295060018820924665340840789705701310824582100288211742514474915424019695044312246751904799618037402687418394051396271667396697360843357821255928720330255810879145758964989897355825344145712507230386898002697094069654429852351677373875147848154531863420238450923886025483329158884733167493004743489183613601947014300725103543878517775549972342792544240043537985842318317375370287337822080534183706914951317164218644378896310910544248031750561630934155909308632723253657368803295091773391469110126168041216272188994541564443632839589135389606381053673117773982827004082951303506204835601378873414150558155694413539755190354850541340035121890210472079339721059989175404634926358780147372247690070874796483090483639307187099908091764815500521112202435327757038087113031221097928271964057135245949239602355067791440673046093030546445060208867835781550961413758180552493175000052790968529854506321263523106695393110403525970253615091321088220316147162512380277850194314157239747522289955427376024178243240094810558110446420423498199065616034135842032127522924840655405585007703713714506967975507596644730752014128448784670087591447913547107869827036957311943465636335137065450687689418548201701658697832248250374915774946653768943859353563231834970284057285819750083637982723541209744965336957037681157776373834798181582605424760092907490698579930089172190672098161151810487999336419386063551759521472068299137889478579946268686694144255198775873624358761524431393850420089554386264390966750191141928534459548738260624084900672340987234445190647442083751237604986250096228205459745720930914942343928360718656248513975383699694034614606803330926234099941376886343720191000032524784213916955070984528245310724842278070821916374805537820994176435693736692279683339525343497817100602413899356216417464472171638357391005820668644761818229259696093242052945990746801807671601769517733446880606266166949124692373570946727153158288340105062011898925663555324703139769054116741948043801409803181784261473902019053933108959488993307815495966509350932106896554982821264224614577628406314296196637051517047736551971114739379738063234729934702126131414285436406693043074528846903946210465699528465807616023045497174601313125948185016736842971974438900879086288380933179290771833625853308800125281389898090585982658451519025336092448453946081060861308351087730494486926389327973273446527385427068967881869985534315691994658874827775588463275117179313178535008830320623483902189212565292233020491488756453776865935061231585424894409336506478716533232758113751858565886823765824830352802266549561412846341432982800184999684645175944128811538895167639607539440974203409112146752081895987389289969735417983850977911353169497797899757376406844225780231819441338946153190194267007836414150900079631709625546074143773433831509580039302456663564953251462892809971489859522202949466919270355864583415158865325549118427962632906682706498229834872655235074830525496835542603384798451955919011768111533990331486752740124607967508161866101896590808375727996335667507776899789049894034945595419926263767864655769782787021385445638557487562403849970380630636830864980063456558970365334974205949107793153342884163866315964978580944940168228317428047763184320565188549370421851294016699258282589739250265362161332796943282265355700668767351529246588093404053079061666328492916472324150919718402074455551203758146969627205284156116423865858935625708313103768321528179615991258705486193728518696261561405748881570891117090426247349071928594586502474966285736398924733988290494891439218032804669644810518475579278617902982108159922217467399630414120568625543063517895973654096016308474796756147101421060802715501542333291069777586073716605528668794299099780698947925746654486002393179954089708842897908555182113265211218939757094613653654104713460548123735083648006766789777558099724644075178399800644856175468007117719337829023524418557304768825232048024518793646654157323135474493144685374045640997795580669474763641809282474972413004324191207915262209156363881909080763543566749524034166804938475886019133747004961950560723728655973125464712899367930031738360616772012930938746847177141944363911211435113697062893048767750223060056810355400417211401051102508497041559668999093697974975425635964905212421538684836790539586030506660982766247551833076776218501157003416692679789942685810773098386585577121626625187976702620600041608214390582483648128255157120333808677922052417052687967318007757786649550023463130297439491802917947085058521490008249269596295009017542685539844116757540689742879918921993689325386524098735141586809573019635870268390931784263356469102021744262806089805291463957334134052687898506409084821510457674890763610104241519661167714290720024689750767036674784299217511489225727893959760689836162313515292603444546923391506479996958730226605287428205456053867642292532965238702223695557758630873227980466576301008703377337899602639147176604180228440370501688284424413259005458432011015745211603831261307895175343978158112120913857583060686728288297210610850214104856916471698221397140280379544276866211833924162268504293912180339145152982848757724469062541689382024512353679529351992136123710561063829701168673365718553236759622882344631784944975233281104060915552513317079401490372255711438493501952276536565717853267513452776234906287485983416834033609161488796872701874605489170009157831733164997562645643354956724675554149733210570925202837270047109196722070859394458755532021530265384355889034414720445402877900466262948822872528823631491895784687642073647482170691901285898045702119606331226298785642689732503093989119520261866619708506979477455862198571804196631605451108695369268308157810105493219314320033992930025106179772244961142245602579712369669416245868198153280308593718825631907812373270839426514897197341087539962001720918924368100552506454523499582503547004793918007428119218143944725624000869168908478247486260363195843340652908646938312098565525036466495030998702325293527609900651098240228485026155067669666322329766260957402358549943991329436584763776324437172896588009539707252457401247705677725192262437004916343035135793252207219261262466083524346155204418168745852807145961611415878822934978973611315877777478963740169264683881767859507000280122730327098091745778711420219815051069889462206119139441315489303595507840962314057765082931164592547281238264341863990765765495716342491315110940190302882378763905199118708208467692818130641073615466695128783516490844306911717178712225243664107386970416054810342332994510985062239930104039125521804117349869353790588447269331430745328283220086947013397975740626646868695552557846814348311079816661092761665024132165318069468605460976092543842488585839841131796098653489830314396641210820513239413336202517147126810042315689278100420362663991494842337271724415035184582665356190863737309750314262613118133846925535209071242813297914393892971223544446686975927618512272266695947990084979294097561468012621247301376809177455496167636371253256361996222691104002798230245359759193235648033082105854279244912298156708699767019956245086530424456999558771629245270566420524500447607221816748283924380764858951513805156151597531919139867275456198784646246612259833986922042742126544219099093636026388009591135885665513328530371946596310799490572266971737693813834649444767458871309380829330749255665675691252328196301039333634054318962163019463107050818504719520820035813816090614574123609567836543188904246683312923564114877145132159953723878709621084048768161594977738849056555879254201446168956245882320154720134272072406566502861712839021952365291092462103989617948643498096669493603219815534146604565761567657523694100582986728244705009974611449012415719452274425204469845297795363021565333904690580849844641762461301090340940808632394629946658560566670310656044085732254860830630674344299839522489141980894146699596549349183885750361039126452530145657012090380631230997632769423840593968634427294406488329979569325175949547667814118210946849974422532915383504451108858107301997967643976704317982606178977444315167045364217371346536012048642471347129982958313555657689658038800777817118048258260418437635580561287825044204329005256951128088101340495630967691822525279104093354663895952434981492145086177816486737275892439423760778948056117636722995981082026808448307973610081894456786947253169170751788622577659025296843368180753780523324162216066778727340846138530590676120699510312802307408835544887693579270060144823379255839782805395131436964664790859358311150770114333179733165210957967093331898479671778341805299765610057019462946860217485543221943906636594055683293328209165027668978436440431779143624059876107117775341209185724783894957835812280139662073657024326109642063806282325895376200144825699529159295078146806596530205667530518367936434074680004209999756635914938655352112963844823296567111481059955285553494132876118191124253644106789732416853954742614493466905743935430503153859458373462315014703041135242052503416244633690138794432978774702786771136342986559719686589528624803634322890485047275834479906470983421987026441065895998308168561745478029893579823715897697996295483049602829869401137924322895423201998218047548121823875380541440485163751342647337557052238957956375194146391951958586076407799998843237407521483550182464658259283871057460127125878614599747578431338945422697275409259752052321914352824745817350385656396120826070210288634976351595063201398738388495361600783567699275607529401877133357575832546392946869187346460273330370635066808894031897382409493175654208113434274316864371572823951600138664544950196394458775211598338062227065858291672915916003373262460434120565315408217469969437211156001154090976769254426119430351767966448526915734113596086030334534037905626299357230314567876880354301373841091625533451282184437071389634587995928446859562443511412879815205424701713200474944115245058441717843126383813923988875026094441317626995758332587261069315787833697975968472324383202050091302021217151409907928245835495434154963913014105044181332198784163033347714788887876309286099826295363581748616121472909106664018743681032701122064582895793495636069982246646988150489986952392289471570405272551652175099111466274858633212506969308461186303348596589277349152667445311444714251799112349458611694208649589628962946074656525961250754255666695218171863440272024784637238210084434655492702465896870762120968469042435807590556462277532888642633562983054492380721747820531355330755752099374987815690623949679301568923994858290478717271382757090115560860140484213593380107909414838724520612211977076492874464926734349114244507703656936015949830560472350727260669517089677707045935193336874603978648862399930943527870874088255998517811128681174878844886601896683562644487022867600326142143057615770061515197565795242198327333854195699885312553776668411164772152703874886848687595950549741973832717982463027822138394653429238617375102388916691956508536039664850467836557619014463571972992782102217209972998454244223417657591448016836148479783213553497047065093656489159724237358735089123995159015363480410095117901505199661580301881145026454536904741635486654709350745461869895781070153777193010940028836519443807947488710774012941831918142865320721410835336453094556431593128928566863900274882964110119913685065440719236452898170152396436486479989042312607981182461544089578979832790769293321535841590523973670211378706534189515216436549448389454628389529366829603243271823145038750416583234914798365853752905662056120254903430943391611878043318178852085299193825229429058124620627081756538041392645546219626821123974645409228309252750136045147613793194490654335153196348667008625483398262900125127721874139154591174185289503497706693369970795734662372768641869908423139136882349252361995578467525351992524537667017295690560233483463179555039494917257953670699575299503401351993395276408952131546807422474617996876128730021461681568767365770037715034695934481611082101638187048734799573718020025006032990606800031575059814476864014273130804718435349919389910530302869280235975101924862688110258373638156416011354260750846750510733582427111203623978034877620130483636382713909463187599097827300639040978441687673667893600421963144650520738648277311240553347747838323803923146229332916825669704567021409755796146296909972608688452505464504137212778407971006111180830841081365852790509194739399315669064067032706387013090994577949831741027362566580684689653095167193473727998010869258707744330935317872780897022338027575978335821758473560755431515533383489244118401870391069034076423756033132860735411861926223436970341547590111396304882557982035374196973157336040354393080688148545051524512164714542659191469481995513101946969759968782387335661674664265459175019462569969651177926026186053904090303787217254422634297285763393916796992181114130718776753637299932162998915756661004942032466835883817290309325575406956107595755260773498674433869747805694885002678736635458936094419218785298273346777982143190867810070956605872732700196644841966819741107830448531220983296674968825161901322238960455501547777100742136404775160812525419575065193663221503707064611091875075737282199920850938622239552519644704411794868046825144543347821824850945545178995427619086964049231241866068095898483492738106611545914661575021715970781402163311317429640534536062879571727831378169214000702604937358997866167835880506285295079552480018295631258750709868935247691526895445717702176662690134414859365968783698869063743438672342952127047251985258787402519794308305619206687512167038767869105967092268147679379933275053934548118412220826807386967505562178083801338856820947153734164918591653381479445834084767484559107094758092953430540226237328834431183560680668677728036824845584861648680060502549193188472773985941023313833371702617239423829728597730528921179785576530247463327811419093067187882125521873256201518169106033030247922932680208934856386835102571672211129726730162657205377050180407621951496965453862033200255767992298014234775917948365945742777935188790076506962692392999792447725150630750678037118810696738210784273727761756579910933762544573346619278816820456788871996503745935673870907667999311663022793215281509609130727307115675074338326901996138290243106789348853490096494503227092248746702623698611709330347686330866186882391452696225277837961825572466543973333443046067492836051460819381889073035279721021551416802064319864592763594185781280192149266228593135142417647407840470185323446747610987460618239871408088529755724117328056810416186624281847006612862013013200802454284695591002368016053716621811119300852719720948217235455272916596258255265708743633724802036889228807633303200500959184029707122516169383336356783671895908910970437389524199980607435671625158996437957977580137473307489134932126469717592579610753054204580905870994429603202158934852522920467630070848252669947334822534495952620476583719684886799102642735753903148750747845197060369284842360230664707446546210129981244205852808089341231100906165112829613121985673435160188689463672281082060530388081495881537465704058843429751983888200778943551721492103178643179098170848542976561859215114830712370481762449842116823934895576320487659024275481275056184065633522809168576682982359089993395330241204467751986858265747463886325829376173352422092796617783240577139697605126275138524791047405879807137636447811540132741937216439047842429411904380169841527998347097557918913740688484744399736997334885524808694957719078440949439201249336745793118863959205621582738861500886763530499325711195469153121577891392381045962413627399336721978091043589666072335369202558707792652502031495298118975823578997423202587912134754249469191125580647481010178789894388623166241667193703664101222599318101195540905405940314631197574346125152114871166031678532858767524069371211606584791324094273231738620370492468614009257192961985596431711768699105480505845887157513844269336125588169373134932569870215229093703402101650772969849239263288927919600168987709150796409954738963575832357272059873261016226733017159469025723816579395567742331284245311977240369856771816031307721385247264940309998983729764914032253040406731594468892754072552563674007770822217382873270107206171041032230119878853184433376713395666401617866319878721726320396146572953887227003194778493817485985313595166169909413345403174757646075889341575502420502505528165804640263931706839566459484762165510071205267486039456732102547980004364885781530171514204663224292074509524782905725493010238084001678807840565358187303896096743496533492902599847409856074817581276083314919925617693499041664816543022100251695455086583550716331251731016589387871812028068404622468259729488422928615662394353423076916579838681733278270611741839511660266653390566228353866966607534718867820020516441878304343796734398085710202796973539462989240887263013717594793784234382973677814441763965554738036252309703322109208906648327466050359705032752137476463934286979497924195524682351889213143849951437292987233002160506989040026992609994733061228092251228827010667102377535742993512333547967999048670072783778135610907414841828154223196899196019977337944453368668645953238671611300045236971009093506061602621283307503220961983332776756174986467936809647668705769236060064385923639399912706771226958646723686483755700974726419236854593598139546173193540146311464859213996170604754489549654188586658854191679141152641182360298800640598742143517175680365031904843028110002507428750920780137765235626152000700950581380446900594666611617386784514280988263089711615179045523905503366379086431743427634738884829842991251560760724724835973311643190662831595105309134062730281599609271116625790801729748751495325784064955586107548323009930884963256033505097654214861367798669894429829731541902256866677144106682757068741324648819157326901706586642765834937843786746571094796937126903826244744305848779512102709514428801272600499533575909053787823121074219163805657276986951328975400798214032727591114189199405504980831378489084043161175768823017854532692391034810194971060919467917666027503185207848098861405711174428005860992107374146243314906846632869210736334341369114262000471354194546643726166808318871351314431259958000540826419901521246088500933325002285936213339724619442485739421749840681960624078064100538325902085220352419915477606128751580053299938643603169798722948184494976182768918794408843857480592427612867732198632400977994756981007445020493174427490651299222582089613659118872102881582960298220391948202118477403625227479788141888966484474160238337771973093185707580571038343039225916758122125715693848970434233627059855194418464975830250727473199004151954005157350541364084212594332584348726632751859402007165370234142379449242671243405429398254036750228292048469049402659971884225553585908342049347529233816777867297416734216268106685253030102941580517613495485088785991008013330653350065401471398534931837188027864659997836889999723061462980918103494221716573905288013697149155083238309132399481457961654351853354943290431942188698954362056856148442813613750356950699929293375538044368765357729933293413088087955611000164963202167831407745991224946128592730299857235289774935592121753837222114705806736131950864895515841584303437176740563707752511731385864079005921688079478709767677079422091036325668232770572782577715514103676213231540925382033241429297328372132051184429120614970420006108429096032219625337519724395580741139961620304908064919814318941687188331132148545588806821099032405429857171331234958547280829563792302168013151546761716418016361013254484595581548464519518977608034729391374574095367639540816116951153048219463936692737122033501004862518297314517425163664230995209132788538313482505573238982919841136432129571811339650486176355284121813346849632559729444901152129398317168823242244280722214750625881275376909583904884792198985541658074331293573004399831190257943737498399948747662522177156287999490735326644987814915856078458589116959151536340369702958398906597842922708311427496342757929463522303295293669438487846851873204426510174353978247155289764762129490256522602552304833172013251219910623954580134612149786401556668964048317468899841122034172624575472395038726633848147222044799019942890204289108903110783767076705833967537964301740151375447889576232760490075890053196197644217108155325316436673751890536844983004803729044908880885191376973990561233089486839508049213142924481386317657849909024527607022913113878340064700281791250981944343542577554835189235638046702473935692210565006392669522007941521424521967931817522279542227368967607093752127214421865626294473213081050207209635836042671694704464465267419160159576491122103040789202291117515678107740340270851958860629255006356675296992959976191319377221347189834955369396681905807058552723535044017544574857030896766335569214143202888123610705152812650637787994089034134406100975531848357383985367266010978311579414610455936648226940240286895751645164432846452331688052199427826257362581814490515789237712235470679926666105176577428927363273130619501877461040905140896235599450385394313395412636752967438734967964744088567397143532997995206292808090707439548452184211313843695517661826680297363973447132145560011826495485995125049460208931052203056436271280350846906741630534357700867479145908179578128743740093086111877402167576686688037747646521152985129337475940338507723928752674413930720722055632034203176958742370100288156812673688671776125651024339540297273254229657597102643064702393274438982275572068094323472452176863365297742670818857989728186072323880501360662643843820819870574654689949805498782547708436131765676423034522857326940520285302737841604900479643803608908454952084994182185941929821380523885476731953268613440515158568322649876363377876899500789108262357999805653497191858044084103312776913968131785014541462192727383500724749819156112651655877425278296310317937543658144650512403006208837394981500470297535118922044398691175193226576841586863868384982059185560555798431333763059944255407897227436890264452992756572355924583283403848636854926665065419149518299377150721944329615197937830639578962070564844884939535572371819782339458576381709560865422239261110064770598413386369075467766832465639554058292975352133883927013885023774939016908236166180682310492809359429554886161439028309154539255541696200509020074243052679812701865131470306449370843218322188810709165614810953245941048572182162865282348603620486083849475023071532824225503518102719899695969735054429233691892662123296849254142519161509379398716627253754388205569477401192502624358745839006516673361453186552533147622378092942826134592984688588819502067730508940052112678831996023049400349839976435069261219199802810453678496498896405380858481969692539125860604064274046110878337279970160226553756117913595665298116300364086672157277073708090932980174629216392841876504384771589254618207996488104627388192549826785933097761792399299501479582467790793182756061287541063605969156343108242227930395624480001563050912263194782636135987936136592578325322955811582595483510497539536586009079168169216268326861371687136484774427116184152535703980335595322124740192455108398943558421164694392020304875041964138061893078031664451089840507491628980666127746814897165646173684382239307016459322147786890692771806299541673383342917958209213072219535759199240644577184665795898127510331765393843765607741999110988244720628724868512644269617604838597611745505011639412493798194646815621018711808196167272989702196705845587492919060667896210307720094567933935413150546952600839786914501915085572149768941461294715807367110405024392497591654926429757317294882265399950621246724557175484529367681944866671967681730637807393502519255778030150799953557054582481382332268416513223442856062342753877614807383978704858988700572813192896141126801234953362368239483106800449091659561660484780279230426887243286383689295674908371130831028680628200717874154918318425805600705721553442456497068942358160810043103866546429989391015316719851649638687990356255596128405395357253141634093165787961984196000995899217035121493983008374852644319992889957329357101672850855862848846782354144474303285072121994521805229199266729715985609199629254911611879243332142272553448995624430083538252972048698605971623088019716601122664577974883228006737424994171491675229103439475645410862314473446456186492686085187509131997987761061967081565517214792775102284160934369923774589189216706556766740564566599732181582931559400916700774438610721115251635551107838202405800859781843148741540107540920129528438092988278064269745465578043476570877816928029704594848677910849067461616771800787978388985943269804556457651196297098180989658829674873639416838259980654922482627483173813950741825241122159046894151304745753007843374233687061039735013719800047253349276172654012707954983370730302969773724884979383609105012730607570736683173261900412851349425667372920469740166769696400986808855952302124680805669326922897793286859009572383631803483705272733467337864770612137064446741463399759594288160220039402804944376838544240561338000187124609375089534669030473882760879462107693275544973507173584724270586835923558885378038210832791410970788120497858828145472995151989335600709291839620551329923953839492944703082551442993346608670671882518415547761293667593232319393980495202450931282740986881981656482087907973988077900971717983174588429653011706006752411970009953745298482268872348124246647932706423643798365483770420681822815063507865423709733476701039795327744421270175643779727204086100116131981306221712941764774212537444505302048617128282739580639709588246400318271453249015786184427097532844285532269191516706627882715547309279408501138715613231087432528925450497875009002297609818578530590590176576952013675213836572229518498173361176671481643323069067495077256752260040368982411819437098394402735800139718457334452141602149106952955463834508485902427679789758576620509919869843789161912724496321660700569658821561253126918716745775096709117230543539083412590840678272275051531313071215642326388290250547386940812212636732016439061062517383963807263940080492722095717959249687996005147861527996364709567194558501085349793078327707394193578745177611161478015548093408994975425008798785667512389274180386094019855025736994747167061827803791920741026644414748815591526384085057274853771859489115117140458050398455089609190318621978832824015938062068656884736209511668027808981640002496158392083574569472923578243848586583798552841143666360089538011617996917888732194392089878616039908892291443207559334296390234165154734062299187545265626411160885747610285942548506022414692398905998384000773216716652912676310394707201864747098670277891258741488969934722905705449055163083522271163303406220114776605350651544841113436873180704753051098632828386682605971920102744371052070858424070406696601032542749941132832199101252281886147906141310462892870974097879882058906616906745485188156076937429527033285404019263677264161502237968575128698112786620979066552769957329521835652656009962982685197917663573929817693900076943080698227380323016459129062524996517159240986193663735726335648632864019610140464594334929855220829633098245662319174514195393894453250144869235542505622802660629057828895095449770281474720914984303627131875335663784494834239231082899265628411990172419843881838825803156663168234687189059091951753768502547302873158665546994899310627109990075971501712538278679687933595673172883354747449013960519970732752159150407216248403981129642332985601080411300748721236996733246611929432741655472363333936231131843227288360972689062474312296679330864196392367818569881762034674059088803454700346939735251003445327308752187914152018662002473309643262276280668755125152085050399975167345702982195982466977890415161913327456341969027884471345640658956199897319929371283701286033405445670660342513852942278428644965696865510204585435505707632729997977578157457638912973664002189408653720609823941296259704061616613062245824459563305477814024002111826875178306148458625824828751360410722387340272112520580982627285921044236096398044484080360751383321943190789189000920871435497052865993839860337996137218738767371405469993359477550817018629156285288913220231414391676466540241538400872374973692739223339457902330003067938968577896616874906473165590683362568072143762244471659486252174561656352966777472125299524804212331249951081343691502980386994145490942870291801877278630459862946807193574368623350646443249449060115464387887037141407612864664434847135402148750751558581884520000755915663117248890578931959213891729904147080356589110228871911136982747815985640779969857403821461545023060871164050206507788434973981905742255518856953301960214215284047465303198253843856552607597083470408594929778547000652577387864293386365709184629577213115266689613031424865716469214400513328444289748133540164293646354170671904321883901599902876423447423983872649532415017330049719311848146161852220032879039506799828706293452355925335945989014810497993494197842743969723000380380259498571191192829009816118587479902598643129172124662794441251178833369328620824282419686690059277342497254864006238482200085415756042811388787562923565081896101231974146640632059991047136800360111732747637774913771535294692136668645186624435331858007601036185208665271120038210445088417299321007056934076605229925539588450497486541920532461065332190389844868444366194350570869276274758679668272810414294973132325253409553279055586475261468194076353068103655166284023175806137911768849937805261338894719651985957776566921429464420473276156402819787038495946212674258950356031163368248536107311494726056816337000391262343493667715077699587432873431686870764159573798541507703968191803924279924091359139234049520968165155188293247270072467263651526764069444548188412014336162935452504453961000442449554256102099769791853820481195318206325117097780946176376837959419579456199974407477278004293787517878623263193196615256667234996747864265974146650106273656827810698570648421905874797053570577104119196885792307690191855844348393966758833679051669757464484071731298912038240809395343868027498510806178751053966192864418866025373187119738644973810354279790235006746141665199264802369269841050553784551678895345259853049787875050984180917325255037684489057567065239931480178430649966648701830838456606516108341177657822157858021959303636754758997820581365080872123871213503630812102543859508628682342991374419866958103763503299274083981571991841152833284488350010168898219258041682013717377095681593881369238045935983243856626737289380648057344502369178959110286967254882709525841114749969807647429494662679204731798603451179429838107087157739629584490192941890424585888420044454332986415143596614874791021376681654108795052961929656287361238744283970757938671036024369367737733536035631045187651052832375579830726633675006684935218754591375435286442222289325436541533988638686477134207960572272968504837327559867565745195897537183194233852240016906269340121411311448695347971447931338199677239847005029776642118232219340427332113090693150993494162565358768591552753351156051997211988487271157026942101929845918594141279028621819084581512270905919714498475257709854831018938563935472735249942425193568911244159317636784463583069775067935859611189157600853935213406606836796205431095370533341950846682626160660294307804063248406037359262516133381944666583001997649680774439506742754443764850565555038887087065532772121168262283940401307411686291275202973849772869890577977944744640649232351584209177417508681701350618124351872713882867717942275638656362982004758391294643397472613847166680781107012762091853741618481182394608128157545613035350828113309751278118238723431164996218107872805345436312186591838147353948217525082836597103414880168788774140202551240334113203534897737300824019734981078957280343313385937963975644189576861536007247374978304167505799961618897937815655626520529419676632470146030077309550301917621289341494420856558205781150084647850400679547495866146463527519314336128724140823186761018194460133707604774176708924533363047310290783010746600904384553271335118028386149928227247409056233920103699525350021379140025755674199219116525361072427696093611138305286923035978686232438156814521609547066596495069557088855077016658488567452499562472076486392009647088042433628852187247447157817892290757804430411922685803860425951256483409944898498534766679254092624123630340727200012507653141430086179059417858305964473394600754873195198512431290787282421717188860779928778553259536272885084894257691555728473589083711249683711680148518485300348207048923017386268804027560863233957745026406318706963876174109641165286413431337243606031979525915472989449512467897991364780333067583210193331973622934684084023084481027167152998898851016125148534395839603690030277386069211574098054856695748185162720358771167260765541840980730183127228132434569741231805131150090886550984474658187116835336372631691038884860946300531461651768484277395419729439239414038300748780759236435406327967338084594605524925858098469019464146235848091215559213365660882861481856295729890273953871960473685882029533875873942221022932864835948176606827382772190086188226868112067414452322820264806217703050023865493535132350878821068254888784002871537550338858001780866321814288997608796397734454313800124514332437163496518696271762901754506557109849525309906748423347659123410745470927936365283142057626827542061096410052327929511180474381249487979659809181931321971890237957145191281524071128588961670772756784462753033735837244744106051632548643500523496515571551370686351850520335105367912058041153499550214851995147827416187955019377615816078090922487550914252426159794588037009158499106910860689987933357565508959020259726575870748485465526853461901354113516137680543941869850503366041779350934825812886434932387437853893698994629846448099962119847136957822672550357566988985554429895245693048741929445262211014447547143330739669673083220770783969173448497259400513817928244559985202409644566958077800236944416734066135434814143083189570191097934933363646822695877426521139216168593429193609889540255746938781970342597896006502214730040595875300020220646247809172866020416824003580142989986164627945780849998798805221897895958801054280269753164989724107422993001730447903020647361510319688989205465711632854581192723353880461106264679211167764773924689355419888008424343673843828794273072651945291875995414491629292082240590546801219503765253920474167973070629560131956225751394720415359185017406032811847142753318882051603522535599300828950587706246746560111512435557204660213385158989937666072076097849137704942981491183572260255799104726754015453444809442616025919224645573038214692190197800256548181739380790070519172910659695317869441120062461514757228663625598164564507561173337575947781875443719262600038796770963410036848589835048732671525904505793261880757990602127297340292251318857118209361815392305103386520831924063091411107303964981488542876529850336761988081472022109428803337085492863187938659367132922254917728416597994121360646783062131667457816741984406667565602907858922580486954077903873467539620584635368575469925730632838197909557880961147038847391282055936699316809213687145784069845188617943739486779249046382139031245908966196415556711444582347287502742016701589737623648746871872548645611462930319922807099844112532765601179664515439950852801842592620404121692824882031759161370484783994963115410466655812372205985301606183089748276659562941433298985022450457437962023843180148367570336630574854663215075313647834792360966494707067503124440591143115247493080910462617582374988297644662576924904315615773309050567238679378780206352410074847204768218937857213944525689541417504197156950197115725864843969976237328472856526729424874458963619691139131745881425504120642299984118035508258138741923665233765552192079422712622681453700538189368236813131059949591096421909847452245374888986255232854745698068183147548541484513139861386796296128607633551785950793929538208121138651161446418501530970478439882381036015559145206152941336135117096659243921314866153520691475112135129876903036180228071651304354182802726241006563790973997137789255316547711439639109552347128938120579009034437880211546494074951205527497943840188929026104118129094927984734697980353576897975537499154389549093194913462473366438286245901763961024248289317482877639404959140728387734190282426074183730888715150979774973077653225471673786467794308568133146562109612640012275081560675941427758897432535086948262760329764221125417842582965978506289451616199313192330426540944854001929170681155307349347057623040644450007751717123857700123510953252354093986088898721350567506463834215962934513915132313932904061060429892664775398627982533294929514594413938271178607464112296661275290886882751360688315286285395702056490554472258546324823231921565832502786769801593917740472151209514919343008586725780694162310871027072896563383791874173101900483516616435131615599924464345231517166911228759243757716928983104577230331321565003489952987964874675785489330875270373222345474411734473574478808578207705473785027605475665884548656964466045755248323070576061640035437862164648659562389757422436558532436496364763440392872447054366131073456256026798401084149674525301472897294942737209608870753740121871447794537807945984081167051107533696859081021169924183437573095018411249760543680917725428610705199239416299800802612799821362369460189777472255260081957200431616209322598877165642026266173489462017440296323364442539622905330457678684358567699710488291084792390517142585722421296268533908430931954016005258408034413608058200857478361476173202206268897398896542985187711090969967059277298515162667597336833749232455027015271891548256205619743006724258383687498089838769973259474634174746205721101340280364426028223660271867386741536324808967499685433765156181002101179527207108987234854527368010434499164980442279032156353315993269840056702112640519358006573289149335431096765390354454848457831003923277747545653952037724107335685122605386012506568551397711410310845452736554737401357924236526859848381400569529017572134691641042409483679771787419422573706382500534657389766630634848533477876467282804736198789911419340758364596219222699860171950598308667233896030811790979018862905100558502995173521768038511836484880883572220195774556159514466006767321390540634749975198654158898127739141255618653094114369160317225786295386568287576234095079701925341796898558904367121929526203210821664904070958399283048488433835806561400743987093101669805306657524812658519458665727793422066566796767226957866169940297488168161557396598450292577483100786132412753838652175085840735524677349823020258348636012244751961350351947589117268003594579410797354473073867843223988095676704891836793574096409897309093774922637837918080368759443943039221499849192436572158699309599068267971427701592779690087772106337085129445477776305110353436864383468304069941057082808737528409577031048838308851529976647526922209778879766322679816241329685324478019707481183967436660083512159590337437613713451585426180772339045275878430073988367257977401491677598921196235702730632485310065576119532554142818110991962166208425723880055695516159443931810501181040597244064817073280269664511746802889975654951089783860799044776405860212562520437220725952639386740902579773619497082330630964978240219983928238885417952365302855838132543426283818379351072926383363423971475900661655142538891627458063741492742908345542924724400190725717203626532233686973026034836553138761670421227230178729237854233840122446509264712061868634719618819606088813639719753406854665654772499526442219277319033686306272856376725869649818986223320344881494120496025684061936474027584658627935157194521823714901834508054127056567412453381182065989567462678208798632937916571610364595899117213098026114780822291950037698208550677146630738518313481371524093437485629250853913374909905035699651967307635348387868862661994513379425490924104832137221759321731069294364217342468709698471891455912323300522031815589252788052184463868132018492924425479280210329421225137780246434500754233064935177809220792350701661151045033061151481470618256669227816911929977201998377039680944189833399381259345654941929141030376475543144972809146986532779950235343071148007518128763212354241543000726424571744442038788202314380946582358833567970232019674153629988232015424112568955955433357812716479680195878927185660750859686085402550127420536620603114687645356155086412394186320742687918708055048991423151851559116659376385407301225432901818597043847967824792380092353985625716880167658316771649912051975923718329991582329843862449195193748252362640254810910884028188205238427986242659939401028875598050922419760657406551457485561231945319687356590183459138065926999583017717469796745201382904741067539734682293383955041496552626567068663907326798698146055273960077754323325103475393311463596496465694197022297844074163866772885760524126670678945338545420278485014704467789313706986002380760569411357027061683105224650135506237683238704745570665342717241795702440296348391516749729815327831680133721934684670538636016310064159667559320465784698671154341739872585431178614274914220686104475914890937604968762901256933693299001378010683152841816636238170937338168980065215842111225124078464998798859703388396596727907287885357439349354127658235811404487732420185705087724456267632421229293597701048925400618210562509971235263493483022177048780503336176127846798869665110859077025275074707132931652272876062778159619936694106455284669103308448249381885414042262333272893016908358449534938560051799475673851243570040890061000706049023884686487829980949195522935945788163249241965916408896755368513629649010835915241802190072853850796665325336556721977613361783807326442254797638367942449295746367559698271728956594739887435808806748647217386738103727099273762887219470890435339458815729608251154524350132502122155284879713023890822994680347013257425396616422993067061188373807755557299134117678664580151605437086863930271469046886767248364518112270993942191383477091521021391661227510977586592282152047794663206386745873654299936808902562048338408082984259583748333320248399230831408107981055001653569731965812524076885835430497510863989737164272577824135581360840667431887929197040967244487550927478079146390959309605594704761010625519552625667244686250744900140385237460747586339744361998071416627098974955290145360459269097612199738284472479710040837843661857081229026062174675493701427411001893562994343703985872833501512336860867281849471956210424149494237802913732110082999623321567248624427677866188872500071744608403902528319749675542227998171276521630585519353733800489964835031638429306708286242729937321703604114584833443058529609875094666189319616948429373912126285223321329766860625173457438395588454832444094523719010487921103202180277773125838669680099690216926297066187465077816740417826473744232546399015277202227110370131254637269045274354605952863462189056385869372471292277569072678434281376681024644026075665512426737446213279374003186253210846365048084906194628505268874463044350963193670435730202240638007937743095266438866069501648696279646565080662660460467636543085796664177638003856562636830993702816455519065980255471666837333531565116062311839816365918467843622456528905600038016103856579963536611510637028520877994144710160566426618410726556559455656941978899007609656758093505645154756010079254156448669963127015407032442503713835567235325017592386844117055056777814506177564602970039928400105350810097148680085117092459191447340847653940694008060137895212615472959431925365199244899807340992580288740407997811488992553088487108121594111683255718787741733130907381937473499332822583138356353326034591132830761029377674722042569039638877940469188830544768404277179067079476142152445182074631986737762393094133285729055154191828351437566926276847737446561077643867878667878415090621135338212258550914294972517004217270243138298924462632630615200336787717413657491535775199582403953350364773905128675277255908870694572849469836539481355683338028108633213121220168144543101951108749072281555852914841983335290907106031821493800969070323334450927534825752001349587688879603607793478136314838038609618864507109677185116171076309342677029548333569278152192811699635870164108941668143164245410002793766102945143389964990946253276664139561064877602120170496383272386465285375197525049188545864944657547663840457272516767169612428659233639850608987344412397955857568153697920906171364018767345950611462704392164027746079324565617684571930823728650521316999102797582445908620721077143214480846923305185407457552843472805093340081152070259620453180718247805201991607665262124720528279730470263793328850815026049307562262806402671762093398363499380641377402033841966936067721296183661894072830136057969811434801571009405513602827347598754091258353166245755685239293652318213782912891834955316422238114700440810153339898347909062811708430967229381009173237207216179765747173123326719409095504001846871112583816251054500650891330949612529922602013465939688238736609064155819073595127270815023668227034886220531825803669841674800144780921794241887858797080314175461239352639725991304544164299307793743467868046746914534670672185464715120099931410623600730254208806441770316036134063973388111051448644051351112287230442836364864646166218142420367376500910491144693042258151905666903125938505490708828844139373256856071472918142858571476988779297640963302691681762202264539181405172694283752289534106778906344575174260055377215497885825964788863286005329005943010995558022255920167498378833073864776537524809300675786125043500730879545654921559127236967711782557312243137776293202242303954074917639353174577607548669448706690816288268504982791577857606808730514407702450099953461009318468672704391215504163946644446227935131701073972965301521839464798094103221068338772755957149083223803322740717178835341345435726015382768072362838132355442126191312348415057542602653842949908438489214161213053476203897129045504934799417997632893771687969575231511721605280477764260311822585554016086153437984767957774636266610682450371049494251875829197983769494716485206155369589093466550980594706400907787458803079772346604700889974811436432980692233043867166910859076259842833050887429568576942307076314596544710013909268770699525403381146652989121042112999310948497727998399818376482283420182784855963578848513291327469398533761342805356681360538315566998900183563378384000539241022111377734483335039211314548872400726610377737441408431105678871492330086998571918418398018467539471050488454792852358596221559750443376254575292833767157529312808964982558569079502653881529110793536474329704362031464422323123441796847299135823996285780514886470855124427864483096142158229098509376526109172724746906178447081994834834119227500176234478088937302910464229789770340632608521350486390435088372548654799007128129394419675074365151925873937154340469085177521882160839146234438560493826184239417678616849813986507114874072036568380159094690543556616684733512172646209821081279806167781671781038082669370283334108559927041960762036060570149408118858351225812075039520772830933976116399835842334738120366754407448215097401672919146554178567988845259831799382315995932726700395748241431050427500443870214449678875844655177521377262153672699460719967693111610252846503165830320312834933317469894475077866628253554418235070785877575028971481805953263960065144395108756536198235175789799746986694081009335991689827681567152505528529284123020731260515152186872523020294634364717689791979083249504325803299143728564093119220708603271515513465007295433638371457881478364885967210443753843191394133186856731166480539438281831889044161910663286011007679494855096804528380802208903002307569196079791743752627503607407122234875817659905943569862126450900208003396774353838952765855552280918298056147484269178686718548867403249739302791455624445885700034987115192035604555242518015034988554039369551900913632979215423516004468669132216439540322005952573350346180450291891913940401882125176148031129427880159309353929185719944500613049937324198725688604041696973595867213822286285753604304975138629217476542127909172368194485490395643013599808931375493174438566359781411462915243075563962917572371944447949594944081997185747855424127184338064004375831446488460845723905620274213558844341362321875480352159732836739765663793093175707749073361993561809331190150932348999095053317354108883698484098797937569483182390824261738615798616012916108458092251073272696863945989064950673973257588223616388288448882427974360312970357161476881980762491224193833956908218580379217946580244392659980335426837005716063128139416595176925519305388354337089897123900217317800495999929532447674219912600471651433233185442041270103459510545290692240732979330702107127210517002579998993752781021786332485164123628672473585507655595044710876402893759526488999627776723159239254699908229017393947567959562972577380785625351866541912374887936056143394433861207558051774289820938220118760004643053969851458653858320730350918048965772861872321801949372140778486599459137800832161707829148851498546279783009990730663887869877561615106376337123670373752906844843582594045372859011230881372385664842760372840267295261266854638494693165365107689941475532668341419185693613579000270781390333278949712617891335031168299866131309831607099312500028098049774651028336743258366780143513264550636266444016941064532469034827453337857909212434635704856948726828322047767976933505361484240766297908518561011155585136130337696650714789233456814594834332503090833480188082440365302733275519652968501161947589622770562806771980590667517347795863717172625212644567164447482088194769134322262277403342536766324674394238409341523990733132733679030534022029163951637461547382062357312213568834739395657873691141441821805977499593144779039215658914706266987070345184166358506331222171671313670865029124653435598755566520677971611430084228969162146723674754047211035846690465473816835250505018913984865224331785326295396997419760732469263388704847393371464593393849634639623084448617264170427022947082561740335681890193346166794714005780427989722586044334444775853823815454402136600205707684291675141080027138597570501358983039146192220060685729595962439052990112062221145130226684127386697233918614027482015154607011669210757670598424445621759022606925970964898176814475045737464376021861371098223842419828200227411638692301145896021827478431336319400450720179656310781383265919008492812462719586816174854176910858230335403387782873386512872241922550936033189469794145437222916270941516281499399710486738199130282254087110953063606746943652862455873441431203571830467588058399943733650002787822932099341818018132199523399252916665094916404344544555792237544632301713610928932557804025783674156690505324860502437444357211073229460722413132044342854868834614034341462269915940932832540020510767108482708293232550645423701111208190279315229549059932242995245986117979049626003299332628703255885237433603543082186424602013613412091061813983907118152717437490998197324442118260721192808382011733706927582176480531359572388961436403601395776362769552152307231965731813485350250606496560086839403523357999071906813326215641623336475108009074375904945042997888119880528481994131165924131428100413101595500502763068163161734804792119284456903651161295393472520679888835216428487107945520073341519714953691519569500688240257245554757225345741348359606937595350612287351518220664916499304863015206463618196018414264881343261872190249911354297019525711998822651947983280636103453201991817633109183134891218607001270324352464880465550753643353024426953890635406991299022195474207458908411031365978599080901176304479458157041017356311756691176484854380437515363962494955373282220801862475862020412992104294428509266061529014003360154549029836451412190125193664598828465048196632693704643465387555793474720903852714696802591447504487004577942032752157617302538595990076531399660814813859846760306141578401353256764563888935245333240721459240828623582327805796557874641215256132364348202172711677564921736844632776764151238723920274838108540584799117478673912792365155788275400091501871242004757554705582729684241891679975645327151421707175106620259660579895241659998354724517028716811149390719386935144829019364095788844757613691612866984550339791099439214333483486700223463711286106268601222442525473075694464402048180898541036632388133592647759405611778076173449426715496591752929037620992437302732404224536626769809207210393749282104615644047327045608897076357582044176353511370431294829050133697283505421178341503880049098878564095983242913295695363629818715863738820078023865257182633440696277365080388361624794195499124100591677548082131964098190600492458733823893881882603039521874340529652932022366615774529106888697977340177623140177630813114893105147808577175405527424330615376914068190136129078236634556932917833093843119443123207149414408451574465649671550843287482228126183121253362899074391122319973183000534879635770990810459327212128608965145527000363028573310152826625406874090997262329030638442308935429342520901378349626733039714477654882257559381892924891835873415455701859071982246586835050592918635716898530021214400944445526200135841167624420748140615266146407856501214915964492017813429994819655541317617734205670194134072902179509318450237607552078035061770393331805056142672611795159585100685904626847661270104400373271174909266639648850939811266219909525913734380874393839554692725421570010941811223117083437072430285427885461782263411528087618488979500595775366437616238788821107565753492692113961801728502532155691861171716059963041803855721118124504235188281355521515137643323691938539004651900786310400749489766515219626466000997298276216712184001433274633781551862052565629637433442006020099153339958988199268853151008731493119969591482601861007381319915583061942411444055419054616105211193612994282733458931707780697547812469027891730660385337578407050861663836951369551993173867335931762681939954456811014210195550745674244311345769337578710714053898450375887099909941552301526347023962026653720664103722871717681420288122566553147572022742641440040220130331973589189004917777349971286305967093840307123188875866256595442329524830351793560472235168088692452500511657755374571289270389309737849457061034240352602201221561618924691817399415121438569474634616104371517259044544199822265969770155970324245746062730938704442502098712919830439506340899959304401864302159713962155723353346110125694002774871358023433320742190613992189334061855471960369914877728958851479403992647041342976517809213473466760859229337605385963284011409486824468902213593723921665845470954389918557811661017238591260149017686413656353311172559257646389502077192183021022842935894107649848107261599661945881487509007176037936917673792216315250491291398896968887317706740487097952218812961787012509424599261059898948973786216091137739324977615202696621651327855657457550821743563844939224338831890510939054966305049653338615153598771516987968671933001261098400531448351229786145389666643109662392534754945254237826257088954185685285215492184872925468531974383140167612606212665033799812518088288145756284350236941136070023541958429863972739783963981056588422369031331792161552490062006469330364572141883048471728417616113225442901731878287977100354485152171782989375564082518378888847627950413097290752048555149703537986712229085746083970498045857568932269490381464517185272295354184338328011973192342214874709976323145270155992227802960680300793803706489769876095037034365364226285525051429721231345125733462142000019770161543117509473211144745602143608704796836310319359277306394559862523670001771812204558806643020225892805361902723870896008672754399057049981788306210728510226726970358887612970739135912753479559093679395283630065286465487106455947932858012602817246076974055329787891085410496289779116022040493335231110812074282392809567879530038277680603897368719797314482054634826912671622488340395791169226979025245451609037558899577394840474287560893670915377691396487583213387161981887842180700760743656727694126456556740321748458017189240619936208892127734638955207198800389278861955585112296066974931294964654520456217884055139276078505344516931154915088933446591792474625339460707950595360832838435572330406457296164517013188104844146267602028598449782432589206492389494784082451763661910184023387717531427937780125623385153055069184890428699393800810771421215479652891418467814843484825536150402395749445158126278168971871947394949849873472108665108900739373654997196401335920316364750263724855758340724766734900820878845393117026965513301367410702684016882270895294726830302513225018210563277863470897373109093827320130743226951632462526300754302181895910927200506541847001876796500201661043658669349320080527635522201884789997228503399557816039107242094196325215488011911567685887081284601325699209190015631896107691196787017781051012835301726308984035289329677723232626525398756213061354101634163768806266706795138931375641627072289566463486345541221091450948746497071263060760520662580133363242815970899981420076832409908974403017096527311075038496114638580401628787774902327126633857137091226913622972571746196946344915318786144234835684193792652486855170141386683870228691257091957899423101349650887196437078163261390578428980783496128734818588340500093321730999459693164075276344827810162355362548591036381980430074840510501419542167071781131894140310251870153891780090277510959364085146243396596886863227591168425248098867257685748630848766277660937825711667063510894094350033375163178196899668216532762643161893632393250938226224147031505408549833967590827932422996365446370354674973577409382784120466123129395839579190118902573764049733211207508238852908131195547486410805878310202663535237055181009580734062949861359185965653147453312015258106150971265340494701948432164871257071101842438551456522418497566382819384679826718638282440020710424294997497659473102239065042487475924733416960595061290626562464214015292291342729926378029468707601960745691446190373267693139796708545963408525062451327107348157464183557171842290657983912785844750038160882448063572417096201248062996492340939392952509976948365493918566887683772528815288426042680448390341298534376575386788982437650485251787913406192298418381840360093235492924674592486314235194290273870979399178359614325635390634979331355743997139911503006608242632272075414357730795499242797136744449240947786817294234225180982663983871856647228035882645165487642637423828941084488604074783821032053435996535098837822928554958151574828254665488132058683953167966710567339958675659591253881443665758996076288847971493407215179031622239912278991604152811804843431843180136078097254018735354710821980718599882564714947078026924865735434743303243093711491784390810191401253760562393579038194377582578872521514906258719891763318867785301798678869392346029620160225667921733763910905595766792293031382778957417358964406111618286476657832277247949750666668921000024705762243952394723515942575670038751753205107735930152945433416364761559923083136057638781278547757031381113208295671197880203748615653685547606965739638249766643569410905784465504474879456106659552616989795233550288502955755246801563304591424014643735785330836792124649632697416499553120878364721283308557850598806712154629767624782968108597870832343494465582095787921010263999333826632932901522075464504121844348897422323752025603085905958747101799722218991120561692483835673827653166289415488143403563111262757416139021811159556799826527075337772430023643046399063528092893741405671480932864951073327763020620917037349535852956021138099909609697490251812792968197365612054042073998761845232577074379141130689226763346231873576943901758931286503778106327172354639080251811086276425122455945255390272328640108338166346681842041214785402372806096823303663125628249683417918309453400110762430798478706630705514165824272680207942301690638635085268301623068553520334946257235244962522599686000842558404075601551156154101733213430183187999203577840281000341134888979636222430386073979584509489320941128386633028973509551973462709010423706209671125788911987256865368473393614441029785360307775465941014220262711175566601652130004497532615040967360057033535211984071756159974183909798279807762852397020758305611152563163303499170999546218133870670997711736849187491585077032843346725160515903583976775348439896950964471059230168045130404338914622837555079350685068295827584286724430819390164519151206324322251560640735605387121000415972173042348746699018067191919254725991960600052922276342006382842976471883195880733242023910205528053457594590170452907080172605761672004691822909906896450770613212413024798802886771752124163695855666045998653209042628439767861588051469430147690249213120960928357624663236430544848884447162073081216339634018564183236394627567963486570003865878226671797404278087045526534966867876956535533157132697821663388356334823141418450434642688255924416256129281332883701286735720967231327796484090939955862704715953993445689611863232540863838113718474402439109180708168529346892111321163850303004855166904300274543456579273665706914673352517449845421996776157966773362215437829786137236132729195812029712385694894063918650120389574317191169154399331820510733239708061801642649837279780727798642585474417783578254802265762046984910847582876679556005193005355747562235050572412030488729306518346398371737503145792762042038724362216628098708701773117586559673339542343706761151773051817674050758211104559994107312280354487906910752745965391114026830848231459006929947082229413370475522228608724930693677667517698789171783554762116089907705490583221956426810728963345289366122923142453255213494115190338112845148492931845061690186742081497914548762795404237514363106408818723336501913764964331693992610236695659400758142148602968604272191809302454843478346636086672971229865715242630235899379965557094645708686409936836456115114514089785371680988788795923427978527496522746796969999661541912695177291790138978077489229188442923775968704929210387087198478327277889414914482710408155619658780950243843461143335411950409900874639167441116220143858952283771724273332747640493968492942060957258228350505577943646483811553628056374849915202914743457682016446799730197255457485186739980092510412394368259003853086452812430055169972298307551208371119971192058666002405882717051176365927433623458509680688972913854801623043947965837893674253067245309226333977767723398329113178259284698851595255551214252474620396195062028987345454810326709951249473618453114767645670368632040717300221967293436206918063207998731687206090947326225296746731910097726667290810170038446697607805627375808795434148856772519189639486750707911598983098175153774325677521012055309880430724705920542674783566195757462325581184432774078192671476836115052903234091698876420875961175817450284041986337865800594097760250314519831243002256118978285925181886593526876674319961801273732336420586293241263808501932471673495830745608576319634790072064974242502174071901225104094037556658582594522555131896244836760287038616520469310969802381483494227578552196617219391404808180410923964138432297303965898917679005930604026481385477996357660115269992650119691902833937256176012967817175868797060419596648652933124056759361054267591559832008242734686636745955280071725502349620543795485438878532132161837344414164585580802190473414777360389013579342387804935986993934384977906664445144588537918414675665618770549464266091139171578004996592219020628302730767802339338191022199486973008704792632348765314457043412486966487654434469232205269581016057980041300808717635661457121093909537737415105630899777321561528832694711960203026029364407073710942082882248513510939289028419814982455675900215716816417469799642027660584819069627009954617428704215427404452654394755810986441707335088192880700272422426430789769906132754072276364807141494490679541330527604377221981557810912291042592322911210314692188305995599740951668495938291330703814494577392292114264998243446947278540705820425858295220530728390794824133410404714708354756957660164260327238493432892310641960181228518225947974706027161980313063986193960127042363809653573177923295842144152989581024084758182743736077137887023440486544403423843480575209067588413061557062359963985361265878359595531872579456790831897906156268372741243529577679416690155542849236251818399576411704385125254388039933282882721903903320082378830103110469379611193643327452530519903361674376959311622980620807863587661536575099997688377660181615069945289713413834660608350918994453821156489843997786448897709579730857096400045463298467829974060448151447642577956968849711192766970627195664474901982361311660535174624056019281562422324544760842526405946554808826536715362260511137866452478591097764746847524565004616439768827898631827409986351478214902526310931778996319608900699032145355514333877849627363841179431693166039986829998397228124780164588113812111689207871756425737808827291083417713520085650417832974411404254560353251208774015606568702961462924437443705532585503225622099060026267373468006932200380428127074391470893086097737665801148206568808188825709421594448764724493595083165498690269370414710711882541674321150644347858637959703961989073241449413963005194988279882289838230447396460415022941379451716498226439313213129999584782798731071814918463297290904904482609656774968418328935683330174066199057950181946444283319112213652347010649470988198978531036535572195752988645333622384348761800536389468725194643869237367006871294167967605321701472049949684299343041092480966612975408545733946531509221691104182045322248523757537416153613181905948066913203616623654274204301113874963982751327540555036493137796140825094577299203977706702533663495355629052775355561783475685666700292544802404889405736323288929584299580305104307855591487506269621901924442556351284309535829988096717970535685460210565201564672455901067251100551880971274748677354752340790787611112288487017878288281824332611843182024440060499474261644445020828990238828220047455551455721149959626102061651818337156963379994859711939039561291169472394614087296561333965800025163907380072092049622423120311353352445713036156894685069039046289146858807782695758317239245737096750667787160323382233271617149754437984848182241839236753824499752770396077886029663564586443801316987336430175694561892584301094631012615016481590359886173722558726408741241404175722675098967304921420884721023029396515113403185601755868518936446605348161603432668794603812952208383955394923616349052056325903646433826985454158729654333496109364115646107624707269370580361226839426587293686188948430320186855638524015445029437217091135847659766471632213054339916200155513816868496950129122673741954527949150733732497537858427496019201952147992933433271794340766683273615457749054703598178867780577168625222542669005070897312111951850441180548762647649175103899617161595072040323038678884576040614732106036141200235109783280974707050621180273600441182220911384993403606910431984021767828290165236491962153352538051923679772386619651217418070142708196039225069115557623599055227715868586185493150163500333769769650308828932628995039740420353905059724693866989797718801036700269697535032331848304222215758692126730843338291642335803879970932079541845120969699037205682798699766558722176737963310310816100413163645246178070627234552343088067339425027042784444652338783350964432006114994840926977130746140477694096609946475999829387847829955982199783432812135823409120209128257345108932425376534751833108378844790029619730838990477581175209559068151834866100454398970092726643440559169837748079552258324312975756826668480187390047756315269531656412878578979809002630398796132019605733122413318665656424235427376982328390701153080177156741423821265613148736543614962836042235125103366780331652759589829792644906384445094271790528765417234831138182185685748663149861767117973882390369178619542494164974745065544922146410033803126888889782784433417449453681278845907489384381759479801075286304670378556030046678842836808145577806596003390950152322421110498348903267118174632903079704641230627281450334780329281560419649157159965312615309372414164915758639283322938387136429913865051145297539137911278462274739037849851957212988850736356768457809440336858689241968447865716821948691041598462695052229273386397993330704402894120400966206438721576831135860868642274777346906223738526382156574371107940936773078675250438003629188340936386168656788469835761641598949366017386611231028432953258193925126307093555455276657269812214310924541711321903836543200323302458582944170058291322930037670297284847654446082833261772659632300405333395322839961442635447751097042933396565965945752021173401396581312017564487802342507380063750416379790489994315136518835605560579414837870565843375860493700961451637878386168594120244476715547551611806449466725110317314724328698345157085171150678901632115510557200081883454296289636991201710050623676329239857792153513982047072272318688495051334881221435023663293706595030465426023614118768076356356897279097695064894714873572059575973700550922446860996081394345717542984360114322528526281806573483542194156131794363943876178149218179113341088009912140341988153071600574805848698358561879826705543521847154415975787314483306866302295459903082006874885025252979156787677692593562101352867420224684536924084809956435000271019095913143046123637850369380405779546462849174045762385124696875190883842403123993518672494442892800293015813502020107831579000118974249438693460686396106510501107164763598710313964890051192299878596712966039494537983382842295380680113876620993001171848643573396241738436473935751931927538661058471011403568464717268757044798418048095706824605909720185486498577283960811771348789083687772687802780696755946434488496273527338911369926742468932974684896731787695940723443477289721522899960895343733083813948169370859815892041664228035223143203150313667266925112879947648523122816009570491885414564847960362342941599933369459891417894599807542344475030242068545394318064580617360801848103674682394592032346083894409723408352625441294708504319043906286674504642659855915957962970338438539485954003693362451643818953447221376643072687155051636031659679418122912846843194659030156660854837285965615762993298678618705562761194168112363935599579026751647644137649531037860046410437200691731169296538596457035893387960191014560323579797031730675948833092353848671418814737763571179506814112175473899567916943908250427396293313866789147763524060832939160620510363869912028900251755321296228478402595268810600223236026516031711709488997860453875460823486455205466716851259852939524766915829826291547150580589758056901661932922382655842136845534518635493060427531274122539209029030261732321422568868415512018214674374423279035009620687773719815492409485555916159050085743260813879332432691707865457351846764378296922424014918226527621454129124703392034236728618186907544145649875094751083170679301771066278560759888955691680531063814400997067264706724681868652381824497604967807898499375184179175990906777624877214482699201380856939645907925130299724229012058413362069307783200337351558866295258845933344182179399985934737901345924869310875470337606424454296087352305303771127897069012903132426432460166468293646367560798711581198249268744801671669611342475147555525401957811532732223118192339732828107279448704021776102152245530592409537785939036606663589747552538796749554859264535434708733576508741995131745549067863880558251013391469409510657955837917399558838864464940286073403777634279092357775083528339050308391286958953744925439552073838407078625242406147528211342880916245910130876865298999356415983669675569455697831501267635345939020652747639455062395011856877970509575408079797516629526793854429620033282542041737839592443714191140609908381311834338417583269004788007417943308533048738647412269102676878578341474146127564758683735867465405444260881031305740411357290967983993485208535669890507514965283193038226151962262024070636929463245223910501345968354349410137241773247606080304847571860336059988624383499425016821200830494617315194363197782216783609642191547826297178769050015544403092641185424025802411625475989617803451874060625337009983218903043708240997630939934259546277920938362723204136134309855433574524267764981688982705021537193040104404987251972464852430191157123189316250561642040928624121981187285792109633733798650992358625549292407363972665390293681905467759589117506372148956721674897610064303859029953393411235211075458600631788705065929521216262022368463995442233546639899084287882099024299839674212586533289081291818365077792686719042502344557754764456473921196997184295817353861212808152262585149440937234837974681641174965858669750567993690342624532603583540755341548096427515441224628254424092628218473488087274177777729243127956221505607705051240174213159837892948171830588121050965770119337464663876633830704625938299700072017355266817810058745348608553502875267719450091472894472986983496318843298885216982479036312591440238902299392745060216094738456927886177169266176240695568361986128522064726496867554358809389690758521391209205757214877549417003161629343346786319779084658604893323212891307027437197371700742031036460817716425915104862458351655973185163468721543528401815713127305612701846699290893580087814161579472617547417478992490330079954183063941276406558930232218935597037956963356597643752549657983195894206632604393472855124546436431357731707800530836046762194292508173452650034649678397285207646993089147598095456670179612492172116436090592161464148028299786770110002440301438913739942531848541261334524665752018300553709070572909040171872857259491430528198493243255349705857183355303911049843359609716159323643651760067541282203472830362107502824751496294924009652965640401947270012174160827294806771393517061921119552605084980911858506221446897430072264891587675197988277882460216545529835395634399154121615017088916296712700973197817031134088990255139810179986773637108670879369726416886145397029671845904671511207159233117047919803099795810451440090652889356021568973094915983691803016178156444880243874192844919242299468289627435745540210130273411208764551626490714224192470452484742052920397065929631578193176990216355167728164315400320418521746625475614464614615064211996608628286775403660726617808533422693022016421361067422163460017012734024649527743361018379222980207013390851337688352003721851345863451913827860710559342353705970896482054732226746091417282234530953071996199596070520015077216324690586079094394036705665214391429260303358072214957523823327041526224236441163732304031994912001487476008544323764418691115334459626133643797518574409837303827127444966927047433502856681525857960755785412644391995952626172614526867807414119992385132661592626403606972673928179242630883612599974819147058084817246188861413366378970200095418611364643886765238120726190050817175672467786067081858922360024764942293517549686166978818964636724786698483353059108981491398785843485247696460530397891191187051667600744325210524490873861003412650238413862354817627437063837709332881130407604734356747870516947413605953549077816261763340938642177409454529812163896672848859373931431835011932181549326788398289088800282026824985357410564475599949243476504673370886781600853911297135407503831277619533364492108872050717778576092417533937242412439321528946207621184637928006081751214126951852693698252804974296528711947140641682417174639913659042609806858823701038624901617450847823467694084699366622676562196070213480902716755699261085706838274644281832054858445803561889547848460368121191725522111621811442069932568867423644436728337388844502382479361108320161767209468940826808337333904432501160356969433269338795443738321504722099447392984989804214166667921585334358202683923565191508154790183052812469280452174779270566625744640625483787599806023614348241557964620270831298667909128663967502928120179373379928114039603023421646942322425015572641498418097873347125573905840458792009316104043194845897667005657746082289630501322361945534847065607906260488939573386368433883506670215495623753702074568755206423942100391798837034538885569502498405014170492634050464362575927758206674401269689094641607414192611626765779170343913438887612657252528662224553012507043504947938807181514519636128192420032726421613065736634254481220712086482979870009965512177825948864867251879993469382757551783378508639098681820144131069983209651375954446846831032726920822370272583259402818790241994238870934753515760851851996180065306727301389555677162988902928655159771162917195340124050866561013850228820035317526428398855487878538685637183417597769892908941567222990518071776500027403516900405382083753876805002645009758946618773096421702655549253762865265165396265274609343693336371710355186510533741783029102596698259850378811187534035646369442015070477702029453665337001728215139466564478187092059561760012206978897874380957048251835439372039999653915076785901788048330501762614526062020725755587054223279827114689425401018461537870520996598364036348784323541990731458672694310132869448414565887975912155162481706585883404817322180832404247900088877434740167550143481770299930178541322698961207828342971484258462534789877446372585685032974210158658672304398844785067871660895272677000187227079427196293272216570293709216282937422503468643327500310320165304119218086754909009476742572733803577356089167686817096467533063090230064107619682135083310936428513018139471403636897234148388698640203464276436109208124579168944862724210236735715252995024559481793973357804832321567421149909526037637048658229908980363450108860217864270737306765137160075121003423817188440342917560617330468451926727598991065572621434733922305938620350946063392802677165939373880226920342925370137838082975006089957039845872819507547823308832262775799991882221288822500880275000888732237162646375010904755091461739279501095607995611187608916231708591036177694696784619113733825909750650553048752940640612413912683697269163417859377169110492948654756792628207102585932764433329532254996352884946601370213904913915023738232543886352538557607048537132331287773968786906457824798708951421144241901383262968625761439779060476439702765404633250721639816762836860002263861622921913826641010669474294160075457344895195266920400651872778821874013845860909707571863136879820141226599289206574018603257201401027318142611349704418157544935514028175874589995247824575461226503880997878698269818974597982869891960746944375202756680177515723619782415703877052610992375251016307424101944685626284807931020765713835561965235861504406475068178884560912613567977615894169980204395758181653494014692468101225349628036039707002259217420834487506867497679865282368098701268140017667158896437958127558751170680014750983086343484487189019566665786035110061619885261761674272138384371308734828918478442702970934497841600240264393986901732347476334487127033027617203198172394158257730182142710245284738770352499751635457043001833501793342527575049902578336345343567499849727120760875544663930036504835838513310684754856368216516174980407649377937864541593052168360597925735583949030204779249203899214769500061373932180816230751629719748377206489208945582657019333082172968470015128595485729717657332411040440476991039855661338753251825721519144297247514819061479658673994342909081519212268362307185987742013176592730095930583553767131514112495567495801969317528405083306683439507130509884035334788061839249091030350094010732792153301368226899878213438691299155804095589442442201047251867973346123177206418586311398836690767171219235819473066783892004539988044010058235325006990871152652894566473365521747311468664510017015072077628599500432184702567174026236424864203516386492340469566673425743637988203823916306336739672939455008274274673719623092153975499663985529775903665608479226143434761374017430541302098445266634954662498562445082612422610568890515796995737312238688873573028744329998160782956239167268042999845897171717601569994602705500467883013292642307734815020244340412382943181629018398244875052493287888645378183977273341150183818864028534750307575103944064458076033648329420111025267673508665850484046331198137379827058655146376964931888043818433298924457841648009989622775247128751680614853138233533401833056789170886700253818890649962663020609690066160951302628488003551576584547969047633929685469899257420997292906001751556470939455205180529688843129058983500670828611649135349215936171744030388907775892841129235723808443569806774374839545007096509969618896487421973957843035090130402089347328651624960143330713373110183954021086845948142382967249181174856094467880984144845534974071705628410647947341462504306327940660025155389313678819859278517070415921155657813614262029510412983240187522390278634859210012628466527457264451383178267351084761654166854350380570830927987616992002094738554539780536893749622965078942041416844667437611678319050331865201459937402576668398564401427033606340459802580841767268754155496774918657365156013140775306430859364347982534889557739210779263413833037616935884992265784929917220327974793036204425951762773682949899278754012235386937022862401297055517030533372933066966649196906939289776679636218050107531546067207722917404296302076260548165385707834349873761630443692955018749530352126587208476193010220933708458423147542167896725699913479007779365222421538132253648352197631435617944222544561999091214768546267211511194516453175015019564845336526024716334634024180718648388194563558595210710592489651818345365981403123920619669484155542451224917877822257549958125672652385242164396072712765794037695040591763901224028137440588954476753505732141642869300288530818051470566341349806828708994609225119221477311550965697428613959765487750521997549342344928178729733836527348133859311183488467991440270586064867179399111794591660512179970207511059314275306359533208844001647067211025919929202343139871272200763475871086317503602899812632067655703268496377068104612126680016683181619316561541355015826935152632557252883397659781760757254738829901592988697051683973097417698562665986366177360806234171941097470382027901132486174376346172666203954168782241512988146108505971357520306967530623861074264906043051127152545691256952394327765430118164670396912785205292632681450212068307172938189777062020750725067190161839731953624912164945301662322510923759964318633640482882874111751022465752274414616101044957143261941994260552035731956978157168682228015474015493629309532245687443264695669218914919120071940396305704093427632589407581388840210530517521138302434820247066832911698631329972173822336367145397975583294405405973638212166084890868975525784785081673666962090541477914286902911273797729967297843371124769984536226457380263453633868652726607663217775057144248726829611040423931244993750243555238433081009935125433933901364813305775618766038482795508171857638237422161648785629229994210556681209255066349287448334657387706447594625615445524710840783498825988768654454451490275124061211530073836053950577314338698007539500282419850136557392181233336715894369034496163613608047118661190766741035995748537528048734141579834349613972088309010872648829373973940435686252054293026144359047220887366016198468774324544855990206995247021641882626006023180690087938285099967342909901649160901136170586193938359239522399490235735367875006795528803030854049456416923235690004647932707997979013935363376626661299420871093031748611454305615665251852141257639190374773242068996782211445676387492639559351661523200455419893392988363698175160676725158129135455429392677687699095091395912609530366290980894628610651024874713040030716429073001339358319940691217957727446271259617391348135817016548359096049857359786112194663842850394898133679502695512839383407326032794163663310909404080390760890045256644326144607583386558102890503099227329044020956802106949153056722627001896854241991564107116242746873041277641814009969274035641650187428492960537572019676616893882732895758111171063991935694111945483251609386023247408807682001995089743500863417990015760718207658811468887178797431186400881498534499383712066116409306618196262137504593379741430321072813862987482781543844324385689895274438831677445147018320868746512374722869236179047721558621264830319123018417831833683747885952704535040897661011995160635478194069228104985670842233005751237842387611203064445530495245181725607767864275867592753631484498736251409543702095236210969915863954977440358246573953929348131594358560315596689599683455207357461428544204851531913878407493471000822070272752339313466523793835506746228805302137107859288725447915573896142963499678414801780161020600314306478445879549321719215574058409731134767853604247919702831627788271524596144954430433121198403887915689023789854873447303778523368621462306844784858065912170681737336090227975336790262862387325693375920685470266662266837463692044536219353709324078740449402705495203850110704516471949033069173390362271386978649739044485936337106874258429331193713560722415790174753427564468848945941187075247270055725154927018365375374171903168313562995578585595838497430344769884420916355378611371598840599979412622384755528495241725441917493499691247726114634911062797725410604424247308696198011053264090500804620785266484520193332671560026163205874268793229051960012601700581230140046916080999453182347127704271922997689728527764005711739482060745965511942799008897880242978837546074326506836389278727800385352898903850987829341929885723470124472932162602822720378559836980351828325492764298475806282349486321615564791926587489814118551435478630795426879345390041967941095918032141552482756580133496700427196266062734175156529811982593230727777858843950906671547221453430167332139410465871330859436254329179161682136131014666344561677839277642922176356077113343100570820245933134436382958485577517780540145085912568180341882173078864118555003725257970238356171708062870572063014417322972870201372308898219213156532590984439073330312328956387644065305751298444747491276008422454987213041421347581899559800542254570497802213291367647178786625137608585980480538314626261837920057536057337830513777146965177928250127797106203045050099494058404869877205445586155789564322399497525803834420235215587080696036598191496546120336609643131366722682776293844311534805752251118298688007568068303847134258909629764457478884909203105120720667121194742009721800336183627336032660554011653193736616263498125875607148811862095475361817935341976693385529366063733865935748307217358949140017434394188971163049983521430732816604487944956060403973948937903999574140871764431908065644167597999804072243032360116563992489524938945524882444557893772960647371627588568500600856782392647803379019429886812999570460684852014594008401102117192097615859878684449624991148932658136546539979600492804936543388229930946688996539895851771075518216809762797591924195213798546467983063029938796527471083356434019981078317252131564173010240183019121867670086701382182203788296726891639028189456816881616298061692180358613618136064684887611576393635291543726307807523074125296538560507472188848884111519343292119869580931320088191250087966422674304539505144200789991392410275670623241497121835065225801353831106831035566032261408302523714199203542975001689753574117183526886909407569836752733321461056341535340994713325655429762757083579376704492326196186982881989528883300803916184448452014399461527783878811814719098177203912342155972325881801126529330134224657204937440020421870589789212243017235583619585181800482622323716237320148261111741622012024061699359484377139997363025045770532075045858830976370497149507335757180409193864540530547809486446805838795669989881909277916024745169584760847201670607116250965821555611822146331772407014244724903929816862814031443252693344783949986817547123447586891667594392347571418725322961294757103907044831416794373982933422219079869726053041780101833149192164790758905181386931280392774148040783464869885354177461206138551496449949222769579426406728332670928196372061414635414821751268618345194670690116041982543966766765304621692359118993892503402713976809427580774561013966465511389914401054757320017673620978894709271559718958520355434039529042888221504248671933856283710414344777233797329005825935797764667440312249458788512836544602789469753961557342411273720480694406097576136803997600950603206483986464126167887983036030815037443650059527403641346552485734566710902002301300146214613791250963254071817686202561452432756070832366305540882632259495936411405315682531096548226798014696785154157326309860695345243541817643700391734303336771595590680260687277065056117691961127708574140183288420477313906526958477837770667263606734979213315959575396541064933539389173755042687883034319609177126609553620000217383155247386402225886295805394916947260810322563137213838948606369639226601914338984541350252355263483625070322224377092905460937779255423547781913410441740107083409700490199039349666063754316260987673898872388703813646934344971520138943069394943554468166413151173551656399286298916359030895105577138023904959728624346999105203472883006994675599191011891181667558710993288529857655424210572548826355091573396802428552270040127634676793187650037299489781080823890141125581012006583078570138339168292285420300697830322969036023994458607510795496307625326951489443432428014131110115985795764452617663158320777464500635055333414490524439335211754676913840429464994999922934502875113916470539243856589661523922225480677004720845609037004488631059729277733891915549391796876996863784459327005133167411201584789597014551754481541187345300993481218634804636112996708704746129496287870618387138397274784427489593783515417010639689315505047123450545980960260381039693872269187418175902476614309780526827317320717241267906287967270719546262064206915841680831720040794148505283208752731586729360958969246372820479123932381285102369201266767952230473412513972598319432104165262960273710687559970960733453975726525386475977539458838763287060577524099617178732686043114052834498550861052594877026934648950268683502057451934983118875046294424938703322946533198959515688372375490784050763341663132869838155833350749677620794689584600872875866089939448204388808054799891037692537632230242376037540476530096852316120646769668535932957752365442256379075502400633945581123599153329310059674492446686988040476489845780549399911097905536419517958410157872007515860732142576057330381666523741963021046771421644327103014115212442018220341090529346057588164651271377679054415424277164541196099249518718310605506768476110776051436570501301421557373310284090664381474643262101904481794402966226876118446992077919252792743502856933365895208027569484699455726787651068720751970904923532102996411515243560143811964699752476206304439126903256456748490781474847916064224620645977369117873057257602081944697370862975657903892059519668723329582590748781984278339605476888124591909917617479338452709336936797359181777993376155023370830137745602434152617773586504069589716522580923955795862830167521931680857938722896866654871753331414503538204865610360271245957464012744561522353244420814493467887587898509180175253655021601914362591709988417338937272353414739962705070128033348202763237217273474369782570560443577725998035674622558519821398003304072824089995037631213989354009397213643499464407118390830276720912366826357300293829659119059303274222000855259513973915487271015730884741750921781986547852983317177159424131855295795327478507210677934455656721690766317120400835550209417592622551825637621969117934245002846867853886870782517457485033399948962176367309252628958141945008253090050646025506466719145918283986625494584170864359870504843872710645656294236363391673627025850442998949463485710196901387094521147139672630457276084984642876947645719601211059301963862190376850717242241677013701402330177811936448403479364714286664242272227435355914904649147660849656511907781760092847633638434226021028105350655378651783013233557172542464065609842358675589987584561039980493466349104805877486159124937866188525664537497196158245123386656057055799086314849189809404666350947634534648468894867336132495243637305741833198066922747775389692835480410068691751538584056727394661546607085321542070299815496367831125693512139749780084502376577574137628264389579284813827679177869277356355314106528686379027557302910266705337189022771573683510374929857687779016336678580487681702917454419744477966120256921397735398378615846257606040341112915505243265755192741981077864834993658971476642891951275053485527278653141931056042828998250017362323691603850923102525967095670261382892998597356553856348695189768488855576837696628292225363952719329862234399424669742671608714878582080799731988645017602807933675451471979065973276047851722581247185955012222380994363614590409080382950753185565949826786941359181682730722880660120671929107491601340959822551696743105550864460416703588818262537040765755607073193096971587764535915279063143175980427301920621581120886781314496762082123207486955338082879462161755461306396691883380026649486723279740052282544695390754661869631578898603530083337819733616480261564418010664313456046441102441865137073184843418471725297277288993392211416253371711564746093638248754600666203814326221167250568460522506658331398387547133695598542338695031976121386772523468644179422837754420677670696219934226774682307198979753273163311471357345526022012408976975528863794564688514755670562553104044365375372421899151867799924902995583964227656651867185654226394850225154919121920768554264253892795450012914722726528945853743979215660351121731194672476151000557139051142710672612527115452930876854900326705650527299894494229777592887312450087518462191393305282412608841325655415449076101677765631131182297898442617495912963717457172467284363085032101063067552697979373703051295580443479801467827102139352786662994390344071266536952039045404354776137807013331611270579047458843913933386747163098130124655883604139824285674643986922669321899455654040894834881239752975804670053370545517380767949669060512041288629695792429161337737868380113847886934424389268579831431511478826084113506671444253299944395996546353940390537784289073114418797488947584159981097991521002957524813698957247446915626630281930454999162417030838418566586926420976034277315220718926244862014476686755632413169702129602805854327701726666536510323001164917906991045786083954019654057130061025286373715421009054295206419640302402018698977611876288408128936937686646525164655677245068417931708580144123014861099183072139097331296173369149170712361249768675263083247869985000095668489818889719174171005139952549927934917385413850733265202139142795431505509480871317125059347902486815045870889944482410082036254519925741089004004613881982759143207746006521031552307155238379699804961925211144333570518495573504420744354057937873154225591827913150181589779039798100917845646312931382058076683837571799180838951571299648188849219476223444254129975955241361686825980132879832282605954376187857422945229900738184487236747206236044644538826143431512294960475016283077072301421664423651577606602252133850287616571808153053038292136069269418091977004996859718650032394294882935142494274801465037290809851301320101195346849346335046534424204746009309506664732886981468248434385870415323238771392273176584373242951214724904354355517290603409471142451990737155205569073020798331243875157260968977272959671475499155424509928542047332454458427684969069453928170499971475353706617511230681902359149636586534991285679318579488357003686685318913454482503628688917028197985919604453517087324142690413469585980091887233988511321550197960831815976204342862528762910265594339653990529378767202447078655490963430013528263373221942120930703582747795137792332084784158989616308152155003244563272665772965987187684626458034901801113558337996074342602490308137137201601636375145496052498630717009416946573283150924162558587776996857649017409666164752350203220024839437223034542212866149758487904677400457060206564240619346899857114675942755639797955399556445148586484354625086639517879022884213009041117063621379080460367631898760351505412081482846536953643041777934983206992495525759028506641439441485705717724762161090914247690225203907438619849474458451985500587980527948514922645755254790679494437255284233959637522952808172380004518249367985131741718696769229608544198677699087163742422607640157572914734988135809261180242090764995209942225284699116873937751628146025743720737963021420528773264576549330672277226930031411990685352399874009576060745981620498455324234935579712984947245079740112467613730192954898528115642918603574053795830693306065808490743920812807709453232398132502083285006478514301942258928016185192004837405925976125757561340613231220009190864635778414678587359508911573478591694216026330478176209451156631777870019336268044507426065039602346124119082287826299611648157986396800130028636356909512224655348351081724976570307290162626906291059213404786025456702350434801273416263162852410788667909328549856687216621815618888540619508001458287070751092544851783290492702917455357167306586419141680218521669702243415308495083114345935249078945754033553890529403726810192794453228746896407501653983161601361676907552873255494212470239123458857326933452679851399045278884009374635377027515012742534204349863331745942278219075326934025813086942582749767927811941043454844809762622954805591443117041353981928785021352822278551823093996327982704987329165194520924062204828571765853128974774405125848942709775168900195393789688185825152622760124944078846011326411356821680084235855963084123069894153140352548388587629618396335423564219535741675313301245522184272627039593879015386536475614851539247450588571800311341330138692129306563855518806258312699886160894407092060315610645841575615089945169842538861262122545377561490599411820268123004510953570197439401941871648491131783356226531061877045362383060879587133625187405425637827550600721366394719448758156810351693604034129684158218317579418255569039651240595354613112799836813977998138072040289174734989941308649091644974977451399860592755631372688010508000239974060493153372580900812001716567192745762823809836760382524296049877453028080794797110416296722857864082602223575698603166855434499835457215101375694182610042591824858628569706440019612353287332340555621228443244666558076961338217288171815526568301867743334454475545965247456305837470900088791240471201725216972866664040791325103482785759226088300331319275915112015354263608851878325413525638091771613920741154071799862508089582974040454278837055100027573853104154981790271576999407580228519543749104263517375883809176472261237750322240216758776302896645980340946353769771260142185959539068685678711576654767453593615787987999974503713340436280871408507120500631346059656112999737459774936148776674385796484635163551373234123123974436223852115675679152880228758457613743129328563810307585251953926112657844862747637543116373966104181843914456192026877890229584715907164048519181983185146628814152036179021475675333398112425744817153642725066239059645582020594336370571514189827825252687665540083973433484460820220891694440031746839812241100033477687864389321757943874045738006525963328470779586136763355598018692396388041080511640301047204333277534703523066461428900880411242166515821239916936196362350804968587688662991466799848475549916243332969679599767319313686623754113223375327183043840582901171572940090849867158002148342644560379974633157325721659156052582695137427486196530565981216192863148753236761629381429300523667785030219990104659435081802869696077656333095050722857984477534405488740333193143511304717801448629156095814716758758434243564548487184227590060976227751161210025445587204678968810091606295766473875893392680296501725176472665213725934172287655863396565802620871124885457239054372990934477106502641821627782342220072323596680411705554008115133330504397670582527525648012103286899498452167952272686729271679425343010145086501742738317566298448897619805011266284260610084366206167644658722381654599836133715709120140855512842980855695168154616635967385524558228655524397645302657293775157455298825553473561075549862980251396991507781908565408424195043379362510442776060877950602787132537208040545714452173756119679409244072578299989858106400630648861092373053624823338932620714207222180216500193277256385608238385340952952238440117849115495355336212003505600727647734540808849008731950365180348019963467462061559653065866948614905470647922571937091950109981096457354299248773783182156103720551997580461236195446126519272720236689726731046741240692566079162284499813270620167878325406492822071795609282625342432108433486461472780623520325995907138306616161763942729228288561701670844307114328081687070910967937398881770391173087823496011494422234959187903905704102423526230973622159926157810807028842489315151101023587691265956061993376274295091946846112823203857229550775921315979136371751990761104612201899901899727314754986223882741263844661257147074860967136112736996426976712231933776250621699383096561608457164972972147785505316406594840688114146603653473978604965404538220277308902115242740018471142723819884038989611871504628676380899981990119864080199010848361843314054750941859215297511220422040020540196138281653213889126084885813836906894237274482705918969860613221684832498611975482548951784921876624792012614497997767457968908146767808212361371231867856157883194878229576245940920814743199039591653359377674035697188212201966133666164656777213944067024240935271737784997574232906556998401984549949144991792879147871812533521477835016867342274132832709476814297337250891668843322938895893014389792453343893180841897507611200786215509622901260685734130727784595770485562193138941427256443206124064876725851964955913100786530268195601855418333693323179039801847823061435299145890990474424519369184110030358914629541642180851497596487590378525924701999957899864790829346552580525833493805806021375333474640838484828030236815909319297812343457582300752620493410525127267465065900584335056127401700033386967168690616279442268159938748045418508516223863545538350108986477739609987407295126735346436963310174939154260877323389309152362450292828236679005696160253172562008571498174434149581925814266653344815182500835815190539968736792052110766574602379833497071204305286485599689914838331573054066872195104397033346906245264173531226461075163563359541057950346914877660680220292726238044305572471019954399792022862092746854832348038123590988067162322873597728511378991911872085705086946988123333503680765605215851580193763395121276625593274334377196752871361617632737493228125492280389062079445295140811341338138517797893388369038410057114570452504839737206986177596133325917194700764901602217381571349276734264449184918570950210190195954363599840540610808465469249936442564936081231406818584177685782906014722296628110186126546566842023712006076182488846648128699097124910492823271560759286195038711000500153900567218406868258482799096376445396345610597322919704724161550259636480357202986476639292710012038679078137019010934542581215190043416498372157305285318421010266612656475421327430791495602803860164535873520183660818935771713406543537243281887179115862485508639835884630841237155946314928319684771922910524404610114485181935763241230727786456664075193843977892048732571533308109344587954885878335885503789379930556107860408469230460006967902162780544085327830845075798679858169242896657208754711022242283099048799081845422136976617753463520813625166935989971980689410407253711895907487137312613933886421058202840994448670177845262062351081242638759148499876787806862746416130432146012371434523427246658049806477240986310191378024923513426925823499358182339269238966868171875949528356372287313156892499189164291238286104484499561735787834660958634574090504097670243692602875134472788329689031380245315435191199096383720732284690381393633245971279996376011923549884470179216563107063269832657581081805948394995587898865270082437893574894237810710020562888698263395570216984089518729348047169090602553281060012319053907582471861635527047935197579766161586810142648407260238416342901743981087795531812533487434154271369864397705321575302782653060611772897764908413713705162960720241083467265569968805866119881996220300809201548549975329938112913919919264092494968493768581063349389356516440340023451050312397787437908924759538047535281241608739087862080377037997068471011396883267122225900687850601471567407636961630255301782224057882250457211280249060291586458210091992563137211431674229346804356739859697083234949143267490236884119803220184481206964914737722756349769343951267743948827426918136162903850533616955650940528296350915235843679431706813739554701902536367771715937396094303815071565702194569674993483985244062637489018793709960285961620795642824108949414303386244558183012756633695003030109474877301161343867324634574999624392330608743444491691460982070965416922187103867319831831443870735558319852768250619703421746223538614880839104035102282504246158355230651468610647223464585838731184051732055490331371392475327135523288816099875724030400643461641871351909998757378282389314941986928717949662513941590156299131003179239248165818736669954386257245097682835975553934851294370009217130881130115869331045795668206628309821930260724687389236573113905592019665474595095237289946777056965645454120359590056127131653640063061765965508979067570427114286986521516351457958458651747529006853416048670193544525214150321456025061119293287190050855999057180535497642054355992736381441951523178661435222180619988303439816335299575096928466456260135848929153157270963695373452076249485202388582235591223704729603659657403662705334078049680135191102415786308076974577897287941921095302991509398705986819872393589056940411319351958642257435513784559388634880168461203722761933400995188598139859335563632446834576104120745181314769401972636181654128281424200652818764622227201203425897986347192440745120047156906829104973713684471005646256841773110691679623736522260160902956315259790835237387842092694062652635748379308749782793734549984315642432177100306395699494087776184052930789380354590611316273285865097480088393844248611275718355002658199810001178600839936728381622540643275240570152797942871882911314470280186339980803850995431295155316786972163220384407875644442318441021748619889335547071259434592780195651677373759299649904912935733244950994201550230342678604552087829806874751496770723557766677335773006480681587952400527913754573230214038646470451019772888057092335686589769141252712944321205817568522318404897157767245098451175498572683305866823588675354359466877318514202244244263286937708821510004776604734811578873840106441825829426732071990342791735314383354616389990538164668758122828792688546827005147934621909494204064727138240327833872748245515531043974274529203099580622095471604709212658703430387776045919791354921561794093248016493589591246342910373044893492025934056096810072731606716564407906761545189490258494053685864283371755815371250061186988182821588911164709993924152119730382017805956740411400836793227618435144527974476185218502462332232328499081832148975726118465187421269170094616081650466147778277334263330861348980601844952049055605424251313298294031834829420200863577735009215368917715924583036393149204227351970056010997491579516197411404185547257793077883235718386209823858616616610209967468025668668555405456663375061309651232780666319657046222309374408798653635904380931980104140073986909034782482616419571827970831561160255861905686780886516624803426618343982204272146271176649164684162165172168088893653086543807660044639852792503640171676750581560631658812261168060043957093039648701054048123448336493570300811987722878925797755850968928540920679670610008567099215476236227328831790231297309314953232400145097202480198595332075102700661022388765266949596031469466416779198562750361564233696339136088114154032557933960059233290661997931346021474271559639870126813351117839265248584847881954769462794019260262563710448450674854039790895123745025914704044334833821252848535991137764743894151423029463465568561843936265880432144712109201231346128717022430709597075072081691297622837274134005963653707520500786232549064278190666447131941457770795967407116771739621987077667089719008955436860679863699705755673760026004378729535625570678771178844063144954222228376406840324006234008375250007179447710643404856526770093091266999658094252850450979766362286410955448886775885169705653440650638632484260588054450141307505396143241813164143428883797896322471832252430102447202961445454816981066815306509557537854304888835208377831197126063428604061358381876434934352714611113405943365790071369758174794380031424542581176115612846721915781684913976209687324223003994364528782499107834229978016490483647519605554770580689035742374014799595186808043290587700459116039976153203532729300352787906275714887100859588655971507860666644730799472611332818238488124740861646557959594956025893135096639536150435474485649716867778004659102104660024160055732442106327104716174592298578088078082793238210067833150410399239829108348335196079168895856001440422042436152110860821657027601985405688761482707476656280576831690021068349572783244490452499810574254330324509520674898738916938908394137635870771902522242602235059193819682796867606767520065182624359031634870012938394122180195828625225337754334436510613098765206266059693712864026420322916655935390965115946556297964585233051886148918047170435807763832961488125239463182485984639748919652792770253353199972916606150915589702565037229718055620639069140362318088023574136695641020107505926781470647386483541343788284893403298455957578203288264546864793236623899375915877274724870898217158337176658044348689736092961217719102881482674155181879729955743740331290518992448348062606473620583196988416688950921040323511662587066238599186253620637327312799594263655474526783509555464962272106179375761072799302082694222655628532928950297508750523204252303702351896227152842215188642325382799670021180252823455094503579493202883686237208998962497372891950788933176854489370053390188648930553024266021311721555568432084159697417673122639992166183356989743293653691892736409410911826055484639692784199307268324085805591268418391379545380361728498292996041737788380452803144959122268139767059604855910973984185594590043731322368342527519403111958434853211650116017212252173045077700471601315595793946460118992847344907810794053911498568395452085735187607046294592241499061972689669694190472746888638847581167773408165863875464798432208130806940455915187319719854292668427087902610315311812649106124512693781071981734093302729238099193720449084349705536346154206667872385029248568246406792456174275797947352610401110175798786782887973287259643655252262653141046843664996587992279925559062525700123871197036283365195300435179308866692466179450098780662421128986985850880372706092940526875995679068442509916260825698560278206728459084002800814464077010076825557545391830896550578159881932354997942317203380385280076936653965510268605857651460452555043590467429509238528063365611869040770844629634250175310049669803294835187081799903338063503560892664632029079784163632530658925430613234643409799607305149986051229969663605256980353890844645103168699035953290329764200963063771083103600422867138401389331419869073279940422779123886259714859649305693508237921066915343033121955196865412616233216628871037188440600792522372788050239516278510966824090750428148347823062114102977427877902919396283807304364013146311854581978455931072505256691481908123226919396672364773248847072376309680295921614608226397043660083069004235251280688638146417578773906708867905303474408188780597897851004885673794259618042335465063095817822184376927756296880253650305310303363732972028086361625911657932788971075753780627428212239550814217313058676984701590746789698587294657729239192253254890249465040991637812907609180978352608650351475227584265548351355991707797062414684893206164242647142134864614588821268073663822644478508450628349419349741301417595329824077356546946925002456800822831104261131149932965301755284490693390692623409446586028089140486413385202605873647435198392357895959275142198640046026419335667423132605462991956504780061062024753305679613297803251134263395060135405491814098030142556480960003984973222400920085025706709695899696220715819830025934600187955596218952269407767439247199592589444998479576420217612058818311620225268981509399637363402840580510066787075175045678926171941547235036125126663923606818980652631349311195344210914500180234600263053079163860223638455698527914437387870748907371407274071385958398730437552026533542846421672140434365887276392165030541285540075827210156524949120830404211739509372348236373716983751218461591220884764120693710340996947700248588857803107308986042650347329149521373941475390216652008746630797726171150008443347760414289337533597891770987240612171580104834275924166001934983137982874854698335977427327227681730805957314220820832903231216195420384006181125332677557463766474664748280025240349097886559381728606280927763174586101928786491340952852688723797046806268157327781004182402157962353160713826368258637806807935397315559407232079434099983588720815193038446964430942500538428365340778738191841564108006867453807222032152299898956847353617793692229454834708148456094702224633965647190562622600577936165991589499284399495825772882195690443330538333080034917276821416866602955069082737550997465624114632484431268717113785511994223154845828706678789265876250027935900264475518421962305524399262156650787169100125743650951420677579847071952741286792498154273568098895841688722556514556697915017233424732137575619648119080305959341290252836972413952068708081581890259802762073911244558990875322626351778074767447953547154515478896502623164435306490295434892252609699894875216970617941261572905381968246683522706314053674766286478408232437786437612015804258283050493531255079811156330490961474979154222974474098213263463040668823984035647006028675850717468870775869996746321878574548452105729193360478536118663181227880554836306967359727106616654693008504458459727889607520004146748657031039592047153555388983531937337335340244296246726303915323217562760087498380471733174181641696039126357809841913783590317370706672020950898053627790745982087013408091463601705320402769888013302158063619412927615321848120966690476398574759221865686892463109872283500031185940027140063888103236100173097539165302093032455398407977789161264932892634834287230051089937106722319095630370496544326225101898289660053505034137254648979816732722237249071950260891962026411896540756384265071705011348303286908308671392414075346111259822123187964662495083338666551589961976687399497735724730125848214407769024639764129745234111490616014407594560064565211119147495874724430766002092845046999046529931740320130534162706434604251958673650617822829052233256619674778794720879446460615510992330936357401551049989909913945986790902640614446637279527816757650168439990070338272926593460144708666192407064437919434884010907725079382637261681811345223592201950659337083352346609756940244874268870851008217521174874474002452211588748140495061797845493198723754875112097647843482598250617469599730495274241460154334782450939497424515480704168384829765331269542754235969425056285872861225793388359180637862026119837663002065804890089805344116247443872869930713042911941007701910776831022478295619660919598373961045298646593390691973804901452547153920167714238585798165833062693088671742131439477244554042718906251440699907063629803289369627217536869609153002458839604412080619941137259095081157347249574897614249146255696796140556484396806691265374018327197666991194990224694573533643485765583620301302373332768752444545059655897770642364992113477844455480045786253645747156218171222120716103746987734815391246165347305304761356254630575394159768651785297490078373894010879347697861820920262561707259332521586025661995046048748581380788142751102587911476362314802324295694248378204757985543305330006748341493863399252352399811987908315703939610106513762913464653715626350712677314116937720992193986978178934968172609536807718768543703572427924205116548976871338999843341078621063216444338004907634065124585111735327495381082358657455307098885038059219289815313001554508851268818828828241474531938936156714385924740057130776489932007839711329925055525744877284562745930827978261279371022677934536676692284184497818982823995712935248318002041358035983242491470130434249038306991273137824387277437957409555082331905793663759815824145204374813580527234442413556567270939206514415066823836747022374553970484209214918649995595992644187263924917554822658116689440626133502913856731265235014572032206865955146318903450137554244105483242481697293284335828297277551003044903768961245242788086266685022892367439314235367791931720172042820578518996093796324791330857120188064993354195485726867768014547190231721256733194550885918836466994904948034124548971972785328715506903110203709019686451476664046154078874612436684109153368022933707523991448560276149973916801852759507438106557974676648703386870952864508159582534871353797056558497809059476630375204823130944859350951979564913269019193885691381311640615895538316450341456913112446377151987686345414403087145002532731710650956177321810359277030420875021220205067326561718387458523569350723285068614082140471647241546964305292494995375384137847463824551746975489485433463698118946038548497493497661846270050037055008585125161012436603077999808115176459836692140734902919987743409035259094282073064255694865904177702082765067961423501175052987131727572975040351480791702791373082615945976173411232092979042796562080023340089179604524186551613872786248731233195346720458067267066077923531783200846564525100317206362261069709381497010864883061688066824423496919118369033225140500192532707457424916645219497283656504427420889386161940207612467731608122661535672046725466996756195397446916626930402914212958668818781812499267282325304189436404147159201211088819984631409682951456757290072597711772040722448411205185919688060110872408986314808020415253551973725307262842637939371767008312629756525836051149380035732637180957892332796613164304391463438731142357579063851635296133342915374196319160367992565611387528450924555351346862434753219549599402036814981970736218583663476286629698684838567042139693482700264907407453731154096980806402427968920673094686255839621940500849163050548950517733419263590216724499171515789692399990244580929694588941107089003004308343018442953362239029668226635272092893151715575826614239737925723282673441929370178364141872828136004129938874961461492103276127045458627599635603379211265361607550723839646029082278567367220560439040740779498662649838835556242342035963642891825043407704149295322504922014388229043950830867340012192321222740498798230786812807994430339925904650688096623917522114356119798474559040187592502105333389519400112584078002244759927446857588363289179687982044848129637991514674441937678612815222793042528541456383001746944714945554087460052111084490578175444027279418111883652120667572261766000624106946052909449533689773524026161674821956054344630726608288072896382524704508952939039029368089104883617082160371472305562336559317260879330321956379932700927769105306372198168404900062553504104475422335565149528751979928947007634230375330587830297668832939132539411474512324549909497833213180794920210618504922185662546482556974333082749112016196252112391813797542049037827053570940890346928460834688377217745518593847495935185572725768426283813566342983378204668079542253043588170417112456575829232366692127342934463304700213047089628283799240504034565906393763404478509606059696910393554477474971822007443277370947178780614043640620484790552276096496233823053266368115075375987747117986217302889330478577521766564659586753091034546329154288244776253515381918503315829939780125247602315848965743378207498541835230924888654239638289028120075760507029623482166964976368501625698300706082652572126524376122142372557648029728653019887900307258459586825623084540815284870871127691806355861668115563810577393284335669877565896237094911240898158228660362656862549199740604850252097003657032708892710750936177170957757593187600496957954365746070866922082280242601498819670286581463819168480654754595870192153471449682544614016147823431520223244362370126230122079092735266301713267161589447120102345799160922730296055527121810341868471272260612721224142963303144515297179916979063228015456620716169492869348192814750397721702457947156361582617318522353281705109972972608884605307707681545715959615688338583200921189816055148318154711770741720162573947673750709738316309719642991131350503124944110178446274207799783947278926722062368478113109741282406787693431023052593537366369061913799037725656451364444223354615361783118656933203342530075780713851191497313262235552626551256421222188695831666232846846835565165867920140030987566024014157819378095690860086694304338495886075722564890439671130537788086925896749896342276780939372312332171909773406606411221238678155785767109864302880669424418523898307752786531649449892984261018618306942958993230215618170284896501650032360905443072306246114266497101530505931753946040015848109478373013523581277190740863883085243771268072702613504795636210401923503097108960951104036788375436448442688845328808125992349599950840349104001585612016181760798376953458578428693908973759625714100106935217477447929698766832181752393691802343860569186085884445599835346762302652837413376174583576266090567199903475030269243046997776155123520294554292253650503299499576683436443347515784309266987249141243239015615961464673276740805602982377090761564678499186763582258700607575368703291959093265024028382571225127808039252974514295523428161684514351290381278342248327580947580202351860081037523983750446882408860803053044610269345809206430602415567370651708813660502546121644369937171724132381964991229797652988267368367571960218092231432996473549726234627710623361115432491401394725319196635809782788411718862441473199103312655315412701233459148833965459420196990674887796676771504445084469992836541423118748431629160584213827422291165418783833943058245221986941643137667926766506401596848161845348639393621135558586622111528708108631760925057981201386996809629980690647822326929646058383085924072830256843333501307362621715749109478625116623080797313270005469196238968290033149757914723358589132900051522972345510891795789544834076523167086002469202429759552967571419467279094847774363788443464970178051443423855222313562073224163711398483414059700203632802207960969435031040880272668560005851887194607157817377437116098596432301969575163841168341290502075599912247775930099031654446270459129900315643146344771888569588657840724470642884650111333339298382605197938624406234020521050088778031513473699134359436358439598820708332947343468637318208710298440872334615576975528161988404260720342668739185183978731310274932154797833675343869869670603317486003470246610804046077160684393349762863746411574153263452138408131875618656355353477492215087416190305235039467935089606456215602341071127447461930480251540014252940925135074573151715292217271821941128229170641623094094249956778612297935930680196877336423564041014572864894906056572770078941848240995846005416708090981759430993729996045904115665388780633428273957380675328219792053523427197139231429527783657424135493105125788756528100861381465416608845857166649891936220563241419903072953078521334088734932769800079740586180642942159716209723125774549198152516089305071718972377048069712007252347171777202084119156402273190389555218223873540700576371125410711697224953022050303194962796154234065503992381300250108816089075247667384842214897855051888241782298714666385955951303334614247810744127347250073042797245930788615871835895579466723231648595700525206105990021604771682306100482960492532429990595421893806156695524000716094367774351060455479998266826629917041290089599209996809589659140456015742983588857948533172423470161606357335348957102408509396038609425124593815899398528481086409002045883489832410673201416528061790685275081727033334975919574701906190545676573538068017144246900354351175956831699972047742336224905922169689791506166911848012179887793226410721508830547867309554819503414334800027651711443427795270901957299371482824623039093104041158283396304985574150922725756897505460789873301771656047576822533382082357927510626313656477485246584049096105943483848896351161645140046494233987621111867671718781407257198387719960691353749746169277536474766559020211923476597707189629202318780879873173157883901067026816142005137046962125736431295555707508774814136831695937730662110277594961997500765363329989661385233126062620515517857658924335787382420967672875481643433855890829401546922904666684450471877820991778917888104559206407807093976564872493591089979761766626771094947229615387663216147356637033300008289414721278884709748823071576109411254663889349387132951536861050681058826330821674272608451099323457069191000895923383797228787252128012802747699407516951644374730685198785009484293805592401114638485555707104316602409554541422857030861429592191026561135766988402615767606343903471296075469002385564478670404867356572911795685524337026734514023956485709205970986650878304361957229601714768981200337500284033483329997002959854786625406511061549287792912501959012810896163375106271162029696418600089575872236045316051263232278767990534570288042801659944349560826536283271669304443588525832839265013306211040324919072417377440160767563547247440818423812954601317103204235336024725277976833366780236398988933997471192747351177890247486107475993093515067281206059584074987569845988413051245846183570638817083794113055127810870387157305745754910715470670803576388777941935223960763112171343992585610159909279692657196992123276716443184838981562512498045085046543432334573600289317651834567733483140680260728715883104125472283249902624129033339860226759890835619023617281493894010812113398942059042692247405793438913674172057058281548603030727700314589748611755091023831435395005255887956262060765948456152015147647668228017817673011225548641199526103551525600874854678482027775029895885461497853707862704283950057896788699214844120763037872267128206355298080612092204628090207889247508183861234342248344196358191351380761214710230072746798502816008914340457559141146617134803290820390183102219110315777327650474141120794081245431973053366524487379980972078223902839603633459442657872641821393287770090829165846854243511824775927353410779137883883223771047289981950231143387209714636904923717444613209249285959378316379270192985276090456706964694669150103914036700455685347259002049997810320916842790901444479617157190440487325578772032879266612038521336775299752016013053091794337787302208639617249350770299179555109101932781463741423714598074478720284979678629972783699557732922251729746868170154505692600296359177537980107485309307510226095460390063890026254612622415101993160729353663670435195510500038259758412874470877327024603992051133546298015817443113276080969417343871223480923376549081907777885571316431179575138544530873504756945479509356250976126414954525891847100957456669282829926095886937209963577412565469743510375431401540713491940029151605870110962190452917258517864493932639720156816700259249454264511036136938909129301496135510213398099550319295799045660114431104074330301164084520646547283635842213983383157843535235898673101773545889668589724826997996334104448929168513526078255274461338120939255952856593981473941204105647591019144451134996766782452808868112022124187341207748537444865739774653298564238978628561558561643247426163420474970059989666797566473599612378533818076544494444226231785704634067103937671486619412864444694836333716204238616490728025377283092245678468500838937994914779205961409003418347273976305674879873713406266894956561191625875126023146628355869508915642785818559418649401340840782641224462136392525444515287425001987405701431135695962600131021045803470449130712484219121903666615352154947105605540266058743774707342192627932554096938348740305541981904632455203411703062350835217799781537936058616115701439062969265707710726580387999222001743424331563097873520931506356032667756725262320446180761086468649586024539533729480618178326360225958651409777534169774104685653868829070996287625627369041576804982241293601979937651956966305296905495725901834736137706133374859710254666941322582599225947600470434962351277414945757049102726968480343862581644144308923878368920288729829532687679610800924017792448070293240923292798127177862936781221581707546697104882574235510835461992472585348270892248102781792421375427665328087808126726993884979694043609461600781174149588629698077202712635809119345458640186282776810555083498946344557945051111490104039205662942411570933608680193247762829793182657526584943725968513329350563381051327238346489043179956748433615005156315993025734773653718823828104177425143375672872164552950457282856090096561728055280401861515194728210212644058104034298584344130940518360680138800172975169705019248687749138323664214165004610397231900791803949831826676831179883048536273606210386220589984818450162187699001499900727321851871871846572856017637763285076244110370576810764975322035471544681717209083132604569513721225189133125753537029821019582194625924956490359023257437443128472188018746747716960903039870163052174082388159545761937686943511687113016687508414101694367390527760458131287966576141217343632506720397954851672861968388965469102967601281601914444949578286861619225278421414783573215346808948271587557672091809566862492307728273021513588928699625828568776404240106046861141964603551610063137518326888468351098255144425433207192100034635252082291602495482393573472369422556775466809716607173130131283899957416042117624754224447411182089143608567782202102516855978397262042199713673647130301018854136722349218314245733898605180080985881217234049729883940738550520151478464010348490104563320187599089282966126687362383081143733431834064457322246265917164132910515018918376926335489596989982659976508272026807508748484507775487825096214486996630462843200096135179346423233615520830723595014971082483931872241105009623958322943347206554429885143487730088747170978795137254770713906249142786960375594599161809183344549327222369383054004947616738324038781732955328887751887701585396740171381253183710418843780758543593077491755437205194710766098610485096849347760495835996898838859817192693961468002547778098647660363045866022783970977742720841850137285099808592253444439828467319441138905143465367730388981616692844005503156038182595283481330396755859045689330149946705284970538002765808840527504980981287976221774097583650674204664587567514085340575275507215529114322857114541463113004594978090376309728602767797294040847234188851458582129486452514746469737856248923499232632814111421942679661279325150288337196927794167160655564097074458630653984093090921589192664116813703694154820446956128098562932649148135783083392881853591448128304800528446181052780149768403454518867987380153215839656046280159160960060135775661970486809409801990504387780442244010327593470573002557492741692606553460104743554237810372606425767944981034229359443177000106178915572657247785610625087292091350703072386239422102121246525067227846126503033993698735012932845022234511892481830004857790747509260653703707145630185041294957534115450755263341940725916553459678679030062018798704159640658067750811185438499363875519371656651837359229715501900604537782312884479484960473736773973228871494818990102510000499422038944742419361684756261714143289326830263276582076996219325583618055834505640126597623331239704241248025214282583544056679176214546864238513008554317380913375008288024719511352160478957424592873374485617380640116042461672023817806088027000343942614316071392553780218475777717352371557120011568484508059837714361372558363406160102851858771731732441640467451310718583194444079123728262178833135687698263984686454852915983762700678195930773701885963070586057510988386637235731167557650471377024596412395643755576644592829252594102571767558111775118794277071686194234783016329032321974664371875588549489469971369772544921612489515543106193681645048343036616903886691840574848090531087435958300679443363082063286968393960643030689624241256686399057252006480986762448386173685018919689203451376467403948950875723004817957446962296901179381215757471181122293246012239734596542817292510681982049612356265201849586338746562099407391670623088298088173876728186875825666065037388247894985388547691334291841870716825119732951307140934570340569817916286137947723953215719826973304999446829549064922966710201415629462462737348307580499635133693438835739461126839865642698416380691211015715894917842715476576722021716249268247765611674149244498777968234744724842189246314330820627599029984443420991917210622854338686944367785564660069756389711394531766897554811439832425173097049965902071523536901723158581773085063353686557529135500364236793816927239338939426059462327775597971851386829574373317100332601034738500556703423493878240873421425048315217627179693470437262124308860689300752218256238538370904928042928697743717480035058070089080532410356721663292333773212701240463041687228719511050817017773772337032981645778397540778016323566289111660368160480679934091280365369324584550989003183392592800986282166172648553955122070701936363675590369305203709474381611733499808414852925497006694649556098933859515767319540639269273254795523566788911512198672607018027329609671589442649727486926673783716349307206454170265935629715086368676335897824887367278802678959729456653379521269457716041274160672904065785467888049610712169015274747021376395197717981897443128856195070482603862195328949308427750180134834073101980682590387440907884205310839664094618943038990238336114252460162904122227674555100922179084005763132505720231449456008194253519245501240705359079983646702259417443847276770993153990467511628967611492008687009526624469567392186706424376118180300133281982985730909374410849524647901711171519196019909188916287956177972661188180075562548220208759663133726313478293810073094216011720529234421668563966553253369912097570918042574031402185907753391646798233094998387277214653326444291734924202557994414720582602293363996760327156186147854875551719114888810808342232926401049785500272889050289001004497742519950257708632556087789110142034725627950238695662108101133763897475628504481539448932538217772421645015295138533194940387244636475325117987229600685594407350784814718743123044772038541732414560476220662032171927857661433238498385758694160263552573105691578746450862757158524760408077629182224010516756898908893520502701843572679487423712685824928780593057719089336550599420178654330015354851398643972882993207801092460438326099583010853637583910583497679303470312375918592096729034169707617627675883583356158862887602132218832489701919054339722309624884852711392953631831222984241677581940583687028645533717208765338964932254694078302397827971031443286991759786704562276688348838745254612472733126006039139245696102654396120735152373655042447252149273913197612977565772679668545835875514371739135067273054459873015031665431121482742412394503911891387041711589116879648631534056348599188567141364380183320011967624094374602636873080407902620428170961038278825253693081566231649638774403903387005313578657734009343039089922760857005590089527806304721338226951715045986602358944268766209441532362491258473810302091582541103668259565932493765164738138473982628560897699919096083941408471402462323023366289839231000216792481215076656005401052462572858418484346876805952310708944993024524125441513979930268739228418036940603399208659021519703526118544503643413621288748367759092171241264007663951288434228100685365384959756986381618256509636594142790394546042925328433147437626118919971483467991328122248975508036688445214017527319066967812725345955690807393801234266729468637922574896360645921817150258095051576887709095071118418171347703231555925204688078996107978040879345169226261723909926436656303137684657936405111496292423690660343517317707194606365321556925546909184475441830323864687911746227262778595973157819889151993221677786171919469022552339184941366718406869637432408408315269654143019011329230658104986515602994599214023740230473846703346662785093090482875501113182863175065628889852005598561378059558759560107180850821745347194645479586755042698037625950731869551845099218437360399425493183851777771707024585646873585051561052162161573012079301295383350748149467519157007819783476633435408199130996074713640770157817757861370532671085249496726081872300996505606235700512968461490156764070784625400265749414135536279545943593191359937658296155012615445437845288909796011186726767976055949081893980470419888225172635783908126239631440765967930354848233949765881969274769832790676578417279537730311699623540801685964031662135960775382678950229588487665002145729248628314690849435724350474090032155086474613619715168188441134879607537833175117266002684597181996527665857013026608100971624339771978930403211619875258382661846686815416833769615524227563653775896871131147246906212175587343606938537723393712684421934649023992125533301362426908076584524028844703005186802554677541204243181591104516284191616262409401405415361273055728499487224313283148889573512869673227732264236133249687690903044285440977068667651548635315594814369612794832034322128008768546508931989145896875000254011676952737228441852147799469874895699415796194799615835082735305464948719606961658774410120830243611225413107623896989492152397995688291675492438048397067915171347178404650269882624667256523517620650124678189969460160214887085473738969423910185470031848364823192303926649148383999320693630702084804331096843318430496835625636985919400647666499463904422978220492325829218468068242028781490969391158995368214517202888198280988193595193438323946109557484439009957855356346809383588805554432929345838975199938094996343813375101954316156481807744704227053221719479185720482205124578802151992388640002107405113012373571609253954138058272948061272447878316105414703518602189450984052924251403245758570498206040181340115673137573053781508568747280534881370967453224843023193060083761239493408670562672403608562255670190012533843661609677076924542291408360406180211527151500921258128651513816478134083417645767473814306428420712625165000724064971411594478171799327590306562675779007520759721072165413577618871004265849931244881134649880993196161519688628237019296976750084578588031747387050970510928195327457990859665948534968483564887031563375253411984134043605340720465502396574176776101079244666153332850057484580480351180270079680992167280394193543063867427388877131872228744688044994711769182551098984203193551950738719879401639736824276684302692386235690550148276857363462245377783218185614910608314564011410295999632799357628130852526889992773692189653379862543638121153703495542521302371633275755691916786259543518169182307080828285688074062601501640510148286979965622849703271425745090946597744822284915336675504991119751375847662821856257516596156137598900371829046525940720910871359531655070442296752132660969096647425076284777994407873169854414953241930996713160596567285630603498000877220421804204494432563268247882922270820777809571505160151600735603939134376921978764041749075000681832681083772392840582416880630225970863287407472987297783093784208782275371902058588710944323848449850023742387901909818754937457548800493883383565337430904200078914653166601199537437721044063452878302745712244139971407414919872420909557662057950652596262003812312634002957767398128582532960386854242503937604671279556702302043191374304624081866572035047916997447699024539335532598469953550698004719266621139771676599356122821767098398845971569276120038069922825319385394962014263838803438262732997294558513955786918332070310520105490474424362303610248122042858285764901748861566223772302122694133594047160002216639295326629278977767207710622843052998736401804891743626739491961564003257587684250978643954685606790616709921050181027879526807534543776791970094986045878081334973093871200174959389848798183589584813149416502775407589358240424073074917220048861170731126365904658870284101686679755890426263913561209857868959295948376747401300972414850508788462087492279982089452812548914311351177623301417605901356120127119492447166000686086711914078489745037944259725480815837392632733636644333395820670701999263223826747990296732610415961902352545213705398861950005789164873160408805374598753440725223567081978478543826198904182570698544416747045443968424733910925159010220211113032752886754710633975254959987833601726115460378300145013053038585650973270808390787639962406726079824909075300689957028112931368470903808787873790604678676535203262057053581759413764765753018273574092182479198597796062309175918482153794366397404146209847758910889074872708935372718082976793277581658287162510004125268988354024647688568888205154158100430082987608199393493218224784153525242810342801314336506636557387142323095534812672239154844274017605207743799313710514178652194193261425082400021662257460971006661770295214987163058745902363149923557689132891576450544415695966887750181409741721784539916621770343877800310859594164224133592446988144234854242898551539210747503669747851868219822556654595696679980214483650142338967755197599202077138718931230586480655900425179732292609678928423320950061751529254712296949233335082117870885446001454285980863146431058442820775385373991838460053894298533699414325420353868218826392846547211069623960966822551560322772370697520084963796849595819443796676565168385841495598475379856623111770178380525892725321052655626104644165581200858229880748687256847381748227249945068396168335748177839039078824831717231610649247433998665976436011097637901245812521050911079648469918449518200718737181552473847926168365583893720659930930532033037493764365469938407574939989782083287110696675518508609360508379297854488929867570538269868269450856423647190495575836559556225873789685437077441421401338461817177525027171419797945565871899373956842751894599905967922588574182862659297397339540833161076110744488143917381587649564730295884238943340675403705554709359430388418259771526814712528577742928527337653685228559034886198611655423943343034205033166664144185820013962694202795549587958246114309582891430550963949256530953205009498433359200480255372434899403585488360606814173126352354093118722351999482153579037619244721218493542954032543526524938902841158036765482790050447893422016568874920565867756635726935094979745231643504753583353639418470230922588507480962889993780466380072908417636211811847212511867045690977855388158753650339391165499383866507294670882546839323431738037339454307994586111759926846358530203489528900074571572781556394138214688221781811862349081910233471173498523539143381445968842537344172394159601595216845927406993669256563386395657106293423190010343482983555786603358318382819930788521631686069892240711899349893191813514850621081148122942478017571945505606590487062920603034413452832028221425457966136460375118815013247857878378985054142558290650320974099051949369252549526424090175199664343927722913631716511983859284032360205021378474687833473921455363815774654981656167726666036591782051647643176474939102539673220000488762261955990698687045874211002941363949664045912089340230381402250273955679724704627751546463537929300624999937332057034519381404242690408306177040037121151050649228403823316401481609504497154471743553648777280537434407240846298062989107093193977570391235307957335508886866395617705660106449884493236272385626330759850890519765077597164306948563744624349326883652653611641257127104553155426316330559823151792443284434042031841416754072182429721639109703821027540093349044734907589463232615647222645002243750592542041111325869451607432708358836330766067289753564748888722483709344421005329853690720814056287703788593666691403447238167683334565713488167806065434215005738265040170477870237309778740980223774103365626959776553314379593033597154119458958109672603540396491672220940373237908591653662659950740976215735961344164982753669943553260557250599299051902558826844172178584121099591251228181001020326482457202056460291808884095851789225503911808690475073109336105645702629246257290285328866375642610137245904103742322664319293194256029556617997616932268118534839402436910452709870774570876335475484638376355841058994280248970066992289254532800500881425944917893465073703399369930338154298579950261826533825579226604795934310848591320774011622188035038828541369631994622211695416641773910741407061641368307018616589181563489612599949076824853592620029612116371067000002945421410093274476606613411806320370036380314145652445544448785925133883955831149239258125729038399378994564338706057686691381737356431380719947540067638188139543712536735886446157807857752537919210071834584430801369813173787426023229415835001434895519932235745594600689912433898344293508043658604655629305245647821445297936665483147402993440460559377471314878572037877094473047705857747229321671130156880554150794818630424442570444233331599194810203266451884039315277411752011497706787689550824998678409419564674523140736283784556690665991423631559749849411238968491527683798247676933659136330278239158909368996115372256928921081166985293120194776549437922851458125198144635035656003423247305357297262901614748610110500025128652438919433425215262548195038686343789055306154197402263869655518144381349995641976658176042946091051293414305676992757152588056288558443071569304529750346975623882776464429360795852434555641397156796440819276103585525996292155156625568670551595119935298235567814653985716744693354949201256583201488990135421705295417344107043494553422746449583592779736944687083998002660609424966339882107890392467503851878406385504666395495954404784067215149796532806020454691047412276785378365191021254218711455885172031658711523721806333347094750325764126763195096115175679797592992673272441576246008144588101425281027994506160347456862975520854907731310020342801540827389727233081634879001452041362541126392900024391445173713593737974258866216384249293427119594664713851473609127757276748758041227718168963064147457015732582290027300243391326816099552067691915373436265148930681592307531067273318112390874523542324828631367647500462985964859819341240339777000107675894991904591377763512955232037870487690858420642322545909468173609834188749172588795696503739584598613377024457773799859046696671276547171899343988091630547247644978912702287469920107754889736435445317539534340802142154181869421192266485455790287154622126671648114718580324079907248614347325902743087553632065873386885811151888635128289587110461678536895987162565344567524840551999043411342901086066429567167257355184756679230967806901264403728272455946750421695952538592088625379738632259770787704643228618339437039645674359552868420865250234953964912532887720638787412277867760326021637064369731161178852758629923076280181871625570370222383723482523421081698664383401863332454323412586050660343719671289309134898535983787247249387705764325250302763058898056601401724237277091782774988890143976937937602261150369041396698651997401073660166534201316999953213111960416677649028333740599967313838331587502939749152068644242270296050817965548966100618117480278320907059076240340479786925723395670043423938089306093283635036565335648632550332399164285917804468577710721606956232949528815319644507026897512107606604740733669943714636531857585219355583975452680773973821722918695694357003365181549174948581728257260928182856825379715867386084294140639466020831135910561286594638408692680591681786251622763233752887187536554178045645320222733665608975867955616311526598058045347340271389631370436561228242851242373305449878186211432559029615325759114916461456859753908743798050428653526621326185141676430314678701442760706532364370811543571811880327606652914520664783516833738884049615580192037969716448509815450618747715684016563204526365374560267025734527652112262140033043663065644967640310598105164607199072713929222975912270200914748992603217538184567093723224593878964105494994486185075090674634157585049865539348309482557468238846902630923061233168830373942977104175461938461690917642822537962064315897744096532763047747513379233292840111157262462395760561919280447396192338845853600918121774964721829984973753851443531555288151869777702609337381759128076174234463034293830608579117174637452524011159946179116499617355580591652157008582762264527208511245509272066672546184815277273358415039416210648219708173151059491638105750183187617894734444535585040123926143803564807754158772722462648133960447921747958508466581730785312075297904736429552501672594558640903828607355393060492119789411480954301837580442940312225685359912867556851299629154877427049104666867155349294564103642434389017919542831634431798588569839582530143026051146348659689783866370489498790815656267304040005093310384499153438960577955292544171526835824768005290649660077713780026121887281212267746791453064764522869250439624493206819690189284029817328082078805955619654548595247196408151291829918230426908585825342657752462954285167858938210594281798848220894314222674338038727355642566424428023026203846077399458301991680183685854962479000736583143952480717802988262180765842545995753687223112801577843372905923366624145923895975807049198012126460412320963700658660164425216892911645361711310152450604843855542085577723672682196976863413488044781835336186165807183867496417911247106534342501769367762891045430275715828385639124996518725161184398430473789615262299828317424247626245446738055582936934525315209115364261673841147137849188709932342427369188206243211187859205058105893737603427630484617403348495395493722431001930098113292597466541010204664284391822706993608343621229129124634997308496284483843356200340395796110529906372993737417759660468519840464567901603708261373976083388164478193461713462174705873669586710281624277169765864154336760049933969976579131200905721076865024495843341753433117713456717522641700017562717201996380395068962014150542328054968258776709957741770739700072744525938563278346007664266232016712667512670577551103841784561988453886119009533428857655815052309373540433683935565934847092145050035956293867400823386269960870504704068653084084814006028845470155936876848075497837439713911182983922135703934158900936304513676141978666458514894752540944361696684957196474994650987419876133591342670265901393585400139093543257548157718107852842807463212859543951902094489757261131092793244777219288744595043512035114471988261116547619205411953922295209445304588935425252065350734121422444116409875339678845604909122150259828089786237337728290811843342272749809978989869700642618322136871498237020915410927875361545487509970399902681789628952013875726516207642189035232632783653109834335947186133630123027274069510271533774883591210192475667669878554160405153444798670349133705234813795794255470415216511499318635255881170172043062861999414247905233839654352101641608698379843337907220623883743971343637941921917933848524063150394982825273930385531439724752309490344271899013540707575017194168059904486035747987273181436172452578387575111598535664839530877341693263192400003296518887021293853121364345962964790721938352281627946860155752280382430166401435999011686304868744947247232227756134751846983248978067431202104644311108081084438177903573936665690525138818222424685735348359229381850285641531866507995495964096343690499307475777368307581934122209833547673535588169073650240240834215577357469135809462430060086406789546664549988788982417628014755941139544224206100092786730712455612653120573542165427996835609158702629288279106325360164908324657700261360467629598530426683838762555078851246978763665501543161430662776253386298182370414616089693639083725965447871839590414629990117861023803990462310542086434414657505873469698076675229292805835225429950929844260299094853439392614718314954224421738823786512986045134837189839640263002697692284642043796343682208288922898344272815874840087685270451821307397792749501755571352356301077432605984172822364412223083039469223766656708666475069223173297510851393292923791791816642325162329008013513269894095675056166462475150668282866796328381934260252711390051021462199905375010370892572411710187553124846360185869461815355680156233944296231870276493529794633767119604845480886438139222160903252504084240970447537140666937995565793003438827544444285363193288015030499593188771025166957538294279182422312540600197953583279813010147574218245434616422865581351001271116692455203553584117004042889237735721536719799116802813706824336775427056921630338943964855274936727640194974724911338394362955342315871706542827764849687609171968634240680827234958330809869283594053830064276565326408988065575829036247391812082812840412691043782477593004650155282149884981379071565403762761642998978066160651332386927936852835894073092419090658812920444573352094180997909340169232996923696884068230994938310577298438368765566633328158451080265846433029567430309246508643357202469461270718801897579834682855248231180242077121777773270033879355382889220693927937483631269217650129507443991326724821036061778943520300266336998986673991669292732655699842478922082210853181547958356738963318345400097432029922831383563032718044311671439143217510248466243527240488932075314650398138711433942138910408746444789484258021960636591259903759027923923356812918933596658568554652969599877630311996117634012566622093211221968413484740512728850088668175971714999090985674971895359149938548594625625959974116838716745428242363902814419585451811884016439108914907104993851667834665242559635489249183436969739087733669379557789995192497341422277527928121884837219260636231902343420886032459353644455688342039150304431922385640703130895981712671431574500522411723317422777426742429633106889067207482234536033233370995201794751850968202092203241109581787204175364065316402593874908615895704891516228288107292244027528130062541368679603018244953492883751282843107756647894209036102941842247515095071120374083695624267881749324727478899630568209433599242965676371914364096093036397747986073394070377908976877533571601122443107274584395397327357295297320462216819320396881709735343081537302849236475222605998347810225569902683729210862685411860367955966411653405706547247062352114095333977091143491681197386870660667222253354496737111263066746881601723729784713678295673276732211292238450856987253313158165249769076381870618537930475441068211211284853139110898955460395117386848847735911956644074611645747569769090594295787811203583428033445425829338509481727258601401248964181351770223087792819986913044112758492676564112977224718817593729561528242054063721678433560800850076525172027319246025153102600565069076867439654002327554175690871160016622104390045815595725844467550798991122882061814662826423452218798187755533304643794874253694041801437184020470718116795980207053918862741077618913402307805252599728629424863707861108623510644418224537694055923473773289115988358389188374316739641741468308543604659757230945134420085622584307182135096523833065847314285083579358444714658908657765681757710795141455857472386273684216515338608885770276020329903774060496220362673016755549087874061047192817630218476301028653434723654846211872082155999570980736859200901950280254429603566532074926517515283144288714838093544012102926788062647003749691684632172563911041910507370133693500018773846594570121042338416214440891706428619807390545052334022849698067320175026598596187958946233747980404542636247686663764399401567065823366696801481255822868050726046524288030857732613617617967515502691642320788326951867592750252187243454447895645724616442047648089017741756214360101698291611924170449947604433781703883759616401769086036466238825330843635814759475929669913410932586898509138943957001519747365987110185353043079258340808600113747123994345158049944614899389355843892376289331206238808044431091592044369180883750918449142557083339712838056995654959599082390458348965230215243394523205209849501742693887799258512307680598571251668854414777673621823916104515664935140052210720255335439404638328936161973792146313184659954595703988153264712450531138906015515963073015381780134719705064230400176550795755637696337583268151992000522191872739849355180992279606456376188403786207206076214154437235818949007105812569404880229795117945976226739514080336731959619967950732872543692334526597341727571378686458995895065519629343697850490387538700454922181588763468506599450345913667567044930158858083345201640820669783160564861780919548415393861786928086222106305936738665292021176548899753130540591165569547807319000610068091881169878371080167460602860896422766593099356740057513322940962044469628178208703308981393843393630020015798723426107049453336354599546046476522950775304367321866849436811644209050529346154476251147369009165613540632898505188551198667543602289373693574288701351690647028333048337758808207503873711219924169476521426110873462074605913812071177678521388174747294212939874897905185875156110184924471206938694342602337495631071101252865846931171127317925491853353694113719724719013198695472821482833618724423147880694987404120105495512559164861989593529668884968223204150622676880125253242493619679742604781892185211337597116407536072393694189209206960147225637538676423164007543737371656519832378646534221614295972404256336005129370455188240316344856809338620917165411740269573290075370232999654366069432414542858416650572386701930988079626640788784942261408626094518079854195527303926721628692836478058097418056306012599989159980826880382705590353632841035120637887515922068618948636411256601954883876892463634084440270253590432087037053888527241058466020869886698732788227960685645998605253887127369189423588273343853284896078657056497754674873188586601176219820734621594086520305345750512082118642393186876862362355134905080009910974638017807907848665002553526572769274971569225426363430271941391262344938382313333283413754822234259240256093826493312515351510058331339168844499948872757886918310481764580069868967277187110786617468308688467591432061144912712474229963650429137365030671283377990607589530158813160594107202170398207904932504041345518103656421549775533767045124263877005649449078805363716295035594068129471709465816806272745397543949190955237292617812067715487885650254722858755800646612922301795534578227311756562450930444110114851552142839321267754246941315473469972328153145790535128909577140052762260394587681388127269306243603496145042857840917816947801644134397001908036802895388792395887434952531883840311243693338552887914244720763062544863775402407465017028521680095338626084149638739621851864932389954954418073010540230615320691869506286450336450170971809993358251827027120447608447215401187105248444599212089886441880768103298240131852355532414327204413899843303049251248677268296127994564295663954104254750570514733258543691184098504084298835757523658644560781341451270837563413061586491494063157394646684343647088565124034082795785420633282075717461427790194607954196810360164124009137650830714639624428623259233975617835949341300450661443483140391795728717408751947536389937533086609967185143552446483351943817036113456729604519228471884130346636936605008082590590049471219111303428884055211144351663965149720986404588740599799898046289806561790366344545554327890492644934921148544386156513850090012442558682411185141609107528876398374916042156281366101115604098348944718539230903176487349820040574794690319518041221323878769428690776783410492691302358455868457583999937613614681721757920710739725135438461078672111341274015742476051359464708627700601367687734152980896768333348609903645681450173303901481990310503289106751046615596141014411057317949912260710226372769527142301735389467295827146772181766600689762669388771822944925880037474756470585572737995359154410893828690419857187050952574591097084082656967666900978579187583540923919846394884877745588021225170388555770613289659015976387343208422044488006362766313536661734106505449152422445902333434411099179047386606702721897869803057671701968865781252109241674947923617035837440194552303973825623849087236542559782772233067214255663795218884839370479354628901213020423322386047109670659898241934716197704588919581188938849519459063279066976800131397761576374334291275863928707706043628745806161964393874507819206129613330004966056365481539708228704330616950608599878083533311105752605420047421197211371427279387638445502537097143671981339214227670210062898663879113627163614057896223038205625033166650990809771551726869821379651153351531300148915569086420057505480884381656053215664297439236535733970670550581904299541893692477826944015256633664824520941545756302210424526635579876382923593261491539473667690273867901835376277241139683107893129522992391613117530066246267549151899876875137886323801990991467656843576823295543299780265248774742817266060871094424218091233064042406484599595605726846906287050030070559391221481757223410311395800956752308385414793430957388829962856093447081435714142099731035598868920291952977237514772542045982294725820173251695939422728368681267887230235983820906224449985790198517120588852161547242481045335657923057858231604953283946443426868324322008630030763763175397790492336091180387026045551240556234139766411865609040614106845709443786195212806934854416794444652934166351562153374741115947066840924835957626331439440497827934378882483382247271162293805010028571348649474939180213281637294188559904517696274200754873326259715812596006373090529320284546253232426788344476024153072690058719923315303891361109379762749252367421007703660861593000902344675782466139165348097310569063765307742304103955535240480565121399070505060635491065510366039289326862485580910612643618011139709475327453294191935087463189676951413071655196994665998932328524703790143608103726271490106331109646200023840805402982036573285342167093826950785525079252627487410802186900701394260988857516097788988077060536906395328861913316165861451521092026378868209973462804291976857062126237242258802774796407719164603158013433868231880367953905734841896067591732009459370839325268830076830749116134823199668239656727598496637633430333056035767664204729613759475187601551636451093964868848131954469444627179650667471296975723321988713482708210200294404409314028707391773011380294260646335234284481248904719180175579886485311317596461900497563153040234518118027456869890453519724447567156765138797719831594819581998443956187935031562748038022191888021385015553734681949520771834166268500913049235970388153707559293951883463979720145867045016034986354762790504305773003010453674928642205649906812670576319332992824501888854841930009518872216650069730994288430101641925685507498014592417928988215055815270045519405971462637562018355793660246031766018595054915670476794142567187141958742628441253735069628304366364726037168053328930264331360060256487254421309818096621350998706824743711951497026277880738230244003999022453212762522409339228799966369641817737894890182589132313075480729133615328158995846294762745907112072641875316790174932985269804111735499361386274552906850715904237178395998293863667567578721820824998366755156505378440837894694919623461299338720569442097644053715832739054913477796731255232862494084033954385626979482072870520616522496158178902939951125438207275971817381772405659487248859030506460518302973960500853557293470625804605900558498259230421201166272969285812052562991374656361228781564923362761197277670222591978203351006389340983412534143733734041663197124422615625505921565979403950993637442556128510989801154248450644356978213375290787232676038865238910866084400757721913469139105029057225498735922364715635496982574075955924644760867682301694120516108218134797810313350183511289123841407261068649698440389222043198100635606191428769610041978268327196446125951180522028698725925660189243176205415098162720632743845931015170775769373909550724313062003679886766759450814767430897229280639584450225838500593760703405730407063378366849341174779553633493956504484138060552782463737820822762864437810286518069519358041162673351517660584201346728845139065959566990144226755433242166696326678869055907120149360281105242020934403153388900866106172428995781431428180166051432691290969340168434309490071053590112964475511947717688366506381363147585030313288485654076456072462974559709746161779495458166216289518647093958092045476720153064258183999100311629585177556894999904899425187471945359388064632756611293392902953772585827677518370533423042103398406995640800840594197018562073600671110125911777175961225506561163260751486409187237496896564170617870027845124408362534099331911436933700967739118908286560278948139508319678120128598581988177938202892299657098639502510862346219864056035905280507242814564301768857049982661093779346232454904048394209573972150178028713887872695435847266468131636445748123083810287541703203418760399775737315522417164485361861359634539116031802673854612270241219640393021500069011405991935344440515271069716703349332236802131559968226197021225838874040420210719088756584588247296525232882585109248974239452122635234020313432312649240512932381631590030281457745390993492741706217487156097322493603569920732714856353429525507047528351695948950703871466526382618320335589882979672504894942050854934415303404441185292526621733299178774049132942676870712557134958831872785913623771586264699387757365012967841542647927536556238538405606793354728255739176969255346655300738156789992252614864816485547373266817048595106918136683051259225743459499339973159785116744149047761911450220146232257077762326051645653742973032746213585448498377104679821032919192329764763977753680806549356809888998314523047655108504523690809904744402275216622755676545062432683359796563048333463917681832471916739510367010150620610343396186115478177190587076021245359555720436329016365898978147638826818898513709682974491641933959233031469753266299271354961004645264433749268070731719010931358230371887248399992440855819028195992277431774857192655284447679738062586867720929877083728801216842802730050581969800100823503937223646396390943980101303874118648218584540606711695013648037672209888903334505910537503921496894155453781515283277547733954394950717192002488093369488704841678339214140488359466885704771007222904922464085177895910714103843842144325074553784500528161598167808998100861026852412255224315313187217850653002539218212802484557908982478553276697660319602803478374631577052256119086387416993699217569605506835634658096848021355556261789672052376822325606476473647581422332130088497394777071199384445298502115690296656040620475270389497851863910254540014535501687944187900494240491878024962268982723606386449679115229596935905175564620685574157557669959782354607521729915241772660654806873361400739577947802022252965945289715319815825848065140663353457045277658125486097562046533731098090589140243640004817271932700967621552925424899548114446234139617545120338870048575642521047665406225903959547661818511821931231276516059953791398235217735867478118977994466684724379471526925939433881020209374228409324284407758741936897989674554851348407762151746653694155616644067984640435958218690416385908364486385622737318279369740510564606899566692992297177316944346314894908715289065677718552876690894012945853237150743380461168662412264362378809596389476730384384956824802551396838094918186034097399563695419335407863945411959805077765815750537995484356713236104897919006373007268860932316879275157904873201374161811463708032084492017179574920097692694139464733336563320137729139102027640733104287024855135653599086038154153786590471598266439986049836497657612970376430031356040199629131859211308348811762235131196777005333484541003900640230779230360171135741558563234488258478708053626385437823718393430565807612477474445109217204500703427870205942523081006635081424247287612851263164930438227361655124936115843823207060972221150855044566648374058394256998076534302210289160988558068741347774885735143568980208250892575313010318102662259442081601769820286689708117358711388702049501421597717046422408107910440349084584330984208668936334247547159719120604039708106992089048798285600164184330157316161748147110958091607964386053441136251642747069299604830916919278640559374964243145359431170919394135636293362462445675061346965457202528980746255863535537889935237428686640867896078698744240728462489317406062930547519847896662844154663226359524795018348872280418791291446663422900686452605899360270869960366824841050369344096032366555816270426888739744538077690358202942436939252055464138145308245758426715715314989457950295983508218889595957567349839598650587279527158440983302751632029428104490608024504170869603648454564134835409294134996162660061956312552291343354956386521512356900741043381130544713469171524120739936580311729996209320689835121605932424776420831942087555108427503999448891510898410723631294530061779970311443256403369791989249761659710384396344395833307776636187540845080523552160965295653390149607769700778988874030231475163479304591526366479257165474331366381583637760341752452710006144622885829050047023642755913552524686172183306080121094614230155202130460539045470361687342575697511111540564902489791887069899445926687287887208673194434640468068334536848203399797764830348382700508614713800117309888183074027818327909722665723971259910594023641905446970413713560432807395210536720939153219873326264641729163843474236544996200633797576142205428834513444307283576437351205711141629531593004664141492741561811206066034166620866851238223192042920051143721204588250502783968015152532218051269825832599598010906738280309683011320064270777240475475474390650426706800470891369216729286867818506706832461433979418041505558166301056545530590066764031152312924038532568180152155376395915643184029777544986603217898894839774680441456581527459227911310254274538059192961576511440167221186345217164160760264252469231528474641411834554783896332849907100728839873525173838023532728194420514229383206693091705720855933056322590108090278254483565319822908185712347071292084975302441643758732497370286630828014671689598299883921784603613172216640196819111825931419307582944541872811282962981312265699587100934673955876139595057432427173729699145523340435347145523516247258106923487390390425076654439974686120011191289663208567260653852294805945167182623399103689738085815333284551715441372316206439179047942569205641457182728711095600483758391918578611579568061720357903154318473547234888701868072787982825276783860004821401134103697275958289088924351102375242181650468518936438167509155324559817500381186224795219102666222129776038863313481829026846194224947914735994900789425003461323173649349038968870113392714806714462161142430246309952612683432568926201120869335268637357902903157382923591184747837563719703278006296519338231106556611731571737715620850167047958056579176352267417781825705635771636301695843810205003046718085916720394440831734917224269498257463190638069490339493585785443403798756379975973082216716395162679933397792550481830960260229967976773967623918143962158364184723101488841202764245486423068147977956515657054175434468908282931462516605414889589651198814234308751277691043306750434616414858576624466718682785729849198234880154298943371747352960814839535684423974811938130582788821801374790732306549771396273048487644192445853618755799962499860496406421600607238542146213562365442047305419491526046425935102447924889084006729880291578363944626504675389598098665759761528085531906951307327316143199143613035269854672911906950531687892905702161787332451428457977001933533520931622184121048587994699244849363291551218067681242490653976007189484061079412848144978179866395401207395348745914676955330155084433380834649005188170213127558740615012947044237844482327037786451671214283866130572051043214799351739202016925915760475605208815555225929936841919324422069951209385441540148884833735470841302759769877820531835821630898448545863330708545976028044787730298014777826633544680488669112000709767478998362874006168241662085434940990257928655343270841348494852123599482202001853966606335251448435348660436011858925646586391135061675823254921023459037637037044626439638572280125355985260233469174676232673488519929179604333783835871433225276262501996002581583416331394173633074133277022024796009629748147155314475064841947656686278112288601384939490329921990597452593036401135928630463196757500186287635577018930776994212278650096101729867093967889619666701792141083663431526882634686130306515200223052408409972330926312938866363344140016762307664000410329188455072579702006128038993499939805036237739787534480301952965989765641707965472631889743855933267976412286708121057121389729664808875525184397201877397520738019028945679085344192361671200524738292161722769358513923731902538801132786277089297198405049288209138706737191632032941602138516358818963146834230115766551864361157493014098874939408465737040481748879417492548568087372998724440554725822489882694594555193764843907278606362723434974899157494210523431405458213362502047051066705802068108247515991692291810705824128099963175004401458992290242433868035163850668570151046470465284063725692886260863651430064570459457433383695931750930886785793409541877497138606186862626539331126358874378999667585180337960908812812047375187121669835627787714748161859708012292088047223153361025954398365731517643902495949075229841607647920231403341918862849214700359044327082128728343414748346623219407793443512544046478557813019280414687272396793283070490886939864514881252507199845866204770994235500209790795287933039821712647980139640545152259010146837111050832754742110597247069434878301748248840648347426879196444540823491316629193489307097619762698637280278477620007331099138968286748169116309306353682107682771663620116455206759293876149760917620513979672185464533655892402474150900570255929140292860259529760849577950514724336681372511941302381934573878365171905888516797445843028307258299989077489303137570839349866500469810753322449225563703674676781710277820083156735971060204000493863119131170994346211561382061339228127739652153190435022786775517439797076873493975643845021953794487001117260160127165687922726870491151366293839239885280548861680835010334136198060040557033268085916514726924575112970220249221966810838910681929852650058907729163054716650287004690847251661799990106017862721897835012459813147792110424423283734117723590008976967669374194407649426187097875200423359243139019146803099188930280191041393313809893342631329230705821392566743303203278780945053731756902285987134367726412133986636615375852850389392869919228705297709995245617797828447489188772652932988427004139913563763258045198644350907496128938933160161428041764884947496071922956964180105956318810716451172001981321436272633306633091939733154449845939366666686043164872559378105743705754596246306010266093813152134750979821806689155038464159715201147046468274476540271542050514308084831681764597714265518514110585713215536316456446432400585944553910701140553814827782295351957643007941665684407312362493040936330879645947053372151053659062132522626108427523194597193029121286204500180992671878501427058984745420883779614003923007782983978138704200946614141746289179426853714114818466303923084059388920759839098370492856603031515864340653902822755872752594624160336225314259601289796439899051651735539308026927513888543598485261352304685961086936480600501949011504982345969393445492308545015475662518679388827847360993627807039472149094938764712442929756645433431729717198274080934455787218547561986195554852222588031798478987962995537474583753913345464700301292006726066811285229921393201094504555967388994291911768782602405212093594138627229383671468749693705022765148885600876839546234936655575948283893154836715403634757089699110980955127988906087727292712659555693100551586840373071088115340553311300184267641659978177199943892657717480513973443427591827602732711226995287113647028651206252038514293120937464052366358692970876773180161750710831565472915620576208058836323256766509543309697789858765579742774918141105476421396443236861306264966658983373708292469886344623701999378610386309188576597232500926457027545572530623566967481158179944871464264223976579611729459421686965093759732054611238735386522467446295864083982001743904727431672731430641709320086184407850069917804639561390210076551711928739510693272593743563583126744139404431834364130664880043949577887753445534169751676497285213538171813861625574467998709113400841458080244480229803092203826346694984119438147365760261150715361913618351637390201192219921234051128270059043924678494040162611765134378097213613198307728352895790038755293432689008267966258121756383211233408693939201921763496175764046274634674541678185361934131273521787690329589182895031367487786870105494131878992811619457976373391572466447674525336960027545483982470229348240303865979157128915041486698514289221611630465076508994251008027436705617899839237232238151615310565417790766061388681121960463940976927594266242973945601308755058311887319289466705099686723713977929317982688362371973699434951802126938106921061196690310232060706051049157263530772231983347166888497942620929759058471945032050270867570722694376269929034226448854675667188251415162687728130927907224402718912633038389568975926565815986307088038226722123223789695442238807545251879728895369458025829581827607101309790786595947686901767643487738281074831084899803373962608257981041665086895606381261002130663288774559578727285066950195147674407470679689147158764170718992398319775868792190203961931186087170325812657743710612278392296407490839406597909011364956262086088033627633775228345722764748912768075153202598251674951191218628534635955516326413327792098784937144456880485964359851040327694114962619080165379710855491507124212496619423606210428416558776430880141238431586673006088936781404899178619293700271942679910544537865905780982564997527718459886158491537911690107537697932132841427251767017578413269070694317412621165483151721861160039107585178083176849163452898184380369755941432318472586265587454358848396848962751524643355111421187253862372375553617461649175841877879300136994440760968843727265478393893842737792336793727641252192635340491676706654560099756441794119194581430202114000526853884646994311084471125076995663476882801508844912105961307291449285113918060539140749508760026593621716918115979051835746412500188960059812165613684202179630169993080030837089784356139149820668229142172511141933142890242922781314661301787256888918856871742176943456453789295146262324232453563024697339086014711491333925724178269860263379019802191857194686078829311697123315850747557055805051138094172722537155649064760009769628237290522363531836949123039245755996949692214070852336020600023183415362525079226988211935439650800028715580721082735512413975596335030925070611700915730253528760234077640258602239952544062347185782071657251645721306911542037144638280578403501084400876563900147740681158562233721799864775295637265382207884615903013837788362005880135856133414352662529600128612141651503354455376784473341882753368838012285823452107967870922579866378378108985591531818101780900100353431315812868840193339448947574174508687583858827129301677222644837557177023422489054657560307733464818961952685012142871775525506973646138089169432823049006289193856403443321183890147168322581273361002206672921162873281784713550259502615253346126955943769061449699989155036197691078473453756808592961389727655683602585857840907671223338037484007013927960928477816790417948695737517963417238237437097642845985097102724086572052824700544063526975367751469359526287140509256450680114931077119787958648380996242837695411032833049361648292708618902229115223848808293220698135736484019402083198191743119079387127035929429141169194184683569607491259927208455471730060810044717183353602037674763834532973682781754691458458230608013355259648552371337883695626506677932111074191141172294817110013408471216518506385884438544001088467462886548905454733591463433417300342001359554818584780851151006813844492622115257120514834232779009685058261536071234415916249061986564281799163324245468131347731817575635024182255764088505029909978245829428372892198939061485496207554709046484633789961008581435142292230296858485173656068678894326905893269605414967554686425728260987220611909737470534908623759825627251688474327476026843119752564268349344218500756647351571128429295163265676924616657634223236508420379788385134991748268763667678712143487452266186587034736751336222473225317588592878294242852590096001469514524461953126034606953413235029916112030823768848076368172413928670025559794565413572544785918599900225090087392858695150809930943060091993829977931987324575436203424528236319360921561744458364752425968839103667622332736720368364398912910562704733825745870518776493197149969773362531187927629505361459811354359668650581411721666103849424985449267436611372953272001214070842533440636641782328165166094151614287657604249411276810945035644193049914622318069229620486383361923917856877801168199361148449992821368824871327336384252536750419677859054015704462479639006487991907519301765720859509200842690285165335619297464438905944709859528507446398899532888288550649391832350945626345837442177252847861121375673389258787070917930257347376886860618168404884351293013720386883747657116294354196525715910166370719798660149038519769945984051428485926711818372187772303927359750020942541923620705776534372886118434018101907733179408578567625362851958167533968266795853256758692479845239139140202091331446143190959529846148719248702472929321109831730059005267470135380106960133325319610121389426182503391875711210263913019465359746874343895112647151956498224144737336555891226222833803142061542444726212731303160123842975575678428393131620641081037257079792333925713408745773825237075082079852608517612222614259120800873125252509333845864204984932477546339142112842336660220442719329225865127314377581778167997001076070989528761793138026679875224772896855407198338017494979745841087728850246252652247859301725144366992042325818746714624382385943228223339240334249481300862869167652498781540459059750436444914416682629164674840232997532354464918325320563645617485776850408575151992219069964912679003172831157533286349161024780624601725068645743677793789542508625517485728725512882971722000026394043781979208082850413043672915991583366568392101349565340448704266161703478948922037566990779999557130918020917079252793976985535471360938748821707755704973718637259712921733544415646816290610998347335436322576362999421086305268755534449807139749901186274134094045343007083053805224706529435095210164317805262244743923895165348241223764368530936973144476266998110358592718279150908517290312773420128407494112722868804403590074021227265988582825474439260904445318772497441268640679767378578139046025787381128497020699465492125869698977621587488706234087838679897576016489337460625979254923747465236110904868349698988885728240963365175254085617146642324670930116251445806954141541862020061375356420079827994916309944444445272544157685153059419211804151825245000285058337305095671224299529020664517356236274059539556423493536942112248684992565886627037105941945418666115964603044819595409997293801580218794032774276447120555689287847413689504988343503118788523041439082085541568005322303602532177565221666903109642914952706036703085251758594148151220295319170110567254220517904535900529383407368845248941441572435565632304232665957731684948984224942806207876309239747216399328229397831540954290249455163972046418795364097791887956314889468847485418152644934523411698989265295116988318066166143496837505828861637466936938812011460169528300649071526526265044970378387208727563930397414135781739023523822182318583217487606091760744176855100861998163060221829551918309073068778056474072483070187961733272868620458762937169446579359009069873390709866495880716552139309112651403178522891760227545201002822816289422738094938936811676520251085315957756978120935995381230169482242387771294114367532635394724353232421191446643395482810832956084703712044200667598171867128329800273399468959512674934781118818776585658280326646241823361598844343276222090083649417182397528252508632210952083292680143714810619185601559782104869081856443076987488220248047945563058687569604070719422413634193277166093592005304494364522070080289885593649692176571153043861504452604965745132877545881278726947072791859368778094794421405669812983106118727223802097279539915393974361135066298597075600360817502949440736654915743663545216052895236927307980461888811731315114600983865632440033915193397225401391325950447249438049150483782049466655917823878870295503625121224367708960889670309526855027885669634715211273454821160490350009582332896368940900911924470961363665351486553235345127624085890791325072163439650374485963573758130256539562092473777798931578105830983917894828816690084861578625872443485321016239986292449820864024712110515579173384706558317731154512748234617184839128314991205140887544665408941646290731969724594115384091772629746372505846957965333481395826307494852460045537745934171840461816384547639230834015636666046684197378927231168109786824818920237443467909986672885155923578099808224150759178865156373616514793246389382020255055809659014809723232013317909797075222316433791420476075691493054454923386295590431591198186128397198095258113749433543547378165366301089460901221729324354942668971200018103462099781247829575442450121219280385989283484768254339825117001864553956311798911244378355859875297303082676429315551273778287997462391459438893080849811793056623177533577066383162878603790117727444953428865879145777097013692690365542724381414457309489392381928899736356910663354779615936784416218689526542915177356390551154832048298703941334893480844771803731695318951191333096631026841519992314572069260152342161713764556855228272255736270435564001036719502499431353500499603528052791921026283020290057447136900001545886854814210698255014544900820477655770961468766891688631082607453031084855418351861011955666749620524852755454815935033604639440945845068615622304233190145788428294843732602163182681827058440189357770358419989735109391979602331906709170085272861810625108894291921310595518680237778498093512683663271120357953254784445189960624832034630409601726228703652406093522627166287130441709706822656751155127250120563016237185435885417274087739101989593955517886036553163295366555730518452433293998683317859494577790289928208793387090166196168889188005527113670344878014786096383238713247690487776167019431594146480665817920707669261519511448112242972668323919879895961862776922671715287050758758944249700963719289270981106170839379448165322945078607404936552457201255098046217714978228959366042246095294171032677984102718075099727425125320815340632429971732435336854858961425099910317341777271757373685166963127494329114488214732328639723579530675769758168416756878411287941921014118146062096406039852834428493711620835465946701577952623418928626579127342330137419358588886157497770537191880353415082506139021211953296793565791574413991273874802926392828217737422950105669886196946335654498008487782617645520543377559429505273295410169052853419527935076236842734933078809003007476133918939621352340358907435252567712366857623482243136106126481038515875916482062868223134125845147240847075978080646077039372370753846101073293117955030814169753991007236280019801344344465170555911171158569317199678443870423280198936366421297406068401022621292107229269764640387868419222988418579144052302860420401029124274278296950596512385184378082117363778448032083106446158701588309843279187437016337344066451098709500488699625303919929351502089289442391175948403853817127879642963570045454096818472445259274430814173553639140396891374588975328954056716752278574551729677418724723497026353145193165321397688625462810210407196684021920438663385269273300702177187131820943487337518248124864391603522222384374681738976181705958540983852970050934894128994526957225704744230416065432038054487119441023353799317510542836119067330201273233638593810894880125080739563420744371034387704256054910972253521210089270140989849438920031704209769110781592929581224755080994405473686695491116471529900965970465788400141601735833090811495333174351095594566986334846067443687211354806721468540455765872724955489065830555969728382302008861139083373688034563371845972904771544960428075329236196038815862788105840462334584105215676810017071861909991398462963846934787555428025433957878293635843531918706292268607071689334613376287081626530098726100923654666621442908338604064046139884249559539558196721930410686431257787787478848006543729988373095578797358838457345694900103606990858067104385185668144175561847458193852134417566823381146637615987448042487343236059535739003722953898916054531875234260123340736759996764676777556664564703918970854131038768945883435954150135954027404557350578578920366771617660140337630813760744069365668228439570167880747928960604445605403763663696780321240538023979043016214657637931604691238409234992785920541500211955464256266738253716043883950573901235148939149544911063135808667494470116609702218362017817095123449101196953465247318252118593901008137563409150640152468031964576256262000620747672233399539182206362268928351890694053964435382521373647996886254000879380731165933634038425056427573352248124350072885471214408901072583000241018368605979939277596909417067636541373909216975597982377265139555230284793502552411277606970436461761306406843047115588463038404657078488594314306254265604583109299850509010298171103959714004751275325001601590351803394506632887521132892343304214080469185629759018494930922716674077921956649331585088811132308400610019069659659731336635693543563241890966717186325835231298312836872658068110707288115283240320535398048388462602778025820737445956908251379035646091098256225982683141279242620065179210236409462790666086990845756638261056558757876693309886554479626162248884403741739337164779899628872720911570331608459977360897336912684194450872191770401869535946245939903607065793443210984873695882165472687616882616399039371412618249610466295998142013523717098493010662455064283938591637269617570024339333405617984849600044312278728294821628302282240896592677546624669376567485058309552303503687501297105283606723333272450493266276904656232867384186616508399816397718352089296687277223280441380936359581969219966337748062793242404051331911891590303718244655660848621530624613992088559204861387437332885775166992757721145536949396141434693639258928251872549657906601086755702598158228751365695410647092401665503611951568606191270147072049648759609998197769907257991374219104350864960020984708850108307473666251706872005069741389976752015770226037721548559419432476979920365689795773803339830491572018310122704173316397758454884297987815703500963022082843006530107954699480178808075516617308250975296960720817061500418548605536005970541095988253052922167231347675194467083826321712381134620660143035240215715931108413217433379989861112566869020674409587397276689713853503517929364582294987166264379533173187484751722098082374874443294635315586636627508936535604166720926335938483716530538900636739234815068967190255810356134745190234826278127495432766729927269163123802105583026885317961617676048016508234713821761926646661472704460350941208182747202471237881956565855839169744673476860180107246506530230917280146336807714631706026323295180846633939470578145981439818217514123830300424063257632389939030721105614940488972926615947161817532790542503157823268625752534221184971774046472784671297089959899506328976643135359486836624798893884629400609393705429206938153404268873240890788365874763888647594947988478636123777030125831928554038298623814704523861744580081617909534562199851541304270790647769941902448307396694529741093244384223640029442899487794067398756811144508283510207647983919846415227966145412565218056594941105369790970381532523954453494741278385943716026800019599803730381679057028131958289767362498570847223658558562204558489599509647000746571014853875966574339599738181093153690150705681307077529780543625677336860437749225954009248894634214821158226331839048529676620710303013991098393837089870923166823224150358840989549107510598587022558318143355307300001887759480345711195157266904159544311128600250609729677973540873546024684873682756494309790476022954154123315282211365636321428629997502175093989450448082642728138603851302521715668981095772195703437351265425681206325712103832252795408041219704503963456584035483405165642561530633202521278364603916435182643697184862866374393339634107604169695922319233116599940584308713130202684630875644931614047661703426042668173033533475330433822385222311262209141490386963162819438194930381162866144148901891115392114460962452509159494813181158301305025900403475973021612940484040853796965021746757003211618566242638688028063530205185185173280116657394368637899568635966131987384230730629913522932362543752215902359313658306264791458362915964786368461528961826893221641019658878520555550827045176300283131910684357447456294574516027543236812860042703149659557166133540966418957418965554115543378733093366535431312062953724404373449318881552628482337907283818405529172616093386852501410254514614725397604613339233448193778031262696739667603667052315738371422296549786638487528271949546909292780137927228406276532588840950939178044534447577850204537124059328624611624552995833981444314533751269363963688514143133076425744747870849960958408105815059875858661002959581756256484431066633427464969466450232152204782397269187295019562384913591786186373996338068389940926129318648130352137791521530726940524494618173303589553508332075173464712238551328351901917009183160682597632056251176914815524341714768145067397840340105104119203504130409842165826492655532278398256791314203390835273479416623989159673548392124932174281114522953404906886448460748873718038475009704875374789001888501742284751100142901962843590112698733722505293207823662174320105893652857800993431155382889523093428051719921560418041030500300469243875910368104919900269330298122069647874776054158974690638461843508384591047140697506252705227597019728027313669432763672719064206836402803141287152781746762956677740981426905655978828684212720479301767442568452611866512094722097507078659357794942718511729751881243201098665580202148496634453152527201674577056755597680035668098910875186849805789052526081004867769882524007161975720221203875691774645375178399223247284877254167672563255233029553675119366888190126936186773112800219223483565200363489553532445302098368604872963932677191831350480783947584826823271383430609120398675960518390006585836870905612316443464051439704970875163359208591815037295845892181922016009675188512541207228656787557024182924085904947441546837622109839642146383746548195107351173013788168473874106051162319941717404864543293262270495938070005727745847038325726538108744238516674480410945373665670356519481773441358179787566470855941848879457234574150572339953937975240281787075303514886044135025429351245919691178453488289739186079633890471033919940503599118480170998645624411800517825174168413418524833717091911287172756191607372286839783527151929485439326241684991369027075826845284886232071711460568513259232873948179527940565704769703177721823030013301859552939771355928896709731713461624878693477398781580102642212079350283592926626896316854673808093398734422229925561974729608648815446217315228332964516226094275315366893801285688013208284195787328483918129870337203148777902954019840855878042485678778228648966711362819790699533956627001973037759661227353603322209551755884129235435152814070387482295971183581638511918204402272449259448463701884865288942104874928454124852325503077042912011828490139236828777560425737024965711916669734671202116838489751302369675688213728418618578297060541099573011135487942887604921411270979645148749223874892170426870503643094369728023832726395479806915518440386248644141863981582228352160808748101539541865670972147860271323994838026510407726462845105691063344991607058924625836950140725582588490075231427242120136518283896020326169728504102357160161442292859049278738019791001060195549419754372444268762223613120808302674640616616075314790491071340807587348364891615794172648594145140081685791368579672873793091487793361842199312151570750293314930575425295510013971033167464187258674882992117176295086080797448390363045456167531272809262901574049721831589731907102269287546764076453401611430752846630216967497885780168384651356714774438359267925195072531415554197858554950785364189374777368815123001543183086671047361373856672627248744900742871831177309989003468910210412381919720499320687158617922371707901949645978180256229833071090282392912687522573564981042110542573391262012064195808300101706026966546252874534814359435532119545646331835242543155533692098955085869172502337970393479970355783101443468831119102742766406221440099338516971336152809843448960450359205850170368507421018532562749074535469267356056608622641728807330055303951409852003671997225822705148495241024320622944519922200609232237491248462868451888502309711484389482165165529371338967490759455965090966802387428204613562038782165789878905422043104709077938851881908052629216428315235541474970761538751707583792963372319719905571830857760520685005707764558387103815818039661127836566879364470786886228576811678790064361262032168444322021404059980137588049114492574830547326139389121045240318349073369444948182271181740125667863623396675747827716583616035581119679420710916887634876728503268196478987358106302658908146056969693496689766207101161190775987404785376835469452556179349421339146923668774554612514405856694487574829297590028406651398160151442132626934801890493233233993349517669476613156294184022948898947328177945909156209262562057114230147004022641655328801376297042794917618584783535966129584099880191141294299665597684209483784175215000850669521881441400722777213973577875132484118110993377246591531498178842999703751646536269378003780299505956816423887893065307231406685159532516062303124876213427345546058752440437958298740971861439569626176158552396553571303286737485739833363511522932445653168703974643676449736998156077678883465262844876766924982813997890661647382934582101178396406350122025810248836709581004964769372145947028502348821707182642195641980139993899772644890010681736878459892826316789591909735940957461944567325299624442466177228955735560872045467383487443009975689294227652122116058711015476333427464894843448755187404238860858425453199302050970830546065497441210055766061612246436035540206995362813457203093175544130112143509936457739988541555301248021655707814465758878074163974290496608270104507587009383801723198557026233637772594936516239004506309863786435742791309027890488211593019922246969234933930293694420934913432231071500592768092271123158796774972726003464122381628044448243523192220774562386243395363785614093823614733535112793163395999026324549839115434125972865566865292200505415095909708963651276775351098562207907266663243438497450334711583244417093385241864384850538935498767262674192771808059323143442182225268870866404437651343576711014222262601377743279847501573158116839227880932726270906715787143254760390826277643506712389446713185111502966515110186816759710415895444892799550015541361989419891821243878961955152415337021084309614180795512586112463971649375975507610028059443330832041567676913800123759914725231345866142765647119526188411986416751517408935864604704116204497533869294166885949748301509300529914156013717484811470428250773101385316205957822024782507080853695917785972378251327788693394266555435732018149477251739796358533859069436343013423579992692890208114536187526116216383438206258416732493525101263871160453923763567559452967116711944655613577643606694507343751181258574108191611688765544610701603109271719856714196816409919132041285537925148702320881340929002096992020065979357488475842540656639843242015657887456144430495485209461721726093260425204769042254664731762259325431727951009868823229662683340237754659668436013120847393110694867067189353918390510524461604386364834152028207271130225178258678967053238946896476141112852214359573585766679246562320167808410887415101697979289773064477362512308932429006247557077080634420988828833076295841599525290462891716489668200588646534941830386550927186437416572377408911127946279882680138875519691549031411232252164751065989627641019817859978249711510350859159406448888908390914614952532147218808581566871228949244828938972223927721949440212909681165283027760679844388404109559302118283799639880370255917710177011092785486546240003821295545929613296422725789876262205646254620292972986397151052410504561791404108624783044139511855416359730338038229183393814514607154578660681774741738350449877059307902642553348020781214077120246680475047635513644437575004067560025101058145917817953824100976103222966984786088543851711671387501994338509210820027191779210214330469382984782600559582649454158536605687608304561260431512423739333610116374425359019552465468863516667618197951079983198233890588749264781562127052628883511722234080038295652592336526264439333062582452672048573542822869478857941271303757993785304027834839062266321924725463442119207852741394683934223715439023367228129138942765222966148846234318595667443265551187915576542667004140897352175416603166549929318401433780383649063485951388502075855461365059791139986426504417212296792622819192968155352874412821856569694595484313523431199662257744667699985031090137024680244527467828860939778419625079032844756060050874587903714590478024316183207273737244656536095900123697600410658406450065622194154496413218034708939860744595237338891619889248774028391000651304297852570278497892465835455384574620745593705259339755124162702575998855622874450224790630944981985193910936579675303173347402949343275811583491036535575347819484490934008070902537110328837389251168319594759762749795392139929215505754090821497081425402426299546210119523624152789845526597040631360379394394912016008345874295280857688054079976430592582593724640156848325230985250908573390082978930701207909141625165951197868185967831017836097698417684600269724709356209435817331795404967013294712431923997890578554808894096179149391522696145531795786099343601959338039367002408866060532717295277773238288124043908981092890594767059843765902324978618624067005674375492886009788251497173386152498441810568205539174815099136107420271561842033703388515090132180246620505036398513560564631266440596446023371636721724168757403632695104861524807179958294352689597082286983125839616325742689954873226733595986666334852327736794301317017990627165477964394939216211398316943719236869620653772683391702483419805173161153452976501726597616319762721502072443250502049275492250500856374618308405090328359076339957024532324970465017723179612927407600916978317614471823495137147885201711060870722071296187243125249203108834974112991406117207128149662876204953539342216155699650643125539506920749347560652005398986372010074658766094851031878298062531448124872723203827002818504514215289715037751002429109757879120458665886024474201652755496083381326114156899954439736354368147360349881538066598765279652331338462097005627637484468464670703933297151174811508756887489845927085465118998267669438438447696252595283924422039285675720365102295791433852180760404918625797337919387007496361403944759974870252440634929254713169808521572210713726852762158103443150184193510041733190804219640858679481226301379901098832253146564155400461063067574978111620151849006096341161691264446570519741447746208922523118426240769825119349769411985534837080960646307778398335491211718661034933627232627995412248131669619938360751771006107066999078231092281166118749025197052925318010352893425046189113028256299654159225365295280177030598309230077541447583485548255574137691933255593302554119617233541693018520913892964540501227148258860834588102203508215123034354920350074416209768811412817401177054853455865965657815349156407615062889403709942388023810897972285687060003950461831783568473760600948802700351453793445687075743568786448061528450435020120620831674533592431947572251707959856052776906743644771731411837329829709906469182872731436518625735330696545092472065805030006080990172710268535453791116680375786742858237413773026594733455035599057711326273313653738072870489542926443930008401425091185697843198186309016260420643444715420683846489818316359059484459769544733306117704971143794428891309145219423807267292132469397259800825427412109883584574115510393158919547511513393359100674852349326455703323337573475188080620629009368139682909020470195655295663555745615072537633427670840112899198039014683558451863561340214735550782964036922119983386655829682640536378165608246201520084904091632394654276046669108756396352306963127689847263786111800348269035158247036460139622538757062440983999477051668474599766337810769201084309568992016673137264978749883833589078228923352837059745595173361409852774495507599944176265314425097949592382563306219382427161492253941286379530218998791337212320179115272495994425046791071860501676623925682444339546079678654849484910336777521755786331122086224770303531578276916761009269333536672179570275013484279203711748000554545084117179514850775284824682572429640335999485367714701303736485914271860385677242791206802709390791802186409846397654873518439070594139984575626263653760094989457471284395953752117024670133592555943002757264462294290449342853582813955781651865612142453324563278907147323599430929124229216077411300949328954913152060470238459487057600822439486812567885010551007036045440984461632641141116892144172820346034976517901971567720184659784529315263710852911951933982539642665795524396291614018845394784354383224180288756587279168248732200350273825472319019541391135372943487781920482302295353788387023489904506157151938116567990648425723009984965232534588876507105149586934701655691666333653034446911160361807161104325986668378149996088469756902415177120159934667693423177275341113703119277237825205506670828360374393585892855774343823043222737876314052274593517211673504934856590490047589204977443228842218562335308519326222244284709138630868559086611804307886081940093503750495189356392488058530990346180120618451749366407614532414022686042294217815586963635169549090141998485764978594133680988525262763408099798317805712290985188035450943734968238412343206888156549187351624317204874553329772423952053320351580906739381301180194804320218793620771090112166313806220034633081672954001413340771602594118562959113033954928600843171763142208397076683172702398504494260245513716445422398048878544007241884922964998413249271236935535377296283885865360501875482126117868391537377971431763502039632126698025033588487245546278419206663928063752840281267241564892337259398615876178197040817711623828700564979681290223123306997595696609308429276706844409770930152106880102625190197535155418597504618127231696190911380867876496783125666952645856169934141627548739285896752276690883414685330817488438520892392732368654178845057674180876048329154941430392242597783836920970308816570783841507383564421310711846760475426083332979488299424618857937324814231821334208264647971224166377278437892177223095903335217464053449267212527058687654943307634991971670863816350448047403665177917997875167052225922737229815470295177318811382675318048238328581069146098304053695274015563924372691357227408593049951693169695769631283465506008971386057347471795303289442031217263195526586834911781957347409922104636133262158979008046201197993187010552102837407499193842652393136630743824708160073377223598697060913365925327534592492096122260244975220843937845282728384253333903618123580702793815913720401906957052976269219750139351999862985609506898318135836300049221048559666647041826595172827273337819588990669957771839933185664414362851185828852001089437860791167600400992683370842144018543618537151496754878559911323114025293143422342798702236309097277350512720956094822633885477062700759971934681242123964923171868223903557816878308011577060070261852573746662848255813915628746473522185897445866944971195077224486346867538468017003693886279775357127725484891106441271131224300773153993156256289482773386427852641358806488799560022670965321152326084857102791614241276509077723702932158488635229785799668443187388860149915536484125194343227945453522756671923936707971265454240865340134068622749151467680029156619572515135002373557036177435348415320906742269630125690093319956405507459470699778974232258989051171432699560895765971755605414462586792020851656482424967797556614800664329539953942118751439182274358901530035166914776937548308838873326541082505115352337688285882012442484483904276391371914088643165492273690318622971093963047015472654722834832230174110517963668955368114330190963876566070170245345392139557842978839749778951182902379823705077361243195467637793499973904499620345755978612907111973260623263458355634337875971094979389140023797884565389099238600031435257549430752671140366107359499854476051581758432922503933459211223534148634396209043375565738652799977904092390934118368103423273834800437507662988794096314589895420460536531515678550353540806382789756614925973695556928073948317507252272301417080158404870915626396878432420032948307219701083736792160571401014869212342193208202174651827204024615930258092952812501986556329421021994159157870907728673995482374311332213276368694058262216071420923308530674092086443117299120885808295756468170023016608714717472642808197912825480059072037367241151754929516934235610586475913327549673271382676703642867496040245973792278628987899112080655442491626389447715105428676872451395680884926733920404139737949982037352441964205842178869429823797632754093582923532660388977222582430737270526603463162794944788043816416236107302258896490071740723655602349899640459274341107542516343704989008703130204455026986587647545897668388464463540480494073942217324140230929290651013159737207089966945496697252752374465238457189936699324267924822758879700313771379679640899707186728407264378169316943827471777912495203298450451799329364365841116934942976684185958008172115777985776077609133213753792801090521924450076530432257447153400064480241970981422632435501422294417606252771213362153295631405820792967632277953537799614718525480332496284435677307108930081861015548208551841024552346866871397951979974879018968980693724857020042964854450147647394648652486176369255913216004334101146216277122353372580151534502113144462052062291675857914290283715037646936766088853419491819690171907458602781974382213951217706318723959245714534694580812174004582943666299893448423890972898963936428385550684731107944120197331338510714844109586332431028729817948074903983247508559999794298408193482485239173855267687313812615568005162607595682220252191668295924815718603802714226604083600590232679387430538791338490410038896337767891601427993824623029839394545221517222250709394090179112260245859750800131003848438788641582333154482006871612998090089848299183618772019859657005060160151056023732373119721948955922972267878116191684600960597233745209720833012845905769707245750089109601354829564285002003661626657054956182850461256091229575208124625523544924876884652742808727086937188181716400440240017120797455471033204324949006449240433361753714093339908894930113689216089832684918264866663424358358871671869952966182897569886934857020928652716135701287405809532126787991461492052130507169031361018487642371419076455653597388018462249571313664980443901789557824644518667786126793272342229012608229406868725308033509754820076797777105113183741873505875506062859241390962464169628274955543953346902950383496790768665464881066996126482457483064652191797266215870916249773678934177968982203669991929886363369134473933250981945443715033818376003005834479279627940325473894804428347250713279197492884694123406047063947438017633680825532296258385694032887302194080653616843813059791867709664727948699743004385862092812874208701719587412067053361198052893510548922090836928079443129171312921323074497553588429311711565305389795655465541125037619984472089363498946668937462994570738094547730117410943507056422825744155512498712374353443696054135351385613481240707373767310191623814703068754924886889106383534962167342421627095803843271449563066629717974543850265721518998005003150242761480021741428000789380616161474961286871954011731926130874000759727159261011537284158148807226228776637102017278802034956149866234900678213650998165527552641571611267824214697982974250992722701799366441191800828703351914526496519202769535858970682294999569095108936931157276103588882548289746989299590633796477455906405598869910263963075926000849948521771447617835768098414553123836617889668390186957866224157047152816316280925101790148983889500378615258716883863741447694594722268670550631365588647298700438059115974058605798219821575969402096595441201199471671127264337345314784515927710438211727518952979332279439012151611708744410422854603566586797799434283432097945208141720238965413346751143290661788541641317732108282891072230644642370298700739313161577843700872707817015435273931845019396495422773269903768818331524513460702633129040347058957030813940723138117441608633724895615432215823534751964425690561977519533861384138799332283687557328951980608419405811313820434796047422882499532717173951823272820465709100681445832661287766195418481679271921967964011886903167966189047600248450331347558770024115000716375073981119924337013229959928123101133351486095119705715900174013644866528886775774586796432583188838114870950482574671849078415939126706876271584157436600509467772530220438444608290756622985585284443561007053031378654149102710469008783384435816632326707105499359498919756581288107311460836241173718236414502657081724053636051653575403763242747575398082351672136478696484970031129803033226651419178651327901870872022255073653422424315423482375253951136554021807426985813800083809188227073604054967677877234907268449034763469961059225040127182992984997003584268460656071316082074393760672342819610553198316470481043570702352256451884318989967356827370191305155146555583371126380317997544909555118457353428599531069544598771756361807454926447664825144876189317715330697954043979928298330434796005973286891490125350967342190640906128043332794750423945481563566793292305591751545522489583813902262618483898439003081922687323360558889782376738302614429661827434017448641500938340864922333316346956702667620807394899317905368775198480695379597081277880515206205355794531953956473432776241093018191748857766988500378724123726425754402344403754282010901532953077818952187527462506036260819685618520865196959238811900745907731811510110478547497824074621243404033036817945163977533832601353656210027896318090984049395810008385385807669052503454481595534630188928489547478858409143805104478769897917903918481462870619351440900695392054655561979763478626935988720424910239569534749899917077923332999186860184357059061062096003660995350612390631321104913042148076448342005415942563592993913030265687383510943656609501616166414698307415475190409181552580572979292064910482195957542916037050821913896184672335333154961079702871042950473210608245865675010610260465263259479795273018669289147743883129553822235358009275479776660218774590606318430414602517959723620518879374576082641939822298420236810646237461601894594099717600673464034576316515448942710747416555474043601180393003144556467521706594617964741065293789344252885028066248529654446115747509688991984302494365406098413516368847248358180449085239083202731161625604232593665909856229173593090014223044030331555266125529326186395599569529467488628864668808941365371265985305224747240131653736087022494094704652877034017012011396307668934032647564758149204865298716211924062078595122624753161872472315877999082875668518346736176696066002254797664177424756130998192759613423844462577993862617872281916771054096859515361647776924129081291655092721276617630489501384812513024519076001148626017834338762361703400137744657212691436075420267713697401727473841645912431212155762530772880283739761827546618407757690382935868225515577037384062708238577738197344998165269194446631982954922221439945440477590528283137177040679691805605951840355248364144147255004319051203853914376667787895157997790774160783343473551053056763320016625728380845558048395457349578360647754437042350003600695141497121082732723764767289744703234073245588095276469684164566160180840348327401365290942798840521009255094136845876600192886878970795173396188527927326012670098369701722312343578915530549523101645223750702036558565044757296351360551380034687606267635258069887989224835532365419635190751732915252386784843570771927924188998632836664794467484813131618435521305506079351806426507996487636729688336942781096031741345480508658100013484698941443323252908227197545585583905194874382794207705708412162541241755010527616229987748199960009891747914863399843939544140572191476102981023691670217172117721180439581223184199801130460561891195037022006788651036621791962124460374159929270690717345511941940957689653422277145635444321591123948751969844434651275707508818558147547207598624406183906064440803571700194549145414142639351425331342956418995417198438969401392707517361490197557772183780846177703565393367064039897691187865249600220144608990771353144310860630334536940769490862490150430447060379249338233542475356308017592233259877218982999360340099519779050939399906141475748586577109710841470527532282493608465035778450813372989124927590520596423595583912855777497784199180658546388235832867675862271859284771713719410681922990802826752482279100934924391532134924706803446085729797635181090126613768269256692419171084524855771853153066397471883849848797533822598862813866126501774691322144701696243763173563318054961327672300486671603829006404661674821578740990467934418104230365180656846157513469990718690074966057847256768876124338425247627099639233306358968363511571032942954654308215351461824630098834969488656757025020333343193813468577131422500753703910351701206560545493515949055059607577851925040288717529589578004680859276550561599595022555000107369924199556350627511579989482357506849009787959558970903654743623438228566400235144046382345881206842792684844353574596975019204506009179620771568452457636988904437163082351339005763876115361681518411724932902427900969742422101141200542745335867121178851893219078886595861572321571869216522376092791083525968782056330708165310665444249668815321591639599507697315346156336738478118060667547252778410563356801174724525785591408333320966782011209812311549358275697770730809944109948952034887424181625656154206094320854802279361334785288843613834352280659093830138647875467967871055857012995656333680108793542481506347744392346876083494278386585978536441014133296182508891170192198582164020469139950581228637375023513660329975884732143275744279899018982531787169061688406220374030119651342505441231012843412790443673621849439315330035633397554343036871590869686055509651701444262504452515415462637773316003500312919101931141454921602949174834858703318857027701372790902512574115976582845020571738923688757369795716760736636553209019218948448289663348205935328017041761550810384181098821146849279695870206996691244345242330260765472058225200046336936355402111701761498288397115208806660334136454549738324627316097263354820324001157272349472530854563777373883279993949027966585563179046455529846290511787868874370512410398394798461192501767886568099945787745646029443880048407473470652898543365662802135007101309206656776074710814084807619147867672008624425217707385182489937464505926518546185003175592307237600876006098206344074778999003095702622437103771182734073530212478066140578005251169870451753608063045290658271706282271000111712207847729261394941429133445416607573245533118661872723248008322198365832429192343777424851534153875407859948758776351009697144246237378340604748352914129238011461446351231276496710119165996206119358548374295012369918084554384162927013773390754428167705817305770212039083140910638592221476884712345042406744122282845128706242923103185046124226321668600668455617783322533649354958740646898809826502548108791214844783248489494889383952998495282924594365351745823710293606942588480240047180619468644932349223634918609767023122296964317745140688572011112610376212398898334793945298331529107912270026422158921472941230948842671508884063936759607493928851636115762904232150062492185895209397618926264996965382468648194585751210030236205079436878056165277873185889991727335134641114465756881579213743520080646278111992618461053399331892683733685435126763958552758104021547873656502677849701419647292764393221389958446318952129496877947031044559415500087050191777673082443934659125865036687491611751073772457572729547769256220000338909841547364853632590377548998137726632257191431314628735717602259955268529612137701201098305351111100955783979437012917356628310443420734194931690447264597057268603152553594061431801641682571843362664692491526135308500664611550031278340109712557621402169410630783617138495373336787553664761516647613217185290776877665117560796524841478349902180674770923472393081360854790327991764863072950348869844778741185053118764698357125316296746570160363188800711285353021133822577711903305170008884735728889798155544140199523549342552634968776407581509716207771864121809003682349184573683685531104485223864527375357232415715661251348496839943776103983415496381862759627159517552694721724356605369752699891315699182948787829642496872389625756383522990498006645176213845232675567235963437925944008977686260881782829554626015039727017865045766063951028669568974140700245761027605310343020732001681614100940067200556728663430400838923705997654868142723790455500777702117311601841083498894088761733756351314014626182227474867673682670459151805627136613421922393186405112751895737202063953983703169358002670266110503420467577113429621653021667733863045256357030802267322498901374300654438596911927268259600137949366246885493751523135097828971960047504058333001867581634081031089787592862997653985441502150686212390333575706559501209711343150364965542902257524823833467179652105841926807961580111630959895353073373975755795177582098156846685197588380629574170245298802757382029646537733250972301373812319997664801089359139653560728371358045412967169687536879655243080817486863309570124534772816659151085735972180172904203907890814550913010496572318421296619900784119666058377265744236486331385436657661369361244721785209793663102953824296493501389609017715959169170660547687181370910866040085611060599010181894904891345295837927802448147496629498498873488650459445366769823740177751593896585415061025101080754379074047195967291954497033892238662307848798003972170105546989799459785687168722209771536584614750616198058224759842394521543050046443764328918385584099637857825410390243484335177123206218718326086195508904207777402582941418594000781220153772431620845983368295085465964203039057750460099745457088921399956146820062949474043680117322393960198107554938704829383690162654571807590834409973146882300138154023383498344208979285711476146022284334487571309301285467498806080566922986613513308117872872478376857053515625554600471378223877595406491960586932994790793048731635652728047741496024160954572609842973153448580527032668101245589194216667121810194019391878830456799656556031610789294968851608337041779090363001436575595555471225950774030116799341889310325499338989747491709771035416790191342914912243357529590034841729818649374359637894459527944734825148967594269166671693602480861053154863334083899841765889160457824608534961543870043828764260801586812945700784501959459931072380376452736100457989929315430190282545108499406638249695074555651342601559264850255004696823067864249006251379053664882744715190173865489244322924334247477332762960746229207460093540789155310096327097847460061587419429621138693659974802700336626019799893600987965086020726755563869654711625329499600039410174015538036204131348390569907323411424022164206629225441961023603881684423704762080780095791680923922037011740625303161344209981968935808236326522150202461467203150030525727301812669337528079542452782480912467945031491411499197264680695753270451752406669927784969808204267297067896648150418206941519709781493476482167843190986714102832431333264947833811213298995260776555237591858115609839687286981693009924919962867206184657024396678814731055537483067430892481005990618105665029940667587378401947481949345586713328788401184294120113306149683227334723449970013039327181284661340030447170051804943970555939636199417563452204631290918306998677817030263650797005286145319252854999006144802918074597430738084845223189856486222744822038469903758435151289764251333852926131362949005039544206785868855150952064872119178968797183491544492524492915509874116466945916137589755210492492148687118348039666270999808931470390098851272811635824722616076342701947084677016471700689394634832229648094345060240040561294789105375522748956991662627110278348168659938562519257303257333733533289095276170650115184590415006065265727597339015754445940260104586933405914480911927037864124571964047653513557972122350968729213176125194709674809482230498756205716372169046682645267367439677083729643587196552015956053296851188161211890750878746645443187311572540039673936000379832726107185657611006129682430701813523202297058648228192591819179030020255494104360144361988776876675713688906192248109497180183328227983828487961775902892845544824019385624190666256536341979287983075564874062751877052645732317189702233318879060286247217878304975554267325781115300572364017336289791331466160924614510475441603474483239669188463272464058116102871915719832428675214788776041734579097707172735928895474271824296131783769298134874843706667236937418316019572320801288609489512204970612626465385820503076734275762261351703547376922908388571556491389710760983764543842724252653429811451738951465183097025521719973467155608137444316947383626096408814731196684262802677484314797934769187777144589554060700639140645432126362601495486106502180189089138439008742620380050685116333255574059623410788915821994351833156656748098202616647467979794152211162519747946141545480710605872125216337261343013019278384121917363891650957886444913429952101935085549689593762121539202218307867355618704300634282808832801091189116094609248487093919519092347785775795857603454297237009596139962235811329828199696081604102369353924617276445557295343245466509744123703374934317287647920987590376764040129803345404325241733996438756824158792252343423559620019030446693218371282136667448634700597814231709458864476626592598512634447643779597394567942877313309441991534424655542255457523507348205354390432918011465586268488548994084554520009909654500295246938539084602132082110593546591796879234379491322489712622602786538863742338943629843614250909673799471207005750648322502786107800033020832089431100691940299434201748850948459260389709496545172187501696604479939227310975765275191443958791974159182311867437642487768747797424176609648796228011337995965421711711338321117682170750750941614941141824018952817638856344956319076716741488852935678108546679048847832754160863681766963146682613715306055982336971149871083408038071654936572454589188956763908439804172173770262780165600301579438662351522313758658841240791330466140420611544250186235799296347950490900241227217114413047316308509474177393404887120459516812097841516658593356173648692390791243780551956758893726447705743464818635295821757057506228036597501379649713957286365294013241575475436765340267890201127757254161707244516007566183613042009065090586449557252963644945657096406733288304097643760917081969328063212525610206762820087456897076641462865095803470155498627621180569673146878014956273571520549482603667315089829462536250427517584082770490059142434943805842459330657931884360134400628829946480895825883625230005073069099978665743277592291962175542605812228210669884953767540185477941978120344194567718476415466665779681746135310247342441365897427258010783350493281746675611090480048172166802417720991967983045801414858470279743641279332512752794677640656108860874518952769955276291275630264349551433005185809608336003434217293140739314288392171113239192976023605701532014557440318763974807442681833265201028765238506664734672875941804284250374503187105595393740469536228571670352725612557578473918947479509713597978611655869546057525868707836963510416284231333891811227667492665100432421952570463372726201284142530150582859337847410406031517605005382583243811651447779497290475864051757354957709642594543069703060696217053860318820126677462904046403849428720041900159096161243688569853266175780003683473932338670123720977974962110550125845946476151407051915955156953144577311938557938229455023984953517758171401948148486347119032191317374979297601602382844670895879331664217824278271651120564605115624241871248611789605850602567134481441690197199654816826840315136932878408078449923790267979485067397532429030021428790191524297597008836478547753905005411990792309141246168153468242798938576255842930257219668996891782760563338806294116765405945918524875197582107591941260311846331866190888086423256595548551123440870059048439370441851673390276247872997258854591681262291352970216509678959805280333716572253914455991084908277818001650809808122490196015010843045608719829869169604587558741481893046335469114034871929702573181753282878712692126725798516562908141487565387059351454513278155976365008703368609004693778672919621651733030736756644525400756535872189659737239268703885429370802420700718231356601059226298537431082374674003698079564948233243248823444605971913699903336645042803519985193538303827055988922215805663981175451796225902008834004698317198065335398632866209743344781654135655304418099627420635100810066991169436256417253293185623469760727588508904131616810945473663334309333478127661566034418722015702500481373407225544392966862708197159321301993856808038057776039004396715246057122367939922097022063318133263020564140770763904762260608497614864993990503486659103816861490290502421377378418444097956209324738583924559173068993220502505531040926119817225081956293698301911708063792052939344135781995894619585565303321439294614684306550994908439209813316725502124730980623432311745346509797624468661977087762501522549503499473275205114244292714818710643803321161333506188698404306442347380871149904471289713230654102556087365742119931001848500554297510040486743412486307222805181271472077867504002530368144459529862049153999503594261846382970509894988025472147194889753431500595628935057399775655843673886644642965856786680224095233368345913640821866961381311092100240396978824954822351796598594572112222599716453950832701052637516795249630202362109835978283542874300353634061597215764992991586426687966745086436190177424528268574434439287062397034710601533002585468392055517321959408778802535512703481712860899910318030006912931106272709849972929409706680466745776200716372723133433697879148743893225229873135914102067438342939175885760295959956033977610674821121758378252872616648129909240224586983067797672777378468546700697354858478622993830910372441215306235966338724276601397303226091574198263960026324401990733803284885356297807811252647299147795121966649887576706576990457500817369226650424223163809178940905227674074797279349020451591120667345243706530967648292313784734295181565246681381764315222838822338339094096653742670170544572067781341168796651182620407563724736079421800353220460440322053994343613058374287374626386498392944508283945474759997181649530896624363223462680332379723651937771147341096618568077523136957812042010619941393945238582723338473294402351971329780949317184403538826819849275358210561708903273469205722622633575949870216931860319936817235243880780522272153428550215893953007012449600543578880870275373990445913682112060632135449549266840779957755434856897004557101321453114558476138155328350301734691910421555255914110117693239928049989967148204266392025895559871491502353524255251539155317480372671631149498772672721777050890139881940460847058863551520432880483601927407597861459554187808826387396686061562088594297355888696603715521254759724365605610589794849325620103255403389454873294377407650412906018501068397876970536874273526663643358391202194951788604556335318657727695943181465311860298027356777357913782618924726209132349423636103299000731629771944209515824509123317829888437260485035837497346334233269807666588399314245365790007122371372629956158175026387049040560339289829225534977527776387640748963126668743216054754575277186100156560545415350878697251322176622830456230250612020469137991934491168420831608038796235237989884242524952879941057500931552937681136867437644053574678686598779153167112423809274261075232067202055469413017420527360352989852334960465308754108740496628226737608810629805737322091077949481742828987084273752250640106853250827848134906868541350127464619134899442362839829952555189624523036498259010153508473775165225366046662831548166135537266754303869983226388752163818588313304275939993511368469276105682436971476269107519293051229632789970208401031877997812558235195927205069884571270706532305165773299551832988579128010640528873778300882741486715196854828932790321235514612929240193072645962772779754594186329164451561783715543256034528403570666469172324266646865116038408723642048924870571110131087357137783800749912985397777993737758922305830890371501275746049942851154589525026240108559475010177727574114850277572426636397169931470360445544020261822328621273843827361571286303286114299270674054845943602940747122515226527493831696696388379230242259589512026731445688024440557663421697628937428016610560438658189424062262003056676357850083579376695577413710711950101841497762779410717213064289811455590721373892704251823679846319020081190919029189630309799225647892209066842479713034019163874672180179186879028030047023763340820636720233607253059703768889203429098692613752232947586120458921736263613489638430025241778400791160355246155265836987269612908663285876556648028066743112360399438836506142216349013438440480313550723418755370823356993365582382346694886508158202458683142027922812337904507050194382660380421044983984404272476766522008822951996093898669163400550373840792281341632099849873590777778603512901110131713597968462750872206360941959925506736705682870669940081782468145622940184772244858290088905268924638963610294818256287384132779558668003550648086530667174821445281079137571189387510842618654743535798423050892800219986858473965204674293344406547045183719659411750706792803645647950130796300031473750766042692024837496659405308436173786048651590209982635568498491296283730878020123342515290616370781288384032641455883933042154224078253100473490700930002597263350220324545098945835199362552067867311399324497580100309387239470523254834780446147285666958235101799969336952618043526003614528732724355329540277969361930196842495632000245651021189804645644344388707635862883921320079765308012272858918203369115194973975675168018761792754083658140018117556106867592487195456644704197359772178067590635725914691092183032511457142141814441930166092473825374001436257991664123215995794544319600065868351679058268587676460155898037746435989241361122703884194940330684055603765414173578895662633541343168482555761882605535968982570042529293847308382303904222467317793475953157456385364239827879420514191010284412467315564448713413311220776471691564473176903587165145921763705948751441889301390970345349323118857966570538661900013288917836859839848684267485027504482143321175296835688289288378857708347556355418890847047241465675017100017054455363598219935527701002132564044300510785181323368659572655130853325967770244138528537508041828125011247637117378796317908648575313397642272854924443409767751226342718684148639639197520663143513656290912037216843057624057101202758772662936193892915891836965935456142433537664630389885077761494879305922531150672073737322191804822871083492765873291881309126726064099546915941133697702710876890008495544709935451462137056598495761035857312768386649321901028554854513781118860124977608847319775504904116299807859220705673254774701824545872000039311734925998072480214849495331508746132148248019011732888450476062545099582607061783055378302132242610489980046559718346063631977603009420921429381168563242449930927034464207889962631062883521080262002083101583257787707644397384705181070268151187279977035732531726335980465936402928303397074924394955137610361374788574573048882701925572310011895360784140994564423047296312941840003934737347723969237912789539642871657585141245563962527141189172518534835233139220220821247971646822796583539894815622489412383626036876634408793973881999599320569061972137418828374538624572362380579526582393688495968947467559602535544508930993437934438943307632318435727741350438587385639303606289609923789339646546109677965050486751549838759546868922850482128186970555259528905012237690308695706938091346241629807009204544606020674374632693125592367995433423992704157672604721637393526933051112032739731488426548256186397593800833656956023352675741694694303673754636378469018865084678935908014530132341860264062405976140267933912571718106086213806679625055526719645524379161848213312223840277678160687328224270495022915169573842337479884595913394898285051575761212991464713106301687968181352687082562815968458490690155087534969483587446883920604888658243636594932674449486190358306439813345067641644333015104069543335177304529827283101924915849435694648275425193093196424112334720253778108432932644895996432713660187831952843389277491838285175607596566037925456231322052994619646671390350520625580341085042394020792289748524436105053419368575118345258540849590009216074248731108568845358826046522924107391725841362359988226541476202451842579988555285479649073279201284523151533931285997890266263657467428275162572489153113047177187164378354268560840470883216337813237036929853469022663432819089133545647041588707966590975463625740298551321362894357202346671148823549975016237186131054880209206068912708867509089223849457829678683048497488323625178802441356285142250119418456586699841363072350486085560028819972931060072588353250731113393262977839585873113373221915927529451142338118162697435484472349294165281748794182641822290085046503256592820323523954895401946139198589932518429690681487213471218128796149560046722609903123349889030569416546573531584852221503523975980248109464777659966674788252118666473159725440291284420872053965477987754312218146533779797611019400248002137396542577823139612176264048212555467877312738916971740196430813842187374093578365454484521827453014457873712740787055297166923841063789752160587745823904581053796961440809240339571397215745339667400409152212062601969418959543217227604949629565018887406936618326220340421826853320194193029233046084147451351154820844935789417360366161486920512755141571894482613195614719634202694163012673400807745613257486958153246662829616645774785326694668636777116660104087434674618151940691862710802296681723917923852406045619280818323131429146286952527162886290334332457743180725739359034212834489970585683743853130537580554459303080391111491481422815360330682795129548410599455748959678486676057541755860429980510200125941918202503076721530718976433361343092718806120117074333888137584683214553704988254276818552459379448898560950403649630565749650183596024672907968128311025278495097905064331502955859719138469375629007662430088364811864981605029938654261110690392932860598121920782259866008827712059704211759825651564925968947274174768387123498129502439960969630217903612418646076095752273030727458789845749095036295689703272115173388644244865588298255515488277377618752793511141995591706871090364660049714921616017059952758878653906896586857774859608436981204072918686289971112454241660377218890642830041373220768485731319895459234993970684342298199673733317231870282365518349208043202418389077115529080784941941806025793612609484780722791347606218212199757686397940115795746687109001443555331418394015471993068849865120746495293681853967683381357819138660371748454270092009140918476575419119382214222794711511592936464779178830318669432547668749245707605857270106259204887441246480335527426256029496172597382301006156689171690393382477319102644889811162703043519562254831711606871933335322987386566413208120031529509702483641274214458650006798167209901604653634834044261178961485726189616021148435606500219589024598419399347880957333266333628468510512385270631440650640845155281858313318922396269642181834262763092632928146448159864420052491065920735791423876151608774187725497877131642457088346394259052269643758101907011361311947149712177611211116043222960992260930116884076452980015040595724083330608355622379300936422349806322227744697924359846393000045904083012216945603129818223355709874314986837173397379879530135390062780000320370093509816032982379214551733655732490876438106119441758114062961100749626995977469236615578550073409421549885780333304096148821359381073797074963641335615247810388233647532165019414492748191235815357480707006801120558702110932277987278311831640688461076876670663169097820948359969733548300871649246485924519210628423746724128062176281310953419952695525044750455311008777500448609825211120913252673622716901504540114743514717262196572453755728898405175844358749644804068686677216432952533468348600455088746900114439915778324071169252058273852328531743322211199945624604966076568930506304476068781826871258909304422573301982269565518791316191181878202256814021717716177021780772521624138480172803707492781136101813498255552396118602422209169010138003163649074616855312058519816782524831348638229738655163204210583692680069874040454381348545715382615608871742999013329314630254338408246998444299782728894735246490382263815090178007379659012807138909622467225222035162342842444054994545315808041875764026449008238935561362462538573360428114227683509708236624663676505867476593874971732153474599465724067486287310327590546680032696270288035126699427418100851440979158506792044262961760475218783789998958557575717375712370967639252027937870175269523111040402309865607223816164467795905890050437687581030855042557179341623936585850005963349009729503434759442441468250780039483841087311141019516292659693783528448588917625399214030974473481401699478523625999198866663031240619552344012181882958159746998823187778041729207896930909796141355418446085172820951587631214860793792205891581688657723493479574776415592787085959486183440165688915920660864630784154221529991124512532769975235083255813751310616332753551179998700596205357827396345443892909493046389598452126724257610756449007015647854832809443137944620842842246057179804726489337766140876733338687771785708105306160633392985279937247329559407365703752035784477736851936572017169508690733654066919436940646836522327930750851879178873253522517106591816585031482485338026112204329945763922861618923148240727984321625642736414564372695920805091657114964620469203382083100199843311230599596980343677548010555026609424119213740387657254766431763218424303591812768296164036372772701799668338937046806796373203724118104315284734637586823037033941523120470579184461345286232919317352329354501401020635265491312555725892464824878938038013467488864635892504058682473934286446215991487166859587743225697607709900542084771595432838470685563454804470435688478213692851045878130031113965225079328973296703473597826325516232300430168140716773362182100420072241658602083650663953618839758510069987020739984722046800542868963279317699608167395133716436911902752812218698848183707531059333696652065098777807746915315459628236191564464832519585956377326971548599241194075705407982383748858777091018179320863375950814075396789981355159308289287622922413156619761063693195408203767236421171617183571068634083480958458938050733700733320473829239853022185138538345346966419145251247851583521249201847390225033088725697693217198120246220535295733616807180843207580811811873001575296891332745794837474783043191600023121956193550339884305556503016145106475995486562851798344501172835692338832418226777735282634163806274028295919038394547428400744061996890494848752347232242848922103064644140027452519628072932087283427195959212902634699019734981038603100885605342780511370908370784167034267478592536499426452472617548184211405045972675296359139735537789690620407848084990411757849950423202960307536732961741993969296856330796552851854883457544294572175175434079426428378505445642685651804191734278927990597632783830663672650286822609033712445217874086150798277380448198936575802077677970538239968598800524200985615082128533810888747656208225316085127966166751975998740771259595050662014556489802857169671752527961330570294746281070811188531633647159748028728114630793173213573559460073817059064560218023301748063445441803147122563637262780613827511366881362447616317248091170337648068469205930746248244588013647388943310093013116949929210139481830013524182372794713100679568321608986169104310126477427551136046204698719166371483711470399083775230839071246224008565070667108720177011399998933473788037333402448578394745033709709768134305131534740145850147511220483693862373783749100106909366396164432888206160341726546932269438931697165011531779948269605791654885009091299474003679885207236272857833015774303642346882593062545751997592424211281859623701158514110383678765925309106627136634989303536213732174486873894788915939751216649794714106691352609825739693439292354542045803252492609994273156829827688228720413927247352449308687236125936372233132406926788136749950582419317582919252325082221676625867181577070920120548333061884852745316104611802408407235056206668127467683477303465662615190758199813104598497295022839477858333806985326673818679198721037979891906646565418381200948715503129790301685994781509773316962290142841138572451684649443243222667356247020201938366831408138648120543575476531269220245059771102070298210021935156476529478630099959528827462612691764982869969440983825641338750292769491549981197793827699662061783702339315765714053051779408611065079655751894001227480411482520887085916013066368161764499409344317313636032982514672593964464531890187115986085156189981483473819263991599555535048000661548178747763958766550016516796119381921024499262244440432887730562606323293160360930068584745178134720526092294536531216459454791448058208770751434202996584197767310103544387680669553678030578294286175557787438489858291684362782428980841654398323826898564795659246562400517330526518909994911711022315759618959581917125233525349364173804172555357869176336820305825390469168163593592271574622308269202315096558243786294128574382367068761556599094786900659406098095904021910863184749683081103346513547925802172595879923791921811629717908122604808140755496412185946708322250465423586831526022957736731759535166267358232724496908436861122392971639802555310549371079829532626639098375810769736893754701919890992044659853505478995656151447041293983445534381861007848353614645201389192727018690593921102311027865853466354957456352372082375585428033094405051456348915876845845483984888910871413172260958728168970671415963784571068132031442652097827017626267736799121926956721936560171267033197248694316930955001325123782997964875125319723702383892407357730725283274806375912927788079190131312876345154026116493969566700072857648421188234285423501618809549673605089835442184891533515914350427957949133740161308751815755474207307044413247867779583074882188458333195037098965843014272423041361802842450931059614379604232795322318892004284675777220554405175159719405044234872248582865835783471373352180418942208781389497410592411915018591742905313522553441580191924594740802468170745258798614294891976205804859477711947327305453467283324309708218123163202907955263746500921902656053065606028471525978492013971909561518053745222235238200407025378476647093357435530665138137448532040729104648567741591369357215995047931385178900629030768703249516575334556676350502902256002314258782320241167470550264038466461920126967217730021182895089505448495597642912470080022953065584454291630960300324946709405923557286077282819777596820879794760901772871938043927813195703959694099541500357452561684655882925864080702073784974623551165110375834538446526463223355113114837285811500491664406049684330464837997956997123402347123290238260484760699583605688868959991853582093190394461610204406040162478715927179121247118928480205452353467615024523452549644789157377579175621475758073336513080909277232764219101399991747486208593831750663380452474384779588972729293996616641957497734961454290633320120493601336705078130187993594362262488412613984489491812081089605117685293813886881406269835046962713283061448681313780160242168891103414750046712337464450965283109908907938956589647780411992687669285671294029727043344570880066599835179019089254995214365615237581369963619424337872571629700595595257977763009257459289314401086932604412049113792456107722144287314896145181914466591224661759854201131623449015568162205206681411014287848548486356645848695411978390365457042257819406838147685568801957241514946447057417925074915253181021804886495100693354518857498559549947216420451712388230778321387324556560801968100972246127065140019424605241023687109877169699472410137270642235935626612892534092805407523194774278915361491677474085246060109033837474950299012995418709690257290007374461762836238913873125532857472641060844047407534022564074278521328829640817594389899753366430760206481035530679947232708037288924595232677442478342224765818499811672783161914000041161628978720584097254243079566860871588028985351404702670782373447976127493397254819010041310531217425380462935099769458038329044546014762551804174962280515388784006346066608713414315359076397560989847802682269036947266906586983786708167261711995576136654142779748306117646442414855525742857345362411573588272824447673219216221254287722138806539359869368065117290700515737061567512447962820730738224065101739320408075867864828342548560647366386443109845590576466314571959922788890207675892857773840066868964656337857979180689888681877531741596954527929240524577159449257961385035456317787354995791871905520791265586036369274929426083381842252510324293257537110345055403367564496316147715693688187143806629676236280013055824194194807541936045322352885506516469182686081900536369600637665301625275167589707242296510090821705880327305478472108115541415141133513170654063565295961189713939610464407055439849217659645983649457880561072520574151689173226618518587817506730197003029222310763325065942761104571242033314163445056848791733750969281478297570632591246843014775954152699864628803710643955329425560542562342261895982112014555217914229889979420890394824284428325780044182044545495315383161653170831489243901114036278022078965713634088206258241744599301142068393145189836464997027050306455663433984033466095502293511794402398672969736126940379621133108060355851871644021232292821675197253519728053278129631454352722154388475659830997362950875058664938509085081692451642898326946466898586313520186584809733175402099372074406777201599643147113820028852573302665738740831380700641824222445167790260324694686500639033512941588247817262093587106520605671682017598176293474533908054070935243722090290325602619017877018689847790278918810520707894500092756900023016050508414123800982254517914016040558082034396785905018100601542850217267373104873394246751984082552219781821650934882471914665821848948710305056420366690033113901955983214664746151525762341921907457341408691274510547040171063539142003777393924004761645918175411228418243689777600516064903126237700621977892976829700240572058644825377730216033718988022037487106452098778811319034491392745415473904646781366485629808731949076947250589899477140081424850287166582448061709480067776813520937468562686843345804950424413758151402164894831569790854929154968974349603522090467121347792740885045453243219860996732842576849965341548975476903147450204145652187623504761201104988014006216756690008461230120327123839123154998061348458168066014104171498682323466526724846234446740900789784306825546539779166621572604006067029918675303788899251890306512059264939548249113381840420021256006229266218677332556677718096547757049555860073915283005125162803776366157373676646846381632176890218471189052999306828911477050125449282761409504015535841320111438573746426820812866051268226166279050103315454403424255559166883415950319073628209490220376160908230145471014249202874516912888829752939829721191297886234205958998582526453750306948367020255861986072288712931875084583866201946629711912133728502263329687956944318573738875996989722022275167915227099065848254486546540011626608336232777136136998648962691704244115157803568741843966625261792087469234949579736686108214899608120697596347264009906085178280104668188396029951561426143911271115855505937242467341050980803005302331236493480360633503862948934148698485010299418991215717898402576510044352168721412028578656659484866266474689965444924631634151235121305186328163164166082063865158013789959594187597435707284310394073831527799132972056027823002823237643213372350231788152338617080138210716642803626880427120145988186585715025438695630813716033003331563572137921223810944441187010117007869708861792863726330210421323734204793327615307958942763341036952861173047577404737355341569909222623706020027863286530938588828773826050587382955228453145966483371553838856319611278896241218457691622974334437255033190587503901494230117023166213878227366038261279659173963661872041211585553502664213649911879852910744501496911008040946290124138378527333043970953789282571367596601400973852254115832116243255142537495219807499846698911365541559391801529142986593890467619855482797702856217655451699226403519070999529776280308129105584966700735626319641703946493059794311926541043209458642275271888891372371216779598320482238341848241193783828434392056103596673287154749085525793603253951338241572714296515177130897627113954310820536944243838927637367139380446665098028108250050855894469830520145695126897159829885575189951393340221489842769367189107363017227067975356760927393782372723829722748735820876298661146033453282674741142072361112947291012380506584328216067290143503328880874060397767285492859127824019606034696345996412318886210562346326425987602501406775060824727187763505175469879385129638036721954516877700848190552892926972865528345798687546485753489787809674085899122840230755527252385919166293432768577092737540507404759314613756951742312215911751030782005839264930270793525924029024320422100260071063996577122692882991351733463727252022376241036443988070290883032469999304371815895366682488501627074264025955869047929500000406450471398073170075511890192539269145437916583986902538555025762833962762393479295583693320094861592924186151036838159465680465218910154964720160783342795683190210141648514760109505413578320882533051212118260329714123131463007297755606406181163235632757575673439592974630764949024506428267449465240092295323018707417513990820898624140163972780085742739008895201871049171032971637618261338053725738743481543689207772477928748214021929635184452020505797783414994689698893608040953983673478995317958175280800168993332971728584235819990367230560385238317518396607571822473979133055599805668148869742205725046890408538645371217976936662165695817877348151800514111141510512141602259920896557181563761877701931758954438503831979154256298102360035641935880109963656565361614156182111981511072712547610732247317990817456465046640876194257444126355022906867232321832215310442472398433302654281447165342942802755832521819886929829230651217727329963273516742547613481590998709288758424122865190672292286193659957215327524289777068776032247888758376721787190836261985809801595685497851991420571041434637293478199399396590482531820525898519558107629844644040890948580979267511906528634268032832238467482901184807156710503560693528863339280427221797432980323545733440456249849724034954581545763625999048435784770667080446143323574982571700591360616215516430844417785181267077103787869802820724434567754528857394771823211228892980172666063502589878020457053296131306237522365991221109633992890380222054740538165334779695919619571150722082796325145767671936701784472527426153326428385741941774757941766085866805665680414824164223216507035882362543295527454181990900292963626559613048593850101107038630399606186495195766623949906427195882758399700590143819092151902485822878221514142624067436397116757158684547117377251188939062199223251832581545938797678146248488160537477053550053856280714390627496061799808210300194880475570933582054062486744704028585572660203162707146654669732643675456553925961771378458284979050096727094613009949107056506063593639168509612444916736330328173311656594794924969014138155117592683752738376527524334642772008134874910829500683033740880992086249887270198850917146080085958964893945134505634046445805311513315902320147346726570404215492539099969741747760396555283781405899326718899972788825092155630912009750836397084617788287398978209170572523801219386301014720481897048096745305399101846254573887052433535363951997844736994320004092540989233485392796251938098874094982005727106424488675897752283540539754249163985330391848942192527078222226367223196442996537050341650761043921090426408922432869858559212654281162966326282019328741110990668676400213234064609072597092316478631459345220894657536510325987334730559950339637644102050265987284843950980103397241289192144392621421766832420476560467853953358190082682269777075579927336775278120253742897606892350500861448219212464102731607579179775962952481765980408431657621471419559791257004396682190510883209236815101043937286627605602237123711749052102525742640644149306193006991081087058441465357341331120466382792769117334913803006886981784953336633092301788375896347074842142679096866112549109686274481493839036583441716295379500463209935159879360320865807345808186168064959362598460234885252925770666181097389108012385705873296389842585313696186882258036630032365523754332062933881971795825663308678405975233712421202474022434405082271553990706057069109815495087886083308677748972251940842288911004404831322077728046687943359622962655395016381871823925783501474744497490291165542700365630688774881919426070435462184444429030577045660343505179937810650178909734815521452799478240778880906651722737802832093525901280163162870245311968816245420229840959892170741761776956989646281569158999132862970683871323767446917329926663756995148229772252181678942686913409866252682262105812300360250538886659874314523772691911734781559629165229500240430553377447713159051140134292106042346758181795187251354788433088607749433919181848733704461992202141184765364310312835386235388780680546493779660445277517791562426792274101176902615275189879620557401398418067229554183253842986468278007696581432510062950806675599411104223414341336196270015880081311273303784444447014749706830736958219852556311566302958163093757080026599498740802405625825207666733635300976150748194505170916291586253495327454899480157673058282768221063049297339134493899510729221720251370319309849437364480263897042406942594903187351184058140232476510615536359895406523629164809362443198707900123389145577820877713396863977782836251333022066350131580555927201205047514278440539442499518194074191758046742683465254454498334408516997784667657396568956726988015773407342562033021622067045044988979653824985805254258032293007757805972704790275919941642340177904001774938713982095829776469559531736819881727395394096023906106941412516088124334314148186435465874426023680313974451396829695854765967107463120174274729561074976458887718475184122282781803889076319870830303511530242798915972730182719090124508086148294216901874530993088504370593297744302135220069450034820685403025301464989221966547854863609091979566083836620558747971409047396597138327716140567415411439199971520551623924598334270979480820571609807965343908016313087972612968768292300271455635625025375111018319357278628937194719912252158183577633817766589847165631084053029045081553635539299512059122053596890714596310595998960387978603910840899274500647001951974376408404803290284726752735999485095982039377441591203376377556801228963203063058395989180789640837913007415328025547645365455490645146287057824653634930927720365374339727105339865511905390162392368759282222438142401491491457621922727772086067361517295709290350805616222529696669943154250602271826840002571277204200274184883506180279026489677922560577344526305207685093574586084299964147845355211861036948949978923639576678513524387306711653387469218765404429764392454323874471031474356416078980292918825768510933829777864625099873230998707990468727873198581967508843033231729500682916790289112836831920080461269413353952207897479914299592513008427185856043193267510955231340868700574413688780531577929072322796054738621278173730772189210985782145154447242424194959258166369065449280002508325202369131607691701212699234572991242133195853875932819426153394434119635322407021091284357107952902185236900803348515893764698407780922856039243274312223216264833544961258097784623484174027958125192429847122314255674835341305063013669604891049356185447297466709615577634414286912570440797743216202399771432075821229651780175568204626538404707442555672612702804638650264968949156061758218152664372942613996378010595114298031954232744404009785543038693745527625962389354941150216226957524704265308022981782779605586811492330509649091512594559698190203944452487585281507181766211352706861394439968002942769762106318249121913104085349525601355517877516053639280483864482474709944072172189968850434449088465329848314898127596817787692123660096159407219658590117708442408398351430089254369599790325774112841936977258114660827332165027115499732270910325191848632056089109448990347450055160673972287039639051925999756518386709538956483097846445536521654628907271941191819584731836503458418809666172545794268658977070761533873027283483721645943129192440238794031925274527014234246701092680682807334091238721430096705115652929597162547384017492344254230916675382353696603566928508664523618845310924934879881991663866725875247691955188806229446039631428892139644058278363565748950327919872730134294733450951755069867291606173151116993515544349140718372200195100519587508688475880613733622913502025966812888924358088098054125247521007383943680257276388890056938163819651216295544257719412586765862947418351410211021865804581552742504635958463364487239261609422111482426730316593283252545547231170802076070933918984371585527776681532885383398465307500920304729579479733564198420191821169323469279379428814377306980963858515713609934613306651721880182693875441470349475633980888938080604569422979620879949409874584669318231324732619930700309555888933258903651925777044333814189723777328658734279065573650914886694342374739483689305720700574621744706742781540030013237794477897673417073421156893634429641885900140911355615403266821859546507012619222450555294215795309190867866247395641884889335229287444045003769055072054334614485379872983653766602828736340394701444977180577640662516036696263984647845956581473683820868201965599061663152275937002888352645625923783210549885539829142760107059285374709700200666451869489087951114597726741576446490113146037750763009271555227912768017382321513083178092897741643560641414254783532541090131903345192712357670970278901922381639420573399812620911899676493761155116231055116855160568608550025100663017627671558997350866733447852058802978028731720975876719589167786765271731250252319027996478739628443469891999432551366625747211430745285736627733028316392889113885045634665901432584378244924016619076603817482498844380246280588140310042879319211304628188771312034628849026290606866419497630553956206915890131704520594851258207678884389679405763823821814925657402468983420191755561883063800643642905455225803499546321307619484413193854180394218091066466501540098522373539711162601853584137497002480510984594814718564295982426723158293318225363309884508481956199580118275596718407758510980823561257774071836293673233237121656984825747626107414950758439891205823986628167962670299537670318397659252653202674080059402478284899554598412954082928984427832315857175514123978564642958095579614508290500889370733109530620400323744731610187180698881792796656290296369238385529085585500973665434386312049347116460612985121978503105727395706949676373732541248165124594709067201014023786752644956375732253326006471520532441685273936707055367600628375468638118615646875471925172551311631978845516953615261854446010532672197671643553702035509952744052735406510661623757260044066590789217698242888689447171063500018423423427379239738190696800311256386790226529569908888778499088291594194886640406348204647473183018151907296124211583378924513091929989933987349812028737988278347135541082359723277635077100832787154618836517981381292248334997043701709122062866939321991849630176980938927233285463789706536409813062186655963421681057099607557950948581748409284026539399250865075765662470422121605857625169337465608692597809667571015073028938177468252829487401681720954641555358884632133728305948260924069107251154115817521803887184711591557540902922132431393930264154494969795790588906704261485053852956699025911853357216659740199404858569173914073453681707600327410676537984392529954624914675229331692471995132341728883388219834037739742850470638790007901845199722986525173598601136284372660717289285934899616457735663847250266769482080903853950078007740528847406967261375549061281943091767962252387453513069421254543564833928391585921485003115928061623944685184130383554465337702904361890256449136180737474468653233620627516117670110941839239169055374222616489361936058448468662969970609196930682872761019053814927962220879511593127423083260392838989086175607909863331272045298828416625676783554573718731253440034694243927632791100080006367162830705936639573239357146706267956783285611035600985258329231147552720505004080103109532550936405788027466981836480015162129871950037727808930013346828518344430395867719836565274705811312577275175225175575089476231733646512629927820964430218070961262505670602690384077525552599082000097849593756069790966903900374393095086508662881966897772056046527030225649074142934962200268936857255121740799653944558011967162930301425816930973562169194897140205410188022353102809298801458254065223386836883717680767566252726956225979384376513965088373515726753954066931178435768261138088654636280001360724222767827107989094450179510812315425489979135102702800363111772825594789613006664429234007510627184139815391683426610301784845965279659043739596052803292360570014095260304999080298092101780088519079602594235105157587357627872809281567470619073338122862393921192581850287842425956610122142024767611646861498724768592879658939207362849659557741989084405894531631924979698404383924513720898055451724281101589528510520943868621938304061015170995500957250401655916873525536446308037278824514245952867208913217994847397127656644812123564981462433678440864848223467150406792563769385914796223542900721885276652824143163831255532492584350582651595994129033792234556755465091625167913787481614009014180008838533886120128756898413012839775829890621099217792623491339996761639512876033421990361937463985253811690622570320370297621992694503081141038567907784764307309999406207385956553957022201766677703994859651381528927603956439358443251319164589905800201383719987125694918792554670217022665060626183916836488464073180445149204208183691167700525141701413283868860273972643378772113734659167671152711421835388133565817210447536160744538527420161674683964084364457765326850021979149646020844863726924226972643584928176568886407678056789716186657345422693526554656921614221514681505590278081293180006199186947138891982714270817700156596909595056023537199099913245154160664093443119459523046729475688455213806630514911361454407712563325053262082262832636149458981233165320120363855439906627638872500925320365643630280383015724092946836956154171692992045907530808073110102329578673925590703779280157811175973348992631724033925677365348761485655038126375996048703917994022552313524604702849623005297813965654198510148778561691003775741535344293011000486038938233605849742302041138588162711567272539111712164431720638763522808513137919676313520245770464579767180642338018295310913774233615225157490109193914026977964931381445234725660755618513362811836319304598528926069033896552754667360226206038394160958748746287968075255899455626286576322904156607262907227955866911550248410580579168249369089548668177819030709929405522992638575845623133014402804842706621352054990506972757890622608162062081342766123790332939753380959809534217491901546503738613369712240890328335478065706994256955113845718360019944342449473983671903246072368134087239625357610429530225253238513039913608370831591784591072768128980645264871602777736871322275504811149536807775904585063495817653527352053686547891618820263465691528560148119433782671235617196335540333001988000743446839807704822499381182692153227347385361414969390251522817497117079381490947087100752196334881451227037727406538003398770635227373504303337999360973676083627790408331256432896180428744048127363811424814430772074397881005518975250240910864584798893331019658729208590165164912296055031537933840835029432632754312804474517619141394636840176966748747697772988451159176484634145035066533707822023602693516649152598867177438700098365123621469154256316243476985618184381130505278143540363707423834511780958410995283234556234507691968862907971159760726251061619137140197410246959636520681784914427627339385409572028456126174245584978745853316465477953630810169004960007052122162776673689923194282392829224498903126211566085060226748617587395877875015403168300268912424302674471418895272215787755953590890932196784085038736578291473474439439015695127970009493642463394148009520165842217600121623737820901889666537552067706156678691443869615573594756035474561976938771204824510082600174368579281508913541703957375260259083183401683040889706441967255570018480866863849364938802770710173146694888223121721923377500538836390918180784742883368498541566294928561256811765828665956824334690637661593993552409296228554699832986912623593847751698378986094564796522901784139602534403791239983296848019860673604052305489814728754692658446573434880979280510708589764352644871084372434407439486998334713086191044467768994772514567756014455549626476109533771944941559352207871509198408501914366087774722869848476641936315286850418379128099954400828024341093689649397047974410406236248648103459502242720998150538496555535372138338285999198398377669967872091271058195600647895553480972954593874180504606648118417082842982241359292842984293490507949615936771343720537805699259844192438260446164014815829613940745501969763954789818393672269178284349388924135082711157508519518430781886532879655541504824260246520453778562118144817823388118466249747081579739561930116606013030550864911529661767863808110536781717678479471602046194014349293658663358532106644163061650536017401317012539684607202498625603113823216936224653125522029086371960351736721581587505215320145027129786941713575747967651518623769582658025131118163978987312161075601454435664072181056980035237314119382203323810808302149181651121357894120030128305431158663285174338172043391069587190228973555996106246696459156729541726505970126369224470799548995873248258124793933382727872123102420701143890818512504768491278697330997167919919044206025916633608642680122099911772420971783736158536155434900724250647432392605453022880591910341447568652781010793754034957050161655165500367322374909669804589921740883519950765088935148138683448018546446841008703875739890033973089114213643642322110403193791109662687265139187550031497976564401720104908137535944503918435990241864123445591425061916004480399712873766629667801500978965400967351642650078001517829488590142099760333272928291493765597128805395988197236884077904019179363134718819944817418762597583485799752445252644603309162756789183112919984918673995371748804632630275269713714089066338366021580781687613360749312595468035127361508443255864188501544270844961920079910185683938808801800071136161259600008104027217232837364182744532664885192211753371412441580875134566115687246254582660631301881769315516984316629194517617908749251023733566082749349659456580976128008297845069676150119449603197734132444927428912419763521078320227291403138979065268408112910465193982479595448442248223566550290493535284163350799773200840923011185034301859358306658045918182140749013518223737995935473857765569213677167259438788220609852420966926645515148931935596968888550288932598769695153611292250497541351701328486825749859049960929794493517163090906887759059101970219149974304032435173812124436233520771226995896192514733838305233769239825986986361349176496131433119202661646557296939844911286290816655576507875250480504152443708304169631934162480272108980119358757451871588699645518159801198989779676098164195474515601299338886867187272421608844007443349172487574671551090009720406254074274338398481390033482258017134192281413382980828666202203857422002126947240536418028816579681143786866862900403518915235683065919404191534917097851181422872343171914733952865408780323889572875222572649631892075161608314659466881331433856565221196766406907960029569024929838772460816133338528708598696864224843873409788052570205739072078397373980204896025110708960474291556279453819564997434579389491112425576598605558528799679999829243684173616469580556744399217569829875391236710813240421773601919711310696766991729821751244858229834697960584103142149069648490655803803766686386184984316817143077257906429427289426553718022778737730135415788965193033455068596461044069714623002786777786678052437835004397206342591804018750430952427085435989209703038085421838870008556214692819932462975198315938201424429144816605966508247712428585024710345082868639702468073046704544903227612854987191720721479607687549651803978424864699849406383344955863606857038712637906908837309492367113730100937894080269178137437567727037231276125623789172871310345332985571135182285991938727405843097609492279622399454386304141604753227725585484135031277634692365516134054904609185113205370048694355188873658302303678282881052740100279132277698059014104818809136313538070135973358301944828917986122836192143230158949613418724804553233131797568992060985979880403887550673257716480407898644378711124217789838733071415450120934692296016019491516814895172086762984604979746986994149771335984521515488735335823779626676309231256913515998096815764697934937256021679990920455120465095921710171835017065245447733927344000422978917079076896931127190443797356038679838520956562281355614831185768605697694743683425437482377819613593008064304404166851793293308892942016893405114034177002305815348247757438430470128690871308351982239693937085359425219484996423098481551549505947477629301844213084968129358235788715592584555381773643423434086381704742005736260524542468326090233593054783069401472052920169205998647645395506040568579125036607655674332081411883364668280396513826165070741905005972552733742218943062455891069379044684296380556162677391299752544642723330288833593252296511926145795403624964487292193849477076491416362745789053141956836718983513699161275068659404131051920027188790105041417132857579668702592047278159452912463732242704099259867005676890017640904733216408634031902774511801212819641526567243336959758312038314949461332896525472877478784675718831553104378319798536068370322623767861530038625098049002141388046073605509720666489672932531031193311765698225938155228086538791854855653016233583952860449346757925447824645292672010937123882128323996288588697363617158797906424988018675554216859782870866879777783505195705911784764789712633676805683022821695628305930388562549039550397986044326645880173781379722794557363139134174144863784268185654207426373077094558820460353296580112363438970702471437745505373948527113604580077867850969436103025150200624105526108588049235208453592460737566946544714070704097095811465313416590709913521932624064827007717192005438429337325201515606185834628687158072932488203505644901522518088183877067955434409060929691111500694617853576169581731223126257244599179769802338434723180388911750471322344366829679916827773960371809719202898503827331297402604682401313107844633340896910735070700513000378087420296553444796252116567065518055100628475097726598694878040093857304320897023916583536988689088378958878214599310583021572287333131922889911162170657160315052850324121945071967432488926201740786572019783644680124068822802168226155226863022057956299334341712010382414122862410091083242182604503354171628444363583635806362799458919761165445933633487292502547943232237609596925255071247220862296582042010915769786881980185263113532534925319006329506767912040526270864592102710696777912556813099564597252058414781700689656142506366186849343636348163393733670722611950081303857523196392021065978346732085491779118773496309705341884374805286397443370705634565074221931972558635091666935944362832288669966806645233930699238323903355822908664442879865522401037511683900121120481340706613219459311560808726726108828527738502041209464499226545158553240345942552984867582387459608882524710798734930200208134569092491124276700728489199241568864103641241622961699786980745383779294039458200839310102013349081134985731422521041283990555743071891116738564594044484083372985649557218997532099575868055585422552907538762208472472681049649535160077847702173414358496181341068522507919883197367809354555061249534839997624954290424634421330536358207821602613918350269133536071293003193506134171634121835337670051944625476066542750497374306933135389442128330293912560276724768310234701949702395453347223241730400192202842954989996884317103545192572767983701489607600653732675590912126933573081230550361383469727291360931141901367486611572990346897269801714908806868405704341194195006092476136733821098809456686807143866078936239649797048013914669941076778312917201162349645903596847217811508342551306489636728904375243084251911949761980797864454946671794243039771252918243652875479660396019199412934818737186214859471897294487274861025353427899934414227005881401119291666361203831508676847145450435389500429128279310785096749051671641133169701432082435164831904560314568592035153960632188660268822666462940351684484009579258999621619039599641849543226308343758892949929064766478271667167114767284418931317971587439009867133729396666809573227460955130259199436493917387473850213361322938643568402516228344958537753184084777965770375457484510487613155143969306970957815422025492261500203780074120963493945460552130486057176892888179353332834416181488046536106774331081616220014414717022156177843008222074808144025060627820621058461692660278126141298036046269219216739614560190441182159407629362183764871157659656282213070287595012788434493446241379224165244539914571297350965711715210719665648802298346838458155713016478301229305952506556379841097037770729792614703178688463651982523333982866720511679619182446906346285097483260323910559870793893755336693236432984515512410845837476513902752746102090900866630412030400259349188194874050903647859833697029998578979938565761509286521624412680463639094982599296752657289011036525360647226471534152193816656652269410351704185458586255146854424256379535739992733839929998873153124966019582647321755471610129720662952314445441534671655206367824669183382242396052543998269536178444177673653980876266113399818305856838393330202762277550218884531723486085073653684889559261687626547961464140654448181712750203636479338006844053524389878428676008212078724064539833149598374882507231238822586005764033237557182783726342601103063339192018122820089608517068909217512595800263661604049738786493102195960977551365065800884799515988360311432539092776062052576770395840089777000647311803771196536228613642306442354749548048862537466557936903735345503288188375866371319300226106111830170007245479961214482640774212773700227384421463498715756084682905166141330371538286655375453972832469305788046248171555650990206372300028980348274645696474929691452738363013866620652055997288599697788598084581323504797097238966054227239680515875119128596124924225853951803686376274327211814105315210951298608206479810364033911179293014660304954217736498800915622050555750638133493895078578869991485225179855138034000894852640138259555973624467832538305135808113484651214173150682596663903526831862089542027656837200743598016581587570413114390605980759107794042668716207003847176916863584733612960574847459238326760905836344332091791508174591395805799714999009326515281258064361085837744954040307409931204300856052293150128194805640257338433761108703815345141759820801045284160707521431077235668599187112068684115643920464581902113851516339120127369568566341954418536469359967590562987467482394788478086294653555531237250753656510443397607471492582120712934348424256108756823255942573037648405621132526057002642442547274310934932682750442352305964758110705658217862651833658331070924277330320581754073342566166667344233379961340820326154922537495026125290327890821204389929486199600761257624480895099029520940250218783630340762553329104046818227761359243284244122158452982911695680847188253978777710249232924522876930820495034517425277439133358043489942890548221178641812637235630083716126193149657232100074056762158156373593470067333733093859150561442553755957532317320380849573365565624381043426726186782265942617815798673649296639085261514392582775608744041112741310391916161880091603749947426507754106153066173654369909380713134238917955908478232064724086928882694049019203013262090123581867632596689184617107636466287566225775209403278746874598344672196634469634754905321752856888674452930366273167010367041126986826389701242057079500605454434122696019993186448242076498202173005525486298595956085761152237182712744720530918444589078120332156514270338979411868865001042514798955906839189066474139307610726528324176663243152809628498125334312454824647003744453308863794280057402161554691166791760168283954463118990440834158189253843522985086308019945510898826271877053696524461921441713814338667406520688471948992753338295903850314949523829644721854285563692284695515558526917953357950884690805593208966285887294046416580938235078353186690741868170463198263716932091786583323102163446731703629373710253715405642907067377971459005442001533381721352236775965770299047284455251600589709546451121454411441258657759791517406306735002011796109561553542517891897247037147635266803684970853881311680929983490064910278682986688204162829497098587443846431905285304316915246494758255923676679956232579628649539497160104841053672464311355657418796414541922861762371879460614614455805044771829320262701213134859627584641803314603845824320028040934280592396311252442764694373232241777164213803486422692208195465573422851572126621337722849575258704628380872851609900903009431212231552745761870237840947764756262923375021880687026056806735123936031258857883247150282402730166665932723136871190043813678836654227426550448302237564408266191921538464518483178975052944053777736616020345696949524075068470458763905112776878664353769625666627140365319172031470531612054603462279981676005084095697675641531679292519704198327695080478241988861768021149130653758563745902614076500086139513899442093898601148492254496956160263721244979694583350359804913602080953859561049957966962042029026559434702486682278907032934127513710830999381621385298872686566373372603611322779523969866155772363042543224209090164202795920090447902071106776257387926997436065853027251170773677702208349042881181615323474754332905211723959176825852375475027268729646738000570109200663813789291799740519857679434363734226662685418612819127457011012804521546854767196469395408814263136800056055672955952721730647407804325482860799281849188708497287632923085244792105102941214985020930802741791883341929395538636981138264754584684778724027506438522603577992940585470356442329187877869747777951592977042221094546896815341175775890837554933759906630964427636917901275666557244969847044086548386642898276399083974564436822098983774764177206904368599345873394881026922281233890603028923916928812646978257043955535793414458373253276942920917196276936783373962195313459390893571706789770085138181123336340939936435970147803822864457960281126216687508611416638933455541021841209899893139087098599420237780367306454197165767671266259177693853521296974215730036339284994565986322777763427559276376339938067024326349518162103001885795790452776032240661489382347943361661034041703943058239874113269047774358730202178700772623955517092784152772611057110158740876847403880694391153498500349062204644302915898109089189048536419065942640688857994825396449516009608801175852823126231278043005777629702156890284371326258683286684463582943596403804759300698709353723978589452913056460403108245147810529251296580281141663651626502458406982186766529808862357836939407998248686857295604117315499850945443994592803811726302702424692239535393856957171217920210129592384389211663777736059989484769420185727511410555602118399610373632852823543544005519835969312025057147773001211360841668762030754363323162929997976571332146701445700895499870749787871258847490691274934345672605322988887379616064631902906116343699002006689371369916935866091039920489368407846983383130800237629774493829820431411071448368823981027567392105512281147162213710273465810804090583885473052406885712410453510656455197225675242518633086755302667471421697209395966341894565011939952650370682705798291474507004393178689767975215129673871119425329698674536265150434201924830570272727662714619885080513168224773513933740627926291607507472506555414325511224911059121513333414555684195407733887317395105538536557040674016802249192745287688900272816396280177577905270630456392220210216858300242148795482945043976246664326773474322541159362594848324453422346616229507498944054674439053940821853118767238647184584111210269716514994415885663999544603493644203251532916181670386313350119784370091157900158646855146551177037292215781846013378462710083252570740398975889328061219337394785700706095033456857450703912553958275026285649730222227725438386308137999794895843226404927695334577919275235239223886266952292887179189053547238051320575237632385583841010631816120958510381514138256308059594496421986087425428910734728503757477067938776700107535802151366246933443064067767371328750452528407970392038770359404648694389837727611602181309929534782264218171055836068888602597131880423322737195610245930883620500139684696234865670803467382219730983134361468900066663743705629660300081998963745112877800618058125982007455643463473492819595373804933173779379993937503058734775241498068920170808053602589385245562031639176940037738622285756716615280960374307133740867461673934933653359701840804864978201165721506333099246648722773044577399811702776643392445989375097530629405409374081040324298033813624499850432394950490631666036060037923859852863808513350850300684920176566054254396029787859949379045212974528140601355809487119136914131863484046445893413351486335115110333431973972338636069896901788143790509034267935350261573302823941411214626261652830410975446147256476455131812752998976097356057871208451420184280066797415924656362654256266764012759381464978001611078784012214463694918987038086267824112357051822252732872866124928688765431404639967327514038670575030462219363912720770919887581123262463729072178371817616760407098882139122161717814778308331528524717648762935368506893413703367540373192034408055158726265783554703384678187620107901143064072324038622874132343117744412529109393867836477118462504322838513316198617994241983476540082759893780322580533110712241430090247961343068632744635686526803434400096032917239800230728572266157693555391406344716865938558028818444822854543945280286828279796767020756655646461688067153049237078092648058501066475842823327597532524473801172574970626546984004437487771333583127289999515058083566093066753545142363995262146731739434006047282737204221509752087984705093535231553823887559178436604448932666832537161727936687696115200800229330294451337444691092211028967503367678821609261022345926719430188220225050761629069979514258852860793792736375528603238041374419728455957440808681670046693400806962727195466467273826073910596924720147795720879247070980968167791481246003997375490574711186412364329799378674763633351118830949646865981183460208887288097391466801820254427443360093314655367501136406247958166186936927363714181083820411956460497016498075889749970515649584883700241265166965821836324077685943037238773930639827796346864151331700809164826163599063601787525877509354099177452970148712053323956259515706667961228771049104421007634328375311075396476615389797753709730403898313824867584036260257646501249889951104439867091026227321172531797283033730255076980560786267622180835028176296389377119814899903408117833062154987752471081282042399177262482054138854850424462290023336302409176299350115231058706580032853768102298528587794257468883820141931549510438211141142171968457785765368269743088406375378037690970751828277335027651110814416577886744348703021430429099737869858518980398064339988970983668521558058745100354345771659711445976506934050932157650410533440933943233328612403174440370162244105254650583395378811482789148314951235251973942789846412662639058167315702128464374990608152429167860853408078568837101647184186553309060135788468019971649269797554253771502698088352596419807440788176811118648668125847521814235341716716867701087296359505921444469070828533838781318797967799725890760426842378551322397661621413588994211960897581356612287167096713903337222010144574830390189949572027954048048963710549228588110718608888250552289329283160880008635383720719047635658952829170608929446250198350856293922275587774268232050001475950306913933039030025587676806926149535655213480040060892111921961192283111442324247974561345756964583074131184012427137504544295604636042525322918023073701830106443702310728385851862812513904416406281201250799002623495154011328385778276042278944324492525988923127096525697112809259343125997827496774923526991623804861568509791769157644887448912713712680460718326093736612304606949837974082641488407310293344164665989289784072897005816155603766462114515539708274467975402985956308007188812503404902814279884669657200997286176455380448204649889671996446638495100240904113469478258132479939392930412085079394149091750834231180778923946816858776801861570767298173444293145411789728547339893655175488209604941302248098266363764306360363780136815712846848030929987491934872777420895736319630388938264805693634646093813484982437126943049152362633962078782988787219005370122074274672071161471111377679896558727211616546172104330600145356625669020684468235890606755039798537055315188906445877970100446098850062088922320771992509840139839893949264325214126066525042190728617527292761661658675190963691073505146397878525336197548460347788423429172432598711870930250428334909228794579880963704167944923779315750838687583007174912501843322019824390756047524062120209689518550221382920341787161817305000341507005399707559371241330859184600996991911152840120523549460745487608668067726520055328009309069731031112299810913104526408270721890980287303173076879100969491794930046060197277924605718321574103702880712402362841169153204746449425052698026490423990486474925885828800907039400213055402713259385025682299334842217546018989286928987276426005419339660163806417559071256358896943177981640879910734687253015604367963244692029625326450310172747548275975602386370589697075790828085076708985206345075068346688010922020934197532197752749176310291970133832925628936691970104787367378674286333947518109830246918457986144276728558785510845752533677876115024581682606579605105208243461261774506421541397305571618309000146733437324965912895053623689281153596186958419027363780210912979142222846367737967315347752892514894695882270416533322386054007480313573189110462826444248045501254192755121099790908955028095516346750979472121059981843638201762032476578351968918837244963565433006825280212250406381936863451636308230600649728873262863701102880423837334243103308904732116701236751471262095559854818511253290957692527046802848577069887824794067144877915952632639543224256855627653214859317466423181150739610660238346467746105607590544065114197281925748772967398454708450738617335468377858145756115845353865952411062487104104617520254858167811263783323879242918370845314323964120162770976230185329955793259493220726929161093621900810022942016836542399149760386585372677400334084310063522176209251114207518780179284090144939374363020593879799359120323302728536837646565389667832274474630792350969109422662930161084049354709022381168613910722500264934864925064038124746753040679391423808941543601182743445022681909108325532174937811831285393272828310267980749180765084079754120927124818338336744760551242242582415747566716507711417754627704092633846966594572220461138618796432422762836856358651658327130550807180082555542913519678760470964807386985745013856957320142506543382353180710439995116224223803991332372740995608820676396711860325153575499561720350546056786670900603709371877537194449902265235942280927431443873286891115930331330639513241158415278905730079782396568200255469426271228006807189313204960181708342256287800333108047204919657961690571156749456281453264287751435301825555922148086416619742701971642890116970834184125470051759009025984237586725614876204400844127393588415899316471642115970395100248641920368427845815481247023939308980787118684893841552900678789577830100293626511292302639875699315731607528699271806239727271904213695291430720359665708631455072551366560627222119576176414150306316178450804940933387508744338128819050002364887144056434338850770550452654248494997684047746427752733332145423631435996358598009174782235600235738530642165756420561278901908651529164118395601156850129626441568556874941847986790859650048278905721750012583308292283913605492256026733566640635231782579885366508332862580929664106108167034152415485189149002524494662374843410044241329796915916143701739620591674428873975358718798566191725239307487632817265134533310089666106518230798062262754909192849716716829908825363456830083257411326481766972711070912137864109682921733192737627344055784572871259331905700930866027014104426803069651237722111656570593108228900136069223580397096335027659031800595934415150811832281312070576849753635112895983814629589762463586094829082794921882652144898106849287460733033958033831968991200429476617667581327078871023051154833433274818336718564575394855840018532007377523436441818111964389705335688813700044130983277728057437187496210271393342793324025496527596541960190894794655607808840564696977820091264153966197297765018623572775364275254030406599827241459208572317844426027103459908479761943856348200334007491780775545471955087047026552055814141572117763582617854095647289940192921991181853563469792148136564712781002606248943109059718217015247464166649851158235060163689585446166497714158434002591919191358600319294047103018696141973253583691551308084245955753733604307772934793240265173359560189858619086096678948097651924394027315525366561439317941929754711926585544826835482098200092773147969384081201887822561899085531935206534026689388502563056481857625691483909756638867283417093265933783035451794070596943067142276602959719004773296090903871774330286352636753138174178528127469168339460774595708879782655847669529360880852175249453238772535947319964513406638024713013124090548026408504393725997714881328574594191832907014258242997561777863882476243714282950814435552408714812450384051779103254518426005478642529707429320609883176896564864998012095589097263909759209474622683389190066651345687817069143462026916862224924325628860182753784326961339379783092645694819846440139391378394111543070182717520121521019794433730221974344593499462854301679650965707037228958552906845326899692439527852473117980128220774211328810226484523453791910200976398932701892435110151514996159906210715960232871356531756038477707223694240686371734685818792748169641978930458763231511314183450367241965038081752703454199957571829666735684026632421923881982867189116011308595275790617870815087999445234265909221250587966470120087707911063386258387513503559160296418749251104981564213431351926559301911935275276893522657740829016923720368969388482286301698973538188571419973193803951270427393182801681020460527586191493940961002971475316628342384979895099786383941640381599555909322909172695156063711303619532576453521353353796468002418483165817705679712637214665247809668147932283635415868566346550816204901987670857938694800510425200414480221568498006278417476071976845729963482973030245089883581446938046859970830972725204166352785096862381163682046663315004956839612520222004062664084065724495369184097142256993158226159260324567107615193239502971190798836819548726805678938341237273890516924332801289064833094284385618854946948404580523703772328324592052577844099103196887145706745852303367252566763391043535550080220003783408970673215689596247412418615137915938995792735733464228293921545269251546263453652680775856795241556216761548719381774568866720419654794805249792089095524014801738553110139567563054263584141062878617509999343571876261777019247989178697550917335076598996612495269720558240994443242401661907161426019895728944220713380503383075884590536968011410903359587660960502959416168535875929728871678859540109048018466080683935805969299356622180240815458355762260165393268164562483233963696396147697192512405348018608370850120003910028056404491337283173778434023505419884273510815324155479247397888417398412992854891299202780815593147796914569909597894344340813428926717965336116745307044265724322887822905293834655964021319248105914558626948748112942020959264370064681573515497811393016222167681743529776270168680150250518420202817675173855962910070394318208031472460957328821071921536873131928069174503102928685424225343444046491342658277142449931199785471536277179365691631074208707906589607706042506386419746152094137971188799208993370704637254275674416747071935011329416254811415481678056955418819837161207805306778319973112364538882272212095786991374424790144011957832494577671865159245603479416847255291966478605656742214731719413267040998163866013917361546318445963150036753899314549501922139775403987631265974819845164198517674470018298103169312259695843835208995653337626989713744852711823272791825739911308325152719332580874661248222344042633401782350866081350584838618591811017745437029692035067541576903813434194415758139097818262494602682442587384150221909803122518240273216336844951930475886480121864853826949595078934845773353338201797853551501688557710990378513389255812149226612086139257260214028229735857278232591614147321092146022552257350814691673058270878358354208464784979802169686176225832671589712169230623218825608315870379034272419403014695971915448865845532290795102324880626101435345306766264857242274079155248496840962337942677856609166803354754254171247661607270862250544277824409019642320228028550301331989316709240883303315509291662476811998076652283883704469325363133534046423084920517204981372803440598012939083537415377321346779517260240628849105725207086257779553150658270863112350054505785103288858035624748056527657863633336017136672567827641958256979323670798856506104040861753277767338722046749532174399204683667346913962116465497534417132933153470860391165132660032953911447303412206981316622343354655361136128228439241629850860889920585984118814403439497305434651454150010366440318093260946914660904357301117018255294514511649432981988890560221336765001441781284508542387181152541603775577658216542122339776374729836281401986294322655045860447283605450752023925555997415994744089428470834595585730366341643793071649447893189651280759173759406046061642533326272662669002375721998106730422357274106357713853185824357692690417716786243479219832201426858252790252486017454267252195419987160446509704141241707745417606965351760697039745241104504701269632287318036886565629260567100629113912642611604754833535173381859613548332529879780325239267684794473295505895735570201198613945491784120263421756230469505869508268664680273708816923112315281502917194497123719470396668641130559995679173546980636260093783856786768346305235328090361953313849235021870724417114200317506449616442085863826865460451089551355281986381437131339735197862297802050009836091566510420019932177513326437575694016722252124922311681588393897056775956316762269787608691024596261683673076413207542824658796386860203468060163614433675054451447991863748113056705925269357979767811561493642384742787373687523991279490957193375697365635684584697023584649383068831108972856935769145241316805667160764810202137700142545470864281731733374634999838246483907845747579685934979016009938303665674356744781318229812855682488842568872561893829717397110076194228382085432150324787004541626104836457420474766064204294193458690519056427502384754807966951102385570959442530463905991838731132713537327020913525869143942479334147441335147265151601489292555734293492901828154643156720085137272331268917166968258257772787528198325886974452735747629620640656649738131095468890424374140647952912821051637442137819572633107938014174458699206287811059580064276266256761334580621582807625224202140781073613615356118386969485948871175985535394866696904494784469720739889650243943603690380023734071652987675252515250676604609951594670811458747962547669120957208838962482943226146640715525422918922283192048479569602225744921897790583396471834947470649818354698026451138402076279784520713239114649687663214718095374072326397353468869098962177451957762901648875065327498355092666435319750724940731102276013106796152785771678980590596871626468048662584082295668065088936493694304651055914858521928110205386223589442055068088676693873407186518296978822947364963838451539365068642999187855770036147686733277812237000957043655139736522322756173968573823557061202267813308942643647898413327128147330922378121560474313840503685099035155304465642286373170784740163906402001241407413769112609892668570502819998826313598078828414948961960592736020495146877146309420485809490376398480194748259317287923876533345218055889192418604009560876293539090495528897597849012870613838182968440240838172576793044012741488768192058338219278170533495589760878087540773289000331746908630565490184787033405259229110945731683126985675533481791904155504263640671780899796867364327561934430335202406402178023973725200074419307556018773420917253489086952599683647494913213165851622877669200723987823985138294325890729357796518273693710224672001993463579844805087598286381877532685245958877729184514709031698076099443851176896013751380106559880320099629708232046063762039475422553300617350712923482183265613137580034339904880943162734128966987544620101596611124468782627325686351621024927704166805134284698835848152199994367719552297198322897212539724227710225415556502239041620695446372639893952073016816535550639087417948525555133415361863900461562149061131824461867779603048366765610932289211353323891404317856082046246970383052997394828680255069603779167044100568857177264070000578546807470194282711915573831973307840487482160185865531194990717174214942883240454312236517882034274627377609988343856551434943957878382355481639232804202599696133303052326023169126003444170939951042644341642183306005489163286167001425233233689563817957838018644478174729885635463387753147608560589744792088993725141950634569657576495193837046964573284790996235579792585855540245597455666315473242487043860846400783571411648628169064958596730300606734998108727988166001511723784824135904672286671527730840943328588844232365184429647556876446132478460483154324476052152326827425817321033327677094563006455415202087284705805887559315926533306181540782143650293492825811963085889513341900300011273080272118716447383298603219600989196242680386963362966222719707455884155762103948570090388840168621690528515329803707401575095406065149379905873195762449131326260806515983251307845360559986026307838869817738412413999633368400165970461097206181872474988623092669969197011955205256842876334878308986634761639070735820538894646499890026817947495442250671473202007404779904727585653494533917294930319401045147969664618375362439932241406530218001750310812202939340820876405503384893500213857573625702068198357501892996932184470851120793304859226776494063655261080961060021417817488129707400871784055442738191947589825554745823450267364705816535741764789709479807690170099385159165571122320587875524675946873530540199205724131432869212059667792890804876509346799749873657389786169054484544038149515037178807123720545345228050831172907584432812830810676328508865295283623217534547016151409596212495676017859849781348245289159199948219660502928595831731584739583015654117680420412639674595736280401717239209968183968819615883801622146776524576405740598794214091220516237890266293347525834791467726666800861552108670938855321541676305468660099234322920939108397393960831813673570935483988489240030735729472428365535968259407818516237130437836739453956265472659063745202206231655394452718642001418544286202935923518677867221296932230515217774089412630701066928844077005670948196841167379450706460149370038444582822327545709039059539063936533498090683740947499454278125305350257529240653280724942038114861757354561804834364214045958750783502270019566597401106039777692467559440429004560557553796869214381347178507036559828500659923558215384767190850826474465415052374586834738267163136426979155866731292934422788811673316089138612654159353967325795722728840826963963483092476798908222563811963605115462198201276855024984399866913518021898816479464471226784524506726602609273887359189798779354076357908154640353874610683289932254390973305949165551882498512396405550364204394278360745462760083911790384447298468143013522210351612949111578076476416109010374767252748620506607750177585763212925360532711305226123932086697961706871014880553635626329935215299001779233488990410253140748626856573958571400561527212341729022148208888378797927745368568908483548441405232068571412902641703706098819290353649154397326577204891613183192567581846787021891723199010408633224200103521117055002279453153695572085010390794722143603213129024146074835744988491377140041006612941376469461403969046977496333216110393445009120814039789582213498152033718400209311710837975022254684702291559891891763766433772916750303970485243281345914667988191966919324876917330091939162856539189895963826238753762837177547920579918270888480213347560082815991391632955386136841801326189269088110958358580513652198164129697797110433270233904521791177925605587504273050727996030027255142631523783521112865953069890186166162661360047861703895464964831229162181409808742177063845576114192939766816238363324579789321334862293094321406265801958898325982027331092696292733384822212317854311952686787695451518577770693951224457915460630211289731272353901570050659988507168455474061854011164742015683361843726421330500632596053197825644591197345533962268727692337629548525294117112403737815223236203553673857471552759248456395680600827060360838073861467464482489874423841523002419479770745349506689435577099592643428640955815509200742828756961350631259025240725586712541089512484872275029506873052257491447156272920706886292883096381425386255106575392219622019774307746230943403104629226509691971922570759249162364679501113984090251064185414888936315417601621775623981509687290731847243757023242246307934863565107898842131252437149611882962692727506107422550708597375191002452842311413505385432999810953625384048702267530453011508407893457049861776401036119330232898299557458317939635818582854695877477702264240907838396427812438392057718879298185423665073836106902868705300202150188527226696180794144847991483315218847371339452364448998062031514980145755377340586860816672829300298173007357827464977485639131826174903924154691372192134481415921167259426062698275494027983109017467362030012795856128326502492480894990710052928556762286867653011733759251261647663275156152100658509175460954580409227369873167442575902151312461271960322144279144297781788442438538081243592114050716448040733698032305259614485091716496228532749349569598982296240415317659991096848738112522565509112736720247239862445896705578820449296320599753953488161524771247045436598281077223393472190193061172419804901723649681414320175139121570442920731290645550352477059274678501879288089635560675595590839919873701107931488123525971004819914727002097478478355460855873337565278731605566934663075947519581969949298020202863257216819151907762157710578026922036286723407828523573434812244212612501033811001630094012175465411266432180911621538630905866007725963868741802140499735360317079971225550189566150392204740738304317326764766608725833669063051851449151424464488227786934637214260127599169222648785995017241120854082846799349467016707324521138358910025498758051460712696582548501033099062158258360778592462797599970591285188886708416334765331703580354589960091272930912324474565717889020680548333563097347146836044770915358741679313454892105194813939284325379495314405924102941470282339387680675624103579389622693918427295615302818333941112196889996015433985235708050509561055711595449469455278232635262601468587559246208503682551134923120973071998551531519094641470498923993170843227837572729829657589880783359032020336841698388225366842112114315550441719609874416906873995660851596264253703381830376474772191794005645915611517167357408349301466579003644450959274348493843020770514236398179739238859313276657617983404839047810005107580496098564462784651611803065721665184800586688203970539207417497760945878433478783264988088345347475373740768701054792535658518481409181845642925884384252597862676250183469150472507180970749874017682536887650286312222276218808577987889258713516418312157244403911159621635433965316595200717856110646394988299134729442574327895214477592013945364523921154843097094845411698160377104582713566914696955142617577237884733238152774345802259070336268658271105419570237491178397746032441406732738690258811897659474729094327061247510391930308104403602376542835155482656816209490366711878811520090308568815040405234002101754638397422833436326662578831923214823641350365812099703277330424780897140763430166072101086278040125634556080048147053217427782885829585921828048440250845290776422338571269620939588687245672812296822906766421177157200188503100503989018625873109118290077603472872242388213106822844319525202287127398157192743098066429821325026121487351822670513757704190518823112978040436285022082649875682214062512685181293562061575119022918720787496552706953699634706090743601657954702198333507744733012630480951899243455034612649579161664897676638337450706344330115461488374667593764437834402259277109805107965995751969092237663577063643070817724574785464645939910846043156574295767142224218569433700061929281232750748103455943946833965221155602446841996379069021453961878420035335008594262100696618235646324008393585436441064659867498302485858723603316625030043193162957041268444535801363121997226903947345096983250434446822697480449245012718326686631426785704418853276798078319305612430793190861300150921068842998770983806709792866057663454091543183810952897362369537857833484713951985973654253905034971940605542887609313775601200145776983569372247857516654407054378003083091624851725141988109709976540911518774062702148352176262434489898800787475423430128391442099223075352459897839156543594538397060775506633799493711378658459575568376804674875281122153348768971045742442431593534821879644636762332376163514333836236259798626564984967854059537722213248356611114854131077079186493183288854935457506718942607587401222655316985146607067565532209956087107455858959446240618160627303398015069121710314878911301311180847136164382851862885733975205273944389921683358055036677627322792445060869586390510752323226694923636191228799860778360849295352494036896833773918869071526661673496460804009140758847946668005374823923978353978171343164830984698436478060412651297877308222306199934550995194241628651558696657771387463030568253909011616657163014982652581199969375827138869403609539270370057116765284131545837759897545477615143347968841803176333156729378005019060881006726468100455663278765512110816406264292263609472286570812388155052996105592970345487740855769392839908407117131541470648948258096589029650532203917391149680509090444189507331480504092165387314555087676641065804373094479217908241104241237717756080337267139751385225607588929004965574284742081897482275024707978560457639836190403512950784876625440167713477466988367611664513626629039419006363055692640917108570109693838265837522161772713789062075330919331265430201964733486334943773946602048761654206933803830047735785533725777730993798183097783365292061674097216822263677825128333274547447353733834534697655194322934816237019022848225126685090165019424013765549817829934474993242670691212342256886852830214319965618486087642514104765531312950572807109374492120899936823720168348830894449890354188490620481148682260320074649778571082471095930582301720174476525606088424946886638770654861876982211004300242604092277237647569755154222818733363288578424061509524892473266170525536335956720696038872911862605025535789699784830348442127715612132308227784465260457482770833823945199496886788684107152745201052996203908483958719317908075110360870234526963550501063410957591955013477922869753036467499112966867526025506194378879757064490849795587988746373659408215657140924011743961646852314211416428601843233470017377615565548668368454756863682022566384008128680137005695960530798462214687648318534682188222039347849444577420727464263396031938315372434445883056449491388968710416629629652105093846669693122142453073740747492303896987813749245913836578070528506693855615469626295353954758294116376882159157781678628309188488114103343287156215744892647894409289007994591296050394479568923406992203381245739597551513668210185727077346515864219436028204136819060202651983678530398984089940924322973723265706581634868662049738611697055861712976737383738907604510346034957124921079994403787404356872633215019181989777911205060635066079205882439636663546723216828794359843429539850701513341591720822305868652262921734925149694941587372106786495698637531302156003162532345768705675166905163711705988733985935650725412562798523319806796093307618696561326429089709028293266973846571745374934517909816523255537573449122315261131271097471977549139160047193124532422124817684407326400048555032966349906377397171028688187257611376035883614323173302225750732845810756153282543773517727030449751959991873013988534036307553123638641902161322728406256321580860935199114680089508073620050477893123532156347133255805088176961998747549356022689637535312830557115721559184998835394618088051199228857441973489787698099527100864226031599723701457923972452494402448826137828634864001188637441941483783116523016807298813168936555279983844584935750006015589701855908363296940044440073046481276297505761641321059444838620271165086469141525216890457909839121686000494948798604682383932563214829859303475913499608662363767562852799071043526969204582082319923657204003635312726353330342502712741893118767462385939288600999574124300389365680480523369757722893078850703808354698250880344058306904409969830037196913816850428847655142254965749927047062987524688806072600905522001540849721410548910546558051620837372539192200894677390700371014958424067228256112652974395884483893415831620569350776419037234340795947245094941052257421924335042858257827453123100195239689254499383799015939305032162745543727820055589250541918940897232519969836651975773780044763997444719480198512134802040794194572375899185039209187951357214981515264507094990837024838051128793720640622256956841287439207283449365191341611483567021270181280790515287497118273718864720071486975879445326105618103727056633316481223692941526275865578109026977044047843512027831960122779867944628113049800657158665251761025966948527022776655094306178814348831564582435686271820960818922033987313872427671873905674326265095498057755949566619645807575680054986999811800519638138860665325962751352760995910187601791688232430660335840934612571935071110570735092294864130878885892101593828019781734180928980551535146383916388734130361295383098749020684641682448734575249182243927196311634165069884601828398731858533073662901205353550981203300322092668818232435859345255233956236211276752092986340689308989526139053049719388126377144418846593771412966626301535726921164032920319389919440891794180793091470734329011047798416649693385020415984377284585153494839244241537803314393101235851459934034712770650196149342168922014650659998250753380003843977739461103099927340600448987069920063606051582822268792618262385413464381361388502607188781681988050095932729255242487477324470272961298315697879366312052558825112098778547102549509239251408433483576907847297035512162302136553939012324065817544518246145049425500302518946280957713511388902804396210196450745807940649735259818773075365595709857936763427651250165130571670075066681601202984830515454479798163494960448227174103641027719382948272659913163915855539357260404246277524043903553797496753904388578912386516813678443613507857911762214360769676111490333804916090327124990336843844976132070280593426669336840377759539523156281995024273045118450573817478457925210764904101554252931774831248118326316198450622298710147235157107447424717684486380298226333322344862830203678175258327470236748379027468646761953766305936746261045535224647111312190820065731247876654733573756366756319316497896663044673184233549019410557162229390805829774913959036424024296442814018083917178743719492059628492160968301005794138408774571159416555468998468603266121661997309761589810045207436631341442492853038491549035852242598862561125021608626266763087949148386354673014648581957453984370167399109235988477536569249694117268235752905877218319877080150185705968219567194167242678589392668547878530000712689036780068495589448105216751043713802408875936557442437142848689969732919866111311095130808668700178950015021546670955743152846727244212892656833237823269448532424438327468111744996952581628695212872223141142272670076333158031222092609206333696862233659191824060733290812686009169983835701114617587805237878319386466399163111295217769459983605854278670438754436765710304017432899191097574178498695762047699485309462042961237680059155904659098394785771725583375659171476155625281302525090791470884484373341900814178803096855775071772597732530439681971598098271928236322729621605519358873745324642861756452054015802427664376983449459736541928906795427373617284603254049062733324714210495644954641465179478275353866205802812999405076445671111612797211015833181825820075554046747748173042329717011831513422553855276172343642249904766308425670797118107417916881386083610251679426289558798928795735190351442722934702515198944434054559570065389273661590711202383668833895173856141773236745649283375692617024646248409119932525554340897943932108815422038878401078780543441235730759513835127493519648754846228966247083790367257134319964966746236384403962924283714977416787662223948516614442617142817774357314971919400049934612046991752026163163002516871978854009268609781951787188128813720118059523613278879421322960831092336106569227054794929003676548747072172391758727330827649057099000680369127094217664509111369867145590129861491956192683197213536784355548697649541923536612217691244132150722966220100038478007053709529836973321255045598225237055765117935935169323210785938435862587576344487671614892639678013061821886261187555590299779594021931062731255183193968680023129953138890511638355171613687281222101133100053201305196731291943019601131046550073187656466101769172625547043373333093957125429896883814965863561287852606034870174604912874451423940475490048884560111398803385977334557577257074158416975960071624682601235713082434576919062788799175824382513067797029840405451732004473415989618469776391724378847957622004069433182554278777262828426006801206227937427422842543685010110102756435148570555551520721428649441364778092670541327412740038234988718769394174792457136131348974462712499642562452277151398508050582026184195570521340710142490232670842700169061428738560842018748555355108122502365782551246645686627509952528616346453726411412247026310375147927520616738394517726408916841964463118100948541737834962835731085243691544206605877832018878763140313692111304647232372378343908001659368761173040567121372118531347629785710651748361830859260501014992739779712961783955374076945853370453410187244863922606927986487478303188837635070165517513569952727229968788868795500560880028215987632448969866610156861087972720766597311745604330681229379468859766774042214788358060386500110050809202778747113813509450998010185847635912647605323037821598302276767107831309268497092594959074605215071573222110998141064554753293102980438880665046455475429349760323861355917451966770893195384698498965726864658256675768786299509527028183233264874070703709090986796432492689046641812117394639830699827495301994986374934435612625279235009421323859759138070758475904149069183273717179860588469075078725373856162982456141844541261749716373994015603061855362784125879212386320396499833360169433725877531381207020603835570196702219646341166719065694155896639623823751149193866311707332144757226246556091099455927679458270298185895070723775445082964718752411357160719680265282431494775505659089856808202822765987141713370764290217558500486971217225278013395767859596268097554450168594988111434140114897276298189835500085715211589594398418419027634137721014443834715374829451163158045426332642618357519168100830538531669429299244471249937772084797933975079143949496321274478899575651726225592232583626861082484463413564230353227886194722431238822587311192308793442888328936873718582565692292413659258046596585267724469584604895005022010515699723283124893520246183041810732138934488530268703867741872820797515650094694114034325893428720777659842910219071164021979389994124900494708576761342505507248553564259740051566815052959161690787085575544932077534011610452793898911735648340245824318574437299890955671503264558150619759527649689136770721588063419505310018099660255372675537124463164643204081610201280075467175693982287360550094779341668620697565061312757969123944487492393752960906514903322966755380047417931749627153753006255220318874392538339683599092541303193826167072171974781627522661250942654190849066328156926118115942563725295033304278710911170788990600189331032270531661639452261395954087239942541634584910320924794122172214665163225606543516630106261605361902651820530673889126766760416058971799479613298327293351507524678068662511896891976662049293677313230287466444500857642258802717551214177755411624974929183440171792126095945069964010654668143626264014694815549349215765640513704529831371716470971466654534487465484228050579959992808595986372804706937051314626657879108495082350027327413654059230362620168972188394448256040815955723705438200945280389547040979317128680767654511224224179444043171352725081350039179362387187438644442421682291050393307222918548490885056270903206933434435309691666611376540127570851988283372948673440926553447753559097966305054196323174283198308488193716665378206882349203272996563141393619895190243783642524613279392124912979937757715855860399557021644968454105170655804728594960070202841691855815476568249239930190473271750281172288911788433143470235541537137162183954949322571430996721048801751792596229307111531949276173600291677731078382989374991984475951597767446745892059119628940464643430847938150586045281915010110116819361703192861998980089876611676717548053729727366552104025685496127979563491179444914886773211970586930151456650954844807400413469694433992696645275907796942977734147979068839165550567500870995510059310522323820367961671352890742576301822698720837346679672134257608638217720988319428926343540944332114703241911281927280310701725797633919073992317817254980943357921743720159518580529683386458492184546137378844433266370728261402298925212125222240795333023398657756273975454784382190522147256992974690480276512033189880614332146507453741962541250186818137132725404810099789463036338150585707070393342093512793178045326518127874079514253461392712523784055172016284496824237376285726530170743992605933595760333276175389855813814774415385301126451499579732669714331918150734070091335968853908139843705214974623164347665534407541486361576782877632466032397692139419884404576201303913019351402559120921572641054548197864462725700980503624313102271009811812321277222193239076639305693558313126130138121405049856555981654394107423885996703445157197013627850806041408672525806674765955992910204682887007034141049949956281358488761232419316149811346128022017639517910667543968932637089979497236446178879614005697869390211092145393277569956800398108380870957375799090546271817294215991988847187555124306305503642484715271033294796980277259637240970749209849503451185290682674654196417873445523563960781949414196885246668239562191015274156756925661474927061970448976676155839316271837610529004942788825851811430185949047463386305709181426463594592833013413369319836879424267579795825933573153069516899465991468920623755514887880178130812932095094301984381647604395678521655554838202867446607553523658770304582680401171186872161334150109032442314072794904995894618371334007140119171736328425681409202446177075064546064316417011928379879050012245269326145831875215462586210773257792903131238056536339238555927973410938782015935730273778132569191794702559257575360523840714035482977289699475237640478648629013836852970044999906004044122825341716505329659205130004109352681324894938887613838055553540615464184723288070854701483985718346318387563117242152776772191480886738773782963771120261829830274782539816620778153397371753726679644238779782013075472621449986112528543022983961739904351599910464035036558790911111034491619796964516159229222102349669403248334245959826221262299554789066802923407517183072575909548860118819037734037395490793190600560498416080983080841350259404625811120319472953060803620945075648417987391181818120488253102844341666529230772997306927018376748908361253749050195607979090266961611595441388444863767199481425500399862980130944642770155131218270142474237929870648490632098152285681350943171096756876094828495585823117041078707351170119480380909272530544611579703624680653282247525917137893692230842063724908893710818837299957154783238227631385569367560096904963618820044474733230292005683155890817686618755787447030444296670427585367369646451573090919485098879283094498780876852166554056020920821209679055888419586545108196388171555215655977253274616051989301011621378884368594616556310807036344590074013399522359692834409692030959629332472765731818288595350460546319759154980128170909836442088138031476644309305034696888762191725621323350038242518372777120199907910844724371962718074665823348348506523910088535438012860988003420213689728943307893783049646612058842211004704398617983653154209356653981590591450872155369967835724637755053407956429741317256592316784559225225329934335174648482069797649895916542345400697673219971018592271626396617487938725125907940001217484961118486056142410727450107458893850642891053097334204222567476027712503761308932479095910578161905768395698015886439491082844425530880757042575742310304129183018515730176206298429506655723012022770407592939501852374308158116373020840858068888951468729408929185434769018449088035801623806482181817947384524322637485110388122652630842214151389560121673162808596053148384116250032116591747067064594822476376595998360208998019029408450373443255457356276002749679532514300712873592279325674528426200402625921745167804736929590828900015365115830970714914405593787841851232126094486191265450017045083181418445236753342975648543826519124549904448237769940182281472654375514818387082391620583014161580676788617632545860099221316655058934950057711543693963386359736735400548343378349578548258408398689467944542005531882813283284980926202355765973987566506630353635763994911585867854783672408337958432731953189951605600241132937728411209595155063173787447424030089488712132427690352619250903621075740456594367595939354024009162227502361016315186718405880512916594570490292144022911728773152497015995708573111113589919853341814727205070075100944232359717506530320630413748325863232943439279535396066960681729739559860456096520182270289674986206409865696724977533650888666179837058644438281919018971277095212265464519574220143271996709763000719316278808470188710694135129564535583715371136814502045703692132634270670504444031856292947587847098551357765731892079675164424631619952888222038370458504695008870124807072074311329268378860195628898375259326676629204029583574439674278593633852826894308574427785518743317518397332082306766871833442212371801143460786709128397148946430462445516747898934929077386290547175591241759447287298493625180003756174278815853985460890600718445360367401496783284715215455089618513666108878789161854820846987119907838569930941057524296462653554061176110376676353837139078172468318271867702026812021782979207223252064281451752316674920188200438288478209105380173610745203929514183078099853346660631155225311573120391194047336835581683910068121800803699530022842546302254432165257077731217175435532495606596084233070326065581423623316346660932537238707911770532455958824643248905594688101183316009888645879738544646660346062499570154544246533399623187946168926745050731898472251173288680267638788179514336358965395754968530752726282376024063608893038199312961382812852661114526827778294318734058472189774624045732168128135670757088755741943149158299945343718353894853799034113291584561372813126626642346897043784295127982039534545981983067950343525164363512558462607159685350400384812041485646595520949334104423040065533489020678650602988086935922477527232504803426671452761789207018289527303682225650261368243843189217477444659846264027404554409652060732234911164607849098812798527279334081201071296985350231092462095880062005805132789718384776886062433640087316513412635461939192036779085070942442145497593778861316166456310174127157541548936974780130068205393806729939840353114545430086675471750157826172517207905020921361692145223982587025516879813004702208388163238037065615669093193533650136995285113466507336502791624210995731073385466829388182562823494448672202756225802709269686966229449214629571108409642043131227130540503400493800206474544125705997639168203664439009846532621343854696333863377999265583198476595775553329870407848822774228074800974147465958437157504800472188855836456310300968330402837492406716681909123314364712749175409878742091156923131181709899203639039937827842514161726176405767594878438870243753237656203310848132996645376412500309809153167625622627901500912152617101248740862178480781874001284894200777791169683773518267677716748200469225335673197444323461930110680796482535487112682381982790195554639940381154218322884829176215675968425474909739597733083954743721052176227040520744395559046840161182068163645927923145947409874109221408911285444048567859068735388959567248631604414243430917424212097579196266976168958843933253009646099913813699903151908513935817350252165857230231822659439559291848778645359597140476398474832631686355455030995484257037795357915069362365707619038412562647378361775137704103630782564665124444038142905076199255043313821987858480861539908886974089530684629007482280097999295259568715701713593395631736796699535923343323384715865111932480059052656602876437680330545910731800819400670455080387085435118491911428509671964095585775818548580774548390490537937136335706032139298961866207412403106297476400082008380097323136055062542625438605203325090780716667036459292368827436659193082298050952317433694063210223816508462724929047175017294123391370606428698563927640884653554005225932617678211272915473751290856671633756304111910037612809009337810409856981575868599825785832917349440850382171287550321191567106816892613175321456495056913545315272898185408001295558246051769944502033967629530201883258922683822991852399130730414294065085028986948100574341364324277693587178486303914437257107944947933891951393271825382780758315522392415338111881106158596818771198843929046076611094022587217264781999759202898497203218693629051252369225320162706085603592182827061663105498518884526995624435030706647250269225735059783609229975542653532993095598015010850887257307199340961805762350021585727945032893176181952316965662061156791894533584273600754622119567410309589018318841628101582598734114296059085143428526092611426681596100715951526316503997939696505157156359233362655600012057805275880336290626228509923700764386567303779345103679782681287604642341563884144001009771372130143826723005614701578435233410373634477470199507695556914871295003339704250778271358250725634526469134339312114869913961505680483315581861704834019991583813828211027897107128175394851351243057677270943457527172360032879044263063979305010140378688102340604636768355535997793656167841481471651223202981402172833262160764183195250664634708309373884540761775486521340162649083753151897449595834777922653417285614327475490325975892104160194796812872918460838010513328132744770223835350182177671335021418704261155838596678210694506046387644865690696316852452364303355943684265039541093940624648192486580070125225739924948165379283312665858529137294203456190618106636424623181128442290291421688000017184972745621071083370524635307314981944888915364070398309727395360581124965698791712903880344220819627937601012238782239951633314820007799332130997556134777142207725149575259275578255633741478455175376550469461751496018226605488920069865587128414581156801711599836413995586750301137889237523492311322561653712980864526648783089363524442004929216166604978549578219783924336333671329144411690150703048266764060112312833761045542999536490207403969327297535110918412218310778158248145512900703090217196289533091876517055951309469031088447518303613702120285731520221692386296108001905533473438498180907464192631495290047229931509483492540035209023292096169209895126797617227055060374527032524330234862201168680261992918292745235029880246976796736615747551399779973214341263165447845276386933342888929116773654955827942302136609724310477934474750818443035372925368857357219271683816811728686913991272859227761384128491159329319988277339520121646019047958641856539146456750182473589792727871945120891970798263792590707903938145035992484850370907723439895453214733203842242084913918075205866751031682812323581764777593550856345450477566872623090643290879084868044153259111545500184586381826040592404238709586253967189734560863317515056770659212651103168187996623802588564585690128945443185189908920592752430593258763491822668675985631948940742006993536190715074230333100276622473436727857050909718872492404060621444230080053118202391573482971608779932450544499344968813038768789657964958469208100390527794972955301793490509130023062294188978613907918086499830281718680217258933366578459264266596210676183381735394303290221982841335731928818341768295806066671236348095080517475882865312047934636905293962960572990366238746603708783872506912364122185516674482166599743055319336137043951664856291357188776250891706610354982263407059697296581572817956359086903545295418739936200086760102970557519530008810537401224657103775016455989964177624409454599408677801925107386322719968037521531644908662969700334120194771534251461521096842261492967215957755297566969524465837930356000680338057848333288721066440241306616391171557243324041321949415885344940334478612137072745558942602420456745323833812890538516435081005759146640745834898818660342530752738039164208824982191716223958501628585695407634492697223962730036489959115651404475820150194284354345104161325071270121911654950816764509561153793108300568185970309490458620990074527263843097038426348660199888651473868168916553330535931753186561305922549135635663001136840121173024647685018309857787123514338643542237160833323044235758385865166227481318592373311944319835568816430670891364476438815519544401808525031166603454061274201343720704867943017812550023420161298892810245135502028766879519319393724334260581762600541999406927257732940446804022646616609577314233287109536802699266685083590669705816674083101300816730826815878210469238002899538067963002518605447054919715394361342975236680518493062848523014439891574982602140299835715208999574419803005313581550370488635652415343225249705635201336705929047597733853589685995482916064725502723957993938563468097622174092153302907307940738317531663831798205545400914838487557418066049963286927911891157737384367215528560964115628760975371540381167991216506926399699349099243435893540767374752687965639884406018484882990286505594195135382039784451418184471362455856647163528662043024230562955226189998140480063638005726235057436967246847690382379790855252865434881541533048476926723596101192042899373701408530135595224631187581692262616037361390380373687728143419962113778160675234577015234232053744503091627848904112062730128811015585394741754451459056206881684475542989499746922314237119389341374997206247849617208545862359814828264243854834998977543595420155345334592190224331188910442570167974152535397471661431712500239308179802162690589851106848450685331045824518478108959996961021640759651741119691192076601754674755016288280463664700505338722311694727886866393350423371514145704270894003275081417284912346314239486995443066375721109469446318794405620623007238092203583550722205559937941605669706323557010578829683116181777369222420857715596900662215250868761948627457863193678338724391086782110820643610496006968021595185943555673199924587809164477012031898175815400264032094700187556108822024084688859343354487989209820938038533787505916059557617292180514796251690814993482847219690390626607408606186956075951119884833560874343371626722054456238521459875666177199149435273788108826772820429845242167777556342520907198028615748853053766847195319448340453556810051624512388886004773535942005726562169391441822505980204831788658601829900283853851812632675829198907902062026029053939254252028762329976612555914460721812715114367069378008596221064840351839879687019399111102626085813834504559473547200149788277932714869444899265024810551595447069346158764271375224554633505013570137310974282338547440822593353727933374807391319731598381614828958354775690120243315653903199785627767983421338003462046045715214854202156652281148895201558181054568598703925542188228857580392214138225982060006601531403492565660725161643339254626669690276668087756823704816191283216604917513788705300004339001256908208116854079989146203812154300707463496754052323481686224796311982611421516713714813065625065387152925347992180893609011952679693913219014492771139884010074547010758050083874271265065944548238412114725429038876279749562326374403337364154125442189123583295887856678346590380362210997052148526905643005077283102242233581691812830113450312976994266601182771774185769658217405179041957083958993584557532774459897959202279620889217769131690990017888133247042568086441760771127257722412278655994618703513362870885800833531647113180853962850063002731234067230785364003415335103460968027696344071896340558392706313975523938593616012532271484298373968069560129170466250444601766845626111721915557974522836150257929079566237354392353668568868546906225929688854906869368668022461890885342604645399570205181717180690246338961842716903637250656554665650429901808668837748637846898908099962682822504837333553975211929484549656596241825161289923817484550729312343020320391444058491703448194630381294724248088856954535164661529845587496239974064672466294553073110611555446460883043905385064660940613938237683754179719583456588000773599935156077719526761151457738325176553341264949883245328742311961931891899350147621577669202279056394019109444389377413681862365134884294794628156206623146291588639534679940855516547743030302547783800811933751701757486647901560664409493134279278769062812227184309355248711622362444713014401859558826583055720742586337956782016773747607592764386244375235122226335668573741307545525973298408235416729708836661502743422544902607190038602632586067631195184293735009071682522712538027810338264369894759835186617463798391346183141581072606301928027695939218075610766549980001935607969618203473910188479552220630977182115845553360693670325336301555200683937806105626137298267714038482146317865313600559087308794427545141103840554376333499548660634215758288435785492928053661273806695548964584307816339365307704463577678083167382124251126602524876554542012020063655939859242391105905099248166634902365718272987036639892715143101822971550736302208013830949981227607393762349424282779403610788730671932407779906510809512971856100994393748411801076672344393789031094568470546837427394394157893477131461987422660378632372607683482718833864074557736295707096488480354858159169847670265825100284065397974285363952708413939074001822388038236377102699050844582831712187777824406536017787559702094227126539745598089105943702216576700892984205133486519738814988902566942759631856555721454870838470938103887421572020571758257726161715825359584760915387351723146278255158230707208797440570716808193133100166914864796194061574562521840884505021312739607223049726583607901582748383215805662851219867707810128295869420766582488627746857587895646764508968516326959355717407478038540419047701429477535879122616982474225517077608688452313434691118632088135674959614060237799495693213160985098537052103427952881869848096150208734814060024716425560686031317084756911780819239050652349250513348064615204911913284735186727234170212006456585950139825202542463022017718806354636066881884988408581417440087212556584818815107128620793980496688184920508741298633176432449589495028897548716072933984351682605108029986960024321428975995711672064292413124326545779169274567033628381040690770271747068583561826254971014083772509550910843994823171178479736104169139510135866968855938856719720152517715565646635349508289889740755296762716349436228929857456408796990965480397352311290568038264798068510655781876935614630791158355773918559572907494182855761729219565368269042351088501213989616152577220484589113571544702284301682038325293696288865352108835683000800932649914343058405846957279335639241682475041297746203803949789911800875515280434579275863968217694001315798714803552902877122929667363953514169251457479186128152719267575774178739572901852841145293684070644189906372430742299651504636447718270487713450801336792730210061312203146665393099452046498588728956807987853552267790306124985095971061973675256262962981185493036883507035668716035103382633680125987286591656714626001358080412106551642813202488328423192463560690386070389730843597368152707847327667509786433202490657624758953508245259541819196900530378194679162295782217654931782359150675747451003612358376086858365998862848682270149452566417445542050025980590959537349199386440615090814316732149502707399376449996982114353851938790257942951754877191038643495930485332087392025191849207211686869261056075594756816994828359941603780350688751271537299507943364657193498855604757920997408304099876883292905803866840653957526622808245131130726784653413745290170538968974103565310346356447111949698228077033620885978101487250966119596536742470302742971053269535665685030507275887418185023057144750794621619939176422134360410366472194322254149434333893661656895271893963979370365888610280802211240753798313920314543892701261319475903433889254839398293747526790222621206134056294148801933279832985682921596148456919665114786190477105774489110213972145034121391173275294285683822254458920685375768036184094555545887504673267782929885221820169847231975849056924083414598775882607958048507402376535256341212233567676363701428866772257869212021925789355048776407675428583584340118966103207961064264066561371666584124110542096608559226503717645637749153553421899776770130913626736806076232445609001430133561141955979061493789056656117877734602863349086511884189815004016199323842069718407544145400550542698861609797055866978540088828411210913667366873794708407052426529299308986806103524885165112721123538370862464016491621190738451060008769508729370236757929317262280374318037388735129774261071131288035900397046767488446848196413683469428814761238645003646038488283462707600210602392316787848212436780274912442277663800080828524266593997486543914162430279925701770623777603352978809447728964489673359080798158946939063559403390712290233933984010157920062400642971587566919558909647650554117285476615447053149199734004221774341309200291773252220774022001326759893355405930338390156922914593010103245353138409063805020315932894990234911928225248404070672001284841566175401587101655992065166255376085160978191960694907770178517633869822325705400308006747303977467840633628129341945570051054635003007241364717827237237291897734472577088187376862857868348612272542730603567711695260821008846139400230708456593505926859518385738454125546928692495858741153022481122783717355356886325198252608876677398966211931133838143324249131986582349116023945966578002920700478330022676738741464805400563616458671600417833389821401017807673777584359707097459622777240654928788800390776824287642989724732357762686145971566867141000856298335248338429932003858163376010728053972863586103859886199973547283869288781182062768008752354682023731593695346519372422479866939574757949815482314937435426377179486240286960857637624629879962084010774352429278377851897982326749654411842212497334027092535611954444135295247610586990764265120205726923623628974249176625407861283241579375795857112214628059443602763817895327862503845692924599888728441288736428106056916805024546475730056900709700723108348945001672294521039140835657056117308226814157177774515895914777876268227310303401878539891180707598469336483123117533036625983998731590611494112744742817528167604456974052997650667888168245757094443694260990066079842264145211916694972087044644742014489744143434325810423590812138319313549823520819991328986858694800247062935129736426154430306445814033193349434819727374834059286410924551918700530123655825654577042612002166793787978066807397985096021174772435402610200408666660828673971131703408882189114162558458300561598365719053411044740624796323938481759905286979679274370169594107724959131966667294728591569628969419644815334169151612104312804182668864863330014417458082806110181640796381054586401559077065188666582363671583240885603588567759417327241621745784491954372644231971435110167463357682008577843843436885236727546827441840753271131096491581288977899315893794860623087137798492878816648899747707524869852966569281328063833649632721109426502610620278229108346218289742261139169466714244352934003048103891617123188927382326631130648905747858339057368611435755057577685955511564180230535174604724362868666001629976795337225785072011467092122868447684026235994097559334537576461381372890967480121813810435880380311481761387260926057409887210647846401281105715220274157130732852170958838575394420317200321251153666791077971654250356214890282478768348597514964202590389565894100280344133494509929997940131182949263520791257472901744071782066283296391177429359912457355315255896374231181609367980723929867559088127876888623331503409222572046278981722835361409357111001427067492360290623718417943883334359140768151097890278900821859521067262441654827334374940478397865863757483325480813933047731755280978622708942457938338278092099516217158429169879520203864880022266528861624243806664466434942852722461487388770849602816681588112974582578660488475237861044131309097476006596954483521287566984301061175383633085743475400873311421158003528179133189656679249201916729880222954052182511716916483060771150118387044292305476025993425318232077485640620362031115291358355774569166407439726334928363486846930736484212127076634949191433966855772228410639797220954059454495272778060796011032324791337264411644608183982742039254663482670961927480335225886959945017779491309248684813422344452926210099747450606377646395013931724718098879436895169767499238293791878713733968335266861672447503405896241704596916922221647416633802482032447265848472775706990059144973980409884613005501832821939478232913743358162262149673194498701874166750965616476210758667683524553712218994256654702211506908940323323237348839038644143889309998664469622831386518030555360824364615363100282054511618742842220954565812133535727423406229696109553108268968959694817652740958583190648896235466253445218380563863881355984639847517556960986277910516694218355733763871757999054849205095420178353424360342063066771021125769282067375557032709444958174843041092509736654785902438230123377501916956128051927093491159309637607897092143370321730063942468640167402456802092540729383056678706815839018895038009255540250465595666565617756419187202595643449092891622468786465949985868625810892214448488886736378709849281034254518997578907537952249147792990877824252796655619131594057436252472599730737241586718136094701847774552927775939800317798319029090396961495126542500067443229829948722969169708919590915013784147392017540789207086523858590087289917607095874378239188904461802424839015182985284420350882464780524065900830952351356227530025910826350291858159028461372331321931286944594394977799696835574919694669312249305760747294230340379094032176415657050756702607391992573812754121795472166516236104958979732047290438621823027625700815773076396394778572923216333362095842334024363019291311771351703990647633229484798046406030159785448978149629335058594909552990376117957147176282523696925533302965266056784891827137870434686094868327824049237707918453853249108456189714443498306334504703525124589884626626235013980961017500049349050160504455236726920611913166388125733104328986298953935232248657592433952866812451742228205088148885013457999032791704523869478715218134961591541794728089221669480384061421744262915178390561629643026139772792533101264743759867515737837478998585807051609842539309537150869923956746388196195214790655016338846701167367335412982221173117435771771161172754801986077926866595859226085527443640975125796781522765110377246738823065195906372224526173126738129127997865147222847254971411964032553331751962684922137755651804212655917474122903798360676804782789559112126200690117916054026145873600855934950879431458426496467748681581357578339283566106501105812776532625022519229363533912609966530477287891049093373146237403978770228551721253227637562451399824244476553421969187149725181261016637335485204842620962043434980127941997509424119147088194484385070641315690936908095462625174951716300430382781116977034340121235393772861511870960696058526458548174898763603648928643465446069201011798045752878389602981699636031789448120167593680178312016672372444467184491967887893844720205315072256069086549434439231903538740603374874513191321308436821820562207322138356617125633171402982798569361621021838276332200660204918228823970263433487676110449151843309257832237071926625703165227515075926141533435441964073252243219986585304373701274038988340147140968450452247287430637997871221355031099976897407925319549369960222474999648719747322881908660735167387071869058683384734575934194038206084904386769584141891475664094431722456191357043648756562928050793987252611769069975261234538553271996177400641777111478582849275734211210734184976893944892319045189227437113682834055012603058708579492649548779075725644307391624947728054851378509604001205156059287189168779114559353127212613329941883393972550449734917009628275487975018062797208092472033639696127221127956401351182628702784287642614787138033032789608651577880333303023459996200421203172130301530452076185490603942111987538838394685418837533102955425850314336323939630730384466862627236078153193138564239289981118152595911766359881747480352939400395580833871257757298169255245273317624665011522175140426051723389302755959658298719246749635772544581198908276186620766683861124533783887963812552357803533691095510142193365878615534609323294029247132094445211564935528162914243444656063293229895928360468792353679301794760651239758460797128577109136631270632358137196029141507612995598865119680817625924536786978178188150475397412933081571020943902979062039010808507955488553636965349352088836914814358863778212205146317558393629857197854185194566133111029054391386093217212889074272911898931361430609390830168762639753129855882421760564423390114292962073197607331225750203692970576480623249278679588538247887832190609815472832417166614819478214783971700305414566536520319275032373062241569082474446596298561328607878782862903571403065434311778787726388286436917543891011374734898249070458728864176521828637457382357627600157010794007289680325226522639382476741142836035330783585603323069582945152197792172145590321065852611022470298669485419660706837135947794743997260206107670033826289108749025255349780575270135432035813944618461211705269891255177736625107783369548026850140107313465796061648164687654987986762909302392270787102085656988091422711591039597626622131034694452308639505463163821207003569635795870553190493859196395208981671840681428768980942392158793008741440632108135735134667047863704192240919918164076485403920342255449044222505966788198974085636765261627167280152965756860775473132658384617787191087479663979692152645028559883322893974480048792091350466772155460315666479499499124210609871815359569242548452002471721130851048614372485510379399830263020518593604104176977135455788346778079890150287718086744148848627745835553821341518085163807823732342781596112636415869380199001366246739437178778358634230441681715903370130579387487015134320562986548468777809235829121188630206956572369142065718912257487017519930859891978144808481831725567583409861713438333585823359268081271202972774351673162123475784471378549421386048553354573295298097084228076350432805211210586950611802215360019776404343411912446097699269071650832703562388318401140485360506963894623525869716611254443287753548602754715470165709366278834652833069586540432845675277899686182534966041606989081257369563934823712767118698484177401621742155561114862876835986027543939506117421206397178242420195895010964765137562458980679021278497170067308371134675365296763816932787479733875389571173661104954898832488082706461354953179744480571020069628383685498490366571198784734459310751358299096184574280365254050829460322819563363518343404425159589513636204904726711137361257258593940144290966808699134195431912095938610952199974909759984260781690924904049630303995146448808703297120989745591199197607609461806602046808733719369170142117384032559275812472782905891482413347493811378705991365688325155986596862751193926409105488401878740553779227919750631906823353051752932656159581571263214235710560199072891635254484190630029293100400895015393675219493844366445544535872187195999732608782871814943151372146976928727667963177504635218436762359905622731725367861486148137513827568915484368475062105890642833694476348833840538769422024000804783599617904866737940128882305827330635678925996508161766296984771845385316668328991717718572076974796586013816611191803869627215415078029461034119918356878472069937588041179195231500652648119359773125101691318224324715765584491861272897065784518060279521825489433003653981972295960330739712254007006134751127389599118099402466721790509961100793992586686577724887120256578747171540688062817300468846153298715099386557984113726159022601612766279829254310377433520775677983001527485223406128736754715776794973459970129561379712664980648155996952367836603021855573135617869946012007704904278646665305396003738917090848680297706828058756701812973140081393654170884732031670488238317650164332623786161071264398224049697934572871179767555490543616803614838326824079106427100535662910345932782849907496993490190153575675449204276884553698002504552418555385600425837232265952101712969993769253228682223501481949140840277328024399850775012280743451890732562690878037166416286579753228986615762968908388258450347692192996214237488786146574249086788277886717357401821050645814043160700176063997082317049078327274724298786823007755335407118258549629541577496207610132596738698669899322024801829667301032222716107185990944202751870048394264909745285883497178459271490093248848849937091409379286968255557324636311668824632443962240755679617020488558594960247789713358033258652765440311571012575828986052275387399948749829343701268339492094191614770990503533786350487935268087135283287396924004526976842803033526464788640201222988164105954290800113132267003719292737058316751845541793257789618256808486012185198367000307606162190227329007181529697993803320781636115721168015349615150664471011383165441211770937694975498393974249487593403756291642565032252575806031534144772407464982450801702809235538437027222265269710031188093578345434744561330457367232587944268902036298995025010409921993726244122652885575009551835375844423690181893026697735149440403821812598709635190093171794949027473352387032618001046890127643263835927311015399406885097593206558007390437811252603289969496051792506292955836136574951217024096905717907331732695921217796292590949116625936388041463056928394776457357023660861303813115062249743723031069481148053164933473621641508269821836188219661643421881899648562849447597734722125480811176834646995724998925669864792031220047058698464673402583576073538423302605211880167900453763034614180945089034702828939760265455092358200482280377015240318287481400096974159343826225536991860978877690055741968931567495532826010804740899667509147117622775163255257601629721022186843717481659300162206546566286081107773393618218436561627682082801137020157455305037706337157752941871132828080641371773320656689895858880951424184573021876877151811968733181644620486671649942390737801083085094814136690359902933534582849070741519843901975508679113577333460329238692086967451424427729276993096980965480402910621774640845381705542635056168054297273574898495031167179397881387231498965128320069985916418590469126491075927707837690053812589115649794929666692594563457770491827189176874774478463091125961719000020797372338876237521676728894012327735519886228643997818003840167847620441571138798992202927075451616943365832454432078149941435752098276679996226557274220185389112200177843470465412359945652996707835023365386308683976860417819184734218346140165210847799922533858706433311345789749082962421766708815193884941140121887786529442405807560133618656723956675548159116686555603149907151223411063158167260803609868888327287185449307615751182709779733259778707430732656355551029473139273919763482589978932465945535817076290514701855742305674332878961013962892774318161144647559263603032578049996590970438645747998733231741988414588094471817412802478200023107707653819876572278801284415384343439223320911428988112231326011888366200947081560395896797584574594114138685452012256032213578927079677183643456957604504471464932189343563510808165364907015007638741470575518012148025836253687941298392329958064459557888187274571200208788949556714277476557007818897177432601857927000824455652468568339938995126146622276186674078445499374264568893276991315534257335492916324906210956519926498010000670168449901287199936549989798270398103674212995542072091836576717720727976076846823318499801849391678318173986047778892500630663325377848399754962039405764501955869892326319999261649371493100621149989659672578343922341228987670103327203721969850348818269752614156374893552997025566795063613874147911577088018871012865092818303296526407064700281289805431602515961516922215785435986684170893411474429544470024722612734601495265834874488135341502180782768012336092528589011773740606688968816903147961685137078785387735643248727276544159435167965878309239417950172319759381272151685707448680310206974658203226031382937049400507605901800050660604035332095603949193175120724443700129596564275252667144002907628335704838800981917407862027481446401097867522265242994201183150059599521492949274255527819510736662547855723470391412976643250531653905579989315993521133375949221747181660172823245561199845203524750348166291936142510752226402681627179839130052767787867657133607113511462290125026041211792999884589317226878246847521409213243090469415977398830015865798346346539110460945793834194424457437466908785540384706417296448616238215643122833422008942631771608957894687230176741655279527222692044427167743267966087304937246593811860424272166972947852494153812866900890293516283711186550999737493164785202696066563580885201876495689846916197820558104895748693993642643841432056767337480918612168934766430281929271333674626488212766637463861272862277120111539982300126593648370053879076002939754734423649909493729019896108667179612691969701253413799980900617320118527419850140047127471760206445944192012922647509337238509608876706545837233236551173275419623954641625480319206055283207489560880751979732200749113942273197890097739555959311452107625554593299449903617421786093043083444018159235256336696557118141843744613895750069219433434175265366724427299846895917634845157047709227462951011097700430060265628052294556168456506285562217998986556140335866855704800296823772450293184544737148557978884310342854301898981762620385575403617759898912140955980378086743664972817878518367667153091894083744310697308584083969776645792504673645752389363588671050120935740717352186531305303898560565681323213590176370310867621346884670702383951304800802816521329370052212839752048265140038346053009125782332655642627341911470956355191286036720017124260348816325833073916416141386632580874808319190312095801691855664537059081136398026727127080543467200025966143340761590375620936380310096334879101011570559529218755488241907589636243922552790398737487607383717519773443285640857831066119848167291767409656144304756548205832196726764325827217976814797660199144912364283395140212836579716841582174685310969626430167601333639837121033295780279149708365384884380765837633890097825189187377146827840696778209852398417999776193784064109657974931506236578737954007988553035310327081904422323985097474933109361237435955819207767391966361290914236960184752022919041918715444088775936605084297984662827661506002490790004988570540804835059875855038214205313186654912873437286556848732600583604631469167592728041149865519219792376941559588524130551970394904939740014583362819133165885048497084117928737783415635334814605841604311915330002991406787856070752354651784482263847331758524808020957419602660236551291141638071561811406671861339891344808513556167798386384378942499132447124550861400014560105309068737941573368887269076776389508348119762019612848541419583508074471572849877831508340081947126042268292127080243031755621575636354305075931167819838783039426373211353614412040449620729043668435850536763644941035295340450984332007652600510546759219816604521171883019830419605965637648699256583242847809310453630836229920242736762195638695628177915343619824501597342540683388848669627282978756422476527750953687068367408706711835995916697186865972680860096720579604625039647934698223618043311849269193131085440951859933355459904150302922256487457324803121346422783567680740635448642706517052525722232684154434802789050658776360328094169452162646706869928995839559370094945145920513990970619119005295309908109619552171121559297173632853095074361661996202814403514587711302679854274147283655879220592129928857025410898957764046499776385926275890016681541022205535143877824660496365391189767016620834316282551961798693108881066392749970609359606653130151612253373012799244559317433084249167393889679488986951375172309525960904802719914345639864856633080623879287496279521131965326445770312476889432801237137380182278198919776924099818602156312947953595266093348722489832424202680934902447429955031758584076009103571955921946843373510459759727465678507485187336800236986212277825483351532905478246029340583179538846005415459020347419337636626513461129676410970876861397551447857873005405744418965823445262522411076288391307354545490743900772967726738231533864547671480625716462124555671357609132857580907194728510007455515144704747751889325029962101918902407256156834943705652349205056661376225653707939808546106474458141159911787526666326804528715030849035481036442310378603500158956921187835427774142184675482981056954480407645415993172608851799273814123556289704150744792655735448439513814658405127042238304649786416002680891097820200515739568161575156810360608116650157508249638100501420665457925895652438736219822121047517957439098872537611245027697967909838807629149803220472805195756876075729222715096293808778663567147013163316495746843340821168343436858083507672586303023076226879416199331906580939031603855883887840386478783133338351352666511997362183005123876061370014352053915010439830843013523228324717386396651769133424626453187927565294722725925905687904798327524907643743981078921873349956657171728230319551956794585172016939346617671274336225145079074389074402593607480929343141274074073400260233246969627586534288662680969509880536357269844262849989894865783078002688481225395110059581295396451709924981639034143446410083540853740439635573273626339002323918586358252043445246127367820228541108641486080278512215842352686760362662725764093323511082228209817682856698779386284478266329797676536862355398146457183239720019112966881660050826985743968170483611374546177734493268951141050214887128311973658821780239032238196356142807250870166955117330740886539073860622366325363634203600236947179975170077621879362807595116609675032058414095068489916085140767117104553583679641869945379847708745095012364413363972092926351146079023512102801053372000295948199853150816839537518691045527802768597084463612402295435795388711188640277823802944058822112744058559877953842551808245693287874673884330806553032806977152247266400696292274966316278116113659490815632400932346719828017729485280828171090901229284296691066968019206866821619923934443153361030203993363083928897266078897523489011821835225880118472246399004692139275968462663976989173093481071564553581819444336607639333620001198541161705660828200853150841087479221270101768805997992256348292570320882971879051145731587599727882810077884531575525170908991373515254893209823820134473079148225382003570132345368261309342705217751221197968053474671805809201582119622075565119113469911395360174500799362764415142592985078385923652346217302132570454471519401292237030513554228011141315577368978049976284164325110350046154086996300366147094829009674366327698572920289997004919511642506038483185269273543741583428203782275062731348278116829396151104532906997806992216931113552344678632385162078523945269735402833845188927951670398999573188997691426403058539020309843656885373464201198572456003972054692537371314101193946249425438888285400211734764564038936910697490766418164269832544756442959070962557855279987059293353178615005229803356347379435453921688961027493102284030075176045447875814519281247141056494978375959832408667961252179127272652049087005786093692454305548218596976129255403330748630451103590288706024796355700488561886393827866399663180408714322450893770470025284476745728099118538156876629656123895440459886113039124063831764417480222472079217331879306890415279799422720755777663111387148526987451823646270386681095308171139018569030497879993915141911668896981019544879201847410559503262518769874108918819065341596481811899973579924499000389980697001417575890403487388070660135562637019901078748334342171722587739795207012736917800144305046756116538113947522429020124236742203353075921281562734821711519818866971060080877259284128052186486955809069629618608768475272461646181877941132042335185529847035931030079347879820189313546236763175987291022923848433696894341601741866173287576859070917552094518714628812884401941985402558242335432198405505671792336938277348990321062979058334004806991168456918463899348944623949637390027987331242027641512231841834950169439716857559580337533700236589656209418492902420818489574698706349280338836371189228632756420828118485532121210816895678004803034019687706821757353738194531058492160024851992920728548920028909012552128761579962810235247904956676464817040736838762238517681178429725671139208866407800740985306448000760577651878175332404683810947122541955632836983772021095748631771066639271174522082730118467649364645679708272318253647170515323046703042336940195449357207956110412827421198281658170751679828606555343758784878636365497879227038045251809583802689865245708386716432437654863543684634546257175757148765459454017150669957092751406838983412880783419501998674681187306413797311698093240507849323519949564407569402562400565133817246642846253067303080772182278336159832725952204871043445543049104585229351326192166503993214874361910302395575381382389181060496644518375710079891455440260608114348119384256393931399745702561719304103471588346999236577660350055643120116027154162999835672610372957356122377021259951295249452311889953689893673840037194053756235910762368966856729639294581341516594816120572655148255829059003372094615633434710992048735304684699900539620677551640281925154460926685182683839389027289326082324138575306271427469551438215484881377068756110944076717015237625688580018739764282484559638084667107519806348292222376817961905080781550921659188579702905079418226698716476849792709039007597664056859990479971457305000208697546798801302374066152471337022705625455160292560730057115401272785521050768839378340617956158354834282188813518806786858341748912579753449009956884999152994466951255793477584626055027835651840614391136907053030911081003976500531729322908806972920554330383459041248799994310467155672664662945710947982492603144823843809646940574582159277635100093531486493335198012398926813491719944911852836679729441384010259275326424714203679631136084418420547647140417341922659189234414754364450825122751311288392237813941839353569346640684435960377750405012264891672687548842487371054351141738510789878486686301668792525684005591894294537851023120284065976768726972880863543036032030160022599389088276228474080302638230903676653634311009178219841903622711392718737032412867695687178017258154310169795247653314904112445105958615390357072689618725003091319521565749011347891863918963437992293735903196640193695413710579989015744838352948416688660580059520023516689843500541707833048106473776881492586500872549351297389850799545355016983606749430396939595744708575833159808777758093699012744649507947237322772500511051776061679675701021044441425088840146185420973727835023144292300047327460756298483209449783470799514098867701651867523827725183181569454158967468287722134826256696399818307941378970927444815833091948624846092874293835769443712823027049945585760163993165947057026431873314152582705808413047556876990333602478109149101928061576532400241662468407238585925280913203391595686250582252881328830397843463669691963389189675642224062001430495705014517416580768935693404042597121097185701647318994207257943610354573087753350782846494242141802644244933678525705984138763017076176109174275215311131605567942975778726310408389094114953457170256156309239207011594609307107733819888867643930954991995476465375872203578950983520932407244514433084244369483813607432688762981510745945885039914721776876398887823533355970971841058781872240726575619987433072543981523178216374569025207475875762020636289185493378993275667020596238321624719999737281578483060461571346205876788863063229067581162393119040413104600028173793496954342635850268172632212596560551829313991779082868457047179798459971470253630923438548714281209749708511577387226212617909496302103449966046193427260424076539183130975646429062385257539731760812219577587601176691073124735248172916672933385700527230663716099428279575601829880940119079214778933390380862169751393261268316710265524690646805123276640066040218151412793592015063542262314279123405570818353293709793445752523461011374999072733708125719481270960278993320904513091187620841889600220603107692418070283479071465101195394495980980177363972332555200850218779874297505907356024129765332044595306829265580401702847760777832136199409716208459983612055575213534698159201994412699585518402285583196058885212802200730050173946168937356158618989431002228936212404099784760782815628388240001400866058741969623963926550046824455703747522592569290490397467168478403411753650449579564762635862900585362313063853656894296318228510127439700325803975201511731980235740428471935231011775351188534369453431133881957240838972315089982503476571648100396212004699675196041547001675092098667832103152520375320163237342226977198040785636697633743383403041528033276551428082438359144030908230898379370774273111700388864191440560812193585048346022866965633987935490451522660523076797787816715370262935187375568033276051223276475556691907967512280471720336984990310546257485663501931240076197087415585227283830573461710006256171185365767624363185473660982158288038781571956130320476062647405784339692274117581067432356098797263817041512414786951586698058772558231626186863525885056478080147699835828165680189681771608154413641806958622031894555048685363786263170694615058245353454998976087473612881170598913302680569480750403033963994070932237866223827848715672422656328083064025207759740500837031047936811931076892677113709735706133084663086552061171344003696838074477648482640352671079414452323769332366096090412395602527343748467844839214097734952486135102624486296082039270585318712250148787971763414174335366122179045192642140392389557947372969454541537608611724366544055071217271616468993301397671124743969008781358138333360174585954961912253202332829240544899495334928134506014759215657678140526228742721456545568708627712090623040454667351420315705550694742921020027729574373122579509311299812360803704766686178930704836607547557746637005985155962724963093458378088869560320528871014680201875871560106930097541156051268168074014871274837403438228968339037190308671365325920822980390046149924695871619147283213600338299387490139407354094299293585005317731828526267685783464126430554652460473446889887950564779790017231700405360972466372037055642820232063852078728453002700063001941471302521838529067268039827713485403633132312671661115130838139044235013774368548147230125695283989326027770525075765072500168417747592047705941069791697259265445839204223441965878539566740385700601353441369664140068860621496421063923926298349756112184000450577689450773672206436553341955411824715561499851102493842331621671277287008222199019705234224287051802260677367872343421877700259438574074385659376599165119091587788051694189722045447825390091616185074508718324227701932872770361871292124537217067568936574883419028766233893482034976594297979184963450474675643550421825530513367265536051729840853405281983879928964548704105335930786879016229668088100669074111646751445493113852388505567550812311665906698502102953843944847961892398086132984648835207044549740248042749941022467152721329776940369703616682891733666932861710256638506283967329095756481310057343087785485975887614991916223681113000336550069505303662254187409810631393908296372349604938790292607269008478611693906848278157407762961767041364356237633941673322519821918129584477868547616570967204213016699692703309956236006623628476813849142850147834335070551971630187721641321644097779536953894235731999553379303426988236662893232009858852461923045922458599973403184220157838846934726444230019190816600264261860898315035031087545818784020916369740931572787220305860359363768116539716217978126661842074835319738115843275074763366670334814740645311650344753433560642203289635209126805389930988199051375685996141984294920475432260698332750256687317902452779232244539096152764309571095899223564851895685667730256797244854747707537655700667342612345700693226593612136004328073040553042139105639581321932075710538985795613119677260053514399211592928532766637721780805116349348695072126459519088101873214883514749198409597015386941134840200269836926600107341600012636900263472154101574573606913933424240074898935248886640802168181803588600860887227407371014754614736696187343864481271701777991100643011285235547455634903922934949391455975262293479513378476804597071296734972085440101796615445534995251503213199996849990463926562252881509432457912437775005689813074658938452917757585928262965918594873536879049861445236672987921146368622902390297940499524893632626547407455746631327734604818148440614557758000631213910881440853810536100529162256484298743703957835792314623610147480799342104342039955536795276851985005983952182418442517595290736295285417679250948219922347160114089609461018153455882749884304754310089950364165166208614904273855853806327479507535304364065689312450260601641858899084755209847602630442415827277209915869012286080724215571680849163814242242913444912441399176259573135037193848682679382874638506036033969284452791695110501264607545650625949797439942187873372068111953513056470572587606736752136219428474533308346274426032680329042412794631155772164429453947245204322927903022096077548651252534865645364948668403437557994062240046363824752778862730963641430859529194009926239603292027099048027844775253995481799400663282925300103175643996897460678614735935098089870296745920884882183030874601878229921514122317265524018226894149397423266130694004485654371623313209110706542811525084852543089206301633428440313779577907924411625537877321990653731023938711991255894466565772648367143858670516742043715237319709440192477091356962131834874435802805977293778405119431922098209324585112915618856755972489282054439552559349289478995502569086641134828926531384169171086857692238431687937971832262377874802015955321799155578173527878680629228789153643407203814355493640376151339896439679793769875230687438329343593835002719893914701838627977607467602390095224175158231808449099629471560192676544744738635530105064982123533538833697345006273976507935596386911803655219773981948726891540589863368050447109744749964883363143153550656401086280229063952764528537869174044797491693933760919611428703565571640884659165900529434515861821350163443438795784568461712783741360192835542762986054549352587215127823914999743013907461180828754065945031331518550995722668170650649153337423148406644602649804122108802344278058528442027290416180960851036306427756161697103720865351432121575904471248060014985344893267062912704149369476307036360823277371281447240496052592851531079322181764586831332539639262265635510993299382842930787594456792117398687095779403532808329600862689352186166861846630452643569477145026615294744860405843760312328027437864979679668110109351595866717715194277475358478869140326109024077129013773181359299110041839739307720630270519539810236021838170456540967719775291683336757151081541509030164841920908992448078235841758707592149752439143027956567859697784577273045100067855597153329438280031229482611691388766013829930344601289591347954415372015352652742643512366822050944903401480205541101608668478489047123404876947211159053738394048286574883301503434455101243642168255473143764655200041443105099048942250471525374127686494734068266186343090388305716743529715492822184105439460226220434691172556524329884896943485372027488726385793159346284968095704386242206129050396609600708541086184924496196098904182159339713366782510140865578481004284570924944391276070557013449007273092007896564128029225040473225509931684816688138247219603218795765941077522480809874595534604871064038525986506924777707773147869988184596163668724989562944436857210276087312274419682308594061243272908988998338548343283736174378137981703106081653503238071323624812783995046965864393145455984452524907499110922293526853046756699002656667578847161111532552200573885609299027271258689831637224779495581510999700588372252211492092788327645219602977462037075605614559654539137180129967392259516202718338757144459027155969365172510468289655663401771986409164626079187413009311578236364024525343576550633515577007510513751574520704189864357759519347171032639637390334354669855586150635248731125283051868817458283303618813323374422393967499799023740896037642934780699369634777496563292119045196689590446503681485266754122566042043465801959056450276484752329938422728275610086718675358948996011902033025997755354088370517929315681987468525415890033498774309706041061906350151641570967716253407440755373998383656453706690623826371960949794877384005696721018631027731757313683862678804206368862117141067359242009159468628600541126546539091503952106752553775468039956765870427112068257917337187965091227584985821986026676434858715083319641917200603975636589091476688913200232000045692191911087075098844774571986893206198741834436858908516718232468560958391083491628819592752065301901684241464621255351324361103146874518348579924294631957406521370136992377035089310814236010742410098987002595312508063358959639635681589932463180709726731468330710572838179176553866158848257263128733945560680352505220467026820655314237278028483329864209155034632123268187463241865044854134335588201833105600078681029481341094917007779224174854746124789840146502417006285354737320162448761844387462448333102970810357335598410821854533201739908260503593069433848000509798473370066504768433209734355287971383335365325581904635446869453282198947705971207361579427965029692012422965416793737989133678133777681353375319881236050480101711131379830513326844038338775365480158438125452674400809554553957711863818238671016621071057705502382749638993548700858644224038612365407927621827668252085983617473863584448778405611845071152698410083232206423484064516701440191327482306055370377222377525257005922647362758233948540617652177350287098308392564072948773399304595046761086134122499073284531149091037776171391112224776412902312148111410610949654115997646229475391247231711076660016744333100955088513139805370847965767801605835224815032812672288745870650525044105476454511089405026629051605211619253271869465997283567597799889582824467675900742453450498114443769796164279429539072559929941474794940026032593747886740022972369011322161615266764128778344232353278983098055551004973563824526004186482401269421902116772098947083679621075669746029194662412991622811512279211824696970475140283011564253340659548598598043581448304475523765850776219195949192217451858938068830660032893387231950672534507410161659179997901388519916074114981701781564019761643899114681083543335731243382952484995361791120121030321685770904720654869505886440757866048088580525063125510289458517642040414889416481311657706269453465092825760629454335994084726355951342268354428539687689359098159623929837871404230458943237128832506208051402258831846996462560217216990296266437695871139030971901994648007723629350560708080351525050830080017397937157353101041647644755314154454110840959591821024183300299445787779838297314814045520428108650560382569291062715297321930549967135993303351103009014688517099041334549277903737089647496416151660087733037479831248418232689920162183197725524607531509651249610186375643550306087636025911502057374063278403299616155190560250474332780661081847350915421288608636832728536657637364243715812319110743055680236000462923416078084406968763033734105953484955417241861388532801524309281687037554694145108073633408984135032098134099672718783206752761483307617786788679406462412074459833613922227128494058610099270918252507131701671401756325573936585035954936479724578354846018231356705816183391717998708360187458568326584918731805145888460522763714213135087664894116191404514907393110847278055499064288095145753079517996640016678102534150342233914488534794620512824867021241248794028860673817708247204506418108767092449692747239526817482587888162857673419495039886302764494020491717649609566617150223256336115523465537563462616281218147318530937633423262623933355094620774843923506629862084866960194604392029795462674531729936205392214774355803077629045035992381598685519475793678935423006608752784387267632764814095829938181385492192982719310624251426198151019629305863063212906030923402863828640839642156322573904469591736576384052689897986226563711228757719989362673994790813213205891659190949165302156167672806312387396367423709278795128622725427166511682352588753866104935106791676970031839756339328635340199502048553091026077899978721294580623196784358781211299350075458023846752293222328888247940180554791253943913696140201496246325490504059634445960235222549647701223065794436486448026783221960484002500271825412798724609725109251200314966414732676630638644153301032824191789631912489027866487055928140217276660181961312391260725587795132696729411459243469618178464325249439456446199132091040167610681799085707513472908798578936933379764441490895950654163329476842458705423871942162031188874503114235832096219534341678917747483355641418169772689083742433294647723394317899042349410198754128057574411902790126438318781577910481818956296509052816277454780104127734596566911669124712794312419717143231377482610625951269047355899931582124658269716759465191186018948806508457368905168933641873037707330014749255370598775064533893081545910359346386362766247191159697191407358708904188867168542081853916706662809255079258886982213555025823769740445133120187922388336367076297476341699062038320356952018492530055607751861536719649014121113107633547181260498290131683815863717305277916978856239625433836557218063840155309112234589587439086286863394188994992486179567927879348483112542245949723901032847490210360680695539251769879841260047594974924617698303299444473812435827126445039997442991421163666007325898162452256165148132139010674854707608008757422133193885180804673941725161874087434348584569480700801459040096909703296622139537989190785591730063587349571239421131824544744462133109602718666083720577953564106008205416833717647320959379066166811773644732560308216563231585966637551901421091682165164783344730996425468007406587373192084491140906268337871854596299911949863462561290303253981663445070717505415489397420043726630171039010223477461902417420106971968892583708587247761376032707706849110349479140509203933888931705483015109052269999920018275887804672582437335923691454251622262910391162244749508157190272559490269498639745045799876182061144991454675605981383325728349532823589400932109821083653257845214458111061794285222786375449461067804213480771888447195045521772546352656462553470721925724143186368864625716060328129787407376016481374347066655872550530677787271821582183914498686751061814993374391892047764896915351969970420263304917258041865310169101344331546711562284681482004983914634647516536887597608194252189667744030387154000182776428800895298269825699855475796743354963817637226901443967144361361576431522373669173935586952057866363855117052643922597299394454474006662263396036013295481942563848446306243491409477089890712982925784961676375014765692227660857372604846133021514021664600257325409089285981932691142674378289537909243507366617922914385504341356088425503591455919911099049893221219681962751418341161496429854804023786975407681580996973592510541326388903525915551828638287928985874786149255876872081598381952631982093194695015579918380852907694385579117014019769630099921470946209752204097792589168740069058833589564238496944167011385060268411600550046346129537812782432089465256446624455600108213439786065221156924388170173808288182280017998151401728312727915974671336445328996836349826589913435785667911004158428925726372800054653223197179167352419059382188365783108179154441228854161759353505978588744125410386730979642004943262170892748010447091454315216480022375062572561222070980103469771400629154852501074380534940843326875462887339875848257293540733792727488748586724027244420226826550843822849920112986937409693804086098868761344727620844388756486418677911077514682939074026178605084908569871178150159043759740130325206882452706572420007613800942492828816575003383753039237918698358591283531917422323748367774934307458708867471023990353014154639357365444216071965461071131592510887281492008021604974417511630908486802062581239833338082096760354233908306279903655515203806308303478050981547778952465863943253392305479224762683940187053381093498747592184554807984751181687338192405676553495739904698945351960269606774276303442528779727872024441515126934729485486656184549476392637009784025504174244306964939791576699508760418231516979577426307907093937678817897451923855802625582330496281461215196021681064322635825464220150332997154600527067413282947260055027927418216099846071502735900731886637195924298564085478087315611757429924828870337570762263872402466015574052529488385930371802298423920766757475215209991081449872279988733195146308664368935585767508682850414769518902735922551304660323910958778346523608323847517045494934843116541397057101571654381643338887582683200860759165385486189575136136968235916332705426267829614319718725913693442765051262228093264475945209527474855776527872122385942802696035933372610223552646120868212631415616186107717345863424384737295900446723470518783506275237569346848226777348372116368353599849003343500728393796371705842480586095661202209836302048668899405522497223449434253559790706669809797395718373923867576415099819975311241384547871270432327571832858641526226648499070253509072030804533463720985703572492376195667254423269099788171254416892071088941796670395349137457788070099445112240784633198835345860392661960645809717170958172508288490908973440361060979745806766518118670696114831807703643801054223640131530629652502196225623020863811293037965867355633495877605510630238938033001336923306912232900537423332482142018723257740612295041240549633893519332240309722777180215190206836386024538022747837889579090329132393190800833641457992056935621485757246598922547775012805129182450811708325856577039228514639825650759218209895548266822863930889319711864568719219709496628441141006987602942559868114478382879884838611457549906879302195094534677745766794165032488140088620653419208491539560836693403195350841493924943009703304152159945098664252176318206093827640265886900814401885245298983692103216646763639161252448981666748463752938460972909920519554339728508787907288799728410686856935227914150656012479887917812443516749455890951565104087902680313077752145837031824160130916761971370996919230728772884101235400897530935348170799534556285750777861341207906754010390869668525262572276998871834869838697568185385349024582478395399708313141695211678668611041577131817842486957563796912649387231242947320394194040888091755499945184127274185175657537008764015928805377119378758801210115064382145474304209243280780286243142508509312769692002394526103819023491512495729227108732674646958941747538888460134167397213938979391306489082377697393629511211648557636038773876853286504447039385410096104722758013203101046178937578240924859993035169057642578627865685397258801653389063626241203088445020125050826934287660653064231678312134608631585207256069164556039695159180128279406278289516661730470690059344996305281322628368319093789823221123496470794272064298766202267517158892806964813930883784124669968611574810537507643054545571847649412857939653002018656172809751586079010877412141300991724897615791014674052032859062998606030287626245339010196175293767334371788757949297052063675006160877645342672914675159218508803089237579981457306503277124845585670650091941451500326933482775285744746301951091199940520048458832828107529969683920699072584680834796444834610160248693820531993647682077767503710705157487727369759004435179228324607143750270694287960421989264181801655502905442862332666202244092180148660406672226340134037167277803855134730965437990153341167388827854301823031408359036870072990653532821889114443153728737234292039734759991158788681200150855146033411102844210008785407188079374056085077190921859884742485460166339126802210886485368973636442586402231900773009339664752885639279746534219434307347172099003211401160561919284602778694691922002465961351656165045773015638351361387357561141777871590860615352334402658207881811636758898740489759245251061994270691078956102477380099549799248888868667112848819696639893196636821277658151663821026901074303930870225641073746943432498385063678166822831294502492511798011311925947715436511248555449428133451186789896550676857553110206941116472211731252867870110874295040276226737992209926498296560365243145345930401516789028531475723679048213413712549844776416576114053498767803957082807774793078117059715784869229775168371380170452053695758662997276298264709961234224440232735396285188794340633790968082545775825041584672611050065080090298650481015544513904896637907604007865368371564885623985611018787172605149127589080235510354983710751161263928430796327579641671637511629284320500997820026981223697898773145046169282480681971405259674855749197488348821483198992970470700162026150455276682723465251087956252145181751925264498447514944435739222779952235010809323478589223188880782898539614314759393158483156859371510060552209830653282604859784493645657044208391078181270887494402524267229720314402784733897155085894618472668070684688220653825039369749698032765617507732568679362922934611250213400153987399090982662070480927439234240034545193848706197394438580789361897781707524027681084817101596244170458580478075065622344597030582874093867056468500730990663655421888660359877811573442628764077482134765089399229998318175558923412844333471658852899827289125429027429628285317058891578872001028316884077677677839222855844818646493694036146801489482909832863150532908834225037384001090261385624669644210805431757458550076972365302830589553666441861851158442049798196653848565835321490106899300323486697943607387445225958947302887824435473383227473009765297391261038870325000442921123812357369665534736476326037269582171414903199143380822639938045366494576733889929908064261587702962011584936305759304546992188533083544305588449216673901871395615873366504580229745450084039262986939167454282113838275510343330872087843079996436339218569050630446835651958732107040555377866329360368729411429956019551228591602200803252441692369645530976174393151991078272258629210012844414721395854024555829580457429691042731316745533696811578667816542617279672813898102891491959070145614661405215833359974615588590282505290481054469214181625968498848623392156893185819870256324746181647609866831212745130271627170512726737034642243440820656965048378589013462648488629400649201015530407883091363127725623144153322839231977764351088877006996993408592721356774612874483448034352115707965271243634160506572815242336194364762163346336945263977959982051585631842190226096091184244624392783471491361939915247901492242721526947088152647037521521302991674929811606116324253108134267841375995422975057773524068786922317778814275212506376625273467946891304722887485362969049807860454604167305307487919434723750674373372066907968134975855838254996570775365814961900601995966554804962090243791139222850297171195304244019370425580552199545620758002111658674094204080718917788268896879843544741117691267592801736142810036562726048403161146770327723046072738555999221368322462251660941738119638309366112599480973509705694272646086174300066763217130853350820276389511742213762948971440938531520253945870041142523576620993635951080969715040323378618266279679236693682325311381748463360199744966462317955708784428160507288596183570139458465006785936774614104545608751354130124601017702548624875698479706972212281692792174831274676230742548307510250934946704461016471422133480821566326921947218173106718868756755501184863369430367322074168576120438777570643330428516781286391146146100554950942850987098269961610026598111120773034202723858779842196634056447584758684777257767927914930155221569672082308692079725614459855546510569138564905231143904578108289439696573089488244564835220878353785866878115121535031976840365976355134746197820644119934900949237451965208064438249340636975868943106803692355389307281143716279485722820570292583874876178803346011130977183862335008404786908855132904714642115253742129412993576227064798018564024049168678617035085187302120999380959674477009508694283755102453135073237857606461295329821746556600032513834724800880211485645396800022195858938619299729984595413262791794816068050700545180710793810431577482816888538693307794677812042214739134773925706735446328720046454762406012379651485533345995624815231682430353726938637150081088578308977268319325039123568012706683783975974024377484663359740814169462307057431893916631312958883534236762555871903431845381512939752267815781502655634557020720911287004348306418953781434071157115601114780449548658466748990759405288082804503243892767407318308776989702349811013870632770081689333506321962633612083146221391334039331124218934100069755488189904190675678193780232512607245015802369777703255660996111304146953346799289227119428075457605826231664117681339296579326966200828427514155650889669277431036032853617895040729981424508754373172386712201302179662198345394785487553944858010965582733364570083029179429914545253313552384698906806678955851191897785096032832731734823626054456405828994802447110469930153235298805415624824686812614668640243197375518060619822405991842135569537927762259245056204496845551581648213363927752984191656226901083294373864736347443452496178233948291633930279131077564626791717044125891984375012559813375497267782158299344173601444682830962103888987825208185687057946315057221579179796361340339674079349030061557816253321387921445387421350587835358316913864677978614906580253560435340268243248035069534919920669496366761219615821708134366480559491860820877425991743540774299462575760751549367447716586264502397532188888117523457978340340131296043580834828649021263914412379370586203569141052843821142514337852058780068102935592580464978224588070730190111090953124196522722327966241933959912118333837875576846833389344492316720145492554919460476830019085436778324002022861050384963813050683672348923280743565204801136512500817496601883003620337549893279064603449964095088410848295692653749737158707307124204652308509436760044922911640467330914246693371058181162593580656776987370904698747578923054402478444186439886700379147826622295587732201566868383385412435189394359330292414108034153014778388872688655905023476088052275943784252730281033568268035560394993530978902047191553107839892136339137542636104498378148931854224815069763295235065853454691094337927712482554722448394888564991178103209042596038301612374289356224878560868588469172846718993692533447004596102459164577717832121720760666291242359813193485457079216791395921471078377410926200399379592653440057363415617835266840286553297527236572110798032941953758599172262173997059378236346844314306943392224396343041524368325335243528625174223419781111958242448431720658364300023995931176510569535674328329855333343113052906472522853209224248792438394077703692264338542011907706787597814407797567049151183431916980391678512912609926845896419563597516122113732023213250573053140041999907973915548333281770435423588893201596839157978961111099532913637532143155820595610441709978483580459805576379721602531971116794537215673287631864634178193452124164768779835191952552516371436269312024675765272512235561765157692026407365884294396390459782441709752613743193571751955984957733766299011562557095733518596219097236432549906665689692061455379023638995984375896270349630264458938880836248179450490690400394527163599054006155319762473430056248923908040174474119665116609465596522395312249999288971353698130085757885369506124568029465845588824687159043971482679847630467505965619461394652610155741627458133347796401092401886226307233887540918603218027602598976032661224368020983044197923877632556484798790758052313140766451081597672085154788138297219461453460438245035119260734316206214866284647081446425119466476753300031796266225296798766392095113630290631801962071660908863409857887689139729220792232762365559489718202065290330521899154959353722090280148936953518004688297848912042828242059197581163152541000976997069633585733992615725106239617375722870439908880097416403747563418482487825375144997636383682557953629757818296443041881024158122284628644228654624517116172684075823016554609203649592819074107374155138591106655475818544911097016255058709278650399150861498486576386712226358421848288172473109003857937808311743371715745591213580854804193831153187337945271332336093470637704110189976545839801065341191770256300408181631541975572616069694981620914677431351817336889885824460709428765033293812792064741582855735118646002390159570159617990361779583693373728990382152525723102993813868416341565010522315466874557907103331682962592791401217612889671927942388802928068089537707589522500107571116233607861301690931975219490693987377734463328922562694342007173324766232811339739409110696846068074875572812189066653246079664667688264908417617802574124571802276816476788231218300928988484655505469618239698944916182281680908714204638700142285581808455617727650543114715465937157901100404511062002069933151588381334547444911520803542012800206733833947224340815397242812489486920830236074479094916454728727956505026424215133514985815773864382810917045470914080212719268441467035199580897267776771477349886579465453883229437612067300888098040092804817289112979415845213867214671298755528195389250927416484288972959942794821969944177606884346927359422838090822711301234407895034850631374633637569258704672654873047575384959415824425335084892029381382145486197765065486844860798682731880450327708955339125629326325235871508580730284934835626130545100293240396130478606546427973773767166337215288332905545409950049773998618775609112417912720096584991488215892565143586393351217626664302733200021099617722899915322677668342844628283072540670612683727612019652998462928654623001816479175260795050516942163121273918447571940770818790421747730699056981223030154900921372529737187971663779949709725989195961267904066859476575300676178250074838654244749002410110967465647336415067145493280466659401082061987722405373210416400664840765909404864553248264348156544290371314954198856527463497257316650683389578455525262883511334119266585486564011771149441113492302261047372056922202540799215169249364375796565220163601043965605828576488575471579494139443698563597959596155048804743702458352723890193843237229538234049121383112968890549219944083937263471636102760707920998177049073302796327078086812491065736237430544938036337389322701805808861580532661167148741462622883632935618923010547330507330371587147026151993711518981225355085205840228672922041939161298110896379670086316246990364323464300466224914703230382014841137940566254778616702154860269591089905254289941972087697437961786910693693897840127575224183168089037128028770322425701045389732178394739380246774558161288579589529836300619870306514189193340916143841181152947908602482795837379475287072505759846633026565338603682062591640893984684902543615911651084481500450422137274579980688259310042243147968681413094472196265313750170975523469678023240830851366767190650838985135525746873978111325771606131447000355210607414560506173620555341149008152719374585599960735905465911937795076044715604781901267287256714214949843064653628497197170617145066830380007080338186909126872495479169966306199102298719162860086272985606258760834634892552665728405836786471219471271545989684436286069911828512277514809709642062779136610626106424224824894602196139464366132160729159395381167689707791300296625710477339399109981501942152265016169774289491876974568000037136214429775898275184550715104141095772709997204037242102394630704912269331192233388990262757990102317965356184039781751034680456729787414747783803491389621224257757513411765622138939269262063408347317668337994924207999084750159604914218796637064423898734257361591559248340048088093257637385931569925813661212792671864715416814597421934721540959001802258511682968726383723628325513986062672082045972090434792908315170003123653372943256314185871744390172910828594702696921068864266250180835899859762128364283824078037977644435193884837539961559250251128843976407862503029906531388894974260480994717673647229311907612817178162175891227323477090426279522688352083131505632666764206738946789183833753362810747740837896080818392364621779751180441168301649051510020411777337766361373945270592162163712848680770725601894829825635957674213072317554165928459431169271253584453482994163405530721549097125649599971721035706891550644795648876457838636988779899578219553040331461899867388919679112636338708254848554778063728301301205445137350972495182201922140668211684870317866706152198833811131003719640435607382589336167900299254911962262093415059294930898132144939647933875027370873873350681463120147579370899178579871239212438720816147148082847009123073522306667322978532623465817575776244605518450474229730172297534048002635461328595440731803536711021750492236732376589758415474049347331750280270828958756575800778725812147183767032881410165852106554361353430047805170938829388998850231207778116639176183418024131582767754863870321735744963849545295522913391087817459944142549905651528423772085212577546825303144253461166065844287191011135041497653601256689988734013896118541025733806489549170795415771376061381462576958403376582016027558946140006738913119223169314496375278374412304046197893817218012698441653588004309666380732343355722659045429219837906067978386777674600333144394138079603338023379352810440025258203845184663453501975421801209021227708973219883192055887883303336792723088231340770587924075333249187298154939070768785834459094673221679433722331658776078714206497343003173458411536107626471780819741185908913057185733604558688283778274315749582156458542961128806458021015982471478485824870843019666610299763296280244909289405845025337088336043097809399246208619705152002008430265922280793608172982352806415571550964132492601739234332144802900670564416697749538002615236889727223559328544401065841451827623677940363389293306377291312253069392949344427456989722429359436285489692224324319226002768666269635140820947572185966744498886392761670023282716551652300683241462831533047049828576255891571950433848064163319030078764751499411198856566175391756289015249354820802202204391284722874846208194302039656352416244166798233437136852890826292369320455851423792689636376779759230170443987917269519849973424414710780972684798962507742043594736841747434993481625383770703930184361437428048605597186719578357454203054363921540621333547566946249603424469264412357511573244997456091021990795217217420678978870115794493121149517245031367814925038669478605210030815180582704321563912636273181980680456946304220392816220992284038136204597020163018342580454308966048268166890544521264992536652340420239358769761692108040734454219311355811187155101543156981832159824352876709529955946019796975305747380979392100154003589292576223274364427074262075303265019594269266438324354403313386298442021887973798253047209939052777546460787904634121869351185921033554564516926511669904175331052036374309017116284381361723939929414103831881425827349389849517763750479520534469517582416727461142505964040997948675896733505716059784187850753992912195334526568288984597464821883895709901588845469957184794634204278922151456996743828620608888127478674803463905264175936415428567860465324569408640509617371757765302609616372583246507567072359361466345654082275404210596635578860679914938764702683829059195689300867678712610189808235937477592349290492303390003384412274332867433746146974461139665064683415180693029413978515143353369818167656459256243325489904630526046105950790928266486762875974494652834194698265087281427950091633949674269600412928709493959842622015309152732056558726667283620752398022536135317597384447991126450865204233791909909448713006729705560143222215737965319568428241172685175435607275241097222458007020059185040909276187806112078449194717985888714224620622926154236813148931764833781415071582753041786895155585210271992804550516565839617878597278737500592418504873748107765110943682320399389896728217279147403245341506762620509046689659997857122399448132631907452778838355512351171795809764669563867190771641308935838978668674392108650623611942220033958367682530200053696732379078580740233087952636173740731857488175499872894627458219703553985343762249194208907856773787427838988975253587645914773278783591807996161267472727584353377596051949203474680496851024342172896861730900583778976201197436354299422101354275286268069404645253852830939330412641334175117414040680035261791067300896325344888718830437142485332050167882400159817441176209487302795386989280503047759849293654829514815102172316109456794970743198534405626688661532359406747664235059498671429656998085552475333218685394340600474315021221206545013397879746059480975419651463634976698224075133694913847659715021851943288416116828886064392518968475159127203242318349112038680440172576665259756666629011886973717794217259417769621817428605738294764711778200820013500778848698758457693943597786542765983173103744800153614626445752116157341131205131523357679842297686628177200880921809189478827010865131421826529641475067850188590552423705073759099082415692569111222761014039178762480316885251158472790373746701548726227298164179731979505684117952082981479746140903808270217391072713081766292256237089673985651196677058398879888256337475025776515212491303762192467755801107021948085270269446757662875763711048129939976494098950389136681102577619562354926725647452267617937151800580259763757756531586766553690944282852335023833319711487565861858884135709354021575299410985662798182318379956632805192669842938417850560616091081344068086028196545930770330021575756032489453425602867611205750113976542224618459175785828936165437871773025327324935376790824463547956907485072775300474451568361201955082030285552510193279887206767166229622958143427728446675342208596860742850286601660375470368587091770269288262365040656204312508957463222563370208033139469747099078808584414352447328502252685393503712633302579119951231210464001796886828167188301767919448842932762925076296755095707426214815657199089348765323569857447423469831265211051485006668549481485942814395767488413263068790553016622076910935471297894200928773186180540404949164871748784739327814155597782627553618191732671867339160977135901312359707499056229540656001935670414640607776047503757054302881730722194599395329143814683549513142941620005654926382987159207081269296907059162030396732098969489847338602731766683528144456225593722026764347414203065958670282376442076256780145250308536758052384915319383766261383970662430862593987732207221282670142602006194840870646287515385598128421330952565172091854130344520648793588411190428108050457298411840626873365019186195644785192499822303745311556657091252116667708420587549291568420323797080650439696133916604045930334697320066363000628191225329481500378251650261495615521764831931501501537425924857339786461476693147130098291267491568307854638747247582197167401841845461422077395441682280511997755702479174603888501807135879348548594672414574107368280555953401197189870949363609584005644301557442995930576686696970745921027689036110994816136087822086855648571766624603783549707869634851169642160898865381674629507558337035517340765274112707603701912825352639115762598991086384601407767046518432656847521990165054403077025727009094117371324905970548370750464692666174841975670262412481070001785637343740337507621662041392541574738102553569888854459646997274792685532980804715388447928218214549914874259746299390640960254308859925898373242999313221810515062035009862742678165693588337444795537068247211451272001226349966370613348278329833510865403386700210980679913566951924506208977857500059336970175075017392901499179240505477835710206401604777542240539558209033686691569181546588689634230725715301158796528591592623276558928330579545118750398624766768333440492596277412678766357313913090980894656102426986374278233752345948888741752600824556049082969795202498586841746453107591388207399204184264903611030426990486775265709171181003778033203464191255494609916064696896361723871425487426172824762310691741183110989883665906690405706656039731625911249827712267625763962080818888601191780111098225148253075045035766228224300792864454794812743713433626895314732234270501316091383420902994160940705374319268803126696232394055782775160097514445485393015634216913043152494404078725941860324056051526918597909690720964355938836086973537415261174242168361237867340474015029575767557749622481655001568472229117306815713788229286669235501160323985140194469924788752303758892526783870217621095068517125653591448605203093015812075978729958425692618861738925366312009020560374616358658856465071967191016270965695827631107112850675134691917713297845249354136658852890742436965579626334953409076971263293420006109321331933128774305693433114698361414946295685998649320297437814002594026498981647294200779941565605450899827367804847155100577049334295508118962521420121565809523359101184286444584266013104723901377684907926596695959084103959168507380704858881060542525411965187785491866329949844886989467999112921188348924999790562257969798255559884604563343496783352722394877666624782741842193976312813969293348871757177212144782471275876470888539695933093792274228652483575905803266025259184067889303386716958569220047077545258688686248628235043703619329611998605774250726983401662708660198420322724299168538663388543503871821414106679508746637548999993174439710399654170150630853781881915170814077103283806414252522401763636299917947566347287724478410528190448520484599029875406289291753026266018423235428446752873846127447630516211232639036005536727715599484878824715326803952050220076487806841977962977292865495335050872655291296771117206808918520736886452886949202972785608734487025017927200618900621104572133230399413301421297190472808816508149645294485569839397108022602853485366714155596595133910337750983790921377483760276654659497956043422380165355700372757255462783490141163827357037242518544632518480871963793367824276910829571261325632571429524174335246602765035739898244024421987110276514994530484016839380536785725926736966749129901227041192804266425711658900595018111149945348812152733120454664115632520060731726805086907632050743184678571137643584623410051815361461397635833505708440637710792313555691874590202334690794391187670509581728202494885698230251697727941848006809797694598368229406696288556933216922603500040864351227101798487754660973142018989210654985714222174649387113710417852124561417182861427876755457456036557004854940953563739396387722344712594259965955966690638936896900195893039714856012686627179780846402807833566636441384643376917084930301610998813408131454872186902732101342001546713328347275835383718220296579557146997194538984721893760426118536851659650262912650632400097630889062091782398717496850577405027014211081255557936036661403645925106921062222891009964709707523710705271842238337732925988658019080082392005672036579694007602154536617183858680654091384698703871134299538665264428653731601239080818852163613925940462592276073879862400679752038346751187810237309653613610742137613095129601472178419190923424620210732452907162942889982014373696645682395174230651258064435681423193927147576026178048173773886449926899736218238379408988622798050555396829966025517738142979810011919178205059855932038669114922307510672505196902882034048449084370758934772011466277833646424060829167800555035991161755362933408192439471098681316150706110614092686038675855328775860465171479799455712253590185858837394774056363318881579608107806501153777061617844085684975347010689670607707517965309786800896600778729826904021259860537626390346617552402244927086564996803675708857086821529229043700221293545680241658008083712474167425901573991038367104097131840571688889967331198003675361022120522738840368356856837509696195157698149440371539764904390117183199170676421432282739234596427447844729959800232133522367960602648143479991535564292077834057406483983455364725443984413256907008097689168490763110136479408974672647673533618245841846768785075512396779343359867578112300336840303557447473729866911399516071923219472730386462044044096864063021606868150688504764555386661161415696258855786486373153139744830052010847725520589841939276278653016939636696026812078606173247554521448372740797452399419604799739503921226546145867135063043248054596109393112993368997549596334541725215472830614865697337830446965359811518740474497794609812763074417251190713261273007701360218414255378632200598114326644422928336847917693611552784555046135437702561713914962906237076155028405827718733374919166950825851604425783989929247030490623496857595904402743545963281874239184678534409807743305724096567310587868006895782333458805519024778003157449216172781675709606737790692779150621552021800048853257546733220280492809711245307737452661134751453867197027694992212264971565068457416386274077031146202076896353302949981676875536511947618684188552605023059450296888743541041487753296023378109899900568561041196348421340002325264209578664758058151367481046866381982790303316431945255234105656619276975301975464295297976701631967444457848524117271859505952244605161397311108751844168266554948674429823088228349443085869115925668085286412829800042344575767069858291624240583189994124053969517385897686159712380944267112325440107504003657300608275369958586085861984217281819830946504389717401866328755386694820562931054994036676143327741863549263747114759695060055980728802623492374237037160134217376466987170728892452853729481266752447207371188362807931001730020203535843921614430820211620284130632687765224569615608887120922590269361013393807700111817452547975527716330779626201647123458037872102894083641224715061125584001580067122327528390894297489118875472515533207619060858910390765396660722238413621656995772286173037948759660670495181410872966083557171637876146178456975547748915222953595942069120302719282445993271707149879397430607045384755858530133250347633164805073969820518042029391687224427848008423706070765998125268887953704804608003577800376861033473581694098734977098335292816932537406888324160440994539430624118196361901384642700154087462515497628456363556517539154884666371802057138916276507024793880646200733364320796464095158877219453947024433632280631142039531486766738004699795761990095545356806342993422922253766159466522345653103153350169523892006150205961389417062915564380560205008279658747732180288411960615139972052224671690279333333828263254973786316827185646716652466862435700171493056726661455738938812338276201542999343008742664032976902962623351935882943574619095385833547472367197106391959999801170456476190355375115400631998518225359881014948393633316362641854941571440017268185839693977561351562809101584186721827192548408086424620471660062909167716875561978868078056376569632569444443792023866424539444224098842468572778443357214386958686595738501398239394760086811807796966855054010677165137443501277894162085753373466623600890209539456355897635652523519132055382852636480438744176087100708240532340758182080063161093371200286050127045219469072268924022314708914149120492023276128485746543534698319187958018439814803978861922744819875084954915093689672528582977867784124119099783623891801575957568126206000436894758399094603705038646315731349565387919852140637567829394752023732881157738443888447830039290929493976012978745775118085394745905588134247535505349745336746294013240063126283207752527863228485131048209541300470842207136353390056988306997373483304102112204748231637640295469711420400917230924136874282520409422051924202144950482544180974508682878973069098880705488361431239160550169466920814969067849618552554733239071774293482155363057490504969454282393041186842005984231458896347020717159077806077469226273793900271630948863258775187993466609999053561970250764901525276735496776353226920162607670359499013308272656229571221053145301047431326212148101440292137970904772515507339665253449993853580818527504151037113163991842655567486683606931820154751830359466268841230105482274614771406163935089395557920580697256887523684512067521513512887103138513836547529422195577060331357182492271601021413970867653361531889538531418349236639259460151879143005147248120833244404510130174002048729372888521557550536654227437413115505673691811508367894096948765500085082478507952300661815972746686080558947805647127657343695707579089849307204745999090747902205829925075935651781308432912398722540597095248970831566560499170237031794051763561888736415140965568443009537645278691173694406517205103979932511308508088292194367800979948602850769688512445327588682430787080250335876210141869731163857419646091477078845055497611310389150667749885461282357024692791865046542363549388166072573366882304640026499853455739236351720009482748605136640038551499633887149624472461763014197156847223612580625645602173799314846859472800296535138312006957912499211911118848783525551778720565045811993093669928323667669017904986816143500596593657538211091103255203706113590067955078540978952326127972712151737492776276526825869707516515760093962142287396028829760124965924527784678979594756255504444477754163104792339145105445971227576926601237602458023246900305115725864906029788415848976031216632511596694062184389780825603960865874136342201509252774496823959245146230084464962373897240769145218560658951216560014154171147648655181368166076530509872858221390376508629833143693668959855540952062985261772553373683091100097647940688258771901179687801106913818436544857727633239621637981919493675256271532556877451417489065627895271762546209781478993981373111164952592634647582600443304465541914124274673170545439799724716216857148870236641044460168729165137136847456177930131861656322940003371493347214428228919191870793269644362358628652551314022723739995761537736730109440100413416788847230477629310393237058970021070207490203688785845405268248738100412586921911981991927813520173386578181533006594532385270047994701119175821653541051792402243003582336294979659829389897545762982115450913942484807747883547929352231951137769264347901770455955239008023795027808021138207148765548986108107239635510391590935220577478355054695911104297142667090493459978713568458513907957823574946115428885168899625334484004862490540078339145059361632707742404118878103760063618985925496994679010727584427135042656337111950869435085617790860028037951991697366831468911090008146416900574607196820476811490051392682017014191078924391837812934915532986649655937122390222171796351758613040735778899053265948798673834066408577995123635819853870409324692736401263585739367269738682329021742049258015141184183632018946083336053803062450377947897370849430695200451359907133659595338754640441915427777359722403117845602917878856384219667016555090614269206898363474139474037271330022428496777868606631752087711911846579030959647820798683536991376475789483147129389748130077454989324436685098995581889662457723531951759682869601590503303254246529224464410286297600608122815240040966842414518795029840907749400355905894562889393955363971648310321737283227352162529588105383340736246226124590781853385151602780537835636813805517048131129492829474506841695783498381598150546785849546041739739278406194391170127252972414935330251862657412185013752595933142254880240300820846968932848674040363538675761714041697531993422310648926584014041977598558150469067469613241235455540737372378258981492317546607819118002548319824137254834273211750826829758433401341807347863304177133390466833654700243167915994194306110357049856306049026009146615761679282534501381599898858399703275875697935126676708304940378635616666675503417494508188971320940764197471901765803547027479140576178927171526696574149293392556020259875740450548869745529022925388760508264953498613717173987605056059096512998224100229425399877861826648491699197784950072356940441536704265443714261232991099312765436297846757817420270805617403128303164543823184007577056469059335225553510794996131533527852756104366874985595272675519322570374014925272003976528360013057870856734245134379185829359183628367939123186070987750036024627456225509765630021331252121610628554854006127874129224668927041777863365627952516273247228755398990754905429852061540914125247269220285396911624105457636968703224067043299002104434019561657435751442640024890241414451867646085347177850375267192163441327120072107152417440685938465632946208362210379108052072923211560281871924850520980646772588713881611690523215377934630830537410050001480786543985640123509632970741322848397195371665854717491041504854047036570074936084574567772680682386019161317039511908393098979427009416016516739451407270353987313607158964125011276826937009650256388561240053649021277597216657364155859924507322756338543149936803425667033844637409931011532597354600844607518360043452822811648347493416047136588773211155605934003109850604556577940901555823398351737885714755607806295054283041845070811721006444715167696945062633129027562718129542436030919315809606936077281118737577868012256493755598385863175569502081537600522446258617504807427318317439653939596608003621382337889305483717662550821561160397329898750964995462804717294781669384311493034025956124430079845070882696982476383106493676521760672890897657533984801839924651768655543965781693021849256697873445532576390343272950079530709577463355778493465881329894800218579525167411909500130858886968652921368330105154254157537301342793714929005904980690339697179795903463078055451276555388045699555885320198172129509127347756610039695650428459352447575055935692868363743436830193811135328027434108856991046890529764002588539442607753594600286519158620479363546860137888683570520670836517416785052429180360096697975558389555629054292742499610674737335410140048979747629821978042470495039503017895292324520117017367057504326835301558918683529363176274234113244325240284553143437243681386792540777226297495995170999679765338519673399033329537207770143528879832650071177305574968511304272279819457531493722254833437764996973997582548989393788573580070632696797183927535533184000648595431777181945272455863588052719649335832271488346856467775353133240815851241394114325892319660508008679461009061726757616306938937202240066918476968039319489347008140818350329805518724034336205988145492627655252258845482409724773538301485690325274950266314853844130169792073161772866426597499133022005721987939767161100952989406369396377318199447410513380535550507974787917259217335396601098067744424766287646081449734446938522135584710103917955279269962463112832761433402430946101762987688038271898003920823914206662296715371525622496125202079199013517010464718393155683392764135358959154957230075589978379293603421849467772889512001820656480268740244899129462801560588839188484394908652823446933279731420111368151828909388704703069385244972391900214939203775654300971932750347338643127289639907409190496816380965131205627187095232847451072492003405130045499980776421816043627155774713118983607780179001386152710244840410145320920140669951422629026036280667997232550252508972623383380276786261888963113708499535624916436614104706431874304799030176663555918362972851776827314270323877027865713687850614569538833778135271938346015126808934220386358281251524067692282536761349020999428010334042807686414990735843758700003872051410343744506268874529144167831628358486987281836497095690182514783475708574335918525709449922254778864233163732036034948971993672712666007026363025967178258750230788769991743947993002394137500634876774015182521818438313945268183343424313471790340515743372296798384295548832440818994554884492973933566793810196328752171493113329239216743410283344485744452188075373703634549928350036067687977316716226556903224988872172128255536668280484464866926423856266698984009167057263252029833824876017921885758988399094389911375212942869554185290015184830873520576554006056053020709774789509629335300927298501318825618705161512623993527374828846132969101340708771567917686691752843861931830644883104327680537424130871540711532845165340983122243211368993100241425014553449600329428004783969620448861523739949806829847226004899095376115951252062694496057582361209470089244675031516953476559923026448275986499662579985254229206369169857821504174657828966959010383989686172808254914433644133289659085182601200555034968645391446266803966718792460077799815198784198208599193063065387760012938039740608109615062529376410156601136355155236089940696124788222932219891002506912179284083704402374975850986954525030645351339490648574966677657566358919819605171907448477537945326538971567572633941703026670769374637827869374351312802871901478175486086622908638932419002919340910544015992492835362473992207995891268386882982822336300816223060810743887167459401223243211206363574259260177559207933530313319690390618841247470845614304575477126313385401569283009383374895101878902269872842871590853852960587623524508177231581378246550024829282378206847773518664915576517067084503060144480972303485813862310164280949683701029031462633964223436781459468016297487996719581175198986058286525953555616276294227267985307470305233847496146220508777447041734018938033726060079862310548083075647510005178527492598366662256034190654363831633467687282379879158066145646681618183153978319953322885374183034171996585289136252446466085746583483936011035643248884407601962373733740348880756908139034181780248358529156765568667472092866827469750824400782754707668010497253807238438418242524830870150571047209233824191745921740374837011490877658751881089860983305514311801174353265512122256065541858626823523474185778006554634922037234184499987874239160330058314832782535433267759820875209471781280043728713778251527185622774035658445815293775530192233686287941719732611475132600633164337300996400968835179335860598882478086574916464905364417656934190417372977279480906668750977165081251796774868058315986666164593196453233967568608421375681132932421147112142303544383547965604728888998219645673842755123968971176161345001450316313341899073153632255875305264733031458684501225412947175848483742695915359038658612786512798472686180832607514991883204816759236929582738189826810478318842229225591899671997849251516213970025536649406570424248935855204546337179383934125387481689365561503362997641668377781604435986953756478720836659482308376889544797761262691746060717182308110912745217113746896459374020764177930337282056858827284674458602327126515651904365661402116722718388024368692526001237814576307856055092063184246999788148174720679469620473462978199155406007652133363961078559766492796947460540346739847649438355696406493879982454298428305377528592440278351939065339664477178088313574228750569738956004860988613142114670297868441658379623076702526180556643657889591043473210146167391870231065689226639687383638041895878685507148433191034105321814132683000713211706598191100239573380876583884763848342014715822771162949453703953667494291361157496721079120899847770466123074295121893148647130742515726338964744856174306947774686781037155540517804246158904472662152260019448513858095730681101957604256136747749652068583147709673362278478699413902073311716262707371285614899535506745278694696356400292428234006534034728289224953315737606666528536472773708654306598066694925212390373933752283344195071640784603251151618803097930380274841449745001078967372399567525697505652981068031871130537867694337434291273986754044624996363577005927299675071512669546114351784399113263476665373249395836211575210828781108263523487290246219006934428633463660115808465907252694342629441827950579118526595469869668327564952172008228765877727960300934806310379397878204971178677753033459127131238257979305940467230667570848871207549432118732768312111299311303440691802478308115250707895386399804684674213903626526822626109782141606678886281182908429287874298421450189197070955731970729580459147743639842887384650149440267034413610479828628302857145897642338807135613241541692176407567243740286203088352014744679446964162119155631940854403987680249445976878784939431198884504568295171753216896295976261247045254995362364267290642337200916967073360914648594764748223734934733089228592019539755283222405634019384958847474290534318844744390728858038658728578562625275643350859090902550327468233837022451983702637768092868848291041998164278058430961257794381041301159673590849335152538142261530905962630631782665299140658293099882161361242967477564829485544568383123066104997437289272503119524769923572297446295854384485520668961583790067622936193151705846444207051963408702062258421422628087702939941306040153074149008793894232336812040486865767664991413526260459312206635135978221934666714208637599448678904745147465658800941618635773963979524842157349567329569655562862171363269287125024517630689324686519432218286312601790762964765943539174514417920385013985333317842729507646708764377087981933024385725222675189454793443100531945149572880436088388441492818497001301465684743662752021938108910256892129468818679901298838167472504950544910636210648102503394387345004780907806783327869215822001184433711794619932086944483500761199093878333665963569848914281267160061295506099266594380014531933718564799417743229758552284913342008895200669077458897293810352702958352114396522941420799474345436437540631877417391309098339413196035275678794431200876132038110305784018153227394414330596930813026818908011816504660913527051294812702323935647660585645023371147362663853283618402708384442003017896021808769970751996221514735698497811106533415153617132670654088470215904110933922676786728151011229699328761987727710997459130578427301876795087784628468000142152621548102442466462138357372090272568998255370616594225202462281751999978611418977261481937160069452643604874722444995767868932965877737945693198630903751688554685551479773650452226767872119794697048361120073756277876036835677581727412139101498060230833244256063100480778474245058553747181840846759618177280057268854092374974780216675739382967932880477489657344870378893007594012155417144327406720048981542062426945601096801664201802826689352003876009929390958441174571783052990564417444925984317592677142692480716371719161384910336702624373070643168703138287161230284873272703663791378749849038949904660290432546555269432786958617090861510732510815819186584430937182353862037260786627627834795678978682002280323125828391265006286321690974364278344104630034123427298185919008448632222231682499245091258901582130142753101297801569944448681381608805803654408434583148440791752971069238830559827986917335924878007192674605896390083242745402343397649903079581507713992388963085435126022421892244342782865755429136926973617808683308481848999382664324023122395466098287173569218633135314076901130508413871956459051381585711821084211236802684602226637175038613490579626137012136853173121163736242701479970461820410296538386735033246054209421606134188087738015738098650001428985938517807225991530892170611340853650379679902321744979344440197825702472192173018195291772897919114190426119560125636052534506425283505884608471431738651032702923273478853198447271607365169461422563869955611310072896271272101373306519543469159419293049081750416498023610623022215240525698594137821647659948268924622083309359336026055396215367168362493217868331302165061152655752056667438982474325074270318373896235265572898645672932541515372894746997580160932368922822682655920913681449733182325105349144783661375025986430758608500933993000576130651391604994911705229677610687616616238301914852623604175829445074896874213460030808318600369703183053566042899931361383093030405360139943593452496139474163630109339420092068613773565407232098128452657699893456626372489991091585782427151413309779279482419859544334892639299428318395776881638231855657286525481615824185941311436427582304514565296512269388529464433286156354144262490565449192352229456241905174397583381733827544960111117946950851290843769955638419830130810985314902023980543094246101776679526802619448850845178517574423432813024740919738539564021084159288999027699892869113376004997404097075778109558236360112434815966187042418947214087795537390445794243093002346666662072869722705316208454936964057345910201485362928392859471601076963136295948809552542115626160998561029714887973912581967736914963527790597488462057172799260654868074317318397024472101204569519991209019920478945927386965138062786299187228839197587750116304688918443385140781643476449754795593765139384581688100216653873417593715110268855535530207470710628035828647910126186836084884181666187159196613049904089017207351079045624326074959102432194413367998999344261649106864355127181069351958260985062957557597584460027127097694474771344064770286215491971046499151866249432520735938955868129509801507145181178979477498024429743992927102227805719871076825792459436431322229116996029452974638214442182776789668200123136146827185362490826342312658977209653612810839243107098030190725356456870454193890530839390474927123674066370628833534104549278180231765754861574574012494235828660187632217674887667845148999895360337234956680857619142686736926352929922433512981229380561321028222861563409013112768668058582808054970537191492365646891440100327204480774100717186881949794440270403034069311133998090670603987583216824226401398979236531715428322818556763762474831270635144091616568111706030912024229858777281486152760289740922140213880503166637343375420630463025431338833579266254913050728009096905808288863996611805298913218911508682693142784785338140012170455061395912148702248277156974496088744054457643183349336846502453196275598725415562399968246749878430659841886594031108217377538706515807713233421357754041663886535239263860836988123605827254082775177699823121609578132666500505933705907081857443656779237202649999137592427003857159193376089042041973512938202949431664877950584214166926437193971764836780676597508510476387222314324373269349461995305032453111562941280258276805558680375782040543619170314263074664356478432131516140424762931822895633170192370324391698937086808684069749976078703784821259205580776714515714926417329984415699232701790386407369203476832418435978236425812826072307184800922370320251798449042691028414874663124973370074887548396768090157681815393367079193172668057670357306712405705225279964967307536508557209985598851155936994190689320312755937880830666220444782754241598263091135103440893836462406047065035646693650068307051202608620477449117646733136406471432613340836191729621924845782477568545232083893104871680107065281980524730361314171863582672231316533375892523803120181321084339492013036933639630681686448625307942325623969366507451593227661957538253926638947907132318733551277427651790866086918685480242062383956429766394509196177857120050688839195872594242033920824862181049962016316206496672192810956628786503636047150614607247623529197516229079153876104748307089239694060636080232661653236469085637905848882377933109919303424444321912654643438018296057782066467152763402180412195478149844030659959963585196833855365917500875499657634893624757867072526720753804690804155535229208465722013331015644934096173182370992018608565846175244061556896261234880431783720406409859091352839597866168563004708188349648540973780395612271797102418935570182253320067131735385302653696833731544734851995758253567775874757589762244020303224148328052734744452704980042484550117147454627041548165117976250008793327691659638490838705098035932099442632504854496914301267348832863175505973487810673299396368907006552921696088445416456036476015846044136126281976757867928573143264426774551552343785173316309205498075125171886531817673606559483373238580596387579470799162065024973062962346524640625246065043698230106129528847503053483377210517961633973045057160197075729703583400554278255828926502379960516278545798108720624149556130817546605359961603448973569714368219099985150274859326095433463466933831549319745186827455836542259609903780051675010257831472459773305541976608060875367823058613226776377111097284640982010291181939148982975694355928168774899433986089687543330200084829400233438060179979820449203200092842047771894831008501600517232832715350217752339508909378111925521475228975511847816618725183749810534360476345091200239065335255538039701256966831275273163559439662569969006490568905703807361392612758102122846701539099402291672990284772906940583338912945621714211869534843047217788740063211636789078018239103777624649286573544950673223254976663602909194793099951606716499533676124077221033874579762498654883425732552232884362503797464155071785888317714806668425201090727637841846074225882011903060178652547067217031579455128057258004447560691058457593259354294766734514876618080821992574157466060003170098344726133353123397679045932048745504692914269672386569437655523143575323852303577331728090031543585181243902993751960906797640894489133985121566492518383206759460608246545236790568867993485269022481962317918561984262483994767912343805294643883935694909674887912418473523916365890581737471782133076948729919565118900888540116638390717763593936481746837183571752769582135429037088203262962380067065898835978166964401204100762138803292127005013588527985791310170291295468274774144528954215811633025189933421932074490941379978450546947354233537040256636796409131496014927966005204110053429671315008696255420819368171322452780080884776199128770386921584464354104988717409920469882693440850135723224632574621177402599128625893721781681969171497798239281338274996263006013069324652220802311726684848445765245748287912284726865955301803305830770622217580762697919556289215220360252921662585913703330408044987889431579701245584455481254159316084994961769462749724283180462506569547247375462063520518711015416847326973245943683283511375608829268242154118660688644507315281048401196862370938834018360626640155057150340160624766613619493187323472317220872355438616369353791367293461816910794386321323463181889890374063183897111842647067018935030110989844841348887692710311302325384809313547151153819779182939504317427877538726007324151345655958631308379559759822701287919352323362713693667707068278672335709443216722332823783071059788199318759009887314049135121970153445910308426921637782087274840061901637968532156923863787379184533802428558458984677555274347605077492027849535004377107413823389611903951517985536879791207052061462483170473602132220545915886270522359357266302918389538714790674570708034768810037158911919632575466672425660193786689734162017958914199439001085225883626141152672759186483277102423679116753402785959975249793864300047724946437435483304927218060913541549503675635865478646978514339666840304048047952361790881727049303541144278726188110213323878086913700820902244582232342492485917405751393834546483852395875729703174496064922602135726273875819279056047867413781975641325965329014904093187922555519546405785707810155192617250760146846140426112435250343917528842875344659362885323887071283911371013141402615197193756312973199258641559231287573999043766969115837638943669121770305609698721548157353103839746723569324375012942987168498856093149005223489587287903140439727028468301013686280094657330864917031828143158934128531667337311367170199948236938968216013604039590448098133445919603991130714625701859595181163976871747385578813966439592934243349312905479252312607300252468547045298101533948084590907972280943322000279632901074839825687305312738033799693359469500741605207676502348790250942240405800229162471112285076811563665950182707778709887334431549704271904801892808699604861543414448236203878810673779145936692420190613503977373054172732056064936499076235834342573497698655982454587439099194750180607860830433804148044636409549914626174545831146254012919446907083558232054313751188529965759210710156120395563635243307953988100468224930552213414482264652292853276367557150269562890490306941013453081295544586671182791836856818730575046770028384862812807245240245868096347205466710323211486183524518320134039155107670005917028971394496640380882574779674262153724800707105640424120214854182751790951283236776522395779545051645574046584667502771966031681706362756187291208350734083441210399143125050593236184909006982631090747833133457975893216837759854738269807952871155057665187417448477680844595998432819352174126940312297736817875728561485669811284710452412279070928912364971924563108146850015081650810428473341832294383453657908149337721597185210661376173109839757866437807433078572802237546703456320803794368239842941006109709846611679761351212483526548211941295501638299646803380626037793395114098019620360689461538694435286877517246668835898111592896155976075686786078527628846808794069850922090334977533978861844927610357358546061462906786458098766509729957950639894341807766052689525606569441774207503291399910086185692427310905141570592187018687726282888572925404904116287224183975518127010856269064509868281561400155876951153927373534142842953869415260742758308609630978192283156437828986725195112868710063392476695142799288528953677941477919492257010984157960583989684228612221690426906302568603723811373447700935711883447408157593457622017909409137732404818611168518505940555345927945551421066326333014399570897382429331063367814276355461672766726436097767116092277518453184621817711635603720623680935000258097816464679743700329450280409098934052754727647421670785451162574208845435840229330282986434746273879387866798625045370048006239676924892510280228629338661258050990198582182703728597696024413814179821015380249731534397509456253791632263586969682001792054218878246724324872038219818979472834069792110222786106844252580328310368662242897172165054543020580973306415563835979866844582494955176004107699569303432348936722281065560389501996680211919328272159833612237800807805964551468724150769680743908865612585804249893766114489216770447008660024352152180435593679390204690405186319009702641599678423527384560351930922887938678501531011958986532984197821660470199214471407014945145309882900035977908973678922528018333822503312787424897709829670049177271540428031679351705651347914446358360924965451497341335927587531565966331055284150513551708356690754007229992389256780461045080820261128192400587825015953929568580885863665123164690481677444924811856470280221486266662700561788569789739343036935396667556909167249950659666921833251340202796832658875388074407088882130779975659460873016867691201167553729950642611824232260392921027491181261282508949957339651247377656326206232198947418466940024065146639172163679881353349545381129750944899928572410991602722171327358523197200102327675335513676804713312705049686646837581244985171723176468063187746707175536009534226633331334887904635396735211490026048921275693795374841202683475180086784579721485726633832774620955646648919555329800128081651031768400516891789457669637403312699488484602492515207941668689918171175033921304496174549175756882408137556828135410968074396066787520620216052527030068324904930514255208388608763070602932451055491840899759176550521898316276451905015240694805931186040367658335590186014005109429240230912160513591507619943072475498455699928226071847485045469297004671179785125305638823079977684514298553542146286414819297527353064517463865315548997688613799004613491154347808565019747532533991227589360292859956066581367796324887306170887572769310357090565451588893472131523581847788360832276509425466196798304180423233627223158752383074907339690685707504448951313269171414058807272875406879529741964080806835513426801564842524628944766854734654675577119659396680893774685363411975609349790020669594007791226490594452787415896598234500891600813368810637382862034520881268413507794497578993496681310863830632957106595845467113536049717333889257941352777445191138565052846474559778922162830196931971240784931178216291204066164388160522395263487822887793379599057678215128557384603451349925184697567968450192346561693584859330643348636123359654708404172636191893540730058784862421436670297125465180470103752959273828715584565513607822065921111729112902427914456857262835717344197644809773425758784871746030639163807186588945140409408620024629913912593452437671731223667599440163041501020015756996232024604175490217121505378799673654400501424572871186255994120030507167835196960267494030644036683750944219979337103201686868353593166723708339845579379213957241387827044054895407307292321696360121946398136240433833669351996463786178150627101865101759494793717415910158753500277509847821778969419590858698185950948039967519656289019867013499447819004039871312011198433071005998026606230575568234282705204606612377089227352999911008616436550752571182427531567802314829396982748172961098245361255345467002301406669623694348381843984419318916708526100894827859385182069087410904575368543057327522446031549229174403539880106900570177508827751891896883185820426044631703492619498490460807136171431666505729100108620035735462714403410585082379844045981320804747055079577356217731004158826359607410369206663170574959045855635931762564129197846484392829066901498201613914473819158596041151527335526317236764252473654475085029038427844258936673964981784470649144841349476582257385024816605479596192677016360829700921136216342327318668862407215772743057417132889727493442297542433017703771759525837849510264725543154459646730285724133321655952233031664952958226652203774645284622710198361787678884220912311045466722246008824370486644487825211707400642583799650581480852153781822516889710522681111249249874433483378589408182297902769304818208856727605695871379546368232276634835772062153223515543897405926443213653418634660520502908147574550918328967452080601957270902467565270369023913297259864483489616106434141458206060429669431590422179156342512422712936719152543109496532988816644009890549885819930219381444067744930768280021545024306419297990156043812750986469802931798103781863338579854247054664838081439047906991740856870511033882051614993535632164818126741232289398936129393004213584986452135507172415981694931407747924211097871037586809751007690830264977936944682181588211961236125258007644862899787637192433211934408089070738158531380320245885611028470349452066377587100844504469590757522090541983411779863244126886638120387828911472442048698389358281734979242692783615048492281898249467862313924552905483703802620225435101353123232203911636897302928911468323701316851131401978083348460241768060825029417774219693713691920409519273444531488546336642672590617922031377438997132292951812802635475729670133829653390709645153456694938817816044895878512075264382545562471958888402364593084846312288554175274038555925591355585039398277418277806984481258243993905411028585949957635265679694871466127607382968639352977500478690554070808431957391952454743330888064359333652902793618975975749911264904926044973907130424077875287898380183832481984805473602777815634872884332835270723342422963962193000056688430627278352384905087041141792604718293985313017410935923903168088947122920179095096056229177744464953653277277363217543497917140767080243458376145361530172240488412783772243999137856451211703534601925038773097225112258175131856132783951921519646292452435986250918727656040688486537949984734456829937756932708719782388451144454669014691060995081885975808583974253958963958780228918688780513794884223870615989739758642715302124827199568392298432713706377225292451477264354303709123777821116550868053280773619501515950742843205471631243742243199573849251538640491100269523876448554502445879365914022459612898111166322149690793424708290001109174269954894420538064711384783606644807701669802174509686779311963067899547757505120657718404680883237917432519099226352876842098075793200472164341689004447744225760047183012365627878420226732073573265213033970114187515452738144431791812751487428319050745272225841420658485299747987086210862497630268384396153597791316488651696191259314388029555908934178770078857168926664199541845770920990428680076634234036745711269680671685961982116839452234442079196103467099088464979447536346861100406836969082982046231393684269268409884783518028754729490004724219964144780359426087024169389328147105508796372677625132263126113241815457207414329983759457718098852484932913165827555865810104309313147350046930115061483962916401557324877966735018352092826243484409025977744348573188421429569601170550025543088965890145335561511002587644388340745820108457123602511053683055539211543983835586698377857205252099494432245414292031935363291551033458254386415927528655458128304735045180823387226519292402243638378409647796459193149426549906087497663571541238571738905285560333924207930490613441190201715808144712692556986647234012081863251520063976667303766202869751165628145299266418829299877996751747767836968712312857001410202323563086268181684183699938327184203666561959355730580245905062981098112476692120999557545466851347018194343661263158227724870877797663928510601280431082885320788283873785638643682148612332882356851723153007208491067604201406604126952645419069729226059398668291773676365849351073040897211468809869284146493728483536356470482310366364131345967868882352929064858178880061110742108788577223882970547847973736367414434989480735838878392954048176931606738540059360182794231471555075766661143938725529543912895887440314741559387398403722006110610218577554798473534783486794578348166949882391785721979278077304331831892661063097998004886074476349480573630343671044027155905691131892333418124225427245433049702017183691615757958808708717574390269675311201413709593565859392487336544047883797522595943674726795698024955911882590042881950384047985336404497694135284665940748307202304063352714155732103374855781485720742713019704144220745693751372210843646243421404373450323168417032892970401671580075094833683902546238180287138718294678208278859140671782674446107281990211587078157032973517622694878998821556831048303632606971383362173802249352498170688422631590154173891262530581056036616215517900575547593816271270648197887888903882155822229170553076339079069042822313878002527631883211054858568296927477312430449441802788740161094277144499442219991955295004674035997622938631635242430914004732296824080529953963891912852294043462525073878132776507277423898665793544931830721072881087945101670634764966945264873936155007482387224974941634398508912907684071798671413703181018187085641597246696888784634344774186670036011659851549704940610115672946745944001513893108890540420250622191781378433452406938854903820803548743776227515045783639072367994806739391573695106839402541172548399945616140346109407345349732425116100743138662841714605183877742866621291371500704900031631719711313334817182259474480200720777168204428950649011273369339222535341871948961019008169429021330901878404304253938531039849743854411814480169934928938347595144610208905010248247249577516262847333552571335548713781589585834278556588499669328083918377193934135230689641267410342876705210763604192019175440865459829514760300635567057884061447297015615429306719218971236405697627334366865180004812519563336034496443738244594378812975363372196873525923815894369678415178152173137443950889073545331465438602500912376166343074427982674049118944804841357724311330918242827625677233721597555751510692794263179015499181956588737303663220203655177789096902574153701361043093101065189123291835196719993903224426559752945516509829318924102511658605250075019879541990415156581698684910759511653408200998449791173124211175043988562414374770291244414078022152857463705659667596765872262711125205221762274068792343584500325786076145642905510578811211675010374256871361718056831352725247768441880754228085699001368378312264929246749721163554271231459357131724208513131205848563437773064066532637549799886187671959574592204032276294785771283606047199141383048745458902406545864114106729779755823319314306584174167249410726756581001512314993146250291673173916964272401105541851971059363586794305880092008381951929256720031648230602694018985729108826724173386575664127181719456856492355743461323871210842144197938105981591064855668442717332768591101234766926540397340814843296201002310936171244737206722917124546682944289581301220035061829090657403171232321653197151325655921515314668113773214864747956812164679833995857521968362294778927163343298164757278177127219327859121732471059683051676407957679774607845717300170898945278580746141876687796569773120965613192996590595810759687229236463676454566178243805270232719617737652020172625355316465856206979887418239442008655342697702148567630383884522466647792617081091578498761933542075931405887954582797446421387132540125236583330100272677355116600516131265988226923531221164191378805168699142232327223577722132529824577808502018897969745134873913372949129059900224982947387766787557653038791948470442151070855749341864602569235470108480175616339946770796403412926602086560430076336940297020643401749698234850515523854975094955557155569057096395427956477277495034569378445484257479132968964023249996576163716051263501376100000391976150731312001827312793420429739458557613062433153470666599691947115762132644392699950319029033246936909415609133365446622939119287722205474177504115472274163846745490846986632879589057903831084609556547695204186724634645756329573463103864091716016342943163845079643288005266202743098102929350901138646902387067797651565044103615333162286106535738772651963793102934059838333695015586825959798283124535000524623544078808687737958624909723554756609293209818864547257740069106988489253522261442658988264536926284192955370745814038506284828420995497627335168769635896106176398968819174815917357448607985157376760020016908365955316958592096797565858945769823710482817574926991926194800737100587668245045003721398085299644004546288696853265318827747281991550214230780027122273489103921644042137846226752868857189132778623204462681024452923327895163568145650787399543938279099168100958310671077548258490448372535722974891088339993592534244805121225203301226198702690940618863790946180270427121032100123689597723005617476035746273909305487586308517277274457661060414051899162777950751740646074092351594859592536927160449351274152531159757690866037524532615605682136797398493202195498113308954867042919447212527228006140742318997108066323218815876091798993441886796522346818439939629543548953766666910594662985477129596504750976214899410190929305883374575535666908465514355724228107896497032875089409481566015099667661318907398919904270591334978761482532371429297436795189472422108944647139024307873126415509067227318307867781991839575655571962137764737897773576558276952763131796993188002174688318865243749107435528397308248664785609285668936975333028387453770285492886422724488460555776250097400989919289161662029904899555046836617805234597627833047075060178927201241236054773596708718070409476508386638498227604921925374755100654501114709373711954719569305663527888231367739886938432699093319032489081733832519397846570912140939859796709079474499493744254517617249326854900638815690161968516142500493262294100465533186640166693299385659089904652409316626589839633143486249867383869873949872105662442767712892188358050830481027523290872333844091480336052723838268343815887536574959179891545066788388598381075657776204919802519215959348163558987990052275330172387345656058146068682484579409847654258727349347733237531650037247648252037789859253945866162712472163457892992352784477429609401792152228607347590074229016299618164365193357529541230838621269967006168482323293765288504355101866137422044512846698229713269974006075227790268467199890156017292923489756415167741768648164956259026631009653948137872148171589793090099522500186632669765898899380721598145536551254193302273325303157875225523788997713943336965552046722984720748195965459001056982530119646541390780633507984616693599674929648919713362657730322416751405656770520607059234829603020140368429702596937420018072183104207885552384107199895060176421587035961280428712636141164564935019370355633872647537385167226157427842091925425947699935770461526522119926786140024905004780889397037928819195811156153087888786579584353365569459610679029820703524119824224130918495951041142526831741738840204954107101128776802534290843852345558064135370762693089929051940523402068984371319887045409295055843090556854496716170234641394752600431043082059158749136392954428591060391916274758530140550736004983404801154142273732354528964469497382589073912010160800945315577575453606461079849965056109556336821227931758817294341856679329046998373828892302718985790922099004143825198474404475187417458633426202691345950065171906741970998863474826417916037351379943825441988039864166142058061904180662717183926206464600434185351176428962535731892821830859557964818499598645939954159758680152152044591716520502463302241037038659892240233123167853488925549026475671409218471267451899204518985447954942454627999672633963249032455834488070939914191210661188272676975613908417767327873489330492618642277994454782569015176184676591964310755278545804980358250861477627781161861194589286659155733036680555226741092888280228948970362459111420125749094134563531054818662869067486608050570819316220781139742797107991339878335032445446600881144253388330320933542411887980699734581020886133623022798951966654165648336832190606859426288155452953124495690194859327042550033311319889178046007084473380301780894407770885313101134402984648249098515767271981307426118421348092981596055857762887599046473280649978906520146951021399607947225170874831561062268742904765583687422048715411659122546206524499246750013795383060941021315217773554107443357251710156217915622045987125079463910951871351480754355136298761226330132754326668991425600553125552213514669767573342034729590595466894653808361921113246264022239079637260525662761440195681019799624303465162074689980457863510548475202296804468594047323857801125466303701402827076823286102466617111663676103201672451215651325203841844299101480416416320765649623766097506929630854859626407114028705047752275518908150221585236584070774029858408850907211114826213460241390620974003819949109126210219406115890790588692427639765348096567999851874719843607660694743067584579442255322989540300432501735957006584676406514385336063391740162740692022795233697840946665497627918266759218056888749448004271396725009629198241184365006043078448451477353964455814219100897928805379832440129469052013533783338302643318863341489778080368634888286901811519116221533239518173683481095638988867708998506195702498365510062771278374258855188389676926882870815246395640772866547441458246033737822038197545889573492945066820856707741371944092989985550761935011162116088543070339418042315832865962921733799689641592484250341721247232991396575385401720162170957502909210684755017483081198115229003478527774542897049930081250013749797837391893433791574525353120044567082869707015382263780865304297447937654955040068711753066565247377753033955205484361867677180336584790099783746071231460332794607501641610737870006649119221351328719353594511857533187454063917063762884387098636249204814257765108379368394357571755422141749006588994496897114592866422018725949845535424549200635376877726887758069181984450357346071956257611329549670928174977106972643080511043029187380728719936896162728389269569563509859198286793233144760656583931893725502054298520039026292235941445046028069179531713985532561250485665475529168269555082164842766307645051027810771883820480685217852428378464723479818643737547396610088903846523787710037258757167696837705724682541086528882007219318561336749243006004283029153653835249060451318329174551841753941008727134032358149438793670660819044302961492672298453130939454180794057697914388939381034302567272092649959769867955700572389957844331734084165414385977748102841798779964513721227367331760360992085135787632292692309446542130291310707170633963061234318563958491993855028656738101436504035824455812776750854483941098397790350256943553838697766147056303932226831827276318090083545522544271769154343898838450042517351552117337320496138529906082145806069276803400079969686674862907609562020862784622272531677859923976433052787602742282242295287347520441234353289750307776900306714256479737173925003637057829466286297395241369375541528689973314101503950237211281468533955470858114114781133768441631587560432618171335344179389607536930886371139679772620461142798826328739387418595134848647460681554672798591870928553763898015876983135993933240112653215652193815942242122170548433732942653463993603314161437488331770514271295761771416800443492708906378153277365223908296108135864449605177844112333859953104288623208622214595835731002798410120725053142718992296993088132860393989894496274542422887140327228306554589805561351539281176251301874964850548450254267534658323715423157235175552556120862943077826174022914158807358202926132135438124579161704064776845432883821663628692528063827987517176620915101670677132102215610352867818737141094397086905410001148190149405098410492844695991847160373161993239469674505379843602601509449134438078097726753333419713881183349454095257099627114570687520773781317665323148506243077292184677286015489399335321778274035085876555084361857844527255179557461949491114780309920435621930842592719597204434349734536692813188749103502634400898528260292333425551102518657454398826969927418935074532904336204213206017063008173736694198026115948868015708555896540498407769765768230672531114844572767984499098498828732039369590555375431561531821118606891256871017434986232682693199899087500021213460519058084692022559964886336747952673700999615192223684634568459520257862718541462887932884261123719800241111996064295085124936050853028356095639554917577876768369458153938790550804457808235856951752897973026841939607831873436666689150416391487311637341451856129488610132185733795246734384536044862650572124829390626818091383491707846095588729251265616819969708137148091472235182935282099855475978501907646587031972972413176878629712116243184767595374436601596180922796845534239270106576085403680445573614798841000662046281040237842994361310240256241564351458243302433509122771914148793329631829565186757736474116367935040768183471809198456370977522615336810392310306605733917983034347524176434623940715959750758200281352479662297313464932958871470862509879508507988780257449266481787336641386153491848171118289178927424620605021400618903634722145124136794501050464904364763020571172593304734365617187838451679158772708281084443692985514539449689046298979421266888318042048363610143522784246161012909530557857686783430819178274913380006649383207185609863492940029696568971902584228866829932984037306258173107779994776159982578742231112720769752201729948585764329491680819375830316580271300016124799432222623501713072986851424888486607380259626835450831652284612815780132445781864595758885357546566673153279201524196596489642996535326134239025672820367038531780898334847077117532913939496780013337794568180725625080817489754761073190141251854636269872907446916181250995332528051694876385417080285715883319383995046212477553874764045439791800519100777436253693379837673947530291204576534598665066558979661767609740973106169013451105616537230779985810642339850702196337043601520078316317859941687066104572813563042519895260785503384030713380617800738318673936101661453680515491041103290010756134585953355031430675033137685414854573104415171887219244725917305219872543524658091146121363234752340798213354010138691683835625312034847896289231622296081789959395077842973474981714504432447166362383300151603332834048621615179490087605015743714668519319922663867099579421925273051705311601418174567311996195851554833131375675032145511681865453853766747726256922842689496512140158758822085298281969638409132561551565580054465808707388993615160760987723888192498517908873334755315506603265428152853298482775016071540767971522229927553814517739875120445845305563189980395838786079127722902871249258366959180106113387110445664614493663804065514643812619532292716641586114895308256729252606201002181861472856655737103992261904530901783635472730768411662089813344208554267814958086455283714173433851064233387278447512724015192679407109483061096950571789694880889044954725705415370157597136996863856856752546633309250276454859457322914332139159386177135104704531860530870031993802011069658444469620319618292390822848475383377131327066203922500825638314100609842979495675342587370601641662040946786395675051671751780779006401572496410835727646161146290380969767498879556429141331795865696737771611209934423178210677236706338648345274907709987616052729965252132066297094171660379759525599894981318106303275329106913141677047420678264539982781843557351821814125996365944723112330732161697531489473523869766547300759879388421303543332935607099574740042153115798070882864080422618429404051377922286690093384233413899176306873648335401582356436930319024709708397872368757318887874308231604377114155344858178565628169931965103076330197489881854781713138875207928752089131057294783112248236176718891929910380911542470649346314249002526303210454340060087431341023523409154289270232273592966897997257692637554275144123548769592938194665442291280771587296204349877310716592086880607726701292416722971528701917699413253672227217290283982424330818920813006470078994404618400122049366267620422864127791685265804600425664162354104733258350908053095035601250935917842447300213466395210494704682989504655892214810012233607424374100193921587989589309814880482859767665611281472977973497813409912175122684880905589994074439320674209861154742054649738616251659244481410245578379931296165772001991591629355400604724088710763536335572693793226881426474691790896116036459102711205522747593504797275184388069275913899038878391013160716929389806320411125676256136329978562380056285042453403179486248775622269287130272715695948369477652816665411458980029986056024813074212341766755823180516711601731342882646538855379728686599738050690748260272103221722327559193508582133574280503532249247330464439691890573186049056392906657480289746982888263368572264342475419955714052680491751877086814291326027956905369830181908799063768351312371137877665916462981718454917189304083432923096231398774577645759641584904839823823515652045823172407060086132307685021639320636219470276455598778825919151238685556003573992049771904460068515954699100172899050734034092266119282997927386969642115733496951450527776594073278819216346176438416245958984526780708058242171669414343886386186346265610459805000775930543502630523271018652990427646465499335122911917829750465175223446023509845431471112111886589851008155467637019969375703914587303655854126521689019187928201534781500910475187086085656010814972306968139986109243173095890944379165707184096380239400101675432651864113520084007164630684727769839710180535067692131839497462067943991264582108803898739400530470911317470704938220588218185038754383993326037784740302503115540371396531025628810157785316108636134395873785456608258989893041804940398528729991099852944028171864844758928591303766026577924954380175761286636768886224945103133096104349583907389605647588848298820964277474205067422925928393525312213035708991368351948894196205415786260567033609445947518639195116665003458145842211981295412698693348193608104561987946001551611799899515343950157358573039606466403107763262102880126616713521988583956511975818415705340373144347586390962496707851933003352379840198149043658501201969585269760819984400048899721542219797957309688723728858833120724584008532007368454833237982991838249226638514713885744321029148375788144646048508402603843313633816801776693350951938503885719398691960982255328106073163583879536548377203029093968987164005437165727627981676052301852654230317997191321367232867817317840990978652526082229683134189336326853793371610923373502341468676181980419636049056327772814415330446043236198390367971935732280919880976464611669810171561946280267385778028869664870611870357461327826272792935262086988053394920929227221959979964879724580086716018727136331745330543288157437207220111009149100662640645217714012604094505462418073588570605114676052711119732668448403734111896088686084326377475914828179981067516607640242734641153752362989664193038716499371692032131713867359050296489136832253628233998012547407412481036708442685885712350675451458249275521175732514883282303712486801028476502270461354078207383893796120057468803187295404347792313429132561629018659987624443248330870082434980940671267565509347851560968972017001446546251361989034534600145151983659992889677054361298002007798112265880278565179380401255361237212590885935839212798379516860458890917969363189475674255706643451011732250133052931673304190988949986818589295869345023648584887324700695118613514094146886562053411024691780699455046158360030881712096219430090825947484848457979486074909576052635836182832808647875322002379570358474827318970022502283235719668108156284343209844883724312632921039672360185449975272670121375783137979212770866170424374860905684388001072143251226675619967383537562727435588340498355994821632234691503383357468106323438199651477194838782395148528042735059174061698894195018866657346432412180591507977534773393070720752779537567653095693542680240985591174176956685782261353315072901147146144677392696393847369312336887931713184793668302617493956760550271376796363675509692930222491611314158962063748489192240716235747389706160345087804875163184173788586567984007827385292962914752605164415774185869045902403354143877985041833682002502824935850690144855487480508692348431130071969255266641688963612914125436385903787106225748731153946978779278055900746535369500302486924031096305240796717361143643296383219936951190327207213437008837830817502119415217940698045393650329486378917008531768523169661244473036986377401985251115864833915775253797732532497973044141615431905430131911916432022051122785272882420163248433931730453196890007198252102732189204622151431197842281188868367067838341619075522618155587699692005922349434304482239646818315638978447620774036456064103738870607677636362018861105379061452833542344272832915534022010204665087324818476094471296090902020353294837000745941863767787882510997368924599313425909612501430017213673513994247062562624735480728815705388520592943377034955817332587977689136504574205354772207532177556833312999335696593676321414262035470896878916456560829396372979358106783746619195733080432590470854343121313120050076687775191263800935861363552841742269628773046478739341836804003123860633783049071120937301031688701684292350486546776819970945321823209745259662309739427650334179653601688971167630180862040314721986286107222665482807954225900619083228532834900492520964702166014762069240689679638682840863364699004417593542829110765546408935828995181430544956201574894889873973678900790714770821141762070402518089523133979516577724875166041319820239958540354034860654087328620443615839543004888017357467771275255140594981350541497489006310683095817148180986791985842501176191352052163594855346372123540059786353633521665821345219427096968107711766608550378743605476569216964880800801909433262889936226718389129702115155997579951981548577536054551129643335204236303410377299379397354306051378781391419122152691675095709687656174898228480883808908043207513006578893080846292057250329203241813457293396148802274546557458011501166656423621567282500079239383195174517434360054923198740524305316824462795560993883622838131885831106341201707916721288433536824804913585210939594685100641032341276704912219224291860369654747659919460626954475673829317569090375406933709044330969043599239191028597314265181081603689987186948811126068785545902500427975856457035481492878748094968609163880421836468186239831928324001668967613077142108464817087134148611224832943575688633079124890963918965441037696323281338339337569657193198107321511863252562570248759072922033336075237646172431546843906225924161029977284227982834005522002466234566436674563753653742833203609830931786069604136684596106004986452043472741793706672838731060534503425394832047349448091408311872959960607559289903367689495880700004119619869705933485529614598384727273093250632369107627621554849112497071450890327029816301727920323235672428359531823225136646785919297200974397875071284576713235127872148989339997324034617696520912955440979674570282558717929559226182123462061025693831851426217507444175632202691196477076805972343505006136623583754935214813612643971647306786266049757441757787361910946210621294735977259387205930407309640703594717049484991444243726269887125869796972768874569454227487502982277929628100952277432368998611185830930822339300828034191523648865481605289911634509924969241866072074694106376470177920099546948775262925737275124179727939641894315424623548943927413438244179899869019532036146531424852294400497939102705119305182219291082256438722827526168322381805071250870438606364238297607363946548063627428550670129028888947361104387461240294939714644154712663401711144566198095039057507513368509422204589745263999139564384637719773504397528424643111688259910893031013369687854152236521121496550417202132330521777634944254076047118110057167303303433896744473393732814118611618260569854439032130733625780412866953375729518004777306902345894678258326869930083810906891218287525236490787294774627795045152849929786082213397551390234255351726062775846126808951079970809642608858534207756808545287792922923623538741823597677012619574654240647845643411855304780141428543917809124209885245856769578443441371053397856346617394871845361257835109279542132314869747590169262637304587355315369834164905873640080006471784407900382878641413391460010901211025921142377899018689381184370489657736882709357558205741332595693123393133446468432403927684704810170965126699468881221336095470137291557806302254215486569524033835534893613766281239081914999900087314735140890131424753334827482474155728740744768922103855311356756848156274005067942500497794485313483155592120241841589880097258007558376308564793462268791346204227845502573109064720751735124482909355013770298837183892986096433436668370055093092964152032413261928624569416189658447415476816148860448772336903582986636847645546406141027504013048495128545056619695642676573855663510409814048125054368065206633871704781422517233637548251335390010131241882077180665806803189219222103426437758797725179792347379261363163006106071489463037486104965507041869021284676098081485889319290881401924278620976488079430645566230068007244198199252417238548912452238935406292731498066024807474781184239266169185131385110154729815958484452241256333624884335563819633824933169836454243469728709826739041463546995268603951604077132824814790389237916409811308879380892947763510458963009230713294556224752600669556482222161127306131878915349681601072888249298883930579551924477776719030490691558034832398483624439311105593997524740291617077346856036808791974041809482730370832921998853277213060627902814008317642720174429504497252562295137836598094301479251579306114826060968311294904100399965812698717935679889296077146204618428127354244711379949663462468775590330919695930479094605470871740946359821399825712621908783490431223558255211276674929235382087404639975914028751858721114388211616735498086532971757991449985605254488568643110370341126345400167996305235874998983145002210725331673673472665261296819031138343465968392698955043379110258905240892443911070968860056554757876531010038989998832952311273152102447943012203193274057446501235008274747059967682451309248933867316619090062086392893964592597065959428444951966862210584024069859151052610868742351334732717572298093399111658068218342986702544126975383807144518940662762530161858681917529867557971713053169194633577232913068625232194487759320362385946766019517149082406810878336549984774000570004344265544172878431091844949360274849796893260522144886512035062323473270083806884634239449539444030090233220710801502968237252667524338197286341181047014437868362077203683339211373558989241395219722287566245133172905726911803114952775614795212252896881719686721953521226761130518407625512459587068865058171157151092320079669440194525615540945879744507959106272121885650622358476966144581639306606417561980574391522069992833835635563748130634212931783221233036686466810548282579770038834446426717245981157675389001878745145845910707402584588406173359165229682543376404079152258139610189780518915706803221660642407074641177548302260533744425131325165373695979162125257811079787445333021702104408400127666624357472530788583510839040638935221342990413839323862739013131766231041437503958403174658674928773663661246650446438081825655538201253655947375357616549024551827900649869632548863233403618943340066938097776173014529666470653571163082585253777822872407779565453513607856390581506630968612559202865181269055208881243902564463546534028756529926322826243640379504170212041814164910615776753107353373665128706902841634482133686316209652383925399711194236235197274517886581808751122722353676515911607020026158040386007690905371222662842683578160901469169023949542173984729699608633142959145959015906370905112243468627670526456684268503262426757946293212634873446139345182756034362813820182290998533929737998039837188514229337951207966183386510873766102287804966631175108521704764266265133230214282510743248707029672037580537423450783374385836936829152838859070617721543159386259890283336376169067548124401507511878829043926955205242020377027183482456804382230025385930197844773571751072129926020711704083145366111145429871801167362422126394386525213990499601200823803120610591010126270547579628126360000853735247000380946414536401249212904597572520706272300938451938500932530508701098358269651376269535862698849385926132366515128756751199653517500020920129874632356262745168436365654120895809818190854613937763234422213929483720533048429761062573843354637906820803607020822334874381318544742555988803041139671042579374462280929044093583036987706418673141267890953049802251745268339966705222191187165822030856059642252848667493240360423197522154947610147502988123972339276730381003924908524931329748360967681856149903278241119097950685297889401624236188327998577435970307107977326914923297945249299834647967317483847498023526451585445227364497719887071517323844755467868312140085466157485630272208777516753856741916621835614536801135786916209723818269351816202513855185131459647207315338657021875059117584773034615037032158962419244163817818485553895503171298322168155716431385424198973426310415404946323668394645682026887313775987570849543852996641442544591799843501671744077544084941829738014976429628416913210455321030864057313880759903626755649638425464564833266170851982133626587325415906919988422849643713163997349081448226851500585222495784189474488757922806158987552712141738117000248543724331412429976144475240766853021707530348119896096995521460516173375911861754547147792008392082672891375037620775063605903200090334302401988358349127087445149918887476095260927494758901986169245207911197007176707280720156405285291089960079206910638928693574802777295311156575808790556049316884311118168905846869181090923826543551441979037843095498572302921606249776865864075173825218410448302834366795614103030928122787489759394508833458532312438443834493150184887445334542545446230256483741412206863698306702029601208828039783063430211298549520653826972111664853394620630048460506639697668787928987329346284255793538148972447589414925095645402313870986797904396226828248060767720490486231467269157202945478882910783193429575224757358599468849286788908062684995870785823855704036670998385107722240004179845674047282992124934419682875446462452186745520143641008792482498122576937310519494631766728990271197871976361416041067899944327988609929418811944912178768191960617419738837761482113560017818128760396867041942796366664172854639700558413512688107668933583734007624710139871036849754664517636029336571450968930267051316442331462107139225064180406229884874874544083159291205037781288314478757604400538304860995797319014641378897294850693400416946198101003346518746952110389480054779034995212434872275443476377295176141561996366235557713641052992371721685110988634599492845751963617284955572722238500377289731240813329208015258948685813662954956665375048863053623674379518189352494973582890517662058882932197358144445817164177354420604079398856083620000745251801262656812877993439068307493711520108265746919586504603141694723829812586211239850230322149021993835987496934515236213316002980481254036200843644949677103643507779785441788571726097475592470976349418067446667844352866434545704833703909913117968750848773399138239004723261144115595161620523309870614434357513401606203751824869757126299779456093712904868236066366754697404009435745338721820862503713907315992219656512132334839035997657327002173412160289137134235652640212273535047799633547817069845778894780815978666856122840207848559431568809704099788350704896684919433793942171647968283978867783218214341302025937300064403819937644336521095299762518791740952795160471406668835051123981227094050806800261008190693791615238721868361274641983678090773313823625266336645229330443399505795834180059493928864365073289541426353544164444576041807720803936911551033582030815270339818354398798690651633657738101286176035447522834791577827797807190850602557621565166290525335764255231202173135799134775193502420879990003186938530720602513707941645052341508082210933304075116233094114506864639681562413885357780622667887328271093583750879764386917211345549442111715932916664718973432848816775942521098749904884960870240967073313956229309849642111494240811887342628686082144165906376188921947762339215809974457714690608642321372778880633991901034470423688247454049505832779712625686059728618815582349703117038921607568308667928530781284324408417686908015839627108057118788199436698565495946046330753700951485000038007188054998891402842166196404278775890896801450762351944537788372532426880315193564595135895819252888491860831611273916323914981959697707639257500997065461192052517420888173600197255981951315064542071669447519673441061809585949284630661676872441999999636009886071554820736626520032132984559844195832328046120677345092141052893568909747005166925198699244533909983900281332216703174593576734457530806033257417263131906255057698936413056849268204102885256470991667387460742711828966227896248763217992941279137553705520106007604168998143900850195142615647887897808260737227092374627910962090886242672017543012273311395628203042330524976319963157504640142633597884639751400663747414377469538604390735378472595984568435785423418744387277722155463656807882112645479630743100946675118671839477815607066777555881589974143403238258659476648797912318995229094385649258464526257163175752905944149585317833533201479894030510833667035257810326710631902501858641739894005934341730159014305258202714192372964577710911134045911583972095379789854519840288701387129686903875375037534821462004526781572133620981623710667228425990967702307568140979459274433191488670019605217181421461653230195632211878504480910732975765746781528203800644392763999034080036831546350630800316059709419110340619865975862368269769518800094457054092219484556898180629567487474284651718649475159719388759509752764181516941403895184158241424351491063034238435655151708741948014973648237852624291309674814029022335494493181011178376503095349209721200456377439737706941592788761446963776327210493228682515924837717710304957650216373159167055989389549364734704677121600531533594553013768688614968287114817809374004809234501257456738241602311952752076399203439065403039241504022615608049911296555280498003539022893954784178508403281253910216697775681988720589790883050700447473005439342587456319664003904046022809046939321688298162026778368070008120782430414450366699626417772206981924759765046915168953798903055326050677331631120752398433170181271739144543238503165123003849296651109567943664227954794335228524646724594651383447029420341243455904151412957388596854466022709687263889000015565886647418587880111156670142904798954172690028038935153845647828021595205422711220134651527832926954065454569576572118676848958941742238134403183001658318522046072989733356091238431628947039297986409647342954211664077366344443410379993447008317049714383634827235746239624015374915143768106507650235661437923130804873889943965934020278500388777719020108216781614899589149711051745230745102275969314950497324838449236296482539186359670089079019349468936971912161304977781923726227869375453693373522107111543603400723119920555967648736842447535703066336092697478791341706897487439558076191508946310990329782111334595561444396982838212228713803445831303746506830583503097615259002758529991927446327823775443709010030561346103912418544855927336519083811425799586063886743160112829813827095298410112530327011474609562194909522445825020509451789049586029371253533790223537525432704857749926008008247025560073951020757736605730509382467951439460313307836150188340046996050315941990395425193336615040676200022424781438396278072959692537783907628326236341280120942964567372068264095058863238722930692301383800529713429011516823692110373793507516610463304912515792542088500848530239523520612660245145419440643930569951221658802244987023717651958794761167043811973169267535854207303632383397254759227798656819690719069792405218461784132698760120803222509769175482699513380377788169105489171087390666537344458258176155764703786094414861650237463821620587300056001393617345507812584974463988846156738675424378747061212943543631582440542515776813414287939306767323024317946630384981131962191014821147160374936340572954005101904555737697156902305951482261410129580393689245714655668590811617936899571270509786214977127426392822717069481294911993444724843038005464861541259549778216103789546237050387693479778505718687731727832950431404295751224745195459730181484499535218027999780473962824835973381519732594829092645177495025474072755514899618003513686586241687890264869804292277739206229554996038726472506999155319620381561901639122750325023973582248893639070887878215009530936961603002199191489979581523430909872269932676919553352204571508589080390685150943317203783091395415977987564028581648463113163901515916446755704097258310754129456576968100924258105588191419413003876944204257776634158608570205407876834321942490565389750696513070730921763049180504696704850321256681986558262185718022784835313839994523203554767723376096235668341167198745099985889712078090259837283878591569983894770445960890691691671252700486095279276578720769672613968258608575817455169522075582693601772987152743743136734355286827527951199600994050744717851407598448506016000757197755617562957667942103448827604778404994394073125028972010850139177800949929992889545992893195927477374998369187938702556520598131056674389108645525153522982025470520860669773975901050454036598479164787103727448569475082252251172975587067013561388506398378063895617168417904763171010175350630031101086803718723382798175662126586627919292925323192767791550475110998884961988413504659415783173274743845692867148929172362546077386801609913921372557409315600498099041779924956963554237707812476093896465147615335504143050106884110716058690686643067988498492306959045802373678922413298827373463011606363824684989613120230822826904337047106340144933251877563956489707451665621198249539648110133038741182092486350794319365470977831587722509706019251162901050174500103472182610844684339688013096444120544539027862410138050260656899204660906127150613192154033965352575575936687163977642012378079745389098088712798979281731814853759851337256717478686980038935686800563069650606027725060004980067205540935496875648615299036720748561039541110131549437910977876553648511529450652146084834371052272408988268608019207067323452522042844508205143236065198732922561908763850094657052196026726497993198052499075855281390883966969295371060571194706409459267332400809155231822576613907756628233808306305795713588758811828341252107061405191051509421887076642530424476682588906617104479610579036489610631285474147770455468574726011474110646199233097176715690748362171182417653670197369204809628846705520275626340060318907989812884624139303630561781695296509785104004479029107225923727900521498692506818566447563718541112679042631617312585388537087563922013450220239604436981941418573894825103524078175379825052873898295756366061429790820765858608666214638366872758316943201777911335152117089273125606039314963169047641997949387907373078854642963581956792125916425121902091418339289162997060944329881368020089144885072728314584906685305752436433402282983264030931495753577222846786277333664388906624350787109916171048140021399604247806570293154217784315709268722320903832433291205510908007370875974360810458216872452067184763449603453964132874070658869682366350132178852825542524303755100236657685274416051607940790651484578954169659074698385643813043104327029375768046595987726455128571870929258073217447054012237945569410045360135752784222833007528264054210452144361666106546839157460849761472312475963556377016653049575325822190565537807805557101222429279938337701138698123670964002695268824225682382067710355036741043048883873962384744880301004332720115794863803774273376132992615777714282549521556999093240704088703679449871844458458196913941627114191983207434990327136732056076980215633559787498409313682206512179304446456354146265122035937982598016582785527856394776512575490306106638418242175670114580655782468818199085414043702301679537180840731979934246817762614205912022565525388642637465242202273384337023934148031521316323022278378961193754247976709428748974127205757150849475499768816145428337702163575909968398565455143282318886615270925113967048768196364968759565893707363400034902208026356651220390889688748936140379830898462124734736999186714217385239785813721431457809187889616917769045673112058842522359805309258993631787183674553075468873584818746807679315998643350568286759791932522832529209855593683304621069099647061831202624594244929024800297899127910110340655363689751219918378204534590657297294142688009615513746233928635055617586782513851128427080582780048791618124641705963468191042818542055795712038502243035105764060344041148405704948281258170876444062171453100343737259383332806936959268919908910366888144410032296958472392474994426792519964246634597302901387961250293780807579308936893542832596444198799681352513026379692232247895977589551880021413282997495078091559928798892661267015146657018278751820378035052683239329231661479799355645039907143250704564787715857360022745222664354287165324427129768562644790907785327708812678477927979244337450424575583022689491659500721820000397313314582924911322908555674293428462219995984923588255013706014734342494623607380828699288678498990361503215525620027003150469014966510993424749987699449203448943741581837637986513449285291889437973656615878451638516761719848456728470559287786079624126140268582196113981329996107402637912835006753491243190795944437963894697670071733917681711211622334049093451188925271919441925364990765180073279806830741955153855174001271187206523067084365442613264973994973382872285094242479107853771362477699768729805825714034486668600940936673275555390823366813858419154343936430057280067081826877039199277154809166098348335590046143148218352815181588760568571721329763278959910096103632869059228724974253902044911224473454537447133556437872029359594836189042911476553057866863890189835630294562063394577077204050088773596285780371123806308406088589463439816784574078211492164821305639988401331502129848084891778946285480740751734547466540193516991799928539825646158643770287655349818891010012730902756397652562647448895280554182760567525005043489395135768619952910961858112465342038990310792669785106603735244898120755071917506983684122610644874201849166020625076921881150081584903014374845967946757554420228749824464467607436403415826228279676723058124462458612497911562071393976751494727403764149759989604445524959065610062960050176922663675362277407641734728436671705109365264767634196001213349390885050541978066502660324897509602630652048428191024484470674746459286304221975310262300064422612150730992883481854531752092386901033189957450606376277264742511063514282291160327193382118876926760852619695150141449037564309114175037485458137242668998628641750063237917607048753353407341971931202803433679770224074894589407197754571419298889546705420305762164689500862943323963975427388261455454753242801417892712328965957656797616223655476276148080941576875319683639518775219283524850898064202301464263866822862180163772581075785203729006339728118144851653616129363497000377077416324724496131783431702145726418023933740241147142241613000463234348626524420706572033821688033548184125770855827862180093283154286101403668126765851020989922230995401600274903831550203987723725668990790757648624205930927986498903491243457817363974696561914728342470953378358245144540393555794606397162221067521274841133762108630222168542981838244586268452737159616184698257715809436123680715347460191745564749778525783720661545794818688941146991803404008085952438224489597665458497765718668116162477184847429018648427706664836236209021930926226295185993547060891691321943523035376515701980496509649639672896086744331890449475871663975140382643174120701380127723436724711135744818700253868356400206603114038546918637131107591113665128528626433144241472208450347273561737636646652214693818246236101758031973748339985241248672346332202339313364376693775602220780506242030361983725380476460149459066778323397899142796981151530651508414685249986002166958353726593226765134707613308439869029621595995505898874850391804855449098843919955918420182071703624791268661479798590973743994308332521941026194388745362265351614126712169989578562582504714086804958821938092357675967795749274065101062474074167529145558244369474377337945812749507684427363898728440579408372437431749950895688317552174028620901640467989861994559843666478282806692473989065034494942858384855869812963497978922912763646837077882010921620336758222032164648440388443642386279872827449990643406092666221805697291964193566782203360014958011607445137259742311027124069371243889825532719836586074410027580408401858067152395325660462382845254067151671559959333044779554131057524268858665670262467314435534361962048844154421552554268429679270084106939512264040132212820173990873552046519203770398203023438341148231579814194101442142015337431352242618327945103644536811562789494159524708719490509955545788963980451847995517407582307486411694208103408596254083110400004780045420992417481726476985091280535694459006769849947392919751351774967521541711796960610873551466685459393087679890311132419489193162063904584161179474661262971162846262877393874858565041465269029723523755795434612013254434073121894611052185506587356890882235148130565936410066143880396839700440584536914735160611953580715006444045339028461635891040411866222219035407568395129678074764717205694840818691049591023337047356656472051191115087112601814937750470146366758513374372257277040152997764160522280939680434695115401894277008564364551170169282883596503040953141682501931161194990928485553577545768897000319622509978822035396256967989828695812934784333471168528661633623170117782017819918872353908770936850403228369402143724871041230730601175891791651862136448755719981366425763768871752541605334814928199781683855754018435457142651814241829046792627637907386774108284413926556754408106329315734273747661706278352629293239673102800464984920533491878752282075349418076214097162761485170197110724393145422012542387693885681777901451920165330187155721498952047878829627522436233429797471667998020445681468981993850590165334770090867017225366259805431879958374410822643645889435243134125236244129521576876286657975069878897586313314593600168243135225733202653130002090819567462631911982782680435953213844699341788584707007517214638445843934101558566115508676462825292508500385122160642373101985419416825431151125476853484398381111043054950151798785676980364105222709783770368178855032385207960028836452707593817373724730334481669306012687218750904022922161199795584858451920091133687845345512341440973279014484521440216119634196155856400154576144243282314801254813947582261049761950595820742356919400549733402921669816929558274674913508918547284118425804846649974507052689043246836181764672625759624888737126857126824281004128984987127890582300199402820098147812595688571887116218229109438403191663813661245153613096101462608023122921277320770799892929797524612643090310756685458110974893637506275680939672419712005049378250171316546166816464561083614577124345424493858329214388118974012981849515353588062658486210629085848306618262596132095670807169013933737031533036808590145214359046900719534861599755447705798477633856684254546268899697618032141446962379440171933602142542079882518971235170072622488483241283427575684552920743502933825853853591814731558995703047356859960495184674893787466978029000634632234117650070338962823190232861743705738173691326351489905866066928526762842522558226067464691001219036496891630126251980184277037154515506886498818524318339118432524004652316577095004447830528790470144850207041159927494986392022179423699033029667143031707284488776594361858880280266825898824498134169266294099530275845969507062634339648149371846771797458605709409278405723110423845110302390215543534278431541510060784494411723946304336308342535683951664987037415633553314313632518605111091267405821540088994642203350241294567249144662789056586404853331772944010450419966279705557512634131853938691149638414958823435764417354213252853239042298158214270435951084091236878531309737443444469714478590432149140627681621768662735497784920895847322140811093830008503751575384055611787565613536968733436832758336648185788330442247336248731073969524651561397686777055627788740608420478333641184905847109080700588165964231225748411009320462332290442525808729085648984993096417051074333353380903885625182198854680615812092163226330490143326268687311819901633386034754709567501160913026537163174654441171255656156253704722479702077367545176088520072631990601179549306232294969504400272662090724202834434625982306529097082242436629929251909286671684995057736005060071095467487302362718925995906653723964059023910316622823228802993046841684136534988503844515538294522229363409702517132706114598328171864630977750141247479238070100058265039894143273331781191372600315261878401833170204871404744225270657984468275452284327434542909960781965558299446436562723154742337001363689831144871813520417255204815294203919880027158244845776691000599706849827836588278451138239131997309828916735554372185160020641754619181627812048502130054258226777060469564678526701188429869432142491154713887703442405553877708704095570566350126505158531070925319079002351164431104940483305837673195141670815697706729190551544841923589105493715124125189810342369256160207939304525588908980599901276155703353593244009709173809293869258052579100037384347236310578214021934171934840102692216524218355624499135319094673057071316094407269330941245591474067193029903678842564436327397025715791241135248262792423430626869479102667155771037277471056146695224656122438282657911236024281955389763780592547055279660974182568699846656277431617429044330373318613993766274237219336968450206346402573201742900486726057064379714797680719078820042218844289324441265980372048454215773052128817926334811779190684864327141341456953875745212854183505861598203002942802308725129647630493033961283601822652638270154754966213799025277827017706529932134784186000105053419947592134798662624666904419074545381288042634577087075253413347751710904492567659554525628003149215948715641404478032549692718516510634415763704653531066300851669207232385387385722409988836631755614856765558732122361513548352436214901849493072525228155048409252783370316768476195908908904714996647060934333523033614367962049592317324890931711116201506910746313358431909656972085795915452150743806443321750499852224031764963828288748233958717329086178182057367830667110810152539310038356671673561235737222309858011194588040487985454694452222074145012697461093785482394123128277196038672373210580181673173157843852200353915756616244765031602439089117757482514088923068760269339400055138048015961419322488699861987453481946037596538033302946380855677002792587043330451041444341573451658167477411858643132730975280322703612030859445138792536647249232452531873652239568744210560836811414766619880133542604482308775365907511965993604201167058556802392491632893612304755683045628892963033515566601177248225609408778158856542226923703345610980081437045296521983141090156772386380292222581142970140541575580661027044330626846050931126425245226622984887007603590323623064879657672304373141838126033403111462471550095536743984889461649167574601663290122156653109581828083296887946921052163637804459201788355923391793730112218176087026709667345347161693720444456382522166074906824849351943964198473666581730678246055935902781382452590810823322895613520487699177144708923219400875798726780445857748331341105198219913068314297610910401385298700946896293232870207834601737851626780411238607556554488894916120445952459092180339487387128258501772766598026868896074488347325924635539784665196294604312104514061830821510953158402760898854608765420404420983475115776494430844624750482243251509307128055917308907903591828519021608680895012196290679108015099743771248977613509216709812936358948317404192952347179695662337754620290030954290391270350487960385153758258570310651967206398581704118295599054797722136995216052103417442974709855049815471942664592808730254279507955041129876837600167815193092627510685949497019450659425824621271958211983123863540011938185311287353349406058552327292330483034040185691477025729756858344876261490217096929480630119046632068611220193225490697896291363370725880173570766437317211105451780971362414505143350873798990145663231638782067399562201535948425550561891765363603983097500562025535312431717047380521899267343384383313689759087101561856642300401295566010193525040728271924419265935780921563766415662058448652657994987076117969854357729268943576031881370398764830409119996916925967944581342782849051091539386148615909911418440332771471242397431370397085365864680965192913912744067994055190479130008286604880720218121780154221649581219461636510924204682613383135706604244363758820570361278943464854686799027472579158179150612403311488655839922563875616312393954839059320583856827353417327471519514965768778851876340864469399241269143351511492839497547371801790212280557497122312320247942584511221010466023790619824482630804169449924794369176568521818840090813384765402298863160218734620663727081273032913037940428783972636764477928030454966162020619553901646554308733111810684271237517984287974550435844949905391100172479421556728118318934046717490837101724057143352212450473977217784285475840483408918747687541799153067622511899493091704725072093614656026488266450362617082641927759909533361374198108823377882387766679643863663620223300148757242701042926565062198111861589174364496004986317193378152905894290371015065079632679542520301677698985638700495493992036040369780952438061863215969813013521617633496432310824749654843104855498745037682546308472170561964568466493915773443714359700410608556948178763153002574570692688297165419717420277158534437259363794054891750130313100981665825672743342514503227506315483354685740934014902930476134662657464788716056325854361467506599067496980696962130384814804580621976538705060835047726873930032483412929603524428987794354393886504986789196663208957602153642903177829829629235765330759109927206953731210776224056669914330044959692853536205662319812155176705356174550166299758788860873294496951756612519268400088707594102009308997782711783670802478357631605585884578500643402415664518017928535848699087776025659523142982490437442828740441653721187790023107353050599498205095125502001449605584995272259308711016074688205139514102466514606599815761833206206914845907294431533999324147171915812052808809532165619000651800708404727265971975963525759276621948862193392582853322386791549112146762322847934313974810166393025873300524613653242558983854733182906059869601882272516660574665187964867548425506572445723500247303299162971358876087152477513390274068585250712537276377443411915839927129909701542729712566184971121023723532297112676676397769463499108837313356681654457638041486531813140822517196688110343201578079960392054488096181739564085085469210806488506560565215834275251401590971874992845645799675274875375848946268824473343575727891045341413240110498646912686782179764842264440679109922831607731275496657017322958329889927762333965332046785765617101134442977332528568802708168935566377680253877344516926408715231237602666655736981318036013540757457422882589059909877104135769258489984396822301900522068162969644544915503930730891985708555090731084290990030931827012891165988832410995117267964931666881481396277061225958203850029847098684765269602340272803843046841317480726404984409965400774539250150351833767737226724457838279574339041153913025946182488418266792659820501727583075470136132873534557782810338149935770578929196159675524742962300612390162820461888791741828156753095203099219596499048932911314121736602323588622973221820208692568206023030421904201604444036886889362552359216323967772397444331699375014375940110379815216323298075319952329656499029303040223754518254132796753218119540132141511603168439876350964008824680243432795214691542140856327049855336307887077895295198577767100008244465293448468996504337097116905323910347068513780206027841217088804628802818957046777862081027293923463951045493479427816638586707800054635269291809743180354345837945310877963715627619402846669069435917907723434411692944080895935042389558574836862593872122554545335391761438161288669703090761340115276167487218020921175737459465831060217568288294056814114280404091336097649496533109586057995177243592831940890009077750681043766912628934891029934503685813307446730533800856095076853226305364830163044999924025298763817319936348719754143037014924856172085049811516668354539706971063025061589504634968183004333562323009979299493681094151854361800143280123770378484012169917467760150033508075467890656335968409344060372200122720695190935303785115698117181142527866714551393490863812004025321523554689395195882522925249560971688276267965782664035733613594521112480784493648129070267575026368578717158690655833638642396094604962232512616732442489212405267792683875329952320096878985791295908048727784509884391168153720292118640182967852508858206997482472370448782849623420710010712799851747135972395228982813524380177465634547548986460239469741789694553103790367978857679468613368329003187104914408340307873424517959590234134920976722286513822392280361408810137057732942149472263545823303793596920900777117481087132316744932707150266258492452116474324563781769360561708406197773098670066576285880344493318554448967175912611244095071591691259423469372142188345496276951147926534453427983485881427477341515194462488903203405499016935651132031083138078726491878123355541703577274689839956696922725765353203371303840040642925940529315450511497620233734156784934149388064985486264284587868203191925170882646920115238348852445526229032831766052848056311298316478943156303904129783228511893031570208590537865561520889783588000651690139325409753508766487283684064530668759544486724064848741369362006676632433563129100024761281342035108223338126218183146563488392880356411304433498463927547077822097438890110541790475952378285645046211279533032441383273345918101199401189336805187861073078624581758885672595677265131668158410097964270967653886553489648841227966872042860869904160315751484725471722243098011682172256234406277503509742687956917165663215961109536951573847270345123573144686034288266513510813871616158235633799402249318270808195130497545503281200959700317315624746690718124679597758868887672350265296345071354056756675680279513000551454368240465860766244628405686657550615489995238514565287484305476138362536553082022360306730890948104023105110515694161385593572530375769457103348061445099718397881287164757643629754245539647370257251743928166072836605371688204386315897491637536733295528854669805250829095292128397908158711230858957337946342412525160601338256672403307071047992272065364882030768714786824224168393895344759425219643915025792497200517920473787422808764297534011151453101599683371357640904994879996645422861705012529429958379335068333163589331913624063713985572340159547376076434422315576180362553359993868625876789780414618987715527517132890964610343758155910941607393385490474700068361228860761917584961163118384022460601873412116575692995463584531901991422281896972503962592820475231586493959088657371996160434300078164000465138047934102427758841713610961866686065015262720434978383305480520545983336975098326077222765270510866858269150121602976706940901275245926053462884506757516565537192869452492100385529365207803679171724094201871598206461447137131230939790961237256686025972399090514876139290346165126496444957912333073208491699132311754831438948008682505645367542779430904784830634807724034150781332994822080438519546066659634873398378313463939529184423465553682218812457510498050246475833271115775949297910582795825244837117516933355856557422864283599861875776543904273192737453408874992397392709413102829924645402543259054849937335688371688354389142889442368947403542979778312731148488049331955691422382257919739508488135007399496498301990815617665145580567045167007324288980283954460279658109232299756476330280619917495070267059210616053053874396135190492443920421811752714608121998510602745145955753077975415927916626317996074670055103800559973082830526314178170980054659030465705499290216643698202053624533929906941194382312993414271941205065301454018618025216121130967505760060868561510289059150822131873852662763718579138811882020631495501797013888960770263430032957059771455958111903656935696158221741978580709662717315174190325668946988207885670654990642025820457686956213878262593358736994423984641226739345479376105183263145517152251168560946591125148604638877674724414753607920585958069065048637104890262135002410870353943501082956260475376952255511629129423015429372071534717634984759804982749103533418814902711616005987046296950097730541286099244115243767995561008076487020422035721072741589109144929349662096830749825409511115561392429745907549469817404853632526057443196585148791713149918806346954847779792131278623694821957709718507323039944093421957472192223769579801214507552517657818424153278139883293467246383354087791722774426115892849785133050330721564708206523615737092088043764376503118039281173484942124068219010386160546732120796387644782531491807066861241013655427453123637752181757799822273530064412983007291937121347603365113637567814943749974936825736227240101231821598521999878314387919292514826651543467519123236148705128167574104195064906604611835580407466108430382914223642541508983150581231808613911431731876676688968088374103475791671408239315637402185653938678120874846108906749559466040865865747606603580858871903906374682212369814834824793013042956064998518627207915800783506077651780207079830967334427985251970038763972163118637292460377075039254884511980556834015943961876571820304102054863195592774332737983285375927255723054447039042063899304237723611867810874791101774740227735293175076120530633491179015311894034527547904001991774239741087920911204536129528975698407033575305133398406726024609991554105245028065328298813541199756480399722395018982288367144057554397277350610656725177791048320978041414449249185151718658025101058346582052500724188601361990013895738265322246473784991538895360246025151606390664196288535807500785156378945153400175224336954748522343980633000407828032862455721113767275291525900961226568680138886112392992633523038885554064539322518426175514637797608105878126587661864748849323467759242030219296405160421420658348724072881064122011557995893238054226759717034763847115524273917556626870545224686661032314004030590458349912299315680217458858133350295839428471691262962793932499476860084552930880526867585878113010794180005725476226249500136861237773796806881771539559520332440343137602744614922178068986714157559386117944765423304147046920149476398527018138197462251546924165956395345649908509219014108705465291900189354155049965917573702866807461849634704723363576579494953539276125916008590756462919584135307683165150230470550960304817073539945965371236675820802588477386027615834920593276214241976111710751587862931253202024522692065047370515720040174929035556708196744767959841299252347705986249737787273710508085069625851494259752569020141588119425224614050352028533082932184732989576708192671947822900254047150527006470369365049184634273339105949673163146157883961115912920672046709478600338473202612898480802724213997453290918181703213731493544688865101599944823310825626762315490413553436370002742032275090076775648947508293816452554642671307664517298015951570235545238875966551506377235438046302384824058224179377265588933121389912328450925831359344664901461203840413076025511134834560345343477364175394742530314062868255497173537082738622272004400367379494905534613008250640337440027759691628940959146324753716429295190071314109543361368514469461522024812775122481589127068603499401120679244070005428241960378776756052708902856280157688195048413460435717685636069525973477964091289498825706456174066532115007525164380971480421933817621014783892074901245064897579737629230037034384355039506490604637336694952511362659825650839412408983608564560374173557329003717364169049923520728089820896665737426219413427996178031583519382528750498849664289616827403115959364646537285202310627361603853293067379215117673973443604022588765376167815152137409815936394246585283212156918775548958958122066936332591290375904300417421947148726336260945279996523571741516110136120005744468297500068550184243152730234226194472009233978533317694002512884803860628630666894844400502119393259672398715330246093324695488693068313503561587303252947505866081586769393318921515157042989281025258988809652850653427014720834201610649051577413219833520564659515322441256985130975335074953145765731812249237201485578886215165645253279530433767315049831599325068666868415433244930399948322825710185454475409809682335490068902134103868490790882919857119057813050396458178612617308940822862649653138397005889736686317458051070229762550555601686368560137185552064035365896659188244751931676722973137033660503937444769843388174396647777562526363741602923597553883967896447620417216268165529003471843347894276132059337005205590947460722591950899940374191925231110269303781986182936818014409565952072208026268244611259048701546317218509361616779691904307562771332438389372655176414285801786521926345393666171906598644081396766133608596936876482298048952438990549664366851567452371370572363550495982990092909223627767198317809589095950827555863707403058271800319945728500055351826787242954604328710388790764903847778973674344772577116694620142652088113470284356416902342798879093114624318595744003632245102532421120568092731210212194226966741768844436788218972885045870471881744544125345446982574709974053960708850043709298540284239935690478526182402874674013699177389758550641722818043974249598696266877116662412718894801119356186936894670549158993284350244860626282471254090818529808058106253771599860053577740785493392751877487319957222421448794277459777844115568695832723776813319363066342355330336424777952293672105241151522169640416682041122776752474861202849819319631882220881486234519673231295182634422861984034712225493090809948883609560827500052009068474704227438104904296294472964036025259463704125242194850061900132686256451345528871425533873654817868002881872396114381590671627263501334346469925370753913503059501307217664308688750817872602139821707597783749202480110345504126347745446379620016872986138195385093807249904752497819264936469445156611152851583978525110291462913906835485616693136802492533522734085090311067021566904135912150622545164496045564837751294212856957665650624508586569783354582510857762561750938249781728221392700792675494488150691427055955103725546826334855301308511374914666665093528641562033844893375332224362244872461285390514428364035950217941437510588287830377652101868876081021862277536040072571757401606722064496751380307489731626173281291096959202026825013473215099067128617495125047587667457771612489369119939019758239203077720718999737673335979316684927489782742034716377244173574736618201766794170258845452129996570333890063040381543730485048958501902050699416357438225754682719644384508104636889644760795298975815824138847342457064058408893405388360097304025545142269076932022946173883423523447096216507124353863825536261634041988679956763561875471235571288655678862379286827475814559066171714140584640048723726452083350267979913957732197066804655280992820129991396350518405363125134779450361633475537594661226035726111027370987348244026289021629233688718901716722948457781159938097232217968350021784651937810132258451051093053851098960743413590434538425865649662737189498951869918095305137190954323840670877854765764552650033656290525929575789168577906531569741356378418236905921166956148825407853884206743149234217896446540436359750183661251513340883682420281277825330707261507240594928541687889907312418910654291939691358701037204501083525875813022579365951729200792060761550896502627686498597364010099448010870936464517309604656587926207397239524502973298016038098448792962502267282633071227077907649312437548166278735654377435409908909263410403488199508959243220895652045528211854112705867967931378607439160434090204636756639726092300832287887454376058090216332950630947430624519303727711798911236387790065469460143332127589685196834320850685566860996510160312054384234222464604322984692966533673649939517126539379760860914855865843609455661745671018958266809384503445786099174349531624568194720992797540829219973127755680797167397499239303519733139646436864021401230403528336065878141285583307283406095351226494440753720908066411291398540498135705241553089787276042395315765191949317438264388206161978759132546815016021866208785368236157156084555385218987503731480253697543486167814567093928627912498159261904150252751075388761788591307808114029201121882290997882541540080765640663754295476593465203473525231866653981050651159237134331054021183355029704861438864955079611434581218896018730823105805923143607259386363970567852165988181640740461671113652689882560946809087135861374644437659988532859985973259194834387145337679667164870601784192494312903696422653541602603129946341130123235200359624079264582357788004503951350752659802043332469872585921400359333427020063871257660076534835507768189983075879994872040156067721005695570835421961947878883850268709917230786525588840267660170983874477788766761133861870590527367673885440479498877318450276577884620585356933412032556448573900290920898973495520056858095945569630080921405451868456370016167697315994280488025884443317847741531009213336792440838677129026432117941636763766584010101131926784245775586386387941426169073219890281496773133003364485083583793324987673531161730428430074636605319051317993213846478568523069910838877751710203661140696940343682989730495425377891723723116633952665184023347004496462984003485253875241563864051489917666703719245140532520943756500272074409382456655083815238271805813445975614535886155671494240583871708274048449608725946076292435913223512606511956054727337316133717691902421523728435670578956016390694883043886699980106517688053678578409059628151357666868922204454572429165581796696052091027513037368607150025685460279064799831729825547839081603298397465658770398608349480028336920512301568263994045710843539359938841131503700781925605184325756738907101424023382943109952223500937333022967712805927048365672761528299075401587533366574920656738124211906531851330555519557960619455576345096219363065452983203261151992509959937300901210545046993597552122872469620089309990030598731443286616338942649816153454637882738798295830629524396078509230570891249767549764293629676743161577403723766548125022006977836210302535294816946134508865194276255452387100304558427726287148174331182729941746226663492838729289065268085298177467495895965630109421532561828851177311849386258726749854455379605499242562957721225968899871279769698073391053571039078316111167317669659095552112234433893761800783530084043249803819700306574167185547010010538970701674130937397193185449230957073608842043464867931050967452867309698254124455244128830301093931631169164355325777248293402412771202509736766661133117691827237447218774380918940649150544330323618861287922272361148290794221324757126663986411510012322765794981433261752987805617268581872285592531480530033931507385641687730258264239000540546015505265358470461353831375360499819851999481833031572314988086026039629626999550799359560251582324068306886316451208456928747562243825448668703081711461314165060181485599501797051528460737542078802973649452683650747841097656378861642857652377219476149560191240866972661842868977501942811100108251241931302040867885756014220093751850843159077886525183709836542499613583421953871123693098782283533146448992145909332384246719359406705962697660026741070675874506666922623841168899955175643090507940615926206144026311164607380069612958286555411197938304449187779552292470157072299964189023905720860234186668460802619535445973833026507329218708706827531032735308013426204362310141481847187116191884842344488128835498839201212124830123207863236167960502926169455384243909020177736604252385952267751656430905386076559285235205515878922854889737378069243806540046326870793216321942113019143661744881719595815156771052593242633416275641435505300967970276823961858988327141753299984732831219544491236167142181818360233947176572403233849682510084436726482196346485164895077758752798312853966166839368703479489369564973132051239599515867323373560150402260539128667991527161756121221534523080783462911032601812575710485228448213640621429236992835006687088280316004965237790066629237551493830911573959127561974093185228491509150891711536180807303693678320422507005123182342354431952175344484833327972766239366939096312764403712166169729901433537741149949313444481546669292491796538367293504360216638277099403809925712823479318724084034862621823835335740409836300448019884978481783554557091476415377687758868042777091695112185017054601282180039711703888964836314830386548736605099823353194989134984265490345403363938898413622258888159971301224980342906850619564619540948244848887690439586863345319869586101254396766041683440923050241525036847086427863101791041799887266603471720360861029843401457894014937494684704063201484838257638453619894322152562661087142624015539495405742187851974866656555775696081585723427990212634792230041834880840300608140689438748006529219964720183693121830192891866108890880329416699947691316857884657300992356592136508435015938552472051012741959392475985899190299320562673907465839051620328876091759358009203648240283424602538965959350564746148021376683811828786976985465180368694984405887963074244966492529985052504475096711482583907796479456289774727117378462531518854722062989601945297852396485140792723810811514858155527100148364465675998806074891606893461153447568554351418202817207082903940639706548844148075824372755804574031114455530847228323015257652814070606562092216142096034295327925394809940827869358658715041953703100635756268878315835943048702255014623283289887754884252283752848356185434089952998912019659089398905074782018853167876116058822477445866763215023472341898553870786846785326712348010405068974643315053086430071817367046515864638335795106043082085025494655838380751581154370233110478074984655868001682292186273615883210490987621843098658320219638739932361780118421218733927393708337732874929621872209466923498353424562858722265339685622889482504866780485375881544282016980562479589691007790341940789877667013411463352954575549370854125005276572108908298364564558915627611191269999920750872132830050620366189429648036881689323745995013173425090956391904976915774713841777750288845766153300623802780625997684251614136194730007529188419010322378464858120083625990164153911065982920395080606312920916634708059719060086754869000255445216974804089104986561404540673582260809774866796320867371146723999296588038627269998251845455381642205023460677881024151542835844594031196637925232689698101556882674736977102231091585041791786524371930923504657128783124978360872694067065026856678109668133278123341800364640301265050255041276776412882182376117409203543651507061511318522439446231623752490949390687669867446846105868490629380769587572030902177598226451949021283587282665024247506246034883407748371517542135763162924635535418715212238293399358118050979038650328119696639649998054745928619415006353570879798792343754524746136420529514339583151988195644377369207961971397983227401842243418661710379582254769813506386083013187668581288594017207275804106621068348370470244522492391130572189866734181026968646745428335122249408164411938544850327753706396817823694695367528112469002225990923607475780959037167907754929523141994760949543958054439558438953303797341844375311135560243228702255145412043080125926905687148369686008644036970867340874782781770203645879538080852761436264352479014075387865934671839515943674114134783199173259135005214339531035997952143822614398157635914523802684241520895867748229938824517220269931098977806191710977125470707426090044358914988239680933990927506728139106020515523169432370730638377257571763140919076065505064909665069273702965659849860096343286331976599507582182774708893473796349896907860593677085155299823377092726086382898453497746279120527480013354343414866308730263089683249301208471436613016413823594370797578403764395532251012780892567271307901451250741118897897348069186404851833247446367871485419165340108458281717149031100020392529060915043703461907192262092144829313511611869121013411468609704715397426764553712210494173943181376107764938404452812788109816877081946888225242394625738682704153958705124127649039186133562223034846797775479165093333468574653920957804098973053851664496314531907651002378132224281576727502114212420703874835184341509676853994338138578373197849015114565773567899149125825464559595088397348903877086026308725765228608718955904674889309338272233224531945611464309676560457522620197547256449296248900327920375238477075200861541053921299495130585607095005514263343348707912301265126009927913671551725377255110577982347921365068235683137878941232047184131527794919632354449176017932934287435835591211761102801151390663126215003971563256480316068942393193479024112797864103548848559687476589722924439613604623689054821395526370835361971599429216486467941701979832608348282013630758784603679980580984960906741229210298833294262228547630476265090109783104218695791470355440449870209604136970744047654187546165680191425256127128538778079391368514087724349492336970620702796942529469195643866964689988173827813815870499654382862642642233976364446874448203874249187898633322970757067354217238599368258923665994124579738643657273892613567603033145902482694106934888698292364349309473675672091640255315810531226075146694675810849067787515112212052765850795438848509335506032540156002281368127384309554174400274934840250544090098538399037726058138704574863445923372928502633828021962746936140301700396640878824591433394466687793842937657417385644178102489898179457768158337148253440615821395684285385054427158681473326878169179793104412235976501357012841447358905203625287317584116634517417577968066367615038158129715165716379333290329436853799220105128518599798809247632422699868963742079618797431482292943614289122536375478845043694770465527123015387779335483284837344290310229246248348097899653758352869326115212167147831560391119756769861681639564096265716373945031335003549768792134734697917075628351258864447932614493895041514000023865965555190151211407613296229513241585341201857103299923012607681605278786787760362610089749720682147112854518085188127090605804221822494751377494965791448669316254690754591884798320028798616901911764685867845432072262314350287743468136478105806250822520981723945090210094025766906761318796180884903928813483252449618081217975191509902931361230427639638705714713801287229192380644998929651601056302327462223171604257481675990585205227248492939184030563663654708384561910306543366833495388168703586834746531440721302751800366522459498130988777016293588751752230308415831688443331443870520567572769512798699746947300305766454997160703991104440580724804101402314724633694612546429283651959100865891326112520116864860351263578885568718924775579407622673155958167561870293443324284529206932063771913972685307751835270855819349070391523375487000664231363567095089894280849874367278364769106243361813554510787979083777728251142459924786935642974396561417673263160436567306830306071643421855284137951765905722874951635718382434571287432947023347348697323877749670174261289564474322316939294778427185848504824201143323485014831948690564931713461920027865148583321420162064033140201475300381191756364420564510500120866164998455682583923317599281580643099378561567671155319746619819730535969928778280064458479439174370716257376387264386971166073722506434261988552173362569562540043239992941645366498968179163149196857921086339546376073800871205030680162277820777436415229988508616880804863423678099980279769873994554173673701949399495507416143077289070002856760710284465170343935238531865303244820287273818747666704385439329960576060170379831647056418294766820602506965607640521386570625112789016871908623939846379216863596346943806194845132100667213356648001261438923921133287507148125550068112961235229562591800085689572281028042939142662813239604449838365256227894240991739817977300991214053605358423162181906613294557969544245471311481602285467331841164260766218250040696880459666202363688198590653501221154893074115004409540933827895822612459811427107710741083702429752585621795856582299999988750889423774496687603091242754989230194039030633797753807354926453904548059402745239815192168784037422855435685233976851059804470777654367189113786625917425661076270878516929428425706456645377140607166375485839741360630013452245800723117498415532756721227353287839305303291701360591603599765479477943120791918923237220856733000412040959820326045191391923007263476251383348453998165561637116316895782635939131165077788263080127761544274090122069020029357450993066193274667382381917415866133600219364485960123260688553520806233812893302588878847761182221729369735913432776679848408981825656132161257262102667699958380798732840888215353967130708466020751095510413045120733338656671445036831592521134714487272086164740184095350639262926915503529354314197002916888987221595797295269054432253615031939234634899362295103732231618940869818765243140450894998874764335004877651821804450242496296531450497364607076250855199243718280861164888857564089496961550369792365736425538857492518705673300653110407673880343540368718835472108550645119618749649357583134109601275388644368568055254897309416351611593290004458053816535274537382739209079677092527495400437339548818752210728120911036603478105820570081774282118470222727013110290839878903538666157141397821726989600343675999639030210684633070103473341018396305003816302919344080373163618487421503470480954649032705212944092938378227799530192058967414975889269700919077094549826259175474732902899761948570594088557657521626674202826625903572589319640201063557904196255865710755575947255477615862477892967291045397812835185797996425672663099116543436812152011720182049278007134009866204482459275743494310181554439524639390182248718910149830351232261109609333070106799146256282593245383212904134472419509315574828896686536253716860080946495738043784116720677688842741768634341620021643776316760500714517837734466005033146543697669201859592875819372347937573120819329809402778479750142241569400298862802738657733595177777438646752512946487921437079734320944368418216975360295424368800040177906891282887423280276027839358482035198322470746799904013597031295011165144045814616170400371633957564898575735285475676654859090765457703829628401553368532173414823666671443852212160343759720950189084994077201592819793860146588815775312134891704074716580064654930299308776712738519929363699168252873898440565351230252522432032549745993026276347794920148046709388674241983053747837302597345393345204753400416045172718860702215007040655694562605487131685514626744595363558163104779473184865923590404887470851881653548491104042007255524185363804372421697986654258125510445366134689163864317260027082739698414239156793041312145107268551618453650512579082929176160287560418944633596017123355895194412724138903802050868860294836194372005986975111218898388077454990313807354797061890184888178633002570141640141818434226803238851907006186512873843669419277848632641320120868901794722797628013508001862663187033812666635719495335422030090207095818960139642400264782777287146953615727412742742307770530733631792475763670931474576814117143781996535063801095803663491724357837246056988351446378831053370124118694533675003827914220364784573183652206875813910421895168606397843205839424770843668515448919534214818208027459501412826529384053923912873813226993363462150279186141228399008504678240411512778228666853802842854402624536943068257643740034908854477236818936470343088647855720855165453404577968269253377465386866775485875160935663165982423240822283625955175479469705367583466088898383583855724561205680926908600290903866902069042230119578817905248315558582306547870200920674404772965166625178979897782118211298115986668802236816937824483480030398704558935055030088526031319248779920953543409690728600586341231931369206326759819775883245587175907887063347773868250161771332463927576904170164503655331030502467693602481312506322110410287809847705924233117020401057348801224800336112359411113975741820307725380568407730525462413376322692619068507567374544005359650722932671672085049023033838770529931750068179044134905764159602921527999028456273394646925576160315916223515668692089195750405745479057817555633435125147917566301443588882728055398522363117517639813158910388224105779302399241231377432067697958300355571250823243480024437397676513460415145321414985415050596911749789786477633694620179964549464997223707888174027025878842433145648768823094825748225562526721215789603440716600072526973630059976430765858811319244433434783445102569113017258127690784153987223428946604845145195846513282025195351222574158352428423318176351382679007451867465138294482958474017785734792962501085831690961166535038148494600839368419016014007743547050253623145655141370971033765890438133762221486094010888420926896861599276118884850932056400603430246663944511576348157066121250621164090711613984062001582226629800985494137310105571121471469929744160454854450224584461266509571828617155719718094987189254114691877005683971281106294793976354778540632962153758237327713244014745012723503472949878165355893158418336269010586691403887461108838057299271039575592688895529312330499914191313821244378952508173838889417907643469802158376450799180456761683938553416186635894622303327709074618098196450031236319217715541642682463322990326146966877555106206178820847748143423426460300491006866508862557733107826620365961567710631031811941446790427288501993583989834795382558175002317110750217951533592631922098590812308068669498562693135731677458661689954626696178000269076886598597694298927977345574818978869456923326653826681617184726359506469221704875715234066758567951829841342972130965572452339179375500061849655205249557159225282844222921256281088423441181341562658829621251159660284228426101713805409798165672931903201681639888505702526390681056630815278695039557193452010333955023743965954909390752824530375329482950744497340113107056678844487559150254308990429870180868176261084558847494584092880453865766325132115601200676466474537187487209071229331173924422259808878154951306393697651805663025764266759311819774449689767334097899872081393029064519870751664876240735576631106793224429821023819624694900891975097081340673395793508951834756389876754903332173546156678434395417660295250410559655128447915923493372523530452541660328036818137882195645017483509432319702829017253125444233411550466812963748669659270878753587851639300209963029942640892952367999071898518627533552965211974257067638483685968818610304784439703458062074859714172986030236939686476959095459781359436527776888449835570700372112477851685655242816777976966240666000824530340215487004113860378536895876093275399054559825787722661481533323780674151142600750567752490630416822173463021057968774201470439266900101484688770820768196689376404208789798329673697731551264811320342142001443659748280264028711221875462042025828942441476529463242333014267175393452844923888343625055946456374089094281033316013848020024179257064374556574199091839704019943810578362412852169035732897531563518450945170867432556385562699451370033553983346741518193662077805680594049799311427773205886280449725612586090550291366484838357376035402016097630231482038669406618862046775688898785529457623895305027169884058098391891120001615616921336756894531513613076115217470153610450993519218591812963999045052189863397532979827029496723450269266825598690625269270170115520473888739495164695143037432738514325873328956546626314056670174674218812475062787313616576352674712305687119786811852609974898780235915289798294386987567107877991945607252547802337119692607074016726782704481275724282621733865041402791542163240054419511217392911529945532814061256303324400969200972734431014100540969656891643040997284713434330696449101170091492260215574657113648305223341140167592766953492200197047250316601687075126221472761770581726256195509259759137752997980465972909490563335133563619366239469320194952214226715861199417985284548716714870688219954288828769884054041381901879291920916430923013703404946640182452682971031444770608189239574414375414695972601065596711149486308506524284206587624909754287616601585007350288265131318682937078681503295642468919712246824169521326260321706428578062586118214078896699886017782350097051841274178636525051290224070280364143165224013170060393637756360402980130100492681285363778586664784978741313148434576698302456362274375638223649970180579055360508826516835383909319653014555630287481974359981157374713712277555379575431370096405290403383570792846576188516031324931852353878318936092666623774535864239624100065810732681173652606830317450189078963029211995321584059201774281704395677467954132583989889337058742095650465613969982640741760670023927215178862361556770890339359334708829875834820563280256415072427702711690332070415248180595876618058696329494099515054550551223637849217095622831779742726307658598284722759663850069435896698056862678208285180866749564727185434457263694332944321525418835729993042924941936150706094740341035605166903730153372968305677908838348827200578126063201095400373333338300860937609325305370733589215493966902811619977921295736772045372768388067928381057455022124426088059176923641739846932069603718965082244807104524238244662704055946735859785740206267436241105225678116195239573121121846898621627795827057094430543889547212729368382170333489169850024270600142797787114347211016764333834857972964465670789225457341282910637415362272022778817766033914759653002605149989937765248354999942187153528141539884788289202260837636102703649371202546800064481129904196075319779893144945588513055811391509065641484600516403773995071374246778889643900336072190679590124426058029076685902152945360833020279491312666794211446048648210676998375327060266672436319568731449456169293531442570336469245721679455767958203777692203518976661595987264424137873987357804006397289051551041922618076013922654280744165784884997364959427165095895320252906585835707246157619943133429538706602654487088744034470164843863877037154320971613979138560466559564894612035981376322840203930368915862765986188016629391655677011334638850687694845300110322379545866738547916531303771173530318556508989001476685759700484083104302975065827192258217965829958497698620373709401124439441939524225816606093301164806046328945098819203283755074768852535479539497419566911208316140481967252807624375214939862773100496292769859343578459947140234872988105330343525168111743441735486550472292687777196259387398853340109545518153653281154248135077129637649946723117741712375374123420310237982474833323085526120065134078610451461098355780405286614664107307398139059502796044056500208662848104319767509005618620247310965532836263998235833915991519338698128457807177438060266140393471835008049801891840144091347618213380090085969474327980522870977472478348772484244102563821602802815040814689291938496556001739690885800658968274706419477604064085470974908961472639637966007417737834066015710745851560022681744604991613993718468769350943402527457642289939935809405193036118248226592442711285328491221668786210668259389474752887617002170013443580163167786554796294712276475792021393361525501599901938860770057623107069533443894823448822432387990284546120636053006783192693827723233931669334359725334373189545542184567428221086786276637986367475285154548106098071284658995764844220580274294466263308215425438035978587639500344373050298900128974723345747133922886317863650902867338730056607192255436095690856380131674734217356056716762040945422865134103543067002393143755821654967097332298118793756826277784268386901097903710998741627101946294202114686267576848375153509027907840131335683474775485232091525420059795701990235083452208993390065685379508494795193469184804568147939164785948504134947528521923070406849715808434317924823358660398757475822782826109355324427074537311928322509716748242578212229457265670935756458721722347695476000558661272040394918185208639763481459753199471379392853761101130658344490672516673111203939493475891755441696379642392965888258903553991389464117183585760118405601739619878255922506905808638603799778676531993472562721542366192426341437701237811135950075246799004037638352042211498361336900961669479618299776067406800381277352194072607133986775553377410513025009433202602842570235668428694656760856539206122698107815624989770479850957412866873732020256752605993483808510251230871925643131497920623457081903779767468449080610815213808979169547992401753249686691386763840141865492295654417211700257765007000701568356655936212023468960682683839099495164458531208524702539326697664480483607533239030078554283336396932037652549513747706287554944780675916429842924441352542806021199217032734825763443790587443131673075872129137751079144340366002118150667499394169339247657902826143424664758141300473718255550157950853316663651885877335650760518553787684572218268335829520380545169187791655337290893698539494064381319487027619201993253729500983900252918953267942804625163847596771842648708325997558087239494644314696319469856024126686049201475874389979664624267972437763752530675730573540790343281949395239199800940359284961603023994290530570173544122183981579011251573874068341926218637768727564192535332232722063668646217200371487645475740432169976378123458743758657091257623065719876214746378870842794776906739628370313944626596598208810960435816370242335968568204512338956985682919561679050591095082565771010408331430393612343236605567396904044207668938517608810469852004417706504180299992953572353048339226012783086304882644829073876345416306726603113849980017110608492093622150156450184099059745331376559306095335205790130963371428104297064905939835009693820115394178923381600133773259054475899704716201565060363754654722338600553405887098468493602259781746909393091029412563219627472902071342730992635207951192233553782909896995694903149263667960377986885775581542174917251204283966787017560235754025985404251401478712952492787761017044078532851654065374714504311668538117648616074385553606506067832280443825911376382667575794786797716344318626375425365106260968005024146883124442659013951596679239951834596150678166686311448665841442192420803985039157756475967172904778925745223080026794737129557859946214200620450018137762485790273395635936640288009083962548855395969168022564707254269102361144682488893435879457802067062023304546539328116045798575763399333815539235662178405414937119783308445505797790185510717168582665095812981503366065475788484482695846687553541103069527008928394324055856724705225247354228463084251325890613319130189649553403606419631100582238263523046778162971058354976089905116382591922720513412614924801057741509772570605526376747443088049849985716458459420837699377362274466251302075327336083491147357897208639783127516446717610861101934719628668011671966819297409091602733288922200689304835933273857768340830413987448653984905674049483283772374405303102542097708581750359153659019206414930805510164042209880834327783391470730180225450773641898963658093477000816051094471045505676526568350599136072962008163972961986757427943783957352607269935226147950174611222006202536691112982329468641516664313544623461722926484814915629177918414852205087687678264374114649029055513660578268194834132566261373694905879629385079215944240111688502681687156576439478631116543007024811894953359092542927387294344471906191153817740411147199220815364519533876781733519747690413591728937594636207300101549785777665342719873918871804890428361536650393418134837776330085113805420746165979126087929494229860141987296828803142809072622343231371121761833046381106655780617042447690240694893050422946079132319427943435975327640593231488313124655537054046828415637959063452244485375808937422373315844644640855334776549660328880524964847812964220165157750643352464225744356563170229585188462495091841245141590171021171238738113380874788294141027438339273770807324525334302272786320227301500623952244034762006935318170564040983876607745843037064754834043055594025344340619221075548154288278937427457643268256656239866692754601795875791336559199987649082299531539631612011603168265870010661719246926897596457502178125671994492907801503030161119342754977744098232289923360882835208540471135186727158786270694058113168990222395061786716785496096773197880777824669349599036967598643370174818834990142806051877409678194694968070804924020113555127928882856749181001892202443882952883799382322968410123503510768618930205789305167544567988262112301493031054564727010598753239677270094225068323877550666513241564833925960224617445576587134013621767319510639131571916752871279775378866408825559013583256342079713008344498190701170402519381858690022604499316536087793115302279238517600331004677459955580573884834358227060280802068323631154680297437891182268798276651782598878915536366890670993600376598539660830422158594960696622977040720962506010455214244818420038634230145159634653722650073530150801234709767000057585958150428620503063378356943879367791093331331580034688989708880900386084349778850864700770172297016978282149741671092444249321691572619315847550417461656778269553152838463704382853941497889222357272643598936262438843104892704367013077780113878296550542819208827634783048953882041203693306282677163734590290375202651955453300122736957328490334007448048531314318503802288707528254498898881409843421275958400476141225467730074252739852614182764658245872174576944207021747372904352214291736074898582478674749292303338611097787072933180859136162218603575218785516912601640727124393415665674221426376685151035218473106892314584133087831692162302647819244574492403085430819185318936154967322835739455344262067547167008100800369150201585042220057009093271099285106679855867231217758478356675401773994270441317665606100425208721409604197066193968370603198189889364839122924121224051207860293549332366120965807086650157139346749958440693978431709759367722825512377942827561496437276225714665727939022900479202187687780668886508304255950953845867357845509998467529362279417243025170244859382187145722962462551316929119299831627645881377212090120001945328683109615433162208679658729554488398028439326486037410916917934819493166065255979072865024672456948798730452325871802950012792476004374179652949354799013977729727786655557201305705966064231229505871310597504828638905561957013247122317487548779697254136532916683071135181116898244250166554211734410301186655326966385066397373040396467228892819794466782608895470262038343707197114968057272724342209012431534948108059574464828157536562188462042520068664540916771472136165636034675819488601781963970648394381362103583128418898836246914778542017073387078776803554247598431541205710529734735236319649928190347186370147304927875764635325491921751026885766944307100310530180092958197335019104402228498658749230648522687198147474179374443297908491958462737029777233793089363420526096576419219802581844246068029326494764924252838735922954051511565591771727551286591206298454587971563875263269821053218684800916059899400290689971872045862352146972432687069851445596999772183492518780948826250545667526728106292945905905931683838798388533673585454543126772709857811886021623954767140126173108185449517326082488870681006258139749733111606087655004825875215549139448534292951173045158704507417158382850000080202769529476618493314868528145110439884312678159736856766754854525293811094154372826755257757126790147806083354443479725578713953751171664515347964531545478266992311993579343134507805540130244355133377737566971400337716353407483507418030895677650783282440169158810453939713388340954296566043763558126375843519509495995219780174525169908025351104904978731109151472029517030659310039202282183379844400305784811860359206553067240803301853580997080591582467793768511704077425893948358415180854897917616826920122849279295054451221094613548778760233306425515026479552067762123211007515219052738509663775000443928498423507685708540936346929582421666914325113032802528669938286681182992451174016021189849015802188264318381343338467335814660009074133406898491729000675774872786196255284213214170020632338474391951492673395103483516808353740563917880473553228133279388260582090173558502028991177269527346740280926420255116634681547669852794220354084070257319281290994783451725874280717024589002909527209669708764251230794216467498814484284054500393169307022461104894828200494555557346999305810057285589509146099044249272501044584908180746327695017568413359257580045569388882535780486584719818896732241750250552084414078338224196854358859220359330499081099039601285125078310028482603365659914287351765524479456497468948589446860289929634918292281267188489485700052845077067249314478899172714596957707620867289298692901392947940958433376392629806529988442592789238200476832915142977714354903186482920455289052222686934308123089705436903136631173636809943493862946900064739092257645662246137929739430110701468780033595741564606422985503313763043066533559890242800249642241645776131441978390251762732218414022524429882488539546867034053776732453330871784146204936567837564609029809159421557323291493159163638742196285376026999362969255780042565250890107758112784959239463027339554478605534862959686471205273153858950965418138275464801226867764507328158017797950131272584390751425200013752867962809718103469945031248639868883223096327505421357343181964973181489338860650954518398147001606378765596694748679468014057486970677155747116277127167511877188545766383540844108864542840076987634951610263506270292622898769289598152072404157762947530150790738676684361074792069144328824594127433066464558672533083321131347010829714888474936006938430766572432170444987217744852918712731585274792498601582391247762743969730215876812913202949570471245465057487479526129739318271078233677736647730311124403749383163340447428356190447934808120391285100216898565832360092789990090786057028675021470865637468005853316321181003631965139412888735957766925380392885173427910688191395611298966632351078916101395804296387185827510690579981520727296571821415562630351676198644867061059344319348277664762104442010211840414703199354920555819428749231334202784188082073993793777543713066842904849047049746862303582821984385963381509663049230633395692490620613584634528480032604422909251767868025877631047979048984431697524566784176820162835053468801182876135333593508250944343756560008018440825604017390891360206410242048025307866911867248037870810069003329784753023208204387666776486474919559636795615773900785838005017094159173961516432228493224339422890264026636365022711084934211545295616930668659058314608584179201487996873271247803465715256641121342542299669545042570943042418687848426993469084711645242706194894977401479537996759778416603652165941791490728957066624362519696485099298656045853627466195034323801078380937992576759776178152173919605789723262356119004989972219238450122232979826383366905007841461902627684297328517763939508058149505355323201573699888624726447716417760065220755412086674820188860140362748741867040553734518513964410124696070212282557324799852747265800076918048955074512112950845612441126518170410088467595117156199469696925429035543870527153889130185312706412961039081971635026294200615636233291261542058469629768947634723536820446879134899881013339199591988770235803750890145181458229702640836946877720165367191375184691608956250223759764945462992102742040435349655733983706754740933373259492978111797796002185579128157561496691243667453545529029564549034263324038038821492281770335515271040599638860704540045925517641540776046628809014612187984074485638445591865485071020779374282052782887174721549181409078513548789144005642213988903996211843306586461735034092518845477372800843296377085598215472041376326343899640952826831225641565014864881453836218402745222784296234257933614276821043807156804389985653798165742048482196140567392841128883436735523996395185679594774333619179620465561760697669068802473760616719301058493752764675170839027750546979429758019703814177281468045440413870058859869233582323143329730269501541608072414682173417852976108283520841818001168457743067045261375931483662236323991869075533940875743964993343640728687577736002357729228672201329080593997335578695249599682425960952111469374601289845418813761553814169054060179544631918422963603899393886678748835916844641940405759738375082621855993870242086563130178804392049871061720634827614991120545051313280669878664093138463932205000136955680983367681230972657900806739008144712570174690061734173697862129020347417751465377507984394540701130711378319959935328072646276703977805225462344748138562382067910858411997938280312972355542958846392259169517514454493137530128200422892046080286838935988200491046617476038473483286904518460297489789075870039474244725446704649247475388049738695537826562931238014045784123540855934095970710970310251988049885855200487048426643842335935331175863564878154202057466868460984323563892047507950238457085737381557214764331360332004247541324288687698765685873399342535938471522290200846017334387092114644760086254644339464114407521345222580977756821839757717867837330676345206157434665344398491830060919713836774905290634362081082189439455834003163462289881249000851709362227090431704577661587143915298512916197961331358650385707186134985728203370997487638798380586844210741910794048270708064527362103631993758555983201050806552889668524261252609842800938724531914854599871846156710403857913194946904105001659147701722456077868104203232316030704166769839969596101663352593537533980756025613322350142678074008618312322372004560849147136349015775070428837290106948628865304314601400230978035253410513440876662375668114542304656252722567352485959870309644297473595469753416117846688739810693137443980653577214342964294399319199234395752737869777810941258076439189213089706332667959103718120767323106571662373595645427652538427368121788640782822878566875240224732990117662620093217448430546426646928428828706509554672055164381120144187724793934883554759678195637040308084713001064832915457067968353988723141081847675633309205953602214350348292133020919786622093907109633882647136513141492728517090322908400541497537784614889934807831985583732046809011495221202490887619146964074599409055002239830593897866820731579594052588549183145777603794558381680660671214227465316206393046640281914054306247124309729196089611398488621308313401373530960490045553548344324418637660980583197304844680182182977729854223434261931146123435357038558744537637256957200928150066052497256265607351814007551644466302303696286995729706939650751776032958354142056926876141119630868745255078704858997433203352062791181970749315441782694350213705378046707681138215078282288053195516516745583935884581556846531408920513154595259578945446026078224338197216207621568169262812945307359183582484123629881771268748519675069775827344007537961599718465580152528332793547649289700580752124097409203160079361236998831389394067609640382620571297228459109089038363274696058608685142047483537751334190987487429002872845772450821238221639787464924490184006303971193047635908539791496322061520871318747278688051435408383564656800774038920396948352971218546869920740561523935103701476717451716761717783154855444587413239273081101294558965245917367218356813151929789100029009315451430433508382438962677742327960628343887461795621457972215735167651970907565250947971387733394922085709375266246465170046435078018865938526479083088603253269632486846830004068589376723815388734947081932519109303353481358810898283578266956409928084999330265646150907704745570100125619836944926795393262078754172077384013346427464699248564386269511060546680281861263676237759075811283933797941323441629622182691529769138267354490316104031693436333051365045948338146232030685052178656784593133924081847482267709394252222163850081918230633931393807171124610460053708379544454616968425389247572843209008253333883379694311159371733196174094467105150031448632322409961612412223304564048069012705402179451165185072522674663236178426440139969335465459156385157550852008062641830681663919681321132728111718439480069613252714831681927128966446317063689796350610229878844374402025357311851741560773901825685244100133713981911078107507547626763067414674764177232290394055334074951897915849315302600510602491073006917968977800645763566621841334462732087026010045333299406307373763320534744070169706282090481368236466688240966625664020873569296496924066153423442778789867552659985075909390544739441826177347454167743601829081389301975638258585717175790762094157203494626862344116215830460276040310577378416684606568856122259788134493262795495058917008223831499621334797556903087005047198199392510607212242287758762401384937245311841090492672972353971926104783301572014635486487723501085258426084674292660716367092581253744547815149089250730278220546301576392168519742834067176085746447211753439690544884900527518959177046977798895745301709311834906022994473789331780434646653700983451916340280555439378758624794598164210493111159046905014377966737750626447906253307103409906557689433907636221699418957273611833294660595811518748410466187400207969549790478557713355320827602139225379907296617279249773323829132555281875581043999092104616735937905724621485407812988701504553937927949282858538952421175553435080160646474770568048999430886241021446673135578099292327002639546520818292723171064691724088577166563336086911211878920580882584629482017911360305488080374924915856600174632276479661073341018484550989174083880578817609011534302091128819286643733042163965099487577276471222082775999648489298235011367034446382887652344481296404950795541800078559321932590745384278364585648660761332560568397360518715135195839122859562313144843901574853519640183064894235238113607428740852942858511089936408635188030253355907579014530602615748012224813274789456916343373840168475453978261660601698544916751464795385022828638163325727239172678831226319712347525860444156384103013160254775158617569959053296812923753847142855501431107825125148988306850579213388569864550667336746336851964514931681522703709773619130352062057084306640379770968994686885972600618212629156947886685041659050976523495518565935504289788909324996467775743443379263342753442691442280327835003148482831201652711294418011324453666110434053990881213594644812736490875676567560203917564123392580170836870330288665066717238538785647689452832531472576204102130468565428971925616495839802700236006105080309559528664642127447277787667343257421260475818545557850835925282664583682325217806189319593784262605263061701892677143323753524456216427595134602497027335697223862360185037201309645197987544457124638116532437042687091061113911619296838501281163403514328634683087737374426670500949403884527835621261688926825869583296485338359859836429753597619184658553053236969967583499352728151903727104687603103771274142326804346918201173896864871607613723621018248604308994582447281578944723444285848115416495666185212885224070393522958002321136883438047642312610026749795621313618894142611111513473568705584115212679527626854308703921846362624090365867995468767680356211436804169258582049072930319370791766419720160206232369582513118372632674775248298001716874917479244173569882908178492102834486748316960581288150577418839804821151702153748707289522706091768816918188293171983654032254404939207771695374231006002914222234779450046675290130385547765919518333961827682574531563012857685853574208810865157126790759427332069822616637893805713020532559709831367291521149447707237043916945517083787968884197417640036886436081228873680800820817193238398790038818465266893457653250926545338807717849498656413212063044133432526170090787057727632484855147562393521678519509211894730464953813678263472887354628992510798057156274714132227488252984752930218303882095866866468501928636300921225292628535436672815936093286930056050441776691155633856551664458817162774779373912377108776889886309450624593605711529558221325556784723459150514523455478567693639703271440097632516246919347751176305773768344999624442074163865467241071721262046398809732478142098205697051475196835563824284352077019975744913715608823418852169511144754587508590302990132410237854947989988029534970012093146780827880432869020824509157031513092227265335065463100597798234448532740899110133899672766668486835936244718726248756412976096946196295377521799477401842969666797595962688512425374703808101863382081908897480906009037728404196443309015228390028228283955144077011615930800648963111841021758367214495761130930917949452167032098078014335849533908661766733824525528394049912348846827063788737567046336275651515877490173252943271624683367258072372955933692791489129840123087702521819015494876420720798177274102383747119134537307782616464351309778729439083984599029830492851338003278640572016857743899505476955187369787828400691078192841548998939392288357215222850893003638778043916864457977251119795865389644549001118352760573287493129871287094815434418079899390833471922929954253317927418066991616471821641679407849720721560311656183748697700659267194892819956378373929548446639194053589239216516917949379928074075938422887409815754181160284699140290059996435482484150454125008812157970604251397273664190165969045259165730672799181513418429156398423696280143190045954837428041665073628091221825853006796574373437511682072990304259722400064277185092293818452636008804054932158799938233677560921757508210808565139701811348412308325681351993018382004756323741498459506985704424946658819441647664315979038694275451887714364083380276229471696074414029312211689591574652566731547293365290547399135964359038407949733597399871407961116974323437932899972377073189366094973475987151535959782871381435466018480838191381800804867680243487522622342778274850998229049582472134483994503174031758422479417078636641028386034405691837793996446655032270673717152436955676068222867654123019139847373394522816158531206862411398330131439036263862231192287780344879686667960911155805640713798056934526993955786994222065375749988539588542856442123720403849667133730138274918431339193316965599304099929587600844834080937935043495220733878655131535098625162704851866143525958765645309499551933000402020017065002907923686935137873205030562898143695210651536349147516716446355627755123259889059410999452526683470043100052659082142285014499277505974161059184486843846873331964130481094486164548821523183679723521458406944255991025856197685853044289577662656754832663484022481152040058628786590474711446505465661310822299098949018900798919933742079706077892581685850675364188014850038593745463333577961239787841018489407746779002448125458863666112295001254327162712509956983424497292879753500795534879328019828877686798844024015406521242574062673861554441668453663768639951192794215638373152639735814982101737428519523641968385404063631388572278030956517334301533759333423072560256284860504976900682185290967809691675154137370761506139099078773113632746326518859260929412505801948810958198322759979098096337108615747749588752986753851980513649131734448343368666973620997120560936937872710201124945117019275497919962567449661591148214767418013673373621346955915527195780748165668649322909543659869987798589977563714466702626126502482574028623595459567420311695772109329695247904087500842698313047684504760868760296321673048699944117133202531370958520419959637662800376909249762096145426020509238109668227362230875983899537354248878796563815371537693045775864080087686891011916576504158323320829483253395799564799329976813609432539193222213718464761045354850694146824197095613869094377645073586048604712108622206536805309708401345331257238159258967073136846349161153454451526779717299131134912479579214966494373356615567712395920388833022134500482556285349587056133522829150727062399593604465555808572416438679165585214015343911260318893123032205968570126392730947444756158298465904420633679791424100762200951812468166266514938254670430668852192969882724707398219576970562481297867744630208453973305748070843491619011381721473212816845735522632293866056117269310630668604018228140900313020971217993655845365384414890678322864802361229718447217466588201262706082574764924948926541233983454590367260316508923388258261871928974987463038041901823506727968407547398786780827013227216779621550365286702693219093720003730637531349614621209664749967393362798416938485802685158565236977431935197604143829415188017605824234230390110752345776055351325438478965372627719634454133196075952941382269476896418311525891529481883240739200841009701351935065670666410614240656952456686800641569345515193013723695856086051343888889689086439668905348643252495250234688411910675370832476858896066542603726844249595502018896592728388965247685599048090663540205228804755704633210262029111130203578258241444397797680073536799681359443213567469238259348779961908199446111173142214503142304429149830356350703692282464476125534043868739858940822477816476789964991660256046029630717826148228019974187139664463725191741139360760229359500476501666681416481156042066753827288362421001852742133760233785034171678713299232346213079661918251157546740176071868045911770529101538482717711029132979913408182833883045073337128270091355204399395162039445683974889827706010966781898349492805834899391042446945225093180275212042076314911075186887509243095233177799587610348828806918985343730244636019210104960272638393451308681004626267815118604414677158609282954627745869731684360688728260800880195683401587656234110915626227183324047472857870237469656326071248163040311211758767038359749728474263463884247546051888453510326028490084719208841682074420100450310836767982181758104940549701115266124351250638518836889261242283192426442641787018724848434500578684100644402630751766442303801571471421660675020177306156406286033199962446599177760087104127296557791635975971837690472663735511656048368633352108520027729796881514584135667061675850632341325751206258830401451732289737334689568212582221325734041766676609032992558878732872590799888418926529569798012793774128858066024121427825089697279506082426448705497168174289071169955282235827719200577685034866107968659367668723423353314149333148951832313980920266767020847916426060960593730235781320588661997701177925385631939179823471088271288581060706575591158552515397082904707467350938574013085021259980307747906860003530403388725203955629644816424248145163271771408280001399126409287334276143448444828386919062032874026543041334044064178232300486447123647019935012922207858255161844690512912587942630130624530215688874212642093158191037178987972761005254152250412357428030161534813721618810165449918686778664609631059846965413466207146457968490000852758752075873570346989824154250228758298906329460241435486835342117791883832385373512931370470689722463496296559568060039745465196795710386760939282454936028659008693853409820872524605925865472490994509234227444692128209701788400424108684376314394207678589399588834370958186631535065665769201830801351996687995470889088701037317568019045863407673426328283212170975003469360901449664437769339151352023021539607303158685445249694531813642151393194883364294912403590235330672881137094110694386140765419601103139832598209260544036569094895570733541606058174098281986986468772032185580282421047998959978944219094780106419413077966746062704105247818333035386132125891025967275805277006411627682313956747779657643866713778532877222442005431358900344825452246816721541642628721816816120220041122585557095735939718370022109158600760423956986550201139429692510908292358604456630659095167569991312645722933853132566799941012119124095410286662727146116986106492858896431663773081833902826979489931653099671860207640963182498393543542027669031306281661401196332136511758805071749960103634109703063253801719508744417565408188692886198957635463986385429150209418196780399585148380930230428424041313069839280803192951085241050287214674150346102336858460144375732872336312782931095671134576529530894602520568949114478626094533943984781254926738832565847563216082873756125815021870103449851576702909376183952982919353159644611627317786381242075050133211978790027327645092021447639460471298180725771922324396934665699067325686456990871333434079845698222676887285608729921270871038820628239484504683573413662206655107370828987781586589152719470666333449446643809995368187436407180863301752708355669755098649074364431894736085132601202690914567076572330888259784815651830207795934148696484770220781501330601758988488249788262452106955705016105621873955439082323066047254792798068043498269868065507083161835308269833568609881585225311040227597762509571730221748080971325835929659842056827936735580641018565092660083931687841417960756667869135388940210133538132419001121200473716942310557367980766769485131664290978837536359216316848955574796739102030513587193089753390628675984230550894535251542420116948175868742148301022595510977704426537076914955177737667381690234678084216211046564075228581191815840480197840734962562574928515409410128709378559963220788970332398566620815074115184338248860190018774909733083319589454647136004391641974189398890407063326174779092622900643381998505057871914775971450598675833860727301825117498745380449287530907893346350715270936833604900514612288664420383486002879598493848004607767659517794356139493008871946303353647112742219126732802001171921172976973084841339447821030838982068911021056896125632023374437978748031619176901817502801323015266830364934871751655835926291791107480381946294410652154653445912890779456174361866420834842726383553149586206965416497415859019632978441944954383423355101087297112054181645711883951148003135268708062030293674063002004270970939510068044344582763358574351344620684976132997271830008957147759955714757972100174104205842867236041756621727658892323841611356599674476192187599896086770002238932924711929976975583035257243761970165251592283333283625203064087236114294630361186997784434067697648589614181940155598623845972795579296519902842205520663626979714759831802672289373205882737534036836315462685150353022185527476964658037680411317545503302184922333090405098310184817966328539961494793571788734419205559190061607118974430642218640276199971931350699170800156295146125039141246577695851624314660355455267625932164948961481162288531931351295875746008720796994962102357744783880468056686164228411771363905521536922510071781165045793872204545448502310084258106845801534008574727285725147981216347956665673730818160625525792982733565402167778373852319289505659128101861606827587005051530254807057936586697294165102771557161616608483610752642131464260506812399714524035391587447709240893287917241529317689360835470341617527990956850700621101346103501866426753728140455088308920930705984145808826098739304941372151705611658886242905610399033091341693915066001570794456996845826686173953771055312508995667888520049058355549212452938452801383984514845521340697859186209411367370707771198591424289159957394465123687520027814639642008647111597430152478830118875617525647634003788644543755666007374876614602718210607385683421369551372142354476578610228510847622969716715840300053668570239731953250544098033777185944329960052461147449645649551833985717094915413793574716009274530495310022864088714109364445352572540322378541672811217565609317605005571256090178229228499094520854889148980123497449359413947898008722696806766972430825689434904889405580031867461533165750671913199083699288638954823034874174038121010362827685832570704012637843752724637043047798619729339021013627228068435590803765871318938434400065954138340847426325037447969147114434552656991994851032107204058331324599248734234974023789278893859120271263987458634382620950568645508478399005090533675701667230554768728217306641835106542105873487851439835718267587376976241143862053715105423156020788749037140957310845002132173514448036993278379680660660059524492733142352482877090611279720875733453418737248149866878724904451272665109942254167877429423860730635456722350089071899372652494903649260407140550751056081847343768946413240349577457283107682238330795459497443503156934379981610603037249811962062064601572770666481542120094278529778222931825398595900716123952094206843771145379194164596787854810590687694573060795800923624082112916841764325576068057070161883261726820229048239674996464893480105294818977316080288409556832443544710896988229517836596241351754529938010069951619141019597993212196382616781176479974688692253436539625983618619425801832723244934846744220907942527092195616047609860933080299172611646210646031367361898557135453919504324191842266639195389409148519206524242143314692249232414274611530468100951225296203757024178584366431037828824374469552102411846943777528557045282596152599900052240719863046839491893154257241545361216795298624017864142167792674192060744813743553680531913336398607058722795482088803337138012112265069119881006915737587896310599014880706082129400748862605350143613217326833084081438983067457859451607695486032521524129528192224505842029524466055638295659822056494666789110335718710851266815511962544348361384132740884925365432689475612316415554017274620424280028534077468357770736881039372772819560685192836567457564863528828836479055438253013369883283956821578515968433525308278287199665108557068915505657705932853076044306447129121659192407962274863877180946119478446656049019171904547134147018480740859675533924056811337222234981237908630530697958957405359089849877793717756020273486832136406733316509444507102942640416199081666832652308713080040925525453479485682846748511791785222676695638930074884976258487761104814187102828148410274839293826663078467575305785875094708264629895510032851235935239265264180097877360590020362615053828129461275566971929254684024043157220253534311198004508676060335661045483927774139640334796500510942846007648394869561163626999553459215995388191757210109241818700547263057294493848597054222109310431957997199607811345178256850761019687795558802482932324354648096247238827968748120467574664864312158654997379791238297579181193966826773181365684208290289521578668465369713584526149479898482256917199164084801824067104106024665795598516053668095399756789170141729853701900697993354129568815975587186910838066042486049039944932008620886674087319607820907758164118356065870225646940587818923534763286348678819505191477560235409203319743582008541572485089262102317645801981562038869378235436419535094672705623415444598411737455797467011083895208919964445327803146452268158907680044231000450181039724478293040708430764328433527532372018504587058972094956256057254188187336430279754505910380800884648725800181724338722374684950416037440791460478430323841929251711907958192906157864240297219226039232624286784097132038728092162555529776737611307788530835555401474502748663150295049857589763242209059894180011413320871328261400170980751963767642164309054581434817396270728800601035427288777034517546689687665754786972028663535513316194558268737996333446687998392387987686138504395190968642270846815230869520681324232254143996413101323200758427054368030757471379112526781173066727261559628547998035543799361264229104610147387420447728485656904433459870190598951230763648959115397584663605018487464628913368056074733116926782061159356485090223533061163446842072153663970086142653599218416548690504174515324086117122302970564978810051159630760912800032395635283286428374059417708566527961484724279765309732620709838299558042983629953462641797440417109968842846080534228355340299963249353458595931681774141633352575098767172668020245382582476190782680514997278485991920564043611702876277585123486614288530589532641173385117353072836977212322179028075922768080371786722603752504366819615701620409756578827490974983480173774781005849099953115651112106867056591082621892954439684587418673744366825849163598589601333625072250723685958525257162112018984565046658232691615335732769649838540677580523025883963378875754753264815884416632870495167729642325188791605720280423498614769005881838883052162396480999413583188206909587158457592157020033700948522242875660597887037975797053592917746377258264557048665911898108777007840272918791716830592365122713651807394795295633442124686819639920221214603975256992233781192813918372701291190568450169012080822614916503106143951563437705439799410701858077091034890525752294884813159595864001902330806274145493558873923320287921620045961716920635799250577889338566205182619651686974383585753189807871871778124166585005541747721214706062144966020084505734286743686297952654850574771510227377871082064717282168222818515253960768856502911469267544978012111772377732799497204907801797645099649305454126213558194342739644639807408232387918501857290894730132431976344913450811934099678840950030082961972452110282052697214941932327911700997647010632934496161095691120580527874308525317634242984477915623832205624358737297023662425232472397535113695702348799007779866000815370336799924470252066761795119562661740304960846862230640059453735495642956180328966568373987445764594402471779521074544109560718801732586049247448047179967930431467614674987346104983820585646231282233354025480608749691525456422100935730192999094965667246625822850307456548857472556908594530743229878533688350620242611519534391934767599709536562314909664767192577662401360022433456159257397066882510288272181729682113551284327005743612272220322282645818497466886371917858677837491911848518031382574116591175560640656135413972123452634171156356715963040097187277552188544491890241432444926024429958126113253280679268030327515585664202411803692748403061160320081839738250781389501949932828253527213207577254422717658663868198109905455066565090623122944262526933823286720954281012571825516555190991397409563299753611794780937056554920095878733559522685822499511250862267571671764957895223360405233138334443347339280832627762655574059439665800634161926752419317177269652220772022565414062515914901544723772854872977891717009905483230667838539055339156437305113447688702471222567837622318194914162231122657272510682387446217478211895434249894449946713352981412942022496586992444898494175058106457192048058891891047880484862038164221038481754664696601555012892140287880492359009385397920836848465664473828704196904993207023143138142508129651114529813552808163670260491168769181153014504817035562949148841199332127902669599625653917290124621646904353507049098633711203697797755829730430986149045480384966863949356894589434881530859307009437065064014580672391133958710192938178362317337977540012946578594896760436441381911181680839997664029701053854177487726761847744444137020200677783905851490198528515774148087415332982765645945539159700122473609919003656139356641422685252168890325161791444705930112111213378187065319124345096640645798957665022365149076450214610627300217428172985976451657038778169379625440121491759872753663822230075884795646764493289266179148686480777442732019358891723496955204289513678653100809920940221271840559103839517570515123435693790999154741065950075386235166003196727510108919565512967293926511775655121285078290639911671225844181149943285666908009259218236115712649262550322814907239821851097284960282805691624407399933065484468639403440432704000128594962892245488108147076418928037131836000710221744456067822352932410758569429836462878403695752331719288748468208205472225920624696463106283179445257055785252948757207345539403942110444869746568273962691175063364896038805587807810917555858238926378583021904000048790565669221560982980787325312670238922165493622549175240629435799220016543306899161914736144608065896294934844499496756476077892368822232467604012977909743203381471726209072778562878039303918884924571785616958146292003352883111425273109208409558139064981287680937651525458912168765752878871498496165988622235510741824022533913929727017796298819403468817293249267995021274915270169927225176095837907963231789260775439411515953239580088847013209903329202164034031852222996827341190298120021594637596702634549707146836939358863337626269062004055948447425393555685812265492913857558653702901851459819085476902060446396706558162223404235704885259642232351034944589365183330583887166683653824652410155996812754424840728815270857316750049012055685975632534665009871399696942638232019265329391105431045658580653813239165910743963650704107909729604906152645960134311775348836588756643809082681650553198157853588379391568632479044965556021040206116773592626683374590298304486322865652322425870924023173109266005932315165516673080013912750898681319194478029270857504836963021693552608291039483698151707732637648279253082883569538111396363017605322401864447882163194835925999703989646896690702424941974532278064117209974094093146424467374012014726168968861770178296840995482427415108299692951554763881005238530286345673166945972806737388569160388872625619383874830070269809972197043706240810155231553451069865188512401609607448748600660476198166820380184310836310559879075928275067466634738537396823145621766722182723271658578054514546873007301051622872996446634591269884831038577706895251256308034102537399363644030865537754681656270675421188137961119673342847532573995714145514020267398771388055224080290047671641561185593136497045307505255444483689293036853613247687220477303064209324623986344635409609639146302545342080088678562179169292802608468203524096747764202270237227112477059184772974517335713635712116850795337084315635599590174920895906776857493790156950894248756375937244951787620646162672089902489636844436181066104561391811320433721021465572006318072344724496405435011404016601743766214563172550932080220494461927005064444544567219751175503236198618968253420424982745618244604312012446467141449374008155253181237144212304793252509951403707141879232727227921133299566937667734998980445664659345870725388584676288564740528398427922299860291854205467915084506556811190026881386040282319918735662158434705198679413464674705060425701994724137163045527756588998667273451227667887541643866819215465936776057094500182611174843271739227938658761513737670832605430374153767082269513887809087254388080861540512619785147655479254042184763970629954644558696761490790186689270089682158567806767291291833827990912601745708999372496858894936965381601770511580745460474218384242434688845673663096909367355971876060174274774419091422661801428611527065559410018562628981701572160528672883314362800491449829884337932924707727822007980094788002044588461841654663188794177036792885627618784454227919270491957503624323702691256918996981622077583804072067311359590965577365712572998807676617153164284384581861645848567318551312934801651593627151249315020862213060305707480893448680690922474840027666350867482051470146642142891433722098124616720284220074744014869558142922453830307356248457079283115615304047623811899921023856929408535686978248318455841361575902671233797630685117293701652466601052552229481071297722004730978735519923315510323987009237359511027158892635644031035313057901083518158384573069069230911487790658664571054389200444594516896097023537752789197851014781734596605999993802978756424370239127219066419947798188693306383645397032120849059509863853197704504446829968657552758594484657627680013856156284813625534996857477109973676965416745346738284169029456661726696910691660530552845938687674402948571634741093880894486820545396824175954469714663421909499998363956647025409139252692028858621395194429313765667483209413495712576381723149802571913527398889495851056608057659959661035353856837438121812150345235982280555079099625582915433348353930998388108084740874080315313891460089439122973979421845064635723349311570222466729929926106267382416689138082084241017911054729760352613917259685129871884274807452430407072246777448549136630744783625999537058024814956834194215446375893305446698293218438441608800545659809527780599812946891817015300072709943468076995427712403416037317228791972576899058298849276785377739714475843461388649876000420598706536486996916857628458659554859045621937684449258835436995636193955919085582715768198653227402638154445550931433355707815701868580353971739590330779247106010209824394831798401740116800409265613497064256407924711690532413999919839457693745926556305532386650986714394098336356049890652896641335495795163540847873822249979273582226812716133904212724888646788658835494567637988290227799403854580803348939709185080982446839595651179683603205442493160618417116002355367994170762901954965235266185509813350477659762097417063661256205423490751868093657877316785911381919764986093423704761590581800481272531390022003347470735387876216397370602048270856458847812199995602996993742913631012585780921891873305246902093362399252086181732127145540284016247992153875620850785685879910167861386809809691787537525391565542178775368044680146865149737342334044576250731701852760128962799582021242327802098197838623072565974670580232517446839452786329730318314102242889639961282239691080356464413739580457293615108400415909278280503597664790816020418277325786459374877323512534254650563263868372987978350953145010797775932961858295837971261581690562270786198479753119091114330106558939746595595776103686896184114577953093264903944569869806752653253782966320208552650130893917266276846938339995248868849795295248208230318925574523282414151043361056681169663104751297379637943662774153326631831950667097026452287369918272501468424380661128713775770072297661270745879248086485772569193721962659141637691439681153834169528655418737926487804203420080208994715086158213969426834358908571920542847850083277638391181781196090454710928614412486525004217842974696737127761548233364543278158656812840918239813505424137092397009345690227330045178578655745267033583168723502496214787942436718990610794097044877137439624160414607167649033686751332033206650737477787967919069446167193086478538125934751936873041650228515944197315525713243124621719770914751296989667226942594174534099611404069043308005274073890688798101375056820966671766868614978200517858880653637109521158787501499239468239904602494085453047127563092260882681883917190239947055469000179906367857625796993770891155800228543090960394632031654724516982921481284018974316086332165939348388561988026228141310121313256296032244108303412058648977958859980507471019088965961348440312144900713534919384551739908942697926943342454440760496593866591903214133881129189005261516791624834151518623124735505887995806099794838383450400394524782959725675843916507636993972111681139232669332295204315989840642086497163461877225215789854896849410694040436095132363063113853812648052029288374403708152070208061893746119608620911792081358734257208659141266907287604239854874450813413439878918576888504292832244951504310191124945523338493324181924683957947094532672548596220971061481351106376478391480858302900287943725893758916023570068891252127188393948383942267471542239668037469228613019116601515677243163043693222853482641757345298369236635474240464890155407205757705020086405915924552745654216311523359175986216935591201356086725119530594164935828257608738711427800535777185894850975725447404588272750003483071568358085729660612313734230998463347809541811664552719026045590579538311286508394018773173751912323679154763902554945848315477928575342361842278358952546771225781960323694606250384325911515009120116891372921836864375892171814504453159603294166862448821250827136142028670705997893806456350941862550633312774071078042172755581775033946124225617180359107163048180239048300680179378501187775026230670097252153545221115962597895006630068266066447876983537580496549081093839792889554459822336997635949935230709457705329434190547050199652913023002945892262987334878044364094738607792855711264244720648161507244635911079125941984991168664003341756382330795019469445253862962758135075155329866954343916391647827939981954333159235675130678356354965467099152222318400212884624507040912407052144617441163490410313568304174559538031845820646880919332164624058036161920667603959517444839036952173958189282994939382595359978270663116273514464024471909657935189815949670742944994046425290762191291616930745614767355398855188874287840837703345389940976473115979171101243427049416405389999292889249884285252440591717353126166695101003959952028746508579265816398832078124558663723690522062568256789288561761371988314636749187360454125993522819935673005572315901152934779680788243566411607001755604051092521774618576869765915713075823131662709727294847409753158208815101383897841954919919812937925397210851179604481667936826915744947937701082461776119637515932848883017776554438177485947348145178728189242411231783996048530380718101621277138500226275371124105315010926212242021143380989780064903712538258983204517394911383060973548211752966706174646463614130413529534552141838291373594055439975811152045598628734735692075945752953944826732908791250756172631222057750521239130997960619086778462921465079439070646998386950605160584696646810882331664033224280519286364786483687982072014824267299169360830515471018806323509210906925541754735384056219583009757535534465825753845014128919279818401533913315496891059057640607831071727431883739411809662967194953163722348206876549442807134026720203155969143851633272008244771740408621833872073861587823280243776537888837766684607372949454429357188714533544456597912592622878089485987963535222402781447751535875827521811530094402268298155285928014097965142418969035513191267017488486660067177061643629823045231589797547283984782811096488829599200540025292682858587674501132655973661656954458094514925728509187391742917821516214776023272329648684589969796564695362641314832525378862138651824120888535421507760621193412553121659506370233780596562470066377308212190793920172519703044659683583784772935599236161318822633845086553509627712716302677949557629059701004513336275609566140595763977506399609241259615023871823236732804682474107843844377123044093822919076255072533456536306161550288574317294376517642065044852293381763083471324376558343057001070487091770185993899385548177451832755290906148595194235066383913799344852986306496249338046434295670724584020723862106879191270372235315948192156402724530221237082281460815048968868629158654290260443416210282531223401643690883353665331440754490063162740848748603159755317753778569693633015478211470060478398637295637385374607925980282595833563296552131605707704290354232316096340132360977095171532274368262203731276348537865629098266210270089238245287914085319659627245721910967132056012505302608074914044312961379432593057322713896850187305733117219591272377496096624034711903932060889028361689910703308630598608268514740146903172604422666109080085114645821579202423238480446063265816051576813999196389879785521617600217176157512657373038674100066826272664883621291439531536775965018959044932516414831649474644843283574634484605355817941757583210412130371982063088533363872369932281030080526207811373419551425585275424646876715384709504656479562614107881828931876322313753472991973148203506222077937485069830912784619664691061590129783324758897320899346470597954640694219740400952112462427440675541262177191211910386899559745361726702588097763601241970330769046485304157710787464746752057710017411383471188011499400637726991269862793519337280895666284465723465330874740007028751199821217065392203967262468638654389857414807709860990508826424432435320803868488572548838499896964755183493943595421179692003764371890062565571098930596348119645762583076145115939582851665558042291730997574137607037498871413858292367908048138669310942123343698210988066083929082265746290295973515129346241787106539728296058011856399876013039426542848858671168093596505471809123938292505133458949259648159717649281234455694046293709397223090988531116046904621789683093321373007991572280871284763513698143765018724542420976967673930674203069392376967399077810626560610959786355809578573380610050293088707384788221152565484028024182592505783582395922993360064759607223745169303327009426448142573609157316429805605967887966488943970274842385143299645995008083058992717249055184173670057055334171217009196127129623070469362174752932370138708861575174379514048685468668982076297611332439699693274968463558473109148304811904081752900396726730794836116415213521680234849885372645967402215411416633378301116881016021192815098690797881680742958255046349526935434273398839733407491572712843393786406095115689948653601918497217533218950836434240684602333406853297288389552176005117743411445221340358915406661910008524599671824606309266787876919500583551518062658059221625451006740236967147127744248111691632218671628686091919060385730895826827176614669974415692181272362866541870142288237253387131066296152254126045905599435472700215699392398645070827578964589563340714569232137337740622496536611329412797252235271838865916735268085979129049742363198491687668677673141989578406167399618400576654612749949298503469719091829071039917927082526588898006754216468164875577099100830740001176629669544800862148044370761024771984512425296841019852271534001200144556291947080664833723469573562285445889447459997600716101261578951179430491466413876206058294966440746654408126469405071046391997233606650014644004293773055089619317002803508028692461595562017955596505954800953170259285299702655935980593226013123501821739573172299553567489261409572307253786218806799495469845640564858127518530978295671157931951564496904804325309902135033490869244306582657771896383270285522140581987192116723463728362947095840721603242818069825288448181524818950265911291985690396921157161761523180181195375497610005011782541394919653846346991748606878938224045265201391209177735027018818732478138953222696701759773890258604437865984365207476356255626149462235188138111476699773306681241076417778998879635548634129744575188928038120033175384051482079489339540106794383325439870359686914636267644251221585532993957274590440112506202099990166742245316178254012851775152465808277369217531542279662707322417369908356366540302203107911902973120076967865593711099991804639129077499844846349627563259435931879521066828646723621174033069779724871236570478309990296578114444958544720216228572141565087755575516889407567223592940738547054369121992737433421350128227024526747029508910878230913568655214074014557668260936484900160968325524129660331619102390277384522272491591737812596800800226386390761185441768038723673204685747552357828371163092242655443605083992657678279712432909444824191544978023413077132596894209867207334515351890859849836666710722637883847023220671296999589562717185573180724321521454445061293271942743947222510410075720324107527649340341098250107215546770057198855904035162092796842768361355273545603198886882256590832784724480703914479531576835528894338662448540351387481307875028928815517483012101524151798447781581528520804562249272211301105401409019809523472333140801491329356021224518568299964545140422208894137009266690348856510263352665306688961741128135132707387051252445832622199482236765910983386319080180789624991691154987601940353386668514468098035722494662474661253958256615814765459736899217246744272361616703973650601958511071204052236929804019847628537452135912289780927467042573275704515059003843764257504018505455044057662301866487398769098222594159934829743625347572393001927969272531729436762719464022436377218160064878111116037924942241119505125982199620812785032967533808517405488666400859499026438825603190938075358256076402030536302149602826113279247189016421554383529275620410167557939840861915498815619869863096452281145082133972838104498645798386784337052622786435100425496034728535690999141409902232847750334521285375025423051756386396528567545362727834727498707472547498007939348493450958275376850298058486123802943565892146179321488447100582552369181903185207630749146144045483735954956017535931352739012707022443400811515659679580585210643267910827331680022272607272373330519927771417522769750107783510111717263321191916986924484945191958738273955608969478867097005750139749405443360222405841598231315025345930874236867846363579888961061379253922177006148871931848920048108643117976612532687842034701840835506884765828424755293297673176377980640648958400648452465704839823450405995440034477784063138490273664008632342980093159357336716914418065795632458292243277022891957959929244406876827779522633514347281680246714961772100581687857575490552087570596042316093257083899437151239946012191912892133631519758155722329386432052711453239927929075312248139344728318315579211707640077652568153141392923038970271781366139857281244814471861316206092574222582695223687385316508936962921530684706617644819699095886558583017791720992113764164962578311356409149915492688812861910313632850946029617098582534699013997185356128008804582201986115945117802933835097378294062154518028997674017615250779656552400851832836122738656026121249966439725983509334274295318207223203948039588788172904481627575391324787454186750025389015258228979972535624688152210558525381496963911908072106963260773630424657276718378154013335049729271343038019035210246130271152795118031214876028038410111070907793483148294138599013112252637912946476291934259983833786054260292682980459420457812735909985410829953307440452101743273622374555527170678080202109046270624824572124615447440653998695416618337798980071938155354318013179263734439587556644313652204389374661691267770957824361502898216323217903094247457923678461355883874378389890901185554720142531345487114768849657546844902222000654121797526522143118566216977729609729584041915982567293263744861679879763799465200575959793281330219151827134174186627617239013894272386881728181120256245017313169079720499745252377796591701752165069308133968380693848438635643097480188009791603276816154698801678971266098499167322705377649916037109432001738876953997664800967065384272760451825587844399229539836696449950390288316158071086385106787900710230596869200460566335357166266716113906037213567595100583530631292061465155879524626906477592701249939851908740987667733678297264485445669212078105606956245093698998344478480019256784703543355972011612097313505807927432137693524397859578882059539598496351909699121034240562610943529917598022439304969014816071584062863556443615137624819183790987697584235891398032611665447942844139793952745312417259041083808223168518911193999639154540702391095642012019468311237193366176461444054182179293434516905299598835652789937178742681419528311531910686918996617827640531758671375567807019667999401097457091065828303856617612760068258483819945968712781130562651748596507362378099739513944997754592432687812132216008152886871198136184552162244312190479284056169577510477864409136577379805645888337911964687984337419945648176176519858492039110201880661737365566274328658390706224889437682598151279014187846634954846212262295270142742392313646505110217849056167535505333307037616285860958055214560143189220529633539901065138543918763618222324292639420768558640199925173958547071224668874928412706245574332535207127710036530351093988568196106844230166496958926866455869456745540307575705748255221998244202838033374081797791453787314952470848427715524255763213240264964361525378291828273763660125051187490836105225207303359228331833151937791526248063109468778693642944759989149558462009039484537323796516734301552940037363289930042347576098052790204680283701780789228013150393709058557296193377747095777304745237402915618323912477307996614297662039339305418900152557290408176800760785600283672631161495388224852776001649888291460832267440220588698527153020027320108764146456882489211253971177092921069567191276527622614625194428450738177291158333676565667540704667071150225617910578515219576700597932334931452163841390986902168791863471259513078091381829733557385737245077212889545306087374941641905796936799359854561372392014369549311941691862211041209407459661291993290586722088698911778924385802206491679178519870404850648629079424895436768113501057878219134836395802155551721630924959097616737058069207748094208981797009734907422316679798457882870162915356150846705076859959499903740099434719520657703129712307335324097985358474187005571513724327386544607614329807438006641789610344149356597670867005569228655184854972013437300467115442098787659389460136930817110167611669678752472206140877447127484271001672534284339668749438030356192615969694232109325770728209941934940068380154823960600878053465678669382757112051039697782808047444636898075322843892195000955383455753379816045407919010405180926847466592707550344145107999268032856041926653096380522460610029189858424442682941295947262316969456587089551091725445557147197500983510408030718294739276990236838802722672021228504851938830984250159757847394996866689273431512666076982611986040236245921955615369145570841746939925604581690392138544861686560739977153199023980752566154533777105734538384870024118315599913185811036323267563301005207127921825849708595952648147738430970716258127086002978172823014989309578288482497564382140123920992642442266930405659268531061698790385023235640218425101806631593377342572116836655037988710171191626354077055425781338984602151976464096212964072341426147508011293678174194462852183577008338110814560435175336838776522216686322130453351319571787584810080737635611969604720612410252090011967424756125822244409431273223139789909569954364730059668201849650471764237961501181498937621055441635033620241327136105152272196893176567931470089176190309304592708877774398596786072624614171282464455096107722847981493011927182172981845597464779266909584558801125958627468359111196138866161205954783193325484197609628837014748728416079180572509269318124469581205195357784418293068021316759621459167229105011475669928247736075461283043853644099663686701743701641854658085342124314777270365524258748493011274718469729751391928516048643087740690889613596922070900671960617422571493616627208726261745722967973424827543857853191335489184628552300932871627481894587577570961939120320900210945096877655745971093941978468421556875878904795069732847507362959331154032363385208348895786199995066047498339122383411481009067633425444575293361232738510426292120360132524024374813240301186662759064511416906644595467915937533000587637094577475361158671715508365811667813612993843271234444527976955270575386693395406641361149933702866915546828763253639787448208809611230559256904588090407317162504957202639481463527092059104601696616264047424239278263994628857593524952930731466511489013210144605318051754630854300946051308529019991205978275842410459500534656379682547223280687988215650815149138399416691538382151064840942070962939754117990353577223007239932914221759543206332554608036044303387014424929258448509879985812583634044576143639267796670927203355975030471889111099296086950224249791433097890040849145134318479874046681246122176627527042706423455634743592422509471753627595180555038905658119938521955314839742689111059173494444998477039396857121910913439212902025466128606657790131406685070793755008187362918839268108089719245335116560972809907794290232717689242591736916877040358271979100157421036519743769589998871887119392388169789641115844509331575142226882984772284659961808824026825617341416106212606196568059911545376649077625910541384017074486983301463800515326955213978625865462414690646681203912466176162935406576946228701047594853358772403773446869474598433277394881610132503610010576316582894383917240986919497098364015305594045906553488529240600502318674304578929737262540603785999183996180548613842357997713658523832473369976000109723702703037647288145195933024122430069962232131569654825582259616366994700788315444159585170614284670423118400785411245527353102800572763255851789371474777722171278648075633152035786086837876292554290412581067601068351525526496897903823656739865608728956280578550516356193305495624615692158850421852871216539602906318330850625196053833112237698723848230442266538465294301680003297757796000246600231368968679109125661646508417255607529764763838430946097617067717349711805223445563636088833773487919285644085438831478327632981006122707053419716015877636950160164313222401671797841113120023102124321953678784981669631328305423491050448912284920557040387044962583964081623723549990040166403235151605941307143284232394922170910943466114237968236600213445632051436036011446297264741861724512202976056555823004495735675877165710456110398778245817959891571003503298284693935003730400463870498014956298156728397876417841944777294501160294075748163673517360571671986336297480453212710939217373525661138779965371387780247218913297357941190937605771209408392502581358759622117662713230156829106783523128029067642026649963324903147235306221844375260471090169391352964888258465854088394843920680824941543704751292940824383771805502784752151732899615432075744897940191812205551961397660196793675545303145506458475861644092517892188220889138918336298745615810309592415739618881653846333922676284852558389077024948932974278733594134298154284398869244542629751678449641718959385456430707088042339743917313191310701535083771719021811175338135704696577063930337399911352353362038690702720956502137745914227341519085717310612217195087700401412796006637462669837516844013963527619512122384160172275976347505614263771359507910266617538313293537936081373050188078358807902557533262741654136907925388455480179740554786834252473129423584415912996539723774345040006486558573142658642381410651376319876310605722089065061362974350885314517959378061350376177572191584587925635322932984991871125218856169425081561291421566623019047883425334760766657484299629461473192011808355017541886173791766784165289055718946069740118899940221376396811902975532486528249648638679942303677327704020893755360231837714013079602001957908793345188370983926115872867105279672583414375749026722649714750156604026672485208509024439449064292935274483526167097957049167534335117753302483279240417495479978371381074080372049341918779010933773167660287592733238062651977954323521776140766293418621314811075286871391113374437791783052919161323798818090536732407373021229053705345013523079666302991963204996038822356569074292462029171969921026261249343013665487307908113759433994874071512615130445085031777946010085972232285001952613194940747759573451929570818485436330750108517941892132501791058433134175522073818061765571807069636061411657527019436446378736700368626537439891035638716218662989105733355832376548583778527975091599136263462110339901906497197255259730049389967401352392916896189335466450504590874675618026082295635055866757380100513594402200677121294816463803186682591223840194855442833385245544018610471124599128103955948317541657669894010018333599800017206888041104211418200519625299526066521136238228721033315346606359063822374560388137986489663852542278797048260901780199286557656027537072899236785266562699621861228442378428641118943615002741493459573251017183432823849670790196089109490691265751350924223768862096945123581651621227905954255258476354375819775199025430212386761139553149490181160233752121149308042909634399828282824602488651797225265139527318663975021495785533212504816119310270666874534477141011570069390639590945775425353070469053070725149274648755894396797424057347480530768037076740300628654005546692069861356217251742978356879406812657307606829113923352682474257475471477496072878673474042338159793128260013716162525915724909033444748043034248779794347537363772861328769901088412282522421289768095970211407544333730639839615245700199095533770585670293494727630776787208761329556708231876041130884040073301535068154421701180830786343462404844328771522154351661304020052514028858331326017092145575953708459229309917057224767173431738126505699411315203998589203887317905809947431106773713690785762241199288152703608547002301820560477011658018653501818719909154391003233744551863406561332673376743688747410084623474214327558128457672195544182447726597804510716359394094760118376106136667235672987336862246940132572207205967689727298553308435720883581571928648986301407402091457902348787326515151200155452724927720879637648225896233944709405439361705922790795111290616290823578948339600531125279645143119355453816221089913030626621736069782451312915687262125136374905212126182072403902983028759097948967320943677556615411536211720806501198493789247024260126162938661869102413984444498245482770903296359879215639080975325955924379915462428676547775785073722903787538043469918187965467255407429175974822138408296549355612765303637113296646218750461352845513963324403760486312493033090118858129380673393388895206441124471998847087969828283498159214170167435987584932970671800370751749059986640587483414167448959055956445568726576346503086248358149924069764254775288732226130341908506398513579301663665275428605738982730694514395607838184879521968063070573080889514705404911810439007572167527578754621999974960360977689559465856844474943452602533528811715222612699459678505018994778873726856616533796021423949677099801916254863841384143495932846478606045223225064328260605674306443915444325923104762505040699509395295082541834382102795592228489019228635964917159781265211584076581816495834460568975454312973415263884553093330434736166043963967981927045676928971061875153643832872197960828825213694350797603371993427071976291244609038652257950724281813650325696193305180668668107730205444462058184664313984843114808188360395441785188793460879900872488829855840285135132441212814902082975615469384977353342470392237833516108582809894466223745121691774751162192443488113482431156926795715716375515533980308276385228601471211829484350036548102555086268268756627604742510882865418538656051788520033043826613737553387889262280557440349138174693901732654982372883419880674638694734268658169212438941863729536388784557823735024239467034995156147629584411450423618980931533894827264738034514651498482481851711200204929958447954443472635782858498080117484716427488198626569395808193955681032738240213922058323318750422049770161684468939710101198640296200144281340335479939804322167489074183231814422945017034831545303581985631572041769557011086298852909014217406186571143926163261086672140221572298437544911086220440974174246272968969529378591351939719079285367392095187354040433299839591259353935775467801593109211090729071157251997514136063667076424004982925438142240500725684886835763009121699314530811006929914227296787930270065382379252136129337409462253484185628660708350205152471973900837186802936204524391416565227300405359884923999070727694370316631118337796507567672890943798698006005590811956026664592845742115287677994776176391960213417153057784945563573093232618584474285243469763196790869455126065463846531882913739923907922174648178019721125985108082335730359888389365402400711052195393184680642162512545498892529030131920777822093705033270987902822415145080099858923481924480481788767839811106639035719288525176244095307473841360486518161658095824514378756032995617305551869312332617571504746067978974398711196306540769196758149044320368022943422377527115443636620148963098176623225787343115810461439518447395082368337455201610139989898838577904294359671701395367024483780992392039064250451205273917905538214686720997327570698094210582955429270742570835107407226238067944351210399350235568429446300104735196270611309504108907152157413801225705591155870689741972619155009351106855159408530951555547632173878255143560692097186835265992129877895145959460624235361498053285377154102914501050504423154532986099013045448866544050476476931164693211604358638629635738202429208678966368881447681857992973194206892896469477354076572227567650521774050459884927907144314982851976352561347959964244390845851577736846298491307344128230821804801278532356452823479548753544339001113762111378175753456266121955229514287015167684685097600447183410174996110621749455355471256091891822577516201628875684512762452923487199751772575802082750777285353413551742742122232541564509477139538292726974841714220050874808457280677952024480930307092437961626320254717375027464618476215807079914158845867385257923148617931862959733932632152738584561490125133313909360177474187383937507550694233158781064346050150822965496142753673704136289312206722649164298705542723284180520807466951875445656922298216496311126509482006317719662500502645625918380076690130227205400021406478448764787815175939105100482958723447892716864932837098371323801304965643896371736129718688537449742237797414621040337650053247521092640125825779040398710719757230987642116808302881894011585518852028988153550231347412633667245068302841337292402318387648332612021601714880837433732449106611324699707557348788981734050597105318601921377443011964337660683108867234823290564594162955009207366177321958176401895897651942675180426164121953107648364284663552726528856545263155702661890964768892711254323009784395083900609738284839034733578103712497975258121313612126063934581148828478301538676744315891571396412480764385176203334583425185114568490353105086792076037365195917472194082210217940573652008565855209815774320845334717009218083951367138261562659351777884344451751326764421492392579082325201015935491299981761936729783222641807483319874220019634407102876621230006898022594632061491225946979679192674075825835763893502430448356431783588828966442414574508246390221450898852569447394595744055748586963119157804771419425786730613764326870095928160354307138448915586142368769947835581997427076719396844320540494670069501140576723568596545306477986574634218508741981328810571305376769566460846326255144094811594611346951752117017983859299891124061290970095382197039256292481755753869149540928229591420721189248144677159675102580615088503434506762446218985149358949007330748398103368298790300622942279035982685178514347591690144045359078377464343253759257100486297126213889405753385103075248056445955347852258557841743263728365908837795946206726753155576925415593878652746422314321547973071446442371387631526321659771087941010527631223407769216474896974822491317211472219472820937070321121213508230298725279110415147169079008812597538307559265580098417166756142422697637958374476409845833701017742402790741951707513425602448868275288689978620218776974719259862247200751023435428605964442181449409969672665268755217511436369414402496863723223854104921557278466220774389117758935105613491480162132807882991334322859151170772552267116714936406853611812851786317848632029834033611299629232714305472559225845847110939610931860895203439139459818810995710238430918362126632061474493382282678379600854366085472868786698348143561711537002221526927355162715805128404647990216130805581515806529010051665113691231470464007256809399286538274553138714777812627660984585803827572316392253302099604669209154770453491082291424856667625187270299195910515949575172964255831040672289709952577353383907710119351117310428020401582823092491417829957742371594536468011932059981990553088865645833355835665876931296512667141830005588779341313291813522078101343669718882500747198416109196661036967748514690813167762737158383074453682285097947210283178142551013125154995017067222587605579920226876491545518807292708288969266873311352925554498308593567419749072611125995662858119719694011331667778138149330312922112961230115727766532490362973925690106955333611178735938322494423149312443071229697415856880542851244892229754771473415824482120177970403760787738227977671809828943835216651920912284303401391356851574062969456129707350212093709431473163968470966145171232929558958187715136564681715185986732311857243018458460725163848951344649382897277692956695395240725351168469464262337169676334432502308311950937217896774775078470451905415244428032098484973396987256148086636553080296957467344682521622980586836984867416218903445743932070197877830091061661939389802371737595724989431420675008985753756767332239561162171255352853600280682088184613202542828520866903502024114581995192036046294708946141881601277865586612115853816606850775708151956233613116849403744344825388020545142280128683293803998236885815043926948358642073398334084881915264739910438182085368233355390259528025649219124523579250096282237822824780167956387470045839540811715045017910822115546317890179853903553663177660740605633026999645118732892422319853762049299429838951870202780437470768007174908867780671876249355752948677729622687588306889205545742638399062795671190566902962962448459558655798417320972567964703860777129412848600405860825988633363120463174470918351396532135310670835102930197285769229943950006791866864255633615255088533390761855861927246029643095630253957577399209747748220444756493177130768424940190153481088573899987077249877790246939703950042608151261908403276748198072766894603618133620157926712933725047543047723440143990159893806602984958531088198269003278265350251766566130926121671628471478519966250956312056139240087314894487250724604263239541265440736153659510682680323870046023176377522943809274333292028743651751313567194931700124581148471331389901038522675786118323809745355145076464925684919944977085884654377861157449925151759503703156641779086799358462692784216528931807810434211314472201157381366532506477385777810413817625126281758633319542784738028687574630157018792753553661391808815939619672247508569412259848620238286181614887077546815696064571725382681338153227983692429114044982519384809968640415700260201307076924602290343720297986298214652921039401693151850119383216607427909241147907688087414302899257159056566998014797461534741539013558891643692187243077687578799711647586600713864192681942611030357893227973843563549486092356347100407613726766613466384192258001147782755142230999205681800074605052885682167023016057030889394012812523766880251825126363451293838331979394297845687824596677581425928823120636357911202901239199952299425974237323576858955536573162038885582015917601063050904874338887115924716493401619783323260961472308713054475855708232152424285538699217302627137950087728263367506778950858704048205886923508187841633324656711033252323620721927037908538614716592926209340479111416278029729077703203468048994135701784904751663972125218388060507285485542680704521448050423244968955038473840321434277028305671412931809686393933767153075660059323112617433641109497986257477365468316135332939006045653212581250291688180807359268488433390763921730754921570758188879086257093032733543257018378806512163126846895621388222715897968573168146981155705439347658457893180795120115984140476439071043357246974442953715642176585716245203463241627938385491798603032782357660473149738212797655291638496175949363135422251340549923850562839127530044690068248523144639411180906228638052795893837379605931594410941799418429350115865391026889959228254640079917088563487686416851287383686473758678067397779453020745618814745986370372435353057891775584189832231594007639923678336377602832451241956280284127579506491203314753474560104704034138884904718234911992846187940760810566281994456757421762363449043907280406981177809289679237351754144097620999346125956891997959053207003813306316863810055855229335734347025853623786474828609294053897391152999074350748748031618273234423667301198690932850006084544225640811823944602163404718656931918218457806031418170103555853869181780688450963220551213514949495992954339418040022537944670229280194128333023614243160980532974223462154665456148560854126152705771947989642658524134871866597557927068360107564746798261867348805519457119336670789618219942431646597219673517400809335630047389476371542143241208957787159685701389925506655431029361687445904644426994361681515505802876439248598710038238900614521351403923812389398338324696737235459972414582470051671333178159892323984973741380528352723258331180248410425579677125670077101739089182341579841797057802676889927186808948449297437555708688575302026611364852920375635648815063455049490547032380232095818784949104564736396245106313478408120034052162896804493982962770457743496885816896003376512479049643870384247505660376179387237007690810838148350319711968767630000578921835933530379791063187362700152975215691857878151224970527437863497651556574633242384239975563908189883362049059465418726828725335608789850590094521372497647102995862308035919047877976216551400387393791392460710731353958438612035146076892262434353997929166375497632594232575212287159365805495587002786970136719393046842049699748521929664270908961047689408716271028152133129223906522903725996466933146754576536076041141897828709750438343579268475062350007917802628210568675010904703579277463948294192360844114481292093489526085586699156309943747220372372318092165111437088073022466188166915703916907183049475678720252983935902603972502113895223046458085320567975824232591379128523159114014897659975243180696422389713373241363223053688198772354709489629848511629124799124560369596098530257471351615224665443536869742443723304849028468899685099960555743002337042401176755756187972380514546341758666993437937205822926548949352274171830344709028510605483743571243434289919406193509546095062542835272207508397126878315989627150202494484740767452536652713035719140246766774707774893810812890330915828441614733791149453715361253488235659944497051391880382944865613056826216855308632145586849339028171832635623535478713369933927194232691744307413909452800009746568214491394356823346952645116201387891961127183086788147038358719177856991690821743892425188959426433751358139801658215679845203028395402933907538439695529545587530247334810555534774975343415602740525733792959706856507354081962096030512278182581096361008487126469625457125931304939282334524132390940516105266683349801771936730349503396291826905931912727052568560032842201391534192568856476807016999452137588718417431363005028033786165983060200809424705046012078414443339987251191155847672722239013563401386970189262606417338710313044994889071723255493514821779616688965820776553726850640030881349905758691950172136856946383896325562750603395624489731992727893550845816464374094593818032513005220259923079878232974400387819927206336825763169878548669019999599302649340504589280063247912881124386943565764481062371913945964244506095901176315292560081032764431109207502909225792102587294172108133893689717176283503976291262720161422777853775499269539363306789406206507234701606472319106194138907638433287233874045401063663554316546401371406636588260037064415694612661170380732321529155436638440881832600499426812901474712540878647419815490792871220095984496682392026914872265506123920142620413850426731092739983241880715040229461156860819834072922316851406363323710870260772943664604505525793362613389920092128168620988375150248256312979513619123497586999209499931011431801702033944350154838855986097021326274298247404504205403452806939670231402905989799488747008115095048776223017768960370943332903522538534852450972760884509174334643769978437895647658171659468146482661403504414767047668940314094788039632717916833381024985313570220432368029296597882733195088342114822579170908249574363142565334715297224411658766262567582242194008792343646559203047330272810460153480393328816051581115466378025070992628892439432387547904756403120956260582377679023167214977141749355047106806281217826064088941414460952757594068029241338191944270336145692001053785499577829004304448119113672445296947097194927886997653207796268681685425038237737233316951354379240053102730047387993618557000996315644684866058490931618053683785897867814749403648871372043296915959618829189273661180510738733223803950037186207410412092072039211689983925257281841830184441168601439178845815456676524980676011559550111730869191488086586441716546471797046453911572918126735866166683996260865322448753837371138739334839261252598868002446260926191219767585933639416223516986669069876987971638737167246168294801926303807633880219136755800397324050508916484854590620300359746742223352432502147433067169127811520945519412869615643945776531992983803136554745086442688633570269917572121782096899945228116464105929338364154816020934135797423143629706913731049475908794852035254386883549460102974716900773068678670077876609573859743113976440049437668057231981825370775935403903529533093073009524534573818072660379016047253554640687164721403517777981299954162782158030552477666606941471173194392768976283033856636759279409949161929130899656965247844665647195923531181176970930698561237093730532211501095591796556553563356579871099390387703375567083294298348864090325241394586285935203666419028402388925090212784020886357910109576661604671712227199931245583846409356163304400869219083557807903529313881696492719176956544633721604407064620253482504364386084830422888967889865184866075846688232636737077668321036825275894827686311672006927131728536517165043848500020231575191605412586288813696791340190294804909433535134741956840535590733471379858069805773820661236722964773006696112795505408726841775280248342896971402788565299189362488481333579357810148327296753184495509897634547752116348026794588404017679767876077600158577909016290641997731450256483247557455210257368773150777490221545308286745964764931994182918215738559375724476859905316858607057963563918049725090142142523682197736406458452529486033252496403567542419635952353653708464941015521228743818393450220544062450464554643783768085695833166071614115558172266666195613170852529370711873531029925567513564912527902456031825949563619617918513652589131189856121960815713939113697812048338399941073968025215098873480443447660132331234830908073551534483209885718519965421858430914568632326922808967649511547394506400217720080703387502217185364455669438178561851813108143511565867678157642974995863117783953097955314420171811092762568019153976756593371428647391818510584922908524047596916760816242781736084650541203541833067527968796258274084940295073981892159501285251702645647122361743665310669186111771538505487105950031859324470251048570078565269404170740853896786902632291497569118602988345445087668444307110684016058396768823034967691812930042458309060103206930001746115715561274382453289459569395726909790361213728277844810670224240190699872855570822555429126039310895363993965720792267124588790371512946811146763518702042592417482419521702718365787221746455169261340796060598946565918733285310184412002675180177489590195018166024516438158087484816059104667388378572352268764750917867221613911045165452373894748229073804840721589271114380030782252132970409721303941171253623191282250983368234512025525340002343633913833586373812322239390721501872268142196641337274229842795326750832718021897651643884908497488214145718059319808368273973942552490006814262856494755785456906013874569882704398052097146190287540206858715336685324058737704114893819135363922408966832235917818298420468278593697104589884853212661431194617434571355766787401093753966129971774059393538049435821111728005213922108259963172064176042632995468655139734809243853090164536652494268263508052105951489412737166235107836116512033623546764358516742704672464279504333920838913493758272482890054261480089528928265815987215495080762480391484834760626087586848346213698672298976558120409208150624848890102879468859382672172330074288696465348732748551318584324122534163531037452099713684223283779087106154508632566431259364710953020279849745265083795350067738766699810901274675341702830517386555754227224806407450183259267720735231103663868511270566341089916567387229572714326751919845185928370166374961877738826271377016135186481389628676658224660751641199526160183927904361406735225156697882524951301006524683472082681631169859782659264461116052138542508478993441704950894572306082911262162010305413586417131254072280981689683367908621224724838714086574101116104526787375391383550269413712076603856508579657385234923928587413980344164157519244823410251155486134247383149897174774617694531485285103874330956055172382782404436130258049824153521362953388037294212927144337948439076382966299995360717835474654165867441324626997435746324007144671629511817319842119968279838145258838265670929782553089775348650229092406096624543033034236052135122855245489793254601096906197396294841549279690380160500135426098470083923076994241054354581518994338649193932337516616548122076345134323834419548117782866113913793934019503456192014308631735962795510599923528370994354008775269566378353639670892133589366543030572503778146062498723698523373265948680781390973713607227308987204642918696998990484869167808456312660132765544648874936384951541108915509465368407989100290101906814142560586348334818402952738676116790177735668012817795536292625021068597584554761082340404409823704545523866216985335274420220013274839571804471679008973401988069149081383061802768779312750657271851127156746777719586770804139434131892387553793804466462192770011863538833263437457988168288656389673888287865603394258768537296060485351684298255293582042368699805290112721990012893934244197921745532469068006175690327429417984152607139552065122569617665074459665390610915818304621806819955150942986101932963500170681337161485880895000206302813498884959975891498737476193510313490355921396062071382940034346723391181345511327403487355766387595161798581712131390923384045801512874879742594187321018157341310375288457146829659642979185237354747460371240362238891715827352909898061820246119890202082147146852047934030523150996837616896805764876270495215765551408916483981421557868168589767143197802913681434320485711789363875952550439549360699595127090604184122409429588675124707679125339639305948595001561157329009161671432266861933222012646856586839600923457033708714643978824484813431405214890591201405726170695838141305571203409468520486385955243639766824937138046687031186804265181025459639662971485383971164769086831552995844159865899246323807713238262964526746115476316054155452788540310627549008371911867178424760315798258990048342952483152131442374100967075951126363631604261460631854255958981019115285195551733802989302554016959816323786925684551732452644125905218139008369912282765386695491209711392977131082723134629077150516600508606129825351118293662960353553555436126928960281462119234642594380903276486727076250890805508572710107813597883690480255655236761689067238216046323578187292719388924080682457644544356445010986146429019100681502899867674863080827612416784951673213753756171087514901793903930438394988715588926672385707519897438711741835268218321516622125681993693075320604812090253180424530541503722093044028594495058947820398824361258452889730731641368719198210344638564937328471332978013881812100378071693793274097132566842739459544149699841748038355589312543707443991348075839779816468560765810559378983485466279295179666374136144569945144473648502809028014265747807282172662811348224578924634703596627487653450025631087043176796089895580881174316285593097263197649669357902724099111133045409712385314632381506196607235168529273752662873601769116727907300779172192983749957406511668842680670122332721909349201125288839978386486766666632640093234143075048043254402453167412100350665775731197671036570916592622844263791329478339346469424241644934067886015217729121646450603930366090983824539126733488508358033081085813294454528179516053582163047569330240456749655138016915493755420412016684921864948936284983854535947359270424650699784415904799785852782223449413430048997656111471675122126333051099821042151701149849319422618615249769661102585158001472603971650166151075111705541548097307938886474109692172162281887163994443495811822870048385668042682999577032960684911126621016347355301988965534305171518224029395103791790245560675249166503156472254020466699022901798315280533800135406052624374751459680920744019169183920334813201391748026710639940424198152784558405702920544389265229008780713974527585370292931104106256287622363117530154538924512534838610298712675199111280244848671122432004151070332688778942628466901671894734237286041858025316230112025813847831677690724153924212475858647011296843631890062496192246367005131521224394107006419277262226365887515157042505351120223367874408938783583855380833877187108366012109595053975791902340172282619934383543614062530412034767675996188406233675338067752649159805915871959194515851655030276444451364959347317844438417587167183251846213936598742641411538025697301820995388193594131129387837974633382663353499439457154860255668623542803919220581300354119066872584513462145420039731143876036504204757284824167074479977978110920615454551082009235156942876473361259002519927365887545814241414062125085418753998723807011148557144774761526315317104518548036950476630529245961140260933100801350474658438136235728461323516398217655533704949162093182311662798030108669886905729002448963283673146148627750890381102473380830421522447542070212296639337300214833366085075183774345468325662421043014702308379245700002368067871025905347807235183040678128238757079245057176987805256121373666539346384406892166915396929833593112086210513646602505243854935213406551950637492849512846088703312668540320435998423361551212386473949227729947701222794680266704915936358679084529260152703240705340745777789942675352864697398006949659353793312013515977405397544101182132860227582987858299692584865609664410986532811611169954809402178701910280320793585471846450462235924701120361304954664621023821962419971702812650882520806635405792407696141150729792295601565899677100784933752322756856148907770420727825724392966233738490051899811769738175358688464653297077878805606444097790991525869180029433574208705631573960687483255240591737482912038524817333831101144280621058323216669535303994196795787036389946581830894044155682928651886958097184540978948951247186435743381934204262291927634176717090040408056917422200980722528893728291165170106823591199439355524320477777575252536867407717590394529019441349674965160264000017820522415048914449191460800232837536083005865767216558337789242950740364042839036688036217170902198059951511655254613984662771777363132224111784742627574793984348905031357913565642148320791552047909434669351538299174613105242912408346109558908547739942876012413687422034236728403200221955051280566268249215309577184269252612101692388447162070361004369177510553260978930093099056483982161440556463886839516640944505376618021678655444737398332028140752017897596522588556480505054474027717824817781765658609518415025835461851423005975528589921007986863038078904893013652274128760682104104836643454535708338009142303757973961026245298104496770451770950059939501745612970760500113533887627132560370760815256017318609680480079181828317940650095324317986284412892367783407241716834011796593527224665358090753292660865356886236761066336979761275018421494100147890540871815526330225128975466077950272859812131733471668658525205108229745872766999408174739502057067728486246942069562362971118956901945732947869884525214282123730965592546588890390239167169483228578906542330775474642913343713138286994452270106782819081403102003583156591587616827269708438930032404963724106650164725358874635438900164743038519851693231798113781635417720728513666953204246385410396537025550754587613115812165900670506242160614641292274264265843958444846846932517925571647560565835611214771440789973637995523237175935908512931003159917529083425146788856307761443244228931507401863744657275145534033061999376299298477095668451423058974122559800008285602406334061495716042557742555267841437665109623951578360473513714041118901417345274841182822470258138638363664336912735019271129959523151418706889951791892864127033995471787871210230116245232632854594437108493673935833920936829325454086025867734386164041346351253333738958463313584012205764055024385876377632520201914608904911535426809125952975891902368223832517892325474435532812839704916660876894713779412465143162424984736092488796804511120872642661312371701029813619729728633886732528624784311398307860727395661789463823404841677283872257745636088593570831728211617970054376106116281227502230303854507023063051459753111660718144247585497157989854401609548278134473981728789078188349258376414605570655219495980787950581258241164947955054119950747836962964007734948438168303035119846677968968508044039296399233392315741648895303380919917610798610516026448354390032795946389208175565805004877915315864396858066064488179149482915401704013790044537216500631935771798937964306217296426706341909050645677877443113272455978388375091220207892720134684495685580460516189762082554276216586092104913204813602663574130944003550750849502651027872396401593217883729299755962639377256909868658618624837185731469767651145236025714997356902588819579836966552861410544290353445217274371855109285531800478905253738551840941333723938016458885470913319258612420391603316572707847901084558438258089383938642634932039665522977236863146194783008665990989352832613824358294052646306570704135833965681402245184262144560389124747917615542973621456234714871340635416161095220869588322030627175071116629266278902966100222216022761151256680254037082763432068165147928955087311667312539742820027706749747791425538938983639991745551070458083182398235799843685792335122000682178255702386940548324661892856772375924436882901472171845267022673427795188509875729960178890455594726684826760543112015586957958879659670567802116285674575428696813487730015974347976320115859132782560884029422777374590490813084900375641539531255312089869248350526655856318302559834027254501856000550509043969506574795390842364120663557760972455731375212832322838791622513333054181192710599404132529836827962947078726249449680693182421737123853963682789279806874688823709288651401382589136177079547898118777601950881142329759821119148407125162162301845366849691225103021229111205955425159957251182225918217128802781768035866277142839128130700244702789525519404219036875359038813518565705134564395783678174716693441935451024222715730222254296679635973110142547732084022806217967947000195603857555377958451865376701233934949344986277619595419013553588553894215518342148897245672318238347285325241880853617012526892445232472473855123014262524349896203565136243448605427628475485752142704996334126621816126727998914352340967319204123034602995052896922225216986002080641109013334596273530573316683580354005615752395617997954700311305781267643117426645442485905057191819934573993775779182843020023569255840047884895831394762680103317218822770242718451277929016017640124847990615506307752441421821281147585577375232168479471287623987999517848978739118094531936983918736207949086497972240813888373700437307805137029953333084927326434434029885015477862400955857665995836377298809679765496334925396917739446823935713299309494129634547405352917425504018469661508047640211184776038349724271695807907519856435920882691346413006516240436291753439911728089926634862134175433527985464270631814263148987191271013048163315272701176412790442858956783441990732764928801979793450448638102539866726139301886661052155171125324956900756512122913958654089000317807832437586411083618032753219061146793305768287849524755790141014631443299994397630361033662158629512133213559761845647408074222733103233517923913521343072181888329101838056581823231158070483065163340953437050848757681954639508728616728247080788864134648206777200601952576339413212369440850453978584271284963477249965970702067918334055244696011086977785529101048988269602654021206194175179694218338997393055793793383873046227061589742607861647577696423842139319196782454172650048219763518384841084743094404529882692184374518678299839031955731331123373803106558664017749534411784839703115327912446148995086019334271589808519769691126935015391193884139649911121109687869768290646385759506429141007732484121712242668341157686261534372925856471236830371378790138046565291887442850026133167874835048816533077244224287897819032719239227067971336291478175640866124131518802542813620224176515562601256971353773419914272787347343021609719867285967865573719493254107694988381627664246169564484921126226059507077587408002641217770702460915110631371201626040172583278197056395053390789592451290060966967282514837233641776083729392077424607627990403249895454978493382802846301762119867094106057093961009980863205544490541365357992386259419980747068710009753259045195735423672627086122363994758362204528936144527810821198428597844169177264096849109524986234870189782984264523830288072354699491238886893936234365178441856851371209317924187769470074597372166137314119760454802850287215077289239761249240592007066362414390085956006612502965378782268172808528626718511160288881622859215174835880799281654580026873227930189372381494974416072036634524401069446024040128688876367636338656141313154926278756220149245967513420624576998244149319117582579116872975877459374652525947028241752514982075104615529632391924800063221023940160940362652423399250867933450497359638368786214249607161484627785632469641765429129689673735094770267666231917182779359264403398125067508820348414640797266455757821326718168157526472005897078822770509808148002409617750143151056146962718926637739770477687966936509794621873154302678533108121781831041196507744740963088103993611528226437504094285158271799108644322023000741344739932090383719113717436688412788660471659626271703851319254243184453325010920049985801617893400292747482588310463950478723578416550700544261503523695873243775198291050950649858755258458250682326176986018074702734282357724265426316326372572555839675067499686882445757756999527227466041432648913618655300233881325814802544204969118899078316640435634577857043160070988291114405391640190714142319360420577685286288257809100124006612911110312672893723665813358711252072517703931170000082527590687543253309762009799933363432643536425870466720922090012133019564330343249293075484290652037799306852613495469682080594611611597781057337410987573830827456264209569028373719681432819871004761702921730048436907238837390553725279294357056438912554193114916218293978817344253593768766335329862595794602319633288793052751076491357895723813571745765485276432239282864788140364558464628832565053486021559908365737200365831083116785790824868784151852442709189214655130392525928552422853469934048659865521073310548518215382656392776160040135858370323088908399844076616636772269789918781403250432981572104684348346357409474646421165294725735472223121832377275995932722100076297311239858311523904866744148036875219220651960878999798052356834810183022760790490211322249484414122820536069193132666174355094606629916749197233674350226045413037906248382949785059211130006654852904318626455815846724640234588132361367688696376098905029900469276090456321805415277038687322940679057600089938131371194576110607387493706557491146265574794739169710615165647024323982396842011096059541427693076504153658424990197327755262060528797926525295529592653727701713142984822781287836327766104526360306245446129790507384824590147030065649804968289318380528053383857469359203472457936725679957630585176367251000391573607403956759176986888822183849806674625046142943532868600187213865835451194723939153296328221142198613931133544460385468599102639367077455242550374255982399459811123225731699296325230082961943326726653795156343970756456827067826783198548337291860156530840631134604597937129592489938430458033553012784039955801224511968313960617872302044901868792124166842070895474007940794442427792315328811425920931379215015861414652322892201906729056882606548657244164977617542722599503566192630137036327077491220398482688439587360213033621698525606945249757090721817720999031599154531900909499855323177920327089331101091084236617576972950964329209746647025915120459394639142486081907328503754178651719210967030909147972751940934280669394709568225150495056604456912904797029617810403062447038463920582299406786719472693478593674287233701386136425807633993695128799577780759083170690632386303552207846688578239341891373512504480899358517177725164638026228584280718759245938914883594035954331096123681289610293493094572978724783839209346250981159672468856741848329194038352578478637924736187110982694848139722047766920885651280720855769264311707057038428355960203707523488417185123227123947472199886185693363018410728089512517487206524357861329593450117938879104248384756625298843360257058971012390697887579661348847994120740634523543028947090322143667470651692378515255542217799678198117143748772353113890132532976954956485065807785611346981529298134267558409781051051908835212976945766238772136487688112674749137957293037967841329687221172683402404496995679460500375028636679812365243730044258435000735772568945966115807885132138693304749893317158170751523627468551088931457058144974497096903596021141987540161114292924114330933177722064013982665365534847140578847182109655731055899631589383345535641975013012247519300462357416818544899722310974662919106267642187267583657019306503261971866554949516932562900423661802226327336194192505334730582693768283510440244017546584026449894683704668929959564184907415752065508621069467795727425626729890378400539766341312031509670632015927999814940873821846297461861981932505596376090088964614695168962101272368906396221153886576342638618481005459160205449723309154557994945565567787229450374319323999550792745433850107911808978991808088541417525604326022438924932346896426795949937224389904024065613433360194321585421722389705605035801978635706908674285421343349114342165868039986814221858864901190673040147182970180902881466936444264830820624194346462866388369823113863624084322012333559610099080787884125735612729182353609063853084613559026561318125941304864528860787425681415287710154889569437302077822679518342095878762719877527961394490052100793852736200221669965593226231084320167292861807023880960770585336088549800136407358379033271582709884203276850549617509068359410121612093942075298503837808110024015816827541550526508684264343876922844977556698682476167987403556448563307127114720838510558723655359618024372041087549327788846237374731067209812828960035013657823452947698957690439475196505117132046645271159972224426721444546737936571974309236121789375867030056560968958903779375389854665752425581433192149937246699699260887375029262791071270694191173496018450103312805829812919405323146518220402016038190149696007498708029598887190650947954856651792147699183331013928942596796119494649961874259921734643685119047106866341981098209585230156827737737368414959597847108877497696643137780090911533496339430535884154792096121640209980545972852306731202163263936390733851661028088536572750697909638348001736493586339169781327368138848370218879909304412354158860507592649873474090442833219936106149239641316941910917632042967691928615293876992450567627867196478578829641423678599317436661828828657797319414131169121688977370899969413683577804127507082805301780966859463305136968625189456457260960586650260952396406296786216969979342060971981541231644411912879524434453644971645007611946393849279805084805645422469522085738365113984808401400606585203242060757564015057784044573406569673894440345403390608469524658364713082547575070976529394451725051915128315547150165610926347459220522248232750880163675606359855304292521553343694351260053198556037269204880460008857104402558895050052644604583309590270993617639192939495244576253817154619137665663536045871387480812055618220565669715261579033352638150170312807840629028913433747790452704776335872650402612562830039062060278913308132030447570827561304761631609447190041944630717455128237563723782774457895034226685913424501447713343975893255035281560203646913549116898095273633907487880678705274387339034427917168077730074165958221344592171362934956182768322328253342926672117085515469897783993288073180106858057431754360243974950234548686876385358190491432348676295410497697983684614784666014735166106771034727425154432286809008615225492301398276550339547244488656701354799049294264106317531272215037862542741635589492194918110452608463907998957680513358201863934664686284656080900831588232939903887069381316088823445884519413669805196490985824957605041365118786144401533029970387225803862611606404638545708643838664117284551968025386623672910727111453811795526879861113316186795958911205439139404821321968019107794737439477482363836140079046846766888247271402427279350538519097959836388269096276651905587705896760534684844641397821961116641112833203667460606236452859753760959478027235023192323838651084685755905651779157616515435645059973336505390644200245630758923495490412137126947952358329868409428653005559569816641643137037173726917448128436598670813392986098081226076627168680612051643746176148902585848706877707642560968566358617934243691051385531227704542551860121566010835406209099022926072932853197370457929588787069531018679300167712876276597227077086868798128738546358439448318810505133697676260718469574898881366326715351223995428796243118677574017562988043916965194243828189172200723507841457664854664707561112158919393231363605393637541578106416246862170573847442409911754249144096648023373071565682134194456542481046117942103585200057213230122488947001327502655169181733826113793395401339040141114533737447370861782633919031112852968113817645620180780465956372951000568587415168993427893044391789545504492422976932296221552358025669176409278818958027569796447689391940053384859348697056871158935348755043758092813657446282398934492044163013035802436650752203603092651378727054781527860161285163120384802562035444875542101270868255234645039974863832681154259734894604197865286913810756881075199724247779780570006031060866684508220048275466206026463607975036890309476936441743975164837278409634948109487776049766148656543637653131870832774592681445288858936770641161656754531841491170339759047432793600439290280026482730146780395451900255017374563190891336882968001565372302047083377608573961889996071777277461443463980107210065133110418126478830672535373374518120377575574923535641624053183344677751708627448377312161663939104086741718070655661773146639956712951484655324338790761487822058352623143946793843534429365474652781580371115807491866640703722524876063793976072225588892493944949986194971133397902434584362363085239579813654262930910513616517728720900500404902131363965331215432969619931061586031007270890533808086494734294136914997457240100013574340391372847346930723935208506268389253825452474540453723607477102818594385860690639187604455596485192653877400094869023097981554430035667825457572982198274005124379221817490676842656486190511744989308418138529917509986026330685108122713429572119426115303234846285755860170641682701296273267362592938661701548556969984814762175969292636362920856726331873495646315686075388434115948994369022577985045958755300168422643157177885373527177648906273691367324322605007536038015547294261038216104012133514267720592509833837225787184283749683573581509296929473649688500108510674290586811078664688717510732046463513104137241327791556944474797735792961467290813108833530538284940498815118250927188448703494556535622951442940696781610131513212033286925609806777513749173169703831019124009802156455985876853645818750442935057342866514331758751185910003956129881564326955134521124747225923064751398863923949400127312044760151049929809202731692363776927422131983905043161799541642260089622645948644114236705059887517180622163212602697913846829435789227670052339701390181320267969134354916745025494908675061158152230431648154706262540484772289888693109168398545022323917697493034960126610025134708579124976884841344002737600884906994093150548642995725995110318725413267509720646912532152331549666792425572059905651935920676427330244605441065624650763256908741713602259584509494745573890000236619790331978844941703800918577301985277877880137120898918446474520772328981605336688234665375323233548357315801557153937475114495803506119207320753646471118684732342908943004465301718815297748867377220800389241016662045245071600624341203019436158514892727888818026846283998483847520081813574515303681307985142638725035528215210496617548134501531465681795094250689874655924138538049083452833826715343372137377207776223938927463242259259883280305123742633802659349321548785657378184429372391307280366140456806216283891777826700254142091147581633219379396341498340143632598179648009503743960583738867922694768484038920366131709086379508832284271230545724525902442034960904250956420639887991325852631095198655760841538192772850728011740428695902522032488796762625613512838442875827583583321011974738563446988809705844694192630162869036371123783994639783151377105542811052094825419606537962310824033494876587956425742724051575590915260663468962453038820952282440592193802114847003585588692002389360742703060372421613249304574083780431706002680397581778512266618343385802131635951375833317311511972405724609827320026753299702387745165882259090501854550645807017918031120428252750624526610602437249773588931329528471098675030843359876791937923926511817930702033788816585240215403174614262718192749558459100148539029204831530887997571957722123214243345236432845576115117861526289215544496466900465694655159002443575273784718580084154882340023547230439719365446408300988796546635747833450072061745270717955319752792785509312912355396971236080191192327035625478513302036477342652109181615055077067517822343001261412123858368551130298163105464053557840512734707102485150784538470403093896977167081259042318026428923721320528602001717564147715321983000360045019894894910654185011417734721319248681833132449014495597631352387321602077062587931670464345935037210049182690223185163323282354503263294042581606197622055155958003580275562877828275362356096182462169804492960832499594502359744424360275930288869142977920783162828805380991093439817831364839870334438774504427366532493071422864348186717219693822379711669060430084062506753822867584343487058481043531883317188729757417917149593608398053022753188581975744982666142926825630260445752998187539034877200467371263428403273864288396885246735281040135028681401086576533775697500530045905044665766545170986862738110089526794546513275568968116572998433353258003122563227952355928538728103968425441103535822697173475853696566615543039775052162250591273330897906131548611724707887342520928205388216454542524162808961910294578526492598075865262086352258191364120012561906677435514221268734638007535282928157065514803474407398381188270872083722748643573719137714187181268294588664797719326518169204273318525961099189997244645558688440661461938663478732915850512223224443378776843348734740064076991479869392770006954994241490350040253374901036301249179235930270065707308254224949188716085782634538675540442764110436704758960302683756465798759380663389388479750708827627999828562156373300229964241973545980397726636926592028142381704834904391649982155821073938075568444859208604266623517791639719502817970485528831047813987983598354420178755961737562578777348527441695069541875244366182012310745827191298878531753102187268908077950088113067574394893769098164672793669532578765830340505460820986862437422237289529245091712149181314511256178411084447169779518340245376281729534317281728133447981889878334595680488182883661431058485499426924314645060930007188726514521593282923051049199872317909071988562513646776847995654061061169985792824137103364562374391800298706863834568912891640710935775919774088069477244029325251624228874443942528921634402099485236721089598957698806684394948549134354595425936333036558719598735050348968451033564973328160313350857229691802105541123348524960608274601599026900475836508228243663175948823715634397762133956395485386392203105474599708922513724154597670274128443178822955093156139179617873755272840377535085752997565783605280044722141360624439063937620834725051055125532393208953216859132131287005171128867147814520348831153160178421416382749245066161922947132301748045840898172693284535468749750436793380235021511549463050811931122132208510792256869572641836069149561029493632045800861778619442250607571798510131264465820501805273468832205858452255297099021388590681532450757191788291086953028076644558541129958935831604931756155193591007150703779373128801691389159241450823856874467525950477795897158920536070387662232333786696513157615558880572186714451003109786577405278439556538695380481791201357826591906395402742899850835680612943578092317672243020354737253756750983554814471866334829392644606541353754983166746955416295040654988975337351464428441481392078078408937162070443205277864299237109001630455551794640086460893709998584174540864385689516335407019033951389930953531174780456513330029949747315752710495126460250769330037608013788324067793369515444346229395192890624615573483616845260135997761544609963188798307915588337781268198157256179198968415152041449179383609004220558827756468499360262980943689497589687949154428254453399231788778507620225925768513730949995636281480005298357316768701138267248119036878315038966983572504499538860757628329397931067790487650021032174604056846680932310465951367771785156263220734605793199660142252568979468099419746562073962630416061371945205071095034480169305044716943213129574311727123043821377662736405961171543916132026227916628900983776947672639864907968902726212249814406421608369036393580962606496205885506492655922461040686922992098633177677220406013214864707494790019631427565466850818512039960810830027719410003918373458097663863331541381056696384965441169129376521506826458937824191983650631471393290550886410736206008566441704552930320200510080414838665644358000896060023169340113084231925286350875892958952817033053529621545055634521663556789800043332435812777940314057081316484336956435283391944474886734009224437421146878446431642068663677705608667093994833592965331324402808336763282773416254175167267909633336548253549954055769234438323420692981887249493137045346229857411481728612202234597764760340726819005782526562938836464222653041663397515052887805459496056877328884437030812438021771415367183053408378378417691063436318838356656439523520452985655806485213632775334382441757065480937483002534069884343344250613494735070196912419114510815435278149892365335221425252983173246609338784801737760561747945881961804517167306855385924086880504522413692255211347377173626250248060584264496959501434750328242069589861188256329008349135286385454134990672427739329797858211887030440106544998343014331836148835470808024361377251696469711786289314471220799718075734512334361558995388668750091572902046154838710390390662949798096288764855232004367661868189881233247803076617114353824943502681574982371366568248752745560534483917196849845226590005501920288373669947059215622852119539672541792689286505691625601022678395285803256039193542581519026751072490060891766026581386364144521273983314337974105910957926045353569002887658227045383114763582273593371575173473592833828142306991035514594215649332286397377178840637262854654473489121380166598973781417812260349306061974448060744005545159662168766254227614442473451972841865175373432194439040528471694766317993711033518910072327046624341845092826050579966101204669950170040906526360404818783153302153299942810742691452206719701219969603144818248643104506994519323002294926330686903402099942812952165582618626881643522737198445479582293561051862541213554920155375211816778051658381856999233908431047146638364252439280924558286775503051597325417516618336302862494196156286427365714774530359198925882344641349977656703136429996829907054453762779699511324763925849168543964302385385081022409859142021562878220605467361203834476113077087086376946620693987570971765051326497463782904133017033924758904707361418609770136978908721239427228865824481906517052738205001614307962644056712024964865334358379068998559393550040098056131620332415611820455192150807808028649977295194212101709069169637507322275665611398148465471982510282457854341153243769084276728542709413622306987250320056226799711383821922809643592421852254607234170208729198507619149232054374205644814104578045283393759344200965279407175473939511256475764583575004206152249944891615094986792944965531299485602474006444024832216242253990113136153137202992274378657943376237826542544622317527028180034303394144180082559720734873434675075194143695043500598673546822842683626724145036582203699209175447871644038194675150480869121945155440790674161640652713853176410977315495919616927003514796605218624355947644090077951110014378050500373051328190912936477490632334784806817629558454711881398639517057819966471616831772635107909959274721772391075976004761895057099284725449677038714870927665390288716377881778250851419583417327350734443952334049047975269023980734526018750996155149800617949457861390550883859566405033427466121472824113877977085621087924807356597238015430378311976209782616344687662569568207931814871902244441902220287961922009119707704659359806635384109716126064769714411934143934017238917782950734005802330916973820045765665386973209990343393321723846217686908254570760624601537474099587392943775790047656887661449647944984545238922555945490753227269833192341622956610732201861729185934878835865351049062317657443035121741336076166730726579097502011675109395937562184698773143310977915558219640506543527841287982476954731788694189226487435451499577733456116547141208447474621370469035514765362229063770916270038292126944693681774835817659645689029936639424110309421289536960683065392767285718826122530262295057931947790710504718762378253001298521167484042288105126088188065073915191571751287739392782941118919630391653565354027732965752251776949764122897001065163126124162324858715927439546705319391488374279748317911192099151237898608111862469622514283389949394158950310189338278752576444529423280435305552122061532933049892107628531280144618977640480343099275015727199726043646340548451644522268638948838758171269716328987770708499160726660736066539501035169960942652563776423077476913996960282158869898070625320255194776370627281488326302104548961331956978370492510853258452576242196004397683498661006622257669936100106105337478069235751027220058733163488432746561095842166806913707484411964658300065650879456689140982605093491324780123987497493401224967207779831656313095746168984055072615501392500027754704292080091895129436328992092312279419696457392916838470391299381692620416961036775546026439455053346216283309327161352211619432168408402697108826922638474340518538325213891966279128636328854917244586523842607642304880210384174593833809670921126246670963338427728551464397310688030275106350473547137566375845220109718921364760578769319525712396512341881926301543132692877885172340473894345394372728533507728268374864383125804172515006317596271074176790590162427446728019971077504914604918855938324113674848117198116020183462958234000019886740179777991522710992378105691991577002578043525257310833588512138332816290649724162364831490381812795423362849948668205612430990438974316053799136279369836980202226916866745086532270431613009355956734584732234186283847216268318720561359837693564656412965299610083488487748391116986057265783514754208627396696926168984429739659622025857304595719870390957386469237931502193825748303661206777324407008679417802339591568283553466211556135589866261010548122447453705643470845602366250894209841165837993394978130174873842756449080933352799812060819141481780650453658443217775138774275331710967690279540172857025577652419122118288559438639032989656073677641741262126297372491875708503380616882698743327914356923188908267507273949562005138071185379781843684985516696994150146063941164961675595629673754227420773709897008528300601665864933795638168160443570819137852184476491116708725241064563814831134000457278852041778088361835665773301396372260551969904557507688759138133739640085492894842149751735999250600024336724656329233721469231052110824109213825069991211023578678689679331959397442563781197956637093546738087873374097542476538381588585684455677589279048534527857030184085973955840519501885361743194571122546668554748421037161702351898996624373719279407921486024598150942357071583222720707010439070309205264661307159347472181175816358414283966967081281647450543139291005905376043498160938679640931912631717317672388237709188590342479848498916813004908790473585017761454806486635914914199163005581671600646545507311724012847134062635827714037270301966667250308880231978727189658500485314669634583661558734920556194704870412702523573131476189494285702525490661655288118480225428254992954809898593571886158105978143864266969001430923388283405658193586523329604227715568884994079044648673752459212561222403525385249413428724406508779058120886285950875251383568376777269175199832738552316542107179282870331226704865105200164508568393337407164071318475977920515815529642849475444365955972657122708709882049624107706037363405571353954998365190160539932571864782386323101948475453287103681163265754963752160631795454717661961103760168600608415477173762685855995361401267915919709035005711251189907587760273460475276094028605164090522517328406031542856544211597616737253292537215143392558903948979576891492918738991701452117413530466825020649017304399070228003930936108967991249299820073043468410693086433094769247770297426054155434403807946944861269160347202330848057022819987075068082091268707559242042986163194156157218115519323663505154222478532271739747250281118967294750487840417130435866158648328815806552575134469622574770538312134331146652564997580410592138755792349276176462018594531423493990495009270116010039556392251692599796426488369469975216453350601937131322836806870223817085508309745827252184181613813004463858816769095147378868480951384514571679254243471962472023486365163303392411703285410636107848078820642478958471067973253420192308310429879582920518160548351686961370005816730128517504477838227066254361068112162416652886894091916442683163598102663452988967715359278643575831994426956220516043464223823621474310925880266066128504741914037897216346548846171094458852739062107178483845402825303017920616468000294396820865926290990475508645828761967881433590200977718545136735793197120633039498703914419731502781798271189618345265372493277989910794476315567732097706868885498709536727345512705178140098351896845756291539611916152709853193478456131984691978445488571200332995711476117053072919542556696418192485430816556946489631756444871773246393001143690060962399342689186374782901358378825884546175742051499933055447677842985957399601700636044256449466458740903162517838494163796870199989260872949427035024537766289045603484927657956610530901768353535512633640204093352189156397343046764643277123278118666051108041790233472709318854542685980585892583224311824946631825915350371743020974461562312686307044939652086185027954911396191998666944246783096894446642395897843912489939685785682219473985725238818562447816919421012709150428659010461037935952776370650825571870756592979435171790253083456048068902108272037640533101613530199116974083587319484541452335405473359280862071460005998406405910248613492443642199180131264752077972529761707487899946969670692899898128333416000314458707905230249413381163893047511779562740118013993746296164012728351248902953170008146662705655266328023026057958436186011566965684716747562100057710294732896093080634585011741680981634781016336054354673140155393903351165370296818643910468481970207530241452625826946130593539968754903361342524154009222961824124724272949955124694291213882437751641667904690923049280627131409083038011321530698602998713895289495782618539646075218676912842374577961826240864251474757049191394430970511684943916987190731028575880643962998291901641140958804649851264736739789275582700536024805670501869573574127576465506900195154084655061997141485233238522907058090422675522341682023428824375395764996335327529419239395824688190428453793366000782615545777522011577020634628762399082479941199765441181598815692577064320499568856230977390196080563257445699666154401765263016142232487371492302897856266969988450323305757061303293516589434459103866017959100162718600795149644190739915258166978275289203842190104933754701873623356738662115097701781776290766565242832993507735894720571163645324913680378952304077965050754545392510890299272131687472744848423239014033089326355265894808900044681701952551514141530420366471530668360372125138192342035934959286974731877753618605709419307336304816522900719223751732314103291182951996840786788230304321116122208054719121044218553339590825538453493505858482794609298857209090892552715129844934218773270794306892369488610996163751484294481320698478722578157771491694190419964992498123747084311430534610381301578330662955665839589835281228931874212918824601520243762060165811144123823065129718693822709642161853557796815898810834812617478681046950279618565193889232486629032390088328264841211673760197013876027795755807529947618435741033701733774127302576127328507506948785119783837047263118392981514373696228450516926153098157967680938718438106568281214745738402428344202273669162249631308230427213483173112268459931608868251815497498485642377461317039391288144320712796201827885179760050727150452916815690554523061994738004568205813498215173867221663858808791508862219609886164434391096598179653931930300597634109140722749662926015126000419359553434421997502977927361068153897777237878132782569954736704393615754722068400579957902276254468145950049983019665324031725022654161035845106734412820810910131874132487675173651202045354594016085320765301435669589151048466154457349995268800165573601067597231578296684701196806363066392226595337019456411826825149819122359636684131286961930357016722464402152026526763814129942652132756446869688413236259727680974538475134421768051105534432771579037570419406408335135862781942863132685861736833891573744018872731011399619541049643411487439255821033858356642799915802945116663490550630563563778850028054720990854861764270063866735835450250949871592816803579052042725732387430648951149364893313755697180056808408148852804416986660264188967726507935468442706942360436389679380857192378697270457085182208578626098621239566248692369048407218556825118034052234318012910394795030583542131461436436282544729098383868794427195256216041148972289745685568179331769849782020169197115965269892040003247393308620674678344027803670741387599910045719677342656623437362036049467608922157300800721856028287810577889165044967946695276678584029085262132225958883480649541735649959658986135707841944118239003419751847705855757968832875460285880314733974825874475982398862654717386393209185818014261785073969040560171877652119337471468251804508109227465802134210266853933895896836096888515967796115719131303049829718105767357836870863993392592743862786745136272820763272205225594422597836196500164938566975653498316607415475429839840313739645028022085644888293061916250498951399489134732473210347592788441812811426108521167019837557015086895758480416999383022992791401215641690168451427997002232689122086185686668196021495282508120243661037346595640699724183518770990355127382611066518720127364352870388174150568546338034893113502989307434919196423604375756875086962967620212317161588922843250610655350317819394003097486662608346818568800755270529472061022124806807957540367577817332239030859488213150748291748512254879964093161347441845773012604234219687506782684666876741288110907695526175582134735296095052727182246201658281485004132681924149051167577846688761493784757082647194707956978299006866612864792275723719964485646008817413206533559274904218540793548272341092210220630457825795021760511695111905164234388259575565260115137283308146994994497715598093183920611984839859497080446229957016084759402288003365341953228155631825681017539973375299321359654676101407159462049430704569460245189545159596948711911468971359429710309755636336826798870928892404010457235004326629171243746133942623566604420956753782921986356967063639681085541167396249178077765151555003729778200214945511056895621717132092755694995912464925787121331801077986444479390112349556663176140484309399148733140450012513603604216964793467402011002761480444682795095511555422534007387191041577143049389612367620786715183642612873224461130952005244388219394721619293650422833835766992740536709624708268190404700959715136017489836246759790539320024388576927300524780941799143155044310816367146304497125325137408722585119628317336078207768092426295537824496868813620088881174014944235058140869018744194341589715509406305161025927796743901005816007837314556038724545114313003484168394165495756856717577520315700782704784432051923580988284653190858141220185405347479890416147923087914641468570291443416453170304679688799616491869489684920402619253482361710857648489885882868437215421011374159703965806294643880724739749895029234664768307612037839712325932699417961817035661789910317602266643675143450384342549352535239297524450038723513567134210550118742068510592407536182167885291432985080924499274174104805358987731403262942375634020573472068448630361500196721743868786893912397708720233823472691307686359046720706282384962930071598612886076949357880259957399414955278276423610776954968581919344255561200858740965262252398661580768063372486119349643404881629437065504559703333225826332575895487159310762715867921007471496637016689313728034354795763870741788656264136167409825483139662108922754367378853916579118367978150992256659258465952886633471020939621885685530849054504957274934670460632945792693217701837393931229352167706769019586944930599259428520670073953123052264379128767945081671325350771005610691531549988455273853066558058098494792041586951193448484403158833459949143145979789010767810494242450111511226847069493607269127960783955264991503898109991564583120295533211668737269941554673528429342385991372053163527643440905357038836220439212813996466575290304294592413506896323736579013096732747237176475409284739024042532141357068778241488724440778217494799549237533623480386335846970063371546245493772049602301425874116554567648296069151943394942140432900300788823719676471363880389161026868389507210349732713790158508490307152050099584991884751211478159322071556979586947336284236390106730653413155493785889793060468557546221797254597451036697092228489950805383677746309851870504652140508316776818764035581362427538079919495405984173767023897460610304573359523863412652837372998174108049859971843840485370823502377855890170629479722541345652994168576865004095273467187583289136163567950608962557571894810896481422648165218379980999273052070296330787897797550198151213646761786052841590447757381471798133769279264234206099123998675614456228603401314512592185274837961465821191259349541209204688749430755598353858475713740057784348726520366682510594619633727066986187240081314404017716311631712926927671100764414628362965589179263894937096390994212590878108751584097552774786319426055661747453099838083642311789648422601474158404617684756086795986513629741462136691750753350570225835339309063627732751182804423232883081507993051577851101568758625843793668888368593523074450701944343131482773532767957445204535313249275795013556410118201559463443089660527034419801858685601552393767148905129952070473664067024514460488765042352061817977126424605465148403628335591447446759712128468369088015972769736081177537159224534998035788323318022987280552159594611946099588667657321126059460654152761350184951331376163804230416754033619094966878690097824066592556228685424682567643389133010273375527961295869741908166205255927869223377408174768092015781146870286333228938270358887566362517030247013489474919106970605587961609324824433138049852637606607103763099921305526811476170612493851064597407934341442549752821473675046918281746318570362102598546110221163462762418941659266798853324892492316405082081412151852240237588495234928744852603641920971842941162682877450714389574657548774438870403526291250185631151007078557868373689448382709783554353917188199423795062635153307485413100287100643288879549950109787682457477152104195257373061265066836718027470046575376649585533787077225627663279092524630777778931344896075685434467192415195444587549560548339113321090983053966793359021455644306034808256356178759208313403704631999173857098296979090489571942657700107030577002196307427978703538596913619843313168279393559640638147868524555252964733325165718338769979365152052663956315658653868781769297066661231123432609896929296289529830919211956128099344564555866327383475467561489125840868545507446547625055251789317247574409053635467071469492133614980152825799060789134178677654524593388187783179676883068790115037730299729278679458743410261537430982789638418585038013058144299968758159701045772016156509474935825276033459516605167193206347565133380378176275750107809046246045604904452453492868787961977597690636450195319217137843367160463362055793506480441105520340587814135650680509926066627298069345372167563307529607334787702094772241968353784317432235931885684282769793365067459830069506621825367147194787357391625465148656006263286330378434921333653068718699447009957514670936026175592374854137209469045394590264826778155105383487551715590771098202592794497681693051109480894216565040232220014015680648291338131786531438334537887189636508526497121422909594646824105420336293806312918338542178667094154872336676735300175992603351855823066468298899809175378636950971649941205851883345103307844487239849245608850962567298592268091985999929625480722917528062997917103107489159001155574189780577432862984725643221299991003369582047456169946812645553462774350213481818686591397610122376877151665116829489615036889976351617228164807289749930584761763006184163055090394478770488304843387893711359241042707449541048398627613964720196045233771083553603236374000909447941787920917397271094911849998699685765457198589302375823484159003188582712943158064571701942177289288453888145400703944169043750440899500452492571849929462609741321672571959943591524144968686740567306867488762474682486962240346923629229470495334847649873596568672440922767967158820567674441041672571830664907440150844182080102776060781786979036196335739887334584720076142195538819166424587549896959547944181428014537569961866742646706972883398752896631348961050972245429746123607808292099555828444097944772782215443305327609282972583345813290310194737138500797016132020113638521555199459282765825226571890214671376483479565987017900388515053288095258675724075193273290019266705791256041814224906813936054391613713719983748251246409943553813161304556362367283692580283283856374880495704983891222512159641161172255251998136871321290078246884814939067682717215188302171622365528834815531196036420503901696314356076893995240967502772920042972066039504439396605557435777610761419095645350685798943292412221877668983188864660160988347221836622627635547925881650421832911046193364431086884140069199988616307358912887309632915431895461389144252529867637807752769236306343369119321161719163353195138110079952215750467492477261691933507426393497627533335950723975320764678165416778247845377914489742603178295406238831212764504856044665325997667483503686133617645734494764926911472255121332274122568382429595473645365531136032407443492848097465241534313534076232469667882004308795712843570161714880931099207945976872399794196983684471912077546395166979744374929739686232647492101271152853254426304354307367489185985920456985735029282361051131976426367678599790910541153406988510693884097281912572189673412202912329845324536527188930576214924412247772021458609674656698331369140207480617923418705298093867269871848352118785587467909839170890079864978624271317651188920224471733568289910241664615669505341661984435527787428236909321191834705298928691532573370948464547237222572464426652370339358191648028416996884063855222062220023093751427440019408821227844886581506137639668399939103596481241083889339877187819408431928929653261347508171430582265732621151228883503066669185261976283939069167802180128384145697210896333668333393525888031422900408073080426118845593482558269942999126548886927660438226321882480785470840196847342956911045497000249051072031481518317380361337677544716076221944786041205042865318190897519008222648228722245778505225523262110989391759215630869278609575810875186782596295576740005044687402095619614886706254486397675136687579696107348240063447136475882841328737532879518604132331123782318261028738846162640516920677703246142129895238305772425904886692756998555310193917655338594276553381334796451486426196647475172448910355729428582850350601068078001107119671022298816565686107519936683511013392945525051714271907774095327571469793139603909117663350320941656888503120948321522239888527387639827381316595547572669131555870574555925030780719853709173122428766253341474627081294439926392407584743785426284839368223867665098465485899436559930350351022582598951783490080346054440867878802805434823483427697429715351122409090807858116316511906092978174318112586003845765077333326661796974024309717304867517123893523185763114251285414468100204454931266755120476932318948886281552411607323901380290648265889751077715155605846275589175050091414576729100739669339672157370494701421293781000702405849185619965639318118367761282206060595677449419995012773847036206429905701823857169137513232010936296299832203615008315340102540060697203614461044889788201479583976022548056028564184059589628597293463011905731700897069017592495222967170085913168746308375111299156615129251243004580705308279801163354706498719417751223186992845205945290757091876066066108846749765811691269185389052744788216270181630598473747349483004601505928760194636468401951985760786211453894955658363149950682548762417994080924789215056299290595244446692072434012398976203470368169559706397838543106406025765424109102623118897284298146521555606151364227825560105558168406547993484761570088447123089412639267171779190019070534744738836392916027361304266533654318905711043174495463367371964813648553737190581895879243430711689511418384561320192255169168591534344988802078984880609281923307084350612972188688123155010186526054094050767549368073682389811399621779211985301125700425537598041665716821228819606930486983889059213116042287012333019914171286537847283727314336025227612578450760484003237889970989252316491766119259160441923668710202136671834731373779342468746488402223919523657940503906100106523620021294162000293635512369514611555375822365857282409772568828143578091757049590162048549482155822710948555983552395197081586290129022617691885551378420715710107186135613671502281043008564795846860559314492574767321171380432863958297767475146213046251546901772144972995115038559204830371819262275146301685583208193938200110582805914798285422871861145726912088589137275624918736392355518379821566421080042232361448486530578946519111776799596789747526385501629249766497132500606452480591939508521305367860916329774929921166381615195670763539260125605595219948346833471781865822684838021467563018051785691109450309144003360482977033881561475677439418809565684913263088587570497526471858095699374034526201193313155102970054908619809587514981039895924681677569470742847862013914167505872387663211616301854781764553400386134741947454978429953506112427046585343090772026701315935170185370759709573706740525773670030016747627435844453258909595626334769040310624739835873238695385971061245728166531319930076048970765075020117665300498687006518622192364321242590313580002181964566014372288984615917293226433929530258262111586166719313414244288060629426218494891218369040283830033082923794179503515812498866990463349553211645259877686025795734158356941611300345082175590767845081816714850016347896447980067696995916083514341170748711436586632665786728550131244869448078238915809360795286772210331555944508840050394430494649069591358306959453693458737979771760319278778518253934225138884205850991197728650198147834648034762090192277437866201043384124516416003773345982400640177684947543356440602239745166888650300967075569881544949713632732647954860967920173490974778011471690237144629210758823993792071052232121157231108734226958985991823567916807250979830049044093915645014901574815520432151797614869408636288194780403697530096864223557822017534094690672031127503266095378542688232451176180864686754881474837350112878265284687826052939024728556733183372202804485883603900849092153833093601166629442811255538005324104684467502748636833876704104919547340989967876339184649225739973937903083463451214569582646609355335196356867324834146213111725607307715170045526798049408143960179630567262408041838958697809939115434503989457001057587484168031703103582541007641482135129787834795098991680413941261647478569186786281728949824532909470577822131032435467479880624365489581382904597895282799026371884057862737865244831215163188002203941588449675014387043527468971698094277749682322576287683221982302075595493740452469431540082238010212254451470485396748152543206888451180786871311418020400920364108628202336442077032659134122611741016632850200414693580356432666434726762920196122368920636489386017076358830629591921532912665918792611496217642207552052755369335207185620716128518644795650668227942572669641679610923929818347565080609128730531437877156789623398280699232119613397638601195762726964166409693178673687384760640109449040421640258512146407082729820174230620506124430744349342285029337017163809350645222178073818011426348508065019572763644259876794527282481374711508100000753561481963330621943397303528896584329714937433967273736675787864015004326933353385431048771755501302214418893838403978993890976133131188457148934797905264083956310044803146305724861371743608446911271531778265225779909494277106969772321491368086699550623602926652678590383536366997345693894266265566797249237554641710068487072936920560393739428566525364543117091401241844443641562172449253552158676987655998564819355376212666616906856448198579288904776746281837209248579693275906919543730219037384342458580530463366721576712668837786659098195712325356055931909171319367398988444484596533639771354317644095521912789265547502874275561806626196077172856983705841258511225988855787457062459324632495847947034683783735272313928199113324294051508881421220919728702569480878677191849099697583927028127929582746022934433620829631064664291602459066190133140233983473316436886858309876920584908656796897866475515405216868007992557554834738002766851254789053665695199529194808989837726487306222259088490500999986659625124302399246953088065806870097303896991599726243978185473036524178842451429320686140147389930161924737576641533332555325944271430906699037570844413766278590852444267660044464015146628978283350617183874237973787820240732654363533753501478941847215969499017564010081895905353138237729710986653778387099383760769266639198793857134680953709587551401369165624519520799252925074001738438230370298046877310194453991932137368682014598759790677864247068883252974966392768669662391651596303870732944835085291586092604178973522511540254910788862661631663411801957449415063144152488691510009526065039446042859138039297969579397050632925716346682871544097398601918648576056632195965763894244978048901925541254031387029059716481157529384285421290787667076947931267292524970663103238028435822035351291968591908952771537978333479803732685585603368837254926561746931469802304131001286999417479843245881522816105424622312802749391655552597437758943656622836253471586565617299818080406325776162404407911737085330629808536175453993294109571726917097885054288214395996750883220189469372180294145281230404892564281476318735592896174812138415341064129182751314460035603961510300266924921065823859478453275943499963639757127851305517928194480839896291135162773667509694310005817319539406247553429384623042543532495798563248091835241423149991421600644192629501857787412045943083005845195616097339607633724644663712375439939310760510653717726144079873144421059814104509784394764988474042290273630305505920999997218202345616108534861932963456512592738079406004434585788028904904995690074639997838550919342982913332292398823601693443642842324611797282576931993119579380730984791068081652078716759131068878224705167081851528118877976107996718903853453039454498465769720357352364751651183532637572961971410207157645293893749917184602023668091042028240026245673767704879885006364654757127246032957767098480300334466958867336331610641042363746479642723967050961830109501930269863997561521426037580432310857311875183302744747213107015969056657079574917609234421510740254387180560440864313653812911589144335840134015135478614770245373369128310154747312227639100796797670169460195992232675522990887609874029481654806718441512960897314540702112074721304225567385775972281462041822215718399507433075317375116444685803869739601269586387144155747706166562703474943565569026437774709415625714700056495033413086912331130462948851433257911919576659285255250816984155672226033877440337908217579455954507255027647847799439725967183861440258599763327583932789267527865999352904287582612843199693245886879877954566917553831672265803446791093023444946338845645519409419706650676780421343429244660298555261822690113594514172686296282565679726852732994093284903689131302985527447228458459133657226089276465857208978415419641540975906960824206576288054069278982967905504001416442998500260309945113697494838483491197049187010059473491440979372513950657175126771488849027291945090251273846675243391005507030885690369692405709168949298911026414380017038452887962099734276687911053813501335955967494011228188669115031717211300531272136676915684558168867675640745534293296369714876166694589640944190845720249199597278424758860224632511731356154463614891864100495339501225259031615666612361168038400154134904393117390783093872059828474211634521210021736305394245793862852839287602472376043226874963743921575612905447696976517467764312042693715284537741619440512166358787384977353876095670054113500019356236401422862700796548924072229568218008514102228261180192388576950547886187474985250859067491214766828321999749295815691713246984027149607018215012756594777997132083042124572467520675450944689377215136949821748438190652789654948894189745642951951882348175746407630192402358206121894427644485215739481442489441401734665977939694592725294291269233500604882726952881195928253614575364016138334994982359798938024649744796142886306650175797199300662189603581193373104703513855168929288312549470618975262347541497062053946367991355980475860195251087741626440150495244881166186950904739168080333337956483122728802794855534441466737675309156509069074654058234086872567019947045372116536150654770992648518491556620569293875667352402370164416727960426115971723400303748761208338076812727455045016137577947384252779555700906943609735225806587750781808423120694502254069402214965382211481931399202801219281755517469550744079962433723140283675046828580447979764191330599528502240157566734060006473697324164150729307470380429141697160346348767083586262206471032455236637257427644826953903235310146343012206441570339554073365282648716116259443655119602840011687087927137205453192032148213409189552803816763981305673679907949025207950415779181747517700927844576395824894824549619544295878638096802510086596110253740658473788663132586112497520650326661768851628385526464375844294738014387690952325132404487018718575182041955355787006809832683065603665810606801145710604485282250004602266490260300168926402038578807905145961501280946586253347136890154660722307174329628021974789290031224051805763580515020959223507460263539256217721338537128527407093922834395225498139727411827421388705234661165015293589871368019215609789682178055313633947156231720896163734274276136092867076975555788854909627906334471258457163329178255300425593170419881147557040952229750157160033334983958542013620771444089227905508788000856785704096009409315268449106462137085987027442499663826525672478825570362339611975415720392183472147303264054484836711900461758800979514790407394877983624322049385572323611573210638118433934347245348809308632471096679113834849208984883980572309228771055046447389019551216139153445242157316294485790954939510048851382709283723082295915840310998370648462343469008514945494495692381578589517787518902758703331960466042210477445573530827931409931955922676466394594498837144352478306676301431913187359987160155466866604929645376401570338764406106926562887823469350701450490493607662426219442174794898087695072754598597818017952666301468879285155649609728337567306787412834540597462006484122985730594102608781189240831454829624078503852762395543985922842672063219161338100968517339290793740521374473042460739286371106222691701800706299824597279212336394556476956769830912318286919745361106194738497820123252059545351921003214833036274125570875506516048813368542069008036427300261290391967352560216576830617183229586278328039856303144645122570737747920840027420515569825550503235503225400595319605853997463847542110736686562039912580123983391082305528878232387147471550767186616531142020912605899785635337271846984108211466275368759455507427180511834848058703092950468165129501225174463952209251326778323828929014392347231921209706765373742429308078497711715681914409016301701200932572980932266032903772049425815265656125321443793819935278940139224123225226948522259305624448717451165163515710441413642794327448319232297410212187401465308322273094183826662520444540571372459504367305896586739710351144519908665933494090241316586665360641006693554537467191684216014502909704582004860259749069316514119806235915494908936647240177765261333789840197967842977497524717377861201216229933050594359934116095851745875714757426294675513739451231213669908977240349827071618482599376217418665783411299949546878969175277945926502325317135800236988306330606792254967709560043796653485685203924864622556148765198170064920863934044111692943357272710841644075620305197428783722523591870780441334885386768090896274686458349945173055227672559437452016525885118759648530115797486007774863331667586504041297554010995378624276051638873683999994172800047289262343641958733810547995261236528447683118070985947469278909536893911645665848057824613594561840432586643242786802281594421347356649904524132975811128467870548929044959607570695998771191987559937120193874929550023439230782217518620855837267190045441733359507215334868211464418093349116758923885160526154100377366071827057151184808385966021118298067153156203068995635823081834255044523078616053261256141273772740935308226607467001124959650326330319231773126929624353888917957842979621245317682956624276586984866747524205327220359478625237976204278558431579350987649602083955129164467442019284000803818029328995058562932311440805112721723098042483909396829346039653457315558555937935400327129843221143063390661439502582532003488696718613843083634912717939215685961748028312972592114336596482731002666361655993252738976721421041189348776130150296241570685047598468242721989503029030009239916916294668764336040152870568792427503140354158284738493361088322674086729216870348052211905703312635647917057634263388433990065358890345705647930690730501359023035623743005470563585860575372426026678116836973127624015388797486877580469581234907199199980175355725292605236588265529868323630214370470696027233418351597677362751639022779263824133765661605810155052396311179902600829758408892584075709164351398759669330125463581425013403086645110418418747983658677846318235383746332832810857823660280648169824587855123913316094301054828832335452693524488428076067699038364031904955677165477737649249049719612717050498414674729142180600508055056688076733675287026748445754616915347253988139019707142030080092820926229769180451876019316677519626763876686157997428662920939303407863385660193514603678689250568113315571168101770927441188228776143841401331452998804232328756243568697159703032159057671324371545603482112645278289629800545872245468713848521270729235615987733193600645931888220740353672113675320739398632994068717045649980014894127967816288629989635566833644514888278370974817933782995948155884358226704469158784722770847511676603633938514384499921275437269901626699969891528261335682859001012030562837614007761247901847326043385611849363458272868401454838338355338156542203951417895000924158326605259812628347912726657300924743088497515926518283295508969699853557364834545867059612767799259526596388329184740251805727151091061153552849668861083522863372202382263007004261469349400340091874515408881004599157695741101348392348028803318589813678021265966006443353425917228042653299965059895649275774725106116961407223988227268949471930959768556480111210689483857234775339193460467133925790698084614721961569740987053131705806007884510262514968156251576559334937587756096388466979759077188329482714665601087011297258533863283081674268788714076680485448577072736525735958489253114242041205238330189617266369380765299866662200378156893804026831795285489958235719042509831730165689215808186465309471180008556036954857591992084669338551129850709560838770041607514585911755975076000615999396482809507121275333895862948136477272605692569320530351224651676252513248746282598789372824752798244311121987534952580621004134886568862890260546052487642581574940203468858944366907601393193535268724655240144787746020753862871301676714294128278611316869378984226620646568436247697898734615203405431361703217095537867993838478240795112180751532071331914976450346925547099276402835086721581044979209089631001869919028969124826945819637483687397210029052217764050486974299519858566178747112035342019824300247454396068646828619953090222680215794179613387221312834839484242591126977383837103930553930053628276592148501701815931448182778596705798743279495692437249537477730544729981358997008495775900007768056764257149162515617846244651168611810786788713221850824138089140396491183289093586352103629780166372807037863607788129889172240400503612209334336849572753705246999532604328174684253087533015161518785571845938043415231776530848587031298044478257961661703696527705568212938074656349770275843139078289336267192317919846284089552000455348932691302008525519822119424558909732546061522930180749637652273200976367942963114309847117206074443931630652185433722910495175247820457952545642600962947881695165277002813163116853543461925079108346165110931695220825287249558110948562261380546393059007989548894286034723087307071117485613661115126412628702366595657646183989899877515616023586165043901874007668298566301419046315429700307219871717422072986293891749904868526470020215142636355311611740311686385432151569336811538778035651379094947871432270917741316064849826534481345001642052136100488352362019849891425888622350210085388261442510487390160172851192715115741025896052016814853283355629559202541295982667446630453186312134285598048452465140908741545099865507471354625344495947250351525808294780079558800973736536278539384632871331958580850666620173779550782250672502830787040218661048635682134619604740423976328513394216747166050696199443465992869038668207178824063589630196747822124127741874804594907992699336777843950802477199249600252441866627997691174295570586385805578636213658301416333111086023347810549821251080496358227668549194028584800453437383490159836767323332351779549482889936244563131444945366108209162207126534925911481756722787825612474032241049005874638115487185636124768686562861716614909316639891225085742423338697394243726152787260282248494321155489807421105410971663591945302997287176965421718854206640139981757209374571282845973400890035384257023222938112428085442293559917064770457469984664752448158844040228069666682428792310496977330462308118275892316948877579947610155904168309937568353956848973222542075971436910344744698671612259540869029476671889840966410158562455648244562724250263869142674248674909378157720312506955553035255631520801805786204880267585896164015452293914335139657756184985606150298404494484365320507210775679295612867436475505295058637688928546075698929980877090213897439554093358594621745668251658241346409832545562305046621977773113885607391546168478672846792293031329957386560616807871039509787270368169765618263576829135150043889838479161458652941339996575265527330804557526708100116953461411616131326726095428432749668617039305595788360018081083242644159380377695127523577653159404045288385320837064772679233696969135203268945069148140353266683581392081061724279874940731551115403337315994734235893677382934345048468672693663770198842423792807657340409260185000986211961262115182253282532094096069642949262056268419807025974977224157627080538226146962106668415669814076857816108298331368620888061270353722002466320997963256425767767630969558191280721193392776107248244253392646543433119110316590593382033079314467128032468986310868719308456542904379063874415958566726368157338654480236465312209727803634788712876165503565004481721756895705329874470612796749921916513042883737392658577594892950999370977572789651457289977829034649408252361638688888090381043493473910995092846733342954136124703109448834166071281146723307353588892594202146382023605121871630793106362249594506582648808313659003491740538753561923985680171137997539391822936251921778611315822267267160077355105353548044316006635891160082973685312570061394991797751445295718407591864272704946669910216047445850027153104878153953707778073205570766412111322567830220580668458778190750797981557805682679693894112759217745296800641248128814284354570127433285733138165674540754029710739631771632341637807462098519516335797292741205995057226145388296858065237540089586337633274886961566256331965447451138445565113011675778559567819519790623506400246248906480923377425441553783760808226306657009135676153084354493999551727852070856491182981576771471500312540269153475232718725301502356876516303668515082730701811508224864395057804662636806216792977568575842104202866583145074680873529921575434302050366043049460487535793129563846197936983792689898196944399540220185121096523471387448208721044533031695734848306907766513878347468927312133970550985283966136574413196680377108515678904607195693309708950086043341157226108289695674773488553573397249985385168816663630608639760066116684808283389369214058082638901321532092546108263861667458337899958892330780248653877495750815000982722915161313840296163306427918623526766068610794296725877929135674338362565039463499978245086997198818092819399911185165258679390517462177561180032213479975478211581001473248918290107143782771335678509006924084924197914568122739137775161786650834043454313157088587923411148138143649843846989537661351622748309947404365743586785970759292421405239802947195505584731130450788555724791515578682463283651420175248392951834963994274022126262963173355550419736285126949596840680598888000501886534872448034000703772805476558606759494141873643703305838095363584627272833295953917500736958043094317314211744006734139799568947393549506969334188929496365816812604842890573809371133139750031945934223789254722179147459150773206763588549974027983653244738695114617314335156432475427213167465086069139569083256061093303143087150524786789064994798177393896787084270806771151064421910613136784332131697022210340689385842512297990959682388442914730520138436118868418758892480140569521361849411212815500644087625517294166932506784113117352619191987752811138371023553851203727076970190969465793893844379402821403678170038897910934914538111771607396964990051036261343708329844081418924509673442401219733194564391338306329124145308838236544085875859911947794765525075084415895855599117113057459888281527043099016232115621662210921158814090640582130877669360579745900628810244995024118593221135305896984883023608731157982144636855957636736395241732963170780273958806091643674865169273227535815798402086179396538941369050648901299310301421232598604271066797918400769059707542266491427431772920208635469153689288359681902705234105443060165317718564961744156951053698011678511708189117906618476826236407605549061039026723820645168021698703194230152308145931555123895078342598074580668443911038463076714116459364357473394293625563872996194349362882494041322615550906234116953982451493487807177196967315004475728873113929746528844272343325135630618559665255630800400425386083271885573008411917644445232642819107386020134274746319515617954621868866191502844687832681267232718030750245664128867748267765639030548365162595540592325140214009554780706697195371176916669206463465173826481841844549773789339201639551131173986984021233260631175468941966478468007864538011238025061281151523591312338702828240705682890187958018159420179826135517140850672527922760757810246987356649845326676043105698493792251431147887526754182487049149849163348012806172900912091554152767561640037088686837696403677029316004332059766232290919621363793273414510656344955086918996623761343433212688190858112958401611429039731643168443538027337001994603380861966881589933997981313763028037998281037227009426557670610057891985623613518747299098985653341748606995256903208816675250787827395672805748087793072569753966543137155277703619772309657657886489296497346721094296842702572670166471677813891901100026432785139612531628273041313390677835450689633298656423302791614560002367965944279469515266746853119344494959638270324947289770697994581604792924793718478424167697159195269586800337061786440483517245828133433241276369863158530360840743283841513173240853990485266142708918162808993498624036292417985146900503374088190476877236709606008517624410664226028634317524483491604075207912181783332701457220087097261491208357169444170554240641782857536280087595331185498221664003433422079217029560346418474748128618516476962595929809066439968303659064905823071613602842190986589617131741213499140175096855919980244942864606379277060882425436803351277303534098130635931073839330773866724488442349331919164489296544401986999013650851876202720480228278064218196417654554127585339782488530584129521392978493316408788754814223766845485030929442179590015098263032185332455076536920502955914984318734475467134544230791977500894937097268778720121122008710242359665220594601507971481596826414059753879911564701102153260717505056897282256320702445964032004589527208298786762851964144392003744056094322433623151166884131898091182224522079614680627195511377222707614907366559042831002326017226393493267610829746010948130693723158377896920273315959940371833944894221194870900245164304262771403891558326001752880711694786822507221896005853197471714100946732622750802907985485186077445205181032413982374125572451321069403665878309120815796557778053758982010963630751194020188888943324823652936010157455093112024124660030113823547725839492298943694198353855055996793361022729477441483340595767545769791609761174639080559847620491937861927280008123600652809777571263902346361159936315787835553316083693233852900049535584942076336199919818027369459522000252500540405222265920530586380345700340841599832278460101302028871805080426045816683721364015513094190603740011173292457577780266906735416976432718879452968407476896045016962434153537846902482442084937794820046349479309715741037109007058480691462041147342852129611172490875381006077355104646643824566069010310233064408606621880777089023860826442009725640103982287227233068028814154632784983965807787742064620891642689670000580982284622631121696764551430188778685596797615935929663766340441853804619816740297126224403457411220119030940475948645989886492835188901034360698161996644884489941913023241737524004865716216070741199931708544636024955918272012822206227376218425215803741751653066019797155054322067825819282682717254561580440324000842658532053647477456355419576587626705587201641424569856524169782422923655522313427274736659852772598970341713287877252448958201321204195926967589066105040190626944315854422899323092713196745399956151472560795725870212887948093503513856595268444741850256742303486143657919487435107422050119451859183093361313218834074698051181459569515165109021690856605426072212596006295516637935964786656065508644984923786496968648931013840288512127248170322413557325629225483146404414767674052765743173308300762324877955448768397593198234748334698463156630352031348469073470715968642245511824717395460590474669180754729484385763403991543489890300275625121300922708599378698951836903083870484679198158617139964728957288365893526865429784190501056988120538643316020258664155224851033892746376951626787252049447324162679784896804214534218512535497653434394429396372095665458454233789545587643105040761216553345488993011713988217932562575287261100927336484922859772351356305634091307742915195730740162737639330314200545360521873251128986119904429512242711921390247140519477203167375437364358068013901029197947337087115710871944216668892278248339520246973543216554867026183628108087620405450742025554938420150098332773731846226379012137285557774898275877195202492058024755499057676945648330810657872154377133503710860241225226517818349017210410538561963692414779203661926431738935282324057196241448711147603789389560384806993041635300544601335315603296259726249419240740425348393672359956377864015460358514821210412357465241711621528835523128671172259710132229449738067792679735476935504181439241012309574219423712062789202454530918203024552508805827373111669519116209471142434880742467521920123268284366981610544964292326729267929486083521216997597268169898488321904101599005644200251430813415448838944098540532098510103247893935238552451456413710721140931106889786321191964842137141189419999195586496954597812459043613878057270479484547004107437529841258701471253753686205738431584389643914931406734106234078439048593197593590045971330443263704249232204704384544428100361908116375113000019750070301564455130901411066981091684265660251643491438877026948105247475549586766404987172505299162378887247215826529468251764789865429621646398628901857072919478042202737259086235457691731774411868761715278428259843927945655437833895183063574422599416033588999734926111738544443179094953834327116851966284305076462837011106278272820866785702227662545068195474377135715675843658930626170026271808375175328500861170379550487691641794655483206126437418590502179294056137839588185114660458765769559326645296825369603493347012996393032175530829989408238752794624943195092195037388470894270575337669343217431584355397886580975420042331148987163105365211114912028705770851065104722491440341306176541826574074664913867062997814914594692593573361480138783613346232653758593347075252932980796012899481516874529040249145337705434161262335520798442254209611187225087894650836619823616784865458341452847350180391674963807738893901781663971419718817654021113276069962930329430897808738394501012538808779345941533390747337831775758654452779805255390191478077619960753636819727719376912359154705923815086791339696553536338994938050206486787399920213173986791373559318279268014475523972787084807530247571791148251423424616212646119686311145282248424810258823163770728681697687246584186235758552332547676369308331996318345349117507432565199763828333265686300145606953661903957494528918125545479556209586657952081819001509510815563461311123855338546925198122526537300694901266308087242571565335450062155213805614858380063463665237330521254289677771792884847731391599289686668243755671292550285800583996571167779926260052017932312391630530497768090187077612896046190148307338678508786499183468480148964080806828684602169244190271717329697132887778696040274680276633739936789304326951637924110699868107252153299270496516491248585170095922074324207678647869779399589638947034241376205585770140432400935135530910407735663174115052735654192655418406754782556924566155443335656588364822276450652516390603667322924913236733075651455601167964639753957892785304082011243882831355368765556236345798775539717533577274365765036610255903684452917012181433306783389931586395602001221641253181028455957278049833715478430653085673097168641614302953355879540473054909581666769700958483972846181364017598936978410710118552106628353985337791776645113258329696790171099076097730580839664591242659058273426912851526925128245499984214822315475193969614865520908140126999629685467215870417800495626092877688717783013516525860070672293719066330217554118741312496826320129318213191526025608165532439502319327410161525605702985402464424203315646728935931799250243505868715201687936460954817832725417547076235990035228632081773317663630035495449692341856124632548522765135443183146321646281924610927290658528644833082867003466615094500878503243292591962113643912413698905355415509037421949054712075823097855807438458517768556730470281228847586792641895316201285161795917155197706122297014779083561065833268193607998106841857537571113022172121210735749663909406342342284015671309349787298356450471643244750287572905913855192422975251125629830690337922158017761788898429192797209446957984437244462085896711742509740517951634280204221372071878083059010554202367391544675272477953119206311304586118953040759552991575183161059058214133259977313097371034649279380767399829184295471840612339861256770838590266291248562470417043964222539167963645064191978824785797174198306260518810132709015445419831317550467546064640994496269035547711181890173757787213006907186990041172835381309954605849893995108332966364950673244271777232676212395887688433368680697770682832538434844436848634754111163332133725879260698556720540715904086323004385953071023378802303484957923787659694637570727532243244135119028880559858556933471700547449069394618268847203232067780999880294745177914338465435823967764129785857148339084618220146934513158520830070135741403755621857296190868855996142974818355463827808332924492646589505765706669011069703686719992757200948327824019475018764086475722822600722004024093071351883706044156455714407185727385252669973706438269576097664738812436333258461968966529883001785353415998267021890038648194321752233179545164103970224233128463831244795352068884737588069610999791415048792454882786855107527356150274956439035128409953701392404757861365142583872487481045066461762138665970139508227358112663985369336775789861180730382006740569931813634542500958583088616225658511996470351057288310914780354969143965122898291744343992573597395698153873888854546203392489074992064404096989975043337765679986195869571142498844706086193570393574754292025330353907148542149768909505691740827191634645456423470830795283898086616027735995921903888678739241129084347106445795749068598129749191885965386700353361560246158647572412029350051990022159878803320696172843863160029216292714854688215021486021242514871614693983792725804644103285562128990474779556546886706606813367646244311787383879538001347453191678527689017172395686433967836643455904630262126591479454673458410893473322993190097696396313144924647446716638328766559653782630815154426620978688295985014936633228754123102906907007848010377769373151893520536708611293541904002178629160045253700691813468854454629189540933325808854619169097535326176401135266027915216060473232072962807875607788800931006643919034073539606399765009622404906089630806809850274684909118316733968840881129921118706161605985395199823531335965186805088826801228918019179276298680406031322854167636222685743456979385198783325960659223884234847241882741956797344874888949175596339837409319047951146195707383614711501342816763680201976836204848591505372267974671030936866387600451646941477833833712618488433557220658755621584840161094960721265584765740573692029032483332784322090980194354712509310248020288659926026058699656720002705477445758541668902886884667677362416027916622701376542704476793323489022794105565161910361079140075910389278705208117355736491573032917353632395275051406505746221933959252721121794483467174839157633740246130750508235739366473636706009976903977761310478670785758292565608493324673131542654428982545313843097984273766143999502059896327867295026936982854867879554657715030525215243980131475822816691246668793118089381355229599909581885042806571835524202591851403477547889020348689447194265901921936207143115621338717329456458353610787048388139444214375863588629204722318383416079524153652944603596401214835731784488923322118695114523358421265002257346847771655566305050636503236157670095039119095248574507955362495574377056753136026825870180045990989262985394812583311446703579951693142945525418949033597947888429705592326260219088604705972517048024912845415237126755719667939658487796336030988295240849230519965798490351119869557304890519684454440701016744344013392521764876548887965894000328589017543298278640007634041055399976476931669485560561322374037453982489001775838918902067307166214754122452565912034143925551397148117465873766854744597994071165897571068336821227812727306830215652092842239104713285200161980542939034308948311263341010960398295091856610766237367036503069019998452923363313653878203738746906807095817959775159855612578297171342379085305222568161387019068762261413317943123584357402501795671541410832142514308614663578409184638930477836617326952844489157048774544489627894500028272385759119606742001397876044754518370840413951045924692722117684646047498255179118361409570146506867238253550712474650383358663175571103201687244258969474701614092422528765905272370071089595207205284407323299478589246193271177707254034306747962250697746583380846033331623222423067713512067315854406062153982003575622234326919187377124047567792177022717530327078634066281085454397886255020911873214390679701440362707841566515536816284903321391168181935511044695221254356594992862382155532879247391835247912117635240912507325552053949324729921782945859295503966857238822973607204875768460446580256798149388856198143042709586157538958008338870820103319179152403228710836420261121827735796691146875865855952893908523952860943265515068276788430497700844507232070364198660539098519983091275520969195708358151922618068376579305278131306222984646078327135854049975864964222713970164277589700499367306247819511343428372114817695452815656601123964780783621586876205144752558889998737651847945496628623126142403902421974794182082886221845035987700633804564290966593158470318389629479340160266152156002968482229035288770724012083574977578816260088806431910038773056153396660034241938827144996172242369656989626376791210140174595992498835627382242139563116713582218302858506545334994399493170831297383545487618265730071918093194338301376505715290273734767654700701882213205014679011093052327191956097192608744145952975562259507160563506165173720951487566595913073063586774673373097078596582389663080083577380979435365069546037451910687235507917919554608988472289000642757898371811579668709997223569287296074141240350278447977649811747065213205805172057367668821754271811919992191024675299960176307137091175494468644779758250767255991604104448077155081069992508547008774020466242508889923150892330802829078367819254548860067814405419797088062615663372536422879277497448124062514424355507407215201840264938829752276537668342724221724874517741210932440268265404755310470652713523027290120985163077757139414083982240980921708069375957966534550983635818359076931815448637314255779909638564287611361794223876638779770613189468361146132036142694800991508458551504575227951507858807516702092096961779201351989645203700950500337005621757934374383778774677782437240019822130858709404274529033528538031119889699721312632442221303144534243147636956968707680672276063812503551033185009571032977781748506047056998903685871398053567827549602985156525827489534524185233725104787700539267977151285484844673617756876372212290275676188541728233116114222981467089768074927208661328221118504589901187116272314700108361779436388306655557758575678695101818102802531911933058152862527822944792544819237915063544147113896088812021291473976735953587673289437664617283785331759687466787232082967745900878830527024692407130070742414954253930254781292921515889296630384873151933112230851094756912950831888499624292723778751112749595431248494686812432245839937637540894115319985556839417881944342608837734786346716486241972657738948650351853761070412853308697780550497539661844144367574856369464183307460138183591002587557562454601036020984454521885030497701059987267286829792555021456158513596792445182711055616111086566398550094003216845992821124952291282724173440583427493249791281585016864832211151100209536810880518730584393929193787260548731198157343638132514683209659645621298940047020938902462159427147193319785016832876720788874169111596350164540190899419880972537410862723456124908469347898641293262417994838328744116212469991262731015366135336342047658165343061724783423811509144465894371239234276806977453708999207189918218330112683028801400340872540109525536061559148634571057095698043771772897888602208573681054733647187270538197068225768504961835060444063660725192140301148900296136107813160479187155753402686791067052131568865771413114987783741584249746172780730866065421022343364431695366289046415468301849287597146024870640633580173444064001717660742153213882070627258228227611110671572275699339212742488044438846060838131713680081634237094686095440686189006427976760088812344257988176727379641893639654236995032146216437957579517526933990029126892504465880050159352570340787033125290546045270564400544517152737121511801189018964522533119837972388777743679791741748735001306590181837563322824256515055040663826811952947053090486566528283277029878399232191795353310449445565566771280054607621786857734362181823469209916757291567111173362278780530404221376624107070859225596938288388017336014123436117986280272531461982973832664579900793738073979423335764264392798074406651026509355547623702867188818010909196623915707608526409323885941720006526390540445085287363539988187816563221901800826041790698440425795454418623235950568726418986250090908294005718387889683015893172305761803025462046510820118614471485510835323370627482969185284310826081956215040104433564771209825654141904944176823802946712527480565566643980282830202364615413324421348242618846260342876070455924386986534958551416006131307478114982032617016065963117746501767447959394746977689026512184784048624121477010096486969977192093120242157772071846406434977784226635886789084311736862059873220002190546171839472549307946345544949721484935536018359883428671417785399106749192237360454924380623022161747979813058625118404220184584934925654611663303402206951012875144406420258759861048948302735661236550489256262914318130457746989851650429569194042530998322488825878485058453310348885496117209617446486088599102330598788408022824392080265147426913881351411412548998587594008381327146133404281344212473538808576544349464417437532071961690841320207094287891397689214129324482583157167300968380871934376931343495063394003037522642482737257133278187497741661136530024522092175981065283486809817285816215280441394919742086163678087062243821011492179023771654496158416640193174283019798231831722417389566541091959752002663990299570711370212409300597460666211581292137823032358082758918056386756561900422371416719768086791108065073290248245622366945255116714851368818057604293532574730326814533633651068297104648946325706268234114729526929574333236647481015244847324259062016399398691748216084326808499875792994158255647441981928400252462125854258557753871670534534092520863912332497615934962293494635559704936482382022883194214405811980222129425056348525640528652310862744719358940988972304684663262325100251944019199144679792983778452130559255266667052466862222781796151182332082760202379249778324762103681821673157416452292751608948301729469626200295544142416640387105966712625847399578907404747725307439071169435860445790597277306740844365764092899267865387778126233334224241400082378517424125718081007034606940959667628810944200534304862617203232625805551173359977853888262887875362430643145460172641822858156590929343874754663839668423479397750902861971985146759835588521394843563222635038456055231682305346666572350082095988268633964681778681691307692700127936916113101609796663226783777557549189264614283199280258915501907150869101500467018287148817176141352189804786689987578333600396436927895619097598488186351528421999149672410691479823720160376749267977329967605153504915157182979355769535339018412464811676477866047899317245181709137265393265609799696089526928758458638687376064916696500129837264104467488462796839496588904713923711916300435297551490975374251012708383964166183818949752796974681849623720464570114691686944371963816035530667139743544121678240417347331066592385721028466166420976658938155275415977368293676977859213967511530858306955300897075385385090915702384070440196227882155158878485854050575475239849186948784927650293069088947030110636797947008153289021364092192624941308305815742070990777882533867167019310361444787758289026786140964424745280107820122558250927002225936828576639522714789890974642939360482022822027712630070358623724816852892520556717292304090119666876233026597993598743825246000498980214106540191099125955505118918456418372900163324218947280011318321735972154676076572318687329707722762647599758549472429920642521609846417562667066350808961755827861396862886970973614667332908878478863822836269346319014462654225788636419466316755929693203044587264642980462256484738490963334786469842298201804901405895568531535607324297994699571971807227528043836327116932186114554732659196004142154819380430239578201357562774050809246240274160881464861347044845770490294368608833630509557126337130852002939971268908818627263119823688549698334866864466469457969286589745798542465007526417622048910696419390389966261616835933875861609258246448027032652353626561706534778495291248333461876861831711156967058941325313699377371850547675526228894491348199437624017309507003371715492721778997544498651731098800972932880525086615172230320892432638701030418516163609871875010194683631938957230369029134312035340982788799630443638614525036807253061932011654750917134257139133704765233472548328624455975025367530601560466973163072036487851112986373830475335103663842790308991838606438331550464413987268268095341373566072654601407917065495756030729138986995183578694422536476371624233427760729736967582857227145625623490720492566775273622377281629138335951080740242519199528705165227413700150686029958486064191152601138405518744647954227472022214264041349013267415536746565793067676274724282524828395779126790659889355114888407309440048759282157615254145072248832115162352702670289055908459023856107641170452313648973082307633695257594319653489757731555045226822063081690429742960049986338925281468065257458742590085232780677333138789800057147598388501572870895945479252949958991058656165311655392371374153430799916506166162684134886842889102001993670124491575355890341229430803880853527257663696269188150184689746933752291604074694857459544690855225416089636167976381402784821381647094124182323230454299499975814015720124048010577705816828644497798063334803715609463212067419564652518953330016964799008564354312789226926414362166594123167924364335774612117063679435727427113572755938987934626353179550536837774469002964452158031246192182269189790473874874878116143187401761246430594266704913063821959599818959358948978403423986550207246613683150574296077960419743121634866613917624402782593319125497659501778071444922807035809891671637381666062576664061589747818030362675911808790474941250311863820231386067428172166135128783511764770128292168749683659297708511102960712196482257506316624781566571632123199810668687206326670144192522246528036625612206394239685212466308818781928859931176413466080570704617990239289542780743528021346525071960447717486861234052191592264741515057449450260766117832213676909782716419820719071341676498109181528010302214554249623685254608912641979340055875020948442315235237729172571792139554171700301470028678953007130156559104447778709075500070490903769272935042495080512931370942638560790052762257759739695383973584732362355897619669365017654127960572730152249540264394998301831779139746822684221979185872628226606842623305709641318143865243366878275908059540794556123259668382159041639419396563132313642350353805284460190042584756458892169587803803322141885592065140500448484598384261218604828428672237554888543493926255117105085511205898671890836532024041669257480953191693327489450825792565188121573249574019253872444149955727069700325458389046040974969976283839886097650902001879138138918791805126095858977005024414921881473284672564019128526380719212328759698569284299316524585618932729293307468079518536792014119986653267048088394606888005916468524494726701579481282920891221472439027824461342746184818710421104486618227917343484523863810150303817452043991526641812523090356540134836860184336488827890580758038265635606751325239964648087153017259590316728780540566417006773363843994175524406980311344134191127065556408940822670742935056737990623393419186946220275659972523799290354608827613595674472825299688371637721494765527401023428147533603219570921777506841912239250993568587284994497637233089727370113496074034335502182252545353602120723943064658308578741944994923996177291512771701699685838549344075380228624281392244789436663955513178005378976349356461052812568796660858275710433299024817403005148043290636852415944274562292366993771116642610574334606463480363346877149695079233000234352911213878680010423279345202444557270030425521257348464319190113599948420305305026834027784017308947877848744744969299045878024025486355557017515334171547234777725556658761950862251153080122815747627556563190629567913534585767288518310494212863569573828207481344579148002844090579357474187848593115354105782835298914377496784062496257219416322382541641999267098535470492566729850460894061783765485450923220247874240373421980229817210380043267189634115394836111867978726220988258938724545872820305621816409255420031310438651253730723394197603596026076219671562356830377765313291122919214904192500404966666450481936671950738004593116839779752162056416273125638395084378948363855594846294661899429136129316816080866298080655085666949972183674633363267243177421379171689003518954029056584297450421761783421574297155388872420332448136559940817981630223210909160318776141910130236136717839994091593569388329956411531279497726144890750539544223346687647169854325169453553588953993662279582984804755643416497583825740059961404154247787598120192033980196423687213290112678481042310059778827498304720004247627311387857454443762837483685327480926918427073353060225176002053295581785180006249903873425596795701650746124401871577390070609870817081079345524150923593726520173383362546805223998143911302594222056329918718213025457109219984398288911108795856295951290395222968612507342051675661803391471085407825384082834614385313480865106891937768259269570895165117728777952479719094925328984730518007957600849386767375616230129324908699635916098695632391379174978797308428279199225729855264076664381079096482040162237912699008235338561532650943020759137253481929514777565234277929012225054439078958269421681167272702185277275510513040069035183818242147282054330752174987915309873660474778587446519150110716940558901359681294435142482176952221286833176462299550761878192443306062426596661278711029182077332877401300669607970701083449838089453701408576846410932902049397661306835347805896402176515438980164879790407938618221931823140164011063456977739159414108104055815317932190672605438196951423147826968714796365948785464569385912663043966705810463461323286754241218786807253914705797778523455115258192650445082476781929076322245599905985034627455670253909599315252324992091572573712133995656757501555719992249794569989281575374362533099450899431178601700827253925123534274707099429702881374575268007842572949932908692720978735609615476084747261454618587496819378091070096552853022730870994479944100286491517645282412952494634413363949070725350037063545634710258835596081374515406344427371400406321174556779561166899997290764193026815584302613068197081619586653649302103825581017534500088340616930867083566426230215662145696158542080595546082509356837559576574299492304622970823435108317848658788811850063029379953558293513456543831105355140416595485571146678010951849073175846055038441193048391139407776981819562409915556659101484540673970655129364413473462310972455214018287556890069198448326872068779593640077971994766967634144548974050856137723060470436575753084564962833954764109964383957766057473876237600269846279320239513362252888306191225764423194286995156840769735938651606515675641090188614355765927828939536014705753643135417431061175211138873734327093604739473080885451200869683414392482698462384749412205774972717299129171449963913516597012445147171188939233151060047092364117569893334216286683925483955087159166102557644526871271852304281678109203436627802908195225540834622297177487216196063157228217275967419867536883403582309133362285460830790923887086296653040916923360670110635261981127420260843408934506142163611988382673751826067022156016033003393863657314699974649410555781704907712520147689601137772812466601889362150441446637032098258179939182012601534035388828026201606780556952739118512786313118805395630464374532262648494491589607122704234930345835783854746803991959569171583537854633017349008026512638644099054785715338702944675685895171429121296856940573191961585784864332183882873491110956940781596730266631990869133548404812286014729228737147425745912571621572275269492913738846791003357550033288380994412877219047948197043631665072302243046062016562872196557881953661943373248250517943305648535909600150928473034899476979460924787486635878030073786778936124166823553811478038352447397680216034578484774340588539250910985214483704546790058947179989108539595697084947447527744571703487096992105895004144898807560069056434636630349973210029950210453907724460180087305042102577979833773295110030874200548834012613529509743373092912153878015002728087528840993297448484530277499838948123774383943127714424326030585732651495827612242268427005570822569073517341515410451179904319411175883847946889706492126352238726857383597147191472029213433691303655155509588972367309590945477070422109236868544716979122797613628092998325428252063005265177602683382425179650357087353958054711958086611176855547829801227006395537814380067803897576057420369485906673857987237409636849545326117826336789150917944161875763610778836616107893430878653387778426610179277307921421555627138666426884892592508101331188415490128075146494978941980585152063654206753707594469242406531119706299609094843234303487066545919540338612041859314828694639046681453781683101782575168048659737459506915246216873307962459999907057492473443310607061499602226157406579424247778517443688375196330925831148696615065283413166539889682763906149408189298191504613127271062922624501779417571203927718102092794574481562493758561277790243770723200755902682321879434783598281151745458750620147072125316488844341037597243050887878845253302257418874707602167428768435938009153972882316191364230282225279621212325947853310702759931136838259563786840152504771392177263711439767661520027933377976403280076194242484864791270095247161936006972150056020005307234634822034203819587821204709144382268792193657942491122671711951111234761729938307167573193086122905706543623472278015806861260629332159092242330843237287172613782139481269872222745991237380106292750830537975402201979215686666638240077117021525418210937425861375907199317919804729205143794967993996529985337303725804610796047135889569015237764262667972502745836627278460582423522724176020214015994541539169937744241535535801108911774999302131142110695182424353235873540256718032255089935665530997047827636805891761721219965615645944786620170054732148685560928931169027764605799915452664772788592212854943871842217846446459265248009079610466985325739651066044576945040490627014036958251306375812036285593506489141752356258000245228581718573793747422590164647884128905209440992200623012517688031294086580740617565917961300746433062897941374240045539920710238771511137935526846099850888618096774509186084328361992527394048479126519754438806943576003698892830156529471098786011823105030051041532592856207704661334929094750953323022730108546107325908706915527252350427477687974139884338894207844456367589220773350643752375282348056895340535559682477781849392043424929849926306165592136670150726480895639022476631941125562523358067514908537319154931308791492614939372540706546099022457853301723948835997944031299177149562032086752091279348123018099296794257747632048984630698377234905274223237907450908473899934582979042635271447328985755068639514924580931822448875921749683510888816000526016559777940055022487904546735448175953444774994896929487432997877027341483106382006176247880285825697752846391366463254200534966605243057042791563309295712253334235445600402205232679997010764747381369328068230652373996150685536856624029718367773794396691137397321239602604356044295494281437669246387555942862212989722821856376045397839658579590125531861450607390308612570425822672780352663168513729248944469890481704136686088567415779784931700378736214465713760794141905586490297839417089183770392739747269583896236145050028139515965561241471926408134378173563990531348412156346121377303473189258551889150923939426903661100514669513327577482656007051798208853861491785525627883974689536305221322332314624696814921308039231168400919201735530020515040763573175610022483165341557471196752091209468193159318179217159935850323910266382431759215035157475947228514318429634353058067820740736265304719130910741026547359426234724926614671860774371367523355458725523936755355559774246291496885640999064763666525964129495329900081187337663194594044720319977612872002109201818962553825447208625187375283328917806092267402070150809538035382759193702714819924483016318510580478930092694304617949341462177034241477218643689368038173326936389366512982572351589729820130496135512453568533321575704461092249124971885588200845497196247977399624305012875111999068885473671843887476077910414157359892082025976222539888599476385416907400036302910932473056801883725680874281201046584458837062300611355490473398303217196643939679108086508768595400131168519841307881455437849972419077710740582546134768769409575464708901366168961454224028515281810053116102280631097109404177553806496733664087050801630394324898395277368752097785485466576566373672997817589821246901553215728936705144756872132006219787142385196715098110508885980791919618385772825328245102877415354289442481899838969468176877470720544682772049797369772090207313591315259151493248446885497930231164309458803203137893624523919124476347738725480684752037582877122930435770772056586339627469808669380290082577015916497324776099906264117717513038941746045480074443795125202796346013733415806989444240098251566229458245405464348048651527879556647126665423579944157085219645618530788286302892847682914736874096804146362448415669988709526945224857255353520658840243471294986890636986753015860355848364656846738948007812908718843781570627669055231245564452694774288085585821304257761343719205817141627818486621765851960638574074556070489445515812915455766571783094591808990064296347397768592907789964804017118866881653311690569923843747618888157107311221590578937464839386286952160373300458781776891473549256420061514883532761519041415440196677677816396537819921761623370246870960059597017958565251527117248455813419680626733622094147154284027133182425971484205044294355873039573436559096995151646477885767689436478732049797265157739241794733872847864552841552520035952617578637287031090714484266824254639031753390090767868438728523523919799529324339424304069147164953440477573512360239526799291553780851071010952557264157122463805996064880346432221354037052502091501883733912536147932910289459064105790784185320188400377381158504892525345816449080797152410824257830837090027770190037239117930606751661079467275819224047674545901458273854025798312686225059845861154920385559118124526650397339658285680989960101305142872052483349124512646613774784247709664387891278152349345813466787907740639011187189551316133024135465644023731024617597498635424985262250889662949747727219869191356449501432059917480633983216749141316849279640290277178184270980666028905544396410062281799689507201003044510494509221552430209840712454660796348914232352399969128822189908321377645484909057087628416376137393688444281502244457986327313635833267777236625049989648183242732739136262601480308169832277072941976329928678548584895012316993852861835450355604308284056297297293016109647005377331760905044599126649626564449517182081383369035665234754230717930364139928197791971877263346495510264574149724211617131898269256908199923729366423865571094001563322495160779356264709426953988946281751270940894441048774614299491078816838668402207775109401220797335211325383611739098717544996979349925758066176857846879931902914723006282709803120071193329042781702804855867074435858304173047371234611460175718811209671927086761832146212510786301542112071377695108143891057668333936357459616063484462004947632007012410863294452160839193440413154468925357286676108191820979332323226180404934257645786425397788019662839001424921651945206094210858346784286745304708772704884061765871935383292659787563648172123843169505805689259245720683757029717133721067487454928389401016382810986350992885116453559793096665119651429077673246768604945020262478304886639955273952303729926536745742332814957821913336605623440075883814100123175793200608084032568871379158308123901506188761042681363710538762388920796183046095774350178079537594225221393533701944603882166423795014249945832176910706830519250848359900768187537551417269669348738876534747880965880529413383891374990892797750411299434185946272686418393762185929638672957531375458133121699315588305450031862748425911121717758002629437668090550469454516745929034923889715883363454182866984822540101307208459522986878509311994097892590323906395789458797925687323946899782875265404494583771826041319714954450333453060473758805163056912466367410037878301943084367578532823572815411681029177299462173284209277279773878342343544191593794501783081719363262507497616739951476411757663496547431763675705487186382661412177131480021962673569776758929006514534017492280839783514461741348256189470645089971748362083503992738517703481548806492924327802405509715822352659467512552185576307622257325636536554477439263237560427929951270610729582265904626032367705786441178138206991053717997173373725123797366345505971254617272282274837710028250730565855996000033480735641544206941604610114006212310514499568255495358745003969371164101263487414062111373504495017610771650785968797324138012753820339544632064096683018317899015223865571003056837396866607421645010365419481025373720634906179837168953382444451238110961552973611230359569245961956340463751575672789741666695446027166177403318058137305687166453345764350121446737945550849448686247453034473274096538257292385389455216261652359624307839728057937858644377385030381050462144606623988324635629113191332065438297514248793020094031157097190964139788494216357340491106771002428589632881043868007719329702532942659211782878271921947264792050777071992911414671500566978382419048592347325844099937161791231220030814145767458849135121383438785473779882993669125664458405485685680009780157536474688731898000989238723065978455427787454632472475167290530445420032275389382108559515160698088398474934928223175638107088996495601098353985787307281962839551406407240661841741209842952366296713521625956570306265573738335188239607136496404496818548583468249146791790169004282896801666183547523317144859202627417248182614044677970513164231184098208035086436789598898155329888571962218820537380887491288289784402491098590075038866393449688647841350606547445457330404329569079798812946845330169500974475861301484577232931029656834036477907471005035562782736436477219063122995758150002037966989922282240034059565349698713474096914635935946320421011741980201233554568505945923753311610192838476982507710812273739433052364408931908330662041457631278646142882778728372906297211546852952424800360831836511092262187388319808088895327058733351669203360801942772902237387718342685740621479970797918008457333506009586937718751716858748193588066911775362724293594049854187640316219598803596578957262247518943556232269568681894099093597328193552648202044366309381109293328905375242471500958297531915466264353701817555426228757206105806242126601400610084658556232278315781359731350414277986956476174577964781516418271372807167495450286906617241268872459783570505288574743935754789007121288183798821346824900698549106180331249339745613311754337286272893222600817768264686097406580058768783263679406798680266911632650373698262599098248731244334864868613214994569012882393234641685748922797838379537935126628801258864607698261597635169512514687098405226345157636861769772605244900396998884191651450959690350243861732819687262578145594111942832461568083440760123675656144748202569794703686639009113343622649460416155695970445622301649699118566030439342206381047979298219194060532530328980750953714413703290969715307220946996587497586120991497309491986375374062796189172351070975512654071221436575224655015400321080769218137449099502808198164267711936817364506198909206795544643363933896440351355088906057388243455941551322679079637234939686873282829696288356304553918460488631588965817531347548842448390027159078363848457392417725774409542839036266396078535395066172212121365420313006158155279635052120553214403993644099520017426856549943442941185167779229844508445711309747724045108923044523001312466826551604246385487963974276716508002317145984041114541752541328254005372369284124194048299133104099038211714308975587602640317607248906422808315977434943764356223082521339923194802217386506045792938295752203705753781504640629673206534759084458407769364862094498518555034616681784040390387019844327918640027972159949934900564059516602620312890366496436949281661000531026904611117428486981470741852315286839874324032297821863499901311322359447548539110322688543524515287270839206202861507575213142098474070131165940344273935769801112978815129787521290372912012326465972397402742139606423944181165892478798758725871905262689665570450179138530110898847556144891549838683443619479455149583202054938841348530686721911858122956286887546382112685090516907462177239105319134131566589762964850077019001675952010505353837239665793988109188753736657573458997214055207000696052218500251974590474454916413277708425745671634540608585963054934467160445254952765034122728255539912932180284168883986086121264086624444530242020100587457724322162214647473915992405772213137324888817775804398864285921861584204565357327649391390553257021674900600380370341642620082921689438530870834917022264531085337080211639359934211537200586310949460764467227128142055905604928397062013891194316506929356506464507446332925340257340264023035427372325880278708188601204294521921131290495824321667751609225337349275967528800064649342278421968441649931885253335224703996310744079185807030571530851053840102473721782303504500457721998309861729582671155075692152988685098425569168452256898017752521026293267921645433994699302558338587146322990171319655097034488376425053868642041764700907805878772391396798556618879730350113679978456022918503242068282025477421496781448515534055960606630413640186418796921057633312795021481180933656051930965353463155481616930143874398924756607149759070058007893410221079093817867271704117731172555266400685880554272439618161522522367769165343553131449434969911137810086528864215997052181272167690631459243722474029307412560468617215082026486972492740596032049593641283047998626789493861875103468294973854062553347460012331875960522209007824345309805445654808167382384411168821053733987633074373681040528384681500320433643889040618788144963355172189268900525853040797790612509734801461679825492361919869213001038201469981385803821926035050014720516585259627555727112665745086645915945850066539719252528694947035787669588613760562615228958456952145542220570995966223312321461500864707252715162315464329991900830585575724246247114395460107003689493522392120860860931751526653922400174150040078527879991972499730740941095660881049831009166745022188693738909460642114384814898605555120019243306013868214553538708594817172188585476278062522586232874515943918563575992104798706928104165772770823194253280620164257535577401338287380956372325372900891424725958833704196506868597795456379283334226597026537149265479152402555009759311908236428812072717879929051114529811394391064262418010968086414653417575323432573026914572550711413703971209193628283273837414183971138367505245296734185036062168524081950223313830417034225469573388684317331765170595544264033959864377038860801258758669679167062410134366873169131763383017969573978128680750704348600708666089411303414278440321632865913947215812978037908324827484720780545599025637221210080631491323227056541628092328809245227482769682182631854320150254609426604106882104257417213019169656200170745472750770968200091831528210037798220948930343650367166455590949300673997155092847269769542254185097501264681258130273492984356096194940630888838381940467543477639008239550851946479558959512615377434162666676598023265928843295442132409134122271394632068438382835037153289456982941815304402978929951084614591432185823032920343789835032866088190199643659706258080175194224695607135940143362874203244999604766732126256756061959548857143676294403502796757017039375068254634833339474352119037435224869566433577186815871391026304070753599491018287064851321375107077425430476841658520643530078812338018384302480780795969233138123529585102062198742955239988470776270802732669290243455597864087887965848461176015543836672252952276338563153619882924286383220947650937600142749491417026014887113361049032496853279350548056850301210917144270117944692411544694314876404643403042019119703752571064887160610369866385280781376409705538227883028739002410122461066665268725109846987481393142309561134942759174310953023629007605192805114575186295948443142317445455182350691497200229046870467402331691344860308869579403548481433508946431012118487458171282944832665071506630586459775468423246248620669579788262603007978691493833684363184842388978123395862421215526245327814691138765074082816562550999745786842959995319097723904117901798712229755440860065565249160510570304376246329751429504581841000692989296869925362788559404483224908856826507485556771963803429289669243904807998796983330492810780810819678303513519170174483257141526989780546912268971077029790138467794776415989362914069814359286508868537890064184176084813023478210584344812438037692809418215893739568511280999267648272024370392739045104375749469013990476539769143104027803667827032672307511753285466147607173410652859026911314790088706779731089212364468957813106212593061729405630011487384267030276572060656161668200007538401582298564312905134077128523185496063504048806877726638525773844586104122922368848750438809957523632599825074042202799582960884108207533544861392246812035596600969121342065868237395261046801839373846935976012976338783585143204977809706498541532096092134966196075121649818411349922144381728190829334972277755701349581742464430618126850441028397869272973096717559213552967937130729142721589681554350365053143244709875168414801803297651461172553144577321762400428968442918877772637330058266439642561675863792681493171010486296306481783891156739826809186110133808870933243561367714931568124427459618637055593824387568739242738662280013928031450079831429873097865484965265323644132940503948390619817768152762748705642936332018813615851938079607595057836998868356692228578024580507666357521936531544578949001096387592412450633557458264706178275645627660909537723433862221483625351638621148199107358783572558997424403093965554949800466081376666489214586219103117758585070899307517181477885275301941345312290611579912284880443245514115749121041908685001265800182367804240108009801173176967621667976608630987370688471441118095478974002688337242299090369910994682688432969977938880381625773953566313876072232366766713089905891830110718645525266661974155150809172324512357137823323394745816159473290495137012509029177573309345946307052557122432250739471704343912778010730549233822030513241754535290575312530027463429820107155024305990094413800958954870551120836846941572422651422621715403142547718881558485731923907293620406802738819842518481151929221670655883396598810823998735772026802194140967973504729419505438412392803821495043094145396015276133383961297051421723793186121086622601833786155276156182646304689017092112118315973518282498147571167360759288482210444620079597614488255475206852554372704327121636109599092270143058504822945790798440889684085030052761629321095731480163471450767018085101526534797014581619276832707090611079658601257354050723562751729313829410195610115765332246537181482192868708992182932614929662775945658220941489653221133201307093118439007162395021667794093692820198652618767635067279787876207233597235269558441650959557971568876136776857261942026583711427417301034107074545610778722363333880618693856872078974417546676743459828406180318856106710322917010724282740355630094412024842328337346853631238228272858666310560707952838981585203822674017582182010837527562294941061367840925127693151457160532469891060944570538309881501236805914728854830272207194337727769705230610336211478790145668385965064015687816371658308234866828216094017037932536859480957617268185632651938076101977482219345698184067888802751289131680977288503402678828278302430673811721287376132843095500023565733725675018537790421240825769944270850936536352034307358092851997276030658303995967950163677487102810361186080183297566102780112272472335445367610966252332511525562952743760302750119218377179926691191948991260088591255909165797024492880000334910274472015464009493344883836049647345209703812618454129695820708014533269406333355577918875948232908036262741875449170260258907660153859095012911033416843828655299566357937950978137503783881295015244195345681528957472409764313382849789706445588352378199760326194159774056242310237031876481205908436241890567152935739320124719247759316040778337919068110881136639219423198962537828416093670948973136579699919473704180549583878884255542519975914330934664357005112662313074090214643120277511600774742809040100268202453862736038476204122177204448565631816599909680228094313440133401438018418415705390242690833274653793098422085764783431022865842465408466446779995761840443790496278880970697755378477851940966088091686169584877992351594107314388823306959764712031066566732920486481216329605482891918840752821511412713640368152365872041045323456866610762739579175242731101048320554572378364710764238106185760811597740452571444682962273403369495442986982692259570960803758311590584856477977159207348504688302097890870816855825718490280982928251651390792114880339039257239622965266492357639250094139670689418802427745548164045610085854656599678236643108539501594594376553862586764514845062143800338736444584835322834218857571551744208501881560084072895586073641981335047585550203531072215315941903760209371324079691897160887606756662083986399633915179060781215125770106349987234406460809657703477995250186367066523116573748469718324554791037497256818528564495449256768957391843060306312565290316161178918163927334033678765198120868829188820248066158393791617855200534356213231366348400018703418494845307031561089440284302001151162472542985511997468133075228945133470671349694710207194818610567349045414660470706778028878870264895474573228533756886943438190429777818340050990784864298957854905183506398971065223749774901672371651967611315703269636309084568383161904097840922301692070387137346936837680856827204671547220353989002651753069245499879949280191056361039498451717745495787967311527273560535179394585735278009048843605782522514916690481515341163542582041498752694464566120548053713695691194533840248467254939577834057813942423711251493473483348318070047732968709616837443618112100184533050779289879959447360090893327487085741612759574398886170992305651333899667957668519147106526786273151752369184750207721202308975238006635755749274908236847554653441992050084115394793865388760387796794253890261815891370392333283048008254220076841112205053080958898725280922468342088860133366403342459637737955718552970454504134148472822059551553345369478573236311233538323946775471919869650685827583998905502616906398848503618932147408694306716926635770808731659327645634827427032476451418722402449635360653518452328078183620446118455482520680386894711119159791138423571191733356754315913337383272708819724614530394608307329673289829216049343023842453135121015725680945890918497936178217921093048580422933366717226096157754141936591078484461968797744618007638183972266128333992673564466817413656816044141673309111610579029860560935975294205826440229254041061054601920375908886658990507517188370401811896238830885863506046769316972470101855795265136352194906910308358651037120910814268199769481158387698455794417730377434815427372683092590007962656880507162340820846939099658087605669830447749553969218946929250369872681683771375871224044252201073158520866626667990203684611493355354081137556166136749348369061233699536039945142695395175467529681363280849119670325222040352035235597678587436070521705574214700269365427894222866606226656901936288572691494677626891987245312913305392613233216212916822557729280238409690141923281127615476570164101990454212010361257750511029046209905790154496266175506508610942468752355373335203716128257909784448447834348094020798646266815235446760137099967756946268221541198224626473222835534325529837932086317556776929470813889219508727912681023071181259376763857692985604183839375916294489334413514513914476279911993915826561868847356062526299187868642015378269811079846121495506952392449404704261766868548878686668918938307667582028821119245239925866284368523707587983054811115107646728544227084617752777674946094361745218138411811127916511370479186260163254306695391647329927023392098641292983586612515259508950687349258080545165099120616962596869307545139134955755988242054230912534881424833003608136673359028409801386471791475156525814425273960295881487097703390838541624229016393897144079383246467105882360334376658129482352260891333155940407637098984610678378812694064008611710661796492858071225239819309370490637769742928692903417962302920009611265887452400050997045158279718422709794079750291380240001232101855047517931866164244275291830093400573237677045955535212532597530843417062093399587133353443439686261732466151038484563067739030628318722778643543134495013526719315516119668402844489339468520517998470543259668915831433072154174003631339381668991276343663330117123640547709370041451480523260263389041989576393697133466126811502534052833305461808162567033388417099576695498532605484469281449700581572674587708224190631020600516324195849956023299614689895288958496515536015407092178283126456452400019302768474156652542965032733227560481027666919788051681185289349426912938970056564645417602480478299048031441672515714518756003238634224522372224098196054963298350165954022031406454901569277988237903543203318663581361232435372508096325576470269307072519740841801459258144536666243766446040394811641082550663413290100068865274035301108415235464073625569248335869975474866985962890130377676648645628747362147426721035647857472604833300917526048696122267754748409299292962567986210085332617103915289247443255960382809135706470566722061143749947253364534765104357014022881568032684252738169540146541355779688827662294936043485124557539117723170946941281825892326014364073636909299540220476027235913985463946392556128815517642221223797086944139358901560933028690081988473792884623827067749193039477616466110610629376183254322111526359530222808678917292356402355926312057698231744952728370219255108470853933765719360375219917808038183193319237907419168219750955287371296465788168445063054112823785504970102672226208934008516740320217638647995273832150116956741205818546968944544650801458803850048308213902248498211948509020899846284339807002069646742051928237104322371220827284843520869456962665595999596770495246949749351242530640310206268573288686002559401397483927291424829431111152496143025899916309145125569880804735312874160268946612612096632653255500943344254062101505603595024546010576182162433131589048404251452239720712073725696231302908206420182389298466563375197414243554477517595969625535081280465836456038782241431469316324946513326421809609486524747012493672599589539527360616473372095005621992470965508350147138249488912267409078710486800186835835889916570736520615921268531421465939093936827048508783777397884610413892529796762356725236191383552463935186084894515171672125323588475232607418151724921839231285094871036524048000187683945393237404131096807280418411100499771925020689840753575693775217748725219051326578807450799975895878157511966699627010829868693593140545823047872038221217552256962940738440671003176990792879168200142167553130301985568402597320950014077976693171173910953515405092506971461323211089815872656126808184505036453996150143861079393306862266558120397721354879298243861679017375927008653330127991066014255827254392685538314077192358002900915131965765824775530584649640235165573617465791942673054866849662762084963576126783995086334768683785507773794010405669602791681857253615685144497560312875374102087793561262167877357506229022967572939114696780047989806084304352198688529578855150938983609822228551941349450585664815080081373432258886883416767562306876763669540049750810591212309934135437250823372662158726593848321146192682270074339698870362090945511978333734161912930708848342631229824836049476633982051069700658591683219386967539958109650763276662846167760503330872848391653097916161988409840899834827535623394913145662240289044108468068936083891255243404566020682663334804980811956703685958721774644913375051928616576869494103688962228632917796510123054790337382629543284196736095237008301217057649289542569877512058044604344606650339184563824081152740382048392597998159799910760666281816255269251813325235682090294189181651445914756252126431552936532279955178213241372452655899229764768027529349227871546077113197804708178206337314581963707239441965524388412731854666971471415021760989219217177899081914850385042785598386124983085090638839078827606593852551343663753823787763678797350545186941156518674476733659077633766425697217446554313206185983339985606462240787886088372774651096457315245338567329443966002339009861438284166662041510244519438496545755123916284090033746596845756084243019690645666852112629190841326636281440078388671753981304501580982394140975428259112025252964705846422323329840379155183882113230521142604345923249146696668001599002419042610419303544866038715745361903875348885005035551982878187201232256144463348006172031848362517649863613707799433874918401829399105736816490492667834299793294386801553187593146616876899313386033017626922882924632350689276548255662488146061546682627746531223752220448852177880746456553885656134540046687658497545450055597479246699168085837962063290119784230144539096682534813470566877036573579771974318677921872824507217926074616952212802169168002336319843005075517972845941115697275419024895147411422078235839502226971571098315554866588810487444613471677791988564395205799365636522996790793493284778788402809544138278553077056474600051063725718894502417606167487119248015266785024510848789587514720231017825994997150050310879165217029026175684890847569255695203338468972926230097187879818744650187273191959991614267038745342060336209739615463843949284403010257345906095254160344966559576576589839901160441131717481092981268498545719587889666574445311055345681799343989362610405416684602147240816009533244358904436818413924608110567041580846929411911056960505641566439888781339185781036096748998337723846245091386423898712493666769705771571509600182541049459646560005386519709849017943682700703829620567745453613623847621443563144441282541039458477173134774652728728590372657940504355067455448873844830540977493091171017462431984346720334811990688371219826417723338668371920006636959797734793676802032514835376485435027654609280987030394281252400490441137934451465164657128236757329599843694692997607731750315915325238080986156326420846275874002396763572324225359763450567573170139472223961404445972576403561241578961392034719735675195334372022321217547480360788310335398282181518166898455304053736483875666736082623620050802496215159999823160599744302501696971491823416448476209227257443425325929870792641820220873278431083763079964000515302983226463289679049523418364363869244326422902165960430633642920676048068978247183657644498225802089888256658360454157590241768776513226158078253218270452634674187733483230375953177588005712275402841570637930485821489378596383617940810812486636267576722525869790064862833486739641743214163427432044313234973113759605602107996251651336677074572795395944070686381483546356182350960244872072317904721004719909421644140743456713560576669011706110735080126916512848321615224977754601861740001395015990719120180929380027658217879715080912868328045448617708349900238312583109305166031917030334259522201698433772670079231416104174981378402813040237045758123322890910599866299603275991196763907203509087834690157521006016362282246558921743044726083799346401810414104867367157167442784708310602444861800868148206873770411652322625855547068099196958259379823260433812244017429768740563551263766351699080903099403507295509615771146448910889165782604772694016952633947159385055368470863529467126484319313797434885348192651240160765287382974971964297946572356036149191813119145879569149502590284535493654491892093431366490852703771973575157099341009890337925501244995764185850274721747182338839886773661678199172934052423959367290049154813404997823539334986366505384171072851771198139583490354481226985216408826892194671926743925448225044592822203644139525564754108958730030069953004926173582502460497916477407038011095283876299463034502882885802067478070952139095643463382973509588052035151271659739074515786266351958755783834537954168939531268574328104413184543741593454899881000893161057660571537648978897825748068506502973695488756203655962722536659513862989030955630583007730095336423168378423764733339588216163276439422166402114542603278267526117832898241010967584812616748823494117791946240240182373680395855080311385731357380686457093635482421104523229069724011088411058692946306255335916871677891046695195966813716932633919073970447771517434490974380823885309769509315727622674266747048484045518428658807755578819163042672240900890109903374568225554002457215875567602628557473980823314168042303885608508379393099244436467289517137928789133925802499763788475265580406020584373420832703963515767269496088001805796941438091036136780830825834950969530464444751767956798106243175256132970573974725245342489846884075697832461238832956325716169881229187730096854112009147593338542220019270180196988520933223348842531382711597553406452291210607874699126782210427933590917664669762879356871073643341791741678701480809873107064785362330363475265573183751697712548328780675907581329740782235648869783435181981023715669976234915637675447551292382794685520561134544191927827596059762114568699815108479648442731668159325472915014797357147972170828739041369154892901882460612171346326841525789082186845535847516348370960629903363955765791349357806510913820607333518571122442454027343337177952512725352180363770358699415805602254675443802014788472803395615290513191134327679875877942048143537577987329067270981795350449075267408630012296560067887545799711797523173737998821323061612336273530292587891730674900693025770971356592294089093266033014081812003041518617125006664954475414133960774135976120530436468624072075061558747086679474510468287767387448820640002041407843241190534451114053907991189940490561113604779632546774088585999478636723630966869305120566928365823451325044305808800610401550205354531462944722344008938617198210465246016973630181782067442740759921678531996182784176611926744368060605964403991472179172839596623063408783988317151344785010244048120866099206812309906211124566099771417797403276044911378671453411913216033304128429975287101129013005042690905726259535179834536457101744702180244165760483265333357328787432410645699341846830072939064222411638747961424057883124596769345928497523744712720546723979842002353187747882510874714199654317599525606220313724153628040609654631850032244394764371002890271238068850768056277334089938547981195789737661426361350100916815674444654270867180805244310648885105563156854259355143611379505575645313704494483871115520607295216848719687208971045205379987234783559106543016533004828505827247637037498369609483232558560640292856610245941930176550796912616173917797203557972524417911072479555592163993378323453722136920813286216018621615545890660814612151498175324007544903615430982213700980804975128148252162326361799041374324427841358174280128854531137469828119534754638338792950303706048904231113787413825811626979545503015279713366057712162033093657828843530809367497649729511799790015608123981159642686947432005707852819441166301687593757924901554108376112614398381266429958763076280975056695254782380920196729275985253702708592978243573128362170219561142288251442151316063931042170865359464412895486899905643171423841113691951999077437081636356530868893251477761947898020105166877708349451305586473054463693107137688068975496459858811330546276169417186938336624826147388727905432931661310401202044585203476859896847436714627281191555676699463813191751406890944415370918554736414341667635142314909790674043693210006144366327896605988608610554199890371136778882942346253390800798530444836522338204281735181938278324549400179654040039781561417826620462357873178184649504378331232987594881865682377671402428526603899821353701871871649292250359536472417977031440479775937227876040518017329188624023550435251367016794693219336564558805965749407485972644331586005963367342230809914395184704035165712696850580719195951372712654044511819587677310127576123203181237918320856892859158823647101266387246780168792748626855146126398047485779405433231883834840537316120607556813961931502992887278505802715186385336161587279419023980681935588630213937695815569669005443206582159222818871012525195594719316648415499891687663015891705759179645999866245584591421920686995915590813252015593167883946643733720390971481585344178514919567019645999082892383604321978134790832787707051614201703377653492456315111835409824872232597793567958587881831610732169154393682134655867156878757993470569369808966832325514849676758739860532632102327597807779274810253887892387065576017552983575020842561023866454784377268636455240610788250454325787876115607793006324857253903043499365214420016451260430837552319913842334234088909899050822908150193642696769683569267317431044777539876604878989346664310720247861224775478352009558251595116900390360026990574730901253247565663730530150993180790228590767811077398366868256413058943944171372192288143728610689376248573697358671178103138510428539235799783480584442485927781010751908818245787891275744326118179314556345311489150354695046879482545147983015265322925513470603607492830581124793485075600898898371210999728967570914512651315766602920220040706901494001322642508291999857336294358872695373672739447021552836810426224133096863305468439582159241160051652410631617151149268315124840085360687818531402191885621461839433650477635930483069968082354969210823556044202604988025236521596376144922367189915973282552957829364586000792451956745762318786606996135947366272765893519600866060479657051595961768930559521890613923221493601879122570669150558543877222614300384356452336890549230266958181404796094096470400646782713893514437318034971981261781840441055258399447072996944849757250683433236748775059866470830019030654178747484315665363230414304764416403109233809863278731431182346156571094125658537456948802127877689675081651127396049781158006141522559790129403997685645109484572435179100960139411695238266424457930116387806525013758301195933020983002415159210782033741115184441527393872718532783486613183347363527416709144455990276899085089272410714907882565586467427236312131388227705268289280044008509737749802382779504963477918012330097622916082568149607130863582152985650679173723366167686229428429293507826366084080827626681033121924890313254594340701561051180493978172371685667490874869357579295656003124648257851841152762904122343823160463763655578386688926944382601240387002493433114983476847746373417228237556960967384964038974616332271533989786410775308809753769859845159041977484450694418080674357290350669229138879396888425484121178703019289450097272021455136782479965631796693010274859654034405870901840396075747403132764259456741694856445156172192675652595558697344679459030934516267844534316839966290187577265535053599859033998981346411972630516535133817665170090883162637410549656926916399504100362670871084955771188497621460627388038869332656353660180292808587320645248224876373429495435029424379094079535624033245319515214661468331590140518885317176536363193915931669727222234237615389033377005297521747126387572727225270438050095866951865797874076982831370666009619568428649881604579659720112318147258174785285756328346564633979271930270290251545738768796731377611805655161314346235226386165527677664738982642080643332713731823774213401894879812442585008311649780525854217997555718375897501482080295003057169480580678201118706905234962876878715057511695804419205293989328963730598277873106961728328982819804101613862514035601269389269150578601362380552878107297041836606045593553587355364522039102442737028212484990740580452365258719256644925081015177785789158022290750749503069770889804806805924397604601711380595086412709314364497783577692716902261279214754940988277697954823486955175709057621864157433511086277648686059037524718284685361995124916221060898977006578982198114988874861606885670020314038153579317411592634871230496418585690823147468564897410301778665605168575026590752826324444135605527160150698697966693673971924088888823277289422939697804391961214467969440548279603469963686644545843154889677839883127459914460933019303956570548356608605259956584117736021898035586011859644285433927589724497059638712285899668175772062580370475565547052205681898747374499892559033841522128396461111097420163763698256438178931713464630495112562302022106318923800227527766042193985629055887740508111401677261306067316756032110089925354673982458017597757232493456613899118428352728861877117273554303888257715936592242152133445466237561544337202509547681677462627391548023471050982562609598849380336392835761763652055965939180973894381107127654311586277856906885128423709649683831063503909724969537339640149408584976636939062689657079050388277434962685519863706387477307348378090314862300344363701460166949282802555140463562605904844166740573908287300309711462442363876083920720600659948509042711189052295936766264293165254639731847031546591944674500232976036780467770963762697966080515158919299746424314087778115829153165013513773934876155625132711145955428038444616724702021966659639849093440480503877405484169386521765440757981328219741124828379046224743923061642277560917862633998133755731680211077577429523176443419902918930258115254828507986841617385222967844196377622414942171842111159905109217410278231182277641024765701609706380189977824876131986382005694056333354000577751419991918414842517237187473779429286067742476558962255095514072493206405628427934557420493839869808749748224304450956286531376451143000839991863084520460270275746476007544435001517050023722642294548141961574287448578718691700796980050605125968999229298626696801252360016354311503179405351330614755506733919515887156168374534380242597027570603906797172961457947568680106883385878029842575516010397167223562272805410159930387170154132031114761405609904890947127559248803847487306813639270061744113193474365527074615062797362987340270343349095415344931441923378566327174220823859538028193688823904566395895999415264443418629619668996439367891622725809130889734822757184928982030172829796761955431173121062133909070632081709426302210316535281879491271759222003726939466466598937177158042362415764524967701732244939581675150257606903421321724374750363797740538291333675987058728213803655529560833900957677530867411414550986654404391759425768227593890441227617700204298784111479900961272985720462772709820470772910452905029733354762689553118712025339804563615948655971348937964811901558765165626260595066482423275451020693157143401458040146993147103978320210283860907449819119525067396742072976165957106231796279780985162626591157022638596272915588487305158220631863738518171718286995517945049114140280252915272299798341289954475143268307653310096228195445019878685377180475222515583609136791184244790538407030210807972053623801355000326597380747706574330344440480050865401549321048317736436160146727548219992688869176765381680166423811609546792263557962155781522513685242249992769451480196979338337655061934327343668100736262035078571759396198282967096936700341393769730513982321314799346255786306159285993393505257721424233603489312352729939418332619986849874596415822539003024241430786565544122447468915948963331067380436159556903557331620915595904702957642419531559683403335729439677628757374555273009526329967767169398390523115336705163168340680021934318405234061026430932340916766767548576776873942263337415252179656859951351600410020612996810281917565759378991801528208134304701227903363866210993363544131577555331289281816631600725092855422929980887175634530567964210238208330441246899264773596313548655411805912780684200062527558694199670953144650068692008956039593820386088080894636515907606358065527879459139778869409350650723285740538790801947673147488080987950369708429536478746323331840800015590994617148544428722296926566275001184090207560927914705922624459994869567365867898998044302544512280270564982743854666623954332135971819752742358971119641574392565382018462686035554666049393266164052477819247383078395051488092640793105400395131716234758643854881233965278179796184234208076848708084190579263207687717021618729323378655558890501637748768060729229387847681535337811010125599766717910600622851224001454923661986325255278400375281026532979753123049714660852164011102422722777430025002793916140203097170438097873308364799900298568199926428517224752069034265556339475752053251140201942574383021366781360120835466336190943406236794233554623345744246742383394273144824374344591617407124027867405243770895058810085004127014394810331896605984508425937193585173630380046068713229630645368808297487002827939107433784678430277518398483626817702046529317170115787817542590524016678886046678931373520896826833120687958611229655768621324434202596544631782373742838427024691984106244353424755465845537632479649270331081500395915737132572751639125551123116433036830739996306353952036535736831898505179261942481988503027585553249600069180328525981669658178510178006835792761621075139698014201841137575375344835750807153911867690125519045437430407300163167333695620171562735820900709812794897585556172786460678654983706663479923223891896041357099426000877650389920065697378369515410801583269278077125942478589626702784894497789513915704194869355089754095250641190889818591667983286682994648875602165586302200535022019836657133399339672769256181863258004601825479666416019261829910966679558703992186355202203157635851824161392634635060193178865596839630518448375471520224992996425801149274323405479235917704779329597349852246167272011626237990253521267856598453056447116189597611797495721570531246525067858088792254899587711923773813199519340055477216385283499143436319856785166617272929208242796171583806223992382314526263912661613886187796320787824502456450707574774801162843060196515280341017644677472831134272111910018546309516403672707560952540451321759530553962933827165561417493201867636489868399380078773285805335582719346718349384878238821691322906298346550308420848694826157217277185451875314166460658807079283116562920344218879985996822992015233198118374141013797624661377915193386190961662748431031860275426842459277034367822475438643960141692276127338735307789290995892328494093132218584851041472655982764544130431391413784028417801060039590753991372553370429891081763877063282525381198987507787539990079961154195609882201192038227430690169208253439360251583437587120356732424903633819899766562441978719839084193096855025932613867478863848554212677800941669841569701967486902554639120793584586140777590367591219722787699904518208310562493483427601395304702227790321347012762909713095287288491802524397627978579844392624043034631615059652544142651555576108402595339438738534653953922731689684313827709845662339333170407677004727335153839440664664981006881085392568294952816098889914327419699361331551190290235936106217057004357004314613980720268621385131649119848054629296123611849997423674565889084553027588318900230451672486476206004147146683632661625958369255665161375987348948254631286890463191793652718342340212459205367047428593471193026291907403503905440334516841322989439351543695067163209548092567040670206342587846097422461553414360560224456852772612955529153993220673261631511306976589986128355955199479073736599496999946371745617476129271508334680519211280780200403251359064674601564588014347009440641779934567451981054898564376795002328002672319642493951618686136460678181337825608696029028396997071331422213814187849572347435356816471124291235450385977735796255852882046544874186008375880667310715188927529247728523274386194603838300429238059508114011065068631642130037581628096734695966537737110745237203065290810506817287280540172614596633564739255457583590827209694680260635287925131724483898083933696966706618868055574954108175626973983071386646905363720286875319323208256229001273296958940446376382103622751120581129845700422296889403062838277824078443962924033040156581864429469816153942088138118305801659935995134786785813062321974821361762046527953857349811248331279027281370893536921261059637732084431198605423855239026925088411504870969297100758980332007193017168199689218351908828676742508380778891054412370666386315709463937641379885312377182459128790865059871097208983147794702601682739606417405834769245476085415881236168281613404469419121866706305934096703200565137268223954527674285134707521103303403160917461617793516151525446386201877868164130874802728539736123128444627245192567370218430313247873004646241761609746831192237919851726521030108326280052475915944664177049073229382856939934099991134438324068243882568707112413543612798242717859684275437315571862787019718459537157754760986233191189527064575112487980120114264247222173748413735384484136241567797112819095402586183040060657624137229061990871008895959115478620668763043996830138646194250595399687083286894645236174376102289918250031630009853573270757585638544833308828598447562964042742258443054657492147021974221468516458533259711099039330635405104810178033951733785144229290089773349282855645188310929216655445821246390472030778579101575939405625679292237680867422861222600506905165184598672685774372690604021548439773446577618017532126224621074258099329835399096921678113315113730686060855193253672214276371814115852194896101368580788632487361405227727323904359870917309562662154539391032967829048642143122871487176363625845858042269629161863420642636898855878921789112422255351657942996213119574996065226727347837776704846556201034132155181261363333365627852160189813588102045750418529126431061192531456234509762509501620775815528817037669601270031601054764599113098185483804035073017237988798539262647537075065263703674087132213180563973004885377220872371047618383031991235025406532696811158225890939720704521212303181875944980292630297021168719621633764631068768362001009102792030438237296568984133581456594882847266456456401286852957767676686657324608812372977464150805168956648461465763887990356759712629177047929828361251012559160123177845347864095966119453849508549827784716060513655899248227408310164399555963133903147683852193181483218815890840895447818782877942150476802904779416775980641624228954530361890281109847412592246728449923905887428527579639049580473846895905909299110673937828918126550557420800250974488969305154188503830037872465266228551470569806870350987530103519609873335888581410728421052722244222949457313618735594444216416234399290649710962425963948437567054070764451113872775287549206252662469919822917539733739336229982360716256223986199733214293673154434836059612863860763300109859653367624636796213105967717646443657349124655709008042816753351579076232439932456464000540701070444074840291236082678050821087305010009289303360324997861137004061903088606966223164864551804892897660064827182638272234336126750921791004574110292590324364191108903651573949793086992354634180950531204580353562837477947677344247104853539344265013466134591807152848864904331939955632876406276468323194741874432583422831325673766185399614418183208788787949129110931136298773103383301370777170507465520791776218421108567888763712330257868558549348171741186570652980277828100560786295231753905722642948862465361063574331114220220174715361039666469495251544525170496144348453782495370724335125458633950947191306001193643392387270536713064698233422129710179896365407923790934090474406085050356411313954170830000280441730816449813205479057635415490723111727381471606552850401173887365556828737502440714268740587525546572236765102952150659684656427383880721944565348284549630697676325699713777693631941499252962843436591674832244927623888391718463716033862588633916478680476017773438091317862780456865561930044904309572103187816692493491713464217110692736219456882744698016126095629997628301346263864140586823323591686059768141627331680802257479882714210874134357306716117163381308216013275732980287683711043752723122983760399030971844502158647967437775641943742698357414385233046634534692466183140743393631021557843204551960815135029755020000557360256127637480500461877688257733444382033931611285579901224045082413571604074750979900367016217749487610462496937009482262391661797961016664884385038351385679733324051908569731659335824054290741968353554281280931898393783654582853224149609462377315991596572788391406096768328344544835673289534614530780198478019293736618350738473059848823523855188817100756088902470793208763223319793890711861515312669825455779441631884004951269767770609777263585687014039131525554941814527032343788213999722524528260744719261813682213148537732925928784215369598076029427822185913276423513738262974747674440343508409005155115452463312812673481842882845056702579638939938850103220412300561546076092606278226269042390146732328582449046825866178637674760326012440677330298884570916855436794282593822122383333520120977027194080128859448550734718864338695040006497242234196455481060523344309090268935273968515123700297314358144834077878694312978472710406658074792306103848604827028803684648642563902634840360951381324108688808717238953697788807406951483659710935084776093254062345766554845473714632558523880679574773092398333924371960265980264728874251901909516297630839722487914684791049707205584909251216424860079411602896738975847225358830398753926656286301603167730373328712389494983270355760709697113605210629839856552903497996132204242792561477737208022010296346571681477465063655558606696106264108351030922884186771801480112946186529022474992274684057259601088428453032984586799431588606611451314676378582164262324212360559854274966671996534861608958316218692805985690162616560093005949760884764192729804731338352509623045421435853879868802558037341600159073603536095102151976414623020674736452998665473320480465534681674000136337522889198864573105719305849985969155202233565657581652459094708291876054812812183592740660352410103184420738344632968860542299527038174498207445560925976900232153536653902931825940849971687239238772235170335709394161888155642463794810441156997746429534656000584115648062273365799763038832029312626066546699381667814175776031301977814938342422787617954673744496851485782745382251738209706544144008893733828407176382388910166664719888606109717625256547062769868433877416140895535032434974073139844759738695837676470690268397900035954840636686586353040512148925302445434718061939194030594857977388210614523820981392948786753607220131104235915386872013356456643062019994826861846211692494418383954930409056017853830505380420744334937446582542442057210167387797738101972388486284912568758389776703483171266772750931766889897661069659463901188972477517585384724078236346143943701855304024342883722126395253115636969479075246663583125858826938806587521465376664480749117709546539047323192834480216237587121934499942861480213229585606892287589560068778570993314859470375255342594156333676845792006996467833462962597121904185790601003345818291020692469683424563487893138011108488854349224496926474074059809338458928333244397781015060082617890635987008577038914511812688077176741026413544068330504011096832866557443498391336255042456914945325252193737247182413581545342159036941310196539529557983438251711951170132035463426924498575050043345450838068820162318583583950016111823378950925589636321056012186394104677677943295379632888054525289777998155149028236767578135632387796760180170209193212509751551376762375599084442423090630022958352652292649904528327979165345187102737234220032195811906112507483018011982893259149966733119217493900338709405791446173589705236073688103783156297417410491616282683105661899862501189002914521368518604365610810264179619093118556043502879777471223845716944827670588867141900603703527028345950750661055400229158838495732758869255422672428620248685122416042154417903165927207145604885741705536053617723580039586984876557214221529711412818053844441838327071269967027423691216380972724452405631936939876494831810177820569040148488326011132139360782720850835089244676247704532777986684553145274233889066402563563555512486602699107070327002962422332885837389830453298732183777354020847413800217870769256460730175604807206757647087093876037054146822953232224154647158363902218882626534428026551031011248618371219225267235413222181229459935086626192419838015791041080754972940499417895455882024203997164333661699085688394961862445682581573420514846053795151625210561710391475659610248063851892801928338934931222875199049987533921600024109489554626523456688102796223318905943598718192408923415130713734001608779239463570387801053445092159134772496377997453530002364649875347303946268341337034125550289504593833342252543571031660592873336782711222332091174382974823965650973367158028065295694021960234561746078732407150919897442064604313236704948739009968711520490938461072484781144712957431640053238315235584052698244668292424761733135013195708642411349984056488255433119253250967087621676696798621744580346396660809250458071726009253309255027327024265615551537711105930816584566449952063087880362319267146941308481565258862602455379400309556531234758881807842961659023004460545176758824233818175781382618870804603982980000348803868001884062571847789847102642860950228062245252854284244712150859790686992623257844573331512824557505762812554824163830063863439211656610412682392448179917973085838181130665828761196705264979961359064793814779187648950572281025432902803231852347877517092126997412550079990208813079847430801733871250724370733779340685224943781604410140340927336579781607903294128342252745277479251895862316942219131121854810779212466489449225269231866695017431083229394966429772124498536342030089219152209336813003140142495951044790439680187693987947123025098923433728005822246195483256808446342060265598923349427725452894012518259232521525316576661600612587050661894476449665507534480564272374662882168319558400233688520210580670199561776971507448546211422452589336340657573338406454144279216842358273789061703527832441545494408564491750874671201789502276140284910858254278376744136106372774132343387928474348849899021365083947391223080571375250027350104335374393931947100222860401308480718676813040121085855887496715368296449906147918770093143942919106253262449177500784963635547725615671957003461837782826880292716354913841741515386323008583724797640434593354374407972789401753917576370742433084625363092573062190021183049948740217308752274692492961891815092242068231936120995202173656502452657304339450012548589266466892813655702783675204021348086388673143483475232937547717033359118766334524046936943176809913939207659948215477952242701689139945774712225544942980397731438187390559171596258890490524454306810483049622567328899645126453547552402613128269659103796634620627799828750557036615325996213713200958091816463692431971888165369405081921349302288159780036819236679769317054059046139892927079393297549836164184694242038772229240907978308214570740824485921236523769579567034518132858124930669404666136386314957906080271247957585642553223827491235245223127829511327283852800525884675974866525500410978812004286247624533383077991316692973577022603114311516359516352500361162916282968768308953860756954333873077837655350887960999247135245791656622823865148839654169328241575934929963942322160408508867607314184018626735688815681325507031796740974530203980081673989094271561849083422850295689267226376615821007950552495548542090066547484402204928074398604328584127335288567136974861727027742729915753676403038116951581673927686336495356889055836487260050939873450594229010805378626335735590623173390115284761680422205561515305619834722566868448395165067547716371648191380342743367973465590016113979998629886548344872480184279411127750344327510616070476069704456763233386458828026080175988928254497015670219204104251459498973693522426014203367404929975721840452748298042766608714269387604526261618186893611160846621481219660280013203498249558839078206175871569193607279836781300465184352807102085872306927159575291701012248416412991050541833819080193680131644519832950926145309368265831173384612447947060972477376753020737996068379168548759807329162392007757369470233546602143487551108787089319297163330846623508990524193756313448611137650854389144122533711296303481286909812727872829341181657077304458421467077887496084804971188983700854466094123678664167569057042850034201620111045071079796060919113290404746778950256653634487826113369611553707245514827409237440275699372700539417746892800671354619866312259479230273335367031477000315163684484545144588249666686263309651858734117155571708323317262541208361639295659134128644372017574334260491623161855624231871867400299275277933420514988421142358939227281610123058365289698803974214403562015223545320766303764833021596558171772527837450427705891674466928134412563612588128813343165673320256961758152980776231372921751268952451394955173983155422155512398855587864577478998882277992552749356194197298476270674608597114326898584920587465746463055801223545961733961794929870821987627472561171924240949793047071365411788860519859342661620205344299348557279828584396442090144578172041140759336465215914349486819079226617166715088110567427824048744097158068956548366992109109391685807361822963670832710938854228838158815893532033978428668435336859012156271502219132368959317372103950479125159248356947654631427378621099172036722027391944924745096393396381573208569913042611433335467454294293930440991339318779175095405995874968281196369585807275519577061895067175979603971948032542314195947980828748661101439991607993419436436908718435304453346318205478812706769881639719922117738419176756285166433723436468509898132805445458935039751263630910285632058754086258918982131244802790634378800938372390993885911247327080724694734348672608809245830923006436102159297940223246344741648838039540840451832112982705221723950609706880781132505497640161271165715937043553731419158380157154646414539271710476752837947419494698060105454617822714219697048635777992939046013715753782291247315745392342380709177635755033132372707838265055288002664994384007164277568726525542428418024652414295399246475663089976755640399602117384382540872238778535329995366980922992711505475209406621816984702848261578974731585211580277238525418831464246289553298626053852647462928316935976648772602571115075642004954100243157171531417727436189025894753352448910984949572116593158792642845638195130001346276002252418561415762344876822815358430408340762941498536147829684713952343268908786581066972430750981006508230245470904859965120776677528128732833515390068815268359355844451775622603726931134698027567813495508368836614166718286372934195160819209234577886085943766312715240673514875812259495651704919322255436334604699594128228221395727217084645572299451398778595544416481547288355231282057527678498131889653665013714705333816256783910267994854620230588119755152412320649888162477847945482808331920819716019071981684784164130167953239899999851833042954217799290793810548329486146893901059786090861325618587405034721363068162139823815081011329876074519318092462532964576607802796217265742228998585554579838915655700447983402298056887659527932133645446791601054103056661649292925481762825571191511166872725437841178822114824712389237796689230496885930852392184482108870305236338709515322531076287134556540979013345618518573360365628467290836566468824245818083559548939622958411460459907690288418755783963818739560430966263846363344549145729871677027887216826725122773442717400482395677093583815433411428816157657889834913700722498092793121764712953862269891338687646827106501993486813625099537369763533730266265562653254404414568305653436815316706659910147007436478031476730437969846335421052420165681868778065768079139286771785439916465302062260873483436448827928407043763756971580758625087644116685413912448331933132003418114792138493582707929485814549709851523298419663337798279013891358381388449496030615239682039215259903053175134528538506258978285392721328469326351759298354112111247682395395652104010043452046236244957843096797288032135049774948203877856147425294660257521419493632248909963044959602193873622761136863332151732567507087212679839805835949351669385023785516562401565519166724543257111971916818884510681322237637347570462280565330846487631609293504491702200790352475434083102540923471687397543720399056758408445834014111587836817123020973862093047889475734942308560475855867906308420670875150685280988254710998749176215147302630902911981033521540523171353256636700545354988865157369944983943510501402359563021883244073295685507404607795855618576539440318781218188210589205495986081654471600248556885175041327465181672615797391800262267572840734135781911476667702599904924464563772115389283082361897560792901559095997662810274915992963302828289565889152060886948746674285613299126175063241615173768379624335363554318706345209045838833126724055622313247800627227579462232936962250472089099976851866081184009561015384414219431192363273461752186810265416452327495142539517965324342448526080864461019140066519454978871650251055761676487757414407467034130138908992998815333607411734980370285770979060773960231769227148594615246680208502656356753796744615415910348734485982236805421264916503608766416557946170188993381229099328722420211419761594098177108523134593459791545946140734424112505608561447237517924958219898525914095150634221824219123051376894391513599907639572607464715374882360079667330991904591349830370560853267795419559936162697630396897967343690893171381863968376718815881582688637143760241143256981154422936742073271888540639677218017716756978843403484741672225567953629442509907157016369301491950215922441857549979719803734016807565370522621195515929519603262563580078560354507205428740495079331461836690089049767420729048828776543947305397938429602337667979536794988029887609227441821362945952833782081477779886307391509332243728568091965962539814672351321861096374467927930659635466238840594547119454790355553595490702822530297764841433629674288084029311565669511213816214945037907546599296343450289200763707185536005560511169410533853730506561153814035575163367725996575460191394675202078347242335403078781065837463275845968579676405151062458645769697908973496819025048649440722291984655304089752693913241456542310336827877833134297455902822281201749409015483690697606739420233329246463233810640816394882869475915677093312673223551207750678590998923930638164096562229266819680390401652283187574375956808184954741822409648122224868179018141207230787543071926360514239879490837748404182444053977646458588943637844510860610412941535607351980451004326450849154183933787040839003673264616952488722345786895632863920999012965769538342070816241212137682011098239574981944274513870272388714029404759000103578467779789274898473027610205449330777109771072452598148260441566781924933083587723679648488805270986580138493354095056458050629029551865963577050426225486935900382787086448548184804532260251307024624280897477390215920095183376625437542489853042056099533916069719493239293947229055135856812662187608830393553519794725553842523048703700228054669499203887266234137725845924906243729771264715788768034994807161855521146376863352787390199742331146500047878795646052487451823921571155614807942623702729800351078174035283638712108636156199416443440739480304668587599360857157804593150623362340004514257725814075116134239101661683581286294988919097761003032232387163092796684051016381837385218606439225563550455487063355379089519908221396286290689286946128337027838728471396545692835582092565438856606855387423538320844304151171703544541257100265688120690393432022099246884708480184305197562299251653753828756743553884991186458997483931980402709359278715955121720618701804072825408632216929414487155781286570965436026907813692977417285712705632841966424809053482302484928672462981758859796756047393515140569224211813473452528688520218923477661261603761872102243786223924047400610578178763098142358994759549559804272118435731236521872067641920885320236176954990412427337319809929518666154460800881163516329406486533749362626783858438484093614688158735006296651647744001956414968014737889109205340697082452520141981738948963896712213866717272735419539372282830617692522376842513402161372513703010570349728019377610685860227782988197513860826902620869445953598819326278305546296529927048234641684211306402845178831799125159507249551488081880446701982971852975646132028191263364513936501475020997915392303931758174388926789379368584277241725533913482339574001513542154681312406524672040740343200335194121191910605884098777563682672676172310762431308173592482750314140063226059332905216787198629569035861884517437985333692532997117256825949582130043594703736261798451453461958996739217826923509092752565912461309274579293368739718420967920396100817733336406751691740557012358080947527367135493775845992783012006409704639262789653364085944595479544934889177177746468414541206195127589107748043152925252954954754825983665903405984489313018134597648885507515837495241546589174586514606527656943301672471626267798047712437989987337343868975860517104152621550108157559565247248130833478718394980822042971275961216284744957348255439201956609637945533767247896632024635230006155030006340001313665400837212542375955510766863834801456213931913659359887702367904724822930421263475329640540957438753064056108734848207646963335496845145052574211241139939806071078505525106143675360181247736413280387330246016870629155474511975333565921041917335014671602617059000107413238109550620560119618313608051830388125712146417062410511091349712504429636280336021965146283065957217056014853478300049427598334294281683883968554458403860906503536116425508503623341987705151846230574233637507035315882090990692183132569205365304908942948965527406098858412468457111798765859420801222256021562604805559329893537160164079972213846521370702900496984315691172536431744490859072864616565866058155212282358317713089889341270655250752285079363950061741620777204214836341233122090279840441370727341778017195960666363591404798823670403913019588079325568699277194218122621187735904226250011312418376510780472573128500673213749195973807762444780067770893430960442345774071217177564829867728924635829681941452822600734448584247741480309896993417124211552530343416395446891531151244512855736311487230548422666652890156053422806413590602444172755771716386248637462607996212800896111262488548308666193887189872134341844911731156599998241518338134845753896279205611383578799180142058671138939885371182208145318927784723442009734308440656878066692810360596930418395459071004732392246035709007722091482024940533591994912322188447986704339139962994710137171921217136094367729898547987697931845001575047937063803051008463571958620455321589891424611146438816932902090167039122578662008432203499309100768990897903046469956132432271654565821445787321652884012776851350000201139556249526119731094476577564331555070586464584549993557823740813201226012030095444249846741041551341046958833895561006225403804451709536122430476741198572872440974785837060295771178874190666152515402451153947032223848881945046267845951018157915303829396054582133532925550694134150817862140911746595783851016550350317236674195346260072381386311750744472737516614563423478304023058297361238455050151892185506096766439585954779812628240745901760245023421535528556630377465995225520264234439225359300234118802825887939658269474921401867526151956640843544937926879530549077261849864912119111265365225651072200286953094438907816603631604761665543144643983119459511876224138543295034534234508968929548200729319069621537802426289624937824814389092937904203127678515884517931761663320389588065444126162814351354888217472127754983842500500447180132169423518985609815290569762408904977344548976371968465292239738135395204015386585754506757242317647089923231923916091293629558369804555935249137864282192930498748522492369101697652959161735329510085634397436073400201313558180533415370793418238076964853010731481286742691857572169849504194545512820873534396326384192813162124991003526506368450142653999669122592860556011619086812911485441119580097201599639341510104252718542815500343224872185943345459441701920414457772437322331967766483509007221782589195812267235500504324832789383112846930397141447935556165400099199709067979248528059795726819639014549844198440712980597587955827360550759386039817331526896552407179612188627683806724122625127495175203392799122709652862535532566504393591380598793442841809679177121833214797994195581544607179374871860026328808321338538351072675741972312884198863061560772160369943660229230969490412030625420224153818762347037412191469143332512129795908289106516233140804656481019564097017009688195484358723973301701793075983769705960781314576703793596427584724387182278095714592643741133076146638108390540197393652512044075414508115097401134585568201813904988920286930919143488633565154124986912746460694030358256071601345244807214714569678366202928950121986457846903972069429099603231932534379203216868657493953694723570396052048672003372635625405931316084953768297472725961228441648556838671981973024424301965616098539937835150377869218076185045150642361242398786926498946597785541601783650459454375018462300260499750671220047299712605504679306391116359049989380913306264644631277197064775233848648551350518418632036345986258160650326016109208450685756496483607868607830450553746691955708230169430061908399529595642029281926492746335795454910385463976531142780235496655051982477266916919843455663028147195812177545252798220221777170599603483634288028810700578333062182638799468749631409781589748367643470976176587749556586100154754893988867835836179047568619625388837663865991749954632895348024238145216287086523944502836908040843201352768729841213509454736703832639778818201792534471482670270466682289180669869660834810525105850961533939429988888920062291060274889463015382238805130462716129696356231528809614416397313786865502294613868957682794259061542824491305852559661404591412584377444364693785698552694746161626369920430293638935717415997448385549512539747654077431506039366105573043356453482681729662174851228123631687610311390451025964638941066829107540388027089880420920827357170403608747387201429784883749766214144198930324588692867481059391631570191001337939118978224978566691285926392135539056256923647747852661384956571821776632478187468107527037258165815780514098824337940493656423332496380772441549358393607173085249694631520451842132797630940780440916028387618013532323406053648693883018540793726147352634629915574302385133686863349472121496796566058816809666672492028754608119113374822969949899852132908823890613696831471455241218644679421846231589846910837918223593922866331399589167181548352720319561568656994067866532583983253341966310182433982460653276902712215824579964843368055340550731124858947394082327996309411039800678502439239134290312449906264957836980340309180188691802373834476280822388910338948311575957516104501614180643150477026549440768023363669733524780611021648015031096700229174769809445992619743879581280344090066824827730516273882849628049070726534924033385603711232565799358270522745517562224379671391638376558792092113342956967171151901247276521277151932420430592041107497443089192287936907767042429909043549052013128644529225002642100600105310634760686875829821099142774644863439840458978884024653318962349661601837126181873105688267281818007126581061178329746299259144911676835430013608037240338642233121859739118168574908844454197859087637475787819715929389560045153440414045566216338637716030030298354288778007900114696494553731320813718408359292281882481633751342907502462105221157180740572701134709789596089238896157184865212808932227659774820237794351190148083727327378304026092390725143547785882112771901929511702416131680798510625123545199120968252724338634362536885067122562774904092855890654446858872529965806808923290459681786614004630825357947256548536166780923959496249621404142906710757795092811771256885873284049439441151806608860271557972820260541474145225073141481080591245739948853877049464935084559909173626425815979363294903326385192405615673999228517597911407174477880570639075113163101146205549574873023485046036307396058014585592747525759784598620145614824887485328457258959965204458176112509672324004085349089192039895567070390651712794355900656546893471505468668071440971742923347724182122195946907135885319382967695765818678496471078123523899324768556277715147186229681357653034760498372474229524704773490877983842236751322308196392636991116691283187978656975792767913920466325922934630693987826992958072348641673051403102317716449432093472754743012734917943230075478665719106394107150970352074676058234617825997493044138606053021653071390709139239484421072507895235324334101386158175203787605801824755894769076375331479574315305411214684844070450191967862826602020006700365957500824948554704971972531055170002320229123631260959226193813753989671815508638839066943074418111748731042729545057470734746938451281588944700377809833806894137262294405099706126475708672761262340218546800981578606458802950392912816640605711954351203003164580862768705869092225778061385164207557094519831043571678688195477573901810137454362513614182972620679304051823257170009600361803991861376566151709117520780920349856147173866486492586359935518284688484343523995787540243859145641931742980974886352641963257421190221263348401598417446019644515553555810298151768840910983465056977029594317050733991989266077438889816142928042933478706473344050446728515459756254373921971249035915168269219046665401965902169566353372868132744380241998390219663371237932380135627318378861481778217153655058521744685604629729212383238191008854114372695179273853923819861013076260352202512554637288012124022318561451915057979018789289637827766492702748876023182453734480305929133248995625376824726307017620982787595129677085661364119192603498440565623754517623168709020673079728738953223913239545659662022717055443508963045154625844788366879996807064409484069664847841629956392162977563182795393113462986188097146605046976682688994112173163420880587294566287610397234695646374304533531936318584418836227021743314329323926873056475535986635436113575580660400230861323098196510851472484346828137142533408334355134995559516147753283811538362160227450991240366698860169684922196738578123288298734719122317946507760168225161846799448393862847101567675440583865192793527623753227028602896849731701945043702960636437483673316651345048935492144413797899751254543332398993734482281163067930801887482336839886696245187935357666616253822484611930636372419054347644686487022276725127324574691907379176089138515431030296054716991347784509009025660897914444529686589143367247518326342518757300310528700566402169480874184524963246195240665125673459221766797343796262340323008699787646904055674763398378090744511900043328274018621899432331552179085188002829532862890987474196443744325572909762098916882063507061333352437611453344833136916858856097121254488395600441805089021573091454087979626517135780135694839516570216076095091480644503383960069204163504091435181906997456208929187241647893533896349488737167727200382221998089677276827820224146349924860475058406382544349864112177721990944925024630781236825020456655306013188532727784234389676362871732087142731989237489087718231096695741216838988562130935377917814916139536463315753672731463890937395413015179403969738623729430276426873171674122340760870677658155357623909491633107808388542140526540130038505948399632037781725408646730475765462626786889948174221392649186284565485881869093220006002717381370080260080757138824426882648854486251723764335979861596592006385474210081095084206289421364631942557652397600320954038729084892641748689038535190412415137968494713415143123346646284799598421784239701226717302505671274282345971136110579942439655322267177858311247419938376605553728149712613009688712535148147893380938329401840892948663087454393647070601680055869374432142383597929375085879408279597890934525675381368367375164795163993125834408154935702404407590905043298114084515318971144005314326993374413235523633207590859233773322604901631202179970825768054902478296882997918221083137828218950610610716903896818788677357152940400503387155362311700916677485439506086312343962790324180704080181091394183509348707978592092695649994963965360049604671954601418265789969907880870230658660839402198171558906705951794475994147219989342338003512724907697103473031881258945377053813004291291292591977974628655405573495299908896717363854506990801391039714072659201600618787030445830961857720844037421875379263335366403494975724473507552295363082783769716459557019792619429186199552643322512481690500027068841220143526120113106727781306781238861506545489147696788623711496496675626287952641617120045090467567411703422427556563299801270931926707375088483707327005215025868590380691282474724676191808514421550792100279172879718853341654213673521648235850302668165822430521069017667902394456816386757658483558335722381896141792318846921631226071631791847862936882105367029728095299673486590693210632349072701162239274940480690124006581878272396274288540612528411114660953487585176941643697541345729801566293419401519759844623228917800154256207845165779046823136189791074334395367012178075823009961186767357865129381645382630214523641180200664784189494736087417131976625874057515318263833079103287473072546194584986706732729556849797351991143719359248893547505994066473364755363292744624931392411999716205914303486064193364667498910742444033319193573838828505384530064244219132385340581855040219259320944913521414391001393878218265426335901686204903433652065114080600135768548183140817033856202109075601832834000247366499336525748715827913075063698032798857136662779089299047653942853400776915604730550799012275456496469766793673626866879721474964905286692154608866422057500845751578320222115941770063004743626039412802560027038642011660239379817987615616203788278297030046202905974523173194131479315140471542799145190128336894794046526711950423530492243889066058769355703078387987786551362491355859904781903894157954288125119192740324792900139035325332691528418624669685337606086301859519502686934532556375652177107963424509163181819247335966667635775941664654354768626324206214257115257316926033144053822861314575596054493318072910427693383301518004307419729701801044125031621699984577422779034653005835908571792808811121793268789992189518164671506415350086017627306314996625075094209798507213444521682553558032959049471039442332498008030012355025092530043440382644957725693468856506949606030688617953643334102273601669704515371904281488876527867653591047486503828420180076215060032134579220053747825438258011426504274768389475774000126904338330287934623456315169118924785964718199033558784425586985269886064033396812782958253530048609243866023664823773179579271675168455153082830877585510986957547645162600312136834072106522218857357126427435933431403212229396972059976375464397898021568172669134311793891677863952254003342118752767916549060230592080553182255042043383131300577082590151911158957269602354414975407476007520918535556863772782883821297823365919897893428363741706439120619878618645344522326604297704133685739112385985918078006234711621334025149171474481930163563738444569394352299423095838051118632379791822266032788875605258821236925285472361211292784515191321004772766445514344066944962342333658980459897253564773969458333778126051259109257695413915327156602858717474613651626752341980907529549773318427052265099292778771422475833718193183265203758962000279468866545623077334705399638743629998537151665905704205204533935733527385613714400318370840017027175805899620596259891525534955390864911613044179783095464723012982260618771647295063373190115129089713742958337313206506319565327701500661354189081472051522100548241465704737443142815284097080055136557701856820713602831257908572734184200116249106590770112975747023481872222209413061607610353695271235794792240475883102835140584513034484031218476194650183352913780970911789139952891120004385558016519055688232009339967326596956147735755462673571304440380475287562676591138559302451600236498355293440837127752341341362669610175210682293934489471196173366872084387425884102588361211109678263070435089767958703268333069549845660870077583547703529522867160808982057610949705191304126610857210596075289572432465793891899771307252733557858969754269401645526037091099486957383334477191556020916374058343607267006540011542691986130520007877885825806291749919762091038071738987012763855496369115078416737813398140789198137357512749548122567959768242819395129186937521265325894945014410737938055848309769516287531339316270892693612760637385763281928280570964631139119524378027243728665856959010304725715529093759945431119587960462715596547608289335110648348868408328935264493527863946959828477668144781871054492622594060418427146324340131869372979760656480915046655263787042151956908165607876454779422491049976991230614357969899017997398981905355013772697519765462765663805666526098557902166756804300191242084162340563398047809979883571058828943729782114382124548226085104470521444998100009233310145102762756042384516849572242039199145744989908849252072322193614717163420180132135635648766637387454272004756830708577987565123416737830963276667046972761187939190550338722608005825913151427403306839886598992746431740091628700451807926399996688822466021866598889557675108295994755721211939093463138299117687832342425524149454821769362589642158695933206112740334167380752496021572003189699751158806610466270043335354400660547104987758928541799610738517942638799994251825121564061035568018434814075173174095398428140157477190138951523408767596298110539722566003941109963294341235317670947093251315339633599418394723502185414851782703883605055778182501768648423095392229681021749699119391978726630133708517644552098798420046480946578596106198200247649437778197505636931276062555815784755941541749380132478227673771300124116553555817472646968335133637105692139496890520003719123319274004178980126441523428673472166884031363529537764348519240506058954883618220745563837921310760893489250249289794333343541616810311168153271378023888214792204777544299830362321083268010732601010368683040128314448462361502371480899253145451356778042714043049427818499297772577263246007196555062776769418686688513535617198406455485960134757902553587904402264034792572209612121756471604199869830934196889549262120743290555921483658780937674540686009643059462719912280325113442322351356471785467882489438153856319026149525641594615235866095560218492385740933030224738147846358297665874225992290370062078482037726896586732808384510166704968871801330972946607814370523412785551525413306928142082064198517252554637073325799968425544399443675885096417280279214262561146756178217555011064856980734312286290453987694414829221898745802221510732025802763095814814212689886741005076322570074749602624846802609924991184063752929800251144570523675006703964379091058745624888127208751536591717135988657219003480117146118172416947633673938502655229039721662939970624427831621406247359620257389117865080260372795340381621604763233016728480655668934364745277380620111579865821012004689254207102930062615950366105000133723054091290357865636208904288700636840294873669892101794665956234823180430029487639224280901058907323540823145744379077710124486747851946552551386233611991208134623355956873508695049213067852130788304675096832950191707267662398906379384346363471665536678260550951443227562283042542700484948827966665472554487918850825650675936062924683464920955348557989867673526517491165345463579078785122149543745281147690703564406290973100223449997311530362631948475604331044536384259599312500832568124148150949174364019351650399494967060376698043605825700027074073275505253447738912307741190374599874730596837537633830931759402215552097791275927024476834998187342353902592841105245471267095312731728254834739634057850872237256859749134591526853947196614914205580073800050230926077695157680978700632633550468035400725949248066402616984191291743052502380336263026128599564914874916226349059011855545161150569123422716509937426052441162549622445194035056189909730855121974793061586444308582529089809144343370695408844105570081131039657322722647423042877159339078010607766487613612956983624860655513924850933695697810464002683337121074218121887778961602341153947423582023695531833847533576519102721750485058440411406987260101567233208426684716258597352715880664095353071428419615828383365595778509887678492900202723860886318408475466625164020242042331286539208435191877392802937193806064934013788429086262346450146442472040549250133522557035224717033877619491352043925160646536527565650331389682448455342772239446572866661548858587126323669995830361490483298852601872383361253561326358177330085238141052744798079674130900565377240342213625624213334308466639776980407217723533406703721067164738281251724050855578727515167230685032449806215320397803184932349407048030521060598410366395085808526844883557113882294193427399315577748206266352937266308904333435463997186737524908884243827069590002162415410298983328238187175303662004943984528147020811501276646120473148727477461894562203359881948836501119920913911286413578897818892575150851566725416202378715022659981652957523463043078066001586824773265533291705194338578603594802980298926940624293696872859559609909778321425597146623440009453120685516784840956305979649070802256369777813605821223819331291461576633645100203900287238021885996306369000799317014608397447945682881768278330371424117421467360153135408091946615351062875862299112788740594351058951645380750257734234634956726147715402252275875085958714880854387609141470284471974532723661978212453134999330379942362880464994415623355441118920314428048656587689658426459381384673017174739723519867843906206601739124638512406633844774761757559647204095204382309014867672533903178555616898190113734260489788975776068045680343256656550681397251382265022354114121405931028735574224519788583264042746300209069452328031987851266268079716087280602269130183932009081657904995660872879431555371991273016618461090400100955668783872825571399261196064924838584122768394781223061017005028565679665585942526600776860438935873826700224032457354577661651791283288716973270726738101525143177166038566827390650083627464531419750361997277664849710275906431688734639773829437215409335863079192024311688261474492763172648805874513100217242758879611125770560539960348823665908804105333791548427044137089584046041028104978268901506671186268711875634681405812392419357584479354517642428941813250977598124831254360410255609500858374161281780402108983055331071264130385403594221314023413191808159525156807949694510229118318330359426359973665797418283746405851445626687224009264600115710142434703308244990752397228603928010561696108220422340365299223805692616702967111097036189526147172866897444978531825967540917685701726694325499521675301744364187053817808413012202454115992884561050854391651308955407309742108756950277825170231749164845594207160424876271450126396853954322103713918875227274419188122009271099285381157845366260431696224480519665213668965645725802586169789391355627191421736623714288664165679143656709419870325113693241605326544951343580827678195034950894991399365069047465904768684547170246507196652185314286458807293869326076751602776111414508592765658741630268100712684320628456560774030245874017979355187145003947556080396300940798636369430517213551208798408365010070041464861588886726047334402773845075389056636280509720919246498228549083099382850067837153880823478178731382673914880462246632322208710606343760997987717822948133627973793667928844538405857321030984124372329056598316646955218092066795796009987106440797122763653190422196980009313163027134594857544066675136747575913123769162899052261079187232915508035662311002801612561138746060526135167714112740184814304668629149421574001898080162007695664656062487399113548261830071587692442238691313800921587184285133715796671503353612036097654915803111235623899892674535347546864801861281207901942469416525376399109278236140593251530641086525817961016605623754837445002594274190294595217928787241515188714748762749126856798307376935136073066831477771340005171727237442371148976097062805138647577044477627528869641755895447757378870728742752560083909258554092957902069035276709285977409942039614026868547926246383655659782887315099376352389128409238732228413155301400913208895724855993951629750755848334696736514027395088070326497532951043536876944863140661234214706264441796426224218895658140008248735533911437893437745149946626524522167081390963333235982517677162118305109773746412457859468650273344307607731292457785232520737245512656251382004721067481053744191891692841032537916044686063672738846641303677461268409906103499336233725757295193461146105632785543163116176573816006312702422185997926702544542015710575605013453541349467002408947284267408594319453106588514849427160437302870483316204845824245602739548996884563500497117794384211184514261794488448461993276760768320742170101123112887896476167252252382228284390405698078931157683244985697099210557761598709147358602879845933244996841046910265648394164670041235668458627573812743572235590070860490969908061846627896591258415253465022147332175176592201442504145472215128869914729487017692860992452591493004784222262893672008841997006762380762104128876331139232492921811900478929120098299531129021309051695114865409397433373761125031503629742998552439936641904431118600001669287052482694837212906089496195261424260401049232562211099179083932430129290176538260807385178127672040917415791507863244810892274318806746165337187496186296048168609986761199864267521790619912947622494002305938553012539898357916906322805929842082350416778182622886444210475427360056131873211455487249195199484523455862139572932303029007026349244158695497825384858937034399235760073349739583277659152191843673033126145622931791938501636494900465284594214316198650953555598276955944819642852032308640434054429172582748629799681678231297695429031956163140613141655518444173874513272235719356224597469240292629710276710971776375314928781999000351639715587456707235562598160388243117973215236863691177842341943648811686059799906130869883408070590142799067446092623936720180573557154123388697074028649115939756019091410876402227373609882519214689377750241542037283312311597417109405816836569781107355723455429474474392627965278513581143116778549774060363614050491741079590075550250341937809482260184691316298201636444448864259702177090198069831252818746644684607942498151208981158487132488381680507238141965377482056587529012189368175885201167965854856056695716556200457448666244452000441125741267356802490461483297558003707878408897581905525093191927328995760470375535363674699602624755135474211386941533558888935963802424820605486941883711739840562968259273564993513416553659631477255165770956696412995464605240487625661357310479970527505161583295220646644940801267122264682033069476743488488106279655683455846286409556914314195969378649477352528666530038075274311213211718915377971872017124387969169902211421234515181674722528257107885532834396056818769294386610360080918936396255469142493998660827301205664471105954274457841160654924214419786293919982859403089373300988148276153469834778012654002449690757060143025476676684184409288849490829901933234683357770726759464571325033424550254451389963237059811361706872316847798920592538494996371019542608112972880829064410896002595278090350506555121836675254978559638023206840004116516570819958510051728265650307349735888537835997013198652813914078457598261724649407553835110152773993847113070726386690107204238241069832850881911003618318642594274650804140756638368767628727229254140353129849409068952009914057532540740715236612960242988219810093204759112665694281539090177808864949557850453222059901423287062962652325273485177376634121416115379757568308252101238257208260703184186262724592563454729317204643913179975919961085962062064514828853744940305080591760967108580172854649045822581998257475197470229776132279691186235508924148384782941764644945940089110224663992380903991561539464906321021730860009277762263991805346973320750300307254962448974704125093595153858904073688570103306964399249322183221245161221443560554647545076705368120003177115366602598722019825519604484936934558438872713251256333301849725868654991645068878681559701167198575487185783093578757145381694178640966202416913056327467580909790865816029292879070455414081153292190917700528383962216349504458890594567306422878952524573660556000101181378777965131022240887507431852898742072200568465932769970170794246001070559283597324825049255893024746612253147166857905437073624804081261727001948629334435994445292091338970623510611318451383208259517698920744520696734940886226228215310979716915006788463471615291547272852462976958754741830281794423046700404634321084282303926338713637057534627153928415366328359435995580493966898297311917760801815970107344529990369602611350808481491756261483612154967550565773293037570116953613704931439961949203901394787270161711588147904019948596765724519420322961074331955051184440682635075129469962055352092167815763889326579156871417971959166260629718257887306055262103867408406960250953129541803997503724145757940034894846723195505539552045111598104965139829714158770787566339745981165344794797259491663626786908737365203929973179918741829146055464210243086736333375682986202208961336154110800520527999819419636241700643644862406004436644333955029977002321008850492655220060942417705597882436218897977087653321922927676182392915233197877419123034530473033981348734209122793638762375202669677948164342503543886440124774749063529556991306732859660655789565327254640199303139731458805630598663477855330034136254698254980150590652884883165184226371555046355066782721694446789754096007834432728597540717182500222220494484913083827745635562468242961920659626705271021400291364012807124406911875528397024517647366766932879096710109620836414737965639616081706949311042094320080726374619484897656043776977509405445138947436799156630163562940090565762306075192711025214564712250002100191276565843551472539920560471078726974284498094953800283238751589792843524020881968850588969146075318911259629490314443527550536503413151011415171210718988324847067547734144547888627474854486728816589675741870773047937946367910345426056032501731962720245502225048792150864252902145518114033977457438278183898190107733487787708987318242309064101987338263672681801326821824496634088452945725132730640724784522417414707170943936059965719500226097382131339578876027639803601378166952420099864359719452750208252688890203013484895262777058244920817971716209040410231388697276811712851665611456914576647411321673648797444591817526176715304985071817762523189227317406025790184340652609395213454329018515383244924047488153820909650937046227488640275620324805845087966320907742852648067423227524036454235128221909375494526626396601191975610265228284429721431782472107628736493619115039360554033615885481313291689219635115445829562658910600583882369733066320301545188881676868754151912431066492494378384428722573905089085139421605043952355744434305254507002594448874321190447098644144351239533136133461936602620890614059389768263501418907538508971421165135286730722416117050409799650591546806146189889799073703951108537470742828846600363519406112087034155654138266006553051112888942552491708397244438577671040753899873786885552402834375596079092910317673529299711398609662138595068449524784237447927347711278054617910676537129165765718015818835161073081386575300407660237144762954183482684551999716804189884084104159704278704712127728319133557959400787660192906220742915739896291636461594233550220858062107685706569358704980538391770450488276657970176137498326201365582798953835347831591956132994604790304832677775441408091991432398926668445766502802979347782590505163606735271244860416115403989817578772844984568126122383402785690086808727754372725231892197848729010355366087115713980802568491204301886740969904561278513932461043179678694114148375113670295972294393277715018897344695186567024700920058156208630373116271208939618963504765956870180090985824410638228141906993676904458381985942834792344225649139799542253591299294318587857805878185309958089855092154083551399732241989054686827800182209805562967216168812251266226326049954566268005658419918488779633862387754955627073990736561478015567578506433311162887585353435149995875664532005326187019532994795236815780001039051049867641115333478804152750643871274321643062265498723385550467446134356651147626762432500343113829970225075118335741189378758225715711433626312279165897319548998864962001670803576759629553789204649337068029555876933415119792531654778571788143041978914886822897024941410726860608560647098034221894437188532568976943329145395768523444419734745366550174816462669132565819103030198543529208609044460661809998975609271238950950740963100244738084057305578487171678970742095503019082115181236548671098824346060770654055590703010548751484047949171865685025261338225109575872486636667086367310952426188920265416524509800775363627917477681942789333257217364015380874911473797113290785425709884798888555013529652655324403614348622363423041208170507019750495851189183420590609174845469208960688296020496753226779191069083741864277123940876647557635640996702360701701899171566399646809207440956981175013060684470050835622132716476005565573786117603674844081929545913783591740240828472898677317908643607490925625493041438504206378035882013013141053272071556853739531221625075258391799658000400662290227995513189962559728450701393971156835674597819295235506345810028848394042604139151196517481551407081031402537960508399388442304919898900899378950720753222803993194704336583839212797411229723022231701210013641223267493019713017648347542308895859007217974285280963455404957733484386012211248819650306701712839348057041332892638099477429550937977742830635736439077499019978445955868358965336025229087734698152735042203382677435259659644101178141108850731689104997386302191844578970417185181556864660751570987938799339205126858029520110154918568645146503882857795050415638558964992538098171344294250683151500544299446389742281619638674610339013341818687326862984462671352614831284095009574072203964411672231172857732837922157334537859318965514045114470273706480989786557860424459046559212744850125509457335697732979926096220418647405429287666273048875026906572149030438110769512411144347422567292254156369986272294122123087484433237536100848748033586575468833600762847085178784229848293999151408037089540138033299812158024764837035889899588532021524095735871982105160355570656051012985238016797791716368055550455596803744490249321639882567149076318220423656871399916744320663903329384985917248343970513137911892412493035238251533084579135681777235753649035196665921797900861926873990730423863219159666790545056913186763652389989420231851649234755185660049742751995668563127878374537562522927886912847894404852594043247294699710365671457797472617837046793879543711084547024475919079043619241521590553472896539224871456975296093997867840276665728183376957810879103866555464529419202784397596412587302453670718945869171323882849403876990923769631492129869515045265738598103933588789686846931167303491552036877121335365142147010654927256314648609400042400213957101815033893214920941213212455162966375896162157367619454404081809606186225371912508240295715963329739385000751500639381210799044785087648091332096199142665636178970788686351126063444261475258310320534913964304720721758508006882572538881562686072811197470273837604508715606053129637824823903078386605562742957939587774067743976295849661531392179438264695478523332125402649504356476288492997286487475107894299723752863266560343626199069171881599104445455128547967883865772849396005430290712974646847161308633391420072299719485257642795564914112286103954838613239749599665878884795396875004508226657963963147906949124504315147648426407906203833181866156244378259378032042602298403438394714343838616772375203355145991225181414147137488847169744277104929494861305306585526357406390748836783915079709516569240789902129811139364431779242428259062096671209875012617187223504411749468208427019060323431795207288204263807646885384190528812655125335984831259327036066934905410077162042782654338578535051417493154844036345926777065273166708671367299095540632251750179694551553825656175450955740534186381561983693099594329909859128269804952624371238622547620406108235966808981798974766128248038299660736004103279929575533473852151012211519214528755559191724881093673019468379435051293213018343833025711204538672364015244111914756476793618291456798688963069027895244118594010242940808314973387747044138177954132886268910454733439144127405416153136140888185451922102245433171346622349317991826682429143198185618623125041359210895356541771235102751491967528668925395742708454121649228272270560377975006738685389839129209022446110798219316904371541346733234021508456495671776861170270878136587856950830937310121663191522378761194695571586515158076301576862959800157210139175429734102159635237860026533351545102754640204333123296177492678924886579126691589489089391827504279671050177073673992923221414821810937317060362494478283495994532854950161067780091805618417330077467884785380606206240310196162812005083845699049420101545971599793265113944653898315052738588094104253689594794334458243732279242991921896582683039557357688848889150501895481382007424998485456351252138862666579191995150817739706307845496313437498234365490060975056822260953412589984056982835894376446045802173325905631082862962992435699174876032126935339343699459551497224353763138863895127063904089532673404757321427338924521708476606926861509261981579882200123904088301814630554375580059292717457830657335628372013230602065632299566262212347937070082783902438944434134847875129923853570552996080657877279580013424836035020019490124376822007505709674935565812396232088191210341860916828567843111931804492616604598227362796643176646638398598561752429216965411085238279592175711526642483741253524959980703684003410830083123964312380314217463100459989791636914168581754490786093701530664024591542690950258840228033538233068340934979854277840494103149261411328477156200491387227760045367888700989206438492546997792443586860794017599874252044064006276870790407462780630961673125763719404193905866496001787218705132715168071402801890672616056276015389926058866246234649476992063015775079646309222004962803245169820161866276641692000001995130325020435670009376723047308721779701575881935485752127138332207138375041400534753548631261563074144243879754020079020313399846348292052985695478486326930251620720805178486220353628395020893023402098409469519061788661351530428211683208781778413264467472313385975556166843426707163187205787920561210735415499430238767259600046752799957303900604260761529643683602866505536430454112994245633242088659281709887379539682859033361748776618056910994604458382649635713156184584827980876572880073328334927703473282066690904115062519252953641017655048848317764150218018029708595396161344816069661911003272623003890977723352930908903498760937040466800535730715393177553141403288208143726600704123128628751773652628679823193713177838204789871874257835394676951946821228178241801143331873637691989996911099094339995117847525230905835016857127730777822917818904225813815395833947776565215598827415193785502131298244964664309395903908463040016370022354389050667508907440424117550781418527320078917099689580369938128777225586673310677508517202879320010581028881790442037729502880532388604184984630209214121763805437764807953942628037519566060152926849718053576272833521945208753256622242193692834441435072247959757810794149206637649238619250917037317985883546138256663888689669397079410945000912671785936399622910538808533916644346327130344006609748813604236477440244857313857678643285005198268441255799533727789676902281319146395039957794600753105479634054315752207996841405741304641745371508000506042648383821231948642947395676220244325895594707035488934322670875039675489781896227289148443678693428984330885048376979566111496200177317350325320029256671271767942596763157075925181623158072429858425288894968822294133251217631459173960054211856274904733931206224695346644046624647824998909392638190473645578454677790179701857754547410096129794174627465213539294453727835427036302744077792793335077041823736137307691111253939510563216654979818307938422107994959771176673424924081390642052471308820820089351307265280498795561244908358296378858630107586773580230070482346128115756371873169606252417428474657760932601738597582217761652132095303463651480892436870511546110843821640876155864180682614604952086693881742625374233632532361508290271101527546156600151979624256937946804938313549501409222294174322491813748577245451800524601557754506920060676913045205437837515735456564529647522277154713230499398968738304470230053488816890889718148897869711423679094862790748535552985005320409928866100148141785673185129606596680511808118447289438247229406183686784082499164497187058321677833582119565802600128384799961565221135494958166452679537597241040635197423477173235370574216994629097396957368007517630864112204799948021792115222762269176688115232156736397688462750306878341817973149129265612901881974082112259409181514685106296122243230024521288300598497918881706185627612006345624740897996475538366516146392634773977748436879464886926088789841698237154689067919788197789801016677433830659203071558211163244379277781608881731238877793781470939595241918866465575401138740826865100787318585039415898089443872968386762705369328909162429724116381697024802001684383062972796266779263842716606935651664779794373578665419104453835809178895897776364486002561822868055132292770967725333372294826072438529766572910760092932259157771122621459617541383492868652500053912794426175931341218891539800731216383856551532773185583179350789341893107761139138330071084880737964747201375378570371104821522267364849902264790562064819083250891965999924819424124258169450733332582192099398686870255318857274487892000908571056291541318494715324161217041472648907691785190406465438605527143162101938414336104106042752786512936501529658971350947784405689532369070670866149955076197407865698305722338896051269936760325508699626549579854225161476335494564229331582216166274850182972442636973444733360716256013971133327003028102499644339578078428116646144248597186901421216588971902572895407482633383127120675107675669542085194965281409756566926553800373721883016841767149476697736739787095003041452567295314692312968298764043585485643602542146894033145978220856573639118942448899713726370520572398953852465181321755287775389581656036668278382368714941991343547853153582075071628712901638274450115367088124021831510442083617479114087876956702033143104839435526237089596443427754409797649869638640648926503392013998611817270290696361868581221072386153202138756941149202570695368222416655498359602687432208973941460444640929431413337558330047409066536583262114884716997437274816386704530667484705389475268745062000078412929205777830738271122822140514418254128127768495409493240418640584072606617975905813559323103696771449098954277364739660642979049520194625147834648155671360540653956543544519590049495805422015202677488359777079259015521715246331126578102817365452746555492691041225546615125897365169782900614384350407677495191251204757704466069174998354807936857959577811207668130940224258973019509552701706828328538574827967706684770883651849604296799852506762388724189623124300457018346365348836474326886681012632456985863029255798849168123310275118067218182603129132444876313601759315379510563168709004160841444789112080400866627123123275781099620973113326993902369439286819192873333749230046110425724653971171013725704169345453377745874543923647782508440908687479065445354947682824277128480075126157375313216629382552700977895717380089869360928834710308920950505237964484331563252038187956807208876122026369534423560214569323971063369083640254369539387911238324965001769673149094118746763276730336967871158930015639496615884192470770914104323369200433367273580841095174930604693258528297394613721029252615596070826996151777643921210571894144433629912481736708870660816418915512304990694972012398771940635868615269753558402972850076562389660018628766055054969970300561309634135344028813499220498371114990280300370329228789141657043346051217187931518761204619043865878874941577382446277221543692252656962070175852947632670501141324312095210713189753831624068412624344176943681854698175816212321812448248982304970711683400820956858897784893574893738782947435132250659816704859572259580249572803103456508024101544196755957200036405362564422860125446087056956283458394096283856691209679582390441347955030282430049362528676453618551571769326942867536418975304866379662776042399190643335094157165109971184790812097890574258725275319328874012787394536633617869254182070862963945184282763254644011063584039602937451197231057325476004811673114669257820265238267407262952207303682991011201350919422405110837718900232581755248607696810993968779735962040390832499404443157653882045105099531208938014320721450232758653022675603754183215357952999482162813051448753220401684020452244680018954963405917079974840656687469989695557222631632951097208449119354228667230672565088350205186812439909322557197988452747817104593758568450864130004286387172903230384698921340239012436576698220259555887498850320791623424789218877439482777490650940877834981975806585744938740772706130421643056803808263072002331090648217099915519281977080784550797163501244764551452183386268530973079199917917126719545694530372558362881218734317529867755144229689727689079766762188879868518195751318680398512360719753845173406268181062889723299327410225566949940807308351464879070489260307243224393716795341718335460895579973346813526070055896484909887416258967448594982405956078538212683649219789162872998497823047860386597579969566019728706271249050740268665118196519825034293966313377103889925836711749791763699131012390522247541485888412576642054291598761809329571899883185164751421143434798894946575543306394358659987949795099670833690308032064733219842151680972649732263396024040616220908879804534957585307548715566218388467236265343824401802929097185653241633981929296217353599986378915134860488720635689244921570903933941247755192400537366593145425787111679402518751980975694314131242542904516916116192311814782788779486429877721558674547192184735336362537350582222623573379861001286214780290431214777474441847902908722243023098101742800353954820550991521829470758141887298314082845319890460681106231320755598304075671678764771245179115631611397500356954052208429690726644833968616353689817534971932408215744956144322644895985458052602999629521794595483687110871886504749777777248029882640442346852880665344626662214394988005886029332445208544248842354399406925076582873443710928943948651023726592611432265254400557268046848432076663286647903349764745252752785148144990301201621021454162926734569583792798330516170128346316061948421889947048369651618056302862362329824264207321357954280956811552755052510427171639936168765515912681056884759028378654085482202498213704528378623824566079373015980953631779885181098546980263045458057198112800545453363217020621380880841788839140419252316970941200630814588713196219681924560224628424567096593188258683613089517648588469876072871851142998039514325120524838949619951109309257947991922127504993028240441391368358053024021517275424233976620067303614781804151997758026115595938062731467131127032302444074788235092359884622527428292708763338276988231644468749022158772578580120874456492448794051985452800165857472902048906887237465647958066356897239374043559810517995438059795982489309672313265882510984191161894822099844679346510528758737609736595646853807356272101330520892715670428424689134771947530048542274746924359264171752417463077199808814326417608289246320799797420544082818764210674011291876712878239372583525291728739608294179348980758741253271757099293439254911180253799592206324413541972966975344280873769453456237882936265997178063074853057621575619326568940011382457524119927768478649952857804736581333214217306368584917430305109627686427384869159915999463589717963074641361574004192833562735577368423921748323719081275064889940759065789347614798951401283434792995599410961094148145905615977768820233690155409443379588708623281828855822839544019543127724319028264612861363929180140756454870021789629565561551493138041115352703626060108623529217215283801058942395675229059493181425357456361654359439785161680049882234503222492387956526601288467754450457409733562349289931079794799383595031547717756838089511288207594932414745847540933039546764758271721235865541502200395878962660095474831475542811744605004696616408397590003776091437335325018930298273573150124010494776619632061901127472308560343547313729199559254891580416371573185877567080645978012741276621338183603094311236709529575846802129947919148095135190405960197655473118407834810263466222494228626096080117891652524689247017110660172537152299072344794515031505743565589675248583749032354513748168566179780689987299571618526464911132645519139917936786678905521175843088906288056272366640779507110172578489725407000618855257166436677340849692286367455704682622997865528221628282976773051908134928793488749154518075178966761733535358845422189556320935532895544825161524130644026522639812635764055615306885866365023119466490924619468637926456104823083803426427859555993581117601598678339806990913757621238518536281070588347785399062320700190703660594096070075576558202060817942153444880185696173044714060451931807265591099530408894619624957926805794567720289519024437684565467439312143921971143315295239596935180142863571527336707052119251966375740027433481962074885144904730591907202971108059609912946363137429672506645529365576244581013947212456962425104570503858645831696546442086733274376837484377283537445919221298607965056483605475051615709240415408802796839530091666759628601522559231163548554755870284761555015936160285574180382777889514959084942679244047795999778715148085159410398166624403616846609197949089778353672361301769559794777906956333989312988240918084927361543187613446751862998468853933037583192377445766153197234339529495190454538618599135050994543503544763948208412270963446071310022294099577572083005843171506549177435924225126229586693588642296628339632016240869683348653028407297473623934912158546257545735205758019729277601808990242032453144484300191644364255837795727430478198096350904079895003383887489078242806233704587155899465999867585633909319518329102326125606846599143346383130791733131073065588638664535206043985406341627866864224482930743419176709479977968485836102693779590064856162383324967505491584406554574331444348775428557591042591264700267565560684771399795460895253872961301461107698576956241711271329482705113186449695117376908586665513272809169755914871233871419825587145316737338985830886218649412267057134639454821237545373665303677989473113023914780417685099566110063787538789758268465321161015061447107366915078366102760865735532449722187064354899529039210167796081139539384640772070333073505519526766034309712335612884561522903475652453695127647444302342405632662254802853326620313611926921145680199902820341826806157496763019131794690372278397833703213404441307216459421034705850887674610021169078839352856817590602752057337986175359230645351008475815882510701217845820004601340522057850712265348602488143007657056315747794127455731282104709584275216559494776589622315025621501448368683842555380144419447805418985745726719556826953755533522417792481142384000768323228473999099090212486298188096701963100603306782961133886973786493509044584736343777142417914378201567685165766856835304163447521408829339010656790911204544115562202246270340070517289390185987744797914447244652011123573095073559687324520636218169524145161083815801936879436831950510710568855449038695555462615257373206347676769923926829502183431120692012701797469368098224085716631890826037298603282480396491633924729920186078981926075977823297773760160406675569026694151432908324024394000415600280797282609633783942437253224564269670079999813619647635912195632660903708322183423160770171140374500291112299019055786072019461650679228330878224618744795609214297486182180690037748728551419988722219469500611196607329970985818278799333730454925025893666767278671574558617407140784621057863238704966680656725695977286169049289163928780583425038573049971941433724008688628625174245513746436608433256577855310070393114910893827101756461334110896964474086646055930509326569075714078035827791930032489478125633618596514880681042075178498227110772341866799170588980806277223163287478182998328454276230039459926558491763526366949973818090138689393959091535739484146362220015286015722985663879656735146855054581096621242453382919439013310688045394632595527825806966176584754023975955997380046092885354624852596098495160620123518104370103888880787770401469691780292595545637460371744755901426282632419828495608717967593931276076757223286749994427657560116010114573246493861610608850004929585815076238415537831556982683587350051994172075868169023658578298688165081089685826940268552616898446268085430126999718314926025401097266250774714529415483165854893142996955041846449809946475564767839122014450787828878465521504284143769745722361812157719110052961166423134880382866093381696080687771892654114551911515898036661864313636205614507065760569211782829128473189090234721130952511966690184357141141452572787483120211595794570664630005334201065797236058539985751688689255404963164780534585815990371445415725323973118449556349364416002515725147780446045827347877244193567791965091003135841497200888512378602089199386487552777553026892770767637543842421747054142752860093835480496749396303047491552364298779976909971272365148767201092343340426673562142054758269656075488195018053111088234591309197019946046079941403445869482208622011460578105164881227540477970316866892685905023954362906001544956905151561425581045898607469382836052259467249570283983421762661372107580790296569556166067400072628197050773028370637933913152468628431607161564164936694750456090183929237307009646574649944718930459113548241884382495765288302761047734203453928201159041932707163421396564438419321660660943078282631038625418756692028874261667293386157341447442712756355315052863419177531870651927799018203880016025742113342458165149402482422052861186268238790360361516981130614457941109730948711739851606401495467697391762297884583157016588100700369032747910830686468216660564133113464175381869920596627649248820205618181392179860725801272064870030886857817245718191397668106488739001873498108784905749137198991177853472032432996089021760362216394208912483914284386619668423932138443837743918374364014209081716866506688199579768453839034448548759634962215043964212632690121579203298990523811457698850400225803788431896307488516865747016039454751681842993734764738414598097862974807897858399079870433524959769413072565283243972892988444461429152306204206626352859629676549466714178235037932191314164807681175890910725409222574371825270993277727792177864066380259151459064718630629200705340596713975257004305411938850174470210994956831638271665769173412517056940591516137486771552482460717364198111630860421624067633435392558566452487340473061259129866847873651924833707744056304348265718910670971105520639980317605573083519277675181578683831169171192220268643464454771253163697582148458905957510764564368239480110320735324891494105462463628385904429665584868271445772947086742406197924680594176700724183993896076638133334498883974194020364841065727648078771595551939684103130749145224333107651064391718244726926150124965089810825726305578125660477402479539334934274346074305313115067994444538487446926510097728684776141809540873282554915095280795394062382957049246477742832629235901549173929626736388752073467955131827597551704422055876183208367838653095041371428356841216840174741812302596927249324950545263578110504901393561671302040786349492449249887398271379051375534968517525172981752702902813239369956855853796286070187486904135719802267573746162563999931513050308356053586492362846740955614557409815556628472919329480104873504114499532668712527517328651418862196954304142665362600437657638537614892931514884767194374601978440547362652585988660918099833270578663980469131479932161299414442729750630516498494731137549188622945813567658602838884375687105116904423750063453210831545544784970302399540273924923422491396336680594901178044014614466018539836461861420224514684124210782703114074722545806746350538257271663411145820637188437928329818462577471115057576420660493739610695033168406622675097501806512665415834873930591887550404955655114966167326332043507246169057373676559516640065507511032662443123011677839765338133299619759811193998921450994790528025046652549483128162875168906432261768284000042105546080343528638973087196354011917258929970568539700308828725166412906815895365087222110444765092460469506647611019289273230300084323849321671089373292746552175064525874013185603797801318451180053042519452693061385809407814284516021578866984381978096407274758200886963208622752754937849714564694213454077459409915542117764884203438605173686506624616578737643920392502332846179095609479300181632352946102319534703177348275861154122108562124611563116331169508105276526936354367324481456679986345979225452798851053871138170499306538004945693003271115261965942417843458397515378643170813758340513104355095872377203848964806702414036893839310470551346347700923929732638984257652062687646284740782726484870568056070922513132194355919958348073167218708258463787835975513367179687721858366971039858901084863041694955765908950860857864941219354130860238262644229887710966561244787793607805758173740391097863807466560694214477801152471788519677955559811110743665400037047425440873655130905152671537741965509590386262399428321252751335340099390726264475674306341969526488549124687750322484256570041973669111428246990403524791131129159651702732689372393886029485919683134434821726188613364312667979702837742331318567947271233710701751487206567426698271410724031378689788407299480156980887412384422603173372313063429077730471218990238622547865585069995272173714322236065642060004812941138145199239304807166994872527470206041751486000235695315161461597251161555504220074591229910180624607180674640886602397942838758825688277667566522989889604936585006183065694514933778943394977186552436642463869584439935200932327006753136714953723634550769842351125554337937892277704152065445558125516678021882256847511297462911817372480406216773666170364582046492962612788159293941792637898545918368996987249180273151501274671939319081154520455197414367146834464045208531918049988966579141261729164403875368606575123198883611679072064252654160311166869349973121298091620295960511466533645685536973429111668342098149643367537135722362419429140493703886681661445069077302580293796133252368956811866295274556938243611413007771689356751305123877233912770818722691235239332124717350385451872488968772969827814749818173938143288747786391745736877325378593773878077542914286800379911028228736296896524737487466302891975148639242702285300694268214015339597815979178551448183917503604476557985122253174280542712075901396847167528885167948110107025213466322076728979933762220692113240587830998988442801987957617562947952288283975675113552123219099857963641711481501390638660524815429950954938788644553984572960194080942161120107033567697893372682593934325502733265853346908275534120463366414141848506850614731053642412696203505685263671773577981956673141215381877017167469661863889929404759910159121801870401877516222020874899478148760463424397123879713736604568833162340406435497624487014556281160481702283506014013085412025614771548423736948672432595782141538771626177266458139034501965980342773862267467814345617679573839376976829055861171130405774752617605842891071970166204339936669309574439259028020255099775708219113142521169427205916971073061660924859499726739976344696309529869203971253617040379302785660099324517763280462842013868526327784745778206521457429139415119544804482682689013827042642536232147553337441713520500689232689325117115046703658764876113148916241677936332067749857992425026869158937115022431288194563777091729363337292162391708872657108841729066090353425843787230945174145515597090521645070504850466796209711137681431274007224922683763847671645375340002202935356670904761851347709043058128220140539456667576613841553667958032727498721058547949963603495236659973775647268350560752663609015184966633568200772807420299446967710282663052461748525281296601336936817958163442280305368301998181433874575365516092194511366544036074679178687145151997500620258560584392100777152359375368579759624477009673668576528038002284063428113055670811391805793043835366499161447104998703382086178429653297585593028644301232393337094666124750347875367837831771805015475802871863522516116380590662539926958664180044721639889350785785329101825924661678759116787890719734101775211740773898588325502047037105762089908796677165388031604464111096147360765171645744716775283733903581318741901620030214352959003325928654664235269938364921318220524152190354585039791270100558707234589467672705304106703646158280676650880323779298994896146836411106273644255038312725102007561472163506324683236031414343969221180617898486638910915534354980305950845906950680777942036591573845169395307064991059788717934719466803800179155341475960426325858066882128816047108314157366562882127600859403883443609725895609896068783718867698938885023659063568018587409236046800698587803709852130291642572857715494793019217502482626429153994048337874776740063806944266662499805027728806888548288247577781109178664465562945167586946610707644150190057864460379347815986417326484415442328166704825061776428578768645960218014790028100174524884193724242295278791239393994645045622633677698773052278486755551743482706200441449247786862475116241080112463869544181032198235943819771507761064712956131217565443924580979498702478502089399952655115025515929336387750456033285305223690910539440073608848096995202147767531872718136854762314562551118073335695904371832427481688414733083006060535809038609322166063426561515864955858895876167224053115818419558576040572513422322652170419629261558392700848583398668849230841271559358210413409845942729519238423862241023688952900833232926916674915429125267018803047634940492080479297983104234684635063712699418362940531291876561918740645156412260596528408353037154346455992205122727802586259642304944210398055212617428661712604471162790713793969603610926047836581688672223632791798675913879453621738727112960754662187426485681691723460925610206052666845196591827508791474189733171715234923846731983348023823230417033078679249353489621047281669104723386902528029896958172108642184680571663146404576057695556663260032695246530028255918092135633501726791110974088693602736730287281926395980938678470623960346413388115706123243001078809036983288454458396007958403685536467476179484979921182658991828744070963971046644198281205102471231247263637208971522584616303775614124741477224110839009266655731729527007721339984123395974528833498964760276242332234423828483336284626526836623165535474903700337091718157403149882761237989716615652040668744676737644540336310880721600607563167467268298865190431252888751053387304145412704042408011827962883212267479343173231394542438101356046385545035760483660463615528458884971205676284820354152675256121314989447600408895392602260787286226395822237073406427564496874309262738945907555059545216887595214240702658027604501915138885753230814840056692500878581141666844379671722903835944001345845273212496463042269602794217743238518197668151535687001590163509876164395847359505692192267783038554946754367041782514036672883298106721041443656446614098935081632141610750582497576634078947983177081493003294589873534432098892674237851532772684049674820049704217974551905970096239306193171627378428074633091831075759195430959988355638579148787894130815918777524629915291699515839741573463922375602208637106885198228185600174365477951089920192400703344937288860941551779644026367136389225760695727165440822716525603755723248402386101174632959830173039093803437567085882898506577822078559375529877825178642919255657387540152367685199805681370343688990828004766154197509463504594494090916928655805352688276358834643834949373690207835794397758680764466655928538745177987837155202439120146220043795017827436841000786757078177837069906231199954856772458059587844752367498897565072758593032813257840334357061847549857275510695149750649003737319519001396434915068074314194867229322240348008338919174343295857352084389291072666049917159537711560177849489081683930403514926356166877938629431854896800026955462769791691021235241621761472006886143555066288522868844862045329090789848365132557396900757102934295153639753544920529146585848190887827223437799973282299280355755608646578198571606063339798322467966947531195931518211699656368288088147307613573927268524956979204503275709761684726837707147519613772044011055979951244298283445610277732091925493984939808365963243730288503908067982901021157795528122807179107021319950876946775605760536472020019464305060809313179757608478522129106729234065000708732090340074514980474088325171787748928652005065877283292269817482038528883797276117682338628224281925717666236805400168367439174545159794645061672705800953294444138959229741025537554849893161887212763714421493716986204913432265353714253123246420414463507248010138123813344957084565812734803220658086825703172640818243801778849495460441168446999804726970886832257685293133481761003888291034878595701549025880959788683812871839423649927698277126314086659988774685412479519998106900941379942572624317996222985390506059306814826025275034284637128181042185620110783845202215575279814221066167483932718521522590882277026026079502806575148399744592475593908844859915825485829793412117514660197383759154081083937090862218191279266890402910837640023393609166452480974018703518107604172685534637233914450057289080329260847220845831597437242560611210591641087702811320538007744065558998290382870979675180449440015629169904307156611416857496878890460777718129108697333330459719461808964103354211875823257418760688950772053354378443665052699060035168149330384622491680235706150149170698916485052021739500301688675243162410682040331996582463167873098563873948541066235052126173265417873112770158750155610465127674275687816076281114699445183626579582258402272272040406500585003835963424921899820732727083659947591986450584449239911666297819535780463199738714612455561551477158060761504590351652868802005256414516996438112348671805743262698562753355060148235971883612886735497379781267458801737638328270918722601489056712578827458145759480244196502324853590094855685655613656822879129142797128274468038051941825281487175455920498292072118252817297075235960347133703573758085531987355436599877288309212894399951896333616253391722345750109322771165018379926482665504575133256051185057247873144021431226431643263582074157097624128862400144671099021697036535298382260153382499064279558058874584910692146157246409455212350674629844675895801111232267769038610003073908329838476240633941607559409805797261257067622696813882046538496623827690737083742078029816385792289583883802159046773795228729227553651698632747177882264136203802509797181003754852026507702179423000194279843846674002934774083209024524730607688947229157348266289390304679098083489232829850228358446510932207353514147205055884938100145690868288230292779372554828710024855557791633568078431333390008882583250472125084012429937702266576916814936339164507503484942107960154639289077040647246238394331815304050524607526601019718326655942319289087181642736770601195359179340561540214575205230003371075366421345305400298125724245461394497353596577257275246165375458549586287245147613105829864133142650104257393824718456975078085266193516398867673379829135819610038840925338654569376879341300717107235007599841769093576594740401369168340011149108410339996769188355236963857868021647663792507865929003114188654524885155429777161913800384846041056550704600887289279604763767546669584058459946666586222487813927886043951611382465518997867935809387499761691270162678274481125474909090936801708510476744646436063307513767761359305084237188518781024398578036784430005956835972784150725238960124337587535197163401486368034666223256096116437865269368024062388834397386515693720856722649556342748624248830515279741294268029713079088380280680649199800769647265275783749707789332969376693407156296719006166450251310587306928167893056247053116898142268665399582835647737284071531332682855290913156560268117841595536188257569192050172481893236405275878522458565665405143466184657003102172474913003604404671513685518223463421627523029923474637042251549833982385990456282916744724504485761283692814673417288832819261306873507974953377188802213377750318852429422746815563651996791571204748234983387580404566660959563845884184503145389068418197506393300626787716997562115761681222901171746408163251637327551617475476344964092217869314457512749736704659351236659610109605017116058218399647662686177386242331637355971249394118558242751498528737891600782073878225440685086817510066499051359299394449176788400141208919802899116168732931286823900901564705556363194102492376684314652477610052472468183270685182600243692316260892994545816344580854907411639690628812682147215629631125572675271053800560885130886766673384752460858940544228507787573157321142869417364833975662050075589536820205425670103328720450199583522404391141639275654963712275264466010986980409336054018964135568717894499361126065400831646570390934921903247713056959158086148075963436928564793075287482060695445417103987887085494731227035816490332064127433801832835395423932197806971728129594259636588930397644130785033779737347016386267228125724279949009056053021551039398093819778846661637180538557711601869203858549225642893819603071208086731083846040961530923329393696699811892168031201754279068422783206889717044926236342387347113374222868552987042128495574209316566267679779709381016932506492918976440350934858504130958711555693486916767815747102430528072221525158992748012856583188524572162763862829623480395020939349056906132167114282349496964317297070425048005812741070479042800126019355110039681200600304544983793057709940644023679060228140693902785882463415756253380561500661991632550904155581818828200404020514375555148766236951455091674792613169640973197181052183493017530096782344748252198904830621685511262548973937336227923731935659555913568946362892840960558625408595749716668030065378359385923320897508919471855387975300511892463724484286072657106128791763472636171528415214971105339115416144737392765061712976148065183544183285562456020507427380068472997260389911185366334628841981717762998712983132664797404948246031958372781103758056109152848393319454455636549318057497811950341166459579117691730444414417819517182911160326274078116151713506180883626600027309358658444824029883444682151739962840857196596697103097671671001501627582747786273532231282580994373348254115033415340131035025396607764437953655986877329635031776928802169691270495863006656065119923331308633253513574242779216802201652684304527075270008220834150520155677116058208934760227162988839567083936720041740783637316188837829911540753141367077299892238810483795439101058912125244874825024089842613246556108752642183069856212155421905952128744025029944652996552274099679853244059180950091818535081588477816190163797691319716602568361778616088753883523421456258223320689801079234327518173597906950264107273852821360117416556654816257335104307599442517843651931781127730883288192373535949580253200116145655281710306310178841752109922020339898702233193587575036584285748118779632956306453285890160465313820514744483222893088710843493473532519295164976411899924409438725439780146840888284996365182734774204690646303617607099336866781536493061003463409189196131903192131300065095295227728729710989230721749898084386207657769253290399942854717525623157763461862672190494994166612444192812542866192325123975665089220472646204898711535735080070390261592699951874178908136466153372729768261324829241123876090481155390580796929047999849208489333879399696360316249058015086440345645250777090040065437246724257731044141945083709298071343500540565878941428966803497920162384696767125890243817100503116074741978457944951830884717955420552897520392180171424902181458515788643106033206518141598497526386915749503043808386203801745213883344958903372340115361662900592364819877782520175220978109515867782976500972099673436347528376358698755509026264763892615643896936419355591964147525463253414490158563675093096888618998347245636374943968822595427332383578882968074932941942672878610110427199088530023893176104536051141433177824897876031006499598244404734066500471343310129375721763399213723963404183802203909080493723893598246572022229642051810180119658357681658700088369008388883670425874509040290379560209889517763099922158355733028757304467749623473276049368912794669560466361356244915956655383857491112787241684182106430397421663537946808694216189018035535017458985472896434667610172210216995575501284958869703670415434875078514806128145265036135918720781119370906475967898867383930487106241394925585421558649085280783942204360983293221377124926638293842196928318834545943885225105053473441787434624190926200841675957158656761150878290726094140601146977587535798422443004674834767884831575091715626136787985578345535015102407041339752895012817390196597953585948069733105680088409430460800134879608973919062758593186769774021981347798564294271454183701456574901435383387054555463056025920313282201703749999032212943926021888321808631818104543817384856213153166592635578719556796282260560407311667872232962732852478760724673049194795152078288070199425223813894914783153500250221419571234169629168839827504530843367763899536670038909378987784413556892138420290061875806677124175375484733356492832654561135781598736930494425891388546452343524310125052468194842186320349082669092600746126927012200144600559307305069954629375355399683360511105732738471189918004059270852897470975098449144919133477132017159252346905004208631929279602563833172094380856395265047101326998284250201821691393600144090934117966862915379512891302389544840331353254524862438168773031395467421014621207265911542214651965606137198904812842132308714073557993056545889680831675276474971131877361654492439071036985909938576467769100301559334297543912238733235728520086698200318377224768444319994868961852644423797473486522660049768262499556149497993072374407911262244728961607876538463743162662937084454970920272207447895191619896749480032744877319921650466344847025462800521832367267496144786772421651105473583383583379665275994901713839404750936533827071831143346741238007066277828593214131154408554534262720179909568226749141447299313518564854625891801932546305082547133435297363825347964467557704260221363518729008893365308503588188550061012322356788823585674796071621187666458740817974239139466217990793437279974816116041239730485490276740147771396722988671531130427984977755170254901768954460547885066709753813388786599450693834576850752407390939465865195027670494144935118919978067363780225360330078371963715775300834091789606455199860836364178571542433832951875227437482388364445115859404985506322327847778789562235924930588185254988526930751200338196297982831294492867724218583576184559992624973339538052846105258627635715625904998340371094459682614872723809966664789502770110152898806503942915343190711500578843901151318899313300710645191082726639952666261596497864413396910139822143523197900410114552596520659912600085090765161052072984873500242038770454894339907479687354484058175866423980201632496915572059064846683496314554562640349782297596856333699315719005278039826849081156342134974213927939298011706585840606469668875146948742043898924718450678473727811022706522768348849565112078591754646793792083094170784937045168737805750816006443995806652370719557168747708297473040559736009555153375652607175620430754817272935877699307991288842971151353756005644221900475047224966127669901757688696849216176186119999625024815460747735417358302622036431238421356833725796102198879873391388571262781421499366701419275454289228474122633905964975496763872428526744266034386746363666856734195122710177489244525531894874708195324774975719724744592121921566202740690158433796555218558741947068453028562550740467790029562513853659807528419114352540642931382610872602944147649019659245002770462813538996590667003201467597341065269515601211229373095570024560139911770154549941302874346240598722742476082221041752918088223760812253123585561265583401987051077940477730735442792448447956979291141163578616087826377063846148531333856110729366082964455437952850815960726184266915885985306695779878754785129701960450306856045478413846693456921147827348171069384386639417096307870639794031702161406174641393533783858494546578739904794699918666753900161376316689221633787471621000520231674566072888565926907168344258995636636003888659548978825225324159052936412212765588373397996919768110729450228128710945822657770149125165319580917900337499023196810363567010105649719991326139896766073440755726988403662158871877158612316785314831426546647535937104236385551549546448093159005048792379942879581130275031730741989036459300239137235264315221414672973796646108749931302881101095660702145005724851596657944758563695701855395996293613622028781824105185201063382664151895011526059235719880499736437727429895845756625418095868482307564571812828609988758258708654155075057799625246597156674730906514535989884074955682199227787401129730361196820318180851933634160979500504024268564736940060018663892463117657732788714387261686743585683109756663012222841988782705991062587297896274837861379936654934002557731711163355065152484906730369785329212377629570141735881540715324652896576336088842423408650138815751938287849730855268772311516065034103388885725748426856668262002903898277550720563729181966634398619803846891856830128376830168082921316945907378714757668121423818158670093010841249972770367298893220467631658105984155167838667150641961174840311530850531973624237790781414014037352014917637822202914435274861645083145691781371231759855197557898168467800729916659025204295847103084620082769391403069093967191251832251473006473575005123843751970447896087261075817046550428836494945692617928588127987190098196764459390095990666743267016939792505411474904872081168607939497015008140167192165014726694527390718961835348522795544036228318776875505595824845602151077492341662972746617268614052027126307843266100676968432718407837814600877714592239372749342542795888140319292469465301126642631686288917167458189999464541167752764208121623024537321055742875190049237391582732793165886321800323873003306453315221337737765103498395035572543299899232578670938352721320741997499469553377677985056076975931933205647532084351868402933490958609938329707509132189310191188963743435884422600257767207350748330807849727534874107268483537279911643470926542486973700033290704368017093798640465427110010611505590678912620774664122340217173068885777507495529614913185920664035332169509913356231795513608901187882125179677838637493124511965702524479810180302330214314536054331593624325992784562704442515531828668195097091089070257235380288098307520812433601437510116048358155857145154894201368355377493664496022191556215935471972889661262394891609611125857889366297646650521003900146682826342168521718634341603050520618663072829922040547717171747026547483660209405429921734267474441905486559193756601829612167522204044443699928499766516980948248118598117417039596974099242171964635756774430976613521290755847146361192531178906821500554195843579189189029120337497304942862939365290415340966653090110072858498307336769817436678987832936045341769871180404983894606778608772992114639779953066739079759065776614834053710857893643748803467155642026795856958639511406121699095752367864966206882792685526528496052304106731095551094041172709320235629822796301297809036366093111581409679752444568077011688948677537951904435166503579896718370296230141050429244673044348356388289974861233745338986863608321744990909047734151969514176010591897438541444489283272038733772759346658987920814004544224528028060723915003440899104213063788631522942094945256635861165634824250289622570697228662676756755705352273804669845557982247895677567022040953681962575041068314253425138106475821938407400398773588281224826060898643048938087320320603734303753186661059732324056853423060639152698030326130996053601891493896452441238350694813149643451960332414929158186274693175765134224824725161759237431899421889694286264245489249640150663606122025844752769156979415388662853884402799572460136376647621196601404991620038223997725548499230431799583265951979846128111078416551586736158687393983760887682716443954213521624140647543207296712354883497379920287661342536601694629987462392660161532726253137815627380563436930790091723292123344398971335214664987835836339440295993646466871815985957155462428026959832183721711632966269700037757724240441858924304253780103925506644983635322470678307924347134936679578738544714615867366873171986802190208620244083005507710350998476408733968599172859292230220484848834362323981150442423152038656213887929604634229684676248802681724320733308118774647751838531758634166935796938900108042677577728530027550873969878526238576629378813790515636601912481607995805187363844438043785727656437418114155009582367923202580194837065404551703619378635685303855558333597483884178364181579617395644911309413465796992065045337238865508676093933727492259639050653711874640433210026842606419162465972985457146791441363894047435862294634935079483235997013123879921622867011830383511690372764343061068100494412041944680988652596228362270592890425391149137987884042104369426956773351989225022497261787965163221796213264539366407638879147249958730202454532593414491029851099511539264277372571972773389283108717472565488137248082790119261397295472562062774519106762303736861435852618656633780399531852108932851571292672940625249580799545695661522543591767318494047529192457195080832017479349082940568350596216521174470815111973940012771066039993504016538194552197927979577980225841074177563883075611449275971204002968290221849081507061446766850607258020408815339253332572675870689070712983596805082074698775588452566265463400515383541475085441273229128476540198876690889281242645110163888725883384773761359404066346343511695114848806002366800431224511002536752548979714105540586464305852283872240255231851613391243067816670068759016930009656817844884940060911533493895048603274576814659552524186771521100370507431776159269851741182606897548720720490699859152021748193337871009138260966833801613213155940091741828675946318252053334785866039105490083894992654363129135268154418089834517637354613690075057603950888372184670685582082532828393599168653718016690126536669477648857431701236844741220274785029264958692761045209894983581327381928571245166189843595562093287667010472000425601206179218215715708710565179528124022640019743090369482084496862826605801917076344064998667498404527415178153092107668632488589783714139677438471997618792429326306968064039909641784223449459021957912839009495730362915384267195870770537184323962310732519299012889930384175508519471792777387560500896603898185770046431585389175955340598947841914931757971352617704249066632651590378293133374579394844019337162005582439257729440854346251226210489665270269185335938633730376152232029931566706776710876084081320303285237121089005186090402610485802643752796112955075561751136370981897091571030256915323864886353320778091232293871062754469828364259623721221944690791991238185224666646415148976850991741647402992129710746764536774180272865916363484770277795591727723472871845382072381612113491025395779181808170605265516634592172994498328068266984544284230487391378598855213363598488121839887399872811572505188851316035154555283315193998564293777074741246508125624747195704498726950943444854674089914287644690544211505808531439799218245567356488398128809446415720400949243162458936462552077957527333399576949383303882928155719247374846655277222155709882263284677185794329490743634350119551316632239778122772437534523751190524802149634407185705008007705969142344542430304324981796990048592726975110211110691077135061300742777295531633479281889635740770860290413990585964616204582794290529239442721820495433683834612344050271291466460742777431401506336329885466565357085793164037047879082883375592412008736288175023517785646031110258183075357477310299465540035512165279744835994497567136493615819549210777440286582608111528460525511901767871513353144660347950388031435756855172902714812252905800517372186113975922050595361813925720079549496581304437713234856428745087302107248737050341702551137766685457269045169973191382880697185667595490249593594396354484766093299951419208739724314198073951951844899946247823491763522131443797116894048123107146422148799635458468859183579383564519149152528046720899063088074408770502518636142291006099990964234010044093456593331071767294932584747331849659777452240653978282132635907224096369289327238382826636172830206160405215170575374107344382606702169347498809353163603393430597220963728221077588134004261365887901820317494575188125754368720515064936260467318442996829752965091432842514819935400573444257601418963933165245038368935037016292848560409167057092803992027093750165257601637933687998670458876701240405551658445098290649198088921551658845801865602304153852841540499134665771733579557044452107712107788665910071792810292886638559607391835849059759626791328009538575207643474949956899482120120286590142057713295443112350128031822760386428792955508514332506440794222508310052989584985501477542551449733898083129079872013748591455267276803820710680754329557331191563077141510973937721260655923056100728777761500571477096419377598351521629563223301950420971098707656169680865898475812048309751883018217730009311760788731442092491708029582369227165553958759520274074768822841092039671780062927390057664682326279841284859403169724459352922411035890590619488587676549280834522970485082594968998391527449655115226352312344144716017207256082037004321572750718322605304706806868452525644964625853281359431846031037795986554320197587515405884077406364035163696308977233483391246472054145015986332159027113765229616402701495638803778800620405345876091682123640449091075346455399888402079537830590582364066835717786508943389346422838191296868967778285168527649368640432831963250481931185588196409547654103166740699709268457502279064623821793410615789316194695475120287054119617041933396548100033959649193312032433718063892578470901662172036571547507889264169776465816837369404319516754559450665667534833174762273866869168964333519168638853609274316857689740545575683775138568890982729526992664615457375514452447516605202645399974863930762411186340734293029621263585748598556156249012374487510891226968726218041244056328314935113138307726588281791135371530605980995296965446695280768054553653881280837886658564571179763254258160697313983860585145037165453107797665774929041199010251244375521671751294703613396632959941689499354179934479623919303831110910852035970854780676761445073592320172087483221029931241584641859086969224325733694162853191159159923147821978629944096192778540670473608619331275940955850013709434190137895846064097160132737432385915927379324701868639824307121310919940483594683099720699954970892002033023912097043074893282110861390862885251071083268847517500106532432325721615232681918760435294693782420096725864641060243519769211918312280483666147246945711199027874299839623525244066304061765774148233781119442408752873220898801235933636802665980424341624970486679825441904091416789539328282387412084468953924866358188534585549724996012809973392406416786952709163700401237668889278768811193970720539930038810680359074163403509940797487223344928322741546856555474025796112741270093655680040849444671041797918940751618075335137324532858919413248520910927526384722946681896892584735365177142838002474412279973552214381441690153395628224728785470027014324809800304377940429982461182517845281377054138282283296290783061759765336194198924068186585764487220423630321311642742926878339409277954267473528438668944377113854971922663082226648678008046752221637397783598996171220240629942430174271069448800570908226939275407478910831725414961393278405902097952308882767182680739102862951954346352330686719595955610839742718185076793945618019418284481356270059729018269387863359786924823616147161361535799820887015706930293096658716644684909578561103797416982984131267987037268779780380140049869085966011100550798409220267381445073253970278759292206434552353100668466854879251426545793143939845489667565687013001133861882013693004861430710633553014377782673429179314746405496304533116026048489038801253260773918533412775831911173040827001135815513581061641836769659145705446490341440910043397547757349575119021350874256584998881749148250413923524756408992324652965674341075778447460531766031439171159859069908264788476106711551024795731179799013475882389573791845951480136943520067026673651330939702765570948953106118850637242166787058393069516346784340571925137799991058839738941335084515144056491463272891222850296571450580200915653759837068117205245680110481105790090361588594113341400377320962965457256742622916476887243278386439439247671342220369362302893269872729475978632015701850696158578947545693826715068777918982251111874690127027333117479377811294374144685990374071963080918428116674002692817594043572114000567407653856780435981482765143386078817321177946608884020526263203104234264927418303226407037169432234409542932343259393510492068610308036433432565890898043031591520905751268965909652742733843662779718558539353743610616382975771310579921930906400719704567799978425883811018029574339594410686982786381589901736569714063049940992485144203237762705326716950632034617935640529110428540490800700964969595104249872680776694366668839301268228727911646003475186925718724153645109468003906776565522998670861289874489697772006559627210999787597181113351063751901561207053826260051615820031917317879302859066691143674520853307972485540511519304102786563207956806010696121052784585818091723953726308712797844855495882407433972426280376846759740431824250029867185947279777730412564186987609919042703217657925703830912538971195524969453217891470639361599583868886639401385164545127959433094600006692664136593018784048100967058120259928109270213431897278331759742364637968837887468755345757598419879524966099682022384569336927530789931090941828550102802408846843539010488047891884861495269272526053137757575132867158777906423442427030954924423265240237609518209751539873857294875656287148651246093186894408391368133300047771993303006969187737424444662854039535295316970593953295900083340648625987110838653401683878699796418853956089000051981089158153818681027484510493726829683554965834194300224525090086514274022948961430869962161503975083751394396292848757051374289000527086753860909513654656187183907243179852406682949944902832763094449180067519227655121480437000126097314805946376585646350660605456957041766153982362771236637329800470128435147541755145625547717022014679731859433485069756268945808631572284703500111208920341946324132697910000578561906268668369368557566985013921264478437009270200876490371116046426199660112157787812878390318463812391065469418360783778314932595066393966246629774270578210661037733017338514906662904103924842903206994901362549801266510902363752570830302284433860160062632433176628914859354581753211055704153873808273359890929744566778457380467539825366354179619916393044431639226313926442214721600705219308216643204917940715969453004922523669273164245493567604811061546987138672714132218797799936611823847172962796470173381960247191747253774107023942166689073715323801818215083115588320999525367775396190125487535613603369821968727000581968966251751479534135014002941161432724875092229161782222081945170277978905186877698494469350692174258067295288211913171113596815618450855970026538801946255203930613521429347554578609478632235876772552852463633196019013891453155143495003150740682141285695595691354412027952479571346165523375917377988944868287452166799763788221920308291248788001931361203987456726656499813628410010614413831738519119565855897840318184366188680416592849162525859266402617607652497746325760237669944670122970372258071120413423180001876314877134460014624492432010495773455365384061938003677002178477255577729622795356571303502644047322205302123425411261073521828049143157822058835113271502105673316602871216467957986021527434748898663205275589192934679108124363038685837413018099110472339636434371016124797713614335167313506756896803124908699872996656989547831917765743943270208212706360014469650493310008411831506243319370089834977430348265281967272650923620970794150188064828522833093196414919850090055460798856716406190032462218819101180675524249818224671870480926802055469596474466550638174142322504202012273415367357199205861693505152345242955651089953402224910596622083740760298692376839742095984376739564226677557513634199748842966589446480989009197935000582900291319649247408666874881202718344119340732495601977180925854411257926169328804773775962519958119251207283814733212197298535979386536563763573020528892468053404285725319231646599353998553732962261323122203379651874675635810372478204788237351370029821650303378085655476875739034106049202119322042746691132111032148916898311622107138750841971237268677095192582272885655710481850440500057196309567295641020246542257037958030939829126544629163984945857595886255675323063020931456742869102247529516515699964830320098144175460969326925907001553089151438245180835981303415037368070381465290262532620041858374702803004747224384893445819596757240478123415933797231165030069728023928250426161199439066409677140549074179906201862852676438048167189067140962718546480813722481024227759722136004189113744577141107263978631498412219798605263715384799352032653425976089771839334166301400126244764724920351218148916668469107190036906902566227326441961598449189457476370582573322164715859520262803874690512338408963935690774119085527437232131873566015582812016386570163745376529400898990992015215932416396542590879428325059952250973161557101540830431172965371664726785920317457173956701785776433124911165639340644821888643643729392153947448401131680308916717455247328487096807566679617045504869389994527291452405138696062132850372529282916378345353251047227545599570887775132283573741892415969405276171204846225977195638793561089890232208309137646893689444752668904080389299838969234985892342134650602993136951781576893684948990715662030245197863200542262675866389055760332689980942242825311018769102027906573022718321772683745800165198071939720153933664018085350874277665126035177074473259045426402900056049918989717460190160010167733835194048842274978508809039764316796366870042094914520347159247513156626254880733484693180985020031823481683846240147073134110388629744367359658887909584395571583951987056921613331159372233084751505190687625373634270055238040010949736729442757491175920032900116402137161779532499227627159441963492143774019543221382748482688182519316345841601816811846906149010249771561608905902858580098351085193155693235882639269909655860162513908848253140670247487188892121166529571961856054673861759362517293689628830711093803707826798879086674989371741369194898381920020828137769493001735871388202267141402601941339149114351093651542753155245590707147451615189066929529650248615317606718183787569480304761727242123693576063529280784655381539924106929921667103465220650318812636343462842776410764118468418121910563671660976230396257660497520482449240062113373997013920029218376290322540517453001804908225389935619792206961272518196397271630875649290954741846388201293152792523502727890378943851178439786998519933808706737073554678864188803240227968313809758618054427355109332560887251201017808284936273072887552569100139806107575841252787233156682281957568632715021434302799458767361013118945674768363577261617193315371116031032539714825030128840749524916186100832145003822654833715673407652730721414211876890188947347446149837578894961872304795260946535479370836013361862246481336079771049440678325789709095676675873396538011677444865975511222852901454216579197335338535715614007566959601276286100058151469854766737852648202122827334961104400366595459014531494927484379578964791183751294210500791779931109486545119627227031845519390604411500105659648237503949638797641552381940172795764730133783142058439498581526825590737319527127149056211293317721985168222695475425051310236901407692829826638216416500565254147810839996792574513384452619768149209402958598393409057532269666743097783835063645515880294872913345563386351197167918763657945417939181271297835144607174261450037276132109592047467429161417047229500965834997417644188408295864106600386317157224584495434035271170582284046072311190822643347348399118699216354306773010326183286227225398072107052219356007766384480597169026292853007711407918555762077351070276012614814518506149955293344485091109863151985861280726656428645438791167860299228106039633797596148663811920250060877710586891444523831821380976359073620691984772883417303012809302946539195507646884418491429055446045330209162306317951012480492074879840411665459735817261652997575710836028032175012806308251911871555535608055700473433247826312900173881111921375954279939363976832225883108131704780139986554833459525431076498404607814628969481033538553252619546273894163607745429846768712953838933496037054358035446065752861474266759324704961941183915968482658589577979348252772725057062807906944586542816021920235884406599628547255142016109493563108760188815855329948956442307048838068636288264799677623081277687430916021596422771646036127901684536080173027900987604837179631525011237396771619356499936229638767529041724745379186252381485920667433666108368820641477186476123837856491654223185837589287604602430047601298378610797725392399875069516958699192837625746105642768405130617573893856901623069505023424275131869543238341892654616639805669217812541432902638744315698646093711485446028494573939071620438453203552435221802576598758548909974853858172707752021489800818896053276460234375063261233346682093525184837174454069239794988630552096002285471383008128743179518526630693171348146169881982255449162833623011457710072242852073592738585259520720976675274759062938862358918148498421224903217751391121893262689957380553900339618580026414359081662654657274442556718684741379564269417905447043780516792912565954361523457932521339487325107224507780523597370127793967000835746598504389090721699972616791698628001111071081932031628553777776498124780527378208637074702939238436670346277533387077688337999497995289673790828992233068269342393256816991819271816580259853333342258276256743943167604762160720212483624530805165807286070425578465145623721462229614010764588141744696162783906522135239694092065375237877507231198569595442757377863306292844760838700904900234734569012869226332161085737324539536999321035457565505509893426899930223263967892353034002843100030929343179007030312402497170848200083905961400897189537744294937698132773431241455819651615536476856322652233609675165402064169140072539436548140039165837230075338047272099385918276873820348391622416035028985626043278866513179542330535483007790086193143267788775829553272816245191366763889349069971788311446614123868332091348292395194490447147791958058443464258268325441035132515630131508204964657240450992462932818367776256408167568767335765762744412534011276804246500796052278978196161562836787053406320239117336087568067507247937825829991909042961229234138795023667662637251182370110995600713004228323015864930103563061221970053202947653447920048772016202918143046502470511478346379131119768057474752114768426928723128061505373732985079169539260428154383041641288578928800026884051563647067631980808856127065331778620856357482417830502399756787582947705005630945466760820049896188838087491113468756490833431275637516675398243017283048600430187958335807032642374928684640669876202846743629845884534027998401757481540504718619100244312988070744586879932763346293249351338797237057277299984353271992827565040115437186726257370742932889388454599446979688322284022468244050982638937668086218516615235114566980010878122431166189984586572260062282016711927927095391849077244989979603342023465622252538567817731816634581258445352895328030217607184081086016808621044203404929730075644394910737883482072096665167340284121145183446439749496235206409355670782182616842197270004925892814275583832939418248397165593600350857590558329930010622278936691240525595875657201109857955469592447111521108717888467241494337248349027507137623565704407764639937709828629368417917636200444031292365001884067957807368621926571453242584690994796732440170465828387198659865989683700812074661242320432542042181503306677603067381403024019677433543991399728324893730717897359079777070397808348362056799878950778264053127003826388266545736627730088063682962585817993871936143185078223579536286926395912709987817189062125407911019958636608945791975674429299312505236924278214624818336195528613976904294843354924272697109462339982570222432288280585701237257116736125444590027330934774669595765878443710502282521863349829053255662635055695139189266561639843271315189957924956199189917174518722293603242266245419409726424091915789134404032952129891361548550661394115181737268348577539835126641282815773368850199310647331850437777428027932411402650519477575293452668327314999793418805092472344042252342178080547589436976021163995946545930819694830207588978912107516617345105005844079262569426992175966096499537320870605131742612067879798070728429321192462119534104281584821730888319989004765320705124770403385493967116320055525940891358696105955430976435101279130002336820328538742690655787401858181566785141313369097543500434478079851708409712159259859680624056675114028830984619959262215709087293212487808570892151572733463140289188647555599897604593480785038639008808662747627595755383784586147583812703105947598229689625491270211305570506762519395192274018492939737085104437674867977724179295744266421776562071054642442826583042990981133379971933720914676038786661425383462510269652460704677314232799542809648347782432104773565166699209105476507301613196639411956080010637422383364528982245731171410362517327435432100471204361786632678868683179626493409078450882828258178500879734894905358192163632861202429411253298128768624573512449234914858002206207353149229802215797536529981595020621403275625161609025451014943706457371092096216919452269787850470678453855054151431099789395440414366270948816888068944553827559908883206997997736567707784698733589883959080222398997301482694586064123806361214073954661507300763031851828193723967904504204734264966409543239563149812123211030484038399454728224666280094130408448751702165624592918229531789685310909285599478520483226254493161532762519284657336978979886990959406248847916259708158776531901935463452702551619353131451720896598738790942978350789443166559270417627759912399720829900999439897904504641173887394263186444959436212385781065235197824636753193509185653091019313458050302263386126275376147221348262442843201786137546736670010018056200862479011599549735099033246688714330506599497157507780992236467415292954480527771781688577680303107147892274808150716936018826131758613401649788829525057857687596876198116203457487518485166236712613777937192826007893143507356789113731345884769449297104976011744555033903020462839616936167818387951315573219176630586804919908171839894979290190016709255138836013628728950838494976430589925152676742171042461983733527967944958407053923932510456750686742656674573978042456821414494593964764681924153909159451890486867358585504575285132051858933625356599762000294866031606234803930516537909546264586085038760291339058949720254189584579697273173511620973168240962101638445569699753915070910525466034586571321900957807089671772998923956831159196002739320420057905535755285965975342889813233223522661336567131618237868730585183311384665359108294240542872462835436268594606591373150039762436642753076122443761907280090099199259875179288801159590962073469485799665654001692827654339656671427774116345764705915247564324367664298295885622376245832519756760324229882945399344024652138851738153954873446609129794128982559067666073982585984873943334233626803858709573748850947580498668839218963623884052045982957998343486104349146323310948121917749703916697945802291711034588960996921107156339943857120811091757309638899853368553490183575387902117758497909768854230614978889432214612547081762966522758690198626800848928011497646213241712209199769855287153505852916770727956288757450324460957204405354977899817842932543349250728084139996064012591644658269916322507665862893630246152698086441133324171828794232762376845542445629222151282406630898816250436094281916055300116287329175353523441031700957418569020922811729435725768100938234169615552921225101449407947308863570930659610740051876542790909860894538040436878794252706833563384393441644822460182174389209811339213862221265306847489834332382223747454023550424664354807237356280287348687055634704291154707297706097429791458505130237490106649316475280747541222654566958361294347407781641323622172997994297225094443856963015521166213444753185631214945783538069816066926820722065962000340533407724329518614505272222905005006423454681796515193333100889145994915886013590984213455983190509936631690139038390411886156664959497039357834111884665539241234116160628800368524011165035189644906291655949316077111035657022776587423110481821617052431299767940113715960396226472689440961830812359220085539521567698978613649634203675458596919829382958727467559608585789391211419746103944062227795285610916212971508881399040508181984294050002585758243842410005012449642241045550455516173094278085272723626448270766034429281324152760221421250340041819153055481176285885235944351830657806747763796925347802185744940334802478407203778888551455954665631526534131578934947463261766008594819341517659641233565209668094989332781875891624276021409933357020660736437824031652884929663152176787179196319951926168544969155726789857956213372742754498666855955937573516896582325232402332297443758398930056936749011296130729517764454194883479860568195969631437661012896719323544138769272996656560200717675632966028383079774177938557822399729319038370076064703707044792247210999454103727829357241286286416937587225387450008354228426670327821886691148762502520751930730124235257652341281116568368921686526685247007372274271291537301826875957498072212090875801061217843327104940921039229352281484355483438588414098251841259467727243761349998036427235959071584492376706597022601480035965758189152524883280999373590103013151513011564052900477108687736680759536701226242983527034893859632734269112039853708164578926359678810667574952286569119766180698273767127566344207067655156713265284392051682264981779945729031479994368982497378297410558104181385664452157998420755146307137212194010144678035594879992558449303448818011206102036598367924860543031324480040396337708555387296444652730958882985670157278062377239609797849163910658949959238319895419872723189504579421866703215226056006256291985310710482015778038973413957058844780099425584814394432708802712651953983221640503659647568672003645748206454182061783153943120559107422869461339270438410129822083111847513759486525195783471905083362236248652832193424856880967055515038412261161186167119870684881419941656650382233626649328603101076478048863460167353245598554158705247289122507773170458346987359536338678990791716716696363838097997991184495459041168251825100767772571884306397280468846021794086969193964358151734700445248804632985978910871396060819670654192044265920504497793498777431834884788729189862995048558599250613339929212009340939760733970786477728913676446266054322745700593066189298645639073825499299880365869540749179444100081439093146545311084736139228206945171014554829362128602910558089817809764149743337480344485255050766537843141460660604316315922807063096518057488305595633552276528829910456313151922790634054684633372633878936707760059147377400044888636882544194728789215188134017964314307807811630607716932248466108600362602467001333345337966341024008318450805857763775446701035478531829518467162643300828577768963276804003873532232776618246586573804058767511393082038755503288733278766481971251396490546734085202563021750248378700523165049224820124246451917453089711354398464399212705972445813841178625051459638526020526931657832200288438350707363245162322052852580103993918915527890818355125530520060251475318391448390484225479288145579585417924682819138139904528640185098089418221323437910713093483961828800413432432872083529297873372841723376461929854230935352269267055734599307078483904596206285417512342032244789539468757630859682318617686648053772471034615025961697266520822970830826769847331109970059665506265446007316680225769169988380771017242889504516985009832925811518583044201278851128054190561639789136254587358001555577010720525880491560841580780921602574343733413261282432772333129052711353291665040646988566047473324820870124376051575289449657649087237826057565258247011230114551643544815354049603661814262313554390801508271191513627550327959971797946165361533206797137305865813023640593102012356257721292600395216506083524122475899268697949617755329743472498277575276486142921443188389541470271608508490197816695598670169817907171260728671942065817488761633787581186774262264596871615946722446304459067096342277848587548075904627236771679277003568154206028896792770220463443825278194913346903336573972725213523905169703836947712675050983016286411971909598338762148489498163757661379514060866496519925074883408748588723167863245056155752383759947149000068956679725893770138431416329988077426608166324962628971532705240853161261782616077411177366437719548134415611854560755344712278615264163612247432224015635200527489156891029285529792487638415187219107863145616521017595707058305543832934305535166544410364746930119446053091040688970262350864694836834489033291195174969543293450595415246890139696372040097811202188460416158361203056492237951172977687573461637233862370418302451282313649354156029157435808742695280009054174010902811807689885206346508719269776832930038217279280011196735566729730848933271635141454890366931548494487496240759880123813680732297495455775834074705086351762984173652303086163078715786359401411489594371244842815168651264157949428947812511256276332668225561091200809815396954017923421701390055315254477379969938947753059657603810939356927740305178479186141108537856081955698491113549688307704523201224346940389625563307246951312515772027783929781347034867386337394450801032376201797133834859029409273878542859534997885825552586974558127768616732697865664428335145612318728158591339242328283902652798204667509541579713782821818505080228347925023799520110241413543849771156160180335008799272669182350021848015326868680383379381897088633844497707274663219747714310495745032586060569163094275806053498221057568138436473628210445051549332796793724713100305202697926993945871361804436431286790335630498336361127476189476075606777655131483201850026196672545824212294686472437520162388675626559094340195030508285971123627500118697613989611409931762085480850024904326022995024432532728579494728136098720125626229727481974072872166665231127030201791179973127816952929207492741527909772863232540833219079879058082093551541936623956272196231057837789748837522155915839393796446133442077057630907394394217198243909235875313881475371897104561330749596445753702981151001112623696653720771108028143281773305220763016361402463644375283202225023476188870299505741609856105422560111432490856847947415701165854553211961198363783814883957049171018123342425117255145381319534498878269509420560471582969030374902119049891489596699180082681914912600926481204851897809389187527418872047099704719553790080885067668351661999608587517344201790153192030799163483241501070757535301891913559673397433542878060187881624685847112023948705758225089631454375209920303521690865200501457267988912496779239328984623497916292392929433222427241137016095489007632273790019555546837017238199118413960248388465253688220481299087266160986622447943739400503147555810817807924756730815208510666287850148435494358700317503563746679838259777995246165022695158118180823530452831942939191697710195448520969988452054171575302803982028257183333335184701361904818834159230600880359049404283710688202829428554096788214408148115348053307119605306455362327649419062579040554317007981057347020945014210670304783598146524029472669627842990248726511953283461248316618548254518756667851201070387691294811264311789505723896708133630828038764453153514022950729313303648611880945392961191829715190891595737632392079603717116130580364030094438483693388258463132455400120073805005527715802548817844205410226942965112032665461022575063650505267789831255333745043559211612959143783721155676464909394756615492474470131178658390353135394447337437879990735646615697928528461588089100621715878648699507920317114563517646378357532056357003324081590088277783820467400055436626400914097361292949870578974821411726756121553849588967992630267951304749492516232155388224196479141546794534326633623671579612123902639811426023830931153086487352498694230621458124169180509737983502765809646967064298788656108880535879676166389831290442719013403174621267964697298599843304209504183654392861827708236926859492607679458541803069887175795812229978030459992932591691333522799048149813201539287191795480882439986500272998793207404112377359807880426178647314825418030582621498397076943807363046573839413165929081379984825261443910012768236143929413243338739233316636160715296503581383285179875766824574545578988986721891828077495487094436352028053703376693064127663737414714567929468952348357279276301993874739473077122618655718811179366843579184469093484125593988121352668843447392923088934766599727277952496101757035567626461118996871692586910655579320462973447376766888972014809793298798897400268979717357070955350960018584182582887935936093576758743781993760997799347458925957387546429424345014239113027909295549844367894224949644809596371912070317503780738504774256454663094785691477134036062950335181414134229760977783994673567251076360527918517493145488213519874513689096824829566190826469322096774693100422943721308320043337875799751666872447267420291637727100911083224706851218519533685078391452465603591111348539778567575635664746965975570688836554985820880915743632245036387059474257185482246678062859781161660646301983397809973893612439576930456293732169302902416677910858455469079257987611624446125452659584652783726142139229457338587631242824794533857026267447521613080766989387842259079010142343424067269934248284175972151341349323409788861014947288522523152191796562362848322540503487249236967195715711147777169144985773003661827424331267893658177292963778546689719065876373850314612104041255622659743920769651452410994700254990203364757454887245064979500478294218127749561752916261063449678153218150871381254083961616521553558457364768151898839500832263628000073787938003094041577543387007060102575506000101957189254081642062435461169366931557422052161284649129937964003982002012969070998281242848313661037570752313283983190232176425605123246987832045522141811661485766657353640086292369434439918558084755160016360182446935504993382669795924572119811852613409372717532660770827081507927530865438250852481395555847183628574957872404106714824625199991033440753217788179753281175427361133475202674634727445593866928385596887758165421763638059326909834963614374808208315362090185038446416713846183741042142313174760837530417874806972723441530379912260234874855640554097747768665319185979321474044702504623264138927522496874363478357319404023153955524386036589692968089335761345773620440467691196406684219782765433552827360202378527961320063007234941263564476287509229226309534163327983662239461003584091543440733998724914718544640808423944910233732842527724844536288682521044043123078377441541819921912037441720551738607158887422484848131622596865243879427650946415133613858921854191192027884998072296304798946998236427826482086667385455334751573259930968467790008389776613468630874624840187581685972778824152259585586106471174194974433243884796468672119386149730543595964277888837273843587313404864785546056563468832577731576589152365576104875292409267530896864889969667747397359626538452281721818602629464547749644077591388591474348695222874136968964954196166925057716094606471890751734315915481396100854521770368406170802291444293063118965706799846210599211571843646828968281708621702248407981660833326861170281169749918067050387518610038799408518846148022376045020392366991040137072491596544728931538272168826064909578677264273112359884073043396153209461653032653861075048220743149269151661544132987793660272705516104177590194255107398915875667471773560257607697472646918478260628189915172933293710651871624698804658181309777343253628321741795904573670467935854366486809697777476064227229068211201701632765531834390197978935831016585649736820980210809205312822533489188821391340338504375678953651467020899355945247529035899442489791756023702636906578404019510459938365410315604993975561416467316565946421191502582461452505370925948935237710451588760880781919791306759353431313103078951929653141154280159341141788464570473341271914847315450415551175661751758013342682846498095701649031979746192605119206525517223909004502416628353560394576192788030770484404858621011066215396494430710867925076441341319594305934677935528866689150167791373870950634739112880135306083853519618802233733582529149527381496367905414697569262350511204998291141601773931972262020215976838161830425911085362034823662837749098625584774584970633496302413441128262086997174608720849584273173847128883990602462985900766271511583407689750138444499004496209384041894573969421357682950504517244245852641966062057016279106033364303000804615359505366197898066631447814340679360548845622045697826941411820045675823259016248274744361295209232864371961222182837668093485977391089183929755240182868932089089364588230770431195031039075211550703245741227862147421332140897769007220272636036203395395729643120449828827284644047302311828721725167370881226035681811597643782572067663898378263677569359787324933648593622601889001052282641996487668514506644190086357845895561601184891352016929498131826803731864164343743773363147208642607605249291328485578994691107863445526811836605489841747500699628889020079727501668445689653340978766207367759054303137033021519246785321601217056463226595663338302442878980857930588006005304745766708358044532035016310908367073712442694304931366339018131180576163699449834937063063561946233994616840634986279415075114298300736139245139485722786238783719019465612058023393135072080235780318043543528299685133052071584019092643061116385480492332365758291214467297169378485628449726941927866427031105491047223751223479135450426680993638004349174242841980060844304484230578442072714297258837179845597790087897859033555501941039057937696583715165091698514905027437606256318408334832039378496380824908995974664623753607976103534602048195591053742742254020039454555878574324289480609823068993024938637177677117130471981680751748856006092894694354826971435533507307278238815179646874156655150888236321995175148455363322720872397193723006099970431853448306227673663697384360648370016230328273705107157889448613749232227832369292136854826574815586606289299626642567183990383807007564541213593995646721818684340191659825247063978446691243643306830906520218570503013697815917696405817652296612064892553343359327573865818108611099827793748011057405174477740700535702948528338702691680272676061920945195454566678867737419658467185841382507095281259392784287783287529874461781941483460805926840930534080999987554734287331002112501404357434381665610033309389414199349230803626051609283162651103959011602762798779552018486544534940115240104151851595010183003589128438948475933539254930983527560291122127570059200315894051942226561224250403195233389964879977015476749294338220530017945987497888738327140260098642179625413155635345193338142737459609497912686441591536711039343792393859679891433062614309982009694862371947901458080737229977129337058708553457671745871465542268212993040172591333243069608467023262236675085275459175526917410109331429762449309868571730137234691381723669996068572088539534118341742484871396427196712394095158011115861536356718447054267445989203355385688345747515476418668185561712715412931827955621295770184341938355113209855634282344693205689156553831169440600067081533605698718566364034328759518739302827397003233255664360918309043444970961683432634953964716726750753494135905594002511893276104454352350153088820187676916796935716594857381854261233621197064776454801907325400074184762473637993981946733826674996566076324349188458186711892912475196506750040522700049933987032114459761486361498989426650177175782257066983647596778920836351351536809024167007074270726866257815436160490902099905843368450138178342466192224334929631262946602255919190024972170525821411757735874849198342102136711876990283210722119547273994998812050024602848618902752562797814826324852179176256158701938050429377257550999435661446952207002678811650401189067372104750200017494990615642378442091037847605616274596551884434808767225430174503607511510008058075752981624392087586162168866994691100354159976415191673110050448976748425902319879214969980036071384379538788480104171074420735333812631474781435857485999376194820489279745718698467742057488103761237235014044610672212629166167153684838904435488824347411428812497051053857681864550416992893632952701872902496938069581323490069682940555358940497735655326454307032622375440296451541682665518593149197398456584992159151649105457018150948636945736389755406251006664210805092835824401960309226104346505542815795300603632281732614727467829759470911673122460131807751235089050378898421307226208574364028371646377304896534379926175717173272563610155087299366436764557344454784194190004531382908500246569355612263136995949109662834034857275492465270167623545963943788634100518946460277872356643819535154998188852615916479075078351592275846851395662839873332887868603517682684870641707879976934965913634302373502813468829327043157825948343896921192451355949632376507271564232206053359227188666059400308445985655950573287278648180434889377392940691212345310937304467103030032894873970164953773147851014234476581193356244451665400782806107595347461337175709742694524745727155169787305971897272382078017537911510621285929299065710330241796488839288149265186446364606252038342950092323733939087655369793275783886431060924914561066377105682299010718072505506183980984733225274279245612767235617985286149110665914903409684765044345172215981197330645611532171851633574722187329061448536398064570926350071416985903703307953764448509512951726077101442623898130941451913583894238804861117806407269970585245130399272377148343829388699815063149236837968791364009826641362974163024293808462527975204000565439611275282440203323147566139961755977888434032532955318966570118976682799435970282386101019888781037036804141197608685545410743643445914214225526201499075247828655281222453682786690820642698148820049434318254459096076509062777433097522309030715095658304356404234267511338625616648860530138952136102145851984483990770862684023726974604823103760055104680247143555364686241624771435848147277656592596468539711549342430941199153119807069039458699615630404052947992353975895543309479853964515146063187810553685048168431730008498356719624420041318922043878829124583915968582396043540107684155758206699395407423396430845286770477512440506176823469104844824724824830051454404048478097102314214378525253773073076082271927278591645737315314467386113293705412959630858464359855761900763808382455326677595434285750051300891681098564641208117605406337227336923802646432595382574879277674207133071426134500337196702663414863921491299015272060242141116859530162537017425930673636073557946470724368603681685661881086066955127948116163504533626957034191161609150431702023155227220289724502491014272369104479988494879364338803508611146846751899979767004889690887112604479279763012942447687144398041682452038308737218955565502485606474304749225225746807727148859702357148035274082945210630690279076779979855924550309658589491556146503520382402364403857056356295980035494165025668937771811604884787909982466898417819064745818581325213102932749814847948378455604193952937626074428743393298196561810966075693999409804117002356834506785102976904932066571517286460858475738832438369778983035423682828366447911839853718366251387865431565889828643608537703096195126127085817952324636468423276629285969089124627187846396332886495679710142875166568238935329096559894363714927424629554910360752457669639977028631934314611110153302177230384358031501882612278800173631082402138514603895536561516711321189865841681257687211296726734878431031516536560255078617720905613627038807591121508335831437516579984523357127109398062533393166636093771494794779885552043859736406268153600238507322115946161297535695165222383618307429182098947310453514027912937386671747285503518923751530182887383056927053392754250586852440136481564140530212733937848755580756989967835156610745804347509173869771752524805582826696089101830291619734078727781110977218068473666364089148880710823251009869559008432678209577259047813209183473217137640843899171934381534785583645427040137709754480082097262517442245037851593343092371639061512072669930049848162121137489968217802947165306945442273721662612252654283735986970833627898585486502514880395414029733886151349977303713513248596642677128994698131046106914756129837929448203342806621423088667589540114793032642393974112941160065728686665291916452151930472982701286088088138523059457512269813543376686790580216034580732897795740357868370232653926746108020189847967195407602027559509132444867295817323325530068322092938702028480220436937163324930820487527871727362892876190536039723840168025630017655232202837853704314998919744064073205923410919553645265545838973942916302280348408973480363709136336381254364431633877341759111871539436587119933737968229507121077287315933323596321219882455173344412470609156942232309733762863251599435451854106070292133314649960105056929857237877633058799562103977711222407622229473438406533736824263028208906880147314834176720325866995045415397109246633066049961329877351408956083068100689092937157731636576207120532616702891358754129155607836800531681194089916143055032850047707944741012828519959702510569958956403326063292467442499881468956757446835431030191892981076186007935258015134760048835597571260024375971818177277320332894321390048189305607975840611716003758163057087852223344555635903574998666639212429020833332147822977917235318360879372465572850483685593585865327945570084866364310607275395880282900611948016288496302338231246539663294648597941749698753772558017883079328518992573845014108326943632590580865796523055728794311513203224154450590290782417797083393813710706707745444942746834429747789255148324565882987654294582119558029983056210237119179121061040675249597777865210657154865777074909241622831835578853865083574020236249398902168476417913093920970331486623556788635961334000587049187644828192848057884688414063770481199525824633952285136464819557279049284843788710129873860630104415627929904001580199955813162218292973531210989911864461248006658798158381850723323671033970396816609440882219020886767055706369066028890082911789956042283992787999809758377775818035518566112193378123726877157886761053795080214468981924943646596297478690859123541145116496164772889438888402886037489794840946012194472159957257519960269150768610504814177561062750308234851946261859990782106476666144427837849569673314851799710537371212591918642174759618006289629335938206749807090809289107752421861651400121978961371273330310348415139125056358500825121906957405428885060763845188500702619182335650261470361233734571069120032142400654158011423067222334826753425710791589198341661772641721196440504812848467311076654964888152252212832574728133412015733060710945535396888986446104494226912664886677044022502979683006169490221699369271436353517847927311674959412171901009686770229287540735624364644015529402384381822657894957631244908552835664731285839634427445755818888067764535593288708870613369944456611750799392283422813876540998192606054022064431427538764410826799057771694945501724709882148099139333992208949414964233111547977164368640450397955052786263321330896507506212958838995971787412101100277742440602156817687984447686770101036166669207369318266811788465556969131961262804360576121778079372253593056863421926317813049448310080510747787952031197403138963625783563199504613314749663282279268834636658194613230473584126220499696061528558076295703937559895179641043985452103006503666260085011833282990390663157178968271153624165669726214005728820851546606496567467730989112081707008816394841188237333047866211825854601885412239853957994217347973695837216649760021520446155565014216484619707976914459650339311369907389054632135257714021196205145840467851020289341869470047721912624934052099268031780198081005984145854355989496060907726108184080572610705778143834104528480008133620824812516775514540912152756468093893332329642414582413867264485887713393502498251263864266757125975559075160202192032309524955920096220060025725788673180507327337971954024649522935125313020556365175397041735320262596607094361569274811616662032335243041751840960370036864235664180296557260851429061775421516705733299947737325017598172647437460417629875746191122154848525858742187793365008728368627348173528820107735509317402408562511800273104131802307651632372087942370672388160944177195259217989085400371043023589972338480798583887903307650913499707464609826729162145628284839731492388773845985116137010017048368390621441470690625348408698668732086545311916567195523011935156426887153548853865409537224340608125931593693803520314556023618040422165672061586923858989555099749725946201527078822049689248215243571939709818276280590017464686894662186247454454543233204485528766973518001310122845882559913861878734923433768047212673211183778067007369755507517523836514529054399061131920894697026044043206507789228703409567387173267847380790266815920692592661646911616217207859038936883430641802648147145046796462904181623505728618109034087407504400540537737334381856453140563545833128964547922482821456521793209498394321063489195766257123070286031546997789341076982409385258904386886850175546033419263718443974386902057690012638939718042131341609311721105475593915449524396811567707043152947996713785418221625535306027291374700487163488530157111783902983050295498952325460661542129978293100532101790765916096644110920840646399562002224807227163893958388083627330642801116321243291996348740008531252047424707086118870960805673066686172519963793136522670536844664707313837258363607317939863180334934925530968344468673925866269777997517267692744785177971469700368901836865531861430609897890405068489053174841069496926414105841260806974392306254529749760826024654019529570130348194654217702701599697223535715458485403546488658601521379919295151094272881238514738924448704905642783141889076520686965965760086804708611267163943928992012649377498529099138129070170356916571842036093798383759884343119604860401165745891923337254045391659934065132003873120786756155760779028497652871936587262520715348732848618518957804676583889162951583761704994935846821438206609658980483823922538032747169880750233575541647618075434364092402302065305809199318221615128191328982013001846837817279674451824657358379540253971346636563447854040662227748440865671276338939323418288477468787337984668203359658316249653648687855224428979381598554637538686509478393435019301915881631537393092896089240855760510086361107757312778948470578446070062996030547697338425605433999001243484955689418687824380409158907344183689954722306695364186778863848254459952072131175523699446823279466492873013702277479157114934617632953033837582732232313832148967753682658735516091000226347400809926114980378919202538392508645407141295604084139621738856106828319586678473027680895344955228595721495356628240700278793339488388383470802629959829098122269562158000213427463290522999039197827021941179411939095142301192225928319317511497905859824689599662792969294739075633147831942093281224944829744146725063958000095786700948561566113955498208575956493749115529072988142878626909296565965624058196272917860878714582924035694099698726077020483610616648575580640186591520183445239090633390389926723651875180821405644602814056591903526879403681909106864064224827636928754590989389339104725257738809482510950583053853535485124127397816577769852264345462370300337219475690858510778165369917951452514728664945457126334492248410152436733042512276212409850346599704705643468193144762164880997102044484725246885816045858361640887538508859697300483870809154769222916819997778429429335242618354764622325703854908357565743059180203692799063183580772212868701536940876415569852414556613778488742673774753566616641510244100253034306082836475562091009437346083182676716400118856108426401782067391872099334840014254565679594838083351517516859110336298127499301365687241055678980938804825081694790260944201489598968897956162598688470451028854779408627923655022103023568261274489271998985335514383080905101040239948524101795684421266369177700176690261656920797426838559875987701535246663874608750850125725584616028040155079970333760645294094588948282272840314038178854606015612961748338417795556661855042313363894339264559561162211892470519992357700838826410999870152060956409279764297860034204960241244483317447697596976793100920280536511017525939903609692273665541019387321469101368803977260785487742355484235165064187726601386451546167009685731491662038410983727595768879304875361196436328258690498350463775196517936824398542321142566954620953750580949012110339926279660383171666089209590901538081935162676575848721442109529500735901699624973033211344575598932780036595298746977316112879196468808900829280281552266266298335345551843295016939392815699846870189610454704179163908192702047321604848353639141415749021903073323362207689867854718766622421647793997158065020934765407224784348988370344438507171445118036960814274153532423335724626498842767518314495478340347513228565364851354731743126390048121771029416487415574202707774686809594140584711276339142630249170246762302860437797106429639948735262227643166233199702032439332361490367961218467103713635405620100750101467924708584328858800940289136585849688812835983136001695486015993052410134031947772030170593392555193886170648354967869950837115700149601264017659014656824025525963750989218099348156780405474545619591048716833477184809370766251871599366527027867436335541637930657075337476053734430709343906376285184834797618605852048168807226283361872207933144757526569980348611818170016384788578997428109362935076051620446749753837036801146989939030316406403842034600097176526558542804516768797995134263827746652617902707655043017455748203841520212461156322631560208404324278743538217934245470945142829113677495162831822541601511258984253792050909968626954764923241586651918867345626478690892765604885733574359525555702586634704105066570192015644706101552579842953538749520042285537359517569941164379863576513872046994979263130678574040526194333089736869804245624948812113205812022561860829203047530108643856063932393670651778285748880178518558130707622784232676411071286181249614374709752396241787599550851276918749649960856738696851747316689276069843124285378406014093036661882029225710429307035450108835680923829556402659585729372122580134978572115703822737662919791308126294901438901199286809000758673301435410236972903374889061847649709012907540539596853890694557313365475161488684489427822981140569327773408111414647464450530592467753396639981325719805223233745106398984490308076120478403199386736531752656772448879958378830979735683326864302447789888066864415282931770824101874543011794061508091437628813252325011284235782888036149665672346091772138025306632636742223199499720590647766847449220080605350288257451476235357547106888554424703174563792172752477074251360582637964765071217383867534937386296230985903155176546322802575188126212189185307881080237075265442287642124930752085856084834080097186594485966790254535568198502718908140188167704129856541887036782570700300180470737540319943932882307135967192702692111372945907811264538284850979771680250488354283231979263591760512999668972443586427753209965345547084397667752269088689936951162128615642350811701777328061354520849095429293788756590249118609601846160880106962100402675906881476767954791185156961297010760359209624078996857610397195367376254010107024937818029885051529307174857282653325377181951565873118847659925580562091387770978471852088655043701412596780813175657397793294122895698620529870069070339507534264368992102170485375906817562735545672294859030491280773099661030029917980949804781235956044199893288507101419492963507659047185446625705262298901880792150639340364730843945731653401671536678268363411398323157583727813496158131276735154530282929417720980536803984882854104776859811959591253689808681390656703496637676034960689346574874544177747066305288375773077753011855957723649719452964735389267455787938649459463563915738555974023183951577529732338583796863456377406579704073445680191091796200720324731373815496353904919017533585659030749217074957262695413426099901750241437584151231144762506052755321703710152195802032365767443492628495937989201911999503759525039796643319608013826962795791508837395087151209505763546024712280203232043847314006892947634345544376519420160573517568427358932201021925410664195546231325007249561050667270679280358218339012464757157985592557669324000355925358383060466100124696787681425216119319190637159001684724467390689561862170314520676567283603612651982358022504747014588694643630132054253423100298650639978146113673158359529813872194602102028023365466458334132761002582973367916702107065796145317252468045838619372644592664249215677848809691743182170133636859736145014750513405867371159027996343575370961138331953968955675290438296622883931250692820314634111274911709506878635039249277869149046396906331737541734761377235036965326566603727562695610814238488090894712871368977680500018319924298097147244309624616916229952348460917413929562266091975320459213326449233145740955879416757477164752445839331861726675372360454693239972564097908660581891340019552921181892953876104163695738842695756564985005786453162988087362826111631589889909166773621917987448147740545785328204283471905144360784433901539738220899062826271056484917829715172367144989286765664695915296194571683778327605623290224792000269931590146393415026994909790579428998616890770752894155914416726992459046581063051653675111028624188910859177962145439465333388953574183378586249082299528122626087446517827698091826571195812669394942851473728464139335059358681654195073620956500942158506254889764912977999416241189860030297679334591990318473640047513226100650916145427424642667365896958655977865299514766505441495470258470690670955668991001358589718455183956260553357780878821277995976936068185122525144204199103505966937236341539385515501680375410181449904510852794781361088548016200990184923926757693568960462692576185285431488308044004725510834537237719027021104480945972075001858509419979780050334531319802347754877564279134992168226535561258995339808054748759306939043456331180478114257195970495894777029689736334576425207271688960215951187575483064783212393382862540969437505907501560688752713759567290924819508738031672840320370264836968383762695005674760330259423135929556280547457339705676772811496103793388615943888752077186420393911667734705631664424195087313118662772279732355053669614206322617968491902409152924606429513024365528757660244364992749618487404642152784640797672648634861354129218305269619921033081245685963657607207008318377730227283145590831217028655010624276229974533872369566034563309822687767090642417762225227329228567968542227106354097966380688852349206679502102552282976050157905061760690067780307633910008701411378113381476544163657634623905907320239967187849858296655326990073879216399354358752430006815752312804634482268433820187618558452517047393102757415251542700330804879327362142520564514183164047375428619354341354473920227040329498260084104494188918520687502444660272038764247462627685762644708738535838038351182529101630649752018358628065311380630204423516016375986530246710874398975469482491667965803683846983206498119297298415481114628478366310261566217847838332087751123014132583485169852499364086125896649016676002139957089211294110787526843278253643996218759701833090889738147663961783309797597945005019118821108490693300594154505988872687597266457498495942307811202554927743387963045368860963155546233463337932016596506208802490036988044812331046704792020188211248455863467167686728573071974400966067184554892637086112885611052555230068804327698323860163109394351962347763892523364444128548650183122335301731646344328812099863145804922455060602783144595438545592221692514544259672019147295993241766763799143210035701929807221429236816158398645043848095826803837508225386719113418374741726875720321292412428621384481655809181069455491499165731059814029103940279431303406297437468747072801211041782727368766272433726067147967493070480466256936886638609081284426142520284871397822925803822930260197442536218304245957013534675987275027013535226947286100571663947510879484069534734668724903753580979926381182050536092331126720750423216514451000211755668867896367828828903915805610516926567937364184844167670190228694274359181743932871064232327799174597679162516584173683138003952684085998961744745445858355074886054810051584859727671026729937566821745829002895893264521348569009578212136232747038125514970553844888700078331376381414773012947670554165111340717284291616230973827689749448271074270243849562166185238918071101785678304040928776634202237339879173528972072992788463766416842627682070380941220624101914999471546198463881173464634040543508478941625537353910318967238113277709392924107317101338110043513074903908415937765390781662008526304702403266075133099067299915307213153637468622205367278427976155349567720817260275933851926413572131122033788647874544252294373534786810546201665817475561399014718191932689229539563954444343876510687272197798881414173386916116488416914657989584877221686245108881438898296700981397733025488634411780414123067561619417117945160414346375141511914739767815545451746343372790001778667963177302078749989868221809867672986278704467731555061267061822207755038656534386536126133385566640670348020866054550292547874555993079340968310638650367819775417733812599388150366486862253674784660827104025355779964566635835414753782669252424109400869791072626342704488598921661185576039420247242144338089540522463368560690612184767695646523047488855015528017588207452829472385959595426936417193432174776951883439788927492323556877960281926216281141450871988890158496165389522934700180044821035070039279407864119169008809324182778567453241909990492168211183348495504763743117238884228134394554811198674671012194836761694759607907430802156803584058266387996112311933612576389335218903675703001638100936700119057289595967215313445617772859049035470054637179905669058284199983819944552273023358711554342828473453691307527662574339809410352676676856763337885031017791715536340137367733406952565973716136503109219055115596599241737440628044108402107522169180418242876165157325093229025825848471368308349966626155357599951323168221852423672005354510264871510269290150989972189035347224949342933030740483144323878873629101191264179809698285464665181277032344451792738511097982144932479665503382594416053913327948429808860323128210266621078118056155461409847807000516662911271284563046349279177671301715824232055164749291222500675423795878347945777364233712616123922694392286945940081148615556284708784586324416665224571845330689095397251920801770313075085760490601272077737857272190881632107551103398826169768592274455726694869951658634425189733035003724787899228086116788716567234336626144639473443359254807569509674154186833815315154295677851516935880091194062820598777503586214290836003880817427099051164846420433720994642623981510279095551146147429243120448672854377700484786003621928095751684712732936104114550280481719373350449117067296103027383569302958825154532709114208085211496520714145602565082992056618044894728010723984980422530581923365466249922959848583218653220323132903584913466129266022945190021997934479967587475097689771768787547539205891753970397531845255025943409603514486168438670992556628613227553561839807990152586291635310514149496082568589485351569175821213184959953227539199446044553571564429630652978734897616566069205432780250688904707466932849001037692147220256999598671416996371251829640214916253464354566150249391232554393355605785307329374279124104143344365853843367645047420036005844651151206363012822319417158345197886564397854813933116555282158880479083312118762091919492142153573384880546495142748535943325526273754483270417711670350112327090253285356988935781909151682687695291366551262125911468513956963840057700968431084504172015795889396606405774951149920891813318567801980577206281915415682976281809857829979770513178693904663414703854771726475059468264422196142362683461943560792935118840635077354484282376453387708006070918969860896606828159025803405065278371733086875614286517403857202939306550924536437922952994341445453023730225189996295570197318294130151110520751349241196746212899880445644476529048172288356453935028866867911382940489721762649290823001924984563804261151240850133583502777444516119624129114417942921802370763136324648837103034437830296291113503158817448382004177844515596440575764359312101507601383128069407717222818016856834685784947144685332991323552808093011063219423999224528803732226540049747855067808934986494713625715558411516336299733935156878945676664079796039203074165515552388307084406810462862838905346851868958046696446632788464433039534591142175236400119863364247832399938132502041916181071611536183306350851481913155685051403222829877204426066999106270952424221892482181732571236865550055810940345040424453642508098214512314647961849866435371933787541279312472365237031225569286848647248185427479878965709526894054571374368217503618276672098129907556458550250171927278383080823009221711930361849395034090128799501529254932682584391770619960720689710041556429969504479560250795960787052096654370891841918434799675193768871526738155749856975405986327336642125231025636801266943789164462669771474306475372452559689906436234051272603087813452650734256169385913697201040604717779785727045669391958381579617707050999262650586633441232734148008413052220033649457306323003894110911552333233879380915146196104807725240671537616425385860211759524163038840943781124014555939570572058737969658175587884185788287327636098460578469944901122373070913857739225096762085064836026951389460556859298847543426502801978199461928887045759676945882898235691315083939814256100160045335737219441023958367426758154016735939728808650479039635749200642834070050191362724273506097073525667954399834851423215099762154698296708764873157473888554112641911778416025197970887267330581691838065779628802260397059378051901253343999937015008152687838939332261603010175046933784501912235880542828500953794299736516784921731109993518617370310282881567443150222601775524853775365514638996773706795598800530577495673462039794669567153881658385421509584446406677559661279177771986066041306234692428572747170758326657171581501106926688785563073263589833026117715176097512099365100582981167667447110134092653058281482865261931203223621927557939293081344296533115919596694403586877736969192515300214400360150830024071731420539617822014086335523647380126056581513740837169987370805227943615980806528606889611287027427228698424397041835820460274278152027693082511308946189435135248203533343274570742856913884186611286729821421200092099309295448419594383895353114603860672963913034652987809914345791372620797044513279602290434786742216023908955907748297390375633094078552700425126886263787928278439361216210288703521141220684641123282367487564496601079965382035307042974199226535476704944303299614131868305792713954857658035172092680072230895384000399692448000069441550643776232339852946725178768357328968581432715787532029969440088114999063616439677891471133747573153650334554732742041855122298165366475773668240909746931230474145528858668721752037217397877833011002956362993036442014185499526713475178411197059022770650576212924682584172464986016507205691002066508136759372555306640395193114404259002247295695587278337349219186418536721742743226715913387055705815842743670840690136793180985201486575891201884494729097848499230649429145640484753589702457365866636533468470484641897708263150056637708490942594413535650579475564176945495911598854431420065874146952939141529539901135307350166824960323761485280618139608360516021688102690893112993029106711226229155344353298297920512464723850227031967027747419613256748355632311926068278799294253549547605870018531902714784516981187534953136831030721686155210691112074559854999817286053476096854423151907937822655552450883723400066146925331133572455854734293472458120176063975806713092452185185492767319359517552325615116091676695013395244984244734196957595174636409394580172398407978379645247773053369650534385936857990494058040704608977285289203045623591122826726509403537791858500364903426601223467545407591321212836647007982419252063496752780214724733172797199057498323183886612527796068562582560209036333702266380269335573267168555373279180134353569980800951094048673516541588133792592029044792831284251824197730634957585999195292134264574402149289998481286770335921458547587358442230003858458425479484627719479061190413674228797980388831891805924118889887131385540275628095093196625515092314232638376606454384226455333250070180131363959189256048422728195608600915940225809080330518360137946578809440100641716012744892706332837789935240008820545598942501316118765504920519772565739915742646765822097427396726297918789394093529876034413961772490188562038466741519255964518786630916066969267453039597332148347774254024819140214986305168190014096260112514027218882786444331470514827563371091219083263126425868797923875734436977667301909336025392609075087640812806375569425821928576064137102593419612117619379499314454829070259180745985553737330036522909675235283444751733997211925340982396272823748694345275620276683121892549905159093372138675522815912704014846610500422505720192804494043565384626432802870569478911515348798025890226627853840755825744504458415477547701767767802371746129922217205457709193508114392054686285722805146735943381089250319090110632162523040336733088425450130262390447256252609465200498532404446523943960196202759644585967904132904850884705128100590387234506611239282945110246066724294012531232838638496337908977080813326186640740172154784557451328310552913087877586350413898972901864193288029926164288526974856748057332078056042674519772438321618945937302241286402436206769908998112909473871245825915714564774039518084386376060795601102909550632847700227677199971540610370689059583137033684123674913319929740876020187742133840831830592716150342834589745288985938448132779229572819107954836587705327085606013532442611871667524978672844011792238083928844803098502001045657610484768869309953683934806759713912583762852813860290304794639062137430095850603862502998317108135757096878235400903757664611694275133002443450705032013707667251692253592971573168603338501126621904600286505121231227510137728315123384037547710800380995487458446298599286734068650600777656118318310886417420558304263619847149981822155606464078442129952439985889643852165018808891557273855612301586033479658517498094618036294001029191170050454596444582956010985002541753927905724905349425292655591858659674345405828011272394081906648253761001466593665205980100287870762294745614938839812635110587363425270014718287808410657869792302976229618684166093390255568960577978379349116783322176128327434404230969822922857703555264100547177891444602233079382921189745425203877724539621932232177177021468990951778549182770388930922751591648891452033212014381577587986676969712044385213119238995309174553993326221992333414562903418821130225995673315638173817573556805176448757256836909776157411779582590895758948762847043260950207315452577770567026776694324325212639254935586117225383760123435257947108708230943053200050268660397785085839662480500293389535287783046955822393782111958684369030735726727445420670445534746465590210187586714482294051654134676065157466305520753571993993009584674577790412660274973077965512719469974298560963764932884822909002685779724059552702069599159318176795989627885217441923870346268170163304368979076594583263459125471962307649563698910949450303933364561850605833654126416813450179980281504302367363023880452459281910011429058184671674723991620616618139275494451044098443631103552592990201763765551818110816044227171089963407926183756286990385074766179589079650992180808203915215889377916081987531552305500509520527911489628281486213070175469395858984127249919188101124908016029065778197119490984650855287673231924100327198042884152212704193501471239307024737184399563932176331838158095833773026236013855513098641035068459440138255913295059891323004457191885100792249485122865855018245492307898640395700983563489434911967504708284073368811253806115394208114350416683846633115394022572052325525976188783391512609311978784360822457098363790952309253045699448564515067255603654507719557142175539055474973076099790633818201812574829140061957926003422402112440674794828215190912487614373982464281451184036926570348893157140040539880873950613640371285583097337088180541385332086129733405180777574326813294977757436864877984390124614465091922770100079365890691468862809627713050079571266352089290012796333778590299003667114638313487045863108177136670617114074119368913773953048012704202278183540261261332422498723360487352758195648420258803161951203571768701170624042482668969191155405093628089089820633353846876797528112462111644924816499655180232441085023578912359743580365440564419732234768721544525007268429520831705158582886700443557130343915983477153026079989875088741262602760454143044245307318733612825614789409162717650737288659069552563476806139747959830420156462561213202890583248292761464058899817281803892051439108660233275210339306856378924946540195497492536671312323388136600573949386631610946551945871038597177149792764846350204495019896312508494776785714647187679730156126210704788599751281103089784476552707289089865774346151282162958418059604733396941981566288974534194160867297999504589624780226655906626797266691339210321269347890269935042502785049696773825756431355819213184835749111080986795259983209770570515967509830612466978595401650363469465742540179627856217810376299093044078184208930017704492072460731833438320728110759196425697275069935207595158510790303817393934552207522673137868656965248385170951786353673754665763451641113438231851973602746642513860718226454788371706555109458175292015660633600222267555690006483459320442575637195165415675387488848544267224265523788294079860055904919770637974464319967087954072582117728542232850771564288334033426970004455136395808731327763435203268132248358683383600721961476977741921637803959313727517199805337092462031829909709800794009080481879931196314742404953492047122778034671778731202579599946658992695360373025066422071273968812076256604601878173719179613273146905242847177590648499591091265339063157403661459967880479798047245196909646724250514451178198832770635928963481446872175768325808802856071867081004552500613353426517745047849455777411114857268434954218410401916711000933262000409596702575666218743932934316030341112258228601751354099274682711488128951382023670622625460386265074961668651601202138049392627819180680658754135219117748377468524309572203621584470756658832548687747515057466175695621194374755929576763184360361638312390951070851770894297319423577393746448221533173732792161608126084428742082557102259356118372984295342269212677138193507323402506981951926678255638613551432749688797594565676967157632120992147439236172836880947763382130662655464043670258491041610885380075851335565729501934287213601163104868194069950627046307587004058315662552492030633069257126380393768782452802883188674768138107011256073165712680420983368385666283362959046450625715270498175415218183508727321315565824555558653590350689873940119399600209113059733239612964830566289261910943087354278438781963201055738665480239926518753677111387113392287774920261227690037570178803721596481607630193917582358993786356754135384947293410513619965837287633618633861384418813274026096840302737924785073567807715967513639145302901108280105702711922471320302095217037157423383260003590123589150039309864912338688253912200087266243081391437094048800047648271504226976316836768852342175273393672191320109702311866259895598982490886177491856718015155618349789724870887323831321450872586517477518355448271800814556586395103772460125195944782091377448424473012318237375131566328693786932007185121770006994605028615888282319892153820678619009304382006607956814253979682875999606093854566340071202752148645549325463413792513666107618957025382134208680541670494486419898337048486055194761009170424698672109608221321733704877700001351314739995949295537356603047768772903024629426144704120048251628146268236017133773233139497342655724439520759308292701556236794380631110104667477109182681784814404499271137960045005677731979615610649474864646911948287040339615289465754018881195974916425557899577026890527996844368964253086142650054521608977730695427694168499103389423303707166741816470604570208563502968378635044302453001451412741170341492199619339986214989314894010002740883946179680518547356300136167261087933765175981061566739764707800939642348726079514507945058753882980884781269070042583407723083337249400593936997630483396301092595975307866574589987210320374528846467701406446441971051006959041995215576507671156380285722527182154574273140089853554089490065297301383539015755258758485130376857639431951982859240580188029046632024216309761100334756680610234519941368045443729670366773795020679341849137534603607441168566201027348075909438098133818485559150054120971175412843476461636916973332147862480711220408368196082989315887124048478995144353412064250729261026625030720255137877000609144278866170845930048435594527857450813888852713416032678267891371676935006353686680114513461996160090201070188692082816164573880691281122699034654009955719923471286380204101890624344740002343666612522512937455480802054692104534429198407010934361882100350676445476401678179777032945087404226916672556032576812374087815959644331020423421057385241200103590827608464893279017283867582376215072377743358515675841117869980264044179929540856317808810868795620972923420673575567144768428133603430584467685802345595609340248809531326565892027742408768480398489149210613687700271903588536844545588356429499248513161064577240744892997606082700227806220842347549853942621729653050487431968655506555989045273464824559366455677228364280645839320452754307001201968226596114758503460732894096484359606789306169812626622396310445333397310173071175589597093308511835341506596448853402884855437862085718132583831341115886951922413016189359062270651793847595437480482094967828553572317132149864191334794844246595468656076592279200465391104874573240778427331247377826227366563111126860959256090287143877366516593641617035548261180753013407887925280115072880585751641791866748797683157835510748496138481113176889188084254911574999768893027807032877239481528988022033907273286233315840325686007235893080098332807529032793980015817446741568219447735556990791714002060574705152491522406950145259271997548779806384482740138701279381012544166268222910734455862319588949265522859333026481289151342577111660530162147603358362123758690338988704180094258542669348334832863469874199999987041636592968185806677457356455748349265680547864896176222911436021281825714535095367704376873161935736402211317281097323199778092079519528884617731762773729500414161129056136165446427175321639400707294509640449330053274316874494014687398001006471635788314651449936862802988282847831939755902975091278617878596982984192269316313411196114113747482109134679066722046631017848103720780469353573003115626950119092327908698456342713788667782512402024405390397418026876639269020275153296486508911302509217430821257085619862617208538656014274170118560852755000325280216523053899794148330542778942214555962540931937625607147106195026556997877449917081968041162159779032523539853217270922864941642646212741764270424308435411035168118313072253300178417191970055576315836302782654767630265476268072104367393039013980123490015850078168629205353270344352742598161607715543117712170850849496986335082569170721299278306311386845965750905424537941115642337318189278413281632175957445992129620661975855131016415281568962152110430926986821917715715343641122875813740443407412754939352289684741574997283412043954447720571892933053893422124039345885775185784330679791837969381843042866728742784942410764529382710314942317854520153872307046067706310462357072097762238614377551985206044623178335373775322326051100594419557823854410402935002797583534855336468747643910074728705103281166550604895945226724237525907765558406478949276330801568473123653658651371768158976747816392262643658465331935292326157945335592241563081721011647145701021906663559396996478607197725788689846676374040887242906220371040979136672243147638011448627948133955513623984059214042376566336304792529082605686608246714167630119980540738970300902431977258393856271510014588438554630469998991651249461910316590757029484518931845996777855163929783076459911212937046614425447279806543748755658494377908745658359872948776069482294569368679796326998426216728941251854084351328330928671707461733002135631673576688681939134108364649738639960730620094659064397588453047603257347697604416069242265082767756801356835830627416068311647560632168181578800619142690959992771122117015428423609506755374702811275585039450965581357641603019972338044722994855978008424731621117863191269882522440939355796922835463825578180650259613917742951810101656657387305247078479411292196380679647274905483305656652699158249324134854743620038511885378353321782124239512450848281626529062324505208525997780168692670100233545550839405152423540189543524351956992933023474924628092215833156396089743176556763398531421388646687330802417938350912507063760139000391689826035644097937212444132065988113203674717333809770027980284905535884510421397804921653431346891571254456999330619858234187869978590995154709640271747677538562694603810165075418692380925611816998002258255133325262018607373036952481938271157699639702801641816244201127309043460675451169663204831608311182686856191715363836123136778935519952247504414002221184526507546412783836019750030003860686591982429664581294994417103637477698710154662060218048988642466564577081515922912770523229013312243719498058365651638511095495209353551619977697221587045777799025420398087740375716807245575051637721086138496540490515561198161853066581234574333567097008521753575729152843381311933481312816483082288107921911590026846681733691399980576919719078531048566050285063435889028510306231344356513707325813480864037057817954524475619577924244880259758975542917944925144754717353035237546100601052671938921800063522038166214861759971885540890152666763225084883469032639769327796226867437200390503546611666709481203648350344375173046806123811830666249404969705565472742400967902729335256135512047296777179211566216726201036402022764439476405727339575391058005582329189100762826256322545858056611589770780647634899422484154387270350346669783928605665225150618316448497040135305140919169300000420560026711747870055706044174473820261822182420032626495983652351138879844225899683427003664697466830810152533658387752236158707841471456501211943337613247170458317010995625376369359344560766421218557788414184219659210419700658962376362934174004676910664571400679215678619377128747775968663499215339967500044360565394656685017026548857837757738168974568803207414158963098627229864327525641335613831634419058735597497556900927873747048312613156875952755250212773996903156086431382013641441460619931019530618366504495928654938885172123717156896304499964836150443923080422298443383419760400275391261589901088570063041284721076307425565336871016875387781770986694296579821137836890861124827355925803137107016553656129719289004799031432785236931362849597872397683235899230937405916804663269845063130669355306645384303977513136842914056680131233465945701591532281204533361047562694551865433703532703154955873406867202457173602841563553850695544161510603515018741556446775891483719323242750095105711233320215188652867444714843630875012209833843508681642230481439948170166306720466316254057352159555856132484428049611737860488701402884957910122306937687251735825307464149806693656429058326965684821893809022129481680781407061348426940428771637513771048219487763833943948394157678445906870466851311382348037196361540293975991853700030869128011108985989687878192867586679545635435963256303886532927716950474603496049201860605083237371985203947619795730210164741103398442099457432529098158598350022731734873642050737016565102958332268990506518156323643608063890867268220356527937625529906060126976474876311556010718799936191821808282691009977076157926829898045122939421738207472630776891310390204417740978740078587964488541583760360433417528642016308555105165317543763954237600407832001318450290455864564156203338097248109544475585531295916898876251146035761227933484034658198758891912971922664071863851063698524644596103181133669785994884683264922400346247421441489631302942142816316120667925743176356121616626620953565509993397408480437726255531247362035435970184255325750344883480325674574252117697246572441726384250277645732889660769499535043471355687013843490810750996462286780312118172210127801658549501624769417017246797192552877160277815355511091766368882650324013428224427962317834164081979029004282029420827238012243868164123171204571840149236542224772938696967709104774833723477152177380907355633002435778968844594246635753229015773600768848533362003209865170107783498813357219954883717697145100034703487392854017553585823004472249443097135777257809692819301705360382000397967290010036486670460836468643579684481509956827378462277519650011649833453422556366293283009525943317693813483014561810780629034759395026949213404760521482828295521590872153765161883853868066056043735433436437343157368744557385726307311127148333454928381463359844733109620592878892631019608790806125628829645564795894080531952869428897260406237852240987407854263307794915340341458799137691566285915803160116000877191232386568223082479886122836253614626465008783233546910982597160358408214726460587762449102107303545511240769114004672315492753622130102903355010408591297482036836768065044128730210561132294705792605143714542736991061303145072638975861721292129407674584839324262507095599541053779195026161689479612791318553272784097271038373636427151724023707266840257793218213889510171632707450211530072354323545457514319504374091932629960583675051263571559821476799664656350075342435349815970096523588755382661808137821885000739054798235764601697337447816434828270312406563925879415547213151727912740626895327009494820472057471062595923492458634800272563694368718774960385871072841876422105888209758566737960418885366518180605243794891783667985307482403877466594756106364839803031228703352803244496489719372113754666043841319557773811132655423154862346654003929051558754764134324289287355692309752139164000239909666371291547012737995236213834343286159613474787399608126717163617213551415247765716005917225936099010146624695505762268442979985137680208458724798906063187827120723901749685144544721894003588742248993370378825808112450199928576983473271951312651341930425711201394659793100217039785461238396845418918181899817996272814725329512724225525277326701514955917910765255624189180500103053057116084801498386473822602938587529532985713661304978518260195837006389783243778128201593269027694443250960112495523561518260657091388797412564315493077705641883097279199203112738320182036309878087108007608542737260219519939038016498341209860950327965538584424516077579043706722522464755650666884893463005054944221151275245747616672844446385667270928381859626931484806724418832071479546317775661756800972663432395741843460613108115396748246410624753485011550458690426115169163591679027855922817589553535597350917152476809706545153837912357239048185392208351951601652469379014980001081159677681192675776356677745703651537788179130339522583858538748774191659375291112045227284913006680576891073702846169564098340981610458460476387837709076394919189922834207304405556601622207060326534502649599222912741937539604609123110054704645827207265799667679511812503603582474953219246348460310209175627729688664785594597996410165686888155041056690938172290328473346639243013520590210549901298052229440807066932809499441182294198874401305315174795554504648078215535706332700660319960666461629236693402122208037960898417618203952664177663215254524600816331344788241311328354398865815486424777904414688721888249251901494210735819498600110621181909013886760024605134111535204723877953518870911139875946712436335694594496625699405786446892553308935828421709622950975025662370110885374096083474896151682364512066247874229828776975400631865087719999942934773748832811565542910581373413353851404818328627764689118275987762127705517479982101164132444087324248805092718764682507757274698638534854899767477682551017323225690799033047113580713918142369823262170665911282459675811886293602957413934080818016191835020414279201842917157640666454413750915025855572257749766134572004443470394833991090586000572723160752729116452632762178247337996397715419934729665516889824687537732843950382580347734243025510148374648425747573618516458383391798240492530428254495737829832446811689524875630770963926778213910275269527394514503648229795713388154274851890314474877669641496971995146944418011082052056415060951370889419128671357807273227201276041006628674683037134343396484733095556729893883446135761454978443405062110155815850026249654246553119535204068641486011994112353912756980427854908232747824040611569356687585067183379415662767620991879039533526262610928884666725622566035388865388803936381496041624418055328983215253139584757351346683511722765973041962092492760221907897483021799059255531684250325860094857303514242916460080369540482340227856536166646339024674370623086990002164862673561086593449563080575163754367847989472286730718204921885495163725074238950899164691018122596471294794900074371117921537129274927217288101052982208178646081429290255142463960042577517125129180150296706238210014860162523354787002024283987677907073779294030133885338817089782346581591737425149020189372328841953635360618494959920216770636349572919005794196456531133767438676634687709988089938288824681157955986367155151824933276961464921399285518112152139227297328302239914711425389374857029155965493570202172424286788801386588338750184044774812061315128285194535949101845533845845176621175970051669158446858539387343634282963209760333001659784064759064762391815231104663522827147871849198274971195869892164032898103600716994968295517668585937475255175497097647647057797150431175479422382394331644288780927201278616575383271062493989694555024007939509389062161115264190208865770978770197813157044378860207814573855273563187918276032018085570206951154146272013332358082517986125881403570283214414377352928158315776164008260352132495958095296032724709446814870210132394842074850461910196663525116723160909257899127878138581600204781889220313579347856651985775472240146885606474109579313170971989723089064023727304246513691576340564071780926898635522634482611236036310835559953507059760062750519039508747992969678711340388156810638509621285069242440162708084358120954977344028344927194525635712245029490107179405770224726531756412421872604410495035351488169218252667270301604805176202473934273330812166751982599508291611830424072633517713936867854466797704001816737548900855595904327102876577350024514070101299235508316623009595416005324188737720988689827678946471831549323096741508750258078102378656318484236875018928864449682160413055879577312708990374600103558658604120609975020072886455847050141419563873289069613069854104195397969326575004914383014824549448082572288047578567340497325227283936777657605643667620884573995153661132114155030251626506481624832166322252104437034815422862149463773257778271880882307476166182107686193016182263359276796914189681360923766293593176361027812074397428691605383643045159603658116454470141747688635769791096457688709192675911876762011190357176936913723057566960316095148892554202234530912344263725661433537974346821111609945300294221521139414505829921337509749028372216750098333328311072373217545628865690218208353828258322995626011034209791512532729258294963178302017838134378516223319335852571716297676647057966001705153081590992096234146718695450772286562426213525343822105661086387826157382206010634770422803430585521971869692091980625309431430208068744640170641134946934248382495596875708724165286965216566502935273598605782652368813766393096092299953333333110278649361668864208048786173465861330940499509485045841654706569605193130505450742634607689787464409827014356744479384311857830368088840264616785862879906847854119771004875095433801637843291832663285160773565214084278720793599820537543920448849310504132620662781244794903517611420662943193250370976932651104254430986163081447435289193123136796406902889765961301378114012643735118397157284405734119761463987208390245760348223670554341786848774896923365878168078688438211730060848962327712677749269764623737781833304309941300190414637042639575817043867588553577393903771715381429685321220059439539416087210276306083463219099310715412121682046379188251519337246008272748207788256766585269891161977969337308422842165431102562325299788233519266871692535821161212780938653704835681377227339360348548322936077894051243024777703079891865685325586340317135557833127150973793409614651736044337536282456169439425650424225809929856116739986595990167280326499924140196344257420406013350575722079313256102352642628696554151453166549381453321970707987256230388373064447049196145327140591342756792908544446543155133841887692946964842903381845425030917308994649668338842770714590365020892991683551677130524416386461588787321252694925798924051840175486281906741469579295096385178123715892557108194738418370435166427596011867828358840207577833714401425171567013818821821901722810252554970087314090530665668438400588714548436471558132959828584539864662040113742630243750841734770120776202222697590715304269768138080236978751419030789173686957977404887713363298892922094255608935938682102202745548595032327662199584289226932335438656940037842623156585189663597206894822972103793060016204638859824866693861903714688381712725644100965231255741834711830868254026955795550089760319253433148919423447724015014542121416495336040055990737811407499161056236654196622147028722169694945892699659375115853421215931196576735486949690357157705894597190506642330565809198109720567808914957828665414224367188797247976559739757454168666013034179388648100799179791916783897275470272507457097910754991491066546817270199887762022578434200597947258853457874885822079931748899548195909608358667980269872446885811288133995701540342887085008043592447575499333620053461808064774914768979805824658393612301210600136292983313791980721924097117159652230832420231510456470144023570767895193760778627362801729608571226210151235220526756423437123126937064797908146362434454471958003522345341574140046069340069767464961087228658046144439671802096004052397600196399350804863392573786611313574024837035934270939423007251137623353569897805860865267279294963011002866867087695872149199362396265070317766862439409865858776149741274425746968120756965382369890065751102174954901989361762706350629985584467240643373322461502059548793241998388360226497087396447248852580226979980516661725739072992101137482360823680347421040713409974126078080322575436195514360212446836399734835292285667397215660367368453324864413666014489396458517615215455275462035571152214738875739141238280480896219444759541270105046172025607627770347463584589545975052505579917774690667848853917150442685796660388317033739827022162220044783749923282931690923469984003407829354590330932548912034057968374704082786279820502268729157973089381623442232515537632094463981618218431204869045700228105037836222773039844478827213303929587517059609028248525360900308176018135940287809687205855696552561046856706293706652050439106471761062559273838038635223732164602624185970649166751869693426195916878251978232634546933822503476652466155988928801804613578855188132997801138086835161680672788570844078180419199082863310804751488155207028036747798664042169409834317837010630970477706918742230151758678142603126891870438670045578317548513310027157248528626476077134325052068785623758786107460383871776593118430964287450482670151692929010557873946347037335292613499919456552845799030238649606853707402920171061560829917998644165521115550648323130449739044937373636074057348655435436288773211329869389727616710781682583636928820057972129530174527328338863385183826913574893924137768373424907229333855516357610080511863680812639874281457550334081250098953494014393692527363250808737445881974764114589769486144534169976577553837517269960299873189185247802425231078009084587369097295143833399830680733356360378607508722634219892733111344965756338065225191578882334690040606526062404522347137972295168217178036374927774370188519747950892995357841237084819295723389598003448796151105133026208578375332837146421797811088689606710451026754546115589477007907325962350357815796000230760659666924725604696916394252195090387201272328699743498781486479358362247321153567761461833566003826981482797452187569021281923714637177805915268524075443576393640694227822119628858681906526058280594970989386541504881756325726207339321632927552678354794184827939907080363357730995563380976434696442532796198712869090304599611786285803062594636885116311402883805510394387049023778016591815404230525815583745426146720637583922504739294746578173266158028887321618316574050555360604434040961318858539493590538424850819372031752091186185345592823831708089254623564369015299469581402399821678043057010692449016541293877541111624618578366645875440157432756198308090435563257184208737650755034515336203749057777993099863542858074054426713172823532878579013008220964266013076643201762795135616026604851629179750923704989967222836959816149755364840968792219080144910807228303946020660932797127874172470767646609299397479391678510277993873785687549336665932090881025718724325833273097072601230114653632623798693290100196602211798531087277213843578463238874445238311286729814951715594194992651426786873411106491178839145955727477094565000685740277784955165478659322814048142395573779814393029082958734727085821321444009200238148575933753104269932107039177319264314408015923823809201047834839320455227935609766913996884891078848538312134490916570658151231936584526040850950951319964467160624623502262713481594539918277510861316145206611300254403889692735807713986335882075717431582321439864071415064588748206886487295441310619947349281205200412955193093675354173581771995518549104110842305164919966353790980862975838512852795262601241163651650537002017637564254808902200365745943975516186156049970022934278895958751054105959879488396229061088790738125877751594741972278405106846954981539675644622146624835514879057232888357011768847091388896281485193795981146581965628335282135790670115215386080615818916552582264595525538679375545709047768954488224491399830687857341256949715080793949916423248833155902400235266823563348726350727804934439339213090332368104343700276145569113161203438398856439334665503029909864320915124736386048254179077262317258087337968163085933135500997741290036473859706313522238945398652432771620216189911964959722314933194082361579870449779752256877570512481523882920967985315688774336680208820918208753410863075224516458568817616265635014151969569384153715359545940850732088328767735100977921263762276849971903887192512155903341454909498128207262386757212649557123002185968233861787889217302028616914841057311356923852384327101686826087843755184569668067907711273630606896054534208507778790114566187635959662415694687076971689067611907994554754952864445266665526156934141020836498385025550600368790688635776631524840360541578842197410701377057504511097580287557039373235508218840346713266779946819545869505767412042717783034632621836187063031378927641511099870647079214959248290175572155030901787769389818957288268917746480276640041582682312900489038932981018172231569970844423769627116261004721948705657818699117202325169253086053115489523692408178732391940016818781094363643283746976108236732209438333638604599440183636233787645107078385342579210043095668644072008273829994793962866484444821481850832665249760907212346112355689178199309436223358814500480042760965776524909711614785116339656303369820728424212976529839194271764931420192994811706228802616645358533552405152582971080495881322812916704117520462614391634919167870880276307199688221354797650087255873530191394741400350534253338604614508586097638816177596637130547193542011131480737281737256395251674713468073276468584078805855901266306529432005388382582045847264885061131575599411062250084544265604385950086603842684060547331227805633580565991131955548549189318438572734517697915593628025980965409786555706575144574700008886434241352704739227574674644218270598729816227356656365980735859184185144290935964635703082881470097133646035320845260438394135486824710941161484914744435038252374465651381396020339921812601023631407047214009802943306191326415325648049489697596362305038332706183697460750891031633182276327089112683791432077609431038332792077176940676696284650209764762762381026963669159777896209555780705313813868706576482168086053050454849958027027077148882400623573981161158042396995981449678946194825205516274028698257234927617051171667146368534053512907552854205902218300473499548640315487294715387815270870539073788896467818329265735370935407359274731904489412313110405052029196647345074653423117454357110891352060678903962977880768049474375426257675491955952008695665377747844941887666537908052079093180879924945988782946237733895447135179306053905751525626031053915165195234674702330942043585204442912077815211825105681333776129453896570542459220415010914845363907412659475510502726267333487809205292245629030417308859878495253247865494625429384818708794343234966296495096403104337115318932036609297992577204570053547768877391175752117822703962736928433091663549753930039020035836072097033307941730314661587093912314817558154924522951672665149885542385802446921065077699949823077835088827712885771986750385538045783045937494082124095381498385590727645169478273945541218981216453508833913575218394046379686671271416504181181652392446002574637524330291316826730672886184799760572808419142170247968660884481493837401173339369297198428135057594698269255509743306848569512985479080493814498412725335451147866805357927688242613470934647620177126777877072986218649175973471731677435403652001213837635107413393074836388660226725858506392021671970794888505533246539617731139145545737434470042892261101811477680182259818748688150943465730407975306389684103356063250897493715053245803798652252846184994715910592293833195568164928817458740880430473850739883159896175212090613282913946739297573521811239569416673989237896740293536268600903912631730473410756955543568175744952021091913039266087665242464680146158599369292541777064126708217110215174397250099892797055624328005866435531686827918984197573124783854896801217314386772911186694132010844801909084266022679909006229235215208882899315858884667429121109724064057460387501334596563631715085989422969286384492810237126564342437284253918205745622516293526471362420620787387533706638612099048444308980807385788147538180414631357407053192246302247173072784773459609190961086950951238293956556566862821181226754457245456816853501445935850196928652990995996620350834380033835091733030915075261778475222204218598770116577633530468673915926655911778792587179232098033555565382048864933851894778801132838665876546380148284233619006060886607278156986318015874714759912510364575215198426047624047062678459547220705879994381835517419100146872851287970747405606189052288261014060419111168479335772454308629524151272581163346506545514508844536115458580341111624624599327702792518019872777620303654031211018547968744741084009861982555650641319416841336707799093120349353391290902733033958542159237216674229534777072271602256577647445506687140084866937004130428072678306793749467177528838578589074126109649144920688982885626638350980935803106097661952701714366561162133185721277664613959652110958563691548911034918897211232865490819554391679342976407503506092939936511198241205818191819598953180543903503343532335546569971681625197764775871164047180691041877922512144126091702538652523965748132534793754486414248277719980822776316288226032530878226151590228464700918069277312566073213103670821876083221622546938144993245794025924011693702669434824986059011407789860838573364962003189859048478810512880192166069066314023465586427148726286543989403724101752575589978473572913083284217169142632041956051709165259950031478047484952284507223355053860451227105509355666382049500303733520635312820552138329843176275341504583519573818198874926166106518853007411408080085831064855322674900332366694678237579049188463483993523128025041482012319342724087957971970891663833146962919249401946557347214680051049997787297801257682897222465270510789398039510570034828810731315253822816747501769594781199978135569083424837120890584132794689224488676406779398310172324768289275535637210535190565726794527174553233053403407459409291651991070403674397891140569610962883302892663626219898078199725596603436128351707676047556434426290613176656156673242894180772853262502370946508580529871191649043492487798479336952635547966996174186848429347207207049422877648886246963868239736715807106807269523980898980554295222146153103682667162836885930692522504084106167544183836077906403223954217336269874824091583603652057855330099002888251354543215154106997355261199507910201579856934248915834595580319267845973673434433631413578427881377811765882414398251206405182526095427256074726232767687870160015470982938869884389868475619560887951729667656086968808563690958430325131293778026841631976742912618324428270946584761024209100468826067540094465180019712444140018333176701557797617573763831429537503872648216753011745010675056780804968139691732982572747582390643442732179857342576974381343812643575202842082142380468062748668008671725673643212590375289062589966602834750578763033002534267495950792242965201516115395755059133402974315510610908190314165662688373156874534985446332037258250437343600291726836241978883976208616137569472477181253452766303911814622923245142989191741016477255211996220480076772559573815281226969078631080349294658566851624177631044093230404638225346542367043172717380830258347815155396465458029853320243045542746474548460023401968127105806135107038167512568885756131749053871420675334409943662828941259017472580205953180594138632811106790026248455013049069952110184205891217734215876195409909914723055726501237616278772832997634636417282577170456418674626318288818096096126667054028594513015713837659425777016067780793737937751759908552010290287008323853210677028921376480134653187610360191556358404415650743593145068086068139487428784921158910784662587718074327191582458385075459321892754373871894878626453630430035965328293624009672237635966284308526920773060182227715719638973986147333979243921822379828158431373386487318548906102069385573559572501991110581653814030261020682532125593682358791597954876298613614860835241029093236391932464915212279751148424685053873508449537880716495839075818040961929440943585542519987401220456327179931425657200553413858831488721642941853209144484670315766328256782931763159839984581372643242393581432565749910824815350375471473248262990674792677132478060771432368918270363226780231998764818216728391583390138022204800086207322582881255414441494393868167228513441247428880286349156245792260971958741363744728692562482937220302583425215303463625439703348146560996023347839670576232754061324430990390425160099923340448422802511448023936239670489387745915385379856624998697626701985799479683330117485296697362750128049607615180633319360291598263150607180191430454071651392532270268047888684666760786939110454342823101655702863897682153887048547716747367314834585807110103585746370677742404537238031664716091203302899302675024480525954664611031208973286648071721704738590301996012635771901375049543144398925099367071657835206202784641714345789916685549907724048673700772889411048420145907148102038426818955145099016722046540718572155802836964130270167145784851843835488703068511636138775596767346124767017521054751648604059055282668970854436813431126499346656636033599318612635847391118499497561376129300212429257265212982470081804433020120228800995696598184529478004417335085161173626357958014464835170506537393719323303676318258158990467099654694664139474195362311863167612474012714724854891269590017819051579214120918668811894852333367399630017305742800573732247861174009537805615389183084965771367895037421583897195178287394950313295325904711306835431561413003668276920736747314669863395676761111503761851109963019615351991789260467029618739619998457204078308875155140862280868635028794734034042999434199245457997485018115919919318891654416064576912821172581486928856121428485017995152135060493545174151241793252534513878694205135262884994097801902810424118796076611387759463199019786940411567991965336437463743348148715070412197659298437183289633453858177206076112570471945292650296685712872428296768924796463963325544167651087380623949295065896520209865462221121464068040177935236454725277705277574111058078497810631739721270974610886820620684099036519558678531688625887223579811810674625131059611394045336243462212719787443580271277405867774974041849796848502091670237082181244036181283366789968072615681216537133573206002077238028264008209691097364819154135612821230663680949068407884641950743005714833347788022155103795367590209032307677612971738387785064702904745557085957980614025995361325102908117416777825028863032465328458086929225037314903780914423930103044922365986455029079584923221879025521541769065540266294384708438872858306869188082975328124932207873374616210325923090910412052186386814141407899270155560428878712710626641920111741260903959285801908690513192420490477404157142400893898034818556971050257723571252660486616186621197867366677541159480593262345828341170124622359500420750590621469313980878226863878074581925704454135950746370700643063126483728148367920360541108376530167768748171835180438185207669092527056475955285611509261837663489598035633267069953088363441801103933681269196210719573719762059168426479297212329295288105909203859780572014823208798045470372614689194027123820118464185641634332484120036160559596525769242499729612172966645048291500834225553182623026435910468222281859249315804980923858478705341056096463300580928073888799971934551464124845364773433599570138209264040436163241396820139575553137409749224514127904321267150238594226085685159199260815504942310370796696206701296124321593899952085401665540519377597579707047891940393748656899337875087731997995313143192641707168694518589772922767372422444196396782832820804567417502021259074328578035201342022055846827872699778650515103208077594088762504899177331085073629167696611381327439221131111926041161770696102861758928921766759976389370465979577626029664349799533899966135312522172360748340277122859080450735947370061021594503228622557737701167728794915076264198616102136178733886836845610549957217754412361013810899583996481544467645040656895210694940981906658601168946712044832219187903335759024264603450644160046302664631953822027879500961568654769081640138249832675507718626564928869457999860521442631753603247088356472921025149616577922196760749779393436858495885638526047903952253071753725132540173210983829781231689715965636309494013279099970405061646760972154399702042084115392268094064185565401573869227520795892661067603760700688501494064499871467676627198514214876432988260355564437843969137896516444663304291994097453822628801862772939419686840091723690460475882905805775748420793287116838844116589258247626243458811441832937872572798543208481964715277155457545635444121550498110664307456052378987280095634401331388082053773287201497208119487381158523168382820942644657086386232950014222949324009348832676339958481166536574714183263032662574744057675668240785803115686950176683141971623780446018087529981893376530108197991462044811994148356300520408202519832577375238157345160928255075527276513239229597858276333366056625096217020147540632863354336464062137806078027929012903903415266407709437578680897984725888450178236766306781904604767137923089095333226461010321772117897993109063295033145567236601098482672608964619676811677136779213575414973245601700655519879712036190602005248308925531890916502604463873157734980325233861480946468770792544952429259885960843704930358225603456041329924500096355206951097023735623294896573626286379910335757846162624616938753924875981177800403733626837632694673015025268635244279920379653860556988190433290722885639398628907094098497860712826159640587458859704539129702066515710465831779589544326261414395006161130365698622209719177054246580453433055773611194410559586733515991160360521450328253459127389290705527884326718298639372338327826621038306661588796365835721219567072182282028662118269108684312861519359168585586736988833917056646451164903446280707429276074813408816808521881624191760710329798830995381740535267037739766477656578569107848159585812902923643865222288261148498348295364181286931334991465698629270779896000082126657187145686442001607564708114042333908709852618582223755272322805515588632114988394228956678550081699334589926561282812439224664238038469494442837716753892031028587929111941727033821940259748724807121513799023542095966823052384184556090293600486198039899226390069425099098485688309904032060012499023678502429617277226930835199902813973757745550767396256834888132022321778004530792419691883954150796950666979551136249274599077654252304207672155004844471980933145767073235919802283827516388937610066517297016970040878090434201259917528194074570459701659946052531166168449647297073473074342059219608983815284878509941693930250924016718250726120716718944897251124978597434685957764734621406755331533635850322091374694664325076631285655331731092946573854700542741064658888298703803064941135790592354721268222307137121350022411375958017912710654479294674008274871820013346677877829264248058297349715413052445398371896945842738899827250989235168774036817070027328806976247268188799025261489154184906528921715056985033717946433101303186636860832682670174003743380790164929826038420034932536533123544125541833285723471821508547711848944035002121399564736328672121877525727779232884442672912243639062997982296440445644230159060963099464264631436390079759604282957459205541016894019341045414328943383199325196951945197076840168411792468019705547326990746776551689564019847870431506733908803027295928250758316232310383029765421624226741882386328216997104815558437949725141510685634216506171856778350407240632128725631296245997057768664307784007093722338934239296831919405135018391326880860160701312690321505091214137000098738722997825008241932046386374436717845053273566108696484643691353787426868611224770233142514797000204549792079675699045648444469038733369657644153972594574562933930365596606941721777247741918657243602932881341933191257157865390681001322255694370758767874102119327211465173318192920511066881207229618477439906053931728873188556337022305063277684782803604193785001716152196576699992187613895162665608696830926722614910993046001724367837608039062880735774614143582465441424071719378875030412807458309512572635928533414692720740065694181442421725802336333728561228420090697237434354630380497940977295699884187456009865940978067830942712743591651953559543274192597789184175551601733896185566332448474373651825427718719732693019875225606720456154788538514396783595626825462070485602344567096907827015268212566427822242762359276620250576966459106296864673591203571585670726568721066477096420562399508881478727470610075839378554428784903210142398950814603177863440544707364500483074216761747999547662114335435449960433925124221432803862901022702015506294441572635667584248411577040261831385598005412398246079003599395808087363617432755418175341663170575323034052912856621302931590041988478408398023056776129440056873313650924616565202780310144919364213275300104960093524326132133400688764060337619063190437594909416104497355059811314887014590956843918593308254556403934657354862561900563457435847681826102668724234219898607619561405335802394735702349823416643392106482524171745834942607130161710018254767684400348793632378553779156383718434818041764836925174419492091532689062355083898773167710082701964510887813300720726476115769628146844614596062736828068075959686404600362487593514380976837938497738220382194945893311626327894940485243944760325314809902490547437755382014901231382590604648875224983812276663786549331582346389897710795351801918279589227683636053774844489684904720778037589040538680929023801601534030671667888331923319702347064761874310617069716313151816517802277462195572455625187924937689700309124750086873193592177198474746482037978159240017220371619138653621896025343684258191557857261597090764392895138149909031495798755952779162777493556347236609382776498875961567820099769701962225760494616673480148651839042937325188335257452160195419558464372468160490133687846910775201130620003100581370964190804782417087169515495647217086711733155625067961915362472307157040682398098272885914355612249815143667297282287247765312305172183597811108323178814730690645958806739207478000151578096589918471412880587426995737772720688035306333493416575805667704696701792150058712076611640233958299353794911017619580024852327997408632882877859221387884407992614226529227423428636651597427059264321267237793603043066338812335352585360877529816851266272663901620473996343418344736654273416490174608237658861649700505853850185072213715772860275098830940838154964916096949053554050463747340526214636825318053692598643888500563956553829577359862704517322691722179086479542239513861377446800832315158899252073252891382774462963258055314917655514776914849795288692083557240534476869729570773481300048935330546060324587628996363387072019133871291644611666417441469309259052016500606861477055246232494673535065139909050155948524482368393371703006483717860395158094373304534286779596164464124031641348992621290995460418637251706156821956663017855931819818543401725450864665614405654289736243231801674582697952721403817425032458270200348068115003914650188351192547343099860969299222699881812520232603777325420237292990172803976605030206747740960965517000180827558729831330162951237356850782721222686194501387087724990954611737977682583063085846141207543549362748554873082874333457408317258946487063260808496307198772484796552939967417248376693351658619619235454658412728827355478222581293044488725155734665105194565921591739945159148837469310166534655496123376733674957258469461256145721620647276548393856119491778037781005160173995437033240942538320317603587746819130715765231382517152815236585743086132060688851920466643826943051349384354324301439234970251118191080369909130731172874413233755275682908160049303690005468163524750607824845966664559866769755597095287155065677483616657574679135410932346328207735249608956337089326886648119229323319619989495655138339315680377130602277653131396787082918665092645153440868134920226804454740986022313473625278247016259364850289413944815493266778877185104196391496996792526916303162509205783829514670677279038282041339590148559754981488854443963034166898871752796044274079934608739037627619221759896188053096437679074154717562506300322864113575581709757127626077989362357276006043564902458077556459976845337389774333064681771410645230574969534319355161209199450962997194881661685361681312467774235920809231204044914756186180210439489051495592750297832114495488063499938459499149587187904830861175588222737552288714080627238680163287230978090560229803626342346872648241713799229944209721620332565977191048650012416562807102917457902298895849329307007990464139292253853806578003876601231824948636278488982367545531996039763458744122988099275670777191855987370819118493192893312895275823026712523281592766602849725825128267320108115762077941132391858690528643897057731391659843064635127624280540530893552355697020086594183850741669271385752587002359783810297943865443449423899012433982697244958930546484969178374281761056631604982116339580375165158132030875085389648403727356689866793872649431419605055923989454043809476661227555563017717528789045469651378871524550729846810048740206874535949603729535588497459915357478360920506205750043623074656136171755845252345628636600294468051915301888557430732713142568314988933591554716884610969129962847961700883758519762996586396921729890199035975994224862708902940076286440616927300981512189145485704152734172392757250154120903153956000931443057782900345343419789130870920912578510918542063706879239290524406225712186648763979695802491996286496916124469757178621006728338254958107582629396067419624607793686264010544170235117563133806824223921635588610331495540894229852180912033236766976340615167363306408049159742309029329107742890865490442512948056605859732616877577815095796732846649751512435171967575759242494733205638375223056779304023905713413229408932366330864349411753110052788350651338812833093088505705731148969356146454179998850318905867231353427673816103498867843093780730537111367616542998326564464169377757764115092648704531455943726567298685397792703376155965784389812839235643045782122249165450516754530732725518470478060498492682520483774880214206252447366765327400732777425438399817494912152337963616174183215064605831600481274062041388016119205700335741150302099599494547864998647204265823899529666217126982434786693001213480745726462142206402574836796860015772241099857396124880237187146865788772607154183037307037498158480540385805146764229263460805492291309344937291773354770246496974677972211547246088791604103595190111135403698947697052946028909541066690428806114749294396566252964842161164889261433696706468881588041340387711878221980661479503070916896411092885895377825558929779075928490278673699048195243701870858350929103245446748124996985470266352939696759941493798477922812878264206719938835652902772083079775393879241857810928063371515363132562809086826211821197429992474049866587501695929327765283773013159343025340856382581147386116229280892459394647232931567127922472683585366210757104982773411150021202526487777845121876440780954955270246546836367614551158038743632389913417960109170364047260347298859523686627088067566244616245340076703400535188853133905963265768863430333880765140068541550787355227538080810236578898064282178906970173168362945306847437217250366133736220729721075078159333059919267892450655040410436820297562192593582592011372889422396525635236995271589773352775928688603009206373126476506278212197364380868240838839826322557900088320440418402384593691225511957507308194642879107138405039505683149689467375927429560896939890020724108442426148301815879526973202305411806746069242484380534181687601539395373772555076084091600041948300726508420844373224795734679067635858410435180276251599890383247296863803788230749991151995987735347640808875270934735662036324068044475130124799903097412003909262712795585935128564487214486982559283328161787417489609377174115463335781925374699329732821286492897038861675550497409315111788109082561093403278026592236399568201280478420812282834117433790225313502337096813668180959578303330554728578343713600946433706742573359323811072299580655255892366124999421850452948558590595435622112221023373614789826798855290131531377270322276894750789117495013866874495796769133814521137447251024459861366021214974825220537628810171522882851582611349486566009349141773666072971837975724217876502385971198805200682077768306451945074649558257878280053489244251861718510790798973510881654453334606389916262377725155646261745104850996395135238215018033901982460150994826662973047320493951349814937298491871503698265556831101757420544999368128530711356641371017906796811207943858480886101744374231595015255908176685499711441191999935197708933613608646146746683028173450645900467148757337688345861613626309204484260990305275658402246278887504642395133017291069005841998305954005577815524305655302425821671136522759828089552930735634496509319320135485103621344999385110736415374342117983926294028348785036693133817448548621704385797105430654666967413712909038901392217465859409379202732696009641824592774018522676508926785372701070912897061514768111942041537519291374118948361611360327256503139322692793289980057212162939423863354871892138812921743347253165401069445340338310175218422419441423644496121038958522457607191203881500468217636115252989329238288358718682868162698776773289829269130777983463263802450765872196512494903326113067797752427157150100287296235917370477830084167030959438964647040874885402065399243996417226668423590781910688949379515933076431025454168210123959112071718017674263457073192457785369581799790576914430306366430712508302258117579155571650823033547808995469997995720636384557329643264195790231551020563951327964376578881751573529694342467508327655150550806639203478042127610092895164398760503165057085756649820195073115034475598087983767027083912095304351842850017410886544032086615211438777498189711602240280197493157041389859077933790204695140651238399918842466319381407693553042633157842494200059378287257627868551044720219669759163090799234225112454293357423054930232347636409332631980149249457141399098716625538162338142032176683206438554391963250026740526040768006870577590845007021454955338470836379459908877060910073703270412420199056217229456307157343700930047312458766965819502119258147208476650003009711043591472768262525429190961567278556123341779916872739328975943424090476411122667507919127877616332857341076687477904216280443747127604305899942105014685045718760130143245692356053984810102735019037678372815074494400449041570616986728337282371988468377252033176898392326653448779027232376768637347778932762018886097823095785324123698575894884143171826438328302282548107375841082634209317155955073418976627341271779026325318437305507540363952367443778106118797924734023880538756516642717376151092763822106407891570658143516926226456947749441031599163794042201985135774713437855182755708867740057818532908026990185236537335140956678413101038496325595915182169732623739166558861706032517453618811582239326855645886620697080867920692526172805995545890819758443638672881394551843362568544767237520193379915876276221673592454407858049604563107413306306777410388851026372983165934150434660595943963828601746788865876046011194934228199401608720594995792814631032112529466703315722422500794996035701040811899964087299377303613401867039690733050996733165483313199583823021766827713151820604837322608723701716228518260108106928033557392354193807257729629756300542710029150605811837141767027640484848384745399868109570871979324061245730485730168910979317572594517704457741414918216460888850185048639759398843978938595541098174183991368311819130923192525017864890679447072810397277336959676156392555455904074138433253301895973102217484953863503180180704669729622491007520967741758344580956492885516085718002335297768712729546133833270872257360716637890332002427142691155838104524670647206319878351584496600115446399595561030779305070138235443543796490582383215861817779690309842321803751326400614117813977962824994082402023814600350352415732862877676301265433255868244477459573075426398697321151911406514641214696551176429285586246993025641427631747152378585672637856179938877786634068344111873529131838503364154752853554923864618406244861732539224254553173028967850308797078276678500357552151566475201960918314322979684436786280273298970936584970440774590060170960446553469937181775283027421686373604431106913505367790737328714732809132292102721856454973255310635481015886820985302698138416221369421163025473046611119252724863587430123850947607170186559938646853059839995819174702541618202607571954472054595044268728694260415967478779673575114493816593821545580348945634054731575361518828670511533319779832237023753877818803709182660783414246698052980770051031033677489625566232969309558804140917623345959941012589480512872123863700133506069670212833296086282983118088881617669346721575400192364320906982135178679714628307430684680709923767319660932810310959123247755428080725808803210325915877411811578538884464360067766496144873617504093080337292301025741692230406111330212313926141866487760226840668241476190027608361122224445043950078926969449580393772548425150029708412290343520590276769014054796457415749551671049625782806223111774194542060760021317927754641280308305460792245358615325568866673600761748752789896991189948259708592061295877182069714271078348366208396377717669132547732309425477656688957778912177660034488576050081784269733501506139690100153950223493631820826393421300844712905729934973069684110286943731012152498243528527067440294631099407496180980650804544522811537589152842532488087472523512278047911829888339916213923220736758750234945182593124305557091812552360034041204235692665513556014124605996815075651329141239362110761148093862326484137968603410888077979268040254270397758411948106793382013624355243044604039791791760508367628962005167900513475378754523642652240302839594032448452623543824938206567290886047267287718434969436702688001958135475463116249630347890707338781604963585510786246762170934478409919577346973749070211679361392909736660701017056936089526002372373838468740392849257728179586261064984163928244536605915312459266203065178274341866340944819432530449337945298848595547536084680579620184450016674845950892712222909690673631885874145449794883987094740993172415423326244866192695145230039828845999915805565943511153329912954100418429561800721376261344091822297362877090133242083383716748761736753639727122883901436071262939153595213556020748972742029052023842180782272629603419846302420433819417329149043567093834702325697522399898643720275140922079891470035294712007918259243744474309577890586624634646175979021754599838852460937511168684474201133606322217181673242827599184167641719710953109243360793894421017155034889806047012234691089701832884367816684290469552416527353798378597282833485955935222318921328716130647900486113760836339025441039921602406762762117438792828057064220391257702482600948090195688007465243703595461023847068019084860197297878376733271436267269626840044997507653303300804303886015393282181918320663323226953828951117118512819098799615235195930967738453601548462029951925644537962873196260862768182719158090373170603457014135017756149012831122906236225994988611528394776717943460674200570703829071255198257054594740091724495397687993762184851235035878708237402155542414101008310691135056941987191905272350660842158864531964041786031753453455491856095297611743396487474242728710147502251802313756726085060596548568835380462676020084311859778573683895681966305413529624964594906877407722747951144833861005981265113764519768738885130101297171937009491966356788903580610993095574054622879846936046221760067501932498758392987115988474990986477328960604068891163962231277028912113345996436277237772969277264664131706990244199283660149661591296222201067076165547480470868717620974622146727334232594499725166096527367398525075442133111976988192562008766705178945106701135365337649761526753356250341732291464619878371822255867405428836503493578001159440301607008422575220973451288620988653452361614775988596862409746914811585782176794541211200286454731110676286978009634198720191679423168986757833494917551208590638400140184011806509047698460330610419261033984647458256841089288317896300955795191834941895829790611396779638855842251927312054807720038435605506743677636561616067646258779632359423433214693199202514776321416677101549803954399021065111595148906705509334740885526938302890970720266794854670114349996587071879866842003678020959401075737887868546991897053848518277969506095548210135396184304838681247405869095788501061581649783452904161320702119176031966059085614453093107969200737063880877715140869072474120790728534707640650547622592659990728691943274029653679993763944091221407994600051847342186792493709328212320289771987965271398184170233107405270768575175102700519682908410963451538910197481313715751824695632429969407592979562186712280752649710996791515055029140636435109768807259780584766092642697140257202143734632293768066006176029263544502507832815341591070990182592335478171040842666014301326790236553558986301254875699558089429409780619999808267721997107117114343592159001645116381743692841522132427496004591149274510896736980386637533964884493513802317776020000953360033218546562789959019209882798718804104610555674964728312905546349000796944148119900591342102878725136679492426669373201150940014656128648004486768452682905866591774747516492191055376891503531067742462810046355819647695923955338248104889137435715840104571627802770920394108508770740922219607490868642185573126877457513592278151590047353270803883547655264726041529449997578333350163637473025555589466646418949254474660986226525774328828383378983005782653318103193549572830747478250072134428267227024460967712258969423115353272284988770720503589878302041494467190879640917204746464576898793332747428260870369736708417966942305923974997177612643401503434349778941058141388140345422189580301726283948447293196706204808598893102302934785151980959482985649203178570868088849841037399387541233504919841326155009145353455994739999503503196179445215649907377256513983868882582538541905334286695386720582141845065770363009418757883354058934253793221453333844334109217639965561983478770439069006588268002370208162267080448550409061108544353023432512870351429470705130192937280792587496823899054457965375406394472276842546948403516327823378113774058767033425451278721423175551398907665809962300074300634444941364423196954381824534315239404533394061223430018460051450617522062007013745969601948954761162756502437553460752783212240769682858265497931095545143908374207173814488099900490583257375304584408882460115883462571912113206685881285397206747812206282258273260057311435790617049378824488924117598110179938012379165502211360963771824822106955941793874932520569480492217179950070369366096557958531789088246781730870606740098648077613806637678187587106389527162568230587770950200162290545392733128947504138922097812213109285328780767927375758173390641900763241994688791920655726569394098852241919811389324393826656989203418817618915364770654387670259339239701041677360883707963759033841214352522944616286489789597218872097350475960919007950539499659339092357572529591097682841543585861611386084763093463758405997637856757508173343684871081743675900900998753106818229073371979500026018537556899901574544887880315925343262155515940572082703443036409845485370479157577248726471283940007124548276646557208985335228208416081166766100062374384550361433484391278699379591046510379798271534647525052583957684911467828405931732643050207262065755839568431435885600790133493944604698735475137378739976973901998298216748058555137788528589450799768363961642558711100279713551535951677940998999736866264790435088984141802728016366585300357655871537011996338003251946189661043748484388126375955988371295072338765720701449256723701327805815402652655458969306709858875475495461908142540737023223676628126971912947744335042043073835752958150333281065015895332200666358683966304949600513521625799252600846310718414085204392779627365900434100600454232472279149344161609316156755196671816444886390846503849275682939363969182500181907102778567999862440782215742411242613686967457171131196752379013362326488346705490286513244061225939991854281370559988334473693929471572720032581311645534633037463597415200200057963346109527414806412137342044116952487765270360752211610681556232594218530503296501508061308557822416741476665682656635900278931210327259964523378060242906688899168595124440854540847410506686685161915292908756310968063424168908895483140523843839328469218111863414435696489757068881396317919297702967797229921446259933599639266529450101433260130247201886585938307661703820258998460991683953107342183637783753130944147565298319804925071734399652948456821674965952071132645424418611927435314866430614588645979127420426781523975039502338572896413632551320599358936133769621432365403859513250964334696364328767634511205094487004333209397340855178908903751001910514709932604814390004681023330265103837612917072310905315553799114461614425595335400687960867683476162120363131418765967593300422420309029855833103702334856756262702747001339839135697530425485644129022615310893668152272995236762315846690275994244522644025009054362121371098917613302743449595288531992667494466403804429575633368535293554419515700696942274480734623887889213252891953229255563262323459588086156919697631398597761420745154940666297436676798323823992785806088991404256988945163990407696877557745874089526723007999844951273085993160686004848332913252546544845193003181677656508547017593750742465697962617625771867801893336525442950099195693949540991527588687870647451818268500250977133476489316387107700627552112580919224650153339925231338676258143614470828325759895757561885671816742967794143756789053115849604847350609668798171249421410285577788765478769295893859499759722216371751913645451777451895002261595126720289260193009892260598883480233776927731240880153814559084556288002754069356518785777507236769742510492433192552136363522396131146047542308185639546434482121703817970191419000740718143003443751873579718570576910651541560116376297846326567056573295433818622034536166488136147806819375600881356169176651143397268482095773124660369045984622945144041038925842125408759696132909184796323684072442270030356016701504643478775508828217716587953498809639312072164081073181663030697457249022010214230449364238017762027797221937450110600881466753706011983768852267272126067371212859886215856097210604390256521285986962066485586957207333174252499588921566878544385615331555653720583390111158994954146075504816179385386897892607590853632856875096063626974123087890058969929044744276061468183212598621983289782369951488974052044279829785538963302736816306387256736294680389235714714252145139946774392820112047284331687884920618009502350154927135333523190350008412078343233382195310572131141449866623822781410397744004156117074132541737397241765771111069501903702959515075069088031931881125835493150815545393066012924847988358827505388545027271560356844961763249312724988478061668809327797678001729756296290328592938099733943949019190884639974630393222687916133648639679231776742477890097153491083539954166660956009060326682271907580908151606033821354028656916167800628420547217572806579331699669372222558297153330150314449214338943356098390321777361329375154216993406104998951534934776314122733651216796863924604854643080478592889437430533682810016721153413600180360766892650800548133724770585125518621273041806688513149241340154464136507210110011151651165792193230812397630914879645720233529560074989838754683097113564133292581840359014420916273240592582759974606505753490356753836979617208219815778084065528547071486148394218521875030755864021664526189318929695960416053602223336984823738899916454395070564943893734712458122268554830325748187942639792257549747450181664211190127772114891790125444413616808909388154645139170039657936710985573822422290900223221192543994852489339808684327776226031165864653133659020850628740690273912775279515015925863381733709255544298265027244493098534366075009892824447364527260224962531499405128533921285573190845036765021835916749731255918227589089399671901871959151238232090053006556574880258441192985297826408604916044289996072657534540017252438661529730026227468984598273458495848453921693156534384967956575466870802469488391104235615285888872715168694562332217283914214345768890906826089419505263050062188765174282993244439770430057771155475509409669666940977169081574062637122169176254470553607061691232086327988307369694476780537630647871460108676903467924278063252695961240552195234996024214455095658633608545900839095785830909581629154413881166631294445243351252267075021208488676583192743388723057809400007618786819865564894830607215860150214590101316116043005197676305913310257048760359808223611501298131617284407991293868738490596907048137907474946061057956713238404534145695818060549930976937560284478603832395532848205062473761809176469010076608772824658808212796210108486405424911684876802282171654977489756252493353116909177318547830553649712288761623762482510677970884827156970114794046807215223321865891635438976783982341288845821075318314579111298386692984752344471647349636520735081060474428581028988826972272288144422899635437064487101557413232823627382288824315772017783445634842026439226560789131857340074854586616832282281111472199208724648105520964250284907298724193625656612381709224464863223194017276612223634371134894251304290136281086432502815168552778290781747224344896157937876876351611911347123371313141126039638323382586125372940112676432073498208981962704401151370566881885049622580796115096035526960543926212763292442153296994820244189390234801836219141341202442331862971746634561664126023364098539819092717851666900384819024806840106905438430595670952072606207679128090256776352185446062076610036238902007702788746372238435861546460721567200833542183645172681844607471506511815700388327182633768579731364410348819325844275865090995704217586764220773336461845530687571687723436388577689004238347257866959387569921735034378000247039522489685934957911241123059723152403602141830137537091576402493952318224679576196981848869139769651132266082315081542080442155471237396311144383158795947263953971367741446382265846094748120669182617235997311074501892517055819571806774623571253206483793834551784392252380922120084942790490086698028430231955421949478609354440307444954978151283195650741015410412788589682915313628681304392434224708455250512942973626345519419808352662821300884732191430664758845529235240920507300457943555353164762415563100250044293422566263112706730264541692243630791749416902918590440808176795511573112936259335341946398356444858661627629257322267954127891208084066646250931655385636724153100945877321441447084523558517784324747982385543824434527935167061944716069787612901955904424987888273948143076390290795617081051317571575582296674850394778261004850871864954758869340150221272416673714392924289946906304220512975981539588028629424999058556158835480657539198590877212037087946581066635169396215531993699320717230566997400841900119003128842319763626979323458499444135536124836859573878633629651272555589139235135612656350178062228058439727914937059546502864679791232345953540176171581799984113994909076934256386225546524491660901335553784136382100141980067084499052077306077455396328834174693954305021885940755529957873496029421260295802592042881148539501632903072513096054052943514369916641670781807338339697956018704061776718357734948032373012851087497575651070707703368182495222971545929599907530836530773817593956617401238868339510145430254432725279296253953612347844713714811303507241111167085872996678402676016262671466696688106163768698499387869803300768911614820119378739291706885954944639806946504648704927392607479256388977574722074219409902180839163519803517685901118791479858801073767021208856226435146231056682576033481113770145053369944234181515662031429257857671170326099853770159994350686473183142336360249072873538576046154829061324048022356115738909267249736206293733397554171098081811223220395545605208856129435390534130996573607600099191026148297250004670358408745839921281239774740245479761665636580482431434378313633970824431775304764968668020897943791689799810940571142521007973123329121624200941615902597810706055600796402102549301362572754428147816155872702720498405092353984850817724970176919088503009473181686167884490136693545662221251889067400234321540491834188256850884407759108824104888148093497231784013111839190317703017790755173850467257487604086335509017815622526325402555332968479720032976037936530624912111218329954834028299618396088194283501982306267893615199603116811456905506027985857238986527565351624452507957742763377631537802238614683785153963652873027311827635596361727902127108035475459002157149689764478680135594443160564403450317983883782968754490701927617900815671996373360476717778516481764720583157913542728060285587005358413517578681085885415753374620224073810574301634867917555035078534644288706874254371637660195616851319540433747252131991084866611517017109043040454828234659630072367825434617085425552090770701227459110633759280152292512952431855144216926134091517338198362496418393599381172509565793782951036872675782601653215241742186706928370235766041972694596085686130051146440211713126076533368263261855185342309509156213022664439558051541454564095781168444411616442782129946509795402020384637938994737311046639800329983457038210699231361442724316510445707617507755212584655801595820692439454395152894739249656089796525964802155166058054468484200313109036389624955465564808358439155914637094384555357977766905539699758207719728677436542424074285749878224814615819475047788569166169924235516971572665340443328007101838973169565914506946879766333050526718041457967345205346428273237008582891899461884722582444813234596241769801473517548364260154859592412025414788345862618671339095348340948554408126804270643027134384163345180874171277695408466638087707743993469532397719544238049965881011222968398315674222656398042540125965647958055944361570545060280584611090380680170910220443128100493318143244718574024391014654583524891348436551083397228966103742510586000792558062580562469753551955972647661929474315323134555716692016937014254146388689690744820240082548069677182315750478479349928452956339693297398458020323787500593130205381268721584661947225552542772541951207919371984595514823574453282067545718280565376623365205493095148901638855051552744781472090823727098245606695202423708188723664550026145182967115849590080682844988633769928211086912621444752402613623738434675261025690359805904654944792243878193210159147879379584266505148391849920847710341077424708212942470417800445385754678086172011873880691549803505034066997246524685377028037774131350076399174485584130253603387538978250015230380872539631415784943319956724049764798003847844726950101620621134475670098054555203832690504372019092881310493429069935822309925168919118829603899645006746605784880684995552934875562360897285337513185744516501735211647449883878190497459351127989145909058353808752575610497923307052904743844796481768790369995964669176831794445046801170547535169822159731165487174522262759607617183493519028582646670437935884861330351267662621557656428892014542532296394757660723955942634580104042951662033379892651850883328602236829468592115654667392686230690252409215381239876930977356753709846233653638145104100887317293115835956491591382257157729018519509578613139252015322594740937953481358035274382728210191729827440046608935279375768112228881992763476263731119880509052714545591073372388202879814507448508830084902405687873120197282858509738690312720835521059588352566083802556150057476484543568943698565710638977977194767513954713957548009698240343721547945931717817603717929459261332467980930929711858708987401109517244844962627983673900275608660354264355348982857665047532258900192210041733037826961777103851373944925337476375441989909497171720251533132568105830397394802428326643724328275006637895232853662330297046223895517868188102506749115521495308562817813747391586429451620415460594873174622837331402913051585195360761451184290702036475662946075112894684185067001764060931513959307240329048037970372385519245525346068030498030925570996501693603804431257107965780403511972750265095519081788526214673508596305418271897394644445770340509306984025441043545122782202089791793975234241840961569663864701812485270464474439466551404733709561206904367152915045280173465372065736697324059840625720083230745713316898741454840211354858899464917140146630932148844236308928847939242383893460079352433137078418446773585113174591399266359912300852926186151896298649086989226514124536344908259959705816378109767348756812979143162118566019908591998116377096488570240822657316312406274943878222092542618070164466302493139045826673627141810458021911710959103726704537115732286048589420995726848673322469427238587585519103471858959227442913850812390004317411725685772448193086509633476305057003927645624051863328604735465642296353702674868245985246340509726947220291285567247848797783436203489724840264848013769178428279016914991660074081616236161602426887530434605211306631467504572749874050045063415064603011638661585827929690453631576776197086850098498594872056830940338713107483097227531677738957904992669409803025530989126655793617629663063020306112568283604731784523815480527117793431990522034249982046541916435794253947351690311716864887119296756766684066680169002684519925777633054925622763729826038608550438688390198246965271881396198192423248362108226942150734373529719544767096988720952118877692476189865074575837334765147634829639860011881623232553564651675274177563093077846598536881966128388062979943989808304794832596676192930908011850260102641648300513837597057566537735519393825554619585096858355005095643459314414743165425678096085245861887434559730353720286743780892218708766301413808224619021847933868130967268539894378300733130289602406592989865426555493612025289306651184789661496396881650996788433778019934106414984824973860854353691434161905734308766278879585160517137706363622501569400351358780984960343211909473173803076925721500758394854686207921204930198944262829492881963400437371230428499787825797525682489485918579743253658664541931469355120191315992934059258315179628338527618749285408259841857025132803929867586176190595761331403508042547174259908244934015047089144338450254460183641387044142714817210411029040488157191175155118986586782491252133854599329199292760539558657640023802545884124300939648812647111279278412845272147491863685940315258415327099148581935384843827104484122525629121301448423471201262172809414584958389462000091114011186459744760669374614320865675377571257942611612013898860617408587048829782576825622564742778448767399571131981722131613713966437665612886980369348987804040349690093715393711409010002650425988657574925024479844976798195010749901492097464179178786873913157658805444000181359194321524258468803778512674700759501036631221468218390974268658383237190174876062832348742675276468666687149456586538824080994027343410605901102826129680629346840071011424219465934854232918689239483607125009550841624414795181265259191019171331408363308559435309914548363472364429312747763178889080453515461537514988731028168306609815004267865530025882048876429990037860493607233457857586578137132798507000103665475615644876090537147256907111324628790799840464390044880904288865629804953805042837552080245357828865737317939770086430444750323644562569112234270382877164774062627583593637481070107599040471198248801301671643294103712968703938227067060047100557668364141399192018621102033164936149419303910374844619032946442667042812283617111361042801220517373243144998595890078370702119882967636142369630940886771150541312957359483436586430540827375884074739125741247330899942123546904417001919000036784088736202435491333844622250550618995353456347830845608455403852442146817291041125405350743232430922366861484468960233830144731896434949319441004880413002671180525841499394434179383818141428426545882242048608038286591321766901825616742060167482816379834507152989360988172715410528454097681264632374893756450145800746233703291488006208552172896330481052508688968975264258847878595026725926943513476166189520987657629432019821212405148334125343341369493001156527135021596053470033366868959237837178479657791124772195658382444683112527174887772890030164239897308670505514396645807728417278666978866299490624356039208816748136229085995342286107433906939649519662518256835601851182061788816422132778353875739157009553382926326451856940467499653831791217609907874926663748388323166453472412247511774707569726303334206931621598497289894431567099397131782372175151592934748756534338481889190383338410159326252347546966276160193711145167776230324420815975942341115314514331549567600895991100759371984081739818521054364380759862791017684700378071148622114145743983095716875082639046963275440533204274546538742242973605646125815432417238004837651354994382567402103435907318889350353077467263225716530527409278836579026544803580297001461660213675604198458132006550269776604841736818861317978388177232202836753412194883101208460586192031200519322758374201768745124229093869576690129468859713613485585344649822045476388118335106080858078629655537071244906903662761858176193112609984786343206134238356091371980263881495610851812028592388344034109286668666754227215828391737335390059231164843334231707988869255094425984592684681935416045320971257992780057267838913482702434239301081083970649103064575190162003435446784154098288149033356469632813585788493029588702745402100436614436176547042213683818090313232490303476491909969369439402624196229989740362844488508144608221388325075534778489930193659677856304941824986652892511194830774837555493101106046092502909379744972543270048328162998013407800819958621697345135460354978259429409573713163266747170218383962528568793881356481060998925841973019589392220905539368370130822472818764157146321196764226799285082653693725141274302921174261129590676509871189164482955204188938783962596715382058965478746432833461250620020025824473274407114963594847492068962892865925527393805507517961565399050729027337626126811266769413282445304694816534665434792428873689349809891484021077542398840671906443558133166581398973650209609419607708760331058070363425430808930990543838988379517886455764280323713287720857946164694009074682030894033514374443740667247138583482473260449818250611565598095585272318928315141415118481145698547524693162848929738128169738901782513783268358291819524003241095267232187034651488091199837851149647660775244221166347162635364303114738665682076545114445232630478193585499716402318554318526382410159635262645252310365757829201429133422666653689623693221624476615947251886607361495540931761337723170962564006547791314046063357728600436414512260602061252050108732412252952437983458092560102885459167295785064847058990689815034564146095176821629313839470108173220255108254152227726007657445241752715793279246931211529755352056291264716851907158409939953902549654144736608962157278599873757255756541423046337052395395683571200260259807665707472670700738330157879208753233904874993563044046322858377077001852706541914060227973259267806634199831108425006888490538182197165653949346339883619258404074501734843864746588357256451128148462797231811228728119421695574424804068029268688302746756817261055985630664006538580731906274224055874600945057146199426341816699347793004799745754757737480521934066063791295551413834474524310891807427011327080690109855492818168139241890504511890487956381062340236505875359078247476445918533529738388381765851049167987657720155109745105297852039302048668942494440773322359064417566791860395880518890178387205406855224112721012249370718492364339013594850764948774804336619768955629240473400557366562365490786595519235575575065076415957801365528400072545577914958775648362704772086457807495733841043336613298449316966494977976730346283641909188226062612002393695833605490392738565618274615757477891042480570157338076131529179377181721767618352320907030654337514072817212756093871531058671493098134165325350144075719795504508966221991080368990611308783370518711933777539279732247901095823086221651794370670202043560051359243744650194960898406524061309494493324719853318286911125568702989034422403697728982002311611804889457754423414395770859564006328598507341259943925829269951478558542310616740276136010567775691521471673853594400306922380976864505733085176688019327283277142943135341746597843562041964887701836169593922577658652417440827024955217197635133992186079330154626585439995714228054391861706673835954557607133392047128518239566482050550128174840301983857829349599917526490820908399801263274205286465874310811531567438134670237515421817100432895715855764735329608448654692066726181609039545292381903611273335897430418087130024590965904485358651068685771729307022453767957110568839343074543857372748513200918422788833943881135558034417487802183151731530171966677564268202331048769754647171302749789478834785002263361723018281635804428084747064657029383096441839389197942628635784616146553726454493487311543105560457758209408343375377034916933214247182833675199712319406187883927105358698704455576598885715087251240015557871048741700332361062137865795184305389170360179872089787497652778931780484998153038250679931244622064399013200819072702245658931284878214399466463057815741961449766565632338790364027756107207160883682431669996747948145075846078135366411770678446310543886503221569948688235258338338273352263981606743956315186094703184852464539413104613998745342727397262439557872067571752920491838424549104364349072966755425872112054831075696267877182804573657927641751486651982683304621317531639333720009574243062500476085222217987278306807383139388271047726636142233178095617301384346837221932804609504754604946247745747553762382543379052892839324209385849003356702611529158717378971095289778511378374367709112115769671205941677754091505617673805902313613481197784084939257156114253792111378932691734870410195076991270334933917658511476772095223496008804110722394168582574178025778005031932215335871142549600491384287388840617289973377962680153304648568676088407317343879558439307704914652469345367152929563647947183491740238050222444878864974456968963881875878057968190012636261001758368717009179903875750732465701087231302993546624311745154166529214242393212751192704298570975012294381920719758846524254462940277617366247621641637462292359049478835176024536062778456412446093003507326437427607548841088808111983103185304530722934416582818194352191086952614391505218936476595857932050402144156196218275381111638549832833846860390878568658298183865725219695268415885703804701365318374192597834743783454574463445736481193133070262364957749128445015337413598671377261306340023926339719854330369898354295154251549639149804992822337119600258841470391323212977406773561561536581227261495156874322853784946727331115525242252299097029020081512050470466523401285514916208610406649494455336119711101803879410053049053428599839000477375006154489213527771542177175656710280345309115643236852651424319201847956512284687960115717882303935372733745956215068137914924474137300835134520484795437429596634524006014404566483965799611241042840468056347053391148419767728801929342955208223780095282134350890460675818584054199508210583621783446844530536772602914624806784968776265072683448224161720082558724543086576139159165990445234100712782549557028773099520830555827246123318475567502985447221823617483836659930057916346934275072354096021096109814738119450627734795004404482924817993586181761672547981566436708572426962798537870266151223715927288114427312385330297349396410328974999080636224911776007660269227697902754307683678056148678587893927745379774176844924527107251673823002978065870938242662234609855591902810106820169173888833327770973933856010072366296380507246604075066398430926415860286213414432532163050203932197002417140379383375978922163434984994696426996288652497100888588073808388910274867852715929704873338854368741877903828514390769312089560546247060516260364843907353272410628505004168684951914144186769947895619559315118861255362914865381341715771248681234099783537766960754889413406540050877996636721931030393749427423142668748649989780213605317258111976440970840053399458737108028370947511238674491587874971867283951611932913162046642262527221760154043247496607037971623244287481615955487683387342004829014525204364586275990729236203187763736861873890945182495400851493588859571281463341881686398674181928795475491902627624263448389287502704631983840739272895234210406279456067740162263225199339645688087019162337696104277450972073695128257637465086293205911211160679399253208833770167618136983238265722822883531972571775303652306826168384671088502045990533544724757931202664633186798398569434880984417045514141464722045613466697993512231684187179890594450158656471940533918613990226380167618363976382917485419150365058852309433241992094583919425890353294502534741707520534911525535366717970921978517321503930361762010526329996308611566703606106355525717674992323000690461314019517370319045654265431808998392002269470377754249578055585228402503711103263559671075194584312837516929919578635862718752664802830871991365358451287211257932178128056437549011225989619935497304083237835683258594394425888780882069505749126565554861321636509341920317822867185819898346871103937721893408335711983494922676180868211788943399154323757946756369798616481547223377785768692655761035934566578509322085958573268780934222964061576930583362616976930253483591075671235167312618461493613052969245000753729241457819857228657478104560722300996508013782962739898897636413287112850712850982757171837469198954172389954461482195793618374662751986780827329132570293836438919891688798376212970215562468055786633019491974088337051470514957280701301155799444138829055327202044455510973383318176093976076271202938963526523931225650857419903128069456193919303724351743794783234036962323096167847062347561122644735345971662059637979197527928055031502922764423569861525221982747704028229827629444155037177493728397276941123163207247553286405764811797119060048351789548343306864379594511353323410819021549859280634952334640551153478697948643387658067829352191341761771510270600577382634411481456781379602613569213493131269080326612629107869399258868585165345136033978986861161195747837288299795185214647164227652650299005340579162614684368469272337945383079417610189807091324238431146062258858021853699561037160904170910345887082203555680862357740078662720519941627085164043289305372208370527151307556334343072312114746487545122233130849953596951751645122666649758257314215830996286427339282932899468296361813793774945723471416887931472276400540282653487613924379626537689556607407900801800022221325038130011966934188030146037489114363536167745087850627473231347632915857288030346727203876531121303764293077973616997110391740349209596664475150823432707890716673963700784862883622907992594799995240912470472402317771069571959019778202261940640094573632782041520525447216181841477530011053258155516671975400257462868359314686742724040565583107957651989005240979634001097762639928810170683081246250293869889376327886063047683700444617149393453118346679207570747620529920609334275188673837784762514695590737707838396303063211146798885995135685391967156567203524564160838035250928184392136962423478375780049796089302925061257056183959881429660505991065473131758470203119782866594805436218977096722993914145372668215246913361480104887786188332921808688131269508583356280072939970952168447721449723387861410894318963237424634823200458573041845028875537597838513789241642635759530840284282441632620901279179787034679376128418051210252808521776487525737369533437188519866878947623546092317501871272473977065469034996789868957129782006878705581610583580471892184602707662181643331711252240259911809292495220913422409174770789788949841856096328734686976371696848072530703749644740099020070669523356104806490108408428242102793393459394311483122693838153332591893988287345923669033486421783620407081767889460788236340804923595411699418013636329521253479068737578056519428821940793863005358206899474625660958512645844688135767881133011842907246124668114280509149631029801689159541032169801878409007656170851998297546725483201928134430134378080987026840095582422454073313048551393820252757293362762424306541158469343260618455680149983526625283545376799459641934822902081499819928258060827377582443773969060456201552310182885411225428675560987113815958411227053203934338840070814114934763238500126392091936806194064138972852148596828133838698329618723127512534950758320702794313880436645707634630357518854152688413465582616852374568655946329538552845339077287919734282525378198880310563782660374684351860535402580117583798688427881625357053736569469854908640827773498996245996615708219191364199256041374909991303943384447237826721427342086580709281491874754110183457273483588527302971421084812934174888931446025249775665450404834890932363490089282216896073993278105378408460957600541246444331736383493745696577492183964643417575301035231489979438187018866444687248783927096614433913698444874974351707192956329106022571906752188374619122645696095821772488804836451890745615175781249442872486022481733435256391944390271479617089455047195963831013707042206145133548278129105613886915770194657753225597573164467759613214929547030837589707897767211574393867184412103019618181257420071621293186551526263481377150084176217318129191283286285137027745056288580103160082311800858253553474585341240263846200874543134526938111653811020303902422898478630690348617317039187779150256847198883839314720637486650669005374895888490533564224228544073533532143521253226245151607799372781045605481450218463814404816236734464995289424002819259637287809172945346268865119194114377270189912622217681086999388697737400110755632455647604140421853274456946753823555428538244048906768047652596045362017673926553501741227371810037974380998221038730580591793319846723362941035278264807191714360559717082535709121596647301999236582731530189432027597475237992256061538440476413182977735506733886830181524262385041617795787784080993495870118463505080812819408294201030257093006615604551178592528379422915536976755924273698308130001348043587854177765204767533481407404708051572060883722950671388927578267325594143652248181488391933147715788572072337831084924560729175931023157792615540563964944058552128781485136638956916779382410705280170012966082599905633021795854615935319709048102739426173836932341390080528012123525064974198740598937250644629262645549756480379356195264875371250354432226889263254918935570010468585867667053943924389819646066607190919367000674874254283446508176130628905107696881573754648941559395593369646994106951251541905941580845537335468275447922504969018543302160514913306565305473326160966352995465015192104264558102589273773485534578001408946691107628526645850927143697802033515374530476218906617817736693496328986313327856487256319911383530378052805777149278402472451507941792159705792977535783124284775690000587907151786461991045944176991037267040653117728083209075174608086044028652780872946141560733454620154694430376814516260150175464425977437287623314941063432971397972773814702727906160472769293244015230023739142749328096091774178832832338521560604979528892217194332547105986168035918131309643026528629436654284642878780162470586488092930361554731886141117220538696206961648498131693432481326627454105543959437927923671903037536020149472064268791413809816076941229699183601017826304582876797280379475657572811117877952654571271687122985089867482560729684209522146060151082303886172359775704237015792138863390953706275918803514468976864073147173581517919133193046424572854729442662260441293712724137197955152660959596184897943854362501698802886422881518041109177169125271242641058516849391550981661869025743585710914258296572056165984149971362001902647934153347214950781315718006605430994129211805969177316609512009262901791566052464426604276056224483644213137606952402248802398587166623926253881942439160479782674426952424480724518380576477374401987114096030534186900713391991078398954862050605866461959587026081567234999669740614928218279958323857249403735408143654747846727663114012117067601629288779261690976352397283947220175354608728245964038422235157157927854724300699217241710427049765742391754344206487927227126232598550162060845796448194392014526688441983847273860292449907239543324192805118965145975563213236643573763843397884558342106318873129568169195475374075161020976583186023924393670998177387158109007279120245603330423946891188591638962748056219672836544413853268570777463960564633439981107107880111073597197537084775205150711360174644895308759783976285869065821249756858026560236785983126323122947664459457673454710635443986931265235075807725438852992699239403410043695390363614876124649567799464850191421369695378147255799727050777505458610991190293347522377938372166723205089734035894496201175857782399793336536328835712826469371452610524852246496693170274606490523577038094743684619080514541281738342524903422723958090253426863538458440838788163741454141144267936195404462315619980652327544627891410601103605881533624947821233046978481484453674110480088494602962608422338086461012632758162476764950688491257632057251452127931882646268919399111253765891267524211858014666409394476654334279916034965740311314047966302799866421567386066974078926143982900631181471527098633810403540465616515118949107258039396313165002222095965053983677583464906634429986444155844641673912194859006136144165279175096114082304677085176798090603781596624678898565797326025553563456696716968588241246653613474083445018143765630618273705223440020973411586248098022228901300427211144563432991984658751859335974940362161772539512785273747503811839841580659189114671066983695723557068015201329357498028860019786413039177102641656082465125123723330415374849769996499996569988040069664152189857425515427077588303380678818334430905439907491678926352531245599192349335173686919061500735342459620314301912564196648112128344331995484797951702436705571755230178814157791926243007756828361234889112039139164494007598097591447655545440793524629041662555720054720097647520006598632228324611088214006931727130280526958985605131750980126211571568992236032974123260004579098133506592710421493109052486800964116655464590811503241901989509323070710006528915393507961132481336311603447062971643531573952493913700510729036058582949298724403218385356847694713379344312566131849273534752361917895162089068615776027186194484166299896003709957267378534382619569386331907759622603319161018991180953665229263071366352406598489178978721026630524487714674657463084949047847158875906110716063940389651473586169920525919539975169325190879708226722398417412485606878571952249346389779306233183115020565551072011951824394706099514769122943903801002896165573835361283403033968979804718075843224849105338183183160190921886438198439830053939728844949390924744737004395320713357375788508398258585886787873296715314963406251553249498894694360490145005097246781615445868635365539643918485394377688137908171505983423294719798051801784589575954614073673477563538500747529021143540147591304658695362387476490276153799509844104888851186537057527086987792746313740047118325147858136536168762537082773512491979223737912539367270887778576778682256746588919359500845129847776911319707702200553783023732840770464932798355945219830994427033161728409647246300897198254654287368705497471769564076687133223286744936387990589969175567120791232200616281422925692445716695572506153031294489723423013352408831750364457752733596887895169092355697839646153138051855917437188709076324858754395128568710481344617743063007169105630189358269142254674483236520264071104447057681892506162741024727019033778380073621425993189389362446982396783665438096298732684484749035264342195086444393398308303602247923048745332431757176616060752673759731404149466468458580164784670452826544795423612233467973768044220143009725197732917662829338183151821608039263723918755699028126408268705937986191047364745375379845187420990200408075038416975720752749371561267337885564381503943753951026493666700434167758690337628045928191284822278816210048776962518436058827811487794055945997419062918538654835446860481685368452465114994522468594498702363953122321047482924008305085738537357959248665380958971344352541116632175785488853924722897127418919830729031214209221979116331646877742523145254757543269798314991332308148839610278617462313075139422959902347928327313910934682259458938203359088081797019641998380897497699613551255181568870923464396678676755540887846833386682383060804381429333502648444179723213288012991277245347942008320103874166785756792303555048209138036537131315768152778924027867910235622580828778583766621369458508064850026715400058741131016829627991295819247361152831501535473060357988234010420857362024465783672229279042439770713505858761197623307797567509231819815969980685076629719765264167384650098872437013599034226930313131572298991355016089729324151112750450624837622419403922360216028900668507248650166771634108851196120476157166602089055376533413352342998777777903515675542752439901473545972932166201560792474226734482431319155278332159246875249536120397484722578666200119960242435456479137039503581622165569804423529185021702776863726839312040896524874899010533820684916029449316487008597118301002724721457770144760160492198010787352528065036246581198118734461475337363883450975983061540236837415423810941536329640297420852510700420944211090035884028610722883484303484702058879938357582278872343412668815419563021544504424935076824379490819096871217115359715354000649308326717943173299738113946063367691960926034611503212238400365875706911471569617381853857088611004572730804838954886373043345036959801736875668021329578164585449969767584113016925586466962120009651122821934119070204921037505200690681033004611988658513410760722100785307193044678574741137270330858824528945377486741657609570060498200518692844972847630257351261047199899687535775596898937184719753753220120371269788680982936970862247128786935728718595766469955910852651440955112088273732377421474563991276461698735538131655831062912970335491782941171538402178264966392513310393043300131439162674070604084491066877167171427736255084718739784943638931955734361786714054854889917621013156771940995651552753221609504594294049216257457037146403883939372365392727960115302303411932087916039843149874919964502150937031005141800497825285278455522140521748396577012091494048873565437853081163008206763394501023371138459029565020571908885670890795924461299413273105205389341819411159197783756063329448451020966760615865223376083673253565361983488779593055182016012677098671103744070243087822658740635002012642176673653383117421412262003245093227458953337800797591366974998998599616371836023582353050344301612186527025197870515862444570508896430469041584600318345603000536576688980601846932927273632161983359283497012042719734150976875595294004720655042185368223248602335627032483585786404792826776547809976556874550554921372166970106454372095804943272959018479494423020535715408818200153640833261420386312686759689926080861410735290279807527440411941475450889336933820450766406985742885254921746225765172859948027222975874309713904338069719567562372404383453635321391444729446106386608279269941659301106042144156944322582090835361203945972124016439104994706969632958973554884233160173228535988683032602530624192545363689071503834653137012209434008167776878641681667503862093747715930327086747268490986373855957509957446966355383545608973021722284865559115090425552836247262765686146674946125210326625951245072060942140292800560895379978333929962190749629523719904555199092581972565077987521586673960069430904793948092246607301997810495321777446680916375921184511684215177795118944520366558231246578968730529359490872447671878901536958579961709273628377193847609699713244067970446625155128888557557478589299276177682344302793320498381450470721740936931060018384625204779427336465097403770209589833927475363519166190095687056677372298076353492612675675468539416921369579194592864145166770576543322362549088598812984089613123810200064125314517532339686208623211801718094086609768103033214202361261838072793656802006578871900553452600342634074131104187403102070632490548573465197283307410040508121598252330315376233022812718709641986156621886086849928796287829460304790209450043319829287890437760631726313293474912222033942080319030526891479883581791465462893880661714752473871936809392730513635681182465070449569145491240711562371376874950006096694271872957784068052739196110352422099735185489187894468016396403339068719859617083936844852273883214557881307910174329917678902304265132829517368822465431082194085413388233621029058697050103037914102010249534531479290776215600023642638177894019413688487179198617269658024733851804866283059187752145736363961135777093842717228245418181323931366610751870495241701402472584736947380541492532894804924299078977472405626736370500422475894622910779335772878016816171040713772176961015527997261535516836721355198082396653885046942763440154311328840718726798627920948811860070859657895120853496172568053585723296104683540353282849832106160077894078611137341079933535635335272627036260965333871484686638595795096816208940872044126676560514305317114093263727627361861713902353214711082593560602093594981993927671892044933470725108265416089739994568303030037182464402981754078636456211667146937088418978532450476109254494736605476943393998461164034035928730451948899102860014859259941618533341737732015856857753568506890798584597448688172745748300813564687575580592691037745860615367855959583046432608148627638300109701804759453224416826284796496818384544043847573076507810560535437637899503568509935966954674411763963539767016983513119251798942273726871226031804458872553029174642357373968506520696269797821321047748225172537548978603633312814894499969332033621043573247367774159587282310722154672124160561973934021177525875573921487814137953045786046116350539739470585697681227438352133460463742741091812983547378778845726701899905252083146029733589188443423139799568604885441564534260529220988761774040850490245480663669259630290019716982963520957626767278679398745235773410757420646337340818286947222652014423341326401284211850262607308603413994505221623642374223780459083959339755346348712983132939822749799701647660704091925100902744025627801395758957738396245288498040219066147202082469848921766935971021747395497088963207740876386428514472569103722526229009869528894134170113614361952324101863679989277929833556219497885728782418365833143566038543719412229997691396668936920178337499212691462440352545543391051665059940560140251230775696121104905723895840206802870403607468256639441198162308548895800126138379468041573338223836528348939741754457062675608907363695034456614652556280783099669835293795095593060863694081710725307148291888577658069062556300379383360760836859905945694416448473134046552223073862098863120091532001322083194507754209785980046501449526421136697717019213569061960171698699694856806053367485026266143488870753001086997570683260531485247222706825806082499172214252030484438295461282858408249657585586507258819089436762016243095985318756413090339599885369490813828929068182019300351776081107949295303103219860105290645838240967904720818036800437606466705689123233640657892136611271955340163947812223701738413262113684699875777331515724973136002321682939395650437251018154821174852209593176500625429472000169191151293409591021661997579549914179536639797743448483311204013279909503806084566292590079142360208233866958859525019007619373986444452969964724259040257490148766976500947679020777027128847716409915010820276556190264421760677701851923284629281364313654676630699849440756478378887720800956431927250129214144284398144581976866727919283385597937146949017217114089240414359384913645618393092302811698957450362806210901368833167189047807218762959328635883252313388977514840530618715499150127166139342841530693187512552164842870977012013577818894530053909262097303111244156175182644073202980529342540682505298184419802382686961651862802704108219362330922046601630091883855971093453057187885635140914319109811279320636076500496012183845246716093060826641221613503740903785943045236823197674190129062647510388523804270360450803748502388538280049305416758219388498312805274923984500701410389092500385578511317380037855608480638647313160905311917076201290361746354943169853942627292542573134711015582663474518621032815433239316477319327675509141878061377963662035930506631143411564218361053904415783968076939200628905516436447435507396090469952988937044246992136242486438481075853204790339537697027447479209565414964224602852781972275901574564032300880247262716216030615248611692380550408356377932049616378040129939341968096070550858595529066750539597261519596361083516043724833330839808174925282721448640340499267171154364309872153733041026878272820847710914172470048412667729046280905872121322322753257844873767479231343046876732515557066542338277736891418524842982052257295557002820159769144227678265399081057070699689063459298165185563658793128694021025978071491011056706867116981457941922689027554324813190578136363206683923393595887585819038843007001184746362160507732657388787669551465326771602705345843103543302550881277453537505227372049057773575044695851440186397780315697403279246404663856748749093226471528408509561731834470434974409418512358281007501188549879776610805651861075111636292564975188673658392262659149960987229440609420781395686240053007401367922154138310632192680581034495634098311325451641558467089905300465429242370879644754044677046765899268730438352162191488725197861936769361249984224124649472864113710614796037505436802616977783655509264520667111325108587041557282512393559921758750858642880559767914618111526940466020390017853340888052163393987138240275532721598887892030144497515803036497201344221446212206318760544039837911432646959697204794317867630922425949556597289569286635191428454764658028101504547922316877655488761903887085503177357341799367616777057603531233436752381059779290119397851626983036763025905056594079216999511540591207841846768641029983053666588700446946515620058044295884471622180641123362397893816663392564944017099841019767135071673010851016536668701832340025203858750031251041537586674215507315815159729476138760224380485719640576161505564121026733608178349375362138845401838302382685642518361346471085160345104020970558883312974648274573505217754466580919306200687335669217027414047240208697383197233767022184358418247358256410633811650689383720457000023722814588442250213814609724045801775428155191535331511663267743740925829248538580384666335389350316948285963495638302291572675942974711471686650765710429739139830412522747428267275380804023610427611338791822840107973474750023516763180647952778668617531763021133259178035187851603487891386826323517499531050654940015832340711963907814967820545333598915979937660984932244370193712670968113189358470475957551928735158958646331507683169958290276575004216344716733969697914755711633069632377273160600325960887846934699074777247656470094914471660663901856791651602901094967155727511997483973814606936714653048119271725325275825021697907249054586722779787378262230344948243436102037079102145423108490150260595844332737341504090689381226215026997648125707263015103026981647680603910728303958292604917554382639904744095962875460231081735124519822911443154358280507393488980135162189387248355818346752538528183024702492663296317847597121194858479718877292281280083739269560679670315863895177161746371861958729549644146574475233322809178934785818054206451028464121949153803137053480147861228871707452110043668153879830478677343361994253018644487066749268610890345219600305777784837014884249612320095161930728929091787458371124155875605021423552908426994394486625838643715136388946860556613844592280491091282655714289123193994603079897473875309938416982133611887816016312764144464475481296469021801055777560856511648235803839846828172926588434336057632012365173442000103777846741017551850392188721342247859169891649142728302514860044050160443765141429794515456088507175806629566793831679048443784252867199462800830419123627000854520538872736213671570239960403699759199845694293274723597895726419176071398366287333185739578325101505432968694778845129961353811685915741804383977666450582195077391558035630623392342339931349646990814635951628823764406824690083322514494096045250523096207773569459199005562974149501840949793840745955954175628792671280036519325705200579408706647059897707644782249571648007882977535884850882740415970851039727337667891817258804549796492976672838241036217607888629544477267990724864303375777771178708655926947042135856153283201697940301453521924066212050927079938229626861022363100375635619018797389140768682947658627696597308412295829614583379222420228356841649933970406792770639679728140272750193556707184966596247937733402643058669420665780926827152248385774395176236846558028313720687121133074210557979052047316540979382519260164476295356554132225778608860080836243048459287284515908671807121427798318997793179486972680237414687240847918479268542459769163887958382490124387746147900477430595680402526720264487206799524244192209825384888568182890043371057176804245738278823117242449875055773875633481318479712350569620063669573791814839756518893609215872531765439384438358167915678830817523804144359168322627648133066962905781838973036224658032390843410579397691289453682080033705418421154590087391414902616685939047932131239126862717794754748718942238537592248708194617187844754782678644236154867558194052417343708977399555291655843007721845927027204393193505151164687556775303928630587116009207917318016724579726620770190553897619241842803057702718984813043295864833838647743816715512126152446486072343594787818434968054032036813976550689040369716442542186848783250101211283739617943815124098767485586984710724307441190019228371202327951830205524092808969431867673879773442723725472760974301638846423911474917754727847277631259845657996985143369486278851472446470969384520236699997012991187018913113289364411764876731833934037554383952393118381132637248304393974033735066406267588675320748404134974171373635231109714094059950054355854563801313828812340060515935052178055201987213058524644647105301009329167266743876963293463374379705936111677058088959196566199128641822472767066081815789739118655937439327721052438405105685710050814735856290121761721430736002996222669634536852820621498773165450756976076096987375682633985636501277117869414989212119850467828619482125189289659204396354117272306541071368245863170714384176613429568608145670852760881549071379702758333358183864337718505833214927073724085510167884867110153524171465305451499345592252087803973763336266808846376117179095942516059767605281864819736641681668042147420639125927448883621921013688719459273528142078092304911363145071157189609987693193965506996402230926599708322016824182114432204446111762829318328465020991437516208401988292341370124069890299229666190023397773048113673022067148006283247093388946444924773513803457555876901108168117353075418407011434986355353159667474557999323021551825063505892188468972274345175916612845902336645531253170887054111524521527245390131886454924969611419617769204419012794322234607809993035260311179525097007769547883143313179411677828930108079279288859669706226781983749437186831075638777975822861244867618837099145131250487121785499001981618461213183290281831685808661315797730473915443829257890224356389094363788689208064341011815726704943236081622376161592519985429324285029370151957061751720021096126427542418722785049613164771514026336341061304781149928502248628062067945579378198577802899177912425859250594931629443066235907380686305452509662259404599028922871209334195133565078793656139949648696090935633404739541775558256927639052646220455498251371563128766924189899877799012831422190887849906978914446805478303677792634885738517150070125228778482876086968601408016492907502478543303571355951313830089408534422496434446738830136376939717219564910879413136499998682068633067545920152927959444470871318586232204032630575861048267864284912648166090810645526129109116725213642300222933707117930450181905493447719789018453369346991578892481793017463891927911011432106462875587576625111030366252288815080580131964186823613225252454504760439424592497820268280762845919161660559024420756645802164432928227471667221784753402138859126114791617700586460197634678926881419539922953910209368993748132325128288207733277825162194376795537299529318217448827534943490950361739965668282842749034335570436284605441397089464547076415368223220323834120654805975797938871371743289862250723571807760641615335790240686123396029828150778258527369306136855731143646593066865258637400656787080644799665122684422931769352742494240501667557224889317796517080490774578744958827819011496751029986504187121510651355011626318495249144692030174201743322932366762471081021540823669752291344643695753232395879672474639000406418430702788628572418061677058527323995091312253915235614270804617888932809871544571128648551508212363634382937468720739127921803471539227130400089388904006089804189909348335897026535376006731997116150973937883691993357304214620173361542923099948292196966801863494663658768148886054140600931430160354573053133897176211968603712112431588549592432571698635934980659002151869398217845716997717161224176344890098450559527851849656355838830678985529775108655418281878571671419349572553655930056702425480359565300307331080533857954101459693568764009580405674764064504623409435486763741964572398199388640010254013905216817839520585056943471997576608022109662175451430301069473980034777411394397752332671327251154523282141073288730124910008692277239261409920608271343094320768184348913022611396823149936927011798119975877368283030318931245235327999824034787321639183547024110847716452705757727060478705081313023106512654030628228110600439699444798275798887744442255449566445596810142672316673270740223594353630009458331993051298833960078052751711538553957175111186467833785315883890035562731242798510141568019799805722320235578224711643713489839716184951288506671693993127628045367050443278619644133320964719477176540322083980722059677315755648718155704083074333588399913291869058230322655487930529743034892282003052424167083691715842199036700444615258644616736208185979515368704592884770865771074121183760558102803834031227073102197032400610071813237295500648285901847420836101172152010559376760100571140584907690098085905585773052081683521635453147842342511352244764037877128780735288815820791908588904843165927334707475057384888787415256628758347976010226937668297570478124111167297635627236571439155197511713771299724104523258913207236562487840551412756510118655412802667144934689190261483589357871198059349836008756398444558498658627668575268503245890675433752334735344406811506969709246925291347460532414331827571355873547809020040845046694837694783532712971510225195428013191526564121471383269701456446230541082981541660585828460232304472672000477842216702471165686912656893088647230810925902899901475921771619987884204495813717086319345744414743443599003780474240732089004993471615019115339033321604306295235875145438196254641546328486752890928282696020836666729433109697096947350474510533352419945346643794829082086876670222157644843926164631697655610682493058633566962003263546142462249101987115928834278328708338689939018418519219183329987327033678855795641264733161288725281671341225263382487647467116858415804319677842362698040328149461804128354139372132375444445910598268811318721195255368637753162578029681449227235900041148664608268536946798663991125987927829141920406588908411700319202956134375752371134060630518534176500378290011957139690971706400719616579271529079866014986384120949204106113937453512836116424680263137611644889381386346201766626752678946277625508210296332377035027226562997661789912971962046660643723952065031682252911802671888086900556388043883194933101280412372087114713300390377841965587567543358970053576139701472392620716550714030282336116590340417615853687293283966338636969041614853832614966963755281943151670904200838122578664739192191928555801984484055846949165888579889421553375467823514400314029412087540632371855745452729795920209714724461110376902155739882446899522989787282086922020250771216502666343651108981894454914465067986279442553942558138174121629834802388896287011180250976465836024198922225935067208208947300222313869659786817825817116789003461387896737359574881546271206099439215487099300812696362736133151423334391867804017883285220614164981087734910229019059474788237426833512112564766862842515093360083891832315906564391667056002513506178388081573176823386702625580087048541873449431709273434935910706069335713823670583796717921846767060581034129389010968426284923468111719143340454812201846682688409105436135899512370354111485928045897919461894652350887712230885520622355769833852375228664362668295023478419825926422135720253842595541757944057119501342429140967134083526969104967805124324947796312576630720763200321543050074170067703307704058879772538762294650386848607246768431391813941305677457852760265401378559792892861938789963646029652739431063175807860955143647003896456109306068962931215289242370920996063187053188761206158462472292074234955330706225700199112128400391629698700968940692013613453578763258150690346344683013268948418848935132218303308622915528630913738088382348290573504022507933740463064462413881994532995385600607490462766082931071306745448651539634320877583685561858969185841772402552366190496612748498930216961053062150932626334423860426718870373318776123068390730579618497520648393853716197938488628377752225697826146293383602042401561526674421300263209255216215186617163869057679063695751633641040379710389267920714764131731889535511747663494393310378636916524490932866702218368069181282632629236341914354574934404796562993964168111185278398576719551386477699434758713663478577988419991143911867746077822053927373154980057658059874926443920117199281436790915472928074698358367703347637161944166312482523878157932882625957627223660977192705912604604819330709402362817641125619390900268925134978298998215020768195056181849950818229891961573722606871419888904083431010471046461100389656156755487646964278871603706778949638818542460989020218689065971109667832622657649789919071197431132079213511319541565291085469883742633576921032591898626731194535485299682086577706342918074578649074185089254702931345359020870807065674743080777796844517459561890458743139382776936561838791304444926248608570434097743329788567090823360789744877164319525860674021688937171416263953768220040612840141587265637029344957170401568722526768572868081195541793961990013452210597086474416017145924244134987463389953124602323731188959945725935034138356015599814732549976525911495119274183580649288224736951745631854606726764222387154908762029025425670050530706939040271454338343282272871665112310161648280922962261263333703383564644511217856653663829084119523194890415502883707679039527898887710378188752065830336318770288620236508438571039061797005891079091477076090108937900561837905293179414712011956767568485972541381653434224344496068008887254722049254471331861785895867935580023690302569664668248796697343920494800711015630790824828594470423893880578419785280467292285206390032150430871288815305321563426125232078066769925752230143864934491719660195615390872525065675949046815052631390111961464960511087089722528885253371456616931454644247663062978649374002167234814014178613347451856128729840414699282100952756837005620360549524604061834060030909609822266302138861398615754508200347470039896606549024495813526626120852561849757298175482886685955979212564025226089884871319524494256687242230172110765438244783590450142422752656751382595795794828902900271414501686771034086308551260610774977816760568567534151897654627600168069726503382747473494630460336558076321444919897683410586398869523684008907513959124036715075434371830340625705472201268070647828935182689217844135799079187478965932974907378974669306006678915989313479777963498123231205105734952599150411800454431971769349734572212471145649815793885011982413133059919372415649403929942158076446063669392041712935260037376405967067466380323127770755463877301862140385786726505894743851514820569534489634573048644966839584745558495919938921780489886265982152196449938061692322578253890059015510349273410181728831517199826234511151769365111462086669187787501811731559351069336267148664291644041281495144152548253868923903243365273775613093216907022589208022986247711707812881612508703898110731331669636225095895435810574396458677434522078705908092734335661243440839966868238191360800830845420470967262917750700028190852358908677500801895692202906826937739600611665172555043448981149315133130529214901128585470266272912402986574803811027338149064924700898004723750620747178927758875085167720494894187955578713636488137221356422011268540142641448869382484735613255454475501894707116767935406996059809606751791255313845064883094983791700868223933916938696025393844437014018261511942599682478617220102109933308276558877127861076855303078700362618433551680003677503273306076962048551256869103145034361242198155608415301330557363173996565266394323791375394574588371109801472584379659294631772827485851478420047531720468716970800420057843844816774255657598700265205789847638822463418796117395093799853669914187813521959158677787696039341657913577477705740488826313720077503847376432769542248663309120879955639518439626291683803382362378742995234607508665095341335365047895734517190041703759626768650398359342821199441475834284280806989457764227594761543040351772335413146606415272302059807968457343662986904587308287866749238666027754432039022743505173742852717428657611237205656912395884429257947914358963024783284906199501397321004403309396755248395637446222680011288846174937562752755227751260811321188842483191060807990563240376339019663025438826965718894820958873933993133686354188181588624072800660130711317410174420189080075140212212732033283130233836607930769852547339272184706555392025067715542672879937889929839522710600900154040946732706877825211017765255508772082039597176830707471326098023478480784239151122484030306637996650385393586918650193680974978178867245919947125594704313360346012857506522390579506649298667707976006650352962894895475013278025328827608669913767697279427727787285032329184631376523275435351162585894812221114956815445545385128007756737187358041349242217945660482609993138219322645371879144330166064400096906077223851571812516075747827637549289053372487494674756337867855844702398365054526217228902314042913698219092334714564993843368006139016474642514791552451789086197543532460884757599242227077950146240612184973430027104066262541523653724032691688933466896620486814300444931813229495066014851502616440512356105616066008388717535303446192639485064952922592877023699894646069556837236168912266441243087988427981379729906931485229924098345343346625462900856367834722278667728636865235885597576200656479545637928197778927531073599083115917576114723912858936143310874182314803833502311953713070992960237124674980513862307765485761715911297677560629042363609367380609611664382037531313059832235017062026307629886111035062532806330969255516032309525508693536017079431082721632658930650121443445097628611469452221779937252239043344812778058312562391166847879580857981497741529622741205900371712546142175696537813805499473265205849299170108385992686128742144571097951820272488579907913949613745846853211749918586353145369351915084911768633734582358540488838891509422989330698961944111418776870929807453024057706415811933073365528641591600441103679146402615203036563052127107643898715994870189318591252496745618811289445787156221760044115041284711835055274620927635454594894101508475043211255899129716204927402605834615757774187070547737494723829123092387461400580155053878782348231671590727799362610132498954636936925381009158624424032423743617863057787569348680055271236118309236851955685126947143262416913445484417849813981800011814549392641060609277481368770195579868857541187971268556496305456073872105677299915518608538829251678121289891614598675242810204952996265233367117841846000457081691687636675450747697042982761062831567511838736797213108052884100298207273828314458137215086115028821703814720318137550463227818221761312217392220374326625793531004894827449473564073111941790220304584652289581691489967018212285560864477840845246117835555468316946854780834988031413752639038709209934184058616257420407800753551995367292849075258544813423263492691158860289183177946998180858352298235599719574464515081809755199007969081981163345718648058526733971335069712077595211360132078182125500887340292539439075145365213424463273788823969852442347949628489595585428221606889696713571437092541108682542925133195608956672633819213322448292735131991637246024930120093694304034839370289933156756641589540689288523818563176334794010939917038682828432364080370520319758245252348028727301328472284717891498852955561741249049564668742355883648581521892531758314945688523289469821686719593002689323501538010599586825701758255777743405638071568927406046724325117286401319861643973653643963816692268160852975189182264556396446866241606712259250870241113831284537288947699720303866257344923970269333074191183686643850294852268803190062899022507849698285967626696003204852431025399457753957124926317305330929814495607477027131871351999987807985762196588093547475122177845073056829922058577445268864315477546915045661450660168760387945929690936409519424990982341471694154470724354906461204337548244935773432170060676984804685747812834437740647117992484488419881919295064846861660530762697506655216566647039525997296059442817094288947006279538494501240655136826289122183962239474638125572201387974145441960840755771677899601469599906045686307348438393832557249094489767549019638421482770078135066965168382974784375148750486062937034570385040836035828618353227419803598399692946977233578398226337160480246848844919981730040646505031698576211265592382941077470193061484713101845278504941439764588589721740854424388717513253819591468136636349693788947806263416254095015881483938836153018267766528188202153222228334922640099225162120169872664881503751423396251895490714229023371881599453094867301515200421057973161330967095580184472556242229527588015966958356348057137753070100436606001614907069888070210289490808549407079665115349480746031767459319485429132320587906005239011008145799561959246910761537660577895773195698689837140282114834951768184665808957099971542190641419345318191704171780297114288480803198135953421783055761399876647775775161541446161980644787100497253897657758038654985071212491543216725378386618631948557261236140516062118868472930737552749690580177811478863204688104341446279005552662294785625683634217038423673798699362252197080050456803670902141410534951427082913100346758193731862851696796897165615532771586845235438523328207251998095208169060025997527700730389154444731714587866162331976071438934179007928747672807955587997701872418804515058017287909820447908345383711779465971584587490415315595910533437672144640423516315419792804470185286384312085062672283246561103017232817514634167663695551479716539945166998089931860936273839709486863820674926734386179977919228633385935950617476407595743061993551482869965754286321372739082501519449414028613811747250886347442603459753654736710704056895642462961289206538263099183598527919696207269505554094163548440647603771708081101540619698544300297061830084955542255176780023003444513749168410912400949314407357875315103928198094602712056770847722481480397157868224591368739611933971660487697947718911967381327768332693146801293644018840411290356184342025796391593081742731297376265263168910818126192531926476602454755393578079974076997565670236637967560369672294226918725439382987614395298039153685855569685455862293297651525717331941123443520342847598819411445869451108161810341423866214613036282224658508715232898279641981282386568036875639602600350203929698730714953575636269341266840153388992328452896803967543083622666328150924233647039407761901145255335481909771593461794132464929853566268954169247043609849609017643699635942971459582643663531812633338155882677734851153268111539049571001957446797023196936587804646606201743090816110268718115075316088853097518733557426096267572340084678506870311313794970989983271997046404538988853447740263515743726006421488286385727540411980519538925153055125104077730001134647779591304547872475196939030961644403579264277477129576185761334404696266096993612249386160900580265479377146848383098355949188866976869642000262756248141576077990386222510181599654286401497446231645098498801811583790497280739045924302666979602177914028219344388827077912684145447506665539446037593370404643477132585378650159882352824145435058264076923682987207866169659765480152219205653603178345425666716019898763524910449066662367679481773506317001458280593162579838673048104409006889217771197076039925591093299896033081537349649435589675877745792070565598786528884287144979735808126797790323836505751691043191407732149086212439044021067122386720868290476707482056088000082816757477680543090587583450371088590264585964472143160777534023090573291889137135353993379669036348568473570717714153114842599779962137127233259710567317021659693542966538849544794464444508189510978861426011772004192033441476956772298478087491600970470999253256182335141427535811426565145857545806734785373693671093385393732056043660877457840033629252026876870746471413902012599527052847440587647086883813143387552592020072547334797495650252119575494678270486285807485424632519247102689285743071903910499362244645508041358682767734269077562186582962395344953947905644416686306927415731541089550283245725180476792387815376836403960846368843046228167167749992501615409116557282595716405206118508170388766660963749513260956546862524406981709558533510576486582614043370377107193990539175452560158050357500296946056892202919451877628609277397811146618691203176529452860685387662523752753215663504358853795708033075604111198029739550200943928695832729061823360820335774276067515893560847474696654629475200914783180623399842986223143824890919124062632635090221909805869865452281828809920357764703269947953932808834742406623007154992729684631125384567706812235659099179649051839641522311163610027966816327038717088240777520317134302489565253638286317245730574203301548235589023784448802679318565403195998619430804607532976117869815043634013173768934086583433731280306400470834467015411694267757116939563155103326134568669975879270695075636822138368809977595888624187281270785409418159847874291413083764816489867526481654360852196844182260399609174254522312278524178379735790397432163709716568873228874682549815323095246513606403689039631432128091407588463348046549782580739375293206122334822742605531297334000576913078336710369480791637283407292157712162020674742566403612059297525543622470877036128801644894924604469149441259407493513485170315505757867068962234836222679234772511629790392168332281335427157472151472393588116927557695107781224275600455219466828034015067812814231087540977389628791817029375385945466205351164226773532064682215609040166827221004791366452159417874550058127804546969740685032944035644508983318617527364492969912776915949766191548318225559968203060255222244727380954608581665074366637687971390190243661558943932987417878577103043650090951807892572940598784743139795981481851209813508378121403557990264486640374645686471108490457157701336810079369488341984239450037338062159470689526127167298364028380070490032209118469335998304595135383427848294166111112876300847131690694703586479358887411799961777008465989815797711785750225498171413567362152746828371753319614955923269691295186545816366303826767628969613310651030106707239703368718562771487886693462267829743426401208689432501302935542517177710394126109171518670933960786035037531310189564311687891876928548218268814523758801634407703035640993443636480895738690127194428266674517127955467183822672507136849594405083864718926997394742063738140889264041294135644861428109789933061830394951384339037281968704887159390185130750941719487805417322145535020409889419417086434309159156229202195094597707122904834357146777831841903287009258342892207260410759533957674910781781494525561996070398097034601864528869691234989403338555211973806481648732885222075181345621408089598741825825149974083601394166517972059584528988207477211053648146954978075199880707140497938828773425946366562606179115013706728426298888875388610385231229769878821744381431865797001777360984223147277906492573050318469132774349685438700666541028189488406030069770403384146373735430213666074822939972637607871581733044453368916804446002309733063070700173507378971840721737219717368333591792345053583801325138631036826591048484997405119940583628352386297432637993929902861059307374793554868639327855815849730956640387963636726007510381901110301166980974816359848756552418263266001952858861655286683628070496106581017268880020199560295607404514271978161873289432044438222991265989544790041236240873049037975376204570707845853408902986933212275994691179537433071588871593638031080338756892222787331462881377667431127025377646496539489352364791556709984613686335338047373294922395476597071733134714537420362186481080197446378518396240981378655742018432700971638370519609594014244928422871143793078923324888728623733930515881486484330149741426043947145394524116337809208075199674041507663931124199384173149906133167511000329802245029961696656453619210091780792114390939100955890245530607545810053109085884508344231351196929156538525327493121678976776605471017633957605302985380562595019120919100374936894421241146621553562114514913316136926981137948750807494675313913164038397312589022574260657231748343842182443874531705977512723553114831953631483620239903460150378327400344198245964924300351642335566537234856018662725541009051406158883025951608611092153165220575847773179037904544697479214397221500633754128454973585292267538164593828317289813496427308587563231420344286697926978480691177817285281820753989521317605821713133320673946030467012697758744954919925378504676834213571562179669963727322027217888809340886119778577246889352356111942337617721938729943455734335526300624379287941921850586486212076936697193472955105297324524293554338699088908466058034521472265974861579818563176096692594614241875219040566583485870909720598998379637829005520339333379695551918294784424002265284293755057033556020160872709992124853665673506494267628350910714737508143125747655514059198755997105456084856598476925560495675505219505835542715381563495694535013873457804312188794208410396193969053721859619450045751620375133464537863213862867039785761574966192020960083643071127869044200500910337949798312022917984225397067401436622750672673947961292803161880804807209021963533707876753855595882639855094352555382439100841307657215517127741966382926332429635390132536995037784062357905428262193112512963624702246561877151986410523281044589225429629776027502078479655040608971672187647888559019132748562078892668869565600510535462550688318727944311326980255391712418214614348182497166568902188915685910965667174508933806091384863840495580798868869707845316950729384778743573437795258330014973469596902316797277910334000981739452177021008652291580842475668614232120706173380714472223625255375137785612015307294911784301069545396838669183604353300602228956753321439786618150184671653987883453214836738051059026674070559819793504702297815824688823853301659287845878600358294702307339611755032292399656955365671071788432966479685608190215282242985339841078531714344315181628308009397658964800535387879666832342474483395905092286030438756866579132778127187762348584553018098256713098423943999500743859015329130486426590276268695762371321332431432880542387826446751846631906716680108892966454809825743029553149129874515300619001674356415364341156803166696958784359895214948399000960291600962994060930521993113081760145279526826782347797092701511439018444265212213297110153485431099497151465331051084131527803474251064350801920107169070753948315758299146622669259815735921769265506656255355885654685413373993113204459275668195064478976821225970295099761006648602321272922945026365071189394274564403155844387514601077038792542281864876401614304985965167891669140101264642212760614909691562258855562870556736465254232773498101289168826192102866304796775968307807162003583232078925634509364776678435270028069250090374846564876700794353694180398785766694589832721337497295661465199597651172861623086890197333374889992769427558869265039225595064747152916093979317437350902816593175524174548441033968215099980851712394750044898820713853364732223543780559941158023242437717918293871860124438498402899223137931189504097393532599553442986846296918231060136756212271739386446111123384643983259898155905633154504092864740487276029513826718159685452543043289809389176456049375686957610029197824746058404088918918256789880924307080452572836111098203168627370364424151494984795510338446187476105385888178035292129652054626092530948094135168296614025866609937517344834938828561895316362243697749717165807705501408173374834780476290169672526251429696774837563294074435982830827148183992259679657017557795900455782813538449488971429864204145590190299446530566728227230123695283896596150950325598655862573541476641847295833722511004405468876659164460013744566368487233884135207241306267615553040847064158794745288537581941808742638873631511287490028095099472205142077218941244949415492696489745751828860439834811927510465238217211207116288733373958400000967000528382104992503710428187584399176003145403150179578590062816111324087038416321443949860938606708671422176195157646280927136841653812327573979431029383903911989015701666297066988925521027280561355817316289423234038685130621226591424532636167595594057840470662392336372061085191493586273652807001709217026073543407185418272068144287263442166119715271660898531238845119828984267794476189827683915005919353598330920896484693280773241992925055074778752399217970472652899173807807410190950958472293980926133599466132412430137932680337152230291328408633666750217275142924335977992090588207564339239593633575920431513702618822915071936703735582450342375280015905147731175602214225377987515932523475611921145177437061825340019934706046605272551426241893634602742630111423250426487819658525730340330686655823606431664722274609644203309517277914546484522962627269272613930381282622513324616533591554783519892761457353553377233392624470326783534683792663203918324211102294339863350414173028944328224348663665647370308099118430792106419416876298946886612313948908174668460097651439155809402224512638620709475259762670767254828883467066175636089319918364354082121834720509050055999434597769457061499866209273741244655960047185574663392803524608832703413981483721618022344770493730926161966691705794991540733721039453058535080794436860618956204640102206767984158083149358539326427475638730875697556679684515983887302698802170690863897033267713073112982625876261865088810699639085150413143360302421795691467634999985493272647853902220316788729491747827780679352746446765489490958713669347158683222829746059790794087066625449641464562159967259396303128707847808505003331518190768718409072433838733275322872799857462704004966537188912272300799305068055431985011187208313457342697083400608897606537145406549583029279692926406389028407174737157425748094406666625677428953519912521029937475732962230035245355975498836878436091672279869861097108631743638198657016670675255648612036794170852232318529756025600819149723411138203467359091255020429008216416697708597236273516339478750989073909608823573969631352976372750339396048941382668334941014457463129956150350588219702425131194916856561042144505467402603064657640902250238920399883545148735692601670013336943659285209740936531458570826831230417423003792649523700432443678456991709687550820350694297458982213811935071797134545753858934048414728387392547505371253675708357377748538205672988519430376505962103994324332350307433352629277656587702602129052157080806916444532006070901076558040306900701215443065916433729204496212997086020997765214970499448944853678465169571245039061876933399803914213321987849785240007722067927286159364558621704300100076445741066237823970360370688545609067868500654738722118460285776413442594283048492132577749196155764513566751807668497414393484015965244240940874225482112299829261702211135532217940493036584248032875086343332948610842102932291531636954270343196854523257759567905434208381273962540816614932620314612535961293376969567469174771574349040578507630549697080088609312108219330356952413706707073729457462736655273368105497738715416536211385704747795669724208403917259153047657764230734460525225996261898956997010227046355157968818084313052563852566952808910898070662379745842537091149739158241621337925307278720727753946717026220359452137428595602789424405154506891352789581031389592206200683252245931840650171442933667501276182734500463443043790438723362343681858236702570766309650430506798455871646753909106844383740640482987916563495747145696901839159958513258492713193529680532130978674349006249903607813881717247973630895124530945752512223714322299318112123253716185484872444029858260060651319623826996491177218404314976977420178050111906550184009661131569390144851593334961311604118601828269506787180355348979911823870435649340121468212771306520858898212055882185107133787964488909742549964610855869953011242185310041948665241792763880775629302573582149268832078697682201891490137430094371534929513950944042503974618535262410272742314892069190677292018678109191113009784120438729231337557751880404380685826601578219962913828273515381245119864557971395663480742176772439685645207795403690073221512988893067041786611483084944664654192100617843535527106456157192202492754295721648840696438244615540262497650026611157413530691465084901892663111572888135023818279460081621858086228617469654559795177784776970328650759693667971619221859566201397997655902071015610435618940762210040389875900132047770135446946739102067849279445316578194214023999988379992121949653713226333799589141731095389607057382629841155095304115468092275241547193404833941083036131222090381793146520149109486918858812326961571061242340299660993705452320980656356316125701777762255394921116622156585935107288395814310790907765707744282391523303683363118023938066975852484160888513465657949279669766114835463631176595600952284663416303021748849726543689141923255703387296949212093749036070616700089500997500917388389852382904593101892238779633099245590018347543424254878367647062589789003073065381327226882652079836108215069512322693254329016055032492015486050394178975289573539730872064706968188142529918318429725395463717579758733692705746454175884846093178883765700244454727200275145681192515601951873260057571511915920774706153428465407827208082005548607835768408162229961538447785753856439670572999336128907042879108924754728982838783733272950486272533052887747449626021690457804589113833625091422659731214576079792676246585029739306769673188164962766953213906112063346898073588161658130860460203827598353172186453590210406023674001677599335208030378481540926965545796127084536414125139046919320867156544512395637613149133078277690210736725052358587998443353084267373351665641579505389071084879004415069090600679485302166847609340407396083264304341303969530074096970373501861976094902556751013273928534512016302005009353305935694169123270385679846946333329575896506433118243073472716405613870680654083225336609805932120874280513316850840652635320608097791756997408298847691044870793192442816441356986286584023564602022585811261895617683825451080854176242705504510289461118565886736712096288963371160704904354242757153270101430874208296707526212794952775277976314097136112373898492831853440078484142518818699548087345138269871687616879401485975664632148601098848336792330802862008972500557798762853405855634924424527474561885492232164428859466616576896988275979863959923151901396283159445150220844168143977316678826594299044837331046302557213792057812099840301689900339472303344603553294024986353954752584340513065754492891139448168704774884988349170424474818943654899553194735961801754233953169112714526398085681131353652681621034125744943504043779447690041406674991171751581297367890177226626140340823054427998060388930757419255174968164865675283907234084777064746382364949319809977909595056673842013604577016293877782727079689358243608471858093531080989622629316192552244248028836650436798236852395667856176153522378920216505022031898289432517882374052403555662190932902715264659511835425497514372541073047031811680199226508340443528516392483694240178284466817090395957836872140497599124924128336826275720037457292128070814171264143028993392490049429335055030088959389343561126371214619019255455111640232903306969975205142089847783085963201792916346954709453409671929593640457689313286530458225512614868418556600679168013313291074632613372891170953981201391309613604976784343989221261097093887671037413298965411778702052599282995974565266333527969060889303873677574661065423044446090468333466026536357454944415218984627410992545744603987547451068980580315756164067518098712348356595818318598953583007172127718870960035093189586380009102943657112803257548963060033701995812576835532643270101388484940634216474948373238763041549027815535624395606136929019353931517094034732580597357497706106555121807606369028523284184987861155714089154965791003781960253164586857687867119854513635555683733962174088092003599930983786518366677924254843421736106833965241621873091003163195473582550481682470077312807939381325284901618718744850070906477484331504069899622193489222899098933007014494011045737678702374143590601314622153726127187425528911877660449899959129517442714887756451919487768084157652507814607275021442008986110779558199559053856715170463543476284227171670498337664356955432970500046369699406605530182181746905292819173161925962636382732659236547943531406324455559419917458197168603499913313818306653764152878144532636408302662069730189074541880950178300396330149038591442076357846150836833382866649357064566264895627594952971518365635000448707104845336888165973351625999237317198490513269781619332383150010828657481898723473852813950165531291728877581716896912636749511650237028545105991309490133060462586511296292407821052176674287666562387714202553034611426602526186231988015636694308589377654169520958775809207074455150019054366477866648342307464373690045131447032221921249660285283583542709997814004284835587524366524846173009442575236070528064171656105793095533590788313097718903547091972694165291040698080839327691088867289633776911680514313158534766030518297348739947258208924654950180828780851416430787965852144836111131974852795712077068388248219000618296951232533908080890732116586280956398493431996800497725425781858152703137875847188560046662649388281629112892554779059381545904949078557689200979918030033589260010129205502727249721229642157152001726331089384508250363698602068890708197640192058288456120126502988409432897062048573310351025347140090888123928611521165929347010480101594911545187765549677010333560701258594853096718379030178625711968650875381540582002454232942097134294301223014717513101539106334276961016303944173235908647233773344754133027354787280941520416776436851042668814204452555589662252045121492492431958202146838974004932601090269016772074320534544656155127772072592650748469968692127389870000544503640044119239801742453688078826813375634383163771381565197223802160976616555200139783407063459917826487990105316382579528783317301097596073338852293295284853359643982060180291296917700181240563102038925439403398919515395854438295024699985729530683213797220333338476411603429223052618438058427990187673949516475965316604026516768085515329684640438006938986868329183248879765651866448013652050886835588951106721746178960620119631782086747188472046145837297409272192653274731401882954150167419255413029222135354577136982335893699868217027326696988498219835921227703119586728670545246183147517660331865605748521082100685972946041587580499354830042825387512887711198646584785146833846758390760500466060490730748616642615548385254867458657209360756563330449003307061692235643576180544478831416450843456852672098900539817307580149654774766934882461643813167787835306966928725553786723179192023119945982127113120101945862760640828840217277945823223857407461408339251871949068308840073583990351888285967055837698414156108198495501230272074780264745386295404155827462867124094127328611018819847027438713962301091745148808207093670012393076389113376373206052817122467052439378719186307528791210879257724832532368147583953758003454949154662134441523652892801072184091290330920508288473768571897496722697550745258506918928383473042916403965112239013750901724560577529880274131615574782053395859623076256275193231159756024478782296201328149010726212343608450378505311817223538948298634469875035941156844171240507640444253117429978826487571001916744707919737250908062205011104559323746730518591522171478031617551461310307035716519123569284790480949625309159231054573059384436031192029576414170671095822849325703690518741475582017640541420595697466366667932146376693989273778871227073059273045616017183442711260124832581157769730759029594198839606318596395389782531013429130537071502823593810541673646972022701952511563121553484749716664098186635894944386679083394203724625624036646680432809448971990922264746586991586609096920304007501423523779906604789050250602354670287615718859303402341486202143440948916714764990440275187688990248990033258582582465091272164174158786462447447168592358569264744243543025906597411471232375388816898400738995622898925742627933580497423930717537551535426262635517941819460055228987287471073379271252357462810508608172818428857549769457236929687267840836702970628106338503169922110991764914913958139580638626633197297514460052089338297078811636217608036166926832345674657981609908665689522057061283179176881648616545763626877217827570057952955359514645861772158234965072250151593418165792365841237445775826533221109074984267448196954859274906185676164667568650484611809619339076518600681684241061624667427848147464891123065703026407208657304836621357369361753919330735836008322396188491094668701180238692355519697383714406075766946037805459883469603262257543344754191208233903730139231754202112267466427672524216176413261938078574596214749349826693617539922380361869395415503817147301419161790983718106224992160540467034137815189061947631832477679949137322864282646064404505381448075276463779409997636920357669300319407724370948748227584182105420902523456389695563899361121879635410690827184717914780223854439224441847137418176902995053563013288890430136525089796554917394760934534527288541929004858081396237077797020449341069588931844003512805355996175988955564205007722380601916695008444407407803907882136992979645851129512266695864468742068980495602402466020626048808010431971763106017501602802135602993332092821358753471443361233734838078003669435327035308794186768654182913115841781454093612927915218085794628098544893528016457389162253039147551459304093355398281509315156088781984134774312582959349809154971511670229356173783105717350176680745912212353829077478162980509550671629924880865436003845949942358878523205245313589008190502877207714750567069416917371085935111517184185276831932600914074807504000524687858318693390216128731393291374984975867918862574494645555320355113267246350545136005922583120823105575389604937228644758472958885057824614988873235149675023420529184341181099965972898626497772735994420594624962922118050001208697785153218401142521238829819674822724870916684345965597795154547935023700818835741642260355475571441789810722329652221727883956186920101219172921064740929449970210107715034221900693389391400131449891352006420692623950551940172253783516567724849679400745942133678485549923495599246249940572168039831052793105581544171992531687240438786126793819466154655643603702607391071994381867085592255901303456906926580245027650755373797752144212555002390242366562593417523068390424843398067171950359007752392008110479467417893259997034859371346813675040797338357295951749112123138253436046085001226050206352846242947075686813845048432057379401512663958253538166692038920164106701266661345879926151312470084568999377176574794105094596638468902368021638074828327168373870894054787036718559418529342213507881625970232234422237080927259011611483510507189007094757599326426953289262072546284217225072568693207286150743392633673061014857333999058674840839389581011715781316041237641122594743534237775715561662817879474961220595741874416280991285347221926773555722888691166497245929313200266211205112516743425143172799786646078722447623544248038301015356456699199680742346103264728319562370287428266529360969953725753494006954795017005038324840325013047932727841761971618787513372928545364344218687797563173029120033616861310856342467046710336182237008412685989552246513968786717648631267228696086114359974648965181489037229118797892548155708786102462348926627372186697055672475758038908746826559768592300227700215760033613208976159125832105525637429188631814489053617917065295447510545134545196557373507078854623762754833720060127594804210119183242927008044812661892176587097835436764242968637758344100750572049181035700725505906308159472750334010944833417535079961089529509810136666548771059425128809846135286155828451974117488711835615688660194565917295106323068663635637542424613598632412350741413748390177152171244160300225146647089519654534544282574505142973472266651015592548843768781230599658194021662048524569454027136332820659914570898115650363621229701435597906586582227269530638815184633329533908639027154322823841136460574492779893422716903433371825755131328380646442125181215343732775108057806060326187732109021795442973908806544062292420869341844066270784059501238768504202460858365842720472911428402366930567414128918338663770275780417074852901529731578749908672320900989363720365183117567385242675912658261594424406613986256809218961735568666849416117618906420358569767416881015130576596366485251680171740440752785782561603240806050584399513134787687037812243218298252245330728701616630291870947409403613244679235416043374460970264577690633343469548407604821847965055460261264675242458044383887704552069399733557867573651781086319564933679281414822292079288326930547142679330464565825365565336260290560429994943273124194070635622662668442926594670383192838879639579121888964417198847801896627617762963167161743340737046867271086324156361075754495158065845074919327811299016335779407708681732676568307552719990872427799889847762977243747178891338859824092644852374445390782468217475956957328464015225234041798945433551234823294626995767717145630108139472238868940772179256844984669349304512447404436713514594017706986157280620621269292422748183011535100163822614870290624571605233033503853768984331414852920916230620100784584906003738141787254569647375698863314002021859894428210438557972150940808152966240037117897505756112527236675907992119971710563573716371203739692260749407538621308944588730870032615373717598228507572119731749007003815987077027963335576784398293225770115336618630334525239936239694843292325984682732576398623851625655999667769922659266638854247979584776117770566005004921318188350877570135676898627808148053833399352305025833673244306966037914285818685602605506666043176803326689678775937687495040309226759302864816934837811328774474392011118762477996594697351830436988680290923837872944439572869642969253637944263851686396241439880221354423479447867233415339862998519291176641392921652111002348828819492927567836780293228396305360865671803460989499861556283589896550017174691756287574139569187042097362412545832347149203862350047054425176811089523527363327616134336193491915895870242524976981334658809335082177990698123956710995143403420718058445535228384037460809523555532467787302233771980515824877552725554205443357819466898687382782554121433202689241640521752702061635738928964483006332993449006345801495945424543123020272833636177068657521612238848624389905128693451330033834169161186138888753406403053906715137180247400398783574426730523438919096092621633433892491728803343338344266378278831723001466314684368147898077926407384051699927963556963438776788320437607883637851983765961459180182319109183979112564695812190871633133493364554386247594550013991568628127366397852636065939536589030619893424976352128057556776630220601522957344957842874100558689613929731301729977290709562034076372232361354453809081275892637525943482981929970176721464256491689119599638483549325479842362394192043203352822488119943144571362540373222116121301933116801522790421063796706642560566485671776140217672172965032507777493172493619868033341087657944181074592906702263640353341368232643546475710678363272005698226124444879638455371203401734361153668888763375035402199784043521365928324622928586953216672251839201362806407078466015717229916065420378244788571753767867673909458320726382922377752136830857035813973525323878909289076870106745760852842329835201249007490189442769591122264475315465505698264806602912910081587383407321569270502116374820257641624883546957423983252524901109338750927592317880059128993400662652826630606663201586087646851326609223366969290996516254665449913945844448794490654558033493774777135950680911946829716242878680275840277399980085325853955136912563431023586491031130889802794458234133413350859916916682724595853376798548420204952104542362593923407723349568119094777214491246424023882081069559659440246816808467902352238169032210623585862697351656273541021969384441707019219734288577241614356349543702161538651703405811298268241228531380619883376062072899446270194880909012894450624282180125595362567101228988231632238162261626586540126304549868333492188432129001004470226212967753788623636988475863696022948503170156055065084024029068993284657576834100163338669249229980926915935442130243987601464123715176432234855014018955527610661716943370772386456074888683503795424089285583510860465555193893997333003521403647224903701665601351362390894712233023729008733982161166432966795954720797104737681105304879119262747535275422179441971937861449744974923777144316952980290114792720174725605598221216641623308754830465184849257431095785889726925402479057381359480522509854776078921977077870310137234281914293284098053126578601206942991095085461777206097570699268182564078557343010835000313156747596102380165862656159130873756481476067102786446421538305442074336838958922262982144792110435982894673080081198867282402046971711832364182321425023578111326774991185774423434621276222199508015353746577334325648437130799340729859260652538889638338440677302217425567351819142373314199734019268068455665287892593313129460632776373543367848761816422452562281327449171060617282572263410004842604245584648177803566978064111235960547628594552211853789088443046915549037289874972656913162478783063169324425085391456188505812375217406644951693332317276557741649372114408586769037636035114302233895861591716542289666177602823156733123663918612020294276568463068023161086948173493908123909180156489714587466927029518375133420445961654026169513792416577277265373950916982422725415605867879613069172586866982096776985205922720956161433765508963889944472803162547930451026877248391960573764710661687416303049337054543474056498164718427137079052912284673785430870373070392515184148913345479987650220586482966430297002460674062974730158779691095655674178616128121308747979787418085300853654277763284683981733923703147399972353133904617081806979028360328464517986612612599287752091021998575030043323056663790074411871266082758375196580106246425580335042284711957977615072386209700892682653536842719409818358882016205616474255369923332706720094145129316226827026829261224684188291658174419018265162373676594834721486280118973157989390681860807185404807941432122644323641101549531427790893923839908891027660958231514986827910324419498109831024509042425156779089307792519212658065504469874131638953960990202001556863210268322745162734223164270133070634091966050784702767943616171027521643727078192377686810606000785065873388427997663932096930701552475823873728615838564740470476196983427170000925938517135535560134107486021223506711183902879334621276285084201650594573881371556394298834918578361069890537176071671877819510952633476633926227458458619336030922196629909708475151018360456334452522955459225862283857703324988500016487924097445426480832883472320516367319442310851553572190730429063392412009614148423692627244658498422502697579829591186014459949781597961450586697928853988022005745315205342529374271931809315386064941691877709973571491221309792559329573440793727487843296956273638686638889502299407712439272473056034038123418272057920893675890344368257597741470541241142176202336500550346175395143918104430105785223366718418955904691478865070467060320809247449432175137145295016090382556495390521506906911196367023258931151209237758833172828039716760280028120898125562568077278290561768814814615935438104326967940840305421987212065019281487417704812315822120500527942341575362775412736153857188018012114640289005305114793420606241036330719846330125342197490607727676013333953027330271692439998428750362433210402547562834568562681951597524467083895941529836621465052041152293536415974844737719173200509919954796552905882954116587932482165763004056310721316965545186235296983002641793372018199582025487770954229622188328802872413128133339738153126582260918435541102777172748455050074933784468499395663839644207172287650143271046231238276857018449260149428108777344742041797128290138105244517334340985086353470998169107347592929691355311454699151468272538356384721215063730135004662230941115303710527378956330374296630234201021905348111748965457471496436245530242747945243602233355318821332231577074605777169613514188625495227717922865705563314483108764939109738876436483585075819304049304412008671586935048608742075408710470089324100137093872210209189486133631442072282659689436649237568799065873623905816918270817584542272848975799510866528221543059030589760807739140316728507174536119529256042242014972873424377144750609403757923743526437666443993688354217957199039979720326798202371034089524282207933966689128762627936141338498061558729989710264571136133662558730031535021310897836583005858183975351660436174309301680074139589331431315304110006925236287165781734773323830413348409591019409280723451663458199738477619215768594792066578230240193759833948864429444338007417616244238701052255884066075349842402488394685273650191575891041740678007748613556108520532484560862272265218694264969528191499217596411679596042600147192425625009083778845191279664551364651182858014580868285301582535132970116174924601618227381324386641927102078171972303248765582110537541281140961418329574261015615659537067733320703594445043769101701646444731145001336202549526510374038622039924623684510124490343614112730837354253691254229829439877401257891589100187370335800602613888346762145621449056642811408623716023456174428594633748015243791107192060134311888317757130265393451368364172856563981087213924224129004647861513787402126650818074193011710047606435488927350826768327070952729863442638882897337511769794859537035968391690857047806972534592347052425612515031111436596666307175389741152698799440134998954403425832592738978542322454165335976530222299731658875079852609882619282202641461116244835998664614331450283106087182754257085207371673047861498300758888146642791397994153008160119994028293121064032613078994473630164276996492230312810339053150253546977902435972936245885046873480575622766082570270486703480224867664722130677124546755825363109444632018731083574385073952506902942754009724969901973623175504906688182611206260385860593180057590652945231098415680611561708981806303894375889348141570962750836360856004102298837460540678680002267456123426117931271455097075600583866115711936498182646042764566969612681003040450620816614354008755410268907916806672135650392703897410677967572448762109171697093622999629928881912074643940840886184278569546633204370988148700574308970684356880725138158951922324937174613170555618680666266443809774080962520687578581109990275876025661495233514123061887901438291083162087142609643805236829632543010113493308105904805615376891187510784291740240186416347005159259661933308854178028216186618098708159848176383460041733636286737166885041924324081454059674757832356719304859330376225182680140457697324472162030411762745190199865865025108874514944187153678170093452138779955610929996928093470458790517116072036193188615366658776456843830933134933601815307555362719054717903617751350143178988674029482540086976504793691172333086543624425912414885937097907277684950201248550371146695305310010648690596622878265230064886538662048156338297523271751890643793231965815662320359977715201371156975345322071571695761474584648628222676994810820657077275822865388585935770285410182971300347768181897011730089214107229602807099102529411506558274084925926379954626940370653178492899415686343061233907394962918901501966089853851439355253753727075035687125440799901896326728522890148793350307500839196729181469048297600337601374027165989070116749562262693948380449079025340256960891676398385611324963151780823350895414421068834053166545127432680649052624752790982703195265273468208979342002483288174028417741955493124672914345097607260179084027408571842394541559007064915962060468425251175175419497778658158970122686086670074661296625182834174187866585012270763848087196384922652406274801010535840703011377739548218194216130783986472257270806409288518824784790024753747886085884295963469683012700051207620616214640936781698326331249326980720215098113960631270329918561742730755775112822622997019300052364529307371554881519823506952864314244096610320813201011015467089698947654334374483203779846888956914829871958218276933278265894216614114199280821659248470049603080565625922004371950317621001478596959673368736781478922754972492570364740746110076959463947110043531553939764344232484885908779426555602875902888005567635541701631616684871680791115278863647182618368055258285504924243505678985283582776766309118294342803608962861701208163767298416157317990727794754922879459756820941352989688789999103022278504139690349733858972866710727738701649307129755790679171048615777030505467008948174444715784409703889283419057403743000293565453592334032933653171985836262467855982459811326989007556045213893188207411038030007683596954087779634886030318962834035802422629364683632765927462865519071709546111734118298846169211057804966932239549100159752638998084912023829239657409523921378426995085185301925990784045665629166387120131385477648121804407013849709219237131476710169160372688562596959817947653286709585801861014685187195890789833356800849086484029275675629627763287729614808720996007889071843224754190963133947216314924220035932281175200124504839915891059494189274798585679378011271258789885846152220829256903788151712232109980702908053282479239607622150629706061089820395553248700551245237447437394125885218201221115103052392554160370599899875916518386085821996057751356420797744758943800781459156653405561588230725351906372626568043823532446445489679616700400866135888277610824884963665068973660982439072428276488214003181223559621223109660714291641789468498067140416364723240722793189936305310369119365410631097573899820873856927058299828729348793803540309273051888859200510384111417616849484671049412351568768524545618249260572194272834535475950836895731789196583353367587036081095840622302603197270591288888066362505011287809649765244389957446009283518818787757679929944625758752658315770885195242430220748393275529141166123179901535516872145477213566402680146441184410725719934686179111621081383985704578124280215076252983296359702044591984370428130431034917676259036173102604611571994478445271695562939227267372245208907810394421054453256249643696179624852973471568424635974284537680500141663945803893821308161369230326222501235867328218610619959497409324763055439846880446679335878141004722392901315612555682566116590552266802418834140706675705216604191291382443652488744732819732981494344825228877996054962931450374192419721179224695809376940193151494005124800437119399102202588821255180993645693972971508357383790689072380772359640395992032177914895111259704450911051009494573344714308107195683574813497886330615663145190241320782012714640892775367747471444057120707735852231717279994921959918732272713055581567755117737441958054967590061862748057094012122684065723500160424311695839842800078894364789995580598546756518509702385538689073171785396216065051997882226412874672345800971812998207286376166001043502818765058689017053487534506528921739786678442517021688695961688285789045312177422613331647984313149413832658975176159672254899807011301015112426337552341110834592459035353344463435169189116940988859381028649990970296897932112819508270547086824182623116237283057838520149584441581150713536718065445083991499372085000510310724896488814093023996855491160895863153772165339590448166784739564254279711396506251660633883693319009341607574889554917788200959190483686479989600936102831339305496150012752117422104456574221382419217551417013452390743042002913806081044693285454979572588183194932103534637765099372145392568359044874762613486162037814272863315482069949427445067891328441943832397026774190550229558090075306725886777381091968080353975352349006668833021969725633811352843006178198151492978543177905744784597248235883570639098044305811942388831697549476105160532987196062027851269760382231198669592479412333211249263033849868857436436699479756864297779174384862113579697227981693268397107672576526569303484527986775376843779742132714147570815413364824068437802507555077436353530900500615588967162905821218490373263147244583433947358619892028228735263318442344729525721574947496838823955494911164443973971068666488950265392741642826591616122699472011492788685989522576771187825439771389761604503295385767043580911260253775601400124065393742810627141170060935184416036675758166578905936190548305691215952757854079522119357683032103481334773953056538997103118272974108729928757305364670566612473938608291211754661320768523527623754643985671258005292596179347984537934826928842095319007540387873335274641753832132284836880960574870732377815445277793623850029240701695526460519207325546580800095764868965481420343756640756419700774616043226295492021937973073947320091570063033820607349679849474469184325839566042310452168411813643280900591635689884226343506844028770054417949029476817571509809345136097398515622045106234520741877893663432532380194894013311794566737740771036868604599894110146469430146124444454471360602758596919923958131838080046596748277470117788609032154787246751700051947751458984771380504700692281262656394756653787441828901760815827733386726559815298802581700085164253668823031418781278333854166103498245919592280717434689672069681203129576922364523677028289920592796183739243624251745525033625165280057424685949950880546988859280787925582997773425424322113980983464150773539780180062767900575905972785409038815506600095958544492922581096892329132902187443970598407696562096397023792017446407408360346042761927928459171137196135189513349771494561695695235813169142748119540727218356631709031035998988059548835162354689500872685623072926612353031894194248527555026008370064311720517313685620147248169162552061562624359873405988259568033212479107250928058815098425423755528197102592828095022063502284336939400755314061413427369534569145524874520132773444914070262680880214698618851545714650092423149723652198062853701846041963783991459662202317341960752977200821293184891738662365831002140103654739724835179543373248433200145805364965773832462178437051304298696900492434646514970815368722187023584242152027098676498736803002414238334993839080086955275709529246916336272684496577708202472776103819203621609313653707215044554678802180021257847464852298590579820305196829442857065973586564191879210377649493340887331343056109673519196740040683103484835443644777583631426502594349484074458336203130886679583385864316077054829390983488063071669061005834563140050684692339753522614316985953755188212742117832476949795920990642882031694077975088330463501448158523745888588524867568558075336204788289425408795630749913523266039733082295556578193721761779572646481232937580080679639427504014496676526542964908577186070899864437582131016231215219790394589555532664898929560324283610497708848832842172244613249504349561600592749065377543167792932991184693992210225741485364377615590304540570293029315206097911078064059026349666616449567345071848374807095030092781205313373569835215146021758840531669732337961054278230625676030657610797284715879589519508336613045550823723997923920318425396973649550322574295498305946134576829231135753064704907053739890007154758053419320627140451070938417279865341277613934168229413138411519542639244022671038484530985833667404491868309343287802771634638191743285617436920199727106163483674443125352866641797350161602690725596603736477262956350701363056123450010976532618839323510858807675455559190382729825304961224230735371711770633212678065761383572415724605442997074077684945099209402217465105150780132114424758621085980149376931819434290011791932621242262197933454660229497045252495644442492723661934384561314607838621936423066347116803807890060991286559170095071048739221439214215901988988285257028919398121500670082092014555430877265768846639770013145104615040028156496492742183467129744752375510988958828677370836743715233543137159625695882240105718940250539768896034057127587871384335115841058156385860667134974145405409204476303536898015869058444632998526232628203645579039081226834017200828897472609084733973046115338249203216378419027622959733894832888351690509989265116038189159295921223437843110790474615980162048184152271734214113771739768228496780303464752827030654402215462534084995844110708627376182507125612835693738829576755231403932454797895857126714846368111226599545714699315899134459617027161341204418198922389957170985631849418107541931623877302429421653866150073817056521617318098160421105978681693259558449478402330080071655904184417598348287099898837580522797490737577938551770906471200434052236696807233952672563507677192667655197213872675295025491554411792566239334275760396836049919920066930264949730565928081563235278019109298545592324804822078112601937543389508731195639644289313046529970793593653700456456225071792915861068876213314706582725779908282563517741693960226034093334501588063453103138233797731607503378793458576784951045343482327428473716006280119218768069877805825031601699575547135870874743107386316966016647561824728873567458324867694714204644131672675956811018565142601663199048677236377603821664472040136949834763791707668210537046030761045287682703099824034251000060309479741611868111434566644701092820206794688282480697915654235529748075756113360477263221930939529385509675805900597879808928320112278584678889385526510669219488233866693195819434415338629994505471083048224090343121037988088862225675519348133079065026740124895391423380415451390099439385649743300388711992022043643542948535055865005007850441146457087970694862791598602269074753060945284365379559219163208353034262445769722374630849105369069837371088700457241370289158078076011999168914553295144856829297080153611890693094617856132876337791290199443163306370441811334638026485462914338120584029930053850727094151622354850899592867951033814973950481557974675419338332733878009418138646897837498161366425218650836401255189560051246741309334069043042336726019703252130735097479693553376015359363893751309931305206691263023961745826323493568961698481621990967552459997720146592634504943631330003397870565567814743245013778029330151917866185206014064915245151096930746298406142216422180192762326090833491259250063348951075648259008514261142034161444292976616156318583127382459407947985522542967342447987087689960989666284523322504174252112563740733635700968560255091334005800962058813079502113482126602830024689681065689979857447591942156271291658512034688946592190730101612543791669041851389120389800512948633813483782465605963270929203088210042701205807559626970935979883624331701271624742982523576293703278680104564046476096230102892161841727129580567165921434703936515488186494460439608620027946996164488194065344547929287508361914341137073960999408223474281503695338353074381675055362135383257334016634987522345783734364540277365623953361148943407038667973680756642752024188905333555366464926280169135644379312602043271363228356970897413707448284829766128022695248237627429371233085385151625696461937911324230611517290622950140761855770365074694875065549727492851149980375332300285389584287051996638036830058402572575210391098905228796228063825065288869435985419263909911358826999908551205496309199288907832899663304486244117070421130952698936512864761568074677562393981026368635934623455497688583462023247300690382206113791660753051672602436989992844748754937456513148165486402489667555134890355998024293970717468052523757701410093338919084376373261454605411823509167108718623059333654386457933831666504233513965754117639301695260286554126330954494003030626643414735112964266994638291457571897685985778479008415978706960435936407528680163396547600412212970337947277170713773124496308533329973878391102101086237924659248426508367046025207493466021159278885882505169042261451082193332025118086954122019356817449954039447810223317100983954980037940455388231289089914459511197774678342985977774743186344253288618499949713454968858910897399126387906992957376047395785616707640998490238883866127384553142409122688534732879096801744969811683984837536111021852159272434421193355431175469926677243858848657429928018952800789003379550118326125943857743681046173127187702835758865850147583704557855820873521723269986609983616573854945762239637957049843654352500574733513426234970284826270870317471321267074670149699688855056406167036953973213370172524789173822179249334036818713081501973485343132736605456843713778338916273996932801406141537619641686476282851147758341130938608055450178995653552904496005579289413482150805854738798976944094555814320743572239338703556416077801751332176628262288030269580226630054971852453730742962848829475829303194586742686034185068825487765645074740160278236300156417795633081510429616059811352172216750952322489594234147676052415470306627438221589754390489516000036153312300394290146451489013216348516495129582029173642732167296768634344409701024533300671031331433368882835889470110990687981988041674893683415440160742172423581234309186134777768393927430696312786099330451863198243274137983311032492019301758442271436726220403706430692601916998057217248167287574401288343983350590964929800736262270623057611168992600129181328409432810792005508058838470187109154674898037840645898935371464104464563305209306118358874159083164850891027167719612897990526706143074160242381682032647232870825281708205692445574392666181192037980731216923648515330276582271303866596294734496848668993210524886098642650199621150856252256375017840073425388624513535760691746100166951484384245964939424309399548475877687368630934831913814147015137989202397048133469964434669289009846820553548294394057663300278394513826630864727674247333334051802885105179587595410799532609694975293817647583280616079127334113717379710372354342948305239546303156559746769504811772644060514566026817985542675945835733778994360364852956518768713460853187736363788056675912422361769599279823039593996699677738208361725692493039502305979383906748125232193575605267893088809790791726007374742008992168068422134648406295685213573880809831205624207080219376885832259213710474680008746393835789355199378165186894853011868441190441884536677658670268648783534327274151260058303133489953638088755629702176501491881934885885157266053547939430068303561183489514038873439924542213325739500691839382784781211961667431312708791006345780278295852414218997828777626250383197174489484111046273549469814829595194049235774861288067741088907526390033324865301637321270801020896045196973992898899382997495000051175930568130930259705535599794521168122306561295008291978036375645698003889183172232756741691661073951628171764285314606574229910607827814477350157487079003074743533345596384156654237832604899648214698895658008981405078757433675329265750891317384779680335619652680213869034454124287837031773079988028283514410453040593147267957490997911738255577941062506493735006709157820978393906408593460599690521507014032324115121121765341422081816725822624446681489467455102109351583319871509644575292997772526396982658740387969596861405568666851324086969000241095364112232902568004717055077357277394080188674652662757657606041424511707856846320528123164136907724677852255526671526530937453402107741615275707512317810162604952880705673558807849432188017875790599623124045756445347682383564472224289004860325778247307858033466228562828636958441762840384584337482413163416285183519840959556324800545546764012813346962465593354849641575408152051744506590037727495834303514194482019666496154743053656180125767092601856575910458512052334234124832899894753956498225744668448266612366884658935843361102887547970896535588693208210813542125697096598461583966913182814950149820572556726759882838848721362995177130681955228336768822637941016551587643678743306060801202464581419202460747245350795187089349002031593185977127330753818849131898511840682431159008146426835945107967527838269911814017211854195351094824547013978839179510634195547825954975530251435439856129285508123078890753769003000779373890631082426413467774693539312706264078176334570046761321471215146466300496919702922311027930813078144872305955443962725907501421194701886524326203009207856142926190185943387297220532112617456995579370091041702833726648172156097663221872310832792087370663953156663883428135794318430474301792676464128174064760936133936362654608806418683230548352414970688916778429683216006893942015873035424055228794136612314863333060908882624409110860519915563349069177281461620668571754619681449670867542188757971368956257444749508991628312405542947928920411086494129898942125925716565071497121471783160293091018266966153164799441089080411576232449777573033378434145333723567984699619271150904975374655529801143600236001004395989408194599698194807395970308744921081062411001553421661683929793328558168699502807743753757656212493143352421702484842628293660364023804786413419599615080457862287567934862825517939724092709366725293007904024839936917924961017085694596332596557238443664224162314602640315881904743851922538937366223214830577162329389140226655674905494841387792471742637743248897595548609887441027867774440088005904129711161733741021659391231792119642527510730387939235034617058300511822853463804213417856138671612325278211015264815596802147700178076822899759991142740585096309176354154324205359207104793033956275787834657611734969565586959013754742943087600904451988154841609827072388405526781318442738542521479120589235730443251117682943669102121327329610017265800746520188095062107189070288743754593451840170979899096038030731299211667524565088709090480966242968819637717717096444688798315867125237482705378676157982782280863701363760390714836081761382936281417925103234026807197366646094193649305741213211292374869616985343380378588831219687643885798190470602280192861176979288026882810635690603182759146248772243230615611107244186543858468452433831745554338632929939795283382171478144466573567585570004090141181090785081269113784310236154818111838169564751927887589520191588969631040886765931805070720665114148654523573955281946274825128668239794470522341550408283491709344095567181622463577024577966818701863949546123938835273039720857309352463522802179239816972263925810988756167495868124537211795811291724937837732045162789937953691447423855952437875928564922037837500115312612198060425832811902564366193576952011821350327071749134501895140596754613913769347591111855503233602474301471288285243308926674737754656736920973453116399895633163101463140366730204579431434763072833022333197369663938815052871912960165863999582654944778225423297159929683177866829503835826407328078655583894099856592969954775789862788887413083511796286987909619610643385187164089926355456139665734807302496024404754192657510883696166466473254374534603989749088114176308801639349298430062071055811603013919812679377571687369478129849734837370483325634731294569055617351922217802368164649611185747006190093883182646134127324781332786874177176207296061398924933552890147747020368279763007755706058171085828239437000018678894458372494582432055352395294187059626588584513570526891771012216535652722726128811884178339549763130395585999973529567891586548592318888046162097302081178995323586310502160206298867881906341684023680240507541059162484264152888927089242601157056570017448296588947556290634197175529299893515154975830242749187773853249793922172479137525237884242695119249619680925582150125923113286981623731173371293313771959924920249011869447936698011171952631259392096912197938127592301466370499531705107518608031652523780982957814014920594269514287911166259070527928055719877602656072514506943580173755736744117526478993487854539493977563757210352454684197135686927716976274454833718850768758227701848153127971830255407467962794812627164020106076772531455305107991212094159974762020751104665719865883900257183640189352041664582208785686669688199339922173382964522201988345777028397708634462540711870063332978686145021077262352379954110498243002588078865517535826299344832594975255910603271374246202729452260500927935392235117161000445354060350514284362178124630293794263906900214516027041004292114557900471361506043298850464488331105195366294030134544650031652379811260750148581104785301023303476777195647936982964856829429585722124262472102949401263134324157339848741879207586596356617109345017804071203656278107972561392492052433936978486901649426613330316910275822729293035131417714405200868703540256297719815280642426425977344832956362244365498777108076024197670054030054305259576039015745397089754507914451915761705649926565242622305118594974660601214035344234689540030840979405891520383144031469416492785747329547514131841871595511848321328344835024380714862785860647023565062862830978417698991865664030583285370028238803688478465309298604841396360039849852021446884486666059596550252353864372416999233018191095745586369253060404311864606088444526469169885510067565818558279148711160881328408858782203803921863942727267657946983585523360611706367033650887191253085186108970898551485571600448490213701913830673097035525326443000629344149875629351957572851092489332686222080791319769097497466059797560957142511285936429869613525312337981899082700875274156609286535363603505948113475309247116714083347067107077278248013819875884485670400440276824227567955647506524119776724125075742071273645244962446673698209536115675374144951117958500064259250575163408647145299573245085333104089067862429915384685741715180255229027525889066720172422797199250929563589871821441235584578655620033065484619095684065169462587783928437796210655675140724780919394703413272891315404159910802019645288809168708724867498216076042414305620290663060756703988220715105651302518727254351752871953751567064800924372772067571074004482767794327131662706456108730679879094847892147971296955117567117973091669497923873800746057152325590406687890485392032783958183833686322810220743608648557774785814465323084196177554936647646913770257966498475897868737807521812623392657516892456314841952611110581544997414807462700124749779709976137035664608237364150473430687458992578453274553417280233529865017498384314202031904874601252315589467772892481389375399023291386153986397026336082962510287797228420055391569659201752929512774011299715827749845037514015642452564419962295684379229057266032437220761484244704598625485907789893209816886612250277778587979618025212332550155922862157841239362797147033743855519981483431027304903602015001184802208401547448319871780936674613357908555391672625861760021645331234577714201308949135309098634269184452033570412532084514809290349226192230722346955922032594714803741787384370387738294516816980699328947021184437176921285356569918175685550745984131325055938938467908869693132310239721144235009761936079500939160258455599149928913857108374834399000183664445375769421790789830509630216099174476849052848154537255504269840788116148962469496433947676483374111108322370522693140090106397354561598641791432837553794902200463212799635848116928412858998148668638908483596778648365277461572209577769918940359058465675359553654153188128619253747005520852927808086622241080001752311714633659068616563239693582140151595751673779059308083265302247469838901051498982139340236948749564724694661901132762767468937355828888172537475410618925014620354887712907578906047971526976465984054455881064712497492984443939635206173834302091061058170088847619273570407817143830010085756166339060196887024128880445382614447501215701126625865531061022191043412542976881984950672006456658006118250607326364517658780995302379559159066895279952883760338341525509811380515332931344549520436121347295361668755752778656285874162016003361104699966327442418251362971090850707554981516747882643454428214159633810994493802260983383480014827502303410027708792882198409030651791359416955159724636320975108265423643502257565578640031864197455068040402571533061690299580585173502611282327442376552652477468120233558880058266232237719673892958990255128614139650919655305868055315485417984320011775257495887446430200009454256829989589180804036380127238571893643990986878186481148419352848454120761583469038854516495780512186869106476791078089003227370526417626458501325122299789255251688286756958836813099871593247191008301075407782013204470384568930405381824613937218635277884068512368123848302461170210235108609672564496166452194425916346707095572103880104027237712355562631550082148977711367412261640230144869476997197507757162875377135653227626208688901453498572077671554906617707497555375851843168942083603142723475672837824124264057438370032101484748922354979275135260838438211443853837931681726394676555465237549306806867624044210843980771544395158064027813876519582734555061441548976294162906024014536630831557319110942224141618194742176386504466957179891854130905564848949537995081356929126939698152530371250005120315122977634118519302661592435042388697404217967520316562262170709311668210844657952233379476015739789421651915028706437665492240413788384948499129107220558684493997174091787969934889415349080490101133526447671863144972978021914805022343640549448676290931506291729205173363163842417994130406765721056125310186400850883276471236803466802015122127089626414961770411844015813972326720549504258359866910724901939500172774213751657824988111807794987335092680762574390089788225021921268025807949798792678684295163926210285319568863047314428749048618629654994713596216941612232384824840845453472924963999191122573544257641507289545647754408576777572274751621227112184527834589000569772563597363938223443894637333150011765145072167822070869930874239686935802311230550749813965260478654962680955155624159294399024583811220484371872180795497027477427997149944130850226441811348552424139403872746300259069626952987777494347118460620233853108176631076203065787267917647772446196114523909705836150673794097262614000038613890029386155791388494793977846656073619740535474226976026791149001580534733850169417529337307044681024744363874379822278558874270540440330535796788158349759940222461964560591376568367353288080425245954056909008133492890295061216898553136205187278152359778829026154318288674984717656290762553065408859069657484637493577287897498188553868527381744077028065752806439846043631709398127114167278437648817002042051643797247426642059042719141074159009278259153049035977214530005049850186011466396513029421169804135266103873524161501462910342539254884584902158660832911370629887793052486244581170140618180259606259946017224207815786097333249445796256415414732663587574379717585277936999341395072114123855094589828062784861806480847519035017785643871896751331667623150997712829208522643412685458170346037412875161095899329425012339238769339897305920382392919537933093755094904786374935906584695671606886750440435251720819929774605994647150092668749572908408408728216186447238636644848575420317177706333857947655562160526539835145219986046388118525613220407862589954991038155366861049873566917477398358831117549969751484220225703814200247581657918422444604942183016010207070077137494374938399970351299248182755644822069241534692761191251989882267652181611467683252936010523651782923969416456072791202301555446133016999426773022452526997937310787247771393679009966102113444033307903252176380261841432753890321726720055091119017274096743955748846713671166480612970115077845543656481740156594285098930872918288501328608175172044169489668245144607339458909904378016957596122674542546791934142420885681579031110727176781478413720047410680909283453944142268372382427489309183527507701105335685568346654698226833402218962215308025937320675771256575765437203543057508780891552552161064816945172497104456393793561100765230766136500353770233510613673949585129070345927709260560564739369761475369064914547638902032798680207474199284789876637756870093191894274393270551924260206551733774813900880516720306064376022617435139080680866942861812335459274539741839725471594603688189717275822623078698605061474683358958741875997918149715371409714504352321637164300728222321950744748074296487850973209459660952649286893990490807002629288156114419211468601415279653388960711864786946343048959647810743897724875577979669485769535363287585500624385419888102396808572441013876809521512070772574081406529617046633377543403933515636285261858750079292283467607907558354114484917696747335824992410290565264830754170163954607529753254101530979449329664487407543702217715562501421831521082154588437272964561815639652117847093828906736874006355781542750743897547635588133683135864859220599771344168680574999242809325028173492059076418504107520710453516941201023575434199743176571593285952007314671456324666621566697072683649168640762833379136380347595425065313425122477628720130629616780495233256167865853571230538996651356443591848745557129141445622856060790447162863078355082932245022059597554834590547337584539144907421111907033851411929832074855501080015510533938214088398976136756278806502666494285303423958505037899851744805566850819817896059248031989355446156401611483054601811729654348905871829939285874583963934314770106036735061866708915283506784674495243304339622012855123388820476463210831084413912943243485890010203421729446061069181975882029801330844972099720494267876268224841679932820674148538295307414224741071122304965807778093771518694079806770953621170583461952699604250494931121956813204047591917237392879354732100506038996051117723562121101754198152601677130700625969195010170440576612961434796539180936168982158142934334274670184784203824783464887348389235790518438086609284189595245702957951972173469899575706329917682867120170267357492591538048930814301432151317582274925652777115705644618513170076287970911044271072736015835634745467534170669164517486250426194801760110549164573626641150920568998508175699441289831446734108320845180247310420832862880980238849461928941302123283120900099091175619167214801521481653033325592656020641698288997435717205232903975551993588156523572800442858964877189103853203579619047764066143912087712685700795898014878939603770154033129690967079285529245723002614297493181723224299394603158353227364143655376975112564955693313999753516042535633456932146816621725614256559415137539539075778690388085939223343016478621068945495335611654030129908955765578505381166119940981894115547670718819371254929577978969631715936989139377176492874126959128529240641016053330237469913019010878685618132256558610864626657855531572771481034950971940742261880222040451864888698857256988873326352975024843146808468178825324682737971552260673361594895759530983277435911053556399694385262230571557634333791830867430392017364406827727131729896551606406731848377738034611179289278527334369651856381137716094802612346371349110346341002327757655514059376317629613505426605961718921081965294670420301456528319720064090080828806578787065666541269059537472621970335234941761131279212942562403110621435269031656753133930236738549043181090651615705650271208046265603159255649784279689283584745444772611747189754377552266384817100524113636349092122854032179652870907515567637497439852709552366297543712942375412391986719671270990408621110003298842406616083065728359620128338302824014405693092604177305680806659956384679996639895311685170612179997095350622143493317939282747460046934009063789276409819145771974296251155499082866572711919838875543612277677911559970196929361814468725094865528759694227781139844778927518963761570616800645036766553340524867838906330530698076429812744907947890620774798734894459183218443753287996307149797013164026307696978235008377670820793037903734615304532949603959691099445670803749485400360137378372958542753936880782845656199935518308748328861304757847966786608950547286586925973830804494530167533903877593810910717596735249045001031501002917268624292907097407604169207617339573084377729585326585125029200074392584948846779247823898857437192521124133006315856191884128155741104174185625080050224138940967137531402748762521218284300044202592892603950273571657820027208903826458555452523355440529809044449144120332454229982953323116139148850092990537359744551037709181380272314342205586376043204453896069354690486830561011816561646115579726052987210408841318699418268244392912176309702208095164587405750396802565253478174936851923430155619206293043495300633344530683872734421377983571258363181841610629000118680573031839974934306509756741937028530090023744467627858768643600011581504821475505197973804482678179102156709906020753309361090883440304539049472649696683197768513675544908294834105570221720166972847734609487674824404573035031856377269966371572770581767173694247974227619181342792949397268058038365048762155558882679107749886828403031304867754400027917258124574481633339178967040241580385949571193839069413243454634239940149759571852028361903016356041047950473798811459381988699463981926970407882583308222946367963124863662659499715629560860188830215932972186801027009077132257691211730477360140755648013845814766534868569370103802303517548272137167602259731175335784454282286342670391087132621784702041918793897874383582309898824571484402561502763084116263117460310653192372891952380531760135096296873231441467317398961485531490135101324916892364064494686679687237746680909497116672707224759368484527116837160197314428071225723856609955355822414484038378630280028887892280506680498351710262307785610433067529924017465625890420909474737683224631439138527867217742833187533255550557696823898502156901239136436127171264651547398165860733615042210905480710044754837908821288101413457186700385980140114172567233313467362506181678031428271703566952007748811026885692248435618999285988603381926791195853910936678376197245394272038316387039611429268455266212123997544764685733147755398863966522849245212995814281675867673048945885179018638243000263855567783617540663706498015920692971039844555240973906856762489853599483346121410738293992390050803829005028030752793157999199127695050656054350313768465328895307739575426915813114067506504352320139287148665382300934500760623039570208918145149002581526765864722739831134542491273820783558567901157708726434470060345647252093485374467135933235860663465672667246316204503615283070081163025618938255951648812912482637050984860371793568937241108999435776727161846175554205233982249130447517854507993329783189392772706894610650279274557044449976043083118966468777862609340878108167696561731135132428329761803925221240410124649542591606588244422580874488343189095642744016207749773068481378949334669535924549349414529780271719404432118347902023064522336051168087350869944003233679005633085819244190557343999052515333405510450003247950241776130434257733069880777470842845269845193917575691009117491826021090073419027520276813248398381092449935336145166326720093657592210302562628393831881560898187526328693618708344433371235436633450785807827381295311738267321836301406143364914008820947594373704671618626998581828879458218529553270155263043495257566477546641334434690035989279392608096369239206677313456512173140844229340433815815528594036172001609363614290711326610070139350534664394790772756522685520191718255093821154531824241979551372137143424145093181011141091500097461415337467986817293501050833119778669973026036951637691424874561641231789726347082264745677410954200156818540771888287947037020960864539494911580487720211891518623543475061803162254746340478073245326057064164140584870120436329600379674735166781210053084138001767812807277962605817449065940060178497279972331684117071725565689389507223892353368855551263925767390080369573947565499449584153117119961261134658900988540803823875705687617977665747836324842663326663299630942544663753512450222042821930542320783289808248085897229024920064978817755206840604632658216107661623173976584984466848337956656238673863610918940803129735640186616213871852933956533284350913239717847710328537217976576375496381444001466704191219734479564244775379587705847001736264311490559260363471794823471662119104849989840459628114191387588448145608624590989737745019748218602871870453998797120002403058447257417638629229776050533365620171806210312717165543436107015626584135965861304745242701724030406328513006386938712120146052064794396940695154442519511534739454637626619372293655776475128280814176229682584103147218151210209107842540454915889726732052202812662458205025056545714171449893144844372258100020816798640368318238370000605840662444190162836633611426804530723794308207006426539375719439769823830091526170614206221923337999454113030679807248285411979242919796295292660448376454933554607534225079281778845049428913794320705517339180569121666813332439481556203892893729992068128348168176297906774401228791618678492065843608452001200124290953686714534884541881650371664692612761763657027762309775520686602589128953760476289049666561540259205815947799747732809649268749113326405722069016547476806054551873780015814899115762460029311046804868645981038475881287417700344680453829949800539579862409501056004857636622774606581321479125655760706981522615638100136596366233765128838368220811426166316467486443234573038655362551779864731963410250636352627802990733070019054094539540420153719351766936889530248873671521585092461918857870700210043236930848768897256957916660442690751095884660161572113869493001648269198391030811578680352543636912045256965995700869187539958657022680135491240317757756184231636845000075006447728036792450085896834960755183869054624305765636009734719656678013559713120404081767272248253960375722901707932894569317199719871075775029072010287687052892380243518255487265691951806432735246463915545846790142623988939173669978029635633537533362724146547263179864261636661741855173840590715756331149705228181270452991289266609675781390938292466960691783576533172998738624725125840342009538596720496082066996534335397843433670121393383363631491336154512894414083126119080304644909170756741027302653304204690126723239450019425813258897568439012319504927909166550409731646187483747166228555461662024798577140296531159920106924195436336038130813019577816882227018461440351476955893245724058529187035672816734050743851469338719404553289711359434395063359420866555909399833385588084542567875888698395121261672704235839620520833576186341912249464119616723825265489568832193550018467718242329977418890722528534167161093928697547627866245242571325138258991672523673898170927608008216038798221748467111573910868920037192897384422118088996958169840263176095788069392384393757899245305139469069334973097539969861152319035870772255432752737185176066506317912372207353161167735782284338096597607428400249737263350033126883556287184003467912825278722299994216402213181646421672039514068880329335350077186323562213385203334195175176302964130365503028698428438019033094320602994760392034992207133113955944466551473298485725233636562090085547410500885879636246663238363302552771964630307907262730981446916003725339489401693308883822120902348531324994487109303523427589720459682230439107170005846890231364139643241227285536088531571295351446132863771640547723683298060282529849193060364601402028160023443341969047751876885474854187440034849467918192598701840366396404637555993096582115857446920025091820600591730860086078157084983612927884805904344719072927845502733636942382962987227771607234085343666907133497352577156096755644576668602850364362500738375793332234140281028029842655531662686240930440281475634013697842790360797715832805364561190509150296083826844550935370046895848166618459475938742182728631640016378012486513146179647176936408695331797816797053060713497666898362160192759110854723831514029722518525884863316763153216902279291401191242842641490283698774178341959139543247000016461431195054728489892144599972954373820792945623298529990789948739874751303298369612648639717958658745866981607344641582531703952542966631356612396606014361594861227813544867401826088561127681728222668615531891739061297302244415209118067729864895294690697201103074672564760273266654039733586088752369322880821446544589912792062308161076434572817812466084019826676253611270141651436629535348094588896658921855559469834526976862004253944261879281187332711205122821283543729198581691400937294440894462011536446571294820607239128959274322443565660803576204512695306981548768404155691377940796277906588280897773491690355090051430883047765418043924836004501498054199948714847692653305099950845520186007902898803099005795945259718770923920452260311675905676145117356303844685287653410414312454530413914208330168328403794875764472988724155964902952714129134607706948743866839453822483741890056800041400104375789528569791328895151618037310260995372214607297600963317058884837845701864711372039897497735278878124441551979773155090326190982079765076799626272904910562007077114967553745208723985090791918021781199890757424807581125620180760305972691115381427480435305792183060671421341930103283918905803233162512160992540548185915732808255482948985042561362264864081543192183934469578818662234749122419434807150028419848350986074968768577632820889335178130726521847497440509563015291365826517448774552523958749402304542885973047993209679531812231343807401841001207000764959563850497315928418691785046686600501750493959800421041646072442654485106633445626334044397293993198906082309289462693728071017046790147595781950906381265732598354182748561128766045091409283757298575835441631597612965071749304289046944305380731570295006253555162339870211858997406511919058044874304363864590456475058325288922941984628621042816818729970582596884281489382706541044425761663441081082569683010009399082023740525320938024091270685353917667872342090002101160578040640736868925850275727717749440219066214298417046645613913867011101575261564997866656425239223801949144551549306936739386228628666058854775770626354707487675256051077647443399637058981026355484256692632129486143336114627657704430101312271426988576438755565911318979528602928426439530580910977691754889273648596979505564504980411157717919926961198441865700834399422662242769137916876887859233451784159727248947634965773799455717039873798109362401148112368862012681044198512555607758298216197955494613967764740584336000719170133586824215195265522259215228888931966031563256941564176494084429679922262263168812167202325335021887863471430977809661174149698402655889758744556437690108534337798751403885844175993283740964147226278604056048747263029646314478842588899775895565183975020722149180843358063285555513036604992632572586801960008574262627252248674828694234937354670803494891587698629621790146161168436005565153412386335946792902626582823285876757348670514105898193745918245634300492307107518019085861707855702378634109564590806128246944769307350585916592020845526404068609206735099244827266458570990687073820994593796403532588439398858010515385059522922264055806839217095035101666830195261817622614926176044536864198048857683821997970585440203648301810731862433467003220178617336102889328335443066693602906539025618835654376661277433536029508095290420315790227603512994508801919297153657181511242771779970979950320907254675387854264689125942923219954065131829320645667325026452615010259045095174381949669683540208216669022311034224534082083294676737514418554187732466838855084357281347927828826297188800910492383010463668166477240220828588728803205509842588066777035051941440646004509610019329559959122685457722795346817835681310369839021741196471038451107625699220474980607354523935444256858456685051217639794565385217749123462102460584095409456029748123587661472890382833965467858482082072466687096566435747121768360725228691630587961979640136306818753011125582526396912235408967925414807158725864789355413697106452281899155352607811470103406142000641975416048927148229101443206505472350074988455770645466107990630849737286507724426470866365882030613910902826337738452664117979055726569885730387252567955041521952586237042314459853367152653379932774676588715642557487657888497166981067037316580990989986451811488987471600503757794371635275745051848281795729831626291324364924816942824453181386627374236235250903758423426184930539543304178689623724468262505013352341384789029971565701026666832312305589781106302858513938033616502652596203059095807060384978932096100350125207047828719999153688458928895943561252536932194465619858932123049159239412551207457563753071063601284437484757734040241655092693406514900406598667606454481171242172814251236658659118607571493913453237429476839115399815840627830832299063787259185164105876154504667481321170767802301865045502462363311022504071372363455593688965772092041899892301013681391489426001188194771770294202501403207188898287221209695210501478966378064939192659303430760942535581789165735702620100096468755909663358142637670431844386239455854674991777770799679981248307598047200114174846042940424671226311887519873063226470798117548034758779396704605769145813229731452897478884900275258025702566703738984453562448947448207786764506282832564510937526797303424347029943954342359228282219731880093542753438558013377183627895977823862090683475018550994146996188266506886229794986933524953028640018417943795511754807617563238899035911920745198597222576074465259995374532837688745011506829953801688878721190801207245522421410116381143762504372993066130875854535832953225329786929875897282033087713758507166771412049260072385106876844173932438108137364064417021621873589448337992917035392519228327411523376397784484886633528673489847032244861974995655898027239348720474772396526982775341775404506311333873399462765315555736251477077962330705615009734730041356681752992947968456334684664533480263450182798796725227310700151919066709189913937328434891220448347822016294294425744406697873289687678668169798368385737576213651514360234451847988858320359521356916360747233272655858115088116390193492607097370522474127719453800690070461554209224189043012059409447366862693651642134025310756095305814358850973113868938988965745700428340946974262715173364366189920774204075402572978355891096326342031678723563793304575896455538923220134645666984207411932305958624788677308268146162680049893386297097448817185183435680869588369938277737029266057914127999179022433500474435102299769170330103498283908826634198603640620534803857024679573795809879918949186468843487752317768383783505564935844614363327340416441142422866481305784678140402359215110082957889053850384447599690172101920049949882695821261759597535075821671463855677801824759664976824783944941041390622279331920605875963969254933433273370924940820087795100594957303510095713364623338650922323236574389677137939242941220845556148322617884727893482044920012160148032806621777884277476851919760528998759857996153517354610140144886629969762274357309997084032873659285604368496651047765667574060112645177834939931019511975717429123421950449342308180982053843814738179299338199163425447791352080389107372304933643054931531887448328559201962283298913555746575532655483347696554246612551758344896489417181137666207366032238147607572335867934507031809170378405248355038051625895689132104084893867216541132712569660909062198971838991259662443981796305965365741725599016421322308907631166341731353756885387990546293425778804914306050701268835098884232615784526737795723655906523984578000260663165247479905912961871503826132755402797775672057308904152090604069381736718918254201544274623866701658758813721322761292992364009633020473816558682145415241338260119579782273079041327744686047912267399568353758537990343448324691549108266113999662695465191347082473972202832730271465233305549256155930871748733335326980822345212262580919967873845535512568229942403937771015786170286528495109205458477607573918188736100471146336968380805043724636726292959822105903370371500124434522703039649673599248546076084678977084380011374203418050224389436524798382349411989057780697005258812826872340047169874000604727174723391983048772855119823634682607622484591617907874162367175866981983085865686416481695987134755500066785680105949401020740624774337661416738940346969729148406187867311297550247989411935705475048762766438794251311933398091781847852536903158329395145959740156987495299328266581119376825927361004063383026474072546300297391585243604402306211885458796798442452018094353977541848402820144726162382763677023965730133597295612593468145915018375436210037584442589086651247480310812854350730635556751686623721438616774126840344686478120302743321044608957395325093901330566676616787216357531719991716327884914022405206824272964094699250878238506251727217091151648893617820684033314633795623483859079796955037668975663152090629823859510113858232001309803311396776628667384448367189969805221744502904798725324379468375117922483037397384394704040501203946804914987807543039606318805221847074911118973828550101735099875257123051108649585298463719203091464246935378866358778767731763072805774889225973446384612396712640889007114847181069984497036818223352296811723700225097199865702653967622068960410081053556263481784936294383675316232809625334082048183981106427559298180268459823434059866190897693849611388440481014159027491516292754973437446319587882377468490207861068275289983093054217155998573738113784418109930171826006294805811872543394870501091194660087945508512495454582015956296805467890479614840483786725655445954969897520641074374282383406872665417071760561408215243032710819020983872827173047594537106486192016468774606576067865516858313798330533934290720169385992109902294303551200362716955430478552345881306083612064226861968828375157937907531241245168857313462085042296829203082480151944932127939827523978050375142190883228628221831654639288946553932109869156248358922424286728935700055680676884964338938876574418630092509511600967952931161293009039168178760315555535045082164643236444971927539783646039957390611221310961552404851109456290583572083926863773793236090662852651241128171024757677062466167001784573899501924500649995223658657420237912516404976521715203429687625361214187679966315803568851064759131907238945625115439120253957731095780282318174177951833428307851809829930060886809995786080016359215296012544135333499175790036578548199729523925682238687091971410057724245748051524163050636203904870408959655094421399271343344790992181902118066293945657981670033341020176787636047927283476349731851579765715999583640826753522621964039716147744805262216797649419618588985423746988178914806151440370004336979216079281799670040140171534348456552429353848159693192251586063891528366921191892907353669381716825145253076234945028759303024806258671123795835247259690722910302104587091255683998119406318380377947394964903200926788852634611454897722625398826477771081938219116743780865823778157786817150319420677132869010338056272932252478561209343952673573416371113479085850045398491038486532229015167862069384300827569156551045650475280573923737076055355606923403344101603152816904842428503095330989312282592986869746148845925811841373296301229795709072754718929341982073575515157910462914379467554023944044968776924242807590429894837478409323346081939213962769276420671905831100426102051514062561552855997896760159834696970139550354947955110338982501170048575259317754906177697661472602089784438445701276548707456087058871125618135796641051161523794706563694559551221024964114763885909256598245020786921229070973630838087777928634582031700451599866403132853280399503942778783501514068414480431693973121657232617202985888155687047595819664222176007085860884147600092418215525241915392945171039065826216816174382717372616445109489977077192915229358528047798853757731289842624747481710386726024852997259894102811094678526733786166481828499753876323064027578636726030993599449590950553659682744357106508120598252684797935799385230157557908869648888906670814105735549698766664428292172076300226981387120979461027294264948031626700216927335285488906505983405855802485254865435460547067363403987706803134867945780881156386687418039923313783878059918337730882526973517640688877628957023494678826927323308194320572212806947686302156598199290404088638506728368745574733815462917985578041137638451951114624288523817796312523481858121292107427232166003278862113588343988816534408816913788461917187425878062749037621487981797776467309365780042082585401607628848328685391549519393444538795258304317041564792592767140475251675178865269457263963014284202061546706493807120138576049466114293667121777929831163192354393736629671992047560276784489246504092606156120374907255212283565816372756022090469976244819915558830918696054607378040287639417884134940596518461580435870184418286551229799495557759596466989368755817578164031842663381272974861381178578218041832933914058407351122053422952366166070637438296290756998887129629043097473107600258187343609022650343909938228804529025265329136092016000205900614316976395745968237793217938306228096043350861486525712617971610501701191402096894791757539486945611692419930315998701375434396800992245232637342120537732813533307835108614347954860006632448430681180333638226053905026131026501415405014335638787975758586153396014618079760225896758026669390189493379696923193789905775562454976041827050719142436674665905491083597547602363945855402974467641333560682234390831169184913840341344684671042560098399963355575260554228824013972384857691289956607197375419473417755936116749063000023493219992850938494001381959990569194667104334121239671620638644572814307348921847318414878860490204673662211570879164931178312375323006776352814775693093263870573564051540283431041059776104460727960984249428207327846253781063830194528589604563856077491433521001925907090274699798196386549855414376721619195804442108298955339546216188834656744967190438097035098145055110644052357401283841271264544109617323187321177940651906477786300626073171991394462825313854488149726407147747989719315409468483488725688101035522418821092282183726702622916308450808789170550642700402191058412048376342237643593746251878996719123864086278733276876594851808869505485043647892395975241194665356361443486516251335819283149752176759007544960869656076224463193552813218887959753702216503075498364695587042902578310548215651566604292140199449898411045624711203735086868328046994758344453548240267088622365676692396314401191153807403560659851125706891779267191518849610038440323602920511825392095802372331597238585745770742484773222527672071732160067410984504356391649933024296158563861472519926990457129976380270197699839965205548161902619013693295387661896340185198127096585558852369472798483701038235182142300564762700203661718677819837965881115009301144325188353178881631514714018676800403110195077586856627599154251151078990536912235141504353435337938785214126311014720950833478885755531197992159936746720140222400829916878918118512482617765575275679703268627844204985568813821634833142940342772329798592954871090127737764581498049582543266890430716263182865612046072813786721569355226941141048696211064057602454900099509778955069079351422492417305363193023706053074367163012411775606233648909349074509869329853524209929198012464572130927076912307082392922428606919923453849455405825378592246645169933241178193085356992374135670237307494514343491174723060480584119279065543247984811835375961293587672372584873901145141926547458707080511980747791028427691236688246242620298455387218816724084869418341975112205740347896417477053493766599664052573567318657579280071640457124356402325244966878514511262876178734278749392057653348635313308074684642645157732913034496070240794010654065645320941286964999905496403004431642078051460642596397403443222469406281320309705890646624613980028961235266216601811697770810441063355987674985363769464333879110623394641174346680344290319345966045195819568928421961050793510827250103277001065854719532187400576944362314305003577357309021923408237065457552263890644163915933111068034927918825335113120672078890185717635320573124274701286805726923582951001855741728465201240974107445378951493106235060206821664885634800942010283605703321035243495591423316744006399504413834040329901836858329495928117386005739262164700420016169882992469837348302201568625461945590394197546050441694072140751579413531451291468464835777674756862036229301580922352832386089191049748774605571786527579435646951759468145485863550313834489991687754865691845611643111855306917838385691158814390148923887659343618603116629916765682714755745210451578224038573120181264332443536097246817434078651500380340578438470971881045932905042655032981288234810746555338581572146562871558769005381522945211438194878210847174643797311163547359569344794723117466751212276631981177474898812254764100069124697279400245516533982869237101764803886234445985117844573604388682432426858426344960098094291842723155891616047486951163252887206678637935513275159010919786004324419393390782993950979142957401472277708239864499586314461119552539743659133292061198400259172902542134535427533824649662476064540857414657236619746880339096030475214401271093556091054200400956758840507544874063794100750370318692021395739381772830521987396302750523669265863541203674421946301421557892549958093149491419512764624314781167961903783637711875654256287311387915658846941416200917600292625647880185733151116143045520854952640605545445337641650324932450825161292477225772175053399998724136042302614827428513800069599572164967721345775339297382074515995446520709090003964804480952467563085556759666030695238553419874436808133266468101376954452957334611751737282038682682292246466632960811208731527778294294242780612514882168248496933594903132431695045161583447037892826053337376818521545786926045874262927109249202309742639620953253635165880568908260398184948788136818646693054507757906019134093509410835987687163032733176653192851430503020563059027075625234132448503256639865609489423370603556299215559281466412573703958479617466040188145518682895843800745883385220371709749219008691684701372864387526051177991865975798356920018556106776674936335845316290749712855888539532446138679102411277419377967221965938344707394597910372972626433678912259249530440729253143636464080393116317271642009888474659687505871745113513175984192551457758940858476964804535814567801652815609271626996208278914072381892908528606279332020359613259885985592794790325312854546055024437420552674281951836395654083941213862500391442204817553286850844030208947753796657337712632262032636351912432140953300666175307983951161412076008491687874385629729347904866863809005367623460502337984806875431654371828020057810908517539257246076900413369165741272755134475714167647234864763497267619742176540727349904694392487445159675125925011324595090945097863616107962910997345666567509533131470742766047051987344643597954482805213458316136049715243505145009064675886638579013783359022794973957752242784471622652168996124741243139458192638560361021955532979579682950378232464634097163564235867656539785951412436632165704740957242163162231967718018418877799999163908109307099999474076827714521239824513718416191427131061785206998226364504851621286037761382561553235392057967179987698542243495321810796178483032175133274378245554588987103527852677807930956695465395621011471505954393911750744464051829016232633737242195711859515886354582200581634195321136650258848990350826022194834742092208273459118481953105537614063397356578247590898681882028379753901429406449900514259847653740715298496347876880104940592413982027685892356010254781598824771855768007835581605928762118593285999016566163231199963062602494488484428772704551869018849155433917095823381514758013876140087819820198724430260219235169462967463908516428944299172579527204295068188272153402073421359460854517210893051440715659367664891721550029561953413385440734895644614682070936986735399006541122037579636377343151976009133526422809905567076432842302636395468226947667841489143698732570954088952891461063927577416226554309949275118221654058083711016695163122694112572621922554049453625133431670181200997954059140313428725279089827870558946250679770953704063825993245569978382098914016724745223211744334323484797262952814841145448354590979189212230386640811393276362803034354937353288972551494106819954115047144868352800068915205811391062307974742596403682556755882219701421001871321579974906028335674243213882612359843130264017898111714971573008755749394161760003253779549295656768654217858897046161537257971682069530224498710583529658597860886091623773788190619619124929901249410072243480251167590372396497976130850234994122356057360374121077744011901842107631537002001578721327827743737191488590558401782039390806961101259926703688679807613709642755548629614188089574810400822137148561553008268037184908352450985198598139273239610244597183546238932165473199272271458792826816133685788107476840858660327955312159595060017812177618690775376075417369233977467107718052114031912962478515645236217998045998583109294770173060295654948050662017365458898072849016781105295600836089964132456455339363694185876567485462626192998154823859943320868379792735521682515762812220515103811612820289552033470912911208001066038344383120290402038428358480204154872882809976527467337126899049406580127420631671767164791201125522970717301204746527529698170559182952878965798385462078344540939280865974401101489019319999819271086900779562722244263272718756396617475749852529773197584326582321079103657543153118757403861598092914036358930694710341812758715146547101906110081849335453058127101724557631147105747164642189989779531731111419902983818292941488050508705193112440224845119795306064709863473822836898826371255268766661291800924440973205658377398833366513923275500878426317952636980688391817156704170824510570688700276743574080255861635387463307652030451578309666072911936162761449946106878836229727114395654736858664943214857471565871712735207160724267146576438418797644775601849611822037956078054838643738351181326820090333955511895119866118791995079039232953666252615817412129132270189015114818202177820110655820679553989475379164450206080702215872034260744278194013422648968490718671082742063864819164674959758090694728342933678236304109433747037739827602570469510443823797090319344004188668554018747716012699766470838627185663258018791330216574278809414084296665590075619925064104362673090855067992905812801934085225868960759040845077764204932452981752653522230860518294312793882958614067395782420144064060887750113519050503373193650195871218931073315398546219061075845933644900591617118942018632197200870251786354395997910795058352707084718551110157324775109719167882776215612321168657391963146588558628354121212392258623758197461238897215640950399128078072688371292557738906658033907560024306941675644252431492932736319353631630267694344836931288839436919784019012926673888419859607914196867842574832109059827502706082561622286441548627290494521993420796288780356173619717631913710664559409389486958299846580921242792296842979099950049016410551345920513260155274362345956136677899596665538146372781755971092340867312352267795429097757734673209256472413994450151422043675359463907619823875918058846317979448689209834972971712254833071347000128317012219865626570095654274235071502304434969537575997208799301597703465081884273233443916549212839326958557158688785337079932846856145129338890328362899665097772074217669690890325583194728188435847044822014796989359931397535509293519384962752055257555732757752034947795019857228479433660033469581874628866803797610822910416758303800527807512178768586695519829701607424880392535424862635663835791441059571076129268794965631477815835557903447852466629655984344495869216559400868939747795558726290000838395368839063576158898046904679191900715750069486769832192079233963624761834772039532728173987364421258359470355092619013538148062611409612842711060585399963467401007384198847805095632889271167140893999140739282171165190803169110053515676949849852257518052994402465740645732318165270747850794448124414647869785654136234673631716930375824960944624032227154419682645764487047329625999626094150304817248827020835318126720545562740531864174341763749167038943078552860822354154538285394578927685289520158632326534248260328099874171253251323666426066851325774375182492220605402303442507800676953903122793337647957235263751573677940612452971180265819294269004375607638281311870133028507622519069466756015626599360737160771397788182552561691432497638703653657587987561731013370206691334187916459851623035888049299212487631554604224266814119956628754541420242157663048028094656810731737541152179099474408933873631764863252255858604551530752983420190359172630031058012275092174062551822847906170366775716176809091182031863174921965618983955673633601915232197625625420516958953576399982923283313696129002358121817311038126964440184965715726404884832418412012375750223256272616195184093726078016297837727413843460647997821704583498447407274392448980308880575862800827224069942713075532620963175480053919666557196356809438678372107324314544353854877912275956627038622666356376192223939834891930908471569371536613804740675007255818991363930085499082847787688583198054396806255904816309810399665271832803017860318938154866287440227670837482356565213985109893599153428543294461886852333941968140455521208400227254076786881962198572867264092850512155612260291492590218968805031280549813491607313971078905646995685964538399379235790144491933701586372638395316003207292002970376257341046338315972758857310618341836337531560138535939805100909014471741065627931791303672148640975396039940106398051262866376971006518573115210500993967798744014884812312608764457728184968158185172054621360859970412277556138944332704373461993546507437286751674087847181634657862310594624242706412491599095986594713113898170154728083675007569877039448239718396298638549266325299478459468057654543403969233574331044012084198729324295367783139596023572063239762836660270432392558082806076346092088907818097241195368899739517784607928581400509918395382282250504106261146987018449192782812538498448199331880315945800680717581058181043008984375356670019054270669600034322970314737430704389351519988058885452637760552737051044960916086581042233706571442367096607397916015191364537842101772002299352112956986832469436365729537342948536431088635607160304960181467628826612009112082057764762047732507761455122854626788573144949175877404193560938464674826454903512596181489751187311884213057631523095611764296689093491849058243110056925449797612341455720577758891351696025926331279089390141600339325961810883840833156816587406452606430308111003790058835948619617294300894145768000536195992768288905370287096336440376920942853931273061123711178890911245394053135363362877379967722219314027543856271653328419516942219634382852491354780652236551838429560458775841190379576057531919303606646485142210997456979190894052554678395074184752263015442790610027546885058550140840437966730923049204726645656444060388248307433144613971334537116862493123258823743146926957040973688472239147213068079370486445309706531018983102434102683493303196523096248645195413869645689096434489199171702695762210771546382211231560012618350319709166696172852412040467137577779408004661849523784916929123514952340704251361536425397762768547432761527401543923534698783819031918652467851055935833753863909437102136364812295887272667094730672781990056865235752438289970881929385778856832049222502973651375418933662244209369047130152022229461552659934430563660656013546568427747225153693076572446483220746222647428298343910055096327109853023708597709667734731347807172396492086000385285771064715738958746847769007877176112741939065025719591874398326320817941216847032138581767431536562875882814520293165341224341110922955587953758551891942232412902273157127674846751583663699223115090402482540106687713191927832310690857091335203419483836463934917756128272917045049665622711403059872666545177258610563075586502302970533471331516570117176221957836592264919230597542458554917244506308348890648223949425155350514683446872697196263107247503779002229169038719619607953230127532145303100987297891927882776001394406206327753995345899155730143055115060303651870996956200361063501744744511264254142700354638288617774843805554926126246014037345374976147331480796229164617054208396323826471265447445387790200282864676818815286240197036492593523400051954834103192315734788088358391050616465231609643951881082916417129806235233764112803324349008733392189099582658452877996407049835216623433728016906504559401433982083717182571852663496278704379121639812772337828676685227735238651259145201134693066786151174188021346499910654370637010063556027832431011885289928230597273692482139662759956143523366130729922173642672467502927633221350500269922184280509476885295986988408423660177504086859694096726010659337213855652285389513388881866106950734543619457070608591815533523685161804353016517822000035011141044139274659533669480255158750707790583639228192137616197423227483129256202116194362784871763893815055937944903241458376936544636502043739158820265378177450905305231737237611288547388497204641870064099961587010827817946312992489200948404185414661897414385586488868728163152645737649727974053112609445495849245796133737104684391574932769649964777253471492759373450041549625984226137336363050159599350920228713705019630713952809525917365163588577444209533197500526361037530047691208254170562594252814572375978600273562310137778353214397758991264630470312724515407158049415619949760181621849978810751259662786690298817798576734737470287520919099586296152413102614188494339909084650205363379622052333916292628450617851783427091114975677323392303796240928824045640066462324557025010123588234476572319776210683889240920811373390945816025617796116166002372080943613937068253507308755396262959844722653145138713024753297709084088329796477660982820380557784978299195518954842997310957541529602219227607379874302265565198393432644480570503900759642611589724369080798685132440034856082209303115320964090030674613760399052999519365225007283820413184056691854037599156504134262901698060296732480278934731599748695226142512832164876456466858481229641898712075509997452107178216692577188328330651929463347378762219182535071620802569347412646041744729214189136835934806004140138582026273388736833118542488127607215424588161058252161833700888825191400160826716338419180543818569176776307067553202610119351948158635423955862787149031974039694554964380618470619636456355615855107473523131197693453467330121179274633720111143803562746945303292617494037892567171342681623764421635229951248706125396898807092028042383171153398865604520636625770998942880140427863331985729182465272070569611593441748167084845807505147746849354861917267047924979466207719956737926486825509078314419078412562603063411178145446995158568894509764771603828590865069421278758220069344410284977244024253140108655352324018633523140487138001810474733554202390020419626180204932316602974821216387583201935605254130257661868219950255617542442941548570833164201496020971201715450288600482590422007396261299902544097911485357210182739485540440161513590852506024538849349670802156560584038979744126286278755497847322167994935152047180054924610318413360224567468669057336890769291052843924389609844330585262571746215769044104603389594740221136865200181806372774143828806068659619423460777571397165896631011285150606421028937753699668563689382442258459847271196808820222256033143672751138897440258161830408466051896127696426559758054909675819594623364157258464664558934410481725659932381073506422149753169010907508082068229561527572155015687363484511652654006600404574467921361198992869343508811297171572260814915914717443398586754161883309958897571327849269435240994496545021324460411036789145947590956543866299146855644650370772986926941644349890157379655747099380816247302832416462193628668684881130887297926246531396257053933292228678075508007852776905342351937657959025588907122044961532922456554557791129278572448621698502085826724522426157718672401149209912633074281933057665540127261045150563973339744017997941366402226608955054453148134916751870560345910850555095959519250757084611995971304761194100972702352825295099087049596785973085506898919335646139451005930357060634140396057351365032598904148875381011507388175866301594184433396784162884139221418488903268954238924638007962428167857653498623493244846511832284067529846316423498752780731527125833216274614484194593235210963513995929766563406602401297535309782939379366643361167009157366124201263487894846076714724679913968118453957596213438598877834662206945782501679582535711364799580823235305894593748697140206151262047906006270323817613161005197553215022469860350112768316545914583936744956953273752636401495210517008341760997096668442138653887203109533864955126140766245432715239837112606034047607204219290082343371736199829787229900164472133192064467314984343798749986223198562725603357375192143451808579971543256775276030163075855789616749464783911979138723392267142978476354564599654456917737595374883504988723805667052605162603588463563358827066644083099770455263952900856786184871809535902546353412398501110231709232589989242496779424286995912823590710680096498285174330369778717651771732873327467394608210586367173840864694939193122530930237287431614831643511622475177130986842092776314848750355127642814593991712950624803205635642118184467524161954398962462728176825356587891268643907498783082314232808678853224034092596041909738957733024207832717272098195896543601065189548101947895472706997422746877071260472896456962719588772006167541908366491595171715090186149682484080600994547486969051095425004722705009351368129948587148110969531867272741158593865538813439402448183605041021556367797197100517843395803759692429512971161468958560692553356994655007206699158896922799113175535486516331580235466466432165015105019483485348599869693396972985577154492577147901294081143280077951771898260999366671078778894510841972115302751775883815257473394024464792467650639280516403224984859279954515689404270032911826908176394217298935306883429931771456711662232399745153852718280138506530269634173375022945245220734030221645441111875503380082223284047223244795345893067563793148689833088981771602817934880323796232130129357561451548296763779760795062682235782755151193798277121391905681490439057390011715081905672357889045569452838314802481565047464840639744853119491638578892717023240957081043807417433319898316505915828519501258968063453254810017876163215840191789496828359687345860345905171378434743771342463413774635964805758615299377048438322127172147711229528368746404024176236130565146673678560012861582428719929914048760704316798501337773457503158117122829854678589721611750607812088177489719985058781907470091124871604639061926382247468067980499712318596211839102043555872458544177066458853517020874140187162343699950270882249997146682567469178088307070905013442327746090839906047691959660403223061691839245651000069800973219694183496992168141540175185264895228080646484275109799986864781693732904236061863424180432951835454396832004591257759644004674658985803845068551187950993157741304899707092041950756468278993029985080390249383141882594222123818136452056287030815023046684359422408721585148018339006032998487486566865146031676112965783936997487831546294708697012857254731545196333193360344533564423063400140778302927508758653699330459946743762704118507662172932898021419163614499734936517282383985541782274851574235942513128656083635039626701693862062788257359090587029158140298630511818206313318244574870672335092010266650568234929405491464047479102486585265129677282661114835201676972437380919181722449051347918552077494547262286733076368105376025486506885097104482823270870298400438585647078992179158974847241783225000028543231956946660544223480759336123152284777582273189807818752096328107531626197023889654397515181973902921376071136119162718905032110389294847725047839456985441746295564856414291370324323003616523546633600223292295650133940650705568665414186876321940593394896484587731106610889987277979701386523398234498274778135422418896720656684175405924563933242036858574112536583834296734005256514633900231167600059073162065430179444543465797181488585982787704394820302443063214392407762095124429995409550874585334738785938415457293361732329716581902722521552399192068235086283827513935276869201058130841959299921689690185370002923626816211570403071600461975159716673643693535431638236364565610047545975700681151732538165641299252601031367467506739258318158222229694084684246457486684602854862663236540788839934556936379868541888953771181532940002766719393271149275187931410465370727215157559924160960248423978771322291853880914454868460427795574506155580191653997068592354499684699187019421574594870926608301009166077091750255685826916690561646593391067834732522779543571211992244447618637986703101031420127649624388059999263400187157119306135218177451826149232440305345964340652162797515154230536941896893883977807674357960204602766115382645678482108959771060544639292656604508772687856994832972266701699984489427274678059054232743026582158401948522591172846853221043511276318839278734659062317128727194007914001140754057360136088395674879644022048296428787966844396431267759951594239190811519378591259994971126891586156838588101501914048882962704542483237203572308525400174696480537130721453610366777821771677742969175636298941292860268449084905494990974780688513759665021787662214023654340117344822618705627853945769264335018186988467104081567749892522191530779461963805565044661333340882734529866785582684427150728778749968194931808364612494532147337287639701428773259271430657883873276646406779866899139024800153291222675352891701321022453267415465053826421961061518274091649143419254650008974514362389666377395304700885482835480499184507234383012185714870721043508033108053277560957160408133135736414012637897395887136229298956737060480506520492954424872118064132518704888738558408256261939779181231600971390745207560347315668803358216030755172731265861528165738374480494536217781836473582010131761173131060178842912091052586821390752101124422073612884295246122650430303842455692303118931075357661415070037366799144830058898611430977719477581501896850199976645250150647668578894214065642858007402456137302110881010370899748215663895194704161072960527577133761257243833994253656169236317319817670078551807992008994593892082179634046656687254629992851095894171769274074062167518708025016373760426435006199820695467553663910861211667474029305454026122053757860128673221914852769703260201586551699126757093290296776433057925270108037828094970018076948166171251700962428533432575299073031366070800759498036141581864378857515532241889285136009769373810912232955945148129139878717609443194615037381957920803449759167375120828188762269935397441234771414551906129661278264828210028329615526717572731674190216971334223550638530688249510164300104804342418013623753318632132112835578713582166257713604759265180508319693456675083089133350216369455246904824028106353224312570133162165457271527778127014933566556890490683343139869641005406213545754429120636624992758512038091878251761070821864217426257187914496326290522088889861973208843574705564232556822040178466206270802955597623204282475642344776659481877638663602758776161476455504870054611028778177228588096255710874578009029482171181391325922426031696012312003948403160525456810429551500192662096668828028569703265010315401008168316915627586411287752871990103514233733136605810563720063737469075062369747293288893902899506691164183932283461903333799730725433889761239185423715915510380325795865609134841778478537189163131205675856239824156759623486815384645479344975357343874328930660076199813010743918607359217361308971329618139545005972071513924041098853043648333046447728456207624258765830696783237464268474208031493140771485860678908179572152824798746306794043078901697203789981080142604816870988288711764146486488071193464801424322660325858806496598709355037338528708180274804796326231153376188848951203642093843602247123288812898164174006430328033769602535561822292896635283822748456071874679971063414224019180624761987628177164817175776078785527871478459032427016270828984771071136720124874446635189698324827997290348270849661350941558037764990329271413424717952028863329120253219049570881075197917034828867923962736353469301385569892280818760421275964662513347478114094806799919620268992039560599488068017054331516430876681372362176324487253045076851777780795830916546686255490964740866093827958740478843243976775130799664731158672480699265405432653736073680015295964095553596330167768005629891405090411888921319514667299801765314914815553428095269371671996779504305217830613149718590112566202101603775120449815136491512873288755257871447559400417422986457501812314158763729493271025454638997339265762466819481217817080769746986794928280645283503746753991349563318152639356474601461987634400560063117589278161166398018359221275978877032437230343154800452789515440219523821343482635154516913783802191304442677403104342003278092302056297711162665750708769189958549734251086851937112167469106689835994972646350616673503050509204227434101864546209264279937015463545213483327255877590222233328649004311038700516277874946142000631949315440299211331920750681328676461403820867001646682115112176759677120578693834281715666374268184688108332065540367749088300681245037414575088098131015437157360258928671749515712824130700740663870461631799835399402255218609795503444145228287374119122255387962405393946043859356794193035142689782245719932781913271952334876386480847691238584004519712569164948073506898874423422387136608180830908929336636505349279166376879494069647231755604064995691314060576924797732866916765174489046118329523075635263410932136001968749868728472563971250848344272358459360729022301737579767674172572956533927431165510010465358079057541692713875413546542786722308651428536199832257391091232355093966561992582986393861407409401051961063819992000531543234260784449324089806799253337799532699085951979701706251821650791384870156632720005173130500139762428033653809446483627637809571418519818109350547127466901782958988327199633535815378002694050999795267670354988330786851264287931540839931169980231196988248348584779590381401590489156614998226261797715023209216717026903188268057807159718078665750522922159731642652472442881551744788535742397446229552225603966381890001365841326053409018189833832880059131732437665091879679045815183337730276516894938819404965037308097607361756716144123465005037916359139542606763306498920724808462806191204636502628757030240457571859674022144480191097754715667018069216512059694462072136327378701472850299961372586798676842998038221259180674758418654639585547047318454380498922420940728989951051824060648260589312491165779575736328320545993379556233558572163031169404775245344740239297507090308036634803427217521530167392771249883800115405978572954174947097942728095268058107989256327397854698081302696115073101727122563568157660145229628511893876377224769656808367110579131291600746295196891142983768930209031267255664242287981973222949242062950556594063259532774899891246743528621016957609875602113614690006619435190018115600879583721116642137148052149107901630864958077234294932479271395579030839043551000470562032608525771991249444735621028690779473703353437128684809591238039742998878046116306519527660308091341631209590246124392979968283201602897083478915299396647996657099829460923937531036173843235599726919331989343196848889664394283088652195781321796479337000447269877173749104132204431465917943538432723721733971839931150565395357312879068996509395143475825053232106991526009215917122111995146662948061978378089781637784006863951786308173217409740886738306967565122625791320640123222507492819041316889254242853358765810652156945470956270722551688544834994987547743436166332409124553553705834516135073543951059333035298109804307884641196251933803842358916562494197780461235943935844696083997799133578466158478252481594857313634550813862645567401809480713063501663178800975301036813459562685781446943958577577507217042771006545098684028586552289589370726046645253066912327708522844787639001845510085487722566461347554071801854324912931298603241474678243875092212134135554808496059139817483920332297181848339127809012258762846974424928009269576041255258492769090112094208400618985985125141351255193010652497578580564632852563205981929458037820187311532490550662644729969389982006564624359657192453782125345962232595402814722721716070556199209030064602911838545493291331266594243142596710098995519636798213938448042618079412333266630831953281294641611063552284093185209496688279658012752610560084388397869474050266910202773987499303364762723999764024609773327184872432395581750820341711637463610406961804331425046351190811286253608115090402748928375780483731455343067154901813098965477316804858377935667143964187508655806606834257635670299256231648291814057922420357344026872249598920865043589142339955625600775930863784763188052272542137828082927727245127326057218995106615123650147504753714236156741454091348065019252047356478752282876020501127677141344294023176963020577100164668317239666449463735448817487175585762633590044188104932107764247605704333983868356822096171380884207690819307265370035673450784707332426401941054206986778813014939090690922218803156627574538351227803884795732581758091004751106468546664378283139010127361128434209228689356982529483949620112707126662706031418446792370248452656188662117393353178357928585365993133433086100300142662582341178356648525336075956770602756914456255081121873047374477954777756123837988567468114576521369306398462097083173697343176400909137369279096130308048377810211461527733650570021664482531289027471903675599532489147522084606948844645160380423361137580642880147888249100361200998709145582388356976724733800606971381964773127362357129233709550950668776909932642082992095637637134741490121711973179708369132708850349276415752964196286265569263348302745258780740807699899655276295519135127512621199837319402992790725458792917919175608286117479711206153148692538866327991256155036784110763743454614177187752142540265004272478179004652027082316978302905050025858431510112673675657448001444505559311208170770813736204716564142665355253190064150023488814532512271714965804165598629374364275672789828641267861911296929572358191882087734510836928840831084204059235948941395919754215754243784576883410098499869532208810371144059080769753710369580361755156576802091540456348676350998984866037569809640784884556902506949668229757839109685939491190769890968598280927152410493823848547128390651813239477347866664908400205685508897701196012723812709665171197999144515890580210454879142694992603001209023376597028444974530578998023647914367851239713680165682773614697966223204648317898043625662634403417263815939692468732009179425269333260393313075953494541257445308332080152394045371446654937685683039410035311767403100546670483104800079070402014921143726365176473037524327798354354689825127038045728115374956263719998020102282623134275340949483169161840081619360041422929198997864390305452333520313678354607452974269670677390992598308465514517959306523622652178492787925142385796722978979778863725336217697004813778331628660083011327080013977035736502815702896273143854198454488864904348032178517974214312435364060394097154027601048207416899231923854341487282578218856693786610665781546540575221685623633747029180618105892046715891316380462438743268716563665420379390984894259347417384012759564511892257856877777332113839459366481316751091281791536225393800012060517661589614802699633824017429933199264818293562524635633815880633106106219946468009931305823959478642608750178306023725359224544355143007808855048636323460144342972731645445045674242077988159323106958380903924989645475708804778690575832576366451696857476350043221482846326675971224117386693775061974307700509254433032345439613398996531750996023911988422832463497165959575218682983136309937108262890071054916908937913490755377392034673246628311830505845065800577204692597513489285761994605385158382601902729274723275973963153178204952396628023278588572066649574323731867275962987823733099198756170438575157033915368930726093396150513132735275114889476558580419926609220221481970827212038321850591471867149177373572799899935015247114818533513311093082122483581712392403075643838475206439139054017838774660905162444507503045274960734278151643711507358026792130321881300121871676387927956447462061716424038858348652034931371974537378952590178453530719842274782022053700066544057989948142900896614740689489582139981032606085940919398654785857364077012445322999135729980720824398830418325877584936174726394121612761967303585711391254796416763994541264228788482840827825373431668983896560272033537774675092343015665007542681784304059969023267148659214737675147817179378845653207783447863416375445107170466900313484647384519270677823574604697540062382424674084849437205644353715453456414323936562790879892075938315238770470553956282321108461611444674347338927072112356960782553042401908620933530217136430288973563402659603608595803378717448341718086365708303831539892939788873448127656894859083543992777250128710526710783016341887500453755962183001487070055542649319594195230673325749724888348426899152094243188863877722677246876147490876497320196085924731840431531416145489048456777708577316871498087137410268013782540820853891937704218046835895471131969142314027154543464884291390916165277440706084882261877853479481298396668578869917985429984319659302021668550726259596323043964162558388740707524080042600333930387609859823819313417182794359385155449856112790224881658060568730458389902795447559495373879637429672883974734944370880084054231399566537383121942825940395601075067643936858811759558328373348443431272230791266801963676665240706494994052922012078153068289425102563170580944094735249658250131239679714765725981233969868445003288334724907444747643746356267513887698700361894102551868222690871362714233523470149551544809626016282091524464764161635831962074210824727076084280639743039063795727643874798828715959111060740506950959509010752762859665404229120642784493974798804898511714298341083136099068767716558656869661754884400647550958539107714968624592392596378940353230975832874499487222394853301978535318479062532653161417784399810865788172948009439650229747290721588587412123809079032879456462208703566325591025912747426788050820973953965882453815587333620537792279430620534044838904304596804203733937980664571640708678903749890645515211532292803536159268575309233132379688051694348572038056170664454476754135887770452410035014879258671577028342821728319142982449195437834163372785605143938977880629162306014251114457427234266564844851716937247063660244188944587521440365782625116472985913525748445744123693286925771534954599709301566119618993015043071336918108380794807021528586007331465113142918655667549015994375298552880992136644713041080169683373761356950658003122333843570491302015267759539857646633559333857643537627315713126191919268963978026712557718221789260739856239676161877993674145015311445710948841466313001827126104373355255980699466052766700547581938240306143007166079278013018220981764122035582253063683113964325488993286237418386804902564093770273551332873072377674117195965776272580525123734976997777333231757027052491161894203749018983526593194493261253111846731670686106613445626840787237077048152222196779444755010424250924895627394362251088038884749938017128058843309770438770805295923018010736146063901127426390168914115526568908024226825828793492827726699638579774961439928707304377881040018073318860735520673082546145387366876820252672326365022301531638948153114342672683785089821640666615798090285111974933204783257351767136893658339058226601656307925343242813375394742258171852710489785638895054775174036317737735812364541950654677354786829946201390852840094422608836269962292684106723314479155926911495531374776828502696623482081451125101425074433112703118801312969957771655653518099440045355870409465301995374074989244785387621656427350878557277765934080966826330604325487010317286191903877499083854566069202896421737373758587236033106044977954655327801155710270327451960452966037100767114289820829771709098756462372768013704289068352224344066179740378387558540985417861523808713772075921863643005569703751624922994058379125969874026918303528345279097176220875332609264244488512453583209153807764385904640763556479084594328156325656805081878206380948179150702200729208651685500942935757840860825410497656073357019849406967267229005205557061353726075546149933122155838810616626502348147575028928433527324051865071206317776354881616991059439340477763368743536008647909591719866840065384767347114811707975981154249057977267198138556610688454399809583640021937976299261744749622242095483733599104833216783139645237737332306083370375985734150014406961976493904665501751102758310396595536511907021724491385759264081775224784496346508052438954405355495714179054839952792888427468540364341608924233905497451511275016564970981918185559148995819033605458618207507058090953545157698946810973412010630316902441607915408938544380433005022463341915967556002618583970563337533733941603179119000669020486979477951396013065280047038252059809753445829646121969698365929819191588122420412076599169807518898350044052242522159730899171410004418291987919170757882821715435491325906147267743698590856752933500451153332386080235074359080347567764324474700878141332511325129410342786963738047827774439992282174088537240654294616156350243811596517925255710321999862203097309089005780587290169996533095119622924441018329455527829950685391528881409917583325785249024516070189635496595750344502130300284063418537126883881524119477244118688136416050751330468072313703215761742305985400987824403223542938759050962600737847684428695165727892854881209894577963707547176164477906756358111034369486899629286429775998116133913457511726888776399973202576971462733721919661859818414383954868533618196803504867344712853291542693777578341285740631664454573485437440777176480640890458909515895823956447969491785119264473298661520960486014390309021111174906855907832776491465613936087985486814132134811285100910439146826189765552886948880162959066103886064192704599453395385074857875254477853800897781269769136996764697218172879389649313377043447126313279969422517871264635139397561134121781412761096012638688375471723430795893395019665983868385876871054379217116940801535824203215531987149961230270796734575961184753179181529444554326208571696102255897068783904861327563128878652439310892234759199337239245036593367427020368178452961278532668672987416288815301706185597890555779824339272622801529036984529937107069488445418291408258895838109011191991948052442447572628944562596659872825697119364763998585392570532236068226335326259265582922277875441035891110290903384839644743349942234786049609056510508902362628061391937693357188443765044395291096257609017168932622270281564801916411240415373643336778529197428588236309505891825192754167672686653763189754244342033402181885886177559441672437330315880448197452817538321216989462174573669307850371183906994809385668686201370757756248122077889558273715408791470100894433966849590181016310317330022119222350221302585803107411491487683870175405381932883332651276535089570308191249159660636450091424510017955797224617715067493450513221106106970734856775503277005072932744913462170547735697620556699007350957811914214439620148995577262919206591112255824591929142525728624401709485387021914077278176590853363325208327810040493675753620980986551667356159817556307132591966973255458764147998898719951014907910889695757603243201377466798418237710896423133295971901244662780519525210026176560616021736766862525111816572383867157589738980946985606713567510187618414160198298841580408047733775275295256700697488186717469330466037296638225356804939041460014522650495421535916975454957074039410349631887760359096464089726772966677407023425905754617039787800367401619306735704010381465060147686978878992751933298675639247106993551106969066125785993426928029672914632109231384737995377025596056378397391391156979614611156113242861811382011668954168200952491386320294216004870942199364384773941347891725877373531435507904455514982259342898495501400896678437050677326390800266087180459057454909375830699256279280606487668241266119818741402019353967563948167469824428092362503845355183475102704023094954213266554469191199529990922992294037880279355127885136589752190273336170206131154201177588734518979185246193967886419585603680779379908507937704804019367595791885040514294115486093832905015761233608146600840350145087494239847451031690644795227064937734572357551898812721098641906312718148317783989470381304482321961738373609010962978388893642218909543845176150879717390073166677643934323988663149132933027052678836081902176912406664420208146713636877216790774014422429587306577935648972193493386137279733149417199341561574607786164328403701900833941029840865165965838972459276701782020194947182975789247559178203803025962474192803881792083417709869623666464535923419888825386663102664489241271372176287003103606661990642897665073127261046918705333883571372267141016429673832521050550674190669531422602872766353537758727607413364109006257147095199776046524189591368878375783999747430380439867545450607516723928902434092641405028087713389132189276722067606239751496619713603717780871207467114092820698892699747216641868517161825757463641391021515481538966124270082533768465830256471683557342837990087971376865504567698748680995660197127414434292681731327967048274758531662526890316502075592190689523949676999739412522054216776121367707773931926672918082326483041519768729466096792728048567473795154909466552371910312188931585452081322633709270098843935452787577222312224825627699958522829380528990779103423254781909852997704035335845939743644134820097323741779388045578548170499516523055841220541041614791953375115610961169093534533468008227458799996150313909638563868746029578828576426072898881471279073039991276488095447849131938161787596022129410748255332350236535451997286895452645844069775916450063616089648607167256754680293897825235241783492399786433396136017650422204832938257322975957498154521308723904866827299135195276455270648480492945233994816800870406170198686507041646761826650050115100217257097146856659403931289180655817226836691732295485860400568211344430659592983554493791871759207212278594905380055845886051466724600802817499996229680851197791877865102932600692757467267199261386616170177587357131556512828667589747388723478898572406094293131482518630266391378879123688874336401983384015903148925841945838825789536075443496417425975730370588638214650315517007987586337082307244927764861090433401424443833284510952374670146120041034780717008094626673909827800682376364794240489024269115463367417182745899011918352611640063842024208812973729700255508665814386902587619501037840933333410738450339373297951613564861006544402578549417735725412100345701774179187273233206629422530111592264850291030524436795431483152025406328298288722606106844727334564409612238985577484081777011033894768618821448134631893102471232872161068998636067209843995438424856059022081445865776123787567112469819760122101918059263785902039269797951014760131475108319108533465859235691861083713252841224582743631037064604734223533838928895228683710008349120139878162469171938437931333584947475927071998426239656117000262932222273119687704855823770920971810777459316188135356160426595241539919281577327492309723341538446758422339526954860305186711019800211230402324091501066696094901860314117917814317287262584041168444093646836844236924754200511084156288749572817067116109877277779917864686043432570016521245235158840084866706465038253276367330198164560643243968788809805881935420704062602013874421826812278138251019916908428768204722737805110561941270351947828361983095383161497614130820672110309896778358830598831866108908455943201274083309988316966722820229835014067541093670441086886136378963761146019127286471157574631355732955448075057020275465269745262798453239876656946430459318712576445975650728481212555790219909648603022570987037077427624721645311857511220209224639094366752560962524763752305977202597044184719997764186210088846667356405828126109824745007511372097762969892936521864037083653873783085424970992803705735761148440522086559061651463147520441413398460428711073529662200688537181086924019934867613718469197268855761752520501287203692109651634113959162857036345465679197100789813970811118828466208008084972619574790162824524151967522035738139392838883184758410444996652368624190592785708124836364261465876358010517556950116350079756626911111299116691139040743233323311348741607371426771315737937502318217456877583763087444837403554135341380916238744978918392705078003976408184943765291625633746521776501065110560758647571407379401557140668349638518743369061800566329563869322291505724650448802037185299756016236731235542756424940435403141568692628729062570369759610239623816119914437577840031856243721595807687852877729350155724402917587502814365523511961393100560246900697216457510215331849745047190488712388713346996565402606890489132409709182068902329753381929394813535438301928104874443831835738417516155057726010079403771265577830265908656880765084124365782038422610633250321544341586391296394334628638603590582375887432663001220990882070232223459567398540276545269592890374570692842624701845275069368267147232660970837977390442132913577322132853150346566804492875478877370029509844445876197404368976734171978963036447495022631704382352068042723020877779875014469688379362381923266521741761718492509629985054757001268275195214470593416095445677201892682252501338826914316273456909576107242923218226498798658073955675120639428732503885787485425018261515362467854588490173334630806186862345727140756467340044174898830700643179175596871599961510176426316580069882429241943875222896973722191836451202230012872612378371502319875384068801419021122036147396188024453623464080966716602561860538674493148696926196920173064296464549236561311599222861314170867698500655056579499366063205110459613069654686738046466838509615415739125141010682035295981406338426984670105346214399275012443961104976395808715930709423077762090881413143376780089271752135391184322408585591779920796675874090926871674746400523182929739699360446689046809368544523004221803081070289981185708469145146639989369441668486594255375092230514831353315130063167555116497790027131237805828091335951049462660057516578544106903295082758496955661196120653625472104069781578563587122004241676052853659568525223738325869376611324020414999166225804569785249423882123273376273640369546067716286472797734573601398060046959965481138062398054561555731022504989509113887587222242659455977697357275250346557757574473182094478054756564555247454703945140664430318940427243936691950414732791475391351083506946940536952736928047899371268943994029164945618327816417125665240399920146033473637717538544767881852505606235551288104858943271955456762694957403507963697327986400229714730751723165970064256854037814859650366858899886293889365751058094706129494889395727709758629912858738494091345391573896541591818760010586032717603629321960110938296739886445767031355059688620460098317040189554805816154919808071821334917081688149999795666236040375892391899016907008604389148838731126112798065391981446055942524641260969618006991037880618355869115850312263524062944213345190187232876233657262011608355443819924544553481119995935201891602993604843944158498937364954440398431147330550908943558270496269440744516863475094958740622037979723194486796496801257972464351459308686646754992699524190633200770908146400969339605029467859118502659630104263240190877323745981161940451608477013458852544306029023861638931610302018704037848426764943943803176304536742449452858723134761584202611929479510815426043268460323731185919349573037511608905148578686682056450455222896841516029681519781648188373700715425928508310889997098440727396467601392034921712363062223156228754233788245268462123937446527934567327652806556128900916654090344635960407618840871205477454167211620011824274151983981179566492921215240139633090886600390882972089964874968785679171192736639495854539755641513270696616189854876404202039736944887771218277698810755180208042994550652517361863336903729469276587871546196683766445627890278385752762218536740338220982607017492524642856968405049140380412004246041395377155281068214622627983358084501476157134238959770945726849887933543682195306530676135695740301792566473927896343622585934433896458105649808195317116823637369885879424019078542193594257902382238454286315252490223594944535559474325206336212426402587235952777024209788757185364255199338130026957406666391777925628862269608524571274546747906269712815267916077511945730807481874658684873015637006643811519034517179407945889589926806291054280909695827707135227923600445298950071224531913187770559125527197755764706933157328593060661027409905869181140571158050543507633799283725725798615894797135691092279153722271816252522715853618872192332261688006484935806269276450268081623931933746814639562356369676241685327568626408350047245130795097510328462720423881680253069754818851531695863512766227986210961263688694114563759466882539111945139150422331232959320024634843334875003917949280440462855217797412746023230587021235387607757104128180726439710321681104644784208936112461504897411595632192954518111046641282091762644984882685195798996195051001414236233269124268282355905658215532240204487795095929965551276088654968021670413392935483259859424551951897663334061492048870575547624541802518682313652579537176117712760231287661057754071335721190053692450928389389777859701141045371365659821662864958447821883991683261923490175926987884711677716619760383377132817148947201871744252773181745907653104775232854731585978862268397265507817588364889892658365074005896797105624700326308720467463012729341064034574254312386691477818417263556546036380631978397164043524506717010271031532364916307351846763810884916145662549833582686086108094775771325285721904585810009723187681915658064395289376852480610905627226468342964329561626537150139038574388705096376585774998264512340094708649850378477064606580660539050858416868401620910312762716404865219463026973795872510209141011361842956627442440008744509788045270043245544154994519198343467296307390928276238151027181180834781822500679967455483905779286259308893174395572438261091376587455187259229134499100796988704827829589210137543358122937483925562086568322455900347588138210189309442444428302124233312147750255213153549219221571866229108670661354010232384086942410635514198136678976616470988566438387620641146316077341326427145092613009293949983202088385445708698768880881880896514011107989342417697833982325720310917601608818153153352251873863776020702262118984495196124000898458034268926939073107197053405856468165902873055207165047620369644776352901735426133125375334612762918091012647727186197628403243608729884216900770240006719230209063957439237356491991430641932340909362962975745584180661497936014657145926909299231199239770455660507296298287052988603806308764595206403483069033090244355819757136084108446017237962713360875085949805426368634878350349090761218630983284706158750586464143814071439676294464057550580268299012317895248116533100438257270276207121006751937587406092533335253826465097127247604168021343409983044701324978933959118700144962309505457582117321418912407736463328439413127354444672292785817347837086565942791591327024841550857024135554580319931531610329157492956141344318179505318117735940862055819767000564635226006586518036422954880397575083805995828205251935963259706300589263276153349853028640712975685023850879902053504024142508733390795526770248896468368631687992217897469614001997745965151254213605575382397156481843342080808914831784114027223181719729340078087416222918241838211748519872777656367434407195085871642338127458961911072411303417704318936816961076443888684353002267085656976799852145192897677234570423837773777258458439193372773537390320561451916499978702146062736598044699720442524820049482867710429283844461962107845521123028397144616715048541575550469419439334354621806810686501359874773090137873538197498815092817245195119369029107689984417643820841108853011063604685017296004630454674662871327181116426745896663736800983028959615093955347747738917026020949413433540300215729215168259963707628449682296631052412839147039389887769139252652339744507317749410809768609787639958259396357429337073016138492241442412035532822692679558575504570153466789809196928774627767590811040786082793373405212539115334110831966744076079224840988648377492689793502671200945902330892411549243898162251950354935709548209090264619231544273492336522008982333218103479114775919267134225760449663227333738517251455234071668420019567266775024544283910466842064884529192134841567615288589722502254300179149439825398602327775347649606506945463009280740071120880701335213342975230635188336820487369720671175222150210517034514805200017456026485710443235237459833777077329507604079690314143651125181737612954812458889715419252753024592229976468700248506615108719901303891827954503641236672327698182889386024636926130924377376672700006680141267108581913984712209540999400139510935837470358344151335411869831939435047784988060376185198970799658354530429246874865016659686792709433118597264986943001064550308240899175358702365183656983406058634142607744053508610049542541535944391130473380899219856912957962746490308561018339483882644127531761862630152732144411178549425840534062923789203130334570626054242860196490115857591470149114379821607313974451894298783264004889333468503740462445448364912542178027932636521256350485096692490767161343668395274639219426202284466800614554613689883420823867922302687046816700065306600862392830852889449354415647345330334002238795785686270642650517876800274569222655755485659449795414744570601492778343681814414064298516969434741918281712490986872338250690533680669131582330517815836489383745925611148469780833095487459333408487678259204348425787270447741346370656428667220251044423523996481486789793071802221929489995652183014293298739080038739949874047975045964247041733080148061727464806622664960457771686884232851280897130000959179906657991550001240622238525667584709552513707114666457423120954589038709300639659143376829212738333689879350421620380061998010390696015635114710819074592703604864056788184539466096912700902853454095490124046102396797229943046702180824653915949061079379796976584126167760939455221886819278273797405889932073665578264470864353837406941530740725614103565998526946609035759049420435961348990859148819616417973948705066029666941194583456063520977280071514429529983093109981195526987857910786203669099374882207593392579548774287447729603722509060663636019838671073111489565290611956147220028765751765910650627618367437724481730241305516308163806533232981614242148677266914965264818323127205184121845300260566146859720369945785809888585616070077805803470445667996746673875356110664907237912750498203820739785222259573453770301829676125160680076716833641247837135477045008173640838279396039141137999774506089724744150943428074123344823215242285004171681167162839650319345148357523592051740729324475237100831152080879167036809748819175827843173476031200730889817636302872224315879867174066826401275783542481559460330779379075590142296030690179098119553960373565527980157567126337131032092836669107075822500980538112455514544907149096355193302991733613643272474151946127743111995118333323600063427334595220824850811067717934469684417544604906390227816983407229897204939819478922029172227210753517221263803134748159517706827126325880744903059844210216712633252658761435035785767663590541255886753841743259485952421732244894392132319604749970039540411760578919981420976574220589704444515829797761675023765615120822647647859868259860527701925273302662711093941157735626934790751955733187264110657096949619656705810202244598380297294451688987720150359691692937904247184102959517358053768398512691611466899460573058698425070671059707440375667620016840216799380657203111235771675810076994635850423868901900202600595924039536497624714563362286250150312357135010042062880675725421786521640452380692669846466482974173922543395200640654220640449853630726708275897440759803523388823787096680579689603572490619701106905820255383598620992225175250335151928927599026203974378728120231829163666749805325013983051536145969297427566744650215964144812856875906714094499353749674845816046299970520674662473916292811026983008427820889686700030743032028182170127030207765160544200815242761009775520408657481322491654670813894929333691304511869801144773776497155126718119767614382442557338678575193515844213172925023145127140753811954895283148600639133536537104532708291988740177434565060045995325849944714085594244401218850864786319092537458821739431455148040203711398173909577846474162801457068148276182794777019804581142878658876848910628624347549316586374654815414155311287526292298641726141444341720499639937466994890982275950514256918568962612371767710046394904656200862517692636433545939438675356250772933127802196116581891841644279316836187984573908074034702412317796828146872471138752500506839276503498153692364242083323745109766921816409899385479739208026759115143713633776053853500776956306930286922943882811735359168684395205430288548905994130277642055114374074477826988920742931804803126669844341202350868359468767341718525360694048266177253193261937421238171376017746988748364709493350342399875002690728432874873838099650723647812203648119400772703323248967889296253171377366303853079766886538275939362219516437246700538288339812303017355784222609955463244674186005159624781713736588975880313377481437294234910535947947992929104671670116519485234287714542940375398691406982096382353581505504895503307709297058283743770475830100238739344286471446161712893151694248279211842791165505717017624310093356813259057491431208247700341777021825797953967155959752460812414362179465061846503560589596829908123536887202040855342263773318627246124999924329048309126911732281487511186829892674298230044126154902706054429888938150333136203112824696031229150000571466021089826624715581399135604233887037281119770693584363767245819861961623331794455389443737759843717817142248103615632561342528388225713477333122304491828080991932493523499879432540667031249403178587699742091889624765109420179367450957713046134550079729914447268036807999083022762033699580803471706571947980977706438785854751205714222024225318040087995685603097843685252653374197760785778168270058443542002491748019699870615587601941387533986654167083056955911377341259866052603114431397732622108885273720400568772923228481910132755493871239932230016035550875403343582515764947598757699296354932226063188274111631546352531737198780961089213589954472409008130943708970802312245421768406136041087149354251064016344248884586770920038768701912105059839485658869881871358449881168769139169929798591190682516138972350090203177015467941748607915989824755281164689347336818595350300321964390669819164861052747140259002709159533861419118031133488743990212366253327198791201706984391438480084241202199794319230511498583753426609475478205733466996376258300606553486993737877265892893805724877098357964014636741415304983903793292069413800552111302781072065319500568331264238295053183166794398924819083399581894429717825705909330074332393006184318088252610518184658323812113337260643895845850967219368113929932883916092968839705761132342652187758396156821142831487370601958456214707632988257629490319826604147126042073004703739039889309766253725385778753271157175981209322233553156923258924166113772416610740912992482523285463859913167200124783999707207103181081666617143541293284867276683886494902412552856558174342005714712642696526148201719563073486332344288811634834879690731917669471072335728681835403455135057902920707349425541131203198500138421930790275005838728650643980480740096637314574251983021617682835165571810216214376871696000852823650881230941993117582649653238169278573888434010608762763968720946158965627494419030449675119451523882594988304137352581452173862398727400050994882457555752813050488714853654280920974383377584855094690714965087971468658953240898004562990809143479514542137008302888786555359707217772590597423603857041772355718006827190051497249036197714086152224973739503876644977297915183079960141673790524476902001257107132059830957032420713340013374805696383220591198211906587772659492726284039084138311530655578017769859059120145398578452739766781742128268744446832334109379395572431518549185443586765078870504674419443890706769319509741238435295151831504708330530144726044898154014900419115547832931060936660529885150181986730206119632082465101606399414778510448029926020651325543882627327682826558997356947387977381212740911352614326595361875686867683235592305952880911680520778553060267831336896294299179121473066260141434723678287516282674450158689391657647107842128745827822951994042440704627413407011845083147871586558293091462303975342422028775504622806895065253921821436307075799519142980268143554844996327224859728845756949870362477744740259972647694830124066150662329056640758153247942744063044063020235054553206097205690598640553369359902519331945875073646665234177169656800952090678011145162014849323297803772639171076283908420122887770092514793655015812018882459537100233662037811606128012952847327897390600212917858130338100424627473533875133539091512936104553631373153094903206448281911489257327851866702716191142205517051023402453701295355696554445114020735504767297689148874456456324000892765336857360072560609336596755454213245031588272446378505563254801169955054665132817643036609808909069376056270962402236967997835578935987647632559903596572670647486235653239306877177694286704560595204931097451980261513673418155042647366994423851485418777148445269492524377645761867523537007599899037141328704926142746839021797716965749206981633108757808938312197132247418395135517671596635303156792307281706367164888513762345390603196619076863012998617241166326469954190416044759921695829385173464658395952504273864597359731032467310754981021371708734627793018087465519940692266325011413738010206422981631486405683096750316467825017850021507054749553337185285498773988252276571812677177703871336407229185778862142826013398163616517711616784720813765874246003032448786882330347135384739151250659550430987056338657492929060016841928679005521244463510390661803325696791479656780252616896366968998874406796552464937035205517075101648878719385441443305775490715220432349896919676591045340485667058695349673566637677005632576472480574191621029960838845895439059707332747377558566922600615153829767778679673407051515479409669241791918786049403104161192595593098390066318818367759603942385041228122526212955037941491124576494855700241051804681166213088565626009207009255050417098646256147158454812230724976585813669834436232905646676015901658986948648058261922635163256139690567289434732086779368747161871920972722998290435139947391786296932396264846103622063974806901821212241163301100411271194785927107868088983673787069226064250937818766383597801118429568476493660932860018426517624286031373158853192321139209313498490122863640832612205320127103209880678880351595962000157618705761779998555929974610982861728581125230114418188291972409383832038820283354870838386001238777207549755956310392896474763804752787213259644404511725624200078384654951206452532348680619988167697046310119008247579516492264516771888659798217433396079166228052769965219830970754011367814382464325858341176479463815502412689761283173619809333085942751433695690328129490191066077832981518478815822849471406258594488866266108398960659139152331318834967437622339027629572696250061234719362220775456068308896312088705180507515826201921302957638957847783266249156642063939470460456384715389207362699199720104132365848607128292283671705722940841878691264745835421302098632232704906097368822792782187800680806154369506786926122381075591309625651545195374318441991089777809030802447807655090401056845265651501836914992063247820208536905906306343513973469829325725005731436083575911281615316816238417347805275532038530191258014187160533686607283800607213999783092101719739046786197786318877080729241512846207676058628259864791936725314514946300935288936901192857752938179202663875637759864668126366788275010089289527466217490532593866888331269225757141678002682336126071456275423700969582428130139554471034175347334424382636983555519095918029037355947908407005215862836518734415053762055262989317658586425557770801027668194116454520377786889640951788200878119111173581057247137426206605217925661833263971437403961424305248262260553307052543484423458045807799784024735306035762398716538722353297383323899748891125226430363895934620893438835399293778334529612963749605783531130111333254252133854149147675068650356760928150723940963997583878450872494251380677109919560495393407006611838146248220856966957095780362150593410590650951396460050242472184772384391372672708303668432214860296633088684233390188688324980491772542631874042207516195141935821968462392695464047080903531178206785639445544288633103011755534825350882015054450367455811108450502544513863420082111383430427576643036557569969359124122490914506386076467741553788091137669417752398820470881699154964445198595084956683941215134780791906499839040551545265034168469074546288056237670998964001262432976659661732777221277467233142868288558240761947259353069230682794175329910022918776870192065828366140529682440577184346106388115837309189342306584557435272805288762273684026997561076790439503356512579235857720959116377254710614169922193289876522592316419032312373536148494487917179372360915288509408041197864936020249859777598648743604636974111372107251547618107449925680829391591499796488091283261761366049422655910626923924953282982805421106280294953690057065689714370865956604855301171810532488346744612243698953665181681239409040021994606135985970965536588501267201286460224690886692378223776170998933116628656018250363186720141970437140239178159398967031223470400982326554674242546402628389248931311224957810652514545210162442274661438148929451589954058093146998724091321386164694897408788116452486769678660623625907491156762907614711489843798982177964532762490351945570495753608654163685179673242462239391942138151499021895004201273143658372121054020573073890035979968304525278742241832342712192006531795004961811692152099439845213208245851497057928661100159773217310551628095794960521263531943683144719037615418320274616300357767345287664617782713564988305189773618095610355147466266987348200942555780534489844413265319720640872693309665865319741126669522384277180117600767068784331317285706867130362321458931283532922832668698189511887941350433315806483599517852131176873552628284311148093678089090532566637459529131344783683696919697023364856075325334929214347348683273175547457441410805675584817885087735730749601364290786557527569508829039263808181399980996199443552294266931314332165691768704129143668627470055960256595736647782402756700502857455446205114306993664635774061902206830920170399471140718367363521062557884417642723654925832706454646352719842072424642632365599782880716631051478195792515329394164656551618379402236289390967776737405595189451388216290323091146262931272050860809907638235963974214702681267328674621203551540918359647892767756895351614741130451423743112401010046586942687678656571687046728902133934833429681793123969648363956071122448173473952797893961780019507033182452690462742208326955790125738552209478890516740291725152588748913284622826674805279235943506276548429143539688748059350862129863304492459173631135596072689276617988724175227694801785859773864488564260386276253333595920379477185944532559078430153494917095527764440408081268408769653995494310274146802232551844899795302802260885318271508747187139459519631773173960200998495455666321139968072407333847816064000687614671312839205188380786230285914304591648392120630084958520950527846508670743490094165502606173405374860961643116765913418860078022906266039182409401507243541649181896718457489302233260682466061393437352184123153487699767572782694202165297846503730167069563337750926532373914789366777804553883149775388774600121548141789674469949358687975854091332562511726391311948832432002083941402004501434635981025321833491150026250754486999631893593698421238331702000542998855640012054037050139108004597323500274678051946868593293511226127929625135622220661022584188824752596661247446134243463033840498348102762346864803593699191410361571692907032675750807835135684114835210021990182691324955472951924456916530970263907640058022144187741342026242733668067990116440210773032245999496714511902904230263279997637826655472634923780966566970002674090588482317061571787708296582837511076745212316418444503655614670038084250550634462276677204383716007937391063403036460757459461032760767464776151214460450837917477525419393108205980953940089800724567900749237979852355747716760112295473855232012908982609949165095812491069499621007898092100677854174834172108783647672709756947165483049225484499023931413904947964488446247328572905003453002194227639294715264016038402168124885274400240177208028385223338493369259323494450368619573850196157588181845520520665677284659673206481537816407795123211186963701451741676543564957986855565143915469805732029200759165658372035338035424569135312749620836284066264332049853836275313472933133765793512770372883935543923429059222467046557179664246845891495910991424299166698401072578416919432665676284082128367419500425962257487522643062889906849338026529426037557953055348529361904306389861053183242867009521407332318935992562882396778276032922365771552771457904406229868779539299216149569582397877866669929489506284379170778395289007311347679438873349513161250052069608591417248546915263427555903452255251164548967484686621313391562362803395040484777663527298931779104603730360400725948899860662849710726502175204306763243659137057777630714704525516926844743135763946249189195496972790297585235938695963142088415180011179247084948335479144033187951883796492113124143887425388488000193619889824608530208034071754631073031206358493037734827979191026194090710142286532818567892742270335578430859393111803418102752632227145926543969195650108034074987294782580059679080160078546796794760778387115414506968964505101607340208873880390521228313141631164844342323665383404546367670400015556441293287025652153379640814145202782678491476819314145177491463557434951433512714561898628869781918529467796998256102109064159195783454720831849269250502645433382508062331416501726917043131896978164141434757559819959696596794618090575693090320331652838229737861806096364055714243229073803248165970920613444173443952654653063186223013845606919085032221064472180122712606900702745865900206820193749322829440592040907149881395108184346876949792223324373270013700064499634954333041430610082690693569037479427634363082760585258434341575106376168745649251767515168911078632543608281610689662550123214672761864764346644950906549779273313608777635224476955700496988187324302709290490477027102302519696815075491537139969925791372543359001560938121327123687441803793085855164254569324392505920855140586747797168829321742030678130157850277465653932507599929857255833404572281636129268415318328464545740990002432894018418289651701122982161748034218180803801959117163911895553121057777087260288442016666112511772434392815625369308980118972870155036194943413038246066804311450624281998831114522105238734520184809233096908264521014258625384412340180819470803946132698482572331614709577824712605213832970508251691983768594157122872239744559320403180186755973739716763109010827236521082063890115562822564227292463807782275667903117674217845965250356523428292961865038810088588000047453214300913862600061282432081097318539443740757136014018548362812243965998837046286094561840579408639145661048459419435584824395530538935828700386149660643270948654211116262304992972157600746471556632010109141416135239642576292645733292016902774288800468297323306266118244114557590494287861620550183252095511519675084682908980775105838027280765389721106130633803269645151645811161939520532236251264051629045969188262566924257752535344615829519431976907774051110001218583116771433044672774952053264070069448414703206207254854541195839903422881260926428853632439120742423650235120275447034072518705645616317141704483972912422174539721512305801012251728404403051152225594623901879334954270699691751953266612595373020472301570015816688843367187808487832648485050327511843548539546451947305250328341767045500401495016982897242163656531316819438343762300169996487023415279322085075831284675256158162643037629541515866278893300466148979648786221246670939843677361750320796447647802059032858104086833798584022641612483211639571436137480402144215183396659204952858064049788218531428076039876814895512976467858810745271107039443718485162679693733859080188603377690772376677139289786474486370692120258435081837564465360173318967993532340660754490697196723486782414413752831332310229120046297090788815152169802505024908485926436884907649625583048845699571514140730585467562992792463163688003525209577576197298233268375134405972990387413541345397037056829380811084095324868334938453735840931647517067972794791305901274390644973663059262036243273625067986176066967707967896084122846261015694897418121313496385680411396142426743529948587126499598824225510867030427924211682531357143713378586822699796951259529874246766767993356480266009784382714576486380243899460234851762513933927911348829110907736440781217885886721595063012473386153231424605098760887045052088087773363914813770133096166213418944580757623006263558587429440270722346005841625383474548325645016497418228840825442800798922602467512217193492414623740502797759941447266954906736385771069883011662949755661625955735340601419480591186406591310210543412687009679320587385942370378365792335965362401045454899328910702470472501129724095147613205808231243473071863574081647246250582655248772906087014656259186119642767869349948185744059754034230039668729874057877289467892380756638193952361927359667083322951707227876406575809105651644140075931665044300950485166937165590236224177925526172260294938513990632144695584467373469479578671640672570779491903267955309836936549121612933219125714133608394204083347478617188308523819343828559207174526734532941611552159796594924732964538949266136235686422645809570952055001604326072104321524851374745361454686285269461300645975346107946919348658327146577103743958986851587032908308059494139525990379167769092575345105325914581901930890316562281752883946316455211803924227521020340378826242434227165353026721702804510701928884654268434763040935131183768285168404076336117436351198042668269182396673796373634928177453028149917785454195949496263963232415382341884646199297044108170951378832423548601635423820448095653175908928619611906621157363666595909786808150885616013118602865995513905207943311518470859484466507953768860875887485474002177326802819220084457161126307611122782789531509876568875568056755387276890181802406057767749703767819726526547716226752263529277935480022912810880865658599586824532726563246410647459537334666773237639957645923682688995149484314584438678172803816437397374122954948131188838659782821151713068832671031439052339909401389159485909482612886623886616070049382936922352461369556119306669863445738233323958289816304528604819740655477948445608437197382303614746383530266932169099845502478804088181067640296016871571911544982065503733752169837674200681436494526497124777589391235566941079979283481975215749694489760422756313689778675412662091134583292867106192675908682414013354411916303732153981370900036964155934167339640381542369211639948261175657269069984964062136164387361461539170764532896005225339060514645183490088543008206111976900637261646609609296405396970413701824165239491431106904853413392329446545178932579234757034469541264681574385341549407991642861879536691399975161894891575981815100312972327860715705822914952855930858913947465756602724950893748006137581465916297122835603585738980810618079852362669278876186981272397884187242312821866370930576408841374974135786163298970196003317246533679401895306858294147867379183280768234089467147790921856129963134579687172879845831254581021308598736300312253402742354911140936361531040185549047122447764088043449348197044512267966449190823371597081986583100839298676836203701659696560032396028684591417478645593615693950195844668841673703023789785221132794947212502216887145822358371470601321304321774557140303734596541072662073225784011040593145688377158770583345491339124269991573248732590638274421718086777384431560004588295563701124007175826135035662427857984720778325926508974733413534620169487646979848522996330027581071911982437724464636014300052230115939864294023335750512472952373682268605607526031247310003841791003515001156824433898029092956725788674708029405384138510132042412204230587330218312006966209796899649842831682788743841320307700341499930854349721505792540829692938576877426964305112341660530979811395268156421769811877931476586041756175575796351548478838620391317808547097213745543734860785835039506927082734545311218940272228204913830807764457701598523739952709573486029365383730976214635552120866751460763904752909787010055222247192402575239031162671682169376266041912819531221691999264246453660217055445177883924887402884191886470993621603463598696444155531436211407860342184914316254997767496555454552905568988461875533893881707277391710138158536814898052355577164914572335110183235530592259283923713093010635324972920880863491623139244019346758812622279857406386192452837806236146303222702031124171737237485811125538152098139604530438563524376938549005300051923308273131299565929017549296814287830008075707346573142380074911719968839373869581988431740728625808615970181279804292611986966854079484380622162188577626874617276780790612203438950393649580070930273801039650342316758453580370689816693010092541155978975856949326853009230353836629730096747856272387007977333505281470908560768917629987876698878459152986095025179620935897889475077707290224978482141011631415641810172178622247746090939080334658098191302144353371897465564903781367388740038617315414943058307709786331367282385836800777283757073340352704639762479437903877086198542281004476320929284714714524355856925211403250027360420748381748477842699179994041378542708632367222430398161918727002188622652462568594069213760806703420989193380413274225483439044979985277736654196571257853183117011025808713774276035948202069378590713050636164328219622921044763398434019210266038964409521023573540695679904704471630620008018512386491522541108220674955437010458350594272631460607195203641221090021041318815719371936893639302161112722787316395375567629816598810913507440461892495084016052799841521836082095119507056259216702050881514147083683155116795947605583309416320211321230238393235139200703748605655027544600908200058540931684523785840231884605727936559160946252094244201790663542555587966426785663202867101224608846221149837843420979010510075630491679782801633651191299820837644396498525064419052332015805368922541147891932781098148755096971065312801551817681498498116470101570935572195127596287363962535633255863874080872788003776709645167505939858126723499457443355024955375506901989100937211687930921066258571008008110988160185458611178469742361036703215512603708797068990953800936697149989971968301429519489965387675425467286292850943385583291835630847180867664473770913991917030499816041733645966984733792871051123925538839266277725219946725601513034440245160102406156405223160159148429308111871485806137409197373684579562046642719627817407463580038974430988106761572553662346470012294851702530131746128096868208484040628771132701911579239465007582298267840099047677582877467038599297806933920696001544907309032630766736189224342009647229464072712185065008018184705533876138937982567009572737796427886443621659616576006702370914586751453878196129671464741563749630092208844995685886716558185750152316668390329780385043801978372569039024768414087777701292567731224291559296586677949163563123496175434073970191952177110199156589727004457450548842082361222603736286351512681640804974735317795257629685017103301381657912028519961206200256263519807903375185401016085419267028105402508379409536033680839082049156477464962020200865057342569507060585314014219532269533919714282175224022094324330650273632530114382099140100253211563838863743038124075034232347169640809450528409289935096323011372167676450752797100836144090611587441873636764180525815074193117349784153309819761473479128337561069912879146844981550128784870980552639352535072522678718904697213518637084852145397212201969675902419762088368731130613148919306725711356707919764195956283132291044410459750900979072799089079440847656185541613885418924819841635080964104214329348526310179356396673793731959729176738228029506598038969821749310884660442558398319885155224199916341824760761781061776519282802878794581103339634826659900817248207157613074617865828021717032986869955641873542026431943260969639987625744799343777919068626306333170562962702368930444796068120799692687858596696309915857409761545183800528137216548306916430660607142508349890912437340705247519330799808275895608200382811118806554530657378544059728246760026660432868662878100534444074879002115358549399617366098877554820284456459450210384403635232653831402258245229665544562645645809450510720571875209190331126199370925929931050857537071707401201531720658755858336470703279604014948198171830882973644403471832905490464778673797126348078619840572824954369301378150014562481401632543873433862927752453640557058180224590097209681483214956168638458109671628551104973559414395961421810503393503142762282883066736466677048346095548290997694254506393344776247176915758423449730403882741012444880705742408902450193471050567430503841565147660837876733881912057022762155484173864255223964565223880674217225701774090705729336524660176225841972183397248000254960671974467401738758545503340268447260334945913678938171993607931439928829625605408898822419942054288778774923694788051579293678906015141930295324712837171738718680862429512738799318783116168547182101232674551987183674674379023416917873380632904598627083901114363109172806026513132708770572506366184600977834059798914611906343369769299174680474183241804228204629176919948859227272207292786337046480851759412920473113983782866083963102732513710825654513384759328261219460899410233886126728537825694720323196739915108879699279109592910071719954105140161766261199485197633379860452341147416861541788872542820606168270607995641421852918648219598607933325763919173148760501801489967836650769440042118701991102874067208800712803967385096225327503191203352879609821060665309191291103252058819121285963259321784604478085010175932199609102826935619227845694601310611426044291943593806813123079890074231474966675006852000729722263306619532777056515954118571643541140889016400077776034499470762422903824203250338499580658786423864849456999477862543305596444659230702091336340693629816385874678018014162130745604812347612898808639606462452605688887799339083667988931585380977587913061257032279529490749020727250324314104139441273889020449635739103220057391220573484999581587810314315964484243610804061462617875441837006311558417112526309817823447859167438023568644182328449060054120501789603465671889229307363636655584255105399225834127551397929418566303377677419339032462072725019051749249700687165250132300783127343980782915102250242362880504303759093101783063661074948497486648369161315566622000646408568382513245189742636985896642693596463904954475222360007319941452180994224854018895801513682565303348246783955302032387165696086324318406143452531246958675327931669417055130677002792478213825343693653734947540411364884658136231219601310965968949587877208784644401683916284380758687174681192835043992730621846439331837771181444923414471691102398317501798903849620847029036025114635445538379243705211680313974082769929166499891443175854963657893068678857013803216875253742970592229144894114037721503647799561440578379057689174305587722861358280956515444557996735841000253771741636527473088050700608193831658602559282065190522651063184316151168833917062722174352800543408248660647835988659100070506718730993559392712995328424775701951185914310878955335317305345832094619462293134717367032369191113564460591305079363591487029733897709792297473166285367401064746364748338870766520853089252951624741803640220023869773678395233964496152409168104641161963025538497136062872813136449248641114227975265462547810678919239550779414680476732661824120244276950417468172341778330397168893774608582255114988326836919103723954097110861849778823662167115494347949401562145519715238193828586899835523605963612696197725050940840692087234208602982146972193244033719979990521959229081619358516954896534677720057157188725448557849316013290849219537092159658203242681713273756392492985685376390790291323104584931957791444742375678180277668761403009470819997516943827951914291356251968342390153382073756980688845036146867609873735544554265599629375101595811818443594319282271876755034608216667788818052663807948927505527382320505690291401793891392655819427279610520374809645462385403013609493175381421432023955913914212115324736044543110414175575237311225773521190679055728859775125604098986131927082446426730425084397491694893862840465106926626484612495164936877755071567693239577909111336999356702035489282748797413531900907434227854150961111137403784736386009116544316576423831880944491296360506245271962772779715436649464497056131860945869214214201049012272674003800436864829953776261923293553585612720098690264375057192707667898749411507244774418194808955664809007032309959534327301526424311070603489849522479597775462740966282286151652087285166970539089923849629650001035135628668332719541262042819084070646547481560657071371595628524482987297213074092326428093748629110409537541018379778832884874937706939503808953828593234021833105713606730438190570861430660731581678449623301535164039613671400857608075413903482842650824890323702061554382794176483160424032467254882204726369998799360504096755921212478340927475877500875677649475375701865218184371709166674655646064104749744218185457081490306428037023816824529500660935826051744653165766189620299308222496487516176690009310425989657893706779125633047075618934468240190714952831336492488643004492845153753864569528279575929495903036125122243577404568820692269480792650146290869526756513416949064213821872395289822037148933046225927300639377045105940704685886565719312408168785762893461973134081061936447254166801937157530164664458115827649320285616359636622995637870076475784630150024288977746758212619054749088330679668470475337167179731998113873329145182456329523586718854746259253064371756814395109458026012920257836968485401704954370693589829565543737320258681762815631541291022794342471546486955045127799960252531300159498867872161805372406294645538073361896436353082636672817064017459367066365266056673900167523174122836766705520481089250828160571453985287587208426469692535919926606016731913285145887305468081816584508958236505768451270140537129935891214190467036081750560764622639441165669578342131582658256073236316620446662800681355227043604146379655778384048413587984615699912426209817464775524615663437959165470702170036967824402151399098180778528175006067101795779931312446481459699644024855434996202655595583904786019827489978305363124091270585367444238199224958236856758335215635258617128155925633424990615590134665202771812725863583108675459511063641444499777627317834512657566891128637886706223932917804570337496314728209874873486446795118749296640019350691300090944652968494684247250931764163887468357226648920772401917931526960855101520128588352382379308454593140571486751079255933076394681803959435138837861376612699333500756283644889595410763627399715953635188944978339881092137078449854634354769281760612474011351397857058796783395647643268834165099333230256568146906431757119658691136888983944992441903316720755984534751961609462698989268916051583368821625761006758760664651017785615765415343165593891230944262158227628863611882650816122449308557901715188710905923457525011878730042327039629561736572778893310561500301919002222577906445766935366328355592751702233936287312096856412336778453296465730551827722391727503691379959032073148148418188511760829291507079045797484362165848754918896709354430544396748584568090452631230117111152481437139691919567916331629064324566374995633133146825150920764629040310688035979590645310499109876442896540325472748459863739186425566674573936042918903659034959119959015068608806730798219659151694659539278919351788506198178103577175562345477612368989212895086845456326976212763824563136833698042108728867274480568796770770293691917800779089171742792489203869378303588045359179883591374373782110465324688391232241352779277057432021310650384214322511897111218856661185509565074317669383780529799910498115115881126513041617696192216588841891143324508286081200864634549657918765006812651968382583446946127239211780553774705691585367817495389914577731156055301286583761906970892869259914932869847443188993580776539177543155088414682426486318481646458766423349053998132905789010809961284935588529586300019175580464063967593736549879347520465393047275044776715538073077757143212053570355457523103511880450648404102301120994035719797936195287544180372876574192940759104523756380952546192402869829070925945056447301652963016967457387801517522131648878786655835337744183474839395751754629817404664074026165902214756356547378548529861380260841350468720293875125904149707245649130527120748990952065151245056024865464549042182991911247843535527564841045404441603139991458108172133685128941023123811879995422177175577041265926532025015769731075814594623823032889069541013375931124722801720930070113841128778673979542215907535490674214725681294255202357508810906781901564549143937024541712556484164176419163043919861054598573853279119614984062316013727050561914755848724314218310296611112255552765739765223178541155660889778355497271714218016000514559452305175271583812888808805880917512248271983177943386638392233805184532298237144467489979710273986179687830786454431289191210635365187774837054485668543484243709920863224067630478674979445177499776486369790049494790421088860457388951577309330234559916411231547742310044733213476456405601456635389184693409301918642895563379519996266770752688261257664277355160224797835411240021414748228900113634953806061964002013218996719267607321478977020508961996503581419311295111281272863737555487205462217070821044735587343478126152784284660453576823446258095253537304062417091734426788594194707785890977048469178327653944295076241514665077254898410537915975588091709514306806061229039088843567805735961910540827954418335882573547852259424498273960796355069425519261410748335525939157773839714280331542339919345345920386391557023912180694930608671670821584085041874588801265218371041350926171673262343896549601774923364261302236919872970236147516683209812201271422512151973379605963028081791364637372064255692903859894693008716585294636886533508578214090843644745527559955692801962093594668763433070904207099145494901630514684829528838967862005191367970887744143084110062033212848618555148083597771115520939490421639621510530359632832564795759750296885868289565262752843820359504640022536859354445809587320607328110023777402668357983023409628188042761065325616750331489372859923018557920422679849242359954937038894543155481934986482897236048661633843967877750637588566959428082097365910463859165906529563237488719127389914308626099477535980118565740231538311456684311825208816268091525490015305779117338197181204572631082371623351010433393371512875894682480279480011042912801180509593979489955656276079941390794552173658776839651181045716981814475266916389521613787419146671913132457198334457636186965590787826770701180025643417041828455368273077088969812586071173418460879480897605541446931976008058574823245462024608054828744217936521625513619905131522247312700515767816849161175425303614249405260644582808746711059459454387505111300580640921451586608254747131405961778523695980321061514623633273421151815378982815849071306424396974536346848417595722454020339945027481828735453741326245841735408485373890373760053600173578687637654517278246074055034353112780044098446627872386743682157274288496860715390712181150102690106120817696666785096694486356705301437447442739533779879292900968600427559534476767563875565225465798555561168516460857897365049641302914917753746590923385605439018516060180940072211002737898915572615343727072988034450334354037940070088454665031130773343159106025872626509918166795803450238165482630366325041090801253484541119939230951675836384267444530782290577523051991929533182051369456411627546641860557624949156029724468076859824614975174348176779114090181175620084423024349867974859860729367486259543015377810327294443323018552742547853717294784758610533895126587198422518705232668842417639379604536443806948506906082850980374172981088498115211383854941912030362528114536105365032670632294566536899409036947799436200530387455328302971361521597747101001834390958588612838428841883139341686233332472755814877833818717078207775743289125203397674906549757476206162276416598431860564398003145052438718431199880413095027128382359222085855642567726130877872544908277272992735580610445493062921050102717619923218016052829339212944937755230822802992741142833860478478062247535799662208521805360155804150974827882056669459832822869472396720796075886777712640880062201273612735616472344712543808345938020001673920724512505653405891582626107527194917598546177276679577506041445880739318014125210855101366204323796374190286181130471427444955106286165065026798570618353572975224787909527990058561368848070308592291600352022757070843361790378620634824644611987145719611545216996361756798788276098175969221975807977545148778194334636490711960155775462324393436032684700679749438528463498947928219661532648932412897316121979775890081556678067892633369970825278175880113412609423868637921273131530667837568029408702868875705420618668719439317075782642431478124965473084341291478995154279876961814972239952580381296185425602850353493238011320606360214378839219541961232064375537506705186499980482342731139472918315446366550707627154984150916840121889199412377902494947861647375681740683681664289525750541738483037525298360733493056300147187019987083922330661585460227221650924458131444270511318256391082860782669033610137244252301990872964846175438539400678331848888395349573715374109828604504057192317863401569713440528645323729253430841062894762669294594596348183219482259487876987824753034120858479410696478829912760338485982598216007705630978769710207981553894274071039012590357634859981550688046816072072905709128852390403936621319761269520294611821174508429847403870374637873315531606528214862883672583888051027771795329704276896336808456380941068015677391825033594314573084468451733278505792904151012286135430190093763644082481862759351864883086760162887827311992255464510767766741280837824216291969925511021090835707591813233882781717392598208013675992561297243615924806430585554184192650768977563490916195029233114880711106347911011913893306112537030113720204627812662560641590867173358092115651615504012945911160322367267805752519873504484133707433793458779067357763062729899979211113547220216578245940025388260824444517917884089238543484431842744837985805146451161854258021860915740195560307153779742011756199696864304962449517561640819375862597795699471623540718770003645228084633054174716432345430755932499596937154633446384623100506608139054642718133183051457736994392464132828646893633044633007487470628849435767928901169377983007042376617126160614886349767609874235569814463620599346411681106262756761337503385764250400054330051281025496717787650980445731723150481819633893530982014083302146244331398950152940550586697428668473051463773294195190440470850024528497067436730052862075054013262926407417192196313532528225156933010982707299690878842090125510604128778788519847559274862879143545068636506917044388859781412768987063919772078716212544852022382484905624961329089702616727331423496208916569580259024410479785591733528772892840669425549480755740210964423096251932318545436914709444430377493158897056017134986452914366929280235858864331827293674570761667917417452018845855064399326712882238718551370831991417525509237499401397996073019527537507542364616649628741095975372717064730675278177418736911524003567623712856393996999570137897871261596632314347020763728419705122204207026144336024482943999356605817420553302730821651812623080091621444892641822353993340228546584785995494812366405792116699636766901218575573141026824607861474056090675084559066387390978035399309475917869838409735927721087820900411564154518836296380689639773885208369236477659994374535879297361535853883652102581214162562190761006401999147057427963793721036459317802111749677663542621235668142296952019710680030731369075707278512186450774260059928479086823383461164326623242260786229319060358461843202544287248105283280809847402016191168365367024819122108149785516718327491348230702652650182788079537938563854945230553492550015632887416521023429519982346215366693703204127208878095867296848968353952242511600248923917248125057710543554161695511919834983647175201030967370375778517349732104983724784489288470140354560835135840293806677521479301925986030557045046561923129863254150725413326602731481553468468337698568315583717330008720016569987265352453483445930069881351898111814236646563236840315139631106574298787252863106549012409591937517616104949268442723807106701867369387723094894177694386502651645745987434202175767497310818468572980494309129923018760058559451844334711654735218699194498142162313176200310618063790238265665300837168379034041720993659244792233200578664002577895742192462305431960313741971238999504989695670925120004625124334438536951728963565613941927085599078655487818398049382853507213753977124029501940788171021979577537174858166306886173417152076517465873613794258272184123234009192313103990300321927038243168819120146838349737091741473244078497843812091757823969086016175955205189957275293260173515260473062080274180431327845111068544526659694090604368082290872832752597937096740751940929581307305848587964777300836782052000769880471780606477863526887056115187810104729980121455716360680604286973876011156200704102501780036704912009155429325959384232832143128420601366544988538474629700739249078870762920181345052134450133687489794563694495678909399153681820318286125217548413680043824792039102573012440726024081481778614945747157302356189884382385104864570903959018994207986741096939941519061347601369179380353231342873512547058424769086809448430996713785026657589232564096503747624293887152210887843684741547322418827004276780258695955414377191601918423959831544502797085454686148197841914422514964506725908545507977769514524951946408583327198343284996393987246670611755084722654143471977968994245125118429278317454884435194107351438094321554723277205897115479961869981027895433050448278873341467422297865290493256892181820159749030089088227372424279957647524608225043017171705536002878260748586764026274088438646042204751595419420399617847669832183995767075194497944617052825897401287724460305655669291151598546452538204619775292547581389888072686868630219483934953104181584442558012912349579497191911382088122303000022177902641790049578698666182076912434221243706420228051580750659011903642834848223451715310603859561143975062051044003855970075948818411086809074520774685283731893221288988293894213376956740645267628892909664995842230499147501824503409293652380556351076035397762174582923471642302025692181107442938646438616555605301613157639274876493334796371960011006647303029141210379446572321621668459535604077053772146406053926531431102189109685766638341742025434016067224849732919921600613750815989877723076626808942993183300807608672119202313028284408614008781939057093128326902933765055206179597711782672700333159611469759515872349912854028089859415197712391766444587480347233695214418350111857234941134428186213421275164255649852275174371850766845422925636113855290421578943062306995670477234658680665156115212319145333959191346396558176271846875655603929085128418311679704334343151317280366232714365286652642728406674835604865011199618733135907099248976728839769610591271307191274818122429425271626173573991503847556780817332867879609715825189476607642344519530983200295033770183185211107976128618397447056598061708718836434332851098746012071892305766508502427044788097928697717593485330899773710790498538278420609403032330408444865254105338916865689342667195991917330190724391764658384671946242740148246249622669539885987810578545700157654510600970241074083037512117485045751742827400048007367962689803942481144718554145501836196472071996822885355394292938118985566281091580742603705929879053960682378620254157724165804234243027072310610713626646280727378212391662181279369373256432519389310947864324259011379956529586759539272300341713429741726192878823526494730630012744889784857046803816551481254543537921826370387266807794351827786264637580779872678031084333092467550263736385487865012010421466438873945148912623069034204272647318765762142904933261080072419631958547702235796680096383326373569020884578476451438720653501923272976763205822962950375693785319481204975197035713222341561218113062775907699048329931569533664690855915755946281990244698867322463641423248965596668525690676526817932284602676789416557697666285353430356899489891135874727879005459766892082770459700409562262050026872012718591283341575803960633938983843091083868633004390098567994128186123739233636986392036977503722984684729818348036154052824948126256053037995835047934099820526478335794971600064836166664387170378180337149357738121272841132654861666050352387777971640733042506795306613300095768584575466202644318197705761881638321239037253351989890905987168773168138069261390168346190352635818112149377823060391243949001240171869655224688277466503510191586141312569203489563916651958724769701891195900896526822089477582944649091523867981999179751395564181185888978615426490713490435872252263196314737669397401447250176108887598792698139071893977993436635140772086402133879420404554047196662816936186679912099735603975546817632119625366662691493049929564771574342699473882988835227692005748112615771434755982640943489145088993401143278389353170209959924068761110334651230122522738011219057686688358762704243882371834694349862516743947588009454482398645020449477704188276704196613519599212743598912407520075707638760625486145829842955382885345751847627157024535276794620267646308244447595383655876205636884910036473872186175185807235411979883399911563423737858359720796381109671137934443117564208057319875088127225177870199012731510732938532632994444572503248560360337434958710615833536608372087825686061347491112614815858041499881053365874880574138761751722014962303744454711538647540801564027628948383348026779146780152138028945596190066758279217007549888653407178528963353045932926595561271319166550155865705639531867014714233207271305749567213569752727323355241165487946944229750956121349308659458730579177565452602208169721024013939526863004771329563606607323504896712072023532533474146732428788333423382829639795668911146653010540824975167312438528259413130537672401515497263913988079936094286388508717590455685322072953262583692708543665719882813787343657224825022631788698866960709591764950047467614198037825064865290296141905564640484976235651349250747927818910127033005557928260917311434013665778787695928723600038008990067269772731135292580441751234277547014482954474098558988313203821881327859420023249648986655796951348410585351649891267844050725638481039288198184799532690305016734819749071547522583330774129456297514593142554550339346321242217164106781555192226699273457442107218669006905062664051789433508674379556274165771129196475631447330361717818331802187941006461625014983367666198466559872598189679385288033511437857674188089076838484366990864198077205589604382668158496643176024917843756556431717497776101165058842677492395775078067543105178413470352213596535478765959176318376439064726654472233281539403443639923586437466548360922517087935274031086513526387676646878176771736746069669359090920632036177485829140776323395740458269257834699207840732471097921371164907391179048151034406002663198145767938301934817471412929861981602280797639682738673237931428494257564127401444653420707720451343620099624658182193670346629689780717248561932100256946364956642038166445516338420638397556904521183939638142134992233379064707772040534567428645662779252342176672769677405954008247186129720661223149000265528642864453185531303901840633376550589114987272788649605843586847145132622637693431673600747228094428248816068844071950802940839245641673430647380353929304275261128668065616394296049917783121949135239591953597292477630717510685540102315682280823601463487933906060392971786442177566757096366202992650152434997611108309905573530775546898106897955445174320783043579850210681256662807905504001832189960823586948636557023529839269495790783727484238027931946548192350410359926129001310719731867418665498754470867365637562248163904053946515221325968892412809321810999461425413193502071322648893269022756778741953140175776256573362982075415183641950095964392180847616717920091781793021082461895751253343338680013152494261093306403343464061478167512545528845931101152911726876758767322303739450265449186921581545025992932660928030421192159003041516417135952081584895465780553649459323437914207069201382303324977848065587505396526786991985603768507653439718717873707536454601575704445159826197445986486949748552401584544204127083619600908200049510148386694808681386958923863608623043074123242341711144921144411974683483625314768252983263509502180268852897523341429792327015195010634435171843078134107549022077637218198367006704220726048765882695794683938420876724042072794996508539209955117348212381437970836599975120527373758490225008788472454583887981720136336342831441464494939655175056115477833205221140253491876934580299734650483556987722700973729931006890255140798680797362650954138436355341008270764206671863628289152311541473282287219217393826412764671683205487504436165386355339892331523060769418638737126472316683711440763381008241813168358154309142129548955688003337788305242931470427786877666697776240074428487768525848330623179094984084759670647291703334389807835430907184766955467049460219025706177772187949332576664130422657830327133839313841520165686519293879875437071749592806169485058339902467860424073945686609542165057817593565449173293068710226347670108873826805618021189837585941677918418968428688798422269268415154225895307226365719617882767773113691007361626735378371415353060772649213080897904470082681009756945282597787941952658592405340002811986182577230352533531737711427376952211785819455303756480502314182819841454529058207331922552253840209004486298889383327717614503574310160489769898258827503276314410457884958756683002785453718915049802485970067999864519349371949025568433177191312453165970117448254465599665370132639372751469410298039153536661150973926134300007997957614704718991439383530919614137070019050454755244300488337676917461368889789354941418091910243874599529107087863708901708053997465298640506191006047217793141782323190080407150108980653567761528494046716664537594063791889362276965329191584020041822102316340959961157926487416656645053403607951590336194885655555855172645668239096811530416592219939467334429572078238034686515581367245116830839503657372026085207618608075992237121664256392300990223375511234556397046482090093701256149837365665847573690159637031418498220677489339210554789418880097671334246850432261677831137312832927117717128358441737915912234925807346640714615959444171219809203842667823693326296194975894673204937325476442308544765073648876711959759107835836362257182133949943886477130535368966574475200623355865674543755597475518274490889767124035203801514103601964445363094662732572338488462554930003597040225982634968317780369144827655754834165893573496992295056707902330583823706655288573624821451237342899115806595227990288801732892527355861344790265256324018592461094627931260537830312295870524997348388902535001473804211942383548955446559631079424950654505481279246929491978477666336071694312506757424059160204971802918324409586230520209778251944039708610881284496247589207306285002749423671476987976443012187347843508753793096773903317656628610440085827506214494353862053296871557588008892420836594932627223512329387781976027720797417946553993388456164049037594617345590920379150259954828766583206021021382179397973368534182830635871890072855358690390090382000429563198061224320701114439126274984248816844502931538013276105825203610742293235631358189098525001018302531102470905977848496584815394859519280439220837591543310238012385568452285206155025101932027258166783532742409650611540934474545612809218200012531357523520193347328113524868573208506965027846727295156680661982167841654774346218068451532105818135185539642729041604243086764923121584073372608023313953350249655285736914957183662415725320469134141787081528782681637564494891730897871858740315313723639215583233999226312369153063551016198939629426844141541870861219085404234637452577151360547349802548392000006568920467385708246032237292444845725714464834142099423856531838639240784342178248483768950220788757483567683321781675848535253974945292014756686246933163002421498488641468745980683843382550909346459016603743560816877548404220310491715326519451861829453157418775589167965194569850081534439209367335131529483246595919750877732848489320160989809083126684414163239889754396048626006088714419916230314907913978771612231277594020196102352197089766831338636056716167503102472591275567118333886337803763154476017103783804178718565570300344071333106917137691757001556689525376581969000601378902536569265743497090634670080516094532516133031159308067510732544920303227036242644675200647056192285347870344314860673682846796104538524721646250267925225127736880998090949364329049272633833497267937762201283242101697963873804789702224014798001240760704885653802693285263655726143122920592821331701699461864197749471438851853495520879829662494230603296401375575019920190676898840926013281325930546865281570664479966678523027339161200455543859251628335437032875066124423269099091369166768760518381001841515379447603233234876303473207771416728853222927105400417434758485376422195605287884535004579208968415017717537473675868499530194302527665740047466915069025556962112101333459622534912516850606516067788317248198251902827677545865510981896049947173636443556771897327353168148221369047952389428899392111099727399588411611262546053547948582279033519255632393546915403538245510602369263649920930135819098798898550179888447070002337643711155479048998719730046322900134389015289835938186011376664449271654832472384765405807402968745002014588287823327568531861623493145133038603391142296868471403486795992449796124431620762253310134147934135381313379871904879315721610007495146633333969058210764508425467393698483561397570611653040970275508537593801511458894501989421481649598585244714815249815738739946130227863053168209484976138628609374510100387659238103205836563996256468565426414207690524936179011948079181667149305268730716321009516886882251901218496035068163455979784880693457508430679731770558659686490093369771910598432750370906024015524370118064592291749333928978830430807237326888484933090226102145572574709036181067906786873716614451482214905351310856514311210570381374660140236221543703090020002435811022550781330048239656885740936074110409831805161367371389117146064717397634567175910735008437223657031980922754393403820475268379494174614577826732461033195403738323652538518905701319737935345545337039215039042940541153391854846359225505368689025944737120103070925164115918051685318958910417398208878183218735420914634363022437734827096828313667575456987216008575160590158216062474890427386288982034385636458446225778884753600892703319691520797705420499295284910803481799815013803940210701654575775748440793083329196309789186891596655302748667905702331416457859357209318270183646182049765509528535610348300550495371059464748842510239595877753141726973881435530914942553424888915876689369429741124208202979406104309226791429743633174321676124784424770920998895409554502934894323625517539315978633410776406771520118589640499689164559514951571972423587597158202966517784354571692807308543487266258337122111773159129750071942013999082802480808337825606445369207054775217248671126629423666108697087580654986919886762597800181012759165854536721879810832212829175828344339065083714223752007482420147392852236535712530239074049159045801697956704590643116282707406375962305863579375858899116235750297224073880339482933655662584944476557533449903509786105777631049168871003188627635810818099015784109443450097789162054427141285730923223299075782569578815674397100134990566780415754449166669491192999457103343068451131760057988615837097428095474589152077809574197359199406769991660783204122634291286072221717237691861886249960487790203292535559114099876894145686915761029316623720794243913582392131066517548444512401429273372200775355758827396171445874370508964758354096170236121022341316473475069343572500608932085446074313314581469958076622829815306452903269046281169608128471345174531519463176154601855588667051379126658509913867522030688167301177081609198364171597845073820933775540391986005679388849578341718225667735088646120460622361393706941055008483054123662526364140349034513502055871409969000577666353158715297784273318598919545191062898199499294768311279310468331297149880480256640017383820293587010768654935557390558668691383544235837180240174102963125011807800386553746909100280924481682515654800409931028185480690659887090722878175799241261905911668101469208458630673467831160432858177890495159339436118744961237518129664040763773351409827004741177190699117386253329816499143945386541189994391805847433164572691104878643440387345887084909855573533896936600326768399081123965243448479068344887322419986256083046548312608336666995077129832045019917648554263900478567127627731829783019663567827362270104554987312793383577582396797647043618867671434765779290057198111315067339290519042725262738449769333870731731408739567860692373506714482317219434396666224088385579393353209771853418016655950800512352046606832960828765912962828169372629866292827561506377670636419418647857857712570734289545878586942194992360321129863149022368462855713711528006200251008391039663637177446012170576300669034087450605649709254531024013323788202912212541793297363659216515727048438665003028588051829255003055761981492342590219513081582390778945858764165621163684443018095401000628280464386814366132491783098589038808928782330369013497013148094042074421595670505556160344964573039444607618941114574730926351431003264216656219699444188575448557258403637418966668255691109596741166908855255778595517659939256868009906450863527481842048288715547590525981788349414843857292648492608905266479423541537318303746359164182527187824279286546361492736894695627499443132483681407867496143403833204777481277910113726668357733317630944606094705273073971671869455786550108789767108240935467659864962124658508950969937851246316779658460335290706224836174979364603487289343066928673727079115178828115535410346335699083291055027627343010425553920882431160026530239673352912746182720200241619924149183167109124874950627178775007687238076217072183628585731493436297273244437234361242350356874797271619574607435790866578795057244422852434772232871449561032610905127126397832486495945162890319293600176277077716103590582106074027952615186474602664869610885600780719306077004622770442543684252369722830262270404358213877723921655061179598673548777096770573851587738498099867907443891231405346763886846601629957411986477459175264643715454011617816097830336049190808546551676583447642724453655635356234745033154028271426701043251814047731584361814598752188057004542057697379689183429174721813406940205551593567012327988756381707428619185251992849025320105024229747912570439572774573404637640605657924829185654703526863769800076653720864827692131347875586952114546989809161388108304759687616707052736422985595072843867313913053010711948406335002083056143507329466328353800480005511092581524243708351657079872608546331689017397981465109307838131894295621865838898168207134256919836956025916886345085117054177005841313778740147938352269226629723852913490007636839359424818214371058566115096455986580964080678861877750015366200136517358996029341009924811954832207130116394268419024898996534742512225328879719710627978269909155260883573765542367712840957928990301791103360532787843364430475949317686136934038127258208017198509117707420051402686981545268897255149040758933911831449959223862019892243849406660707948090866114351052381869747344753305702208711284340933380379191242735490634386221065809083687954377532342636193031884390715629467878741692782952420706277113440805996666665045806081301738787194682471979941897480519821696338128108450344642880823098831987628341661676427617981308415412862187713456460319796273744233092715668605576551856441208336010421139647019441938765994899363419208013170851904043555199690903494114031278099321549933437080938231609217610944798374518776165342317956158707011502264277235429946938708043391817954265100310765915448941863053180694508898976830877727818475214636282995461409333339373351870523508190427236195060061504981771161837122004820108785186444429598352321420319270538936740888020121222663477103257186828443742574121944792677446128919854290301413637620988907344898351186152065226169216469833609546902118526098413482854903180269268507213118704488519562889704677535558791720760525461228874129139765933323848424898204270177469371683105189239791236939324613347701616179996046323601845994018896766848491809949624189757962734364053853543120401415788452661374770678763167988568552336408295765587764170767811153576327371715906042324926078244018618926197057103472360118109821911636789823393309246084819693354728879149165323086146867775797639105113942922154511150942579687724099392362450192895644604366695530570320510784973808125767093735993330874625617266030959315525179464962722388181107275672735001805778885500730992269690062551095821490175649661761651223478684948971495536107867086517498623030408787122702508078010129419151499467999244595387957396107556486797469460832559892514900676376538096170341630823046592533114505824415549635927118596699049516447752736449446949074605470649523910444023507129536165485695704865174025713399019514869826100273380995097507054710742037113627224754097613679736099316145051057336791347143308318441320943909681520321720760284384768561080549024012250873582051769789542370439405415778680417924422457429595636100277603605408770531883828120706202722457529723603888451896079619913932042148458949402015360767822878941973734468183083226033358872387879781427689400615754170263075959898737447504647589828787579894898551060362668909972306489599198413028152730578419063506526227820867361040873233330184387433705271668374515075323414977235687622683974854629460609174968270416730483335924960936794389366479851576170727892602065950520858774187493062630372211531709253177991647154267265619887702033702930010492667970967405875814330975539763382285531861203530763968771861267205040878707027803847326244525203066250976426813336281725788784344337816906380920192748274826746652103027843874196203687599328798393918841549388458996527513059499935758659192118415443382085527697490849942083919215365205289861971431984244493228117558684453755067893242318542258767934664430160688322056736654080896002261940988283752054356096278744068923665537361472414128063047565533483215367361826837431675248802273662278497408731857131648095484417894658460698041625735472410995322798313276371435542935770831987709935962257763982517456458887616346988182725566292276300096391895142475351031725503265241201275492059920053367798630003054552064237194080872686208508592643864531047954837603548564399208581905681488078536909325872618914318705902113058607988534342709535352005451458775380331997873801168061331622825921485869321294331198318480239669423798024614510260750647877044481605135025209707584553176471127672869067269141084620862015546149938214915856252140745482889663121845346641978018451605050210719197523437342710844311837914204949026512386407438462502503045623030376435294030042909460387283176172786900903929127515533122194588007706126296884313221728129161241060688366892359193599779373258595656850575475169846697274878683579801454428950716067892467676424354917229976113683163464177001258344713364081899081379446461997367228489111959332363851575568248810008415905892240820588672587757512761381412621047322193934538542139202171734947448836677821581979529525917514966547181242048406457717323153250836308296928952096076484778834199387768136432033346098796870498221362339174704473782305355591845581517885635962985633209687100935457704925738746160414887366068929322216572792799530178648765444231255542872663296309034447596928636008787884595759953515630182487516387050905654031278694526112272355264075944563754530647481830080125710174232617068606600918445914455584404247660362737310985527961733160088396789048176040879578827233684214843540432009355581732270366448010647807491660892580327895278068305954280242132026993629704334331574774445013903439067609291120840724666801863535868081433341138829746063164004124725138141442130634451310884437935679928955561767982538814385409279680338874181476161370798460246088289403471192232479828147800444320677651606977624843526368400452627373478911884897351930184388693895180791790255081463014826667648467325648772166163061491736048488317624430036582478890553988743977945818775681554474615789506966211269147723036078063023085537509711610876250127408663802163935461996060358770833523300847891032471910337134430524182027865539326989340523979400743448889112930968138322520384650072988302203172707808385036396068200620227379317763525446602490652068499668829816049030025133608656786143462855592410142131164822191157900737026002939105222859854745870333273642964920282711749645110070675372729677496614037739227190837197169380851077251588868341197921076938108491136336714053603555370694552046707932443498025409833649027461265166934920775565336024354264379678420680122084693360238037863514770887232658537535479971427100378219415756856914348019323397005765947106998229122205628238669628980124449258536836555363738032222370041621998029862387821010975244850584564435299735930295247119767007704972213973973232797534320900583753440920776628584985431124723689233658203177196165394341193208498049188719957596202897980013753595932473017390490628334146580600104859726465002930885531953962461845050764056090490484317268975957148948629046454134487507753011817170146284527652399307604650654358364927101087567457401415213994579804468372766107004385992991509709509719507156271304603499678982557734857221902919334790103526335171563196269288926547947269191310799180886876043781640967513018096171961819914513446852503841512974376206109152388634960145312275453075943053381195503816314833670013447601345379320504541758526018089126558223602654382469834271520435621717522302305480121076782640901003784117541567818459853895406183280873883455997407756661628396491949892122944129082723873315312008951948332034985745997969186025407600567333898649046991472242211416479608685537221975942374027780143476634387923590566325102524018947850437617933969856941527517183031728251349230362814499066720121257194341514287353522704795771882499171448766892217251151561181902519709800897801791406502042658290520514678618533403034847216137820260427052862176091658168177601318155171167514262596698987609765257053090109779449730256838205683515949811301961945785173227586754717519653481435553795967536190206295642450524992671850807926928293022137476944144060534051585957715756462404504556418540465571971391302233954214257818370390015500449945484933618388723813123042572682367131198516127676175692169810120248111181971593045407153355234059477029770653425996243244915690683065798195761247079385513908929786775658742116793561076176314277208266939860074346850945128646443588171710620457321747233943631105339317263375740439893468183850450496622340477714986736769149592302800834306146642949087081019223181728513899756874079978141764750695496409207484188232332207633851317226394836274535588618368756414593875438089936190479895933380702055434293542363315393887665112295275571093860209652345057701508585598551402585120991422847079064724393872297179923765858854391133290755163846823788588626627446637770347517385881708712659815657138203190793235445333281845370684123721609320643934533135301317865582536097790270878867801144310603477066098555950484889556762578144944693861146701866494852625416915022191502266248535152490125776466127374688188525887088889020210902075760794724388621804505840575686339170282238166738788821982615308919435208667610113622422535103714240583002664071442591148505360316367238607752277687105951475093951327431196650464786556501155399444823890583200516300427149806622401148937544572313156214911315007902922262905584920732077898091808062576775830628111987837617868626709979914907299023723812752554985717004805553560917113231719166758955498445480210253022475974950375915669949695590923602219721007926874998767970894819562401320160254563397669357104963589922232334769738255661927485144228687098323119610053578877735880610573698980117679528878007461765921054483830693388531024348913497267238626008256257421322453165778407484452870782525045652243280140335490996817149828565786577178758804178264739020171150536434677168285751587171211573403781916407302438677650617984686235048363816210689254059817376388219706241627963723989748333980833507811228725629259971990422527855265982759951974106686195141726979379909107975966090847194918922842964496953650878581383056711396660537404406576865358311853598317913211049780107156716466452076616803160796814487682953422870512668290322904291334533183406130428081350461764602969001891592620951708598836917141182788341629035326512045887439264733763628392197995200789880256013729397512467991217804698039064771829503198712434349716199889844008144294153037462430517690501720694111042035743274693768724171098276961298334149429767667920921669944018427863301626735031566813387122174709552637569833820774995038773056580798791085206569123438259873893031471520593504853258836290199282305177073024844774223836995856338516483495221107205727268279337162354499301462520398667426331227067011621252777325025672076615697093984247790534924961433558164854809851472365961688033885620581250655976898759356775811633275669617263470319661918337080869627136633225652557697402118370279293662253594889712933922379168451225327878759435832894148161571475939108139634780189817387056213440056399657690723690167737142717525802236569672476696381629288559460542910691932891198821930508477403453752456504898399021131395381778965835806436771597893676777744523932554798368571971665290178787321541474542699781865100469639248836903202897351015646992457223061027475046403397403750711980761897167144952598206872366321344034389263161132649491829965914579541120782105808733148397439419926165068287868458350337403538505546671005428581333416801181635534224725115092213030479254389860972793722666802195556257275856188425103013370216932060828011937876200033592791455160940692324506542146311375417740640682899080783360830018928770504973847796370477982079770353342677020535362970514316128564601337924142765603829443132209236138482494979808360836310807967268461249753843156759063653981479178947388910737604489068809342957302675654964211417192648056560446858764140464322757962319114401198871730545287224503689741774824554138162140007750680107242146594618344496814903478830383262204099691256046323712520334491238807194575714017779139544973763729938089971417362456539327129117803071268414796686818492527169726652367800778497209211117490966916205161214488367901926863030339583202267435267215675417802921908172637564702270205209804761958244637913772498218079787058476094321881072377308078180019678864414576276979554529960534895305667988965556080259340986502586856253820769651851650851947084177203804820992338480047489322765396036598427744791169753778078418538471786391840867954811015046543545574846149795251318809449961684822912896910736942679525847975586010294472155094505346920051798551121948567428534386058800590314441050157487733985172476190308865996621208426146187741891235369064225390512768063382022432124723822487539617898922224149993393768774689384643349747691517245169420719468317756824513858508220397144271387991648280709314185658533027773183353973991883545123448095109240412002879246345577976357309842393194867261543981340001302151637945920152378388085681762294824648008191316149144169062204071130034974006418397775513638768398226294215533232616226262210023724725681222783340196124738541380002611504097442731611745634534590413457233355230693475989552113111135892934810242886132793124847196273473105977712777212118217330951547589882088599022884680909620536496859191928774676601410162715854907920605427992128607722261578473871318075337311455776135249344228991740869320898821212983009688334719308312383110405853358026817694980863418994097944409743832991220395039135126320020835461500296109055918089683592851418918577068109758855804808168433312732854851105279313472564489630038424412562309011678253498151539719184347447544298045047602171653443940464348552482848017701005929225306905686805971042228463980025816479744785716990408427547185446230643239499707675968410508481420090062836587325911511649762866094996075870412274204683237744843197111043865114510778266964556429717128489081524413702754535612017401089300385254043542318760652541013033132493959571232722352024741578665167951868518533823550869906268207356793351584321536109581522172169262403164306483299006591361494761576299524778645612284350641033971975046489026924068568259525735354666468772387883270537196117059514432731111095296422225584103361361882678892723411915971126158629326909163246926080539907530753435690461202480742357361815731273306998473062922786451077443016589698275219709718810347701774763961343319167461148166635698861357568358751419433000347190438321010183047721309392789266509275219458056275399855296604895049138026920006534897495514183871564890444476360035929656508902040551771517267894703348131469609514695912858070955147887022358259836842595108976390984082793094112240190942376518578994381820641713014576575826399229702071674512406452108828139116998543828024967837282528476235127496923046240393152805990104658514410180060199197687494812022349021941367064876887869794487819292542021031108684001154966303839570005573950460472148655878616204682195544588154358205118636964710765222429799811051870875550562108487457164018940558573846691825134448762601801295282388695199126305681586388279153067785435486976009698976181943372830468705479815747565971719601870165400680766838611930330453689883689679196253408120657591020192622273854036100437471136560158792200429200725236457589335124990472473280976753567505159816386389509230330538989991000498303880069867696937488386826607890634002951176215921907094223177269626122114100060353705792706095479510519159832942644647016190221797153613785104591587496463444167278039741436567819641595009520321768800332378318095560263209006944941764901388157925539667877048374111439886899987542780864279382107169376681127274722237136238241839990566962622022346409553366424042383131882338663475433812861150741776348949403086930090246924035071861651057309876021259015921379695913635760702693212437733827339424598273895318250515341039653281698649236608264469353112061915640862578732220507130877084534909189282751785114277713584584462168494214874003315975725649852928956186703315300589172699475227978743731272789591014252637188089349472221689612990460123320707198084434640591332636625184677681536227906859407950429873807446678918269842764232760841391715465651837360748861970144694916132409633287479017045887131886673060899538075574807355636701963976676085624801245044818687283144517869109265276011802017785708315801482590714863444044278295353911424272597435652597177959226704839772820145219238142345110515633235849170566351486907971047376396623763709102112840071422380069951434592757741097087458427739394841955908571026160428862999290110140888699181338219603291489160767403134181691191524031226353209338526835114979294464124552633062818924221304198084991289350455129968666575427266486523041117614757115196413051625545439795433637576096596753020413228358222849910193500926483759839631119684747684653140136248655690653691582073938726783037321824181132552475844557682090003421187312817029603997611397142740887149480308554147207510010043978923034757180245697715933531170470766746051972992486895416053859520952629367977103479855761528510343861344247584169057363263369343269640115865681411907779001644734915887434018626365391272334001415494473373452815165900354069260705060877321742824702720266584029678261747699329577611657415388900068771626647565576808526648259231442765322855802105765208997710801180367777605610997260625944326423936291201433191152930635700797008834859053254794268479655513117152386238550965187703694396014483024587434823906083380234044993483672963351831824754405634966943956200354075046437376000881977952280930911883230013136671359676019552719045577543914074765114453064270428421090750657135120789065719671503555705960525378513740745201753567979545870320077455276664821249643393628071167709803987101341873482248234349454007186122831667444594226304780978184954311650458314414581450377331886611520034267713720857519156251581805559250360273274335567705276556003452787171818202153548612468107091695764290289861180190339597416772761396093198592335120361732977621051895502064265241592418708326737080828960164210746058844713896397148168091078075567303836801265884653696945372961128324445606453705590060959448125219644304043780503513583561430963472909065137339774026107326334873124751840028411854361181118712497638024194263880987071857361838689093095155728550745288233070173695671814984356710607299753138079378744207783079865585551139527486401789774621917586053390814526010386620335339359872855845125086932405080438022516747833496100683251488342550916442861790395921318848296854195085086026382582227209949604251232935491207166482047116860899365581967531662915230717948674116644538183148910519177087635984996417137096371042620974126689587312945181261155930918240694723761089294460489878740806276877041290243517781556549691103251489618418766636309235447691867466546538448143188764824216773329849709753136094285422499685218771850818564050919740132584034948450433389795466197272829288315832690543402712692674790051096060373781942323128177454113550691356621387289458193085716575487182184819783014217801593580481403787468498790757419050723767349532406625169473368858212093848417726839799959754068452643281404043752996900760010465128296319222599619071381968560072696690142149315403866757614797969953158500616296076107407839947712050619170531269911864428739491078337675760555056195732202905582278333980597666729483691344298881901398448262559677429729652491461199186728590428134209952780456292007141054153108021847278844347299025517666866918998338886781930048656253878955340095937469241753357845710563215647305553702269276560468417915841768011091564803174231557256523946193181393783442914760138304656863593990290463175849290170193859922107399383684480519280468544904490613504885486947841456982690534027579892418594348943980903558843798319644777070360254052883208002456534756650001737038415394337940363054581998367010835734164498338180880276452609333290339508318604535321314652329754140311005060927561771275192511907991860293756449597790240660800719027851874657177703987079338585547140729278842331475402413806063595321488286374391597065069943977279591202065129177230023907000652549774093120586239638315836352111252053027275874923373466050216383678150708362750192712220689417473984028573774210172827882947943960760128436070696889077666810110970734721889552951459368338445021694071124840094996778163481411915457846219865119805899519208670288355697093227841357646548184371397989149894203502727688152086294434267295124579631629886139495051518618759481903809320336334010391753482983679860527518646089426670792446762213089507224682815903888342262781256507784493717259144089331929287960934115283678937969880677528416950984860912151045380192948129278860826006317247638270015657414359299846965798374601637750427641627314720593094673655504578181271087096551113327968175947520122782617137215765411503495572935492131807025441172871060718536851565451226806087010435079257596249278547372934623242122224340344050389621820431382106332154063821735091686753954729059809015850890403147129128127476885948217595017031521555314387049711723525213379417150964004450895716300737427094037618188852110604704657506930148085632522646434745577008904980577237432453861549679210870698276263879883007719491220629631773648678341548257070828116027052087429380506290127359933156080244480381476153972415041701839244702393304604408540980036851090956443866409576928349687646233714508816008470459759758255213213427075847610923074933762687950305824940896717222820796807114742676709384692288826911904060867538890593690603286702774459653758242084938654775527387367538357445922400112255644530575486121036895480435830876795619667245514960040990442583729273130652181981008064742318582484938224070345799963756684009315426134849354611813128138203469600347213935915972192183153584861111534616930928834644941285193433379220152322032997526065726460289894577515841920226983710188452943848055290012165849343177605602999418521396771587702315176061104161656497046584088537907300423363214255579030100019260089294168795379026164584466985474756888227688783442912486380292856139093772552916546773106040375366075798996604271869515984005564783472349794404162363350955207899633627154002152117180372306694618831795122852841460525238037810297908067084325379579131385164511438642155429051718636261067450919496632272266985582596971784236605856149647569254771819758011203931353129377486654847703857297558447154206828227783987848939965578095593914492847635366815279097799072561842785746909327445811503543271446623656751439602990951162779613595315708947681453054259821863142966397853131651120679043514464671977301146432420815254134620401670775922152214807075307540902152201199461157348592493894341008267076981646041561661330420694543363920318612114205021018075300548692270897764924208741956295261862711100760291868372059372604993201791912652846972660725481764686339161301948312977096850052010860304231763348780904502147720145019623158086630530919276900921793829899100935447629501335565954955266766792113556142016018446576422182777515116827482925936452929074103831387454297825031445241728123926352138113704291946415235178315500414700039255688310684968494013022584220181428501409693658654980409867209323418960012566014984623613378046018097552348137411456355850357964768516777974456574643395849553305976742486080379343820872294456462198514951668144448907089136845463336158028487759082358546392424262409208824589152584671892568631406766043618026583066527535222739661179417401201496908693173620969115663161070270171810360927667158782827869668061129133675195770750128884098159123058316256229831989836926295144390143353648613781271280739800355312131282795244890197330984904999765621093649126823067021833912412971474148005817166648954643156240212037000447049443932040946799899337101517515350049588459582233030198053743653170211246091423086587889853018066119300489525362752238076892416984039217545770932287081993680524472947255442945939534889893246257317079409000010225978929336062665288286164925955251468388913810871086203034415672147350856377141481927665005618798254806091922101931138275501524336147680911962621906441974770578635815785685310590469084403360999782007992211270293881812557838537034454561418949716307388823910938504477559004191751463229227836892337565400093937569882969383905592286343756858250481012555828010232196982791538276613398838291612516302691478466687564618901408335375852332110359654618067816329786686041991962841689550446729245412977781364939620418661851830917266372183340659468662858992177454120758223761650317548227924498928321782229537917058057611496553881186603345090628414478330004642524162918182306591524573166834633015577300718016605145139662473570771511318019446202705960401632605716576578729054918934624063415333700099704944560114316082691114043572037755330322177934627380223672269954779605684674976171615721278610968837518239078452049493427085283821035294419498186587616910175571929267808944529847816118462418361056606798251319352327905126587895292519289929683958230570031918373881469615486143463670821922456627885783703929449819028762015256023862306589869062877796465316400266333179148950494141022397909042807537007896258864227604923923953869974987362854060217797954953877034529752181171301597278633303546903433993228896208076020092118301488203785695075729557658433306377384919476777520414115012707566077016543768430418608409456177622826988585946312430331504376364695689531129507001095739329109435048630292854873537834422846952256432046095213984894661840133007636263305168652665502711442957613687113862054129532950129823715621568956739987140029838532171056144059734092029554863676105525969679098472904469938265521241440645846222892456219655446609470163275854123409550928736322007560130017831241985253398580987941580924264068827219132534830144971019820575021604299530832150318473627632476712573362822851319895874877142668177558767351566839746983195759501216458167072561008105289852391275238642163776679773751902371933517266179434306511733091638711667856834594923329493548856495530989762964974434991106521732376873909538472616747680332193946472336601809541637758124889620015129006710879187617559828381389312420919489462625529211465337487247215246380987307773427900569572382896489857887701189253604699955372192756482499260496225148912632110041187445295048928680829558371420253703667945313933240567151992754012428766076366449291037746999647729876258493723307014587278763347525144224881525304920196892995265547144002131982381973915344424753414369589277054840716548783534573486368871761652505807836457598668322838261431521973111686130362454110032764829498681801599613259917579388203147393743730224815689000149852213667223458087053021091472832494002862034138689743768854033775630974440023254374930972785584056788742455040680115898397277883788313171573922123591170239321232686817676658844354690939690728138013698506437934365484084905002846818260020603301695647773509852401188919359131349404604678425439893330944147295708857140080220880383797697364013380609454078575311979773140642901862326420856549479322560471262443726901872981491261430785311067689932697543504859616870884852546204734932578219596250245745100983397467312571557156093209613154708649838995020954587030798161382145369146954571218032535072583808333225128982861270649331745116501345851400041652981367697653007396754829713431524016304875231666033960679458505903567731627879543903873396291723593761178566921430856406235541005721469881471302045800147153076479099710472629044454133218318002718505569636847202646787331707320703961508122874895749572713781793054672321020328806149623004012266049217343241298790560725308867577478196695978971637449599934252630831263726437364000621412191380577382534732510962868365426849388415360243225893567905441810809048461572885211200489472962504534879064106984800087211037437121618131354052259169742366441395600309260507728750451415662707544405312185420498235469715430311267775342354779125155666808650367391720581042574205226434080572706299082900923425832307621740573196115409312895968318646492023328763975119090653050272638697775375677223021505026286501513582542063857285359363947335549433394682359769377687598162394622069013921858899082729152154790568296557766930514607324566949209544132283446877110488226576183092011820595502470095563190305978081403724584094861504175191368666561744895796716012913975261167169899290399156768009336643678137231158060019109309303549438735622548222475544132224915395940276137621685754007147831618296952431981671339380772724365521212740953906622411665772331669858688203160195433535758850200967990993716588848128543874134900117711865599053673251116032692385464742280670546197697689007870820192255960465232252282066676627287734783857741414516279840655913571484804601472483755350895812497433049208160947002319739870547109258159829692332511557288525569778153511115708947972609227150603735692453819155674595027570542093474368410388867743127804314187440709957830729915247155949555734634683289475885638186538443601802359971098713665050290377741641754665546133101587416779358172414157889188785828190304383087589373757451545330119121813343927973733121996200078305450077566626922417580095159054907263969625614309393447873515537856533189474156211856941295711056789282389766083135521285474054322715099881911949618893055948861171560144521871642621198119972882667761828288953689530320033773612590881098075840592108874247042716810955634012079069045540643350733678578100943564720939823925003450101126003344060124382140527001665233418008113583441335744369019051639782030001275364955110005185442919856890310029678100467624460734764479136496969631797971357862803536080159005375844192057373784452527897169567096462608230393227023186073011896623284542463131764709130084552171222060293493340782193514853472451686783035055275939712629098385221485032435779773959025554696037726803804743237769947075739597397766717753444048830397217657512437748777141712968241932987547316048745793250892822916117473255268873455003229243354468578863125337118460014818906414330194531472471874238643021300431166991165294307855212832563823013446006613214378274159575921034915909155613697036895532444504242254487312937771257037445826133396628103265484836843180399580002733322497171506000022315086092566451263674383975004459309622666241943690099371919579683288005974453081761661262690326200303804028630515222231611396254815916422674633814058640708626807160232112526852302251688832088539753235179716737113875825702442847313996447835696959117555893119066369650216985234102555281601642108976624287918502482931639774523407014642470508678760906254327750589950959451724699476133378059047838933056471554248870367226114759210350395359388597518372784642079657647951798278108331948075104990298835332644710412996836145395001916508384394088158607547078659747776259272468479746644457757521233871318090058818628044119639788774857971330075630086540748571874460964091792581799277756199894768313504460774778239983386572036080869978982500323751554237846531294295373467156127813156177345247630107463694839382912122919678143325909577856918771017519593400939770506540656403534667838117648814595992464634569851153332625520555543788885510991745054053726382512341007743667139128666482971186215175144108726615922516587190987060421799964983075564287930396255268843981622105416292910467622768889615985510682351823681096494445755786259600157399270934912628534474615519381095496678179456124380670245926139026241026197349770785990035204917528062699169172874119611096451600957094039123582058565402985870423916211944240315468616352185370977757890640438278435434209120947746250986684144660620628247446143379168110089242946041129946773149169359559355754430420022843846656535021053755456964191260446477665131312966737979201027039602540564233508296770650416322745714941908587325004575652140187636785231109230352381388618668086969809675896338487255861208998911283879955420057092428937986144452492307439535455382515806046260934233921912637962356569116578884853875911099374134109513265077524729252422737580053530826280431628620542543439130259802146420080776661331324641734150074999600214586692391451198500025691273698512550225139536337713302627130671807430640899251788180665885715873748344053445722040251922844804474166678543838539425366841515820036725019049285793442403193768929743484693322576325701230515810812087969958884325292356422271422753796046235538050507404742659293516574918319357881642775917202716515160806051791454627129140262932179637124621754313657971779434520886140788154033915883147596332343380087983459460633305432127059972149583000440342488748521835674461703445545726788821736434879494250406363269824204606013784398648456193431956870701558636822655542240705020015594403890745012426778716300332171315885209279862297291518813927022723928480553920481126667913788548866395953396931748549364868904772716027730855442733777235443077429064074071835938178029737613153631596097550883711152346233551436127982781025127096743939114058359052369934596986075732108677899948342821379710356240210663397786769733852651657242996083934514938907519487449059470875186181540613751217937045657805103392412310852032256548610098959399582920387152167264504484703037429670086357097207844775509536707016464816747344239120821488799611600587530954960855873588319547835569137513764967653757556296726289151736467497942955341915653190206166458315382890996601708533499157878984433015596255046380245157107266545496591494643693914506417661995350628065030775124624438493299446265197953481747987253971568753530532976051537855865860819813230975521605221375909246843028503897069805156127631400316318418797197378376985047551642597503680968849650451132689132382159099321675313152185401554710035994980668805747033499263516045825739221470419005050361580896181011597373318404214449574362160739619787048986737547620641700199040987763031592973849064246043109810604811490736467855009639097962947259817991692157312282872424496247460686272846506163047985070964322812421242999651096701717984695119670716927373487140667834818726038938906409384173473202584262479189279112783349849525883851320750770628785498582515655503450329514204956134939180107785608727923881828150012806808362593460669643825904928178254148842473026161292209506610385978098658914134895694119812544856568145934839101335674261843231180391179663353723633273763147150250250571546350178548095082316537427186335973692775074013593642101946667845473252064761842460337002059415236963058483336130901337151141541560474156896110216348733962933565232205226885311230524368093449551734104289662020732153034097342280055321825280907338875235830596999268740466112715057275280421806172474909640693475763379794751011080380754724989924089466116871455774731207932479612417154818807397517018658069258668845217597974094674710341990072319419297147984536498789823758216142799195455797198084244602358844463955238774065279827639321493764286264708485222042655720470215987286364643543594369243896064522130341256908804975571232531521585956731697821284540940547579152137621244661503143264730159233322118154566207962352105821361480741904841915795638076564693111367874393860666518468854210254936632307938802946154565936493470833086162116147276503166114819427537293150476406051792527471749879400309035302710520078716578356485663948038572559104642213078580800664751714940128648344635518249423417978574297346068157531788386754833532992264297748222951756667645312417050473025705863532394798959136557987612505410404203669815744525163579974381768899099150852720963255286389410021491762815839612197148938652370920366769655108782626491434678177234826110558781953688974380618639340871805047791944654544587298433148689302403095880476441046800118984649281979688235354169520654392779233151609855388119083509434517980420614965864036442419168187444466405237706082876633513130385968292788159200910800429332017238462088350437094093703161795795021433748184430938841723132213972368347920761466818338238926058945824481306925175691982594787468427322048146514622049914562256339506628681877727671944725827346942644627166868464570840405265204395029310471662403416196569401071596666999286224871436282202573085903491548405139821804801021344204445737892069007037714562690856873022903708101254892508083855095490724549179932207341845809469681824070032566566681707479811503563099399132822363625187293817936499870708625153481866777258632715605552589964351392863331835641859524398047093838976497497432792944161633446234227558707081437838393070031766437534826790144184865615219350816128371785862907399946795686988492461966656833305577126856570990915184812548724460596374436326496732314465701634865963730115338172708771549930551130633665381558670162609696247973044872364956112849302208026691498570422552480571883458748194186029146024982836528691144771053462945041901514546830237954686247313014832480793440865723845702354346077431539072899904834491350848539681932344940647668240481891304606496804175765843612993692616803801227269784427419995870538521443747531897319885778678204744267498154857813483302873668971020046429098969050419869509700021449947370891562897875607104275361586079325899005133342715748605866504653284298343360546053932980422826947641932308251963713594799263222436043474092446838357120339472404784436233085057348377425473814828010919321237774971535637146908511889243695580242495006800555925951802674865649479194183002242697739402620228695085035771651279356261834072165880002682767332430838455675227612767287551596678070752967584077077934549058353698148674476309014140755493809835704336688292756366234849475140407858152647402907079501996223134475405369334405872073022313234880216646140523745009561021157003102557772995696565904862387446031618064024783989392027498844914255905125837781835338495831564909933580122653845091634682846275891082241867713601423437930342651117843357074644419359233047916001982732381138763498289483480391434520249540900681652307367288622245692290935874334495238193984075912941423179586991355611464677495276954781426788793144494954910206364702106144557400566619662308454050675361818111823234744109525307631155171963638894123331134887561648909348971484333942459467133289488407769642301740766729994762623164075098781417377784053338015016777524734312217108781539133053602472511287862030547731013732444019172228950589011697825370416182741734031292732082122307016357523332207129928928067022894173164616160617464618473565650542990310237275418489700407954310592411877919031007287437985577357222168869772367262590835803953691066812547940477910031505450065060060713633381546597934089195209792508771435543107052222432209643500349343164941600833097353687675181239729611498689090429025121126154213064154486032114142997507903271899738018506488968204835947938677962788088962953932270995993634980856812938843017326902827638131857546863063670898151431898797201362332935293499414664570156025311852622527904242611786892927189893683049027591701423025756716682172782185554990758094531123790099749921489601124171657934514171220599812753336579818536034680398053808511734408688264897837635680956101822898384746964088380722797150557622983168149489256174319076133063351259917847345396665339607644651410819280283372482317351181068267788121114802941108284552330701490293523844247524484071304783546498839958152595626769260835350627080456055572762244487150615346474236786635251401942947239071426113814065693322837430954583301403641790955538581140207555701566869768678021182144496289816192147985697020811938103000149319696957047254117790104924120055550490583015376744030580880511979703181459400939103247839344329401510328376232421207802284070872465993410167518314112958931651070849675900591284837746666117123712888224826350632428971621389112915182363555589384140703546556369597656284055359404121826056108133525085374510320712753903182832452166450630572946591372344488095128590411805123152334257427962995494764434445268886149250667423637816584179575681639332589357612969838864505372815687937757718754910913485991933317873926925261775947770281060514943865207897173980466981127611864058946376648861757015906228673202902135377169819759302529377021466683196894815849430245711272282139589901232835732034590229730864993886813657631792406314112017820076963124520618446235250621916745517441841287715892214400577484355466599638251168532844829318704645597650889598004307517950770165511572276761957750329268232694371262092922927377487817783873886288004091867069568421253644220325054352757221940201860740615694237762724811502921811490048515023522723321723512483291969500247265003548776030953403609348813727955258247240752870854663745703357111965718032594429599071778859983307114616230623196666667336355119625910867298693109220027533044549589184020735436331991922495013354420210322873061426929165776261797512182896248848574997407175194027341697893747953999009448581101504256794547813557632944183979775767298959132830193820236494121998747730715546703992791523195781902778311515654347840103270253069047363115109393149297253642100079719869452404880808972059613742195791515485181241245601766567167772872832389925410785009611318642184243931478138522539266774820919871598662310403322087425559198092970983521136675980703596078375514378220358904438303629232273081952557149422267228199058301641292308323437568996214044771728475398898179961652969185267178313318399947835660252544086173064164427367061535985609261132843881811325860006495559138145501236529982149955806151065286618617265561137502605518584763476333101047211603285183752913013822260584801559783821164909803388926347214493191016162553582717896332294763955077615586207109536061625779049243637066016064203378297933047731887884393318882031427527525811617355643512765313252383207635415424102513638652524775861654559954817318244523330231051344458976046877406985399182227312873001117366534639944296337743603560462098823067967587631936659992966983353531800418334247049809932975033672621275520773793650587148410036655018189659174188317646240737913658748667088310544264562219464603173463290389531311265874871508394783139996498602164682414455831466218504137453175473333456659689148326385473007555818135423693788057525311944799474048325028645179259901914792169674457699026016274322047085614213277942200574622000925714819208733416094711436650539634010348491493081235625643253981742508839466476339444018572310082446134658385192454262741417667356908923136115417580343471340052640017293528696685395335636875744079959522056448006992882055059380153502975350776223343423580857103848555135230731277512975963042070026566464669705766901823845033274971760205973805767785946825496496969590203530757426946514507317093297235261433304149180301965826563109629166630473863738631510455003894638821372779062536093833569633583217745116805297072695261667831906678371462941560421128235041494787116785619543882759390406860130292152267872431921677948212303240709534018003817809538284269443076134747884823199533764880893045167759913259160872683135907678634072505741651490599362974820105955727311285413518920683926671347362479820111266624826156855700200160816472827776455492639063550460911138623677651223003881933851080645101108020910135398501566389490299253151569457507892300020940327107951641707227322383754690188298745449547968354610644775122019724609217449404759698895337189410285881834783768242351218622249135185065720227590999751545777069485218010694020789295742488165656832845611310635446249001205403248533919180415288237635504888216365074748734072188699908403513964419111482633367584799814578170176059372993530326361069733610701554177587501837370156265110972229207775345142340731102220645988809186190503471741137839211443645874404183063748887148276058782344343325623626595203515599238160939306530415005255044724380431252002227076083351923295436927149585653619470465918420871285409432077993999116998264345418405895734325006912901700585681098422051902966249894852367994931343546669610395807436134608686311239395700546096077816640360724354385711416715980177002809927916636688629209244878470238564525805012981096507540391477881261806540726296449843201684562433723890713323760649288322545096325497055980499729567438407342313837279868348136529363761916630292917934907524725615997988886236451652569961350620685173184741406545757626551662287998784024397471848611310263087708854203020227717019449857740719502271467524920299704114828446083271937179416790779781820072794621176347164867546660006089440734758327175345992013032456145738855938857772562225298430075594952441618985732764516629596482261903253266914391710290563530592346937806915491370680281272642131555326550923431047685999543340513622293599163402469807384719863682087369134556163695886825968986971272450451313120051883125369376204522695886311605013911279021060911669439667983146823459862297017109782210289428350198557710752823254350849337868394843828400992289341947329220628409884701976644998315340802570657704264787052528879914130275584726333467995188752141318942911234792384096924252748214852398846401117065844895842807021865845986272101195858981171621054946261186578108883543112376527242412227013761900556391348260726742458401206040686761946221934275008845750984619018245782217311700261276197764038883355719647522537103587229056195266713768669253633574744933627600333640818753279950669703086131519899314360633133107587921908661467810829122510772256451321108878189079078057448620431328613621264057806305633945918419252638089446759104113931137166479544809841190291515660041709987808493022582353405750567710315364434981798075512806484813768771208167104886967517453132998415059887463378963551131288497758467606592103351433886002102471626366828981369180760845200659128229045724951953746797629384753146145148880836057117195659844654984306483216638372589883107286180679934002807792221325654493099605915838533476567591869967676379484793660554473547982114753510514660578589876201286660393165834808764805195175941600209001635148399432399138360882741701041174203611075501414033233145066925288217337803284354423339533418381718485336708948208401607063251010484338489943654369723849907009342734988347662004825340922296711087864928484979121392921307176546880461072640094891549302073334370317339892550336729804933015611912268076766060833711830793475522965907391662645194942982736147341654735120882922268960002617386624588002496812403237852686156472242562533578172559686047876156979748003493704006563624693310506309410037870743945623156793356400563297172929905225109384389731058413922465080330571265405441100909944521665070144348728807850707338246838236078174175271763952945538680741265428860468907177904142956897629420369048656596176501723318142674767512398824797317949973854998624753904420045375368489812603330820149148731839793211246470721380692574545732202490881422394538516100874344134606633134924728679495799579640386099050605644514462338713404408607541785024053917791567776825084675363246466578582593583735303340712178557311014239554675916487271606078854819025580109472928403867191818678016151030016271645827045069520905215043127940023884037089762164739163879551241636471563718322131289262421471894373079823895508567579652631379360146034510922750240957632665473375498286313879941953261055002687023884610758439711204625940625230661573260468231618914886579678656195793769566722816091467020590805943718585195739639108863922865570473279502275829699162087931754485814505957951630282331964252965277218669676572348507622317149119562789058002745712878315966565296381859007400902877245110142201889620456068870122903234545949789765155654070243652220214833664140810377654825517650266306121916429805152772709377479209127435598849355274060429167133355443245151611400923320647073995348973266462222024776050816304959302242923957890040021901204829173856205630308317772703987451948535272804629746861544463140118165090191368841778459299970923529142928915630596736513661041854392680674921502212583025876854290830487195480574638545349036330217092763931847999329449701010370779804775781665692227953077711157844722577263920707283022400238010931234698933239152151632437892975977532257178068672229665423514589206095731812579727696650091696339186082303332848933261468875292373809413038551439305263809951717854195120762752003039710051430444028456170941658317749298350314150050772831152074598768730684877813254381291996129957316929794887670943189354297060991972190440318191317132744972079025092595455012639906686738277414715933956708832463676175723197800841139009766428782801532123867692831362154901458492917704877033045100521984978763557492566799099828902840733313477975107947380353719691422052014557563638316039207459168744092785054117087285876254975524939526137751656593031264618041708819543880802324931011792718148348821429176942718213656988175087551083220512473156949789080778953403753135643094834321793674403229389230930718776657575884463898663840086110200477528223131511856788145609222573324695796617770770496961593666860258242193360874230764028676836867341304800739955538562423558613323653509968869605602939063028966779453676176699342393499459848868463842418596851670853054509297988873929924288833208286912228985665374620080341860773016490351376861814675859871583302704829139528390456105176273985532718893025234934206307291099014495604815223085731905962151379101207541988444979327115067675968933999575913204200337330831785883850430303115245636718928740211594517590904757589285531020073311586230224171637754780987207540598071544391024577229429567795362513205063015123579853368053497092313025894704106176674968979721323127822086886579837325167286056723490885421832601413356484503448205124170821194828093478492692480825664286228156885268674661853781466651770897906451829495252557252948440992340623720137763567018134598883946687281002614441246455538351857415349090807750362861878422128878234256629795741725092670263027893145437996739585260418773519928167546341348257547339789762873989900783080693011705060726503092526402599375044788109793800888511747728173983913828116120923493267158965820479774429674416985340477888582751362936605435076139859710523008273291839789671269637299003959911091856121705464342131071490116874540299434403116966505930639081330402551828826527212522312927097664327815520690430715734479844993438553628306111834530749959260129682159401292234068848861647877699674743973798208891837261135852528621381715192449462016488871390074933643611077467065202715191146500757543992769519876982708972414487755205984396144056345222662719730579939962720869127651374586597684389842967466665126952244853156544343639319450021465351279700522738770106245415976971410193793950794649618966417201566426271472906114700715703536454059562006046020778098783798775807109767641122904297657249708086420817244780754812773786630493709464950286142607771364231391107795185855263043703373688425694251806563785597307308651179291031246512291440387536852895089613512364330501267360137752246832910505892447392928885285075559241824509995309680565289366009131028949987343427403633833381964452181246791270145664157559718902319478731652334374582140125073537437214961304622732224835559903682319735340140404023934955840348282009616369065268943199780477340913015690511083167186948495865226881298226187980209796675586717790866973832485751924027233147505260045891070730142123399346026461326263541985624934341534480816673505234382488544692139034138260788325466742780599645518114400090492167612917944592847663876879129767496944388014051282757774646506876136331614135289260357858172966515863206908989152819939273040509057466964617199869115558590961719237921882376476437411040840624060993109513498320256584529301844023607212242988785262149313834250282722222309406114733927490967496722651328719441652018845676325726254460203827620368519180299097100705275646137655537845494705572692626507068776527174475485023435462660069197122709156779829381173123258679997430631767364976537551942120038050840958916430099869530310344002432401586112122133737590868244161452752317638299142346098608372271660365808338835018886978740208239807412899202860025587914053830041653359404163949589643516342370697142178409066261392759719563441057652686012657497577829587776808136661835702399456329219610765353365873362110751099202825796670110178494500761001413703763914253782151302519386551486482193854991300010525191205583716002759800872133783741125894213468048316771010160355724645606669486127025876194082894048946836063213162939617047347910707057768217504348409919364573830204080937455890047873566537220853043717737007024843682980224446240023646869662262576695872580146125058121359234827246349413388090642243533200498170487858341486289589955418953743286289952322716217754773282245830215001974510542888034310048803853436933106487925062242950218880157038709596547823082262425112171837639052511996099253917338117543193848072775372102558794437472716951690347842798589905035757420513657466725993740872161013722254986850011757965585302683715860024486706819922268247155746900788902418049909724317420366973339737655387773713350757818065281456944982608032897514904891362112558701395530220679708636688590764677494366682927164034851460616073030094294962589524813657720548762935912645861161505019581136269806413429255066204021179485406760449245786097538925273715886508499739731901329442093489022266710112723243302848021596157167267543646916682667367194167043965976543933325399529843904298048393915639315036059268524014929282772253291293316344896177015170538979261104590124115090511789869244470940961324884916868781793262551008782090161582772537092387816213711673287832975305233905235500808019231511185336368953113994415248996378700775304139514986746227969026958735497543313827649253372033352559604545573660927581002991880626598409830881935906542310391581905391977095742326361689396906488523142113026718341048420817074976321738329398868724678885609598779309895294172324498055196750353205674265395092519867695179244577652657478232183683610673909889175386940582292776416749560741899716289109770705646098804786300865110377490168873400727470323299479415220084100202775409292023098105828702501933867891880523762331818483521739230494074054971366300619371473696603121323250969740651061182772964841211004003350949837977170800740833336273622942086721885658911605125379231873046602693357144894126647684496826291684473046761056512915807239385213188094428054600334810538034371535718146650206593451551564904748590662443092529643091600151051277909776430184267515184998375785670367397684672411859887634425167591728784762084052175723436066800076547485691871347545195302695861606750784094970716613914865079772130656669117147940456615294810226482657781846743955449212621282756909191659322917909353539499697967859243179184568018717534740873094985817529911989423099076892538686277551184627804288309351550888927173806782432325224262131929845538855278074847783155074794600335709883209374052070719461297800151502853067879509849333992805770815714516519461713206811687745258024347345155612420570028636817768190121101371261079305201013954086800530432182312085747627311614142890313772925178018597204788911695837857578173134910217464203490062918255598424089185541253758545607042388086694870549881219103504692367559279741822479674269269216388297049844099122443704301604324728562458702875744849677747086827077977918893644047931568444641745915336470086016930599188259047082557714797921957636413205122078356027064948486330970578358363417400624146981215167934535360777626041407382929287261384202833149346032117965480591192370974642439092730141703873549348124872360381647844098909121503517326668348298090480035629895255039997886578397159402818064619064042557829340134388213733023429698612313156476661216072840293938137885495350167094309553177569420758606823361317447060797505725620114337957438809486733645109464692369966684796626760982513757307840753743051011369352744260537710749789376832970093007349938553909930053779128798886286554839194016450223005812152031623600876052622199714833720841250370429837263985913292337571794441082341728895976012859862400522772544727809747306506180784009474919930146968439776432364091357988276327846477099466216440935814603706382057670933513180287629873759208614343303498893566307429675451833669860811499233681531656743191107471977982552741378003621662201541974028136005726247063028647661355104680856865047941090369822024714623728353524548369085907201009027621367287001136169273883246734171040884627262607888664817800176909506359732158339828238284910147580420056315418398573480500871231569746478397064031036367028055703646531705089148912923053944250821324679016319653590028972655902319140501193655166155103779897216558822116170111270820398929905837011908839664528088743159924332553313220447358700851042021175176251426158184300531080779631715935235009737121276089991081739647157600899837325658994059831263835034514469631444722487134771056204558374975425070904513948941490422941763445913992139813385669306873605171023235801409172679914575071560677890065325389475795575176538616588865318004983521034547205125148620567266232591394354975322569821530075004743763696537466030406009489620308634298217137249734203766064642145937634962268015078455363091370097091618001437178269613019482084087125447067394304723825417615178771888648091761073929740776931942045686272220199578954459604327602951712879356376189121287408439033211413598616174449089255706236329823711703090248894281787463116254430702363262225072924662341898109380887281925997089863283066315600731151837784924670039519841489523752902067626073499815165778813354427844671085428971509071732882472232425002532695649548266344070215051742203701273637022681724432494222444944131118283928657321660361060342963162537470982461888327339008644847600599053160800543083109104307313003719737650491555394418900083222170125849792022921143344678363085027044150282577371746789533294360276929787298674752059341351018250452425484395874185448532231002300892890736912539200229445781537137951768690467130963391261549961218488269078058347810497835947014727189664491384615158509172840795169566444180499146905825080974396766816322490725409167890970890466131865079113592959910629602122875757109661809356764660698714240605564929612914190375059534055810658711367765222493735221171937184927911071762681179631947610392134774609262879255304065216173235117205695991748091857421236106879654031108349627016055458205646280673398082029905957729302677387866207951636080884025842317998132648496266605007041349108222408976597293388133964905150205608540488373929752534779047490059552675841588174761244653212817005248600324462471843527340935298055756813089755266392451065102335464291980475976504715254263941185834061127366193721635961917387610875889031403237632898301623758719997566460395541374740802206527893178916248949236155899140505715995643545820895884222551310319748861199474288257529466233253236329807393897515433697012742898773576085055032628074691082678683215567079418148634132897757045544601353296582529969758916399581677792790043206161309574298667603199330669840002330070736320839519183330121735251658874061984306679048549845511209561045901103962590187726183723698620022160042077211352376685292688000692273629854529239305061962749728356251671395086238740070781739152604412306059359237025559887913577669466528929339278931962627681438112500245361687000819809212690972271994733687143718165256300498983728734222614792048408251816387858526707124454062868711436339017822757839246818050548652918196861646316435967174061852070791430394067064837829130187375940000493203251982598832748095538675997460394106814918866838146115278977087024782206801380855193245975085717250381879281480446988364422671844776729762235799686752054958722781097183817826027305587825325801698383657888330347605109058739726859269327572921274572894893462522473378906446980082596045691627030001763069120192040936505766031293589842179789873118701748332714916540604770203085016505065040648839384393137031469849875631106108988599704292448843464643162377293571901868852232520322528563032151688555884324756519406116733911787933559943453494414667287339906395063364408514986151836590235326858639766375953170465421149230054964745203413329110283475792036638874520676202016206344878944753909684639576984523339865696368341393751321353386793339333097477372268464369762340498558297331261314859655833498280645853580252996187470831290195558574004038109118903586665649955490404935812021864970717102505507364943925649799166769436436601537717500440915757842571956639663108586539496730238258123574488169305570481325370377839159234709840231016438677842018171907074399301454181978205769556973397178712379604485047770447408462585197867371505618886031886936802086048691402493533649273976241984316968824173071407534921464836937156060367817596132838502908899109262419792994166843162012001524033346694324142705428722621218413514020509925724843008401468651856056097959723091928071867998949921718764638289965804117605708285658397622319482606525148243351247652843201200789243785628490544231362182378868584105589065256547007903723954467473481409980113842103842511672090229510388292470900063054778965081990102638771693205555571383309807223732820837286067261215226260116868464141386480300782692614947027548033675245588840614314130036255430518326252172259906047569791805408771154522262213358135533916910646794133959532040962391901410103819134732142083862527105028466504366830319019394562925427560811911291750573151822145015491583782538410863943387115024166049116406332474435534603437985512576141640166629916926761702918698549025815094270701772711342085021868829613508459741945224462999001117516379691298972176915400813233176678063330277873472058464554758049295161244974118197810227853612298172452076456010894932804607928747217472194764396112536893192227860993963231989115424143817552142986580624690542094671846739199395089406279298944719426756434068005499944759215267196303766553209742258552522530664318006585001225345029878530873713197433370619171367905887538568864097642590040297273766543772788148764980884517505804953702784195035290638206064061457969352890848797232415302364583201516590355099753865871358564321024319431897379312152725474608737604814068402834610027036244323249132150354050529862281325359220187531315742708359608668109193350564157925259868389726710387984489785179616314763175515142238326268533080110376029348439422041217179473756454444289915444427610805167776539369946392903177129747513103456164795280638082228649079158696110794818369777592232734003849878808608416237670941836225594288234494792007447715467935221549484951614580715847234101824392102430463478838412309051795653290218371596842220083437883233741716319305041060764300361804827486968913422571146345165995249737788818123450651689813141054519425162526466484999777551703633253661974299120359064412295819710399220501748740987502701942994993968046250033479672772369570754426092580959718581043864702040769169424065568695612949033968903881952079135334606244581463713304789060358850940054589151462751755919445076257314700088002004462476958570105077544521116198725606728981206010108503518780007022510755119133693300822686741265182304154651367032074051227741436704781048915279492222644110597854233379427780726937150608695407895709029597717048882084098499199876098752731595837414269465860273044613718361486348123907152902706408206682088247870860140527412488119214539603789240170441697835036857079673022822263327135592913632827920756493275366225244504770604788115845555272672214074352289877124506179087428066868129479738704982596099425161836758318930325271946803788395336926447481801056454550510109064584046925185845179994311422377066578868711362157478721717624028320662192967463132167961930017329002709053655075416758661994932168772890608794962061610891083130644082470676823224333908354265475012528527050325082433777234134514493487381988759830783099788833513623163121733626425504945190405181533882316853575077467666112220827720352006029051967252744030684360091736917709981816710509849113963780092819197014855477436743447723474417603956956699891780704876293547971595663939614460702981032636121709953687181919919005032479614967100843232335918638646649941494029695546021559072557131374482594233030130876827997291597978110619799666859099991846081948935183767442460201379294762443670965688994760204955424688448461325241618877233146591442396228415747271188190238559680551943929675699098703697466430867330568920140073332355827348068159215644740613949006331229049604849974829208066849324221899562841549404095850616476980164232039584544431454799227854900966196124808770762190391439971748277622477812173487812901408431286155106811835566097177298111684161011260791338877713339593553994095695842996926871107267241786953307621280181465851303137491238039214351683977041117991278020065859817614249286332577661365176908999447160653983781716239592306967413997931893013205888036210830990644448528794063580044913615167083193851767882809347472698231039272331807933664661431827139807881233460518303470907221577817078264879908115546785092223711239888017959054199821029939976852306437500457197523748275765561811027580133614591209096642388364690759987278578632867602023280114461774638943860559015808152607651415842898500898803614833112680874682272357965450450485211177443062684333540902159934146187063020487970824464257638959029955333679061579811967787812289254342303744524605589119268158131953564143218847317029977365615391276187818381875857571202664501820167501762019904495037700694086219796456557640642621550481974107244008701225320781075623249526284284474087832089530419935249512646120463376270570351041149235748351418510568569430764588840261260376648755337636206947392841352200991188184706649164766078408872736578295503815275965189639210610302742737805135959604200663435735488767789600428538862482055143936360519093677261351780973035542483026049813786374334678475989565869765990500932952406448097078231212141776257151726530534958021052730322319767088014007354413087217073153483171520864088532607861234445023638401040032311751964059150406259389231252551593057840423935628974988636672547115297833550667382560756589818451062475007259380738100486597136184681225383215712207893043851677625431532869946711094008298009405631211292445875045036377980083084743972527804896215731603318181061435767078327153830202988477496527577737514945840959201921770667928801284015194613262848634411095742114312476044958185100222690032926566304005563782878030773079614863636818224124103273713128581200712812680153013972119950716949278926474578275727700507681115625934167955174755713425732945709308587886162034273926175553218723438440020031315139348163053799542192099156278727129589620580170435658752967693318705418661151895542974964874072292068404791983678907060632342359507117079646391258922616447139780234234274978958558412110112389501507624957990256054190967977337003222405340901354326658898260970355533340067921267412683573301155988624236059265106821282626915295728421845433425471798169461071586767570582294270742607286652811402953109213071111732578088853060616769540923050453424967908129592122624068032347102393759494973041441980289545255210246386635499719351115774052617711602727621816342820079500693540123042497512806417654722679134350120529925175618141963241974854533366082195871312814363346305975266091433222645792003628295482385967533550521860286132577762386657584317719286185061682428717560861668864884213317117468359797849230035882694174374535957041486806823566061948949019707216217318612957617848249730112451768234614044547155762714556645820946573295672740382020990173312327871250724570439473671272218228001236064219224202991878421718661926113128036080925335196313390291238787830388401994010222995607368536728675292729119488309036690009758387528046928972421664638224979265613988626771267519898402916589181215648255309793474695217550728243018478933558388432756547874219575629885339441321821235050842186205269265289724438948870414469478863408471741146396197596111350161422150879665290016245838874240164356467662115577335846124134088184471675101585315746827096675882949421358585607700402987802892711290297994943523698031674980482588960414814194261508656100735464618271472067262266301462402552332673881538790016793929162927087044109677745056934048068767780466896197812958466161454130163873667465777530183754053791579767459536603893899725991731900773569872481518559809270970725737972438300614272116006750383438048402610341912014874949397008488288904802187013150659627678362753372351046132952196363561218274339697609764808767645460731923500267318420721546963110471520594392577644292757238068087817143262029932815772617044122274260425142663976157950452989478551955751889299131665845298956210818293689314239140278050891525608393343975298029761375244463855421991839672382440817332701300305239010932074583315407599284422256301553688502714661854906664331826074641968159199634522737275464982555454895731341181203825895266904923480242188736862331205991411094913963139321666839025982007405648463288400076532953839822402866090029097957090519342790014835345966834745791086388108937175995545116993320350887685589859314961343294388702298310114602703868106991500321032841306420521214137968048642835088269102984501402480550431709914180222816070659492808199963519345875392019716654456797079497601424089835910162907693985284700145605657781086790282279225859267849435127593670052044550744265576968178285488961293993230988456152301480634796038554459999243755962375751940134579668279550479182236203340133772303775548719537717909763831868174849196970658277190469755014310616084844939450485256351570771956827574843617233240630625686716101770340391029645966822269078025096080395815377175207490938567542083036431740580850966604464545825144083499142595077758320436413394435606564625621587756396691822090749042991673651216957757039376370218968872481174970842454533994267309328036450147689227708655098226718770726386173114608840534718740642067131418539593440370142808527860272266516845968688494789378276357885217909674787815587043185462552169181325171885265524240086947582954932957375975433379778240651959480649309401016800523501432258595068312466773274858629238072733232966952138135334316901057634814997339672919335159504451456417491223575172783067946689302533717283644344745377932115558586138503881934302941036933004249946952046587556374750553956115363228518156861395598621282608464594975117653508566961343754656965935119343958452875312985126355098860895848190273970007862505143102639673135199063026347161028310860983058920054110523621997168917089432569066202496100686792384412464634327358635587212713104839434490029325026762149026187101105828878961458833246961139191884777205421536465256753885737651415286976379195774331308444689306616934964113831998195229162978365341458399524410711041096676008785511856371682131390618170420807245872503965090364395864852037328481272049831325055601741132005969260552116347077281645654244997894595072519095114989843402629588094650287882580620044644164822113193865757752859801097915749530880614492631007376042092318901802279806299830014977141247966158582705907396151433412107232842541438987122454910918992387455677448112714253847877928578161129748962742733812142296032487799942931608721079431378624410335514633657103108860322182260053614803827916846719473115556618131849205193284446155147480004778910106935220778595526944940607574966562685570622282499729089537921367875232723882495712427245222630461652777202776120937588715809941006965852329533467111718124999997909364251808594076013761864409494643703441871951319175548614450280974818345914435805010036249923683928604508883622569540254155858964440693321045924863832754357017961693440760136951443781811966655910793282079059378016480836834954081865926944635505363262318749236525923414043074000804280554815323846070246771607438788808433883940108241425055143867169283965844632067143373390430750843421305694313059142864278527124341695600786131433596824884362944775906454196168168992381894596128105551086324190684156612288155547780530958103613091936755216080117121283179974269531568460011509967003847987476182903721958915445250804234321093367579710097154600611224096198710412057271827914371853316993812799212702937014490811488191872631367143728699558242961131930525391025417882763531464803873693934114509466541543187203310345874685202739009580030201807937930356634391759436928044276488426740081829105834415018906790208485507693820136439368412608790807854363857826122288975508715079205106039334110508388412023393412314992172263746326296412883306116124747305195711401829668315937468695471934943373471258678614000246319011180240634127221126905107439279341586401883673117081043481555976458335801803975618417474887509578789019820767460293335040364277905106258276630621844568478875731174625825528314997686632301137636248035597713523034743980889602085605584456534030707912936561086857761757657729577998505460224581089098428429075820415290588774671687582185768065818825935298136914776162947252614339586250330392056550707659246270250331493002095275229326175456077331143842992987299099569405672763243559517371780940361079586981885902211536273358394891412334054561435965068337622755308405781317025639569723805510539215777373781792200051734051153085169561834066180690481147708899621273576292373192731754270426123863986861095595761261978335526869188759106083033703806651190354466370886758352554776255715770201130897778842634221308336396335207587990382895558431661455006935330237363751802170442046705802522584208487965436992495402472509310505564410401066789606650212742671395822420856226525068503927935792596488228094834726947185194016675326535211136003754741336909442441529698399463249072042497427620629603915779370219759754563167793953285400593658284132052199499368811105518394356382737624787671382245389108831760580747920072143789986423908963583891979376157911295908927167949520719625306067765421951150648053780635898102253007075332024956757002763421502265413427412640311959588557361502300329680638928905915915114368541137402618685593176596378818931584568686425981307265571509838831404743130589211010774184148408223608493090089433338460197143167807465044190212702314039942127506352149681199690503792225695525288284804112444581973633314324650095072496071203816950508729475670807827409927423849055053575401518550724944733312013518623794836370005073803610318976058712951406571429162648722330095782223619626182565296582247323298888915326310916970453668789279144231866734910353810076359720487965022790589683334503659001130001600219195730709364234933607910128001998561346077563115930156279701662430776610605096240731547476418476018592253568776879709149213608665427990127468026092880063414159457795414683327431649423661987367944900740007020929055859146443460412224393629947778954314871433572615048207804528251963342726412994418613439352563210680817363608657976315910443965241366768701902245086634498972086502707014275570315804841118936207193163566576544684454022784722584907293134887822401925298798053669306203519806750499514108647987033263852222790031766781565696082165093901955534406245903799546724416986937184778697690231710430046445482008368504080319220215471064971435455018713313686759151969082273689492480767612389577694479587872051707400488537289806336364164607475064568408125179619927767686747753972016816142067439051441678183650379304533433392726152006648456132481710468235320761477898848064540616264933921925182955246151223935963936336561273708427625099028618342383767676817602210158485649528116433763504587322624700623135932458893902985736328542114651038296550760698787145183893479321636166630911545207539008204262648905534812930451838629085116341263013344539696828176893315598657688310680794258752576745785413868901573647563376240245500814326981805436005262339414506833592486720330066454910880369349090312371354895691760820137760465751384933037556807589324704323010623907556630466998010247752593608295276771282608539941848934187058562678724310858834254976505801265876304291810673002396570697465334627415288020342517581048991931432309126111607615585430755302948285758072606755735310898513618040515163603056406616581459633030740599798831287069901958665607698372381127413166728347479466209560520885316005885342835709257197051553618955545972346909342673037332362719157092921705644772565667908603825370856335625501092652956203311818483402181285128978766383627722631027686464491448499402277899595715230872296182057168589188640077632277380961907780051764659168343195625178529594793732027249427197953757403969022601512813237734833406446939923832011308817427097280621775090525598727673497018514959376290585838922235361895170735946741913551510761144066919535740767659357015434482861101953263769425672423679995021827744522318421351006421592844047684896650076298830022211845716009417237114481191786312152785216500621151356068675533785828644133281100562784627030294234103101398558746370511369140513340642810553253530110453513998319594875178617537089323978500321198020744233978979029954626557029073372775794666198190260649546652650504179656128750146640218664810787291385734096049431180042568426464039635464715936467392066684055809082695661747539157022894420566269796421994567294667910662432757351119392858619813035745903592330382662264922267756892700508489283611926520081731230491887079511638160081523432171179729297596221300857696485036973266934882475778331401050770462315232952912118906419805402582817944216203485877215953966211067131310167927035687701069006306409167433435458024583875413599484031544478383106525754409803667335635202050628158976337545123461462689093666762163566978888733473934896829938940942120963401327469451079412010310985287818784481103427844092860415025607988615133432332534513041578000789619959988152681977986426673985968125276891796749860180688899694573283505354628989184009401100573579079437474485640464893247850203138833203768279690865369162256130940772272633019654101399936433625775258408895496093628709411556305660708498433308926279931660292121793778862570939683438241130394105009288553966455302072997905774536273384284176411081177569694354663418306720773400720674467089291846814292915946956677422354096651067756322113655986519385732076887155070066915204077248385494612844161080519176498691419339431508475508361429134423181457548045231151755809499127093311219018152783448840452284569974221101893136101650383714455091818300786168098598994135386431634102618550067592207439841584131387100529884471709767065538294695465185416211908206656368305237284794754548331936236268366596754186423513484705062742160822375808424692804853833899857314237081995979457414157975255522529538093167279620491880076106215744201613961408344569303716393789063170167971737550245078684379930165396131347666637575257864072044953599009895673784004817338041477200923336918536292607624383368628185349314008402898552865805568707981940055263815859038212734300981369409105962390686099964596632418846299221821666640965152225276740618626977520399702271314138004830114164234641449087108781374355128391148157316450111885522983356398136511207551054913785179094051644458377410652615204031489280265502401947954073819574540359486111755305409242444314346257330834347848118032279557039358290769539380517449411926042952501298279254151224045802543790236662590334990494102867341149416703245847447079047021357272352501269566988649692286034312054629636788821802208141744290598794619800869293230749126853395619919239615533093429125026662875982820823041742717041699767566251450238984890079308941139678110119645116259029451096438839338910145290367835456751420808982730118624858446732413566226648142638328744268748994067526474604077349709137962480682889749981532480487011395829034923111528103347683549205241034687065595623998093044941524072676417595400570133054527142470708004881734811661631310530151129369682334469806235043830402592187628417396783995153145506012872897454755494683920628650090864771993226942751459848113492061309566822816122110914685941123969022312567610638700952165300702072518845204828483047200099735056363358088419706051100065989008589087498706094829277269044879468132448933851995909213249593436765559212998451479822507036133541241450223976378626033533308110698687976010713871986139114407545081987796371433293801730017257231277038384457808439303283616235154297536153224593040851047124816543059684822042237661532634724939480100331790782429633499813020961935606641859925731180537786391721952712815725945308947092248399483309405430048143192741838171156824468054737199281245532658378990224692760892461296334182365826900161969378653739678401477964652962336031736845229928705393428692419532395124352722543764804789760517502026280188806820143042088171325287506369091513874026496589252513035549650995349877448061025025661358925825111892461594704052716246775825887841307959662667971616866133728990696402604271678402990548481401194214858308224010372182805026642809085589603057803376280141421163217738973213811558548965075880531864050200923884836658067674230548377325259760555815620067631027404245252948388441419826607467044096847525882684185109415244982492203896429231757609222531334668453309951256647269010570581481539783050931509964250568624987546536663774764832060175128599055118135856941957933133314955781404099148420315770267118314701446299931361427872103065598956618452940956368056243584662047029026734012791943711851047338251638246467081261806743276428428209992904121100000912805491036185853572381426435236200289616371860344841645338672904254240382331970770447936050298385727975136635311232541723436912971094451144562756294706798063171371287177283344917885730834230133642976567794775155540953930830941623703873976794771990582235623711300867061695558201409549443868284284581909502047322956874469609801737652235716022836926343349659901217136998343098422103926469633751234582738815172483067318335370803101472657495958749355798407128788202238325526996624964020414642057449304197268058516473831040135464285638277127849555894883190565534767264513467336040039423481983191302086040662842316212431782895804888431623842908295738198508279656681467822203495233345065133195703641798787758032664574492368043554024740145790408024997813049028147324814262917536613974365439221694132120783044323696915834306962648815049651429382244101722233688194576270732867778170931165662622209009988580923052424223770870189699860667160286957329057397341063016674004929630322907812653284749522765275612293922883744166679504215239501589791476019189188526289334024149091219354485469631742337861935600969229937580345138859327994308467489115469581579554154251886619260116055042751985351955360227485131218267150304876635229650792835282733569190261098101796133929643311548515448637539822881802838663722794158571583218097819593000946566825701183841035773603689325598644254908431391818211667314389152033108731947381898573920913972471499336028362055602984389302905217862948698411925107839733051596252740720725836076966301127736466701896971349681555075459341071330905170099647985971424245463236432976715598187257077605970055308506203967105332896963544552944413892807568335950558162342224328268324164092147781009194504631777096197529523783047245583519365176188997908625831694285508085892916813436776735150595436907572371683806590193647706742766853888753260805402549921136730898272099010552507840686566718303643955024981448130891442385126786385896519706468143724060970484924109591437160269291023909348389716137317485284697228438269808720567264382639315405341052454047675179165356475188383528456740318155788062941352813167906685265593289590147365577991308958508060107646964209638474489874625875839429365807907274774141908923211985899573331520967779456716967313177314939898884519796159581977234544514726181085700508513930607625908024802500213655734188461116835325259166219912421245747861930752754090595355018076015258162379098985329696167774348264275796304231741457423613831936741638143926304419341152288288793151841440804257157756330409414580171667300742157077981157482113484590302304905474622816311558789754699693168692254400597349984419227417974639800523020997829319393021207864789301531259950319700473973061451786009877222208615686120883603465644510648588414490320099558108816324640563929356238240349465355334940354025864335257321708440959096909346358368776458191937725625416059986951107978200627968603460303660367367955298808185870399980688701658991255083579778681775261527121404651915854033847773682287462849599615138090552601167634456512413605572475989253524403627416342334993278553389060739603554858340248229816237206213863895500278728514239413182091917452831857138342390672787871597706161042535041016078162526187548035291832841361086480340049027285091688208016617240483989347701892391151795313837688550471240804996023306876803184931420142109454572459428915044422334337106718487241575531485093457115365389034784046393481248578050098652989631878821651307011606572008509282790491102859607608391011873038847478618215541752318328560377452221406738347448675451108772118557009607822319977495196246872037165913521249964248196745724224321193591493504367364776329045310689855759513096434389341430596288483685406586469522266307348400080186023760383024591549558020091328173550148346416166544598905323943834250152556095465362428317986814699198857119167754939146445653876954772973585535347295772801342451329480886236049457090263822937493604971077095377733927368038881567702703635782001071668914524206566661680073743344012960776590205246633526631957414913465421850961813519684665288080343764140939590905745734833065972055640530464841187159123143797079013659085232678760555556940337248042026032690630322340184815532003550819131151545865001150134754250655232001482334774893526300715240430300009263121090556299544214538212515825259454537193672996268858522068817671488376860980180592940173216191649245010437682751538261390089698517103760953005716693853355900531370003097479810197883153027028712906137985043827766391256073771544831273724189740372998350859683638897756110879990260357616970463774456589141063009773914805734312124374849461616738100745149237859127007236829745709936858862985698795390846048344932713648370730478541477008445762589188824483967189795047515862178354478657833179659752849268288380597075147770653476865207238079399473412866744058921568082264588084764917377023590009216506132619695148833793934953426750634836225044535003672126759011190425711770578606790317719242387167226545954997159586934529352256265199070583817741619654745779934456693551242062823193821959622792263386460687084680215444251366307942792767341733851956371467219270592965707246043574817139176454875894588184304850234964370644374660078234959384381994687935244096440879546333163261701147686814184036996385269937974322144401983458245412410507536287415881432727858070662991850160970306906639497843208935392246220676169172364380735303927859010925275818991651099090697492067032134217971333238695654252048447382644222570677434781035419151904661514470231782243317468600974608884764413075353926492828406542949941735763725216473035685653538605969436403080209249163576590563138162843668897296395696811799362422642502178388493685615983576051670993838476924383952030243371880197304380147005486918887874780038570394279384166405625210753017914738138690463020003424081827400381501565969170748813456278011648749920182527946340689691212923156432996866423566795397511229100376248020917935998951478960538864524653309365140198667549206599309091528772996589804389179040104095689392774022717201775287615584471582893050207863168492167632533601709458120634216832197522651907540691693198183541956342881857331542237958743440990252765724299336666004053781395806643614571052032868401202641849670434972600709285105072486733632229933505770161490624778495781029065339733780293113910921263270320529170059219556092876093563214779050395945481421992786239673459211367890907551232642805842071438223321067374931697305335527500687850373965282067683404711597736343992658962559070118857430809355302525109451608895025015002998509804245466060026787464428097283206512407590316418925610013337889042403729415562497613921129461778924346847631260515095704326721844165379499530119323493297185460607855388136419877631858264842659242432199368119219227974041417119758480054717337855859132155714724551154849601617686324447622778294918806432324394362064220732761197318587710575796657616379631378915443205078614718816903462559784207155397169673761474336403090723482673168978748115036893619835179286289200043992484135928372224899365004584929586684375023530469915887136994625573724765828260705858105461744158567926063839266744045151426725470945897893782438899904052906278157898633409251339052747925553276301649262148831249829453291815203885711466510928164925312790752810937637561081228971285870906285272217557144175017655695555393891709304595480823293818013638262132834685492098336762255413767547507212815062054396339900629274132482256301539699783265122807094807699586590270299264097379898760692737759473483761145345478718784732969358038713967973216995812132782107350375708774138884470865393698765282518562893664849737377429275709065575127132770023710705545078141179358209343802662842483614866409366279541933033413945483239564040085661045467713231380737949082469077055496368479094668799645937490272937574403134133391513179888898174842589647684105618031589779843940295761394752332893801087615801510212872356104405068018657472805390258548827307536043177927632063542361653979269747229441675537202340207100675360647488165043603319889318694513444670477494344615442946094274232747531495708877309803831817793901896838133288790781218701874404713620547848364917428412712397215703993675911907581552391976862863264718511003187782127450605503538767905161120543439114311873003142914693701629817901835525207244928184653482470994327285686091555619078406802825230571345374444539471727712970106867237114500698653885949939828005049345454681043476844862281015989520896198188191497312017315463171144478274592396097282874629692184470554073242332149604914748679967010308631321668634534924198887273751702809892420506635387334590405975637548671738915573365226527119739875824423299381041051360276643447738125760460653899824520213324121603042822045144394250035514826272983968826646948672962370734515559734644313560897591336595310688805528000308314399423357710094189800588324726282217883554311847187495216405834737637182254144102085996653613385203958128946642394674679600492258998142449658435038373433179855854215761167208673568714970721901504608439267137414028360859874300255505101719361136091965979437896116255119347377013939440193762019249761054398345463455534122337031825036629209292854714942026343486745036980780295093757851666919219504280639702148308961797804917585721101483979095502312144348520260298079456481322048551625731318392495350009483431591225015546547470223719515757485651276132102633667682968344737103609216671171814583330725418841528339627571557757293004933917309927342870511354588739706146444419096500722303144599886783492617066347051965188509296744306341665622424584407720075816257143184667508747038798805180189788889812010089708676467042812498591003079373111211631449364536187401469675165250559355908597568292215894621740771932703231785552955606546637883508083726524262403534130516485366015828520356872789643317515291833734149486440188594780511683580891758149408620900471344596552483126172346471752332390609722754932151539257114200265839415629591570122237901913136396473611228841678313143865301764708229578332630884275381162923189393875350503768355465217109362615565573718309576933841361574253288049967931469223148134544652859635981905692807553735639138546947344428730953080455397660761448454605245311908769841659214763940131590035756390447449330764319681353853919000005969254212610736151412201004652385996133559899857494104261918218364339947710924226811610449351312068063237977066518606019634882644211701741720856165337400115829238541536162550718259747727333194382275156485814758257953207886177358350910560146425554306016399878956189288069634012793116148363813135411273028363159368295780878170637044821413224999934369999195787034600516751604069598260517753881016208274041239497324711260373041373420730389210410910617195564397067300210323376114665012460874156503329463480314425910992227297264615123032585697984306001819091915491156002969303466091797096996860986077507760070766804514868801093112268345306138142420735490102022109084270885468418273517684108358016480111100884945103042917646673717309910817955324745948527775309515751517245162994597148635780778354327113131473027952544725727672958607995364672089458927775030806869733216063501558138067505914412814443087957436885554693515899666736943214347539107466897023981401690684857036176713427879941011978209467836441287538912750810514228561430921181640896377524136214582710186634920456299156225652781746784676371248112926890348071184721802270664772133093900632672987472000802965966599524398643482126202525226800456084775730509255609535672548246551247927505597605098349576443751970329591853774342869726983422576377354573649258103737321040994871445963804255564587655493098998777625090478136644331709474095062229758664187175427962100506545739513110828944624625951863946511343163756446650611905268996748463545050408457495787529227379934930534439397076570046999888733786099633232710505316428920371225026471355397525472783977235305152895981042357875756710711944297478352837724429912873395486853398653239025899048652663498242647592205408965510463707039999075443939539875168975769760137152132325934054761462950474797736699078355632563985726111611674821663793802672798711867674516756641790334728504351986531499222939936074200602744334435624800247871630604055792969619061637865729653968019600694446657165949734282915262546401747453664489991943942317804160437678710821870478900419249628505805864784872593553724984823338351558862305980755516695722066516344094147172308572670165404667861455352871318090564979052856026241947400749700650871164792848442804532765169414574908092120273695009389300281233910004418659976217471627989907277834522640344260478285828814541098012093570294119311426417216178627053048633565108327733305136822418838335006012139972697490473650752209591029939992298882162334731759870501328845993824118541603186499167259514919130786267570264037610578327802589300428772009960543879128078651234123702879728433125046322549558192243534095655714399387820995424267478052452322085721343615817856657203411926101633896244541334252691731902209778850919397965433328178868053425272924973289734802907277675996262568803008573586520647272584705750486893125699237074788769766505543508486023305263157369109371731715078680594702465559899566510727697790977238839727933039581780103662038162675798980264788721037259176501511949425520985707832176634295076004092037948288747136436707037001959686734529194012660322672918140086756465690882135471397916018355864366422292311981665932894884498886081069767764910101270511412558629310921564137275840946141880142004236189765518340061323973547959089309639408974212252879555888306129622100780992533298753933523083585386862066047017179128817473564272827850900027738243398889153490164700128764693289477581646639592365481822030009993711981086611975053606753906658797247401134086328195733288423629646565943508064436934985977084974854128456979959984160847317435105267605595870231080307985747437124753114483645916650986059293769886124556965319021835453102277274840043448566910902896025826226564946576526919604113751042486922189730900569782044212536397290370050882047370629009249736927726482727606229852224732977942070423987578650689430554375499183921320343398671499153280505739552329827652861384470781365668476894817836824734913315764855181262730387772039280944657147676600910825187343367148019002186278243064969030283686927881442147983647460380756737095505149322305933850889515497337438721461349906265380468074115025663996095996466494660437347830816437424470446119440329092686166132556288590496226123246680443037829340725821781902782834203134915708863416724430472267127525777344308765021074998466698888334353522913007397210220087050785252009065445820509306937480767759081581763706780395520640088059713543192758431246702518707564019670903094303505543320490794700051027314721808928747218650572935138698046241512288137166540607382606946800777148848976860538633944854945585842949732372283411849317470597510326081335166243061117524963106054905101669535416819950469019734893260827921871861880338888233776760730753878142524213462055048006515378404091293701408796778625000471063202491673075371395847304362464389044789917859889966400401169123155883533559435895425791726187454101705629252438644230817186658222659627609109321958256058918432300367609465233292093856711738946519020538042526467423566148534319512278236156316953362807054850277067282102000870120502979233694475667782028854966721141186500335279891414693739750714547185587385708797903146591433526318100207650174186873223895956943081866430015378799082992196175354618601492316104088893620675462840911405123566081617923207485357113270753849059944883098566723640850080980396390381184823531915551090778697193067067128926846297336413143130239322014578425461516835084872469037827246113496439141741595263763213827807630716128363624269627258966748310927720193457872339357979739559885763347006199234008477121864465300061303411011695022864155911726568498332315314390183557399217692225801224051335904607658611845386005755726577120578423223431864945839865858330864763135046319425920477010590612174390281623577714808819469380640714983921396587092656973101644228972007004805500230498664825106838543511156975450804498182696186447278253148628775240989053603948908227253238108589244218515918434080387381541486257868340239767605948933496253992476480335675151918885570842714042909181741486364985112590538049941974758508156036755442432313832176441317148589666550184713728872755372729109940948436428590534995932796933891714302390692572887788883976497831720733030332616230143384698437309501382438808885658664636117621884964150017272540494111621297313421514782957619587370639591638466734339054439645421148834510516419858231725097865299640936527215145338560099235641775354610909529066373672280063979030166769457564354710199667420702655874223793497680171782483164117492141838543909877493528331620602625446179617798183977502845486160105303777647656287096401189861653306045529636093545626950134251137336343995622170329769674351505315826668262694071356055755517796053638578005024830482317941674478869081883091286265102172933228290290291037741320691275344053393779151280589147466981699948950726054003922712126612673023040423439383487721833835352071674643495918007738054456740746297108897676439853480361330239928451397433984791005930114431120001448279059358113437840503609639538406878193477957059173374034082588444198032465798588830325968158855463913496192894615477957207791861494987186810489487413477220247586279698329291978565018488587223465392932382120163512284293576073679309570261626487141529638682645309795762614439975819459512690200948384652797892447034052319825565827814309201645534703829348607029651622794695333036241001047890070217942928563684200196170847415563982090392195641668329550354044946855616156508919149266824573254752293485432844993795202837275558339894576608747250259975459267149197926696566711753228973179147224767698060192366134766895731758374538301784121642929688497157117601588470497128340860640010702511639178896076011610744539226343232418888753689183695835576296446603531894755774531227803797951916496102533476949058834391513034788530213078850106390850566368953315585609557924377680346806336974598507253159360875722173202250291466513056606919798845315340751620178362399006507094106511578133419143535337301194956541952970300916731214194110816717255602995103720024106794009257579448221076898329101769548073497932590958724138710294995749957786997705327584424561982855613470462619593754222346533145909969493383784670401568334035728238369165126267385146220537254376155966184781250555574756795166997708904447822821324061685532484453460561005756300479228333752719058170586875183854448631834709061325269018199566917558243924924118541015615327698913380247545729723785521372047281565635912802073797338894002106033659816294315636833502755729460260369558579692569735332442315016783292364103030375059653264724568656292757638415968456508160764623366651067765094456195937705566864910887949422320544804786105205380804943164667366667353836476715768599881614041122396048022376207222880018844289482478291611139633985868280501520521085132704554463221785014679816856896786311687058819711918313118401419861047724941232231554098593897813877870398458603420820045841504040464061909535313615257663498582280244575212478295283018441852338110113891959333643457550610090412556538359698107006870385030171620679382892110807074993398764247163312723150890995346519016467139872794803904104124175292646326103021653486740666484913572210037512486008024056366478219520421371778597740033579456820616494917016244168275248925811236227439845932226250421174392782366192246811332579581169843284358476434035128001009384805061650724774141198217762276311546457430558099988219366788372437368784717283170481437727392674383206091793905658630856967029641775033273928798254218600838536931265693360819947301841518973511358600759855536596075339798688721247514462215457860442759576386812478038332811544846866438305785622181351287558984775671626456489639480581871752538208525509558568069944256220084025910305636752481711575921819220531060578346529620722342785961389992979994893698532790483724549912738704552851071159880102100904468253697784184629295080416125951542118506132137879108586171418984581240333667292413403891178860404328121060408097253722517784413716164176441573564755651666476833453808786287491563214243552442446155491455333517874137268562608287129484394024011564587279528378415870525321734469320789635275960205229421763581497527249531303706861471601523467872713011791658093978063639801427280268870477442042751619218506582855283812120064892653660944631364699571050216438344470159999289927967070608390900328783429609841234005901328827317954220476716913939831020045398925898410080211477857571053223851521771899255542260529434411382406691898988608168456806684869477680567836956221473525615993889636656288659940942101808473889000181211368168215097852235650752152470740888191816251298186591905697653588817133276892178046954866662899958074622099360491855810615711752248934813548331703881046565438062895261082217674388435552886249169484320943949197817707110693677792125010809090748932897401814262291999928772044988959685087813562180208750380196552412848282863776082560720279632993876818991031961233000913033054370820654891951853384517748772174027285116078147153912626585249759485106049514052243276771905668849208834824433373279197039898042558470399023550088079396894810436209742227055478533382649732443842603511916639067671487125220609464042987079254316730159508426582607109339186853815800486955288836980987922971808007724907333363245906509570618027155545821044774327885200955707923798797049179190065903458567163472225779422653648681171178707035935603751457238102410556055551929699725211922390650912563429493945064098637788293540574858812486486241774144471791570337249588876759585927794932238898370478406317370385004481442415297297715445922812654879213963828513243904633187471986195839225346732399756809675336978606605082286191897203103774717513801433811818380591506460308028993057739372266054925548121366788448290494735562326072375524182968369349508707451181053271864532229844874129286516219947659373581156926790244190123314497222481160292509001175097721031532260934556434505122085970510277425213737081953061720872848333564369020044122176174861477725333805119051537702293137450511539360610248139881377814000687442950031931990949942573382328489107787251925218965999466165000065199781880432922953241023731566531168745852585924413028742119331985317954974812803389571222904896896335148789349519789363791244101853374954823053331829334256040984113172447618930325166177121317621499382724514076529400521121254421549868878754392763641421949847937405958447549819759969142597980460009299186000261634906148655718832186176496684499907451500327028576693219666531772407199150449143299870905454360165597481211415518205789676446719677010117305849071174780532058104376909898848596327302255841903817398042578175751138600417236167959137179097662582427708994969011252873844001607059934437545157159363868907680358954991263584669399511148352366136955611642531894583202071133239851561083429813720590785963992791282170354578663119979306310854107934327178159656027483344198671286195209733186238029804881323872737488493149937469882563649433802458172812092576279968192457271185776078240318865500312847757085962074878870705360760726147902783626207399954703785610267148335770843367265246465904859860262626741987570034924524393352010341861036148487338657572777880236329294831109025095269678881735274736493335825999167709392242575597518562931345225598260076073065142016401696071468780703830714668340553327701935233541522211172467459970353944967233945630587686135514439218699963302041237950484140909283356916455507682266898650215202132007602012927361441280689460682066150716247529146840599658798801767438722384875648091180162339667297560440492879906690084709584161515977741257838681756387768084784803903417754447640159405919117913116117393215133876617125095289333118780108384416222749836183976133331964872915464508143038580057355368895815366798060179594548364793441497327887866468831516183808030888796645752408906018991100674632470750231274891665600911308936942009180412307224008759695227975074717892135730016950443783855695185912494545159240419787170306412276601439424313910104714210047423473091620001765935078335208354430805209934110500612479118726280083966443585290081194453021569111596160237751257808608153885377584095039591037981534556694236802586446760978202242936192734006148038848031478599881074166492866989999873738561309680402001559747081873534409701679765963406792865079187777621863512554293060123079930907979949446595958441545566611233508229194517543184884559972558275238011720321742260169589996687280487006301561104257613914595206031388671743918896782397493743728484189293651328765180175038676837703712882568790857268775900968328041803743260081139179099243423689812623878830437990085157776856863923155597320295498105929704154754061923965005068344731059983192857290485878405652525865396861906576947435934446272329238085056945934754473378011212592260049612752122894589067360082479060140876165703259825268945473950219020164673870543781349990549753376539129836155192936572086840547764896422272975012972506101661908937326739951628301298646110299539219798087982748622909116981770239090635279936999380230282443774863655431887759363120171516742581387375839962268958067609476847715336149725097214053606769637545668638186414310477590346918283618819540529853485948036920337706780049753607381703523591644987297751264203227595654924095522608101139354695861873515573684389880325678104705284125407426979921727834513010146299996521721770938064303302770564449251139871464395577150444671451238985566792389153458465775060789795334599162644226768017324049724685289148776574897168818659856891663617511759285040786640670234479064617541672091598681768644937164809554804503262262343762710759901431628226685696989992936729050401390886970136436663776581405575461160647181733315415788606199953810676810864373161527300764247614112011682805603877656727776152279732523503313180221402796515350104904418554568475535167355933659992637013430013863677155491226190877557966918629696006539851791687643757967461352815405098186492436269524292065863332737046114492915863160476548010961442936834693812654694656045658690514530809104715685260919378262361038155008230668719044832367936278740251518155428259364146220546805057715420515927685972888002405838231092354714450463156923346750509760889278683471536624335520999687014995131524009932348440251219695053345363312012488569504635706798543558584881333988361001711328984554244717817037743274177722547070389960120050713451815778763458900847621602499570473657734627612333359502252256965383425700565445313006673728617010472032522689063269193719977565614011404482524046015610186297814232014039913306085415563799448711705530153086553043611125439210250881068992912612908504408678356149183377079798582989998358129233713112589514037999482187184174539280062602454888585395691522127740086835741195411643811334715276782787181846662959168009778951190283305226873573446232345008658855794198396079857289538661444894167132493905240096323943869535872890524674074389442060372195293019092132207429182794785554125337385138431450592537305303691774169802798404238980142178417371053898682310037812182642203311386139871225097429473626755871670454140056198793248842894354556217483943965512166866585141220438602362768058441462531458880086666282150673576332645994530309049808372036350493912437984229669099522988869621379372049464523065078029832222031243087206593380600270518746433208406736297032661501762688201885103476577974752529681324621244095031307686381472713103893353001356169000813526523239398331228665885627563310725890669600965987258763289864959884618944263971458825532579990926992677555970381977186652676447833384629267053055772772528515213914587720980149695108950896341482850507817995029425622953515892868121537302729148812817465261660234915888569984951756053200115968204860060724410155013229971209286930418115427570092627211418488580869064162769012829915035565676928155372961523098668010926066368266180768865732263804249053778509152391746262083844890581261461440923436234069045903716250527225289789469471570171286029452315536657698875101153100978186206348865916907961999450291832579285584613907734828459707714218733774887157627045653209804105423925090844674347432723981497121169774892407592055974481193948601568971146004610472254945781865695999639292292483533734176617186652461270914423798919820648824454229417948892260671638858546325590755907943268027644368768721161761530070272456436004956990019717444614855643217880097285846267407449794564110056464091014487778641529784514306943360773416129118100896701214709992981586853971589095732817231259391029986531088382986247788894541997158995671034207066866877645442936111328375728488922670466988635875606801061155749296288869557908728913326855844377681941579123680192038086251320041250746067776178421787844307431709421075649307823860216542994649408022480093601929360263079029364378473565530658502016329869672517809765125277908234490720473554326188128997328444310205092677167189406720919579063648292828374399248186239966319379057421134773754282501625308877350362273678239067295898647259077161512339357954276770626744791159884290424332177123474880103237549684118505866453994473667008718999697792023571954056902045516078223185662223192288557634377572556656421856469854998820767362884581442506833713452385700809492164123984857087457788754593198247123271813425154287109822564374264051677382683143122740242517338437141249967171514826380667696691180613771759935794442492857861572311838448427356928587193776865137471016810224131949303728495078000926871243564183622291254215849161153101808405984037910819641834440875280978439555648598372382010548858536640567197911617192169786927582780634724492899869579936115891757850042123617819528534323431866256977311851642049444528656923820311054829612787660617531299969904479614073911420625105041844279297852338593853726134649416168312242553596863639521527805448521902218848705728951941049824847276904364441529044586280296621591946075418513423599486767271972579411493951714380800431605313909359302140446719556150558726913663733650678178856526605904264259199224318504813283243539308881979064048086319385753983385397018664456463540610943935543544429753276218889533228984197537295010644701585889205066123253293780367913853880936806499047632470502555548508267811030490237286650041406640084401884105161741452508897272181665466634105742062684492112963083845525064770013686676193289643324954666227048338960582350946402747529640231734220199733749116101406626642967270983892086481574103286344215107564067569896210889045864142470242422545315323156914903329125654337163677712755001080799477214753706662465742041474259869882611270176973127383954671455320245869278764287416709856930636379084477806321496488936764671922889738866340245639798190460970147662493327869824490945543954115933052360872306842398120640991713483483696817858401595583556302951404665340065656222318117354152717778038372436349583304041398118040794782168594592185377100703680998512121354491905088590213520587731276342993237195598542649525426955235526562260990887878170518294722550273382161188256085194874055818505073710542609584339750008514089083455522418070571747904088387751362668268860350831638858075416473749219295453850334729140011051451679895457077585319706469421125142561920478529532908904061236233329976484111647789323491453974985555663603679092343254742256972858443682323370602842170015413354127620759830641868200435356581449946073332572979699124886752390423335701790071579828730081169535752275948094767107981615917221304579336956429256701683986729505635804484086020306437709446746794394475587136798079860548460555774464162345796941178431787529595695946874193441952442847862647249204995371835009200004095210328232551761178565184450455817392551459319331625461047859541048422022798245085028307991576282601890787585754293047189431501204972101307472355589408299205526407250467003551333392850573450457251010411142053369488414271660671920349373108607653698624926756260634349633393850312847306991469213622959378149049682332344345463575893357997261037854109582126105218459520000960370242607788008210752899521140281766892768048691875395059589466513016637167342139450746407785282694453266664714087658963318503558968837828624703493285847990111983017375687107520570707662715786718704308214370666950910877541387202958465029171513456054887528612484754808661389988189991871798827255355867899248604117095552264851282658491893871713399977998729842752327532625281075984474038196213149761807194139883446584150398518864032383960118338952627063030084365558093735097509509967210132239724403557539423576848335107171889229809574787659764064764158328648252950888746133854525435022163034092338957969995129560602323110682134053180835582126439131381818397922030648088570677113444871113200162166608384150257618469063345711754055621135040478164494052283612812093322755887303170105849201980333797019968466875900769823741009774180084198884241230025326184727879617612997708144137518467468335235355950011401639572549025122968000004366261838312026989348907946298843468396708091849875626144998451395858904982457056550408225061165239973856452689058861049528391781220162611097017737882346910191883045200582188415909429064564693596626310675324446820721510316392140284662750878326757747503887692357117174053058898985720608723963394078567264461595219075604856305008927699423596787679755895635312093838307315373916877799396139182384767382006211472429883984167371256233403713772193401645139605801020589584189016528819936242067900834740979387394062505252047320328359637425196754475846748235598782000196381710731650955600893584062952797796732589387505196306787132107258844508224968041822586020850289648283233625051418960111557048215571278759262836493736353336042144130247598411975884963968327474362976912294793223720594369412795485282498579194429775065156198933808121497794011590011090352161146448252403860228945356290751314823403717331735697155746025872238665297505867581972316524809803424501220748229751339406935930156180051802273202920204839898943142728321376643432851606088582575398122413886261521993171788192070311511603205526987066608466553156399071534247786078560855860055731240077045403764555642847824955867510465015332653308553221674396859221293486405140183103436721684352647914145948868651461840843753979642586505644620037718476059924730251833221068547052664373500878812615775848239926904601267906175752110664374181592105183645601539900812914986208572107491060288574855323597753385309524902183187617884520633175448498287481406043110165277829834346342600332106549243209570704459475486586799940486421533958059306398688428987263059032241677208163310547977296956392973089966828766401246637967774342133270256074333460654362622720855874233081390595883252239845132724987321030277719543175962069218711263158086273571202385559040192200289014208354499383181618174962243464058341512987543002549201305877835300073465998892511468340480893922746831642683473237088040051716620926681841325519134939906860742200311470433927330725732045060672883984053286892369714439213024429397343938719951159473771634529871537316815534039797341133000107187748562195944650971318933162948390519638344156809777220581806927736437563823959027206843756215858803970508135358200012465170875794445430341133355545588217879092109112719761711940444054355945268636720384099617613014804335179896953444799302631097187969457216095145917059556257896678742946792798785427043044803795876527831674507831846645411920079202842106204207274112677114835631097739280807726585196970339063022207066431872230827732978714834950278142042333836083274588560068822131903119649890404427039573410596146370367115154557436884502956178502015857627020378338357157808338132277698899830031773019964175221111602995483055960146674492065344340775377386663603743393445129479417749742913498523320965122305687968129904046185632120500121188976242351708282615946983536842502711063249325628081764945154194247099384815268475357799278583974254158863204949304409104015158140605568653318469397497876920475989194842717746627022297955614907881377930190962188648409823243682389272298315891285799850713397124949009630614643672327714059449206581852984922564122491517362251140311104100323232850156603144684874763707435879314540312303255038068949791728867010196012438631907639117630605261848558303022508380456939112914384779314945807966127085457495649118275974774722804905624812820079740431431512976053165786745423496941410050666553940061930466867228530735633621399955622951115386949960034839133306902331222373548716741957081428388992680013100413934213118928561324771918838132736907628667008607632368901804239626532671740410070616820803466439147564661985374207460190232984733981017756224225014867950006533963754007987490401543260261059445771803600699116379114277873943302193015763096194295916368410602263096825793185318143297112987687248816923795978509680315367428528731535079434482684665635467593957477573847657867115543037566855478366681385450392336967160097055799720827069554373832738619258599934917880032271270141495731327100612544669938946039193967638189201763241931713939310019203101861304722834457341515957656574297200131806634092087574558759190483378492003175199913552987598584798385558893997640745337840672352493172021838802765012573707103441396425850897223909473674102862338259813697599321947917310091883109625285988936585214323766590120206057062573718281145094137972994415276891744880198531450328530694976152802452948304297518462851064621261210516051884659051341306153103052266728861808328247168506797247023258713454864705009660002172426298962258336869458288029297422089706062535655448964266044079481108536399523282895123255016544846001997040067195326460323459267191290936489538126992319837655831634999351084865659194140112769881984694351639326461800641311615451937084882772542824602767148889844973580287165766034483105996031509903986208338458957072584444244315131063839102847477088664927247351424855317164273446483244627093446919861503732008768564981180033184218830816549698901299486158655938360486083505605833169935633887275358395824926803746088199842554053888961233207614616491777469696990285022233950130885122506092102564305990319726013357598901230097257392617988312240224397046655978917589953971818041095102988002141292622356510107512089472913671148763654352680990217617301417090001161832088050426873740774957873082356977143459568440256822021835086210731208387819246102913001200482491185535838384781428685770334662971585574215528138676014606171057422949915272923292306526487151080368703444017809236984466349761910246537336782321229800750308064014995732171736384525056771137030777052953320915797389823240626396883907789129019589711966264410671740047593701224380491522391199244192762074279617000652117081260221964435314129948823254396419422628886937577183125069047577067508886941559413883530237121895925017607856382311800529837303129975968982876582877298939721206461780114346257245270641064523138518296956713204807109960002091641429484122700773056822339506428281818127205244095899050651033037697905258129682766106923721514606900732355653053893791610789011243320259595790187957837723394284468369815616997649355588218018178282930690204312045617041575552524016183737013583421632353318044461065784644204541259626512585689825975858867983570983668121165352840173045197708727418062770872953830628794936756445405391729087515283363394321181400412772832640080830271744803555324518110148367094920217041177624848126016729646248816340558038583708198352913993476486837286814083391686613582745619550984390017057694275480356676773460972586057951591708346558444047965839350729874463055529972873893590814566700635644724534728659082677724354281575950703879419492260417046661490437010797910743625584867838166690754686872386358308836035313162501390154417049481811032410037859886944736218088046112087783947646805904461448490551350661515985419398136220424400667603811976606759973813688143137017542205896844857220608013148821602093295893492679417221029775557123592385082612348281096371259150488047086567768650130126450568639281872858756056300967922396262096671649106218373550169463579935842871208558010167375326632257705681382800753948991329722378742111567027084149394148534613881069489942568313899312309664039984994059324120778761708115349660498549836708113268525945049530909505103977429615691696121627086251228869580360948276141483043172107956081024740294264702167982991332460505404424706321131543057057465847340673597112565088834165985649622902375466292500449456396142687034990042694418284921231735734819911770786138261049621905026668671887682196504898010698971375475281200400785248589563516843816205966062634190976300142466321716746734244605918170535191278438033556062977830760409230798472377898762981710890081158054858428819267434646769893567441705325890285295582410992841040813022829265648517900678443218482725662981312075944323788595327558936264437942082565866468075717451696865407244252422234102254246990644285968415437157117418672075844424942742537079772709767522435219174428946337511416386530902616129049883504801575599266435674129685464730998981913918886213015679432035072001130093575307572285037911045016418991813534407739337286180276047591967358737731016255809769087185700945697501231900339077611059499813709616564901763180595555378159776171763680107206525824746581668566178509814321565926681671789932052684475697108820565147856796985923520252140224329599738482413916329355258945150485553893195829246188854324076367715011163937826058102150439475877900261991726327957011816471059797819051023618435732631957378273707694761593290572045966087370043490298132888579133350626122498586227982701384419426705531242310171926591309086068876767466237714116654784386470695546056402551651564458277311601468971616421613664578762495854629295689562967420998706381580893503897063231942466672804105918306245675905259167746646367007145110853485228204744986500829670153657942071139788628350726477645798261979958959014626585433370033618477901615198787262483403137390675513074700384749238805270544294536536410304564738307027468489751374769402549821648934323916115732836671859121519527663209361964806888599230626487390233807069608325224828816536181641016669295361904341998190332251315821041284721449574346419329882397710716562105163500376143067073167574599512432144505428442595570775101614972881285318321061588686875825141365531701453217957591474587642787896900419125207621877940257440865800336479809648491634441295408511589573126710225397329098685631147700808914579359258852067976529399235485024214348464309380924468460730730562788131764606000912612730859457348806625845657740427933483215435185949776835984208755493475385555064590125146336168975790508861440759116442692616435307732768566410242846200914058325605038013420025922345258648642291801188319601223151754067457301075241926986789855674327760105725661899503216486053088201467561171631338003690775084546683787110560219874402773555055448245276705047222321051851951830503976350139269003906490873389913463119979139875253604601162851810024218487070202018042042487189491111002064524638323970568252214522578370827636435638999453135739133799613997638091331329261425986291728905631662319503083905745753101253914818234913523703730917317238568246447128642449298384635255177710098816486440609693677215267483015682619687270737401682147688578442565838202911872698779595750161716755409991649981565997758673854327698629842435911547885426304608784200701542202692469307487130608407961284668043713085251870787510211328490984430670737612430962150957546166607185514259309643610606726043445960285755411793504630598598827137835828654527996122808443973341690676512884115997503093198265877659408928740577502045873706498426464562066475367473785484410624573205892786050743100500143245631696937885424771291979429355190533792089417799898161150898711656160676087329873237315050204278454479957771629990065238404420019969243813231111055313813577693559395378228307071880944496347337585592787188570991996050049626035526612905635960744684370297016790544980997056615823244585879673428812013673161592248327902687382745758608022153107396580306952974877480266484795232275549136195325919737669615929233371451898237565678862034213053158037123511092489691856583003591374694957630963379351434728208252513003708217081210068832196465891356384234152092028628991130352616212706206909340854511068577629722159488658655212778101585332777285134152770663724406865863445431794101588622300791659558189991756746987302043843020146577625070060825875021144971686898419028179870992683295967088169694051932485697759918640272039614628501927059425267276652478803632178225771471158986797652379703648647083965525277846411825917211443947803424024993750354421290658108018485373326377822447006403864074326481302463864326745621764768045233308891012602984250046402541366235636315426086721268118906283764613372582170279959731600708212759773038617118154935234823090041046200745382128683945362748651888997728648367042731362433705279682873667849433648877359429191888994696358284582945402914308263423827584989987561192194281287707145229242567161720074635471790268728059713244620861027591687984467351684760643344549229554520344665836577977577077783307168887355235198578220746759735850598881588702184335466898009166087715475971900816194111493090472965283790501304589576094827001154735247923672272064359628023695551800186335866797923319039371622501338851593142748369017271541742077116828630678963746384426638333752237971151262011763580759739912295715311037637905528424310416525869472499716203490861878606933338712774445690535911223424680493894788531323509721865042669405227580217994885343617544772168886222318906570308798586749800904004917169079060391504943340364950190653126801853127561411018626708929912396552463077566939363029156931567743345378612378015917629009713555961048879830635299810319727883657193103803327619328093602349271084487577830487021787370754405075984606600074299787246776738255725223220341282071596153357778484720114251054219132221205230133065031064708289410330577922956048421720486817528132725495463790480487051418216485617494284300642053494545171018966203410695951703799022909710342481706136375606593421281783843702142968962682056668565609632910293605738214610966022035106394295496274840160867109817514324998926536986363133661175146092457706192169030246035766799295806319130389689800333585813157560080437625456154312251667902248421160089387646254796169942310693858283941857473868367613263028579163719102300059783640393474838853274977235121992682093961468440080422047213889379964216894677210367511900329768046772653799944672078259767078872793094532588277523596595472919233580137920743564685380791687323314973041177683926104885329880793783702652710686367556836746731150565970164668292195495386882245872806147782784853127154395322618410368319892420929246637075083995910595136512133721620194813890197794746355227843624269383864604851512520118216617716705349910203303124522795489191788635615088595606337308661867977409013098685895416344096413211694284789328130487707930841938064289756792661910843031323172049319663166441633042115517559820129426335030266076144993307102518951653585389206868133602220100707182498827058884481327995890070686948206728558814178639711910486818501279253028016119716838385614044388967377790203934109712890582389363787113383761558850534453880302446741572343064436435274941812510956086036763167387004359016568897019456505969526300755947639584744211196239399886157622291777197191249606602371625833975087079672226411453752049594240395658776895905145819719171468796486558021146594884015018736037309273110561218672047498346193978041330421134678439861097662238226335202699270158937640407750512969877641335734473225758265829002511862381900808636992865002469125629945113654638087252505444938999453658221331896502846217188701511784795781728217627446354094138593416305452094223641603896051738041905576285012163435514181574215214946211549910332484996089608986171152561735250306049542998331132203467080484560498765441978968373579138577591821337815062613810358176380404153534340472809441176261842653731745062560669506340845144900092462917579042440962099576327413175751285901556609185526987576794165069555787344488009080740968791905451682748055612439146768869790395595423905727319873324328782831121860003548697076762643887691504544397296471227414134865461938242264620680663202544415131474028054990085376535383730138166044985123027655187951694654665883607125662689339628452317617038187518299377956649431266604187005177550163048894574210960517373129680658956537254468931410740875552828981464543514220177085925693834932497084880157565979395499879895563116621543313590246620276637716455012183444345216733967196578037906973043615751311330089861814862180682000190982912186676149631358700836116523559581175087656336495231431103810526048269647333047387781530388014420470893794305456342557730786435311456840074284641775802882504753909091138255931023974149228919860420782035215418782054070778643707515987801814578720957759753577010018301858760322515560251738725943506089223805012342483744529806529783266170925829884719179630305200940417727235669380075630728714717299024224348293397592100355685877587483386196242273479846203193303198914179406039103753126452322823049441680177593079273887642690348668363749130816067335396578277441827399042121381530363363542580974403774095123122237365311277583557501574176039282871088395519031964689379279536709865756839602941315064936677704770510802380241167491047391272338564841699646288025154555100237062647886567310996915017394446559495231567273625536374341179946313003264525134245141369733086218833907048332480454571387358517453303057599763036286695182649212618690312670177514865685193736759922781558201214730706947956081025581863095372452924292472075439501013210289251120654978355131495747175126634951963164498242813698977742739355282244622631668015084888820396377543846607960314295755590380499267006259593413260678492775915302605304738291142767297962671562933820514264437013390735680485187113284190100560576656964232244123889516777514513314653035679633399012054998699401438049592645881658081749092163428155877637031645162243754456481662891303224601228324434648323112745892457732961729655309902256899567586529793777448399200779888818685898886915915165626435350867112826512607657609021762572973330770076431962264090433920974348186574521501183318809125516543541174578265842000792591757372377360969163727968505070609624295743789826302897617819153904796072571047357159039162159102662024797997518074325209604171481369377795978072953373427576751890030552140636981608348907324614413494121587999010231061156863231176561148174663067486066109781282798648189416660613828062021852443396111391063464810374102299326559077837791098166327615281585491867746067385028302049930347141531792008613413569206475573779139571977055345426720253285691197836991926866810648306586810742265227606521493619946696702723111973413250932208744257158905693567768422244047706571168996139403824025839803708263022519259901854095228519697216081063468832757004725870567863146069974331800916489900598019804879896800158838190845720685913796231339213168545593343569873435944089104876924297769022061472877063414484446892394314594487889480257470970697821949001640327777819136969983367853344166821063655401454918135357763789928960141577323504491051144577785042481357043764896615499693666311725771962846408122932422378394063138014254881426712707164909665829741823507930779356338019355674249567233416811081104752568881043753907113989293857259884395801605652976401682968119758937537843584006795107179848742324379025600996941085102784156542456970026627074678608037061251518279158541094158788382883651509008334158529389727982995993552451292054561054881148402734084394817595034110456144847682452621579923529304357968870083843070950970988579213139652562017564595922551162245936474073965332285545826639127779226243455187676840378555726806661361562521330222076634322967758741678517933005385303705854911576580825709734134463637923924730456458610909871762901022118678655107094723184508233155419086497935052921383995038358167095127752933688390353564849546180880507189060985574310388283943015304982808517532471948623052434629455580020548208618026262560330143051431792236216651873736438830644827510538009451267794357719862368113866669459456734352788884261434000170301259582687422047361309455302080913366142182005041287587858220272033419681412993583512288957875715133228132605179187041350897116626190760199947278800900865788440250861057901880004406852995972618937930600565961012001235864978587047653400241192702574344322985053219209351994258694365684458096245119959573203873874832991340272078003799024605428269568192419847863968310515473372304927444292649960055275930087343774214202754321948114174746529607324296954086636707696697132584080126990877015309071120868534922992950477072095874424669465174559617299279999630514268838671061109253853315066171770921670261025460871441656636285012589660877442974857367898684782842748749581434609523559115045790848909352441012625503494578542056694849023466722507995656010753288924517280073600444985447698725788276915634741774182336197191539744951084836739831481536286206967483895343763917723797391959451021488429275914738294066517384548044200038964183083933875280203245945064884307395195179455584927511583030798908702330622179444987454313517365240653503875776925090662834995797955672996903525861025427767539372031676985592407511913088745837746682972834090897862183217803940220360305598341962269009229429395568790515333836788844764796881963666361837065684336227975030333868161953010535468997198547830696073736045075640981320917501023410819608055814447689030769344048317351392416154570520698703317732581116741964324304635920886917114277367512129908603394199055537014135547181239589113979093074012377806328468479244069927066655616052748759461553746505649554246073333766439925651328405690280530219261187248887657825087969390907443409774982597624700941821926460745501988335240464683819176014008855044707445607418058484207811433073624555159616539922876633566090143948427684268178875232108563211842211336377530568532524185072082731077261928480299671819268096962734460003996235816697376181591282674884757697278291599339464603089447513549011081885331219600475811132943043872114592033587127544255688431100704787851750600753050766923660865876453566699647126787111626568819892073678990567840519918367614510216366701320606664006514034182773816664280904976935151361614260130543776206664046248130631944168627087418854691999856499276903046150880437878032753977146909327241309539954458646186784447600219147266515790254176604876302930147862263474821685768529272198710257500540632551900312466761918111801219534633784237592567225484042830209632179130614683428454504228038771821508281155994033163832935680123735092053985861288581456091359224694205543226229147612717730273639787738911225392173521188591768790334180664831018092134676228520503202451960041666518092061139037392047937841975802808283147037705840451535208277055972259218770752431898297850702411124147907911482839712756451283201331342379797226611386691085516918274223478067487719671712801630080628488238455382532590932547018762724857670546507153274220897450353215344157348181173774589925837680148758912852923815664048890672499709780558736597592972901615837452852470225985211874677460665932658641455031561033226152964827749505439806802856210230132308101123178044901142111149176625810607006811837350080356484983652227438197929769481358623885752308866858117525913137824071760429060103288336906499373200224704524728458923536651152118039905798693464911807720655351094477173414955050593140953336094191231041875063799712060076658901043751843663746961091285660809543814119419913592428122347875731114161170057465504452798602120867320218356271530706651789173734621770435010341591111308354441829870907098329427800883818233296356175357779836777010164190693076185096968124265645341719680102345220333290060930970735394349773642044743079111414235194737380814375625487382134224390884565781776039202287687679280012458291511909825810434164515449512650273663973288592504918695261754337939430907245213151238163167980611767653583411141673962075582024982090984498229808010463091564797745272040026108706619933070693176900470524475637143664936698208436646334448462784173231808062276831274345345240506236306177067971973048215529795384363317057680500297145061890621560214888821558981242286984106579261214395224079792998257205350105819466369398204729260901032332331946088212408167930144948756351509574060701733572749283720984915541661760306516142469650253952724436793917925482730705910745708877250067265355674304127335741421664584411476840115772323389179614658213653573486448517007960794827958788501203212987689449528065415798636387160766089820130241949487766899235269885756375018728711350388012890415907167598122397359348180361285720432246641601051234002871158581461779013919288676428330051711412929955474565547867703307783618300009685460619598461525409402495070451321855227541332617080871795379437920868768359966729715656266201446247689553283608443740055901253221075497438036995306680288693796165048579046085289187213893084532962817144768107541247316504579026531449752477523098314603258966744972041949831649172217299064892135533091231323616510554328558189084682231461807123781170491223791894414231160910834502857403358381005428492754920013811908226064638137115004706379594821391614523452671854057969620852193107125371015877075423923584382270633691301971423665605257921051719230805261622448033987019626691844513909690765471289605449447553801456170191048594854347271923918163010735797729418814686228962905261028522740218720397243332082785524030122274462573031097585997520637825772807736854951745831934804000088750883832389728674438143464994352717698449716295190889298149618977086553830933331388183245229319830728487028541438655117361965703290268941580850584856679921330111616577834293782468991343030404615285408349181194176816160720502903770729627291386136188471806288466972337134767162228696318480857141734356812484904027917747199711264668728352337714785644001580057525445047659492888920350614984255840432765481970220235230229601031949626677299143753563600715419572859532018660265088747579484271940138721933509750038860080279678186912236862778579099564509744181991647998800739096122733791681469435474232281537206750064222755582592506134701226092474164625987671173829479673535202967644045585922514671644260341589395874413981653328889447945364930129847166649308745713415160596489630816108032737736986381959269009960413170000840807195630571528001930221536828101105952386527780778383223816451569038809877191120876963949356252499058162777228077594688714661372327388729700560198077313815390200504825367060325269433023360951292700856416019340562141179847292886200089995611462833339815077668637690976321944178517097835980635594594257762374847864434418928775907093429083484518228685851667577825818795268499314365498556474628022966307772331127264180082453247913789243575933464591306241940724047366672503223354983920070431009990292485971488888873924602058021016135983109847283431580558905623655139489999886271550459717771428594164540663357388582861694495215204735654766591764704839893365812771455268948339780988956433311403407716864629938471336576288410723092376948363545194198629762727322750915552633692440541983864466845281150808868795920505431576549710531888872915873663269057827484957863153711459566012780959965329295650910868768033962426605713863789974893733530212663954812264104659345587865345553258699942726803700684081636359976864271989931412688135684909805950979980255082142171005381296587412948125505598270318891364542764243349946473008641027173431177785725134149490741277885729759695462782845551425482036189756757384251864664975509324317753819434668124593912602150425365310643027791534256365239883939463002705387878157471099400562585049664077337813589859763741185699118115959197142735108586644471112747591189161604541024117551253268679121389859692936911878303297670804291446043988610167306983764306804011004643118855348928041961561407526890341286278382520709762113351139832662418873114685586723520392926134713443327978114015198143268831338184254673773903281458720858670054224802021778686617204091292941844579372833928146151859399933169970671106258924085013756672217338829217406629135610195249248957226848074698453297704249584033278640657975033612583789104106905958682334740924749539438628618349249251705182744617936630834101845488463929421314849625071386747422783585003053461147945540908045694361434808641256283294972935014557220831828504859674649155850803236672064465186004180034071685624692777101824574627614642980326547029161731742970948866355211843090745370949940744676805242758288879321192322419113902389277611582582332634045576228091429023619006955949752558061956448966084173268701147481295035936690725454192580156955523287469301436865033265241825482019965674713788420503722950494487109748042203973793696150939972732077561964405549160291214314850594469257626150417745058715404149481004651205108092737128782289129394616734199988187871128214857495249284677464199697106597202741280346255222377838414131066634913514059066399044345238340255589286136193510209832071856122799633117425557215511894053364427862991188415325617237039030237343672568958979758299822564685472410209073548339712318366594519649796316420638779046030528493038795102911450595352962419022412121622069860128302402229937394551238258701230108521881586654260386755626888269920630398973132020097935216581532839789800829709719209630152439482026921016182828972036736353676345470073668577428490911274213511355261050640798569093142795545354349091506337734261820720363779972963950455735656225438704578385215501598769050079646779285890861207753166929895795922300083939767821529668778990208882770940752274040626864291645114517119556206167858144231183911072581738225636536096715910303195055666776426665186964420054645649195439999051253244701828504853610972495894412490156683827111367573545578421280550307248611320094509885421825395569551448556588944804887178528422625177482597508226442621319752778028370345427903362193992945518862268232453880974041402504485554557038318499259946449885001672747830996040732441148286801792046503631627796028174190770812142376779234888857120071412326227221272904026909344195989064508402704235186330070857936339056189837307377624882630076462977094963377007171581789076581224879542326260967665650801573774156781011493929093366700400912519837465556541813745495615917703742979493546806014467069254790665986906605786474621560680670298889291105089156269398897226171969697871992891894472506545504459310775707855488998279839946390553928480536749373677773307212789659061383971908524520103554505156646178948094678395858667967324622415118421147301849101597780489295804014808425986249131901599503013132749554206247017722883624108220006599032263381987172054661938917397762162330187826909784881005276624301480967363031897188925177484313461051037842157493296130648063981829288392331590694381220275813524534439085152456919818292175961419103049985078918335076646026928855075805649440585791311009483048806347475086887665404617207383662332726369589553950428049943004795129696899456979695649274244435070639362392944077940873534965519019755423525641211966604550766159431030787166331908236832661482767909697439570933384750391747172784296503183983114539118013885289012212815797108856356809745243514969282780682171634039091859092635949151747722245226797316721278706648977773372992007689283961284242910838771746318221130355633875007367516382439297702595506553245377337589470046330544910119529347524964688967633053350360042394413493866997982168654579845204061156610544160340777327151863078318964714566966488333467978208391472581867088319081916172649568923089212014837656092674349960859588337413301396914455491254164571217124122466341968344779260945913402576468202977494754720636876736693679496651056126532364414240518409214964756313750234472993030187746419216739833716659257136446396161177085391842258243874047424027247978975678520975376413514927589846307499538352284488219944226202274626365526340032011955211990921296909307493744337599322658334819483749816373301486562681804670709710950344701014632688499125256995210687308694957157336484254773046143568860634703985976879512426333776284910855512313818949988876277665038118757218956082781550337686056896503499569839476271444371917764572426103631640661719317420216343276644071950501857185966463906562575009099296784773523246535047886441174848466824090810434994006769926578757987554775002105564478966529263849275686420474988430128372184817819891240268833907207403441104576723868288982624005027948544600525535133274212101221192655747391511309856002666756736041336418342105193879559666573581781537345119433309838069253325238666008102564815211054146792332845682723685911147379906717844824979067460973575814903576325287868489245379193928667813834518484770639473556106279513791765033543626195122932294853837749625565370561454876691092125091731340569181228071338612167343847072143810391604760256464835065550896288784190314098482283375895205488967354164971890877577854214158689928377499383693355163349897928926171119982958625463132477434633272568776390796606326971802536632735819194841622317209446733396773577043386437829410712505050174107495362380729060894479088225165966721475984610574156088248730033225557187080689404617347898808441588254023631192139900878267979120541984162576648178550893999421395068388016989457356587284422989903451263260512200402802327355682535601995196030951374070484624004227253776232890028333831430788106654577528380884934429103346088153791525975733710208199927884807815043375614258310693030386220102874512210916924024228555142985787821498277216332867925975123248160081703902604509550856443752910600227532417745895767641790960075374938027336656119235188150971955889665793023271740311208378797289436371468607252458955309763423720790619199355071273511968754667103692467849457579305635131321424359204107426188438205392737036226435545737377584656943554502559153567987430951114187793391984257182605306601416021106342053081794195806232610669093281439191118124120715567267684565177189995031574005678777493619669083893081998625497266368978626019936531708638233406803094745821309236839201740432655260846835744844624799066636013951482960862621146722745191869188649007847118751079672763935214950736095792090102513387806364718272935539828605767489482432536349488183851384248619642215206122349272730311387774958772051150567146604948127723895308853793117743745241304397874482237896810799157397663785446539715395287800061502982934285256775675052737277530157218924403691273017739065327927061380105664326236715122374318725432707991428542994940847596972767799026039865846162759364959106663116860942465362973944564643610535327449888089226299390714001355791420868056445280437512328060014231909221789673171519397895602494347289295869636344291349693501888871864380849599203649660170790115356798941655487571622742586751296532499968831546799449375423723493476554627326752018166600535682380285591146458383415332920482865562655150050035977864399786814146481066923449755429866795916573146237683494419139465198196988132965331905271632327449383899306480367485347974022590543003028440845372314510606785386443279483944864261306824403380857931098202761874307770448466148928602573736369781270145091701184079026533122894760159093680735562911864873251443478046855692021027044840560646769350593255125673295989124393407887280323000996189900861237269524558715245999074097142032807573158397328142576496380569191996490902997577438592498586279259534667862347937945549706539886363664832791282921198034312541770282225450741286657208299458486961916972893128210821339736476006787311418167994282588004274843639077308865248089738580737654774146691837908530206970200565972750172792844001080871613317395692863094534497891667530115872073794988927716164455655713025179308304170572508680842326029937586959448833232520318900447241074147213343094735457185885513185890218269269497449735814110278714468819648676816124268344387369298746701474720636640939315141867319704179841801979831490448101236676739298642821878776547980670516023166189740336456288898658362212180793289129838456793289360693581888453563321404966090693805215785488363299984537056324170894120321482428106432346922952609987085582774044451994163753181351699831811477999765109637141732538188066795203568170237145899760319185079793099069857506706879876831516267321196187261646737172900459653527948468059475940678920058179504481835839844564212803703672137183213221384500026247990759455257367882485881916807271936915385775540034645454086175882423630576753144012586222332348490129456186022688804042625092584963270764123633530971472395737781938306415007070185058332849624979438648738518498713258249068830239734629454916126626791911165479564144778722118087334494823124698092268749745490663092566447420835253829337877798120328698590912204007788269739720497940333301344332000194169175814042154448621129438474704050635772571015543629006894542187589981508197091968822274431597450610917358395589274678470260566166967488475010927232854215534104565035784356844219288838749911372213573229869764627438808595443593946339550097463426982798858311147034395111375143482541930260178065936186618829631749723364864742829780124070357258668991255593690535492163424898919770752613739353896872966764100133081967040047757687166816977685298350695748359202340056869073816584796075122754575079109976763330877427734302684566574574168405692598749303470463496561073106520196668430925024410980244268786618007885482338097212753857721886110265023502413447143548952113307354402395488755467419791398199884302597695925100532890100187691109437262004934996495139535701049942159249633052591230592361209679851078738773462049027042138313017919676853133771159436299810930224520399979070503407676691823516865530428820402485583692783907983319084687519252689884806832887353721730668397861274574009920845391692349652160308107950778365739344710808559492978293982655076243375827720585422897772523895249130711009478980071942596854890148432940303677344266924173302959913790081973482871825764510543036227200455893372498414841804162241352395162082611022410145641278126475315151084961042200196160652563739978126520242155625038364649822339247808927420208660200330398157547884536936831123725390990825264227466272112673173225159324953901657554249688209265082300654288926066089300300553908726290514082653466951177172111625915429919912743250014183028840050630233695888884134031334504616478016924506093558769924196198165923647233935275735611448816906079968256429575739575213172526666963321466068841478625019782501412465033169296099081649418632122039456051364521124227768399367206573016816896717513263443041051131798692135387127756035191796376387302122947955405582553404694182391482839070283761443963533967628726535751475277797777037784556735819271525206283324628059074534497439596659040722597837663976356862643537677570599533891531133235315887422021276826645296524414040160722977190935321699320519266855366043631697358028676571794583953780468560796588409571460604951523855146574834703229251515198901905120542053821449508702895697315866727946070959908234604434665954663451438086010499776559509597670397861447504306961273941245008539313606153582255644421184687559458548659398954400926022246752859287863654672198747835253449683188742776193678035571552630451560591319021616556175615330131909169586630881038514337983331189786123009180761053877864095315259732787111412660390069519505876037895602443806436697884426027248428446728860870250206356196403012971573376224648137000369868603670546733213560411931929789680015718578028778179876915236883289038671469656475904859987298303842987015964646349441594076727559639691429109124306323160412602857058260317094143446369228673255082927883911721800627851176103366533916594650746064650327602588822911119614319654990044681352532650244597000593259190100787639165220120502098328530610646945127162005039699290896332630015646516162087468967540564273722783057942587812497924430889172300344381956313575131761307980632204059413739478190896358006629361901349924541728809843430534789169366456544929811960847843283927165506718455813255842684414751980530600923045453621042574525790461116628125683707128252493675324089299264362331880868849664262907926338643621399656592860449180907581754307074665152151027027615039871940708393773515411585705388556081076265683246560989074439955209004057100002549796579054862238217165184693505540350336055277920258214179813578732264835480509912826887263051449404050425519635373324196428378399004510161410673272980735744769139426152800227304507365047991862552271264364870763052799035791652277505152497938380741342419377571287192988327312340450375889611254144695301412145512665662932920651057707284185091501624440131360666911064148090197902255890865571786065804314391757863271357679395879393600597976077899187735564755064460846404837774114213116074827594768854227801396478544761715819683142351305140389706262903826147776690227778203078954861563591576755001041086984377179313030289066911527622362144029708618918306130037726103990946996836504519101046409566878013347386676846260202944492410572068816908448164273554723329111916010613598575090667941532897822497860367955776743085554123567573580596299810911755946250926659445230656320914978404232080173048171003874268314048167537421315751175571035301094594964671382909820605650782908215896825463047473136423704133607601861852633958636738691671685652501157421713600653691397317009808783532054105990845116594259757666752016113735183840767138231954075264728062422878892748705024384871353262120999035704861958852816220411601477284758887947144819164391558257936479448585668941213902568653468174983769896340028027213089812053630675288795376914787586409385177230456982339388998082675332110606843783747595430562332726706288305273724764717483975985958561707607384068062831707519630013706191905260719280308892351580370205009217386393472551836354844669312644087059805330162400239164117526924037789468953159201100052107796854113047313393962777197148601401144025852330618589633017943959246448859315744109483835055002835539697848422447509682355559385893722812579393373383506960186400305268753153556416129562570983361585728111283978803643753391439035123067253521698451817989085065102294573388008630973728312556696469554910722755679025760400952472233836856307326888372969922744825404973362227324558478786641297467632866471444456865274653154744618332311743376166250040054161820910989682984936214741641287138617926014199062135629641375968428207330220019368265320604476753641700855133550815044918172015910544450526924077963952898009767692566720769701151792205885139422921088771727524689148198394492553026878589565295292227160990469002492014978942754222753542295369544124116630019332664170700336774503470287377261937047707927164323374483170506880309269204395031355610008952066596720959337534031936146062575659326541804794522502922500798857988435778701783535337951027023486754014771553262248259853436382054077872109480332201809844976324465319035070947247440309076526257072483877095534544273310728767111949102694596016119320700301883234428837069213895813656202802166101494559693270445124042164252963869678616774423700249262438917124605813516405488978057236138941878113207314797105224789815609685821636616313780816836770751541431664519606606231763228717511975617047638786938052518439974460899884377729614082773024383920249113154106887825655530848926789785004309022205586361587787575781043302931662816028921528581265721240033701339351664145861670095012952551382764368509856530592783123001546542696942449649873781407474650393076053813787565706962238508627177497994362715402039005692888103480109136225837447288903146923564937516505398147690638018261055916712606249388730180049966920529134475138440712886334951203484255031920801363276106220966972360003072503876375249459115045153236102666676348451507851415188662638611714765097264782653628365684714493267758075803665051579700806941697849450625706572496550718023669165963296665515340874046491613479682118859762387324286287109068459869222563520900816650301766730223348357976890682962823912675245731007981856772682807923875808674423799934053531589575631256028882761403239337929992337888352551721810970439538699882742085294202585495589162960186021128362866345819811370445564086607731081802414259476386837641205130814979007203084136028639677538985537123226709139696721834014611409543042288360355038570257831352507918780686994916200102933589519568733257520456942599153425564054560853428323527243750001445098151419475153567836888772839749822296283936825869526898827754404473971913216042312487810413186071758518474461478489210669665021294258439272136445192616157720645704954901738540241934695907841417183740631308226891949726458806474675414039423873134151830639066683374204615208838058579543848974383960299596244121542595045817969487624105610279121937858443435170160474729233853611021949126076800539510294423005707556545266609176323825464384510681240656873477006623668770080618875274893847210137364717655053006838714297097972970967943475597422617030803786475612915609255751833943187020867258518433887458396408043546112714847226903133063696326476485409454738603082980451770264216991744939998119535414719424632643373530615323375153787289401540557469236905963424247979725533721047999345537150089258097909429287939957366947707308885155808236382254580106526536275291923444760638941502667385219053923108011041986555284849538811308036627329141051520163003836392326750838644644545647115087400209491004953050112248665263751349547286065560792788785467801923898842724945649842570660869768259536751740604953412049676735910189549074144337886079077684207987534134743543676991320054892712464011688037349580208032521774986889597628710295184374100286023470167842848864021243960612397080310745082251662192460615174113397010285985900516092123068999889222252269738939915438468245304877403891291845579846108130786206643867997574935188911468127526715370793838660325340132118011474831702964813800175340816997829728137563303304340023415532636717710769582017877556900040049324618439937267946510948662041651395547788281859643530671365496602700592882153345399665118017814523174756636318148091072406960770837320885828169465605252007199999861827365065485292752693797870422806113496830111845704487072500050960038265351083598386226988858276856822368675158689540912461049295494032218182154439876391426636421519328373869670279349861370372053234904242445449541712046445032345603686577323350146296163040577358116124460940919956303397165380542178980567154911961266394709132429324089405836496089742836469984409752648876395218042221001206962005772044277828379389042852730751902412677761148335066900074572681984207640174251396302223318405042162871253296264337479059657040924490581030969088654280517495196823461039631257613428300775330778844444674207124497368206847397954911373316729199649381610194298716614259512822415510899746229008739541869774765450315964747130734934789793628139492073736160921639066515055555401488778066812750556830039381972034700725391235001381330515255834721203036873680004886261920807875286730139686166600286800841063510537402939136420783661397224949587681617663809985162462073289022544175902404873593403524932728190251376475162944090624330454357754180153656675354444612246035692076535776395158034152213984920003531811289108066157198377699657920952860673505918018381066980348535467738839100117912940747961090648196884555597186792201612503677867028554467309093020850318015931307244151577301231629957851308347338872471456118436979029836393049183229566571354574965787813248757193553018545044098622170691372373742354905115165390573540843299380152095412964803641271568187694177280350836623943865155421663036015646600050081496044789557221172483921443116834955865477612991735575914471255125774311712199059505539775329272966099708473545841088878203757992873637690440457948607275351484193850212469672713764221782243274290668489758043622411381947120567232596595978529744814287944715518502834709780088116596119697134916430088196187320604908317849312785914886134356305829837407724947361230513905221964072321000922970850089293645232781129821050288886886320295613298712686189896146733809032052930927723791945838583587675250057627131384326466205837927678316432160866496308243500940617793263752588111290285356067322041566270177687134459265598158165479851343705890809444426204749834230385403490250647706811575490872072286098222629225809932605410690599773069899893607075236562455063774726841168052513943693928502596614109336850724115744904694403642933954184236384534084778204381541283101832582226557424899415496884807564957187359763451269124805928240565430562562287430906068806686989993102736200431427976822395759074750569554767908464224633787993290171788995642755115924276256103723821198421314422120043117223181667347781227656705342798602697365768735057878034957068828370096583266470972053292152732873003408617105940806080083426293762218448172282996479591197266739083759117331699211668774387281534825815438191753177066835466435994456254526389682483355070755155927702556412466273140605859987267126107205439159545232929387090525579481530259035735557321572642080326409983781561501683646217564822529671378777958694363110974689603016937790372221326991002188343979840150405000720014909899035723643640117572696841794663131529777260427103217941800669858268503493013802033958791769960682512664328988465472354433719550434116684610805941602010859346521769753305434371168928275155128387901794579421795765069118823764563103077655499787900056984812060676172386713210316444238252427530533360888433798069683774083951515759667910070691776439757437376440709768183373389149987176576719713831664899657715436279846887188638316231937215754302485974761727009987243839253638511369399653628571311329314428536672320510730268649882788198321475979939875650273308167596964450810957043013581055368888163526390918612607643435679064746672265950505332098955138957569466405818210463665138986839972250508717663197653908641064354618441845974069257405856399414043978845130405071885941820133518433677081596497755934966642706424205350775963671179873535819219492833932839959170648388885773000793327866515786108465994598289339219255456603068315587860017033577928537865598834326456483769427470080962251208959539216272146657394758637745743156284969463914423052526476605681316488090582367207036453186669828277704282483050443254610974265142604771074652975346883077987996364379264854103985521145277973812236588083465250579923984715494962162339021805874872238529870794811355844355172927666568617556041592479640836066730798796263854557002488370249958264368624411133665208739813255457805516477465801085335730798861556592406085896322212302206420040007540165167482485140771363891225150818727226451181998760270250183160402127874403271026985038015758368404176116231527875028469179139852384262930702534081058630560026859372896650910726383069893615599104145315077133498446684563186017032442272578563674202936319552676659960573372330829664701479204065809607219624573712835675803647065397882276861971298093462519801360386164078098395502546646385750847961394182991251688478207210251832039891286027468362829686260263296011088792906941728159334506166386635364576138349982115623794410760945269395633040627529248250053931550936021887522116669601012984971863572383701463462675153886655489607711729219122424537067646598684487776019864497707276407515697036485005111343592044935890795148853483521565395018487625600472121076112563370025202487761099657217867374972035615069989942501813462210196170043872187881311456522286116192586752753076574079412529187779622292342168758076718150146814791314335579392904534578707977485343174361711504802059715022295267806057065533546959628520304091635895284055637637110831988306421996427596796898999305483044902333100834657750783051632178214562702169862755636833933306815528902753221217395026812522666570396481030226967505934578334958938241852838826852351113878314864269890515037296803527916157486211379194092468415753502904032130054567690933456501311136747928431648581619828859994648863021859709904276762562843922706533182830904416678109532061664093243732806063462980018473970792401765417751870050785848507659511298678728754531207296222740181262176977796701103382958316720530509179275953322732159674882627466131846262051541754259317571988622553937334466376733212407209508781361137033727500972101779615492144057105009390714823734151227257095495310735060621788025520574764138319184509475019252640174998341669950023024693014971024474175629525953714841624150100004569414440816314213474948560672885879327063107239810625377996264596113568940954634311090945782043408284895153388490418060623898488031790950580489298522900380925342005629073856260244782640848925325564091415130557821066424047708410518919205338873001405597940760994128541778783397172330288660019251694065621786712534659509764570862523755813060089504009489240897517784860825003001365440937830410974563602438260567739960497785745238387777231471987232539136607022839077060960133249217909113031126374208523467745655559709568029325835359378197677032089201570774880638246654437206518509111302882311396820317345059104655244368311191915005163740096320091620886045000838382043222306800038497234465336888912297247341458169979053779261740689877215232063351404696673754115078892688336221608335856252832494478593070857840539862159059702571851707373090297832627007144131501430106458609024294757738186136958185678228296787092826405716340144451828403106533265535638051968705788363728797595789773257246007345519140046425853310944387592422402324374958572460990037063525780268916405347114173632535053620939261630997108784462687927939519448783916499695422156161755070544795403316237451205001505941644398341968574627735603910792234815988416797035526092646349772943579943110963304486223517150194095798086426652030108447822739722513594727686273136539812645637025558059705722787540238932750966352559896932758452514933474965908831262296839197589678352092502834631921831116674751722319123663222187937031756103720983949278759263617829895146770828810876014809683904048653604862832334759313154141002611325175746142725423176219863050097858008668390116800923724883637469703210169775556591849186545209282532932731679797193396811965119900268783020949140296411964621156898825005027706212559563562574598082844354405940850061133768868471861931179916145504019128142001467036532080325611846033114256077506561279200760363174271719595115521715416573345891622906637555567562483647237424121982322197851668390853206475851699559215918532359197643246911495031355215432742215271980105266083566505063049924130909843097431149807052176909336056368373631694742366113867538599507259975040998780934986972922676745761824121988870304808317849419435337940874940269197653209081257822233392467427872572547912967177100125504285695084815085079974240969459346494955319736992892200860468337673666966721418814579249589877814852077128019964823780974385216125713632336385483355439239543395042678809846350673923061338916482609163250588737922016895890227108831542161619313216194199004730053203056886431394976466230525248317602130081726902070229082800457098598841954028609070555962045777461433585651795610941106189148981116317542740813878852693694488489167897560481885474801195872402119244471448141693018796393283612061051730236275888529736988374159437303579349606169602153369284901849553797044080136090850941837097632369921717257394361464817373442931412069251635619135622652398917647777886141393676623754024926434029432178247966510532390206625476160409270905192104887032459412714170842070064917287692229291099709209410827268539236636010145332951356377460358909334528849516212824090717702483714550439041594701316394394454307183796339032954722307306654838442973224687972439834980905591953044218119058276970906186688503605338378553812426296609132319218466488180530311874173618156692449364261017836357679706730040493919984079927563079317073368601188827226770317045446038372361020192202688583497801983466461923539909414981873442620265400360603591426172002047515118089598327640775213536059644519959076238632586122870169696946412789930743263689122716117652903245810796112406648052842992581132405025796527423279698234838881698357015775206459853570692511497068045082561106047380572716266869125453699929257142330044066424977638423395555617896524946714519850205548857467251798192166189561963840845903901654863210011370147096603551928003566937908687625647966173818127883965645478993979506051132321913259105943382894819840267999107185780630583026068723856434950983264447475716094368291390087065677737213094030653993154362755986999804448305845253457324402579796105829687935343945846211057927817065037117893241463274559936597352101150509117760597911913681760594414543595178482521315686877014607091179571099888552990188067940798724782635243576655647263232945375651185724776586978634462743849573968907793002083176921527336567039432680871286385188410559883154204562165278910687937605737803462436657837732755437361087862393805121981786370689889107592737042818684258502892480128971706343354748085960517112704445195320332950645051928783840126707035702463393550262632901293210634808141481300574976934463670771751952397105287280675823598974827066604236049978890395834959745784666928943348607847816905126794781720457344375887209003620217040872173235523748979810598745727141554414854548530056196538014762533773060313386165722652061527947672480720612525329094119624825517166820607812345282746121285968987218390938712289056097672370417378338664447511208605973416523406770131018795856315055588468486199738003927198593115554881314591138574651040566108722465412017499142662827760088767097745142402435137337358966586443277955766701680286936743577870655048182162131484267158676897142547088061337763535593458356811890410463203236422587569690666725630619798433098657911788836010113944199505094117070252243277549227117448119621934318004623675278323128640641029291181171076072178984250082938318214897049428606154585696573278500829815543098856608454912094799391765168470863022659952593189991418342050657973852947609091442480490535245339557866574857875429857614785945489202803631533151782892066119625882051607699863401060553393484835966610879238547652273042105670747532171509971316548668219604861918978135267662384775237796845947191085444150916322906107190960718841887702130999429020603050426084925844390690960874129423567708172357832266853154563213894013946718208499923797258668417306915371425573609955742621070901137571978474272389329147569053979327856428364136939294887372489050981883713713221905605624143332877032229214483556711932698506166790577003717576132068330594083729737006174961486198340237504664349995151975893772930665248257464048608439360464562942824210415816550692293099982808885692499916477897044393539898449265859766340409793054182456301236471144464855683534182868281885938028993434165450653359409605566349990824976596213478304860770306633714711324949208622108353945511088535958211166416701141202192250993547006304834103332103050367710847234978113799649876322225553578102142279747321303346381415526952682701836523576277084524773516886888013117536316066379693240081961710195228352399880550735721756381193807658527118323977936061517864763376656849894758562933248059640826390751763828474837432367624094104682622249398176114072163883103371774146112441725647197339245596276710902494508874473756545778070356548674537485935274449583350628124027478601482119735389597013377909538144974242755448426452526222734414582793646525176953274537570474529844897984378321689056654498021178418794648769618626997973517522558452085112290089974545944423159367185962218298346511924802994988653494379866133346196887132217374095286393164269325219780824133641595505714546114393716538952439924352587900132198475645180158895780734948190422507565972158173593266849436944679631275464334224285071093911348493493488296134858079879649832993559969614262886715475742685405079688475242327415568578668132433429635740947505246029408302225303224639205525999162439119594735433205985312899250341015861063383382245174455819439107374067583818653080858501552429038872052506696606397679224250917927921755407093877088266529620005353009825949881897172515597207073111708692268484882824590840089257005385095181759811160415563475085448334669231143603988895180241473571273395191902188577837315924062568492465351785675880048237168896782319500031409659714729733669821202736532238060634845118332224250327367490250003469953397871256665150062369381359884773130655771353312339264041902042238338851831670256833896022122797640182080459241085188710211199093818864710949606856857091468037783624510351772440089121073260024109596641126343113609314614902961465124210741158504102238631535445254347993282282197215103380779826865758703919443318018596123377962756190787773200387534315731217526583043969779267157700055668485605156843775547132306004936448443203079012615787130935951671057089653039350645630573529146860578139023082064385557641253180877322890224723510252509301496727968499187036752724230755398355995884912467667121411137480870660843549768721834103887909323403462203077477834343281924647569650711749566144379643657760110133546046789802052825042833823915803271629153214410445502036149447265827435594607405586624500785069395773954387538701334081756092374079275655136463325118645478149037514736763509618680106854464185061385228495220916460376700849181391051085264736815952093039984367779590345389489667159886802671245926704768127140658169118162598420321798962158431612256316409530511683181696834738289764575710559947567506212921420685046272927579118387652367393127166742620715245451852679451547630576486214174268901338801516118604356087446526603030070640514997343315259323353462535556133617122657267790458062269618749630786694546954860565421328707969222532808435150957494028792987399582217989908391042765360058040175894267125437462358471310382879192635668081874807412155027786965598927552367275053716736774431403206822742490567209560920430227860984875584317815322728564273572726051249025811518523892929099847863175891007770042834607432429310584012076415730838124783050986661601105628666423253798030297013449780908982248033990992839466960890548943466346385551726182978433622172980067828111519711476627526745850809136080139800713469593558304118816436419000261563209191498535183671438333994244686933813356295001398969898139740928010905081696658347063715590655950981715070946148078657669751157612859681849839436706153045842371543972035603981665322276228146206302705558056451825818338976879381704325782671352237157374239804713945433930239357662367458167634421592980196327295421852500198719204245829598401522094625795074477185342288977270685002906767415943434013939175217412687402455821061653287096929858169949805455455009807242935552144607019631595824167490206674293255693443904780524197005574408458366174440324487329015308790121481333678021023072149424840745283976483511006974115564554286522155139045480458849666435333650195343375664001334728880286034515242457740655316796541829001573481310182769723836899048091696568611444491808206665109308949863180341839717925074188726194939478535004485791677654005782688909246718157500102425683686910689805985313817404090969052084581749860430980011346093946757986715621017879931228996374067875090579884014570514338422970855599154485874117703037693623345810486325687486696450284145098609979113970175908081395210660630781638842743536030715137111463066630423392503716707830537634026110865254700205116276994418276169535856297012421448538631446232318074411068208436175496620108682741874480442706209476984497619733219004482104335501616683661892220459603489054468207929223264207497094500752149137297275047471540273924932376170035002108998458956245455852888096600605867201743238910696995916487506428802632398043489537335444053807046407324509659336588551330218959930655514446015248766937233185177740601841449466215650203497164206704594437310754038326439686560490336269276291422424909556360947322888288319068450582764561808728291992722070799431787486721337547587060564245397970333642137687747305340277260648871368930390815511843142076803676820019808599974475986070971530370236818567252258784384506824940574285126464189838048623791386366019619773251559430163853583951092798888009038399096523603268858503699275568569022153368783404096724093428826217078957966982430892394735782432659996490711360611087323815291348072291939065820773898482511084868980587588662525802116041844626157945588131231457518008443518910171299381426310455011105800870945720182386432611463837652386886849424025676591175438800511760092572941603603844801623288199256707913522361446362171117590281694882000445843684377933163830822016646125001509470776722502329280736827824834751523428144031196379203851953342516632952066363907824910594292986331088981742631042439028762301501392426557611830276218916595321893048594983792416135416211123792624694785131149574076348576850748728169879652629239742904199290542866526586187995053509705132364670907564328120909740641029212883131931965737454182780664107115169746440038718523328260201287494857542531655865109863048247938044394577577762880882609587211593302489442847716380137016092941872994417372694746262617765179243756616726020547359414397013301238933243133887823584894726881294305775240319273836411290454114869953554708222609326389990991354443841538091452610993750116550180897085870089875100976358632526945118578889761568682615672142400974635936919098829829561359267889678830344870171304710107188389712750259556365618057339068754658059252504138859706196901322779780154009091564328318542905806900282537164364672635656428579235052807860334319144029870340381898945230893771797989222804318293506331146560205920692678799091111248308011090693762323246143959341759189399416304707839816668485580322639924536739579748337772938159583628674170223692560144445931046407211329179398426630873547650262372764147719132572718245645222770690956882888331131905772607813754508810727009125942209504104886704302393247605879211060318394653856348251527819907712140078441838940082444867717735893345219167959326084973032152906148481206276776946778153006045896514230586072725839120387856886096446162701701164726863071922193720072091016951750195769527516397482091971607421318651996000744136312765485805252797218058361463072357554514781283221311103622964363722228533607771254332569211078984659046254516193019585433230111141047114440820669820069968965487956037534645639187706729735990764788092407924729724730849978045360890993084574074164944155341758992161595846968562339352020806130096404019446273560630380036351128109975637846197122583344154710748582386548405253723785370782845734381314305214747334927747397167677230182760933234960646762337495251620302224288075621626039895245803668360637171094412451735162523884256428860177442203876101018803158749185555579840137917960377993547489586674573304266225219058540175138299049333678629197145726218807415522099314441472336758039561630426117300366732996013398918810469374495507241538545497852508605312175405380255875868812837771315090003395793698517041708996819205796086253872302097239096976273885522884635163273707114888665832829100392841711583392161501292955887019398107803701094733250765635750052937776667744048701311571039329062440882504233513473442882241507001272040810270333481749397238071755494600712455661030886239618679134146616515000366293874411612936174865093559818090422448665520903880891539124117329033741512979922494107742713896246720137126518429886086264160809589604278226300469106432021253149980975205795001964499347989218284366740421937325396818673394343619367788591048184871574166570452972826929731939991802024028230417862756146242340317062522137609601971802018701186521435675815206117404516849059511502434125249888740748613117176707553211842074028819273587160046739368759904554837163049827276207562758919279674391481419471371449766788374012168924522485274692497497120720936916507448858662978576548334486951853223934820657763818720620506689640201794579061824074597776948596770937806585444344284111353316145126703555311882461533467380582448551350746554952881107262277134096174483011664030085110652268695899797308167447780634013725846700528356239953980319281462772789637697687328825223184828880312319225639623194641881841426937489677421728889976254914513351450940997135731872726789421350352517108034792432944941477582681786743494562522389312385961087889424698996217493855026364980575286809289257647219833487392409073453926948605125336356992594075619076261300800406627885227433358592898847369142502562701163503835975011977592337611858790599234539031497132287530037649191183907779605340905315998025918007941485072282281650204830352768527730088723417737469357314665352134667364593106979277306653850077219116978322392978789547122465861539574889318670389891219307058778713651780264842621398031433352944150947835245636962596190132487048130918374215925212565848024817370282049368385777940093868066399154022238794548286063199868425443531317601694118765105122785388604027756832374711560335502193963492418306179720143104569056534995383767993018668187965928453386907860811503487358013931073778472473056794757778418938617024154370701357005421066362326518159090729785762562557865352333936800239364743389832490935982870581382733155951752284216025325114506780791517816651130574288179631302983155790122475087832870493706246393399215620765045467517126170887651579335194643969623399826486734172805176044234927739369070705143740535632044670658599356894216417821303928884300016695542739408415565499627314584191851999466006113178456992013387447723506807671245290207537217055019375095183565644831312034343176992918026358621384601268335106235160928667097723423047140417706184120964388529824361703392593389803892319130586079116230357316420652618801302449335103764098877400496048272207564976582516720003304867459411572854134208448834051780372720599637930358903515832113212649398850992654310075549892714600148526412798934076377064325996604442829059191398106727649486007352623623598778796245646222583415316080469303120189801992012004406630880133409387801746433787448489419309160692758710598265257762330282214462504428701328438212710804916358535029498818435137528107736852912672306044334412659988865587991359016493965825095235526067979139124356660545386270997614821445573184430822310248570088884544042404479769838518754515080703784971582649182534184143296107741244851868555140612215431053952969489857674074384689576887443749598007600839321292707278570236288077999733774349742493658730205576880994127386136486033335260093832816036738631718890216323365234175084726789819371288594877832919249169338230979898906856954502458108620113600481716921380572550644880613938880925339772683464869946941976955895005257175166893043624947561833576523741437074953258576391533985044367892784687992169088552047943196654407056152608096971195926549663248357491761310334726661455325538954528991818919361206025550423565361916433175885984612569702941194658283269276816837528680722200576158287111640955318895448725056788124207804375739847407135838306348401145956394827235095018340401926365032021081461897534427184553863415101697495575957965944262615698862653788375426419146648908021535284871631712755956077689201125519209006199814254227069605711210971027232391772152192589912722342981105578020162662338533260218601511264882134161519257463130887130416013237953898462848831139709621695410501395300190673010392103678816947469333230005592904056341700926175230803860351221481759458447921854583166383964404312691089810622313638768163019673808242465352989656444017624501563120291031776539676236287087544431339885819110922637824250419470536381353201432093854004747026902432427647307738352247483050072121604137155540863040912581313768901621805765287322267194172750710243298799479610790018993764311130583680588751637061642072600785291617996372558390310458435209849070456253450497197309665307122349976791286369010084622289160499935398856377788323076565876176808169279849431114863876360596718362081608617909752539707827753231795366401333292571062124839555712020281706319708716130099040802553182219105607811282545961267688494550805235128988792357396998234295526724170756933149730495071299489483011813743150304891839437840573552856261439986739617507247099625948002331992867586680139850630929800443759122388572861438091126172035192710149275099019060713668483600758782164904322312805002354649700339698942026995505614349571836807094759390574272840416700477442981913283664021508503755634223019965829396111733140908087389468083364418553428690935274828795446058016917716514137988759947886448024631252010167677737107070211528983819266041449656120005746616270778421353712877705367314007237923615857428816124788064181389848859791078310635415316535146206326146187506430806825034254915339252519350990235461652940893988436913868097509058270267331448927721296727900578559059284583463966703970113451401394903979301758068845207298030945305533342083406341048083877867952988860152943456595695587665508092324421427576503001511884704888834753687013236055395565916103193099607369780209558377570369579172767231009449837532865606343496292843232812286179758304601820697130090253430787903513574437271887124187550967359155847007468610221731127219415218208296968232992550074572763729831282075519436447103903608212613402122961984483025659672825264611268327381963078381989724771774078915834261673059300191358931446889960044964545967941117912355743554253326149825452037737274276257060921263346594651900726551419272379232238346146252281258877171803662858756520128073986157550528629207635396609666190447094759718789832068438457968920188350215024686593435710147387068397134472594711347043730253665540304957831965455411161791128371976843298463636184951535791334589322114083809398221316366382466328004329360598326503030682850679995189594573895176614173544990709145511018417637843857916374221478132668180106861003244681957177950914531681488204390995204927479955197100722717196209334899812733288412022354891762964959278318255403275465875813186756725837540412817553512979692406307759422208193953703894595118318865134967339266725935119788793968377830568849838042886822164339673008951118753361834492074343377514663505597516446630189150701190184430429185258769945325725098824609071707261583701756019128259622726845693089877034823664042299203033595404134376025872008206272129918049454568005831769623310232409611335101141969337823269452570940063080215432215132893186487748648851130514409047591882690666845827221134659322270816226276865196341068497297832991313255771541234644166653187924070880320063347175190905695237293868190117048242870980056132586707227542805505292223572832608547200342059398271897399084715476763831766461746980664224979498285266782740136547571656778065348357715981599472898578731621157921654156062981500813213571828279397039679261344496090972206618473296497796341101924358388546750058975647892685182602660094298950936425783700232205609126839314808491283298208023442034602848878272189088055161622058495494769737135514636315948762408156477724702555789811989344318127617132469724818266496698013372012032355645443284035738018912016990018557605105343040075782648304430556048568115400218440821499861861611404910964719124988440983379539316038706545294733155041626035247670649312588141455599148038326521307875954074156224423016571506461638834628065977162830077141941521715549015112622434419402593883999718833913765837199692615856771458100469143104108367068462784405535060755544835453689159393765634932209755295157095284197883010101498294604305143632128454124629290322936391305822028911139248246768798292575159454856529926289947452048278487224886780045431519316990328706140276104799600667237648509764669526301973525512712599319919463769310219535151365383977240045686695157192883013005303353423523202548780553218431617897192490528476723952927624325160086520926307333576406493836019787334698500268011070763122707021982191642930558320219307368739769876600181413789167008446997998947265264098915080548006346122952323210802018945141282718772707754880843191211216115156465765297275639245084299264093091244746762677317811494165734846930326196878352014109178202303077488914046129265584955350753800191266528684447307108670933759029145188778070086328081533227293822048395557535358764776350246901119559030558982033228678883883084772392479399183760449352390017179938572410598906407967477554958816500461833371940932840747575756888394816961966909648303973796160272790470284037606575349359307179322565149528483794193976411904256997537302688979540482376183653852918390034439211875232246526446814167545476571131055050965760621863728468839153268767027534597208013360635747532133068115035141457997547757237340388966604560116997887825179893045790335856423817099606895385364268852103258824454269100833965090165396787219862178953440152905032614123901142922871551180966348272774082452008007814541434751758680015396946330945295535479760800201483066021286615708189438696157517131251934744470388111626830121341422116262532570067567987889267294552110538348499904131419542181574755233368004790927500407843312937692125573670804801406635320668596471816430874737227254763786497434077388838459157488682715626629537080783547039979572088426260089256953729452742908397897293542955215855175495304318249100609734689679161130650241019879402508078711075865437286043530698951287274732060207495383700100377063081899232598820922039394140568680005408372380795668321766340164421559214767962815869830996491101303640173213292570508909352520376897581542913799618377335084509464389293094889305696050489135848840720806912783751891209044378387023688994856451036713003224732586981188716722755146828684862181808935856563417053559158613380345743511407094086811601744043263258146585393586028491506068642565370913326297753924147794911303262721973169342618819977621424046724087063033791377257158638921184005392525845708961040258270461925419579585725108862506502404735522426890055201260335824456028463400019061695116423998889419819282193742520063413784695142377145676556895321730435809478064809267051477093121794250319523439364980443522044571063974966299956629107674132030978639776866357213548861136149098523098996453103863623014893331665259772901193307210035080486472386192486074206161569908827062542013293144012250489159539666246397054830129815559965710742816509564572067923051989614225781402850196236307532290754927293815565941855103659686756698489246713065883985796770259730963055162047663255112484967786899470497775724491737816968539556432400550377874930294970494195868885883692482498356508480471977126576750056534122559509622356804719151814573090802576086093997738081841628392680403140781887066594734249179217678837170906137550948752064581271321634622700427194955419271172196275607938863748039488453543029843359111470406477028794082454285050825588108961433186876219356779904282112723357066857707763469417970140519975925943637718016665285002821587113751764666662923694005119910086862181820208849364164859888894818761745019914700545327609448772014839386899221641088188773789780469774417546719398751582986460175342384917299628735872614963946488042803278692458559974626286766944502321954060276300750787091422859405508345768791107884182329985077913530346606838850267375748424992678524330339901590457844651574288182052506915075879281205205398936451200810864262489501718191293281126534129267753297208692272943890108484142938055866508170306823222611241492771565348959109508444090770615433325514557788485009607854425623925960218873710677124330487486600163098247834933886179235696890948604222179152955068097539033118543224447236566251685890228297048948934935541393243731689187849917149662401626521374836486547889931979497138850868134932458011912106419683279422859024706454702405348036719379560355484686050901305064269425399934674863899506938770387226671108330477319234453786244688113031870734832071720532524284245088064595392619802659759170377275169510675050891068029708026579972022272296510767339191978694991904998150916980141393068501703240632927354830193360361052376141680148606668520991441908426946334794098521090791224458415932540253277387514292129592527123232351451552156716754326309286738719141691387238470127394312107160309721941495958271266933544681163329423616298720685203701832403835114427196851837043166574937040491842438749897322076376540994094490728144910305193055383746776600811307279556433660987003837489292205113346416866752621933303877037440942296694406560573355539164628907702796632779537172645985915630988299129422909040481813797417123161166441066320638734986273705663809303397909960359470704201356152359782505602159166237439835757811158163819716130927120556005352439913584680339708048892253919969708639724600336107408242252824857647702485091615821868046708109860547418048042919659454901872596438879814090504098766756527064980056304773039087598383723043017319564440520815754627368630294914158899458579794670127899598700200046236920524735042759305369174295034981531116496708084757792144346548286919806270784025310127248679966573884578230514332517029710770068169169451162379224826935994241261171841662474413299853967674843667885378698055807254620525841172717678766351004718200386655201943265276946335563291099707729375528431379101391535814226666980138630472106107593059169466664392208007610976637130307932991336914244425462106054385455574444083525371999117106213525792454855212254129140376974132777680498498435953787236133983731839798133628572002427878317366866059806916833550182098324447865980591756636981263950177840993909321194460739237549016250449239749820578128457605734234711360195919023568663917345186141643352583979278062102740939572072004700635948143636496010364517816225141917720364790436613565043938927864673358303541874965520469142256126780505381449093544075665336354785535058723377028117685088411913615414205514352137489958033548454698364479633565157885038954072754935842641333148617376089862148913732730915317368637157313915850508580565232150849975933732023900537928999565033367622536191242735418671712683857766877339304299875967146600298726632630388154175191362359415467487799829945991256140382049504317951767378520787227411737929742335034382459157505390786119061464079579312105378568450755153237676044584374094926584106524042643194052810713586316336186201569372243346108931500715251050252480933648067766316184591740718643740547172175208500892740357884095863447767261041899191732167059959353715507757426700815445983148514789339860798296499469711325701508330935255629483682400519767027365561658950346213112909820137156120715847836274356356451438618192297629708341382408425514175545024715812710698073016720405829632985418860102133871651968522104235712359302580921232581676772398719517655336689153102195796408165589565582412738024150842344302284832326095836322636977551846395183858662111966881828088800642450376033327279988064518914045900372370867232933488495746316382411834279140133104637566054399352009563231664411185817454933063635621518402852183127255953439538013294245474443400289837992237515442603381532590631122883775472828788071506102183639237315950925495169887251305100953435812075687940208356279696902238969906341870065291465058692221127833243243871675500503990118784749599865996503228720213336067763437375021138610174223518698398736865290311804201715129870345796127866883398732252024130526938093620904350419552350057103272823094909144252809836654204544329740824544027931358560931969636107143087906718740272957856316500149819254686883428968745587366509449028539514669401460316689420029645015437715270580846157705014114003719931201972946991268345135823509419310531554075099687127963062737399449392424144591363488362681750086273855409674134915964576403766733173222411021324583142041046187479413054822922786972364653406196323359496265733970966744812097980310734080534429962123686917798488127005931953774107669608409202434062433676162631654355439227121068878905425178074638010786512098736175123180046409160432548061638205008676332646933491295661776921105165282226097038758005424553527050923297893895153534554055708297030953258150623731694175826598917679081567855680865876728351217169147415324169966343624534868883099424951549631503165545645068520415707073029465851854693421464476660363640318729766332138451794626239077033387975686736074752648308854036392569640944281644093376672885933425985091093635190419066952762432562085844339929156399895691152554573575407743029955806156008780085158997591664495939918265126180914177230010355031850393367912792029415643921280844223623889528133204198256272356857238549234555497155914537322607904705233399522121696669930824538637236758789033213194908100887598017075905177530720925549182317430115244290639803693062145609079041548534140211976436622002752048563927593123173244604514991837187027857594568275213629360076244137585175927663732483469965726602869077751522701700898573679602472647638188863768450257926825957939565262102481511002453715214689013800471889429403758772959711547971824291504606556354044850267585240037203355921874938935152562735289473728350894787820415941621400629751191686402076458776712497736546406348642656643833262047870626151188278633474075273232940863122640892777992177804143890281777408925411731034023231435728859118873747527249590374381074989754109546905188223320585916704694848104258326092076334454314333767102415006311281015809510228003719692533004113194152008620647953020112540997378150600313963045345592681626198566173607621476273532531637077861336482155111054716612073700122502418251741205973356019113060925880920615752530086607785680356618638129447144725382935292865618609747679603192696616270654445486142577981682301441990301530150894880292790882482780358709708524457313481925117276094295876846976009927983211370089846606580675952255093507685376231650380728346147589156772136275008352611528210523845454458155592285576300853806576899358361695546944591864581503300367477215684574504392604818609409127015183440475823754671544880364432775333556839509175819121036515701959169307771967517032262054463239218468354100653314539946796161196886990632274636975642132022023465737566814573761970197642731254264134227062919581561902193825533674411668873761535579007535364049720852567973012754297466718372417053782305770902925357629481955560739252556426388390299346857618130234512670385143972147285556306833370019903917448895228452280705748652479983435398926746880732407681765503478152151840223760693397235338421628057636821669514508391525402003521620405309661633413161883918222488825481626748528659749090565429724719719111615753734701601310891591005244317352922739717537931591681265630005381300821881213635163894206436015543789102533499208153442035900033308129926875933411549090329934513102168391932302262191687710620938407010815264630660653255614541260606810347629561974626679185569061859106551715911169915227924619840759660565349881127974503755902528413961568994181698001917315322512211590062237944608050379292484255596082975823695192041476295684519645055662163897693334162828437947848410691157729961765544112542874414200823112666564914642660401551332471691724836642411364747641569390745944202246904089082400720787644396697017743946920996421950638901351577060608178837595101769332281494065657958079680728958313339481192295239367206035632059049148476995847283632041020393798573963161720417087192088924625984294001362564303797675671823489573250767771534967557818331018300671586973344076351076602781078280024586467759004307983789471064351436196358972402732817257633450131201815998378315070210849814526483812624137249604499700313026681375175966032556914307932525590231206015365723764853743693384718669211644016312202410584614521455600728588069653685900004654769516481969464815874809648683753035546060547278017600868844270548578699563556138448155042533473869249867980673248327227927102002415573621608245099052402963012020868228967491321939221464168644316349273650495421648883379712969515193708917162741192247295146425477308690159188344006952352248533134740563937762869723257654536157750720997613614769761027083302791059967917720202204553420255565458350413330288496916070658470067329661096758293327753423160171091786902732489599316364939425823938967463114192901677058939246063431772186528845810744938378899642681700979515905362411381570079012781144927612094591381788978393590198160658206463094919106865996633549402125404065150353343129245354012158808667698246979818533644418505152773060671089780471689882019185175019960212490953196637443401406182509833180258806468905569806114017392640267217602100747605159247490605376604489014379908585473324758928327224929371060965063713782913065583880837003651157965215621367486053124640011768408593855019182875336663392483384243024637572489125819729203306001482052653586379931113378483118382544035981995085782031044788887611777079035775817163444644223652717740462578797005260479542716173476720941968352915141976840601223066589512693660363625681330352157191688272162614628720317284319596082566037752969988631513458777762060345925978543100236085182088927832253217308531683079391954841918003093863049370270427876193579194732425686847968678487952592981602759468678955144253410243554145666005010974921648744453716119381814710200549334824286434975149071792465955290467961034552524828945523123110610352226667758573406501494800717229137628545644308601277252410567462356979839360620681373202255718701602648208716206071038664843862615617177186177208017547060525600193284444889954466095431226740137653685187898003711681711657586633448109549653548689873270524010745432380095404637488466311533908813297044736114711161644438399570357139841110616843907225057908698686421031773841732867174572924411745638338352388839836373636494164112483320643986533074708016863797967259390727543132169334095128326204911682080959730692254130482655414967703992632457111813209962156246023504588366854040066936751367125988706708943956031414202010949968406342669700866754636222827772268405014604551249269557693936541947944724457472566262481891876686896679604839162766534535869508415957769921685513475747764655060560224238628774142791567042674317671278283138616650292532500006591345252073326234516168345482035019048639718082936580403129277849646565707472643825212464511773085221167443101919373376997016568823114209470467482069679034090183429703671152792682613571174826913802747385661233129048246555830858692561260865664991066115794144259145761024721594439600489906506622023358334647731224521039847361489800758372946000529415885868537245488841813228020746646021082279052004087794695336748316157580837701005355841745611971155564488206495405831445973232915394242613962082321656583540923763439272627348360191317986535854534050921867156900618396085063502066501046699902978378669173194176812663425075178457829564919062438083553809384194937048395004064525879974116562894110110281251341124122323063357381312649497238817002322458666144058706312889924742009727984685421883035984340484071528654153922391837130063285310143084750729487262881728668665578235777129765256934667570218464558679583300254751759759267255078373201386124697436549733414705323699296378945792975854961599864917908917306343104082790445226019844578472799292387087382837436970745734242371284433775848661128861384008577027451186165166282058634074714534270597709922077166154085832472181244134147195518539002681541338883753362713330624342423357958516596278766949233964675681917607530870160979892949833238414798186638542561381343449665589040202580982617347363265466113680973504770746919534926926290022210301235835961384296441262054214698299937702854965009835799972868869555550554708133527190506407212523654308539382270155645295521085838601838444100557055248865728974758823440236170836352360396611323185880745711036260738413182955550211399893559892597407705177023274569738978325269883263650087189341860156355815254160156327405022573921481840964770601194567709717602458982344218612197951350249545524236785079503236699020091275506928982971854712819956255586978724728520892249786622526339413910847862786030978842290862588442963154737329593039816387357550021907590994814379114867761652744912318302442262792224570800413689212916835850413662326903652043812037944287778316639506503813187357525439816115010719269307180138107694925693198122900066130522673139339209315705700498381129992481205999612719270000952286277274485102249023155774061033604981925468240597890242828694143933632346989248348224085838913109819670359825725959448213511041288271500328491355390916832125182278960962802046020960720485432144981001585877193042508048247708493842459579805975370697415923772890761668309502745616052449993952282258076410186593406640561239480984272658064980078340411644415148279320326709460803830612415146636496026445797413018981171505560980153642612462253742822785965935033840666134359663731700464406911153676114613928943392635696824549805352041343252158927849692559973711939723761797264582878595947364881176396991707945395560458895402018531957954537601028060754784074880818698262792899181809463280083833323905623802620430040073372894942812080895054020422820528613804999627205868571235582935239031742331419912283411832567791463910253059484603804249452790686176689168063009983152250238857134957553152491501893981928084119570192313669841816233716887067445834817819708353672755648262114581325929421089459147242257221046316819765769286777284098630905890413891242696494287908573395062510147166548472031096312585690881992847795887334563219253013560234198345143687558111641132739654514213211732099096071402078257786237881796667048746437645369923669704971932721076284877724567241028724148571254216572991846404080432183400051696528213672742425000080866149306549254351355001287760177258668213049211161028654145374541345790102563487790099125268990385611101503830410013227367212995599657439578715135576319813058915299434717715690490298493782143121749063571632564999157421214903442239878682806904469321736686832205335133219346897470382120346303869856031554677001835661021718566482039118715937163008511558015495808628348383344152984367734654616390043787525707609240209244089771191606637192212244332758407781189179599422039694510986575974056907033715726090904516266789306031607160496217241751745089792447755584848139271366266520410757471842939264283831086330374912098642469195015622570439480293964655935103377812941518865700392444757283220413284386105869961252570191777572306758331493473035672283880996534346809575638135221579825498338685479965245466383090102021462505136443418033659551249708708081748979337171594957844107925463573651669224966631533883660062028122003560771456165030544574519937314263087569866976878546788854869608292062370829937692141014472949056357477299797470099488665395349948883189230863719559110216756762724446460936387391385842946305883540525642562130459304371493973338618935009616205166233061285441733785597605663343125595499140858935061969476750335738650659838795455449544738917118397638600609348203182762825459368649879882330668526709388113048585421583590687950946030298148743780005228546068544752819256074966113401839990807557466268051695878287663879329364695516936536834211518352829720833651526080770937078087919351443989550961002726826682184320283231837369349639247746107510838160792689052755229832440872895672764352179801825145139908305299655907160687711079746786855532043079930899325380452218701777285512818404602898528903952017751600553114107630657997424363767503482020710771975370062206462783950612053302892829320168480547892350084808371377690896935182117375895921353314192286725253369934931741259754292847772066091289190621244509926124912313298041970484535591811716765451203100188326509383576980096411129521768926876049219759235625386696817916738568442135845882757304689038406667564505085395637863429670498344955584401035597098667122478565517057180770332044678681947686603819007126848155487911062339959234604444324840492599210430672268768923808584751561168527160765757426658061730210592097832876671294523632291054737784409090892928245783066214926346332092550374284302697902692410813690119382449586105987272233292658372810360799624425958823003445898945596146987312217838235308769173476956688152743273388063366066236421695795907892300421307937542428238527071815221135781684126764011804185632514116525813120215232969665672788676785192246078939951055731266311848130756661940827660066232060103341681900637599364687608801464228190623519414615063976794774236673364670254523475111577831471197279222508270174939397449059619924761843127289158849321845400584499777607473379685162996530613497207929039611683448239857806459860774439961293103083820792095629354082759438957879207297813413273153303128325362167620759431458147151868041662707253759210834070681947421609719583533186602293262631764575344985366030911544035976939392825191853496893969522049128726474803976215956665005080446937702454096362685483751764841043500400726800265062971806909648069080056895550836398956415336092223070137238523600261759990346078931783381041502883610873450313783019156601453983376857640640491266436777025640797391991231175393145033333928792736099967584863512280517657891695494306759069186918892861691037918819166008874480630252970736982191197445182756876015982073673849791644783794502325188848166726893846338403532624558697537660565017107519450562276801961517812405168805931659000738269469995861304315555664616605589653500439928234302645168278406789410372454847738507164987675809968152999157089269362890096156329768039034253514909729370513837055602686572271895857045973311852121216991328441991375262746237451966608881108790394327656177662058164343714892137543088236723661645518392213505056828014533023478512068155837229040785368545535486199905913842829751581930820436741045664674710533930411140538846321739887859980656654399092949409219378973732858050420709857117258375799242566586733728600899518658396674240067501765469391712995687470397398460843062290918753068472681031777411201825727587176541156648999950302944639899502278944641846445211796058702564460646602129686665599698679507840233951321174478954824977445862949242121479017936949708378226083241882674470889032696406213406678516193082039080394386215030286572123962163104854329951947600947659353429074323879703496774905935305844088078793813609293417346386495483080253544296329676539625424630067844301714768535840112368264380984010441311725029051916773021972085850596520132078179891969266031171454727808280158894292773464240846544157138387537832472123578264060040511730993453844817571855114151117221342758315257356176234667441929332480045876612541446091152509470671793671062956977436591532076151273151236540261325856356271918996577411824942266897031533785446497945538881106068216616325475756451225315519532844055613512188375661626524986004413890730320721870246621377865191515687147262920335850366053338848439486410600492918844868765540572488405909086374519178680697716509254999695998138387331083800587844356800038811040028068931022512846783924956996460485742240679596653751054697824076780480385119772225459339922655339818177896159878398247665531640541621487032873253898600564159275374215762146083301333371161972471493663775491948538166773162885280093034097884263376364990390073605365218725067157478485303286275972853577567933863220654274067538019686880309828491551674515430454651986800888117957401668736927419232531677147191458545597784504100008122212696101102564644229814837043884275852613356078718745034947046846771724673134199102138659149774074314281446479374447984566184258610790034163561032996236573650758315273000117206153207413641015360909575847130548177992629640997214323771202307491268721965343330102917322265934760267018642952379693039724839899061293369234258346859676020812483071217253152271380395712936322274299169756411003663471990657014194962404398981758428115648389329816226126703941557367035185726978415562474586202003060594852767701213233710585554356351887922316157420721122281511518348404294673248159253980534413631725370525166485450125539822736026834336561990101257595555689723741437097210630860162490053518152506348470807496713558736317610677375471383994979912859759637798880340349288743968664921291974102719477529212307539191699561448484939828017196261339795243968976335757777654437937192222190134152578968071764124770289730014383494670308042265753076471791061772517003630021668174400368107864828239828287206591160664413279399132041243108862109592518774365805305690667337087114789724096535345807979713789688774175969653649778857492374457544755333099524020186838307836999230031166963458372049474166009242328285888783120224531747326367107757319274153962732328156830111416504120121406944454662149095245891574852032459240778637212975887980096619691742023330501282678413164452856782317614229842821704947915789130397477738338777558444761861292492139653849157597099922275370677038960545508885088334685704536407988363319018275100055574933310615451567385537558915230751659465555385292643992113656461108223364303344775416288058210456789567272406118694786637405644704017171521073104883831598117896890361865384020581343594422906666236363515779616389775914092689649515623744156309456515024823237115671103867969165171821180535843062148067883190407672688305631876522608371865538157370553904935389835971917298867731068690245113238596049439335084809126317784226599767803203861695991779110289093292314329367541258100797778453895944678609231920903028393452008951524593254688126298766095483334800523548566066721507095312452077251024019014618269995384767878008547467461855454271681929879240935821452114387969260975326391036337848320761079786641503079232000523647832403365003303927953193729991380896958669303605481855435338019373388429313395366598449685735564756783787885221665074032112442901914848217547547701596102198786534817658037396869698967509621301778615116185680278090795922319157851194753394024384615430373964656148867642979596464887008062598230088287081179164037106522953843073394297595697749031101982040892769127416855970245611287428219663715958743318389321379062685673777633088765684462720377504241013561883754682130757790348037394715234923958773890454807096394199191915604892917025275394048379935690186701759995202766634964469833289683330703980202652984996325383049185192686939316991702478195747432282901973379355008621844518556571815601643185281557300932607582632854026213935499458232147966334036063071569097285337305040339054442077635243040783387948428225327631810179357440957244715436787791054610449424857665471951779728346012741154527605951580845820421431844161029637567217703923310189864489533029161870009979681173110788054350007946650655331199808815500744764521105967787412464486617768532102671270591533033828883934001315519304901945552529690167257887162497670167076396746941305784942485363593383479616490977707384176317181398169313963334628745165545882332435533387407697367530343857628599752576727210689046499488074234920648421285780172865744296267636416628296699378497650725528580391067320968377151335207932851616850931807918968601644045684332673512242762508741638465621926787227809877597782825578370577689365224695775527212058643637102352862753860836826849408705705381386008346209029912705169630525538308652419082373639916706650915349401425145002139119020978316660051120066354209701300959386862463437797255222820674479412727982238004926404322482614419083850901651288353802950738923445659014528929538094140194456645797795332808146926834013530138253849275939898932586887534357716415905844616935935839881088405183264099433805824849247049729605204657710612724486041908517251286376062789008081790525526995322888874601277853532151785369646143512773025735631024552817810864704675898346852820258996831369317871412554512589889278670140972319203870966657913462633622860238068846254591971193962176039636771400486445472744276582149528720682869120968687271450405524905803261421433340357289391544105506361355285245826910948057384797780469819526659160982516379475408933367911721751940268509513677884934306975328135637712602945175893160215144189990613680697870600315173452238141483535081025060580192825630409879637493578028386682823240068155417162990416998486390711820259686265817196679472884917936367158638495140725677833123916304884958807996678500509744948335613786850468570660305485210408455860295515354979509189223857164233989814985679118251199606040842497612668914223101511717657145949701154353049484789923551057736207038333551434438784823984925796106208820586305247850969385219879130432130865183561541407690375537081684616451000765647910968479702153267309579162541667419035413673214344432303748664321905877302793775791496724276573227714157403130909786563597944917571169514946005463994825100512319066564484233238415092015634376153837013900415906573998723078148895500967831336493076754096661147845457898849253670255602632433034029310273891000451294670391196010542508470029928630210468663539988561897608783983251480524611218714488013237557053900779666989419953494114361576983103520613369412582777353350616143237376511519779869263943695558407530489093978410031190066358522796144164389762182608300616362815573000359719920795926357774046024270735535293150038129976619370497864069531598145846151504024254511483590137952936576085082024207210598257050387100823679674994612671074799815535697107078395422939499776553032321750423003621594368773281147717912087118201687248990718534581153382258396457693687192917483572300626120580595892503136790571608176614822337166531055808710650340231184213690134495755734101689456034445177840736374917782637099414770052751159258330075799272818173434611284360843428300885475585172486093977353032300505205048931492631377141234387322899656018190636408974154936325979549133655013083859181443329605770054565043490790163642540345486727972494266251060461513881888598476532582749992159327869484110362990945329823025490384604272906396316946121298680525516548273239945666042420476041930288568503349254439594158357395614368988172509748772350181155392283821252981190823793870116858545537149743531792104544121475640169803240526034272423475223011596537386219754685169298025454426056842374532828921964463639272659449210409114934599028543013658567737867211486995804371888595890877667617804668864331909775271962043465871184171543061229403425605054925849647234414435041448086135826810058599658244356411793019836652207365998301741638997571797202644727794700578367339689632000446281665547461309674407215605787576099107971739777779051497048781779186608011862759582635004319863377430257484545384210048730329336640888313192774124530698529330850597774788903723967883122803029946891121657375931814637554648141424503083647634579665176672600073913607924488626281701231503208259230428188368673529726062255211579443901132091311336414844598656379452983138163216331667127095093640624570353386221923961420260876003355171267712940038851100345786858839799769914985161927621692993225716039246823051431579392597173070404009300399481202795145204129744123919788228239310295229975724749976825392421426165629475216513488684187983799053219779763665804002109024627786146862152362180015410632380306423315195653198378614911607576169440101270182189657680595290573619800742866283573192613921710670613134533874560912529211062844059071583026503892281364674092838509269594969502360350423504752817214132274852578671891185824858343381717193039624445061478399419065872393350590812853751234077808637863261593660933695598789463154171686999733578748237751162638121635037619231451319999628369927569892446797103722283017834691194783232718417150799597046186295574157711880903645351768627761789239340646497568182824364737128633826604666133762119069213542163519160572656761776106014028011499704786115389361571241897703781528765652430250415001556752608688718193995447964493771304981241562285847034506363340715018112178711224011748851776071876597316154382877413984673031913654928622530246039538004184576138144229905865634553959263679703592777868623837491996460750383422775902939730091109482718977898509590504559402977619011508629780346287307852286296056940418791239546772794807538853171912054760679116377447833312086351670238677418797216417690609109923975769260895917563933781086578433911922946989957646523088039974717908536888410290809516539321722832064118035336117899598557496316780548456516326320830040686530332397713354477582075251319487425739545958233393750227272998244089392343067037045175289362792350342219396659970552893245260956346415089215143233177438771876492696327594840905594455494596125287968210241126186022424349158841785952685113996086892526614435526936000825889712706611017467158361354276884802023181530648331404629188094695811669039879568262310889792830484284244477590358516315149981944651381208301039341012454918829981859842100845175258103229132296896806849917360487473942323660153227546108834777574643064615378118200932530441684463326610625711848095217935967228940150497669127503699733724852644463397442578507996010620849008371711468650020309293197093633626105338964619985009278367557734214649239740520826656587913007569488838321017288809247809573776018204507573900373915150238045828367445144026323819192507240742636193466710932993690052127823383765917378653239955901932105970781135614607290688526267901085567960310865852381171031632420375989263137514469109810590158076137480410925387524579421983300969848494253898684525325299041293998108703270876225087850854040409189097117425287498435587597869259110649001073511786009822527410744707330514764394566877452595361872043220688118442352209292347335427565529798980305898649081003487969176905066028611791316868619419704057304460527321400438444491537486460247655292486781189546034028803923114983414522470435520427755776787533311267979102705376598369670447715408591968533278424004420119439415184635693955337812992787799388976924268374397571085260851783311098099532563664968309241828723147773957245112408336820808560258262131173245551672877307906510350785309525316224614054667110112463266234798590105872249830343902232465813128563410183261182419733493279361156800836001441414301373574287875338007856313200292511958540962251021137507679815320600118506752803700337100855705479350566088699096315142565278234713870972850692367172479489113125545900235638188686615614945195431960780986834306726470816460615849974800109802419347509748508044235990148582920117303955535265016923097206092739741650710697338522557278116850046369702224279940148856704318372086787091870542794092723631511200460575182856411630417322009464742189085337970316172710359298114152318971539548077412876369047175587349051862569115955268201251460384932230285512638755420808412091262880413329501814934909330443618763018451031120662159942466634554504209318389212394103478487937762073047215445066081007638751765685367692316230911642416283309786168186092737211303301327555713520584539899793818296170131910687737967170734332576895445370595884192508283414891187391379188186290249484080993336684479899686140354562513607871163353570176114636189975884629553395317668726354411362030152963449087340910868339874009933824951867642578533824661408076977305754511088314982301283350527066196384941148626449721159144019969484080499026712487470892078003605972784002763043625647213631338589664870135718191902534442427103439334127573862674794324709252985833504443331475909675211952182610523902658937013846770155088097252549935416586825663035127624481834987370849452546358642216873878916215463968571091435350823931921003500690464775513050888537087488707627486348250072532836617352602336496063173541501587891970899138218802334703994459434330878294371008500065745784307935013696777100096900498486925532523342108555451701929722585529959184222991762315155524574537375098611545593240623038639386178413633098154654180985567605622898592231923598214242459557420536777930224932148776482876808073471292865047321244296431356252620207610707185036692794435333013442673984158834049258095985180900250051916933262337791191271815355692216379705930081810891110575464361617736456238409848827580201562213505572344662859729814666272967998433161296551547682961437533310685140878029408725287865487433657902844486718199112914411793020533970046440485100996382288287658798771819797313894539969698952430765457632813649068000160699401785597963756774407337838618242429556384683631836045422594834590055983516484116149109219837143490021901744147731403397936548253759924900548463307232041925306801832217966070675333185691309044545241783672085972019679702522011397472315427500793992385354307105350886967152921886384058122831286219480473128333792828151667551828403328735419710486634519245555630084406710081228481787385109945900937942141690103490406767895282720121477617501422548926733298444888805514097857521502297069482145687938298754162648515223301449227721408849091464339414994810164047210366731084501815941253658303266843404721087445209253644015443169941171457809344334500609075538467814663786857341956841188358180548802202855111512652685205628636385057288903833338780920456849898160563619710128788536540503471723313372687205271373179518152453359310925647249446720242367364693932351337322806589207568019022497154985197236757693692166651707514989911601739810350241321925396492066130567115403441179116643812340218531418672520112016355300252089487245246993372766383879745760338524745475012319492795519649365667421735439280253557472883259510330196499776574942192764337349009465158206931236619286421844154673230370149408738678855338049801546544158221279959283975846136770485630201071371887858019476421153879232763669160970960478259382634903150336514725818744475733157839498225473666110464488571456170822517212345390885546685163554793798430132264231309392619200199975746629297889230448626757945534496652816139338142464174460265484830879709780659139967600885863330793876630641892191169962655066080575959135764078388926237893029957389586226281739698085508558094331542846035689759469332108001948565512416316586170038208640840224115704356338310335750383599487431845455720116007722698476370773500637672691891715685733164195404521593768721488127525709622851531675374016236761793934834054828428302047522329630149592680553913831089369447276130806688382463439777040713340029154261640031233592180335164347085504316727653312428552703867346708205861549893852930690722232587668927480365773519300348709771780268773269560109399746763050851512135739688837388994050972920484561124652018671584478339909156586089939495674653775034033747509545203338809390535062135141212551143108440724185144369390187769657559413117687499383425544712422431302854765693065367020128775765987130650634391249945285301814019206209226537702335941149135118848203946099955924138419971365114147013686382176489568657850897523483030504692021856428558989701313243761013398517266515352372443527292798939647595269262419660850397067575105162718086399190712536825149243999006618493741669669839226192957551389756678615806264089621703813556809152862117596042899766302070947195394509118726757003343139130286540512152982523511755298571991656414087093746563244908728157166138425682477575124054424575627445673941845741758273758185224828347158090080159327572740139662529800357591348383865426873575857574669975310743460143214283597786258293586151448960346568311763273639831492621275864418810713853374393145407651990091295057105568674725178047175262161339911457276316803624583740179975048518693781655160145286167253180866292359558226348937035349598861589956841886525626362505597983259020144464763246842272001973951823995470628935766321858696465775601325431454896384444498859005384395426853363188134386960151661708531195279245510733667219255974127092427599247168719045477114487320747947626031850221169488639686157975282196497527099497514575348822731738366489324590316923648503175823775731635351702077222890561472911022989826401083220574932054146819950482220300731726019977214959490821759637559243797299671827888020807426249714577027110902450086480847003251368387590702253727209799082972529813745168230941565291524815870425459852352452710605716438089894428747238452741126538082081301149771966779935624545829979883295486864195956072427760989286246715908331438482850242143238449543707061774783088398748866698233370814949038843818418723878481616217667299577411478278432485870247255561621398036712962132964607303912186214907770582231827739871796903919353096234230830737373796303542058637530980835262270963277366825188963163445671936244980438104059915716491123147812289430139101287324954717524976603996141684242446128044263090958890736076446082647118209634159358903959538035882453251246752672115078559773910453955620505399518318281964671123493340833949183749506275470453000127203882799802441702561332149685023001403929864431097758047007740775610989807824025029090107021470946014643855657879122239243717069375731571551737051460031285786706200175258499703798398822559446061926977604975097304266862863747354031072660180549162450994826728035123126905577624276359798988423477738711047376990861695922957024395321323391492726956740238594578785081099758456260195562657755814616444464021356858689837437988206378748244048284896456439716248191365435180573360267503061557134713313546974238234882846088365794382588201608256415679179126469264296843194838427707130455221849665203762653959859827450507521076094946821789577502100711089708131440141597044703970156438182164944199534294927737050406346538465457442115411179017233589122474280911328288297916364891691659517918714773430229571616786414926531815459100755807915698417157196935395449398888804599656320949238962679807611253789517696793682563318702044906961109978860867802594434605721191380508137960587717175489570840517362058851270875831561996053930984228625061821484586355399030549822353408071794749451459481343289570065929302742805796516651273455977202507666765349862093937233115321012283576380931925832239522726407183624365267485811405956854551931145002946663593560250180743867447656219075997000218793886031395239232295151419244120068058715049065091234879210027768373105743812260681774208019059930916892071952214846441421367154516114431039320537988511899116064279031456070482608794593274326124141476450598858731595932880128559232378510315888323240502962742646332865248895178910080004699252184662647727331597367283534424727678183801207188228539193362642291535516855447961886535493990965587877715677675020783407676788026596500405485644286719905672590301248984416749992102135120862226391149732764960352294711481342641976650685450931922709380352217204248696209944660755646117858030275045582845115844935029713667277701210556150932978965169711258005842877228319466060970320889416100000669207260821922391016188823325823052568962152898016584240587820523615688537324602683307780596198709733345811609088725685205911540349595417787557963508616737033241403286097684985873992680309167024797108564683174231757728788482511560821038014733326616054334251250767256735813273789358346907569702008557495965617409281930174974677793199705296423199270700699213969952609667753585330954856931850131830575337779888083390926821326427130177235593866241355222608263815516154718308369296639997452426095356385763275031249977523225481627256888845885226148810820672924451996437132600739327834752692610489224892054024685786158017791418550163541562547884507735423530456948336458912045225496090284401263085098977882265656872703641704997121952278107125914918085795081260553831592053419357066683204141542135253294048983635880028967113806036306065069547875903395663583329940456427598524667233927022051890352550886919927211583113636877377832270860933538460783834649250599906346907242014343205549009697392537726466534301561601170522695642437485265410536870947954890094189975563411440147162843383669278934360033332505533160119517920022691269765078725834063329063621666018123749499700689218084158269618022560466811127604806068659014737993899641733815306960877119174298871394681005838756361367503695485769785850519365359730874653767585786931945373169093882827671683234626925434145944985302310134911573580867696844326097864320092129809597987828309870087464654188513625720655769284457080656705977539143116334727012994809315114798463924874737531069573488063074936458600717794571250667611584045081622457596817682123705503838733925997216828168331567499895827411617768049099950556058238936354927909644604424483830398046760203298168641726096446768864493037354850599062118141590349461413800214662787408936642984593965309201233467716020838876663165325791601439154236333668171598466378124074122471950458475876702524227115145773731435229153884751153931901504319932121615241712090942524614711553370834693443950236016455609073635089108096563793347993225106118498760915683668611810626004103795314457567377342014645874399641922626244051061616281695578300464303113129774934617948927618693939999160686865123418526561058871414792841812622309148038522995618267728802049554212737994172406568045717144928346547654740409656009850641853239959174829590746565180191627448550347270988219777549246888255521992444383915285275949779197426947666582966922011197238290667951091663163879601429669655936198465480335398564627478841752976548440970040118806770948871825597194554062494816735201998821590092141541229955410423157210948760420381919455593285904545114493915741801032872058289686752485551188476967533588239202107046543144647817528041886329522701899304552797628142493326905634746112245691268294279609177073405932740478436328980720910743982252517844465625546008257195775360287988421831452196138922620179660314322912996603823428669798813802083854016697061951630229003669102901076990005197636856055126195420936923540133815241018347278520592396326617357605057743804496633460504170686598559551026883054933660038545748658648071825390873124812254302826211081811122776204511990225366538017701291277081811736151964570174079021569987877979093968250203717921127853899107687763210143036052124632556916819348340096223980947799158083571526050425542678458183721390861963928324641430836789345889287805868091785296340716291956742824227502369507462124126400246221982143270405845074025374794791314711687956361380580659945744445989702293169610308773359095764073859634735264777318048973388127356775917368369298042240971803341579501846026018336841587078887118395109720724070955247977146689168874023720425624515978760331077214692092871126323767822798894862003665355258322394756525249728877719228243801942603607525710747234664242082292984101175042274443565969229624887918417289440097070389967517582541129947551086441814405666945085255549021672129528379994237949859589749052008855021618565768642023257713972329805963095727196335035110026849030060318936785954371704824143565915646484870439205542859851373362801328448716870834611701427735024695484721417212665412210887201844567567516828570150629472228109650920024071808888009426423659943745972022716939422015495719806627471852098530215628110883563549040525190886889289726938854082702598450774501969001530961948164952675650852045391527404198531899601716553500807551523395803381559384244060687817271893683126862465994988614488616673772516225276789727220689688718481615701834767524827363506571672189576808709364869661821009933231683872551630672701542047039912383374206329805748730384071327863573859753745132726169403853597043736631835914339651465264144330180220069673183947926900347633918879849255854319317851527005063659797961336369980917385519784936171662835216021315098431813239560928999141876277573720787842415134789424383593723606074423193602560739840042658674668934654578245807813677919499680672937040048143749660444743605186523972263356070355339697944313227262701472681797479693305213588725076110343765343678037863839840356566312782603981189303458537786180866153209962024138299518085027878212297081667906966893748458817301647006364700993741342097397956088402092846435356915639315417890260269042444587079477999451992450648768916257521193201000115945779292106343346492946507348205192760511745964475797608920741214495761514175992178283600254055370710886489818976227229948751445247152484837344293524853210042847892970887669526920496762158962519019509064805321795054395988049911435290751354616595665313837383882189889617764580138899018203446491711836063452801203292491083569040876620440664757591200731712882203400327962200396312020277687580469073468760144730716769223971646916158009730773736196025289231909544332793515313438657419765860520668655319263122165525119040873905039504361561230214950065499613497765586815186152716935754241404612347956042385774862437150462773142235349428428391305352492884864053029888180134163146444652863053444398183595408658795832389759550709955485275924534311353493616569696212322945843247931396980012676508215614603262659514263186402979775148113825134850817143154468734822902931297995053630322791837837466672264161165172301012513414560610085835237418646209757671020960392554950665902536431768364323730340685689399823137088393141923190022480238764382911099062293614135487478107082691061780092516859869108932575491560379907236888590493531229200758738763595631164419427067503256351909996308429684925470930293653732708659895040564130740148244851574341419912838926714657316230354912060588218242980779894321655125782572830488110508143281404331291435576246969731245519516872276462867581497324340267981127792220384051513847668908461185204761900851008674548086892242250521939921403509030262349499872107718702761207713615038521823296589866067748690808995824223373137811860398957724658070319627144933161411860279283960804302771265821742999663407075985122601325752937007211667592861542239337196535247272988043728647329481797237799231108442957681129405035869476074759393619260538786745581819118545031768890666170351267072718523893265624266124228957598197639823438325106356587252077668554823852443510740780477244634166119433298582583329771501678097174242378820811080091415670991163204782480922334153636710196069943733051087573052074449891378680423061955539387201346424084764840461128706461164991690117911921642842040078486155268778219699065174418333975107149713065240661279557651877332854311834314990628989929918527182392075159835048881700734192022737820758011489228362477997912158546156355236244335525112103919793752578924522232914867845792357200066925112934937889463239350939965248580453022947348774347271789810221208459499352713912222090871091387447730882639585287824396694214353057227708031905382357189884162354992239349189742703989997744420853055914102665607894844880322668409669881196288553508951037180008271187265565052308918202309688140786327036402443681249102519575168306297222546279900530592165484383006276903113586798482819229711209732192262295306451441800708198074897692982619567820059606259275763022537488003984277351209813252105240193598353150082940648950270989311799603846353509002771361677547252233752745688734832935107983589523707371077511360129962749000670251322461653937439603161258253213707238971922377523889673264514771579017848186968663262624411596809111361347034968147398804633797753669880427780224698409674659963789056055007107280562809321244075670469947181745498245218729534670280481356051073047606261432178452562308828236097499418995994739535825281066045173559509979270984612528209752620139383225473808579920697752582356761359529052855810130956722628876495686690733956077886732393246908381821056788613523872012710211867205442267104427740149580077983282863200960464309804438036718884474552653372633220461053239738232576415863463818392327670321873993992486479501406127084615842063839663800311864329136391658606441408049591314995178721610514283840788801868948565573190563633423622895760529806814326320995306481998344976671702069538918705467126398104852499405188861445462231211436041770895954968293856905789175720324329855900753331243538220791160081695010789361235825322331956282219573496949665928425705190323355579752020513862603300820577171714950552503797478865368127461843173348154176518074782529684145637610896957059750115546278180988073854462876912956347927382819443853609970420018283528721348204491417957127830280934894684624155655982105882853043107534390832403146571323367259709524797982410407272128852764821587709265077374879582276332654081121547337229746544733613854117957968038639998435879327110153440832212220970176319129620017393641591754342191199724284756946733906744257805360251066496108264270230432076051846280809874501694267529434539636322172636284847360073287179608590506208533144400654391179087597917816450725913351368015761805371770720581588611315661454335479831800719329056785149346291488734212535954741255011739571474908864378161489025024186446913038195886353065829957024394742054801166597726466561398895872755521513689858788064982851383380612884050515279490121068685651204068435939751313665098235295248809867869294578893326650618284308644945312531502833974974542298972397276260808410078816734469791727289476696248340781539336911529641279911445109452865626241842353964178219827179566840246831390371279678522476400297674349375119967331034647196766369104047097529330860337305422986278969511680767624647311196633206429476062958658674885526838496171905246531784962526370145496806451137056431049985288193076220463144569412268277903436860027150391942321216260064429307366606710977427617231001861626013870031292551542743179672840166028351470774029407020106602583659415971920236048166274037800552674756083185091993965698855370403502122344596024815216994213776815966278190093531948997415634094966404429364252304064032491291896808733338456144797051041455140321578836821614948296707679908194660728201210624270666201916975446338534583323666583990210592197929896037017650416780846854086122393134726703660381889810330802785815417740928264063717647875278386400446428396472015619688699103925247034000959560573478868295949237820799624285985045048115350717742260021527374760371781874842777213789536373299399210715330727962079627587374130953766994000737298325507687999957140364378992996832909319642503533093019845743004935824062644435132133707059094237914327575015237049529418762977660919313149888575994567862248142059764507952753411902669064425203061342905276280438228416359278501711045527909555545716016135896258553013415250521470606850382323293033700559878423794489855889078870064509424271414378314398710756079698073992527609582470665853358520993004447363531226306361000485977231191157041030215824032405356561116826806126246338093684795613617241216372637649590990832074165888423171010917434501991718914629298556794294779455587777097157787046115471315681880885828018979898328741690614202946014757182646168336886843095020145879255581917472101553631205118493951643720752622998055748457718561520358967148274277729798570136631131022543329106793858347951853731983422650462061293970834583335929181768441343671877428709131769997900175053119240653715248383017016696073839681928130240406622039933690906816968191849337132373978345706927786677528256029640201469237114173106715657914717959253372729082114563811403741957095203834893254985504569002414656853205959441923403617660886564107650478694036527276579182211554203289932368118874570840540465769685878031669379961157173639117944156225728169545979150068678854281905352802905908439811746158929991861787847887637784241739119971282275908779439376433381167426914492509423460803672524201097575588802023264934726416829499069421951668917057315049872669607245337931563469615843032499784111830601574322505554280147874495731671566524769194782078194699745786066790801924236194034552663708513640578983694967726714056992079384398655342040659131405474246526949878948397548728279602718319808313179034829208297331865942475641340937121047427102900985892373981301761502124653452417359763903649369221168696541843031585118090591659334020893562439450375989332643292992305154238731312911524444483006113658057661332867644033002929347470478667363297696092235612325298394513282359843392986452490508500044303908305438089097147869994556438268791545708184851504104838804935273425187776096272917466333354006001676220788070075434594818353481385650209559856404878518021464031848388025381829483642787144887784204062913631353698896331763705068763613532101625045695348712712074881350338414295172593919907567834385230570568606316624321836661655626689960468078293993661517660361423496869745830094393536723572216141601910367859588035992617012010661543879408400076191027837888177150891287520584227789569073823148950202746711207149000892136112524429951133493132524311004699853159873018279403466973503344634062651034764302099768852505344731554246461039135967249538076056773391812176285991716636478893350151782376847604158687471652057224920559402650677039643159794864291901786586247716093100365635343086536947624562430294726823987075431292963521731977360385316637020869045831665488319810773712475944921789128369148491376452753874036395473395447533114239662818872645762677310151950858266882656961574949246494469580120336708221587610345108296535466418538412835441332777515205069521735520071764652488919532793799989665963502138043891561474619094864812441913054905401579676502509123431990928126569131382743310963556524452437163720769832319571048802769636116198052438149738058441210394849048445869514457976351919092534875673797531214447706261310372207336111032055252046123123722797204589806024882791499415085654167596152906087699641679961363990566362718268021036907094184515011034717795430694106365958265226998007042017698377412394512471061349338544766784702252178364043770986951077810067773094828693720160411451580592214557229345246371646645835490222686955903469685749764789224555312039739381247991754383971211073241784782966090379492943093707854796385365791367049922131064839483297819655624237516787820140079275644597902728935468358241577185363802108858956003557955856962029622166339352434265259632274272608291433829139573153373595204915288287391739426320356253412669257476430833363564800409352675344762819353529404329700316545229708165789929655309017331424594860417123451989486170367139341241702080844290266518909748294189256481376352815691527798040014281726063553325622701962661171225078648974111342697022171309969383225052681995185862914874355752896443549154290365209945965160026816258410548108468089109058968122989643630300781492775694461589227928767835125042462579407981506448366318277343679315226235330533427589731998006869638966468220904623185919896576500123473014579913447012504554075316964652825989359315405588608142877371384555677491138021961188622783164525659847256102141860665135313115917992840695112840720293503653021988357071194745407820856416904077459893263423222924377476737771249607849766872044970407000148873277497174581608277042693987728745220186452328999167815802159136756288515873822004353742368311891360247458467629033645197471326113588100278121431734300572769054086043738058095521374374642579291072507864110046338916457425355007150415780204379224642764045295286097859966704960222797007674882452362287265847738049804573734996404934078891442760715630570303712011556559180287785714855215664164202048484550563563296274828168469698175644797158019166691461711766259139538715205039533207956958511091707980555518377962574561123450490904359414127665928852096903405956331003703962054849519668482642028802896469336336708400241925595369285435160744111886760873533476464888889209330555630519113271227987589036971059894843646511325863460471226265531161747801842343806307921688546864929893897025421670695811611712602472824791971686863255807385155947945113025212421994040521406597286066254256058432250937905113249868823090001615209465685504475491462859671286991513014302150917850418270769277838750652712520894381269870273820787748250131335714441150457855370532562463577234067134926473958745993394327685825262733155130478333608939904307515775677877244219156447763149488143431173541023536167507805967705774554101494888217883160082543170926402601594343404510773401921231319119182275405601098345322950124673872459292554404488850070464926301019861343901356155666780657560682528364958096706169470925849247197023230861393921278523387411594921660266120743106528288407952890306063766956905729073441480984405540613428629399599379929951644182821409930003973905345102547610490034731800753023546288123719314907416071667896282681298605594585049065818960139393820877301108848717261104087292446724435708948039657490607549006464265932143161038094846787640724732618982919046032118129892134591003220356032212573938349511341299723105099192272269431440459539429509570180684497102317327396641579353265312942337062211630762654692080016093674019537660525410839008236229934623006482996640042483403962454840285262375493880109301531291509643969978928716329605857264127535209863246706786174209077640541205658673830373430799242329851041711423313450632807163714413800709246216438335655697799678229836082011676338546125638990441995131037809964747330594201040065525917374971306083095867924167941715533967394909421684585876234528836345694878890490995903142612262834795142363341652463734798116725987209696878468821257911821546214555176980698287694247527128356414956626003457812931646354225116267867291227837728333994119789820194289530789123747767980963101099843794055526400246608698966440976904881100710656551152276941128727532900649228889624824487509935436089437760234455495517927465302042620712377527338580414819430853798093198164674581666321319506513092220101548177118378802424610044394675586753966611377450807106218754014039552399261990038558921619997160084930989277614035045574549490754546796939362110659380087983341612018118882069467025987639081980209013782987525570618112722477099845356824182719143988139270720031652064457030213914231944846294638932907426596426938899292174160572211293032712342943138389677111961110857987571829060531522886887766884682411601385752343577943935597012536406544056787783443786510602529063297380243571703713284161057852638646017133544847997850827155682475536113819141464242966194331876823316564904799094090399763437001668113960890175627432724797205762188876846077112917639389281708332704397622985725093882058797496772208296574252983898914186045294301219228096328032649111845118789948120604341516425588615757058898810457557350278632081465111893045971342722534007770913633166119639622644316262017732521069328765610612259217439438451547783871925971165550405653378888767399242703834257958356388100006760042343095104855355691914254409346717839732504449682248531386406718138292347394639408830670883753859636354309926478999524710532057345815306534630378734640545647326992868354911398070832094253157636733828862467735015885949731184516041063473624465801050929962307578765110714966074892831064077427688413190178582703911230320601959202934246193780854164490925343104765047276764616158832386951630277018335613809326715560380766090473968366164539972271699793468504585186144011134943203298587362879812353367450525189563504907644121909065671346726046582762927672752588431464684240494197811998294594195359535001894482255527193518094847100140325770972267497749054915235830735322234029138941118989664171278590828145236820295784021154757160635904488346804195857837249355371514790645688877659711043269452699974265516397050574934333838207408270736046272932964268578512501288001870515485707951683538706398081323230333259410032919989949868428465920443517892145507106136879729415909379554634037932801642245069732222679753268308531469354037840624533959844377233034605894503671203398245298056113458750790280887369063115932305581025320506485650091085821468414967799348330658821888878378223210219030898956364818698828335444056262488141070271736069149172744112320564608634240775945849402479835303759891085135190255275269546153318257120903992922467016226169735866291014420007246597295897301525987842493144640007442203322153943308456492533975608334036201560032489234927064091322892872366386452735859640475080602534794186797701189390397712813821938320868837646359271138998234005159857000237867837075627395022450504296929814211938988366332502361044799824536744890250621396981951116123021528302451962749568678724895260731351848752234611078403330293991523680132110515360690837030237683019097413717270383802584844966893178259753091224692898098743401195713789200209906666571512506354493361724957428941350339834963917744757759276004585071395414271842863831003613683655045827179482900514268258978381815918106101608677454584074052091255869086983043010130503004988508487579709129286693307583447949414531598129158344876327667386086131687512392986088262968797134897382183198072804511322442307044803881581119240510347944740697635729819735386229045611690601896132420563637830871101852134855621691036406718300957733718192701869052383091412411564901218507344472149266541310271240122074522577468857019851142689332327759235451465774837316076763668601069116267317011127014454672842502627191689295496292217022903168416178675266000382019093106281208914398120714980075455634458146112093657599952177289935605760616037510301003025383449425974036887778560931872047034801743021411541640067866925806781284338315693563609660199348990159910957396512090001409731398545523604190223896621450568915466929243776801009513035371536913371922066804729253695142655202699611724133083947245488238519909975975837583861878392428083311038324952105745026743406861622648473143600292809912748497086632571092198282504342811496223378258345845579129540176632458877855293665229129517811387023533084221872161960663764319956663051899040923017024911705738370783277061594377653398868311117040254857703679853933179737415476485384049544907713126497774222217818519676895439927986143448057618663055225337568032726089840011466717159369499218699676667262030552494433515664372960982420769567237099226848892285373774123966673513981853389780133942211847583052415475742172344485758525738365194402806125700398611132526486444172301963666990909215738337976228048955969425699568220082894518289493966383405660376638677694045633953925616598120496388632112160943879230131523393233819283649870573577178864162669183763381116322479469913618825639803483096046851023475363716545121017722484550011734579602212876157257399755874701518465011563509924204994198705634050071721373672354902371538896456608624135187051012318138170775468890473513062550660246571276035781990226017205991072828134613258260427248475093274568331548486602660027067746860844136762163445039993393457918747244957883385797763761278603854961206894710249759536935450492817301311748424151895939557061782150468482593590931978627946715870412921086709045480078042119559150438447132706829785468007602481039596760949858071613321737644286273101131736391941151100146709048016570924768363364505803726176720423759851920053334757698377438535096208851621562616724036394598695516251698642444830778361927822036981538772939625396589077172998397136408357632877681697315496318747184554609720653487968351114060748784286743683240649318051567127941477100984214492032435280364071841020606623163707601853225511858267285779598868026176455889726275823630224487944776578912226623985327233340457118057023467241949811847678427325009196539483846713923937129848007657215522899988577632477341810458145859394706922552699709193764634277222478943493548506692744661892294093415928759986077414790210716198192158733831473664293544728711127115250322622981232986821151832795469857115537971075232469568893386519899039580713793158849937407058612247335008082893750731127017900360706091242840047818840925055312757148441223826056988468165375887586931894879009132073076268592616709277893902800172179167645280817689173667922883692109847446480918986299589344712915286416071436968636102777443157043192960144375042113866731940258291021853707378886539015338109141972908029716600904870826607924586498531080255127546528834243063210813776833575716301569215412884116334181918340619258193596634208410349435640547572804520858674740232064135529345391043778235292047759683183514960322612837594175361255611425540437411288016605369023104712938876900037942308448811940204880990226595122337542406324635967404938227344444783332537048043393551264422217423878715535841101660134166881916531373596073222858044730412779854346529178609392710611355612451020991296125561275345770140278256484138987975456724218811750128011976625060799262540394199497255074056724791166701606544543525270726496494949456110257105903882092806865525427452440815068752203246518751593085428123552018319672959952385992696514264713811612453046418140064905451562394682872887615853298998687258604812118009755487427515548065075405930477769562844306232727346775542105753007352406883567137155496190191670500754840252900841146208599545386195519836383638050688561162449364368743468856962999112877719168127215710500606991458198171770901340991646548431709897300354444924103943522968736418265356004355456960425433475110915076257510126923073574927707849663655168829791505609889606317691878878079920252369003816184624065238457324462412967417954769164926322669296763243840643173174595502524068169632101768723454778534005032352113891915078629215742898940158052944713059362725820455194942767995289635036851168350555644911244724619473085947605830817706358729515395221805045710054378481341474402396085650783041797162155200669387962471645961575284306796570560433506124062740502011587135289982203172411561606799992668045055643242711599363626542752267742979991219992504521885404072281270566042492703112142669140761746241106841480318993924407994326369893882734492892892796314101931681420097076289369096902043384572677957324010181815800523996334060814203613450991085760546081041420476358573643616632852044903251521498699573843176309904586621424972777249412930680195414155284533539226678526194870319047646166180634450537002537762872567790293060344858371424067821117134423972611843138463679321891926619883677703871807321024468889221913302713916406820436064836060304920436173420227454424050368140017778764241249514020782440270767808700366322998547949517797869621593428495760782805112116435608440643315816857643716373083602731843375558904498213262589466064547548122171104994267419564845573367858442163372734643480999061645565427944649435933215166258637506521764696656799596117209021681255028235260653908066856837862455534607115419260748442165568733049738502625460447821773557217614624129941916829031294526846834099020919165943135988454374020577467866901074739810940655088807065261694978104649642328115745992140190664577225158365767377600191924735438180007501408357919890008217418864760309001214275997674988745957978706804582409190428830644248685756766498245078700809455813392876736910099669339194895091967018976779966351148806759734632857522784074693436752430081078537410200782468884989817179075642629983419203323616713912435517996982145578276388883086748038337350382986911654553441357173790936765784637223945571950037886275992935278058832898196523181664737932747893009921931586670801453177449552653953965572804007313278794826737300798669555779515223769750211356694883444001298935151265303198775370018998548039972488349227534986950642896365898948055086489418186178325297037039210043730832697183835501116562209167060968266832916558746084151178040959958239926925192078429518776611420363132801114197449166772255795624972623393569520893235605426449093916968648948140144561549016845353659922110646100635692064958169493552814371363098018626789327762680752749625803461404153364515112012938775826975571196557196061783784375961318044315769257123152494970574015846952824103809610347979163794206747715699908731019376412300634831531531948772338634448068293870804091622683495738956871792194645308095758469745166322523516702742575719094712324981202808403026593385243659986954232684657982130895967290707718214836488824829182986475012028844147987699626366319742997603132011618529067043444761321454268485700499835708592830765200883813856218825546031759301135551163691720243684037075600387544749479478606841680996300074104793309077437451712108214670057129594536666496193498731923515704394381788608771302433126901461859069573526452597815952782724653248122549297056042255335120738498342477742277925719912516944544070231986752894101573636279380702355583009662368185434831029167066972078718672734463329634595063842334170091142112931063243848412676523512480426903870982320412083375065592868104350320762988657463108242652348371946298886926044443056544285828837605541241860043145403486699155294515283217745394643075330758361843041739425105658684101817421488286332179834640166666743747313122558077741232914289178207833231496130489762946460621825389224518873379054614986904809358524468725483296316280015160790852137351791274331600538386245646479457475133431538992050801839871416630833365599740184707962156035508256866553328532591868696296148812570404939752606313678407801798800684239408385657325616301553250856615480404283211117155897499892442177781456533030673190745190384865814297285047000057992354682441744429769785892535259205918265268112188013244112752812982654183997027600005060045025792641372345414435462867025183361930641799440209820918905198345379495232897647427863482197506237403725867089927549083472542171098022746847767813595554233156153826620474098434166927522625172564565837787516214191935582356759102290977398132549347066887209772065373710250847252949639368939871258803278808338541584025497912940138807242451887313688555730833915357170526763923807202280243436944894952693524029478888040246811531678073824855268424651296748783680613969356430176907824875574001891412484239768399650037109568181476933052904224008448729218903107612651375325970933580227549626187721442979558428513381683287884276261425466516089946455523288085569102988818762005059709600528473268471522816382536991063713910914001184817761465746703709535447734892942165405423679389418881961874575848626493859881018853455695492810285468447002887391955732534690377529373492296533309986805538376914869141215657818736068606307508053412302050177956454599833138156261763668667290361512273486404045960251102912251355933422619727111820373235158735485276644886770640157515491242672892647819305653038627340775217154754676610701385890389332541670933376493009883371421075578684925086989091952199674832180087021223483161194858066006846555604628140694806003910196329203918714370415445835695707250149832390704101601985123471664852525443579333637925419244954055671370218610438933507196139068647426350549341599152568756459314767892538547578800051959007623659791969205151874040764234169382618138015724170884405287609958886212259476406780052192452691361413854368805832777610825319032427768341637177807960740535614915811174722524651279367896737575753868009297736609804704550049646104553780530748644524288270892623984057120752734472202598703658800306953357099205756152499271376720800431545944611419354796342089838241517925117521957762886063465675563553098809068015661609657672725024305033447938631620264286893065571453430686615558464961480824966679472548245954543831906221995327385336140033847672323775744848978551976733489377696040493617921309772541168854160493580007401679092100255951898720545201910087922739628924846421367863710649197221439303575625544421481255556881419999800950618159516242319409776374832842835258174158671822819801890315129989663571268112715270431703262280039345825663906992250306060101250260352993884944982500494132462709328379143869880819376928647371481888553423237179853995734728111841790329895298160851878152941687522772449662269505259637966690876135693855173687100919856270491527683654649428938809272935325246908796762304011857979260949252411491654396633214155388428768170828465078284786919378473108608529850213888427354933448653424448781769449058232163022092696397026181068962465060574561848424704212533599301605802704635672812082704513567018250697764940185201350577757891659276399088309813241425294924270246389100919280009401417321407915512112126129932945217574294078024541409733711538155290083762555700701200545290797641755267746377896143328022676487052517712287534740838939293821535504477885256064569257046272490051795482587522880610834647793498693649264026617085097764450326211307298129582758835691173482479113512306115264050833757660969450325293436880745067654798380025868734677492458833386773678152196322881998353423039552367814596202676259347536381299324692813479259355912479852063416845317527749413334724851339203389707407553562106877371579146156036740849761192738465513889088347712493116203628976159422499358493978247283361871050645837771672704590208344880853143963633221125642892808334688991187640568854713641466286574117021170527630656316898451437701487290833046162705625559819719556784000628708045921448622736973369303537757321870755179175119847399306471101423688847349794897658659751269364570474054276370012385662507361033035163984340103052423609670366444779116809158177208989060579555302529342037271495365550305471883073194257209831859208797369605858328185578779894077797261401368985617604132699416035132041168285719800525396994215110338380401877428410905300087528826476362721690803024951120487039497006700747158114269424345373155311269580198747537395542695363004628593575346050105111666861692957740331206068373815903190560145276861111345556958389989974717168317801339518120607642893670085009669582708795986597812508672841585463143991534597221837546470644428092873958161434364784852830771972123711231430491667309410883480398213278676544689083490067393550554826718463392000045633319980193927438701801339205258278838840436666699795248971392182813107201405341399874320282667421188148766664054138851707761536729540909655566243891760821316701611225207606654542147403862171310446924722535317410074832256110908258615264656153951264335700574775638638293624846679248790445338303597827611651878047623029450485780772937600428034899806181708895198275636181052899554238803435281114254129323064488641399029877843579510891394374071540073925893930581489011614871356167552180488707172546967865740558447439615686924660816207434504895302923500554723630524743253409820936185084399910559883929846621947858602571951832565414682465515960619599663142495966211644407086342842834295378123412871721019828259161690607544604868381398068117915938512015215273398257196455464008917192599208509350691675106380593295452610629050978757268765738303305046778781558073191304828165949460013654744080891555460530336997615855990323445110174015736219865166415958055160293577985822486562293938732742437650243161986323474293751505281693094367115612734319054165971841703341019068790266844287410686126534657309219270677125004419212728096731586665836120089830563529308014478004257837382123845417781732171389160189468867143405289372054414164048717207704820458947918164385943369702271731863752873078641628714140976020170245671425217628895977442707032406144419722854838258828804488953314539468039300876146279411314574315343500252667685311323959835433346710211864610191683740023033491062123378235023870553973253966304037044635037590927342518283696834241215074514370493409988431166756945251540801535201000924161011643505052616924769273238142450307044315438619424747884501277613302246007979956847158830977592526313774790233640760044773570897527061294241963437498771647288220069709309474520542158706199069200245896643328284447679389518620109966864149302686617001193779952332613365495383487295485383389290153512052127174255723888171467658410995302854313288411725185146689783255420922384225491688587400918189749525003091111171741859168225721741415063424266012390953776470362866181029180939074170009035522472371984448503513610393828887130058800844019638049469022606716974521426761522292499036521588670185351182276124922029954369333024918933172202004501580301092800281391500712410139642592881263486460122133269329670698066987695866773415860881874674319106598005477044447352150943767760473370655498849702255560185619877806956004115507941887480899341068001196705751610953754668215724806558701285162333906569933427319371765802667032317467719859106949602731723840251665582187562253377379838029677385840923382418450776034859522236740005413997500752877882727289978225192048585735647163480594018624826551262636930202054493441065625598194800481596734437057806193032592909222575705263543573460993602940177878539033453779431423770537272633811190098160838007051738076943541511450465030184003547301314848119846196651376913612941214406777363028994781573497571080984627534345345174160775591587717640793779409485027044428957580116397579860534786861262391650820911730799356469437506701375999672799518667980613531042490447091257880620398323675296699523239270692609339734017504808397133257046903624461210386452787895661733701425996562318977817490525660725290086459024567418030734306299599278251892826829509078303846955496847205754445736568198880070388969518969733481516124043324638689657433163769131598794112600951033908699372342912076462451197955380242482241737759841853977224421792038580173316480977075177542848976528753816978276271182769407632843640486807690547200220894206394946173075493549731066796385618903271212999694721904564324043017739443585112286375350905447810794738902830882873812582710510950287987205454868075323559113116926785033573634872102326443208268278508607290090379985902196776671791289812329350775393870461109066469250616446683501475871585199191355447201273447368501218486853241424397920160579200924787470623318936705622250694056086643259763246396840193958545798402898699476823900813091151393705869224115831071191553505555241701186796792264245673210820712033429577139835485015632951226532589152348772276173222495783927415277621808161374852652809523257934555727519705228189302543119778131667329751028869265669945474486402331813414895141505837457213802606884041365039816601603231342575904727852126148518953830825689883236424915218014631681292032872128561624238558152919615888832237251777500941310887839186452297831376754500109773428044190327666200365554353779195688628595514575652057397424172361207555403251439571661129422410370963140608024341194216243621839710153862758780567981760954652057902631528009474826351188073220316222946534370530130898207515248637692039869328977678687044395343480203093296099322172655721559160886721417466012535211537517362171963687338947452447377774953574835008609847091047770210336974484095770602965194676688522560230671669993364882802275036019258562802952182314512699112668246271539444021786296579118962494741249069576425909419486919333894801469495089581560068969480544358716004432349713152793000023961310662551558599800211367543764336101707555051609690451691174992875946680774610492690521752224328145517897855486339516784382140440487807297358171178215580136168978504291492640484516895114358707492661261464017059540376413175096656848291284207299998100789460157001355460576418507830114668616222466023507128132453255456131401651926893825074913863359903300476152079274645681206966954805596175627116046415763048794469803901357791153992193807406177682310704756361039486979508599297192850964875419374304626647304552238585060542561830565709235676707388795050723102753291402367306161378294012840583676525030333390066331253004627759318208524762991594238088105099277347510234003408817992023579212481734483968416317892453395166496931912746250513071376875944084363589809513035671565703369970961976346954925597978554917368362524751851305360794212219620232512513143162013548867845333346219885241049314315567081894906435613525699880476566871928897606698799422013044757659873809284124733241440666439811395607456963563770158806164521242829696046071126772133480604203149118696719573260076316258123775476844902803523923756567114671969283620981364740996850674455912327949085613197932156123384208309018672513198684601477424204169386933440767317387448250901812007636721934695579106266136754525958955909229121681572158634870791760588905738966610976801312766695293029050173637254992909544154771788976002450289600261282708493467774215987901884696922959171804002609590014178127002991695208132943001776168253803978611610716304386500348790705177059444941022229039270759581011855128164161616731966263370072891841997453998277052815678887557073452268678325213585571131676913045150093445227266859269905608671207637912773408751897556459385210602472878872319281945869145928120311692001608846569323464673214566139387354522390406435641356939543553960345905761967708262915152005779235390753248938709008044861793486562903878468643077008946739381758421437077276801778490724986971966262629846540379866201150351286133307032269728113223105272045399625807862027455062366731232417469839403871154380184102326857842990216281527205805080186703787264324384464516001318285379908207438693170629024702073425156365918691047214060203396049999982037949978357919068609494634539227377912757390355055749134130842643016934111627195123178907192897155382065517419844699774974595220280033346536443378285877963148203282709367249665189707620354326735768004432650349283041223458970330478864873442018849908378911574521501058894108798933471264437239561011529983336329597898762855616689514639418511541960102200951074850057641667168919269943059317303031363071814013134886479128614170891755974216159632702253531427548336808176503648327034875294256344581343746552813430277013974133597836740664615295098460407450696000440217431527882330776719105426400366054895079379082469288100142682374261913694889587409076016771781339818230836424683386502815155714015612650262327532635029869234871668070746392941434117094309821559398289087392003790787320057087217089770590568422208836478368096881694200590039737303128975708360491943232468516897292531856798693870690910276218714415295507473039077358677313744504630683244121419435426460974862963289641603068526040717329405251944540864956890121205432945797988728922627605246668641189463816366611552325250022311641423868153042681178123689381744549753743719737075150374512277261327955345265576593009944652120376865983106523867168678323299239929092767155401042184595217859455384353456739156219871694632442244492770861705125110503693858419600608897500201855275378186940848493757130617544980663350669378094551264839861661604003917012817009878547230504076843827961819278818044411402348825367004956670356830072830697411999955428854989673770444092687192775331555943362907366219636619803949142922266160502135783023249649635263137850936666898624158709993721529391988901415867939110756172756786411679102178049614159060847436884196269149515922345935418288608467505185681416556704585220136651122146323547777670598195312543923006993638421684542816580980018897024600064601448187749736353097215981728745323258962057005358899575300922702700527435792439273390483887920433930604067958493507447226719852161828563592900871251519577752653412421010477435058095932989275849320835080408958696179410488104164745634312229190904965817861678750030870613278781100759776752514071079256038311237946073288707250575084170438709510251339143440373381946213663703760419675500469592373516987824765124011323739930161786712388679096533974239645842779147725395904345094838610703357299783639893627186587021394928752956176125207816973920274565246452599019526197711740353086419616266266360913357933106038912872515137596388430801307746329905003301419644507834252841206677714434529236012917263538571384633117452965174695063629166207034738943366783749168430782941674927781552427902632651674845347451355245293657988211052342625922722829185009996314815075340936139221104764050694610184404332491064872389094698182643133733613371542878396279466745965198498368698681702605801897458326066931873779283866172869779223217107299718770518925641742565051082422701385851831351172662434186392652313788209653960708505940146271543974355544698863489551567958791342616808599428003487801281508279151267322085037112538446477095753005765023863085343214812418715928853349202266977744670946358397518742424811403177289416407272803707776368153011636017398496572797237145189711389580670686415414820271159066686684499173834437598440560946947569523446384915694824481710562608082472315784962653839343006931605228249443289814634357687757551856613916374518410517500503741071026363817113205287210986364805789497872368019095459405867413689218849051774809897014858206344553086582473635386491024962553048300105519503114719565584386784441699102002410805869156012115666774391374182825713051858473013836865491442987961610904603773004795428594656656067138622063448208476780458220705606081814276122861031869871616655902413544734931663965251079666381051688057973931397374337912485533312373240981234771984753497454046252245914010773376824921753645068634375390646663149429779501927880896977689100605250525150034041989389911597205269328355139616853022629852416572995966757068117551538259420849673694068964713228243908456161863058414630847988206221114949795942194004541058634593996540378373734862730639132849649379090837191394774722801455073220486986004567402726312712780044857876663148599283009981197835507829117422718830193796111050929705984051404512906448694303934377605135427679194149096387274222632878885658867452036278036618861696713581803394125400547889530350538931460100405348099478874031346424758301691381570415071379459414062512684785729159088814384806577450656201925089924721628601859319643249916866978900121010869871820349785135577543113984439521705025391807762909020684299085995380041644517142850758563556700538076466856757787763988438369725263518814381588018270317627588468590035834673125271583672863535470602302122216734874485953973581997279843488003821742523964608033258272483469361383580363902418270310555351696172144179661589511321622350199288614786734253448936832843564894686481622271645086762234540045629979074548025291233293847534058359570963686638584571707620028282890391370068023583909313360515219240610238240287283774158399491204551722804260059709416465775472962189177472517415793328276839319619551956877176080565444523354377208763688274394354526278677023142902282576532641412851426239477443911476723773231461243561084114030493283527189806410832539636904220395313149345786155584269055552838629788325634089637017365885757182154936808204002081742096069761713100381582814293433961634587933489730530191995523128275526752283276336785107249243254425558752044311191076162113631367524318295026963536139174056969307771668863496117882259638166178371677101203419878168293228485143504812205156209485194048922507513633632002464020682715106248259286880568203566952541959287080389971663811166002414044843604363187408997658714476885945770827386446727147792268746408993736928622938331262662867619017577484183989109942972006342406447953354761256427603719263859358924743965857594880131060804039972621226966590571695848414895230033653847500394859548746831898888065550117639964857250406475890369540121514967942578693141795065399404637014260609645481465737438411074843129457355286712779972043524485164091502208256160399973787237744533755415902862957402697467857471714917052558295501104094840685193693451578502463285577963041988337333955573706783882769769387098605954848203592832966333073811450318220154437917244158103936889914000790400589454283801082447034057693204020634743891448873821978093738685428622022500346802442540684082320457603808234014936068269422824668101228776867442839899307774346105321490783974972954842876287546892947824316739277555301930018220674731543343144989870119631481389082986620087173355522134408734812834820276839233045399517845691838867250675872363096647047179475233068322169806676457242043455220842803343378644825930778709322509496276327214070602260031868371326347064764342806201312696437478398297278069034998755163057656279238807833163724278240304425486953786959441184365416624671629596636690813260750611788260488277449328647578784888846582972204099387053185001590068917076826387950332709960900715031601233063892470413687716368241487751230781112638712340403010612490661560458555667658332555203656212831948217041386063764011595662063510247451539844911612642791232718296717657717037625561486200787575857314345600101923752419094573017223245288112154226697653526708994136151659134384573186385320508367593410540471530446518066496321107286837499459827239057339722694530969034859551828031075380308439244713379762327245125083255193836761135141361417023377760166288189941814909425276299080809332143168751644432497433019532569101416247416236728283017322473275936320384910730070056499051798217601124009895765682084530382182022112386971141415447594646974737451621414319158967986226822762736723431661408402242186554261139876306099271731918257612744445424348301654156689628288064403643002750375675611425230463872350064012022640971558327169908389343510716174271468445179720798437029717787809528577647657578684695453689881638459876247000205420729224490451325733013700086941702698083389530230003548219937555339213099706197124682422142004141122558700641611340252440131010270219066958205822283789908344652810529452368442744550525627006945023553517382824516898860558496095839878189773662578308913623596919091876463634646019377476027512021973935395322061568525623805176212075461865035801272243530610948185917558182519379475306648673734592223173429661195645033276985931884505910142598238557560664572473291385948123876924140357859417610072979965876610600477828617660519065976852121846160350655099988492534058871349838651405359967644217731552422685434457386692648332348480718730370088758568590440070129598394196803535011812210257267367394797384241807303987879809293758243235287571821233795130241960180453332983688528952727288162240925253413917127295045448475567871121627704200272672440529494669055011480425556312784223367892767990903291882929058198568828102207120201807426972145393274692894455206249111085864443659632056138412195921745980908297121078639377649984062414339001973909712927651256221277099439434071696053012886531441488701297130574004063177494273587977099451962707833894678754172665751915274679340905078517168746460533582148106857687462108942806366480684604826767398280041303557879815036344614767851280004760236546764101336191402286670480454401813101386214320161202369866469641069464267055223011677694845566829083578737073369220483667286612538300064467408849052011002499822111886702887089924087142635316707149780167268595236066602399700061156598103089693223681413764318116753485336953036093434456641565192567872241218595820163849146407163588423797887891772376412204354106428286617987132906055103628747727290593684021111427240669435495356926136764369299064248017892808055735887599705470497513464707845798108289827234102699673732537445521964667128085041870440982383624831820088274390293386715304195931161536793369682771289587449339807536365118795234404329114287330432049359435209622371036044462461371742082700134160009278104562516885675266813725630037370957820724945512788273695836695802088411199928757098668513721471876644769500274460020974799322013761941362694442493510537763342890190356022826333427649839499749014893448880376893030482168109334103563100220622317364210976682195442794000995640593650052100971143298353638514392991724221881872638836827291994462297950341911065802848760977039907948998751041111295736835374650362434819818190646100697517180107903853238319404735479659116667680030421201498006040940118771569662666382269408121589440734592749578963154019887021204446372860948495778079614204444849495605886436033772284831428596965664345822110111461565242209895154491445348569273084204033354498282190638048462054642363198665295325031098331338360643123810426893756672430701888053499800234877232273524715637427933971920755286295442746519847743720735443091702003751368083251846495163318921488866842783625187914412067418857375070859884718735261990392060902541504407084099902079784085603775655945814689461121734587165435737706255780440106513451949535034916241680739496929441246992232461277312824950146227508125780754624070173920986608114499382290778723166672715565972282302079789305709591178517302026950758484810692213961223530931822944224169714888661487694522219543615386060220954406895023995394869914025585716032755545650994569263798871772406696419567034502167634607329494291627683869810487620638837634738052377624382908881055923906007850264663908036630633073814825146398343425948717667658818692698217766185080133669873165738369853453498821095821509360803517353742017462478183344842015183962036569705772349134090842753233169011466514595237890515441123497168188188276402286731853154449696425692198520474626463543376550015056814270789219819569031778991140617438380381718982058314279599618731009323632826286205616341184227081833999901822813944672258465940862514326977103396282743134996362893266098221702531814792396839173871519107108314139214809333872752206630090418458168891491531361773589407259649160664873288305969108863150166258699828989524640877841267463413211924852240286628883988074987133720042509619874043578802643196961199368942758490244331886513715497106974544143247854537180310788469261840915118051305874875616261476865594749330800773556449540926071082342392346709193969467351847597420675059292687638657891005871891616894401443431248097668251997693073415523195192957417726172179267926734599778330813895472069339713020334996956237889562941039070567356584532315076729383273561829146156391731716632268844667041443698900173073179803043383311632550056116600535607279807106568229893526376695509302102729862672230929066485108239073158806268149728160380834086566731300527809764399685606587704726704325670413909823703082222529364504717258231619053092264949700952235688617609125237608679552293097395429359395750231319251803609766633666573039246130096805357831897540664218192181247538366913826392239596327378719828452732711329136686663793993560034297428939200802926826541542871791770203871680402827491369913530947310880531356528746187571480421621520629141680635047392509929637156208851167037929633879776606852279343527059077128772991340378816125762689634342369385782456635796243337979222900672049503103350677400866395091147492451341934302125311504968899063601624154282195379439535354766111539777863687542082133304273332296686876582128460161680140754181215573411560172038681752129573273056632307396086482841397633497709851042117627056338525444317899046380665187356286811602319549508249040234103822004299994463917095612340109421624418966315926895154143501630411498907894920782583207346865372861483199395846787681887137062190025507507782667350661882890289156516312454926427754510923791766795554776854308733742842393426052741711530423717184012115044784756742803969839772249845215995311550403085605071102615325400428941108789027778339265856644795965241110204815150220029378951640251373396880009974740518339498192817078259471195456924594418648623875000445674893183945685589883871520167820311156735792466559598040323034964365080732042686581679000443169664055219105974252774852339889222321434256443237367535026835477648572619604404308435960587473500719050047229623823291262656149395382947069638277157431667574496722562425191261881754751322783974138437844281797547301381745337716873518661475893478051890736934863324947189529087657126075132504341230171311410782428915778048051329663967440388241449152215716269944651902157409989037687490514241824543022504284072043459854678957249935182158968758429161305772170288830022131098856317698223335373814331386602952916794147361729723944094448249267935817176856099595077673930078166549545816352780377151145048597000914386374287436565228426218537757279436452412409451037052764242952699841888895124150598223233216045509326373823513943213318502767564968257543991077350151234015017384893954960045638337743551946857562231568521492927111400183751451373200170055891116565753737702952850909569862295567663744554718008754464597153794723369887567837055669558794201073099988689222084277584171461504839686383368196118428462213546005557882391779424250553604864013608143283951870279158268378899217409610857889169530847952412140527641274703119640737340774404248134483895105783252146188853730562896961854010831737600975152737041197634953424424494750191217550298856343126545808148654959427971958854100412337799565481641777840172220607397940559947693827054976449238847007874284384269073609989321156780325012827865605208147776008543841582363316425445519526720618156342391856900262814486481180214999883220619242601962515065941400694676185661069229407759863454958503339878893350489712098357139851399117658319898737115312387006671408795807953468372242869259400126778185623209487044034863883578766709751120938080550915749707921606763991783761160515977671472601548318904035287248181678231040930964337304215725451714650581465325138411201279932992315736775816685204880378616709256955695168689728439524023968096591465025516992437740826562845559309838712757322031447765840247222516898898207125988294525860798250967229114961176386604480914153675628329168607190066000323013015361286379092478809612870326407360023651176513095920584649004670192753197152165614927867843072683798619193503608840930571941067507303510365203278017007561896812220027707304166217280255557465797143739456718926407516762192807055515816811928775364934112824439260935975712777680910796246651675364821331220195740933599551890882107435135144917354927275406711929674673284013309485053594880983242792711235559849912659511596993302639727932804475987187736253281841713098960430051336023914085389498746742582265431000216794380882487240217341395269690560186564605389336636069907927793302454284274944574160064077020690095131920056584255012583234911858316572527477145245100848922892788751951302998975981203446884005783479310070410630879817610342305262014867559309119221991611762062789327066972889258724041931851966858381204616515533045925864095795232913149203718397552060194126802507690826893082144262894441826698989467467923119200641522200907678553339493356815698535155403595941684904817668763756615913691451795784819447817828906924272903910907968456367003052736112341580178851844161002796263976580438290175235200426068016750232769121342105788065509279997166962253241527073807736857902098131731736159544099343000901628557618757612092384366345398650526404916137287018927824605420127803326461478504636262244161319198530538734752289990232068045192660447374679576509185280278634539633181019749046629292821434102064208435727757857407389634588759992232776912090108508409548875536200034460895721485228359974419349188213242171995372509680503187121846188730375864408426431273262472478121456341354531760760652750787697143871618649473577077783060301678692799252172962557521432849380881505245792061198056775872847142186772872508548085263973523058559801749970933131453281088377281109602070475678847246047031795488386876339665436880295236732943833912256618740946503137864230918271398401417880690251467244849571156034394724460701432788673321602388011818581916999444298238987135877884295424426097053743581060067367423372648612221432311255688775260642898728501092475466021451239596297592729349163586074184745943341707288041143568215519920090221648826749469671575933581416580618166905402837352072213810375747045957628371603979746453063795600413525657469049694695726153659727581238101730742207644261693386457787518358636090744058771554104016299524629983662595961506946874432963020380598857952155589085969787576099023635095976315281147009004633005185477908878685623405262315121388456499792369680743440734747015531979712463787306694558295047340429132932101439629785790561027133231163529218790043759133719210534265088457627382991823661120285100308953712020683669456509839713295969526192165502085656005481395241953425593330793552006668516285371059403993021415479462894069302854985137978372127840563779790932287528832105148193068498116724194954115352445540494792939537839966675381511267154483186452778769956105016633394453990445446736447867654113237260737906348534269536670406457771679441497594594107959935615129876533163302998271742614183275565488406457447274503048810983587680255124064448903457541454736239283028137148211735532027517126847860746409776704760582832850598466928032827351582135444265229061010451665056598999740658545136980323587355029560985530459756162877054486869340646861918323769260267601949245018951007102815938753123033982381704463333466892915009360489398608769819961714033565298696973004381330651963485091091028875272059421194535801686811560133681286010139323477951886097732707798400935402425867069934629820528226819478558321968496986059345125823862725005710804927483695240789057244778627366704175213280156524614229872988690217072133898689029854998499989459839025194350413261385766652702529593680921857838847514277369561289282118414066683902592511841351907145469302532759615610494203131451555324628407144986409584329307587764162604513191827284141392897595480012859962351733334806954486428770384643005347558572467225086896589334658098853800039928700740879293714293377175801165923874612938395339966602020725028494756122022049736882394840159558500579678542214673955438984715120076380267307804176817887161490716076992969351149481753092009085958377218311904744203659075916196753782645966857655967241054282992629414070747955911387001907100120916437891143696207361975586682891702232730280766863660785761945049947167557378273312465750591412517846601258988014843693927017198948197937379989500579995228880667942584326773780272889067874526601849922593061058225516167090243173535223517541651732366230864579492833125888500368560964793956428547930893157878728166044198608166228546123789445076508004859786637708279818020956828370298670071319826434701218716897241973057866577533932914741261947529841670641460260983392247286097309199278926297237280613185403285002506445130019510971712255763834379919655825760746283618643119416209212031600406882097543393395915249254205116642121694637448181689949735685498004540386962764008215354077210493011279069460158571452513867609379343189996740394024837789110852727484361817509296275732274009779953094885894815727350290373384645260091688338608003452475693281263486777085138459821988780792127769818734578007375854131847069401024834727188198906346871117529072873843153040972020384143716320004102631248772403614779846416683720248334061373177781398435237518298777224733791772418875528547802286731641363068691917064508712773604514993207069412845144137598151424411132419640364745502318758469470214676857677504266439896801963820822952242388177039665075994193503769365932088927593510366378539107623961631801887242705856339124199178815608766294340299173593850064592370292780505145099980228727093345448481712978277543588895346821617786159781258389363332615807435137570798564175550246962392371374719568422181211127368470541829553433438152301369435459255825450733995936039309939534972983123841785061613473748754643657984960988538878479303829550724911000982464938851934925681173004613145666561900117618698547634654565075917951112259757121452248050688177547323401739167274005338211756384147238382850884919836264257613731861543078513292651199400421429423271434697100736347202991007144546248170756140757732228849336113166918428077337850104996153526510770651179654201710854146382697308279037232149690186930941078933762617720824528067046648082423543704960685243875808217727513488854785640700071817660089781607851206080551052413922854566583576904167544695696348146818893081833109564334877217324598208597733992423075246733464115311407075666483900566784824411831501070597337818166987497933292501988601164663767062900806675267989120436837149820774838556571645053358870871287375084007844470834962420659036009947518352239738376173005934736505427573641140826645543144361322409888464843088263543915723107415949060043512273704970003701561683615609176017909129398453600275715720117403917177067135536695385486043064330998405784274957383841914844492896148093257454733708220448062899167093736754999007992715298838526078603610927343725168219544129924052859634195714118656219309043671449441618401770179248056601733928745444517585237078919560180719085725465561961958292985601980401875564437634204827592879866237401487088761889817338545606214826738313385749255725619260152461873399980299665346830414386841248162577247697158694801995385018344936596193292284766193734344661994547909745527766339511921825049623548207599773484744626336503624377902052423813437073517501455147936671481232773675267945770242301438893186580175749479455611657160592124796617230848254746496906094743603632184941375449770813399218420207653266842278208068835196425382079018406180031580777405895417928171612892819438884598260635323958665038793873922746971301208084734893121225045674007970567310070727243226512473334130899361251414464528643662105474501965865545591821482720401950047271747193019925243357516006124724529135681153035900315296131008834919137607138519487363354531469642556149769411359593225472791550654422669052249685370597513270015156660324740358415410071922729355301093172784381346232475243994265807387071783270558306512379844298128137883532059084487605163413752850696038068047975241914597924115181341987972158612980069624163670430799927258204371078850105398653588258632075599615228313178390918621607949181968153839694773099203506155652055811457741021084045530390142601928014321967814135119865087386764628437854646025992656768856057507755500691646908007528940083140108213572346042293705206529674296192224273057331305071379858611124450527418959002144533003525132170735640702251752350688952584598874609525923954090908177909217130837184827338794263824236406701629345144632238160489053132675795339369311170349754641708355127008404284527905602580190819157032608747044740550105691490879813347211951593439428617739129581449010054483998163859565370951877787881454640913434882979024511560394283724773745583611136734908418625940076889804075681094046792381861494033204856370160258703965484713250891792949718399632893369466052826253920122903291219465666703947572047462484866988240023076160066294890156312021095365560852004757012562431683964544238216995279328836066989595063004321175155333755949301749520220748658058791471338119118828072207066225545597506277093689991736005835148466504781982980195372182813425801275410591128650076335966502461877289532382928242938146317043413693591979435169928499537892479612411384718769673915795921534107829836624864500005100421681832804568131814769356241386597552074950141197920069219672850151970900890246555432417614319918031628339206456681598540253806025651775607408095410816887483829095606253771357578886899141922629083140140698385166938554784427934937684376393439760231841158034185813986212630694789994717927848768497729862350345714860799836422601996253888280649162832671742932452197317349602753282923065516353003554217614052253188949130673875086994089433376340835341236369790668343342185124311177950601579058253483002916257286187863944165136093025221260930413107432165061867619615242137716245146133571989099885075129636550855583363718888620164076323797459858063844856071136695135385250855605543980595269612489967707492005932347967641506136689277287957498577618097886737945652009274224873585821187410760097947055520755644291068991992902862737095669768345465625201545106066353236762981210985628625180958413020516954319625054313207078627153555180921855466420313007213588885337002774016512723134040162221448641419792804682230694058566353520287855152483629033787601970912031663168823562325022651404222534002543064796588162490904955828886469886749866949109366964890395135544008839082541738915614974013629259341483426662863126621488525979718998635604747557616703194224753483273947199053599628326895217435684346008786851530787852781555390434552832992725201730230230867047248106922994245129521352915727726716452207230334888340918153856310367066595557799810033157973906618267477249388204607601509788734308487911351383496752883679077269200363219269723199230215102240737670145525244423545488361183178580198493223043268101063926381834598461510768293253877299741256598809201109329599152683098187702396887836427811477186158048294855277173879513852599749570848129969732269012863978062711276174494324029338153234142547031544950483021447516562049243902667472746705868025230278823486856795369985655319768878714833564223654732216542039445762699129084073192028981155022608120301236662393226000217175496144673215016634950070638010614508161110290837482257852775624540445758841733182584090700770159606658823030986044881582902909133689211146612370330869207286956410427500103837077408239162597883424569838382789993225377420517621916877473524041332215841195112463967015536514536679306674639352484409650260206179164849622833545258750537738515293350317585099966064654088525850961085663485205488114028065280182856459328650122582089083549353378606835861333462781733985988389257535675976074774917367690239967730544593629056026849834828192067126375823609010865981012051745346126104601764209267435334645647185512652082094673908534360123954722118889261798000648478716355521422264626613297609889152863796443563255553149288297119500072072298894901220218902586265228324086833783487679733919905166560340494830391022732332088169651280800622033577249096374673075284612810113656914700266671184145064757037043353983493924939241415819234359841648316850611462328365278202976815968868935152194031516589484967740925615171729904341169562748182502476546471201627921938573836746040479886564201618294259966572842034041388432389275177670943343817658273320720577827353231223880038697033990193875261357150837771963613076533945856681210928884002984281199406635301570847151539705980526818187066020909207350289236581253929345635864120785789129478281019919409212022704622857506219589467953212823750792915153347892362198835372789041454815601830025256413865332987628852037370530379889028878758200678380224797826906970182211922424628462823390003678531709106523738781044897153095148865265781734229100459547866742298066343685887988624400568810486257535152989322349473359231868863965395111558702520134279045491581458240183553028153551403085324264114009486486981911491330792059207704515204285197953942349270208287615446204587980058507980581712129965448780383068074299186454326320433100780764946408925546827853826217638660147672754200559872525033700231502245905403192832758364639805023561865125294604661364918567133238520796749155794754511328697344385960328313115313660107591179238411930075935054417734555538540135123207491227718495089052935783713512602207155488257750733501740774348404560593918865096443221650655493706923758288468851651800730891048875826527603914091877085608584178040009864696983822600419779017749209153890094719475182359188849700733920223797049615411253460981745845405021579128741494578855620065155992976369773268467889322431598653814878644060028957824392890541193562643988382701747348350704504452724805375012230772088727390036888383415030633924518936289270614263606170357284979621030027608269797598447010470926964395633364320494949298599632642228660837814058563291003724563360130401100668514815683219413327223256242172775760785116489154110986075352820936939793494718870410616682402739224464343386378213132294930999500260687565784993866581343357794153109395069150602811020698083818141809358690509140362667373798128310916649081587538961318815885355023048820719982269852743149761199200550053609956657732494598002837669190144797257410177564410734066117378890041208910024113845580095060066527977284992130900664392474853030380457677095140955352686956567491723526082302656816216491724974489785209262235838546825932423887834013476304291063488584376329138420423457981877217532344745183409233859283558107883313297428702740321343947738547742850159028953124557623281126228111085868592392012901055403687145790887747743223653038161326351570928673536565179868842022818077144595154813413343521357389965309894543700160775738072528208197833269555691542034418325225679539194478346424185165545368892462696313622593574810181088120355406291600707232570080522797279236909816746459436391305152872548024983788097403015035342189914675655105663148559850450717842788456081338349789830030263367407650074891917290461970746483107370817912071622358453407010711098928006733582665385758482746835909440442967576262083612527452889043373893465898010606691281890316537490369070704521841445981028982948463266143542266222538514705440813588351627492268601543113224124237800485305209334262436435802950779757972045627850816611584799626947086074987860440459470592260596388743531815048124553992917119980908632775751285518691788275733936345637505892287802409971462195552443996349276770760301847141275482697128196220655512145556090107821638985427841533782011702612031793591858597628260375676671349552237813586782877430478411738125634837102182105963076695158533086417276590162926532029341895316397113933714824204072248134773119247913310281458727226950690957935875906663159513382529070666921978647064256726785391083954744928130862782588232862040245023582826016189310322229806175174426805779300778393900440012963026864248709091912987484433468151581120196870293393538727485866783568127242123344936115531773097154846336140565762159845448572743113102633189766120492872124343731129413559024922378265987328536444344417912218170467475520355974106354257907738015437785473475699413706633774796434196503354361093156796462815081404480305240783171331970499225197238886521462579113770367092138426203826895559543136989374052260521009069244595203975060166145953626405278028001971712112884332091959372122966774565544136263729425024601558583733091487636727788574339192842145195565056218486650091549177804174997806198966158704443176382785853512507038807211640945490778705356122008454918965411356244628326621700507626632581391701519739694095192015459388094296737767397855985777998603869747437518406036204024089429739729451878902715758975094876446246570881320207940088973061215999715009342012809719813488136572965073464549969668863790271623394768562741788906376616779860705017262718745382589358977373321007804490045388856608625383144649409437042971934626056428324311523941668317909833502731842952361375499890768020879296717011429394976596592763302523476849852507556911244659843993877605534437284317709450973600651949327221416374212220087849970935348761871741135155807833146859925523149420113884710798362736252153532919668817839101709149507802978569130207343934717445184887679103058576683821813983657350466779732599179708641013408167195708121883601730542198183149322226641526706005216420167187026276094486872065641704081357710140417576331056169048173120233478178595200456331176141678871847594995712648123398267876012486317377120231381237417964831110217208236932191459022317442789276769888133558964010559295295487497118386972506637990611040642504866176046309851783239149595786494998379186119251477112631083767322075407280276531955047569556055581481716895800096077083845542559117496947865828730413405712706053504200122528842707467123724915256658012255218790503583245952422311290700297505480266010499543605415635251618521686924937914810080484171903113908923648457359807199689503396496462133205696849417081661776687214434709498497893287441364334770889299982413738418037733245730277983860847538307039961944694900546112088366606732352883484286225093440232322496782019886432087658973133303595946210354106343297901272050093916924399434032915161111525676533198519339480253636198269665300996239902276517017157895289777180513275816263789038798860559012102016673851785136026524379019446887987620887753536267778267989040312211113918953060666661293114470204511490476153711097365455305196892833243558556721292915539176357699208372842023262075181127996156191911691622556237309134567150648615396585369669173560175295951213705990084889972230056406886755398592994614361853701076137330331512631319345192179039793337446510380936527605053796949252743605172273369022821364681556999394225898695162988481728491287994260762628709412107845284963277327987784925661531712495611647942962501656471865127271526375276597301255413172189648042120256393300102130375325764245994049605561108296112243138952765741313458217229210975104897776574633100676225710263869649777841302810045829918728747809090344551846023375655191841350177368176368986981077965168163822819051330400155677809018144387339356903336949051825869297100727871800836892384772212204550719249510469539092716015487209978934958753956708599998076156886955463101370055244283655811928241245130680932192076633891626141916339444475845866970891723286610471479665142360664889958497747376710675595071265336194885524742690129749631229431660808195987921974878145083699013804120213837019450340928581974003500274553797026171105189854559555529488020750577647133681249450932666669142255835173750319440274651889000768602569333312705448972191840875319181251703933206738759178116334963715924185835420069206761630747394140802051256081191071054975504581751866900288980184713187049140794143977030697400930449465587374482092359615802954365426811997691055470036570948173049357575854201262047476174701180733736884728538825086967848676516761732439101199241997735288485832579217350070069044504790288299386795459807557587961081649461037997323782632140161293170434704139090447868337059817570311702595856590035293893971287491453829295140373452741452172444977342947132472269849186730150078017597472980629651260862695926265553472027818086283375183401879468604054626345325415785522647349815652093655960579716033166826331165224922432084627783860160227226958955286415045204788909815236032278404305345322651210484288559569941496513596153775462732708508480478878511592373588467051986003518051878110366197808296178797631680372075836418469133411591140504107700969567145081864647437841925053957263642692127326946947946489848797691606972221916510392607454149896545153984369068690445331895006214702788886276569758812632641432496323056780573879340447012331573323341201954224274940484919074109084663625367451545381705996350503782077248308981763712954548564114519302507122884391549926732548656556430100399780471222209482208136503482928643424805717801938007488475379505946639157718003402493987157066442831827131660458056724321334857469815477205465143580889165823584711062935192006627040326021624767798281483846000469392224369167198007451199810042961041454477374583685252816557897707871275015199433215483997096732363971323375733792965663656695390363730431539839591268541287148352168272465884743561555599643112471250428132594621898747012848560083469799081050217324775886035917568884071833117518673307518584416521237989936147358197403091258583311675647735469497894865321703659491763013042939894074181250633570005319865202598997959467711041603821622207156035492299542393913401141333939538795347817071744879801805613176900917274636425685045982428264615208483541521872587677617488689542890803518044427879069134615819664151534231335616321469745666826841209123238639405917515982223538738149642192226570549621096066729615081277649253319730743074122755030423493519276765667271806914528848724217699731982943085809917211819765216594411553332382955317467755521096662148454688890393863017080139894268890107683839600125726454071788871987290560809027454425149024196557459143687022654944240520910728867437540654104379053651530760650773247134651580222976563079831105917542676651629580301039539341998815630392707594061114569802774491839970259667025783544672304554663494761421977239314169157001043148467765511647403136712428490296356369767220919006723028487673376897953028385944213473020999725942954648013908571035494463194551968341281271902266598777770373169537531654992802597078501508524810862480122654751557353965483680218485791935613802066793105404321665027023544102309955844198315407243189950157232008784776762100481354069076888974374008467407140021920825843850684666548768456348000183915633447501139602694294744170440091767829601786280241770155959367501978294920391050811060611532174476729544193142526390631060024123895322790074459205224141410298418675574169513146814380066425919551525570581245625126036953561063609813248393518764096172857544164867143399017207549112765464530106953459477593648995781041122817224001390395632855885231267312172225225392923995068940834869106575028607396499238022081155752455054289253272798689627286667772644583386201629227359726834225061824216367494064557317003680645092523465259398535741349375110989776253618995263183220652457005162560153983328694180166991992305137993238749105679430305344014894990541081112624721009784132784503721025332391306653447006745234818941029036876760126070107863044384134280584193946479870809239201859003834241633363611822974495169077162114587508821598961310546546799510787041539998528761598357233155079679215439864626371111385970021682614261026398676693182957052127502184038260191066390231027574932344589245843788834968786630246527443366044753907445894471765084217809044480082179415600012219479311580495339181385995475132434737743259995468367955148004113242336395707173178280724814067190021801958766540517295227866936264579950637953265166529270119866684348673669198200744567736438694319011649303090134948812072006964601476025728209969369989907523609119032114567207493843551185103552231229059154292154718481559956742377387333427990671355808537951637460077879674154288340838815225948254142627928155700060647079217569371528749736291995193544312778475835357075443566798835413906805993972470379888044801357677167737695884543767413413460678491852273713202390737503277991196386614710727942042526036872382993269109077305478300914335130280390140058201912560082369194115787935830633695456556987239803228464948191768285346969938184539692855702584556664507102594575488184342444826859805417321046933452821253152067621256078494719891856696979381163628126700213431288812563785424634325299467547559120733706209402380133816912873533243315128096768316484879382353981823322718530179902388196128894093238631592912363856591311873359301186697574271890996480517447312173755551837467501520818826521015289318810878628828226164069201423230558690703473985542408319601543831483375117188029453990401859238781244247078352001622750518785098833100128209328086245519498044787906052796836400998971193323394926427264410903198084174446627274720526320851630061521845221952677085427576760217513305232742433673251558267744123345486111094062444910678375055362134897379223306506666454667871478810801438372638234914424901979854905711940767997337565052250654556181422814145069247723760778119487725200088203865268831647107262769571556179559401262600308154617776938200663266689418275932081287763676367599674930473836087488111840299550636024123139527726179773160534617158768549017268421151478859987117646981584549861988367979563593898884932282621507492005775485903137990306890369927164943291749136054646724618684716926926851242631221400211838047609186840841771813600037468214604590347269127271293553392631979785502461535581762920860327312965586028190278590430151241589900042379559687146344721282266965513387314285489470232122126828929701136244234986500710424000367852753566688936083934783341196806992370500858529799581919419605415472966821058293464335321354676379789342822071419037223303837988851512285705102559643175530528852688239911756667357751890825480510355596145753945902766416050238919821198144693843567615596670898177444213046682386283998455791322480824066980356149606893031272290280654743854792766402948494105795699616327816388866272139224564848909232051295327284664494388924129395622214706430000657312807586935997218052157329999521169909939691866246203913731604740186603271803845948289026098403302537622451570648077301287635229273560100417718204511230468074101445161818989367120138775984126815115243127119529834876838985512384017250127981569823772704670213437933002430101094816086465339216086603851853777804499100710185154430899041789737235458745372961924337923743532838508137441263382866416080175973425816123437912309576732268064370429048632190345139494665017329054685523855355782534906865821447136683118614539323724636477686625982074063199134783952120880670168319691074313021622210429966425468740692745149344341141938505338001882734387495811277622699615337021281129353684832209737846212820951654757578580941496034638719320998276338476827861673149297354522273186039755165660071225151153112109984836439196452748797602203804295878393061311569704175429184602788589012110509121523049023910722106117163641033652978135706812420326402474930377335032980744647998732272922114473100161239338401231059920172572463443438881703259304999787052151218327867508134173109084459362654884093016459309340916058369915934343646068693147063613196116708306904370743215130990397775391676115369260605549187537935774710992195243121862661451685049234752244499175303044646767257899803524787909630193487041003872382641808317087613884227455977861753587308146353706752381741888395553063329751902611922480471973728348089906472311381898981283787164270534120419037101509186821215541868420622445132373444276616040184947368704542893797816803430261314772413467405585706957711803582933654938222334750371247912496958788680300891490440433826346741399191049965554203728469456490113906125118566245823619079707459150361125864331047209121700428588161651769639409003179713480683622947043754171795799850512630059017509130888846203329468944923860074199191162645623981150127758049736168535306280020682776829036717381087778396138720713699769553349808471260334764416620409913869677865863835705691384056224652059576980568167011626776340606044852959028711008194140916858188801206032140324183742071378671215568018485795262239689770574759164846248794047863433151947801409477509571053775131600812148126891199137074028910435208993990790527153838596994080184071860138844437751801150753062891475715585067051695177360804459535211203030486247071922312891057279775079308444110142603475419011608339500046505338946250004062465448102995278926000278067301583001098326892142127211563957181704496382570773252961325077447451849939749557437501961766034374518673219906829339194604469451693429253253868968409909701346744969259874486800845381635902143614699598456392974856630572509381802978114237472150351171307964083866884853057160594527202197434800005577195264689578746168939759425961093456456078630565837675987267664944844874508180853177235076913467028430025459089318966033538896740494547810341848071854259322765683455683904711960609930055350240602734974588275235082874115356216500785779895518884270818013944503867499825994678630533116449547000145596450122695385529586285090438927387694690230022540238637398806831138203324573119274045638678602941518497026282459919869291209374617320180370853666224367329227108496680340560929201863827406529878860208177487366111922664388319168987951463043614583827378412352754234827486079884780342724345256662406908085984283280294176860015161041780056913842208106714336642058347937839412800742942123751380195899406261980999279958423202871042045006731728328259855098256406477792557996652510561621379344838304554334407582609855327590993751181022331295748434692549637639794804423995846352162250863003267603801843837778748174199542092510175322831103974205260413808905735525307159804983321424182596092687931322816112886285073044137526928599700663195576574551772609373144661716167206671288789175748247088684759327366679342482924884509299721004201944309323027499587034884751815572985562667573264961240687831889574781519911615100724615959044061182969779521355874848892478134640459473118789440624874291284564895890014831179675123158710154320987260325592572741174653305495339883251077842665782243617421745195081981614049325567584520739992943974439888714603027267815080564476402907415735714470862656373578687628513414770197047367284727147733531059099272022340289350396192999338026017713478972108120294195549600431425985291061890647493501660178882984461818848462561847351536489994158614911042137473340089326352756796873802476161889623995942884721452250247154872952969350663089573588461198251587145275977114024318968312930451030413442687878643399597872579077557351120882612828224094163130709308152864220895190085035884251516475574994135345433235041286276148314677235037462322494636823681470954108430660559832136415965598655261437998746365863891354897079904481408350929549202757103314690398766610090092007091652653237015228266218629348160149191763208312241522048082443471784098265088462698913112902504145428071289520271585880393800794208654267443511993381401975225456770746119861354412860087505722975130012265000394021590140765398685713843967908131597879283737087808970949983965565172131139638069246273862392937294000409302529645767215386745525938060736250270718989260580580637385173306260923480449836762873286480210633049197378253159060169165143111397090700733240705793418018659453706734040457959023855709374946544530521164072308831863176557082224977521700402558582519097512773564099983591516176951040549685331236662885347580583077060863763726166951681283639525130091297611921572381070565850958425469585612392114559065281885400112416689199570550691643172309019197332114424389682913507627377964716193910764844887343265509302037137535875567417051693358855403155999079992804194085664193205328259059234899978201224148734915254013484863506356867854098064864286657334229513662010155115919984250206640866401220236222344372249959626102493055748540908284569780515091144461201003158051391474742351807505451522330777676599504864344206183663810840966618385843346051080802191489027441469740172574267648290628636694698346821139233314826831876200011784734729242294833396383424222434200648479197525449756274634024925879209281616227296665001939298834227214751028478319626358083624323941759670929406646755946559877500109208220480389731394321263837857877914505615544874735162874554987455962815015236203508844310972289037439557767767363628621197394379986070648257224548138993798165234173513869259117514415670435272182139272893441837105704442277748594177802073540304131177485248941481028538942452464289023968879604215159604243839331164855426744784313795184274506599169766867434434803566612648405710124448666109494289934789232564785345578727355582788874403686725703299593579338824849238259005794939210877179826307731412072910224067334937122568464558046353815216264133717660269395260388351933663104543099711440795241057486752669602228383017855894409076402470619012302417574145313800564158694514658990878308089218629203523319942092120062284910144851314356761613376277677882724844736619460495514154429436333545455233742519936291602248040952039510856191464765250690378844631663263905923019014807674694543497873466730568740453325609129717520982238001459451263737389751159035429810712414104421452196773066928840854084857000775607876678119775295678413051101596502801403780458623496208249722167684409535219901385427539655201684790574504644014034291070587958692579860216436271329807407394425305703511152150648719540658492233644017096263249353669851576125733978010357181535062749777824260322173989935264800717868103299633287938523092467486428391086597991048407525146474728888204619145081358085571241055006342097434503796793711061536483482806952616450411200930372714950403958432111486837137320701535184005069644212728495512658584387748935365622146324805150051697046105374901292740412995860431407517378130978085177927808608876859047974319224719028355463612605626714541274051946450015501101936405834425911050235758072892137991630190867172326489571810168058804954651869791411028471259378698861265665758206511760699681643582391474287644141001200711128586191825430887962857024629571175142639711808109838399780176065351598178444592359200062720300892483672655387621139825254751405735956248437125385224339882873032529225993603257250076636372305799475402982437899340282549973367928373860216859853204526324781368369858360995140428979539076560962387601917008134305846750881840474048935875392616789486625707786318852218251732120889383794515473455456384826653537060274664945416169371403857152001188484323910002320661092764237708398505986631268276896751444451957417493694361537633846906405920359732928952415429982221394739599784058884314932552832132631913529000699439025866902387729239221723296267315519367987612145878788063137435330724367767076941014850116546938656688658975923699027607724058399361487073154782298817868724124722360289279321288032450525906007842169534698884279614747939045048668938893386734977674203367111021563664335394612065149363569264461800964849369623728202172245181430002869040227467045689914441288435958397041225410145937442454569303252012781425190345363435311007430216464301381742194920263834527570330867285199136814889821017041861455822931517870626219919348632431327663635586743725628110140388754989019268533936028699023126697175833662539697551074437782000842667640768094186320382356011514491510056550518533569397444114210505072099502363527927426843199162804927123414105464125526708931507948674227662804342452102619104416992137850850250474637993303266523904416964864670294368221951482710846862557032289768895925575666773103643339766655264867563531878032621921019789221381830574511742425488673192136710016615817824419609563580617194922299608816908381835930261331343723300448079997696692002053502581323300424613093807826288776522469479616129647364445340589502822179274627964874479629538283053426992571892446793051838008543648033259694323216681125886896115275937014810088440812520279013520564293306646490458461255042430378773123259802017750529458021109382330796326291034060163267743081719592333848454202767997538989520700248479624370596528833407188073442107153873441781074615021680670912622761704381960545804524995505553431973259644937849868712650484629461432199893371067720708203785548257840852420272684506895875392631582511880284097033194611674607981367400305786341386187197711610040765694895448501704144815210580171529247481122766001621943067091847184901147971422004892399451893577721518240673265871432867045475442657921681504306671829808956040001500724001307044415581848376339050713576256468619325838982903794558162970800140016340783378382597062783656468820055532710150483986150369972636956756874876387196419059418590199838447631211605632449965204681591448305400187214019275367976178867734248659872310725770194349587262480511179872736270106862425328354340330385395654208327194723358072227903643413394522996743762587413744084074670863125142966702835113491049434129759846802660271390075584761793347199714001358506689852662267143651763927973935174638742356002201052845961298856427767077700952470461719407568449468956909519460021749702821249684647864537867150519724744049227885177297463030406655870495928123755503273678742544626535603975105848266159509431627119890841480215231307681440447275560453698584149713461363273726250749743807620764178754114250792566449923579324131591974598874665180578625339927505069920928352770218412293806359504168082729997201365700120905302186246239690373360342478462905449248546253242015279844191656444567683757979235238363298989941017046398543983128193623949764818567066209014446613435137879318639326359392327614602707283229352222974613230241217274782952943760969398884749670374684946735140745022569469865304226567741838716101317644558018517325112200843093561855313085335028711361018721474999309321554577178397250502502365513220351047772959978722337125255173180867713639952950397387791706741501550903387313031166899851207048447353954448392515016016510840222020853264256981086678194880513865737975775561985752575186372769796070794259087382166500574571406815352225664771956009859767417415576330034550770851723449206629337766297518562627754184931916212090118184384554632654700392983075274021022843101817979319831428483255644702724437837508928751100188264793546225159446209301058726647791859717163026535370548539465826586759452339673221590825444165722078604832417912939160407357706520344581861994167819948808270809878735568512360159012100140768917913636933961281744334688721125972301213365559885482930163408667094717594139366584794565783475958722320114336422949718308918083290708412372079608931196272835504540305802031927744118861894754295422818461178167794982948984032248195276090654124635803809944486633963195364586377907156071085180342309267880822760694407221475480078898541418765875910043283561793157704958421991827785090936250055581754085935121592409850101866157184592149598686669688249067260322484654596576971660759040356168733270058309359303689864683972468591254777309507525126750145589606433566148855357140099097347804034049832603849354470554533034530571059212073785583441585417473978167303712114094906237180031878488013575322472089620041453157921641772875964531303924471187816978869290036787554619146506700954903258538163193699585110700946691184508222439875760012758487730723623791369970381329731606658254696518244231027571099751951643507164119053200431449322477839398337356188408234740751373174496726155568896334513654009489307057636692615929348743802934821122401398798930543615527968990688338153668945701145195306953766499188299853971486503405893517111748645543067649438767125329128049962159267979936491633884572904100349536957216311269896043812242890863059258177665571399791789664339000964120553762800003439090341479935189066884688591112929861243421841030067437257396228982795144384538446594745475091649224626922544802017999147546243857309043959151073384853734668623586610037850205289270255023669184944138158648401765549374907725720176086059092358406514995112824043537062545774939119240566887978531425618193049914464175034424940931904612724297753096488422978156561687802017038475999906374596929302759336643342779746552384825377975813341705386397176205224984924664808379277067141423113944838490617963504112787248113732439957403295168911136668331794721378883319318322814841899861106069472963539702371176903022876676669294679719078448698980961772000641748520743235431561734988429058464045700496554212044359373281999419517109184794665077182470902448301779353613054919644316551148375043857238076992066540635134470062158820585485436528800929654477628643000241781654202874248015891953739466382247334221810432323657034811751585937001531419637053003250557109491616222901477454194170862532838773642217722262431096473529900774795252210815103574521692780856325980566680090789879457507569091132286439688787573538529456886030741752822629845414370507058635926925446232829813271665465129642628288147150197479786777865704300040442276369003251536949290997828094756340763079408224389735754351731963735841444138855071947722901425433293764944265671377175844918993592264984737547907765815120409923769420291340386848261616316168131757526738614570558378170915151244016005973683703679264638220516480396003810767833113693855164975449325212414211437873548398795913297432158983957963561910251623100969703365862282450079183424650934718473346911880554343245997422442624953880374451026015394822061647133141669045622311441954838556931057547641305221550787977666246406921486318154583455205943553529009557824914884122320440218649757907095401466945984233433384861791827530404225072293179316370199578004848818062978730120058022610447834213722773613339680808849658129971652706523738649325879787808813765300723099815731661167842017496355631960447094177932854884244327935351505954650406992667215744106864064277255976107428223251746352928270039752288047740428739808379974653837547936625971041948556637740521709191207867581512947320207114623252766050422325779040338265946875698495710466794958624582066387231047222131930733634103400315363924776998314994555283379696645665520504035068382745574969887862915435220744448335478003793658043433545302977364414431651475868305146256897137032055818293044398113264446802598240056643494502468440894718385965912654124091676325466007192849722263399301107332650573386590414039868623950965112937352621572255271242275130069428691635163472814375555241684447514118423002840376985681819213623343466796084477140032073881427529155249873152356535531447067232539008339363956364249382093526202088297204925390301076436438357590479974782961751888689794814211133626268216954849847014915420897231379718318390493373223463028378892204917354287266700654933060142385013054831568000481837842657635146753639602930301230326274201591675741412343081553854282783936387951285125538476027005687659352995487919696380664329356329041782020006834828993886088324030480396403036397799606364082127642119754505603733011192008422762016651672975756247979872390931138647116387055739697882954334469392199884281625579154749456349209611425012051301941651481307969294733919213928086223667001340367473490449118518511992352977439508365877830858798722971089853428676500602701682915339575233950139226006826628375913926835032206803573152544072241688475296693394266833907411282570542165353841839253167991978050885094279279807115939163061393300961218485676202626650703561307717551091605339628440003760921532979447138355072302838676912164391963670076041288963839721284603020894159142182008966193733635023503314090224073689614841908615057775331420739886399886943444717445357208353504996615892703534187870626260475455733909013990934083909785790134266388687734706097144197486241051822705565677367318102625395608280192316456231183405587452755477977331085965378829207524957373374866410986030431292546783562062592989754518340681189600989494450190017110861377411124936409183386502071243715581031788985963173215000470467869655944426147561791992474380402157930167092720701306778744634230024140604618361171703625169802035798815120115172521374361022804334924187877562474834099026904422333179849628685015997030231392925138512614801657309995259893914652760942813970500797580784422800906692785906289190084495259390225545317273838053751434550257553380194355677470556510170243441830049340812756086455507177071061632353654768096569772167436190568323542298789057620342262326170397715158913953976680286661013103111502072679857566022354210680779285424761805071639838588033618727869220831512029861858797051123082654212940199996514613655830649995047441925858537700468481350207030241437856435913440632614542501228211013060804699222798472848054107616550472489528512333851072555042732104533873820664278737315830174756340776144895367510042816497559258895593921833767555464010103680933012789304049919840500387011934604353390193707618246416798912965930101749847703129955788203251748751054949605978706398328749969151494099550015529220210713480914187417499480700057890564644927911602730351404629915585388426597405009318346700003493231066179971856661415881661645506951758451775151652317876929355288014222733697071493078409644130673481894115836752198849962257773129269214007574950237602584285923703584921224175347001566288046215390810080092340471357428151959336132707690543935755190482412929812272286184704449877922032349797500916711878062627891272157636240628830868606331432537292314818132760442174987279663809388929833690862433498708402589509935936048286169413378886186208665906719708742481774706402314811848530232438911146806039233217285664039668578729912012491909578363631501992894539854691199973142250716535852720576586294330350474780140261659399119349428475296356155921902701929949032791499030425898760506021398004073139086180764482429251194075254851625926468669361122337274311312194175952273982232227366974149519332063765820407653451033800686502032974862758223175741479771031375923789040742074471922423220764529836864504747311996763155336119956176650082734963301067811620807174615624255005146700107098976624039840922946013996930153233312531032871394524946522809395397202084263310627556667326976642150261075643340488162835151586047752329630780905845750351725099219675479522803268219667541720891913800923689557848731001334530594019517894387031611675340403710921157114468845764236324761302423468284965656833201964430460206544379252095523390278573827561987401484197163639349614116851324444298581472477017450530245525849599546355806566341475158855591794210467807701259468849449318021324329082332432498361082514359534454260701561821641473791205409188553487463392678732097075257261241885765601145289191471284150322320410732053671097621039799474489061616098960289572283681217059654744614089642820570520740525298891184517015321845664555430528463704623481190985753852128872041271504204356764796185629937234779051866054207225320056884411564089892474836994161554750640505876577923882256564194193710504929534073322631893316791338603247134812235065944120421445472173090707145732583875213300780440325646668487690977485418112833631113605679521986633050762188067055099396513262787657157020598633443300246232962170020864460391660672445113487149024908844911164365270463710374343427004639884796752455480418500713029882101973587866823235772568346978656901090756809975792997174899625504235208288515529440799907764083360368556302834187438100698532091251601072549666518431350915186494600566891444746163047398614517867694253149644389821316175527883658141588996469922091546378649246893555543876637569373930642159667415054949220776660275626648561243386216330507105097515258651440076868053149629936387753114230388408824261348362132567452216462420027053146880177372132550760877500561446747389670888117240677952688786282628875731973780818248268758677729061808902967461524801784260086736028449216130098548350343800835614987994876882213551842774433934416115550201511432255553023826296694337530253186782589102164084373282772642400351271104080384219326318018846413389587965671093113019291424758237945366047310035935619156530964376097841135185850088199253258106425637816119667602310600191708526850567359006968479702669480235685613295866730620577572138104008078629346629602724929642248740841619639103977574607428762462096524581575473810956199980988736114912479451968654657721388573859300567760812131037948957598484805438475664984847696230084202585132393642914475641169842522048381126760698607830028604804956081029633532885591895618005086107892179303310445319482644687350362805180590825190630300066644254150576198583446346560296234818541113993310899811286455298567841872079852773828855421282424378240718143054357396273114988023568150489246425725805352786349078225209826503103314672907781200351399903661378545553139937919553722874935971531786744474294589904277382842735617717483215106997932296138496873353180754336892139258805752130138772163211484903063508097756417001267669684540604406163083596128166209513358839538553151678174196822260600414583643601831927284371970108448408466865004963739643291490056014058275195529960589540386104072998908233600566252797641342366553682109420407545327378159724772291326063824279210236035647330488704251261970053297796931876769948147346565094975587195336566351023363583600629359530306385290629683466874716697240449946156790839688910767138791311463365341896608307090513188374551443961592978435769726462720724013936605932262807665682925798105263222356901433780336424597186152120403591922775297562732316530972360859557594556920870386573467300550980334662993149320084875224706846433208637365911291158373580986590330062529705142816067474886095239589162765979820115587272933303046775952552833205034271358305159486992270651673736413237722622808466071666159764676538438170187001766753962854190165833085143712597049092627515969687232881600697839368723039058310165709735337576511100338648312336936367972945853153463475619854893126642895639247159213416866077616075537513817903670354305534033527557088558702539308699752453011087805911430797735641685000296992558020040893555767812228025790055584088894154600281330037856676196569488697486953486878741989325683533539452820512232324595451028639786534497530516366639552492491816975923017051604532678371383820564453283569884977213646428293295397788470660932592028326897944814379353874880055191226996794518151686091864126362708990191292409798389188534934541408208762739052144626887221511853610426333393896464043977875431725650952085514270294748324006552830410991854925379501315940908379816154233954798798691598589439446144240298636556613814488411376465312175622517924882697299362170055118862210669775368894669787715926638634662100305025654473683370815780602925619233249640649799073273306616832750417109965046783888386772701316102191155645732715978630768573060050119221911500046063560130343076906248286996679782925610024673479010147751655332777776654205037495202979578641432886695032127675481112747504939868034678246098061216600319903770726817568213752870407698667923976162626576711566754493247588560322680650901039391707496217917074782467242996776578687603878517519522491992019682856559034842588543452532584441438282198383655133429012515435928031564612414837587616903942117164359989910304547067273924050908639645027305088486341293803259226458180909388897100943728933093873695660263870065716668967047416618221096059249014999098787275292672045984492260223319158931496833421830839055314827986088304620607787738636666908424620362338706505351090877876556866678409712474371787688316479615768070707899108688160785216511698519698996842073699232404454313956002857794816848535877156594889755706821363963641616033348717668390987809468312127753410013064022014088918367703142036829768341622556304516309273157830246465504425235933129952154783346508142631039428898580308338442238566353214433094413808358912099820946764692057844438641634558418063321704303559814809372646482914685953360729967784840705021177121915501883096923090810192986972440891305169285981538866621896993663647989882300331008850991607339449778584794797604251388533049053986571182125822573650825188369376050082952428490338966265789685806636016678837940062391439806832160800475608016972352999246029508168908080501162435551553955294188458535547684386420572439397435282901769637177803563315963894304752939493669704575035834466810420567797544402091155372811449913836577928920284366719044168169937544566985483226183481010172983085060145161325728268882336767927284600044807420775334824167522296518826246895198018406077726306068872972352201815527781684279801296701640394814992045927700451944333814402729504454222879304728765059225945107970475788319902575408046063015964742359467013226510315646260626550747649140373241551077961918645022775626813300480590449454203984608602332350373243663631680342457465385599135476659352274142153752129530330197878314343809222873835446692296664571982990454342133845295258552246455377923450753300623399520581341050148328354805855057899020886926988589697648543090641916946489724713523904201396022740137801566164694499365535752624197634654020888067016525787738255409583445196782384448607533051541485101116025405605299631519169314624767759180544083414387447758044130315651284709095709168081275795314184194421411672988042968284626494739997755793760994538823939673658365800990230499463317043537393658500101391766896347403055105831467184907957145334509873566085852481359247462437013246741212046190387621029979748512590377290495237228718830051435544434790416068081107591648957121410976664704825465351353898342310267705145414926837832814438270075172645525614486554678632225980671640667115514612954400091210262608122719404475804944213616260020170052107639426858633982761774300829932773557702183452646793847981980857089053963853520242848940131205843577823665136706429607664580141064595226121722501081457539269160940198518865427964696414225065192735051235713846743846763262962878459361433931470864696538134496118809101263599090193328010687022789953961423071818419692771050469360048386333224881741186588495823664611727951266337070995216223354464975222999321089090362984087449575410501931235173882060422468555600593356010461086445547953655741329772804250841682466063460139128924355921533335925046428123014023783882606998428533563861349629765759327376406245758906793956816272857598468290926355236988844410761211407507308629742072823582234752817426428197637453651966023628783402104601789054012262678114311009000310327415731022447955311609785456351977397296615216059884926028297139994859567968810223596351274125854804781846983322087368909624978015213863270361404886996381069473432653720633374022914116939511544691145707786502835206270892328160033878283341204860221264577408848937421847417092769050825510504811893413013708504244297127522713047648939214670305831188685792003560354441516808737299500940839135948118184828045576547084974858749957749019386629082183743771028595842376911174966504365245665503229818433391164030851769348644315726942240622407798742974749929977567434874400456546201242761405773254694763879056005378199311375406038675678103568208840547903758261165948751561669247373174847422451840273909888718938360267923218874021452111590264248113002584688493250324779235157036436484903159251223271739941912765041206104072403395971833721139235458284355246996393759805894950465352474988965182394459388748967458291710740113640279541719472960761141751498620955622477747669559475683819528687475451313027293550041008230286949884048705845694098980884432820575348864776027483594148071630020913593813052679597386901081552542279826750203739351012568360517478261650540261041476715889443739052220820920503322483164489766837339486849913429180860864093862645596313165145979426779111703542919025708396397889094962723749153907576325404326375670347441754291247999949760251750944679393063668239867116715920894827102554004022304269925678029137281720471469665565798240160705265145752289699170549545479549042188733445454646352514396299263258207025192832698661860653183533190912634083374913139992165134726278205649900203368851361512760689031045025411679565384921187873588196796294642485575269743626389395520272887416270779613329638577691529960401311099787961903602459061178471757840766851766277358189880843725187719695477517375060257791651257394073681376578604872690103892502318897908578458510915159046655465372584401739818502898489087205247752559021609664755996018998574579416870165320805674241131499417345567813451891077338981687175994517290949359467467616287053037753187572756102098495834752653060544922698281637576902314376353429892922708820229585123851056212341651457322054008456263725848580160346610948243557134740494679181283356368283907362075591140169159362979240156077771682807446573213351336950930944223497119953244570704369449269994894909359797271966675993429533781110752114437156814572054420861030039438319874110292596704067893622272431925921147095227909505334569270820291167242112310892055310540713240538537467922889987977498839956459404964077889219235875103902497842856186743152771714959477796666495388229923204964516098823078094475618499709800220278606877404730415798315733390892598502590532675519643456304690329130433590198816229832717491319198512965488284573881318223048772516461119867620481398912348254720610166640620367849552433816754401682332066896173296319747206306644567564639280610888760892912970649477456578786426965846202822886347955502718598491165193154461095273962678344092194975070963528196972343607469350949677367605534680571512326145410434375774223300352374737482361990504065282836408708960243339996176120587891000880042893030874686212634292258311297026563176600056599912919162269113430194274277365809555990519299069679595458217338792553271442087802587781235516984447460188426011338323300839882802366591719506935954653170498617285208203794109778301684107797937901445221276057892213606915355108766380682272159174785346625445140290124850045736995908935132635983453813616608259982132713796381618674276605000768456818415909657035201097584123088585184258386804268140918905504448574720862536626892910935588963581578424431749471715914601535755006326410083676945111443363654311086759989472096601275609907161289189806792068874317039357704006944592733005138215629673780689650723740733612987747259069576788280045209040197759014733686541214106935686994600798102930517053012911488860684688992489582434541550407963836427090315071623841661674520442396947407750160150353589047297888879359740009124433426791697881906931464674477928365280435114401756692996527709072184296848797027653237142153094224827740845892854865305673883833127011408969849668768052514363674264324306059770748138968340281055254407511156689495434008112830587387603086702796242392525892920685484853733671457778065254969942207174806725759659154333597494209604896831869893327047474057427788544111323498464981011582557199491708836466213748638746978140787933851950172521396431132045553656421517257946232142617867813801074090293753736405577677597159504817180630612566668358367517245629654057530956806441530403054572327267288472561753533107848619415583795483780540264512949198888386357259764701072088247656646636766254088298304745222394146919346812936150802007886163935905050268722553966293821435458879094018986147233839910209110960505186723488406580620939402546880109837760601428774752240912097969228970991107950429721135449072931281386532945652256303417690569111569294074060793817138146714718627579778894089856295249273353753295591638874346433002027705634681445732077144005702303922023010335708219371403778935890383653311915836157466217981306838626285881780438297091609661437134376787011432496046815363712205556325912952854605323170139000045719579188807385975143497362135611152430494032474223932961188578671576130329114184284051961531342346574567040897424276465664272594617652484378626347336512089893824344059008916421627631605995091128741587163046046736201584418445822691288169380978543023243284966278427658719662936626129082607918197608137243432256226004937761569027457824367052918625427201364229245009257163196217478870484241559564157490819983737806512955994005332885355505424047064714484170293757228632948239267033751207747806336859888757076161358253357898645934080672530546637189559332789325167044521239437963574466715183352976345958330241467293632947872917954722974655385633606087913468919630227054722285123946908112863073887149607127172398284021602510227122221569940894988699430946017937519956571327224640911755468282750062684059206872283914392006596768089047010145581348555237303545017701783906040986884019571477066880202224330592303691022186157455282640775304724566266819160562139360232859900154760920757093930083205071071393766987592028307049928746530231283070032094505433024667117224548387399793724176005259951341592363698281988430559278195791590542743908821847574465987041880395963445049447734893272027850250595314231232832455298660140445209317199458489012164321636299442757471636915244687161464565662176023931057992557980097911413801847364837234509990017284910928363420034369739651533322994436508269337001252621469059201476920289668986905540705799890515042723391515625786592437778016952682261549846543737344440428049495939873454866221802556312367697873327634137439350984975278618782631721712744427643195190371777524537489436429890463971212244101049144209514519856653678419612032859990861092428618476457075470531925217388206160748431782204691954206162242787552043461835784133077759807976465625643384192719123030366914365414643653854160384855762515457547465329063984297409426886969939963243767106741166152290006887645306528108552945639728038155785821710292577107653364179560807030892433990213279353621526505285783078606047583575127981527984361655024468070632237226162439182735658975272873709895734121992421362600452270221618763195660843295876508251395112225405020388725404821733264678830088725439963024726279173925030089533841961189749230515285910585357269456568670776507179727355818607308475866311895420047515833447315175061545814327200795704647276332469969785459092264241629207522913816693116178351829804789830835440459323437211797834960646397162388102154720623948394675691616622632218956805517803376569238202142494094560227937339461837253883767670806195312443736893922888614854154987390566523982300368790099940114405228853069954406149120659221280424402668133986764641120471097376269359937536720643109914467822427361346753670562678578241178376006185984842356262808135601270281710311811440701845624337507783059107490226405792747699911864487572928418910576364904001222387160608580588131817122535052168935611990195337043476387576682365344186117360317629432258421060685300440672504964124773794177453002664171657525893394881723555595163760149855295195783283360662445431532923257943419013260031283268199673092368317976431501402804769488246670027922281742062623698453461379413578762475225009412275068052364153459861963999786679573581387040461685260508430213551900867332633275013817986833387886507274040409650369481387194287388307204643515590539526685336527539809317719109910222034312152153328741880190033252665893409224098863486792309690118017453762137805192229614171112623450206491004934225150393308887031417244993925622919603289377480271196066763990204450833368583288560848888286531212718379417507192946349639395913276976949309181288887058197394919893983500357846382590111956063145063344077741110106361447098749375436642658186340582856305938267928733000864762763139976105658024403404913719157758549727966640920475904958027651084506792612900125987420421829819801769576296748476420205363159478035713079742505966436877840527323741437272471769384031045477921581505543364991399361854663466825196404249930623399981196039252244837464850119506113861803111239204149880441184141953745485055301264486446742535527118709936020962974238330289099953067369490228573760883556710375326347407283785360136498042662766872280762785875225559918320331950455829360037779674116260147700573496778911870205250104796301886205100795297736986309961049676396120088201922817280676699419060367062116728498765666318793468932949698035883296430680652980696351420855019856384888668534308888409358690206218060671610423815808172502435469996843088988733630609338096382652442546569188811779505585683403992530371064227284796865999550645404777203171756255251537799428249750095666656972464636352956922119086652068094276541539779172339243754813699015339457177546874568707870050435198711487670711070767886877917845448899600510122612457924681602649601132105932057273573614579878576349242524072631034213146980835488016359141895297776099760354717382956605748851179977449315349162999789249524666359521401091531526922856247401972425144484040590318976028562291397125824080524048045883597612269980323279537410498640647672190345232690437930149744267703578006632140405714547589100736907846948023294645366450174065150006138323335954234636673854404869945071004494894033531844841424301880190587536490403735570986988812320412009531337663909132859220991347643330877704050744867501531957097896523236934143625870852970814352179884163738641107206184326097757805525742452914799958613764371304471342753331746072191423291421773725510433589106438648600261971099379491481375989285117284852869916817265399585274193058350417023497032423833355438447608259510278574058243678959152526643080129506711419152364612740662993473858365837481943360045761183638858416780882605353745015568887116741916550577317541914355579315774899469235243513477494653138228874494548076517447586878181911543734516127860423156562263433264641498935056505174829787315637100301255175365178656277535182453581673026436981528128063195959059015487555047582178850173791574474546856768731245449789586911404789610176456098721049336322622602429630762518173393814875117310699885448730077426841352513215584236521560247598417519533169682003889945970117546915376962033149812017423362910362379788144494907180642348582793139921496116300915370295640494731861056754086092282886267899616621324423039295455501773463526691758904791264488101181747946555668966618338319373528235082230056503169593844361078579880101808943431729871763127665097680080812381377573029684205979202951541806901873440813314588147381500319178662108854962502319587097896067353934296036646524799516371431491036724331868916570976388754770472264579843003188996626415309080486955564301859892580325848805979953951928456905549463500173651654042412273415897543851180006858568599306563918523830918835743095506953039494660072486891107625973856181566364658151687574954194079984776890396492941056381346810950943159238982375135461250858797011874623555015480007712816835577551754761746176388228264138096263311899357163927607144916734871955607073298013260525496527165018411040711097184480165069110741406977705887875143748583666567695633577762512072142648471421651253246909871037861135805953365409003619596240263780484170074085192168101570271525827863230107123742031435204222335543356932043576719819482210772524911998263795014075417155040971710037381882438529308527063021454418174548744514970851778927649966900822293004992393555758403896155443949236237991681230282347509922612287157568057117064684769054520631749378365660218167614665042695565194599968919695599989713170750211050457687475007251044584249457036418349349962717072418890443141564305503631604996073334432428552679096766477394085724283847558288283255111014210243020831452314117030127996012614296380206537722500033146970286402709091613628577417079138529076289773650313232750979682495642614534136179086235888458537457464322615056205842791269667213377252120033244252335206771968377745893184097547364098435082514321744799052279411104936619885822986192364490347149135119753909741284938580034234494692280282317850965940434023464993308590397977518927048163939382865109668753730669818596523338996875038614945250245937574163764129506617142360937791492917613649486372852038775490632972217975122350148697690733089011501418293698995260003479212500467297745534517559980717535875364359557277271322103402451475384125432462033549655733222526546068899235256483272928208436102288676535436055371987970675638551664640782022490134590600097869700592692649155537194374079607387132010593387631108104035906954231578198503568105755432204428125699685942474572235801542820274008658378185809394992972999116478769009944410446164490059877386249640446025117397473519010187786339888710652430736167743721234352162609326139224173588765266937331341838899736983592046774704267371710620575756896375868483110434110982279214731884132429268239611436330566820114981447763662618004388739709030974843446385586599986326662177730289924757792004932336567871350241573848398021755964119182521764416449312443946135048618525463980709135720097414954980931293602168905298104691130765517291601610731403272867257648203963771959586297259821276839771149988581716882348884858795864704597258258400989370019212564249830408046830937708769144414997335725942002871707464065668820383313683371379807429146048101195565364127354581985022002504733238637783892511064511198712913954043255907478549531466938655317710993667874393888997379604306172507432052361981259871786251397303504106377130160047868998598815140087850962396198195394194542564464922145714339428262672762870200639359656008471416411190789041873170481325593590601713013905577329251826630471532912190118104491956359523303369843026590137628795676516136857298480390116818665127612255303780816170532208469690154111175978194629788025526884079392258301625543971357952591975342924068686788945775726437879319787613742411222613106327473976264942599925232721054857661048843702358426995316746472199230353498457515607124751266231666126707535277120373090502026003044416973535539520159669249957997220526593821660742208020184311174581896563873775190570507486960035737944345085398060832723185454752798875782356402459706019708493166653120019584051878133567280978322668232078007539852492078912769777973755675200434190511386893876366337870980706896863619421173535959640117891983016885526231964925120355351566009486055187004403224853974196253880917710241650699986055082735003482888431855916433573862552287684821367247286668695294673612964576815442329694876958516494107263787672097387161767630867627875007069681492048863526221441440045640856143618551980102159807722038782871357063055253571425850622371094212875030528293659896822400349763364586069019339164250007797990643175041462902707770295272108420571376233725762363811077205067924852459460916879560355118027924215404961658465697233171257706558653809702160216125593622443496417632986818714791239701343431988578051282071352495820335683451181083254549791917687836276668795803365035340930716127625106887975488315453516914735453190304020777764267847186131588661890039093888439373939002539805329962601611917249949710968906772105467823314521170288473428294807485363708757230930051266109105965981758728468195426333063902519515316424082766117847074102063188584193530446774777191366578678629725163574867348414490716874928710579848049893172204616555693080153121085453233646120221887825844991105072715591433107209257370604913788097809633824468167965224125108827324362636450840241497097327984779460674922182954212801339551169772644748066952586485440584420320364027135097925896701086114249813559110842533553143423708633128587506705566055632944017424469262669777074697337160741441504157638938896821658880368231542220096119077283734986071655184895679952057146347996635348470436859730949193649016815635098916043460443135066812664300933401851738059891961303340784508202401170667550361566660552168227984271082251408381894839861334708017578042098879057556519324222229009062556392268562421114100667118182962858419992083144079479165438438964377649691152620984979618111344741370379089526515291083918660775453894124148703448182420051214297859348678020125758293298200037594138014804946973563033107744514455041847756229295774264230637163724117744761715594654145273726667043114695798747642613279995867596593896435173091239436848606808732721717549155927363136079747407263478660686781484296211656771754692395268734741471859492732471654189121317767516766641573100969224328475056370292411927835532513326960997375268928458780481590333959792627043652057367721294359380821133844179921644677090648162506904878964132289312929704975083311387279849056995526134623192536779186062586710797965532601993806493158228852605793602427739527210517629762205727214024530400177148012110026492968830446618067113105681708181004372244781757763382356217909646792944161483697429403700097161241695822992148581638483103509257436529621348072788498964988471681019291496119704771428612311811321482572903448107673215171749661880354484819968399330772231261119955196148631468918962688574335303517758968090682267413951485919597789934528066376263799899888175632906690105670436460621747355827096617171194232224469949352149228775364590333646279044393703025390426217251784041886177825597084875481506274796180593087295191652281825459368886168347605498676822631320898508732125299251013415882754856651010489006945846280562119256491003992557063855837835751279855167693550846073323388827057244809151542420284765698336276571068290794132951199221597454935663205900128432718050009097854535164411916760512091068781129239053426691051246063179800676455764613405475503248512186496185335453806169083801715617137473096434364521025053685915246324314385443881597372694111437226179233816338433617480312862929258095483635677036299978504592186873484508930717786195545883103222997087661616012542561764185439624808945128288497000985160603067413710605544917531081604491584937885000034146974141641401398778470127179424178970241792075679271837804065473548247047478552342432767448896610205813513129680286166822258490072149046963003972248256784598838179979655308247098223162001923269532112092971692867387259216403435774148923408005245038669576688191442012324898239768700866457327459401918034895257692107053047246717633848118988876320393129827994433687751510160367840152749024649127055549568861982299593990395475918303179436177851666985718916287286265759097247170080537245962472709178614889534043564467854272454749204657483234453863795525272099848500596663378847822129612679985454482683161291437182632789209559860667012139147826883554480600781872375141224585484406593489376546870829697402098404118624605822810100648250590505866330021226776438088099905139198074142963917494613523246530044899296647475927895356585141996363499529675115652758952432371758811678139576227504332236907510057474492306721110333395886049698165443264480658164334667736785956575356456189097253572192938324097561071414232484145189934703363223760545080420195657366779565002071563520661706971837614737771692797054993281149352256715124950912260354164092181865297494970661580940248164048865861521026908718769018549897529428432364989960878000860317500021844576056350776447701353694337540135153203681464908085464157193414022602911508275171575725970781582298049561983452661026517006244826637946525426730027984475241579085924267568088853969319121956741627724299657268074628656802599683823859326475509611189506705225349007321506618645900818977729050766605011547362419143807192295963997177286734001451447994739587724212018319056727499001536258130228802023013930863703776477097086369026445203535658293866502822320521800221091084977184749086874260753299247416603709376008117193696343311281174416966124722302497943081725426239212396300689772745053898599299263547713069899052580461155127107400570950756196835874615774529007636686289063094568757714000370222744773603304644318024029296596663766733295084795072032186162464905057489275864130556593566059421276415729126620246941482814872373010311959190521351276291080374321038325535595397263665674746980189405231626828549470448107117171009463591110931722019459066030137097891141215633920447094334921122637159322137724066183203275028041489241771576551440145943888475257528281227900807328003323340052348893138814291616145657766631691539110466581137507313138573520104484487512922809007119665965512116902819562695537560179088811120033259560482663543592918541873888221329809473596265408344952211853774429243613778698664584446270682597500559754765168801101660710038246241891022056538392117111586726189257345927670099727301557590740956276027508802198570708623432594316324862889544623361439793925576231469141893967853653514073232802314274676566423514378900316714669227281804626722975675073560540293123598644324894390623695903240174971009736581996645019562082899653373615092072352555017907156282076798995600040361705006091258747026903630976715586795980409338890464065672576067575939231782604690186601472512834798619148595310932845342482392831523485233750424643742518879124371790318171235873305787225602051254822601332104012918521108809490305171692796473039201494037913753585976258675216726674437244326685824050581617887718200877224311199319655835662032337489231286705301390968825210140259547250197383746533543010850565975241928192186436384114912493338665999010102647191263149714919912120720780294598789984371429545803938426899246192448805744579637606539361499851590857865481077517144556399909144839985214348997263173229508511828978762452285185420241445270170714664272133532974182342694559050855380770580483194995687240353803932745953269627245387180284619890466370114374378732901283107720868206078641125861709212440246261358639095493046240232843054483612321019325501246524931798526078232976264851432348672398917961242151743095601337855022776238342626069562362719083499403063394497809235113735054404356304469454105496646040945577945657070026902778156846582110188409639950522480391672669063139137104875212189385609118073128466026500175860977691209627949545313250672373035652335952307436693251994528466143062808985320923292731272666278325223562720860735196719987293322201308104314418519232847353660895126799416957274371682736211970758717799561900048243704110192621778839537036874028427629228408762665456455096310717230836050845130013170977372866408835835951776342886593477794872256145846330781664129322072995821981449574694970985416818383620141915987316630554588876169568255545130997877131230600068484089231304964940737436565987288506105457879511412471868371348704763094640206789122933269695258904854848858192239017522530235510001917162625058406197692451035119916841578640793678835533128818200019889597271031780801801695027995411529714663729592408905859009062382060010696105293349625031922545956709665857171128583922918779111051805576115930534509827153129745677740075384395242975221940265927970852027917057515492066648087607973602298810128407047565422112402832735446741475866225234478066717714366636405862918301962710058289890150372063686985366622375255355644749662224515424114744671669280679348743187010913307142834520665020841341951584903378754107243322996767328038837881757291995352717295397147678374377967144168191987035670205576849146847989544032338352080538125010240262182424681438171936854108656315239432433280329870479918080837476455847301311890425065599049115991639919411369434917203701076166456592581684630176123357474244727592542316817581725489958232491194516990928089641323220714591210890634893580944636715170894634808144332732536140478550046525781618595417376162449158868878066358668606590775975757932589114293548280206058773899268307973323610600300880258041228956230463360089712696372622219706398126362410872796444692216115330289938075139221639181744796176769743285247582039173556819125415246408467894074893485149807118073717111271655649096738989278439772795848615205744777540566986817853040665563916394749157495982895252420427117831050037903649982287977586311012363658507142632864877715056873191319489798406932510809070069251636829666091405571360868596014925819549881817241544357083878403687021882802806631867730964754698450195877010352248511231132711165984653528294292542549796687044290310507070903553413668227322845902770851782294578369641055205319636441755256448244610239523844002765321710068117672628469333112365885799486860807428946987899680340832655226926953536445733051790803181231764788796781400093294619611622461690850982845853927632912654635436569603465924621488182979476733778374115140197570538425315749198002768129549304974807616819656298187539065987917614517743067179126825733993175270761113767250550756082562898546640270974746101062469627237727678717816944679233013132766736253741521257500806817529054477872754483350360308433754654016296095783801698867258607685338580189723939077872372395552122083161581100010549850389861879000528426809675932655055456016200498319490810130260278204770450349353848258826496188569719029590606542080756613796251831120275451596974243907657746085564561758827828235125738317992757240981179238693088365474436401104482841053025639063808989190977228670745916665848993736244791820790826028556446545723412768865690254147074999177995033846271085548175805723120704801395810181143443134307412945708513502158706146728450506881064082649689391990454843500303559933314469755325908957689702915042659620355428402548614246133706240071998323833930829134402092653272205233866829596950069866994363159568283635998106316133725350678045607928314494219098945483119988391646005342092376062138151613969645880738349494415046102051490550249183767068944220807998687378242459830048315439088403207349483379787109751606955138192470530949142667565906227717465127424809373805915637718833987247326950743156178644452467090389011775091234408018512301316495122914178524477517150624125143688631938931965568899229438516553234587815568987520078356349169998316798560932851120071354530358643365337980819974546602073414298116117287921481745170177918214443689011867268730752522944916449501236197982089840337854391685383707935027302369784144347391028298318470446813591377800614070052212243050605448023538388650089307987014668696570165114581707541096051951216866583884064544960797539347442592229832978592388473273500780368800558770066358250712369159595872859448371386378176853197644454280702808013583973626057005093870944205057577032588263268164463843588357177941430195830736157830488614467003694423701766659028928830758476001057969520864200545239376916702879565007141383702062804465369795664399405599571181558555787495165481194273142739624741968488488220059813024973420256900905044648990022968103981809901437559330460924778739706712850847437463482364995725444938513184137853234416186371575783874217846887182925114258273968916151418581402639627344847016267145921465082915659153537193282504242542075385238592654214770804092977602115621585077651037998745092505335778240298930429594154139484147713059370775165316387879600039762817592385497853986582158801001550433223314544195608369071503957572623565651651831778237196371885841275197092864018809518977186650194681784252216390433961595396304704648039208346926615087463013129243580524369175197195285402971998956088827135534175107890389179061812341790080508836948455397839345272571662487324872364998068839435361225748997667902001125502979897234746432564771265778035666957882297668701929042067327595096850751687276662437151731285557074585809807590283546402459806609054926278076534152215260798163580250719428748069915691495733007834785219961224349313193596548211913304132712824574634859312849820506868746336404857731827449955926991931125633132529349918372401140376015719226803515234942885349393814617592479499524599411944071621902233313817417722510571519769660734012183565025776941573794981641862555428601357024009877784166212126172714552594801706549425981891119960285471112844526121268937688410136385029279770705341442607453256344603792660136008950363500415697374027082497939452720788934391717384684823418476399530896190851196930100390141452387036489048085045863873224041233520603977570472800272348908834516533925366144462382944866842612038475147323895542007001248006441838868257928754015387561782815088311083008523808230625613168016857861896180082833992285491468147226832787696958309544266447412597630500744061982693885580512857833021999113527326216922630181763644316145428868272455328114735205815273221897984353205877086692691104780311219814068411180051925826655987370071437259440537872394293403100958514112362058998247335120073354823764008736639475453285147030920893211138325971664556325130212912621253570167162334910727780119424420796151701742233431373815216359232825072101545182165442554002144925006873727646144941077155944033612382712841001478646982452176561666437878328908109954473120365839321139900429878540427748678637069424990386627340527664287245867350043555990989006575686565615916746732002728836668786469294972779023236343648062587333780067267296028060126805183293615261372659170686648987467169716459129275775729756007911680896934130674943618805714242182817587561015257972621753509895011090037014734817116445751948759299898835758149226833250322497095427065176273449476157864146043378704603797254337117336216096473400536779539740076066714801201535948325251890632950461373818622791872893931768871107040762156140968411249468032995327601636385539497473578114768684035282969265590000147429856146008163427449655380079487185948466568015658864045909590366817633093771275375908329034492056474837233124637716379455142086151381323748932898171786879938719197860460611418368005282990287745005323580177490597225403582209184451123176217822641776221740269872162256853626900899252384557373375683370772181763516647303213675032610312719221785683291402110138390045788709133970886174186855024574954602289837842986961231966756251761090765593140655200824700725286091711204263600066026492035799764506332470929609711156171715512256820473153203472748998694144272582365673000472362583168590894512982949864843418633362185662744580649553336156894465382218982020145728282547845375077844858638373549399858067687985778339228262401803664119917545581375454215290599527949623945607061270521232627568537751798179021011591737332751492640970791230160144739705365384389970621250783768198665599727730803943711672834763375468562686889250443042902200283417303720219721753288199514467054585723625666590910596335934057939366844955200823992032459214044521166532385356366135699363075072657958234217162305669072797300660778891431508869489352249766456407735655642815280315005524269220588673564502287824841298970920730606797363183499458796286057033470980610519120469521289660729821601627851984438505105810377354766439560704922642031421781057540182427300387687995677027665685866143480540290638707666525437507034478350627363229560396436705248840840208475473097854114270353906086081701190786324980829633528276940707821402930299437612651726529015666142805073880403053994782464518348073931822266695916622816534307641985676614273181767614198063473166502989523421329255890695074133785831773785129306834316857867630455815016092470341648593804573553866787509628357026945750551338062058318021686597740909916320354897002378213309490959193749209706885693533254648064066646153915310236261060622962772284543324822432915495378869793220283693531629501698105515602351927689097904502707972099808579726220466490658055335029032701949717378074147286170930015104267153550689491632202575815198589127759415350136191959646817445157153332321390794071370855574495125276130657563503130510750910279255033605201098124750176045765837734459409754288164287132298118037698760992544604843312417954681976408580675820610736717288936556530875003927797075681703694776489368244416424488931924421525642239164296062199757592365788475506213742363267038138822388764291280554222069432278281157013075254035233688583193758038090312034367234696829824967888134228657292650457057660276706935008396951845625984808858436312781408375433540418566876625350694679801084253380966180381361898293025989541243040459888424436958665269563089241057955081321423371676681009244172721401360111895020322135441943167439379466432884323467790794423727937964461225756082560094823975817821890584808228813209386683071758620763202565835639002611627620233923778960113309286246867044018789627260211354037219101497885164160764977403489130322700851901484901959159200622584710221530380208218664582178418456171052940613288473278311110979950806032152969642617254846175152709689743926100226218923260965516811367916615986847854839127122947502392800642124104035030507611968748104424144799346838518151467363210221751199769738561365731749758904802552365787876982593549086202823053622697971963963721787248753874081191850545310505556414120574905779977225005634790179145273151384507170104367349655215984137555289828731472072814102749990364072759077609221372337599025430658069695244364886812813782067941147949432330063280949166696144035549562784279256549843023364566842740340302831772030518548488762587537909473575229728861322789138895048002230107662330084378479906962638347009713732311179733385718466152698722297879117383032692669862373058415012669147977068192089471652327672102506389846657792374147538994074169072782701435753331406813943511758363310506415489867785922571199378552644221598607104673703128996564734543677064613001437884737454787058276631517307872267695250624052801054985117927593350814571812406046419959233294557940124981838125041783262010270114641930618074177072132915004940617612576061285009807730427995870307370199957165112581379725863444501440856272191752677696670532591034305860664930797597485524715604124250046136273791046465708129143553214551253644428551107669256690449944766229954184681566253363999224292664871106528590408994753508762030318358049763132889644779309738605972714228513434889561381707873766919404914269545113778418074075417171204785251974002869119080593458766587788077226791491058629667002442366673333580184667064449174627146705671021033108733634700766937957400655087411942615270753104542812371060442456337967410857272602033107521502780606157437935462337921476783766424798206791348928587344701712370356260798963007738089840874910632577641918253747075928466647119972412193088882346275269623436512936403386358864940744853521795400552285091933111209682226937255939106567809332720355001143854252064503329116315618339753636726836475600180260532486934761923745300338058861169208138158672998933116540707442201107307418785349705093635805537789049603721341739289286286498172584395542084384646758981884667513829549310221609583451537837746497471768469467229363877125761548189699549528749718294407612559871118253487825638802880435449225154729106039690080470933171248283013890390340117687433034477285208356482703854552854617460866439802150824396233810160217306036955653794216493662843001262427170204995300248589835636607266537328826655264348208824446639040022301209098266375290093253330037422659102133134598652355922308166599289752368225255705079601339502617830727177574721620721931125740927890560289213966525248359332513841500474807356234328300333188947847218990796289184031064861225411449989697391918556752251272318077651755667586575800416902422356424771455707020004948589414095661158308181492721238287256725951678727735844827354030615785339074533975142615858295270990053683926133116448921484818648467040416456911104122806789790763275759440868341928264301612143041376186872431606618086207754752808228421865058527505946542744323982726800519214185744112893357689675930263811932571993869728240514885958484059468096968080567310899831812899850954695014688722631539469710407777943273608722063523612589428432992752886041664536840043940815025726029917678051738622189688418456682209637849571823916527818590935934263219405129540733261005572503110407981989519046470587843470259891586514713916188754709644512219824463799832979342546374139937538318742388927113106465084876951716854471995433537736249014237780865662172349752019538474567681743530860195327423757488501537240171970523577243780774240198008340746614214119014013002774156666377594690349354042271477197320253014084721048936449691727705531850638945024880938216510517832048257157687544973721204973366879378311241116674161504745573608205308562483467361492767060321278323604120597046626688952717109233999613746472463741556612557725563325883493756975178988327625611410188957273817165002911185357248781729860480286681605532005319218816150232168879836637354659504822294793486823867831910917901808517925092672011809299348472579281148771448142776262575620338899652597109621351646322731922451141506772071155873236452450299602694678056181595719916298625284247458525334820048812236463558754949517452997291056843425905607628835942966790235789105803911987766608720153228542378413121454169705368781283038932311541942281066827935297152896736733125383736302508569018585976252936295713281190005056270184604358685538065898965743672688223973131071513878245781061805914407925445425966694905354340342228722484911347202835862936942023306038803509061504462814599714241137016111294752273503629468892028857535131013353939216211562214730139043909628563210520799819740677096353618578652963871623679704722086143001409332666686847669804583684666017398167990044564929709678260862780060527559968520101144309359432288746715058436503433606807550956097776774458175033565765581404648235467305920293607543658722261958153767149821837671263860289111222594834684975600471291334469785022123358793999870769830865932244951496853488870603906431628250208795072278284595628270538846638301073206140615190274540683163477462481056398203205852821431232840492104590405227193159531113258113424314120423956347827307558274226126640462073357876556036923305770329381219161369348441100805876341949598441540959798149326270366244068205515615612047862582442355268214982862495957016202610946793009418824909803550656615800430458754706585846197907296339255127388266050527538270689697490957540371903908923654140009390207660728609871013563423071303868360037737384352697072289927335563542749104988252811468163221535608872286256398391990043739048411463782588411960054545700961583098300494150999699487321460540949950788763691931400939226349027813691732468710798091406483425722971805409179864133967722625257420616126822191484970237227747916275171686967791328327052054882915808219567985696003605765101317469055041727108169711942858393843991734456082363200060189945410322342877977493679727756447225842115785149517448619188852047091852258940402569575589080576342377709162968650163399806377245129820267730195809620707686837392109064725638233141644174716436160998328147622917871708676667362765340461995031835260745036430756772462470111293254243674275833887202618661369573530941223710664434790636508536610601137041190107180105786025374845342147674090352800636037888675262034107303724059060733954571030595784791493810368925622539848097729999376247530355045760478261277117983198053015334699840268802896304342444944300029297322500801205064119693235075643671688043643620960315866626190839002969810966674395294939566677872446298552716035084516068949056455978468756716363637202927105422729414290951485881527339672071062766407567451319784309055964144554548089011592083384210930759075612292727248031565052100382436986555738998054771639367661177022531102835195092465962728804219737847360836995996588870357663415487762516470551942802408417829356851871095750840246873255149258652669189151462801721015405428064475881843674502510075134853537716521169974414063208579442088177154162672595651758010877566802344175580440266167872364277252133670156050810090632448882526111109598410275715342526579106595037856779233202615704805779323473852037924042067404253951651739642531606377143308768260889867784928871527661093981093076982235996431529752081363871221258284618826964729929211207442653585320269712899218261963414425759039055801780560994786349518914811312060879834601152700796223558324603988133209902548936647572752562944933986021310025773282596765318449209152215816840079408636593929609478593699931236654488218152211147963065846758019661426940009027745773027595616203865144210212117798002563308589345005532974497993285355198594658891962704308809052493670540012278711667528499422702450941890454595453609231640533089711726881735591300137331575719917829896781985639401106604231351928859723581019597079918495959777751723344070219555701061863107470359626032828729348243972544885073234107094477018344233532129669631933784580659780185747043361383487751905532194057579985469258170874889443754291979051933109136589471004564217948190434228930103861508318306830367637457417838014670802462167596632726801575151878220172828122501399946447750178768663536390985530828012815569474975224147181609291218891640318577592095084785391946929234143105170368312058059362454410887878825513098967804609911435602902588772754262611335917678235598603013599568593646044808987050014980429912064441986638976261962523805741491532528591885590907312987455100829691985324531457056712993005951323922474846424142395282579435567169584780881528851349980263589840324237817737000469432831225244252050372801805497660123342475905470373348461305515442172221144223688726819803170487993685163337811480270127603468451604704612672969934165515821469966313579269858880676668520354783688538381981067654370797147371817231369455200554531128640999606618228337145415887402544098573479752565344625388808118138337487315026025020586908922020888954612801336869271387221053076150458915171460534503120508896600387634443515371500835076620529123805826000948957765659110765816838869967679557941838633706936929873383101764577050903702815143525070089312186028605000785300880871367849095926269275584426403638100458570476653312492423309212294653050023882792481200970031993753026742134999515644011715946600942425185261827809169041702660139336242414725118078691147371812384348659791342852286356728309483666507269015438431442759376187830627095565500389963931007530409445614357335161132531605926965603484543801495147993667378945335689053233216451454048174871045749806066897689176252856274720842963985998392764935772915087728805681888255259707349475480376183640082841703321770683949049284991162173056156850403965721641211907102571871075917218520264886717004664059270447430417000819339817418327312006014333358825928390512584188575492294258055038867642693989770395443651599698823967123337724362545733102988588459845710347603220417272989286390729555651686148169379408873361850352718046076536708341697908622980575113256929363940626672942775262489121970395677208130973818578426550269945179391504987062535785137174227201680850607318374395979648913141135012011472382198865956843082419298247965064158782910746257923273123764982254212506286850396666094270933816910026155850934239394712760957323944206185698843959250183237319080942674496769171260985879437983228448435121174503348353878507073185732462313143287746610850070201438247810856200032653157445862960976765370364615675227644153662324246945753577901091451775879135518752908598907635672505577313372624931204243142589114627037650545771882069654049563627506598855477710583603344256491371193485395921784250005619810976494923157153727865587240972096604932507470613164733450723474408901646703917949051858435055499997563830106400363040935577081441570834298589349118363973234862073588326146652986965812744027663758549710300699343424906853123388202696178578350791189600928957900796126690803131625285691437190027029047830702500761776878752680606967031635404912599745350364235931595089370264010641094806629534812746653656973002813603060097067331103232858141779912206181473422378650797420949259449762314656162479198507174085492603133735988804147446853510755848107796457003991565974722928112283631564435070895773280990941309036946838684369673181303916007314248983526901347378433455606247982607363030103646735174339300337689959174347121899554580939627999895637712939072328091590022049911346478275267751633424336251346283983661968943680863960102231528765191370145470972915012204735804841666492648045413205329255302156125155280652573470249019159564623309193149038421310863048143480320116380214153495807033656253005888956192757039700002164211924830501833395536684277493166761929560022309762180404667934564620385237519009556629527145593546426487024669907785322337308753096924158259085219475026308565018124151337349584126212157029804294577852037770995099916601421536933980786109174440342349337146495819757652977451449183223731098299892931975412666082002032504657906299710532191698869039484840608031050329964295554792225135685996075101002425824987399557267283239751293374288063735563510085138517365515403607819288313664039704736511286349737845454435535668797370330597082832707421304272787749440051203941556626630220875282881215382149218344013976813008506519180846071604381124321456862142093282130353926203832773710483592752021729041208613643611321613523706633934671396827293074577127992442093202121327105294359126053004669396301371377777582863413256991161558057129479534468096242993367209338462833756815269222222434671212161566296589032862814934295390092241720665633107172715627063735820467984915897500754500173593140338308147965214837318689055230918437910756327402147646016745699295603620372772135627955417809891317629654220006553803984864777579347843742185338115173703369746485694847055116888710858449026360691519744788765421958626342420665175572883565025148224305038514095418033814948740790434975308556596884577077701631710345832839071297245409583421192643325498061345462558348541056911779602828421659481057351421281146434564295674926598667486112190859098423764206508611264633186074856464984243321473546426981809774955487822013527791748325091868088437925941219721480267844555602881124402478930593882430100141417440223781497222664194674447773974379000794432648256084529502719750784820539476797284132941609672922120245593074421619118107625525882147312620642306995848331001790516858450425270079722720176951585391328226817875614022967797694539918024410681526494697719650613947986713181090629888050284348010268182104092190539853505584770279704305189380044390750682789779937699570671974759107001625074117726379878775558570236226399004055245450416497731336694456311265653076725827800237800160474599693747158586204629339407755333572816683366226657753602977869514958032778021937519084567900323641642926178336960334383844870985603091123537183686289073271295194689713996441635579510504500448869201987711261655038273822200736855654184645810783639935196934922369504272123606183662399732764867500899207861769778075207884836810691660668107196728187711606546805695739803542240633850112485431602630846093559117706905248124428661353813211595366620979822305353572470259648251767074009499299032780267360114473336655925462392479286708484861380671911054952209487453105667187734170586775094330259064937813490718196045132582377538791208518841858130712559673977032320241666013817704063825772175669149852458970440884105052363388162838026261474009194607777145162339284750929406518062934977917145341387468329749053257101332234750132805593224347027566423595066216554717992846156627536742729949464304844816848857633107820083855066388908267367466774263070257608542702321819925321753151595126724679068073401174101040305960997601096655966849211772514646131385291847896348334601042601684421482387986441143680176221375480052213166761721339842568683484375388140022396241762338604470012027948166359897161181675510943702217629393904405303058575953853447731685167086906056391199201074574071364342103940389188350020268981079257323865185655056098666982732269483425185881766082243666296754859083714232101996996609415538237262935460195309781390307086836310409213690239107008443656342449826223979361680568451411167563171809036904446051677151715072287881679112632216018457270803258385442289605027102366630512951844555695948621386403684768287746608994218900813368305336244345051268766762008253436864552552964830443620870765411973024307525337587630237560456642603991493162025843304523198999626603236076784629530532737474647215496579855807742638048349529763403719402989771254363539308795204138922013454191847501362361548667365183048391229743736388104841266843673483719360749249260776327984073541456997153826424878984162032415447745582654185463949437625475212512783155242804923061641784610972775587803505149559199884190694768149271660220423046517671871250947785480180135563591363397493110898669946931171332593358552606997709507044042654739754245871301155834845276708293484843540410044714551773721118299505529956601673169859174602686981126840309693248197473141027553507291744770446754669147610558213483451956394869007058818665677825462839562877487135594460867260580912506387545968043544019529317466524991900954485364691086408407453603829574092921712617519000654363561409767527560298462143733117550922255300800016760601587301472213288763332177565878113343949527736897375011061947768190921453215966952928583065055705260846786989657721442677327483601276658555459470198531251243242340876407541564134522656385091485393753155946877369113693272565858032918140694697469848668142271039142035274397906391898821816659670642438719968448706792344354948218450493717724671790184164763760958837237650699470289119764941065784317944090684537557876433307657793752351926133542292573014659317830216871834821328861303839404929361426771462423378825045885673138845398819014170801691785927065912682735111069829263733346417503526905206822293198785123209973849052987219914512278071703505126470070902704152936911811187793180462819757283989968730085762407648556831508497147422084879880418164050059561258069975726288350114819197495131803371757040900445075550406530780912889223986900548935808793230525140918908442538255939802182490790971100472166095018287718731440882166871553180272553730365693599772819300300396581182130125213360724870031387422537210248731460113454972671948490314205921497250946670532504655788952875842952222796307081376817654415820374696034063344181627307715883604003833137409757083709503910331769334668459965392193203757477858564941023354164602360894549747261918539946216046627843490587359361501826412519695796328669361737761704424023986326247634855558183496829192714668340069755579183828426010575938317399599585811684613352033728017502937506726850540366627764230002126606404360579187093281562400471529812733079394595854037721311567458680710257291002064860781487699968951087911588510305279106597339501724169848411157977123990986007344459745695348760331987209355968069675142352313684365312925618620081091513102339203576163165935318553909464481544025950423310186094499342456283621262404892143141133711806272883328653953087093366195655218859431814771413337496142692073956835262005014042603826805133332829999826811181998083031622601316423105571161960239788985781585487625434069801923683369910548306786861488922896979794589263492971119699052606946999478058757616292666402601298833076661012680253262211951131984555911848323237004223853434085392913250531954640252002528390137373898298484798994826197093401783255347368824240263403438418618939425606505416946374179708633892591220574398112536843658405606170195540337066751191330848300147305240514472371829659442595770701039769975074822770172682149577944302196908727399154390205954563238414885561995520194758197706380378031838823471112122121496571543792608950061103265033329901488514804581514715973971893635919658266383218061696434741533008914529955765428252404516655580418969989702175787275490491701178026806844159787408656134883905648463898664719183852790915304794403121412234459683816344834441650023084781828389203221091412870957480951338656240632455995725104837480340609027762917683233107046235526721567688186131966641910494741419761629618351334295330127976458183730754592186481814811780593237899761720524499008969578871029569182707994541649657117636519553142510364230256370026795428544686969974968499847819190851549762030268356370125328718284014552868417381532283131877919767011699653787662800402179502227154554717079883521659254839250173962359538368999508265399761995995337992750941258511081054575953733960072811669689888545909849823270558411804610014314477608395073347414457441695694922304306688804131175080527044640264755684420371440590591193390631297753838392716664154777730272324616092736677165076344606868709750433980690256799925160521568512546463565820615128525602369817910404439523450418270857277089770855001514022127377742730234111936065231162751019911029350746181401918738643576945876010926646132352287454315866252025752001053031283516221411373549591491789338053002170017891101800628021157607427075100583986763279396732332136755910579980659015005704312020050394580719837792373423869002196544697773928618448718714909122418965769170708340062317038423545956867097733359723664488173044494325030581116296179465505056777906939287418538074233188540011379142980800681061136243966266408323245850889645988214397242329919315652050146879589445102270321693342758690560821972256802325098991545701055323347191037690989702047858056838670123035383099417642083779541404009947350418278837990586381702119428178855541340636438217316099027935640078479013725908099588838719625137508491662575981397788183147972905806863923322387611647225632218209073742521101973061932318162529309038466730278579996807913115193822588944385147168071330752471357602298305102643632018513890972497093172134947554067211429745016075415496323603255399564339366732048543396752122761864394378841139341490502638617545931651252052509530750754023102594329565845007290587591294849414645882458771035044732469674038162650305751502345559064799688664230010654845448455960697770242917371404250052869549578084898676264759804680552262507014489314198163110012217237299128566341008672323840234166624166627883473325361248692084635049685213192638283878736166502344377376536899568585971922103755428588785463383518195222584412450843584551740811740518789797203990421589970237919468182796918072271363706214445842278691313693769801556830492509000869948502118054194444280603463114009796744870542311003049569609862905132435041515418924961721873675572838990258301771070213552204068674155765327387182960747875485048290442193577083260748503986526219208245360929024814271598144624776360429783556131880479641723243179935391891410502408853386203666544152382300089663754129308363481191888695790746363583224935159500092542395429530041632733267969542656369004390668316417375367633877983170130932549175347198693349001340559285504662951800487874428910810190490857246320652869809611602121260006855740024652704467901227707949430922163240087500020339320432697733724277955701484768136914866070658366857810719416790042158171476785811335807647428197168333990453658006795785546864767972543617025976568327480950160642781458964902181344561056173092873313513479059171132964775011469449156616469140053021510095861142737134741778770443851007703184929014628379873863587014477412818581049100735772126384664118125193614824590747063701217676797856356692690929346797408448523633470871180187503843026822330325173910987760689201623449589086444150096062043693353386337688982760383279221794838509980954818149694616425249610000735039827943968587174512015169327008004646443707120574681101864750324475488157831676292772768813418144439152674122384971145013742403621737056375458462122575178610436723180672709843806026719555279982675968170008098881110205366817369678623367378679928277809403326260230237000233542381901079539382366053981594593168402146936335939581467613265966263536245105783125284734339967213740056018719550855288617947539240469711752047488418802711371280276959702556777067213132434320762400555268439800518091577710378267909646023421031186052161942479192860183083915314121346852817028148917449074761086134954599046820387617571584601551370272104113258295566509968428291281670626861463621272107864158499674944047028206528514459833140450317778200955525061412364166593392442631200004950382953187784683784256187787543865891681438158796504227336871864725975765685415304361189833676411242407389754943920776374017724807189038713795220742647613420728832432418556746951171604250258961545207723058521442197500360993522091215036279688957070954059936443139066946967433143095717016299560672589213206685338697861895281434787503973085578654208701555625374614905512892896240791743345592444469756170805168862576724242870678419726140915641192518986500611521414755930123343105851655226178277326348011303428900739149892076838910873010756125971879734429382192563784769068469711258325155499311791159838031568591946768963996316282555053879402902514452242724849786796450503700271939440580971264558873485342325156449857243143457781542409939433729109893806092182485260062211949174593231603770893698219939281184279326891577157783545577241024142700675223027818048938234380661930535153762140071700122454098550229897177361276847742030340372881270645417895648418833701514915910899291645273692556837922512196117858264774294843216399950925195908045426406168622781502487180016087438339881405912371416852238556762638727289056199143327947839194413561872620302674168332518899694678421477774144550016180392985283068952617199800997097065629227654347044553493565257349304538357023218895388110760440659800357872947019273948653003350239914711720036416927082580794380923848893410673046658393935941336284077016225552923921040195545750258865860131608622313577643749199628471658037820940080234629397328573925241988671843360424735171730425760631566844974807868419164731788168156810314691589513569312003098392528763310178007325702892024948919275984761682773357112077198812395112545311122098953671113321074614093327860700660105344841839615761218590033238704712952948747192748007115158575114049009258290780694417334061904582760834818733961100203850284566552609357459601325743708719268681035498024846279600088764348201498897320794587674069482583489747536036402521074064822820644534200533354382344330703985428581913956173381918245307651902222417712665500031415120592141995445915857484850636645484983459417542790359772429612107001499726358193550366976061176343375113605404769759167806212602819718268642242167200071965713818284085589783752521823429838738592840772717532216418500659727826837817618198311679739034289183996847175375261264580234964353796764447910611545119638907415311206086332890712733630456821738855769002491120601377727175740002045991861092381835025672184446274288874630664498605801494732429773237985166462304658475963700551312353768734564515233738993181691804095719998507718227235197990996013752730220177092495621490124817089143166291064902878498028526494834325794214993891521922378269206556573532425824302816792380709408800142519049283300995060069421124016888575613000130836203579846074996279646219740757717370836629204644098762841315482757196207916648304134737340180214544516086127396673594463709256271304852601381841780726393526012590900752597732626903451176338890722607340130935302340837620683024868220519082633200660627341343571368615022579194538771678112518447985871888378447492540999533609778133557339569577992708743657269416453660589806272404305433386769319128661767919811566101865541280807134809328893768570711127606014100037022971173601235850974461234703655694137707596751438500504007202497345417997279737179694900513518614357202358298795304317134026163334605328623408116360403510991785530937891930233635245641008966549664924048097246708289772277370722746698711728637021551396820034902787440975959749424229026681327125314881114612313922566802776683808211055359389323793694954549640268553619484836446731957867591858078641197538047554231637394318670822492051368986285934220759066879757691310032544131560623687790694907987489522892988798700315634086045936454553699745135989785663444273633173097223173100612771442170133680542310145928482806355823526406511953942049057540813711396111348571645910224302902171187653924923809081413521534222701820941673464314557824971262083505709083253287930112801611018710894757356229489687681490993381964427030184103526957125313517074979615084846418779280482951584932397643743935837613942583968902154372176054208826196683979391681202079244578250850574037835351012406341134109143300111178598085422113743272135434638706770443421261569339504377959907360703167443860307198705377838593224027257820297044270487543382129977414873839757607488846630325597324341186181324025621073320940182869173690450610682556932069396775155567850344512792890567216791359956965714795374562912415156279488515937721124993953541836701491007644458358449171038600256268396504515156258380891082760181906246866133775215168207932223658590873837858602301277890172640933262922030879675048126527030315101313198055896815450715739799963471439359512080709557608570256811431079580599893331623254433394488351791136031019002937040573861370821829068590084021322026278130808097970831637015466972629398672617185910699293979399970338853937759392230560719834847637988068911841665264671176778077501916980650215535903348849454238774653423559811983566654108744549479936135384581107510899166615874355427097596098097618777720954698907677567055715783911172432812919120564198262671977585369360755665971742329386212458844603408303533139643953002186079901729051725489902365305727016816026273332340057138040045674825692853997328549068885578100923620242133365800094382644964255357244493540168795045034766177940161701372068918039356466217448766050109867917624398095260192552512798320867701291209373545114845129351726323483048232294368360226605356073304112567928741685805032741601973611003954448491840734919601506426019939812745522362414542697938294809430705661132676766181539484832586640005401526968105426930110240720804145000816719386538437816440359257779305085867453796559353579152099243187692262854610461951976635338239233486516890644545031313805274567044347706979177262482832963074362820693118261301232121617899031119745094376020958793357258517940691970044615323715696772219900256265353689590777682687623733958456226029808651718523097991910495626825294601891980274712414878544935515172242705064039348815320645321245496237781734329288588091919885897729782262764737323681832052587130364551322808037071697960712823372583260954790029662581207065824469550346064421716188458375150552807458366626166957211544719499070606815813919391297504010798082509430510028336372848892418100662776326663149773123941440317203910275789519787088482975626031680447269558580383969522858797686524164167091165122116529550717299855357221379762279041989097482134100625597893924280806674827552559460089419515966206915003274582932489204767891522221181939438776217017700804846368648063825205648480537287118159762708903579404875815111242888205735313670457825086558631453855020670542627531175040880015349019500887792879308964311943993520802584391716772243688663579186906660201708780616717995591369789895569719520078980102563960082644167881215722801536970698419834882186824892145714209324796157492307627915742665432225278915530617806907566801104897486226937257358711213633405884037222436070913094570237126411070476672858478676281177820591815749275949748436966044632042003562213878389558861625392368670516717321200922970375093571401212519647185665676650586064537765419054156057176167333346065945435083578112417721990052734737397697839919830205600749055168525031132582607087340230063271684642267942505010788892219602221962001422385445435715307709448044993955833534234647967231770617554986362888325218498974201393302445366188435774939071241569702882274502668955893759238021418059086000089170660501838924883059248367762067270171365021446806434852302524039534899768905118274834340466853163685949299893708373824122862540109117775643269637982257976874331381603658004058891231413338574957461698647202191101720552836099678726517242962524347139128022535160364526556354753093399833249165662030946909739749372878979066871608472631012371138219991648774463005631172150780320927389458415744413751683554748563748382192508732516946078433260917516543519333949239365958656317595126716950138040535632480963881329977287653583787377325085200278164592601483145743149523106241046907814321681124017023987615480502886123805344459662382344822169224083706274296015476943178216442349486225217593264801280999363445254879927485898857641189968632823201096217126040773769914070642178907306859540691233477567698665092862628000948616990169685702550670013799424164442716064237913302483637659005622441265497537549212694801151490737648770223133410466486143743802091822505135556886587423431762225558775351111177838925549011664784407496570642352603840292334467484687495460912211802511581178308298536012431652999010503912689161767408472484127964238501276915415111096086531760266040007156810522555512860772656470825474272296012724586674098292464647679788947186851956495626113538620019791758771171371001311704612876008282889403196259764272339353820170322103088057996260204144791362679237762888311366928082538576485516763884729522863388411941214197300969856779193269091541434925745117367979722796870740333883326052677749740246745904280425579158109657321232676879521949877379827805139750183253961942775359136017589790597343281559060854826508467464883853959132271407049588749505985371802849417761160699269396298923350486981288217788281971161447101862099146946718200278069941693947344038852871822148062741584919837443862851257049053043380216186330994591298827111089111679130755995193679707451871879583998011291641267865837078057749089544209467700336842683206163164754986586201186848185022237257285016144418834895640318909561847924960687263629152012408953707540058018877944460674310565629121219553324366355871760761458575678886312709129525258989464099601817521672852322884290610670272336497653170835619224865154046447383063621937555621752801288326324793379500209908937939306124505416411553157194878447957781569791619632123689514119043371347195271188953274738784896718479920261861371338291154681149931517191259506955387256500536482502201991134961954782648449758891286071022333814252956566924902254763439830384167684525282518350748493389416146551356902035863846104362123470029852307439083436353767694275529821402706884521690735783307294620773418414965225814815336397700317851023541601270034069097487510941896759481627267508745624471117271290418704554069974304084229054258509101488500733008788989942784831432853675372781189252777640715775941482679365382257737237763382182086586798104264204110723659938946362120315294622731869045633633774616458061702742110729142100364246578733286368814192909708448984123161521832697718761955334008325616168552985262807544880750438236720968680657124610354220819117109150299799773874808625808557658560019998881056391391199435209757163647313700405646722171909391283730879922469848032559744812335995079672995258288134383212856513176972261025126206662895426783019057218842645727817394374648301152505998905760010127897291206592915090343148599328512385268538252891124688164101516601924013015545910253485356958148385947869427786620951883292000634032420161140433701691162358786425112201044160495542401256961867727931913576659909621090880438204228582796022052492586534287280938857921901913948980211111591491314285570812341038434713854265446324180927410539784075515170946920017236507883304307211610802106788409877526762113711215557428293131937017540459937713789273103507980615809234948887652886207393225497345608668035315031992424245962100261355590530833197679040604758017232029869896336545326610437520035929978042452368094170139173014119606235719903407766983481686568499689361879976821046367853198270597544052298406967118787955120093006477964449616187857161997065383758136142822637958332255342210644266099761663770353720429362511566549072249979924727452639438776735528925843711731662116289812771168737946979742323328554222027909553284081011652042359521805782821924403469722642933797314623199355243178768699352626517757560829461734933002329905792007165274328659197640608098788858909204491829364103933949334037000068397755988037602500965086435386144161001416368758805429621473942437836344681873586135645242055041196986256722524458950819293152326928591335962104320818434499726726207869809051867693782083426753402291446574966093148139249144785181453065673393814062156583541562644049602053022408711718738891290416436060060537751149040818518405290213693843935567180778877620722246702029915554777899986698532455574476385137764055530306452453938724948659616578781523558966913296560693189964431696067149916232246737578907407277841810612481901949708404367950685042662855283730208194162585672448445639329324791695980938300652194513766214608114568702592716260406033937697428386387526259463005326226974765863003122262472413260466486163127591655337387932653818908964173031068236438078069620809243029095886083512191521501624916715763226835227879749303988312364964074027172831764351663656581393903766420618050378144877858155779528436295247526381448542964340539575139420729281556170983767986616997940858654306887542921983973430162171103973704824679489057490184746217609955815544203678419605427218295215149697171743586362010121215941289963209486562099085649144100438896125573188527244599714357289360415307868743940633174956175007202191408480417039571857121534583642796904961387999322782765318215962829332416007189595648903051627762318277962661555765529470425198109411611691748400848270954814218251513239146129147205094235886352494849044079903834976899796049569483943175461629410699248263255498748074255021115354569973659875400089928835605634759280489720648055727381927244447996488333498923672863911147234696342513210631851780234646404070099647676234884727094039117214475390671189156994429800165751451137804926030237838282649017534587551250764204011290805422934528008597596871038712051160656272197139256409636402898008905255794953866303735561191073266154356224200911221210871186556556911170206244438799473530641645961502794862312912429209736860125990639637213093503402935834926968097806760907460939051855423280072326298769217796729031197369540428454718899022837886604273499420718303086190701884228576616636598324265917364559167941698769671567337826800194136579438396808674672910140148725456520135248184688398687605489696403409025045062428298252388726426369859350807203038635667253694365314467209569898086712906087775613344297585969882047185147173008526947578139637109031481902967209827214419726230352747895143302629646346906767018748626356535781364055751170465334404560585843259224236112279932898056596637868826381778246560445511204023100115166523943295642149269014801088673905212541073648817334727478355623977580554451301317492150783701064299784024691458526368237408820893617840230685136010767836709581974066443001700856384972491722628065543963384152240505238943120074463751454282662331399087197489857281483919951006838766653150853883746820516332626704069713357030434829341608298543266550159366475520520740898501943666170864316687715841632923064334474262426656954814090659402307775059623067610129358202619623692280815827062831570488858486345551541724141741015449360335229991750504174436619058990092881117608742084172384579604933021420897100211450911368697009283216487519655065304241567803929802531657524503161123261159068207174615916611345442082258084937560695117033787791679328812297600607798601838942019829134578216763743931845956250259413940835353249995253508075761676983670957089097708423911686336893838740154003864120968996065293101463268116104309207768267811511237038939610726402297298896851178381826393200483863458357602604358266123002689500098674668223939344283878815235295728108369474380704900871400618111690333873728480091474766699476675433647310443846120661908340617108216613785015211889898076293871234052582413077849894976636443088752074142020202730830634193933876506393078474132015681697536365459922255201700012937051937589846105543756798285577743440475648017865888703725170326948071816982430917303712782441441967906213913916385530221472186914979954800554296574882863982126052282623976926048651818669107837684024690563976073259757699651268585513706753389093833632565546474089336089486796183358655690390698161482483083332850801579185724132973732076320791777265178552671425086833506225745839172709153186268594132336987043001481451554864777779328705630775176827976654072232692515132588773315986557128794340597400852173747903121246582958387041358526634354082883123002851788356001265138016425196114512727881509852765018613852966805896400406966015748704301965071335954995588668306949043866458868022799475421422243550360543590659374045151088934543545466615343788718082535824304735922640646093310672488011667183389266892779615541843181970366451076578370505734504611206097961691747464138068483134754062485347749586001114044289942641366482734256869926649014764236775818910873123944386241380520953031528718290376016104970955183859262035844636298600906411193141446499848807137287809837035838691481058048601423381204518608562628728145079009383849058717303147792008204478951520289112258763279309815177005252063374757398910752920351724813173030249852091219507164766677694926559031192628332736509547543826875174392519668263611554469030366832907121222455197215015110225276563344023141436154536922870451942736212918780646465613847477155818377043809421532353260681545899765617520641527880423668775435620376067984029030999692371703617027762512388289959902392339306583014621702777238993080700631419720544318390595060410703157682328136689549248664241775299732199678083330341164263462963195881865170728753315118013582363601432373742015008874462302600257498197739194939630716068452605214484339013610194691321251464095701906907007497135277779164052183680504074528524683530861239194198955202083121692017611877801734269758852949360149381841389114805959181936726850135327813085307053553384398288105041574739960750799030719694462936317286927270271692656072948321129998494809621905047518681779938592192706182370965663824369299057316427196148636359888497409818058648398314498560911673781726359205381904648483429728429775576905608423672929053326495991262436919759247159023630511337486768869286050340941056759852917396367083750496205120024699224219583403347501009807587432262734784311496000178506144643680072423593651237741077658483453541991749085859148971603482493601259303444663503065716106572803643377109650429922597288228506284118001559615127264278647884532205039193648457455094058389040321135795399778829302044127394322423157461264350289781971136587359446723575560514808317252618676712931374823510991004134529953642891186952328383047363673243297169659441859306319111485381222416718548670974674835036212443052663525129930318683490414245823888384344387554785250035922627726795295625601231385351001602654923048676588631908260776989316679249976334937851391703404010230349111019626074990240806801438152655509632982378895994405477218797076744365640818889189150538324503115613847885389522372386158935159178560283110851501891395732444958817757569950005485514531360914177688131069941613789485791893177888765649438746463372738930724265047900112216493920093867002505796325526193575787232717038140014075859044626098997833528383589825142691467950235927717006533907286231741558126131405409562425012268416918559620250078296140843777805513909868908584882974298784013640863055892819125529119719414642337357303215071378924994327399848037917750408626296083326859197077756580992102186221192162697707131733101238055845898032970031956898743814283949185948976489522867285475309521735054940409314755657850851246953610134618837520830565345301025311201036407391792518040903310684631757233355537860487952432027183963064622224474655764663262670801463548989068043643221708388553839826674451428307075962785192571143340073134180972429159327378269248795412877178870652817247423362826567779843536678953437276075445721555241813981246697800953780618402483628009705153331179704855285151399675198944900456424218972049389295447393998324348079744601922106916251988775203282608845593400054809121014301609266666172375823265301802539473943849672008196629386327793147618580200449357387061191710034414508102160617631125659804486589342376353367679909356534727588090027231769032102561028408856875051739474232054419158339727110889588992828054891197820579434033581568935331148944414897161487536184354198930961398010131214574422818519307199814650545394399732565405934745369724702945790126975449560453601747756358781357429938067886549474709113477069695438647089488048652120390551867365644385273103193661882087498178397511458192651442494165404322557117546343617859960277387062878778922341885471145211357697040471713106426791497040361447211502163976773719548256095017304268020264065353789486402990179849086414965425369568670377253222700025583554410090631715834514240401176596295439268904838376466905267394122129171971489975100805743651736524658503124283254222250514825529741547203271943078208963754639024191125531780144789297970901273278574744435834835277402372131199828622286371511571953546328264991208163461890608360870774704818200233010561664520836192176594263885366559988810583914166024729832630364958798985975053969520927796475433646970701343532558336219783274002297773368137447139272246906641834818660002174491558755030714771817483055040632922013692804623349524982278699459108608733442757328190881125186072376096006132320949829688865368766918001467034840379592825818471559184068340720612322571939728123346921175477851992829555877699126525132130227312947857620923842317612057555871538252690946667099894414986030104551412997340577363857537572772384109820166826296081839418170789762806941531854412424418086809529775528608032017131527943934515322857022850000215661747941191112607592751839519907525769396802108752655348034244920073597400483466149578366497922615378441378012005337227962507998492895377281643266925275689955784465404413957246526877293876153599357846589996481450309856541145085387045670979739484376773177051175714587107550443300438203826775040817445631273719444512568428313106633653836717714892545390066207526510298918604132664554026500079178785570584175622812139798131776443767644993535293261579705989169406343151196678081770395017870582310946130223544932959498919941436340711251851911142642480031433108837180109088922165756738242272921188872721262827679620105355272576381756053104982364744356367507931866140466191290159099225008300236342494322016882787733874314965372597438796260590644245387134622304222481516573175253880753955402069997460347527603581261259325537477120279891002205919283708646046749964104164968284784852885282237052465585107035115769489816483565035154734589802202014775523648187068598139161801681199204189228696628944212848259242744044400621577820262335605604172060148573726370513723677129400794874061436655301707661157666529800692005780388771157040872411914216715302632198482833140812044237988059279689635023928230614722241774921193670595629083643078619020298401755135402036272030136386660294825669086136194087983628711111397756417610136027515770400449862198770369248658236280690375231131646614839704006264123859283471568007619196608327352991063462985341268906521759029198926092141014573087499185037497992884609073954896685335677855209716352334831515839771882575678426939072348560188562893823477475720024114611405243067439597215859479095644783514983795312499635179106918842370513131906071743083640675064619001504336185350841243087628373771870751702143228590984702880928922069451026275880920136044614658765388757465856274527281929789197883741850630608438296927889980769002070353220528427609756487361192150660816396516616070038193440043201051059395117828324147665060158877103549968679498966817338014454183240822897081182018153287306853922313852470129676663383928854170688324903428364287487442626486254500728292796040965586308279710094043300874870922313192591348982745862731678299817633132914635866356979543776300540617539225532399325345155653857337037795490805619504904875239476493828306413616848711888536629726047015732407375379620607511498561271176639423863431201920720191148813792217287773007808716460280803245568940016574666341463946638385390513743010399805978586201591751464388632751164279233121578263763060497119873976198541595318417970800472486269383000708391282238465571411781453044282506796333296924210585768403227682469512084451080784138355963993670319040698713092164289462703046661107320512525730956139767644733577513201124608463399662260351345600519168910678310671454960302866434959019488331599296236019300224115043039222917321130147610566164777520546403648455815423741654586618864153314467680974728880860292490039320385445222970751244974259207224344212858990219889690246705280421826774440454789731588052111419285646628327866831806903174213612621018344419744507770363587097919271081128406295199085276495275620999438716395215517215391003932443757628472495156413908728345147579831761908430724756546925705475616838088844370211294454082301338526666635681993927719556877329111719788011121410887889327449111853124644067252483001887140085830353678808693794840819602184823424549062541509988469726284476426650369540780631324073227151670594521307946182598250608285706258126141050474412857662365923354235568267466569172631856153436185874012879919281346400523146516231425821715789968839335849572150545830135576359565532464006745524349990064899702869153360859114865738204581017422969976549997662006717043655488974060332909750806104422949404803330103450971901272309222748503532155590493913400276467746498148936855871391293379598549041082713821524663283005020195355112377961251830259280037994207637285193107329088796073473997932212185286241934376043239452180633584134286909567796642304273369631492549396111483564252347443404768243495404221085768729042650819119494586847639889952726376201944554189295842796648844691691234241237217062898285564142358780628719998142982385686191513642366031968780171753604216062943969361730453498662465875900831952299222403664276681655163343654644996901855618481988245904233115037938478778462356391700144978531179352516337888084971645404183931396331338164434224832048040748612434003234112267222691746727596812385719868436177254763219316355838124745314450930553935402134245246351299916873040197803093707534052177661641032626250112947281094752980096787938894328664079974732266139602323636598538917485769900403739546937197232520844999352602671687038831662101716615763807128050490801620042835338753504603901487555731928974298389555897853789015561123852261224540476508517185450832383378426840052416976845864443215759736332423650147437301482467482317263875418634891245246153378695737554635676300609678741175086017092759948608615337566852093381755040419273559792941620203278591260464030753056291152972520084521536341748867943372567985114479497187448135459244195380990809606169384675576793578515463978367231505470276919140922565211896746450365720668098247427741726299912316460758990689605764271719283645450883943687897819901873069004158955259893762436417713083135676287603776280162202577108587000689944816861363936893025405040236380993341299934487910381536147553951837495152553608343868024758605464777291189990007851366922802402559677099184617283914008805068098126468695569346859918236673342609202956958485784437287464583807321537949968322221085339953320358893067010246594172802612990015362911482449505012342391523759079479899605378299404139210794446364220108331690524841890717752210725969132549816142381134437880482372472172253933140385364891922020891723075460955122013203752701397264429008720213756550672686677090167106968207289688524456480179586532497990480281139516148933125644561365533406376795075000041858733564054987992598574006396716830429353096484382824910172339310732362953424656559049349908763763049946085722772470776904890841153494131365092182239652258606296389674156248478920767556562121906338926451499215243366624709417365833225418797363922471115082498780346867458532846479196647126263002321805133018950130173591694261284648318817006066330796577695922265898489553275938944792314852250467902845201668781474845550995986680389321569438322958155882182573468324504674069954838122976974942116359491571473758190716709676917195809612516736173886486970285808346273728378451619296013682256647285658501887665124345337342845473142238276632717081474194594346509829649604755265816373385593563658084033412961451609366167011297786866794925482903709326842494847246506163759988101692815544471085907898439962082665550058630862901642673813983865474450255930166234704715594984463843038418602321704267791237173590056929995528860962652506830031671748586649891455792548734972744182743259061351135253008455367157745448362919394259260616555568154889154213595885975528943373918561506919617539968312515732022896958510316416490127431316717120865231487901486997173873434316329397804369513217217326535587283120090992102855362775012807749699796651394237160700061424339226442167856389309800797305769514627645857811185265156938610081245493144553811653649560995114778817991890798824330403787278799230139087355209516455325990440580801232571047396219065663843437025052132269253896075020878944629684565667000147719802770608241414891759842425980350035926199741649587155321424109725697482139778318472140602756440911675709203396300206987502579509021253094236731963360053389947976194888778268720686659203668979937981488199848476724738773630561664076620978428505698987480346947599316844605681931791367953395218622982405751916226497046514105566803249688541677515443766015860401059538592940088011555833456772626689052982407576138523614880186396604060887178959650420267292293273936722178977419894012674326692091289522292965113315320427767661218124029096608601750942850761040982666245787287831232774994840668283423819064348267997232045613965340292237327378008642045988376516016972326941736012754522775857600835381478118052148462226785575191537570583505210152827559587760312808932075442728329011597500514206567260591637871448673400069179385044694382566391969777419015726001935496676652245993688791128497867335533823711960543025346044179483757717003154561698576786621314776860344654109679204653225514129092447555958402050631811012570569202006913761139515314650412995380493571141171286206172254544345168534214660592682928436880507499285154497609727396245361596494169446468031967330800820220644657654009140255040624783226735942375283977072891513075240515637825785094925376279307832670839331501475830179279409698953700297957029634706980752454667408832765831917465791980254216214836769974745022278227739687840918451397679447255199122230495968587041338206911322516219068259569903891694378428231916879861629533181979500157988404684781154368472221817156464873130411318995085406613939586971516773135409613452011198291982588125508436668558072108820308393739390225147610876454471952938112663499259002940612431615548510523862956093879304008248173208681798769759583010881049338568902796709963457785448281369618419050223521916902333144394034716516556315666052883122178414085879224815403356903826303710133113065209095751658147874729387715409320240582035668499559660153573192375215605511210876704044250337156327398888429330528187590525552568675698059509997937368694001076037984222226834629258553730596737353213018554326636077162511700500233000043999013929920030698702514504370333001960786566238747614477611268983211119059063129949700524516818266273871341988774792372180250680163450724998773371710315654190674169371318450932864430713763822705474897905999138240151341942297817017209178547419846209148901186776159080734454014330189239644529981208171793024853316283543114191471269055335068463173975151997997547299092874386857067103443404784943147050251134037157071547736935129524778707881730554167055122526466874990265716343268478498421019188282772375124380556558024431447202036170735244383045257179779412115511036738451228624533896460756101703972296380041354289882625714372350442869351629444000300875444883939214200223762327501569400672529438055254301086179164070017258979262237252110918276622059634159388767296598137227930686611777045320079848819069456337636844018229484454409470492455116654578974547961043271348583031891891161952610405416830984435328963023821997409957090975900823506489038138129481989657206680646500966596682323327369826643184511813619601643617462795170627816902656540957547202437025804474631927696961603617891610197924608151358553927968176715126327504615454639713803457475827600407071959134286790893498842744903570735088721545011121996692446676656307587929010829220620944072247483278646346678191985900978556979643105568362929805791253637153597765301263341026839607939321137147610723146280140514680596747480114577455102162720833794459285400328821546427511937018049764442897829027830906464377588589852226080738186064263451266986968114994273397624131437421625381609587407960623891327510201278093719723390849974869902195395714628273471974580380840514149384149407969067301833855565245054800035845271096409748941549048761111141353684069136374463793121474752109346193940771957546660788016252521956672202727736886425046921308226879376924632339018263993567836030551944029600975659356471624754791450896427249050090027359469692882045403820901819810213131491404529261509098125009659803429935172269753573290804534832135052575520296057850686834905734630765019494042319160526431055561022231446312841939856064933921879853091303790354534052387956825502861186036141041759822773056644996074844846631715796381634010529953029129380940020016123020203372897819183627964734111438428498705640865618161729537418046097994440705128989549507605405209741203985040921540970327609276308328988490140941130906903970900226184084214427302572551054105556588577400850506495150766911324017488462074792983398167927443115876307560649252355539263984363570768637637052438452334677389409354066160620504961064319343966317853763264026087687697015590078559188730416971088453393901478262372564827324832281838644821674729014804212123578417742643106410061585087495232893641817721880260899500785377064276983466027978925773937695054980037697071731250086690765894953221261855022342905090577427002972291252039830549113508046419936561766689382708844001974507990798814214945385100749560024263252030038026881368694523560943773685227073215115968462503006922057996174373872685735251124037066772430636895000165042899776602519169168612385749795221143807327367034729375711595067547523603474939391772954360920709332983653439055056926815937885781645930052631271077323772518755938842948998127794377494873699992399786183108125029546453167369734471211099359568000437314297272338719395039775697008991808722139355846487473227485176695139470539282576929793452471724304683636814500916217125340100339090877494834453847492585153202541240191881396578311073168192385447314198948647547625961725634334505872139719257245095323170352246288825773970427425785797054114607399009170259154082235552520584454583532549466695126411434218850704726199785571544257103365249040739169814032232747398546572013113766899178758046637725955833755788630126770966607627383376768664277326798385161524391731566696151575635768994539198241068796791974441962967790637336259569985532975112793989308624742482496978656315495858538061541987260433319821170699012653510454370975399557924805476887677404888516438819973389195231891570466053346141579825605919036614754504612776600769567942062758282227791190979716821864358262575601884958228350858122428895443554971084873475933188913086708677400457677047508370655440309595543848369841765762601368739063008375183817261488371841060375268855598091972308540376507693463829951160922560435718467658867317190461126582795712193373094342797019917945239900417092140001330693051800486084541945023187715642303606114164619221621447421558782070695015975394355209814746646327534653309014003079060792267463322284987671259455454120708686770091564739082359365994891913811609152831696835178105653292002562045644273230592554588860426337693901174560070149433454922219001193960296269863843752109137104718306106437043328463404199425304594413667545995237171242083751298179289354756544687574415379897412599837293692519798393237410515953139199868524431705574194394789909606516131473428451887897377968153971244152247108429509188403698274894099434781438704283443784612308152222690207702213087591982027397897828821626465826575169179502289194315898517987935765717325638290656481876256879711646190256238082350165296355209987567537730241916388198831374107077309567485284656184899836850219804464589487971091756489922527993150025101004788547332155089461848958647670444068574587315740531792798457315637412223591556467068992089055660345403898011217807332594200358461648715109613540884979538570746123830077622550888390879768666483796595199767262393974184304775893734130312751892655002721978760970088205867689220228620091537435099745379722424948485053908250021645548586331072035168099973118524253711259519430658313897469441811629096886184152208267398398379357576588468735245675768765857518958200108509394727642641347460361226957673225301234684363918551124860972050807746281418500412229360074862467442176202775012976156460827519229982026998769123185322463425563172960500732141138088824320293770316480510074647460171937288120456384295727412517484557651433872408773625275660338174809272432138341365524494844276892635144082868782819220168082127362270897527894559652007504958585341511456085090590239225006564096159034102082285714341870800993878671183405119496490226695384496539655848168295704903084424546167336699211367766445264393876317415438066611282123670492056880139198686338088491433051951005563104937283200049775142123958696073912401096022642820143760005131361351100959539503856780456591004370903838561927725233599669701124494814229638248062791947281465447805780225524203225790400880370975891958074180926066795775726345752993039584425260061216870891379620459368474611847629546860508597540036816077667303927709538853819889343357676616607662514382079437395368007752055092178427718588523931850973155995245654256887100131126902934882454153160634355455939697909635060823711520303513905631024908557657474590460469505519701332543444392963368623748766692076010238649297837682789787561365739281570873155705768095413835130067584805503982493913062046338213950502830203357342833046459544547543045642747331437564961634406833852480165844510284440480790176053215965292984177719593500130457933583375498245269248374793840440934909533086523130225013603571944014355279353248702996186794758043080574949330918879559703463820171353795817424340845685720950121007510943322924297556738017679747681560162198488844083906973844620536814400620594022025360452718483442769576662246567855455064325488095865257568607588387994365558408447460486513242850827468435667340546934340190789439902963395316211023653102449978020374970105063991646104768721367417295240523875496018254321808925564623210534931582827769646569348812186090983177357572009918609139751004279572286430777598866209141874228249354712878963109226417900547712075886193819241612957815886912785519580880963493191391157443730905339580771976309259576032093936941600493313936858734484371912685272383245104006551785316075973175729544309430812677381832511572346013480500365462223136125313371616213389907586002621261595702656478535438253648309746798503680723373971216324705823540320583338499581972851947974520792160388369882530776168469609687140562759644844137101616622371988177911051898772676834742052520117022130647190900839503721936583315800648882382735312506920208492482415926449848929511883806400964043062747157584715825620647033977121718922903880447197618547779656744430056281158209271607921047955509732076166695303604532678423480034469390536130902565939342397127133033435970838647785343632210483579153681318870603939244677758534729731753291059245828957995041287392548139186694734815298085749116952985448837012003750052056612526864943591501745794072994662711945090298061853430285128657540561584535570851292224519732495104920393754556985325548552520105296621786996838528697165731673805234896174285296002376207345266043606711742982933402676190791840010872204657682750960910168302988380816735388250672380809611811803015791920240373163071282895465952801830287755913134916841466970169059530381335240731351164438256355865339765189728279429975739404649752188009248958382311702728067744301477383402611741895923931804713585918101792017634970233947621839808764721054352642741554411463972223122637071761300601173970780756744763271570386608951107879649777179520588593151510947668479960353416489929472018416078038124765385865500821985072550418069815538492165211858765243177613856853373414122086999767170580566277370147467282692813038421137241010324240839764600759976979420919139937666241773870252348268813009972881124625565932355290891912058455099575345418589294034073461454893589249429396665271882602349359268945976924818934119398864479432435897662745467299219524754999558568647919376240004961121094210303438944095258775021435544683500528286778943549192571284488729822830692478218387505556722431286822515128106503713725344857196756887074234866523318813887016786266159533729856818777766008851230931006516091873278011732450684605402961381913410087203564936321155580700051157644135677537943094835521687966048333527616111231400968062575756841027548234426839570340988422120434201753974645336652149675348290063209914724405306816424308248452909090676698028194127017270076564726575417822541513382854980819741701234591409908289441535950779780886965191889600043253682824901420841657654566645701000450515113233397654723165610731281415161341851344914214289343999881437781830665554006612167529358136999638277720010882297300540899369325488458339044220731102454321930346344319368266627820988110553130157710634289950964456347885506678019449240892908699513587227192293797563653640362009422619376135063064693185151798077414254168782052409232114321099537414537081972893485524847029894671727218113005468439220762585948559376508148548967665686850060539759950480728322032004600571282545867202373431003509132858848225825088645498579556117431745468494167903492531612114807817199315594388861410190510867523624103776417172715775256237517709569465720966415688267741340026839897863308084689895763079581696912451773970183964615496819451325724273330241520102795045716781758701461626156179697618327295830338058255209165140317099260493612115898706573054495564881875646931986984791671144275030086954085045294326904246563634314000756190151007004756674702706925549203533984495875430309628864673579803255204784653599959999401107531542752673665518643401507007093001995952281233618833749680571619793099208221849060581496778454946231579096769271863413201136300527559572674479483360470327088850171163641952543920297744795741810689890539883584981702658840140847744260316690253379101745743700034368293909943392447488961422418231319126208851606668043258797147014821997528620497002510228669960184607026584467136421454651789879490166886317203372239221743434070926338027755721593689750713929966655037920607726040969385761016919168457699857188785610516069374681198611767932998396904512790841859745562667662733345194355217394586708304821935155051510566706996217355102704679202069771014722450218687781925930779512943094809690751312839542407246884654339174344794019958232984350854509041448648116469902380325475146325986770660328372254877117102974517330375560913164181559820943152673624629205460573532814759148007883964629739597077302730128979770350388004838666015094575905865325538317548904133069971228886204277334020281148605412738517322630373005866943908416052164931265085169085137226320769354675494699583086234955475010633563739069060162392788865576734006275945687041391989908330647706932590785675168486867906826940475977037264446938116463924844769551260490536541330867665819979424170886080440369471618539300479943061983450522422302120565046315013689441621121620882482179351882137311206544644525532210977285058120193958236328612137271606729312185821211731480185926940448680630388114814260379417556847117520908119399423978248524998634055341762691635043323596791268891031843622234810054151244383597865376375488382969769526209869592005288935892443627639955807583522024205051227075661571138639885127754416915696270179097575247050921920391207853538120243438736130498031749789536755478180865929318323235433452336837396905760059499119039449857603432129091052230292390413231217989614363534326865487530594852438528715450473797270458765123428953137981976699993682362693939807347438161044737004396908290157448393004426206781008089588097077943025277486740920169567389425619216016112790389443436850048786358573051508396976337877702948794059249795611380039919078800183505207840693487394810146363826812239716752396735157852703498011034751138049855356669409558504417015987481108846236912285066412758599861415827512604742798131728264641011276934215186487020589085577844294294100364512032544405500760443605059501739547150237361130252268446842591045855098212369112374418701673850348151496946903102307826186571715076039724119715592886466316069667333010269184750941549511688952451753640914479693086967305217217266343350586288780578300740898117817489498566050406784963455702036898434704629765520728541494095059205401102158412734428333468397011024170364206728482309241837284890478499563163824146711490180075295449393931578855739350917819556751872281761266293478781589966987237333452525584346929661674158864150055940842944630031723878349646514247104353792983010691852930094892644349792933605127239963207808988514715784820347901450452711834492209198740610864899221877978115047269095054505509255106383852453727036867817163115196116162703569041613736598726353447651599528792677906915746579937359238970833435126255245582480285351307435789493367520074443577420204771449782596252581911301645735615244256103612938591433390430498183291755864176139189468327717765722544646694563605166313202909135322088423761608411962754555006541708221669400872330529617105862645225389800478432552845420011888931285759786768960808769774314221285331433946151883109862940232262221286695476701146227126695607441741649935698848517053945320362917984172277439295726224674601505941117565801741490969700322720851790329771053587316035858789108050094816981131273971527735864036209631551566457134578893806346531071039897567654934044153216900402229887855437178987949758065062682962061256414453978078766114336157699699215171566071257337219490273618754809731920451531434499088967168181147360359502511990400036244820674764653290672812644562790649280046152862705272654040911305843038009578005173551235813071086991004313145166658677176973686629193183176555620157335686223184113711816846015438719455148038012381422493987001178924246980757528732713393268129742240096941150013697086484727775312781168344971200587157653270641740614924079026870800594664950689438916216022673828063950019655973002908164178368729538527909872922086679486092454570841489333778705384864300603526285500257410724334088555423218009499599489825334109519935978050636802545976895432372569959973647469571615258011253678820224291174371874102700031270065958800216814853333764981714255535063231083545317051824424300247980758084855105023140173457206682647955623183506799789039761896294665917582957831675471178619885279152068692800452106164427344266011784767218100318735539046473052455325371125259148531747065949844160871888766958969036495294571622737313099271122035617949007137494603324603803074722370732901578009667856442466964613442596548618549798735116551392508073634096667985244771009557969602727058351912678573221177642913470806457380922439090260054308922385820607267247101183492552203786004937208263151265857351405122129692490483268605756651852465039249099470847894297477138546029819784156636546885552336673869751255449261636914211635601518149165423584407367697841284214349522300953459799545923810448823076485884635362173917842102761852659316903235769992093950286886582758816505004987513398258317400449616010487857338642614664818354622920736397585786590686747492253270889732138149980666165585760029529224409265157779079094148817906406067226954533581799878149288031813970036479345268399802367022167683733697585261347929952798530560792815331093571436845689508576742508238962015610812677899452979946961107826390113481561961987892740226486709323661758848928158812887754733912532980467036337636445395292643509690109011607696383573135190330765051045098904320799657140926468767697855768751493793643369228186676774605761499749108044735271541479289658486335924542178047126512715502526097748765681184404245147546092117757773692382083528450168349599547535130797896033869746299050008445439796907376513160198574314691473228813668746983285140813382143795334204606989051053173006192442508614478504728361720754656375572284677075434568398684164819059948789415219595017629181475768108592375853313408050569412379662562804355556483915298687414602549371817180287696662585314601174320970923367614145055896096294687115776829993686038445276597946914463914307780883570739417034778452837410752367345341970644485775121350378130209412161812307488955286828624437687928753173407936579751629029472137155503879628841611529750784021560697121985911935986493087160556156702799826543916357460691433960542387321426527075255300543866980030432050657974427546972468323876412759766529742777357084871350633435649237921246347940062418272896710380323021311748197889225376195192555273025425649484307706390541828712700016523808709091091040446192786808660819775334542191746376023901955640877553747593274858072382800927100495436961375713944228939533593324072990196314823447477722224433117609540011488790816186364113231825149890626952707256639559274611702460140733658166844660682803368442325750831125733161708279793614622801427972591770236144057427199557847153571508161466932509214280978177527414142715348567751410642039050666543194450178418949476272691318720760706878443051853422444575216706980619136894957513990481321894581806817244672712850633408329862505054098781818336665969575292394176791016936449957668440088359616011228047672551865388188760153544527234224790814650787716552005694310279792494892317785023277670963588992717587962771505256518961614479743291915168482634291985555900541814547497653942561348777247222961056690758198380108206871367129925264875493060305296285494642658674274689722246991694314396952006274242701648048360544541896923054838630403224106599689478626074977303974116242387449163607297265019277944113872631482884973675515319160214921852854642563068160733259737729423853070346003552657684247302398944355357232733651200161673912949125605307686314399376528680977627632761608540262523060566454442875652767972889992293935541107808807596097855897124375735133150816541917621538436660150446252921986743737850618288731022391574440236713226596811606953777240033611796114847184068854786985156246819542826869736665436647428643102135327789889729433703470125097394971931062689096296427157394737932806385349088113796687424641797294556891525781957235306896926886340726514647021257522908562736273524368913344481127498225752647102598625744063148325335292595878320449873918603521865059072250938282458920084646936564422350762166330608921767983980726101763041602355179135117238915614520044399536519450044418211612283318551589536089788882635914045612494033912394641109710250122824779774118500354115101302253781204945636561816860744798027015518724912949570213932515032018254297729568806677395493329141499822018202584501490288645019182263029947034406503536185351302259824774778189865151627215885107466815698679504487369507069595672082922811746124896588693019251049289559608161470443213834466030524872228220794639078331712190920247645638468677383949241155442351391500845544516432347178924977915276044673586338094193493612040527944558971526303454599773888254900779225525986784240890493158317083170633150868147331598093509575434068208766192329330804711787400286766598862070378491588292706478603291662089051711408426563877727037020637590988193144531043510792052101385730930109727934269301080041145572486229303093256480114739083726987131776593229247856015555445603505524179834287097336880827795252116164467542537903718042857645959898740074063998683831788018686729641548693602257277687264699625830254302538683309227180527139037068573860406956442526447352001901501741861854248829133216490011599045643049310355953435572786752217869608237944548533533237643088958002765223290147279685348778196491265436427324372593620358319904587490257519930651189759772558839262059718855256576782150182398938488459534203313306299398553832420376618274490996396264162416868622753315978357898125467728226661157916278865262717813447182949933886991215662710627036718085155764322301544817001250496689353663743952505181028351723838876069414579304029154442424120963152811696767449275570672010547712701963822455167982275496274025841450485902976499987920680095491256589665292265631695699249559786240883536993341449685488406678851773140073569575316129893406591632248890077165011601037994880849058063993290240844811299945544570229255612434074861759607568866877751418096609830341800040707553283864862574359608815186975755935553680217502123911760059521661917557777052364251449262708821854126146728615556564375463833797093772705504939795112317833392228533304677859042740489138646614469980001106473357868350431510257327455611538655709509079928773134506935890473459696344129914177617672985825291624800312290163793316337634472085915132474779303539222744136153086442024643625564535099551082735766969572207397940942733696004808561489746895289854317023583493238655580510926931969749194279678791763445506491327809947889868889601333698333591139566908843044711363926697382436328549889278178622307559613484300600687486704826330099616875837146709248060912252626989250558987389603642769331456523809880918449003051264009954123639409209035288662258095152116600263785775632882546034934146910575965279070329573552409850909426452640955857505016217840831993383554564920612302423459095774898199478664171734112037385713330200246935595071238969724303678750940918672165849523972089045707115979500395769850816648892278821384687713300942609792180175236692410468441472915558673940558139830141988773186045611153083094312686561607436815465995430455633029089435479937747865932563748069555832457678358659691641157717964485538254352137352006772413421805029159556054557809112724393475159595020564940502865643620442412323992048364012197222850025085405862641240552844986351363929283859708565131205861051960342654210427109433779661041424313018360203945400940242860114519100729736625756871663248220176189967485908111301646507155607933822450670909237773598251328125806616093224485589604231333487574543046421129831862991029032439861624185375823424016032837890582122992155343658372650889654045941294775113418939057824112060695317331990235722429965919351735429747786579649394057311074489594427570498997045767113942598856550125841943396557254645581818402682790856562336492234934777304228915608402902800821362145395820307848219730880191682588896978705242904918630681912411553773776099581552439527930828168101322040465066198276812787859685275871567072299626953819091933076104762513788143523000222360406319351479670607486671672250884739568643665464163592467493549215118762113384688763061527061054171992205252430730190057494308346771644912791489350110083093467960639899490005109215317498008993779490636780268499077322642704260094804737173001444076089266988351405911045746217352201883064050551101094384881911673897615635585072249479035689031804636068154230190699706598578946063511053879189793887740232794150716723388371110358890134446457027872013586862335117298456442706206278307475228484037367670309252668268752301963888344217101077526851182121717874073115908313411353597610657948815575656301875671667876158436689910364246970833020403701059962617095908097121307618539726938524214062590442990418629876369008564891076868036555406932810929485096883166122596728161139778125838739302000685474529955827423451338750328972347939980860881211016619314201602917187714795568867469278838630788462130983027645160145909539249344434341951582015980224106924054782587863791270971470444091566580746120299046632401012969820504310953442481602933061150155463651486056880861622477767048954890154143458948326287891114279654927703380901673622411086254676236342922586345983919291977870281256303797560293372462365484051350753960181997435442154758391016932221811335813170588559303675570442402974686135836016344110641247346779993463618627772123752526802962487036795672687080582146644256700586987299795026946940200675036501006093839121004226338708547317791267476362325466895428437559413555914663415157544151563191341830676711208380861573172211505201867312039601690181975846680913867015360622175481302380506784608252048883703068348980962806440681165630061162783560524712376805956073079423588633897717417795178358131212072381090564785506755980504294242037424499926828226013867861108250224859845607304493370290949654451272887607787113243273404464502493037176685647639090897460733537565349641646755430510630173595345919298939539938613631316409320457726896255664864716660659701003257274556740498455429757142598065603144584870051997398734522486290188509162011903183424536288542557196925450564134026024186536320370915236394255426318571748750097979713794213013944145591127690408127984483239182739620073240357428646019695387282201375772942043540520511912036578338311637832721953752928566864192660116524386404883363995730927904618537214598867520597521365666788847671300128592892487134526281732232809140218399985540267219266931278434435916934375242164069902777287621185372063146900817241371594886189607102147800786803649030039023319137082443082441028132669213494380917930000776067724624653674825487444575665185463367097177416438331557181782326723625489244651584495339872889383869792064734551594982236428896465536079155484649298286556927109549755791310876290452490087064380631210391560473182164950521482310228879571548243201847910542807382388691869480868858268671162186603706267537653645440965566697929836901310904835701957323948361746405783203964396371655622736552318288218883709712036302320466633925837044252553339861157069488860242901467045524281275881308365323509916409719260035009353806485140245835419086352935641532138501531681397025751038618027702682514275739347050986172132209409273087478496235801232131229580683177515433176055555582664181846327924086456487204005765078321885437311794899325593661173355193363124454014345522209360759248421865577719194246731067620199917004788021014382260106018428868991446119483747579542610648911909857869138891463997347195040562493727022518538595778715175104237160583015212525850079358395286342685406300479007964626386693358664422771237605233224614061125068611931180048823233578168108648526244488626311075616695388214030701493901372444861818097415024525045297292835825837466182605129232746105710153086837565421736537968256921325937652876237674178782783097277480698988690168249808025154877567525686393664350471337652352830290319085388404266182384502155972952860875258641356346144473308990623295774267633405661159285074662199979767477721593445096809863119765756310150837555795499095830758302214755663950577616270094332512979454898925085532436231259077936509494987584549200701012342975502552590126576899965202176023743410403060057063810440800542333271845423035694263005040096728618919647250217289474627972766712626411192249063087580584343456444583362544573434370440155370493269687625065644070043511883338045064839655398746539183536436121547895925192598360446431328260669626099218740088631629403780413838328713056568625721373849087841626468713859572629274752952022794636456706002076254182131405662575226850620224392591998328906140637055738437330198324182400680088927552461525504087709671667296734391369246586224341848337590466417057744795617782579921270958381981017812168914850106106951873380355919689264140160863158870580304684706844109556354689415246477598500276246678865709885576519993732515714072966940996559148079460792726823052285415591450945226948810169638908145946356014302630600920742523870469085241788811073489556173236663511156558084852443732326323522613342469777790340494462761310330009299897595472770316409781807080016444711724947040601858041155533646638395779802236219710670196531803533126412756162898789830847880692551038631201278608221384098111875763213252284839432077630873412303534864783905888441284177289102773620113008652145905227843769476150081212155910367197830925062143353313934528959865288196494742017126323139640124929648647452061426414236932111293839505564887740707509372303388466883844939705178586138983195893307757820381576756081705239775536126576696567841085513135523402468659346409512628250400601824832762101917239820245052010117855919764769613352589666327657035812570575770649094219764026560260602787446824102521552696974678824326313097388326487843859281504379282059154009596407117879698496541455447855758705660187367742766572489378299238194172531751465651689262165046156891762432371435265724342285937564139666963809738562077068750877829020264328235174601757130176034950343478607944616354888879167853170445027745559675243360066877197986019311789285928069992563286793702362260036281216865404643966745480858733439573271937716381666674131318857008584204606137786310697935077186754556537247013734845091071296363305019576483706619518866708055467111985195571324328775422215069780980430359263455456330923815693168527204147357628605882519884830051113170330651725973143819552762694872791812460242857636870471354475056930393208276675097378308190052757764886126299628653493905332562993777542510211482982320848532699890150020236702399111618303695902271811824577532610329141788112615331958505944111480562620555614564358129489580520710074325502029132088079525155574552314016995724918599820004555070041600597118144316551460733576588027019967203405093298552832646985401141347152342490935630520081922713935520843599935150985929354401091871310992285101828339604002927529455379888379458852290860723560016638518818956788689315531019579745960063128514934872378629512365766972446098407148425586064705429569908391088315606651270584466552656425479994620509592285829350139077352584121960487643905784481972787944360127384163674720198888616032311132547964181583151629525652623065346281586217676185055529048508138330835719844091707022988306168997811037122374800719696693616851685882922952879406228818969214791007573456141244583178314633322932322191054506310483613513846045888375953538556516057476198448777442446340663973694522402628247708647046328599118325008417540280050998069000756476719691005091518800949594893478133123740808016526568753085124555193090648388816676014790412794525453474540063867484340641587470236058204111897759578777617011089827543454341731059813239270870065053572187443844727267064735778496477960418712192707829112350340781564963006821630097845737285899463735015911972815337372469741513743614673658497438187154865375761078393678002528399421164493893937322245624995329254228929943102366464315198146446085086376747075816054626997659398356129302000165478633189689915487836697662171167415927917707025838794949968652995475455437881712836852230238498744796194675481870592453903623176619930982742903605402000759105164316834568985517596399644599302399912992109281048103619005877889796606917163069910388939720083523453700267013990207572085250977819607969774880957284566849607429180898321493831613180108067398459380957745830632099141762332411105274119173008253819399192289045003505979421904787852092231642948366856332191617191929256210646067923121883321873295662022940988394197596921483842927339509226735985617146242961750328490338743418487692355130479483156449718500789512668485736985378217617916037763894203384932245962089712160535310682170306851440536239093213584843244406420866955166413381170988067334132776416711295664237708224129299967547042726790782621750004394446739701917859341645075615672014439988996813664700839219589698570898636613514178356226622266197850487004645624808652325616050078849667211619371080632477049035779243911457638823996435477098142721714685544663798107206945216866099203142617627491414865024986811670606702855432817948155759212652377575870161662556176671495454180480608978275210983400575725919061990862234366652076591491185998276956785564125252704438340442145082973960902381585593401072630190355321695921508730920880535115240829456442857835025831980182044648609655350432793766808606374233321200109609078747781658046944721478965153707173066109236314006273325184138212341873950873581495999578473714315540553194798289055746738952700992935838143643577022205570560917748567182189036320291204373141240814765833102651282668101989984393590422111089466411720400867101094309113222249896719176329951208609510910346555462815776593448522125200645430132708101923684483863243540838103935693730442322452042236750578274999618855155554918777224135294223778050011626417197954193033574259263699632173285195037185170391889603773340583029541475573474714869974768756684020922100755018420663854935342960706382634927085907040092282558286956688896827614259636546124413630515156463689547897801269885702163762223493555810877495049957892274781487005364815985388155978150540121557730073290634691691364867399506312094365811156775300700385713555910749271700979680757747502398628043210923595793528845864730809163340016936463805720267909665970808645825620624383836397321640906578423396144646451151598398611490198082868832151632034448298769333143151684745209331083068572486922800700912566363339789711092963729447368924267933109519568469431921374980946623211081700742085377794668835049522407356433817878354423086533891901712111475140578929655062869791450036237828991593980397839918082879634147638552711268828768911543748572226077816721565544532118186085734443145614714361453680614432137257257161817767659629570556388186356845218070957641122795994329313470025828414263935934759906430942078527876164368548090635502972087491655597400680197800780220331985725396536137156847186869633937445624317982453620726526685399884412190418640425525179575020751393212332388595683632305200879140677917553617371865126588344345981020395045692998544808954278346574536986209685017667536290292999735330650218680284692009246957401589319992747783089058136355642264426721798553208960858502608687424668756999953911485360078253015686235780672956786665352107315100439297520608513221727075780573263092998800234034663713985471250644580619615188246263162667783630057455448729006926819439182179760072556015831732291580497083662956874030677379206206580643174996259630571931108714969344601356025028599673264942232330775539983583184440847605519679956287994234744887083662006782111795337344049894372181360909083796975519230208554874946789103765448367585028142132085653194620574478486922981628186856788376619658746977872448251642592220346032915373545378617440029473213737916114193856431376964450833761713502762245403590481837924495750624330271785758352402691218999121909420884824456722992960581765516863981444095680153612347462296665759657760163451201732833604812297519739456443875561169443192919722133352116751607043665249091121322489507319463744211408954484678500186009556961458897747698811318413998551683136834973726330402067620999749767778535649925750510320942670580055696847587136107958064267086733782035506737682209374030501721368768935579203536971186499156117339471653602432779416044379163778691727968529579375154183720364137100632093379446458140422253626366346367584541698350729263357821908542605269573136923328909951012922297708944354844498680812654940589740928252594278615590086228230033898849867569742491061310649017584490844684820332096908751293713546324152988231365301559006544901980594342343972711860928387236697963968989475283384386651371085873374194624236401024351631736099019549931495988634739955920292441013921855925827853569707360538396301079918168563629094555451229806665992911476986394521556727192419590793518316128575821517391660077524719886424187902906790961234123190501811325866155214338006760969093866991201316312933136349367604807347071025386453937818809035272951252894651152450863509295963824588250896778835100510965101113589966605984902619459555842736298065084342814867472973493758855770998419291926729066425343172733779901173253068632717052027218789556533915731092937793626540254007583599469073681113854874595441958596388226992526542492685255862254944003315710345427821469843412545765544101644588643806246826619144212402250056447932899072726278087325460011674909582519511872966406957936177786381111384240062872186450088215976769388898265762911221053141800988381748933918527939711076747728638920857483636036527702995969598209177844482404625504080332571839966901221820222716327848071950198111513061474214885569158485161830558243713851144764587172024129079432666174633047662447876700293590251824775424738522033204110167726275510799802496394685053129308173557408155232820259494282259493934586243932394361221801696208362109544130857557976362954966011474336742333774888291037148069445653232139297676856818588149669066373178054609943538678835053959923052482695499934889104669769195119625616143338719701453775207386628152188129910084986138769314327351929173199406257624441849406110151407744445395629067716493442395855673194165903759236052605312831069224866999198373964945906839749945500314344188641205735851590052909699535155536484016864617294596813014773917995220935896041379669623653205445536552313178848294854800746713862581898457312962160023536214303957134825843477807488735610541998813186785316562654771236913285241057545741797673746206530772055591573351167125442441033748131997775508677285781306762412919969747902285982655788217236114743190945810471977935034933031532293679995623079721327233241293354388001478573388047695113473328943039679443514399053439565695470986049094681174686538496361508385787906030904163625230971263648481070833171391117149533455810790083615466588578883624756018503052286274441088196440010103751490966248786215672515866903615684184704415865046611220506869257689555604531067245663008251369888313944638051807547472580694793503178945086604928334298337102644249442540443414126458675925294850849015476601411616782500796211712616530953139761542172533479563447532266383369647573843361107527231893670335965909719906929021068139306491568128535653728216211321695066873179150799293383303015700920176476578449782767119859295346543556040406154904066173025609964641692160194390109340873553607420305119324921728063199173555836288140699663297426127416274624691533943981941488441088417697000511631159779595880987044197055322099999932945380142866313334598615469774407574311688056276357704600960179190456291449005940055159182819718946345123664866993343804837015714693754875747900868165385035673351603838696804123497769119733580210702055674547923772201695466207056077761752213634573952119249844620631801347041344457014009417348365346498876438021326856957371662924713366229078313893578440080115860597050804381625416448767992703512220082946152131762619016026513521817576880211878622470728339748888130138689027027283990530626524134167742478541979609959516827059945340489294260169598108955817385671992393113352021696575920175791134198756576659165469696469302831210226817287544265916642637934048562102955757237794388072852383132285797452256578449824259290693216343596354892384975494075603117894728526589319558259410710050315835046563650283648468182955945696088633741137125593093534091550465281749224741908584795748675895180060419210021755047120489250268432389099611839739303576812325724138774352778121537747336233206041165138964146173732819477076897499077426699860626875815708202336221829240926499446089582959999502491908696683887879978525679319716468027773693081123192666737227773545613824909700783625575750311004232783180569398852272035703267926937449550952334088467310605834590243972967895032636772768491547725570237735009230673954247428999525246861609373231347382078551240534321574850664011546444153788473095525889831378446634227609377145825252320751231102185220213244048804174830948605380552022760302922065152193555600044232763665951152417918028378934583614297825473966256139497807171465677360241375920767128943910509220330751876776750812904620074870426712805094675314559785101148483399536268412750436639112459612989413686113394037462484444767677379421749036210364740672255774604237388759073315326944134605000781204060894887600488330313509348409594901110727666055969927089134098555193235527176862202867537072262995140940320133712456322389205989306359025618777364649204721667543016361390117722256612453296080329403625897368575989073708612187419809295850952433250626145645876075984768026425960911954144467503049243408725569297389218148037331762733180731962420618390649822487894363908508277908574987510524626640137951990638227433039548573783811648977083636983909276460118514730940957076654626933063629676098420632199541567154894514864927370117036549413980295880471648546366523341361509398065688427433206967936785299862968763739176964151776032978205799892029289244636870164684839023199915629682361911006250180113286634629622468393554106980089804963567234729244888212126502857426347736704963978880572714696707921051630414596094524825649494790024298573700083104485549775736090798250779466490922021035094016941499408722175177607872597854271801648288209647727328196645102568403231844176561173117330711285370602539528929880492223557266695258997075965713845372217335545179396316643755112260088455991535821505331892456768729130802643428004005887650676620785914458181406599174666313074698116457657850510566550090836629431508736411827174866420988499125504083821475747679684963558448469261822756489501047457701050916066128526683070167275166697770152287423517553267237803052704588768178753129212094418357003236549026987636688340589579314948877008145577521648423019796624919682568805596782390948535745918261980445168631383532114368548573522826706569517971105032643687538236288506265108548964151942960577526428975515781511900115666465303444973089536108666536382877124875113847647057903742890577703632626280916124629912782640963896960067938070460966247056215133371705711324069931589463163999765202442221719948060171514608601077137914182759913424540066637945135942912408652262215194779021522623153848815423606401346182825254867529922747909795613977447416408154257638651411142158027345513945943768872271805483099505669299474856920152013113705365641197275519072470921578965023659636963979064742843621062536360159610659926149087612100166699749694444609276803081786352081638444473023338701896218059198511158390536196438398352387343935877795334475067252666928929902778459444055584980333314451409058706023762402173079557271389515119384302089609252812238062413635692243261122535679483629643218173882992210965926874899219821769306239713975936481240058006540007953264514787550524437369485733588202232725663874512471256672642068175981696109673932512307376535556936991832487170384367518100602437927846871129826316661474302468805791185388652291103007587716513198827970263637592847115258099973764536062268088379273719383985754748669136674329016626037483373850448076275675641271018768845005346193288800995370781995146241112272307698847353382533642793339178791294567104195739711418528958037314736810254865164567846507593086150338139977775861371967299992332223575096741815905598631551394597800503112224203412968196911596398825285354365212181108049093465114117861666031583900896375223670964085806998968113625060523546500581531615027154961953429400183099115925777973778665697369274216900996616698639305030259279471754923091201820366930113504492990671225620017343428964660036349745055541706858611473903497616408864748862016690904197014332452729325809313168921527849095060467776156758968148042064517615280930004212799479495815966222548704718016071167055764593051230134993603240732396435335920927622744137442077303878036648473946052114393593825003490417273584581085178693384033817264639072921240896164171525374368990148160538713891074332193607660974315631167106183501646105473174915684463933860402627883371977731251457123030896178482564299604941614257574295378532742589360634933255865213828921181474833788360210440171853397651026589521942766604361192693269568903377438246857411998100791514187790914209884876639825102443843704974020023758817373228440590116964974299409613750373225340313986401538531986881493248128415041356016546329300946175281216917328854998617483153354624509689623848679823198738447929292911735012683138223283463920621482488801764855752606744528932261374010306510040687904421244980399752262269175781531076375602098753204388382963647925642650549443134832289825029768615063882194838876719764128468073674864540562136739250657692284888035754728596593246098754851885499338114698119456333811941462519917691972438842726845826573576387196982486651098465496663228753524081635752701819237728478430947272926935694275575998035268008036191698174847567329635479989764394843124389150311561155867051960642167951388875654824759089975357527922058892093785683290098786153061491099807775640130787723061581231775711621838842680788564868032317458533641428051614178443631159717100148911778437803415542541466747177666379669694988700571663933877648824658774406001168021989455438513442797419070216485462756326029540265541939463967134709383886061420468106243911910446402473574074486415441213882545105323037342471170725513887633402905195555240776007833851557339122562781445380088028625955033666169296838906347325194484226959783318481318942888776125219856842472185847987221611815281030828014773962129399610386795044460012977592587959310153261155925741525606310973687561399237534173788243122096908502048359364325862167709509985237080487275191899663848090189996018776499084825635002159008558918836573617748698334316109688340584168876607599898214986577868425785524861079340408700379491474032102541069112757309229405357427762679297947281107712053368495288282023585050031508802143727234695683312489732901508888624543037943774138303413527767290697795989004880574545824158219160050380026332586635230108705410168616817128395740769685257508017597188178798608519145138268819108306105099592341212977896871477153154332951386806469801407862630569483175148159639118015311865474108732674275571612144750717451977630088828628448630761122779439535744380917323229069084676132413118624289043966048144402588803633763692342654539210861915314540184283015742907488962069099705074903236827904684856246931027442274834316837351041790856233377248753947871363707142811464096425696186500334465213250080992327364044284106104766584011411376478289543288532176626170547499783672821871693155214280719698515868939033138703292208583393531133340336598591268967980879409410719710201222369558790233012427409121376373453745114683290515982072558705655327572353799860312838869225050458621371297745430087237743083569114684776589762865209476093055141018643839102975242606870396463112103973471147953582167187059374592237507402112726092182805010198438095436728170722550160706502322168231572532798338281954915455262484824780284311410214807448614192230418291502986004124637007290255727124149268363728559095515604690330925832013061120818575981877045079740447261968247676819015359523058288805688565496152707984207918161376168887864798736267964243727140427005818326182785663177874695294212509602563612519445545395157358266488153472387492038119692356866384480020212615037798919845757413449538953439228645240660766915097725759031547029467252484857613903361828218981742175697641460422044281418402225400929075545381671058429535600374782323936496315333559132990747318037826856971150466739153506592925539473338801549219781354885686687976540934916003159090314393336963448117164542110157014102054896573504956426612973057406961305696141443263785427266501307852420848695739300441961116805908966861408156849938280274537330682633374185377307830240611844292434968631304828415822031338109705207812866825917159879181145452400111780043306501879085167651257132856615534979627429819980962264664625594463121763104803552784002480988920158647774290174540705738213559403768729210490826032026989915412125480556647840394403966816924653000386990485832868808363123340897125106051029503760662351949770875628318521403333235929319659601937832839291412247463644579856760931874345069005822972683033646416234705344440453428094758712279445905939436376552032723710879174872342119462715354915820317762629615733776860654261667806388411489798778623179953112059278709278605798652922225758846802715973821503271693300434654466696127899778578125653228307770294117494075804666574073118905067641593854306487710191938472772976001344260824177902717158958586123119760055716553522207378929773629205460274542378600118114663161286039905248640391927284314027119377819780596955225115502969241797071356950548892193611314140993127658459115172036443975890065599933060668706499385865673887725081138622464439200152176523983073229508330111742729654135089393041936121337709936787593329647680312882657036926830147595443662447811477880978851857182755510149480985416290507373822799766278882550647214144482973472039219082441510150350565089105685630548997463519508655096672611506923855487611405577169538068086164262806655627986948447244478501149177830745511210781906615352680050859876648191475273306732982558066932262649435566231255071318726153119580192996135875821219686131739926322203571033247768917435724849417095726079253117362485394657043230098820138840600175449421739617656893536079536230601644374712471213132472876841267620947366998604829028233891250703139228711963507216589985871969069688304370891020609757622304950034216882291859003143854471959157747836787760681087054363767287796378749511082166046573495914553251230144736972755435252012072511035967468430895555403180897567182532113110140976861195684350687918286553920401899948811284978073874938853340433429267266498066611632353659401421580815415858919077710779222509237032885463731222441965298584257395239626950361550899058541770380922666219061826110193146434896716581060091944063484931378619901420427387310040831621780609386722523334866489629532171079775075085357900482514794955497411401309634359249242007414589528811031243609295186187976066261976720452681860479670688112728130851176830220741045215524340993883834343408718421665170744091564303696090253561926839307856839556274342516533061121287374896675408502225047789563528885554930443595525936271146736408760778140440842483471937180025980414948408103371706390988899433224888388647582160445232335114492514130276481966454133391902789626896994148339922629592875838480694080719730300448120240106992998569338448413396196978629852173316826293714791344839929740511695612505151536146509624416022124601520078087375125291532607018896891312277043265750384422966688188657468704620221686227845905840065977149733316072311808589220336987762062951396767061731405669177527144439947067784901104258161430145329308821779250037099704963835689488377521177477184052621984476471501565672029111663475857747083105180820901850602416596764377829477102088374125594247308779748788663267523286064389607750838517060547209003562033420596492167952126423788125728272730603194043599332947506860563172148296815342579974540282486074223995343866729123975564229420915987723836762189891354277376822382479791401733107763420388349845850674058100074130356367163610749060848846125650508365116074396771703005853260349677447000291625463724293155386787442155432317000157440678298231254471840976632550710022418705554704635899515577470262533697341827017020559525782915119920690506310907054232794892154729608999998775964079430367726143589324332344351551647756621040712972596042672241933577929978448662261768914680301810723576752561076007920425556244766592924264446917105673362213500698366815402475913863682927069022099019901763647808641821269821973652155046082642428468629370163082020955274191315677437060276424014812570388924068148946849602835335080219567444588234873136530213765492333603638151013488823463832409692437687294701467382443656511148950480619936026858269423585564645136847002730614251354293408333421647834122177206138775400991129259493714523738478766968240299786846906774760888236412860124323183094479535274091339531058489723442398683342962764671824542374444871820097216311614962280048454059413605316802254131891911587041123383811671132570941207704473465841037646035951347333837920436597415269723368766798111160907782642236432024683513452731608152432725345112263369727395577717039939258913162708662033443521252366286267197694303956421581966892425652612650976147540754900276643378211852762013562195599081549334571566382886480555540919719300205080494424119010759967369645821867069643377018270066879740419942897495145948222887556408124617496299837141429902623529195401487930343918846682962126378809441218390055629909658145800562467964030419528347484391572458100106706457009891400662637584738456262911373981970008311873903598321958581159882277878811784156010227841697201195010979698611101658756673016029475410186496075111219528487743816259077861835420105898597479449067808231169787152746242825124375365484436735903366757012155918837799328035194960127273718399006931721246564709363221434664893106621441773415546984044042982209557292354834233269382701955963458315519261475623106638140087713293453134806727133435806765561183702140393594450117786398260173866200641014148776484106746035901106482915218959247695274651002248403475575482578067629311968677666835242968537959905865233669805004750090814768695162681723888129813211891818696924801179967824634693793886804466995887653867836867781774246921172620288727649477321959874586076538656087482673284217171445461224249221350602601075717114398331993195429400872323998485314525145396654069244700851220930463417753389435919793876308497725111968528672617148859845505413893557985768925009260699536277136660458764315072405659757225741158195110187761711088324110313562676963468211147230880700075199235033641941423142999131427236163750514979960985183127559076406323349999823056779792559985915281220679500206511548553432289044236590180925380048017665637047882303999691982613921796569301765586668627043008920476300462308750294745184417160922833318496881712540346155242141207421230763395462990684893646173698425290663974535927243183658213881640970337163235508138285155399061496766473729577967475677707013342848861092439980651038672942413120996147058306801101578301785884702132804316705962636675180547104967397469027174731148918121042492914431639686416907070038159837815541317100690089320276990874877219362676244454628648830613485844392165792866126984951378934948076707285454153031624976848114012629261976540845292512570422705659059452053780924602477347948053658599625977655044351495593152468797563169503151486349849747212325441400135306088629784966359934673836712549870021210692788769549385662916431539068970344143059374473378732751488656645462160748690899889035148196753338110626125170354013719412163524762806257768221452480524295175128074507671759443908791650863549480621115120433014569992353303445173147697348594483950061008015760037532398005692051551961885417422929280379691592939202152386185632592666972600901837756227265529910033010166877089912207192452448161106194309432981695566576620605645830719714575837844166645963761764785510036906905901786486589332511232425615915418393382233471951323858680650890934214391658100236285097423511403731066193288107350925157619955332632134442111009448107478458877834248288192304948968952505237784185556910317075608287274175410320814352471519517369389401805368655905293046942315228737331637891456066540793316359236197891338216174290843255081666431272441576522534075973239584246748269031972857194541026439777922324392828332793640278291402422650781028265064159283115487678221177203143506047473682433069963917418608296044748606392368659192401689836895499220954413943607587752351916607731741559635553179776602520403868703854098622896043165138531227111016116705694490054910443714537216229268076901433522379289768881050624708524553715832300321525738709355740903889539549803811918171456199367183234346878544617690608476744746803046664671999288869082891482159016851785860596602689912940568830834500943534063982822592377463191448995700975670913047341765484793931904138141647582214983234013762761616638927612412710566024202916537789757561620208273004955698464259528253820057654563561381184414063375233032635076313518768066781201368960078843188383298369140262297859762726906644696430033640697623872613176387394033949079862787767936314363449733546954322416294828001569712063709317594181587686518743510787249261020979858766295185381490330401031141397492445019033141715237249206510091972505615595673829231392464514752778072808986255695847682606770621485205708544445687988036223844204730555133675195305818247766448706991285204562385225924378636838523340618806177816357668239787861940525721042724181825447676915536413259818597512184228969277183060737871774642961502402328072153695731008562855700838260502395180822049960217086597051321423812587394427762172169570947955453126405727367827592526710083722670942558946128316294334783271299603109732368734078880620861165207872947293664641927457179957848656872025990136929214049827470938004634967999756921323936260127398845372384758567389178358232331003164410978460581667935430318822331430504377576530818330244394393242761436680293819140231398582061215951714796631659958751004991087240305084123781935295252410246022961195706264097372447543777808797967793263802604022602933486377577711694626205140195490809954266345099525022009657489157647248300473613382172059687423833089494395234684240427798998909077138715718963673721786889950156667148396217426837562862723303876198207154726933689462351933338028595557832499220313091335375637081320193279223537113969627307080143339854908538826409805426293163935064037787341235462337065988072384131724926121293198552705278393691639750989213960821232071397433255649317250710967759141303338697489198088907245015365635152944942717794836466312898345787871834562141545077769644704170423243304791778096343463250189494078937269387517356137947938299504912306904321710987350673176130027685803090213397034913645253709661562503840604304431984518607489000594273571656230504671664140970591717941755587363272006041578299341162185937285366550166778510452219933403050197068292194261180313571686306978793827325979864861039066090740401045115836429519864716684985211077484126804670344386083861308661833759787932068019789851585939125498074480089022645732305285581143745938417678567738914314715733290933714612441021450890188537982399021083438256938289418308231473788417481822545556589755846945363045168889562188486991910782895858005130019726156847178207517451236400331765994311371298541152193063312687547357553945542912923210317757300735378382764381536609189841538963537848876745569001067734465282777183070472861130811796181512937384331451854255490373689203950096012816563324820918172311176060975878556297239324962355189607815302274245115163223935290744583140404648449304433726063582183893229212451968252204039915373617295196820426227418361311746863577522251912763998792917678987909405957483326799890395429325688799231626903252001060356777975941480752036342802673009360623508242878335159459799733471885980088002780698224090783073456278818284572102408211334586368670420498870348564161373275001306683883412045500401753856309441769467129354358648479073640733166431677654468529283974938214128604009926078600225477739079978475614227739490895179484590790426972532737934527255321045540588961200313659643699543552355699713473120594221566627732745778756631451293371390596731640696213637997549596839047072003393748008238131005356403642319617785023077757258971909257334942388366995781517790907916738524639697317791713206440845425869948141636625479112381706800208118391457658602030453735268892220150457667661639029588749823129584891831015295587245857184729313300394338885087313665692901335368031727844606052331029373811206189743712868973153121208540051241100976856866548522188776118269709134061804871639418995187621824692559971313742583764648977198872257322222588101222318644915040668185730008791216901305437861321654452495291057071094612772888887412095439895832172703730175213989750831117383612662207673197638593469715041750133616778511574873271135535643486193027471079013300565784097770421351659032304253627941465573188299797214929100338351141784100600125316169073924556369476477940774819570556151985381319200034899840710287544849693264768494919319952449828518511015153476758503499950356586729446698862432886140368585552552661001182400819972119034885976413807383421067476063988353830972754864247607152340172455006977581555710155447039077102472387320676319437404914325845141522889597383438458179225203999676898196277836870633280711237467625041293078218035205458403184174931198807797694792664166073917545114891168186322098141425920525128933193484432908708281325592216555739368382285697794543630218169974954725685443657126970424457724802033660684729433432857938512896273222712801761137750717311464545405245399734244306718511083727647042894007344727485806601081232874212919635921645546509282478874764817680178420105719272970231559642205621150617871370729027091115229378218636891010337882628349412944358494104133507556684816396651883667111652331659064030865681978969135714673827693704133771834952508500904101582340641534325783770729175802153288274893884894155575606487664446148679183954057001220769724872156829083431318691408130992338489738498902183854611591332053245589913559343964187824184443412070510967293929151915383971604498186726991984127451336846448879726028013952896751006331365967471150883496254596751682126186236592893598830588258040625586739640378111724571203471996723481707385326335085631137636468661741492827009879372578655704260903568881053409978297363380663015494202660267661270387517841921630731526444756263177018583520377875304359719315002506025310260445099381164065165638228874191514256258618931816110740262774530715671435839553463494885792212269138843890723952803737487149487037185810504903862222242924356737038481517445335148053562785383904545117254064132633125180638223462090737079021684567572665915393859356051043520562903351822149660226467809068856658156919252717618011517161470867652989003825862126961960872374093611481301342704653055433511387502530401683557174979871960775740020297742416042819879836146459632153505103389694892636675852282829282204615248337441584471231659980765318194072141238635504397569994586568041244654502076346979435480126500087934746211973555781486979108034587374063333663983693369152606120469501302279585878357671725663173666087097289287066723547547413774133938076815600129360942542526635908279350167963542739827622251993277967071480250229383682778698455945881429379308654158152685081185717959898002726936251559077296811109248650843653525498075033161525611089471447100417174255614878268083956277512382607696596990439106456094037746413171683533419983956318650735840499594168331047019981316931730315677480394567356940968906578972558056660844235903816125671089413494515255225563523407294625850600126242091857437218560706657675889495690691634537185778407342422160425313350076339636892495525253013912047090329879347058975421262976289427287478733984967659825995709546812584711214157299659370719534610199356873719542947999237839727839777675331711730665555680520581417779249907648461170234375617668254822914905226208521380019505263449984155532221200333428256857839571884665051814226464062670970171771523768071931404390447383878925214636888130092024837142670705716004924825059605035353446778640308929624069670506789478807297522512410885877225681733530428385259905791226455592678486663714896100734438411340736015497906019338651981562672868591717343616915148360519680976501097566955102887845436838126769129982209443756570620442689509447807859853176752177921473399184165591624148341644952888911669427792950962956231590056623841883297653238668110837662282119207223954882105361848078629984807964692071154993767174275948866118250180866761497866000343743777941974402328297458607785549224690940524887581602773162810884029325846424689276896272794300723598617058437434202514661696131919537785230529310413828251691708594244482135251101022870100283945433156538179903110590567353297978005147208611652300006524309009271438014529822835927757255304150801845018596126195676161613897939813938154152523911454120142617053118256547497594395749280012870617450644701475829390459937161500178530723130208502738797365459229033146744429040329845065257520798651046949203238175767464509402947984426712860057153190821910651553229488227313311460681757201082240078519349156529830744786332394325196139699060879837285424175324803390396311424516230449727561232884664330983421572345709091551019147862505021529923384415601259354411846186909170916151003406051600987195217970991657899900249587300424172602213403432637641731386846943862931715260964960962024160697881806099539213389343059214715872930124190017200908837983305702047740196590765624350244212327270498575033654595811995369981564904811198231426372055234589597665542757757525690845430556255392459975369669768151738774640825340359140705431699701507033974260945269575899243419650737350015574562094247745201554622212968356811977403266782137004331655186418971560346733651256537666218548776358705351225791129632520266295701919093318717546397744269155292404172296561037457722225911629867017016521918501536668967708145332454111462136338291153920194182835406717435294366336842425769905540698213299362615330456921381581178904601466223394604411384213116120225027737927732557173762031757872374161804453911053423188956906678450168723735323140481441803232309663953412775417140772763476134519798136005555424783178221347934441704258528522052901865636034311170956193994887346212983034190764646561278773720880477846735473783448178535949682962047832454474030991974553022434940972124701997435777997634429388517592168234402300490777072113028772840654020361104666385280509304683370542342788775198142520463853569186245986438128537680910598929883093096262623851551185548074264223054690553658909865301527219450109552427913466875412385938260756608652365173832516897330306038020085958440465833624697865640023340904503709378479913858102690653199212552828961350720442138802357244162021515344338646083692350020983809790797810447628672485206949306036822335974352310798514578506984508970497530029193049848069503283361225785947846291874560687063826004309030173147934698771492915210695245170343202945623079040810835964779388622172706360996521757776804422457964831700856935817127926403700814613345278960255426451906168978275180502906662145240881560145449774640913355610910806666900569953773663463064375231344958265068435082767146183209354053794222886364969627147067384548987128102061200298279760149883045362753300555399655933457060396107340980164236574470950627268064695650734539109185183457358267794011766884667089057424727449312043412320815519820742887228764410125630131521014208402083890508136867186832887220259361837038309538423444186485146431934491053990135715533667739117821240502676696817507505077365736177258709915403004669467144251998474419875886422090781471998912747810769794761295408686608612442018994075839702436332752214029350650490227418461511563705949071722775596854307223535593426285016103168480741096922303646068669045232479833267669432340937885659524458766583889580034512387308262323956385419011451484078534796791333320962621979699228489728170453681541342331018437536281031652714574484695611035426576108807484141216870950987634703493973985947084940495835805424681845877317898784503638839547901820928200713699100372961175598477939454510709743428339244778835592487474453816112964506570992433009672819880974561055124196074206545738141925881649535028545973744575753609597870161907015653040130663812425478472309350258948602005893682845680336055246156562199135755405441583486654635726583535831992579578785910824144041606655342226495498335362098334149791459753629009599802082991105869033734629575917133009164991043020910243983224271747761234326368948499136344456048784876067845236703826413354569801121413241119158114839710725626523816160099773446207893837035934673221328502951020815720506802314596086996606767860154449352114985454255078085556122687648444481670738555548963124301260122678731568699473786770794881996044332202135465611332565462648218786515640272489057798542711319628678061709931980540244282549263332903145556344297471713401729629511483400751753646795208296162332651687508228116716408688602866664891010593931311033231574396265944084324330210232290208798872043337289656232275117240311610169701454000504068917036930056829100734427945458325875070875026642872438922571016861001332252763445749045563183670835543016411104068813077946710619047308389925210791275440290716089643505089978414366693444082655737470021771859551707350776873913569537588943247563518453154881835360698025805505060947927276741343537212616539280910048244693086498869462284345986774675857297321769640564944730587282846494432949919757028362122320288953708332458427302950337028444918617168125581522630077353332377834841086570838471359124037226603314039490740512272769392569071534367360142785539606524079515203916427781412479862932191484127484745753298715006448154032259279493847952307364420425235285822390616491756342816340876149495335902197943950607188218245697725724614300065317754922126303819193321892567623029705114462597534007413962700828684025639414741396310854417785669964588121353951494130166114200860569558891080663898296925830907887617282802770918096808444802474565801808423286825916023009194169071566688462005012278092278443238391866520253918291696967568293864057150831246177596449848031301036638390378749160436153022165235608481341945995191035821757951929836766177436998003219479515754275445667271510138803759371651867669682214430303467760360011012397169799516180812320533633021566531569879313015127733817579461651610119031826015681157702944215200101559306450652555042918754971685601307835328743565335882300028236460441862460170402208349395288947871392124368064353362495818063672146339713269332025599165898903810003232614571969463086269316613228212751015729581207495795196208990300585171780413828268205013573453068687511947028764709951476954038295940054156418301484448074998885585330366111913189165545581010316404165563003804998282356743350471301908030661674854210360213662336704109962754231669520379761351554564083111582945210292370600390351956280000395876944644275330244881680691597158086287497632928890836239848592760404658386752042764430619404555697078534822547749657822563251695791466164611697551049150347053633065321368343410726672541817152322760729774247352414959234721281075600959020718049996955030233003288310337409228407719316458174157730355326826749495024169429365890066782169276048326814221369643376327877932078911804102800316536952782949282423397279238168935703470481569137694693420606995516082771793167402298463894056035016883845841774358195698790601195475587089487088137495388375822876505421601239538202192309783991288679999579535429314971451683285961550150691419797211584080947223062720007525349845901208212919387048434229533757377224388421133348339711984249820009473958110672614748313334095295063137879363654338013768347542802494836823285640768904449815586023807390695435395799064217859387461638847550653067842158947643091064394704613142899748138608724536442976834354341455570892339953882436225843066317923016284355817616374093689440304601774052048777874243214465223812994464858045041253296949029587112262363850890407939743783118781608145720343446569487704815662724076689223799856206533711094694024525415667275476667120806292404261695791470955779203425773363167336308701691324698339126634106266490201700366791584184142275986501374949633010073685328621050791182935916624730162022244560076812902890364374757639130432800615164415772624752373547520575122392126584986066654013440618630848535697038952731911619090764347337799937073776972907265362442183032509876171474222027553692760456740652414231689582675733480558630901495932117606127535321522392318792294141436784814560590399458123520809545612674650989733105205689261145410991165381169220855500726635678650013445643326176651801420764578957778673943623101504211446633757878247562340543079481359864141572839845435015080449865926249074990980810658594829712915992266627666635472021086722458911801883470995881463643579221788850211065747515878926780982506933068532406566396574723143683429305793999683647482540494332564608958750139249277791016532020701535010832426628530780233450777706986683269354214900072547956685651379151602218215646429616898138155942283409253679749620393650365840775819643159387634211577462795847048003913790514078655247960498931012485189578692549423317974354791165264851165361030466759558374238198870642732498942506828020705897592589102779775359733623419557159872091865572804744323629663760793175143811184098890886746169847657064138776819246222360140053513073511923859628839806378825487669187143940430831712902064687226548139887593110801572360126053318296660130600256491015611004240923891756175112665436098062607083440252728740671762734703925805805660986705289132123789528331185701039383075476085065894725362833688915724132182023593387234741087576985347204569587370574778313774124106397099474972018412025965198302635271783665248588544135801161397928210263179430679046434942026143159866114413703238310856015257893356278039978730045291584485864896500424070619767818534454626803141684757554566433442636649144724009795405096500667807815617003989163305220515372786657008905385823129556098234835571139203281300369231368798828692926277500149644202122029427759179450870085181688444405434786917717709134321996050512032663614372820646410441170641329234687210775379818775029277251783465833445719996169917351507035767093975652517710856663639007270451666587881165071885424592329911180025415973460478185287005060251393073476046565116544152383679554353635929269047156535877979989940600479197521807171649208102137059862361642442427941672221874899293264728819011828846715413493410802986171692134385659456403395720710861309782939023716453041258576038023063889566922437450285969946154291258742818099307440325010921610176566382985997713526185333727274444927104477138510891739247020024583084458652197269122474474624950174218305725976129385833358867930967000630103636089935660074272377632102531786799990670951895179066551120998548699652620960505199927777867441551222660159764349151078947679091812559614109583044577756555517288916488832991878674715521687594488875126626713856123695301487320856836425429339522916243690429707278097559622879089586308818487304562119001340334417189261427330671085283463945619998903264345472581790900830245807302980013765743683010837649484845006644983044880009298726462108575966797570046713187760286460531304908635117040595225374085721914460940427951104540019890119779402696499849048038239582698071957058561470491351291751779263966121834841623805163275050295362349998854040825167455688832756737410062129262942785477586952615224167465695642560095954704086633258948334629017557673372033925883200247121935015186774788855920815806745077933824407572220334858443120419486130510270369654045499838887755050993304650107520020574424841631577239144454159470138326309024931456205110720514772482884563290023382258192048739586182285144921490422641045657306038443021652028884532381872405457529388266560447412278527493510362992955106177464193501360458292500096628423374257626125376954447137125956978069695536213554310523883139738252898363353273149899322882673505132716100123093186342034862660220076254090576780326108351617798180061107496704540405629130450679853656954156669582632574543301141104207290522504034971698899560141734359980779469729932836949835834426516667096827729251456579863991175471925118797199965607422119348948688977513629440985425368833084854222143152436536217354006382302444252080510804631548251077456859009716217613166569440025676607066951752845909668185639977907544073804604083178494028835803783678409347499811596413533985246275347407182858542356118037864579668226547350103463290870082885682267120599585582903122306021607775916878115900537191138955272403006483966406953037136144882753077945564255568612925106692109372672542562004957230402007666918282757175720437881965260420516612266439132717501023969517120007411167861568449500080518467555967265752430363035659814701466845312925629562305461110102978556127849411308607944807930392007583710879654201775705897941026936452343536254801692898873610725449539491633913597254988859446032241386999847950231315899143172778466005723840331849335368599479119894340555112298043104759129807817261600131340548366941898844293147109379376474310723528634388218862207325851502403188337159347744272357417860199607751049790573473868172423520878482696007203910388223966125664640733078988540685704737498308835564556593683081656611954167942781565743237594616068824598894926325355444288651894319228310074742976391584369713471928891794928623430305455030137736418124794539868381333321225119509510548958281831690741081655281666701198600739675697773938588281110390753386798342050616122327799938958996419519924733988180609413226227555985349805991087740086579632815921567733806254641178029063863389969347160116520805190849286960655627337632992309939459210202011753421165155699096366577978662966597326054697537525712636834580282063500553577057234096662502358620382207120784727368426946519234746761313408921637569652114571892488678058391455038645498993066584101932041925605403913555161383464269376287558683554591513792438557802428858017884123043088581433552877637988649606456075796344769706682760637875053778885930071007766785331892524023432094325074294124942360791380735475672886490093779135066996348475815675727322331445236496917842241045168238549658572900287295147451724786290734982126310264150048159504481476432982107057432040981553486205354281687689032719854170751069179760177904850088055282132782412498087113830907592846964672619454796024016968956522317061157685445824077141738219128231005453047283238903140424315376774876422458276722159390331113479748359331043382040048004326207187874480167883529077143488463962270839775610451909497530272902295171474884145842693217613718587120105110746540767089588299850092518956879980626320322997981342421308318300615656236616431699566050052244952166008322686014136821849431605755248735689343953826110921018655016192024412245500799029397567173949279775639568617108446694611613902676216739353044052738160927372886203529651441395072672492684095606884590491424646397826443790276539394967007807954471200120039717257895067886340800451429989879174729899409170670254063926572104639279571700907226071311432996724714151230802903159937493602589494811827703958262610554060131383142046373527247195206055277884394533232606073725312653244622741476406170546773031274964228158674080149957647391040488034065893037723291010426245851071065696171057248780579619928642919486817163090657683149998597605574181351621328434355566296088723120168802990405639767418554318155192964812855154385354534840896972871681547800798666620686848180771702948059490746622201012933029506062624822793320064244150099848082178753296551206604799719955597864390102465837243947852520992972567432443390939910279735043262685349890334328532934470355304925562183554147768002950618328471683101234602004387910953600814997351221454093802104680859480065301114570452288791168951634238439633151521033939885171516679936358303694306895846596477839801090805076494818507740688226109338346852295713932368082960593811681390435157049623111687083920783791283358385857619845722583813239412467668602201008753995293569834551534536899434731665269216756616375429132687309362217418359803465059508437294686263515396795488736278218499844954273420166416908603104332068140850796056845201565627386978629913456230199351823755895932682084690837556378507267829398735608434488202210003408973145302513037010321989839201619736058749293064732933827743575422847284475909474455133878985684145908783544587128972134430269929237111157033153755668881935358466551041607716988675060058777155121175105001125548821275708895012320776636575378203163828085183122096658116626386200424071109506181567677265136476623486802261595595197500896252906265586885579864725592013370878189155303679938550415758451378219157862171083715270526228467638242622338473281490098408608402648719565003496927181045240282073467157795112636984968515451787273973390146058947823599251716099331462607023557492165063691922793399834525879519145447545166196668365073244248010855947529835009154863592893520574454163897877844002485682583581815312737861744227646884647040324540476023987409216792537759464619573316466926534027082222634407610097981297782274025663458984996879506800263302043106717099320781716874300563194632765617041085707436847435256836904878031636483862776767926686884470031211665990974181247363107561396463185780968192414665796330355623548682073540742487924309604428166691113009490612369176831655279771522990061116694692508273116718522437571381814111462453557057274264813618658390453348954726085169151018605541485439214578118949899165830853246209322366102977799877819276761108983262772553592284413848888563785342522153799693738652570117764808423729713647619623658365949201442714045539889158389732488309129518896791805143226155943936387349369524129635032652595180180191402663618707842065044713113517960971949314262756784625763309803208074543156522559205950994272286238724013830900324388775607532116231543742287454281669035793101369646160376173855522851784818157932345352403999063957295557204409764144078165068450895217735104504543732900632914694543558221991109613803561421077968334255831916173594061390367294615939051147170682538768977231590956959065181988334078042785549786858035505617568717330059108299719229170908794048261165888533979892249423403778691865749062509561791283413739869140375294826457825687389649863784231473532883223095957607750282285745296724029119633910259352197430014220105550049036320215259297522828938395321846119013313331997914679449239603965437715323798755572280314560367208818682505162783240249256155999596519381342526944988807193608028851793027768835551615234148712672903166847578717368866139614130037587161395772122329330180989006475483725990811759724422275057863893087754054482982546667192497767176555018515381405521268950835185641370787997210967564397871667370919572439661964865951244856971083308973724898711875500346427743310640925293728743992231411618107450061766562033287063604179716221749928560122356840327422142620062515012620501399980188446305280859485491430023077908557631745299256845749372401629053646456446013440537847509606756704075108417018822201381746063233753564882837490187350735916246033647186045982755887262763608016287565392194143379762332369740379849263702680933663413715423941564254780796793459169489039022248722044213690419729843219271067700520177604211185796144993843898969074283434375525832848453145591738201150785546683262365331112953088450662529130045121446770957228534648319054216042244642361228507574037775773767464385987555406084881673541106659788644745315803551173527988738083689690656641051992680578646061778803571993914942398853068824852515983290492172586087243209358345604087353614449086169348104625347273624919598561249816280459149948943648598561768098845191092508408252811176711996897530005059168683071567396654469518265381958631691089169990690484678093546169457774009510023714475943231866976622470383069590423658449731387144752449872032034426556324925912276271130527466775762537749182072597406915940452495973236876969569124188814516477350357792589123430684706347928072606912614027601462857521909840556363659216357552078874259820487854152133233468272490865316734492982487730934003544945331644913727549472697192919594735654043158160701452188050352279061015866583163236833289719891993927987078669366061576624115917915701254772845873052963323938025847878716905509784353418378795294884609593673169503747511644122154526832690913176532428934443979164087829737866675295004559040897427396052674666805848416603278126723714218380321524602485556926231027309979518867273361491786045158559004169340643092595005492985739352516010133343790443879249513670712636159392789857589750578421322024037127493786933761642224484385036012282271225830652346250404106347760914652668955762365224517398516037132369024006150893604000429017104661043316710831190960835221296857317758570017404249136269687372064841665013713734211748436639905254960802464141233757914605955392483841890484821595093515877601739897308129949724784720768428161032518593521647838451492338714045369408505948687846373088929487584016761248702047037984179984612408561531433807922279200307341260577904476754691557358756176369082856303938072493518590343471588783907837903317612356294314042143919929095637829741740118165791032856616978809228713207761111002275420325272833922639352379887182184242833944350110030829934422548414150235954213916216368876327872536163650451198891814645646336578445223890788972094556091384889137902339183284723648278690989730151923498922183501031997279760939279267574347355371667434395368544281949485764284562992063529761173212315166983779421109475181987567055022171086134008151835073719659601849144995336060475900038251690537497328605080653445589488459451375798805668871412281604856290307040950424488927889655059664373480063505924166146143143602316046098448134534789295380262405363989592021716348485487393044075361932501286799374486486321601633285210659441508535968900234097989285516978514638485254811534162011871630159412022551472271771091626465379282548167862457305785488263167252900756762831825001159280987588789666361611150245144069495971165583423092227458951364609919619230371420691181982635652294936733174638181543342272244929486712996768250235196482798415465524815950425145016781978099310179117586759633746905968130901533475548455616046790230398524359215011826255446257778709703089421155752290750346803796825398380867143212736317733600410119874013208890572996091884824751106810801350671332404377071710514260663342795380234592195019492607668036662943095032903208437838895213394781194479249150088000476144134942398010071039718488123431053757753181807864940160061180080924689386327732658032011579660237000981975750143851155933656469123768694033932839140546686429065679519903591979976282993936018033400887876691800492912700154922174722968291565788561733949518602883927037522653539984498104499661560218038156108177938221077403517099665961451710263628005284353245857566788178984290174676758186076262518729976704487530329618188665200832770543829612880084838988798569192632644859020579617043933104716134775519565559413107253340459674908029745527026048244464239088876371627951282404546420656483064163257974987650909224663469221598949499452180609894526485839818773672151201971588720091726206415924343335556205966873863164050595440385846250245362420205771261497588647656636075662726826948894622493392455395573841714005674237059003029073534482203782656537967295754153522225040395647743377605123742564483456042506490498519795292520372645684600392971554188568262174579480166426976642543636349738269033681123010181813862986359425556066959033800504640427539613132333225638251671228985065494412202722647866212011318019051402585550370277109493710948179677611936347249149957032813597223569512360227140730326863756819059001188567741840766150626583162001948383937546681251416706937928703203350066137481127171197417247976220968181476750892161673496388609509542853474931185278109183727960164238907400589028389373456490898986014089438395497034200693303941255852759933809274077766753167597383202576195439115412668878671324167993517978932155272590298326129741730893433413143874702837054844921931196307075972793771686291361574056581768418552057007359259170519692327641414464283233123878678179350182334477905070900180538687614407243241695106488853542669948400717433695016223516619329155765913180377813133915016576760400879920129746247116059616011524565150723312913598029415148327570267049211762202974661516781136090885526866209611508101116183411783088780237191638538623278277403539636148082142426569700363867025600571969801826084134026273579672360545957148827062844360209899869657718542873826628417165940123959470170999709317333215360107751549992230889709067992996497336201184674569782607987288266307556830062211873790590076056441669486230070084102423349863544973821478987398941645865040923830015528997441417324933837017825820167841974552375246052822003606052580068067231898879428494191034250153223006375891658452273579767038487665005778689172381264657606958183198052784051055220252119207273235010248256947596080385245500811085186206417955303512023816896567972029003048587171078814917862355446505002334179636803479929035252957492718309361228816805848350621590839153361417288222101907306796630130199452167616096267426608026642280094803844210025421907969746437480445702172603070647979439762741676429396381694363547497513207216282186980223477404914613704191278689778886728539061916764740602681014312271560310782580854800528349105448135623101010783223149030125427143819690512634872884504148517401091646264064501903872214271458539181644215234763108408008154999589688454843149027966305576082226053605520039441170240364699340985283582676309977976839637138122139063141563076085795823692472726887905399984889245085930922050183538210428271060402347863212359648250758861741460603896834306411343298765674380931304350474479143670126614340060409333099316631393452731563356210146370710696083036764623846543935198703660779848832100904041597766648268099939455734128036986914835836962973976026215394489579181270137997757268117862546190681487233330810247487854049310866501209955245509839975062951850683291019424530817130259329069060423622169733044747797392214033155123795159086408918614748633845206402180593413551193606918720962878796643224581652925099456521908518934769227346111682202206225944087337058632977062875049703478543987528887796505893193934207443127643602166338409799411135566867541175181439972519635821465332178968784332673583927997357961055254761034220315655433514235149007574319828381748550007909833897748546557622875190848690305553483464151183077277403801296237424048341556039504792557282993767843204723126435033617701875945863131650409252775075151765018928636649257974213892486159828647464954542521717705961896518096114786073043519740099470855773152980395072924704513054868137506751655670718466892971846749785177423291911826494691143591670739699071892120941304548553896197992478712784495448469425000958662092959023301732969324503168674748755604133120950346508950706698811978411302288565867182687582599066865232617620486210458617015889235353930081280808434196422754472883784603433051553224387198582071951351346341061336020381506959157220287373788912161327954175840884327136540284034491004720668696652804662955276583341174870716187108450002895178622131223967140133074374045365146693912496600400732878968004390517541491650003897478048411015713466601032028531637324755735558454649849597354011782145895086812844645156548870103017419662572229723654828806689147379881624259511610179693290939363234821971693640916557483156893561174506494805170526521562513624122122241115250393261687982791577434325883962828158561634976877081022466702062115042061168529006066930831669637795554215321427075397562846700504329680262954309437209798211747251218233332782775856533876612886056792180047075974983554913975400579051114528982954483848089396641961463638807881165320827285373260423920426553915837742789123750674067350452562750913183397092667589479162108221489749798035878458259567866386144750271749600091287435852721033463828924115364451581147705163071411870551701746762933838717914661695020969649528129388680244853562481820898170525072403467367297921729873730088462071106941257332857886491489987586006992549807907679740253872157926338382375144625785020186646616559614578291557109946656819189555021542637119761456825415026394620271417315986673411930333852604268791698303482902065813772822743199447877431003555301056065453617271191324773760074751393214732781747074004031065649969599163612540538979167902461622186898154257853060629601800863713553683583926894652130313382236276081846755802736147656811791430727189666846962681123173553504741544726969190493820716490771679510285770175929404729072106835877999282983814051909350548568434292048899690345070215642692609535802058071567821098245652779291179490430758375340418906711371231758235114766084988647819128360073745916263496784155601268443464861858081676738074274803884535057012786629119603868353984100607893260886352190675191609535563449339247337649639949465817233149364707655870335490603790287056046467957131956365156459611242806076074420923713458088958108044246092337992647875781204632062450399461272966205822979527319084527021784076617658502824718576834827206124937803330626353714421416664131589036690746008498223974986006452554079391356572867471096455848339737098107576784849879664247380100166480004983980404192641081022613327695667286224339239093819254559794254422495820246947368264296656022924778497936333273506581239268933940362927065150015568009327080977512159357989249233050047718314100201640578604223609688469303116050729600764501130239063167707319242580952705925776141472807968076990465115465433216918105494019708675776186676939867274764718531795499348113883593440957770974258166413577641141552297344963251619010486328442415113506248986055357342201264822762519994989575428577116379997463956002424524415099155116085802880282229574810251609949652588324467578262406803544474632963299013031780787703110939145554507724221109910367972067032368602581181623814271816087326579721386512190202386099378461503056658567684231068926398305068502619671280362435339477187416625057396201129491022769944690381764743626493383266714659788955535822873902256105144882698278205431849744178558894304710954476850265707464326144729988897239182460133212695498177578995998687072400535015638442766149180824611786199372628252395201671561909233398117515354281260217423113204387830366705264840761932121282338822936651943142836127363228469030651905651009283160199182687449312672375963423695208215425191468106489465255723856955420319879181286138507685695999692412814789531018840781909100776055505825872117022670100179581158829924740593889875893159161481694548299219089810990783852137961757248478989585678632497218062950194731523458439564554244829010032986514191399447596307687533791422178178731771165617879847674452547237329744673000767201234198880242916236813409417874227183520111253981523360995452560296070049503986663459793730758962974365220670475451891776995398902409920948600689998371577652907529046559974339751247493185635957609108127003704624874779920041358803958513528689456855600413746837216482579703731588499422063714944944882615901516163594596984628734722209760534321645540682993403974159610317817631285179376095396115660000862894466321985237108059300155379597822646918638546539525423195751489567408594360903978480111903543376188824037353316362957307449255068663055857569934821036116635883103626036284852816104317997765563660374945618228099284051218714296867862464624822434255387216034452385711992501198863330808525574541908764625592447889691680912787537640282994789208387378745310954325951501538407619070547228313458744572484003181006042980964533550811721492522502447166905432430614590092845850131670622495143624033207221170687333430172147008739267063330918618291476260246307208876874591048295220591259056421825648057061904651082599952452296979752314087379096682869008435719251952819783479674260056155775443136588621981697320429191551062536683591261073333798608686193504728100724669902733060908984442619694460577632659201086630896868290683155069985190510447873629923832222956291109637909553404654382123575208858965485209749399182144073869970387826655941402473115792055491820733108798480064218061384361355433305122855944226374946747010361902774959677948260983972701899486727498172877556495087847714832628959487000109532971798084087465141380172546651573522136873769240974973924138099036664658321733731489362013179444588156726641137056150575525106751338093212845310448597427990528902540546076352681170560993951712748493383682521532590703785202818496711551021815528146635197157448908574217295832040155062466848035051138132475969252629038468693892946695212093428463106256151287472270948067646638158403381879784089954391155724735129858767570476731818446571994829239328617875090834979898152877427633062526505255638764070653460068734757102159165605581729899986448861998735844612382086501062052284847680004351465554532189246566902880378411467428929244325525045304848224450076833926052664819763962066195243840058292509112546838004840277179072392106732075655810655056785409485918362467866561781187106245289752126990329271007457355370881745430573396721319430428090006579727397686511839509936562352505626509442968918552632084275404757609012225126730933984062412738875656028330312859867697890631751740450615626835303363789652575201294889618781352785866174819597684650849784791021870075293501737254858004805449856889345422369335502649738413185729446506912229881630829333492545118581601956708058098109404509675397055258584618806329043764445211985578395291106913462012698214876435554411217150239070927084160375332240555195706977280782778250553608026655902125542196345680072716807088087883634301271774210641577387501102590930740734347864233653039366515172868273255866095985710548244780744829666591083201498248562417378950713362796783938589029525778297707258700772573070804728410122879275046775386116465191837447256330860292923179335439490712490762545502484526108754250910197056085997458263263491850298331168920636695384978456960102470693370281506682681043092780776401739066335308026041671119815313846814133168079194943884148453129497439860494980910976804254167227845090795031665377036340841398079298575105064143494213395627765685538577053834275984877600515590555520146056281226586077069792005305826315724857181326018520343055292978625017363480092020018758474978146253623820636131745234769123563800540178811850638555088977313690166628823077417855879106396452853443580042845576299658408544827101059633002257897219736672298217945363715769125110934544746027932788687617186911670716507864398687603038388301501826666927404581040184094800167834710470403330568757346545310989326837671285439261955652751911538324169332954212958680154486634507623316501328419423602143432361553724209571080926745396431745120209119092645383113498898043893998862205312772746442147374404003406481460424145372173788740597761920393564323652209492537661011303114037810644223439678661353334507838515870544541101342866408948420464247456193688637028790340255768272428294137346928347787021961088994622314169508883941837443190938466943957862811079296644281089162029871439105414523995826562070416364695359965789833389340271544632721009371631504004737430637312998629964136336588746899868441227906599591858644713691925527034269681924905108249249780464799105423794816606341921087303342036835332018776757618536568400848486124356605285151615223928809260477917226134046360176680564252282802223012406827188198943650685825080376279898614394730923209088191766825199591692307649695280730221106402547605569603624246421257799052378840246967330296914346773066898676453588345227882329903632091403064301853583058380377911839667045897491597478175186110838910552136246106758030191113516827577330080712292697311308769267103423936107183408828747584783008107386774680949542398781957803797427643087822943089506185244213269345694690952139868024147612428074264494755288142922546181332805303114145646265832052898161525532246512031836847025240068729911936844053310500693885530703478102768602213752622058399211295236323086326832155205172662887830081089111013855574612995716869225731603797114620255581076841250520260409071256765533881583749505530018855761686765210375941421361358338878273489995012702769360110599217151729861062876906402275350493446655762267392997454401119519078957578837541804239893266190811528838765957803391550251841529430766590225378149836608888089052448395955546050610084280989797855975515387995180780926729328567947081898477123673106759827249053572740036396316424257608302806402985581001442950777214198502764004387817413320868604966848869551380820809464552185792332617541674273026065197693078474793677825228679635786492929161342556680263635173237450372074645632222246445473374760085251057577546277397837684760374981112090275822714553047405864076871326978266452691133003238093346274160085164180869777911713944896091304050702685356358360108635255283808722974904981964553094669582474096100723690163134798197666445846894334004875712261436628709347640742573272540562171515084044569849586364578762592659191681642826396183205928599360532661646375108659355309312147414150515209095790056867125816000874538889669347729228623575620169042752192746873024316063362958112471751910663948894286765086810032310517899003745428014808187502855347663375764689416961214309636965496785219954682694371601119412523959975018234659686548109773192477990990621289574911341430182171341886600322797557028018382014003956926775424898053662278614345110316250494137417126962151771033699891547641217051491414555049951653933428799832672561322803582198575838449897188031501872716228604392335497138080578439946439264529074021199868902992281718653471390494067199245573450449127351347866241400422062374476283310844979679037203738812500677891243038554287076758957222090683176831648971301685843060350139864990745231104203215856443119783316782361123867441817747507869705033664238368368964536376067322531997387648598417662498307731516274012119826630617896922486691263454525214426217814163629432769085780225152542557094841008617933921604157656498210464033166456605200488489128659243767104901067657791942669988064295397865899198342253863400343502708170597713052908004689698832085649154491850223796132995988054220862158542719212241142411899546013403866918165799731418449785325691475919519072102714344006185656073268510820707504310938131485539861192115529496399780300743176461954992464062605504556956521441286816680895419646496150240862419123594490793653883965040374923770826022572288985914034817398172388427089494973224437435399279745196369395876032555546956545079823890348820773582873297407618534120056786587842442952515428571800948837777617084311294722406231563509400456276035126958702312671843794414813339293701425220143225287314815312567362772128111902573156477713205441865527493993881640762000058005996427075626226242669778972954211825489525583984686274455996968423685576709473674286986409865776526149779552288282752937109471309443088594661293521562397719585450943229327463476761847356513454437827457064535161024666282479202710278970274642588877535277536734687415825070228273743967403814687169689716962792418956559283403660007743276919219720962029674152483876293760410415717667740729554521355933272122242537637352819677113148506861314552534419715466640440862786427290346995455256630648304245933439633246915124390549994365737991636128212764818007554830342644843890426871320049655053772963395845998440755378536649619369152576157171032818723101464075625904558568553854936345678551139997671142764074556173357136160619209118224379651960321227162286484086100868773199340956549917865270534444608449213953441399343383448595765020686973749494734196260006045723505107377352995847834261339857921262546636765713657346018798564522293957028356615405416705380114110273967569221046073777399936601778756568970598990533701993386198562280548351944136223684928685409836479132346822390764817711885532561275868683018606041856899111470620766601000212849251888326713052512191638538179770283418346270534209957101101249642916172732341188082615476325074683072596918926440740239179881842508698227523486226382541277316336831480150891864454846865230854098091550867339339814367014974514511440316240489194532797783136453238357559667580695468363297773621333954191504574469151149689551065536442380428334729739357310810733040689309329094270331080797863460028862260490262243926037834803563923571100148586382913827810520735637750680470484603119566810099583750391913715657087870388786996723285470442808184710877892244744380599518463211482011116414574965738953197756171558167042233537309767149287744426399566496257464834250629965816876470990101715340022465629092105629290595558007789297442059177312790724060511693194838844658690440558759241495827748517009837703104587199849231138361340754784259434246021013005904640167845987900265064216378962127406628561118604901301511945246216360955283863220711113815316459024312817328599558383689179087216573873722140036399198457814703092474463282453163680648875013345360404917341586203541719855694198900141877995755140232313263801915160953377088528864872032534764657081615001432677513732084477351162795374328795318520439476167141833206087711505064158733267014947862533424807376987084700243666756041883214785262831476564372978407986442937522144147859635817758486546064044611467215961336031481248133047286701069955198450609802794292090587237419132026817150707637457126363326560843491503775771350394306763311802377352752120741747029151533707574375225388714215627013921581475708068814000679944489704725837364226816012333766699350920722298740531020509985948611191803374827160080052729585468741357670028773005310632527771979184976354899988471085712766187529471705250591187593847508466837856882882238593385285453982218439278913191463031880485431033112686842471237938994662055553454036765406012766700426689729124414354001336311625852382035194423222751621184639878552439288779662644657837352244591279969858119254779475613336961410421543618540027053921109558512246488770207839454824988578655774950404986060731675023827048396348535384744655698150906454324068159348829955056973979397974595566132845182565497772564863162040472453633517079043526012474863453600452371726625115956842206663478078738033714617855802804527678030563833306174853594925693497954946944708607560795897573624115686083581036878667817309043923558515920286410041435268844020672152718565891892167706523447474304965910825115304101056292993910140681094871062032782329982657400252180602611072287242182422736506623849963690317495897767629156842216308819482470601049128436687268016465803793496374598695936985595106057192794920724247266650547482719113143856804194604774647295296502754250047863183338917775731427535814940297236759164035722997597470278528166635458535308379765731605968731278151145016184741670582231170227473991740674895706325335766090286721031584221522883606203417081651083077311208291358801910398246880370135581043285760165254182117114457717509183958405703512612643164026546243969472813188255036494563037473221739461975350571621865654448958161674417113109721657109754000215477305104949033176489026828159012898941233673947388504319752017100220636499263041467235987570101213553806503559425828292195060249744183198435880149430885850704986334085094653661551477922561434903021504257531528456609533639086800123696855330492773868221432968609397882435143845539305282217756703999498426090853613068635902189999911142245122073469039147951130106716425757441068902676129991566663769569511483037507561987260479585135848219360222848633232645096881460737675170186692849730714124728262717338443292371328644658252858789447219978471002428945969838756630607871249584706209713103680886703678889643741023030996454530187995153437650437588772475801071738457936905878615836130074916840278738675786512526757567365043079254873529856174160813187592618717891327340859200279873337710296454078739199161687590176468608190133273655788494327018127039457601875220827284173456709612829771601818666584786792691296214300474583941675211400046861667488112100743995078558428714265837982433318560956639565923046393386064967551727547064743066285059980999489810229623254879828112640628374162340991136582999640772078102829160885021555514966752665899489815849433608014970686571352422395387965169948615424769745951343026276372870027871601101072099160439365603650465439760051914071422353115155765055299872153983002753896040185819750629283867843226252285403493137986408008281557362751490888748439082649114003683710326086243475448585826713774082191388419732350929076900267065934653692347030822472928826288990412483699099494317189977587036813231324042149251424587962141231026624952257906791785418553315363020527272041537438872751291632375904420363050428197858771033632867557597875674664928537855928608587055623424700354763061785800758239050673585260021740613503297062295062269813152367968832536791231764850285790896820427175615592055453467051376794486646460736072828743230598646252659845260663006145203726264506661250037039083860361718771373883595888479623562908336438747182657818679316392371690697014306692531874360965375037274883828652318677948574634314401045529831364009630417901119783199593418873192822914971512266106223118793263161390112470208090020900704195796583589587171812381003367551419624178569641751305795303550648217594770940023016851785857278525751250809717019590633485562492088539785460493997690417470767968858586652193585348532836029776390490288589736593913197204539705504635046062610394142052275686800326153185645848591251809632771999364788262470735218806294590574754392428222723719987713042942417552858441546296124395591750810295341267755227281227091686222262158579603171681567737170384495652541733267467194993042159929182823961693634152391244372487435611828294347970837051725844317164692772386650982525370974983413468902101762088485892518665552664594282256942120639196067427300778048730171174863889486097586655563984264332295420701816982361173261586273602580624735343740800146347948522486429174320239136886144687622222979659802043877148999495791867007942823647841903144528556607751065188421504608712657788485329221721555446765784079040431379659993285412155768863128090129329694378068285133200422832214308154879160282153158141350450000004944043459469092274572299045380004201155787947907292926173142949279476615512684104568024238792872440339804264035243201729702983832566275497535710587664439841935385238627035804031894528685701921417073682988566896559407543919646598653479644936607580279503614154116750719684937554874551861480669801290328632746164029579866872213374108200341850329305593975889282423746857327940158622984681721519996523834540934216855037258832498940023958081088626592662308751452066668675573753584148201784285922831695412078905916639495971045659003523315561609341683312093384251138419008124415036254365851101533939458066441310066139726122313002086832867342295198516692577574333866505135031339581966239771522390261116122602564768789548343226138993964274868214114530193978100229017174496462238346259274961723869207525739498403159274038830963917108602359092968443437189112215985159893866270094474509118195925743270118816833341660041118488834709974556280944651230568948456908057081705226501058434131099813598759539025409849913496734809161282621869774027087091551619629997832798507470214979485050057875694575682253832865435523895423720443104665499828048328355033022669143478470515203895938916304072337801149496586985833585269415525507667379429175761836719405702223043857715947807872466609820243393853345064259763697586275790915322455378723648569058526261536987912653313586553544364935873342825446504016935401776217797744720731379089495273790776821606904768047608879986583004918611130705829325167844394168346977556370895663021202013754775655348059882133889374149872418736964105493961472495765267589937779414710632359624140505871089353203759945764473768578907583996560780236317002870647787343537445412865443782138418021287263279922437257020681729907858457419956674240110810031212356396389988732104557991836764865568108211724931444755815868446837266611073341353472194888300995631284446047667173709201521272763177897755716964538739611356552548958533222057896366491186585515284944255269027915825752937708615085406829581398724404323722535629251068530573240207708200999183895222212534373177227744036971685257385157431704619587868442259778652786527375062644590040557496185602216228992554847863100980284082353109147784889874223769714096821228532935913583578339672805527018999852905392990033872911121787070988757592744537899879864176994919133176154846199904301692032072320716945855876234383450707202686719629897444962330449248019992598526774396245884380707971798102757525902563559298927729889069760302174151601922891966739217560940292522029977449513829484441241789350572505466255740071812087869766564186024502259752287035074068248159930703780209017538745949873745083284301444425970774900408153469421228341599806591040109145121263638659949972798077236786001140832762882726459210628396247992450351782747642124002109442858561913233957250088667437271197262427376373371141432965044574516043958018770564752315410173265107371487646226931266832847801382586434201272330205765119876402383848927153117873673507974052386691042183096999015626968049362702567451313511169214125186994450128896750710333433912793956408511387221554898651504907751767274489468406494931603084788199926042817031164125498642778638266451917807192632355461412016172202828534788278940603174781959287282102833245746292714709896613838269082004537700477916721829411592540896200391404106513565192887092569631830911518787059125666682406877996895025912090250525761865946171945887346290943706423961581488476842790346072681627057619233675383704490239818563733406425304397827182384098652711391166022462680898840940759807146280212022245211703191868213036383405382541156100946532731271388469427843960431251053570908167402263342182515975997279586747050449620115689362095384752110890855109941853249911283540743715306717835155049306171763410379534187174055404749944228013221690391151727344831042544862165239976475369755741945888009305169338106506666784353362497291632411400958583742721221451479481695489744376734513401234050983691310964406541902218231737559293500105982455321295152690864437657804469068734742465496428438907420033610664441999709462443889517369800967467504159588554652685049074121543023831352800680729041434279284183031167990284019606964447571211049664771589124911812505087430602807460691832637033265890206373985712600067553722925369935486323953956224564677581541030606291328520252272337803154191749828765314901537903264337198714483156841233759085945021263412750838882929444822833235989079056965747498307491580458903756395612748462058811366756770202845557684257231448092204365166183104875378404497973107406776242910370341935754790047140345779609724456575167227813915527130460159103083094621651316087004897292659093037364904275846139485448628682364191975113225897488199951664870478755704622658168271858707643094003110064724372545577864615127244277848708245830365197897744786803324340254189405871336598260377128523794294801173669373741172079375717222337519010396586801326933808885734688674925220410615340201239124398755132559981539102282283466681776071833427277845725068540702816055098049011544827348457395578765735415576906620457900868863069178048100960355466345568997395087427289270002076394625701854785740651322305768045908623784119153752979827108613198113147187272533794583058145182165473671691352860668706893208235912342519676950763293203923778915835483496338945465506748783716719039869016746553606297911186991877531775660200517459939257323665082012394630924346623626532381888219439469271386399927884525687257251523668348512158734772773991049514606303615402281284237378538733881365325181515829734564960214395037076082857015534081150703462016124963691523017354389981176038805864203592574400169140034230114628044841566372958065392850395452260768825775279669914886731927415175507523016964813245292126769450588185096031105328782417833235061168699299627482999480848210901009493736724550741926005689857112168008186333791583935073712154066803675798770155493614068927411057764001579232725894709310372538146006417774723859629454642502436780263397509449870894088181997686049099068358587643202351722891835145087850365887202159101461694054263192873857952437509816864419665164630532090706091371962412196330510286619278122364646874871588281275677066007996005588146189627323408301372420488475393233648249737425786863880537306368597346236352548956787321720293771479040903119618654671428878886029439515937047978689495454289125386330563689937992306556974590779460061828823628872949845913646751728846643959510649576354148675959935198550593553272723277571930431501319847176179965908128115655583054720555641680079568966173564548352368739797992565001811838837780247586919162433677097787245533827157578674420327416591331774291535987766220635975057646683822127630837163536557130019612926888408447540317037493760126152148447025590701300224770193852626340896734790518698112736282036829153729042652098031334085489288450510407699968053391598410453713803501391975717384722082048964837494382120787759222964733333825589094367802129507093260510583000694645306256939243028382418235434242139350048782188525106764752854751516960367665225322068954710554107336379148989512023128612072023321885858140306095725559692730566758083319157935458425974053827791143784834176070580298604408114776191121319008410413219878532736806169951691066091432957249067950186969921363137556524819971470082818015360684607249719026187372356467776845150262493585113534068690062426703643794662942440856363405630217951321673495944537405061927463646486768558311034249819855153053132779119403244983775745767554658112930157413519593809407912297238051741516508997878950232707957602686315097869154537952852640881890204071648688762814777605910986636404347681148700265778267311140091424762650648359905174839826458501633427085421298614039433143905676804919992511209985057677855975106120059219171246278545048239647828537078221830145817329010938845116845172927208196271963425523741642354401136230978188115029491716051938584636993087645663869216935217299737065893061079098859194265717048175245877701130362484454274513534273360170903812945836067337273220637087574026209334439054019570452746546925873394554164359251621107143146279167867079835910294302492383303959055373265662003077496802107474560970915083611551169290193580477214287868850392808230446317688657159841928135929597172924087011052138965388515242768562775009875628301701697965563729404176482659701626007572388085473892473312472963331470245036522943787151101669450460500274832896180297373637899888582865759925801278374475447144129369191085779458837109518525897681395265419928440906826154778880927944948405549049961946503593561278141786926632691100669573740718058819942597661068554665680967252561590725401141340851888908037860965060355936420282250937130752711076667826220339181602466179318686333687942639394742320258918466514841885677620967133340948809988949191543392479776855372761095422867444942846189275182240468456891540086500083695517086191697551949898073534228516763009375303951056843985876320582914633267947830063173930544303611354747727536956482840361570161138490025695600403685647065809579212116562232037247037280042238638227203972262535539291051426654328477762691528167665479396518176096319978890141849619807678862514252323002697672876647078433593303060347621878267377851821374874634733772020830578960292807961151787111538283672089821173831324833115352105920888843642153647917206762212489119882205228365579099662583872503999393305882261073040864932491952036477227298736128677020232067369759989934014854404259521441949908590442894374199820465958632602331210045304101634554079097472434417176257048914438871437680838034345787720333874143605492607907881282816284659195113234972859401887954669779403397948802473228892914572364156256821254501501480714856343299034172586762985649213062264675282499914648618557281180663722495304196464631627357443828445785143227550866630086010168040628906519195747481610087434540480818259073955489278150276020276068232583352971458488301850480119200076623999461953159467488921776158961314150845759408175361852583058648510041924015360456572265143552050891352026466869756891938604734860634096957025872755681582318170922805357383788158677677129963367248768573642751226108091788443929860490181589654387679499334817690349656543640749541949926730601403712713620075170046380415889699013360472789335085352327434960658717467978458616786872080028466732836485710912648028556621444218539720136970424149766375028737019525250410266291059380801958828149591524081037440073766931582394097975227216163416429454631282116826423856264162066414069429739418880744440736027559715396954360407588933228425662466790608755496122101238328871895389295916201101183519486229203041444534645420175771738874257326289412361493449417417572369906938303551738293705006366026291350307262030902530979409205269382350305774011706080815918506052177551747490385522156001572437926733456002367166420405115455635601767566341195687274817274015577255948289969775482223649481534264101164102287353262722676143311711449526273752909421829153567516338933494065597258752906620354199808764555806312502473540843264835893373494454639391312376129851027784093543540961680994567018013959332819813478071794992309494203348704969534893703354810345676402989314163409798397224421686537372087995550443759020220505919140259551789518764012752667828943550359139193265335717292718758337273080182028291238333679042323090038846529717242935535863930759606423767582058878386036496868875073280259171561948153872577955366332480778357860693526230981205673911637003942253360527600691938052958566292467494162522591478972731981294634639363521067183020070859796328456391988553242241529238931012885953986396470735165206330104914110246155763911980702179288107363515965894154405329414108076729631839196367672034117246578355782558649937655548852076074982927300175828219933531030952535988806790218418148880829320381710721804469887486057430023757521232997779817450369198048361432417252654187006093808603490705501572281406917725079097513190867940380271493313916921244242769788653237574029565746864916755171815198956832591008490654247047389788342645004104293168242792926380929297484232156376655999501501681295781822318985879704141109187388475023009387660723078174373214034695344465939252921786858298205349701413969768108652524941112094325295005297785470385598984730565404755552403438251389773717037213580581552291196674724498709026873732417133869482002157228548764102772868579357552746050907915318913021650298190976257160026280325423532215357824346390631776302791152971272234346891766809776955675269963561875691316159201819310264562642817531516111017794875585504969662159767815284370022144286007341942176106532480484816535059268713998597959130561789151303127778576981097310670771490565734407437835512498538440783443818135392847846642069209804940607266098163045033352443850466028703177740451709888590719349412590343697317887518034312173100171020955221780289208601163686436753730333195399711848729563573383840828742736201255003401816137365149037410364588970200511225107517034280613123435207267078877796543222038529499691461782320579898205577790290486228464042496065444947279698311781285422498111603124626455680172690417879353708501605651452219206354953743129798619480002071757465620890299387569085852886973780071681087208735496661956233753389386749874103136331650050419112779070976952902629261058430590056466196102498298366493957439983923387436798094785292769342216642837271282115144132443014220848709081225709239010425939042055917651948904871003605087790240775712331721772762043865285077407547860915533520781107374157420560144980808361457573505713833799660877621650469423128800221564405180529036860013294501859437885597395755520080073504860410023341312996114374678179293912028961004205763653567984109888677765558516296170213404806379849620211330000801152304039734049822215711549176120476506606454808871904690805545214045726666808022535511098919571200580318558655990940393888903354910420429293809499453683047625939033882395239512381778718122387684068786737701899706963248047604100458959232872541401028944573615682267633107676030813579461296773743538770044340946590685737524007328564824031825134520574693178258717303916589248414814680979441172357881822618454360876513301933536692167288571550561115986743539892432012591877111975426756921741596125602722025653043349107602590290817644870495391163042959371031666677167116616160240031334235095317481394984805359875483581040224303538834975530329837590650888898548167008299436647466802523494114887495492282866151759008483907437181767319698677197603327194521783294885987061377469571936529057155289486130297846355571906409573447463394510899638967696235054667933087035855355727770066296706200232211406730522491988691078069632461455843256482277431720426381297350489261925113535234653628494178585479821058911793996739960784902639169358935860316518688914472586700226294221771656880473384846263235471896177747816098424283958735116325357749115074681032609162261022755166200024484710974114707949647313385652714982851274259898558712405817653041899208348965696311873634391829895710571702164569718954502504506993052783813573298989280527298012991547023583639814093826187674849817438494385730862164222494939912892607968687304878885183749106158683674145061871254047582928361443798042015571109089759633966554261744460200883895607851276965770421580952596436779162680835208336646135369365228161283427324708568841557898131875094654028359262359908490877721554963835237021923927621704421653483936599379894439586686799521166837245028367591390456828207972736354051607531593461642886104776652768645007818167445086103911458513069843668115915845069763759203623129485080022776506900577577165999018333634320703452003104978597913304270330602454983540392256929565122272127761551426419004159353283721959970678396432727715424739417957875279678108660963545973959798871242493633560190491679753780378630102533157862106929616882329970101969534603111661945184182052102820252006435973927641405981771308651342275440198431559023884245551620800808488498583657562563886676859945913266430529836057295602429812277668426625145996322804801351428528717176869084192411830846043668126395523189586082639946008775717015401739171746099943377266085502176510284861116003096916389357291982358751639083137083381733199125903256662736383012476427196734564998909778422332651990779801084541315488328957317498415639313833971004432382518383468660890667467115547711172415951290653542302379181747269102348434642636023080864808333518611003677614406693376353513474888473608354050813084317539605930454391630490467925778577242099772811248323736397127300741139507337989644489506466461519061844073303439226016292472965389989887823699208895488163078435967031455774622350348998278679135634511598409422608218219943789464207762844455363599705641925075144752394832927246876131452309296236126487378928327262001326201710265304826291706333667626369714800110753284558505085027270679922232652676738568515216514042150629243426197484044516520457636258669605476710871819816800904760401865885829032567622558534985003435135005728419002928681879135796668605173286143465654545882113121930245731915446619863476299236629756062747191269334590889685912404153517547067226841600375369179319889603016428853932051135251101186953848136111894326249579466965395122306940811225630158899986325335321345206706537681108442881014707433703681086685253190126757443437731157822921038017362298908914082994202822623323089172361129473618311136912744062544455777101101775508381567236627990920115099488757990542415394576564250498023151388906154362783148817705277596049421644738677502784255193599424200981868472136335485593108985530015089794725384264708453703304295299894972753111503961362560525753806313414211732403839106232033600838128646024882920643970745410021325881743762045575341401904476333459044918746910586312768435926671066642431463143550131946262490947264271440666223646055436309997027116797760319754066712060874657621659237766672594317682861082757309523630473928942690769950061228188860268271379969223931775638925217899437574517926174842831491578863067596250532580827467424040707790184299390686176831833270632210082087636657804477195032690991151657191330873674472225092772881458813793384212769106283539951399949454647202158089579687961812903100339948631367479583091119506349070818485751779383977155665046863821616722431935694908199571501334957556298476197234676459462699092924656229740727069637692741240579601037663266794387260637201484041832479431867049644078790172521285169062434041346313626167095630489851530825674783664234041497676132547539473930363670895298387378196416656258380135083351972749395820445067541037996734656174424256316347837279337833141281832446818506233838938717347486098254647780178916768733420712959803980560528183335386903566927817963135620479515920613082924741300319816590447538531071916367636797072321185544812435409485371909357107924314511161502676463323727511914449015854266975571586409316892686436776181768251048681275296845746873975916810878079289268375772466322417702369109197508713545812985176072003693985727518875623272078971555331538613921988934346921198696144866662936884784129563279898863078356105174674825932211207325847883980637574906853033181299663413685436449354184243107787144810271553120752187856259125359758192633060918148386702088318835299839217410572361911625405283319416692558391652229284648592334574619245361061823823296349032779546489268784229944601624022317561091740320687164970332340353705088846927749986346830047415669054885780184499250074745955678023027551702802725061298911691180833930379704318825874001217163091699222921946666562754756757602297709082199105673631401244987316124309817616099645163308956616868256790659917162476185809629063982924483817600947829536734756756857068465666663501243158786655191134649846868351254632016203532084511524170905714984048950783890487880580876375828140293870094259300627386799639651412399016399542299231757344709354360332976370773076175727593417688216456654540215195500900050153656097329565800011293565029546645562902448353621209203113006797734371880601598689255460087272066197573513262589041793612600116357856584047151735936608772297738697403160101639167420084471183098827155428741593392484746719402287018973968389092846613805626155082890691252813105404514183998547043064890659652136335776877214715923247574537401290102802712954006874337792131451137564947168834489429461740421062936820114605410078680970355403327834151553970150193173384635521372028897178402142102399272883732983206316364127876492670164477290959217407881666828451050327699827937674461412290359339454260989790132793177951107310459071468028314165210073823321620795990401881590528021686916664831516332617802244344335659736267020026072105349899703909495923085280759958567976647150135251942210156164854099720834670113119273599428019501247084653791455881548212097859614826658835174702019683457354386352006140172653517973833679083915106994788694862406604455105865291911689944586644946635119324734649240408228926308994544914821029116081288434257524313157469526687926846170720489420384004997504196345338214798934422286409741550377872780336796172312001371617715233043738392508799314851312016078143166020661134604262807448389299232633255609469468974023587680013390779998390740020282113793042612378714091896456390720024657171547760922230504004329828336693208883344990813948242281288753225950787529188598182703506457578867404468849153693852655800256217248265510485444687668284256574423148320829621217237384786003309930792145330400588251120384056994210090228544726594323191222611837740969990376930869057145550827057956702006886717388181494763714265731596211830554601533586648693645203782028994359404944755101274160134280911553000784873022234244594978201560655316886196287476707544086675854204127218402933934144399690703696005208645850783933984865982497332394492179749049745518447907947892571076804836116524293096143053190647344024255265397719855806985194085442226785916027893755731028265551262501340730384874179828321504297266221781925124970489753558402369444557253729361733184863529876360646379874530022674139280964445884769547611175787038867179923086014920787939202584430374654383737639254314272055529942027374844534422285632668607329913290218553675541844046379847105945788244340616683183459461242158044106352197364597186843042692070623089417999524039555151735747183428888326500752333204675828182057941500619850363976415390498712881571474828946957180437699750848010657813157817981098083993200309026268009310208579442225191752674110218133356161324644656112621531880945048044355317084093856554566225031720753424791539658287093194734064418467271569099848221835067745964320817430250483485100733701304473652657921914368344309071847982793305134488674868638739531547065685737589865897238695414338098471652109410669297163706144804403106865136315993639469983389995228045866239502094769265145841751443368688925634302162664312176135574220769524629762690839688338050744425635415990119495221698987443736482947050115116891615319713236996472104757847432922388458736819115630801376525509849840836548134251362092778662333159958095249886424913917201662509756293007754239688960061158533859997901328598273108895223802549937426295918912256876345325757415553803307228241821017013300485682154576479440565858254043301901474150243403588895630154541077149375015297230813814982637696770894807052361935373257713619008293454864008135165510184496338843146692505499744272051539582656368815560972573289131654633458007215761048327595772287292395325261712825493390165977293859439672380866085655797834388481956813884137458726421486720814006998669004212920663465851259736371313103303745071985742826299861236783157766532819614852097494969296953650701756332938437185691886788232900219099482631911104051214107294218266009118891819633616021344432661444502328878141973125627939862045210255951920035842396389540139332383057408141908371496777990721583087943268650569582654174212657511030525612693058223085147419736619183398021940071842440500007611621009130380864142527122339887424679258685135028470450234163912823109221480936449468676323819081489451743344637065656975109205957313963048269176754363913402545865742048314250889784350225076510243927342770408460810830487268433044310375374325640832440320073363677675439960453652407440447800815190468627684250322193888820087954022632262892163429153194800791037406393666327869094499710349351389091071585230374525443071951559589005251811558738941992836192394096052766822269072097977579585922171515118834897790543908704152424921220932503979599621407250207560449359958494591646411616893891315999869402889513616453646237778325526027951663287035871310322114096099609270445615963468777009144758383779242033465859962140578904145761698447725482483397986652190490441230110476833594545172556964711027207623694808330591255215628837021309997304390693990533971125109035214605064682036898917405491256015719201219190796707265643410709932581887263652301629131933482987480887588399332033733079442993609531825744709702050099297485840971220357226891925293096374725577952490596096279410054849436691687781390655857790319479491224511854257986649139070373141786718608212328312691746000305051608115918433072482328176552426348761757192619830823085804254361593971127520357681395238441680136268162562994947836513217609044789394113670592552757761332438835466386800663376081199229860324949734481908373647358549040778602012314371328239100848101211115893222448339475192248372169967659785631481514276839459050633067559945905945598362298129577469498752692040699931001010138911338966397212597627121773255037965255021068204483394620810199522845856238777297757142633235214471205084714381235843784198523439312308078715895443080304299582072312693039452493372345396057699196041350895814021222275379940159011332105419956690398751954950289486302911820492466867059084597557952222753145161603536812490818071353971374218146885697065038708448368130944273004238369817723977188844343089697238086065875994966563339872665841437916370709226106937296539068607831862059390617140855743220068350966091826688568982200977289120408813072124779419232571108271499833000864559241804611702964401326465379617170932351405952583614346651376707661522419945804783681914302738402972889774638589293912961247238343165586888622412682323279274110513941825866925262842067634934992296176664553496445746621177829792592838140117218683670579061892565195084678725665637137361888152262523469827627470909934365524759887759067121124474080372914208744601802832127160455941857476176955229503331334979153915089138600007265733614534326048602154545875709705778858189661228074654752446360948012802603089669814257594737072798927608923818710345401076945334865365401803944658663820049936721058419128005334739053786632800182899049598022353635420075082144216771145973992522008932814968406287473663986761086220380780108026318073259244246817415572995449109814142300411872365404646266613003370159612133630444169416267474907079029890934969485819517684286220794107323746859130822919447914247809080083909043775506248781241288268674338768065191509100179881003709306726230888563941461265979562794549458434609875059651820723208911069676442344990900597465474049629870977758374601458637570390314504847365497985274560059864846730314546614119150675529056850536211437499674127271478307297051415240352193732510385415687365710812392191332435573708717142066700770310049589952202886113784012540743346199769215518044534951073843559559968494853799767311503202654659117327723588781760837720367968255188911721953223021227652089799174200146718244662111350073736933877432063282585709268826458065570758119836331069496751678538585272677870102510849337286320299873554968457974301077460263177734496009487602520239609844904125509103587350908375879443961171215489552647682710008216238788289535186401266551320342002916159448616254297778006629531477418942415780248118705380620807411256822201960936893783173122665034427336489245841016181585357875428912887779361713010148438762657867844859899444635503617514178056301071815894564883012905044305805916107367577773573395816200028305686552339329636976062911264874096017009323168072002446042732183655679934142296202750108904695356504242616346326827544962496702527365005737383632184440444840171275346867190524872835322107920683027807326728781159391278982868819353217784084402499299396622046539912218487492886714415078841914558268877505744673759800794141099356471764910288891567732516816122977194549056378494825472266494814482726762264771936930120871540077139016734561611929519788498838343304253114891222297868960095852372445158399796313051514418297315071047668275785265299098894895643144614518841437184051010351391876502390307598842602023115180464762360850027961786182306077048480042342539558741848164382152388969100528090722904229435954942016796371085449559052767492618306148420368350262054565194549312729363957564696611012979626791618279868521767866886690152131336092172656278270450162249160201853673180387468274468380522798178267734970368824601482569047934728534136221465510670747295036805599893461958080228358680477405990806357359556959134719454727563699987937300867187288075026430880436921491633778298858903401156459742627473997933899513610041128484471061126693400229480333667348089504350229803926857521992994944238954158108356161571499656582025327771286759691867969087321554175394851478852914168640582523989901426936211109138922016172384841397879674470370612487546779834661904428434019364455365855082105924256315524645679028350657447551791591010355972271432177784033080545274495326646227646625368099488404067801472336650979688535319510086749634615066487963453107869401995752700985610706841481779782635538330697151555124836186094654554385455616178304077482975961723097362994369385768036236465030954921469183394677198608399274661323910310817174556429681862343333425618677905896127376924620414661363810921737959678719649898169075947253521200094913882561930042952127465280831613341307832202943570053177372158566727745580280341637292367820096006623159112310553781129831483981430541506405351753245794677999845543595814119298193614204731115238799166461691785641397142981646461153980976130158074186381164937410495432695994082644911342751215784046686074901542604297864490494165281081169758231858618519315010011137534919251267014897639667059637361121796634232877832987980300290127272946426706627826502065499917576131098515560894480764637978412525317304725430502455678134206770922623065926259513002598838818784917916440899638800167033297696595292616320076731635105016457416393607761918813302029425671685349453430856132592119678596536759738688862367983772988505006474004317385161682573859790152283150344939830391341042165340147168926123939674738529534000428252663307034266877047491670393342713748635797855488054789675960464662906296717324340282061905537182289207395855482517290190432523726457969184559958990370676306489494401476145666141792082022180807319253118511514001045934107531951404422768200308203605059880086171966793280643302418306973349446371785675329908066664102351202105880481895598869000298233406632799570772179471672446848695578457879996281435582780474680109078720307511824938781059738678618720203121361591139700989732708969328244698243597326092750221200794107842515754615120772950403605116842788110817105394779319449075204544996103805566415027257645575059604541587830722612472169689485216909181384214400630162542119730405345450681557316647394094314913867961377333067470565587049042147440587866135053574143136945362730440102539610174745650660898968131880420549872506993574270777150809169003548833626669558327655598509289895346227735546130827584529793260945312141458212842600644580789748492988177566161582819206435007377048744156118524326282041536983682783628169122899406871550312953516876315410665308366040192285717727494073090313173745535298229862879481774636622063160414866015673556796361553593034112457552177399237194641365083402711119027509553627878982119756899880672855044329368149931772363215118412341824723703755163437992704669141846949864771759850624121195147609420920631250889093646931481914824475145367365330671839760638251112761469659807938608033407477552289665798202599512973381736842604466656176912897595712278007198947801884707513860043018757199507767919977899487552915704210154247021408448434407789997775488100670008494915497602478925111205080364814131248547279337069123712100779529282551269302208506010972642599908651298392114166096438042797975334682698634556128878701501749691952214289247298057740403957106605266862140284699875158639452132089800587861435092380165497996963564068729544929872969086173357972164252086906934818364636349549197608508380466381490062546305937730936021803969276638899071943781648340480741897783294050866258870834842116620797565791228315733892466605807018745688443473340708646803961395184289806142982071186017546597938524953072601238843185445780807426902600906699425041129653332040632270424524167999999201058439787198102162222246991926873545078569960988015598952561922682273640498438327315684522550293235638396746455338573555795564031120175229397718923853178831684967267962843745743716639596693713093242334456237322534744064417773100795688079914400915968341588500267134668718994192280335480486008550913338844093995005008919665408521945691680865498337864930479369159605666812812867619873692713280342993629723287719068009438216944433239403214697431588736926220039934397734989901294400162322691006914119627927030589283976986931157747850731200750207267642833864398441826610307590257028596668421520445220760072695281926913291776549228227440399970603770643671284600995617931886778603241516544295259736089696079248512156642456033364083622904709059368295322166242821391000589221932037402999205890077956366026625633463173910922663895726561860169574235591532951596116894800714211148811172291080004271239415128893228308618146421346896374911667784897823651571477696029455063488444170357241393545111362094223058657424874226970299749513719137956619941914877132128591583604495489102575447264848236361708623688082924715218624783980302148125661195572738766313576929499059954122091964211405196963962700107659411671172136657683259979104383499053601244316066913870550577416310408663863163788129131615199025466289653092262381780941304583350988439989518681149214079217496303110900380123784323447115932088913372132691306784992060819099107554779709603182890220542639927312026741864015194084682582154409026141085056857458608733246204771141550311406818002787962730185941696959756552476014178844165858971992351411373578256422546048785628597210482366061587855961421191835169770171424657355066365136913470495797247669104655729425750200830620954701917433729261375308587115285830526531079489179012263990061209260954978869688597081108204977798743822867593303464311154747712496610616226530461154275039161940384393383739794560003758472609426662081059404896942056011528722774165850308643011935254594339858494715834627203518526001524211377154287523846143710193946139175649517574820738153495287063354146938987549352032030754595686296298576948524316658994798137028035402723256255030233322215089659681039490651286001015591195434990562032898677001047617470024734295158507603527317570277550098021828603070672656333582251988565201392666402162024817645895571852898086895946627114111124192642722229757264884352931032370267050797795696634152396026058445114594586556771469932637880142227842960592630280359817414551394547659155198995050487890731922906534176093910284023711204518401425780760682160735263711535054773044880488576444577415760255217494821025134440643502892761226843068171316010075174168376843918942544756794532139534761465480477545389951996288374050602656773712807320077085501444425592552091150199659874207617216629227572050341617869633668686235501660778737468324586535520344622464015884507520363073403520907632889961847147698445206475238115168811190209585806493087417081151917755360642967061622770470143641255534276195335977100094091795268918804377679424269253052830263946865733798574579758784799859132937959734288462793139725115715996250809209548537695526215719407558852982210489727070841580042554546232439608246447121699354615441954754611236914947147183537357455954060741719054841492170666900721090093153365682086339784221834566491175194481217760561014605785287525579547535271675006069625567569655253448096586575617860672528004187579074657560575077569253162911987453386324621717184584181210455217383241521686201083207882949338247107798356355206190216552907362774304414131439258140387276574359038956673237051638490414589452161382288568371741804838315056482674916873115297957543133914202026148112072016356359142675891512060564166453038757186829376325062858535313669838053036263552376005309609048851886476937616588341203521446435201848849442032658203758746225109808999015514904645198121263587608220598012974015182132482277679536701153895708560174385659283175820165219791388418670033737259233066439456055593822210769847080420278429777093640686214250549942524019397856639602905891973136582490155171030928787889638622677115040843274739467460985366174730259187767703530675814510506723625851513772570275861933243034241894232652040382257043353562305906107728683659092203288012466693126338157600089807236860725320844735157108857428723544791302190799701368658787204677164368769777066793950741603268657108689984380960394074837786065928033939491422597546695575887049562107302043005562680522533178791597791758927523722123859914439295590196731788425375315238151111791638925500684626139049798472342631439180355136884282918680142539124648468085702885099914307181784295859119418403615241267169988052303530734392492692168884354262431525956001838478494983289570202909115263629734789783591710300777087280374408389101247423524911114665585983675036521223772680560780242206151230649501274745660499042469782515171183583987830184483035801155253410112580000885479247223659202505077108132383072786666734467544873984421885792615253432868938771952491509623424400030056345270701872332184983250933530530998340907523265329286444310989311467485296221038342158678917905450520023778914888212184135718982249232448443252491954497428867065745496246820980483792227866564917520971580302113948101556968107926585239066437960395426363955783407739331630964611686368057590686615632942625130661293479892346379653085685716829962712163375945502015135503304537647003915431696277374223421734399808413301541899150127968014409868044666759758078166945930687889804206972390053914243172825389846909654528149764509429564011168620772173910975289207806897676823744414299628299856429154686345700809066468374762021234688195985374850500814844628925015221979397590808637232229370690218426767093809346557537507285842069160892579130889147775725077884840439385020222707960912761133683411704138321775343242347582727402688665788078876400190132326596926252792258515927325936616453338891805502878098779558034488916726400120683178695726793633572753653055665943619708270592923061981733956065722714724117369475566697511215994542856194428681829299143993150552658876601369353309070003243181778426723258427481920980939063805819247336263682113882190499446399749826922653771989708432320947812068225920171957849795654722651753161626259018717670331480085694100317199410157068793053445797553366551617061548730071457744456937002022361209929447606378582620246642810965284488312073099001113135231727897920266961468922384294537846838530301564833964711937443584778312901595562977795643348506546332065687592133256166997840726490387312537246286218137141930105634397999680295803465567175547027732840533860079566406828372900633399273600503833199569859290721761823049476423882780041167970457833658603672185155659889523583047701551929192372837821427014215472646240404834622355246617791481176069183853982301058071899227269561029860092440505778111999033312310360412571441368665947955154683742799564166657150489331224960094923775606568489210678157979382562584219740485304671936607968608019206757539040371347226118822361311353810362129439696396728520968911911486229779371413784083859335776565059164447494943794822008012209530242371777959961941307333320578199948564009055925106745160657040517895482848330321938136124870766091953075184049685882226811713250550605590160020386461455768973775046158379999151700176220377189418748190032906742963608657734975304809754286902953110856175008187851405027839457695567106855669747936258295476625179343687928637221577743792815837330544433565764662706913669781574208696292534568525190610540671086214059154724073560866874474282420970586394461189843511151889784273981508697321935103597295239792912770407602814054406374919525664963984019058976017908550813837821538301285200041094959445382261864759179022499656828936075171113073202829905044380807631618694390887289882693298818875713725755271715810658252203223651902018712520573914408892412249322148131938072198312792158204557869476743660439914881823150935224175460034387632959698811606129343310759711889955278634473526244055553099039958793834397741310705137460003958810442819849925756267608753702081507958423767082838294681917581660388242849390518919980073399751429224337473049301632376452890955775615808665471367864650083730226508654281022372351847179999841981694445405603814326312166510793880276763669577096100128167608262867953627327491461831739896751582929642126787243062704134767913330368665906435189309343056701773706577058686992104500540419714125514075349678233137296451247649417422458334491597390511355184573512794219696373657853186452547830906434121812075342472246625549525093204905441120611406567069373717513869345176673583614502202119261254062316580579343281239291523641226207731058268729820137004790559200655513007657114572114472724122100261081604451518908266773443177762689682417461022529333202926581181291668672309087183080374962584064310486268643394810878861718705840269422140613086995908600791554785954627971626383201849116721398002134635716306375136501341131772381663405521983150302288770832490946062772126149351677978960680164623992119615523271997018677930839405319296152891419612819644416327721199044379241341226148699616643836427791786917750734037451554398999141595410669898584610949550995080271671505502448827609011138347090148091965192553196540407954274537985869972079544163951461005528925930606505600589208936787125948229396310706937244763284601616929569347599290976513180913263760813789967154782003063878689771914197066522188189494885069945364175366305845049437407408523574177202409026947696522645203159479399120172700790863475152785117231720245578999148441156351932181097114434793984892237707467754795961105954299762489942590359602900477576950202020305773578276627539424199701193844289996725354846831102097437264268188798782768949910948925728936623357364639365475078073225385937246950970640374401785726700257208404996289202885273581557654826551074950379767320704862242213038758112140626270929193344656100701240265619999370856268119759819287254326757103079331203215832341158970977688549622756275894550109503896184161317452202127425774507928500477379934938015590453015160662167960025524595090114025400773369638839090583914897879902155185228792394499534439323069467100826626342398581606044559462370171766687680300903446470720883744588626905471754445865806634687590370174033027748784032467583556680525320487684307406956700017483616919240358547076716241079002791270408559343570455619954119920465407802534067505333551656485790035319374904306254873139548972767479287533115607981184280160768170547824515103405692291915367368291362485122866065105505783268212313129840775215362254529843783637571812588290965622560900274663270129441079213449532646162573656229513175870346979593075186116879246466961253823752038692798294050583209977932398334284445878303164232378229905349260446077691027001226088719681120258896118922454335327558535526208874767821270087176314808044164744786908032071228194967711487747415112739125152542256351893776379134530280250162444071249919781743138265019038311878596472117513119186243297213495329821476403221173567097913833906853863714159905236722150461549885698945974194328129329311743854479481041095124418520331565578383710079662781762289440970273064280688177842245881945086619049722195338398858539676262005228211984503354477273331665984214787910727770171508375569549091803112676179098193963558321655059642494284732270353730565464091275956917558256209772259852434657330207922471069408642011080095573445529575696405569673851778065222763157786563040551724584771013594391126440353825023343139606004750733043595529719951613268601986446105009019398656800719769344432489041030145747571420937411250786299743038788713365454689167886926914701041388078575027804108402003510805503215987273781946185473627355335917443246341035200015779541160964067740987312997423252692542612231776866677350265179623428433172166447927974071706877060386295471980270643471442391332849756750745715920484975127362597832740735113419916068780819954713258976972779089799702535774030330794384615592513416809570650356220037109031316534130067098830283319111440038132661094247321893698201223542202572662616022088313562064489409709715627850650459785613830923768865325578631066306104750925562957137260785890855214235398652946044190119239932198111230724043962938878049352783261673140951492475108400781238779239288482802477578501618304740574717473911372100684153582680018588924069649513476431768726067976129968995591175016104757065762672855234437875172511923178358010430659483763048072460503962406192623488477831395026554663240630627560905023623911435016895510018048303242043151082866746842398282371049257571149912848144122366239746698606820236725896829513538572928536423671573278870989477680936857957204921359253451184630692120430750551198726631438654684115445939663666834764251268040758903048814711556474369510813649363324840525489905706537126854203705614691152828321982274876081665737146359175326917159993070687396882020513815049906716067790840462253778950433151849953931102707722662768877544539152708577319576902617798754504971781865818419214454955542955001103699099414109830521429341878651525832914078940739087079755484436129722080185811298744606453059028734034241596993557574037030479859937238967840838025642870875901021170374570690659781976910170502732307304446269728057597596926743083923787989197925869721872773646913574619131288288960688631554153226057350591524568086218877955800231942998572744342207103955177137045617342126234015145214428103122523983537749085172506578335036798026720582404376402310375833787277538516957454679551159200586183274805851698807685089535098928721794357195448072572099514381227851425797923840750995473520707270000934739278073783981720037649247939145152638701917422323879201636143482201694382931968726991607978635165153914557225333353345020196118963495904612176292088682928084305136296880964206742386146566675540208818625736745909150961150777601851546755260025332356823233853220806548879849031453065790835927084796285546982738404755331102144399519334836996113418715209738799234530665462752229860268848477192541822540680320189328364221309068829875912029887389719286582544136865376886960914855964037110396885671130065024965101431962369729696437022355886972028466412487849541721236322513958332019583789878485954556686236691185893049307609584406611408008946828247905094988738489327390311759868802010423189835446362873652754776570098451118248699677233683798383734335510602977450550195782256426927465013653697445580860688145285541017210827616964259369656235994937786418771323666311003797666973709620516418545818059385322537219043667692988946384916184833147958257388621110293696121438231648995495247792557662854545303063345666769864177999312348488631760224857211722537777113302319549412225900515847744277067573457158787167362042794659761940494134840385628783487807910649347934558069065550581059189130475522701539757563920700292169941604013633165784208734952074718947352916555981172516909973865682823120250798088400756865319478892991281119823177654872053854507572906232762222883208970533669410619673987817344360395623271001496350003269468089920904988448010609129216451508259067341639191592746236852534272783135098970065163227758182514138760013570984510513780807997961668299723543245990092071755672954524031526167657537936078889054103655161000511066435408491194129851381575793687024928709242038505976449622191880501178365568232686027744417156711316387895540924076533772726053948125419817931099705791106594637245517965014836572227933516814554642836637099345108921575355638397247998596358487357204765141738516297145766644453399108569218374637691258754343040254251112455455249634304088335292320699273830089881133522875235306912496093792695431730802527462616065618279605225257518905544428467697463316161011446247816597432042685204997928896096856165725103310927557593146122086166693321335803510169915125749355309373580531774421900971775687927820177186768754117351810558483237390058029588023759093588512644137556261626800748250144050166570146848901595345531228086463117621417624577601721513025591694371690244977967269162953368678520595892290686119675169163169493193855462676147037394455166048853120135676014428831258390877017685171684816675295010612128160696133453946135295455940843755348326392164700230105693466590858667546285118658213900663494070341381448168531487182699181638650844457068073365982310979424587351238773195095309904728905064726948230687942853718129760737044702766744973674209443415091492023537117976398204829351150305977675151271245286142608368287823779645918738000268247933751088233330636157597125408139473464569729825512903173897879344802863207015858438701614908501038936621444911282703351220782695082373182795979989567190697196798012580554547429792196140049189519383669908528479051148312763998834736733153008824387555728749323871701001253465952890899047309348884614065267877779739094351218779119542512909531078597411424261139202712460920740965410594804050403076152447252198581334449408119448177809197055522722411111355945193818712304271509848891826541131068572046053916907931023694504579356147531161559574113525285704032960278496333715229981424780804812788174387043575391156734303331204127077935635527337867338858351831152595438861137308086788031688233062574441722689883914667733824576790549661205477801006736915106954881751567407724683668959280333937492555139406718018153504385906564713916735948627847330783364080517941081111458712409390788686577288265916027457266752652287486942803239041976192369511177366258984014968748477809264119619741760767056859587642036728827621807100013181045359636825508915423494019686770540557421030267100596550299707194310697921982244853200049760236220695110581991737812108887475609514682209452558750602456472113551702220388254448160000900357949595689939213708090114331826379463113512391800235995626169029010063467433117370630409492977167950355375668563558547433383080753177441804201168269771182970455442689951769874051074709551431993379018920780832157008255982437150552173340339889544231059040966072817678037250213198880812719882238170236042666490143566719833353994892521199437726253417111507791721980391416025808306166940251075499234526924240052686026931877497672584384543916451449126111819349496329000690323264653597128921737870901885486398862506272705376669501042326433034126338552088608473889485778620191336074062987954064717055485915579069499555213172939629880141240630668253438981113092877501518600615587568120700529668070497984703116910780139684722238863291422967513440021696951942094295142256493730092302973043199429658625655719684382826834998547309990382665183342860901350973406994490422924501196142253781404226257016647710149079891694882960017090423938089831093816518191694723808681481385383091514183876393715365107966723832568256517628512926964837468160514830590243693973616217071046636846659672296698417999438401326341192923821691175641565623794929589397672248074853467970866429287249994322772668790736686429467210592770886631100227482521805033908441211038666200573109808497199268212336756102371276801321098899702079463943370488870508111857976351783065993933473338117293077124519166537955146652894554387410116250729005321175907275624062332158692924028518603013631252107693275761958258962412712340946873728909405553107097193767066299614836384178667887337322672329635803658440984988997569894771757875521074690299410117740842837618776051132464165942195784967745408132022264481404066935993709457811785492620499895942359730023786973835982361198913623982698261570942280237870590163092947352755809945927368645278904169404376076896265336733523816508915807059457476553358538154029936742992906047295945618092975697509273565487369912584257893758855713256345965047255519114925551789022019570601556863524852889832643339400798457926125895553299097571180064491247583001688641245090334879150452342020856032711648127258041960172996457570128063030398380092583857763474886189054802295551271436586084759626125440294682359726453539167657064156320231542142381731539302115627939894820641622228591657434268501287264209257873546856056350567525541301072015981019245102647650276017329581022771607303214051175926601279170454061168558736187376611281529479020373464635983438274097910593093067286851739660126248594690199015999212446570314709400446296153333986157229279556738198061284486944776850167683740764525159649214450641667072698437832384149564574843672690731004643058211187048274701968680161663379888424915297452245893437068448820055771936382119831396047562984284966662281223153035711373327805200201425679718862301314272304956554508051900531831330469013776719942605743260765853504652607301255306312987303644866379019234528802697174911013968453916915038994864532212040201693458617344636957554916331291882851331805649478166946212941528510388402704625573691104581908903905381837575709991090543982915137706817542369010207643765847583780166507704401908402997530136721819686934385926351143956231037986744994400088190131467161628638160094472406732474706918026100019199362567353867573502222960961831464798794534439168861911249344735824283454645782947631591260574313630700438764070771398244632469633317642212201660675175252363032832419496980619437899421374142200274445703620371581981716849547283961896201104513821023655939505031958373234743844822454575911418981157847443666247946851406865058052130262773706825088133810791763028444424748139570495337645345282825490259658303434037397041066632373844530932646113371652364038263746511040110124623391071052972639870246860816960943489391761917020389420779030793024016927465295819801046224725567259918324714587154681504757622327966855424189070038441553038875263381232522989452363638489106596550148225288382002634256922387693669273477738123296837324978350814348533031636761255037443907380020059658665810190389112277387700546855248036889128083061050269894315635545242386569907295437095231350482192471276165621340561564316511945353469067359406452779739649485475717566161413795553582152305056057074422798837708045788984464606393499733223680488172925391162530267451953938709647515132977999433470832570096735195224269976056861993790824028677629845789107433531014239813521885822691701953504728086561782450793410221548410795826337122320733138964199951926450340997070680437492910368420734208103234826815462906299263704519149689304846399472247411140536451723398877156910916045801701871099360490939077484553561522191604216244658936135493431173686359649382031807185494383271066743201122613381114079676906624249669175163534805450218875480375215753369777182036196707851926297503830793049981939783111087346110480621073464294876769327636492616431643271485730419745283185522776672125080659278853864320049452792917805657106842655002226042876196920200827911106394458429287435641925991771716243375150327939396479362892597316783489646941754667362955438366614146554040769658866044602351359818408919941710381735737124696827964490971141636182799653737021628018106507488441195897923392767232790632247303355918366167410394652773553216038341169157171181164323277476098914455621786526740187468347762482485908450760334349739295819716308307051090352621203805457154875516678718190265428408295202605056219955872469089515897877451196725571476367411175126058536372381462378613323208310598100267467044630528263558230809926483330589383631632794009348925180547842559237074548195201520147819508943996202420843184293730292498466544162926820657972647262718650874400712006001785440858221344505746993415340802231583926872632902224303307902927825025475224521854361371632856903067055583269165026151921546315208301576774509251797941419861611171923974118878890770083682912272828529958639782127096998524321733637104314073925119408994675734885998459140195817014548296129665070111425645700703574133090275131065866236226729474882850104991164385722361611944818078327439948506594292415928439461190802647429356240249172133160238886002053642538417482809729344836785893911119206267941927931495582214314407988200078326760478688547318852288353662402638892913131838835803083846990893904210639023005818994051354044372235687838175448697295069311605540539665845720934604256251115592465990994397918517200701896158161183137949987815008542473309714241918141442405595603168563153392571237842763381114417244648210546711680668556709001269671776006661366482807244281560409152257570061975106061300701427672979244948693502352608237130152076776332751069908861248156916163922805889790855619056139004885764903194051059462387538021260573178786326339394503316467726475599731886702211258542563129787275346065723694339534845994594220755154974705297753099248598255344316331533923886139086733689086220562271003189182920785182268569020764340971032527096641856915471432399385920922590012450504961204451487734285200428658971544132851430658806676370956882031167781426961974504157797359850443977858963966970594481167794096120000352217208392394204845429096181928260519643582205783119758937352414470065975963796573038409216663316030744279011473990776978006426279490224707294386116310547558202685553439156021713094429337277909453926479502489761294576800018530879886890301185883824761411274768707968625990614438971660778167571750794444424862475273013104495527697112243236104419871269603781236644104406235123057811874874137756475988592287694524049336212024645099026605045894374371264093642169166181173672225685991038955114116381154868162417082754369653031295397592523486773054933642591543473742855677585984231697073584380611447579849908497340075036285991134140234544293534428060935312051489959285744818429809801410091387131308926689200754145115378075796389248907186060067379079706032562410264543767503054905786747354994597162892014759486592678766483070809663030950382317550863287516942284825080946953305643815982777260409204279223451700009108528328523706227614428679442769597008028242724620433781133600342108844138676465444878535643075495821743532582750476750889857519327009967428610502512674069519528675275671395722936673436225068438141098500594395139967491784819036954040036093674165703674048675345684099951799624977842666458673023092937424767269010515776989074663204384658357964768295746154289822464995255196260403136159713648388694772398017324871195237254973328776177964373575779475053988509406728735530744280995036709767953690959487225711932064519039142600999850668198988885143726367529396106231927716705074049480284425683574723439095078311455984629204755374739207069143158201381438273185624709115453254956750041874073468165103346395435733772407952254484605606046057190757339645158478668998477705710315620489777847196732773537157747392326318405473336340855883959972346576019760093971720647549232168354709863587137272905799778571221889805355303823925111655131297916126074341690373398101470750338846221950776779620861915055589151042364151525695444019171544324389287312293739285054314492699143480519649510448375425934563039693849354193620712754090490076107009247479358222699863371131180304361611897308055281176210949919994837180117735961345840383902636297117521167426338448427876003925459353440124397632550319415860693675256672574640501386265743894007976460965990903263991519784243859275893454537208874541907628927695268948906389832353659761305515789490129066137810340602182815639648646210259648958299613779406841432843137824371082710654782068698108238163932726085713489440029608465107602180990222530409880628456622177186217363503801153404249792718861338901078883175885979387533310948941624826651811382822322206776599833947791426204823780322737349340184872295726660146629722358388070720304041936911374774858032647186522579980687439827411799095336254145243001529991248915916446359683180503406830977777854716086103287662298935665570222836352649934067971425978719952011166995875308758192546517538825676105353021822728875631199224759632101728912477638673365495407050208571709739202992516504231794601459477510820937234660601180564719917257086868156673031559292481167711643232072016457181715058680993586662528897870227879633381994201415013519960804571198239079417367805900323829524735783716618122175373875127155446864045130023986930336186729549277601247131182472768003641231007682998799370408387811125702289542902822633697887371036255768201879353408373293420664384783143175404676630560167004699731457776086353131898289498739388915019571841586927437524562409638694132014588670768935681309493269982057040814932412717714844842815318663650776157682001894824254898249104935949352081655260301988230763130154069253748210706661263847775104203768679190335739115204093605634653877450430009656367604568415270524386584088492832035296443131834970807725815672466357520280283967002671135120042315451462641202535775343485457769833124834796710474158453989740081835919114596017616254522387602305787089294577201227290448075466260783789467984279895548068089847733263650425251172904668765947646016169163955389959695251290911934972052524316074100648360163786161011351664174013414770824929659528075970920954235148963084668615357000290237613923155663461993399370924985269350751683721286323350574908560992223059495422761091966201808974287821109710250758527201623534604095056268356598419245191575163347908805808470253475581092705388049853968142672892831846145724745787934342656525687494466519450473674005213030791139074858878394942166122484199209761681202436445544003786585622569672652700963252394801693147150624410589718819480568953996886195900698347324637775151692658551195670881607863528168920982900765894345778848200324869724292392151394224687536114096298419545485133555007924189072744608681095426003329809090404281601518214196918391900775752768680458317069832150488845058733735459480387989013836710024437158959679221882272882474469541414984517414451231475495601977001620080536300966581224172777646918379459323779629780796815197340446448318039497173802796635442202992640194481425231066274217217693282776632900246161772889322528987212922124017657024639633684235766247193829647384808540176063770368213843400129435568758391702696391061774435206942892464602888289598292048518312063274353517700160305884806046389261705751846740518322260148076069510844565517370176030552255028733694849612506553074532358413602294673558620641879417856561488760218150396444002162187582806281337736692434985234671288678667067240643910366786635132109952891971486851882553056855748496432967128925314058224845504953662426797947415808820788637478133519968220623243830302872815929953771803390083734569987475082105538606864407385240934170661651864611515718042883438155013044333303800608844244660677527072076503168290193803968682396602909393045491858404835181158414570511437388107884097168330057094449849590647335488074807984254543624933066210955937960214673740368633481106805771059059342269297824150676861142614728422924747153778127709092775133226755061518749337102365395504952727885675798200867273984812370533978394095784005146619670007995270108625731940049502168676049197526594785032754633632918236598164746157218551214106971746073184930260194705057389244902863772093715804115077925817470356909909326412232809078645399317498212818190350197234876107580212260965199731316676869324493117041663440951491090186252558310081216338785609358846149924642256243109555138668452260730032912865512606476021720161953699925262456838975523220478452849981731110424320382481198833708350002602182923127417410062423134505706254725817769356756304897281262192492259871225981460841876737755797384403112626218667635068014010179160559376770002346321097799028916072169125992021394577743318164102611181053972472010397506270998305307008019730993891152729209146328073273561676085578106988847943695371110001011790489493444276084904278770121836930375089893099812896492971587604124290582692183140138104510979949455326489646869289275436818044054637175389431313453073690786789849440045396817512486138510530016833743899423685974425013215947285955473977300084613704784235876087606016692844020573348177646676542306556158838262060929086725472169074094445586513371678304191819172966870773497168955372246866435471575301749987003244187053843332394852939905762162054669892692402092616747581041170783747623608033039987286424660694034689516062810401333732731630583178279638810323806454558320420759456947907693290532762239617956005534499569310130298751751135210447649573800054745829134509888853362374977617129206796591004255405581160102399689254466820426001669408437430507000041723244925626393229836334038561557847314725475289366085080753694466566731621693605197027683097118813745751859699756843770376485936700071817682467953451411536278042617425154059395684544608677740778530398110702053370167963813612142605431059878980651898227854910189798049648807211684577217571917808599933397968643076145246549209614997268218594873358027057442403000953645933959548844498332981698856129897008429702507991299394972400602387855749427683913016548789603371800456049143820736821188398191294121865752709438773429717685042601467132588644563383708625252263641913680960250145080930999390171132768836012561672088438386454863281795928301374770404896262084634734407022323203110077949553271849025707616822320468434833704546383837729927307222366937950189616472183032488039376297588992404807517992593073015067578148678582924836223288270149695610207534154405308568568263321282626976062638036033828842082348360469863688259278244866687410349527270752943764879394729028899289210455978115104177662807578192440847228628072304804797142817769503125128674006841717049439245325320293704291711306867109549196342151691299881562244689227073332102461889879377461356063026383047492372873778399918691779622291334511714008208809317668053885588096930775561397271380473664994920774073425617344967193797111303086106282775344866838152189744068535334936392209517334485611192952598506843435485021443316399136322461589963545868331565913775998711724244765781374933027305188715044833261667606446357864287734711586458832960529828925377038102642209598513830885539372032695842309928754865355251435555417484619810826585335412971639304685430717879864505005285792550420492837506153505626124093958260116393960451137556203438761547738744154590017741851176847546046360547623161929447785780554065954780203181985763364762465541205017460393102151804591306418702834508151160210314610427443493938193548624941052921984686854361112840256934269186797030653150062393111531221906507474296431752559488438700268267636142353792640929044300764047656871767418171179499140194538628025921835422087040222009123317533003062905611900767940760841444437878441432381407763401023932554316202232278301705507491972083467086507271919299759672558278556156996598681488769571343079915220251857354706403205391596819156562163316232282964549015318575053935958897692420545882966069225586316467650648512740474823020578460174175685894235848756670211356180495327592447780383482895665429438005106811165226144764474342767429171495731889771871928300740205502603304836938348735875278350777520486138570618384665786263284348429274357252946359080572501645107589613119446142092399370857237180203919554270511909604096137638554725811523672714022794893963240085453668117513597455431181248721464510387986062085420757320309703889940288406662729429540948430968383255211411876087274990919171270678461024143685669816259274667933347076024797307326503264424988110078712317322165936561882090758758271949626374624574175919156910994313068118758745707962583395813056880848099050154732078537144479136623442720123437688050211084032437907736439620071394500781986582319432936162333420276800850066646673620146905320724254951533141154042264952689892869209086770430753345679726124525046792012342531245955123163783965690833290782686834866993999767526058168280297667954610878139045283900657719829861589639880816493310785056588325015663877556387984728808569604942436008666402514415299814195212487200665535551721828340524504266025311368348768160849493006385726796270654546270110493047361014499056096739093942244219569562580249973432864207453921335155751829773380097811273410290944245579015654504969878592935295195826892943197855582058892984468479115925414765065580428541304835743662295829481531253649967264888743758463348905564904263811833943325086498711098864459732156198096837886330685609128634515305205160907708043614911895257579643301540416693529086512272873584698509934279339718895533741942947638209234678970676623482894844053792099071853082831881717715793615906694445665259345602653986328220578293162337450893107759960298971985802046163422115784466661769070383482189541759995562174813493265538345883874251711870217447253868959101144708501331176553817967295871088059014709429119134390260436082363906295884412656281084724957102006376494947800871742660185707671496551400812132271607449503304392449811615289778925786215374442910897004333998846332625689919133158042797354295848176504168037028729387887604255477750671618084471050360584596680259497513615120397912551674078385564302009879276971898121019817903232901874432456777296675313971981201826470705987671659525393397135966153389927341407916130860347670381639542309146516260673776593437589650202912222809671668544283426648186018296018476531502467937127725316913796217353868289030478476313387148448048909115169447496031300504610208174392833282545334034186441598100495423202303332331483098330606554840715664140860453774558664968331216939663629569959179092817354175984221173645320423652081101519314986908805694896820314930753509421876726302790517998572017211778647987654703161201636509883419223325147006868641665505142297563868893308057154932630628332089131420538091939412913516470793655999833739208861354202594309474459123211654392541748094912821331689861318463469536294191741910980104924453823302880372131582297329686340393190626664541104018838374890628393022146165218003515087959361774252491612587138971350560173153419688079513438932381281433993182993693990755037645903137402842123824828389175098761633014190890782831276349048714064383441029744832895096333622481847960386602434885103089496124153183365137271572034277284188800951245766245996157184398406895659678427807921786559026893998407933152224808254235219336106310079025637451727408838666257157336803319047743652158235609490343627340595028213614516366597692693511039352447005885218532605419488622556442977625877275654031341026850259099681003912353954774237932044429542802185007374119801959990848518576864576491510358766184613165143632452589093293528371438408845375734357825044889824710084622380349881010561870313667581276535123297794989888418294410243773313346495368240220302509857009274036255139201330904643419837122831930096327283613521749699921737164294919264186959658704489217135748496843468918084660381832894560693813086102034659826362863096770666767231505510772780364125058211564347438754262368417070514921228330444827571428659002662024714431733752954290360836604678803755282630789776425822616991049037074764477486108955072268662301461317509755399556554842349856056177532060214755200618176600125047719628078085818459672768167724493606632808327838910247197435311987046539901963770670872651535012515354655204083582887027393295072901432576217806710651294967483300643359695285106460109252852438628374745732253132486812310683822916493048686749143305881078978949691023342245794174734687300240013009360453645102975427279266837787382470308067479255468294550543338835473571461515439458286418489063064098157103481223949220906539427768802750750597797306243175661248781257408015545773390086374586177014282567690100803147469274999075948905567388351057594828748293532381614302047856323718464670547918086905129565383018250605548810616925607053464566787924227329335561055286983880926046993915452143931993307345295826743845741917959117913035113531068610645876473091596026413130956793145682310948625828212858195773285937204717573161614365734770896785769594279047151985768878638153476431435412455552625129064175671437708217953868790580573969655448667772251108866490914046211990220475295211683278419364760976795982443925915438482725814293843873817976575727351782986917549172859742730000501908176496672122784739892910889464024970175366513298675563590658236241131639118892595291794907478989969176658598226347177273202983654337777812147826812182744112259825482210580772165181595382716129728612749902725962658233668278945320674779216091713673814442501881840836680275123492164091328539275900705631657793184819905409799164671430786721522487519683446072173280426731826253003360110887767835056142102584094849091040350680749405865306496286153999584984699538845640859322897577411159906537762827897861123590153729814243051936541339010040207771071559672435425007586535147215322204610383168062497098855590531010772467140895668166581011333375119170658874466243128264227263805463084212129779136468039710022063441671336283900634778277748627553660557748342872477383252483446284110347537055767820250807163003363593614340646071325481279887250814654707662822228756919325824338836911932949876306044365535079849130183427616822218302486184334240484660102969962422042981705648825242940359437740461764769846565435969567387515381055965717464293136304287869823673870478601885183762329794100573549148376503756640297535328447897333863313038300267521983301538151337700484336413857526058400171222683400336693799891369480990549319644756606613539699218886508415350654567545404344309286369856026150220988481692717022967166317482878003880997056905259273473430320091438290146506177324884633732109802857475056428292145912539525510621618620420459806563234805032885104573475605349752345871254546246331152756214479376299922801168900886425907761711137644688564864180105700046517825544527041777563168541249592931649130796681461372214974921613416618553577056639901316342482696897649776300696729553903933055626676186361108746278437311585200241386682828326793892721936854046954286987236488813073549311229976500870174877198160462092083264865620907656570506474275304787328959773831951081535312129798745500468347905885352517852281326425567891771983426052690976829593596719088798825121099809354790512137416726682864072166453771343235457252244635955063743217421376574755202907097565829248602980416656700054428915620555647023234148539251901672554558298572477488019922197562628697892586707390089132793839018602231200007115334700721938780821262099194009068492534434749900988466704093795992639271715397774076253435756124449234819679111167851929747525227843761039468886549547328394658415586470331514734974014339574485395098934367973795308287270416351168420524915278347335658689718579505992895098454355713089500612257939015395930240639327662300036231657347471779560730502573928732561006861479747263211843881650931386816100662734026748064905652764274953607402339215505557688728669279342481519464255140002725995227116056423815582677175388390840251201031386644754291939309634477436514505968653296846521087374674243569749266491605309694066997506278261218197332250482246612741073818712508233594295723784287635424039378704898344885985117435520788997348186857568315924906439998322698696364832894904778246440808860143362155304510761371617135129269554424749462814541052834361073113520817290657352988658337065675845530057336513270880436782183319193969431691030018070852263384405039101269381666777775127235090293685117234602854992516323745846276639625918151122889063837862531736771231704198763504685376886341000575588803079071057996603948933608972500353948559630564636269466723684018222388133692932079512379506937283773206712764196952698734581886405382208699818993233165481448818016407097998860673905185927022433950285727296177052243995867389902978793770913062878178291104032900367516114693577651239128901047574280129996107603970617169097870971846688019427100055819750707106332845527777597306735105265538319170139531381384655072532778039508060150028438879010309053254721536629849965730750364441933722727591391462659944447576901311959702785639540305921344418006272724174382785429548339382564203796901557011574059448493578832851148065046888643687879006584440358183630303416936641005073351215028519766831919514577257188269997915324816883819997183426069539203171126126110181510258093464648649604756460469268344837416330546936929079877910408393834045803474593779269299913315159027909280122020772213220553767922382369858801076411539188008680730114182895581963207989214271422639101757320185086589583707625812204572250768961031087320523810109167133987685172141082024724905258301371039839138173977675344821394131611247210101341953108001607036152208979271233436205720427867520541635141644114371832612110173996551775076846819011395302214869068562498220971831854048718063051914442409031026266429442396761502761196853602131549190967043682790725594324212058860490843073393898375912541159126912401588426791423532737170819136104585386230899470507259799307382802376049348890202207572012635485014419503475108216664868275447493131947684329513100266909666932408927846560888534123424444873538412527496920147833068015303342093481735402300835420080633833631860106567318499082094108561942491681428830707098673628653196793617481034763457425591668886002152975718526956537748803782287046279273664505683462196508180015030300473098625281656361320014819514562038253373888371634881290091301571356312330549764679042648878641308331205724040051908020142546167835099158766971173293955159225569540592466995277289025104321649607221438104630157543487027526004675820551465468159786409720510416639545627978629148739528959239291883599883481000284571958821963806125819870763951512554685811364768915313879008094210977613765862578570529150956667571039170574279278640020236112212651558566645797518167667592118391381364396802767882139083453422325173665854053150432810565827686287783177254370937155090318239668469684642986390414057609005376470720905949861765808028287531686754734861704094342505276161888178782523246021110874823601908273529847587339136906947225946128890340813164128483174634391579143717098067010292290780169106774217189597782246126780553083921899171514758831986106323438577845206693635017937665737410560481484008624913022303345217039381879796441517240352263385081334134114348215986139026580468025532562490598338211068758212213686038836289270208007720045797301172358773573992096301503475141370264216253538090891716113400661753254713036336719490028100331956131758554434011081138292226429030494736381337239529999412152880886293071024531527371728305840355175137931077260002884425919589785556533711449694149632666650516236751071957419084390814203203752284086990721148613275096434317961826705792403751809108408509649047582594372847148893420700527895957219538713309412030154676066806873098899901589195938302706820702613317111943363426464363586150983305775028312421863868025500596399743385026677092255127290680432642571822411835836812860112507617020040220891761964414908556827184832790123609723895018917149522861321960645965482261531707163068412259807218391586091669645311791042709145716288864723939498717924364952921021484783071010314092460319008858172257222136194941309598034733950001650849816498022669789921691277563059048262915225729907886769766413532529434607973566594880789266356620973276687189939633172115589384339372152578270404678639280470173944555019615283342409956751247742530632537800293793926464878353534061151259200216269774698620867187882627919044441946938357319743601455465214435095756071728447320055486187691756103021280395817169251687985085336551245794061621063469844089182766290621193281397680583617659804640313292014215019178480216297511235149319595738496231304842856179409140526068150392704324229198811932006954318485648412312322696406047403712666255911659736991749679976357316335516121864600040663555105764666143283601995445266647069302309738679680783345946400360273860225426548618091699755643901252549019505812193291112902853514688059780691659905701053613476449776821107421716185897837664876226354364797400774689076692145256600904600795207598725332807149590070225686185175899759121841357027361223887265455441201198386370847915030681202174175239998158512668247258791711349218126049692017619579531850775058249882255269834178852689498570563775475283423843389113570191498850506982456012716274695796378237491917612689993925267870458031414234356530541698683414936134816907975315045328165789433818948452283719084726882089836962271607500837768793866410058348014959920900976221513871719065540620061278310998659817455508250863091587288299417712422936077130334097022431646209460317022975002372849250365087641571011189495703356252790372939345042084565911642295393749129410881266935060263776012970201355207021567524144546247031118069640317796823156675048353960653726568978654829485100976284952089367797606466230275646963385666807666644656851507393616500968055015704715030533803237645702693961718028998760067094546206465695602562676980976031820486668413519254585716310021939143352673206601558874186436347932140682996253017161706827994641804040875044967409727848363318635008463899450353085684753579908182433940044062449822389218093823740166256410228853610579349631730144736519157656586341726436554443581250852372984842768729540180197267405749931715361182512672055820778397928736976282505966605086894360579183700695553226643300840876117856645258101715126454581400435936837160572746053648630970417559481194157829974598633240644278978629477446205433567801298476206576625778762566349622746841198972776827807291378516423662647487943905141818628571219725933627390138362002995073336121982349420544966574639737024566475155762845262854604430539854489282967276370577539223502300656466923429616000835482414520940901749943844917052539529130158004564454852806267716215721993546567725725036575360421780060432888127395233121102121943819945745548067542890939898077841947424890113364554475451917888436979745446247630618739565960687861912802214384198174417600556724482929007865577134308678608649247120336691662997074024850019952881037434554010391393649015305881599739913450137688959683768186246357279913879727490760320128754413056852248515277588223723953789751529268409347374357774735769431201762922618676853867085195715979152412507486728502577659122479634320690343341360256367754230740308699445258318975438379232597702755341284907558389090198182223913390734301020128686599993872546321002494732959926924311997723950768687807970522264343649627375776252712947116960386299598582623692734111444026310135336158559724771784394146891687582854335497959811338818633105692365303362761879591318112376536088182587026941885748503896686324154382161940767075816848335275759224140691990328632412693885116386876871217565916444262243409573631637966542416311496584416794451212527857602114180230869388691307811352306194657668899292591199020624597324487474801129505539199532536592466203603747906849632359513178314651609268112091731571743932441709526259770615071982746946362217575830751297907345908671624892273714538188658783697789722966908011981280038068706881130195932559114119513258692100120367680218236478776227441076323220099633904867791058298562338369880678228371923624939311117059462231036574317765080735965763206448706051856518153075399312160142702088313550541615093418630727226468979018484460099033789167398383713093052703252912360248238223784075332324316947594316276529215892971062528512506600858416601300043971990253127330373335730150333683558064481139944530698379391909198544488684096488905880527387641547858461080428853871626832379227397524047201584914363286163573991001736485705511932993811278499973970191391784871140790283440164358296210593054362409464240172460560002559415257964680011297598982838805891097555480333926857197293168971084390999604802179565233979599405824733400216541075130133071805826724232915139697991874196424897098348680468400586091952181928899902952851113992424511067560641583550158155978475427831884183971436930879620670897788948419578007027306827301056381495610507230366970436348011314821184818387114258891762134607047322583954746390319211504894792947042012531396732321273620473584833158558122305591003182777334926002208804940779318213982907937604757315246962680803379061319801019676555841964403006012568444322080442611749309965214456859993124399615035821387898756828027840095116617821829693378378545812702732746310768217294090849954533303613594481718458548681790712798863355869979098544217098642944863012017720203048645795238873585579776491624892887065788385305030933400047054679706868803730661247982620985212980046977431669734647952218688753376825549268539561944362926927222457954892153091694202283106264775828868468321511199741707874307809778438430558296238776066103221634453987385006388851295518012828523403408791276834024938872056178609910231193685067143957787746592696418661918856090431440688471477057157023436600115812600431494756012392066618056185643651263868825202889937713734875903582667053320158769906923543859450933134771440611556407922898151071810772045164583167025985657411869564427746432823026443286632777696249592519242286871071995748866639488311142411103738990352233317482936243332413517070682664747141824228331571739932335762390714378585409258782590039243918026430146411327859350438773477159721821539294990763016677369352232426558103483811995291737403617964639488469618153803057692804114469617872907121252362307806162249057075541425838919071265186877426308794041356673749016869667001824588294438476705186604032269744480165903289894252534014834141484235769882097205568420462323048498979740669267325821123259728976001140412528876077973462590099098488436199236386688926244920695991117464830592216012015288839443974167737922701434678942846892310661407971828646396705888203212399534874974933339332462857986160287712335838040615530044295517601705491136205138806363157696344597644951635240479939233904247711321426015662993225461070214196215738129441534268287267156670540757529779519082929384829607446535597582688707018760681449868952733370635152655830692181810293813051206468630352612884710370819444310384950715678452893776677223072119923170478008010717418965287691853653641605626974696557653769032395324470320518947797526560675399082448027591036004013609672878561651302948462049416882594426248036749044198690222356464634242210630667743189069026741045556609301379666078335744802447184965656314069038966903765213898361861754997828627834803667076573783999719615620445676046352138214800440283418206542563958332572265596346602459305663139906931822328033093520418720681360034552265371590976890337564563268655195305523819974958242333773034047292561956219605519237764103506009491911326345830738136779773061457403819428811954957179196666686143287737154907282789521496933157823570600505209742035960442050917479635682584076152210462119794128252662482806210735942375643845727867372498256609659115324360257766871989672217402170585473648372026517832717741120127740268371079073480034445322051557869620983554478445340062922337429940524658441880809159005671734535672036185404519604423253383523565106331996718449789271590038725028257524669524708462848280586321684803011664744851799865515623934965437694260959515252311333323105855977636051582140465879963645495862434426274646081354104018463787222526135220162955817961703672028865533153822557979903728508127710880631629008093552086150454009721498328951381877600052023573912678422043104998067781141945214320542731805661009841427463473840489276746635241813005607585469137592642984341180412157284393961752855026356154197926234773409810844411171939176149234034080615964393498998482128579813963554367632163219420707799953171896991541807724227292063587122779953468612045905790309261819733587351737648273915726859948940680473744028938494729525286618818181758883276248688481412676752429046261627957245795371961574342957358781330744135466125682143688715535561742557559690831225462335872077229880513048233152934876076784254147323858248092759822983967851673727219425574454271883030377197765135170019337234012173962807555105498502428572421220396205085467136931335675017043258760554469443965379050144017624665479154766932123683060719550109315858337640840284716536461104120238161324919218059323405858197824845917329269827969699915258909753770315148579435523414861301767242994335453787444745043293317300083014020610733119762292619793412992085038498880254113893357642263954320027423947102861622974603659843802005648220183209245205084562285860808601781466351505574929040263918099029829333629898122458772095459123275444445092949111389284569435107206573913835335987813355647834570112974878659133507768923305038813988476128650585834340716700751391226837980851895491716752800704109648067965688367349525889059485066391769315403196442591956532635067869220540512309554893355006364603139763651470951053574719456697907291643097412427066142016702260019852888765586542754792562289585767206407878678916052968219647537409662301970169861231034154097450870135441100744405988370101748979140402774408665640121598681172310391721135260282506588274681039850153232469718698142717598336161088727817884196484090866607515010053209740599229726697309970703874921807188079687846213882914961950616651096817418209737041238195198268562058824146903269377640538045978277270519249535583678477517807503517519871149976701414438629750205323600779220738078965532088756724552374297371537606766752155680552059697854874567738420304568334095177575908057273488616437015102681273314568147395437000743484500612996990410005616323649961642246904986450033431115833768843749245228610582878071067729335861877007573699150465154542619512747230204047478668821373602030917543941191409536866317016731419750302750578106991711443313354863409073494347247671711542131069117658014218212596568449640335907956488985252063091696971354070619618399024158849933615798223819510645629028117751078208371898961526638454114864111416523756593491100197630672494026006969041895364949230389613670174134654383052862913650834139169136972209309857128306632752823480696286238605245832246711136560388052380996706464758336635181299359020344881176076688453866545530267952225757370304925523136745667740318766592848302310252076662239137804263111233189013600827413258794534019685015664219567130467144061952948407856081776830611790509580921505737446156702958347217261126236512975072457815458482110950753260817290579227608767446627885494991420310901443699017038334378443451271804358655792459653936315088620148946637235775322872942688072511232645930404051749409949358079383850551615441383495820617726236193835309293929225930078977015464746612728477367892613028308598184683822007252370076821123464230045817812022221261408323070143856310058077326788555070219716880605482304005555452265380415446859845340895937143902337765056767133590335991930125842492721778050262914272954815644018433836488539585623358974422461087240487170977418675149521233462602672756149437557592922109412840270023880502915120346700240902297659417125166360497890944680551111839011147369313215458268999562843253873366996536595800010440661221926670678965306331035032983842499477272815319744483790285997714787147919922639677842558953905598543817034362078647589646688348727842531740791216418753449961982090104592074368613357865357834827563795499295961880278885643114807989587335430714332622315411463191374062297122765879272554930009758074634432733124083874483349335146990678309208107252181932454533099080590225457726959461389575327175517416575250288176573622785049976981709797593100081351322325872129193505079703594243848897896902674688401875935890493798859380381935193723596165372929094294274382325489879723986773276153665289172961218063100883652539779938178865969340277327262906724731785688987444714280709875018289644196004254227008704440187440510720405495473170112805078166348779397770087092812139718516012858322157259601148492622342582164469205596475426020813182572840714388934937183963102640338088792965997834463041607012137383159702516065536923244890182049290922969343069091681072826960783766802747230230490764517488000208993078387926531719301165979013928100286427379512967238455911032081908449096553037844320405664534726148398908963232972694166968830135622985245814990876189703540946243102108361754168654375733466515957519342199193783789243845972245422490692982790963602564236964381665275152752105589101060371110248734058514415516161673385449231105616757484229121927993823666029875145165170016016650897949638273449639907464497361288317223192996234286949620694594238195876769309358007728953548272841851193840823712040227180222038123049693244753467185394155189375746915424502019998913307234091223300715051652355618987583112541681559724380000685430143161715229243585955358100797135264261613713045584953840416419456434416117399894055665204348555112999998003302100934766082755486304543332088917433082890436881848920153241866451034789527721164829420055979366409744921826745551262042559141995906476526701051707013679468893913392543484361500653358051707860689549087208487096575708477524713379638011758216842331565537351107251354178457136993201103819467597602973973999546080638919263546645713471015301281990714678147080431140386666652624190078477411356918272402671048905566310832297232284807952037888447196975390317717406462459866601611347852741401439958947889559948421229220989505595879051935643346820876797199423384944275682848825341725557308264330519768967868392859466473404688934942131371434469111600332578019552940745000329208583136466136968127101816425875124100312997743606391445885514957797020472972573303881955080148959202881674449131035452717946979861248076728829355927430487342201829665027639342993631084719337925817606059194832454856670494861300929190918959084440005777659990205477041833448090413357570606789825361976277203628035816030136521584137846933700533329470598043993794695903713829248239436301448768955486944946550248511145388500048052818909741661551881763554016304400714566807791853947901567490683588588101783717871651355944731366122549016529876611397936159149281251197202601189735820092582529502644905419869182398501355819215599875964682884573789261121632097758220725963932058994707071184593285740958507069763825474965060446038163221416323169746232862862752849694169279995531633403018774144930699007384172583661933507112783247063980854739199535810080929766722318204670521677617749379249251813050316246032408805079891363315487302991664720534771000563875923363913045160523292688941471528061948002724042748898673482162717902180867085106463057177898369073760286307079917966251536074665288330199834534092172468036027280802623239466639023947465151979555638722490488673454061866814013318342210906118813403527503729471073974524709550967274595079392790382310930599392804490756401833127671647774927425058063919684932713438634039223306703662707938520871626511721590304563861813877110798909291128696095715808869065480601597749662415034470824168456633243257749468820934882012484758803577007623642446392986269461553264592725310526746836767107561613333147767596775234461397199345568905206885194972891360480846230986217499350128715287311799716981588702536809545520892874090533739040309957590901957699370854286125044140181709654962622518264456567720051286135844333398781306722253530197381889390486460494993670065261929636544761216073645645290395214291714827351556475428652720487581699317146215316591117214156582202533648506600090213618612540207897160992819917506499703920204343969695129305624648451840822195304080798476143246410547800351058811547765586475198977950424624723906056539256603404393395196425443049331078023492849227080146272921921637707017984820751352434757370536959403447386368057558014903624036640444971846013281150748928234510865693392064975848779070996018914260873983142048818040649448046460105864798922237346469915445197276885530957228870643104666394088343542130984259884490459831945358402567651518566572587890491501817562994988265988860893331307942455496255189465910933550709601768214344836720225589287184843388926501745174754686849386323233961747655124651892903003734320032016307138443585707919103637825034957051019322026068908288057633742954085148276028831603379564893117226502839577949776371902132310283063573657329663100775510060031390602117027288330750047752736989860608293663304704018586168998390461950335800014839885457758058602152060385038325937424629919040376349141622481494567076307654720363304609051640979639554760187882351498389450591601395953712745434101652945611856604572805006564499094180872486117583359566468119779186183676862734765637463403287037975061818589424372345086099111566099862483261760813170266762195484550098103773549133706898090991662083006230699253139682716723085921275550670338861685304558416485385344002417896655411826263535147618568935874207398045256673831402055433936120135684409629116212081084576830306354117941112011080694331934317464982815519580912745836287354455432289039739248528078884851181292577416695320017003036807917562828209565580033585127510291651659576518553377181373769771225770472900812440167046397067791590488919153174424076472957726048774917672032280256381358185393279287171261499567453694087609340370472212391175294471065610604289085080989466965708004790849403246840003847216751662381227356848360793025189398713999969131183703093262986861512785008232794911575204671753016836770429529192450568252366998064448184499448180786897509264277113027198357501247916319228791301568941636958003529891757457845784825843289538270298948364854164891739489716969650391381457272512167948349698352444443694222762816917968423552188691639337264670749921690120845781693011030689630905570296934518017273463457471037566926694093135180033138055408927374350603872257245151916823399984499531828828559880053288376078810643193782724934835584107353682022065824740896492952755799354166870769170362326790765131478786493251184702155072362382081030469502331905463741703054004424887616035043826967276539514180056164366062972605854517402704989714972981411461831193045044171884415989168756066770484082429969992602844410640401169179275230382106113744235674768751769613784155726362871715233720922966712718950134805884627879295775350662530426438327705287805661188604928243733961322852105193382014885374771757324476386612380038696704093207735366420334442565655053704515949692309461858154556657838576387577669118444074427828176359370553669756849817454028660773897213282794295616917146049790494702290003164706144113936878665634001600111471941229729770106259343311999533022460969809292223095815327711814326369424717251871484219488008567241310363643453082787397563148949925395485447392777256015198763874069979302179167478675414041372577260744253242548151708989811461464365777799986883010177830957813856471301571342628957994505364693171592497095477672136667393891904159369846063915828709426834464164878421421953117695414070439412236731569525105811633967798289578684427228054276850856985680604638069450691604543841092612767758155632146339466290788696693570042819436303626414518394679602880360395412394995965620255229017653286969220660900018360000331778843307170389468511244902755628231478237415319965935430553680565679482860609571475674453847404796263456812248932783417300741700934571637167915246988569651205292127075021347983701720505579640770262354980350466624733844276222375873086634286703435874128748964583372321836656459416497987930163181029616984616908721656986173959919735689486156948079046002218727720217999771097985765451068670518683142087417042366976559529656585567146836203846694070558143367429845136572441453760643240220984383283257400945922840384124220892738214357307198326219708350454254455710308079978035892899816275889302025874197743951324069295530045265036521680769699040683335561280607895456370105222900827642538427441010938505324366119180493680159466737042063236101998309547682162268546426422722316976964131820858127039374059971273307911107686904062449978721917422274898274453576107125881689027964669103583281485814856885015244417300417938127650206697955792144668520587749409949431858071054283856289389277114427025993570429563970462383054970119935811210857817884624117719213573447957733373468363440064096457556113203502462576640164617474772608137613045839806567306876586590383463842229909493365601025046089351630515300533761429079337925215620066233026976624059480376634938659772764246475420005378109836536931279473516628597613495151488545173572734521916326041265300220444891305838616945834363650364147861319953521174339914437925931718933344660005220432691647782636648900045325735375385326132947847653690772691346380402141995915570296335621887449212458548403360694272431997663813622864781020040581038680298892138569708222646478880987330202873942919539869445366817165881829695178790899807081885167779611632378795388475700466534857974657192024003326674480676960175331602615586261131911174523322834950576537840898572589416042012887939455994062836682806525656554620189936533532314553674014751733108424444728519047574170726340309636589156383717421307114362989859855437018312521852031847750584807629518933994253001352021735320804277674051757426832422211075884508107050603710875408587612479750936957299337163319888989177874287814357905387235899104927307484490259672482595823087669319433246128887520127156311015050510724648420972121448807908388968394416103379521008294654043317426486754446683491190863751022035364582762972903116301157414486473521116479404511630370388833699687522446961794862303198921731560878263166547776546290827516641057158598070245318999635765633852688418972539479398629170401851752405800040490800810813985112513103969716736965269687886301458654034691588432753124089618464344473320260293450193731624465801606904584310644327702775999919916656090954541798595562119048261649630560905913628289541776629890259510875591386115536723702833898854014353455309517586743494771693971255536707672553940208277979193653512431771923546175116342627163338337737299429838503452285365804525371501928204036818081763170165565844745424204839668763941252587304300664960191104688308068629062989443735668350976076243345170699921344683173305666307902695159420430794688041988921862435159581481761341526920537176743860382069473026083913575904420255145132489665446733906192083920119750905022251150762858180354126681956943529264540409846854419083225056869212604235058711945834841832298105081314277408001233839976358492376475138914594701942603492656753462747596644619446514646422253001984145275258141202661078256199457783392206531608365244346678362400098959436867869815499006985645288814644292615919190494082506249880290000588461466879069336954273900043489173633346593464305667970123221685677679497159943623388084823944785950383467643830272098554967826939265323035476280532823902854958189115648092709077023698902318348645518513540014655694347445462098167129198800841576012932680158662680897625713011072741816210340678667886611379111146381296218000811549938732210574310916484849855329423196579917921406344052815694846972559932295621227880970501001576369788852118267351436349988505858880214239020108765985934474334787451156242412322653903413053032066709214229297842889163738354783729803214464041436123035119343462692349099105390389499296961106883648100871430344242487476025075992743492163739967470994247169311545960572882990661371504606209721182304378265317312737461369390275713119575544191253232467311643034298447860107786815514314145535110171773409749385892583913969552593423221492226436442819423814972187605662772698907499449489795778196015961718349844671273311448850858484762957470428869754746057995029503182642659509168503950205693274037248173300288812595125431876291849629762027271003141324527373939994415688209349437317424227756461446272607493032060438715515014179279561954499311771308932841742723340691505080109213496555324992423698865039648824381824749498271971598154294564287138854387453527639872537338340609176150278504710263545462057590306025502936821761412102695332634206283818743862173709176172358680930819162876000943135239664784166341679623802956797920802062113678088824072724512953704465050575943861158253894627223730430046147067757526503491080555202679441488752334351704030979229878712563803640659846792928320056258808103351806230725318077590426013456473883269597885656092084477452007669201426015129353930440324666842888265963313926286236628683827651203751995841355445525997021387532810774622413258041875846719330336182943922139204661382386285237202779092589976049514537241861189793211421236734459890390019422675487668692587279620672046358348306231940951083751475215819048585286710382520525494292840139010645591631607288110765371684691843456762322607839004796376777219441263292463871906493992944612566540769654909993097048630180699414382049991149560963590748855652834259384906367003049933778256689684272758964423262918920323968119322357162972276749909614312387587345115037565832506569202494799060701208977089182533358964235779392256732428769486149968834697267848455981224655654778116540031284453023073533673548301126836054301028179284162957020286841604058558008004151483805534056481070396242180330484463396477086292848014842081784978195868204245393209960979274406978062717998470719803902999860019254735088158383133867890253579904668182400172509359600651663962797439607370630980625883797834266868869415054392771999995745832973226289654413108842464932886524730057111503411597176712991870160068811223743651279440586877642938475092506799429381007694258723239258878824806888642780569128941364149816927035737913061809787241197171047467985763254430322082521941981018422014635623771526714746747698508868741842003903474784110030838445689530880891918040375900338984709683804318055810008861999989118866979397684379559242847326068376947060247411898405135598508752948508319370726443452197453284822506899046240703901415188440519802012425730554770265401598927618196613765841686500114524116877853362345143169331801454896382614973861897649157522587010215699591947971870632513245903474553747066867728591398711493351334016596276199327162434628896013747197991517959144306418656053804197187071603540199113078763620010170755852346054594650289607348984578832783612693761486761791326180820690164774370617821207606428317455144738536633871191944485786472536578534303571348150120921041510666497706050883633733285357958185837929066804483242001375390410308344636469329580077660575994259850717060818501885653218340248919249857960346211761563232850413073000385774928775779402273241712629664157576919136172426016546413165810473281323701180872256620936238039343673490399051432003148730609316586036015327944896773793063274176657232381580307314449070304252841492672234369492223009446382408861718528232751185014970287078966460825028447455243656810009939145124907486963749809846551092929021530187518081940299180898716213034265405985391841111617880696442720617902065371242965069881330140217604505163488354300742299200458956498290409855517263053166979294238621335740572468976065585351251229847098836956364647253807808306747974640730364014466729508499299544757527390370736149493814958451176054390151537459953473318249797107868860069741228488565374260785377629442414391193562507297943538946930922308918430107351712523284538800959461469028103064731374581678978289055555801345355707090188276757769604076662327387524529237879406598516372564484422657845233347318053923863749746175312745939348933084582830614728062295866814380493167337498480500837499644733534907044300671393454465956915547004110623033080711433400233046500994811272853265358343119211242963428379116336919844002784143571825389888559270492218690743925925330158249051319915716515820988562057765706877632204230747699720148899576922914258208633083758100673996233207249726000238466206884735084073948730264995194985340628543390817715664309891739058644572523438459415512144330375906125006012701888531410912730066695011315473736330936483392391901098642159503830678251993176190527750005171852724558158779648615745132462650827761040803246820708346561773962006745209524135320401609308482165642640286336262278775882003320616696766084957562980030612512506527052540116275434265687474106328745539479043956364601579029268552250294084833666102493579303116814497680941528699654576118206837209709140089776580620277145213310301979744022794062046835718000314584754689842244401024531985415101187505415283819861312512534338975087356976622870088815537376117144453519607878314843638661659324870958556987401756601000745453629922170134457657091010286408113986221049773447363765954247805767279136035398763497625246473483499392385480244897395567934475765316323908945196770058203426379760054701573907447473398936637301323954957010179216754980331658556467407895463432427873322291869367734258545921312810953703729249866652476478665852607434753717772863734118430559033981023858723961682950971202031001501604856986403541921221440338998156411766395703381163260601571430180647869280017920694145730727149272567674737311869674796502267999348014194587202786540572716768788544349277735023911180381327334879524664909786984592717288900628807478734232153508955879275490860013046520687510128891338407060764962991814652096669977102116066204221118203079223372304454673333324899211059299220997885394197571261183419520739373381093026498634539214802496499059087006661047891264221577198738452002280161702700583587240265402421329966850602174898796650767816858295639711035800793326065198022937370751453797968483322924002939675503624202130698778225941796974374389101178942142077809185083931552379423325740031249529856111969903362601798988192180667221946380841231115727512649346339336708900056825397032573801041116029810047151405325874657990259252502953194502610329643311795265523090344432518533099150824080197042778959400285744175439161397854063239166959598831220406840097057547940325520000481680765339604524917338962524900159748033893564794676800983277457376631465784392517472928271969891701325202392490151177695632043142477760681888629244453047955923476421218594072944363154918732865930715133336030368225366736992914886773252959365188690899701103739360980668277272348489238902778570277881677373413429957735965380526282476057319895659602973718438059998455776949492043462313113150241532901491327196461337433912792678247856827586582996439564567790613432966478704851992276196829478228686407440445740687599370683729592414187076602042754643959850286066878914744233672238021778519601492261475806328137710914589087391364235915334087386688775547226786745192206506314112919513388434671975743426667105759697340292822974225529743882625934938752354250634710107029985198729286952247651406023705503976048333539518567659813959779132547887620487003873771907572965413056505425711545149638354494121708996921638333322723063410446707572624753382855575217020472401156115525440186283451614930475180339086758643842584416251677230566831713752681971394362552483626557050108257337667914012306893572607415656523351780750996826015409122530905950481145495014712840270184649694514376566114326401505370698934707564916405922772454152980474447581540134659918010451148721382957786631182426452201900204231650481409569423232741002326974067355795805212926443732491542953242822977201906727238089752120997188673360707884454401156909686994077651090182969743491561284541314306380343895918628536054233904220719941725652620617918706800588329989075333338208804086290264116696763402165344839744849353227214886926882560726951355101851324070144875713402174462882669002877403298691017316286744741396254384808632896142400668620425802419029285961523774660199405945227184949783315904738057239244928510864293868935627165177329356330088356171640083580479165475146167677715266943246008244787439987126899643954265900054932852357972081481679671101641938053424367048956766891193316832773948308705693665695897190721301202072161697070246446758326274148479852260425519736506216027749329132342334016464833474373750004061765920000739828569035541226155941066292517508530593075585677736746633272131083220196821584151320858835242724476957539550845698491233080061579401506500132450846679199351037489416674368872406194644946942575525437998004401180672414711553393136246730631105485243317801840374088702124554402117971563794585990534000435615427674897484320595644218146171959708011932194110306105905707426889463408136792553835669215852810665550880228817843084812327002929806166402944635120365493006845244371557830681805685348569710213617668933731817879129826581038161336570926119448554747554825114583570048844962482027264523966019303434723720689619528425103544813148637829975716308420436799430510280260242863936204716876545408818477991734079152024863116885410701602420822571384282411767418034553615827494642348276382887236059614027432203608917655854796879902871448885766877709327048613301996911360138933248747283254513243711190231495892275527925313545254892108119076039288184909246042902208161287114022576727302586298113284214606533636647161453554722405906250646673861912446895720452935442423595823527093164233711013598035763477041171051785699654089144764004261263652665922876684470384348206437777472437540596012370681030361433224938599084326290568550522362328595830277026446856092222493779000425782502418214429747554910851865225641341495560073178860064483652379998738189304954699555758523633522544916068341078486459935073206330640236367420464588948349981945189409692051755441360683316326980908992263391082965735014268269779219791140229454111822192957063584256616018932365643429314331894541090322349721545358106861664627241635949517905633342876580967805874871961716628877817361448898776162142041587464414471830596698964228977778127713842574433100532335583429553649878254027295912262113671919511488625915279661717296180754768103124644909660903646270971507974396315455391830223054143541667022458868255063388518874945188291961680419556383571060997322245159127683994251662363083616283032350547631106842156957355844574940256809213203766981399530455371130537065088571348181317158371190763932917648849885800423001497943025593800384316052500250170491174855497165291768359340657139875863988411036607194719188022101374602464421815274545735696901735360178826293211653202627803339604565312832677363504156393334943131476127168531430806588427488442587702560942901915502731208393672516864341199348791470690763035537291071309085327435569799025188203081019861212878161854568154539252241425378455074875250258598469343951945182563233702735012788650163441966775398205814900507252770105585638980994968702929457520494553425973434820362599146894080922836493793592214818942928884537369603793736683897655349128186357238467130735017446370592605334113613563843669687521758755013554570691067855362606963855565228282558874175358330620808154544706990205049666707202652904590164099983809195582768446644816229870352311708040799559592146067477178173536829391673606421498558524598848342221225702740007928601991574649774258367070027293699472992141717218477141024865423579077810063958835380220813795781483428437808976932168010699618730648394146885490099661717300361314009968448120419382254162243909983728642176034658863267185709978749396593371506532952533004160364676483421893950345888643058372078624781686564130269284998138513744424976505746697215298005329869830460870836638966595931776581016019074323765619647712847824832455993750508188730994655093043994520348141744157858228104453074722164168752848288743440918712568772089817489702740569031537047975396249156037581940346107375740995685524597465527668271751954173755529846851298299491116675450106075065255543646336442093066371884192194704177812278094477508055773322569329945512531627886730552367724661464858232049711232383187121604920055856465622966884686105620798847001087537222930768729404531218031262618062642410717509650033558954596398308078587270491931082475470670535928187328811670616644236474920705988082368022290697937570120106646490429573028104807366415301091500583883797233417253940887096805271672479431944149303801755775410525757814351664814724901369399755975745966381397296782893732530469732935004867766020205039585871859875269276700427336518577726700718534951654416458737923971801558764917752252739903012966839897152438566798890749032343004886190854067317175663842910110513111114475281486388611258748462044936843737487508488805973636895177666950127485237097648395183387753542082106411817737846493796665413355315401675263593162116320422497180755629075020270789590521104280596179183494240104504219113798005463515852483145704163384043006874799205477954979733840327595705881981081705297017684047282298636991832663245970896533831204384180150427739313896661870078483465665426477688324623699883589634033183750331270354427975980390589245032290042055010806505662339782490840967489750786748817148776972771354922713712068225264734326284916671474652589737232348008221073051303661077362119303495724650854129452978162761910219115651824334985030857646376372322292611299380836948461903990897302289899083736004731543657641971418195570063896971671693052984764952144206412405318373758305938288033024475819063537929398822593538976449903814351154741129188842557359154103676131776347620379419289867057870948459784510397155836921785450932048904312211822632614082914144633231288794678188137369185726591930791713499604083983809980097253275974488050544734575482719809690939858618750479364416428102201128121212304575354235719400337659621768747999273536426786499005675926046423830760361058385910824725571274103043931389119612405902353684280146329127518183809967636161752102485263033314446083702186607119038267669310124643265066254594685934560723020183580669535524363781165211525975419008773702026103442015379387283239325278401988512587556152325429976528569226747864192725645003164602598819468190685275099392862606676523651259729560564910990606092059823518731111759619879183039302997042603384738723207041030743045811261548165675347608137679067463367289023676031532904500613400886605225546611809208841045667300013193682195237688457528700422224891071757046514426531747919043169290553948206271595310900109423096280173306374267810027701261919064621598959920649681903858517876896266389169529736679874509154841905125889941056740542638558543107166697273028879838719537814276394937803062956289892339034675725551823675010585991601246296248647755469637528119735489878876627960055674679648280901900103371283460305880022175108178730600134762393088804887816786327767446569409546715076676525246867227088170016158133177849870914618370385450967217591837960288804950900189669208432437229985736123384390046202398214331442289015850821363491306858877933319303093607476215177317389715505601764921826628059919149314690920428172925760496276977470581226019571961317618922611318305332727325582880015879469702835040290987743414755621172262352050372695968733012406244273410589092395068068680846187242529805578814860184178180352784066179343991021431677803236391213834221496069399405622317989667281308641501033732432567230770754840589555515445635055846316421587397050475231468601774642541971992225739739759627209126151043017416609198943905365045516964259476738844999144062435750288644508896791371037504130750775015686463016899631700699181710095338134686516245047274235206406201055845343474569608244043386536986547238638223009856785960396849499205181319864652669185377562888094192270760666369241090861853920906789275036670697274387812282301860392946495618350381059179100297882463802269799894744967777992051217453182146311362891734544678423188430691629539597599886484054693770993117629581240256982460360295499957973766835875191077088738338021554720394154107433590532413655119099492277773201768140462254748750703874799805386131085618082672410061898127882845280885421654444927150501663310436298143804224558720021469937774384959122014702919546767272803702890235995183957374131025622630592891006553560122213093485972646823793000049301410690121379016314409425417309620547729815463917688209908508852160147310770031467538987544721743242024370617461077814402458070471852173744034728358638317946872098334824250677580166879397013330710569687097077704151229591012844341696213971382047210698198047686275093562732302778839318250373486030803945870059582890143833145615459730321006805174245233422290822066580535620089540376564430583417154239512505292587513502918796332635950215386135961723934952951103138657449030473333524241552285968667028234087761822127162870350513561119313211572659269626737388045638183330368655259048346782907208197342753086048861238015382136446303654109172023236519852506865154781808842273260333652638384699390787728114870681822261274239348176923003400614974732926192003052851137593736920333316947507129870879041675956790803822929494345845177016194378297826285847479177884280163715612995079997219168586228187447354293980905056368373410765831153599560117396294584874159037933991862614624663132168406413549601801084748703169030156056819302355951214728843970107216110474778713294440759657612346696686720475290045151082746823054070395401247501377742456800850820433038853160033352905352479315931168525057649484922653129088412958550680857406924124212680637692877197466114742575567997123380010923822879381484035921778845823058791404594272178341882833021863782208769113270784877553524703583643496260328024910496444058262057564553152715755220194059322002001236899918829018533940267586480357498219110165262612628516846659486792389182152317800178896821197069577793673449501296238576426850990855768835918388833578021448213800763479324167975058636633446527886714810751413397618427823644730538211894875648593742124653195872828759180200021880488533754984495632787722375590781523471717698525607193745897735253809883530753810103187219707782517180631271271315648869888588468307721173104555593855797079249091483420889710700321734191140944074038590241882523963302568580008001999387264032403571689788512429778862033308526946089836823984189262690822980164892139605165844907506324207787904562154693612050108611958268958779202001922709594952043854760406469255212292583698486761949152668663733642289783188879924256012313249302849260699824962034580206598605397802495775880615218062263580014219040709892855014364262887757054659638975939737561687760710838821559969557828349359007728361477013970854972859476839733508989751281855482977709479260746586736416192438144686606900555859865752872369297355449333993541625059233410878075322573676892753497237850096344991486931765494524612528932141795416427761654460140707566569603175073912442075552481020306457103076528741013159281424274830659667806355761061917485484643618475051566023907002078803481501244625114880346805469347354802262512805044047316598971838005591280462868955903989799585308895304347292124530844162264335654278367208553088733240417192603442777603597808503718170367120209641940402892881075296975062714928922789538048406128924778096237881468420438359857602635246601135507343145777672943923464098681146531313753333515289124378161463673366174841703125440467629813563184187887049296446444677815837744266133905426852949164166451522417426245197527283013706259383202876803391185880281409248085090000484646855979612196771608488348668055652679256688483955588623388740795639033773811383666620095234209638053577905612802296111587447759439363114838976296684628051119894509924429748881605992420157580750216647354713163427940027520006047040690452324331813591271760867740929532457519155959838851857176384199651167403156184028837076981254749838121614723034771381496755987910699563237445080348632174101098784542252940793233296107750337529288720014310416696242474127052648890828744060816685327383207298075045765976206029867032323241040752402256531971665981147460408423846758230494252703707859200624174059908767633731002454902907029839539157044942614391615061919630241056876490161647680801205853677836323792092052746405744396893609493188216315133314966487763553366968268512022725678448606586573765243994205480825814208291718884142170042023354856478331709814848554664990709661096789451605482452136271426622065792309699247255591219100471830256420855047646250173535730626942784785478686076574924761187337807807341140530018578971780957471995316974882600369098193416768828207642722986901263700601251169268927432042238561082263784856596747531593136839818847709090836802699652250239513380669846403794053948053458323174064976144951117458374096350852269975046650842087838906370418520128791151933284855772323606413762332511673473273487845030325246804330054418469149181491451564936833054751216639611684503184171960874163968924110561230964385069036788060728115884253775767711785756844049347391794406571612936582456512089843154801040241631448426439569900601436605453320047218743162585682767791536778786036821556606843259086143168731917178755137208149976059961255939030831298188667213897186866482293173919536412114399655798288304672144874729046250019240404701790561568067814501432790234379438553022297049521003068019081458657864787670804588452954143105600249040727682633818880107518946460551114757709817940917645703604356268150396000777657071564013396584528993521197090548935407455864391417378290187755307957340983133166767342153979565187949711305948432476191877943681750585450364908019166984335261922458961331581088422208809358462557315857094708424462272154579561075421617945054418752491328454543739754990841154542819116604048730364194121837161254451790351496233541268772352049693490816839980920162937573946856949253884011934447080300060455959214358749617200536423954139759182540005651432145427441166701236588846511941423856285908077082679140336385169195840941713110614389279953241993291123803661093998728515313915826631695553777487087090494639811416144896454781457634596758483002233997516093386627039803309670078048354268933544762668900145701306992773348042148418281379519519572150030332353239984384953321346298965167960322844779813259368040104410720311482942486666723356514843459648071912385056645931391682563206187377990105487462009152894293158717119197471126540376228726359697101082729816285374990168244019633239080898951431310148095921201228223439896603933639409254728656368525357765448549700422716184072844197511263412658323898258174889112150630791772837358670431960546782532475579144938557985596213192006858417384725818870020556495675699445075053710285487486323057370216111742375269767668308499511754545558709796210717433201928664686874846716271089307660800223077744913397865049236493043060813136274530298565454879180877572234424358005881670876668183805864374532714347107639538763229048347231037013247383125047378334925600645530551980257208590868659941335503215726070354187468526563027149570099313542574217416578170718274546966223490085832152711671811988894532622461401848644224801934811673064320889107359488545889605539785845675712298404208214275347128766704826518906729727049197785055170183120193500116761275653085033845226559064510522048332164009615087799065092826780893598228554588587278209914468904906857762544760662814525799035680500547729336509955881892080367432369957528116256883829475437685414515685886770043305445490551177228630524735614891706510633873456737742287648690730290200138903397914750550873713760890213548206445832034859579007336812248438096533197189352467999419154226086156417249650283298386935185096276509520453455418698658592873247209479555669663843115929015635144450897397027878246885347131059979174348316221022758004100848720811375117061111420874024978357619303222984212673627904423317905374758521956994657342677853770053841015367075344841613880745743641091265028107806362195434670445059643875180444106127735934467124391453800090113311621709626463790644001269405492117894327299794290586761649020353487648537794162558889469901101073329999674256816169288457343200924645172808644519983938450365523370370492943631109618822986818363781368353495288230581428415191440633791726466935514543412481652217196330263668489127541748706517439911343954972162147059857437149581965323219040339680139614136506357794635096728846288646656078965893403359864298878564979917735518353358953484177900478704040243085132411886876770263867834753596011339144645266481392508509951993146949426191418736838647946186709443980460531070782346599301981020306232421979474828725808583559429448326342010208819201126492221439502018101154257042864519841760517358684168575880653947865786849122740797442869173993690721464798186273837591474459159769773696503974152032014488860313387327790522967296925233415304373173057077673874962979079213889762120875013579738767433885935756784594473917881127217850721829665770444477518951048896344343839998225885035828262632201051997898123892890569088558564665003169749006052069463496557816852133999931221778022227141100005135453057027071961618703201889100278650334387175768641071323614202469629457475697783172944360196522589434374055970524717357293908766530113811269325027072098086286106548359261945562920806491586437671549414251343405231804061658169592282588854326034883384262647854018162354542792146263474823505627226956169478442788009297752587011001966598764102981368640413670474043704873121482300319539824466229167933579794300288241036104406247603039578553028007427245017267757158363037750778755607002683773303791873577986776260544165777276936056671197915479167062638709162104800113305143946259024263791843498631979120802185405853531876633024401321849268258407967402950047664981930774922614140451164765567992212448092328345679241705323639186314070294463194788552433489593280424510796349451185217656780301987401153288331597545457470371838477498989227517737136611648486784267337855523202944875764912860562476840177133036438547280194143361505081678240974517323772001412591409413462794576899910302551768185010155569139511822088265424567200082504655315889670339520402266378041371542630106900211904282051620066996351336068539483854492718178140548488304769906636580671463178460880488296966447433191103602593649447228482567812283255069197885193488731631496257257213336924395114177919300453693644784966761358946081171096824494748954188575579388226285811064463438871768703630765844411044610276239551519088978835327607616490751476628925731541894537894707003672907563049806337664975589435048029272720710897210126910019993875440152156978258189251694005441635109605165329608749714702468223207832974222569478421674634716959704389159865387097587239229498407369108431977624197612165890712689401141021109760287330030586443773976106877511663259347352223205448952456174363130271573343829573299141873766340840990079038163616507236468965000473185274972789800721244740325780680225334181628288741900009600237207655361462525265567150953869117302488559672058764780440666847246296629639319524432804931550948287001720610947779689356404905711282901746453212846611816120067043184048807869449469910962540313720219206178600295068801446754624536580440530619686237333967106390933026462726509940717475066892956349447692811371315959808245503896431981665773230950785347514589287082175948605837274568325467895028146682075707067715162780715042316086482404423280840826160227065008015295087888276535426996757171893092874656897803192002299338395183626524013992989238971015182995145566203640089614619146103629651363230756963408697510844710801522189504157346759908231353651401822475374462904618318346766566035884176835997941037006346136801939973522333599281310342642060246236218756088227294449172256173201926008647108054159317976441353819420479651495317092212041029381724401590097422464736743181578586379356290851272580006189735599710642229906796963499766045858382854876775518616935356685378892191657408504075349947384751517217700342428849532171029921520739564253236042036533086095265612575447821696409804576642447324344667300668019073015614263331739532228647636120340407989391186552545298354506572015885349471651967416778130336359751080491664238828103838059475495912988622292021280016334679659973594615608299608536905866838737414540059255067030814928723744365517143560698148290619382868547686850593174277492782563150254525339631714417320480590809267096740515691898502310378796577937688955102753663408142777187635624217113539570500490503859313697877284263473852491647542993307058545326043857451838353057116253031599068857185806235984470269768410979098704328688576670953669140111274437875444120510911125411029569511092282961763977622172934165813698106841261420543172115291534542420614795028289634645154832345750075595291599947154278304228637516676026650534790852765492019839308832011548262180550576569118043703218743767013218125710628925844347224718132223522159551976733480354968870481254291461062259858134062678988197418536209796222902856960948351852287824416688442732522346035189822658649377088186807315941903413502786194983782466191416465566941539916908536956187328071592704273891602596656669342787845189686832695588247672122049927474709278495995237239832354793688415445528129298564371903241966273866022964210720329421624285461354416028822687519588635368232206338694421170119876362000477647626874188585733769287167288964696625899260070066771667550621006724492447557462837827561306890118616179002375824969844857173312512801226108374793440767139959883596782683267595025208698982554957737273170081639288304325811562263700132445440393254117355020155217248779756349245265662794541827887978235047440912849883838719183714011394598197511162224122068324575482899006058535920072314024998038443804101687006010974694878643485990096150271929707048035523443800389425601251443537553805100090011105923240265932430506040879107436471478198600567004513544365426966762939237758476473146548267522118170856904180346934748980061544464289779003807991656429880370245967002695287896725284363505816434464430905495066727665444033936880349411458277535717921511076744517349786705012598605826476213439091234018090426572719188925982698675551798844061152901950523564517893807012985053116473330442327683062257590253606924699648086756333994291707585142065167230578660276860231381293600893683914970803676531040086963065505827821952026869905742817177291991763328704397080962331048746170146401797550135667068872447118735829480102713443511781835046031625922161170132746476914028360711985552225301849423860952527680339428517542036098813476963255463874837370107619643604434115529563702697786541427324459392149748047956973415194695394542356633351533045364879986194985657962152765793690736194313758565862606956854445590239939682554772596208979896300815102982515865716112336968125370816237906760280448960991226762441676348137337035114219935056370633452950364425651163351692753942486079028146201241867408990936924442166611305049803547660499464293779242174562614813855278070996794224739984647390366096043702721834941459682035062699776297215530284813081594932787356468350129099443817076253964248146223177952167447732997171838716606942777017466524457968202371549505815033115455110227011743137762781845106505880186816357076670134626650578740919542820565595960640481006388318923366492056928049098842424040424754249908650513224148045018539192662302061229009278760893454471395820032011039440607024012064391660064012140455576305704464250655869978225955381005842191867847389516818219865769560476457782027337338687961669914396857695125735010915800050407626559967417111096992933784350293016240124273829490017639508420965868354735945598875191007729200459501690937936504481980972651673590323318923511185832471194244865559566696174721172567608726005523247547022694970925388770679171211983602131550459830330980708033488243325380142391227803637373802839991078041563904833639065325279873048317445655688322983749408354524333143142857228334620250229112479103099749498673222388536170108538548002403176893019203592232059612531645443032529751041865589024605362210264564347094453500156832264506338984530307564586235197863845336603831955000568878395813115378674274464715946808000752262861668444443218372990739690996849435471963624993403196404771011561981791474473833619547938635089437673381266904583217502613321087444527809393546666164168190050224761188696329567738131592810028241724025756846236473669169135726521131389842095709172719569690925506553384150207991720982716911058849243742333473684848388520704489405420481290400388450343156717496015400322368721303176196390121884483158889513723430402430271000399887507195187972275797070314467583331250288429366046919744799278256687838575425565544438397729024368051479668248856590450534955941521163453457170260238196369490268769679213472864761161674105098709412913410195794390626575731098464189749548944921081159314271174260366248259640507430291957865697318884878308689311169428864722173383665309903171377429223979489397945534811427084991302680350193502862337874741041684040006674914948526817917273115593061001620296945698037469668092681695158487358261091879777516037206087250846148605631911346677274497780771951624556453269105487348051079582453256055805725246002300996357594606080477991785522022678897621671098159172806436602252017400182690263172991903866128588578713242447317796467722652254464900178739121651127397720488625718547539568969355493131113940716407467581027101450019624436821052181277781424729568670084493579707602225112228280314365606239132336054385604437226276484072723494067644788809412503121452956513258938753698563063455744256705310485643870428787596994170688531109008708895161452892576249434626485754210576025636332361543206167728198304801338400799400180084215980709400480074314874853919854691539927470991672165913227762426490713690074846769108655084663452317948929918132822989342449916672070526754781617758750895434051765969113443076459469418363155664647083462855609851155651349433115267725635100976676943637428014112924835001139776361986711652699706503799690951949769316871427478541589608698006401897107184692771780033881826318279639739080543938027965098543952047146280359961255814071129544249951276746554960108241020657242133810587199996954390814836588171439774733444702856193832831295081310364891413179147897207370905953456126294729001761729071347310045412758059830136137134704376624456399081165285602965794572194880349975527038927690359237244642880959698365989021725201247654316706316683034938578773125833261020200963599031759865467130072693975086719649463173652749815815930497586863896809894588486380830636926141323707633524130120223886914508851055652335676570156926580559572359877139181388811455949888598732632745834762353799598988951647046991346665657055541405288182069091904319939782350922921825906075176632114590813487896867963299935609831224410230460155543938506956056912226895044328530741440656770368431939907564357624719361071859728897899855293989910432058905589657323930724866029914453334575015241352467858986041978054881001411684423003772658684345441222804109366501545326756459099438435015165540111775389250489163724998631318016129088896005568729280709489384161646300519608498683984999137333452972574540150848375671017398281013059818666623932019550298785441235890619843003246320798310440148309821330330035410599733563286138983128806774841603254661163817726146964992300590621213694800222297015528384938212458953758297167156003742252447700879059482980666070882218830492758746734055710693899475212685164238009028829143911569696664054790352332670149006023264083984173001820498760577847409979103148419702339316612791162455626588485459456415504850883228582131536508690186815683828465041210743199471254949317527570013920266367050201269344305071900293248434431266713116037075616095343813225699138830158769566916808592118537484356629688533460936628978698766207974163184859618982115788946322246518130391571945491716938053218914737083874496793688454526998092225701617587964930806544345584906597945533092485488454298672506597376514234518890163661876214403876690105567864301793324806160118807498902684485827095458303194567964054386740337329475814432299706115671356897852199399898123323872107540856322522403417164996875395873363959706207031956322028821927668534378001067842786289568233424303723805771821773915381784758578551311507260161853303548097270955860423262048089990873522721337787720274576396140306317586156006688888176012581355643589168267484722798689307077124048997904172496673139843236332251765566580165952762457565103812039997613165702320490416975077537060443625257490025354561091251560943772247382243522533134286941806858340449570419247924820910751519021459107004823211819639852333245753485440245458716523883650804816814034547747415283117875875917029473068436960737308165999447455430358713836509807615131727341647642819543418925401311708468017993811753834865135355196050452055327383636652545229185336867172567875507313021180199568092145439787549572948137970116685494723219000729332946205799416970697291148863178581653187678860360528623382903476995734135295421554621241934028687529593590761506754514120908606119837660364897009589984162573941515396805682895048158222447380143452690454491896671322485936808748859037302124698168310994947274040427704343169041910221456539750921188880518069929600916575329649364852813098958047726890446324459262578690412383198699318761391801300013415822615651898659703455100000137209063831358000848983453049067615203074635194239411278952113299194451448221969193825925311503513377416751443170415638865546597115543486591850070281403678116986495724915106318643720833840184531614559929039044698146116394771247003543043633412595773923196584611627940321807310543330268643985784395696155817768585792760274130674919665880905445117985729221770668252865716638148896299243293149282875074869201883301751659253867407419962718184159424967757813837051758230331239695700951609101596498249053035320801085249655636820076116569287656567379187935694734273008249048012313700683703448434643870513930754220961943358667235567300368666403397279986450481708709574479282416703038741097816661286157028550610367417083314044054460003166177592166318590525488613289176327578598987480719384161972154749369666638281262738083108886965587581326775967770881565753810350875667726294268517892932733252356490184790660204715318499764350811694341648608327754226678814352610964394833136663502097338364725238070119774894912523160932379416875636101406263850670376558939120558501535457401893710644038175372984566651147269827563029305882986748981773045544651346829390892157498763909858470886535629364001567213996285172929162913627266475255285199758245318828498472055783428137962521512198689140340292662852705026483720314992469876197551748036485491998006580264832861894157243971304359975861222056256266865988016516680903025832410378910275047723461556870201120872827096301658566367783355879446621654027882868020234820174680229705820062686628619475695234582536345087886312359281509899234279020463043642642594229139414445554715176832280876754409505619073158661226660129253318451406461046191145820822145191376644369117541434722046598931231065319726870454825894669646867036424746571092499124181632411650979524629050865556500400716471907539492012239766601695965005095743907997768830719087909897663929208105240735731171509733118211391112329743874421934199415698954747049399980408111591707719675862257372773550843761523697185966687979306957324526739318454213454458922128520190434630783854103749326315191671369462516802312163185917379414295675679172427963244309555011419362443967287725088095959015177245207530224365670956456025326615776200010149596046071556659221333557022697228002833249533050719388923956234834931233225391380957483660887781590527610390252776969861291298897858316790772391806878585876421554666133190915998773513770416980632558187723739688354484422451049393664479469859794192699133330148629841261947715794729328898239250038173639189559862676017338638974047541839713140583195896402585147508491279764218368880243015170085914140170981490013795829088604012389090861024435377271836354857519832897879029625801797166556661093114297236141323719622924522609789080727046375782221890666320321906551073705720123618573835393921796679425622251222062129683317245430556720654813938596959699828012496663865377079704568674478840700525165781153107631145768294864670463901512173273090786276354770757857951532241408070137984865781112942514780007059000682554591674438904257544602730653088604467779690552009018500973474798670137228052626278389153007453434955723174230200310894799569292155349125172176680167481696473221310898403630837728122109935656002089262611081627988574227787948541731477282987135008480821890077510551766159964433497093707823045259802865191869496040799158120955918662411410238113946684628928991691416882500150848172602169557357847213400621482492710690510910568853949661102545095891811475602184779755192770815450674009574048955472774199685291659144306472008390322140695717001862138131818159540456940236654232282140603963790514642848052519174260283598964246108317453243709236834821924627769153737282588884200325789338875155014899801040545294763015108258475452261890685986826700649616008582441280287449862352727923046438272116174148721122399638601450233547900080991294057243384679488635127472267271522955474279687778340706919769387998236217173744845706160516932350627626723525869947822763062689477987924562902146679013983118877926946285684308917881172488242318129821417201587750743714751988194501769356490418441258709417254769285501776706624661425343861357798192894504250609988938484705843654982539225712140933833065967355480559442778693433624719285548714846742107647248031722962045718929790359487625269566705182253826497251809892847809488071698087423088605570622704715875485538977897129278155105855131354638679230651323798865857217873381717003120261138727287988940568645073433683460301009320722699266358386391651667597890737562896952998101885229020328008941789584185735238375761013142378302186062421197188575109111388634421738087868266877882230619208030624213243814988655725872921122967067919259908163355654278645569494103288933335642173404049990847715545961575673329021545679967756836975517201448741559635791450335807461418785653515608354175900786219831383310929747487707328209212709674248009138552483239218045283184594034063197406381338770747068314860712625522624097714269748780534695096272917366736343770039509942180691377409334538747324879018811129888836448551692261147588059042587561880184613909775538335471574836531326592516297466151242606174659708330878714390378776651970370202173646176044414400394776629626331212927496979145722009979518620785424234679410498109388101177029155904979291454418315396645725407704983282931810681254534413937876612744406467526680630531209673212079208409281921413754509378527739457028787513636799400893386539293658748452678298261617661872620655517292309581045288919096715503855485489366601176569238411285629296044420605338342210684077492921269169199324446490495435032745784152748040925447199921744550897639902815685562061594163824449692538514805095131892934148466478759785299106890168193705060259279678601715048553929902016704218111851477285359952166297890988510856239325459015780806305988039780507747658857525841877098076831500908846391657827303737119388704579629729826844882460319580423786467533714501835377534742755465777902915809462470184946898795452569830981791393674534188505734969580049687943676540656538537816508853926710535670715572537870684079109172163446339237158115217169859258442116159907301332816949174398010933054393077632095347383691081087097557965621085353981183619107006460139780158853230351526913819654267204083415082615069519750175595843101365993459517518276220841418236001704187644098769741656138411706893784537382360439777642229688199761378833939025346711912093202836451783550574759757357442820366431472258017786702410816744000225431069917408126222552947876561544154914952062527892750799165741160395919756437634131306137354996520168683162721596983419377218801758976970160400924144875525494034493103799216633460961214122142535544277024418075655577992231876340573961662153652777553886619495637330363021402704031493764438389198662980052348412220493814721984152915713682960236594737349776508530943927238564390047352202522239306096598613262774432462191756234194017935755893724441901235694771798351380607652382361666120516146683481831896068629204979505128587764940933723515786749199580717975750639955786581794799245057228344879919544493226634245206580690844717132252600447456091184801568916456734111392409752263587819339871414408844143228195106870735654736451326451116594600953577010887135309165461370232282919148546905064654444798299506608828068961208590065902136263005755729955909498231938704621088295652527109952138248136622405776197609408729174461208720782712405827523423722480834276458198893296384037368745551071165706150727041576855028551490229014954267221353117735148532389014147266213688666710466641455669847906770651511696090765871445208044710222840322825773071670235603485522322779661055125371203535525349413639826613355680583200582040879804050955591905611158019284505953908415651691104073400422759805826176504267628210739989452616749988188272132820782718591518757775754744501487685885938820170925542113352569275742339769080782413758316407004450786791756148960016912774338222832947837311402411506191992283434872307380436882163307837428666086573742504923106180499474978315451665191342226685940777467134327998453361961803198075453655079631169471357399227647395494423284700656658346480697431494185731333590513724061814430134250920284819574067964257020797876375351805110458312148018944343225322633979767542556085449344187566234670156383660240900228663923322465530420513157850835885798649036306922941927202608118072088829991061461633832254355426488799964786975290200308852147937590435444333706526862358235936565606203539740750830543258944305824542669150469866824347488926880825037620865502634596938386464084193138081482137217892843379215513148363487376584915163342839612972902963864593587092839481655569412441792821357898196681500036324127467706781011072367038692328672058830988690179191154169711671080242082832832017982814382471585635975202042842951089346725114243674465269183618146294630348765372548404678785568230773424402480717562237855830373028817443984809962500566139848338225526387484756883819791324494161477151236463457197735599913936554158611296778103492238704323543360519735006409889441502878273596431461399294634294202120083438233507884509724385936099511768872496362667161941449775629022217739570543541061240875522713854253071944947706119540243450781074807001724862166697553057184244714408961737996556448951097168997004272822148721025715648155143701058936881437920668934090834288339259667209070265968590909885847493567999040190774105713233291235742892403768527812567562395388620267118066553451266308783707797190913346241568133362817514342783164802497143434089579627022867458193302951652091017922465823087025977083692844304868802968757055436230803401599354116397441518825610891952480616885844667168960606874265439990105250325212142918417433264500441870175106232413143512069478348234153006485618057099490724769579290899039685590817360722262526151242517710609228893644854628613047752919378087512518485591065913129820269367120630111577159960481608897159031956656642519997460736391069264405532922026082793605714358500873426540885994670523506950707578355050941111845219253880169959545061324044859501847733105162387565701258596388449951394698481706266957319839482311715266293783242340208519674570380368237626584477420709107336797875522098269249328983933846754117930990249066492645883000136142691080705188881793701256039764975836834090114155988482258329440970841023808992252831093321682510471102689521386351912893036431228842099463734788853369438431635471867384935030070365887144837576990232204021594028152074059563144741606802699840232869262459355159488282918186667574856520309149606131239686603867356775572697637280268899082735953011976879565842253211687866613548407026081144001581939632141810819407688710960495168616324332169475450603224270473421691968639564483437713149988091759322670813435966182425419774249048271972287163621568847535357698214161162591172924093415239966266888888009147678131580722782274849438093591443687960860373699828566122051129727323870356737611731794640822887689763541768918744840823503307742547677168219700627845149668461807448630928424022820656605694638184286393206821202989786371496511664015144324191215770853490095172105312576213272727457585087119757999063216068590019005427597456172514852699430804429461532673046409874535497864001652646003165745841709683156154607749458380936453879003122496338637271740115428765156146467378744198197441128024836318808984260703174152913462379703131080686093867637863309987256317735637601417862133946287833905802237755857760989661327625881330068567603935773055664493181697681456182583367375450915367092042028864234231457810162313272286393695928972708576943990630910929761476116820546367476280468241874416164192117762794829891889296552210238569696245172582889770457211359501241655380613639487292496851063125161113064283991086678111120995446395759295592888823619695143977185750472544664629826950074324244794443248717021157536577586960779096208864443901903862313814339392823096036469249697727491861822374914042777343202729231093297526552258472341770006488194666106901499610576111950463769486745478354384849279127325967207839903409700039703002621303157520680350816443734872947507118613724144947701755368150749129067842965198412571019676311866635945714936672578300723276683960408851174855860009487601925090950400807739674337162657005975538175190773028493182527908317077622095365003408739148111448267713539227348686501835275937618150245254041399326846802942335786132184558002032520558087292776692231173333333252778794648743714649078723606918769781783544922391587852027122102991816573027295958207608383706090225028802228042298949467885773100371887243946556184842290420581746035856533634112555531772309513088724237764120209351209821118495137975257989815400647603542493683497254032100289384095043416316059257267783591321009426373397174373110548271492195208671695340898051029324914417076775044579837118104654467051714336977455045385809083914230694199698376238967340217704699380324064362048530247223166377355969761444403182422505205702298429472723817716514688362105040665872441926988689400964109879340609272948804672532489197609800408257161281405410852311152000704377392410319393301092473621597093771957898085932156722996833813830143193285098319760239890659050126051596224916810238038144424304161520973526230306727428526237345172187772384379758849773374713094328613904194484505001552175240111146153503063570609892849119351337021710976764829583451742453032503467437092250917940333398336345055228987307225432473952609650313177692470895459487816357950176266237276495345456166345495085773327700095360755044200322035480396933403129996344030203958269316312927936185061034339318865055167657127944315189339966779635020061425487781209179788479548019280607450776513216275876937507031794508637821092939335822320286568335872086669163514013772477486801484553687016247747330424181099160198132141048070452926795927337903435516038955627710207602493674214904238639807290724176345006999110223627277543958620860580549879452405740698310133276066697947410853586549148096019483045453633915852610584799772351083450066908852564811348915744937692028422799440033388427831788171884278395935732273439990008514473955173788215963442866135276145399706514452383140862740472799507348837511901730130489884288936845539836862446244364461224897466175743179861525402426665772049074002668401668642577638299092528889668405508568099141726835812886054099611340415834049289245929772490122008998497744921132809933894069374753243162854970461805652898209557381711831721918850552097076794888606652188517138744676886082185697136296916016172936796685105518414647243138161894971555492424400659790986829114285415872582448932408084661397014169266684619932213847993473501687831257037844914556084131434273953092954431858990192898289857988231821782395486396553655162045088638747827425016176462293076134764796242523979816419478833850024382780905065838370461792922920794477458302174700853495719724007171246216230780385391612387145607574807059092463340734574001700502379123754786826751385757603354361582116105719985583437491925575053800802742229962811764585494278164586915811541869817691217730568056537423351037208416961709038338883964525975934231091891138550969903936359644673075462553710233791830325197031068136954373040983539140445407753299103634473721229092617537383065645319127595086962804911546201136149385511371476098065135185981055176145295411221670135102383737210128322840512928648808012263083182613795483292091712261525734332589381614871535378865179648156399753743423532056308248469528459367310052215507209018465601831097419037099605640715639478643669677394136068344942742874632468141261001591539806405610717155357212447014522768448240098980088762978332909665268133785809015345632166418140290188307856746829044910479111868264774506646787295500478940011982342837504198184892744908288222668835081469980880614366070361622620201782835811981973124858224861285489689532671273283315601987499634712827397239991861078780045557685191455176492003526917813513768777499922229619380863038667631373099352426070444872572427994121990426827800363365453585244900384671086901612243047218997086441970116344557819337809840430752323848261772111524740280139504007236964274441526224039594745381142532301295897022299097950986120718083602409295232820205684784568401021272063540069231079616706983436477080162231519801839107970079419563065138691940485863604413126250533027666964079729886737992886636569153513540220563454537793943181172430990104918078076186166955915521158260350144562140469690920737076407191098514334660971919663602233561063323205126541470708611978783367475103226540597891497925913917862987411995263887212195784623978910734582892859553819610533026849574925821202332533662560996060234672864993951710179522084348478423736095535669819250990306430086161026002455566604861715097767278373797172624795803483852557282566683520187550680354604753596952892646706111183419353385589879709034941550437002154099553397116846841470101716913507821588019784033392700588890834766930264600191260885038253747215409617447456182826090074439102440947746205483503860572377339593311417385760872333294319963002758987026426807696417710484345592316225948724946990068621981504134250858491503775131590525320704575320512532200566617333925151494945989985825426672859921284950545965628474748482072025324477585876883502837033189524044318213964636088390764327502697120804728394808699383258324243898395780527469655950918219260991840562721923381003540080332039253663697257463433838211311595607640213078906101407458579463535002672910681739375611653033350195258004251490265443883711760410342417961698991273329280518281145294010645520262474654363067279776873039293171896005930113388860433469040137971003469510034320667016577451993891860874914925921287420121336901235097959598999807524012598993577984846476017295317921309505572972380030292723781566015635743605684772119118329142092573617051467659163827999531322302117955657278001608769751221047543616915681095489547746889240642624590555138592421837901373295856857697985751309380183598856842328454672131624573711267657281803748217517952844386012723886471592244284979088138156876983690008960761520973827848700231704300732352080876023864121632962861774503952514530850256518812495884642471120362493686967846743761206649167962687824762516533276385171634005913310192886967665298038116510610130541372178865263219749681028073273497634186836351327308278300324851584796013216375748539281365066112655753305010791981951542571972860881512936666259879014308789574371380448307697256542550016364788834850809918770301197889514809904251815425773436360193402986550129163794883416705560822413159118160813893669519565059507425133828168739732745888489713752159326391930895544930159174216604468499956373844730226185369333847365019751154652230961019003349386031532464463484171840995302478036240630518938144458365648672043990435250793557861959098126607686777501702836667663866171219080853419783526079061471456715965888253470300953656798752696392214016938540548062709762064780490203627900235402735968786770307997138352394268301194894630361343485477128673665839441629331293056153176550436485262431300011064482858561201920000943483622978228118280094451904636565135194897219198966204905162274118041497945313456008660726695593133984806228615721018317766213546290274222762706630398743117320572451004853364048479718198689533989193856550999694449275382979008902569931366602149882316115973738895610826454971685011445626151203884916576711277548082238147442103057503032060212701508151783575904928052700498548746789483088553514870046883011625857756374652216137342084718852504675276332388908202886458127192525611100591842453386567917178711020844193335322692944559642731186866784303250910468725521752162894465420148108568751737922613725686805107022930076499301550843881495337747732969838795902486738448843197332580764317780690648849621235817451763925437638229681134395935615764063448549336572706240521081859270235995236142026053150077468777875611074412102568973008564053967186224402261295068314168597326876619534763750226632662443299092831342383507123563301373168738699765505700924113142437439014431372067737125312087886363258490432708977001778196631220905187304968443097311785450156265666191745793373604856046721820308592906359907074364378484995950612578267781805719853994619759470911554040021944627422288350443550918032265601915232892511994898450527738958941743078150376767846884920235488316024683226370985135851633830092599521314936706090037361725879390280082027390690610516146072539399254894465159843484549620643033186283628203682989469265864605205490535839497376024251522085593695547475598658763136946374045562216241324790058970983322355630792311416696022894631117867285692905388936547100696678971437966930773746508286616275925514393984855652242621989628896820669043600302285393978552071409575938701407476429377599413497654328046648245222381757319509130808305960437626179160978312743049124369808949460838050930521558990933064296237834446185365838887205230180923863267720719078346765945653368110949186736862499353962834124693235450510184516857308428127570387386545330409163570058797104896325144874739490035803611446525351182866970742653485576939363564832655805744238119960676510572364299187869072719249783620823610191456473360701464789671010084622449862440761731016076582651052749124576213038877485472532015246372041908273644366578662185831717336345901622239307788923209653536728583520493159382958668588720948337432390638406659934662638033285423340722092693716144923650723718996834366766722985683307362247137039188886399868215308974280396272862430544294779681398339178042566860182567945269652177707593919133565332084089617076983227207035478693861360955700847622313755910396092256369563537965688493322116533667729231380355057268764630363960881301269521419327709605454915383737465876004028844769182936049780493005876583839284546429267335078622611403511030864229982026291732291813102104463157116490661822663871359394566714881112330603349366953578571562405864349341257244410679682899400830030348254298136645605679804514465674454484649816480752770090341453340480712128039401867819113666544472534737626306151449616619274030708604751567680247911672236821274289413035933595035730783902625592084071627327219335208959476410412969950785282594383864287112350991250433587832414776164758330492107255957053329320110459195240413212042991830160087580165399431475740100868731034143303398233721207974699442375299606557115727827281325415363965235173538492496571134977569940700965120991739102459777096393605717094171790448730087373971504162271394969145934715495323687825382224858374454837406235066368815944285831610777712208401047441248815798076782701990991156954617579564698564896015322886489993773263992034577813264560975858003977057166432751639025593807478099116055886380837023195985278085816453528247696406880082110623658272526283938699681977452658431100676853609629269358635725489849394863098602925421401534757446615423496333702039457649057614359685634766084930679791449915005296537964025019046853808631234460891143572259166147420727406123520100900432983274787680370553046149918631096816989822610758674318923047047336623408330823931179647775112437717605019389715834587448864555435449351823682175627584683147519963638269120853471627907160128203413198098214292488883556649824200683095296634942236426552878186883874814661536600884866893444801996068691965438583451997477796702476996047563865913241529068410894024323498766065094363216319930196233134274437818133917337667463950653571665685718838313055879867883288566806895800839996123677350408502609352690704022452145706865804508385928804411167174338347029654599826311333682534522024013335018922240557971254416961541383864819442321043134427996302278949288672008899679812662004409933508267625337760002881285514106770233946585284414633915517513047431734949752624988566374790863532985042662880657992155002545000564763477382065141631904719147982342919320463490298432803191143677293624053843607622783919900286737994605096394343214101584012860787331688424310492106366812058512446021999497387711965740649462457977247626966272711580624948695160570218627073331597638561096426320711357252134086482108337757250274572734182299354153400212275996138910161799552151447633567654702940416155949955247532802559047976010487035641821518509772313431266739329436735819453951750578929577596515537218503050207969937877899222281885486374907413346979383615820225177332318254727411934918737996021783754972900946076613345787678126436649039481964193894746856922654891255861743384722012107866619568949305800831170567159867857116194354501873963235220131692577582917898988567357440409166396273509141455398772306165608539091205394495428125883857364410226609128626890204322114223005930196746950692107543959407744740987598213950649255924061472797867269244386129459470224617222833625406552533519256905276384690336042374528572590892960815898654818240819424514709070599857686152137757460924191024847372451176988149623173652666311029552091889785109015817831483768118772338825181714784762577727709849331788755743643946388674485290777585833510019200301602296797213268954577773246932382744716591863064686566392486521833202290013072815340002339534057164453814720365899949215394998974208900355376414676267256728718721352507360967700452487796053549540207561474555752055654759525942288054524897224741506557356043784528472091748995837162047787127194628031073628203963751904173403832827569561703243829989409164595566623260804604412682659709325327429345202653317158687089750765760230437656466907105641438158401037922713993356795232284031036872097806146960355443670698930993910258470501459893132546479266378774697857667164159313198129246876497628332887405637845510617157502063186178572454247817150016206231791393008766979794234328887759523339461496838405968856956148032086231089956347362053480034611181493795836595980092856742794607654919624925423090935714803349580803222523863452251514418456069116219175367385671293169962344353749025666216148932301423369249531262917613547176356611843056868930135395028378876245568147550161640131140076136328536489550277256043331730443789585754611557963846403053111372874533390678922191386254235716251848753340299870115275259514542187841346136356084746143123017472861198063951124645302570716674573486846262127708648034341301157753114151916004964905483518411292812620021517865843448552800989049008007485085384198383079939161973318085041966441125436099261062499764855825063381152095045251141306160993898266320438728363578052523118448092971744868642919748310780210814600721738802443729147326518533851932072069481906376273642881294120378328975205550182657043071126158449888928964234843094839014587643347504524868862338094174769815025744819238595505901570407406719751692396326000393433700787629670224742794895936113631918642445039893689035689520582574590181082081524238932198193243607933537584577073007826327464948598279662998932199613015545879140693230296532719151711462900092968761741791583487858006982083627923480971100792128784384317082446641877059416577604165066308978667309618556159646610882478834293200904766165866970041313710165252459521219299272907878008819852280448115628721524360835751010436109086515852234411894377053764751622083537529417239690986455827567624123529237816174864846668264690046677799817636218327221808748632537851796822218060563707358357604871996286564946069679834350116056220490747813277495117141464408013469869646160624602570599889686200798940040227539770395792171807617531887018273677896738484994065018119588044690158171262691032683106689846599683553612966243487963156242440122552649413917096058467603209435541253448911543897910183546433784883266978543184810795369011137000297034917202186697019273994917390434218940739625120172268374345476715444070972324652376635402859170781395181471740784229898842088202177232850263883298473866009677740661002110792734151381873508353858370685259565881214819167116175837620434484001851946222716536707985184406880314526436257071510089558443654614165921168679288118316152086008747992208309055176718913758503419836204812868638073887860867136329405573524605956887499059680343476900357847830569654353406406153252829467962504912233831797474719079704662018114067888000384377025048431483888967258128553580561807075312311671404427267364106311987850724561432535604639211261834110780336218036514859602104134347925387561065428079005739899812012233771115150234167943161536081193720306683503308439434569678846509157557293885983906910065630782708070864579136165291047073758646773769057865975091993316352010800660534907354558991718868212805833059160497560273177000870719397646862564774872106856140962711183815253000202980414185007535811879028358455514507317365730646179626599656285600879730196263172808804583251907852402427668776467209680045809081506994001046580291643727062535198454781116193417082918359677340871963902707381049579909325989965109731767528103874393272963183783759801895864297999810747696005920844395833882960833147873993359131397087999038100377030049238735499087009108955048402649158515154479666310358081764285371625273924309100896863607180310578575823371324167356895338078685833184811334669748317836538268539439733363887825591506439315843279494401601696365356654596543268828365741134929732629774789783731227117425830583942892935102783096136698469527075041927106525057578815426137643247686887641610316487104893909189930855246324866315141092733554221868320885887568185066617809765298079686539516516052280374048105776513973785709700570994271742342970562733912724573932827222878502239225516396800357488383707724395066674796148939920171711534311867534715673336395769785115775654246220423184700217345458092625132401661134822391791144083992311303607580064340222184413598967735363024112270408003865615166183791827209200199830941834032983245076499455161376686685601311831482835265093594035514751408880078068780744762762500648785612529768757033021756408353891456129536793965991995407870698258134194953959401084593224105399737047337908660454649661418080651444692150263240561642818673813588246548646087725899137228105324637523877121369867304820562987962552185809372304939733097588324158792307822720833901939630084439913933550775751769913576883515102014511895000348311230532958159755400741273483298433150131429084860232940837306132253303175721649113782633774545556382216566425408817244938727160708329447077603817956013002981622435657505165781154665771055376350323884804618760234207041095923088129178583753687987475683338143007329790012152722960996700022395886806912977325244181107290499440463090478302246808790992231143961742011079097166017840957269877488383989445200485356530930582399526369001040789053032576049006545520345690159569599758850117575724453775087715336523738894735796201204711031860152717154535529733335087257782148888540074676375774318338490871747746004315616133599143077104449040310942830405134872208571582943570663294696752591685858096536510529236068245231443411682070436578201744234576172557673560993695874173714271813911622825994377322980920058465218480820637988710150912075535475615183907192715588804359020722802619495948819392270292628185684937508114678286721578554023896588702863428515461201643502577250582477936947485590409384697124274343771735585973949598502534752147052135308032957035891649705391769466454802030105963330832797256258810563800448053567693177379268531873004699767998667703322288054745344883151030748712023536616333310290865335990707868474142451201072325443119746974112778777431418529682670605042379742034517241508313754450516575108080470477999697704819429758617675647501564824045960242543266542135255552761460802012746141394606823638490253469154229866526747139177481731697627925640890592631331873980965052043564025052267420894257771441804596582857025959698771864960060530552702157933794139204157868663020238164746601079059944362417891472705504600019262448949400720130317223961576533216284310873254184825405052983775231216460997636633839448568679045610682029291014232291869874381952822115417325655022230576794605511464155617984559565738256078519866088011151567200200896447422292568938327541033064405451359737422104956503658454892766710779839457766741131255500107558706495439393709475334809212693694057003593734251663572257352664644416753833694407218623286194004022684031747604138810770660748263845234667825301260195143331446444008131196180600631614881259253061785720621268497179079343421293644988465595352749885061733177515310357176262877488248934814534565624513363229793556532581527127281936098579832406837665822637014984349175448720505025536575925731983992672768942054772451093083729582039424511059041643436308553413015982587936792110455877138805176045703713446473162566948680265661146407817900498227944011214713787761977490210778883361060301827250103519077015698466280889113724772686135598087247247557646593501402283182953190302575597452707090243726863355192084990652001698686762889976757327564547323193387861877050814363431783707663587092770981511286772946022213466664276749619092212364295764046421556400896566418250280502537607268835977275478011591428955477645910326244399407904907053744933577010665995790413095606926165677149094789520330060843632836914165273359942493429011875331959732102836439935848792632012418490774303653518838804394727788142131142680166694695723736546862850470440482036405002578195408825732679438485638751665885200990911774073953072043724672762895962010521731195512972427044008516846147382210821329214646814832087568998120630094321853666640746824528477648363371358687547186800746437888016347776165998890042947936602842531271544786550998488209854796584083050905872193673798147085845771064573486846837114905696369681677477160019129435274551097512801029268592468203562688102817656764330940581593694909798296922336843956916680736634531388502328573412290313073376561520231492953387097996073539574807604936253077324220668848561081405044726807651014985467300837184170050782016509998828413333048403168894578818403556785137755448823777666658847235085321857934767773953196305601406959271660684631368925381261938340829005211323859914798760252070153960650311483791065105976131453565119847280529121116741782449624267343118068413963195306365984030552700368083591430320301546523889909699450211228501948170358635787386350308269724602066267353149217383625525869716518770849881875966262935288521477288623890656627790858411009260807070524451301226406596866484416473660372264906767273062625340712684563091277778846953951230079775032597964504198837346939671542751152968847863544748146281984994633898223031142675407096236405675935727270088514727803133016474567974869176317536971196352708103806424066916164926985087382314847520220374398681429715498039489550069741318908793495387310203839186494948580486843308805652592275040026127650883164408823450947600589933934670769964982877115522754379538987263024053996051100802779222994645341950082592202685244165527121472613525406052764592467371380423543577733386309714916793150489312000404633495348425717351978859549729643423087841439290399190463387671074650786664749279793318619557763709192305540058733783187809002459442508167771075173768497327519956805019659624638525329584213015849411454900846949467933520518468129527898297594365299239870052401933759338833699818131013841218273656445220092018703201991470976294922010879735042349289822822906907420699080021175222863897902528102762175900589381629989091768290107229315350874430818058246975584276338506007696498288127375046680938547489320103604836591689478679970493824458051630530538319231404231769393869473090257246335550428570459695553030383034052874454753923716027979007684408756712283107920846420592301242537471453747521057325518984122782955367850162328544419641089898755940853040392755309979986306772894392155683690015331657741671652876721418987781590242699084122006244903843216961037540780903435193473669662014831153188462959038592980615742764308593004575557128834193561014074015216702678431632409285394640029584078224226648427362988793356952969146770524233545219429272159996517710570949475685643120071141921876454590077460458392235617959416640419716908880842962169534435067660500305663847661481012508102591103438224577164582120498613949811444566341186697339320906887128670319627373885900352807699952895336062733649555480484047823505005808799279861131468849142527975151551140727586236622238543849542282656864534973723069759314570183898127910066754696309085731089995317079484816051759609790212132163093395028151007983178540899188021874975784309932935148987442518680833579702322375240163384064877419636544113571625786206495094892753189849325403975025134848236463487280682313845468224459375523226757001428830018495048144024936484676992920875000042595526087175086376542939214901434368702677239391227590825618781790615875477355459169675627776041554100515096357222123356714738176303909536590480883592005710341502322911159612687315746730128077168641011523376080837672944636274929138873896985681049444142447549515227268999504135741048524523420090152671465018435151527466672426163401712426788917264764336962771642359973984217087482318611287883679100884012644214422778508486375488797542073441793213998938208205010385224416374274401706294839669507383929163152533201085529323951159865232864634480482519020337260977527663327711346804204851420790733503684384537853433725683981438357524395115201169034819841775950660241990143822372221159561397259319629857449480819545292368123878378528637293067293744660344083987950188635413232611016399042236783720084272836904943689475585062932694974772074970889192700901712887193841655467178680243254652358727532639972670095637555865764445820987629302716366367014294743384920368820083978862356616323200229684017978092190802922814411172306162238491736611992807210712418245416307090779870118514044307105823678645985936037401874715956351959881916442635502210683177357483808184845798836437009943577521502170624618734106648066159883237987095896412989018934495157797445948920532560082898582386548051018886556358454978894881985888443543130227364357858784720189955496912375548616429072868518815836318841228382240126272621159203335974328815974505718987596353730339977029038426624257182408551300351800856125600751197425104337310243116134711178107021281313683567092751157287124840054625336586373055871692134378385344458136775133198162523695440238208998576362452468030871144939855655960072071976226577995536728344243972551389881061182182310040895157605126452626017628115435604919372248502093157702144158704115938106204267675162486623215287703712009959425795629621842109008661349387866229491002062168296368143438382105535748569158166210585823213049034798079802059278352596909017681372101217205818089776233384392829073025609894354544601514560252342235575962668767078304209942449259635546924321992938819021135149105531762861312448945383841339316773122917621188623023613238444237001482686702006369070572604478494965078288578920960500181448702395983450082023716875967845581081776297138330869155102429754094759952956514991106659472160031675176113176437473229265316998607536196006176633292632818209570350139954625061372856629867976078447535756502584076410557645103785156684584387108468246375115701306289332962754565339122179576977765665868691496483311424639438153623077109501675301258010803104847596606853086150830068236567903428650209103420409475312760623636660160597058667470835411149631939260960345274459601410296481623950250133541546627692543105466797449869629645116974385539484211999782772330263344905890911583136882325503479987190696520037379197910110486523630043964655133654557387145048338361555198547359510157265486247627950596447932847104145645027001640111277053296830006452337411018590598710305768590800921898172066516416779780433644514993161416140525351302837267621466401407281111948571436359398952753705921686514243297925722480950656349842790246491796903904575150057204556371312343562119880919520953213042625817924690571020261671250069882939537921602003766194570971222402421141794498036976044032291790994146645599333484897182033116788034430463834438840339694604555381475132050072266038732071068193317766778296394273624291717595518732766213319788397368282826806376614837598530209530295438563270133624585215624841232300747946588946006661748765831078093656485510754441156498497647748015862489746191256166801140358233193277671269459180612136368245903098818707954750526289298968003609313120099157838194053199232483213299940165891626854622965395543619393920522954776748543844215422125082889421666469183686176404573039445143068356718444232497087669289353930585841365443308792041342440282329130102924135665200799503523479869581124237482306973449118955631463876408486371344424312942445330410126546009922625391206996267918135183841939464980810535625039141563910074753754439640532063972792764166158509994165321502817500109044373847753901513869764144035762749043278040636333646990556402322528244052772701212825059225248927720392434456877057057194144238352611140195707084335133925029682709833181407795799908514380824792667683760111707259176261167762814912061058578127149904021933545059114549385246005842286979489601480640932371647277748417717363563082624315933004814190008711814332227126833720445014551711150448248054368078147999525205717376906823055022575620736505684524015373335609653355244630026952988731318627197971438283935818301274176449863473487473985349535957603269146408714554130668587321717795120184082744473207562647790395999771600710329285827762598583646221478100943986769603135976163788627870731314639183281729694630041391370120749432419366295433979199091483342694363977712609286849253861942579723801686509759345208098297902978301726210019901888164306892129449767186443698204494383336309622649337504823277801818201609707758227598986351734570985348281290391576399387391281193701416400525037380959488062945835998363891788343094415913735256892517272438281350575110359920943370814767730949597057205603620410677157770237798040090162265596321435910619753776814126851174639787430401768605400592593389943357359617943175802745081833591345951372828521628418213397885839784720655190813444160510559486785561089910801460449715946268687759100688478013013078061296353862728583085760168199879040930283051996381157878741836306458674739623338663344523900620019588615128731638344588570485592671087006753234574169436236090657844292432107508530195406569178738874955612134108682561012229109539722751179174973950020583047396920424846578157962796455656944037326075041219288158032546093012985861122669694910884538631257588890208885275594886945935401339727741198962625079607618114368160888545512635289730612383802448267366570369475900846394251320982891388600912462612030362707118419143268995369035409966383314904087955487517193241249406155675979666007825707677422698794300670315845147647101531062564819003971932249943655810854352186110614713521863901351370936271946864110959998384400945157430974996594993817942714216768667930682839375605930008186597486588608284379734693838255945915058656092626066235649533673833336252838336406923540784080113088456446729965490911266029164631378598235024302011971919795385339069386190541979840372712470964615868337836098050947092317483118525027758371098652924007729637608675080345862714525462423670479353538771619377604133656694591374739919764740109253052557802723826993978598117123987176293869918179312668756664699924230294094807186530597606541876377255307549342289410810771943740503629951851170711456390463268687845872246725083990716948229816975061659235192427758431996090000794471537562452556716495378065735707242477108219040452053370574487601550022090542977803381958535912471521022373470547670660177015662781649492923534474330099031551786815062782808829006362121510125739901259132209976715934505595887606120027838131575044834633411772261442804980520098582514941377037949594074102301535301393788915071116507663463458456673498809344739386920117288496898268463683436706074188096901320448663902894535204827265278671177879046201560660267598136119810401570223442299470203791562591217782368393237896112924412817947648369395967788565492317862332370283174634093598948588153671623479935495411933462039286408801189174576308806082612501541016386837940309853659029616428221401350721507915089923619155084464781550164245407830432943689937034582121617570538530872204888934657635285119276230593647433933730848566669345682209592492469288159796938560387965915853180693106687565148875496497954587107663150153140004298690425428480260273045906788521465356378520709373290127604298737530526038642068544762817115852966645032691528823223633128368122621879496832084458906413809362815256711003262452363793723912027179310448664277592875846903551881848431124554076638293098082965137358322715973448079468223140433458245654380019533184487530767564216291483647386756987779220457830434355468114918661279991076454610707629022354424614685415587463806683239991916779822689767551048641358684881267004506101151444227537745297266834295165155189391009613236991590438250588985369619830313599460074537510930675485325222066486277572897664205936042846659650965230958072945601054146615922446298507843760902241247893040500209485664233515411550264172047212315861298856606036055102522939120149967496603222311383142283456364669168577393573329849925319981612398631471218243102311404156758527529509680681431027784931765581808859176699319635487097695565969850556115811092016133947515739140707620269883357407732402954348796473496988232773400431331100258416260060806935962146041521719478343206353019769259179035991550195452948618252789816801377580379123424218265514959687506337548870673695049807839663311702913996951155689742467231351682780311195679199338460772406926427617398506308050350406202148039658965447056408482394282642631098503160994221567373097871182967155986923953854336809375501421523015476788686372772466520091523688539311030295602362300626821452248487359328757708404987529089037648051929186173897774078522327681816591847064474739554954671944665440449121074617537828681258600062550977251644038365133348710182670180808635155856705343738317981441372911464596966389940712894082413339433377246832341975378647591449350312829401636679098790833589826656276783856036480761046443371783919139166222953776222557937754407727792976775327425895122835454024581920697889964907647151746377574167056055341233150705840571316918115222031121335238682631080858474041999510985198962659253975894525011646949401899820088534526020665226205814675187416565749084796685314372196532724248062931000524323201586007667512363814456951123153978902070688541075958615962668657608294035828506112441533127985393778773031310823745192594304499499720499786606406593917266463687723455664339625724749687852906472878317869930629495559459121026002669294020050849681385256771380403677957765174970421819961167094937071786666392478918311069423608803569822739176065186998116711378285572541749719653250835625936908679124782972871547413279196846390562712405515876737990626534235480596054114759008867315627653432937256819708519517037931110939483380441837840530114932496071772681880466715243436955958305358156382707069652324364007199052785739633861974660485773435849275915001468738812019216568997158416516330515482438450427245582595217164584851242197004715243350778532306888844905509710243340940315013271182181083489499427263414399606833779616757449817970077564635293608848003987468888734269433229827467786996421963044645022834780596477564731266830716853142751497441441304656481606064798176027285864412338732748177547320995117863431982167492307085477507550406702016087514095063940738430688010973696564700023417373037103283910013284251749866027121534290792610613073720085087547227846822630751659866430273820708421519550042688157273536021403408221991323760479503888039161345655652760859308605332234347266209859108811966325774124318585909335310674281239319979456864994191733895876710169378239807396478408045424714327327510761767390255573517919109468633501019278665217372979196783376340669004198847345534538247110709640992709645017588314364996498611114004603824215296306314722197653631188410064686867854942556038132258965708549602668816152939958350523953904987330294025679408005629601299281656012299485607383909254942490245847184729474796993847099809104786395005961289615412546425870319226191003660846191954871397032889600756420379945802043859798195610005149113024289667539026816730313969080787369004219882045167983999490387115884777908644171332290606461068663660151140539255582854966698954608415173102387696152017429532635308397032567785719829037675762528395938024114499829839732291022783747955571655528585720217469233961840253546533193507531887947129847484921506261335599995866723311147276212119303953193508990015372648495559239331502161140134798696406329496638801824985908032911042804598930384510701948724874617383169727286985059973820996696084736105117675768327666688124794666250349811812839588348180626297021177434365860092768946938500210850698599676933618058964908628446936174753959560996998629432837595761944862549932986106628883972626500907493451109149173636521277965238909015590427376101912656810132355918107388089405986708752792610492506115142511463896231302790722990291222560035761713690739305366861730198679055164201332326339311599827923503702494359827530713043497323444618014352955251360738377495775122273819271790037695807577628435588377665869144610680022476800938266238015390768881670189766920572592980239842156005247400971474969134114174197429042981461045233662839277101347782489452872825360172479196040612614683425428116428099900471301910053965749032052738274735845339626281894078249566667279941435729677665785290545556221529489675388481153104014484554084826606913488721116003910150945962534090819178979387428750716388393223871541620306085036051128128115998782587454742433976899351357244994899346614738660386100401491789882077786399033844438959930607827682034258828390971566547521794844172900697095932633187066658124242938064676633024050593241963151969910150855573562257803056512826137431280471888501706435990046969904586210182069726781561082464216002300714505026586441430610833551386712394268522848019789116744573577613506290478423330193415700532059097325461082949764274890044116357834598431573861994261504892688466610768203357980325300739151063045891747611606128475252897160053316659739726512119935059031711928588090343578159839548176133107716378244179380514780477884297553323909834493114918730784714272919643386282736082995475708876621834110528134531669784073968776763237020882955171385518593981158426256868526803029035241990002048838149360575174922413277098606187349272007791961017082467533672091256418374721577477962144283247131328961077280930229789792075275712226195839023830404349563963108508134294883180563928162882732628650522836304557164956855232556973234492449957569545006121950379044208742214328862166710834671551560501118447827572966742591268485546784362963473653770195442512220108163452769781802356120511613814350250713792193287450369674326391776259833989159800745548965756833943615785848532932037916335796215909946251321431871373738253058504158300912444237371790592238350073907776221333673468309668808828118179069549243193981345985520570122385107605772003354815473915823134447857351290806521716108987008527941279338025227073229602891373075762751155858198254411691900778262439137871427682965739198886099532447300556818710211532427438334274086753359063735520664290587545521364330530045751468096298078883491443350165594212131550140717391266343439828188082339455922911106553353049868336426681442322944590119839425998980304613459027036411144027581316864468721025381775213510967838166048108040796383879523525767779597017293907022276808250643902871414817468362010831873110655315246535791593781093604579755526203323299150199671402228263143179727458222447440910321551946472692172028359593488829758825455596835946982113091394480011155307864457867476146729996738277044290969398602323593776886717882182591532413436134976231263509077694702782357222008598683435442334372656536853190815761136397587595620251725329071254533450828121822858311053646430829706727913774965426824610878547153381165422406293553842983259464528292914819498713654189368670787301578331258604723239432339632988698874758657715203740705488842115329279511512747622000301501165597490341909320757366562418409443597762484140187478771561546729270991395903078470980120610856361734343072082673155654717842618802197620355782623315958775825936722077982713361164363263503742885633837272414444360037523494778398728463291763568521618557842392915225889065644213537872103032045481708200951104609843445952384044039722644358322072006498411371746111326569090924531867964106961539251468255896371789893570723764492256917511101191467020117452571615659515667651112176726089894315574629734078959899570805123127348407040418526264893658097575042787370219680818825515287895085755990784132292258523235891802415283298930783054194492689297096309522365002276148671536491140619504095362764057011198552746903928819783572828932776666803123407223671595820395503837044839672128026684478104487379488159480010008165011516156780028804304888223012236613670078312677257977740048450153656231057105652970119390935682338246784183928442273025408025154092538701176870581399724357322551693054968940593745202642553746277790226607565451398320046500560286323144747857475173921510249636452111662562617441260480923524109804882698416572343863962706695268860643420979130634255637586171247501982257620331239302261258959286018870251741067889281372588837532972405371560667102207975459111045067550533336984807490544335858344068550038244157432483185626346217217559663242699646271848951325849136080537326627834267033694237851724498420594633187737895735976641904273763006964570917751545047921542176381279332085307419504413988915780164111224241592730206307421874344180377727770224350290117500340570863154603901238139669063776813952071664011538559147539340548281671759645071236955016588627761075179224912804475046030903171133532215509592989220898200631571123840232832649873658513299958740417590825549039551691269563653320052518846668558993881850319662054646956818824551972317017487116178100798176685814770865822221461366658294933283496959195487918764742756793329206170471421277041183808561446316456083731081216464482673517189940910245222378004762926627270296191602308323766248411690884148142813336853080645910431627389600261197387212302010356626278872851612440478931381922715635176205943924007411096551338529743961691608716485228713549523388479782780666542198194449401823298359463564981093269418918127580919967104264843091879836451813360855288605559366205804435103548275890875303989518381116638279278972093398074930198226246677180002481365889310934419400822861841733410295084203364071793623088933643808714201374545008230522608835650850241163927216763561795554464593647895844026248377360145853652151786948646061105964572126942012431026181686188487781557777174487781057272471535864247053541260321375156858269515980698493044566539349064753736137844793231446527430913563569627636211692555184355146102175533467878072207184832868635810289611818382884470342685549440376058769377122571833094678609362680238250427231850438295461366969865080838044874078919613365086084644896118887174405388696963458068500255355121781266567512234698563894322296655554794003633627472196508148441912690138968273773941516183806503985248802159869117210588428458525449029871036339951819666074486664292530621975463268905568733283953155333733572745791001793209806778634705074187012696869444637238188711613137824772799854078340016359676522485606499275748215861830290987236615597417688972055522274821068132272094908567944966547082525320031563255329460215665239315591144800120474289297848394421160442638291972944119552619215899232764035354614525069361776523656654324909355860180510584419351641229687364868747962265509923071096220710388604701177491370610774974731662372332186768706936109893436166446473827568148992550820718344412121486231383029083894315115846716615101733727840169683822727638322029611355998587949835404929642481757308165267808015187054741883592775591980723702648302281556423155650677147461316420088783190670592180072042831887748067451868063502543511082646468606110530214235171124601049829157149287327680551085331400678910805897215677039323118110229166041911323048336866734056626352720893225918193496284348022781807441189476283475385637605765699982636706876573688148367291223494145259030040340614678329231044863991827717512885539751877845283733349183126777443789398419278778244393257212740920868573913914180300956540342121044835328713851918229203291052075488200588781389172499040435322684647739446684791407722463276015217102968844189502329095359405412130197019514676909495437434002417032726936594609744274350707947188336833592169431170914282464089855219820745821932055959036325234143992274543753586354052185731818557019456542789135552926172798898620207209788509671514529418632052360619557305836109180108292273072861478882522886952199467584623700479333125238494234863864769614719458333238921234140462663864513395564703681199538393547497089613702391349996603735075868785498481914364332802293128930311992180661567600503291648485101525518477932906131877970370779746293164376933044022694507432694880633063381484493384798874027523435897471055593584812213954651853870305482814532816071640265043491874515619399006797704876672664806779112951274758539841683656597532832104381498164140362823472309620619020921893168125245070704153939856067842327356249794096003929435759990273873905377968995340366542092743195386296767882289677432519244048313962396850143076025902024349700092090384820906730205075708448886528972727462317436556901029372284373303452663500980501156809635941469772793046118855022419537613157020473520995741968448572554084939773932087421435147577521235049922086559903330046321874494527174283825942856838626385783230604583275369809878756384604435468664090414806812579721957843960521483828976372673447987899946071918643301536807139686440743226824905677355225718015147091214963792572990250621189298803066268428164365951024513351683576197698496020043112601683695525338173757970008007555989766602616272868583347039774273797357669149661317513987031570344338114188343119153544856636850956760813832537510761074819032130653227215428795689735504293490615867831961963880264129858232444308665102632294286069314618104795707915552002357457960810381565810986872830948926556553288457866528511882589109226239705473855697937879343724758129052027293395888795195466488712363829615616418084108996755665191495869752280938529585392987905070033483569607365865684588018356100821688263642390341942276272486798662603269591585105057588027251567446125500539050359909100417210667723316374546732149764704513871382465406430348241726406077455234680191043404130370180180986887772574367361476024461313526203384296652315366873476196099909672314481447004377027111893114337631995054161621477395578545450383451060033781011117211877720755179201452353268178580961861050864393983669772172582409114990238054641433945239968415447682728362295277647947351225316456035968843288015251937910956451222593265182962333135719861995508488152152221272389700052220806172519713914586384486421349920317177667660065052127333347809224288591977656684151213982206456277284072912032432342790191981282486476611416053259781352126953544723342879654379630693021922368910480241512302809174438019983853213169142736455995978798686031156902021301937204327915202748976980729236106066064013466086313124289727840070325699918776870414714593359693482622814863440947882735511202245376636409840257964547700662293540673136974097978591582572490501347821165087718770573984873912908295511706420835964311836402539535892665619090748088806874422058450881285398227381515940410760053525532866704617222630825392891956659458495205739523908200661666369953948601186442938298086769886045914025474393350529955989981467661764064924680498697838062994009595338573409206397290143777182143772375450814136328268669335375004290261751058358546384582722208486289012297228015918462831873748372670478267284665164457694052828036060640312153628668234324466357225298054367967043972691247377907403519290127202384885461405976405213810831216374677901163276920885949587993352789643667937902651973152719961916962468073432571410448059386469884688919676546318976169268532729694712340213238872567362500937523158425266594040996582049557419018644726144052141681377330464998693258857731734499581351145010052424867342501428396918344280289740153450420500921559209306917889182960803050632635572430754462249562082752362036905225528229059003924004020542313820263465529887906090930826084383149445237979938620815282591736099369713960655640531127694232166800219906717307418600249362897012905804361814606850832437506092037393035587565642205006346160875519564597116165781427171773660937952232852100512637655093163125861161935138081439255968568454881385484334502891147918272236698866907036393680027596860259907577196442459233728880962145526150121872310239733722924171245936841962493899990104383531698741029654345182024205691495312907887342464465708539888035483410593815388838468887730138520892682987898202031403650618010983865652716970432404506066466697006923579194477537196457767805899181985740939670698117282209158083008995817817888356397492111709132141157811222369926784531293846855321171390988311950494955021473389916830407805500261008920172706247481968165077108737759559018045661863789606629083054946922237981556106109368251321496922532265922933053961144299798295980554054120341232596712879761998580986642626038630611018437186780157207940226582204321379433711193694908784854418718013286391990486355459570604301907916979185418586571198881027263424032044830806738068348148872787394592199533473386039201690797599109118986143057255582255061029894811373136068278612110738639063091350601540960385061007611437148215209209452426755059014590347081235424918798020911859271898137805811462361740190605332990533486867338228116551604088156881753518988224901314743104327932249388810559661792648251666323579770631297441681867508914672757879364638410305484983248992955938191424143190425021233499537150708268187922282959378451969407468101493154117056847445569054380146244065550766962592374171393897138766012515142168944920756700329158761747594731786842634444575050484883394609141730260232456258580337706201277514939173524247464001521520209995478026498494427668602740526345320396465928360658297932817424931337959022984094458828786569813666896067304305810102078544690245334539018592979355282945648286846021704908938053217114885149981100720666599787149523962883624459135899988028573716878036513553725702094433485676343370717403132791793601511152141347859644262454025327540057102931496909809921829828684295139303331766504025624947570903681553760572754570932232857536793152367018194786402558889265823396312914181425601701303228280339377516280143277813989105889861745687273602208573823835421945567857019628815252423319870930352041226213617646866076904998582842984341553157655129354479320526971076899525961064968166661932345032840319467904959752623182214545069379005878975437415385092421293715109078178486149004225414362370018470938392600379622806402098182194760108397692303168285114920815985141556492341305776739082486291093803916864818831138837974111200064473373150056805297627394839211708015830495027595976332053170312488384089240609758027081800707166453226436341406931893374897479873854018991349142080495773106722551775605711205778423219453829486046586418993391444916731849508172753779866637824268576559269834571637709504267000216997597880913391167008146486383018742543456360877403691546467461098842079537981656855900489536158072523865236513767639839939577283675485228030672350523876571100001833361219851638040625265134411943715034464504851305952045956269181902879824620904224298073957647581524693649667096095323240747383412768186846139257730362025638978961989289751932105555862353179448466463124961355202925894638139549088685674830237182895921852803884258352228935928244445150071791392109741995053023401822934142497636606193680790254505360831745249484000107225549452314668918090626089739923421744315660653571362193887218838446064283124757657846268304708814231295203707929233573079710544823229081001026427346232840992770465488715827733021714023619599045387559946930053728121223888763259025220094155992909520953046229698717053124196203894981160457896674553100762061655949346338655322973604654843440528850689253960441508112305334772661161941693239349430162779974908733798012209236714332030806611471173199037950910187917158096440781412780857020312869760527728156658697319958566190468384758352323198329124148599708382295554613470793546142534551113279180784897099734055598524948818179977818644175802478935724620004444165055708960035009792976192930008680095622192309389231519036588660939056285301838608774659962676160372100041913728555594936322733024094802132772183594103787842315197926571790248783900241877678096766950008358980624381625170639030678515804692104369462788846085223230396478980017448977028025984992058146295215915089588932605862124720753073377882658330468307200363013944284247962871799462722354648916867889078486377211858909193182750082606582942394274223837186435383660710391343697774478905599875347048504756877877977100596123555284287609528600756731331366635677249134242712303863717025392945678397371973007624547238597957892591259517665730391009725053442906070894986715076428474540773640988014339642682741955532909267011860944278732624842721175315986795515906738485418190284165743823207215114970938034294002976362410711504793036755861203746937354691726265182663681301789995426063625912566935371454152462515504646996343382096765513814654629423832378238258498689079828343806461815761722525361767445625834264580637507993725729997512056461485896089225303433796958933035010146384271245920484343932382864415437698391152437482535420266199064614597061975452702773229276614486187659598591299135004961396697413457976487948941952717650219120891840606844459378022785198279351841636119989586256991701683408505405004859448179245609342035949763984006708740307745848323577383311500383124947214462153604951953425645410755573125940010555007619903649067426555248997166962706688495424930742570905665819590877557900718795266728606104088421065137282543038319407632503563567768684513205822178207322272593415259198610509073377573625900800924891487819133822943994426229051714523295119195526627098879537966947613259527977823927539259224355281315131128311947860481057842686546372476240242050263154599150224518305254852660565387937378799242957306098918485360420819945922139290259175338778300145186847409479664513699317669563961665763677911668051662432560237273075368692392987596752249836262069833053938531997584343205352059395178337366663824939864003939948142054696497281295618194501859769242487982983429058428814286636226523899803229676603255111555156507859928761158802516967184828844634957392117184404901966385965167129756203508992471240595174772085252259455916772056824326021242069329352175386757175809695991734543309351412228634888125585283506724668463194353524379603552320667585548056573549190720076080572258672619279050507455051932693779408648563074944242850777690375255979088438000008032671213985354167480151609730209708575146001515199003646983739919473070095697115410694926251272800139753488331558484674602516647179561775935472468397931005577577586891509613817631492396544270389093347551102930023876413269154334725702058017282334032035529356627540066665949633079569428787357488682381651624252261832713733422360211503587617823353083223495821639129366660385825963979376179284297522764576912209555292969617468630025630372697616532280753018681325160690224495319397004476591062438360441357592633414429315657488858600014794278689019477734209204627657183379998500655705303040275504595865567881674195245272278794837426551033251700314348547220737625196591723209888732374445671004229603928257599769318584375413775186657678006152555348069902664662167814229690429203270017109901657150505684859929532931421441649337157312231675909626809328376454541589303188325880203451350370370696812190825866045096869096310601237324317098185916855377880775787006553613763649506024738972176889511434694038419947356162302635857990396687547251631282309312750258142009232400163256441662393003218403085400004998159848426480151916732096473937241803493269191804037355341909460329615850086614730545615927954259506963291928140609120653616177859181158038960700234392062506704852223542408227496343744211028578861766403041445371095325215092309734933429504032833035292173322252987937952135251234490335550437470842960306979705445364539504699341648391014782733958018302709215008256009125404954949998195737138768917387195173357286844020091598964640435339567610244646248449266246474405513160050985838315611160515237255026089848505279324639703942776586705825045731149055934461305071639562466331756109425090199984064951206699561264380497393421007123171182568625905995025908281840650255296061558893622434499647273981670106987781398705982810463929268703307726750063710784351314773869992463223694207865085013452584450380763425326644105042010099693312505405513609748587436731977616750781115315429752868081932952529597081815088877571543450658455998542954515872180147518778645425754183785017156229025277683459859499139334517697617454086725057541620150028744672672075999458650764457110936831969914869296290656630546590738017688450049018610279886165124374394742399660826128684009559170791791368706735625300804625024984378047396010710510174055186628564945447877289759200900531644499357245798743858352616324604416870059134299714352874579773193816817015281279259852202959550579875305622507306062591423285647339799120705803730795298394519476370519136419829211508798362030452624667923923634173102008191281349292298992892783420442184496820773119974450731287443227483593765291978981777512050794635214731921514328817729315674562134087729405266869015887935791156396990162355570606398744229584450462241743554303680867474406792478316972449748267822758896198565110653238196434494104641990972204707191723553593486007649840063713725766644798754764627705997780991170128123544615115783579395557541930410206091433680168475271215293492867176852734774399333545499292020258166239648335421691232086024610595744287672993877850875900996735988342219943350900490959628534570805653715235581086955449483337134983064853399897780208125525536920226932677332092217141646691124543131653646024830245895155591084698640252739280120801719188205436733299081289681289210666593423309639720229404608746045237131073956116738308986120505160169396330589621135519907130157271312496413029117275246159680687770493895513432035173320217953155063460220319537812871318888707917220612909338327844799958663272925599736103194927672573012143945499286812107875046322545378573876942056831588492404019638840799732864275818904237542291881046026501700179773115010484125536074115588964178292599656236971903580528727128367197522529302970110493213499377214375840321807238830728285981383329930311958620746178613610680477134605465450238157690421900193055635036441679184999509281134036347021779972355941535015701958925884357090207869857846374884272384110564008310204295313020628045219821736352765196871480309675309615826160838570643613995067409800841594457879861140006071201787099031616868913479682571510813893772665334140275561811588138817688703627675144743513228749852977090929234432558618192788887774718566194050208881733796159208462346402621226347493537487570863607176243828937414936849856196238874190387454913691932126437643275237522088084514192089908696432592402337831747299744706784945594965894790024643688760216846317598554743408067074004585789640364791004919241648322036449712567053402259042333500090763899530726191379489622058643447668132074463677199442508131922321062844143088892068272203168071669536638522487353196437073093876325533770358712079915944629388595918600878664061608477245612735177564215777513346564090014288940836993498969664662360173201893006342436955764477720138826953789921354903475926421048061853220109193469266241838427971942621744799921225863843888908686889278359709656700697388086912263879625094106240677583848288124213062295901781020228019212659664129636615399490122584385398949378658243249845982816192973414594626539984497900311543264098860544021677857917927748292854674346437124947203425740068939243511353865944946495318684458574511291303970612545357970042945151410170606204826367129036799045385836889189490429904343638444049753337730498243035765772568072974364559248643458735588977095302308755684118870222946353132069438035441642652334265110569984236922437154955479612594415466659389354408957698644817871795670302012150060296240921145688786842482721295204275899335125271086016000786355187471503294784844795541499295958041179915411488995886872648758884624781676965525253057894187436833005213093831694113276902547842778428169412007562519479513143544068392322851561875299245897129618360732966564074407531714932236892947477642595093534434134175337418621926518347519869711576477551201458678050638586281423982005022337114029095983643850601328016585715456383682863748992193680577483645493478877292654873192932246877173295557624929382295911962429000884230349511994551303863218790876662855577296085632718237197297034787317486649915629267249711537934206747464219382040518811696394573778589515392952339990940084771060964962482114633733208154785673353270342124906165891320623651233139161237356224730263698090995323249296291791208859252525392186590006605929694644602969970097178518259816165897615007397989998025147946302083230477053905693391248237845526043146149853388230450793933964012611441648197537548300119428728732081625318315116375444811097522567056504222560900650286815335046005865692443703083585502013994093038957231349210704174157611628568099970781178923091554513329856052307345631765389174424299065612752114859300699050562844052389905944866069474459075610255885416703008515269517072004730279315306034871328544916558812814347311101460944880298332024516467648324450663244602531384728571681764629658944652427205738245094659918911825508892262553844559947943820418484604407713853262723622009097458619044976728421735038219587540243020652830933306230527293516447179275004301212239500532827168486841388845247533638716418716542360013446299402457349382711516874634502505111721401702401831480040162509455038577011241143893633214933725393060185026603929185127918343547627289477495480514659855417729367918640538190396630711401672379561698315998035004914654867574672525376955412719250856948496837373670370016033245498162571559657414988523083065621944429369329889899919832778884484372521885789851687107991317841873420422878883776975171773120777721604008362483313605546824583660897338529230706301269249722697385625419706896205587249289247240522594472963924636041574044362641523974475991880092958140670190341074727025262521345331348932790982250997802867442465140328619192252942295484668569638599673087153520122458015385350132849683550428109248529451735542896523908282155931574147963066645610355084029269854160210310471267610404656131208206989994758617003115744738128749321793736169034075689894111337289082961699871170496085202566740262052582734303024580753755654837870492357459524259422492726608337680922302620494263867509325103749298732498881920494836810873536478839887384212043837833929786741080869391619294580088562357271924877846722640128821451534882395780405041917606874987825705909271054431625220125316299060318012071486296409551426534068047805673107647452107484976557538943557478909909620394045551887338381306314986017441409442544035498484061286677087542486829695131853611811020680944460572594182181881643184959104692311098106848865651791045270659540910773549300515498435023485785610876492249026521939582002314917511827448884270615189679366226521274231177360508947578623833853462877903215571060057685379159750317297642445641191840201378694062986087631145559195365959351572224761989597744222475931605951875816052388182517775503940765288858652893220198396525989036428756104641362609602206580101157498042917881914587652459459744003297409831105095111348753442810048875603183444855537668605101746214779823365582552647971244767462787176816620569641972440480728500442645612337198282738871341793953236249272822027554936159620406451959061161645099664795189078515260388620231450234701713441850151958105247174924382781609293000023397037458321873399075382707150630839376492183155867319559787884084066009609090508389365957838650074618263992482271589184717799766820515328316750188074481327751864104131529249467483904853368782832850266507913209345042855338295925485529596745915559017540614373309368987567916298138360297482980618937544566890115944902189340585361884361965844881014330133455344194362521989344810438539055566592931925222691229321353838745524758185443010033973462423589547328861499938719320058306070081858685338789385474230038325247312227772746306251356747969990032856561746465481266563551581777345426645992720476202828537670371842372824145767324111619348827285152560098067612907019886064028317316626297075539792918173517117912902822644586567184877464712480613713787265765985804320057328672968112087743688475841402016027869935908598065250624190552566471285837094452519296393095047249486132292052144181296878220529812466722000297985756774762221787480383656702294130186993155883625440992308876294572313848067363937688463741306411259826758252942976126914396689498193328505748417694031105154060927857353917241323154287864380061001437978806734145154029644818771586979402863368107134075180773380185177735197736140435578431936341007408154774809396113337914909800486275546764667384452550871277619079289284604958455294683805012416071252493385838752365925316909481306998014350332354722321186181745623044730817390234129037650215452533557579168361937805081917754806911824779861484403798574063342561179343549749290228553371735207607882996304941304208669319979272429620264147440337684665533880966503947334577620090349304172885459590440474310919679204788760402240522675009191674757756199181271323615917746114215433618342578993704932051165074790040219213441267079019478531258005757202595421019461455339208054911074144175041169696155356733109838895401101293675371784390181258360883752788673224971825366796639285778745716122515948006279135665376640959207654835220925667440186107357924001889781255021861917932777254039559239655226860576910878682758817142219178660381971203365921147656153703196617449495394920906842356239086426495383526761116912565553575019128827860369134188311309887564874904648187641072972870146956016494796422715991638369230543002987688846143547225074619210380895194323802862341646151947814672295878255816146794742573497585402947220254053621944150142972905021879395800809838466742443898019842510007041324429824768969757480765653695456196085444396231518688403822254977285056424734975900686684154002994721693834912378487501891082483818467167536956301529600186254327129362444975093593583780186578654792486978235474894446032164789749366580778843770245947799248949306686030398236555325590468391123964205939206169522396234292571349098595116765944185613770115823619039994600765318726551619550016191587145720175842033651205087638374548884015329514139364329854511206343534532828680371935783165556607704538291376495549755046056377449193334180849306547654819349614363309958689506011703681842969242207871510919248142746500174494415602250128866078578038292635904935252719921987216553619430868507840894621485327842411716863009205247595953910103019222912662315954342494271077497952395583213440475831166876577894444946580292758928003805998357258200650937999258240822367372320726745609848611965449944651037116468980623781892270287410909044027201304347172687082435781477612793645197379151050646580322038888758673466725554096499347089128662735820240675618154564158181873225973662059795424944739644790968666776252763637064439837285527181469559620469907570548932119199078830501220228696363024673739300787904688471714425697139532273977285641546446156348945250815984922990673442261949924685367688041874243344626472828876694609322062035602947292945533293223156365213821571537612495223046048016245855659980296857955844725430625208789482077285378800553142616445012579813918198251752489302210510951910464562260245508645884972701725756504377760067349402066963141583610886432952010316562144438397799703468398383762228628958307364384608699235530574156456788646173320864521603624535718450113199408821355498670725469063827100682859340574133263762538497050199041895872309389326769146287725731068931729875727205529085104313000023486948685909765876374094107071384814856370416998804451275033220827617630820266824675894551912661195278353902109616098242936301489399034227765238056957963198375502808759189166859426082683469457943352293133215538531887695273466989365525156053196639417801085144810340607679310133782341178258175497453364101170189567301107738166808561955195104208453913277025077818025634929782281769602746450754457792440187556000979352527788645901080039401873597952525598324968587231944157145850709628920213771181768404055388018557717840202753917357222931950784152604981502812761104056905583719258795214821363360320287992901362789844781252954695058318221967231566200598249606265534739843688371940024880717681962062098772113544598228281777918393272272470827804140801663690916654460796854211472140228744647171109022204492948691408839597322066365331741308498561707727507508314967440228011618576092549040188815327897995737907893381964562477775614825422266564167398514700554128480550600189137233756249341164112412714418626674001236749667265235468703034486191948736415045619322071360851675283134527716183799596195765553491839956872595180229715182630035628027118157308838650053959269687721358061192628960329043827847778512127417592894325857981097475544204351310006995712182728650560575821314111354340843813086282374176888813053056514334301302814400201894610718045222448932113153303968754061900664848887153032680311598010730425333659916382136937089855401951002527726006654317711294650635670507642736461608533288543894812276067505566452009611209748336266767920750044596779311223005681617325280695684383834792463544667701404457526753956655747204594471640436616092722494509412384029280274203752935435782353939280142693508992423366873568509194560466154431393349580180161058980820688309085307700921562116759647376811485123003667480899898372428868811070356290257452746922311433126727387904714518072679543988433771456574822378746865528429836056258352532643446949792537022480640008802340341052188076564175721918215534738018673451390787554129059328635255462646412012742567220733953906719282733854694799648613410784931202638165240957300878458146397668232222910533564558355155111292886114035344947635944574508783742424415189120364459759150090725976537598103816591909397814571524749875741873418805392539364955401480169055354643886796538274926076099877554996108205541357714124013129549256980154993662774461712047684688671464583498275239029874680258290813496466780688879699533872056459539999859475941373131060859537724899384839221588692532714447608271923257301468021084214323016784371300230055755826997186118205935686025354836340781418918221938724294559829417989867928189115113776469418523804196278311961748191096309255877525837971691128551485750875694329270836465085418012689688910677361918275283330169226760460994449276067751057475909911035952988292947936882523188204407498361442794067535664597661119672889778344236839858547318087724289108722850012441360822118305448912673441530064840120278352522403254199653602992552853066107922531393308125521464068117966336397585215592119594797714461863572197735914020550135012736559193813021073572393946668611786410737464110318953720256164932996914669143311873990122434574409356572920985927237129521506613106440002118970665738364044243129159748912764963602006900100621027916531182196032216259416121204056374093335343057009071484367878868135816697205853424880935270986338667061120106997413611367341455157016019631223295508218425516395174408150687845750089564360935271147802792591291112769290530337828783966584301638585479534158194629142563978196024735309241990061907146667243439465339531416502898538206825409966787420512251572486456012115227425780095795562610359565568687422928623259021561944608347234407254491969231395989475593053768111179730952439330916777185364753757043854830413450627607207762588548989818454449331367237039620049743455922905297921843019019227739602701888926901685002871634749493523315850437151412710768797862413706773582045234329128653810102926021920302226796895554280324542148418147457923829736284112323206533726723567197894941252527723462144112889580984228956477282478772782528977352376120319212132734198582196378687205418957694657146092691410506583505081755502378609863841931669033812761297497821404390670390889592279082147083663694511932739046400607999214375356623466030275445467747502846138043227932368809523282883575816729052849328107439972147081391188997873548155214044456849130215075699003628142798020457141948928499606259644262663371117219943254964041862822061099477670112309340418842426344659504884914982432666476549530274407353041435216921308794037439070095301384088030052233633768451847547882375046744453021518004874634580926366266496529367584705483699018368872521358518646326270971799337305682559112266377978537225594293036265044706914235485319087156641508980376378065474173921990184346346881170656725091550629044228911669562722531314503049680307268849673933330735965490805229331580881666772739948586391854923483997642637586142264191566711885247104079013428292782355202152618147288199652893591830861472351062893328528389435912112326112315231134401589126603857904632122324267480885254236764328879208815459097856936342681864233197301560212736480770542163489644266391964076373618413592491582040684028893002166751818860486525490524556704576352015104616324383562570731586425116418809325277159952937166500486262214633917646465952960699957608629187319644243132249535954013741895978828453364688632207399197437654817087241524585716957107132476498121756069410154424586745770355779155060091366732310416123945990408356824840496123628030604751997698189581602024694082969886754541179921846873615087831074276218460492009507560442544907006659991238652928775199249107683751525151191072082289468650725067191411426504190805073623417508843965887113188842795268788610301073752185401618851973008754373909912167207161013666733091052528284090850605093161025643485917093607383780727443696221079725269238745103649516330703529651639581373929249210196958324896294614209995998493493361422900338089107851507130898550698732591028551277407986232686580329347291406752448431038011038386873232611526515234831398875147618389511862240240720935906007357966644238712351319153590501772720097915639275263127205694175059161436582788469610775504662199996510660815036179306547260683358345328752640039534549831854700003289235457872381991899197908516583547593529250131443595816847499531726556388449065812280311946688172490706027079105121891714292112817604181787208497148116408710853881836559142980583541564738106748370061157639556385686478935183674883311018234708960653515107005871688510723556656712629397468016786778287466582398193413933149682674474556384657523726039761288297468771550520469085850275655461252964976996550560118199802416371780622508972574892527168378468649277116112774773050381249767715351414733857470608853434433581820378126981500182749644303268150826944101762873236837850103692071604270317450143549955806553177623221852890908435875878898369115489851515412243360512523870457681200482773416450289969843060950182426188635583894243256901974358766246080099468588586227682393079128411727556348128692205071646386233460536648493411300358305309756662545226652228833712567341003356692400312224472132945277325966088723282062364749431992957185343744418212150424523177456270670167587103468491265717183241924787326634615527201518545338591018777454823763360836888699520300992721571782138503480492946665063847554472042862291058029721715292328536503253064811129248524557919912939189819811369159355999529177129093352657471834535832704284747216667535404637050917196423893797478124522103878052633951282266586254612605060152413503796828144592420003594142310953142634123581653574345067835713171346770971040002170066560098795416606681405458772956094861467012898515237121780008674046819648780030047701359527130523937449874312014852546224904578846398639571628882021094849655636491856046592925021616979375785590401810100340994847524954207931010757857128071367565841050534506923406084091565733831771856626937186356608866100497233369560149030010983339732847303048522175675015392393428686076112052837650668903326588482438632621199616911716642309996848115630786049989548089129398200562894678267609405358138049976377698068871181903438237087321972788167912557377384025715330503381822548215497791830266115519744970497846251000725407111223628630869091547661506243502460632398781451241165441244371423968523297743839485164607744282501564846404048453589042785183998973814337288480120559469699681814004924063391744668652219093535483939823327198137995415853486986129596620980870953323580922170341227041007080125154645550495704926929815762534132376399835569903506163065270136832423929168043953675101568157738271106230045388425140755928436026519966435952419313717012108208985262033446842843457134401904145297154756840997026996930530735937202437506505924506820786155795167817060155599223180084928286824370467123369391475898333030022773083270311938751285416955854482107844732114989660968559561044836003118793106747880377084818813348650925915592407577346477989315814759761107294509223000578766376452836536890564957467304359615142838489939783136282403504826409509495353379644392067437209214507390222568144897390335732143750311467477857034786345462533535406714293995770959434954634502221649763054800269266425637551049809911470532397883685629430493883893688981447080279070387907176266555301985142261453900265968010499376819861968721401921405627691864528540567711303452112886007547831817897547126108276152338339959643799217859875685025558252164013992712475996114242234675255290855236557395356384909713575174140189308102602183545851084906754942780227450461589269725725317821047502628893678703805771858146951259728339125442506933137137729172308134627409353676211941555202264948708449832667561574847566224486777676926425395025663939201078588709522867665139379466646135136473165739437755824916590552639240887546897127266028452511233277016991703031238982077228559329745618440977792304242356140964078944499984885141500670642177443929748134599002041168033267301040554714213882785850006716986925149063962825092594113265786476096547330631380730948918713806678351054011421421661422214639245639038688167989624912890352346772654512382979067633360685884693891205940970057053164455291613416095814481357128822946593413150348901380352610125781363195352876091846020638896886720972128181425886674965451205248109960057204241344822532672501184471874964111416695635798519599239262926616134864062181853169671898870504063353092878198399327348198755575875748116893756872781854681323499098115611912854359038140288729575199791815539585823655817320176078850889464984296848599512027995975276864203716833824300880472310785468723782203438810270435250609078822331554499777862470131295802569007676996955030539474965887900305718018871617186497172108787616493478562921323876155013709671057935030286341140394816458511689155393218050042444614784633460262727980792882578247369181131590408087385294090045928297669837622447612285210906720710179867182944535061965144254329736347286010668253617008801099454249350769564603953885025147062705354993973634605373091626728900155993496811283502757693490624034063891675581127447940838870271280509587906023619290027394597156393375854619167262157168708121995231736775172047246397024224261406012717360133397173044524558459859378879578299507317285372441756425624322990072859966995136330334400782093296473346893118127012444215199243374889086445317194186937916222828757206463919682962508115429564305057967449184282883408942069713508958610083428770808584644568488033494102912567853822911614551462848487457482304333582373049797057692835621126532815207674699937419640369564585152026514526299902055586098732616267643841058027185704934481552348816278226247704546398715671873983343203454657838734854722982192112827473880709985169194805334948366112889267320037933518026287392068713931691205792051077463384420991085024006924162889648362768500160422436056622451347611728321683387841004395004355213768637336027490235222294896799693798596302131044134524981957495235697480083213045009842495779136692222590483853259449985202651878295362095707667054666390870920526372718520216451094193622683705054334566950155919452465933087928482053382781517327264531915892246459689232716361345966553788071888908041982756661908938229051628043536823998731513836326805528431377674541022058166757035521386722076551095459033055384607943184799654679389397056917198346803326019606485102293118961426077589401978849491772613062313593939419203114857576981818357802559916903237831919126211004040502640774015050023518339457991629078471708324108005753571768777646152126034428400461194002507834398015961920801550292501508803827373336081055516927003809932968323176893733968936770080600287548450095185758256953951513674431164722682321346828061429376166076840952259919457681262168874940817671123557422987488438630556999113272082675723061384584282703074128785972992668291121743330629997546555464888251753319268184649827485533727548014108089351163202081471633654098090001926792701254354017714287985232737402213536496336965474687268433755304892318521969955790423169945997541966002609127299309545538396740232629667676433447544174765990785366950809958632027308862408900724549115047265393987982395304897894052149211225581206833589136100268104017587270352990622931859807143872711822732925586963188577653074328026771288404424495114797409056959247202280362812776672640119778215419116113359115026483359780579210284167793815410127892949127472245435087215481724394544754463200604145355273801868514237349293145000201584278787840505993437885186928202032072796900864539188585721784242765261213103016353879387771696687562558056792363449475116902667225173289613487143596566288375569969446586147114806221130086282214356480738094327883827447339504726973082274246698785844413345545317678726403803997857752044847255752916655867077204099347515187179751628618937956454369627838961474897472952574862014585384188338432683848519668382223099494554220638867472139145464981874751706759541361355081184488694576841511457687460257490976760923585612203503414920279985356225982661013969625868777441587467141565545867231101793512395268859576636328900085668049951768458380386336547674552101381530551853522305143199461412887977383371537095064970658741947600690651470297583369077670990809225617831888017715782443777349319153373674818396691737662958001879193005517962621496970632055414429909080062417411884220220784660490173137246436471912403750174800857126548544212744834110137381961048992488986392881619134045013325077068817259802291452678139127502025548306725841279564799163990527749990897244047538675909277750169603594201642477728639084345875173271216533132906139274366022192325876639628383725196723596901182542657883510433765144535960475393384926673013006973048678208267667104030973347908625203631426645610158423626993998954359171268357834041654462703074159473210528636893895414542356137848884802345994090650391514253209671289036620149434997781076618921201989047604443573023370101703446901077546028298211967119570981674253827799449394266712495246546797875286797105444363795105212210475539911339374147862376760070053497598771001377543592049988790051970029842258668181724376873123130055070427317650051490152153684616815618348186328519708913577809690672705792624650614365237096404462441623226830710637744239186728990641306410578515580410836598522042803664287289171439018169618358518824385378611008354455514322444046948671094446488093008172570506753378003314417791745829179550185282883304116477708861140078982755699185540325111915180841807960749339790846553867603497836337290372392059354410064339479591947774217819173445145262808564788434447019266365743063655686836548945534123176325268479406815498669112484177333779983842977345141384577993868014825655886464369175578486958753113055370738578978313952104975755364028980331238115850595187897185392169313368565000015262376368063103191113222969382645788568096403338732857365354964030213916512044969859956150216749234555976206729946800289603538777561890877341489762058606551850354883604759762281979723716308706301988894476476892359560089712167202572605682054773754549857550014767242534781199228566762405246245558036225904279503259689523599247567638682743842247796774142520114264238516849166108844634178632087270896814855725993439980905237193693063213800055257547817361345612899910688138536336723909662471481985453851854915202582413437242254915225495389866241963585997154083610043645265816840556255234493228689671029608049179938857753405723585111771101892969178019475871708626338311037522995714656016974055764085720837296006240771345960717889949663070207115754879887581979141141372179376936037092790241087048376089016912494192166076777783468557902369627167027902655575418282413393418214861045744057386348723351202677564098015170111054160982692061712850001798088291012484446459588655360756393221606438436857864374693151665962885179420616348139485074694215545058840195613499239118586135238732964718483424149236871439852078784941482414244598455941262933885436860635659356003056064064351322305451225425382911937593059980873981045543559497506838045098430348985462740705450945290699634462092138863658365473270425728948965495070764973941975810157817075273850266670867797126910653426117262943148917471286639348172958461426189729064043452245683223729747402063687064833711283886813306384454920872328615172184810379273777008259061038770079033056552471603724207806462411468040128463233301067628982575815154731328469010416359514928570380383858725284239530452848711824234495437668326174378425076978311162236170419300077600959145519454941710116808684637188382823063524209450850293807120316301584054749755646271082061187794329020602752288260716916641676762985697972298934594220731415351163128508368403816890628314856782545309361333715581942191117639224679124062276427124254324158042305426955658638644084724768582269744677350452759402986902971358565225876972205903273915157898963883071579872810229285535612899458772600275653775452578328070036494870235206736604631631755415044176613811694531944987255946959716674572543329116257529739981331999056972662230926672126561530513828678973834862134592321153920820418740221489466664651703662653290216077480246289126961139534023659958648764847116149406188225617028105505681705361307915995778551455888792277381696498731363872090774570155881620075844034904810763908103752102233052857653025032181589421941246719866608714670078119134161098703399934016552903438247353917279417571836073975435126177501622712655335075861970871972504777310652298889031848531040199724166829550572810603363526114183819261495559477374065060532426181071308602647337984602310130786049290611958006226834773806199464788216083288386951685475622620841717452055942784711362984282907628904438448207417781857274009742844389635433315694123909533129574811977153374336885201409426568526907330788208858014692131652784816933378670417987798928631301152806530661064343884196524198515223599544338943406472522124241482829832138961053172110893651626783722544927565197652835843666998251745726085084904982806481291563605344854831631786791701818963991776296228361294585035325663829910027365360855786171267930146141621688640056648127113931817566376402666972747177738128299818328119307587651215741402930996825825563373541574270240138751007074059850878918650354329118362736324313884163183644070993291621694268837906875832854330805992241780209845396109281739211409607883391814602002574045755208891781128817455000328098827217917851177013227620560689883744533021173748092778857012042456303796505495960718039623134331356635878888165314330457877400692720531813107605574658518695860981578623807341491603881074833598491738586673029839804581225776992534173879247957112919619074648021710482982958474945012027839452573417349185681989546238346921525087298767900764596962723540459721706335302417470214975111425179148006014405962089692224201544077490492082723840638560846768134957075624630152709391379056550240567905234802334076319133669083369498235145410470177365849393209326739042957919251591039604393559427310893893377925453969326246815585786091938666037215306479068391789857278724043881110903219270678879375434696723104782743092137435239148590566652094055563914500509722441704956294348618508055167947561708753585753818618115344967721447358371270238632478865526180804009016593329677540733567967875260889842066568026469073415268065510148801218062663999786057831050690340703254344069626630747413418080987077716186924542251179905400879436065294878849782230472828547382679178690560714126205250278407288372079879530785197298652840424625364029670311875442527197122485330965036435970560665146199859899006529184697792856273073063538307261226219718820627239012472303240844601489485181585372650744837028008230469241977917627426008143602533621709692897323066614571676179553372285630389137864431696203815567028606839974012536297553619705785426965319521957674183655095474898030823032191526647233512091842191721112642483820219621051106770989559198531248622583733968383005021159963475116822534422827883880837718138343254657458016345910777551375661375497788656773348607341664439080440606567033795886258625673869794732211090919793117318883677705448330284105059762544213495567318043569513755317217313442481118677385143119162644947753537216966430600894280196985527294823458069525124664023857234027081460191827334308789260263652406382565884415942672602952894306653948373677554766584599699480002669870620921878279396586253685674607378047130041452167307883072140682845568520238034786597263228830847764478769000474766228470624542252276018870784164767791677173523641854247936712197763888125408690181912868829796733619140097851718985042079384402363947471697527162670302306952399904336006683070394129542021812549554888433711647477320375049823267471060414160785296511774526326683009625768396884169291262770943482185224123910891809982959796047216577566325468067488488269965426518823753871756888642745367317146109704679747463474834719983471314268289356401666557389853789153887775449709478759992792223787080305102757699738425469760854609365152689228401475418775403719035943773962620017495351172497833570177621941621862204369963264129817562482266420643916880126415152851647601955711704907749784051622144316511717243241846949219726499431349338436442742792789568367767487605884200600627466171328059742345127956947888502868442219560299350065920039455644541074511986038768926624675196146304632967765237316192107360183887347855568314351865515519390081053402458479499660574731006419372941623781151316501611422230360814733731267648430523772892972324212381001612404947686281166364346078070705465684018385388416739767178376437339447379128311542977294939647761855950030334121484060392258747014767104890439686179356395510367956700506793277256731761561765800922978982042565764235326255336405171416086467857874045677894693446977645488006654965569500353314345162885489580195780681404694725119505121377179561157989257381610864309012710113152028403141022870240021955186046791458261537511193160776492710422082207344691818442076548137393621016627383051628682116882389256789221310734443576904344148565039182363196280226980137795352699295569096702405610999360535579273509617392699728828697950695778241836022416499832918909204670071512633239723663070418275631987591687341012476482998900025380152209983650558474731080680414944694221400281395088813811577218049023387606400065513804374035682425517085848157776660019835292333854914370874308911697067794202490960451361884867096200459282177567003921381648245442892089173132099760452569737773011140319900577548560507965457574517306926672361606595698150170588122685632320248831881902855606760701790610073884698434016692791692676918086053659030859976318865002714036296950334195957424576209152041342113753090111242570824696930295549201348498006257213628336039362572469695620305269202400616711008403452998087983011175342757712566421223412553472039328300346826149119929308305129926149177300967224894215155252448977396029885073560897329901075463585825052692461534961983165233451295750951806660323815858864522308838474577044032036814879407514847704977708685035441050878799680176348517144358909930660987586375429357311927134444146046495414851337478962720812322156125264899494332792997799127609374673280471561555078087562597509156732656809220526071614338694621826943777841387203045092406092507766517802733298928262092453407539731318374183107734747798355306818562578641511803240561996023981610136591026682602612152098002037319988665018782215694908724210968305093219064734576234362276186941113009345980806822270017087724492564441461944454987920035875431726011032712126160843727211531348539818544453595874134135482145352538687258857217449350890675364050100876678997700396795882308228783417460429138060015325012640135587577775299654025243671030317717049208689177856366841263064340112976285629701348776335944565349854891870742467596716335904729403251244003729013833014954093470502017275257009011560300060498274998088147419289183047568971105398925372303838005618639784759389358097326684112895015076640979310481425392234527819458278226845046114707505883542755416573087824602849921461698656847982696433433239109603302326832421095133504199080668594111829678463935719070963632301430295344868610733972274150006737045542152863671871479946583898932113378604882387935350515105447246184305440359010384873693236483481232141785337775128508966114027029320751559966391757854946676629012197040014063424994665080846882189461346015355356004232757359736456461131250341979979859642875718194026288814074288308678412182384027488943043097447081742300171120515661329126779032281172390735344693373488269811468057942647663386657942898444210552422120388674328838518807468475508169490165416784256390926200365748900613568010090410051461399001589171014080238620136011096972699232710976209784268380603087471357578045986058086322208623766131837261523044264496167301464840791921029703421460259447668051086085861749992003201082840242423401892722917754434831441467521041407542517713342345857671210969919488250240505077030939468293217396344122903621863217224716637887217182186932931098530438311102055292213346427219861854938349751977206489440268067632306111567550489149383129519484369856539166298156639765347019969754187580738829284034917330471187707278534479240397211718660512124648979709843671632877336293672762048799723314283738306873900885378511438456198934554848422457551421596258049742195989807490217933273447432276869762580668326464401392340707509483898654494938259245857350236644698898250702064192773173178230813006767285574728003930601209905176340586694762559584912308020533873812916980562491448299975220874289910563327288621113893415700772783857888346026268824292618155217423572729717437966648011984393001300717101924086798122789162042581608404732754546939550148642374383492324049709455917558775776717459964358576940602970558588311367614697412049605988680057021022351413754207035055791040232646733123106497537823871895955772772464860809502610714269109617131315686786645688656363123555777867902253637198355277275330149377391928466280091173385075665669933307317969849323700627828154931015920049553644490187417864359906224407761597548378976853969220304881373770261759324096462457693287676642852734734990031541204972724599723141236137759173313449188865014272072608180045291982149759776955617907329893359562260217618473593562699562578691372334040821980543531353046906755360539431597327653544738112790250544229412349809020927445975500071287826687591503728959974660203419966497120594851014349369402658824265024031453060575384611223197716791269130677656331993928278551376841372672622928750448949434401024969865777543815258996987668673693215262042364867180994096399939533762511308112372364622501846861792596207888015249655755338485300318535460718910441753444639938797570428376178783901978843378460592332076492904843927694646860046524329418183824546341778117723606002151159640510361618978936210813048596498749465075146497969856280785658936650813530256909430033744850800000301940941861079673935435527931813792020326831613582975916907710717284405692694624999887837413163292048428149766509061129385852096462859412489971349249262983707717922617042949144966095607050300040024705576660440885358695475649902081103238186018285981623105901308007458748804715338617886148788506673795606457717824070735759679282093363545500332817607329666373879916125180046561224364663788346546581967543721881659829706905444650734293534359975684534071912690338972238028210686561376500943119620809435476053870215420204249891933714347195980571673260885668129987883105095468401686706722993459432365649903000002863190925502258801240263091828429836184902465805754242851395555439148624115343308645069558573027646648016418806208964724824075213730368176908387837949614491673770965003073743687436175770977619683822050378776723918613186739282190391084957556248206189897243601395683568190169218037456448688215920153744915486424146290945887666649484500318233019088319199102829223286227155241899460621759585799201185647765268726017561392767690854009114164803635210575869490222711684381269519074203956495489607793903276226189363624574111041246702697019693388174580093250193408430362758548757023197576178389031460442662214217472979259015171714173456897759253055926249086789718298226052607629720115351023292256011396327694186208216543011885735854929987661859005411243693962582768018210586355846493305613992123817217926232355814190746095367800093781525578152793829087315022057069438482118541121230357940763580807068036365018127882113241926594397179217689069744726184719489413272797456549425077828086485421415353942480401298496089635985538610618500241735711602365499014954305184260581727092966109031421509180050998048588598972681589323680034518209680304827389226179353689455529068495765614344587853786775649303309880645400017490606957136243564175576316028850538225884362907846937014546524786692090780287245562356730443361394038221889518637416810227999913051824103952723399469516741758180377036521042095981411789065975642936890764112100743210273776253124598831134391002811091343424362327305090457196026368323594565411485277871760618184209149951565954454776090853196260081347540921411036862052457593456004879057734814378703644582643265775027849327577103801190605921736964851305249142818024779168520244500640350265065270821510589558565481115955785345308123092909731899669180270977174255876474878346415708612079974467422402889047822974752568114720417217769565928520721839725621340463102469762949625001836120780547368017239290024732478603207032271664259644049181916439841209367514191410767553224068370311764591674134749948042371931549214647719383931659329009564168781258044050677383174405730642715393596150700929532598884557024311490326397608654708339347643066597754463760635979882370980320187799889995290125503298709627069141966166850406835246566575487790310164384871347370555719369785263304247880399963230754061761440448496320380370381294513938056018267497172472164204852679099295888219251339561127340742188851564528031707676696569667080682193137343085811760806533451659031463171361658834222993523769677688631761915270566696159457581664881462667991597492026146572247000640486702933544779750575878653974635101912649793187587693146758180299645506408321478694631580315839568945429093433809500263167943022023973603722088145209033166579698826510729283104700340855071943612299027477933692096310327842400333535315315195174721945653825571084161938481434813834163992555540619032142874343553190256044617270209921331612471732197510053686889028751823803166091701561957888095064255690850435453886479497834460850991368607775749458463623236703110161831978184905349903387042046805635569806869968336557877711664043521333192849550705634818912730386380431098528412246824758147614862262344171782498911174541552133047581903099058861586007595432915685597102853149212269193240309683256103654751548665741782879804186677315298511081801965898144916229805604426041532876900501618437300838578205970957715217077282158258150668775922934416778065389850857761447540462747773256184395461932091861257161081717878677014555259803588844960057217856623522476284259131627129058969745083595681593744382056705540599524793455011541298594001357012350177833136932408822881139654730482925995506612647284473143481445596313351067996179479772623531776888172589621992451337401800278262032248073241881314967751074168372242427528530937527457944887049328834529749221393023090570010213690929381074966838631339908406583780597376168391773892089007816877986037297814785709261606352676989051856905285090317252536470068970035649464511699212968347954012743635066165699728929774756213968018588360948638020158876655645742984908390249706531615022771976952911877253428319973982836549524878535659543219709775508223036088283640199521227388830122633415683103817153144627264678403271078391767238674203258402687986661819220942849007818872564082901395586036432919266427444006909501857516078508437963833990097905440629952062328362531457395555010059603181579479638982541811209747392853491605950495867941131384211276195122284369443593185435610856995880552151306701355749547983155370639573837744959036482115924133860473064654862993134464950691381927090444269215693443259054929090383901642844652093001666842508684687507605047274511201913467716634631802628678977050071056099585750412967833475194120970180670930299298388363233593229120264910018744023954380902911224154934054154789406309163038540997173806227026917296587619409598702580481128577993462192040577337765339466700451331294323162977189353919891763196598315349698487513266906931360594974154036327360840035650710935181557628477356126107706768444152777172127766493449886566197447910208794254587717023086940377269769267086781725960610522823128869925522054019989390175563497414415567665205731911080843045491295875076494941284259053816601889101464601750113943014684919578802459802565583954865838276997456999050718196208419723063565821520512391676528037705196109109368675088381990104900785272634454497371406543335843220843386402361950519115151142330170640630211421235977375469803019904174024332765681818031016277915184807160857978373353643210868808949847736394296923187016629509546941241769315555273913900252354529621480580888508422921136144312288521128407328643312829185228128286528761427838101064208104524282057289363905820623763769001908386170132807073405637916017654535929459166316779962600437190755252861666721095487363298653603242111781978628148399063804523051143822121894940877476822080875518256788546233463782092169019981547604374043532285055881381253869426036932277757354905951301970143033146266437021743417706940332256335496864788980633827928560836449503994766888731370565676127521039081274746884893024494530444064222245320912712445606227659558161481597557139078496394427614319691867900177559969330506216979804575590048890863720992011593340433264410509439768899413771765881147546301573403559071926675908754395347424731893821105029613229981029959048487662983136675071910705414236868367239322206918517818340841575831486556515225997504267240764494461760574669389423046430484506838953763771668050891939188291745495986584801717108389199807373347300064618908512535361948179347503111586232075466141994797766685416226868095118941274762952047135855974999849105011366902392715936273474981386627469753372152223436450437004751585327454973850462317250917583964415267456308171424216313721282364015934471057100065960949554060297391261976135700166552406869172541673129372885505695663248469249120219356711530444049284410754907547799737662129730684837337189139659970874763488595767514160705025257382365067334485898052899255414219183350321314276424347995076976778220143966773178975659497261412138221413168044630040889871441476126420555170867032883003114822694035661703563952703239838805782983757855792335606667866208616359574326909621863875643306290021043195391463206600495839979457604178062526924579900106465980275742746741512412816675580891523652828731726864904971122814287498235364364060595287288633256541644492350751173839058482112535657327899538339153984301085178675027080756084476494375640570825140230169773266397785805190998855720219555113469285847573089991487285972131600295423761299374868214325618406098487069174550315595460574130055345729585708186578411745970151166089907595994776876204433540514484940632027572021965714218003005549911373848744845772167323363150832032314585484387990445107511109099021964226074620089056184309714328320549613737843387876043714937151684928619037039553455989530006719217655163451091385831997634917708176712859329728537927245440369059552302245829872801365670212878171853785101777043383821612527627668846233998393424630846981558085612517339840864243857123096283771493930266634916022164130709058049922194577321574201118983728457256387200453855665109495011238101927806035529932267202854290836209726240701231884050482791476423615698830953950690889630235120705076687038307465021606828076599601870427948982243896362005488191126745844374953603434240275979538282164224000862030963623449501700165525406162827965354868861959754414718979345167480746690075198948243641910886623873296017710018066946283592320818475948465259136385454600240427426197606510810683681838818576842277889530489332308476066509312894836599171097398153689329847860194790421329103218542789085177720644467338440003477907716303422295630339431528400628669216136022247404607549654208358442702365682542075600986753307726787163885775395480763412685011026318511135401871598026991448215047997791372958014848942530441623377821798081316863766259875297132401968394783456284024709307009242395256658276991532770592519741929301759859063364426917958688184029240643215058023601307663782599452387082220528482513213942186368209506077498602852893751609315128782596743228515173374082006457936049642805160095959512292471212121103822024315994217800806313443210009275595727940084744788551248015126777059824296117411545271574546095299743076779129319382273685096635272264722665243460159514489845570553313635182543319967642293280236578518077235447953300972349314372327773262926781785306256213929823343952509748909632750185677845828571630507770040156627456571504650389546347172458616295456827995081897784903115232599636505935093028358447252176132093013362770165538364510366074825414595342650830302405650740390014069169326225280530670593114894499298932931302637280037354475348991565734588168382470436624501292335096187968492874952373577884759002516211510631204872422175808594301539314179163528062145356806953778554390370321558809199652110945854839381020668884546330685600626301053056655100969934051160161376687421975553153300731285060702334146950663471766462953249810637612356953102987484399464096334472737503913103581436622240692210531680263274173245791274656700915804514394695415251681162797276149973817707140571018050020162938407395867117380227390306911449638390417206401419375317532546044140535766740880013447653095272122412653208898376607576014203926554454867161194066878134026008267467616039993798501012979436635059432526181706387874421623470339272993837635046181689295291094555518525086231272390783338672550122920634120883111638767195157529088168053132586661024105738957102612683700232467568199837909075488432848320661690655027303225238545281742835372055142345737199964710615989101455490198856449971325361372703151730977690222648450740736094689128729887898439934801449669225492371618990752598862729812391140516211537898195423684891879230730454230695102354286674334328799290974212249083377516741094859058636837160737429336438501000659444622571507056841875852922795678336743410031634237806150730593080529686891755295698342144552051615561493366862099002226222573755736027901793469022046092729783315132849705922163578315283881837084518966670545822638121534175722870872376261459648925264854089002162871715577472529655317740399133794833376606987021243737029764891970309437464507414196744202102559297753767846395672163961157833278393806451791451637934243577214779270809854061017871727113822046168784580553021190401934601325421934565810420600416373912285784841223183662447583710813110929211785266794178823901959124778035954341212684322688043407941131371834465001781368950170936748851992306228852845646815358551843413600419126840744929105903411480035981671891655471050305016900866215905539211687466069860189835633311348135424316534350513726000681764026094709118499381984256605163233523792528109796568513552627698433559572943187582903321426661319544400537717502421260310225711796811201135489754249195273712657522762214517706297354289347509940595556746623834076226478946102407120454550787760127732745525253056203419581297423131222285091087095144560639605261859471614911645031217758313346204098131921753213553493986178891828741396084393674708465184012149326898305398037375687249131136383139336989964680583552561337777709736396210214348917601680646834346826835237043461930923459001926573753055407565378476896481398222380448812719196132977056279135435663924136715152748914280146136261878212561513274986299633919208481085031246130482219224549597845904007647071471167243804692348105719607955295654519987166177877556312385264075705479774474564427930804162510224026242008271673175940556047195424801982753521996732835136310880101124199919078081450924454967564014205948172938509291604782090828242081683048054164356823692837351031560046541761672668040678272347012026301047435445435100621129591795770104057062392753631779294196900226469699725542818920130149575213844957215617719170616537239441434437111437740025073093013839765953485770088649109248937651694952658976655759754847131111766439394997429970483624542965937331730786674399856661085076328124737190083601953156773206342737751550293011530783208981069239094894484823531544742817457693113460319786700097140157381969009142981935355686894709288649770437763016032258668978021361768182186351816168142738606976155428743017514383408970588377940482098963404147078282529801093629879621726964434317193339433509289459757586690704892692710630431132660785030484302969120154255780808220569363312142881192884116073524928210607031730344375507431030797661530516047975653036456686766184544647339161882759790735496951920809501512832440338039406629717453282766216594099879717746308599955879246849856652671370318697576900575181185388895495453066659778990044491480322479692146823627889446045787511332661573544809723398718930206461691977382339315996610084721696613511665361792252353310271722537373180071171061819669821257334597133661616089383537267039647830598819537591098990104965684252396383958473598103838085959124930511748560831701894677171515572681150158931828745475219908859891057986187406873207803123425575455671451108054426109791426746594515228249156115723341131131147599863395748668072944824310160180107261795250920557563776715177441503710012760539909393945887912218229259069722441165670037928699762132693241930665267528789656597524393615822181524171463020763221474788026966549568971293118948849546279222117519996127780389058541136063479052295585055811985150711722998086203487116260767656484739977715964591861115294337096863460639108122632874604424466927392393031766143906410822478776477835039786466855425436327061633933913201707874330348197584635977200699361193557344593987572942879807577313169794363123762076762022826534384515434355207937477107236278156843379360750643402780404884310537170945906174389966030278925895780859049433138366107027111327876950766429724469478566488123615773760124836574015083759198637883809084719189622153941426124509797436953783171484432546161465638522450715796196251360568664599358770033333881066639067801555747299828077444318269561865460534332250762195236265817368479435224845552347804733319122186148159550588395041325245939660809111461540911828395213391784988744558814531413745655521167504252617192219784201389514194531341689873274705844988915490950180738604721616230205236248357111924152258935132524251267798209330022003043681407336811449329662264394467845681937571286944894322782459245003328957315048511174655691303763532619555887095932136441639881572703459089885221123382014387071251113353817347251774870159027665815298415855334321476738795499068718153960317981205753363148103579499288287209996689176527563552282090234668204849809736572453445061474153199368034954707345901856611868943777079538767308385286812078690694594346691865327715029831759798524642337527327023259188599429504256276524916025750398670447542778258237878373925706259827553420500865400687303677570091002177073978486334877906358321092346909349670164051046357535360557845189308663775779815223263421137036215604174960140159322225296181858444443638407964046542312203740432234244783072275474501198337424368615724345526588855219983295716191210658382657702370610982324704483020873135437261501686312906874676701589395525273521697593250090657784495390487595037239008231036594977818426838469636570643746329581176119718748982487120658184557956960740286065883496312326293522417357462500092602352156937349954733060759127884695041458785655440396397647105850327576540328964739461465311124665900010570397502518230753511208492508531584426581240887783232029996528707366601252473224194425450992566922564585224701088217962165439474714966851667337533766713221229516694289545132405535830741892429757212678344026695282195874331758052025613586555892921482609257330434163355558799846447416576409849208326178689070968788829595931135067580752623261361449416805802449547733790322055184449953520100754366014372479389357552579240144601971107399524929986910102520668783451643400479080061370749336772224040241637538258283158052581819928595337988443669784992051785678239274861497189100268585045215169945737370161728827521461047280493366712752686487918796265899640688161248834505811451559189298075293828101720566863123280280758822284362962517940758074552656061780816577311930189696119947293800641930564143270230446501494428336890277338150528339798804203937761559864737369851398530258350938360580572288656710804817198904121306987954874758866006102084705505216953472050180447461273661832173750958512087910761743862868451823111074213596174912862401568245419344711321644793013468840280466155232707840711372538510060624311223379123191474598862011509365788833656276520910519220544784117338066307087712202936619948090913742131779305480000707723075352415973076682206915154338752805217621161068715003017845520434422622780325063305293272283931384961024692267910791395420151170962925639791159518770366761174357137279165090211584169078241071152411949276266870571798063332592376471850073318088341643820176008455595991123621191959806863380213370843267008990462280599423017600154777296638301596650527805194557326547670044490266439717006445967850729852770643628452621144339435991226958416487887709091413522053442606525157495095600477075966554641899509061861161264696302087977378097967903656902065132014425586415342133318856165904428893474566182614317610915451736090664183460551395882390884692182446166447847605642124500280033626879826540579961640052122022362884264749969211562627760061945476221713399011132431268504665846449955902413028017791556476224121249922358021897660682914423598337388402057104327815538695208990366193837922062406829301499356149796650160137958143050817832778298624806401000823590354076008123804081216138824066689287165814366876900537962545446293722389194240806302367271031227426824508568028714386872434131878052742003480364901281230978595704804811994331068445203816373013009653543351271933036322730958996861388691611622068171786420367227160375409783666747594478341510870777368422197767821225601282558928562659550725190558059763928840622322525418884235566237412607584191906556992470548906497142472212162638032090261654847554062690945431651432918049142099929389343252046312413713508777732328791356566419178400389998879228291899522176610896376484931613469274377103081954751893547828725543522736350641538993189036636468805348509138626217443386310670874719517435730865803287618687255936072012966729842073833309569296366474699196164772371746403320552005197422198502385870389106010371103549201777418173641661817571910709102500881330902804320161023984515129219752800880288643358746802315413852049353266242598228380308393281800360779219453910889191792837023556295651605414288104316751947056984337092114234694676043379543153909759434981778564654366778358631073646095067491738039059952219480073463162368116162040858922050436822687224037975256950017558901659648033927917741693033072960646690271382254259475414241188234020669440143789604736035613155763398655707505022534272741338274796723100575625545621633659448502743647038113245113625368288753091581229259241707558943708294978816923964110025903428465369541157124616871775112143778473472617298559896095406393381077474801500232294078216240401352535485557261955488954924851049261631783966110591100286327113206756966991595514470032338312082690766386026768067852167228991684077600777017631437295464954019523804718982122347760130735277932893436899234316846492250838030698348306956287051453633376123370920627790361510472885217072170940218329042841867891096486764265458345090922744228647045455818264109993329348784412760092760988774586352479665818568436505274378975999130310841394896165644793885497890686026007358697007449371392575935552258263615966554915025870255060863083329595759113755440346531534131819468521260243194758388144641516522962813515464269200278174677465329875166879799561117779025186013286720804897156879831371666267221443737553101510163942611540915159021402584613467738980296316311196324249444835276384430327976906097330405681206198466369748027610342052061328561851236109647117614415938849007842879260636300803341705314051493073605987116126252105343774389223202897447736372300638730024739802743486903914232342284904314178522218657763714496479140468545671184658430623047775421689754863568518314818299684397559396648026676810740726139922585004901087143195904362413304545022501028884625186939107308453971612408723390562624246927460914555180020589453478096246659770404342798267293409231371470209751191466547556751823574431298948639437708964302365102280875115435173975977073544788989942927376035269520960606009775057034311047886545664690884143588957424675424078218849855427965844886738692493389093980911544410943405708569383335006557103333709706582480318024793028103495638877920485877803319728334277065812401366228518200877408988536172483834319021422926181772926093273803421309134200320842874054462514418777359447285433618610821766207744048439137303691798418065534955979395296416830686799842821958386708601788831161980443722231738891422012474780680252165058221973508676137135371536977618399398175502260834909715613462582579072409571202690683081555023107952661402207130611553871035759880404285331355260985030239087920265174252290158621697474116921441017137716476223469827153241725148754038164839983333227489648291494789730175317008384476384532923519139678067045104870600917306177260572738737063163484656079675622950579643098376906746629035469288373778001021056062288645520407271115190889218484634136118270592329519772893545595841380887955134692186286277961152313608237993348960826217513080969771109149332167542061109163187493832684553383391987795680821945359971602878057288090806936762456880454244460782030538252452293649298866716666654511907404005953006255728883046882023508788269266460653363261841497047793568040498694594520988130552302658865446996384448740907509326657793417552183449968988440494602946289469343981872632407247991921727603179246341722235616225834435584186852062420678767144824330748537457718553882412899134512978817602414916058096281806506495059084207897184075497621906927091630139443345497763343022791915287428387135537143165873334108170504177091772906431871446739759569662421880909457524786486170122882153354522601494383716907268866339299683307566924035275727177264457522681978960203654494529131362208091842535233098505956445240923325455222081787667620004064057231736606715039581547325394203879453670953354132877767640337083556913038802861609941924784357559315913037821755651322981121225847412190067725954335477044037217412109677034399013300399411372441342001540755671208280009567847963657708181330270543887655694716478575101167703466426118086213069789372982107676384430584044946736847629123369250710607094738204651916923889864486182271118467001595339533246042561737647188207426390957671816391696229240056211980531467996663301879014359397068721399612187033201024753184218931356849679877709422389150767602195196768662080750548563179193237656658505324464799156424515787967459694110933799973424711298110848568614112731886188548362926387619483262533722466126361449094283276872671720046451429327173822974602707924048968579156801847909461767175087343809741612104152876346923800188418259684538398447578751525892213048934224856018266311762771902660434084620114748974898856938188635204557460223784182607752524013755067346377626112637329095594412424642952045109330448609914499484063945158298986863616598037371715307914915538725720442290202257821674373383886947919345793987486557294653701068291938215887516281749732932927148301896702510686027720054701146146301697494074613321292239510756190047553490387599913683381589082446005306169564734119986306575545852976525210292793310419311694049998913398257404563931363156670403361152531525566462662579198157263653908638008845690373198727376305247032800339209131583475392883986546006843229616841286249622465531408306669632640954948135732526331386235461277878227943911680510558707142143411791352348707095759431397327213343036542928378612879032744700271191527875869885436678755901834301080012230876150690572262317547821965151861177513488080037092911914638582384811921100256177321749070397233169211831789618199050114833512233125115901017027889923659162971340947802294183396522362820105483980920779855153979498543945452013061470273066909576947978839152438247198649583850095132333599332514508750214569518792746536147314162834542122957672877767950188885747203536191409623187905694149619209591921540311503503032229981816618165136055070522348103367431461096682016554723042505808566355843615184142683274231579001101759472078069427538754026138849650268148307136067024532767716931891511496107348366967624509172767799752317281683674276368904304078756459099381319622110823170968069522930864900351180911153437756693561505467308646290658408205842639076319952807050536145806400362802368824098819799130944026177209098695883317320158842921514843254844701323978649160025992826732218233649684013035897721965323784876887925377902376201848619581424463889564445567402650785330096182233187666019680186008270897450754030650142274403356779104887266898461061010799850832596834060684328632047129794580626299336320321930759089418283079825800607491688922516973833517172727995172241851840399198633769037504312227254433202751595766674040025926273776030354450100004429136886719530158539252706471122079501731250421844855079952324561898197040266964315065042595862624920714053910870056596004954516142292041622341252951178305596434765076701057272874042233553609182811842848377062785861102514567726356649373858722718284811630665922443817570655916999810473064722022120316314523992555883199400005712172763350080370783195771344620891431638239335036118906123056958295980451087867135111339414893276132358861499990313520992153819513590243043764699808562901526469545123788465464462099575604618590513696960068082976168347583798241175571977498192077908929136517235233561755932372809196715133003180798426919471465023966719583323844591448569026152311715338496831767233582025611760117257840132932113069249419530734435237914594853677522205593907602855293149977120993165478755656851019420363682089345155681116961757306106668440873597185411253886872384372902992525543671774391511654664450515849149397357750775780899846572628012595919493874908900961959642289796641525582517216551578147192934175347279366758886958282239456735543961052008735000316942332053379117104620914663879685840564768105046547803291098389336651715646577577631860262222425668020179642301572155251009689703412008084281922929390760020990329467567904534608525918329114631742487504978397294635946609058961461579548089556469945350765791167892128308754359921184337229911688491776707269862822412824880449043568773064219664623201747024526944587123081996442179444699139992557081163447236160123504093212183101147139230452621358337343475053806774126500460690397671992642104581488299748704066305733046070083940773911585616270765940066508630176647380193808773460739760545803049033183156354620236192486572026619039006731817322128342294234653345158385396509485116723397593875949715759838435020395355951539404669089347050000941252115573340749747080723800746790754497775027075120214913092581483126221027052013366235195258796584518914160407602463291447956926444290291761279390201185435606252539572354081573847206270236452513685362471090864609184884820150648886595578665617140957174106940254301450360539674541101241752619420638528045194501978056818181173356463340306727079254898384028938940006317954487621721210593250732024105819648929975643698938069435394800925828443106068065830230303963479526592175029783227770615037648429921414079150934286988760451654173685961805870338684246398616233690772401330369858971962845839028579711524133140246677757683706232164908290966569343816368380296845465657976195010386217247232324952170701937281352155774283448103939900479922268802395471023959834109982648048284785655573362946653234018451658664046497717048782338509899115474478800741724979332320015498658983533089341777669997610536305345059834797275101560362677351529114775238044319408745415370260948405364358523556806243938138587276925605175811731519069504935022473177547242624108633765278697933320156780233229210099377494906376456619232486178749061723785891144961686546824917081476524480505800031919918457423579999875839929754104232179408587783937536012904253016872909189241146524414934491209373591319883955356997042010878221157676606464604473442142393019307309519295013938487672185742384143621261519561116075508893559577999426092982950704569713706560800124037724598090057298596072295902204630600365279779732599125996098305706496707822785179333732329582662122652500179164938409879118639313264041401981238180685755836601504765176379069454981983540789315832959308606574585143802764227904122032684700811986591537921879852770388964313238188964144680881519483717370522870483857619797081998990144249617224162447221802585361456233048481695463350898613515041111044381518888297654921991747696077814275222442374243816690356710143847487609854562120141206042484320777682521230916169539999567589318170670566038697449922345399459403634856793550160423812153204602382953101094594950947754711475036857032403148183689023348927853883329512924877190602850482012957732383842627961673107308262019268287333950103470575181295874432618207578546323517340851066896747654617552767489429410502072823283118877408727789889410608182959992357661616819720451377377769579279244629391608211516870894464375215472533414975560745133755965771111669215355383668574243244446587346295966304323447951291634431183535539610495693974947494621569477074575099276915075781416897516059052373706624055351041842880555457432578341218351642477824060842588043594217118479964200414604787885556536899530463653805318508286048675966456953084528662030922333100156381463713333715368087994032528905197897027178863696342727508088593844122470655053674839600526867617936959995994351565826297090824873319018376111249336414368559927513785746855889744332891239941279254825030050675933202210686531229516788554672002231224252126628931852901078682265164816913913486521379604633495257082816398919720088612350626544626869525989631888666035359136482664141337068944860121676979003138410231202849571677934238226669030639193494233811147360654536811075902154926927153163827998075516404447810084553508484081125996106966770970772646365881558793576266294748767625011520179971410637572848008732049320930547394333780945125044129590562382874794069625772748226456007750550309269308678988203019165374484403189247973955406275826462046957652722720493898308822260048131087537740576689067359073394058579754581123177441824338145319075665139913791051658103570001079959058339063134111480688458049788885472719712432044371439189181375086913677956540568945601319270475773748358921413670825243900399041401359296289490995333835847835715347156264349629840010720037641026169546736612359694132686517807724002711957099129559124297166657168727928511102765260272137303831156497021962195676854303293460766376661611657432534452739440773967247080276023142018464299765683964442277566356969370919410927616183663567893724195741548707643050614489847937920352377522565363405339970489023820433049197381549159071793443236931220030892946915632929088912259991370964921439620152313009193317586541451922901411456355165640886396270958189755990999151827829832409002860960284463549256222606508441748675813960616837907956273377530799105430062395470707880698723573498812886188894320727110177125561964762019860155262774740551673868497847796276384536016754325032479529456035261583182164697664292977872209725726957026854677688992135883774681915655284988354645339308508621798893742134407437739305548297862354913716201094146980864385389364671608812124104586860505939134413908751291980732738534125004075794004997215896900493780089059828064267953420734374650419372979040258836631796813801456269427388305966066698270879879867322322802328558360997499182902395804959345441598316057972763831774153868058429759070883930508232539827045001741775022853552387378956093361512230900874143427013961552366530314857324980437694695660186514006867966270385366364162830565274961822292165868210810735274740796264654201891601463693243309667261413655529178888568607129696026066726146063659821379541970855893619808281748998749207580718822247319046244882205201044668722410203171605784850052991091756204566387248871822260200296500888525180669846289058566027530005470711068294057104805353459153877790757767279544665684769968819102322750580396968223772148569828332287002672725145121351243720692235986074490963773211942307258463882404308839582724618936229677253886360946571084563899274272689926538298616639597698994503161722103084546891963295074864027039644315105880110628584365545700673220575859362763063289191686673585698771185271479286365568951244472644999461710256411096059347867201606302587101901899522815337526045686344877976442932074155858520193158868010056159502109810313184272079221927848055489257186556899854406190182063990027878000095100606269942473186998874831484597206164620063448435307625861781141767060924696443129695837390714180129200714334489765014668904758138983957888404813851237770767589318082323570601696837610928624810455055899324988987130035181189259804421787335229920481957747462991235233035534558780290384664082391708619212384417954551062310735188134789765902529790299604967879066765223012299405356994355993029478399493942515097683345254698316181838831503052452151921097454833330201812419276698757957721909172019317279697984755509716773890798724917126242504334640752910337471382437747825576739198474207903063204417229501073424394642630146422838554665256365257068012444086264883124889573261886576809796772225901800919893268386610457064709286241002611643593943957705656304936912594871240615985104064759855398742515224128213656560751529502002547112934613122455315532058181367492221360094043399366042346051053121576354826479214622394788040130553091489368557587619863627737989671518986350988029452444027064169179704797907439663742654035169414567398853364897773928985078744738451085312238342328360176781811433217279355380884163076228251927567585660238395169693644822050843340894664037280010350881671118420992180295938029335645711914845013163677278160406245768241860795095647062531910855533053519384581478376611805496882190388439007260636563481904655075732972026489145372245198829285479060668298600216974230517215546346894539239986103285387424948040625005418569052247009869385098203303681657554870969420294188814968049034126238820167920585983167519896869065113795991394891792669811306470664830194181415741174463803474552734245992227091076076237440630508347801953081517358647597865672864731161418458841455733297189818206172553929509846555936422370421227804269590443918274386523244068428141017879729290746443246831627186791518346457032427689579851553505030430980782219746644495844666182130749908273810143056380563382102307795438633545342683879267252823620859207281675252369695594811688426920719071322385094535845782751064886319593779066181105580387882210642150863355322807437834708905901151541656255726375876901128386905626486257318455695914154225209117736739688964590802813095143217418597100770620498114258164938461709549425413151577383106012865652326537257975618086151651239057126027080827714722883119036865167019403238333636640554723127169320097590861275191731532946413441579317509893753525725374641030685163417789297899783903014579505659591302709122261643569545038955169350643019955084262623405665401727430581563996023655391033753802450313679088753411708054106724503549854503718049064207024474318435798887741741639153279099264343331030459525417940378110593704557173633821675821573097578323899135028400843969111421149511777674916019636840219981037215455624102377907836815788136359262599170946319027164742934224197925685019322028463019084823379616990299692735338783746502888086386565619758767942950688678897552880517500976922778134073759673311458240099594468613345662670803775389735149380442099529395987100428626794987167816373372350482538622064777412325129515478815962300935412733887273152111129353213982842442869800963513131919617944652826690691384180983163153033349272384118070731987709842149716773216784731772896659987445639022391568596027455867108262164243450120094764369701188453984431875642810726025607395794929016830761743959207134768960736781368632441525612735596013177362528557946495616555224984472989601357866551434927467218465041424415054577040203774210114896726344425788697172701596927468930265272260988522591500550157643692925408707277452135199467544190900237258681544425402928854023050767944094219508969081986753132881016046729218195371084579926109848228417255527873348119853959763198634054239374820140298288669128047886868458954636952507485935751397015353180390062913142519693523223780845555092208426708346454434560555673887549599522582896376849143939416106729958650816256106847419631732927486234565835728727447827591217875562287956832615022085148205026711187781059001812680315768779280904401767911173840892830545444743146353890378955727635524354586345701192204426701926313632712070732195818088897292277345124534431867676712486445620402897419764075987256109251556476032308464137973213346041174272231017034605334026348319483644058936520896020740726343357533896180405435287391173694922901540963559082376725658130903472427464764016778454911984060329295260424407893428618214760348762332950540626970438622176825263690753061915282111909095439472041962951906049899944966593058799304047511794065940706869870163128408161212195006753064836651231398242050114926818261475061926501228425848742318680927274287124515711384903449343837171782688565055640279181265314168356545718826322362656869918702263193853768129929097719477784876194617488940911757034406648218274255578737151619488397915424860386049199483908811451356919751021198918456277921983728784970790112772195968421338394780059891500359188551120555498487834104954821849267833361538603557020334798779862808634405546616835970074661003554601098028155061930871409035821154736619340521927250870876786652545243136512699288161621367925446880508770482105141919004108906499496968237199474844209901431333063740150692976525740643847864844308494327098641818589387057715106648493907725480252688131453623214541533334975341360198284716524145674411238790175376716014028256500991178139057255682563900261944926148872378719871493010765472192897148173190001769967544424190369282748006098468540168800645471870905214627140613739551116261315521554241570682340148364564517397092667342092280229404423476707890965855096488665760354130163500105821615039714717177767744203573177246865205913350694815629022877899103705333374065196376951797380641920998869355992451279080424885550373635913529057147577806948442762202546405310207698825480085910406225046804558560315816232087795661990185884087084104632234193941805291903808880332861891247982557270897215221287293805387211640040167945809311641740312280181186761962200232110721914210930022075041392974138855233651164497397646913583707848933791217065412513649534807020674556253252777327909740722496580699047201124474814353838483042539289770306289645255631202715331099715397618200050829925929024299231389502419250364887567415314826710256818567962249129226083814950438827703376236633794119498530690420615778276749829434902408725957266079857061771845506435470505210137267512707597623618369612994134138002211376624747806998019411150319064570773787407185143451612597853333025356709821027985081494483610819693004789610554746378666995224720090119895398130531621372346742531337102741860941525549449921159911871098738936365354103658108127705408440993951408987937336059233393133523034911202363596944484139910308192251711390116268326553576733888371138752225306903606210010563683850045920811601665796223392259193567203656008452006837934974742513195369228015323369384435669751822581636254597111517559739871887656030006026189190159934088779571922915461029908432741055775356118694494639155514871368954432695082808690050465684347469705135724169564261281988856369165290165311137839775646795747163282137657874581724911934976207024826115445608216275238626632978015719141619433988550747650780177105496104662295857631880800303058690137667924820984279744529251323829407734805430912772167262347863731743718123117166461157037766418309637167559631917211141726916769668069302593793573341022545352430098010209960444389682845277961678851382472784280742262141559425328429746082334239403905758034357253048449528329519899675856308891367019987431605633198526891203213001938896769088316525756673757244405753675886714883354414960259621925287334050114385232946417597962693359033618112857535788463594609820619243324055270357531519551924812221346916971178639681664924717894765913784557841779047726412234634960534504308129237877833075873636336575485133657882429488922928676283011408647729549234334246490386783586606678592215680714579121304269785639928997687165416861897125844037328076599555146980004876297214275554908535050606901662373197450224356458377783870309127607091618737136600755093561338739245315070625726514313112148664203160859973257551257734140963594779815313704879540386886694646059341964177001698448569169987575159599335613536497484263236906481106083553486483186833235007002505773765132088786894877155801926193490629122292064044551396401808414693990537738334615240017164173126984252841782572338762624079504341639184728491024644723044743907404441558982615478185118302725183287550790670376224172791801010015139400343446744263355670026880219544676735691839143030306459469057959522708321500978406132674251409109827764595474307905884670030087193502942277788527823201759390194711616655794765191161507285357438789589700078011711830521506421421644959927144617445181171244443202011722296997516305428550515158435818956959712537006051211679775767691520920967671878705770242483689863620539268431150753534657850270625395388447880974813857225081271730423511396875979270688520276430426421712505209850278054772769575864121575412082384475381219773548894273120991162112516068846371403012211272931023445628128185253843982774727013532872305323920109499430373824447316253120366727991828131247289436069892955597720290476945764053230718325675851988304757616569382376490773962945825066748975173304482877974190348866803634611243217066556565773795377108513496380212374109404922079813100717782187958063122237596918957535281832306160824013463982785563290444423196407862744080242712444596576337187478740754596324945099427946411629823698017633685832682679631491111671586276077292660527861449752352672376925464009874892711697719223852235847532928390465128011117648476474031854976029806759868788293996049054178580636311167513998036908275450451755664710922306801473071424248517051849477878269363577014199279638948543844205009084234297058637642190393399302721156799297861746862159348865929408683567894959973644038708202055187873213732526917338788321973278143943556454879501604967495812929118480660346661372630006699910820221557250395449334121697503588315422596746965405112682599208699061009576058291443331578436001575292480594403104380160097341260633445218690723359709548467952734516240221477882522921099285514932785121482163909374677805633740236962495003074972611848894552501115964938688187781064368422818128560624879745275314555575298183266600941783185424737022069494959295161422497531113937776057088669316106684542927350426757455607755865020508387836024780438079246149037496131019879110701562285337399476918282762013410035751853711163024641588210895436415577789978969864611346385422481779962421258855554038999970381268099951942571024329336673188489605403303056017812706789260451339546903476171904762105423454118742157425624628007837469051463166926000980128371650872606527280502236443290967146531423487250917209826682903543985439614498119219918180059258498484016222695255918391389074539827636186207419963405416795483818921616282912540591283631762252433124735813052096196023537099462505767565503934041450620812811145140741304695053355010600725345941074347894607024902440515038163356155478872807718437193766753338525079216478135947234467329521791794645829576913790635351679596863626439990403601033693137321090980290518285724056584024334560733563864147747034809985407960169762765499465189280496367543907167422770528012411854985775714692348941916097523921226574956838632438039364191953422741048053923611611833016170046815772783377027535892918969955007486373505310511125208761480442609930077051800402955033070621924677163863221150835174152650986395720249006117143106660314065257704450095801556210369276890212651166365329841584978715027532922091025965855625256311186102043920301369574361501550207752761348976977614112756488892077233297179418000272283147250651274931106988622327889643765737836927677873296268123763231488379643517987541483012908424529913140501512480484882949347910687219012071112892309375643740003183278534491391892762959831176781609218120281916997546496137874430427361222683269731764279316868707338987764715933780031007708795949145870806071511463037922198895916587100078139959816091904715545761714972347465848518730633244822410901260002912297341427174279747149436572333044549526223517153051858054801411904715084511938049280376886439403533822770995811383943215861588301776195942723114719129833326150995028331286622390779262388155218257149517585968946559380046984582900295945640498838781782988801593460047296576496015510276231405991593543575886448237703832074204378894337853470985378802322412321916754605389969309379843084989442620803326575542409907186009987206456765501736428658487000374269045561660989427578129408758539834501468561866068934864763952616836422766576090956911139533132648133228911392413013161395290326146510260025225457103094183857279538289520518584548640379187868676964925226895655777559367133358787657813531216905776197517985365984050346758159596609821682880626068026265939732255077655069920693231336516261807959884647725909937976967977091090958924174335673543741937716016189782846181772663962102706581700873622097687765811765360811440326017680223574226123221501002895317991392776652990008871223627465274207244855339562909370102691346837332633679799974339770936968293205620507644894638982338216924140608095973695406649401024869708789456346964610810165255241776985012134581030821456584879639092115729829905592543763326189464559663226355247396130513209257671283840984880024850618955995822224131318719556463765457194388128781118066609683177992074215579860161109703355015646044296630337437770470375597781712501111318367061091905025602526583383197263208783405484522901790671242336115638158946878023921649734135741453898099055231720987681649736261856109041282589930027829534144251954770408867308145633606020620767903905328572157731517328818705833493165247940910120425933483267294521351328092904076008941299973264903898733711950843713666515478913434561952171545584589738227555600429495016184848731505018479500773446920552915362975815376057861593622334296429950792165072033350251767616750039914730179301259785728236553001604443516722101630220376774741705210531966536493506599773138869490979365319198900308509882428233655584653546923782723844883653816115208373699142295366913333525893502845761728182992516806495262554052553819460661184770581183671574624913328607461575525158744541755082564954919051127550197969261452387738389267039840245709836626189588112086368841974907396098736719971858934045967278533898867096877010933533866483746106044593939552355879076719612590041222443220459083661600300418002338679543013943376090392253414969051970427009092461015969020901112019016719845910838943321688134368384440076147868547619804534214763808610602472293020844918659290433067576934274731504694216624735540532881478901638766935927345375727160303560242819551414431590136480648762398923629746142434565375877096054826521730335526222156269083927400560533951327263559414154984483594045057041667329018889993831303138185988399236983510834533527348904617270085186981665969184669263176072155955155493266877552440738998094402985148707557975579760366064858056160226901625324871286410771711691935678610763548689730829268076651697062355060533090901599952492948281277005204839686768126352404354312721054108207123601460964180357579433860892893501135731961425048313730490266229042258592976741020425069170269191615821012726715470933266131553608797209495328430682613960502637780340608558662132449304402399395105564618041426680825702666874661209606554483822250598752769465485103811687895630383396462400574700418027169637428454246538251189987607884324033357298294147636568290176585983045330311565714530518277481309742857645827205224760625897352288647313507294211901184130691551133239946871855599507680512269640959759008398602927646582427641567644277312043947880220080879882997890254723618547480390466669164098939610881730123167201674156070503614870573964910533340912296951880107146163330379905910309264933356148793791605527361777209534413251614320180428100690641262509711414015734691721064901996210717666654722837847175378577421093847199384652227106340415356654218506700913713098379030357861911625653734879332681541876633407451719174193542784262423120732137885897783378703582669913633396664281883413043053948075886565809036559694992006888711311767773275350103175995733978253873415845953212499246709962914664501923482764646193854950413989783119772762751157322048790016660947600571384614779323121725331143767091897184773429700323026132817472833583033269321787369284540200530714740090649589195174679092191028166548207424024947773455222273435291090923833610330659803098357563523242779047890667866054335716026537100597507338968976504405506413531808514526112193943744689041713184490844760127873670243864105895759081850501173546032638077060839765105722515796732242670268260856359624781597056783002596510213874372801422528885404239575586929569729126612069505340515566326027540375050008045942503454169310793494463094319410407603768087069403185557671857776707569701194980262868372090026406241291660360767310529585658534548196079569657292304703928949927704056536370256574998696522577075010299295475311844227217100274973543958223391092572455549669829307251800214925073300651075891851222119123728801702438748870637048887145653857120200611262467123961461903899265960844530296238128929982324725346060327273742548432647774502000965905783310280048936860339784775616706168135253979937994928341080699761680979744591855393055724291463964630750382772893031176411394437452955985991847939848454513324280580007945360143976454493055908052791754123031337557757115499600670647888105252593072488860900174376605677023729970749061455642193566868412378572437750683300660727771871548475700232714432537566523415101016965359042669739101435252227174298004169067758119213349880635583380772221886978483463914131319406336952162753832688423631005549157099266744125521992595622646517376339082123857792791313031299764518348982256377712311757859423923489851278458404186154809015826900064650636208074731984785847132898220557286495003846220709445957355782294655125018892015227438772679204165983225781888991375053315092181731831657659647391097821117804408004367833989587842092452561820950880584156524024760955650831695494753052858522694023193039242783594638109544112662463945195730385506652246829311706853504896080682279095182230842311357367769023565659756625371556478596115784186051774181241399226617732612486916011591757168104381516579832775294900825823555947714743362699730306592463742740931966649176830079864897544195074493974543090732041852105585882499847514623190879259963282890279658822120751841342606896458536792032923963070544616319996491338638734877129580551356162266384576640146488881320194368673400005119166886860229775977783499604919979872242989084658850690109185153495274849752806927954605674891831221799982279278320052172417086136291239463766208384849531612946005841590386497293223611896548647450488817132187069493685001389194074102653589856176542268090631070110607248676835378540190465748853951929255593549027538982799391565351089602684883481774630748480711006410158367364728775969111751016020743868325178441723020119571247527740548953360658438797161509039038568378618771711341506030982771586716301922910648118055510945854046964175188816299083383461270124233235753601892577049671404454401598732107578404080574055636773738861716126724334157329853814563141534119492028570956244656331498400573933780533279195322461117667939975718801290568358965536408366700483319849236273600877110618005397806549831423700231101994110055446325235152483549975649733351602075682878415768951880347149696577633769384933245871339995811010656868728122226513174506486830504155953124742192642983563917407515592204541360025404662284227970958310880361978411147575916493543493273535874396736098305309867909498175052767419935933162309497263348782493385776258042051200831199384061074064054748222811766301522914876069436194341137299281977746367712724461720538401426497377464391644068421542591274477568449326260084555891819656290410044765591669218628459746181867959970495656141735630068420281800093787519019390080782858601437284382494143330923408410305824423425364783998934206782789616308355028787579359136380363710530815380490054861525036939482179641014625717523348642628061204692016368797645041555470887024367451404410833774770434991312094559634704336811943211580447401868850395443056703026489287582309097855538951341255495294023678046112392645519577022390417048164862767904015389074151616069706291632380394261312558250640312867304208119574648120751918432403599680486296761609471247401087164601579011465591212819150680316494890642253682921502476084076288802039595792772750289029825318568673252639637396991255640562318914633598917849506589501329825085198285711622554765778345462983220030213267320193791748237787614651862426529438695868971159850407563254648506633887923700641902874131657449332171713884701823874207466223114858000745265368359215667387685796369856848778954867487237373457973355202053921323625808816911472336975456986048217669078631689868021234720925709198147642656680177081388891833670260112324234353834380798079351890686154353163494656679259221622428727295988712935476047312297290698509755926246029633647493330157221131290260562508356002103967730719058120374535827801306804714281033066117032092813861996795553786730236953488881683566400804899897107324847865853740062937965821232792581729375126810834929977685203755159224617975172663588151657175494805013473763559131799653159158403561514139263980270758902848225766015445390205096911825733556845525696111558370245459778504558566995287392165535525322611174720281685969541083135498732814830721385371598574922616536634803923911544443863066979210172807804390341756061875328879571940508879618801208180548016990425576432428166915505660799800109723960047320457777167542213589364260717609675358850191550971111982772442167981779213239889203389777265127848175570402001899295933919025336942301688578267387938771612504521512398573073493407901295418271870966980229226774551042435128595834646234757503405704849724744582286104993188609463446938364599689016831675419664878281482974843948137352477717943493099194225580946726732427816522523434939083654056674024505691979385633842208683972338614373297124599922203092915334300321506949818947690311427995962756103613671093156222432630019874384902751358894580178951979004712770174903347440011431813253261253087826738292644258536560862381389476631363287911046000965575516592603912918665213185144293480613853680810253968569748574443919478032179409451633379936620556506605733403088130745374784784148638051822604031794745923613033078214080303747066049611580197151187491178303092047616950257042988877511090422699157366587026830218895036437592640977496135001511502914157780298927789517512278579300644427569794870464942948356921553133201035877383246334274345265552990465146695020229416001670501833057970898761915425102008903487868979700406184502347258228720489902954828222429539418937193340970996197130094296015627023370623582690634440787834950629723349891494976320798011655208092570444226965340313323003109187273058075234346264681779960401031105980438770465970507579679435608635982854981066156175297995881399106547374927001538170751695393009710185465750707395022872434900186870920042021770901793917697195747332036902321282606256180028158075047081823476211105808106798726288322057563466716576473512878847613218514307348643079063729229294341950516142639844185587252378672671676142751345097100766835126661136724654278908878633691330695340918595896296815889101684883955585014280273742133491303727018695053261227896380107751618528175976415354531960433360251644175531610445554317246096305876263184658300487541168005141902407779824296842461734374816285832863869730492089809094449325835802332051369165759995365748276386305031583369591650958241155702509539405394963585150008641674627596973599755679329710751939221899571112740726342865957776915228156133409734809017555270116674849157711111685521570283041940935803649136334964152709973690412950406764693329979599762032853943678617608952054726505761839735663901028431799470696967116003205666208844591844677273095928874799006876793404099683515256814081511841840273983905979760475866989307943713276991998667368674051439332780082648055239734021354634472031695407731915724185365765804463761424401242960798495758357186366266020475310530207495193732169594950061428626758228369070419762064694027604134081865946534567437655886425506244187929881924893497506021070854416874124367597560958504767728531990321486225903214219304933974232144506198319370197442497305810565934715447982232135617440509912307400544936055922057825590984863842995579652537585890462372994856016579695003697053462342060531034628359119706195064608412638887422335272054322696582789112705609197813756481437155457955547234250776324142067854467095120454349865261641208722760025401218169148864250787069306233704385586708007144548591464731307328455459619149375073739362269292374442671230898621567007945241948894280744985081947365029576041457187514697424393851142893822606005164737825843984457421164948779898459619015431380892236932260853223928327199030921237168422849814290488473193406999643532400127939455811046306628644969656877255739878453922680815449832252148208963154319798861284064289073702647338447090598921601117565125000566092881606991847182705020657588640178516913687232605687829709398974927298201562763754665755394015639086881199779797313320523713720273406645359291332947756552330364010829206706545400488935306680437995176366492642255240587197144359440109167563364135383993246106193449289476228856599327150585778040417427387576444407844955958401348075609351270685297880062454833058390251302559456832061715800187730492327576511975052409914545089880471965622784354930244764446411546714056730893462400052463632897051849970386520232316312202966187913842282738192263765851482553594144391120465553589518308885623725788224962886450173216785137684807746141386671290129055484239266801663798893233694761693610391286336312928940958260016338754062322000521723079018211972455220189659547372261644508862726971505477390732162924845160555162907294352521112084477308221472483470902975779440248661446249382938858750559470293662855838756326554867671155018717801940853347860993777730511254090080471576912610451397408620380181900151597973661274105944138632565381222558630191768726820078072817471196469741096826687824977730166924206959807697357722407918475725252978776731407395811477515704223680950613810322117158301417593359733522882243376840314567724896926192340756319749952908971217196899951744822347808602276623068299212799554627561419087080867570573754517140633520768222565895068007885536934380308218695059385864403832947190893712008218796637583983414879639271690159426776339228876170775344849178589619014292924593304929407025195890039791728678801438473947672104472765294981524979639465089357028358346739773635055427972118861327609871301056111040625735788597895329761708152458622011158067116483335732011483909992027310865612682471071010875600191538711350303508174472466954250243058325498851641527746661095620436095051582560021886643502320794392937828881186640978960691041401227743281143008925942800536889272306601482779493873646265939244382227839755306676135606521292007609744627565663841275702985509267521222072056212738942101809353401647197724083433858427477607499682145837480914390937501288820004504891645607088641388968599540896389633354043848581485865408372468645154519341493145340519290699495397456157297602763562259533835883850315797385337485549418920829011327735516653785490929152879747500898870264174363750101596849401141403375373996406381309009462885891671126305865058309561874137244977403263406192105905123573238439756960779918169760668735445313763244499480762754219317705126414720856369964026740896401357993574551107222034958443004743025233475071153904063139708335768643647269587681456560507755878098458936696459458159661350599599553296165414098175635209138029858932571215287984724081314801773769404898343560622227006739025239411798904750554665168916022323751595697298440562417739532050538480440780109284228592995307973285285756577019787477090990118074955209565143383690889654308600749872213472679357295201264603288231240963280077780774113293664140496362110330558500460248686870169863839258859932216873414297434542355453406107500776073504602951210903269732629261530688721919938765518193979483036630874028322312526943561193132307801985615346113843283519892435068145368555446815483678188572461491860899922468788686059618394931313824679400354985432217484102201683587642566464742270547772862395052775792651825055011708243474831871192824760471558022940895186086241227335907955294188965028797039526828656395927209958643338000573651558473462817874286172531518821115405809470813186770217978946799008789025468196147449308881513859496549122319335244347152655909438461536582070208534403398424898820971271787256037660055292851521499721296173065433309457259600311692262901156505609057703728131825030695996371995246972873300401291108566689580853275788919094675490363584446469776795790234677521570905364178104555389078681881420449214930758047856280740829380165193998217402028061880612575069585529372029054249115491423133442440421231948107304390181710170312086330349303814679701872043176592408073568993733181155507935875264636657531699354317585736779014334915566201377264788751915741250522470791790734082417801371929250517354239025491546789868092589559187662876805181953944646837442500952584954857766696956207733852729379892396501186393200495823056046437161352037748924025445782692986379642196683597517671258819825413786530608959142723241861752923782334893850653172759309527604595817390641661870373375798740733693743180961982632733728539132713780348019124931485854577185052207449262342985999561478468826454706291338698982425292211572085580248213397366095670290733740196962655693942016682882007130707656533945066447516410056591528558614846812156957051459042734972087738187944731891217737861757134824354596805267436819027429801403036081010299813795334833652838895528979833236389422165202747605205929122144112720937982031476927253727444851734118495105979914012264909590689626752776168015376759979133041827091149529922055218039716622306366031357332971986196800125990656168860454795470868400709969119371167748049914244813811473257164061785202816361852788745914534158110975047048749577089322981548514962728333883574571935711353695013915380981000228280158219145590229059595756857662435264969252717337844405808027325605624081987682543554840307547856237259861598062504693406783013268126678419104192699529020884762001773099255319655470614511709105725659960330890770118188906684003967492817052730183972592770475136461360857818183513578298128030075160268572121455609708646912329191866026321564666560603417068628666076170231338053723217845912449789059550448378384169878809018260982106148085800451184249399076682759027535019486458051701249307389728168274832269275949596575980302823777897888906845541967101833457686843952575314411184345227515972851884893898411565063922442345317711752237808540213465438953879657970511179940165474427674396743292693464767208047575691334264892321157911853104603833063539981462032633953736242195661064836916729078556881614142379886854528949931894927604950539262415089852034376386627264468276665845275365717218953896875950510300578508808140881354356147571659941422087756756787092972245464299267207077760089683481949583485184802724356829487136189438953442680996254447024587996177894315139309555321180510358101952735574262440997268018411079732709861614100435823432791273762665887519936347865321386396001913175851107001615804529087874230583535130586328057650288978925914086533551660097476574774563719245765904368399067188647950709711831127478070532445197699352162096606300549692453965933651590942347152938769484774450169289023164519677652501529580042909663585750772325686174921355231845238794023348399780352160720978832718999917968086331188292429397122863096929293504904509478373623130946237749243490727180806698671778894589545299627844669421137919566564703412433992191609342311108650325698480388039311110812815242139647346656919739138571623373187601179380131169460398192906025936894626042809750819003715482937058029744533033383493891949235557696616422447468994944516247384844313655855829412785284512485902265902747161727420680542433696830540387168672765036565592638360947420003647184108194811903999992221304518881109785413091168786360049660096373637085529863641148299637257803567815020120005385713107931772711809823383190674538976034176236627573296355940107513774069161300509072497695353117591566355502315746416065573863877795131654496135384918824210613356620406367645102245591936507953451154620245068033146589409476413132211610884144340620470896803044618171724820584049364987427217890285525918250472298515674236964793679187790171620730527999040351982092941772650766157253818891724436959778570389663252694136751166445862014345596163471410985197525377584107634002032764920477647231319287585168936534589326233923380154819799766287389711072739685723363207751140502065106660786576795809941717843943989209784411155181358018440356812413242222335158133761593197394688309603924644008903896344882050934043813729560199416434679489001011077254368373516397204237065558746486907178379687901553572508152135633998597164993434095571606915288926517654221533560655968197092148725845449620143136579474813492478288403702268517229296205804230510738388999753763120097251063843487957497085355736376277652736781632462480445554994709833142752711207753949074768002811968531971649419543349042293590252534030184176984506193321320616758901160692014905402863280530717767997915591521523877953415583453821502065951648809032369626609189850059868922547980287332164070921594617289663385810145649457660103798065375824486891367421755371003656412719002326700210494176584730767148998593411833166077064112463693593157135199188753778445959567703670744537162284016657274365037553532429949741894500653660695242145632196002357956588038806795194636216209624865156949751701181891433226194192118546538927537494550781656065081595134659364840364746510688017102324185512264099973321323920790388510636976408608298703757058816768128525720122886242926571883456698986572928790201588158640948297016893345714793193772057994049724292035651165890245949738826193908714827424521003470987608387347738149237544880055741290019817671971863276368834065733414754274337614799903332426785718874144728504762701754196128502371433043021005347830135382498485980476140095475400341057914718638916837161137937605672533703228951756273067365398108035762996076911966309013862227760209418859195599754272828175463562383520843865629675151691641355859562081821691527217265587200081979639152461744728562887373953192718945181880565479277816697901770513397420998224391745249610529115507031458713703095370421710462994678058491312777560898874488233274108916959607284583214324612351823938406395829730305929210654374925414989359010667883809154569962785912022763371428304717314258369621599979583773534816233068725115619476184235868939285240416150248899857379831901857067296088462771262822392557581273360006143781469266826955340451457896019499912894876151499766825024932003912144258660440541598106206493318131323086926479250489448664178244615453422078093351869800006301084091252474848699816851745576630812125508677441048572735635226520801570424965445873551856532123861247927766153694164032863045917875593127111063081681329017077363367233764767847667526464798843706050494775768337505586998126485448967534795662201772663695927210558890208094154059283344009886266791555768517686422168573104380581850775771132322870382120804145881254621843838326079456300734026782531168956470142258498636826689373546475190965040486367478227454394385504122263715854369444083124861440623034200429365548068203690503388386438673013200247886986189917663398264154225253886774742624005345474055472112689179238203370121615722597691578937664448781440701884438304087244579873699867820495346748464452558133473002824016941071516853550966527672688773711234390692913395814793379386445766027023094474612318006493554233151966655257614738604231106295902260791651798723550589042102263733826774776024443351433593357001818399100699326129287146387080157789707507315796124467601980451921434313643127910042622743309863128573183388759550971963289937021192540430541147362358514963538709818540463944600751558209481307268626313942786313768199751783594131756206862017555169220273139452282842649059577924031897554954533801958912907464245551516156358923838466667938500925401472372888934711711306696687724625140586401398177937659195712734513335067986134373001757500138176459659745092350111364063678221019400140636880526475851144745723249379724186136878494610068382851358794250960047580467490253937612967965575618430434437331881914674907531073074502643449895001591852432705695857309126027480221751754828246320604938304482933389309709193390808927029696694883766375415571833454003430729501464044813240898685982405953745453122339363882781476013439447941304720800650672090198974336886152311505372552494753617948542807010559192982173065402340817220715385808149678502693068197099592186288507003015228861603082706793583727593199861521357215748987246769330962328889329229039084387994117981925432693619013252818759971180507130752897157013495664426057818842001114479524867841166201063566666016650911071738100210882919280399387903438297595751426754742131546274211440030557831651145761040161281660463340593065630047256430592506145252913462223636881749531142653435226362718835769830104039388122571342545330487563967934719371479696458752529242462752128999430858680995295645622342928841640816473195472896906078484801683611919474802256411247426326111113007049274594731275720166676227092086601015047490653012420108744432911418514433665539570493414625394750695267295620812808980889794103816671301603159667046352932832311401945395138334724860734765158193748084248327910612989349598446045016843310982499798237948643970094852264751257032420528745406568352641592134149187077581314872889874871407426028686999866688954657164444196058995096874796077939774252288001071581821150184953133571037058491236532198630076850648607769064321810094049468887284019490810381225965610899142496378695046168235516807642996912845016119543363901772495024198948369302773008024235175931702874391483038532573476697849860479367538164510356366367783774585949620166810743136713850047643938562093261827161046695582296971500606849915180210002730450842441001286514651554493379195092760485210302122671124113470257124060338013174771305056327868682857751542242918252667258659193007618122461267214741078421317805267446857468380623610929827591000497923065822234140596940738438532038002374403525074629295848491838631409125496785975022397099735169027299144425146595940061195889030633632209572435103716019300964499699567829718118090351020755716448200359741333606557926230181477627025502000958890357518805285217717163270589420450654784408592268237542624458033006148627715933154079880028925250053862649802221304630126077794395752774218997829032779276276628235623317148063553939771504210138955998838451044298491003417455670635262370552563077118842015745754144717028172149374033932599174492001285591078289907477904919120947685227016937918961390908373927557326919428047556482805849713208388119682578461936100060194668097688648805527303719006947580345260274468621093858793031722510735635956293958964089627399020182353989558052913378277600486030506637627346860280531726572651117530887512697510594262570843133400148782798578639537146168468362000680513535333928496790476710151426770838732440789679153142119644552212698318141412433342709218219126640022767250724211391046162841488226950100645562965477181391057621206378815197704264726550410433041279562560358753458844620838076453048038485001247396819450615098865725606312181407778064619571211793139292647341461359570482660185296348033179242877453033283234979819656827300417485086060174861650566855756749836457114212112932889279910076805135964578684975385636670214089748144820016707703007348331763535239067125440101417367053920925401933175282097446175387227116537437143548770797649167625179175561678031892002431437919386980863706501649273291351155689813725248939247355312600942592226970404879737999474064130485169490135919787253559467479618507276611937237614696863931313803827833537829669325189905546899048286047025140759659924700200162195583492216237940834428678357820566341054469039460747208262580000354960545451200576696918194065552935730799739881293543912742128832388791860486349811865598264251620380213021075761384285806165880491170066083721993342212450471911477534642189593729260514377781278577930689778753714697741220772338629474270104844579178137437972230532196285923708800179027860876797686856470493624299714939327970384401665573101717593770336036371391105906025345043123625862307660673909232365640112912134930148001621911569989224544187041771515569745736744500475187698006920448978069698238953744859613797605073598188325255939584641534525587721857628211593070158339709107770089004236810856086205918959637398186799873684804130566296194210017701018957693904600524791849804069504553131140843652959097333932213165404758673148421067443330065109511718377297519405314402622300995051304807181511372469833599555325997714728435155088166663289696882522540125013238844317197722302825517272893808603840764394674374019697748140674323522361587971120065058875695690187816137286475910319119271772731446996069516074476145783739317375281663593506418717085820272621077020855003954741793799898895141170725144242155783063352127591796343152797159288217549607307608527424292107597743762047052818616080829974964236880122115978471993745880860927089596314128637789686319222884047634490162192171620991581562841002045951637246950717128793309373429289855872197879735216990196660208896357137886934802307048820741859383221260561573849760505441095955766420753811294773616876223822226222267515742027243925185724299526458862686726956181501977638394256661647033957521077277245138792302789177985926242106716684367281036885998109420191489813491587610988587244983582830609040370217523973797389248525120968451942355134994035225087008861660821503802022128300443003789010601265146467348708341187951780899443021251530051269353385042814167629822141318161083998515511453207613244382317927906866589701375028945824340536603980840415653477824088905323100386159022678866194185936003038836634275137768269612816449506428123959487625471200712620146474765504061697773686830104807475450021575440675360885967910664646086272945102237625176983091949332387117917918242021286039310928764823625803392103623405676323582593061373822906995013803111352478598664142883659247870089200960096180054490864115432183707208154612721443740815039377985798246573190825433838394647069739708968270999672817961319444672837203094598834429340028169421758387970718652220166473343686096728297930243793595964558414551095806656440713988778901611693373268471733439027504551504817656394848745570915008180734106216631778593542603972528237031790338697696831156597744137890511438340423380387924101735621411145513269701415526727492596250864295266474506445234644251402777001480586159444088360427713452374344039199987320717102589854411750726671443549159800039290241151019067900511181980566574216925157776504280969201089548010310891459949719523260928404046056158336838573737497802013826147316812383983352708338698375459858699941648632220711246761468877102228098692486835085428209107674064719089619989345352898841950522567047673170171533525663369896907336817394163535132454617858902459850940854447043453546192926723942718287782793913450171932467441244890219399996547905061598340642065353797966820247248871670954575279077753812047871760869349362748801590250345505050848214008080223408768026272891844564076115759308734812355406792685020408565273886327839271912393857776890053069517560140890416998849391001314740177624216008727758670821973907633909223044815622528334962529238538185637725687838681533179804394888055685727603298485663757982948998029645408858670919698693235847092907423657075951468637574277194582488232276426214740467284277975952349059619481302311745116801034604904805415429818247405306973157548980493391780165703279730398894786567945766165590743699312648390432721581726387659713068734726274585633258417862388936282209637743592883975967492806387255179824541312797904269922380447220924221086580223568703235779109334822764533977477850123405933158298475521622057948738766999534987821182835251325836358892917580154113297359306219393816579600758908165777915183173615073823750239751533759400397862824617102013984887305934381899851559418158571163771201260475969585066047525461453654269972799610856494932048719847547378234114373735003537599852562516732011986025676781378191974698379440299937281479707932340446413260116603159137349573832986501222537104844234537829643300067748939534284415319039417986890552298865489336439850328996551871954135000236652549395447077289653185973186337641255008197128558175711288449698136239494706358608468133602580134279183513195863616261144327629712123640597232665381516367952531479651868829068128515385458182297050439176162065134297243658474944690910344286825966802614663855835769075158363321466567134941997484842097420251775711217257450108232395611257789189255991759459593968549810209631320878368542731389264789980648809676005410262945149276045187613518431066230518766686802550820249157105190319038788197883323858492668982236721401371285669153500794959182688018043107144294492644898545138807474296450804915834983509039994961237763839255300115314211681807421603913328607171844626900046521120094035148344625315844866289925549681502281496566631257525315285375009700740331775066198305703591592507725273607375113129394613218417572876857354509334033256170228821128758250888262095432306141709387207987008682103792708525864039995498555424599949766992987191757843459911941432889143826697445463146332322943565793306162683890805708503180262295427890630437984080085821408494912496183199712720809596664778792938896747980975987052807405001570297924269409763149846064945894718428651133011020981613822038713157252822020444320151990316684840002288360477640195086233216638473346973075565545622790854315214037797678848792595141511830619089489564365626595340938420075080962960733616680390116334396769482963818940652986964097133599007195049015903865772504655585854589060119835589887065228170283046749016168867359693238439673540949281143880421304978825896268421827355789147722510628033498326260752156473244017756722913133991733168740992861555852680207245655058760562913741500918843239189079099313526212438816853159053175992537498953927619822892278487592967515483302794495401617492055348424406352424457638893680729528437992718182018713379391692859178323860666571828507574624513507249049604150682860601890657764016591872120489642752452863184296028554867868348693294167465811226542941356638256070806054354525856079114937842882616975962123276805019182196469411690619642227823484393130670775726290847327833618038282308925998481465679067330448938860015168810410393274795666398694923265756567112239081026025062595788699731066262362730204638135681148877239644016902017657238117496012281014642004178499347754589827892661615131837241443382640775217516661864438160711425004007438230511443319210719196728455656694732208067120135561625383183506292317698533232592850618316769854587454905265779142575516652449483226824178456645739365876490111536956549958716458221411340128187039030172601641068666826975068885316524210914746698352185691478082046312640854450661127197392909660606455467288485763714869153790740857976216758527558508607153054713172515925941520761955739447487288886567469046675274424032102644152082107109071287271168676832045116856831974681711864357585777494429528190118888559051971881572463758314385835143014125754391253395879620225581426124343927659123395136599620232185063902999446609372770213318613818741511572570242740413299103299656051231092178195011448156863808365359747117229270572459398199221799081650239636675396819247331002249240080268576398285242974988720008649421037132016905693436096759413995821521197102300262999424727502972597714683108721477321748430140316323745365667985619646693324904884382759574971344015741351787783043425625024086191416201624034949261927913495218718912288616714691648774450149107014979532706136391289704444356918966617142238537005463589488686356354585999231506536616094972313126838506191905240692736621250695152108436344156905007289080511418134749331206156127494759852791825434051832770413170806249807639076493050449786596740906130053419968553255740038116315898044230772451628789133594633216512490485893977970745679860191237824324724334378029736713744828741763299076060006249004456092411430776145084625725154824907382108020208144220306609782203922566031382903819839337794297812528457676370195490225195948112777411254621346778914663540091252367919600389607586274772730896342852588146635298772829810804013493609391022355475600607846136645197633589600642636807869060852170048624734278065031170055537841554329873354609525328719433940047468769550972387267845754375735740700433526467128231195174394119874821642021934997939829851566277049617879211436746605697716359540439596570067574782073729868704264170766939441273365142113891695436099795061401446334653656203848458950227606208969208499235597020086589681526014979043505045937139459107873748645454811386468181110458109789940313038524582796068065111239833650125486263942922622570353159363918838694656948209687839340653442925099831263475239407293018213118729912307603293106705166595335608027754904645225838137495569839511739191740548166563474039088369426766166182329098860862432878761894311156259237252720127844582518549704912346446620955916102828186547888986427710219282377396035692227862657216846249992604508307837361775047062916494804771765242029855890236960374802281353968891647785035640922764634350817228323480526457534694431204222363538742162539062994102678487368514669495518634337933214430228327767777943552692298670315615083910501987770806265191614801567796316525423554964540593015598732846385542712447443261114278810434649442299383717000169536623513455700153210623305692783479947849529753718471129346535540609012114352250233514657470654833328266488981140584670627861921607159732456838127440087358738152941247089808502292160855027586171144791383366871789011164266766320898435991822047841147057390495567464744411507394382238725910359053934991898239110731130150602693134035117598711741032797962267195279850469381671498915983764411775584622393966341322311652867890138879859066993049995146595157034920349313155298474412535433094112649666062357185020601158794817385839167444076983864019923535143355946865724679008989485965779309158630251115330894453191840507004315146258951052157825065701631732359007851745212111313665065911258072356240070317366122280377457209750497464530813288282880687734715438994666056608903774850302285598899307676269077355695190088204040978958953890307360967540922008816464206504977134306545390677337855120737022428638124139744786739987400774744247667746271461560164885200685871748228856085210394591978513654713765620262916642945684432270865537968886529758510117946682814744636801382980406022149744839511858442867304498032439676484524217073144771055210427865237739382312279927536528076260841398243437196312283757381059052311989995424540682728411218373430041066515461893606667091242454494283488855297275476462402747209194076163007718270020867447930156567176652289050067559327860596727271696044372882973262220361204182223438775835363691390987968759003091275751460502294100264229621490244820809374941821463639489329370754897363198714670051455975095037519666569497913413455304400031769858190588466483208399881696971537892928850797375160870995572491360533591031561741233050932422213953891666124908834501574893587488931427410454339448943169263747444951700532143983374557065173396603051233872674885647207334353329554101777510192896367736898143280271643977754239319753265272780034860419361826338529457761096715086385037677224111996812310089107463507508286508466253622658396783269799218798192388870664424845181262176568001069479036513084517092825297478384313951852071232393159426752198912211092346287244745581005456559584725604628872845159124513009324999616946081367782249638285051319982461480242045448455533177679447337570699616646961817176478938369054758786482391043556202856516346491844918665124067572042658740010023752163238005981971294594317129883564240968975433879167569606754052374259094392517429113985271193209514754234764650457329501995442267694191619838865255899904530148515436473491788862912617983491957696390575101652683444992062887589633019257346961101491272746357841811720475532342370075912819757231420223196120315866961298143157025536892047797109386646518242516083693297501148427388331919509228128630908820030594797599060114353439892080947371068563860696297983417457540957054162885387387835323796671297028364357697211437892810969725590788108696286038554367580352269421630383014110058217133210679497014222374321996008590292293240961666401625843457670878183850229684815378304555683163942269061971158712191489706009821833417675581905559031377105483197155192726616460024088320057667145647978968778742866203672870500305907806477209717494803625955487790168015969403812585419380144416472410716186517868148274040958384372839224157025263673359930358706378279711102493965763671539044730668573673004582595897647807005630423776203673595510466907678792980597928475043256699495994420511114740906087193991619367858021707335057676489658868480774897843121203665057370178008015537513318403982307971798175871438830374514169133578927666165510852602676144688855095296883952879097972557839822394210305012034767982166089149983862998535118835970635713482543174780549606299949384784443167684374602385009954748671456091008415209894724817848376200242641107345708853753974099668894516650794514321568612875276339990393196535343817833711638156448105839365477359017198651829126166864444174253822700935871802268305460033856152490587872236154236469169397437944936860453211608334414529516268460603360739305479184338995582279820889448811602833751751437330245128617872302083804274415877591434593213084567462934435506251273107738373322988938162142617144224883554092222775278842175151106902569893467219428361793683181730621832441415910409587029731984116329498527513586034264839337192916438561255058188131464559995431431642403388183515914540516122438147411655662633480452714360578013477837700283069782861831845913843286346838138254758511031113746880820386857265236596631685481926034687197583662142077694101004863630991743310720315082323056326087773746022468352565201855333642174285219977704745933604953532348035594564551065500602507850242596023122001220139415648362881450354088829829989225560921416489369200355976668343415484541934812847441962863096179222724067438048121162033105877814078038686931931634682484616198929298517177307190084084562788041345724501134383998858546481076150906502286096247656011308842595646411276958461197628606341472702579164113066756175484648537233018931773761514283198780395354466428772744462449525689338237813038811949951601742441337304928483028488514992382490446501115512895555528341897864085485372056952686283377895145979697675030318614031169871173265832812096640758969015015472583058755838517045588927664351808866214781303594680172917569523815240161885946147373119114011233062128179325215136246135474131186460282938580852828838191331260592904785738889040565133093128542928558365928198782839421356698059922760375920068425224172956492291271548921637063755053527689635954993305962921859156585072324148780761500437184390783851422156766303466309707037282213392181226547143919293542116837666465458198812166347982602403821144871668580187537712354875952283752125292853544291009908139608935597498699874238680551259635180000298156663605258949898701424929663176656439142719173435133992285843034368304912087281245252204013217818371165033661212894601352144305865516114809249502480288705759186047636009018108479375255927823313739590801194328970947038160661385488423375497170530360337156158004341687145538061400010420778555478394617154242267565178788119156822429980150621956629949210150309840596801129647319082868393444967479176964484211364526054849784434905475293318395999934686196064079218084099339334262562062431825322804614733636869860996617484917836320573276901551517302249233825327651825548561270932251191281170553971065427522458281846142310712752563596196560568447151578425111978474894583978610288561363388004892572013481166670513253950263351738168822496124697010921164247923506565353141219561521320479318724061074896868089682038198688614726294239944074982768998526563859593765361347486806211035769031744593096221157871812712626414419178532910067244593271433721964402347986271125503642896166668069745270929275300658037499107542470498835828275866781032278082237118178208258258085341754736621297254587694686052929920640008714196481640854375857690020354257553779993866773734637792449711079802411017102167098697365378351426662055563625211503113340738054564087204141337487221820544816539634274109382408426421305431402644347827138579662747401798986988801421886175407128648126870492509105319182557446180525609105581546841590151960491182990723382305110419460766867599169408600173292119889949625370642348778801425126039724144506314120861957412845796712373599408735693044541843369478309576323569769307953138720964492886164866288980340702911426030036338136178334960716212676655171330247962390409948283014158722703867849885322134758097987516196642197564866242465600904856181006431204720637837199765722986028700249494686745247550625983311434300627567480281952957557667866456936359415804937219176578716213756192824377879864583721415231129716828963108584007457607554657516836144166980896527864013732782029001016083705899713309485901984052445304437159530639830501820034210775604495169222371543508650823029826177838402116520452938371986634819006796315814099092315667435201371204024317924907524627200067002137037880803251083091788318836760751511181409523588617289981059880123080175555436735159607170817552029270324016032340661749796516698692023690439218133061813308375952083529921379177019753599142088017670859525559036834574158087712234104418095525993543375882049000777877054985848613248989053191910036799246531734951684356785693693562346177703317644913264243262681550139077840344101806268876711492239299214461261481430721574825313972081377983499298947646910176810069123197229051654813650681825286578183893681951103174481067469148835528157226460416944195013296321389120393245145227962253275980065951355372479785595672367244528937651145615514981914235243705718268952068506470246730951933533908524971187339840339217224117434337693844134923046532682348200609298770477629470110267817671823119360147137652824030064182391494342609814870414560195952667465017735044858558683594590537152374107714725635381414986825684121703112161287686724036231619857003450399721661538887249633267035025822883968281999631525394097248676527487193248006956443587712503458792787071580268471166381696925408658945317149810335806589746830135531869848689249860768661242450693874907972486493913965687269658790071504009110165563140721261195668505181389253798105087680290588703237504564135705423338045191727874956743645227859332146138784792086439358957173181068990650388604298786181730652575049703891451141464928793086225716314331748250802904016294128339902833139820629109763435926649143997400206459927857642162281303146283404715532210964379331574648715771357065651390714276672702083985829507179440735729176218663190900719249858978307522128995549819700023121461172162293428973857881791603013271795812231052557078396200167551647895923819223590335047877274169456447975289742641743696591276388062448648611696773066503412375280552457143033122643734280525595081484095482171153485981492545942311684104539271013455431696220863842794619114571952890294587113786521973078189750986725662974450591394507466216202320240979986059979006803509146516550258847309468980735731436819920404190859877290640569464760061438775642202589740748913600469456080833581821577137717777453578031867475420469448306587323973575037536035446724718817006684590367226060655709491140377927593769604028872710174777366246972181242963464032768392285049241281874505057794633642220902764103990253774836074681780513555370621314132478154028325955910846348271540484776757737326029134174686702010147409197602734742943191414701181191898834068432326893791918679897122567243616476038786533061869847553750509644566028080540430230871320273336911173786592764660435489720968294104550355747971849178295233706276653503042764168222031025965809694343702740534920656926163398067924051527710634180760290674644578823117100912976008412705682098467360294448695900608056267019206153615968588040944806934572709701925922193610217380967433611877177265162880532318487304237770752603155452338191282754516268069636556394496142746092120543619366396682305646551748763012141804284291045410352945571592127799904745704374532421951672600295773631338626611268565775048081117596563671668730722460768745966553943202031003086904892090490955040268752552921066194194772115755724999864247633670881737535492733436037467675613416376490036235977057931040631224458646110337851485753705690050671459090031766246915025426247130586777701251540748188904151011993225521794444988811128246024684168693543455764759720644247344981296832693291312301432918467157822659511988480892523073137681970436882099838451490654512265294712522924627789503854244803791920571728443710915929481716797514969236891785452061473130367249131114620541500962527070135187092947085296202044946324580990720814718056895510093484469296513803470168384469260785422988233395322808406186747899973419981057937483689967340054660568571024132593321775560377437724233637698052387168586060303531453883636724398041806710921747154075149831756199537437699577259018307345364971877832677775560335556790745687273495365859817511128859392579955385138824734971628169408980657508018116448495583479711544595242479335270314002205272045343713543189513625494368633121959200920284547855786411041275423414167806557173352357930035557144199298154897045041570091410958062458400943506578629356760215465299297775639674619723581929333705356586280811256027065682211691877826712319132631682919630513372266462350871791286519422788407667234250642926154553066785725219674174661030056985990669601917494099138658623013412088021296134026307470884370441136646641716178614112132758070347268920047348519503275054764713621456003667106899593353507725996447219306297637985052009287001831859163627694448943774077009989269712108917618910265230752522948179931172280805543620836726190535041337915856294610717741921782815435622665641810920800315490831587683748326291778865298207187607390267138029775007796959753665537162949699426661845773265599703591453029641139472294072096193923747270530371937648328839101505280162743355595992887863387785542712907995319729315404487632265233011182275826905846247527986697022263122503188481920063587079303059271703475473565567157154539394360945359642814114660030695087119848667391917378535352436797211952597043401793284590354737191872308806387169719453736674545519543368501775270221024778458458657949056134889089849927852711030246929449379349322945842991598189037273452439305592018867859131747784951292178408837184483752207289527447960329177422214641427579359361860906092858295640329629610675931032208174650339390935018742771051814356686369940008810575382077420901912523942740593514862410616475838933120418982155758571733546641691537457193223187960523023018567723723392164210024902149946700372783370711296143889865851502660255595694014948236263360790530352705975144825259168019598718802197500729577442287479718087792985720216929043857987830833567514000543453693176262332839556212137754405062910676655801414810550581575293113697472807896923724375151149691173909765056226315436658818793903462594131308809345846830983692957639177299712946872852800322373440866470461733812007280855555817175900773366499276295410619259343775802675253124997065907307629702679029020125190048186379614213812167719770906640422680850754424602142096814945521229498161843612901553285433892083518164025903092573359653385247285489003940377338566611073793022697022748283669645053984459065557857672078225711359521744471994868529868468656865285800340721064006227138946918729515430354669795069352809142180155696962728400080565759859944117464442769815675722409852449182256192308901842608008012900340273785319774362747532841154866836204391224342518687526079401288002568773481074828081485736436738469888991150529566019229806430643251268591729002623567008500712629874640139510710359141148725379294305687354919988215228017937598461347413552449793921909429258221184772509696174541821046725917610310521739478003139313950487011800403458472862448391278326796151863441740299524076527209301474645706499409308271278573607936928374741658473591216078747720793036752185250602882379221359204493141553560397700283816453958240708072225110511060374121696352835867798659257737311323494316305874598224193429197849658421348774972624361264812390912234447743193392630210681546463287100632686234984003845289817626791696182809421214919644174115427297423963670058391852898385199729113076761411404682720693315831939056100942706979013973263379487061869410627954571593338119507239395239106738388057374036197626940172248726988673159975294314727868949206674308350480994671787765589326649923960838624472945051513266259335163268705382844107271397111839631157768658872348348085170681995678772664186619386893527661098295693706443513683224826475072156567581833195287695264884620953240659372595570537541721268159073554156058794314782715442803537509689328454958208149180216122386239775097894734733534937252997465351086275468025794297591337060313221457038796841541782178015951467208960667770133000798910993983990070103196466619471420861147021165664829949956075419981235311341506335749857032323883811826867316025558356087175019614359955129646624031458205451373500763424854657737014555759200045552739608826330766220493761987557808361991224653729085399698576090053823872152414150371810212938420839063809148438922932036066356224759618611058227777092416163100722632302662588200358435756207582042880936821719831907165849733264796061818892495984928130065558166499547083048362267373408884999525014695211478078752287654442555873566396874941359046839299730638769829623748778586048789126908244530563668625630491204720690695912773997597099174679600564100739819922745567637889596697372408075145673289743772803897718487851674114818492707462068361614046753648626442824604174749402756900458471565830581977882261231628199358260823101937376551855376801664710173719705067546241401836631192596211493126157175581689212770307510758412452927802947986094879656608873424223028250181925465625672500963820202352538998647475107729729391912657535449130243236675427663888805802212564569767419110549497463948117952450493059309664146703539678616140129260355831959401556028126896506101102015742039942111885861224420411056058253495031965583669211711101983696815466836208932108952029106416605415322830660171743928425528121294222932412228909781525208321372500461178986398091661385182891659206002874569792790984644383569808598415903330335232832391611394042620303403738731018244217135905062032105390626875243988076096095669790796744504681667796793075920526523584969851958228691902616997796616950883443057488872665076906504518412196730888191135694379194002664494867010831013513310828628742133932456040379166645170367015239419309924056725860672973581329343163077674424437784575284128065870116519297123238374138504049917960538472806241415053519352303346257765259411334730381544654098098668947788119801485449196954168436663695120377941486523658286404012162214395933688083611767732352882161647900098064306549831267712294164599491398346180096154114300922292644166175333175149056513183286703667436782345242226812455842561327248834605916820671651489553092093746568015346146317514152576407445868950258345602359315410622139547682326848508050672056876452108970909841684947222457299985439367022502529775707372867461878136992458302778389390844708980255613784589973880631872458353982984475553529493375166406278469604647147066380061660677646777197336789003598087604155383342850688252767035928650350676965115680480774018986931311938737634306056796992310502102238557148279767266443000105072081973237272596604287841575579097197593433023206325956364845119955791725358692739432069393397207095918436225586394207434694165970234103383903986123351711341662520460301830050684148938058052442347958208927822770773619438510072773553082207980686665417658362019162501084278170723646575928970591108675435904656433290833550703657621136727248150618651394068862539370037074636594227456712302613120869461618438858587389010221005612493607497221224254921030912620378932258252721474098349084695394886024914809637413230094000084865226764871045889794737891845810541709261178668216960715695419260075905121524276944665350044419888107218217912811509303533295384394591442541681405135715535386716585220743760786008503216938711381543577987653882496773622495583925647280427341982766832482780746353404111463159813745969364811219871330285567964586769895825804616354462943181200885547081804151024145219454803841101670466083903202725154310141513773531008403457305333357653417720161504638703301102435652378337604303753330546320661613572418328342606339063840985254332849074688177828128659881586644988982365872600168539782722592683400286083969487256727376700688421622587451920174031434513705668848389324557373173822824151921073135047938619332831709527998784470772534035871584736189941730475497450815928774122462863083720595987152444171795837185402041531977738330756116928151838466214183474630106241487901867787366142205429057000907234122138349679727071302613406697648468424965762161808201667370029472010094096547139858096123831942765130250599868522690028507927424871150524864943442717520142981952312727987773783496000454784536196274281331197866497167353486504538283657455949933522747007133193228219349611222697675768074286752543957972143099291845381890287589830867075039126523388317949346450726743460122456639159293782180462311856206144806073877727005833632764563737808930267788803580486072516009759399853939902685244685273186330916199764604432936351210163767473036998098124482748718980781843165568002387752625811239025087698154679551569946284028506701634084462489295351922802136564168986541391969773946158949727854204867365248504468040711387144782578677551558965261909257274079408642835218007205916565369821473479281657808967922817036540213994719410713244538952608832240067990907077225270452907114124602804703896778285117517927917031786739674772204073816041853096570888066050377311521908520267383014491230964494973504828693854421089723487050347247433597298677450011005896256713893116759882470205307097619360109772665995079196510698986806105758957756120855406538713996498470576533082464714208143391349705981939340272204526175134263235029084358037946903951200767026616715751252037859004351098369729752296058716363708927126591465149878482280462596693143118205439189460439437461850830550802555902575668168602563595407936584780744830136027509906344238123036561132816945854612362508137329926397479101141979557109252573919137941866197671587849753936422885658867393357739326089885852734953576355719692625845299257799786005161255163522845241765837884076019396259151341374878380606129252116024869860078234062367942461259253778699148635357619331969946252865651645762127619847220507490871047001000927449574063326499741337110876525364804611791103931942069694183717094635674637372281565710086386523431635845897311093566848467644888771076953069417565173370563501504134266397078812392688111427692780148514780293986401234253959587595277288645124587847526739441375445263381951758315967807990965952654044341950653069850472873745987634701209721088609370992637393619720230850447235528026952806114148532109375296251134118301343064495604994961954144426536374692769062657201939013898058913523623021189769864977542997504974566756071677566612711788178512091793271159070491707427261472856181675256718870197615520958653201360451088710908250011964147854578118531600330547022565675999607019249165820776934473780897533012891017478742585725033026134877510120970303126764689103559513977843712313797488920608265382158180190220182129563300691554441290156773709625234195206088470394231844277718858154196477167693749341018768770647047000078112096761122683148896345959177346961279905647599994864711664616782259445714323753105147342421466661227979402906592828943781803269143801905868287146940520082399592646914339826147544848103439558874513685697781537212200318356556213470570478771373985303649048393161806234447836103265041936585467040502875451909235120896727638898933428795991858903964377709081824919843040193739881944060494573291309492868353688224590259312518602579128427765015199725194807958903624684398180839560677159106938536571619536808005195872723587199895940650714206067806830371409327150982834214535351691754412384522689236762784321865865186874117144549305505865707624239932970891725862446496847141821037361702218615041013739541192973697297020186547762279754960181803033026321581958260087114122007805720416575047107151691748556405614095805786560109729937331650593993038317510316277517760327081820507711611220630916911566256780632580834145936346532198159800949313633633375136472610428593527866840368965042283102056381969537447183501814156368823921466880378307279054347437426849382489010029388047024908720112834667277919985778065509714463673304184885104737552827209540672256055526031272571591712190621855562725035146376842878172016335675656312491146383861449064378418685799024790907736203940848406926900066111940719938489830257605383311757986288084204862522660810426994286143480704592303003190245464876710727387802505983643723075235944757252735030256634370178249193377943514119336997174956804977385196650899629990827734647621394209413858808728204056407917105982025559596402770547989926580912293864387475134243743995240825103825099456963835184208898322060228186778500235479261152831071237558090203064143165913541464446659337022763179886208490704674833785444764429791397757479315720761640199095326084265305185937504287829279737968682671257688993902669925088362044651220400677868745001850568662338402404462287993011055260314572329868793494047733040750239376565098362970730808480780985840836607155871044416245062761131515526092179167685592306695045133292166658239727153160959958811341314298135890162872009810679010741508992454409890473098122607205911204243656369620048890635358579891080698373864669608365580456270518622168775046826742092968448828824734021659124860303107302123304682410232475765822387118921829895154360550260465577893244259063201687610671216884248851752891503901548822356952671875000400873185698359677376103050381222499840517515656424677831728418261660371233365548157899113828355904291967454450662512391198860781436727875758863153632827011190513502107345526088985304892011804666598820198117385146887710503002510116920232815778530964830212409244417657520740350635699020079636819725683688411975235486271907551849860115917101779271661165117953619436567240372547661920499698051082473598391181066624189755908113328659987820428499277745128641611520598767148349228097768441474340300749931106879507817417835176096504861208496543474298965262678411863201476754277976462804142734804993743350519314159799948369949431639130097413057326970470717941937348561706796114842694946473179520511872251678783642217978859037568069662919697117210244837478374735175980566650199398849106685592222311268212067110716061313652197916745058194694232156837052320801677372268787358536212617083590323859765926859262569799628921944674744889400414998017042871197959875257040858735623441599005822877843346275162731726645681592568424909749120487242426045313812151158238554619128681145822407059825147201336725900033648321825717806887411095468947883832782246387455412347158563877179514725324392567697206933915520831128660705892456311238527112667293296944153082910048293316611548887970190674497761556495369801863322858563616168544344542954102159557750648686524511783193579569906160600491341368810215545608731740291356264989546964399986171465156415370408767778150517819654513332033560799523457712226524875164039643329493144096263066384358695068490927349253098425437740321820485265337819264344597524076822523537302558550865541492169928117692851775941104704028494592312074133889438904577211481702410027040711072555220900611763741430218295866763490884878905000191818545425916487501659936880602113033038722307082355614142120157465636181854589109171982746467212385491128425484265623668982779477511987928871074610851271744011165738979838044394870984906097517503976134386136375688292575722875692467379757623195285884756746120986508521662266020460341847318471757090662654216189296844809354036304489523158187786645065317765724560985385022818367646785674894024475668751451299554796597315676147272550353347563310114751193889652479137902837206234762483823619029281474637895485491709467731660278602459296509709001902277232789076300175834777092453349327398881327362569932716271813275958610256105100854186526679845457121238952580167697997728472370809844827539383389588958113358892524494655750800693357976715368426549790828719871842760626722587467198276110068408699760116507369567448580324904840835650676197954909221022077123100584135930261220920289234492036493098968699430757961618601132495804770812475099390778612672648293651459079233944055639043946988914356261077196928325900460058954714822153338794044757452118427746187563964823644679470744494723753282800752209500881024120256323647373945655029928722188788657982640934837752432186489473332089584436313026354727241808739988821222167384898284160790532574974278797313607764761144465540537834036953314763942557861891703935933840997755777347331313506431627840701724820571667148642695440255501773500587321466880539324688032839610527195621196567059885892608608959036781195326530127661764705255119173036913144606158850891773211630910329734447212059017342559269685596388445114703486043301673935881036734834730994302572422936712296242415211019898719448526807854627633323143601225309848268881639418199107263843043867812071178149446744025053157971295568397356361225965839342444874308583469820943914464096434641030937558961088547135184086316177215516094660626977123485148843201583215240816174439295252337693592660635141415674729845701822277524868227521473395798308570862850944860463188503269275462201897538561546986346438866128440654014892345706987111691231285263508294313880700471532632253626110290970233769023473318135079216026818627428661946959012688907778177754223798054529787631380713567554293019862905935948381655302244563747255330971871786950569127870315242721484890654964365582982644520528243359633068471326810656783484406092338508005527683405002408872092147760829904369933220823320656903853492257147709395663124780668316364099061559689021782115989335815291226296212278561563686569994923889044023870495946229027349603263106113829388951915068611030715305955933205271868286464122272391054009491166299788071651198494669785301966460014855038120648596078802854243233182738112679580620181339473668778412019129412272672970933842240712895090611754981731049841411518679452783762534699876625424269173992560524669207971271832224488258291923145353950004016236765983833685080345269054698261406785393197861318194708860265870659379520914470188240022110515740365446718232054238987867774578167408640109987055032075288186046349850031107392946555408467157902054264159553588959555537921001539838794724487984578297613310989594875184139918081576351402687274258559142580187747932262013872380522527442497558744499743126412979398188578430612284112316539369008506777775012148451096847589936422119112775560207982453211216294199329218391030044291545049480902873568386212379172933558819081501181794402167285986985939651486343807969712151482747560379770065992565113580434527194970217433074462724625841943853820409465353565405158745870845316416711107412431271037964703787410150624604840698238743375337667133359802247411687907703222261332419209466697668890839865691311542373334415993311478051184436969299066866154674539730864790798260475390518427325024119006468337969717709215344418676532531274199314329378592875890569630033651507205643950696278117648623958639918654404352791667174764775856527744180362615376139920104127427702231039421659209084184451026879822358344125218160471357617379566811982260323065206025115910375764221969246166230497295376499961774284373217495132144118469209450501040896775402755138894701301346324961381174944223581237186681160123043145785062003704591006135503557974895206066945640309778667226722586262028544754827108193527451635774160904895446385903326157370818285472454935524571158008635237311663208229650252977612553640924852146730918342825908820530667035595913107639046643657415235664093699927203118968337284722258717242621759799925359992515103481003897219329013687539242875813347491897403142472340020496088924320935952887416497386726690818277694669285791279712066083258697438432167048736050402452057593655870145034002227250446047116540101693779893653699367949071282130299285917590828076978021611382213734879623683780137790784520471195392708144481750636746622984398038168844360761676537999962112924169278194884218575372824839899381479525305765711703869228231054562777912422104607450787999982183820290175283142856633976644860942378110635663554913399655526988375397135772185326732286541520770329658970885489413797760455155993277282233826723416440350894192300833394849855636500533581288438535318177180774420267043981506872722408151588646984846123500099399044282178098205484195039578840569221720051827561830510526552775031606727195176663605116469019371333424022518013856367784278983593427034930556590807843902103286226227364120480743043693462913593777670393756857428210932575403697995019780080360537258504031063121232448895311721282522187325155795395445445919336192515708612265150207795682241004683362547301119536332913055814572767744387879008353515765210731325817688914205600829851174322144628552906813258226756688383739858202623717504323302918299218178049018173836002977436026384563156974570913235935368288295878499638335642564312912466125542601479606306997112145539949343931097929310326433489890844706673494081322447847888406709929999008398169259857080203991450909614630063875624174549715934970736594563220446589999858093093596442022089987089066282714927562260658278085703969798521095194678205364881695106713692806056911852238352101089438070316178102181211842626460686707273960256273235696721427976624964646988299826565851324966872180271613487144326207623099106581068626220762414076046344320067540212560740736350279632956405139651412005004724132660192357624767600139476882468996675098822130253088648178853469931133706341173513646442476786881429212315932405142880172261449855435266542594994770231349233937068819126501911858531968782218757585863303547012888149365010870468463446072955931597034308542855124359966280957798852923425454031057042811428414679073341434063998394653536561242891661800923804904349422746078674181370703828149896073584109859350647338866262205129215384107796005699951664244110688461893298428570080104949274054345785722470396467054337828056313639466524243089658460105626197452537581742881041987223334548047771498682975581968359966376241239354238239597431969535727639193773520256587606531629746182061487042779104514677362766238691252955247414895444829486446091325555069937130198150878951718945169407051225533295551238795536952792878892281048940860744406393634886731068156539622276648701955183984516995266015088188269324891112359758780896863836564787443331683278121079948215460756112976008537099352066277315063890685883961339050686714533342697181937916601125482535968556002391098114783922752675155372259017457093314757829534227162854690589389817562005654810122395887442929651749965389728238982747839637913732146775405003558090853879364256516243294595257661981772632427230122913510173642840058696625121004121786393086395580049039222052112829111772300857289284087239819215206865750978096219955447368305295396481364436220706459030791661850557082495778253900294424890258827248220300700598783406756192070380817810934736272148625933143753786544513936476648370582658247873521170448322082321107297128995401837631273405574166200720321740867564724253619368886712393422056614395687923703052900779863496734219232089388259529380613135363560121278544727322320678920818979299414549306406357128031212911531303755489237461570482956191019235659170637623287957686626893422626493779822908758188314300806390473636568227618667202052937219294115109585166864993938484909905753270972443349916570235051839989076345580364394069915225316363539242015661390434690439946242238569754407073459181881287005244154482982958586036654842791457660215021368539271280168012684989784683944722958575977123053921459805381404386707778838887013805882321131052532553580183793874359840275585961446958061746566618164515174556330107879982451894761462273627517076350682160913431251392436625069988615215474566377774394205567667987194177210706037424316491370572122381017924466724655909171945238772923817793051740757977269669912072385298231131229813329740742180095675057618967158069289713442560295360583609019647735555401235233905619355464388937673354284740119410862577056586030426977724391123840228550324034872111477031400445115065295477918791840948191579712755891681819105174182283821410372113988203594209983532253695966403755420998496857956635709550287915548843850853275084685131367581908342805430820831408395568812728061855842647296089163825364894471015641980700059529142218720671764484389485834033452285736868967358516854534287856014287212776150357961347312895990312640893137024504404431386276609114785422028611960307498725531457229046605941176598410684581046022069497541623880912300602604834397277836451558843483801910677252075502135176866605757265812663458690721125896737992266441655806314616016128199043859873144168068224865324751920372977387807325747453112683470634424092534853559510313086568348013360183421258376748562474849805587126323885183173421053832941211337539992522288121544231404960592981968062349699013562154531646178586564246926433778567313704562308087493098718469977451498521654371546768011821520532240578095381703035362650949467262111609374796838528781154037821302076716595288357225508594317599709595619259676786322097703573560877520700368574478581367810541392328620526794492351769948434938518234635558184370756531614905605891279381120918510228391420822536405276600364388739413670881753014392262010801112616261637027096688465125747661302555441386476751270775494680335153367695893329353396466741001510429787556200064455469695692091798782790644103555789258704325199750196188761806162163794765892237465179478367694672285368343262429263555917929441477977779371062220758810747096790806568701163713718933723615295682435011951481291623370625782107294053632594214408097225687704225285641026302239288310255142086518158011727336659889292861195374663154391442720693518471599670100081887090414431405236494206533127362484649602005990609874125946164786254976745607716613864246645673120049860702839615875338352483031996770003411232696257755919749919404291149820658416792552639703394071611945913906422141392435530883200054895597920421442877615391351686495554834549446066735860403801789113366144993914902218475609395512258489806835855260154061408817248986173991254851023454567538924846913290358621314666803025927499027552677826619684426556576350972813612627378223689576831024758311537526473601051124131886038658210546119297813505925699278377673415364994520174061892952981158174824643430997994994427130480896970615530017938980843808953408816335952781734926272382684686669579597921488930108914929295671105485139127901120180748720452250075883145976419504353074752074642184479197692029842277996817104760630103558659424925361897704818637797769079901113493525246157034552667921349344627287138332703296684443332801499309406155705491073530302040972396813390335752098804835514234278839917348042181266169591158363738405659906903112326822354421198656522182047571844325844976803984871847052471229089246548996246262365071532179531758390100280730759498450272579801953717960093089830808472201718265797184285285967830309527326804389354069713473966011288464165980838215567693468798407178430012195774801276634947104735449580691912290048295094999159971006092529189502047691523288442411156237743174883465129321935966144961410043321203521687570564903478009748438210008843782032375298130089512942951024686293345676844246748062378679662588422183006813218269951562239852174704903034004144863569979333947874837781524082313050059899032034050420276021355924827038811614270260954223863520565253505667881136468519202669190060539909363788927949723213127939343410484901571469429967748864026471950047572078676142370176512809266786143510801566092052862893595637696094494269675840994467104268998017104752896100387275711302167228291454416415039349668659916776026161201907158316996485921158567063681567367802936793592968907817065407306244409453614774122528108245323740709366303980577691975520346194608645906437819184307333380972186887804958224136369018986219006341614117249158907225092391048160875860645406081156875301771781876080352882236073411750107739623305805516998354233378629341782597311101492497715817549184571390728298227664149852843368986110746009128930967077095563565155508061717035600773139370852827793102841234995164924454121657381441085225476583513270098921857354372530708695296043560683010139909103927640875919347415289134476733384049463279718381254830719300769600149965497927218868135077396442175204961531136725468341402566967039431440144463239793289460132933686942186610220904507008192204920620990130365346605295418563781695981305309945379511678620097569325643543111918718765767677288787550877441830612510451740072306298071303515833955035140760719331273355582093528884053243152264231310405762627489331694814827299306944068177777795576995617573495133273731283106222131411805207266162455734305109244591810866677749179981760310170455779228469653626874322640993544590437031479711734417484774570062640661338501738435677922709280458600653427816152281654535542288186582398487449291997951093851342825740090670977133582289769812394524158793064624274516286011990199508611811763192433116029749716014573745962155834763747610954931425706705335850711981863832051914431059828524790167911694470066764524416240825895168544685480165714693128100165569370178364472682887260386265302114905497601871889993269244188536509927338497720107868475911989722057361475427634137740701110940547735903136546364341119006938982510341828501900902410181087948952268526168681120707428687462264669717700541038320669548009875020568431615658113120440289948766110637602840891697910371672856140931792911756572107071600050874018304678673826361544658250297367973725034386558086634931491785120865937274634269512587932595726716761126132741991904665459059484758765570046399075772755578007707216697610240439837426049099569571983563310205019878832579574940593710467126681463983270019579130737269719864083026129960894401231596445933983369787005836784876281757880420539378088840180256417433216198631602738250919885288647320794209820651144201239074968677004057126094963664531183140330035392418747503888095056881062058269059998701913817710962780995260601651861658653986221472999891252972400520663161455019903212071153114221026125226048783232924731857055353384739886994043089356199405210866394945520545680803515097826805968602346219223846926613517453173178215581450028060265423288810072865740882821173156571266726031617395091056845468672585450448317107055235684163750742893543038031076966286497783624646616697386392511011581110042667300896821830009119446684752015086303846153986464473617863981965155717784395741525262206361274964007273158915431816928332139191564569695425666985614390292085573870810205233716375696651296399470550332230519515903847876896570837225312510142798320462523113445364097717150125522986933426380261662172231625018966276516080990001951980361260413386544911563604505899465741583504682033406340975575660047440462721773332179180142868811537195621500164211798230881545296613484858669849004408574594410833237728588820864632207654633173785857840056738282887483752410997818299421096300891327518256952410844080520873906910659117704187002632491134570930012873239591752053970451845565471341511802371577262068535031214330218430245506262718782925157427076405092026176062017472191738279303061201905827479391398510218734163790137746563946387673917044994968493762933588971760869388906145181773021553629991280191665929991943002939412354242800333990484656953916633041573513770637417822939865273081635203111828380984877283614044085187207158644788118520820988606483167830253504304035959001676679807445385109389911956003592780276638541102440961539931021356248424783651438867389680108332432461346212222593324414043291894702245981747234597458633303887781774705502193807541181739998036973455370944935736384983649625729849776657471389567560919463091840468421143556245262043008293423697279800701913489534205983355616103227141398172657157519897044187006466717460100089202595045121001791461270659573434370160247390328715953507583762496609623211441534425932434801021339742655648696491136809329969903253503780369642799329212992011725421071079694074687409714157363250017390645983050656367667176021865807278033441545456502205676126296120815481494489428646581547573486326980646549400052573837523947631365305542460285752757715649272408293367138041408001375230056503761422654468461411445145110046029395504099184330684369345196308001990604440838146671281809543765550742440187985013154792298509666198376949497726699513011973972791012591517824858275883357690050305956514582059002990197756256692532409648317566998448672967002918212001203388009514916076890935397443626797330038896847288772077305424703274322250539038826480818111407124166603241164064166119793287470684081042489000758217131729265054749532484081342520034698461765852531463736621821136421998985916606935285411934193185205489168100189963087669112568207170493348506052301284819659281618375277393015240025338403007746573912067321050284777533215679822856435772224819229548176134730083290848736269839252257943689640308249482391365808834981327202496278570114952794911755873983588817662690037091351764878537769263632440580416206770797069000544208112418687558115591482362200024567054692206922304003076797057402507530838106844289488971662888731926212652347172360581975798655735178497063719912187074197094506622617988023200947586504300588350345959422029063464567335209182633264615607094105057045921044851947760044935372945928403692427275294258663329666293820859502126740333093538341999752564171559241676564678768426754346641821931397078389788962648169305489930824062590848427652814879202940904325982038703638555160357534424899008500546041754016684788015858537228204767242622430982877592074075486341756986050134884204634613026583686658385270346122160839773862348799343514209697739424688274071319457301728661105268137294360040873011282015599858235059764232069217842051108532793458365470286107833952221729777253867360820001912109581300585572196337658351872281928556255672819041794279795986214006774954056688922563078964865148339703346491931523220519014655710009088755382594908912432609496860744345273749704634966117686565095491869147868778733549035933576583574156184443410031593916866309522323634070985850157675281398010541997304934710833317763171728730085730736983764437845010219668895011375899331540632591363026276894751268066206218792843889808163653993419183246558814290667463763721709908684826973981187945383550668049410259852386341702552921119993398983993696652648040480190592079109434599674345838920410456166705610954916742592328414406066410425351191762603381909009093393926666616424314762172105206734040085862082597100779317030345375216586640854913415904849707940181534746526499918501103933368730868221758390820859181571133905375103408305392724964529923988863825536249259618827817653281866426718722415348980786023691509953614202756790803551710866705160065940021485230481742156111783229110869868622022077991654379517989548984686031572709650798336328047571556685791191961180503028934724128798326848009354905903315146058815459145518421445728347419154874138858972340692227419897051841249986581137457616384850749758140773675085280287928531965560435603670400438637157354285891112661416577626283598618110461162333165841878410621621721246118532095293460933786969714981131849763048722255634408125131544714071509504808701544065596356996910527034574510765057977899264523967135692003596793161420826706633295307948933443664518133300188133458403757351922472914099280744986685809770906984873540841249530640670997965888901112575341161469802916062896127685770072081744545822294422129121281177945493633773294791280439045847703844767198969935412769739440718226201342758015203204675045235781132410620844201682886945582855303799437178053323754007678760054759258946944371421323502176700497214290946919534311445549528177464336799309999262662499245928642969077241157570061982272371694287458527074366660466214047820754010755754848824479512249731492161416106306133419257067714643992346633139506505259059562582168048112355331690695840465579950316056475040848924852903624425871070563048281190992764475342719397043545447414750014364578544766922463815239308698545561875799861173463367625148645513195027077266589912776404239076911146761535694521397929208086591495368571164845441179558935484430504025495901408217136427111829615921055322955408686303382896043644854089456413069137926261657978380770083365109852304517805586868059000571145347189572329682647224514007822883990191320092850425235195293427481144936914726387288422132238899251143464873827878506959614255752082359088721303276858986925489637403969180909305734814467916821910701728693050384670127312644626252973022639401281138582025485621153802267756054742928238709988422565905750922737550193043183205972560089143118165645479368689522407482027071841767254430858621531164335296940054062407243241740103416468097703700491777065111322298144343565402877403662467804659950069860278348230686922730142602373114443075403179928652850891905942036815506392295446820813099755583287336240760723984207525161456962244272188614402150506657917591999645414195891927570393681385836372696827341368632029100157750369516510797659431128429982734058866072564778203576048448099096103480440133146965744978744900441651354631611709652645083845425018623962307462230414553871468355189103632063203310175463295752715082522844246552414509601968840903217387029698529696706598216903589318081551016787051987157825438009658002724232652282967941799429558912191858859201697169917160528250753713091665569845486142695979156934760209319213687527906769332260905935058364116010749801425085742528572667607568552304344470961405108285797623853690785877228713476456078376963660415674367129483742744180826953997579367170333251107593569224225281102469644935950785454169012257773912030235743865135439024821201943349413137392702124407097956516805691814968492891614276599580199499380067941142735086418420950249342350876540863249655033665466746656357328027069120982484943270669337072513085038925325590205004630605329281230742151839468124400358414683090006504236897822615936848474348093807022140920294912751350896475494443838853724429336594116661924133176788358631278245030291227601169127036865252259995365048486634290581757752554740396985526401580016770821415595132790834671406836251411202785724012813800044505461335614883413359245945183636435030935913566042803733570068342561588570861534132538684818059417641571777476571025295659325966717063051515440033420025695068163542769593340997336185799891647978661915479156050030713026784725217891912038845758482064401325786824701918796398655241088784018170837060529131880988993114257498404861144331563785997261121700480553892156387042205543640631840738928553208979436022634228201903722338759932999348988037886037362390913170735531793651905234633867500126160020509874406022853912591439225190196508892122240853419618992414131613714459582287381216080323922223452319892056086453567338957237766524177516621696205708605166692355750793400393351823716723655904248229687514981324256802377071138072668313090012979842561704687754966066734806370058653791873500329258409752845176777470923588179741344984706886468635016377940099559908994537751593793304248464353853749037433122689369148886248290813890279188534690018458234465296747001839114681572659740597988720271365730190887477038244429615159370592660641751918730981466230267441308883441153466477855063621702498758592827926651878464399646773598192361848831401000316549487324621544247641631107066182553844970790869959856768516704797675367194671399728515640132522812625401517709156394935081163740168381502545052359771503954500305174785917897215048081401975715730981958586223071919731056550003146134138789011836416250742693848980232826805241492203297626878834518210455637552147116532066325085052574982951730899580411607609913105383618139736869026964993318691014838595794024006414169363589738237156161580280085492144581436936419915852935598958417040422256245658185224993138807304055068103580209875918391429794798513642577204123848782872031259869005067543498032171065089272881539331371826508924465739157378843825463773360259219350047168846642218585463559009713871215342519323047952126193405986368483504503456441038565725121466002823479697811846399439942889204581428915487307855145368471421347310999354136669416454243967112526324815973135524596743186397732509434433968755311501672617742732742026871126600970187549881568031334083478050375949621251613149258235851012323805523039508824177437526078650150295496506045316521164576207589274938794238362647904300713009951127198967138678103794666054048656684953747770581682871280268067325993601434807800061891195919063330959551348084667830434852106368153462518862729004454594103092252611267051710456461451567146029274219001857957234716739521282760221409819650369363628640040201847333903773023873862931701958049189674220492078462048997792456015443018085852979034121903043801888473739557971583325265438111067386965891274836749059734111926950263580410977567423507817107355273535298364927825714159865500213167591930489446625434262639040377461888205290363246011128225828182974655191374446348480681833827965746452609402619278952495684874569041856772132926100189490862436393025039821430291168202119942625508781643895030238059578261321776199794552752180925421088959025449980049604874045382686939273075496073695541377517172849046227488506074475826763683517517620132271224931895292436855478089488770277910771726820298219898263689014397833039788611060769198337165276606737078646613182510073076510859977676986919493119398435826871699471684132227217936159796182845938995585782441493275588162436133283765750837875589627668001399348980458903205260797431135524496723409372479618821764276958146787866447006177066928706067995730476896736076397122880534446933926916514329203439145126368423707720692201731539098965242802778669233595709453538201984925839978434141077933128560624281031011100393489472942658762022626606261978559165854073604010613947591799891101061238319437886906398135956036295336005513742590940582379431638239632700364714650111255097540033447091095775629238455548279844965491375095688168388414984396879174141108042438788710171572908492928939528633724346925572794543019808752829305193226306284658176443850720407317549583591286639810173075611383282736600196971567014860394526945701874432470759426412666462999504498223600000679573621076493161779983353636847030157540993292813726643346881925647793594499034178234398382024950844064274268598826624367324882691854010273126481157379443365091165162474699023079624336993412109132631713900501500051706908376833204108228783471185387145822608216898084804039133704915525594158672831176511303392172814687705896617583654607781484074026692909284121086533229869829618601606722115257522974613519856371872855227161585263425477352647806978806291234203311590400751238784492622782897663228394022210536130154464649150851094350597482710940019902386527229935628406913662771336461269200379735926302847243916435979477637077189203638292733314391379488825048484003409329056042423634175648647933652310308680571233189014573763529821894173329759993814958185279492406620872494639627027648028527721893589092209118616129136986066742496029611595611891234718015920740676665952677261520765900094788336665198686238403769777426904592473804000386137825138467907710578667951408778801552197873725094949017657980574113954650166971912623651112099383042422269043687703302516395499322070360174984134391379491364351371320707411799686303870131197326610839207669375958990910924299774627122615692621663854449199374264662271728309850002308630263148405965032990347323252245563441656076045520247497721356437994360404800912047935750030945510689143961842071504299489685205460847352454094256706013463620275554185334883567790236705599738850142662207836379246241297319648304584834613154649742209932525316967410784514029565276583313392298600183851286680505277009727188119815407905354354927932624361933259578050923238557997190185586563349279053471788662825776433973924165513762441265799714591498250415140687317249870503123243590061321173785557891563220251913786670875905964850955264118143700778731239036597926147225715310744849384314460852871522960635317292282306386064660396878852307412358606860156507760077798724631922682776704361482335639912765446355650817632318637319757127663644948850662279877499452359145507371675691081469120647518545080623166715386117273879075871379993103238446935031996968138712433044045503399670035169114553515105146413172676873893530557501009283857106320327651004973307366569063328876278986657833103769913282178715257238851984423035588442279810819826806096311592354968132588261897338323094046802981587914204632906052784687665094686719607534062181162766825629172962712534065488951860772966508653214940676689976246377317023849308600777889107143028533124572310130726380239595732947894171655955296544481276878153060338003417570799052577046286023504217453649070532689642200675167466775652842857498205699758488581725728697385174810601357146594067270699607517368332490014602253996538217360553882208455951480024178776925428658531292418463443403171405616143241413033031077613907437487675205945370521591611235591177709786973707628550756619928624933847911417147488964518119785745234377400758933509259094212955236406726731257317649170114549921170686103315686892636267968321542950996124101515557626254392705741054770359352333434008201732129610374569573372246112742414667649488891649980505045030302958558554059338101167021642009186531032953393947880217827689750222033719194983354740333234133076258579186285463511477998199263885880810462371139432802506213650461343945524738731437327980726753989485686232094062983895977702442397014065137997347855262396229963147375001487123447189618839711952872887185169490559725598433482350646460989040431957270087345527459351609855291723035412667684700540647922771301003382646086379954324984682625570349639330384380607662161684284728421553703583372632471843520220531430210229326884345924250998207983710294148987685423735556930109375143851133007704222890557805444394868138194596663222751637843112260366894318235915059934733050690448442152465101698086739617592384855311416525858682442318864646442127394091119055066340005109083603743591755776268254672336485189344578145824820825843956342229130586176415264327413994697985795801118890970272848259947223765118106611138208492059703306690189856083597717766212330407182007281719844873168067549856488666482733088657989433434782842744128118994626635227571961708860653300928403090240099852654037019292248282809242569217411528089934814643137360020616188534065746602317583380111606395195945675377165718168015465118954524081207927102959784949673774904193469309659229595846920904262681574201168025429521852225088487482893215756851574768483927233243429644224999104178330057029432670993564571771887936743526812353344488633665484225042758372093031235282877122644506243333789406577105793890643674196488042875641808493676782093159606301639914663648834404194252658027620536925853020743400294823971097074608441241034922487742096328386019988728193763519891745857588608111140767107849167390748782920844618216058073920664842164858824874158631928099775861543078340556464716788102960107830809982018310487647478855105691009668133154348213657034403767110768977856864478009444690926134019432417934725393875686679967096411854334411187284501809658190924989289824583106492216747699958179314345980390804144262430070751389779964310128983372792817885428647516684637570944404185966797717061774347180509505709918732003520969152667440085755090564584041831969648268809871526214262273592035985215088894037977634452504685580079829738015335159204444141026948047967408765080438229348229935414605609258661196203071302197752254267940637430586985164673607176423686332244599661980875915933905360414861871995774729448766167924121783885724818228145616800094814436820587629635352940059562284009368199713757005960382141698659928427461623647766744831585063398346748405400795884436703161012215341244758179018702481799623563026778511313996003718565717092978235795401240693908577672569316786176496563477806284092371160473940304173757209150762768267913992700093210741863264708189014563203665960530223924794407035462377680604879907355096204726698503141017919503672338614939287311576550786583293010152300618962547271898214452996941667254280991500061263343445667870267411021209286793310588131066439890148260474915333677168186990323815910014910616502007869156563437022252465071915111113093489933737330385287961182077635293174092106442890224337683239625496142092503271930413808613512128681319928786127777244338205834867391768351776659686096076781090919686448921689345954080270520441163486321502887500850189166605019761264868204433629635722224637267959353507011851955334204627083579312348447281854259920967319881341162715571833891575520903530721013351373260487859434486277077693216488365995103745523551492361488227493012002321443239992716083291101892901610179459381517669379221588821946958669449895570380043424831826083346062330378413388781169938065577164204147388830700276099650301542409790344512326695511673267475641131239844595584362983252382307833413031045342148474316891681599910955336215740860681523562510385919270787762630621621627086446510871232048408314950879046681175246288739252753094674054154470768560866494967351193910143092747879296464304832864410209382070530070890973510926176042144256495988600928622386040897176120265892500667078934327358691000582993536748401623191468678563335700011114895816497197551738112667117934997855280724304858543790496695272285107249493600722723837243229581441629576218330486322598595380654442855659288215154175693839740075046171420859720033235073033430901565995939145030698120721544019904531622073835202804333558194694134643533566537359956108181804058567535077994683118098058997065892463470108677343974171451451951141311670494915704025998745856740914493201038109075208017073821477750413646641207288557339950961423215872174213317995443285813351715726129066170111263208019248161031105605067424457685366766763362748574625331075664511407042785941208052850030350271181722972796997161211841116015056292374528337777410561219670071064769889453361210242308423132689292354311596202635251605368522522378363879311363000915210338234000208334290468146458040466597842623707988157347885812280036154333093320181770421611828468050591874303079526418917622273679228314766491027169752088412014724646540431597818871937603715601596038159343791507440228278198296916334695738439654505760136181010555736690834773495521174125416344011952051717589486316057994588987259760231998914764896816137350861251336440212982940518850364978832435246960320001118478774829575751821832322558476483747906977505405706504393194051325714404264800904553223559976194232276360579076218109007908436205117394128177148092450856478144976591505508042055258891957813803739491282464167063646797920764730673438823610503454850241088559653788921845895160773702545052953511868204063846764527713680509932172411802524393427361567876489729743926479466460305734805326467440722342140406777801723287670446510530281874276677763662409001391458204456254569389163266074339173047820492276388488800632259915223877620475395116752780273974370338938368987952052472020129178290327665200069564843848077415148033313973852944866997246134689988256774593640258076340318447732005754116023463370611558118763851456122465691085182951472339242116349000676327673125187468704858262558638575045572963982657012989550799790645598086211901997736525130603586979332042005339719355233836187128241161328469717298432555056464772597999859400454837948625740177245359548081872371413656606280885215879398507398704798088468599327744248050037491911870517579213041350128936585228061810906827553626673646407299344270061057070885186572701238789465949014386805203872705428983478979034736310626312367261563113953228643789272738947410397109279219271627309283697611073707151289045289267484575205918100182400323646050791911852653812515506704739958031461689347331650082394796447144423264538127941047997019225693584603507272913698003358027762330013473590309999926046020970414722098641358614579712729092583699693454100337375453978013206012386511475911645180837320360035703518792340920399878400991762626347711245821452031555828067035748923832544538179976142459004656336151597152225852969403286164522615865533702044647904301357779020127930004802692248764559581985980210925231325860542710682760713287657276271340211767880386175660579172731535907778429129117410541223956790511782167440434478368140376484279121046243619423396781090389325779352723126930969812989126526084948991259659776021986908477689930507050888501025732583548160785440932847813077418199762318141915776875825750161536679266656597722043648368092444718069691085277086421755141779628337476661590597589696294136639184568838664352940189711683382470910335332722534848955079731684498169636147881097558825735315234138287967135633980723785919488012147661690299923010550303596301146583712669013721031848519180136009301786618715303994946329015345670445645875440160066443375573119510014832312925553599063017784875996471464367183865560847564007382646450068880748718434813893533734351675930729965293657142297229520491623603307482592064879981894868051599200685247061159537307838185995944547016110695601205006867295855013505961707307708381302921904784055541332595812187901739345782605349805936623433968544482941373582718481074654701752788100874351315453273748796944631866380077663266911489215805078626352072061701955497028884571064664189811962507142714948272881973815732291427504612318921317038520068714105793054357698757424421713490508510531266487045503290576466429887517118059013004462798189822182985108412599137333789730908647746659766251480965479338375142911222004891414115073676626757574700139005073023450610622792541566975534136576887067361740366509330324396456102432906714548133640695877752329305011796838411736694650252381763307987808101007593351496118848569461533048095626606668219633868833267781881658454727348216003340907192409664764759596542456659065395885148382707914278325125371500718770072696219783650224978808113821487341909344828843649377437816570094857236035627851951757766283188586951341540788663459679887951405718192579152739914008334555717675418922114421666292436030820175762944911231868866592382978634494535742618750740986552678058494257210810699464225240282368850327889281666777293295038583305451065302479577101005659381568542018143952175690867661329191569684123168649119122988940066315507845435985777858377345588237821459392645248356206138523267042210544821062748462389693261293202703014683171253571870778979577295199267898410485008862161014846027375062259006471597793928395311274900974860950027021442699950390633334994505952993705387272164041980168023898672821169994194148161467333209092180262563155999278385630619306433104772944317725427841256414680185840017649316492106570426566219166566248321878963109644973290254327658455372472977662124083459174981466797376925637554789388720329891873630036279210403722890275468583583450201818666136034094239282648921703616622643292516051325934353362443306867304234396368351533444585005748352336755430191644800986475858043936765711268184022504321881901669732748823461122222866757837725736895957010705487632062563707618489107590609066419857452529071877355946393718201519823405934345736271764048390314831650365766967188964603277053989612443288642285057378395899362845128199176163483698783061209514836188971987156398561954068131805072942341012788986601320017210808745253327513767844187131887502190143798466056970818236007748437149701305742319445241187545444815851079161370192532842288303006806179474338366265079689287714686629754401706333577619719874471162410273730372354544350131193169202156603721029844086898582279813450848439397143224452874296572697713216247522672485554768825727149125612762082579849911108199353270488859960292986161910519075196798176074701196658339171211560087330636817758593098136578069762200839996558031406899847871298573699483538636851686577451080252713202953919177051285623817229123594312875128463677375735676089770738591654225765847684720239307948671194553110823549793031203186090417665031959282993774291094466901312987217667206848305563821002296090770524905895099511736092555248844926775340084779803706785736917060004362213126543495737175338166069691637016647694612555185190878324086512826874258145115773107963353471334241422863391268599709380856719474051723950525467829032318024995105822250060695329354811902539434409756056236083731312865734107357416629013195773763499771343979850402568729596909053913722958035661017165811781826068346629939949491521350419478965890636383437015124392754467449806136791734409621558324225053214967264800914593585082209501244272707180698343286501275101508253163326076425490360180406883375891339843361438861246046494577213103251746336653315608643666215302217560554213724433749114198132805033893206969158474268575336324642870550164516612138384651177915074017342881168769782820225841437802196990660095427213742115331990118667052795586194548095488124099084415995438971199867500073486959610577264377836103369825034305474983677454609915892595410998416723768697234634321073000786940348202104055236598424607338352164827094828948310533024517294294081687831847567585414193208316018598180587593724320705422667246652823978283987288038154614848733537550428151167305892245723384505102549211539367524612950839115892812700860243060019865238206736437719849182246523260065003293138372433580045607217554101509182151879026912509662248047245955589798805788922335544139394063534142178757321348768411129477309847064339403393759310265259573030434083573321584917504424972700072847676007932824385672372467443214614061090338133908735061400888975618327434543825764029963860641869423373815853243926410831131824541133010943733272777589261790798866745532977469577072106043523244485068452925891418705025400069217455968017230882354408405819927028202991339436335748154945759253487161959547502231275020740365547744638143411161304423127522578393026093386849043798203604435174371895111111944739158436492804633464781128172331496619382864073710953873270037224314554620268744018672930648671209093533169787126208292156516161152400277448806434447667560042048727506598883476598148820249243335314725131458865772781324180122453380046541385762621550714116727289978873440547898426285163386150160026571712596093392104853460688037475205485141777897103746123088373511023623660155429019690053393118167138253925669248902173291067012983296351861750107164908171831901702537130085378712448298630011291097922574117582962116748777409933176568851588594472617439722685812001751666149424974555434739205171950951248740010094703713577517714582780814429648430194110837478274781429789676468246693965945731719585130382664704265019162046361077360155239330616568183803006761081199899008180816079079230429112997937247363745912773454087372588955569687948040891760317950881491807813473968997477651524921600377007681992410793943275997828961973212639569058344761055824075198921430132772619379338185072176980632125354586383100386004452688043328912870458465357955842431681906225690669447141557160788654677726512264518133071297681825735484380100845447989143274320517643981271361208810077892303988532936527237293448479870493391968742526155710284017093141796928936782957232860236591783296964535629170522021472165236092534173713781863593620797488385890698716640867549455941031864991076894753243165275027794903789745344494882183914355914132119762744719084715280717557362304980798146734295123575518086771361146176161688684168360702647713309437870722182397777336212914969020052562388491785628248079573919048387240434098688076582951884234750443679284144475955246917772437284355270932145634663059457694641624739632998470963619926433813893533947357406309966327855287527684244138442273015130689790654208285190900419460096410159938192427789508130119419940427665021059986567811163578451510018593595869257040746570820418647141562649505590762222109645865327716465265033159728838212180530953136542464772235103811365161560835157799832829796767166536255282747407923295068209989266214932505050691202141002840674728487561079238155546154243752836328121999294348467948023533022090950550764905855391194242327232600121595760539254378995680775366913255686383046709945676517075090623291909871737000569389149098745379889470387579106271463261140464398111207024390033847774697075053283002890173954893673081850894527496552152288467245503597101928416624389918102533562180931724820895197527887701367818103382356743109386459899704383457954699384375680230102440368745431896465641299721203103031170811405664070831936277069025779149227796113556607735175410309635932218164517913139245381620636187805650462482613401430579714600685874491446740022871601102587173356790073522902506618311526912985846299670405043690841471243185510503494399612370420777682611787910433675857757168462260214384109260555877609272090217078502227675399326454955645379522474855293824041925394127122131708490142041390220150348007844977847548973099236603972243227951324376486337724513641248574575134086091938554572654815473813347614514352191285418063245811113458171090031949358366985023796608437163074099702357215867224249192277242817797474051993237119976547789822747220002044379710634970637535944318191501253209804820702803485902621642487309936355032381939469943700460665984318232706932295596433447250341012975913203614177585002495199078122626171838602463561111737941835540987692804249903110999101616225113060104134781833560478983051239274735438967174379890006129161528885966941971502768181886602460385988126837722970585020331163132127382407935212996835440025145997437491237273465743735640603708485102277856587201349983022662224646714661230078208932195071272516345916666471174494165454429452593973386349758010604273153192828659102384384001074981724549643428103086175169100320449477580108936550155935230339498746393603824351097883363199589286729960594589994237178050509510123956039645583069708899204466696240632758102248187693660385171372914925051336931049638357915779560757789562604529419646433758515414515949871280245893493535392733326732809964540925487208619234712520651689216884510312763858312320701000594263206434664172578014467002307024629880376177496673414558962586694471688369400319949419663823310645843050243898328176855506446680066505177878480915662774035707403269208617813200651149190585530806927490025403610148741166532118877039287540830435033330729870644402235663377795514230624540376117394336728555960362268939931161075323387135876564735935481362359689900607383567025720343499016361480689181395090832076368804685267143497878488886504310812262171413122838954272539649655443078915224997546558269656244109445963275684457674335646576412129848663651468461742332166165194792974353137840039092542168374171263174139428752206172109270624346127902825399454507667802092174492998622018991735270119617174338714572987953264250129571152196882698881206877362490197770507179916605020200024141260966361520663391186786301876845435206163678176020001821514707995304177851946270675299580607304848100895854147111827338350228171874409626956633465497714274356784650625977656724336115082004371834288330650300694961166558064312248017591186022092267716428731064485984865902026162278470894662331158599837063371321097448670212601506322154974056159760617063499444113925943106888351844597583102565061539262237172699119980803856968502941463501120064558080849730339193284820735193584684888502650657106634701243241095056313750328921468107374489425284819462128900148833356698701652774523908245280651802160833844686812748298836074543910767193636367458286389204793085239374448226896243746651930921840913837147995558717697792147768428971727984721885776181541279664939000503306824614482718625566773367722486053834722518379255730672271394917092329030452774668265025998806001628068022349525367622121232041711343162612063049490505267822464969715558689246828374971828876715986496402530266471346042977957659562972343691956657634109738008749221331153833377729620697757862399599286665939678140730250071732371242851001082145244222445403639531713597649700316132546808350197355842676799892119383410504725707272600084643321194306697888360122409000165762105639943001376054762671583638096753981296469929306630684129858908123280122179388393744461559938028800729333722384890845125809357631187760379778753781022925451817440670219705494790714029914123399313590786572971377086722622610655652390040335359112961491847744730481039870256612182816361697202607799882000803221798435790721327630948954473348769811145188953069993419927616938668467087838045731797424470479435630397237716560519624573434149374177837618196465263737671694469262905244604589671832748289409398146953573107544584829921794191530809133932199227581604994873873209938657764002274444580910644818558529389838998140766578350093143124906152535684177172969428775988265372939034772017405508044714610841864502269387378428554027160577123589235175924563516909361471847627987554460357489805831846742118244755522567537349524479026447762154170254434677344542092452711243944672107480650476945741369086270100526034776653006468173639420326415748573310581914262672573028734486696670890498731400955818239633750817689564852217453773320300744287124383677833506968942113802309723582262496377586261720984540321871905045393089288240426440334376426049217197537256438465530870866319237136582827868872546573693366536984623733232671265258851076564149401588544778880832930700726530709402278274055275639028731895117998887381742685566924529106979387486377011720271995285631581706329882984071331502955889886312865920034730421324512121322325329148640864386119034218586420331171021395565575929473424391596699397953540871202324426616562245621478776964437595988458162378327492331205533501115765727576870790102561596943503815648956543357486634879456117182671561184012864856291009981290409309814909368239170572065377985392147463057510918880894250047158982965859424968221722538893238815524963561531081399328509331059788470997491744994103873426175576452164565750943203235702405001191619308717873141796643320781629412066896119415079880862010683702036355574817352627859916057191940053570716148849581862215079651523302829752434397341674058452340283008444021126420448258845954374535442555905537037537015711156900934305519943184470794271387417502191120161770680465191849899077481789472508451961763121060335904959419734457454632867817050654125335487930469091188380310872679179228101375545683048805427256917908757544676032393089117457246833355234773964201903013997851149835361668384658688823952728362525156076919924703219932365871093241808739202323149574883325429092727367400124131725424828494858252883405842799112780836944560329501469663959128919787769154616472758084746092179585683608330468255469359052354526994022170560747082646654066602631835323855381826021639920644349716268041366012140354936505653797055791172108926441866911973167316171354665233845228021847005430973163639369617100924998755473715707692207987262582148541802602624873886613586994061297148505599795718620216502928577798905880159878713655090656399940089696044761926547380707060746917820990780968937104979551504686080126014658853615497696683918466326011107814292633677622411537347656688912230074318218670033458921277239561836200329502645759820350811851397094724271142535531317515327053666461792372464973871512983365788595062754447051432003799723358195471335421690843846596980898912429731123341605855430579279810634587873356115271904691301059694892627914843082204215391264416551898419258330097719024077831323298988780017635914179462819402749816558790707299120483021639619815483937505042153885811544243038959381704222504631271917154784181382020647403118401234128870794618716486420209820187102480631267025735680012744524347684983154553664164510090376895681146304856169512758748789438504796540965334664225717416798485011665366641507239069690747351653973743664421239122729367417367830806945185677948600134519079383145582458269459448917392164240498665059833378014411682516508392506894733919791710825590384969333436079113555381076754758349651069468392627586444000505788750671165103597666189143966439938069979701805687905238039027262630695560347123983668747247060471370848345251065123163113189570709717739445059515885968836962506876283966553722624206066167110751491306476705644221165828528417973136477483617055306400111538929733542365443596728795905432136871112862994579101741079785426392171071350931620633279360254265161419714480802098930008696012404075796927015415916656417229585852105675999017869112063586760362006526058166775445598806062252212123003172917708421269188595259262529316339301299912608333265895378160885299319563874376860793104478138277169458682811037716461293317451836140310391478587485495863729256950021474082820004009412209662980790261233693211775594137108464523508718107976714580719494529596701990420932645786013145795380950336026712718047766247584649518784576502094096160204036892062786244323270004164293666230649034044273344343016788970980142445438257698007887230459558344042209136972846634909340410242023576761202247031912958484164515335168323214989692124705741218876069905162400521539945194482330631142358561068462792468368325056478658514244112153417104704877124819617499233342240945013428402959593890204072503806088458148066163829473415788251108268284240529121514218155151945944435799962919106992173228975967144577713033779690941667960576173124427756247773462419889572350432372454404116404805161330131972680445603825721024932597534744591771530169252507809668594346745398226235407159852008685466639610748049194908001950400164625392364795329712352344568693125652143432836551679865326950620782303346789745405105503717215379835350414566845122041216540374447379092207654603123785763610872320715589527555761239184903684522817857211682925182705483333245531199545618288609321167473700620221947824360821870286852627999920312375920204004725666144128461159232288899600493987971767026002939698732155841565570355610936692568022248427360605638971836654980437719890998664701970795116653245915485174443222164048103095451835154577544607976726373237122688482306175059035242294709985753702890993489551827379162775722862361425701890839898649041462454527199084142744032128295376343819736453987231257669407379560091875707477953402202194355821339581277089754739368076366685455304704971567506498211880778506383412033100460047642473425221694905686732089665342191977207519325949122480456633319834602390505171712977855858250539566560317192025912544321077042284575096592932544515865399109937356679662904801264540988717352889215278150999035050104717201294684741599362931148098989406256992120333804638657210892196186283329654331520457153613215925888339829186326932959700518202497537430612706881527047167057955872584010257086943705085457260959487971682361509933870415245372166773004580968259621959336839787435891998842900396018468834921478761772052280241977921963028964115343304522819758600999568091252944465194596313778249509584678558760818934899957414953709658817215722320436177692956029322662233441140527617855141516749643007993104005626833192703859597643255882486875251921598238046450361608485184368409950145231035028816088631695612860123732099163713209793159917269699268772564197892792352368111009622696385541220188069981911834667147829057987717272130777296009506208121937410859253933626570906618671427611936986795315540365805413901796520834617234403297330293522076014995916158634989496417264707229742464491173331392473626071562828412975528221046144469192848526244866927343438933908758551439716013560513286145220230711585610812664217586150519492797130806614704785155287103931396114673911130007309053456086658128175333647950652279459321218734524064433147490355902785491883665056424657195451332006763035826087654567601941167113624493261421068667126479881919006177953127391410799828147997438644195257910508868518122406446034472692170510928304567203297583080764308026972189209563336805007320996737540704363929657471278214619052597263087878002487364583810907598155337481916476643362366995665488081705841915426054108809120017871139025881839978595731218293693269822813080241404299339978598749917306398559991848088433022706886814039883074234771380049736993020459983140073414346852368071338196636897142781410701848171593723915969499826429363800328789257491285846016461873893052077131988878698278289884098350034680027350590540490143151493006630832971536453488429559030180268018413828782141672429676023655329338377117386074013632874515102731007106030651954692723343562404785580678857057473928218816044720909483927795845505963833686573306589023500138193058569183551512362218305821706118469904780754398024547644130574395852293505092587818021439485469133642295893995122246766086504700158134820233615437179791820503905374158097194622827767189590738986117267509652762781641434031281296477955328853352651177063491829970743794873495075712524250439423293723202057106117313750198635728383677841150353293974874778935288650834143739871747022513251167925504376215275852507165327932244143228367559809223448584087584266035160162397118823918672337575984010828788920579906856817543879377656783578893338558102411425578362169929010565477331345403560155336372223594493842167385359951701267255440447721167673501483342632944467520322188661039325403674091587601200430799570243377064431228049460983631336966779240271266382119391595352640544770656797630146287940619806775826833535024166656551065457383887920642038482618693228380038409159193947638154455057198932406902245074650279361663168184583925965806632394455862647735032628662346428425579822756822053364289270345572107822704085997028035048390790622205136675012836099441356935071689424488391236171180560894576789596286323131211733854407025215107100103486285168618944037883541215133008840097807567078802415803703936877721936629619034549547619253811725468034384940961407372719432325735394603350427286454439318910161597538415583499565250390853714925116251706271121851226018342549979543654763907908463852198431112018694984422439031320784175550091539646942032180469793389339382757615552526572849172319797985811984353415227990509151805245879576608128931057820622760770231099325372627474742952312488538464409193356012442165709138402843402599167791381171065499708064501614191811222141107181003014714690517377898695873065773725967090026171036447266017512664003349436196534032509396291772458654642863316707016091569288777113594373727900139043440388272568411562141935278223422021978294248878887202822373326124834696570508788758204431165727625387356095474299636038888752364298165355976136725171989075354238925391888446374672279760516556353618169523719834693909821222453186196289362735473273692032515928382848638419705387115149715933406617982027832291998919979615152561322466888087540475453822768187097353776722205491884878737571748305627929465408820752806161852744945121444163311730646413786161337192228771995919948131735045054039658600342754583210074679908354465503961261986532769229021256743025395948767764055910316944490320468038956142364931152108440361814904735522638723262897324290770104790648192498055813249652338066523370253857375441924611538999308273517983450332331729688361724489118781069487593339748359011877134483593856460942868445076021086647543361354324933474231955008934665413983786624040407253433221520525330100178806371643859819276403867053630783897055398012792937599697843322331442520813175659631003213994212298408416065810592421809605395922848350429368465738677283173301046096233769568213551271456800250713442609290897153317999141363071940560582168813823237238749086929699594525017734115210134465444245322835503178640922317321856574023284435653749609006845584434843094201522607028884316646760438152607558541232384947035390859384529451753428527656307738854869769144375607465302055984999004174053327009673968351536190572999935399809456511097873385441721220110224263567755089054551243299388495504703357938002133409772718218354540374158624249547097604420136311375022832026469893613218925797377412916707165421280034054408197738053601769064443047453636269407528570326222595585090530783290706603984038305673663578233819372236822658526677212232680188061354737281730300551770320279106103582323332435627988808582731539811797819026822686496579357466856461313421384073462396593408679192571247429890340920711621750560667602902827322970462682361867596656316788834729754048044831684572684626521099495354718506719280300998345995483570750556643961344264181002662338104424334566199032746314007486574342461908035310679523661489645936611826348921847392270710686374072869041847093420632768597417395841820391085436325779760115674166328618697435391154773166164767939888276992114294736004412990190118432800128957275871017131246591870203227914289957800527061697297591962801209043758699979209298999989227702198871433384464965776147721713939457724371804266583983973111930748064004121303311044446077314192273521144798622708730691606221488507350767418831661119279570549141139475472433075781746142481508632376829136022861142839333580652899991985380885231682345190250582214504116611559335775957764384661574117701607638769317349031250054646778155582922977959695454034007753830264254958441577820243295727927807657511382564513646762474703424486364911191779993072589095839027609923589695416323481368967610394901952419132975084344290822329439252861724239114626321736440881799584193253320825083809991018161010131794329642820395622447319607955096075859105515194676982896676528580084634911849315269960387477678651568149448217761004154910670937180208510844204691165013192116056327991313999817338928574148992938879687262498767791952936535805047672742302400044856397103436345508308190336317886849588960355163820999419775472192823097078027506559443152074675384646465231088105445618920833776949209630863353036457047790090394751092088360272917792796563311182919793163840321769754228289972792511138172186064817588699714701092029054926724492880077209499827357092403629615418448918744627190753621359013841657556361945991086559322957744339383565510917746701705754178871083748688208037658911552731109481845196993240803059759737847354474434020183821046371464290246145823154849235329439248340985375239337331024594960945763717465690443580859442044756603145740278770537925719628489442112867021405235159777803939953078440060961713117222231659722483575724192503192828366343561051323537483030496978679782265388401137085808128023765741541621182243888208637355151953922316887933840607410168515602135020412032793265353567910087299330074419381315391564464497313218985442910466226874983246348606095401031923207757757813378625865897858749011031242836241915006795580162320495827291162454740978213256535711242691683236249739244368407990857658350258262121177518124377968566592811887447766984987846565608087218996289890505510343623766007374198306401408777633494980592077274719189229628869193777317656899007245329158721700341362730946940983055309422252008175190498029389717741408529252950884451826313127952655689066763054013813363386251245961153682012492523986165458430917909020199737577820115845426055792667158031309016209244884466027951265648178933680941881919197982149454298774107658023324234772302680797949025187094751404071679648667462906916186965309043563361796208707809771481180763134603165594515301264335940126896846139850601522992543288149357000681283876804128956962611905338078468933388772052971620726478510979553779812020486315420208206264379667680952990993122881300703645600585571089643338015908457404794148646015094250353743121272200950437161419159112959157966311966095132315829828320876394581615323271728172987573894012469937604117291107937749215952756910977839484124920164292657390690449378560784392658248666394720533554615379842656981088595395364368318375477635971044343426095174105217992938045077684815349072134155826766833186992822134220279548980427362648672137456602149078205243195569855264138489233098346969477408689413348248283689577918324354920415879464134563805415495342721233944037673113522276209004907305099265072213013949419649576374102466459613823847470616702519726343710200534722716260380591736210765451936425176633073774155241520157698303550091920912112254806503555340732566063218340295910683145822236765379233252804474991011236641834618212456442220247204533736106415740939645129336269427864083439625445688483599497786883242740389515411551701977514276004018653936579672719158719058812767690592060779363606191832678490049082942561739964941565597736120869615830835216489760285911924902675406916363623714368491005616911976956709189093485974071196539095008788881395126853408482463668236481706062632144892344754942357439460785997891628543728032917202183968036503792993488498231600839778044253696575890489433786400587441088564534714422600335922267197017700422125416979643099005483962126342055626519737737981604405465445760557461585519967606210742123802518155475635350306072102070202175422305559716357910969385302330746104514167855974052520004950640652846108842006307566664913969524137005129985389854947503913034218837962021242427778829918779484564125278373972495453233692984396354609179707551381867668646273469732566687456957324404310072616616239885934638134144395300539814157927944437313269973679536110084610119377673213912785219682080136126594890191719358866452134687743990086377219370882818535499952600861191578744184863417244422070844179400365680121120093963664025080154127845731119392526255720849604276281506658163551763512908726920987155018953926557257782815256765003406159838713975852236800619015314952617783922888368336170540841863521172908587396252453092245392418653347322450618204572823440972900719139525959509994950577795713272234273714539408813557090469073656174665263587017754072611015652611810443387520561755337074254366709021625431011394331472484382288969901136020682091301421480134856271204992116224852636083750949209041961464304098072717720496650262613602497647365947342349836994122960883326575776301417412003806704291679749954263903575131958793680091187116853407835636830742533598686846267255401167409244779782823302634246067438031063767612468556422289374334521594871870382733806694909798344559334331046971918211064966042798611552964461776379278835890250252837488381172779281563018820786814857160403789392986748449324222760806459623546989174183017694083231049783802702531556030617887516730665406191049284801416836114204624424692477339004066851069011494725994339481360901378659451799189396787490852813990859351240256144616327487753307791214262292585707688607508768023787078559316630721186824972798134620861287906431901286080695508186675824026529128275034434888558134728915772957178824359919824912846914168974004595502410233777068074772235113844945295829635402790151579437659737968961248245673270513662151070250001562984269852231333836986712668737531483321974935612359522210691634554475721332156012972816565906253983094285878158060327818422431026508505556996156505264344522774677993910398383139268400549923731041210410542996586269462294366654706162838995245890342371358284874172152473188515790945502731904564089361498607319322172177592205308450794243724494515268317932187374666059624509782193333898708658208210575367904671189317894685303766208842360192988803042120124332186099198116896201079540895933088818264966050654597411109432228675659768351210758347022606621596271737060769596026027165412950450495326263830705370300152213178422635409319544563415404165329171374760584212538550459887329327934252871710727111911467070818218141917423018022445469193230538251259031308363963995591107666096821870518400448249351912941231194080471829872407628637520783226022506899721732373539068345552856389883087727749010822358270438350352717110018600278764230027277550412361415934542107806072733648187321472342125938525400230622700721441205023100220538139401691096659997608874227210265003740705045266911836783224119147735082044334937823591375529350520013433201840417563648391347166356219460908566504471443252527435528364898618757852060657240063327899107214479134135765643488685076922888501205256253717866973988422501057667761509022762563896847203371020651000416090792531614699628173202637838431844233975655159282006265025780618386003308949741984753684901130490969870877503119411928008393320785667876434411380951587712238325165663390599883869154990993895271894270427578096733049014606810333735352735252957578061872998294859285214547012852020044227252261947789421316056884997758211196408861663047200366509581411339692079609194217273639656237676111048930871408776424287321712427376729727461013271103412507538399762222754171173872160708449968793932782909806461357841478308797348906648081290286540050487467800711138393075084256073448897054453355642023982225133161604744850364263398709512568548165072417445613125132458017902925303376860065719403062195385365938912393763793794522856887031470597057205431950989537561872268637552722771243686417187053276561468363822637469178959079147729998222429058396305708349420604517830185371355729086704965293228022576407124560929830674608069441436562588409001034581217427408477450638976926901571068610805842390191061673632082554487022248089645558707221650903312627815079879316306625021281720771708779114536081933971071054212387770420106301164499517017640917406118296833001849707369577796117442761184667471565389203535738007588080268742845099341484202425753023752549633066391942006066915921482980300488722554457074389109259443226028150086188749142407580177594927238576136239675652297944200172246637928425614955738583156566949821907979274597426518004612348130050408467791920056468514851844180505259753882833545547169680361730808566555489160057552718096424245467109488316162878081440553865080815756095658264643903316976495337313246278097819653764327472601573748211448861678889726469416219285612750939317480905016158564882968590301272065772152201259808971969248748470778063420839538919137706228705563095426285999194343258961296004952774451247226817841557646638540222187572545288189757629862208147085071789759770852944300596660104812709169344182071889561392233840003586356699325937518232682714519203314063915179489991341997492672389395620707330876351718978339440973635558059355108931624164266637870557268472096233109898428219859077833190183911391819057154680549776489231709932938106598991655455373007048691166532771614114768830594580670284444228175609821700024194072760660868822897909425805029484995560978676328449923108691495980855678031223533139277893465150679367967477378878507853080052556560611517664078681227153549670957783236327759798657491146767048389845585596899177290598174825584916420916516970630759104532968893533898508146408515825837182371489299681060474820728443936992322629275727827161349669405820860771598114475435735724180441533554753824795175359958216416774500441862640717385326820681360672224403785830585699186982229965494910617851172388268365286636970507650034827075069608360322435117215194503429210914495575750777866043073413308244516688537816336731900866816285776228990724797400120984736476724973040269036666142764165658300073632468805688474492894435992841949682044895011114808432981897082110642224049298839888734397754130362812535369122758947228139761459414029809938302725741376284126917689361871763851116175020940245373651102360375552934989694587825493346654785241071765575763889179933339188470874552891277138196808220365091901455057282187584353479996022653237422207824961416553431502906345544793383473657311909679299434454572965261345562454275888678408202101472880061480503781547752017207132591628590776004979939946082381167424271998080896792254069067923667593898211777669883524523696496607259190584568972237894713592253504146473327015973583506757767022343441104961403228942939476849392498945008506373090811436618213243642416532255768683482356059598218613965867744462717540006559753358212698127346219395920901562415867363522450353823060975527424918077224772486721693779929283428775655830648392081266729413541785107884905449303165158416799302749556112827056741147530330766222498792123672348895591421186130422374160654831044207511799480496464366833122476709429968479462203723895139962331569655780408345925572244875996029990426673385616097739106288160880408891121496063856228228466864716116339901409766366036412686821696584475997933240303590025175136175773138290939937682289932552665819157333553027772421003506838576727372387017292989131411988175066014472863865653881430454065241076468575211558685563902042284007686901992726268939864128145054687712567790327503582511099693554104707253557276750213871942707037362643810036881911310715840061665679505630150594454876273629697934244894400508293202807035885593093581432265040009347120699184141073174275129866154499276195926109996053142823734027661879173691775229638410928207980189163864110797775724966167898535039774684113342288941010896619136033709239029731289704444303013704411115242840892818994146539911336729276602972442211031019393807667063528344618062889259496733043331502506821838633794241288106159341990310208190824230384557861368346014546430757444234679696359268665672521338317582987718298841030374644840837167368543175015125914528628197685829487865118032968986179194913074234774653151805425135598686604917598271883828924324046476296076058120392356719628511542556676819116837951975704981753028681436766027313117667169072288297259302696668052028530977945781477211951236475504680574854186184255056152050962785563602580992565459790420170033564278434714264281678122248407538205988796791371401771018004013973933411311121662710017003642855866682203441691063221554512486618861523404652146710466043407553744306476154434773435149593527071694616022709514227442817296886723196921382235818367043790395193025637285783757076200181074861563457077672865556453446538252719814874040254576563713997229132195981762761131271417099634469468201519662677976585204775472648006231695926833172427023047652187175542008484200822570697562105152224651334640019725809156076428818771806916675414442944307645992484649516153213145077621235219091308019805708266032383216546698929328857296156298529853561638332811755275048067031705437486978604661388088938621186095343383463168749240194823791357569181751418814294510167380438615916905805269092968059284677945318073319094763693160394270933115486396036464084501826098427768381778429155993138444901997963611883613151372366661620579098535604795811459467428621267796151729204620787431130009547889058970891019552578455937476381129490227677353748035914107009703426281868754813072217370448792295890617645667857351106532227490206794508899340532151705609619529750549593130337460634135380773956243492215180847486312170096786366712374668057675867649427812869721468276063826685010718499798985040547470786153526530914591039280924250671866097568802513873482914905778444102400178976997185507336019863724447467155838377531136950825325095024323935795351500150443543144637380752727724084431665416832866115126908639107433344706254894941668822182544611209780505669013169089793959875292003509391251967720314088440612092059181006095249221340333329794019265619696597012644303970130725486043274175647740393366134554776048764137925532468773142711564366132397019147443231930250701656566886821981199118894072683823359173837172335502937921513917791416354184323575924643226203146917781352033269689131967965580668416261017668293163244076676519218319008170320923816859397408277597314252221686038473680067758947024350561245809255186898988595795904094013130521231461832723889062044017581372566766253604051698020746953038147317063115798475339253691298610248127143779321162531446955504914443270551860956877185303246838162069356143781066995723160878939005127004690049442916945913083348398078378913641246323935499966050760349535642105994232462110747543437065817343738621334337890120872644827425159781981240454190820885639948209937195990726267829609714871936788471984032770012378862504747414576227760180887514737337254526564995160153823152145506410860362739956879296138726355809389968353993901869235345128533904697087444505038003893405855485892231685529532403841732332274236633479748373751344336081907154536108494103380066988521071786860330008058615607836228690498363472981522583311678020760622718084807010293052410762352868033142240536519698706355144471407986061237726819834107709221775851036892061434181386427693164520949369070532408714838611748781047200363937923518865120742875634699692919900403317140461313142140552031974866020325370651630861196091110407974224743372115632462344880560522609459006801665497052396240400384727041724002313364741253460353501726575725757180865242416888569443941475893117087341634836074119797454662260308863074610481735199993200823775732506694292114600982522591363918487596304359368683178903372721045358346840671883066875838958765013965452171794222264551161576295175999126145604452814462412138581343764606799825492226824370391429145917073553704125545622441443329645054743824582921951678151849605801673951992925247297223842911704362159108787572825821269886419977995572355505147942777291779709572329598953118172359653437515277741056249123078769042148567826105684321427720399433858915085840108114994145422448324369971903945647969458371780004370669309006355831650778281659120235281654088750265629028407253707753955847228630353166524985543860432045809307772918221096082401390229459325314264784422994599108908030179029168329080407629369019136369451506586840839180189929274015380321059519314618604662855409008179465326435469410527836678838064590887882562554169156568278359852620247168258757567515370588331114629941055204289931616009009827856184405567585745190114806146657167369314397234625325615220675354285165389888507992673937336409215756338921894616045873923698205449832382946112050447272344376213081518412661082544688873470300508810838024925069855952630956460590547310422101275026049454540129887756443535436805040139761219725599905060981291986877634340555865643836773121751606934776765065151636089626094526568473778070161690331069805331490548495668224487397651816772885195304078962811487590162996929383609476804456671831737608972495213535591934227392007713225211971138465275902824164187400421692727100001107797615384191324332627613473060882532055935646351812941014781773572950152265602849411472943575842148823544577572047033740115850991630636238763289500465676997430391997465565606949204637710269269403307107115416389014634580234035094355406828611561063400401594563114920589503582948049936805110185259397061624872630899589288364934269241595347803404826979720387333357589543940252522495477162659703392589584896772181283223172127710855388934080016728540597698360946168395084200739425028821344876808039137125311076226444344348626088489715805697761666993807561763381471650189918899993339154159846113732257754713041188756119026205349957154051194794134652012566550701726176789496272657918068730530571945557277983222403866886466362197633993613127802549035543885363657610397050569306400409516927222263410482575811390064752944763306462367828387911200823448395262734255244380131012748260058979009383410025953881394187624805673987572802538399357767270344247561301904223817294551938022989002591985454930012671060988030434068657999963295023171650886316468875797332950828845788575241152903799536578997018885702060266060084052292968082326045420956197842480132125257111320770935655729276765357316695169359942296103674469164573067568662402246490277678812525576309225198872733034005053675097742367826895849806166723157486345288112012513600879989848283040545930250753957894240882887505870079094430669837967206292683005764900985101963337545366845827313765410757930650192111332568319132890344012003181979584063346226108770088357755389186803696430064442988557282297717981889862004159136585163250855944030088112470051992507457389331091940316889726174305668395405452682197003233098946054369437612406241247535037881282374719628231998962709032953867817308407971246967167667111917376463767719211773220286575912038288956805480592359220570200622843933588369498358708540205818160368462434725209134512305338957064276002920193297268840756172420058306725977270738743982774855283173573678715783776623884146508003650661370555519702645049519225847338065990917104892929046249498268021913277340428742401524049211738553618478371736515349212132764224946458985420322245361295560936410714863672970631356238170644357258218224001240471951028538491891102004221928161640150713317944641942040375313352051129082744475242962952091979166155915554355097301480149089122538776643000409878388821095988888113763651267468702088822645189716644042088958083478140354735899011802823529724784776619287869778010688092034923924487339445486354179635415133468131220734413658978725621831185644189339624775348158236350046283223647813781927687768392457982078243946700427189014912584015487367986940284358378792704125432828860154936748482790072691661898575388043526046187742341659888016460952456749623761064987866597336203653285313214960159501706093418812157674914593877143711664095055566580262803639994817887927724760630839658673117513845694839815944388605702156254225467224040675611059962880668980567625093025402857597103064918283568816291693981886557200040958029725795848385943230860872600186154942039000656593584880784549001993274618700532600727742931922577212714287506375974932787431383903999053756901865233484274315095584950833588530005989161860541038799974164051233960926114549718139520485300343532102499393280528086662202662136023594449741548038305030083986167596984627280348345758660596426059066497208465144572157610947680961343420024825184477421836040842964610152731605377923759159884279388181451165805302556684095697226907168045851629841673993504120674323140562136047932942586261709627880128753144837624027251255164157550861586140234441849863445348789767950875274269020291615198830774932804663373101722924126610384490031675026176817425316482114288173357541542520899729018842563039418311652073629493379385445850242108432181683468832363285776412621291181366815821595949906621757642914546665905344357234598082952316712426532718033352636093242908227871780686215471686098875351347702616483707761912630103714306173907036284128633425909763964761806999972201831123452078348911332625070664078083030356448201928377308881375515606682612099739315385295970735605067110232126252010800874064559442636745604827562395483383116989681009798779433222597353687556241404642294510750766368742147592501611781300962882642898499781015536644292157002431010617630380712946778455213181322370644154225718073957099014521165126822218783242949136025025311937092271344115365049970166780393101094263268583054153355924975368526233619161214151346068404381431639499468422201608189440762943726635532579660456312638389958512238612730008308126398814900323427807203232635320707985633667552088908828175655760336484318503048996171554228982428593137482770964936427935390296040537962304569680226956966087956342024201086537507864844044249600369834912116753111755649103905641568494401250226213942065811359355514123693756123356675229388927548373932657003711144572824359380751733442000663080766228432332825072636228802876569317067539557286772258553739296062475360246645287991030457030695401535071376852157047171636984226693386868770197102241825678730093161434699003246880600062218591180621673529882792604335225719287225809625228368824674097409143519900889416568266413232540806207911393803868675744909776183763621476671450118177132930064048213256817170953073959136653603386344268512287174046343898953825858250644821733470388636700567278574793478094812538708872596648674912188350019546310055319423158115422565442913197932998800846748352526722859894788353872856096242996779672362825201816314309074695807595228752333344219391538769653798587235957916590994980355658901298153170989352363084911471882212707069129831263756676036633169442044807552479864549610560932911646295802799948554237198632410611429201224495111166505432293155533945084752142709666882143618309644378535299605428098484186305587006624329187195867453667048810696694783332423277390564918621017470130009006814879494452709404916589646868936928430671793696051901650295565994281226556892268813939295070409294705836432032540300019261029866310343267825468624510245815766204931940777816604621532254249715064040666519385126516175706869061192094181727360377299795634573108353794445303629379001026938168043141366087024956455688904438068935429735500469308694464428261132705405474322470595665178136618953293420974074767600156648736367435553962596095443238753376707317385804735939008283718748076150548640498687250770969658732714444107760638199366663689847312338260204921384818456500886542272986419200380689157372479974375666554618379675990413163438842474767179901289245588053521846451636470388012441717593281785202103163558024399457718526753971292720790424459561962659263035079961309956855873303952698364993163238563323568400548390761077945655666519498479446142500948518820121813759833369007925272052480425960226011158783344418194681187957173600545621637728644948803886158525072672935209620998360184315024778708944768425698919605905502149997219095303329061332618121343526528055456257542922639392601675218292714704135681449406131952754789264983995693037505294611110305462717726681096834117579386794186836880054739889333898439304224764337960648901606235828095144723939408996885733235213134260052198348327968202783389560611145037683510327604309313694518113340722642274017056301060643499340862628649203022836040540603074534790794664128804356673854931278578036727961447150029620241127621914111104141853850738243172844486218167024532389020810353866197317203866853062048671421286673514471291137532606734155010123162689577939503573245565721611967407344425205439950959307763860413907326396514411646133464498902148857938422819276358607890466581334661311615078528550944831300032772417046589432552457777891007844266906380810210085163731592508923227467639433077298438772628487707925521716804252134841683808699378769903534326337020191878333771473665693114843303269343014695412293453710744926665170627612700772570384675905636249684034767798666782550793870006478024687260304473583469649307649462174929199644996805460636383044421554500100155004649872167818870930535742813467819580036661407909472221988589637364600044248904101084839218448940190014048030726173054073096892991180998475910636699613418020989572275648790837793381382776900160375243046373072208541002839838704689571679009858923767890439576259995060907199984065151888645077032510352109621101618126106596248723460396824512317329296692548862830331066421990526965013956063142869219462513873497694320055031408590090431291858386761429931955612539231968422846116770219467477741473045445260098196506010934048939760657371154252870872483204158226869826818841329107020960823406637721776005102752964641306716911733751503815371073617252810771762382524877271510966228871782053718308370670066698181320028829063857528595529107048791063624424931257523120421925361709084361838556126264464243642820846815911895526063860954126284212536173786211739948913407527090842244758024241387227237880551542032267703812176507678666781666558559505208595905601865374389628783739437851849444594689510791543877124372717545603037158128737197571914303298548472996487432788058049813255958118913326232724500462886813096282777145655715442071319251027112513610059696245872364958588742791441664432602109023298226880877668485527682021036299911946623586830768825531944171759126938953181913341508576935934497311540294046399073908163571016895330386241451605886601648119422515777283407766652256539008606195320291433491841425407785559711829873331421692263004181044289323066141394544630346354984699630299863107115334401375209067851186541005687824078886394184504239276263520073563614594063802111102477449557523996506642363089665766391962024843147122189545443719870535490713415112150912159817756608380732871308361199819563581764570020671372256189026790302476398135004036426134126313697903060413671238694291532644998077825706401437687302829368391480447810084191867591804262404640070731150430776853151344252403526869569636836637049981071641433469454309274157117303955029752486227209774872104124127656311433337276487925530800270987686498838678632733209291245139800122774600730857721603813908670092004736130031257484882579690166502230570454206093856477842785899423335566620495161395641822793332609960386506860994650345585970458087413900271722065874671055872095428048001467230657193064155309798140183738692395007854811345249379786146462725127225513961558170868309210022705220486795254384365376552266035950009307225152097104980974730509403179067266756803977437637570331863914431630022532255679975113502161932236983808558542868718962267619031870213306693487323420583500468774398112993464195680923296204434013838400106014056143959552438130553090339711136462435410611772286869799553594602348016566186264669939230960510710795930818655207629901257346362580768722199674544867551279286252029004597671004732430249835935550379424179565473228920738519308511371414624342896286248894025843006596521724076847935805576935914571167287568797515130068165118361739564451639056218336954765171593261946700054339284836166876502138619783990859496062502675990055207627566463688436386849707216958972632021710577893743896858841145375304190143747757426737925237928663740254774134602996352873735938287125801843104277862265154211908802723607276533233850497810030203187347330795518234851263938975868161064650842455750403003627006836926777160536357363924060197014409791795348164924671108445540585433152749847524035395745379158858020004712962506485280436111767430160096246784727112799907704149856706984613236357687810168228823500223965377971110208298559767875474441175532107875967224844144493933466540393907465714945872676361444799020508289007238398884128922777328167999808463998712662284584644220589873323574078631162981970052247443584835701428546862085058402522686608920210905297883260862084605941301347312569387219932043317041622676028500863311964430134230106853398948859185887246810755211889012214716764254276084246099854801509327038989259261885927157295345660428193574291871042110993230501609327955830667193631068588621342767986853693889409702384063630112404621622785747808499269739265395074494024555292989723338860722281207978576687462220810111758334728006950367285009396966611021014148746071676164987059530429214375145424544999242391036823365546455832478623722111098821129461551021066819416208504862581237084716973157757078702194267931169993120520102618058186191547890462468543086855372930959964068851882975720899278975754478138076153477341781165493003284540762104008436003926960172298557000648656646224142101640531811415783653870171729419412099716873405290654438564155123464988386288145621489388376121536556786719967523439190949140549916064827521867092987374204536494482533602987831658738588789362536939380730405205977211913120212247119893991236509782152989249019277142362332345967771874397064351182001187781666802957191970036321810329629257567268490519349313728365223142273043891980290959057553992540954019694327960852208337497938030549858474873131241398251636859441163021681732386919433800154745766733425818207296242714428654981061992026927922704492455301154104462283986654296541622227481247011032821296386383641941282621632921752152071385664595186917735680950812875372712633826264237623377838459348033088666684963063067394648371129730019599401456547764535180912618370590183129463613897856846245679242028803887482229865283634966731785211269781251863096364185725127403170814207811125471727338737034843555052029204621766525152822547471934113237129288870424161692134809900377934015685359700885253086841771083836069149689333628560954691764036682320811380599130614933043537646201513098646938995165190729917682469798282283321421337188418111525492042518637530153221178738985519485394561410352933629163313991684791450750696403829894391517603796317197488633319548859729262691875268001923563863081905660043874951002650813767316827620434308598969544268118066212700064687431716028527443722294133616389046804807351538130033793858587913552828327864123781159409682592417325518481152145978179545829307121424306037244383802158252341316087788925422152886150259656770789581939408696384691633889573597035149036718297231480152977156765936721579802108228433188717022250873697006402223514653683104741486670776733392313229964661984232849500269186175050541591319439482482829762928764764531290590540349423286946584885162520455359353844197714440811576521589511977034128828808844901194556940768367854896586784547986197005733652990493700364913785176173159097565607028967785056088255074462180519320681117793676799812863542155015924508013888834967474428440250737306329676899397736343108225641770448849796420718129984493628038960996697813984373232261147505145397257488322086160781203697161463388848559931523262596980290632155711169453238279149762192973779694575040081078170456391281708939035888272874543688291588222133803645103763682993172791811292933901240902343554849258496568137580476337962103396959129240072035124601220323711275547533704632452571379733716348643444295006867830853160018394690575785275697935886976399595101113304896519352514911818081139964347599359013470133117445820034729063710928042914377645210842767571699168068605259851677288027402634188640053548912782359252190523132832457189935039428423135287515402346023363345641691153178664604195489296661417781872008138625108993917555293580893258318695157198698476598162608848680684507456586280402396337342593929777468164109226712809739206938569666087451317758424973801280403527638495075474835817621772955852740580727499390121370014730969148792929843805991204420941941911318116425332852962995897644809719554061856847848247015898811696337035313565300618223743304759053001726990192114501826163980153347025055442397933030335934522535927462256479203308004237759504711505904949707938831176900068711621028042732769264546580404842755802162072166078196786480970044824302350761860045613527224923964004121336510674234523961130244966143146464869206970388136581590827032461205615550256156164181664364799226247143284239181102243310655373934504397191376260077707891034745975266381408363629079456599141515887077029327128541866614080643443539731915239927333255807574511114007063206656139588495950506480163001474246649917061247520583723215064715384825961785825289889348733112219300694800176594343237915698605493999266937620406465628014050617324500716407161115089838162172220987440715466449306222018667274996148073748025180060655483999640316691190052356183956786265730629162855975907678145657326675914781582080199173312010840074066334288505490175243262545983076068842505143826167708431559179656529762550885915466914035341865387148535952736658775364976779141059645462381942743971869150383203442615162112128458640304586674884403780354182598591895929272456397130458488482702321543751632808307118887163821247845105782455036749915354977594126076097874067824258686686649127052666794355744076751400171317740310889837014839121522991565673802725002735892483391994499248908562283200166411474288037831596987999850027455337975942982014910668286518568463849773428418855257596730903638969748564777184303121973859808726428162110952830311635094821191875493084723590190325852337102646927581729892570843184843357246277580763127770051672970183214573722796120163394652606998608964583489568388082871162183123540747419449252837196275557007521804044544656171840815466208752080391968222630596446754549424758970322912416155034517154681961501153026208989394232288318340893093070866330194276610824911582901322427314106706384159070063635131503416611485960630315491165601451316154842727465095994701097097185431231842173119673381333884314037309952309526216466289834166212500534604089331533180621379672222747281787624758448977317819244703553684830299276840071857780389468004127243949498019120733271511214695405850123149527985579820241710755125881062285346450610852930352459919029992863341312433175942933759446765320875138809455371734643180131300112182944128489696706827456026352596082442200591298851982347652570731566553251630013312124621372856740472106124326719614806093122174212040939111624903678986024170782635525504429263700985092521422454183077713525219351862788944832304399639077749427828930866780938863714974100046295913238537331575569520422174511378338417552637235042418548095488619343226013454310782556622344228022251367112289766532389409397878639491612615169985618203441269607158800136674193508290873385864160425950002616860790475427855872858319510590077278001969363149498006924269240243730103922063097481334757326269764303899850378192946378751440927686532744019388464000130375698994686186514284624204733283437994310274109145785905696068078669889697000617416782333980704211166897998387693611132860569843624294559037459391067558901313092125529257499431325130952597836262276927675524607816358236978287416572844494097832505695178867320722216339520302888205274946755878674692045466382638984873432995318346516234393803334050416832756160968156843161070772721679710380327546937173994050693470437351626241166639618571407375835025629616830009774582161844234618656369067442239363731294172226754617497607918513332534462263710574529725268006963390474986745682965784470302211111971434290785973661518389718810219848380886522988388088572814405350666338252852648287032608188075510369029973528616696492381573253410883528305741556727581198765709488025276596538082064872640218260933081343186531534978714365637186945270029830318369523318302040419403906083310847100714210131894471260711076942814114484201202695561460201215218581696253699016330025607108459638362769053525861321718524497572477536792060059594308227422853830300571942681195786118727051018345255364676477774030016854449112807347247418065147317466528741437066839214163568401789969152335128554581005474592715867892003366013463912883040105539382452023618464411246606491254267256107719348572023567240022369749513005386299469504624672678102294467337385893543304779781673678877706307348001151785316136778659164283580573493218293649762224849806424053947455859669028235562354853088439454837230614894298490987287818718303701281739210451805640155459678052781893056383112984122296670277742360634413123823327528513938142795545765191793428270122527256470818310694335515367887784331965007920998146808830822716675299473143246350671759073133943672520423747330120650645276772341721523633741380919494614569513838707617824328711888778737114801530616097784439001375359259066650060263090398291762511347466380536632564975088556088237700794566660289471732853512646937594535188121784232744805349458722766684549660291542270503906089239746636684946817336503574340087274674597468056865958551031727248065307190463120376012360894535042451359447329011900260138427527173967000575168215491429294123210407244543986355208391560746428759294741404642814373231632361015910437731786334415564880537742362332900180461347332501158566876072777751964934960505035346037826637168193269689371339009125813541140859007979533165930410768361487322723266177201435595861583742586504182529464347253052100069225618279813266025379955320761139424245112148271567931656673801739479699293337245190414917008008784601153520346973177377667738429523878879651231838177832969521783652877169850568938729748529094904029965358932190642063505772759020310254629972185051403938455694894627943170114286564055396417978662541546552364781743952762619768228136194091991372927424287505923126156561704147150793838901307068837058482907086294388843726542461791342115855794113660072419272604461614996879320358601325284880159278956197159527606659330537041037214691931101346849370383396889356914249632673961412183876458966102268448518076382320508576829522067257314127178844720550819154078922694040018555138745921814418572958280986807109165484530034952403046257676519252305418408418901571213117841163827017861373314771293760537380162090947219956552975599346152909462913967248886110563486804443313525119862724810250544608128110650726658749027734112507794625757570391809047950733544509755493806435826403975744855932293543071157078654022658636872317295856820260690658557385446892733820412951758871114070392637335929601642508110969782407012598077737075222597828097049271212036313703603625624790990894732789111161570001801860977569707501796178793924314075331344836444844915782027401630431574603526237877463941405013139060534395744014719879617962196320316386165131561253859893307257575462238934647160663196389270314529279842667062868810379452984246208433187610810758044433502656004563995685340954259347057617353821298236313574325704778186658072804452863203679317443029599571070777632080005486488118907791321308468005964075412943435341774605706226695615969603387672385444387668956326313653779326362397598728025940271750543925357699489812076768498224314027877888384523862027145054744796720652475415153361462694065565581849934047496476124150703070832263817971784150276668736750457962546020418469826071710232400533468617485729727833656187566725927033592711908963713196799221925339614662744946190440809981185116232080620439817070353121397472357652890074866114835574637452630133569819350710432099547716713635177294271210885706613748970950784561422242472574652157369819179639445792658366921486245063481887851953815598489325245244997278098600878974667288684922768288209906554149273932393911730127901885613042931221855349623221379244186912422126958624793396938361217667401666287900160567523466008091002411990958026465449281320423013456317590259104090344978033688212984506002016889917406630208483507739613311217676458498678667295554211002085381483480526905619286767993950885826069958948967066437588379735752042938349034380361477158197377151548850053925440502102785844148274399089607054351744371220964743461724753884111812487159904819845089336215855380468441985899944925909319077389408503728983965644374770973590005544484224848767309811377148660066576782154429385574942522616907383389857125811471241429339843393147153212596678197180275343380394012037652366591721839553217548686289909510568815842187185519136152825320286451975914075325674682538487852214760998145003103922251663851652000489675700665177342308209332921262923921356784298144896164312311964467426414737796237461713158362369904466527991606953461375650576547050547680401711065513810889645494432179967745170564470520160687984052976806476325383738007007177101877285500613139645164755379968519177936173625966290238368135892505161518439506854885250391443494955853119382505610947351982451805615509833574997740742143072171158690140840880074477679918552201512016864590151134921846691862421015041554594016627555058044971489646185165786418584047789203778756125040970513441821937038914079436163881145765377576564536601464253590240988079293953415845345044359900125442813223291716183517636225530745981221870262730943698129122727849163147276489343978164376776900864645713483886543718533771838968524637140267611501339244173517497613609975248264609496046398664285568210026152085402475801703526181557205165939685724365365537606555276284059431373021139578821403444506132499076503198585115606076813945669856837188565548265786681203001570062088212985796353123757268132151666172014659400183670492968374604005059688660569880406766145163549478244486431019712315670362081934473734408748813461759786855590398532011505606562744912500188242653021733974919758740046069684880137207090351194967221937747299498718666442564556529982680122192284812350388948752278141017132988238975376617410663838013375997253096640457241795517533441009919953952935306458079943285423533665508442639043446088550120553234137800134324332570867067159910515914237795408043282793011690364362608292345231147316922672341983105711506177308668173035981651423549275382734135828139664907377374601759903949042593536439568672536869854725349388073659321938716202835014768879142949263216869448939194075127382420941352693776096879225404019333472454062585229199262853626616302648525103438257081259306632504338824927399852145598950473272730844205665055443072527224918901182218904872769416221071596280735056469831518226558240092133997856572108432650277444051566129291642625040537939030173902700674492733584298008868605298139069530681861152851291953051787686399108669266465702572037253306928240462571806165806769255151818180301654292833452437899416030238132704923978757391717320980639580263580957960070238076371572162408307544543823244085362471357269051819195260471321463024970904609763448667044940376857053656887809703777756591935738923546815328645326787120463317170056817957297808786671935895712526886925031720513644693718821700685924991997529984952245199935780351292472206528879382300048184650158685465725405315612551480492270451404597037170773673912432917628620389446443778540446619896884778365243769010347995819721938031606050721344366620105040862376501209954616302204622007335946326702350254978667174935751823638693267994661652547980866384354680510795933847551492802718147514416585757566902036444554969627526461814644554985072859833128534530146073853764646378574685931064669329534622044089114581237152644530198119068231470312163338543782675263222437915384989963818002793766522727451901706148064966337930442714693470360867173715357612977219672449951033059417446291453412916257870488303108175300756878266448405719338391131638441172162670396488604064052945218406570677996251087292877099176341371170705771798897997261557012118996179941152192175945076324195950093449712235293183442102599409815187900120296385217988300986427407732087974899602128290400269860660534201653682125471643099517219453823681839965604127241760904167595711107722139517349601531594016943666429280393900477472510504785350424814147265049553854109954527606248033205583413062142000466400453729769832063422392066316896100620815959883142983270835679255085050639521535730752531390151557623233775000480249973186752708200629996202919722024950316022069317980484738250767483705678727338759168244895787780392107374043551123280524898238911704978306899595973586357085239729866230218364619940661523132724157034366276481032879235632143400455904186833854802815282346199561686157071428061645393697726664082131669524301827375323551400260649747831689480149745194609268030311506548944762955399902601781920985251152240975775619092989287954748596802689318853602575567363867070392210291091908396251425265385580223143882403973656042902366561946284510301664218512904390251159791668325620589459213993318125850906442349485352429273984038607248500700233012650332765343976279267096742027424102322977523845738487673575969306712149558361364808520577373301303251176655738492106429521624649893483897550877814074996643045683059142144508545302868885781178277623105609728855887799738001948829472329683884429785869033355560574833574579393634180318189275873978870916644615524088500219318935585313868516274851400006095844774971640939178326928657594260408441481509758939983087117493490545993299700943530330086136049214967909215084090967334320958283222676181953179275664059228051524283672200617839430178498237485706930568175416534559792253434206573107597056055785697834847791706695310896341111691310657440481807480272234664023501971154582192727548733300254789670863515444905549544449683702663827566145529651216873403441946433257763677235571368883034127489721252436897270151562141084138303527923124355757464159133767410522941314734474252520405116986085566845597944562335434604213019547992009112254924428989016614320291034460960888967066042878840682451630783166080222498279762414744336154371176746602635387912095603729676259439429098615381598626151890497839381410726478511381328257762736773281316995589050588191338821459094335472628229298053717280297339224043212469528292711918208916053023621162761884229132082440624685867258879860646395457192858565847788626824017273963489928327687075857898783172134466096088403351125419329058729316860664642508612842731490133996964645707045897940861001192192485816818109725455518528561145279968858213875617952809056537241174482437667039830394429673850636438547314710792904591947819889669128429189588767789131166945227789322912343191244550088518747561934586493574456657795128485306976249313608988550249267938087075578181901933838412681681257298709978108985437349236674490695496064561330780192507782429493960560275254097094928442896775545671047404773256517294303864849593004638354616957262583167701240190263514989561569620905890303997834353771642857377114963164810006937994680370146867420475908463136936166861598175764623077150367198142086252916696031374101134044743583322533784288631251366048401644175763527668813729697228788483683268002324916514822396860196554472908818248748376888552271300508431290110972689487334863084456146025070225778845394826202289674439961996789572496164346959707232947146796884952649660930273067930501675369348022804572756990139479252138874623904809290683478903623046429025827339357832176726372678022820919930864101282647206380696749482974019123662099620857261795517650434654088775292881957149992987935144604742280453937760323132068091304088035583540094871906669917759300703184575723783846508573889128966661001364627394083483928402696476582243622673220626853124515461828629970426452759577433296302366806352288193936795362527813610497622404633263914436516478432886080782281891154732488629401796368281299365344494604513955414775604502825838002014246617258636406761443644394407374194407033997983078973598652129091618024123653659157180561676782539298189972903439124435994494735791111847430490579436584332667999992060360738993606676603600329032911191293694035001947623712153349124581274334664347096770832108040961292777792756086381306605115362267736886470905514201219013247606125900508794770225676886640128691114175294000372129927384223781465922414253703560920836335252565718506179705626790530525467205239669569107810699684901106363937729667834500417935379694162614475987716054133722484052836640534837132941020819255635318756682607330332833168285520344633579289434676116427846673237273407672192222521190462124848913907413727652027478422584254637696900269697579675935006158805272748811927710330176114033177318575342231082592919871755438977082491624849659549209945151918913362990609637266975686555135452820873893108596200840754007180734391464299286793618380104288960386358134606994496041418315520424085801162451379184877516016966133014198302697512500459895538116622312506414973775813559048799786714173292350593276803349046073047096480637864855102164168919283415217277926288581358036603170417405495821539206095910465815025334164414885991341388732854536095651264888136439966444544714933989491513841428635060181300909404635513059226165734300419659186322744270852067149681266506008641780858864819016382738126247501345502508986868644532634922295337243234953263337173407675122273048480420903588445351736060185055431354263952140798844599732768297027889104303246615500135371660748938607574654938210474512902662347805803552603617573214017182319406931513993271881470986684303603610147230395251215081584712585408116603341598010562247133265633616770123870360876691489971884752594532243396503904943419240380491318870589964361692038723459432559118577166143798883285666897886828781117891180617924851127773104190093967244199888573876309486932812889968280297881653334476282316283124821740191294850909139671916184950901130222195204833601192299289855916810562347704782111179064809677797394006148190201455327653075591070778755213169856469483346538535637133388395726819122081058743767503360662374241265481131453598415768538054261068095893014871650277294058650021072201600214664005459839681040271803866323156326822055314163271077185952996376225237885489640799635948227463929432411786726334288953751333745236555918811987008755712606121409501257910564592881575086125745849548626012017926243346141511349215579751401970465774029617406518767610400053995355022176672670200112319531522041549355877352215838249419888080700288270175073667653062191023683104599710150370038722330675665606921226720088811626294509703018499951138921934656588636374386088039192701371037562803777421646312515925998043745180167575163975637525521489321275351516262927529095918406665937560673400341674001195354634659692318872552151418971719339639394073796212772790280139712706637980670515274414722667806851231642039505050749694923189728925380022060770855339937034394158186932088912967916075335765180549968822673890227375733506372418051884679323496874777297000560998996964944876103172647938140711749979857030336191809767060877062069349554749393920275225976656292771658828360585108610182087914309928236343304013694844375914939641048674446597507999766892969610059698341355155396855545591809541013070085674118561626892992959220169718102038238155752498462812715975992881537710688665371979110139388088937953901040629400466671410638066502300059806980005015353039498787436604972043922184683775813801129273454719949937314273056514922716836677538471896312331000454666851172197815454303365222824986792993323617917609589114270097211360776179603500113180081504717526959844360309693954210124989242415683033739421561135973896162752483012544958607740748448207438083370599462619788878133378084972202948079267283369509845536967811946269010683309865397023241593621803643531250866434177424242369774644327456461716372009047845833839063513839651061483987553490025257606499302192087548773992983713153074479193617031998394094284930114821696025160061145089085660549415690850149031878509328298716585775915017921402845582626762082003178553646219900588910539970092697447132307052146901340782529924302402620843206143770031041154265409762164581494082802766413727576796729634188838810712748488263905342024191096334379022103659010406553828104558128969985135865240271144597598358935435305789423590931674474370872352922584662323650273472982577587027014877620948242623159570162804404582481627076629899992620911019340783206481177975710922470694319957434442692228067190587093010659500185497420065182056830879178005006441522345756277536457746662072925729936100172025646108700011186009021183581971741559597560111509229659306688223402101968057447016886149400701215954836117018740719437172570087423541185106248998079423735257741809081297703120441979524794905471634393169524255390160359011420301168859335950217838403395759677008052803638434678126044259917655865650694314765890724932246734417753447421303347825307625092449780190233420251834320203086614536768434481231300597145961465842386530045641438981286805294100948638772921403724174807370505618127325716653713854942551641803258181496249179578430915937897512840946449568081153596486407469409272282909565886450354570463486985068355333019348394985463802039254743054589983571289387088299967018447739331882784964921291126256460102552912122796426745949685960091593846372621691371474619856056245191532453121304241227033091030278006126249995048609242285844371190837271431226341078031419765202857925374756977500327037979766079657284963254572067822728731317804174617174539200602060845858563890286956168926946847369784916428054299835676681650609276084775201854410733553174032973661626398110710399688990051934208177867419099253695243705242340441296560288377813134722709635046132915330980248248566608857216639716157927003854070118200140597401322384748764355650552295456371760025473600847710833889119577629783610617620777771129147691594475839797177057217903592421970164286960354542806814777047616555287696456634384674349861150013240743400607642371015962930927367679589962059396837412743805633401584731767487345248195549562682561947556323651428565541703946715466061723363096132213217195398281216177362803005174606793270967450216866307766433345044127419160088334085086224913149362634227438828586910614257170106901107946936396459541118472752006863918993206625066055356331500025652175318498381479045798464988677897737626504547137578606807369614403990464550467230050349373887485325457525481207602860304706475270383307809945944263670121626448649198092017520942018450489359386777305678266563601988958894852547944862712564096638701465432443813528136556137729518449789149925766873672655389901020602970853653794769240023301763769912000120891158081087504903699404120836364516367355130113394790700051321130263370924558452689281494757327671045847676462799298331828363074096700804249415459341543868675241966017509256184978993692434979815656775242456519333635088648956141124101901018607285809005204810519059485540314718117819499874963407288030319967633896322488628123328004918822178868900641737024059446638065129391589850641583461371808454872493940536520615282145356667450758311553358976551894164097856800482207079926705617274878226864654068011584730237253246842835019745045467782329566451004476072445048092198062119532992634744653150709708710407305727699376877006862041756674713535966960808657153456925555873818719076612700495062117547491319422107338088593189708393004687550155855356748477277298418915292852767398769423362110772659932927674470634925791636042499266463939324277351417263857797033345978729951806161825048440799913749904187883961322313328912262428137762034569570815215618503261202321994570568930697257453246374101798153792268820223312631216043094550359147808304181716107052161526589508870994366970141571864713983123234000595615794487638878875561166779165745037431688181657639376410271610538650483061186787695910590026205271882250238112255697715325467674067273879375598218606190720281313050296293169028635448747560392261421502434266387052696693298624438131804234317649916612194550022114413620940529372547493593788824880592776571464286892679431940006767032010392408430228051234926521936535068041364204400493411726858123432532733681842612548998460854800732146902722479717432317728348575582746308941109732900081501197968342086630886940546536797987000587652145479031644431328995048886757473544767539419117237286508238489897336656235807096842043140845811227866678221032304025190908003892898091629498534640208995972180209341206928311705942792130577199300002880949680628941373293040363949285713678803571320245599863402612696818635614955885184211573825902279554841757464510510173884904486245334923257555730209605269530271389068787171387201978981766301490759033597331202770669737634704696222734672613937612229311121571811914204791968697613974900160229132393635871227652601551728213875934931647437019772187697589527400228855277183573832926544152881454470419933567480551897714781282877351885717267007150906155159522551623146184747495583824603766915569976542425006406257008437815840929358982992589424593910498341291093217581222125829460894694755385051456352974317187626252838075087276541364782700432105646288972847544099794896665662841212308330347641559100766334498403930998589351971990749313605774368552292222166657887082173283579611896349040137925200502198857887328370569399571004407725852866362927341426082074656331216084146758820922078748423595263406709067748364526300958306331717824343373104520512118226607546532404337537273266761211159136440057160542616426480171513742916430940921732714453033193821576702059825134493119389483423372347271568090414673065835805037194438492197725408562501560423785827760414862185448121284090813835564071706086659904164020357625039274630918410654959500290244460782208594307549422524950662154944999013751456297537011722020978967261362021921436134387824611865085826859694028035275766494822038250127871784560108811510623252387057135175337842103233588577020996173223621658499828930435411896717969579387423759313715960559473301353950910142029830692628346995979424628550994192529799070009523406867528875521953424376402905415536663449051376971092832102748423408844100279272210523448272250658762905668221295126409573112619322001271718056962285520483192303751346589437899701510204452258814178500274761366920975287531601927040808264636368054846961720692027802370591276261902109318660285079615597853003087589655731924356726672891578012939563446754464065111389591422917041979336410665990252452992579462056681683871099077516196158550549436397691821186623759777660228173116106330694084207854170826308874400415557374764802560116867490051964233184523436620393423907493787466462151935282776821131198078755095116290443231757147815086695531482730652447745983298067139685663252226904004063979751019914808692783169442503633622219466384775963918607314794769025336913115087596543078315922056098225370795739686922167900509178331954956693178571154165419931657605168900174061664754977684268691373865890931334445202029498538479061348718999702869154964993066395725117773943362541831594130995108525165401426037876812149849670357178320172765486476947734785294266005067337670181255303038845239555518545187583384511505661735788425612084508038158097842195783473491483632745312302005305477805797899851590643602089744324326215622069069626148685712205632795304395214188602612026253956265172742101456589291215665228543199190740756791952870306650733492185586674902349234845076690438234975825450797379440258154698901849600616690299153974343272624275893931927212372115448037825591170927610468962710224519727759373205558056099410322367727186991972614776435772854688283982505388470139520818537397382186763659791258749831873530698816488809339434815204073699892513738144508634927767502096988041859449985933769755219770925494078072825248789477906831073605448984553851063927839294496431846986041503320886089782001624846024400245606973733116892678585226608061930787393889231841196343754273682053757868524517284488554776988993474211245372429973498079453880824046010772759673186496779546950006982979298506012574132799985902102311225853215787996195070978413569649602487352659784523506910337853173854137510006512347581424273427553768285597472101316858392014409319993599009252845151492302589429778502501420802034911583633837351653551860931322020780472372203484770222008258199595575920537358950433954898432726785601660683836126944442679736714474644189274314155640269347091493029094800074026844109172221719780621826018165761823150259277503985345591318420782936549382868238564772009388304503754266972205916212340745288199998029576329372266827244621887732532691690413127744141947764155693366604837368386860940832106004542870300525959074684528242964529359362979337258827541349863704686456161349359589419746719960524312396919171597122671674071101690702362573553829495747220936348151882906794551853069326297913736099339737432093708680464907985882455517289012668872651724947599796268296679628467195322694320216431175257751246348099933379917101968306283836141002198758162895424356455189739436043494206254447530381872863198507306392004291738010309895033665521416428125561051567102350632129209559355894931813279506681139598619914964617847334089542112621672398965670354581169165203476808103958706690561650118388460543844454918175545313447616402208044661544298645625782875650972466167797792419170276661526944222932073986551045251038937359233932741481449223601156070387834743580083895506450466932178257374710452886916067726537143732128685567941332851959353279630110295434088683262333663527014038989651621087204075009184871173302796284125105998759214849231760850743532686117238874865436516419192472950115526909410386812051221158927913622341445407394185381184300628128946029711100936738577037019595033455517410190001776165928863430977992108410144441291280938742494422988132558982365186741760260296883865227442792245438394912804517185738026904039572658832098123696464847028068872259465892964440611496637040077043455787834605904944458276479072426445064653046801643072802148174052336688800866725474628740870476212610751285852341813214584202584743046770991715346369996869285501656785857286016034995815275344034830061016561850498496314645218061444592633662761776313547750896914386824164327765586051365597637435630977557911337388979856616622168318441969216536825075957017817141097299381180047154435491906338666808194250700291450421598642823223946296521526999948808173062189966895083127621482404692800278591409092789170440568586629279296261090974859518397174342781128697205723711228414672166291388362363901751538917121177270447001815461662049175819211035653086826870943016479270852144880666445771272376320095852607645617332859498899526320981142807099751384322708011956652845452682055943810309975481439747981817456926597838439223172723144098891402202880921934252601145838430383657178697866101859619639763993762973409459994299808297227824008494589449432678297130123005385476651816819660429996573812571324933355309879019503097564976096945852288475655312166716960174788216529939560760119369623035029176156559254827761818574531778861038285390511975919834010048586520538774706029719720606128330751757594219967738784966762255450773100264360742480356380699674438615196355541697023455897483011651186342945879210360301872300299399806353365942079974096699257699559044248894299249668958841110565049256743238709135266863935791612231530715753414441624175574540965724918146508717037488240979971834069051357836102315171550472877668523521570237842915733987966899551235888135899597753939064156072012836088260793165388393000051982468192390400611175341526359455754842735445286176682328887860351103678601100041316939655071947240860204743360262187635378536255865553404490375984693668832425023246735611112308318327191387360981296289119930282775032419655737744685913492423634979967491421785850864471904194397725156964497538658741800874129205844476551593936692269556486785315581012754138040870456796362766362053729479766113427504884475674095762167863481327313663216664941588151223312967349627100558978730331442389958321829926937963482465684230218265984928265388128713492426209425314337550862935085367679994792804188300062930450990778081537912158343486028626875928226214447760086816003461953933266021402889657100166533422097826019951943577925828895971976177273305236985487913885857545041653201990437203058758035733316382847887547919436009539561553968176446620736042987892669372372302808896812606252916896560113736639161947423181471545579512532243411728317846571428672196416545814867247213981643454484491375951661655881090936759789515128361629388609534901330015404815794935213772414970830879610632731558701346515518371170451889807303304071497463709213398535006862539053445276268968181096522238448191141127383757340372438214384333108090970056839106402244734080122193417053073712097872301921038895523166430791900961791906113993681582407333103504425947188286788170082063211872131231292319651376302684387111658089905917864241740161434232173036555266912846526008719670585972975402620505396716584395977656349204547760324699080557718103170541260567863232292233795905511694539838949659767035098796344269147873023322309393508082677062225808101355185279893549852809560049433743300863072548729516513763545273002288166418532917913766650303143008572819327257188660595514479513870129935893371701645708790579444141882109647388568660153988194597433796398855276036716938324561322775595404449014036801441443922890371160695844685544988435082630802525262970776535434806955705337936532195683356331428760711495704161771910437586213196022555724331238182756931691782975389839966959439516247008613757207262324338595739597415111156044150300867724092874154468829998882668030922716325234833339818958548195462842151111371318372136908414624382989717685790302604387902527403179243841562064157689743975517675503432753792806059708782167175786024245132246054914388377889414142156020870280797006361519939878893475289863054371337562146924849242920912536416183110739739226514604157228411417154433398800419903279070294573118442313424344236205337163592859703803695161334072033672486673670349557278945606232101782856440329937250713695506865925200623435027337172291944418927440356454446757746711367190766035811330902992170070780615677138496523717906922776859733629532386535315593982216041044546481615478275095639291260563033608579695445603072576785399693919447886716192865824938084149927215610339928381091093875929902181771446975973801808663508933574714530914395522328530409290681201620358013015025760329726159829099247632118704541582575356029219678977655885181709912197301287016595093405182398165587219870453032566366801678093610762117614043120548703011519299679576185804505338641316643467940699703618609436431793845925474899493480798464977442007126984198296413354472952471638128058203915828077708897265053918686126984231271837640589445828375695791886838147595767140022658688630846279610869727133079043588613081396093341365856191181146719312707005226726113003183628134442131120013381186412508231768433617972893657108434634292239168574589685175274577715227817135063033342262675810216551925477149929741847988105230926971603567078010903689444111050441933582911944003562416907163653466031321169937005776616449072536695953287952366972758324129225157533261392543182687574672940713946799742464614737625632384942445440795788069244941623151231145046378386988530366125131371265894338190914448842822121472323041571852049423928611291021074224111489518612005821385480271561722836286808647305470227894172467421233355692165349255119482590504445047059431918640737231866663694771685083851611356578139653571934032038516006914783728096996018791783244499243989063967499829587964348915228419024552049714684830064289240240122363181596412333573106105542376499428025307910735849773753407848014430970750546981608825088018446614113057279034857831078739038263131828368860720175262470626302346341255064208049829107782168097686056553150664259696798937818301210233039206123146905735962625146921611224237132003898057767734967226576665743274897771606476203482581416293485832456630333813635262629141602328730174127243605867751703994699779347249821821153829056806544086376663709912213051100806627588138809678424424775952119849561864990181239680011402786973968998201027889579751812658880724662011001622407419961825113645026648038177057105505456082494457213111282260081243059704822777058570555543948946136828605095765396275105553075131556343280564966162200786725473979624612622156707988096287864972118832580297280728590556507616306367639412558523924037219959213840814313161097212504639983711910368153705368310573633596864041300852512135540276253110968195170844671810417474093456314609221760270831376151987850673355264581242669974196991322332395248855524505752415771747654279274797306017988311320420850479019870420427108426207210205745946538530504647959803618838592758963566017322443651236565412231829998406178226585142677466980783567580277545758575848255939043224310209551183917120018770771869573331273891515156213420120784283756049558939008091458251682267119943895363891647105254441994479922336877076011044092939626977534213299981906031364982565447425065467340307860632752219370624080588288266045318471046007152300809916142816453345170095720602577368972295914487064341232897241645552689156529129274749289428295884467109201408240057113188613278348856618077762753794211873464411548600174208481162345446872952672391842272879138902773405978485282195466700447424252110219721993209300906299849413376437176637960431450968084821003151628621952866087127382000694844536950114667957272583456881583080365510899968166485257621236314879830318254729131138555713396973214506122161438014211631351866616098889799470346649480638625506835927287236654783344709752381800761881198068749048689379039615073320836612445459336899177453413614811607036688636839784885542605907414900199945361119835571731891300896653855319885410627933013470213535438400110648749163411421393720426812537799438240093360243254231377803318196521475162359153812073973169189804134490166165673190215523462146556448947172954426841419240442655561175474394833268457231059310655032722109889143506974522117331102200467111956277888475179760489234159931483798557816366359934929228292479127338374787843507286166530852052000650163027272732575591286548268296486632051610089977230217182524507084603187563281843180508521261982721158206861578624093800773857788070019425760238534056802828530518290426275783742515955751653617950435410802995665508931045589014097304400948591538986850186670571188928072397426701408568483194093218832538125927170134947299778581577754527754777152565933213146028968999771459063937308498400971788142423017183251253690148759133274598309643323549958041402548386318935814801363948070812979545231763914083860091913717625018098128808786921463544305178736072418097988130120227044481705019134739921919397955125367678833603749149170774897035324002481366587136962469751941772719685911501669870943426560210900118670793978675555010672670495668800573446944086353648130470196676960961938080218343789473435713530897403419470371719824681195201437615925552382604465379478712504845606023098334733305405829688523721533041826196557239391666728437924131647744980155250260857818862903224270707074628682797170055090207243838913838528480982488338432732594755890002732536326401538425879989696934687329236449206515911841866628761966010785930770425500664876406025325615787743565544061267021476341806418002566235332110222144666320381154932244649411062503278869904883183831683129488157559468033147443847696271559728905334759042085837821018307021226687349440014446566362960987195187160255512894700714747402520987661042769030148641003423571337820607459452656389241545589334152192213142766774354446926144575606772141215476931660563603460429558415143847414825304659644725228788282334827201822062812123125705477484879572308375789882957490429262730501748064002532878252628626585398115101723265856785611802640835247443966157914670724463419892252131630575602093978496038023558610314809833355355947134431870898524920804638218107217810269955480803387441807846818266126632264820775860011116670773839939893070730777168327617704867169224486584217847230750835503195902870515502288145214620787601150326929755784820243812608565964299517436891620189545256569861338442475328168911388607545277045500314183263892809632067339527223589789627367659474092199527100092849723329690759488683472944098431366009436212541441008489239868485549680864362086286930831487470005873454546029772462277678218438451148936525195621323644772668969905045814101854998579366653082633945751385000537506571360275534015514935109221246149441265069254638287888731287117349244949051874262994621608264417878196126452827345250335876509423585842847818090247243843043305839199194104718162952189759306625289510593080185134976589829261456317781115567038210096512481895900713772730847447332871434140937257953692111972239476186402892175399096032524410277047623425789236944673710668330520784046095908137649286966002824154202481878610210211896995552277039251265211983364742263790145831612260611841711917051107036546106022929412817802903190803867361873918189600610152620261810358467648528790942966092811098466200916734778467603711174852778209810203664103154947583203845187729400202912333359581604182244254999404194214205261430456974508686523949752827162306970787391818236378091136242000063506009434035323600240495279243500235011574106240565994938177540070437916944706110268424581541940004899047131983388287303459164026063208650084876823021597996011032778376579586546305144378677891589135546757572382938125391016579114583269613134112689457818795571547859384283936160107731780676995667007505410517307398072043457253028430650614163665476753238672929503758689451225079193892034025870732262561058768258172348423900021480842278124827694040372411742422403707650583878412460811952980246582323001498786032649819848680748768419159089212507950003785400939895957810579485577748479582549523558873221372162065897862123302402574884048232037685256034966746050139316821476959811154227839612182849984329957011229248144018961917044912806822593124030943314623468322496770210458449995256787540336657855141373598234694016017705781257236542973348851270725420749436809607905456188177057037320793202652209290041563274300598403489079918677660991413859687984041675427381931597401379005523421917121279306028715371102435342290985750042234193992474694844597078898776848492767717426407433728967837099657827691174653161450614520624700406263531565079189287046783444104079484313884074725102917846318235070094226543157666708386543547602154130913518336167914623539421551868061884229883715087415156309675973485877685227438369768374691285450113520539410040515426214321187673083668373608695218530635547493606849837190559773261150845656356169769928224513698881300177529947403209018436053271240672782918956041509450767434437757193299523750607826846497898109881653006609540381871447422723325268753778944182800937331981773664434236272405797858828689107144065065929217380791015007738903746626740491891174841948840208499854274634303173378854922904063418605858671934537664338405840524169536237602633987225480743130393502496398688117373885820425799815428545453675035473903752236041866156801355424242338309362035361449532986416396923644302675326741541039632710257982613730839150902042361086397199624684129783106723857844407017190916687766748230250498420853901761741851647289624796769329263512905230819459828428726648202853059582838833695842640190306136853413142456483998072698633723244757473331026813125779890358598395274190032607619306029049892229246346675511254284593270831627489534197984731272716979064868145437003534767563397345849512271892218416078642386361209040020024742442451558345843885410567698445545025674273483167326112873024272822033994141450134677273898101044421645442386892463631599893997206640413930017067299194106229533455770962932702613319570193353045519626476871273447558563922034477078533180648182378386423822289373279002029744708185429014587801145521522908820224463645470416923680290536091049855227784147277408582982566033958459177157802373183795529519032890031201125022425118830098009934895636005664674671046544135954098378776792850335266101730113039145181842924278808301519536050565217145433614143226892853267156875255652502670727143059368854440987734611171498756256375903930866204166614368115434560427630187550824429359021863393158850761260719112223086294936484068280068758708741895852549790371176794809187576388976247729797925619861541696573597642881886709895180668349691231101416881329525723373786950467071506705704676433686311401642670720760889323918014922768898082571169363574607180434098405809460731067576936684566849298061423738863462630386652270514084868725600219137730461018644114974877881833406200460234255463389365297054057716631321709615110850536809076374537950534664550076771286702709821639154584733703870166258832075483901008486205892938573318743288454347758016666842234110929109285194485674699272742083872063203031227470875950884466643064210327547895492389865939427451872465282511987489744925842303611965716126336517203855393833846665787493122951981219582458276480646081051642396720263841917499474486524780816287799516838754433727799972656629239207516006024923951463051177084022973771940473636799146492107551365270484637415827245482995899252727292132717894849253704722224316800564311293881599888582134232716872645179088398086327496989250231099642663638141354637836271654222294525097636594802992727229932693238954858461488723889736915881390410555717602893727118539088485108522833897515856363662746643408695655627428844354970370650810138033782299915016194948514655404985834687061087527730769490040182763010558194658094433893837237939516371864937209682147694473927363593691048087778524971425549851669992188646689837470479046987863649641557718623315433296693157530449221772283979138353295541850948181943979439754634204403937789421663823593847415568952267871849962566828651868994388158003574669457005221286601885897602713569847276568736324902080695680787260112884424706133860808900425817645901062970355350729799659552508101245247401731136175634152701268780351117763169853316925811119562569268703699609440782754876162193963484840427529543615406364923715508691742010411426414390754963289673828513455097849849321483443714770965608779319551732869602282482085787757900976207833371867966713002327524686566576806417953776282771847310197994686770341114157029296211990986847958819525135959009663132793170780384933295434060806340099884238692819741735669166296964066713411596451412845355450063707873764283213427641756496777196582711908896818321707984068097176041789056056132567605330307187025876693056384517018792740395255666912968715694308681545761635882172023722909992417812891375832707080502629244163738590984305290884312411320060771986168688163436748417789934945214604183335050547040533824125303523747610963587768682393212671198953504049665051668087306529845987131453140391944820963050080330043985923358677760397758460243615934109692652642295420433517604795203618755000369499068228563822109617741904509607285763453531504496627477739091183047015021623650797781725614737494042607608383990932701488793964084253800430876108038246171034031144595466327693844677326686698788858129932560756021448512064071998062057744813126247389734854636246188580295225474475240673464992930524354409157805674718707086433206875852185312549618437128582662850058593664221040522451290337715110913480045718796885351979912693813015256313766680370352693431647867556655994286688743145140531921020977468204013727143478543212489251128162871258605619925158030764933168623645879916918156064999311010849550512725411276682669808046151640764945523845222334208378023008668033179244483361670348306651418418865207018727282313087144444188256214286750938723072485286119608060277170626102741243393107055252240332756013445451854752196373502616472119705983801080432476467778125137767470650552725148905492205308694475150258736005585749044093737683656234915292823183739135789902745315671215639786438053226047860690716411731244970075875613436400585008195680128510519914170253066860591027325856869545368461044374750666203228790373274880182053604229119167340873776345337323836002087734355489771616900798084032059014837354802792254157464845677445672239475801950015133771652773964416806839314394691635280226112147074359702041696267615417253362781620388920012968525466193529656833066424701094884535241148400012265428109616286265012873913532179471891972505230568133820861221359631270934779478360101829541091096683065992822396140934136274541154129922707089211799901915422027529133248872027826778093776915642663833772888538697914935493923088118988828905966375219659267122701972429199572088703745233750043594071142125456701274344878818907694971009150622948128499844340991832124733348580719774023983180361987297398429030806735331293030528055824348179527767606270782759022404444655348761112057672576062318418990129370819443395206827978111734630500284732944787041909672902214833571637391338688435034737773611871634446357834831530088911752999645488020955094576442395477792744449334352806542675502008817231014248301149617727053515777795829109302520674540277402054603212198573987478984262835052575050043111166450370572671636143301232107581797801076032109401726069371856136263200601138033618289219766639033006932835660265696890692270067903963446264518336791170809884038377305217593568481025325667774746523904863767643026376079857874222528752780334991796179875391018997857580867424991898578112466651793459593862545429894128719148550406817661829738991611838099169423852911268510104525022184718416194452304572929052550857358520638771466099150634965884033081255805001249386356066915560750569954459152595016592185027485924538913316678806442069832767971093840804154992133084810156255257917774396643973653732784920670651915308532220747781967799933040598687254370701300853631258970523120351446965072581597973242667789879356324343826789319236069411352306991313331447096152319346300732811591167492512639154823347859553592017232294887595538793974019410402208164567343448134776360399208779066947756244817202278688816004944134388587362235716037253989136991177680223221724329373610868588219190486000892557323415795531208541186258320494718216926454936378342178362153615032227863041405751215516685078360950227213481859950773495742472237169164617432520396637949316262750016366462992415164892987250800843651743811683725091331373248024313842390359324081225294556834087616036897348210890705664328937991980200701579961350640238591158917074278844385315846716127705713137434382365706306672773498509751620376149349034482897464200509694979141092822364762402850789008317803470615313189505623956691362719054619999760040323394081699180172107629986718122709571121928494379079248030733636497348117755410851514122592000270778034701085703650319770691674780624369830969148627460292346094270022701315850075835041194945849210892719507596383706585022690510232258821641275517244467834496578410440267351555338455846147714966479562791109607145149560352343267390519173969210242463683949517405869120967212680342469413456817520679186262719752191370737900053753937115363062598857192554471478601172770053618930145187570266777348464730870796995436886693039573568758297112833127112476205548160408629627236826441139171205969243214919229451442261853551790012186395829800753242330508262603950690022525460924641705666674347075008596353247012819896646235269975898510247025889806503017350680918461031556811156123935452905354406893982394093113498354298227039654227356484292622516714655269180627291688100108164420246814404315912136507070271129193512506513435828403586370824609520295857288307657892972423811809970486428297682560684323124290259249613169326849151371479529547914752398290717349348903949484576817046215492897231838686825111452811459222583178477640141857764268785169038292179031060780050983004458841644244478526387752066561502983000124588376082928389399591711752804002479022650630084123972408491207671787480438529752275242523605510732119148979094476407369015593230957275600559153910012427558881160000923708261717279055491373007396349978243585211720500786913392574652120112367660030759798273284420484592040810051022558380409617310568299673426216337056438103105860032241756185550100740596807486795484190940553439886918808227477105625087910902043742858802346972718043332312990100306172328535804286193045158587721425639735076732987901442709243591756602994250126303543135777873808785017345678999332845162023175765029043648970634172853813366570721420369209643377735384931067600155743252882769767213067505139963373655585284363005225210577264739373015249110332911246519194437481173887270659592330674394735276876826855332063879401812680942589653627225353046288544193078051296532962162052538955791029058077589785276733346469287886999661830630788900875663482585265682763985267130163592617102632383480496632683974381419849553855031578923962070573281183760792305844515165131896901089301983724809885130917855243247152935272723490141390294503469011014433300394242931339826652133763676423150566828161361935567729835315197190786147264669582684643891355996819908623819314889799013418528941168667347756196759480640997766358777911336453607700081620929924574715159982325208710230353013261095159665064441016227423451488316045635565813703352583040325349336800911792074905083923255900925163059516045003981276661686225922729863728640426135324392771888577944602833702337808253848680592773238025466997071746721251867860298995503146150420855994975902987256849675466331773204767953659523843377937322867797940588036486300230413181640870223185145507715304259071997371153195563208152968614583792218873946437168518113307710361988552122312529669144973650249530700298808183957372604394181192166944338392987671804150900412318167923469588555669126892884156608459860720092218633394816567046737125189735979505506257564307642957910668858739882299325648611144707010474204292999630274191279639600767846109775437003602311730490672687021508078857499317089127539237965184219736495486014888561156531203097892021310136561927193846627432975897818548402458177161126924317754632785185756436769476505777000469670689710609235053796380874074270127681587746069621130767215615928378807273203790443300567938914757008294856336113338021974039033865640515980278041680844523313712699643495894271177911890821916266707947012030191981942283005040689726856910076428722392613998578793898655398391079004626664499280473743913796033009727553325987023135005644991513774110361992196139922512522339842337425609189205371329808216529604812226848047363911049505990092403337897406248636310912532948004267712785607523553404351490590311767979013963265704785432512943726413779148795340931589770260505147157413445587292758092732927506664159972466621498576665531330751550054785456905455986320704333711112770796487053682503177106006346958751355634025190098414704014678080683094149027650916378048226524163157685496917969519063609511112879664938956700385953170122155001721537644503750920947297036175801414448015563766149046979357391258899705179738069440053262241800544411028870769549030521986445166612572634785289660926906778306558043367855072371002869113122650145789770934563711357754260990845634323903093638113451624529143565052536540878243913504258240045944873479537885204088794612407570758580292097171761026986432454096415201794100823568849418810183445873057674877050835061619725176167626961329786831281704260804353095811324417307886808436819451006215465902469718309127971249550033740552522186944396902201950920045079372101390696580995485468113712413635376492403343934884140714670375945854971503409176443659259856159835867125728891406175287657650453370871098459501780683461087626741397577647663671364430483271958694289854614252880930646281825378964791287497915913254423042540207900199108742397873611361360948208366391628991594782398475626951336828410936062399656301686733333466783135094718275300610174113641602014892805264161703276813209517627379309275879810853341089375874165343628768748384340268225030431755799996478134166921284545545533768771932870496467260093545915328003304890973238355848281439968683510232477601093939480202571962204511863916127702860599396881445565595671913196003078083825028867312020299425251556061779888702861142772447800931947275135043175762347878044948446177673731838783877621264765717614157862134663364853639116593741623993980665387062270740054677250237472405303539949891137408642544416918992093640560014591246382346151905671751300147429393191726344967152612351419641947343565010243737035600516186934873582981086060276769424164101031998795473927678722637825359455826738597820445800517669551636123112503883039945949220450642107381267931036837024566433482466263426435025449143269307405131061048959094150041612040662787839024955402823048658793246396646537263178958010907921855382183931437192383683372476134535944454462765253735818901426385940550640638162627142766641241067946330761921079583732042932568631154617471612172299263072384390342726630375034717776784050663579573038406591182979668861051388416210532751723131458801604625208282488492656575642097055967585372955383992641655449722720332671393379135463236347775877417761720453225136633691834897206795856914997599780850426458230808280175932082328479014624894411313101553707863211710737548257923677511684341993399016812695487325682303639193332842050691778911404398600402562779255074763526018709257737242118411456301551358418215118058141689529637501253178025383873137682549860127431630759444966927675101804946534002430812744338850415038181744499068381844112847990566363140439160619367535269427086843079864173933236574090997251534809545180550414296436314065322107847401220392929047056544696984842949527786443775237705100920875811081392077948116209073189574067941493390589493884151005867920189631043602364313767822568824859404854340745425001575816620062713142450295294043015417148247077351810262048743700327655843993271183398652479414368925144300226923066500271692053614708569135571892157796983537478148242902197457829155244761488421133253512303143154248878486360320135711819383997658604462473102596355226371625260877526851217072995672931533615958189715431383059850040091587689222964036180876549999602726811580747149070636433506376858670502954704039407763210256922729421905867384221459067902486732403375149809729281085665074968786552662857993196683722860653248940864869690997897102198065413628685332579759653883836022162234521873578489394455686702034598519353214925614737642537281622945454550274287706585431299458203296631397477721908574004952618554886035495820339049478753295023150790518360412031413760386229826737872018056410407356171908847272579440536556721222067355297222278378138801294751331923647522081139299668026031481377843595728858476835495456418970558553071382159154268627989858269720252283095093932586601121453323953558485142786370975570983759308270670495137326169928504031560223291622111533490952315752060627726811022097008350617257240491384207257668311426169778875065618731684689782372145270734445283773741265273458356309318327705182288812725325863884638864567625704332347113136623676693855811816060984642786035968620749063161057131174173794016184703026237592061305099210610764963246561502429470409584402070072714552533945253528153540505267197290957937895041743713120772880882529647363313321848608638094904960189289851230721107120442449293324219526089735527383662634713189618945995111285473696274006499360124615378633673342614524494039367027581067581628549720425379832409393660126417761547312557600025057711704158923396321406564585603298609526728608922980169179255812474427260308166887946459618548153914518971039048477284040030820844030757644957912443615782579335186629524781574933840732766373839868595620933567813741294561429345290472762177983936395238218810810505018933552705472459536098204919535353825688186131829202843720482228993278765136848039717442945118304012584077749838108564501181254422597712066959959458219198999017314245490127348146795179528670675373738960265889300290239349412668746060836445754818177148470655540197872536664513219275653595391894211704326353604929511931314218926054203157222668985482493216699617037857394374927087113935951563957478938791434003981399177533413079315671799543204908971143750941246131959993085150537654814117191949665942752009732664699697715068380839307044790448912235337430095152289060600877568714243060314758227678432020499539786705382379358433248836503770647980494440360269661183237367227364190311265351419202694182001973516882591465009448982410057619080641425704703156210350166195680620780223349164943381476066271759523348292155692230830149541217805243130210839400005766046957398675094426364314013252053529508596500691556406644072695708628523113572635214354373801942980133746053757680380913919921379360672651851195451903136479712293465984859510915415219327298342399375502212417465351234447999188433536804101646926322800434848230621330266476435475858103387351726089959398678147015786775059173713992657943254396742696041013154829419917530110515319532231209854282790585261015201331067504380561278995831094863628477552191639537934338797852099866598674505933879219139543119887529893656028433309175157609192516523669583060090959348188722537752781736371895666037853711360487640531443225742645006525926345605569106176980066125075068913996023557789129650560136348117844454591114399994375535100460952893070535003394372662236657464908994889417209666016669548012827304574209869852870460314395805882974621101495411841187793341857309071999646273721395241706369875177585058823038043597613532399457744539642467742867473546279997377554961013723120587346032389955805349951484430549343632175804324281553036126754924328891632831496871489203969181688948644382072769185487902904989855779743321621401753196595595743023407962177435204634910037685087750168987244365057352874460557893290702205804627345952282470114552709053159334169571185104994344047425792130597037293740806592289247255954484174737213680667505219007109995376180528646475842370884789448862699867720711216899900089786214272896290538462087820324940226107624439995217731018175673274438470625193829433062708166779245270407413166695078649200293141135871451108464303175068573480894609794635898043009320543194540453705878676517083834917656652507141545102411046584194739396871743319723321842807477125155122267338704929953348539122722003717831345462142857947395563470192720534475148405799035678381164005796029119405780183597119265842294726998409362705882421530567254440949223894016838398160123103771150890141451279083202209415859154161150968996278341771924936604516558360034684512939326046902494702087315739215566298300292477452327026460936882599630990842668749154645758052449027078415578940371505197681346570585529625409129357301366928313325945642936492068752397347383212417150581935322585720376812022647674364885951849774141524569678804180566429479541504446912894105948697761676676085566581506648428039551623935507580940214393954042366601492437641731003829334415267827509731444646505665199437834759752951491038608620645042261603505187619024431322951997730537998492747031917388965749218446699821701960920226405513270616091761633010615081585520471283291409155741018611887034172044254696685158178649742488736114726564106398528141870594485558660481198414353181477707191212313610045897925407210505033234830512162414747015221499252886202904910894814947264412221387228154933851245389842227095996344027308143076014311430243643875716943033846920857428722021264172745095975531216423109193555582737464043784558599110330711908572162047389318123556542177295583810075615461402921898203578631435542519188291441839959551821533871257432821031306755912753911667883133629885674657872280884431706443131583882236589331333363285912930792575492469654081613734918703236931935123259643381646185943121119992636980992659801310343269565254783896625648564936807911698639068625810405209275346236776801883659730415113073164030117439755966363585635642707716022896520027790110930031742272776487324541924272104163177993955522771497588320113629771997311180365331649470711034740496173409865492232138097983323354655457378283715573024533169297236695884403983113825768323678624891407773608542851154560153149558714206216618275114578526981885149096569263733919112797806136424318501372298948794888812945888856745253130023901427040607931813859115000808613094084824293155278621464613791850042058923915308691267480148923918446797139017154877808296341499262570162916908605503688930844057055475426095985542700147980521054585571539996375606155708734590414526343338420748839957904344009885396012937570338672390158069984056561134548089385811204101189786101767396003215403103863066596266390315109014871718064697368881275131952708449334046470222930960395636193062714154125966759635611844419247205673594184820934041571591696481967217218408581572173477709846435817197021975856772713875316679502269091364699961302192373039172748397630829834828995607896761193876544252428671829567020464645147676003675823641872997514438869997430252679599655565830539521912179737790322708127345700162468121935095366719685156821287501818741052048313339802358989539589480325379827544710030069694300317178378504387793747733235534139958343781492445796723014002107141951025385905094770661254023245893144786029602715331099131985834301985884870305337058489471798100681958844784237024564275620262951096243122708918747310006342260646271534405717340619896439482829550886255530144832838585701982175613413250334866170675382694888441454632768959631407525022205461011178995111617115066606818935561903813442760417084262293551190535306321451735203262970836340437827197966250328571328431338113249853732196847147001565338563405401020438444807185850343353552989207320058787482481520177241285396678214212162707306920270158753306136005819539151654352295484151781721268926278328696334723598646766773110425034683665597990513699354460965568467525215651746550887538266118907272407549157284159897893015329044783127325371148389052300249258989696280568490213856410954390535089915880367428271963512109287278259303755121757217994456663505623565489343790568943587663262678460100533509506721335643244453412047103503060885344017998024086357290724316097746903390286747784105972242664483206947771444298861307035036280810140796833254578514383450041776093254161073030903192278744564009429269514800014880683008592969129526289305966704887675642915404807339063600390433293739118673763361824247786361304821967886714350094640758716297131418942874594327248003675676123233035398080181783434924846294067249278700123802557656782158993716458081959077305727327372403915059485045442679168085444667579494626881171351645473725148209052308222600017507533778522493408084998327680909186790259045053742193551350763086085638879211747457528739210469100403447629152901062904504688358127417270132881219528821021750762066140456721867088132064368894881292570871923355373792128737849057728913900602215736006046365761586742182505352916864546517751235517911091021930680814044260789025349378105956011766369176504900674695044313103194616971609179344640057799265613294030627804938691720405397186626630921691416283914386578277033060589874012082711086744322578268929964972633993228950440320372646984169579646591862350017799869095103197737545698412491180621929994990085521183359847116929527872467694140949496072562753671466801222229128407914623730772068941334569210580855276966929840912268589048361304704438672716648624190828122742659762631466919935637570800802302489304874581590813923153962991882702818401493393081653822328841842199171576755187805423053789442535540797826103325731030122604132410987444117887171208316501759939893398424388073044840110522626976976866072639720837303495467905684723182786520464322368428730316822085689982905171297310722834118710292574195386040605801232285908866952441460161671763583109617229222370924052956919132573828113100595997689477314070125614743048484861015321603635683364756278465756995964647874876146957975628809156871425978483178446685020281684933938162155852645846734534960684242878755710378656335540704646824489654523622436715767239332558676327099216662767109975633071635808366732081374677760207870698304924764742280610676251624599512173586005163394876391584399134364346470383388602469486576256721343789285195477951398437227560573189911896900293166012882389911467151987346485924682838937255589884336710209509091112388958478279885009511219985584450880531840346703918586550630096052293779462440031113471854602831291592661422018122871596857028673714569860043452694749837091384098251825212356505410405614190860903897365641022475342791053177705159743224413170434771757015889759788779376194129291846845501556361653172939799992466206269213952390650390131217923883773806359302151244473870477728761389342950858866370773967629648635270460250826298859977117299515487631196071172564368637027748331640854675956800809399884399605476243659316367793057973984796750678017045574226469992387306971497264680203224294908846263080934244731283954543967277355891885194205994750766703322570249167126887046901530700282081577503690417974395010102762470282592488948822506206968210578199306369110933129601187477756342832043028279482295826898567721499004907847390700415508128188366356060820502960958977258789547113609476018358816357658169197452213940076377363263287883424514644484102275048782771989711427785733291672427524429514233483099233763375515732204066210528763275152344332089786219973686123802428075188171222006701124847489536168777071156547453024768913421701245237037394044019507263333816211277274286663800475260803304440652747465748270785038514107868850260632969863454786846629456951296763080480444003500696278310613528844550342796070742530671002095060078204685923049529304223122521122340890191301746736685391088082778730227921551360632873508417501956760547251559251411096946463431282172538353179211519833262589087151950594202983362300345323536967489246121818196058289370300704167814745032308464215755495797273164684850493203842270083300696675539692333789150023862376982521509627328970538548358433727538077285536293497852973312413093369562680093400736764429597574887619733067600049624859569474852182379975727369362161125570573547668102687187420519128217362793217043625647427323436059866230637226805834902597425141200106854885697754197386155007126685126713418654792267557560171664160584516856360906210294164387648798211538148752665376006728173791501828207488809241803361444432819208300654277456849111588588996840243192414229705805328130873495989426818009165611885990380749294743056768747051052713253384688426199399878608782022434020120543612731767035471666431042763961389959616894577978214531375383561101644402691224721640201091070399139070933989524673221114679598152188550411810912750814050512414493960237919732876411179640280062023887373187630400831252602117202202815595624944890342354128458675338639842645196897260519041567159663166623200331243569498297520830059990976159163841785942824400360681523047883466231043097428095200341457615989149272665200441913670251255278182943983242716504208257577829692782113375745043581559397523875476628694356832515798596196239802593618501344237826557161139671224240954836613080886279077625215212035787066820083809528244766018008724184014320176582009570597725315762100395604750262072148583339861857537284689794482458257334144391968255865209953166413729109304343180802042886961489574463253799790195889673098358702708570909835920353918109693753246962020222742257943049462825497141990919088520294498873470642718632554458559395606458098643389018061304409736059175431504094668428860888694852528568789868455333512092447296462989315138913716173271906966226327063483352536534480994334565620198019926391107690651191045730811224321700421340312853525198264796201905997313615138042812701523755572975544575283781985563518516065237365587094834650797117061451480126054061071843566708043302028095080000302657963390084516902447919256933137340627127776012959912185806197813770956769026386841497788943756323963017233783049614166948826609306341380961646637281125722826160621816126071267882936444455399187528971246846402848149531989957132359797158169375457998533745241487148782694008864000687580545278595747089631872482281763905974770507709670895128403326623147899660663968892877498924011192938653594893526099636426463733572278769917520398222552767487565259933987834298170764305356009371605147161135591997082768177289812831752306244259793791545042498384061106676414873193944496922955195783841668782740219940765149602609833644992063688074909738998766383368067295720056143852699970529640023365521650298348335910834780795477365505704646571670349224388761416517385987433558196486637448646026404056337822346061835775012319902144856874499788185781987719806561301739870843349858446392209223594847001971299687907570252400571182685879459209451331670676161545230871664746680612773444075764433895237217170377852297705654463419444017426417047581271965795269272515300565833743570847889751371822940639354769224512065187196027257742837736174336563589036449302029643313600572427769195839028953557614926383301455153515534188257802509784221680584810405046577016875001813880412717180131269894485917269490645130023136406031743683000103985344415678080554876074200491288809124469308474464924900471168328288056281447949490928761613422349669703473689950465817736883250247408213077261446106231331954633745232940768700317620593078562048178764593263688643160053123279657438928663563157228841952918099016444553816314842725574360946013861868887835127019155722064779349047502105764180914426795150319916453785969136197317811880796313076071601108302345546114627432989452425742698058710475433022623240259980384336077389138034694687268953619939113952942207316938546687942235672836628902979509620756439374569738271133637156414689475239761456294425721824776495570987474470823115266948524915460257128087359772241509217788449255610962232864770659240932606869685905406930688476773232219687094862427164849382627319970237394349875706186937746109246018772061858023241930622962652790214831271872299634154599438114755052263053226465673565041411378035632894728147746956453610131542161552224608801057330419063006559013423337994746274881008380435110190890435444328234897322651121086090704384992513454675312766702934219165868683406147513673596538972439227790400205667776042313446231689474435630509306718742030351616472498744809123084309147769152714930787456674223666914102296198275846846291147903916713292376184151575698296873836864080012089328307956751140223166148976034994035305707433400906141064869068745669707002343121536297057487270189846644190595803742490289372326226683511724688406670947436837159025065609028390125195455196754139887653169316796544962498703886813262718566844154862352198955439758123751006198073799821416668229784212536824574941125167977113531424985133795222724040052030353161147817251803590546399424820384905802086583993505525549862477177138048990402612695080100470816851327726431502093805632929051343881704545292853066724790476541621361574676934299560065814345592977758600902173662616133201309028070248792033199566759081878292983483083877716525339602409171656284904936578078484687456157266314704026852578510118540916040916397033160338119682840531462473541399295768376724248702119384687064497646235199847463041291539913442209121113232225139321058746253166783663721407559552112972393831157792124220877354594690402334035420137004244574768441271095669270996979484531773447958166914924669954145307391739357584707069345804599133048781096846605622583716556220546329880182661323755967883754897017851746476682474526479336270257185072475308404700121265953705552730842162336073441933989064452330981959889545597845212765146505740308746243767335323622329600806061612663465535291476441306444878441961638335823255176162279568448087833793178571956207492275828477148717583533471949777987726329654529973090653479911679061208350119382274156181612898084746845689357498108942482293541732143924812232224401669089587673554023257343916613202355397133972740975942320437118558915380681202642172944853304203678584488701278132646876187798392176311053624383930398055628452551287635020583960415163385159760473148664124277216302750422686508478213777710202595942319948661000602484429143308381479515328320573031240560913394928361999901471542536075975076353964818031692313745657755043752408956725527551352663421123512532087064110045323497959980163002041975964040700121691408553417050021700057871582011036653308173761201075029271534846644675498286397628200377134435417850260783984564930399013225409518843183924193763290960128217818249629612742804206744934713802406568735921936372757039575917337488976868828774514230635271275764756304146078561763635072865683207705499023799932282872765097644291272235701672691555436926483115327259361258490860479307411119611427940013472496652565074210666188138021311074074848105999069801128678654620136343030219269738469432214201241235400741604637830783718243388380467117925584228884979835969888415289066224803451037759085595742733082126425520610028702866733421739667342809265465514139966542944125012711995436237076835774410149438195890650004213610917066282303035322966653247160740101801997971294927468295130448914100560747873079125551242474264718808283263545000785410136977674691257850834540926911951583487185579156511341489614756992754412932647899830181572750645533021471607824744407227491903935734669019901518841437672004735835577009595850050808166038246187216315839672348760806391309795357678091662006559643644995454974820910235677628875857746471869918536788235172346737454984359974350772243251725028459252158525295041901476205851353779273750880511857322494115131941858639934458018834424413853932531393219598025422297454606497871270808434663658147065753572272644650783716213471044355772103231568697684101256466133500795149133502787487827016860266000788121600056476852419501520693670126158489192152231490740878899126216916533618988713025770922227389379576770057338656496314344562371268315556033847310476067612833764011924389597024394107115095163560754848198877426062496517865477476539747500605858561502115263976155042877251525943669792227704512256675008764178086360663156027593837924579418165212953835286044117360343083976217905197049464839951651515216041474494051622541067238159912567687561904828824043904039676387687266124116336204087528940775581995332604651272675305077020746943321634802241076218723393813966895827041145672302990280446464144487617423114859723214230570567635755285095050979110073789965068661931211841738922415858110051013754374370150851201095713269728314130368362132461699926900046972094286791713444090476885131938951300482149087735665135944262516933342461018120481008363562992165003116052862830994671956151557007284610733111542328510277692728849614191673964772279684283135528860440999379592379554775402307433651846518964003517984918205698343558877475260558365468305930010241574041647606254696843041447869000217168482450232475695900750638320077418266368857372831791645216626809762618967339461238926194788229424305145979154243884418246833892604380951734462833454884896311581806861171052502673380493821471669786943066864546077369010477950951094314539386184004305160256703166404813507600096379525406802107618120747618999365034259956003842909816774997295763654320218027134183322721316250600693066409865069945396497070408188879671870063560242377203042893103540300117981039005653922066841183900969474607428183846485185313725168692788908749203781583585612541174280471916350240867301671367004126379683356038433301119929980340996623462302016959796307767066896028441150860446527379801501539239797204176466095585246968267995631183938481957168726073517688522522437965928288159984232582654583270422305219951014460605837897230561502357914727550059329298706675539004584957862483513033401469874896103296781112947805268997508358769451983592223230518624996263792527992550322445717518489003688906481574354571419031572654857757204145680457640340564189789684105779410178779552194899376673417641737830960955963586932318597911711022228035834330431829099592918917988229639402831890399571171955745506946441271235025224757187078810341649644481625164578531282629533118328346932869923843742137780053452266315446726854636926320288074187360730035200914590452632187103470253268531134253206672357357646616975635816569523467021627779813972034536682610652021747742481469906599696354149793053495161755462935877824787582193378320637417671540463273639536609925014156875092543319778855707011404679144364889568260701764055792282261987845437312408462644431879817927523300798432546731282601180853377262729419605367249065781199511010215966702918040870953424948716921843485854585034830742224223512030208239533330199865547358464303775580649133684820112462557119881103939285243698444045427649933159889693047302265148040361205795368869704734739922361159312555368449072971680928004956043261262107689123569183354862172124204127953787805879261074239633487516070794938944625343636791869142859317360897360690584731796994791539789501276795169542985305934119679240833543262800571611271291798803967725952205239320783679593596485899844155083988942317837085107168106273025837705820780277557100476941507146017672282238588631826856582862493380403749440486404503105293626660919475588134540767491294403956422888259051027689413972637561478864468769823444384336273524363521754376155865289350358380856987485673628661406950448902340627752918941641787256371496253500945231414695429239051244510440961253244008009513899162657938823234082004861009346125883424099168573137013085290324876327735471819717011468221990079215962060591326487712611280316438237129874616554499640621276122618584553000825701856450966039027554000392932475589591053076025508435817211663868574137891981575223129440571076079568913209423247244826169240929040837406380724397045289406246075866832944622912863314229960064535210720829841738147727349355677192700016473152129871234494885436788047491939150937684713740197495534667763319666037952379206802578703086581729063236227266067569556048528792355970067777203161027224052687494986753238075957941047376897759690545978489485666266982604939321592542212711950345175494162065669183567814148673325311196050174459328748700652321154895128113730474015925808515623798481200831365466815059822372434354050594370776350012513133895502610374747731944400711000241345453052034455026976348597581895836181525647361208345661288411461159540093552329530515262285985348444886718956370820089435528825009606939790065189048522974136437888226202505332008019471081126036314497174973083073369474032536424114107294622401771724168777262372862636089355834951545503398383237887119216735142156594765192907919677115244765359548379441643238879191770072144137326261409154810016121416957104711978523543456608223615083539252305915180935199432170382054351403373081840488274542640157188938054406342495658938782661792391361263841893034297608075428805510709719903440991275884724566373697645156997019688877404230420839615976943175513802156353075671184496584430904457536635371317594999423898288613791522630076891192568544478455284725405831781026572320503928728401052124813423808329299967901892415917913113426235071937736423797786078171710786833042883619921172173176995627987188163904281881257083381919464375409003399564463993079687867285826988573274535229880128749267541272324752560011098011115756529275413282490215049267017475707662137011899370819503933594101191625211152469237537895176738944313843025808320245926485443925883617271238488075516744347239884485397244562191635906094549347040735783214230782499540540237388146874019222171569642339143553278225466073388784756607046271684694082583159745285396531016465573903657560301165598887868014305991553668223153513849042278807209180058591125767995205960145288053658110774185362666274857526412940479869989089093563130422460194919793230196621303400337922315978610261921515996112237204254402684452934147999495993890756439442795951499042213163458492693066683694118405756031895591726968135139196237457512073320539785828627092303306917846003715387422029614108686479194164135693656750164063206281897440019944442945257098895934867729392766432102344134069922300724623504793889955588891491219391875372905083472964274062067592603830791564034372947674369787075819626874428130589110630441325362080004344122369462763584390206507804962410363892136748351902592524031992583464998798131015587985200517275055977383373806318448185942128363721262106049576680388461905581502165610894572928174302315654441867013636801151276079578539354454407697950944430261201177821140902350037245750536655211273424442007483153108939707887051940130290262061599898078422019219739120120362792622877586385477984790302175102542901152920100097523388503798843308816205160285869574628100979542754208835419165263669245935524793470771207353741957550789212947367021158857411309818733273507100169449934447028400127580784171540320614316810898122337797989358868827349113917551325026507016207173782137267554533770951344953988831133064588249409220489554676242419027035201927451109079295209739672266284552691149984737921992757175615475215623531659716848159342426058157507021117551787744655127060795985624274407835043634680733552586219112335602683975573833983459889972020293747095339674961930198979003608153835033406659304247633341688660334401701196256686266720214969685268047584546831471945702733297471290609272141012915062502947353594586819720754748945468976001526499642620711783020229182590371670357333561160680324392291962849489765216630741292151699871240243605399694910214297202211056281493547414025166254499560478207558159407738697474232891282263329968753604264258141212853312701281010800443228538180592247576986916095708023650007886661702122771602471439538461644902153310103625238695181955597267794370542093322126814312284593685742813064173800938834505498980539061069179785114641451667246653420691990446839654828223813160536281516504106768415862358630201830703296292458481136719850113245385608242174407899069606619342547460377536801181094900646075719329087867936493833001493663065293493358862043579170531891548412968733248103529890506987298770615851908457224328438188570719053321650383015007350171433342293316039054671441763405060239245214086773178247607432540924601990420458471206769038680060956987415168983009716918737256134971824670700022558755410512245926174561550616396000766339185380153133582260043987243677448353786984144897072509444037198265820105665436346114686341611910359258849853907419980864036304069124673542332064681993228098565779645350799816427136081832538500115886366088792694449025763051365226975199452401348986509867143830964081043572914063615392598330124520620864526308332186058374766208642100441152666098279645393629057697904748302009343679147084536086641579461335229184341351797071697554840442530240397609882932385562505038986726388150128845541940916228384070765693202701267067505405494355711782068364370570917724546583953905466288180052457321254873491620632800337346227127579722234827976782569067003245309240145520922862215611798850962527926024415015637286302047973917200616828936888113397789315247007871756133382601962322339233264165977405819268802223165416513293042969647393012962243778981403868876818227869395574539528235164169268761279726567357646186618059057177054455106053477942944747137494741936089728638448774188419097808755456802379430359819866809815836891721980737768581261157598318837229011825439843450825324114433119219236908452068303991537536951895488813599894550990459266553450465019375257339127174044812025048767177230467879599549900531091015295527430334491571289946798866291689589216001122848423752380103601789147226698834833085746946532700041230797704696211227032688917360226647343104460531336474924773356925774619895396339619434339179531059475870504328680077074949314833440542358839782801872741588095375276018954760712125190708720761696526645631850905681048553794126933307795647783393509670280744662233698263994604237473842918915229439770944308674127660375687504257421481582017380764764530243035953889045772274106860377785118059323759115275900722352793785596988843019308680417181115673961993375637222110947309719624588962618428423230674704483400575092837504216723093555829144873911620100158765672434840238798772176549120129959276204050699178855226570333083799606757768138374462930121412704192501057459883670490192808705196236179468330423454187170946340058814888233419546641283523297499667738067491788761623303203585559387468588732574652282308329810440336615231879239471813641970755345305979895938964319160806307737473330900564131017124046115289970743946176406832364766314403382623983658127947775503573731142916243782719698844530313243001945873170247661206018776231664844625842287625003459490586604409999453002738340906174105671174867659825225727737352913706007651193942855243696261761211090193910632390655855338735032265779208160391285745503551834136752237806843964147413644693341816070715734046715718376921297747040300903181699391375769983727266254724624731200499351310333280393257894540123964152987608014346998006947211976527767391946527612409985705449582333780110739075583924730597321463270491027589425992740229723781738563319833398709016745796772481942976215981552061721352381591854433285825995829453264239267808400124151929304841238662691665647379189213111484266111814727905443632631831551058962293796641551273626477068753299703394453932854412212806423062324245244841243475023501471038164674266752847075325326907919645175663100093741523604593097081911128234101099289993588362257180974621663254056972930550113346626278207944589795720407216084583170101918845167188039524326949192127199425676341492947936967620335502613251076305113316682748427246576282609353904580283407604767860795864794726419148286251714377821178872963993667172906651731649691710752920960798272569468073056996386459030201930803898928455191099548614465936056638912666656259100591109050411647787798346651383479088504667515649941786963540208375473053745911386643811741792702099316893713391501303627297016576056033964323048454801921255942339873205630611438490640615410461998595681889162729804202428758718789384880491800400044730715086848166316427567370918557583265842476668046428911465196839075437037385666562533795732279877943607261559303096984427109576680744476887312874285504414686796587090163144037668966333577051994064093102307201810563675969917453600526423161703361331862059638758112589861479679008465496321011097757217178034836044607704806865408089763547737303795218229119254774994718145255985256534116747605225573465136975348071364464548049573309381459485555060401287854180754283951745672753273947388531925274936504040104720708645806042592631293702668721072763954987179868436425407828902716431691609046120188772290236051294051518124811334991417873067910971913669751247867447570862571846021930942451452446166317547688869846890616724141473724041333227290713864088984623290481895296225575809229284191111844290888958518157581001710852384360292711556657010790798124711939759798889291628415837433941455237217960321075719769170661626294314917487606971842434064357957901005488854172387893734653971803913860565797671995313733092302289753990173580676338008128904033822404293913338471652068725048089034106118223207430612782199441901629842722348287797183256531815155091055124312798574359270436151012336018696728694575068324609924839224226837741394079285117958525851944300658544855412077396744201774931433933771881179169266400119506538008644505276718719810775799405161064614074894927074370471072290850691107276879933962934527175058436947987976137658837498307152293006718065778228568209833421355238128510845932386142877948252770463757318829962884132365616018609176464522120791478590079176320154028696332314539800459149618624700706177993957211034812025130117879284294788934701457338543441103919212993006263170808691392207032601133017262614576293133880527818109957140368847369607999450671003975414321409483078455525337866811121964127565679606434965523402076538999576892770383311753843607433588292387702126341893338120076599934209278128580845180404439938930947120053088801001039534425699034296614739030303860103933117081667363941597208389611148820240671149383658121619873277355189054902634438908804273799734243055779947782449004810300313222149826729435525926357977337637898556157619421916420771150929966807961653307666034181794742226155865255831122879097980357902417840079430492111137709225975767224503872959293271253683064838702848533988448327198428189101250572703017279915826732955835337415440882091564815431796403394731591356857933786410282103606384498448680397809947230730474361966187348729690886928091093390084268360293798149218193952731832302891917906157174677757260858680112898594385332942334070703829650695558423335486024526804980789846696937486850592140118363922554210523318484836107906121199473559429059061007854674345649540883700888102945564368919716323002650075864124713854346122144960539673175116983800462286848765729767861940034639291588459159132449683416708229876476747485927755515813599372187934689243922450290853851271905906759211345919208865464431517756559582936088548925839809912690169927072978236332404122069067252523271848033133759942106530131287186015115733388379159797124320468613814280812971104451198753018156249550469282016326939702077381688428342200644231050400651232462592630788444818124687175677600639792016288580145560810962814891348286809629726669394807227013115560270316872385005792575842109659201481914454747336219149874079156803115360226732691514597761213715627081299224290674241893829312380026343609027638629110178013904986090838887802148840244456375231633929988036159285046743932526368958098845716927501861182304507672549624020330107862837063880980558511739813092021708243400202724378184007008732822292216997570708904516699042963511606285577521854967306199924531495406526500813612671532984303104981490185197560555336378572537916202620461443609500098212894397138958177475624030055382313796121331043439780008266484076327619538898514811202383361491927373871703318109719916054001511759392389263536988766059130209919797524682513517389692126480346692762258122129795921741525853820690193442923016261152063202923570736406030183235805370421508641217085959154467666189209142153468333000246224978729840299299569641629845015682779857915628957739886068256753951684388940566863395224070858128344645187340327367886849970292457405187592422290005111762335087533578029993428157680062055872061234478093180485106914180201571645730926796754401874275019984689039852967753273054346443374836045131151924593777801223307272738302291650427784093523840278494584888919967809205399476424177254467674107338319145532214181911161483034998456827385896176582787430952665386510577649658736266069611666351968463007169748290906078207173591623094690291674340295836138291737928805622345981357588666491821782552635979223333449323391117644704909703921803636658624216526241046265951977044433492756287693887949977647253658527866377983460983828165583618864553381242058948533092050892021081651070996893962619548456009293151420306648683873705440926597954704237807944752305394174203054548581639430862332944637365725204197533990648149456697544620641194655514589979160246365986561603387472379449910165879724995420442822038280600619230780057607828375197178866078503844407173791629927751070981730902140389812692119690079133216608166662571740306417755494485035681870218466890573477636281271705416610952069943459355994787889208027220284044673422732549993118349377534405018726445838028598172202911124172660602314633033009459249942459191562495679031934991354929122426406095634304001993244222037620359478529105643570424286965003706090092328489004016793289546982498243617445544537470739950949817155824263894370609873627471966758179562764251009964371350464684147075229832339201154298384772600789895599208474053067995888497764080662021355004886270985392092702777674484685502842363919138437144988958789503946538902990093744293565270884734974756604819388123729000743266574521266809174397868045241492710790433701085449432421146492781134697991120658918693514036948572677275595615662230613608839976414485706166982785218010449097071939527323717907898717449558937625998790064729747175553146712221793457688452738654075592323102287755869716011327074743511313106083762964713858068292817891375609427737907691001958179675533656227341120622126428113807844638376427059110189379727221702939100365819867211590964109326881337534661433180013368121289486597196189957618531779766560286395648742023806405294622856852323432166148057947861368806125670879038874943568210666007871819431686174446421631327040095793013408718431194422806647291923953098724957966751116516994553940720745254287714935795897652475033574268915195467455751706382673703296810938141258193560532396330256756347118190453460357214291124990236067797431728964775717049762848211969905174072170970780613456083045639270719489593498709370820763842939396534755801199873093536848643777052727610763745399498179066980820114997336073438248598599379551857099694370815473846836974406369052518744967820240137960977087037927091720528052640357741129187039762190099515479760555253854585863080187087847647613509661640033663539752591528699240998457042297100723374647746523128790676521098736275443344886548513321968395422452310415542208463334400259181400289557935734441339248087601756817380650911460585932482951883813899520369826269672382853409018936036797621384696617801273365308560047187806288260440952304681736425600945216094624963695356221754917443873705488713793634543347570063624752564430008739770049951970787973647692844775571924623413806593401174965817968713398720586761183012673581789238238099640256910726754795784829449986152478962745830658139330623009846574120756306320236807073763290499161638130045480471182229321395536053571025057645853294310918301942053827617495454094004832372224701253291285562674785055950153408819431638671678439749798375235291533780294258431901040054562032969945562410013719344532463493970283209845281719845707584008103834751105576427105348685469299066704651641574666346726254004346713777747517108345087215078095978969261214096766933193016355239442480110866320594159367331119249300844507855171560492255038620576312553558539667437522857409575549204915109724881181315802036472685082453682660110469744847608336519008177619358150880133886577692710498760753525046375049681668688686546404103132194716304999389552144736730746892270166457330144104250592966269615960824122185784294679172652166326384115372197196813630829199634414275135834703279981218317415524296749171325874172402241546062362688995035799642660036388919588715696180813776370156927253649080621147216813653494306242553454282657478795091547118282411621786713094206786213873834938977775298907296361486786064031910074225545712939666675566779351743551573477232072666871769633971309614127713339641650223296977254693748391479189612720410622113485762052145795378106321026305345423874434958807321018483986197046756802436462843853093758187510753392344636194525686823963124976154431415778477697495291269618682354550345808890388528989364371121397266808371003918239944112577547974475185781365122462336018146261979448522912481230350728104154228906538989285676197836628664369760153578641722682334826679392574308819461693863937755473999013732658802834924677983474470918823143268176559485411029458390832119682698238390546910217101122758851427611257818687662773536016960544822527255058521222428665510925365769782939187351126917435814121251244454077530773872451813253174659533592935767523635001755638217106748880224749008907886090088148086297600292925161334045147074981718533744426943562229491535831625721863071638401217762989507584111906386905266710373401270568685880347867467394744092029438839199628712056404686630181294795259229871848590513216470588265441190055806079235687401307285691725201932114474092080037519079866256216956984794129430434518265686067757971348456456133129837092952970582120209137120824525771125508994643144818389268370109363709927234606850646810959449601956410810844178308259224500060488402834915488292579441486314007778794233111613165114503847019610327691513655485559005624517660149744213735048787633293641790040387558251828211344012229868807278813835576875524887583035370817785824012086174445170131862932750638786985081119048674725463299770178502453273950748292388448418546493777648818573611221987112854651816289116418738099048993798545033632757701950440340082462550184682662011465675514342691236041784506728757083125731406209394127701913905633408788909123732495722823344183472642977758096861121434409420513994254336882995511191180477591036868887709161089833489420060660114386843124512898044812240349917646840628639485718247884532341281222964439747509969146810249325765569339233268628228127947556054773263958759256989444556975235457846030005951543318946603214244868163215217072162878139164786294451485797326549101679346145144253895609463617441483503687796237900082193582739549329739662051750228584791592544771886927777327707407325606819605767242032789768739897371694362307961509243210592804249246594797636098033961624709006291417307669497785034670254449112925736240261020672648600580919523872753884225102285259070243561159198053301814587320848282175888279665332853823385432159108190162415593808203873067345659746543120293894365663359091793254247852862803195780045326110717754567598653305384545717009455570452552844686303322792162419011178907786297472016138718703578375840467842340311726747828652348041711152490436568825801608608550814515068244624017726065581866424057389182060676067544581077209650128758362421862685872173042297737723848806159131269974910796887329622820363979892493853185189665920990620315902484692612632135889907526312488418003157823562359974436491893720363340820005574384927714415260004236249389256781892980303065531112319149669259256836593413297764926552155128515929732283498278835561123228574219978480697668637169139586453289215980281026193950324106566964410996449065571751443395140214883664130804238268796646947915308379790727783662011182285376415970475181106816602924113865796810523058287260284831255858996320048978317955050750642229130073895151702102598024176056276683703527655979205670765957878334939005429006600756366975620945652430073142456446063354223761726116384617824819923632338809515790806102522672208892093111745263139351993336297094561968998572828308113091013124950670308842635764345794743433442026209265942904549427840603123793415191932728909126754679689733603586408010902846405477589798041280950612868709601417445553946090846862882513157154625560407399162827883038247482995859460951349942487603737382181071870849305556456471608732575624945829427566547503940958844706643483375531901254256538913614816342619616688790047132345984478079422928146237273610948807980348155937756236753431548194549527789632246676245852371026868874885224358939494980754995687465661636815560479716060416689269740834544268522243725762775688025500909540371954390215658305756504514771055110787708882452660993963297592393600513777054083345159832111081597809077376462744846218102772496362680131023848705042793112171568067006144056828451936903701339209071131188413854983384549656456014521825400380625753559632482439112938383532710233438205460412386194719504293973518243311945623584373051579849966595600740097987221753315814231431947786574368717604126758728302087696857148870522416782057093617577445124940669418710016817794912597800381281238758446617834520961679126011294987208336334600036517765349130029790367966724271267412822121475890166837516926719593547268321992446285295224972713754419096999936526461522536425177814396218606885140423000936566694762959141768189518103615909994540222456814164855497421356311647402888923300759123764455744107604167207166203110097888260247956919515874980655026329118600329075620582582198696671351146058988002036094626220819060659572830468175521877229472217257110156356555120353542612983084994879957035594769175235622018516956923748544995743247063192725623991030060517289312658033439951284471229359747814257512155056029496428342211330254769256758531938383018308630022265906018171131879508391320365471562320303687617149235720523074276387875332227092777487073405056242669866933228498338835323142254528898743902641531511163710843968794408121680678332371270106014673932124183683600128500474714005167263040129871361429872049949102488373559469456480031270389279848299786290472634911493969139620920965241906460823077750733565880268222514231533653316092658954855996123482683634420580609405255375296916243721783690565960075639671410796360591220080677457921619482503698707994683895625499304748098445639225890475305463817458868004324914087621790640841216724614098157629126846599365876561147637880742221979941457225034799339111717388748822956095608226879720621680530907564756763392265227958538384448539538433595476984020537479630153809686506936655846325378493515022187129892676565279141804954050053626775659320112265385448836632313964157282329516943047251809666807311176236095708792041809105496342667305559791791322052123196059505271107874048710910159915833950077213112869001966247094761735153445777790314126474412927520626887202575696795309560358098279733356049903621067640599941141277996304513885431779300157922967974170876560032160834139360657755114679202225252146277594966068409792862659023552464456789706337539050504912956502645993573784548097571504138038877194759746081783815583641168662198068056977796821387005945929306266386634915149478065296302104658716173646214534777584484767873634280754156831860306956322455751740147240967382535544415733675876942326375541800994761365550451343690556631657187586740670095217089313535371874795993420093713202186104854416453896325326335246110216791390514447428711350858778697933628935796777756047454852684135779549136745475738624251191759586614381675620872044089943401939680155094393547758474159477143628530525092663642431410430150309812143243625169497378750202627416100933961057267072494327729650146941785949088717870397870467825397943893760223921047720890435781583096661213213300667452113957795010459629744393240999619261421747289020399275084305600138829803361073510429576507769846903116378378996657700679517406995468227448532363395296129437530648878257489235412442493957525291792897062979092910503734044811087234537483603549814737221451387838706850605808383342724771606710440785368623071796910913608539956246588058156097911620201331860613047267992798935526735600251725881121287757482368124348604967503514307197622760029868890438222533853104166544019902549384193099853659760490084090932596453287314904319868028121069578013630888104716034486615706604375087917037471898943588331898342440446699694521487925117320596800005441779022188738009767057344025232943302374458460051469368006307943670703198811431807884070709474868770322251077453325744135250044187681394091064089179964606635898991789722956909146794051098062540425691373322029811815915947222140872846039729034374054123303010032380331546023231516431369012753117237821076367323420665889138844238873928097683180705951794783192739718761026830944457338196661551577577386521727839773868921230078762048807531460384437289908723151955040863288548957324015175153083932743534793837550862053403243192771610565050962122068829463679305837139351368639367241247648580685828926357432373206297046486246179259183740702212219999667314322139427661068742963977598917061649135477613322965005352061231060845149713115309767758104689444812922388546475896849739518770005991295600110005227712759146318855153367108594788638963488978317813201278827607138733259602455934651834047980246974079928907902496644716389238410193612163841429086306479758824567607673950344255818796239234280529486844210354268829463696910899115549072253418817401493514734597374812133511050839509132139339605940755275729632392021372474848158065606742380977734632165898774960489955797078589525607604988448960768486840481039214335019180296329121646848154749703038941443878962867854634932404693354299867348527769110202633897090387853532815449521995625089113055631853415781375232530473412147683141621472531646964892722414309140458344120738877102865834584602307161709433518312597834272620062548899061232150114063026214739046103290174763095217396620625735940383403560299243877510304851967268379447630483392043568047433458505103616403666389177239341965272102610738346435684958138179784530779948578720130812288112605245236309801998989539757621605777170593352826002101973213956816300293851670064327642998646008604312887634255784271293372054779448251273163738971242892122889842727201032588548631681354752890737363155544843722318039346765120398700456095740446636755369509877682122837376718627447388209374327800202444627894036846836693276072170738565136072228540588036329881028620740771462926065554109867822615149114725742879142674984028961895287267507050137501939104995440543067991376887602948713644196685859956665545395992829837151685412250929528797261029706348534862551238369298653909937252006722302533694496110072621167979722888571278540091589279296524923790916105555426618640392803073734784082753251154409300552819726364649408744246268180090673252417419451254632105062718417084580093169730003412928558860999386025610456772665813661644826244538329093960657689154619353741933474180253515283259907351892705255458460496958823648020624953192009675708329691008028476528362351349969258485360105009842008863527158706100631656615918064534363880764602394935808393249415000887963363751838420985750296139457223313349667793471826086776552958906108759808189494202523649221383649280826243100179597627598638562297068559969632075971498209878190776597150087655375714691211788447688586004721319183790255458244334156361232336692396696774058032786742757321354567202183137605222422608307318616830709793621925019766477755189333835259634376206128042231140033462162110897635142252225926188981103720119057234841815463507222685531501828831676370485283996201619158255767905345108989250746677565855728889889959421874388496112492961644182481626119865218930675094959210935081463400153383030796812743787454974390631285776319754787589425330372781742760206733954095397357425797377063237907612028024535538761480379104154220359041073123435424865881036863551809450811621874577210825097790797691974247257246904518688686874163424216737513421685960927755760791045584115442778935363109022018323841699684074885947831560916434258979124906023523697418386025250582064509997855054257258000485505850427386896405939500917755824659287404196098499012253480079193657706630753911285246236131820078956588732521474281997587072785671341850701355017510652584169974951352322442897446301230066083277317346683960728131818790786732582148684244153285891632710074476005712253801645170742000461543345757718941101757493454580226673760574871539204955778744843882679396517729471490669587754392563658996143523009454202865499005231265559451573136099731284045997326049662330909761520896480183114388097318383462896960124154580753632834424631660192337518744602546940932991945365316716313639087980231117358581204211403208082648450261375290748507256762889792211477551580842740713335094241945555079743879217266005717980066753999316960290557585996551824735999846618875088038823156814357784543321013634601874995417936819735037077908295557112632186748929761270187680055112261772545062247477158300046857671699320713789762397196039565028224713682151238615414532116934671653284636999569694116122909768390626903743189181322793809999196325335904508131284899660296418415520306818539273950067710877006135146688826960364725736547581137546439850250628108894425530286801121227199987323757057293437355394654059138105830345783562925783517297494688251709904721669541406738864401779673081051446889183766948548325055832063918062958024030538816781337992400672023683086887991823070842255575931213235875202325549304225812099667750963355448920391168182491664785651886742190898557992387057253619124749934644426979004378926145366654314959568154862927122951869229324138739772474382409024514047885711449181587719134187439539782920518647197109737545787928029171414310230635955196018366293553893584461401365126460763143517109160164018143619238962898901597494264197646183017583074176161926928145409928742240348801434017275780108767388858046972730512831462316456807957885548721669401990694688589449752654855599346812341407205166170791627857421796347076096836329420402035161212709491989061816758914788923857836959531167236577979696646515346438780289559629435648032367468961775702722575902875018634849748540248197814493908923247498792154789395216752791137769501073110408189940108078220789382585017226721703062045617628150802240213558652651323173329447416001007299722115941300557412047585602679629864037367482251077876281831977528234692999922910431198958367930978756277560778924619308734494791038193277425229306160650497517370816991486267546770325115598736414054701363177239616464410582572425758802631224344322561858254582823823521529373680127962039677546971533468115593388658265967550028217019256005038618353679870095263980438344891643022205704347661031906764648310654117448578630345040084526427698739349409301770136203191918261509408885697402384818015299369872481555767310936886010263164405427470497791783511529273384809093145136085810792724656390065390725852481537066102244591621002542858475162871477325042677493399093503699937698882084193589652342487342721273753759655099388564772913562954500585092474504211244207209851161303631018262870864505499040202630261774800568401803347928208027505672105461476390391657083352076392464477819637948266768099406961726155751039089600925199990074732156083789094997182653755206613984151637428594765532914300948802160423179382616386083360186119815573876011944198559607276000284575530530114151562063991389111216661634471811744808017630077981063071224096388874872638910063487053877917826863209315844233285361502930077512992862013257866584842941427280512015682709243856920078302177395115811914292760273872367161030063830678573838402602813083079810597767080565950271543946083381496851049055534548187635250402092802710001843703364415500101822164027470760933401730838182999497409923048765071862397963480404807570841100870435024012077187599228808316027710238726244884892896501039201632289534325360292579869652291946572391948897552047071098892187216493316578782523911270054836116303650229979082819859702022449662494768002024844722167967733293535113620255849062004240028131198624364721951747130825351889869314407768467389401420628930016545441990468445566742020043594716877884096973568136802656384218404020187536711934019379989146502986417196189714812639368920940448838168900042487562466486904374076056184700427432274113739955608798442320755527894972588736867263522092270048846894521790118068540934652916157026376470216808311142039685855532297541495914418608723782079382565621382733665011930951046292051712676451868987765877073659222088992176995461757668799108880879715703759589014530648203148445923083228040505984263471638504763657200043790339114288980777552640305044722710392541094605225615946908559982443764463695835070946844135897019511572496148798977315412059191940638302182695703191090903480928657922691222253320053313135287589888391402459830160853271767206359705672920560331489625226139621354850860669063462475106931340552443319390680923244636815633180569060842349851340500869050194756383623334215360417740751253357267495217077089894608863839974841175809087200582683439270841783563096530239493474629385459552321802712812520304060951100519450420015539699140248398535732263221583174201578711043881853268970355873027124288768213242835834814261203637544492289732611600541866039942218592147221896502602119146458591687498775558448034577893635059548159456188117272990018489831586993507932089630620365319656646354450375522303825688639469295450349592644668629293761263173028465374591880437232288211718422358461626128780631075471436352180530295698107383252797332351807340866865265530528815063071661091773386507477626631799146807181406012370715390623176266691944054862491400904727353024675584411643384446883393654325854662677608822458687538625218561144927268020390080070538538443429168752427503631112867679400978952214064101654091961471502690407715215969438336914448709064315265448886775416306097419545865136956048044916681548545815812136454204566952856835466708744643798242204066399290311130169930044073470905884535901380383809049001787027481936961084142788219955618709590547654304421446276079772608231517966909267645101963731142687878240682167875310585977819743186066937067285875488330144351279358320020765068079837927051515413804014882697505977309968269734534628254056130561268966977570795425041596123097940472487902605391892377315825024036575878739116848720139708189837257392692832080407032006280376867770875947168522356103489064077087507646897548092148580656054881934651770053959160219591872367194741341436242003347046778519289982309872415040178367840814101000155290817321671356117208040469560191883344999755273507756411982102419047732053181338766450369781038926486523451961287305607233868613485065587533746722376527954334406032648678755064891687606106687404533393791765509605338516568925471261991462101806483824761748224908790506281470903212915848406948621434103539520985574236594377779683222639088521517929759959254283969672169291109489812206002712764594001903813785728408409368109233187787537879295241287776998319555845514476383038670362971019672374235548547230578534719513895753006740900840486944945903929120113250303465694278487586076402105489290018152066670422096606423148575272191323300623276469190545689105341145632922187917996252114696043138068544250560825767086783341499516973065091455023804580393893766656412253609934215508075412090997269129909414119014310857923834071965244333936623531397587266889733283777094976342869493307742398043697584567829088825201712141587675259630714644688547199115199177546408548819587806971027838286632911704330195275833880356108949059575062582696634131264561960061710157881977072660521467083337150260361752756252783341271187281495082121367738991669427026026656009854056876519152128140585880240207788246151376887226615515553958454372973070604126559937684294024490123970016618296895506029649944701858831864563513621778811218038390002169630686052854918857056523346889180890952320006902265723984327373116324097454044563955181783768719696252526626390803048515458127233528542950760334926721238070882354781337749429203866087968956483682159421312480396996103214625068720091212364674580484772081556448278851467758710743093437471391491277572064272839091258902990382183195541399089102490090910762710251525980854078242739478355092709465787285906189779401279833855312391615677900781024433831848166924986019281394880316684810011460198907654281970425912582080268166183043727848727052111744349464463567412235617747284454664956955963855978502039861041652289266957476435404495964349947127702296852093784464509008212289541761487690260427607981937883874608299731624216787304395150008621323405823439723386215005992785512763618533156606109776279114394527143525335066998284522107679964042373033825858140896299470269238773109027772039482008382908147611508588847888048859060703792175367679078947324620418270927308428490633019606314859145575037402982612079570710528324115459042783949979686005558482943559046321007775930456607413219441237813577623037639277766405045565079022765641257660891659287836990678397392211353837997848840558808460378045427470936808722910498124682896645299331931783079380060470001630922789180416005681827724497702891328249015414643752253470063449989717420056598581694630632317093744489820511145286833890522325048629956857987469508279914798035401782730176349355374275409500593707116858374669283388319465476655326428295736876429774456282534253227721241455768223411365569842534309355128901878556501685215312510801480100812502931321345078931123410517897324096178566830844914358963072375722460564871263113144179396146600551161191892527199972872649177510534865773959719476607643651808270885771935720917114869660863172716897967400837065565330749224556082986147287119879029515716539910768389033159591406904608655632919797036367055545935453071620337860452935964856668759508294395021187277578513243834637307444217421209041079056823702248465268107410186709629403607085950519029710464414659283684616740826940690241921940633893636844737962164626497043316426387715519079058564559733289871533035795855880079278148983184475619801466357295517472167514644229606412707156017668483128401606676117594704453464437043343845088125789466597957308088365342225881241803707275206971595512403190101150360559936098796766460915848563357824134299166115053647467352133648421721885116308326807855044006783529461817218418499111659523704381980029002769891660978759088512405442959108090610526002950021723654235323326239132803093879076988169077240897628817747756965349774210298673662466307015171822845311387353448870150550102835388575986179282012085759247210250444745911941837921795648117172782109852969155852563911428530220097128600767938640797564744044017167249963931830157570183035194531843647951767453244084411401354156283408928211328457735375581860207566789709672502601240655653405250415566084730109139879369044118848729543697846280007631764506911032068950826926945123618173776635773976114385596029944920337274101738491186458556506598480593232512736082937714152729607576876711284800525854036004032074100323597244063949625246013515138740792922861070022594920709494866108861169614553916203573716162535875139009278729283593777705863854013372459359255935745699589771270176121735801722746563735950555137611888334999135395386004804151725756783435032204434585935748645913334002256342766637198598572805122674564196411785869512348525769153689466875497583582982104583968603753668301753835604336739496496253009471025146220938643737025501285249489619477701390539026598718918740176230058766375611167709878458367128015265649969782484825649522775516830975566715170107270815571789807160077998353527236181072490406755876627974760209541129663517677527623693744154633458370859692557946399615404623581462475678858532534433528966572929168173150133905370102684455261519953509958877090557203803256538896328142322464779311262947641995459336595448468643718408948955485511723925906068155157494425706361863606321473618380517013207279694606996747927636036266826593542752535914000098450070907397171160506811073700070860842009488972774944176810073741734783836117652586212878779821208160779749908425811746792297936822883787592965346829040411757683204804396648561297999201590203294576704218668409881595261949177887476844031596804635646433290794867790830085502774973986385038036862507888587233203315737112791158877732780244721815210273696014527714420529752112683736686114951288799976582894876237779864198429922828907592225177252831506333056028417196584567455480523060298297210792486975468946322817173729739977395141505188521961629333669543803769345343044356462909996319764626930915120539122621281181462522168229432313119525446558382135113828967090618075674260719809921146307423936969743029521502791481291941979189077458545017198769593433224094526780844200807661381403166484042770596272928091927315947139269884154054415877844243176947647380659010234458011953646601855308825547671567468501196429559737942788276666494608218803332455358494306107726355794487215798640108556532143574121162418276363508734857333788551731718278546838798955952621546302433150092467369128386428661405553185066559009226124183385802425609120444108507261489732237840453031571075515644288102713287145851669651503058919454364006592560581269543261796136235611988245615638826905401166487978260926785986443907756867599094295084364420199544168898931865745416468837396689836492082651105984279809952753046849325921582844898227406267718887175341072384362775010376750408289830619055811173313683154235872169772641079382735705847939695133393460103238814148428437260846141435089190466240906188178918799515912583929412326737598187558475010747653208404525250271529219870968091809931297771824275430494126795451814824184793317793338179944945947337356492420960995783673130978405158322668963941144159269931565639271224493524429286646028260569022821414017423715022021982521545255317668787145202664372649576070457525388410321137514636955016669239236385926773983850223415648159788313514003067171752021889829272621992651018531458918852397648806801120843857387672779001546646023292434569155907273930048079340106317098252229250006044267684805068164622394927389516529245654610881953837471449555264973489304055896690785567007783336047876045782166126775180572881324785667156914528024585555070945948217535485702387000020962024148126547462975651820628579602854761578766468962621839214935992456505677457177619973043373354874752497061331795769723754784783737564405984995404743791062228880491951977457760510175717785742047410245519158768262823321310058387094829646746554476137347592679390481312364329734235967538389209887566826679448434918571769584977464879361993567380440694181194125035538438190480319173822182432939764424113958676851532241740251695225640367122416163487990974456496390011093334892299196310916263702099412137483316315174483580383669653992695867957497934249349932767703627855955556845462725545436199064065498527072158326018834338121867827169533837278273982051642295333367426600986006724246278499488524405807606995390045532892854091251092800610453622787470500047526346558407391877790726413274535454915223266507101574173019305667410968525285369968497672880638749530717893745004406800542108157196578063827091447341583319627574549112256345310083984305978192116978175142592504772909862958942596328904713509058548733625515838654910676628250090179087454825726108565005681022442859973788776491756263031430462384404661297750145720262227971409427659883998665068049075225946384570648151607426840570248272715672713321188960223713935030761016007773392025026253154104689158037660794061484794957078159995483903356051263333790056611246986659732837499504565097552470910161679972503371030170498041379075955826957443785495123049731178344397004103761184531366651611913463798934895449023013742699881420744017073472681063257305422542517918060506963219225386758272304147241770534941836998568018087663372136561273422536305728572623821472098290280757713725592243771940325269351381056693814817308853214857505291626832722796244644245879070449468199453228824633095993406573456529684260018572719933274241979211982820416121125182874989922370089362420011479009616684313587912345127398688031532178623144561894659817781229285966654765186649693910307477702644547846657193979544287155882959162206585797544742945077720254482319733555591311579954105683223087388066437164815371126475362054403622339579675092935549906804961829067010796683471060930495943634089087568877226654718433939807473443799548951992099292747886718169173202613819636003095785260713992400504686788664853992150402538822558734095664292846693570897983036355074722963135634608497278229760651182747626418199433087372158504461845098396445129119432005417422464351333938246899510231112247850636973985920364070254717259706704951339524854949057240025966047254964673303585945554906463470158154644905039675216191565898713246437810525581293466783982019916133323890835727582944391604216520629731772442961543116956318810726537139084569409333633071042037566018184329131630923908142593801719870655946564378123864459993772475932309945254282794163384883525841049285393230346240642123062446026125387639986793207087213436154600821068481680182081608715957642484241153777189348208657314655478537995195516430623938487527789113827913920504351773040409151235648334189661110538573466928206577397420344859942584722436889582681737438141171963263008375136402254691632678332231783150718678323033020114656815800378883483827465395284124545566107086770062276951526091888826636948302584086684732101867643694514842536156192688335092652834780241962057526581765479041423507123172237444126104494210361547787183471738515769268616412709699241150149662873604407916253320227300827854858457796597584443236668385190256753861179359155365945338220764118294922391014712254833752296562327610755799832548442668527307785646145441396975937368383307043149699434147460228599206677160304493683315613908463850622324946517269907952212898631841598287979744810461538731801477235939643089020749636278189353934104916902524533788324333045564394534010280975113534666416421227113904499218023661252842768317619465185696965092756919952771733051644145588888904195023942215564508269178139221694359171028175745684339508041773896840208939946386357773213800460720963760146412529779328474982178441481917988264444453047252362376084526575937281567783380659373129976782542959569238369079349653464087364884841433131961839341656314093146424610975479706153639853703830672297328447115244126057710576388915602361351918797234534279609146216503746440455330978707939541464654891154984696032956680481951430686091647118047459942768763162827168359281443652153920519130589269203660312034544392382366892751330938391842576069243830276321019947342545710662840785833506626053831371142721857336659527059997979821600233412806114695321350034160701520175749827839999570620824372839760471434478062754915875379343925853862445980182338871381022095324271109347256924196645681781927030025005286799820461675599890093635210111719159004599660284979515039013206394629651466428231995970777190465928858376658749471744208834903112981922704135226849274721879719398848709704957386497236678639886710188002376421984364928973730767365706711534361142191048588339456147301953299930568261193388401921772331344185715175748716658003507824276573016089147173983339211573374528712390275942399339637715603215159384595491366785368597852912183767951335808727485635389544029560912807366068773468216401337941245721097720081464519004991948204423176544116785472764958974577486328656490770648119891863780511807264275265643911187079794270818495580129206395735690106380236372214604767731105927031472557223154192129177560930378993707278167761743726014377836495816440884075542074598918045502490713260809240632520410337851911659049449489684867575835790718962122681792481186169836523368123068485165833061913082802650454638701646170567701070452808481781963474075448885706405876776266673204527744573765073252705541390094926481842370930987682800111082314469955622828013793890888359848253218814391633178893127531151670830627573948929139029162689587143569920914857280530613511273774395540011684078042178059597679703096603625204918101463484573704559421770118403507891393315540789700796308487634089488665308824568241232513689332120118965463486990067171578040575775571182970716247834733004893973589100985595141811820162768659684817763654319152459373984714552628640971316766102728940692987232403713038003457276824947578278198178208818596206208791658173482100599291697635664345060929211574694111566718716993854916608178065035849652345658208660618747555494852367082924724267092350482626178655867955872244135578334473857341256346670846843882733414349465689067940814254175228940611071399188890016515770231884558356437464089682100858668065656658350605907985386477292925176429759220941136871206775059922871321896850269121731064848392640155155680945883378817508721893451885859834929618681807495517122988182191225016350500852682368132577417538704941971603441339028327662645139793464981730914785978936392289465202066104741304181029434126942800535373352553726470190031890858055619701075089238499938174196083611937409874509695250158919801334778890330157482036336091642286586108195111258283025922106046869597557604279576430965238434812392422779862244412177003837220558549370210518658918032503603373633825037176976551011597235761842364063607830861917710588860417652620338561249358635787013595251266615594560108871494218168883127393263240648916645331057433592712117197370112094862342393172548793815342399917717851230118862306313578125903222412144358925658106794754155732115743985782370745939654483013148864296398942215473836061402048762677702225809504430597638907984768917045730441003739749922931218417510621050058126840866017851220923054048193368415860862081078632230593133147268090367739015887998640787499245442978751336055819694084567689598395180395521044121862986338084689161767523757067602894208466404440853357183731290274657234929291209347036520859706058185905392752589515457746363525369613481286950563275997854539623078846179288870335759326165047760865756957809594371011328227266688344274467963374573121190331739020529090161145361849850367941007450312202730516353164846518784495703289739459925007277204560687095049946989097831218821986948909513973428323072595388714081822288216304677582092890716012401597073708647845930910805011435081770902742094363900566999473051800099049037009476745392955098406190122516665733284523601789450855166094195218988209538410272465039557106957316801787936024349395723764332859806008383952627449383689897226712927111954056490309206329238751474852417027426713224180454768616588505561349450438184650025297938921561047477599629402659300206226589282198840596651225704192322765844818191004346708462911813073119391822972398573339778733831988562285765319446821858648227756230088813751442402728324985989552968351687329727413006843346064801553717531131715091442572730651377779399697676439351890085023153751329200878459997076418194678311244025802489251395895205151330597606648645050655479163123718730409343180482265994302211668147983347137481611204749658886595464545941120174418890517996517867479257720188827300061133089924648706950426499970574471317507279945038946168689774159799299354610219118171276227269603255633599552433631213263642367031945985494425318908293644903492609110133240331819858822197943099344410647712308719474328828615850348183938485456134606558672521824184376881947469946561202262441700292822123468072374571336496854063861870750880304301330439073786187985190155238201945549457968309655762557289993100687376815231146610598611154289900833988041309553268587025267036667873986354669785015603343108811395455402131732311516357115998673754631721961104092891114451679907897006833316762399905410207029519495212307561286064647523091416727113039155861509590562473322784837718177855992820291587709609333181882897739245006653482784298055878704519138416434089116594802818547840261543092454050803009559263913341106405910278960310994912794882442110346688119734656685627904927128475707258416848674332445582979886417688901219009716008405038579834132850999116246840718372540433251316932498312301930893570138747429036925405984941310887297520597727975582693247653152040738205923903624542909797237458333911262653590096135947917149504376576548187642018604688567729992564613008090372461499037166729866420153799507132339807888896568279037942644692700127256044013509010818688210947149007083618251690582591542596194639422787910648744077823079194760126670423357609375897170752152084966889222122482600959696430345716628461810034776459953694440053481745884025812048183061031842714728610600592963356361626487385201000419810440676547282965451095913572386607644036144351795689374371011731580390117662061204494086289162702546432050918831798332947397961789226675436715669773898811091892278397296273898333355916044292900768491745394180888421322909032545782341256985510916594092524321548829028915361454162675056620950361163922891153468687448797348323351700568809785524403263795010549398575684560610790478175550908455247763166658393776328839922460420107794994712400758379998687322620459511135774364772867917698860967212726940793598620402087612437254468136722566554008224541272770284933812560446055762499396591241883693030457786690623292751646779538706140772349333915245226567043387923067540643207008013218838402612796908415143618428137593705943373537908677074838427596812360234285666590329510697639850641908637670687606165891596347858318219160501413701812035306850550685324011148344564983118466787268889519377598977965051500194932017023510522482394387619599297435547863005080237320974784463155002634663832940207174128760214465739776239687082016359278693610243448293427401895293776644525195940903950317344195305698725759598072130570245579818900856374711133370150551190682910252644534183092518321277182077053635895585776159160838531747026736622508196047967527866569491204305363683200033891149200958877359157023875421615917606708583760928997176703001589154314091162124975658599635128312077326627542251565026976799382974863513961308821390872253449670345726860002299368085233280195452405537421332653598975730738337586848431853865113258324008008051162422968821064945629598981700125290906385605362508459285904904046878709234283556493143540292052729915684289049910293641877116184804568983090950182189972876250513553297766610322265610176282678978864159519789912428456998879647812967512579976417002292319628218545153870692693392120974796364322831177414989356967706500839556136997969437147904881293957267165259421692799062673080436841006675483014557787096914073444729431800795887022346117734298379748726451028350550176212954997765708124684265919016562455276952612295264455335186002820134734441350336748901130712083220828955193909866468954644081736432847465046885532660635493118799761976249722129341124899863680489501417757838618578589594911567300019139682384570278602136893933177870782498526128553837365078974634328125309436235176744230159775665674062376246194984723805861615295436435674602395103139503066966680187553467184065587456859067072580665285580078994128938439518569475682394019879060775362869409477547213258364082294642161456181315336421594703113172172869726505011178104074479730649386172893868748082604836006411986064167860716011748822818329644537946162851442065165081394538085703865753490323618384147611974772231366323231308272998568698150562631059948583003861132763673367977844169365185207872402911079964076430446314755201659642086261752775044023536664840127441048682312442437079205811306672054905129872480008325889869434936050798513297517741427485849247354249269136080973859184888476027991869102088872617704707501769838078842543478989655901034275275265809819699437637198997057814961403579447826406647567622407782970886721572444394051322327151724330043656641241121086308373391909783984910382346773367297239445437375626767504873885927631839668650502050894447034035847413731264592189896901395631251053353605982295137814162201430836613670599199136903169551100504591615781163661825772034134912646910691840894832204544159971318518627307978630159607092490972664867790737269988702918013063440626318719732609416357156820061687435729004069282444249306070914338370623315235353216618452178780118209660792325573256760905116445951494641397957176533540786549150499753300304216345649186267572196090222136993802687011550220522461291366855563869865083997797985251930177423286473178039724400892554810976297378299653958397014023948715692517306086669463932159455249914310002603814324424084213513377848182697340721637296274138842523868707470874094697166045538350926840769719258775977886060776887565646111160230934793916617318626554450433660637915030365642352565069215222886819511954770891753134599767292679302247052137960796702119921612156924733905036377893596311694200252525625534987857007231836384645584672800417826160586333081797277262181220144394186343923804201305424135651179969791396172624459601663925048151967646942447919272776004502341185019154029020672457015340986933263542128161195351775837002764323307776456765207734599981573694222868403571141236701361994471356640085866224992124979065430347693771076658736989272944806283147374595653121381721445403176922333772593180788043628261654130057713449300864556661208130277584617939723232672779722484460019083467435598923494029744310741418764653193323207306232855840356857651565269437220968342108556159359725262329402003416333283870344489807792119016927944291957085713481909777510001804879318191587707719032959810643423137496312973697998451031058775607794350088416849556310785118150867135587412968547283815225179467345881634739592105991866480634758674306152796619408697149456851902547256835234750939134837640381644947002456009144107924338808033933228436477390138965695921761107940630094734607094643502007322305023787806156180685344028295884188242454402319783596037492717065769492081270569745968278822939633270310592546615273701176486947500389186430424439268570964402404965225253314207309089611890664589809669992222206469710842552593275500905496035306695307622090722274223154423698714012269405647582486194492345065693234568008371654392744361341590547170976330320084719070983453440725300703267020453333794372729005395097708726946375910929951853483757458668043995997145596419765921158759787639248311746072689466789654251690166875761558373592539987761831803504702390869048629215930467643049428944545113000863179772500325593159756658378764884140589319078352923305926982412020580893747517668968497250818370409367026890106950526979235027595068046318225169335299877242004736276218464367346671705607249364496559771441981952064462254349865498372043242027815962477561114386992998229186003518561076815174902347475178940504846833508559034690972250334955441887441916348640849461374541659035677666049069314235411273090266477954727385619225508300117410816380761389686625653542290740884490595747692170035847939202379602574208877098687908934368130349308465089712792163980358681674477951100398756901118229321214143733169586663172393423429320467138550639668986853760194472271759740558581896345466913885000759737433606688734911219508603628546821365689527412408997150112546916582497006578545450993710856687432373901571659417002604147354031595631063685609327893108068019953463880895885050268114016119801657619860878529203889821060704092131459337567232043687200131473577802650652157237302903602177976435691935438169430747798624682589368345567100862607999814322240508120638539393438713948128937560924407813862902665939593063985121101618832429432439237041989080061675541812416570028127734378479718359127999509562919662041316367009999133524208622837512625373491498966095374502889797220827996372565349942142167246404340058082109660250897314660172000742342744097506169531290843716919121993726619328801214598362709894616052892562057513769512467784941546980402047823608453365400888759755224802718937123689140663712828621244324199684366738512513421204832611143222222603202117735661812743664708925283178709701163770063601755399587602689133929091024894190989454141674901689666151500338055203258733704043385163749854559930845057247062054512286256132965787856181691664483736113703587145795585890132122253121707762375254325777762709509394327231173063848490140535777582125954862474342809407382544666854195275132333954767025425291660100119905010625483757375928029695344955306319532002938698836530954828543747730070937642776912903436384882668482753873941330406554823948095930687623999300661906373448707401777288663093739229589981220845976354123048200610158730715784577121054919098514450365217889254953237046244785286781149477339992278336260391143328346314831074393192305115278367373517792092922261619502360773498923040073145851543812270935905039877536775121092584971588218608532100078824245777223770254790192270317563702838522558467200984226137669537118976520128903160219262757404760437343804758683688331305440798661133320783544570025558108740658681211387174276028940631747787616995216542662829383403243917998017449324957428368832308883794025553900626814184403964098404020414584653958562728110348249253096879529056423135980398477359109942574648036641231139170070052215169594775334363038133163785430077634369617779790820425103056113504318455200854736456768589172958380168490375487283605665933147870837673861381228659838099304894112360820148049212712787887172580404969191619862942753880672229383175982646967559925109196138425146618767288835487944993643017921181996881981417360479352022458395338863873495801440730741140604912793807277084991172349076950855974218498417151648750181677382574501338943131459548927255912468650855331860346091573001192254670337830086990734573721893056411061608513772167436839553204515885434639176002390774925205914324315484150074049072199703066440079189649288139026502130695075708350526875921901583709035621740943449303522172684416335638538181005670331967539673436625768608108629417323981409224090964732631680893320326976522524316661607414551333772546235405804067584466049970426010427552370723959411664128131500253953624601185739420193714575023864304263478537938043440693278229636257689890751127701670599491199604260141846420080728819157908480453224995911299376854168975766527362631115700766357444408212999279079728792665294872713479863980737952094806848436327913945934727721632214309388305826154689301959051171199009026069858522247478981911895116784637426043723309707932972962687251374755894683305106024481945702437521988566486313962475124384789319981798668598279772851727480269394228560754442532394653148951901239511448364805836571775210068135675137150346771180150456726970998333294782526835636303000065328326815764783249015759391861365657469250814938290722279249574905928816351901312183255235074214862544160324779769297611947499074942784475184603292716268518988193335963580720312831253401146437770698829512125532581469371089239429733837407948629519388125126085203393565937062456386282711437122292392243502966153963827176130056484734269988558523874101373755249108807688446821491542218622021343659142397820697409988420661297177311998571611471402648326476496423050675034792692171023679684843091596866283089300122452714697714737724554747187743565820083215133981194236739512829013477561582030911365361841507662631362940661265588717696642261339849588209266285018464253488069847326654947468899182897808721218065184453084928524844275196615181758548537724800757520041540856475567847495729668095011677153752682474144097117543241678822532996099629388574829651786037845843527228223720406372405539226113524209266088289692299063148761279039752906825462036088682452286392813437097876036758041183801052622597711397155766744856857715253038179703756482783641323993668567455007167151641610522408423814414707298490989422806732591247887830454203866644305719720549214954212267850972701286955144837468856251139741459471653086977208176543619504401068358638282639723944125230546804522351868194750707457826627702325405384529375876543175508432998161306453677632296018317427367714037198517588778444489205330621773372347854417603190956230691165903409809073678781765182305842418424142332823806664097466360340869404015980467357213165391082128844506972696610390082039800766861742740260722288852252249992749183784937077361250618601425403366599289113439521639593446798441443750625154453700918498808760418963959045229306491757217807132001880115143888141123476588072730664486522216789606733897958151194051824839743600175167909877362239441281160170571600093083118441343621072993584840879116140719346711828130315931970138216337804837959665754621762076130061780444756961075758611246216047210876956225963204670974468147729886005608947854251390794611931427016042642010650216687661740143644672090808520682897537133412596174005594013896176919187564137517079316219033119491426916530809804016581737908819510341462441915257861227927966004517991269586356260418110774264561998572022971235534902722775175706773684596870112958789802184083205360260142503484965788198668501091093887666566031488323932502439496783719161600689904969339842330974688510474075445941024561154515714212198181165623432415428585762011138411076223225342147349581855659702959872402893785037023165230611674285444169975851802504459317999445395866543395119754324487359423193906195398117822680438623071628664475923511342320827039442729270555423957125239220367899665979347300858070522533425302641356311879898371793200089526351680083798173905484753350058825738931014679566540973930578033094006704988699632887652457331340051154662995430250928527744636521798668319012225860126070087570033778747827799962239623880238631141589627060625769749757235447655764287533513583285642750793758998166479997415031557667147752566705359430464573031696760774115428196355226570184008064225324319696985509182474529573582832991666755246464930416936092433829967283384096909108596295076950960914552137043006911519990684915551663283525417277985774282864019026931887882972160571210022842621020764404286935673433809308309031702782146485661381872541957949487348769301489676483270098328744138116306112897999507721269584386197008154576205849246666197645040746276600085150470450500304034882709293610108591644234844941873459645402139189547339698318061862145546327412562757529181717282735708124208762916326117241024553697512481515493135715504293758795486714673002487366395740406706491967174010498171540271525074192724722914333456141119106688332097312944320009022839705892123033917119494870137658002813670217352579528821609488349995256494251033451462803827625543812316644190896536279010886202597822008756447162677178100718199772601333838322718332337314086146794756921558330190425520267582219113497006698134909047011675749943998063825054379688942586187248331614256957015514068069884019795039697397448009033456556732739288603619033553253317670792486556739821960571225747544128613151593562290266118005371093355430382659144657276630001333592534350463683448900262323739009101095459298173262051489211912565384542927730266400048463526471691766759231374480046647238237446820327807830205399042605404523108761731319221068675638939485822968102215363302469986867460747602172710640248673411305437291913388818089020758179871053902496856392461449005275947044436529800561813134487582945302035875326241457101362868827175032613483794197723905470082242840827379042384191553346049622962264046234869944299295926058210803830375909844595743938808085598772940779334841489258192749357937823115167863263227694554707438249357833187459853654327176602148052792731488545237500008207560014073328371975470909125747431101235506165359095612463595424964541477995381325879766598294740489911502588487347019955323712284163464226037400946614717175043285058894254017337226702912860822499131454411242533472189776610737829746729126501908485471627378634678809380545178042252896447953781855267871204512743455676711146950685322498793227629517584921512436923218131895763962752459031883455953898969014359730466933119425113921636573010291263719077613405315557617391046503646484461650016754923126366887229091550576838009812762938516796590072121012656023627518911831514093271363481558512138447434404897404895078927306349526685778772036654818540233905759312674072632769321232284763996014607774102800435241246192931424714663440415679881725954085608014828629085890119352567656293361109594216933389012108956911746641447953681693715855483084527799888109592834497281436086881879498406025057248786092635912608024795854725128033945604124913395598913527441503369927806094682038228321331363239996671561223358111730220160399007937295940217597061003590034137799817688797343393065015287745403333978063257341459489330120258010675105743087241677823301533728354119920873971575618318721479154307164690931203041587280348934784325398564267052171267173626168789984530988849502940007402599093241477603468992314976888126823578735729207730670913638009165597485980842034247383642368389072565120333455204302965997349627261812848308116696773031570874728977200363128579063382690923797531259182877905416148926337057344394739157960385127198979435175254226141791198685284233130966654676118267332887311816412859549809338241596603564607257555270783426089193343221622621305403197151670535961750308607728979271991037275024675551359830388030141627986275076172088647512127375077512608261141203219769921388532055143829972980082368811058123558349164244161766355885429266737989230618433695215044126478882282738979466824792324663639800345528844859451356146811147667763990874869410503440936284584244914688257594045250410326979630335955945663872003360309197017853252289669218450425465934327330706772964204944011351963151096748613019069524812098902443289483353601667514544089660741396414488309534755324646919493703734455200785702225299790265938496861445965092590619383016189640386611639895364966408226853867350131794457671067017367852123802332176373871852677258732093535863687975795849985324407313127240415067848633195425521317739248510683010168758632436338502459070011443188369827432076577028414596831037031699916902746873151994198094061918091883403458838218638429548755804171579799834516699632376831340882220195257846438123690737262095052785757153411936595825763221672290622170075556734363127647490782092889161180675753280052644224018537901610011012822905982422589908772566104975445109097261515741260329392565272212167015635028548238107199491943872310515954738266068122923540008364247798334432446275232374597748050067469295658377664667372058432439588676393786908261537391013236836457515657642705292771765781311424296404009538910766724025803202280321395489198901826631932011868675201755367777053015608885639964311637062320428888630690288058634532962462852610313335179101852159965443648235455528039889003282135131142255578934196374465868483986203376936729602934662431635236102854130156376813303139215617945458712924497862316900616864413095314574722507667953673992127583227945774409848055628044638744224503662448646805205678519140334342930999729013668491662668152891398961897853120366554280360588186945734712933746801614779051386190879258075800090195760571669630842714445444460337238017536908663718241020341616463087044373621966661980997971525980524945285872380653545058895358251910311122154897536535471867708325416993750586104542126332287229425204463952556563012120915988754462787526898487284586121989594591768729055728139496863528841035759270392204721494232964489919355584329952143642415696496744574763345844452790268926952108468967864479406857503941245675076633383213669514372243917345442090715817444418493342607849807805287830284753255898926580979450872847509037020543514449795819346194216782614191464914718733778618783273672070297358944436964138260385956558250326882255801591599360813785291796039926058674842488195750776258405000844843673430964851564162178805868460923813417733799841635061145265985568612602823425222746000736026438137565342811017864818204263339685796172361601381361562939113525815322568507935880037805110623471659832602361599398876552115057993446647605445013402770917107957331814008395654974347700985354126889957681523798957888177464596010316044682595637362047274758329517986027749759119879653485814989465135335104559940164508975634297334158488902730412387676821060481887491756104435357627604612606937530902818014783183496284267056821641661109443792069658622937635813514066231225214809477803260185569164980197493456610521832776941701915400027890445848226789960780158638589202520000167515429085174753480747751000926496913464022681712654901955752029200233614916582043947354210864257421134747893377761680200653062829012913608206125041550092059753798358254102288164191135540972378219621929380751487985760826556374486635718488903643270914030764160230627997998121592842556272153480213282932186481443112514857729457877168747267057804895971269097810718474607616159342401088424698260109420724058126248901956316222729178222615807372944377579397834053267044224976223112228627919746322596131251525324946226503035541166708809210109782959607734190665381666036395326843571402291733292476300821260591777753864884163976574256608573102626907920246302984684747200531769247905442236494024359590712186903261482027702126041362577422753010848034322234173376926739419797190311721567331446316770793784729169204102921040696108410808239053992727380457191757384936992026420606287653925169041926779312451432896498984264415947332801802275999024644781746125860285831472362654181792985101668593645496392096044241380966828897678349734440016698088770811751531808757930655249008719121471929568111017923523515561489855655273033339802551005184481347442171283627879712047249433946880881957322933065061329406840635645810581310012955135805065103167644190952147671625575211139621027190849441590406763860899130663232965517817551045776646088903145401510606647360269308749010888547349364891569102746182870247288514593180406923043933550956815451767155666218852506198005549070370606424894671420375637031145048279027630093919729649018731513858232526492099108663953765312235304286192528280990330814720762169717687055621899850309074210499632072449421455093784792075890207343123698231024082100012795625280941487559817919441219318935063850885610210981764282306622780338203942888865710449967344026499948988525721533396787056299606516626652177327743550980172755260775642291217101049588439781802925501215791723087729235944205334631184401663576314750504763864766116903214804752884747222890704475641666517148280721441529092212566871878297265675861710902996149707271771524008883782559576688843448414768834429176972386112362567760126807741146652473512825229789200887971849143452803334480228418055806712754560560270485330181872187718623561730645411195705648310795716379253643741374286463392708050194126302306599189080182542779862321948057569182081879103966539954639856014316809436754490269382395203398955757346468028061971281127174876906580141872231429849332743396695487641971629224004497359300894933416555334398978279999084939559875151862813854613885449132071768913037723809243545029212988897847525519670240909670315350651220842145401233133401097274695929162621176626647903708691558149945719099911499415252318055783784661130432760696639257643773549357036210938626021036961510359076327064713800615026943017538665150990957302013273639356254156666526735866340493031581051453745017174777465901047078673194364506265164766331198979432106413058028041728361076093337208598899737397108415139400680902213654467678916425498803156385994562189192822933534374151646576904407988530176737098333593067922841793300923195476860609160025160925223960310899131873398832298600402782577877320481572372148645855652722131271169432738896378778949733214475272319403932538607465805148436994835220017168334601373073742972065824746129055108456952431332889420889511766132929863717971252442039481341155923805602864350020785312795965541041174648200179196286986292647147122514550090883067293912748785407595279969134290754202681395190084675320380896283017868663318724994022357290846762808699040537421847685412873391382260893387164755605257138578175966424003768525958415422408458074686749499786383245648482481186734094153139558402545571989078176614277157205044217687301063301679471500898324077704335842939358204335759413588252372665110043634730891770999269574156218926368872826818544170209981957552567584656627194212845880013914216379132521530379615837975848347772013940136065736549060421804824583938411776360749172607158769282636762297560871237694662016756083512345004622122385577479401554963019939236391143575408191762272120705432981995638282896828156273179288688857253156235906384921292395973183181105020786304749966066402536685134944348578316872471484952214565110713186144147740678698109731890215895386046649331257916717584660559346944247372802510358750976058888637931490591121226990263976844421416451669001142889711839453665793620989633171254992583835031982593488923597462018890140141061139985216437822133108747578850061293171752409036400581561976169774775893926966290682090224619583051807009778683177805370339702819167143580075739850993879545450238800142634779156135235985235870592111508238551109455544396454695762344275207286510636564191683813682022763572046431430515214655300632950439271556450383832092964572368761907252994029732523600443188943971662764749142228337886143383826639978607926116881416766745664717030672067026330647328835356397609394958168325655001901357174063316622831923078091943675303925023154764359697437569142197824635489760254175027017049287745437897119331543210975617028854950314070801212395855309424731918260814295840642114608775090585120331351489567541042551924170821206325656617401011588427294059130681133907681309108423203185678515040115006355454505461148157836928866368175797718375803897713663311374700659128868293312496496444526889838458627714183649623839972822947483087080429011484264903970315489175584520637203844225338966894591525640599802842714356158020750351990843519804771352718720345600567804685671701096868058484925902649905177363689147457211027014170873845142274675453984458473114518274920830955113640990899901694480200107434730097676681644967725802162530805430002906970371704148732289227324984860017918862592825199271509023954628784632690014623492801100004975796145225715636668156283047003055057534975833371591108266138226114954685387721077762411432822622564909414009742270185206503884175590324417178755958522931489721399540128076319802732938329626898657489509819739775683222510326257245147317737547099125278360243636829368793823413853522262126203933227606728065076342933339936991569965785403972112334983893570316656522266405030298186115659728213868989783476382455213615128063884673106786593523765619419528036407980266082406740012515402406380190581859225432318801338098887946245552903752825754902145734348259036258510999397920037463680494187163674850097431346551012400811598739389640217966701944546203556530941694325506587746163072203493637746166128626977807040930549767172260148268565001498693310019039571561060520880138654496666916910887183451379993550985519271993267770006682930316442799020188189030728072277814868463315310548463163963491552711484229166986775832956353181259526928813780180907095244957029960885964305321653951877067462756623286923107307937581187507495199713851551704765896523467573678746830748618541764898570104099070938434364022870856111131827700536237157878885845984016886717750119489325039851466443661546717477722909935889184507555011526450941154412170104102334667610272047865909055605525682636607869183161324156689633133496065641485719472435619988451399617206707279621871430764886224001531339055916204243836016856771022390852144856266799682569050449018165722377882493128162205401767587311703100702544344333719285077130564307965572189144830783390129940950177874444096033055342412543370740735198490983009381357675229590451355805285256650850856085164280522770910112880060005076231452165406197965943079255390208699808804789504361656540276317982103529949887042889139784943779660796980962603852311972836402470563866581754950434608680387082990518327592822151310214604522126248212771766156035532741487004755831068774018431111293558643493069353346293927439256327436657516833779288182703122558701279868939211120127363256794210635952949522880827769004818006249751347085919814097455178735757493453792514213220555018563356496050106302268802892807711195817470205240847870751894788914458674140277090619472607912275297076521776760577886366418518964075717911871774584590911696382808292605296821578888416562556043225393863412243656035141063111707330511101457657820359316258163975574381348489514990464038595592523438006803238307354970732639376407756356352655720452882146558696584411920276311627917729842731059515244932647386826486321735366622591189294278197112350306459162966796682670068195594442773930434523469431771526713985821161439814019076661098741635060478996161781079597053355755086276093555646008389914496827246577364540815736105009002384707134457044383392735505768893545857682339007593876863700299776676313370975906002736679027250941039443029154646023007823896937369176999560247667901018762740469400991802634247438094677205454913378904128169777183761356445193133809261407533180662901010735307929955028565196842843553129377569812250740204209806077907758205691629918785775511818222909771352330909568678866203088698399158922454590846907011237182065580617737770850742375440019678393898325052540141310564852413730946064943508655072068836777824669553681763968104111342864907175703014201485520073775877873665273304168475726961456593308811991606235246552464808923613922035097015546408111619303445940414811643508409029600850363228258953934016217272957140288630389936861636378437445728204857471589713952185960915259869147389519828598273810024855287515182261186662371300747415930134518174601512095194880411628218422986961325019704517919474649148482322340564405967678167504087910649334260723570761223197897801808905735187728400727781372924329966703990043031796608095351433238891272870542188549724071095001333581198969090715713531079992681877501090933492106262695654507750114156770558905350666427449477161954720103795090922452853035407703146348377315391603035829391676896136868576892878773833077426015601706617075199354263073711262148719777367267967836532623835135385311557042052754497524188069534629819874046503358993565609695784456633305737288993733858446199329201570054415900383572344967610446184208169233100877897271466972915060560123831979958297797157795800387217976612754868819724721192794803012805661039391320643306765984902572308455500025445610877812121095792999411463740588426618772779739450861097104394587046209510403298810211355676204666823039604843263632888328868130802250205592560872561608003326468964962032436440314550814053924593990727997332970527476266906032221276126341271170055187859163176146729762050771726924198987485557136031030901162450268071707615504958270574772780614956215215396179928995565890798197862416410893192964247306034708065159858673763999730847636780877314665595487755128600629165693413606116573984216593656793639393317041852580736843510728723268298754013060019568089461357846031364678562026239126323231619628221466833654599596116814176246707673116130194637261758201485445649620911224542130793318768059633397622925184907635159528011883392926342993899371403978518694210351735558604211888621850670400644157799442972554357732189037197481727955451051245478052324402863980839856000951938302626548063174357146311776131381824990112683251577944703748628475712548876166826121160741784239480657912593180045078186241739319400766051022907292775192165493127823959218026639517593794657335844372883691451758822636181968090205290544244309941238656940996043458836161510790627941590958634151363333309473285655181810348610992169853825456161035918001477724957349939558052064758763951944049587986462649591313058477415955559646848301796207835996010619604254696252381873003586251454647504134079707468121442169602926563611068905313726197940513478961017219416020023884319771984209355971175025279149106198468497892352357919388930909661527508805860301128188255193476486900636236448408576971600743748127796795818533767315038426556831015176887259580238966229850819464591825014683996489186289338443548504849537199991380069734095634265079750979951594017228532329993039808157070214241960984317752496152566296465722407921672057371674422874346352990043966300979389478177491072397093135104606421209345834798535221148634329068811120841912327393859482618002356419521150521379554744852372224959576403244722021213675773958423687272495527988782443050008891488511150296490884742112646867111128286892418688895361526203376965632317985955890593770050647768410995359190944061320536812932572083424355267466483242456231658963488607163258414383221721138724373062361494453148628303517654654780079161989456551886991164699906403609019061670075787580702647201369232145033579401012551412596310544671837820822740042493888723797635123412094823403486995640101217029486187359749643776166385871836292779100963122110731255338095001795789349640505018141422481117261593170446023230504439399662836388664744802637249604978456449790906097591757357331193659889683752710669859046931437688323960430418818620302923334602276571471636096743355812044688928403365068172200040270129931746188376033160104448467340494534151780772346309469515252272375204441609506439992003041713041258469630496634360350566993595185238717683342868376019892317807915688380946950110654052482950627243228523151373897247262758193524674197958867928321665059691806768638156094402689022370692057371329484596754504097619392074837093225648308752291276847707118590056535664980436514100984241731256372773770477067706052443939776276594149096697122524331117537188119317194123781815635870989067368062499166458286798088308079688378258540731357697846625583185607078992472333283336473138830922475008414666661938926477787717636916281750904434885646965541176754017812420585440837399536492387730463101969453487010822927055202919340937280625992222622409409076428438428207030068002333717861031605934241539310071248017790413779815539778325300738303830321749986307470551425643353415959960446854554289464532857316912564317337265583404725388833133949211304782475073265764845746774238747057138431489404381612271137036578888190855623703016089396273733456147561924309388583707285768321572343613085707054164721039595745837283376052747077337135723242681002396750161490239560086794546305793899234426545948257955227133180749237939960190375772588853055071546863902222037409359775590952117340822659453432197074150285378235559164036332517571935967365954960957645697749050553469522868338462086542792288568890974400765513255886905707756622308973255960632395850169035731712410581389978021867126935293387854528013663751366368365963794703915220951332047695931378248817170889673937414133584182512063307752028926000370269874456988985198315177604391740374252054804906378435305739874234333263089609414187219158800355457770435881943902152858164461650806445379187704625096273694899353703290973540065394284846762002409328212308813916726447809704101099998150788499110947251662654032145529926921142214996651683353385342599220384357647517919080499790428714670339064980978331352798251573022043480544708151955631708211138466480683244864482407889527540116948872053460362148385871155359676142886324725089817639753426527928644086871803970800367237949306535209300532229614724508833510028802473561222813630027130201358914257115423717951232013675552610684673475389938951356754267119518519311629403804161841847159015673079481397480868725995971324310262405908525836880455830130526406444825960061932674869270662995027423307938808498280457469386198159574648691773360438528203902115959863301491162190360849773728289010357179734433406151242837392373161238556697808648423273713658899301933851429019485908854023551208910963245546372824063139653320735609773220706947248235073026127639099976042640826727713136324458580044866128130131700968812481380653711839181163569859207124027282863500051890159947528112802225877606628554379261997810919634992274678448342412840694480750888856470522087029003209334519530578940086025476680339074547785545645870983965140553319870065735767997153820844776460395125407390570746062431608027026579603978991006761130902215941949819787592996248020652568752197690536420214033976375789777953376252407368774689756981899862062749747485645217507888963437095188026100665030210296461082416992289856866313515546314037613207783442137447535054840420929357210234376498492852834939803037046495448387785326341424839668303078293109769457273856258011399088047155714160884957483093794923587181179723810252967210946918294397038348865975917832734835106089621579652861299519706676806772850265887465562032440699179255227654406548901626884576917753420562342835921338334335731851844904373121829041398189223572173848558263302303247411272496691423560189214687552148701289760716938429575527383693682368343887769000672682601187050196463556346321067315318640886755779028946469141914267097073682532447273325968169671832030081256079345163706724098699042706596707746226950595889474021691225894501405935841972888535508372496060529514023052667102194917965046787142268667752579492157214948832037860174592778859209408485524349721481777475758695255554837398375175069764001003308518959231565364380244464026651126936629331810520320507755092961984345038906799732617622005113291101879586412844617964944755352516329324839134889659141946639841973998493997467315129261652812333243590816946295913848255581571750865453302059936537836180697475222990902972750594954741446328467408228295720712023442016903795773405552669996504824343976788906848748525804507091166093137577368513156809671220473184036195319241837238990210283691487786992053649431666477802681326329619464604040842359402662377521888034034404400003414689410039374349624340959238501054263249052694758519409603958834954224256603752299313008514657416099301482558722305388751663881684715347992124948914182596601058099946070057220939890399379576685384628162857071595091019283300167190308034869520879563027546767581542621047796387679336736484343918548163307071791516928238520898949560863227846453756914556194932970264575512110271269494615921588031049959268295054963896074648634068844606666952684825280904686270867171348502193767740987311133047946137601129541905265948122937957057773990293260434255168727812985866326974978234099780636419095521098316531761517448348374223540710471017382406291167040768913942624670007514095449258379008203854943079771889135776236212630341493902613348239515653191823523228881771306034275402980701659440184040487657697798340683165459265930658093342306777995483305873364973128560948963644267237466930327879034236763526705332004720752927251325864536576880518056613672753571760741318619153689736670290068221805036149358662290973504167694815392025552433608458599513544741927500164229238761982022751619761011967080883351679124702609347798533935604861040322150507785282319955843302851667094009413538195671787460527231889921105308307144501284948716481175421014797726601731148403848025043805854677455504279416291894230638464328777247778810646588898965185030945955453933978246351495827935767107014011749845282168119665797126342908044832240773898291990559321578606151118811211339656582819084410778124570222558597742127718791729788022916243688358451317903123053316788140015236575366331823010713487422869453359599523153565032590265308937119647849234023254952853156748621737220786163289448028128586205997996473086714239076171890731145935714824734163455585090926371826380025798939677536962922721406401595557199033702536067129142611671288096363771982361624840062315220463846038794580930096158491660578125812886010202484999299954876017517189702420659479932604218393040478514775367804831838775806423645658756176697412885208850647913286356730616547595278981931318469216570559224644628293581092719123688664320380517255374972349125580688761658682763862609162085092108163882380837873944032433390211997969861559525432222644554395665153531762100616668698184196748971594724091611535627725475828249375522351368558534279310672942488730585037334311441365355438684386488843328567458012481441042802430968842703428837104041444671069497574236411461314878842007088937031107181892335755544130339145404629618448479310675957181034061885315875150982206176469765080978960482979485226293121678376151855224414418651369298987434071472015662651895642737217174005575615872809833445761564727754671939538483524455447249440783576850479618138364245129717124073689407009646071694405808223512160208029390355707338193615729778670522139838010012014496204961107775284942517666716148066002902497584355933069831641262310852019468746379930336148895813300501424361292765469581733964714669203490375358495746546538107102650850257148792843382552653955612557667520076238135551567923500481287490150575569393324058815887132911261194450969589736289933533077258682921848385742199030072889683162998634189456356967893183147404097274587361056861543629601780880318871740751285169451624009201827354242228496261938715086035967348008295077776300826106714131948868731566686680423959808842972046431473631571325886682525920592964285708755074512316971961227922860749840065388521020130236244187710510284528086194326233342612463899527814546836538490337920474017951813498211344149054841152620636389141533552712940336592075726444880556725835729682603894489261198789693991400566041701942963973306794475719695497579289823979504731533079892369486144787097710843625780314136977022150700133870274325933895392826898948115276781431582767013548701513632226772285176898868090972978834432355550864444950613918529362587441042958997779381540121934598460576280608421758591697451862170109369593515607886875668582004896587607445787524628377643603338566266390115517699339749719770600273157993620402024623812702694103314776980063833069589013933018023576003377026842292103940738367444649261883947265287884773258841833424144988572956542677010880189705749428303029846609515657523015747891275999719745478879840445412342213571443584722000042665746796941891402637838861069243428954293776079630299240404925275119820356193607753664664796739582839224404226233561877495484213587218140522231057989738697907737129546592287433966495038568264196693649741770765208221948292793047807932485378983009518974299678047876627183670724171537703284683094624234532016051993080788867905422375788692590684087747122827215284539005667829745239794540763664391072107098185120315363609940362775458252668532705927103366022153473326122542030689604365452362412160601579237456071433329455168850877966306646108191470495990547816673337246034295249819643992862819744613567863361060639534696026288842411035201233330548492870129003939296262836623850371240809814694963941670210392723832271023051471180060874817035324148411470269906407590524766663150397684870251867354346538612394059632328968948043323978844238503247979348026181932255890202727384997830020931085043949718862967301499389052809295329459898666736082896593695423577838388061085204020689072017432425346691551988995506059755454545515572407759807330881541389996863392020049720166711203776137913200524014175862857366139280311666935385987843576227406415768217491007853655155584248013045626560331681440478758963045536690408119249223181046681437825910334880735020916630866530724010605491099820645148200202351889608660077223268215906572165296670530811603291387975045679924807397218997131965528603998856959648172432659891893010423537760827005882685316742250302448404152551677111891953435855684449378350304621439276588899115463006888671329235095866271925427712376525867254392469418842129925503313203535838871178753045341035003343069350819510400339187133169292468419502141939053751905678454007880161353317440450431611868285880698206713747707349721808447399381390898445919793756638535253595333829105169881116787732583971593951355513345244014111467849845238159880275537012021041768869947845696708589350671337521443942398397712303527588404388277041518434506982268626393375746937046783050018036703719212614139940373448588927004117008386228596436530636944652654351350247571413521184591918320742690095842636475580094066060714402916618195495305758309183526681662407018827615620670061895132500722160334503111355090475850896340786444668750167361452845501676061305808179418344725457043293637298943523305728270583614985517971570930213597321531948493633724930465823629124209545312843482010634430528745852010106727412436922628442916524099120309731112052788667029222924452296648841289200852349536239640601247682497718540497670729175744539955780729775230980573693009610309830479462681462183088450740166142249550081196507682541899646563122123240838344140201528698687733036822699757205275911682302825419178889660420629572517710187923174354335233235414694157697599683017466362776321896804577431513609124749131139053466345462268323913141471600213745718823660289591011424191836163421971631304675251442634846655031663476249950475952063551715009442721495938316672708339143977568865617577270507305997647479660640306500971697614166922915665477104707509369650271520867603097481216943169287377844912097963733991045337932013594675821677717171257424285564000614680090458460201957852473308698325273237287816951574208895984436747882135025260618410861200453911794293134108054509845894983232877684689711816690968790935849917210984893131923014856298509079550535887628672332355491975481837645697624101714115977671147239137674992082068659017349252904202492668632040028462109417155800069414440810581114661327782337238646629195679063740830475221964029076323154453289702476081650449434901776617777947662058299931376078727826066124427948693606007943669561578232340324795624226742928574507503981589065941589778402364478053541702605252114069337294967249855768304846879240996935443799239028848817162540487413433209454772143995327470489675375210474546895506326024336162197738154127993096572255279694379815527225297425702806576776421938837563907942901674769648405736968611742509086348658879530897992408338671811753981440623124729093312769708625891699064144794136036686405645232102043348918894326755175423330064753658262283449468911605085023766896708661922376522738527935338923152515509162659387569785034487472533139423930783007076863191610100326372648282048569691801322678701824358068317567000356329228711726700767438324455857113310111610823760775524914983554950433643074843892177507977269220302696010695825062095914365442544943217111404171006865861532482271440988667044124737479487169792672847523633875486766479507616941499155471209346874001569488546073684507107063159654164934795195757167810887964179671416925015801409093172616923745568703532161091386587978778272858515450370366472450392711639983504652353453681228959657361062064554967793037286940582418304688838479644878803255040317487785519500976161589490129910618063710201114992164879748196199554922237559075685435599570702948316793604380573411474468832944342881723843238084856645478199924143310663836676605989741364371686883657188250169929641450695952288715750430164600757840781452677898513820261355998471501303775529406080610490913295237352916840897120930223787053846733227254062871826541791773012886886107488394629847892673827989165118239463239099227321703670524664638828776228688987764205138055108176494221554988307226516967737378561546681782777736825283013139216765929788632834738341925057929033295313725222246889104421365954194100824837212829625041503152081676688965701312584069077818228695174283884956060861956326158853607860673713389968355940484731643825407070177463539767610856387296122527658423577766939848936951881042321308931848996560502935599151088113222593155088982780518093062989959164519282776740718851700897299528582832642564787934394388606287678421658749935226915199474111231503584993265440170402380153340982518367953408339480923435591266485895814045411866085431429779447012663699805700410133063545885826272408589884835470255292948554975899910335282973041536307969266396499484206847152052859372434948659784464329554763244843645040464033495560053334872714095020732146558555767402994882832321393158319926140708199797090870833043037631517785857007074601861350188303836129630379707515592186925382813646675085917368354628486440220083413364695329345187409498590270799047459005651649725921119147469503495538390110063599032651796541069940061833290451754747682069542778940793857787323186743325545732591574739693613954482946189951361150224531820315388436467583241254064484363285909653624528266366261523064447889834733670506916776846784896801952483145185391491755122650629032050981929209467569066125875466741797836776279760270562091289817097800322057672253546423465562961571906407102848707299198400732673752195422659134808405565771911090894039126576350098672783568885166971678121827113141115676079579751121275967127301883855308342684829762813537132374262640970027486757242349319355647282575696084722903908453756294602300538456840254226696732943023842134183263557604097397422276018881411903160343129834922886127452975770610921333640512602147828365701061526194527529902281468420504811406834585983140876558799435267704324865107763838380720098464605921636928577642532623556188236498261160460232711495879932804337313134920314641486265570657888595190885631656642835722549219960160095009584064368759977723469208741589692100227437314530706503682641030599713054861467093690607559413083050344335419079207599801537910338239750548798758303833728819157715154874949162746719380162613773228454863377840814198164390491875193681890844715186788694409118666919054388700588996845929998083612300377833570650043643558292195802967102142515498246515556597241767318511936153070437062200125606099544463192636209489712538097500107522521277987011931827340367730193144647407202933401967326535721792260983129673972833505038491731897483447971203495346289482389069079780635964101256413710750433237509585402825915573887389351552019848843779570103599341283758090482969035351726468452834274874384417836737711641628940258359704324614698830815281799980261713485989697291684753257656897818154623066413305852992221328411589378614361249353506902996727652338768125839715949188599887905418859596615918773315502004283399590427848480565067794602757541452106183294182236191584133230464525381733448815500040475159243676488946251503715582075557515770560581180746777990836087702131256537283923867621132289818999967445112281133021409101297798645003506678475274052242412394558723282566769548883768100884436761505449301190031749043442309682803759179956509882937352100700658194791349312652383684848720756759409015749003923040194235064958706206148769953991755703705617911539458590728412197309933094652892015670224455645105267013397226489266209389613440598836432740340633654968080335707291507004721226903492124909346699553626705160644715519288822625085663575274302187182627400379799922343789754382443987187413277626731331895966517216081060282038626745516082483482591559550196303624256244605173016784000476198409986267927064529735492841439113779889134860414629954061607560308823236321517436802322624080784022813673380007971780695467078756525687095110577133066414335978744647651442978753724403150839506999261517421219726269138732084106506491206531822772276269835989192242127727532614866428763543867906141735284738999869763442147991170732952728598770141678274864177261822683169528494812126340086360577687157066532812653185366860336975394145386876318231130105417698760664436561409071397542458139809925500810234807609877399943751434540081848232934267825133383365359048015729339674254623795754995948244662177551570618635714107458898187883813105292823333427543212682554147958103772558701038080791444925021013644393566985218156732861509183125533275019905503168347843594745378876846909179119569252717001238837251261420606415880377024272992805461904337218056352767377086031228917765950343830188521725497117237898256544900791661972987695963886107110891583253120307650068685817037978478586375415938171831407071968958197730313393705880513307716153238160303330394936857039633776426757582868821791464806007050017568069405108202384984640150750659923391576312989373946001269293690278263994165732949630689733594664677349459204006511789139176625723772940086177242739932955646145870634111257941481799877245173868106731822829041461698047097225394084570544978328382184739869178421169635983028098282814683169750812329688685477078006094863776385717933419536885937423747858198369661037517439823455942508084377550548532966266299262894565009830580204496343870311618738421287219201607373740425167859343673260173076321474844035527248524848189668194472166659288531569997029089974745796743588005028419356134389654449900144053278210655091858687306908639588865358751346529410340574321729357331966761829755875238635652756572031572762359427832403006588444879761893772028931875604805204254968267545642801125655491167921181082216293350317725922726160815189145301870530309275337929211179391925572869331825905689536407962502648043009020729044046118206627501518106675738092707648742505281348450540833688729752727254511507980100342734402601671394446826982831728431762476672263269358699389524508880280641223512996892858566476711987065782348950459298313742911638147628229547297980404719781144558986344115947031404940389105674750193901967585007921998147841626819119617335155785923530887754022101973049298292835916124649827341439373841914606132213946580353309636790833090668751770363659687652249779271893528397255735289295509204166811237988425339401165473829483394784741713172570767745289737906154995265488894601495243066381328511347524537751101531400665261553150781112356124560165166561089287013044470348412217199367978394265133975886326625466232884917190021861005888440383556175342598009970468771264373803409129480828360314349832510523689085358741561735849850955289574411987909383039960034221553136873680437999290169724890503958619030555447940769547344221482064300245856304370557529401098331296277033809061955244445456359198309940886221256396035537583005213893446090079963738258998053277042594350498009685479479148503412830441623359227872700492693610762058205888500265578288230893674624785060423020221760986693650280943202086977661095849325712221552811257222043050626944597684050506672851324465549865026469997365264465194175116150347624745560037521024362667213227432684761479809373211719179463121028740742128596524671357642355090592988130844114264651661780318181306739048771592576206061214866676281227246839546245124301259276608957645051876310639550584852763665773531658174300003440102866987969928348682583108394050497216927488998716943140183030126254860557393703398332378609100104740633029132699573027749814611483939443072956176745355748806802817643935524549263754198115771269543718937720425374072042818208086492242780118082116905204769138399027655450766522791807696128819994094386656965397827117619894337742723656605652200219045976363773051766089946908866217513324066357124180977927501632427036387754358497615994479167219890821316788593117896636587339126888647489660557684442890803953874714808351383735573681094963176823274014611071803215507114419919111557984310716921909551189896551541476432181177721433733642030426508313377984751310952742235332262085693848482040729260188434650138325394114753215177581798406390045626571376350230215545199964987113871792512712969247873654705049270834258378458479432741752756824404636096148754424900437222239093831543643856090265934791255718199502957591958821781945502376746712446769540274788709944196340905479362906645686420449850591350506265399384609580838874379500793362778941480662099270112258614778506165306194517641423871148881896504302795501448399675836698008265433207656396489545604102546663956241468659414034386186021895221628594900361650479094634608016596305073701109394150301075057587876477848714268054243328472548045841153703895862051406242298322641933093235690945539811054300529366066737480151553146313011254960205592574480419367125543377417407382725139223799472694224503872933564991971582914624462992421318488932622916665125370654902123177610884922768556623570019235654174626589911109855626534553984914639181496092693206135499810661791503609251598596340085798268882685536097500908760733119602816116959773492776716985967451319505952273464758340716107794105773190319366529305083968358806075244909548142250479026829065610222026651453793589462722097911904321763297591717993680937321332744479487824192758529842412145316783918408964043206434979500913270401058281912400399277084788706020578979571408515798411633834809720216486795373934827112849810916545104225449113554424427054981384468979959820914795989598425498194821744826723809918789286391459249674959406157889756876702595963439435169903879138103028337401600023710152064149941077425804747589442245261715636816753647391494486082369915090928128056422227023658759891919051716462820581755482043726759731833829476974336337287935493967497494156305973877582812039831612587227291241819819783150478393325615514004664263973582669817022974188025059103712907204399994574798328380336041087782256217706729052735070201250230751982034100653039310178723406928787811272442153118758858124246317483084009185951240850368126358313577263470142984714533198293183439551648270464708770380966127292973521657746429625267580635682356002287764263097403315929814768590335820845227219544548311266843900678144462845407731890280061489571251422533181478094348055261620809467319858002142662396390081787562344919857422637830274632629148579129880686559269774357001311551922508085945962553272817398539123371743657615600367726492293178516120415873940258610800812306134232269259410122209257756111999110696597768011426642496042947631121161011574351977949841653660908585028907034154642276275453499673254254927164127206461027520596697219172939695724922134221816499212140720416763244545298665365863989086423222246848098407894646489091445496042974809426238429019317424334780875305973821678303405456203317859852806477009137409367103311040146697497571266346073013111385705610054685073938246768561532361807913335847204521937991042686380692941375332559993553237371136702921511053367235452866025181304809711030498863702781455998139250108222244787795710474642088759633293513418953471055226984602475659008467552964382168683622286446423526992149491366713267336199244490634831733570568305552047469573607747061278534237779585017403519851305318084891204037563153368781360473659755398750146572605382604814901925090632313967243796687365678336109195270030959325314030960134502485451431912862577912724378746252041895688845559057226058555730170022797276700849795378707425137308479059372879494276552270621872652521164216939085084882750830315524461553876043242205966800750965568510813125643373951486674284786366640980237587432772959603015691209018636970001331447127054727729170003892665527710182534194538360553488698906189402117197915282790857908042548378868144104427570164575339754709671990725780928405492814929754080923708201953647162271230646658832143067446990850880807560474677297231338073475284663059980828130406343719042932751296866225942451768479864087981716040250615206415207705859707213777811045912504273736681248264530643729139279195382641398397363776256816264574266915636034671524796788206459810799411232548975955271753645675759907336165299168788615121242490218263602525693712688537903346163938885602992888936329265234182416052417108140977363702206239552854133182260562474091512164660775720489987569837756197264979596294808689664892880608189953152840377667961886215105012618175936097916275545942786748117463512152140840282813435353321211448641856405959542303725386802148225590735422146313585915220029129155702263550712138028490622273944626202623850339555088270058307037217688273962552857006981218755908712417769475961964885601415112122927599050080102730788041406997289951043465184965883126029861581224072709218944618484039735632218017832154055773949824364442689967377980671518191788702680740159528519619143067534089335599668189724513124669557443849705355804627783149340109878040649476584211880085986676450828912603506272921683634272532602675857474310982880974171811749228690182419402927500813708447306068322314003572442386532680116509728580824416929814433798082699660959246974295882535603352005392469462752331931255327139885203817016646323655388619566606138346969666269977831088037815357968118738626828559063514819750964027651076405722432623300909967964243979457371048599587054112082678672510734081394977188785444697111240854256972443102915412929166844077202361775825622671733337208114218505579506087409979686501484249897822053871371664071421628243848649291134319182216476919616286101240110148646786936759478520567383855223301609809429264425128807206774479578502099729660493873152430209027046568061210036052907644922125174102623544781458014633084054604354494123092528629185020553663024237160785791441245525729653491472880196771845688536660449390261468951889419270999452219528418473728633980608980149452557639586599801256290043167549988556298264150671397881835645657383997108390152876262818178761310677673117735524142341763446094551405238358780208981549782755921692418075737126092778121802494906515380137234191708407606204151339514770590894356404569268211050101912150906913892955008124910884610009168313380564962409737609158735963455912004402340708772877368094685607186218548144608714927822287457731287241735339404311644813116216322509090420604687608537692186149594951310984524232006480771970247954562027584831448501915094577041888032373979874545929695578310838416904254158590747391414234153187177042655905726596708975977713135977662162121469170934845108244037650060143550479065914220580165136491446163978111053675835568804602967346744697667962876268890280066657350743693360582998080253990253694712930041621727768311088939125261289690097940766991965403204109711920343093365952541735723486991262192687610906988799304052176381695589051182621702683260958039090037544765186912860614118133556017532636434546217791372259239767827377969926561674818508380785758723021360763499170515748355956472194736983899028513803054462964415559481674708368766631283122990502862812445683382356072277871261671022934180106984888055882266297184870220599608969001599701509283800065324097322039952574455497952709024586690022501877826435028446042889033467212310485024951450171250455923546765664504937183743816544487107321814020279080649109742224793292211256913024317289804713733578478358280582150047000565611149369200746639433311838975304604160218128508251079516033291072904575400430255417539737715041211715669468626812696924413637100939759347896593620166612975401474655692894900801583846100532671806233234435090518307830410793269342309355882624779652088433931775775393866312538179937565075392304126093447640961038048786392934187109183620841625162903364033180919256724599725866738327385745317803699569163126446291216996148241226179401236086112180739843899359404556914534367298449048084809829026979950981029013601194411365566883107142676051023676823482714020123053391415986680887034035475609921564840378671727684148967150053974383767442597880941248413299926870338471935955502751772905641486691372318021951299374167221026126191660249670355040816080856538236083515859792419248734962929983698712578390424421390803219903344127676290768828324477308042398619553514259783845180754197067634803678157542283762809743359128632732873006140560349823508660324475360818141462472600469473947199277284021873600004394677495271623794994567071813474905689145381247961760767128307366536029079216213412224141110365857573246802126439195321396607979181851943503328067187306179863424530031396467281170864834585040887395725488409064786027580954320376739668275082679081875588650342206709336509573217371705814749024244027727844506559089357852341908617127272952280258412208888635911640282174764053916632848168913395704870892391591730722848597953612660578915190609865953706842810068048287496467839060350889224796689721923494981008540078421683396812136161138755118196181140508309681498762335211405374637394945859865942386691357710028173064611376795272046173877395924720477050244832612673251126294938643228958415225705419987204306438326313691981231885886540884604908987736010560668062515757392010751273694637108315802556543032590378860082067859670208012639982449861429179168027156079457247566989642558190483872520734524853762120850802695375226967859345727762427052046879837104124137293046572355903563299099364470854597626474684756803607835582208384268056038090390953744802009039447478834777494971412009099771781442869530101774113180771582639422748831742857295538765046716128755531314318500680440957209053045815533752651760149970882268268594693506217038770902456649812475949180047809765447134967266492957095980252632763849417510718305483132393774188309897999141150414654848553136722177111292772403323837150474576887314172319751612385509823343816201419535291095078074207506039477466995884162571738365843348978053583339252202444666061221798416982726745230726255242288904130696486987307009475544581909860174163059498626586164051486084241902854489298847189282570337884030960320014418697449850024470581011862926009205604214519645961400853196375347652076032269920675032040478646238640681898151553997551457326974437298528010433141249878466329510458556672046127114523807929305420564779353445680468469295931237536254713363075628121229899911855235303394421338850663532750640545279007668843271842868575455311697025258599272164704181017744246228268770719305528193980973829369091458812773824512264934786257508757942472636361527213627080654654489402727468307432322218521965290272990343903786954959472669335328561704112060834081739193383121618073771888978672643604359596925302300006672875858669985113152774229992468211247071273813970049245007377211414935086236660138711122522064770264344478301752050263867704505470893568405723987658494086484999974132506396963931126806004521441757635079135732643152965585250611480355900605514537305380439253471528717897559000572535012726522706510871735408386034466305305344181075739904520051632431378806436619043799046960027408222484367328444129803916514434519917379176397366159389601874661456497558275152887060850141469617190377848959577341901515467597230429420228564766404354913869929245678251563229626248631507966737753840685432550055974330496399873065192261897108352087698610705829810551121846644568636001715343840217373796840675441301773217552126269672886646568650178652867842416714101691444172510433129819894798364033148290941329346620327142131014734207885601932459522032923554772405785576213234304790001124869123650362993078431625334853280834492788938234424588706504914337008586646532339798652596893377186906542015957904888396198420435593338944679272788087689126379135230763958722989312658296027520958071479057739938884172775068856695962333122014701116253907140619580092033995984686394282008967481905549716056259726836495642059552963935104208404534933916738492622047319867389200830798936565419655324296286536431823700738126298983188571346545957741607511102334015253047053533509359365293142948477588346794603029298844646670160711687480746231080921412368270816709538338436552570429175915908468891898042153181324486758993002305272756394005942847054019967473321501105772959275445944526155054707504540314979999133261119230177339799238621856176872391136358480768868663986491118688307593116075053959235639476480945830917939433000094077718658348907491964433830842910570177269216574948706901979803257397857618956407935969231086286892268381964295198858201107967937579109324761933448148178716951253897870515923427680319232410543044208317248180977282645758333785683721922559036090370743977274354769139254847332673851292439546576918856623545454303550349110769744929628138568967687182212832479234548978330016932526960188893158688673357060168437511009801201912191020614515912589177968150153245167693729509594891049934798382859101968294649997786974655878584056339129803244180412917256775349910083210217634032445876177179209942020701488634401571116420998436575760235004927005729599724756053528282216072488414532387515369700409985275230109798639568961999266684554249996017898307341614292948927000106876572302444840931270533038679392299291465354231399743437656276061472476288419162753148414589179535683474597344220915111903929850086968315392588315021294238801331274903658838962581753005535079620319498818750621710204885321796876017454541524697888760200029779563514932477553933159594040371322686537356355195065074612628102923206462344666750165472554073235667515785458660335647926395199853251478346632812652650335846901647842243513870536288455656298887012908026189889402159930535139567241765129986974912583818712245689008461569547508326703938113779037117852595653661015957014510890538170476417033867040714119718337594278608816580703116901239695850329282819739365222991327669459324200530769198389511476262970025751436705316297768666759641348418610919674007336371990753487235869411824194819757032720206457378548903660931233870042475746293374434198532750148966411678342729174568066934132910651458867744347691913805887937756663947884711600647746867623111414030876417012219686888736442427395874697189872204629827797882070581211089359443503149186554927997355552663056957719684030524296934046214361682787655875630582343650451233970464041493831601412804345268628716246544186293873415976316442197134247113420245241297338878263799258507521007285334227139813764435363489482328811352698159554704516884418875511872518372782220028255088654192767289164510293087607403570088445500119942255241242011472927762248274938714851123235912635893465250981169577964097107203685802311634365867016207110899476498601297423727362288173977200980676422609964642213170952872769482017584303140785442039026848610985208286960541539535198430856963269941476908097296826806972546557688298770447976960261871175762337587359570737348134926858938295654560286007015130800353219815862643452717257393748510980781469296716957071904909979298552801337341562089108539603769772180718548929138487831924308444353463746074491413837133775053211198872101935802767501262277997163435345138096509756338830339022951058452627281747510923587771443022591597468401057959820070781057371537490551487006319257551800093974443523815116610076315827299632169301790256398783306550331530715161494763300938241969806344775614559200103033680268880942297177363197129862739619674185522058458757592752743959302742128679322914455323450124328156821020626554529277096548384134991372887834798660183013407943044889147885702676007688080488083043057832071615548350186525895798676242100232803252409438959786435826617887827465426090184867320526933459042361598811684766603646632702195715471092111555331822103279429013953617500739905270048804233484350484426436947108093789134258737623127705674877607385929080421647340910136031180498923479957709875062304385932285303387762675003166090442228560349517738904608824247172134284007952348779550129199932415537947302136101488214016849398632671160025177729701774252515919811541009579536662496554108082660673097544270804170069422076685957764301245180098680763172418557076154454774937450163355545434549274517365676357679821911360902897067768854534455662830542798960962885854000592829932451012167552958079154143629039160919942143357791411117056811861696566695888353661545291120172376993592602836647996907738322855766585539664441323078632905895622182605740251562508349244804485195110775071469844672482825392433597197080478976965169085722329110533025320825050833776483090388521178658043434132981585147187940495479654524783916853486564751190784609354061584236499648057080061156335513595530108223083918162764692894940563573179048670215439020913997969829811307777845396618904267603696961148375152348261694809121558235505944002157917833868387178467605733204780731609693906561321357907699735657295943151478743540467617288014078364196063944648475830425937888735077939705576969571145707096864311235051704803973004638762169106167688974580482744644504317319782073561926547185333794669067791515072807413275610454353397008390380330314885801899421713079332852414628976211884175590173245930453885117740079427660623905537645826807809883565879263974474781613094277320444172406004778016926924707179612340762607427431637571261083612709985901610092410358808706357612294608873084360579236285250314857458218829829946168169895197974042467584675775304101350911103015041684288291049991895612240836733211392933460111461782706444217324716913945709849759945362876733386273824887287810468701677512146965591756685101337527974874501063534868751923823368298054623843291264696713304009797620672552612460211996418817234989245414711449332109730326506745664370042014556640544994147920437223698716579815277942995855076631037565757098919419085672123779035906637786572914571755702697834571405034126983458267339627235189802126909633262971787022043764722760663414615632612428902442610319312893667414492874277872032697170052400820061464258653370523842653272832396506079170812828836260172322280995172850696187455845797777428063995643647080645704601970593244054870107800477816705187281956512229946782266273830402781658655419830381330355242831089898315965204532098252221301592552431780143920574806872555316794739427347848977686627322397640014198018768163118755302694147246565659740863203814344419868837126326592700924893471908515807026849955270764007366848629741005252056750379946296781729861840556365587990021982411229650046738217182547438602749550168332844624318417481869956895328284278855506518230378315122332154928952731169027598938300872387745323994922039910281628401818643736912990490619316037537318209058291564668471759237548314123252875396350356836909968872917372864774665631945409174070968630861181889799124855459746711185140889765998872737672823457759110151536516845897357062098237872297030063957995094559276559592983119020288571458060137446703456589687390606374800821412606901446696589232954032970920057292024955862047423044216234238423861438944569486233258278856029210635311335718413605973927409646739829244609881142612683972290427469007651203564322748765720481977452390639005102793761583931765474653308525900446850233358052173784361649100148481306270694577476048030821846802597401147348879991875824425918042523421654294013314415098132351887877635391302811708787447039105519509213984870414460884398839462563542761229942085417803675422771221919141872579972774419662127407901691342851137012856005832658872138511266270929074168343468412567482614101365152729854993010690291636668857226507183656909050005586195511474551777661660391278125897249230727243638946400153955269996883877304188753513997744019736817097467833990084337226164248663620824378187359535871158788192089220557875346568520151022756174984472870961692987095731735020067602070338427712459281453746549104973314318722955997640490718076236114332002741219621190365834710271170009414877756112829743214832940182164392274384634379767620362776799568305366353290030159530734874413305090575387492525938248945689299733180389764454437661340752492872933768836326761101728063270125124702083312290257028600776545219544749510258647969581895164227613487260597425439532294257233493697715036917735253073209080568045245635260585922895825488558856536850939123847328366765034656959332952405839527433981927295759683681719179041266093886978345996010971806972844348964516655161712056642451057861863814869306476569637023902454000671330967637071966363979429334171868225224640267352966073924090266073322309389693424441421759331805933291579979670940759501860345566222110489344988258289036508968406423400417132372002985026352277008848532347194497424210468235699361286584327997844537268853672710903865797365146025740540197484527118385969968770974962686724688870014060746384247937584045349585128906585022455699954289979043039136098797115779908999257238651955472928660025207370552611578861047247248026154879225270461877074650439511946355387175346522078246302779197153132575129508931355001791931832128672762865136107554897532696332020793619615348043179997613485616005555169982762756121848375297318521021485331609651632958507226241212618073372301390947922052258057284710873019592370976760568453318474965589871134932940574611228798746345153642125645369850566156539429557899421193258760500742451576303872619704921983361129106544075430693426564196733440601504083428015686953947977986112831191508270951693577536230172489449521089701622030564266517052192522335858970337953765074093164305220226552008864514643712432403075842726085711595709908403773499269728213142383731965809383724033494466680759679460745170651618520010003932635335407705397948493890471740984353493174606668819039195811990776388065522847209592073123903271035231119800560143046469495784826922755797367877946354565762270037265103705949696565197679987131882330020328196376818600214797890717063017128920345197067066455302112685798148626348397112194544684919937052593168921028492844188722263091826164607018237019579250590282779468244587513817573024452730642487382190985228204783203230450249573206097316857093604014093233618847925118357234376579318099901405314950848352222349232393308798125897360557105576156611841861267633596482342721693094439751670494632367312178997570670239163926415054767947566552022498587501903495163236931555835914882924578629294579894091488122519899000644326499283760614571184195821937687407613127960183786259188984760214680129639826701582539279708614627824696603472212386816853309332099369991969171626114589669664623891571273334631514444664618283414588008722126782737131662250497897231226133759033380890978691142406767716637582999523333819066755146122603009043784268914445567228308151342692678604131847852585800509429496418827317637574192186812973984422300238947138064882727125626178198354416215342215116753409329932511413126588162652926292965395440266586908533977211983039929208403655194881214877572336655500459696471503399326820244725410629617900260519574167717297520603547511063222177388898058978549313066052673503336287529422608553610616559653595273822829235419870794325257452554552027541181619329204043458033984632705347934718424010944422582364817515395058217761487068641633056472499281844524534638730324907184445817374980906114198440040560163061177119579560293817282225970893087988723984346298281785319443460445058069926345152919039837487216403859103456966274529207681532756190303877889943807453761799983963344203219877919521693977087499933343888594038348752427483506596743579160953892935200616230289111903805153099428348066971796359187215627325473770649432825537121739239026781453049303201095045102031147055522407995072805985943937901127262238144581804613794054576428013877426901311788906807004719980352439931533475560253708546788569081469468895508671924560516893075423237936390776982350702815104329610254507884979068299681027802515168919592396709847931751536970117686913783110155083716967803224293634867622042752999427822124572037208368247714873872842378371678440437612028307491657900736038938254871183633340731026458776533095096620317559296984150654311960491717717053082461727586791472332323447303360769748443324739599588956308133316073464829616867108583748153271578661064811941196726187342449948185760401561087632794661965275992590938139472925582528836673845856658010738894574253227819195265716880848762409982738633209790815013526242586352026336174163850425701473712159386134871868497292085354199642628629782191628109629441980048725145912020732714911480823868252738134798297515534199362724440250177626017695354086604484038342778628359903335405915651343803630387521075959513435321053666865097287428105123002099196981580797922128794850891894631126450788250532748691433415964625511927742245056617452890068743182065210140922820893112761447159976761254257972813975241612965369218751112400953639810305137867306821583097334433113947473084666170144738842153839384967077932310594381258168951829985744477346332431870181370674729418663883826933532298464424091510363671571529138578229592414059667028616008102836109449415409025477666637768435228659251019592475029319481257010217704660736137320020956653005061101911364136637060454572374170144584703110030962680957826497600843143931728661440434494252991379278232419691932830587408634926458044951320790966797531026356412682407883182537475841569362643418933961370747302061957643679610612767471971539850827193126363003699142996216916253255105394071099779246020509022680432146282665768209273122628768576728662121373984944917457035288383269407108442424673461911767587896759094025742492666031712166730108255323791687723498235849776092993615195778984288353715199064849792428956887369056999455698929360253787472699083915975704058532913550146727776875859447647590101332712215596137231892089656973476199628131309264540974828898893506405236532677528543843296963222754235396961556602176723415308585308727455182712045169609373921604262280357645094891175827092497884626190400118283212561543154639747842058661211381371170447059956485861176927460965997960826928669239429777806855735911835807169178910987977692196065887622397404778069439489848118964319074333176630898132427350185558380028536447843310342425920493437031175704850327480607422805637503001164829183024342033160659211503925368759327659112775053464581638480226492304101384755787721714718919386243697966937035178164698232057333611328222707882940032781369055598074268769362066870719017575554073448243271684138608013760256939409262843035986982319984657773625735460960380378071104449004367558349297421290988224288505081750590286077620434409607044352523316903471495981444618517237845928248768769186421893602146872132983491178690641169055681467698137772317674768970784665982842808976785588124887685257796033745784133755143717070576951309448364124330332622625443047055839654270921366565243857689644601874038108489281911860588018502233080192092210192808601528710578892076359508921160415563082332276838122394900981085371902161360034275676702442484247670508230064497868366659233257872658373569247791214358013647463781103270303198704258528053539819415906710614930085836904137702973324614117608699363120373235950492222844563907413583261221147841986410814540511306249041215051341863551785030048827765974327867442032217501070536487456790106994671155274423220593297610221814830851878089196111401282222789426758948714627001770267164104855782660105369857330597320069584014278126265455527235030113673667264685306348259438992236364444484538535308928406996740905227464074357701494507995357525445703580027010390214167784882750983880487603361096094481443830448762132142562690185180409994525961832933941037003110701227536344664690309430139077323088120203957784742742914005606480116703674244331688145508803627159590800420707656890794977008763813185607965700673793354001188504336171120128970094678219466378220359718152149135294205063224368322687797587888669365153665420394279121203863034705020858744702879045526939993802939563441644064083533448804953335809403053040063560209272531026431679291428285318672017738866611182576167748634753495569679796014872863674331323482464052716696071963685705835227566118950619967289549968190135755344000803043717798503722903879669103241586949741522060824267048094754506783910665212868061695224574201163270769642160422217546463963595975207741619234440160944501139181980518726288452551026643153992781988067383002887077491278365149194574194731411480380223845463390887096784883028250127536731209828073012417419231946698165481743956936654332673395749259321076146242591725403156550894937620064528211996099306033520036721114132847332019447501886627334405362561444210260736352110865990878757041671097396804625876710453358171623992284523069688902181816371650992980063353178591319156477075406324424690348381843856467347775171755980057594017266237632309722063310371731572178988471082678202870748974046101830431488777769299484208587216736175224869720386107897653524485088206709682498246145801452686177418106325280558943498299323115973107699816879151843992656878792386152508016180096305915094854509167102948184793857636880219083531252014247796433422955655723279499872193403081637336363841469148184504628554311068607951018307443920230503258717228003301295161424730320049023286709204616589297972971514195281812343437308556422160658572361006037692247843260088495861471605268355410712417935071388798092887253975498153288765634366459154636184273405941736843435023557095161866728110229346071479868953315197479782161311344521720636481932760268400360203403103272177681043510756432995251253301038529754861664140285783899433134125408297528310591840939553221169977578241929687784331062361585727890568313856269570185719027600285091270996689227289961031676048197893677413097351358251345816950000879620490154749012514765269478487758071582347061274702063807024969932124646315036540803968908107484381054334023257692300471098391575765984376638218722899082758951722577450104189168130939028550429478717361467286078708278359664060906014745767372002995739495419451417700792468530015604684336626136550839762653364385989009392324083335257663585333428112310178803762496323460888712339097083508717998349296951429706116909437962302740321781331456303972637690200824912508871163846180107226794569169786478989903009467596956081957432706189021956037413161396284850107252604714695338294424383144310773609103661706795424429196455731020996669050332346375474681003391843160233628276989287370502494440022403024939409328090129981145844134050035873728583111267221562844557319917337531675564544782411004852472394839856309087502120234090672813619337939516076974339063688900265177595566738617630542063942284393161211081832358240664405208966937130460539394397759628421013235967501767760077533943827783200310929799365298330759345667370819804564515812288151924564689097516600948489487129726631853782150741890547835264541655851086336859269565900732745743034362315267209588634219201430259325594279715872886772178162477536886311567262566854513044919710280546731754836040543043273934517414257787279113919126471666652378409197728467480916702932569667969477495136051543500955481912029011079415432257143362922771807895106136417787562577001966583198215676674893422603887539759040098958487675262916128767301082859550138863989246919753731014645122056043550300376473147105742598981511358989459140229227686980749694262762857580393263488246579637734461802398887370202497235424729051291982060863219530455446656373937649121553682790774328348253850293495677641908767650373644335891509108944416509303381152358683100380853600474917429646676193275519855730686860656923675769468863805606598868072671952379903774672288912703693427083247272122511618430057885255469541692438149312627796239504886224051055666643923381723158997434654370061157241420391300091453979280665790794779989886847506230836641644497166145582614395858653804619310828775807129688472400350906557702033612327298652415669252138596135445321180845950263497145873375375182055494280324701578409529823368837815663967032844885177007550793902274016212880108280278757084508075581710040890657355842258958458289312356683251145559674352808205704041759282731274800324129646908697063916154529925221432878078025648484827750498087338944169225841469778540734369327511814355256112316619133939466006524766563808981519708010181885646626577491954581629059086593882507710373230508493945535136000725305774487850415606016389017457514974759001740447995794840519901244578837821920725599076299906219910786764355733523987040283673699939879941453674128055522848021883072292609951040189065585700281491504917448149940330938150608050405405691315459511146857181102957961067203920276545870568876496997159615882308242206503518293888838978084882273801599751767329466371741717674548104582598305117159374646662463196927496764976707385076423494576393428401522350282419842300834369342668774373739526711472245319938720388591330774801848704536209061991072193771533358419808463380470364732784764625974838948777721611303237119097032842891055617839939731795208753506287519214943207342792681028130732251793313745295555265457173808015397642635069844107422494652541412355894886234269659874029647955511617340673789722415593256959228693998141476374911124857135448672334600139099583224441880409461277557567183891900696201454998764140923429671913023398392678431709116272276314839136067835965325155667808450141260289019342500578151108906247643877232449598853504201166843529679071558351706184259737576466400266260927448092926469345299579440721513147847260581000473362349673731994265420559759911040137387103395711810681801848218838822721253528197388311882957301286150200720097314514209559191246952589979189188845851550331653054062523038672716992951132285093221977530325917925310656270295109051721668917372071102224727013653003198487218085313952575055643173437557678447745972889584721856498683730347719776609093753133147521206981186959919271717253827062922694524563523732428515367358000170385719921418487733727048950270435826739258030264775461007099630631497128977756970079647715726093715408406744501874289529891652874015017150249964836368981526377702570226565231879650051940238727369501922099271111385618635153321686448068780915743322511264667052242113018021177646972133329245808547148213811493393417937120446224008599326344703033457027874419667648991992459274861266371108358181980772357655609531582767594504616932246477221027189231827141715030080244569062111322264801135751858413314168752513740063445518341070254843774065419104821968277474672632444837192947310509081592182018691695210744279661364803158086950033867992399692366045833973225716788217111848456046767749050132969170091658671435117462092236797388076372619280994075735811291551317485996629406752897986813179286504679765786366981124540312907882331521523227535299820031744297729119290479798436328238965226654580270758455276211603491888702683779385825927326907004967795459010742042883420754032169131209496774460601064105881594427574866400772033357326267993208764855816799763011524942557316959037956742788694059090900625515155510634415432037087575533953236476634620445709783751169127472987687736675654461334927045201806281276666736780869719684406832179232382238959967751448306452005106360048841320844479465412744207330852845631133346637984364410648997664776684174017699735376528842107264778972084146891239558985987873646659132536223783852445565929806121317344878397806037999440956753153287273988856348539880115969875063773302196591707613040734883163383310359692847248187296182285464698743923354042611405717232956213308681880137695835802922484465301219186861479123377964154315666553625090004757942835851211402633359006368101489844094653826930151994691728564068205502734255222865624298492814132380468474415409432765056027852999286845796078384237187698032253953101068078614028281870195952672399768220071833750286429579203914636491428129505884799074148288986070790896515856452615699735758915901174502963515819972787924525650478400054875226958385651917621422752747621738166746853534261811242484723771837083720848604011472418128594016423616074462227997440891959989664000992975064190181227728419454291505529772446267702945837935145930307261703189657906103714877699275052045333153939893622458068487586071589689558316676275354662037687736549772756677129978187078658828723126047708043533618078655954660530094218524853449494088469433640898592867080396289142522145399482841954679050875779875685747638563102155465368524325639092794733017722931728889388164833282052052955762937408858705822980035503634321814478712696177304985436119449578279869756923234841890577957695328516031978179174567056348361760476036065109787486956900316761068279015237527124557689673000180222110718337889138773303582330378504846871961929690988866958077892161146450036953921160811032868903570683468718356316024276361991318434031292824762195838189119601863658780044259612933447375572895515711547647979937414801392406670378940506994579240668515589135123021846371788576454633181336463905550980674397107959711177156437210033306827149832135430397498130563232527433189174359560238312532872493979877098675277878872783326637524263912533161673525126594393574228010889448163630794771994039939175688347083156070247160527924885133133214748727255545113470798390434600088224927166649566245267237985161689475040702497497473624257582399555672468540691524888832949734517301083558837621651341971281940388004798100137383829022148602238646720540215649124705271828936398381754986818374214196037529771155221500057165344767115671334156386323090938837871434072453068960527782514739483023537627605294820908976375820112745273379702085742085817341892803641367387650386969880649984438064351319030423226028167083512439539797566369551969113850737936413825492811357440205375686019258347362656823848405656412919555595471319226806941405620666091277239196152164860081348835002228763055198248544760364177005045534360880923160102532607273012135831647533927777746431812750840396872066323870853133612689084759789097022193892987733265626609844067136069061414471011542637386975111950752712067005956407969211568007302092786749885138258647007149226956468416183316563362419187625229640546293400973890878942755311298799152942825565803556990329440956456921426530308590883296230844730166674913300394266403211626311770496197461926309875953634136584379410021933169457117564072048068248750777558048479376889879662913918502359292448387082518411988199912390734244278709144131327003521341066552555172435660829281361669244121490032456618780449327761080733322838831196167644312402382651049880592594494539476881463338049343526935718620794731721384465671720998235520958668925209967429579246309486589208312276750831584215984173199105104087725652415594091596505451000752634741220837092725481667982837168775337786775155041359570181573583089028715549569889834603972125100231367586639459339941876001914930847701599080112470140266841259107635332370120854378498705742347527824376919031526617563747029001513385515075677154622020522677627526081637543601893971900925889384467663188123252263027684395260765278854726547014084688530970678874474847614621777261569233257453225713242469184543691920433493979800488432915457604474974346937120132738771676376556909994475851581292958645506705879952731231718657851566168581053956822721425775767768747358116242267132488636332827059399803391361630789063727376782170274795044729257045029447279683409649807912292850328230914706429167826317545879243070338906958397800469332068136278075663721943729409468190144785587255239854937354407826607276417274844508773889185070725372027992996347562982060547904001400979190475646604367112965237694582022461069057958382726642567575726633499462755777880090698062267059420970793059259320597039447550351288169743434340142908341955155870922058071044725054525026283813179916380354759557432102514119326354603979678785171653945509763133851376370833980799890011239052476922371676778431263426217161309801383315141026561756237641897196982886476962858950652160151528116363979531429544518498602487499448891026518670715350125882178966989133974865859200496859401096784314429611777919627294935070333756143059997616905284749407082216049318617300970550902706277181038599148841373281098210293641572499368448901923460121738565702858141332414627099248060144842096017143759870713475308998248283332445202887925250452225250090349463278626622715774753899057917635323724797213504661099373578635071408401518713856792232217211977677825324010153294875959914333926014385963618810360082661787691618587466400426413275551129936662584433388883437964408411453912727436926869289629959493273933121285299183468523512719924246617112546872314420380986731421671088536215659296248482890411562684967489034832789243690888860858616854648413768895695856321908513443505914771113305902557922721898808776415137097372566131427683154200043650778229916460246064273356969707430860334806000715283909740642315445070511393374683694704006200064410849399141766475614234015641396528815061025904113354014277009571260185223808728084727377123511579906222397040085675488364062383481233404981914847960704594333811457976843384556399389938173048190776590206746964375282667566375345948394319769057613639058110636194881304297667857434411183674600519224290458532589895454192380067128550862761252676240906073571600364548828727602478977549945347944926471466647970861171370250378911733762353453457256786961394629484068780739609487833985559787296338502235383502912023670124054889968613058840471150529359216508847891249626127415008832118162488042681793933977418703737207283006095229504229681260117951354625276608562803134570700456447021094429998984562496568560822547223942954650781784276155563908727119407130428725699738689020200390323795644760034238998774781618882628334908386041198551631822718990808795561124212792752669200003328609081584870583789460174821494760332329517031842875303922703735617028862784820320521904663470822297947166976160296156720232461207366956988142193610329575321041818896076680242181813339109663769827881790366714500249637034012156597973568611125632382403106145717427933876802218847541733559597019618366940455848323447083524051346010650450023821380754852813402197444025282232104351355468603557618172582101529381762044128774869525866526369061522630945886491264107839741534025479604448794683511746669719149983341663228520878841366291936913684066182756196913300889005871563547409004331220192531036101850340417918871296566522966895505632921693052046909120504235214178136643014076776725246945747401853287931774610291839019016101814721390041142442513248520183104659871176459573229570354936170512936099256014007401202094671753823061506304807781744145548105018921306710655828965297363311514931290746126555150385465118181756653013732701392393777952189913218227993666522305294389713229755444296861372431968504973385702983009340279385399406909331590023781882977051726778118266486846250636637289578483124476152728684335609188879108253366060031454906741983029930711805920758589489130344846852065273017990739767444167335455931017814076011866619932888019127251274529158455728663946360078894237739042427874894158491340935048396119455446851184781596678393651746562432046662698459221392186279237969917668448479429593975421867989671662706972223934776572291190397108499324133692583906161528893625061596724499061062870127498165495845597126704166246509874731511945478658863264241108482489270103462924059559630702075134854884163662333957700768793745844032061629727899594860340376495325773342435931077301331977149855950301248427399712357255969632319124655065133300926653992778405811493706719315539807529713711421003347388503388383160554639488265445828056958311264413038679912477216011745070618696812582625908404746820022487905616978416853832174366112015423560777462738893383393378220126251167793529615043609284504585877054477506200157565977020603598357226305731468837379763584392219263729862607810496515302517477414341143464200023482787019049868794794208649607066158173928900007692148004644426861395376768612822511751530257468138699341447240085208801332066154802780208013425950492278638671417459271923949621445402181653480553509411814714783198393385484727850766929984425092477465393787023086799333946458360738023197143954762556747596625695770870564971104507736629338384080256588918877560924859998162273200018867499269230060746788429963267305646489681340280698682431363214013488942247156518304368310220148671984320508495626079885711227416171340686855431198701614896449738584547986966796247462824610759551186249912398462574985361785184967592622946088254398713699294813648492726944412165320802799575699997783815683581450065366978300403520975975960330060268832629121512553082853051891556753857549566187259617297737794701323960743993031239690525728542290348730573158058010086391695983078505599914076448073128256324728334143925988874603569456734410282419695082013484888196985470344252873770330019803535786290710530988563591479436507676288141151616925253846768401371440654884096991720619805727331016706587259194734462978662597340840922930463690977143306301222782653248735906066334509973681848123064408838480024447291516020169004934711340841459737985754390002670672933446993039511468939537503319270823327394391759572695592255557703484687517412020386709329026814572834889651770688148745211633238717220563458956981744565073338958293436733343697665502106902125480044601601710142739063456321610463983170806169868785728150088867549762851680978828112959746019373277139863509297286599132845305149063351276354646580755268696291221798675485755935723006235627987752132740368738419976402144995206159706366520749352666032802837808704381086623555719345831010260477503394814161425351971498632038935628447311751947347953564502967712248283756724212975200269739409427803368407995105342186020509993153675690405775364241104890247397631573378256539320792805079769514396172553445620555132062819220292096682786901146345774954567284734683349389980360438908051297822114948208716269178160013908392282077013747160790393914712303229630819279109853357122313780574594607392652121566223266389866938939261936985915086205477715279357389848697127265399838962176222804114703556967757537773658264724210307705583547405435369137758523853674946275584900333832125446557432873469756342573844644069993222000103416917686993507228996706769940433935701494277313441142530457342859471977274672898081051844725349153709813462165103456325038568619346869353453570475145363083943493571242395793377693597370044477411979641584185495084325841958491142789945758232159747135006649327924586483824179786197962045459673047405591013901358737395547297703140798664433095097220752831571482482456872800232459005235964866103335174554226378955410674991953317399087335885484713927708669336332959827258268266403907162219985012146075390958785706465763388891264338991683455042584554471990531860228609922273368655032615509790531898024889275781286283728668570542107743745025664986578133201679653689743754041198014864589357913722350480120896685278759032910572699403506565274426214493220678766308205296232877608011373310805316470605216214214015985779735401438930311977855284145324035271408721665612836287119770397119937295216590365498812241422657308763793144269241806668952428166616462682446414228548659827991852813226873223575211809106614562876276247296995329197511058402277000880973071098339288245010008411662329988973386240956056028875063046690694562089865504413917805111704509321839977475979462943018843277013312354915945530009451293825435992137025149424471697978950055558552939063147001615247117001307670743358704940532412709334861657584471152852193639113761258781566282488694834056947875728076607412395704950244759808179637086628049813385948968555070882030812175552988213622717880354180933681672459247627526251147121770787041543178911923090523581868113447996599918623076023329890268008935873411270068515100573818932010637029669173142491482586294890062652326678033408456286058381375219627329868196739722136719511037749590423199772810771232494410259341750107558044997116738181599550617475494574919008683128773737199513588699339508678209889189255550474002765668069773859820517759762253516173696737811800798742238171211710013163804144415665284159032566085533760100165988034510308665943049366362622036753374007427036471329621734111455956072600478481314401544190965326074150890402550108521303709960992702918061194895121135155701712455193190542999103188145873231004994497619811415298682212934202993978167687691119925485439418394305355939941552743979097277288362570216617958923909542879792043255820116015274699369916844509242481463666622157182371111136272808077081370858211557847914290343312178693802849053008286062344449206952246812272970856715340763560867267886825742317062560933389926190497635949687619896046832396099736155131712100218490472278921757182635095237341452132532682864838849399155936108059964014022760186222493167903404997286821855193003315864097986634100639101082418896355706600826200572939720920508602594701640735977657006517505991756530744977087377357857966957353212001900018412977570319237582349385667684221227747735825802975473987132138568021810718928650622703033846169636530244198213968655088724476813742499565358932206884859313759374194174003619621379894588240643841706599836265968311318691166238667504731759756799105318487071564203326935681338162039779689722384360717284344264520890079557630728048434905728905717962606583177207716883459965964440237336485328928548386557587927386637744869153986709433946561491074422752432785591405559579107058989584944037617378686510714765530796265319292864683159118103174401603479703742784284898724909968959572508619951149664495823142942418514894429629009580243704165510361616701901317004776129111703912738836930267593676836190587554399557562324860474208664514323846506913061748223305421396628718503336122042499760102817510497981928792100658588546183194672094469357939403601847177844925816580406243732371654794993781070245783173517613746662558510878270121016894158348717070542373172850504944592723576854918832942990658743905443270112282429842578186237861090944620360974719480891431800616377502742881964782018654499405924888501125105408467231837867713203085642428276116080614571625638314936122894002544656419070804089397838587987679192455765428450677203463939680375784343227184610640951070955975152297369478659080205264565663811259597420152541068688326219518137482938961008014845290923909937899462856103070704734573746148407865733585255616743736416039908218889728513000023313414329899084397936972231996782448424936458548669174158812783456140948876756023036173795513315443801087080368591569754375286028691856104219736014353367341281900063990958954809991068205484673685907356441845570748832907122554302394975887884695063288096596492137922280176824809495529811857467366754786668359660213027971682679119546803588408030287777635495993938137803368246252828101641913408866033016362617049812942448992705267200932675181880774045247027142785625750908361573720459456709427858803852366571596713609347382926188390854852102616488569239110196249392392353948929363051324817542218567535736219269030582360154507647716050901445159949133729916312140481000380619964719919169263090293269339898460833853915344271412101167818785673264144721826550870883800860168903744845753864873882014718026653806647936296733345760572118018618260277725540105993600385272290093140218513919546143542846980280022982573231425501589169746424741550608855159719977699345518158806589744651939449149151982357881938424493314928885908096078433957400074010206785725925779023669486418421769646102988894550594229963238323492068093947721705694688211164401403892579488998827397725438328057897366481066610126309033045471060384188197045727181013194963138514143764550175673123832308621770557526016227001507658804944768258072058910589009163551478231113059494480291694407965530099605068074234742601360161190971022600797656101525790668167783353861867908332954383993673069690428249631404665654115188117139843400009792602837182618887605617972883402810319626851742014075438245644426543639095443493199186807430428195411601003263313248736814486122996955278928462724726108636341589207219890214190171260916999887901336396855867064987416274048195064863315172011592892866128160550208133706326018980344907901276111197292130394443261509913721794217497477162213619398961288037900459018421068582598976027381923034878180132609234865200688943613149740730192864476756330929589383336652564356459254646192424348077822088893906052019139225347402022887540629785229063242137712674615602021454594202827571109276723033224693281007304511750815465007914395363649078751437072986224200545532471362256410895750999865967006283968606833326274831862050944505174848471407926433957999450412641851117896685448778365013471677296943861011950917231790622003267077317395686426764438704056766583239118727094758297199866904582055226778843186376316909286179399485410517248205375754359435309978017829188420409664649593217739187536896123981666641357642049109354116764370815269393692007642240135924072494328111577242680984533708221638713200124995848192083996371130537578049764436266972630883836106490058283021889877287905507913700542430382163266756346183098908546876350470449881194809209273441561752528634082866500760753751315175888113171380124619614249763321590323200788803735291565516587077666861867162766298723437230497064584318965879735398728322402748669573973253572943878909442635449067308358819707601060242302291235823486300978189362402956118132487594597818898260701077853303638704449098239324063153828765004562516636023052058919484088288779824837914265583038802161253697801166520775933212104042854539906739840842786743125585353828731695944221084033986111205301653457456385522123782865801546778180979833306815028157095855224901581725972177542955756012740489309378777397772355526891005511489510094394849136075251804989068513975676145227599068030661443775931239193450489830582151203199059030612600906342675831113585276212680160088734053657256852875638105558343115713665554696547894838827783282645028941835500311704561900789293428203438171889450577609979735294735004342884386915819966371150995178908261445387649525648467362919386337290474066725290206984480998085710189993978660894435469520643700174613014006692229251023558643231738988962853293307254045023912608270961910923275300584330940280258888776677178827754215448519206709837879656222897120483284413860988971456949235953208734219085077863185406281729787081377931626031269807618263911646112072180461081208698679749825217966884300233979747485549960085874283354073977520338380937185166073146922273497003790511544851273843268647405377760455045895952630403400247374076413169087268958256804201173139508976744573275258990915450744638593089212787327452668544171260571605329378351975499958318169263549030303635148299258802527701758204774333127343005328748712503111444943920369208721757670779243756277132381875970137951632911505230794055709891990083287509712906838919611918722534671431683766720383688300963244032840577490233649389444627545735596628906023383412550033601139692483044972090572389268329612033573145813571573397641536985108113030851617470392505637414699633036577345019010789897410280006197374924249431610868706430328746725283573730559648311384184693710831294315558561095571857940143512082306213342775926541646181067106822829002379275904444966902718733510423225418348608142475820357784241483993674285030024126695402767350404434428815246394576390143380320343583787756336222812983287315185289801901077094855357821364971539059981752561709992989085445006174656528267904660116460478235542956681933749893386665586256371416328991957219799587730349890302545141830231175319407805181219918003796001241401685016551423289119726558724887311021573210321229513700581332276596411054915962842650487343618386960276095106293916591004634171954257163622817718235228425574626840628994023660064792957718769687004614903697884337909891588369299793448868683759922778387528991771099104568464726934380419007053399648110789081037122511197086317803962365709348829087565142497859461009051263440733807524217579658437941680595808159781402369746914016923050327642588946073036197580412130482519105541457761922100337110680494863242937183327833911445902016076404713782305699882352376541177343316361599101395161858633686948893591894555928546094340187196250043200489779111607363154865873756154335056626648148535148845244689513819176250047369837240302442070130650517198780674193392635118493845887493757690123620410100680316417114932481834275631474866566299217347660844146400241104686469950330220078935055482656653344752503670943476652931111756536937581650594315080881158806135714771205763776497662798735126818862886596113269935804792413247609817091599849498622602479129507921104316628368957980215953163394648887409360132995829163653058320390334468526444131186014134340615641517416349341538465350775737905328000731428484240650295557856912504263463919394969946818256465433173178714473477300260110748911933091730327617184749954414575356536929815625507965003015839436749340636348833299562458308368755170138117866513658582812186332613569221840543594001568275089287645917871969955166331359095620199033225517785708637775911378815719456360959394864780498863224603420777946383503266147908891913599695049011731648338705767290575824891250438962547467303934256171601241807168452092907159451226592028418802365728498114537045040063220852949661151239748357960212216557780408722177994675506888099084934368934557666848597551881466051460010287323404388063605526913300247493572994104665399028165543677871707335893045432603441146126739077033574568059245984126706285320030517041646873956208611216795930416290072939371644019301573903567861343740556582087685565374700019594312320353691676865135173050034827275276944474818788693377114445741417585535306338511879830328637913090618390666082042217663624208278881672065194181044692549714535107646437032674031766821915383658736190660586536714703321463039244334642655352477747125223256232483152350064422928726244125577985817723805263258799140499694717467098443101525015392219409874325762478245295592544484544924197074772543241464552195171575244833129763151033312844654994101882016332693312835877231409750353963098803004031625961475729642411196906020035819960909702342301886172470002828404930317567694486222021634026985811060250157824883104787667536455278103521137420489214059837703152587075404861266984184268918869649456836964272167545815131944753016831883448027804865218346205051065896458590209598879998059290661300202952502261385972053483651310844335614564009981663673890413579599371007897892927202964089178342676782490069667005504582075541973986622180911728609688471742863835654052629358113873538964665598298103072429903790045044903141083251483682065061952187198919867287501302934129804243695103279687456313587913287514520132849113745755280023057232432702963595391950354160726165362194796165860376388964957846499392903691918174145375764583605479132090240473719018068514369751101638856010833681678328402844711441651240514187113541151666111014582280992113707678293716125401569613076452161194354094835029189910160365006107587444183117556197900307532668271720576824544406183129104652897415615415163977785174782486759788049876041181552856918335098432461827789813485567390439978717082035987724523263244473025439414396317966136600360172249355216659112117978796799216003662369846585776838227081039906187333063782772153626071591192479333381653481824082643994408923636071010041607223747068204866470598226139325030319425344086067340901309407669805684265128393378273045595354863175191569470334220789756206851021926863258751587988279388488834770441684214267912713326696945450337903227667701985949543425299758012317367061765930811092112017345714992521486350885657230186674322873996903687509338850349041312978712925180596901175876653169818717127526478753682864818036000624141236410796120983399294762715746535543207557275921715250414106511052769188642744355965376887741393889455864019527198638688389618517361666801612897735453701610083192227376996486124615521616911867267773411919176037066149314210829206840014554158069595749189531114535778245828218267972929030966287750121620744532593206493675488595319635083982524993469043563546139345974537628852061320192423436652963091987356741377419919647405050955130899897171282768441960477035065579860567027405871366422250551785299493672312164871576454318610380997991060945810883006486507131778071097299571072671767608804229560812183886080567554602409463830946504409803360356896534289917535705615890324237414913610163722399765898463220127205278252743259988814183959679925013458627812611564728269227713602142411880663445318143101455205739102028842117158950381655280331699107592450238016404600224937646039171642514302508997967567237785252488096037654128230678603985740265363662525927373428100101995605653364669992234469637864765387651266057190262694357706334428942277276953850934441412252159786625658189370873885595558316818916104564537077738433343470001126124078706220775205196748753308355924275108042151487288780420109385243863177088412412846814299703820474607703664092634744067210846960696560230044676479171998029001279360634252987527096985397698205103766822171246802919736887448389312780017902225614101406868890936280230697440847055791371894495191328994526243632480799683314046350659837934633952261146137114168138741777131467030871268685908793885625557715370405130265555868951536981647800983384494576656088935799834799603412662668235186927599306192540249727254062342820238030967973180746003618893389167184546185171518088863245920874865087056828688077360051538969785463219187018263671715643523983115985901824410309411641079016463135547851619580303131072335035964842596007450627443935974705389298517385367942069632761654937472366108199071314509588075369274810775896372087694713915866961607871235365926386995351728714215571341377632791218660627417174062500413959076131056220396126001072223634021988157473379738391209548371150054700516708159731446495236518377314122259566884901163993301512091557375809931122405329788104348689984728718865381781250226389870928930472281671819545098724837200527248745945426728117531270111107623766479776034900351851137112090383588633297387488401537019720578525033105813631273610237407700402132070562536635755439216752921764992824706521006675639545331290740652582701056590258415314543228481445053181620919018132617150867207949031223633740844393968782190782174418908445183820995743494031565173057455910611828445198759988081878283566679721069951366563757593757951238717185083104835319522058671177724148050836277212297536159984536627523298859357699893276003701135716612400528773281767612809943852880299962909311161819169022295536906336975683167024586467564529111424653399683940420841709613079523814176333914320989039525863319435337617528530261798568729433015524590496612319109514141079497659239270410965889501415264148862694269414081362349884296134343480556560532328581164780138119136817794519643791548624472438337131330560332693255333016729787623409936463968921020824665808264577366842731921571744425032513757623452201537908450633518729359951691552854631713829843724306753656063368149996577764465181265968029347484370038949014586246009365727445855580136675590262032136280405870315868148071806183304475405986645528835810841013579044172386755239025735870404400058509734200734580764474816478858390076160920866965081624820342158949275018498107596842227723274674767291805736397349453482151225170138919585140810125528263326875068214821897401634950355001929815832124643101216944960245783262974766591809636991068408461743408462510100534367666190545066317441663152047708498337595297828658630721223630406457743066152635918165252357983606813050476147704180706758182053622983396117838945196684752550920201649224004200435225645483347854346111419354564569277031346243620295112395752457957380222880099723649525034921600508279934858510178121099528590652823956805291996676706720517543747003184247887668895469229111562644074125776162210643179750078141191229650224278706955338921944637766262655545400498191152511115699423334673273136712915213545351891988470488821861953410279916478829371981937980884034938432945713920035763151332619725511132167968146619397001399071763264319819270023291583939010631056969355171876449416573612670759039953384835283830246880854056300383047635389879069840895011684426433197290905802024088051122333414224024249231109254381770897450426408315436656662302701796098891848473618246148109157029475263147140825216228957865019146117392485362013861558101205183980666170964339669468351298850585348470626221405157794067446878588776067819574342449487120402829394242422033012863760178638141129559116825014546207734839901790668398597646124293206008323513151393290149113890018554657596865454635295314461626619441347660482571637080397057410544494053958511441558064595590508029918145749241063395650862849005246509242485621323238286695280980857936624177818465134299659176959459099644627336799942337153697211301664337431217206313482946313947231475613523128219361925535288949644497072599000760495872067280481937678364748385687528520184087643053596888246105250895962937203474177779750590807910767897584384976381125452313413596520950965595843543277441471617713926492467632542116731751518900922641758961286346152170048498230659214164265332923191160482434014721080513089173843540695395152153633551626363660884175615151778629641777217280824720872224886407485950659621515262406041701907294376106463095765268810327220892718346457908938947214399772831446535157234113566363262502159701271213812386017577314985204410380870255028085997329015328215621929814560437948961259022047908002789974033205058315952730980080143811453397148275292517545201339015601008590757587763479881299929602595236919520168435214541229000496014883106658851506169437330063876484506882535762708251184733468567498128910955234548761481455069765679647536764984238804291443145306726351793919416252368429909910119343268503313362124212735105459430062424559263234249018101214031207800436305875241050121847838346928284415726306911972811063117090328763665967208674521758150348420600939058338511652304851333730255882319860942922528382487377175234735731056111983896834864729558596531537234646083004801707220843746205097846927570342532435146852070987286627445708862075708902055955752767633499035542269667531206116159336296230409281463538470457070052364027902704158562858424538401670697085180379673557299419655038682080141182007183882886550107246528458536153932729766259894196013787784390626021639695576557376452939674552929766885148722939489735563739743274971098839557055053121717107421643983243971536684428976319781471971912262050505666588532580155877993955476647753648670202581702607767797925634968916063962709541683325248394445307511824719245610403354157671626531839436545475026443239713855186792764667573500511071395140983111749301634947201888177576150034814045237561339360469626413446283129084077480368503609483705785849511313203075422125911112360009852601469769027605883851536276643418407730318337422368581115134662175485810656009292562741377813122636229095845921871577434604895089227590510954329277911271146116352092611166927455519738628845021212223567936572822819758001821596498743842726113428314454853021452744591593090499861436240168322098004886806853278094660865512368426428269852729597290264045382068043423875707796048616277947184126184811173064028077497721344704069934270394435430865200767660575962242934854203011993780622194347869471473486083830824304875144091470328824852085976719854475322403959371870761193793048729140915891926658835575281923670165722204340925366760750867573261691892340449091945052970023097651982971393977052920977515736391558135272069268132168936960443596379795966397923339427171714273977155926988237393454664614861082069627315007380724358958083841870716507750001470565688669816592577834894510397043224337865343188766533593103201745900255476296920601474297200958220128826513022726860994887015623345117598641511807717485945068639929538782026058705062610476631169757948646359160049682026060318227600260956733166250289090782308791334118499479979388668488525427528748263350329819642202691693926651981409199956518765162890850287665178817204403125322567782344090953417613231024904401809208842104957549932454802243781145523896075498839812873692445184178300397085927250037346889592299137560767614038082366446265837212040372811581702358869357656964316138009258591200930634814715210082725223370969331738010617593324755136935080794446371282800462188715980769522947110931726950454301027368292050683565948291660148802690554367420162665203383630045878680886622007383897046009141756140863805299491743091466205240645337773156379752302703030708452374089853645093119403419292979576266637880161897421650897781040026276100639780478095904494440900308765076782199037387110882303869105098193822253435416351831755909297342534215066125858099999384061421976675930804853728495953530411198168036145138257255338061909261619212877964014111612855810864639344022782944386240363378629805833594240732126328984196975574029681739002400243923408704016866204888598035011588802031972204611619322576059271623482612134483773099515249448778267259317137668591464098794734417105994726521336686779133778211323213577475145291855681413436877822238793779701727246550666526457287778144528417185414014378338953249027477689617319148404180670061396838518961841042847325432326357402138675197269390630054020817392582942599528045897387431888211643564701691886176829286588107083734935193037643999918689149947963254510301344814130903986497886635789114914458594531585629763401290745003607482706196045409227688720088297045817726614279825964527862643533739706316311056523437230156132947881847120689899919486033887076624018813071323161141266354316519452149758627022747403032089833697974843356810452004038015461151895810782338000190066379345328687078904347515272079801388334494201191228062481156559152457049687832964591869722978554977826322512474376833509331559045985595737319418748483525217629653546446966062386700479683197016978059333488126616218026364713067552048491410682482390496052910980991762205816017016649479040473297569858534366954833891723604832453880954082359757630529284244286205949105802754987052893008635170254260446802184991826909226908051283546203555586722252579395769791992352492820653320603794358433763472951636876319645796154208083044019104683944261175325160472372987999846595263991680495898364346847245214356622973793666792490260690251679934381348577197262277493264860170045576962314524403365489588102503753944635378875207891213168926643914794155645578916029315368655090821504881714447184691743295248759176322593367415501076944303938276381736045651300012406186442924432097523879056045824739825445530351744217604602677900467378597743395734193636014318223920685969916118957810944490786275531182654749271298470097622177201642139282528279770960031354152442962824185494367931941461245664578563692577563974301703567970512600428974944377126807474561078761085134956711757577414430576292243943436622879383323800433309312197002376363529701721283495749401951561944485041694312920575689029555371111003904590024623346266909155542062475797947133735769134491682445241631681453820556407142981146221022382610192556833639800492655008882764038319323244170789170914008650973379794391992770443266777597324887853392679121676025963911413363189245160504448310238066001254615661486664729984668759547479477187138965922230127457045313857633718410687578495640907603713909026032013312958501443957213443563672294826798875737495371608842733585058345160968060955315032960414413025453267035879224510533352541917648949776678745559093630713186062928699388688651553499881918667242618730607271807573505895287373359704888522485075604984247287565687452198144164588007840942972593852697719879792434252213988163242884146905721889056973547068051472699381752862752697902145490011457041937365534505060548165334006623859934060255670225276015388507354140234650748499228645288568231698140986648078405038880208576243836996518367450865110837159150269154824918752407307343266054804403775171587447381110074801157652507667948062763787547131731636458209251239404940405072589299978778774277393718483425220482053232059915540617536708580145453534253369928701778464695901994037080690685623116798816124880621003712286773853256447312162282527847679846447873547038915508899028074269335335758491671460910971289337258467716738045281612416555802897710900281899750253532560963081991129618100200125625467283536893786054221169937932203500479364244762361473421594227336778137733356504123268070798452342207489446669299381699345375386447015995930471154268828474734351687944016541174871466628454295441876517814231601859666704674276153162518857113341250151016287126421056365757980222031966257157457104468627937498969030698543822063314632730700335533601206684647494489054322757615972552030290756326637693836976036942899244916865269976845178556277385977621919137100010102736955127117824417763567079120614192234377295873554117634855375885233872168235842904122566060409183576483954972208433350440931487923963177159698991986923093494280103616169694314645601547173256746286057040077022773055172003632767845680321496262948792697089144678090561021927784398754261498299839189850426892095844139586175159601799372109954287866097591182424312351762254889006473897954018800987430401687795328839356274485492438245577312826141382065373556178116134385347785646265640423483561445912419705755745580737345931468105018054936777048030756955873412325984655329059968150798311443322874342179209700461072018304868186791174520019958457293294006453152390657581976222294536609431293908689850991414124462865772101355794592570293935831503467917023205215993551629716818167926428995673443459211244943127409498119843342867607037047207686821873098335789203186307589001614520368972611311885534581892631516793249626195601662435089907408098591016700915610805115404900317835365381549169485104297497683062621398108068696047459362774336120177873139126102030952266951360427458927367172919041509719861443227606394719978460837468686457116497110646244238257129582767071599580810966063269932939442579733832556652067663902073063087886603105975589909207077387360688068952178433233258783466430077394290460877075923636976239224309033613512961454079051401979694739530979243041025752053436276899179358728086452459779760672002431704916887945811849331058476775858793800236000020098155930838024481850337669065417722946651260894977084919242324541665900134976975434113269041325166979070230988834763165579501534989082750802348868593445981298740027538020870893688085954799953742953941217578909760559465948672842182614836472328502425329459174294155074275507137391247555632416950030134549532482502800240960553195864399842167142317728970800308373430935307130977900962145616591434731765967211067195983843435705221823321948733217238164270387719140251368627263672845999134413588070237133029027502477258522768820654871773270472613783567284435495586363224073850485453997645977318463153295739460627619383761773333438471752244785311476547377122822161232188155130122136951775728745776240755830831358711641187731036461924878273760911503229883020545578286046646952720476542074982589493192185504125907015111171990837549931309019756531673966153999667633093756420470130117323688789267931671996696101823364888850842073973895897274208160956436753057556997088175846050090473829448905340377731505125154759789978503358445796621935006519251452108506747346162432268348199095231682428841307966217618837142957915866876264604690796888288569918994991948929864902313118886560167847440520226618515738563796576157404686110400777950395458153677103535883516198167003028509052914605880585865860961760606360938967018615387159934090816205953385572903451539153297369090604991726725183204257746286160491190417563236475871504081720054594241113046667815546864652754488962875646177755844685251963042550886544405940817740907887058598885610657271249805375685409221113987924074585351516625267982155466653112497858432864811856292710987719814340090216132972192042063900464305582673172544084611684172169605289446720558627855952622249566691824669301692914710146317861476335512593773319568468156577130276082754197505945239505775517225165248032006445319200577233972483668754964563901262586793190537041381690142438292098188265035471761698299219193012671384682242600184483596084114477787154539425915847779221244051879438569002333080591535642444663326761554526162048994279138279667938310539152406324041873042029698602741711707784337614346819358660400685539790038849339155314143883506187843549621412258272956734964332573322131418408424147459714478850098447182391896183063903548992817946684989526327915147572443605673497667046113645775148021817453067274247766215084094453767316543429432885892912663180697949410438551605725315939155756914095402717109390362883705511448708333869418150989045960982501261588411963714449838715510449153808421102125681784284176360883752057356815418176484821549580228088831908738474392678655841218225468362259858829431279352013176429309930595010461891425888331062990270856744607675449005795622339316598407426432491454976983929124630988850204299713593907357814852427857117842638472701339903430929170820660410367274517350185282752355777115788778248154115478520081265744018220068111204987273645333146418715559625960806574170754627410958470404156999593087207845912457390943679047594309778940893350867442365191665583628064396183266397303038625624217610646203953757294054976355201178101255459002098699997343288806404689304735777698859865941685063781446129748043345776030687538931855180826265488686057750944014717522125316866329021988268574123322762684256753249848175075417638205901855225457474906095457952278836888672981464571112364797698944407593580922830311495609836385855614506611702061144880998544956757303946652016651608486940268372521014831702519301012010745217671130986867707500859724485344427307484761308375627151970590502416601611322327902514561671351654945549498585071527044238422285646772575503610034639497903708031297783882757097286286011318556677062803527576192830236275221074091120849538842344621503350778682635240372123357543673195769349182439068156378339964483407108547189274429458046541889410076422010895511969182212616525355830070079437455786882984279472170359448691132362222732621354303383980103105354453643415851489508045310736810496166499033278307408182538063023081064990017836924861773848160842324000239363881245983120292871432870287693422050093100215527621375139109307512557036244260187383037367377641222271432396633928036736081646847550661109386237296139926127625932845305376898945919777783587129572517027335854181733109903940673360295561712421901791634883841511735873617522690483580892222001128765475478853722370026813628107308855273025943211692005384736863110591867057909246460159679128587489138478618207847748539445369768473896641082408546146468842429378891059997889442427907308236090165698390857740169182508766361921286387988481387050775370331215400843371426295309484964720227707318254129744153566265026920628072040211118274056571817277568512763772005501547971078229213621930663281813332031536132426233575315854271420034289725182275167319443757526075495583412734256830097810385070087167169714099912730679960632760468447062715062659948089977416202360419432703843649808911512373968745417991623779229760350942621267031349391490895693768867886880182045896598011206239160922796556983868445383852524222962213904752788502529699003450204020067293036820132776445497843249991116634860912688831055379749812509138725705145972228804238227406910071325522684505510988931494549152775184043336050292695244464894275098964491821196683429629093351190114342921519893615844038126174615509123427616436339326579289647753133792779825494569249646967379696631358591895405602673047392918570429817767287391814787749410424804305483312718231300013714864677718044518042751999199836651619080277673232998535043301901048338742716573257127667825303357907915871286367134489311754400791152563442514824688306423318196513194648541884700500370617323392847282985644422198518222852026287681180623098954391112203773048435784324400175451752307359995301386204380477279491980653261291975390234216372461618295877221184928761722546218468698189571571457163159972342707344334373492891715775364976865547774581251310889919822082671853114428219313248180429176555709054003706763378262280276675433180728355647579488077075349597951108181282849972714736271201807074543960890742243397252745374973700750965910790424392480063992269417382877097489281603138792258325427811070812154098938189315680952229303295266428104260561313851434014775410135963292627645854190980465803978625725906422908764494569929306194733936970523953534514764954771018690208158956445280287252655055256362438644069224639882566837441443528274144356360690744121627608787119939580658546134920114056457789377262331322393163045997511676363986104664901136881887893391936289953105352246585984482082825483082577049735127104955029855025948855252534812266837857946341856037897748700136625097482393332055036861779261400322284050817907886131242919027188425117218643775035690151378671515957205599308423925331340303677831629205680171989265784183974630378845950907597106076508791241152136699063028888735799965818862895284133231705773438928190637033373943969497569555827204961624807194438751015627659003411190798405055375278306267040103497545777817744219005088746465563251711593344090426263829166894740320850335485887738927002496035931062584866984472589310064530662521197952092860993645435956568168497608984022914982611759948582212946891307596747774657797825538630364211022289393969397894974742742723626127021545358723909908197669036767328419341121197127355753633508000141936728195961482128549419218048128689935417990602275110518362401886415338632197303994855060485219597738729742274375833819332213167344193855668927076237258313743554942485491182173267499007217496700413149525759415972401895594283158529113419021672077931298436858786444246021333681991786238442726984391844726202717759812129630400774992500206653227091686631207192487655200811030386937680725230688972676949991266324797996408555920821021210376295616837838329958519083505581773029181249692340241868506887941026355152324657701459395887477482831626113965838373404489981891335532226858165721963326907865287988438049362739532942992205764253925600210330607417532442113411017921471714942649757482805000517464644769463378261732434864924676512475776167910168788461914572903258514829593230505239003298653434421202670926655572776911638212314582668536823090668534279497499260323549602306848596889973556893029588051530209306063878921612417469838812828638275540324106102814877342489956080539022642315182782076551171416571931993923834973353130000178368823716680029486241763869861274127989067494779025986057955530523830367264474912598653540862390925630979000274927054550206408089677748865699762561577554222056552943821559755991637202537335384614285153710619211458515691231051357870826350006180020519477919008220890465466092583024024294701000364362943345419394879288152878979102159328507200531980730154949211805378796442314984480075691695574951002224060108674921053103103635747000545464456904808521851370419176585401876295832468416291482674335241118532676766425474121246988009703990578438251743985523539905526111773396368529874545423165495157030921706540592214713241648967255435232205062394945409609639347156410037815775958568598860240196989135404297034604642152982486961723387595396131804302430476412848293324269839467959595177976078194328456112396328744277673681232625739171761989404229223209181846740452898160071689019369638240276688042592110457091906957502029766714547972538812569311829081007618767369662441553529974588486874498554224610693232634755984530251619535030159594305623184178414182647489125672717868460541567097381053216400031118469896661715547712957360082332951541561344255511993393149714187823361875958688681093888036197415324997904069727622706231503973851536205199260511445901498276954221854442432011431538672651094256886111841761311261457664195723925511009747757621625462099727297704303692285968640053223837089126949275891849542877137133100772952449812343340598779092510213077355266024192206586177271111463717740323811900483471106884200521624511127422553589549999619918546660590607892440796170854524073641835013779838670944864245166576954771562081306846289179906219443348255775001648445715073759794456393463744832334085442740985149828652384820949565639697212420248825202957434998120137522216124439430942817081380200449270948474717397268920319453341250817397806297473545015658891313540071946587142646702215757553722597360259953505275413553619438400112019929624186482767570686652131703292372062424875642524457889325290343309227695546436559277506195526725458293679347738145895260720653450395692848239875073661104085596604545596927125254977262939129330114700144649336101329519821381202803574757664310781299743405613733021799143203130780676793920660091951801952876385005050364197584267830674134127689807167016004348300328705050071614689109975487522356714918920105468343390583098389229014400275411162618199688136786883689307264803042922012720767450134529560701833196199357542486016335627948680342517376638189589636652374328654920846467649910439386602058722009159158841242581566398836768951743385530149846430562396161585669877947005891662421747032737836371539283120292728239242796137240174332622681121817332295253434447543340161274988402277388541167404804603543144491401422770983299765072559366608487845245522248274963740725865378976634789107315897673638244570198706797044097850346171032807277947782688196653421686705111628811054634966549493948517062340432441907400220476965249069022435775162592300924847967076862541020887974555517213168277798738649179728349875103542054934277037282981516414655559028487340214372599932410222135747964943507122109688864162457085826222064177070878458601666540556216291283573777218555174222887127191919858313662756794509820460505503569656146837902633731575160576819171157993327517909156375806234579465417760016690498024147661309801291519523240908171939278283649201685974327484363983844365815825399994279355242482112358270807719305662528700693880253207123686962932892416799461659153029409133541819204398026897654875886580074737622240547738037950352282763149036208204561308419649595755903518610973303038450671933635828591265361711626792414108975797249125519032911001125562597088836891129509909100446510623409878470381286134932058521466819150837612102462829567265805700770329732379475164793026796980520116009040119868864361970819779544967909029622273210529828046617832739854562065402084575770441097679526695656163951053174280516762978297527595607942639222972688010006059410035262790559953116820384193301750328785645835299337663281200675997813310984144190332828055120902963858487707357305185534021294563137608442906918154512054387079918041470517123119705305282884833838465597364264576798791917952585397286868266174608422210441317039071947730220719516582244457886031133986484809095132685793118206103610942897492985625052022915122867216831186339248770951726718613596185958096784400190549676238374980997677741275297555228704013639865080821964073284675200043185371146623467971642260314545439677119921791757745409255101709390612064822664638978346487461763702762331334216090386276199875630245704605044066440206476516545653183556555187435801900448387077071885780326220991071969046877632070707736938134164611887314183366057626609217676768225833745129170029524501781059618372473335720171455511337046561009728841292779648728585310551164312028105130497775569988480305036544955824624127931127268878043016111666524698578990531291143052532592998881125922031193711019299711306136195762872013176442969478016218378746814834459963074889940368292159878264460421126731267410384715251412751257484657970745738849720301725015990726121950431190147098103382319915505916730272168396763881413260489543538790836801884649059917130999620368831226257198386712044227484231570566686832771498247611104257276007473704046737412794936686720185537307654536237551911958864424725593764886019836247775187278879948977698972628540553331088463111839160711504392518176701604379039382992110142198003752979792434912127811318644729311404769164904822363462203356714968325473025919676277817444256796514164768178294180027775205793952879820930219841216394664824238640143124521876605084568804838816269902764035206185309256664145895768165589281804717928957530882017406379833406105331496851983259773303784409405822136491443863095691052375710630152137534021351661342267410877739669729092278965655387731662021385286673426248610949662198262907944357035022084525078392361437784581012929228954730111781352279619137739389359733756560760305821119567311415988093275293002602778486818074870026116989558125755884908178840184796793053462299171286885282334337156442630041725699365915545191049335908731169473804302493933113166912616029707265596023252792911109205791907510756423632947244165816261403883554512025999492814144986354484893766556128095465746073278058025482997414942626637264805748382210511982072807092500364042638580988505093203048337841274910365014587032580478816097754968471665027440174689611393190729280942560917452589736399431119830451742013330160092896034014871237053969089355098734904719888075326109371714554459165675098213387721456271979163100000033625299395408521608737814157020661054266983579687625281215725123657705285911950240418570742469509219722225883941461495327302738757373940906871974125547715066129457802725769817694469333202284933636318126919255353170959499166629944569683496522126510909148727599709863639878363810756295621047619869145476232093379710122923510072690256425272779541662524907174659291060428942834859087703293802593923493359084649101175153096142722910933675319902513830097832003465545811782846742626730735408661454299910271186465406076754143433731373530350098274063436981534605960804056408905073081309205723936321804101866466109206786958794046430321001189151864899778920199824042008681589412304181751199959923663692088558148699065136625158486805862272482060672663143618785447641765766387689386717767864292008939223524675558814222093455059391356481124724682788406600579612350478458773887822633902100105362444269282494074602571610957118894519859389774270793302943708965506621923890741493220381257477790537323115324554624053554224015646382057613529963519876713882358103917585355622086950502640351898123947044770149967910310186945924963426730584122233870030136689048260581082619454250933505995426414858478794931551695957737950790500788293183484032648793930037827977941272513216328666619770719567685257543617823330100007541881998821328504510243120357063219914535964283139860755455912970236776774585047123990490289121892411932026209569454011673068797835243128698855446050586202350330397263268333436098116056204795991423722532475562488148341971377368009412922652488536538177376528372376058579432104963116586144786278493796026785493758033385851521329149762691101962654163955916423081194269234304605654411621654826800272639374939478317220713447084521702876759904453841620326279675785732150814397084903001115216521881805028559226244507638496108252141411205176440135976146851465714375858574637362689050938136162091648356444887521809382996470870890360754085115043590802564864717169477155190843630458863135971064414542882556778072243299178866877666877637816939211282113615043727369334047356060099940261683449091746205936122217264558547143885607239061769951820111672982569353947468097730104842636580997500514014687406383811165375959566016143596499653060662728880301560922192053721385912440560583084513216716038086776296532684166749846348254025936142004087675336434611628920416543962660947867217625142033517566532352205018466825322831932777143331340001598385467934847908972786775550928471206609483168655369020586622627726249932682565905874413845610311929555976264346884541465279264950330453350129497965899953334738711202555841815277054341878583641236097040771715400252849115417923387824850239351359508503736479364604473184845579557954026953508667109036948581405739889714231784549463261799583275418472735874722134582814042834998235623157964898616261209597176403416847447003920577400649018839731511659567603546778995216444979738686325422831147366438658698172604136339163998560372755582218722304604725298189012225766940125031837275081413067206387390340747554652173581375446124808643238256270576998719777400867553648490979956117299593513446828681028691024221529471987875071832585676409509538408008276647789298752730579823160832840307754740941529603652455281992594857791045932790889447992186668858208980174579092653007327016896643328590545949480425247566562723150017175232589092103516922864552557882938060246703914542951103378203423707602501817444006235373325866719550896433801458896459359896837448040345761211602539199909957776377560396093642653405167087522826947487525963253920330698979197649500707069801347331503041479052780717428155102950194283036863230032622140045838624723129350469095063783773008377350008833349373961819351624778397955440139613952084577699720814459686258049101344425138739145587407412834307224049092493673743333369622058439598232228334323625141390840015805093894780315358621675841823273231975381365861559852332676121458556010261312626412428188057144545809514225524172353354731643620248414327432023431333241081035428436291986447012674682063758449620692422497550006853647361153638338929522717778662758586206387149947039361889848074559308734244579324948619606261087967606918309679488350859795939840061427966838298886090651907233817794546104855801436920500362132677927567205799217621327634846715896432110422415486535178813056244256882529407662465901045394763598369668781787310722311720419249968002962430829602825414868612679194151612198203480884001367797721228272614508704443706992158539465313328805775469660270662960295503938533323575179570351047684156218266207835540441504012939152360344027497227487197309326482652582865265370616160867998863921362405384325559356029941243760919834645437292055083026499492461600808085866494250174080522993554994614225767659291609120993712952349800342616816096921873940582677871904421053543794587664159178747839850079999249757426827908590862776327217316219850492024199867883261114681014813306678369526028912194759116293246071020452737190527636883639869125439719036808455198191585703920241666021623736431123100630802512426078775371347695604480958718983433545222460016056747385804892579041643554099222726070165136363371432108470290951618567320475248869342951767020375916043722761923382677114021905707160894015492456061203089703207238993321601993433700171079043106914732035307270723082042833904810976116727230998680022505869256372084462616806555345653839765304855588240719127285441539436246654124038699265169424325915791871801134997633604292695333866519075575500686923156087867637530264450342750558347388575857458167736097645865002481630940576043520654971602103500058467871229810897740126111476453743170805399909658197686457803981553463744754185729183319621304425278324362267621462234583723509955458909392510361514067499384471486999629055078409470589804820306906522280223499634011584399227238982209474219962917823967520897847554664790607342481291959978519153858705931714645332260597329594879447009290423117613729685790863152467516046847132847612294936709347381063485462911656501802942172588015551876777254297246338895814877910238511233940631713506039000875588210057623261440463483054593937195667279471832130712271318823295873037944562657090774697120750792537540401588192333506347989788582192658819161087824593500283733837025297870779866495358218895420660514753222419749725756963173446741508242128975196638391269516879619629187888022679304749568895751931479243400242311606872060258351276960511018282395745355954393925872073377848502704104007697407996387590810672990739323364100370730280845332892421212479142404640271016549272244625495011938198929596291652433264163154155558650125278482515738109915117099133937255089779831524770205834986604845010430122643968376358279954016972981631766954543590436077258394534565323289020035624424601485099820028138334125538835138474187508674201530015557028445983343832983680551607479339357797470196990544926648540065841211834957578788833170369973608760091657536840514283734023892305793195212320799228632347293201723202349880247275313751967275945924635260623245832280925157623630601755985730759713887371418208558323539973940636593258084260466207090581623534775698520100039640157694340375822845206890655107694927307201550486178128041171638323975314033244290628661835741672752766498395170204615932191506052779487977182070084898778171931818920415499175676168204349527867267390170531956544078130304532932940075019832088316579185521314207070647358309388096798075556613130441717561277809337884777340734255178061960504689600204793878352290123810282628638908260457808120649960714612278319594556907701209764285442516802733308536682073914927826066108241035426071508650714373376868701812073578354071742167420776667351422002146195356470822202324359618461921719971329629866810607462462695708373584462819968384960138718825640581821297445272360691411746803684960835855008361791459194096838076100147836829164359371797806430324384808295597664996307319364546415952149610130996359065294633967847963743640306540766054807674845790214926917358717863597977823736590268685309030141547530016372613755835930941012074395034811703807388845255320612803046422553243950373279951232411697216409896889563649703951183032838593354833808306486758968552457076855575858892962692711907767902900862454832574473824098291060988242916403027484161968787580703668572879595934540019712597606497914480077039828720393591830002290921713215870586624141164363772698008458657601750360559712808014472188039128974259388363799769303942037337057899145782145930814676159582242730287587255129246533655451735026262407561590615331907446971585460005542487303230217082170038846431956828633197417130361926237851822875138051500450835978405806300179886817301626324333718150752853019450602955020747853845571830402790127158425914304992916233901582371595496897032223035216140315925334248947182431722627698935365393588632535230361994176969518221007951431582647588275330927050670063765407062278315162597782767339376639914720452196316689212246016800775025144452068115701112335407419122888527924706406526926150868539705575113164027818672195405643757359299082495625702952020377317047161995033771598297838281999938737738083148632957937048250492263155105735224520863806947889940427970057091383197677589408802133646661461202852607784302783166877844676699165863770692338612110931008682228805200838161036428622349312366995254135213758141982855838440199018138826659534796629531769070442510549849017696362788868064702597096989528710582636071839551269286373611260286154766716145284198023039095783610128046944001145904747641386763029695559942852265950586606106082152267431093593538873895683056127494011891102255455269495175076476852936502570809411843834043669954595071457997649163987653969827227223673552509851831473594284438888718559853848708365123894386258053073329747362046541516160438257491914550547809143014447266812575996019456504784012390065373893967775437755464712315106015603613769152631677520897247239667674784289437580862092511542006526048519684532623752307578856379944435346618058479867271552398904832068810050888085415786555207024045852869216013872525529250637733394651080383781017496551460552426679823465965431006186038311064181376956430973522985584800519106442915365303664197201089180281260852173100209102556759890491239550571924738251954846754281609628753488143715826004942101508118378056015831402470372534424372254158320814061276971517809997782606394280904623518713673617933114290784680313384721121272250240684082294599712806082433348661942657749873981054837424898628861045415811184704138624709165620859865512853934989968918108108759021038819820074567343232483648273992635937326261622620734185528074553842531606170065436350869187703558149789590952516058941406009144702639808006215153307801053920750104583907247657972944557935960684348666200972578697083410146637913301743586336953984195209911301513457401415345320792608554497678256034495173927083427373976790062381235027861758370443954217187505463473248459312816802999858179163426957503869302172647079966987843532198861674682775582846911470864597137864850212769494686080493471534463550032200064251582074981777243295538435272753222065089323755266910563375840469714291616083809615465199923034728400557581298464386034775751396410140035525962469229122814829893266457255690889244679030348865157892286283593453502643564185955883294997902891266883783017133045506082813260478899234868104370338987380185077213506260034254206221288810556197860637209340582053266854152423196600477215036298006754866783304955628178842014095432758172194700635003259761235630961261116104512622013831829644510409417997410532583897226758783359664031966698435487782104601818127224814387578559382027009107070153894533538832997233413869017534292186683323419112873388540578101866846657824681984647757678338121358974249124317359135771253531503770149348422028107057648087003190215327714264501349234014218334353798871013422619167214583155749805131189828877468477643096762167265117684988778920786472195899310280612927763369273769862447789222657341169146926745535443732892272132358640511615371989895318279697318231011315069480965074923461571022421565003474765762667557912302308065228907930420358447612775716051831150544431620923503848562056136287456521555805005370575877667829632093413032732246444132281687647075437977159051403641583714177999284364312600121676207002860672701896188690920537738374896608505498431997791736486647748368826933375508086031659689074942715958545096293602024035260826208808656580943520506330489762157745019703053634041654999667037098052825204753594413880909859869950367899596896637128705929850438826022136072823783070732476101326222550356511616061812577966086931780206039139645904594535836638238894442864309406978835087880310088383986671793581966994864986136896675271172981035728042997404996691774626488892535126897937572835422287095164038813866546676425558578574504364200159171260434434902293707760130223552491880081566032842637809170222842207529927300650023379241881634823645449563666266097624724201602881779179420714119959558968832502854817444947927338100458836670697063215716783653774811743465071980307146498656330682179750757908336613132909298917409098534711987765306117976149407870672495699841122481746229289518611195940276130819040631634907121836553829605424739554976790452080097355995314069522775668502140923399385473976605555223119662983330337133727465428356414740705017016215729559563123598076407564162386280383993346829821178089715566694108299665670870156624841653183413684878733449451571670716995524193275315471322150849389235516395234553154766977628712348503699467617990327845818701685894030514265739418913396588141713880007584144490643231381668622647440536837550942014513858123847490244703468982527580391726743985900263388106954776790524352101623948088637814214028408906642867246142909752054024050677457359117021628591126280324505531651578566984149648939673168291835811612709883138212952755001131929981966258127965945857994790061672934801716438811630897568425870334601564629168665269264104926543712068661691683409447862499814160898928287543615185997497710995538413162299007815537398162669591911417656532948120082042907045510192688741405257538775431550007592787677358255305953517646086708680761365842642387355858863744857056757657616172545070138648451003263803390948301211004908225580056773743045397381774195355358257032592931699018394997040471567234302371758043353687248518972809238864334780709866691356995707610319473493813405041857971961208618388381144132176070414342272967906463929005960386547198064629319903683770350092125740579686134166462790343494509775318353677466999104164294907285046542096222222936071422037480924147892507469296240577201394452399090561600174281100592879359876476559704136312386720173862803901153019704673643459636247986589327509538226643160909327052501017359073497196104381478096414885288916620944118595215764864527546320805065353834569220472933630693463057681479736485872906532765489929278577495312222378066401392389390053227095603765071519948285074222515919425086467208840700357004317244515205874635497220947756577556455547978078645304491725116393021176926471098004124790827207076569148385794565002876976437823518128169775682083170900737651829136711115226229799131864913647529929970485604057194943034684801713715362755738279560963595367049729727406372292169978141455181308872896748753975270813473808279044031612056811300403500673810239621419818080250122319526479726417603826890106407689990544268339383977849178318899604333397560165310036459763022700782045772704065596796371240274395669985233503378432986556526755080787743387649216881076505577632408631382764452725095281354898842655486183216215161331586442633526452742275034587477988970004304757362214408076015832530440994359736743501097836308443800370726242505938402745742422764538082945203712434552567620272758001358765988216668466896048818508549833944935486982912550063374577896121437620125942610471117436185332052516856574935928217776098817283684661788826709269212287861160129880115557544777149763113809946365170202103192961697974026359705438078787516965124222319671552445335667703145064455721352000865026490226003201127565409285585944631291671150182669177855034444424437939071341900581037943442980635505856105961317109658514432618245387122061386032670125735239802123929786587148357044211675669576061686636869171138183436284995773642194596213221351776436680941881638827022901743638235115360395380767551789436998955928962350263810984722793894687960703758523390991592586583891105843999545960034233435892633697695654521448899042365369968570161149082338362206048979866877496686154494747287827819923363631910753408038382346058182752507267772459001092150062682942993873340189829461121115677018280475968639559809298944656753594034652976670683643623487505604837781933660223710328213589524385930097707167903794478258127811140451231564295507065648467976411984068390881550585185833970189796096938538478588875151098657085963177999991591891129691950876409068590331835054086100328303385827252814644626858809210010811255196228713305214249467733582715868096492987375772884451941225047414866537995764569493907365768698919805531045049992872869475483862986608725123030011209867917082947217375961847215551674781027733444659517627386330512329109017568720577957653791542301822669050948411916975931337634223766392384176098009731151541792846626012930605382167670716039878943092175935602634470632178382166170963268922693051219989794103000423767385598401639858448813642539365111938962748833177601806994528762744513665761496827050951676448051698299696041107494680120943183466467283112529650458655639444509594754974186149293682124706862589860477729299680843894592139863154235409983326581241375373806249256198003771498981326331408736055716503517364042471473137059328498297404569416679475777434710048101970692457095580622869501536845765495570058692085269461535895325257986613133788675477047879264910952744349301939396479542501309171639641530483042993083586169209234169161771116748131259659909938133232719405720116752364994560774807078521932134422330558955008737110291995047738138999396099199387602459255326607903795636060123348988795722454852697337185718311624087925299847223733958933736828606357869169802605965675892448540214436289969299799723313615089560553826347159137850144603314363875551216526987161572697592618075851810588035073712851042100599609982870322238947354475763756281878421670084539714167055691562436741767858335879066538064631429972577354035495035629633026288667415024723816697951460545199218747753881998362905966966451383227291478502787957915469647978150398593021905769292441832342705667992664240708138126841130315336987268558674634105880203919364720549547943725024864246877793629612709265202299151835618283280511506403320332337690362598395110946979381586516425791281608794903520608701082758600368973101610219019998480644799830355583955603264937036220995229449366264007596809631403866885175132789432572163800860572171370819459642786245573910528836778696720461794091231973516520908147583308824996392197451453291353329884549070873527919098457534336696303523954468153187710134472739288859873827639233049169160327625289120883005312922317552172061789997277898004840446038876397055400168255052423177680334669610846381458105763722203885401709029534329371094487685153148642923881273180071291543815752620320380493062968822477499153144139990870226707725440318049732206705936313044838876898224316373215145778000385082561590022860563231326899688749099253897691736129817443363242381503311538260832969286973911415219455646181590453439902552014349321424557985052133828335626181240347298392087369041328910652390218341803752058470014560024734897936910394771561239618212435876239813593681585806072311320025943445484533983646734047116981699812811689596649829396359447755003611604489442502755052333426485923090982460025132947146451802933555979800401265106655898273854054904624318719733109258167079606307100747364199769325341817434675932306112601877848847482710383554153526704511959213923940054762728763801997254032223687012246233450891783060048303429061322208332482640334712447357892548852668334839729732814587182599845772060164534439291554500705663952084014033757619702686448265290576561164263122193254810143302512218383591461735152488117130718834920056003102713092573295397553151803719466948168883236594818286561393459183553003912775367910156628051671821771448111109079085382408907473135953539316518896156628160100206804095805632801301378022239283929148061000281158242336669604773332201066758998332503959877574350472483510412238836904932313454309977773137755336517699214594317390155667945371639930813867451914459939946229527692278616024520220597120029188738208378773238865856034081971706792255232005863429385133933403273105350637327608995946688686913101463034153461449728675967253897425182623205875424316727751122442395965493596414278280512166788013126934092753560904836880352515325046998001479052990918608997157575218406150990454493072812169392556729220299869460325359166983797757000005805513348631482845095717865263174808528332918416993546815666539656818197777209404194731600655003975185359467883538473903862500940892572217113702734985828480913227897571162794547339530350043607466685960749121917752753911447217812343733911257684364411061522284579870823638738301372207805841954671607157721164587118120499853179548402239733241873652625615299437424286986815891933500832202433762434106430682928606165539918580772479249741796082722521590905657233988030512258946323397304862444098905941124632165608338225976276092671201056221686632250205870087435255652208243558789103899011173344660379872965636728694913042946915134801114020578773016018622060683735247912640769475380297233456571675236160239628609841428927950275909369013520166966287434010844612138229132726771356779083959980852663360927999837237927337146365552301976517351724360348398264151403801090464483093491092746846536151181495937436757448453947443985229762533450884976828628504300202364803090028171665199959762065201143350652266486305595700903189789822698467330282965558318876239279561283271980140153688503346195311664910891192199286007297381093787747216190847604916049059282861052904871990504842067188476945413661101482032258183606699549725793385800043439165804405228549046759099901243513476994313291467162389281462722400078186123205271436715635349798644838979673097155474461697118817213277288775198986132178534623422853406809183017946049988292080934000057530703808337511501309188252591379812835261623892760985869615759945538330717129354340849735121660976710964374955228486397321724616849099422554278500995803936327814456558570166316127304327437359967673237364116128936081084478749434348811362889326309527547365191062860481549514326224941878634315213772859626680072375702124919947455935499398506822472295809555035070341255557641873822294687939103956475559400105694770973474325483915050016559569673158223545046460967883265297742280786032728394397295681445740388841307031244011802064808903160488114310940363471419151005630151416433413247830107377008729700824379073476130278132767893781421538058140397962672272893418613097169667697248878450256970584269909101810679849544632403529540319521646731186783028567489936115926033166043645702041006983555968089263564653432567256987865736085497484017292520344272643715449236568661566302804242704084993032142838819243506182267642203906851414054928763911045636627880669420056030736408241933976958346498886873991085530860109546448688751055315085464799645270572631410784215944135042026691295482429716036774939434275030488493687664612592513540533864443826946192351473386039008431763124413139816072690876996080164794039166409071745081524076451898728168417263575676398884641182686532390529763211416669334800792874183289696146299648364316965828141844486897753761212462402344921061654879711710176521780854358118745596702172547861980980293839585498791665535484371031539732862408969566501258362083984225766948217173825347132746935602360930955616695132702480529945572711242439803466014313808100780406151377196671799665711355077763335534466596935567326964713138293924872062995724964180543245520554412066716997178863964065262740234501253164775198482656877648343576600930097352454735701304519170630336187962215587842893078992121289514619443678525544379380536204958578486196061032155185633992516687287548626219623602541920356311549228134604552420498492329591946690954279385675869086962335097928378445845876977274391960049710302016971279690697846037977580864303598773380908828182493504248650818746600822683724643313071475751658091915159651287256221909012275406762455033255593302534866209776701423990446100017618361339668820558730191480265380787154634276368131630656297738853699019213621997079729455209859468800216875890317361172174765261470716116725536964968003746217330485013059386962572424202968300670074491332612387938348413497342278469314053731980282939753441650187001511053814586909268632934538583572230839506978889137175449966016441496941121579399986301032107520096702008161816639171225940246611055186150721811059132791389636436447162117650871481625413597720142239333809612156366299886146654606429471123727282546328111086941707058436506151775035233366599466675994434145298858661592299925801181007933372423263260385213603994809004656485183325025508684379248936152998977935471953781880133042984004040986982518661636355030393561825048285560660914517411396126502829682024475851255021393878271475916866651103540149721190357694335333545862616606184982567258127512456995030489134335962607639571318003892137016651138148237805580744379571422877713658971165850665219188669950794268456131361763354097601680673890201015025979611747551614830072704150331264128480910318868863273309834666820547650704112040686776925679886108117477327382164369525861609586830594168639273585828031408546997238858306035236154458215162865960101360694714169804463458686262736051750132910174297270805993032229396593693086676914643149821876356872549973688604053245854492433210311710420540878729003092712751018606298040350020825649286651111287030408674198114540695800089033901706729805869180764830506059104938915058975604336555756930543261986156833313668105404764442779993465494580427487431357609182367697749075329657341094467682933428361772538921130877984093308042123405272668267477870121981881491212557719847108131430748039717588398034732795394074957388171415625635589975861960738924496538027909279008853111979456496203445179131769340790456436614362111656588561241480154803938560456318171873318194630563873387030208230916087526215016208395916216637026734963653398216819148874163173769595535784934599854632352060553037846193737979289639255365986605478174400636908543918106312579315369791899514080025410959719927517829668577524029633248830005523341281970303340337160355669120709330296323222884709901562051238433328798615353637301530780377036889200549972604759621027906824631106615330510486535713491824985742644829354667193320528895751280468758556042169264637300856578673810808636069575882270330022340498861963365488586968538687059567224123720918854375641286886883055337579510824439928017056409497175924755208416163735557640604137228490813782879308336135560225677218007792555566519040753437395271806104668682102220967046564974483852642120417252471756722808150839195670459817264686381650195675577903360469550147179069829733776929055960128776278075801193559841253865822890891949864629946103304454359706920040977581740430783061033295659661086151316074131741617804327336765732387800095451748880779347303157937330917964476223381936286028877020178669075790860164145477827260031500063182276220223208285284724764998165722538721227563835229770785055653496829804384860886224350183950807304197237731571450349104996612731232001672412990807036858749221631475462772440945224663929704375909165998238815318630241708227179071199292003657422669010055191097280190869521684309933084361461785391916791799668552951905318018428868119333574306736943634089145660856554514876883332046032299852672772914180993107984773827458763208731563177917030134819678120311406865157232254414571281332892143575089060289080454270900039642922899868095460652929243795230167427926650696573052993880481495561127009737417860923397204986976765528980545960401594953240207388322836754254843313596016628033498119537228091140345139371990724105782147848315276526948848516413722513577567190118319171747150033955933949274388362027899858277598186161959976835670579795425285939987137813948041870190654125640907315950665389273872887559340773667319137913743678927679026160467843239297897965238895797485569428533620839957536125157950795502819964138308967908226678680604110495998412831387827951393839093921647888424828915583240432713382362687426191301874459543369201137800994215330161618639704477606176858836178059547500257413414663585058656728441552552647191896764227574079612810408494959827534691234053792700465941792979417408523658011824468283002812394981484207467046926224712533020620618672373129676263111627690168287514589480728804623729083102963778101105246627964637162964088886948702168114249306186411849016228749853857650039378011120688654943386677718008798451684853237202309901334792643768243931421083952669450443636259417504252179164713475158382211225582264564640040726983868927867139554862309049406429393690036190166976762980243369386207879515202589757142038802113072367567765871589136653112012967246448111262587841258801102239763097497664148243581653697927238379462045483320598022288291388294932580691905725184950261135235967149516304776379401422695779995142126209806061493432693521346378048825383070659333825825401663830349697080374640112037689519408926556963524049426000025585022785330539952850450753128705698318634962907880310635500927612446131831814140444748289688072598802035327154477447857443227581380131746367180339263906614738191475192381356546864586573887645752380974073725727306411338140647431230091652390932090815038042580914082248568426481574580106433833714092322615327156969648196960216257660612678950325407094908810575552215299342263801829428032229450882857852444632230037409910061020369856513365836615796053032248998373418639535565768454543606267072828961500940543760616813191674111870737276225473886182924302530997720347167228983630903569843649541179034558608995422680321316705130167115705388312850730970501043723892791403069905685477551119071598830151522674685753674721218241564495300512656421745998400374668643182019157897320932461916283238663385296740175836095148591194890946365920633840012137898289285187560545966925938565620691287324023200128996815938082544211016935567347303061197237926734444600354022026882707228204282824579885033908098887566902113452782108217307228674129378673770350629374192686278234022623335467298381953194014057348981389241635378064152688805180795937146784079110620147921442200719424521596004362011879165094757933540398846827006791072151719405353554367535081019483513013787411329427783297453107071819936610599534488246407615257964561148020924268535609364329186468920162146939608590563352055903747877056403466788529058058591641468202193596948664656827638108332042130910100563492756879296444349157329844714655726788694597776754072649152265869931687900423791542718409326549967553274051242978749300878618735240350978187757910872904492331688541948010624059373170289217755386958773072663117175535583483816914810095203122414267252623181710912637161881906124339857359132193277158265824517644441106179363714615489111794726297251820005845512176412443534513976978859930193347363124520528129871958972767929335954779175154666137850681134797191804631739181624388020882594941555711640479695178554058307534934708133328047988514039809192925625039575700801305562665123083378448843446100300677754610488895208971432831362020140962387754466720978941019546464720015035401296883172633761146720019326306752686329031689671359073609041448511212351820463996986632639426016032076122775307301067707818283673493163176318391715306205205459420069411017464005606352126750335409950517205307711098981596034763584533409179904762328274263704467548272607996124886989026897524310041331099831202992324527827995831849807119578591822734761117198046132100563106853254372816473751129228783326051091853006045629388263318831441601590907056148680856471001632415109595073674821493744124145327560342973045821471704600309100020768490999320491803347307338193828016829764726287216834814947983471596874569487497229065828583465171514315367130873287486781807270201020279151104902617317905097150826152457519874135196601120891078107311289741783646109245401844944096242964307859845763001901079014001719443109414424140468035515329834999038583081392617442422371976533278991941160448556181693238322005916743152219879671234516626727813557362740940925898731555593648323463185990355962339963580681678901652610399490817301678405626775590932110018380143925225305095349589766368895669141075089093074583651188824458128482297096244552788934974143283751836621650399282492868456849324179441297983863883366708021387149689784582174469594453647067574318428663898149646156271547802554228166795694938239065305026433750122087479111577028980903749979812699658428625988408137400662826637879014459774582324953140614714547047595178556623531032735883476884837218253654399838496842381103901812238000717126883861487316790459406933279814654727903368404098815849992121586768004587598931257799614819129423456037662574575010052538510296929864927057497381263412758094717219676227246453011014909834031125574807536848175794137296557182871732891490924552311129125553385925881399392498418135100023628348075937323685400788724482222261808880312362029449761067742752896090875898107215699986316071757639590407516421889108612225563845975737246026647657820090609220257183258254491556541662823299104546179484768286713705687220181079086319035537376270368804212830921336234115077667322854192141232448619605834313350218648629891786727186520182551226813153963967489726832487575241216392248808968662426789154031580869849462896460796116142334873002013751813511937074456559265210583081275545694124570812259599023688177213466016257893416521335813334622573138719361050947372606944693042628485266911454641600355862260379893759750517414581853318417566677329821272661922237602627622749759303062014874893620703072150489345935017760406250968210740146542265856093356800772532245613557497139835036208669456584189720023905240321660866057405211463498197067845415294320671865429247198371627212367477384297773907026321769841199955983789832111478587696303742159055368519267925685615485709122888073959247472591695883207498190956357486811203518209966512083694623711962652532203945872451795984854777497875500281188437463475813397096342725578263195934040882104166388594273113079901812734875680838867118030729103788561002487492308182349505425677044901496328943481411207755180882372979786845726645459878128720697471214483606236161209905312502543098856333259502465758648574049403199953404932284721826872489972187393499222580640266095733131474763727964896566169434781040490817558059335434959048965635140551078724637180072212204202771471577141152885409420635883376005570835088730030462603950739367255518564913145627483629290407765947693541712577540725813912749835809289599662468012525640187090853358018366568961919873586495108767311770245027595158141773338792447416375045784923017492541193689955013478826899217077106730717835215897306251745620723074287328711068315464240671500522891356661738807628511012159831326174818950759121756844515769807448255503518908712766974366364754039415417580112208234298000118961157439590806627148014179558346295338311995979977776904303904665053268726591696578199712864321459205513562112104349473403057760058071903644755604998377479672270101876985539054357489805555402919506252360160767238131538292165222897760372389675535689237790113136841323972578379239642010766940176072656924003505207956575469162451938277069750325743519835716897169552502232089005005036813350529553825574195442642254843122160922949527462372520060949828868118884377148470324546553996041374857854372258026747775041264104304973124484078852512890829693282041068014008625970116858976788518642093126797986172468934195185542431732084818453788364973677903687978150437359474373481798986080141262332519517141701016237011713400136051938607642735953799522367157966821577473231808066553853405363042811014058934325120057801327920167912991960036283448387659305773522153423479080505214217954760189928295718783310783939968654726476724566377205452329351548229827614036257130666336858072186325518987566675098236334046191569785893444908398029613590153316768956741955864263846692176058234659006284038881777721341272498450369108983456396454978296647054707306298886136483101520116314104137210496236594829000009448148217341193242744758463230606935277140790478775447480765676967000257715643935938324453666670301860793687255957062843992598536560588922070226161099358429286972136711739168831411424178748415556576120287195673671764781672046813407711593553600683998982713009990071963378515470773534603142884125745953075480221174682009685610093424570848896900757489623083646056975263966090648510990878864095950231010573274780071287726634907713027311921050785794747782025805507750875120333491711637106415369617375756716304147791706696955051235612339196596878948034516502046084703730806623349983855539078167703126371601844234233692759687964333266836147551989024662157822735480329031661101999982328556002179853756317893078197552241197318583645437849828506869181109648185537894621315963475572493774667005955805778591722226847922724016561931789737622324581049315668774638164259641799111184243801062096074319268767657580561041110104226888735686081910614189408662109125368242334251681225787672960479955912472486777186016091405888633854286032985266549740449854702479442049529363437435455055730186835070558756633569640497863470301652723404172838581201477438835152349287106306690488144257074631991371813687627228712790623007267970412307517876050322485442516741810492624448232294423477501515831141738614830982911953621546435416148298785990725128053820282321672948806979362797230159940837804543945080338835177506406474027137421199943751817100064479546892475626450382843159511415015590713316488917062406487380916026874761013388501980672479366215715307173852756301920085057366557187106514453529475773400699724405335052373626613367144849989211663238674677819676603200158038396882449863067232415527030533995338470976477157168382336605437684515763235897464140397285257850426238972791456583848812632312158093341948039256720526669971481994015196532303339819539125464118395631977241526635600859295902948849602721684445874684656181229567496183982319921099307630643259767276439339968819092862040768431596444361111422347659547263160347756674607557904713608360192660554509368736109360518564913548777099930738795790162293727826891795213976247029844407952743899286111805948135610291259413069105424932949782727949973457973432397251496019486526686841121294855414394176792103365299132814215976078782046173882338524801392195358965260092011717494375254575170954220070523728142059075517216626017222306938211443269052478269536814859791058740211801744242734593678114839216900751096871958784607387766537146206748250332037423717831370670068413680161695688302253908031914876844971850367572899277539606861087650049830099527043510697728871830123697310566260224172912652306826697976748000041266137148626302847115805530885707050234053639608651041678058263984947966675457508842752478821323257934211235629490849860939999156457896429863021773195252565145666523010953483595581394597053998749243037650481147584160923377949304066579021313537330261327819640764882269179048365487083217958524380449238804151748308216091912699016383444268190175748102025709035283461626437717070994309199280894814357775943080415974601885128850661430423158116619848871063128709689027278186024740710000917986591075455628266291325387655191015327962260068968168028022521266916002824352875612594549533810869441790601537967796412245981007311513886579801186488776689137691383486454833649590930978624318619479337922874418924078229008386164335014764011537813093714239011215546323043084152896406563593697350163334481597894679270706831944896802067493660378359915824178969511416494831694435590385164179376351848947544213465152506401192108192921048249627623270815181329807331722498650955147597772680635452592392877734168009382981146698113412146849571884250637257502349108486014959583975357240256480687016176014233717005895270220991120061567664208973823872495134081493528689789794525304655287810548345514388966908613700946876495287029069635699591931617673181079436467073088106970322611177604282326060859073165778256496336027930489293192680836281465507734047225397850949153217064606292376768807208545471346635891239725988514997142334541040656768775173583706245736028219874116716812862330501142391477862042500337428329191303048786915242660458932842079746953620522272897359266839535590803779358565969711872611790456939546516201553939730945685743339332353297221681195765605413542340767754262788633518879418141816119210911551181549497620013088555423865011307828344769482089587625527904382385627148262253908107920579303338361608347163254502746502391351511431301939993481712510433421277362788685577221947729799772240127525140541237258372248371831001740826093259145983568718811828032684857561227925199168401895766133136401526062820770308981123517079482825419051393115230894694285912316085484696607505849204907601019356560490733296783242545969410315247564962996753303507384470703963126441826280178050431037434202595280511062834027058034357068450605517414272659905880001905185194636151900815268299862431284256464759728190667751202586716456474584358322811622148339788651569347441486441606711735105592401469481215864800114544694140714926055379197576102162348563146976467691089336964590501756549810779137969609632934089508344241765888514796001283688487935105325773326003763943948934435509900650484312992290682634316875158838394311314563286989454025436823620577205922486610048214101485381471866199168029484066862708778540719967588167507601022919233830740891673431951506468528791396999535839127534425442475258272393139729767903054121488825522810273788983265116591724064788623041745622767731981198573362012314432229326368767423358552745641913380729624413711009443643785963036826228093797228167316211814586718455900904719696961340086250118144277495577768756387831638805914773596624080257429667900325014480256375394203658172557847551142423112111334975976200418223015474609793747273534894412732314792788511373041687448930500729871887077428006385112691516012464935523739110197780778096644428507642041928190958732893927572366551299787716970438954086614805591733793728688219536310559701211478078574006744349648003779887312672511758120899645671050070873546612766917425282322417013106131382057134897799131650290873835689427063314756826275389144040556421922162389864503249455845629199396419642973738349182186764084573809583377085606734810833683192919256102155304179915061310867007209742861999915254103692925134937502754596024256555766699747706482338240809695413549616440545671211382820721911387814838095716823514439447804352750746650746051866383820010090479633943712046284280837645790089821365198134721246118116861222554934159165106614020982666585830523078138952643349579040586023736870849926640555672671617510569470376823177664295865485366944711796109384660553767609115235526931734946192903828233451745669612117517792077855771740902355450665301464134224873394229794831485975575221581264019757814445541887340004749429435859553082826345684511566785537451416519642026286807668445919231788816277777341603035085023521285457416389118122309673499885873501393238403899586780076956298615418223221097589790190128445302958741714343137145130378603710015297870288895493359072910000332197684620632889599180653875461529727612758741398833441932470078195348960516354094455815334928802192641550442682047599473859408695816777988252162634531891905179055657307147630153156023385297107883390507334604869584276539546535599000581970208340279996352131820688048528714153372044481761680758665686720959294958593318469894077157411959290371589649954681821351135790204603453344843298951999728788938481419102462177931982885460379768547540597717758322998629172868110749304532712135061927330990185086948757603737392200695731934800513234504438066349876711025512877266776668108128366816914275574996542074305908491022065734164548754749064739594771308703438712012548822850455481871745639030978442130218315550251787271046802137143170399008879275568231342147351707291086115054076778802605942727472825045127564614985919220767556413261419535067606918625764393939792660471666448051858350957644416480298097686929485813756001025196826912240187495610901141150071447674636183259753739768630114110918912274335721607573418308161249023622375232767713001811945562079735799073863978395564313913769385713435850819875703707772004117798280618851107326029701630488848256937837333639921635449954190752630371049803497974698599071695413013810894355144664455893125985957358235791892162943459980626264948703688718463953134606263410815543612034432604409616306091015314658521182791319058831075015316384883409553872833633216188200636361156480360039601543191185722026403759625052050297620692049342906654873435812427390174461886743644035146466441490302552754992128571780626436680684193312352526662633879596226020554673133420015233342515234892441432629658572424086545229835931426016228201427208203181786341656103514468333268573330938549675282982476771325494104343407615925987699098499321238069029500487396624633724975146598925220000178881832223695690542864901530116640999919629080184053044543536013220962140928605029121676436693156807527166074261469149129592132623656735434309245033138752494412087740876550369848357168144141759443186515320245284596846428262835743018244743573700958880420241210215832904652813778419688216318591524530549158431366550685024389653896422392461416975680832923635951931820672016228949137143001046115244582746745412441217734831420126852679293512240786058592850101852218815704910738252182452658440822287002346704997576087248633659886817875539650145824729045714792922084280656907825180066810464187086249297459222800217970809093776851681036176955818397121197361400942882893628704072158604571727183491890222454833443801349905965118458105376384846699271066352745247793062834102396631197074108958863670767870399146503453921108635013798192550969826290175213652607524297784384517722577942605364953782484325181778516505598882997509562300912158137537960386234887050034456325839917189367845392801811531549219158682633166466948857457106424559160591490669408801121635791675119907317698103398651968432193799820217386913906634838167171750841985834548958658027890487758303059832899389389948097017052391807731280854649397413877553916171956421480107965228291050112365935667507096560186160422091666435379606630487521290833306949126286997655874683291697212775746858251304695383145642734471441931351619362193066015488769671105272393294177609760086046537577471682029295392959565754379918218432732264804437392737765741119056376984563205918237489837925491829789398233725650871788935260623102236406003082242532489107449710645340014354264108473654835413451635299047658315827409887445964195611641268047679711600716829230320418693677934549220883771740583038738196951489785087764324402237327590099552738267645603631548754084919401447108723151413853240921393299337846865756929338318705315007517719244049766879841513534684680659764302856470215824141428742402267262202400813784690601437736358831488903979863270257225948800174086805848819395440536725102826419730909950117008400514627428080524085658392632121072834690072075522089202082383134752785889618910918606827591755715997726024908855842244440503106235656515699231162370116403877397432645778964037649981642359774794865567667501243210990798104542432719939658029897940303672850142006337100447520970736908935779064539851755124751694548234942485561581120089866137810118170918681509332091696076069406671988485886249809183400982841044162609993168958971480307299598232757473061331040018545588521680430338856358974467869905332358701822492909632304792197572511898972246579777612919303819746468816043753373316360819000594185894791776793815117373741381965276927395543295881935356000480665490228281964715373947499883993762363245407301641823577503300938010005989264793589274542479399867517905937038069874530918257696917311745832016779766651575241239031290664109204352146375451756055897423215352473541160753218630951063938157764819874914865596345581777398799224800361446498091412353359853265502201602279031767270379301040865086679518055081276233876561325255239751018053886523799442841087827530626996621412799655270265083186624759909037251260439572484924318773691805187942825358864120808711538613477341254127156258144523661370795059597053582206416241253322507213673763422052038607189883630029934706696780187031164428958587932845510908418761683072946171643940241965617886453256173814083830809973313420036450327429828279600635362172260977614235386710312594432101210672250450336608082424456898399765592861691086370500701149128951098790881148356583767162306200921143063186583827975220675626421309240706056018585075762686014886792496039264280612012570948493061680400642749082445052779249137348380353417967600409985736223022571786990912040785867959530154652428956891842023126899685601050185692791580455838585941704160709579148242402911210681821026710510008200389922339419202365553591745709284269067407851382998617849062287101913638224361927111162617493768493234435474723119190767379358051760265913717643477419110284792250707665626189860058855916215723715421918793652885298769026965792469064498603668664477777989196868230676456748720970829152084765010962719085623228644607612448722218177387371247761584750491520697552774644491524923324438937174924981456081704179653604494994968486972635495718495043873392344902106472641900233380335213543438017654320466602977096093442186112722591427669730480211930287071139962562856628498324618844585646907417943152440179483665000271123604337159161917138669488952291999530263224627807611518750992474933353568840896949072404302002925698201596577109558108675962134139232811534260521105241033710091093514419678239997453938182829222547474302834165122839752305983402342362889446676316667401934282839393000640826784734066901617243495765983988728736784226035984722872166329624882653824246885947750216735640882897682652851800857561125979245073738592135258323947155164409364266555230281927442810642304178399269212037977566720149380165561584802824611748196306346854486234659104913566497574859954748831288075551526743409214927924528485954987716632564554217216559897662658044749869672121227482441223957381270757766646774004487883665064387578799842552088535903914757551115246486240505562263165122368880095866687080306489685807951948416719195556708444242819529230355063788391845167356800852573220279685306505264858667040911735836235533278317507493784462185696311045799537940989911697280547020318338552314420183558352066334076861801889721881475975871170027218925692850291317920443698210916016580925039097266296953711320788739925152155350524289832679569033628354261868755663770570042043829124600350066269265560265689012593171566362508508696858806634872836248963445278597346245744792954817691325888258054685906646774302411080508766706866803260899609793934472492298479065070028356435875292059615631036847384233048462833703018736560558159732849098294398794761521204682716961205508806706567425402628599261868004476246577339109322151804830191842721709154216906597350452740249740505221189931964849506170475540645419175235328616326325200355053860265494781829738722272787902291847074829973510859451875702808606787929348183305946081712812972061611455590124703937074274460952852406451658953229485089798423948419840845930319734288102759356682388781534452501148572446440922250230296826189790136374742447854064469334639685696692554563227989968044051445399935025153449205997389234298996704641563662853375884668491732008718114171942833962704144273071922148627706670590186675995846876278767185470811984784854909845674300492410162946323635563263829399917076670435379470334230444252392789303385953379940578425547521120838509888811007352930362314858654174420029291257380557697289270274665786302409614362704805481847280243106425353634859322849428979359915569573019001452572127176684356618865452510204010806358693081741751731973485224150824976561929940428488644862649429217370821416450165891123768433064899470610173623522608076789848260761621839201550381128648584152493121727288445670427263396657952520102100342265275548050756294996378654780847762139091405856703138438193270412410428000414551075157720117698058261809648228326535081226992730559511343324645209774139670967400302474471000908813914852620244611346361199587266789944676255896300105352001533033916654346252697629118864991155795842947028258672709599888537382652464869450098926233199492700367204486982675651048517263128000205252183223764708769260512976007496009741001893429495184715803416359883671865387216323464630110572878729702243841247584834277867911599536640129836050890048027758361851300446587393092243522461675023322518566942029658260474048025102219631629360542934729900237662207224586489832824146403237706510228229765837099805718442431068261321395895433044081567110634185532046379512637078518695694617011997960802049970617466468904574792363569025471358602255850287226840862568638361438968095118151189991236033420126928931702060956726894782406734086171326786490720687875968163466934617558696442303631896660590767223415304143251866881492478121931956858608278630348084204117351812476030681456168486153605184522345126739831038760617890742573072697741840097469406387691851131181521044291917757717108306423091767017561792910582064429467177215114533751118399949260682071356032456805595828274763028271551439393085235555056607472447650673250243956518859471187170618790955036033936371568201869482189305264630579684567568417791304806097168255830948140430612007459218236296847205640996343238780443407080958673881078369049429624849919107219936932844062369576478309763721553276823759000809225840718347230073628052513632877975275384564966035354047139000790710565939743892466464584707584471072862686431862697099245159881328226816687230786673212918074450429911737102635207453956004669978410670221103167978891713950975277024086941983664443988675761936142842661422420419588353335372987545453528124479922050473358996260879697226432015911828023281212114462112271340742832716207539061235384625282527936705351475708103138160981995054063351234660132216188637726362447055068675508098376861824321696874453495358713896336859424093455156849599496581153477694771136220744679436589967630093994919861029435540861129271473513368571135570255768524248546654753429516746628511036310360177230767483004155419135305332028100353801231169979250104077732967820733585287541756110541164694220631283737130177605005277411389827321815068217728424391509411474063197672304497583316499844237788643482922171464935182124247895073306069683732472775885553289374354675223949597056992725116877686919204901967827857729534993580325195990492729480643340188572254969762771813099227306219456169990672533764820961050817473284815417487717408956504217535695859896931347804718778405333179295106890495569471044283192185050655383063294889551570523827227468854520922979611106798967611589736053459125720441658414320871685724120860907341132147789568114041411943319020982255255874060054571870428206128234196450875010939852275771423648126620178404356432530208253979551027137498411212835279452266574818038166786466393598755499626755651118561976210155040782836672980664684073505606741331060549942702947207393084504439917530790865237426090581548910086802488183889266921062568305079384685639501189408419873496170083412277782669202077397288979780081797761116434023000848057827469245107781954224167982876314921378311343504460088910922870315405261109526285190968426512447809682985077516761065559512471849363451903793969853651349519690319205213767167365646739652571530851952885789448711131921142026287986905019953526832049700426087609165542745427121333244617209271888529122466887323252125590009012472501333666530707601076345866574506611746688522619774979151449496476594174729877606174169157690549001407935913567986472736608902006637773471772894954296583525921835775640218261095394794327808975852784458667041419815958023044562404887104435332772744143243163634063605143646815876420237156301664084867311841399126544751041651369565360596377021614860161892185519381921634140993704385812632651778090970695668818601398294395111589830876342724902569688216908553083029653763363914128263044373506813600499212200278136776692812100515998386975068833219774771892048731172033793159267631168758461710893617199124162547611784423507641292646658704368879577600934296200196327000295222747413645511068667461016429018033042494985816818322279807017217376436750549370042370100846690022843159660965945378414736873088966055379642470543998412275795770568893866468936782440777378323183154533703107588490099915563200356293852851772629423036561117027097874658789406534835232876856347807276084880678580029529665817572889044196486969210053912626380040454395274650103979003199204556963016893888615928282836309810836896785411605768646871388053239592380428822447997218164838376092846030603419778205836031094651492789272087577066656906755696826865854199624837833277355654693276019251219776259783187716246777013535815143604682183974990525238288453436073964369665507274499597340792148438623333029165500594860862942619548713149842569036932630906198276558583723347939941426133203608045480400229009772639468607813420609375060777832109198949181684845597982788572713082510838359197381833954998778162147409574199283047235270359339393371531439844813554407830441477742067603959539823538755536894866098659672239607244319591135455613486421996315639525656975352771042771252832380500954451139275840784086525182375771286216666730406408249241294468043066096370799559962487320511203348328482618657414956084682062691807625464091646986212210653247238103700964214263943991967505708567033737939105448100594612888015173106998780848104984013039485571742311190981092356552533768948474172357754564764020908470838963448526190309101054921793273719989283161199084333322394889027355024370691539848950642680574548149650465779010191755030384626426536782647771066940691042382459103538722571482778821172609863554088291424537900279701306472968151992286828410025342427215562592829903515010416020651968013762586129407205268364313377293986555104734130695724030311915503939467018649910893566072119103114181513079103861349814039907915161657604874487097833883544706575848233335458348448666590423904784511110937700667213890438345019244216690270004753647407516280542279792966892487601032133967873905636628744000897573979192423970800958938260478479695151450338707588076874121867005032538196128676051197809021026451051155437677587863720975823479891210425594301795573686663753922778117696678158360973000632076001973143370462114619647265316293057424441574371776718795618163404645397806672387978595582089275517621522175831953265457836825987711006228485225055192749525007025243458796404612875954699928745460844096567306736504273665491300381321967945930069161631253405803028099139033997010812751727293850411361736819580825948187021303009650208906012270640203348250240245570033304788061364740537959389662278409105469836292878202569791847784807640917400496731066642112117225437067020539657858664388000310182609814103387632240627660088597234117943233963002482693974568289797822392105526767665541466637337607015312898343705695062523954311091359675205263486507373236838543478956717441261900680702463537433616898775608590729371016129238032572111079239757491983262274730533759132750790924018175234205472072711838596947283061056587887962808021417976673090473956933345078945050999837764055835452497987257883040002733774111542768489753827628067216006439173673715788240550646012447652696126396563031667162636124269665341216633139449432324207759331408989769331279382308125515521794301636288857739953406039837104804121307179848700857921153084585089762028584491737210013258811078058002529085808435040226259346898154678157877150699383105034102594605380188242159249302461163287273431764007605388258287098722108109128040762582044396388427987632029956127241342449074828737314848039088352088162997096588276740887088674578402286989964898971487032753337639931346268686319077726564604338416621851318206591517825588422329487323551732059109173557833795805201636570140383345168830641795514642694919901910138687232040855960307674782976805384695256457740187146530192567439444818031054940108063921282400115136134524560141641036259487617548313069896875807184605239732709854813161674402784437503436348169497387215921141227261935473260672783998172283720499712915244662398669146878168607533478175249636981663066387317046792999404980705139617346216817590901881849137121986394967583791958498284312665417779146689060348743371647640030993714637718266019333686827722154615149543252617124567552399473102932690144435297835631922073783149234457295521182928073665916721173994768031983161451753565598635159230538508462101298221983807350351446170505135103141152035832744781711682238873205157031627902654349683048120772626640453013600086541894287129648386053647999998073292718974572588950840657058317068771966955529512481611472065006001327517253115999637463638339004773004832743588021424214213145954908100671509126379375368600642925192754899901775457525084942294355735905485599730254095276333100811188974297151331691580147787130018709168329911602961374989420039002168649448194551393608407279138415672643501239031198956685023353690526854670075884838126394933181168221052380450846282841303224385936509163256326539563305203927484792747703114421447537500320699413986542304919132651893514543401831611351869843103553722966478402521447261311328052451907389347274058622826635898864164363973523859308113533209315927330249534854777301895626860448942694912403080247405810418767215798296369842830382237323808007964557558782280131682673934331650445149806561547681162078173710002858851819441136187705568600344737021579220192608383463573357506084053732421259473880214945787820009344344906152540101531324012125678431660196400640033347008148701003405549150336027069978222599098097235122149394041580328885906097308233209411701623243157503155262999834837229263928386176551345689271294721858444212461341280468580660189492175841751276554835597794134321626384337254254122831513836589948981694644603201126591094472734465135994731732150891188933736015353667487932725026892468006741839122096222776388318392009586892296963023067474139529737120499231111391861860503866202987020285418774203952536204253785039012139151182768022734062749104507655439752884517651764879538677669131704713820098394211377728471745311125936120227936745194767867302997906066040488518189846200215895019169840858174416384342552536188020110205985717541989897589320758019986283932649921896511133919642670489565267390128518165169381705029297387303877061545508069347287217688171666682296982251778649276286124239510168984896867576841098116057458129196031954975109391137334812279631389691127157984513014480872126843121230843446839638574873798368131371436634761553389858015831505926676358905669521110344676501587251511337603318812166090958000158239409166968862777460054872302181920359027230341846690036450842651063896504882971622702338754356945353139809966417867227585895312379193120318858889360049906862524256701629032357463028670136898211277227394257569414735775330124888951765102251949772794658458231567378991971711215238454526635146255865783020335832774471244636961330461358928255923717998549929205402667560770320278005784378455936878292303346471295118112262264277345881802463166539411571428781084269361751302267819940129538596050837114092495038780703188800271122160792628851106854907801838373884573174534591862393558250949218818748475699621540055556313068555727627535670938659128672504215363276610189488503459777174275910513696232643204641777983499312905229643035635987491011987018610524896179492702534245364591820195141619504804092147102249642908359594286981851084356280835639123468367962232238740446704114867837934895025610233292898561474174053848689042704218499977013427435297687742866610583354898358473074951764063007874798143919939099261795915395229975774200356029785608806196907601950725401105335062107678398877737236112377284225037279806840030806923739220500752678916666060220171324768513786067257545589158692710858369628312103049592085097600629457140148094568218500418832028652064372248751591909306528510554139925318994848361817066518398290495717110732532002789696821224963696543914924517543759400010862650826147214998151287875566056937356124173293833931202876726230499169277549438478549624014836819748472584742928052464942855218609924098105689928731836477312150219080701047486333389333240205086276170834842392641738723188867818061003508135069539698347195018108606131034920638629020825762091742762632932033073216789009790374923339463177051063483828482309873957060425266931114254421325891114404855442619674060434114306793437415066335172197643827277757155509174976628207383860955854946194534591231185510820980307607414652757655332896300770500137401579922863596165687504482744890154092809179108707045070809606464322611464949613287721945233393266256890072062485243304080012604789275698782678150570713840468520295786189496949615228201668842844565624214373949788049477242846110509213686608696678398892161128206478279636745811158779488796380596335283511681216328611067227579362427862730687883003767741614753172668004679345614349164944246399961419013394021432867770308458248666503522188532695038306166467836725217138585545067279651507666333574232706280698515756826896960407531082171678264566869430259028021591545180465263946046852872652500093307457728505560874941563848240530834022496682039415304566841092154994604393556358340221010483614240960027483605346060825911879283197210044142132687029781580897675458588273185326653342176751631678720683865195823665242019551469168955647887581678684285151867680895843390888118336846815046792660560002502760224210710066594708455824144315816826033869682398442785928461640987967728744633953342566260446165524326495632511153202819436414630031208287592537652851213393336711716725015288356500527626235557565034009462768904227133940162736428386380694498164448859993601490103913286448646937650715126246048282936512220838623168181897589929218750380058766467396627774398197669860913380075578416618015461453963067026128746503878087617798357374727019033637147566302283094911446991318891098998986725247941479825271446506214842343150788992981371462375267163321713134966665571906144973633805278328663051150393382073085366067441775117542603950277893681309071234286650241568048477709758319476242988024686857510518413633895909622395273077017647548729745934662071757160665184057749353494106052408872243934069108492799166586240272440049836615325190442509443645667456968574144217526094698195356299612460049569211997948471537246438414645525372685279766259760711183894163493948529489665892978083617615639541462560635096034939506422528266910940893221352976459593125482819043704810438193559290009079610953885103411334614588895514767375439035056187683218197470197535209298091934528404620824758997907578934394872139099947226800404712768118875630315442987351284246357225772197887181098111543059019044972825830015025502872885410394198185088208360078307470875056678025426195846796476893427601656779031489466497175523351056252073446877100814786054290020174146146953288818553170047782461559399986862566134252339131181538981921562099982108334063806172538918282194599803022634306901313558112870069036864437840699862778588128354845088043021924402286934603648434672224949589682351189661148015550536911955852175305136623532308368939576326490053662038874710808758718726326443182231058624570809049310715065110974996988904747739994304297253424485680874277548906899842482989535191266663256923041195566740310570309538294406596198696780620850021390351185999317648002492700934267456035806103541894414071675451709048753087653972488026208463909430861274297962813898185639505565634648343647932996910966530528034661907970214140554686504778895089023531549936719238896533385807651395187023928618557961224976223802256226815333407010249803686531703382823887006816093479261077785060050080470965548080932797118564812282945675206684817373138997933989969430105822350633046239043150270540676917154625152995980681348508083219932496574025617737168875079545692860942826919158998323715125911773846088653935803850670082047473621527386762179049302676023527822243480626642592520238712031071243491246040731611892466671458982820999190515824404500217736278452580833295059979240855953577705168391767407534153521775891369453372660939108944707291927058891672796521886714984618202076982753608830624882515434516054760645777517133472053435436545010063083764550043515122870728699735937211131060396049528244233458124331560499705064812468491231807713003199342210109560226236772600567724424839271389632329535312435418552504931729253718859981363730077202792485961980264181429975993504517839029958759237452471899636938660819035717110555011806074288092495504932708583499780073787969002297955050899477605554822509071893331749078134007476914110231198623329827405077932090135822631025202929622218127185939512435703845853171848362392917826502817586969286074494654676667542319567150980446301709963568616787687213851855285562269327031299542683374484519001581006655383934342269503693176650482531285832401726030064246152316514697246802841765132035371181947550232790929521237360333986343015021869508908439442916826068047368583715060222689940953027258981089364732003584399112106257150091846214173167172015588589506939948615861427575385022484996359498188903441358383447938516629188910736353512255719980845442819749156008239141021587596113472843110948823851308267364654813071863836099511926291507118813506702198903127341737458827158011555314012503567244793986423967306004429646919531348454668997068814875518452081221130121892640773483720641658855733374812878647377373878837895899358217136033822300829047030855909525698781513305465648050341379363824535288964536413127367824968850215943411398061063802281260618435127921544525705600772168437371489669452624186549846103254014489384386378559647729206078603649716028675547203658194370956350209315985899506014860251819737165342682261546320675232878139678140054013941073548087204032861613468391969023762854697802674513391195357985598955237197162638250412357998580924907233562119807626527487973319308999249117308241394725218769719629595682745634060586559502422379335679988704567792499808216202111626836257100784926027168854379239130151183072142928367577353236525241440378792430185247589347677946253150394407495831144736638499033386947785023710598714924245298835560489908720619250035719132186374187707969243451168571973846425327534152273171190780635374810899745905824969539885535654474486949477960458931513982325694408286191838555786303158947803367779120418085624128551798339362028942291473041977269682984009286731467059670597496725491520376740024213506959162900829063042559799212248041243740539646514727342206443213208133538246988065867801705176384266948814661736184121928034726429625833226129175619519336924778148272735664087548378202225167112707883244945679377412576105828905356860393769488825495056074734078801680745730997658109910863788469166996503930111719325712949475763843177860215462209032315476439010561726177039029882893546226093102568359264309558964667372451749492165853593017689363188089455182304964211840610870092706188012152566098261109002223994897327311265698886112300072180457445666451749536554657901039789964609515330128143907615006675120447004762636902603211386467434647261096693209184972328830319172134921191606907530922214729169451195446317700139094476199474658853280127465948862768214427321476468008428276189727978960494469294332551810812280699179832047158636505355985281224029199001082126027754578477216654268858995826196997915202421413043772319226038623900440687640622699428884187294931249276640945807055026514074396349830830783181905064103747217137211910177043454852589665619611986714091110932615756743174756124076917184528219290142336148491127951800900892017699766544581891227424665004631471785614354210909146368034600339044641246212713153756784585014730854469232030959649375738309417374760476020401973365437120868993714250722592933493560368290310471968167894446230906613733377701077001899497498878725267294435850835050817917084970899472050715804460167477073799572093023796385672519361011241380136965060804099491510047808350063461276670296136908803834030340061229830765045124255454392211932536195303610672985224811430412111393331144866009119576292250064212762640321715047115839524997491914024803259131247945989897944115644850815575215194088159587418663437950820207182349493429646251903253644536522023394148709723753226084603755029175812932628552567918353973336079433424020199258096403065713518866933415566035401555602437333700592858882137482434365896848551484432382065123657268491076289315645202365301932995802320388127980750594838119332529534465040916074589187225670686933903398355780827832158309852226377178342139800238736103160249464941209499278528767143378189954217218022790682095889862845731867061506166939912078595940971389438329721067245703170023916584654296183112678406372286469472596376617507761153323693167084896206411398303866916073246166384229873311330127546687664028270762896761509774118085774604480018800861570293440232416782156663210209729310764709479171737013477495290114668980119970278796963923465029850634455027376826240584209075903475207926278468351529505370973036262492541902683389931062468398043483078807880756600857204868084796851149234755320210395316648987182184706695184053014124435505025943377233877344673039042433865584035923130011264013702222344034160984668192395804900911784839250447232990651817286840450388271956750105583750744189472808801186029864675144663819499385191631306807878233500229486106960294332676789381819188671315489364336738842051333317159585380740620308576477113177974359020120281831564521742031071281974744934181122676883435956516829141479620631780262078631717403963427131005760097681168497361192999972462572088153712283412931031026597688918200752046701907334304619495292570741255664727900217238279949032392181918868707671885445571349519864584008707391220373849964687714628791552594115417252960999224665743138208620540391356186524670135874965211523295887063684629372507819284008896457594724018453976863047440218835072169556732226182865481975516050873704803308014397892093395131970290799266998474799235954700995417410416371237567919429315831071061168826281436322609931334227378027590468286906623761072725119971469202616015774764635885329025496028362605809889218645369750808680221146528933777215708269652845015114790767887483611875193437336062313479259155647547645338473825079247721645140348040301560511990414930743279909159018105011030948577318958237513634515310085225994397448791626929782572996464903421890707168799464580865593333408070825956088596538553973155338768476834217889889678533306888652434450986665741688826500394510181203913845195518235811157059378395834765359666438680561223062310437196545948585552899782030916197902060471510555987695250173960040235407692066699573635516864890436265662249895228969269210333969862272725300655886960610197749642659472637659794381935661069869399718750155931091806260104106116030961595361076405639482064338220778464004344403368085200529456069183807825155821451319432721635687014765731013198621767025605815139933036921916079616509898150314279960012108761656217414259755506482971416486054050808589307126610978087576082203529091303624105003807829867114889223549750642958132169941221691740546533789536414562003346452956836329230619597067686274273949923632851461557804872359434763223240576779230686004366075631302377003549667646813562399076550760188658929061081542777398440599280583593291031313487079086364397712079661643038035335723134927813011319777986014209629999336322038866446387454698735246871929813963351304580130609248477736037258678820035613707480340147728309384544124704233573083922644097475874065028786646063629133132998764534844834644095070256172400246143512971771276567841742851413378789954680471850282570108747590466588957913594092526072393555610739062186782666617284503656643979253229139565240192322890023407115220631871356053652083979577969901515861587983928682518139036899833755723382441295538040536079179768160477669688808313334668739415721742462443558918677362916930109741269137141884517775745374223824861402021089548165302432245342765376482010337380878924131242561556181581690356151284494112826120577517246324066665568071843803060001050760292040174174670617060816520140637102786073591023415962268805587732087190545431759031188609776971659504073572765351809559659260561625660232010980718506617446046649054257673101287272341146616153262416526712966884539458242869200548520915125918452356973897960174848353020133513717267811772353941835721147209014291869954353904712486071956871648067316931012312513033163589476628124293064629188052060553638665217384566707858182211934824525699862294537662084102737636071979319511725166244054497657903400298874964644752313025927458709788984849087449599829101082643694951446071832565864502828539968469372091772178572183037986263076478608576332511241206602745030697239665499638901766783361296248429612447396436570391127250457198916235503913026932490400375628787034477440726882608666362452572639162559734352087185031142699736726828829834479849694938327319217494151446357038604550772248058486376413317156060306636715564556612882164799566000592072547862046868638858030753311718107556114671334191484150949663814672376061992447401679020076279934837275299958138597377339344641719696406729950658468799507293885149897210195278156503667378301988825304298583117327151998988664018474717995690918623947183578542120431237598265891567725002666104620963097113684123868323322241975737874715238756117631526264511855374188746991416351719586235104180369025696993312516508484600899901084281866834969830408174481644833262796665124882113758400547700307388747924078595867289841809220664868602716248081847121834135682267167741313033482767527673617550034686634098126558234616925825462784170036126481614729621809835139328643809809918293568658499698375715409934811827450780164983192403684660832685325130738155906608454783932292660923422624396525802734590790543682267584816085879494712338694065112697075344055798806959469776869230169434057010687139757631664986888061565431806990677283274635473159297084569231758678002536309609092747311963411009966010590701862229939333385737920072399078811770842433419870282635968583798191595577693927627063049506835517221450020724990780382440244892655539803324582222719910625774681679866560763451868719713765168952648888948735949802495575076254780527497620871243529331846851868791141623540825493867232173136287443134231719303325772227226425873956993212876161587256907401096443682542368490763771893978110738101189309048498471418310385007723858625009258258030135618681637726019430286638479733817084792835134936357535407721650395965493705317197645714759478151297450045550189268509505547928707474148277217522067065535626372209678461335308548807666047200364033327324446029282770778164799534122239867485605990672666159215212024820250248941011799130761371793211625362240355487492923700439194157370494557280977654338923112488425305339841322140674664604432463369974803183341881658311930262268646062293235400146841364830111662444331672948777362996933758064890833549310410243173599515741975666197286538342553986434467997722785311886017232783341385127290790035791963440294511135024613872868183192632693553382696115640586210756438439236014637438035062170180089665875799308946033061198493822814095392245558709345278601427882095892397651318908257324447003898703180514161690193160744492428176903643043557737526483909378608570304432984872599845995110277595237319281882141961021953254534956870386662885293109475561288728449025320009594952284993604763498757125214312055856761143293152492452400255067283887898886262014907145219389947627336583195592855581256302688719347226038139833232350902816926933904889044187983706939211855539687911233333237790734345933832620914990058401320922308814438358570512603913588574019563622530816685852536905809057606258979417308826514763075058354882403626731690577044469513148263332166944503527347356445842645251417572038322563075353297589278908429319995949977697869990837899448754104066759469264495062075490195461494897240358164789898894149260549260983814579525921901666220576505785415368475209717090542306909299293798433646625397186526316491775856740183410715011141719882648016970706697040168450254375367900606838960528887170013855379091392552317785067378942958568125522332202188205297414088752388701670994416555421403781859386715721351538817368528429126946695067296787499209394384480980057264773457648896241160169434724809809733917868809273426570550817819383863080640792350466449639812231053427811894325849230038092290521218807913583479390362727272152636078687035617367163715975401676647655612790404559917805082888369083527776085190515491935742262779708303065699085666697363300038744409550586125310901388332068393159485849473024708006845554698529468548803750855036870617449078586475970022011196342656514208377985298951339566915805326389348803407870635457444430016001687938738231979013061589186448631152959124669250158863114543262149229315876495263008112704302511294037604926596238199925369738887721528235768933634484129699682777949701955669422948604200128091157268157617993883702209177898252714007295331457295751591446840226142619407837453386391730030414401593912934357321405128972335293089998343285274229955193500978603027943852956982115920337672662551141775098525409054830188454567984265911910897962219473568364376673902877033665671861715738213826255053043509600812410813593176052374089746653219000309265241813260831371472139877702377566482183309529830212680903438620766296359667821503085671976031529928653127643773108362582530512912919030274806998740479478325368941753809346509706126056347073504380489746816458835037846486004753465601773770046156038859990896308207432392952457017187043148583690854565594033576148457440201774199183429305542715762389820423045998779293951873286217640898568173057639872496297180515024427292736456786951340365747808748883240148965859210500847634687572242137271264106962157470727973072057735379290670712787321914836336603924757590542787923685201825297589145877770623614483155463891876563522501659426170826699357146771902437509569627128098728729357818866835722581390903934304715488520020052524379294543661329058944004739887865602246614488018834539656085065561356188637529117666019579008349831339919232428674276106843537487679830722363287431660370012806204120867122904427653976362734022680763648230304655426497381083547679560374675343491208043340689265599927263937948228877041366426630449831121045540057443674713962609835192647267981755951234430737867877398359639729473841556922021586522850044347826098607426868324781611909808610541067054579010308952666758913529167506828853319764909421700499380615322809529779162076663555957669579172553233528506314289786853918494664459333893874259584759018380367901757284061495274063369940307901299881077148296040916495486972727305516725849509034424383569686503657240000038346833015264222244289779977430060178719048979059329043826867773734658926754245532729631267566929128658878732227962261150452583162159067084324791212501869401101054765394361834992902113260695250613461325622884545096013427137448712119543099213818728620027716022752482596115067636936092809409703012917226604394113550116206043954146883588837910770159549616332980670369356244048606334198268536397334682722609023242629871131853108936576939746654624372188953421250709394800445537783731816729092356949449468856395585694373783318363308202859493804594982775954489199650555987182642897124682611897345196529613248898146821978673863379492108564782702091891770161481203919831684047270578681448849391735148532996929840738701901662711981336720926173940982047492388767180643266143572488933348258795125187053200550064281594587603177381952299183711355799477128096446366998479664766803809625758071778359267349796737657409368470995517877198246599006684087350963035468675391508800347329732412572710285004988637193368431082046261802628113062726497053690184410737828210695944126334895911885870377541289678212262776823957132639658261728995950444845134801898649951123374404252227964343661941144333180072420027159883552042292322104295154315703910962885349748007564187324597732461069863266042458714849467568977762414476037646820178615930000248601948099316786639382812778441537395933453652225150003530977538103157994906585390888129459320466536970424308218555954046438894081872867469536492831478591374743721951403635099480372164460006311877403644724977064651389889958840694131295067939169275293373029829378930577803068249891193263259974721788957182796476787928899062724619337706517183711891050514534330262084086434393628744242506319204764296244421984079313475993989264390420525765573001801381033965879983864680986137599827640512191617145150545563698182309081028049222884059794890657998132891762326575340191336597922806256607819245366557263388619067242185223678613049848043956881342497587149423222807869998049155095339325927568734154539935384709908545568391992144595561351034741422397202891325528439843954854758251057051158321355879923935263609833586442897964325960783927040794651365720818332753173691484738522244331926357597481242135009221704464937289193790216699760486596975782480389504461646941017561642335827202390547113809067002811731978282357866689477000941460638268090731400163839562950065568354172977806489309972940934973832572667077327525891056112346712724288741136664524111827450121782937627474143589190929111348846848021578929657190607128576480158243938162848534968390201502624966576099597647462544287817696161168803150047945487287484164691226217992663636930355466993679257064653958971595538154168238123084714035754250796595668092990049613933060206675683566861079762121504105076684105985325602769273999107882809545554667106452275484895357160600393900838304282079960434218131196590720482273324051482736494489453522402931428169943462642706549515913591626902764309080176828375595344150272707932793019364434595187418299007425505341418048427144732830729213524354936209933183574034083823700123208066647158768734430559519217465173016285631949868898595415852204386729995223144375159043758354249280036766593767349102761300894693110633750305261657941890974436439243904273848893948652545473562341330432607093140460470953756818190196190420579811824514098760173174936755467485751366979348345712241385843173286051127393849024419768709155244373322881090418722826834633784921983323974090262098890114820183157326529167132912025347463449838981749329232120402899514696667384981673115204218350589442119405143664871678961056678001887377824255453211736609398340443211404332477276255767532406660250209636413956826280898598139133934760628918967350672183052726080061998350327926469472458439906896928792606905065242306179199997308435958273141865225922827641127857302788512698974991874214688042715612426054426169884706817988633151376051844550096946478992276713967134656121834050842404780508742552230996411763532196441361433687102889948703855919550877203948932397490671659971949675089891147979053605580521040486436978213776134916565473327454984880789166079803372302255656937425583669848160886359906175282459907680193876986345988872797872676254736797729284253416666879940098477776620297765693299027426028138063431098550139779747443142868639797099494991551031030714527859246977883809823448557325679371530436391669181575991171599469661696113762373324863347512025338725357440129434567965194509226601984039193448868869099097542771876836500119186597018956517024751019307488710508582199834196873078733572502187571883057312292244076904761314362997261649098119630423808824599993510859082432246051421848795526100128155772647952568667779810864186535935309768656778953996149128221569142257290460864560088532973167401303111996735098753755309097952853941781130835867346594695684995114174411391377523943075916534707422345026137071348887960547306590557007718786525225407425885508641366605532810757690703551816255677695138889166579804698545488806878611609905730223393979094421970841828788696454288265822430114560185502581657081730302987487008952948147830028234235355392481303647973660089215344985834975698202404050521255274411014139691377252428831861398010259483980450375157419861455423050113593120308341365801849761006873416096468593009688197390547611255074056262745058915267123348719801421182669174209916921210709027952802639984374781643290407390955701479558887155326010750274110992434919817470388747075056503006977266211530091193503339215419993975396258813689951371618502469729263411318220889434389167825596077943716239606928532918054930366238056477567922101554545516163827201216104150672174181626161085051892699797925768085442458892883923767532205739548130665617934250045362100737565237853692703191159675137731365179111395068586731173848141169862792884152458217570574084340430442681258837148165621381091208743588224672317023461892633743579291231455884420906383586152593234783982942490071803879914877774152006614392136674337174535171122434353010764600362645896336674408229984665760403104111421353243273267955262126957132401366052684750709123042781375726349773268594477681536128218893807372700698149564360771546791947642742975509770528671812749957249827590883968574780733224632661423145685197710298889520536415884994245102250137158303321824537716965160193038896444951945411459223319050140378924848197377371044770360460835556480498151252911395559328442008666434537585453215752343415967705528046710334717116822338167809121959768756944159570745373690257248908988197760959474087514931837272093695006787780092691247055387269082854792925657776949129400645540424249985844275009014484815843099154115695009402985740899598281230239158978985606454045121780849332543216010794791974643475797916827993519108838130031743298874683289070546698736964531029543957809384077115538486705566122167107862232859157997867536523692942668375127325995852910212562082606381481061885284128683851602397374082440462985053936267859575433999704813215968159927710070397412456564631879353263613149030829677118887199562880303836708077602535947916230145773259459534105967815553791429711255229715417189509897593602960789610086684175525444414935911611639730676111113703929088101449743866406731471117549486995134429086045843442218079051430278711826258515423737568901628085419129060942425425379416491240996610200516963622054971635951254617525432829821653601319354366851973382434150495632008220776552471868939783568654665460412854747982079066668158759499356988212623043889557244277697012288379453379284113842702163788958646118533978087757976787060984447414471906556695128494697690089840937188868570412379856145206759889445648659506349723670664489105656598984473071757451750602540552513252635987451651247670633186780445768979243687511995805228877906430456148918376365225138914608102685948253028311355503521305454474216389449635957916869971852463035840475052154429128787662224725566128904800783821560027887211914225663052263677838200912929169121660436010847011733335928844694545665299523145999832760449197939456111618268074848211378958512345671872577733242677337271343410894291200681045399112181668906481770478339327770254817300043920797530217948913500216020953542515878737475746869881264748385152629344215479228206830225347742347176857552022408503090157278135879003317735560215450747217262582278688618398982907326370217552464581860129878248808105824541835396040931616127723027713607466172824780747034390717484589347357252483904392900485576343379830025384727278168683617356168168335663188505320965517038436283352707091919693790085394695929264181306029660450164986845673262070578492607007966081976834365395554938958977268847525582386619667868814397804736656238345804358249364410496151813965208743326314240863457301172245813677198366792726833278541367859354049084273323123963428757457184312897123624460604503630438793855669788297992133421964980944702730578106070835752708876970868010218335639859045850535151424148782715602643622444470650397111963362377524170956001798275551895324762695316747570011413362834103975385542946844717489949891941139535864470949870267804809453981192679597259533761648782664427610541884912399882407342070224602962333137411703025442804371790861280837774274094081900270762228763135082827444326558180206552946150649875258516488252112856651588594619612356812022257187504505461312965527764579062329328086433595309996927747161126244046586909310676879201760356539651553421150074749570639279588859580375023532834548519646537012531237704136152970003495031488129662098459139649695857053103809665249768864352148318461886569314664309650227753701351113757058472674058240600316915201449336435185867217685645766821278206155798984144337827696494938313463422137259798959172261277028979125884256960378315489716083902141065540582632972239253757046444469110700268018875363799344648711529898700732158362935774926885709091395082479402938945577604176897029657667969126791497705582259080729055525390533706670368786950765587497853999668318153364767840268498048997808431716279623161073806438591420395330393521707816539027991327875556867059410198391102703373654614591995517226662030899949931898771888836435303498560542836407553648938670055996195108658109093308527243879438179159453933632700282438877248960232965108676012873208321084766350364707642605463371693436074258591699932540724501565697275825277562893435062654084932751242323719361432126937759030538297335931662347701709070209638676401839530703298502327763989370531615063452649812263863910216573525332344107779877464012447243216648572691807146884745038692354444730491890875646672385808055688943320643288185241576177383249108241174721077520592363388268125771962977413412366968370626732122119135332564925284406239868317271705906795646161387204397303874570367681036683505996411005402694522552725194283285805986250917418631126450164321907253127401267711395102435998178230887343408481906953288632699578398146543040146809336493586494408909786923905352478657575344217393641272163706226646842934492201872402339608994249765075064407256444641146449960843044060249915781825479569866324350090834140156561937722567785608634650397021756437448625168634498450316880155889508054757448608542301965116752275512475066946676191102815982082272085947184907182121039044335368291957592968925515726332892106266389645497420577116919925171327016151650491446665784912519022064881677562562555300723129837424566424978905346377165853497180775272433808585091437449474186263738620847635260150396892441576086630128677479126782455850355316077551581556600960319471292022996718692392874553554943701605434407071414692427469315578395027032971898782688184232998994684887613178297489282436050211722496562626230739096823873099973254739315076437307017088180169027708342065022467336120464417928369898659553574719614395490620612112347201587521235061903928618920033054073479261505777241902011471404739658340181464039567216131821587534090381858986573865005295906886656701545443189708868304800239842170453504070752007489860534272579177519843441711439090047624076058715138129451103855042772504232624881348841741807658917282707276634657927893728761117772470952152855253074702817767568956444020455115349227381381110349802647516426168195099708644104013942049310240541405965681528218097297172033448321583183779311917136649712834155353797859582562405283725919932665654094103578742170972051350897025464417650107040014146414688755981797113274442508924570496049658572614198243149345733108828889190724592840439053325321434762063325451085829289928438323652198584169430320376657699795784915729698496550846974460453127194365561122418688311574317619058536168093148609452262094194981133150971773552044371649305972228032807163547002028245725176424862638343264158633759266996772800352494726319775822667387416226366776456536015535701870277445267709526367492398738897893470459148236455881801575977472960195442650656489799937493506966295260646836769962184234814640250237025771414641565936642626124943672890899857605529224655124996354021548264759410773513951497863098718788371852037695381660031121987901019502303772380693329841892458446037852331880573678477820970358968814269077798495055371502497591435981259917575264486268138424784241007275916830021140708840987487677974789199408307432500415208474522470769833795362616681770260011454502856619010954848698709496077393100428459720564834952112608299697456577519492136959156363864750087931122809641586728053534158939899663554446476979454643565358043975896393384973882782152284986941203792399617002345720202517347137521201449731770040009054221685795127309452395753173586463404972119427019962843159318505328482513024843337632380856210778517803483549682782740117362751901685469393443104638882280160318576521714297688278673049277320882818577018009361577199897166915416731940202286574151718398760915920646088689656683218335513868924941021810113683522214323608145319606724532520762574880093209484045664212404447532270498898976824017282386914470501869980591422070368920870083014001461837746826969323060468356821373762711286391018749372243754579669776610211012337432705619607957441038252693131332820176510159705648421373544654031348170367031532026999568198473055348165410485388790196039172982263358506259702399667603462602255784927767561882968661275440227053100275311267623285847689056513574280916182361397362700397298129951784989750619457417298201445378080653167315722442580258136709172237527164769137334751260857679287243927076717230598516630260945155509791450687239384073504663119932399708735547620504883687698766997527811606742997492086663423417623008654341935667645402006611593243707272586802537997661874746527991636092709480151775606268330094538194818645731368523954813897755943117145512650179226337383011367479659005905210312242275230864312977302185763038249765675453807876930895106650282702214237089439175744826321915744398869756620427504343901870729768706585618028006728885724523808344448918043208473351439997054164836077759312466724649193762127371121189063478373676137171287366692021060830621557733177222737884610107903693409267422632321841846342556434050369392148733186369265961841619361404025034808343805057359676508123667446820392101280800132546875713881309853763776803967441219974699910715083124759426069889295756359751100945871304057767792955652993995819263958172273100029208467793064396953086461992680537783183311626371458623180280792017565776334222391182013562011207828170090433057577231275885046806620357456982818562735212334471264622643413281607645114853751126163171116371924439043542128577399815654729687042949937803608960692871334830965801699334375130617419008312689934299981336041957899545047516840544613995916616826659706784356789275144940296468785133178957506092862276031554655577844558522305538250544086614120078831649551723698949453876415305084937126004034659523633570403321319740547249512569628588243742682020458570762825316312999380921841695664343623343025868441622304779541154574449237651023390679164281330740182964062311485879098087488931231928405355752896669158157650384600308868612307142378845618281752200328188978925401006622311458565799327593228992122061417198394949131462058053520521963551428106973162650621229406736883538112519317544109333079507506210159174586150525889990850480634321509415693073294063467698240775478328419538490470953971970425858486032351601692931920378064999003990847040320846189292529274719866043847221480301568050366115749319219630130558818306516440384750242476982567704794346918584630909034164212840951228390702150037164976247601098863315076119105990732267781549942352266274143517376944819641807405084479072830928505250584439410562901374967273882952445821457602047483771103391310152476492430182840000763955308310720654087892583489500519429988249400726047796547191820618533778846443008560930998191173374620726204936050379103445010432422206355113664651500712168864478176519622153105907273113004691690674010157876553348864612525268541650561976113856384039699512255160327574476676943171198691119537103728288437996463411292394731942780283125149373032541579518725453165593742862958460025015865733925441023328678356736702891793544075490481203435053191837325052389643715084363194493650994278366038287100671438093496086595560560961251501435467880288054362075455854319326687416579598759273788346817923716782377769184037268102316554521240178399535296285538424232747368055652432754534376283149918692533854898574835511073472386606579790092993545237370058441464576860757904472621510992103273773705518202437610734628038905247843436267357068015378325836137272232546464862223904973642598608181624540083796247939870485725107553773768891376929656397525312496053424761911567362577311965506903912987005403776118187583929111645927918792093146599760648589161586492065951613058217353002596916425083928389756271209230444325482084639406866274783110259538064785843410336723763705355987314445170677603109968485707899294674066157849928496458464869974539013298961990655762714396053201931671631608046040744255370588161033258696944490060995432016815965061066792734100384698128145737575957035570335378550793061056356874745329446360647274440676494902112781516746689427259340620491467364727766648112005242582052098333409560861585421595150902576761546784966586395101241289658371666614783622310807538019227390416051733069357513717351127279646616720123895397172619359236086823252565510014368114008418570818899207660649725584952778105532120894705297000993100756117351518795454754774574562222270365067302664184854807691597667271677023859746034451220834278573007177700628517561930883578431989711709966855669128972827819611629891078569727792385159184142213335243642666719291579233986903025180051448861740693185604011671003586914390723731621987755504385543310537338573028020890742768730949780908995778963759196650243056441438707775580845628599387696413938848330805680716894402629275700180725482065269618255190641065732383240747238906923950610559013321069153121895646956659339292737742126234493003653140746866930040837172460518374063051006409547454735054656454446965792251828596824535728053676936281474193124622025218177396388536764655762885123409615367261677866049944386936422620773092549924497664619182971899685444680169850689100530402464661933804659862699160172410441777127285339618336171741179972742201808494428375057643509779645714936684040004205458437982803644550456308090979628123956859325004800732945985915727244906160546927172950734234060989487582477978988588383550384234980280039186062112214741392976348418044171183169157223606377617901720687267123707060611426536081985592960893903373316973602472270990976856795779873531922583907333911949454916116709131045708639193694032967407112076922558074314837425308126664963276705641286806113126125730871372895692940789775663072609717171536110368430576499606284915893372126026322178697525576335938651212756238855515408969714202742450111547225262534752859929455368436292654402172042487502356956256831563238361958185860189182510277141204267101784952522664134886925691322038717475316827852428381363815941156649306384366463251953577720084198623435298079329718484198191067791155915355508014782231556220861067404901085205274134181094927160227947928022248540001331321335923926452755533527145481146934946424282089400180496912315245051360149840718710209397275583062038626089994853083612028989799610179736142918145982631091604778740340781062825345873912161944234558654866216117575601055668501630510988776311704002187866905961902441222541547171632885573231797745325984849481891466897070048727351892932686631280428124884098221119147215060065272300431544436573124674498073426487843267071349875676692713417303085346735389228126527170017876500826693193765603223318507698832641514548778704721785112156289273056011192310001633930877384130098232915755057457705444448017722887213959723091495507982810823372130189687417020366190381281700084489605398103640580026245216567834276211226612893008719747400278210148979726881816033860065171331801898663093380887727096532355706407945691705223035148093978764947250296789152997608933335716317536947476052373575605691967268635198648377031644822423310022434048902262189058030633567029694140641719507063671835531835206326416325957394146972608735420426911605116722917699854368910681986672120617742058909497042380469304414593465662885987154278216251187135209179809616418117875419115611059725591756479706097460932858373005062051155163345354456850770331170549367916600916701942083930585688303587248616777455809411512234083795234960397540325941494276207367377204398562638147975998795143882108817318361590669186401093781938913287764559891553339631586897512032260873346532532185764034849386553053179595567549401322809444505657896586082731856440168310126397235163030611098567143484853742293893112783043401217885051232607497143240777020791647657742875178745184611542237601815242472430318483471661561018689249444389785770752211129462208278993876907358114027948486871754565665113252232799691707755667472540340126477579870149228718811470936516468239308460655729308773920191630489522781909177670089780895351208007545785799405913516692587048827252962926636515733922397323946511240882842042348521115628662193602382379222915036482967739990728582872772457335479617090554447965608763216502898234893728368812627879115674759917316340704542484001831682431218894152022318867945826122390231964381508545607811299960628497174219576066238640373402408007022472820991985615952330397598554675602248054797642986447247641118157635824799349029278550971083730859995768520320653803099425971159706636043844507679102182979913919929691333786857930788965418456355734802968084112630233157318631014115236981042731691703870045184594584225747178729931490570726333523806489454911813448565791128536454059177126875033224661704915218024640804966679891985876848957897596293337634753550195798302385302615795243046344477529408536116997922197454487427938526083397212922952542718371511036650215239686046670120597926038904253225507632735973812315249967538618102146499871205005960463868997034488649782429087585363920352564485899153529460290719985248935626591777754738690853407333535600600929556271250201924867808063521646951871900397899121817505206538155676827448645627321629457949360710186663045990704557091996606200362153233378833907105093585139459187876980309941601539212061552342050120694170159388216349843442571484498980657389192081449887804981086846601455019585847099117087152207376869618961958150746541385362013718425439676560650528468033508876591547644056893311688559662060766326438804468543177964799570042684700221453316366522563453694723397685159493413236850156644542024362462254808647363450736597752270440847964326033400251148102654161577330005012621275281738479520382472308646196250463610258504864500405479439586353058520603468371095850075385572509101635586925014827040108655732455971584023911999330146154625842274355966892749646740178292778529688111752844097627732825274309595274478306130243525593004177888356851604268426136581760680527542625644344601122538276751072212950670641850741392445657004175911437891950585592130774668236924327096904471324596610173507531942839547184575372209423466347549999797010169944285672685990168922131685214465023407663490186142188417022850062048238058373635195007543934185987944004543529668935703327718123072577813501646154027523199042064141749746298620038189101812209372828436580139257757857093363158531146603903404115387355699501157055198278955134538411889773531179063946457182725917314273579901363646709097478710999975310951994149513950319612728017069007714101247971377534476832088928242748295528987905043948266050153458564707797290767255315609863972407097787169753737605234922506617105645839227468970709230494752099586379182542174367467604490462401908545981302544795971941480574832126150398641727748067516431557789625592705607563506783829385030373723381554509196578443190320762591619323422823395585546355528890411374072104892159313939116675784311316032788450444117440404939460658424130957777839544861914871357210874896220622638125653395825073602889823426902905081365686130652581023609519514753492649495724925495064518967249631742570409406929749206360114625262067404003060878671379800057243867694948040195377107510435415001990263980573265564994477564946068383500011821004994699312249109855252427957232810158171975736479809888716730135430103402364314738015357417734635667521755457426065314543738856181075433271299646413142818959316725723457248683734145271571274501376801472564506369444047473181050379426775215283024467096007055088376053191114838052142938965308158463974711569454827278035349614923370579319483919588696124951588667693486855601167757394193325855145982167667411480286659126723258282359028258527738210885362199286074027701132547976884131459424077489534058542765576582226046670207611081238595232786262881469088733981552802287518676001701093651035716411220049478884689678461008193331100935650891997360051904304204234629062330052078687836672393712653361720580021726895085200310107898844808889945234595441475036432741431121825598353817512910397321648166045165571876170819715800372127235159953271176986139518168821215354931448199744075711414414898146689320545541121414713545451459229665999741642792604812565923586923140754007706222563361052176029694670751516738825869001182266701983987361326283910289592995296118650343694207792151807781798219634642813677917894709045832708733092708845136562584718033091387371462354443345174652575180874324666371731790603492925471002380054742013875860499151782316159638510440165459927153772505808309361854526425977728365249139028434558751597290178899612096394579214613071684960803139727158853016944496474694928604509311150991000475625451815432091022237675398361184895894210801977173325501983108754860969519966121561498921359194640181621089371782766671909121011844991708312695757795092491583033705219341844592993061810964924770970866037044814803863273455663966157072633092675610430042435973338218851022107947238565839669428669095141048905843592736029806464519632301843269638662040189074780297948966954048951145861165939405902414603537302205106270452828710505197991774431597192941447351426833493706544501526910932978476879203781761428801675360170538244721056364670212602782374468850490589349651074920875145746379574376625651044265837833893783294797600732572189945632071775753823574702883935821341002506679967527898943998025369280283844689404616872138686311066098374895330527703699420065710664447176026092905654251689889824497227807416226931364323623844993963405591017983385830124261852552974935211501550871624885057355054010530682650820413293768907465577131673435378947974870613502073358144373959478780676056053181618751196540957199105199934261668297770290643639493359029849523420146753623917253822203022457403114780001748923277272299253518341537404959341539147892049497884270663986277159209312449234540136317190318070073264088089838356083254418421258398099638712488711617479568782745993243359121216307996138165490678706264683984813628863743277767088473801113406858159938933381722145273295990188636379777086039210854950970532795498884249669913524894067571532423310423274473171941933061240614742563260036412425752890722062593294777360906207637309439665855049399326411686608653331780134782804220517803323866057819758548505226491073146606622719148451152132946166583493548266316527801616569281733848308137678107727430378725879759447708499589222457749973294192376933795770317385646155368016303638765564685375711100758773401813999199129271874893589612971166886414294933425788256637448654265336971384143250824200409102189892666073320713060184362422167161900489164345282209933704415532343629083250226367651112480774550012940705965613223419415797563463777817959192145785359369189487828913650088669253020991304783229082422672690387412551508299501546848113238018186109910867848308951023896423965579379807690751357780675427137954976098160070809633974608582831707651380324396941657834247479681736261849284879011469527485201797718582451531854672964319028012936525834949503543132556631160508714754945165897548913395230007136944531054824807865127582637515830123272966570008106639039762048996570992304277580307757005339369814324548156350797330378703873689409328908771197530572847739426632807000917250449154575120379325654109142083164521442479816148141050490660705623145410491528799372361388276199839369753458187376787927070892232213059052914187649780114301713328980681378166067651297803687758106596134232549944209203608707751175046878520581639600449321182554803182820445191995191090036757636906173626299803634592006504728702279244046193830732203215226440302718660902535581711188016952697877229588230104186351737235102479482459636323929358601565138953131753675316876578230444687600353245802400641297636037067468284673247081348657298207334605434037386263882097201430725346732027939150564635479508282947530734081014083181104312944967067074160353089080630369811128703246753430835363443262909405802297684597578618132472202617851253167301697146234043241606752658706205483720839562847285708451934281016041420230654722655035293244474342014683325049389059330300252780043172119239269542829003150635823599031879212805091850455723144492307400058813057719789424262027756925613550300706594855219763380331380494722138893439319484718290376049181554561668088577820201176887501858072723491997574038928607984242234770798847331859666403264934591701175540225533624173753642484998754987312571299495743342685602063860105890638899585897230089566779423029872276083537085792975186296703146653086149828559929119994960405597891741558212082452404812269136881053057721021172676251538751168172653067351108436458691592689309139239471415141165032624567688068139003321962473070091515349727847994995836447051879142509250358322992972336980408514033505715123656744431981850025252824570122582852758881213597279482217947190644430780256708117652619787200779640975106572870950452915056153247814931252565714442417975774714940844087547801683545307449253798925383144201362198473853430247221154662063298740134532082103269853520389113936954228074210960451060393016828327508556886284671804473213585216981166343273307009298523011669731793451048766488169952869455359170441190621761738639523547035185475445993102481337719768774551497353050767094421767486781929067031449817847217809000257312152466401439835816826098916543696777875284601613821477678523371653543464713896202835151281025688483403507744251183184316090857103566961424131606925425005775493315166908063611986580828404893000762210247308008585578236971973578839476671424273921125502755777194931787393371093017835123535125879041495255039790278981559797351467455800899945691108990517563607103217846951766488715210702547113510309522555751600864554300168950512996366202599498856505822593074177321419145235465331006303795827034353334284273276860435576307387136390518303235558829362553682022984932802553609936745384899740138223807506062309940712550578496246666460959427965362026446711293228454610897832886516803922778393458494148948036896957700267561617730234600465185243699086674630606408187021985233091061301010563019587325662988739345153197847779861169233858922407188733257483063911167223494483381630187717360179299505352632472234976928832572139817436857589383364516715918679938920097678692386264841128796409993718473643620350774181208083343982032497969184859603081012140807559969657641693267428948864533108045988504201133570679863194757814549711865594413249157565580891726301129366270481524992074272346031161678599715655411027940136043953909965862227653273445952158827299486296708150501752003822577893288879330962886787227595840627219608992717333865861878146440241769412619052520590749536377249349739012592506834794160440849356197040762910354194377959927589972862720356593891594703440373948884676051311943277631842288266513697420821209886662884358843561529765778215474883705269474947662052052657860621955779507019087165469691576925581181558156697854139463898486772983904497049484722187591326235368520185932368436111614199941585487814008281496671981230425774037978738943906574237734140563780919037804287857909419156438208161551387172599209971356271219716839371681908007922094487220938384507933347891793202174795068850799780392892555943257034826354294675390004842685620447633174738766860787844444822433665823964308672890213767677465832891537251891766230711657101264415883059381354699025428409924143326726183068953251708633232854477176779069611364683950485636530021514808342278471766082460176566927919693540226175332149834708755150377041520437305504101162646300069906017107104141630630484836750340511381842894678701723241425344720712630853781403877266459684498380222284257934717866226415517232406535592321611410074571157800966779914499625202307891677226216402793174542874089363316148968702930188681935484130865743677929130314554383934215262962677571403237865635071272020002504357830872924780318863283697096056301124535819371491845891733511181584783940719049093179349779524251068079762769416912866628046649735569837545593706824436803723888630253122325936422647142185632632006812931767105993519395271335496877633765913804108853230324275637743210922013263926410678950191349907098439944258062349916213907250810892963372907186580929035806437310099147084130045028752022509564633837668687873773372027570523038395851166344118006528827160313438428305990894812955758107461486102870404365385752624537838118747683967491122068814061945745011222665716359527920656637869752003623538864798851500289258685861760279881907456242885963533735038964087514321634831559752842782506174541023117249072840626731932405817386278068572552813742193915321068100066677457651534714098110052222209063127238190985689624481547441213899925729768147232326208041801233576581265948434056748796063077191094867898058810352443098111733176524901344603304813497598624283595343962789400081814778174133452247669795957518615640504429612082516245141671956731920115269544739999871616846791431969163998604250757650774789650489387268281326503023274913712707012100089924929182282413267108861721928725325371387817712915802977323680703023153750754849730209457514758024362273551429004778364420106210618364582351028346332383406233473586388209518471728042791687226749200502075484609769878526644729317438663188880623570862867755981819289437755884752528689981622098289128211495740520357229757906385621529144948639126597092834778418885354806303597018757641661397945014523087482440369997096518285481476916881825514695612421147621372712059501390133298397464239499589596669106819984304615577675712174862487754805231168247109924950356907894156152386873084290692414458451115213469266528947895320995320812408328975426052269394798212426129658781708148935932550484477554039414420206741632403930213594852987215933077909905123893365436352414845923952910166525451709882581504041743923178951680446453559441041481969953917011712384926706843065071028514192970559959658550017628326036915753959810943056063929227850230607689385222580318204098648162848103488526979100388285312199675697109056395148472504519417294913880782443698110055300113095496583018853865985019065287518202443839519536472015773671759388609097335190839039420121001671737147036173734886049117133352186711938798802647117980708080974275488141545348964349477779318717272575204716456195742603400587629316971654053600128511987129507286815006897659832174855919209040953119139536008358076666623159068840799273930958749602982300437878876854102938539014692208793466572197689262575666813200301915072856005412366863032282039950540584434611347342750898609829507570902843865782854531808762348560134626537805923026950171408226670856235870268551519883017546756323848676724641883400280890901376745688757325333863254249470866421598563495009661007915058594683389633690365934936917089985338397480341458869330413127183270635846325606280758401021663726913793432184435943959218123860168794225367857395221666434104327922813331141012524442350790744930547621702943660528174450289258229591508680595114934836025927366639920304848202447216674439489451866666726909205664498594436659911737641952714007328960057726171346325778142672730790754617948492547780297301444964957133570330661964244545225164713130123342626783156493351883175739766765369991179347611288834834554525020056955038640206323501608890835882277464639330476939788752536230076462732018317148038925849394913795929663216666687343408317798316501890191994176797815019315905761538838283609698179653366458424658926439727134041724349812299593107937314710398036623129082307203841701082444600507630826233650069969599448149584386424345804413737381313818362114205801316499784653284150693364092504685280324635493039165359274698293421712251784009378331941899803564967613810006666917137929125020130538869304893789024203737835697491537474049465974847164244139889325880222978619609987467168582912449859350096215208849835628319430153711370976537336018601510114581366902944046413470536158822702547102152399627206532924778675663200515756524200882750417544359699472140958914572883297485729816380430172978968721198874840429577452520999580060620756147809065279741071336671681714577371268674924658451179901036039278264777240562932602845402474085728743274147082630327947617159138335458631979866974436470875402866182241762694432664041078411557572451076125505606970109738556966902936215860129196926549190326241130877034870245550978349858808935660194163660560132322062484039392155246509342656368807652205952159132990260971939075789959140371890893763628178738899128834387331467566013409378614643215285315208236192937545650282492995138897067677099894161735987722864720075634265583037556693514500304943156962237130677164637346589902744349850562795774805307254101315160100236451691473870578272808974628285663110585984180465586109019100807965857076800529061989321980214046780062166687946458346825928145186282699811607221321936803569895804255579089806751178072367097814375384964878149450170493666482257608775155640599530224501940928188288245276868912788464708031959412829201171491149169250938699114033515134347375193922925766217955644688586019921570876224695080350759796859619441896001306449316759316851898086243549998191972783365215339996835525682034251026749759186171723692008168568275351371591939981630728124405291003283663454728098749158755024795294607742061810395058911761704479977918703812824162655338170945620729299078459051691492293649956525753385419901440568681771878898403363023458581062005269876322090909265857383385760232369381573720529781412767469095326287098358903458790723452166480275542119201780871392764949824375482638921579025273565844955686113922385113008784454947925594643502704249650211134592054929429807540382205818021979460165596253583813502800248059331910239062493461398884826776247976528052000447134483296723722375728370558002950022693269419946778567806036530278650854847020471682981667401074759656923401722926899445204284780725961838618783867372766137314217620827588000776814615347169191325210824632430138845756883348576333615695066671368251164688290679808292440194167941929335871612768374734412985854922408888186176703735810439970451411381249808546096824244343792954932871875703120707921362695880309777575825157404215639306023752472338093298576224979990199674647513438953598006205235535039322889098739368515402923693348249455564267921602824649026695972206875620463072319923414747699987223304478943973288831105867017402204875620175863750120236635245647186434165247015962919670283516189534941634553520309973296468850284785394943503358123876271326582725879606727908866207604018879885694348481586554251268625224901444844939463186063088150541495097669964032396278029422923628128789978392727674382519024501511305529326598207196568783204085179323606164848902681192266655215221312326988970209645620108795575780143125094505251435817649338818825684410102126230061956394583463674463039602616252564365142930329406841017690203163633591447045239382571800710932481486460652725159533248090878425899035728560348769090632574337492802769087983807653297667142739505781067631805515849452793044040319027437086557934599935291752778944375777864536482339447141856712574689536102671721032694148674221127567231258855470066542373140711936407284087547338467872727833428445106742565189068113044517156733219577183961601048355728229631417677838321850778684260750161813613295288998841019745246430568038101420723863027746114413791818349609131966758282132019273486001371136172493447612016819264973687659833279792175262947872916287533235609024250672112649254125997122520306360336172760625583288145682858493640262153725806163316552694086358709357058372946891944757782218213462828263428788930836287937481900440678469648351987872292849719129487118901596062083910953969401413368779886291544508532984666185321198861683138748460630318314252222952685232978405544202021778545909915661991784066153692629508664021514852687811387448538471842217217659417149888305075953114498240330538234894724319068622170854681049530789688667774528273504581623126790938849879973921137256787381914494552616295750913976846884209133440755886105230208179415853879125260635215138842720248451541092876030577532058852978015735386618826458056382382359679344756473288729016235077670139947654569758091260848450988817981370745828365566400151834859217934825439911997149555959105269466328862876687217569445797765722789510042666811037399281152258420418019848981409618233141112477011859682602087033972834752386722286708677505632388797544651979477738662704280389906175566539168416939434131640466474888962757146287317652029697859234417828876378164829055515804805684130363367774619872140017473507031551325150654088740463149139376170595679080621570787517865198360034265011351958991157002858687881445685363492008995708446113252559247987173797055515738932394844254993066210094619110472211605636420659065168646062419850574845484671200229653565250330358205705662829633567184770565947018199715691085667564251093280849002960108573286088082884806171293885693656189382205213899858184203672594041376840571689630206306642493627486203177030649065078815906930746539357309526685238116168184724776324367569109788696332878220292947242151078674550423936019539725551960178523062804008175539268929984125645592422657851495428079065252450186735130848934742263224459028679093761115154279432091720539634919584591836818589471894411994899027489857448133483534197012837772606151986359022160195236487892922323879568680225350388077151182849981952201142246137634477271992009667258862080870930427400396327399090994191550342804407481287341818577523393777491495221013135967779075546176438350701835029708846051644039665407540243864323684436549352331725670370949277721793071034139202857696722437444636079353182062465278175245246903980142080003327423142718466414893273696984378520709620910912693899456649865576463963235702248753904143745981838509830642733338400231424115175953483436240338628583520236686277299747849860194107181856343121801566726145486690354378468256901691446949385743534335596251869325176401263844468156610026522468918914997654766213229801537330540338199350071689207065619906908733609736730192864025341867551127699532562470386479947687706678670010614960344826013401566477825550460921903320116406426655012609001237050762402256142932413081322813452208527691140027659109705211819172091800116791899946042885420511296543456965064508712919420844028698856987933559692173385269219810093677228988329269431982051657561691560803521125374507067958405471365674277890130157135813374892494268663031905643549065892849017707859044607101665659530592045445585835288490508997695194455644923673151552575365750488544502112140540580798140095546595955105732245054028065750317260101531268125318775803570388512961318928539186986952359162598962382422406360625065209504966004341363377026961035207666725479116041331664324186329733648574363261882975495787848290359839419813937263367132695011161897289737992979334536652890284854131102313602098866834285818863610530151638088290155221356925652111026794379682487605072823293241810933985092327545275854611558375905810761551288131578673211244182375385049770455062030289575974880451488470760899362293504546112704617675138570489234242257273755308125450536607289589232612156006900544883761476492392198727750072497941924456944182954510950260501419666748616748349408059457870345938349867274364050541652243732697583232519224054344868142514525688326256772392142221489845673189361117345555738581654049797835766768555858648644455389444117320300969023723013214034734713579634668368505351479621743587549894121144344860859486666741250347101478666179453898478706705380638318310052411546004169639242040969923169259802509265144248432901756913852048100971923670924022585493984299150096854328375418109453170946254374202503676041871835562297128479304514566612792462805305612100337175014036258228980634065671702820150716543534702162003663547144622540404243033169655421624626392840183313355868192740055078391495185586794611232683358921317914683657446315598326025182001456673934572297259424585959540279450737762695500487581288200002619028068165821348610831402130691306815043517842380350933034397639812632017251278957314582171082697322810044155279934020020728729077499360737253523621246337152621042394081906431155324613490956218281875525054750726685846409557886376257355300534922808462399810978469786569439769311919103796133925898901868210854664330630753898780499039353368262942810518903938389370484649104651699498828645802730481617677742998376833221834331750953916807522956815842810595017232468460105336099605744737739684755264630983447189395753128054147261262086168459369676813013035368630291714470832321981355539638389495063211703625532745909683871126360282278367315236218647756388613440606411703507903271288916712243409842125878983333830476347710151650419514639181054213115946883908992276888285292503552919569634456505043539674079468346769111698540270108357817432048366588307161356699420268759556582838096212202586364071727866115103490828684480242130346868262689183857479613027710189725763369306853019182282402682788311007350059350680808803551643758405818621389699108497399542645186076660231540203060060907149653915564676757945690997291288272484725182947956166026268763353810587837954342751158549283793127973494753857809021570954562903161106767073672737646254942723311261040019421704864500062319657499845105108810717884101493465458548114998545557314216537571203948013246181051161489312561423651703149614402423449242234697110241926026970761597007914395479072068456125013312725511914718438780148793303565453706783463685697168860862010035750542514664375608678837849218449600978999948250568917143249226495189154723917356557321101633124261921244345628076723823579107766921606648520790242316634299316178009027945138817316415288709668434678033114133957019940286509216025713897970153923718435247945999502002261723231924310380123145354066602306483539610487117300228530133792285477288364838901299066843182550575780681358231538501950011611691368979165862256347104833325572705215103695706193129228186476134002104686316513384174562871905485942272858478667161071516384346415692657125597961406018563039477948009946377203967362836897852050573332913035643794466286593489226310188415015709685049462033614845972176844378531998391722086742083868489256242684790797259138820483183577836295520671936481703754354103496791033004884694913359432075426342026176515905064676965509326863189409478951034314461400222354581260466846416598532698152022410839534730325761286143842287115563295003104829340518724098976699491897612857156074845626578343803118502009630398959070389169991028163714378723216212222977598053741715672241649431699626224987429616640651017433642853272326776421591118126262352987441079754554860841961164100702540888883894981075410060313912063304209338628514264890332622246228152327173952133118621943559833346855691603499682509749166580451056565334537164689289627162849005276077755555440569392551860718909171352886987331381244832634116495661534084634088259900937759018296398743044973138028707219940339613931536129722451346783297687749694406271773118958010228657051571838432139383029788920422271162749585853174225664315883808874777025008632253921293260514057318638977797784018649675205235737026659459339876054555633015089739257304481519601345570675796215687289009504358385460422566726586263556962263924315847654518544645446945484005381995383317553516590328456510934547126208813867607395084595374084921804635775630942147569930409681951948235256804630909609360613803685238682129739799504671844051468410667225228723002319806218978257218628805745143224790023823093833005040934711277157695812827121571626279724125706666038622098694385637163515396901877928688951489802559243225485030932911921338453820348054843906816768867298146167291497957346498327492055199485212849136524974112109130052620906695651906039870476095949804217780946758490508133607369534379529092990410455346465833818146783421814038759515681747209369360844550547599212293059676001696384823614173754274574794503120943023958298389041856835396276383410241331826677950001169007457271775477785674452484208234512688989268489959626747036026882317779819993308184914384784742006444976562933393937173021221253695293938851524103895254776861990011358004719554292828506948395833119838518151268042536408898727968045419584875942678955568748596163092968085105888649596002259040376090836659500632026795669780908312179826769790587029823801878780143511639355047613574882869003700254820725074898132834586613965203265997370317159854411455275520925078831347345549886047942114183223974045564717712689447548650719719181672105722643865641615308295859551691975881643209369612732998283668584983298931623398260723168782165207970712251695560799317076338188332836160516403700847844335658944783760338735572908986373649129092907530699349353392831834418162446366516042597258528097088246925880278982203476049394994062425753488981777945524789140219687063595520003930882734555994729726868040908827055078079278284753654338472392189824548614552885690704028660402877743990874177321364008498188697740339725606832330088901846467851237859588569175131889422127756934875395899332982402847710780212225423469257318794762224041657879031485499248757262760828843609043864936431021227694262687536980758316812709430914356084363882870146067461234190975909221574814436467261513109088627527523945466339030931868558036819933534986268625239277815707770095123705409027805527451629898278212734777973708958961133259240365921111043138851414017400570504771739468300675225430686679592845867511277658228130097782273555589142464564591128197067361054431013060638788121054452056593857041204949354893941087126231296161384483509843060731738590958763032495815916899486940670851119553899601808702535574715007946149216730564075994976687810807005697848835383209830061464980072901131446437893086031080412683123572686463474661135561321337383280083757611162360773908983864421150095611377652002075074482858606707395517666451776451344148235172694797240013309859754160447517059315030426661571953897007003528298995949484276650345785147607433664716922345978887052958916275075145693806061626234721175120902192379652091310463583845051039961010457137643682338334551627299690549932752096758831025004465968869737552939742651301770081601354421453641609498270458579576831146417907878700438196811297974600616901074094197274792635732528406092255603583309142415385211837204591889425149170284167446369054856196082761780792520791817834680459908915975832566808494303127098369436101292547407622459268220828197376385712677092579880652146058010009209166687191567659213132143319707956019531888428460140236441509405216361532366778791951635489309455445981951770177182345487378111737226395372469188240428579025991326889775776169379281296154197504644809025464061107355714248268875104840179565041223106597827356063010850475734948132035737759241993983420936166387091264557039189168754532201095889408304497336764671367928485115040535498654176842835655593696785200300798496441963181242027560928844731074161661538422670261517827641880888616890457203774076725746838739968702874521518706790651353375231235214535353505660082034384364963161504473525819644035087301462155566730806135337198002238414022168523475375145178657779481893785485805680621581314461213725432787306798734602385955727176615412505609806661924619747467129613294421147111440155812150061603317147561899008410128988405272056284890429837484665476620114560025741876741452245199721482052206524597730916379745612736413540343268301063960421529212240898391207747830799116696783179365250325000120901761363367068799059732687004659160831452993356349908699741739210532146876641300465882069279534230092309413056134089805071628001741334728568309990566998070634655365889705771628116270017092713647224642570574164499193056479641652406300228013024028070391530324219488239464707117061593115086478290781954014806883248919148990605706709622229746795249813240105361515864575497868681204260958173836236899548640714017677238822771729540098597408636567488573396262987698635121534617015602101999213907187130241493118192354748348774557580358398071322586807464466440892659904172568668580469114759844607950971162541465306119756434091237848889895243144367002379635989372990741992808156157959810539021938490487219017123021062006029677826542883222015701347034111172035919002880225806434008798259303337180895501232935501551586262574399397663594164192314921055221732568580869616229450621698885125683738642840957831693438663400102657179067159084418548552552245870430849583396473119943724837270896620046496522861598774009725442475620193086652641123681698346844627405752210527277140155826798069490854103116598314035586774365436894436885436399751023198848535729689883290994433854286050994170812608509321219935144882814337340930519938539818586645371557350407400325133937404220445818301167310354135273886627814819563059916309612800745388870579610824378303714551808324411614893488058155540450329400756032243883451798560577832969665193175325917893631037574446864842309117604150055611325938015159550754707067583948248700845463706347111770746302331181034160479247075637039262878953820974063658522188970197779298012468399210069350407617355962099351301074541406058118059938834730338978138502243584694504422997207027456747455796855320446850914786442957272113090462492510655710449471356559246034716664716394499312710694230395418113361071064254757628626836706018592206747031179187740297174041625808726173894843466318580978417182856566850460463939290638532931028465538530642828475421714866759897840473105188569685710352183097166870789149517818762725373369303498649267722511970305899227574476935385212950054125105876287741093189152781168521808356780342278380063526053396626173168110066431381129024708937001821642947769139398573950100322664300824106960985045201922983672718072493601237145209629175443377086510734674660737514037867438409207574677459272226994076623370649755952252544403623818464593598874873924039056071088158908946281051842592724471629572049659159064273096380782116488387159478338726396225103504368680395291406356447332965897037059747195448499711718321636773406032331264634537509704628757900806838459131313700069591384236919080159323591675318603180636375216567907529911970118552006805073814944922130952879023369620904325808634762409334056278180588602227709598296043453917963563028810184262868270189299052795474182049385218857108212191720590232749328993652505600661658475910378564610180035865380122922698395269284871777211911342227616205986961606549320015959865334105020651253331471965005683551433994399776197667345282655641041251416141101597512036937851021597396141992929017886039492790537096156963590554985941740954062446944574661649954565609333805392177877216396892960016227474551224221146462460501145842078702064852612401030592124697304189583170562181156310419977171815277647022316861955301432419911112104616981041025488199484326863821082651516842232170381807577125063541435521995680702383725462627121518215507238062902678203694983308780662114743332273291691072116469077294502422653644656673490979060989201879124658576217024818439029607190108399283646936894238793552911664598399649156584325524974032957542423044198156820992400219473015349490832856565865311584444949672167015629181541407243490452505518733600166834901011013307241146600679972056358600017257217994275490193122140803937259076548145302213201760236283205986750731518434498136534834078394774610738637211435407956133697137746789420457379452343634806719084186321561102451927904169327921774594250310179407413753533639387416892296519043892621620786503547621293845408394110816007581303989013624196891554404307242242313244722893059557222882611920488406559046798024762809506898992419127301160110572693393812630468470536937904516165381887727275694788167391286817028481374742553812683806749421379710676595865531399618860989167942380798058254537660822281068619802117274138833775096677144371802811698013356187958211222881830630619245502644792542243439509187345365713428221445134430022059157761220329739526784113184498411969681060779909937476830992882767984169386394171524148410456873421421149810446582736262267243565884725300692403673651476596744220779030314695921485762286265545495992838761825477455343586935855270890042358449928397592658195178107608685032347226667006384181702965594858436309946201037123285408579956764792251486223119863679724290008421387994461852518475795626394678577026016516040447083072017975455530848838448151435048757028320035534000220141559378471639615524920068449425642731706422610429457788124431886750889723655023831887815764770951036988564817157700622358813223585023587403772667548863251994817966669058239572317472414918474701934393075514954647238341938694907643769583975560304602635006760131860662242740708921677671149559336542539502705685681936665483296255004447962888090860571849927635116605685368510588897164137226272036647408556841553677378921763601907704176515166726717315050924707480286450260370213020384457002380563965151442081149074149817656787369586780342154345008916797039284269029212848177905426544329220378741908636772756113015710354755787290120617390994922918292112739596922813515993863166439402993297479720538962353293334522001769661915964415126476100730525742466230567781027584756924680979238391273957668099557529459874622293023457657840724928317382985224936093027129893001151309760328145689413018238491019291980397103809462907855896169295532534556660865504873797190590780934156837314162059606146245371558100071544032412999312504013139339045844538845784507319718646235440055184665497935050789673415510280719157826807285860994983949350298306303744728388867721990134872386763447977472055368373148526508965721849920524023914456607999039310892712690714105722589340851557732743229026042278859446423313738551445016393459992703545727134929915827428538031476144314261633181724660778191534410286245047230356747965205103760565977501377802248313682738649408228022819379722685912973384238924943158447407817601900878280133817209591831607531800385931360071291625321003554052080521057381281670333028950587339058635220567035907817801460509777160723700784240508002238852962768779765755691896344023025379964534000132364767265348283539959292451485185820919868688435265271774900144721709616707465437003047304916965099411045816137636389425201666270521679938415428751011148988313353561825471662458721421817371006676503241400740525110879073361188761528704913213423022740906861520681738441266158852177989443339998236182496915362263269236048998535336105169369271169235385208587263964513791681996511029787405869741939563776533533600033239641802956336578212965046256853895048505046649773800553447307735961092637973089096282715754789586361717940082852540303776271052857169295271207096463547135254472582215968262996732926743835827418693877779380012866710566861608322300443415237181893689381172961686973139563656044654078954951957292707251439889510439183144699126506297523097769792700458718334833200634195624721414119633370181955703578137552099421108266839166431712018055382722025082664206704035035394761129003368194228491040005833019184232704072122490564114442621339311981716566240742400774938198012170980603917686330525578685330531829925736797614738813769355085219631267203894978953790596500958394905568842554829450102364538856039061975728226762504433358978369760803650966396667745768292912344124325349486457049500122882353113372713072041275417994569941681153694230790940456468613552742114447790049269632725246385038477507864273023808010105439433485544262056802701440250082357858402648958049772985366599969055091820718837776319078417788275439269546632171661904172687098158103588459668333534372699523181906683404237689424219531075958450049439305147340451933132643608244205122184565517082072313665017740611097229784399210639840005831945206752650615122564404810954824766193334725922099191240569295217318907980004548373947430036726487844637269429207776298697958396744351102764030974973620893953531063395397081915523930044309418030628104060483715319366751607250034146412338332515980521353179027627305928339134161256505673579962806729639238868421194541977207171619485776165402262791735103023118027690795980743358756532216132756835240170697161993883872300721342212727240643658961634534462100651083083842746855618224463962166295628409843485250848883269624962294218916966795223088422801797764172745586466343525286848960812559771339552614686681290859766345938512146702425130984095780586900249099348804427221695530431711827159785969329932090861712422716131439234606688448936720621499267626095635581648399982964948881666067844210564067541250004119217044544801635307055116468982612050792465490394991014181903525088927391811725012476849508680870620204624267994201546098200451925629413555598278287400423069633597467199475020419285545119243662896136906249574880736238856828564781196843956598576022645254131367369697958800937771605826999885261523549392037896602146905149632271397951670280904130602067364823452803259098076214384192096350337063563801017519413045334463488182960098454056212455550865515730454393284942655099890368683777415934988123734476553472349457921390636098345590938871881639307832617636597078507617521357658176603796764628366262526688501413844261621278430102085491587113685261202638323938655116178338477062648063492549973847648741670851678862191063822253229648715014146360568287184167709392893476640964515122968221199606717998820457088380356656352872105154019508528762947352953912628503091547244556801288639131199667534580708547060027565794932189743923211619966080771401037514449881235603494593483452118795917117307228153939732235868048258130946397458853593229665133211430485644774041796393578557372007766831562575910535023959188547464094303443920716577155369850844690889412898298597333354719677905160997291759582605511626862960592941396966868907834894373422411478966718327753907674528303753899916902215882693179723393524267893054834093476986472537035350920744900106791151946037554918662394572084803563292312984227866135490323017140942536840616141432926507377693328109837107311489698646484491164703233769204048797294445465312220018114131070303112450235172179070938015699356400750260584452976521998618118367808682347818886898564367137314599925309351348896898098152565504161438131925982626457073566789732730967489561042574212966857860891707019194537473668519999980453011615304642009748882720475535622361405193771511110356343690673156110125687079662258857314401449462694601558984205307355965359328805824964561721827400227316987824033612464332448597696333827286563385263668945622136210664455001226526964753106447709206617934418609468787393574027898094580630825618343102057840382862258572986858373997946872617908697885815359976213012177528147307234978524477575029025297050870116915580575940021914716002883178550528749139113447720785694902471468402754732637818628327137185788510502346738328268330138832095749739302211246854187469542538144565959215129289674979948696140040414545952238430702816300764577711986670914926451000121065801291370672567556868099089737621448966270451927481991912434796834332142578774121356769039644190018923169988088418507142857375465040667027727364953767804643522044693082369179186813270974119128906707249042440506892978378478380238652539706179912598114572947523112710623773922725062813084642653172646434404952741710570815456520772071066642950265838545326963135064854673828768620202192832514276460846500015018308296247688496991391355622482730076863084615629074117694718444827055432927726827719532979322536207753301943306480853453236946786726137403868690808720448448416393467348977878674776779818523933799996500979934377227357076821151558869154953880319079849069144421956581306984687954179506292979499206457199985618028588379907318508254207784775037664309368953117496105870092069530421041075751010076890590220403230674399941616968869383708873880573855897894870241043375620145418732673470171510908757144937859801759394402725780899743749950083713400896040604715890335250287164066013065395873979928706587660517293618801088161433793221543219578871341700065644528374416608400836912504069893516913915342372763154333768721022474098271737131719350773302354298832664853851774503803484020673489566054046296037128611093849934471789876029428629252037353304603983865980268442850875830769775824549758316732341131011575720042662282300042077121634346927613801899952860255912412104534939182102797756040692394990942636345636248541868247110137531559817071152177455783572640643601743133836700771768570696174165665119086875708808578228928393543395988276165734694457091108225487306087545239108575722751557677193436756269255706518995616747904012877092014182581276173103152305463926581815509532955384735183203741759003749274471301736355957778506998316290971343683961991586042720056106596984163234812294903408256114320129971216742945127256558910525055605303343367709365371297042017664704120066215665026348106136741127482642894559854168859312146214319060455135829536728404557621835848469430987399809047888674452219666569988211654610212288338880773529784843886770514387903878306470148906942089524856720767016834084258732592191738428552188382951390782957305344294684813674940483132606470640917127671081801715585898113904258104208508040580808474618576727587016666896586983151728707885076734222248327743742458662169058483997803176888013854396846858283087148554729903125277030856844782796991133464712752579455231684958135509522207473618129067197854626777638971474458626135178154115963632182582805853111236859908198455464406044214669219115291273148584301585137520953901352033549581008825397329597510060871257058922769837555487151281450633091991233127562697523634521352973730647992642328238483817540966110647898609912834962690968182239145474206166719461595433909192218372785595319895359256199231049281503926672602002466718996275150211412132004547786332929583974744191278638095566312764346825043854928358723314264806879403896649487495957359223228084086670066415750364624336967527007336925144190054278333199907681314645055570284376241950195216184014847481322216143305354612357821141590588636348533564862420087440877107033649809142567287561603399563709972747909009031289086993285116836425985818722163985531648141733719121991271738408484141069917070956616681055010772506327198132320180359240332428311280737135000476491861191856579668665653201676341537317774128772156542529314093338358801731198765678994390712683497578255448589320277011094378323407215954972881759864788637679408980613355864710807825152076416133563094808235874124431199665678923429098527546531393976986853008523178916082783208017914715475313271548927819345376987884699128233321624760588515772063664361883524330654629386045025105752814385811537485395877114188376469610580238015121978881852658341205665792203386609665910223466143691372919708561068573004030141782049760928642061240771425683863838979846764423633883097090734532446288736386695787040288990407592141593973487346121594805719206187466806083377280702725129964428610278811333000491773875635692822250754752110430611194646748536121246937228928943037946310933345209553351670694144266153068621054566815121936691313083213402943731227101517827916979700136553534597531069757503838011289431962134034003214613876243331955949553665942514454062067640320552352881353393545517747801036396688844804571741641307008935492795069417410536929839395067969715439394203580879936147550564187743170654181986428779939881939035562566385353423537816638549576622046363606450678384137245036171450685651464118936933378172535413301409142443086580373147571554876436978232632673100160881935447253865752878907491851763811696739781212634816931613034861514321509309244531483615191146051666345340810969484863362045123866610724781213201378546348037952648358579657030805144894747539369151344423349841982661135704953354935132163149306362356710160121352322768333679717169875251784144288187593397733584047294306710323342859076965337114940931542727445409645370570751090534608276185583972254013676801010938985302206686395714086217549705420132087245332660297824948372539447733686269837822060807219602540415815419165496789567250771945867955268929449381038529568412318208566584534254071534176322907809353126870705119019086518378607001158789170358866939110201097551158878202284141768145356675950439826614515487093185502985942259533783382032290296124719164504644717685595915993715803689176627264497919841747287196816792059046198600928811362776959348745635106417710447241937476219521219545885312088786878872632526321781153951083838310291372313365627199912698316630074645360657675222652889799122674340096711651971710076360908258287168216907398846446518426711560508956029603212880077877726105268398564453373176779732643651757278637421583166003714644187001825961538543648871342722251832980368111376466290335737082396460982179370343460691358119620576816211057029961781480148277691283528889125427989160368512974874506375309222944879684618583897850825465259411946324901788047214911526656239795503113849547307071244235007265602893728718457495336814142669573898303638378269354056556297979809730302750425984505037110208805441668099414553849422808330745953270494149235462933973389221641714693221755528125145293783199100761047192338974736108844833149908171251394398067776239726815069368731523381142384286559749426604848042455935134157565736788960579666136966719534058960240755843339499174870006014789488474091548672986216915745003632974133465858272395185535905661485627812756618855453388758334013349326723489781098559657098157726240686673326660658565518652613391634420167212346981771626216402335907588385963114164112365312811809063651474962332596550153821637542510605200512055835147387514611099000950258725951260130918158593432525474940409562362589271854484316364519024284425329562671730613404297236341171868524057846596508346469455297129624430181504334283766618299283571664349201218333018172956268183733535107754630019971029843414694231776659058879706546654945873611746769257874952108077735208446083173487514348979326931656786577397660293125719423748171456173465973805296385630124505763370025194428703971021789246338729236338361573734171839506657501074997462154821537751071366689490424426102085192972294859529426891652028659246730172844836853693570844674352608001215783544616119277545143396209347691622307518517363186838957358550590735124180958910191966132421719928795315972249824395132509787103880745656350709487206356036575206527790381157588924392180333701452932242210446851408620120216836059634355657426194139696008495776316631738906088700368661177166382397559762339443741356285374710996782540950099230851143190779587049357062234730010766130012801297236374015646350517310477157036797586240299523699905725224905025933819373365202825384278413351047220388316749674518541130548255613141919636606210099561975466150702223334371981226432047044989919154202091538305620223893180789105585398969067846689061050719426955004948313003439815413757227229510993801294384605932481184564131890149385399220853079056167328022778139133692572521278294949646928771014935402204488214906219066157941417929412867150947094337098720529112902510579598809435766791213879166556015049826368960327950044307476122035095651478552387509305395015223208639681842217718159434207561324423869122152687852609269549352433345928498702015942545104379349390771143953908728925447956642536635644793197841528416093858652391958115775804535917630689425312501954081672062994251404968741135616032728962365900646185574211538334258262203806163121267460685834565958099219037440935140491576821384251882850943629534918195383268715417907879629947380418106547879588181867705160242914695633803526249131552572957603582528193242043002286374845279025526031442725426750065393382275794031446515661542517452903492088887150095388363945107224404943291951576342033376393842727557055188949557083647072907789880861021611835725576053488414430908388882791178837724673045381947820838645298222764570263143022206776378098909053733126029337011004054954811796070139361767570010709031424101447307635486930067704830169569068664211325850859087533781371099138029859317152888982712768253738223558893682694700714921320939365368104151432746731829562748085089886591035050057574640472989358224599282652652301240625677971142811765878820800065726217657631579842382369409157963094424677316220633229593460314323505835361010628771252444964193841827169545551977138311211768990179340395304409206992377400230644228562242828324908640186933573463038780986418669723284311727553131901822001857596239971629255285653975995130919698192720018089307272909769296444594217579596210798075285538189511024355347382348471836814200572795520250965523204071541868585994873450268988562168316623321533294094538220025924501043452729801397847545003465858136746666413881606440264306262694182975688835469236145894083762958634852048311160690397087781361788077588403212618501585224058934070100622689793113108545260239597508387673384064773696391644949021560150432914535052523866017139639590238009506859262927404190629559594969725080533933023323578633236192710008054462630064436335421618770523529496678601859222994883221238137820711687696779697358556014460033353148891625184222205051288935200667229878590140539018931831096373906417438355867751294107554066449723616210801983556775292413921044623851655013828647742518924344175859128422590579946003670128693148830152954799554938084088003056464829962202552047768647685783320659729947814668049367981828024028687736396704094616001759951998699885442486904744159010475527787074317024772771476411123241924302507521325354153298830963593171058504843661512692175852810643374277678533832979993674889019826273555013412326359073913896618241298306226594567386393442604924085986337326758672898192632122926543423281311545129741717927141924087352214487423490730525041805275579546302095911447604382197552330876845204363799593576175640204638670326867326315287565816105932483735344248835312032037259863357268181687215062932814506822977579353594966702995702746884793818509765910750609757388263823471018466447912577585823056759429157255673627955164352225001773319190396345129032471188480978583576927995721983246244777570959189564737909642379708904523702781344499354540176901411168322030300255173975706331148665722846818443627666469443273517019055850052347309888919835724996341925698859416693851734997913815382337305028826097652707052803532548610649862524353233444595826280708837094312424504479471013782341330290312691428770953429876650459942890567141622055034573381032025047058629924396943006830384687022218461403714420917228065804576255757860528887215441858878445086766833195353123586375431671520278983253878234527407636648031520684622604803922900862847192238109171441111099783682073636953408617831216974230835048047722511955028581018828709042784636893332883489503894937430855424440040258069311825843922043633871866612130958149267795797591954459133814961796833028297237902867363067942588515233395524093895779896138710670648957056409737799477879568112776424498638978506043305380844849771331956160815473409800500261993375642521030906804582603162848006734091220157066827526247173478199455463207889241138903665367767356108653195458013179504473581195676115712420177378136729277109333266283555230252505002573079059955445718503719019119921247048004716208157462195722507353563269156703434608865001329461336381092162353781154117355766703830435538226705943792582108631703732028071726643160122709058813346746944956918108038473258005128737559930683273173302028705760548144049085874953351601536470290971863754049660523974229790314785908586667602495562304600168343889663845296611019889875493509403331255989840993444723470947443213402882206210851270959073480717212851247883149631295917797625480797877771782040217161625465167788792998004796359849347638207563436580541724540864697221682760735846598267879851312371093402023696193125659317695044955707304546171821310141547748471853435900490818453438164501315330402809270820538892899427637500797667286201515700722149588006914331716717687038110207122439441745022894853191879552405000510155118128926828980562931578103675859629226459197886447790232978902682955288421718180804826055195443653604800076709995372159051459761996536615020832372879415216269245388958179284060771128625215628948404384218277183553355406147344195068662858741702352147997533648581921263832125467240472740863731842992237284840669471815449206845912162999720456171051916833213096600183797237516522302475445023622756387458304126518827082907658843336515681350940383613002848689088971134964626144142205487782868072585254078085544399825902184712383831259197147911302507743998810427010283431534442303264126975148913480372290998530343644959139121157247245978124912781932834939681984610512849680926069710717430766079928453531246299739081578484452872739985427397957036386879017754140118672778325537432435880768297656099031088384826967535400297290277997938485998165864801151400424211088739721992765450229116378514767746744653752363143427128065868835528767019468900928569008917330076521600922234536794247770375508164093360647506841030725717886894583772291814463250193065128419097948335108245169642750045313993625965490506478927527769736904579991722552571161432940719568144666671273845882421076070780446136742419252785294970212044196478086288096428078662824931152748762363783860757028222994803637356649837654629444584714193203356680800403385319261441314973501423460087778871089113684644597502578466083951739894816494670611752844163621127464050487438609698215102944661959247667063477941528951024852638877213256395024838187901428789643980950454673487210113846066579848466323761683594821679616053452004642495892936365458013840946556235933292494925241092936574078060632660925064577736943055970621533831739849595271267996842593381652964129491210571894291545799697846466519765085821508439783376750337713616354079026984152935763971279238906355373454849979558397954380572815049099343619553640359895977611375265992298666813981739290673525317053301610086799616403767785622010527724080244593328068930404163936941986587443665272500383771875301534038942222612246406048172136944008320991922542362433926927734412650457469675153836159110534223622681831162547511227214050553472056064000294406296298432554760354561793283556950455113061774929280471878848707328206436372126318956734906037384555480232385582698827963331284843855289119982001318926002898671567227726054977973056975713883851121259284038671372279159106293732418555233294222833447889120273947707285961142976948149265833904502594842677382280691322112725074728302541409893839849158693865965342284011509426319593688040093624507568805138444035118074675820367198348066357164654476283157622457430402080878001155121977657499564888723517787293416882699174657875210092185043938967387160278440139872878816393761873508588666000529451152463088676226254786330876092276480070503773888443914771189570577296491100466626514095937755267126373957888432517061725091085450715745811006364266509148819801313394093604970787870094536650094185390668136191989986029152184686366624828300634267147132190568409646991247839709743065785476262318474190996378815444058350812759534323000821325130658716324033070565974335201417247809298947433167530733709388505093920345000633121971432236120827499224451154737536810584894066331056211155720114205913924472249047384258129456531777571655884253038023276174751085288762962766696271467361805335063699807015413708407202701217371274369186424703476368225400583245851135087258528051705076159427076073316294388428766896774332239274117939864288337589005414616005932372420175087004217174504950750335778671240210700769305930438052943042099657755673462768865943592105235624438738364116219231898658400502691024596705028225638610345329041212396009934314655611451000907409431010991836794298573053060283559620121251532216190747117635098144115883205799197990936913861851860400567496937126749528249159030319663094405979812948736321015377522122032580821334512133726736033615271155925597966649959425462657199882007453311713835354619759184067109352416517522364857190231936358523272813148844177455575786099436333156590635913351171558553868209168140661746656632174444245657432338264808419045555934091553853333515442269476501143843113103930527713792281804518374154011363621136755721027320178747145171361795496331464129532370726938472900430990076682257195228284926859904989056474430374148251164250327257430270290385019050029142109044613556138165491161231743562949880330863943695103421935257528824859016305548924187111873052428449295045861942935520684813960265517121893595938689611972567979565790891687896216039243582215398222524982422510088565262219223875091396926315444877355468083510582757422757896020838980232752160182279364207486280626931486443133655023940890830279997685762024735352159654669517570412453416246091352854649053892153109938888223637693199665338605951514304406153653902892445125880037825877383259401493278098205258298442272193394110955483227479063850903360878257659880107025867646373365090238991066252238177404398980349114616305250566133026396131979020259678466309374362091973841873187973067009376089674694205344387597623710519417774132373317793295642730519730149172346150548381209196400099909803250508670360970400510946474194831584920491830045408843443151551952597430809628238817950305645743161894826240703752312258151738612085206533978263265211680109883245247305762729097012826815449538726673004349554441758417695743470657927159075805480046053158249497489093335344463742022528232680727045391365579324344764224809782625596698955385920244974124844135432050328013887399519160464710161821168249268839683839908350360337539318835655639151874293518717043106040137997506655001898451238771844671715848015178240838784064403455810559088633926568484793077913866271523638165422078004599563223463489971008984360691430732987082743494660753809353134609204500125504803278077656535284039153304815931504329083431768445030100936309627480360340546889531297944088246886361345724199987641811583906336210781301879645869171486516670088102682758071031468120745328003912535615662544316325133290136647107763570012346216707561310297125179991449005452276477068212393122582452059288161802270123689072458827770789629521925803198106481891811996139258349900986951088641946150006931695930449197084701903669218762719635408197678744011249833777260319364607771581364410010281942358092039727330911021842596532872797162796064409230509921507456366464605734289111357718766992606959576373557233794060300898225257444532888161607915964578375066096790874233437557151912826477687632026190699763186362215102196357012617401459472558196900713818733382776072534948204442917179838358891086693712099441032082543393720965932044298144166148957440376299538743158238709137352431544700881908254738741805173600296387992673251146786724619540754691114963321091665587075340614118178639417087891737819231222130952496939700515465836158714583841034988341476047965929184537196691180415445674895339219249278595118486835468939565318714379493178984825210337854875978685173773492878822182101364175766310822753154968385334803881981995187214861622125114720932979148330718177870186518661862191314238294008593818534484824673105029055425299273971359449122464260946570503084043136543569644540854959817955249056809752566820357147676221201746698297483236914019914780971210606734444745369881736190005554321887427436583675908006271048968288722193351784030329199804024536552232679799521558518483119474026920417666930325366399076716411467088800376822357004260727399189973054836589381386242072041391082636948645034297880327731375906377611097509781883180283443442955947054096123073024688951837993526087129637682346778130355053668225231732653959599702505582778142526780368958753078615010681184228500111311623012526282864674979175954434803089949043511629450232184328862446649512210829014611045574098674513275581993583406697888165809294910422214398843302666053511454000108939154431426935499367908841543226369805295298359728109649758643000398467796027042682229720591700262976266768423022596118814251063412987303033092897271084624653613825036484412263885500266535430028372980904722826548752077069372178959148834802804613020305011448151440212406208028624766397200410827178423974664306480638370352890566008296125574036719325524300710679643401360270260262181749297902361142008920177785056056480019108266208887208945724225921725699875079132208723825427549322089007826947856991224798374319554493322109406352294668698110168469126480603154392997081104781232889387306113540888797187707490122149766631818573201391563363143553066637495042452682548686147205269647738416595256439892043722222799557345620237681938834294820957716133007816829929099527063547904623088939731936630352020221385728071085566961277589764810377875084885591859728073934077176367909735608807705565548749653544418468255432612611051197354449211854649789641286605305936274125728442697102552177224422009018998790241710469874523610163026655753498291502271621818175708858611461080735099239011553545693295258588067073311671736263666145379979770695882966242001717621554997900939965353216993993886329016974127987559679164616614204488832237332007625232619729295505987382258444262273563598440636003627117796997854101085942804133270706461420222711261492767629311071399057956374768164210913036451097027046509777053338556460701620049111965978188172841783290366840517839245819383472312076314556234422187066209207831600907301157128902804601037500462688925260372290823574541612071290247987921084330059435075911947883116577217130740564084992018724798651183257565374894686608646134577745292572924673599600498730772550922654887367976122101714849614590279883790483078925266676767202557756519476027781084552166380142925142728201035463716339458220664103680174762424606480059518623653996678085017801129040545642694326317671113201986363678632828497754055307334404230301500514459390610756134750750389953894074349294531186780002842200819212581163678325600071789990622726896292175495057071634020770184460197657808094488166883708053890069596892830754641547414367938634870977415573137067148917125472599931627821635645205708348630318244807585502004791958530927419118229013640491209632880497476463054340513536146019590439476995135932702159528414381134940962561269263794607320108176107235193687905312479539373425406775616238360651263784072423918298121206461982734621396329575082500917969648138579992439895774483271957269593240848509709542573154177916804735756000530340641818881378384711422122062883755646098201760421095087244031712545873019536026625425184300324855028415129236929477472078392430329616794650456786173943302189133510428340178194177622771801839961570728590124571200246801169353161840038398148343725306287491141943092264574373713717444852099215610085714349831052750528161636539233052652898966323085557625145189572472712916819848436045237795453838878584019143924552029693475002983132039390206625028448671158464721466015411106209848317863472752448746615289520189006211696925181638162868341116360914193073664510171953133397251481616329544504423280948958085183217888832783637922513387265593135336551662183304181214713456803624906194414390956836095910898458453321952029477202300637282412101530801077428226277943656914937643720088325097896432154315722178206505548426814668859227318457307717593093551366726559615613562106311763629696964315901620780102625361605977314645082995935168375898775613763297346760844341003575560115991911495157144986489666603842381211025117816574450675046897033364345991839547914966677533397353125879854119985374135803439796156345595661921447939353875834069785326399340524217717895754070525997220320001241725720581269580267900760182454412810839199298105446862223994117215059503798785871980714468813742973823185758948072159371486322828858552468481700596446743533464964405013750234848261870536150889306183924115720814395315677929605187564008110545863355467207383783708224548457500132361915769870599379376672024075077303579364209653731212714260350487041923555528860578558465558544168918449434149430548800670359638768717023390693101484591622993565274849247084997484224784926288727963470961056515564242285279678516199846346991453049762188894877266507524237555826802782410055457448761500131703198113074321050210087257219363607337543427924629417809997855581971497638213800989421327155392926489143556480905814019316387643503796685787061091603712299994505688464104457185922521028868144780072036952694933347791431330533744267955876214884753400829033824586824469146591957841294512840794268343983338796234332488168625875118477354202715689575793822940864654068126697011811525707527770419221428968366340878000631646988394796308963224210231448430352805264236381355373108604228373958536231575741552792696620496395762977074302218404346591333935980070633830631268567479835471748217366919727004082763788368717163446266861949359537772151603709172578558014695863918880564676216615294566571128950650574656451497218663905084127517757987597809825417720491146904588745481143000294278877900820431137868240722325385557658130563579510523397853671769795958471464066283164171209305664760710212919798840784063391849204798762921887591454214270102823365881594829029976541348373419203094170179786553389696061528842748899390798016833422450459968714270659623757596426351698583331291395247743110060515661899771240195609209499701326324136702527157957246028101634998519268956035026379245862811528644642608688051196261982590546385288567084205920240750563487331621587170931321890357999325418027104574347937116642399902455170006173722834077109579911665368561794701065840961890165214105116817328060255021755334870850625000170093309287282062068267169423536664188168863584539663616946338699883067623856998985976641527312177208762413251158908506911124029834238896268668402848498697881939540895801646876774578295025597326756884245306128359532593385497717922510907662752066465746588681600198200478193609263192119987471914322826376379330854466054653082088293638120459127185418620841690459856045346549619910533029065434553127851987388332487511743749153846975910020234697428899097933412957047786778978096278663977117338526149236610680691923042777805424447937745068628858039245010848192149629818023377940351562120109697868864884478665161513258951049510511197259574528055169646610120787379840902979206386982624594950710909342470626128784062563698791407041206825950315402560072610451633489242842193566814676542769339840661946152150474269491438638838816187608157690962965333443229429485523469491747634800021852178087103405402559468426969376985893491846421487647419953682030200757211488062503920091538597451412880261917992861355860348715418413158051853317561758875292339195894536995045367574343169780470307248235779011327872382236525617118903991486596226718725203841865187860252225252077016922245305521381432090775470672987115392346760176900168177808911402285155167151993917478891604986103500722832621826249997906868252271471762151128487248071367103807785965501219106872542429103665525118467649786988666157751047616851051258828744761142636991762032857419503666060812695093866073452885043952915315735312772632666661474357783506984516656163803647222387198515161472432454480167119887942563840738730319098032369296260576352760719491277830298064754126373332736177310957063387527036655871827553145847614725870379359513718468986925136209379226699985156892107815856161016479088625080943332733365704584783538460771429649327200081245011712786238416423783401619075284008344519503277334957328295489859206476159174612783311833441393130555719337464801094137038966036709149363221907931948038628506863744661946490690103665627343385996890796110185247127314914304459740428940669952405325453526783569699121984754049102044400782487705461405552429108609551967548200210481900382535098319817604467495117522415131967696028492138698997289360902297247916059783528637114134312411580639595111685950474130237512368199007666493646026560093808479886632835927766742483986560902814329535878029110228390293202913130474234868621122006039027541325146614926306322440775909969886516011162236043580950269122110707663835317969172978121190236342127822145465032358245176965953183929364712998856003080985242060004733484413540703557356491403884232400928775501008406787718817519949017958533630439650310572392725363006392495826846828439833469914784479327739791728477432098335678596390301293158602993741039049857738461358271544582611949788735417913965766354919983996295781348855566708818481214246654055227000141122005525181925896659836442863310815705830591433231590088760797393741035067868357655335645790298713072833721748045387744780210418581548886265305441490322330646830880545841602365194802304494113517892494843099820994362065009120227908555208074039342792223031980849400681712984970348665368540067243190652450352081946275687020886665505214774597331613741835882615712278242334759529581868098963800758069488862139050705713199098750200715054845337287606168019939799685278629633110983277162504385530650723477977127730737572783903767181758040195146040866242146781608778879161904129898009706567837312876348481986384466494921880993485116370561637544192705820876130743785743162694615456490045787001739620841585366250642319608329951755591621023370727507673349470811316162710562691196239593188029481660023597232484974285042369555093318076087210556316876178053030123035998366961345998734117307495001550784622895448857132460098347775055456924764955766803890227490359309693661387099285687474740103582061806119983469464344266378870895894970517282590002622553065765972398814099369904977681205518418987140974507599912061181407642562799792308469287230859827596963993215364894636143207520040932088122408706145752676288069206161562584426614608607360042392437027546008751662037250111836808596918462631029700177071485959803688030009695807753828999221805775251941904632111213103106377708585762804830941761434392664302461227506711838563936279247495346360630598483374882550189807372091168071032154047657347380011935032399964525709658891459541914509373391666889582412181288514086311611267556239492207332641653745106027237880531808481946584120394666494902854806090767292572920985757999156548545669693661145633464347948937761986071516600615952755791842069563356379779971466514266120559736313682859275116566016232100853780379838095563406064425461880990523863841923531293048722033845432135217657000187212838897707393219393585950857979292962528571456297286445260618357538658883153975989652140637149417423046630633411775259677449679661188289705551773567071989201134233639464140654685171152352060660982101810730912036545450505925275396264128662889029647789937206910904765346996261173006274181443888495561137649377470333031146793867584597019058432425460899133820771640347399466725542520351865957778820297939911807005702406108606513310776141493016565202557395139338953866177645362444410773288744791491809832372436296715222235589334477812313105104059166174807984353219353088452942664219928806103410810037616449538364321517096562684476903649694849169095774091567805999835022861586766878954678565849081058811810238017503762216842799852301097321291483238291246265162743935782095389963388605106437531789425098480955936457371844650693371395179566783689341721502998562774129817913525828656350552726215945194227623191270944365366981120287302008855446944899060255740185504829053649989810155661483414573091725579651841347149835771402342441222964752881950096078473323898465323035005994833994519055539303707017255894467116004708292511958748073338220832179849952409124992924786558024877820084447859710765773026998357146666593291277930657752225791560117287493258924153872823484776023645912233768696757950402306948739124341289429687577166643255479098641272072991551431562099732804477099403654132335188068181723550319015248587864319649148166431317656172098018326417583359361378384535343760693825774648139708252162678969130278488482042343332355539600772402052249154752046629873216640793636838334831197767709602978292852154061221323868554977798680215621061983653723199072128634845224677673140331854346785734514759749237626667303428242200164861302268100906889460927317527540263943743899429480082082810604183001561752738509954296235218627720855810851909389783706303561306968624059537932820069465446659573438008200688481912415904578461136994713639308748308343157487322870147965904437171689333926443980191981582379168498779007226993986610894860384034238932632639765236622698324515355841937335935592400916317032280594568157918669804488426941217711943624593161679442322554286177636340531378901020613948222137219535817063483183604114577936591618736310028307058341324231526924532557954969644696843976191803801549018275903260119265203311224803033235505586175521595049441341168248358936226561788498930819314169943347554257745441004238660467188820521892370445281111483558076933086430690998630770792445855477767215287552000589929419395899564539815256343887347010773623901242123938046812653633749495015768848762205791601333378419618769319358120733101322636756583086528751252621071092369218752731998293159238236817029371312034918053647198203962960263114582891396981453027414689865508802092851874026270396824599239979409665166170399920489757951617444275743203363810535484431131489848554447831508916122559746893835430726336731745437311841439486032110381619856808971164362127828250580532535239807691834037541375889960086462824698957298859139100599284934325301612040220696690244259010783741556138227285712963219770043286135335796632510567645757713421153226630892794057098404495002099889010904747755384449828575505108557270359168014975999667458189319882090233136950927482613314439700501228597064679456498440734610866350670734316307500578560971627348468357807044155543148662120025105791443370171026484475586327074206523771585802450335082419922320873562931981818143447397175111366114863713466450928817022198302902714324631582788369304726074481801737381905492572364202439939484101219773074199980242774657007684799990312759777606793530681318108061937297289305496311068756880763299465287580046197453649248596704837961439939159194400974199086763856100521378002137883582697555239152323730210456535120713686218087899462995056378806978410961199604855511262308440403023115363491841031550718428287091991710102178452771883284703808645707170760698137429009432249394569320564577559338513376075464110272450484874393966714839231035825329056971363853119455541284509935864529434275113232692053271090294774299675161147106249409244253910170676194425293463332213028089100400537876720872174377764777284868272279887830677446811515256233450129989112324020684556478540484920387427701721196439755135240605851538886776024816709367172286084387776734620984752325221174737146279803227405561236792871320808547832347620114775003779266427574866147443543091358577317492194089531604525872551127362429731296751520673207205665540896386703138690519875378574477194655279416787685232617989030230740492228460311536546345055167531865289182186513845745312450096659376523427287391227958522291971526479741788976155877954385118246537882153085396666986552207451852549723918749405184201557916231449536928150141725853153714712868679478128280408939304315789785291895392653707346160863304671619721092892839190308573324925199900184056442232859591777670621275082752758596785368243681596266779919228488367835376029947060198482588176643783056431128106816359439606366074636040860110345179876008976628038843161793913451719449015299271210470259054317283351977245751835247964139119170382835706539085155642414880352427745693239058661205819115675259839029899879440719829081176370807011148012601106237700190516963267337594927440804344261379767274462758090538595032657392301095425440787209482442982270657021097293181187209777069848421849004599834250310862042951071225807474301183278898339527441024825832264319375028838133391851086027551332263582129370537883103977557183127356080887074156656045893676144191726838574793307119869517064154391471618773561792153790226640103688234340466394853338051917484147851306121127574918904936825895099391674036479203521806652009156418913754800847259402465999812695057756905028567296634874274442341951089268083665882747129891027267825675294188067478390626883295998798759337384379538609069824677443996594500420428907895310972855314154203847077775116653316808796696506560341360548999053073811121877891386991362597606862928290132285640220152666001398260375076573976807716262894308128463247035785829987413450547068929934230559814637793221534262060353396212272845780116786781725372593258639921263864374641974517879422781480104690283355732918581523252589354202494167568665458259037042229079360710558896974273732629947619898680828451001495050361742189378789297818465188162353868868262703454656188514254100928499918144454888734039241188539459916674680797494232558801403785711581995536105168163011867677760078221037351067686866712879213233971874335629630737741024572133203955701178945289442934875823788969539325905803855917435573401873658422617526684141302276886010814703326207700010268196599051268879605755144070172736298732424643603760542311479953135139733775483992763754375773268970371324356517998997342631678527582719426862151165941364722566321052905695193189213439470554242059282916504874691316718006090831483453803232560131687860111992924265035828346563895847785773292261859190179870222838532977850809425350573150344352880587320140664767037925734551097514674104763992210995479437291993354481568410859021445444462170933214776820751700839399457636526042782828107429772534672479175981116997918080724035335274757316721487162321534887432357492133126050535306353371006100817418488041914967079068372984380618006781456874797989969504889470705416745041146499201943073339122874570737123980302742063181775707527016015987800494249314172364265685682116062630064550338275620445539207505441271918735943267199864168669587054124457453261106949240609933616628390495844400073064536112607151655842681531329793214250473493316010358822829457850020374956528022646837897545003325471369333927801053243518768749810178411542874994893440377133516928638052742719193625335092420658003824875229688888608931943501759255989642718225502150099409336033661910172033902432232929682719290212236139121329791236852015549169798984577920380480467011640398471012330301675987234598784165193802297776826098060095527321056360942537721966922795800296986332514550260073412967257932535405202166525724361797217775140196289561013879683095757715586038420169855149834603783051382691018959343401705915937117522928439316108790751304821726435112712753807833391701099751078813960708401244488411890185750407797500653590087939702180993617958133601121980473363258736849482881255118872694227677712167656930097581007194711233194978312963863586657816053383061396790305991654358550185103001436416256817147203095299718444499178887298442138584698585313368359997648537186655309528397625451553320016797100797073879047025868683463448198340724716313833740674771349874483472504079119255442865280460830007076941341165079513029609678037880655201489243124017088366135754728145391158171305955565564544457052705735084224464155657028415996718273092912085114094228614646101536872696797256766119310674924899751008121265380422255707327520706980084705743132465287654040136004334937844258211833215110256464794449386437275341124538997904997560492467107031978674582229521750207278233122073342525779426111625966270600767252352811250170068037466035868348363777866774090357291925964249509985279423429631493997659341452222467048212808804687920136411758451374318266085394675565502194403318013219496044323143658096904366008122649772010359557964093891688625076553592942994544453801757580402709534951374764130801292699057453436298737285630657525803779803688717980044624582408863344650593209408516106530211450624858109568502931273222942022658279201669928841575005077327759443276498630839491314107664827001092693903870448654539997587863430150664267124581440698233556118475318746152793498307841408578555174209257551261586785498093065717424718888568700945177785841037695040330222655372391459789457332003099171176491633726333681799399064530841261712675285174730544680800743898477581720650533895266477359598351689156096748227054698483011441683252697431672527327897406050507431096232017769036773534452397486777132471499151998685736077599472342332568512798024942253174014866536121544238809962249283995596919280724530591570578252239758587030815049230365585552912578300777911475374905275064066703275342120672092791686161413917232909704134912223772964920806150887230445075483903567344057449445185016023903108122006548322088971675725320374948477938844024382603760188528303652779845412313833003373499943376689505154415326543138514188443089208770624493987709120463335595427413330818774313847604370285193190995626146738003431555697382500657612812662960075553162142353125265595882795834378436910884249718789250786671237661443632473889589270755119235767044758013399266978687823447202557165351294005902195546253972174733574351934878100461281808965491496609840992489424365223736627457032778452016193473272908947182293223780812532111104422411030526127952139736859214523157962554493483537368056213459951713611357781676843741565244126520301053099691922355270777129058811913373698996562125700577412350063950798603348625661428353481646440936627769586273821605815159994233127761704335177957019623459036385971799494604462991256190830018145228126917017371564114878700157479481900157765604587053374265573957572788381089214438243412635115711659773205693574329589715837473990820730035352168983268589505831944656697007272614225417394575680066545228162746714287869508638435349334234618478099787335800965903948637247993566213147418168068637120933704267314973565386347433075376140258416647741701764060696007755919117894633892397458611598270698487233956002252853543636594776337838233634596817308293502019100282201602061973320222393056605720707891622906690578771447758059510935627466778973933622205641439017861836205361376146927160674946228529659740452202184948848967639177517709598688709235608251381372152695915400755573901506865852826910031443277434510677632304172392695832406792010155362950466086564742542892997323079945703480425802156267195456236203446212947337561521653269707107337429652230693795648716015296844581350857062868510818208937634666458427126967287245419703975340242657517459164610041441984431985252566875015853125973551250521733025966161001421349312587510408489093341554456536565244034815838161514949261318564036838903305736083841589728277995098561726347538952647635644089426219180414059280065275473897288660988278322094137296580832746099718544809320855234382854264893649186252015902627451596222420898591829421125942694955441031840105791604044521274131235978880334419782661684110732487198223886107981179840539834386339431583554982442445407894785803019387072527289834381361717337201802251646618795227268099572551992239577673588818768289062449770010338343120165956164971959939928643545221668231929588131710711936950963129993149620123109029010153692744905778348560109066043739139051444072115248046348582051791797654168431962085404568847182992283378655246434248591125188754159824359453686300353074747837535364185864438579679541793675963710033298490332083979436517437518401996246097321323585606268749371481783972702357962259219488287722019478869563658656555358073281678299117757073224809230244735793205650405778670651901726710237472880367393970261383387825487271894731554889591842155480129479258414968353999403969761267126222921533774201224925905227306981987697483200994584330185439069531811022145072269957146577790684325275496810161509620156707351868949079054628306132662877331839586622260975801417570719825043389829763966019747350822414667178388702823490112797924364274459111624120994417083876441458846319675832646028559892781474384682967497005861236158470690766688341655461994414022081880533231027000965849312716713732889271861743254521584387318973435472638861982365921397923960921842697729745624173326170180292119362033383363085203805838527025311500003571817095086724219655703600888322375168590008376569792814637419168125788012687750616384360201703038942530168753788889027087864545555391129378159565777168626613348909744030348551720006036259861450313321202571038471180997667517801088923871030080744788971841922300758223552007492806455677408421473393174565219954726143728157304873937081878468240971266504531373693099855632062027010329995639106131328199092111079700780856354337409599471219370256214506542182726151267674632387281243086500795117806719453469842082664274598665616806057443372651748383632790327086348242456234586640548871867696336975598085624417813652766722878310004344360009600862889186998384356770078668309559093697906902696876246366819499494921210219961299921067640118132589325601372366148722836443483174681512371320453059868597508180438965469929175923642342116717626472314852339298612445796664488952555869265087120435487451024806133986693927942930497050715137103517282335957659335450376332810837626326195994864841239881526281988320952994993077062051728575145947871995581121533280016678714037216143780622023343216630512139616145251347284109080402377325270659578986283150919852530830148402248466943323157438644499245628401927831733527906984138472562526563531903511692293311920587253183088214089951904526937057051084409556039395207173744462475448603916258378948512355707922997315226613079394018274871307088257780283160559955934965582940242794046579437098109240763071702329055812157511017076505468767709113219257711980216630994876036696965080639924935733232503005613241662383492142357374536880454703888446788477783050167844834181806563598874573666358768499937715803354063428535382858858994543248792511222820997148935667343000233223423275167302120261782713015807594671650567130813676815289796095966180080328222101637886978665912998226811539913161075741869988869151346122464065693674997382857707871071782425038432886313450014766437296395930914107527388391664627967856769192097016663632326990448787975321842037354945468353278930257203188901836882344562740482353143478005187462620634698460094146208266284203609913641631591317694316308987603727370168014787432945107815418972274375471253978945479657253393238444560935529522680124915757620035208550444547246643010348552814607044296935122874676904994257669863550249487155729815247772479328717623750544745164587126415821217302638169776828731370311876620550148177398828416909338786632694597411072309126505299355617573062300750155633263948079848174815848816229650311229093464352874319731065171612946240058073798227905573467987923516133479839507643350327890614003411010792974625866132526264881403022486396383564243039414881271330454912213295975185353493673194870988206194459120873229324939495791105533844180399092665435761250244375541318620194603462384694217764723177547164937005493917366844314579196333140403486284401882041639951456055731268391260465523864774728275245104350310278285849658028257093824621382999889665039877187264240897409075841900429564420975099784833085728965807311855563809395194746459707011280845855371098708492713954128900209204213361094029707640385153587179890127013780514594324098544592185929389981549292179992915407235355910850400988106886362020802660316500082897030010802255533205637213256293117068079551881406456825909277212658533723842565955631513383863996866625329139584540112431874571291572129748613829308480981990875965934719727093278540526509915917966452870287285566023221786139212821861686752810868927425938221460223674081398135265966427649972005562896294782223514179085931342013925207014146230939234824248332272705690188493800092877020026158941354114069261672630116538230774891502618973281884865570423189418305925010919579576312689227196809711525998614630265024675070919980346661830296185742844026400847519437743829914104793486947869035053322516172699575871080297716103758242903093400380186571881984504210735062608436286833645309064258277293754706828842487280999772607300310283350230119566856634856648680720345687137131988838453139374152918394919270103329071290830259844893911604951008823880960943479915629430738667498869889274150535143443957361222882121572274246260320351975375092202251847470563839461994642420654668042400814326076511668267553646526789964357895074906693932364171402940356035460484248067319801712723746987416792546685611505925586592048612670602843681423433626801433180323168338143741621747892854291207520180965580749415268766659464633628147519209686443503120288723956064344360466484222193943698034165736920019502167642217195349430520837612612654563474538802883844908542451708347774877666545240336950710808643218014483130514431832214593376327294698738253872670109699830570222132492196009944977712325954228866442802340595970532392505975107933891745411640462334973607648061745896213779211111501073331319519201391955941132013140037909850850347466235658608223475324824464359837774017941577130144432909360233931346930468119319946789022397015783078044307852465065357245596378285382198064618618957111144501738864201138932478392107802441577031165382621028497281066050634582065098028867530244540523859133901703061000260241582453663951513168747452713851272932313203930880516503656724399588656564090326514470314796317381872219268580936575506787464445120108268778812869375064559050120425770007780836001462666624689870826604815282752097863334689885354716668510841407804482431659786969804630222407582835719529937119932464468125594039779386979848885860430931841975438948079562348688642313339794660933774015058772404049512294421605334366687244629360052866077156849314950931787056488068987220435066328455909965649685872253287147723682384812446083911974331422339048262602866619219888531278877265544690441382680774947552227081644212623219063233103645324996443676736453532662363769906262138243144450135052140753638940415143418144417772474781112771217520130897906505120336678944841875637859306752496919940725737258373840619846619899186617756072875059599624663911073518783911989120205199924519998789791783975607835949111367894135465170319412159929953023990159593400884630850914753633125747067776893486260535673525424283739630202406438091861877928383035333015645370400481044550913204391231266389797037531794245845654983235259581736072899901145134444651035038163160308871680965375290982640924833173712211930886624671099980265436578159288834040133561632629957454933836386654718089498422180106168901805858515252542834140712733868107542417534053243980242662347914777884724559581104016078822020659348319358016105062810980213824551790180263074633924561363408544173164290435870312507807598977385896281651845907596249409988631632209519905831575254518607653329395226597132538660910823422061026898434630130516689498489587324359761531663948105622155565033384543674341984051307624864618005613514445613662581385976110017375177815721340321923608340199243649869326590448214599833876087989934240085058205046940423224049270935088044488385331543409524142150472700644587366658362076594507573880580751448040281009644310681494292669664234128724968008971175034997760593428391715568848130041358291540895622689988092879659265141165569059627180341991458160209341727523803813934137207308560667770584141365273409955904363772929245494457963190761551141574440079026409088775612491304560598304956250281286112777865597455782422613423071027094410028801253000271947741128413652304561102124231273963250033145386637935821358728778235434832073482958968234411177281544741278058636920624166821481546554335227464917963479393688557733118683070044125281386116409186218901914384607708771481567644284243346765641970639967275269728360906910508824413748484364461373684906603573695984014028516178588563205652116581799988116332270881352800501617707464188556600265555215817245465134627256346645075095630712729253450021900388481362171322483189776477934635683687455124785488528209062844357573819045010500189994079860649793041684907613058239824763591793859188334695447690740258733138167935113665171414335960112372247161761300013543598424910083215874779850644060366334591658778103598073815255515589035273802270450155835215992532380758228638403279082099949870412500187244577904799756427732953217713302060765252301247491167259124432453280348048784346722700134792141522813974078840182619948461503608391757749111816362154054299439186114155373929900233810242466853856105091452501602693250320299530227226329756589436890991103155909835917360939265351025550794369041834715632558388815339000378406762184634225434320395416006938253172535614202983221118808976110844642986463032311418421591557729178609668623999072293271283372901742420253125962582419182021492273154383113984282982177007599281423774740857986335845506859317162906545766882728924521611128221651805579037880703348858205485817078534813788101224827658632444314094162009470208071322214980689836828411438722883108012302241197785168343977806163669302413994480531936169076915424155438633049671030933862644259535760474788769784033548666686674706377535895454551493635845410033747177634191205789911379484389140626264807391039454922372995311574414047991316514884644557195872604473171580003603729082146575071787765205068150099006140489652969971646427432157504515614913949549909194734067399109393635340129561560627596350891703685036413037330640814447781388700467514378837156263817786117352342006726676920596018669941973485993698206423632573943187314365703497516168532110094429097050897066460341279531105346455527620388800640572364527335068168555080141286229550647279128942686575237865588668552600998303297437892512605820314946665765819591986223378557879272441706218040407228061003518890229775424870439226841756819981179336855359336677500105772629494163050695965330174713682572315871606619823548002299758998255361712770067829991585737508484935337757199172069650366018300698540260678135646992904385172634051321160325299429547041321821413875321653956451262155220704755152523329778801313208707586550984218519833170853907345807688124291480185604888440928404615135192761654081023597034294494646256086139948595672855483427501151120024498331274411552292493189198949947538570258168042328282247842078162419336144462931986811468153525693190928477196651926635915895510080583967442217771901226274293944062965273201131480291133016450869718720527507580132813653894055978046746597095400264176179926923936878113177404773028580559215034345471286634041167092396440602013288330589750255563295987612729502175206160953553141218946018094672478017250549745519750933212430981907988672614470274323191736624680077291694135488226083631389102927334892650218520612501310877012895265520856346980049762370042787870329516217732736764566156941294596987890843954584296658907769955919278268799574757783885893875305737188185245255590248001742365491431860734624127388176192529774956142312496544040413180935812863523985290087645666590512278646663008428684541541135707803611083212864187779194511221158025685311375266174621762544250932633148720269744085851828663998250163659707168834650929330635348579819740034190922360820399692848835836841937367338658965032994384346968169540545714418721426675857819830532116235503205698794497194857343801822022288254875897318696046504570159004036710547004015792695714572989141235776592227488793210088360123959692844115619697232486141035395464467920418602404511012161317298201002891082076736972270901317053333731308037860938484412851082764325300811818247042470994278876136173550481363640029759888159085441850536924968152060437831285968196343606883849967113030135008343976695865234174531194901639607972960158217692494197697764273002091102194500353741160765811492027089960760689107037808109935971093047188181807016600388714395028817542883459860311762061406914791411273373482857977829525776853128359495258313040183971327070405698537655051393684218969014131126126674602029509252691941091669541957387789159765075550458441837698321239105797123017790289899559502486305333584807886738952742249704295379372000039615308163571011082670857777799808865842479740387638391648516095541654652464771667183334588890754914443047890255099664418871187302665745562797921852661482854245353513827895036742756028148953794982995865561463560734086445864401274399913574582191699650019163254677577944349516401920661118066454019891490366557948881305482460281395823488548119994516280667122328585532495817730085711033506180010810699161505591305895577353456470382811435921819842399286581185089153824873741738575840918251954131068604003354531557283338047378536183392202410831331962373067011046931934941110511426887588525297989203694942167399079719993701619288953404019509924965286709927895824585374424812956610712760778520785814266037173089457870006313460712463077718793225167515032494055836703928538908406988107513280874476510425014292326462804284897906075865752481821280301177190802556542057747833107120710095830311258340091822535596158609656831957144932953318644042861484545488177915685561985460426458235971453766374572355532383747572296466519212768020568380819678592001239785534909645831747415835381961930127222959197612164482530517828339936642128331304533640217305640531039052760736860670812707274137977961373681233935426772069911160599030088916185341373673256655030454544660697042492578590464328321107727313834361230025500518797507290152281734162011472184577927453648559870576079089135329609712921299099642793649054565244334445243314396492910301726080109979445526380698468351046078755606875913173710888178594082161298724215426848595435429870617842306357229607428859976960637616127667902772643917490304823987648047231928594225619965285177521889326875661974199819970567386588623501068190913176330407812819757272834771674967213405213072890611844360137026569644834218442124049831473571813865019324133357001542889101048033215201899856850678678972970621342364502252328536406030980619450838052481252296395727017809568864820978607440607875739715743738562560245503681879019719837274976540189708393534554838121755638117453574547546531559535199098666590059752623035282809390519122591660183672960726074276092465395025227842987093249441988190517417337800790053767967514476011121247526186381471188956901548815253755536723786224092400678694542819453213543833711758504081989438969837838667334124222533855758428728082002464526060142487638787763638804154718313439318989862893238005369062834439850293018348985198814537316817548386527292842615927802007689620176026766354734992218625675772038951083203725630131541280888159902122633082549611711740991234892000160436586245430152136887679028521037448510253248010143473707265994527313828257023289427338777349293128601176564738744874037015724959932518141263828916101104813037212692920823315140202113101297022740862620140629310828291265554912876515176998315970530035786931913871750058594130513407867956285257711738100573505369446575307091063978962840569919418741882184738005100296485433738374662096388282761445304379722394145819342984294750308295424671469160034053033248448380043583257215088645470026670597851920692986823190192674520795562498334018614529481173903666426043801972145064846601117798691063436651311132939822258207825345846576653912332157452920849396894252179558185794477869770443088704779394464200950168704339869836996321330278011600861836120141891977702963731766399605169433664706936687643940724112434148180419704688610371866310277489894772798345628672029152319235483445459080454294549012341415320490796758353329560108234276806638561654386486893380893778949515144931703477837855318209245771015658743547996310838178823088263041564315548428254662296539980364399310448122080873728087575402237488730664797769242181950334829059136494265206424934777155243401872819054351175001467845170113570101077780117612584124472963000462848669314320090512914386543649357803290091147761932293087176006730061977293742287790878883278143614986293103540260814174339730670138839098560116418744826089136867217486536564902361062811538051456311202920213564960545099712419149242106088500914311740921764677062006058565273489067163409611542029068224043208162621488839814074334909448937132983773444917531466887276511449022936869913928484074703225044369191531893982175669751859642936772721336294011102029160610664517662533834292886537056494726561764867892044604186031733189481598051316296447763465939069261855318941694506067987444861465476620039547965380334002991975806366656142674503605706615955099598334057800356352059538642689208199544171064842314209444467727551738878829325967217239104662404803789130877388572815357419799852189937832254754107539235618853165622428473308889774393751509847615398659339460771888910790987899936246204077519487821295448862626336968063285653804498468428408291840389991163622954901161098461533154943784178732659846334967128555204368273870399725928187182051416051521834487799054312233253245251760672463853513466517889731470214196646061365354125019850662324169712018016898372309367030143630843414648740321450905298932276306129432324750964919072521362637114775306475508788709683918918612755944993450876386340756536598142860078804384611437962661678049234428083042223165335728657090164940704494751950854802327606671480298847865664303875424390628754541806252343405625057119425373368037192649348402258028717072752822468868677842811470731032192918622584074290147527316202702643460171046877759167775424308946822808514830837642103170920378778293618795330101343165047757433685058939579596037004303403236797871115053149922355403736618670046786346291909353841267902033933662726252558390570940870492800003118385090522331721658919883380369593920374551415960061172869667780661904798810803715824830153149818861046176443036749311937884102134754788106787182715489253991863957062775956688893224345623964311065166960274585012477303340828301131599465149765011834125357544009757574371961535452766704039042694583414197753511570203072974883859734863314852168103399784666400087276950692134538924769365852623281242738620336715119664818394743223892079166805820063273357529539028007880130681599369499976251207104781685284961587094328507164218982377503804792431584272815396707584346745940845233408400767266943560467659719112459956330113290353835854294792466651104074455779707721593531997993096701028102694199955767897698422481112387524540975065899952735944402637956406981152986627337424404187820412243954270144498264987339561440000117913339898533580380228184160941406838105768015410905388331379063507149450256009462531998501546440932010537737673876330087611657515879394009903620359717133111459732371543916723974070767136634114317930131114396702954555281357863732819249782905095153767926027693338281657597053616733171572288461868555881435370313226099647774078334670328147642065346763887421148946806130075031146979675103386585952046919483433678629327274239453317482400102286871950324859907081654198132532136928606075617453209229734236782053091506920416816086191595840442085894377605181304745465637343073235181642283464500424381409970866705289331399721961463145673500688017968768164893794835764302058640453954878945348772292154844438506906977497120366333688474723944719519000635768355591588070274261061516265776785887954887860336283226509457092236532974450969668618286707811812744456133078502323541152350142251234366003260956917618999565804737597876074168462729998805129069995369795492241700665921666984127219541832813240343178686424107713661341647652091698323571032538089811083867758359857352546600562102119333085646205020831891350003386072267602670161195105090987707959033494101973722676003894920166598966520788967398729157976276540175554460843728775475570610710169019585623886619875451831166214733311376996315699195479759320684894088491830369620400476563386777415206342356297895117343704751432538115971257370521082287177578932936533996438761684002785733075937010052561130121779028718461492251796567917972186667650891512472729047820726913462454639664643049628851770456981097811503419018768424608910901874670733849979410753858751847314302015695807819237687137791055932469786589000007733467615294956802330230181508776184723428559850264899135613185462170549688026170931817450893628445700320565257689458113588148172371618590785239277141949186571344983227620710394836190447733145053290155865798286958725750723833953340265060851072659346690896613055847912358174056987645601353563012440785355452548463219350435026472576836994129360989203162311743989235973442574753222052614407067157247573992824249462685423586045719427649989937756241803308653148714934365253974116387682460629053769211674026478417561605867960952042527649833880656820167613801329622107249762332529488915240008723611332036983224150799397655531392042618925801834333176570593175740064445335703930385546303762914264755357044017140374110774975102173554491352378945464556110994738020264131526445739951744443601168405605505566891338159768385645364576740965752320675942888585082845355057475134903716325960425596130700227401608891888970649097772631243769307968326270241650422952143992061341633129624888703871522614754273155543780166305537751709651514265094882970368929617625928217549997390824560666613515438665883206563980570680941575533519653740486144645566972407037194172591838328661503330161339970782863303657151561408380578777960540060282155992379891640599278001638081467366237873972631475094869762510589676678330490609464820533084453502454004824198957153972157253472552967154680854798032452249329027481338785324277377919689764154458665729735463111068210879360519577032336716169082420624277443553409675819424899837426166853440348779081151725385564708556219348394712714383076054458913963998966365904072565899095040506583465968639862865514637933786457658994296195827388943003323850774321785176971590270890624758538690840796874808541973607783923737690396941599990849848009540044280157232930442204292087794422016508398852000948495388279224590985549108701208679533389831523595591917952948492781295567477372468269600705712524654250090876406339844192277620368663591091493173219589670224000876717137821046375403261746259981430822570790254980003356079204545695775976561252611358074531706439927129874530321468260022659939057046699686539164081341234281804195044158060108564122334204105540625867688817891450573163586764896882941758910070783886709790600804194942388649302394715253003266498732095436780816585879266650674750315149071837005293670706452925776876596918445093881313783087635560802922729116649970526838778348719987618603523736947181915943561369279396993047584983450816767484892226775467957541337097679232100428427667206456341057209110152389033423895529693411771752216520878267539687955714684922355970986940542749033452539347602944557997139143960114748983773104611767129786013355583073215212604502517213689267438304605473132496942083924050580870971861138422513265261198149072226967378177397775719348062041168150352437094544709167611508867967517452472582295326526922672762538197366112336116644573565680680002577453525413040257640380532611751146576329534699752146384033704863593170714751798972123995094325731943327332633433714711892673106451308570679016662350832474878360862250602831762902200786916483814303536098324947831207371926776225206636251542036727000156395725455166992434192081095647817064148112686226661989795029362049246709472261493963052225878717709454574339615265791377002376822525296824398929284871308591023549955646063435383634837241963608065729041719986728296225775528025176987703757117620856520424824201139211629133548458808014909312590871530775986831036655757503022961512004710231348914134209941188722805483131476937672854618318189807785289780280013535700878965461231462576566939724459175745689789099425554068924449979597971475615539443971534976391044267174406712302740978221268264668530569861620331181224015434449885672333854720036005085138026755112772560420500677854996639002855383202463807758520415159856763308274429520980847017504385418042588353370031389261389019346741996597206567071428679244327507748394349017016237313227001560797072849762869458654330461768749116195870557616872437753440496471907619232305054432268235649473939523479702903209377243007901785963700953812142382659763352009869946156309829604916686944202625510387748209170242957182136972102259341899270252185006722746985361618160548702807780518898506202280461147076325208152882130698142238220759807094845225489467531439593867006723243880997285781605981095814634480507207775704831530712925986272657316380369778083369322088985760917125855860293244114476329225754768162404934923746722338364816321620687119216293756214262654730925669768298490889854590696259654526355721408028293149109137846095612379577234875538929319108637783807121683064488437155394624780553771950834923123061003161908936626617019813993112106564273995482203716460211005322899806321404486106657948710929195273108980900823574927295090823663519745049372425232969372836300373383772389406381287847958737748298143942386506636323310808939132576059683208567861812833553814457090717619781155167974529817937708652209952201198695777222587519153437318549312874621371270834094096924210114943577484487831798809673865193733916296978132786266661850288208211960019454659952078574239708705259007462368882220892364012664139970655073523355960710132040836722935479059018507725956421219922214530168129284889304066192952359668803179256962192834672580495848636824829802808346371578044752146058592488125008922021944336189507339973595334787738433759638326315853126328168503185742018456811334438111002020797691578428992387430025619195506911969656047163187587176946037533124321096710090706129358651733234547243227681456886415401208819957273462640589103177341008913782497507640413613799048142991862342166610905502176467129365142239177060140798097089709247358970281164229155351781638604461131656903022532182879819483602871608700254925469767173115217739245936472005280997557069583868397185881883076144591388689182547347878128091597282369185827445717328065055193292934862250281296327829201970457171254506787474322957416234882243135717993820504052276621374213637436867372833514035546321505346312898147161608801248340308229345464523851882240135748319883835177548704437207650049012773999996204141695002803614987818422948197890254854967825004353356179257116950961940053180553168701931767021496669755860641411666602201247024113495060087721138523808124060082137097853699411730164851794917045961145454795528591609497940080065599119513512525835892685210227829802245234953781125258954414320345138766457758336938917395467530125151838297010348010268295762113958382792772824700336233154323579343840037495786878925608280157838199684203520695159142489955816106336911159499393177560341797906220485487295358752045925724466923605036239750246481169008773716870979091876386468052188021371203407740440773882011731007501168637677362112580279227470893549500885166265501395015991562824689680565006654862855044388308471779391027910953533273785686316256457854975059687063824609352797766037148131143704389250991634715535772334777026018054900111616946740096685217016506585297627696923859885743893443726775205635474047185645065444681475321577744629302315998313662334797956268614224406453257995056616202921804341986485688219851353303884885658019756288487283267133302290813733925390135266042001392348172586289295538990803294764188563317855372667905150780113142338902055853615478884482195940212944837065136863902193128835728412243143072287048580858387993462301223168503141547885394549280183890727655860365432479090300322066259813110260953663417477801391361588056801087767980465806316633384265893400173010589529332971301901666625756281765101188012815533392799557573975879488013456698309189732200387765690484560409000691818786619412719117397917130944238762835777149261230733887012184140945580708017942329060504986372885374947690476636471672012963663975071212804636365677509976531817657410312917826863372892701130576848008007938964553741078708387829205998004309464202944039388318782745902366812276521801827000881531324846928605222547458803677196148243102190494588439335071111230135989826149904526521391075442821268950610419469828618674162607835158085572836488408056234649435976963053978826742229696830221360697078254582797993543466574224218956658713267180719052494801859287653944165440083357607844208622881149911582011729716718940215066869585521390768586564997537812053175455028854425612212689147773487111127190958377907739025592262162794831862918868331186865753815585794308622894632706986623577041167074578111721646172872080459703355271365691792013564335615281714824913768068461182766399190723939754036307496520437814274742752275846761000214913543789785820047391081941850407739935969588354024866167943058811184020021377027154706757977126511684578210407918012376527949212659921543908686076277419055951199229953117752373132563984933234454269186981743129561338724741284763865646642286428542024297425647646199561512810517097587782595311613140784447891148084504278432919038713524060517273821354905114061460991162618795327571475790007551528877550315790838101279735541694926724185335764968842750865344526774854365570022149847893664678436604233211279198992734013644597574308483502106193371975087466614937141461818608652996273489176173914153359922588749543067440136790676352715165149493077261583632111696218764966080100524126967680604214338917669250991291394816446003360035998258583347135345657229941945337342490970170240224151290343124541712501919369785610741177140217698013699437309407532442717792097604356274895483541988520720109299694589693903472700298377110964878702038865823321010039057296583029147769213899767697073066823853041784575417369881341724931356522516258104783177596048021938724331362427142597126744636870665476207497481290824250244703291898659929499123238091202592303598299654302474052932907156096288354079846261547798857379459924094316026898448313166892549331392897549643637770880935620108838089794685359673345812028311360822917188787428250258826504728875783577015191609159052731596765935535058434966646793065118335629387459157543894731046052486455715137239101624210273942427380036338823337251161374339474740315754080092027357565345491574980804835568936620659059104038185122142335705632572518614266807022018119539077051743333631479680715789290307356986074265597902021218982154819554971822512162287119140872069020289621324901653207488917675555877735045150172383351249190103185102845465295340009976987846759751192541877049129005662195037466629849380174777668620249544556094244304052622187851724237158883824402279871413559511000442142270945092333286299275883597893719349999346841896017927985609378641300905347024561072346059834120900673526383804972320160183082046585473779020676466258660343812510491003866862828433328643278913278651732487736850514577919520028198391091665799486877397476933753283852151194766978263502172840513286140758408028873245592738055713015042129573867285679138098742138323858782110307651925891481327400205488522619379038838845483912558601194070466131129712867354960732227923322352709257515536837057033990770230392371501283643607787627383880764531655508340523223206402511196319717358943585504343780618575876037298221411097874843424380327209214651436628944878857661154251371679343900832844415951743351623060687102296418404015805928249615157185754128649782240300133045791474933817937968238221088511564644138773907460261127429745553449772840376007024443982711556864320327003338052990183597034187160127694847476926072461952199315020933653081262760914324821622893633848960425708314223652535990833874254430698506253963283031161554608212638760915394895668776271745750441810900689936419139253362453677354692170288232500204822977015253381323555932778374072546406421842276978538029328262554738748385391540379261561466557877644912738810059258958660762503800402305680197532976310434839120582538645748775016859472665023732066656342023454446991817502841041540814885507132421909604434896190581119271020889556595229181403770783058102565831967445787037978751778799163140705183123549282347949665944412918375348332007358784590129702504215766940210209271994728983001393481611757908592270687304662903897186244705785019511023786322272337140993080655635291493191661655360304681295733227434101953393931123456430716650485029247113646173305055174054089351197779768799099594961801924252115737876409039651152212427855847862383817850900388922250078311974923449639217679916058977061123598270227993713471232003185146133855075202769301755368854472494138362225761957256201570799517077960978168927464726537919171919047624747540887397259895590745433582854512051444283307274263212389216806138669899447648764783514984207868999381247292386130726055144856870609917588606605050158131101926526044377144307268980120746981427752835836064902718913382837530748806978029202500000204262272972285726103919167453865945762986734517533770748042292405862834845773556135709838366179218310190782763622614674916168488516450749513808216825816408270987072039099307712755969543372024825714409692777063259579917504308260126515685357858335790622663100367109635060036746690705750421738552372966746035997397838711935719728817537668597202428749053363980396821147399346877248474455208435450879217400428694941581759942192140985491734680154163681308747644953863350196597117549140500817093311164094783488786796530863967824282151803600423072024425538469498244187180687749969957698610129317237310091655647984924331322506135526227168990562618338435161008322442522641190052436315329818566400208100447101349133906523268080925966758103850073631576379516404877690615218329273405603813215172080699494927674017658031256179290293879024856266367319793101935570792279465101218094729020696664581913214222205684896159738962938585607618926168749135814450792648928667537075739777485789545097309266165068318899329498171087893904323291727225185448860443234663054366441020549335100012483265738685224148867302476272144252598901558154362023876721967086978041274597664369856509525237613117647129748570021091211457865833487641016708718811807801112327567147229318821544929540252335236645641002538361502877076558641161145687493520394457450780201447365133593585429716275926665199166916003408233402437588897803586400690688159678555822767546496302058265019896848093364499703542846184718705710386930583332614320993669743057779191137825101006766081988442380109892499810099051843124146193580723767998796153523446459801006022665232852657759984680077592235457981982323038225524607399257432145465471750184921128571869028274685637752033376474415787381817629425850943694322957978091678142882759260258691504770994706992329544348478460265157579904399990640101923456388768386834391577512754535189507565293990861215783719638787058638294786452442872655402945299987767678436301517076217658510204751078171134105445785844941534156788449377686068891355661152832737141275389105497091789963459315103510283217678613726188092344035680975673619384339459988092520712830908191555855142698429910272896565669717587071749136047544213104945209045005310997897258192962388267577405851884544456714846705399349487411381679783519729460975230323044407443387535743202943985554678124234350504489246670522942846765968029421624127549124861297528914595868711880664144207031882170035926379231246643978117444717510175878728509983320535211535828133712654744832531644053143106371239698657948888561100152620154985946887505550552885278968790582254809316281568748166927363628130304750185667383673375113005608185891236907640482759130958213013746545292457395516106635927379932039679612493524931005253853781069907615356926962516572802815797867422922123412694610765838889499420131338893184812325475926259649865427458711611875090943171370436256604186349806287642519176115858290712150223080617939478906637749687806874057165888794017964721052646586954939393215740870321682341558150796489645270563584405811291661224492535394215776194272417529306766124282525065295593963088241168827535710553779072774977312112459568320426085388160582207146470208699935127030158733498539526865847618824808870709152251205437602723484450404072288917902772810010569148307998203620307789670016371144162781059254570978215125259179998249852858013529753161478912545368950397502137601882977654000014121246726571932756564428287795384417436309895929258098970002042705671679044620521988995441059389166552338942719125084576658480071280309385487424744494106968491285919609903745922126052524752091737312802381007417977319063839885576237044926593534474859514285826589969552237603086009857863576483618085478205454685039584497772033943085504877397940782192861715220307126524562236857144201827807660221191010789228921807123320911438021047840462612903939371985644291429401139785794705610355093829520665237216778644647888463239924869841554010865467208558524631815488298144411126479500391827096402892468104407479118773358445346987770298640649024005926604633602237824164214850288710047256907016285703094911589218013620788821748859778933070486495270455700132348232548497911262834696847815652259520314268697549365180881884397069066285228927070401470835707224381444947241998993317069197652347554949644407997766905573085333196336105990287913260280933096697912640870991349210818203742399397409024023677821338806037381045897880805731191969269400174362187739469294297504852240109265294914650878578817970673012682813314261706897951097749115008345418903150994646180887238911728157181438136187721384255327258535415988731046340400223470178274182160991134925506167064657826273233494148936783492901647319721530049249629773546018592474094656876403633854502165647285757705441190081810958009257655575233267204342327588405631155370147804022333235893648534544278152954474625802858955737029155217093496477942462644795553890073497331824752706755409642448777065320941498737138180148441076080822246612157728171451608186438612430589714460904796869118315072608572807538388525279727730274306319961989167782210456979043524425126299741264552000972641699704498784728785592412862901294229096470310872946245511526490712204010528330131664438197839432989716657322957455783523365224033897790628225539997603634522612830689548486225105923974919618535037760825336514890177748178890773400272578924749567699026936511624616504420981642232400976272998725556855352875170663172885435697844605246680205174583559136513237000453131566174091518756630100000577411312189212426983556597244107475089064857374963065007991260495537407030545798719200775014684694562646487282328558321552173170292766210491229340574965763483032574215336117589748640563367641418783267061103178459474304867118641173046804653049785957811329556279802075595021805180702767267465035392260817132784665729150523599309095376148784601496707776536353711191173025458362678815435319930275079573677166858910212161519250349900421765323310791568587068060973560201553471471360999451537804346631103142795066386238173430712933104700084984506528040046424611552919064058424467744779414703352918352959693071979709786597516850250681461341783955987893714695500556560996769344377378906833156009600418853189481942886966587629474205710635978227458170493939241850541896303772278603910280733483167603387895477184020248887553932039647762524583793284444282399440891950452023239934013937322429421404392026079180481807924169008672932975356130555525376014633740460558094092704826693415733613844663817065938646316945231366992535617462727553191520960944459583671264548345257773783211565994953464534528179595160526729273408366502089867816664109758550233125118669931300258399770385692152304224120871351530807359635140601289045025347348634745713594642717038500287432457108982292401415988634716033679859045729312176151023099422961242510917998778085367289894404922215094979685949300698174529432986641440041003044222206576697103383711723921126858561886227261652227710709645367847058827338152212476778441756650821698995963797295161036071348059154538978868272462622117350004485511895265131823447215428825684597450068535377036260743033421366169083631546325422401392961343581903658334786290137215752902883746380891457529917316385355748611031491334176486709079308652698083375047045764642632220763144932703278786105930396269706701531363075179694171259205434325695724145976053539961276301758786882501103945130206854882947571780148610296734604945509768670586939203123293262293930181035106440730459179766418887162777532676625475984124744133630825607714662818120876650122266078302201476511743349217633565949301204501730641378673729271844664156843601428851005015572818170412499652269443605517114641825253988662405792319508588247322723208670838257063708532169158881851893180114481014037369976326280320720850385868995440819861213885062540230914127450916435761433693745887630294880263957025610555439685731952608676489427701781691242041464874729278812162965315244625361143347798769177185231187740278932213199127031502835629692388804865977034505117147895997654083851822478861476216633980729610302052303459546376007497591465243346785872709184540551289531082841048637546083608374670704749126357187448136982148923666108440243923693630031072459557662107415965970414291286850450480894703624113797375468623231781790312350190845511513092447744533363830496926099337575485203177657566099212861530875652368809023558192534258375687176070727502166128207168933876376482811833206638034278652158103814948817338575809199699016621890867724675564987415886551786194239317409857726275352567477121471752057840039940810306600628862825664061963562060162725008125564021678720803253341478085430180464399188031681674300852283757615600180278402213851399223881227477489757845782512464585481317564859447969350744732412802002681546699793546513869578032730196707416007896172579497062970263115047520614525725556969353191671442135850256929745769430201239406509414141181368305729759260470039110620749615320200622314267352975253915101096946307439851264199080194971720288511763684308667552021241898946509739131193789707151020697422072644280799797103164229102002377304252248794182184409423517542505215204238346097618529126335540228002282838098045717626752483724260683985575506831371000756541440583308010498350591866584157936830687292793121094034289574931632490936208194047020458098349035922283943984285927490601955652452737123879504503865251662285806307371927623336463572924219875058365866610978251564767155786805117756046084355147473269880674763121062485569344405922017066407692574033012385034951206164854572145401410626109195481964493591090544597814356011460107673004404993544827859304777317993936894466812535111207098822643421939735743612072812308946937650480830411363874520167789723481309263974131003496109008468129468064768108901546869421778148963370907301470941560919398993397653400332696628198624076217427558850469435296779430990131095176579566986183988825152891820475915514307552996257788983136031238016051438187469964823817762689370291375296450625857875011090574581339442289287410198416341566554926667028455273971963363235252254956651408053993861755815240778250054630756868656988235926633035174808227078704823866144613191118192392906246949636175909921238154002373311925904114555451085628501055207928597170400468322540730307461427673292227850443063760834930062738687553670730185822371292114477317572512756751240505889232941701932167443435432329324471040891558917911551544492496816193697934593889177488582473559278405113004509471246063154556583189850670966202814545801441086921137254859056425260753309541725340825158002035953420270758562447485369000515330357520871487493986104039479623830627262161248935073286035788947002341930773200689922742570871768497025483213303623726413445175425822986418875719271295760507111541666777835677984268491026941848514636247543377810800083641784449211801415844702376890715639433173877901091577885784753241724395857741478377855882084395690110605532548030579764926234437650507211717423795769410661610561363251166874902996434362627339089047767056120756531223340530859575230842880946367281518320055633698281126169600585569813710041011083353423479286189701005627644010231504698089623541137739002347737835905628769138646342199408370984120992148026273027945267259563364518852333839576117187813807782763222102812533242275822324801185908845028334514665634258895739715960527966092972093087533085392225473596784705876281482991280308128686488601683308146329457127349679641953954721487169849312113492545812892170963098677869528828365010649607794006498336991216475856032810749086606201643633464753051957992733496246345955912739220326385993544249897661686792748227651714195125811280577979803416001601424905097462070689139284781782407324054776239312624723070484380859278615701247957782325325901156417557239675668671342822014264824974606341109046142530854637096786521471850583608948705040757637879833407107677302239442811545097048326928438433333972708722178823546459273175574347141374673129515797027953947121061992253566277362677350155087716879951608975513346268018322464236172818779569038931012985715456540994405595194526177396707108498616442676596784483225357611839093596370413711476318863568044333165054743871563574562149752700821374318546909376177806190896549908051608107374969297704444793054415579679152482601771976128075316592463878339985153774523790611166962892469646448813513745975701082393717988869345858494373169077153178831263466154123452449425617558020484382615288040363402148562238623460337309723448384158870716604737544903143210825379990925514578411485799622919802432563830301018971201842308224490212571966865861960476597662142913488067774102571733896816712289829929319518265039863670246692119713731133575463292551547769625813207340882119310308446861994842656814851758657013290144644693308352085085511243422216939023872616604625273771809334827645933142731962594626145614777235570854927271912962640638266659176737782591191633000298004633934072446949036211512496235457232650353699413856059545902379697772333930339842118382432537657130829051499425870488368616314511121921908270826373475239938804292779622108894456704460733158131260488177839805665393071371534125850497532124110272913202006750681158645931103696847127635861820931375275395084415199024061315860094104803027301808768246489064842821526107768278658116562938688915006300721839101527267554777325878080141825305342004903687071385439827912261506333688791599367112859196383684469045604157361423360724474016187807560571528222808004390437159564195885329880304521588903080599157183542983903562595217217515427183156012601692949652278766958174389363720297144117976886971896559235900544396741180857810547585155550441760390575952277834175466075276540863351931361928222677472544316444698489655902306977393446796525049976812688971663436615890938652224359739173793886928293754205147197764044754608096489630659060375742986447434693957257763052852785910697851770762568334499923525527000253916869350277864084638013541716746285400860258709264898669027816611493705700965716405346300133893980287403467675542022975811714376915203305442671789756653602971636315632890117454169790358433419011764311898870989751183993099847148045924866007072319527817008618085264941382011801153487055714701838104013178226898892896457708053984652292074335716249415823978219967366931923433601153470123022946593363197816794096326002757896000197906341814728600407565548239013027982385568060790407128307878938560131963899610663138596742496798667340981222462041823787450581779598365481880195183119082197018135463693638242721936448116995337487640015528551973997605193920519420927875642092043289175448561966332283557099006124343114178247780344860114907046128919320171974154238756432597731492085259870721051709204023361025378144187954226915894238968462421583898061481489721926120298462041051012442617883634858857997089595598466746419745907918577796566777760793906428371135465070446285270575240555478999198124941157936870789423511199317892150958753830284880582512712481679278864563322305239758998175792118184375885890662253333150335196044732106563955449017456257559550645866402628508884479642868055206079007876449428820260988313361560752734308802555099822568274266745569764787681145879552974185344005885656717018142760143007640852565793986520708652093064170675562184645961243202673593751085868800009709603387688738268038689920422231204598537787810011309553317108739919003108870662063605455738239396124607533582235006387632436693679077060055938879517682144480556858340651991815808485213598408908763171930029013386549936225279737494751066373498262494902534598610915114215233414582479251883854037657698941946041450602579790330045473696866213876854881848671683949881221259994470489331801366575037022798416571987520137521081774865950631576889658148018047320934989511410015040330879827186750526298755803766096497673261768795033897358051196360302858171628885806382402022879198055268374290425022101389414418426281544110883104354413724125499856656055587692560818199113488216943695385318137695978789498314129653795577484608148776001100920667195092598401506362861566466632336135133384195269552275595647815440231536574588274045926224761644759727397768155745936334967318387062752469385317687876091151750116588808518143821621650465445201992429223796292544077334404195012893040711684246632063437231403720618898853905585455832184974255469694486070831299119766779474097911678815561706192270350946201343606458545062451489472031432959728893207394002799226733229902855948166045676669300864099212868431887478159662451453700328827149231791972562822101576217719729538968200859824820893676038173750777299257661694011772224600778593119060655721217782255133497546378404526558077279624221109535445057320899622204443301878361859712563676398670596671498110410370861673215659791732458209619346390500189641519446997522462109182743651436502908179698236582910872938147157572712688627634880839351014665937094268065226659186005853439963148494233486076400168836228873111338875027786376345739544810171982949601872850041166762704805439512677117769516890492129710831495728403561528291391206685643573863947658397090021715485909303521327417321450502245389802002528169527835475177560228080001890779208837584953412852919736528251179329033071237171046969748345332305668811033441390371793751792587784734314861986285250317097318091746496288707073135134822840531001364675048057396016437794540115100579201326352918308074232150907592829246232142994598839558169355113296089738932214494064104282938257341975818266091137030347031118235139686069159844521536997684894353749084807507755565992858661148444809333662966951813182625588667473962007324201702966939897243810291810288727676286616383028725946207922577099662108034266184735261132479580349548816151032942308350021922891446935589073661824683808822766827493137080381684091526458175602532485714707722143563664885581321544818761910398830488890926636806976193744495334937183773704644226570296173255031736954956568167862621401269820099944608129616560330578266997958021432331434871087518027236620940233527597657015725595316722366637217156008619032828598791558143189482829003056928737096549137389878124001317440701470196501659317412773766374657453317146512523001600234413138582336150392514277118187903991313660136678634453966701589344951253962731322573756912717125201918891341464868493719104105361682001098633015352140996841567478818825477700209104443729783013098816484231651006329590803168024066400593797102954961384271052155182890620929747190125015976254922505117454952979530773874684616296577925627648550219073534709317439575534994230072333215654041536027268146771436258349672421051862807155984573054518637199559054019545744519937131670708556552172521145579184126688987619826035872703544013476576568796933475625895350238422217836601207347867765570994195654152623638152812311206890591133680415159458020407900244451343092929382769770614784707309977280632041480429638777001262301602223157819846496539215155537971049747316255359637747926459542105543977947346839337043573262058852060208687041210394614242064432726828097328241253672126871562453187781594769702855532092349864085179787434289400033693049336114780647110444229786953919189661977862655682218865666516198441270452779138937310681499246323168022810780338431814271587734578157902918388311255297236147212433516946924596201362170835947125044847053696411931046963035396332776488238360005834418923657974522508387000649422303720444876855717549506026939592618533964620483405611417756810673952046513015517777833608568102442835486173870460045453580480551910532817104688126853487276173314487550527198079212992434504347972587819823896494909225756782173703132414077595216739557138138442948316097388296003430704067031407988256599462025490081399428930098142360724678280562681509907584099681877277981294260511300809775261505003415638722337197206639873567921447981621062112480400599535228626464647313746803703668782258995209559248299846488832440873794590795366031794433008146894450494564646531383894386735877009718663563617028679010428987206795433451976086955059040797986358419615146090175024157930552432637862215623090802422830296701796780121716409693810554322655867245885504657339092339628538480957023432929649851305867792546235575134546177135514110114903612229386124471245328950163770248917774165676433192726158927722188042063985723751916674240609690018209850137229057629903583403602736417132283109140958621365893835472868553169227280622603400892982630976658360893602722282452617125895256648990144289236508315414491640038251402422434221838412732430028538246389446546330866812240432419642220415873696038360991731010171812082489270299416919098386937273871400564375732053098678000679365692569431398191665401597584579212157019216297279380021568047762783200014384782176822076313926394197441959736650900612009461989866652136831616229269784796680319052405413015948000826706774854652494409790403185284034999934294493519719622025017417222316142395019472317935581065528005729393507915920166158383491421425092182383357782655137851522649436630394315641400719509176817317888736064861507155885717098571260190507479360445843310003793461756516153525508681329819100788838783052812878644497759539026783840866955501844419978494339310565595412614309500995542514313702009410614835514090542079897653357707227223460717058551711977384977446267228230469666883976043479658424599559511378617899054078683338040718751604103771900707309741063287430225659354152447277065123941981487619111238003286409068280205746617201765037954470308556399577758999986103743587241876717524665784798296833272664762594635406720210890236093445390217783112898647050558772425774004135725274074744056873567379677673118379948686343269058312786709763936285446557361102701126934647493672197623698851300715840537631737698844771080002417760077081593854443237052074571849333679460357685110757713814854298122717297161652507450293756119139573734132009686173443952615081719959681422474586562186057991877459258595574650460986602164581433781957103166016379057806071783491809979576607346775706958576440952335291846673345927165956400340625189143791459993570090188829991000392158347902363357202201087548332377658777159802454735842325612537714133110792816881569990735735978120044208771285374430409090825144897168782553175499257095438850349331736339698146189338697116332954056898658991863689986674223744841791342237120209208424675311077837024787604594448470469315461508855659405691972171894164960463437421012859679316450391130901338277564893167108995727817293439938139760269912831898097817002281960248563169872436516463794112514548384184801644484565720001343262676987527837035588415729656483615889404353529367314928155547411109746460434775505237404149009357835564020632803317022224069222870415630103110422164368709197538223283686726216428225815263614130870282722591372513431999081585384031908900928698095390740687370883875435586292696868289572783195142367450141305173866999663862060338307079299398159007128948612200243002402791510353094222338902176690177863543878354481180474994096253419345158738688843180282485740087759149989212224709775705872809097662933548775948102259848114713036578866127304159159199778333270655971704091263212894648408411415189205335138450641771913699581282789637701021716210588761668073356834630542025557321153923448005322639290338012561830445291350342109569043691154873751976970199541849559055199252607775998908599620240279038120810538603714522557782774702880569002965968241085080123485490168425409669714719901110550027605610471810303153182031627726515732650532689360469888895369985362427108316873918683775423192798063483666023820342914348158404518614015098036515472830919238130253043808462932028288201611361876746461340039052909200723153061439774098333598886381312692657211855753977670271296302509579350749620785906685481459354783010197400255266617670883744551289588907951513389260435846847394688560707133939144331649595077969715699494506039825261396110793530679614127876324714446698394863029438661280741259730717474652616616683311050836980164127155773453863299682389672270002551645187959421132108793241609789121383471869753142028131943475916481166446771629224509592528281542411870710000845505108196900874378169477326312403011791413747340922731594144447900984910625856198226523142379439972300376521127472717482278068688520304810303550772719713933545872283915943582750294200731717604864342749031256608082354208894527309121876079651756503203751401404784475941487648545868267470514217667441055400387031414403087340252781888548272039197471082832397696977522205572500456961907243851416969013211625015548263855243366989262381335323425680913075788059043028620943443648754646782222486299767480477368543520589138121970535586246826347810350788184780491766476101413606848255061272637175683314601916615777216135894035563201864525375937379274002153838186145702074518550840282859455925421140329853220459557483002835906525825926467431510028043316858729779099361201726060999995671471331853055651237857516345673370865909058971615735032430349385601098837095162397759614852257976297814357677720119826006870731617478374621020787535291975932314344818615608336080643133789173779434742439292047743911437966799491934068907054421640146314090563149810384242043596963945481864206486686862242550001222947319261884140958443396346142817161336982879398321618398636713131829607823467896856278078417383008261015802458718485885929122781330219196342110776571988041559877749483780559992232776561533814370440390630797433151484216284882497025315368255642379068295742163186959131966854864799580280096713793653853285578055096246235276516575435537440181622899733281068105950667004351681333098408449665726242675836354679393361824541373654452527949563916632843677792849322026228954311755070380879938217827217771967376865820794807780955129240754110846987866908019465676308757338088003235868087628035799500834902213520394014008043168006086130831853639166494240443296169940397538895198244012594894708219323192149367547987853944017952912247035627322432953165335151992890828500081230192729991745623958909148303714628027613134909386833814400777430129677370791309567280493410847257353308931068751369897489631518441076273050436026727326287608364248309045299697833339957284090453805138645595741813496037661264221976467050031253176634431239246826456542009001802128319974089550370496177753404391321060264898801817556054580047364993597272720925565309042518527490262170794389355977303713484082110830455996205520195119032495662824106976296724849441185784692912351660695203864265332194342841720291218209333694454357570531331209552903194506591790809534856328218451089091145859193009834446042152932869607559903255508845318400899561123400242141231477362228720016634866894879099985891825765847290891065657207431002498309831726337013688456460659924041562957769726261089457658858937379177124569455875838179279583301029952140125988955641470396508815145412995779711025271084945603501518888288655786173228587078014516442043975734800221431080324943043931429635021538936992233933947428989493220273830549555239651940120395519748691722396716516303010318474603388183754884182412722343015249237393008040913163275063404615333064099453955376576763112700544713901641592525965282074429041903611278281344433759093019221099941593905567191288992536068356864177888275985153732295042855843150141226348654978647104894319965150889262420734229758867512122224867811913207522416396154603157586741303016379068416838544000521971850101233848616471784119216244038287916155513819024451809959337860067818374365570548154611359558358242925432137038458518894348920649804679663012451069146764613703502525540372789360424900922046325809087968160601353013524987543299256735586658207656731688464630578168151030066575320698127315917517807621016075144977499504783354161100608637704605342206803193518958035923097619644680520895956363748894581320290625304220229895185531272443339190942993471996168380391665979739460092585377036387773328851882320012363440903654438258769765212181170681916293312416656784448879174834921680884015379465164583065695549474843860574029149596869448270257818466967545860200263420016618048564142621192674468950983179892394349021339351644148513263408513658735304504088755342722503679238428573671594915803406949640882922138201502744014058083224497841882037564506305611121028478954446834448368354771464510429205299087123996048535503820094643117090949304724138647629010537656202187502427986139731385441055063654512913108126253222898812817602557255515187083929462007792858301322507593623838883709015892319416740197192545522791289274110269212141630087726216703188291880758849024753212913943166552868542240709904956606977411982685329885996866501899550068635319071258108986689987758843128328377893933425016837266469187956488498662460582782376936592745202634880436348850861459378729955347045343729254708633302229957530610532215497381324222760453581333928111710045160355463295438693765360796632220725260709650389954116541922640009821792428447926294357538425550473695150629119048759608474969168792798013952777040991477125259603256779299998597307905186223382670546287623921921032296069571678141249733109311987971461923298297508353432172353994379985731885195712511997946238201310437298964369163630014949746159218190096921789050796219039402394324319085231106126294235542865163205580447691455157416065369993438701435746295051403573872239252026042818559719056840757977992849710546038917474429301914134319485467205969394558070994207227801792497676406029975562136718322156941261183800669664065006826680239108108177932587893839668781411046185486784136202377580399997299116823330434944161676959909279279246347863345923121257589437700331732594208595001158175716659411028994807121037925731933854349999750345202237147285342622543877241363733057724272662611986560208020819107567776542079841321958660884464286558653241507733526557751936380414844121192726946729731745007588675449843386098599179355660263255080765717871279650978952312803363344658589816629327704077715908138618801981646404567640005958770411192131984910582267564463293073582560710036769643528804421489669469166796758592479166140470446602560445272230188928725869787065682165380502000537028240168578590573025711299149099140819483170161845483720960995612810460153904566915404984927597007701277760032285733505931768383380344526926434798580945071046222816102394655419570099033605739143629773186118449646089227441144843306130007483894979019350873151223754474165825689514200563923224840477731956309271142894537446449742665081118925636150118178399247104449049842385461257366995439350361565412041749737782636235801552980623668878562569657301882410989028034860490129851921397969339813264129424205681661589005882723187378606236504469901056358324110034892707415797459610508194160492594575372567638642000168862491638614982557941983676390318679507701176850137057512840466980816450368153441899713894732019895569556831123527187749857149800496667384329637894900744747305076110830609151946953557892585265384020371851387248479801425700473941850607295665740707809551604138185680333147380047524267332551925370454238077824016910082286953574666217853717952469840929573860409975520963518747128895169479853999117823972880752459421319014119779854470237323575180671248382525497073727027724439920354166870554730353968441226061601984225143019078387908635221853664460670058658389494343913768426683078149295527546618098381745136952731653642981881688287815435729560318088640957702207805583663523769310164487533345986839536628199683710053004019304512026899362313077525235346198007732816568946705925919692135207241166128540065530660440126219853526807147036189255094840409326910851292337388634306380705456359429507438150281040992548772531162399422106212467928244916137982140503087049824293673188005624612105339861581306023509448330365895672028416351168954138556123542812981836793956084411720112296559670248734271291013595948617563228431871421675687503848824168601656897205173702834125249766816530478495855674011726808682633476227664135565244235752989139513558168867277385394045389986112748314159051111924736775153914203353401471559090567304936431712699665288312383914121774493988287804801544995706499650580829982061199326979535899827306912905041303750847342312585537048133113412703312967689999302894154291242126590252721272730899713791957295590590441109627838107535500739123107538672452561018584889999287719555863993791926432271959311644042906562346339277674055998324220349041041579069363943246174255287673011372419400554829857814533127278342197065383647348905902022049935782522230066515145444738541340750825043145975793898034630643116313162381534733319809172567853533938807106450847416804590714534642568776942983607323923997399345486588208545176938833060301980391370171605896879039963339043502312552814438024293730269840800593382096065612287956960305033247649489892233574568923795344953847955870226750534837713028359370419632284416922744644693765234788864374244172613305066746610257332511664930192052618050708294788713594855761020202081366616597935788351883010664287515504769729517104499778423372934690412599308163386536129203375838211040247165177971009880951329846362654419930372754882218696721687131869570937966340470323660533651537110608230414736733538970208505306367050913932248092048658710440809656481350595313068218806675840716623554762655219169548691680305114180373995708195211848484804277085329616684509167190830784712718658278508364580751179806447394281961027392694924038273430926024876923871373068989242725145248419670877217230755494816110166702853675107946757339960875953897323180016100830080491746751448180464402043541916673571706414585785915885246592396946218902218595752032028742277783532585907985845284366962094179470419221813624266874279710934132373900752019184169408459309306450384893679943414477267335288623322984709079911648559085405301428604526947442303731486052193688192192374494476558270466842227883202472830943680464177630174142613801737644272112051408597945185050833545049264806540659729547612652302247086455705795410286204320942925972133787457834703694856288420760284933180034032346206800517911301620737289188089617271722753334512877421575049683070385416364813050222896183600287456320499510336753316188369936375897605557788660685055006093254813955605334936383224060915185833392832383446890932450426949652819830836610101658709703735515676930564580697900427546255792211579593877753689666668035043226120572691443869816636175949705943278417326869466850235037352704484188276702699613686198018828011546831442571405027817449039056669127202297761410518010812812602306249957232845725802821368695639299287302556537491875118687782218717730331229948348436386766339076087696620074571057367509962459342373833230414364741289810123392106631937599483702382302278216757635680957636145780790181260550980045398131743137007819188781117411465627171481899892367284595437028390895926293659956420983270410443881331243227986611737605103632481196375837565345441664062479510589951878898651114923001654688399905224222747229159985834627313754190701171623969331342163766877193237223911089099401765120297391772553444371940007778219322591166914779971344018792056647024668656685047451601671606399174505397724971932610149578816706221661006006271895222562938664185973195726278498624280041154705232188914254330177031045084796486498206833678048776994766981239930448844338966379224201397651234867307858882734370466742676680000384274850228720582925159881832595745367283513861755585687604960955257850628403108269789137639553088212751974344345158684911904227770849947971892613043206660783677670167119448728297556474117655359439199713049041221014036873437789161398878311177270025682783619333499107271907663067641861356047320662271403010946571960670023334854342735908581576847019970284084706082608678482674580669137575189368123364036557725043231055938157381018581708910280400886266069954085445744397041042100237470497061336156995002374494239953225084044005573374870256013426726734770353659932779341360201268426679732715712290682676570874741685701006878873800319714064250985050699006110618859481637558210756953725094696440568600644233557006210616264390082660841861811935656666619244960621543599979607688536462264783622179272904909265642943138893915751691027310456258814587586831986889625788942849299810231878087153866685532617986885794844566709068116391849111729222424132221971806052543352605691955139297094508666825969326416837640097253253585039065766727153987659234767273578639523704103630727213117414306779452210692712588474916707071316943144683073194934170929872603338147620513137005531944381644299663703758967567170869859957416017045040685318281945806615903681289479192944446691986748444317351018754797170434658935500802514974733806029892674954729681815455517500943195381682149093888646056971426139200285916918518455258783477541299065421270245817597562914577506156806430879011779867867670444375720172429852449615157591156559526285591470123595875581633418168891006573823450352871585642184784317309968073787315782699314239696597446079592326414873381589630813385455969696572753568879227672511645869785344990871330549240701323180439388228742524983944939410805498349575307793926873078033879667028413936832601223625522276116655215663885119964148071469614159759110597316395118244574024816863951198308270483021232511796356505027233724392553487202485814788929698015464975106585721250236781629569003774606304880277071740857060281874229984288951844054657397767099958498329232755839107977541833716652928862332283907700776371528740920413330161899012155551276592425899900746032156034083052112142935193056600053512156006233762371601316497459336011579521785309316596534225953420147676373219052180540733771597030145135503653243417895357329510713989057103078962620939526271751313917663665148626153614776642039508547020445327886701848169456665621186350887152830821816217562297182560143839140963491471257829727341334926537167385621542841674950861684309615160283536991629387295467062869682927544679170970891136607977443789145221692476423309040094209139217457333321530228851927200325791135934384228964188217185473648676937124472273070731713355804545220273319198169267351787419578422673405143725223165139634111731795963329485338863097121028769894760953760019507573534936753419838157837323112382260500981148954649989670817519096492092492340836578208793534178691790528316590294743557535804761687355135052605903403004772288734480982334431533450628331639959705688014774233780727128318953109333826962299198411240235811355078633788590068709126585598283908091227564538633669446526240809679686829488714530812737172271247098920229672812971470019592162345245022541797687136570732674363339923145238383382001806586119862660266540174823446185979065755162658166796601178414908289393303608676197989370890282916329785608441287531304207087055135559323706088260738095453938492566570593140673988196316424580528329723625981997862732166266958170649422114333874293072184262077549849371115048383432693479577295427909030735348475872217561431376841710507091776639987324204507487376765544634488069277954514057832211754858169097899977078911627399784991212267134384547796832541938539257206058487020967661412620635908735577743507390501620033713579976733492756492009599614603866989391655378953149248080677219563152600396633470562847664345332067194738828418026786840496176869719948048569834375894995670995370674602705997524037752474787534491658955515358802578021694246859395245969218203407192882432396922247301702174027161140058723412566318122784201939162689877665878284429853774939181178294001609755786964451211828864878725155696949004929952659984221923054911872387804122303930009869021169794090053050237188980984528690713579103440065021670929364280800115949077658596092475547181825305034716461185176283513576617898685583189058420602209538758326822671373202875645465402466041020194805933119298313131956547881250058811910306178657509852554340429082897997810527628888979789364663217659481019864551160060355035800112766798189842656269359473328120785301768643278487626341928285124809057931520600025294336852697840544256959722343922414885117755828713593233013611634978281714592619468801420947190485143458350979091528437268116530498821127975492936596456286271585261568870114558932303615234368375394757144888340370069747266377377381448099139260329902697658246759487128117748570827839906387858847776573080565640784497635829877887112218683162345569961656043798069759775900262458589852869156691548554411907297953476167406013842747091060698204724004438910674634463992353570931683703076209103365137147864312217480002537763892716274497090155266839472670738054943345832094435476778736983081970403298649586414770424426350960266579193541058283644991429150444075063380147232286175407762980526969854673246107692178221429694015906506446111284827276317091593885262837354938171004890367822401968603381949236827256286861111750277431377814578454256069657005388158910466464594873755591994995543953253542506341369629729080537166995610834909922891971881026850789907568214498689149506709187658789975059306461617087339273198440456729871653238076886049596043371854195816969318116914238860675184028028615127450648635572643174075761872099655060715820638658147921256769351089566468614718426766363653239053647234416333693408206282845250875806847442444725770835461779206006475758160519517491061825824987365618591416628125222373868618104132303130644143209705546660547975301466131837579495439226201842493775078996215299670696145278810487007029290361010545478412457066367417785976614514686176132197829700499170531805353462406584356552574222002959830076194862703228706499763314137789027513415336470464166452637098980529940411347662639065942452357246465148475901412179877725759433949502681514919798290134517247207484722586580061954771857449906548495786178796549162561904442052278582242178250585451856178556579740483494705786474419115780827444285607320759213060913414742308859783537209558553001204317112309330656338061855894161405696651419820226947833777016161304406090198218413226390190476260554110434825612311455222708843935513076827555094459117745826898678559018750621342774985462155726088459527342465112653569677395209074629350781401661599730382238333651041643613193512078114845151432392109557622767347565085348440169152556666624114117053934661578798968056948293607046839871748050457286729580810517427865600390998767535438263153047665008841132692015438764768659919252324636496992254118273991627198178218826930416191166504960530817225068602948996753186206529678598004686968195681727057203773794067985548973193406041739548905315453310652353500945951961260714867906451170090762292516526169616997771055012584843523515212681166059550129577832870717193165584961520831564833138694347277084804201474081048934918174431151763042731643640373164061570483185974695789902514443513878799366440182712728360548938739624756593381989114368769264122814054463808070603458840424104940941398387201835018987569811737674191909431652099095219367406462956360262925975616831415129082425073521364397105877109845960507771005777304520310305943444391753136468250105382813479116771163316256736643416819344811954669284295167508374881819380592380621027703023091453352179749874982957287969338813169234684086719608869334756794672963556296749719346843750418541001371458543097856897137084852765927142663694332555934994225016147716030388750577686692366647391959358816190055658433386038684156884599402219761180091187567903223105313865331356415817583706797987596312335067225189924919828778237838157868968299115590353346568894369902734396096742179083398260156486868632768335866534126207019016704399793672560328448053615484989511660227132255642088095308476119675303009206612094778177402902335281159555732985259566621397133642611299851885712533396749649156355810921403108993876588833558685048129727416515964862504981803273340170462999648380496028968947658453809341546359367911929069816641328722771693828981773998588739755047678299322949548492293537069325225777143608129286481304658480188661605587514004145914659500196326771044651345033693137928619203429098165610688139763518137621093488997216432949364891952425384112682770268661361246996957885558573831364477598168424585006148340819127535364323908912522747315240697690245590520506010748038643406382734554221177373960401459447846539215094687884971962041350867499312582724600303343261268039488275171263771680370115964198037209556933863713925803862654200362964952923286632733311814424183546584250814017378413639296987678624849077671761983673957078741494300995906316154099336100995867087042407639775544160790789677952573311475952176030376302800088656097273952474945548307552331418273567925010821102100486193766347614149331262612940271923727118484239835861387141927226880630872017435894758236378338230073987887791185340218386939218771923473683562643361818776925314797452226515072134345528752543675407804659529448023878656080679264758349175280330768224502535041959392123790276436182983428558264474418535633620566279497145661789323802353871279197149056217486081840726732947988342520575357935143696894054244170643213898794603855882476396060653109339600000171080584793928186060900890827578050123610452443389656710878898342659794037209781492143522652326027169666574586213222151212392573804807878934046795356224854970415043035649456941198884666074027814094189342127541012883738198432371949926060630686371171952843692760849743495378581624371131893702227588440288796527075258410677815260006807493608669568638588352079510971529071441137719409566263324796236533326523248661377467809396814306000872314633753547895594924088724977120841885656867837273780178844836004799360284264947488747590466341031959054394175961958755285260464042348253000215817095806285753633148222857574402306579225119820635197999950828739589940173229331621680604971252912500228500255697215245579891524155736697225662052354791591185144017661580775847091061575699556458259269794103448502165510292504519667046376209323329681207894433407558352041547489010257267075591903094471735946646666232373951248311670251351525571240869917734562552016740436459106530285509402501655102768735895388963629011791059392988392517302161245792413331763817554990160683574392893619811115895227095275804922372318326855376225235412114693821905026994292162181512243287514584596118560772266145395964178152294089632159017692717586052896840117509345579463883839160279330312719603648103375547153125802569120655573182344101714660077378225956279610542638372184586679218264432206598449641317357441284160045732608722957444852475532727354838357776061419959024975851722879267243110530430262547601692196110095516832506744374358895347698188660708937476910563661010522405613851362729717491473548039332630657291563282058309110946140244278649641782138638908728271339231011655468716713139852518389419289224577029945832664943795897205456387649779030969395626190895833224210108034276892722923291402631175202318270979921197984655716287971092048498705111379153066740977257691006103185852384556555028405867969543683285726544380477130911769608022069986051338862535242407970638960290382252627466640784937980603084256124694468210290385902752580595201448953233367669642432613662977881913801205071989345947797642806732135325206653465213046533228888015971618696924022760234888655373460974286984225101340537291704279435833582591061753652875868797444826693452580346516422630487053175949952439158577729438977062312042050944623671620446841138894558268904739016498168297537838849902201206899995789253644078307499314321475183027459942293614045171943119067712894642868119377636897866102094511887283318803620212100474387184105666599713525016975212563477859291897280174632411333293795579528301320426402675971672817101598168114823625618291975481344114701751523707032012835615411699505850411609612380044575515903449165089036399667370243425898855493619919931291190379563378613284779802293948957309624320563289523280912368623962955366333676004340308734079339673075607174141117249013450420768921336338293744244424966592827607779101874935075421816070885780682837108540352929368234316455222800258697276925066549706168670161707236417647998076954690707944542135414154172951988550256866270672190032957038304712680620060930860819402456633530168767306383686898269473453739361380547976331809659962355275544801844311273508880968692360691548724001965873164338133786310892444312956146965004005824458677881572185598289501693028634033991641087209933540909647105590797946223193507026345150099736965194178947450659450967075527311623708861338490675334149866002971097355893185354468539849413171176691006936361490935499610500344846394231643497003055702242619163407401246762577606898365550183802917849366569782371117241034338713020723518772499542328750882715217969257917915023508885325693634689886942026537765799729573508792410634730035797424126531168861296091416271726591089656338149211725630694425299638754880927774204192318028704448418079167179982621152973029172361286110248185036065558614985010245797146481499297677677505870187714823476714912597146838198861143855320546775112712892731806032528667062323682774056390393106188172281400087634353096496489566140026888797824735200623151470589077483702898184872286313669367756078814542083635402790624496962917360040196252982933110944847406023145585922784321062288884998578481613124313774503843276194166137520248780666308941634196451446528341831803163713321127674933748270480808164658876967660731442952312744668193454589598179638041757768033720922901251372232623306710904835476830145253842958662341897498222100555233260795318367489549005048567707797146076751238719776936958318432369797117416046113136103108479117958470848293878281246613468735937117178727093548149283057029767081844095271885115706126811097618384382572584847733132304414904157364793925111782863634958468819773528735086778060625219435198750600556965925385710217807334373532210983209171845406070103621444369216204711085611035917387873270786794117323632858176543637043003902067366990395166384811559898011457459585776727033868348111799516714932015967161348693294235373548477383408491836053025116909642108485041692790938215118485182342578766450182872672929689669405427050133879330290095632405216933655858697779386828171468880948013411986820996653195032365413956570145840863952679460622413884292424540460976984384348959806315386966162291639860619606953748641945534519510335139749988213389481445133226301782147928606945569411754554153428557317748662206847030322871097662258341837856078225680913337637343999330850710294538314900599119474835320587286594127029999080879331172856717605983299507599823660249748973333047936498992331979373148123822409207799657052623062356398086089537760156474634339394768337891486464871668088085486967790976858784226244167971830360295807985026289773658809787791617565614736209717977433192930508439100662327883531611622789005637713999244950850371433007566402306043864786399560073759795356122822674184180487306237711146373586457725026361403823695567890442089628758808023266196672948594133078509101136676243793289531926927694735208158872594412981185028043557356964006429869342124513123906171157425780907025859886303419166808386457549274134654743892155305560720630460691819670573410559582709321690858450883311031326231186777457345857342605064104313024032659368946630898594843062907366982044991887834480987818904060456584478806383475105548905820939799534168094605080410755150519780779063764080082377813911459715871023049870324288208902929104620590679450224493118643010907327281798888132067268404967257929628517269904306551411009214774131942689328113872876280648987170859052160957906474897300370860434482330038014066333473956436155121051730608065144995102090503380044906877666439016039836390952455210271779478706013251640835473915636449135742156586089331757213437970626334044624490322351068323772074681839831434987993751818521307635471317787013958202407516284439475676542243714401557304539756530103952555762644087595029250212116449802938816325289528202946785272911433789560419461507675101082579387588157136474918065629731044507397080924543573688552046833591655910243303073627254473975739191612289544764999559122443979181921572513642099579750833347496353800251679309416578214234336319584457365889436786638732652302459194591362102763234738732484123043854028260025100233480644241824138000033937764987948513809908546686242577080464395113906303621944507319022032059434776597861369857546106609145719418225127604629621661438547739734233723337324763361658399787603461593357073238448993358841304970947336257448224805412393257657367568737789222115435464510884650989217694918357294101697261889989925692785881464506695233306999549743933578778279673942893741175625115627225541974175276295901860036116304766032981346695260452388541963594793764003964320502614419768643741919717084222921003614311703231505781899763502111664209061214161646861714392243521161392845263827498760572846681355876123559964555103558364328089177419611255071486539445950934846895500195153675742134037243075734923757119430945778276410231390248074605061239805739107681384291673644063363480693732241403309125356912953653519638471271290543071937444942209365288604468531938765490563009826966529724698919583608643813529338987836320228113614073304794174104087767553913774758199134746534849890788981799259182416292263178504666734509017850996678844256506850213410600760109562902558903035553971757988609091637848455170688413431840615228068730617928346066232703333561437157262814280223945097941035271314344677420736690277136851731142337669126725784988570873747483648447746854660828707852463285491713825465245342949641181958102061452417279681962328988372642413047808275063316460448054922463785432776110261951634057642874304229739491439528668401673429244788777624512079662367441599541036672862668104601268837641033809894443281430569565871474779417272206598134331355706618822435950533636798015498893344048457965662218962055731596751431519417162390279375336357562826783635170060624920126068328773428236087082221353046175788930541434129753670793690084962839240795319512765579406673231881395891426145939320040284025882061439339455137649720506311731836643954497447873731751613856815320301069536860717057807351979726127961802812445262848941475596390355389987012498591022832997391249019290617355526071349879978445739932330326049823208053028495762900411862562773725771062322200372998586835988142751410772409511173810847891823136303185031267676543751681832397209898845218325349506784232989797407907513082510487911241764642481435438855565778962545678586613371578484771872017536834554602335355642844743382141984640631434405436616108261587378672172653757208090318111145579478047458348537149823765421080739733045987535507239927748844002621414760040008576226954943372127910015266053078959656493681343967938188999616345224883617406274190819042493761632659816425109403292805666193688049465665033203176794295208462517551576229919216716293978926425103016396169692887991888453850343732998964118891615422943652933348908595647883594203311716214784257087887941589059504108996334918326087430426807255319440052532145455593470083539589631427608090221493099641315433142966203172565687960972838710605474292901189632394928848282341270726615382557578047697472322909814561246992062662118172646381882113587675934302207064209873840912791299438400983270720368520449167189701702334701610794486997579718316827889592137650632099245095559881441724508056455395175255603095149675884480431644002282657693565522757425196821334294192783346413793027048702721134636793228555330031513720190454839259154567020169365272599541432747135873631312377908561942428635924025596558936224642098768485635281232299129213458916343586727191916557797963736145087436454979547150361081577286151048519708592342687436184542184191372279553093427179883183234101648132390997619449371143050752963601914178196712403115945838301822402617514427916193891327310996229750218105283680133760008744079347757916685167432559856701267187804005049478944585680920968786773914005937736692291569007340000395297973063519937315844824655042218740884267438937764665655570413919561358132891723255407460381200775511080212027905908257801227780973424703931625266737523664891635045520238371212371179057252187072586925786908831578413383039049967881481115685365597690216410449635233787666374127903435344818397624058148340823560962279308903001121121347528831717880317945747216517234680810688024974700730354689142013059599116131374663087776330524716681375993390121779777125630326422898448808527580079571191621723602942494916397690359579771606243235150918182268151069121290782516155570800774088622171961590300316862286221135285870659018766962159376986980642668020025812204650401600058982296909703043098275727300282569075614921137700401010967865026113231001257954269595905748606846302418479213254783281530544677708167256331747858877968226747284352548505468917880666584432468116924732105843800990896658591753886378894328010906649771888696824038856949942634333382834094047241723840455308596938043981654631457212436568012242515711096746305159141016374729265930632465158216576887201665859687747301204549442418192279755158032879902058135051582314682448306637381626677619766271707258380798669493221720561114446150516341332273066320381250686780765704381681131144989612840152682037833863888146940276598750212932069427827797465167910865440252172084447732376341219569114902332999430067465997301018226255739945750533782952240084877072184160502046036521565866661552540513383928770257443896224102971918561921104299387702112944205947162756086929998589419124963323825125837122609146684716072074115689962910849882801974286404558727775352047693206340354615503247796094154806724427748831958371001726000874467670071631625016958826005643884868335372844088441598305179137115334285369346982786692785023558720580635696287558931477990493860260552813153632772153539398832398137646761896710594575507782578856825577190586739806265694286132747818155445400004418226911047943007897435173476893319347906749641629537954437421687985335812026214295068342334668019603626141837582156625711493016905585467557921895054172576958833027148688577071754927520315968745560979420937394589449462729286767779660363170911910655279923066687371981383361218503074727179788076904051851196914343623781252993198844416933685985325384132110261135234841018944572305014209554543961392298497841148162687748780944577553098954506469171992061660674161537781654186869304729839559750350798681356115455910652611904482528411764928562458390623325992695175914501091404693746985487450338665178601848917303822583042101233806955839609857037755556855249965313468709569516405316228682846289710220938090719749845461451000291196796087088290160491643671791751137556643851891760567836777098134532359639047996658209033132789034232645222457895404651832889374626668055460298266616766381993259122640935442781792006519541769686045836353532963248387365351139347119494681129627297391169258798435485066646896646847897523702093611261089935407700391401537902953790577965744750505055853961182885720661631189251053048503648269827301622834563011610223024386328920181694766238474396083978295550169832776914594481884323861944751865951425548361226400448135911237525091306795641359683502611019324984903316456511593683742801607647015481389218112729823740522454832148854298706928437967063556616570618155596699715660187896181362506650570184632422951070524750210709733930556523719536490072994735835761200609192780622626746658386479559602937557961402285489166042567377350953063847786938426844582769833936225329552596707081489911936485162348119169116769575079457908204313209978730152090037786938378933072587677151856129436550780959543890637633670592403860469674422530959039091669316687063138242495817238995928179578500290281840470336206147211720896606926976746904849741416059300157999377249605214620528525825692915101629774604667213710230156592105684754077036656794190403901159648506447413577738677568604306975714365689349580332297927909027273399315244103363308978085164902124005194614233947693368180745129193490664968401734046360613203628133693156169788469513714560313878721931902401531593361348583476431108821186770496962984040147724747247643471062413517086443816366751554779783687469336319436300544399742764439559265588324082492946224316780806171126877674671453496094639021803622178819412539493384485270531669588994338959632404033819966647650122783408635096521551157127405760349493933550341003831414992537329504950188839421294332019632788629071146796783993903249912537825853462370329502201626239736285334164303070375423993010115443380625624147278466661734403733718119177123527979338564240049311979829732825846494395551450187936345653518111619516641070133411445281717284432684803357958229127519484241810352731517059230286405976967550887743150208288516265619660173105411432498952022379077081659731742514137093462556373373571239299927280156643741665826474332543694970775556962003936296522468950535826805651056888370627651063859548237017185038141143638459167540980299910020591716928987467494447607593891538613364623155659200709370396160392438635668657855774687801706066207899567028798296828025714241137087290119283485339999418414303162238885269444110109542402839327735890550931071790869775820958349651099199391203803863191015560393504858869933713059293077352363488554458618772283841474327244943036390321706935472568764936821693982031449402436652050527787177582622016045925832862373086940465305450295288610080518504140563186764299649326699012339305589303781605069268821760196504178870431633617025053972650565115057510309930165167811002983165118215908302715254542516129598346629136296536272153540172251531000784175571483506514189250513141176955674996958222805285676907673567353829895431281154397410816272926119072016463853485336411108248735231233770713313022220634851821193248988751251639797649686834168295296362703115105525679114320711940967903866349544881695640519692556563778941248176197815581003493592593565320283422559309940525868663098235181908172786383205710032975275726418813194664368078701867590452597920422723287428062945525202749089842285394115058926166901355111867842651632078934031129157771594060659702136806683853866664854974088749718623294132201021513485599495457472969656375739496849273155589704430018250049056044416141036464242245951489882384498177928917622097443677929287542958259017766333158791696052071529310737482801894921758690856264460880549407155636597372092806905733861812890727907695262359797651575624026389482224563644988096699347667692136228297695378456362550228909993430719892241117077168220851636194262057783428536141503496123670039626471964060551207588419706805509039908611975975082741806881697113476298650454210395416838201288178348870307115701434450946759826094055194625878660153562612693684063980220641806193227087470677569544267365474168087260754921330838938668497677051224687637320478675916235988335787317116957546466237500317424250552881313593257926514239954157316768521046851819304511662643120823254729588086684116024859225594093408608300120833830593742616090274623953911696337674956118211348221232704137373824299010714793630708985470418835649867529581178776097138903786586047882818968053429676480563795610872049502979836896272211102735564766344480487244270785891166648387512012105050836521570751726811442023280044721948470573499499106293204123996624585184223559315887556314838984186282655077702366509570104040577374656969120165207062388949504268857828575850670131280739891661146965803474403381525060666965631848819796566707584996637579939052056062661623831226080357992101293218511215499199868801878573248466950144817075792276584601772817907511936259249495648764300056823140166598633605173445847464278547434294487609389977076103282022233105251935341939609025414297068128175147938472269761929989104764534308513581483966162515715330759743517516492681529134630497756854975898504418486145922477032643311358118533753785717383062268029259024724431339776979618973585809323266770987045391842186942849759007143624197426409938847698668348660533930397430862310842150572582940984441217370101734411082577538453629053858627304379073984071696369124485897194120808068203401685210498311597688705828860367666693895181741002950404805157030518185668974719940907029479293072327784426951282298674317654273924741898388170730796439093074161678914517873488470868961295969398238101878956616641882876436734308945500973599611734298554260072754171327187580964654371829003982124723807309182846456672290243927917758846546204600182038483135696890863641503873532918791679855514447909882795201314573520205390349940959739633787929623618225571066904810196908129088678255761958483867273047713970028559376613296769854162713969455437432094763189234163504169613989416088222164406435447763156613056905830480980307273946731214142463179726586867477557565763463825987964884637743943439660084221971709091748462919645852903534897609659870737489092176933711738790128045228413890426943139895378561793004482887081421274351857250503327924757752339189525490446411488643115394000549644977969774993963691342499841191460686197861830752625211838008838245232847240480710574890356213977452513759352511290866592096926521789732978141698710181860115787930887441209165804046278990697473898317452642947399028663856467392100274336368515466988871836610417680181750717673473671225213025459992110480487074966514891266874953375641938283003627038231004648661073929743161776718006545491025648512605562941274901585465934535487394412218034349630709265274004414305776463903740210794155005194645547422850394751406722600908785389253203025386595950535628814434586701540714875227900692635300100877563139066325251451952725172620595983916164042297724741373709015864844928235626595615617673640613326474552878989518821670390256859063981628077777638780144186545961482938122937593442299368175391243909933103322874628543241187212705713437528865930903383879516212578252517144776598359862842296929014714125943367014240865570165525447051101897002493877880181476623938840884248734779236842652921680071628010379292281639929917260902915907650134430741639732641334627346868093778719723628274569827779555842271581402552651919386580219745787907385017840210554275212777064503216958346354948081020928401595227570490961466885671335619090585180260926668165650223158315540939989094333553693771267438215426524371766451377264042408385970755287004501552544882998311590906933454920055056277199957433788990693078465965639562004328632770982880681940017501774366305600620679334896936064426074999705830619453630571191695941163825523219742085997344189008053580376427530044174660801557476586046669463509216632963759715068080832745402668212125414654147766331712121174587827018828968449827897215419801723552945191281217494994451945382046803291012897198470727538104603392177715917829803572362535566189979579349199775209549390778301898595429986218288633452532343293412201133203807125598769641648346020816188146671720619594908734435696975839046441486661023204695990228870047526049297236907227342849738937314521207315570754301508944360278933595528392161539220684742588572060086243330130971891943153145521344467953008688707988919453950442461745279461047651583132408036753868500907969572970232401169295671890255237509123229551596247809323679920045972442361899006187534640957361943071469198940023202187227255839357511394385960163341878328419523276271260560090888469295095778685152173739703193932828129225533155816676872639720438731583103313449625505884661552091068285643011033241332067575316329009940951239485522982262025767443387878575882004156159188552826492971339323413590465419523947837422943166100172489258252348774957552358745739525566618620973526122489068227394503132518506672233207493072720973700705701801044632384577043702990288974936782941041881741498439812465533392517846876124040598031119726282179513870151854777448946326700594046629043566872414295271980718789313948684309058625124306358807784087952125763035894103280900887539979657669705970922423100250362030802222549726976071283882643871916077666685425653893580073291934971488714180268922300790559429576693943255029830564402986332276145922392020822154077743436018435492190735041607312905058272362936043812741052081291637810842842478493271289353837051069779734237720632586920214891845916793929483096132277459341108464591283423243315486331553951046501801806247861336636293012410489136931557820536037188180128123388994284928431195272673148186569426378044735751880027933705131340971439689634875001687896695477527354262723551163656088456853005877394556537097112541102192957219813996996535415969803605258722549223856742724316387928099121838202053264833046992579592108094956381428803016155859225310311479336580120543275671154628450024627809201872753290136056863716959882664965719177178726962755324788803191814902674419430343740611388885027751634901252561408112711373770607062204834300516246274843403175378798706021814255151344014467880361107367061433957683686124937326932528023366420135822692722247083308569937298093231022484971124510565744862541606904362004825902905137393846022176364701590123012349004427121617114259778417233707046516055640727458540741812627501719162081305081227668484628079831224996715139201370447115243504660737071627014207044374202833490845894060307475368082078829304498627899075637685183461656854316680487645411386444003850548882204332884601753228596076053768886637662226754730065588896483221697897951729734292988978541060505597767087530848899806737368039209850841706134556849033162706471076502771841738021169348334413926319903202869992353413715415154399369957443096701663219908022568887812063511762836417193024753551931135613661896975638136492458949012299658609832392268200831475434987623911385967555181287920029293289719051423069982133181553528070656161386873228045619340410738583878222761604071117218571382541643201546806583429123931393032687683956837628285453932516997795875635835753007194472845113876768473926417465030953931599113592390718581169287315729263489252828148877410582405422244470277402522422486078496600755631139465047546756920393785280141493845881159900481705141463775628146914332011529120356497457905263254842392295537917215221250523529523519549701250822012379567714418785018687829346966015995989178526957521503816443676498576535652971083276739547258409968848395991387630605698001662337127476836762675424228814004134043909112264164458263673239569754665917978983994810921656067531242390144888921192232725118761282010517159588735221519220671409984359642823764796507580312152542149315441564005901232141420804838433711990098352723720380380367566077353336804049447289628487066668971678758385321660240915561592467269358787775905846513957287323028731678522753347132750347947553610743738588542576989521717935269610092082874610015883610954300524565104471645880624020964736568579706962182876433091572811114614688729402839449519190250189166717370522989882970740982593607553178367444999027432959801573987482368345508669476623192477774589843409464225220488209371798250367952920448305500288733287858443137607591816706224207140200783025009656601103844352479706907369035367773152135566191713623413731127471588113007133432663411786544686799062922979130944366380028473485642197764418270150638869616030204313370664148019308680332518095991580750818737816564060722558214174168235358870171486796490697802151527068580853414198504748580514231338253816560571995054687200297661170411445371796499724039974683949108138905772634009445415256871412529404710371763786117467233932879288383291438082923151205205935281175360826874731285754823618531324885348871045247728517499285147275021431807367658011970996870155818050235973225425536178439683161363576053655715300179634153554533529082973253939459780002246128358833294361449546409637100933147609018303946363534310480455323197404653895255212913876826228965136657705614863857172842521798442049441721827298793075638597810294660580704769611545803205767087635949001686658809514322125888332891391743917992775280433111007011914507596410053226835847275716226365733996327683792276335099399603400834659005100704132931289244135124870578852137072502416391713558809956874971547961244222927813650402802784818470984148841924949760982317823479766528479602852149669647116927026231909222053296049984774735161893995047764256580012950076069150197654901447607100637780865875951505710131350161679275020739615782114049755915730604532306030663400473870278829640724995478461762108870499959077768661186212148306006782022089031532907396203795267169901645607472430668870332972845720528920045179156841762749222867908172709478842350589769658397661500608795413840044728576747307796609457816627324959031380601007916113216500447209273116644738184277232567740024940668468385801875658726520560146175981191249668309087668780922723476599985966573083037997391130997367692683036146992156181015196463909740402926044153695571868026062472769313129080105475389077539692897899709438923332117807411633322114407207756629504125142217119414292191321203522696963512353735633528487928929725783631397452905084748311068406907551759228979794817108964992081635203737078166979250865650957133405673857330153479611380415859404604949238387148600465093394720357203774985975776202084190667102063094705021827432718567082317207249478674772915864604032271032806401873920495915419836690086786676827951193361972783970913679033609424239279105100649039849404618292982452804444472879839944568895850935323590419223169797975238334384283922071369491692881016922226425059067567948344486475783509795323155624253791977982856499310634014859078803182801059780150681256908493087719427367823616674533425760877615126597352603535953388589476256956424590677689056366075022165113452774422776356764025637783300416768760571920793970906544953801426936989028182314264141922429928068943939944214899935674836258236652696209131586523244660637867200944107581010833675320552890632986756450087253449281095340600706049472212075930138808281191228377550920303002755457173893345001474981127384032025463951295042290094579188033872470721723393917780518669527542614234214256624602158487510974251268661210267200423907780161850297319743455132157790695787711327363377492998524017999056288921519133882664322557633834559985284128859313686532908583002532032237663451884749279236361719121979163219877047598681701776984490091098193451424865938728170932052598724102460841694514233704396819237544845188654792240465503873794024126756640043922658724087764713357789538009112498282534531211774962882553985840755654221333878709220357541876326548740460914302095033546838762890463462103179092488276432031747960765935274579143272393328651406801565186546167365585901839142471210271841601523611777270362707603911595551415967348009734859452890301547436948142767715966475603254759539720440027136579474249602063120674033314802208535873040124806033908289126273124172066444258667245510456956404036966416120397344314799114171233694583805397744123828171310834943882861714735693101385307602092755710973222370678284855149062246628044448595269839392044508426457816818517929298583012885341695895089372995771987230000018645441410014975609180952485848219320037747181591232954984815884201574373224306458916191621061287099717398538015402932162271474148244935325965887435310737259691664592358445299285169181773640911385504247469896814656245359771621328060769031275664622998859735294724258746256526314802624224135168036252838831193807029397765585905465903539627503416290593767404101042335435327902407378176142507742995919611923006920266539764298612709609630794463877833638323870419396696096557801950501180589900656087841814419664037097963082233377195615879141910186887577794291528766943008278106478471417726460373133440809016751194958609131770480114572927478553056615240385016972404284129375990077385384383579532856953260815021892216799781434707000438845279671637635364129143283038514958713128470075718816561604495658594367495243102619388791454164290628033265924047067497741864220040385388246933591923404030077870086652632348474883559784841349853451763133884568817889443006635862917399928915137552176901009246136550817494867439714263107093775524198121784866388860792256676233067198939978575958140831875740476003804417074548003138887975302155444783895244310591030690339808650664579897478178317871744534199010326903828305053251969234094355687463260100782559100579119159254928645846546614237770517061978750633354102898801316443277449290718772950063242069989781149635245801806182228426289810186217339088424580292710454185380250515693498620503415768259115777947760445951192299227014426347815176240472169201465247425091292127102929824523417531311855702222268868287565728644922720321488469648588797614004102676350610426395487894544928537697059054923750571412810723598182847049214284473587581555474639521178499686656830308359547924103211717221523679555312130785953388114451473483549723507935053436657741284093632363511764744897486765752926930669723731204231201857253852613432896859755323366851600990370449986634391977258653273404037655431611523729510171731047867655887777563063715848301366518891043421922887947248719232051679742928460722633687618966430522192632587145665394489794556856432801412836381695812002661162829426226105086216974456166412657698016248210748789947786597015661974744456411672266213340606407690841910205974892388854616195429990454750191337570892282092671623926267431766476993385318103401446521175935918137112531784336686868681114832974995229941327408891495681360209345992277792903485374486691590723280697815541261933136641818168163824145710785213150101697504997132494908268415960808709503135666821134676251062567409085931246065215220607960112510559231678283572291959629588101270123290771795209451300044379874218480462856511768378953742233047200251498780936368755836780379797742661593134745391744226035569760954736573235520388281361247888214217596508289117795285710683713817663613784686446936374180795575147869062670976120508328341946139435974024531680842086330490507659368779586512734707491030892937455468646677515687831237227994964620366690949846625125361591803969363416198811673335903558198997704043618001604785476277718631515726826612178675512218861283738663657208861108100859549337115753245828836740250836194821078736569432590925837261384600847836902131748211367862271736325564993320926416792865326230293416442138353129277822868211824618881417177659245560622406117824469862567182604910988626409195282847742924240529239359496188615883126710846956892121736088774370505702929418215302391514383399181941273364216360805746989094432026217816383907919626721196530124174018541161373177049389446607517290282258565668671463107268416480917219132098020723819788202241950585387658564835590753069045318066804087308310439339855580457601862213329429759225928493616556997170288717350316631933078104274511742967673307180933795105072199886827649656817724091496918235973265598694270631005531735011513909147795081864551775301985717581937738540822363548660391188290631588742212272408817514443317095511869775370832562212206099845381668568651444099865174392671156460591729609714707185265680271394750147444325507176150756888595393990096427782170404956573722204650809746553781270323137759503902832375253744391537863386425450691545785931687547529845097678427849182382855826944248168025714348298129281083341940403737043843993526243221771220869347775455301336956905174344465755117394383009199024913200512620826225199802761337905970995829810056983444046670876721693680197180986895943161612835790561204514541068917759371743321644350531577313261929635082362857538996213127000006360216428522748321591621072468485437822788544005266328892532274545828192222707249802345916444410315249369610186690413717360727958978687625772594713935393844092413158416579604047532606555825251813050617078865790114421227283181226901972560716809174573205057875395511921905085657424628365156357923139278343469134145431860921292520405466690522763218567883877513642623891048024694553363880314741960309707750748610260769355581430119250723104907532952205208287286905151550109683571232968899910882855809267417609177470516915858186601292516703130010433934602902902267452809605030093021419398822122356297190069799286668018922555491394755340864239603131326538462105350310426833452250416601818864233514856893676561840081007198001332597180599180316128418015723581557591146803212089874820519035378889554320110868868500840621450537945290719491220830528706861625885992728156662068153698263050237097495419040819378948943491911775101053060065195251813920190657101866083807544510865417313987842185208102188828476265279815396989814183067122377407529379069676234770162746125538421632464896361786026262951762679539268790872282710765109157752075206814473805964434127601662971918207530318732567472037004670130860152368713648581980320035445665113734994655855368546169641365939197950214938011804229844878648186522871459641797671933663699116159917785673103344305884843506659949501901305454808917180708830850165161209775864362917918997424092271791176729547771745471692555301713588956766012689889565328503498483549714639507361554654725763445363486768536224617753761190189498585717899915067140923997319748238111946282000516422754825579291442487027640767253957725249995136006407565532215072078405867981432820077576912080234981091319258157929357243192715077217633246948614568206642941667027129467623671488366493225419308307682898760751271485898966914038006042596221297858626075793969772051983489865457336742887866945467402728449484259088225042661217568267466820377705093987077235142059913183179178695830792000390315935474709261305306216498038175883314683833947382456329198573258879402648633416089923212345464411398421904747992577620750250418989923715588290402749334186766704168585465652774177823588840943170201443275336197844805075935467341745187252571021093053088181797809909898741544439774657909846169404441658647494366203526455891135455433154573121647251396138294786514227776799721056867616915315546365085943203161491660509682720111159655588973606365963262825746421422352537891682628370212080459691088087786472260916262320073001719384551671009013020125539036995754290859756914568267557002129172416642288583519258298713352031933713741403147116710462748431055444058591735243855448588252627771641636842221269212355260694651853558507889949344823338177440389908227219812473378095382191997695444290678420891837025091007053726243496573836687903099364745089026442637275501844539674688450882109553468100398572010119263247575839883924636576714380806178569104792462078337900598386196175058213666173674544007313928275819893154327383896147843863207739086921664830671583110601421071801457084042589542838632083385460608332116208422350003495316052443457510564281413799377275160366466048084159056137797361226904616660578116149476417618667762996759066431601408714169218981872545846563470913026685213537924053177250180811117477867617040422952930111310405901075453661960834072940746585483078271834852540262734877213220210686721112824315581466560868471318426948883680025874506812054878171141990833769062848620303203567001191580741135765839509736882728748423663214196759407471920694914271454496969320888003616041215843194541868178240587182862705215164473165974338294355428372656707868482851911207125582382918167882765665271483567067656757283902753902746852130109918272973267269772211927760256187225448944160850627660233417923082844934458523941575184974770572654843864610174914174228740406548889013969950631915041117063112824139864269008884030551058730063792709646054519185428549444541167805674987638593663391502908678340834077400227791258082959059219502511574960497030062198155310392909957343642640470268503681035342489700004714212594690842567159091147353015253558422111939845469549119127345877920498054032714011760007747611011794703515259238469168309282462772712630144361236719575387085464385192886495204946117020413902328420778072987707300984454826603975791045841625845441084016771849619507605833259974204872074979054869294354831693766711244649215906940223983889225691308535637641764725708069020761812886689120227377986574909618770942528353009233099628365141863475848809892612327466965524535044034987487144589377604839923607365195541677946901553951843590505922781532564932604149175105377257683484193443039280767168091340530425153481812594118662568812761936548309587752638091225663941011780009824042518103216071898353125304199903026942753841925028394874257509797035293917460013523450118246652029514090563016778909212859647274533097898209253923064893772374886997535382472856491449450875197016415544679869868492389419115656911009615522072699423890829207043263143992971138786713517004552691735477806001740173207992991531169703469694982163441456489977269324768420725886418440291482441362266874244523157394191785669984638101275217418955638584197188308730376658587557435998122124441482522461029036550715650634219551013196768300541284610592015145879399042923667272539996694286716278658906039852426951520072142946696742419548554381771852481085432955768890576325244343292032059139059711424010529237806548526041936113514383632700501838611037773084704712622075275625800695742357680448570369515333197466930556019690196220877904624899211649769107111572544189796075449774083495107086500792851927851987935091282343983310770265399597761523272427092695918288686488823294103656070662550836354961390252451472534187335473698104403000164456694701232844584995162277951111673635140659957106729861825382206248687103681689748508283639575289719466425751539695823123041541652004646094823217182009553807227663093221443788998505325212487027138532007570089040356326699448634524490194301596771337751213366506913407473699034707179723869630084148407813213996028683295098543701562546789202812159013533262151790204936778434293496976469309306475237196185987537942350489154229809072365040315776328351262400364136564054941601338624207776453572559461196987488680128238034380639668109278241082089222362473276748848928417443520427749968377788243366906005069912127629334976901617512335620631665082632021843538733592207679168411658630873875271352804655688198092812988787323836597646942355068300902829101097086642965779461631403448757220912658738599149606769940964835791836000298738119087416203955659973019215576915460273721624852127766830445357880973806333740701033007305627158158969763843990713315821411939756689295880722461041089499131055557359432043685419788866000307105438459207565977395265774555445322291840883663514473668917112040803593388611177072833056270209167081532750284131742676909530795800658317829784940315182343965112533958472209921502695662073284342286796481324242626874053134218173115337810402014770815344926885069455214418071440483505676017856398606910303979822403414005953919213422651044330496059340619077496553121693677648086393835130699140820130362540396980017244665940041591332788649662195625557767194520356933874987052117837064497754679360540597697242758095928349876817206079682147994674888063557715546978798472551037537499217221988051714906522294724769626403237424356383065243392458499866004338627208101849451609792309657513273370429355155789431283026578631354202603569512582805387725194700888736415784393052074772204252654815818403475784127986026548344375900937637555214788241705601612868371745416472581286703721763270399071971049045095533502097124030812461591847128297212625909451557615719997170402266825044176254939685063742842812377304591345803523295314951057092449081907529101063310025097402512048176530571085910961674773188833492176468509252937647537825354057397326706366103739421777935850769602267098871574189261723610893632622410101043880594143131495596579975756761833343180634462792546483335183933671519716183863511435827278244316080463603205285468113049175007676870032343817694648739311763948273447982643540615010465781698675202802861781227383633285405172377187053412530464103537982875344330448507038363589712797639435758330166222900628597650386890679299165678492745076326784900033081966185103954714610640005700770015377844521523266178558237422963853001892666147592005926617822971690975605651815843832123025873091159606690580026838239279110988463492588941058248189063545327624500104751058237880495687454345258186288035989435621927637523706168479921345180253651452093208524916020584198079340147447157178446216803358227233059190816442780686223932473321832204213188515777053783554437852941066119882356779775176177856848357986122986629203286577221127586455944179541473354642445464527696841194767116709941018250941623445688003672243289093024404268939597821276511092747423888738445497058307159688733898495114103525096198797519158044527402130658058215540815659886007910713952652426711645513326048458220154052734528206792554937432784901893733359030025681040490578736607313721986660974991854964570299440458135682681084470755121144742642170168609584016432549185407447485769274088252790436601947623941540480183052077205492449092687619498416194512751205881734846812048333368235479114746617979264515311348786752771573813155907563432911341896249706418758475472967396616872982506839855503542059440249875514391529970655199879864400449896444423333385368118735877555521345357686524820463878281825605695181034962862513584354510441790558941482763936594586423500653229285487193237984290616543639327415361081398141663255756585589975000008333498994449651497309462431167784806406336155951274909771182354428006362872691689729297306076914782851417595249078411046910281917496454112176323477352336044058896099244881229056720298243701016025073954601269934644982822929470491099393358220595457277330513813487739823566004619091457270661091337950194150664931929305192074307673224707510787168400488367396490825920881373311585840071283142216293460971391980015082099795574078381578308053789754282976904204534076315443952737843971059311500396466455413542405088648100095582473883867058818333039340596159843752678343171093266324626545070038019395776326889455635091191471885211501975990769755008655479857860037039740846419201417187559226571889778497165828649374220933477554405241037448953538982269113595285788883397547699989765038765215017850948649788778101453714261770585694917996958970988954312850218929803003211386944422304043689371830697455987917068445092522934049290410175801600915864237661342800051650590521525325511041523396253084466473524453867436365137197482290945604019241190847043722021368636514338386224364036423416688291537740331670043734211117590379579610627790854489922403645392148119435743331207961319462474674981122311891740202836054573391034138636750903400105215212386928866934347992787429386515833795291879043303225535169496364099606952120271746228207507284397704784108241326563970085850284496748149904767325357623379666320591441108898758222117382282082177080544453831236520989697496104371759768908723403963045566727590311329119930224868926185313887312583305250175275173007931242886031504775209109310481113298479627676327503650239990343649189638128747253999803669908032050958258522559220939099723613362715666321545241944444560150162409286437321131588783255639321283100578851263008672589390405203344669882433419153644425463141503567520867468828955120184975817638141294719655821916242137555312750024893213504599084102890441775673020436350246055072476669051933210566014281578227860734407076713910963679794786205372935919056341861423111439249678486894583570673312085451734763870380955666101778214537195253678676426629604355598406104836606777001477789767373264083859127814039442761537571395566411120690710013235637198573518922722221573525969784605817807970369976369717805311561867118170354148176313175408924025659706507844569648563470293037008848058518740131311816238083085510661154301589050157400545074578764644938853434136339884887571182617613686088633762696517539263102975677973927111651808071652145588088564564269779672720919811820877363470882283695312125136658220449634088171014089267517394441305160183953922515533193267647690189676429627147763573771701474007905237842819744449266961323688921659551182264455263395475510456397051173611237790238931076771100072677518817319686155476193558730197240811216759679681157154179309711641708326690733923193010034013423549523915087555406118461829456443664202369823559288093054999906958045863980950995290787551054946020477754119045060750009732991553228697362474719940311464867536108176141566223486547319895668884169722029532155801652303523553807518617633995328724219738487125283261571811412141177776798148265651899636545848588943862031666227586195468467848013879874262373521412490156028434561484401688201768053683823655251328157744712899593962924234811345378777753757656917545416224865083206588628107156921116488425911332682128488167895152224758761285860690166294218728238488988634084705656044287510038244013941871179511059019791267069197074860217265425010545297623622962901416635859537583700920761760077740626575305049118774107721146676746580701895901533288577931659788180605825775930555775661175564421591417477295092620509936209751146099669607267530379088705160211039159309738410676504570329750183446323496971606066610977123048431580117861971095860494282392140125713365962720844098833393742615997225686986849202349664746414560377665138079033232739314847598098714845509201842666971776511346989864363721447875276770489253301311418459319471704995534645387457561197558686932043701853574120743695877213810453140747662775887632926443177852837868592611205336803225159460400267428220051650732947375926466190877227597242862030397111185355635506773922404294756378979036297112791122315192160668907043857341385612634896422235397454695358239930291382727612554233355902998315064728178617081993286232912354252169524096242590219584668900233749497932920589091007855851147706475552898781353806646494639223104609497342051676073320709271697967977154430444930187086246168580854113911382991928135477195943984436377209570441652996895783162746941021553331508522105060106604551811884646230768599968340499576707042406950506003342777012902542469921200361048102432447391996937300235453087997924368098443276402128960146565142487003137427555729800265486319396386317795776147829982473525487931911722688741585482836202473281732581404326778378849494654571642037358813658438950299024481612368208790048055034800990744402015783463328961673153784414804869782468327586515313349685514278833993417651708620494992134934902855417409203896104467467062066740689781155229087192881549942621911353038044699092335525451028376715517230769296744218755692150766434993494492308049810412407431596365786336569873626521775440353605217831098504543668245673165795375884223397865912449477056274201392036424807643654249590640447855555575381375627108881799978800503938666199935437834624961377694311037839010389600875148253508873858607473102806939666537528260769158100503387643834590781505729049250186071897016864902865053333831304827412364861012616136098498426662662331611429065596862412978373889446311663527920610579369892353991428228748349850088985161167214999949888657303737069502535525504912466986776909994692782437666319015705164121310916269004715822900615438689625251070333131556970426067683028264079402656062927718487284780327156932942626931475223865981611730289198289233987328326901997809479057689467291567819826439445742852080019462569303154039631946841260798340026743525724745630281799524120315701634890482149811447726010486102099258354083016967549723795697852783102476588589111153855274871060222867483260153892202588791128823993773845571731208580218503890068938841998429460030794855705686769405154081253243448892575206793712969221012733990611480475892738003049849749528580913133187463920777046626605195553824476115709878755104328014833700440484403181929067701637406350193993789592994078914777192743070407274507711188808788282908024869998632124675704861885377056613665630381950913324888069617528311761513568251441178148069854401869300246295175441868082261753652261448665015436111153480752101810935478654342287073894560218179908758278318382920666070979282333946849198132379384826731301569962735740217620903965779311885366491598350680097056520941512971127842169587632050708982970500704330766165573685504518442470712113572103082797561325569860357779369931259728503941889875192833724232293778159576158703653888034436522691588314504698120109398259435340086056704018145628093289932619027098269694116252214089061549383251217205184023529335817575657611503823632572448344667480781158246069412037292030753241300750862045375386469136787812711002348091708427064199944512981385081362867741690278643734147138809256627979454784423060908690446105256232179479880167950707447196075746578758289117628907873902434954543938182334990239834177581860578724470588556973053292662908787109831782082676785256837499988630645109789840821470268826964234500241756022124340177356499616068900102168477130692711799317382571264673709765246693591880855175816804472501328595697533402967681453896467651636149068570616589496051968938668403089013001735569561017529477908192047940802931321907289666646772691372127452061812923209265025959640921653130300941943497132907455326708249179013816796571794360259949647254061172051373156690772010591289369708527395655285174800363716357139818585305092729926411643578396564953909624554648722493087725570404843908841748770834496780382812351653691975513019689863099271323426111008220775027202920924100499253077737357387952723851076352574461875048254299642078588693607804326470531777115916934700619203566134874993340426977866762604287593022406404214939227428766979910873388839240057652258937954332591943792768689786452113818937489491122621754144301053661914852435328190663222800377626039528567761493718561592178453723617468951008762114574890060681345055568324873770625136009786285943859882663846789333171434170299687312884140821218929932897451032121174980484065083601117773582454370681947383961411496533619035234063138148444979017274931524644221845576583443934687346248123215114604911666795346730289620885893951775282353273338135978930383762228104642885648978621462496963371971188861113424464758722157328359759004146263562787057547397158332376181438361011300718804953382355307575639772524483902482828844840646589958598017737348007142124620586730840951028032790323271502648433376628999116484312831549583313083091732333003409678767756380029843156525740342648135310818761361731047487688949083269605117962154429952816084508369331148215970239869881042081932024219501357231825560255959969185522503230165593447330162157659804623561078615905880998239297946467136706724902049007840702308336619639757484485340897739765911187724126672387717464522388741217060326844972664021328592736511635459841885216831053677425543401681538965823886777038326271874509592732897920761276788900826494106916245139713340675570700665216187077606160280570068259210624050170329588079782599593960558675216883631585409563287217635463201662679890690217987869879117760827311465459731627731856361376274846395157970519410105894591528196405858235905659137968378944571066295966384127528966024198274864221341219860094398777404721760945059529711842313103987235786746774167328848381205009852539611823798996767514451129468053817135775904972249292734263033195036699747262450178188183144190711424157175024249313211696118483642407912017914777460131258578980520505529464027442465798540061550628396938107894195864267030092196023999106388345002698699276435138735202629043752054152502923076375418215144730181502280532203640279552232057434292957995128696479245915463932636020159095395080732536411627523054020893109634047682807312273687204873894573375315512080056894655426667471786893567272584373134232481326311817214286786503823719213613873352770846318120756508392870301324282693902956155516903587342029405065174763822060574509384942499483987241892843462862291286518748455230101250407588716818099091314559994543722366163950006866493690095550924344576850819223570644343516297569867233761671777129586132153067502293874680809594436557264080802708069866220497138422596373679030062444411427859581578234677911072890210955357586527676685931290330031297995024729907687969022863870139565560990311026796794261155589686165632109077640927557342555951167073005808087812244083459411394508015846649877762986872639920372267977956890898632092411281773691060249001344059225645347329503181247914765066538287121299332351875165693524327317763724883344112893833966707406911875703069286910120638552571021948881438845166499779493219787708963800992607778352996216806204010721725309418597364322161256060059694963814427588747900660918733927112878822373101186789610508376370354316606633139897920203853419062850646530789306738021077209733917163424455918474512878081794962215510792616816728879202757014086105979644367325272514495439117194108059685645918252009656946553145892893485279668545034149177138922304431779447012357501103453176638836482553818822708965749062402779754905781688901732812059107163603318571203873013279911069893663894101172515263549307227266173521249298876988667332659925568628752953993250608972769831379106864341882489493962561507550503955573646694012256095881434624461933901312883025267230352931030419615230466345952369238335706599608005624981569660035220883342903457530387755925459775745014168531024219164137386325922883287657485846706757193942054313308409098536218273818998216736063178547646388898805842743424544752993841117175150542387140287055856900370960429479463482291987210426662948417896239527499580519945750168693358336193421042696589636522824168252066455082896948095463062491654997232069901947181631623445204118489365915400483517948043962735099799197936065329375320574722971761397199090499933075853106044905718701816389084622168931019816856165914714937562839172368599351415895188913172341714655524906898013219518555609906942895268886658668219136063032303187352459233844311608400291132628080546594726602605642304563529309580393634652363719886006998065579529696534236652690715497643890560967062976296886387926759984265231213773488970007638449036552435533458534515598693593212525846083970835843082945967730758295877212369664542799653591063023906502148271523016761726655147713988899099348381985700785482129487715293727726105859861715145236469996261701465995294606528158562135967020293142744893968762062138534399517344611427863738774064979430272395113481579989688145922678775917382368626570108770484329587513160489057805562528476847696555558908902749571218363345171676195610194486536617888706510934004615199163091904594046556249141100413337051572374637135206858399021113845367406888016344650051490222765660020643555522495525179439910331266199365442586649516936931792768283037451533411551487520704748866410381096894100950997296746615910189092064186324603057177618751276377342429529776501657733650959192088228845051289635982336408688413043130310491332140427846222811608368570773821792091773772469680658156953791570634341902672482031336180618197495603129689823371638395587330796615677543356154592108807196617422137742983932571307627837623169101077931581298345827490702916096571592012207575780557927608203945112264742574424167409513801051050707413278078107537629541351207695468286966603175397758226148453724903962381551608830699815201405015369539913251501326916027721082768041474439978430212990103893581394689313311581268890092932646272423220724088403259661747447733169303442158938030202738155071229680708959042880765489429352730234360840913585064613420539618294400379584325229597730654866866071890098510798229743696664960330130184926627484811660205209486681418518875041219360617210841077570461426195513826947913533126670561044246992481292715556659430804368811298017908874250060800392066604781654390104763128515379494130158455971483654470384438684464308911650547979899600330792183265228498145020717412518958519558773998672824948866305175340488215820884687034890146162527625129180464518555450915951492543658415568597177226290254415929190218602859652868317616732839046054214906070612889641588113454293623352699275740098272285875103569126050440949223188419393287897374177894214881442979412468604424241709677215298611637759220673972183553226178002594467813594882773630609204876360884725354586870078576977682917579733855724718530589443579599924528096482429233477193815370176305653844847187775358114784244457680382769868682306080500983773268608675964231150456649531932582841012156108700512615100867467783212870408404027824901920097031115193414007348557889124221164578315537191317132956166087675886294640972661212957621223624545180562612532907187140421711706213942402547635440488548218648360523730382521323905393780058811051925045986178690457915759128078831940051414532265657740416285181031903510453583182173049957832387549649273561610703039685960364467357905456627002699832676892991209767380939075149849843361882473017820836803432049581151505523616404209500217763002879152113256431620593354793815473341151480698568340103940940309485348983394082359103022580958375800975404778064824198162510102895654209559224044139585419035594874199875132141705725581503932621170268754415349782332236290458751106148035639866848134639490806188364906046269787218711844991504176736297560946180184282794903511936181035986093387051353602227575603453518918099303552499945535943685663911852258408283847055315126356881579848264895748808620776264802931179581145527273969919448355480492516141637360886474999008192761203758250069943090504279012199153875333784222669643814956912375384288942294423232139629477760670715244269806933488704527268123312304554651692209976397191467635079782484376212045960311848190075109184763354829960059330591623325606612747527590637216262207140195173721421334110277774637527463490646700894623167358600305974182916165661401744000740498832379493628029746656555004222014637244345924512327875474715294532014050999377038234856069220052279767554286367534021665961977999089418650914749774872674362358482021218791196361548777922708744309599065805649225412441539641393961604229114019598710958351154584506224544070785193087018591285398730437839340379115354851617347643251454537253226743687287147792992949137319515811178008402543441554480274527179448126568552318447085007375963496030448124780916561713615643578044387995147537043123165132875109488708506523842468692015740497905002771093735209390916957666311784019388869789824093050899440113199755608373090233376120848083807719082533471792793454414008092306686791350441676074278748403612477303380977374040497089523292149696270555336807141131441556365425541862685765934461912571743403230689326060487360235715930256500159435598987193255661966005751515386965540701290216184330039365684153420034580520872856478511902259023402720394657169011072091960951003824511717818793253322596132184845987167831534913813830265323256858617375381001205448420991870803521825273925637406058854912993316027957102321662731815121642515683785135169928982148940184594417582928234012815725834221122055580425279860482675310568627831338418697839888821414343988112944937577774000193990761265634946847450282554350998106910728368328696974186222699759668814113329176702245438595910931459621594858180544848850047386356504518343533521512977938717817727611667247083049940033252928004411309622915499762356286205115228687382824749554662811312594731485793228292983745203320380875465421590651115530751794968851192386675353635075643495845947501899027034706507453093260751570178631940062405772118730991689631693830102050999965865437944419026455854001764146917571021251893902230313207277891837480767270929656469318739890707477527700882773215773681713807422490830493079621464289005815382098302066355076012980611068925539492646410783471426733701426117895718365995317677118103275236946340169661609848368945487409386716176112190821654405077622215745194885152466776773095518857956382688607295439137866655837191256087398184640787633585608888832133738845183556227397392466103775824308476116618416894294543300771471514033403296700632231118697773055866536164101589905504823016480022428732155660919906423888451262492138154462834408239105702159934922051888412330998111524026327626220303065358304439165420072967073203457779136170571939942978892758605224948497173651612220067850807338763410346920213010312722480796149725369813566026521493976672385790599279492937622205548204453471883502320044365096731803604212281589270286562592525000788770763747258754421449178598815343317561213966140272309665419648861163105486202420294305732004616122075338861184080284218617224520123208869286037468917842319300374328235376512208129621512411325592798555173141519471655910602398036911651399545439206446211152967566515160684028135727525986404528666492529168595492427787604526730845117836065313825797723890707006272807931570887342336625294349806127097470342612737010081809826313949266083919577563378742129114159389763632979421854879668340022834096194228733105542395863074994410749476176605033851561038924823671526543463575231505299055229790351280682758303845120394200892704544531437041966932364916856775429481081316066396144190040706357395387256957233039819327448576660014571612468673822750108297591917228159745786556651894683504887525933197405089132195788993471299796513366135704074890622147191477545244011276712199597402484221941485463366433572572760790012330846237490186714113720302428187146311476133416066334245087110884461516287260025337127754377599807188197072131499345183502579201498656030289846435792401863851925930819472496074817437783135177191039680292856895103107384704312566232969354588226935466197092036907206570270204193442951346284723776330630045314178590570937638247396358623297070104845893062825407804301676000527510157484653491215822048849783471849792942254605454994643789592228178238461891159468151706793698997361551845901536911320173908517688286331277274101228112794487846202438610755834031050717693021276508338549340055491035131552176028450907750614300105974805093618209736787278941389815893152131120717693039323826287677205697269376151920354279733482512285647549361938051094281295850495056250753256818345593963759044461600247256543297690685861856547840457503565720446294305483653821673019592262697491730148106491596146522235719385132996204362557758453632317434657890801018283135595070362440350476887380999836131774067237174490137649917818127485454529124572962139427909576385167866965964943517047355836013198006522795284945399604587615448187530271824625719505915082726156919063184508182381963855729454263721932025006259787145311145450208176116879590255592264758268349730242279510786079999149206970969709244855145137130071916808210889347124505054168105317465566601018104700673713700893964737895522246310628029860602599977399410670655563868147727051353335497219390634247408311673362666133827758731185857169150583174954345981004706753046899940012067822192794718783201043365311794825570087963992118822870275655950150698863050878323578821247243446948449074595669533869522390709038172788011228437620501883835408228135171236736306927225841313231497690497897899080193187348987485608528407608358249963675254027506672150821713854261628411660466642758606028154179502339866683960294909171597671478666563720035414148326358803907274454369724952290354439369627413387050167428570936726317898686598301073954952545956958235585589188279420223413803418104209352636405286819599888301015733423702614990226603635554379125398064294769337548846007673607548128217782800576595168854833148144191623512251160875047812782634606391455096952820365468460379033620636999703521039182687663723318946334116583488110940048370213304429624072976772379722460457471459308299775171680069780306242504594229428161315954392596183954273162233950715532310186494979736927017437001470001695188021243075792253484288917124518970581914996898852459470043214494209922275002534893010139829113933169959895545720704489944053610283088995712147368091721371317917994282012463845390949950240018159909960799820521434157521920475014799230957311705314800573519236791514220822290561266476376038647126418386197789502193342875743855478542575766436368389813119569134986459845810656394281847619528793547054958276931996090957783384724642790026812315037786135474935776502121506597885412161233566791607746510825775799781357618274074131523036094599039922500522593908892545923741814899337108991202362795647863075784639814357086226384904320067649226886983499112792349793113793562313245011658657085839880542655944874993942987508452799777223027368204289960891449948723864121681219815556942385412878985150527565329529745969160457281819826226026803569144333803160080832438885079639454231833666648780656297265155064330117188992771059340077380482632461820003321908684044663936047084247378848839154944562438940072921671761575127684396009965342717023529854368655635600303766242873738457015743444829227420509375565780476302004313640795286545974487666160560644078419861618147996701819112456336400702438626444177670133823909101160536144762959696015038946781929542161770718377535135255812360724227465353389220881109670036609352700508044231731342261726995164910555694208225624326788922201612275727632324506126916738580762784738262128644849118598504726429604538938089451666515833732347474725560525124514202415411646111429029353274794734489445541200625919749605627045531464490959664725144504402269117713075104919556695559232706551964538400764229752824447649596968760584011298258795031637649769212409050234773111665154309615962611356666828010733147321033865802175909544339433300521767391585004783959060882824591311331152502491792514123118312967133594724039937562851719163973240515674872218300948955131686886994295496994752561947720215015378206335199278895077813675843837382852522330950914685963132167391970753569404776307745031847099913260677479513144520752678590338652215143597833960440726265266380659131520146632828556630117663347644415716485800025989025713608407074103196441973485911424841586329597248679955953150556328273628406443383465181261655276441697108574290741029458550361223143807163007358434812924067296125873798958920680821151723410010357127031313012598070026984732898719963804808722057887114691642336108546402444190334905208953956283145124532527602059559529038660108978923844499532721365590367650392110292472683767490881265662934352820318000665810385158482087010839538709046639458604648148737797598404305041011251815019839721623392011725619436004472112323681293271513757828249413581283680458705147841139841319183865484528929735898483494527376633670316677326232691851199421772206856571673890983663062724011814136203732416139784431303817407826749300493858441644851409770334153692387854083656975348729780712188849752850596382585020179333955659302511139058962554971148472884247156169532013818228569668536702906024348789027545461073451568263485068874627288283462234304517016200518914789029201985656111967900167601291960072625895371932387052601096855036459130314125283524192585844418376088935253662985891423100003192368587619802950564220427347248606887536866154479731029105972639278950465321505629723310528942601847965174258905630671633608190211338091619873250869566877060456684192282924111255124261497164300175598701382083766867377398707145914754751735582693259670864891776179631088506273404547694299019706308444192969470547394312638847334732363764881546919953787347665571513964436355337393108881524063107809031633231168523031258769833864541952178788848437786884569009937014785219675932863119862192643754683034226958405692203508160699137036546612431345190850340033792207724669993196322363803817599761476916399190600363712139190370973439445791288457798027150173395867358994179432968829602701717238881313704222057198358585203209607622404183339906918930423366639902356428874968856297780984187001252489309844156278375876968251647819988071826973745605229064742042089203882950111085419889703230059521618668786932866165141760355993331654375789832883775067139055675240499816305283764050624765552542731399364225351659028487264171415359618016377359902322084321420831521294480119562018498295863342565932411379862812712402045153082156663693432847019307583908825481439502634657782678834404053202313198472738138163584921428986336205162628722707452055608142555990055210438695621352523563992897752801455480856518533876758207377263467527133776471949211959543935362398938022014406560931091426829872796946513224352480399954813872373332230435992377006102453738350222322613485750718995851386842115274683901531237584139905311474907565202755874916258788824749373673832131677990183528374493264876232988045661591950312810399269765222121829880194701475056877815682569569797309758826645964870632542234490915955077559588605410225040657568515846231885588903130201927782448541467761454709956167902236567722875497259171126916125831003746245883950552244455997806736438392472385737404957546045681122874995810861881629220207549829305311987871235214407980666888712066192216523038479774921868963585618771061841171530701469979753691455660732161395811576948333595594586976519443187134492584364332480098150476518690741480964097499531628182381023058119700685096142420010733136325534430100070798160380347351931792610819727123068839911210111810325531273088045023449376326615141971731746607015376032119608466108269004661615466596207551904026600856642464934736953136197068781851816083588362481532174701099373817103612563223333702839974033099443063668135036785848534603132742471867507485633551298613045660592826712536592112146659571465503606457896433222450152680492492418449760068333239146414320810110199838290054052502911747287554801065466980907099964430461388138862071803151819552469189558398319450266493762440008757569577890019251568734150981852958562829874389871234048625747251739979549006179679626514752196624525372008766815615208974719725934929948836466843055315216279083190437278600722719525478701015080708322304345969691263481367284177740730417668994932078425362732473389946892735388487961921730152668170801817418733364348177792933235065798768552602719961868357674270139441720462926273764587381182113928066261193918122076941952003811476224835436918717188591584598177277479398098619322696762356206202653327330886016832267256284786070965424039130528037316918129787161816490990888565802686368753415534361585685242999066454910526867896929560086182885912171848455044635500759965922356815164092536772141762296070505421340151407851521810215411419518672916030127980716890417435413498289023381052803205557729516519116267699809622259335616370756738807421034070697914770661411291619544519127310456499929195593213866474922025679580483995267695508640043481492288689216343412776665721072815182179768694297894283076334265654119370473318311668081405817045580616160906704767975902357309482656259060781509342845611694422876455433959761866692992192984128584249274729675219506116428589510244125764344381927071331957846345026729001474827624146871427096432148260219780480947809405623517343600186006090517489997402424308673612757521730634033662519554746748080240664650511341762542572302876974799358411557225737466547926679132628571433252050813119978562246811841397860632111763337455474146766014228883942427591336270990073046351331665058769480500150498438724770183225811749940941360077106541331098173207513893871176802533161207323666643209784242535568192162615340787062264395649766616703947220972200128244797941219046666449857501635288728662876869961883531498807910917461375553147926783287482569514490254532815172309430689885128497407864441386153988013268971259796704468737289726774918812576573008354374066101825490736259592026985811988526706101499475923957321800996844618969679409500550867837355087051884637078453984758281898686133548763840917056013228089623491586650691131130761224998958619624072287161424340434024330564654119276585589238026266082927079559467308297714270607512557513817791727384229362790028729881618846545316571561119662520607093785541328233515937820591246042280675431011153104001053880785759948544577895239867838856974733897622952761249290753155277930404893997815626252977784957362098906184543032372164775801613507765826768666402893733422246586082040274036477831497544356688121442289078267087474814023305586576772848349408522119394248833729019096521351570639645140932036116272523091379625915397553947509438604225793632845131191731794399950873316355750165248538739282232487106955212451992413985318918412250210570974322567752235123585257218150754853400600190219319004971406603648221011553787082153786369372034294247597821370973468856404063611031505687152629779120289000754327418913687697329475706212878228317413127115157881356289892542614642380505617132141980798731657207071083353091582621966150618445644406561180325118363257876750340694170999607415510899665575417365023771430403848655288319591428165399579030775065876089445423368149331531708033352033251781904802271734975010828788809074870444012319166909242562734666645795315868190965395399512460079769867682619576867171739057324693826533890411058150635603169747167004019220851277904926771465985822746337271123392854872134543284442799725882926490238656605892902928639795116184471514100717473221458681060109342554898772809009790772141303331926783290753969599084112450442126325057724456906478780983765918310677161063236103962711888390623577230470734068468558119674894150143956898216581573293238437187311423518387804055911067560563137789650331242090354221825324185385012950984680545964134847543447532248672557652175118433301516244368559465756080614471194930455535508317847599883587274925592381688200032333759496805446536287130795070667723380975821486604741239508418835250611685914361120541514595449559764379791415994977379964280232633169505238734573970304507663678595740457988025235579677561409732030531123629851859895289380669784756424316629465795988801750298257022438248874724882014169262668572346837256232195253559643443107976475501060373166268268563745636484405004933493637372043713576679404848615489052898117513289115492279948003856186651524067920643338362165849200133399584689079708099953215615203067214348620297445598968843908514338835945369565413142997420128907984612301699906187037826550164607740075681642231287958542862129958498841094742184716346398919219700068917477811063361535406654566014378534013699022983653761162024972006629711551249348049048770812871799664675656168408198953107456609620567718550432135859988674919124578623355114293234656398914187601991737164303331681889400554505843122240064086835700406351297195854843857644940038003612602099016106596785629143178651320598647632553597730090589501955382389284552234605777414752869891041321415888629708045296640710173134768274502318619191918129745538925697936473235806543385506588146527429740459881277180817499526465618030494539274572612946397429695678708678433987881589585742117545665224239128838391364142533926144653177577709844901293374965018120227264863874725930754336860307594302459780726308696512740632785384709190562943984476506339800159695908268639654279630789475341350277813937613268551466131888069370336937262174732508288634344891438184412625597866188948545438755684016713741582023182559641218254244387605651391304011856736508697068313633907994665602939733789006159553708428283964043264810284869098991823544838642963771406619330050661198710787357279713733428830794141178799147333842215033388497692161335065516795469356693107955868414849807883256210962444087578975833896735048222198212700066192551254122476445678638872717477723407225682134257283554249085463813246541001041333020575015155418938444061515188411737430196482142980704843925478335222597479147471551400593088060667780778955794907124899279253626671348462151868936159168822215942194328806332404615214060317091221542276644374265882546393898760960618741172930621429778159353927455664762539911739071321365457231576648067417624033900711405488778820829979506942511977306036377544828923534761307666516088814881307767169673185294174554791426515781602975009492548293632597047345478628619405764548726750293866581680537923189248106069298263095700748083733162419756169507432279242112206033607509191951388644745201732907417870744139208445597792859330449758974739733292043908833309158294986196427252133800033280247479427248194305474808447486582697137638657374015353463388291964626542161568485483733350269419580424176729873276852269181688748165064336136284508206985949308440251886355221425398917369477201198990602249096208961428506035830837314283076835429889941926469096750828543370297609881714496643380793331841897940067467298320669527835755194448636790836820258795974734629274978377789146209154379004004472147645635156572146526349128959872725662481429599648824097921827911530899938190788139456051539954507557592775653027418752621230749054404868827276941683169150904808583451032278432264044762182103296467150705886508629409896887136140049970451445172824524475280438420423410881960241876524910901926130142599518928181989443924197935018242777833508926544317144924371424426772212078880925333911888595914582282385176641490562907068381775916339553116614073108361002257963449374605185253750578698206852820244346839643680570965032136107085617272410296579116941341158458428431128958443795241867408323484583507899299617926243401004006238935641145197788762829704941480615365589102044428337569102705964202069774779543110740026838100159296879974550305081149715424841917618144553844402739939268067798422041866694647691009615347336873098245520389883907081631370653132075068599305865909553086252287633400154844099029682778189432494403881969336876436056412516117566352584174317970931904366658352474141229246437540158190971929877111954353530620449585697318182315605274781663602098887186687157549825872647431751725869614886725158718986139366383177626788598645290078246464014950194457789658023779454891828035435169594427279120997681796997096294929082289269936637625218104274223389479401079991925223954034114840898176694347513784031642383643068240333246061274239020058663772614851246305308088214155034704031842973349193550625375384723810427621819575834826364546298661271300684683344681087104405901754940655959061141312886565594800435850554857915453793783741686802093381755870722152418482938190681828239358588635302442444615295957813471567729144694735200681337068329126196339148742265628780945227647587917672865885754397288905816795838293731357792178444478559179626500026229354724949476233392440658287342861255422946878523741697193453706028921120516940570156166056088516078563461799475598435478442989058771717146369919797963861600587802122644799883984099678640337280791571630892818088314050931289995487201825102955055800675644818889779967288005423215213291355801133879607785268014405656579438670843138413842675556862580037655099746333724774033741827646346310910409108060686173064610082897074088024443738759166118857721762629817889010044594647030587783856567033209952535977627690076734737370590673191680128577896793938186052046891877359518273264683587073877234241036797359533876333955174203322775327443406473865104144224768878122105964383870281764006449513503282924090986358021896389540414848060768978246869574555012776505729688391460391262573868069039561587992604896110715127858918628329543169964825177124701066610153398979377562485310782733082418928994028742477550071007485909220383511817595283199940326530547750646954118380398164216154868628248666375851441313940410881700619383315869506108372035385748588228194162678570126418294024122125418074594450131753750896615873394985952272981630911526589855975237145884105546250998569976167953809178528232592705947329574171731055435941198184356850435481595342067746991408099990802875170734400784265387516947965576356844864638093992637014836214685562731061556712971026939659916580570248575619341804884194616956726015944312524883779456355811975730663310461125849396149125051359291065113473349567121687750909290892043619806903787401825430859814610975177381435377295381022917308201508848686694152914079593446805393459454665670721009061146538081094378731452304198539059206592719883759484929018991437263635809056044224453729548868848901788710598184875217591555601583710444883638778010390704176174868761828228578822995258327209803067808836286583669672187284932735234566869145652594876140544149567464913921235196708289471207694476351604581328867919211314467423746046877351619113296980314820540651481598226863016563686100237647669179997961364543124826106979696583635087968252371944958207781903949182057064640480576807605150148114406763244342504605327244492508173495883611821011981850307138657829791982341612086703749492444798368992937287751572537883950570068408716149663009788065316362249861496147646681308187696144618980205954717317129077972697905438497750063300734544256788590078085143495616675007140424457815053043458911166139215281979523155409005829816411068975251732354872206804807070350685903854677310254306690998581901111093416445289491794738019232644650604981711890577091264170553939462154601766057655060560250460654392738051986059998441184221695710237835463829946675821541655256991689920747747005704485564492168634736808630972753554727809902881959682700507018547793035432223180412188448526668869728560354330658992711832524812575159328213625299759344913071694977702635616168343164788814145252914615705267593391160227835733049795527960703257342241199743472901174476266965648155961620154302175890958053001151735308884369943608946128494015095527050020290454965465630568782109592921497496617155250565501723903542273125263741112167600331871373725969558303291793026676051227534456775636139421757916324560056340223153346803866322035670100035256543373892593094960466102342391539571173563342533052620154680947306673921897277465764063632868055756931124481993734546597076581824529970618254970771904856906141405209394785685475033657021600350416103405048923172723247423065627096194793115002291095581431779574766789627741177720145770226775170971883624211329682811274058089339769233337910296927958490774260756800366411178262771934285745088914820997681866296120106727638965195188386053904902498470887547273685243205764019066617726224180683853536730579324385927469076807363980911989034411433855958506849343079610849975767266068153811265328424146467865824626015136902505704900942585944183188877500781074089921933729790913524330172351352643864679447024485668303457245340323350184062987443481898304401361361913194855632622755029854626103247298039563994273106203223786457152160555897390853821940750308973448179397964545242026615245085391690502007084208871370728532447689298996060537356392234080805962585543291366077416120141678483272347517126112428008623173493466974070361166825795949091633602326315306550865287004549980748464390803042549532949223059687934051745763873618779984480247840193346646739952276228861362171870695398646978484772252031487257378875923140310610083226800090918828957390354545053616164049736217621859186704306293005158689063353013024636795135876968790505638514055472603704977685704008654606360248035744306828564817906284296320319435162124173814791670689180261384697096845689967820168758721127388645942303784018025735720842494861971551913939248685444684026101350825041987304242103367297363170309431152275149122588782435536309234366350488074025860731140381592292268492122528409704550413364513945611885111074147439373063785471207455267808158759001875604735349810997292216534602694450240125805876885237103764929206520577356652401805355974192778270253587258260329600719589811672236170433510805450259956171054117569887246959489516235436809128847908060411518599531996533326699312747681126855780203431559107276007424192696417876789635342603204626329989999711479292038756739381006900445566114203300940990470798463885772311834489453513719488036471367064445041893316927746721141760883582989600646792247454471565785192010411390124218075720415562834915708877266787923258007913047398711320137676337282502434696259011510439391872104781795191035959459949584346284882745808877933501256835684550292493791096505419176625434357561474972439737600002212909980946665183680590971164375191472721932381238704791792769701064777223237746222628447435024945721066578296275583980059696604162126790103703548911020022974693091464176634001462102900724303494366212997577257575784464057255285566286813347992832117828366055989701536836056958262248691847501604034865263851801475135321564263180189946047795375372408996822741192647458166091124732254478072180603984148413660174937114091584280776658426602825386901675998897582051784190575177469850672770304759735124716887920953807174918905903631299630278939406490826608917018618198877761656258646000449060274781082864981003516395018680616624535772583466623074104215820523300766971752991624385552946268167777281495747178709960612830608903639209711879788575109027921648891030968497901218751952655628050774227386957816835734730091025147175905039761518067333072812893680965099043587365063104169791543060061474097789923625181562759959567957815304115113464598607579303746342871065420030943771580934765253177194459588192871669817960824736790985293074948467621475992390358958019294732929615989750265330614066088277566646803441038420407636756949757881115781201163455235448921204872230653123789815521717584620236113856908587927042332751253078676761933483988798073739466804342957843524044822148941571513987326892352159041848780030482975578893735713062654794660267561255586081003877921045654859512192797806812327155613654485719796149039779064662753521154871102240646291312720205399583597924091071948060129239661914709689496440773817509498862225656060447139968884704287012645966510307045789324273990240543811273241175478334464776095665936149849566095795491610058501608082565461616618908829262509366348699309307034869217293215328491811957562341015555939444653802742816654801149994146374656318238020171519390216087096319513881464766774656041812895458723960298323753781819428578494920477251632690631761016610536551778564259352413983357179174375213045377694042034621612713841634828780185803379405632097717717301913811410869840348703554540298684099513259295074977857605257581006105526953702966273896600667345330525532013534349689982491156768147985834027205316714820477371725214179374666786004419396823465841361841334834616080029274790460161632527399727916553585033084310169449484923178548037187482188130780393614357543984703658911461340746429258145439222854516183474320538854353475740362421098737852572463114842873560152805654218202856809797043705791570794220613479175852031028999490461804491393782571970877729307672917478375929478112173006441705525694423728505000356125366067523380467572621036366659819224216836372301131835107673465895664048769302789843007820922704506041426575381253451952540097487167435228277069501107407389711845206818297676277506440139969576317387937931305751135905870289709859565355524494982368201000256246976810428221864580859340532900851934807717382396328934613750382409423989543868971198009340202588264581028562782710187424667560895623093568539789789169810358086990581773955165975182860447293303900592233358981301041870283413997012681899218624246804118204037859825893656209907054773754635053842373990353456857713456755526701946801242865918761140777380356823991371008470729618034357042629337244676264251318105275929468105220020440049749452812474186800315431980067212541357997243530576257275868976367332387656869310072314473619376621646621741779146111274031124722123868457782495503788917015676959633344084438836552446203108667912207894266215055120776985404662251656330031230205746935893642997106567657597476893048280606049816526656448300538178852232213339581904717768246661727395705919475467941752173702600054770791306108164857064538664378880204095596598458885542046886884498351898529222153925639308371014926404360999492829724276825058108362141239328914309478778666599932527535204681181323341384245400690970584818347091676732966843686855925836541650690368699780462816572372162659217506234955200905726785104653622634198608287804066544961545158297323635699157803091072200877918225407884291749956411725060290470265422160472026561799459209695221821984280093647017045983012428527168648386506751361877726377299743244689509534257142015712340518467820706153787108223013945969484388186940037439367877184825577157515035286878093560097633707280465197806454673250496565572219653979105476696069811436782814373641590071151873177403511733495355068229707230101125358615650978799293358564290389232221319262509369092756650441952538240161330034478060780907258572023440020473466460995634649449199705050539563584879648665180022564437184995160187697173042151367131904548089636594487182905945814857247892866656739224227864430812752323870203921265681018568744149744565512355289864392130415957398578638669456472157094068081466243826156843290770641700940394240260614187403327323586021487073883306655300661644545875764263710814202050737456171878639660111411631107568423121749597598158753531382871932972605383281178579276242430011709447730379673698656074490201251096059912012200305068093044361041784510771594096645239857797975154215871956604439121937762275878257156533877006314584681664639289810813733519934106755511514510605855233781732805464196948312170728141756643356830715981463948108646881442528401656999422064988616920159780620824675529309384931184606742025403195469704061449910377085885037493369598205683039787482150244555347559817349514992215623755086276039699454524443564456795671802427247068876679310981774393187171364689688101932860072313918291665549519778181788723071320986365675520718966104710681553171878828857079523072415522451367589254337225742568810859451345766315349789947731033705014846567765418364637688985518570430550908622341090305007671225842843175113199850959040592888833868311669048234854944001856203323847201223391068912454236302320291117295007355578684408231945705201862241550928319779291659232933581744154556665890004522852354192393292938432002073381346325653235472238086810680037450949547283693283131938482241071631454123507940882283169099858271591454501923760323199406865593023110142740888413687441197899590068350521462334132165532733941405256922500941906714926369374330111748753967347493948678853524438536759923659135158617198706805022588474559400432897936830149539106026901322631072171837995670961007762431428351220421905585943616148208366111761599883868582420188648621915250289127952748112557224322524481251812330275239741645081075390507584168367653978200037702120969671941656378150804947309283646771089105583005147781655531159079255670595176817828659330507778474464812925210859279273367943833803184598009895262105311080650191058334120131421497624815958815816073940956704665621651925733800563164638654429973124912306499694688718240078195098104973699871499233723792374397927870146570105865513908741351633063693665241646401134758129387444466038079533145257131760634549045713255114026415639030504599220094992102061964388738481259625695804216122371718262052519938245274323830582443234574805234503562114428900687862899803428240299405090848980991925648837944818706860313837214611551750316052105506833849567108645564715942390948266270135396508114861291042948224534694197671620400936119157125196052355240073141328764248944234138770463109129908297883469159504094187858633132822503869926090175558644469182494071540278842874548127901158806149811292725588936563130574392654281073894295325645850669316385186584997561520174270998859311362364451635828152045329558986107725032161726155519080612289918005124388181222139549963654905194181039655406859667481980575062882727475051074832964158279601459556265169617059942242269256054060856462434793298709171534354655056128276040652046529504798706943531450361196253198842657001277883974448321044592077002464655296984458725168131925775187238809511300180051321614746391583684912580175692645775439609456293600718253282573976828251108881618892530532318814194484086142739241712918943160430994603859614027982535918589144930338844725891601440623606541485060862956535770487009062460283162768766951695195128336375785486487038211804538233118248082405567481043428113123612050213734447431780233931765107054203502371251827622961892926906025195416011581764276890867317672627619730976249215748902904032287649131362679224329006707015019918555815621690498123924268100581955576265542579929661156256556069404805580184254836850840785408010706299017361332089652048820618384266126563639405784070243872422968058810561494464680022074371368617362318602286575905586213733803090380617678764501835449303725524117375638937514518688261187245994432835081107673548926003573276527818607468417632840356768737472862571957707939187588105017156296091420908201979387473135239931905693236401527545583280532150438572450327995512336908114155506390156303892500056208700644422311168407192550058250814667678845829880378931142397903271878909965859912552597412189305257071441741944964002978066925681925577112160927917993548902739305799154158484497595811962122844151660845193263150400957250789682777602089463215399991495412271344937909530529066898910549156674093867421453194027802582563353746989690546086568524017903497471139826525179411832606774598044272060684447255382822226588123637611642010206562412096512084493639220926224661858149448547327326894590478544767687493210401538961759471743421698037497654838067901469030218826104284579696268120456105190040237593496869705033045483622300286751494248403419481787580855412187416108009346071047949107875202530747360920144151423159518277152226515362024887592256326097262966102863169349380603718935933442174694066028217848496056759979151200442767549376508075232519941704605166657115722369950566696343880670663992871326528415951735593921275283918250714481218908516051901151271507157143066881752129856827652701156654915599393721437788317893707649232570203771631731172794766251137055934729635524199631471144059983899173667887794925038025681829192295163795990967270730257898593233352860760178729944694970409732643667886898714834104672312883078613759382630303696382611557367149199531271915934083226544462872747311609152882013759668789119361344028628000480224633803641354860072613343305268322983961134797030266692043170841273789107192000096339175413652911419717598792799161392445789254436890313388674313568973781165254333192441519763730732414625018348323422592838234298985783153032895240640367626684169444615648595895188871857303625358002850042415102704297173469307676527780349769312956319334358171029375121052111560990684476691866132620598965255474667743362680435308018415127626387771443067063549081777134005035188192540686075283231984446412151753332888612334160034099737222939192021547082190047959183102876153323488616050671593265066393476508819024489210336577784191088170948099796459447498356645470714453451014998839418082323626948817077328546946078652677867267953020483589994703522985985430639914905300462526823907706249830627808903765384412301530531970183437490438124792411491574509316525042924050061503780930538344557960298969694182786592432703673242026684669010545412018670773373117116878098430370227063730500297446885629873983803350576493231439567158864032540207362142978983731864972749533263951112073545397272587992253449733647152518443306685897775178564646311896010825683735835317378773505839689402864482316513361009209229494709760202264924180129265693400654993398835463229033410876947117674331304905541493523617142837168339724441311074027820317514026975005749848896018503360849014553876087597998845156179274018992844418039084446464640003687833186055281567877568198879788862420621146104532993742137453633028621525877842341779044203890218839613842934451326573117558677176577742059389567097023524767155751785228882386722847567503801621065569580506846681625090097519948665227340584565390900015579007563684408100328098639913393913693127473584973046421495703010292687663902337302776195500323103290567057102886235977407399425339504466219851883005547645010759422814581985131197479141140851785282155561371494920697039907467484090106975596238421116798556193174402620173151378638989682760363137714385173019465859549512074503565376502759325217408280630344423035035260276251122226199046665126970880004182381098542890304584756288445108957999720858891177452587071961870274268630762345388429915930957089865651980968749333424290000428186397424624779897283440802932469186614108379047071162762334040358549563929794065144487034518913592200213125129693667281484998742676585546707300284046268822339886938273293704444583634156477279622541322942280703976424503137395532031274381931570611839391205585129171476483045586861381109617176792491152228389148426340634159158389382457447863232157378105182337538320523460600474999229023290581972775137618541303977821437876666902199518326391345142230615167614618918408967862541454222001329000113022914634751744945571116602920618265574171955225165482488795627625544741497693515612139710133214901863620731232730668498842110153854059217831004126679881147005977782804214543186303959034632496618905345202491534916799822280748713267992970756395388111990070238580805127083938708050998252918127754816259563151756846280977512685489302195411808525019195464790316291476314450600881299242743778428075341637480488271903320224574669879906453282360049433414167624433576252939137600665644723830756469378422366030043016789142346356217124778736188868349505511322720576509025186488418544312810146127552142637664299588413096508831564285558795486881285442885425853399274541375788297171630729617512863367386931229718704286120461908865688356260682176271221975578451245133248147782825615985517698766261902177376050466430773813104219858191464384368098037272630037863297332970927758588852098120456045605731999221128637061973201819753657988565592868094802371083957488754984602598239043457174671772846512753661501625341627900023063252023434418988318534763118221594023238452723457593118930462693262963952584291938899880332056345618755149348605590183836014175786136344054941146544764923095004387111365482315858897536213359033722166501272990777747335685470108048314483456308982228498288823912769005024380072527274122010288749093032346366151219685765347902934685615564971609519033678501724294545639036545572291152252919301791854369700186039684636885990805129707429048594413785088029159005386772645726234347562276645475593475752583036829763906344114288246246911706812368400065311697683223413460912627486919005056213691173313037254146821397759957159639233282656396648444415443471493661585771790739015257303691724980256556045102441251133623555873725818965735224454449056867867041390682304681539458567603494785105669976245657943147786723443874474256033199331754305807923401097794059018239360456053449767814576277753204434962251368539369646990162119998554137497455715349776984708038090315805525858903760590233485751873274700779846698216187991749855844930535197089919013638933372020904549912588401145855485232293020715509827381086022815466847185506046088351276994624761445898299919443538924057238269814816649393884024024932381948254776302649391379767306496659268518624686541672804025852676772813263641016573103827977070145784896917840579758230955416535786526968204395393204637149774606087976850541742231971519389034477372992979526696963487349321373359330178693310841966015661607935177235023020611451171761770187710790370212983019968688960784539942455708022317655479918077665908934909019582738303547990158292229866679839191517190342685064943318925389602633697637225168232614974937417884523693628646357862157930439518958092595268998537599376605318274751139807908013881169511976568091743702777917256860204920493428464708314919881322448001624374297164540732015891544177965405772883809331246583975869388153424298871220805746503102438998737534116988192706785281818409298134902895090753551287501847891017784973481885764600627622935078755198875063881242516175843889628375561406826425256708152854315328736163109290177718479026494508243800366975679899106056423152005416056479566375973834332553255857306167453492602130563601460990078414306210490839204093127685470744080987321901724744671285783162110965234549831838368973577505356905179839161566150778931138183688146889484977034032739255979044558240163948768730383240827767403639549951582574202575523149016334992771402902266922333537335477128627343614195985607730902905647692572000362933286316551251555214426491674686168401895655055746365040885278581132582448705736431889796049689458031620292940415537431139335181760046425451382164054379382465497410568245339357079809035701728660577206453084314874645129454640474939833856280140518934508398973486839330497078631532391143400046201314508138567788412980861007207692190333206709001367405718413368978106605089584075452144477268475544470945529716578837505974670190719158597775109115605748096235159040236226775642596074723330624791029450533058221312861372818197924280432869272256346305121635371603150664878677146640091682101933372876838419655756063326349559544710743991446827083197292492604066774450013503254560903804975608623466043022132715261893953526250819333895471297063099989315882248150763760202074786773756534070848844161865279050520956895293537911294019316743351143309986726858999429810083114221761087993934882860709151754738243054741507731829249178186641033546787178904858088477787716974400190680890698705794159881171770849765460812185368410078069741453306104597059367129407892037519448659039431761279599555085628913511276475958331681272259161751778190956518344803802717725495183489900067667571944324180858098961079589348005000402208827022883945538220017704171114257845648288928000935443510529317513048805658408769189664534684808385538570873983674440636300915699163511755764896819015237254429857062584950141494119303863585085232785470120112362896488577264655455964404745569335446430524123627680911793330143436170277967236124057843845687622636406502103336645863961309455005443610537539024954382664605010580739658001677924360755920848878434639138871213081973304075253255162999898227445776363706331524240648019035109282062723490311628771589243400428089202334827421035374792046026393971543848364596848543680390162059732518875889887264696209045662657376412082043692940523028725778341465531325473601438532087579119589703894074758300416983659149476212868483367655545643545876291021308847172635622384917857232277725784487127778274390374640411753316507982126658554311014875434756341288255726459044402745434902283958804955627176393936407373221421799288155486233155995321299495992586146073861432996531249734098383710710279084811621773227766805407231168506538327019260676400110621451575765340389343943696410468618103083266001927104674510925274505878163875238150863537661255760321405047572331744246712471478519451353339697897060968130631289218388382488092980775563972175980389636055180158046472361176134445750482658827667724323464358353578907565392542817043983913052100949786620562869365174817349184729670772091052563760084086208465687510754193062247438333700386108970637407796641674358117050422130062315436562782053365030568414892989972814450122178576742809315831417862168911636995106645198433006758794766373389349212975396388284789853761669185672511310954911204132585432337529947921233754558159865833102085215231111950936162222505041499505944339913978440442108270899160840175184039594072457952904223532982967762678694114057481515889090180805571919020219513423172087894799558096736023539853065407357056439004314529731433471979238798512904281288894821499067617295894391319786465952059199251900413106636777841026730765289552603866973244685860022969049058642783423521370665205077400152895714976508661822550233495669332127938801524554916613051004772276224345241596394421443768344810333772145170120258136014428911221715157199092874058521269962879345857631867638977631059877339526700755114367439674838034132747178523886057436764864883898371123059582499521070584977073686918443691302743684598797258630589996608618921083966417253723207824999063170914450654511835472856031044524202582893321183548978423905585822781787788955476643844539409638092734046717485606270851100407557368961940701207323381743938622265186870030019586338875633052675916653963226611944080665890237283980787565351848920382835672610354980018787850132349578946736325798677928705375997981986468490809659638063620473209018208727349375711199994233271508887429478403427906119746202193793083791998401701019862201303863012806921366808538863070751224890027439799745658941547897562300893115027268507386092332066798923101153508254338848806459526800803767120140067165082481570148501830944357132606939456467508945789338976215053598397220692220918718598088568315183111194433767059736477923769159717098408933753415170943031170651071462318680463617440592421613959245797056577101701901363871385515170645542832784774659850776169387422797873921607786278545275892035875751816218940781233495665650120761093133073158842242059939276477712345883557275657757322287245035918571652320749880924175218746375680270968328911270527246401179720733566762032709840028254510526211621898531244551012475609883766245153538342882123279504506263902184954969298909216461552722708510231089785280636808141588593011306876662954050209489911662077709075652502337563539691531161891283019787219340588283062162743809156144412543194662307670462808608941410799292430397844132667224780878088569559453266702279827034543906463159575579045310723818499043368704335632260611772243626971839687677722910145837314568814157851713651620753404144742016122467984313169987509543827138558891367888260449017366729125509867568515968602295151958087562254804317377527861439858113130280045807633826533062800880481494036162351343745077485990272391113620357793233628317964926201240002788214503690485579236864305049405813309238890984557665348383888723683282523843338637550805138202288033871502309276867373835673296946110344696958766863284446002452785914856621873813352802906778963886026872892402083879769181412070272832511788211158135527547229171878765016984961610733286600564483416164611264200348713374165551464911854275424117661181976940091779807479147776939519712925412678372925972793449695832326540860473574955967330378086466220635985403036786557521253673094547025264530221159898475803018512942863969486365856893371807120573529972402210934178977245341509172500938701007176490919955346290669775374162531483299402204544350774064920375816054846140576985624642551650470993833295651427349826782128817881418491778111262625641141595247020739843924295338189973853025091697092673019929526880945156253745978647225247041327064753371293964972589996052323437280317563816747895138896970319285064276308746787317791085206585706542992009779697520861361098479121264122976808443434805900224700650826269385255643719572463623812992378767999371386608571438916785038114550012959948954831408507056619525020612595526998641661525512029029036187835673565916958614321359537840285751661829157428823446142255532280234554579880993402648049096962862182743090581560856330416528596110827598205077588956717763606551063890447599362254099152725734510453988844422202818301109267043054225224331277689636300398937049526279421409504081947481053481887852438459084093626269499796019937604107903548506378284805570910446958257362606217419369483526028787545955169016281639056165983301489585332302685094969672136058321082550053380231061849022181751855677898399631150695262827153524043656717215868030130501515504071975089488751617381461173645221531707780332089808787059667623986801050330459356161678065029096341183202561058915287473774196706330923724402543642922731164942771896643837387817802366660207436041996147633781221396108575578782008195128799200918532121127666951177331117530008846400623101222997994150721970197369941718198718857247831076770037065138336058021135498018621536527855737608905205711102945914774162181880831274159571988695422659698918309666146835542423976052438644116600739038184279133220789825475391886605613651739535728045841181014484550470178153016118339325657393978980112770656760873150495768589040247792379366939829720899482182030068352346937641880220206908509187559441916595782733353996485373626901328216909156114805046995952556028402120105814179391741492442141821534587514792034226751179086474985535137340055988232986085017695989508553041824119880305949157684000525253464881942834370864491419252211075597694945217977060414168376516343402690106033239994352515202946124978816525504421610703632860791483979042799438011398971308276836260824133697255584918333957859710771859735582825257290804045011729824943345974027131131984509961379031003231867133886986848316391480223218910278739096624818861276895461706321328641246385615929551881163019620414045171366051707190425883648104191395013970986950238139429133326712796046560477192311352465891237449579716832362700840193134552967808140527335245934540459749741279359719299039139890536980596839858902133755767876346469738562931879028081680864576546749916390996753697223521660319968322305155399321069633744405996777418992779026178787535135135126618381643496219923690009348236599801603989309054392748810189276617776808342560117280027907318744623387166746455391815550288368853935036921232708516557668986763853105478798608879487670871839542634781747060832250815741892384943986499095205401211753568549790208882817274204995845023384623197580040711416494870377623163242487584638206963806468274389582115011702953811221832692074114917687261424899467519664696580858313228238491878008954266773279347689794861327016304871396399879924286036934867811074421181487370342967554017929356877286090642056728503137749597322875635614251349850480809039706654351446558448011417002941640259394051943240025204088172870687509201252544302083122913453306572486957660122550672233718807454426753380869279759825475225332702295757694346265397099623952815447769499361302054747218179680240324852486627519039788932306257680824353169683946593702292214599944913925078816794523802225933600436506125808599484168106933548748846529575548444030677906729949531576828457829863896424012339101372047982369268369030089176412609625919800567939091463473280186495168584593200001451467616965463324824229157466152815621482734384497490410608292804183964959654784973328250429161495687469188468754087024492490289099170377398843813296286711846089335908520726859219445819410464348744086376652004392174880546426526044737897834998034869860269127244048250823797041885812490368098917272390728739367010190616229951144914754966791586183855032842155518202631196945063951556809165287956782964520958463449404613934255776388700600227156779701709131668191092739422322712070588187145227377071950206805659308131674425607136635857785056585409449918246495433529082522912899431805739965605851958849772787645198067921737985008060477638248492923270221736816107306260598010181418239352300068453285955674954029255913814347956928183696273749459869767691012012381638391687246523662997836306979253866985010434962620523491793591481089465016204098493319686158214275474215251617975151664054385618768231105831380676112291395484865175155684653470379869787947662503021745705397137785085191232740524202741364641462924039257751801050286118991005324750021051605280179574829274359387831657085904000166349550688113054368654021062086966202189327781935304445671927805076873280052027908437167271457296981059979527542117622373292498416818703308597354540708499106373440894142862574954739671806149774301542141399963134117787548938241272156241184676232960986614586521679094075189917157794280491714104847811653233417187401673306763397975186417282845316620702990797253042141015954244288433382440103647815233534111537561063938905597162076909077942335220596007707702372924361632276801440530718644398992558061084489476571248615705544613570298615649120071264848456538934537015258619214803305188660393128543980775390662782904744374622604494732213359751065799961403848136267892981582825362591087171952056788854798665608278305114276647747103661021670671943065596821286578750442517841406930013767637698327812132259566454369882080067987446514152734025857698003183121614311386705592031847224875810679816321268148705830356034765716877757774685475958697536753413444402812003239615006619412758534168221777293299482413019475491980008586614784917447687842873246694888238525638387511534022613394081671816524988024482722185581199890954121904585438859452210177616920804151698952622380192584449352201476765239591979152159366887198190583405042438376084692016192745575057525770219853204767454245842583508314742179845644880749899548908816230705407817156778983899635273703099248289236101203221271819769421522455101282730636684895025787999898908119550643306942665902354538743356478075119526051228331938507732041296594799931110166759921129790443745541323222371782182087166134689969113217088946526789594580561562987902484423049873252913094093242127220424163105954064876228913323184343189435467732858576890588398334789843204089826922550886211129358764186436901207413683203492377158353289791652799056517701322067040402249232793024110502278113413652282424303817241584828108084302563237666052128926214292179176480590399154762938824679384380937384120080279006672213449453090165899855978441526335735974105964865370461923113984182172299665957152838750821502039428338155432900599071383749039513424019792555568757630635142241996867093012334435220907907779677906027275343587885888136474098556590729044955366292252291319146549907560312486829647585369967163809508965355080790962239567568113755933640499448641962142409241026563927855380585608856479034206089729897821626184737042700693543458852954231759261346007970177631264571188275833345389456273584072200330777791978496235051008424828284472210471150958516155761013761775253532825921464347046027844226680787859878712513850625758153675306809656277058993309162788522526945915878329325998749900582449207623336760785883872625147654423077228247005205259178586262431963829416631047719805555013287785456691678878453790260516534418684746613904309940652882430775602463578748149923366804806017227444584003004121383831932809305971824625597965613568228049135518357171258973630410899400601090194215493131503014561006893096265177066501557660044994080103098740435595803901711904308415258322665333610624354469309749993039408357972073691045703049374252295953353287803723003067701067624111172630948948639469266763436865735914066731083801356083881183839728031649243375934060039805656004136842211919126886038504548636338779908481943000263184196906235290788544563629655455068022405169387125898083559689160517400836925428819228055959954200330151373240550029766661906461411292587852935322755496724919837085600811898490422727575213772831209391836298143734730871438465155329572916314548846385298543818658778693993504484489313849319688871322270177439266215545794172348983541267660388467331492314473524357958166009779820853536896534600802767416802579011882258931262148570879220824350861255164684352797513819731413290056347064500646938354064267958444205093211808035741971205780402124510249724111281067027147646780038614266204136949437999061882131722865689711175031592688687757714700596869010561245514503745963835807603935105027615587316633825617079509086541424242710445978794378992057606636709442456711199058069123387277941892172055604313704207581337644968983873769950779685561716658123370254689033177451122762009018215797684673242677491205358336222738813388254446296539746576601875229699179842860637463279909058283079096125679116230858304104153590274877139631918236487066646568635092782534104577865821213649886141635005564898241212476285368152915106923977323690073682301233898323835097909048612145357647198795538012649235009000182998306404917902607846258589358492184402006069330483737869445290584769999611278440644934727059405194794224906644861354114823859873886234129374869897622765278372063364370107482351164470120096162455301111234680639659675386564368863392208880005516134244507449506379627223643514691842919036635350552098086050536818207614926401237585313492524627493667482024070834465458329500029370954522321448359825857849372622654165094630464469307254455359888544021424448312726207030916551519368652566905156135167338651639569625057641527545269676555719034566424871604222337803084760595439801431082413033244552475625713781329878062840464924944268678220174426490261008725439983315256296034246828293823285474715686637532846411331272367547154191975357839794658591076178664301183982603589580751038978496039513469686564898667874268596283513223024874068068550143144450569956829321643685101514417504328057011549256442047362272946167392808386445413109054559167666255579755934973802471398889654515978530362891031196696036222733883881722181524876344446612316240873244221352023902233323380553832867229013499696184633312556248467374253029855083444382657569296562488819023079709996422427540278380882933193341351412472962134864634999585462250609791222292003715876476782158748371709935468695570021994387839902246174416672250257207866438060300018810433788684034269631589811559910199839701160482215331692690041952190553345717478448422442686311243833872538253286416279493882378262622986196163528662688540105015049508702716749455768010201456713527732626608053892941906595620019829088313919060880580028794010562953736867270649579562186398637902570078131560365435522048601384528160383277670249611746802453789163661510740005799661171724638423987843960245755026848842137753766328605330184220796349046246903192094526600651443203841609666260849772130144953557548326098318766789523971709507071429063054525915696495381198135239751385125226622277081833562111241723536192042428552204322948785294275257433325497771310923806656625379686345609574202847959399211467761014979338206945772962900888824998218235243926530418352268703538268320647542838137210376469831167617391986460131111880662540240626332513126621342868151810421510987596754415909052256398317961041352292613316591770483953341377526037340399635389557396893964918857414559982533943961572699604466921038757271607523439767524990075019882321766481953324852795670784640143347104154548403659186949762722415992304445512396579889835308670550387002656750943080663617471497872702511267741062487906564548504796303948130757569581716020423737041241390283802060668562898610808094746562570768557472311000587714056316905971168146309625381364381703891773403127006543932040443943448629216051911566469840575754712729603331526182594926499160467503879083484559948659870716079938925081680537678805053120128541067681762627415634547486446745135367474519413038690111046667379005241475185896807597813959991394334294872093976800501163829318071616030155616656097871703000730312648247638432100121222136620304793717692748769877410996578676505451623497614272526007865189432455130055971297062274607921954333878700365563545502615046253120593965192986921000613706489412350065787541311064662839623382445636857616869810728895676570348178096825599126783164844983133910501011496423774559369491846659412093848484457986671172732569187591567443617053395541801065252535315779469964676226088302007792516894645561051668296195338820730437612650443039972330716921964991826581300566330127614140311294117051152390055741052801578299482983394458440722885644653843974097030305500285194129759778349034565432071547711955083209025187900299644991379699806331980393163462889724388526403507190811346126716494534175952433241741851800176856260704528815436877060366759857888245428493619090626825391762656503962458715018912278051889685320599112657268036295368935760642066855419850133577652963049985313306823990707065747874612089022737569854518323953662151230771576307258375349250616921056500074744002401831738508890929684910628492101155223351816344995266999931124036652020935063653442642200791003621884105954913884074105447491406901529178525860524549788128444593829097186849463441944491314573831307741540002589342218696323269108616536417996893900769817677187671338573403944106614354386442017327238836232384166115735980680061180666405342873932214094739620536272967375040166092094770582470740144688344505064453372828730737633162850241769674923172641264322616702111266804334917400922002994937287735209407292236345775145200912867736770667420120338588970177341659390604886490954202765069508361081996065704484751511003183566094492495719086593951674430006168533778476473482112376581387605460734467348835340773301210328763464701243499855836844376262775741470204043759945604533357666494922309038118048448234384616693394298308666860373879255612243466486345331525117685672831609379179049460558289580064665009507425805448491256580697948241526565461997883402631549610571907585681630682907597340956310290980830970489005210218826712575643350853846236694998342157920528627946829952074473591577376760827382964514290457882197269613500492285836363679851090163676701479509720166211151184619673756262998808318378673541502494289730441115355829139888054961707061950919982560535267423651937346447242842767682197164059181295365820350202636194788530643363283587577860830572627662346656423921378357025631328256599537614393217739493293086208625994914495932948474868166141665165577180533409060237953249970510162970043076909353239258540328696104028443289537031954668704278116034139207333987514285077209946889707004979885406791808578513256541144510374911040073703207416589744357475364971451842132859524430021080522641956675230905906233823763508830519688882237578746275448614846583157988442039510329685981216229165536649772259896297129543014988535198195575183403389313147398145919110130263006598481575682050228443103180332069925506213952976978803032711572510029625572500232140064374471011764551744324517029059653649840953771659563553150724413449126384240452941660028549770955561603114137172504806844984774174999740726681543153604891281667402537331496808046895674863101182058310029036845940614647948722296718647498191944218325074314799352648843216432771154496917992834597647026045848196351996947638069907445849490236519250770376509388612210784499121214694647063011168050038910245054264170567072957374302990154181654321253182544044587165635989340503514136986101584778717304218616047399395153589668440341436293835580920828985144506917443685469876374195339411057307673122727043355049421213356897331652656528792163090598924284690919161136109805965173905907134419389355689472973506735106750144672482119948059249154646375817996915667753781861586690493615594002362513560219550678126534635442216078274607361195003180766260676508355824565617523666687923855909757086297379044235705404294659947353481783498768969730485286372875566939082042166451970005250498412439782242913481102687332935005224772681022787507478636235082835999472916641054616329526663447466467966828324837542315088172622498104403320091948710822770056151430924001663309720397417355567896656888522027828852992729228329447794777079888739604457659689728706406522301113485110611194885669029269392912007595645997464604823530372501260076559234939807659601365099881022610056656523202021389418980978486668049346710121685986082814411960413211200031121247069700732240891090397117444325227349170951873028169656196411772913542188216749563009568868710125193331521452780310585336880643850200472828299378437525275082833862427498816834495771828626097304921538353187241000775806677010152874097239005366338925356101149014704473583255184776796519338726166185129545795767046971250417429045656314292728368038867335436637868070521472499957203634020094194622553246867305134157704449378363788618036442923669058530673671100017010364379138708570079225779831261925632452667400670559124621782317031861977962967131788267542535055796997109883996157530595958976376966298723972422185544951267675841124098039124198907535708140098815635382953081275620254869675770614916945342711344320989250557523097982140132341373827162767241100848541784618848568779730715891404838532801983726142238842850924791232039289042390867749921172879091283926759801571265671290380001404971877965735263600313508884127927644015836490916120285968048342085847632648368705176320734180924792025164665617938976906228447988006305239046057900894927138500010827258833505803621279436713184253708005972577340653770210285656017056072762594294660151420075214690161064001343045070941250244931332649574505430459534819571563467559194312880829170043351937590546797989634638758054452541378601089564699401073029752741657280551142612919768096869564974435930191697885451913361541633521633670038003463993074637405565458957065255526693108199667064884864720292836484805542995957835128847809940355460366778063941080701239583516785064185984473494092419726170914007467452822728077748313630271550496682671799829128268568907235371046565443862722111223097957777504086277902217599152160823782420783162465209971810303922478255115945912123492737555530252501079213164294941042115760429487152624056364806339870344231740008017823139686742188185163908270104607559653209837135298728945040814368588797972258501519358946869942360267403202821771464626799526054891843887376628669752502023539421849023134198781407142351786700498711532542500133598587100562373321920721546815484838880261461685552899814096325871769092440482181171286459701121858115420545117690602450948799665815156985430283544702880257860857810471911738630233118790245505995743281434012975048806426908252785990642105317470592974329331149205222182106843794877644602007221175724076288284157711430637704934181281118872136320253047307842763289362952457613407915784732613572180276878676361108171345978132135565106199944949956912327508147998347004469166610186296869103575983239408523144629952468826745618631401207455582565064449757423978336308211190387356581100346717718644204675578480002691825085647314041325777476791576269273172215074306386981437299901117361719267951909647662764459153843973173066125158929820254619186918163400588540402674600541013641099825862245431475332819745431592072623059231233019548395326551384840390772360682347207427455529347589779448159191080000015761765039008348406493969788518866240822587264247597514917253000553789888155463987696760678266194187093222698495644400238444256742991772952062369527933185449377301816523364182458090975216055609219684809801771450085688114319604306006358668276162172547583567890592805419074262043200538652591634692212905229911722382371665754534381495303001370802062462196174532536091436516475941718403694195047778863783776498837508718036687593749563979179370675749662979380314574788530605485984871312520509885855869226497873296843092390465660752497104243649512537890225577643761631212990324445875552170661166945888433388150106481109625295590828113744915208896810059635839488641231246499651008562548839260407936189656451215679591854932677457658141176269252719182448887492668744181638120885550224376625606042384760596892072661909527458792112665219122242858397827466064924319722317827403184102890391619510395751517829139285035479023295636712863838665905920813089276241237240297515128211370165526754420186741578556300273654846254119516079838516715170331096289621133318264602924488669358688617019298463096106458808645950699963064045495134303397412916943412404828918272013484466262931804548156237766384962852318616742447808523390139406112624511920081913944055102525725753890851576263332185501418745226503409584837884921910445732717372864368607720988079518966199908657536046600041582985508755540891232681151018839863064407878865348599434807143311133453797141150267654284830841553625748659289149076595110235510462630327422046956153986652970678247588845958996646859454581719429568771350739740238115737946345910089302221184701626675022552532134709184281319227262002202704124017295059388230117902694268065409737435113858975405021664200712267505026150915521572878077312249422464145026311883489815342818885372800930502628262567751464252396540213919675016979988120662529401082517290271949747492988302523928908484862592375390097523440823358149417612093577668185628476223274786920459555991523347049412228907240557908574591380850647123555684257692409852069511738796070950472540498974371442666830756826613976685324188637100427915700911487636957074587235136506783572857316783281772423829662288078820485555305873925771243849612766916983468650201691171264377160135578288918304118288825985714812030450077523107704741912363997553166654679064073846354500188232043256143336583860005689116132990856261656172514674216296463415315339513528558172661194409717562304483040038192785790544416273054292074212734642901308471185517828876053003620400244222101643345026540447840262632259759276225704822557255322350938432661054692230790887877495705924992576325702020924857417079280399478780252047099247638434592563854286629847675281235005592308628060166099478166905368774799394360727611352388325671768716352871221482836829588585802465041874570738129064051908637709490145316496116051246788814674175302360506325222042961105104317163971395608612773254168020651360276888574944551229895005913756675267111102930446978353303587296487561007880659781115170977553247361663589548726814003680187895275762544804758357817631483028405673003528540516587520133021115526388802218139954881379803322923241362511788248410451221930770685255041394796202804694282738762224169974470261448815636310014746971130197236088375355810532875739956424466415635490371764750175458260902865368240507483762401690247942743931325690306838076731181027102900675840141838271447323094916886661904243714267039718890949183609760204419869060078270539307740557726436602071556498236223892203489215063579825431980676924914958110848031663425786383843869529044106096506708171885846095103281661311692687067742471322027513525367570442340566125409880995998959691769553077781086099385671401726903720656743928062586989346892436355251766231112430490693318666037003122131143647953884532599334612208395193746089235767766775300274676356296544222040137453506949297217466965674185342288054397908295700281893229791496155696337942280268348915494359995433654803481438162863290664026689453165065268558258259051040301096492588691827868470186722118125601968542902248660114656845308739772576505976842407886882728279891966733940979987139848440431203798910910076614087903705575930557638846544943529951651575359053975602432764650536192388279787883097065013258451517625646379660911442646291385271638654050307631190346913248178277685270609871415345957280107864638222708019789496512678044690733662010121649643685100388966391454067031602296574584051577644937892628249593313987202888099976345821024311173660361751995571977910018356967868849741080674891191078150774263148345112156078690038766466760097543908278137727958495713517265226446150839861111477261761050040428144156760356325628373358884953855793429687767748407087838347989579592458390756280448018073871960878467036987415185822187836127474929342440495730561502328705570362568505704214752674653560904678270180453861494729528482961809472805800195464908780574943401341339392319288506047890547077325237183994075219782467199441077811584611490256210766117003392319227614993342756428247637858362609501321377154888903975858630245732409029744569570183303679549760986733674406793019895632720062686739727615509094166233003566594397848699951225206690495450907510592264733949756246344809987149220831239205491736623483458806238691928409155782502243723816108594723977386250285081440676341852400153625015159888245801545109348362919407836081493319296355512730184028652826334977759924103767848211825733894809940430602466753063751209052522351209792318027972191958632447939539374740589036734184415558813880191393200612898665263953059806895594691817187483243146489003521964374511646996390866592913621610069971181751626945874677052764137618444403112933766520059869309591651330676781764579401867895100942429260384418364747667742775584420284076128171814129660725079300910029545586930884890952731089503032749331408827943461966236556164993377540967085732319548630061184942790306354981791353748343280215079877008827683142618226253822069332324952837108430797941163388007572206928220621833336920548001558624673900495092544462952019199279524257327542606864786277262821429568162912000437549997846473494604733374210382041478781748231531826908581180678568085276282376314755656597844339726470898496635609527005444917489470880924384481946453020652239255958732888541985780578988685736070285715936589678766856490964836623584190549565708456432920473340388890049369796821291181863673897810683685394602869427848912282532747825696331351884886603110089637898754458650205048826598533198158043148644502479983871478108038584502196173228289452509254287596929750061717863584953506173496882176460143282769316003015596063568660036567333459711878451303366268737104780660824206933328079467911621723436723061804308782654938673498408206524108503964788980225564859718143132114919431646166959337821713175879048193956589362635386379864917317642544083318239115664701309341238862052966750752869494272257993100313471149373189890729185768044488455938424107755116313015222737642262117435770283375510399730928866468276534406263752442895701288814354368519577599186770421879775144854966192074802269990127286923613175143975023173130988209481527556791639127297401396786406035285871114356781246322427300824970479090663706372578769925019913142728541126436682932940030063065940439316642685063636599823567193103027941502556474023446404914599675395329385376350071243897005533555500468227705061719543763728416836705259927022376446985133244084101654966449541424451868184018562194262166883512077837364784327499408214802105780752822977917811825440663244441976120209698222086385868831499807107582386912242483913291933148572123393185373050052040313499686786267270777427629188978857285240188552122961578693951139569077294479642326298461096643916847674569816798357949767155088147974602621551206992078669234504105350840214251916312813299464654201043716779783789501439081895636539307004096155653279846227348549600816897995614954662348589086614603893178392630759958010932160589509546921303976762156150122386954773379709973335984585994519249889896055554630924318666504577134152946901862913466422028374205299550485900859231085529851935143561532359920363261068540462724791512838317490856651300843833311478303581418286746539600122411975247319258782461084740584545963410300596034301828292530048081517250980338364843575644480488279587859220510012579916743515039624023513235373431184254895966026442415595757634241479512276844511289479761462286267201761561057794506282223002036533525034610185691195766954050528041901353301514108647513926011888075675696198362766603130001826307724053507528213945021430841063333396297996822526728799017062077324420277963260393361449442032382797754087987588162232356648099867980967629589229153995653720721958197306241139703745413455590642607307292732188385667296335912854785303079234463159161693186832512711444246434445080909291037132496813452886066036839943271831765667115385149365993245045612711090260647417294764424027900032247772577167854733831501171483420115242297256911422637163818637069178884260222326468099994021634769707490972849417209804847555241808302036803345953280136005330651190181815745903974767600002084021284604580768542752988789800650884855922100261030764713457154102079185309850952818351453432081641760075366629575836791169450139760846119761073584784086819892093137909813580306946020933791890128909778900517273410741658285448665560784542777452042264322085891942911079368699568737728181209139293586163336447876569982183788725647309928790541630396712039874695904824092320944818937259201271094616517449673113828388465893380579071395103038953188801260806559286460543926261880752763454924692352821007048481646454747440443189860590297414868424420165910380907089756945322202355941869044595593046288732120233551465463879089045064915151099716619475966016230541466757351382464132851852717140070590485385359102874419648208734502008452012035968809528873522247747087516354908971362997245744103126691650101785813888507464367173888625348141059736513254663153566351117372258833443173643006693503242184783192701378599238366596067152056942545650742705509036091034338350720955874184799207957163366752511684089698587658027951206102016882179277296517091763585344668040945444505781286040513335553904025936381585467029578676547392319652240555499645001137807801326882156109732418889011889509713740889969956694069597871983714923773890092682285975699565300857825052293133335159493867301424203759858415486445702123505639726735688721238936870887744347900722716645864105358300040160733319732920146446571378516042919093878979727120061592216856393252833312042974203573740294347819217968795583560262832503897721610246868561945433056924815014770244046481935091406881055231705928728671991306272241286918725823729155314372424476029056206991995643212222803649238346194853636422267659165476956107663981144338511402054272938481469815049398612872208910819163110249025024545817018255860754866540929912591236563860784391512366256729927396769303594233636464160902848106230088992553764901033356184438371351647722225867835418007311818415227221318230178254965862863282600568390660477662725786527873243903771655968670030933484517189839645234932428657754192799313147249124232429094045787452155557015671038137244013432832676022705383907725668518187763533809176706855893354753069874389006967524462229959850248002324469301353565218229966472698935022821325903789128171425997014219539552850430849508869817210498959506969231899257816465952056351867391490060079116081158221802458222199246792463394197096022694354835964974500310461785341633618753201694426983970885683434723803599288921583560680310898428023564455320946910715068171170788735973834045608474893561604605168655373620174092625718045992107920876588282647362044433743936026538933695403606395803081402531667738115716008212390337293201321494195779489252739710353348472247354368211885565453853477705489614628208856671510449047423356707883049303496095091498172729797637350091451777175651380062965683823405282185281060044893133592060069049593697520262145633788998647379650918088112279865570188827328499620352597654807364308383204963567528531892354551183557007019665671230124297816612225990143811421179677689599646161232710691569479008857719398493997959416291116986273057928225068498744549666955920333294425436703352920726715928832768375537415138566178472503361074062348674339595973231353686976227828705527579001097887074897207750413043911148031166067106440383224563296973610699090020847890102475899343146629579452501065618410932239042052844270838503543098165236081975547793486999603677881411939029159111775600452746090853581756496974936898874395625927551805716958109332015249209852647018789106800492935516697418953902013694540974902615112362138255248110440698031314441671542975983278404151349277411527998849854417192959837463975869687411934977171637373347486488171992069066885742924189980387875589895756954751666651913172602631928863393619976159115873391268262969620196351370148358203520349804189010023764801296636488151603744055503201950608945693309667003035947237477255352464633936076830068694711199213377852696113920863733709623981091600757981876785021208366460511552301420248773150514142391273298576751124338205048284725403489107290995339029285356897812286833210386238668620204934038302691848535656914903986282317024411354397889256914235646742769694593790130920883666781977556612739672477765714360196693411639725168139989290548522461846583354099816997740386929623989019131328339889437512049072871351333964382768291663856928340651911770781547171506014742689709106568043979708894245161456652080654841387581343734046156423263203882611777192464868231217431439275710376986049783388969708081223883542633699775983232301622995897206097761951291124728336037416798648124935680086417189759709221272126628765711643713541700595219558728903879736960604635119600621566533703581526846991410891250027469143186763200916817082921418263116050385704635829451322609449631774486818624571997372690230319999520719249102233226070584871244784623523370836471568954876232772546522252509886176623480867791787531787479468207490406230342952641335222023326881071813441700042582426455754990772363945196577041375019466096969442687008397183825474965419959664537368769793685245418979252716938070146000528041330671201474312788340551285962894914822323717680877308147342761911848495233075430903804232642055518256710454976557354570800005430218864005585523255938466325755667973024065999327696181127777729801420065830556085169129276018398057227633920983684724113320989355890997203834537187408737753914785727334511530149482710421073968817316864300101514758175639142951951006838527555598775724201913321509431378810521946644091613554733784507505512519502664770808643345391433980127292012677661905125673476328538063234744721550324331229997515148443147500398490209194675961190966037300927514340551189695866849223294868350796203258226752669034853555342740153906123075431771259903978250729314071134598848769898042090597336302945646718642218873587242054276364434235113654284430750807711581690834427083419394941996155373092076725929659389458335173754636272117251834575639149897422208212077813212426932850267032674297868022728459419873747841484687142884151627985810808955153058871870943583881629700499090018949130012899015199640699049173125145557424188078675762585091154995939807342426905099649126594080949496064952887796847542793006136854478204453192922172571309266717256422526267222845263671556948626206947840427373153392869228129313147169477300435632382772779668588156757495204116438518561818059456971980850919506845928149007533549551584451816347833119194427992248171621121584921909839413989770305538196757352973833204180297632789617391594221831797698966693066821670321104115048146896107413576548844687712322567682810257704980477804337452780923454805531479756427439586108665165896422447848016911443365350513505482858963553018389024993347873322393844124670338431025331901603655524647946107352666726727399729668073837864500559458894537972661479095323806323579258804876156629170428252009948177570284858395976341963438887433949340233659014507636929430373562596983832267046909384010328863577681977768941643887888890946726009153759439867505084297466785807050788528303854109216991725173754700781379077402708265880528558556296899692542377622627796207523619005537312789803035404816367582494276320417110744901019047409517755244332551329385143263983219664261251788593489410348041694742785085291249428453189538384621278573037409162606754211981301377785164343566579721806726302876152965896087253166508887487977162651747542433349723453617620640663391371858256906106150224707280600041807541285996926427574298562156403344098878546909107352468531886196117438969398558974551025716420502849615269907573626067097768871598387686851240372097420909934220470130537724919496061185328825248983655739910376673842832039455981937587178367480212738065774243912127020305726517272490859866248053995329962462919937267533503693269372290814661042332097129051600327006906297884478937491211110382876962888067618814886736196435808781304155925910611404076972759896086290037120943124427381642530907731441589214783290730136152325188184596620871853629212113798668668667520767378658455641654430409292257619534071255130845341435130462435733237445312958827277030888841900465900125513771335735951816574707624876402978271845039635362943727449290706873024923623860785622568438073199490559403826204226922757256531768221547609021582405031647620268823782797421337651848188996406013741633503002378346081724875855900215523674040456568745988640496154324729467236974675319183357033143562686234941045378913224122881680383578447966210484949196141359454528598378461058506412253010254475074805514435846865455863310423170744498870683754320613657605193875116633941496693101187673856025670116720983307330451310374659993275081498005297862431654106011338363809801999328863638054288229533428696634055203315124865546624320523874182251537940916355176513862849147200522639289648143464913266522858949458703827197022012625008673181091199214265720960100211714137236027895768778265993903165981786241387696666014221382805901216133051195510037802558007478959591796769042910953349542230228305384089154565698653963004625974676097811820464502897813622551289843249256689823798828971533822629895246324550060758196317246663833680457722394460352395333071642223865713899770310945768571168073825831077447321295204646004969361365463084651508268927864867162952878020090038971978956944585745292239589724189014885639441688155300804637244392189125941115842133360385187742323930127536878444513246533479565645561495645555931767110289057304870253449701066225024614148862141055816302903083479871274460693823843205489718849609655904117664727349427965536295593940238233939055222112235905108655708760661497238836341375911722477493189267216959380329468598435623476245898369424972364651947202705738208106893856365233698697297873596681549237404351294221839453818019324304026192641566112494722006771429355362162138088842691979621716432561616391743299954619583968539617434168750402814722077686947197151244989882251612098789726833524558167401779141229809154451347605715830877115376340971257214893429941980837168803586395985916200533922236416980338825052034048966506002601480110436377772404995553560700772250963000797943100216535759456977682700038496011623115455667051269778978075576892948602357057334547661965048029828797558017064397872948688458823804922050357102737128530630603314548212685218844308403805522588524727493530705599662788449216703523833844612246125739264364354081825328721145040390265850622311584596745878797147214846063487008365023130578138866924172014199244663553022515598396776260500429243361598015498584621349919700034331416074658504219914849976812183338231688640034740935117970088441458432592007846280922416876584639546543268825697027977440044956887977355386460487120833232615707814499272780311163184758442312417510997272485596695869707234726742751703473947027975176686888593202857871895010587814334542223168650619976466531758253280318694572322999620089792403135753776414810308103550004971145359135905227237947121918700745486898102013863546746699588800007193405741095080823843482995769068246545910412761369451807790960809476713376472822108056325781471882852822942755658786576345016177226511201266542408908203216062846408542035318708918836753944905054041542535954110186942395002960901270540097022873856137097406702682986257071395074556043614748183769137312316742279680444554147212289438700121833572537206680434886083389682098310747628508258090423294770491816480167347665898431066233821142238022713097994966994262208110453471740030210422670273427180359202492611983257431598578904604951633154225426701713361927310313147027361826300539907093959326898143466251228528333091593981870591796952644851939519926136353838102044775260872400278855361755594508101909412128477760022439965147731195229015036899838235526153635155291424108175148221894627864255699142033623500295615384948581909474942433292067752779293373924886663833566603833970976196343110663693304623712712638842326168812935342063010920570605511330622273725475354185950965687902800002270530840758260446268225396132107817292304564321115811438904574858576251695598500888254604176122633181721529782229654777853801267007206546983081111902359980199231601112169757757691316687177723469518430362811557550759109389576964618837580368636318162685373685206661402021828433126384615697550499341400055298192478959895135733481521208866770048888436294834767042722899100842414315094594455584811272910348641270971719909979840651536129750578521129144404369479937240683725729580744579797565926115584896052830032822136823705560986674890205574913284513043247223527086644923315553261587961790068835492212762388867142156349396228932568870616218955262028450464052189934346671443970020473507280274541673132276775175992729352856614227871348920139683493420865700768551903962545139364760569317242567664751806967413863835919502340563281404489863649217356983143843873836965882533374572523721018365229669357905214301304586357379072517615125522941069709403089599588134953903676457239436750217030686620365374670298229041659302609008223965653032282545526072461051632504960462913792308133292774613330889455464311796715731401854059569382615847704857172551847935052943077122028221603644918539883047879660627697503711998867890880867992184546151631988437806416101162027811318343429161563482660105441208209235282901984247123436027677123738597906852155652674977114820922727235473918627569541287456881705073486873312804459017113453880033049607351018879225740741323421937103943510491703636522672656302002731842077280270978479396228879586665286318381692167186172409898404062369640445562785147516791564654872909026908702444935019599369754599576029989092861504011840281605710501955264009323336838894693169457274001669775789667922464517678163834473024252930956263237172353241086525826792229518469083518039392756002207786180618494158584367484577213575787709410456146970368646911719784045952388847056537664209110933513554464186746462699687179678936386130652209816865543834333052236599114005575149517669759651120277414291486000496334140620447963811074693146674581105206926463472931259975164083410417306753411525852771482793960839691113667772406717594024726172916436351678120728246540204638914369981457930144330265112354237943844281981308623546579667123629649664872997218161908277533270707929333196539238794775960368078779195858417494361052332284563506921467916710467953043273392920192529156993863371756492457727332068285259322575968327051857838710401788687272572613273746193375590609383182059946158567026622500147267335268974877941243128907556100980174958029405415980176919696749171475781530096219472679679803600522427920990258932925843801534290751105512011509009304335417121600727476698801323463252800031751875830557530729481005556682745113278497561455152034391665517487691070238117365754207838900296519296607207902022930126465606451027358674503927127411957437808073112617383899607081856384155785607906972957855291539465433479151405482272883397249715480059789184370607222364223702282394514363791052397816970665882853486993341116197201089201906748639902130711355906637470012241589545974432728154269771020197293239015842881845811419295201406030351079256396639742213359407348031601634422907403429833263939659498909831395749238064249059135963204858433297277767275230718185249937666669034399840451503068025186516410705684782208102972053467676506128021052992171038497102051229850572123649308781850023371454686043347906813242249509215759738195218778312972610535588091986167770372532889523351067486361864694887344759313291307817368369498265395580967327230047921200189463070437676350796835402076580054312826622142365450832594485454527040098917199518009500500180317760210893952580849500032181414610174286856020538173744572307675171090863262787205589386494784396176896189239858568197030277653776645673444133780932751710608705392191273232426467264940130725409561851982316176791356421252749701719692705070113354242352744410340656546749381689132953693275009026111885507342890162820043327743702103639820258180059279365258796908574577770263513169262875335770332337696580318207796989003812994566188120973679722534866988465104627963749471250759781858574341369851427744570384979713648133581398860647433721273413364050885119637504793907488063979224623250998423252387172416193876824428085050537406472599448814861527091847833780194963523985437800372600628549878189587018801301122613303669139295146531560059707893450160515368707226605035278633453211727697884788173529816781285233379960524854541306773435256680336021349381306131373954355973653740349958373949255071336326034849571387858811867594372770136519630017305491532352182622485037671167009930977386880416218511505515232452667104698644167654523461484277294876767964009109488967111314305396198837155976611308037669271289236099614245668982862296473513500646950860410836879795433887640272425777519807523778699073292840293148008475886610700650108439673462908977643933345900716974384723648014506770837232697798041375221772840059605354505521803547533892273938554494051356555855127772477395596127432556698196413684475253588347043361385497976954430736962806196973018455482392875471439097853473910396624425734161538118824773154446362115334810994593195723892714922494681839636295004692753639692155364734306700132820246789287051281730908051156913304137832179760883432627198166803587621238263563896613067122327641717661683591892220311797902524851978779823031656232825418785147086890252377325081042279715593178247970721883686000161151204774552064734577599964937570654790150415332596027258594948698652282227597809573667074586218073837876831906005648951758741522830225839235719611693030041045257602250136397188095456899321924510372208919306685581224858010206182674286589099007135962264248350532021221291157232552703780620416953612923498720942216407091822062693573814449237797411667270428906516074052815440579838500177704923094677024580482878614428047309152719179589218087372031816642195206652013690461116445719298281456107921725321823219739584930146166534978506680495235315880420512525589524584809771562727850094394906182382393799308954349511376911256777164507620057938431030875320209701861502701024837371198717276819193766283439307730719753224773630576469372986538191276093259403526839941185756724709703650330428907865325541284646268217358143334181566987491106446737342457269030197480192920060285412361385093603560843349215415858564855280872739967906334398766075232144833918329382363838486004434177830001534726030580258597115460555703677288379274262499705116294618054900157864603956744507414302911962848626388119484960884259661972724647678571030885462094559430537207205160673405095494426442741671202290674548181305187843031138608101928090324186888080243812250546083938165213015798222446271996936513233020700181153025212847346495907202114863061208830362377944702538761775135799568412689100295910222975626625368490371197934947921095251784459391996195113076381369146356982964065141534440859117001362130031235340251666605043666701169639839155997658423982260868980938568378741453309567477125827430283727018851358758459370255243933534950444710315050708664851978649425225951008169146192876538479385591897047719691395236261995220999126596747538778049246572464504429698714832102139168965041756096100713259203159991591299574694855126592573271403182905551593038667886558757605225317253581702074295582907112182595349018003052007209340524393611104010538505932614489151407051239729118811660373819310583513962780849361591962129765142989115590307297868894438797856010344593910118787104601514868183091974597942108704371907616530886710375125714573891002811924813711973638451524544993565754656794077814629566771765814226804716948715341424607080157868215608688504496981129153805123455431407596647254800986760180714416202289980127876472878630307941209429944622731342802041963076789361266334804269926151169298604513159356690249378895827032169510671306872932158928729315854075530201183245300290237385663853364627541655476088058107941513728969862058255532873723534654813385909860184098198493123905901754740388063983441442948004037245057635919561459960962238756005174460140896683832665707247794786084119013741845810114259817783406266528787124344694786699713957080131985551440638226085947755679373303042347450331085769163810155429822338040101075822337702902855024690588782981548679157804366124002971879171040263113347520795027126851177137563674973443478513967980839163866197087050705639029116769076920627231183428712947232477693376707087368537150724452420045503969692698485288129688898865538322523914645341888741030210976897616835877423924848420462595356924983332053918521532468168512694434288798125011117979170713266876693799396163097958125826979090347104246099594248282746619166694766813824782940737872600780589718108955763334807651571601538239000119988565487010509907081456351916470116177066242626383324954625073041864045603607412948271887356041022810832067566574497509389133898551303245331293190244364969811745301520248183241228674405194257718017733002537719350347859773308483056664281291608927509133603914132939401206058026063802187011075269996620519003334485268062824632787059221934308525762129387866495608206536638043147954369941561841561324485263263103878653069748478434796431465909931382226791651616849141388741985740600922446361352648712354093682973275320746579049311257121696181498452729316256782159372982696344111359810316979668064007521596878404175282352563723146929360551163189951792909604443067247352270389344453959203203098875177836029301214892047489514514083440447555366779923636085751009636671730450264009479181759630788707857570386243536106287084971569657992895568393568517193836833140615662070960711037872910526886935255691636786246806720608679316707433168893224469865972424911812516379051434081621752320199161369269106975768974100466066034319810726483028291148570792175593319469327592210962243691588374993280745176637853305015148413839661148702942819830281762418245548966062783340294429554059364694681378257543748373480942652450595887899453870286089870484233158805179424092076551636759633553784154026686813017114409392458111382202588184583338956553369441965976447383594137559185726669902988744270363623134658964719567919406342114820004108896018332748843391241447518766628470436551054939790087163509044888141939604664420394364290918426389011841363264367023230241536974859684831967938588180768100806003699537391349812685322812718320388410241459701350067617568791211499056858901052746583950003738643382657941557318947047734093686724315182807794046204945591282540184899904119091426899878608866755257838709609932607422004357969465018604805485721396285370407133012629907682551143846097302951523063856519665939420822051906260793977382869120913648923903241085098152514744864170801939955307014845896241113897653397725378174455766416090007617505099863613069727539163405102941969618975034618226452503281539415915949634160323320691336537923750800067049301644318719171162028322096895360106593248590185897751876420050029340403781642946237110972180370706198510949676547103056850271659277020390624028700835562559921466320346975934004479239851376798998444527470795807923223279492036168928512307403102803735989856111218327773827121752418959258454910540655414000328317206210765953269102578191567112253647003330807140010604888260051545822786153680669183150605657782615154589466089389999371759571119664907422575525717095407689634506352237817566666946794323769044578303356314600449011730033187087086403362645467442713879114016925672803957441519464953125279571255321966107654945551645461798633187893814952675113147167782846865141552626823687395499433224822529909568828859148932436074927212762275888090450969950564396621126500332982674500071842669464110386228262814971255714246581210380543202646692945810385742643608677238645073305397222282268717354457963563020269721315381299459140397301521486199328575901335004863975041585972222326572188032028000995135071919851794328904800505326141616979134734599117393767633960716011280134591681122154250876031998006132739585975360031207769475995437752638495370232177676636086418850080687564578353492337134123409103444359027945790424954190252050135453109490525669581245524204391321215033159750663476060903214409255101762051696376625721274492973024444906156712566128321553291426720397090492140746998131712009606516340879804266763470791765054100050745686819595008281924078493354312347811075869580991782051647747319430545144068696744306687553289439339666017774526397497244741075226862196664718239277061444123776826621112583229860082378528596253929702203680444326673823091071030906248263984317063401967686825518376527663028581408035074543734536735749654885098716080629680420321780225766705552799600636520733834742748466076598632585232083481648897269096501353075193565139673042937954141343303083218897078928628182989082989187726168080976381616712664792989458926546280347379700321518163204098538913737727167454878508973598440074183694591953942266050730610592565966644887999246323150959935547804886479047096357702383838463772676345078044536026577170926115992886228073075302946209300986000593922974480916423129167497451161320794362348363538555370663002041046849833157777857170942454173722956606181274468942885288919011408694780788421041567162849361676895261028598286398938860348169393000180493559725680412493773533617143512967241047530476962194974776718896809545219777524882174704680708245885118031950016038810043348670438788988551037408777286540954286776153731231614724620205553443641374649812793022945324611404883185627040428878405871197900530674392684797921917228539668840802158158755525278149971180349418603916977128365052362649049497303640432756838091856664107290775251399958004767717108203437146843590210220627246116101247708797280869455834387606255826560207692677705653470262310331478292725945467741714820510311216186590550792083056385799490525194935982103199799590093926153748073999837485261970363158600780735294570176946017894772984962474802048003673121571108360948779963221209011159813850379754118815458022288077025759518861882571242863759203009647341991180249049891232816537701184837230569390323227599357946625678116625833383451215219976715462089367352963986573442571908771105103112412749582208573684265679483306587277918376636306014327210161462058752787710826762371557861413217628609468564600161776923419479294479171632154886286866039172553374221915399219682330562580535649957616079935604017203405585412615620935314349124861579292929493864420310652532783908151326522835971172067143133280884829025356990714413005724935190579567521433096193191678640677968845793290983757509202140029040896423359198371883206680703688408011267453678225181702741136655478498243629195480706635402904724123225764381401789932764691428633705495681064142792715680441635191485581357576794258996123130664771449720802017632023520264117453354857420976561681726988556439638101033726222588422557261286519267555971506873151814610180806505875783425891759831404044814986463224854789058631659516776525352169324595258081065071980792396297928787621982028430883762846837939386498741597163445190934198828335255208918288826840933562667060546062056984366682429062425585196940147287909172311626786988853301727158122986675861526871412555410332723973607841313114316839039703284941391919137641228722058575233034882898008658993380481084998974984872259533682044635288605870171433734308399347711239610838798053717162158032488347453992255222853643438835503762103649626436642312279477032950308616515670688408911346609441721509044073158654477772631311921414999367004489704414406878173865333305834988596253759646776262980540571056222104455700469439283870297886256223876939786704027156336793421421340580834988598508555592561301989407733767178189672007257300692191162038266967010626895838623335683084496577409014083522049257012345441860524198597618289811602182944517652167623317506735759489715488684062152211855801922916077456670783860590661023713089521185920251767274516773255538981704228539428596342371220020351407872675904886626181028453211582413511224316824246494293044884541365590673918123196775192515853564135401004659097114496812050615932908549990877491927306843801144081211721380441726985066830806432056597959557549507435322404458222368960705638533525997657078212594182490412678958237785410817151620362232955735125524159841091949130838815912758754985813137839518772520829639161912072580113043923248066400119773038446360988527217475378821537062003977704271760544355628506184271601579238438923384857015010753392713756571756333033906662071791829886226444456531049963695413659143156791317405100979898916098168385457683040976603693591877720182464350769315244753836870186584680089377905662360945557059402365833564289847828919840184900671732176257716134162943003735998017177506098211413114024559825208898284759537708202891131631479689654657656095358011121709168359862740449507564554082032763071233813670261881410820079873187715797427259235710057372479344793497770173232665796459787558916145761084596150445121518150590951749508110499954288859255341246092069015508240159208656216112694537281647510103814461823686110531393031545554553631713676493565268233828028250636059410447712307542666881793268887163818221957891958289723099762269877365976161507925369847832632863509712277158429196124726801478602649819325641711821040471426174623160180099604759297895574372262554257926706666482120343956174267488396299258705387545778915103875548228410421321004048579073295949787882574689656966798936817004530273326550469087238408020177053077019908289653234642788199312174158054010643194508103106645691805872898549825972048347305840398915287476811882610256428716451662732222396087388456669033703823249172222885825335371270923702268622891827911445599595364394745970458055217250456201911143044771669119876466548100964026657041580241705703335231001924245866182389106106127582086809252268017859727042239001559252565801591713780860211617975296277338122985919459853603168742978800868796508882505175190002720154641508015313618797554529010759246160559704228850108066098047218750046661443286228612704215533078669422354640781719368469866701561823796326095302030743308399708360578358671000399768438272946587680482724759415479058377820061475804769001456360970130891205435111867574271496905763759053919203125262892158313682942967706784565722303313222662099300481953678562848296084065799307515551827413622142524714415541930033000425176734984992657493056421756530461194419176329902846568557629325399583630536699555625477383438299441117953917766240199358314820903317294631140385590727818028593741906879136704173971941433316351728514561572132460353949952923211735946352015494993033247711484851328658160529810577016351126289347571293295604310931179659995525841481003793484637342332416317250733281354492721502120594669890423014278958187027095059479219467923862963969816065709466788279613307425304597557741045781236509783067755180454641255903555396784703020233265493113810695411160876808342002973484922021864700600895935206137573503067061354897132949242655869879216533203807697967954118268188019594657865766062289252041608178092812335960706068223633874410475178562356741264048910636420114407493202539016672784595089932825226757333357940927389755809589227795317793619369011237708556552573680029299611820737146227494864144672811111619980466588329129298880214691393962996831917696071982113804636493230620971318070543453277961363032733300342611804757848134126536522775822451820655781990226484143712238216050848352341982017817584695607049602653334052745245486061931768462748290097212789477926115905296489676444520065493269305201079852961065580215982429645161959641855089601980605944539045499640795335075853504935049406907302812401642089831120788848226622947520299862766534250458715607785884813159022640186955158744419213089714145470185339674922045576075473580168992300147105519319586645864131649087979824771589463387571260996963476358420097580598363147312088110162589923946610066931960838263239463559775468885356067967218934363775968536450215411990566040742973294960272677612127595310919353668262256658112350030488549890444976073155290306936666292222955318475935102153817172024239055881963254389941762205163789468623976067617437652305248960857807235915196571641844257599586444076910161647013048117466070160172336426301951903685549071178355352017344833343354442725625660711625795512615338750783611512868749722418233641425962875405545319484795578882288820664828407133683026449484040406258052633467370417323724243120183181333821148961694392743866938786283292791022476808729490185034833662479954943790272518902133460364402039699276509872176698399093849583455651059908709438260011167364836902851561734631119770639178992328705370193024218386618362474426325220026864026419483742625523821133386410265838126814534119959183357216395985731948454262038921408007068316258310769239539589242459277613424431988530755711162389270339984478342068594738738973702720214288343497024786297680198143634757124152949216395875952254335672411577679420948433599674144946144178984030005921974817596590433860885722465159122592587567872402412845870491146689116111061864484452538999926086424513204022499767729651661238349040968522784980484725199930870288130827023687505615727119916955484448220109536664005111285016680886547801229472896427084832001540794124279763629897045084796879210282807723839920820657947028782733125935942836763514002720152690752616235137507685786865153685263524433427039031269125663064956033373021077213021206878375906825005228439046097838911424094024488363725740163802326339776709154246396774902531053417725371714974554591336970135534818144058490782706499605193426405336209439582894998035790439629694822364386131689626843370451779100365027842850094977890562202444124629240832624476393231087306375905912285799060378203964093746314761159919695629501847232166549273944215855568363607370549438320353468777461572704248547563281593394723668893367694338512623092490357790728990839551198510446856180532762817334675149218160827948664246767871076474691633615956703744844102054398757721743316598284824642616756245226784155133910645321323999346378275046091185365006365153873539613874676163120975133500682500827942337043919047542966287252556528684512449171003882881755392907000204199509551919109345711496055241167475521419704321599523429221027237236664269698342739527118421353843612357833390226661178254187923276148642603782194939572929545527492579309160498248471261815190675458134606216350971518229578083266470203384501888664680969961476372733183626822034107331728917267235802548717514088916036375829662921806962000649790129146816812401468015325324096691468622316897500007426598892468091636013431302388690718116203991417248382245392420913822224544743174085910858123089234611653654361392201365455006533642193540001929983161838945044320075685969437875561228531978719615476912870337143743165539953375763050563759159583605929986002251077315208580035298201817820231275720815347618362470172874898647246957099158278350218622182108989522648924780227231137628255824062984564719373503337798521840323991439982366179920799997434062950512565125292804578993017785346784868919041598970245354614696573551626317518427710898688992372133626030654858772594683305934098420786772087718023450268776032963590285675597536894153954191879527926886599001838733580467305335390783585471996312374871204063959127557769284847711189940744136971172417942838711216347261502972579446181461201535785972603436630253928624187897200934341317878592229778651152486841615392205292337600898292093495948780522988917381986244107574425120599879421209018509855530390051982286613901696821005485843309988972872724233610768805898537568554812394629955585041643713593413721184130727086877319028818996085570951459974472910217734688398771153142409960298079798465192797087670055304035810423037763421172091909662456581282881696743144577293886761764964953977802330041525925946378520517612465212165753116219174737600573546316599795897366033119125875276424123047672683406469604840393416257419180625422773917826174201702944146776237848714414971242896311944613812464188522906781574093919843824435001123882711019082087527272170301284651339904459722539037912531172383408386778604358455833251458083293726325349378768134346761195210335090608891633345647150569417244340287106015471086629477254588223222230472918372492875503162524254162843890296490566225335124612477167762197095567442009838319450342316472918342441835844776243857754534005482677947061090879749383065862051728491781150364911337385470090060882507783994252498707243073921274697565375581413859793657527687733612674840319655444250182369407129327562723512054619943987448115917435051057261941538022918714284322859214110725250959513631654603347679377688650092428058851245543081072588233607901071097498998128228518164732836097966562289463078136697179780729459913102531857899873169972147808800310489876698664758537497795064379861648647634328918046226117988611971708091572989242089131526103049453186229681516848191759722182300840019098858575105422602095254501180899263727342403554943032811970051529641916413180851661685246395650089852188426793022581959476173030692560365210696014329133656210250996693375101908945558408182491769851937818567526021477287771013047915524421987195969923684224274467202238020837040541144607742382153317107829279186444349586192665767245333905323801218512557248207552908659944715961871389020739258861436520979888305501774705242532511985233957028158879624197717416517104357911869660479290900196099995161499695720622147019547322220049461650875933103030619890946751434127313955588410133300041354370902598143947103477171759913547097564110478853567665058397215111930628356472360061172459959259567699782452316089884508711899674350427193322943902060747956649630997836047265720221775714610332699140454619498994664640999926072434220990111651850710338532942963266502089423420875860231907727888766309827941009052649001051629308393397337911596702548039580442379100237301819538915006135616279024818084944446917155824585690255128533891945218615632107612944826401963048382289121507615065420902423684113637764153284677475670051500657381111632635443321692566517932139831545235980259832311301796859810206949809730065841488479288726115441849127521509002010380734469660529594679270693797445980178972102371507791877924709961590143255570467279491548424112919145534087259464693359483743032700519120433807650887508692845694129865370086236754103292964568111438492326007128772906262419823817518081148046322742765228060476123254981679070941600279277423464767795036305493512584467522364167390931807638821038328863492330184379709116536099337605967151538124950021032475304702254726419417532043064001231154533463936315631372796162925678269344171562289117523271917225200140395395840281594617990519688064987728605157410156514603697227273579299185102586033943802157719183970468751592548722386968296856546305581898936985231033617167515243586682644489275477450616029070550789596477903644782829962337453833387255219676756102784141331968458587449606561158225124284157241836410173517094198435733689084853641499270564730444351564016301958086963623159275350583595650502093987437130884529019410569507058338185727195166974131415564082426495318972698192787852082805067129516057489068259157147564781288060390829227704450645908499258595567833096721827694202093225554270442775417401352782966932947961493348259384497789856060170637343104953912062795811069609743619592034046519086397553542837130967335735621009254705960933301102157617648613336598526332931729067052287858785672066230424204378012190107554010392774454007016349542828736062770867993018828312141454078845697198550966044253335037538031198335816137834189603736581585580157658995863383938960379373986770753121146125848666324984086792677876001820304688932453272327203705802126393371215672120733755946365761052811267764934238855928506102514838194667375619945048518859991835670635860519060682542668195700231534568593897603922704556385682725887906726682963767308960021513425031433804151840590626925810989213100166839079635738679165261317387975753406863946374029869294247713974872871887180898950143924858665164814125411131504109852248483036946897530436628467552486720813004087918443427043511079894826493912815271498459313982186252547694305411704345603774970717703262989323483340708644292827774023316754571342333636547827929707940438775427410734560961208203590108480534056340734292583844404099930686142338116373657798890880385703890277172694704956639956517131652897243303512751989979081272459643972017648003207426037476534069979239465497579919081987495694548434911579872739143924004162185362104941970615160999911365141298868814812859751676970250215131591149617667404709861008554723861776531888520742028059960513358310044369474016528974928624146329863240911604124862909737106372521806183171022145271238422550463188579305859640674106277122532471534862637801274562273798516907012313497020559825661043800810314395859094599927426825267453289485228826081318384917480888752859168982776832166630557877499594793769685290576775620584906719271847196542256012515777139976314575570123849714276465195172533732294424544769477665872597513856847213133482210670881916191920621240691431378993609422613804891103356273302704447682294718831391390261412725478306817843108976532211581222496459915967553510262547968004251230970960581428544705809798610340546079097290076713431278990885760623486997713731346030349122945979899273069656666834222570211994780175077257848730014641382225292425791509055430665468680852717986985304182681345399914755429925976333467247511868843702959747252295842351906337176045465600625415075884596485889739382346136213948874731660424773440840716354991052162169004842234899560900966900340457230824288684298976839367005951631671937550160893379769178415618186927935037627296683187394172045898066446235534003406255210865028500081919630856668722868644093967160819898341608964189887774052879176449952919149219467437945827083551362624426668960541820202396752074395271961506938844420787865480610471641179477760032840021346877766792851693237401818201940490400213200669235634735234375509469586024819760759392127005361705950226423800530795087478141358254299154656003118178128104255922279410627093939202069124912049879755170586668706751166271076549018976125011657821530325230387155290202033468329405068739967245748215494799627098616799355122992271458921941482189084074345162224781855425125935930918848918610120869888573968687340201691120775167073967876378668686029499386881141031663040675368241831647966095058463949919769743655196974959539657387249589765443920004153563829401300751226447473248545539658173188628767251390271734458304395266507445489547661258849674940928191926638287546614652108770937769916320164407620177300343493752390188896720637070015448037255436252380682805681659921303558561273290522071517698090869631521347035840321049502525829729880221751515025053854291078292471864179754644731244978520442445979446121184599533539781073844268786016856513451842637792788842511861284810584691038647808274277622538770752557247475530801003221059269899735539897687833786806529336330742288257006292154740188843804207715621478046952151874064882315782544126059128985402880157726804431717394896864652738744999084085536631542244375458873896306895207434582784571354058094264735737457573101754564648635666901069956408139597041719883944607521347470612149856578055979427938425166384411218673507953659753711310925882112598032631260326336345069769009708445834913865149401121906673924866920832915819340839806388560749350002814489583855907435875060230197512911591989377308888407819386621904583591716886937641702063098255651514891124015505794409028952161605020005276946930913822047608163052365041664981113906545557267704181945546387779327830667372453591160259196152441068238105943168219729615432569395665945315017662117719241251849456235834221046669349223598244446468046910961684415918302738334349992895987659841904172751553057584554721983869659214865969280946730957991602599770705174072678539178494176384582168128801370075942364426456377341702227958218922497374439220319469414362876447984780339035461951614684952286841079314475086563458653705019737750698651564401518473880493585726799221762924164673001351662178308861042431623219379987975142280911070240981762310410238635948257590239211273442389680232067095417350848813451777843834010291611065027936434747767443328045903703332454184087146771031039035417289122490636403245645900284909338243627258556608153215286379402245080952880753667379202261741661294878240698025624918075506960019892812264290494603614316887681938095754065280172549024252122673075662091903986456234264879346567026528933195177648926908819397941978053769642950810620597811577149817654466024511960905193871824112890879817039416647374319914914537154570012973787040836998284244260945737574394716543846785214510244872920726184838223334530031608589965083504567068180410309664041728929731997410054792129682848995817766663534694611344390699190233724689512987215021358379476998551100050138396271708333277360150829616502848234354184747718940853158599585828049922917598818047148182127194423598829949715373655597627938446374715327704517636457037756333449586299282080886520808233630147798530075514107693982405458930519693721346239702646276016141918346788051748096893094463333515278914444720784912314498979477725718337222127952660283619481494090032356043347305208689942105356155130256348411756999096064710747213643987944419623694194236383526709656876543346376454240188573632397138665656635848788301993813716531384816854794998268044455003100363603540466223488874414275128971423299405111576178264075356462251582449481635003881438860583923902362939187382080054564889730479373073525794885899450530447112307016302170721729179194990754427448542957307999978836547606540769361110233846220243985764968420970754728408037474710399887771649132214270042765317253861114869990037978604823305524049280984464526020955562439251987525275639969163787340904027082470371994576459435673127589165417030939379845050999935181096700687985513988733159423354495373109217633328538989299492808432424750890044163399090084117565220599192839603716047302407087526211796130161228860443136368347394109144884587410939133484342402016986138611631992010178463229466942638974237435209644111590227510811150498100676718571793800805320193865919760971134947079858439213722076795056897714088705414334630361720911401501582046834166429521445347482150680191987037567383316369855211102702220686361071194405837311527961254216984184930309865518765783036621953832419410316641213435102250746454396334754100418189885342637156462957037481291590086222495085350954132579892446414478386624475174263927233888384271241525114830362070743456343855711900693847455944389792525343144049091893095571948771102981797475642345755991528532876386964128617120347369404829154779537553702706149847713985102278023862011744059650889386478461140089567934782536999377623514261666133493483655419063657744874964976790574819804745268213192702073515127149949890182441204759546746958231170813184124251131128923775978846035006358430484710133325699260535307086759564215133082564869788191357321435420523586273678026701115297475322445406410885068020547087561319048733829006354584239221059731625667691972897007035814698718763437826010002805132495920396487574329592075535022194865143669141339825937933991666981646956391375527430200738728224289083494752212665039882259996319447641872176728368709149489150980234443140606312465690647999431335335472856691882539776620017748551867939686012596722037665894121875144046025273812145482688701814884143602922923892515351977246434678704117524920769603334727879425635430666804733296387272816523525850443247686112738074906125982591562911343756195127437863802133421350503259832972180450247648169312443511181232712076942381177099961943550554926752489431832015484683893548350191495980608180010485188059895187147622229050444666942740986069105887306390569695929762572980030275574730779829222335581240741115102037249584837314566609994334704898738977486233688907636694964825894914251559833854310656839160136065874353150644699622288349590033761125019242549259661593585149035080561561519237968996526900877345857732092127036315546836421713151429039475923366531777312290807032269952288839047438369003523960876440853790703911645540949812209417433128324994875136214288741218972101570913118733758030095752645123561511236992630894555197530630807852648126696307723559787368765955958986947927034589272539702934007508782251875358829031140886300421752283661968044791889366927179564381957936924785696316551244669617679486311207557330083999420237771815210313744249689264968125633645556713313394256209508656893120803769975724789479364359762875536943574462147661452162252396219823496548407243347793897822659981289165001014045230450787283357741185149740774507586959534447638285602899766915803026852870588083445423589430840155881308159333055040443929106868324749581578752200827337819104690995262701970617547456943066745973997727581701616816333895994793971674892573520401664950195340400616749144315058083834904724379274405002909601284966207138378890504340483183367442801889885824558907831277714402441147756033167764620049026651831457080528308201921290785177508570553041562949594671621590267517276718196032328366551474211922808381792682396232416461097037015697598665997181445049926452310214449775345052823403916670394659615306907239431169036945746579491554997563486448693656653119097602318601943373212008081909922076903759768039752774299874819810204281160874148572055469997680038569391199337546376206202815763938851419951848762137552666268232316474419147670328886914702660297095363268012225340657714562679490862426252714840201613829036328758185523907282901549902629619475890339459168471651438371381458473499870275152020921934043326141301904292792489038913392286447918749701106256016881988818890830402726483775282244703054632968458499969956933979162751205238499718371224301540967794342406983599694096019745988221815080633604935710465335022940864507124841053079298533342406787060826356968848200248172657987400219273573928107394713580388559870054264471745972596846551347753136180424359929007678518581814927643493361228786719814511797931193697231656205520324879775483646667677316654266766586632480910892509104996283519764566579104476999736945223972072267888760081785205220261940423311830485447423169772407174908714729874739571805945568852650469426725843615125667070688226237070301819396538250704734515276374386270354245092385115081267736218783300292133604011143676924002433822070134894138252242568863031006028347462091557953531637171512458094056783941871748721652987837068087726434087331964724480073824279254523798858027174475136045978309946193036423969044670873819206849892847941126648703094520647612139836535785513479286074225411811614840585872059928576385352039286872236123615022711661381805793272741238719927759411229675578095918955346078597250037205150073648387166136674129636384363025942462101546666039925022696184551032741020430656102579449398107913958606005281133296557432485267413744941944126870424259843156133043473439386857734899742969930840604543047831580890383270374792598958332501847867310418376054871535113929845703551718840756377250799878460865250240511117249124507711858485743590654881705077584506770432029940835179617907377822740469058917553195521709906721021487815755151778182492598553470108670070340651163832124609346269352411527562495026999945754370640545066171013122234275539399924538802471335581009626518407672365033140662722597645282083993140272812002314833082111387908154005782610507051369940515686563565263164255585465385243776230428123733673392974025210547314068778386284607279836838868895483301140965612940207777811153912633983774584014603780103797488234491778133777002577321943271729216311389442013711754965683887989213479113478918511500747748116124342875222500520352110505580219406250237432684632762725179717026543966445671397127902995346113699947127047878730706139986761127485276156911546050616952185812470874053137553017311682505000545018168722293941802090012969742682518097171876907758371776476505103520133292528582014598715415926835815838328573578976370744294980938021435330095761090266222517550792345870913757796030891079413688401233970257713925931387657655734091361790996315333518687394151518570361351687045870786690694274996083293277208349426363147335831250840130414936722607569745361153467536464470107675418071112719180797441936991839270335458606365971088039538994729796910575909307879806558310706775165218088597079118298325417304364628866026031134219714590530872323400702579544539568364507370374848260873662306884426121537433529173733990641704960776895603155922012017652553088107374390827945640319027837042214436955674473675453639644600186080103399397674075934004737344690459921381456785777089993153314826655402301107426282640867628472427730833686648069745068648236932164058713104061934884100668535865425460152069041911606411324268058685216240797626239355071079178968930437252224308353860030215730213287564185961529086467502035810232419899280940194130172410769329638656216074807821878160712233237860238918843672630071204935702070406616007780657905238991883975292684546318885436217390107706546703106290729836186664037676156348738345235253220135066315408731701125002299329744987276490014429860703855529880671906595992054973485337629464293903671016152241465879144345488577334402702855346757580680459758539732157847785665268231932942950959061336827798977401771472590745540115500103506702488313130515356575262026551838477435717501614657052535371695150037121921998404852968969205080342143123037172433277208087243942637978483505429930700411299174171725985516395557041685097647915318585560628128319146188100174579264544315017180614703857954420047453183482557775870806154856412289251595834428283742295390266632525264911053931760678503692721245024617564318619037328767951510201346124909685548148838457829330131231302371703410784575992460134126022062055721999936604742666692702716404845971247936298892541618366248105605162329305778491739787894670486877036254932727004742154833367317180817406735605192393509607218030636324529181004614617667492330173004936457857277220899210813124567469059331504636522901703043513348872561762655600023846384508858809357660101963637341616679877570203445654711988930486577493114314233763945707174876978356911670279084574472069491075814789693038028268621362627968687163493719884361863716257668066059347534944571664375451013108095982824899689579566882387390332762951083483650415055232533066755342799175981254083426452175354480255050703391881169640497643929090371467407632901797073146575366108477426697872835218545261145691104918785398572379770492355783257407898079792788078996081093646465237760489865598375319072043574538002672894134571143866245347701150020158728628742928061904863340370535224004766386194927629872645500346942764098012699973760219033199947231642715903876302345725747930970984754807717812889892242907749824635288422123146617266382520922554005698807933192518077641149461745025706346469941867758771354596833876533604089455636103006573962566344250977285449372003067873202308928219060189145515265778788160518888709687832895079106901622636294008696429442618855667815102267653617231006067991766880629390098012686081100735265342060012286758426445258124564457884636384802527596487380788760016633899495412409210771259920151456627308010214750117587946815703376966689443747501027872101200071399134295468164472548698231538936587443187505970948440019793343689921641722871761429707225653697724858887108895781886781272228507070021709157030090477989241600242311033947273774333235941549633171887705995833241214293178350828830976122151040813653549731363914457570306322170801391307074103271260628714269173134138155502006211477653805692244995211181340987882672585196850408734660442792553156528121081746643541323479208525785844311856323521504120717157000993110502200096798387224351515734283444490535108502265959998695156269724716117387606797427333148795257114579876825177366504118214673126332280591630932075326585133027881620002416689402096334880519075127447106270894799258598082317013872526534414462342947094215062441377244534882020612314267806103140713543767004166159544396532712160146467259479760844729747267526156132344099114988282263712634495388136434393804678623290035079066772511595765812169843970925443650090746770106790148447819021003423580470630075280726840716325959433457110902943346231631911858291583883964776490829182939194442557334008906120182055206056700865241487729861058276308702593350989063799945834027979956409082938652841668104930209541011357921062042475447039119809112911406295989977185353283287376187588809049095763868209122056849442770829842895647212036643004266761610185217885812633308328625382487645300488511498621955224322907415730309772979456833638510678010459788206806047890296123836026492042017055473332725763703300936285730838057996513297859057064925653743874301127484096166617070175973209540976007208016618697306570777653445831911416344712170037352042712412966549590626587925841992173107692091737570068593071742126817935180318327653976693125242399947824356755152058152266157342962775271631913489932949051908993042668145699934856077975829732064038779903487068400921528911710574491485741915788205336840434838216213460301739233432865858468529754925842460962856424077938944883128151776511344220049454703526690286659632904821963153843447658940619803049760210563871702646947449715763259636447276257780137953268342012657394344949036681752601745805026546572178477937174434030231964946534458150296693327154874594505116405878159962239969762318309827198000158490260939985747428912839433935260839675407684048580006784073958528814047894141081445125248053161528955517788247892613456384787162625612209206205464163121042585626727277523007495322159210391488261910672596413394524462989772712029351443819920584912494156249830642598029650362228696903322922107668934647231472346125553872636110203815218135952802666007003815978188260039426405348659494617789411659917665334004774165768847781317753065998456737699290992658267037867316455458999493042977881383622546982717839539565599030415223232371623635744583044260290568547651793540006067570317113931586911890235858524323661539183484596135170111547613985070164139765706706045629085908658371833114661994825619366065039847703170407690930379252196934046654399248395156609996909476946677710555092900659880988203469517124736440923144786662829024328927176150247876417184342510901884508027222271394535763802950178347671224553111993532514059984081974763478933767108888725312487333831526284915156491655972996340100960118219403746229748633147962961254158404903595044537774176091294756443771068924334762934272250161328430190913070830955120385949742532574965010710288438559130543884913742670095107953391299418301938750033726605913813832331852503382779355435479655030112168675057492526772710420495418602492818208117734478363736966549141272433653043865450220152198103032453889646943563586776504888719832361335265339949756031712918741782267807981457148431831299994624722070855328779640389147045144247640791116690935128941990613657895347548869324931434388297590091381094734771447427134159892611627511894047944809776679657653814931653859103555261996795297105412026589673235850935585211869247340648087018322271301966202227340227507279295154385812527949581956039593507677971374449528041314560438812213374217343476738672302363232417707861604292881526203676492970491250543838381750191035369534111280339390697028265422119143397259633171960058041018033721602214996480261703118212960460664807868657826679986238618264590074276044194562615125049059744053743802645721644192928548444729612103205972785594233367544596358671454823314806499218864262118806721817709202854338950066753954552956984252847892490972875218649740677819838592144735441150790869384103033483520759490677969053823013545387546166813584505024961627843856051879297333393895011338089990197582236195360281027811283394680460380258450239957253006437127023587584756185737564778206520177528113279436850572425663487960094950184780111104668533976712218072954095916514598866126648142274721665218530750782261013062824986829200920150187974527863077546264019168987627342832959929053854272014361654633578398886685931212259691460823298542735083025845630307760395998929718089650961328064419744416139983352212951492962725034484560089551010034312448775547131583326679746180739982260301482108066185364188626512614268584474315525696744003660631090953523218563561364537388144941645748317218574256482790734569238163814007980538895980860173210999399767114791547177048588052950391609848903721817531850242934276406157184778428385213716157445415480670095409058221570232141986819186236073960726726814916732131155923293197457788513914380687989861311359371248522011823308555394808347337833774341969861122186473714201546685266340961487398668216312116310129566900727988489426618082131437260139625532884917079279523813318602262079390217568068701115238751362062752527108577129934260150626322186710967653601442899591537257563657522377383259453360172455947939061541410455373024222386806297883564517441418272398861817218038315539712226137218126143913163724788324075012389762312338221197797695514114590950853632383274197185897205653766898359048803763786348072471610758253848252159575317928617613830513646310214240886438518393144846462020063823328388742973045163734998634154224287189981218740469283827183151053557271559718268966242749601615299157382879026904669128711380577215587214800502936357819729141256952911665392585683373431975156200344205216460098774159712774488003267382425957611755613782891867331246276336387692089246355184102063773776856776748782261196209316542449741028215944176351358229322499963055220564011405807511028159391853623095531539571207053545157721060409483853446690152540976926350654615559053332650799985537932871976498235022888456740129936354970154382498092852758762869045323836484706464592284474659550076865995959797706395619735770114880591693476211738562137707052935482218126852974346265865070365273237519947571656362463626866207683902139274304800671901915089525607113368203554081104884129166180637545637985350956875739813397484683358134589061068390018824199043307216172910385041265262207946996973435465265016587633814779955323953133181646236854665107071757257367046330371354451807739584476114234023320002710413483253067360332313782401501932945650323722791340498336530458205269416676771935461728566642043047113989052440307228733710392841643656359000743617619224551249320067949758939200549288897181066932875725330187471137840293074806641192406049700593004810620125229988807730579894054261207449497118924990561289332560341069604013304472932256735094965941026978676692803272122024155284134809849848891795869216877546584395634603525373833190546020217389888524257398691284912225788587935522791271983157153462664852068365749027654019555846805511733059019887548214927826024917086148750372660870418714130430960513235814720212358159745223716519841284249343698124417066919455912233507092364196911235043245747250051271634859473995725579898638599696845932663359673486688910523524077555943063238093241484157474908952747449651560040092886409113736462058247516065037369505915371435495904678226495096015801468359733939454666000278071174322242394859613774543279948750970435719117265593168985182341572787727352239633913412969049998700831311491992562742801171341957551429582513176259561101718921592877625302107212930539926509579079960540328303581680928843452563991656491938009658256519464971193103142713604368350052595799650080996197022150789090447124592773021336814089201277820160706370596343257695139246018252708557951224899102082008657272851079650973246077805004548752147409507020896803640249259782237141430364663461396633585719450705281172729862299774002522197544012990690250353566106590008491983575394118138867056659850029931941776469180406229855317407938873831881016577130492583413999831975481950204037882864558703499814251968585734361371540920373279769935267266055068131907550332590370020704964255997535603407913316775442792006118473436467674404226848491365799120437811304682995130696588579159050802001188419433347109814292714862697365348516347202605001568049676355487963955633317562891871022980198998581697603299042090405284101746317701122347968571298310916340819178932633956296241437159063155182677095886681825589612439422081953530228913366405829136226757703335950910548457112381039392916124899182682919657522996013327189903292255179433311401039630909067336300999744995282176415868877895894795605690403122571507751259038490419349425717668783199004238259913128928307796720003754570219317590681038248784283064217317733075591544642179253268861857547225011986188245417588493094464087354691731677868700580181395669019709329472395407412667116800687331515172228744732706598011110014990405575523857299744670481678244197179400611251586861369839047828348113328962370456019049626513897459990665284641970621899234743484684523858920341940788120982225868376944985541919988822211809154220365549905057136604683399412010413957074338173613073050698985957917092031947614916000834031397694948238001312264816446364566034143816406501113092492338338168747269598358763221741337708698751607353950110828418248683854859444185814179695012908166892697640458567398283621982146377393595672634401411903036360119034997987007521117721548387592406874957843906191765659589140647809534272442226560116989439273960705982915330727510449809818337233550531878635985733092920784049856910298190245031210940033782982582760940638802961608817756857021238941349084951436272795289130050398352051730621133082366797266908870113329270101426248727842554645042811880896884110866691140616468767860088302525406557968056506520291430974589903107204536053028952454350640745111411963544549755725123787362154923929518829446856063692385717607432108429590541710924900977094988039460311017407195153884393213755647992334239760958558024424342439439296195828743187882077722750951562714957733544403523478451157408317404060625346165133131142193172812264583606502648418376102983615206060105492129582314557575376755834703616714376131384931884832529027007007425881767337693382074674148573253030803338002907181586167072394834894606165331055368505755400776629423104247478027209179365943485346575913186252263925539010072749046854000305644208223119774026964430386347282641241635057578430397376843614957759398076063600981985624080368905551956266474667862633584363490459134970966400634317499150410408555111827443901690866178718070875575183899127990389076539504910167591783658306620143248070895363215646475627642214400926736047737336957880544078796802161150388043769494671907542145624062364537995536991982737312270381003198270312226313446469301797058556977774874339812650535377124991639982132400474985070911040779829554011464848677097561313682863576189490354651548469164663653144191278444170395498180945367644284106183905207599005472111441602745447132544343817680110102603045211056306871127446492555088035051186764602520145284187927230271651802209870810346428634557328721120781249447735306501876783365612784345153731171653186122631369369101402061685012339025478472555391060040221770081255804509130343976424518667693397795904543229327993539388374726252882293949007830539712029872518000947248278832491929514719746565662541778808015196106478816181847570857981339890220313288289853725778483840050947643159878216595018814465139281183432479755574744480231052790021697439684248384786814869475311540621876856253246595468264738491349966308415675520451779286605943747783233929719424254941683721697138464254567428553760530337220995862763297098458958633934774005725061157250491667083959089551012131070144437852131167664577424853857444402728125646635368622669843511849863350681833087663546671199259082162360921132568763008479508517627517800988382346075176300616658798273721612720456696812692381162945011280330225051803968121705848888121761054676884932135302939896835822624313470227911774741190846935829732710787203909727663155923576361830103028659560482436315738046571151073264361605461569505716890167018609836907499954274584230761156172413897004409653943601342274266598486338220557828325995690834092584081165587729772191770437480510906502106450993101521413113594516453073624645229914328575743288835191243717303054764590488023511636724783875166702467164143158011403893029652600122388849714309662180973419517994128457242669539388970496122248735698772866910621995474094021371601511199083737041629252261736368697971002964830850643146595074298242431750061865864254597260553352198998059279278581417333912940897851709863853921683654115017905194649830348318466220517969691256464851952843091665331034006759440244031813439657625285211940807190433767216106122857726698075749651868680042428314795948809200512939909109956976943958146100369788993749008045814098249648669621949555992240736712944689796085772427754002846339321259258340416927051345725526506550282040663007013640784823904500811596787269466500952905503872748416784472106199336119005394927747446799038401191894628598295778229809947003986363922286886433603044098638738468963940790096273848428955667950176534849910941307473060253274418768759633216824070714240881586926787984174346175160886471838856003191818705085515691071238129686549727470697378971276698375286814615975022079720573232717982508171451323918060549340772384420920978584292825235921973357368676582956238403599873178983770652087641734895461072433189584551006749557324346645937419212748897309294576581092993124955739636391520442695766602966482991616043435051408051082683927846597142325350545512769941306437846761728377800534741098853533355419486730421471613400464199242098218241490679700121653676170694834256507362870132712170561544451629414512205288571655585953072330266296113533291970743871397000777588353829441925890098997747866115088736459189391386997561178655908551498276181065349119927494378527960377498948479303831851307559181027241985377092656812371476286680977776370962169635287777068070005730622097842483594704052323016315913425045148472729855996057924976207121163301916300296648245539403806862975703779981105477953777093672664220970432548058697127083541301179539698584481283572893851408254438896315458263076354056778519269711715096966967106330261257643942962812295043955271578322954779379866384481846658611742774807556609312499340076674619170833590042941243884916158050725231273010575433754392847606442097480477878168229650003155562648957615821197276357556403976865509057327324794564698835079328127192750897724318573900065222159470751241991759305776179300085215313194351947516577948825883196576908794713026457830376570327561682273856331454745295085159190143868542063651125403890639375304312692797929352262150473891622702394188729928794826690943628573117862590667172999835558968828505176519500941198833276409753108709916189472437101944542292550269536404035925163013591191222260950580190674694763339248800608944311590745506157774630419437949017018245377728824506784368737771265558436376492095334579829980743400091005586274459002077803555021595878380429626320135067937278770972318119159557472583325835779234611893437908937915278837081990185366380964645447126101924829306044517161871832615935249823261661508436302901303463412938656592871705784992487623310204732580392694815802049681658530394545282771892249052868148691698522958612202489520813515621800197100078140734801417350045210142076678189823479760958257588274102022852055237670255600971130484654936935920692970508070161822260658575782454347241504063932352966266876133359939536629201418681595637387726550634327962892130370750790489860396746522105655804661223277022617633698397958159990806257770332309735142926873138366621469717860461749519309857515369843458361627904943948416328945624844165045279157978296528790312061386192220668450565958281132852569947488179003752347211486383033200056634778345581754483906588517456266695467178725394303738465465389101904610944975718323898605086288826431045525354273223274300321871391107352096122153382537510989050464032113735861814897649761623463322868862556183485339588263829043315255712517951024478314926506474128391762421497806213244388010187534951658925523795212730926011453763202754345125721007634853436594517194631426293635864403793310867233600500341140551111846350779054942600140956721192015909405061976461609576203439035451016500463243264786694719333678494529736405124542526321788145241766567506517907295272216076544931846217168609600852418237930863193866091387965021122685389498267108194336760315800037183933899244159276064268311705062917988355269366575042492951249638067745009335633405049797856297149154666385602127061840143872460397159355798010111438533131640937550025154560420835240030550400367552689192771180220541661317980810313324261351399208725291850262886279242339237272545221318069112129725935247679716768048375723744369953667053443048364341974403758380651754258881482659673106135099211251149992659589240407107076418999508375559707461922724271497755976710732150637630458560859591010262603287792073893852295890171963366913249692837492021444125609670213545305259910976481334785670452380734112645409416420891994947717030466154360705178305374171343925953763863133772149161006939086296157469995002307887879940904426631263305611236496196505613121775458386879426523831669799182887759963315254695298161477062889771325586683335964411475103289034903234103115593603736933037808463098167154625581335968792485699966387250553714585795392565041740382772737282322023946442577379386877731497487966742461617638962046602068186172864683616459925889697621342565849883862344501013637359661798464648541538500388675565658750372384526969557407830333538666252944559962312291069921942026409538088431979541657825479124729638458990721127652511193019419310862554987093985130667962867562404113263850320519752864134331734969097792049062694006532055215204949797252511981844001759195770912244519001300814571687199737159609408973582867253033668933905581794984962939713352734877943394559723066976307632786874055543946094054702791178230129596772273145883239935591254032720091488470872082142859629203326942448276156026282323263011439699961840188620188589724887521501173708480014066008196989795414171682602207385190735986021500728979576743192065064995095581923415756751146412064772485941642271526400754232191084637063233654531943594243442206286788415726503259428646585000061630962255688536773990205120581032304320730469016464994069168524635288792111097046001595844482011028250668317351777532285694152438825804321360704574538797013653662247227622695034606333385493868008031025738699102269673343235068440208872468024605105364334518219732984288466974541250003190450659979828886519104975821593613516902879612924715024822813839528626386576073499265642087888656188458240342388236310199096723796669710223873114509374152636431938096224543299853621610481751226260761562087540867846518865018261343682165982313952799642302559472848739136552826711818780601148673329121054772442372972986026979024840219409508373934410745551960408563105831432903599707593212035153637397707413434164910006278763373744014334599768343723676468179353410346469100601062520407818822887726891669443592372119949401885137295971713874340209580967933813295873394027612034069810635379772471537950252600526824661359469140438296786110816953247906378908684312904375713915276397715204855758643767105648199200744006150661224352782063357816326616042423059507672801929345139397854714560822473385338569563510353461354504019896209179576508870091975489038346864284905090392570040216134081649074222384047078306898876071700667736972550575539196543473146107499562990047385637435071216455010059796519322975115999941140278488362627955135711742981812881979505389478184802320928465903496542631542701478176175315458264636466234331018008402128093228997527749452896656889939435837443476959142614951140827722017573005606497853799738962416942162952681875301293226166824416022539544364980907175125687795408841841364748400841220918093021750437238494821281946529419799771606937727796691553331607986412626643634394669639941406806967592344068224119786181342877775561575076248383857630054038161264256072879476692600553629069996481458121919532626817178826382810373076974525792279543256131528093735721091290654033305792375134467527194298111147647626030853794518354409766765526122473899208517393777061679350091012226267758810656353919302003638769639268519224473825024097485698558940109353957770745218228414154054461593071297090745735410735591763645978796998811265405195145715730385494921260552265230547476088184201767223885050229663195413409908904578767201898177091728997277946572477758273300713146511336318790134259367303598637229421875385591244298980133654292206864878728166034549711005317554674735128564513146960485050118657929298661018125588792253301088086362434828356508342103128629825369106554661647757034454485820267469351799075326936700313659076163805660246652931915511588544000162291087934563356074106729478469063920781430447910714777375894460989474067977058991357368624595954573168955708101952234440682198443473867333332174252972488389085761185053190018657185858811598418030108072973359565634982036452192840513160556183366282045725711833997542145653595734621685859160130923098804636775929256132906760188318971009209179919636405466578906629560139203460297292958273666066230742846864322563391372611155778228247649252841056039460627263484490209321824497241965432656571707095235835239448731155299827504600602782999929396661499271477914788027897613123797504835360179195929492494319047743904735475491694172905292554792122603346872466282462205839356483614825619871821115194026677534326814640320449804769832244502278622356996309857811355598027986365838228628388768661522449223595287247489295312789226319716749387012626294519761704162416478210193347382018235085740391589357964792802393226087493249801987116506924820593558515396405380180896532107153089699393140157672529341156576558912846190449762045514571517587889555069240153211460215374321653979706377185639732939657058686861884544580412481293044056316381582226029648993752266027897210104052363699304219348556390570690736277519332198482706206298480451877765570077683847833098771946103758306754130142547043075615444174967367819003428454396323082425484724732180228931570322700002336453917038983568824616591578887125249085958544374188578396851988488346730625769084996407524210267664618602279596174048815406918331043020930559283050034348559761745289903511499963267497156260794643745226313905666485259786872732491665744271722269119035688775165889552970490835072760243295449593686326834960911835302743417674986917753785476150428656425464179142684339077438908942701409017271616830458352215473916945793853033267734632520903811601278905928278744463041412332216567099298015978364792725966521266898281903918067686796117460011126113981689538895673753830761896877722261946246867645837664678368936897118219370329288743416112454161125412895556520154943627779971550997107983895331427398836288523464680009225102361436816954257349906686184621635799960993640456359151399611196813875341121579353266941343997001685825558239729903859026439564044222878554484182579536636730876898235589035857179252643201019829464990848333904066457745401227962517652895284852388247437625308453747862308294694241782600040192282883709884126013534016640432349459537075831562758417319615523217877099101752321742048261612386839387233275746009849171823186460732549016218178528862118936757646934679678871254864558841573668351125175902445351890676145387019608421145619995522740655328700397415726015492682872724441518534114398271949630143681375760366809927043717320510547641002596589076552957588922583965335468589042205329052348289984231969734667704603025375446320438732034100859288815613906552314126364246810514889978228735088375518193848325559647390895841365123697530347507700677308061278918708548995716714943929923827299483204745748835372646030966350438893822046926951756124764586444336676573544163684059256726021604581214961280161811499252486006745573126892025578598544816331961063533765850522780531030501672058946008627221386692857149628092981551151595307443369477325389657151699293314167911091479148011631115947685169732751434527651265442624798278412201776873770966275666941439609714457955803615319325124951665608334413376480720993893979374899737530747190688788082099622125615509315015537148934280967697991735058029149524261842470223993724515001176363545189755173106595903496249564346460540034102797621425896274850346686232916142004469135190264907509755784107387498170885418904682980403347805386915200345310964807785249553847815701105137908289209648744904161033863476814747090766668497630058875883224780997084233240193700804768801338777650424677530712618890909999131184694550185538963349326053127225746945066999356890038720423390211809932655997085045557223652737441947021008996313498324429990454104126973666763530528751527835564871453039139553510485730468661907306803150581222122767219240563564046249806245813869566514158183926962972926045490900927316432360666170290226364055480018145345220587848840808922822997863513239373770134632417823706054925266238992545817845756716916238893209538786724579593159836276098852810466799472394324290716205452909995730647147504559232282996044635805447138638387564264734958989100076442804437054080960304948669655172815883121780149376674275778978551765860616864207607061255616039695097066684399175369316347164138365494649767894858491172337487669664343327844198583432928304842338445421009944952892255812572739272270682975311084664934280175403937648772076222077371647250583692641521800911728862862372271659778560825968219962002742619608641099517393221522920605372938220962438412421328459026111206044123752333912409192876596621838252524989817972883863183131687760996675075218854971544107825078751295793986356997824578809208990216337030643027768864509925893108720047245044223785529687764529448849555529988365442092227940826217959204828739493283716052824753850831614623869053799721171050073650068773611511078799088470795420527244148991108235888136976795066650713947902400932046155201006254341875563449427299694849184666978888832459492791885518399606422884728470935151698581980742326981806452628276344822084413305307588125955569380253821472866702489544964814099206589778399270492232104514679542096914848020902201017246759025205804855102522941278785927074643178842052283475244029708544058419623720683722884579149982401205316443546025049229352909447643625718189820514807406692623311511364105716969179392747588951569743040556548530097432738311861705660772856337736092741123381100673694688231316273282027540745947356002637393136745065610833583594308392808187345863706123184840059068682262113115529890576334048425749362331005911239134105683752872703221814157158806829568565042192306264873010477939159906239692763165049536498702099058704127594750707713250958961014206443097202710260086962448254467478314420330247748832706400705372175280371077051584312479000589631235456159489194816552195245821795536979535850195067213984053461327877642731785403669769087697534046210168516162601738985966158635811807467807952676808831762596681726925874921276001406514508433279277107905171701577848657763575320989984822855241591508141615888044957993498768834429719430440592864403929654218584233051597892942920647477964182520767103218261609032486851175027610729990887382877349675442988723160606020870932906979865492156652081831853564817833525402123527604023468394273012638164415888065905304247934074119845113307718101157391355563882647904553092242644268318570341732205293038384584702555866437641890112805327980200194481069152843679408399847441500260770356546160459214234053558741600456754811942242458817766708067501026129590483332087220075651565483878225575975776964189274575139296170782803228202598358590177360188626927856188279697765059724983762505234020111850669290639843197032557550885951123460993124041146577270865269088163106424031601977215764183372703892555211715889555113402638039481587012099926908697367770600827525650870278092532654067892600284061781373680482555011392965977181885272666191909455416305940798428094601361358058800109374520584512399397434357977094274965273293075232710323747431450936315994642416959890371724922817660112581126924178619710851515130216961963378081959118260106630199777824521779559746428366647301710583265482743523962210620317451831107784113879717907561938215733974219343197413261070743591312353895287106820379912971258469594832120842785495872248614053750453453202254094529803651998410579222230335271920888983085080543497706122626461913737761565165557713007104869373267182632195046823375966715276251578667532354928662371070257454835840700128433921133749767227305294536603769650765513487538208071222746368453356993984552786298539252130767498353707125474120383824666039943452126571502931404295884404807180751083189629490111587511482235649107874656046711856119340555509272634931220155058861044945260228716815978917660110134654797924587154375824924434850062832864973674729739132563141327608364110841046221009969776522290103211753367710893488304355477912928235629816292426004095954711850575770803549572009411527158524305758052430208093450079853273698458727287060827038699598365171063515982447074188011076593194181466972263125491508578333260752496720619797770995587668146991925975284292452043871939431564815988380754736228979696181467487641738175853546876677792908613951054287289712919192011767828670544206904641317726507868631496926779120356769833884017968421365916937286898867268261834893051239032621231651364487369467683364252997457517244978153765459060442084592099803674292687861275588867634901961947009006896115819696341530715978686976909898853383902129290016541035479234204245423726408220133911136927435487611105703057035290408389183791894852496525611308415887505253764121091337209535650696746423433999966381990987578495965745109537959146244705532157853231216355330065820834021697019220608688740589339636373888186160752980900182044185111118574526744644433497351036424498401875584086117691623062322610557187818287478987950204952464881285385081560611908379494545392299717851548842120874012892519038069515155833145254547772071828650433663071270654092748324847737810182746377456911708797749788594882159092929671846665400013723502573467342126456249527868266616749333888439168884094209530964955462049651388862188062829841203275922913513935759506918882230452012530200747383871224411211293373650606345163569789489562455366252049403889581551736669553835300102525528652498496396289345493150741596414076688915885961962420051570219570067863316981879885333755594999084011589425932684855109445033087775485129874890042840125296397916419863779749032639777879687600662358468493588961676668142111087174071810110967390733393764118774156530800755600271975312308580121572041128034177503978330170839801393216686874546122967925216929981204026741541997725571266539195704787090737848859287093938985065315332288647867417573666623066393073840837733132895324985120620785175768244303351948100985404530956638228158399943287395807032260034483486149371808199977142438498261259303575796958138369150662542478004482545038176443056654306700440692783087637340954548425830908591020846570647976866220881285430830736808882446785217892002145272934817334435169186481727932113563849892162193047253736438929565314229330624090738787567552001290800036833746539820352478718471631046075568628417697323889534893131036212246092475195636191319645180004152488543074582312535594099822145077020015526730514233250709955796679253865554413474237340184420829250039002416541699943558813301849314883341177908119723010138856908651747351612296179998205820068002406838180497264416240444200435778104635496993769156403390101185977145344402522457879543548371369196760137600868309258297881514295764342289098719673130913967207195715453168769409132713829866786033785292425936098880857789549957654689114272649915560706984628351589455494709115921826289435382523200277423792981475765118107366909766223191250566865896524726073684862280085283755426159130185472035093473337262572807126733449140824998820218022719799870510638717090590559035976664322605347565893234938368474035447528506644564366513652043503055832643620637715708793545549989993553392082047948507584404776436071964356611140541097445333913422373442276284196702771786030492711641309193643443113487975855261602128759950104756360933682821224437684835099550146991849259582154773472406693318566246256258741785809277653874630978638979893927933412584335842606914412711874602361545824235043094328303596312219208520969225520436940602889800221927397551949514150901559701434864466083755418678532472719481401735645132129899612311659154511234772153169228033089432889840502443750583307342537133620220952172564779546925753302724928143502780906065026253981533930502901358168880047712793285640961326824043709801849764838158795368484388494116653431839032873412280582787811821831770981822727674584081101715523401327569655044098372308713026776708451896457194066247394927698066635590868141153202843749206989050959168750378223729352554364992956945875711916241873956659427289920340037784598812155474516812961158423924164866821009360814489024585763821984880522779780066046449304395580923861814163140778335755219358989975165463578606646409717486673446182982520795782656309574550407270601903358046647044357991286393742199569527337107000083032625657726161033909832851901203003244168579619275211003986457915451467734994770117808589681215647182632985749789275518391160560048758530172111609091423319728038051129841820817286305832407612693252542425017727509361246588222183380980278651645595385206755399675250282778562203563495687205605290560106485662268742002189715625421060603992288469348668931709786484019175138852386265690680035095869663482380906187121877902838299619287381418197349058243858887325030863950356101186785859209343942538128420254361800753994164522740299108120421096165699794276383697419041986869378990088183912652215760809230497883959117752744053304632921324683076616863883710393788217805506843487403652357427688413652567503718921166667829621683420631380275550852494712977759239888354903862824132554318957100516520002690771020292253161202073832741291191168806703355846135030066662920838491836346332448483110303056448036222343346156454154000201049925849488337037216963906392923849457852377266926952941517926809571674592321684240405094145083114187623537799632034263746937888646606075223932245414211322833986182920852743061049051934644903063949746701798908856641564508762298865238827200783960973945484175587971932448212745750005604149677300717653111283181051899283297441897347016748999145488609461111499316129617187753428343828569254151492769481998650887356737499106875557960214086479473454416759940325587718693627825648526913243146089305881012223208510392663095551666091465029482659376641337849902707323490406810818609402780974947346873562068796110374910720835250744370783417460086757687642032267408369724616550676857886320000453281623564074980667445114994895828617283850278034034848455400876470787125580684798188172344829739584261727028820692537109156751710793696251758795173068327255410844551548800414355909347912325806579842071692909661886132675966074909314075350008716839489777172415252602425152781139400042033694597448695930212896741472611718258653925448077066720296137893473501247206885378721428148368415731125256133000342418772802948981950657797221118163396244088789175742430053895037963040219117931187085836921524665638070523044374207131389541028179535970316035172234588638431989473403605430508757726236696186881826516415576769832393077186012002961987219728676779717092763778377113784534328679835589319394175975940279506795233550177900792678204302064271924378500214221260664259016543614423916933313120323188622291839268770769958127430771659512842338243501058357104259026527098970100999201657776113286635050870769944224419695791508072290578935247939034907745346422890003837526711794066063835069886201077918028031409680726282414784049523557127566931019300174001317198267827788082545066067210069084745165609476789782694582758513847212984476066718722292517691255684863950735032911893360860073344025026776485769267557811947602325249976251351966514006941744552150420228268040895301459965296184957860975283547384973568042313437707712996452541401340409469436917684627822443650540092277247038243854128898909508358780969048345648531527089183303302200073896170545179172811164215274621328932592620784403156329360004455063545769364610281652853652652735024149824523879839651081911048038802095628325149966714944944568133714435580570193101035082791436983850512057269260390087186334385675279847573559626227222116519510467871265565156707393917274302183394550539075979206599419684214172517491335505149811560398171102380732223227859882313354910353299301130467431501733586280186795554814748735013558233081218523193185656767887193508972269040115187646138163556692882725403694849580834907731787683967569528330665948757401278153751162732096749441654638211683883686335577083177634034316354621870658866495367062572505061656694932790449430673643289957034443425062172846317191765572616365855431849422043387722928844894240839790226406471183616091927825235256205003269046854692093544532039274449250093035780609480975961362813649938347491996765444472857068193721253632921847506965202710619610053136331817089588998857268739002396841294995182130767374194882872847456580589309885790860478113991427865265889800336039727357845469357299433658086273271713365123298418994684264364220155852775565666166305024436951290274740967367891822465360721934206010434946530733450842673376918725731237424853692036383264303398551544146886739059142261377992053504218811783401516408153123457838365626678491547961758162400230779022769612386773635821829972488819362207348071604612979444349459515295071126712226222855975316734840202345789935046597147007682636742930600999292213999176120075716118277900203041997327979265675509140113801057173389659635919460954096344880016682467783868393032312098028654801363822645702679316020721150609273779665513566247662759264669483190417333122006916552270357251833844020596441295940332509189462051280903054940117204424526746879072934892287530287009414051628467363162067153673338921895260899309095540377257907366740614930869499368293341038741894646558268226229135016095971609703728672697348759721135760012604459776799061750274025478647459410042823504231971157127771997812308184336309293012141944922158387721609755997472658761401569402139288341668185642036796614860224094385086095117124581798644058468734453329637320032531871795776942799228928452625138624182906972615508487063609358169207666570391736332327947630010930587606919771035358780528941737048290814181506898872093472380548378662643810517848338048167742378106611025861508831284989840732407643712589199383162633779163032239648821990992797908345309151631566531209328359696723904167464071549197237734917212431323975825815490320172364904605568556394006459996766085935103341160164606790456666875235431381313686715408681705633239532174867659027947672859888929392747560905585825758468523399978490111918562191177878612399900104670923111849229141952508466017476255586647771706047559671556806630385853613810583761033392020612006323507786936372794335356671957532206436916976356492741988364792596475823211203520635482460930373586205999647557628895987200313977605166694097825859494551390510967153012501855316817154651477307254640077065323659144872860609202396578903247097767935147672680825334107573531203416774620222058094724440577688059624408828180682870699523124274614447261222297860520482551448342348308107082647584865273131425794477054032089713369183358247328605399347131659309070649397857190996980088482781337249837639352958780804836416194144145819082962650776496259591678682095760373149485594020584638336460516664987184837324045633538449734326359081331831942684387945692626693964501021086988455094805914464027266868945491356885832950173471939650955534269046643616508967466719835411799796523955491367615252894896801876694742849872579615426424363720901625684312249005296875634509218846081009869532420848763565157978945657986916764337757991538681764950835844303991853558211012416933867333869902471097845780198362786587435282321066847809468315110187185569213672461442919993060166399705423235277014196609681506972903501330408801993609173295608782767772123603910596353669310068334464107578127523284672647848428300482869685138225907457260216597018589817540100338104457626742037306680661303279939705025723632970415382774133103673827783373881194976656079085952690671633028944589815420501819449327791610790152179428660220772394802228222134870198120571221593931377601651290539616501648186718116424310774841094437767473836135568715399308736849377388322482718155643328539571940429316586842632924684667832618478313079757132958525355063246998126676264038531180388247211228816317672823529032179100835686871057713362618671391353585626215359399901577090559724768685513854014398376995849765654136950059417027264186532549169813320512403420667302114785991169787183912488053687072244173771775082613914764123652362751706736299022558651857023093144850339277018119804766604990965895145751921671538660934844171871635264997774286461149212732121745333722818170157968880218170488719436893168369718870432916987151283611809918813388615291754575047615139832366934748508841018030730325057918778566845716644300735171453581787243564364892040037109521976721514816444779694092507348706661359891841363291102200719879936268394137706978127836822859316183043156562234791393854423217263389119126540030179854834218456088355754730595612692222622465460950679934658518840040247976422989745171979575279059617877610917633980556442740485310967750754996854000946436294027608489963676117016561795571535971721844971939905318802990557546278399922365388033477686084992133725136920404259033988528136531800403451545897751655382027247669295736627958422319858454254630608765406964991492415042725046582715496011306650558270338879155318444800339791854329499363265445883828712080876490817795378589411514193926270344454132085379363177059068645806654579665969826691787027729824242752665200986905002118887292523805758553210533130913962296678437426674629940435558673999991519322958038596909261228463861340493956776603849471115904577079576422368432924976230618091004705622331705341607269758083684398032980320936379397866490224912799944332661444990828801708528790534380827170972157269378811391690150281567788410410385289276986987946630109918257762751811384010099027535436614100938999596715165560310913339504572980582544286846579983314390772811378150177211781263555773797363971681269309059817709654201840492573530601541133086822276653924319397581416600042641630142992473422907078736662766123984337218937766588214808576436510641047363674864550796859535469141358055999567743076940443304513119420453111700140247221506302789377960133284091807561031869333638199397886651054660986880294328411932127824026793436790226529080915137878350212340719137863594285225041253242729894942548623065032098764989004951937813947821700006160050645682309660418148228055753841486557538616589007978041807047470922830039488543434223729490901283940644800881381506185632168261221105447710592718219403761144650608975853153874612679570502518796741687994785639549359572899229604919599204389604087892876217033671169135349946857085431701226887325804964456288394076090414665800565347946958469582336725496441692292081706255196062408837666078518658177295619113503869308411434405824070824783101749433784093949310249762843826179074593369253121381386995791211014028760218904371868072632791635928099565377333426245314900650356042220458505575941249895913229075738222351436676145209358856548670155468623181883815022027460431415374608394612783467492603596261354949608612982126549003090425685995296962500274869985665549241875756163489884008957000296458267039150961016101834084216385902944094109081665606188226494875727783735737025702133419265041903963118382251226525700458418814713991890376250129540912939736743702085202117709015217924304673729636564035054329274688904006302633500372992750996144093064535040788217524897307766043226443939770929820127465887964123164070721090716445581009225473387235722717278580960098264529099613449336558006415821722971874155255351593383987519182876494894660200976727265098612432405717612267453740778083930603044004775120106447892373232633627886894740076249379705004119810229615107576354612150008782942686569654739490850231074109407057106933529417107251156462528073476566607816124177710654583034926081702384124070551083221668738088856975963473635616001010372256631354686812061963517869982173977851174379219161339626454517607677737816996519878798699731388485829526693960570078076092263726596574885232974604791908120555422951445146778932500744354918033953105597589102987047431926936779489578627645796879550457394409519641534327232807977670120288303784218532949174591798611500207594065319209126567254829926866185730383712684732370987577593707535353992846366143924831532023367768966720114151456160306473646399486080282259764918277057488258140939803076696544837435189448897685412953065631783372050715642013230408969621266040238691344579037710697259502679273021697950654633706750439838080977325034902918426378697483951341682153676267208572994868571741438267939535268631232345055008935160193793027216635096441210881759578042039891619531273121360997827480699553393994669676539245333058419666784710735902944281259351361755286367074333385931241586051083973316313665159350834017913145732806844737089445566750278777307780284123578072042484604679386780477793775553293569155781059137889950906111061697923426658092914276366904920363353506493577220824151474612217727652689482932357582221074674069375294664261959963592113482472962582627367945870762421151052984580050812359091677079555840856940803828250233852550011659319057643178920833113412171008031832651302382457644423153434446357540419898628612804823382227343696922772361920641725040300656128480220154821885814819033922390659760017603227741587948793943603615182247428540254622849588186843574032273699246615474883797135774607329117162439703124938292718828432744642653772737158531795611705927406643904432756282322613486851915290318366291200686360638737987734178180927163835639238174284514333563464895699444111491751973383358039251175182388571871072221235582565816145131010041426451308866990630298331871201319368237035023418444084538875857784256105945976233770655504088334598028189468925277450563456118366008336053610184253809061898519728556271597734955057563658947575013197409303835244905683341608756933762843101763420880161556090990965100483509888967047065160052058868910492787759031679099421819140274744205387220456175862173939314203527124872519146650087438583141077490762029897790907038381210580898727734296977176126476142786369460564124447779061058022574617960278195525550680417354304117381868766584884204163124749873980923529517088220623499682370703559290771832716304328708873679986634059857873796001942552453661185374521733413138633032428390118707970107082869346979663725253106517208033109226126224507160619344480467667855227400019752853305226145225834661556429991316904294525268271557953697791971260111403658131778242752152502192230132681669485339261730114902873675002018388545906859583160273501979217638597776331392492782107307360035121611247489547221186501426744756493468643786939537230769491562906836205655433552744249970241701427994100277492106734718594374591347146860063400196876850698071193715826582326477129926176441447499934180629994315599842146924741332607506390607110622526401356744097918975834730849046437449188566119351736617499358698388685292286595908493628018794087065305882604291525495678517410560580588480931883705196927492670997612242054898420703394937099129452415819499522757642868859266422065230080397419171552783053325107483265142838174097292321174351601463449616116482269552768148867606580642318198496344652381550463457718335004944734392920738330506269060303199252780483240946425712084924032573082133941403293083330759982878117812763479535767631650380966843651857632892226859742298203579566632223768843924315465459777350115626933887945214906540330959092988896890327002983933942148227571443275544392757254407134705310766443072369754681451341529008235544963560893667695006586342678780344029520610734000392504359354167960010291393769656594554603325494338258493415819729019438579932776492488192124155679406470600573556120203906123099081532442922639144286050638020312397048235195820309029702839762177411518460617131293672195215897810957626655844515829983533799422747809528521245578798698230387896225733303026724636379778358327832684641510898868581016359974344940279349336652955919269990510501070380268233122897093326013389999769365871127208602219458046178532599012255932268671161263470281768019007532428854270020665378677468740170747612624623791813591394318588892889138377310170575259859650679744091980548771291965107382263950274715334266724986035513287240197651252232215384610155004693052352598362031311751703015391543596162465851447916411463053629543695304673738478050225356717115395659158685413096177636028126588998537211480316763170204753571715098755895680881448085408378365746393653523519489937508051815366700071663671788054623617686681600630085053742784562001741746358200544063751354669818880668751613453619023074645338584687791994885167026845030658114511775537825489093701515168468355644581379358528850145698544141697116064422893978550963834976355229168407593311055120245661818793357703779704441752081885657192790932846751166007571612022176186344057040895226418450221310120195594599513250259015951105154147385284650134706934981043667937967098080099257043679955173037329062871740118816616082708960083244781252925769517268582995627444147365869372571714599281535934806858316173265335685987060698990064755101600437733881970289666845344288480076500718775667558174636347586569464057024737250904805275017121633303931132380587032371989710859923434835509685425205740275813544004814318456806445636539843252573343268534533112029095983133252706130603626365970268237078519331918640543658883976897696138119183691508675831377150975019902262174472506243563459154533665382871718641902286192298575098873591592223390392762495685737989024742053185817108655689403073451344940447490416333560210293263225594615781782193741310914408249641751574283112734132510273810757465592150550029741379987909251276683156218403107640852426611096657373315427840379309857073715264739454650887197367583701781358653145730388280752574457825018133304477841112291830888085617504684387315255296745667400822333560384325281971637285043608965082747913649551054209315884867957071007280679522547461317852549515307189842375971417329018431329876318824002012390930430943917051013900451628553289640646483576581698260362360735137104496274803297573572727976199141302478748155304576529806346152056277521142983325075499958529370955304641896120951039573070730602279023954782797017199175716180321593202457020298222594016185950148332870433159983638839933785811042885800363127924457163707137928051176225206311959381817045664364367441519861359644512486588887063821245583489109492086518456046805291453426967548702379272288449483528081238851776250237987488942872463269633233480487633700113319681204057120150461559081675637702699747827712846845246585371155985693669285012487637667383002524723393603096302335657624192444839539953390407019565567702224555987778248165668675639639983141794486624593573252800023329075720111130299711787044634873180506978264797401590523011212895242336167902705209923934986154545279654995419956670474862945958621870779761046591379454362102941128538844756882127376249723705220128333346250438103725726985450112379840789268545671450330259552538461075112106438615805274318249989796161139898031084878661504647984856659758104756415941667171245359592606646711430902878306803116084037668792197875077376454620894844305585616279186289157125017239453438105905138610647536051123693151288143997499881438052236229684902912198099903293117910915306790101560618641298480544506134885569366190504327244757138590303894258427243192332520511096892227826542636527759623740237033683821554825781014764051186003584483327842257618473938171852369651413824923792757020898755464763509681938848857740895183600234853706855575977513758980352175583994690632905316078222164811449304485918066008164132697779177720682072722210551567835088556780151782581992824806287992084968704279726146221821801538127285236281911302098987126721280442878351070580839090049456823315741875931263916966138617157684574953757292400849531406824022862101450662207122978376951710097511919913141076028752570751850501632274046208308270944758885653752492647322182545312575327014809799725130376810107259358309880136892703662688899620584950175333796659358023563899850296595677266110101863088251178771825035328479123920329579556928955349971999439692805897127389495872355117032794532216333833138884400228325222314257472513913709345392966709393394391547080181004334701351264431842763936536883138256752236681485204968784133782105061180362004175332995912570002866664181382625650049628379585153216881678126186367821474482133545713144641395733338312275465211593803895193269622797244951820303203894371820062253781258862637563958465161020708399605590786013735272292401470108087356363372067082320309480945425267244113984384179109430448512926021300165386706255384745677525680108482538833477441884002502001465047122593007767622340612055197268383389651064771939442371630386946666460532060097968683858878059813262850984871381322766312791606350272992777063508178130117660011424066594841812021911841906844622743549872941706894119365509629671920952604091453267874065675467378033761438860287511180377881509819211825141317794287779438145512570172614997292189208077079493757989000192849224808949440054164611451429514310786871854270842461416886061266914030495622337651822223404820106385640903389185063931117505509835186559140430215375597884729192886387025344813320250723182980191823776923244980900866620454798374498806372169874564573293616959452072001029711859198380940412564343129693277637876066021560356249025505983853753221891837723841471490589237903693753193121215867006379940051563096767657502454340216392457764750272481324223523002429415334555564568462544698903633536341499629833059895162242762045447041179675040483256957807418167918635819329258285829455218202022661887907860476211869863732041002616834065897859188549604145015806964728083126218470051109693098752946028983158276973955559314250034246543687420719821723572087954621843008498736147218694640111099724699317805829102291322641416245225649908165816245064019834212027497526218948684806338771302504149753336074550729732715781773043707705115361256794659191857336436905282491158439638175399250987104603307710613258273170823371428211049365206014223050687699233653545526852689786902286438052384889136475232039529733849018367972005192241214284124283345089092225095911309721156030022783819786526067979685206450825204837629447008161837052582282014550439985649465597223378375736293563164333666385825704378601838445055049864843603588392262113888473088476353501522341681606594434599725629759826102264286144354937402477799569141068464705495296157939962445967311214573393158651826118378236498575136871458507325583205003242229026689822419744750819340101747783273618709965976711890397539824610058264826815779182827163908458171442891438356451863597436873328779587825639662154909523925438201977709974279542694121656941163701386157267003986659231308151238270657565416469126841919531891335728443062956180378805877614212253478341891935254629912687858924528676393024152927070564141011871001849712814501053934835357448892839917430557416972916909003265357590107322909442546158072817967573169916508180982405737479830319219223677004697787095626673873569208701004865160797092974143942072613727311972428239331069838120004393837526439856188812523281573034856899929882289588086636847675628258854131468366104234937196664925511896558693613617852038502567012203109748256666530263853158892415163998856395805034671795432080255609289039963954264784983818293107158155335145044747439911044124950012210376735163173964636512917126301214159628709736417489065547122392884325862202051700358956332733338342856575287699227598678076670497710850838035703622558532747040442037711250549048746032358223190461875976306098666645423999501911012372177014849381507740729259480371468834937193755410100522687232634344213161833913093152252748116899496418116564700327783394435043997979510476820390715680080840870092547933069282071841374108041154955025737690755772425561418045099385468335179094062217001281637379157604444734821947697313758802214255979798135128806175421892474676241757173000267159682576641726150829923830475180708440055012194754224994016462571910049919037935733273808392862510323732209429107512004835404479489431326712959010756441914783465057588845120873415772338565165392449321240280940715150523570382188906619466813912321825958139131406439098088170555087212204311334179164672903134485937180039412647513780830567085892123808589235033142389791404080645167832870697362520479162042653186654296106051416037006261696561815995827191403796339959523531761206476862994065669024403851840666761268553555747401448637964730951021258710238805155325831041610174908874964776431871433975791085857813918910128593942161923633795483911741108741520001837573386238632049150472797288515691336288072704587969414278639488426759563978154078884189159124491422857787575627044720873315940465433220802800840892907311764809312791665331202072939903068980194358707557805983005756509066592799623084968635459429427212846717497333458815993156734990452402721989055460896173206527382642611395091131468301938088456789152334958580073008632984826664309869895705256398872898707187386477291767975874701342133873404689994284170305265800914903794231311521647236631994714666939770259003496170283683571065697088145462869490712897578344348864743574121247498433659611053049705693807447872257950067189348609429702792236227966070902249891281518196407977193725012469417072172749665539739582739399437504033045833205901211518963506154435872583169108818184277073414702144407842430495051392934915031557679560150807283084747666278834921151400260538695365057795327240627516310497739094420273824617339473464452963102638249093522316531312043990290303636466784635465157670634211997356387692052216829870595571982475558324660484407627111677831057341482100706356489430388880297398140612613988461261916278520266231034733470324394275054314810978968039573459173375172484091465393704218514361515898801486093038404919645479292157095796594817433538637428953633607248230694946540497431142545515971395770256592255203001130966273250578264248446559191842362981191166258337809512711855938349164662000713766200213887802698179148156357137239037495466965041306700725256707523595990064874088751475401760182228975697440836005772615649501010778222512551241583210404643781307904684239213956805015163411189014109114561602731529284398280453035422060198196072872007028441514431357822536744148905547416536198890949571118756892276589551955578050230890971177807949639188090910412559049317026715082047460575525291180317551026271372279767131160947750824061415167787170864158746423713898348191602852451208594435725264543310616451663267359823826656505047564377090285667969509276557547183163287178735186448637512041566599548050612759181831911202879653991430413175116336639541672813078898926604180237103458459178530424391830031682031050473420607052200117997263011080857450787100666941828934442963208239441249815700101779158180498031490161451976233446025800328599823215599023591946686949193754192658997828609500044033266823088602076192899530251057001944049746177387284390534370666570558531875163283975865104907022575002146999147766235165817847031067777704729424909812695939626541711956903817574686639341080888671639814469457710030036122197672374216378206349195552597198399970019179796819237635255285333587952301915768855579435987507031261815632240205038253328599111421501650905381757092676706711159810178556798547495820409950829158331676208069498847880648912579773121797581739382089000577938169552250309792993319000874605792334360619808157026227171167978681043893051797030261616705997684216173538347222472604913148932539581194074627775453819189599012967986303701497169924544522216423646932898953088447018306563615155193319653790182583771788339624977053979341145383728452759246931412979829382184522586887347102037324132585659216274425683064609152627375965578911469831539814962630246557804129802889122516890393234013527112217195347699189875953365602212938577914936580430836148451473531599856961578239796549957848941888982120153689622513057576983380615435786505015502689453086270037944612956100833366795243296850410888212284683546571977564569880953852096605174079232386174096122144498854153057802385372892501044677248882196502705787526623590888189959561398241139004870666342362236301778954505085839053472977013494978427206706155518726253296740470394443444590843476645175330516043381175471725537530040882376752989185066222714240404809426897050684446546103388844412125947519866558875435347654932600514995389428530074237446368292299949917762390041479919701330563986068545263876435886915168512007720031653141801260332527027184549794133075463646823775060003828518161178512865467330586832778938049246275674953567542797368666077198678149230183991544235804192273209457928852216763624638387721735083102777745393103878340467586896514543093218030257547803054191125463879410861288765123494111602968685044614216050715446568668011701587995529148343324066650122496238142753172525446485335156087357917979004106054436399124438979468609248301129429261525186802983605278107214222235656773903588472914448528726090205976117146316064302959652979713065908427224321060566308408911683600061237913183244788320274905970966910922166080679390348208925848718334588976122766486713458685319291904936194743221426043078394013239264226726363907316942977327255571078225088235276093124539282355927421276355533017701740477578822825050337789835087166975183495875278901587362450253130301439842603213244588431163947472507198686946019718028153613710346904583144371583007922674050460243117200274164517534582915891829916314146183064563925692915427732646980935768705654141985966981382474160578364764122783874465277337576802765409807468264684563943315646613105978377823800577949632856099987340822951697782122633587095145814269773581372310421324720396170619601577715374844042240619689184093167563800831435081802778717555983535039694009388146910628898226831354667920007972870036777428766752220273303526552929142181997384310726804186591820407762259751255702367901079547067107411964394896001464544904082231644316437427441468006424537805411027271842219220325891350177331698562177695164509713947604308833124226864200671624981008370125210651296149920115055384089858366507887300767324262944751263754730474946340182839198808869415813851647113298973978745020892146450341933309790486185604368103762149742914111536452197882684998243404245002477623642110466645937978634921736644411574440182667971601382981279612122140277026064833197275411356337648447654782969143551483614000045947241143748071897758074522686953148062339648137501042300922116934310160552124881614509327800186461254093569769339667305180056734833349299680750116758223710514775766506964527971880016791602997597383191226458952310288154436554835192730735758458287864105418852676718976727431720669344551170186850163276938059718679723110106648761121030249939255848613455845650762975629358830356264269054164650256270082399806221007769031358458918487130595700954218987000210910732776137790086973939230241278591129710675189128778458023949833156282445263625660221517035810531991138461572799634838023503247063607369370089901823589295956414377634554351964165861725120654455100689750733650076604142446833203512712185656279347889274040841349300717049196735732987453081424143936076290220665534517336729474852822104769355726078389565989669555944100218176673140956928117086834710130271545413066486785120071442516768719014275937356876950781169424693051163550507240101954790429764837122122903401962392329234807030856053204480979758980018774190072889258627239581252129358711784677103038310620006836095532263329394046263843598195150557447079182027587679901242230434071835084557890820379295034025810441291247949175594940791729339701519301965298809604039261975543179302253770710885927533979797550704091280074908841083670190541592652474272496676009492188731982538982368466612703971413972453877714705309461697826822876004907125572828722918679291209919044853693502147729839356435750843296709539886315757018918927012984474167582801290580258130899341184808719341180681683332658802445720041890592409613015170424349805144021981607257065621968820529393121477247611330630332622500202502632953906193920472555130763669444906815552344089393627417136587364720853351531113836255735137289532832987567432952936174851044521416764218836723105441318468341051718231125132093382716344114300552764654339853809311882422837267325928292058962641989899330961603602393969835330549152876393942185683456077763131411475591233265654391339583625442505505609469252946235948662193006400991299843788823740918046498830487163462361315494566822262406517977438866713622771340917589077105693773714386270291526175563746022953881404402869132564806028113101211602379451411933849104401178116143838703952532692352456420878582690033398809080138146944335050614943336350735029200577660510074388428467346138992916621556181279640983055136913345380370210220045495365063588767524947186635790139629656342322465300349841868679722745077346623732218423285919749279750517865718178166668397262793549165051526926168190050257777150920889316033674301591078956225728225712745450759959286141070618685845309513747889405061473169066091628845953498090644453829000317698813010560530720981013465354888116714622430848481599351032645355608921020456727082111070712911796739252415209746751475130627203299150726020857276503659932520787470454230582852780002919877680266408465259160095701067976471386278910812323686162317385912773218775175499772299427110634223644469791621023613209113592190025719493586635136017438278132337013368224758306804241436615345152517092853093368128773196101845062701697539918055296191727847680349680119898730555186548649541447419347146037247033686493881179109256711941909114555317132564429473941593906246288851748105252735859491147596294486096809067137937132826855090429779046645052411012287575834539060988232720810223935273536568429777986994714604541612330647223492938349601841696605734274477239486988357516584617140212172103871506132643216099189941051385116349509105416894890261509787808081234297619331547820023799746364112938478589634438640629736773582199242235634872478071649540083341375792626348289304649807825758930665316784381822905089945011942253703536716011941410312809205266779128894523737769443584310018381692690041894195444947985783348482825193313814581313923074949549994612104196415539825309036136050274726746350109275874587291456270400960669855928414633560012146271557197143958011240304134103527989047825106039740361144624364545928092526834416115500464246922105126230107499898351747977705416743820251207181126401163751321453472385193935439795286386569281914033377483473010947606945057352789244125833080415616293255817660837769589820935635612130831188395034357018166564985309331791846433531848843127403101406246428157691523538967219018134338345110067563762601041122558052634180098289069885049120845850978065196976571812699039075011205351098789290441572260190555811167035870466870883094803663513737798845463341647240084901000184415098528061116991178011635584457208031750343768077416190777992713166121559927115551653877195164370574715403189685093366367283405714465614889492444808860868624269673844450382070932643539821272125847814252537884020853740630353621621266241203238247223158623943333773286564892394842189968565412148424189837449730312615260008755787704935149999840054631194991758491342134419730622281265476814325684705884284784453764081196886981417918170331792656396873990122803988393146425192388958649882718803432389890814736990273425142171854480498169575652587708102086208871711584087172699888427457741683749848953187943553955989597045517570785701824138595798826749160313562897932195294417516977801746104303437233362594280112656693581190364031163662936781990666573402351532602019208432580751670380508518571129454957339799157152801259856168200448152867686450710086323657628130763170592805186574849881466900050147474548030819974712960029454319785123599573860572073460025092685789849071585645996321128935663488448972294957730501773970013408737827530642969500964202449980955028262821607844106887989201395925086011245254441992011457437327512770806432430018756623607208369264635643475891514902247037146800130795844009395485859039850880614349001438243580959168142036201394155717868936739106737228195887505580307981917713640431147521904279313685599733541932070768270352142297752418533332567029391779956336099921903978251025420426400350100546989362817796988656335100438044295596283467350770724301901097428950360929316578008772522507670982028442973494539430330106391007898974147014979774882036865923573278502108182943550473931026137197378408880448346162725363549382825879774959162451301025790787111978250819733465590004981890035345766546449280125318330801379175725789661150327181078617520395362488738326342373280053859934583352669069031183995988158178415722521369255206640065103763220832769931330587717887153338738319015173700562747789342310490676595655320438626909906147098742855833385907125069753330460343943662132771968451280826991711074377929687505309444094074057772141108379733391729340606350364649522862941808005045599297489037559175414655985146719683507609202728946338124961440693527019229335747914741910914952160263491499477684497552239252587179562981072336474188375438281182058094439532923461791720558626954677726325595742347305520481886477262677436587941817253872150601007299907484246886507743870040591148669385934536453950663694852809601768392241874045234488794762092020836434554237453586647877002357281530797962465437783438514098246331947997644906757590323967523669075802361938199264894534489625710784114918287115860143492760981264248122877727839287683971532734996321678379886951895936779744267875028009484294347282877482873928931629421951273896461491695670901844184963623534220703445874187834958988983308167523473587787256716679101393971194435031078261247239720009945045370494688568281481177098041559253339607901804290464134227473505874048971593279557376073351282457998970023985530173883408816504698795808754083126340928479578604413250867835717301564657741165013965064783836342677107148586777526605845987374409650287316508121799232695806355760068496637488414562970534631669530224780982461999719314727509708993669867818440183158187701361982169625066210009472289568053291387129090342222382981189023372564460627805046905151951711744662747706290000737810487476946278770344387851000425166911870843972142654091369235349081684791356578211694854863384032544552689165538186655112082356778416171263607654951404733293773831342905243320061049134982719258181743511034520177914305022062360327239135611742477626264429714441788763023493940279531482849043371824808086653256728635851288603697455408333490987908873976479455353100024098510983668001899918653766674488924681394284344460626817096465338212711048662688826182850808836942990214617832084864297094109059395833190698637249171163647153063576571517169754389017682836585888625841674672472666332661547391174846476191941974875279674251931814901322328615206740635654418798906466386512881851134135741369260477139188253863199722223500470601254111271710373128987648407468762955162983745870211585921705169516380396781328243057684225063314442180599515465165753165196512424817833204401063716338448437783162109820744826424037109899467496303794661271436252277917075632683168484627588823665307643040851322078176891447840270304556653154849970809949824157442375355710345566589876586695392887161778154861122192072665110035632844324779196748415546576382938540284941572012491372790127558119135867533117311531488533267191648505136391108223249420395394621169139674574356754657069780488489604522081066611122682094984023218165267674320061033134651543956225934580068857785114766632887241866154376650362940968741072698360350266712701040756217341469168787764409383006729819488373699357786340563818376662730725122976371986754998416377612305015613541006871385993615237451636727050727353672369588934147423460920294288176141395549456838454469131524441869317375040003919451557577376782999925140799382334333774859965309392179940304739589243493184985523432485026966166097114324647443451715105702310331858709988870861535809972952092265508211177297335064592492773330900024330354354778920149949656076763309881118094687036117150342024541572656298599673155977781042272956216551640713239286572730354211036079131049345963385835786470172110225446690453636089018095483590530752143683995792252189569480849562717328918453310018980932350343274160707657397320492580936704138448823566939160222402132172680888483665488558109834045257911736838304947241506565194204631636078528726038766151413888162585430658682290406371471940752946571172065894841314116524045495255261412133255744964970732619513340469336788291589920661934530964216645485364077396839897300164303302001481858508075982300585312255697792654577891549502023244843063837010670555499460636571437560795760106484404890090777673515507040841352594410551970805553810223860677175574089449317719455481510535416855311004641223441011503544060057292389353439143181844807634695178787879718660085525270904228664091218148886658139456962147187276890870939988034165693592284346791177868849493327385925035306575343358311859510672324457432695819550002437524199357832487955427753805057630642955342331594261301516165743504027933802773658040868212574174822852737890022499896379779046439127128389880976352875434034210768834721852612733585849439618325413276652972394062300060568648097624599446492930115462506649867100048422824361821618136945210225754405895357348064289658403354630954534343000128684302242478431259815285916411323742127487352997334561564141355657159204700369470744581710060814368371782834964753417905935765684571159168882669534745903135252569405604656354074489746754491084839142118153881275453443644637917620269239610907996663374965556245010832346803853723701807066303024469627607041440937613542276464154614313549530890601640269739058200957691941946037086554526712127121857006488385813365466589578700315787612748748983509924320685155746746783382678899543251574585331571296849214498582608279744429934932053971934473010903271066814834779035693005202996708778201659561011397202775480467239827395483706579932835271536040227115952059141783706576668078781539127176937324036073285881430006261343319163113335807144413585360071827309825165795292916762450333042181706283362816621696175416315749953182807428125862040623945026414345913546392480199061804216796016681434700830800154516737645948526808938141672252812616037367437077212298143019391955222493246475778826190569232816567391792395744465911243207529600142397644329019378442422305107799253661334023719049547405991190080076548353962855598147983972445291233473004857905574926132438926963586575152555091598564210593146401225179738685155091061263531852714884753654648568602139520226044283021643904090009628267188737156443798907192343185403465610847506748699552347929395960125034061914467118316919821017164952673566873912894453512296375503278813043099790525928103178960934592929234461101333025648508063598179105894572003985446394123226620226113751744537907665970825139297045198672309604491272598590383234372003411536862390014305770837683507333657217872511052374455713153107566589406121665609004699893608507796025507010100863562869075805839066438699816891912138556768644556082740412799922326363311252545744945010424745647538648849774817202799149833182074270585611071710387262109984559197540634377908437666944744317151345531524224597728063077410368934580966193440235184912000723529750188929658496225044077268337413220991928207211700171138457289070336519366247079326784557409810471176258209157182052432263164873472519467710788421887865921556883164727393774202026570592897826633675344255971764843563995447269432750217622534838771793245345894664639026865433016403654830368943539247882322576959798624468521344443789685579780347220180020237594581313331011757448913115535247924862047358426636651892581977950501193798806923520342236274299661530612855778191406716323473572257490300897155112459331129386936086004301080131116086042932510211390380357325461263700668434444206780949614958454744520284377873055210222261521997574147437050498708074246169719251378736487878234444390923509166068447510609476753642101922323600583099218890476597928480432357489847999819723293426728923431419020414423201434395723790610281224513161276471048489155602924096638340820146802557158570053770046350328920486041730141383464446430740494867053940407519970895336127082483698041627469454137886361183804855738707923616159388193689094259875122823663567801785603132260051084365267431285899235083295174272002168912586242027274554346743757973314474116305918547308669307619745404435865350201518212852061475953033720454845137000230365900296033435929757131402547327904047704576568303581802651036526981994783446452042066262498710091484595802953131751936926290153646365236197347700705099754879817786556722699383515638205157823492397414542494384998957203207871871021112519717909002003215270854227246013314521987233864512753113449174500380249172635466627427300101849093246657704042257772265012489163100666926843005992504540190887010241180494542108394437716792291028107777823118237175566849515883537747399357937722918673003045602626708003298271144424264970774466641689048084574957724775582391715031865149065437956751322965200549235105813126017921198992641258637075770384833156237963035724197608457881959969192802202743591589537700215489002477090824589506578461904696757892628127119432351659009566825602086344892339384074336832071519946141978677563698288462567502408082730424036997929469397449724135537842262219286089519204986649341042238821315275137550075125464715989701045791972671713077732163797622155804996517476241882097756829200482801553517014822914106682133854228067224532539000629539633606179621128295148216807866141052220058797513937700181176623154249930910428841146770157508839072288259091012836973455200323105500180098361720827723060761131936110940738777227624841102586609455776744126509470477046327010231267745196017658179625567112462319093606361101777234070340317357408249004914010555819707239148835893145535560934877002023007256061864197633103868217867323186034150673991436594694852395262141085540151713483117977341396031792301988659841382593745152419193037241197548706508951849305207963044586566384648487281611019233823630067534477142238094116076631141130323526827255325669259538455338925139500637520081729084901339777642604176065377893277967106068288489132087419308580828858918430921797611951936574302951693618354769257948372839642401503710676252723337649765082427441332015715264559621817453409426305533275583204395273077005468987364573416014189161752299515288273579735751435997237940766396669512432842086781456314638237275822012716723449293890809344697792144939721883719617408615165703410184163424687985786034968769933891308252078326580356967444785323362412138965841715794022465851040078901756405432655566652561493798982328278862959302457214881608190886952140035675885810840471585743871559550952720791811341060011051938882835563267483718904839409788095414923258097052736811948946849905825352640377582841626923357511312878533413082509928873688765899218771294476061476973068838553286968912481330190086107807253102569114713646557856031019685374300807007454609581987471374993379493835660853100443675625917387626846750336794001692037020069167489639917889006625076452699718284438855944172212837757605359461979998178364866674592277779620346517128890641163836377788668555846736686508884177753843807087383397426625306652001789827300274793657625072260326118068299780254773124655622120623960420116878541324171527333170512199968469283297743551976898780807515886072391175780168083750039688981761111768744872347299198348450593298278855104552606310439109186287584839769709332444130715768953077098580670840411324153832532742577281438559545120782132585398494924907785987705925020997876970980732646705302108100449870558460368563395448453603123161582222616736061376056271951804105393660851238927872311721663255079068687398695432027131928098972884636336595890055948991191463019004639277725617837588023592384617556979760513178093586405120542148604324735827066347484009715111221395951023134902517658737039843471925373544431412427639020403240772591239033670754973055784614889587489885064827384322204322488479983657606524807500788213502938458307202477024702331077190909920817012694759956830990012924085830452160593720678680200618328483651374421099042997118581187261036411840992536062312599154531601743825203484060177924554650276491227342009671549532843427056081102072195257147728483023772723356201402841368042391014373617567544844215762225972344379783693523654843063845556867443334611841706532568716420688151564511158207736449185160235506939987585983779728686567114724704865236333688624031830026598807640532804752742494004403986339144165671384242557892096130875814735267059555324528930700344202387369008003348560879592040995100412680917959526522722541255991313111652911024820825767973543535988109193430407483945480471379888557766266232937867032774467413124607253146219715135438492776244034724601609677073603960074997430558977026930463020441554964631090960447914964363425042788469662406665889876130633535826708758746346592530327163527684283332828402181601785339206888281283569331845606202449952985194627013365445649544578222429909381973985723962273191983803699565295105201917867499594534001777446246866046149216048356456209443435333620676859655697512917005488166079778684336684512448215726224339944502376090325067024489417232714465970488073562862511316107446199627323064620750365103275036867158126874100404880519984901088579973585112475087179149490991125273674338476406082971968259466405180728521684506047274429069642976634860767791435750783678581113152202586008492636186706991125216457788321549649213498984630003909733509043828932600519321536469799915282688460807924545200089074569237840690051086560905514482967555804537803045469805391980134748022308765173359060473343953317163044379030381776762353430091624385553211250606752148249242940256398674503145158418502143843196707188478155329916860755329928908732585094468538882805412823385686847073322807101799853836857977464021530965125463774107162523739473345122981539467793647624429568135631570972910972221056817721665263622575202790196375866363303685004122917051764707750915283183391140413939773976241485898522005068066818395756870937050611371146747175585685024778530969304528314344882598235814690113063159673309552793214243647665443639337291682888926801484033009351639386980016859847772486943035452312412719517777108308010164085417878914934723681282086375721650227498033755255128492724871296646956022619854417746748615966639975376320692468354229766965373050882236804639593035974296104195361266044970405243656731227706709891390706479445832476450214889601627378885588644871995408935562753883640745767299750518446271668638407651771011962638855686639510378636777876259261363945850549197271852322206300619399232724484947411651346768198617769531995256122438636140560384677011560103893439810924502269836699254279295750981571607029963480117643400062614473544264406975632441450695681944818795825420358908148717813613183428602001737109747352146072241519735230101970209788946515122842858254261842161121518327065660512089824999898040425674965111175279974118747017062350227885847323587815034258477861868142318070403042906261136750928782219894071132670739042885910515206272357702191551280373563316430549772003352186201229066060397182515887977202979553664266968535809280312945775299933199869145811193029401256437797552114016512373452283506616670350467582302435403618820701242275433960489190817993860051036655357266059763787989044588619596746263825298359490213133156208792499707078521063132204687831997621449944514198927631990832457769641392728605506406254182415598323629049615656189170824121720650583944301940207274592616006640746191759518015101298803966109414904405385165794186216384604868343746105087614904150981386885589670986148384916695690770654588246857191952978744475381634514866693828397088920821760041462123742707380120196618871048804238493814205699282038271057769130809446652735820501556924120374965848860017226985729559934146044120378621490000235942687847275803278668263129812958157137545667787842171908530164486291285623452473104843738059581799406393594273353022201988835892378224870676345861250765954040898692509498715931148539019124655586602044567724516189005117455975663956494585528839567405409846458841742894499755859488974005651289985376952510130410278584046196710487528716951356866463883329367608642638819314742463860275222673741185056953101721777413375917632586864445253736966032767131989938884285672284243604013541165338664983134278010269657219451118462095042527609771230968847127384585840803976171681025427510309395388708384618276380497003669606046756675765159324863824253497420074249157869998909373077744147879604857568173447447874520712863139994697004760189959419749518201569224176224643208442560487257321325501207511692219916944390250971431373823196465470591712784801928229041775477121843355005527309516941845394981695932423276345546572267564232765276501788732548033680487571049321446349320199825244343662509936459297288950011382620784333589746586357242717009422345764328042041272157166000828345262748095871104156128011971784526845736365405313804528343630509323520404403976707538831712896664023199104792179478682072126121023238487876763843170013616518733648565973636173267168223955237980759577272743012299782383972673287711005381908627877197686889043960331253192895618442419662903732312315599798915417869317114765729379213274257813718138291587494048058245188931999759064305979433078953445539327340955472928471966698327989078377266257189209947434365202134599105467143875618977709449762428142574947545199333141227915199846419897339041591365129285084447363759508742099298964235823805499675260846686136665993437100532564942234377517840781941521161775614762037978111832855783854860639980414025566893362244715896889100931535837746619719056014603898557618377135081712862794254468403515220422688535956998982866391923639721547590800684506723423988103973658516862665072039725542144906990123393610044166950784006097257264279636195385181616400063867369280705367653591468651778106883348989014067240013997757246639562382332705550473600395621925511867418493174052206762374131353060260145900893862057352172951139953006744889415917071925273461090824810113948553580803774523759566870975406248209340941230584473858564848965033321379549193491634524279567525464565226411497659262223025857920665953990284541777247317402472957684910470214250183875361738218025097158577154930837688876250199627844497133858606675720641452980991257657744643967679744026433467936179653689232811860965092532854009713170222411951248965798408186394868501914310063452486044578500952718860007634339381025900616446580906775061985820375852078836354561267966555023037063617373084557259118363295875034099841864322421362076000612573286513904130254706973808121371589067765831538472190950471680453978089724917146853005297191132502151787434988479000245875577599143873025492904866395813130216633582972987117785370753102211694323582889262204908597753072094696882719079593102542282705555789417184166030407651797255528228530210168042034668514991385633002562400549987708205609335525548178669147634155764052317405543176128253620003838430743363843571350366085512096017923975043699055854270590135085486967259678239548824920066204098643853553080540914908773926231647640007251151453143558102804624424011654639328852704176877516283260643081723660607219613186398064491363621140410787141908592734378600401512156963988557435062675657469354623992548767682137143518692396251933010974011281848825066604841397453154157718130069539720096166441780433329037510667709917001006923724826488950643962157544264013531379693870627820311061961801392454395987758019800042048899963856455521689951637907903510222278177629612504917805727426967245393133234142781545440995300191048722629912756153584945829693251525274679521408677017423714169505296815429230974198374418881258590176035672991472540609560892587968628861741016010812079695502881032137498460857518670333851562468264379810029642065129791281056447596597930617744235451192116937148000987807164143737499724621607058550303471146801842164186497445667972268796212622209922259846886866446025086508779370136135185700268457928625098275690653220946034086174409482178537225117978184303673492445596552209833879539517042949155169007907356509662132267909238932551513531051209672606440696702164761298443642554414467316821612142008509046024401511287163844790061708602209767767479572096594303322477417827007709366011404924267072646214887841671276655908718244461273495979757848402920110284113757672048528659726683893582335721523420749917660857449325364330232090368566185090081805826488306759581382315179954901476728383610524681230632233175134535228832458807191685062959675777445267387467999703999191445034010983663208019725068958831099643534155218570404555156312495659655358286868989558568887492203847164623672977230072126895441365370472708978082343889860403581746609025927131601305957939971986365345484712875738480757195557255331718370415831621380213701390487000601515375001676838957619074938403205568171261702790065408246786646171776938998252025336255199726439104303748976754740488287192444738532603021111450983434655033720921671284680442484962847264268079885323015084163476497212935063457433937221119993137434143437307235714358596511906541104714402512637507286320038414722463799883779671034679191363342743730421620662900876387774011326087688530510188257197671780718612621423280264585510642933427119437001356671938665540184723571065234107965072652036589053815712284465178384021342331940387456139260924916489131563172738214149951817794223413070757617433267890419791639789906438687825443776593844371576206274076657562043556684657539446161056458851510884954699198231697513332884353977347824023979797865638242364633124913283405209456300794374876971813849776355203217025798154584734331917425094626006030447986721415618697173287850618590065270195621286239100539293180035842995682455898254370592911779563374972147654126183727860776338661285831917516625461409450737439735194428022275624422203916970335306147986634047095379232805629017125311120021743164783719930581629483576100795908150517158727940073975139773660772152143448883363187542533755968031571862223988000359004850823204543904613968119086739673039807350995164978739854055355956684968047512380853887929688371708965990227806908320971818010845470572710832330902770470969988826141308359771866436501766061109521793571531611067655882648546370515464566248764853100065202411690476473169593018345360507409369539819404624707440396043119976174897610931428192813603058047064379551493316885005542130069861491311539924442170606051693534978647364162038332305901062403216849653170703191438011861286642487666304463973549077340043820703476426447033472259853065639451415931624292325320770886818281521402068063918935874799240924322312173165473237958931979272715537738242951240548880537666555108585463104812050795372586886507515460173305204812595636065367276277289923488254836618273084704319206285302875452744826887686632616701574591406705648829971383944158844917480086159323327284804281793611854148657503502929534668775747593315609097532151358521598261401177460184035913971939161953429776683903980213084844270298435846846267002564423733614649156185521594317859047993876358432538357109052421992629717113192292192405101287813893538242318557789778995345417384296098812678633489298970016916762012664386836330682000579230084437629491479969353037709185873725041671836794882692883315901905177278488987736194010204605680464838017968684842322826308593536493984497694867682833253371031058222982814718061168488761174867728182973658615492951984593558259320300977752169994256403772785425695823540904050741859820903114862257764677029043151661293213546362767991763879547448871142717046937608122683060486354306719782612701762778641511086136632970416534714620088503587244981079659015925250548953247164613935129317342320897304705791652768395009657676746930703444626952512623803664906571037168766515067880021960810470777104598938299409527134944284432616637029097913723270063036810824767186534326118851538609179160334289807943067410859860910524780057264393955752654241371726514339716098968292408892043854315016383774563153094164857546502373107386371629634501804160583395427288770386078955090596461138668225734272930135033639840921909544876981120843847614556152008534945095617236451701289077886927980394858674161527054317596410409916023280441934283780077405190627942351634438450948569751381700508856443905764461408387593792493104226600953149907544457423369733382473299271821097416772580242451161639786490848636273428989700757057335523841573009173637427530261438485901089615687014720791328943979426769775214850070016710842682462369641511267931214506296211573853507278768914134037082429050504006365689875121636444434255772600025762977223936633896901715202434183958532389569308421209834683199429532472291040724081202332510824261603871321866031670571726078274195883827235247367015760222348707261229171612651829572333054799706601288736848194148990254083458616841783422704280836448971877334668951865513259968286458829095863649804405201880694460054012988881788353017613830944829906045044371070716433109138655792512834254006965068426416201702285655214377993058382595180308230045812154585791581372949973475313608493339291538607581547177814618983842420119085159967549231937921391939250683316222065128452594402149291207218111479833374683600403950097338273108969192979605342061442144785947309539185154609645085946012584791282354970113629306336554370739340651292916050448694815539582002465854255818101927327829784103484142154930865571488763182411817275827737381729646280800889294770903961532740736914595428224172924351824149800630458221633567513280499632028566883401548056743613529744010953655022113859342587177968928042371545893044155993719061039059572754052932768788790662073164667496212657536180963867932488608494455897347490458060886362704302255152579041653366784514944294788136834106948531761202486272128756851221320469552765269033808438004860773201635930484894441149771274088505199800607319948490262418523062411908341009011734397325515991644018692203322410091013712700025385207639968566292648854024796475761931954761819626277458897003501901364012250645292883110730478835440561261253426748009663762965709370985399163191614746610470319667788589182012390627379842579667736833909243185781447664470217453392120626807926495570730859477578040021828281632763987074207332996564478248290443979125561639180104689797306367186577877806600861280879856652196229905075304731107906548043863889095258262020084302130014297068944356937932965928383897427174928180348666917171812792019173339793915721717901453646399728574926387755861041387494088691379378205617316489544044210955197050204583466104475468719636560002074920774361752342313158919764853711756490438244182043312544456207907376562947053868313802957187881131507520465032842740081852005795923594461510784584747826685667523551867758790871721744267592884022040840596814724907980761851422024418957962671855319634238158660110778182020802020428117975932237473508175574589998278063734114510973449422637189754830117187768721044563063061102583449919606377359562869619447369495254933082687360604866989453164857829332533839981430662602158717893722045611289191789269224250375947798937425689038461071408775469318242587760549972184017944313186611966340274013837443151948643477022650980989716079319364861999827076526320824993503846106300410961156054155888694459629328997713686032863227022217550098350631085488239935001160961678402014726981545060481167181150976047038986515995863822193299999215265935841494240257037144488939276903043170299991058045697012308164532882283608292601672684815698635229199243258189282484281237345109701422265851592688199373789091770671139627058686829319563461639442409365248622054769526399464057957314846102973627729613447393310712791776863015987955076217870498291859998575759954068044812975714967325529754255684969499727472390802012463743578260428049057931957391834396572481916413541230991164219752009852740327885184120304108680280626099291735330023739949239495819281256475569280707393277402324863023938336364673112745498147457977284062205655824899393456152736949979929356863308670753736369313398188649154598464142149364774182328986248619369662497784019511408511785638781842614557727514525197605377580471108373477780578768426085332074550371403649280022242751863296000164161874908234220040643533195001911066784702863767474087147500536558139903349604117654742019526887761552422002316174121118735371937434298798449386673358010592239319006108456171822080094705173412656820071681831228581962688637607829594641635292827665277774683715744066349474055844765028372111199848692584391129602675693024132211427649962352451633978767268190102168361716486909457430844802200808907106131373840137677327599810371042365592140883060749241745778098477904758938547303046583320547054745371156597934572137669213844867520863134673302363073052840129183152337147270389708688787052026704049781634584508931364627206876792365352715774412706719539649568068472102583935599627608872499268560359986856070102865301543966754888168776627231479101890593951109511119466831486378016971017644643032234007152399712825255798157171152942548795080929059229110634129440850866959257580412178449286991920503680505697164945890928701894288079568404136879681239550036224243060089745156350783642666968528882221580275512524605989292376551023444992261671866263104392167728749082184449120542432599090178785049467028128415637765963654167297333032141751009763260628033922797992985717803589016934048946976657695757391050006770674967335527970175758760654464820121999060678486481300266738962332563087034652590589273025226865767377043700973270325274760238712898703819776066760501413172193636085190860199226415510931043756527403588108945075464317728426875547888797101540142779788060007499974600048943099410558642510860593346971545341034243659209731739950124923707239345396163152416396659725011093154309110994743177587251420152155959101636370348642739689065892312695578652460185312335501707964969136610148159741112572690158752164289245380832387435054598577380856091684283866726772467004981508899379477167858644110473391634508840104448720214043860200088259244148078766016987956939187144139733616661988478852773672018521110746959931756541608782924036055835402395595496511037215111047570506366796775052368007509881728744928396021385423169660261087498317301166442779379326204112490211309615876393592059920485074533453354521655347259689806203975560035150600027102101346179415560116760509085173266260284443735419455887243537015038460215710264384862949537634503219869162799960779090140621132358985851814194098490305558701088822264176168753324264129448821604997047413499008315601202196673818590359345461337916528535246638909375372509073394112508518235067339276762338309825012810499368738279641630124815155587021396077330806465729727793468739664313326169484469134500439157182569700510860207994080006606352601725609237743355618903008948638533701743912763245158506329596798343710447372264156379957752289179692501014044710217196726756925590783550200830248181761689341998959254184574934623848955945847202906846015307281337229757702127549084861144745677849768926167294275821618971981437619755971613368742123674147598675508352555946512666695641951506259885049377133249154519234005547142291812588273013196915411148733120851981061817132098131093479076694163903138122013284243513699996740293811643375384744083196492623129747541803472225048563704907511036458059493460751166609966460743990930018422499234350273680331221989177509985642960724403925082824954245253123379611431141687160951642982714305441944531911952492710155162008729849963803795381110786694337391228497250026519845593849336112658550199307573053664582808023204887614307515643849985808884210583806420467840279822333522634052955999691080138275990111913785770489451635096561184388742840031325122171578231394824587391378160702471999960722983769818958956961271018624839781864877634471451665578198195134025551306842874303716867958404919119006363879879987232493902627530289154324715608250492768269063303342462661792722415565821174626674565140059709372479746577495656443165247876615642812982788296135754870829303493206670740620562495178715716772779998176535236127479369417712140703913504954396002711058569629061997453916415578909639633382071421502370032842799181578882097200852449689814826116961753940731388871597358553805126646503944827049081640199429630225127447295373416351506132515545958702471640963002358162468491887615038094989568085796164526853508809661582342472530359823767013205553942484910566364165423712195041844614173670748155605857312372622867371506414416709779111683817919962097770591577331240076942874628990701674908951406298746657004781150755592961759570548487952076224269236641107394143305109097065903322261736803021482018188840207146901415478100125248397238206698159844454660546864941674894406996338336407330059714150693157253911790144208620156015789530745290066691425851909398785269491265412257910558074402561469745544285617473733130812176634437372209344011931087317840820563645188859259874938910446859626252413112056978962783559387791108326284341599040566480360008919252753618892418847132058839966185794207344819302844375365656570544446424018211425140104758479352234012636466624157530967239850535208692929451943655867277240922260370552993529722511556344985728565904424011768383373467953415994457867158673989652835814509726139025007774143417789776329049867134013404022208691154201118662326458749835851224526344335361736032409124338893174187452027538651722228532630835785203047876605803410294682365453371480813366961829736115615083200111457521705201056293551414241788303356749209790179880142579447711325264951536308046691503680351261877459751258083169460124044517859607487075749935755102152014659327679405825773039417097164720936196790374757946730622481709972712118555252267175542976318293998747519277848790196912596408235627399072443331645334617405892043082631777107108274264953179150138892231554811938972434123868192433272335098544891206535013297235420443825809718794774254940538665579924867998339250109789213160047566822363655224873392343990305491181234246857938169782192087181823685441877659266840672526657723566094561319363348227747793347622099813470626448787409015793175140116338824834707490434800507175353674169269638854135473966443002735215024476566500011056724157122631455234125134441472666613020211829674191721343077154306630034703443948305894796691254449652809713243806879651476258968677870899227157514908318317769192061416206911221832054683237422227527781472302678885563275419393870812057194485021998844355303078325470003511206059368119308439980855710589377644009418699823059601101014518167661105542983105619622011094427953243486486631439735235681311682721679458551818057778341303197913024960056791208746135006382895365053567254973347950725867741947920826910546377470023949245211569111973106626034582939077037230912879961575447688907204986896088573288008381687718613056033128882157689268327781206749127633619052871579224429745427444439877172778770001097956084617427089350409702427699136168945374344080749118186292949749332689860605860651722681155990847465359131159974318330530833154402724761376301950008023429015750377940711853423106650783287048535273561596889881100052021874235258803181782350809990481928237302351124067077477557858885115670170511832302926510938321421981169401917671101082128901000705125906808140348694952584000486702560466266218561387449009910291910077970591548038442910006566536962327084194781377328166385200530892428698082760155076825405195764951425366532913342154519127233607580889882024772644556176447108656339565187916934947602589491654803164852501987288402593678236154324685046128836400071580439871584621595577467965934683357279816657356020950461978920529763666021667873809659045314850034963859265303636067843682391625506114611002487481776628526150384765714144536437850435840258925608510321409323743113509047160816477995458263334773250671287450791847175321419253184146577690637803482414101244173043603515972286067672255046360364985765244122805301113777694063922118338875813613763023796120476521590024758261440387330556251981927312769227307845924185337430905599701831424800367477648194425711712242028646609928086905665008661394943969623037715330450070324582116434249162985645497384896741284234614746147908717130996638550427786438137869744993288641303801044628536834613876591238285701080448747561384319047558295087622499479318868753014481746458827409930066669136920628269449936919810556787515827427540311951126812684505294091683732397489284470105077369045361714105976385394731367236779585832884003999205284876300430428903442359870849488392592632184182785743666983080537369894727729458691937633867398472721185836763148455505015447041095431306410343083635728859058882041188278307607522101629947487272396454046809179174644591183699671449371646965379422264082209306581327445677204584960795140345212083146261839478904148411897260471235556467240541719717394198873050291478701617606667227988403140312276044864526279104205223643386518537209893932020749617995060586865861483885915234910188110572863246973502964811837383344921548314530242651636112984448511138557382248874723380944910060629414185726202055659277583980561688124118616943293636300908614935620251355420193379229266115550461187955088604245562682349091851059282141667371669833412755977635589533400992698846261314085549952071885018772356700722152982996124186702622422627059562839512306381584264860913552368695740844057046968237576435028461752918918546045771951120272058691013285068067708268610004574217655693693998010251867586104922751356089347302586123202513768155274201229463669115530251569704076835214907286437191752448099051567690444288429770844273549516988384988543112584748482645862293314217736356629336615534703698718035185194543510654774822985680153276716417549841911478090925003670612285877689409075995171552625024874685246958660864043434065722642519520466879708728279567262092010379946888333223941275039488588906666127283913075483288959570239509883678575907338535431852589363666464161250768096585207314012687187632098147948084615206733298770979856574411345795780365230696175039351811334235224569404558381766022559142141991913017427296726381222157380025731869220697566656157234074002166321920320753567384410605072382189284650852326037198289866536919962597123548495662864132482332763858487369696751933520257086257591576694806918279108489373302390881591771756255741979678481121983161560055759851140814323112878612694431965220016736642250036838978804020683439983371504283708894605049570294926387926714676276903953340349736756251293050844171826729558662368640430990539541166608432661822796882276298426195812147510146173227783624357086193685215680558328771054315660187280768997923759861875671107105530008869285472540351533044886115539290258831647134505333583407980685981870299455739770203961372772163610607864291316684615121860812207170950064960761688561351869051080823225979309528915437209154060854013361589739930921919714952852888439144403900781024620504840345898434486640787551145556232622980887160786710721988384253263093570769578466124389281188797579969118397310817359285520957811350748229229356321330555607169280149229042038694666785265196328180762858342715341657314120794583070027595765147263300674716091239468665898698227407814645913963595484221179906835765183324945500625809250841021502748193625838507080976392154858038558363619501512639356108770844779835117219128322851448814766488159894012999731468283962442410235822290985544662844974055947690701473529517472947060173521836617722429838793481195484417062549211153831360267476063051549578745332375637780530568223452149324693022508468167639145706181961706825470449674481708783460343499544874722337595674214174626638505031822984093189427777434682564958195175216883481677100628856441590999207677652629842594097232231720500939169985669472480630242427988178926998785567555771471759458324559565882764971064246685279136852131585909183620183741313567923599783007140160370643045709388778259633850035962018718863570779571452313792594636836825635841270976772363984487931032683736450003314975042178874666290495899920793443667024615268877285068292022847630438663505506171390617641475667987633225228170083638692970073393391059677829781367783722731965499796408646796931228460767390208384155129901207355826164744119855529502516856954939763655762070015543693840965555384744628004296911742576695013876677220353965845755626612197641303556150031115705368239677188134178185097781063588640524914351141736651726237235031302699925901875067529405446324989108592843502736585869353794648525961877665580516006766900694214192926502699096799011377823204754965932021719013340596535057182375966525124988490253516002889460866419037087758312679890066605854155838426205486204121351241224541643418026775580625804645813901996980991800101361413194531522820156061833910019475278877508348454507545673254947256206937070806492558692425071305361562380014614267491243519871874785889855654055407190854315244939731272472497234287744759890633344711500598860538919828114033516010919365023023997514995785538768937755656828895962753090677989736328256364430077219764187883990570978640504706873532733001923580516219749837325095343365011713686464253012785154995761404451531996131013907525859806486374027858767831964247220865508916567910151558143617982478903072645126433769567456556238308929055786739648498707336353534673723983210850997118080740307583580971898681625619803498921280230744588833193329511283985130843102568492274592141498745667524669347444286085026941590987212139996646325434066316045653861656914193479942735798981451983453671892961770637202969574824157931250182752835550006534682590876004691056705653695648203805780476735313751804486162365727913013569140783855057976081652210490989802669017858817002105713509492157934692826031513538834086581703473084081267660294935447559139194900986335487296059559905270741752899445704895894991600578647810504469778654297524523997910858192795083352547677644955775046891063453938445655563542384924217398189080289974473918042942796124458894742215879309116220853644963125185370837811220993564113420924209346230054220748206958531193802718624870597444780334016688049231996626554575352808399725458999152544711349641636705744109849007779263835843857808161118517209202157725613067558254693669982898192859855788072105476914398062917286494130137032346814817100050610662099584774530360098011969100429104365021029328658897646591449864163537295561594203831395106287009894569808659040912439369187064761041719021312371542342397585665526341157967613806457243276367969971427850900968831318842041106497564515154285690495466139169544167901346487619410910907871721449494308737284122650192309482984939365401012578980895989493370969310618822813607703062792425463054755139983021982346715943201819616078877077682338484723336606431228001503679506641978785042536689840561330279625404644069034707484264729171103414542748408979107687354922948767097068466879357702581721063839195470735262034054733424494668282100267407083802838308975525602963960540526127607798177601047506986864927637469190536041774648145210886110320158829189461886223847124200092910829400663201990630049883254024435273268385948267532894267238723094078650294032852466928722455885790822248281847356402669124235005106746942328567511601708629017651402974228384514130494694579337663796830473016971180410739857077603530198470351657443170096255661251172729637854778658978781423973799220490820865541035027721434274326077937089426649984151356035417037816061836588468519081225772729203245852502315076494372873464268661521574395775524732670513278964842009929343004270082915390256263014211369130843962369288950477931145418866168738171569954042877409740665413107807785222683783013652644280432886616046585117601801947338851082078471098844959468479514734118263137462708465741109230265044317706102090185207741575621415020282511707631435731293490838279936082052447471636439777553146509574936188132210587097568193961738803960537726037657632996236959673641582151012010593235828675537141255221269941407547877409124702980637949019783921875270221583578938145866816949353251238361315501278993980717899204842572928567861058843761772397382042074230666263600404166208545765155741936853611137740090083181145724399019396367563519627000008635938709875565231980459977107587413675429251122836979689505754135006528021551735754292496002334312433026547643614738869536060861430168884443588259824345879798436780823217806855857436813476946212857811018749068220986299308560852341986855534148040094602378233034486371529163134424055729964657905390544823343746856078517939608414677584498123181255219077817571633969343506939825964211799620180292553820806056006033684138142216291290677024581572749581360715380053100114884202010018220674081340320998283779934691551426092792323145849255188997304303248623221136903038756658306661447684153244381346087053658104228888339310018209800840195848892229180526326649847768882548777495332777604206194505479356009693975134353360630710201758108893354470495022739542800485765743482475835235912962117312498958157778924229065967886501633446220373991229956106976783275753045433802755922954855216603427306426196571803477205570519254854663301939890379814246964780019524223013148569052095478710544287793078576333093303644034758233122088018283370476884728654631370463719925984962924846908428992163837055024836497672944235008187626062504871107797463954362447927482129885420807904967603638496589255215876368166705074666027567043648966184272651066408762577231124293087896412685412531990394558818886328533991438129179954398530769406345517935859335392688766072446752248388792144393058910112406106245578525347116434113438993052954138670327315679465011590815638364373860249997474434596020928523121572138393217723472346780516283205808408610620661240453690506630838690297573168919288429789138895346131943694230341918210530493717926778995769302753539814035426480714760975283774508441288753042573012106493899406588543871396129431269843997141217635651911046277774665293035562668803792926359145020565276354690021627128499627599612024880324788938082533493896732684409756594200837215618428817248548008317740969364044344338005259276300239348928581083190965992028613779550923258560423864565834411930541480018538405362104822570123038212943905023701757946101435371625150398970435619646679904764775800811979638761630035172985123574731871359478743981496607578124456193351957021324958795963611733685975895772954711213222146848298464549967388222049973617605497163250086120446562296594828008195109848696071307908278370309345159562675515495700381135182244972714863398853018708867576911846220747344219654746219945118849999569620275619828076008826315597079331682879606845589506318737003863344649163047686705628103046377469597456436854610392432126945551329793769056937667677165001503367234537123974430450658949027150787719200326249995012263485509431194887686528684976591445699796106466225938883917399571704155311357443654080464692444529603138253708995711496527347524808273760264188501041440911965720923684185839261367223220837974453655103129132740298389797669808797190228729183962349087659056305463556357933282814722869010830561553784313509181327922851340550310754204636776158687879052299005839406556556627289381897084108493694892465018289800201665093910925749861284694993150244349970518537281650926291303272316891293653324278444824032254779381419838989061296236719501693788176772325899987223261232032805958347022952442982692093397911942277258613737383343356055051861244020030447709754223898865464997836470417692938755685602398885880644106533196654861342265182875171501510527948789781650459537772766076575967069238565114196066022625720957265401551064623797424929224552842372655295161470191480596404863871369330675322495367198267844726207714164736717135585744991848788112406708777107369756646004743563360855373411877549573580254524228388445444373984129422587878283445248214470932072546144793902005808962974201066445491786927855946128822390363626511557369083928226034888608391645968525124364028986414851043231617938273212508337736633678386845167573790486408880966923076638269821333202028896292719401482724765839123129917358735176699865239563753595618382540989999363097222930323095807708811180121286743521691714852567256686597920172706578230786305967346051051095660877027016234794884637180792826862601942106482542212420267198765701884339206644142673370523203226642112365738335091296171878201238526496106306188412014328333856482392374593028095859233820840602933792814482576440724806202109221824770912897024364007435013291400049164298726536701575583190176895633407998407004836357395669051182774619161482306835178213836742882942286084889165898724615976078350047177528343395892336301930407764245407565970193972202468607834877272191398701433858443893056668224284668667471676606611382940928857521471548764007035569981407722747525493126606227685847404706843151318526716695370994988968785215264984522921047568321194212098010441687034685581164423310917043158699589032251826675177065437982812118822344726437367895541413073786841614017106078762062681511976997543226810120466315522460826250819136007094471783653135521760676848398053700328211621986886089668616499158380977759504896039164866692297038836336752415127785070691910479698165553825605142458785461182536837732054608722993206633880833587008811158119193499272355280345902832782803262963935968826606563458068659361725022135310041208061050740007682975061749838348153970566069258830355175481432336911138275677570040811404653039247140721733337168859814163630333947288746162553399332179782055319053227575714445633719959081301856713938758388301341759375398771403000454479249047964022462095067459074280678899097035729630651958454627706395806953003158885042458098697863847513870174128275215951018591085226871034941263717427101794688028542285218496260190154936502736308177038515317398558418650292332751685177041171638535348777388009358417974750218995424955130040235224925552241896354504978153170157698606273486202957092363631358413159535834476581433589188669910929412367727541638786724047143379637038867621531163324669388976724061728498999818711336836329946690850668580395489165445932147955917869989397073438637028746853793357023559154271118341417399003716274376761331071671913721587388766650171146087601325386872931778754624971710445402080462517422118542412381049469031810980083745505919485835590424908603530384415190814042230833342118406838637816462942680384074266031618662122855967903754640427037665095381784019068561258484552616566761186384067341556351638822431561238472332969475107512674771168587547752473589860888833329121940148937283388306206478753237689794930954774806451123572550833907892396001581112983147818573095256932840861584345094237311887833994018904275419034069723509095149820149109862976263784021001488152071991140660777278979734924113200313662376864901246762425963284687357543425925907661934726159628401538061841738242005276431203356006672281929001237916790651266168092979464833099026207423284911544708172438086492228195709193681181715580520248455723830938519253518571574239525442016791505458051744918995841001151011479542637144956906333389146406268979117139689303703886099383616588372841091608413413028918451901184777306198508898025613418727545065044047903080012212071530252553833555514535230776200738364974043639256180422125258519742508400320347358153418769923766470252338296786563854921158420280741193539777844833900677232278185268740682040928801197408950873552748125968646872291699387666334191618809192505255019881532090347439445570803487784819602646571511314571950731373486570591428251354799252348391536032599242416450847876093425680667664013930462484202559195326727127968447160656266947678874216139229786090342172408450959631825976234600149023575696967849093783276477882780855949906219902349571573285055136727578513952657256802158531438482804605118099909207325592741714506000173905648295764402582727367589485195223218270880462568972920828772584383453117563897594948008798130491137949337230706656242534519545580570946222492669414809688666969169894278367789501578701135446980910452270000035400213758457568456846589736502456196522837853525549814825140774227425692258156563837006717124172187184434314835074724878232843502209157668945964354528068807185073854238246893154110904936341052613289317092549923409092577722632179086118150293693709790537123504555995769166183623330766170541746668625370003484226764611678228777433818368927598236202833683519534522162065495393293531598284984526637614542288721592005279741385684053040778841129636813021083888294075096366310320946293973343304836057404274542121203701927210237416731033118759787875023877822988998002892568208710191869318377292010022613355076907640347833841884312974950596147148428703387179057712128641629580533341947007235834109760852824480694875406808799790454430857988445191442153613266151310440940727380679659778623979077448894759742362846223072195122983969375176646343611166889319066134283981747589599785146648871686587596802156414930398914920570100526066814385460479795272356769525845032477051438702919829741277985699809434951647582083991487407999111269419155980330839354329845508459200109050622725511405963990384367479498099744579412321365159530751251731503349697811593925853795889880424532776830597075040494731687356816785878900759783259682553984271186094938929303009781918432803550664122841518573951647355815089700804274258256625727286154333073410286051549943500680040205759667325261717068403866824813948978331242396714740218891690660357502109741753504155153716493920850758151937970558052328282834089397322728584626492855373426772536635709860217615011540417350287900905594372674880463118624243583581738492160556048378660260267151400687356164579333431726943667819121112149763299330745146840642487282585359296197310329994352808996071682420792980043291546440881487879993187147522278156168733963842645510041694504310819538024137283601356724832276523798485209835203436713573084667642038944751035236017131862269195538476641730650962857678240033198846477258501055984777872024911973385073376380005351070039342192834766755093503187907844666016080680518835506372149308729881223800826020822900523183167376230182328209421780476810783057708272106675788263270488731111431752700190589387534191604631070000870163442995079215690111083137484086081923412206042136662509823449900802260124840638415221188584733822459500659799986127943074246256423238171465785316728366117180092694168005955734832182647956955048019386640772666642995235027103405460217624122107276678749908377762311740064631393408372683576462616850863044075408798684757983173768326171456878671813145792759871313189699793230297924552216928469653683092949693946228269176245784963912656037879572272682443373118274400787457612051537480610444460232595449406872610570663580859058201502599009157911388276853336659801001415179826223837600096288227498911206964879636111397264466762133324146669904421022630425823524721191947453732331145955105967330299659527647302819165721899042315878504948385483100756562858022574148756279416393491121841720061732419108474896169028306524980803223711596179067546648702807274015895978081837781201063765817461461499567416544158450577940269446131388054385872837919217515602936009715191750244203668450592357649810318887710082691876685339190086914426095784392677960423946237842519931549303473294828572634878826645281062975302078055863373215219111065814167253518365180383022370258433174731616886879272763112981240590706928839455618444164865148659903246705159020108081028282033827806204591315949531725725755108182174397541987555411945325203814617698066751254165815324634082851665348243023394084666320103980307577118398516787713151903377933733986373642596651494050393422229758631182079342505287754136983592548214963262706924954281949793410844643564296940679931935759853887577979820934349344510266071708198203723827132065236227172129910578223126505471693072429049045871502720126425229947524270268483501006131201184344859895878998290530910804767738787288805943674748089294889875944507302283324295114642165993826717220517114169689866140859607527877707972124812556693082421192588070424009030337157685519465560862551984006454929133598275186405308827414827263681634535115475383822620816797173984546798279242615809935356211261988087206497237271287594201437356617829170798132288355837972233448636641429680753629595207388543317878372996523890336278614760692436032662553761085730191038753217032068897058699587194172440657401756658404745433763241922473082677768511358478149021461334362366560018479467333397332043840265476819148735562405269795457914243917960912871340716599657999733100812333569605264297110027584684783646733455385609140592577943507068722542884271374863941924357122339328319645937896635433971391939438716942540753950480213857498023877966274286039255139434136975955890363635111246899903350706645928296299855626554663874279989777541035810353887418683027562688198923265000021718491914605344143141727305136638790883840051844902369537621017741953497328868142229078756358981813430765005775823133351052258742778845564656351850665824055648610958297240538709378702370613100894262960309280300092848764307350061972507857056758462570397634817601189831273123662258907712593882050965229561744017288391728950912228452133751250764047621181229083815095544359229743108391000138905454120063680266036594239715108224891983482519504109557151943545926070564730988921913852264239458232966874510922879248879852458698625692197981845727703102442062040704047232164014042043963607643203558152723687406036641862446967203950958119510787219879208439223976297314456414827215061696624353972415619497974940278414835815937685035542330360833898355716996527145945785341404937601682227156876483725314919248050845416509597115998146752434998661685295529906609845287363306855789654326323914838092025831128946131786558796614405646454080161470533244652055100943640018735951898303287258868065512077181717532648046726484089031778207421616219057127427044143716583538418650684838431789505952949309883236820510343674703425100724118443009411490739233338954116466115158943401587584220597762739585287978109499307472186906254476312427033947482327637808095930306255522951112124443445801830208642181308197765494245770051110457177989494821299008748052429558768458279535272166182696656885579986593886124217927903664987341639019965019684505001575044299395721020256151123834323836307243930799163849395740193187139041167058643859921112847830994750115588151038904601895649134236604857890973841474797144123902960877348098759409292590583210873750680917303565914583634810775846979279443366451138640411792715056100907733143472855205928073321265877823362231844099790099863388493059001499826195311513234306296991690563210927284084945041553052883227604427842767912408666261237592498632822528584999014552332117591552439561959389160095640787190520567239353198119770086133470967421471256637998235911339344110951067464114683098739051927395180682440543931292746695326343598879041777834590039903109306890221717439879769596020362631963908931414915792503737365018764436618504295203090283477895583924557249660189125982859352394760111409669819350249199819405164825616060368969631825343897491984360596121143430193064696244097707219703414298112464224812793809971685279276968055731993710827839112406786444292007670851296480503300419735883899880699337593777288297473303331224498595583451162726142117630080881151887662589915018642023734911249161853700991700254874561641892941917159841654044307516205639620543724152601333825403109093144262245559765744512943802376090604335965693514882146823818008590203165493665132452170792465869194554454299127449418382218593123734056190090266423649956908644132455178901369670473305001342322046767607659783960285209207988613205270276690453379412624943448231599231757730723014491953337513485995433605440123635265158989481840373551584436760494535491828930190796175655003313673009234916628152238609224524054765347163639750310317806900576220803803058289306861249796807627416398970717316839743142588458969588812632624125509770084145331348839950466709100250560986159261859100940516020737021671965199906629813875999778320684062998381061707771938862825775857876830069253120448562898132336092635169863815853596116641613998542960938122569429252395503812284519159084009499493032709921077215115347320394700637087003928212449747768028216287950159563931658910764898193779842862130279196130493285243299285006221256732444790301076368224713428266706106073188320095593228968156497761424566777494312963936265745240608542418304189017134206719220683044214335897115659497710087649909294039360422358168141784321753404562686967787316489433431770017430080578462875552104927996905806737278742167161155532250030366682131187948680657873282753780703455829455389326052362071471703692104465491793646604197473139661407723050338503419195317947686637046111910440184593211218053192981023564733718499742708029658966576699803605518295116601156803927042125645695428868577081746893826194549239598353562924274322193592900372621558020761829336167924547836038992472850345810786339140162528494589745757080873442749029205045191504193208450834307834047783746122376426368322651137233897317694811299875399345632568495746998589547102037361048144440646574347729766398842003779267738811038058526971367147207164969517151907982275473014350157221088540350912352860114705766340316429459510341321948724610769405581219727707529098591785469109708567806952338867892270809400976899601383497844553643876558257915578152487042586568427120428565303895568381999217288001876243954911640816754714565926561637341817241135735904395038674025289579221405147866335532765803621777473605162901004702076068217033353202551071007605531623876261366138495078788318028195085754118042674502517990407321273668197765171708869327719246070442583156115062906986737108168578728555433391736295644787735900188377740347940879556449094222982606738782266224768570499538572449875796472168940458596728247647111053815577249758777994015397305558473792938262735943971749910456370757873653030051125340494620922147271008225248214629820610705652694281775227353133408116275982454983231127549625258171666919874397108050736725880353110785798522992666145621725243806391900146113114532032349826578406010523202618077789973426346612538702129196875933958571630410350874982415767245671004173077408503922502729593468704740040247674384132284466269799094850659037525569354004390486622382699996840705896343929767116078307902335120255690144718066299947333927026407972527673267436913500712125543090271660706995748581884097396481312692507098064207494761080667933170146868066182062656954710830497116357430512824244813700021674474612918152929189431298924037276927422593907136705232707723644557447842520204834053667379086019878848176506048967797311641884742080866889466946632076022497454537515409140949601067574182885722060382830666395559773442993061491987624727510507054617547212215046857763478513624581415228208293021851943290902794225254481458256265751055912210930416455391961874985119864325883756221557384687826975306363528301931618722605366870270301932094199810840200897655050676640479912383477812050326551743202637442550327975184560281033519073520124040354637892084525787334711488520282921210394405513514471203060806154216583991989292127685587612508446656208720824869990250796305013784533851926412700180277641546790288600371298369612554051166796255848223547583678322553242879381502660205344718900710296384502013384176861766404939587045208072417127596160271392831563673210187840068307338901266266186217737210941563160726602725231279895076831795990593237868975512093568704178641815869598600619623972900307356565710110457189848422178094354215589230660099849265830339598128645001461769440745899288367101007334138905536311513283098329677500998103094405832757008834457380169001227429509454432289761185265422567248928891878412811208910019856959105198350292092617144446967418606089385969163723636623647735584135424549333541596959925838492023179183511254982046797075230364630941032217988637136722101442995679900925357616100999776519237431940468019817922926156225272438042587627785363446577069786052460959808076602399191162107544654990263848034063043843674984720686874316717346647843356231569662032220168996298490367408998943442663817241138514682557562291896060696154110875213960475068255183569826719476025369816286965637098442592053861987573041188528692621658099148814044665027571196008224518501931592424785796342250548223619379412851552190029819888003107223870625167720864081490462175079872111618718557303732300108500264847932039396786108707797107705482799481363014692845186572925381983147728085170609183424333864293149598200204599814934726413650923255924622570098043924529230489924926600960031519078518486376708198577618617081265325657552413901044128032507413579594175670018678343180860617916050131113091400599035805804151701335412676743268736257134736580877406631628667653385228934421698419279357002333675365532124573024389997704257959669976447223433360810531692148149316935816760486541211788433570536061126308460622790678764488980510167703669616572105430505970370803994429195349863773432856329902384212438409143702238642659480350950072121859425875629184174448246589966734332626417287145848737810955074417876928851007305402648842057120587700491308841755678899117242461283588378123570620087284525184891105197014452004037436762085776404632655529414025377667780865668209961908940075032655504035922290646127895356332929242174694840743421364426434234340111844882367602021832428928660135818199579559496248154811049353079330252803571170421744639890638019284867896463891608911556536260788794080884272140550574613183835638448648669810896382871210827186215832520652791540571601796630058810646057814121014721745084699647206319117576622700505059237478714453803211863494699715031030252101797129600248399229806963790487658297807530072591811214964862020983962280038126158661059819274826736048447768864326939489161692857704016941652122273204295340659510977315278071462497098744125615455893814278269197296166756043013453937036440771215690362033529380725541712931846889240071430575301348279981898288158529029024635360852610406944687165932509665498471293429324579293742268362798401156138172921636335967682169238560415041342915249073224791325453837103435127285844952464734934869887866988656282605706115880318089301110810393049600231790118554073507386804264737577607187795392146351827135180134918049459651036324308056519108514708639906746556454168148475421011945950998881321627690485398267619564264218660505901899562851483904778700290954263296449864347405947674660349686752244879844803288655629974557126978974682302209760650793307331266553652599505901816748782984204114644326674748365369375283843932260240444846586460260815605407680699608176666336531326480150231490933116755790234089339042559154160816340714002635388867518897554665002055099483381146404646113553772752720257294524035793068472548471391963025040579539382244705154317436461788540794656930164585454191511665192307486463821173149840960654942191882645184310135052238014155470306658123567240233151528079278851486919705879413452700661992856961463212473186653716634142823508142539025381163117279285891723279014282373794764130395427208733816778547612487970115237833436971705546117923298258332309215910593285996795050011967486073094253101261038047008599625486190942483256527440180605474336842793237802678737419346514841512485646606730473349067659297262702238108525688473750684601133478527004525724814639188122511618709968768075327835571462093397518778548724755351358689802147273101434571341862914238131307944475291842593694535959123250354120068551719154906167027684312107350874205045861599448271828468496390522530820384812322824887587119546720626572678380049141096947680418474642981043665653852718612469002431291360842856039648645084810817963390626066578820500419531571537647353501240051937714168850290760482784854147456904299244387300922586768549456052590576518994379345961402668221990856180268960111533726217958481515356223617927635516872035421945967046464137305868678266033496241441380935154906898902535465682279369335896580960917337415604008377120130500310820121410146916985126183351977400319472122154725223243425525141656609458070981481884270258010044217774515736402106148095615531582888558319114402039734153621403765781928457437038525891233708298506463139364663098787551290214516026953513422587733223004745545772894909443740629313558454980526438276933171242803497638698521741367969579261476380282088898347943410282743246733365729121626913427210332799087889703131701632400430124991943582618947026630769927467593245981755869184899092110168192031048898201176423714994541847243186153605457166929009419659643664973037157020072079328887388927884290854724581841087869166278097917212337231241260210152063854277149820033287133902084671311392685689305185109082377965247859389188704773102565165737894631117265859595038222042141698509264293948333257220641227953282919149257349400884779363327405002663622307741437162714816162017143767508396067186292137865220457174318333443263758688535567082957196057332975450031202435395775674541302791660950614588735240178448967214431085844662685339153891611388231452636107178537723826798790384125937860002997936479527576033736535553115007528747211698444667839552358159201700446512202071405733562609398174659408178581050627398574065040139174944117997467883571625241253050000923914557559255161663897685420474265561397772858380015596781353205948762675484516986302713868681728945488990616102632694085750606458399810150617253238041826337185513664063146981876044848891168730417972542301364616867059398862787639692740512536586151836068871384715014277185863164590184493198508062886246150233774718602988999850876499399076949228586220787218150398095096142233591128514490901655054230058547865678104488990463101981753832238362496190333997151062086275826317523575743239084347573644150515845747306572450239424851797786420987555159300635805816444405578406254238480531286308663518546824754877229657873813820274112450673178231064577072875592202616948636686636184147033052202546809969394583703714980234825435775173448734901410171895094580276814889135295211384898427482088293692515072320295415274240401105054335521196373745774383393275634704940963007979739290168215928412223336060524953958680576341226539116924748318501293360603787092379113095234984112164153713472219383672295855957054905119219633918796393062878858056993002413421563765080122567689905207963934505021407675156892212292288923233458509224089074106643918450434774592326714514698222893610333469768994510903233528449365138148937861898220829563579032658245198003198051643116923183860625584052149254563500679144394128087764875554231453809810455786239437986330196277793790852235299184999056880337896058571962288448721778342574279240698489894663730103248709866357262403404846548612996183712866461855186257241641302795216445861394955163842644562270603231356164927921625921376213989697187315455583407667986083760222203960640977778017974954343248982978836764472474181332297142148920421800794629685040223166504280264520206498203414521920662324546544615370968461392643341653428883437837583141276670032330759953684685339636905703977547715684086589183873053195073860602543048489095079240350656742070236245012220935088005781052977476402145025372384186306172137296521551141423791289161644070165662654786031181469925231334314347239663341754835266309410872162956466799315892155523613077435985767850893424378980497823304107931809981041236337419325628296173893689091321779818978560911218612645779831061767285977133310817192274682782930087097884905910648186919871514225927669350035330216987676934696700633191191171968943054630157552244921881717286581966442411759044228118100465860569357031237871061126764342525949429284861445683170509903143254942001557686162050678366049582525445855188329811111548684486949879942017903077153406291506913325006151732563155449977522080291805852856203913647640444162471253573105359833734831992838802900285644703785967260938525569678727447122055581279047675804283331256973837367214122015746666202870254423762988685911120560755389661581237458103109576084710825899108947119444541190729554459228638629111764718776109698845582808786118188346739969458836444699051258289732362872442025838222041293280555163611045623572776250305831931090568314839738281102778420729564147671634730077203485294146966368521249024814010216281050988601015002740479477868933607474775809695701247000958364584649558322127676650286895381356606704082135987383644514951056554638328499820510736454580619064178440934046813357364198462118333024414182541762499474415742176184112484713023553352304306050224471036455653100886352441545019647309045489770917036793883412134089403528987372713194465556104634509347041681492089424556607630205205548938879180883689904010445320138162869399267365899998639296477179403943452102072249333935266294666313805986781419478129418265525357814011546155984113652033579669636737044938997617491033314798875472639072225300670840762673080001271075217051425346403855092275850514496063701912516727892846025242988186430447851579854058896845268929879113882384440707131528369976312700389632136609004886677052843488317105406148597660105400161790101589654068306303407214054354920396627942802771071155665206684135666427132476936365401905644833172157729468566822464054025381076898460456774342740348445044911543564682861191309430950398034151743659974123064865350315409777894051261499806061004987248049543025088263109939883227178889063578068610488344635469200668531910370356775198228757117316096430170918198340725788234597510155439558448472026703033486975901297707779569128128441087143213489578762930917153385706676320146316752977803817550407599871663136773407398757208844145952727153579591000564785708502392680820298807425357904823422402583250591578226808350491064393370767050379343029996652413589944285449608132434218189218661141024621419201524115254262247239253992266112616375170543642396602572557929471606580170523813375909531790562498911285429108074104019077261034054629633552987332837880130727736193875613171239959717755621780717866931905701747587662429947731565583844966044820914637175745840894822291909823582900279524014570400626911642757501138847531179984857750233393295700886316496672877080698373309737935322825586930598937858613774888075239119838535574281070653066716151609913592658578857778359369384751943560353296895739168569214852695299228261707913577718937138138339690024025347576662177280498246211288826501351388406955793366966930607846527801585399772460544404075659346147583678429535252898005358346228499222243717959171569277899161820565483534786402271054615982588428075410442293577555716045388375901448936781129284436193786925909219353933948397183489834944306139831987044759632547742583932490948588549590669973197462350853396594922132453635289322637825191861180418623882805635938333529565009251219339203999289170227439574259676758212215194960805528503349253970960814154851295337915393049414018576707614040524892080766943823338794575025134719785865770102749212575032766310715918374429077412957571829478807260667149053111662748492367262389851840651462407457521650565272580759031698395065933302476514276754204894230973430784901081336029459065034413400868488221836565993241908137315759318708515164487043755286520037566536414356117723993620476482056544199718849437517298187623900956326548250558529620041861482174103362473908828350393663496081933543902855449759555456824439197131679778245364747944716541285703851687158403658839192838417060465117274193412841798797268502065356735741973546250017068954697562168727547873878374494209503108658722168703360737020308576217404143810486482199670366254904229512512343040631797587480887529565150820883974969854156764895198823252054237232559755069637052383679626082424826466538257452672756265738823175863512439360167557721107787280453910238826423226130920475988245227710915254000123283558874997977080443691269554209772273561455147599885687261541625371509335172035766884015291067699714543276045591860268752795677240716854576548853055364041511259484256295589834620938587386605964804834124381172450166268955599957544651552932905632320635040218250526362047824929003226167419548656139973918093083967346671035476750543170835421044704220650130790172925700005136252263313288213844015353782176174927596642541022727173439282035126108974809402713801485838364106719394960524515785904281922635430576867088313235402551167419084275320448080645126356151048891410484301800958645219124371796857823396004174694836378847423094737316439068547184762507507926205934075592646554765491646227592118464796673842322616225911894973121185282295839274186881755299156956686485317325914835103569523638121569382985075240670533841453661016056196951122807748118262782900399423466398549178355415676474441261074596865006174265441657472804024722205029831789277070141506195084944548712715427752132247766930024856638982207829373767151206165597364418480908837515779990010617372129295826674583679256408950643796828049363871039773143660977126701393065071834516451862774299280226377192151041022810573791789571369124343178095682191001858267236172850316365116140025347322934581614595146275266387331027995583132337598550161782498385192379880746583970083294795202204223767156862448372877542708441189710955770939808716747816429889997543916638347462718715618032073395180724243394339027205109324753055252568706713762615750433073994333902571936351276055761458673905075857377179288129467006229045600326432206043825828959083803722647681049113557233362081803855100533320838507590394985383945202460894108456310679498373749152359114272724739921680631892769821232073363631640550684407022254046433298667370818705187000859555172203245846311907703755851341376213529621141084015212346716916095890284986389894931953472886939990416879755258158920150454481768729975815849525341833264316768586923927470816468779469178195816249349400633296730916031955144638470398455624156332100323961971994082330176308340121679700253868742513520790622222059937860004262295732757496654972722235275155596729355653070770034658734061030596687051570849829389284603020835422842792149381246596443752076853245591874902678507927936175818762461909837198241854583070073550769104628738231564778171209939060176802036836497675150890866993779422059583906074741968343993530108773888731594657692602241089920155024154420528891235727794341755122025415040000429636460576027767569732112136570701200403261962258886689477802599547992384324122766219332367250889260536348556168677542871511499856263529957884425209655317523448126050963517423615861364509672384520029699153744592027593660188820812601344244688852323854950769539046444314746918501699170162271419330789140095995231549815064611362406983351820166694916478764151302359423140121966841276548704610177460299401088366023862759655958901349053831877369849897319012003835860967079984352416778841879196312245108401897746963996039939460839761979755613935535969984705353064026218451540840763931996495782342541352036010637742549242283266239665859532420558111994856266597727840262102369493204403704752416118382872399424623471812301293643460841530838905063805669891267752317912587054096372431010441609120806250847923063182426417387212105007721408681807654971256595244647170810933146980123596583318035457188423216825402266011799351869406182125790714695920923810838520279043713960052820837773665251805284821317542035507170735608126399650742778460044460237576092841110604308489493300061624073515593650238252872625657017337137125910313690534743943867813189504172051515895072750192197762414547464991744164069694682492650012416540174902777843201007481629097931937248829696996763320756807029790812182497236422087389879262527839899662117403465119928229153404629457840190016508679133053670980478501351159906536965177923891168910082967807749221519020574775004779239122327455437779663719565277884812999860794076696195129208605711709273395124926501357802291177124079941949473464599345397318524195366161151693502452549093714245085296533506968313460077587857067050785045375866599788359702385370982477205199705947308510076061984239223885935360318933952210158612798106358616002122565975144623429897887475952540715595908762578059406574735209534238963997825022239142296479006757787516917110597819800813978677827743018439369338391771252959937545115656864189920947657539425652591475111797472157684915723289738016875221360615629689301945901196568039386851621074235599207984437844044467407681708166610704584624150265154368504881855276376309894494476538319575581664366503421080897506738200478278470973516196820189065858256143505735925014007672428564965878460760082564746546714185673827450399555992563569349992879948830645812446797103979169731466727006270588395895369144310551009318429635580696723208069317461474108800723230988982852977669313477403059381841273549635602637608698083349857707260234610029748487633874889349520501471760807505778290250172041404483924381766444614738019876162191855470041200538314450992259334154037825250054610625678882182331724414264894678124613629017005832947759368201448553459202106209221230125148161428736884550114874235839490624167100772800044486609108332840883886541019082998407172167975334196383120396056892524432970459143491189230297071806195611393358045631633418656748540792779502021192507696471529435431104093315690669287669537880078447662017665406818640521020319865307637224440820408611227061697329803542855680464943916427617278109650984070989355276320254783258644822411224948860586926608928656892699789760030595666426079561413718730583481708482794502264946837349567121400304101219045224093749401609266623216857932885271451412169482397168870104387220301446394198373837071313937492372769260563605531803961479787088073893350052484552352913807334103394353065776123310449992123425505977880030093526442991700885621394499380157687103652018468657197971415437666038298081558361265015556974885200536012365838919376372000278400591946223870609562305288041413634945696543542660363200426798480503484326960572847880733269274059217206242982357121997097066696202065504384420770034306967706766393672084769671593459304701039004475392626224161140977786825109323310671075978413565162269133682680778919127277622433700264386824962139092922372951120209227518592470215673822129075363114090104224405007351724398300394906430757814296071993133516073208633159566572554943230536349614636852258683698632519306535550066171164505088247402845228503390120209146053892737605105619060856419543939267294897554398073848050393261849802667857616411924444037177280068867382343611340058674546884449436034905623227044870027695320057267448071588655200510521375834702658286833160563725070538702907040507131490424150717101642849918204921824262395373407236735935921611080131626059117983274002277912917526364777643992023086695471872111801067807933919299114558444181041828641060635236833242414022335293764371609840600556702305857443335956666895386970656867058591441707732244934856473739917862976686511892303869049973289509866688552077190123841995083655666192101842513378403208127459345237475349347383380084696546557209991142074823454287967548193908856484189678693396673100089067529799216874332903579308062383761079314666214191523310931900114904555274112883724036647887025092372515887526396852422958435011598675263172920485326240210617376172722640357371633894032739341716823040357938949103573862891456343131426878990158113911467412652339782462685417328462599504536327764539570193389039713063888458009390354867723859361066176650239389853615757399344178525846483213512651171423988158641834669054834881537165640033218937453644484644996890730351719632367757474128245057739303666891434407139626529619994819495358808433075961266647924233277130748755299724470817717120830747990227181268996816086627978971992129063970626533296350151910340551875764388247938895132569251422566193385603052577375014843319821174278316096045020676059639721334004434847319176508256884437174802183099709749055223268282250544327106858836067628964008768761963283711392545379733061905555023784449736479186782040279146374080367957680771365369036667161174247139799528691954576509997213468567911889663302257824211484857569181901486323537354332039617626065799548885729934229953507096159764889150103421670905808421096593508913675997818846314395757576681843398342511786933692570180795868543155613357379584723001366242469188327712277557284039213016736761093151944476505210778799551133433547610940671174919049269166689047964846804583861187995150596633867756354565425426169379598789308683616429162087211867089322566176834401135377163043954950844392803296059821528424226628931633754784309821975837587909799244354112519901844848958050521760427932950521309634701239898866010551757036720001143843354516690092106984823275141191850498242540231853216408315496659020552535579177007977680189648688602778426801791772988606016115210659149332916073185072732939100233734223509986264863274605439854210388450900121656824252698474536192221803242730298969167287636937605656346549180222241827267113134663692310206947332214597473473680538685897267038554881427833247226409719922831765073060801559312133491242508794406447936417382545881600050856280610573387458071108665393292974927105488760113397308588991668409028333378113496720436885921625544840504793793173518477993041047582718061359397922446360994214166878876911471409591244917835245246392865137148649793969195567874145763317869194497950736070971269846182949827506865489808301321064712411091489498008509885003330818698183998053642993237346285407628566205623641952088869134990283867703760758878401182412013713559635536456260013392164564751555227778728951677732404387874340094727994470811224159853165406309716925852309849186524733203000111876379836967155521277838219934309066480955742713687777821935783277452692142717953421438126416981622209386791536820194239818473428514042388065593469232493968660673234082791160009242330694553978578782365173872568254929677301985273647302959687865724214199149844542009531860114849748429884838127343229643346977496752199338348001388539811510990979351940892450525188785732238401238267369221331838721015528235164279911094313566691655822654341276364111923430250521995772819261056216664306598521670022399787553776762134341702070309273770033917628501406345098229374775135410428918315700754046262399418767916818824465118841941222932118944192684683391271155513881742837260124628984665992129541398674678765566235311079815997348755168581412328398892071319510100759681408875408246736928538504071073150188002923722327237921310673240788160247861225329447802908147961822190484480604167072765297264843178447156265885371086468833068331757434041283174925560370799604482612847501284655944313312186494627907499129209558026051101024428879398839726163503314291744721529299370942899267959923773634940025325084024561614937594041446879191690648840748243813421857411547783310214440182366804544964738388356857334444290970555062785993190517137357210667017577034582204189305969418915895220378075640160308272728090449388030696008080486351583422597357170734564796117564974288698876206188249928600653777869187206375533637867503919932873360681847116412043310460600199907236624977066244497655899830162685544216381775443244330252791327594388682198919982828055376758324501537090438523642060928066170298573633493599813599482925901787257665882041897159174140349844872721372977308803674600520064243484728358082677732456652786209867085455156840176859959611107555726906721969016845070711909465009979403417695992552765256416488117813974257329749495811351688449898703405618138324494665537186070286550689149035414959593666692473714603666274133665555220256080718178988144641968554944901587100160475590226241154495965239701773196266764942851884630161563452542520307297622440835242623537969732459272140971473711079136516528804602161074164356125835949676338834723973238239588571090184572648034906035274293004411369232065987991306940427370512586128037656001901888739809243550035939828437256078216126816031894688073065057309386528925181062290135592590745903081343961797991289949574529495024257624994316211814438326988775347803700561863671070891028395012795325259780720970356098056014077340551515974238382052338330008042346553113561268683809124510333861635222675096377348413417429234618460785867916701679403624436619185659385763064070072406214442219441406423243093553545555507301011788827369382061814541248465900199680518121825717225724617756546884024412198293662786291959580934583809552388403525298732666685380417664973597698202734206424098777210972875460984400420883673371456347885874821601558725832262561100418546995285749165251447685867740893303916163096033466451980471641342030634337298935708667994685774440840967961573181241985191698842091743252023329616243548092394031266705667287531664331269918510135123540864087808832805316071251354194159538380677543922035081135024893309231834531950131317035619459274149410938501385938440102097419180416686535781285522574005408678117262661892195378658687547562908899588858796220124535964634305173966520673541259707101020675214675315134253055454697052085002047597360089032632693097301711150996572060339471145857572043215683059000278637920003439371603921351607781114872361761484376375346777406421305696376069848508907194796756626071254644257911749996137427703880121060075474362760758837704836452969963433994331327805647247996892017881651040525176119866998041718483899874566305722523958249129733501118492587734129953093765669290234502840228785296733170467204302565321397916077951669232921472825142399357668641036254838158629292030368779766030225375462414152611941793565591937917083865548861409283568178052070105649897441809455381839442006811985452883584138551644306436388088857692924569589925164880204270086772531498845849686960821438939457140095595068529520505828987790046652025487729527748071556740055928876226633968511932663156539086954746268350086331357366691331732295848016271525908097802246571216425915643118193884164410578085489906325342838872855751509265262027085342939183330519223262201029177809842638564039050660669500657390128350000092148953641213003418308065888274229210564770894512195422916019821970534886054706994940977013421303918603383365250017318963844922020778530579920408080289833164563674948279915697515012092883288012939508369423425872793575541915521182348624041483373067483077630022969669918655788197568291023241485209241807453471046735207368402159020699689603164127138560373136417070013125679300440234722504341565109650760239607818001434627257549470853736472366369315506894312376781619386867661412529356726146403601062850341546210131516944817319841413075082047869386570148612619221542574697955175880794744179189386412884595347117122280648699078769763322543177335818024558122256285733184668523593925370596793626024494871547641553248965504613508390133330680956463338263934675487687089070980041065517677492020602644000777228575130030929664753100682300665155623532433132635516427799594771566072789982618758429532721571202947024651800994086310412607029528153471448989772896843136064054940779701731596570805317359194017064090021370706001433866338602419464851407908918493367050923388613472360275998126193695077765656273428374981835470112071791045563822918193681160700518401732455141381324022347892849662151433485054212801641559422119478921876321508454997696250845086683905910869312309004130009648545531745135339947735922283673174226807247158612234418725249847462558049735454879817745546262552501376934056767713287572768200837988297739048569572570969216198560569696108247429351033174195234026515635369967209885075005318846014387476480471637815245037740576411829262898138787482878928000177961358310727092556658908076971227869513807526142955720087558663514277252804593075899156385614386905600253161210213912366711745301320773810305650025567970943709621368210736472637364372822400599413536851172897846116935246683482773380973050035702476173727585420388461665386873199264142583697277957269396616996722401467348083341977897472215870161670510008814635193809522080096258417770557326203884390227251920747524251558551360921904527392805800771974604172459367709021893558914362249904477270827833836118938123904105003984243367315106817522293681860582368582289317427261067313624663869388717219572543650385297741880375306251226243788165273603563722784416298891351784882937666525317041283172546357456548013501066230081190658723069728162470782902107437611147330792555435919708550198781470417641007148159684715671993964259588276068838751689962312835587931835847207732067498610792509197889795296178726576716368585278086584047505752480651782554921870784752244959592513298008434695583029690920168936415229979283930100667952690285348042002844990035243613716954890749416025399614314781284423020151192680589365447323570161790753042375398173062814191042225556454400701972781744846142462818909931950561012489384753806935933884922811850807048666916400280291245601086001237732910460438791200093168465880082699537155378182028491052384049260356209928878982900558626949099214606470891060259455975667003235038525597764588843622307656739084696549186312668836949980666145070249171314170090346725493458869662013812069176975856520768330989281143622704139792805037410671172170613815654907182627226165413368761041306319950060024801551476481371977105126697908235233989747443194964207782203421450378114958294114237469367647305598573209264564201737714369333098637503069169826879395499140068950754884974960856728055538674985137175103690720784793048463988980044765561912762971706281124346109935138573161280382051211471937468786996915867037944839070807603324098715019807456819727604454201162855683137359687505434761164072382691147204267286292220096069062699484552757436066005278008989228268502025087110667020621404753448906475831593174249672869161836422197869116600770072885660900693985901106659344367642744039611145525308371159411109941636205835813523540466152588679902890350538736070677026465092371584587771691113744031986109230812353337813539949997389790593925997283068286244609684062124783886619997259448686618188422638855080245427908153943720856022167185581404539621223741381211643597573860935808738011726102832970094094404357101003088207975995975124992143915431321782428332867432718230379165350582807662657050981932577346074741431359504110228847438700113263862019259916375290277428288486643541590391076418940826231676774659828440694302031772382714569698923433081500161160493759780357619255629391759699543430822102299551301696631846128228526818972464315532605465967937134518373521755928850693312750753731306890432347216706648094698896119251148793926059201792091261782748578712811733211102231399318675848488994887758828672077196113258020218821077459582198938844126108339796074464788578219191285533949807410348284677841937068607666142432747923515977568099357301108031588198527544083817600486130113132110098482191996956185493862039794006697469683707830966875437277215919116536988783238512030755829083706922344535256157853686541217663501340738027746204677388056724688215834677002025933217940505017114463668218622322490562731482467237663456278622115712260143445894224686474119959297475409514373248729135696577694539257255730691386912022152433161397371016622251779441334042331735321083219509261412320418911439055830152073414464157841903524367911816952411732938307489950674396321887964111962375644737309289375397931235784113395086065879020610798721235668379896834455817762811572588214787557237718987067786347219529973142678671738942107308147832420245897922880672473028984134933130023851699975442227837996725070465089182680383931234798028496854521675231130001339719237171172194909818468502631377620125982245029672652704348244480909006241504410730570981082962637750889388791792481922163367717430200025918328840376161336272254157313106981360632270408100555749491023622707040509721193516635110053290363112505373945874885904623609857279589316221036458445248539845660865423370533718637161373851464959134854824653794668630796665253529082050347755244884391413078950452760146677916130606456966315422513615758814283797330554301791780704495856351430806177914944203612166687910877515837295217919503230980296255193142413683948947604607276371736755235829817363615895667276333734607098735170832118410919538962798601990156176872878675586701457579256359667313113743492617757844165329485358715145214436924941743295537518685557023584581377233658467323224733487398579334346784287727153437703909685140116198350091881263458010899631737819595437242435400160770779138990107401976823968595157935416356351248585382572812474726264535112372075943301616029734874546533144298403188388383414735072034647418648857502321012645018336241455312841433962697992673823692950028222689164629815312674737511681954728972230824065008661596228897324869509026692802414722993492862959543731259822364719620437352231095269697269251050859861785640470035159348141024233711300552413054655554519517422618264916129231170077033916120652049202519472490794971196616279371226969291836382965111417208458277829358023555667917040331878547251191509120992599801406715799210817696634351006121637697459608766900924165724779385834149709584341458557054664583296196764144311137391962199871460031402500270420472891343100570010245373478938065850156918421617262587794259875858601905999996690263476797878453886821594093635230254945813689768226256988373148012294396326778903022189623735198553248006147671813454630512387410464850465978011321620655175263779813888702611913904684848491159545183209423008849631621615828991791101103634690070034780435873656285142810266046322821689692962514772092932723975558493472473518948620952918019200793858264198375227204794926448087588636697740554987806555067055477483236969247691677141981081080719978877685180817952864041146492870659862245923051334524926956098991914789238285395782843269718833920844765691788703088926881694463866094657380295661864718920187226324414329814082949995592235129954895249505538246501655784758045987086860710788093162973206386386918154488435856079743779083947070745055600076500073341709815433829980316354637099510734120548931325990823103501474255783988809949876751796949416832563775072681198323536865876072825339351219878435607082615968873790230267593029800064491008977111359548653171544716348777311334285227468463553407923759776602049923357482292833488727125785885409037910431231320257373952278920865437872085415841802025406627948608701159333883779326659624358810004858110371809744179428008516206555439996850331036235989497772566419912396255701311364456459854720116840472643977023300414646111998596638403205241962668822450578857317926602761328006409671338755266993621493931194790705812300939729396750582153772275031517629577440112999696291533694887300600406381291200318813547872164354308978519936277123830648390032367052875652322515169991520773694722693061754795810466655542538530133305362394502958885674860013646220383318597449009548578673779080680592494989655996090802435023440488646907249121453288124054515075704065810838909163461140999214651483461230171244740450396953451679958025530099011808975612735009120862750961919983004718901852823606367192183926427605730123223522869788265728471090939852014893081162250661129514333201620800243524429198024665978716404193512992804217708931874194078632754336976048265737905941584497549765738380105475446437052022932161191796838717599921233179761390684077432735354107952575962983692195869008849140744285239837427579247935575099745397275465078030170481066006907573213178530312214346328014285434857687477790774091550217355997587203169228465114382821210511708154171325730460931078148299387735803892033973666983012859289560343411814922953062650930592346609907600371699033256162615807261915365983025084181174852713452207070657534729160185995253976078253989925371380111416151757808443713692681651850537760174791987975170712017527794347645644567305015952094740405576322799422908703438971768738846195350482549693946917801076540617442289747304938630201636038617396616069605040570340830282290155858755220296034053318191138608165467549324425450357687721821780444829529937122426941200951634401457074764894986790708342753174052058478253608457581129784946594788510353008661429393723639392722482723492694188370334652663963024606089743149260426329338525301749441645707355255255439069201591239685615780848655419356672413283323736553085919057809521101006073071954876314916459521434414324655216419902426088030390603521316722775325132241412277004482756928001002830329344716429909505669791630977412321386978520142384542037586579408430641158466771232926300395094938289596259305762526830303741495031167869435424189979150742557008311690849174310546705945661073136629686698155925883639247177302330564172263179930408179448690615991605994745083696891074755158709862998071274629801651133441231781272229642898217572693973541967695398492440714589216657615370001190338584316822618520245904529290305541490653928913290628968983547607026189674979186275243706281475621956068377715095871379944636129322254691810880376739958525981119591660025637004604425026395822224274490744305361834521741300866976481370816109864807347371779638482362363627259061449247701333908083355524080443771221094055841763138242534547700283537123879182867884195915514055446736728143121702862644462068838779734893849231047945687198397410924511818443675376414013097579120850311265619064871279010579980828434670678858537718632970572804961919993744897282798902650340931821731441342215628310643772358965129501507871068682515304264494023391358233175060458919256543839661577755775316783158595128860983330477902298741023492043701195571832049962801868785973167742710465924810182271000944765512578503590124153910277531793815906742359393065682354541930289733928071313705205535973481507744381665603221061060109465298292416924034116014933439944985798522842929970351263592789192497332113185492713400166578736472476565377888225906735894193243827217511598818387899202485416359235090297396853541776408129834696321163444218550073121972463201381337206745535279539415370670691969320873681653632214950117003875973875497434364955153239950907003799852434187665061793344230188930877662105312975680789075107828014936534635789122587895563862846017149582407618583911442817364203551805747958432597969738580909219198348771179918596909195121828330339560462012578865457180526065115973508567013089337985425985607068252157256512045023106624986027960438814542761848784900140967400142379239331409878360594879273850202370454166119310842184281851741081804341455247588404965296798415709441752903725213054513558418076036011228278422691162120589160347812355132296044310916583468283287902908861649447637687372891714134071894346796824215569373777187973106218741031798375002206732335290616982142807223145230862795276088262480233586504654219573732223852280374830836533767575871175218426140784915894735881518537142232265624436352089172783266019943401848576171757235953009368111300080625382701200304385279926243252241828108352518057500602637168696073246423192112053004274786376075782658674930937495343805638879303474334665605114068054473488520580231775380028097815467394229677642448638296105499388253226696514430842703723853229284677845798242296095380049762806553017834811911262969270446274001509762555506183167972598813676401235253154952340836944448340701118914424021612412102861374559801766777869434886693070672631633972364788469076479285416919400932900243863925923663616670374992017734259516103604683468009868789821903980854429186037474387557221570170353084737771037385389142418081351400305206543209197647136503689850551415993317739928059362069007400235006561812807547703483094809137426241553269670165667245962241764915169970386189045827651246841758470963785315939994861572075236140550413632844186261755267952106896444055477966143022220991800231468094785764058803276598575305000032580787380994000599856828231032129182695159981242316945727558566966439367452042812967760447329130740111774908807779369000215330374696218282420156621419240394726030289152646547509904064864128855356634622870721926310711115385432846373881944275404332840269399697041268630591360964427309745338789888456858560972455080390700392181586475981213087102742668135531628593927729006289983004678388529923672061542220304114746883716060406673024858620524055778240350540923001984711748938305061145245824308215663035058019031431136078575270389710651931240198667420535617376666388242345294097176845322900928382689190682456313117083420500854891533622485134982988151056937495251834984464915953009642476654841964429890894690733161829887554177135883473654541051401726065560472935436815881745773346374529591605462709552365714621180716484314767858819793211496718236524929622695427856602706287781308974386220162204912888631461561538713852885587686473756883512032242829505035702537987482244834772476646927926431770709601647288692864398972645149987086981167540901182934237212815697868630369748900185727579489449190998647795681079193169921014674157500857718235360144327117295190370111478512691510162087491995469729637373522832329850842335921873120911464496271581997088161491814385989597159396001300430056778053425214204113426686195406000892729452269333349622243499061862393144044878978036574131586217798212978451586825445589955879884570709667203606407082143089638754517196275960072104571309727808355590225049306438414292475592570412694518891688989173348362092874526974891910892211663542837620028618456721897995772978834125199720407817496811856378729681781876311504056737299816189435086783092822460298008860732983808054536887281177536215674193372215868047412279512682521980374923482597965918586906585014153539548761636453943698795287836586743999104899068604369342084281666989436114511748492911948612854437836407913169292870762880921076577427453869386911305932955051837036312762785766185454878739199325497852545183072966700131766035978719103821481564892626685226400002182207877803819925481221971948356334591809335487443646820691641751384248866747673381950207167314707704539841083484877280318867570723860732323877617547153459720501841764291170026997354455067726968498638187797085887647008196551952334355967937678764354072255580268569381195091499171017848918825442933788536349596260529868514717353996690507678879742132156847739628453249601241791088144263234449010991528475930291330259882509026568678849117363739051815453681969402950576113274746383337430785302370652426415688280275759506792850958745839614228762858286599979731051959209249668658841380510562749683085015928212693889250699294119148812408472766327853369943542694944971547868108784489253760717229140218442048847841427454641313848902999893941924755837917276909641254270227488005310191411123011242417370204956153357353420224529864256682535555545880946423867123811366522411520140719444080105186847005299170584518572980022407563051585341450008906549169171485083369705327542905143195699302869026544118923896800352410652026380754768316293588907195205268629407495357822533015685702205191640481386163232925561949800257551557948975754903293709279534925834820532743450134183815928771601258165484904106743498606477313618375429328176190744361636067867410717393766601430990894217871772788098847070365685380135397158673202171174808228072658895102385347283685744577128194722003671713274202673371283405795457414169364132800258830730335611305899077547699294201211188967469907439664304515059830457158963401392475631101603708577761934612590849323347106861415901354928883865215637496035626125475105810976688628397361830710842839296894648436360626423516787567871722834965890735973957079806323793173030665033098854709084716409212741958832809603077426946638957765992820116027842235577214495704219397784699841154050572549268078761719228827897884129519445882255607983287652124091146905150123912823040068798020286320943043883027708429542349850895325945805771805479055361784183250381803999396590814015799880963240846044170853928186438859298777716949665173703801324344555719425503443353761194739027706293534525677106644413406452957735118116985668565505396273664679021117856680311707435396128690268309624553206497649448544703450448489774084645824410556714350615494568246053908723984944595201953782519218439892355982453458009845053427887830950385721297298320417715704588724173520017649225736226188921643458076778847538798367127264391880524685884372253457081190336830085735725582702532404444413535367790850867229482070489047038024386786558745657854549504111418334625258966724859618930458455204187040000925038239611132472267182447582950666554311865602380204674234807392339606840127286051034791099524691894777231766800429848922014255075901587149273052685958377331350288504179338328041271244762087488057637738841409910035016799431187306071557764507174036116538167591183448257992934448584943865950187761607841929001062551234428259109972381428947673215287707769442324673637506728806867895329722735398546199542460691476967878323204576756461750206293726567761359918155309212397745582334429501972274354785069368880328127370027446557370168118022857951295455166791722655812774469340554957079901259433381883721968476147161127482378040204743059985304558455918955332833638796261757409411209330730669967556571657515599231855660774421943410681662949132324024537664013829015324348521995459022419153174938614838948307911350469321366685446858100821731839494208583875270541770357638434812583751406938042673151584176799742654629837981412403867139146747893436624417167124483689120570352378698347573631222371077857069691478583565525432218911817579472351554690603292296917547076432303715993005896884901948517890569413864730006062558235595935230984618900970736623639507594954424331750939095323788365907864523498003850233324413090210278967193602064005522860647133032630886288540651025709206148369854499542246934632694608065351698624331628306759804668109320152239393584200823106867208022734784145056141820925332836193346660649057736939784471509278182563298989910433702492420479738605108072616646776616773017400682025488667671700635997951184412496530536407159536196328204383257962407946147800145076881797409054829744257466000161851381319831093435444591001593903462550027642927997349005613899122122339500384810271891077470070473170157440015109594289494345909170087534134810262187482992443079421044673904471427506399501540862727095192815828040689099773551760639071974565681899211979312006916117378105127322927103482119989026303149370051343211591342255303115316787815354756350448302835481152316521999241030088427627425742871784572083023917217838319262903512458467448726411428712284974556472418419374561493563432995580758389532130346954596919461721076315627988360498282536367855409823710125772535740345806668081463730166297161937890009372189551257735846531624110591963027080451236347028185445967568067351920225533489597281832319216008637230879474118341247556948111104696722418366066087047611988531222480831017427175990584701116806501745655175820517657496427199191707882791429625772272420731877513957112626830039328967460500447199813701483571773503319224330836804149182077176053643195688073858432057926423144226521451107846336330419277553546513901155022830021649382440335439957493751177503144517730016602543536845675384910446957991504201135339916758252473817396745850609339259744596895143123875844034004084768929095026828271995638535526420201158299282070923917801204762655023098282147104722259360716987307494820399413978035070873607457218626713666333762729926518406284190337688231361750455388490104577276730231799147871975588461935007039557521106725027287534037384136872056928459309353497495843978840848948015339212625595689658517034213231750816240633132702890509264307442480181962826217038850657435656697848218305166686173635573364284824151243120718105440574142667680049932290760701138261448537059711989636039614723626385617796374089750026175234433451364534912974491183059195673065515883552030264144217957773242326377143848201111098982275398647696651524739825864549353288456335593910285397317062681329756994742881935393458960805495310911306079542652935079573575289251696553402212085878597189166340127305927708264121012116109441185315385289560511270737602598009274246044081474704223509524208324119811396157711601246015563110844907955796457828727109605214616158196444500811031049730158241682516697948487585306104631612331374048563199167058804660551258368940743932623088309523936571460723167445005782575547025491055635177086569014843685914788183934745286261492432867687921856826399754940264880132466203556044687451027461980771201117194649907557054320412605247887785440613756372701386026572709693044879439794902872004478288446088541537359351590677174860220910581537620506119395687155661162515806238994825005310601209911625936653103586158763669248818820347947497755469062801204978194006396154855945029103930517827374517213304207954246074285455281007732017147662488747531946998832236065957962080253086062832259721186962557523891007905891076833974560060513874637967131684107613927246701369326058481919203619847783367343055809836343536896338139966480582138674488477573830726724248595422744500206454616855399324036431847182255704181846838572401362690442035391820358114108631936399693617824221378177946562851094193826674241298561766801087074125192598204098989871529287958795301848771426918887716475664264275452407621329989943239457913101478872831429080590908493733373260194791381210363472638781983890071521239815067795474691999127170664765449778052523614114772161357731086482835851591805000587255782098494896155444186990178889573918340477671704053155313881623396483373475540292015866549968272287960134187895572133547513052291669763192427520449234474783206190792568625139246956345770946956430392168155316939746724862251566906997894736915112521051693882919919035588854618971106919061979274958762861787522715474088974193514410649565407136972458393341729039426676107237201943654708882206197763404024508461223242563820456716599539697201815088337955281997770035585514036632789374938195297213737863567459094939746898505809316063370711107631348475515168312567779694093734372914449633964937014458173750279571064005543795570256346481089565772896211171227002108399230450099173163485692301576353970401268881749238932973242566276115881694789264873019364667492602362660185359296935618873062625214042711716419042372165272577470318831247209428844628653644810363289049367772369664286823413876804188436562325382039687204114520355817427993986120734628459127079198005226776945161500363628392235218795793847745860296854080855586947344779845131388650714359528168134446641933111380128548880428699180033317583265356938159644304421200373231366934324041938602135641660938017274328240855207711101795888980779919250965589603521098715727657659267225590723593263216099454798653289415456440207186717450152806330399037714316521810569819010524143665907281640084359665992481845344021969348140798389609558151500402476719823308216457234614500671536979555257750792440236923711420936271379246353215762432953788240412399189534244615177369982739558039897622315490443540374570582610768405085279418865763385311852261243280380638517240246116379189794316886064930195990203045627593322172549808980571737693331801860226411233551221885149898744496047397596750092892765741370680079742336616331548627739095146782787750160796031219667987452610794265290364199343073382671619829103110091945505951670909344281005165310858999783187480388598861708576563482700598606824003661118832732722673349767197528481541132925369941978954277297993688784367916377150238265153281599011523272499363577544663243128455249315821307385016319967190870806585707108153713413020656607173682061322226324186830077607527315415926571838447808674077419868710368389855002267932957010320788845840715077760178691952785577851048817279835218775149017928841454202803549475374301745328565171322801745319921077581047358482624154322768660644908865517954933450686511407016431004632403580981802660277373543794492878118117203850277662162336950567177708641630842590239643172325462356871527530335147782368789019127519070556673212903921946079027122322211511396710781550719732625423827415272798311746245078956799207882133638759170382861056537948474093922223305660257088516431878397846213609902528504340576357013238461853058054090199284461598972111047630504004851056816840752717670893953373046399843212560577144775473959318181542579464415913109101591984601890626811935960339894276350789522948394974092988232563194632930605483822180148437204823579354706343082339214908597325162861299193857813399321736682126000251323864127373178685063238259943010263539054347261658680221465563907712951910781500684768849098139103682265112032163089541526490117933015001765751792510532195024091783006178348464089374195923853131813165023200804509099872843782363868980833352971355232114073153124964596878072185360201168881452696070406556655530991757988628252723156682799714032255352622760601378904136209304528543661400651387259359834865237677278037686887937117166499640009256276778596848794466683797572142138820193956508681496098840674002080736100339200797139772301257095121178000221605773425647254644986037301816469377999467031641912265079182702927722152898208229692750895468828754037730341563639528503222915381805179597386057810482679422293094759465140263113416149579951484647602559358303969707478655053085775091900790164943426571959227498343880656048924053479875487877906524954858016538123274638219295846546097661668069802129950853261301741788144967845430707167706923636209548561410443504609663036907067811123580162551158999716610869871158276896138567718777351094894878515526758345882601806674863288153671528333490283565695694966290502092515919172224002601094213323613916132749725729175403796111639759918788958184086493667038504628218943852191058137958552503449859695237582287532164563519715671926156320871685191915141467711511463867965260087295153750632998600024154418342734676693113477777915075070504733984302389150508721236400169085377148690082315442718246374984738023976005801488391248972133563990789540014726861395780120591776114946570095268376489493362011218283884111701198819013015519097291734268599157995271619748105362554147866525786474316905221309908052179635665385338496986389430979373140842549876858708706824826177027758852556839311014888224515734579095732092796886640520206968636812391775125697956071100488683381561053247717649211956277294812767594746601228997284609783764192052395937161862936799671588090944508463167307809389658365704923625666653768007958100991633201856012995086372065821864399367961046948034048424753438010349819958471847013498493067059820078170665375141145895189139397141899481844895638289820302690480537532140872452096303086093621716693637089745136031846349447568810803606106075670075391056674057209831052786611205750289583398557650626817690252594642017944447778619500800640340554969880313634324735112004598327230850566787242895691654558661734833467587750829471661261037886508287532608073070370796267299468319886359896122555232741148712903262825403184843987366210199044620765025279360830980815941629269994367567012434599882326859892860305620920723736840181876095848699672220881650752680170904743667571280566400604188231294964956691550084597784558156820415080528226999201722513804501388681633644606772998509044677737475746314621833589120176521040958115932213085711981689638357940190071546593794431092550964186839120586320313943061665198825822525137989271119911733814468263343722774040181369673967127764488732864517182987304269846477277486892755899751841198278941118689074447948039559905666944246883185351345598360509283583866842323167061793507206985056820693275546858123265964654201353108621691522277046207115632920670453558687076826589263519444448057810779464593010952806706601370180967505066291782400191610463291724308698820149264033126939664531551274397008066035381536162489828399029057520292575046048234216315529347392587947358050079077289953218507844580713847496892911600634242482832684521054329160687673286023987888297429180267777079463904765183593314635253693912843388976206556521630436160408285638420712688877821043318804588803902353705090141412765790109636844063650466334320649494120738285663261665901115202780381217799839571212017888488629888749468638525694441099972505039004177064205438861150136219891490187122328126292559785066173135362689273895133686252387579274425199669435835785878488874658489720343329473711601011170162055290580558729570538197230773359995511864509808704789608252388622874023439752732319664760055057873777562173464596809434363554923583863216839680132432326609649225947415927232508039094924658905782725088411175289152750888231593395587778290660512417263009211761115895880049719787745919431177346004366847574435772827657818143983016516218884818332552855433345232512559756006226085457582647904402490212737313878239258768814023753452535946850949567029962478894652124043268637571605898662511858996931882282676174797622012362932120801670753823601724566974937995913888261613034321396001365826870081697068566090606310677144416468318603152054187194744139491012986738024067923913972865851762029621510225394635627012480361161862691078756526836804459585437214032246661693922729857961985191362892967597118721776772048795154759779632975169813660206792036881430885348013117330686683592312912669027823144361276838006597068937391081641952128492056583582074034920416272917093569511673170862220599755905501365655293421530434034470471709579688814739686751622669617489787402219030813965010941331779545183426377725098438162361839868601425273451926939594548835892781075618985134020721468183041376205262037923123054541890355442704456957568775598556186596982284339747503552237651048756453950751935072694850222312442330689983050971928073578792084540906817095361721351297603659145451497619014065841727699557960413393504823804255425570414714248504406800017818215681317984816449610936320023386514003702447668682301669816644558042333946058000007350008446200012614775212385626116502258089957241518232238472448785605970309564124914322467897721345346065823920733686280157937037935509506233076758248712137398725241687024332985571170144994046751277922137373034253076467755566145422889977002857948423074431062616491829354131583141148425565677683482112745270898853763241191703294389328150752298172796144673296318193300729812070802392321374584343748049698234731291148938904486912086593183791065854536669086282590065259026784656893454093394325258776023634916534974091927178948781359870232723212190404421280113077650549246139741328024877913287216809401649498791974848600883111849175315727982507248725980507422993123967747671044819485782520878382194334335666511445272814092940118625131795821729682723014352262684718615974336729270819988440331816799515455804484444213775699827301806460643223916175405225254995514606816664647312447383433059248298802252150868807035712419887219588032746167381949995081252439777572622309945462601098337831319574299409673055573700468472546211592760402414489364837848912190799341720027035313353938902741409784452491420293242349295683993295176485863916696241100816129852720048151425601009437354337152377493544208932845589776936114028197489749622367377053741644520835853984065656411616364154016799902765024945379346355047152433089263770972826309616235456489032084488596856768426301095804319234310871128501449815682450334187622168416956662493122756548133345006711804716006750834723052248441880725766686012529766892691931219964181410294122519350673450464153492310194135094361785587676275556093317031993800091595689749715337207718981858799661184805496269101933100702895010081442316870886190838553839343924566356669226922885665920212942172790787862414168591408380143144085488246902347021973057876123463907034146620597612043089088126318559882017100159720770927283870195225385310548617517730823743480263486790549868625945598420918082449859232882266046845108593934186973894930037103754741142142332648239843878224789706894824216798244917610220872586777180217470516938178770531650780879577248458947543872815719158400638101102383469429759974960499710045063591151650460940725470019148656992586234996709546200195912776352424636095669400970659997435454213653146903866971947553830790323997408180696953525090275050669629451410366550688470730985711802208648363636007275301856348711662679789714843015898639225775663379567527545990112584648016148759772528913751773937363588673076109661807014571370587474305435739503728758549593626485190738185000565437706444895832596197589754958723231263881940168488403579211436774865089454590078553123554655996133473677622367893705160536663106159022799832562815322932873194300003641681024468083238433005849039426858291801285454788819244817548827691149874851068861699117038841499551807761905272683680021565740695164968631320935179132732792871000514101711020356734723351672591406791781378007685692873717932732270510098808040182158920738509233500801783689858441251181992935435202495720291926840086924746290179991323817466329863112829174093739736852450069347857344309117302326693586421132292656418362351820947629843896746809795348659838150099555090911756245809060313097595836592905553824700063270577576554539009137349304589099481186621735811982864459253941002382417784992238073007483151261560753031867434659925745141122403906089018246974196561672324234642440932032220686259580682358956398944549860104257797601356835149117154156411670885614247269040810691726746508132529810132770872318644851664715415456449041940992260677443597681090621814366716043298441957795669303029142000282409136606864927274952606073631699178521037928090389053678935789163278651918521324517431157218849752751697318183457098598684243922525368644051995337039084289245702014083624364006523600961652713461301409441205189228182723785880252635509303607241805024681853383549188271843213326531297849885920116745377297697276914732284661062661060963167793291196096783846798024523007085333048041311841244229310807489642312293369530382157357017524413991376598930296132937881889020128064078355813015855084029752685843653568490641370948047175766932681123709957665812281891639453529975580841381997123530135448158832378051020888956486534154286082257636778431131634283804794877571035196593773115121892381826540720822202240223106868813791713004270760937187679309101953258225226806737966993435749983113581864197291267603048191348171711750664484940902560501935511089898220285183998185312655823830441043979602467000167760236493433312483977326363834502527192487826058657645034299312857644367955254227646391241733092676387333033838046831087436545100164747989029963842090012007365692262898009398737345853683953062204063027686030952719263685411594378139317228553640153449176747378308716274074222823569668160171099674480284122605117126634716971823997023522533260129259032862307583506777973036041113694580730994111095265759028772695736238246329144036993364258060711447453190096542177153597700590381642363069899204601860437714461208161199497740641106067351374198256164073891269522899030320486540903392287494304190380090307628706765406780220174308595124449387453152193305039326143757859831316874549369084255864170690662023648738944402473625648881450838439073827630953658652945026933097227010932593055464801328080481841787166063626532188581239435009167188011252795651864325051570088793228163689723292791361175693407889103271584246440984573373465969758804565228313676820061818091689143355423087798470303408214783165660655934458263757986645068350596932935048472217377854725114191120176525032724593104464455954849212935174497669801040769264068662177545679607322099195928893946334034531149227075241804290202350793479430159294557142991691722202793811007057460756553475042517931762500842058170130869638814243807246519667452931056976272772311656197109004898065799737805762991313227896549394311746504835828317642477774847588456407630637893276038517449594144178444796641101518853942045493415098568746883574138076950797647927284601254122756444378030686326914664383939669720507984760510901668786568212834688299741832300212520785795019158095821647479304461186383947757960034710303124363796190434198723428620783773621602420702605319262610430262647503935335627181699582553259155940334739683462979127354146502565262829355856721892280268944081868875990189660295772240963439361590775762073629430499015515782056252655391392696147403328501122983639329194756610157714746610128484618824289039198123937541525517061786219390220892579939790354249827156139245268488787158032206229663557304553697298641839740570532981020197897538538088036021600852234340438340475125140659790136709833062674122640041016523908263395488643068938640998103010529565434366901086939182840553704055992154464982188731932919561623909042911544008863133370491139260836098624419522514545413151163736426656647952294065803991103358064631622847500685987205039330309780997829789099628476043645719283460097386976311115050903803917138314350617701351905473937310467033578233590565605102815103503326422668889044745709421178078329910195969995927760033069847549834050157776293021228878699604822094357533594092857482632693979830081641583491884035178215965327954360421560000393590891261751587152195897845751982003998480111881266258739473136735716659173248279192632824559721979657497530288631513047087582261753098899960150365787456034357327845576437749263142107972575804941463362189802275525951745241955342481800527287945638553205765419163704971658154412988941813433638517231165797216012686378939471728369473540351665968757110052105069371332334142546963868277582376512737409706022228168601088095543723299307340085565953194749338567587993265784064901711540457554833704303444930459223672168858508718946204402511225489738449160647189524804839821328019904378548314856747990092815959455454531223399477780317030288196163470239874673625258155769878583512957377914155475271440085279462875740945977901059721878383477592290158878395584396777351496816990646480012983329881946580686195955165938544257996747538091012919835160378596092846763252321948545667944767250028211516139197145587531576756956709105377658655598250446853670954281234171152894049705239671906923974442416657035664008033783755961907470538166949521450876284256168016601646616173165387968486183874025895333694224359921734654087079465829167919339419460643152461878519579375368936164556241123988711025869676677094915048879436823603697450809433597589449828651924603360839404999054652771757428514572291071703609965513960977984800294641381745155959901561250262774383436337415553671896132744218932725975175880438931010786550436731101310784870790149927314065698310174985257931349261401064930255045789171420636435525345794401806583475235771940143434598542777666393322042264191250337610176994523584048240949687640474560337062020811031060079625251110901598608519680293470250233413988050317297674404600820805685078535114760526187992460568806670212194136893924180110070760697364498584175037418308203173065624534884507882751357294201451700127715200987080388996633012775809816718434711474701356411905070533394427277178626876584566484518262240112206626777212155978515021197394301610926396678410232567470528993584836810179259214694298820696194029133885756863249845099650269844691655515275933993412427213433484202439675780464709367142992955828624390651984543652039727366855421676431704443717280477256013278752615312506566203920258965617485231856941275930209667551393550356548417007907979739138655641899365207147477859447276769190222911274532915734852909600312980491101794304973515112064777243134277192589814460420787856113274256846877720790654301407949090927508654394232864886986955472594704533493226370320549708852305076814719912512777890727591525212273399276716746920939154188883876819861439954283549031100460766892806061905418081883917484738870104051633814020204378952591545434416371098436651120965377201953017656470239443791363729052881190279873294392447705832483263692358137640924960296564324581463200843878496483032471382885683943175320180862487608513104674971070595770932669475207593737830643802453669612230938661742667047010648590859669558846782999477682356390236400695740755306745222844936967745111138529516097161110568635885933653830183777148072669381818244205076964255418583009334799106953813262610191672359428250177280506274628992816503629089981566919019258954129410854109822232678938776882939181173166538272012071771831039936826649939526797446841583446185481629348327925069968630882048014956727072499443084180465101886523567017478397952480023472031541210586955755533149675687600223146632775401356293507408535337995681854159137378416385971797588052389609014894311183216421269677991291561055598046775121959491393813726601228792664644882297086644260917072992908128388003125151899304713003982153042966182047572284647397803524488725965557487041665608878713428462270798653983973069112511390822484936080750320679147079094618375980032721497313077946634772301221235954426066305118597987383509317710322686412900538003756770387477636174006498362043552758571819291932241665163676656091390463078318503984332092378102408717293017075095298131017497095465891323991071323838131246450489552118996117150933058407046872835268682066783498254541591531874295641145650130146263882616236936059082143056927402543926544738002363905775038164178106949376969441210427455420724822169767892791579155798577045861355939238671043207970822216189542214080111149163673680279733134295996768456057113188315663342083203281460641575290492889025507055694758112716244223305326922696423467051341548683691473064247152104213295255378338656467666313799536204299164598145206947149548694815079697032675160891831657567883360544131641019008315451846233788509852547247307806229819963577690630970716428906870882969701122379818052688307394130415532474979867295926418584317743280373126330658916365572384916475731996633365834452660861834919801026367902367137619681134455153730476509890757258691325758001905651878097696223707702901653811972887726367760875234991594742449583750309746036758640923687611044494834039621160908142399038401535168751320950503425376262295561847810663648121746320829154802303662931241173864807596497129608679399987767240582484387957924268290248389068625130064066304383797557434963750369002107031360453559374589436620122985595546158224017754358936316672290390372217937865029710816547736287576049719049802934104116744943511001467690739271905001909505885787734335119477355120629072159657362051677099085968613545060593080894045156688710301746261752296273106277790116037795784750799906415678808860791710887722197249953080842611319499834387245649928643986632536393871345724778175669437330427846989378974965898239938589925760220232907572992870850062632307881570325100791931474784521459624215657198616551471050818177812743259885345241533072226612311386628881005636739988986550406695757017616349123275366541823874728069754186738447357445455483462001820144010668195438630651039559315357048839011852399420410105339891898919644523281439568955907868743080777762729256077845562302215918504584678045963023296897162397471339042694849550892015152748027117701446694115704313868219799927597885176404981688523199747811508065747237632047757141890217081029393541224845208437877976006595271983189715501695638385373147307470808530602735201591202425236211029888026137794641206514165464427255025325589253562248918747731954485944309569987696651335305264628131733793217842974389158209402026584925549517036266804600863766528914699707708318630516812916134055891363223955054546018809460223999164325689850795364562492428596010878875775686883514004239701198727702461916932172458693795662198963643654090778564133220025214470308702682858256937265958927263379775589155444024435060194756061746133791146322765506159593008314487990493745944967401078537989246268775217291466862072477949906731159292843718353812437064201225936866975598063239503047818029353392937097743123274524983532495228053054498219966054147215546740007243977491956659293441902269521740991282647015284078834738636004623197433100274364703838445041088228702139580436918309056377806291143721363147176570932124027793549436426862909996327860887092723852416257020019639796575933502371408072222900228967096907107396184582676226980727708798960499463835430998033700115617503794463456232092213403741724803783167426740947625667880960702664239489006572557346079777317222575035619225447277056021302468247718208536298064735902897156946172258505818665586071291425798287090871954168221129381935501395269822325698757843443518094402692911511732618638134093788291733532941970965255642221933556055762157651564490547559159340857233930574603234151814749361336409168307363214547062282449165179039619270856101493372450470547446666856203396611883518683095498977713914546864428133769225628349399902175657845658001882671617420510457430913258763958360803000525502855487784807500574663313198192630821168006520511848832280589974023785854645009282512323709924093888667335403713631414574851069391676621105104839114198067499063421861940150558328502040610790711269590900493268991556871362824331318840168205921727738815285656652262302311006828219142364312901020896370005613730149656966930926969126984619079221406340421790495652377211493202915817770703538640360070860933131377319424012075117068988493869617974126909932782992154778636387443058143521401144986747707846266389511054603822860385026528633750334485134140865383907033776920829614011468290402573034030544980219437536480934244123014365958887023298489224542252785320584468332489730945262753062371983103640910556794770995298659463563165609251889798796224959410481489129937068025553875093007391580763978841149782612949116913321141112174124948109360008520221955527976309173688578590780492753224507416041570670517405481852455855274957985822705728345315279276675454970191607985592239868963023008303558583843491405300672792856938343861739243870574083031819894988649276291300125590892092529875968314815569471458446609073890974164877072684110354487183254215369820275884438301623725051622147402475746687341366369701120764762816045053297117346973080727651715751693934477539108184863408452906940329236682380674095169515045997509280000217332382949921088635971484319048132236465496868802404019952904572223684269241677750318689036958269124269580465643438107491523585287238757526192243876826322127511671277373882359756176321873835884160984952533176522200274676500848161258988306080135847213669792048107032844617187658359676302463524821897599066004344992046751751860238804758460293880272513523803607544020890868599570189200404104180681932116753687374367667430939107096641998518549376380969047906951386432286454448947485924601055373332607640799237284027179802365429122204530861241630678498485909204653281491525459598099511305855524648678426028649661078265916997044813895693097015470518010910757978746358540677714490417084170739626026632376182811976183089412257066774097144305173108503481981198178139403191085488951685051695553069596443729435825208604236716529698818309502067562897875077460511901875693564493009470115524589756189333848750094665732246157132414283348341637403760361183422769080824720435564718698719352896282837850366236943073401710502164745889667986054799635843216050488327740202411777475264886796551144342290223551607854950418597484908752056150399626098160437287832331787394088932467705493228901078845317235133853510763796888661631140181286213958469856991152434655894592331716762599147240449426916316459884628688446974520261485921436604439275511992914621013924803684057167629447987828835928096874645431404768898816534115185221177040771829530550582199817456258068352958365260310685918182119977572993672576832922479754669922477640342598709797020212929702569763375632766649858665136972259266153875005021476214011369171029893129475962282981786400974835906489316424661239121829306452569304971815780248985304409446434154998657474196745954373069757450863152504228364149297776150380969498169919710570895142697747603112140098366430233713312097832866219143927701011220857873699182066419213644886455547678139553741596813740096757876831041090062171170872728156017616856662740587713539003442846307193220911173269073425660779890770937274361374247176184914475122502648496108449091476484258062887508018410487791287306100467075226054381308687406646259607142393530169939144554403557394312939725982531783393734974141911557626253798334361847477204514446348010101123861976108845289334369187837398922575987219509685001487932529626279698066010788209120642095985348654944378404652909562054333928054701403646768269008702437536664722627271927758622315053847282512939810203416742102694996777578920571685485035949059469364803058912312077340018021590029475378683462919662962204659211346649576872142425441360002221077470690262212922503309156693224563989982132679870425548498453131674500205082133828890581158856089712103198669469177936989481763385655142730973345093479301663336792736428114405605226752505611494194996265891380520077617714763466586908699145559985084172467649737317367785035281759498849785572689586605497310541130446628261584550993966477558653650227868661656251254306648481975489016120377222940629756321788917798688384007562773955452228732895786549478195719763704472993546310982564981842025970832015193610481268752291279010872285579200340765076083976752331348343385364936762318459953579206839826989690026470787843175408128973093733046643766068726163224658302233098886835538477937804761911233088805734605617463437657491606040189005981149071419119407564949373666439949660194529758052117745428563366395820683265327232115355684022925098714203919511073350670043209238297805604638748993247656581967432178868729997640212040592637926809895044750767754726933150760922727486380297512552286444397703622593743907877107965405695284729182446216567931709055055609208434096662085164413165542545936188749764232307780440079346783190006386275459905865398873643670092600065199908094660039268035934041354395037057634109623687690823148783530171337639572192517843490925369498425469823467846610680082121670116818228508265023759366878557360955967399757944139417402355614422550774897637755379428412352552840046666881219238621658342998551697569765941578503763108269093965074878833428847541628869551978147030816649781007101584217822612479139899710291882693382995572212792521481010671275617695876822492762228273124327586064749673343115241486239056876252241496433808185077669248074378627584439452504933783938822577598907688417669171699741923497760511762435601308217962376656283639264754964725976824174867806753785478009049356187870385325031891024698723440020633882735563159849929554585310610645926944695267051855036200654082530774934353822013334620551362166298438111182984766841156095226063814449600220818642110281543470893915583575172281560191211069466860643577704424530374468178185892091800607164176826865104745311764581711286144314447511312524702374558496997635178208429136038577511148577391282492437463798343550298282745166636170960835186310187016266587322014738598731704276199251580899389715302950790135232240907085292126028135118463364673635822770866331056870754571837014037471328764292239723674376890549822585587484092323042263274051646427097331996268092692848453656945922151466159230202468588625740259099593895058057449672171752939372176435134393930596795930779539829274086148441311460761994645761863097110169192723910494037802273586952493102226007770832456772749427113813687416685872299823749739675057121854455282270315734319645180782615449740188461952620350129722548646769150784357619839442196951697148200026626401876789236607926172841078886728121245115769106550404767864848210733933672575683356901536709482568550367443773314005078120451278072942583696014681228077416626618186177250749282545595849911930105756210482131229649251770352307682085320997932247584045536889776460355128951096883278357460183663665347848704766389967437445667589483313468710127650137588100762128456054114957430359814779889341520739027647165336110358115086617213262821302282204334739207874087963594952271326996673128306792759253267580002131221582289358640487462551302204933873309940019790515139422982322698007340541928280461381084364473895639072329571972692396533407092624430337142823660303056088226885294436061759926865246215442518652308876885418158051326782417881656306925511765137962331760065527500111970442359702504438368423454762909271147635773918449863199897270454230361914271996138952215903983563188403531983161612335712008606667510853253458894060410346723480531674962849099452985502148433867657905514815647686123641918494940499053046160729593152198983925460722748814828353931613122743432502138754819730267207149326691130240656698928413497978440025208411970428589889614065078633945642111492846313464437024721831442209447916960619524771467580422398163850379393669204856052730727999998660253192463801098472427976194899441419748120766456813512784446117364969997352067605555412973060020523725662821739754652934670824880772456572103456464491773976850859716413253230749068133706698891813494764493559144765175269545198056951682996055772943294050325825756737999841641455771619982420378988642585982799673360563410170528668534051070889521311804756322244169268194753628732659275581210308592842236304387755170962521221969274255131895728010622418945437339365288713708533839598126388390601509365437865836585918430970373484082225738058237511661200817227920095008274779484022303819911376416521596329776984859521831912921081508996006919782703262364045648119568938293936069769621917868545269725065512781779374913183783771000492110353388408951337436571486952336422172229041737033670732786877879433527104956114325517503061591062974893481580756670193567864070336341734129187105922693146915730341757071693825335143600525403260243223005593574136833504852612890938805711596031397306097102888022290896828616950680785112532814318818919092962368462421902233100489297120936535587202259331534700511824036012739833952533842611352029240678718107547514209845195319081445300523439963415542397726055152253044273922783384224965325222474265332942066111010099467432766769282088897713379095007913339593267736417842745996800976183035632741669292155101369770247495547743882499618747599798913647628493454063563523072081696975638179800775356422685289397843162681462992242828844833596126874813509147957199743444297510800226103320151891516450975630426652531762169645479943423418251069021884808820367596520985428626888827884570579566225018300554085066765965303935807031075653877830555121507028448102121049519870691710076041601688954273850755479049700190856673527038815342853933387785652516297644073786394236349176819240706725704439324210365141393446077829348139517253879276316066191537076380690664352181160247613400475308361727251188435645330141344176455458332032460469238650839776951008346761127481765575890702131164621343101158088020791702378847433016062430665774483376381873558273917095133308817819144188998667799437757256933648083522135655965313530239854989840110519240981498768847626433917455458098480885345555454019287318234463838695820428006963211790651587418817083462201831681505431981657182998153483873750523493008313187049367427448711894975673729605469222832803748924979811394186409975773072708077692260263791457170066794600875381828163361926820845406527889488487034520443096042866352005486063736173152775500767622979281245317477294868664926340204992396919086244540077888780833035138229876083913545871070695915353046326613029886398097320230090438885433122719045910935882281569863485281693239348436261076153787711836717066933411334706002955551461964509018990431057163394972372604072208603367112144919553789547919812632391249241253064390526565783060930183059269734289618968984327992848231964998839989767924496159103078638003880061272146099138899038897464986530339334149802665286813689271250233104445567267599837740246362666044867690134601202537875903465984054301662398475491540350433991264441228585081096598871856983121993655707678777801712019265258127902619871989430827701242281055799598359354513021336603289372940767573199269245556748420551301590565752390422478879655970604025955990154419305222265861740374168463262826361042163560903672878352530181934199000669819616577810335211351388177406184139992505943925892485730880034381471849475993669323516972029144846513499754759397202970798006944423916201105591057075979142244087821233455866945396080957643085571472066244773410141450429994977267722320706499819748343199957497079265333885025070303487036005127754885704907468271268345011402511890104114662790719460053056245681525551611014729939905690372096009086274536178565518897917191581135492297213994718005386824853070719947600857770736381242417020245508843769149916574407121939904315425166154465090179191874733634405140640316651309792344413956181557159344756102428470775359782644743944064473990587826760903674332356115625658967344187511461855310839107378951447764442178678887353667443571984782531734185658221656812485011156427697704152562862514131586999182871329609735487801302198388664645448864126294091505766310993822157265221815604725965174705333329917256623395878027064402827178673857322376759385717209054509085297219671029137465403292458471133985295143154646106417689061288563399263350772716186410152836052323293607114755521098926594673522621631909419109066340795455352526608894572829269373486324435609872051641544212254679140376151740585776506764312927059890153618489232891273145198328925936814034393528347614186850835107602996793856277710682331826266861384068300377957903318091505143105036014786227847173345676865884076304773254379119953163886762873303269539441215276542244250195790339771467282090593014734175039599489162655746290327381267270131506440988657218511950228959160241585579548190987423658602214676107292094125975299042493181085681879684711024833710902368126761577828783810725175716225238474094893569525903082516144444694427190622204516386172039151900062706835043482547548955062144827111415757519927484100241135743577154269817033474381981576596257956688931616072485260378277130002726615242308407749593175079015457628969486732738879714825479735995605158548978421371184592969904177911323029063045985306335211690426176650133142432461933582769943107804748951597517333728076106629265156015168161868144495954159676412094850419829556938440620031484342714515125444158418889891027752798460691941873340888954031205459444728229641513623755646076755100311267896442394999170289465741682233225724342848794123537624590049235866541257411330639413359021814458272909867557386001415341563469187416725499446219449607706005055460483056020760147669939384084785756632145910861349374323951180226509045218037563350305149646646694622219345711786382213594489294916893848103874232513144665012942452483167220098896579641430117940192078527551721964447311575133329950503880867395748919633133127847687141558407001764559119749255688420189565635068903489090845417169681056773710800977351000982962670637821361487652241452870313964884800099148747404279441140104813870796602928740322964399662496143170344557145721259302758500036399356201792651065581877175321606656009422920651744889290258863951594290679748951594586285631380053988280385950745878462084120375048003263236042215095994741225354630786824153138346297196625922285710476725024882180341219185694285242127990323941297206745803065834577693365888627622811514309666388624967751223696676667591199360896318964206951628698122588216124751055225919517227965782702428929396193644391993151505464255740273328201924560666577830833073348785349735752663966715460262691128063798396925753220412086910478930027988416162011417049194259817475271134794749898781009198970145321167214925589970804271669408437039489043212558072817314834719641872990655335435246765475716287924713770645450584099276205265062606547929393077457324850267800417717107307981684211678303522195446815331018229772163238287065227430268906122417340657605058684334862599013377155977642709382966470884426484028842455785107961151270520418059742879437346324627032389048795069242561989956259714763957041591247509667377997215668162495896524668408025127353928991651081921118900826522068938671534218958086887925287471181530901617367467158176344772906285768695371925477732041057821171291990181946176413088161745085549145966872822373311085028678073067306498845714254640404562284294957080790046661235450952977776268933644772165661135132637459036502798036905455610753287993276199335740758789944078594638330245550021879297636321133586843463639023020247284128012156500276300538927118885430962706018643678351152341967486318395200786052318438482096959809439664583406884223888309351340912325220275228312254145012556619808367268869049134064715697311184947366534493307430259616943421294211525680410995719327234055383306917007590671623459882455782033870725165374362072642638020499736963959353472434204213048546712746723284623399382979447382149798038155473476465536186450186171879202968866979114317835945327486842403893431345560849419420025120606205925922079119280088960822643861739496145994593815248455022553963730456739794860331662321905830313021037527264809603866322195182766204349229385376603030010294195423153271862007940841734938438873488131985320888673903768022075674683470464654794442194948266698277438881166673793996489055231693777726276518248727055604898293369129443147549810732622400874727398460806832213356067943804136587865508511412738878007379975571892187749984161712729614554734940433200034984175551763077184636166405293951987679612798168622483368177547010660156512614831910988064365335549859457994359191865153469645677297986412455429147520863542416283079825692515363349161590577228609070209870148719699491442522059293522604583716738147890281698742100125970164776190189195557356162988964271528299429057467924935715778295667657473224322278387275430548492207412510911035285421949502306043799166621622037044303598322678835972118633303524138633968445573465811280681475396133681818413803616965520064658765012261886841129856046207578615655043298515720796930160850299941918744207044191494818097516132854797302803392205754552674152215272948851264016215783820941451045706603274551815829719407799354415652463083551495493866516544387103546481204965292168159285870214730818671602121998010072089416687748059838948110066738048079830686395809361011323575792274053850062315485318427060941338037506802302477324678954777305770055545790714619766358323573978705242569186708158586828178123426072047933497710382109903208984550501401196920414141860050999390125123582380034392345194312755011241702398302058083457767299968457673704180227243382224570046003752726171638611590715707023813036408574255711389827776377525039517730677743982113722926885367115700883047300158541604453787419872794053740845823575486495197246511598985886625408439010501426067436528653374171012052779918928199377937509599017656657593092436261470071649292633731439476978138285930195309159756903018216022661221023236421587223437868147587965694563067696608230507191998034498588338432758549056601599353346163034787443490967590338408777960529955090825861027608463498976656668221872507049778726966548061695067526565402555273727632821888317811369523585795157314471223659818255932230216079415144349508381315387217150316447523853799072852480723912780793734709406500881929030927069009075280920152004336814659393553471632462347364424231025382684816434139612533181917376105069293341836367598185700327263663840243558308588924564870620726191331016220354883390712895361244105910196390738949047194340995117724118664070598722118152035873450312971245357548281457013436082702860734408854817079758385569420621738312727553732862461728035610761623739313062978413916851299812667819694949856699424790341507800485894338009338677211223809840499523452547073416954852371690389145958850825010148020629542902759050430348190975156206707695029844308821966171427572632228913753324005512220307616447315372923050567902918446365415033379641368451609624000459765490227002597187462077441807649764731802984693403957996395834012978440790903210334015934798920235939339820399974383492407148917154543929917988663432197863480472055241794747910522844350865814371473083001546901205259809881494179309867376962265807329894733086364511327814344024731988464375951486068589117103319131690621174055178985762495994740556119760604604823940936517550162926452497342887036863554711538650546644191292494958734764234539225659753878313462290019164246895131607394821326316234468958174036633089741624525527039403371685043568703549627308532688093719616277336881228306508496607596600846354848904563816588208974830478273447532413136963040299016834915591553718990746151121154257504989998839357309558826102498533363204279129224928744227663766182730501650080723598989097477678795330889703800437018321344551496560500173805718965430213111740569500356039913405692201657797998132367902275874469909779709461453386919684939360430578822373376630433400038455065554199596587785906484735205955357273758622514283419144731696394965872092206645660975190399167997419636992573677592160823968164245813112941301636404791935271426207245537516815160515823064970872055430690249929700039384076134153118744038403743055811948245297901665681805767318125684222477047809497541383611569155583048218327564741987158617681747699179303530002558795197332461012856902061539215829231636900806119747682804458216147116246369494954370595444153995145253004317881309095311839701006225890571319498935266646608361883865717931081520151390045639420540320154730404566266078003853433218188638857122022632391092840108291206397251935993116134518813020156268927488176539213604648622232021269774052332293288012775029866111165737600138619045399555993068705633252034027460150182009827248215129294705270727078970352411775722081172875495014970153277314266357690816786252993309812327980612871213138765844172236665788842100222786181746427982263060584285687270756310435721982616637753761739804322026205496433707683205079896471816025024714921792790379195234851839729087352537084637344377670520088676643990433557466597640071914789085086384412334440182258983179700153920549306337839714169050505419633716327408562163113863827798193895435780752658349300788115089453914257480409645239787895847824461257311771646100489973694716504439626204427872165077272340608047882417773809008479821288488010091908664622217210040348338298316591050245155524094344526528552795344087589319455624763704385850004555916097067517726870463288502384035314942534714161394270994720813018355013586714945766852061192668810957106712851983464169289628628238265724846273900787912500587676662418870650159935686834275751859168834733735847835878838176332067132142333714860925400536452292202773720950507070377501959812019644734181719659981848889778337732435789426420826611980673286484037545506257341820367354582636257323273017268179240930380498052703814006019002309637120388049431438267594087448355206168634761174170856027024040618200746235657441485684328442552317497143784030319863051796860337701244379104828249105148386132135006869696421766386789518177039361671845780711330475961035657441036600527298461693062703213131003137602893605200429105821933944715364480793562538821806418146544856015059562859104245037290948893024326820873674890860369948587558078376337343225066833718950553889367971936724337947311123666918032035270880817616913120064999950326029819758172848806553640750621476396531812682629490953135775096540740821776904873792309699960170053556881089271435024580413151066297560639622692086596369804260005176732116943229026813883200015818625880985599936761664646305066389931350207620559917288933200308426048712407182343065644720114809647489213104055507840213937490377241073172918174684097055106828369348799742907708861801690190898449012619422701124356215134918776626706651097773338417565101461152766813829645779962213516376894648476013226509546537393971073433656841682351150861379570227057192082426569356410586823492600537366288020935004887515823435233839810019928499986952923611805124879410220968766480976590177610861253208597228992305168591997971987131179121688472645490524679490556708493832084459382483880254027825003277436148087826708187556699333948895943364260132720637713055793550146381273468949806575105859241883371241343886505852577504887852827148855792416883177902286212327182341611837076184875011693208881302939465211249985964099587316054781473528247639930441132989434091817164256679980795524477017490216115481502094667375263947213528253840723124583239782907194348583952720863104884926571111600846091565239416279924118376077705099422444749894811344692035575060960697119585320610093886289256922318505384572931918771904984003726805685404938404293026227888183014958427021287686657239871742766773606321011324606080588344595250786651886773643405422306879314369790714575119151308734440464305564773842013367645235909980215724850938889803149387294397760204941129718796644230214185111754282407046589355480020390303220122672943100139090501497498928442150799752942786429223036637715405978710264278621547063201212423067420013151701179043841640938808485614161990781388701987832766237482332192341260146464887922687063944513865807855587568485976649115350541708658918269744618661998366585660682759100771245588102440576352595505759901996175154840755136818403998400860888532294144252589239900821732269394671706750162059258525393539990919333434264808725740641309276476167576273605392090627520360501653866460458660119224978349295636319902956645822191625612362176460156664217339487948221265435794221433063681087324015184928989640296949684888982756353457809055644894662337523184984335347297085302533399286656407946992967675403341773943869698985015314642098320150525431866154730083999953432247313283464835087742249105832078148101318846974472174547535611568477351543856719919817425390024635699277104461252626112311061188569534720628417336551472987433401609809495102346475641733879823254303994292749351856181437857773204673977172957305397503401404651733529343031153842622466092107805253444630274104184636708613246560895747007559269544735689957260867265211813414959245656075715313452691007092875855287123657000349584369524376768790201748667285120568290320113537569202992336426346293568321170150008581901188888612588808422917467883152347553186845401840870187736905538736987074505421133616833855897060277104434529999510101024479410445571719612736825212011274210960682719105102442639848145686988642294089966818890477231543354865337896150576103067274423116316527017450454432658408740967854998402076104685410454618610689863507840457320937631829608525264346806477539546133420227467317001548726224517247334918463034925495973550036490216123639286188393143528726770021853989355715422210315573756583595404976503348363481639270175322881516364815272358791894026504644680731186396629978709504331708544683622089101331158606969648384462869200057020955536143396048917951809475119481013737585519140293717271379451369892304574898005965545119676363851813099772339853953199608052683636320934983208927593047403841567198085213293802682825308875113654615206430728109301227961344907216794505597017215424819405083313941820972968437049655715379408986246619982029588741701147019638995819492762899973730422885434351150028702196770730770593631877216634686939096078532214010179007451567546085583632749962910461225999900694402334812937489278172618140580926415300540372630747592125244710428841547188747634666281377674309970202698039140621515008201030808710395297294371267196282394004053058183514837713696912132902061255604304539591769089992630480624435054149770102983400217476893089398941652502931455143052951704882419539730051383718732834312136486568975814924667294553854172228401572091853362683376420109694481393932803896104400134057870445949217953042375910986990800060784139173086969309394165946782634042295212452035011815978733432624091570435574821674257238513361696447425148718246320984773782475712953549583581106909345742012502441601524401891034615265965063466094868162785906475416519318740240270196542003384042943392989772051589466264646891642736783817500546363577124700078901121692420656574975857602248377206860477205956282612427859463166916066790571255241224670813488073748904842315324353104077568297908081936823229585329160656870314474183971943976898359268967588150904369478301576140289569717845041666732331766661494676967021270458725973148328369399909689412478345364964448164103094439000677912490765363995994856991538501399709223193078809849770664828493478667833638565161969797455954186848226443639060571666170716880010309849757812845411102225822699551242677293296843584123912996373932328947714422245582070654161174213504848399911889026384754920228293436493421224793951866464411895727308511257362576203596429242098243658347000990431580171147999978114482027560969364472986727497161791168272693084420542469276233060325270913984030271339465928306615623782014371979730362663972654456580712924870660052328242627098068244098328075825354765720298177809746712089250344721041914398016791226262150274578025428027094034195504512336707631459096183361632418531271276538243653265152724426612388895299495553637957147193027211655701241138068259412086850900806239278598655309972956572560109994991919535443442941448039108986381980188914335371488942288780173362882766500056148378096196212834795973822709840110955580440971117753723879337893454071455469999666230937311382986322202258612395622809422309033703887070228935134315795661033559684688441697646491351143299407070264496572467064111485437490755610012416006305186642594226487851677431896702303034658090939350019665385148282629528576888873676681442406721812872541574226784275511547105175725843358954883997529638864118924651963862015209012170654016114200762574796142675311635859201819053419709599247985752988240471805938894072535638980616996318676775012425725741935653498218259971437314790028570584260738673971058622062697926693359293293239552186169422238470863018356271695122525580641783417521362616946292493649202010594623719538910751225566970917258536069778647302361418340325542148313532856898974645080856552799354678281259456874064006777495862587916879481499489800502984608343020996746121860773833540126946775614109719388223624768185400673650188854836757957778799931593454589591944588121453309888558015648552302046711737103722984037703355509005637048876884544123894609493902139085087356131966000585080312929504604946404400515487535018827489929379403380456927611918729607086775715703899909869705920457617313081642405037533719735593821339027066174197157828762829686818932292431227258427055928748593937756249176514023394768826445554882975186616202091256496258644001356305880997876621722928812369270338928086839986895947341015955982630220870248689326362417171410468009635317134804035376664982835266855189054255906833363168363237311259818882657130039314513826681120943555757242226360028866487946050574646766835657821545252443131956171929246569239241817816412743869883834054421756837653693569849497740274589565377865307353237329196229903770519219463189796109814547620687794322511123144508398203784555879325782999968478716308923172474714094203402441600124564990173588920353536799282733213454769031266808268465139664065098500778378636144521104861434274693380039275129500972718288724168186889778209294539502114282095337184158390250773184566102328610843740727628248531259568712686510448908387759318447355745082473007536131524353089327797191558958748317890155051996425238389826203109394841822743374264249017463309163231826273274640501382106308475824999748824299864915070859467503807752961437720550412804853588733150610442143194312668047696793783280254646965733120227106713472021851508421635545365961079596767749650322739332341845038403902148003254455188451735889787569102403960016778323557230735612366785497689021394322736737589754746981878066397132427191365711633613945358301728277949467743039967425251934395926148147260269671844882276215634674147425138534380950503436423778237945074231075685894460369017142720966324299040197149299393265484586583442118267482206445042412227490997183989591995571488620688521875887182435046052692978738935700303171260211300601302989568979012294027590852881682607080308876297256470464050592102450326968995947554486579251448134008148994348175543686590751528807252666957991225855416455951483197737079829562658646570618409472676813608439449737959452176622226140078486489112446226797999184221441947117807165213245021404567516954264684465484366102168047594155803185985536999750302854372421826340110698436741588126395055641045899802373799217707565799725731840588444906318764720409583146504521998340644780406096586995245348346398807001331825146822581813314721329046334226461881263486055182290645672943531421482309096251203229463593585302699135125490154706964126540557437009326456078565026011564827734561084839110075044515543713064480466850498058329169897453309672836699952272767793599078954485046800999079755297989193606892718909364421923564079012856066911569284861789056560412314674280243303436312169047522366670105712098781475974308234992706392978593951217458500004020961252642635343486040949099647549342798204364316931060288350006095559049765381392141302361015542317187422561755234477140032545811699700882445030037105790103011758664993235860148409569415676273615746839314181694454637040939520970496834655859678652368136459681868377102521107044542424557821175081932634113336307791073733353163377128742751980502186816031252955758383750894114554233646636400011052542057816328673288877249498284748250702893963032984259895025701386231242294553561722202858541458976491592139789251603461893775490046026823672304604453959870721405750575618923710050639471165467961160950957775016048486515550917883911162441619543637055712054320215525470939139645211003724486692837647607494532769369290174707415330352117926903276187160689638017245528040786209290960811967531370047552985267051123024870557675470866896529712504698100679115287178552708933254171249250527700193065959528445425249929496016856703461700702655471689294528741916253130233066361375521879665018092150125142135922406269663788269656430026953225120012087506345373131643317434434966120907960783353722861617183714159003926361769497091283414330056091866734566516428881865637068312501724200554543367509654732654769706368042045427618939454277035840128822789462938382983303512702402252447161807933403098935316179279082720137991089209747678619329401897428494596382771513815784483848476598662801930680642184871114214439238334513590083362197718933456389315097729162770760598791916812791685908802469939873803790123617636851543124248580662512877897872198176916592977250187281691706921748152555018116781125217163027745873469493756940463929205507641157853894736452797698063956227803677437177837193462034214106132239536218727560828893863501949894538621786032761954294595761552929788837796104160818676059925492563931979586357980439848530696890662857036067268956628075024803099089313246959018986405213109656204259486520830802634325703232975152916613929783897722316642755469663061077861730164958957946729593822564279745154119985278651365007635333682952930485400120574131243976717958266313500344065276768446136304501709336244259544629649479288925481590721772068857867785742029276012885466299189372290911135446826290619346188576284213136756885396069510449511056664838194953993177533911953086184000189488180502684828705986435304118456421065840393019064871685400883612441214342720042494473277801793806949949070076164905623426904072922589402649060382615131005325358486851207223811608517564355274364381461355338455653654904832002232986114593646818005970321908109426823610839657094380780688534727781145719420563595669344532733797571164754769367339637426399850223385446548042640779817238869158965996840834868980638900382957309579183277055744628336339781105678148548929658911586434567102954742565875109853884221466644825890520935297968969863496809938217442673693459632440752290220150504700870942557571994165066301540364339317625726841084054454968098019161929879214219515448993312374408901545807298178782965309652952583251056809595675986646091214664256848451597547743887643675419324075563259229507777798215376655049872371708460946801430448061873282770115370110514487057963564573121586959275813708408115655272833174015177179051017871039980134982593889494829133622610657445719475905962896202176200631883084574354475097127353331164613675383496094871577392961329187339449292401610812501289203879788396368178157342607344738350834759728783146041121697753674900143981200612183148812342397125047206489413455550867726897750165189743246823486398856802746495368508819720434451437276617581421427856595904951611818096647488444399176697866324756566792970037403017569201146456885326147790698913773711185034615264613037123922664593384342062354884334004783113115701521004239589127562699530534459783473482184738324706026626196755703182690604561455013279113531138540825658323775097864121552727981410510967343542936622954247760571746524860067224258099193785134889822903929848710370564612874449686846260749040156100382187189819864207661435972786704537158989992317305371161471565110067682327260302206926809669692926347327846656027464857154747713315031337508665216742440083132955549269208393323555400547063567236950359332557576056700901750074024458597510515099147244764607508260452585009970887875374105288682159539719951850330412311140739002437737095507339531770206097395815569175858028121082763880013502346970217618200279352328867515409335025490901658410937811367038487073095313993437202135043565217346669503106337010365867590160981331893798638117324814453388812608264466875681214724177697733548001113441932828700573110266246414445156634344967810100184339255966842484132380396903169028747247791706935016050655797238662694063656468217549030588121303548774887354172717018259150821314630449438721201663092074920929263086850237609937435050726114660342768971870155457860135978323167312278238030736855764902584161074077982446892283649532080006465217409873770570180156258787999881093532782166700758970628381702583800364495332558959743014030729245125996441935586641150563208250670071904306585302619855735692631680180172168674402592309750342672368870610474465931129335522151054495906163406822547882794592870652696703831339739061838669614980588101699391678355625762791988620744731184424146283774589536222173242615931077894964855788963374302119115732586050307827691086345436480065014447693291587012178797560691088114845979466260136024939222253017319858511068382922641331760799157265718335393966571853951676703537213253385785824677380291168443888697374070750439380285941155368144344184041813562174485593353380111036327661384641466563170279203984535455844755556438570265024140594417432372336617149169796685688776374846766464843472446966070364038102536849395129938826603689663785161306797714333659405425210319975267030690833710898733797296649922460637143596481929955733106999126346731947838540943225984748982182896660970422922409050494372692333288350801047249427109593727485540792943744064042259222687509264391241539835082839556906819787107906358478656150492019282059064083640132841001875718515747411991623650718766782808994993870675716714988084948641546596574258976269558074934258757692619188054481610557485189931572240859498988533098582357796847101960572470691328381354584410337897472271479158963367931909797297651733413743613455486595627223664501801294260069417839607868787293261832725656491673082564984470258275514042040011062192682640577625215677061206073488349248879474009344185980073633955087929854225844809247240611317397874755063273769979933529552346818933219582575438869762139569376389611700924489396687304348557030766773201385822243518752242537107223344392449278061714122996953166912495256151450745399882502240082233132408485555047490994561953856086530088291849385290901045279330036733319414938233356726646938321890324524995947576613286097445360828641212144578099549283890087123483167016931753579759195054413857853222098906526923922928923089137198009323355908230667817211873278491980321901036630077814569266437810714316026865481876835480084127531269163285239623706229498475299837849366704455534198260077600247438721288151377629666230857201391856055167312109239030484125556205534696135995877274311747157187171715045010160454047255676394634798470438652215489518729608090049633773946631042485379023609234939485912119298211756346499728553679006904788116318232368415013514323106780848314601060457936191605527707110960905692521623046899754701856645181856056653563977594091685252239932847429726668420623613948473686893996396144559081335914391643642958186379363660956083882049442496339572316371166827425560757789303558418466799806439062201604848555043499887236981358588631314290216941637824272731609035480380687080406358530457932124859300908472698521417752666761666481042310300103657305384225881419722126264552770608995761443766677658213176774936492206733395609780338586556904160845820709542584179929743995069527581811391034684850176074608710075617252622563238748231211135825567625756272678011838185589681472636072191375154570619907831588161620813249187871502680701160077607269962110226282296406963521906614847141818178013707423333969220260446180282440486594184074117023180515228795874067948577141587380731581322348472898208364477129169032951438765819722964557249942540153745918147466462859687137311353759920742000705139223919369862626297166587394949157169374655278656695976020732710439482963589522285499250007160014714960720398136620261606794294180945430962872224422735477788315459102079387919884381098130158431348869176079969844526074566031399184824816275265632582807037960105653488727447242845437864542878581585448541669560688658298767940697920373673574286657468436962020953826149073137069040230075015765579155722487318969514260344268585359921406317565534913361731433005403650906654601943471181998481519126404074123537112203815737082203668010038527944496437506290418604791859778017346629373923582791544430976132378546109054384969292257739592215568823108210215880178266418966664414304194539891285532578086151678194161924839517770991092893551174378388771008577223120635037191143967843409100020096742097849297220427247080719216465374218434328998422851156155713490034119745124997653023076088460578283794586847283119571352739999501426642508815360861499886968183069446950656438914017833708938947425925769249396464912384154316060889876661683888342318254896510168081818845832046566280427700410914039153253621269927037363495035136352690459790337984576290071281968145201461640766345085292045883648784175529299087749815299918746849319351199345112662178476701090356989016135677488550528801518545866534199036188477224352932859997477228803576789715056463609688900058898587505682063904490149527319295271633375351122338710062491728952592721485267206445168179541846416178258912394748430872513028828304993775742091750921719449914002810261918670303774002128108381489470579116662796014029238373122907385331133208305839015949135533854410187862126064652160684277533892441575519590328036574178548673393108001445186214502959487129837319884648631924236353167920501698122491130657048228677642145235673699489231923438562115181462253879804161344936458211573318259938726785211622398820542782528853839892321782184335459845377483693552778761854889971250241113302307721190938608592561309349447449662285405332024054979534088174472867179895536129617681119952914348855488065127169610694868493562088322280518459209366392906628329195265667868085107156886626108768079115461988870740228531438198146992772419656847154073464301800894575185273846699632917167721804869985891488893167769064258300331392095916584476592194268974788350219388477369813045539162145965448865482809040084391440625415103311057017905303110437527992255345964654438712558711981080052128826453534000520093033645332628677865341404298747222932835402688575086324258870985273838090685113884774436202609934214939623895182797213690129719441047064991078020764303302397574204859015531936956705452294055219862451358273000213284449539812020640315746912456787510149506274506834217687541918536705682084850161145374324119913382924276574005258689864128919474562928733092851772899713881868643330334826715878409625494851422136072006184200657874185537089486028111909961035280109057355552523826014624761032837653538470582367103374906366938974457253765144622908866141074442001195347128383303790761850516589025233398131698965433744358678007513751747882039022673749233320517325672921196983589411201011376873493532192566445787263852318804932838734633245860837076072115146037166797165019095148719148879084877471201821295507752395178912485956562283864446756126251346532781766453927683211944646700507503660077472311878740767583101004271200048698069128234159043965369773288076464044834690088075598184947678467830667387593943308519878728926258704286510127547728402111277363980043856874659297599982341473066427090557986114527968977823291003411174540577837410585799464066997285963327765221423163976739198705934521003159759373915590082949613995798096817330231949507867363654103634692521231761045695753272866157747479291800090316809683717202494804011704926748728532276322593398459852934126579058470204064979043498366721467360135222410183911250325364293855522426502336156107107746322330022660680917177106662930444431832067845599676519251088080969047411774778937764473711909321579933018459683734486108100686698253695322770096841644872167479440970047436373397120847671314287014372667071660990627043841929228495413148280648756139965772131982315666375049456686416620327263985632687270283704220625309954872373928245967475479685883576067296419340615135627885228683796029899170044379501701472250063694532669593760726882362534201259352882855442032545391285517719543797606593935885612977241125360516624922517958418386912164477738697164814860628999883072592554602844099788181520244230788200131536600380897030416959670075075149254338233104445869148362405495466994642425024339331505211080590850242258631646838984985209830321011799913083697966568802821794360750102865227692349853739555086985076585712950891833992713052213118999427640430561860726630534525919518378304356635703866529788708782113040681874193335547843729333390644488410197760460912815378875570433214154939819812578016659704377579563236809713679523923960327615020315367590315072677927316404192357417456333183772145700037145608305802321168692863269991115831366252764880232892097393811309280308653714237708846635951114904980843839579161328185212632751889851715102125358733389679719560445522079800697147024220782833401254349308595735226622879627426000050476550505760060745929370064812326775985779709410967040577172212265728844916605716890131085483350842515541610125391997782837560020322720027019708979737700883756748609097990018921849883770785886351696322990576255254025127413308242697944312415148427031226583766480597257105381195775291556852947252603129534578490231382466984343142353803039013466937674209700557602236524924429490401904295845427288670436984487684262716831562521986122767182382010778881712232950424121962599530047192143183363733376301375585034512498283930555175216727130948094461037841704277810407961706451140066764534081193213767191895569172747342713964445977713443540613382661394530445630526180420836332876803832705031254322045829872281018558103473962408723132162098758249481759060364119669361687177152873136117659968441352716404664725481576295346254671002572339697347734468719037918776148198683464529311482915326644546636891055922601321545531522173988259240448787446196159972148647132675129514480261425092092358757108095524628809696760048946961397683381891394474680710397377261540132549420706535203641896792466558225718452756059328220580894901181747248733215661563225136469409226977915316818149267055247066960987153822438810522710170681518751360954540665529846415416915738486600448901177053588602990523880522903504021165109237681881591269530462279374391139065890116485916057595096500581652625500964463550693295236672159605686393901932288258958202671397536289559819901454415551156522937295907416148102801363050767009911057313305714769644095055584027540423909085346274066325308386003436190669040023213505986621259885642943198974604431591649791223952976716020535242439240970288593355347337332543024053369779788387196539290588947178019361193911854345975391503799655147794040923448337372274391407571863895088725813172897183122680255406664348924136336249446297824439530843159866407595770468141978137436927340889361411691449903459147531973921516412493056343702421974780624476386784907837684634014887778015053421663591418119251686361137017041565415386242263532063546571420762658441608913104588627963609139382272467768349800879939083190715094787495644789573379358382912598310074663743530706421960165509192872471206571392750483425901436219155907621432764990002268219084765188210564680343079500253909027408240295599340102408714251133838227781755526325743014752029780729959191870062714663676699902748917310276962868785216479372991101466509713728585370201085608817714244998238370739392066147653744688211847951954089744037539908663603940437347001088554263345636172219747650753252627637072542949946935755935337372476672510189041357720104156858116277595278056353431668112688326629142795531363505229980774376339996706564043191362136100191376417738145386777513245623271148760064471280990310525046295323971417180399945169141157376193247830736199932600910627450109470490091128200880992356754686508655573687034386489480844350444176822192917795982831098513740079662534273802172336141789208349533508732814810381314591993586954112350223101523833034394983351303449018606032752977261559743038880315984390524823745993105683220825033721040178595111747537151938106471795349876667267442983964338961654413019159720211344446901737397558573931157821407734141964387722424463526600854231659669810268578313492077103181120748644620104129757700421489994629379842239226763740706859129365099690505840369063910150957891968881483161555593777527831796284792516745288550609284476622478244585028767052034106944519768618687028088280854436173093283961858688272236729301385310575313764022118729981798304321992533059851512270371123211754738151050823394580988862176312096711880689610288247246867953016125707600654732332735805120599205059036942402064204270463891192787675425241099456511845749390158767277334455829866113206735423144911982800696654658579355668657942997451323041021833713956808520427589001745985567576429737845223440472958822698519031842523841987488155578561483249563711603690319647246467382595175467817934778157614949004271531536846118488111239676851843081281901440246594975752921436538345684471004948559886943490316725164040134764895031258106230621275299232790167117890379044840674953228835059475932091919171954920735916817647876995430888925248576586013236887266076519499140229908941249039302621977994609859495495532169182464775442882850443692581983050029837600228415648850707206483717258881912514100901180494470045725597319390764857020616018871016547059250926800579070074830073008171558452690207756937106775510197336728713346168008978517536863279748650729833802370408541536588516596898569019637000430449450595043115615086195504704464402072445898903769717476918469864649493838271161797125067602041064092467589305501212813567714015468309120433624849025993047421895773713316829614065423524124442616930156530961406874284243231309256811345001544296264322176691918977437239586225203825289911289688467973378362082685538683090171030195837207929342409230891380605543159716583094193377841786944983372307835647434122521406266962119349569181838171723525801291963957597945772522963560833925497510470240102938616757979289085391105561106326132914257702912671029841217990084972284110753426770635003539869926281589793405520892367981636242601202352276838902353988025230828525575335469910559936988784129599411868759986486637237361435858507668688766867580154286747093000397101742617993022332089877679594019100676796752819700388253746613832696204049949259404274684989896129076880199892226856965994286165803349687949475113616333914963726953484641572829224706747600915478892804944443167495023165301878507043978325136108144782790847069528018658590534126071830586983414322221530563828144086437120546457689746405492334871125879665720369549948778085012675160382923487235586038496551917348857429398502853632762266582776493089345139952424123455138306313892639512921366986598609221740465382599829765524769614924230455716400765462313501317904846692070797866583235777007797592841444743038022729826561489600908988801270523504408530867178295041046694049381998720470204405527752118223036137765002589477595443929012739379652100402049682012195392236125158063186674206069523857797771462251894557245441821406484134995119192683810283161168701710582822698992157656916073301848362456513416478011965227331886307399784251442283058390384603029440641860980010409252385070992509510773022169656090969142647766558341861033970021728929352948525168694058004497744569007820506032006405767285257831332557694635592069803466385795531269671411136464048684403955726602476044879776040429775026076134853155873938789371185909290136869889646022907216748863223907953064974178611161239373177543286367687182483862678308976910462760063172640601699614059558345402775226585907690344806368699066787566653688036578179235966186752368086868026134699975313063299209474334854396051562399473443381413993964343546860399212935227457748819565920601992968231631165289748933364585448781694428342240759788364690175749096878925616233441240369159638904921874421100513180111685436532209229130048344849374384847717437561008628156815855119037197127041427609509567579975041697667463257928171340487864909425061394380469759497462068886560377041362768831802891000163494951088502754223652979191410164537886645492448248870226028248241156447620572101384424081648676833809581857945364843802494094952978239112957116228499631811014572694065141309124512203932738890711260829740663541798824567910773958184991447846649773034150473375145806732124831833180595684168578306324722642319306486796893219496988961245891205286497406539984912920877595813496729177741358360222223915081069529621693427726711221202442396087565319435416638636287587681149254406214778841604091000329384680637380850675890712144709559919059902898682330673999383298157771288206729559731963233895725169071688933865922123387870822385734288216746899098270879566859163560638611446886352783777273448641921611165484327982981394630753990704689418948578842954170626039471521810561228168517308405027455442239599211547165444465187460783167052618602985871575375284583127605364140692907688157150471563838077926593961833837117399797410286250114454513040782507392574000909885942695569643867831140398120550274239984005211285486247241754498706598751110962867830234735335716999523092479924074142178586376962793628722178985926246883849489495981860106240488868719678873533827708474740136393471186466251381321301987502706849030705790733403337983696540372941733711810092934077858445049732074400006105878443473935689687384720842838569026620745955707758981114575091069877867285244811637952218127453266891411170346245154331460619965402960026800699751636569187288895806977365100885582947816037368598628651009426354967424288421300196827704220308309690267015778673881150262690754260024311089731424069267408794458694372692042751214784011286392562542599630328879181634570991718617844402151423110679465849583905378271659539881914027045289075582817515758992369806682261348019745257911708395943601009968296377733422898531921639910069099049468408910459464351221622993380651195158512395218777502263108436460853220609873255162045369537306188223672633380108355253676870473869838661523420470524186822313842245800949819632378245003228549195546653240482076119182574479029464355155398160799220463341442991130212634610397442773746182301171074298820780379719715606313042758269283092779906837654156957504649626035560376950851303460605150156285495864281744838717823853981267478317316049808062966754449841339455484448834127528772097787471125446297116960145952450042292567740540719851872926900992980685927133335122199907164255390548705792550672532490458514116890941787390937160966667185004402112723679810918055793903569503692657366855558379362853177143704149262439135219681766448336320146863017158685969197240690587218441447517864139605066271976182603226256438787253910617297867136777926513672783828101890801240926544050988802874194547343631792656998703649848017276512360383945528399365106801859563733270595240884672240806880316027688410540753638232778741976018465126025721966746933411483002018856312607168276343288566286518279801282973497498135723834652726480388606803849137593545725965699072910291255813858796738320011779848265140851978815735242152993002335210785378331118808520778512760568142310251533299520699119790807032951291912961508878146935099785763930657199803455354211486500647304451933114355105949493949475841519996122470314932462953133342765837051958470853131245127590707706817194289556235791567585185175869069513496136461821446168787805216550085890844753423276459554026140654936802091072896268655618743494867232930241373662850349879899452250361485978958009556962595114128982585181492793557112904991339795900647732581277395857745042866234678214441153238142241627130939149853780008196260162952749816360470941203582952066226728049713873883142398602965477104380906358628860075240004549469282810150090366892365266879168469511983258157366907139956529489178692476212504357167378602019747548688103273751179313864729700503403623395791800473115804601908456903545360051244576437331043346251763285465682881837634616796233192212190998904447891571397814188097263108177696274047938673874531809211903117692654496305324891768270391308040446016743536288712731597954877281222337751140105023553178493220554966299729419512887070504663473313134645468093759397054244881836847368380545181333426772969083813282361583618819748735856299046477975285701300176745765377196506401641250703401202828690434959307039244648822499243528788320203711183851362938973460701810676377225205535964760405922821407442552524000790823975661034502754619955164466943860010135911967032493690336991997280424645740346344622785071081683270967561438651419623844054551020783667652814900042472225828403438665078574793295623849189028015698912436941892797883120216395319277746685891378184637846314463464920764226577814932789231790846588291481463557604727398924347568438050308975441068254798375674738612789558551967751426603718407836721851420248786486700806490415897145190593870051646022451641705472580885424098253320922700373774044981344874788567457567678495333414866258590533545330298535255256669504699251057583678514914710414740174635290000363855724379701092070885477905884365371694377619169221202812866403527990920400071196970543123144757540027484548224941677783658582319710804944580612393898828626636669268660587367831826567017319056730894366198492966222520686639865165776773936832871057532488316926958583345351775580774184147810777008999160725232464407871663458731077999563117412644587653253877042309247279949268329083307547552965121536375119332077065996669933882415909505662599129340879329386240009705885448962034812150178237190210357283078006435601281118267458918817186677276306023359262416543268490646500904464935569358751207455509548303516291825951678435408356681881654875306164618167156596347675111234034292265344262464268247782244326041940119836102754361510618421275837670279321588848257922222464237881196448257362082159114444609192931682109336940450191984436176886154693502456285627103397426763401056335193641986505125972159492239211467286383801996190032284798286291610849256144511793210086515009282671195909995278436524883504925737906741061513419516490678694740357384147953360411348568468937035725657348744633708335999759356421127834541499935228469394169394558314928687529636585934733631780221453690177896998327773025169776803190205876822316384674785269899867950157810539778421931897269586993580136799105722250307059332118807808691180726872066199135246946294339908372121244473547954965773300927276246652523097609066640907930636311264386772269857528624735371789389410615169848368984441163980617109060332059889912691188536518338171031345090463877928317007276224334272806172020243769765013020952601151283650275496424974713061677907385845780527887781916033272559465005018977797944005825336255912759758647980258955538156981905650330026960686458809802952987907408826045649898112077017526825919317056631992491182492951126693998840829389357401872616328701420989038815219742618055294403452336705445429245913269846365763174097733660817117634252713603201899022366424998249782483830462678969750355545983468416727091953987195665964806528215140601209672696916243602500499031517135639250344877307397051049416601000949216036302331320778924173018688109066967749008937316091684798658712990524105583145165795210207438671453497347120627720279105420838091842420501422946227483709202560179883903507177106974403448994538866873401772287286624063275146381281508390672812095346223590947994386538173456194406963887370219204144656188558157773049243442871973090207453704087993122388470684444837694292497325872614029644213929423262974319952418613038527006424786035181898657433362973355337865575305833884472167436772130607151152882808570484976457850564016045774974571311865356744699092618625773080654165023227827793483253512870058014615996023102392315090909233371869195623954160902681233512778859148243835362762964891217508965649690622940377409565341470351929638118285130894847067450242057162808586873160484695781865714115858574390973974803637922884219252922578096610074973639379992329818118447170718583704987885170675669370912989111818143892069207325108502850788126729411138683337432714333158490739799595467392444917739275830794180062654589929143925146590857386202044211728708507985266424088711912533818686620957948165595280167413986470699477639399575960602301866125630432472023792647950185131401434528345454640710668559487895513487124588709224574164496317574128502035395073637260005751662067154605744401255733731180594469367516941468054066471414026969388937299084315625945858272625686397878720867872923889476531627578309605210649244494822546961851973324256015530052728303921800407713417032737320387048034671028329581098160191078316192457269497406557587050449236558483587765933115761180441627741745378479396319888563321484302255913399295880096188455718403540923191818067896888253319612576801109639588962175047153031847284043658639435717661798171080451781660726494372618144839234186834631553928149264045273149597504547080928476115213699864345873076468589586502602504472612921306281046835686047119874187120748446006775510816749378407110591409684170404256878760646386146965111977297903800118675017779478168015824659518995332204496012436828308232445399664252687562010575646560229620619374472788031885095168688050987852221852731727379373270681768891348918122845283924165136749773114010897504770624953651816452274821028443403916237031854919440172659600233458494025991340888592292894186149927218209889524325897822561801535093513186789308618620591870636966491980048836988386238118714931795042274493423496435286916647090181623514609270747741370193300941714985392930844776231242139907039628125919560275727796619244079643487677188007550303828931852245916176199197439692015082049479395267721159133061761122881692204569733617630695540222136281071619893913741420341957364459334071976548404829897069331326682821469204321613573856711718096657605318819662835946448246011419061692233932645065626378579239466791447795079095036590362867786479515960003856825953660428484241979373571104204842344461645106858546174628512487694895290282885600666658945357253599136435560292540094792799602956558486081458096246734904056295079528205208635925743540598735744249595484686770281762864263376835890965793400695500194357395476921240453862421124375060821288125245008730635420592961931800865861886812218078832912668188193816750496756181603520054758977535526681690183225927321676844399587501101367599355822647383243578527482823612025599435764086267837657248487407300926421931998759481444874962416031593284070180152213626492426820765242856743581866605494459722392369019651578793550046459305056456741988494111082750738094802579018764700571430906136147844422883830983136210308416028267513378273605418062094948647529528557505550917191111164187195898766462344441891980827740945661042695486056748101153391092045956228776341961330747377266427690590465347974976335674361530031627305497301914610166695229501636664777670441565675318695161686287953926545976184829462718121215642619282397712227440575524889209130431543752286616076084395074327455563374925332362650177307417450192284917459128171185440688224766322727114426874027525900117189031227614429576448117481047462364835189024922040100245524816674651184362652311275644000351520524285252232068910515710519941885856638332782569030673897112022517002155646065855107978664866717930089256834857574962201941540446372837466065476911773882173938163854943775740443809327287266023738470461311052057871433837113430896917192485988600536319265711892298682581045216342000559279525565418087988122763776138686429933711590779961298717732735065255115581053847832709895966585516326923340230833539036005640955980770609110550556880622455385494515245832431656420939412723036355122652814338976078976024490220535903154231312770267148115276401024104567170982507632410743775367070149385408228025025372417168854321409637235451046670477685581559928781968537980806522763004531145784365684134526354470917259935818389079589226468929421989268762411992531535452694033780524195951607725661764028616842945313108298404575009030352218552155982387254032928256193090147354116344589935473650175176717938080421863608820010101362599300150612146399211174576949227230880512359581466855998804300896775002914681719464404719645246413374343934869644009936962119181565753091551397494941554486761234783568234768324189656758679291783396524457775818417736169639000175027290128923070377724070595431597154948158243369389952131764932332209356537935601710310626768536553171307353699447509427477349645109788098691826498351486226873375923939294319681763871527771776998024570282221634364097248112654548645763686900078362464970372730262242466774175946491273629843568502698935100528536740875448391736066476064357946260438006801212340670422299866641468962317155759839666275705881652780623873718471310458388876425304590582079451128237280086361155271342350847140158310852593934166080989740557926601626577369487566090876047022120006659592421303161506653457353427360404846131381264745854831148159595985003603061336022273932879593846570472247394898830278240032396189151174631954393330994284648872661518408359669199576752579680676663087768754442577756827571677487736813198416193317632401055211952568675961023313158202207710207693938405198482136873647422844214586353924944584862576543525572972856518810997631016401716907859743007948314372365704178728528982616223840573214497944198161506502481138258896888478953277329732300432847244916702310559676773822348296942540256264486742617417741296467963416388114427651706602412867692965578217122622230436824352908006351540233883607278239668738860565726981322949644468576674891608422408650054485585548631372367428832026131241934746557500762039146481432812665390056052319408585789963936922623113388075680287970843109530191851598096073529749501729715539686847101446858963140884974309752899594794313722720012371086490389343096411170173641501425445335680479884002993292341445359143852126396301293004758129159543062843570175538006601013746149821736085623115913800346285486505799608694073337582003845437050145928359268969355385898932731518441734923957199276377236210943473748844109974472110687830421083470214427161624486122387527969362063818311209854572095616109590944579413222921400899677790553502014858669750625401986969089877626228941824095337807692571635720836585165481798990775083269524104052279858829431195562178477826911117595828406886734731007215958382620040739177697525956713857927281719582779500161561467264120145971838849681779933003377773520831106513684630382044581818974428141010464905300985316513264297095736667239851517447648951164670931397418940597720481648494654500569716868624472034115322731363156136517711341698914311579772782152191027201555852244048930822110492732700400263458430388191880052302008501567992016781428579791116377755382468065010152700501741474877821132445926809615330127901716898978416774585141836969094839419181055490207492147994988779812310166107035644257390653863122670446588707939237073186951308173120951458662865155826881077400886751386786062307267991825306673580141375355575665852504779412662123213346737647198483197138487710792667939706988148052527183814571731173110406528177459729087440633594196799388647315860911068466270828263642065674625679672683536069590892415661943929488308626243875694194520181447942813065794218838173703091301141949649381183091948323928731762910895976296341414432957753756964242928686736498304126174959980013903080369037036557774326176437068582211695106066338948593848734353559635104319040949871504035540622178858499637466053724130035416516736334690924048478737819089556321127644875290585060137988630142700614698149359154938441336695064579295938397019435453834704235168296071152612534249953155437319440286700021308584961240630741497487378652905378604265902919349183101429820634803673769767702538917617953016416905318754784696682162075299416464898204186000197959570254337659904680432737170925338660419529585672322968122089292599164580577766843388330093957585213742633988500559585609825935882621023342978621315691408997294061747372816810853276760187196566035477589667018927388717039397330648749627458977064884230738663141923761574824371460087509909907385652710983325976472634875734241895895555746438513447959544090495350643409884876325453382211605223267559917721130993065318003046767889756796992489925072723703308822929231838542217158085194460753080404119612041780862750990187750437843287123070398033781687597340521758241154911323899299268859209759336934352641890301282339985591980977780331702448411627134296626282826930443012181622252207132150455036891730445199049546919764970429969329374352608712599222899792819164807419017097602617039424522144600712480987742973303136482473510372076802953610569580554023861881285132825950630088151671607320514063425898784046493930069137759190128901487936317529754039522202788656847966190466879138554747523682525371920211666222917873666922886031977795720182145208393830944278282027225618372764491428203259597879715177458953338972807110947935824099943390516554290513946219539243379108225640359312800089932388633052839360003464440382383397842844740065161546969333422131234856181201184543149211599670512872018886391854265873875061350849388065976574784951886210302228303022386790483169453305640790401454480426950573550254592438244373624249596327824035919349026159108585702515750936580924414417408652111618641699312597626829942663409721845278987427648700294337455117141744197012544665729606480927113940078046023245749487719898266973019533975975551068879684978174758351412327235966955710776992717288956631148745996335354484166167607042971612516351654846956604766669897016690693887872480501772835390627558923647208883634805719968982369478595957316476050773595982169892254329370137506542112066068167258430114525455602963332729565158183204230047120589752646522758258384894119746550726545164764243544699772310840579411294090419729023697707948159443491442966772983653129341795093025001013557186651424664587718791297216713507362546843148875764227014825541736547605761859819440782259307886211618633130537907642838282376695887846972348189727216898860024042438970743939646648998485565790784519206888035138376609553094458310322704462587476661549434174819380099255284759074268826681400927873862265928753343658951945248532878133334756553049602369765883060036533839664560281609714985302827690170060214810243554308734679003438459023053292302811312984035353924718075743380887629322149341219705434972186742177540075805735075874140868719290310703303050471634740568969071087980016681619593065375403442299060980402745896054780845596927262492921658084641132191835728858818215591544322924676851325314478758289346246937654029493095960327595575085359096216465942899309054032592410818396863162237786602397556112742848187809557161554532758382419748426650510826880485922904789126772764703300091346078047397315068163489236087983966405929132524490479684014316811539891038348631317000590275564532377239861482245523462928195410093734799890371181172193666377260808873854084203105191338563802260815782488561612746088877587987933540178353008453901757773207244404179148558898498948751342201323181746860216735572883804371828491016716031633479641172686820002176247756857998267645063791494238169780523994434049194027339967600315571649583211022264439837077121243874153323888670462160361042030742025759887152799448084233483259369544018045025626120270103467732909591629791374988340882006529265540071079770104547131663751973402465278929547720765667776515635281314978080684088983970831577963623187494547572733233426677099965704625027908174436245044606406030524705116231679487901076589380052286058843698398225331028194279704270424132513210728625939118779328246070681699699160878878796795715047570266655286871409336301845571761718953125261197772054162132283984918936381480374143538237077965312815631393957230190440213218218383847898669857069226784070575440346776379719458202120317107355162146846934713273075821996130492154811789985991789724981137310492767828834310116700875063399393864604324328787749620904005019995594682551902111728920546301049224627708542336590797951476972849056822998970604909876047874288070756594896363756604302333426433907966166149969528728881907979373066493994586513427022825754814724684986098171117818496871527214538209640246351188328910111139509604254773914432837947755054806135245859057909868541727407931561595898275835833305309620098951779630404779488812995888349060178125695661385593352954289705897232370266373901623620921644176933387707929297536164353935552982292385741398968783662455599349580559967757980469695740585237580299394801990461503033411739146312553769748087605627267563308807489552473593733922709473389901893635634580903040204811416433225304525336998022397801771879776711512736268343679002592685064964908526047424879254105189147333323540660708194572768255384731224769020806033440486668493189089517541041301879570687043270295711951060329033461503785707460112905835023010881796754178419717069250296199151950667313885347900440932719869111941105750311207295225720496895282130818051314447484531651899557012589575813839697785313677114675800375804255049986127071475114969624624768688652065426313474337479829666917353448473110149155312794460456434061060914096134018422076177004326110694296455030595285590900407221864682901401497778216276564321912348495612442160743827956535900453110081546412377067742133017677987180510475413047868537657720068761888260332578304600385333521115528720355078492858970547682718199714721862949846447561486787239686280499535179107198090440246942136460394531674088193585329191873687742557152596229395207186942501391582935112508489287411440385665607458840756635628373495445205623759199644602021716485981637367995532803280880609597546747264782736237119888074960893881869267439184160548446332640510857360276200232263217913023970301180485191615952063475974052565715044119293050313590760373867759335183483049823891316086287614500331392075775191494212351468108471189197688368353479367285057973965760038511927274875604901362276747903202675778961379466232326396663777926882228433847705980242729681936273528013411104966086555034411708723887746864335175848698974047407780377576862265719443682316359258957604522016322124593890164889663173016893039234057161819909546223520691161056282331838911013235295279745847912214689164057375791193110462486619687332550733476516071625745996652799561826028295321504444494164888556215984677260600324819213444552546853986979994143360040313372505618589920826512907225094065937470581510111981264655466298150143150563060801495721134393549932999952239515998482862097746175241707038995444194606094970704907861438910763545977215162069189532496660822375629549261069477105794811056481164691180921668375648096365967040809677239636030692278941628251747595412931880364226137780113870314921516020591318204623564721252456475060093239184461681417088008576913808884081344174997690411900364373704872542363293113550947948562024791801828521260050709123479299513360374918990507678674341152586633621695823239277174911974680192400127622624986967001966087956531595482409648548155519716660442321511773647778573704942597215307390841176347649910232308584199079517196388303854441274131903437135678213482058510114559726031937684282187529448791720351033545637613707430661029059559030926875011209767444978698206020207770128940176779642718382420810173855557060233696665573605761561622375410309434995573230635515638232972479097059949721413596081349453575575457097624104007261280288684144716364031056528990963146580427168549958758962322696991258383222626543290743297583942842373830056246373959423269495049845880734811912871425474082160886561961053962245981851678163558865840478255144316621858630643676916608423474983378051488625843183566339593314053944004617531457800413482291616321331170882198816719468250050836829225850664426490516840887511017645701949075253846889145138866046512940636839531340517875006938238691341175962472747915287128911234157301145476348785008599988299688508811692391671800483999831070346935993182898583483701301746916894807307631095681149282181818070894600762550087045079727407910480193376172017210657483915468298980721377225642015286024077806179076013425827938328758076572900368547900181884596523563279153345507740731457855100535972219288547719677806501667369701905823050429988325645811791396731840011950690488531213772858010514969127978081631959124620851525012832965827829570986944604886662630024085296147604418529004128194056938525333625612193523241096990074000989275785630891218040484293801181019992419655635087733076063769391755974606658796502576563272955158804290559742650092652236749254799727448213317734193755195713636399977716724966843242811373973351121736164600163544610095640744056261708061661316544975762869397955530027499758371823462509051530401808620848770480051121215828299065041131771563900929626167761961977339742041743517593674503409566327702085681006952957867172341657734177230355368494128499835002930898994468062862850065322840212091014619931378689864758296997810869907093294216313149728584124648207199117271455795968319991349092810406658047495039304705628901905052389205683299596288588637254198284765026668542879090923507631036280475807511357247672146676180948574367173236141879809117780923556154744385669102235263925645693520501278617414495678379576082554070676815674874947275453978590941763845127225274479165352446030807479436956142870705071238321875898737955398844317592472379638472956339308894970718221021435674095865286709314199288431494434944864978880950289346904026025562842720003045212019292385349420378473893520650819025918729697227335867362660379503788478042555196342782939477632407112726716763453909809743690434127957522814609798384930341024397596223803378521740576078070937899500039806715817132370075083639443255685791384312726000507044948310107403828001497583629211697459013583414946730169608588024648860046014164061302667416828743834922261223603601666642109297733248562372784313003123320924635533403293237607083242859833390733907346095330633794136499913575429250761237949817280566004028533594232053880623048535932920207177565279068185970605419503639999358760957946187912985916630946559027964696241637418499690084313655642766945117977081064354210180489758606551277395411681257282350372368881639087866175311682758794286071256619647625711222715624716270054252752981747978113685663632327383624666299171246562120112409803160765659095759658671071619329805863258625788052765457512182907486057329143798589463292385460096699729998543829519743569420750646037974738388282241790920083069378672103463825478335433971080383327636478746744585474744522579554757683114591268873672814428022225363895911742598557146815340830252841189780485950992950828685613656852751985745173614703173754327681127149469089049436030273907177366575002908601735997523354510793126241837458756883716779287386216776022713309346882094133113210922251994016278601635015383346294659261564366356440549959740097733453178018671908198649439535100636141964776534243536723942902055443186601968016640944946933040848131050372765967818718337793501033179933293333029487311932854515149588885245341349933668021690214676366877147895507533587288104794822272903658047080718587213303182899637161248026552277465139984268483171688453153907526027961702618383504155637634424195405032643969046479244408000006356580320852668405451703338879351758040726228552346523238818318475814080762127087343360047791347356065641849913698398230395734476642414345801209425143417516439367371200248399693826707454755589667829541226523706793074141850921021546437385657606595078450479179512714706063764761756357772861775656995440238168571796631552655794772005988718303966231951341663894656852415476136571067643747726154509219183588548657276499090722190196276714244998901131364925411208337889626010600890789218630014784461091244713280698725659961096669721915316911409763927063967254065711361272623725590553375406020762022817834808286489453610920301051024851362751049086362951237541614057514846584579080276162386886877852202574617306571985030316383701682749265863044235093853123062606266408515702889034963182375315231474948856407522601389148164463427024190156377893850510397225007209314401048070078864733097098043658423408125475326160904253994095172695607709992799012740828634637889762598222937763330536589042615912999319087640319014313110852661913543015612103861546515649456263573583421938132687720638415043491789462297866742507591835495602104440078250972619433243820677330958337430519005769068442142222939187172532306239610472856867006036497470971103083613386067286374908121412436907350374705531280340339785986868544750127650482920423479972920914957499627086721289685276433506829054209421978329020008895961951591719415600238681303660433643069648009307251426572835868038278938136544990150392318744243663525127172043195111777200890390197542630974795989515137926950097325092977552178271934745745771627855409118241964383384960225117205191507448401290122256479220679838615592005467706570781127669222506015829594290975083259794400988132873628286966243881738760316711431587618928872970537375211449719346115935031487382873595959001710488478039531523275404600847881037261422684061994762979094035753243358789268768466365349457641233892303219304304760840966371235405748247465617448521127401880632966560154597514719292646944208341465009719227381272005402002845861395869883062334126757774906631805453486679126263467377389088776490657818638411372797028796928949012609046805237155585385636534880233419514710715278812212379779633164148130259780441244773964018912379077652191027926153606079673352604239467425924694148094912770050225334766659103593986137681018208937390085347052923648744229292836527559277500087241845429281153947930712854479518384975165414889125079743445701007832603367533918314727790968511809335250530726838169860248295341824413749406522657696606668280454439443194235690949115857634170374797153452524401330023198919730071072085504695411927969173310273322580823454471521828634595109952294161867554844361061793865695168471360615980227103933451208923041988437901134058920236242517287517534648740899002578805093159449761671707547201119456117004137103667759050642485564249279385229766505018048274934174630746128904039923452475878392877440176941886252521868672897317787035003701671414550256020023645963488336102138400520836255795569851664256287964566945136835902492862557987071037236372697447828600102015803266485282232825674212537328386136107871816595085283108385751830592235919314798263925610151115514504162469253811233485669305997056950250180846810210426810844973967222431177615143530139335928050224471789458289631259994808353117525108016882170632089092097076833600274986182170490061547810641645686916555378732208413296273023796627916916119993170394433768901834626871836811085405485455942223083278735757509046568232838003975965032068418745466229582405406219475106974158836357972003450029460600581299441165592532755664365361577416439197081906320507166747593851555886641049571014605188435578180354336904132695784270399087373370391828769145752027299012524925260386995170479954814279970395485232998479066515125803478481096038908246831963193567346784441446579365080899328428457832966718110122970901141221070168774606258713511159998701852579195589112551293935094316532281365009860150956041051446734019507326804400729744150538699142602101420325178186585800629774533018888275097397988633036950424164246099973583715707756916999490502222183983381452771787387421815833757608611784955869105649996318465767814569498750671563685948053523365630035940661751660190043082958339780733649777755486509432669761332446170052341072860931038529495725547557713488878663572921651503366369317602115277921740680123031679335954571312075331071305455378626245361606663108601050315772315294582389507488241263284010776737030024732930723613660719070515049035149079595075610034077767561200896090023286000329876400965741222619959916178185185955388607656240331955895669015126478526414743739361819496400110675514504824465956935990835772840788042260105053479604756239107192246516569604038755253786088372509860087697561343526833108225533260434072281475345060755682756107461224576716783440062509818819688074854377286810770111627578146778970730917898084163541059170961464715147157799533973653924899465042747145232256870779848217301453614578526805683059195116547363283493097365578693810913813845847899405634981476568543495029594112654536948772957915702608831021056141212056625187115154322670338403177927755426388679050933354119468221974841600187068077454439246338994947578244011096033190995617967183262478128873201072878376770189293841088773834334414166464481627149943332479283157576582744307189887094324379923614142448260497769578970369019987167914005453096095836102280996903801532252625308269747600554111127353977567432325394286853830154578601752330839050543825640145429911094533405466169459688577412110186515991117628412033870310291740062860287348497268109078221447094858847625084655944097058912848423950134181819276864509148757430100558765479098469254105311239799815793690717178917107089193824641062511881210753737120094439623627807812480006285758469524589386299668562412836881618171844111651559276334902626800507132018714403866603487235640543854982101451261932196465122665873524200895087964285139895807909358621411838963727886762096669927747056272225521269406204965094060540266615888945104061066797206734098163291307445424897517890918339007170547289641599479661450015491847919158058073586935215992114826622007484331419173661316839944536259683100729007692492051411208584674992910092941977083967456927408067183959496618558759163518024674510836882763527661998647473496460189294423619555564582428229682710589976425006859443906573747995494152011136155304775821268363202603438992061616970873613599028405105005458747357419342057346767953392611083454985801436855773501804528708786635440382511747874348312502588831867183868635818629311477697871865094392730568968503137135872102124995383810345279190036774801561029388347790224002203134821816697917407896671635917906917618765814899518619777530657055218506136684139405452480020692230372100415708151834632045806512077509571020211250452948144631093119439608270635437434736008656295586541853782472285408288418405067406135626252341200507685306723690281263998058031531616901771274444500590465798709256119727579926576177761446496911556291500904974504494822183765523530286168267201135161695921091456614269948282253138644416957634767244303117840616383084170668357702446413639247648354775367874745864296044527072014983516907067332118485824139458695996841258944054533645034143929116272251358211770625387284702524464460402595245306930741199495678360848423125274096442526995081475823455643684866173467062380169440155872148931333531615743471842476738405189308044874974748841228602128017078124239891984357613410658091027124734057911255981586441458160606050779724817177492838561125236226817333742585862217812240236477801669963601718991213160920057670668513231188599523649457018909890415363762323281465195348242219624291576549099523680405901350821397830557974511173532264175275580346899354806371280275870433549652027422396168484676933077990826137900468333286852501445879468976350212919023804772597027745307152285888327896696314407347952640223875499478485582921782339499245029275051088015639204367286010282141381640890557401227972277135387088769996614919382189272275781864078276342277115657342693043725725543129146033189230841517668017322547453650947770058908692158507796210481925716797488385660585118071738638396916439133895707464817984626472564908673546556750938996743090218991776581420439312930617149821552516249834768467881340150360169697516423408739888780880595716090641857909260486561367400743146030542976410369816774691854626183236108433418296913858005053465076237693317673584266950815857725813735376409585458268799612228807340675743014015514570278325252710512635836198986236321059932049015809432087967777776259467778735428610025148771564493961649384828666783536346520192691695460670654125905197562783776412577290152317745500337326676671074567554766702723871599801306222057324792360070356912641951004736694982480245615675394134799248703280743790295351558737347531812497768742292666122536955268899218188234000061566072602117068553605531954146873290586867690339383765951002360413329889529455654397115357748527377492581585872501068230243990938935211313080755133702532051570171638228142624254028095544221239187113883479455918227955672363070112313146326564375029227337397469420399805870372970606932720871070208054422687343659903100658630133375249756193010356510990391527436418951776675766558417260872533272620738668599637628215839631015218161976656440122787393139573281820852383793061914581494671733292781358539788504567770404633172244378167293858904347149723129254207364678422717609632135286407445847966472499846982421863614159531583981698922279739347811800444333609180006477910509556572959147493074893060460496489247640458931612510937036451268290584746069741034831952899784341417741677170554435843005147826383243309977599377475074012195014808106093289905706672573732817936242511485742762290455726047232566742572517287895113473663297365725560156066548829531996271157783107993446271593039964287045383255152284591278411707911330435864952309751021875756314162903200241584030240729584281266183707266337606551944770761487371093694603219310465518657591478448174620387780917371199157936060476982108180547697338629263183701861708347303821040386634598363049202143459878932444978139706014379736986017288094039654671611801063133464588781238443662975255683030471269317377909000025647944521531765258053641080663243924415847939054864303906450664096234246238938599015623321344526135540797694143992751748808799041502009269121374979672882025141077016690659332965872373711121529048540178429630368437758976498426599980004315785440007385819634902182228771991111775938577146477457268636507967955051218768455165335748655387470099270904263671696368655977951924984130436707800397170069695679298705908987717685774306751211425903125069041773342805013628531598745847484208411676282369542220694585032113224729444324107594124810207665111842290082258131253173049740185328574321295102077967260509390146020555997556597601893249257390679669530070373137389655344934812628464715009928892532331658450437009421690334017294613166902514357058436602235016514426213514861947707665853471952679211442384357009087757005022392764665496536442210169262688649914564774149470963098196229519020215889926378698303610036782189207547768956882421547112451216002649487070703604631034281709180916014434859523279701283970158931710328064341732361677842860242928783951643120588402678987153312935886747362508484852653410496358620704653255262964366795976055463070287432760682830222298833919776882883429641393829656377168813763915121803396388324778366248362977221134040672453313444405486817861047196806155507354255945636612502220338597020016113102139871543486972068890835259690872212166711677659414952521614953861110224458806812950916052043158123029715386520853797559634603151711658085606539543502531982308258332622676243512494276838492254088311474208329191075224935125018643100861931750696898489717004591501869592311268014513996167507016876702119082906103950519152943047911389967455435815550686913512584337205689935724477578285011202708341253555338300536521186980104693854793421131899731081218546143948983985587045960523212416141680266182114332634391399609170058371971657726463330002750577823409861149003879714301114083309314885719572718309016058332663558326505286638715249415477096492507908687696246434936574668954010885736148590119854445097531491732956671742811982567997485554206840878850680264888246461447695348798793171311722299714704404861505353252529621072406892997917194204568166093885499585115015694758887213991983058850322942986794466376250748969080061137270290673549151167830879955130469318730495289552452610224473297250186084237206170593742357322156755974165164081164216576330377576181552215722532636070388162302181886296116966881141734380612921522277989537116261352460667301037906693855493202589400298837339030794833483905711824273048209809554174870763832621105898099713166690163219780039047246552021661958045507318966919539057922596805908270450429839743168194286635008968674892998184077558514828949684333159557839374207971770492498672794154894415138218586250066507960858387355475233312345194238283254035251585931197213579729667170170876531076694591463836635501409113219570112607931594793698385616736648015726781248621929631328228360939834212474386578315685048552244241458499946210830876060426629444525456315200309393202774338826048009889714870550098475091105178024314310976611144000132384572452381228023449429968557467118140963773251787926026313752023728605850662957287564700200043838132474270018729338055200345355181914066670198721332945986231585414377705341869629652422229789694915265013950425653348168313114897274192527540623273335529390237942214499611960241026049619908216453582254903071750267573262926758191127015662631243421988960626602252570570648003021636545225116221275431828055247128789660731190756455114260216368544124628790167791126280408240008863282086427085915384166541370043506320777977267844519559245482313166122877321639935597230374845671913957181420394786798744232056649357237212240848431079223684792633388617008061614661392836651282203263875140248919494841540085722638409902725890935782438021164507989023068157873108666280066127749133761834634731131279082534828675803120261960460481203935039566688960083292850995726120572486926392339496319886296697416173392585963304036957122063404957510878462216703232834430175934919049483608879474307528414332409442718661506931586535380308472958234684814903513978229538677917860761257389524724963506258783829877388297556314058761496733919878244409767267955131837380535923580696121190992445654220269523024237106831185829483650153239175542987803927613627940756836378023535637103062060105569977796993418059046817565157058008418910485030713274029878479973514260684763636994242069340007176759137622623816227226155836357259870889477641112646414723846763391643335134354810224713758891349915619437213486660688349632340723494799939260268076424367929596439909886809775462136018850516348979236592080753111863050755124087555677236872086017297000204470883788250644029294550512252327886048835076377638205132060824950364539149504600098573024587408781740348170368204808400930764761662547427910754165722940885356269234080443096417035194633903707229714462989898261640386712629414129988009570631891461940819007458605748749556223870374727550645820787441518381984710132335391586813039535653486969906356430348536783242463281574764421352410178479757350475322132020286221933161695456281664964365068852586093749908677070670540131718946263346374498303232939351980379956097217000599461374509439112775463642331679538771558186864114881135602810835833049930241022015248300600722546595321282426340251278998200316181373457432878006877268235735012902540037386549477932670651079433958402499171581572032769580793740640289331730059600953726762656499393227881272287627267259438543399616989297812768182601181382471038424910928629007611503461057967356137463620125618759967504375006923216665258005256562706805669583656794921385083624891175160580161559476145572128559863959026538169400040934344612114910025699394176624974742787745896706063676211938311203973979190820606248690178838800995745922821706063244368810893339479456120542885893272917368035480637770340441888658373412638662449148269162167966617676406326790875910679594572042253108311716795517269334534309915344325593417815862088916912426037038351810809579862991807656221257549946798945437609020455378462027963250674333261432149850340793850668680098310823590444582482246674122653425942311750957048764625669992814898507340185168866395994674768544645508384560466971988218096263097638613672828307488060287268982213612163987874766416607741025714189514439267499355616518305035506309072116036259060041020631759195936725338091124160368081043164896643978488777554708041977262032364822040367353042580687132780539796703706192032846096973486705306265861057615251875898471686950102392633579611523618802965282681046674979507496495759589505962460162186362143114466315801228653030581030996347180743026253207225457762719843859695847358646876491762030938043069744488549510926733519481588536095386615408617361981300683710217452587565138225725874038290770828694302499987156450084562086941823625270845833655111174230095469130374588302751748475638426919679505954167093465078781449590862910161067471950804205502750718882166544510285780145090625997562801022206934740660025042719302250069489796588780108521733051951511282391780079089319413447550954566493928558657317411940924185135978968364055012674417780017075887281909099202491757318173307122011816083997635635850824525745217510069952878269453095005772384778160320944329807354156527240545168741275003469005726662008413806055067717918328173806442229378060170031142061844013289569231591793917342086731173910182718003687105346719895805204327098123686955393353108474760653470569805952429612770050423089954115613076270833978603149129366530338239012702542310048177312861407617182006463521282042844638070171277342076098161585978037809501031734530120099886172547193284173797008124391645807663813634343329755900249753084253223322056307408840904329482160878754081907931783748924744946368292882779711942177062574939287689790758150747710653499226697573670424039544532400442385418638143026393923021806238132807495260924473284478061696393693881035010615604621451583308629567369301682869028654008443626677055233487567486372243711102800948507234034961097406992193149662140284922102894115087762351940054229056121307639731293339782368545912901360470554489911706581290562309768869090013914342018607611859054016449745008206766102640517473284111346192021336138950474302793721018543234007884612256505565112714660975963141669905393866810124200909063973605679359871243273809536916574819822722395374198036142620394743117881230803302658027945507982556384753434676023474842543330751549979866317360186995035792726828195479227127553581624982384019306839265523442397144200427614778672557417121718740474806838683101264804237253626707424764462222425716198219614831379927896492501819560417462492960993984062736042362287438285445574675760788530194361618566881474940924723764197528859713753605623382594272619551663690479936609699445268604052843659298539611657447361955023880944588042726950283365978286720489753640133329496373286897139031135484236181231388699475130528983736415317441597313675364200209570571429737654278073239203229043108645242955586861080078964331490371188112315355568159281266373274192102126793721687712921679894800032562446987820429174183489410072015999221994959800137831394082937946640536260398715226840724473803249138128367524171185871394955924278670202149603529698295543819895554875187038551343706634899239022187272015839058961656168238942181977719399583876408488318352487815056026106812576154223156170567131626872505161841057579763245066643995399797015983276619912763079235366338695742338597723073954892205068574740766326548068014254714921391056293054261442076274609679810320997555477563948044413341364581149036479106479983445602405693527424539785170897069769652278217136256787279292474768687164772668334321475435108634977696547535897598775210370384899009222000911108488657950298240700474617764964942816313628248104068840706042760368956225252657842956177052623751931008380734864075023174262477215763653068856394743194293070575408735080612484290498700964920627127036567482200058408097208576136567843471318620589522954059810520518531399567480857185465556425247743514146714600428806835652677570600629618017313911801963725468134116000744823813934434301440172198244800969001907087706051623591499492695727576171456335218086298612164357673908898710118211015116027071887725872520074056855038875695331304568088158585110193441371563401315586709043374297735401297034930024720174074848166619801254233885382976066006673392488612600475330550715174928634064355709421338833460046419119332338416091031091731415362737931986099262622039630264952284536264833639975873557761187173416098435329742499567171948144546143560926158207073662207981739671052195585772321400018757894431544526137835260355127319324717241197945347652049830931746872204641441474101159490102963427327991418307147123957067588940692036780714027934589885150005227811215006391826329264419328375316835973946427534863798634634273681250553798092791407133189976887716349604797126994787556540876367550910124684463331889895849028016257797819981786503726492403275155360768048284006430428123630523245909352520103115133979791944763627535190116084372720627519453779075663022234565944652199683999597393986946928753238316274420737615050023251139307393136898543975988150809170430843785780842389357317159162118930201878599801703716571457495759413448894625564594939399194570599566073194166968086354686557106783971638332653686693111395476490794003547137738432030471754579991550792453952639836302062303101682208806474091873977696646451401594238683083240890710940597587151324668756193551292983854663967953888196463828753304074713424460273599497981802769438645301476608779392336010347224593150284096211869039035653595366306720191269108196337600755636699296659066039187617888984989588820850082530836759162577812233741543129968612660359736585625984048067761760526709623462868106727887233647946654546862035962626954353815140944684113406948666935579608220880850206546195508253410891862128851832822708397340781250661654759005827409367467198166234445421050985277495385263797354500012508401347578602531503974827903091285347234362972353511517224566928146061647843698712337148282485637330492019833108819085422659500835877513109148447597261032686351126415570491066885685121785541977219439928830427859874585575708773095591646221863050357753034814844355657572281673349230419218957220830828122912408366574830049447215168184463837855029691324992905632196639629625734244529506000100548265378815626401068547536245352253524092192478375947046543133643945172334250027913122116842807126042936436008323340539869100909795155653984072189925041921548339467797010094589413284086213033470805031408718895583337342247371409148922914777503077388309987361640827914052157831942734137456779504122311387576287286851202682614836265594859442997943442295267254962609175364306380521606800353429069067066577001417782147135642228857570172268308259000952452154154253942482094975888892879593950420196312175063873723702754666559891328665625209748359015533348718491018023232162932378738710535388201172107064641530348333427901105919345998503235820056167991467344028468631502753899457691345317437864538678427941441362418138232708255597051453054981941383441264273004584812727024495620575440297324365828759276715779875467372710476173514308725798439490062260934217183728718693078793301596212423512903116503683358877090513278982869931909552120985456164783378981978428062528690396905893209007249851244656520167216704052620168262099884226904370708658014753279216151743526571677437913057118715989278736766636870633641263689452788109645615005725917393701671239735371619666730944416003919377772999445249043397855132889760457076269259270782296393785795426579147135465434023146613330159212018953494608274101152740388696149222369977985969068100751611734127295045902624723250552573385560284121656679790905345640226669925611741180002484437724587198411024082572792485448910944280013127599969766873104273411544085838949980435544220657759774174588465163828813023066492114116370158482699182536196076182766986646786890026105613822350362996968519757210962338989893549041341640337968919688329646543890223012740636918585960222303123534651099264574087804915404442460418195256606953176467013058623445291603457152042917383874448748111804954039247122090664855079667688576455500810992895916828383639510778920973907546479608003664779008771642491918992340745820640459432112215399659834871860583092764619489805149756652068497170174546416840484926012129046791813502241410588563067188352729352434465763932560595248663692733248182969622848670542655833061218679703982466990051041987015459993217950662422882829234533741160589558549028894355649248122496096434987125607595339063011820417696741374878682597385388570307974956899069705094884937454093116159981066738026582342021639335130922274186468858428556905084497870373588620312037228307241152012536185836372900571326970363545816225240295882640437352783914170117150824387499496228604992186567280185624373837397203234387037727304963457413679259065107118242726347427828150283457884197857302092007735179158886957532674751816129278382126260539192485221720270255364950619101843527506348610759820871730401769152527697905056368757400685815116323418246117893659818558366963401152293111376306741139961554219688120211136077594475621921715335989311086909163529383660473149130528464743130519788398156857841419649769077290867927712885007080175837655254781086467422078821790271225564662091420717182115918509154703977651753470550485369606925590384736880495300582648251220747565126578445719269309498082974687058509482096684287269183118529018183921537595850820409084858866139978753907861710545743959064489852771811325229435848866321643993307817705147806986753452215754322248712124092039932844433295890196778240046021331466690054888396471531573826431760950659850696924575401338317702218422733227567110513055938075350623932350491266618760836194786657814581510189926920990203745549548627394560622072307821577924986766407085896206579126321097024570735809705956152214402435712732137952739820792956594602528556567713221464184005264489836982977366354667644605484086976412868076032807835640066332723304258985913671134827420721574847560844259189993042258320524041950906850901488583267178038091814101352221290450290804100435232013182722104377892881651701778560190780229828212130014880369366327101628404882165728410186102397777114135287207253931773092260933808167888566302365631698364083646873873621530950056886766980248235954574560123212590684367018295411174542459702324458401252888142989369241110698295114017089407622685445484806780341494570473005067590519935415619846682836113841430634671036818016049564765043128221756007361199825858001832394931310003859165344188008819244962083350931483611483962421721572195085852143446660002792855380563661753652568091360104594729734943093233958631387975690804547885621704194961433009953195175456611189266004868411514846875457028664347033285062130695935379668340998547662264743591082721414601047735662276049909340737628613487426001937508473737901411838086105960989034958521661178907645597205762650394215745452271750419140220612796081519657634568496005415437311877333880835176794686300251971388430998787014458625552504054144044242065824876226201074334283619231357522799282133145656989514105419759312581172957199281561151522040019586692677616885311919751408758405371119019447266813757947322238270501626102147693910365842354748626052146755960031619386960771584222435252572937782013961442212192310020661782677154493030911388131480356316286878121398062229896089224064490664113935610258004176133434160134334998243308819661804711792431678831737253569148396161576278479588410200880008410045507813832901512680464126959702143427314818883147581979842396355337797246457140374592502893582547775376254970393361410093001921058314492906297859836526047633963845426172226658568443434970691307114809171130403779149361712269436014928754705031526365489328742302074194211646037730853965442618857557834946024031414029653416704929179866077470886489527577322299425633237829046307324595077895590404981987355507199918349403929438937997438472939276562317945403722833359844682851328342891236766273226064715915235086979650946088335480497218107710885958951141718227719790522279221446270004053191834064193388529279616331612846646473843213084575471400040818885399754582291905110149890895784226534826936104174509818137055581055619443366377807722234427198391998242004766421376980390456563396386898070203344756616183125717656572843118558353899804895920117957813929787226846834742289003980242600718663578215467146954995838934250194070809992225850435637941076678090111732126300322568601144468393317326121570873974141374049579396316902720079811811595218326939488436717429900155159639710191623556220718645029276618916832301176972611417192453213222929227155717883543310158939772178443197833953661847883504013607713984181933750029598768446905701668023544283720615039148864744008952434923498030950024594809001894483956801808444600838513241452609044187122535333699659183367989966285546842925992821142405248853389755309657847383153403408781452297416444293422100705267481506932838177154365049264831001941915953935222158863077952977967271324586563949697535203150356000674945237559775533196297846885608337172304958484690956929082151061652580760452088721972561487982125838495254697046280611531988282277376124191950631370415758643557042333613819201719827848483023201215666755424718557341738508501177560854050487436588525567975096197714550535469548183067126205660788941954077136518817216632563598910349002132915021500746038787753566878334732518588250361580287013160907586421875072927894388810760839215324130202870134072989853812681463398753729527277749117560452680002444313225117370623295084460427624615233398361683545816634523622009080195875162250505210454118873766469646690117109209363754549660437814276362496043676846565808744254221760206235817684598215783471603419620398230618969391140179361016206907350050089900599135140780352313392752452620214980134349793538853896214229812091568583668732816802922677159987172078953465006929172485854497023035037448076913829043775032889738353112310159117697218070366992254023955504287284480633897461678110508671919091727440636029140880789079607656346229061962529313682907420232995054087564844629424859686766359969205224837413979153982981687980353381113667531967018836994653292939934890720414362947470417350559686583623889645551787616290605971094556111378010594184795014836506835279237595115768068575359060371040378094240838722262518277285256176047858269404141580689466224745935129500674194270520167810957458037736598114496179553037252383130031610091311289961911481738371146566926530898784140618356785178936437131586422479592267573890837295426119598601257471934077364411913654565346370581960950493850700701082403217936832161108805843103201969520426142580536655547486987490486789165761020614411955928128569647099004302087815394186496325313794800102747322073936096263805127221037922237736250471582734202758660107983991806074500735435258838462814210461018663201137014660463491631504922862228922882367906091630734514518639947390534712300924383961890674353982175878336475154915785918554592189962349140130694924825667905049663823225990403961726078725165012399930315042345121884422918284530804171833358833444655165073791054142467795991167270354601792203074664520597854013522818571619163002517891573905234639051911047147018331857919991623559342854841252058599798013592647634528020798890589375439532298929727431696854870788940825404462895185264102441551069657827555861158891093898585762677327443703540080081505872595237869145648815694171872656117522114214420753646707539470376377783075771743091031429256908977742044459705181998233615487966785090488183361547149551034282211743275163470207522646004445671687091013569930658086105555837299486644871953316078866165444327849185859398416697536684791824014352882204816188289195612677983497719349954379809555912318230637804314171655733223852574777081247429541953423174540058696658355674940600993122164802389352284325768658740891658982550150890215361597044010440051274696654173389136687473454977531546469940327644371654252701496944666692690320122774336894638312826055981478639006505176189194595182942178441550669112778493652359419996576617504738876533078492431415828156002181180232845026507099791895451586448952890477051339337843053413214557550194471867488250548636690420823815814962970255457497033304909918108266556902964909902257873726905443858088479101844681932068610256019922406329249625305041317665794216617893401617740953174920883720951130448800610945013562695515884387439693451991558482235432381554733133034370818977769555320577042256866839962691791820495237909019543039328680008606540210266410726532596831947018494527428894126772062990480988291675965382109993423736835208676927636492824133576061462169160270076704756686649987740071261343182997740759315197397590908550751252206166517388509480991125553162005140679729055463313591506891227484002352806790211131419322819192284021967413643058149725805974938972819544152591830962070957747345394275772577561043179612675315554118899810501284503935211436800959961368348632078228219002584545004980103758009572666560307393491546158936601152419319676961248773591062833245504609520496768221782855659115567653574905629225433812101450700637530304514131458995931009081315939244279731889375506525734550756972691868873623981112051243153245959399427979043754374761495946029680645200981893347637522281218886408168275982188596241115436361673675214882358918397755020323799336292343399288810238419944905919089627731924179580027592978208116094663289988671741342052989228632285452535709405147808048804871837401294162719636155872754580394301365881852095509135348262242169658340908795398650869377106170778133080391841895317077269914398898057970707760699464455389302806180058434413645794695517193298705033395260825147977184248306624340915327932822305602758940096665541932805649126959576404178228697578089422346469296681200065854433370893494570200009994945279096948442019613515246600701263147722109611221620204006024303811168141464264395654467799780864000900307432990323375971095629898201836647309238916259871190067264930962655993632697815766034830469138460673358878332824549577189706843987331731549834447194765665412029740120965595280967907202487621427115087913761837274671551433565372334058627939899159439497800979539872552464434044425454804219389782717017043795541578274752221635320121140650317419849160697644305857088569968751058125340534817654185109021198214128100774025883093039062050362671512601609634627033018250259911893104463989922171474171272589577693173373740904962794995051567165931376549689052944700943565266999326217111187534674701068639067255011309630866120605624746644572457122425359432779069178617890261977543654014661665929658950443901935882002114720761346570955755807610454303576146630033740583380471479020164065382099571901726659572012950594505858380402740626715187775206284306917667867602729892149638644010637173377743044699740167154753299588418195659764883021672227909681099558636613702267355772569534333809338132161474197500419696381383477341208717144633675055515134428408355747463531034962745777971889243951339269809898357604023406219585806014906319153101432739974196927137624481263572660396886087277355899663999892873367465453222802698679811249820367831878822753335452862050472321214820777963194620149103036808016037518709759403869592902434154069018524730135084826375794974354214033817657707018496118814163136021933036720592387223792773836211316000459050631141047866704251250113462171649086357858314646749272502820331115228223732314900429076283219373567367792022067541484180675278248451798485747539412300296829841690124288908852967939928726358589469391728114990769323058273981880057136551604850381279687328867129099364704431766301470619502779967547230108284873284918137597290692908232453733883761574634561027971611954331272295914751860695256917963450418191096111423980247370273376137665866877648527537974755071361427982024387392739644472614317644029060220439773963977730140950830962420114636911881344391217209778925653577716151638471823480440483247466640280305269192274225868137204721196361956742719613967893903512251148807738736072049197809610623638522052348397730500116515978804090472339651692294341165906867215780012982500790375499456833214825669981081314923319701624235535039859669630946893391631197831772879137021419498636157296486797509994364138607750998858398907762009463105390109659556915529575063095140374455250123739363372437606017535224663648009038780452061708785129257234965390605417756537453897933049996641748786452110239942326658600876077307726708085246709148020622708641568776953227390603560014661803562042637069259897947020136321996061827937941701204213174141798628330827827986004485608869667230722446038857814563958222862832714468289881386205177276765115210847823403320317148230784469114344991310749466751913209935580406548583638890278658506503445734399900735561907593403452273093008893389318801495837985745684287841313095791311574334946491005538986211218699597375729011840836278956933600657043106077082475775720808453640497302433392142847033643252656370127215778265873772812268605949152544425922527315005236888467419803725966446003199375873058768969646713745390392316812856111483830589881453882796982282813131561412937627815958082040627263482067563393314016410576646873828810029092190042975814595570734831217253327152378021050305383352234391642043133800995809397729253925185014428115347927394319270300200409235964190239065614683314302134172662839218739343456471186613764083173384749651204323147117360764112112202933248817582604784702963654333345195443997595300022329385942764876905869412861868895265836872074428737827934712456775896479998354088295182713441617108968081762170354672124415626539444028460218865195823594590706881514476856809485476729049397345661704159105246582157899416925681180485972784794170958492406676330784619402883022383765554656448345662448497540878245683769020844111547205145136204998481065764213709792106484680919282691647866633038287976606589989478147801690880106495366205075965501543787584460698886147820360962426429662568516410337396190092363077629935594810001761522888493233590504516375233258466787195281149263245335241127595809048980694441392991974687557225453218162898802068170961461896863565701782779201236966566564757145943647177752725585358549410548583192086324590033778802366639324640786709628787834947871294697514629362016202699408707126193392681150969506250344018901049071805469957173756259489021214322610596025265172415824578345535278173115174503100228412462704199884354399511980243351897242774191777289552615752205563863582637141057533721549846183863458345112384908476139286619641945520675374024087057795522779031649077779422707297932537040744567508935264041579437394671085574928682262513948783873113551840185111165259383391034153592852744807363758744574784456870362435237475405147613056650110771405937809369778528008987953196988900241001394148783588638035855640742721457512128018599017308068569818183440936251894037817441623254958765643451367946590280900457995430492311101773135863364783537915931227308266389400408500132123828899886365449926302489340153839309583795356543158998251243860022467527815188671726705130672508471584345689396715052305538193989477718827680870504405895275969087139142249654747710043126353964899582735015502335254833203349959585529205750889435838045472713151338415239219583765473178621745581527866892575303105464962629314031902145057286210586994334632846364716730317838119488205687994086811736863543661459986906326503744292178630032223364582324431712931167885093364475369678444924898753200535164995148247243023366231208013834907097036519747507069948773431124901697004494953809645563869027912174935141694055697377308105958688843206519152270168216072782152842558311720671754108452723648850752013287641836057276163433293212771337877434403072469854627361343604951493692711115580464113175247835322406675705884234403147129658967033618388361830068714444878695674977922617956012632864653602817081227482432217248412582383980936815617858196555629923208065502706212482275203038305467637260460076247960856821387492107559964048294990951670331093347139423405208926419545162337420385176619144134264667933415905964598496310504132088814471752766564533824602715588458691772777623145027702930657428236890301793836875362459109960046854019387838791075462171150966491880179535613432275849622835235800032811875191526284911054574609214482634729376200983076774226389200954680727612197151543765108453605540212336160421561174605632636952051378793178513982212797884168770608485355790320217923331842799097853367110702110006813808936640415206000139045754435345290849500283727712035478177764143309460187272171667735075343925474171530555251458848324875303260957839110028574536123005232897992378881113167962541436583938449719770338996067513957065689025858500097124231060485675545077193851166153484142688100688652090222760153033812198392395022520961809772390447486973484585656689132597474477338094407061841292013397654969113643812741635743236630938909646924366804289494207791935777453921201685870037088353481170055032092675362038717858894418465877992967201491753807171157000366919228237351815578467475008561418352435486416480609608696665232139838864218210461142666944070084830954271764135398444933434800469078281909583328217560677120207337796994369319130507257573978542365219921243337199892350358623379776396807809966656675292109692180461053918679886624334516839218571952341934702454928523651237152832025108698807921947547020744765022430482423107690381500073315111168245549071000600706385824467250833755569763139061114759322048913390221147975218019607010269415734307211395823445925740211299961830445983010682485725369432295306349084813988295921109205188698401259265057585764875259820897774151826175091782461178064959511148897957634078901746493058501983896722534889972904460728185986357938450522269175117134703063815896565256237096278696926610081519502600818769579667792986852477437912142735528281187550131751588009061187943823600877608088066658869044084745493369931586518272955862063481334035379642205754007003912549568518968421017563368673934563860333477125564313869963460220310013072662150761907019112844666150580489884801067813820539679506618825685201544782956759324536355046151054012371927941186711814680675952001432375264736871632953069369205241200188975119155856555950359167188924695956326792012469622952431162511739884499826824352967655378994442292528465626851320666188290945198989381486598380801746100392274645354595198977010690266992515876579070431086137384700287180545261669700359664859349658285719837688722838840906897219367595061932711776049416601257027888164560729109446068710322543716540922412104039332845992713040911626068652957939851201576449585443692564753731669874895813200676619162637179185512204708465670480211238186785060982985853600865862657303294841238726360018834327791559196779859587165054144561101670283796884067403708322206505114639438381781879606892784421990748673895864201882392548739470052888575991013696420655779354980152949922431969494720052127755779882663943293446205188831207743534732042876524648096741077216069910414250444616724034210092431493362558596801276163263126953688138631488025014499934370024704696560277808227140410641026389918670124015150660294400759127571975056442377976717181843756794208808388256645580116075587059626562156427422128405979823673731630801112153273438844444552500530150755472468532637802144977142839736989746013082191821674114984142298998444935175988672985418404167505329855380836583927890566555271618237053861956599562517214356803566910285009827698719694684729519379370591215177704301916171585097014464610162798274708150337454948596714729642463309842207353526139154696072832985953975843512079293482473613832101282633534605675359744213873434705249632338985842079939649440808943165319531849032121084868147463464940415550640757062164303313401012969930661167913553704279353921581676680470626314696377688321421621168643850921355595786250705030331374740348056048401452735425011418013265217797530739877147115165299440126648118029966629288327944126277845825304244205955770688240966637774782713075929127839655893150208291728099978654650310464904038776298647563337216734298765217802842083308083975425616021391154241080028406133648930950927018878990041257403426931100039871291574796033983578317201113933657779136768299572647856383532149986194951405020722698346484534040336786115990386772506202686861110637400787062133918265257086810320460040814226525858492153636287208836024178478189671153317990152552068749750989651010412969728545470112444803224080274708224690825621379060542069235026328199999463160528701178734880784192487427362377143776509220448923150745230490642837824120616081841637374300611962747918204208758062673966859544982685162640537165229745610082911497530861357359045575355146841966704305631176125672746129132247770530972900329546985619855865176426560090194391888933500157664141242702015219098470611883372638557084605202753002050362101276375828411827081721708246386706529221246657143940401615906692137343243504600999885202620236678826825489401264001705398682808318878162997514178318032341196397361097615627455146361372459420071251127778979506507629757209244018294553809801108525837648389750853923876308367982990083724107427298988082837422579959658461091163980753417426551229926025258343313942844254085244993583081848947582946632002487773452989308483916283748288133767311474958871381365495787671773127476652768370024546064236691345165002508597320365434969308123198778490542644673159556226361051270698305614164479481887957412193195614049058730451773503886972795147393877441705356892276435680650686048891918706366423786785669534215175254992424252696654964719006247686655765803026602508570582707549196785485711006559319376048525670710473121741255000622646918861988515273547655246971490688539006655146589852871208363218125302653326558607503845598340415612067343971913930906982705687624190436468145255845536217048559206152577679903328940832016402039149181039274497984331910492153514105431855388155345275847220818163232534366296038954913570773016019606845352563388999140145617319871665367703017911840094283546725876187814999954066320781947344342550156381377672784765847012415213324805028695595194489544834700192979187875835150150353315025440535971419020812387446324092526543662511023568359967923409707653446821163388326474646044831564829342914052588972049128540041280834313279563376333902175905343844235605931597450863154636504344716241374436694753637737094287792973672652097462135311886796712686080378555107941857965212893496108084303543849712005864181894274906318073661506084147256810676332650789268565244416916780527021278366953042482276109628938121802198110477837745657580992814682288297022778640119137758338875885651204555284013959636375314358058515621209642977102343043938766181229003618144273583005192874287094380194868571366123569071516791007876218822937061781531140246615468017929376713700909353423500381231783651834653997076280412934866310310563063762688845756869857737184345217013993225342892897597051377085502462706727718263699032724657461991134766418166808861749918002921372650367486895009286598824895300171103028002257219011971144370001987002861410317932453800556375328906213572520572530300012713903757840560815222625416875810365574497492573803858307140008968415526369205249811250532717309800335873428019812961570569885418572615425169284239404740753654038084416142102848181633805761017408197253237366805603118822310286659172395144827838533399883687042693920342051550786191420143522288619780233168290239109453558927617761977236222469932487099843322401237362153027326695001828975893787780313555816191452640348705666279907087293141758353997518097258688748378974646615157983599417919059984678463742901019894186931421027291691134801987527217757373589193463396383241617388954801034011121743568737226844833318607099892846632712704839877958063764980900095907485440383231048053284348405155194064246257737333861320688412826880518138347853196593823186619146560421248753900876332787176634326831832209039080150773474746154001154799571931924887118192645883268637036986775170636008431449923038280517404055553007650953730740528317834523086265205677113475607112727897283952152836452420928416141130696158547409463700662009157111402990279270954776571281705916333640826762390244427303715066826686694148672520225502639589790719962684221712873374868263265705687368984540903969776806006256161243566086090055196415892743959631467502826862780968552152727477274330707493034759937455204578472125753804627885789884622963016459675786369219782683823946495733437784231699346220239915643202342337660103309368085851615400091612708488585330917087150619492040734414153203622115937618194272111292288892538301805744109885863063935167273265355390799095511102056993164780093319395181901473579940569696015809936041432907061201740149848803013863497449697870708830780014229849663605117803792644156317904545255225832024472295067482593167789175110754943280111034079457217587131908919489804279447476223739674538954116877958891194827897576013930177422822921978976403711939400232935230198831219091529819738198547238070853482407950710743924766521381547376505039611722276180759746220692086885332896464487255581715145608250418049823300860635502973839920547244159517867319144733047223050427986345471371616328308962524020126189506953885957782773171688711819815283255021762734382353767381974599016190805616048687540820384347970260980615986068133604830664560164987736237757578688480595672462524903167374611020570889070126555305098544028064187981501503444909371519996208517286864399892094722951458524026019700221641844379936111459452615398556450821804318927951894299586531492899483609812778377860194679482027816684042865211085035581047530626259860437285840961415846852515990879583288435859217968792035111089367987446287238473334638137571305558675375682160383082661697330579781939891354005664511738444454848360847633030853494699897680831785413136248801406027357982358162777748229635837519843992229361847186005533003424797284019131899527244138584780146537482401486208599902016935958533359183620665070273611885501084395010944685817905270172276280212407404684730630738380044818506670621669111229935743153801405956162035087118509226513772016980437596657380551677978579803325018574500979277473885116011922506335920650349243368636743586382488960529529499177458765366204630077101070955105838778097165581992386379581193881000824781493169567109160546268211951517970530019767133394170982812923239114460900371381564793297608377061330793195677456860990737615153721239909203805680779710918947681387435618389676736472221677892720485386308559260621543354600886197678613717396860095390533062962832621309104624584261940079924848901091851522354428410765859163547566809312988663385167035222121729224990325511734376376873329159871522473731451175880983421468040835663648761824014541882632286389111359112172747955414094106455407213581336693932723858380193682355647341800316202905238166718523157442672467174328423940012395243512982291973637869311772302571698118785384272262121975752264851730464818635459783560863344017566074936859563698257105244361426835870261104617944073953081420743394699005050518127179217506866766659662767521972790726984106988882306432415008652254361330834669951489906163753894643759853967719612642768115824925310651760765152807772868243923656803767943612219726932022108010874641303654564024648688393483841814416292479681282354036368440873485981587571077398771362454840788353663211785706619656814184696434182070995222100092020955016313095131636961675863199987962480983355334680786856547747327840014878195327712921691020464719631848789696961034175624302448426406877423314635513080878271441759289368490433434739162458485028814589790211519428922830459943374232947521275362763785452055336933842851543098370377559014316770480845336896584673891291115560595306221446869971829589928119027144407158710993193324205967318638576541123556701438469991892042630277598865138903834022242156790930156578062380923727657054752356928488078398085917872562796183047002195190648321546055843688738819669727667607980182737676607569128696137487587784985457176984428475321540901803454074869171720278323605803590019043173567801654829651144537167890886517119958618680326700986727598089477216639366958518980507278175401229877413075606364761135690710257414084502407639306072359882304769745951778350272625843696735741340477190923200959365342570988132511803570260739374541340884632496584269693002905907169307149513541749100159241403122366950710777112940576097149341743650660539292249762734409657006161928645645032954921376665164126086671577452932154861231564463100637329624930027316898781263654281572908316341261578147892411620969864272363602736554895539130766001906937238577864568897330399726091049450524153852073206447641519717055880720686039777969010614872725016256787102384599911323630317179253494003022870780453510082424081693626196084206479550032260120572428155904823638994600205249858841789936175973882313185904492341023211259934098207701270454547623730148947848159434095712158375704893277220403081928691345121587384648731135201934469844787321431074247163871352987891272729250812470151458157552853009654374984393844789021935881311617314474352100158430494327691558915873425904575599958027039607204232115033411813945154593200718207998828388780930044547366202227545643560022880775661079644782493943183320577571331682148613678381812650639979297839361640927399411132500114420542682289465217513611488484089138550376843031958467681415262789288090855624744733897800594137964042072714382060573966520376709292197829854800427138302086000416473638130703405539549468533028101785428395912145763126237520804521231272728433376083858671714905639738724647054771607108938556812276582992472150662357970362927300469132088272257393889382089631552118465546515828542516635898881894978026749332420382708297165917443709347401370968709257533382232472666060571472854630905958869832352438376288159504171362210735716038347333624055480856980318456522137181173455807935773221256579353046944454108408209589048089852089647711367954617354223118943392090287215514272124216224335003163380013997475190495698750738187544045592474743073425711796394131477025244683051514521158354237021189920128540274977825173477002427899822454253830774890619263957227700964364991944839448115487580201754908316427002309364222438263339089475694730879243394462827013632146209824222623573005454095753079905933665135502446070887165302577767927865631775531524910786921916264135604585751700026936340907515094803540686428438316174291614448303907271178319378481449390449009777762686837101648172767170259543891702143495919247188974118790062420664155971577339145183918197998663455021525030338433698376025120566527388918753357023335252529493521717148812447282938183644184442939236061370956253272858889784675576955721206354105455952908672087187611405225439459245435860002670989737518491632971647119609188769747067780618797006672148139743757964462608169662032953982736838678557191802028599844733697583263934286891728008535064632622438561745087505534060183492248855384832164187552907075594110367616597023008857922856648486356087877958282413229915994648081518029816520916001445548582272728091915164831919538164534042788159563595326916138779216156683598755181200784264111633294361009910738918598670511777606157097042660303642135339979300816410975311980448302694601533727463193840882887556933066619952959329457236334361294651901086121782495529039388376486499886912530504195663525293516849419464746285056009299732299400072555698740323743962844942896312460048533613695853516006214105081353788904740330047701014404758287123143300975201717425136173063382859050709155259189262400405507736819716556645283359604659056267860669136145635689464109548514683526081626399235828407038350604096362388673567478801705936696222480675425558563356108348644277506715481255655775048721676674186898205352726763575653237003437143151864149351943695362288326904328458678795321685800607930286073875967729470090874800508382348541333793393691706578381868000227870986594191283914277389795414839882291288431835515287942448028508085595907254673737133477293297628374864994566221965140094788860006151522596876580985346119859574458649949377725783145510718868544026065177787978119174935801542990734310107590065527117496964006664929598304126096587396624405484569099827962517563177562720331511208229067353297484940047487730841822588885760579619056729540646813889056321708418631270981029501827184870231398774989546974910148284998759723850043635685195159996422730177756357376787100100868155941057008094792367876511706578343580342845896815325425302591523377443832427519820215247515810001946826615722962336249212995872844184394366001122112655409698087507431349316343873298536512723035898179523716516646152183658539548104635393712658892704913561797856802361966375255231075593899230738796332263959222586802867534306170011187186839573038470332299602420839495524616066866722045552091898680178675155110849906533858453542141542317994144077752362857193365815864755032714569904258698765745743204498512612071839372624552933235162492824444422350481131086944837359255393727101907113680939727020068172892013786778192873886462582208836774831290436028210818972538917361433748360691276315086989382417007979594546436173799369096130203208774474828089850821063767009479197993138497542635252743448841475629320607356980383961584913012617955559900943222676850270180546220933927598740420405505450572603951109286640479105925105381339683373717967667120922783077553551410655328281110558973712282570018397622884148663261286369373223155709957793516088103796547304763462685001797197624957419605332034333160748627329778210952977061304575376648975799239680511208363453335193439092679969128864061933884594842431578956961222186597204573059393053833016578978616874056814555126274742566397197526788167240955547369087964599773315157354602898566315893091610606487140863689729523365606954979884864356057493876637049278055920360350206644525723538635631117792667218395514906764003529624437234337516200115323149633776365449052647596387765721065479133716004065691595624938095378514792681318101974928395581977810888005586844703173276410787556069732603469771633275686635825913129428204554771193812053685645328286384630120849202754568649881204474409638471409595760542549861537541582334448266314501841320119774875398902603702377312987154104091268882456834546497236778624907224026818881438915450682316462801431557767315804416217560742337097655992745185744676284805662103682035644633927372979326743819488094572660956017975163305715007799339019464033135009223246525719004148406668155719597880751662816751778421035822537039947827323025969461627338885779699212796751508389222060683527200850760048975056694536064798191912145631024869866452015600137733896504208948686104034008656435267516134927454199266062393957167767377320463698742436303664263317702197405356828876631312614081034160071149586514706348704558253552619271391148466701189054632803042673486858183706779495006883125657767119417562473443684101946821435965072747635544066088735930029256715918544168981258081815952811373200215660550716530247790619296780396355829006565745145738209359410908227554938091224485007399374505940208885321199380216322488016953675739944903291180902619002078051737198127771940756765183169052309062788672473527738349224201828512567354443227025640606945799606299142223383959803690616052802808154239959207753198104404343232262159631715806747874942417504680093443582641831819610891950305153739503193713513326876556095636807193635518500240302662059786512655653133930936276625194762855204136084640783140275370149293733617778553351817684286587068916406425235735511648665343619569794399174919042213596727913334606999850520675262790572343031518052567223929599299814830845093843493492959763756275774534364673053954953352727853881925112927766688540106595989296233775207953616132010414664621042709157268636452907224733938426524474501647333401737590093993133397085343899121460422412462281467353606913022900333033698513255964682652106315406243749907826469960783066763613607880799376441065268380561737617239715732250828290736246104098945534967354035438877306275918658631243192012158064343790760629191937050494739415769072692826528308261084874105908810098068073657674300331508747870681637031573861994103460579259674700482365909166909256757309267598433712078053433794261765715386852822665427091590620414529652853797944760219088365166994452714508876602943373045649462086408942235728104043812600639999222607845597001402738497682247689687451001781784236882198463218768547924493522235612678731735071929631472510289006435203117467281114939288599701581671123169364583327880035945934089767272342872541707005458531412867296826003713852113665808287955641302167478456934773817135235065274531504356653542003155430603867515183138126185391949541594216058314096502042200196526557487754219086837305698987538025005968040933505039563051338081261834781410738376624132274443903701466611538755160609087359082692818277157021872664565993768430002119753431240208345361192451441955936286986717972389205754905330554435136649401380646549061427916235891388732228450362553302348078750586459658836084732020779136968315680779025950299261685999768737152260269658823270935488056920116184664673684665952606859567477015677741410029869191489268217882755747928276021565013868326284750032666450284396832109637384400646718276057570620838604135422568925389450627113963489358929008963178476396105054384286737036318862461417338216472037528641210316447198443468073922262164398924605112422095184975398159975546450375509202685473785720407242162113021819347539278845987994761692009154935906040159293226417044120861491996249107122475873458545055996240149579546782907326365939744077118846394681888208384669505706983608861924474700831591877502455815427130744822072564275043744972429820926989557485648289070018646558594626249327845466475496894026626642980737243753828583854735356269197764497989954233772046645817637683730324439439834753938448769343812406830244532247761442862475557241585100679138310858028543780514350169678613612346721946701574962647175318345336585156283674024427081042656966518495412385033687582643935765503782072385543986814226984342038481315383785411474064053117483379526349325547422243393110043358033736815498373795094251084288540420801975119297492622589284768691530244713672904354012298049252592344679531465853926789574618321272017377188292159862366631282966924323388163703481745729318432202839458839326276283199830046156326749437421123114062179504202627729480909782866425893637017455331013642821080775770397681998408142285724060101982832776019040995517896260794115604697920770777827913527645742436022844356653090343611307553953160679796705327558579393764429489234541338960852938058516614642051310452771475392465271677228421675242948055707954173596691102063947987401617455977539708740297144194389979884733280263451924622507799511868044859713369317595108362666141237647036521793520750455615311921010529142326598732871867349719019772169027528248095918757230333124908588663103205079522316117810123971010018221168976383686870841827698500559975871805357416888524963774911777601741478964381041048473052876000703770432173393639370523297637129170927959573334709606309083650812300217009851299770877817908446713566879654819195033025007013545144416920425565292306238148564981798921881513380099455888977948156963392940171818719127686594196716888045045695192431097087894627526293395628103994238983986215602802515115792632808325229463411386217439398092541142863483710101929967599045668749190013291736491363173068835621986741243655307280699192711617497097168952561599236396372284163312758061970129016758474038043461459124717467836183566253503288281745956393185311076761306356013580900753545784980271108336110794285221383361277149176504685107490583127591452636655224351141325511445452141601453200403825997355542984780997646775127753689507828131167471357324889229912315932078362756991557462335361646068508569903349420467513315164397520208966509515682478687335611056571777369418285495425397389296867930118044783447541129597778133697646886612009068672791036070838808333418606525095790255841013258162933449421857601067938339903090477095127249163078574945158418662527511371610144732750512372109445838320539891141269834053038335456723925306754569025764551563381545888461046746528394324963089420163454616517182752748657477921613914803274804332637017320073124703180623287865289781268260407611469059476973892859398982551504140297665365574324723443008385624475837358777062121623183025806844621153281425830478234907801428810719905375309230562639739486623011746858432343534401559568416780375178290910203004694632934148558861158560425676271429928616463859979538003724648176420263911081656535162558863432323515410066154424307777794471158071204248508916595845454635684732307742636055394167698180999700871716936207171521837262652948407785321572293607713545135400709432806709613613346528574594901931249202420387549856109706887596131417737434219866597341680315192069230720911144673963452360060811269583904651757338235012622389236367673248922458285865115301952860020540706716969076878446274635264322041374498891063465681242580885408320070813920926911055005881397685712027690331230728341954505456812026954328689977234698144849099291537512924005969034951585104023380620460969347816270844580038020617075015284074515586560687365821486868131226099973939781457421545527537269326171019891963842426436179176389866115130163257640566468454394238450140565045623301459055940590802315579021498679919763978166350240888555984223819453346311024035510654733426020170181202406516895603177957803575147288936533237971706942044839329811989642498174579451379857112951718750233259297707528806059314961804489025221969026280856849618813979643082131750544599775326486675533388453898418906050300401140166144185448282552723114309695362192337247297646404434438701187672590517093260910260939754330894403406738847573184596413432658192480999486338945793754466756469665886302899243073193520782626952688912674006627491014709737263213534800334489561257066225817262393140057779507467271887603116488381112726158312909256988153160439572664902010330293555131969746662272612282290474527377973103311685173605678995520933317389908088597995457116366464896974536388998094696146602290435626821018227831065494341959775456300110860070847123172967184298942240408787778449925034138046236424926906801465609794960063514097403414066757915971965157305993940837575505736658814199856658398929133325093680977055411615113859647523164111069559075932082630449944983611856247982292467170368791573857873114799607884728142848890903256100871308457519277105400567646189041479256102720517476585105531511684375173851971469749932834544965974013359849154082618249409938451525927077947287522556451213877262601956124135004168021660003503523130303000669287243046266035672625101415871395182804778914193739468675701030185117277921185144425423251288400237853347575327218436070510983032768392290123350525152366032429857974291060316476422592196011964606760123959959943960591648148201053873894719238784885010761005155554568703441005045464832136189908477628523370056548478743594964107264522227774924930524786174382773009516202286635264297331504441372019951717232834739921779992006967233945503770656128968596504114582858799825334175396086405359938414818486405863643966585469081325002456738927004324728245260459975939764671985927558783240085989097432320349905977019964782125651222584862325230932243370128070940457713625680146452103788075164993949785207539762362472032410149670081150015774366887559244487774408408001361997643010766468274788811521686912641476251260058986488435328119016978235822344297573087109398082207537091463184924442687758901142882341186125521544023226528227650312250221698092720422237325787422857493238767608022563889318226242160447028083829222799806105471931687335097446192223327391852251600797670103877354132998046399398116684169242296894769966856192795565106588297281873565124914443029001851253201433952729954886954321097200693320491477535608265371308605717465237220948350003795865327492442392993732760615486217377028945398156541676444412382364582201304956752493481904142479404807466431988166919201927722861792650060496914588640584128821938156900284923120139682522286866541067795057773487966462082993378541307617947575350176501638340195667972103971995574939354384034208369659385320361639359857248721555439535137752185190620807411288664154330401428207002490286922764003302552362130019279462190907595785915041805269760068445818201894683064177099911967769186168005432039016351276176156472381470516651496556226848031187756922533751449141709262144216807115355287553830247391060057341491070643291313614326905464617822110207591971645569321496999029967046617594287185511949364963620376109330777485317334368836525513948145791886893470377153064813983245215593319094863413247097636247967251609647591470958805611001311167106065084285290995767535863009686788981696193576161032863541333734515493881348562971517091883019302821726458948315453045749619699719443150708335522996523325964489991683404331442399209214784692026636056748807757799417690293652906689264817578531570418675118451857294852891627251443114136333544262120210749455281863404292722389694473826265391480465165402540567510564382713015064763683866842771293475705818991672423765893663413058154789638416439650201953717046831228856620276117141324964158995911854316391626539228933629750420966721225998244073296501672679221814583077079245655377310190812817058496634829035890804397073537176408669911785491159035778723532160834309353698386517928717119375049946062300284380293712205941829975038592086961391860460780005193592171293996134367191736155605998950311079743930131862028639468646953874494054188743701311717571925595932230893173495157151919709263163953697650230404595852376192277969578575984645978935844010937502791140958665829251133173297036387388846857844408634990549098438915222427062140997668583639946174387883851564425167972312815135520876312829625973302780895021019045440240006918979805443477840388347784330641649189499389917111428902123671295536881220881896686432413496325357181590232896374416521144192044890377047899941246206190083983954386075127822467217331383583066578003646948780712697655311863950478099021093152760274913494039741885538331728207633333172593989323639786035465456570394532789067886125521692179352552817312738000324815681258450425777983718323971640300475531475060427906948741334720536918391594581882254240804706334507301179549006698476113544271949801596176220478639269774629108609236158930384517937728873069351760285259284619219690830745421604739221582492136874961910354038427535218894353001479343997628812661741163763380750454229722979727494967482707917530198894290231007961997032375007633313614244840720696927983369110007689097441675094320063779011737295466350241390141831338420052107984791408361499070276853462682019061288564051731355309661222920929090240533306842833672281036710091699450281558235037649170679765494672233629056053911775895093443682644105265204294240998938420915890833791109015057706462480463338936179928135272305439475337161523574500703750666635469113262139079650100203925447498486087556896076746862298203910210142695053256168448288924031032421600104451177004953094221713482012763738370253247051092965189002428966392397903034242640353603322330470105241921502477174342647667968798865330606205816284797851626797147303452883388541874379140854905044774109390363807604317795907936921441928757194004588091384194104478727165603916195373381611457500981451174608226321688576556491108633856767583569841509844119889479043617112109739940013085044000184810762823191710707618675386454311385747957724799613291308363680778133520852271082828395782091583669970371485556722603578542431991580739358448101292834397750065219175485957962086021013411687548196169242896627357138128325680178876502335892393512812495099649884746534248480160298550554112687790836129600052562721011343485867206056210055489480686837827922554317228646053348015321128364648118161833328887750860475638764703245300449708320419541534067216563799276236935871897208467972927054255935277606775059816847199464148915148968195490537617577392642592311583903217604678165634761805969019766827839232642895335775423030114221855540817034912850247815186758307572397064620688559803541424038137515945024109396939434106379273882120748204704317020422808967070150504611361939630348041544327096676184866719334698407477168001787313761984754018473824483236310455016870456843071758376256855039667511205936651960166887441630439917903368944943509403536158362279462585349386371528438770083654188748704625045157422966969614091346946313654981123714726663422917618854433156137646229058665437090729596569280853322888129692588479990074076833824363705814681163353783177551799701649189749289157096853021220881355073175328823507013341212305586525931824654330881990944663712219332825294148818326906816944984927726389631605470901185308636716962787517983187313375744261092673997708822634760298452507946302648656807077793487466438488462152020137570118019552540943025306841224597042289595501551456049530758639208276567588376534958830371034008805187750250336327309989589423341433779523130664182730689300746653633556592971390378265534317786417434729664898990524939652715996084417365245523013319750950169250876805641423674614898416053029736497726497550373975115556893540571332076935191256383094340664599162700878195417280982363943545755676521051606447089900239012623189628578876284028257607027024794756315240452694110425902898804502277201369477185771989452778615857551381267434700519751528052262429708113180552824820170255098137791769760066022917776601655686572964598157653938639406712550088016123566170564122326730917872960571300172308283891427475892659135551877202174714453263969662032244597958137807388484420048503151209926644282740369223000430007384768945521928969973299475700995179239710054889803711468670815176904487801954567631059501557795856601359186693523797240079842581271079442050025226580230089175239725008899061862205461855849760108350548705493448099222894719080437139755845976310505583702183137719840537805259685911878980677683294453396689076439257084220987694292099567553732494816431578812687705255048407495568603431636277219165554542600909747774158601675115657712745096746547170149604756938501207749168001317080937795927946549510152970869956025812976202694862704097573297507220096078576209911578241318400010248690186980834986555653092718680954721948666464749684307153379107694556133274117192252479479083168288784551447979389277175387241709520440942354619395615599404601422314644760975281386296484103672856372536341682545365796307812899864288931832379570420303324705339823177733185708218127636884797004939528741169356998997895333622401909916577897270640252389768190465574003096173872382422993412153690150626603146897561890247980576191717855214365146086074783793836482021488021698231581541962334541280007445217635175118820056554919441589694967411387073540889310380828413988051050449892212556912664878290051150602427242319442457152575772377897461598488025326567158232803176542457331402342801797449712107331138033286912888910467593438079725952867296481101802390381330334732410454661864659027943559208004059029496563212812608983344473238706599923885751193446954464395829085713620071920832477142252341566999660135014561062740491498363452998474127290413732666878301872503454150084409473956803245207575163562573147253017831152150475046987696307535179259514928639605328167794001857946261706129678499771378924920661318560531245880782318248235744469193931518799329632850576345242061982779236366390802125064311581145577676889538364898512724127531681250294121558294482456249137881600020248608254373510509349240518370296960834367977274336258310819335834278259157441015266670015972593794977198265996531360338085792480542460251044509265608147883846237921204480946120449643735631001427282475384653222924838923076286248590130203774153189282178371026900516135406003636826875116998437953705529654470115062694572923659038704827209775160376563534570703767671284614542300155324466306431299000253490279287554419296536126186241464076167422316756629334292488112313772998672461306794380367489400572248840989848439510322228478607553877859268248703782477394277351150686143320577220866303334797476939295334686030317287545590792561017192353535665301322877870960670395400495220923804722873344394831121547014201635754106659691166254368986171593356274305784738785438199135436135511220988861841513184602860816383244311555213142345439725890089896956372119790327386805924358490047325533144487654450384913017316820072143018582558624778349671219989695441903282885010176828049306900348050213949272927628670439269936867657147886576664562638419491951346048718659354988249324776365680031689582337027820596559509655473959248542305296075414814113292906654106499225581601971563746093144057268142684121233152933326542760618940972703885045499851098381484715574481458323950677371636242938293906325052021219426445155709490098540716485350734806033126341392375497616863515023724606918264157398032224393527759722832471876719635323494106343250777860186840067302677144380899982172838278599307967296182218912631078748693008909892588962574524648582694644835134180049185476702665481381779578083143177706113534177578446465736340390857323623071324457770293210191688916704299918849647255936431667919645857889402622479946803456374162570968514377914485510703148699508729968454535603130599297365014236846006632422720225270526960969817806232063174612408417266500817353672814262315586861445157122859322446303470794595585659283159216186976835394138976541715484179795523204260638323753152450918552192115282846969293062108151584694063343944608505238927299432679501487745756046957459914275303008606117951751222685333237407417100874294979373937387669719170825054467874314000170899669411922885586467771803418818113234825917474132473426879557386220067868228383079295527109217601257665869606052129500493922559376603896646462047540649256582688240981488273986191232958099037213916829652621271905242947041435445040315105969537412891715599753734471359967435106504489144882997166644346962566747523076664696575738582805477198842841366823403664495142373798640999023853487559648416203759955629778893140050995029024124551915236725997684320130507409002794821877361626180210706214857744799445285053284414219058869750731391055453283998920438061494852898779224238594351615891947742108993534523147106639421206412808543171160305194875983720689567573858775491887698831012948667110843764223173785525415377321886460908802789590070537444354175113060818109219498783762506696457175136489958821732688676404652075111219099020527458336761702416758486439445181349413722039791726804204698043069819864187027085436546358208886372333611992582384274345953994790668316859766786278338374891232168996196674422020531966609251751429338734260800699592346242260251462854494676409465425345674003825360557172373780029642230545284614882252580245679663448635846711623299915275101228042776866977746707216187748360371886770448726149892767264659869157623358563829138480775213983004843257207792417230414359819065261369476344662252069111482760619040500803852647412510453657968923143624146633706929171504437066757087021284954247844428998103543269042217241395100093254996153722615207140125682793739321118137319797600263978888602421829550522601197636344284555998591307582740852537784742748545379388158682282940195927571179306733580165076004427545333967686745571691669418490680137599953816559566103091472495151127486593020803878630551330343681054771396569533927879535195120120213313023515751982999824830466385327937025925287037543045515268545966944070578320402771523726906490601076667068744654394419428823471415031495976586310826127615186046595988028349651471987261546976359401870860044640419513723530861745704401225609362491175071972808872293370245339372096622997360563590866719985419722381456692662345462184112230510580851020272047245156029197842889757180127791391312922228021452270542696635778805922139812664549100384641331905898399061001548000714514916527694092197386687143856976675905644521099349790231176513141236674239217861363517946876084646377204207732913632026667800960656432085534185293163502204551382785888035492856672742370293015027354109652220944357882187210130257821171144891810800861513764876160896454531774067703037893800382863975684218386734646295507069232565299174769999308152517021381790505125523046434368550889794834114507052372677479552989967504113478537666370375378293613979613213006770160620916240057136885748352150020775983332946459188410230613544989344823633309890138613755834434810286816592883103337047633893303225368488477644134884041346188730320048867985378205941449402988169975237523003041521795893652784408392085087753855860510685058754768131350856140073273792663331649682432307077854685904322681460065122005394137516548872648696226131545043830331117132908258186942821139828714091973231899544405576841422830851802211792478940368691121606109503179395253668701348052983067414981889458548358655429546064322030902309227855175608395271502804490179370985807356377815231032195906840523127636122698053141620083146057746969383690041098672907581940439282600807444693315295282387783636306506178478736211357529408022381795070430209544445760698473676298837410134546025688021135562338372450020610847781233231918916573627953275814443075602382036387114965938304996281292180181649675839333258656079977085168120324938172400387426574733176170310602308261993693777660723663443652226340406805463513515657195401332659944699915147915183737173135628568711590758459547667829429166554394445417501008899530023318891498777176473731288350176099687047499358743978153984152987892281321817862929465897035051129965365489608018665248904800269321752216161081537757096408226551212976144915663629143144045105029013229259051734356151774207478596851502936775866422873159957612138443278783475949120561508871683467621294436552190751491720729097881216236163772771241083319956389812029711780802890917055192479419711526277733333248694540446290428286289703264098320244137721288405356268543937983602568822305015813659672310570456957683746037649956863654280450296972916975242860242814675122200286123712793218929382569648567341442978850816955995287201997133494979161528481499521999884258303644166579475907965273431459094828100450135048404692360059053705350663530445085796708106172843242881939579462129146320496127234999080509776370743083405620802426789864400088255724440474591391686529901037629960516397202982319058120090114571857453513072748822702908603483051069699664315887867999795438818899801193839144145143779875100246842048271477072929963768743234883950149456987957464634722417133721517258979362165584958484291438126081119979132446377261682727574494890230787639638090877798197886994652986835581339609685615396161976012658067343216190587971993865361954292422052030856387952040185302383500997355389879970750459750560706716465714682809646770270652654940829565348879550649502123447519185672084273318214064139357427437415552153554291210414582280776496825906876782055452769591346227585970249624803225136072423525063844363936010832381007479990211762532490627494485588687935691464980452956590689100992565278978392663222228555690678000025104645142054261020279441619860624725287145343044818950956544030391354991520549425639489051808695678322181571834415002865228561416709288637817369879436073792219352347022370970789459899093511593573302956994696868828616529849954039221950097549143649219022398211080759980384546243230736431718945958781803523393331156408441456346852140336427452155795578495995259506705824939045674239573319727920972053312847340072213603382097005596120977404849734572365678572567800684274739496515113840591908861065185102191571351240896307757363196958248312567628246174739338113450365699786522410571996841440390809065432209360151144553629861272187177080471516653162123453583814326115903501695625735489950633232474400661318304687719636307247013617810130288719321748064636360414408614313867016051776068736786609432146777025919469692468025397021850002167007938647305878935132437020232371556351251020891976358104262484381735978858754893659496279851676701205854991880313587577199363767975001637386150280118459369235306084002082688754012643287514787199501132316967292779656968127323437483854017801423285484980114602984295559687299315847933522587735518083441751891336088615095884090244297851067502859537718315145531171095117893102667764812811198396225640606289327654106248169744789401284988526482860672769981912515242833464179891954463916546985422137739640939150572160097335953874162978915821111771895731264854388460329536769922882523613351287599119615187660068526960269554790191912176071930622861403784237734018760948428061229396750719487462871636084106606697844985293779988736151574832701985154725130792359522715046202681142507622413014265726751150029498212134603343635156598452440636720986934666591111565389259657603760991544983672353370041156331160098095294083286891116426852698554155761490527256615324670466832266770878499905004397416774964208459501478325910899157068860006066667098479613306982442453670118815573546545397433692276053718143561455579042059280609237276021849721629766914089128482889438390070533849611356617143585544796169944393955107727374972152570105924816162443007773410052758034453887796014285469276266448400555615481797815055779041816605005101293725389922327334869830747249746377575270807499212292764681636137822995459741499341556768881184525414251786186367372701560335336649243829282582837114654844095050081020693817231081048477952058206656751006963998960450523990679402486843025107010768791203170290179644197012889529210428663422703607263042276699883326965894463151162383936803590535203321436180869052140852338457756773645457875906119526207113585964543803216228748928838286491752157859473576466927769521771134310642056728257283124800854287576872630299772730243102571640913013477980326464505776414403684710099983691365157835673443848317407145534505492218819559590806204608425192854328336617953478271948621331993853645630214839744451484884835158451856396543733258361983003282115284154042585879738434242409401971242729577731583072853906391620684666090060775602150667341840188191068268623202804603762890270309732279345709886561630946683922876284613586098140831509324882548321817297092072766927312460941832233525325863083494790151078149811107341440820343372839291424412823811779828810976824163619999528872740728567091138068116016803842567327571674888793006725734763728858448835798619817557307170745230140258838514859931905956149403762697024758203756934769807381591778639876935858733356523448119064019093326301800122588491366256680131891222383546771154648857558117951677225347622392835214868562219637237593206802474026748510698700266887092502061313955106626888887168960075652270332996782751718638258087910096309324675060232647153696586562731961309382487317886072401674890550562149543949051329073770620724422956440230052280626206186587916728556346824819817815015343184386960536419517410711667882814871497935612417537031776758443625057001248847484764967509771630291464855951506389507819042248567949370020701023718191836734554350888204912977057325636147731009221452699054656313645742621233439871133679418007985524252568852960503097225860917102585841909200108381160361587723120643156262770372766340828886305468370762526706716922365216406438191035535535987650477013801959559427648918734733699613576061232145085402786215121364994587820755746468527569601629224619326363934934400096190439816774173732707645759826423853080510895063596923044829295049469191196340379275980012314861445196237589801558571850726494183134214294138499729496371842404972842989989346542873439631033401785066261088868577428588029769343491132408321923780525909388602829123463391339608442172491505162397393371680703396897207866231692492745728199007461079262634867598945386826228353417061108542215240975845671430305919509378399848974749747667554201612013877928851172796348823859496190237844470197823873046475570664598310849693842324455954147027476516265423630233166200271980992750819540097731185908332266742343410177838846214775374591474292188517170309453833478440334047717421946455621069781680604517695317839084063160925676367407224866751926655651711440285236967623138347981391809951872700299960430455759219026938763788605345911243282433502472342373408151656755996067543845265940419525359642553549703244108223221990356625771328736248382261678199335629782175917028852673476702127310461021287036980397929322759143864955119892894701813723817012050374523936346734558804635013082454225844250171354346993412507398562879232802326244502207605519967011379759714077413975298655082538259346192128390632854061912356215735264660884112578524764411793435984818559452700963700644331803219722010908963113746829795607245310625355839446873522085658561857450528630277927592079299390410641458815710596091198792163716516446173971611375741018617638627500418047007220395258810522100663980151709383328961472179785047365064003796448825170979596357837617473908867603436930350686123696693198388552745453053057949015711082765621989044969767451042852733520894626963806755934792159732698097226728524243551061644812767135517027176148215260038784588871179808317072520553559965888119811120530641221357962456881322760661221536730098449197989391925076684037900041252253963000383894897170894489576371905915703652583937459075844929236823318105766441921667130432595410386415857170181202763920168344747527168961086363657845133616486256857775599891136915273586716197129495488609173610448014766291693718843456496488665674591997856823616684192840426019231645923087464660412287646111540680341389594372537777116198112314750021202893894178969684406316575411378740025663135179408724205821421089402514468470724059082902564701820738584108463293564358291932312187099500115058956310343721234745446169436460277033178869130320195850422354290111873828854986053635045882876765768557799530168992084343654194233861273737988187469318705713902014278103898857721472427095247526261019761220711415359348758235111369211787203339662774121985629791750726652363074319845297605558678764495988692007030701720328140778390746045013031438925540995002893047001024929483241556927935028521623789057758481684824740538556197627878844137777474139541140629458531916595594610043167249014443496532865118404708376708014398377467476670378565673811389367466787701558037895214715548936495892527118472967826806930472947687313802030867044391019731672929563429527919103036054845083588124222707872780978918310414322027079033023600459483769839420497969649821264475207462002052799276103126271895301639492211407420636538465179103816565517005126055601224653596766989749180977517546114848750872835701408711179135554031807041707717828713507422877842752917764162472712609672082987192820337215776222218260105555436762248725069510185052442828709945962433587724942788451336186734833321252544148022754699832633691072374658814302575279237141119446091794501608657096942931281976867625269592045475717976772681464864414417576251228644404473743423856099574584919027547062904374081194924196425965911564838202829868656120777617886319718035430175844375431076889899513077108070707278257785678592839690868774116456058909337751218331242133224667578615990114807924036829304075674744688161024925397383498813140792902928998509952512139543971970466183178038502261907306637074294613121522897604975371733822619676514196069030616270628644611973922052591337051688265107918798151120206024618620088577047130650259259498155532330336391147324696366275443763116245953743415248530643366962989077486959832828258353934509151541708655572945340211962472328661992936081631072120265094073050068903477472061239405239029649391319517210091400105301905624631247774347782594075238046519799851794683860781964051751338961834091593326743701178827709204956143638833819934023829966009072967168859520771028262883802215598419905831341817765614760283590987955762008607440285845792159359006569530318001667796405145409240434435070657508265042077096355581713750470604362657861420078749077139468220103054008172872903523307200173242202276734792273503365868658865649354245192723335276610966608541475702365426545520066712866619025190472172910181029075004070663440213366543031348589675218890379965078848223535367107198753414917022048705547614840375364026180149644795242136041179834924294180701286178318184846859533775469624577205687105300044468734723884497120467296798394720781878362363615551913508909198427581501299398722306316230695784306269193177450496631062818124918470990414719283318730002389620965381914552326439890323842880777953772083277974114771785126231976650921024147633779150892949020784769319329475181590193066704280413189627417280114012235124848339679850082902515904322414226106876789004098507323465141229564179434634898019520060789718117205708089110234765012383284216342867524579779266059551916376161542700060300988720457572510955725865169560090260543978040517059544811605780564117068720877910921793210498542329011098557863211025884645498579316058486953049152860996109124727022755716240266421369895307018739060466284915112445281949912691828640304080806481611663188799212389761482829081822605041588372147500278432341790984672349800938638232059480109404841797915918241952980368681306356340003791480430342869618042447197540976292133716749905779969132716436070680996745766164209118172043409609677567369957789784550561392364735234341169876159837642594996832064262874633129246789950220928765027255032118480885502745456192040620295568367903587887445689299331880632136246865784672071748422622339158769024503247481117710868309152222906523288331674120070408029013828052125610622277835246293859127734786866921501505593403761858278937139700976762457710178515454878209589926551519854237063436092896895657041917265541793250107151015813204524499112844508615545435233000700793247962444000243328596397383069364660501086960607579676715635724095433404527477597444582740235511639798575500150572422708935344157406138604885280020252149665359457220805141058915399956832380271439798572074494988454859582247854517588119058807063277771827748410398711481209188106958802647990273866188868348375113519564296223372661544562349980211231999341943902831131467403554994173246792809723859927010540465877187143333763319987817758678419604562841402586680335942185129725410281676401669855347983742914660525932717755828801457286253506677809821680318390800731729586277638332519145114458426792015237538110389136274140830809637071775096421494958278691121686112876528581848748987589241508891637937761294939430890930459282107608276347239997394034329789815528963765690642241745953093844633741761088789778401717602698946737400285851121646537304886820478686653924556598645371891422616054340621593179013685899897718586448958790754751611721782217232266063200365823757914400215954089042332725558132981205099107802744008730456649914421843424249774895079034922752275681969383726327339918890325637665280466049627813124891882780348335148668828090618720940363817333477512123663686717405168218002596291127226069790833109912939646113019968873932849300781587211559441704330585406304474115036127778985223698269117919329766916341042447008382708022640538294199548298906939916161147632198742852463420724880432832878368894339084676130864782231341011862802325452307787684122901463174081220747484413908229415897021045294029383770543747263166433438235094341266678518259185115860513696326224771628740861932560978407526266108829586348273088624545447045654299249869283224075674216425101412283793989255192505533135942351793576292099398425459848826765796929650170410277431123982422224321866667972074608924343996480268016027128560398768607597604595930720499068544788666311347664932354172784602015372215463644721564934472283276151700803441953871096540629315569402404530777043466359227494650016812496127988434963326261096882173746270808984527336962712022144146839919274559235677793814936163498954428851033450196735812953206483660185274598573238056830420973018332156644422055636657249313803537104908884241670489287364831857247813905473474075917732950466751165553324412932024415283913576438314360148396724318036983653858857195463161523778648407392287501637962289219928780183501471466583771920769290075280578664416097970886816684885407814162823071871052255313236584739781317796540372348114907168557835677119510573980182933974500222844266707795608115758501287200267696486467279584669460771966681832743680503508620648483129035287238729139645619734539982042919599405583333983808170007622404379437175274187107769113289126307229488079723665638584378978863912366111999819081654133763538657702040535241549637683144111366155261611706905188174498337291074796874922252376302160281562637524532072057000845500865592031841761736485135355123166545723036103936939013566497440411630775372552367162676383005673985680918365546130120346594981710569205422235528515318138031928577149281890436075112805490967064056555859005543914233086074199844417687393716698837570056863443341789618962746188391268765926737046968207970007776022704886040175823386901885463134492442606307854174772113891077979391142204165743533648488868872590440091652817665731164527129273952130264567270770554131752114375357039894211232058354175402390646106694481366652776104585654414498610666536855645389580670469310103470090476394170384019998540125420091987897877997883172516897318775773073682482073139933343352907038180447267280765928227331482709115805145125608855032726436499411202369517809854111673043335339771582584631300500383358856852969880163646663008844418693800248810926251400993918325664248666259034338271258725593850683395341644292304913814392716925837145982421067552763835317975597944670290838199797892573239417971701355087628433638372352876920568514794401817280010267411579635268816547253531705043144768554537493694392178298877408987064172827060778620264479685842136154426730625985575820417790158895399087295462813355224921902982403298005817595060372065625164649503068031461733372059762874175105160743331046957595470188606164137182040670060089535772575276645513447588895858944232150458831959956174424965888260207467454193399435346084663631279478101288974164100671269693878510237965274026159678779801323883333458661851111568217710047723806472396988710462336783207265613948187093896309391867177460972247243150464500427360325404459642870304587576788275332599064863048628703207897893188636406574305065546237572621117996994399629368626556883062001367948222405373702333245310768982660042489380218040136500864505568152080631022011091776038255111227241724452124465747727782028579278780251219385300482689828567832730635020537150481472044418785756849753267274241419721570676790226309154668182064971901179766936128797951695268622106971024727049350932689081507754798459593172497188324341618009923012255448499981737810627993412829094148948554337769820023330580995323745397188208602884001144121203452971900808334242097146371208655064428671072509178544962491714389948009857986121531377703764311756960015964201753268918556986040007252308644532394327604090787809876985621751977810201071128428634363365218616083951318382027728539522936631006678970447953284059944607890312421034281923258328514066656308628218381117364346332566021607333088111683302451715376636748432765285436474622074501386373547662505730898452791592715446948577246937760571174207695655961342488676074985977391744497526161980742210817286797718086875127691711305289664367089917683876447945512717269352276135867977428755723420517268746645276477760468855548971802789260637899380849272536387899823952307760385720667384748789659472103082462123489203350196259430249706335709767618222068242674930420165932552732815360034445753662367293281610347106632850723774704135897043683549275742554177431091431429598933265383124423692572218842567748978789528294592505094031400908756441583099536000043791815635003208245673750293425342033966841505629970953452066731626057946407543023585690293969717850234283920649669156698676092928716443809863323142520480057465183022569784727709948633487444942044753352068907913417602178918247767813458901508604885527781142812310088165988859824322142517913515536461265719444828013757952447923539326687481034326114148596618166487732416819990550186917358654839310075533005421274997393950602600756259834110314661601792660482160230163818704429444989511848803841257367204588515546992777210763378578350359017187320163466124111832065605245193420618523502918405955406180596297356720369069712743176739641356077114055292225344632425822319856162476520378819623518886839608403215366648262872579084762035928912602747489910365375930351360917150064780109766001007595834700197942011595893816712203389775112650602800659402293469131199365173847621300268375457880139562376823644481502456419424413643960672180991374706347577556880707931282813351030046171580831126692362609436182986928072867845535738819991725291591498841141823669798801670262886976536059233447473259684967270608359259546893245830454670283030203747811303505071794283598934357327698035248158345817080973612777474147329932085413994688196594604883918416417091145325030956964840346496130439559289502792034476042123153373390736893110596764023784476408897828523322304036499497438349851446046515167154103471102696450236724817550254535570644042866659945268767502458552216108153827300190839202478547143195534409395096153649022313077922578330801236858780896934312923295770918774504538277577872648363205334325516689366227259415128980530546635186618266262213857640620308514334078750199436126049385619933321996548963824142501314043321539277223695723690731478803320166106656279721711045201915388325060024602004106291964683684404823442740359960437723810477249819143095358199530695247717019697047473212209560223251522262934516877299275647860026814323964311456606249508526281971593276715939207002979717294942037508001867518556580304708988834467980086941178831443884125420462992162483370053126940956930397840087613977482579709986407500689883255714390537790450282173550429399832344653258307920222819414034888659454405057810783281922299563605137619045090237032561693170068950235788906778511609713969732882806746664786761619257455775042658685335825920311325990310257438943531964866869395238624184098655645546406377926011437157732646040365539942373130314110183706463989936340147367159753002441366245531715612870929041706472422219240683552138761445151096013686625626010034336349482487192737241898321547884984952757522430944183479824501551708958137271461927876495864057017420313058468466064907759538225123180050764636240194443581061836734715768010437736974485842463556179062085530544957735972612251910827349745488120962584804116680998342093437720325969655139323768022738914840793758591616830684437034705954072420970707894302669721271841977841813814903157362470201735232710540459032384230793744794527622781519173580035447809809516669413862050521444625862998410721375858623458469355576912428352624986288602433135964010992932837950739471368624552327144662651272835850196577224165647981386278320825586187639031946621476448918492561713453345535867112111631213565181416904174534485686517063573697205400514823864865183451750206510575679145456811067078979712397386129952163364319262413211061249498631875780957479179867666780340262859761499234519200768328074724943998774139401590530492940904785948144096529880787939185727319510553861904417724732462703828972737563609647089613024530749480096553821314151216093111546502384924921953296777043850325478579052765929074986603970343303357204410723501535260312338893419097354777279573704985311712664749597446719514554744584201831902605513911345377979137432365072415115147605898493333530495680771043417821239865718707172723143072754281114074529601921559531408000960597789612272887985955679696228716450267453428981516463640847270757931172361953749091726687627575111330834553977285998412819729177778495198264953618728523193581888517730973210652198891386669923683498848714703657417563938732411301332909286597102707866469245890818354320707985887508733205294138054173525937158573182886451484076137068161779679507534612119998101412205385684034180851733600734183195527574824263951153877167760286173838997501015708383986879073392058767239901665653718995347106505188097663021762904294220449095828693798370828395730141615851178731117664359840950812338640191736263799836725809744340154384900193494232918522852320473790199459278566413745319902592976177205940576542951208482100658123129573878599998217175687491952690500235317841467960113476837968049984287799902552014190980501160231498460497690908725663912195633899852288257958424754982012374824796696920218874357778067884428327636907814092384529859268630075652720822338818074182650865347956336690652721095469271780108280403083466125149151792128520767385309166748615324115987040367043729280834035887463441238913015994404538396335025001351338734712083704615465116828512569554286287764811192033658958591213113581464115939914818750410332184762695679844735135418584503998046816664618641047437461371907630199162254795654865573492697174313656846846028028492839072060706039084984727721667574258654612679607437714634865437877396828159966156722060323072949736539033237794864424587929170526232577287803354670068823089229809176084900351906646700871833156546641038955388216455979687646500555741595474598285303135775780668822950225812062100309294185702834950214056265779016354428217339568926827954236312887427770659649104291674150660210492020717088046139241248927695973787337967531894487597930788587080191293983342146923239034611696879213548485533596149322628387611179664573770961208256611367176439023860655629968253721162710189403972049814487468853774840526748227995032776017812715259504371898979324818119335990308185469220003771654102725217293321011445929139107919894709066416913749534546843293268561752746884419520610807074295040159771727405596891209611353829628117391340074264613914611885085870715301017919297877005083241776483894006308329874268968777529734284496116092356891511350644573951171171148266944256251752162110942934841662394266644841884116745322447930344602591044113098390953578194603666296298235685662141822710650103973727797522459033088105777122608269609996967949139379512716199183386254614148614905922513696101319940431486313946331361346203329620871610021842663114910169797289453576758040667707647193024702653215576865601982092094843588333781652796280677644921838904600316146374679726700645835277629301536161056738096056725895649963556667819979220258868542586269052099166426449967449308994627715439795600019943406794130354928196301789624573914016675916046289440326704717341330614127423778386004358935467246195844893219802064390006630439970310425719776002314124552102127384763745564057597752999321960349764497194854135727400712561520381932870159147469980382649004698248620080047763035707180515873282771063194855205249276781699838639447045186715704958287994743608419262638909166128790269577267150827431020669677723723493988331042784077695629016607516539821874422696042674930850213622636398963219516181310893261923645018439982390373255214785379365922053757726998585591578468866117667075978977256239267673445344894272879843089983916615227746532080152453439934438761337023773555073621223414781259423570591536006717979758899869318703968403882804669085671293504116909776320414338243795618160415500685592260206982938714012986944212838920876785077241151555471947023592318081734941967769263410070817181667722680252356262674837569910743025315533351758438785171706300007219194013663578658851132173209279405957051866471023202325908871369126033421168722551881968994556957864810972939444285550693520304750315836002393609626543819645141408232177106497416351497144263820502249675691500083819594020348708300526864997424580904449187565098919660030340374423058620650498805530053142196952912473015048905580344144316508382919637460719576079139088250967839062809678038353878847376846992237394093948632450653902554178604046812490865073730211142918158709126569511021397212905133843419129450195384957224373050874356480206466019896917789264292466547742784015141673908594495301449839507264576122862655500715280795732281508483132231122139075091218384692430807895969548858310704855478029640959193000814944064109508846837355963528265243403982654730457749695321482349141074415892385860374071434897670117416153818563979022277531461348316639164614717985314218911057111805539698253616181404324724303729198683135437934128256664045726513779998744214923534216856490164189212069375360136678034991047173744197071790625426082596738718461533545027312166755145904932893475323340008876154595093989517388092755119461016684157912869340742416476971178854357993758523435200260853946706980868144262580348688703893063575205032393455164830864310838468777522610558973415586645741933488338480418538174044047631688973372892319088870106100824326190088929911441117903740672310154211921081270505873689750315506030148005750738575036416477885278229986998918559570847212888584005912303258523672260016925735825491327451641141958644814900618326507586815083582232275959437550528063991167548872394193067792498802441071584002242021945483134518250744797753778511725482697845798177129656628306768885169507047511017921090700914282783574327701530713180055186989046781837106442937763809309267144718213200486657158389151719751884291564042347329869375397654537496030281979102222136703865010349024154485143936414318877110582342349170097648114909671113845815013493150838915483624512403474971349671969573651649490023025728491968666323763306633907371784234632080984003741768859593743086629752004763536825886855125296195640847189834238881890223093324759677317204391993247674725154375671994019830119388818594215164882970319753952026216263207452785799021176036586733529286972280969990724968751674774328938701213716658131122932729883901134748267876578507547478649908010749526862518787389371284314652658052544169470004809274256294748756919315281653650913456825310510508743553924553705449193001148174023577160136475331415711646547136151241649563560215254727587180297199633476565218963350552901452524148210151351422717648206623702112809394799768596071889544428720376417016435661242907063017794630199784545290526353705410176178545991736058213630617571708772190863480014150775922392513487514181120247294433090986025668815289543975116949074253547908272626129187514536648056911901690265102900936647839482076186255989578026147246035601198185429175362482835239226304588595157322514603790536390934830879026429499664235075113590053300482986642212767129822155473897309693422256354977913568580186677829691653760035605866573975986005253244910265559496347652531051831848118285949943572507727916487677825258003753759477134761861599621797323199211610328499133437576449034909759671173984845868247207782590354130434712944473254292920882018638988189410485215242102175647436704720226429506432339715206799679034739202972129232167747683875645653125824513370558909855857826102704697856904552099681720276262580264739097563284497781207890533355613116936593007942782819316055186196749055265890443165153585264002688827931485159000463755296470344358847832884918843916026004904053277488172887990042981133559468635461381099490802769378709359750140188701678321747343407487512226477117689279202088392367488170854265631286562790383321004855476496152661692093476548277970763391246956480087060130131172587384969860703731327535574396353703069085502647413023752684751574672829271547059190517777846755658597255876079970924153174821048980238747975451828022816573703383359672636980041011904012746621880333700431717668280552899702083793621682389124892563562124723492572931738356194405948406077577643341315175156093144846706680094562630475776446127893044756811179580759801867758322378001745089404408166870595872449828928336638174654327390007526889603188778666031488486475097769899608164238925558443650855453562407127857895613650175736813364565238673985288719368173577285741204472014162867763849285520006337716251257293138055924120605332292806926028762533800911911449935357459687814364870324846465732308877627715206128918785017452502452546427016656373343922834558653365900015743861481419567889082322855877555116045800164148942596372535660032735091275490008654239943356823291811104908446478958514745634451365018027397783988925666692440614476453348957301370293690620689761743632782931414556756714327997150847390699635817742609693085589098420082981841159456994331347940522869537355594271939235123161696376946413543896945141534210760925347660040498683923010567895971184428566441763592330706692572676496513745740723906284957513785136297994899258902368412329691742340475067303729132635202982402669352936712918360977714691677640094423006386665714814828265384387673785767037827697783185422242374936785275954284037262499740328478795437544377655065493784993804554204143823373753546851806167897152677122186046656521758250842429719888216819750296942186056956650874375454944663624967014766326750514910088407146564854819363309012791355603574504442398234207627374013405799591026657423158824113043441968625558196178120527738557061856214173540250253386585287136010300201428403933161924148898558811838443649654311006320409678781042258655973055741246210121106430554934257404838070403537946004449248969584157988664948102373065292715259064624514296599229000195449220631809152332734040944068567846959273348566087888182396646793803071615251219414388664737300364307595665961160926153753190884080526727543626838063061620589317555924935426832039793917028564549154744311158397077294486271058908108810404140098699728359312902900290003245931597797563213398966698379465671265366438861618698334824424798923466460526855646026507258457524543329517645431501152785962514791291921227184142357201186460546268804618085944833238631129233723932533592142434339620282851347576923599829498277514101312710494522304141920394183818696419503232463792712983724138100910893991566925042413969925525064782597241065767721598233718637194308304594055724358719853343780354128246271603397822098898487655324272634916069710436131453806863148350684019062987958315797111735628649935954246286966273095702085219786815493164974427334339195295342247563419586548742974710221369610629689788000527070530306444099208766991271823470360028888207534201487016430255385374944044264960861226634765276612482663280798373482306866070495205800210777213539337844771795502482783487760896027705696694618227287308957134641395770320041321590605202146449953906513556218187234399819442737394708731135399141498108217832345086655207758598076008050521936387884269519159699791664630716525352906808510024409625434814137294024813743849627167869246676324007090112926929311879439272751164994210982890272481113633996822600435556543085149555189060375572085623095828527794316816282672073613326181249887892274556904183857314858771929758811024128527307081824864072812193517398352232174865030982952603583268829973628798008885351743809565909989517148842731727209558275076116044333941084299540075431289221806700425632836462324356112862339660108712533447816773711144383557075731842143858120777632351534197262238457150241180176784568076293535997752048586957788259293196577381915155159983839003285855345429704030455626887463006243260836545045004079580420405902820018684321180301475429825416834851880899898967269373135762224442477525754755899948285966270430479822188186307631126828392378498341218392590568392804581606253820245764787648252647193093608770210559448646195369025770915156877487063671802997798788295504441212184412312305079677577483940363343435873185759325043774081936498846731445804649783420367800423597844799372562513221758677366354442253566188595659863380752085263682347238120477354608591681552816138921337457123147689026626161642114656903280336256239792194968836718870321407307341188137354373763250654485058173445500746436308645945386674099051390622258162993236684388796714235399323745956599553896691769243872422501738831507982449474383289220846242348911478954036575892600439410483739116267487058122920312508737586595191291747170914693467843630552240614632178406356712122258945932953104453765543999184662686504060944878594953855483106362858512425022184238806400104782199184440381462532583368508281810708921325433836784335362940258697757426611708803871546085706354888289020400717232670007755636328252696311454469755728521693485806986517154898792107570704165633593542198255336219505084276428225377245569478741866909405868226827250125648424584686674617325364773414007834781614121957291039693661842286322113919003937934445175133751409110807863971879206174798653845749766300662720147140105341287515116397310750774346648960669540254434309160459441727746996634418118244316135952323417831474610280303199131069485370365853473455884546925365960111053847313395524913412661801757780662923597351620839697478588083807215139600028138693198201694921027451447676998187354681678793713153815293600273275043837677469568134512936623594743908098036623360896202263051707906871917934570607260556100754764485140395084138015331708162159471222279150282938118581226471313653652613935275449133001303777913823615805711078899225479326395626779102352036397952264639486214411461933526955401117784605875700705069449870826252598430719078821821899968216687758852248149798783562125377839091326129623099151342731661241188986575622080378399485559050988762284418018115946181518892926997483558733318242038648085430325667201303005586138319759828861798818664293355369195844829881557114156102096788409386478885334937972921278601493681149413227011195603741980306217086832135127936628008454743529284981606507076608722324285591430626338722338414503968501191022467130895009491632662308219300065854355617490677830152273460944073602763995814454213308709319115506390909426269210744596004552767733702899981615795926382490078559943846132347383785890602977814515720799852234655186815209679953072606462561411895883323301001587466762915475251489077703202331930634567685398272787833982925746076176013872875051133283629118442059091856406366274666735264358136196559359223591916690387617534883484857110805066333112981362150913372606108783995211395289732433519021751996315705399620420066539711872536854826474191870438959488668331432731244405740025027655556572807787470436237721100660820170945099361991154504183126207054087264992326255578445818050660606709346040851442866360873272796022129510813773621249203847467374396639465038551881383391553543549845994890134851152121143563640214637167799397646938306808087803681146073196146314722300621554949200699656116346405592449580707238982027684465818555657402277596340924935858446744372610164414479448594896357759779644552412988700081469926543938446602184168748921282581937134394239766447874800947428799039748506522829465437619227578730131994331729344207597705794566232514662327207872836003957053839396202389612176687415598190519197811002931370869846471465594770254810065957724924064155392061363004467996476877591474354545719846245332068726244562056966556220926033586897032318052669687986917876722376159689116999801067756337595411859477677636971433648168940661973165378348532167625593266581160915085637731743437531755178891557468537958549717065975512231486716995876449834948443458953773043178970329022076320472101738255553534550116588608528633519864728442884756249956972596730741578199073748179932462945914439615237665125134274094587948529586288447484565066256457025686930201297139036437456687632019698948599956282425157118855376102374948179455084787602521354123942485111637954145764330283269974107677746868382321804198068805173374813501526598133341677133465032284267345122534191781233975975902721026323228488988207494777106042351147914121870527411173346907605074635365420955004693606493800951672818426349799133728911835367314277573404564465048469250466310936266470646107176869223445058637175263464497080239701366154324764916555610576379476954966012777896123352364296332573380166104112189694974104100548786375014499193669169259173262685357728071151680061066759819384260504595418626366611268899525451644321038839038113016021838386006166635860617315823046347806463545528662233646881756309943323531149873647318746468571556907484673440605468486452764137796318183977594516951909606287181062253194957936397818415485741326225209709260976642993825202117728575521038108523716068579986490413940828704164093595964416777810530115695914658477993102108105774070816863172058894773505071745608793588846256349584465255430853754002356706851727384049444924677855070078480343656135494318309211954550460681784538526007313098829802861099578460712156064273068624731732469278111021915843571903170106381190278849491727869232191687549079613792476851171342599935969298399041317348393567622341996817927660022718125342969623587981890965721486387428447919072268908480019489247338401798878608975826669408834548644817924327499972987327512702346375112385518704942575473169218935065417248372098088783629618249178507289228396810643727662845072748763531430899613682517856948546258996535053578499436161459826776815627051836323357658078246461869721937444291239692760217220327334207379959438306031503402492862262590054422337988420884160091074205188870046289606030161529713066916676884222566011784762526216170697057173684020196146661469518204947545215274513555153009240254561228752191126175002066701591956539935216185290441363645862153430837139024140204345596683099524440261051451769760630299457528910916976212580885105727056882446163390387615986777511330776641336322267722911926561953356005377859791911988900246805516035041186702902294403250035716468430410001218688096417500585620007600689023397940425051531172734078489734708405742734556755912444606158454042294804929554516412028210805556697745527190443353987035372266557656165747711396007226572176815749741830217310317895228367491970777253847803429634694072066167237175056264324110119487165032523132334723922847783328175197483264914808516868694848318271045200140312789687857219268633671685457185414750722778000544015540666636623273804525761120548688697289183883903629533391491735164361224134237533423457490700802482607020530920875186388738712084633534691487943331670761918247919556545953693511304760220998226563530794244120249034775557526775133800428206997107544958817919815123616824107885812076108302891955100730601631949660690991834503824182046434008982427785812758890914225913350179077311599674384794102447677144148187265039016105412717509273608075821802762440501346753829887533894406639103724539276222366176492231041351140384121352166736803068209055068902061905229637157111830098281816828354535792914877411039362323745626647309670835321177289633551307430872347326795318133283762803855176996741294495296033910288800327786735796556577775964484128748258864534763616077109771827832347240054118101058914538146901312740267715610933823158877263169550078731605615262500017640029227086937415108260920362692853305181147030584778344227858720753395543035331610168325620176415391155060273257479372172475857941656960654879888644002266204868601367960982509951682492996410085504613546030107433369112776058217765233356191293598675565664888065771268711113033517222431589142347722324563292752032647049993471756753565193113813371881055025703815002778882429891462537285713435591319575242415652672120290927129843021731839642984941526697159376528356165686845657626635873004576211672541051440577750667377915543175495658358937738278936398335109380760185362704902757197218321527564210843112136311149257994704312150728368291123877275213542911991807325987750306404693831550078052716133519783485584440688890418179302200080226103963495925758566670393979445885019117833180182686523541905638999501260036672922205341641359000736865678167763450019439024188113234333613131756305315483068109934595703470471945460006175128889379807545633197811639171965975760724448891593756351772254538382506756242638367445108623979081331407445363659371099905281427567467417804189612171444810040458642445964004021050333682473411942765968601422111721187033872990477835581525727365643206458794126325194733563706428073019765079534580054396529592939644754873439635273734460150779010083687672100178198675966724057394171931058145455997571919997731077051140573556060036833921243966076552004903147200623939944617112899577814748381140756780179348722094472448515947425167742969522428849092903491238254805017506648254249344404489303931853498795512027665421976659443380467549401428583319226538122926775985669607569765755009997212522873653616010139623550461496718501621320979832520046767428612132281759190786934566493247284956235889643784741172721456440058065164738896622093278137414990634389543132863290913429944966979352851436619815235958246314366712239307690286058822487745163401245553206845779145902869505695540914465899755021167296013269993545095595698651958431999215006349730130077358255099299268940430153754780155986292121432655244968912999220609132928589442816214199326953963144274407748159366429346087229126509413940322856323167949721408329134272929571788973230526137435755340170915700869131967851539680339198461283610396591922302331087257725498214492618128887195144591189466779366182786112580752361886559816329311991667257798268923361654591604290881849323671528833750638841370518749705906063245363512372290211351561682351910903614971877558503285857907611976600604511965917414398454983585201821669472568617470244069364289677944736129205743180276493676756121650656842171155773579022301173886731020345989993008958287671021697559274613284359304801348126816078678814967078399466907974705054221610039957696920851222183334131350012539557365822586784213990087273739390842580872812947187197758104399595085852348712626340588183786094211028909517616276353813497751179770344203607080482331703821131113945841786779299101734746133357367530279373930100191955221500397257444330896573712592994541437633152878991635208938117740031237084153439833609409545146441645500599668293839877414245107494394444173284769540891431433269369880199518470437347307151225661932798406421385033588916741702278297697771455794977077167743648018226003551480336984906278365571005837613644394890224068060509685118964434352428957982428139883980712357076785371719050785788631039117301474432618763907757745132277555863147319701846959845069431966683031887302377346676328369876727953898643999745968490522983840302791892462829603912167921334710392953423441552378149042883299204469231487326595172248578057434725286922603858282459643288031169209637155543273806239071007878883967844025061908931833589773626814866965592201832397879044577341527124237108775624668754327241604151445022576440665937175012684361538910503750607100238226298573033204587833177668281796902055500448600124272836337322936671586154544750035870294960307437493239512623515617683423589056525426007380781921634899135898007434827401592388155165508323422373899324376656596235526857186639666613348431658327518024910851484953150325309316462824777951500827114184497733988795223802049189970742650994480114290233694563724039888625739930475257819084704725323423238937411291268718363190508597924084427685407289577785320208678295421430790426064755492122010291797384424074053195037200190460864895197595467259062829708157205799891047423004608877349252434206594433123208526211466991042051402863067077556803091281846588320445174681362536993488101553004018051064070580164396017084403624890832377410220772590384795184750253749731303971181166954893766276688448653229251797921280920175215084039991167348503676033987201475009969927688537486339668272334095932888308544568593134044386300242387742368617328251325076596976560526880067783899021851523552683168019797839288543305248086360007632069555666683420786144834109740828361059313876477826064255411539613430229078181226760477251207625208962470812956611117004262065928015868014216735815740359647113604433791883366716147535591103280927206120065569485590135891396110077335029185865554902996787345446179172435802350335364331033956392915354106241676078628910877691622260250918358115553907951187885221346148037169279308930662142566002370443669633127173332809940944342876879349238360703169188991303275516049956206006299531875739466911466550638858522318664213071377501637163355007341536012344045420895305616217772121880870504145251284913563624375921663152020532538537061366109064871329286724202391908024297552476629297872460567722262995735434861818364725854011221632551733455565542388836470111499720813627556496619554397803606362563725905947198346512930664127466014439458683921868943853983679029270763567945988428176987694934394183078204405415673670950632749108849186316654598684997290130529975133418527016176627946979439433885027541351397066711487095317286961476111028275626629022331420178229710110183498305726647385286232251296250099911475685057572361843151108395437145319467870846414115573496288192974384599300121109383884717592464614686395234780855161857935498467245424792944369898918604367820291175887049051855697392181405096096538742887912718423124837023432378227569748169301143250819671879210283932018736732672243908300242700184894943991484219069946853469136908757971293415957653703291761699450394701431878241929480175958098697206541589663601776039208755619456169337133276568994399186031505444029686301443359998288984698674921484516869491495138609644055178353651785807608902780640934420001603514554259526557088926731167560040085006267549203016345165529163143391478421461467662882533722767148215840634132455633822109998387368108887846764243198384392805964984682633537287187311971084953731568021326556788553157117694656807440576646651139018503149420492173599715675745761217563173279892510432630627922935528381902629666602659709934263977291893544857212966823762369057479771971809325616151582401391050801075472583254319047748613985942944436944567411520693357156519669563176316563901932318443448954412246908014108880193467085077192232516000289705878083478919544004679966470843844049560246192265673362966845977116353826529395130086686447113764648988162098702406913052327119892103487158192763435061981234653777962040821081339823635316240310508482544856768517607301777222563523513495639637106964953176319188754587393420123846789888155260392920720764275601393957756836868025897321632521107492520569919069574092538164795395445003144692888473808317522697404847775192058621615263246384168200606626562820113682393326251417446131995266486410900071983574023859436310520545855517589219310117797645286682648607412247157917717010517762248481841203687357147024763238322944339827309954685302804052608828575313001073212490205438653883988023922257217788425351839856870839910788738933578890431422626406431516829567523873098398970145250247860672363928916760037112561810200330432141867069228845540657309110422442439077901287288198167910273226561040215703112249622367160731410972817232321993550224694038053339946451580698204350880945693485009278898675556376387519159987586849728461870260996911431222871062339665854776151869224596875186724396339674247674674122020361270929775737404612235238054095000760995190792305273578319401179045331763722651775098344481645911560159329332712369446292494851979189337924532706488822885188614729188215931165277354992822969839904619881663676251822095276891803869777497378512943233297246560016238600112849349112282094587436924616232211172634170787333489194861589840858933486625789042137724281656093739183844777774243913474747781650839530194914298051790381926620653178001183260276018350468184963952703989893534099325205924664775523484802616509626527775088305027795849966138207513976595379612555193302563445301577497431089260594417099346307712206575713889739025128131543183342193887461362163016734178649625546635322597963545924338021964710363784249844052778400211517313571645605711747436243378012843680096542506851155931690885862246059131663939076551920625122632272188309567683702728125147120902947569477827087806776039022759444574234269001347502814812609698115892755429471521118932020747976151899001414797520669976018121881791648295415997912778243118628033189896813908716743677059141418124768364619330239470869488912416366752633551604899605665025660861748691067695789889613460029047791531458148086164746334996112840122119191932075756866320845436431102169168939428225919736123029869837409325567109189228996155057762108105191253600480770696294539665509428982952737812187814713303119690293342158143769301425762495620757217390910108087553003581805365958928990569611458584732444660916289474776408526763877536053512892543018613871950558486944049862213907675402351269438903564749547996706253368024371160327235038318760440738569508760683631503065508082356749352735612782420072453091167195639781575068548293452039565848612379061528377598097183039114723614972525806497839323371844691261009345822836843439824780771558887458872646852025016666703230810349914251611023410868177291934137013724285134557619601000681316593344934553729186023905637318459943286649856102208275494079296950610141666258141588550583478853164763567803705099726588885316774795345800158338146211235134318542064588296125846739834728180617804392089474296778397312306951745585274239460407776014395068562476727361493189011475826535100873958583296028028630390020475741645360198139133392266846478428473871411957856809504195192492592288474098905580056679304474683633704294424116685949582031492710546528577804707083352587917762726078645284020111237963863677592822665304316120520984351778098602035222066650112709384519230359737858203097710258779503814506195852795899991494447547935632995377361436431970108421727131431285905075064045902060981273777695687470341347286491400891701828095574060804188330779732776356387878235796042384820961024203796788470209018159932378676356585824671759444543378283492445760854293734425865441266559966786401101055122242486346979047602460928434158081479719629441809296559287085863367672120170238275362857944562780053306869686445851683781085163377997189913481168085215108893585765170547563624104903606942103157438559067480227378302836064588164787247955759768290506654181346707580365037163354426108014189939602999855846494693402048866027178459132446027906853445627916880513008244721361695003825449905883270284431019996051514074550843031359792926623571632379651133897067974668327185266881399871121953753158883390854194105525781487811081901663793569748094685468109925830497193407473607336141974348428341542609374264711098684485100989282717032380975676279933430863363032212684600946298978528695085790968614274567298667901222334254196032386247080177766787742259038586747319801032695329454892426758058950353816978276848808130835794212015817172378859978333544275088971139338954815519968719777901344800324233938467330982456995204771011546160542829275379720291783513990051917338662582178467884715814240883686894096276546186578749326152358412408867528507892162155686618726092973131885510165585611622402990968981939289867573629125103926945428114401131613697970942227843151009968619249695063857322317722076525356076567368635022554972006432828277947012337233153636793348889160573231152652234010092347239869126205512068937998664427102600646436192452965862595003121971428587486106281943264127122871785475222923703313058359220014507209099964203110097537100079135985152749085413136777553577364486581851277675427967246084150296900814053120378072267017171717097633301755621423482036771579923450969121356858467328540172234137766552718957861853793546207169963093991689993528800975377042415473522131815614329636473531746306152502925971122615390794496008963171257440198240702952354729383408423304896020332634843634253290445145721958477990680327116629913523976357681261651795062496763375999063123413899717383303092619642374835573198128240888848005472234292355001478849842575216613835575977219054942740425097657894395016379000228384305382856644922965868382077769743794221275439827996245299868703978414026689819542950746631941904793955281967961765187384759219683904329337490615365900309996114360798236898841883524677727574868738679151224015152347786997223154364207966879781083471841791948717177172709672957476732555536107783044342803654689315784007109707868491188176154995578794196507471928737946044578718913957950168476374419120972147698653442748790986968200823553106851637417824378371996992755208824203002711773979115623199054204444555425263810245032949435845611451523034429359864177937627712086708612421531797633963762928152093991723144354149841764177312730311715537458326118174241501800894673039777996168326065419947834272587897943223334958775764867182485395495479992754730644226092676516206393497999876428158548646861942228733621584037619146192089391446843136620288669724316418278181946432901494974174119477680755983127827415539165136049972697715371429058521826318268744593568671182227087050794109386387238155861777407782411173262049158647533830400632283612511196378227431317337473269834935805585156158310740026780141293915042241744170542385822310409036099107940698140399340782608956686014712583494426599282131026721532191869835157998216190535747580166428833863430356421951185054498104662147175816515663972286706343079406380187344627844652566787364212166156810198708496453813316024448437659088170421595093728884482544177921451628635854511589132019398557961787893175362518578984260782488293196828598326994437392562262020496144157439306512611529308197236432597722225643770860993517312363981248405853818614123784884216565620073338640578834925557106698940000094439708002085068622247987092335907636346985326201029965340694709926539890189299336306766365462069235454269306434553354290829054540912103411948747270995964102891501469846126931342070666239839372023407716534937829278574296174851882311899702940179127147639844091834474245531851669251709422583279194167255374832165395481969216365628144138433724704134862977503564960994249919158122241859843186444050703107267766934898939912598458211621180281831700897171743778780415664373861226078043279990984729262072507374404984461552284063464736562122494002181877009912338301868202695118651367148637029089228584532306810366037133886510688400308470012887582483017271180620671329599002675533489514485739251696933296752956889337744206919460093229349027040230212501056350329502514337477498681768428721037663896717840162205987517427362646648703867997457360635298012600045833306301934879634010214689937635597822403534541038335106151356133403413455935562072320349955069389560496457593595724394446092798093185242145843522114257696700634919835856034385042826464425064569438360098204922473377201333776944403488124031838033257319225258038164137383595145014839857886310231955614168255350169531433082675499891277461146645876967763774699903827206377445943213143986751443661572748294696559177078900460735275819200440680606964547313634904942936743915760372889709944316890843700314710152399171482337707212956099652530502788993409818497468422039214749901646675858936004643858025109750830429153687373221321338123905963501994841026703929576180815861833865343558095325973116539854274906138417218714107838236389608380518608700584274344588145668484337155535286879790803067552156340137944296872933907432324352639271394925679603008510467095572077556733098237380470447968933370847131018817527024520087751872782672984323539304509990180267871328720152314834614238002902482964730901670054070963244526782730127886091572687781142492907339390305410587251349772368147184751923525064288544315622719043203301523548611608408310283935131866791049441738608975392923732657655252569235195365136742077989061296961970749547618056213445558581938031220349243361636682713465718972325032851453141602535857622152845485685238272016641081578018957629256776148108212536172866949271802037343213489245282304878081482810558780208096681126112439165299704497165412770688902617888470605872035715999383842706317701137005946244383775775618075991716257573521357506669468359323153502035116702179724099579316620077924743700666695200548721293669940931728466503042564087282820394785655577917465038878082391167459879097481187389843719134150845070024047837352655132490605719808015685290194007493812006305302589539501559016081603754674446506022335916337747876989651005098059071902588061766520009142707231025754167455193166844951011672659838205254960309408969838430469489347316506685262941423947760964450275526601988490146161861861457579160994500651975060978942488551808647475589335494474303271860831050667205449932227744565092843978583547700509009932698557475485256378064173396685847244768339659274143902932709646740027661502419671722456022289285861993282357019733983598778373430860246977220176825401811890613815542567268206726130892059904358923443108784756396790058229999364514179193208002493093980102393006673911318629696524027846695364512261884047285118182562937453013624628093030098808797491476376326558139791168985452361742363217163760576474944950779472862704118598233309560760654336221697851547894985600101902317149842996279739554808003970431308854889423049751569622387217945651364804257874485636345187119199073963388160117547466065857847991902732754604741475214964937591455510319334321559285349173617984395734200818898331788736853134379894930869136340733487581578360925222634859863281436336653503241866154326089223592764269794782493322691574884459129251479820951751657187493308254837665785536172196396675485675370711320733739183820263725024735547840450758808204358028244438158153820703538958909418952333118011929156599397801386619671605271853228631662837754790050418984801519815913757101608488266068982025415936361885673360312634912061913113556688609994879898925199633473872029539107305410239280856027445855600299103788492952512609462478196542571350371103262962740121485272849637573880150093227274347435311351533025442135237444983185208416841796492855986546409822157468221642976921146443585252518883261632780876096482330488117424767035047005735661993530638370515226054917599620783393766930473015550499229656601222798958588904871668549636480793893710380418479287964552474036838765309882578391987361908707952411159235650803497522221843817082850650947912622948781843292298552522760009058078265548159012845413320864377993826682074759620649591547125168879145380147550639957738014198486624850352663258582466835047774241224854532834138634674484474738266923200456191350023426525687875917905574262240646706306245372961867907506064725302273515688839937846038834373525707381826233049975163591629462037556268906221177935998215107464411353542030038781764234531590648103289965378145095949373118587747891313239732756663450976822224905123369472333814780872597928843174348242304025215376449650199178082771877090228305323766279342895017006737502454306766139508296441701361924276142934406476376137740565351816314561658161226721754686034598047106124277791109730767537556780181428888523353559078168316455248617746248714078702163520861629475236650057317184790712944792710975815182148989504445043691185449474802780434901026172226792404979494577142263520882881797805932073740409123076537205415943443719595920307876440769977401322247717923238232079164892663196051298950515107059426939469719823679143552664871531442730499800940222800831694527901945099861072757696570705676712600335935451542889949960566587428317810288576414623363751215600070882372621697247143994644666433849476362772943080076786176534611050421215481244786444427026476602952132155082988613901201539449427280538030848648521643057523814603681214727232220971242233505545637998342780586203656265005807466894563511167111482431552170829787185472751828441736125759694358922581107353138257782690235694177293790694565879023838843725298187035021108645197083746269255521563706127922781999633829807112935584320918188932881841352928663769438603514520999663095513079673207785520185570204377923005154089973226538507854378002445195721057811748550753823850446527131697756981910928708756869415589468370220990392911723092542913273135642727099654889110520734557201114481403309597262137740278317880574183978347598234567220342022883744516595367187795445508081478820489149427251023264853063969379310659331966061691935791125004081598531481490521419811985339727020915281849434504232029229353084313710496796893160584887133782904367195446785633335945167492949500751852633363119920488012573853862580900636349485991276702059048416201643121602179804293666075586718163000809072363687842227471360833830211877906109004618372721905977660995631110118887836079508887467847644899373627415134829461521424282963896140675682399075065811693661182707949486883773593259381134660322126885196799155491769622773727356715213992340115378933373124808679229233560428782787565061879627048369518229549977923212861758999057099787633605077639082697071352716335459761228355684828923536986760109589919088764120357271029379373595066395370289045973725278560477709924157269996110850019028421438661730231242003525009048826225981838931092722361878912522515324152535963376970101978026500182404673165940496996448093014079457089026447455733747837883418646644958584701783415718952506217608813271688957543564464506153403781119646130245582835816014402710771940412759521896586387906737136490818198775854627499466987419289952995808963843937596670790709940013323876875746068014628065588196072433573531334543637679102592014594200272009300711836924414426066556942097412587050268320500566490579731230272451933855513629645945196178860916009578607275984003955104858693927159542914356985269991111329265052952392122301407367296474324384927948097896047258509876330198392935860232480977472541580472277969288798950286841017548220218319984316456248041294870400205682015442831594163407243021409884833376330971566980785413058390264207502468799497143348736962894838644115236870923996455372784182548560795900321259761044228539633789032331104975776697163573727774371765694332822922281787788173188381312107871600129464582869583737310925672248221195217037805148712331360233089968016446381677817797029469464919904030684863238365660532966525412760763316657945790981417701321818841829854848545281937533373141201381384276372656122747170361096544583307243804144230772872124248352777165984216578587178023094030798144099345503845435297086622860531794649689393063513181536708938246349304549061901421062596806346625664408225018228196008902573142217178742453869979151970857921496911497096085852293026582735978295280287182920138134112011391472561922877408595139406286892379011765180127730968794199690093834143968675399945107277712346912807588217681288476160079223859194695486105817422198853721298152576502237770749389466246160101124009103910838515007879790772938922397284803898133677730859354673259108594127725945426074693181077232714454702683565376988530981735850756724224938201640460467117591251233629697545949401405168461005592344476792906692245478274304938989418518369870910279506675086526350638795278279450835664058936906050326831155203476212967842170412131186313881084914498744894990645904439862669524712968374237761524379765927531205592364767330395347470880061566329349138055503075448598270329559921971142668105465530767074175579770494475696422963420206410652541963148654489410405058518365375607706540066506258607949230652353307526916878009936099231457707461162931236822835213098309653447382540982951709000797928299660664868482173408860327583226029185278518748805359632831904302228757448124633135307700397946513906258136090570242014247876464616546808555906184264052003774058696299012980807913214689424660219543950463237413193773402532766357084817315906638421718477942876822655911329419885069884602788708446714778022919886772945788212230908575169081618878759148574017528315912968973993410009511617613760854226052319886972951626061506905411710955870459660608615666205224581527496117628068751033774202468958916243504512661331248691998121981608435959425491947588798735165242722968004994734369885665431660266373894945840989660895179214272862234071811135164371011708875077929492703565850019865470332806732537133028347897227943469728140982824017994818123681174133853160238439317305367055636078362157703835521583168156438928212741954753043164964701044445508273349090885168743239890228235944854455365362992708561519826309740672360597325482547657563679068453958130928113627817997712076458363676789720467820630320135659356672744117047392758493733617923049039364931843812895432895212209298524391694975563486833193823136565275342565890297835011123017632954500465088160458622735405044068120909447923372953945911964336918687514956230629402944254898120987626454988589306342118818105655364969937037332811781455448494858967215083296184446803554852131053983165341985329201376370368333999385380268701455791682209769983878770530051298089789096418269668434971576984500351323461133376719769953539146880828517258507947102006412510846926064677511993721726051757471261580077863483663500341376714956977189628030133933525484708789738209236336830113011679369758270657739229999155931587341181335723555224068579743328919503907035367634856237131541753335460684852425196434596834143447422877955964117995480062831272944819564130671166144739602907069133923171807051570990159250102124323418331486712661102561938599638500096088553593449685626459494603255546963942980086296765998289088776433277627555077374568533956790020511783804198425920115078421253909796868673417767333822415819574881117707332519960618586640493712937975112400620470290540571310961880395347711526591962481029390028469831194014069934265111871528794301831284928202223510767770299144284333192476847358503004650773174993057861994492579393542449103724173777781905408094360897678958722764549803971963869044384252102390905159841474454579711334790562604634754274261084297586086588670921704919642642649165750245351184205715395616606735456150591366632083338621938397584363965413596632063400732770316375362674957817055532392915054142820942288153185344143962069882604485126140127327267440765256515505085179568195797930212991581339914668910481278150598473427619811974385216427873527250697100680053784219261441558980322260661675733029447785527733743446799331226778105448645466698033142325850218900524048708739562325539487714573208675142925632226137640657658080121051893388808679952304434083300429760325602692693268999035715182550676241036009108231537500862808151598129272080118750677378089402824216157243565449812067345498158886825491583997168909339923201117962058375994391119013350427322973460953628589055319153404611938973086655258263722402040237996199115009182855847964834387212217588642444185960405102665071524754601923049211266723035043795918975293173319209820594115337066724384046230682414874091568382991370383792241557207883535494947721764900476460897257170242186370654154284281452127153390774227199725284734123829068973596466544009423428323159193017491652445248869081085474673908399049195104656475727843128785541694523910679972568164722397041657364488486069517765948266162956245266930273988732293095534165293481679800349656842864548004618873350717950694828387260603058635317373870217748820355106001730997826850867748495918445547785842935854696816735141712673874973913770662511345636211054306800554171743867648739506056177301736641217726744909851490752950167263482019371484295223323080917037307347251807581010023379345762146583628474362957464658152637488566451011407820826177314360975812732617560862473154854083699512545793091276098512372608521247967774736575024930325630808721544671006116423830983330444150645615793896188617555482607091216681349285482528758586529538072502029637823070369994793256253192885129991193964476899281300782343477506745219691636467350196518324979722560234801856018794803352585236148590469020230949396406652147927119475342742297028394085762150716193583289802788278160162410233140469006067796117332724870996709429155076159520261879358796785340850531091706633006687223305617237520562150235963396479773011918516077958783706803908663138425965164801508278371282902061939529458658898968068859263289867128259417426620791300330454285184385339933188999346203343307902005356564491913919571434047799178193349253926148261219299962130889572471071001996606542891114484981736916012784625603518628024310839674962113579122959737960367850231798389133237922811117927679310144377020346579059865287342343174179797019006950574987622747391004519550610854703706616970175558594416391949416636235925901622501839437677819766468843760777832165133044922425783017185715601523515906226313183487437326624376514557500851145214469010469823945753440931513315509056780111119179202704565797902180938302985085881653357377624297032359222513677663490155313964503489517169866154209876397764573414177108167572402464740161694309924554475263511495266542586242344850470620135478725431678471436089364543969388478237512756912546822587586534379997381985458293951680689926906966758549197462049037618395280361985992702511374824014301493759830427524664151623668878599870539278676678830114356623366880836165835472168470459194525210667540502379807858716091504142390382753856490110619229738403374418380146756049313775857543130320799925443412231293517041640384265922686558135539410530005128808621024640509053102642097978557546662097874046071130479649544582880788423342904396439970433162490718643284578193913261113092199079130775454952680383565819452461311181971119615733745840197131838063438877501777853582488249931945090449833405134557020030984695014587187590886838760007245106078271385283604588528683852474371934056886118925721135347058157829280117551650549553154493776896255173762098394179101862667709214914926645840969621511728634697031126577483630195023142939975012028971389599321917624435512263572619411710030657940949281914788347235122039320143793007303727104634448125935939466838129227363634845181357414674235690071106430866626879984144581534516247806493971534755016656115646967311701496175180583370565958463386274362213913449890282638906757139412041629182004538450835596797025104982229369849287957763975639376661696250630387726279439674633875709194391057301733744093631167588441486092810143142850063878015368483254408631584662476928847879312077582769806775090103657165454721862183370722304679674753024736265076328503656176917492905649226052607927355585756349432917618778607028295657001052924997386195986327954602795619601438697702763596996125077403897901582546332709845329837546945638378533276114352918851567949256148453864657457384140305182970354863862718569261099885931994967258106543663632329989785350804581772769678969393194632087270291146032610349482419615598505020616288781677520700026082306237381912439598724430881279001169268611129255586092777737949226993174772562763252957603756445010606504886134951550816451482410109323686882002724566922041925085371429908656805003134672727276033243342782973448838943205705230908950858379485003403582642469720604691732176069501743839326435956805385999774659847113785484727638773921643235266103913313221289220080442421099531292610724629530824674864012550118821020631669776426671568708187875074550692700361296483761913920477287319016245347012076688019822017997018458893609338125073350083618464940257679073551590500807968763920369951525918384546170771435354807311251873323474599520349534278095658318861264505807172882752735128026252597472849465251409505483503203158859717569379816515071736403781337984557096459758209564724668804404945663263930547876542270532882859855716047793641182564827407216431357389151929481928616866813749807193351756933344755740484389685552432763319643747247564269992568026680603732214428300641091539483661885180314649125750082612831450927997820777669302395437483775098184881753199288670122798406758250428733024735195732214461030019315834286747802611374826088840871802723667537250983536336449333589197112100829834762491552739984398152784845402747955431569069797139988210707998475927071513332487740280115456701027431459011873623391619922855216361785959185797114716410558273278388413699635748219903687975758654161972066622533143723237246711769866597101764075761917785691551032331344170104398060866395916420506745368686597220006882796281229320315483953592224726450932471949481141439307894174100760127621864067661697560052222522153741543118085393416647825594965124429882525344474857380362396144732018510449856066167247997146709834330673758502214282456649305017462262583226358575185042322445716003827308127072369891920886820833383866504142719368367637799216156955567463910524983650290365809663114790757770286824508969180595170307558328570899624078288528566708470217190150220338343047851654855272329184746930814567586854019225737285519582120981928826492084681976120704977272174672449515720998583815097793783278867664176301453246018250564979794312403793630220838204141027685548718975542790281151016981242486699697167506615376793404339957210511222864417227490415985605000162090224013718587120559234605081032073597049054174431835142759544350492440636644075867687427546684206876437299650760242360455533209311648499991520625063070647845497631242701753209718530119656335982495636458250404009917447249834686991639788648072355607762113308602386070917512695624136042718988204614505847504448443461500491329189640583305450947892889044006213835030560182204662101505659340318104231950709708531294177626811739354773716201270860194692168685819473619438322062382726836631351412623451270249616034053327359558409268933015684874965088345660748491398028217537749639704922436080475685480692520946153236441443807936190225418171468689631038819796491086193739309152366516128964000393894056351612674421654343845367525341001153833681393680716470505096937399594760353914361167321176911346332934763356259443501918658529295532214425125337508788857271947285912926596214834405678879706772937123929720320985831061843304280383724584909265328751464996863199400589088136200677158934630805131205157139146762997914567243582301861006903897738912300982970540560248798975127805732980960448602591026601650528418526029991079537986249436217687042300734657377004720208316793260700118555765682682788243073410455382801788033129921777068386368536188605376055107336955764097227737315530993299579490896256501539399303997033113640220772202847528548966029566821766462936727448717956962401228010155886074598215463798232159408066076920665461513290092322116680048372448534662932729021117419855122036387578158584586655020108989225521210399081466902569303021661830507788369898947192003646271487281190781553348641390290014205060642246027214451948709031807253494305414674221724505118502052806298286565763474482260736858334534701142086118387617551664714770688444755383101594139147196724810732009930085445548984350000755003038831963779015994914931748432624678307453213050443940290113468164339359639736000645675911294401471880766514864195510724422033394289130517867073614604698404059735543703814187687138912665111441614836201498741566926081382052733206041732210573010893943530707818512526007330216163630061147046445304187293096123253390088540404856124145775362036104578708500881646732658007505681364226073911111678330751733201021771924554270609349473048118301669917516169843524454204469332870074772254142487097214573653378510008044213082252069724129375213491998729976982730788889722535061047000235564664131925723548393597813347373988884323026911358298430864322201586158252299143302841695701768373662162210938197604116883617292253807412134387343298579249663401038749425584772980085187992480836537029620608939150316026223567040900172484242062627168774595585002539706752850983742986023261485208143742979699659012444951835234797437373201575998671330028869592078676324351888415319509390046262098660851149247123125236330840141128485523829462582365261676483690429707485357124847679557567449475760408968496980321452366799734001425696886637696816734906398251434120118996519692345325681770464588466767924069819742865602044724266683823897360803034388465971213292315571726971424203175282053381061445541372225143405884899949663405594268467688713081420282502180283796420141376675599803545148079769403479872141956667345747973588633145436832271086089520339095189704014583305214633593758790090288456500692718444934946096012583430642468010215464209215614733497036593130703471782380836505798610556767714525608601530788574221818494301937622627238368854630421373349462852878781428960062608471258144416690362508581351137104332537417723165535199332844852954189075990698840236429948177946933995754015959378563568904293837648005893561321287666719948964989988385657773200931661579223783084794647250064287070614369217557418406423916734440265584016399725400613642944414078900133779665653927082049203787691271873565313482393461031057780590103383657736981052876816844805779815867272959861443538579257830806634647383197618720575948904323891715175489003908564668225513762861697028651560392400266154786284457902232809007767167715214466392144062878129368641985676172185073751236462598038873045191322118826284376776481824887635953052738678628306642846611339537217495960880690625751520168592736036914548334045534718325666776010924357910323264092843374836615738608470559269143948387362297406712121007727191382163861812454509999536215114609299923618120743478959310578778808219477246195622255432092458297976499027839225423481091411547494851623653043423329052183186446683717393162160908496114092694883655594709557342167165794115304458264067847783074232310065210219196129750009969796319844553071214705959038085224621793261871319076859915477592680494028608740787618852644991844417180031363970816549346264368106289582301990432788066457456021712268845069242795016062185999253313118022954587500788685804940183069622937003404173199329087959757201876460470216981193427608635314219225092979771244312097312366581264225998470582755124173756897259607752889488028405345755464269814013914079265797969135051834175477028070564512256276793746935177765861739578261471351449656746732205657525738955744397671835838487154904505200188862858065553128467196611173738670064104769145288243047927659399797393814832790958660197952128934379601885974870400104701586957083012743697933698550687360151516227530078303176029770402708590599077599738345437091754043882903603476914723213943373826179709811950162602234871238805918275511562562898804951126177404541530419243750956268233181148619158039470096244447397452982509849249739514661347063393220136220550224951615110770858483842089866541238955911066363820064203121469291857981926572890456168244636222985240830369459006406845678958242583332593934100373802694937095533370026216179555828969666719668005001035080952912904004908092309356820733363544785407855204718408475562514249974451703144049895175414825842972963059734935587980046072279602469960556831266363471292940930481920237482285281990989915850316247675496575201145791898962941131088372643455008971784396869331714309912061988006050261220203437609436199841544673160517810858280555088452245831008361230330897818779284871564074642709765131001522431589815814878627651685377345448706954064585073866512883069151235437701204016899753471196019623630986535089549490355042833028860877141416626025923098967244801431943710085805970450664784193809172478329127936673327610847376268460695707579510894602979467330001567400294205966765096725615870393637038827164536926802606816386148772231316057177455822538329707799145929911187326760732796974190243302297553951918225639006838993427778907323921518558919341300055367544709705089911010229662611177220212915180522231510259059612153091655857118821422676721295685648716348543179756261593203092992942482444612936636199468765215123093384365540555256536432970902227476626562075606636537216144229660934312925359512273225420137405182338683359165423635829570576483279990875311526908367075838521342340264721573267891217971468220280232876174888924022659387576116576739820543972053902314442244688499124782530353239666984803813495876388552829158990941259055211360711571801584732070298323295762401939955061055791937018869562849448909103136205394681601127624323246390598977160525534849516569813298568491218141299725588334523939474062955507242030660095805828107358965855347388318139758190728486904755972647153861149210027732475765901313646516899177187874905537560206610730367308893376707894827899226136426111943388685650257283252796841197129845022013166547855319104198862623857694171922628330929819279290320963032990573914686902037345313274923118688949564335583579483278487295356046972184493925821029560614869033183263117375873377999329448925553789617535191779268935193330774633381877379369762494079746262467120232966455249231891488734146958602269906125241088752580732922648409350301852517887625761398961649897531385560716914272923250950201078728272378354914565509424033908541707094846532849433111332604967060340684206112056474392202669196855273150593761914266513143972919956104496376541126028405932974197411075517190699864256763187787546575239525725650736890642531882239629651749738884848718775223111531210493529667395128840279706665214690533129554768580220682116003431266419468782590746656962722069895573900044509351098602321180220630776303916936195403766285282998183951046806801821533664175807666187487892741828015440654927061468605278839459551810933019535487905520759674816725127830744686181138737282115541616765525096770602659693425349346214389008860033519851929357725853936478734849846015876860185808839826388468024305370301158004614874897821701817247680663768211754518854399280603895793007015938934380628821346731755356115926633972078792278933561336749507891874776374908282611559645720798892046341942801019544678946696897583265949203081936847881263241513325915844786740572457991393664965213436108942243754103398620203704367409299817269334186508071044258910572896914465084516668187195645579620737846855384116903585752275078906751746130243568821568557695101956344975906104919521499938957539981476017249577850704841269116222469301083404068307153477874284772987381387306076965763826796286646467062548245816583119982361675179695964115420246461598044749111698618376362571304214304490463521740716252136334633330538907074875859350373994530634095794523149300931439023351659372425076121958189085370600784557511008224370437047143777460931684154254538328374166905819552735329751629054776365075308749449856943422271989434057100116577937905681852631842683584339999467063559314627021280303440092178167677789760602457667851863912367300116171056940654763252042290704072206982047990018850885433871329195820825416582131628075776586592310389407002553652452119094455723712778975062393103003265242163817051652595367778568833136242027393743080880544808807483000283709080400019923260727014440703261169935847539069233547698667341198139805440421319494889353322879810423069082356227400971948488620423514821806533487468098854485750548534857101397011097658994292538857316062380571395613716452211505713182898236098383596604673472816770345085186606647476206976321694049512844769929494319201622596128770020432795608248736912433668165103246155916321338213215322885410335628690723777743917543762376089192093103266442219714589237638608799519295185700931667834154825250421735043825067587684153929006371505886370245668822672449029383095711572718804973790264632464495212541400368151873969303839592511632596287806755865632954399442098214061834850996439512741844410179622253422910694917926056184282648812510994036526995811498802699704994228242218421633380916174137641354190127312106700236793002142740133878272391310796146019441174396131542598055439063404464178247195790805960482217272264393985055682099896001477310672505329030339681570712590001765600640019404948054729507268177324675103796838033417684098824720838934361598453002879427084545051610312137965016176866010903431913314778637375178675097587939011843628252479982151716948962014587256073257139286650686035380224243903400307313019640091643794532368583211600654176521585050314953541782153924503664577508165155104487226754621696353698885316407274126118531041998031399540975191610238878583619517405116956144667985466668070559430900302695733774012166164130115179441004186533316113984886005113029274954894060505843875741009843022799503743339214766525765964989993550673592869371819750685459774755201510191546214545925068668952811334680410893604368616404075169248468988861485000331968061288642060158593576155516483305417739789933467152506158637274234832658367816448091884433295482348576809311555166264188080943506821802496308077929948893583562979001680570688768451044391813770546552784278088767607941670960740554092560730039990305728884985707751499183801004596978626417241730043910099183636308007417202738515864796366892645650922080534228690995363287169425525652816997910004530611861196988094871875833278187082159554524091884281145555667039882723785581600338105033043861996637358171978921019829329424352103835395821636927509673901589347316809213861884967353492675517212744251587302300711329691593170351756228052942515260178556190321649327467141257122802906311645888961826490927945129384561269693247328995941051843655087152332544474641917367443610672079764208509275054828901613550532207281203771806797485059793617158594078623364704890700753699757912743089282538384135269142166044841312090259558344574529537709859585829570193997370461649898060497988650474447928856097897588141867766264449951153469514004549162586558490906163892762542533038299038016186303068864989664213068553372031476032460397515299053463941287118881487327704323352790741030121392688067796765200232266060615199691449686906146999143158131170775081386245923944698999067475666541382374540117702384787116935067462383444789014076392589693188617135710064614233940985236497513755004060772906539690400368004452746118146263529457222976858642221710705628377316542935110980686006106279198972689905001170148822916879025248976596489412088898387903291779037688866221117713132768857960794285184180203680811945276162184633283729636378981093598035180930873207937559583437883874882658107078813683285925475991897639066111769177296706100158959866960363114390542415665009436633977232660527610373049579265068811518617800511112251519094482314839661605763427165759005493566093649299654737463358200921667859505202300725317746749390943776992013594953822390072167745200860074395126257865618600479486963886849237868406994598069908841035141531788557368504362260222954922126237690010347290984096640153748147748113533848218876359136741922206589229865761617929267789972604395292484920234213727324844739873820681847598188146855470595482293467258923159774348971812264009517512171100674860334882058147923280823004477152719501672307523658895228076681721178426952436954136609899474761914218273611071610977813583355975476198948948857400597918498160500461885041815152151043730557839181958464529569952292299493421312919860049355900360708645448083314625041317366993452918537211545333941705574212178991233892565230995223355095967401879002748681336102481050202219041192777305037134230349128521752362684622532917493100368591531613116960266230044095790033475868602468877719092526070433715103234954504289076685117312277569776151337957437931166229540801870382123665128671234035810075140581504947585731897889554815865647856264115041721127386223115004595987503260182260804511118327426936073449569213037151192651552366408210145055814720915892392966977532858057090392658502813064456782474930345502314891060591978694496394957091002883124334980678833495347960435196148030879442410812031882941091178972334756176611689025166804988548894939435519265637363738633323889547326655727296480402435171906010630620672400871292127920094544560981044305164804954527816266288982156365885653382827079347917062111119155617276089070816634730025953698187776248960183498894164284788884341763013248032656004322627347611533223721867376952691227346149146469232942296511009917091710892495327642254503520867296174420807405584557551132544217243013246093211325754168969609264307126171990315617474712904902094040512540952056193111049209309132779382185785268829420705686714811637453775987391696291926004639338892259015291135438533663339681204152586954602371399794827649877354808718876171689551786216464874463740533149110679456070801382218791538486682757822649525754275766970465629927460750714703072842303025782362283231070558552869994057832403383587643007342528650002768281666548886622094785840037043270693766288155153949365483690559392491197068076572831613841028821972743951530522732101171274418774666111097322019484420079451692663196678115423844859587040576836604856400685516343794795683560401386862946349845877600410367727204720248188145222956935910028103162651760921725520167293542821845836068734796143562521178134652157982872219660918719199084940856672356578810394794833606362838082298709933246063136624416497655270403540120051217445258814258966760351111261526641026248837807959547344024392269637971238763528228899317596070781142861237367815241418001975772099859510670202356848752325207981190802601174923766474957572920026134100459743615113805960267167477567642051315542359056408004976320768668171112959894011084000197071685305706638699245842323332245985954825795903234498278740651638624099195980979438548493450648781582251695816085650593973013800234671017153635430719740170700218192868082879300811756334802612110574249326398552958248480600653918313901942893568383548650272431905074773221231800214080174572000789988619382437298448420681780027494972292341738213224414619727326490886613239005525461298982821456903397480325753167854716352890626332513106721421519446598045562903180558913546796292595358373409938900717848765321622183840971518479896847605945741620611268010789903509871269501303809967194567463091285385803840148479581557421447372215170586124085913366522747389062476622947216755960075734339451283451390548614217960139928393895707466794132522307619294986699888752013436920911542265318705777636588604788289345210083317694458100730386319465733685849226258314861307663911889892110971763652802517337918307819933361060266405754057570352497586880833601908087990334745930271167111610845929730779922912764420501014369777834983103282216313213138585965344713299865492480153295509656615700555169741545976701772101978113417234023719274430151243245662210666118329498643053445040614777583411784765083854573183896500153377710351167524437851708320596257696553835783297404163310686073956374966426917899612408856170209012063643186405873298789487073784490258835001657386144389527682820820741497977932660473117614649630592122606783447370527055192262833706970452638127196688734354841840467768969667433015451063278913370807355940353193187850177391477594002660810696640188819739973128202616867714019717515893466536784041658380603324017131123566370352364752993702427604816068091413762470386614107020942750787390099169984518344115452183795039540875285608273442234740476800867189879074262347679425992132551615445884944575429626340092663862258830745197049240211388055630305777676870555478968233046724508142115834886722908999268702640646281765756450252129802146239240017579356753534363634741286090658353032700719066190330834613919432009062878293154713972467396922425200154914770696693170576547212095446622408513982090604098172682398609916772382273364400742136952022667052928694874075665195921690018252921589029069535875908875728379614929281494101836093117410263649638829649991274635512170416360815020803017184255045966819412131144249188852442340089808168026746397670028676600801622018556828920449922739466650517180941713192455434753066290799281380099034577326981960334197766489984679123343925409446212351198851868199115879399591724691661717727079649164553332515459384951498421872474284410603956498337415041063294849917501320486266296767794910458378409154930727383971697405698458555971297038429840575916459015593643203832118192140906579859889888963673079083594214993984543647784009924197436738424608967354302604484153805582438216140255102241369409118244821211257802407152308095800590678313551936537279880368585527379151285836439546729743197327088489490389015678721549560384985017911877897817990397310047574979405201848094283155165149424269656003446653933779167802080516520032880122589711022929237536137972157453666559784266205575782804018522297247630112261819288222529795910237197501868960018200523837824345450315515362549647222107823431480427778278886761004974425114589149500727526358215497380547070430381525890045166582928355579118107738725316301066974691418248153192150411859789032501600407394546659848410666994481736974793397404685094134056506255495942245653008330472329370387472653018140157047850603600479456627093199841643975440836549200384667641838938164796463058402527708254856690293508854937328161918895032066409702808184437488959754237721738687406717862297935193099578743895631653011371436901535242927047405204447892044965409635311417178249941721712564513513248058724027186131837920419862687977043239338697097198195784591753242795523663385516395351669660712651022668206907300461160306800337086637120815230224983820988407519528329056683413385096112388375698332642930265902344530818569382596315755345877266324116794131493662987408626111163306352689293809585660351717847130025298985402949403715200270526575237970604392961342783227239796920521512985356490421539137825932726298416181930815291399444128891080719603593236065561195443972639357155194664507666577121883648526246572172142326065064643431479844211922901309329029280877846056506169771192462870027538667349533336422230017660797934196328883848130396012502423917770737309075148178300315970030053454986692789975135826789385790862052973546753461191817260689691302714407704490518149579880038417884743992021534824776820783991847949162517306286991009133548906521861237790715150517359304973134102301252089204170695077471515047036675593953190196366889442170721943219114306565411652134361973851866671039591604221431143567763348792338824790170370852016220700475068153346769418829759691669670451785987476148142250956017263252303706013953464732211637102711609657701909447179010534511122333150841689612232309218165308981709109434346305764355401410771448600700605421005917831488790419989392078291141178555449067688488857992644467522009192025487646637525728361788051539699058522057309828049889152681565648104246472293028805773021174682362310109700659615035599476092504491403507602091113189530957024918546019664838449231269889677213280498179745583867935584619914181180217198228205682765215132961353836585317148873736431341240485617136389600904961646018050831678553123576395583524409655160342856327966185565399585376576619870835934922233584394772975167562908307951787944056986663952282274434079586112876115559084967301699193111081366202294254723531865446746693663159723213201743299722864297328336875043602565868726234421923505017270539177695261310206582896019840424763154477328334000121868553068918021306874694441501368536125640970543978258102946107636066339662332405805915230312339000210642154027947843314954351612029254156786995483707755550091934490634164356760823456517910459769194997770402035288381157763433352900575660627783051987637068189200549931763591653145077668702585889213230095392418794786745497201188589831261110550783784548713624302008629487124979419269251631917744406291183690752028987420941110900957762624481678173374346371453132810507399442615168198411479270558318019880916382014926149420137121863412867038341710831136864569885223816322998780538175897182891785749586721172760547879747217991140456432303690168811685164568578810499557962386539355443011749295989327474573814372405049534034535909239488487171548073320549109534106239616951432890309173368620403460273917469410609521449781527203898706957954019732835137688454952675489167175216149725654016321343423444992121342587804509235679807706059951411305665189144965351343147721365665687360651172846653565578245479008415842709716409684226409347748443154430251086890260247573423648186160409980445883292544220201723683862730990370968339827120730708953018042231440411602973947450844701277291123887897821131589869119150518395599257252073159853648171466094209986611171055798173262710103549936344815909436472668408081443939359889949819261087249733256955721337844979815127415936973568530628647424924303882017576465671082451683508658686228920472024524831006633064609411589842933271860660810753926202707877855566796066352408219906651227998263362244854932339374914325800440044455556121991642798100465189349321408564776406816877086262925262893861363650816295685016718582753672424257571582252938434410281761182121407704971137681523135454634863101439159095591013611375790394916593501581259507872219196123682835193269165764083745610636932123035096430629588330303875008620862528692169377214506872606261359208862274409220964567087535551207856684269310798962880543801463502328322194390099452103072852591573859793033812880167795184318887701696688117145630915254247467900839370928883990777173811230051794587108881724227023936871258879443190943428971997110994464396960123582959177725059198533948091924455851808025763984467756873916860671089984582468030103842389102670631240065598133951453318728230412862121656786230723535969590083671357181505483595975854152261394139364265375025410136706184368554322486279822440831429445598589814794744924122605497621241724689097851458041018109063090917693268980630728948543049637285184933921578419529635156066617015535850561995167265972927941533302926789601961845921807520578437215788449267454544220920759000395553934729197156195072723526226759519234341102046879984690504187048830520424747709043082170157291761000405391284360790473553653142310280822373387486778097772165220045328844434345150489392345107217062587187391041939189397745216249891907358545083187981093175168389558963910968002913177705853963936630904406271960921262135151789661070927058070415101335010305850539604387647799109048170553899846712607260192035692195726758131530850326280912499105243671741282055387756689874964080600148596461434534847852748586584735614986363040960065340749601217193626891145257388256175868517231584275988998171898110982853927710224787415325534717112954137260780574058187658745461515131852580299767694928716258024869224303707719941724841913479411759879377806602018225760810754816066241325609103222260582424494628782904075007750755396407413021761992900844594688691170454604776515769782667639977722761308034815453526143357508667556517398745583275459681825333994514172649015453764561200003017563089030571530696843485439507030363424901670712550440730098344697499041569207350360494106909834583828230052214830910336116866062738937482874033737250696283781814598890341955340677200234910310765683592664043626683154420779546930538813089018242229711309528518755333990586256975561654320083963759306358560161905064008020086254322759049796997634057539885279312534476266042568648172000063799726512200496754969061472070441235637044439882823845187533898503586525381525498255448549585663780260638314977134297059423586822979525959979409114471210065883393776544112904268001821129533576772439001695003602016729806201544819674479233931510310268086056656721954306014654905894420434863882606078932884083941011383410386563755569883309219831896259553112867835906635988409713796018007031895486709410205561317021964179802095439528892799307989105038192139231897030759468064031331341091032123020669587683120041641354276161361898615502520643597520293848643814431290977911216997612697685963396948234655072626333057799174627667491728857098972964807783848962205849530997536499950068346757528085714724516368349996162818088777595892897206209117437888717855823235246401026661092441510056548360293811117109284915801680361173820283943448536042093721526930750826168439294068314936109221028440390398123733393553732020326316561245818356701466182949308093404609923689992571615751529194409185246001782608602222878936469375016790059856157959326348835118456105267186722541823635630436268900885710042654500574817735997600909152243666387385812226655396406428456452761292750753550472928487261963874847284067694759816110457781165340967697505272189307386619645166716350799709526359626326294427987250756752643706402841229112877430308694545910573055415377072128154057650798644936987844888170613907355722889401967805859230839967413025192135061283873231291818297313025591091273775513578987419098426501795553960170600793884185679675805975655304829998938004541578726183728390265169545091098493807677227962663300804501429219325967541698274656591002235689648878874017587400956335038099784931297405641147466431682064460098095974205629548623009168853031776373964787492095393532599286002784248071489239733240005514865567195102119177153080224733033976613592156517780627847946199867274256671193358265456072381719427573396354197401276365430082642439204800643829640690931406400573274312415822740973358520717134302833667826344925047997804421598480891553313478483217073458704138843954484965392684059501201780714349988697475583339383611014408966590788451580545129883347080368263597205530336157726346141559464171579563694544773889594513385697418254164666302132084243532786841310927747222300581889066013174829894979312583112740069388705593336499615171738626281915869881011187698510681803094172317746744518591247932568882785961520081750424342121365530467906556311225185506310147914495522032113172285267367065247596803166235588476818927408433956673447224715306200088943006744794054585922972733132331080996237449178091312631670918324101913995023150635398502466651308402108715661442326630642801117895605296467833761022393683274633315474547102034503721035252872742374503694749828581041478589007994263424324969601237224075003623876638327351688803034614797780594123948262202905476117877830371515317356877353662342355421949350061378884175488539928240262145259261700957041713354644778360431456631151553282524998387593748826985663176464172572374185956577588551576287069776065176946443320344103945459462402030407423876083777401654182307806271137913033374935472182558397091740268573202088553433159855445552969874462927329661519989980972625486632048856112944035205648535381188417141848519570663926035284788289225647835219262855665680236139250069383829088022391557681533732442251765699252996629060873019766871774366021858335903558658829134991852828631835626099014550794929902804564498284116488975676370310079692003627378234123633509047631132649359245673941724697483414217454849609892787832590893904496325136761330227523599445229309976468909467511467673092975812675846340427893206985644855789461884347020137603315275659259964455403995725479782224904819656553331199202213689507654470289123008846601978803671006622861568144929446186308430726628532372724442737065015097026472505643543932496636377575724454186123954140695953191613334901616682645662111611998411867559385554958638282483380342705007830333182278720524917455891824138700656453171616654157888181187594826242461089229804958350034800239784803997473772780684868671373158683324446299911267167124862947896691339514982303031491794865709423090592054118459520473269246550526139773577006297706156177699269034256384177673641534728401355898449491941376646712885857848446423150443952890009568371805264451331185492582283727844120762226075965466908547686408469519543013272291827630585074742401520082805537591206868305145181875204685538098795746499814185858338841343872090761128840433779943922001517572527877264536689312379078970949331039105477496734924357007780103905764705973293330615393314032389316113227418364277973154239446718654007509892323025527896063894156468323484125774339365464246166642952424696292635797800923088230201850822251401908746409720209907202532699479218360565440752885757772353991436511053523272413865963150298602541128372939487485406049719370104713354822583982668136226279317859967307641018924263217751847928168039185959670884623466073482229560402795376832153515907162065837981193843622814674771248194007756860784519696611042087125583053094255861500317617685236458873275523302725865763289128592118270771272914836402739557436399328286913386762166297135433320457140942894300713050039137203964944099148152888921817873062962195300083637355863482549138939466299570661498620970180905922450902588732282232882544701816719258728827994533864955598645937147932293995075051533404536317002049467293711644548160366612072473879325391793890675685191017642263612843648602744354093519577278472517910436792787960511865837398475363766015791496705040407900696845711722326180707520664038211807961019905496805409953315815279241515509651576434672451408869731586178736581242659650223638263328263201121341144813144601216663319439177378409000058156344710113006481305819555668576087160728289287027974127733162776932438346303959436145173205228331262772491204668862151405396023702350531351469196785359950783889110731426840737836573899533761326283683660937866756229398510117296309205000774198737082320546501567383419092765067141579585882670004682824206157191653138489675802685685418345824775378799000995999557312560979818436803608603025409273539946327930705929845896658321734042647530939919085448520607363034804972206446915070883606756281551523998635902096530642193816732350902984811691345318059902777811692927954574971645470156613555732778306840817062203104447155301339704877224799484662202987109332505647579864070400055427865756507226498864037440307750074473433318221419886833590253866986066360397005501593864312954493758806161888853240229966015267111765456832548648040224621156715290039779224658487424162483679710505576988116698105567274434240777534404507041115851174491108598544221204665440842125473276324428844399506403482485028701454028822749600791943396928828660486499955035227744351091926739588750953721198547944864683335905055650600386699016237383951192272815709607009525981566165092487753146781537092871737956413619381683501713754742612389331814601142326672557489416825051688175991681349720948286607230948878261533429345480106225034937792799630926431150126303577038410725882714932316111863422554735534888972060464731104249242841118347374750443046738503618505150952069951218162095747320080130661760302604620237274012310416629682767941974194218776191789128416120807838153668314474040618062531598062335618099053382583539089644200559835031052028881236098527956810642468207253451982084754417702519574089511984432558208654159789339800148505730067104572659390438963433852634250608932321006667445437468717969995772139343475673646629409100908160228194422340400567953204398978932053157934908193269847601016419391252250400203713949364537999303241935529970236200985811579794135119753840982227828256925174187022383836575340295508135871873917851301147460049892082814019045204164984484525317006341938053438136628865384965451055257210228826159346879010132892209946727460882327197333102607302399589395449341186390747449141988926437780982215718756110950659804562173478174330545291707352409612319296489255242212775639407668394899208363109098764960564220253898978302426545529928817776409002879824840281276437106628182841140436539278363180860529721496323645882406255563349943606167160496822557642526682410476762962451694399521747871623612404232587464073064124807027418783028622471993243502281383211413216732850562438446438436387984891334855519816560884685993205565185878515875427098485307478935869473355891380997378102850773015263689325294025034990139172814100087529283517937409986776336438562708062459961105677409773803283287901927585732324065251322488267061029995011070714338163450807485977430240144763714562071097301715683642723773458059208151235231314449419484814384931613764258902862316292644822478194083207508309294479766131595984771706668944641640410019015240972962184332973928975189511421228265098904200749918948273158485705974713437041654684660989200902151376811618942733629210111805255474076715740728404845412796506323421015815735916087793694412188890492243877653024932132791464907096485225153933032949259103859035245160556385903998957213407172325370486139620133958346465597489179698846287673850547818406001132404366756059798351730049110502320139105128311225168091263039729453446010627942114574330550294451649196461459504874700708430048347832493385372548779940978957503120759636353741243716042298496628144152544342749465363628398798069172025652397267789303858866123895428208291201159358615176076869533233498597449835638644830132025432106708351670891635762450552359966157158896989509916285124734942461880850383686665142880965918116434883169922849983038119159552846276686364336895232559452069678870761149955540183940513795391769400365735737683004291603833240066337317840393627239782322256657403368025500662864915091123021755842880725419391496042596785918740649122994596179107571065960437797414641174756637534122549201026236269958063027745424877339995210633477562206558447682083512204431850012433209451415204302745973297413028427678540679289458322897588914102187331979998709203183835529760503647604632890093184840248009319734263815812073501620205611643900655172125852203876109352232443179199140897404620987027277399511282196634519768069644231247534056128086046798112872929441353876398412078827640655922975232859144020021881021822348253927413709468991574767226508191895718442368296400719994468539407781641336117045062866471300905610215511754712756628070655608389197307517202694897348251650604133717489132485327984320320477065531787834100604682772518193470208095211753192445932064610851701592028077931866053797610792376653572054894964955323631823317833119306476853572832951174035162296127368449317345635308509495052714088175585303173373666325998904645175258059693739784493646196375077876995603559286264064485763041946996766916226819861272399096300854040573522541569962113118378654317848587892976780022303643233619011217252824528084445958338229150333012886655494261108630250003375326213549981695233149444830584119549021682923813280569270160944875123115458920621292451808176784516381179996833224795703280543002868429071669459906069013258588722823918839060487302102711219494019316909032751798305148609935080666029174816165449087738948731943245333510468726561895371405290092452436776387528438893611230193243622906518846279143529960580998281882898716010956298487932229504373256262962383125214451750026027866064700073174088874178132864767860247479752939544958492439496031274178683961782556576909012698741376395247911271832451458610791318337389714334870891981258493679436762082191436743548048191246983090534263134854317886655023340125170372032658866216440754017859077516465747153494165025090157846541560246928984732350668194482804765015352342769107079182864657356661706052724755999085007490677138351869139262653143002563522417102021008358450016398553195049267357665159574067199826737956026851159700037779037364014463990690590131844785487446008764884687027361021168615402430154044659776002415766331955138708374725488092476293944852141723464865667299254013626162141393738130762774149568252273227707605058145004496619046869262993889420077403912574573329568166773481245619727666463708085645097116828978065272064600196044126528834112652382592904033344002645697554035270560764089492728671490193213236678379164676006317181969992803797796099390712954813363506547726581782137718291346899696702312377419814737509902400368017821875309534198575856613749220475831448076967910681243077838743100062998445764270262498731141225698539393914295698662953651280373817456843098104970871217044571267598208209691507314357348798267960011236087351315462626605531571662245789130855283974038824099544882763255135353255315400678420593963729968100402391278693857828168580404873313339061333667204915138245663033642077007383842440404291400515338611676174691948697750508513542072260772014566549848246039320071563820845810744893186975610991807439176649676251442956135988608863057029312048104942233612831849721275745883315371791032362411136809270702479813458564449752861514227676006099118065988750822657863000667200835274515893592533436702216687164487713884240525978471434211881422321424085592936548295590581681149145385550428933730154362591542247556999812752477053415066899179215313568034893624732542147582872942726316914481508742509847150318526007138643254213511616219488917956701836551012436994832937559304815854811916842510361038591280003019254312162744468419276634095026870931338356941858429528671255619261687767050691997971474259797216717212151559431499586799871599923982479004643002024094130998372561736075387017762785787118522280025225102533561056503185499356108439925627507699189071105568995450329838251802145493720156982505741373510533352354597967799535644702498738621312597251527470618143933670810468613606298074799443991572025997024850876884416772084184167322280131099464667280523217093446791543576845228014875175674696100828874121293102132767371109007669509289660270757292017857585407959553742308813552789771255697222223731990893840981453436152681248861525033254045872434501579294023802424893274243263496996895922991865682336167558184131052780976409095177961056410279239553400150651355316172478648749806325275554353030746111719956811505044579504877829735426732239136357633581636899644632568796910986257954638586926723464117220965628329335971102911935611725419154259823495897127650348855957526514320186555681664731560014775609254336818215044758013229732389534295296699280022553597642858104076628599510090169346803315626168264670987408911698621987748325699335867764939788055301362683043451288558584921716054232591824878958689424618687369343974615635798074171546659775212454065809489790835736991783809300125764094385000097058044522780535568773695406666231075946561992716734338821333956451918404618135149522032093365762319298183034240647058343644752420908002585802941625849654392814120130215702649064646315078536719711165355159775157804330767157932584512555016576801574587639847494243664085226967051195301047675074224530951153209622313214962407364167288475823215935227702284623999903431260464338369525924447367853198554005613745470997699731067415195588101782286580246436988829047817533516090610826673404829104070245945100931278773165999254010593672134688891729821961452467073853796372327071806250448592086901396220685480861980624720791823225125626810203243894219854610687278714811199094959258920794196889315069487878943858824966032950016520398119154291596029314506196467095179509941629724892905572743325140398683419495761708868847308421410836056219427532180453426822866631965304892638065242564146171082623928844766237606536737432230285703559063253498591119701673010262600557192850059218493663371795200217721850422242309630907607890196454277314612744286225299914099780965813880208118619678491097008292056509844149704393702521811539648269657904797799380201768762758453118336466791316428347473784350085286090917129151532455372764134008454093518650229430750025983493539027277242343270881191801521159002705596583449932037195227926852927276990194475015501062381522471152980022791577226283188507140029240308007606016381654815257061440716233485489546239215735040837889941889789133483505218112354304265458599260361494133663504497720531581437526860219973654227537673806963032688431891366699467345588010301204557350379622148692809918957966455411403418450682089090205559425846211220868121899835012237603751671810767658521094686598199031653845673172880767552306667651832555108716367807850131870590869191044525076848191608316995446552066970630128448858037486272500714195664999027383341045248866421022558533727137756551172339718154364728312268293121512536230839731856179434657669433271133424390353481482340539379511821433737272423941308706634505094643822596987440444163818834628717051760270495576412611246078737178909096149002853798821059582571965128264730450333561739608901825643692574857771150027825764298600472446238996634544396857975781843767921822801821369792021107302533004694041294921236812743050032867391176106767081395071314794835226470270851629580919073285874019200064115656214903539780465733868473047152247263062292733626160450345409364562630176725779207971198822574233416155174934055252624064863350201417678539341597887205694148047564882183129465780592281395420632818150907979388629564402691571233528877090005387455398691237112765974961190783972756949134236559296271566822264153787522789421648655115728593939980191717149655791750897746067515053868854235857428961881227917494996239130777565895668281363377110926162012861240421262421209397202189884001917479877134600783505608777000568302591390850413214998221046806313329018195769616999462702295376299733216975935687655296918998708248190117347328669281322958288500013284050538817834441070319052373348767609703505162557322902192617069213252156635759596584883547782149570682229699792002939284381782920913091305325121606762278874100412753536626502273261432830840652750509640459378227308407239889420765668371737046881613265627556700113694955788927394116731701356302327858245865012680208339670212675674503581014193042443433604675535749436925153525594307812913007677841936787867263008664321281393671923724895958861579761327646911358603404533146646284969580549779202649469734148491814404890913712969286247209407970913229702236338202890619864849624822435439055715933286026057397520764595785693015384021884242882452435508266839499832296752640188468926780083123056445737224808743619718883222158539717675184355750820954258132252398251386684805182609110265946985259012966805122285229992434762896330922106242562624473633971553343693782424010319133700392387010486529748624170165261819311729974720697083348999548709455168650178648820097257059259518073117579813536842448753079112101121139794765591371560865175494126608158691544517652684578554221397672959820964500140928334471101047870246124736914240513779159371471140187186914537351839359994376235127120481335978333591120404049090904432957033992067638295232297183870379618876165335371159069366125796604122827736925924629834875061409613141022525119680162355399901115931347563923723736948353944146824687547403768308186633936857756639376682011475270179456881840157798903533048786924340313300904763567880496858426624345708995526504739643182220945636976789827382584438059152144884490327803886782383034623153161480942913736736087359284241277233373021725649834634650494076451595837284553027091711945121443224147976850179919341719059857373027436664273146643914298341789045319300423543177352592922776933216508592718337251293159764314240192129688576285128195822770787830012857281299227136690318520547879544949996175376331624873423039080256081491887802850953194272576055242113830148152585518084764409569132411863182752083664900763386542293220035041833111502706922381084028543404161676391139498300140756566229454317918478494113407879372524400409664329954168727256624671196912541566877557585082008091871349583934682111238976362306807120726886707865177547464567783875519055453084241184710747821350242520428111629194174973824577111402652875208713575831014875949104889091333580552298396831275397277868886668328495360112438986271465434721373418274344357733725448293487400139585768591782464368023752808787890980846673941355255207975924347857376999491095500136593714838822822977953436620770810403055744065710113823280786077795790499965414531213488025893539977086139021939636272644962440380254430786858459101847982243722582468038045499294341644023012816664960294271835824329202014556713557697239665377310722854857272857568392666659429625038964718549328230296865550516822889975740987772556230045813103854118864849080821835016147792085554458318362207868714665233935693689828749876528356142906386642062141099611950462876439860030321264599382243352143373508386600391473886725940256688212143996096761692682050306358587192300773865221784611390030629704694197196731272942813208538727523489935130617099853457782490263921960210923167180456600448014669032996199820107665124559671602338091634712001425533376879736118472543136180878800560127780695796262850739599962533100598600503130709555817865946520403906455427958800261669866275123159627165064969283448449869692227740656542597208466749483773029353196061782385136679753659245961748671786294098038666939551096058193369665457476190074933399570374037075428353676406748752029698370884989597983051173680108035898138517003912762030664158003052468513022918021615703267162400276392492732313062595837841783134306322484644872768111909265626089840406902609154349085961008319745131417426191202904209653423882742491868102296978153667666287720236691868532876915191145272742993868183140984587821739146456271874384838313269804869123365913607196081521570348199672774007049245934144000218425189154253278194942352022312332100025257615317749372566894928427358150610718268548473384616285371750430000114410164133234362833361536458960218039514054629069109054427130603498915934900497137152792055019047694335912975070064889187145739064621524406792441919421791886555126289057164616958012963243602303238461649153219431189330376177366094718471245436797612699054206668982853849898996822134035330235164529464639122089419545340353301781630823461060566004966133033855853157743436321501015336786899941267964080567897436673561436909651460984849817168281770711190646092185369932862695646214478692741633130853896955059285820629075554463455216961952400474969482523444814357492148934304921217869045280436781321229486674233468166486999635523354440703302564597639836786839261509697965588819985633406964442941087051815396825369943717402824377338854617824164505503642650751479720934942729033344113459206881719395547090443201489820564025097259498834027972361236638672408846273791383513810642493831208611978365456650526492527691081256784140800122190215229306399274857718740481795776655619452067555726391950493769227140130820910383401052289862307362406636175261878445798072418506958126033221866514600867530652230769075966845842065684933376494302005377415427022053460753287079957922860793155372972461653303591779531653819872637589300497369893132875242776409889950778335352380740177429432205704967075706518110398224735032406165822754261696831040963336743178829254870195023246562926510893725405874956340637873236658917835508108339824268247060257294116197165197176886736356838156589871344558732697897100780307802922544513729581999793521149088149839301584548357727299521037406011890379374512800241323347534573925829827779419262256545438502754226269523750795066460411917887576014027972144578721430833970523783147261275456374569769675854331282048869757819014244369040353446803015229814943379641743257811612267730604350867501047602974070400687299369469686889270273707782548356516506222807111208795552737899078124965809368236504609066286746419961119495237971144459012727414264433743648766790634831117958647473016536637892929618341035676534510161227337650876755981288189431485607136698090942943236804492017885427595094142385431140231317910904054517100864257226993976560496047544074977599831408828401629360646814983005433329633937066753437552355744469461546897188192895464016478488162131636008620156407951002191091183432489158768284262438710326803786200712814172830769890206531134848604159377924949278912041154248644133798630541382188355164512166802849111856030324408860077718973020598985240478051500975004720386330184364537239453475785119444665403467683010221624677422477111351959154180089478384742826399529990938547928497719662527793546857122367571839389898856280870664919480227886897735264864578337536705190754444712081048930696716376012330875627408416393111484554728810856295399625436146180489363375458506772960895898886813293825956619906675263154543273059078455323995782701698020083685587848985914651970743055591842732198205614479119267350869690704547768762003376186852916094785251192073614331484238355938349789392255265077926132727852723371616818367928831994725403079822873931143917219894547766465968581517391900266646468242942415023221120432743087016837776293770636496851079424554306678404470783635212737028692627247307337917711377817727801044835320681212821395077782460550436930245192483380517301687908377065558743015117246291758594452351849539213153801732184897393325728244608354120950316675118024659024277060128105994993909765739035625519842398862300938462767937566629603312683966974197958597889945056425721932344151312408588064584281740829424796897187394921151308962431451093990789056329102336836345252019001446537023568193588084608395711067078295098850210519211834195684723847856165604959376018374585027419866239768374136822045839555598593202452792629640492240634012342441124636047357012458879572842849214109375006577412892741322686549897978881439356136779207002685743072624973110768833362458394265698341185368138273222433711397361126375681202474152445449081853127717774565051343105350917248656175796752714884220079712763949532823275986574863951201947344797272330236574805889247245500811370013388133986567376679622784720499239307011992580495140780906531064544757838624755180392910882769447149108995133992977351432952249363227616463906185968959066910513815506327692389710182728998680667152981447388420703790159482709907634706543202589070963489452323120276139163300976347957856958673824670691529486627165158972968057505179566784841050637093846956135563389626505261389785603050572728541422984120883157208550964347617446441470981553692757529530995572982518227387779027524079560258996954333124352296333932293419757188597784577765912111664946366407728033604480559960162101273296986018286570881759192888479365454528628893956171281817865925456686328226245269070202243127191566492177980262648104627644103160168739041025387327604103550898000886923894673815377255565190363366062585865701734587783421312850565330756442980696398136725276871004059349938184746366932393573867698322857090987617903164787838088016656789828109750438898216077322513348076485776711960652715299161050267490710037800561303354631579117631057199299086609162438256132750860194202967037826187008679467219808396521091860023196471826969236874543608418534599543161030081982301111730567781554773455358892184404364751095375376350108610145619883478955302787017909453858298714229711879187335916503055830233831442335585905206395709367186005133295572172696322924206170052111143144639914072344390124968902899171915378018971300884857329172331645879478435291763050581083488052476978430671253929158866760282908990202835744977665994181378685668128822471723577415697922592640495314423408574858295133415215937192712022852123093533734673222438295826061927285577620095106541586938006188742838698727858721579603963560857210796735983698543516698049311185187308334731403000093500053017217596326882258905096510815267566938218356679682167034557765028291580732591512203335929547620021405030791106444300724863644707279087385214423378151214994098590855668502163077834821200594443985413841362809159260562727690723863205829459136754153890642482400188139976692760991665440025424390821788738946069458797748258310383182842783240253552279153690226268823138234855647646395543542619410171080999219265894362251059687012166442296696149295173375977563146874596402007896441814023395217732388948098421287509096354371102814056930594618775428043412197250544360907994876298459652281194922038536656768050373232169449474747688223890978870587065962243295635839832956224091615546978822076826451470826052748165509203082622309036075850239709595464171532713857995680499802913203860628945379240018944634818459989093055302300620027787224779552658272180991395556467000231346441913497085783061367052813162147430758622705472333292941428843173784022044149918596659319322231463284936418252864342487819457211921748903561778208254699894989373693753375065941249519813982581616143567787047979553290205409959885573423620655060186486039443851652984693460609602014715276423909042120088874362476762011627431891398476973818851926514036327159141918189559542010214070309948386318904733718307543592480529203975770003756437105761594840025380265138964415197685779794874296123051921877585917866210004844100829055835162119203171152799425892845535003193319868150604642156106177817825234429510811337244302251629370770401593306169740468481792624514101257036302038566932981388567577734584813361500385073197859008071154661119701168466302425086408702263547107236813696414343681016306684899316774285790553392893384666943172853485095142439342095679903939789645824482660341705146681802565944589712520268955895719294908884569370943243313258803674866145153150392049823673004592299444555149024617607391081814093253863735406824966002402106246697296962564865659781734498330906661144527768685618335337386628263285620773320754310834285068800468503460935199334834906202086188488622474064410632625190232615854553209502649812970616563250342160738463373691526125895084578147501991311480246131572060879190815115578452037465838884938895128799857558510041994101113169405267515289532945300627086745553789409405167057440236071715144878151711220296806826409055828820823547259201663684529046400662204723270518894307695575105367514159338198063734469090511145324030820458191206286913555116173348422113235436701574598266667069988179349389260225748921449130735922925416910205672797082475073716311287308720605511482347956243504558035482474695017874876106521416812379033183533868555073628280011956609634603824983600554009956134506368088054501979938839539423916089619549462813715924747681541789430681202130560048269034125232400410344949134818459811711451724934434726196389752732099287097423551419760540125023938994993730464181799568914188346029774961069187260277094628820525216026488525399258827412614138783907905460319706318737603355431601086487950775262479951617966383568930826235251415446038486782761015347261066344171101956700124489620047268897793537406759654775208720124355455957848808600475458515466866801598938445386459270731440702076002051537870106913630681621706621281620391177690072730137976560185246436602217995686968152133238030889116605844906951577754403445854133256073091640449875481581016099045419784071549871806478768627194137780120090187258792513607831723507650110941224062315567988564902976200331461315053438097465435519739814604966822072260175252502285370349402189999278049157410854799953578758526203639525904901105055646395464057608707398434360222311634486078270248642451330702573206014255371446473206606022639740254588075374024390977261684999046706281904031124916677874529594068052780345576078175906417286611338565212205441392781439370750178102153892477884136703135815881313721104113758657689842335732941277010143760555659825309949130274155794506907431071786108942741616507553381059791443584556160036946078571599574059557836464321754536951343857210508560912034302722411255365146391662615253477090598360908851267862065278055951527468572514841855530804385413693630647500726667862667549509322434425398513379465847663385077449362940108024512827354913395786635437363758340690031154684716727777195427252272660018919770556914239782858029019724630391784656197779709803959763373857327967831481451338507507483549872197423647909884882702442954465001888613990337443350133026435286851122931454721277492585407787286223045205529732516733335869667813422310083756251505091061952922701470455246030540607719582555825764413658354738805831247508336777434074917245016818580039758514293294130037797987519104311630566610157360285935547445034900551239738747775971777620222627270346482723058356175991193946116129674893049047413652958453711409960174671881906770865061220393987789925132446415235921868380910533576895023468950146741448502778426723638323267582856932674613273145958299329475378152634776607011003492689110647803579917581191384692702937071814742861921372904073152099630540965757596136279467932540629758278683947621867315443134998578541322637856953805910663857737407735221366158942781650228976791974739499755582850587172710650429787522383953763580305039849666811772650061888384137110431834452227176666936548801776550011177348370977967188158412976492441035284937924508133492815816684934987487845948614732055521700214691478664834820024979800192587852791811036025251395140359811758620465916050009172375636708900377043870547340234223462183858929407618089230140802390951031819188580170403209750086364281378074559313885388815892304170273970354627176407307393040721405394481294154217663686570472528685391751518973893569399801311638851905017020657751969836252796312780289411100393397750251952240695190629296355621746914786919212739959376696928902203104747995715671830394388694359253409010717200104641997366735072330848385864878123978687112191248409703437012961272144009439920182693384652908005860775147408518352303454180106371477463760359227445725222126344747142808873353660659394333993481438770223427452197169984005143372538696274645948233206620592796951818461830694868749528306391243069178568595931896697239094714995801391606381812041542398985235857303800823939135019312333136104511010642111774894079621737478228006186827921079840164868318777201821962808468420355216656547283540152247632257401916978181671831260727724099524658412145278354978670256503151036035890564802895169482940088327346003426948186889829194733150636085783578500807857238575460058281627844522008792434797716573088905490076575082988959428577797938495565167718215967674882471685846423573869842099312814552228659860563860242546726363856438315918928380510042472745087380736335110041899475857150125342173147543802327158404915389621812621631874671333113859338582263570679201028259202849079276822117487007864100895112937113706855611883491277299452404280856202978187089794857365362731665948615044402996456398745929681737142231539791445492123470746933059075384407415716990603805695230881909946116433684271754853289506160489478184103140375151725410136287014699427069256581166798926808186667443145305154456639946514532305989843326875246291903362633973747193761730356064976684585014820337779735347017609190860731812451694256822716231690666617569006878124612728264630162801155934690856853362114844496335266058323876502633474408316805538285131777467280244535710142284988250617205014069443321666055597670259989985879489688450449972167987296459139164255502592947658571328916969527988707011830288969221317285073727737883767906460311700137608691435242067766777284730245379007777903570357510070126511313220342015444415180295554639680261926273113949617126966072763324452700050315265427964348798544962605053824388319687414012967003862995010637611594133557280518531156781227126654707749617626888567230266963565714958331108200828486550298067681687236936987227410941599755761800876999438854095727244739910884879731203654598399653192495049446064360258116424319757000770265553147110482237034793925457075942952352989301490297399566323506602962652042682500474674222031622623124603791504407000071543753573702514694675469849736380918951350268372189195367460898020052161169654348399207722912857132702434514984196293634840115705412993523787266939419236746977509118031458286829306495868024795801753265719127152770572507552619851406058426890041846849755183952967941631773947500212034127806822413969384620815130022830538789310053832871094196241311237358925269602940927030415282993044780302014400976604112252918009192048414785353732804065572115962240860171167018478708466293580746291280746699122720820528762710843390181138853150314607050890267666553268000347325958844130689135440201428136462110825345456882445536916754657700327093933330774466322082043130485106340162747648676434704148677871114163626072158446394298264430656764306825025500404115540223769772540236543638180906985375364414142595562570753814630686515819931259893003662830668187318764293848455987675936119819276770479289100217538020594032791207723393479590463051025664528496214747178741787647547766773495206850186796605007972863531843103925320624695733434424710768467913464325898432439033431787435363243967605285747672281445971689546659853071264160920869875701346725361399577397104948678281100990175414657475652243047696790846882157459042386547053210944950215740999262190874273788714014412510890281334431098024660216390910639426288316543973766258299225100821508536661837288019198112184322414099114480294977001576723628682443393889321610649172192501106807582347072168872611535947588972730979672871156148920681582847883928028082824341183752374485811593363640338958740919063196920391370596362822775786016383402494647366505317868383877705484704068583475711067073877640700592702887849188650732613843260425179223663778952194224524442706869725418231763577170091126510519435739484612899650156413210884917935787077852082369028683741398704325095146432900627301108494797542486503407825148752528567091464207979252168330931570844222691160177090160292926418468828838268232705310411723468784759243227217424309186858837122383398406226059487000634112774216114306657957988138349481747543541083158667358338840430434072199712948806496341607804143248680523308366708664090857937448192584584813537377906307204144955388943992746184254491279882755164532824398623498668043089227791774428181974462263131896099836992365756380881012049655141883607197740172222529951404098490740699810084550662425343751652862752844368558629786279106631978728339099333038039890753344390209848892440189891655776759701088819337130095302997575703182851304023982768641882658130633440327888352074072193183532465893386269609301654765737119101836328007774669126502220434093783757514739105052938676607392266595544541346808876122647158907649381666553940903103442582068212081605758924051740065270014900298227946569477478475406466682030727310302992155468009619221161824968464918969380548070277034361875502949802257831730522140589717102774490158806666190548418394265123482263415411091132495565770167704576981464188049167831133858381728106638849523929422978212454109794715106503635101971850513116607953620419513569372475340379130423096270158143896828180046412171513771644320798113545252949101162707862682859778880059364594525621893928910862605924759496525259782407487318325432339758251344550497067503320859812010574569951004877615554777384151113246478580112465311411774560977048186206977254005458581927691002826191134245875598256693055757031994113782498637284238886425468116322417697172594018885793279131800772065219476140000093883696808491020429276610807119961100850576412342936092343879730682984232253990703634223399672095964422668150746952176772192846368675062451828337066294968502371707743498116015252174387320028949871777609979344668244252938140432397937558673312457684336796979636069677607713646024905264958342205933010087578050799596230952565309298118615437903712010210488077215499686912760840691927266292317088550525431595748240823291898957230806335691100317104953475205517931043328130349820875613722334116460019776967268460562021011056364869838147442327682299634681848733804628644819042348286279917575142769764229173551985399649045611492135177048162661422148289039234382281689156252910436811314766717207582475212121993615905679949565296271664712898855729332427900135079196186478803146892597650012758430121217203114638902486119149288258368057552633526433741902405554039691243652608346864625562091060332654012637195088625657609278298178189277140555214578081020141915322925710768212579867860052111065015010843047603943940983534324675121054885128180326223065309704123157082555421053522367844952136044151493439963918317963208673974100549268426338904516377883583065425214411637734091089264162980213240974976342411383888048737884835120986529135129136299868545942360156054562122284703969082598209415030560927109058184703122832630845885313945811960417866584113031298605686774773506662947769402411331102163417252825204834617295481156258180676507673782983816474387058600089950323151789052493067841760263794142790690833025641939518365411474913268102615734296104697242798636214863235617234114450560436906879083756395877981581486501774694357506059225687030962357445409388107158243898988791655646551754747322430143923129996691776099751357563468291718069980261719410623564526889999328151350865570812077277190302674650308936561026901451172667585958429293842996460839937969164363813767319188846845882104228554334293109255528559680242191629269686922490696001118627414355253287173505976235137475561234221459072896015240482168477572038746894273288025688944866529889005120186200240672203678484492788634541286108950104002563479786258375454295613660252053943372899323174563806857194205509599916178987988555377980768426199551411372970463424981504576598296917454438037964744860989217449027420655364474975280871464040171044557642633600953751569569922793805094311604728470799481811510768891547602952267019089747214160212661164384094342763081941658720082226332668879451643209210598139821097550604261903953048336310430304285562996374920070375758127476670684316562969363461545530933593638958458731834953146944505580628741637241997674399726838412507813209357212434972284283112252364168711467627511496402175082172993966768644821660906063669226121994715563150334459389388737937383447062411368098445919956488970777670064801541028284861674208685834925046228531937361927668248455050322683990725861946260948758107829452538819884430378544961870875689969587580408613667547882017544430698144759739147822848768196334880620482208239257547144378271670934570556532203744452817281910855763808622211251219860411747065007491805042157274275744398999209310962308918527684870946008004001200400592604996537674758257080694107625874840707418807590303738895672118874672036809382831160929323017057726230693384294157701064380212941462773943178317281341624754092174715773159407202160761806657525140123801579310478748550785348113635820700659106416069794169431524906595323182376260419753598817347377754037236113379907863447846051699622648094713588765548959521673109408591807627021462749628006033246197094143228138982632112461446083492265219967352737046038511518735969102413795935480646287065409544117919496729064264248980463965868149683725451946618729796482017884577154659976134626168204183440917459437032518982742118528920554884961723657595917388541944275260673237311985881397934464231108490040426990120036030278767955780078452874416864914186505529463052718763074391458541377367389322629453888525711618514300668322170485973956478183424655996454396303020960396809570633244165309201858725442537917586868256709038955135846042230207678260869527504378308096050302568998466192272913151244727295714004134030901243204550503304461726569592669851851576324555462366106056367071006763597770907851926539562857511053058127483485001683687844214736687125740752507086199460112284961924649942875862771077197108976127280472708993270534131695696965019313035191128294501885650439075706224597191094787909764801094024225788044093747680499111797467198104415734300422737785171607550995376836573871862004529337950298627749246197632079879732896467393299725053591950511958184366072572332488623583125635056763663773852397152920819238306636427251865557742197769535231592044095673065463176289517116095338202809740595890515898288062654113597526247931962516797948143489319184963292332734863960733062210793818873344697654960012453150672626318849582133182933075763275117207462599354348639887987300247858803041696968754661406082786340275969933428499708151091360049327541190212923463060197068305951153710602826180799084015005075525569547611562820760670419433252424781283979724582182005238489337655381385784534385939044192467764298446307608178027214172005830740031664372081865418415500984284647215456858273640127574571540121122990248120147541853127853025707194494043688748258412743545487854424678985600972315910222167229964663262815544904009074484914965426455720984376546846044950099473980965967201628988955709429364076542001460342459014042328749529461064362718637648378455947824602629913839707900962623852227597051673765570198996801553275511930210034103324798111363348282144494514432053620402328486672934537956919163218321908599430129722929658518957571419286592748730540324186867652767506680993507227087138179414301191856270002470752797175834840136407986508316266583170645026969124824535410562261667685317915327381130106456597406081782451272749820264245190111014934621112476135672065960640135165944949039821198445855607998168069695846012553256201198383402787505725094231524377385551917191870178355833905567925756476015970008469454636136593207975890609467504240547716594267762918840448267620737990456041354539347659493171906124691490952099965952225941738467698472550960618430739229799426130850651923935162796785886807462349036385409589697497616828418683170122083921128325709893144514914017141816005231804466961378909032832183229741313734375365924974784758244960495156342144305553308325313247429923370198959371446861786274193499062326200445939348626876575180364836859850113139696839065263915034759175201294505735453387266971060099759617297835827437446414913120118798147989321333833499509186760974515476770273891181508606240248378539297156951863364366432288655870963467077831189511761147260973314737552489022922069624278807083817148808509244392211275045931697926557564279763808388219440081607715550103374322316258635138168647635017082971365969806946610196995841064545250480969376930804411569786974267620236104040672444915790966713428376102509929710659966132127660563807863194199708699609340461762347360810693632977191407034180629268058727290418064175568737196889062068038711643092001557211163152632682566371631541717979845993435484558822984019440193427928028417240296919927851767600932395512283323247893856231568980989436228401909188108628925658432292863328780124532009131508837185339193341374564174785378754423625852250177847438124500820118018251126176968603254447593629889151310630559932491481694415566668977578357829911901369072086019457710848688739250390412950046739636748080646049001032881418088508419647643574656544299127807293610578575983698680662217241891381325606259810509805511171245250664183130006431340052289557190432695809293355651302579692071752231776988742678561116643680767434301518456195421375918867437667383743458779068945311928269563229054105165439710180381165068323152263979567052860916250547781117694000687017542132399314491815934015833854435013798049451754988527012949081768494951941608131522163647834627335462565162549565812837061962517570683023503962828055158746523366386087508041427832117577214812732265113999153170748744796083497017015556110126437871538574660707240263295411541449443425345042337467342222641001521356776397555410568878189058075968955322551878913858490529408084626729135060246700882999101155795447290001919850618837705009030750793431582939881445203914807544841757304874883058280810306495163037646932304558631895669728928820240208397771670594731722690334840915142844937087170059551523329986471747242874437852902668026723579104423958138573921132430387538478504297965780318316716662093968777143521762426959743540754883913496873709556815204444102805434314117565892652114249456722980047749411091063221168439742442594803998401468255246197151976679530369510504701876449327723519264544026942671428147259062899929009980648316361575682702592439017706348237846214391093893564485759707482890309904447642781622908748154691598460449426197966220371735074986789762493712966281915585022579820444551109430568522813862684874928569429251142925254280762788729696717168832059921145853531950058098904180195069748382757325958697704521686252750186309313114242912317756010840983633088445717364204279571351901974047049229315080709286473022093362701272963684220964099482112059063903321519897542523912760645397978310953246188332885732072421088365351029099523675086501313127966081755113837399186328720319497453735038953713557881191444447122603960826457704513613083583451088061565806165127420168633288147914565713891096778800177417793442169946630689231214798214046753279941043847050570556304416863074604539668766407465717056390408206258091690591187898376165888765246985936745797836968356819375281698170358577730035408727312598175760529583139497228406504070408453909835979453530557348351039163559356559251253729890989688741336126893613611109422344034516992265115125423869821998094478489268799830134589996824957062428689290223475482674110568031282665654481585530564968101976408460321782119096400489731868786054792875407076411473098532135390590132789077198007298722989289843690066900584668619058875887383237519636128368009553305616246516590805537154415324235843699477834380455988922140594864825968070509159229728997253362189901737041001289895324554038702626538701508775801857180221709800467560731547488949673822223436114186508120185248755072388470657096409007985473027304332675964408168912632869010769772838249466930051304873887527190396653999154396225497101260330254411417426566324059676958144393165023449003988113790847556594105901395524064876018787565787072480613938746353052463988818180404106110936249654299494921359861428770524307961851971395334304716542405126821376586008839234218533065744717693944116196959535119674373318548032858406927792454505639723986095881948425614765440358524692955381349460334398585014227580531764696835573536323504453120652448326641212449946806792235722243764510925590394298287790482079950412863460948671774664189455115342169558435417918789368391790144535814234733747405609013633095043702633645892174718208862933778370358600759113432454315199441266628736470213946004813770175208225410639326736333052410967850373341351035223904740109629062112873170897038986874841646350587590994691889120365311994520397903913737397078352915842690394646610141233303117608207000097288561039388663792876201910958613273214085205885264077743954332830754791997453388991227399543768587454067055625757934781869983078915174401036710339250434586859346369169337884370137125444414071112865034950395682013387576974795418857736840128764865971729011507738454587523601872586952013840908655334826511887099659996897452359015072998236172845303963391085606478319502302489892666067461436630782461618969431238875988308541539397011463301800843248952819747521764566389356928235383814384270810874353201028066138752007888804795439497265912776951567375377209213626485633587939533825805088559264630929794951347337524091444065323895420849791280290868130815891074200135881073760470423955794239209012490265728304843131455680416008830414779829308388620310940320546823415842614478085086931319365146037941247231835519586225965963210550220001853381579194756926940264321612521566820947022349416089758256907189548618088426646376229258039298433434077810032086285234890478070598120731359982751596547243692132128063886057108311997963089065189496055898298611068051972328383322622511312783973241618743539129365471491153010107083136546473838320798400635205971140072455853443044933272652173541251767439529924847965616096871356438172490653282098054144288947595103680270148397957645450282654910429906692131498771936164039599781368073831283402886022943480367018915099420193601690910923133669894090213199432080585892871139574703290003565113594318921843406450692852805546754155781754704519324728641915493867310896872037875482942541152488092344754728408807638996385152735336812916837304176110667678300310683748430953219155343085503053269417729015213143553884837513972997456606345394477915639839201894892165174456086872025131593668701715047371452480568696738729308969717557423808613438766410903727963233097115746890003710959586234375889177913414075921005383042227418164296824506192321603518543623275152038244915121548629912160178665153679649446287447210861183544755741357229317031240115061369470235066027395906417541897159158216952388289572316366794494421444961062489625461291391386785793251975915526481291657218609884567449789093091935815263204561919269195201653742894123583237319158997812536646759802563251483658510577765866488039207217744558769646530671491724344364266343857514387831670034380476284635845256996281386223429374350130090979262063403129514256325269393729860003639004584196541287589433909509218328951155857392842920159647348544204990306989245548283887878332599501148339009447029232225868697185993515128278106692072971286874169694473176509155603696711220471647685492113405772778307602172593269707325016096566979510883574734842930711327203368321805421019313316331690315941049604377595654496649793921415950409847551688067606951794666873860243342093222320456605519531568351827320279326723122548106920575207946042422913553347366247194411483297349099236058850476661032342899782371618459344660754741852368531332337041593573854923011994717743170232634553348733269690013279170330787885497589050408785061281257174688225191954641176136147188301431429219791627638252263710137742363911769520017137329985469275705805012291280825414097132497758131718614286504693868906359569533943220759076951978989465342892165147122546465111793673927211671117080472476630573111520523242314068056747303106129347686243760399062042572473446203944506076421863994031924638917158116985720732575034527053623762931457979366926498026704892772851371212589540479180753835104870857506276599644571792936488952890345354798192973688143654976116656414558318101872056370861447991241156258095979510655261665411061797028898419245666232988737594099565152332803299219496768644945307395173729026076849854359332877519679487528760337092043843730411027260089004093992881593347084761135340013659110624171665679357946561505092780972642718029774846197988421215214323283795324765149636431118298432808666312448488447017802849382810586135257692075104500722868728941587690776020928279396989547091619351716152817201816631064274704531094398561975130476247674251511814439607282516667140553397843755077766979475159998946372128028699131056062310444541246300109237263734646915276307009933632596869211218285110511444990466890122131916668904698295132104751340599063511943506881473231160655547000459195982305658476836576694161973214976236071012083210424755802083670244093287859774592805755737472366119564316011023310679465867306511936299193555208884138732757087081288377010899988725953775513682491609357368149465075741987708538046511123682994423827322400778629475920636387345408453322585687381359000040373419561782663651023593024546360041372643461006865830788802485501703166356311572787220393414998450384444948026786830934078599045169377059455671786772602778463212533842830309098140800402071693661747549645479201255217636089094737990969239118614645083980852973820991912040672069654140519021752223213352694965344765320183422882036888304353621806524440330810556619365439492902204141060681140495292577237194370574095473417275778904138484882435059917045788081977384186163702879323311869547053715449816655311196013743675085659345834198227212442922940943256523747492792841552587609376902015621922340808098617359633715582045433628229280349502069104416058179608562081781773648255610162367015570900061057040784331275194410551984850281584022717100448143841946125473086120646775341004048184012926718842246932267630073718463623816717935668808273491265851371653317012358469089061219183223367508152493322100430470003780441055788914548114808381543979516693413540312204210685819237787022996301247312049107596816435217464736800140034476404140083785437908693775694643693609869732561100556064258662753466879351115040939868731351190170872776046390200561922737138675175266136916504869980580229032805910736049925859791222028719467989146613820591470617750310064120962332464753626383217130957297575618100089185019655817282087752454345926174145470294614500098324314233665071177484357671799801878614776754822208876136415671414885572313830334267603425927418255787270719985162392267375348303329823514917845288087552388587075470358904460667405501559425689759960280307185014483055024589535475025162549537643028098505546560627071355942652888862969934851111598976440582305264008057214543064602281321901589256026937453511898252915215504748961926207925730083459630128158519556803009672158151185134498848886805722666105233160193552779948953954193383893416189595033214359866677004221549087090929582885216636239928412743291742678020473861073744286481691883589558751894242864165001632238553012336329928252148253913630712148871740313587802633332118250470494741941321705374555744777350914110034928615182842964155960699434333328611732452486422863785545295650963636338891187218493503345350776611692498288701166162355346606984721747714612999210182976324873048706081480514193026151189798946258342839591917048654141685007635744699336411366214506976859103446513655635054943281335319418640286111159449322403134598378574039930669604725081321117190657857152491159283731933237106498136561603696076963428935846221505750124944146078985979267881256424312608470632226639245466704046568347298864286994335722902773962327978381370352758907817493588146149644818205552081600623564526874209163465707918310565422044180925191693702336483305785065189067379902095635384428263839991132723939327593271677772617196548144235479029456990320058008156808747589597630616489241325021995444019436296024647564293470858706220098348087378706022856886575472311334308064347815685199813170002479683520775369622852722280760708635689939659843201707022156892933991062573421900379112777630501387162864200012659936245063471941492383739685433725276892109501855491623293595328968538756355681756410408388699954549256842030341589136498062893713493255922281347363611436544600183589083080825800264519539782618351709233628680092865067638701452549827688229046187281706136558155088578581283697034816613923702304627432139529424792807178437440517317622919368789535644782731442804696424987164423614015512457364831475352993528947486088443006161277347055176231645768203125222649658119047949225628180724531709477299496284624608039043263236917930943859732564980820959514080679228930613550777486181464929255862598599725936095156037311230626243030592061450133258076059821046541097102983829677786864851040839497818523458714257736009953024254513808707077632409974048696041647850580977728990221437009678762458767600459882387569631682824813469631506896760949041543166317044016226797716420870159718966171699230059591472855593628244865693148209701077212488740641077236188754133659158045559793247899399087927740950542741203630664772889949509569753212546460405239773102423947908376083134038186994954266547881077169901440283423155866710827576617835474077429395293760254970756969104202428177573229438991028573521143824988612141967358160524500250783977616521714096447585453597991111806383756711421549358874322618769322250645614011033376938485783065908309450582772601049115120702736143584510798917079359844929566244730287810144258469021267604105042502592969713716343621993967336382909943408532281555950450149609431180135573310855170052256917203786066999615871020967667793677497934108153447072496538212255674032258056228501476956477909104442653271499929618480951248944618896952131001421811511248829621163661041257294908652647380897727223868602434400278497494829856129668793539520870029285091644081315010332987052426311428558755749588297615272947524417965988119618913602326041221346764554024483886590947639138242016924777137488800436147399639018291153703346655765111468038213188661802384962557083652397242289135038198423362798202053786522631160341388285956970299245594414455136770319541394802061986696950936668584978535980752288690441739514204048165383038032495131387232239103747156644919785074326280996849990230416432543492477259748969468937517854820217831856294350302906863788028788590272341147996447481431081230989897409390733270944444076612389733451010521226914441385701104132725915831005686005503353347041498499476540045461212346760265694104148219979815035451901520625960999906447000327198050986232285700604350941384156861229001696977017313455336028658662968817026762116339269249638845009776186407409642638000922940785230370579411450391404991916028929641227060515610163102619952230944542888544938100880810830361453803968467250774013835270197778392517997136697574651305854485637624881425420764690317002601533439131054894186933787895715112392458108745246380634088391084626877441183394458526918167338154528579436057145151101003695534183535904395537422744069805955089390166756324245293899454355338534871604459880263195902137416317913648922731723813478412483321108532061019707324648267444925490061397912857546761507532404676958768247106009654743040465709044824642522777078195589141089909607424176342415328150865010305189807802750553718331756475957064899884435496796093521780619360464985104872333669675644331345485946795462709056726287628418424571161172559864918095355758686367651743583145703168307521615689913306942611937955074793726896217855765676032008335292913164718138854922506679441728398104992533576168177245192805809023056385034675685775830937125829357333082662653858355314457087230594589503766753774994379339788447605792977681089903023881879875329941496697417073364196884489451656525555460170153861893715111666977155594854790066514709895351024524920400833801899268013346676764357899841449356643081329869174998219458554813649005844837775828342194078349358184371245765982142356470246770871191119803285701931841276213844716188980068103286269672328254619972355281446254537253585995363914980657748620096120890839707214558943982004607375011759026502936833062032923800459151430418743132146259613209937990329316550886237708353174079256452855224715408389849143364309021748549906928513206207237659831520103584197997944457790456502018555046060681979499258902229734142130321924846397399096736584430067358108495463391524216003833656349771572171956315514582962463323449565265442915673738105485853625327358348756795694716859566269855408095397118644855455905383003056860955326312085487489850459177737562208762607062188751114920735689715196557860295561923765104013255251121601658259199270288436859380105111679699515826794501599522404998211852050893508328789709162905112643959329868658186563174137458170618049101518767248099606262180648818075067521465369635006281601005500690759705369005121078347385128537505701894700572184852067135449382365428639326151788001157056023287155067551757305878799235209288886079814240173521202598983630289733102861357799299514863344684952213596048173349199070583766332497520173528120459299541605778881343197954533803173500813060204192677047026182961646530499052677367263073824241829906372941665089494085137871038265357021647667661968186260423942635368357510196725702964497200552959355351890917476928047234065692105572810260359512698790989296469295398496450425030006211817138865782771456665045266102806223539231484605771969496513319744469110569962690436780393578990723866710683636632335027907084661905924702524608630669088383387880121367740212107265431100390895309977969981131360821282283231694162814060987206949658880186962597124969107445221471004014993233733545157439502880166563530901787624183777524333336067737901483470523672758108091502254335367113789061615305374144877507597600910064519408036117915084183112792590733557361920316852341247612609495724201935693243793439978120213327361737836320216449193595349306794205125570536352775047965555292337380244476363719761098222385891495097126377145636972658585612253382736488739325237716676439543579754567593900541062485720893651663512828818372695247781707970537092638488508117082900066074860021809860489268797149891299754372910591733304056588993781574088010873405061213092977080633161019600466974463748598960349535224955754246842692241169749353923386308234299938328551546535182096826705119215527550410875655621059773420898696971297291691739255309784196512716223918462434945687631013514782747089160888236734125268206595691524361708363305506000247022693568639171075597440015865484749965034709848232399522337623583585856703304942028387913734084127484112647046301595922782637244074365556816811593152921239877519615453991383979826393888296031931442910463550539418959699732957510789151422312965372504795030762645000924485510234799291280164937567353520228028570664322458806801206888785731508717529626129835340306735543022114899592598418569657589130525520676489541619737891252307901267296439352400156549095515860882839095133130296914067827993105869212654580276482115394604145117947819592842356734591086901854127173684009844320660234947346452523026704742547012744960294280046709880915132337839132059810128796140462863311223776480824559306133419304453997863294258966714329296255192815047568442030338076830692463319134601759913351378810303052471397233843054784504581966322791139117167349057568074871886002209823351588109274346558943240545817250946530091743591431905139773384900306487629754345625606859429544002608921179591385228322992395085864088365269310330499178569668365933331092363121951531414609868102401940374690982107794971707107554231921290688442710519472551975775115246615209036302883876368558244513808033392202525566086036626240119643796073093125472349736549402849899016388330650477498180961808962373356190165470459870858225711320375557579244374857784847575552901273370258292593517657825070163143286254198970112648925862859554352553530989423550940009817417338986577639211937292010247865936727969058578683094307057493320606090851916348372655613151415353407340271172217960514522454356639493777658609792993862023027040983831230690855962095533540993507243773821017776869428521719428294260418781518784612851673361236230514834068784208603003269274082664320807868215466565610933445620565906511990410780748287903471664928152893803354739941547290376608790089810935462029851348214041336239998502798463805683419398748480706436594178807025907208298012500615209816422079812681577749090561731232589400425626345636155648130854994607171866398570308033879132084961966778146006830394404347301945672229322029684319598144646120959841341796866011168597111055663396392295471359123293868378826812939164348567467078516797243767292290892089757770971661751860479661885812690333077891889261254173814343988918552802777819343893914962504694246301028508344798359867488830011318208420813873226895823430573418092908353344739695781956834299238997864545313673546379254680348382181876438774415730618742481522695811591075737692297339591581013146856805407798442085706271363487997566292614917805067088131489268786940305076381183763428779502131089957840583460761276080865000097751718929683244073713849803946622917367195948957171174863949597428212697245469510278006039151327897937748818500362878885284584476746652141560809937395488048363866296366966781974886450764739937042213137977522872992809442867658196147327949246396438876204836940242960870049905819448732446008091749590970017352272473917855993027371409389492758157193080666492185699818310065301175724623895046213700637263073726723502028128447976186123254322834706593389741208303516026781914682195248969624264794556290992671336316711680508539908099274817815257614980728085475817903983768043069853902321448255012203136916066855680088184906999995252944274286523967487857810429011946977621753310480653779388460078228515489177410609283152363226231259133683274459803023863986056206175237254880379478277270957091147454961227970151985092122568223858181900176750098427000467270379993821996174871855944339315511759937160430692267063672752315696556713933940649476396128296439503888874605900181568846008563105217577467616690885027686081053003124003238027706290624181019327507547320059643056667719285856637194541235573563224318308116715158749088597474650613020245048913684785160571828607881406427263422382280530216243224978285313516177341392285152224533600294097455878800265904277931962610919433991678100005334957810937328190978570307723530571441283819343145670526891881381465302051017862034588480387737894654418876190152224095574873376326515827937829450153694218163020209632865280690664261703700090286284964052033572473176056270316351381286765906021114248552049862888301788366902017451608268223821827522277457962983559036726582975382200181538460039650397283171192623245300371974139756076200109657628254355996416664667946674558979436232810942173287321348226015890437545776796320006475060846175620246035519978048898092461924024618973338590896402841937569249592874908355032534476970071861641790418269013453501032489116152553995116000652865261852161901921083897548396817926291931408061765467212487897059292884064615984540865120856982368160293561849798622842025927448264058576311418141014261601494316717201146098744562583230948614651665468750718442228831960653291399792083853179077022505740675528259908100902126946364752726093280539920084150740893803740259242918651895481398242682273331451806411698271454258682742492789845788168021953021677662334477992990350685840219056553979371616668473902787160603243910478271147626649560269976031731949223804289451724311757841556900078821197399707274119169268321188858897575797349135860791996433772127843337745350003212545632037207166526885407605663871592977693774482028333475293711307596075638115129687717015150742057790436283895746388154617810126776191252535441860713674248082580558113372386726556286569583069038102735065462452553252865598502025165623468286111279961660901519900422140298648129740280263439657210797276977839576041547106085368586720751888042230453922613697077793027360469229453060380984757362072042634882357656999019224641906312711147455115484365368168915222998834639389355740723180847082749165887371444359665825390026633090775814868422667975568773627683841653734726989458733424573227037605497238917523919890375227710001456460306553156795482505362295479195227492373177629074768760773678345994979701259571124604700488416629829862927438990486146348752170559623366586682459824923120615538498564911435898787468707480931663202123668675240341260320090024874680706635929923523061148822619078312157749767674975826621248023974912488706243329880538668376490227732916854975491325033512893922232761328055140430527744818021153643072492008636039784375244869567856561751083894276151905195815701690699335977057210124764700542783686577342613891441867263226131044854493289573793210416855883503063930643658617976622863169233301935276077324603647672662893713196850383550693951662050034736088388929809830349581397591234340221229608693531027826503847501355933138345111735884038836847585695361741628957797838226991379191037922397381330617661189759914621258651902031523232975824340926509021899569963182972791481370627819841837771842490052384558153454838655242920869860572169398125520765078650216960670706607857439341037176448415570388321591043115664645182382210128266759371591728288769881280724005719535299700949966532217137107013063693931482364565345821197312941350589481215413472058558285682548363528150048273566317854952838595885289648900220838000880476657751501369177768430168441690267131607721732413214678856880539208587982737758579910117986046303307104426208356350779793413496212072674333907252530878091723617695320540558743977378673242237762784329703904298329294447068410223445537638840529206084688308011363070027359050801331785015160270473698651466137448865661889843053521705105400555609320275038471289332465917327002352191119447877955528649561642338674178305250821987523382903356210336144637163669026861440658729228709420222013485736479095376839005071020273074395288301758433174152063242657033941386991951145992186226344853269842726554321861623835814276340184220805332016195655827726151965026612871542709689995256547534852067443897464132844929217516851004323472593070184723603505939952298698266025815444124318324307034819135841105447391689627055054105216161439999087979588966896463171764146126129663579932069341636533525688319270364126975659839595386350152600643994933312458350058892783171118596248580303882679422408607971745287078014682508612287250330394310420367193562604951176475642769846559191944598365246735961327113937732477137742590995243811177136265713168397810617825500251958617161589326593344904568016532068265472159406531692952444118797242397269940524753199440065315990752112626763793968484183877198477933639122664557637273961195819272574214836639839880114559419093756371108173225439167913770430502855961825643798568756376540071666929128811412538597538223116376414681200467342163621544619748172768520311601058662258644345778968929734376819098295886875029736732828194776875325450807159342336501005644340680766500696998925039616321586927973552169997387409978869205221908736170257955906791416980759789576131582984301426850160650658991284456910093796944333234971492777485371432569637537521496430793400952129303801908400504622399878414686638665325745398322335445342525294651164678692732796910339952869813655749577122850254042960464715885666028249088250236045564883539804170625173342640191999941533132733562605931833281921859641856271882815512658043050143340249816952603672122085351663146365782323416671030330021247342304294854133117022941032308325383814079288457785674641472219199311470108415255234520739015772018044218162699454591068062427260512244323901110272928656204791127265801557242616955902027950649386440349218595659023756548093484821904149581765438955919199386094284950041338870399434455659449927842866415564806381901259664777194326506056669349634547025389091438451198928484331468713744138095951700055793544357619514112167283117733980547909339980587275487766662838882674892744907364107528870124333785719983611833902271364868731215126026741232994246021986653340189175128757049338447240798521689847035758897436585878241511344664761147982939144339656077318630283539211143036308927742461926863201022489691466683462690256580380335697658243262741682992348544057437297475683813213593467389804749575441237848784130380538897835612164461560138752752567992209174520060338321799619636641030146852300807323996343903160183886947489815622609800817234483156643264504773650520417402624091764865943383322588669646529902403461549772441812499926739156441803824342558722476657012332984857496799249163483509676446782995280895548206770004678181754409346895487730432576381059781001847987899882357184031149370319345609625189178136960478368243500606646702330571198066809043401303756169749722151250916353626107603816139967558731642432727934483551682990338759289681457822983025292365273952191800324761210728723186590064567454765206829513155172210036016789931377035164257507809886036331406938589074005316999398109225412185036651019085391781346458373785055796331012744820562666224194702557352387355258437038259289115737921418367718442149677582569765746533976896209309305442377765827472913591718562449905565990546577605708014386310718288370333195885463495448724414274613865389480734980020102537876377087989021075248785301154277786957747504028788364771460837388580094671790599482884794859916299963411432555041530562432922114848807794233960914455070046746644194807088091827316785566418571795555473675290549794631783525096855502530961356955617910355389543325949882283234748702183961786289031531061139257126474294696153359621729563649324645831715298541943392847043103533683834970278740388146405691715141217332720564650375907578874791951175715554267306484894250171186393849656008012220529223636130286349458576396669391702853033947988670700133106470306408057852872688418758729911448322149397349578244175012761435830746116702000007220673330296378884909358405345584215106591621994605957254021078221800011741760395666317878571549319492161356726398658230669948135238791267749477396983460640901802315897547245092214748369630753612612925729852903111211158227492533825035937741383365142107407925233076817342625905908186861730350117623685752419402375984766444258617400829374518787295316063099322344526061750593252189330359674791607189054014103481628937647038152006077169309734321826071598846091579522360450133367843979167286833342565935463854127134812429563417395267652824263416633974764575112632637675657042038721724382620091817130974883821761085321498345399655980455946687998920205477275379723477819805605104259961165912317686046253973289274184047222715934204493067009838105499318771533758626150150197596961950075924898967345274476432325492076857606172623281149402196610670034074723628082270403441391377039511770934880072034957450620701460359608508801443693506448843565190130575131477791550545209009005357361514759924805512281866567888293629310562620313876303079298925027777538195812281601129020862547950172596025801589349249660159520056263194878256382138029939305207929425127488173766355858413131675573437713161785250837745478097703248705352477489286990653435419070463081709863290723506714426400597812244085148397152766534085900850592348467650415964379786098691058830492647486242358247992964276304449713924072441677426989015897127582240351394589154498575318528555482535984425652134595843182800379982537825643156889292301605081821948254041250163745836056459600242440005190058459298352096243557590813490154106922084753951676076357603997647877753503683960717435814160067248309895856123769765049248385614520988053661443269619115992393417460771880104382510022616251179843619710507907931903674861267488127492987030887106515603683295681276179053602047260506652067162392799784702580984465122211326667166715270224525842781750145596640622418704752928595241114102059223985467184842340505578012159219359314464936981995031795453908942160219495093960647084375897368551126385674221291354048794350808280794750765391588253699959926619975501898649712232306476111634386922073927756597352493942711040855050871058181809549854576826382877178772978983874425175726010373305251347194919745860014419080906869746110254202373822326149601519568527720757717835542833780886794210784426031476094761422029895818580621610514138659153995272988144418370311853287288958117763221465305026994500222448435397062081052149239880803713348591207647118749034809786485499660912630767963630853654733111590794426451631784156702718465781308113153544925737368992328651507212385386354623114768035473251857418797443333186991124942452289750688121938983130842635634344157645366645168923346403896000646081176197961317609585178942865084160429245408979162737025079659954337576174666369692028921816223573936044125216552730207923539669291987450161043643477086926487105735683164739730863452164942266427278561094240818625476709258724714950503517834102600953644192149279718879386418110348775264743594720587539771011820333955087876978159998160105399063315522781441254368884391924337847117748267088093561424764739829257919563300650024671612628911876560499938860813686999799679156497262539546952062922078528051159410803821664211263816971931838773622171312869173939889605497144910496044272609974873311105889205268110036976317354877539538349376499421381488009435058871966967804973234199659657108146501342722247707798352994797942640600567077244676787760633036004131887718719846417464381319973681304971848889487735594031776714224474232725548047988542423699213813960614675704532550402853253080924639097430514996377398428889358050695663647846966674343268395640534706771054291246891277021919069538886497430648801861012704259129706798400055289052918390934677026752523228188380712911287703331606384754978249172342953690463975322780114586354540618389389097025951704740872086622810426513097017258424889723636847834525250691154637149851856621285971560735502236839453410206506718413020093252411797742055363316740706674118650458641369403273009283668652455154757068561808646344971993752844338251578805052671427592726885104521937785386666688029064584335789243534650968247275016833909554564857526825337743804177772512735342425716235123268418911582006280206201181589134639139132840811524449707499962022575091420241653130155903054617240135089987352613814011879793337297245536485625223248280847819218302470081169899482853375804386517764466960401446236592642305547634305523787073917676270594052664172136112752270686670712897643239239435344261065867920745442231222433253901690987998731887108434289258591476702898366578038445046583504352068707392970927810142803495681229955474325908561322316507929903947257476074752055338609318580064415782192242334496565758739221396974592558692071658819013079885869258132390788120165084218643755089796968760447512971475464017722217341069923628801517538392270970715839195731784247462703058335860886695614568258816015230297875969623424344677035333726252732122756913610440123506004200216674374685560308665293591466332820307333861904181826205118085962747349317222023359587125894342110757040208255244946614469073149761522046997040462417817564290225655339412003216329190809694340319730345061769476452656242153962718209615214271576646147847692173719101079673095994148772998269970654280474653092498379843090798816911362655612378407074683345241616479771699927106696862227850185245780244778930445569949429654705739694808186953006711391738281985365536041136623605892759770966751274556718637288002737352267140023634404485198173070697271292739006242076338222665964948232383463726127234924921186666239532447137193543554726145730483986519962193701377002222526814563639118522743147827324449933475276627175811219309725761026987860097168984551840751256645732594837043132485279218726511384279861604159365159240107293496999140899841733196234742742535566422332481117686537943269131070564829844077571676171220627453012149134415884937283517992972902325846693492229159703895096591078758881392874078498689386543119744809310440492285872509084096754603034374161623365992533219797823463267482755341492242523258936696894518981784870311508874009687028579244410409210570032092712116607918841371635835953082864280108427331340668775620736309983140941505423123999804745794116716174430300360732278210045688628604151601762848438424715241850612161340061231633673439770101289873029560336508512093208974576476490477801142839028023758252509558233826576930635080212029555830433280097786529107179788573729784518495238682366692562455048119161895570479385341323192127011941502435267186223116012354452589539103655894777097389235747356664764645465837422041857905771686436575654683160079045320831861417007537216442171739586187635924455411782539277636299286974686729481273783326631035484597470439581352734556358652878260700148149407251409973262597431699694368384273608882826645897191715439904152484346309971120904548836963353205148371856075267399359567894242850955511655014873476752793441241259151342474916893007524606626885409911102702636975766459734423728300717466485161026010006501324800779906915327361407185286602647062334769388989682455910016344762445726466955408219729149550053495297529190336160228262768347719508731452322863228274838796947674849638418087025750453387490667726666526238315003271705375345667137650483530947349163095438215538498980294216011250008395380887300800189204669128084299165990317291892282082103487723212272659085462646439642438209192148804153028039768144459432265433981101430334774337340552819816317177875368196800727626155020534639672918273932742966092685014090607880742051488510758843249776909632013193320148737037185452757997553276281826019385147457641251719503549267470888353464921704803537933273548874134180685058038855515534349364610816797137399130171878986728290721016829929332574915019926454239600295384963399991772225131946516630535572581062673712476585036612916662249040503461056334824621390385847925327151780094492507941786686514926110294626653412404917087675180452119878464412258646689340051651972419896844920203033764312203501879050084137253687614090890127843319908119498613069787921403256774863462689275318951280044104045426442248830149952104999767075543822723003746200963085375644908520678159199000505329579296811677965499140366326358124538494277487341332147623283486737802314899057982071332341578186461121202449743899745420911744737912223902619348104938967482180472524617835800643041998948936882885336423697646493761746643565287123463827384557491482349231433220057832710723152966434610944694986337459382160444753786008827462915825222210347665801445103539391796260185972079452223229777217762885549096507424995013471725947827135788033581284785678454183898434448368159871073684579346963479091308830997840404901270393327140448030368166373949352936136018730736264058708116933826774634191899920277450031544220755487659025450393691777005785159268464133087034329716953990236429656246508233015535493933938168154768954460103880917647552622914417793568720172721749959908336610941540037198420141866322739098943134254783437023669500134175991839426369715578020718523620330859883412689747097775081504013428392688549532164700085716421849736625118596055148563430105887327554285053762059923878307724599970943451288890932424081336566726687876311182871664559896938074166315227208137078438372884210247475794077331842864987722172711165917128709404721675165556877768333986882980551501249166431222955681033601564369564649989543025033962032062415910720152675561038905659998220181942261438281755218231337052527591811747912955954260902129110159147807459092592721693920931440894700260427184580434583987523980846615968649565775941608826511998489356884094148604278796213213125221491025645255025672198616426003402347938851308597885830465280992607619060241625291303893192442021012335476730543981646249383621863003404630841767393816245887285920697302478455121002991895438157733011809577010458119209550437684833185512935606930172391454485399168080825280387303674081225626287633980957962856355912181428103514077274818151310489214484904611196710636718572631518650468083062926328557810443726251045414368477419711860844810003544124311940514582672069162433762339220723926730838192491181651939807567726479356003373194891964968861601481899924285472827613160318071168290616520228373976316162512250900077519447201634351355876581470020423049484501850414473876493425464685737871746049577066468340245330903554009249497401482058622114884202176036865968999259829991334156393626346487666221994869658162562455975584922016535631784839074265465514623440174291319131560220986289882204624960221140089548608814195481030766351488878886938387751074727769163921267789589543921955520582756371425706010184806251578224461515927590135091462015402684484667848497988904748249577021556032554785071066243238733294820353470761012988076513248364452650279788572837141134164511287579803181852051637083177339917614822731336232815478896380603390792912817093995919876477424109871812016929461576176926617537458209339588327839547321642733079716816676285081283600053643666854750409582790385570380740336183700250358379170260173160301501199378102902387354052179099112546972280873413598460054208738979645901318974402048661227502396943732655122415218750563555834582326778872790825991211612276495553134604338688922950820023421882456675955779510106076303102683848747329866616807967325853237946715242781270806158615729909286838853849183386350637138418280805787396655593790661703690339635079357880340117862312209630184846118828454840482763105902748847741869638716509175192267110620386848495476232822195476237116644412907899251249232015488879811292298118489261993149629268433369762818509753615781443456118737512961902490494526464169937915870234725793339499882080519130604384726088336536615474857767384527010021933862189597692891040375841289669919593103445103373947456508549469695276629412406829369160373944432147672527956054810951248402689652428592884543078070718274990747863547243622622323046108587192869778644110309268773538050878552197122100272007909105660763251701434961724569033799050515993259097799501183590007133860362944414767233000465947831213834023046232841268161274590031298974285389270928721019935804405946295617876172459604832711550272945930727549024410565598101762014606477744754252568282276624238047016839863145249582072999726537514602848236878502774388888664559280295719113012575691493391866596716320079998401067251379049277898191601070186606624890112527458371852644714034979664373566516178016919810975818875898180178063398192712318851904049903991059821403048903863128249444609015859689046207111167971139566139392247854182474949003432191201579329111822717499987367418898094803141208979680188971258380561286163040716950263670515847073244970804838988600028229591825095077725317753677518005810004213810619798020871292077159169684507347145567159569580453894874691130422098104969149467655763563050791475299375860176092302315498888619133663932740525843476373830023328568512864413028465155914568970366494363898743240523883883274078530051278875127203016200063501962793801595165188220152695427550525124435201405139266142479354021684697798037093861870963502473514582039729364576514528727502210994758533201944707418211159686663661135471719063804115791865800384123284760451562783292921058257568790130848771003365241517542666144232318934105258041343833737222166982771982236909992908148663415304507866455383489334456639181211983214895729678744922688432125281044083591145875426027637161739353380480607594482267538839452617517363213359424150860981438850131714104977800882735950752801894674127646674381617424312328003895076089385570689397665166619069793088498329271880096026059236096542177054353819976968163554921397607503544719405594078519198740009824267317520839511889949272935302962928174394770772016498549757058392098100956887139062354127249718173465951830937116082300541267944623250624495069714466088185830288901018847040436021962296219278388625933195813874023852140148210656865538751940769488495932998681847738770967008971469853088213659093727895427079902671111271523782369234665564229321308516171974711772158212189828003282483924655252729682183413921609644228260314814401006238698342826127735388234307710526312199744472690075284906178083167090162148610928809148273037870919700000087934027515900037056881058441033444723354078289057297020711241044022105179501753475273338193410635729928782464367139048705932333287941616040874238219159618162381510358671649984049097723754360675538896990446987893186245128066424351974256272349536135843069627485513753912515318484441850428392343962480093089829683299714476265945799539245872592100072810612805842442500216241762963886964474484320086338777333957351966870114855429624954992713270310276385082023632491466535485707534573553146307304795536715540712178688550510453624015647784047700665107537187811063570431665666144181310595956624194229085491833539462885601169544717520810851473349705287800981992996805903713345565576861327266753144428241285902022224353513495348147167471166264340100327383456886166391440058723175934124486195881452119961972959886420195676543013762901757875402033150597866639591280072134917396359203186878932103760956530866182536461424526137260226311658406510431872120143239110960786656930038429666248120612708395459464852835996795329880611508314085874488089104056515657287113751637533639040422635514547976907540345543354259228342951445399619920357858153236380163904158875539769314069204806323125644274022200900409538828271689864488049733349518188150281105512585635349655578377854898878853137053622897205344758690092881348997797073707001514806276721194209767917097375932312681520005718507401556795941525895138711168307231492805808150506403322700922432150960092638141803063274851310187563298862700880118953915170677327564295546628221789184804358769107983961308441761213784496476654937809400194076478483427918725133881200215145209352854549519796761259177822851962211950384543963142511054558779958934972469370376085296063448181259916664655347475609864935169153596104512155505539997630454115603868346478458302796554976714141219339497857382862874638935519606326071904149640264777504879434669591911602410703622402001442853967879370180436964450578362805569292777635033644771980218648616030834451675350341094031377904303348028421412719062392795289397400265504994397715549546535953823309436309367885348106235706760101944565898909686985475742882866567456823912642113125249520083587342579448645559480165783941069190230334719956167108206512933626690763057115260535978140234416603309203101236395027308928079754467418319207746233851025900202666501737071793583762163288225924630827687601305667136848477983757198928505557902135664560041618096333841387492665071182373737781729238628300622153294230495637015213778108859999487923372764485001609452403536228734849406472350250128801776800136401482021681167180595416147254630980559793253881822814596528655555341399518416262495902128814833337678599340327994135371498820284847711037887274349434091227440146279444045930726191534886504339516391053620250669703206326634657577628605821305430226116026406118297249435050686492079484763742689878235883495835904776946072321122121929176715020432066116977238677308490431510356794105057167124236196779323857278036333492351064736244331996619822381306763718919512133721413836883989374949054740734311660354370764513775324752376944492153697168708556930333905506093543907417552156113444706248413286357886462802003349382500504302467693765393551587671918501239914895293868151154153860536930892333522630208420951079631941106401250466066008774941246246214527965080431176046983133174389955198830563398808788890188500864917126242588267340008485683464406667633783247857339109472414258091882364696452136652600878895398810361839464771696405130976715512826139835507243795974880910711839276041101499028664717817350944412696547704110820058590994517842708638916152259960094482372395572299079629815966886350522962147528097279333991642739040561825162157635521727186617296792791640802542291401678050895966065957451394795417295057379657725271825671686638445283580156574489038548277080555306654756063269851743837208325737112522771316300896707706211003434592435253243202737912796124957387201498782729553612617402727899163663719404113330802952976158976667846204595305390766789044567325067892606035902328762165223273777741461171610384110329112028224847803093735058520877704796178150216169534711454619249386172542556798915761008317564683041716210365650176904614551772026676047284917308973079606172749319784996479541918324088870494241503142726588037686123576262921089892178871710553020767268471231171763897385250200227315461216121705888173718520121914281584130843177445549081536460676710124529800451074974697295678126624833685268053995675688936566683547575963669030773632911877754281017270192391635608704346141993838018215162809440113861775421828792177276107656068852692485183886370342353271930791241596551590549965440591370731886990380520671734117030606696019071624295515612825672446409113999890597060073706894526791346704536351217503088350114662937765588015540889622691219903361315895699470281673559898871361363608381603265869735997610410322509108867948421966713620099369423319066279663460296059410259606535797462860576143698720710761652483901712517383157736834153349636979367352598723095475188306565621888542983874279522879783271651820673248615020630758367740003534265180519818485150795370856877766784194857459101132706456974227033667006960203979055555811091987727570351209785747146950749694497302101444962425661642979298951499584003063623986314526480259115427069167218277324437857341425508515642633047317660253089552326246926435737012562950768302090268367814364504621243460122439498601968313924134329636378206432455138363388937617991648338468469021665049826390801178330313780584082241180782901184993393336909784554371642303944707054811824764132871758189463509570696637266257664558950887909923340867053991899892138535688784179159890856856111638357173198795009764022856257520662949293130490846807372679627171521439613462669062093073910453842660081139496528439497967460394255554935685599482485096921699227003451650990109796739510162479737152566542547321020674465452049870187822721376630314863085039801975279693074651775730990588513774687141581388825314071866049806162388798490667084645915177598207071183713892744717360224230907404433835370612618201899932704923429859696814515547730438107151816682940421727828106384895857633034259214872259378585659605039595895829233563584293168106884954472911189362473846717034309327615246942868041436953456755883867457928052813911479785235827310444590104430714786114509940437463639998944472351555340358564029516054823212657239941108551713988575115156894940056061843564078331485846907452515599071368465783284784853990662386481780910144470549144001702201279197523700348373018346171595805487074538125239184428676940853626547005924003577914442780366565231890889670480863039419059171701785017515565368644935468671911968637824114539847100758295308124538452645527410752828569896631980099526045569873723862299704107628880413530576418364645271884908445878159131753130360878471174773697751911895806066864495454177971216655132880996997823223995901825370552631439083455227477037065688663578686577458495413092288707252681112513315496665991336769366823537578538435333416133918330629146484046744630514052816779437297937281549871997960857552184200105130976629955295542564727457301794008609259884840403664979144640950797948031188968328848721277531643452234060075544279772159972317032084306918684660465313291060668067434891068123896298874660757897298090926589558138802342197909937735912140331568497164990355082315518611660474791568400001336117464376433557932263932434471171845328843258170182075779836307894042263071045715973463174646651862420796189109598800256921815238836017284801222150152797207307551848286257064050603558229851635097538022715587294111765454786127720892080893877469775740520037541659891897289424778925094698098952771994863249584746166797052442467288530601885911137337660233958731811292536610941049595016755067531582898126196233698184677604627388049710739944410587460671415395255360593812304690512814725400491783865384222134002440091049257914862959880600397840050533067446801659239163000636007737123599322841850296789549737748053489047946273323613020446665424933665515637140623688165626032474183017982789387046717690041971808288381730222693665061634344457174250555862445617032250519580277111458978086773572749756209960593618655226673964149181387114164898921570632600856049800347637944000181455175133063048572876112747689185515323557360598720542270530013960838359752995682998943030271822911940099702492848994053595302345469810595593145636157261735090212401686475542459015411895320763182565514020166974415354006541949280829181879037554684749705074819619348590616494467760650252450946749794527532033379364351131256983842468750479548675229699516985274363810760602535943065869819931688577376547432531525462105588694465568246428574527702972803164361451262690135070529572265109974411632155472564806308434722615995534104242056887210395317814173148404346543950665777796058232980910359933515157248360715680132657761004178550287054179856983959629453946896733808783715927505187093917435770002754653826600453364348743779836583391947949700118905231645901722776116757057303628499833498186585541029255806901330011760457452579272316124885443063921268549774284394465267428237501800731194971356520970027337228333241638704370814727299904080791182579039217919940098024789455917998914976447549162113248820707116906660154709047692228851105450571553917206194823646584148535041073244264169737564641069596121920921578444035169462781549620115062046577853508197727142798857913311771374403820723950421690663608636287333171747270037391592917001660650980821051408558706979183312870777609439374613682374607660970828987151574268138752409163624415360054510013596979881150487209983841468971995600331429919961832393807564101036290947045330436143941434472152214625030103517177987103297088374539051707932916238722882102722219304044285313476197456691276786327186270798509973501267088951037830395545016406014738238192977379102948115420372406111972652677602597013799564156855059337780073035914315516890528927066356367869579768127945937692883416024977138140693933287888569810128868166451423371731324517070893951542283313216602676965628038117356231523180005831154272447186806546103110009054944183843632194089099921357007806813850775724306683541617902668115171771263914764050903484443239699537004037834543919129870488123086006795161212885856091568643002265361472106420910103588495390903071317745829333100311554485662824202237110227053445544849304199893429821397717533917300372902253592289803810688366093155854351925254995893085483381559022222602030964730279927095630990724086344422377415846527190686324120400167514423397778464823658043775906733927827782421063142456794393895114381704019258541929091333667834021423507713129414170909825961603442254263811566716691261832856866409858544219929703578807485692468052315111547756929427118608434874404909302120042751530443520413264447834139556780041821546367314949446232155374688265860916091957010600191257835674180295480075572755472846592457766455905124806010685312180946039391380975146417696674527032775103366893980441794147397887676566880924941590869458973603277115327425728778283576293382332339398262803648905006362637320703396105356485648893928817547182939337571048815002041899089881288094675375788076134376937485966620583049120596552723845944045059370230550081320741332568407009638283852071288264816582669437586839942345589444444216605927331544084020624532891957015391575287156930710841304589013421873360342013724468734999912658456123154908159654564300437531824644285712994985542778283288640715759088035619109512782385742211645679521159361732005710217854728954183538593156844306324992925672917663558738300015175578549908170506958221215560429314186272428587962191608899550677007328744213351362667529536442008038866126939577351117043119758709669032676832241326082790041574236286713891342646016804604486520393656765799434558162742910864960714170428939280379760631433337546999810182550626092451003753161518681740341583729095198616355573331935699373741765990288612548511620723868358882840749442683614259578951566210096648687118440060431106176528812012072445177151509299234154788919847674744469132382378575383188183472119742453371969318871733185979835128173496625171824725542979352910872234994543518067865309593607336385326408808010695814499008027629136259277002929752867411311804570178690792664685505617687817522286195455336703481181213555412023113853899302098415815197187050745890210522617944802201362950168746486299602178483323034157909616834956619865914959143640176144624171224654748455940515967716872853238593723979011913467965749506744836823146003000505363059120720775580408672379304473956801270887755169874237390980404525061462055667445059282607378621836021945081876138770913952743765685693088195212354732515335361715976434488427529244357473266703189153187274230381268269946400636246340106989787528334425027792796922322767356190175356138064253466949871429214646798448642754291590655471503373112928348228059601412615006905575892108874011044036525686960798961008763225299248497393981380962799837908675391490411315810071309087025749536912170766796684139797807552510708321461838639280600217749219949163865041317553680128413575945079841647590680413143722189469834560355303225802179329503466359725330225227681466691887596488419533225188424398765095258337315472266008370498357914406932904697551681677782683732739170220027381215594011760903002144456712246963502875610764423836379111030005154379414004337238009446996280480721754891602089288429791208091646267101880206984197153038359790768869424268445668950215384361320121676994124771080075878198548737076297551103297459244516684189269592482326179839924706685328012462053499064767641853448195055250696926859190787740076149204469000571548188570553518524181083418308444531154932262242885843232888819392208929607289136082016369099699759013015811742434874883573989512353613109341140698654736686042129422981421011209578739140481633777494195620690101847097675713354464968782885961929876946235405709710065024410041273759176915844476635737712061338015086420773054833892273748107770531757917545255394530940592350671947134587787483810072409345785039980327638422831343369289210165404065754905735648581251155767860900845386125596927580501651143876652301399022874853581305563266778128189407562043970748940347799707042754242199744192005402251404487640102402619773355947159781985307293601937603519484567526989630255037681351022513458945922048829298507587015246748327721498261355948964994396182172042340965441264231422376676599347440473730603359307728488387463269668283405841972457216969049997148759436552524031076087561395569844831411157963873599408402539002794801055489936279166335796737512743496726839978369372344552272428633649299417258003015577775320409410633380128239423205553771353871481566333114185833132446936602657078578998336958680201823366537675322877290706145488732850480245239391184712955767492685229654844839754170104133182564629348602432794171281557073621306697532094853774764954605759520742262248370444432660335430066118049643273178981041513531665486401426609456341746683083646896563138928178419783893118497116188510085071413912681157129717691149750578639483587602299571828340550651382287039610029961606410648286142569414092633650136819003619020496853934800949255332298183742871129341860781023395240606908486234490786569980886429903410321336854447497771583197249894366731302176907810510874476597065921266641938484645503337457523521175842686741210168117311691637909403201363872842905391506885862150748289840700896754782956846990410688380766100380868064602963144554753275110119661125809356005148551201746424833912229495771491196224204453227440201961525696420865715660239578151845407459289531239294006590124602538127141623555211573588876864965297238818260093905741491082046643896791556020791672079522990862251575430421594457026213136374880834621492279213527165826557989973755423858697293727680482804785912234743613919156053792310052286680566570412549807743055576763738695697568379404515482568969347089866433626926310792725604181474357929301287321342829332130236865642489719770089483935937621849688957194609730336170123350961846353625491067997204483155077909443909661039792688916900875948921836451951147005512635109309210931741373623385394468380758981067899355869264743582066977791128176388643438157516743995009405073159403081946894687556588810506987130843939358293033931526510190558957261892279919543460765571458015922125622624660198054042736949344865917716904467972515774507563856377435688220133121163222779974060134087894788120157705919472629691034166481671050718337024094720085892978545083604085902850384273582828514500546967164347921687685611211122966355581817795048607448627246576355516932758824441819606113518902674985853627175591380591197379172968565597242340635048858115098464062088222308363048457890889613909234683961978485854987553958524598752509899533489250960415650781226653585724453468486869822945408318045077745003393941425391853015393352795665785049659585782130071695171940038743952513465103525238715585339420560555643522305158321998879854939735969387381933208828163072591219123256981954341651821818019418161378702194482353977121132792191154763099523610992433579060285260713004461097361459393216491295592277178945202801475665158256857321055054316377751131650572071966078019817982759226176361464688505176218057048918278159752076476172314280299530007139017336893989250251483635148102192005059390138688277915898281519012610885030513448665303812415530958670477143928716652650983007880746462187559470902380304722412253586504951067907401287956840486516959397574703423775253781970125619332273043658413123206028326987038175954519398721468745552999267941588316146377153320760727182901198076958569984065326187290305389994710717603311830889864180815309597725326151387874820864176122819967343636467290717787324958754277315886827931677870781654210302818327554113193504104636523571816600232072318752688384522530238231398428077601329520620624867072366462091316350382816340963435578842390144601775540826522438080276093431235769968633181763287938653076566181893497289294599871709841771503553870323091176243747668965264854483079618580131068682027138886439577691558418451352312804056242957540568492443031502167180023286417750897502759837033515677738036730446956546631077606705574333824541979569765567176453062202844816576138820875046787150053636857970184390021948596166066566436007555179046280999805471746090429709662134066841464797392113768462123875001496482311137208470405991509069133425283212092594546723858861301623308717056197956373330729157657570555679227802962438226491710157649543006672192922333387824991714616532586022189672256128366844440599630502850759994952607495608606512829082654399946896888534294492583851742658268718715520175190505222518956128592879600020830898274239294391519824415876520491894006442442807429855718357257051299991369160383448668778390011999492424623001208219111845024562842167333849633530691656643935958358973767805249706083464810038963922653523356547913153213971134135642669506987951133681058129596853227150110518265234377972759675681142058426529356856460956650620754211871727220284269316870935189073110692597678520582229642492209810851043513948814246182007678389941802404522171454360149594416776187336428948227703773277050503665586703633319238737386080570225303894321371088955411713769664683820187176234763265927002846865467617721974863088294547616805092115095587278283326008908977145045072883631529455067109295288142736763655019365304228623006926591099640061932745585524438942108676345412268051842310754024515171054075936645400987422066364685161190130852928886600328780456422706692684127729885052750762905185619544187960936837042679774598886408360642482543218688591058202210482398234005081519627650119237764623259067821055191447126917023702649440287929585077037379298994090222879506502337247236032950910395644031501212075441888561198380645071829069177628654278385595762757212993923609888046872642335800179680562769173946636066070101876282746147442534004077246725591210026018205204196977814593275096785273297509275721431390267579870792852254499757177265508570678843066126947844457981688995795182114042879429760200067456924522551134718431222097480704934278221990525017634257377500360875267013162707664066664690394611869633817036040159723190719961185763201917276374610328698763844116126401346683009153229080494749421372508802368825305942304127027108573614423825913875242385464425693484139353381817777886062891037766541533135882207488949884336719571253448945667902170421167890372699921079767947894139560037230793421022422628613867004824866632567360278231366097170417193334274644657657455902128043997195583186569541905382999451849859172521354126352747598901903372818556418304896328278886437209704841729747309889539312205377137417562164437418317748616466542150650399314280123767324119657974156292130666454456425540889846187806788703697214338700142446073210038433871633662961449441733715279660772488204994100367043236309867691778387338787081780444028501101860132191983957574627050463919111695593311679160812330908714353846291744332023440589993048251839495284740689283962042150573292551493105245049853668213382145724063056503904046408517046372280660999205907914043131249867875037722831963085676815518980738518056742715154436848086366279842961650948617212730387415758008523135021189721454499691586344709565855575411704302361617673816810759585776458497335912487562688031613746958547705205676686699674363131702498237012205916944266110171107670141069410893792477701616836679390502207727302448209060188768119561935453355473924602217732781095965162553819725696376424973264463052427062904065287615582751957158266976842549689114598854665384025751314471738974589525069488013481717111838140938457748945392945928106666019438640475374903128938360128236723860986525263110909045301861262819291526995163537485531135800520570863702438533103673137339900764863747668559012621375602744380342830379194310757005322517483729985597155453826468319105965401547970175907690170766824070987046199007457590410614891873398559604699260292913933849998820068544367183893441567032338214875739660730262294516077222193568638082832241970142006452316463748954378704056303800002522046480319275037861744163707327988345809586813269335719414923156470484694335694967242108785210495425304646348384038873290924397124000677857979844157441626143979187730210249903636124653832716759458488476414158014355470452620621083199687193215484825616477639502060706743509525906159711840947400268950466220748906316907577165350405411176190279664727287023614659349510805551551395604381842796143670337054963432081425117523866788554750132429762738640558003915327836141495134482504725339889613425067720782858459620642197671990297671037263815064979869874959985717531134428969672086828692276776907495536065520522596602854836444194256434224717990791669174235765975400325852491476093881182322637801434352579070650813086127725056314578861560941210282217712212920498816056014118544909204812866473371033361229277658743826473411375568365785983421063769073571697151097013602204028350631456662889604061888146882243930900527091926887448151244278955841047147664789264674592297508240214141593863571796875037251998146466919868636211983326284092488379944964564153625083038790900596500217190613322530058940100410847053644683315776704712766226704798077168702870807037169186775621032930456800170335230366336485892708166845915504455938480363000187547378172656692376424185542898603050190906458467814745683946035808020225737007457204270476495284109331601596895793075604070742304650541748768919141866089534446801241146119252236094616534026138726548304169007551796678825038520290125394620967769446598268001431511772438705127298632633913693668994071223112693689152078947599865939762012492917858937270026529610821858802063324850337875105738222437067504798538593592559551261933803952600006392543495739210474234918691658432989854817357091251055680371384749808324163070121792259512980498184543861759520172900271157076509317542691253980606661940084443984955960336919103085847369824330090309748966965865178646443463388250054728759172521515139130372690593145990569812773509219555317827118452004952408785350988857714389613348545540463530355147486763670344258401557667046727906180409896097853943266169585698646287973523626731221807599216241882336025421237252863572387084234006237138815963271300607969533067634983023903447462349281238090375500982802466374619516797270284407455606705227235029234867101698469738279386798675925233808593425724082961964780329259283972082913647833186603497546253080733522165931924271933106608784588089076847994257853232214964823570455976691470027976152499034570695815567763939756354420992697860747206547231791087528541540794891210401987855076754408118677503477001963950251788902394855348694422923368586896096734660677578115361799015364980600922909030508333403490642747410426297251750899409002380192879680712585283093651634469724019366934348340384760031296459948291491605751607778803982351721140509608149568988147384265562493719870073031002670222105796983814677602722486747820847518754069266927314062208608711068552109137052683059238176178126915840135349627460084110722140281136356410535136378825856045813115838096336153177961419777309376834354620091839237992425612885380653867525350556244188620285645570091527038303972494227901172569745875509499994194132307112998388609505396367654596971481991427525818394182694506001922896674966461845286307632883088545530541537101696047037516998059171295965896357072660772004013245977007770892831027289213765417012898098352406786464165601297336931870502020910612029670905354407284822345192895584262343585802789301807590507554768387737210707350630492720877094337119391702757487137665393201957678451695490503212417724486537892981398892471009881802288305564391386161301073077658184213036614173611836320255407444300383519056200703672247391771797610470260664556613554930623979536789143392922721499257471814551765821885506320509573439823614584679518200132051230979978054543104215765164848864712965497784850551278735254752623833046332647989669226266679442421487812928530208741222827628505183497322984700687703830047189050837116130501570760089266692972988825427865091172343280652152568961031719686535004618114271783412167281924542035189238346884156371850880972937896109543546532598370319056219545592930979422079727192625632810368922325662805373347929919562787436739333219679677945776273360492989423309751119327204464931073278004178234339641237829616137400550741542081598069334290830687007871686313319695925024473230341212988188597438831167485696687971467457509454908862961968238087232984744703479567778986010470148196274514746986875103754906043303929647816193597720675681749409413996192439660754641451866398556509327424504197360707839531680091638435450992161145043633508112990277162645296702163898407856683745601948663421361129486001365962843444969467417211649576133606251194580814741207604233809282953537231548048842821690796064328745555910937695616369987836606624825429934199073434869281628335871725066643645185019870636497661226700173438632950090252966354060071448033846266084487932697672969387935203996576632510525845402150247183647138801065384996418660690297652554862706698406548203094380019453876015642980516815264957427221138849023723192127200230400427546179584581414443931625945144152702013369535531538429746582782850197963843938825368385305708426854112858208752589965735569040382580599040741925739272953173546196987225897073376772718806832354085168570405992280576146054408676265590179084978564168080279499362198905701577150968318505054751524584618496295212252425671342001938338874746625377769406918122315015157102232513909728195859539078416803236384564197503956218643053225613638590046200537737412809118876932189206860177632459809916918357755457763600650598333957368367232385178001791441068751999305435604493495037100291508928422861439826041579214579555290825527556648329044866340029607915813732268595892021328470537778648991540804578150101214562875030188970676560214305395157561350172880249142122448852563184466382197877579974935324929434788477649363662106937250951132133118807193220410634599409504480828669580176165194508196850283951283279856481112135815470434240385356394038224817624790298162283678023783563528176482277977161372333223809673765478132751490912433618394921135786420432231876961061279508050040043688069220122235434383260728481555624199083805663388806192430428538258491221481761419997418045919594890369890534985685667715019769450047090048985517232193788698129188687260643029021225765645536860036802398084805650220912453505345232333349877489026219456185653668588202862461802758468604853936562595707398207202915573727597187108957133056267237510392558902871471077909842169202837244360416821845243044453442773563509591213934466462577535841965292445808184190773683823217697640942799987161378743231077466548992381201824525586351697395706863050330860657315618781777014850057403744327803910511675785798947104230278511835338556784096523125096708716523110253893713367620028290768010410640094273778649205625444548343249339963151512247016332999165809927695455564327967649177490699529636050072999953050125366554168105902785997364728773742097675172348311521591199174041222769218994952681370209737194268978225144975461005775724123612349169806033996234435776234290683532087839452960974287162129773007453415827021947441817576544356171746978647471461716666736431814312764041286844131798657957041649428556114647737726409001854241676474889893175539572045863888819671247760678549329683231931135296404903286181127475318399545491873750391979614121100323132792074754261172680658093443213964139431072951323431346266400454176186072586249672376782971885959086748478908516339002195609463218471976997034226962618471419107530392744933409434472646423082368033258013412164168583792129527775730143666878120758849407052934999055023537315871534764961198426953736898519809855046854990384141076807308770588266722716246895160655405928702944524820840498574392684398043466166254304128400047457117326963474329965275618501675243717491073449078720817986043186974997185791837978384224614294604144224218393512430523844556543174241801993850328363123803970657698884671802189173578383885692478367309752353351225749331318222361816831983827297788912901331760522845837404118017463556040267339521276029766276724649588352357013073343602698611276760443090229619367373294200541913148163079615259232862683810419322188426998615783870736162129706207464125878840467902027444834274604862757343442272981840117024793434320179338270699736982916720476594530450444169894425034269234608177450750470599956374223107519278272710724047022813973571419110361015698402177152742548171189890405187120768830251168333567213651260984051704366609913174930892487202759816240167389770259641504000611052373578755077204967387247091008377643895639162906133712667957534411486934757813930078172399407376002834771864751698205925550906937566004574166752966614403397216491939198932925232164552872124028230345347646945813184885247012833562709186706295542131517725408212233077229060368015840483963400437855343917401469767500595159505628653835140274787124089365019943180421489347323549657715205629424603508283454458133492604415276333604234567505900326834238528336676006404728748659334360437153159642623556484738585490882802113061871651211890336199048153811896476744427810154985918036346010978851665974366693780961892689278086887387457359470417648389606489117125466734625093130617551626543738639222656820600609213877393909519623493296825510678469888351378983805834531661146940809500292478371319511682263401209308162552360934746334858887571844919029064894290584070332030310687026494515617727566339966322983271141365041017652110593846003241907786269251310899297065223790769222763341283345369288886461397225974770145410214754935992776739101334108499084238831805185803378631715051174611199176014599021731910871802562506233550558089233436089566392731170747237362105653648869800698676254294366662621119463416590636386871090653314084001966532785503070241933795506389803749759696649179625159013994064789929214588004668604476267403188387104369183261427574395171648133791342189683128481965201922105670273956679665988402318515786557237053214220179221984705876785072997357547431095106957600139362268399494629610143652338873668201563931067036308800006891599106671496650335075395479604145249683822689950910339236478769204735182707701405035137131711564575049526042965153852810959082925639648621446590883241921640826581529650193882767821815032877320554024289564437188359920629433840754796379360681303057527770307835561379139508888147596759409750191399374934221701372987511720718111008460642993596615274835684606538532657129331560268198608537324193237283467064476254817384005229074800669533407382008696150469021419551654346328866467816386748811420312701334532691895946737473044225820164074342276496377192235453674164053519474614830086947898729459631737547476959527004395677334593700993194509870694269804028085986808298550274854706476842360853338453885114359056824155248128054806872147031230920027296138355079582849138076763481799874112916812399736537041370793607815158888821006330277349343907590224632770070265283691264946560665428549917856610205702327175508258874689874394002346934980411849457052844032636550115650658838855438980225250281236347741995882558968491005724492638240555597650932548924404472604957732906871827462870620324776653022894953635181392597651332413641091483980519032760482829036951230515648981077559904930313233693942788181302130679014726353840215877130361523508819390048444000418077620689929576539908515079506804434133338827028650333829293868716387609665635031730421759022110891948927161061037577283536078830642086592746184803181196798926129123412039407100588233872231319372635073992366285379458006588092881445976630445573474653782823393390923977998718410615646732784891105933300825531471266378091621935857531704777769016852197495367387215723289531976707996159818481326609175008894287163534320130940327603575300401568096365602535775624535059235221722472049529840310396821289940090852899047256043861779890420062596950974218220272264949150410481368341466635881209507025456095262801017770890333253469095838337494912329850471274438261433242020717444456077997024641017261791968695332775256135858857959894281381662272905135461595497723222326668817419852163894642793061911481056439736545988630941063942128254554392240215330969327500660425496084264483680861223182926881192979426445891883585188932304425332806245450152781385039971558940675549568733572461097429705208585549752518959458925713344423733456581003715918103164016262491852561640617999701195300216184394856631785603366738524694821221478164102731951475116551270007801216353130185272666397648457141872478655381394806614315382753682956596787438642942803429297431568204116060160147024486750766651049468404130911975466688024890310634033352359699643150149001467294921923711063394407110381119767978588924499979421588114806897661323630462637197576771912323878546312694032242507211624434913033328509002245168375731186986957553663179453049267436878963569907688431644889661484777625240896697617756190078733967033022035488044992188450599216635478092177613149185709952208961293086608445050251941284647060147985591731491516694786448390325877010245960895509987408666259994467800849860016314104146835630382380264231678155773348519632490806895321038767178071741201533891135608160670735476286207822814757367500813270428672020503039362060162997209068027637646507535782194771876638819619973933915805538086635063360502118830976227109422888909767462654160820128978017123513857061922788346735014083646638281979109175652755654477915996302492949820904826564602053064621917285209766526938096162914499899456293290969203189121863745122980988257352081347584873587240942788007002110214412263140882649458299739895964904673743506991528887505711110637783565606278949085131624200406532643989990350659367270064972373757324165375373553303622102140542957855286659107186840755871539829507992956267250032710797856677920145975645868743654774929929557626237991970055675981997993395765298708877601354214152953237162331153085308606168150042978213189569441879741425827148897026794397178074821121258920172089192755158744269053431807010362051112100335632586540589012310666124896353137700296915819393475590066361781612547839168501024562766525231536814464103017620381547194552726260386945517304083021184793237013293349088665762911396766834668690742522808222167514030985344465229798858700504167683208902846154965877399193469092240053983497067918037502249726077370896773590466859482836944954940139753638674999551352351703290965291904476014316532040667325456763721145538129381849890797150259622466021565423870757012692044416918557414362490582987546869985440084048896681075910483406184344157928441202151509025973537702991215581008314579617210860185966261966875974749350034867708465758568751504110841434383869890825541480367521010226921875969324425989308937879546406731439127987932398832962637939734561222444093552195161145575720952120573022319417757681490578558436675115553144213413099828083523730294868279446406207505426356286595168585483504557847476313685850711299440970271677107354543397597126210746843606002298584029518481945331570123875516143263892249940763032574956562946533752096265454934178811670193847202122281851342120696853043215452996681035356208080467362360750046101865217770457541878071679329897767296874865589697914119918239810821275870580309585475378830212690020625654964430433385065021736060957601466055793465503684159039540060732844207128581566330577550296672549771789555647469670993215456428482614359793883115936946292473580996457195695179492581558276536694537473358384955819868806825358267463737772708539148681691068210599694289427565030408203127118815287603685511118279418295912855248642469054418303334051801387217908030787012856345921177648417687116261388214510309034787577030329450240733525900513899874306843797655598219227886807307550712070618773922394631683092247339753681850456193063507408775133359583097768613221674246669724246538765317634187499116799731761259639797163134882514103837288507721777418256431711294624785479019472807536008938764004020106231930702943565279639181506440757456814157915993537531442323390302987917146652438611147033804225717967084395798065370293202906548057730646824680802810971380708437211308646138609482619615057820437017293552482121756566596137386849706032136467688996484521788467568973069496810088863990588211237410761662795751512782509934841403818634761660708226961342010974867940458885491974859344037598614313860407456173807597029196107846292614367852429132818745775676613282699565466323897575249244783459115878770912204546595894779045276382756391240969710104559374871091172408880279781856468853267497615376148200478878974878364299152535873121845645428921224399109054015375856755205651212021227105011880351777553984775004020218885458063153071192574385777377241680927678787719023390785706066265777725276080574680385835885295624005118695703675099307518538555478101235541191377202060459130580634024303615649626432994529873764281315767762042858844943046803105741044434746393425739841959354496825660537064036467146765179125739014709635383304194861248848405719707410439994168166172641235707945045698694513866539217265581690861509192116311622809981741284351966804404848430607273066927126142544018485993674243322705264132040755248688151759477413980897147033812578390139761749642602595319132316197018641900711268611194298891849519284235693591078436289006450158690929375506922494931510242806754274616359783162834894105524566509141834467405561034028010795697757506546915372286546001395301957337579706685836728230544826395935862109569304435155891022607872060374181048755114050210380860585785302633994907978148426052566786632779517100127854143248752077666015577594130097504926898316547607352121724406242135334334255931263587946845420493608672678295929252490173021651774637842230415519611109492363652677190516376889934051296154972541235209047143968965425475930139708373404123262986464797960173496292720747767223237682990894368274070780601059126426681262411810496409028964784252530606970653000773240503985442083295335301463359758346745227982952558488806993023363284605490873270132645146563201571426322428282093570929955979030344301789503300266225470574813366990114641163108200687616130373473364433735883362663218431919482931621701666849055341585149951484057934763268760100663880689637511846625087331520295131058785385066915613243115655713347540593606997298360604624748016451445039512633354326037244958226416353504375795695140719066072809132497317685976776782491125316305468384746097504870420044768344110786793291914523268073170484650241690869564253002303074273302482054783652092636893931717557872904447662645555171953247298752712956614568067711096771291005085840526650274875661862930693989497263536530644825026669068117518373532447379332211923788748784310769165126626527219236155003701658025825098715661506150334250013703319364362739673025776361584459570035477870666225486703726369858667706582354280064324843075616507919198536015229401262727055923582305345401027314087634230594243199332800692689309270677832760837319613103152847440089510799940531107963264447752739043566244030114292612278230117439894670480870344157297246425452358762501731396684894623281960273179290624201704128257041735193844395610643759925533029968292620518796577717530436582631406932330750083662021081646029181400470466223334015262975789759775839777396288498982209657546057797691757267297200845791280160189435801545832724484833971587190359628482763484778010194894018455464524468575651721306049765720046886024623708072613432104663463032430173088301043166805496394701391710323358927873002531817238618494821244362200565464249404395105580119599993164689553911527882432500767046120921027851820305160734991991359404414585776898517203764401580170792611098464732039173791096041606147894154936122839977848293930841610234292562301704194940545117315512709009194725744056550548558238768572343554326992430700494772394181666102313435484323357428030446065042569679168368691883047364949129580813549639222730640526898743267771611686424981354048886833780753983699880500867996554980990348901610767817881205897563418062421448590252390155905935907532403030600731492438867105809529989168244585376107015182030447869690872529902923196250841452701896879408224585142452207033708434329879561092552523282359404989408972495150416726627658278593659520329807767011095649518020363067482196512944443528082678371248192972985481444256447245624529066574724528874011166068663193105615211950817024428089954701014466105861916494120438840396144188037595281685751119745261601843158942320887075999218012637730148588626141712342802940965261250285711575637413124762072501723625571730455170169219023897940190919876163209086607282384017745348963872017282336668399717913786470819575408236060399277051185706133513196111815494673052954907204981724341297546739629499344640887186735700170787517948170443381518256934634273652709201672258169577582898179358568344095687014512395549461780993657108275625945365892553817641517180616005529500459739187858931143361074867698632917179158977002145035683400780630145398998968301751560295600536748802028731784436355230741042942675506067849720193057887755320350835459817041277024154935217795349449881561286461288167199748360080242397610354477024772939439841911426720831603050354477395426999164473481671813431184165031881500529351891681816362207104203478647214155095171119131248333516976855361537009073663628445721024391357349411820677611391622520314306336090347485029288314878194869245035050412643482837970819024581154730341465424073263696624220122602081358212616880646152684191585911137772198093310387854708149476867406184705328983800161963729718299933820081619479189160483644928034221544420206060137830812449639294069383746133374526253248307875500842394949326077986655306330286377687328128930586027128578178085146563997600053310520185606727741054626746238661722370031815326702396610121863638146526491128287593537690143743261886958352848066099247648254653522937932307751564723806144719602998533299116653139067775870895688845270635324633252580588041495322753227999556700375389857426264613719242957776311230962195877350312390967573536632129291323470124522326319480557253524718958992121214338717589386299501137247585275261429797659753785762633843988621593360687522755417526392997969754960937312124083771339264054856768224085400290579295002120542289503193358032487845559122620607853366469068526106426827967460163588309478743658621811195059611410423717033743096328591500675675633463613068511399266787328424821052219454976892299046930056987400158564710899033040899185324530610903846360442179972901441756175686705493972488573533104938868300438479262406970579153393901096298739640193423602093817300044563042513365993071582270167265260851724361186475272138074288036856771514948059076732594623351841192351923422554053343077256576449548481527846582244656372490760952964719057508673910440674393034464782608969264949594650084533383964883733592670575288046642788140069178731074931579830006987874046517986058644721227835386900383938103777033677984978771775698005488098601507749300583331766328891994865998711667681699325822497824964727136646628924927536638517623074416532059200094877766939557546551906937149214069674457821245919438175933408611325406847737063808377421838477580300578737185380138623003533363072252435753922395194472980827133277740946868239127543044060588400387741779431744201824395716551093628050563393816660769679880848491944538480739585962177621559425534915705295341120114205388865174164860770175891547471266877507954863426964044938224410131439986459347509142863323848326925160256417440964039071041365516166872024987065219592183006031183118667945553865587167195464989872874223373593565139676411193137407847038644052224053148716762169139433101029672691820918093148147821942094452889920581839960046612747965790675859045395351440276002559513108791355933057347169117591710402881291983941164672647573050805950003645115716134441619931663794740175600406558505413018833297798545902282148319331824662871342612621741719869536258023183846025479257345651539235038449415856006604499899049169811053860672368683378278676254976915600899827257571439594854118081606955298493624799366899273028402827948285664314288586083929569882066985307689247224660547406464330981562731328952126256138927762066505439447910287672715638937205876397252118529175143365704928297552858773345089568208804720729452172821399074621945276375625916744297062652093948906392649524300480820940989300691471499485991116948707972581235364828357211341799608961713501177430509258488066343218311188720130825662700123770051607471576218770290666266006161863495887975692302093814997293847901422795550590119466114640059301997844710986371762433531751063836632243540450297549808103696983241495974398300573160914305853719222348392195921259166249555746087022410082915911585326547868543995265582074410735602005009230926070391491628940381988427088935309879313987019232469178490641843335436085620759698606766509575125009537999101763617625619952342233675247123569799434920376070405796731769017685861305625749806656486388170201612730942990153482705089769191131448905526919577023090727003074294662108418988110075906493405229623443379309570988996367087105110765415543218154661897141546519370190593121657835210225514481515217805687040770765926249893874176854620614725524591400420803248985526154006136864737706154834843654284124633441654678825075179070941836973425111090751008256360103823471000735029773820379995791561892273438462659859512207330981865413533506548183814002358777540399568001736929648917939294676491501718548560047698609596388219766591090065192652950031437560967618933190627256967630978326830584353891474432200598389959871934288045552398654809500004048360054685340283439967786111121192472744296044192927936658981947890325709828971142986662509409936539860378255235930458838557168858628338427443206408936645339590835950730300625824855902001046100818637986221081270048904868552993518648105424493989073639998332555970522253282047821563562955351255703243412504614819387107265664780317319024672521341292876373010042561783807600547607109463006015270020598261271820477233035216790477954692641214447455293973947874974096452298466410581736206410603724976689032346474584409868349851945993948809109877244682218655819327270821352312481232109070962702446596746936647017671961979382130921175645824968915312109115468634164855153225739795975281197102806736189441939284928595976900868300241953137311508040648727548800724406832949604270667453765959454865733721093299825793827552061019955392881186030288715558275901196923543455813205718225833808349355507866254879077733186997076668079419808654218348753462862754242145411975588405402690098598268465869185288840785368906555366097557774200887252346249294179555618862665465448071200868491604233422759124592411209101588303905962427862062638363698735087455677418926485743343677809212313185882565490101794431912414537414737653148935963263249107666305277535218510163885755751773227370020575747913594065917310016151296428181960036969408900840965817257085161981223235382848949580760869183364703421550440771673538973563780864929976434227613964459577542168820320887528961787553457834599869809495011860731038444314640847401622617159465252006125513498472160111864936500057515786914581940766904177134954366229552464250083915789151301328934941131728412620628512647601876114993513457533851436599424990060547357098647981976568664219784119459068149308182707349123476016635044539186559249670067386594260857232474035970227200391818621732251092364439535073370182718395343195974254542690291343127010834119081623307195009837288267268354586835122947276001391576243226888530286365644253716039559592029686847778811791739376120218802459993218972859986880661092525715891607721042061139531575055959741723569544068190443906015985230041285994525111296175153253844715679780472449476105900865379504589109929861363438709135284146705626138923312939576990510058815112425649997206971877181936266570398728020007492964279732079326950717734643799147806607211429982993479152316961691228291442174411661173303797815808970775148884998470302115345503540139899944246503620808089299557920204407556775204338581755416470749588774869362406010988987991428520715263247645071446283948661191018460292759288989326206085040878566243315814410442524227456759727906866995031330172698220799775602566226195754721686488429745909180586170499738123302863163933686789129718380580886213707001303612174331736015356911845640335592639440427356704061737147525469797649050588299612440065737712627193631726429497180117963527829638956650231091215123103437127636525955294482169212482991692894031721162165160169592214255235615324716205423648084297682003354091184492172112463871301165024012944883536226784806853284819710691129516462958511927328810673142602987706957152201539619074519014045981692966170039171058256045776324843845404271068681129161791572826852329755490248282449508764949612566446545428896477369614665109088906674185157090175611336369727461954689361868732062833104778302290851402634954618051466081619302359023059252129573540290285068165006461219715595574526395623962962270096710156995348047268124608358757378672474971484227497159067986781804638372627401288643008787789315418260362753981660803101789204233626558476947810404748528302922930182199947253898972747951701963680216616200850557720941357355146564347654966425884788862053831207548456902291452736299344681955683801885691155399301597181376722982334273141260651167274553581401637103901355743984593843697877113305515408663179390558879815026652810075509506678824298435442950857220905016036452213007127707768493266490887811306975947849368182456862516799320954795696863596479961848190612484944813020404577708917198106496452115412761739219661056393464785409185917271171353964746335232342275715801862879649539231938549193103294054821872271329430629534014501649083594790350492639800521977810298019759676290899016151244221621095344319397593835581466691692973236348063226614121944877369881841941806735221934744957606171579831353898014499359109726071304274331278678801100545805068474762776745210090135540347839879109748027349882037644678677666166743935668759018341557064073284554269918645944699954956279490004564244774051755297742520876804542255384597379955799331142753112511774595316344196506063654959011263962088891816956207230979038758803019765460150221625934895964424268900031172088013747150346126851597826443397620768497110764280275162858706323505016609890640387903451867085817247025443934066774246340337613587560185395122012885415499844950967938844755791836225935841524965862076377071522096404472576371153223595629969018874850183532614001792217449629458999557724593357963181712750729601351020895839151397046740094728335239296741172942015294693887421494463825144207936536093049533665816204106712609506421025677662450628484552505957903203701791885087748734592458233199464862373344924693009370921224957543037714871685561368331813568032233449933759527325399634358169979204555763207191326568007793116828768295993521522147768137592803947784864766922194908552929326139470831261939142862657491232730362549745257653806253663204838107892186004349052147993722699633446234371257178876505809435437122195258600474375310898876846580496981926917008489548647401713245951814509521505197358661487981014363377925841082313862744866200191161311069802299464810405621541094565557311592384205250183655077798439704570081938745096460125957351138008191553045114533739204846926493415385736332229948683410528145536856683737448711664490829233576565982922944380977479314473662883913621085866928946466748940132634176936826888652181558859200714321805785515820672492613623143196746714903480182037478976968139946979531227612213236000824891709674475460603939428584622189784918010504670404177506946832934644783449265412288123976657005784423158242879846618092059557730826069453044670664656493889109253981087096866229577276962299879961539802435076457388081590912395138460268646896467380895626461586077573893099923015213117426664497855926581927118467926978560944371830526011092217886789109513165752900728506325287081829232832313702989023351227565442165454209334099225047311188739394274976082551600470335260024755668574838725384702179700949146664225507253751247694142821207539107585218565784432046681557805410986516983209511181541433216374347895280243927748864473975794214408023361830679800553842215804131245788355851252892180568560910286788739302873136691309153886476239038768837969205418937662449502475419220664304290924019688684495941013817462343679154365536749837857163314158658986544591887590486153673302341196109321833740543486198816036506160694739946160413231515561553633515492530345297232000825891582081209389287970774646375808470640674875792492816687537052623005166306199988702537091291840740855401081406367599496307614497083509440839776021541062560103211167756625778384259856743029859920276162166401958825983021892023712358218701274416761450220419020424912258736744300681843373763953324991387400518791318397522222063556153514115987421699590731205094902033347623723879449444884049511895075334025922243503380634743007842264066489766223425098316825912942161336085276462528878397021067834571688359738788135542645644733773603485714504760582055387933684886265702398776432591003996862872316641735811347619994734564258236241969711651696907249776189442541030964082504741713228321134756077634233430689243661847366410723862944284809463489251374591380884512390448486112817870797768851500105378194702777778141742188811234725317525314269330259403801757561300237566028644107682174771461023486883456331825890848926112915669081617525694929768158540849079108085748437310340240764947170664049126375872086548592297836955332850705652777680568123620636367504580672647414075084354561539420631120837653765319927167013121803841620464353509660355670684306086326766820629365089886568008655407752405801492443658950484766835320041284552590342086383496203613257272810075671390806042820989309848692480120581631419454134745987271010034119660331632000248272217169025487730046154564244747359181257927187739263962987745133201169939318301491292107215784004714740494105831945252689556031655233109513570209350533238877922087756854748782014519305944806656874309121184146761415449841579801295024104514114638237158559491925050093767419632437039487436239050668489409415754132254375875221645595968795537689573855021591043432342775478812963887085457178611379523121428512255789718783425345411652467809385951892543923547909836538123936914282512739508473290138719134113875626899639074845283018629929074072520049423557828904361780909078791970501978356534522852395538180112248674259549209339475971550826644957331798477941826652484994114553024615760283438350668718048861628314895760654261601436352656903503149365829285780632852166240626212750300424894646199670551532084221575308063662075393323255832000836161322144522119399718602417586618069585132743673172570668281859846634884973945561568030367264335825844125711495538702224480445727779671241175034545964015690804468014763048923814517445445636269721706530450629045543187444204278752454404157061061937796709380347552317546821602914504812986949659864558894886465573541653304282953891771215340373754161790504843921921925475382447970817150978898610312247201493127527170789149254930668196280921463365159367281087878649983955816626778671826175032464332897673603501777535392508375880926599448380213689182666959152223502577801064141771623478575103063116120082196275992445036925673585165635967319914224986614526329296820454145311019589450358037104098008109709117411680426742332078095434078652533230901167736920629644926483507475192914967079876622053122592581896624708532443194010563748365431016297561641033714748502145698624555434262505176022734207743121266580751538336616927289543903443368271387570163056368530035003955687302613331709866430392506362578292448127019489514921835921659495407623677752848028981736055039375950229534780070430594980561566778592045940034260712969688077472061973147173969162806265140414421629521701945389618418167008535819137051322942049205489142895828120543172947197466637456212632699321608459755182524897933697679735977121320919858346264625983317147416995086597084402962263184375468700493133755006056551295274084551397998993399101133210520530918118138569012819187580293610575760317908939899099223192375835102987695435297843033688617573420366934714495025644590117130188600471181268148822059489880415044222368712508198125053415821996436202847856548419239041474164341549973604040328535690758635085096905026275147492402058948586507764378240815861999552397765737717392922053359070077535839899160425145555035101385523645377498285502808550206498231193119269899384187376734984910671078879685558739811737315088861579729624566595657746355657660490852316220635748435434830105121843179118400971007777327525284879639771305595680396895846408634223034528413435952252839881701564831739815132962487970633545366308493687220776748945425999519937247798107151207432882636067062044356411249596356756673443332263946987775209533555111096567117677943264374339573821043169935117288929588583237032136391944156090777123289165090888664456679188468478278293819940015623497761803394076315508862406849319959464032053923130200041685827412034830920182201546613811054342564033833789453988136951159118787075175301641212349060460389859251544867262202972254242541911515549486527644518952363349681075914611602385370754206227833954454578108919166620361184164609750374720779220542664901153870485979241142488958958691156140085173523652951030720365519741793845491050070941884303577256006775553987015247548841671954638105296459655764454043712940427264259754587129370311977715909706176578375705534735153391602232351466516937336813408141292472923655650922413770234264398471059944190359722652271606699965755832748251703847516654941617098633142960198252549359431864008214784002942274005519168666123391165153935715377747658996849584640865869525934008201141490090086788931249303403016793379028285102069372280700274599829633430785500197905261172900094298651322952601858758179948330822875029079926907937245991235767096026507404642768983277414401870208411641279904012987334744748734669326111700310436505549217782474607555528269358585202968256563320895881946225613927570155277854513110296780341802798288705863582625709374857924716100918894234302579212344695799941129612882601154820409152166268991996328513008562533402620074839821423434489185751709237643332484135104240948180665460022835371231059317692035486713188908771840940177990844393757277732843489301649113820384185211447475484617432969349002359217826174561736282479621648354700616921574125715402079864161970142906413319402163608023027255923202204670608002211452470370189461598670153671993185387479128039124151064543234825067486057043427255040813859069153924520764688290455766831046282340907136911027043863621730563800415398686111553320110123910784085935119262337387982191617700336922673088058640063700198314518903756279204768877114380997605877751744025134280288657701073994012123144199468556860465479907304220615788551735635557180601643318856712359019218057327543264027145190663350806633748481840237602653725009024213516861393307053545054548709216941525413689541063588630959410758221669037979585501695826364050917606780936465299788527448241903620656796512607063107783433899680572123539152692784758972659211520430522984052616014981706053622703763679687618297507713083220616330721919568204794658347790117291057714437527553727628040567927422531531104889483341578097993019588453763242331294733953574650297403449739923819468443982489004143384198127697207320935934951314607765166704026200980615388593151140825512643805144055231260975589622639694020149598851559470309666856285351724705186382651158997108893058499667812082389029767526059692199238190553421294525908600634835492473441604937057061138182608270452556663067046661668912533901472761947251734833131239508650163585227089578715870334480394330785657313239301798184830330370162553900579901741706190207031663190368371065568332039652441981600353991259133584981978860933499102571344789921326659517599519863880211726582727780175489814895498848089380489592568759648403353630464133730696272705544396000390824259769956059826741383801087109987389167745692744013260606466697130803769060577383810807367557117908682053193005877658808072895363721916478494810222370968505831646936434887736289103700122815797247350705350734442636324984847037867253229186619935457788012691550528413512661467777535056361223457481699008786150712282062302566706993543676429034006059996074053062777300877775285543286973151760096644437288578013409938597161311922083196593684935340146377365025333099865264450414147797017870345076412829993043037960379469535599775598274800383886294249762063942582566315500273107686422316388853286698235457198331213661384939828851867149734320881598446933576112541224776877247819391094004405381427809404977599205014956895784536850672729586853411684696654434905236603457504339916059846593228622484242647376939331667168064457644135624413795440688369488112788481923802327023200853401683656004482267003662741708662157270253328590002999660409786070123689752225126633377258821963143982920125417929537105887189832775927932893225703346545282152354223308034276475159565522618305117612987131032238948367538193986501328812088332751941275584442606465178278654397959612877779665746325990781094160072070588450454887037250265901627679374663425578127270577659848345063104690345872198509178617134226244788072233532803773165108270752472924833958823793799908079051893010554581391461736955760209556874696511351988874312911490276617767038519065553384146904786435051753228176005468812704843335702245090080634639885887170428450705249495917204664983736624819022483155721312779530018449677288192174369662435978800875190176773242030119891628449451948753815995058685093882489701334806562722475382355707746595103576978445654416069076909556830816630849380992952421928635662400449767805334274696806822216506751170907006411600703724915179355409198803510490059262961545491905838727700086418659694854064736440684343765917114673566999079240936578076304432115161718250161821915967963952702855634032240645382479484585336272261000027248183588538611809079522377279103626015479868210846488874416326556283188363384027712249854475754072188831287411753025221575627663579526857882054147237158495013226000270248882447881841908126715503147287107062264518701764699817960744122024440036788390912324233675936035699152542430549739546183968064155272921190146490712866764273112622048126695002723406349072656775278965501655642660416139602405125194647955753817075871648084876187949417781602633356690166815411091870028954242620692592271344722493865077510527265042221652258712419683615422765952599048065557910339743785332913639623942986480695911954948011873089373768946128325823974366947788502614534073702473901745546201379662719128632370604596807578831799252163090275976875583161186223159494774291604057294612582078215954675079023157604775101862864814841671333243589976207874356190098822716123200098855096936293945610659600614630851477643825112170712844927780025131208200613949609910331423775884104265685005294928926595663391391484036627901055226896794813355495782532014784060097125692212702497464298596089143162766275683875018196971109409514719004234749806192871604892715655604723273425491731620491077441593570120505760929640121999195521998643142046725552261171359056178164280305375341247371329667861892891588070714244619913914328325887999485507752044847905367114725128652481077571022486964367651603071340621351238679139377784655464702585287959571316640290764309038785505867328514936538638698870587825714431829197127172934327298862538019314719980838589876926427813801137940065733240777116384876791080493718437472396811823985507405670601427450054964596352837232217764723940003044848913230876739606683868695499978698450742129017652420252448257860096414266877034891254613357570856072207926619657187308034364447713263142517223131098424554990180126534257041556495564940715304572180981726603631103094890088127498820146984427992057050269914718591599326884288720496058784436539745859513445016561963204805482337866200666659017194159162919920793037616117820433160987576075083358578611033272799413229127486893873191274345675867374591042405464960966296671262766770752355841122585915736116453554281428196486413368007828450695464104082556082690722516304353084272986146733667409372033574974018215108195006724722635790230259348783203243579538856396066297167168656777921206888624166776222759614552079383898034650947202337633043186418817956068477690696673501522141654789254709541399500634638168527501592896507978630132865183668328568172844585480216902330447780762076236781387826391216989799363874819621140712512224443103382282481814617021527336093227627343009335010599447927591042017012578465432529411764516901595256696373016699602988853751131133550938248725419586383131784870846923437518156935583534496560263661023717614489870688058306622079352670645582935244101937241391886100557594595376515228518332256997816096825284879798143950946126671969659944410501170524123885143934321762446797017992006166824082955457673939505271088791892213451191672529464879337300832427616230417522606006447495729460439910218818669400375248481586489382848670756348407549675083761870526289129228732783905549048668538935994278329063915153842375746296504078554418780362440107808574356089666020687736222631217072904079343174321700144807995904073401674602221074288044222756285140184108506752343529931095647692886003635810135266388870502871201767591521493585113582044071664550270024589184155341042180184366066986651638169073172034507600814534105261494252959984981474766266057877794646174222656385012335660103012185974274135584091558769295849367592205739071306233296842997194547581280508174422291230780270544627961311564708459845180787413261658631921046707967118437474726237205044873279699512810964318538975648224520400892556487540915552711146844498896820938922115849365651129875689951975951335213798486489810158429591591184356850411377191782541967321693459332374264031650380181598611944610285727722662257455156436777065030910240089792907318114477628903553867150183004025645278901875001159558635029053043058956612143683618056143722014260031631063348108459816363945275806340788303426855436265851662592041598218528873898163558434406550094738476598582975106663796356530391873281283068592025262764860257509314637096511653083261128147263800601432875823618917699984073668443664085244825711829392613723338352371933667917253650060765964992342862385457042374380157053445769795238481487967635405373174094172181470933902369465384835262827755942991799108380250423440964557712114972134735422646708790580279688362246390507764668854182043183624745951257561900889901356848360309754107795309629890301590828962698311568101592292348325313703265500005032372786056965884884782899597911384280303734086545144240589154611305843095911255882761625175923659537030672111347771432735137029503029127940152482311927610476594452095445781379169630389868180972397307864111161860743555055179043881765636799043950015842884708617591043131760549191791300364869563177397165723408525647078680144978304386799674715079242863086232866785889910812610690769655674647706039987189338763371908147557860555148262192459849771924889594122978274149513778366815966020231464372520744057756731581848694357149537425235313186789896462062247324384287488644700910781615411540941664364079141763532080352564986201547679837190248657188954038844474724877019247993222647214716350787973470946301759769096271446490046430114757328190153661131651277735529085452161301220932243403548871140554916458256825737585069022933661077397426162912159670794660896780053196564652290740487424431651830003425582350710076615312958072567482634391812868565675785436795988819868851298240380173387898804529285717883396446987469313337572161558501751793674741795006350833119928357632338099779918662505294021289013255566992979520956573066878819539578729164695066721628483587271904850031986611888176909145971181412310483160841993091877293672954801150124785596667599582115370968595790491524965559307538341240733382998029546553606150232364510379662222079272709433547000001202602246399442679439090348135997318634817222348021526923997800072677954731301476664099768014840893427073061834485033970723512049833272903208238563166664257792034217495271796791553642283352362117893287800016890202263311360303105496565700725299112848101395205478744518955648673137777260989518700895335916023127550495296237407856392851354100500831191303823687077674656340255101116126065603667480366193112747450715689256743250102679714967455402602789335450570229290358485506670860917525780501013674020498370261136722295090211301287746347826043344462153038915892529693084098075715162878469466207743231108054090536746658697641238966909897124684046561688287735338086067209230229214165710726174136313949272674591861929422229828401058337834018874957069888223003641426867248418709994887129339242905066449956314955781329707404746967547290727626829098385323837748667019955178436025186909007806998081583458139881916894104969830788665961703384549245283448266976486638794393155037786250446643714536723609026019681982941273412305063456398432931552639330506116746321329158960900439541939465798689049969224264883810341435064856988739695634016236598702610907241182054639684973454671707735937878913202886662311837180840333913200451213445499363251179299508542987760268356894353083129717073088499557892550446817461552486856287059210941433897986654552388800215268590962976932405539552626783153783658477631139703541149016588985086033776122652402430632864881896098157060126255373878595956410042358454421466539059413569470797726652814908965053272072899241365043503395926665018356268784072021014140697475116340395661159607630308148811528158218289439755132075419053285291730689715298066649894469958027151678305875237698268536440714997690567830778774187285873965007359004176879032832567514411518055136349075173321161621395387889760212446870001863583594135366931753448749044018852415009725031290435039224130091039457331147143585810513772561351271062931008380190637317565961447041914314097186605070488165503812026046413683610838269529133482296659862960084152945560968433042537594851087791559737828516400658046523690179325066962514045894220097334047082272197615911162774131362911811584753915814814899134577782846726258602369765877607366287995638904401176728147302003083937543656106713695603546108815504111580741111448493820140038248354577182846981985945003006183887852976475572471736928951335531651923585318208085531092838927588786924969819829426817169501141182715234425990624144195889323644568941605865248112083528877342844915554244425490791389550343881854331096946373284995008074677289097018908589719010594990086167783561421147757084249691023133772161823809949999328720181095216034111757003591686934972025809841008379702088818937346337043758363107268864110609207866318472729457351135394367081999900868437776648959250604702369592854316711145312634389343248127229603657294631588008104752512768922324417534329076925470853618014084974876788621102503723789879807060833385437045257339038681701022449501295529971901203151411599714889040187042240362178337861698939555857867592166353893197351067775358182511264760396586697361960867416998686597810248817471068544637285045568659323262448019362817545286868424834822802044819151204697597540592878816933673250976048299857061520600885056760742972914247109233188414231876908174473250923018217755167322708616072065760868684276311987839184412902797659085994085132035491933324825649618918312327877795999530541824870387173674356825898087167238999538768682850436768933671215649181429119574623009314016869537834634212737157547134431505591585262272050023168525853225517403086997253871025584819088475305213039244384992813304738507729049265794681830991759724371531401959215092568156574951720946700916658693288314906085001200986290674607223123196391534686978451987444932512452282107462709317541055923630741989829661043809001089547079480943771638491316676461489868454863853187572618539221614763415418196947475158443942252280658219493135711757446211383109862385499292873692078317399210808338088376917759237099029205421383738701370671171437920315215193223847327263825205825360363100845589814331045082522412972034672005953199019595084650160608114083436589809912183088992004239635916317834890736841570169279405115015660751467285632174293341294406928509972021477726869551905979665427706270974529350805279300651018864071136408160683283475512139987672144928068305016855352775382623517372498528607654567978023893838971574053160550074455790973072563675838382507863267206388078977390673662285070961975274728815684610959467085055544175816227920839965375315093821545678829037726685286068877079713281823155197239560314762770821560825190413572052410544254103409115249281043246657280666744484550860008249589948539438837485379301723929772293013631768388253853955614572037604114370395155796027168815629102565272829124335303335432444382499587361043575122075835840618085732884139972304248732218363402325516689486174315063302866746584780209213383722029919074230881282667689907635315149485748392928941780688572011894024208389831875563337006815540985854285277637354943340479429524204793278982658671438378571949455524641794790966801653654758791907660801013226553929158961935529751888131466663439840033645089601512234730281748757172220579659250808611524790074914816505008306676502565302208817393701827315075036982941769994126887320225336810586775514662532214429844014961982675024937888929701482261964458544622606840020275800227027759803649375304740058136482416711340176694300555795450769249490174089961131954012256101820929882194713089323085708877608753861244499503530282241509857910029506553050501741792354917320531677816459279818797947073014192117751114124190483684874458183771517154967876268212162949641588053853173311201671702499957864761176091067518512236432989413829540458893386878029228957167743060930376685160751330776894811034185246762337648838069411935153223726174516927397802290513490260559085423512559585605850638275148610182263711727898397006067431990084551733881218119907631137162904891133834948398307473741746676430258824062255937605625950583341427117764533884267660926277920979176374960685246702395421036874079595246128347091295698788360981237948873348408465975827442816773875241262013849619162207318040054556147214698289738094241407280185903624899519454263560127487229679967039884804125297546966263295573918990914588121716670881924626870323154898417866109419003037740195340743644431518910332987088565588572792202431274014829881891641946862392706113578239981555207427515255081598537526853034340053731454984836572779679362587670022035971661289512417455982259626315534869330450375217014523012746284479335608018247645327734566487941724837247541488590615504076380604597714361423821465257810889506476563938294511335047021610182025084046321592732804130383660179205386719248767302032919200030705229191224604478300467652077257169782669180077663856352776639235492250742102278324800477721696519224638437230195923134347291826966576907149797747023999680386840588749185341172381024404046257869901699029134518292410016231131063382585217760058165854388222500774837771025816354110694507453971016915124454276300425413481366033489538440436809072802433609544149213292100940744508774435406322698591114637191370731047758684716909446770685170569857734544514491154110224496937617075420350300912254031658989375484363741407650163395807048467635287846294996632824338180932149735084005040464320229266768069895179003140402582507514010697645037387296238852381474482512317520366623017592060820952281816124767387831986078916441208366874620508489078938594955821285766065440244961689793109387146794393678799135416977616237210105336803063591311592079156125693643901279795951340969121796161912716026526282839110306637222844396182955089342977983788932689247451667823364994279263413684407454290871239891095937684495782717897991856636757033879200769476184561405459237452448717845220547478758158124697823859403677719072492248627575594361682680624856497075566035298503893281098558012951463723030184775631743205870988103303829258253923655100419185853023645728543348925915934068456307844611341021236998038653914361946413987367536568361091689506775239303529124892764502187140815163429113845647846738950868308031441097296451781139678746800281638476671368940606978014069461370030012788477245530399167642066242967164377571965723884088325667879462284809423332915017446387509490625428869333524479599066526209114295150847798131903400894464904124359993768327166273778501933179110072071016974356869636959423264636191552553992180861369224649198772946228245420335142752007358582489757207287054019061154963669421988839874333050719652576818790477291721960100519942774567768426994081122432197963746714757293092831953197339659056635481439449857402759945199996246327420185025555872876784167905348729095791940842771072859201029893994349414179192804683850722635081279251150502453983446276042831193635267460250398067727272294540643965784597693341789667897359780883970712020929027994048059976213571702305290024031334481418264576912369802927801958334732568734876133434748408923330692331116344810317263357484710008501396883016834215280891296373602776805269979233892156009152558669671705166278430150148155729352074651602506856248171115595373463214106977167038112072106951136144724401107415539635014812085598104692047360560804746220614286015433827220372615504677960260386468899334725430911150961384445635334510496508809853040790721654849069321770006616331544274616459713878348192885022417082597535414675204906345405692815783943963690035597415769832513372868957019709168681157390455802433472494119187773829954363915690792665504561700733556118240893595101236387492821263596289521094812052104301744170363915205788776540957004039922636005662529500192807729579978782410881755601987596124201438958534903702708443408959667997631344646153088551745724756473596811875219308308182524411305778645783411293409738799101974747983331541267757339325197738586875858658352288261010534237722365979471252738072612940750665385687437194085693313094759545096469615524906891725383927171576312859688102776598426072815464986122265629235196043850441101697689072582833260269431585876011290971454232552082783626561580690776735733742837535693470459089646976313686626208858547682833612498540710694545296290386787265549818868664047981431378784237858357607113843960308470979444850360376633306526315813408889183419106082996238908413337229650633223385015090906898817778177163487910059567056527207973669770698059548873469969553380199217006068340190230461024213542494390313945169971086495260778515080804620240733709578537736723388099372563084956691354762875363365234841543190887393784909994956629255071713976665763620363484572022075109875443033854084024651408674975097656064012141569801031006214169101461792754254199236258544019474348941549203567742325108225761290757441458385585872903582713863790709495459803859705723041618655072055671784405179561452536174447284740741586007811888852890900642919272217062239844821997393670268121059511835055556815849427927991497778995886791768207102343231092997790761711224813701454518995531840592758638284245359405092828518403905890911867334005014369752804651970276514053399824370176345337729519952562557190923840650558501199801868864268869132655399066872969933549192669516456110507072262076848366959478707928049033321044924039771274481374160679814832921728352382184095591467165936220368522146151692502195761088799450878240316766643704640955103637185089917676959302258085570773855594035309607274776565786491035754028769343881059067873577720135271063779882706730868607184732429456628234266123791652389495706353071621997389814622085437088722534698898693098487823985536916480274254115977507467952187625695870493767326873287080467798498638585001826999501413142513506510106309654138030350329837554694525344033330412200569206468691244769037004646581134243376772368169454015366825115931360705616382077794532487036083678854724200005812035525721855895570494059942478112466189839453411276724329479088205855927752235459210365837939102644136663846470369688679507160739724541038862877268302732279279121362264715810617393834862683023847408815429172473038537027216746374271061740241607251604519119850083065955331531976399349209871530243409037207186133475793066347125146324041005821827513416706590806728434691313491145096745646580317590132451514649349968091523597339383741169292572520495565828744862079116233442695922040317066230140712630140278144132905232080105431970956289086814534089709705121068500035161122517077489557618026011479226793252906261353251153869241201665408735887875104151443674192122498601772457266061058092761691513378774972117573321392802833380556368894600115870065398740111095093359982147921356111261583388541047846006593422555487543770380684256819694501275240281607292363072548299053063952677570322490824316131046124759310081392368667466156256773658956589425536832014505395648881620791853609178751214750366994102437589164420845895206482794085557650130333675687014545433370861640515948267274661422360280187432550302308852215665024588924109556127167528370231823184533470327686091457556062389567378717947407857803680393951592932856372575023499459468688678019884847595995927007002342559066952421410376674715907809481697056513983214371364970324245364515848016436707412583116933960765211802453986844837796679992445171320667497273074823786724821607498899226202670137882167640466406276245174434727776394478940633228787551890069758507154088029863289477302124819130056050244935423651972488260725981244161706361315048733658534840874112277466905272612599846460923514280138952561113197672676690709063104936326305316323509893760682911920104168082050420369112692716123988338875411186716701972992387122733052262889834265782666138255183270138776528737887176711288415883530638772841497095277036707605047256765108478355107437997340961408503455254048395307354963222018501250950619584144218248682969634163590570015093131879437409113029708356930337215000033943503521637028695841299166213287794041257893495256064826823813541051713469158339658304575712354913602314905252702224943636309914905280168598476591494222695115690837133874869976895272045670640838286488759440302067641218277604457606378885015824497669356105701062612798009720248865883293007060676594258855573169528606019766642628226104748540199723527155557531069492529428290175532316176899504744839363226094869266221109903674884770746511624877308089628508410148782185760720672537341368083607482646220247326372960147493201225671531123460422132778243073754656855599950367713641990885994911294944272887658857934963164021648530016920638212490528320207815734329128467360193879754656663359372850855599683153116643983070983909026008484314456446937788868620527404944167957636039328125291367965920977285170178733449952794733408165366051217084956635158292301719192152087060279247484983260267576096832535949126376465474980847914820499006267125463338688893227630934547461305895145918132890062747627417331402718833260557766262189534456951307768631878850242593943313802612960890960521721240544212298209906007235749546432592295723508160064072339839092430496815324101126696710669237638996245233116631806268249890672747072319343903506679621085211087688378912687353712080878683824732449388217663781633137510776459157603661730842152619737849490725804417363435021611003648519780498975360118647225105211956480430334383179569706580958985680755952091434248909115126246429495126683165324123202664897238678756348129268545289383163781619350400383708006224999514854791601112468876870504499011326169758066705887384591530270207556727742074188582330756746238367713408030806330467160159227746602994711530533621814666787859436472158840549727096722292274701584318230930994892512461902084030756801634074836993841417254678947818277714653439547035948737233621283287659835235805820455167734378003547866282553982936727889935548226665542607448729006054974740468320044313735651390199847259119329950779529536981553837574200285862688999239895937670409178650428738088844064393378026861707418007510118446970339398869402316810431702947809645166356122717781039276434512694399548256635947212280898138977500748099475256153748376051213614626420903273527231776794218807871916388618295308451979160997331809344473013072887986934202260471402180055237418833927217746084200641197343182082643323078898865925924353038165928275508492994096389423549443722070974447536660405453983464651473172715770063771462664228128979429018939578456373540304580186801587860970966431073766782815567087658335345469560125253635108010262795559722644922352818436681838242284966283208506559923409502533932415181964051428421965850423917316044939152655942626750928972944907176339481001084522088784783584781830101912921100548638291735577079117783371951247742622439407416120548475025479863836365670665760066321320767247386440219402266297214911971783622147878578023027610025302514644711559383355157795764190623081478178746285571315394323867466043115186918339686368944081743089757331382056909109655256534048567480629522216253501969350339692384841480310497219097059701787352907538056077853797707574770838279902034462468462778106482541320764154669963960336309361561410370083392808017627023439511496803824363255071927002870044707615214573177813472365671612610886562427890621036037358816414107764170776827977911913425392375283505758731581554344010110813458171719092634700451757940181390845178665833282961638567100745551644769438772336246890777409713049025681279118111959390303346267228886254565836344402963937044245766436373558092157613233837936859943685770187981573009075919804443148524964624058946312628550665450332296732774417172625141403711557312979908865294625965120380363225124525347970825573612029397084764249531387765317659809338476768290113121300417760927813606338045274291120215498574286329633237495933533445586727952171276179526777366622079326628563593691816188053092844794743988460836670060629241882756543443364703781944796182958501469439863890215405783185876085992604794605064923429442847651003661326041442006705536851716821232339481362728238350662961343357233067448930037482755162025180787337696798412173842375612577854834920147173110410925900252427566165175164769738454643363966522486595254916631979753899462338618456780405578227027456110359555484127299687440792008691260573327185047889106698169411511664944638811983568979856137721683630136141111053269892229565299415460954023116396545884815517915195128367397607943832812300207827073089858437557085855701100456091839740491965105118012346272656158043537840872969956520311083575849828869980369832420855003883851905147890774489904496730514350332040802665196562907780012793264823221923155974029729136474484155172658304259536261831732656395659849140664519425660274124121492948831879937917703338487194723404933896684530853702501682671129311163284471112921574259973621604472377368830604024336006618310181112074811222681159282381230093562220894455093402791383122439188410127662006152160643303180205330449816741092117987969131487706635326658754045585745742844171810334147118113977501882214403442495610384743656643063731349628410995194556998919506327492053572892706525438471307816316555679200399828916425384957535585668541047549472438794203775132808341102835421586644023801934390931450482132509058357754907445722092429881369428121571599946935475686942592953697803500578047587771105189409077953362516256869594778123196105591338591203902494872670594733931644792040263871573716745725619978725948306487817458159742137559321993047164731318291100260034497278420910585192951904335913870836331478636061099807863024494139564598728631297583809994630777022083894532831518104955395899281791656006677156131798853166813681201319586297849324107873590932649891529236445784305507653341162572280820286827062892437817525422849473689543856312837218903515601500253208009487501351892119908352383401178265621039197439497146694052029432426854264360645584302895251040082051673528477587144073130445496071823184873233540767268715684359035774605686560730654864056588150802904403548576923916273993177308109681300896533802617036637766208799973264394370319481748717871460652054575260710139116657034751976235357257181278288771076923635997784082167293579783086522333918243020752488957779361033994860354017903550709733178238745689486211297834976278252645997968332652988126291737963622313099951231516826486628702766189053687736562639707665039258883572847933670612993618858782979994153910776034973357726334468742628559366038809505627099383521029580392357490283708400544964811325074963981200430251082604637139890249822425962398954989432205937620303555866327611470128106571553953537111242249414216758010811255106563249399316179478264872687493444691997321890982563532622496326421013694848044497680586804312907819784798508013967207612852715266944362647552236807813971869800592338076912798533455319578853534862368558876243061483273892930316050828440755110919880479882136169895729009877480252211842371690166200773338132879869218700153594680489421306089794949936813822514464642208612499848287429361198951538406487614107846042016162569623901741914392579683460034931232463276756874646002128374915288699070063989874070990407025137711944291932484619468141271885906025459515799794790062604137647449284660035972209643908857808977823628688000922606132862367966417254653415505490012340806445762975105390211259096648898255697256703444960827667059287148911331044875784824438461560872440344045159455485648200659802469359473565438297520737453077051386617228385079304879132831256552883584034060488286542380856750069599511475014287560902269088468105680398106017979630405841323682200733574296361544367670696820389729181101434703706996697902004578313960731398084502595778748601904022858141641244853572474330270807124642094249865115131290569931661837115840962097817214737105735984563358443838723626471648609780031609873177372268158983822057186527693820704286608477341553932459013532611767802341715612545967654516168013874279719560229372491662005073142985925774757224951175868879003165144187522109778803072244115999090737061525737642933279669582033113292742950109640289239615862251988048110578058381064641912614089398114270249997376117174541554459144231869298072755446668955024837976721471064634783115073675035981023247872182874549945944844393220720361569273806862383659393604028128749753255095768336224259189258681340859449489932439045433751979988461229473307838645427683157662380314961948315289550454936125382771059132207752121303338588633570393808653542553781856626945073723757382312285538741849456963626863650094297579696403101142915764483469219654571901185583925333789306926285587672193498656339468445584794555860117485173527889977930798430248653940946837279152581974619834168688942457473899531491215671349127732767839836619693205502648620076125729972549523684240450789871862643065117652030798915743666950061845747223077168327903301308990341784996259606449227159752070157917194374480934671417503707452617182862382640944800710887203366900463783076184435421724233603559578952348929764269449236655570511791536250775542530663211780631495545193695169892019273804941785050130550200243035601194313748967201582695276047056945584940800353675028412933191471812181887684716474795193311798587427001008072251589246790101295947438556002125039384285987016135757395424809800747657377588631102893281278701573682079743519594521727673471241958329719401011577153335603065524093593640185951219757483804888796391201256087846043664070430407188917891442939602744105260223177445467658620993066272715951489254359229949506770752372810458182358153472558366300238811079069315760423167912692126247078595357788316170518112352600871298407957872309754769293105975574443619592576896076913651259971672362655247914699081861463965244508979365562975087754914692260028061469043845874402000490481454880644137847400543508645556934812263449183437615341348025605219472638932174451642240713354683229114698654207632938611594950175047949495962440603916432670911499159294842781928456740268553873278611486847778787872811329160599855710159086736646565408132883645782814576094519926939544675364978552396324875883732610739891829768970261942902693397583140661605345633648035175832012039683384826070764083096242431183700648379077655511073059051825784058044929757147822885457194344727283501329093164367053587359047157965344756943315623412093386792388787517074433483422184248514571659661473078641943635857150991973502788371888315549235420002154496740558473836546530673099594607555059644971113827951689360935095589115994468204633510353095151807736344541792252105040314511444603308811169918552972601912733626832385776456745420867420611858368261791504272979828389065718259452849159666726113332404621996252637650747957317445018370618665748018548308671934479975962722206962668502420021857579763430130967484705082211323437387495235869794522850554515499376796302274917036056934140403754529332300032982924362778679836087119932866110592430776528761419193544682463271979698026598233219622568247201816339033333545988012241688147124060800809025990139164765061812422604958563074234274087470832821762685143172316372975042767933815915128686318494837434598035271007482311787598678377601815038136019132820551751612922768942218680636796215725933792398770051966031519030187928228693699080245080202710427973253639550512115378456619224156232731731932457819941320844419484027607133975996140742957598716805423517730931578899140092996077249789328453458753826531287152077751897678198888972025405351271388158438883568751923324933662314492717365657061728952033445731267211451581855726683395853724898058754367606384122377611483345586458769110792025047064037495298342649852995973187723390158259565133894731263234418832622667884831993163577551058755462036739593531336396761115485652428811163995005612260717848910752300515610237065889390306325317288973532873866037756554156607642426103766711374518272009907453652708077681937036617023910179043787114759960149637979692586756595507533824763222295344736576988298370247119834346868631181761313417883864621949546169558996669510200619699784347921384725344582591901072773203531826727356170952879762075554061878026510597541485767811009526776332564171950872882297245587952812502483441829623508064077874266257430615980131572102328966877675119003652538481442090062544030356937514624848896630866092839463462641286556368325075086044402448528087761028696833482624534696044369034207169416232074895096561813106527024509836225762206988663820110869621784460232426994984790838793894149565644337620662416808485032241797438761847266189066740964204045218216708624740369461297904547618246509951284963873395599092769634789223026123625242248767323034655233591960111129327917719188353859845269949290532426340936308224767028002509855786691257971997131675370365283887510545710027655129734133876589567419718032352537616960559842318836416764519906992655817863971098659439847389925954391111983706565772430011292997364587082750110651240979115139638160478778165559056229355374992586790976684028551269972774161059269525009923128482283939967479464400928671642804178883608077855254458759627582168833733969685901153464519853055979166117052638423251336767969124561987653437731985739099609112636756033563763246043795688022175463894936890161093520534789910221995903483448618160165964997796417280935711153965423802329777995535331191821136693236874113852041807484658271819125878750499716746674018398621833370439344569130519390507449268403194084923351725535157681280430098235578354250049532351453438069956584397439077435106912721102121872050463877425091806431575505545379604466361835284272785974460855590228297803940756629823210460429642527835758519804400188151534059974227638800234610421175436894952878416695240743808058106051707870463116678296387779921066725616652023298691774606432037402032643625095188792094601808296619985129001367601523219145278455779814944909349559343983576501419192104502273837079094730655575411565165272646432868512258516907767778469680106085005478090383040271666454869650574986686187558664958503553367258980898150029331133929688289708670685454243473758186860395514230628705964982124865158241104315068009750839254592111792409635810110837198404886032818365802577045976100611465156720312205203793539223663979745256575410043760863472469157015064412491004759193080431578413845466490042015926323327617577278906524242959374226903065555569518266071551808721118219561210086085706710217078855991909801610217831197945081189586089774628642432584256912168858676142762071331316188890575161142268417503515405731995153647378500151680917323864260530908497013524214510084392590930680265613973578394591993756814779577011905440691698230314146736436545708450695189341721514362322550997233112331189559830628895909830028666064432238086260754944680502902190666907984803730541890374922499817122474759524325953178440327023037197983938425936148204634646356362941193401869182917558953955704820298471640865101240930002687751325867385621631069366969630484845527015147025647096449229670626941667719702197464312015521238778110573693389110373138053942521962407046199567981210950713970977979313339009840816800279854888240554143051428357879710392688676486989679616286909268354993985341945464903539756552855511097590238134471268831443315081108610655045501954818185440936036969487477625385652056103292858150090459652592043797052551354311024615256119320785252981562443967800147027300918125128912347733915458841330124738018556879156547744967584136626135508605067278326983855849405754573916118606134237513516558635987438550578138072561567578295044111641284407474827071785579610805607844477757780776176729394572673466438609097697425423931509323857753651156617722756422609088017826243373415146637281380053758975380007071285315723477751595678906707964133305815073575440198505879575738573094314076081861237066117554001296807211862545133892526536393097035592510621928629134376395248795221411346219727569947158022267269990009260997242701757621630286443495661455522328183113257238179137081819361676515920533856613599056740265056748824423543505572819450792011521252625966893703684850186136083229827527128798131081514904715906607445400395490698166478569171017765514118042997048241979883457778087458654139337136925011941160254492860432707544191755078291906936736716469629759489605210774359142240353756682019281770320821787523784697551459178362491521077374173275498332033258173708880881912400610394870166210189895792619047830255908537651131251554674147651983635080124711728264008717439808484762310125033664929874715938104257158152161123656249852791258937299327597142055446349105125423093271587519605309947742863109620308803993680245829411465296723540680019611509565198583267857786023019915948366603351088513171559534125740596496189815118845240647471153082912366868302373271780809553920361356894142787928413633339731639664292688274825430297917391143507122338558340903811614438912930391337674476123113244703021539672319811376600750326460641218153871541573455453138615089817565211734512377378208156268138255564808148032765088709267237976307597044727158116667212529919626799963076400315996681980884456664278996040436492206907400356094177130982708708470933189768188022283898484181682044849120824714603464631658581638746537532317452022991946634029852038926624083662231179397761187137245491013110403607664951109412003645082733975317437464045307152032392117187133010651485546102360677261874488833651586925442311709811690082182010113348932898409165871933923816187004371630069591745444930013021802266031120633440692615710750110897561950942832433561839104466517761863434825825265975182859267677295645627231511286547975614221677807178256184629143719748072123355285151882068851125917952473590761442524993745629185330837582911511717922483175065778697934480082116583295881874646889056479766010649953083921570814560435060406824117664409210565269583397261830170867547019589111939400638899766352812285852826834351033011643874395453397600727115491203852182499703541143020077328374771104530890888275215454833080364606024244822461068822475546656539551844538687292662704513754063470890882602990283473789966209061735206379383502176102092702028958739129932704400895597689812212149316314886408171671636808774436882874682232185027202873724407752116671030792288107576920282592470701707681399403376462708958715962455701708940534693068164087605088770253960876997689426742055813811452351639559497802805194528045739758252556740988000756961498860243001179867847513126704025143793486189566431407798722805212240509716886843010790693438976054800696818982446894800043698891005081587947272932272497066334225177895078831517520306540834779344064414930689638022988100108226703366638092174484957542758832563890741459612022713520153167702691061533216648536750125160447239557294350740944885582702589862272612630394230178180956589833802307138710440544374215079090802016874124409418941127266137711708031211120550399474059232218076439566254476958487970200230054838292718766041577744658292835049444570701084551745478463113019549484416072866665120053399273389058464640686664883486648676352351218239807931282833058791184838973416270654773609748829301473548649068614009514708241308596052403986500764635863538618092928762987768830386994665416335293583342433548064169318714228397541073726025540517380134659622213804879561081390987301490483953650664818927322727695878428694320978585030053327139874329590783782404707822770868728743027839092916587477482152974829452905443774930940431570732077817157421961405492309340324668208483306912724984965591428731083802968447435174850621198271707516702297439829495361708764714516612347969881053241929630108436081125476174377997925431613639589895491202863865663641596960161540119451636603272939617642743526091059059646155410039106278064695299019698330291999492314823060581827015813711122399091986581115487025907201782462302921899297232175193937963606008629818446165157769460698694675636063733977827927158304313658682473066266669956508277897164684337242516633285523022131509021640409928670500255438848093561260822470265801265452334001683673322691766216318887960810909767141780421381727510394423576857133833876582030829252278905656240057319374456514895401537105476856772818340059611210986845008801572271378610275193836446189184827809098832124822056476437105956380180723994112768102329791604854345571120158913404284164829817060273277021750799404818705589619160749492759722196717841836123389562953484968090657894475089265587979795848939306207435194261458052333389858962999827013767532787662006393908829362071613212580595334870466510345523106574757681617320045080322242782483036705622877467139259556932819637481964077782327781687201155365166290892399609759761005142810414652471204510063468551964080211244538693444589432221208584048087463851700765264296778207952320817813544717793091693111627268356611348668920240752507948482137641113499511038644042486719691006470512148441549927285956095917328145389970946128255117411352325139879105301687516745023408907902256674891772667887347188480805743476090578269583959442893446361243988524796440164222829543959253772379893991074810161895681955749810205419214230078752144347556939924267033597945291583229885527735556544379808075468895917904957992279774637897893847382234165320768283566726160818912762332353294872252192110828137080079702188923057719200161081972373065819932646133480276168662104787233264135219466891916035186281752663712724413341837599224223743772258393106777734085242803483429285632465451586560908592836423341524912878457609198317376379428800733765814454710645438976201230005327681862507405680410988982668130109256338345335371538381503397292523198966518349871219252827008960581744171948599132095023119095167289867000393936841164133687784955011359248295048305173161375545054071851819626993070423872021130667002916241516216231497225574538231304269719919256371915535007260275313924050720778547878641475850346874746450941796384602704118086884740482247515682600966959948220313572241303592427101371920758735715717098605974213231753552424726636401100084069340958913495375067829607846353778879557400701581667076533424158383543648444097783670178987079893289252659821114501543546412967847961312332713518698128275173161376390519361894076377122203975065570197416910424534598182087618898708691577666025010391878906867210021927267206403531889490906725563799990882861040572771229744119596719269174013076140033970816097261839733577259549891373974389538376276134358100487166182191675168586523211597092221017458334065442530471825762553385801672330584812473834353631577023380047694172384290416005810422761487279560254461153896603706936081665894251633002210228107583605503841276737995664742388707858491934390695278298525411029753504093163793170772752428627380890493604290310403234787945705719347527929936312780136582072056009027610568438207556108421252023838021157561147838221340914321747313830117834221795103124815094373430366602891546321980249378565550029692071976266568865541467323824304673269878262304151004928803674471962133189300370452201471174136824360876958438462687917854504278358133411091882031650363232808916799433249353845820896002339732018298287624157161800224138526701923514075130008648213509456740289627138240290927941730198108539343446965178399680644988356334892817304311832556271147134296569251214235616755178012787216468715157358124722178208100439251836808675085332289234540669222003167843067895127481512705737686491581451573264549488027548318402170041852121262422190306535176228613931542129059144416330405620937783347812552990909539550284112532822566688080807615562235273522580707109635500990528636047355355140712696594633890597601600173702492662162654204454197423928293056725168325707811186858038956759238921023887188301454316581358788023339762386003556250280229849245961045611266218601561830564301270519468480823481566723801171660141840271328153607943893413387440234415579934495846414995301807338893017028916386219567798234335184666644034672217351605239254941655328346390713231785146333286068070362990539720221995360405685736465972011620309253173722596294944383731828548582342845814188871870489247894434125736422606835993673044688448925957659689725217777746340236322338293348031423304300721823378988203255952469615083462094686936182183654871529484668782120814362895712243298757803113564998592219180870435257458551950011184566154501807416481755733000564353770990428290621066343603054628041790215395029013797901848166362891867254092391821081705663366768810289174126661447023393585903120089256275753649365019620543521590671808116804199039079098582268561233212060567164046823502689201733908500227287290276536866335811305632860021312756324224461987979526068841220285031083791560321558167197890916815031124645982215800310009050726549568043458385776916210215923430074575792203830031168215893915632607285686286628915948355019013991362717734087279612632564769313181473048955873701317472225718082584282896400936979544782697681949045232017363989188241205381867314761292508086123108778116306866603859307920459151146898777000246460859863843889787880415212723166540162427232184933582781618252361729325530132473819732491705535333648948343052282434405222724163703375267762091500264984856718640104084062779142651672706325620857428382308811943954773164553545866457492036183893598227233187651272505819012961206164635846934147628845031244803350013186616848921093967874033359832508218123244688036772905763474942155649474033977288335614626958372138261792119391049633635160370094211384451869012833619528958696286994815234142267955469776876338809205238732702169682695060044968408826066769582481502031671325917948568851715696078162899398012176998031328980334611236253596699742863952800716992632082687949712695370126411702219684874067126709771983517042942372404312695675245345488226458665883501308171193784795532343150437225097417921323919291376193297781584017828215055221138192103640986046326974377047089910297456889620013326203113684396167120291365280349124233847705350911401173787022876338344374359809147260410836496121674687418921173823243186076780976593800283226495740504613250922269949684077773607876783145481895149619330055704148683510140904477913446953318980131304895416125886314386343125243793559628275992652326378971543699356244808266437524496068487158850006804951003650798901946101983083861727218827963295202453423753298098950545282793665205196134353176821681584038597407234597960565141243825168768222380645225624624069813980530362315481944091917779931468367649266585448862972008706161556183944141455510426569049994519610179706513707441825025274011297321555224841365576863861492085794388961888090779133696037346192240904404491334522372263759513483175280133105113006802338727697308468636004123337180377857209843212805475361172966073410233135824766820989965414848745550815725530874285743034998146048360631868421294490575056224483636690646359437044245814936854822065089271520273554284666328477442373275741336068069100611394809320148222175240126808660210689964527552931933451663046300424854596017982191023768288573562891036007268400110186598172151048689363505550417201929795618382598590583561842054471820372136288460262483946823752633504010265308893144543727852769149432161013131077229406839964371006797009649403608593154548511439916673770149742568256374815195941029456814811109672062302876440377769914205619070869704005016207522808382977404924109902900972152882093778630592815492439275406327660395257896538391911850588209968993941920138561120481146523896544412872909579321309184518772562234082481607015399896888109366797129261115269940268274114668340341486286931266028523323495993563203018189239551965908540958553059615440014866203492948938148669533420022009950943215892360605638712097429651639755691207063571888346661596946188094738020855599223008199217463743775458233108207676342437689001027613048893585094339897114885894554751387773820487416853407805712699164694118932091418858004121947122078978573577116721971336753667268199835179769938319328825694987965665608469492367692864750256800628284649321205656854309097248556815209747312943942446819245376408092126972672307852354956265385713090936361825803233362849160344844898418188820094094550226150259978569259863339557600272459397669533227628686622777184794498580208558172595389007038771143053051481779964165393675719353438564340478240886137241248485318906031370169957890133138587941604629266276843904924720541154371681810347875241723766159918525698526532480166064221461249858254034682695445233239542696333894391747849673185226175143545888119190405058712486808469903271029866043472453058890709305233090336097128005882546482826072733479380116846470302992893382463991222048317364949851652778743427340493550774736914733800037287319464846348654500728934869223824861611792970040773550082039674883002959163835446378757966464566064114470886350913189498109504779254142431875994396544835478270716548610540817654243769000019833135509329717519561634784858354521699627693638953448710326098212109870010245353680847927202189852313773607297664956689124071611628450359643664400757936100812348731363252447706432491689793506034706423095926961246914749938013397288225856766991370670759327135505410804729955822282574397468174371680689939595954441421266106859566713411293046069493899347769113548591169061121941016854713399184538053612284492049506902126647683314180672201365871235768222824755156921971785703190671014209835549704570117284125179505963216089619928777594974812423805282533968978280865722659157794506501876317502295998348631134472636702059838271893548353870218717907016413258891044409656872811081500667348992483001590600564761248904118076917510343216989012850020530890202225547659372933199196317612796232367127881815796013006403677246175359521579658347194965267896321981399568862593873238041928621172319214275999855868933294444434652904443567651165068345558784477123298667320139235717358758623250272239770350688650040829105304564550597029246617706287841795607752460374984368979125437709772623081976412653637282954124821655037155567394103600737555584329941908643697402597069951282629681170295695554726135773171290890124612228029803923361655822714362362867908072018990931729278274058639982117596387000462401767646469724283563405101657089725518514325495716281661535810514830799466761519140078688004865340124458725167853004160889361902451257089342734847996122872338913472548322811881602276022268326762672937354321260971746116152734150312251811717629694266378419867227546682639794819329777091651784380347590367646195532171783937273860075931929128242326417853555218806396734323468541078463515182280216941331890815987088206235017943413825279990328497669959363561519216033231934859412002778991750380689012101312499627798925792418692158345828901955567774929288883866690236648253954115470254541617869733667608185864694804044775383505447721731844046573461727011436948683246846546441613892888222274599448209760763017032950218977869349479486716163705522681250927882102738600394105665413345482166906761813027411342754385616430924440144184925048121860661304297847425173929201370524276216814193452974002389508852535880350126139228070141646965668645207899020937217763459821263903017522056040578535512817919498170241432300382076744732270076096909092283284458428778318120353398173681604047647475859009189300524386232258295819334517628456147946324620300239375699633751846575505182460815538292255472855354729052509856055932595615560477590841628849486669172587174319056628948722000752293645940770370816066336865606360005453696270231176885481834920973593015993791112542610766800928081492320746133742006876433263803023708871024566833267520915226398673284315942651466783135406287943091393201620011421484933913900575210223212376748862586169272070128353459736407859605882396055749136397322884067287528825146670232164540447762263572876032184441305519799257430660952835700890010042639837326213964544824097860788454113767505020300635895350505093060083120034000708189371727209834929767624806353203364186280179296660927123176633505341563871142930310585939563930827624164653257226747281876976629052838746475392974844760544149551387992626635059183825013403892452933681435727657292672780171532264523429089103930726919442201946110559858340848516199338894282236782356735598112755041376728501667275382462235210836349730718698868537715766317631421823121183220964785217038348459731981231716022939379368321703930244224866176395910594168022535986939830916134417939958092392332818655779588568536895774783609388220041493247864457271043458539252538458718578502281172196325621910719851278886052440569514018205729649126914246094450793554841672129273287045460065639887988650094848689930903689843186712365247009128728767151932645985027010321884356689528032209320953702125748689453057070815810432806031931364205308323492826012063743716414181767589311279852434519984181228048506882763065567902319344520370523516921911253396884411016835465194488713268849869001695539236388062289846912120290814883408704707455793629859554096263025376533434859281938380089609225065415631422062989165930769575556464818815099352571933290373518367259996612133345887012921424834608042323371043493645017984930518453112918655130596309199325749900617521640733491843186162251757460933577326337031649423156205187290878106687473261398952764016675221339584587149471618550474359079727247236007381619835772144641270889868985950840870829699578230985413182869358200478982329058394894055976633371642131946078963918710226597322193625438630857380245973615219708397151643811847627496979390400964397340616108945605353347996354498782650739772889941759060508053021885614386646529033493900280861997546725988935344660219383972689770589566072977578996098449089950510612064277901188432991327136973214832211195224884953201359614666447481927265366610025274947845124316325972253955683931022303777263467731916890596372208160128161148832492324196372695457271622676199479164031297919994017663569859147362122446023761212301760102775914527871264645216568893450126837894733034436000563746302012564690066620033945609967838538248701286345057232328587369390325244962572036912695702974909822515615827883124866584431751273089630274332247476134817545494939494349922921144739784411859983741144535995311470215390112763394302571734751914451274554195873221417082701937879551562634756617977043906733867177334957408188466434319418139652339731281769687237313272822110389804518962073605660654198702959942750031270140983247823989916625279492251590383261224587170180107044388916638975704785097806322673504655776447271648153538292608160663459099473187846898608768185855493149926262218616132876058561480583975672225909123199329909376940102044660451637782155134715803088809589069067347682361293583862186276567633803988114837443590875746134872447047404688400564866203561462932636742802604845399660408882041122812431637519356853137323758092221827889125082445134497130893459057936945430352067227826048579370934853537802353628235051329780682116420167132979638409426282113196242069667674875915474232485202509145963326361921227279999605579296457830768269813545129911832822729358087847241670371586565667454367404276094993710287789942794576896593182912439826439287253905963883812140528420502364214300692083119258875553433554454514091464798045672063194662428427166807371478334034200542250082408541656957006053004205956798276883200472266527564546809693243772793110934184787716412694626047404417277105688782962464408932725387433175795392827683362913022558770067806851421100104938008996153375171121170900407483461083916061336121621542574346740692761627075335083634966417511546911102827625103049496457635169362662701764505800111905279373357393380456236693409462109063167309150978217328762938749847452833801860763189847945626341745393943545353393697391008983791030959648088901807960151329872936803857499596451398454664720479337357322544248630625244485985064776216007276797164220283685829774200568761914309534537167877280966340543268330758768783872864070292995499139155512784551944416843835105776162147218021680855119475068906690332185868324760523019742734692953679860102884860737112392182349481534166983214536135796772092604747436200674671739660318166484444298421704665253150220625688233437467126666489476700155759068028731434617888562446843296923164851652692683072110350498914707703225535976507893391147670752178656049388126767498487217495414208866195312693233456551218171411695159170857588131069618492018030269933029797303046072415197407558622050215603058373356657148187785708670357826745505269932309434829084331371176141015662279685425128294331967725992300581023147835845880552678386652786851096059691409723752723592092690098008874214982344885150919012830064023816592054769079393436948071356786464197106885641623394566538310501616936715305695882239249017178384815811584399919071388095840297396853630015969326860475895145740730750760845092676494835848386808634333408694385352434053994278517066832428780181065365960583122827348636243654236512383577416175584993097131347986071775264572172137537619511649278131510321186953079978987734323553978541852522140854487088634569842091682054662668710314161344376130847694429007978213596172907269879487390539553817338029178914503674993445619364318812950624098316312879454747473670701608217623611385934148269902326354523250136762127069169350222907830556449694083481946850935756180538935306936319885333209487406078062180768542035086236887613207422182960876747664251422890592380615364654842967486923588054982585048067844800131771410728478899775136843209475572883640287690907844806701330188223063849763807180593286088604794423444568274266856516904800599880255822558456171011346308665345508177499677357670178721762149835980914571079479745723798430259565126946535037869324024784015881177708605685781880490441822752545678643038263956002792173266188603391698009132591952127022053568745131020888172967370393529652278294574690179812651650454332807067685897649372826422836247057495427322767676370223890998011635313400197006766738158579322699924536348610730669011142095835570418972299383575395960921805035426777289062616165433789594466005466662571679128669833960234024431593576217331220388558228319398484741463831452020145151394493239544933142698858206022839959712976339471328846688854325256544622473279537113094132936595049618873760790792992196599596179372793225282414964291002442428855379470880799623029766887910877511223972409430080441985743545032001775805059518638679630689902337703486832394149695745922308031851837398928453196075412713129333079875991561494846282424296738936427253876938744362208642626457816582080308256166302249591748576548612291697252717760094476257932714936958861763343885243510157847436304368016067557838576859950364694015195161410186474215747051591493436676299778981944277035478469303553877688974138645386374688555671339545693630432719581430011932038876770695881390327492348256042286888294754565212866136803386098491020885336580177962122569914967143519022152512354257950817785109501159439927627123249168930555479526159254130862928094002032594402997659908003740390585592036949653739823865315195447810699587033313479620728930071268461955155876240629405713683786351921706033696387515313211808511224069953052742352839177676193425838782771099357204015435823261530990362006895480759867505494829173102163458972037007202085487094084585108615294406885717326634320741763645869271423842016260737051724028761052828726036267473765871424734422092061068730577752549483011368899627103727528750232355070332377598869458901429558771844672130696660039218099210124909809145676955597759831993413438070365575112454431173696722834199762900278841770798818501146408080711716756457064931835432718371083899416089305549656004260417991275801585923860179481760011191883860974910483733327470206207434492581377591799655761018855063263572952360695393022674546505747337871906861568653221441040016466269180052813628802281296333234784494037171695649635455911221475611645992401809956088888079851606942806842770598137204527557972845989645490514091463927705486713061183336668411577034012845576094093555262110311298646681241390088735169754872200631437848235891814778840204837727270507117137110614922726009785895084432850640906824401720297297893211015628814906732077559617507057745095743050561677560204483067154713020041144965488790324914501892204082584380310891869311428425587825163371930480919697812191026207487873826442081340028096563304988574036867379504570005126641345861984106944636103075256839841169968805375145706185763303718439237145025364683894463482762113582940737072680998855205626068237638022626126607129904877520686276872883120495901080924708162911433814225670923634935634300214409303172478987738921104465312855728106362940133497351400586982058519594947228836877851564485313165305839950128038663780204458500611960323522701266802277616572374737669884754590335828984838541248558013558997594313671222588814105945598888483926386736934994953041648862840778085887925889637816821193122412750773691249005994841657486084196630495526778875199073117198545330534870589754253738654725611249271154929570598596432944962546128529856029230062719905155282246736777816443179562749246329955461381008148224617097988205612352310879480880236143110865973617819679366301787017361036878018145812064127356130183490184449387709233934887688928081330873080038856866708208283265183530007673161192685861986957292562043516609166502429624372850614076452355349130146515879607734325926056000672291771971407715699394230914423249614654714232887405450284375097962193383898643775679224345569050690319717230954622281803897917964059112399918377751712958019511471115861281011840802807190557962167404534021684738489185801875125487711428193444092284735923519378034652521298376328184297963437896155974178777472055675554254677142750950845612613602575803590671189945027115813274898560469255121354242703315414752464680213957662258343632691218158716480753079320294887282091283276114306506302017340368061604851609830080975612335944620154399252654820280021047973975408944819280566035586923193583490307147047243552406588987876323679147854334380553074254217687870172854487792736045562048278129603555299016355565383547296741252498552535073911076395865360883465444651091907396152675240708214555311417515820264166041224883182363238249429048411941922153465476581703861226059123666827637420882110325439635431316909409471584571380990868972666995207177780886822432228908180876849407572116846137337122113548311454488114033566316251900698066823618921519486497399401232944795505233259422069582886618164113183019157644702725242782959787443287239250776682058041288566470725973948932710660631051300150997871065676174061702459473521947174007410621301697999361050513723902885146937878305139371422978761587228193595256305315332476582655564873389496143188012432271127682890722116593940247671918694617616328012135277989150908606564187775211089277003061705555105622695390368244977695337070321442430851239561398597389664064453458450542206335140878837443621528903529633223458824939295778654671886340482297357058878409848763297652792559158245207471972914836067858853930506080759898835212327170377790960818946127373040475710896163392218409391183596490480131755624182397515584890137710496619838788615848495061861704318969812615826368342839879563394465385528883052783723572430083401538716177213419035595401111929426663255527853498631606236570021275135533685095661668947662550340016268543112782740908945207017563551102952241476276980862872651611660727893687851021814117282215703659210731725296609733253320653337026133165491420580212344820663982215824469817324854457781631232170636381645858880929880506167530005626661548557647662245129246539233343793585477581776931845713746748815823809171825304528272693580564421800720601218629990137062558140871246446613770458339744308303902168924400277909080470725435810723222805949540581092233708648340671282102544510646825761379345634348243083151057507060460834467201199563821740611618721259285556311459146049724342230680540885653591720671564455952502564763691155779365027339284698377380898525607594630599941605692084658189054778298782409656977699242559749954348510352499566780461653518089575308895806055216945092488340981971678958289216514310521978107265652792703649129618729916210663069408960562277852101748787387418942524909510827687513779941247927884833198994722008982990238049282790443936011847214894367949983386019286981576276122601585641507681662849442152460999596254994787903261465446726244080821566000044763227897364283448483900578750664334984199339688468256352669716163311375969301063004906204365589314325737782898545017729584232299241567089410049216998168978663641531652587568201041240362529339862161642862243903699176908945950038694797960115506231072674497194841591783994380132189476066305778112425393183687396782737969714281242132607972788799098207770957637440057503396616175344722418182565471589784034238972933716278183167136191528419057901951205134481239972000126652791847731245846405345540521606884569158532192847534666854637606409301470144140744329560727993525673521589146066379214609917173412115327453839752170080575702995061172673236015656029976745610258520315108638104366380098233041366622410434626883399133059035920368666524764421078054666319508858583229549675666952499189365334251964685084072900636880407128584146677323270595723209651473482612371185497632798322695845568368673649798875752915686728572260635363330111484092975470144273275104945283994999742889044549400948030014102043588775519017876838762316149735515192524870921071416027802577438259652133480801402714675074328448938356796308681857177877413556131648223023771441571328224280024853104536166638904727785941387495539425001022134673691688305002049856291476866405714869978871130600660722545914568515367016418277749943100864311885543456941843463671217406468970918888751904185135432467522201357055373651523186930132042331698376801492170938748961742658023677381046610595646547992256419359196201694234100508251220527692292351511965099809896116182468439299955586453598864018161671328877983701364651875408042317455899858782723424902847770472730176184006849088937906752592624218570123351102562284985567769424985786972967275329406781340912440468298996331525038500365215197756229139823350828196133353007160742918894427351892167908636039426178440503995639998435873137154367724324699363703749631466631007494463724512875871091577767332604879765190163146503799578073888409472806072794967158081284357321392841771985969319260436524702786384706766274605799922386332756780644041049661790942164349421334806406830886710548126207612850059868899194581474875654261171298110262851345952752324806518327332930590836297348370893209017116456617132101731821776254257432115113147188323605176527809504309434293202708806871243056438626406052847116415285266377076850017158362793774992297007538562719008411590415257347457707734029850080478483023910536319740470436551592454590350902958604433638432605431100999553940351149310030053382141260315972751306171302446568406455684997245672714808712888280404868616767247463774182114548643007247802185485609636934182132047362864637259902189561385605468750432924299468041347185577843010724637823752625807866419744939639978954861990371277195179201844014853189086414070199511254195153470465140168005119205719140200097805740403233278929837268086449327341076325246931382362484790156393708704994938032762587265670809686452660128497281885588235984242406369760386111848247081958548270991689220907734719095975552878948944614446245621520667519644773412176162384893784183985941006504701831418870051625621596802198915518187380995886799807143857485696639391209144194990774148673085804348418607970070855562617818859082311094115350405974455010887525584199929529947230719594864694659229349972748868779497480008306189918624464740892251379027142427383515718866855763983718022148564190999402581576974154874293326132145039077377602450729461829249073948052151395261658734429769321624131003569340693666126139566525328086536680664770115500773187462026169158581704568462301821155229121130739722047841628696753895248890386319462441554226423126877616938072246012737744895746043570028928460882291360471438250269527104430640901682693436263951208458949235526316505236566194304278124609407020755529050156766782192987740670733600071610360205533785234075875795092275753814623216968352981983749610048708854291676070244423812325024781434182836657626551226710052663598575233979316512620805967541914871113756847330769083657188931048657148840829235247787992085034425741014640928324646042335876644726311612319403914927748622117657594340340978524641020562423450138748678287457359758990850139492199911845086983763572363024134032561859843891874427283109936803447874690026555769251264460739452994267201332741968981478445535220058776210765159192014742341237732938394311350426030058783121643764447008945150419474394558415126037319864366264707462421365054877261139163807416164495858544873370065662746998012939864646202411064052731011541465434943718157977233466034679832144315818090894714196247287333612982683126770557924397131660713754257230694879265387229626580588994796774345521885194085004132936594539201218989705235533607830993520845786634617052435622703561646569073311460681171634487585504911578140271779377525317014493722287195478174289372496325729554858154085701739140881445844216446141741726231003783406444621314870265281376204330034206446517522645326593207948587412426105136619650016354855839402652296861701011224783040605340352451206810231551265814874799896780163712552305784816866814732258444704927264912886806010361513827846754920479854978914305118270505750152286086875331761333824998839120000933309716061565239762733573886169029473032194831408619704784481748680530094911452381827145056609134116851608541890996089553301195592923975376792551638453038179011677042228210491070694130986811168109184387000543523571190375451034998967645228839399052341474598894057491537053855070670660990166192238388046294386550337196796055702295382626887222369347497439065917754759640371864163494164783353685983809215923892968816862212947404449736396924114909497384851396207340880773682514310133813006890407348933323052546247158820957664136701900625978197730807874001226120413499112686436374418776468045341613363084044475542521860404563034155065651532110405960840059137673563870641290644618289034052368851584190577720519097435494780077074618558007462172290964757407087812805344941757792144437705295613882313172853365200988050487108646201125585015030681052167641076693320366686619832158834908559427106046468942581762345391474251624444594942987482870154030937902051780534756773501940085320722987771341044906248283448342320891232397163337936737343028802254216070586467610579382959416212395284862858651487497981459630268996734052152624336275611695441180673518318179065777121340018528328565391939893903501222593531007441555656490238722450945396812276269447907382603676135972373768329546401273727776671864468823638364879600115156423273944562434065058571776651767881542891883624108523506048156250461485196640720472252500933488898515044706846509265674613673889190162229351731952932280584721101968817336135829136261042676602244150964028414440457176457933079846011460695211156386430500935572176912525793310593052796246516698463626713629421220950404821945304406697647810567460191855693973056989566840871362497130535007476442411568150860651153071694523400092722510571238293627256569141343208218011750916051448981064106261467074371448249865242800069904507249376987730020211666210800657595933177769390248622714429477522590027483545388497292690088072695486774393535971687901532148415486572727654613488059533770925019056151116866857283027682861250231372806698284088306550430350097636390866349991155940444490098379744815371080263744732819989848882145383775038656913302542628830517696699660335571708787754109422784572070827616526374941388224582590341943010940481530037297464963189211656480942027776916154647638717449260102260895149748054629254610428436095796034496687301881274477407714340963097554371605601391085947275245117850891190831800038399499561576481854010262360206896527735796005202873779743496703018192624342046034318794922717669885460636432905749825635187769607623698572216278970652882604941051525140024808741095787353115392493047883496589945215178142915194842533198727129342407419188377390049944101332055052092063045257845687272493419306273324787667799683174682147900643525892830335723290023576910660389539476011487749411100926222126939033244081547617501675056055158426139694605643067456572624578369694803571342111105252374099047060786120536845705169998781471983227207804407392403829079419612885061115281365784823266668181546836219641676318530019993684211836620698114702056328614364615252293806615835211895179882230930051824465166202068186146494886987013414670850697536180700588513825568864269845991327234964180430619304203182491224270085395873881596473482089827507488592300833519950720978659224898824304163950072223172287163411304518484200237042150507250954523294088113994278597158994862479086189617317728344824857646448004351539754461799569979307442653676253021965323429536920691389476315180501998732358147026691260555547346336596752692019982647399094871781366767609435091976313448437385984645269873580129178077023715755855886262048199210919275261439173646991474887195025593324707265879298631888546468371869878942937374963865724405983115661511223177046643102082201524966555136923333794687064511103580534912344192568937932107633020087020210346746514939155092147909060743735032602066837280399421307158276755222511361381417250869974464956812723396957791496522304642027105703335246061660325740298483077101267252701058395756840963587605707159744059862868923416871627820144072311230442963157847874666314798777957116043296434706948652754190792892609070833950835222757185763353499313695603603929235150770039326567609484935160550108095723613957563158709579161319857130871383745788465316788341158598620994306327157629623246830011381185341434189301771023745915284980166214299911055699886467069247682919244703888030374557020961559112677109947970281964420614818111159997487571061313221233022965462732422137796321285501332160895361369034442545765589885773471172170245828360983228561949510415445465321195955390995205341688384377690164794248666034599514145401583668245812578408593606859212640270653590941139644593786042071462252805655154513315767205549211281837110341658890032308518048503735415855003487263398961271000025803741307958071301553272145396976161176733267699004811064223887578840368959615841729904118603512325753928560467710663398618275968765524940401295069572130616058103614881724545920923365885088885227428602605867428704138053416049792072770946282401667027327776713125824844651459421489739842837780142840406187633111698726951274952683077901791964177440685757364418693814114176355145014361316987785724000195159184164629081382238572083964391129887963958101569767331522716250821265596453908437298530846914246093683648695663509792219642469353971983819870697950953479605222368946429391910692333225435116466301891060670315500654796289184644651835209662896378123226643954749373880797272893952259548328423790856769167385740397173101618087144075418447418290075742656897888258422480801923344133202831171122345600129375066223924014424401350677985160615882820470959584704829639736863832413142514855594425336116457387848538930505616349310908626586924096422652570963202525445530729409371958158346924049723394504505848623805278317182642987091905030197426554077589039724067950521327513560357363367832724850353847985616932100280248759025350739159024579008788408612790152807514131920915748647542317026939500178353999598695052433385378080366427083708514302408244394129920565919517716338245994577878839936850355113638797140879089495920399020199166084206239813736246259122759693089262255220247206401865660480345422874681636839003931342824804264687051601616315359658503483647105783345416200841094091132123479992093347594989482004205597842346384376654016130582464915315952014225170962569415815893379763796532723891709102231202582149779876914412439104492114552845701997754739579512286811106425371601482849357526393012060034034203941118250155506630377757745926260539144049883450602958251123425878416476221194733630632141508332957355074788462919652488754668354166388729173324570575402636026160535349665692953584929848196425658584002721213416882938115894653796616909170857098105522854074770065816090039102381192248426076940859596147853348314118876044321891803934392022658198495109101146983978140795809362991444429858184237099960935778958358732298229593745274631171545652496537741892782467150612096385525632920109268924824897961885011643426034599675901714213275971860186466889897022098934384745858455093450098343366068337930803040129312335596781189989937479592383387954666678939207648215291188504639490950698854198636989149038953147304030248787324051995718391870400868641431032778295711306345549586148108440070725398144446794430695408561138776274665521991829700697468006048171348040716344397423255424222934068716825555936361827209371724834555472604923709044080188189958200125040717259742732251247639146795932751150479800083998287327433398424152527328470892911917481666782277482478494916914182555114362612051570155292863799546205040520357768608264242562807507086019227711798721562028691345282821248842048832570675068232941989632520488550033081124165603581051820247755884187412548781883543289827948200136307526350660775202698339552760254747710883166494719327977563928354546333710678891604314675911590756862311231455399668957188710364657579778873489559364396994654365519772763246863037738949183109619878914708786794571866596959852339365311350482647931292739202632600866459559704715640657033794884114599147217909569244122738635486473628247298144259199895253816367974360622675562205870472430505409778319098256216369035304598036550001761210837427934735837673602044896077485037331450657955643376188770985658602109031223113751162514731242890333237113852891281352045531430945915151376730869662742719013902389633280143545321574757824917362354821266702360396865349277145205083864158371336033724408564693093932285324815785446274548760458454096963367673101609931185934652618324379174455450523272121665411865557431785068858025226328087232847737740448437348940046896221505204829318796679019770948098288259751658563181901631001711716906528182847700868295869623885887824308280072923734865487740454026909523347022262695845273352413378323346558128697752367044494535927642798564676568947486969395581513284104008677503100513828165948078004899708210055891277829928941203432843435306240405732977842682820349759080016739144493364765233009465381189621314818392195369168177253914525928400984031708240622855429553230243132802730909899958337025443065600333859975678228231171347611334953901191745885304897745088506815145725291198459107782109977003721972344287645221009657560100213331274110703687701007468987529438627383288368036227728510264396388821757936428378683823429149441901561291687962665859667557971741592719969069741154846256572566050018876360432666463183962711107417500060149734879690076261057508741537178650317195026889658828580098059026741675840862463235284831618747164711666626673631233606766481157014578480495214660054522987712597124734637440758600318578475254036648698843069030942693280800398358871177847814506833174497066500568985023035122143698268195085432069152292613057598131940282560820597589532606261011254025786816761863376849040529368962985611077518956074339789263376432368928961307698691354960350337174740494841295501471079317419987243904209137191506402115445255951157714737657417049865008566023388185588930844823577675075154368519909950260170759792823720192766445495284507172605513400852987723438005027112189714199789479677324531915578225250836922883701515824490417673631118224493252457832278099009394012571076736720425091532061407062018137609254667550709698135934982346970881166153328382243276261248726435831624549163620963119729201603376130645882456956189602812024474030080152555489925344625616058577028123647925383160131652418689344223263288819054268896227713178563809838410404609637013303405864389897636005228342948659292766319376473051937917294148321782058096419829263806661950587561509651958039721329548899537928483667216485070010995790543945843725831397973666618995116401878646001508453559590972100120782567354630999202192659982504932822540169545181293140290986392395314497630225710557130758130136401185872540728858493358198658683300307539061435762398281084704396522205563515852408763150396175335239104705003508953993999777776056978299554143212596640173245000057601681601771335036918260496869733242965178189596007192540312887929992782901918639116585889405501741216481152172745947492379600254228189194535089545139573124557519482998561583752379695927402449392524478131592125931232803153481419429342633360830758164833345091248819069737145595749493379637551668060826891275712908139608756822479968312537226513299302087314051887078691419865423395458169413664511131956614773204432480194922431345229795113176698411485968454604923372956940527997781084792564445102063197021716639858908588968914186456972368212446087467788605280154530874879223767846839269795983235686375938213960428609665767616637066786282154094118545212253967945256536517217365909711317966501442419560377710642077021889559565001154374037583239072460948085705975169905846921327445909699439729021853040515932903790706809563288498071033881209163559311786310292559667522686250854679643505571029343615393353688180917764115930622864090164828149543929403850581804074551896683227385076538988616035763310807847553855597217784615973332891900219100048987791841992246015289808041791224376626330534291996086783827008575400567278461662130407414278768509250852095849034277016883957116319042405972817650192963400935094738504088400925198078061114661059821019421746231064917859416455069769892127770104285477636146269206565290425970213302731906375041125762149074528261633554074520265551275916530944730316555153174030550847942223632826177501219312071463928912966440825052349241509506884557418111149709331068023796159463225149112048148402464659388815251692295603701982465331647825749984548076409997533278544779795536871697738592173843196531394678360271755828601025466053184297859224254910183795030695924668648413095137753381498807289587952770932215092648902116996224789707002994669685534021196079629723780078679737557879471667140122194795557498457374512680217501590016100720036933652490280545471769456776591953343888215804988222959837465914293465700038413549303379070612144477804937103362159860434523755907413263417205885957013099313582566322821219161961285699919274516081651237401426521598414483779081490150525711114559874199266844836083333466659364864750161812316315889221010046053336167764238867196172452453427168815019513923313007406158392054238995718494082445396560207165451510178819120521751865224944762373657683339443776484192936287384865049916322270854405580393753569160312477393213539799529444777276905360991089143802933958148690982078555341741910777972537163983390336109595939642745161792427878857133622751165874020214580575963330405158276019718299880664101255169191236183300443429041783547712170058079094865730338018972259648613822992963156444985816871458274490334667581788610777655136712035843001814667908091737795161141968345276064013514942929582700007190863640949721916046425174350991895385655288893074157091724967351317294316399219929994092656772180903599105721303212062336602341754410562694726009804845404683516018280248309348107740128637929003683362906054371499669860836038210426906876984528999305268555475866416369007957010855430341674982972834551849869930959133209540904547323100550379149703690897133887713739873656392369091351654586329599283820410589389540250186471883745032668682546719253744095492572796566668958921916659469267533518917462705054995223572035328969939874476600655797118407841152904735202166880704576702700994678484210733314658434592374270355510566696034735869027522162020244619719421068841271866364197605615866030477334232181597116456261950775103862022639373502780051870547615110318271705374357755182087090735363201691978727440375155061230377534928079142654603628604852886351080317439863206083626490557473285911645749768676722568159448209941349557586034900524588735588679084894962941906938953387788179427734124625994646644587646473178165967403090257912132413205917772384551564096743160644063211188550984228799086289731277290520243017148716804871507733703363768632680927859730438780394893518812599282944386356418177833639031400901216032240331806765904030126859064953339302246882591325320299746465961092650638398218412381048386188203791351823995239043375943154376197093039896312112459250578744340674888952892722697782263425098620785082187151600543916222879200397103389029770978914931065088949405122062198125715670322653807261196705379869263158252802463968326755418050019811485053488199789824181446753869012367565857024997223634135488665274564999857984881200708367980141399253332802492543591705827190908364348992617804269182515554454660339758843722438675240499236829325655615194806728243891019237010368057284968560371326648321742765882310245000576446471670113244266420290408244364267005100024964681493044747458438134022427614903645051743369783936340136075976505789007919709157106299300565098634439123225467189191909053122221533465458438118031389025586399130053053782394025058108656255435698435381564582081897620382687457141988704536940998909463296702200922059163294359739230132114805394649251657738346910004636286718686391605401797996090626944331378713648835221233006448532341737909928165715984740569184187058331419638270300519853191325766135524952236951542005775008638589025228871289619756576067679488177592056053410082719401953854157039393224322794650020398634717602958681071276091880498761793005098896286975247399847310101257813272187072454805691389094981299355423743849649116291231445418919756940444541653268475034235841697809491845374885726776911372602936660187543537778341882599225130920670498954095961965904208780403959653654617777118666194302907925915372851212396971849421047913849799590397143994829779016758623705666126444740911761725521836638173911100889571101498013218464126472021276186822678500895346266258645210551379050839019419103217284330615748154862236132213449189918422743607925972450609552879801718051442867695125059688440217503924338214352950216854004932423561664990198276745425995667595303156769492277634436236005440883251254783790054688315528766032871560182002466558293612795311206672432798476465976509793346611233295979209054204665649930784945563558911108613239742125161859925205883003507155461338921728634314732967858212772405402377242242350777656608456663155971869496058431490485100407998203331242440114324803955951596271343347264976899599095218626706526410230259982561947749546981197919206177816070732272441691762701009073526141896564965734057215166892315503194597203832264417676484007088286568153369596449676009733695668856342314971168788195471213256773569145345631310697814121044915277091211552102981207436314848878355576669875260617125431532855734872837549647317262628217602466563796079384746709139140299057583812302824883500039134048460129054800270870238481429622262448085497425499740030701187693995491733446744648655405408173475420153353354579158431872807672525547906625606039677225709759679352764382316411586054026341172406183271623889228391434362327992330301958805374035049299050618758493466842011990107074559253716741669295933924924887087899905186405401434162367733497448275259161816747174812888021808263874386388225749390983231327286301101543512886738505321913069787740266564682238263241238563452400503236096138975875288414775576296462693224891047953716023461594432435627483919193593694283129144341912197370702799136367272514150515925762375326349994173811882504084144060648791094629509350256195239046431384800131752654188932429502015711978313301138447512696632441612077699910763616836426360641465588263799696188764059030558437393833493566208878832792788103176769821440624985865659510473047366616717281955621268167824767933558052640661189916643639119836437896209227588571897612011519842296797065332393458672076411010135030322681577020950041744509482321426507317658000751802799049301144828268295292515487444764355667980448169043362514594877302191705361063595059256403661193961454508890872011522428150526224798733450297985272121747330518660245131983874794412315004449709121746407815939114331594314759882355051187322774702573521962080519224461346692558387267357403475251506511687561108049729319712643923681006507208754454837591300814840126831854890996824742933734899928700868858418376681074299458992241548155292795021362531385143818061729828964890522747178751176377815509145089357834891199574314768622573666476284781327230425039426183142475962801898623632495192529439900753227170121752064816407449460758037171984653545408147373270841606577940016590460149513596514735899395385554802904762763581460421470192169082508367502427046014427263504937956166173829384428811854122673340787956117399295770308459826464783556410345476474236181947612204064581544349466036220608464486573462972440019144690012094842476340496843774312099487067163512074380959005303695951371500992126212794151120582879234350425226453301129946415563405990182940377939827226733762660138403695724664113077949498393260458702882163903883805290740478569475187213691619292025958175148181266576385655833493513634768489005267787341840031057457924297330299787673610488760663990906405276792236252954747783977385517456098967905197167969230921721575963802504574357735291681539282339000026402624340346098844713031493386038448792059472810682591717984918882598850466579538299006509313356696036865731530515592668477823924184670210646657669052992957949154538157097020342840153589417807416802217102479946797298735675291656467071349851467174337674948462095795559345395498809042306037899020006397248976169759466273461390297358467175021690813963463841947130848198459870307308036342281134923484645413300967960468804654907285166494015828068062197623897667988481357696941130582003518209111587750304099686369483927934463600354349847392592536078595288544238159114743401514288429740638689723434657386855904593209234087501776090390267050165881369144920283930308542599822837537428308537488481067718814892525966953936780300554727021492466138901683476006654350664553655853705927170331496973371759531963801619063281241858924267659040464143423448830880965743947105695236120084856358112400521417570426195417153495569652541334740778293895002091658854825943547122158906086455490330721172342397626957513872052792838352212164613730044627697674450039205134447651881791014958551399499590078593575772035076198179358042169216338338982901947170727794099842526708708596685038024665690503077464361344123959494083910190207061846557624367766707286143134431308356888058045611277517161728488266906921772212900745180243486647189732084675565493960036738252451378862261725764674625518303598117604107048267882713395885839791704527755031925765595573949097133992146397975117769017387162855529603843896438112956914389873061858643816459382608192054465936602796169744706164297659051345355516139974591030412050676012817578030291027982919759993236508638225151096527551314680817318217169913811060917468037612219909510671688499320935092225375841841200713646326368522951976571682627503042781656034872340480065914866763401199488320928974436944934069529249365971730895615870554378527769917818962304149923224910803123947887361679729735872939851869679330312843471089158367909699047255529752135568965397762280693253037424001753362921104292464217406216651718037072157140409739318696545470246046713429010500112538153964253213248232081713216520589736239429744192133755215660257103601167653634648064674940089947176250428022407749630684403304030728745068292219665304436827707359379645548491620395220642391151298595943381194522799737429769341483690260189374675523965019849210979660452290560396174704382512972117626706180520004953150426766965478167862949381995371456272853797364286979550011432676285461456611876376328269880943255549227358366307793991844831019259062823350688820315016820089862971269114211109589972253616913659917628561276550061196058048080095546579084399161344925952763595408769374216726607453747518303998038484101961902738124843394574349154385841280151998045565012009326941004197236703185453424905125719800405420220758824944573115102438299739308951027824413437454296951403812778787871164963670089690308227629679776322260643629097198819425901443806771053761225796638066812845493310247170460279762156159484060384492520808438543785663512559219642372460448760687915285971914985621987088570380547433792625674767521960223700348154327462711463948073095834963703650558019814989051802817852955950826466638237612773682272076727838799954276641324106463224897011187713026249955295289672696335703864965134410807923178476203370023308287083390921410375257730751341453404769835286774936739381114393256867175157351864737862034314341125007094726687919953445176568714353656281658022118618426747703440999518222635826567483205786051990214239459622388808722298226080468220077815971891958262867474397615472490978549703922729659741314084844239126335018629424655371386585772520865717014554621883803848802892785836047745251276081379099610687049400443608103541156880268313877631914248646221816749679958821704313137760718090583443573727694519801771011926010315232931502210295472211519501894544259572666082329400075299729259337566189127245869138346358022067695491347145600980748664101375939438607610140868148437888616021626712084116628185437939076519557993462960283177559923263061343437999712816701427472798309441499500522294210174009606440204766870607829156879073847097616830345984684741109798544457517719999705071450644746839418040722736313505780643852077462159921018028443359385055972635638257796347081471976588085144374185103415497009799581063996523599631281841522779883419332734324352565535993621382684308064481066558006754878058380262350706047807973142190589874827938153377791932286439216738171949004200813797903806997351562712294495338871931925525264707575906384711729844987097967326971658788748909491698352688724985922371002853626142610445482065777730866385868700744326119290078266179761257524335216954929684394481404530397782101209109752979889230951849173990645791498230583196352474952546794835757394449513843102697704780563427257508607558057259672806962977121620643703917029027107243901608356035978938668803443119362787262141351181744279197365081581253344240644495661948909054912856423965956156593456666001736925174690486873319327609930076103371792943161472037050756760851264622305229383961644687341764576379075959558437556924582529284090034401277339734734257118248378731045890603790435290365195497399881269712810708460305702452225267470905611136944501438150811278053844417970856461386071600781897221224535329272616372857234480344003720844514779386511050804938639347618315078599565134640875444894225995643461979670548592045450342201778337344872813813076377456005152461692279490720135825992638593551525602011822701659775092758065841943566625308390507494324203358352820199001821652463206979888461007852096112280289349035147154283685875734991519379158686384826440586267992741260619717553465693892331668858012235580693654943271906094471994829798785569744356921061896649204552601690516204684697580237676798603772259633393438214958797997078131234428683480807031624621051203729728022591156315024507371780158823017414771712812537124887402676006282224008454771989952160315737098061201063539113019023833988130837589610902267509356760953130277271417026031659242468578150373163162270597494197293292420691286905817319691537638565123878295037484708126353760752175487608425519708146727991623560008757073697000700581731819453575513461522817310770591162731203491625691738739783797769301644012528814128301446844568544128936657119365933809198332363173590434248532955968299413151968786865133655457391372590058957548758829012440383441632331307432142082056860075124609950098586579761503371750284464486222178116245968322965751694784614340918472208755072380631703807300306794855809619033499270088116916614170598650649161495312001968631645071086734448883160710850555423946577297250762829982471842871634714803478591076413433138943279662993176217992629147706927668959614049168555673955254272198540455624033569273007805862310029470039996156402531400699369000499186854562000066754763378873216194339558719305687615079879263946487711264555718425095898876239370221499065559435675767952728865154648939987801594677341356687863692999050319737794199977915292939857648589078010056787490145947327948775223554802119267454721100224675586927757119818881405733622755429451456199234957196630640445414339641479684588856738739987084775970110667369646936621246890428548429870887922284690299854609808539732304667453692074134262269703761721885100614939258746093835980009098987312301832980566370753453905994793045542574218517696224318962781950869832097642652607615819073618159777828270567294626927218057900107788050160769226620362158548996127665847549183451813025577642123863426486370383313366370894492488847998469331268033808355798628846862101678337248106032473640655477069927810733856857066129634796004658418572386878538811547597443863715397782224919216576159157762401651965811791552652084321010692702491857390625216377666219905253776810508527038279291884708826858919682384369953421503972855961251032834133748376675394934561662722274648131358154145949639647693385573598159154710857743389910118014251825501502383363231855858252458323813272765947489509052180666943968844322283849949984650739313310255851762673799818031359621892249770264298007238885807310734489087260988148425315632646499932562072866527329485918215732880959864599653447894388406792681892137662433113192206691204133707173344326843498567680576992050760360842146767480707882009253121988108809654327738587553723589397523054752367366004894344074840496014279633974938349010188633590103104684552059953424000242122114737005809956354480009940192211552731798088657705357939039550471983083909051488219405588315429289607524033355425077030987566737339142475927212334646066498196180725285923996917170392586027805689658831659702450431094670749036735858059608464865733304137328516699143783371038554234273534429651552334068233571380649297193692514999901271037524453018559715745158228110495209470029967485902971634049128978056007888472999994907830665316746711297116793903745695487867677032231492699761677789695348055796272177284907195019901196044228719663686360222444835719541675150696245197054561179921056276722441518346408961838342683271377959975490879638119532608521745554294162784925233099853512663673114448183398771105998445748024992134013633320516497332379360899878588309943097943906404318865003613961880302821750258842678260672420232100859603932105591274327603778101061232961609644423870557867756607653212289966143341943647848571648163517473350720972392155214392855629794640091028940510558443248325326244592999114240493342753617945673255807148101195576873429523568571150744497704541851907512880665702946571623205997788911169128328360624183939676784242025389245654863709686825131648000701562866863362045637153050223826078779082438609038022076230193857831555982687742813517994501848633815110138751021327342401638929653925372796701975985846238768474723762633563530738690213406075415407766085589659828474607281790620205489363899288977439386828435997608993338414108140346845224155154152852362438217007620581134357973995327964700239693064465946433107503520013952355916151616884519591241188808400183507471332136938809513731718899556628452888734311611775149407309118700830512869622615099208524117141831186204703264080157852181374550401727737322743583596762862606700332690132112705897670128541459908045805981575608469866344028795423036086042251316982753274666300328467954715670180243451555458751194912220480370002131737334213908824526596966533505442548257624147621365547453364253832022167808773967318865275764329546488449631980033145864395960394941281476372403346425802621933156522758896048142267634871363074891506490849749727924028422801137685988984270368141780764990916312961043694784261352304426821343114738857509022944344785562223178815036006921596621252771995481883480544675137560837354331129266968160345677017133815400303119834196535910429542134505379778934055659056100248043285515522785298162226920066258653789433150640360065519084417786604714315319890543979560354385238619065058062561442871118808396486723290551079027193946035161912566863436177704669859812049652898039728674480924528930384089315380093771122043524021542050785758882186637708374320060335077140464478080747542363816443575565498592529643569926321952395845412487918779599982001869310225015933402982812004445263420252780168448295639425635706313608998796217201511230968183555198148248655754960509623060177641176894631924395922760633158599837527805106387274777519071309796557946575715911224313290214309963196611263456965572345447814907433746324603278337963734018061806072146803246559858109474453163327730571022334766189186837619271025545498680409360150789794696324546456522125311947837158156751624315641417235078277171081832780668976244844936145835669417391315664115551698659770220877696676553642812388142596990269175693948786263603728074256468927427794482547501972376394132104166330381081300720393610434707695100072604054326907087800792658073156838689667817528810395200315778019348783241932796806924833364989010259801232291977729997226758099337338413397991738366445640621878430123722620659160593603006530055482619039970261244075114072098086726816071708293517517909615423253049157840565700214892508605957162106967981024659498862872987136477103888445014707915867497323844122063807149224357641062896181601778991820188158612642637187479032432340990796768696623147475846843952245385654100642353849887682356307342659183186013607069994168313271983082383108524739309028438527664184797756892660794072481968021470571735472863587408472894763371453986917004643521441141771735223488615758532638293891936362631167704664574228671037116192207993336991530649526642993361740851543395985000860438649797435799357486784124480912094275728641738321324280257934113803801273005408530931371501740034745093170064562050284935118735608061032960419957815031956857286989092994095506506060209207095459688020876643392313375821500206706720905912858986787286567010268959839353670173214247210302630236812969204106116538830454339623009092862138036846517939718457410886939898505452184071651580671144357369516279971181953101338994192672522399480123535996545248008470531159762605147925461725162951864878516087777413386929390173692386718317171886114478170557360562925798373301030236838739361728233794875313750749026522347018886902112105319495547133750870080475991916503581806364862522025145315076903608191607517624932427810066261882716131420667015011279769271491441049344935028558152277226082783141795061867478112010128748598237211066839213298939960221684640312088061251307422036862501066200896504478931392923206178789691672272498414711321028647138879198921372659114851360312736326979000259573787709187406567715312913761723536887559203841716090457604398241072710799507615367857844235790918018570386226980872043088139311033939771483007282737401315276951731119867605052016024709705005140745456925897284428946181373136176091574618090282492210352977673502068299549691994310893744576311174724904796097789002017451536297433000631562991855769389758968087125602485773614923674195382281320324141821194942611375496733980679746022770419904949977743524177135723532709736557271166889924365110466396594741988565769307236658019351479093587367014146846099136024214728226115927371714586741338640151965364455148347836344072640439358212788670707130450928359120277014378074303625343509251012842179898358722426043552124482399480946995712692227033923886248263659413633637036704660964509601638765882955674031333109924980474285259548189709583725106564446026524399953658255982073272564843956033984198306304797972416591544490432528295971143362072697162406966626022996757176203771708895096216992779435058081162008115940167665044360021787282127345976890595385654005757055635234004833254182048155495623455924712224150714010926238190526784005233278740812064236720429444214755915899825062615133987227073820149289185216900154452827608976466276883652502646444218297842594442782328126826409328594366595452144680612875655402519237779963228208807742465365938586724969927847148819547864118115452159239338518569818263940202442299097019125787885110694076259773775417132884299136102284828216756497840225991246235327538490386961772125548297981488697773807108588044088405976081491888764684753082532888809617010416707479149771696884943781414168673212244428950782580872507975767698628756230137372423816478002792097919124798218238676233909398326896519020068536683624921806121054592196358200242445371929125335238787639090219491156696636457570786072139027414112141499366116133714350990026618601538029250715111099528228448699209215040388850179738131261828112786917633005156278253124685221691621243642745550667321037849092675036032300579805094652884613196440409260225944269671970085225789895909416685414004372761931756054637085877044266417944081102049468601571853070257489314747156719940761469788785513101972037911374167504873439955549405406935914657524750244294833059558590950536019064345823703391797459720895599591795624849938947687245932066497037765408538829402776479329287194740886510491689495534941666700357810952234426695396454286903995726807227400900854587114523979017149770045518878371365522693163369250740230457997038530173386472745584666969544470773450550179753909963800898298357833253743335049357394261828040217117890616121479125669361198326145087395274183013672537098711896175100425986414390172999686826116518550562252992468031196885173351280249747746077393470712977216439464057931850610606073668711006605332307478159575664932895248322377494883835162013368705668521980636313135145821146310371517941617510669178233333007739127015446541049833496712450577203730982308886895147356068991126624971459540267132678365959017111950133463619896015172626428121269611321970712474650928630366407141204782846308585588859531911192758530373170143683167067564428802585942130607621240067722609874957356876250983987115435366003301959015595867919618231084910112422653136850699485113861881818016532138311815404081990251093203649786525591289072549031172945238060783420100622250180337429294359773636902062585269837571759316192159611723938332316565060447013932590810023781986171880484859224622071185613316299585318898802596497881301635719959208687401498214658827222883025586892108076051583472085911048476117768625900793393832189057082856944242963836535901722758947791936901566422765655667368089365477287024404751894559843659323362017640037040105455887908689712286894739498351387155501959900278416032061004328979875798588743976713600612224283528026432944801267631541402762854007268903303698792401554252861999914624725185121362169974514186778054204372922788800401136201985321330439978620600283760461496738523844540487613914888895255583024482141189158082138190976309324457915191059670176388258950489579755667379536236313995619278201295693868625630179184333505288837390626031460952536769962455113029669231737591387172566419159245906344758294892970019665718925940368444381951717121883712670253468464463508883034193718436164457467171708309880842976319887399546943989265161075640466966113674548775749904003515136519641730523197119257016164245436321771822180532044957723001318184578753390489168371544860313756420117500712171593614866396516163344651955541759721357776302846938096288006292399610220359079126993810928198151508570451097009990524922031085909784445314441456936224483615186484398959151438336467690377168250469012594022464330964103895512127234705023160780834076042725060665920215216335667729978737894991481446876264401865212466779419720615459293301791274452331678954394967414439642459218984857308405325170593232289295663664752955612714705394901570269470286406702722348351967464035933316784225817508228060782660156579782883901943325666191029681206854946647958518875261384610696807971205715863710078283039629253924100886204846919876432282681834034525974863151787747361062811138159312786140241370080092814666946491326524324086701886891315132640405456562725548791481357800120500888386494630608534901405839872989384612479668088228354659680809649908088191376485334579876765071968534860920997327120600245583466307995467028389148035195057574203318668940654128852846618865132864986098989253985044432702896892525653728896857608498663351347213241200541553860541717010228527659529881325133442814220786798122556765327308138786432028843380993226312053996566750914704762813105706278679281208454020991287699232388183776221614695685654166295662168439368046245250818796467443398704427066771856295078836110927614276713844996079036437480858827006439376156413470905258587753119877643043212582660050733350481741860159846203988787074038377884927421149298715196146401999845099408114400907053650599933297835282540896997577490241372999491149800124226053191773705383883425638238920359169723042259399982557938932643837526305176508870733287270938652583726919305046120398435412491044309366117534299871506102031065382041579950483291903038585231318628549819423270159783997443347934618660291149624390328230004892889582015890296577452042290769267031774953801567141460227670733481139150630705102105411328761418193525321205696825508781186970822320559583843225251978736026208212164682271893836952456161482469995899377933735258698717718269659087222315382611183066554309790523391805125312804991141217678354398398143127563485079910183373061424100368133727390203208390487908011613650984315734050629328470016062579016196319841063355986119355751690307168265253415169206741129435788519495491934770030416988978098930392103749289366728118131853289968292719251513414781819170744781871241838542665175628327852986923035192233787608678865474006123688671573800669709582384145887544542627519405188064225101513740242746058056640229453515964243078794351632741322580563516216855857925619186735288609498841323537270354049494404428383423480273550137668893606501636383776952518431131062302232162573012086421838455453766342446743582718191693195836098854009003719753839666753232325703389538852594324096399465623157132293127805189268491027550715478177344579462981774874707765161330289513982286648389252205994150996956251974437954934431576933159915498711426627913222839490238780314247890955806946975867005886004945092164140648664556384881046203561849861247624439118545751706286082641391810469263758070026665355869644613567893434809145353671191495707052078190305854968441904497593192549562696815605930001850025400391869476803637210661827498395762270004921725852237038323233820824436560911411029324538804179004723438371972852358504077537852630604421829624470751950863237919188849065905316718466623756174499034803723287140434379517876049276503422772518087563840952964902265162992359346861860004304158163895921321466852396678545348743836265408248064292926100679104932941676565693734793570728925910844386882245374588235737526217094859924204878431166235336738050771102746439634977539880534873989214088848985371483463701420499663226217915754144200444492893886823474134520478632329153912458293265396235440360431277709532248840316856342140855726519729705131995926136748975021414256386302070437354209510747322641757903839595824068553037692341051372564339910722212553577918721305080013224613167203953956825667269555616773886767934495896748068077977473515156935285573099280655917957651919852700719956719328913443175599560747944293731350090611183777087882953300928670310391761810194008062301097003081932608348476010063348099478971474156215047868341554069941212526582264247602199426667655540313060898695182022990486476292266096081786055504886692094544166426443066439279977951982332065429023943073774317020335246479984476211484864471917423382297988414289241134696512812969245713641643532931818069783077556643056765387877546171824195081781660411535307300885531934672282009751750428991918923477371442793835496060984270333367587063861687018014690175738258564230402374750714635223739422342572265448271649634268089719240643569753439704356182533063561617326459413069517745376741044696128018347485686283604171162887964148769980878260220521464811483936392989271290331664481028266562928687235390300004602124576642771562497288243118238049546924537191844754125916535296683973719054049713716816142021731183079986409190809721694187620495228941439983482348189406046403141179151444520100084745737001450390133635757249411326361348747780001026734445001106293998895771835287221751681169431751436141427619808623305785319591789734271630213324102484932404674318748092866093575601861681743072829858484312498315034414300621964560445076480621992963498499990350463762843027517585510758497298688280874275774587188566443073132481839411426898419456493874385082916150964373367711388472157931349064946479872800141441132928163678235418336820132802138570256717596546063220728674797939818137788504536338654291961911812839016078064624821652101142456173168194936901328389594741163930587107703779587063545587347158446977302948024594562305074887980043494120323949640892702735963147931209215874071409393718262242080510456521015117380848966556815362680770626849388542537925142009085215054940737151398596125946713328396324009380842917249296346691709291481058616612590278021356791144618864110208774071665159727752154897945314251709254272990907117491342033367238148379292911742942489580549409565156389909946553992453275939224480309868976644802096009106137179147987713621652134007071414662120439311470537749557855041252703876735084668765599893102243054813618194412237637227947683353132625765111019780457885520538961045361118598121618766020407402051916522834293187485181249558986775864000865107479290378471923384220496741197173260608915490242583473293970348790926324958442403775351391473409861953293821152071366915353994664255126555417104674343494169878386657277404549548208711877106160149101919126928495605003954064132130105080198629343545071217245288179559504107669098343985625454525794628789555162194822380247900099986313414002554952961246759887572712040563464119858479246140105469665343708470218004764543470388214958029382720066989186112636172717802611487711013809509734323724360439639856692356442632621866234623811523511661238541638713132425743216441667784112412983770099589876676975062514170784519702156325869964202766941845379572888567517130441321362750963614418395118083614310624919284451234571084211261118016888238167348561255225224244933669443352380419111816204029228067741600280072332156780423244851728994213160428776506804548339492700182683083009368681723133730755553754247872423954623726314368414455559054716912571858534150663971722011730091286153682810672888218401236246702925890836976688998494743676520031684974152492128863509120918361148447944194063728214590114621186073922554461387048708853407353385653027515780489945247530057813808185609997607244265319470005569097920254669769911679447808232221190390724074810872492879254267553034703936245904962871449631105454166347319882062483722574226772510209963161367237966328887591361601119868454350315971279747627077423514507091888606112982161406148045162405253983235759640493776482919616916067481772230655056781904615419246289626705169861161365184113844677553572169022805950852742714202674620189827389323669630100201826515106676903536004187049903417702350260067331701007553186644668254682971826594836484498133180131449696359899533641554506391669256424663019036277105269058747008693431206543819890376344702150346227246262956708759177777962212945970487650562177680218053042288291775410013294866885716277161651972180002975705606238247622576329728198615965475184917832024694389201825565199310834062933998125778476116504367372355433412130958238171306058984032007717150767606540294134412300019419985565571761661738410276334816872575119896781108802387353376195992628797473192987258608150920828677344994328041292570553615685948523649593158618262146746071355349744067345769486137718854439642994666972414236586782483976117381454651728404933674250627866843853830062144949884507929770951435356130589015657881989768662861048158942207697712283429800344266886904580228506101872916810069485532839918568106396608749626889152701575789420805826569357060139114362988155522217750737264237911130081510783887206739133156441763502129016253999222110884906319681327659001036258687014065872111825247662627566594100723142489165303101229994237083692057042495690849715747701532841232053756745958169560496560530095095229373855504016844803436391764069253098861612026128926453567985468020291517579393476416570968115708601888974930376626406833737652291113884005933350582784205357524854359379037365964558767234126884358517153427716055236955489276931043625929469666183082402954212302975472696158880546073856753307344000911426506797101691923937317445458883682396432187080361784035773060071547274290708367696559817017150274224516321474630000928065761828407558543297781172906935503425017914327193925959122796886528006683151092618023359385560638513582498634580424239534794338354266787397149793259113319984878260557695269997786142792070328304361508359696974104808509380435948099818877440856455335414269847160162434568940804267915708483063067601094642196324151476111774106877801095970584565105322705065682113853134036102928099966354486347893947442975564250888420849677514286348073814684437765803787306198661632788474896133349650995480925577384136745011330229359733738256267422632804098849481578712631754181939641900355646571848779941285115367269011640541946312789099718229355317464296414095644597370095354167439864946141366305521689014470850112271719190019548972827300866295616969684141350269328476706324253876699248387815150172075354866731995814574282494226448799299588556722566210219049144505169057701349293303644360929317632431387905570971395058661212126130936412794297853423283658887720061472218426574365349940993377842438649444807976894783762425382069905026127458059446790176665631942625171329368879501822780595601197330827237034520451979554720287279619412249881707406667064379487631458743925852084352820300773528162240217300732327697746536862885155675026412556882208291736173856816422721887067904669538368956905652043410205378216586591393533466378243624417060193053639586764548226049325898803806206290632495781810432260273968766135076814782388220647937849359455855626972937602043304678613424734661947701028873159410962933987956209236848656197778839386422555764798274592751943672037989103384636912704698433584387046717043487918378142585397025566158426912128653139354700743247299671237038683546023571572555129226912586831075419540126679400980931894949305246822368551936078922455911256007282263087858332531073465031858008179085820239469985441489015718287836212104747911856013765090539396198563202046138588282985472361012888668205897523963269417598410626191228036686166160721491739067034963453215493163453153068058391707152752062443185858284174706678302227304222286167264396490289862356638214712232273252960473269702841291807861151540883159157437871003225880739173350452347235049212233516063951333924258231271904733334022666808323627577590614954433031438390510757323171902179438532877045209610596142721387989775032068108308119190565390603960783323089374362103640393266000559359109239678582766771400376317569461342540883513436641170989066946257555615004410834190626714846311060618428497141079168090953617115637439944132017040425400900459260966751195904754701150553259725600945297223468188345494570016629218324198917807652130934950054165992162658952107595629485687620864232666723199538415772414560957738958374642287024824590956213440323969814521975754231014340273486696930581305707746911945198440066489297759336537593076010682408028836964891079523178952493146251718082854150509074663330112405367022014462127197686579885813850974111016763145085172979616257808045818900148593358679380937078537931968624706128507000186268823111174976215483580234669409922445314340665643496233269146220175504932536372457679695768211349966323858882558522086789506562795996054295304940280979374147827859768322338442679518519859869814317839126974515915595211961087104681100622673526123918884791002537664842495854644661752531808343827336757380293005749327982427257225115403465102568745797013836920545554096292972280889578637372780177994627227469674534452323096118489522789968393082473992454804393978782925376005488967649517237311285350781696153230679389099454537070317146676632544747801764138459231137799864888568919741852371260457688432502211389148434218919767670840472803725415756029048640952932229688753341606085990179380383343146061539112728495979648788173843337794712086645963301124503963019721942048223734720145559178924739431726142919906831643918375328556401803363303010658795501209559299722104742247847955308699930083688695074195762505920589912663659322647332802178408797434964596478550071985202768007538050181015730461924675771859926517313393575333073738987911929765707090947046616210859077175681234502260947660818252550505537518532067210615701073300207946852203102061433602545744107704760666857404518094342651498689040962717624700363444342295920244588715449238452168684992088449266315871442675634555692636360404521055104862196358519284582036689333702392193787372399423839009576614212156024180103274284865832950905633664995174085599649614040917580891623567643208964238197162988390009184076077448370186549963315914713837808261285846432155764096530546426827155375125104418951683225270176360097471652324509144602961767681423029722929684168838284065938036261280216472258004472095632049927692210470641888663040025536405383513569076945029469056738634286880821043144940585342497714781698952506302342425704336792980811436534920881042350155873922872183506956363935684693401584979649500423102971437638096196183183940953352595884928134821146675507888893564068248889225108915619806368916821668559953891887042239975267487850865287975768085505941138353155226887562271375683597659965653510283421282473464798666143432924200105769831104830718734749938814577902230734569534728705202121681997717554613465882160438391093467592209907978562848210724257111562102865519600260126796889595386368124184234506787607535102839354000880139991675124276835352690716880570919695836630873744906522181379444041220875461036153116615558249564273919259439058777834790718899543471210917869446237418656979748638601207259188853573225995908924958001825678292481623402707479280216012449254904009617292087726509585245352780027685389052255042237265602740748112013126467371479040815095810623908920440509905569109052597699771004648936682273917448068058288557128900372892418544574340960771555786173250546039633937553153161721266087004076802390777263781656052505979427537043507102952689507320883035060603470945747110956030510408492885050323725659114899462814789586819283159236796622300533446070600436927926668010906768918516932245097106900681103724144912537722397901015694072618753624664610426347836858252201493989331154698130575316412427678349280106564490002893411502580199196047554507175067495775300669150416703359913510380024004462976321065704690004947016001355721064584975099455417353396401049133999609467376474298687743930143069890248250437736108508437774226003681856162241337923153417994232763354256685271438807078745766581879537774945158656076220881388105559125343614226808589676720777892752840988283171617946722684863101511578046389036860719299946727650612859349453917895960467472466224253969694910817820905208173189623291688807763086571619252639259975192495873397809690728023386752340673955357898855140007582340555218701253573898588056743026592759766397764965977470158775549071042248978729228094030061167137870337106397457668127953766644415712245755227966728704253913843574668366345973161725172760839389072740709230697476849251787554924669882509956763970727864211464946826302560406853508411647167305338373763055313023984557447803314129420812811415654760862644643051793211084609416243492639313257090147907451998565587332749353511554706245746072134375790433234784449944451787148605677382060197639003115133820756486023652796055896102529035877355782488601740733315413907928577989008938011803092086572518342325753292533802523558291144501766231632782450013315131315606190493799508464662513250275158272935882799895210455158859321032247611109562683068082089899425280008956711456972232019136556962252822689338717219423687268456418176555289546440903262910191044169913176810636406323952834722282566467951229453071830890537313929932192920767900782247912438253957534167388508938777169551059032698517601627964096348606384849258339153543120940619692341510408071827376958143714334544447639241322363677669486041988126350873882449818004267358918840556540755087315071477760021615782948968251782112491795053922184528906443963844690104308188458606998721907279203707383313412085222365252653438235628207192727619553339307813019424837930017959810616960033461054516608731607151422394569202150417415628971394973796927634716930871188521745341596607059611605480086853627055801178823363175468965653981355742273100816165407102559404482851355910409352080056779377918948587433233110620128603349283711927930035994093078844658709679245329049655989028570022449579421076965062435437801566070474660199320720665969724615744741129766641482638119546099363917000306710991778909025953729147258921586263972205067902454864319590959968116158052654877742968967929870634374160050619415320298135737022258038147544566235691038144540677877813148081296284105439349023703032074928509725652636915608126775868982477702431475225784977373775616076038827220263876717270665748220794371731531082934438902433722409218218610656084596089992833006697635801651184368491173587881186310415297386992856442856824519960906860641916290440603375217636798674183696791914275166456681755157928877460036215733197868004210233602311610334369715803481760219035537234951183212392838341922244483763481833796976284110849859448437934802554529368002297547976116142928586288326866647003368160661503328398501914908133373311998731832277910573051271227615329942443413527318903867097997287209959544304509109757657673797586541156899287122942606304797149056489944427808510255615309666555069693078810580306868248450921264831374298241932283485667479817536196950458423246007447911083364713623586588569807907845429408708403726172745394774122312110840188623648510123490034597975053428332140013566406635320130475056574132498378893044956576837942537294511797346495278883615322258471664335973500118095568385556029536828684969620873258379054892238893032451274037467379538071072440525142062761586781689153452039500009782240123414013676564207314050447083673639279644727485204418405855682466370844365463088531503528097901234593648637420753668190151776098733133203117676370937091009256116236853678322409452070603094892517091272714690646852565250937671747773429920845699491715928526724449320545584745528349682912316835195219304448101042656315528476758276066359974405690180333179634341539329650434272832923522290165174855606526258389784178867017027962173342738244401654445115456476955791037765320593535532236692306107928133943715159822772982429680472982354674991875364258880995553269640191948363626992490098077851186031687360074120808882694453833306223187143786349751011477722517809367077173282210591330960605197761361635396211045395559566341474597998709121493222666297509504326007113352632730718356208023226444528453323738006968338942763995159229755441284720412131326268861645835757364749469602000190352160567903600647388256499577064155182776974092198678497208636538306727550337766553996719234372120586873691605929569429497665899011656715120502200290547226061131383026914459792147919262035528169832269728671442892421046904961542045528243183171215835096295581116786222039313415826911390294138238710948153014457816415230141101917569625740163884194811536634458802167386401237736235483777247488077365240062147608754930776841121478098428720766685453070784341816086685724902440965114346698885140852243873919055963453107099645228992562074199339206353244282672422780976608364041272792020325266627593036401111427678370153239507448447894256907048932990736143039843684579070964478471668206940717899540424476645491164825842598847252271520211227305828405364818557219145569068605549189974630210825610593813923615751856230429581572412618227663307576664244510327079972221565493596901028496834209069808571117228789133831649880131901370608699559039802598388669663999437864486448780093494040168638060561641217874786661721014772435238486800604663472268066646526520625166821244902257997460279606463300340213520358068377753766223693131827693568425505854653052480214463524732458341997038127795984054124449794768051076990213895782484911306775489040403751409720465395783508366244074180495694002318550954067670364650521870404543807589137691385062591136917113686766444316541753908141581991484262947807975951901307279594053319493275990450756384924391174897262156041856641785256773893668743231830990655827007866789296494026597345471363748852928865465394131649615316628531111783924199524251546289810699445511565916706082328940813544592094198969929538021054360155680810611273341798875062386458289150214089759951139871888315445699081225113457976023750366569173433539869482541427885938633277520517380149612279556625536221109701865470217438103203611709396507385322208711016192866794524354209411799066089457984435867512945198016231111634142193946738259043686168353860396706531910418563819181195273432451838612665297418533850390078217658670382007402175538302755700689461493428903459954893544803462555031208262080906947599085253341331283145282432193956328058748859117416964975367903888980715894802976731477319559017908462284911160109632412528925577128402948517624918979219199112516564025531314186707513195107740150008752676313570218158904703609211428669187674976837920422643599384091802341770946279152653606177308310682487983514981812082793895769441261202055257529662955520864873154603546608198092203505411440257306526657791167562325299198138460472605670367817796223761871436536131110887159405248517473817533422729433771741427961571564291798797769103192015665022787079236026096964168160462845824891514779709168442439927101341739545923596215891433504449186416766366108744519369391486976276834279890433671315332781677160810114073683048452922560909154876625519584166908662816433011346650226451926327121088699694360713221419184720427651766762309691020293468106590999661951909190597900577879878731008662880064714616151928764982483846299777191405310461288944290994547754782584958382047679601636798811851428687328629524312923199934537047515403609458785033460342317876273734377775440153351143557128766379487643017691738181471917692087819163149736758084625341953362255519967863190868047087438683419413621204746308085790959339702977966289298712840271055899218587446110148442649176394360939180606139751641635556844401587002118719451392784303720526067178911557130196074532618163139442330712242520453653209152635541886305945672156846224951640911617875757090565069612892717346127484853454086565407739352494172154878871481091729160249448389304508757996488864461941649094865594387641693003548043744394945629640005329948226589738676400186578325641169977996048625323609415664202400498033300389010359925474948723226491552930194679546252293937647229011823058304727095146708866569300983170822624864293439137472510470306001889215788576604082349334952268441851071684648123317562087350930452385628821908821257860058414334032950861183782540816492613250615057588171682746556069452060105288149067726232497240547087474332234123596121233992717922518699466729585068256149090424593078599462729464967156221467027856978868011201551421829226957884377371129078441128151233750088828756051680781205760638693663104972649786444704388223136029689705254902779108279795294235926307377330412417589011883027702660463636709914828724922931610697138408141730634091948649103843240608621763210123108704732895714265812037065266914805822698684578165630764922776901967174446649429149523006595850182961484067365655288778227973339939495801280311580072637538356988015462727785309069784796163714183043005430369804866730497796500126600765290722534164824879712693304441561585005744456337708368865237075983444456225472944020662018544355469506051980229430389552447600753926678278644786072268461502466048789073512622402110513234828477233332063007885538418929075578650276493444019896529034861032071255423938649345368785431900286179337356727751569037435798033106125849585200286840217951902174254153897582691804774163697401563749475372731558211764583656532022558799997575806100364023419838727116984222863091959421121457189081270126117129184473091169052441127339750571599528209201691389925772984284389949246931169133044522727322130685140787302315786751071592106947794625746371201825344504641369539509210897053602373307852725021061921201969798120085494669555977886227485616767069083922336328217533095904106242768627908143322008327799785982143510373672723085903109816335214217728063732990318832689478634624022095602425139391606242705297897893451803472618832408494036627727366850151772307192828497665192968891247516303884984793331146774565135943843044202856531520042384189114245323815381846075689729608218600367972823652594268923930913217072836118938556311869925282780891696398074302321166832537646415109604850045425818355695993247204834547996211622829052963757415060330236809134764704724031887059824896155923308947384697924109662576494214544598868945815950481742601334194022395635086607624299911400330960558146979677569122509189767842473991355328782130915100109671405380759723046883677023424857280797327929128583178241039452685267303872955080568433895280809061433188077783986943505171950321527874825389705753488482842540129075091568355705335880842453482562892375740279877094753810543688452546531988075841416321916219581322686266469201653391785339615449668723366928661639683005030108791594330123158179646086071893751417338239332559731070461979344599953147298790816565643837672445889536115106335390185167152763454928830305130413563649659972276521372922815406881916928591347859667610281480602928140197801569007966086882450298426385778660372633992756608550102921821896966727990846988122903555403492072045472564679392779355972339578647848973970915485291197542355483114802032403996395773254963150221385729246655206037808600033994808351737556334602545743365788593691621551457651950794622709944503327900300830412847554723000413512610831220622707926757311272063490303602922432201988800514012202076084641923125194879928932407144585524318456209182110806655899970747227437539485588650893022668556902482851227949191238489814432886032248996306214767986466890534444721682576350164119994484675147335251461147366031552842909164313792402266497352907406732314051312857454318790437183069717524865628014091852130327887764344633773565079849623432424398426985268310751076138196274702034050514900238372264037453133380337752851498937581878016956459441747435667728698359579865789050307648162280364044196419272060222071167991228430928040995874076432023052023136200224569786921388531626598282860240417467385128752742595995547606481592053251557628538222949595188560930409295548164172837558004731269328983114662854908299827592085474807111918498210744148573129502474353929562342032740879452290013760735404958141159099912426168197156660515982054000310724490251546505302996726837869290674148908294077359389965232375258997721831095596630257460560994478819574405449656846630572580487852241957738676405163573873863159139006929819468628369268429269277767366453265147052072968750648553441557347401260031268886296306980090819782516111389702963754724888971616228819246723373146338117916574106213580161455857135027607706115384675401259328178032720735647239613117534211554412616131752746808881055249784891381178537899524792076715402214715144912219214535682643287538846101635502986953235762235664688327175288759698249058826155845822971306705991379051471805090698426707812891727187638668785109844073796291691077415188619017727195869603581145883242422100668534330575504915040468286482506411081252871100584229783758802767425625896035004500770158261933569957770743578323517040779737026530125570180704057175796729950006469493285402581348478470135792381566005971242799886890807230211750222290442522806138789764034600043635706269488114748519026650881970514155174630242727885300683556354592676894871196598454158611481856221551764273455578906411135073622466752927002949844468102351325343807223616255961055881448880391278577162709980383858263229824053619522542070458977811855902357685158805280215711561970661113095228437606275589051673779136483001316235944140710236644686003556644999991402511659628113906708981255218070301499565035175486059500819248531316746174170719250987849946904308554955045397050750923848454653315811045898339903030757941685638570373260161673739594530119089614884043491821626862874051997922269999251224800521743722421543055556818130019159164312027640693812484771612971678610821821228932791770232591850605502611965848765694913575856617583125401133652960335573600484862508048705188690706547912142201387787521753971849662080696078956505136923137243083398632289873601745226317981755808842634276526441077363946094473916482989248070847695483089595596320993900982582647897694078256176992641329652974060022967932381015808721642569210080033296422895207949025704845499228652741472592489295050389075917443345888328407717801377231518266439672235207534118403115427544385513848924828895306320822421581523711588755274448757466145762755389218416938715435079734119238797786688678555349700835426709352993814396231471466457816426222188612000571033433078619164020803431184291074081898829181649383459105878789570457826954978737411869708752789931618798191345532927040523507641319086444275007773804854531393533769023634740282585091144443215981819683760327215702742839449844947134443576108412190934845536297865031587915480864868038276463265827076024391155295006701366184398989004483909232506671245860190863564596710508995211550130558743782266056393897812438928081444892062029903410181693030287465451010921694693693612767966912455380238529428376261390461965848474007793304682370225111789839337747181308385027783731102651013619520739887262979817171936553970554188848560713065041553715099842023180089212838364423929623534996238884196083507131023038949201110042706425312439720139970452971412342516067869919208009349511079851527658854377878105652460999472027699989721381175142933387944172802235030935236508803497601100302716226811422025203407854114932960666897522144847686497543731132248870230655617086753041959892907964251546802230639811729413466498746543284161675918992370554038951587405913907277426450880249677049083380063312694186642737498589627444491354665361013912118274898175899755111331228337053692507678238225125331828728924546366450413861656003821677372524163044208914754069006882350081501073002983641008155486063109244824153048682539161781218148454916655781114626271035915538352913265855037819265815077805165643651520142750754873109576378291453002587698287468366785387328071071682562025599411632011823595605197603733383776455578038868502443077021599751618890092842260208719406968008575701994389126275374347953251356535724978992899279195962717330898784167931412419195539802709053156108352178396960455046553420782825990876447309400524809025094714045152462094069707878304114629312950433897702510097557787467903835261196182561471086359285480866054892420000195719664207676457752783194050537017774501825437193631537021051369556897712599100570300872388824582546716394826597888456055813982101083815654107755966729444310927749214762503628681438466427402499375359807999598426661155477225679623907865500557530799782327396586853491008388056848430706646575295292696358733179837446112268356970125886122641535557645437779452091654423316853792072397246814600989396430350526322965466007688787614336228667176015765130353302520335933552653178921991077477169454622816333084574010581714969779759117393470448116778217003634697760722728717364675600205428238289226704573026383198857525090493301939819562826752126553715013767856323674108893149339440799925609259113805549086646208366503375744669412694089912516613187146667390973127275408505478930315094321602040546123195732733408503760948856217601676448810291843599889050288037352538889285955502010127344822191445425045738125064601819602290511440487177995213550762574850637178079604995788582814066748802470517526167172544102454089749022397162151649526957293924913004330974341531214442850846367309967016371583064647081385394067558119594974247414508711317418916817023595608648767206252059200772708451552534263228166784537618610896589432799520348242644337338019115084195415538581585209403791635492349411145321214048555766986897061605016572692535671652000686263945337033034918755470681934554019425511294391915630779087593842811054688647291989900161692719906132405479229974415438210317435354121352617360944942710526655648121230558603683258568094120751822260153119946629547711788116505405592824152384525911057613426142548465271044150070429383834253410085773230202646024596924060987082986692964450348296381226644379319941636471477328444742364681984249642858044733876548561761973334790116731353736659060875084527655304632672866453826747359330455912378750503536184176119457418882061880361888217317015932856695674298356516180630809699298434086532814320617590186277857954344235265895494766871212967198799465515953700822227371362301024333192649904394487675782491024130820754369354329848582581835471638043606650488317506588351560754957125177362226342350201285238024455945868187848981561103045458862799645230268157229631773633376457465153526910707482081477571830013189337305497555612993225576474211864748526456326077180418765924790007385921768806341827637585224730955599917965522658071107223889106940451604964006537056929672011966842052720107901241007379208674562015112531155817174664592250852613888948979869323886932366441796946218579523165278465212805302849214416058532902863551905040291709327036235250944579726266762546668479926061242994402675836829430451898560594180648984576395165218566475147178720562298608000899557767751001580047203646470919236369831525095494038315272607816356596581283776405682288697134116256374516728684671879805793556928605935019586869440748458570755618713648751331787263396765767386368471718762120637076830388827869324534184665132590225659373491625762582291186481389273042878262798217673412854726009963204338323196104280489772332419300059946290728549951476549463148817531805175131332067740260854769618068564256417636141779674516742670302950364169193237172055719819134187188388378925924484070333194976765265432430605664890574772641883266331665978150408871866607315748197671261785477976341332425072000788454167419066027540808995734089810161619175028386426761220471941974814392965820185283823820696957317097978409133086539250906033801117221325120076502770413660833893160566441982022356872385570990636638116232369898658062832432022420259975065038623883965364273871280097734871744590673306230985217118811926136852982997586821594364804354934968596449247087179602540514496060430396355367475822403669399372229476071335927338874840786095317399043984155042777277256355931188427485961886362891387379978012680436712250790691348181473337104352549093421920716176400947884079028142048358829552023447807572844161523462904290484122155372323167073095145139888080842096065387845683442981575648791898385995834127536539175761214747745686190764664110864179424150641471305460083926606107164263902259654309453526432143569692064210481073009368790910924074069414954314879416455677686646124590582825728242348313043334704765849047710207454923602531282897537999824841637822517225481499635809586437564093295737939574750920778469858601702028430631999025867994032418639446023884677438780698635793177648202503979100523609664128348543964684413019160477616790387707103665356388927853402039290947493662800898575266386890583135177510980819461623128861901338491925202018501843182461574118623840980099458505527648069851176198696359695133960171179322878674011148489728261505869981946384938577209310836922145912714870940839990728565484466456364235810658859058864326411254774779602645489575787383020060501636569493066282363060166226073400666502572386038881878425349387437379672111963548471412166481536319917140788653608666750247041295845272897780542131519053098294279973906928356835151711476634041428508098897345307758136018643430846439047958439353574918049792146323752437184153156748542108069514295482705354149629394706834752654411768568775996620802739060415356552610990689875804530358961274068809101867149160277705719507209045304827610653544695717058688570070762044916811493248580414833415905384832818558619096185595595586630779525153384529312149275482262725511923223189920124085553155172022511606907438678088200916259497628219851183690108678241610357019398255429281161053517604811383316980248414140180308139270053031676453448432083672463134193909528707158732267276270317084391333074224089952521333213759452412630733632447676459660074662926141812271433452016865381774040563044950162149169564056899508032663429736122021069408858849996869767307834592591525326803244489243710135770430731124797391211537167595546159814651959217202658389303752411837034737874641088287754319277871553018978423657850652435328576443755506477618963379822681716848364611778157293456543179150927685323229601251437317693154528757004035236425701271794702895302352061088011850764076310884166880749378427490677895781692218470430656701407376648418746689153711519992160221757917121539460766117011597699366515566399357539178177994864584657088555207815665160553522096099173088937002806477072933142419509261952295268443110264241673584909902274066190076065548900321219343447985261259827175718069396591278396485875988416347550922211071814885237374712947523526645662726358406423539032009161597978626720042274125356251222860737603200562888751545152606950753130652864918998305950202812412949244799793463416030422769928124387594910275867601647563403061362976243092337278339441519842309322948978306118248969265716473785085037532404273173592610793885823028504973351501287420503096080336369555176803776160770112811626786947854456329593995655738523334099967468593176086492773410979280187420569531189566477725844864712857176856199163522720607907638153520815065018609107426907031698342132275879773481520323867514132558017028838792143263416092927084466397210826099318094125584436814517253118382161774802776655358223364028740957305082745083957492533199254491401912663989445638959828177568654783852454510524151412092334360835599723572515168943957484058502378921471566301567800923433747953486426601397881510610544724168667736663183411865049132740179998119358875194285362075267707415340838583230635714629734626272210793168552281212564378952899845448761164148360381120736346470956115932471617129214712041334692432018272717453343275619969949126810344339606266194165227325571796798224609027616682635123276907193813555197742808846175195267045466745376149148853783924979343124470976942720624250265247183488745249876185945007736086078426541643489543725396331549413440125811046047699867871963179951996574051756160810975930342526463227822227880098643093327415538902597773478176072986447633572417373879004877533796482914507047571180568061431417443798549911757430276041258803555057928158986390113609133748292955560100343557608232713516696523122317570616432588289297200189240470863834049687722195071962493536898349668270529490877351180789488197503678721363103296145286391943248472771799926074544855876746952476844235380537676652205152914331422222196733009442889388287405366659746978060555602809204752847802251354712038755090109838365596646656824664052402326072942390779299660780507567938737763490686769279929138899958691627405163926830324290962175015852096151345495145585949531597031261162115569792658968621004898169153928592112583769830171728648124219411368142287947991800462267191052794213981389186589628772862107234385893168573419665022526924787316782837948942809323616303615697816028890921247736459398720483542337419216871311707626996883272866187651293534779927193405850650089275706875888895885468634232192874680676068085367108572575947491784871191203504374523599673038793788658644453794567381017591946819279618897842435761942794604272334514230255433498779539023121598608747288844091373049965886261723855856665693440945823668692312580715105160190587088192066815163375642093443900360232522579906341722994599944406140764587385008159006242250673883981510382893795731301518633042197082494811657550390569961460006328113364301694149583026716459029601483328046181788941074300171320529992035519443444820258414845016804328935973415169844949218503492525532336599647972873773734483096829509663747991302555306583688190769360288448755637159869404995165813889790473090018272945370786031718208269244049211215074795528810828849586912217053251965294039758074787108624550758035574196114659493995831622239337390009472365404037015578405605514160865783527198632667212128059284382528546441490877045918585557147696340140278064962433149945636362751671898905550587119921493655895806076299735247563390995235138973600241847764284902773262520847006242805366485783027474304850042117531206652031653876880271694066747237318834057925389987942460058434805106794813699470551863616412097391867062437684693379869818080382679475135999397289319823361680321786318390993346351435501129755797882805773075374950774840106548560042989097510173440210172286436461546575854628301524490506796294165178578643604257451511089370860335057776363014644199016470799781724186121339627551235029802285046792397741505603682452258202495651840098216414666592707248734067531661349882192795904990671305122616913149278666515499707950076983805266931630025179509654335112551380740500486273944516074385388141917579357674397775476773979336097171359475414748975639626916016292521195447087009617098493571560558023224066744922489451307816590022003151285807981776766014801222965846140556932826665837512708870372804811517394210515991257358444404899992199726198142406113639427048472154356905899608340053570488151050755204281889614641949842439696102008782675695295668212959800823471276639111723608753964597684470816979084564044299733194749044213016374724300469941733284670577084905135812283944463604954957117941393506770036494438403112033299468792949106655462780631973602260963273199896090230355500873286236238495535523259467667097076036119796508681263889904517444001718268383920620166442377028539422996328447073495599883932944310738331358681286251891444040612737779095107155022503210708877921898646954396209408156945599099599803233072578509305489787360088636280020232301833048313924068215277073151183112042009332258113817204662307567958865754364053204006520071732673190232017569557865938570773393771319763372893884044748620226401490954077718848262703843746190173012678559547035080615814185232887771729348682025577457736725596754469737347720884246030760112976445802202398971889498076437326162090901828710231974343740855940794986921356908304828071054141165518419267037579406517378111721348950048987405274996418409607624488111319237356091530753090273562954436207913594336444757542027613989035139001526540420081279431172728659042324462645522793520086684279648786938261399295618050261322824744057684532286913201587805723030885266998176678439528911507258482845064879348050639148140319418146608945175918016915919062900085582964425890488310018774748937989472698605998128141067274071036445082796146766749018579812099383419827818934192784026107097438490291077427920761824501345441988127005821237375247018377434360603111126527519758829977419350783821249782651288709456192516083096067800737572674735175961431926823254924800491069147003206452158847224861392614073978520089274585994493579604654512078865448431570937477291535458358476477873673821004673814743792091236290346204040382830249216342431461203373095605363353513274431612445178823071612169395750798376639115242618094362749338498671304833221062789430860143274349837701248114812505070242372406792355721458411468528813427746793293380884140160501721511125963581249679920440262374587417471004328103384926959231795241544251235654086373724911895979591414872282971294200909682534587165016287882976725301087561175167119406094177001413572077523586585735008826248674183412122521883328200880962342363809398616852444192199990981965877932365463559897838495701142128742368787230110506408236598444198181435132708258078817847749109892755877642615482634672835779616359638375441165501542589281978186994291047191050952692885001801984678008793453190440743607853540751256273625672567331474281287462774551860145820165539627132096534752655267002865480496809485147573932327818749640740939272914135469924343725692371650861254821757620519204190362272766148317105256998261074022656884956725775848355560057088200251110039362911878291285554303363482029435809620023246398122608208866750632319543938643367956819611831459921426642899309373372992309192089647813564330457720237493619721234781669347111037748431991112829545992122652320947825434522519623324075280495295375563687365164714606994476821370726150713161855272753296698360780662175436573915321497425700967135742438386046943592213676398324262289045190140794739057672234280864882438463581682591792512154964924586968203891367141360490010318015506657965171042754128247793850825503503376601746922879720071250983672201366689472189668575671387131050194971181377811441464170371743801350197804824750883767945353043262749957991886031537935347801451227810742804449117087099127473532895953485776597826592536948438022444542609653292424350330641616098716525914833818133844755346008153020260934666445954257386179943497998801988563758634509190152345646630131434025899940395381672282768657281939472691868470777577439291375802300106307253897473917523572092402591109664623255408759259228529302404631136241546667447888020267661928949018262358683653102818055826012440480930832492034854246691738540584830423932892895540961849757515713741184476921951638421350153951200305169656551789952904153457853842059357550020303488212863215602630413904017633727385445284633847034621308333074191587321663198064106381064977067199643837855940805195334751243228879676417783793832312054077324129014956636824506396596999327351638503375702079501920857298826989416680147333122793690761283215504448786580801443620137120665675333250877837567000451157056068144723301717486746308780274191241269237783755381510334418494035646964346467132587565782294954189640219267685967603669466581737947300040593281894060246689178019684134388178882702908239606970375941905106747096931991651442810367799649955902433369305678197995426485227667317675388737716588940705668728118112878326708441407774617733932317507653031081435026012726543539046928820144232921618281443789708008261366035338663091747304489141403031510640779862589302560268839416684320606939121795970989870949967033702700828379882609163527253397421035922730090600557023016316827833005860281442106309181777457134104487455040279789229609647198005202411970907408899188373909722156795077843089135144942923343973562808717756652827583368251975708039225356665263112883410425890645646748333462861160874195377967080935774508971656828540581749781853945425737196256842149334926011726394840036997675954588843252318168529981271127731870911859088313684471914455749000127535280315399903817437303253462456923588037249098296378051134023421658661654072021223132592974815022308086517177239529080934145883796581404363424783867175079834608001283351021473287698414826230143922228037969185705718456491726011562224532379556643178556964923321046634926755298110072446082871022549167272423644351171720002371678992165821596905117640474628146325147005821541423929417194173941883825009109697166368969320007256949853922480380620358092474984188080414371189958358092519736456390448291670281484734491237595133675553692711214718262285300929835216426437288397165272951438372504573311997156195270238194206376832575978653001526336954965459029628030427043392586716792054632940431072425064209805633177164733211712934118839843797385487386786587014701993752219104197486780083058129868479771113647754615510399501361622772051166967540244097153724053341059474758157386230294241931710916552789634826218889561024101679442219785032657849102765253950884985687071659761872656104918591255689497234383424362603290967479706158816990420712600793448919585696165578175369512356304534344637701574549812527320124274441839249859445054334851829806158619854227331064788386873648423339424604379102068902021539183420273956250596324183085470790226512752755442331028248117125762399560129270392235103269916006366804514269261917982484794440110825621404204269119628566115163071540348365121142677543286717120293193853175591551491579262802006600721336330881069258901646928335805116470239284881521032515333581508068343588739322988551393266189221323048682731391185034185227121895026699695427766481433326739371704059286699534922595461446493985712877414921404560982641779925909430199847449236966271436285018190936625544276039693387794354777470255042754909788594981657527815589813758495229492266388644418346621524563118112149347626744035375944596233922226669157417712844640395122146212585613868206404066424822573925511801363353637639454478920936616850027770595647946291153561981503334977565926974066834649122489013530610360350572058779676063122142252552667585576447381127795914939347418318203692280155423811860865669945214602728866631126945753292337567842698544231301154019597732470212588673785318905138869631220709984649122599527225952414136948948197002886799391335435556342776068574273171345043081510045262804678804240679185831884908681893165041370490545186083107644709515521943455509639965324431457014840256339204704170626045084970157458151666517762829571979770341815923120140906735879639076576328589072918514558379671917741866039723352986380749884520436522803102884144498286255603465092393794905909598393646862948762362230662701341007807053541645691843948519568163976507192128844368688001898821489371338593200535740072708553708558362050011209628928034707778100739503530777722566237092144988674899952105256009237428531378751246407411961924482846054593194321598517208844593110729143376787455931757275977937048689383518790552745379744467806500093393915433989704733233161951879669236061660505577490333585997613236000101362129834730185031009583153891489838134184500311777202846149895021646943908822252548245660721362966993744453711169245942084329835603517658948386187811201899650414754750323589121475901751606993072604698016995756640064282467109744566770132086589841304048187928558436875584243846918797825826997131612094029834777825516179778813923870087330298015830482142066897085611565550057181757293449402536118792506649909364237533880026234073006239545732730230548874683894614395121654358060192721941705503218695634520218211038733305008331239999086957583490973041439329511294825333060141549172233118312064349488058747315936802921822294014750409413393169128338216703468167877936223005759281347812189859885722881958114948695807041271454161047373766582622330326930897654467414453118665556031666933004696600970038275557004432439770199804319838157642764592279659504977120770967981543848859366618370319378897735490686263134083321970553744361022080168627829409859036743364605458101966160017265096148263472759088622504882559587138727092802345247796502885405396240345316480687125632209224044871190817501337765738505863702417590709185187696291517771550972965238946690985604784565357426986964599347422604906303395798454793826872674872920331204277875905518890040276389563204796084697074714510998526447207572139178215385862891636628595042510595941366583053884869916973945198066852189373168373252598609778664228588105740045964264852988005092809111646508119063834064684490901020493556932467156040950040891806389367949651208505723142657468940198051592660270403654495873120261854075515075078884461347282430584262490387293957785485361643544303694385620096538667095140642215172654100378762169873545005312547487976368177418953500929986409009652890146821267895465485193394398041227873610636408848302779009892018340922146939439652820322387046133472610478760365069118907160975928048894427100547106435718518158946384047801064161300689962577844302715584780229139256070167361790871152791628419752410593606613630014089296010277791503278509834369987402129798413062465673639940936665130296569514690550330890043104039779044520116280816985980233933764601631067113249183223823546496963770920412204692586403434021007548091683213394616798104358793566958029294093999061162068269364124848405123189532997381933674085472319513489815456582445564901752735919002320271626862546183327677523525842132662123157059610747692467573698926475231193941372672053679401655104667286881198127512129859269199964236097158458127352136800463448242475953014300144717232912787381838551396356708971475686007183700415919506700008106733015471348502607096913485939499039692928954759312965026686306243487048383161979519127876480706714242305859350344834776491633867013774243274417309741741993164348364211702062385957231470760691523368831152483630500493566693923070073410708451298386542994291032343178655402642313404452229100101698379864235730350477728589242917813398817070802286515391937868901495037695730814101767425877098274555869778601143271612794399144466101241984602169441910916354832127236262024214492088141783508299018863348117423425488174776999149460786026165992651941987686323198945618130408648277156111177675121207471016261798129609080633352597549019459755118695235753574365179462821601110204870524149987314315926116200382369497682742009492436365729266866465481744398201827525983244178864755522949037390000687464600363003684657233267055780366575538311939600219140506925128679798323819281876131009787318595479511969662383470361210380147758231412615503495548584640333838304068019837246775180091617224553519667833015321167725748227530202163515608086915781678481094554852187058432841860274617959477522909360413365944670700581009743402938916994037044483832369234978417121825431728339780470674334384097997461924017794543013630493944057902481883191323419094349621504358549572598174019485318676819955258154528480300181215676063070152146087361713778887041655388198395216282585027124686811500920325068932046753281548839309928457910176028925510583676166880459546373919247049507199040348155761790988204354966423942356822321106543777063720056914839617699963384321019319288468990822776629498812874615066598538237030742134471990862268167803360994182059768920940761125813591244667183516177882984383184885934072048512284853887842763750260025945827441504087835296751050807855642766917164821354855901123314691434462645851834836584148617611043187677415717093308413875270695838685066485194045647500770465407038704336713994732592986976367356608348373398187305839164791956093976521375207133579812723265060269864546438583569301135188210845932909577785548277673171439745967422208196138409898606649158668846888380417892657704916060195904482423953635134148631516092522682197491154431638673923652515716308453985241629018309318602986856786949987123678706847729411558546701662944964932218489329713908159505898547907308026336272883417909666123996809042418211825015655242862669728426628782979460748004622344744401455948257577044962752154293327500517853097383968882534930272665937719429245214759089916126519532841423462530195550464207557919723943644054165998032265852039271164827461857648472873078311175622750286087433933898064093256607412419876158439809165980904313687174371787194576164456216890253183871350036701751885973465072769973331831515390187138682002567390010327733574450613075607324218698746986605000098449439488188209381294205080618727043754363333334783530046249056517329597932384354312258909072353896767391649065029350152349088987396051242702112006312455706311626687224034168351056365230865223655281511546513508330299638709386196352174698710208617270718108000275752369397795481360745141666588844037200512280554445226387204562234938007525307116729305695173284381941064313016852108642730897170043711306165088609390171850221928065899161578630300028429743520575685799317226768597212103987495658223493521921407869892739406300848593348772316792236884154889573194458099464226384222045514723668466025605849943280121071723780554733186897704505016928472135669074702346665751756745100264663034645561556656432475590572329369951798332856351840457074564162457492044024007671901842519839120628117089487613789929423398288948557008058582640619953763363592434684697235800616951144468195131518666540765648752644136425986113633041989502356250240024991524624208243677143127583108785509157233870441385099121511105314517260453924264941755378704338409783179180841451399010326635855894168206633318366661141894736548427044822246887395142649907173259381866094132864326308442825538225251858580528875776447018811162875733958444036391240513686760362980218160630530077164757720962066340990534954547920713440218773229172156250572393120664598132195535886017987986191537051645563417412798251342881472875265688542753225472588096508160847248107442618271089869137255720429397671939397569585911659795159315303286671476265443550977285908862488758040756625515454345913395256564222364671153602953388947440873539150315937038964858387179674833033929697877427635865357105958036228563714229705603553275372578286174872708837536538154189808186936082424257084721569672245022979677218851053416964250329540470046024317527448275077217324353767902692277419114529307762707001097684939105403663919822955006332451547462301416571103348552988414671504290381607215972623345697122690520694940897884090776349108544809720737542832317412329521123010438286948380654245308440407030587197250843087905650375905775697705795290253837557286688964244689273103601331121003617457227036130510496237378201481246521728118997179919409620488337784537226882951998943452199435732313776694054624186672959114983848582689050927518001206762391541169823155901970679741140665996125605643120205851802306045355704753251585117190720704880317335672261321656176001823260674756501263434646770024630414760181520218835077846229179417668402724136264691726352566763022808814018196442747315607389942492457037342248523927163717957340855515344005454792347728666950897628101680762050602067475301669152100315679203024803374703189219924029049943032065495869777305674889378747771505244309482218548279181722710651454668804497276866608551731533523644805898075731766609331757147849668768482056711391870834442380329374640835977782990765801959316005135781235228169305841638598242352586618974818651731584597691757962071346667228355471604443171653110913114107091576406027821550583632169885761940817970207994131774791239870821348978300133743450679092154626006831185757906047233841203890119049604058639087041515325289689372109241964217568157519427130948926950299568608965727360646296226733126174576507863777163704507091575661617545574872786642754007850339874141763612387826351573983017768605150766718978946740796202719019188658252602164760117761257690128354772590912188330284222107058493205067224566425579150328117318596744751686820223856399342219362839025474531523673232533373454281643304150632358642643007087434607114480878686578643177346977119381290185057229876781010798150740837616774731511572693763453209328595286120281023439809467183039319766596522471853353216385149244782311445811073423870828337009563841239882252481432339010601000088984925027537100947735185876662286925861099436125623790095004669988501997253991960865793546210047371083716435258289060338422967395964324255769695274464770024332217165265775882910885006021412711903255734940899275025774185464317893378425510268487186661869394635329666141836577046545842281746743208330181916122771121088543975848345121582340109599161379245482716258121127198704016567069098692610420235858985810130935838361176224027424723792309155005841126522840665928310696835751187444178097448591027559348843915166327890767509573654283473876185346045759201942980963010527644729584012533544493569685761461246325710554750176676503203017887980757266190775967004057619534916512791464468198118786472036560515072336082374532632178270048539847937956405753795530810355590169214186453316017933408066464625157418044626281667520742722643768144335407538173215006470763373518273752025068213500088895109243957909976947007085293955416938070035892861113871294063674655709952253693436488722375098459452789650926365899502599489701061878519367148440041869803658548281151018363015392600101346175851883333372769049064922803868561001180018291705441865639909188983257501698225126961231407934401413585097366436750495593682705176298075900862615072485602092832169011016757884076938266896491592905124699925046517187774870378679619911935175766820642704875874208007037274872562415544583596744885420589242981293321979785522327244737161362170187442233988754037176719307005018512232247947785277948254081806699541776127776466329040834909422804811490082193923077793206772737586928547130496145199004436714715628496514195296151655463566713491331630691061869936600223859284610150442634849517951119233566344459760824878705625938591310017061386931614902607890889075025640860318446197579935533298016136539594782937464811430530192715472025343352464558320072911416833518751753742925754825521552499016644937146836924635678434867223833105059471969030236913724819358190083487037276422770576433101082280008727544186273829992110798538740571745543734905575510230329217737441164507703144670009192744561383161286641653884072473901562733135250279849007406940101680082052533314874854874629928596871556779297057955539654760508535581473380588159318323635066962124241686048015927248381219227223679514051633087885574564742370652447600403665305537112558039729555948889255739948052426351673537440504353454928249681164900670969908279407614001876243578537033327055095236048218972973360668156057593959122691523204451335507363057263569440028825854013648833603216465189050534166224796190958183917194654367016463194725533372141708200098846542981103761233864582456119299642817637049997926530565337399117852750720967275201542028986856309749141497584799951651998923448337845403370759025958137454474668987104878664186634848749210991542695820632262045709862301817941524711007774857152126984093697423535113724151472857440595592130508317857389713302764542263802356796277518368250543104329690766870850223193690928940304729988896619147086007501962589106086639560210648722035820360652949225971894054438710393474015023839800097311025150712322506233858699953707528300708189384039896334004104616776466181002952346211141159497122008082757166956783301445848383105326876107999591357252748839798175183983149698548751376454346804455614107435601067387507364663528855983499699328023996660608241390130168823969656974397733186552417350017846759064143632346367061315774599403685357508430666617399697260488579315076802432516966295871046869950087618330550473933378232732636803776134061859066805154730844718641151084696093790742248176661552497193748403731743702114789684011661949957497195667826772752564973338290811451028281955521574132117611987223231588653029016740411629608977118036293667569897163123168369650185477415707222000634083959164838255028205204426584384978784281224448989345765506341687087637004533684055308617185735377505305385434860338652542995495419240722276009641457592491390203225099496107040011707970588670095139988719765453350683591018592514630665321496541569620410109974376738630504314196021798735802263049829959159930276826206757928842929202289936348534010301365736523804828381932780509321108517998050987316412184783167329966100692319532314578583062328263996150332407212211928173489412890130524406831103823518427656688617775715926631225885413188995388128968955484772093859182761147900908144491971272985136454008993950164645508270609998509450355531434181460752426545561709846754450794827385454282595207658705467315122746186348382160913207351522185685763369732683570920473765024429472969457078828412439330538279870346850434354902157250551547055572122441516496490035857925282164642312203864992522123175165979158068083292607155530881143658341183772143292230080589407800558621637621875399773734659863543685290702457492738526863663698429459618988331901346891419507141094113114412384325668413813462866843411396690375224393282903674238376986849251129468230124484244611972489813363823321614792125713811776749860735184403880637967546169348534176067947712408859527481535322775652155909222171568109501134170541219396674526252468684511045054263270692282860304488285000589929113726390565186804802511173714279840235176826934873939073044209716861345195851358067559888383569224932417853967028930079517731082968739635004745718901757274684956668065823235094448350222638195223609207905372789016081727274271654414721076484771143630679018345350848076157381830619362615845549587609137712857105599554059826403667425091728447994651134501370165125553469934028602685827651101909805771679712182352531046494991749854901031072555540705087697533630543170268992278076351581474934188731002419361172386453919286702785228663763795275020286456948093330520978378958286586980317180878871380139589810321517916458830270877196716925519015470157636699478997832566058352613826302603726931262700229846429246271023561734416078730611726385442246176922711389315469093843426262535144869696167399328641880460626899472055072152232429847010647692582300914589155572966484594072722911869346650166017712657433505036315570490138035161450766741262716382431308546292311902554902292371038344239502164436704376347101883652990163904926775569098453545416204817634860629041792973903404409530337011863576892393070505393131388102431582676178220128186471722870512899126712715332668331924911236671385800401585046722221783054496080566450666365957055205719370197867596503310352259896895713282049978943612542097709832277948149104540716163101537249970225867187315947526980660060156250767806174555240187093475066750564770446173381864419948568568327957679880115711453603180370762357497770624886256521771992361732542453881263470422259465214373386252715571374346759841587198488374570135138921432249823877003077439211455333184990217824805123195131823819314848966579297351871462233808136109465224088943062869904736316883504912469992719328761679850278851655071736780995422456469870978164934571548294823339152751873465355639077355502470352412711732462919176902859473877731864518965330828288954180605881675470436639121587156083192302392412651942823082622234040605993687241111957384071606876707500013124831593448405660249532974329120929218647928263911199493337933790177460715856475762732433271578869247544882433578989811383631812012243806815326716783629085177960501116930256599615662249337928977169987329319009836546945590898584921037557088419836280788230844792276207326513319138826422816075543003567350981080708290574376150865957241422577310367072643944706047181085528110637314692511678271030409100000592051968556864446631791404176486648075911151041945704297932323764859754887474891538626811093695083358085712467417745071695628478373218110746271904933560835871993401388239204934934700777622986091628004907256657447240484841201077750983652121499471161209972103581786722455823745971406217538371055774014016976193079485125421644845120131408144413093469155554039856155217062009787170710648342590679304515336012436316480725278608404568182890677662026098921553723374547455674729861600385350823153512715506386549537876089860497538091953707237786995799810912617329513659116354825332136484361506877424371572163656943826595512715365780916962312040876094072510566413465782426656377378025895512806681810365675481508986071132163578364520993250897146658366551370748200747782484300787956342919765619598508124584296055221931143571052887706094558162414299440569284532430335794025289646466354456051776946105280851446981929102311323152568572260926952932666446175471644249240409250025707632958299645420485607676322689506600029220599506258281226629305939731609950799619085492213380165165015518095058631888056731651597621640448557897092998107286150650696334412862262081529858648513667623176160316291869621908997031362012959845484833343119658159364365575584056602387475832056920247757240985462235490515771052168641359226737637663707501158564397153653206432609942957566203395550341399815738808840996999558847444519239011459550811993565881316335959135730495192207267065853565815160174180658190629186702748360613343549531632486624247664750109181190835630014626391345859076431292800424792853626204135620342034555431911029957014840028981836604187117335382625461176596045550348864966193044914254593372048479525536049845841890595702781069239278345204685694037479000310424376458115615371810257900217715288302036971505650645922794428252074102761865038797886673127993806564283094645261021517392271201225411462817173357438919230654088981875296672710267232427956705355379054726924638567825591477644680320319937922306345992743620129165056185147621884754270774919064389963453298001284051750501681595445136797396426653961241318480353967049561665319683810875062131494204311380647587151597392289344049469070852428588579047783805505093385289938828339754011309474744327802516331587559760177970969302040303645621895620804387223662366885798249712341909631673655717270453649402999145180472077532054086333869843873458394916636747602604432462772924641648860278377784517008126473017368231667352510135122306012678650370444470703991062630645065670238241741588877073635950859543761692840527835356153112774601166732619897647901600278968840278425447924857674361896224862576061220886239067147812741577788918321029956959608206409575351346721559179637618798940304741828323559628641489852484358532807454889339252263152919032088058363406141537284480663612055132474937236337981259483762681765952055172456812926600181030248445648030280420336218874910781273818259642704135745856733197406389370133443245607137656046706022462883364432393212997012747961524525436529248564189793504373009297907349257709897185767534312636448352274529392268178159515712208046080972576943918036181682074907651953530410791139224796434386019750280895822060080817211425652199459469500415112834027292271697022158450454720456061707794423566753278765479696338520403802077912223443632139919223439960144421145849763758418833228632408623847687278829654390671014061638671189609105325545620774270476535402964308313394067108621345854792638483443676011548264274567326072989244302578200005307085486209113527607805571416173073614479821742983138679580074441596636245993079201438998986812052615561677789150716850157699392956719428739349133291172017507092599659553463682829978897728156668690519284150053149410530521488054932906396367287305704033136291982946084916213404314787165105435315295241956063294834895754410877970050240371540591751327579141772601378012437059630957948551913175188786298230380047197655466194907945776706083904366527279910666526208533546150168656563986580041368342027549421983319873930902862116126270351353332317774089685520412773833485665618643468488361065312782744762515856241903184857124169402461528790343201931453331304534355202125174221945821456238470593787679788336680060085774403567124633411985604498548929503814507384066027963070406487845101516708882587010447741125363567077309609954553717469541123368200096855747031863431687154971434473555887553711937053456221627014228137451077871508673393016384333461946872470640317368356274306355259004258306783292927085899344602057139761870798824503177286865334520398862001373675795196552151998912276829100211875340070926295012164358168071393784150097580329982541585386726354341547345590826062467561839453778050872228952263773901880190348557431789321605425080332888622742495339046820421600335903092372235627832056919453205575471094560618700781213487544834008617630055434522087954276178751664596576198843952013401714405029603347910419386620806626946729178733441197987955310806802969402793091653088395279053663405262735487342762303948616973114447290438573916094014947397669884653131798379298147051093276087358770334878561583617235402426039826308356853417455654842650879109202207420436999276822928550901407020534488411902955956948319179628136866285789941902408728500616703311685759165497048006282908603016177168336537554566681093501832051696743405198388761058012419136987539156127129416908890753139614256586342421021641182836305958910231185437708600899303443575163970553506859415401761023333338122511703167895453018188843726430206606797628535978782668468685109713039904890036834169753272798761941391842414426082115794622899878919168128896864185391507412937733657751496502362752923588844678687982802977444827796874982593527467787611383490388237714775087556665273706165526102161809566890820286962901889884317637455954949204720019652133548853607440841979600919456244073543939621709119763475619110726662546083459445217331885842078334453418502199002708258870283866272721417473113970809941009590185900086991764480787289913516692771911587078929934375085151374241945589281834067374594751744202033272625168193091012365071425550258021576224692046543150797824500840372428048464033740574069578238157613260539451744785515405933190869499839825122099028385755300120469221924092500638477940522869799488328539620842384477564619597030165707131501480249046192919106330418543212664224507940486726675048377725604952696322090179639229301608550017785833942059592923330480994944913486240425002104108381057430284777373121904342406632915240631450757308414452230598825162820711065709194631981635330760106747563914190752137341278798065325936197315193688678561995294143581863568960715617321946741279046324901013704302266985534434628613935578903955346750295749564760583844162337420242414723327775650823175515409210261596176403956192796038265333078342042451217027475656502952879491371154897462752303019126710710295744038630191925799067753972148665754688118374438131006760413661188997051601937534608713693653765983955303302669899061732556921814165499470942263303134845983030000370011955693291459533487277777741786829599531390295782097957104352331052000440141277801585736328952881975521026492226551146841819707181415556548260045594718790289869796138208126804647645901727198025691916364785697444518740490930704002764895820855843591851243185020216235532753900181633369042952464645167694930538016994580466591803277302770067262466268127877599278235966451054286143304333531422687670181221466886882692314360821959480721567848758629833522409824753784326601322620950987230982070849178847237847005294702744958971997918788817697087563086379362387862052789022660172018680843365589137334222543519363693124030701946206063543934599723192224664535537209157869551413422303191227808466966856637845051414729420026819898959691849846302009563154453509107085573279726827387822995633371391066493571175342091922544857284653806856640737992565546531137131610151739374369100777742166897035768934953044281215288735237439120635391659356828795825181338559177859448188729210232214779890998232385073991633324557654499195907200054309167246582166952330516967190201505914494778275898580891733099200651554607636507177911307936332041256352348379453233936593637647220249903520074960547520214037179350134168087603621752437336997335584416879992268592410302623230575438276066992994950197948559300077864884399786773649226387236668047615774254164325325325627596876815677638522249971120182721026225577839284840537518712369059644755471548471672625545384773814907707717318196019863790466083858243854964091039233603412336689187044417376031020661702144449545866869815651457685648385245807825285996537257909637263437801883521129381684621754756115747208485371479647895453137418041180706641330189030194727920822083301690289986950901090011374576347732814568908744496319918996578608885846201766555031515418414396635126668321076117049983717393882798861359779408046135209521202809223048214935421992528391309957530509171078654978339771633274735399908184741600223731571615703416605289336215437752934099053706744168983947321563610558130385075395097048269987660060077992338162083053197196803433284283277993502388359444829132449505915289489661345126618433891430410071201606216857550965074241035774424500483244473495682716230097299928370620007126180834692930071189451616994328570260924060226458025704994958178253451403262020064840895434392713027520386630606848032969869497593950820629451980335379340564108610484530076712371895823214498544982490531378743991484095020117184344528733831808322314979898769650731343404548754913856011064287593371910710379796246642723133571880793677196979425676303407760003821903002347166958622987131963408893641776624150509918119259246740771710760958938291326300821819298140466746739754558342615026261359883787429782685486364857949617498614898225084660056742572550640709740328861027122183139230303311199356643344003631243788137577386991139922804499320940130188233324789956408904325761775961497467354790675779689127280847848871536354584448723261226023137351205617450407571821660429018753180291093397493893807596630643742011032886660416056477414095292461284760300394363300927211208153601926647745623157120228238971431005861795221010443043391545947721526124511501736783821385818269343400531003429546274742096116434549391604398973010653793956391845551711247233992237233184224134279701248171955533366865645005030899384842616723433498120049757767347863440868954328102819653116851468685331271086191776929024720829126196587014718431150878346564504395382876888514236922724709457107817280085720911887186498804219752542978176780468648226642347409606149091050811594395614349470165662989771469727132393440498485671289753083892742950513244673015537015062527595292483733106182735233458620135681937124798507109098411388806146390153722688393225100072852175300836412677095490920794783900306548727536315969419847964833997341643019576681866173413040553926345155727519850240310762081078693144462890671540511897875207419293869399290655664568155957404797449391874482448296383321699570995452304790880349948807009067156080417119279053916568752374460945815366985758470474921558262230707806481404687855992691990948043487521671325938974844624466124838041841720681899635674240400813432746095234060534515744595567650630933662220121249926956565572597704845280040180721736273632053533642415690546872916017707732343697278364129182896779964766136216102483465978094873416305631745011430078655569755544726897202523878817619241381240221089586293716119560853677830569179839238507122593955031878066752840172445563597014279436936547024215535962005742188782714307275878777626072509134304284951984125556497471059343900101464604386858671330051118205444739845471250082398131730112583457962601979454706163334324552150872079562029670211905806114034423221588096024062705140140608774860016369065094598293319171774534994138573957024217076407017863828024323489701094596496694154115263501372627839214269566253858280854300360774737687869395311756056018052666028199876156234234583275716289311138801045984863101286997004024109784708595464876159756071941274576269480852689932237606364423914748911057973825629774435857487323709533902737550915521916962931126665643400047904857053578600845986121843944199956879071661285928694038383970511352217916755175738383882514912520743921816879226197625740908178056972723481921282673645990280232336133287592790236088686912723532599102003885785818775757886137171108965832823907999560024735451871485350867817933264936288373120832924356806527334410090959099908672104100724940189398136242599405851267978171158690168695551133740825450115575769464036111550256585929040817377622668051289017067062219643367390502057709781912159614774510166884601290226056682803939563046520551312188133114301738727817939595079554534363008993488082728530189633356217169928854197107425745211436265361009637408611510375672718380550729329453803121995587074146340087488151892291423755846457150739835855798704611530170725959438281727152391636552779290204252132519395248511238454361874885547487613495078100032940777446013020513887805839293787895098516076092380050535522628210605996827069723100523189028748943621401772199725106574158815331104341988928543048549743119470433741587920933859801192435037187228166963240355876553844527488208703805694815806355656480552447754071737537969957862567780595834856408015301645277149382263834221575474220315468389197288631550609265299903917649109660923218726027400714878257549830178989357199444055831022942766833293004690080797389336671013362002404529597639867531365113426517522598351295585513552535796800091842493752726735586622845372811245433476616415553681670018720779082317718344576578616646910809139560081145462782307293236114536166935039203335575804389254071274324582262082627311485926754342977223065714869422482783806298880960148546468717317277636924649504434017916524147505036897540531787942994200753578843996960141240806419798713716278165513345059108826161686168038648714497087875327225269709397312303905551583874621334017612191768212998846760110740237692022240093348942882737453096475314984233826352002985561472806028775769094074124986619763323653666755624701261497151807388298745638025287199091605117472808749767684371881346364056764321553116300080104378659512390595711488865342646585013283008936035659922373402223388471827075963576420665842381569932743182337750085555911886443783107680029964033410737534636044801893808669243579437622721355173845056378301367207778074944539795147205932875321994217204108763977517656432706383068815544318623561058884748693185431050424457430899331494779348854920236143224998292654510699391123131050547756992940295973927871045303591737028860751363684204081132128182418065330623033113348932783726343601406273772908924473943543541190248610038568910785673712976279935406705750320671216467303278744087337035365382888645628905220062984700274847793321968140718060739551793664126838105995267102330984916286050256411322601364418254041905303630279259747491733624660069994588384193931883566165577464293713167269061721281495794055641887619676930889829299212220866982130626759513750355273399988578534974051166384955597686217532108336896807358854534257589053099338183861204424468595607210449673355869557101824197356712993164193783713223315916232639709236939372863887805069901925168729339551399128711056556533367861288203577126800168428694911516505291809830524386262525722611574681782306659790035289450699858845954409503721748396377651813512715345523638061822877566686237372909863403962528733010726307204768581973891335666004225850153569610688235760986415529764737590160366255557534926873710358750510518418610927406438854673053079780051491417117192105249027144123639201651114753347259069084100891024239306790807835307884268820088403720218615239232948627585347089844611279952449027660364702201173092897044170096276812370228507718534614397313089576201276992208528136847944633539792626257935114091910124722786145736890265598354856489608724029694487587924254773955112539828441036088087440296111444821091297870969834659622047136142586141596607486711986048770289183079498881725837133393439481365102847943379326446789793830727886742526716869982464891575644028326997228221436618025693934038352599003426786011070342745847955218821879318758550868063708505584283831802881220203531101130006543379176104223276551802263856906665378469817441446440166727228759677454591719658267719379515107539123881246401113266509393682528827522284004991377419213565546583813932744261234957893640513688586216769996792249283919116546548679362007939611613302969619401640114005453930815579328120842753009671722747813506014973000727689349572933866259710535824096335037201102263353078727192783524673288610586794955487453671163318055491204768759506948833790751130649606452150971714787502824185968680392233727425877124316358543741046599226754000239297094242210001573390359089483535142833219053818689149003401164650016435512073540271518627830008072922443361828234720611847225604994232429726832699231624252174887231627265984165503751415891112649082364169295750287901828959778076238582180924721252363530394073531198351998613947850742997961481578980325261592208405511957370534654949968372320465430197515225520083458517085989845552579804266177907938629822609992894844836305172572593807625600372140321454273846105630238125612943874951936468061572833943392442742976222592393362036366021638257711873306486559503354885300565928700259745032377392165795054227968921785112576884231917029832684729747726062937765863119886661492400786560770445118233414998062067221007791466082981254790521683416052590553673652056530632230205912725419011982337151434254673546219928864917081831329101050995162976520969044433549007402724998610388040311699437403037609407487183452970391228897269560008465913507363054427982821501911768799872374049431618173274386132425876942922720074128344916662821312553512439493614182955657287192275173230268010871222559050797243223671726131947020859691269947270315927866182235844968364439442555742604036822993188417296905849620878014409817056730275970019231870526914888763238844521014414863974342244707933791211642555739713793135833063729625829879334736700731475782336916374950507967325867336624060918859133361566674088048741915695366569591859078763515744716420211508530670607904893030596026882717546757612934946179712972936793363684865459440648243183917475531660121399516596458013872172347172082412771848844369799263802521246649696128177730632760493149380213354852669313877401033346653383863717892065764641810319772556490500055992558158781099475869457611896291737854991763310980106725844323297446222911581319598053534317372212052417819836517079463615815185624519887207124317764750521700893520290154961770942362793043119430856514223726114530106010038080686057130609678866538192145232678223645814964576406853660581327300859294689887143037779322315207002653864776865420325402758407255307982593084354710388955107743795464392228071271088096132170385649587256073159615654867776468336183278084205551613940780387988526349484721252174134932867442788422816942731265153453115284855855859862221283308812250112309994528669173952767838250846805782222957102758157072153615435452032575800406327322970747358459108672532322520607383303456009051849402622816022348204888292041007977876669960684278888518701808784624152522250143041486952797527976794786817642609504637588638067749502060047097406808766506871616083643455691450257728760489170749404858026339950071063466718140167401791856099880667474503625986640633299177590372807288320812713603212598973143618353746198517751251253038643378625924862945092292055885090007385414541101490775891467374986311261226429248030898109927429860732321283826852267837081740971969839243471625264913859425578975890835146765423434330659812019481004616487636135898985650603348576341388494023531766149033856856901078468951186821826237011728336619677730547461425828042680300772587466937348297037828917961836078817072294655893950565160239567119144291858933163930420972689812088569223097010324695645853617821143618363338968184763425674252428374867160565002078267615565400833927658074235687036473939729062489350360653702595656223060009700327176465743182692024074398341049573998737987764530440722974456608273115765098560077946188519726498218430851250787213815123365621416786966828912715901143704728285134833989784688378194355039355927060867890488030337808285552702647981365550667081034778428703230111553942533956896139977047668602535912107785523398820720803802858371532063025129515680230143515151293050972000762939422258185039637182063982796536001565127945229118564290069707072123848733884105469253379045176106689310664183089988723777507779828725797837860885528555311730149929929530829143038829232181292281852209309483915477246158814797393300503099186007379933318214857609333378908388015378835507644588130493415087203261587559699992140515168086722148232823720873367107393115967826270221959312179447500023186748363575951722040190822273565545012748605084100076181479548529055026785486346587634754945734542614737827334798660965077331016468878920242401432314815671947335382017753285282504954711428589618604361559671103412706501324984213985591232381347524941368778528699045054811417088762378465862229467471849685751587892052645175352681635168816949644212570465367575299518387061406974104011248018193366085226332266909547973335920920001380725046571378291971043197919732814133431675957949193153843133287743031139998854652086243216447568220726957866497568557082310592880625004620264538386882888815417555744480861265371939685208131536854214750920881661403586623087132608953525194725324448996997500989731815544263945450197795675674189164738395477326862972891005440705570749739299125523223912165623133381783490935534566738550733820700742280733040010764756153769506210558365675463717769853062862435750510841244473233593610115205353891288050061372944884397921433796656991694342856885376189729422737325884294068580562960178839092029866902528365703204153169716257201143864331954340590079545302210090754697207054003489588871277293737744097385677994343431245708161558959359653165788356904032465129023017507131949914599618010640377869876631004902673027597577521388105206963125558151757201860893671450032296237138403943033065054921151763553311634044776928857265140945051078560551252078010798374966001957778248426585517967955023349978555010883513294981918660142763844344752006181596034387843662678376372661535674846573580261033931814004036611058400857613046835994822016008646267203005931166132664390317430821073527190546321419311562033988537551766659447044964758102786178004939766591362480970394165347060081771599308879816066929609777317843121257305693863607733107844729141694396790783390011550010264946830748982819141451526792868855709909441517085149119477945186356676425906965400794529951424459098531100348624524093433470225455039245152480949095796877330224849780316017584168299197351056978625967950218111237150507132243374870954714776073961105712180096534373395736385332646988230749943222801852022939323535412691344244832244462263816158235111201030999327468582379879731068648686372047794770556937111695080244683137491888572896214750405622766739626654414005573353022399004443470850953440088232823865049531486469640225815295204393035039604943539024527103972011741972844125701476563221726505001683216972411989958626830441914558746935498306454349271768541181413821665527770974608364963197144408867384730711263310757176884858601514922323017876072760996375157764909350988865192683408334149118372554764651538230383831634742717326706673187568362383368491581985488799596038465020958073418877735912296572923871973458640464868901085046853734109982680863835753361407832805898164971571054776739296294178804186808922244112210633451492495019322067204496222695202747532433093216776178615406323562363448381476284525611548958650565675026577714012931427725023174290595980443883467869035768210723691302596523158511139679604261709789875739900440604128727993787842597537026919924753772706151364419229319849656263772391958857140568392358215675631343530296589066557509439159127657904064604902937775564646554906519357547947170684961866659487558474072469122680738283670122740286195037552432539887749523662958785884429284600394393379579933972366719057549845526341008834632429472199955191704565917220843070453481625242842534118581980932761569430977605670050726335083437416039504034925115462187164318756259000799484679453967410437156510380972699204873866122904532512901519735268095104971933892834555687459095904161197977154032704171517382401517030524327751646441991959038468331060248383481879246678928961417272807544106493590082515151733063428480054347398933770622589723688555038084112726794271590462241045643188422560697513895945197848551637034711210911481861749437329592721340611722057058239009173238860842469194802048683186749479383355239056557531280028669409034824565652155127708511031537691115082785340151123298950866308201917360960951274257109509549446543441699171676178514743378332633985017885515117046681888383432404278998713618116540181827417908800279505681152176301177535819798569513661123994221572176279818768928862849510022959606556549396691072349865040932013411800291587069610061786103404943176412293412297493816839367615030277988111080971390258868970707120107298766474980361395277303432333852650049812910233336889852970555551800675198373506172344886945885427746555390880979316405348443356607624780246393175270361351226331982714011755524633955121462082960718559866182599253695656112883137693405408442236277551631933453969977437690386852038519901358078250579100626552285890859553193831925422934415957531644670997921929845033139261580346331477928774557776004272087213528725284903598139094689650563328967529360449479498134372051840445541983907793407647735354232984097151500975117797663121736234919953077005736907227133656930332304864638135891048017480830060388267567399458611664176130078059918363740940117558654765710306741197288678918651944524226402469217391045422839247244844561177919521524702526633348614517288283836276531906193943412188501184320712721385507257157527717347833219441627448236582005435724663686634714574157447411806420350446916270829201463175698989444669443118668330466949343654258930536930328065040680113660947465386208900337592543118357928468589823030520068642324198807448356719597243557123714378606737206338930809445981589105066628685486444834426530664437677583359821272009789133026995975855369872308493969944189153706471874720086474721055686758504866677922942397280812939541917324410243956621321062244341266466820937103548442632013199297101187342791636468099014785462478223086601034441400607081231122535101896410946845028699173409130158326640805996502202631303162827537960870601337416698091157555253319376133135011030605081413932415591552602562278089292765101026787943056484457457742067201543052268428200236908814429839415518839203417091681487145807955583641838620795969602521866390740712735981781674142527769567388427307551239598660298967497561842647818845897535844070442334639959094717281502610676280415259693054192477404907773877774506774529516698631797414520915090266879433574445826958142970092510570179169979860909164501021164096030936189375484362247070138588873907023037101887357176712383186297048919602657003477466573040643668569653022805391088910177510671973594427123884880265241413399529577216031976370953204293311957100959299637352795376234547438757923379228019705695203014701784422538286193266064278812686477317542033904800665897453417632807341389341690170919589786981284005371847946919654905383978180929054696227663868892779873113343984190322766621927352943478579438836092448610471481532763926574700274585968152725709267373948271722540391335164626085714448966540777320656827406840783568917282585588532822211661970529543918447245979263933255521353239350835524864415909079862258026261642292003871447789614216710856177200378900832053609917971237148852648309894692960642725972850147187310310998270101816821344056602785286588077793781394780963519582098337646472544268136938008063797355081918039092514553712422958282806845526250531569534525888624677175272951130513388569277252588349589160624471313621829842463917981078040264932069587079937681159058091383505009541517855871532566728226442647525994803929932316048226457426467271327145497883946939487413017809085239242382080929927898999729626334785980385849919471150976089720771771256812727746749002014934024218901184943440909191449605579196000823255650803471032822129544106507235812694435705604031993722877444448956635723219204295309507581379525129924673039669479259184745665284301137699283409711426814689471055025707773256861736456408878439206632713190028233041518756721923728288703182196666940079635332593572121331176161159398896732505007594173382827505582599399378170888809498257467559940069629706866290714934470901134225043446780976547041837535079991085815121749414161429752595383681673827174349230578536202776276184939615259259767475960140175516353870552584821003310147159590380011527145602801107150984637090979948459372701763500701761893474687001082010305408114611717555630457169886925191616648955787381671802890926871245952460271915253823175017679305287070438000447785789069659406571378730791947299323819366581805314357633364887895086594960438785865110906429539590160629407229851288001578457021684681090879271639124487348222262768355597023152017402298226791411992746444731560203160069455784541943238818791350410315339810496804563240446836349294972152025161307740128716565636981783759377374951316874154913400641244456716474692388744652225188067149043009276017334383104196768216731696601488295561622832723187880376280551032643095422141094048882878477717688953202550230171332914452465112796431085430848534620022965910961886193693694070261597472528371446803534069470841460904051422850864219378547975273961775679358266888047902077512905434402312137444639174106736868335378998318908584443255942234044359318575359755684682548754198219348210113751027338624778732164598599291801799260956494355468746935079520221494390911870040986481290697429532205363018209443965795528299571303925053512844554257042751564041592582875860861823858447763212021322933655046664926229056541249588744977454608682783398683536443241193190786642343797277844351344690603095049498264166030605925396005355265049457403798186353165313552807597691913323662309782508173255703390618028969183350510898900983891587616121546645530444223160602537392319200042520588476202923521103754758682111590385248762400387646687087445832799991185478729950949511474151334307026619830017633078171337250106336682510659780358863536556120583279214816116591874655228222356941198464482286146418085477875713113300462442855057420365057535145773895701085459828820641730948191476029048857562235660526766187621359582203707309766078153421511505024447301535957943682706385353648004503267173940646427154277655312712388409473191190395332841244389787844262510848899946639086126807719866039786102361856326315558736519495707425720489527430352518785383604353783975336407863920578468419961919614158330901437115182722666757314387561710459724429943032012493265444618374773048034603348690426447777249108009434684070911118391400638229145589610247305584165139330089787397304190333592712008312044547450997016912500541981851392345451058438284343118158570331671948691270609483109729322082293357923333208375933641715219048268386492804783785319929303731083076446404446431740672291777515603042878006829464610615221087646294188031048541352805604087150305945241842911858996782859541117480537467156098866805236011159811645169603594568225783062283613613835141257332765802087690267384211628661099170139014573274346813117226105242941451620935644463119781139230687392837977733737437425254930624140442631852215536337220455353853572497652187417585907859078798921792511295742711357149973416190871135686494757309470926657629156888775451306631382788782741190696602148111640244107328925451488314758286321753919134273121095697938405234842029425651979474169673685125829678702044253368472888170643665880958958180161699249588666374216620638659103529965139443687998151387566835229725555225859954808583447270865553809244270043357432153427777310607880640148006859461136444525409006300875532407562455055019760139938727401312674768543632856711824685653770319181703280783123891446546479844978661377266537560421870518319625883013532591426251929910532037489191685370217910209260180706180116035936635096599237642845725356285590866881844822676025191495210421032046250375885038640802479056747622047214732635878371560881791963326086264586447149906132904788892931658121088814349489205544052564645918945188854535503664589632609110732057495665186935428308509119851970425286603080455217561374137165505466699629893035482451921734883252865459775257584389781387612446601530738732929091029492676236609052573351102239065719214705242485438199514242755170793290424146911393795119231131616699545551984197027374063768347046207294240335005396609973667866773661509751685484479204631280481980006642832393172357434380868018255620215086079740387655005569940477190616877070377766693281004662908968307559196500011670600600680299799177862205860673141974511783378770845732128481388490458104282586672601535547005392723053486327729968209059285153542381612922196000606856565735563382607119706553809636912662063688023072663506762998811948911837776237551483768623531575901396190009333096348010672472228944394883690684094929709191348415283223769734150645509610401484339571422553758925668812692271107537250077311789839518829113709765997187193645790513912386076595822568525587548962278632700835608352255202582499637892292769305218343356778544487220731330729289696323224200662459259291109407451344809345419299485894651217499634611142563364585734662723267958142496599205952766852356531805290382262565694383365043668823081771786666195831091801353569998526122866472033862882707344432604793382894855327076140547411607421245351238004375162611881383212401150435163119256402937162187438067765637439963324113688109096201122338771888473420909632313936061192341121687688105101019423729533908953631486660147731021072410088850579918430821678494559604667562383856627779289333139779380367474265142615466843510875713870762779451236014964604987520251774784107420828044756360810815298896725503773093841661642269267271725835121084353912212962583767519251380560710782500396593433900812493327276792870483915029404791827204537516612411303531801668138494984620169114555993763399921059975372720000642465750275674451330353594483729052545317668600139417198078082920111279652502939780430759076367048397928673307618360903593981064449810203932702598882601685975943216359902155502770574197724440815268703839586069661627752254045441612642673705533264104614692942902015973904370700274622906816255280186443417660869375367652642241878042356824310683689562964402929830259761408801665821282815576287470706843377471846185407657947127885220052859848385991365412417714284791136673236449430641829312715937743502621661607619699399726830081480844101557342125590010316461765114707662174130597245895059965286597416256675904891407244769651905458732428681292383710983029019970336211598522310682701503719208660517317348739920396642924235450468803467144241507961878230352295444725668043309833940084791533615614226993224575617237204335307370041328552754726955529632216103421470332436814112950793075389219707444302349649258094644285963033470028136774367826297031877178144538914967384831852238369942448334235228127649317380564496811511438645350756155243533498710302348483450070652678856804009399794346126849453984840654948795553611475570654612311196830835838281772853993821771820535740595672308887726400813578425467201473813652623815543357799092782818748753504765056697574442926240230362504401937463712500140232659471587563999583069659326964199032427802630434938283844967277834952440827794959241960301656465350311433153731702372487800657374063221690717836432000812608599284158988792851192800842166328465666151672840402185091376478050610995549589309729207180430259926105159315765990585707548982911167072594790138571053029699610489405030300387303906869701161570357347789384527599470651108113222460276339262578637177730038091552397607577848608763164616805627227147515139762384241986830354759937555175631163924830594679387454541723806349333117796161975470735176445485821548354025182234205491672304900397436316125640451035212192530972049083707986356249436980970608197075100219088740927017998034397564201154471926009613771196395461003071269631350665602376791425998711424812207114367661043666048972346707216658998311359705715518942329737825319556614350496257505604300897827556520062848322814307762792053961783480554977271251521085970823180011614266460734759236673451936833701554330851349222461004120814969231306388961864280490761731258007672362341931983554965921016721661865912720361141023788545928044880624868517059885257154239665043368043150161470307628308091343421638236894513426700809681713607481666841965452369537785631457284471677197240551871444408110231644591390885911076940127500024406390944494387874359335400905763024771734148723536394652226719819518890819346183521625087253068479896500377332790947623795685189396652342243888162309140859615492533009478682388803238690514269848212174224111816708875851634059236474606493018120771478418223697952509487089930150463458344134260037427247928039297709555560101109453568303141144807598586754421445172654663804505883755776554103226864855816584347542027360041091908120787038366120662796046590151074157797690703086178416953496870499054745406208423675152925241436722063489479012553845974479827808322093642823505532812150528505074187206790562469499883270185551864349735255462619284311549085356055918577839207905146199506854222544135962688736768966900238692148740183649454364599827563688438838527244918949477581497478164258335347633255844073603646720902336183597380289962560477773922785839255182538873009844243883412342341715471349683590275822417610132545860286850213044346825146069100653005034811715922796670969287230732161381243016858935611845248955582371812713917849209675207406679723397600422706100685110743640819555074912063244951816624809306726494307545789640125215868829059072338025547972864001221672845460041336491086680488459169021812243470626143655929842018331790894956565514632707768167958011521403063712540087049972953341165655736898834590144517892756920477030567489514168530227664072407261778225503477693410681639284526971626706751964981548175986824274012948497621703856144435639473270238821752986537500607161447230108302825860709465298642986078821761032326729062478710189606787141457571081368714487457897310279830016502468168978969873667324236190173830833777189159097875053152191923113310446874304645058131642131898126234411108951435973352273842456156635255033913713785874337704878552089089480821417901951472744815173071784928666751985180511808497965359598170913819617078912122455479192248439657835951824525025942602097967259188706072077732431061299140508860657850972979135025126270951691079771869880728692454372416811988396091553413342935409926791353552816787679997392445717053595732908551349458291255299415274670449301725294716122013346711310781122289419377303304285949106415471718568672078274349527120049427181668577387833462651146734585285959711571697139298058878070687433315358459282140831526827015066468667539460907994092946530736498289132994312603094692818476776349986517991284003482796636426153907232510372492182804541220709602203438907482061833126884984321259037055039925041682366031140328677523533255028729892669456652195224523054410744455732622618778846086985530598490075160150214726614783729109562697394307331996820989433074178869985700759988601998058282008658340848710219651516241205128488697623288289091731741078649021438518997347375918723059816149717375382951240189375383434314582212077118419927489533581017960678317707959578622535634355769672566824292031860554968969239523298706734128316548826959179819691865307667075187982785518151687873399994711572003311013657725640680936955136485242789285117551097316494824249705166374161986922355974651448484183518486113397606869067293969416534230558748013508117372081832214974278873991068346761436326209454948771758122464604215172419181341453441391800834602314702332177283058436581653535068767800547702668873685501036093387657456435267593227911292429379983937558982832971827817878837376244535836995794751034853695041697303534475621431468418792809769201475251665602168099448597021188821499967532599174605921583031989010118706941001014835663329789975332534892837161381493105796830053308100370970717352023009243027563923465609069967088634623819923512858571241815394840928068709407887674750092965984310901757407267675535988114619385709162317675888769333334038956993048171358423247078896255127447379641568209989528189519587537086532060006320277315724914010634830005521439906163172282860510377127555279529237231025992655127139867365883732099469221599914686191601402325647608527154797222023526944140185046641688866346728045202147503623169654867833073550612169079614956692426371715107602778169725534098349759292426397027585462677493377986557349861290618481087257144857209461930988071164571780333748409951523469356335770881982150646924501944339068032045701124016949855208012070983451555794170805584276377554491070105868096935165029195549386488647563004546471456752460897109954056984810106461582730825395345671885055889795322238929905449630761239897760249968926561399183241216005471556038653732716752273619733416521418398678233683013883943374655515542515130449472270699387296224602674557738176503599986002928625947037193907472354383249024710061658605633163026279921167717561643721328504365478032529327183144800007719507356852342697251049248794736428161757607579396813449014372989749842488472756686824290948870951697408558769920542758235436483436939913076535109422470018070001428201339424626041515376883163080660053630622417890138425056000574901137648523352386532651183729257040150893327387194139404597072235172383957636844292039522983880533152936134492478140677770224734494962875330424613018954983329394631755912260341172243557582196594627192658355569173498888711804812753778118994002747779152293154850629422071097366734665450134578656616525959071836543704607088647390248922454917531515072237937417569164375582388631870499042446538654229975024619821335028402392373676746609387271391135137184254627779177156755756746330361188109211355572895500896382136299628801762863254641793169270629851657209923941902415711391227589514172678153360250327255273729015288776379884557230105563488022844418248981586767224098646510052704174000885187314963181148074971682450355147297886037020282386799602565134250531263745092657377034786606799876177320822888809978485921406936133255031659965370485540369688445204725831039807808530936845945699004784751828882479160396336975893688994364132309580048317667297852235812190371574733212087778057910390470445167187762059368165005373165542613242385815155301225448586651576063861966768820786682117087034044671301205041875757690818777439388945695908948970348056086115585800091638923674431344965932603979767692340621366990949458168116163886875388634059538106949408939451521007395088219023850643507321227732286288364386633597811754983394437437979107257858799281784303225774392950979617636636804411295837116484074325520812168386185491599844167648596071570170096223289390521136964236392106947392662866849695647791874587117330671725919832403418287066761747216979021640969515852833977690521374865001818814187609314156337406361207814431712540589381200712692349934882170478717819463487780207701457421450053176160507629637996570664847832041808211865969444732879278273848828356258736279305560197416882165884105672391785535119734274883543744778226857245789720210178108458538080278629014985900808312180758324392786354842567665680302964976929834503953110240381420057082519215364857647552482698728012226863360923611803509121642339346956376940303450806602712751581153849973996622888386371976169260039051417468427096452211896652031706121221682707239366915009714169880841302480808907719217251859836651039236177392238192021265506353995337070607888098901913768519606938338544334797656103346130449255520603742113459952630544531156861382034013884325272430776924080858016519252206748024189330333497664892196743709512941230592631887368099494171875142741252945108023234712406500454062853937225319549252870966034102809221300611066730407012814107027825164409577957460360462045547950675532363703489666016968509505425135259758774039853205395994619315629721428339307261032847286335071012914150890835987414623382429599594199363717005614547553193647837866024764227850014148947010025572958162101187422526130688509038187868073020347777761117563955445894757481033894500359883517952280630732343040516247175733940228003986497937261340391002386497661868876599445763640322451694508288293969324943943185532199382303924627623709450447308789740810772169849424919715780049266304589188621099314465319450089204955667036222377833378675642881125504218810619278825414843661189660660837384602023894211513532181203981495497436976174743263360241856281107685499169251885051441675458955550798185889630727015209931786999822779560996840623261987360163556419661925475452029213334463691762986136444590529245178577841379106962138787132404582744237012139649189120899174505213013924335609447707538487023216998512072451674237382058622468025135229687390735308286585640977828846704449342550445867884470296716268452608217443120282305243391566477765656245805374912729253525611621109328912828889071421622010742068839051568178744192193334443556079731840943085883877152947229469225697733171954697376298994045027867027475639185458080976389532606335385813675550529520579866818144297485258120939306700363875949476114194108510626106237193956280537610764975872502000681676391129776146352395691879714098411881835497189689128600931023693865094830928725558334718330939566534795480370621682161288534123401187208783094912712045469831220870129020480698389738228443594124403994833306790145741732722241290603637391346612830861448833291132313984177038974799001935540243956226724303944994174984502122682322350265655968975989817249345380880897366240368638788145844832957726481211043019175299203509976761547929005048952952559648887290760692856743488717637901075408928505711934509475730959454699134522574132519505980321276177526816114859228390996326932940785004262266652025176648681046001328842427265026733867001430173867109377624694555513576178044279979656884884498697655717722846598764401998255178505786063106629925899998469571054631946777398281237161890149759660534533000451636338586723353650767861466241162797506164984318359190708727506370357265614892004029864667516648249151681332800806722436496973241032397752487684462085321096829163731040784861678000246402724629742086147292568738594768935237794167276488379862946163506209712679389258121943388748382336721298842662823703259072366145216465984973262474866948625359562212810105580034570763044126472491159541003566223522151407571920852383951525796859612968974037868202178253747344248701000689030545219905355762516655749572025870008828286633679548515315788529438309246348867994216429012627845440407205424893980941949427676796356592783576787509237693590263168768939593121164375786872581706422814175802386763511149126136020709357300434698978389477274102256087987081721369552779667128634156395053759628455756146007405910541029676179629559719831148760003681084953258986334401943354876054829733502959981106396620553061919084310538274725753168109443557446994405178591671175801129919977330437515925673502481742703369176380914817249497419660820352054359894424914692978413807766839638795498209363295238333484127736035870822699923447625016252586705476808683987307360513187173621124554810607160117281579932358788832385097312168812572082263203143889151847479846484370984148125910985421466959451765471626889502986879117055961790543931818465058096838753492880284649544269640972087401086668320821131630225756406574795998343727975085827647454447970909524963838884577957930438973920825448784542434886103288314597842374715301400801629930391973329794128151725819814749969602408816587700489458967384142206544282003591589709015846734110549060981369953881368820079575001779100439802592075305316873006603101184193359943414175034871319623982421271982447509145687312891862978340555922227441590645743800408797173801621130646581685923156779481797629501188978017171161740697230490970010663472475902928129533054746372737417412154911841659528797612212964018505689071958813943708850177221752941178207619976290964636758477863919988083861864386273281313105995390045437128209071884917776078155065403662824163300335094977283225282895059177265189484908312149092265927038209005158071274605268822658657073770910522033591549784091443622252258940755634799763783611832370030294302337124017142518798157635903203325290350037658184189691703000314069147681478455957721011500134884505062919128166964957391086051370483679940324305831897682937009542516632003579605848882504128869792855250244884805340914530874741314983203006085360458987348123668811566001343923252177060071731511612403131275246872094033033652738144677156010870863545349601957074371006586887584040417595053662829713187192906858308743720345364724932490159130686617410749376260140240318071320854535700789381698316429424839824093452870132151926751000787181706233782093116073340772532249080853512805955365815939604086149100433271827939837830551351163830355041176473473182521745959588408375790446423147340440891365349516114701014794273726195743641422444471689263365311670450205492206849518184648733996078179561377361827467657661645603466110594073987447209515587552439479898657217262331420747277316906155380650415184725706812957267165917303875567680112793460538742672345866830655725654391219735659723348254216884149386254859833508398449658581276337118013486172792416614325123547018187586192564819025001996420655828328096588580037480066192760748438505125389645606632406623376447535910896753629010160391013557957440857153914322331858274440815122728767553815733630457122616482553342656396690324077986651460557925433278295318719349525950188641835524340247105785791483100807219999340730460303358129556569388422958989700218432100401273639667479704883526891912323600267999794620223548571135790899049800408115639636289360264593461761916617478916973218556944079143904388772263727457205759639112812378132088111134034630584209754898166542959494167234263864613548716290226686446983588025497531078061351463398354037571379476067636222632026878087941905032774886318685826429559029205017381135799807263439350227273618910259341422926814615129074182213079808703797561897823650546663797679407017639826253590455262145438513809252448962977017420304842233400298756431967411167015318300260518067278455328890132969546447126169662960785237345640582624051226222328288305432407457575571910779068350610520992451894444144794271279149429994269564611928378355348666176370261331167525937277201585852337097164228924454347827054608566645312931392837091041348284089272186375635380442802787442858541993626375010705284626615716676174198982052972078601708404349558290689262132536921668812465632894582062805261252229109255254307591480067386796719981425769610112696370771021144703936395085554215555103303757093212729775148986147369774702891810225525666533898546737355455526939664375824788442941306469489824679574857541619464013269215031276661916621700059590362228093899374824635979767567988150003886524985952954501112844719844978529913888283257364513124851345784407097551120952422409356366374095393213823330117654917511551150690400867239883071986878090740536056739497190709301957350661280465116589882643476092600656038339952985204411143854473313711106464761488678929993927110730471249512700199365559333187497084761575897478732010104742911725212397515197242104431721078065539395573532035042050407749329162612533284164250272083779794335634699670807123312240340575631335952044068264720606781070051988552292791567621294314202627322246035703724899341841294540020538359004426195132828232215594774652690114610748080929441986858451443715595736389630877186940595134261447121792965547096309071654324373260076487734394357781125125136805942235539374673574786083120321330668216386903943514427494233874150740063963808697807316589245624549665115469793642494717095319018238324840254524541067784356907903596046346468135496160858534763125083480502104664629935012012056899154098352923021869312753508967227730469179318284278423205080516293454299214085405372539549046578814663341613984431390096334171340178476910642675334979948124505616286178883533427050072009272785927334924359800563383170268632805057197382212645093457218114583311570529554651959119011213445410778559120111621031935733468635120836199680886294123395131427150955734217080915971273254715897285309849616856053631440286233901906470945289152561813254923775659114228162318290463618360891875938117039876943632466792465949034753788065633129514205485541415442026105806537704135667970632802106678915174618078972015417691954258771092799197795522972995198067647177253532394498883328590856158305375228779340470245400846902924196265608096776262396387564220186555661287502951131167785208547925461913654973938060196382753951441823160970623762563427721182699926189350916882825777809836081692754474491387936918849642334856536871750133328181791761352605531265765576664833635651856733800147901863497385443097687698295109032075217893573547429241654809687047877514050989502655499530743235241133287723116135149566271997364917351627893871979001682377723603363047305112913319237570909103184916467843206671532644540003852280643362569382971967401184135246296858651702082173660223594152965194486297001640604678321837611686062277247936774558682979350027125497961126130503864859686803268663616946925811024138799822952917244928149984740967800665571364904717718360474449322352721305953919858634384234957899357660416391281429040013513770664664186725018630372152813112393970220321345678947799710676783789820224721536434264573457258777552676883817630486618938345599079967000850004525025303897327790962956811493868900864724199620088995246280117219833337213918955577354445603670390301116941772914539015352020126842612033010708835650565943453408525099927914392903698193238691871347948425460478914507564213113975964651134040378961695307388593514623738925558612394893436557827991466699284889216748404953608792926068621586600391111268052933584266241329068426901523486585963412934065718162174762724688695825680042451760667944263376404464431870649267473880592576203681172884306460149333374734332629701415483205401678959545419500598890074303122484150575918152209558798455048566446049271540077956801715695809481681353513167874120646275871167135280542330549411756586822931993350333691736373359116949092357515223317008670160730098503723835371371266016010918206043297354090185583832704275848896847971041324380964418970962369176880743848285441179194986818181304581227469238704083839743801266637197069958607552165135941218398210839378232042843434063307977269858356729081652512900449267601539716879130021211629844827767329129129401392744934885626821035011070999668151266415725383547391700488327855165612621702752575063323548740768564731070938233367481991987602082669051932841034276347588848202625598250467378100693678665487598953853357843812630783297404203214400756004847167720516169591937832484751175787946629784071216078202804887548239456152216141703047359448961040399714155388516423702784257975796783852064255286207903630529901008590314450780585627898814397217751996059037266471081213701590699324112078863720302714012931547324938446035274177543180615487010196573861122299375121777583863837528112871509693625043587975767129198545113003846384935226830090804258905758018614509873840783472537833159503772587559412279295842823679364297744594873951795116945299117541572709714907472007438278476530967716288787254014323147838040486728888385397047304193553229218908671491262501626158325229453337799522517873483498892259772232978154666684475510209600921736849485764426564219430081736098978998640574806018006083787922316279146132082034791569971292793994430199361783343685038310811430348499701105633243152251617241676256457073399702360370029610851345093345182843294857518259711044536989635564572174378473321421227061204586682674727656025864536790766961894039926445286606887375869731306035066790470129490836896499872383969060352707379300377405085690989785430076800022991455629203702191740003441145567120868542956141307146978375983342192606161546962944907691035528828850451884709880492971151493201565133190977409435436811359552070493277861668129704135400142603733855020573609867908815800030278891361037138785493818390040057919827348117217889568119312241606318493101749144242666011085575423232377741264717307095857919683530602798217676159904993228350449233511676217886419745032001435459099801861160522248465386052442089433989759517190616013213979260327200563906840083338422175796697967932908985644969352288556215298871171708526093890130704856638799641090561131316130715458823433894284431063002344132635897949099878244053062984795108442424891160988216589250606385194250729433555183592201474046214919921422323273616507027114831096694928672024325008294173102810254304829783998512001405430288486957493444883337406508499308540915927288849149398396091598834223883250122715042955436349884506916421382247979049059443779088271003316490814279043722088167743279967007056331713723251668592753632297930885523031155697251383582906440497570256590470155513280508378612611515342541205279262664673516166882589976010746751711891775659579966734728826741885497973867647359148358220518909757527935781866305842340372695212572201638955056464847687115904584587800765787927729680880489173538259985471583558288964268575554130828349676883769898418190883404453777063506305015521198253633808112189804823855236819512422430279509437380009528840043341886383792329021717897434164696554603490544438682635763079604575840023118249013093745309428702555157369569486556680635714305557044978312038164002476161929373968233422622378713230901903747837273739485281418508713679742443379585599952524118517002335796691072913882876058032185274680561708191362761981780020209191374699300492028292807894139845335099490332284577227193083551379091244904349204731165597366847942273451524766003704646676222721307400397378260283362243927779031984915629565743105148894053901037575324080358997107991739225337945829500994812965698904095500320322512246074248668817333979112500653258748014365393615660147167456573889064490359973755287869018735959224779388319302998449266468162441810713378722055607655363828201388983929394798150792570681310298537902454618760026339714772815152044961326493715163237553765074434166118842771114484692902205790352352212607955006996449200199554974358926978168138826498296332797332088428699352423504403213044913959399067944361917922315179090287066690437642827852966497948216486238783397416208854872598945350664948293557035654153083589461539285771661008453552864182896801450210794620708566477445192591810977580876796682083192102924576234971495703331610729887984640001726776541388702864809368333375988750602928663733242701822882930771587046543953980568864359578168644353012626601923230648862560884872668347523279493242837399883731823160724952029363282668753952262780254681843834878453680050046153324076120109457354865439432464081568937118618422242730508725186460425119229126849940411556156352730043923886991054764582844446151932135109976540402713247553848501341301722428594778792225392599251866630101625311024236196646655898890517106228686235753076264067198812496523857571657789963228335269617600625020347483894926030533336237253881202467561183007165704320974777459424299072638113691336452407524316187044029419520559734460824548360057807885182964662436194411824298873535996902909638335738768506682094287119348804780588420866094325126102011277149475971278022351902137263031016877890177287345669646229849978339920835081855618262913245269164431258763892418041848155352075591616470225736924651970306470486618042232743617694540947729415674242195308240605099364438203749609401717873696709696154497679727091391555097307435769669600366415272411160537488794596217506231530928271657908867575042184002973317707342547362306637144476043454996806734502926988987628871843890610123978936438056603943222675167881334757903390032442190342829199229414619357408814240681005987601540666121546496659223756665002094760493957481313426464977992895435007628304680198005708916733027079615332883923546979559400145237263848925442561503685235858422801944008758506846723821518835648201005127132061863102054595273904493939451190443116386401291058350246187111277336057134761757618334052540297755238665761268284799081105619055101756525562345024636578684116622801474586113749828331140335892247686057589094712610707917258296504533493154725387580856375212901918911207757458587848805712432111490033013485134573712341575239110307578788987624918567314988607147747506990952572522175127706985166331717097675524697353661175191120663041722027441924523120328355269791728223064565151367606271207494796937523236852815749718115899229926298329965055167284458707984213818434898498362782662385922136469857782761334746811572883704870554058644096895802821756779295761673813081498692189402721750070171150604666766417614916674424264632482569406650692564126325853427482789608400164646659858866570372956165596860524009215543093491267716015910973215636697400369249396760452637161733173404621430908175569344563556563983338694695443363508393220569505801625807271375856326711856051645471953628526582844527080532841645677662066615952080044883098717944840815463438663772534820658671643231000313549829011866456229704218784565439926037458005262732783719367176144785106948893931621444408454923097336537258935491567462521327606649914401905317210024641802828906092583510791950085931130336369843865633844601504277650827453501665491975961132006873338356038229260840094995782471831035394395685222457224143456415575976750364212257768611259059563867542427696013732761397659725041317245862237413320390754126791125559442393230866135504282500063853890675480158259079995258309887171540566981413800141191257021106532203144286576326695166200445894492468365815986439133405779208344820930634192554748152707129071163597149209861110068917774063725460671428717245470823892196069591925879231936860458798697649065752836770993839453276772704891575114609832842604316728580953400782667637319867287519265167307416490459991853223663743279875971201405785555792723686761771610514118289801020473923483974469386548697557676439888520669983529674906953629198511625668890185196531075338857636619455664767699786446604376117652842213980500782879577341708776367479336025494283331094891858651295585916565518618263452262583014784154852559766424785409696330695949946580369209619555502166087199113364455469583541322287106230976310811773745099802673746689357668315357608867622455584665405376781929577282707485960505506589957196619285125141169932317675660814156724406992312248068685707113781532157791399011645955580936591089517429863250528730494575074072631070892170932440412217624194300778562384782988621625917487888555248183928219965564853049218561448113229977162264693423337343387843934031150968695023776956004074116074129498965344155315323244823153455349626545105064541698836858158166789443759943937847301595519335704754451606868561551827288990885447823728644159113070806208994535510287173694270035858066007935971726540956202657551404833881545924048942773977262152950990093720774664611823212850377602814920728464888369711782766971289926078498085015541382914553822430054421964052423071626236646627230313259600500202252553802142777343944753480844295268580107096610341623671785786213945499975944850829365082066345157087548811984860138788322999670086635474166500312408640360158208677869482705198082727846165669514852983266727627751622724705325964027396343693321846361363455309335652982546112483429631831075221297202652725028508468315137721468413070891159079518737303895524419945521382867631971831298803883808836668805916104143365785062585596351783218956344878183665524265148300841809096896838932118239336615642873244437861050248213619201069931164723859131503348562345855829506596244851907259793586486313119374521635734333442649255075661912970436288881906435589473372916028285898498667866767655417332057113613045000371075461283756218215765851446453130162544370536776130442373197405008000100369477493575496865610696182598382347490078639475271793551086689269452606456241426640675832008607991202126034783376798481663218177310763494972565821316309748141271693404603159172762042478023503849365043943550737180211611713156137972382259300223555385947624445056155901577834042348513545443996293413107413653325660025382351983379817242111513473266426170365728378406258432517702120048292657012984991038203255407228134651759047708735303370481261491718566998930370584221986080155128583307934997783306130521459793631298406854463550317420428046082349334733631204072361800980677447564122808102799708038349473688332158928939994112541683962524740486763630454307553661122690094321239643422172260339681486902346664898887576049312771548057216938163445570908797575740304425714497908576023405471398415108576926745461765014261556861736592312014850917955070400879733001487936976618744942658892272012386346200580145298130716372529873995432704314458211573837156963022031770640872660882579748292959268869091735708267091663080792481131827337472622039021633309572334202814245987727514094991462666181286383939013967312588978618268152262902192646415571931677154116976435928445290469534491075315789749057769389409851387997719104560105487753219177071467652949799928256183659342866385850882311788310050329445384074353751148785598699538106296262609768317782821153989819064297565839295564092334638733270602747849810925858781291928707673691174272680473842228271698384936499570619424058868441503223132003989303428038612281209226354959295257975600933521880157528270297161206010110715020345575790124801300177361210588782234161694408930311252591094616482414345722779236501758999914911844621520824726655077712224503100484149509501242869650170980567355934167889289580931889972103295129961008500729939635389775968912607884764377758899569334407704510373888322728873655805724808406592365896470416356067509489750451244898749667235484426087091934165560925199634695549285523891452846319147882720886081226954025334709605929439351454632048411413753263094289008632144101805878356347721769468067277203953785918310992782033234181407195322636653299191330623609808224722710782413355489238162866687510161093860074161727797215048558217755883087035312181963987922347902775169333031475264430082553408829491064252802873533705986145585533668057912512015744888599792842095631022094256616915574690633048135558885544537193692918432838914822705021939311216920983025055393139976816405986504655070500732888189514477312267549745118245205946718173029094166021923972011772957976638565470024076240112077946763864043979819489923800764974447449348428602619460001864341638813815431802243482101193341265226432690076698027938954250749826806674729970519388570401659069824434586211865898754917994212339996559210694549843679174808467951517549156114888551209520314845400499639888312850831035087400975063402549969896907252351083149427821306148162551771149798649640499182557656360906409544387655192508663724201200482395883802267879853046445302662981542868760580993881160898279282449846731731043221551239430014510188431362554169789846520323244919427340864680062504721258902993970169647783458736203860421831676788022848970524469760314058829182138748059504083012194284586359200832615031463457711468724900465657088173430717612170207357571226691940830444955629142403987854386024648106147745300327378709908862020914367987796140799821433375758979692037702050631295062284181939863622156933852788586224799168206260046211435551497322118690339561128777535276870808172488676834139001897381868788100131686709960949853950698309153737578876116399679281236832464022083045789183902060723062830876932955376816389140956316319790089734736912751688062078031430470898930733245935803891586956464692278438726955754258890892534855374116067423859516688242504302840744690529491925034721996828383689316659267756349731392662267299554452010612397641074635860951070978002512336930422211960171836402950197242430770861093796837607468834209263378846219617888811476691963343692095474437259555231216493873303374348746658501512242302666939939634519920786610326550132800544019171037294715007694704952766760977817642840976774301501104733930110789642813246497273660631645668081866498578325921725994321149746871086964539893033371482923641596086064366403139412952075518716080642947128611010091713561221782540545318642720004791908194135879290917108506947205333779240212051440159221089185333164247662112336287469317471672057303206489263983434739246365522819925400926977700680133251045623065568511862920671953750355014088930220232278168712680726003563309989689735071950289784337658335193835135744738286392096267007636216891771714965522875651677833635035055670320163624667109360930501890483966965664297291025932511461431280269428882171947250869242981538633941892264805271163574883451486148732208364920763956432754090828524939982919157065010808765161739349727846317972247964619981580716585854703373048456503312737467377159497587568185368108563925016594513854913068722635077465250322062765166934987384050750472452356675593264470467680536149811836136277117367575349764084154737026827535321844923378954312696470465048502611947704111523921159685630197947400637752558182190143923668628846900930998188986520279611621425788972197599356845890775304995829128638729550397137161233239232731093739844837637240523711023980808668615181947614965115235336801841992345380182059234433909824646677334848372793605647276748725880503435656754172760635727038086941509151458334507801512292562931166132339683702213156869785023165266757181551237080159866413931995208572918645786844679740220676287913945437339764658706371830197934723027499594734755920717709076931083700721781679803619416769736312579805410052161242028331180167128742720153195143850705786364801697597004981063203637050797004898831869443644426124912465346417776085271131775393678755935432408393066868890799175695503707275362155461502530157842534202404069985466767384787639294073417539749884969946650725684445367276638999939848842897215244355282960976525038710504559488461713054850249465597278889104378941475999690826236297623943207810918261504795271751498770767753968423235899133934448608206965721781897088395778573826818159211465717973659064509784810295431716046730680161931272004132265175562422426537850528129517335901722439079823048008827779578328278261193196385371366466545626575889211052848583244047449135850576587562702242072005764537682384873169885687468139484333158421980811555016246920311478412229514850323582889216048554372215827323187737161142213747098680345440384864023388919598653891510031026088476217528485662196451723536669467309295065224259330065801087885917662598912116260471523221075757134874242257836672472106314744236060564680064843565306501443748929884862289784018064625923391084581458274725538317265690757931845436941426994526781961103811617593725947311304342339622830209740761223174949732211082845117332095390914150517195144573882584603937388408498556169546000887874331052337699267683278176968510535660863235542914636015074761340133157698853920969120757142555344758520944219884836368924353361030840039505112672338949642385766567420798374312531164385727986404583367058646825682901088669046787472418178526367939751567999608688058697197138413888103708471637123678095641601725538873775103408645781180394623649637743653590401547739822951282229070402280187537624329109961008034280073975234588933727164601470656539700611678588965822207126166472601118906134452812962131907460778930195117286670561246004167474467620191718367140683820395762216075186057096852441746647693055403032888051600177330947287859921935014995433992806071796009455614738095219027049586432430003391995622991106766743792036506288939083616572683678483061301994836566685964451242735867955427444578713482132590032531205340744673004729205032989585368887578374395001930043100749361086012640054498505301350945205969424721725478256538805993444947992448685397711545570622365646563866073717498192250874870538402425439128385794278642503176175352826907783071632982150214931772320135325961822840454789232766039057353464131304804669880680709879293505286339325157686068001863130975143733868994018894811439518468592852856374908129162745831820580501359041935233851582309930640922500969268791677769332264415558760985022717932925259405985338646089220155650284103962918547878536348176135803356564127799177705411660803570292425852861939306291447993521149262766549537755836646030492249772790470654847968989361962348292792231882744084744323456889110436507591139700338110351116992236828398006778178850045934000002001598656747506919629624586891227634953428658474038715825711181706093798778081129532124003000969427037040767473056315783771028158009168912370551257896197362851092080524646098222843116005604851365731719063010642490546998401606854435700640208084360966508386502311913665570070888415043285136140687276317715379895195026853322518430315316028730997626141553838801537671635296633770986177430197130210888508338076258226061764216991927647106591215209054440158178110306582156975611632079928848303847714952546445191300439585092894418995040277367275018873696835818503372942942226184377538710112843826119134147916378752734575094094399221359727586288392115704358989099005387400232024445222495238315893471145983776957379846786359174557722655377900649694119823593145149954929642951104089616467207639851069550567775285613546737536631250297569874562548262577265280242388202094039154376642622024787121031366571885926055154685628952785918657117605650373048543258252075609202741102848983439558750136159525382055555728709486923034077633480726964330462522071735113638486815397423490940526819132327768419270084896772580380166612056111141291728638604206511890033972768118602562441624318416777585675442567679676747418148426780389625395877686959285074553286809134785901259782538269350781707192984606864062307658139211387106767756817324315639254724052240755042921814067370903210305339428441001771009554961689722718216550316081995868970935970558076208579871305598192383970981501189106537228663024539728435153232832992567417079567681640558667509129574362558625624463933865746806227547928028417758719855925166724720087310119529386994306482552313327624328942598536627243266641663277298693221894819086342970604174017641181445739901883457261303846092263402354743322013335177677946065882672805574782880271626551660552481025964101485068306187497095206634307719429745972389973936676799500402832685540947936434249068236879208272820448402842279232015584920448435608745804406471735459921483551285334791512108736025502149603913067931782105623421469989458591592092483630969120314672347639208490009151085920295390389442670130563308565097797176421899217164468419685489297208326095221109947721805735402018743999851801171561234568947942999156373831485395824768806698391470495265701479914480712450987880910113936906361599781764980279377759610211220528656822708787184629841816501798631512303027019313003806450459361667867648847531690213257855014842379291769233081262049287842799024661974590595695072981103186475481967710884933362818402965674538320393650453581845301184606788575657856536021247851099354301408796616592088731882440438652616599079051395687366606674556196325858580492921195281238839728154104050460525614077427579063059345157411786713779876566869134108106015778771716049457416343536312813408808800651366988538732313141467892252835100562898800467971021806204908645505568349687624135116986667087230205833009271879982094592287861153172964488940899662523733328606658683669986051905906422058699529797717023616635784669104086373578332751583777914872651115186519104585455121546129481915649481324735217086047110317504389453057513008173608832974265999684452737016915906308591310948052056056344447337131187865386560552755578343379047460903676130223372640731067807527144405291613450530185370545376364308363772820685907081571543804466437581892119915730606311196509466488255971225283627318088547575012767603297674753041556109874306778626272315934329621929170851668375806625637524591674339705041013763380644852919899876104385719225037371806524157179108349550771514948162032978496881752142799415155204472176680703446916023248344884793818970542245214869022117075290088910759901650557881579894619687910244845285233100133941944015001561095390391929011721483424022559425360329075276334469467161059423038019434739918841113224003773204058543762917218468625888881856340086318234843211847190030624999213328349231127476271829455337912151966594924800486583447066218616262129780745107508840796749850860843249760361185734640678222117128005219753218640398542471858008113260930886854219008682964492531601491044892853851972071945706009741945796490865064129666760017915820905157228600499181249026765377207147146744201932258967536082473238277560522932015800350890261272855662267431049859018469395815469014833891466816965055120353337946470952363832207965692547223478395303108683573743019728624926052354950886590964281250034369842577874880467551319696219207123790747195567201470452564712767523013995772401583052290198496292363587994518293483928661361488851940888660845409517037567869186897951601531470583705541545262185107024200096978453577897245308733958043993425785007559201277229798505097355991182257153932400273789009215895767888148538398129223749363486194812602677996584097636340191190043394031652256432655788848526668917715088715347967796867858192913724651819166550362422987910959725667461802639399704664814774463985326757278062461400123011794511276463611447795735442341718045770364342425701794897328674012321813013629285762904375099007090321085805618806203459161331848207275114197993718879430243036945510330859188133086616721332606863286692275726278316431609578531053825513222265715136096243542743662351549099720905516119542436616012003473598166538276249347054976537755092704941968198121239719913657414492909221433825465796475678223369406978765706770756225289425843493390872505234221080977469461805933763243962430625491695745566519289855728848029360482356543859819056297254010136588849939723091086494594340650145636984057433377293170049996633912625066038141368435282600729850396358100988794984679758805564350137640014235762188725797640126262171346109484610892687917895407605815032464819181326024247151417837704409635246813949985828554406277968249110375049478959851562591794424291476657823530396092298991986796756721513174571016523184506436489344160961393329512228429488517180012277957171770830495748246473044872078950664134089550654121845947810842210804541473388878250053511269876617350922256957825873939619069045614793590231182676835199339225458986427769140869961559391179158559260203398114682289225776954452720605804324139296761637694088000264761512686696669348203330384573804285059945642976772077626562460993033968418520461271287279822197982342768645809349984581625692220608587612830247701704921851140499689483350622348568167621110491875857355504755396637849001251065103371245813873721981125943596061231955286247739840656106303435324531957513342361021984765921665125014648753113626718689310175553716121633676890474144936974987407993194852649559067441085950252417530437772607067352852623938279700654283024596191992349584394952525962895529658698174151883021405410094813635196202547903840603129705168927376699271685248164698516107886842686378003814893620548748183683577785935982399244797868468317712960724644847746011786066822803254399268865268976935799720995788840010001677850072136505338223001662334122034376438148026498793429535651670332506279868399271252523207932113651161160411751695511192689341482234909618102764287784648963632768166987861144845412832483579264851684882113466117690165594367415913896777180992233979388916371545393496833474263277867763533980892923182527930696430531345725593622307439944198730690919018835232944456790969367399358730705836769717570242566847623997651305530672911406662910310983090538621469087455540395116281988845615137589504331852862266639066679728145168885890507684988351713652006297256230597960385245295121643146051160646397885500282563224012943907229513785657335147899967130515605249208471172071792981012693941202056651978555505590215223683104166160233485692490295065818715593788377113303855372787000412915378242408637968771625015527907688588785740318236545306765692271150171025430412378506820054179690511926843298211970416056153350743227037427969002026640750810533275422945713183294181965467853859733903567501237659890967407947952220385745029415519821674815885964596679889241093653320429499200122346256043330513786749409224383822428847143800621468212764529032909014037043871233367950337717575458442061222263626410073733685351696118296265427662244601739953071407086160326145118149629588814388170424512018212059295081411882206379333344934642412987423446646533226161975983719853957937725232825144351670342689501354974640933191347531089906636920362688301562623525466627803428881674616888848176100566427926327673638117309496576779702988373675576056873899230051231296753971674478641019081296756541839974589105043684213671212364319089943840959551294699735619662910682248442199487732519905841061722513771914336795666979549330443750227648472727251161118344448484669036510249895686229597435822826824315464889161405048513579611406787901413690278813094195751036024064240519455262628138851008607215209564132551359220440094995087816700788061659136546220547986221255556616953087625283083439403889255194537406438416640171686735690945777276837983012092716623995871620366805553834208919076710043662088948691863581518805525728509931243899356081330593096130340885105311027541108877971472002400790970524141381704824756187777177553956162190173293085878260794277987619115882979880987853125881331740926523230826656681976923258190574097973737957237709847829571367268053493423322766221810359103045881069922382563046388110684298836344699217388408969822707085103625964013984057541394431282188280670892685991095174476389185384461412133384245576654631178835360813086998940621638058116938118775216692168978116684794579069693662284736634094161942866216048837207499366714318447290519905655310269651172045089249388597639086785037276993997398935157744924388468322682176508592902447858643429050414633035739153673132098621058528278591239674203097258986021330148634721622595261212417565508566160649425127118562904692374192179929306102224835479729018660757796366328864034919490652701860493671220714063379451701101898397014476159224142699553459647511903905448424562751549053019490008796552385500696917525619814994272254098437393571179859368328721075317539666089509391671477854599012406786372108907355050429395189751598108581206952822493419611338840475758367985725526536423821454384637461511870944259926445964660937400900921741875247002493035729839002413897431235963010158238525679585411296642225676924741558352217507990667815597327894122814789836019536571165737323286152926502739421150990433595255538045360184790079513014001296018383280472491595298323533646015810799232416377977086515984785670652238701126687132206001610270634532507666000525457095773296802679622179122212990403848541279565501672085702186420791900874770047922418614355734540619740330030546943501104209761544283665660959935741654248173412940791608195135617066168470594487027343395341941797162555632999317477831492362716922374977165559132300686889845770467252728182132722140726700669029454838101424581087029338785293664020056976841042685474923038446263586098613545893637696500494808830909161693740451523406376542530716324992186812217224422965187547145500538679589042205244003797681982507860191434515977221354470468326857493031006030617516626011771652062326416233741495262776453771518321278996169862949921095569539363206389034849105236357350182512252593882266597307874240646072849279082721559210816481661234466155463465548115492113542292415141353878141020098543635278803642519546096146335976488358879312249300175159079121448280444484562822856313161848992570071579489689664182885776186428580216175910512177094916539974914741632203291899099859640143633280420610637704929296976958748540213367418358417561351413227142464807254584663663320627696604150398883794377692421012696863765207517661382876517512690027576720200957817978419263822928665870165299544518815050108150118738748793602241127940528380702676735610610663421672154992760892058174807690841309230210593504607811569786058927136364999537277472613400222661675920282602342524899055360285972903782702495736614032683527410658788788219870999895745308892389681961057724451164850821720976852655071351493903520407478411591833069198969388901631925128120786791865514529913601504463989409246278461184853446807652930986291015270718048898006602092942015028080406020660346966346775594635856615380139066634780427489200390272796143443574194214111109815044879140963340078778933550824474079295134516822835043600357126695324987420264678561497084627640277516296935602478018996174894374402813552164220250362153711904610166140390535824213703566776594954170675678218311590424777169776606210750602277087875044406827288650195623801451529692451666699728319454821838212634719815132555038351881144434581174173960087390976063251442438086597297998910755085234108637782923641741717520207570251392090541026160131671638015804114747810753672397184802239809432667567257685194459061403849229996555597339917752370164977117223168250366325612377218565647649037078672140951898168968940640003739429022184223693450010435761738544479424803747666394135498067901034835407405246380393707417857480580078666753345439989526535839856453404239281556713295918790385152278469925115441840738934252473166416180667713695012261141898050974693322064739720688588478811232385990570071470359916726405673760248902605628401920014471893346413957891573743764383303526491773475205379640089122396781802246392792993023998759955252931838631223846667190333686912051764801911663516067905878075413550647624581821518107577726444895967642819025419874787441304232868005237897670551396663819736264007212424516555005125749953385650527461945931796367893852186970375649116669973478559211611434512845698311436817861043590057604134821296583286704525634585812653777036969777033197282584116100282679153777569794156105166009543530308936885959413047640292788913322238494754783827235798627344219912649338500074091932820385061700531280371432018099872970472129590091679803158671435476223167286970271454142709687311987152005878824958333540527766254936208150641507223849101436498277120557450320826710345488658978196930024361074133157021359521764736562884089965636159508641375382434326003833995929752293181659512385119048689835587246527311971601399127917659170290456968245496428255924018615719319842654426914148071596625258583013898502518608488494763943822204667771976768793574868400019757528381080533663733305470244044076187789175439952680501095854521244925338496471578937581383186219678180547162268737600745129782930190353943683916499977741489776663858472379563352416125375595945312898288525017543477382956017339183259339048387311234858464631735183593299433360557504718630267697751146437796123389882981398223690210373451392775695250869575343940347766761475195586217331715068479039966931827612590190714426574412355531119940327447045503464339935975193071348994664830989667620866241964359559480443017210270870947166235622031804765925129151608489636796033108994653343156459797468107937854495825715739781527887207037039681898866381854597223407230086528277461419548133506192865006136103430481213807982153642459024131107669688530202966422382562904062131677939248061358746401628069627226299757031090676152141583214312052627286077304840234483909539352554422102419345258507098620739801478287619255978389862803355247577447027068046012539305111561772221018171460438049016301006579656678406247853628123577414382665331347844209335713662138787133260785127258843434794953045799402224357661755819473658984279662950640345661328662659018917404940458202182761302123604056736812796181103736014286263339712627628854606856323988226444749920180924457135969921062286895486229842526188937831159581268711228461106750840610662862817471080586075764819690302636485350977647670577060421280988421904573101920321239108421375756831506475572464137470789928287354294673248157475116919276970288954704374565147149280357015944612041797945021711236203064440526977479171578055258311864831439632901626283313166595999402165172032828285144459772941464389368112855449779762888379196710928575799367930076383310449727082789443589319034473588710195796644350536845154410240301373047561168024980163442806876506395675539222196772213464204487456561690497919141100375860799088118211608142134822623358242705472065923642302031335536358061836752754269407481078335718024629989781289761726111071486667263702789232134140567047403208652647314974808665986479850868337276183388844087014340461020324410720126038006944615029952206003686969639092612283814921991415588660197852555800855259887151269463417045263048346776428936629423836837768961902731103871008886922669334917420534858848576682067982128971377121586932738878770149925672645692684080636251125815218254822919806533886731936273265923591608912924338490387391140286096168233963568794962456550226272156556180598903734947549500233914747488992304833069355987491302235490718645736824626649341165287427495951640871252799940946912630153754914090428643489110375583737475605895435802309158016933122741225695519460132946656257873711449717692691269536335283117938748029051234663994382473463913995213327375775522830142024341371580370853513913832079176754229195924750947573264644859610940485503292727497399000366940090439257702620230313463067924102729677235848664149548797208536076229912558093502664981116014597126872734168322699069662228428005415315412252448121062174975466748437351225822224437115265104506849740645772232002590043832900778106775770862538860664381142139234236122326930122574507177856306620292760031114954198741671943989359422219874861386881069176667684288628429095236444424133650432870782138395307791957519037753278792235724485268072278561710933080707627102175351940999614321073201742569936906785696241853924724249964284738486782487380244455716836607081016727107289581494262188951613462595900827372082431149474746301727345759480440912682806422312955511694499595177846613952288431917369655208583896249182441776470474928462823207744538411426233960250226373028097249925896896781522393524324183895966554335976233689003955736442205674623697097325108896289227934575621731923259775666349147921745643392541576066601495057468837706376683600426355642791827062591914647211283209571154668975871851633313906143633795994671646992915479419849679369918328620486698640008299188920938359973717410353689208439616953493023353096396844248698235250640813622565793300992186841665819530109196707903671581041214740342615414504285881632127265857300744452673844000431143294161031620881203225405394086064993739152417386821044469627357312212508475117264826234860246185600721490260007440369186788628155302743732180278045564462446648593999818444496295448816404578604182425198167249320528164140929542784765606279260608812966705322021881741469893378457013917439879112724004848960830254524668526431939190136053793610787765674717678767645889554770518533951726978532744882910990252280575731400280948140971862980754287011628107429205557421326924971976771803989051681833032565930926120286115379943942303742384961408670494372486020451917568189532328685140259427273740984436896448878496124102722720842207047243880574772993381318517885126915075155769282973581205280338306288367130346121865735612372285283201186816733612386255551583740973806151826240085788389981134332711781891499703359251156082262700139305260272843573330253628426853448152866609997524795701367289869652836268375099695374405729999804066599142523728247915603483600763638441112710246008832963638609524770720224122727515154386277509759693040944103764549243482076734857765969404541414987896693506999773386035034961971827227563159363867795170491178757906860279750916713682253414834995362767757577870729904624685219078371502993125735904192486664155898560239883089998500524383177008630245269879830140481527878103855583894317414010898571045943130381821249632290330907792751805305195655572678317851025041925287009572499121175496932971779809324342274319086043240766862931497887333269830927886486760212343158555820296800462882623647254081424883903197178243610609170621671300032555792768497129362385231653930354566597734531663792673347631983758707135319161563523709509858120697577841862598224297208610209099633256068614281701873484450996858213711170290454396529533696076563619981889773752913699762819511118800474602367560047323054294713608212046336433062892343777324277067598890049276937891042468717420720155054847252317386555573916632621558932388297762696751215212933960991962789436528289789064746556755535076917051676463178089094226433655754778803452440736159572726120578166390111692584043119194044699693013014503253695412184746660405172389804018295726436055105976908554003861931255866758126803464062901714201454478258224490350721705421479756141900246002823031896933555844808843203145658196952044412703451265578854619542755112480132053847188617613927543706878097275336557533645352680167857704149765695717670618367494180708104952833969958608683119405021367403106692947267153043136849336399605962022900485720331923183229610758734567113243256653168381841573639976957382174243479447723483249056350156671535644108379312257663987736249924191065930977438697810644303289512921555513498563214215931474447187945472189663011112996832477670081241996167642094716137566888828489647216603510822095697458416620527461612774459970828365821975645004322617136958994392797114915287186072433459607898564217609842646696561604117001585315648977365298220802233165965501105208132264189893360617766808051065708641498942003207296971654059482619368910455327883975214140870080501492943794996623861444950970518647107845203492694395592796049801087171784896304061394522318021108733579903255627747721992593789762814225625236117750773893820773654316104953678075926218784815201431490384216290895633292203190654499655554955989582139510310099762058465705287907817538774585522462568310503981631935258519841695802066179967425037278401612193729049099743964646741275319352484336749474122132958626165309390969742365068699399676185029582716630460447441360076220641529720549116470674577600048972952344226399773459744233222429677116455485193918689567283282734610613961742665755359502161121609336568815240871005833309469655571438204391216172166310101491626636161665770603948343443408132622927851172526405679018846071462385973123222916815149705809252046545041410678084940097682494013150328745221197855736690194035307063829686156528621186131456277136334993246150283070501671216215430983256317237922436034086813272280484991326401650924591235715011313295818892333784810347397196710560440245694166842728797191226224356433253631036551529127791757192004458997532395916337408386229771778492864253539740384748150166944178741176593644482436613178848138134880246071289994860538233164619721837505446128913425154746793063204127952277519771517997870903032823348646980888731504361997257507283899604468912998922880997287287546566706050507097958834345697808552734827920514123479547739283533975854562735515800952989600019816918339498879762485871171254016239916092572275086096204572070280129291529549130597583892117191367274964400521968857218334120884243092950026503817696515945233206119939159181320410365679196762632546962073871172896705492564367850068430203420053715092711338992121496409191759000732636195945420884289339280723508289089331179302245557782218805682105646854093970394408288972386423641607546993400626205441134575511104577150590790020074769753295053163463992660312697412361493492007323896824768812054277475943524180576285849925034240933829713351725912680858450838228127062655394388245680973474849889491515295174975853597006794391717627086025225468151821261732883281422185183579936970042016245177885869227928330715224586048688992705008910070107970961736076254875552139724753127921192981001034604304097860028713200939219169712111763490699304432889738663363059802812472345270774886827241602013643606944792540598951253326021284784301539723290885884469028717333008136416937652500920594364895026841155688581798299162159190212970614570519572714527390546961159990057737578864518335496868198447658620805638069292698657487890385961208120437813419609332124204030765367333203473827548332935674511217558014509152064218082720791148082016337298512499955165902901615052834322809053359144567630259711133547491189289331314267992821130968235604365654319781424218696043214435108940569603258991171703923726489315104365575007873392612501110973875648688156505857136377351532435838076184185760934869923768812077314245050423429375831202727815507057914758569631262088340429562525722040686412449014343054184139958618215192033794558129790231110789222696257356514740991174115245724260754980663856903149297507624977203018148314800633221656074822783119132559967778571674035242468929501464212207439845971188969512440962876937622891660186833770047722786695448222686532578008350425269583036994550309239055472436390477105304762893226408483466981226822357680364405217231634803068448912461802867074435031728753969619724822801469112400324176373243446516556302225270890012368467695082178647095683368952019319781483473478257845955857852490883785379380430968238678545707207494646547012199333420175036327401550817624603332390054947573482566686104122031852950771654763716583754447543545079336184017641266144639806045538915584456854649564174668486640265485328563896399812122944881816423254397011648844416837056329373717816688974941101698621491574658049776526142551559023120694750288610162809548741619765018202156423069723424644229765928975593585275367900393219815787902830358118193772136400058583505289485556981472546543074443562461652241324667608585646494622192807044216393860782320254168977630295973013602974162029786632367661454128766845119418849409237605621604741889145323324238413376035745249672081725991860149633185309196576284430645755770679113795426581881011505406804464372543043949507016342452504048983553809144965523129078549827346700490531588172567187473895142466686283363838752306647571498657098822239883050455580441339853900598284173472824985477096323572017065004567520927969591983641512089393453458384097355680757158713665721873769617466946664315934039218278157976478612890990005719835942395058570830705002914755574675014923376287607315647007040508075866147250921615741605499492722177324625608578147223427626325003461751099038922885722569145131316613372124062108525160352614727652573847631002831811751629361396092910403299506205089986647288574442838903563080208466320093274562806136180988893145067192124162435330092401926191636194622645218283412100114423963983713404865563497014843594570645895264845498039662341179580381451382305599348151970059176456690245443870178733909486478680892001386696914316616526323659394349724192898678748829025592647553522618844073936586654280030820679769920351819425257874176835120419455844543714651538516940430768633307870302823275003471460506261024360228919383016378631482591241849183358552733633823397191850336025068395017398557644087924128376777544013470178222796842077409906829535444001101017691435954170397567389241079422327852180385184113603042540201379078505416308098762620876530441646576535965927890689192658716839071004212006953323289169821100257665778415279922272928396031666640661993599699712338524778791291879627270833990351277997397401297882572897209410327962791623219585491119693939768408122636714195822016485627548653968058442337478939605163756051378635070063001172744707726858494719249537447447045654228084761740723253590454449315684816222532313083792622835863324084938925610070410208037784168209397219868094170773211851965673574545788870419144124663322864090846405556516020713909880513921640252156571046019579986883273407808033854396356487040895384424942381458162841666192275150695059528322730962757901837638691096489172090432614974731594964791638219935666380676370381545343596133582873117176595561777009877636511165796919440792930057355369910327831972736011601795278800562434855520414962064226581978713249693071381799076181505925311275260928081710580346169336535491869026947436483769260371493479845303983032583877321970243892828964575258769271507369339893697691538318189685105324133965329166091109130488323718637608532680413854067274266930235511343467441799446676184873611703911934936653518306125113574057141212611080732393486906410727390235500814328029497357847590745410568940501505453862068209373980576456423375457280841486114420338102987724155554413277385028661796243937112259724340098224044708757775490724138456884393571126132494798316505698932017929164945520743658048711077510339623453130397171432071370919507586466435078127384997535120711340212810784801572405952715031559161731230569511081552591039993222590967800804329473463636508543452774438162404094015542301080874202566249001939315290832253816160824335832960836346769051840261430666230335286832103640791509754101618095714562086999446120190331832699873885822220936200548437748231754135319098754328574614245895997368368142670982394048823399317158313116347966869034172958904348415547801119422104312532319120737381593071626173402877680869544220183793547513339011852728110083491151796666349772327686762874325051626331068671470785642551853183531213337060414964207179519510414019073935424464964913694650910028139972929947362109846731056500194565675406030347985785058033217884410597917896555049314225280069326400371338538000857823402751276647114725322594668934670011674073350060189722703623994640614481568848205365488034982745305184126785185893358472448201147632901271830765392587937437103651981212310413642197141296196028721163152847331079912566552138503742360437721638027522085702362737992935970701677719662881771270261476808442711638032944535497227475641033868009371780462476095616264214601577261470717915643721399103834814780210567012392942011775020521644384944205856925429546077519957024160548763779530668840406324923797738482873543628237077199605289567186029617175401037317255065456975015483070086309526736445105227520722653156859727381872996301823165322666643784616374718877168770324250134916553467456857059145536310606101077267404292695054042585619322587939834382206876613647342871951636884707256243973029533752077100249648589433122316300274498363797380287318008114658278931736511366162869011125175268511415110841277515986171788892160625757941102328055215609051445647538315694444514081239183036913688351245524323940080894883763635684436384488616346794732634388098166444408923452161172712697204321873077893126713320493811234515612278165272594956498079016944992487072602560677701735205805476429512679657835109769528413423309332194930646120099608276278159022339700180061977742159520865369313982804045931974017490978597978310884434068766337044955695427429990206920026128928298626309163605386285590401077055890297640000445223843062123790992473575659240280840788974910611925590191701564081080148782684679742400103308865222905565057160330355301495403389851045890007687238855950449605245361483631100863000829696762195823177813134576179429064733460834598975549063621592400998196779033925198682106317953782013838645624800670867251412938759068721613644167727607296832241885571081313200954962672364807571263578240518617569910485178512051932484256700150624408633106937654554948167176601610892112576727753080443676956197493051999514734258480771259527207109635531174725837213539652536653823017836559416051278212092169573886096712991151427477646982449377347534735180297575866321691307178196244646656441256343370642114096235289247360790623967991244786137364059203857341197060819389462334010791602017060251156690166150910944844506956336027702039196666345763116169054327857771081948146149065911282520977167573094990186511350019043668983184397964486745872889983777171207115353713477709443248760339094559590623590483132906024311347233055005590171282963312935018274397274316594430294570268687960944559303840826264496939509174086744140760045531537829401180491497475984371568695222701730747258964196553710028089735144248661316428386018558677370596936390958280356248615723853056682800102764089331442165327576067812038709400275496973582671984703164876804715192403693911309057377108194731782599572486995808118256890689889772513398002299492713673845677483941594173374852888732010948052801507708991712552650910020978006834828449401152808857977344379820453076616871667813125606282115747634349908563596598156574648787895157677654923121754278115012126724031362869452560969828407755647083647429309953815238299584728632192943568201349216733869405008884476818436098889411922097281104516824564185006407580535168193514693885655025452208117137201007176318346003839358562955993030925971129110041535079020812530931472925506118875334517790016097355218770723525535472964662819731321352842073898208691737716443246673774459011890332959526248933364772528317201942331873683109398462814385980935978966056716057667311573681701171180145167666800970765993830132762197839404025493258886836767560821382267232947880227549877317496424423222864500340944934282372943954750319715728823369060278291687066456821330339904754738081114546462160307482861192664738871849679465231021379224978722665003349387243908027894900247829929458681450639397882371586389892553791673049299721659317139677710220386536212107140837829547675614719867588354920256124823404500022484226347865597699024764478538223526587582094098661297654576263311248831434640106052763770888167886678908721580117158284613740675662173640539104233745404922128203446498413371100470551466422730530170331547867687315404547351719335149461096355692397386439514831422543977900088168458629839183072896878321542106181580602303749940336598170853273011526809561363764263763919396012186244053864413748813495953687074539031012313427499853693248746381468343180421541485003762183967208472768253314162242193616692062394017918047487246053460414241218677386828499275040409548364847242021530572485515059602422156319557437912688014983644690399573840896379981568181977936768244687736455214425145225398258409866681626233061353805625864704130566934452756339939197528990893460566737307679329803794893490848619198535784766402364485511522602700347826971817799632035604690382789052863618985652964392155440904091877656751736027409695751422031599237197004436743597959473634517694462430936084620412726151469321481056729432623417811649036325790525655608524273434635372303645866115547313393782806715534682751607386468419564778662574526002430632310757092753836020073849752756395831055091453494453888094865014608171545577058659103759354471730688032575951710642100115129315997037875927430232578243090497528822597781168210466161532676716395655000765485547480880799168103698592140484313718050929389820178455892959303957840516741103413046695396587971033338129840788582574104914665330211293960614173663148227880680650269030271468736118279319109679505174757809091234173887697472254895464203088041994204175722258973401353111890864803953885750148376654109733170208666375584259592939339934572244332115233028134627144244815311791136874332599115921826228326797137543598719783378304304773742753582329128014899240508103538556205149561738030139185823632642037192788159866541059127425379757656357280135898204096229891902368814442695596668415587254027253218350040689209988023721380695021472299815799267283007253747496240138986885940068967781515057003253285668724744711973334407022331102487967401675103828599210719139240438548601610463755051107422493366975225750401599425229735995540211760125024752830583898068137039884286528376739322144746032619877170888690865108964812138029411382806520830200774948047401082987111333692226496102999369237048654548913431506115565430654303143905213053854983062086240582063096994227247359342815148631037423078677889981772037237522323351788860925998862207709865076706292999496938232710729800399912571448654265514190891909820175846812721667097938782412408647997697576242304274410179544048032477964304485615914424200024415239804402790082118232872147384808700362358233951392622006633037169825174180487742036821962819343577928804891292792114679488002832586155400301490627830826877822639917864422470435635929894392281568826528923295399002009580798786122407672987049721412742802775643051561640283001345096122150461663089341884715687129902970973074223335793056169203722936101160915921028810316967487892400541471500224107178109967864720613277384878450497647855756660421930619697912139673825780794209633491878479832086151742089504446905243600496481527738291093748493172808124530795686363495998189388954367428256773219932748133104611179551845743464248976871552909111638505271466184323607489145847382123694215218615514552393916800709013048409946118164771026691296184380460348818227737782550961882905991746115286063142048132272268054260465467321255690267357806452520833940531374305027013499452489384956749722554499520510659337553836282026401890991248668475676746326241777463831626116923630993341451216637147019170638016646040110169861341531710879140256201449982418235414884525427205349463431202598366060751366254868268883327574153835769301744317858241495515802760069512906230415973260360641830385611481408109908046672420891267146620177016653752327767794903417417722744333640850022173955320324336453256504500960944170457282918382160237827016819421887410882300346959401736737145459362797590624391391507958166670623216398401243974916546873883236508085615762945911290990528873270257118225123514095959535782237933509914926636274183792448764088991062824146114779269742196377856169743821231109570906514167134981808935830514598983151492849958807189777248569307015697545587613421929512819623523903386887574397957886335864443703183983307738306213122282199414303126781343498790803081004131440316949841895996425642911265132595540085567894253794340620864429943842302681343929874267567021973653814009037199980338397943183879734584222292364932554696634110608977756458245851988682470593506222224565641600489202653080713511578556468311681948201211540616689533149737782812590185229464716742211960535214302306226435335551458149840653943013454468105401719065540425476903471793164490678938282226541661291948723254655241107683571556796803032816385163702313882214288492466114808477463514869267091726917226916783062060942307483046232477264052045122463559886758230185019535861359575727944846351488680558322768615293484915082787584241353177112014449648843490863803296882413655498627346542930935223077482107237397574390333561633884294891382481566935987461827238312813151645632644363846547010070845890134343275735555530935994930268245122132809281560058339892138840195607789212367939081374443671790717986710099664188826782298015398879304584835037852539817776049523731982196119602927624380953666230414996984796826718374713440901004906251667726626311173189003620989416675564150140577155248199851051924200827340856694155622862429844394205369010453822784829866847922894210565071166638024075795897044338253069553879865912027358421246106294527691196650139381196117524058277752801470050560859645643370097969001229304906860466619660596495480610567580754355299110908073142612201612103572024659714789837644154687071454319493622515893682555984457681333849133625810686985051637129296609320343493935551593384268108969656807255007894544953878088693315084360056759429326423605732295609271702920926467274326987824625952621417375168527900372343726044365458333173119553376056384126674022394562362841450211841249347629106654246365911965269925872205534182946166199999851496857004869758990495579809327618517419581975621874815840735673612667755319040533342743418383685239993944428125952566353849138480942360933990743760708046844443902384091983164175014098787502668098675781924403187520171921583342480332240930343127764387167173529304109866744586548870887631168287103295253465748878920798938019264483767147776562114458965114399260022731499525244458312927542151254753388180480297179596398313377612323537826428819343765038572868578229415139956837471947682344195254395085510832273609661609887601846711838878483438018595408008957319735512532133140163846956074463663250365879161129710424962354707144088373086987825775357835410001963782151135827342728798980454827865800018705249494537416644149218053086525060269829885155931132340915335994466898724049041581735603784161555063199172105725533284948538327357433751329284332700356013141303538090226094561126681136012425616100281416628969045706200424524857198474819217683195480047234338878670885024196074796054122499267540173261538577508543473978514927293854656072881085679913782787177511362543362935761115791327040799948875366897516493562022346578390346775182840298614390635308487645914282004011209818205496813164657518718357386464086213326473812256460404024805965244385309745553470951514367974138875352108398010160671527365573506165134322633884339381836627758927813076118230550117793233018803883094972274723404299832257636471687323119558685719466260460933923619096377789637187913556180585385895238479676936519365346798081164229590780979626363788778863465274568430866469601712680930271619001261858290840575961039180919398274209357925254711748583954373149205466463306375779059247544740277398194225393789100635638445114192116240656840854104569997378084133804742064362694355855498203792961428914901861227470268468267169060129942229129876982258908671806376527000090465558401158620366302899256431720376578262614926067289533824109483926440577440622089919114082314606840362986105260792070730251392131835040363971304347399057457771127864561526179393633124296638450320398937511305731552144281588747274931288635278591750267771026643879671366371188429995245818009130907619232170008777312480362499069536346635930354359704629007706993691346006718196527712386766345932371065666944437100320458690327399105616854753418603135837901572629638162177442121566122832400936053008709307404326649553351521804327562763436366200997727713331680653421967094161678784596399316159519295618502901900752350300231305697086649365620891422966928319362934144117026387975110503448525279106413211323174238846969713875506453498310890442864915363421719940912139568621405575506440296731373678752805412809590572691309875402285436787143314486424912496539760640851947781594003574865840300246247596150169426049136039336273437675295674121947119548374201705837249942388275547790908932911671390681540723988304941124983547326856497491435122451432390259282487368700566963836733022542751935551242669510217038318856094136212879285584390796850880465210664421571767802461346828068967039047077105938976774863331032121854311799791706197790412469271725498219419048457421263220321616403609507478437934393821624127436903980072651832321129851329360093404904594288810470458100062534309070993082511791658158330728897210483086867643327036675309584216796738353149198504084555827378775175199876284023563408322588480870954801399067125108776462661949425726047849647718568453879402646894399602254229718138957054284982736604020841653432263135186237812907242932428657706594392142022583234404983841156192991278700773423354130569872910278358816070352144002620924947701407664976086015785551210182334378291949254458513006914588552278605201673577210028706775083141714082719535554263478331235886841501456429960981503217291324085725940345033033280140357578725675379673182837459258623478158757191519248007933632958350463718705145903129897337701603002164557866224488696218711746042102538902643090382571444637480755518789953963126455286906404786825966319494557648509755840379994315365006606992339193912141645538138096056513070414656097853583215645250748069789438543554958087266998434396931903004512055232842694518833318519422935170830884412954374356583193115245318883116721289298375752197943849210902415810726018459472106434069871260819710956904264379518800480241365440246456598016405699188562612891787587028986131226239671358121102530416665394124580987108158312109906065315524177257623651908749619354463585821816491575270097947546739462099265328535523556332956653165738571291506740329644238986777557428861135724540095318669092337121293644455553859860559931489085827553434133159801712012937035395099176990394569455562747770486088459847517202110658688038076677645273918750150926005748707767465223821741720558118388882319837793413276955758487687022768522872320072393763814466060826162645913692485016416659802398237377361596726194603102504762586665045244699834762499826503988094425934645374094225279910127232918255013701228000752369066393368993364811166868338099071528106197322112031851997726023319192398531891594742458376535353398509085864253289609859155162114785818068778968925336942440503415169743401562512886531914043115782110632683409804821193871070060349160753669805315298161757399136314672835513502282637398937948141847077031450355417494963149797399029753983034480976344902463817745069386740194729784255786337146744297474622223498764421340578621354926459533277457684569560602028141361343150223389651274738001671745379135301542425180739625794034251682573327063188056608659224134539044009629592086933671631026678499865920976416654116248321079096664627616524321299881663588586670293166398977504909588526260781368681123530259761026684032460643591200477619063803958377363720851489902593266439734075820996268885421065008732227175998111991492514518327838496006470304841213104266740769318180692692412965409217591197233368235136743320272833187078026074966226937266800088867129630674620994611359351297710910545516288926641263194606907069000371007330548245315734649931488685844127121424147533063081767703604003654098379466691519511869394579004047318378703722199883804070474982761521199051218886712820387105350532470213142527132041935564097191190876746710117124360855437565560276673070498876364854905062917340726102247360606778329776490817508470890359448787929479207282275635970115601715514100296530394365435565328313215350338393359274818568958214681520162952461102791585955383013154623677170357452850453259806660363988108455076906245776208494507746482475796247710695650529346196512983440181604131283317019188642737084113898995322925513377833190625310431155595156147768209036094250152172343361936615272377981206246937082846437802705684010450071387495881292060432076170520193570282835203444076794137129806621307453069788194523414155377477016358649149299074904093610813018921550194748246383004000548112042955415223259298712147444427940955708253100855376263509932073475252953562880717553795911244588517098973960798699849785930072803503374261219023533144135340094375497071884463714648233061696978034676726680808066906152211635446275668923650588087619731094591061677725406915251301362022688613625623626747323252671959339081126433993773439219294719968803158075307621187886359646154884692700771053806403448251251215369081142109941022330771573044229496300039415698930447369379296112167266320090017249580980455988222141844179775536304540494777475947469534757283991989254880401470872141807586735936846313496824866474976715022046623960236348743485312026683731750034370025053638808435075012073625851700662432563202217826632810165172844925493267079258178398982229911717686347108662028898655420883708593867273796222622751793008227564993225467839604032176312304965331373834021358232207270625033570113207404703798574938649418646626239274665081947571164334371203227565296906154443082814035368765897754028405110621560546813846467319308326850624590565602419125165795169971566326298598370798118611764792358205785974081648379370206419619228003506483086083270553028850869804089450129970246747767521904849360111693685255911057337945071744472806634924713120914972629594800894641325843404743044344692555711475319690886239195622120761483919373148681491425953892487737257117609354508609162503850573914872928550636317926430677705268874299383719025397679730755259625958507023751142932725036226601485031218819762221205733075538395735040480546064805663474433074686593096997640880751579406562268967456241201258362313910218033153920773329938261101103760006266073181968250323075612452869375008196153922860628897329045685188701696378553479997860287270446907794619994845130050724798728675582997869951681985235412933948683776539513433974656831601539775685111748432115382002444846795282893969668457534002247539033509967843315181020020255578126708318257569187707435719039305321906775861577723851769662842342638464392194144732451042380957703851543200258366103910754356368581922741810373507466265729978347324400273724858552846789555667588072328859511852234844657399236479771690545662593218588190974287254453394409649731742966818904187547283751271002859106778438206264416042170866221637290891067963507616885259306520202765541668661106719234150971969678803822992576132829415816511600354447543601626057266861297069215359253130228874908906072848490745876448076859571817547846923757309455591134383984828113186760722341118032731909760983284075701318585169275627584419636184603079098038289521459947242507299569379986851491791133483111993747176677967848708075094327391176103457968988368656909461719526461873225848214414190305016885562326754394232437885835264097812580336191263075394363999624825140219868265317565043231006037092469885901002557247672181190674100099172802307365565782224979223268013531334160113345013743760536074793385332237555735655632101908754712977486074620576266528179037256261102569712910124628590835729698213557753239997451859243584621272796057029815072808870918130541339142766957134154061783277293651156094279546713525039299157264821105380995927894385915553909189732130198593875041734763276133754091631720460440823983280586994693987013476683654924340102387095781746174867458632349779884098146254954140835022713085903425154758478344126276513284356376237229075187063576272212887112741749058084653618529556482427772988895610593918687519318588285072592602814781971195830939306509996444901919874729895492414504205327916726602599477939870470234293609742962502718798612533043209960271832866933690202549854839187448145743257358720457754942192609295269117786468958029961149573310637063932128467167145378508969762937552203393144494822543850551920659983424171800942395694301481017735336197388158042716160685930774867102062246200250091849495902903644449925993546978242725554420363192059538340276988788251429348636780154051717693648052661733008642738784130047288477741229133150219033597717497051178040992636291799228545533126265029241052164680302067470779439042421709488001790085876156895827416875220867695432539643488857374686595320673894995412487309905483269545208119144487272580014135964264088265093499096957655664092202452241022810902136630751123103153033571771936709775635736991000071625517093501375545658659606365059201017781094427714127066616230275290444950859183039893095745322553949334393875591941101625687500445934276337186610539503332428073934141299255045060995371797308737708744592699606912262785859471425990754282448279162439518044788133980617538706073313173148595959286899159396598416004833904947698168445364676606905276039501043181323446508237766513369537953233580019453461795564135929981898235785867535006311316698617980595284141661237602009673281544975787502943802950085458313506917848905686759065925624249023118193722317906837773097345402400541237255547118704087077679148457795158646754223903396807572621030618121836654396291697214245744522579728725099211756893028567510033214235613009082267488357502766295328675347553317089837816855963650349903118555060974222041432550576628462346955910667187278202821410883390831474969492951106891794512612868963586886871831464405011900127335466849491840676278431147325069644141291497494790397959258569214709857537520641393053538250942623142283322266646338343742433445295574637765320636768070249076213563531275917147439195554730935859442243984981796427921352211316995024878966139303043401374570285371647566152603212742478164369903527145548613556204918871971053946209741323967507808380338341627744025258595634706108016155463854701677462614051571097431270660414359903749933408132617242774956218390692882946815036275077845373437931081623210792284559582127503704796123323288153974612163803264727371424203260719126999845032979053148717498933939261406121874343972843021618626367922967238842681903098746814789666783164987179606286089568248390544572015365775218203598061743300013133138557828864554889920868842157498633140458214712664761395992640145590460376395994095123979594068445830514830149075556351172970290327430071496375785387531054618504605278122988082929276651063053913623595123335281666984797717815445956160753695335515388171155136894695486756836059875638126246314580444863076205490142828730649926459138391434501646185305399525745648989180036202541063851194428965812103382548598505900790233220147343265517329021543212242455299710710350699607690643702226116657287375123774993311848387443942732263964847135359098912549422830597063849816846748452489622692145294173054814339748191180927263609631738296030884374511854348857959253046128142277468821389592408925336733358807314576665762392901173983288909904954257308441699468839790892211839032559173395699893913555042209648084512563191062652250152944716837543880951193491143871054672105314259658366823177912520538049540521417327793691052899966725589803084468168956320486899390950283377859919277207651149247119312623515698902961099939865577292619935843510853212737521148241100795653165643246617493799560459541642264697468808444248274311779404840063666481760525866779999595634726134163850077053887129262474730872245689538082735343219861663026360270026493256431288003495278540103219797717770575829291264188095243952168591202687697355979253393241028252715413265176286510588256001742655346138196963322317566106876625448475323987128788311136803887010711935380508260212081442976332448113049659345925850192955891391304127454534307136044103681385478589942966557177526891107652345768783068863078092133378097143275037628897270908064230182966583540644374214837019786330518815481319602123838675360810549716214766032542151852244552560440690532260523679505364222094638364974532942141319440752152425500836311471957671136624585122331453505439993155941882902223015145829858407837970235808859024003420820407248849726637812027618410964158975246172257065869556377894111222250223626216854834150095464936286263754992050158614774913743772001635177604319538665800361176323773957374233880374444463846887597296456161422955371127751851650852046392449497243689458659194817295743623552742693289165436789401849563138065147689467846456263820196860572468840987781152067934256284381138348738914550806432433444120716640005991365595344756695178751711421906649182704382827200638205919333068898584231475202115055977755485389644328837863702300073546337537063395906628767119204107562882591343206647775816054827467177422647214411009758131945437295283788703247545665982000647364682247957302111222004511601738451196881383621404115728825549774934633984711724494814371552460849837927325830413923873868103838988751563441123973236088804976487322595425476087855255826878063860830902797008068812708699777302308835927432209417582189089710174358398843714429242521163084784030290928821564336067511383833083281787741424895179756319748037795072043479265108024094486085633553219148598552648569674416507403987723808535391887967052884761980183081612979820491651021179451163024572280264750675012959898343780669850614627092579683742156737597987546263898622294309742055335970193531590500035849159993685285644405512326331728468025434605611265940144337637749610187971630553428101803294953083925498471771129014847140304823902131074692329649737946414450881633580176631036320764818090308576824768010212090771504181162304739226712583832961463615560510418089980013776608327622377044579235111812643759769636693766763589627522658174559099402856996926523978272025158804469467619770557233141059160907359550089935764254128978718347702942293987418643295616251967595852249169058847733540079077783842049043024198908389894697366264448657117050032001610038399054407310150884871653264967492405758762577272057602031694042485377760649065401633684447607776655068064993646973744143679770245172676975061026703831395238166799529031978427343115811157351550157120546679102979012742134535944752211836067845762727820924380995949604149318873728237342416418064250765299659746388339068335675564273982761550528887941743623013358893178919660698627271468884561682612519522110796358061786077670270530276224883983901030909021191748599866523634677274992710015697507756229412879042470998159034770595974124009785023124943223776075691450612754044304276671970794706641835398671324817797168213601672202131957468394623489226056951358374268894855584640117940150628801180062938301757427848551889039869105883935675535321036345289609969353756989257389076954543312323945697097982100759960249260299204217610448183467010154879458112206896327088668251942779420842561508214681650254384093821577993398721318113853753164110239410219479833557152328022546137802859122411735218137434112517842413625378556036886254762437283662121097453205169795510111777002419687678415908934775900596371185340812822760051747428630016279813707305324902129205867158910735360813800007296372574567793257807736193708952422092897217147956734124541166692855751058076142839816905715225839683923119375077965270514230628888191596406469762174863851609905586266852111234386023253851807964910169464440413891471092582096700027829532441449407166093276116294594743520504905956608509147985949874196116835450489568401156612161088463024350254460422441057986872282100475610270784748866703523901176210951700103487710231456672470264671630868890116417673133797783672729479756367823246227216090807352786315052224945413830480213880131410008326011373992504007604435344920553145354574961846619666997919513006406399728081379778506641308360408783827355437573101042710454014240843872780478123743324692195967747689576337657430368249278440107262681403056762229117466869335477695235204454343748498413215780477180234420112110302830697356662040208392532026537955049868097080443012870713513459985612564110269560811177612557442819281100281755548899265008221844550419376464247867179703173708899423669624823874602089882200517236073409927157873494768424014421999708333003523641146297935367128814187499258406465539492750257615038937259296012709197467233885414592448528492524159234890384659820337700125509049300464254951281665462957914213118545685600874595004587625695102598914953944841013042542031698705447040275839922627192939570122867053564185149332162597711753113346875262553746986954238649608441265009632103440556566623228698068825882270104723806335656434829865068742595570883792744609803878878493316425203997289580559182891548330988659931111097927608298322788844701741821124519791634286562122923577278974760469476132017756539881778211903344457603585230328650652513211465014578202171407735613885449117590072477996581249856669090382911567142842757476814859800885247652458404723407795697491296896336569471376764180004937017999690495191033724248398561494656445152272957151048656916640129335026141728852614620701060271608998204558305257119672324495847045940660991622958415557234334533562185111371079365237998051379229268772671294780551243179102632752551135230761541597973356036266285730804765450221255908922964941424942832653387942628135981813622011818001256679506712797804450180581309268186771378919254847446733730888680253687397517132152647492745259452349843026705801749258112485864986387497548012981001313215887907018665030745327048603487483020624332577489691823057637832668544773162019396699628890186563064979844907003901308515082609833852048840211998965730347382786618958557344365054692258296932356647116051607930826825954455593706646557479344300558987320839121327792984307618822720155130422456464732030046558080075611508225633065821711818861660094396588729197354810065455689852410148854880930658213214692935923762327116341236792732590604780902885881119598240838576448541887400199558584091802148136740388068971578881571855512939879878451217647181294279879041181981346616275402142512260633633900262972701185025208614936354603831831415831668380467133168081391957667642027005889217405632572481992714593607879322329722979505065977390719080628248483894939522318439595548441224211634020646748639569950057877562040264957733413978081915766392001510859047746396627839924942936908215135038199670044712212392962797405052674821928285148017672647524586687228391400581048497140782356736092595055469182606967642927050748793014818637796655912442220487120735172639113423808336308679855778717853151408478737720063970802673075167496392203611468608403711687181330732129202572188398536165196242348072380372149930256595906560795475745498657497054276073290309509007432364157181618249875839072291932968297948866939001337946250721358280272679801901643458556224499054858349374869611983886667099542762843998745579834550186422082297958468809414948516833585536088703747685775518287444256807615201804634855077281103513232421548180120257585753895331838249595897918241072232075533969624188293133542271307298278416725874932955711552144443487998009234380799842976320609923115440872605345952059713587700729873913831213348411558674781495311286037417122717214128849614420763720483787496853378403372031622310568753898080354603534401320958673224011326676057809574080617090633267583064335555975985165515672089293390183314562393573277582668037679348093232814320074119289155360943066714291938599065307547304923714187210896661553991392902159969490212006401180444380733812241381997895108092396327618630706894457727144294690623031542397774130305727776110452668673057623382874479187918110846852845063807355634017116618750887504280407009703351887006877535905600510924958779863963930314235495592667585110860205261722430227614268270505230646428358957630172437692281867600805639956472047228029053137864974021833175435635132847668069190487790410360048306559584961587317782080195212084869369907859485341356307265620339864307294220184744036442973474621471263878669458375210541587801462298351039025127924777872898229524945133673001656679680270562312930680119518414668667551830623664218606056462222705666317850032321626850555211646047347107756911478750700927977906027368063433025470429674442169559240196506861056921859693620921540776501904213823554760289712167356333753326308948547177480851165118755687048497423517186587926545048305772526970960302914810583002298678578788881687153653405535251466986035434926855063587936506818147186440287082506552974264270297630198969894108741161753874838109314198983398372518493809569976831199483929556237690785175251065442547633057206057617326566228183594758986757745454988044765369402025996468527915456715462988129467588242857456734588323176492362164678864446771758288626737634906091780170898766431000705628855867033420662713257643242494133987937932319562831135002105816029180050159178633454595923452518237741691305122386499082137109417380887414856452591706978933904824579539403513568365272220089037548228076993529046727681324139385279491360912977032463108582352586050595387727915084999698395278612909578509326090527571390231328833114142708974822571878144185528309208576750664983351575035199364433323298004800084395204805007618097433953441028757029146039280242991633349015550478046041945931863797805172693494282496030479386667410380280174380896045577648219184687995435095845945452663615950234869359463338023519256910680174222675979026890128183699691063263164900709608596080784702169951057368606424447719153862636072639678430229973407945024251456373035738527609244862051013991483172238152301829276992540270068996366863949368725833960509575728360274279186270283681394922018217259857646752109516983310266440416093858250659499497596862848187269807968890819502079131604060701028299628420393119041911946600815793650586134596952688816991301931404110532910875628384913236637461212804568827356057638106519283156062644558326327308208898106807609190205971980994814087780416217497835043170253836023277707579617118115590090809107574596877376702783514615136428816714687927748466113514959625865118570685962912515220805641644634510638362121347529721134126121590807640741899782152512005078447816522733547240425397643343207310047430141136234805429661105734931192208597034927250351928011329784853381577378377618834496873587607964242687592597790718342180799786682187627056420574085209493157886112206237756981132214122137353103391504434182784259093580680695877983317541246015594432124279933285607154039523026927069014065966196773668897828998954031576108706533263368560670090852890197153458450961673416837651835790219480252075212845490229101891931146005510607116880407578353136780641994864483911519375158127369080561184039125593529832718870698785571750481613523194203724086454771187304910906882455369321894237762527846457071328254970462403187708816003867570813787204631950324264556200516200666351200636078801375700481185331914439577914284560504243403082214174483853745023401484969372914962082234931932539152365879551038699876746822870283171542743563797908437817286056543417825099581105001820193411571805491825940335398809946727883646997668505951643724747208166188467821048109126146692189422806168810251171199405025172964827924186518087325101179807663939862689805872594110543488548745673256018115819643387966200444837043963689301503668735450885459233581243275903332448946748446566443913225982228279055139576589655383251971447877819545643603458151941738328817127962028569377819223746651484828095467714186023866231350731560694352395653132507596872181897881565291921158200577192404073445859343250475108391292307207149974453699974332018828511509209681825128214754349657482660115229084151147555287193096969743903209321105429945118955938771542045991594212394341123499786386122197783320287012199741787624186235466073024194516874721100631333992759662189033611716236029555784155418104531008222608537320371480360951491193664787703724496820243843615604780502484343809294922026280073021806388043654558519680461841346583475418491587396940319809623384664575667799045241100141798325398820925425258782423862008216128052120317751395013874081463636756423284907498594413843480527434722171003329757079984027286037390781877636946649560531850975201473108089531912005740159910497110504503064913586698754331058004084491958672513074093148619442423926874956917177615021919952112533452906416547855023482313596129334722663073145677919635260073010628992740742696636161553765150605629576387355834211534178592187194577733852832236227022199492324411090835089918798943551227775392981094562697834957136795074130921204863463684546270882328605133051465903935402877625212409931391687787637446409873370364583168977980040601143476353713631835502119169393644695454653018685953878961530719281061891666661670336593604385573826372157483286503234948369410492339757641770592825910711058649053018510338027907613748555321295430426964868542287620043160223876199036228040914237972104707022311840805989937046307561223799498745979629247162756625693249002343308642648268695607171947226962138589061292343106566973951111087891164057807478620317881259327743414187017861282362735909428592024949506487930921757450429314275949501493609736066125387370050567595697557557783152755540690128387525749963809472988322150745549730640943055468450521833113149853780129458161735957515150117684736328019876975813146086563935908527166092180386834038226938838347481952814778004928881338343059735766693649179772860083726194896435874810949480085805456617469729602560393220398379402141996870496064743442736154650786105794269512832015728193275329449429947865693186619527401134426189462028587347990674204458803632562181897928040908231347572779303084459754787935189127274395773030832789778549541961733965353883556956023637007581133457409673274412604128536633932150497056925813413537718324122345644545419530141935027797986680745161873720157514629208336722803862426787967529517074238407853153617983826353250394142100599665941161158268396438040260921528562223690582912226096900089784564201533475907151385124377706104137115199811979093627628005539330996931720199001747363316659698811456779342668468533122451170384583930673692880232743605750788909611070486583444574642675272570786311756373041423770093655363788338556328043110825557770373490686161838906128276250129779044204815406348415141037634084072456748061537435013156533110255710080435464022362501854845036803547097458343456040139071338629616523731426108221191029793435989423190998862336772903331609481177923589948970803769385631039507707848827080694341471822812390403081665439738053391014530419983455863841414089866221183154824003458944069442866912383906945347324324105591510549123554723864135863129384768996908801953610594402828381350745726314963968106582059550683546530128463276674064229573224744255161597198074487601813264928545598148208404005323234373654739363186284125834281379883678345171813373423428177638730523899376323821005554852558987514672995408285787024111576979141939375384459188170346609432373167538839663091879228852478112932825501240836540333952018464518355691923387069589915203662026425642707197819725375895202861793315675411961205317596425885290377566680202214609906979706176502026414310937079852818160768306931316071523046280898858099666124621060783529626622256745940679386377276546017014524512112876583797777853512825368927471095207115298631913861177069788861635975568734480312840897576020408759000303800391300189197960619772520856639517215840869435487418403915942566646243427725257777670179062076281757525841011730290980901555900827289901559620577613422225109592520037282532744364357830299310881907993279038166233443159739921574389262237727640473231332309344021635360177124816985146043144745924932517083894321023284243591173926149836582159526664037180090391818454876860818308070081454738995533841716468812073367123151601174551797208782890751575241695033810267060009996764485351094623550597838804502583115555028487065146991727747710673889791455337504663467881312759650334136014513734257156376129503529635743311889324055257304087218990114784751069898832174710919132216547787928187871430372281833222981613509983472596373765842720433832454471750995710441667166919125554731404508130373022315530935192911240769575751447063805106197245759003787047742092604283817045746411642002105344403403389437232066287701510419859354706470616435327457425325443892045559694352163820602760980738736751549415471755063691413950596203897046303064117426337980419786638602768275192462748451366842936066258816796675655508627118136089662114687437395888286164428013454204627222802907227902247466099433914550438796581690797237972610102520294839918429287650259972539950808110978217607240618688964079560496878584993124777009346320709293538334074218896998102848075082389970095628730050834095630358357189171988892405347415231803207440062035490424682043169594734111791148997878547533169690890847770451081058953075304248483784643121103726737212839807459621852835393256329705027677939851111404961860047974332372960860783258786370623321225228836393605938647218280008633583493915651438649583845858330006554151246549876376355701642989839372336143927556223725606728616858524637415476422883475988255541797640362106136671336220539622254092771621550809332518562718785936767233869579760171637057405029139388483772534346711406463818766468444184755490640225299079749038559378662958578024724216402373277301328328151394605377280175073013696511737613003801309639893843837119861089426197882532654794096541096218245902064831020697629760419066558047331522074485284205401156840597300280871822825754602466122862224063739490510323559155245565042188114027408016211952758660168962207556188375959971369888856809365976230850759541613177542206557273349984363305240199572962973161036197211946918732464652039128408592499563688848065929102804759036077233483084580085998394843487500485660845546303587541101937376013088902780085235078819555826843791171153677126113649071769973571155304273754024836302368312004600188864950303131707241305181507417060448648159261059316761742303655799500641879485404198657259871957915707467323206216936481781093838686441333969914782405389531235846440671432292623684664121501283899574072100204945895482479425488977705227981002812228195106365091482160041791696507606829223607754667937665164442937999854833067579187763468006829278825476111489339010597140295185167802919484982029338121802088240298103827378230101029838602306067071257461252802145587061140998447481049638764300294761892297785840335482836578312183482126013150947000395107759979697851465618088110131554460751748037581639962126323299098328719601425301629545578653966978094307732624493266360495712899374792545986534172456377295171480727439101931803689882982118825384641677140928335432832480971483084735285718079857460491779593026242109982872465119055315640569786015933716770760456862281073352240514644240059247727802548426520324227353368923831227008574710201518135399351577061975444473358769072346669813659814739006654800380747889163375541327411477228339653743498594516169643975233849351445738449229910547043352783220247678789888250765244164350795684842880837695590179475033218785071917835001633374146508821013895338533065421767093424459973170597417847951468726671561147979491799843154638500939532375104655606256640834206213380778690456295758677929876963840592700066405290343954238942488397823179449647012632593075773239443128305837919756055791358033344109105540081791986140260929539537779348906060463106739865391872508086121132917811712168711607336318896217412129428480085569129610162296933953691090985967566928606048620447185003295339190080843841587803385960831701604158429310518290337146433325019030085081747630490064557627751725167996335758277025259056997899232590192776369420021466761523791484428962646131095037895118055949996460976579938813992138704109811052449088733955691269528408456069895107691984660928572454948841065371832645891716877459785357215548014089603246111463107145029849667594130539423945808648178229054247034820379029965518878181471198657668539405441863307430147017361274362801187105529409589729214833915983989899102057528565614200847542250671608894341104754245290207055947654130025052139480047861982179278164599387882346351203090091699982862311931247463626103051066436222779256960504240831389993582100531685379034596266319355092852427798897661598910684311341794618159426773229398666474514070695369528000138812621940769735788365874136373403888976604442561060866210436230490754510280420941191405974487620223977124224757495275495536451141574976662353317274070490663601099672409309138357163573903416747684124145402796021829383278373923476560664071959317702639790824161639628612070806611086670188154897151413404299406861133231926715431065903207519903095343344905607840977024255517837114100218138338476844337339413179209450174104365170996498975807914804831683287047765492820411647090219591339822408349364595014404466914399846761033720092941298031288607893618176581606779877274884939775272703466062628344549598841606462339774936048923643985779239284387823477546413219679414072921690091071145588498863005578035223948679399352923126045846898973730040569072089168006297427139005749568948061137276713866666200565481199284317410219675631847684360016691632147725186883509750535565829833064888114293226277585899344016066859638955335715450941122119261197625162061795258840463282841624154825128121042595138099885550272882132828662289660166184894396347768136262551664867160134949747333321684460681352558420486501066179869615388822690433425371531457084042256274475866078178775944929220462668163242725113392634153621932456161064014761847626400543164555751492094532587498778187617403234364763641647323383096792237217200123200474149057473327542292376431494431466796001919754900660513661534893102465860830200646569026503780406293604304624932554822407953817292094587159572100771755171339095859665573020445903247171039134467664608429535956661760961049065597799936554093629228734817636555258806216738911445214641583949886873149051954367759009297097531166948292207067715563088623245470032878906707075906635992409594847037884018441995756536268840562012540675084348373774321870187119919857089005057478670409397934881770765880395628962617969751739442222271409100694972434565149914266380302832342183052481566426834328375431543795640001566980678474368014715362847825183009959653562111471949348860582947067141139094135043468392408717496384909886227492599347246396014627369943300921925164653885718488721622181464802603223688594677603677549921441225043037399852628333357564898173061632838777363082519805872858507908166343120714283805901462264607227743360873283122250914528386558241211790014218038216969427695140547120423000318972432728730656272391833561729023422630565200366907188641558889128678124547758514478697356196994684341057936881886445576090207047650733718725929104788216796640647207101667803005165211743075016970760872242331200214202989207061843035823200262996759555367033654569030865716222468807301154856678218324096230372037649086751059247520981331685420851830839531947348868511334738775517318660759150040411424303736481162011176883307848287891010670335638035369309518334828256520105923359339085483727141003306914429396470407319870096251357684063899967336135995908285231615819120428056123734625388010504178362450915908204102335800056298947968019808704736920068339371978256950077395123267760037266484580512159142397228975753893919200929569838687375310546820698803093782955926901236395142447135150340604711446629441792677726771667143252124258252704207610247476381745052674868521162791464233899056555478978830100501298677989142526276759124981731523845804424646490494943516721232514937501613056074243334317227554595652657716407267304776407003573171822044212804396165132235409991816100723304851284904991349128416237618259997471400520652421306563755782112265324901191268661570633213561722103496778442944875715645070852838845159948038428076799782951768289055642033146734249700505945460191054591060359476841598071357033556176791301766921277800998504240968389392021303775827211898774338347715120919525577495094006694275509362250847685963628472191547801234387704335245703231560357931153962156460050133098148190160925812206169893369302626962636041814017444323080827489030477400635485830314978045691252875093082333907173565659927161837811269964743705528452820600316700483400619066587102913869964656333006447162596158196439298248063632656824681264865330925877754483801540731743091463409430049892003779875781022391586400575626384314945487268318357456546774468105187102894471404754518419105763894534131702330699480999229091056622783442378537571853457421910132344920390920547812064510711135480976986869653640019897418069396018186065529271307303642209690065969485244223093718487624588246952113684309444605770520600883522553464011213328574773069856346460029632719800892300308467786291508156231220124457959304477006400883152187171664846351050957090094958265618475404683144337995857513531378930257686670166187915171010607793030827414100777248850268189471847758935829862955719455261930761996043813061247538724338291251127823884180219256805319596361731235204001991855924802002381454228636628206851857307472807947966393553112555140836249866519974841738342380124040207342004502695372197816556855021999308491276262084033876602698445681538917215538164696517073955903679217425172677481612900688355392980501262180527235256042229733498499427468112082721701368692103380027850220199309340836638430887079231748370751691687411069398636493896500393483811257288463402370607485008943545457880144976879463838338290018173592359411688932659624517367439071482275114523763814943348570422872900505605146541459919838835960455120236131462933434804012325295824861148126503249127851351154877447777531299601545252368354572917922060760245630814328123622724429291477445314474824896682045597769703322473690881011179603445933651778787370252914378620200833517395816471417579454016243914328590653256016761991953063372126593842223567372621746847553258016845097268823256637818081493656827666260958297531195463800115166571539902642370960795803699890944147774109658373327513761790033680912143574515434916723968950883099288331706828043280317613869674291174697722040418946403645463640849785413576013933384291839125451002073020012310351647838117191926120111712028219491272790884440338992292552946828675206839775303186344523260379699683676921055677825757270108956497660392404086816280751274498619975807622538878505859848341349185904582343565511076901542236611416176774683662229792139358545752064815682931025035025810033271923046542240822130077336329081516050942953223725687684660149670019833416397347082233968316078014516371185903249544328897924801198178034733919558545291446673162148022984845028807076677341414884479429720509366872920428143691093240493271282323607506033970291827268347148341570147152064856530764913320474096508015055971956059843595564108394885540316759948754835000370350805642315537914426182667592957730280321988895716587827992371725706275963034265586126742729336868939270336058521362202506345890251899032222262257240726394482528071437460509004495282915905032263598269038097839073477676782980485636406771413820776631800327902110302559472643844227969654842887159113380080017166085795833812637791144758294971389610703921373087409953837491759044366441810863463452178927951277597892366691311357431541424375761267554280700737039050775893633708025210228720696334875386345583246709842704709594376459726569861461362835722064303902650995326231915411447748571560105477671476165459248159912177957466807938171767215535758070597593531657909205371801649009874087699867217424998812257245559342427751747840484352489637902884069584830396745292399727222397487277099930969002563251583979487692274489219456210276988240291699965945668211673426720963774347617553086328538551758708255881475425026357154112052456669820304971391489759325323439631776724682846701782166054600037181561033059397235875612057498889276846474629946581169479574285373812958352839431272326909109842461836956596050778629767517165011834407143541696840353217789738816195155404670077064277719820370643610551075640565949980907552831375757828177048336315292573770659538587741700647351338842778812137678557702174673944608098302465810520198364991148108088786667210957553729212072002729110279130732966276438026162813568394423099066670579068468530303256586341247574346676652120904644692356848869365429181005720494204745233840956087424395667770525848717588134904243005661782042882091190193171791026594084055473545418205104355687982592333574359799607692019119354894155158028081792744262736933050540223219301151573607125798316198149052424688285042692939905070601830203291910678555905300835598915135327556756669077800762564830369385127757519237706707365525050448055287135208008619382082688311716423071406551600497192950166599970297855017346472117678337646356157766328340114304979920721066557918445764811815777037925376842833979765169732312786943880799794843722412093154252938058838918321955684551537180324933699671916222119410817488309345779075067696116441150196083780286567542610373452532979742580277228264010395372325969406519252047715684879006240855169372140992500183155383569038763957674337292483769046301349044963890662192629391262215740684741458741663986193701591482896315266544121310896296079169746221260568319640527118971888213390386786994525765906340325923837477701271274463452330210606995757580171453878743872930775980887649716436377100685609475020096079269551226321963012012543012474647969791764558975388465561975628005240212424808836187099653038137547213509383770912700566896882093421150730781219528813473013545112969522559782689812815559695990986022198971526119760962248524797335081586520997409326957984470355353319768657203668563775136805217540335375388241018952205080582355121898656987867834317937963233425453955862665611520670229414897438600467712484686658688108979008795637912482203165618177344274811116133879784489387975964939944097994384870666994352654747967853102428869795829880045718208384119548034673072098860957066049681542578503189164285303572042123089968435864160275826960172748280449737221301959421601452163456081394043278341221202550656610126346658209159008999173947310383893137967907865208298982131952969028129078141459879547826882008686492611169741995846706990664807839948616847269651229608474722340734309297620856212166352925438329670887201264218000175191400129261689088213967449310950784424195575045379977482723818192436473034855804706500397519901240832120861638843652793507842101331905039515117256109242599499296286890454950281737164158371641717106897163244453447419770202708851880304743205960295165724899586088067859931509120772484507244139596527428856102788631014689886333782034430462688496350189904328891670734886984468761790495874182955187842074617467014204237100985882397102144327191168957174243051534526284191008805642968535284835196122356742356380785430506300005041706702508990633932143666245084296924678939749773335912967398166743280882875543528978812994033860554656084534079404481761590973554165755127495462733901395575362935941321547498030491061215447982133464535224939396465407105285932952079732462038545399750787343476836492139051118120815211978117483780566706801862042025324286347556691081045665110092811202380045376646317811044584358294657029220055356991219569537878346314265968998814957718952691935722851281932197809932688991495263686993860197986357652503154172287401268817404387851599678369632148755187992292565955940191595355085691385257041615496646493180058314873815210338640887039260911210647883958940289071429094549222457542575501537904575114282976402854837386027716242575780194720565013046887957112837649356479078262393817147422846262499955176552519005383173579243237063039363730591682944841882505388645738297840700608778819808644781644609797031764706170463399931932843737098452132114280692477072279520810722604261222111393649408695999102225114892155059552353803941056867771853131162764544211233691709155252439646314223477315647778088563990152091560136941477663512500159538486332835399788074815559466088238914656280428386141613140611512006432106940023097030831596622869272824952096048893632589924953825068833948529710687476056429615559656654691078396915507060265252209747483543281188587098167956384404195336525261733345535211491524380357326567506940431787962093032763679047339105592640731046514923307370814442616896228776761885963472591663222103897432036585859563863506419911389939636696269911403304125185366965865339262710482520639186239342156510615295604717096164474762688214943768151563607543722381718971544235034009180262380076867661282639912800214063558323794600717834926890461737589169824407652262808014180613474057112286374813163485506247193034510319853588550088401797994168640507616293522102795491188864088204461312596470929409943654908055080002928409279425236823782618925137316829359251268904442240472981158993715088000685914852916526537373192631748871334538292114191976933612427881584967150109216322711886162648589219058123756694861073735209020757457346133200104041495956297897072316769931168921514358361500487893435432226554279728633998625054454475068262413187768351740952883754616621172835264060834548245651750489446298279520290024982457915879840997139119142897860717109906159783076646451505361698519563310162770336405867418535294819340213211276441660798328873881475485507229852455755866073540274445413778695413520392736364658534542797138736146450772032618577843714866502732346807507569792100502657901026444390006834016289547796152937564218091995232056650678114738207325935782163325179009638755873945316743113522133951265615178933582113221694761000483325320230040717329614947370425677265860381168218905021083841755375680048369091420340612721756626475519536629672016001084766676670230553976844225177610666975280372610046926273330626919892295738025888940978471949000792929109817018621413977961788779048710009635095254826131907913961813339651338039084779066795412102446478297504538149545799046242848653731248879590878396299948102769032091231343739558543295854850147234244049469467543316418783527265344129415625880563281919383951379829315936958943863255901184464492555945584095437310443482474941581019068183413225369245211942719087171911999863119963941177759267152001340669530349759290701530349309434155618298752904868694310946867244807759716421844838385446281751901933924044949882273715908293900858758703701950319059868950038762422691615196397831490045720271166046600043058799287939417703129246546892801443995170801979628723487075997768949079582212028729832692036440005512534882731411347022848950833704987793308426959551404639336119461829249067235549479305386729673861082000958600146901595536329653302481581268544506685446763739090058061341628926256578539556045567734951782331222811524690203286346077173513533403190632064689161105679101388726093802863108100252853492368064870538419688305689028934017761285135278384064436651262771440070241153010984293093153636117542793669986339625170901154698669189704250610890083214499397212199278651632583733970111043189930958781350382725468621095563965731783266305610645018792273820043954996562686005044926678460655371484374352442699848400940913532180499003452911561394384479133414019768602268935409630786366041369275255988749997543447318792750390382497111012462960615885624120424736270829434243186701363264829815583010322395103224649757720681873604241463707610698617186668223255786746469718076666411563175709316685943199294395371927085866064899070196178114472887542295361261914321834151097739597039200379878716072670978545084947622061386847804089902599770088971292200310654669695166735100032686972004865432872912757699462060813348410248723631096692239754646438088531882755168660072119104953601158135968066894829093182290676834760888585867342510444869277025960659534445372491035222515451735686022305472014067665963059458916151092725254601983645253045218415238440549875420717627400973388872279076701650989740376975426864749443130198024570135199047946062223414320133268998013482598365270551477713127667178243931913823098533827094231928787990592595497779718784082018830962292529553241424707762229907645928539674854961165242224425610125500697727986121092438383120013689534766559084541067813184645277108772724662203465923104476472152255964327407863457992401318192747818406012673426036300247441475178799078829433579237271816315223309999704932515269141907011078627940460687723049066097652546735329109000844595975825436181901800767775206963555976873361943250839001835939366225980633917079947509113599104262421798156521334473665035056759408458955057680576510106548260072902409391206509419248934940216477580908052000384645652500281418196098535431323914074385712779671521080167110289749019221917160014705639447914285519099675484027192522938973479590554165763219577978765866757909147254186532718896634287293402806474708258589646924711210190371875448581658308323425019869589607524391642917843431511472204614221027837034175885495798493271734446851067142792662769485018842860609070253975037739855657798537600981660541478647525560644509835323529134285984489232048472317589209877916975119247517694806351077856662344481962220474864283989459471293742841887126500284786543037835128386975437490354311973262293552608896267896010468000189046513806014002472868097947290418712691567353008644240519929407081263677773508901503073697826995553311064882213513499581578445583257634486388222351810339533190718538010301620268683177530952611510536420859639832035325566164900433625657178761927976415252123601227136705467840505637046227822567257856297010081507454795034373856395708528177928369251864128096960653980263148107313071585292451034406984448166947241311636577414353556550760277656581085980637744331555432328417107780879035987323845450331530647748501259233265321793811425807941777636214411213086128302489442485646963130261440080938527588533222535967238462526523655347870201319367191692678613697959038743850660945793035382736229407849217356959103900836957262145269927679663149004743517862078714510748591732415792160827842149834881597021203262021809092789891490344257272096143874978436117736180880101577870967287264884874093640608007113760395775452479791429019410893906892476348187669966030426419110781285757852034810410997687950346780912775880683310108973511313351348700696878136743485569481216906351761377129122837060529167585924096060823710914653472943059402730080756816574812729010691881202652861816818386508137248459030434188309431202871137721911772749057338808730281175156023492896201435220145233337990710044240933453786310817219980273890455360230204285166727260786083612135941039876680287485472597575288357968534650974465267632826352154857333808001264324729308062934135181176068279587673701221468779888290810712330669810163424771563804781927037524920727315806180634191682037368099327749492564296747707450479890137613563281595737308566504899196440511838743004718831459428715764449148687173113867667684089799629876828254635878117601879384949576421266406089639762404404120626084573219868484571192340910411954121582388047083449064620402536647042900612768337407156456463979815325022358863466582715208517209223665779469433266251425117653598896890156627821539680021020045595286995324638325537297849023573767783004104388515953168873165699994116556153505351896088062077244000462028224310262272738894992130054743828189224278974524185975407946694672052120141918886427353982820840408233441867849074502969347798256162714686452616224511967984853281364201511084310891686129245381029485610471645159719328437197420214302471566498973987659498051944301594061114120202854066138904826187599239367044683743168697217729690551780066988659093187130905236859831430821433011049079208867899971531215966720160018225612948145241774297787705059834878784108078168958080112573338526241546014029672011430402683990397863657208323885898122472984305188992670750750905465810014041145323386018558678442758496130094667319023718078101576434941755657599417849576148147908437337788462727894528239037248671053615906627204821599022367202966374022443986852730198618698026357061266067809233388844387582861992170144680893088660194861519902828860320388164004101593496494518277955617216915249554077994223120787588096066030309536947283653251189476086506264581037602489568597530112337199320242966406885604449889547513157561080987805547082865553363012071040939018053009213416777647546394026156275787907606767775443712412340414037608638869360876480634199372752757219413840745108083354874102837633500517690469763837325339087825349213013522788944877821659717951357804578532015458512420619811033912223986587117690693970277587341106806893718329150165461104092209964916847394647513416237847885167720896811745546935348765806016337455653708951502240596351304826615769048273352707135497693353926300356004522483391775470227507493934676747736949185764671699789469376631633119370070942135782809344920498148300290689522923594431345222199006665911671097312658566965297225219743923511504834541358102341531320742829520277384058433956118323234804209772140808956985413518785577586176112768257662011894144469243844128614708501900095982711207923630387407166062088400091422987158489001540726126204021584586173533615269213839836920548228922048625562398487842657961498090007755403600944499274161008629315219946193610054272242875650938183648626308900116134656449595043075672980163124793187283205261243042073706521095764491942322381008962059875014219240270007978134463357663470491963861012516129651949129305628699528231171131839488065745536776272960087530833109776478694246025752208412690053464828228053116409010580297968241897799348087476575156539240972364270133587975890776579165109784734040598019223320053460865473733628406020920035650420218865175135003005243983246939985652211209464847966155881355558469869166357854991180174082183447394920527163527508809759941417830474477475868003006203962879522682592379383870592168227213249176774809047423958885017050006225545496880831895948690627172906415185611700099974105298664412708030478374540377559192553323791963157989684291996404279560298481806524394073462742288928665606469360029937749334735799783526289823723443714956696210173347726227386087181890983853966739204177307015055721391400755777052890603869931798381502329533090260722718319040412608223513299300947638699097547002095568742729671750765959991850847324809124377750362884959054883371154798303858858255542034954659379581958780740505810862209527815760953738222804053030364749622503223402341843888987869221540721947778036111056889965644706070059459033890819936139224455741153714104330697304756235117057248897114766042040818763847620341009871617950295840605805673631422075267536609383854180102262356310855434185825432048261401320893940193710722422654367457489066506906457276554020983075072114862876991393277939165307077062168410056335424187659474478298643155454046799845694424008695645349989406062911800759314175945838915439759861307742979204711434326187231295844336003498667548699385096572068655878620507624213196463384317553410573028120681161217734243063207114008316471270126680770345610742077531786848030224876733702282208965649880632389924454909805645789726492698150125293836758526374597373481757901448169390584516019077864846224071272173059126837987323953578922171199187956320084328532867566019603406099555724942622516975019843400566194165054361353113276131802215507404592613603193703763284311502224234114904175084536083989161668296229309528725677826667541520412837606481928623134047870974191664184332377189370755076332474961131108545082087204861810576516448677695620293767345481565792726461149828885579797045821815335564073423858634263600657649501170047737810447296405693472550889445049397627957527043195251870909127148383557690543772188270341669192166804131124032493270394143420166946395496976449104362990565391330047160187252091118860253566158876463164781714410163757927070723234320797738871492005823126968059991840580821778571380831809818491081722967987264797328642225185310242934691674380696339593629777548888551849519328804152297359074652548155890649564562326017526792378391227866853753508325491017138348365628455821154638890419018171006031501765437754151385786108802446866826552488396857622265457479836722970065471960839848434776761822423856934047457822874210078296971192117391303440249266460726557405374288033568098099653503993543843074806883780322630964517292483674325921819619247203309842492874298551140755263392906030279821318041090171990206200139631394277757288527367644189376356949869031397681864328112444956113323384110992720960972729228590095729708709514007494310449729762752973795561559154499300989839838800276404698201198590454503151805927318660636139157593181319418256594463395989975565796365953329552616599258431911078923220982425077410679382497838418854865122769118253219083720292691260311589363599672813558236686420188035159713352248002562214356379548114872254012740833323174289950604531597321185521111112399216404421964522790722696278432137999185349902251557462716701164780139579874605878856343503152112511313107784878869362041452245400968832228468626227405700680008570896954966788269863469269029260279909019384320288102393869876946794307252867007077933574434932249488972076177532102934390635856515096810882082740122354984719452996319935338370456145619737168048971582900805287243038437815101541187389300106227882179357839637165590075655293430306096231323123865157183606083486057154222729773751883905532442394949622754551906894379635545934173828087559432443552885571062632283967125295727714337599735306543202015509606239309539275461512992876617377789596357861860070093346742284068336146185963378903676255700398950608192560932203817913675791461819301021245578433076001804085139461202301207110340037286407464135513833979563789371702392372045387109441482188152643125978523869438104176970027866825907758805244294270616520562590670965958177996864575615029200136939480738561779523599803186748150201460327980778745360983063894047694223701690559998207654177407363836178175971129840554248199452403589572963087204190474382298535318003370738160289835645237904474164742787793315221832214842243718556644791604883147095566711978010893932723629234783014391936474827397906256221311492083961128533361196092389788310222764946821824546734024895570502433111067209236718464341595638155751125109851062901703610312816020301905269994092664490380182099049811141196209118231784785431574157851278279166082860798598381271470136951052857519435333220114982016711507138268460403340937643460927835925612876533168190349350647073675408853447047543664734604810346292152994418435864772039205664523996845303941172222184316140617075046462126688883324486483455744370109550525465890154240062127921146345639409768116003958932844845500316593557181157386585694182218391976960928323112089200478022581846713279942585299817143700267609071399157207968349926039482388666435194483218825888569267175771462073082313445055212869151522281589035267988736048841531748139678081511716036563389163558347915169501556893253452181633117048512143743299264516315010587774991187612959331289144476620845183318659989010633321237886693402282316077255151868529216875651602451150527531375347199714787111655218321758597336333068989519333593030555292856241483639168061945449283443193541695280181347400479282709349066273800117308880311110912545400579894421990837786376746189113441321047017082680879045998928244515251262117001283855999107882029024807760094238340954769692456144310164186636700730551892538607073892626391159142005060684483182608909650998052220340568117029759529452872427521735468519517416225010186090695463663549791150583453455724517737113278913814263406515219337286100384290372167085342935358491029125197559265090052851448056563244523872767779833406886527975613297283949027081529375113480968028452854445781447594365224447330931454004139816294107292850459685605976758053535348854570093391165729941286474201516904323571621013447068863727799492650197662279995176650166681068098144988824669431192342202108340444805838690078834841261643752883065253448266073283157487382280774470739284501394453134873758080004161878423701799570759184630796732820524286425394296083486222427189602261162198733203126188276368614096846805115313902116353254368320965886704363335164692176966765991106750412812808518413341925097523440672337213366331044614954718835395615877806852484634662261759556408896577688160091229210026458071994862180652842688027429740185955145359552564386062732766210724814526346843092331329392424502443954521637044777975805400363418204421707519022356021935993877248580377067060360328879150781327875591845337692627989636968261476661094837098779060290195109582216183384214874545168646719996651173201429381766548793495217163709384375154854424121213955785757100491399879723589140328943852764341015822685615045087232874626278860351473335996378032288613440994972115195530714452877399492234582667084647672329202505648490694892833239257588076552517422846777744053923813951712078198154462722771449260939027115378770868919823262740380711717526861652354690720981317805610493739124530083916634173111687437923731059998757511928329223504023784030846656568830085060932877142990314928119413162329252099565779911006165344659761777371104623199653418468993021335457159171136425308690715435619590556876434346249112690839759696415275852337506853838491595780177943719226808768303979839551023318821639796849808063310909331114872705646261862212714611800758267404975750747628062496337395614048197765054786684308923430863704648076373131609977435568373382661504368422121369119170646425619859428700542479654186177248629329986111677379124463251378017162992586032378957221197523040899758234527175617158945896766884143242836324597180406401428822947400032216933617161467242119504049073834217073786008040184355395479217999208878337946542569148881591513249451442733665907182401846745614273635206597325068697868251153543813701453075505689518205668231148238328357822519106661694388384822562475476982858456991525151393193619721126137057469228252830177001301184295200983143021128103438200367157858801930121031705041757628541841373554995628152918161892996497145936131964324472596713948321663597122706144381916594723546696833650402964038821412237675151663438219829464194096977774828426190362935745526308689793071147195570592113874419080825789231666992558186286038323297811900388071943139594459069989136308934708070089653322086882119275423763734260136229903844618317214845623343754957945167586536509085810330562578484800493379813860199919337500771415013725071516280895222877220177363852446401664446075450196057858017279853063251808519925597079680976457856557754230930610087584796480221399564737542271347211454694825996519655750405466830094510149831205435271012373367095798471914202307197874208594662804322921632890958006079539334599957312080842603369937588283241658787566618365477255738569692934723919198608953759918602155779090538463310394142840713014373940449637044301431824617429359253987247715615463453845887339523662811802830923587766055171131505531968601320685083192535392568302617410530917326757152028045029905564129870593869463585531036475811861419702338145099596085915539040872821578155011784577428823242902391553209743643074841498978515650964475598531671561918971998658377284516608743715436708201409236990092120911555198677206241840795061623480538037141277164897318660153214638662251603613890732383504212563846412687811599187809353473581016388492947698728184543110951631586359563480673772399663012142346476889628392529998901720910925706155252504297168361352905928588476961383962598464406806536615537110749272109008888390919173419625334177667441239960061238758545642038990970749820248014889477789842856766732898909749052108508746901081471213030610865085996878949158786632636683364507895169557247276485312377678580917839999453291983469616490475550536367769177688970735449226649476282283214173434942426482876328897377109812575491401082818495481340204033636737603631325701809562381924264999932445396461221607794427316139168824530202133236025880991842390287824614683197561672508670374154809083243399738188517026817871348038857866885350536738019143682812388732973728098297389491489731055248826102313078903691660505192551883289227049548660847356475620979433027237812667828277922667193891428937512966096887000276232195753627250022078288819727169273348932899529570688700844286075633179679761445211626372356399246049502040169858583453156183659649951534792943242923975264429777915039050030523335978749645361236288115771311588755071909149904860997514292514778632417976712621523930771580251866969458593170382978428398448297066790124260607670672195245059769268276145971559541012233680026453457499635347189330452145571908751545132527248535527545371655122157537647930604910556949298628512828991778339443620702370450906912419234628807352485172698685306486857843636723069176836242787900965360680726929337813405855520189806781523834561220394874224580764191976440083429714811784662578969860514200656143355158976573878921007912243086448036758114779158775417014102385913127366501086732375622336787939433137203649679446564683531727874821752737147280496263127812093639975670425804375325923486914967083105207270159369856257890454587880825885900285287789025694857866647690697638973488026909059249812363793371746343655271966420078755935545288328991220418886179688525614009109478254032921905984926005889327862955578238007791556404077807103233565694757900646034044841887964225477621413385760587873745637613650755133223527351133123951663899711121227958187162562382042452685377468983588803840681622922517130584738014841301134189868754174725594339450114181854922764435281345745352307689922824370118597236044589240334635608537234542780143263129011161109695633984473646295893435410864955559266471986724159080964260943256593472350938900473489171420868912997114938695828938237205689468599186781925350341019905735322207650056616962772889181093386949828818749391267729800702895935090831139073484126047927762348234315832851419610221238151596234511019388715647221509151580134132396684231379098489659947073828605690291162679282673542892652640532236205181581507667997835219533680453207789965423421813840382264500735722702578839609802853946534374953068528139686637695993146068687522077696583151551074156326719511393797964760787666948055242394140453104267997790422992383042389751680539716201329547128880497608943381361254433239700103342195983212708115952126670579737063219631557722722674152672645977367662233457706252170090383745868482127688435595161606532949290825659380260913846806077071211194691350427307689925944846893994243924241129678522454765816438635356563905421907991839188864575122109544664599174768159040127881266720930968820928864033771318297788664221870581272648653176505071185903193390112724794830297057957875604402516699176265669571025074911968459617460507435923299487710785233814439463258058970876486225780214041380188055951137111022725877318788426974370194380473251374769632587897974690995719198713766442001130740562618874135264924686271688510027164131688812196576721161654850115727656680477493631838986907981088926600059494998452722961461329541973387053578316560096530502283053523759619926347250003449594548941786191925005106951694203203124284199308775542407757272615186197613875441862972338151490800552670858489303952942607200449479855663039578736530259955405803548253299879218087213705293495032139885815358330624572284708232618079988941667944830762317239623649281137085464191739372034294589040684689109361175759411766642794890180711779015223451256068467733305528084368746426880739807428969172107460064998271099051825283711980923512676135712050813018142275882012917397895933849575354628437334106552809937262541250955459968462123310657979998934456019627037898542489189302555493671366779859505426247931744949654879791135671932578389846292257619046729553054320625547611789292388121297033578003553091352817002318058981553703044740140532693494989827425619088575944918947684919146792505090399288319169505258741767124149567707099800328580444208886425389260665850385951069862652574756738797750323462140637407755642367283215693249099743524281373280868946546415511955753693703588646223407836606186731383248235615918790301001514959906396203262370259892289035768166365397148889134104424664887061062424041745813190247832145279178897726197200146194038994052401505803263216511576239068289182032347059032654462988845305355195051305683156945765857001651660030897173979438728220181348180933842775085614939932396426108166406804501640626484944324094293531107611365973319912821615419468976819198436208831105530410896576356865121430591648216460089849459354932875948077031154891760907432749712304785852704968666196656508471861135146030326836487537313756058228961803933606151123474784953967642268958246333038600044452347675509746594121899715566563138558272321198141826386642722337111709050466484063849331055937741507954279123189507593456600814199383569517527888066368688310519809146937719205104865761309634969375503781785853165432571583895125749868099574124576122155247424243701469590063969168974637148771956271603704877745249569833392992549711079522578238284809022936117015027445689362985093357643441429204662248315997093264209891652670271625572021819055377508112723736259856772500378662094531124760693150494312268967665368208961435293710364933069076880887664799997001083073937563568599669348507858285360209435116440904500105599699264818953992151604148841906660960047945104123896978780062551633805509145974767056882651459448409350985334215358790451844954961594092081486141359033143806599404856758580088656499368848081517055714072435106716636135508424601664289678168771743391247820500445098087988399870861927625871919519421321781944805165615841510499122423153012764709245565900815481132303035921872454763360985674302214776111757724104516012867623868753224039672044879972849281683690085560305271550214484202870598779637164940247239002541130289565483581169607265866189053979762484490205320635809647072759829245900893894419818465366258842845423675824910410849206282645307267297132619992552587737030512827285006487222350944199140718555696875905334099944319258101094732270804981312824586198414852327220267339119697459003308315945121276623769988986011747201491377214346334864217996585905505970015592255781002548448657577256697048511515982597356822021799315422959016452871533144527991175636921446073814837140864953626527162876006157824642112950874872789317571303148265797193418004214650207764512348970260169433753961607110718537825422631983540428905115284330172340367732118868797838339093954585809081996806343840277033047575667874720637923229097687002820181774045686934060866861367364280540381993126884602548399384702097342401450554146065640846286078983278408967956444521560651771737632262386486259643194691160024852795188813783461241807494851469747379373812982764903388269231335077104399771832329258668466005576254015797582639981111336803005758758524841848238167389803854650069657290051274985502088970484774310091431880923092371779629289005260137755605082871864964530325812720801615623652614374834534782665857579517019527062228062645082808358024970895084873393202552170672251426610034034499506854118749605910214995299785384410909616606932839039254501042696416282377235309796545944641089106167122535898747523885155238391275021270192800153533592311257141249257822061165660280842919871191260806302734504913932280327266752196510389966634552211140732185983103339103011652003328215531654952563895967259710337293138071040472148503723670638226106870612160900479970030640101485809210564373311854012795295853172256898924171563898338923728932278414835482431059021335365037087925340432716211014441361422261589997402982190442166442978272867938163963672455673820962508313116605953141516340862547745130224708563351013362142532989798462205314366210382685497766190272937525471250090964374611097354714247452461307698623793418687515424357359489619159308491354468619457133337362724361915228707023972507841743535310506992953083349440907447101967197765327739642496685739348587961471585584742063966670892052283756414118520028118164157419531223061418934265927708514548956024423940990218065700588712838768014688714974053470099123594058346680174839502557606603241678550556588678647190888540635906187564462492435660110513246055493282607785880126737679195470493358350429373301508995974069289808222239122519047201284223230296921190003056351580180126478032581859794780316616246524736726516905050558004281563362579685320899972015477873024990039056033022170799743472080443757419832134900473897050286286425463722463777037201354528437787487807897396621727836990876016322709758474222485290896853402419670579991253022920958186161122240087802468977545147635158878006486715582873383781902616623488038399697534798230804815039183829417723573731926105679320292295040806932461902477207160565523823036551695931567826847103721399508138634775238419214991599612507946480512508457023671890379721359901097192852262736666399789746641433319216270193538976899910901507965828613693408049951690167490868784943661298774401383230839799265089737448664416647882215380637509219957334945757816847159015867499323667826285045803441507508156045268181985858079896712914551269877173540362930459863460224943156601741931547315667617162604662671528996078130347447247779225604264424468373173230029748696891807976358486390559752663347886254575122261584962667695337538909529895103338767262693572248835507825842003339323312426962812277458542418804291463712030984096328798278757239457946109897272308585691065850594397649476857296338906989102000099362616439974600127622503110265771722914756120226914884287435067187748200167217667675897491484316232494488146422121594707115943040153959746537831455494599201208172888941806694165417697294811269372747274040865678377232455126772993395850001206031383903165090316933730976104375136925421384924397797937381742171775008660244443470621055749001593805991284626560265415410633490634425364719005989517073819973481264742947516597239285270601046957512992432355856385709870480427338364232490514597794961165984858360835440194811018256072614244139642093812075802442885703458964335496770491971801155696332624647877309388743715498549377944937248877979673376590212895417050269284135763909626110484909868529325888070728227960415860852918799599726135038132845008181890182710225856627962559998888697786597819193970322988452001802001185069305950696310204154182156570790991843935810051956332419087177913162638276289188632525046298902213301362425654462408625166392700129160038385989236743515287051250790007074513361589588231873094155003393000889842391762740262100897286251597828992334489412516555658390917788399468716682302947399492879529528951128976645292010474791127213464521040906534184797120256582798357850664343270798596665506870810345425604949918210357551745416222381317978865864133256321142643746310144963531611183684202481572325242351708793488076255158536902817587445921826877495985273943969267010016241290659465465759502722297169844031417379297674808516171892392724308445470629736475284052649587042769933788282234234231391714456850756589018907717503400001326309996619421559852106910509480064192919306827117839421047033168987530277004714664503700777189681955329131289839574711007719711084206861199827347870559954285811187702257009175770778136606172884051337439411070039391161167788773218389166061501008141514528091518075879139089595854817569488516889898110058839122656413549171958722886479000755318298181237600070098853429989291702537155030829159646050034446782091394245297164316815012315615486371734503494171937128928754079151535624712919991814755896988636725114863435068765016047829786702720036245997852122247943627802849661046126975766296637402164131774806885994355757540084271362487847319433577348775357230511890893415941784454650280453099536125553354469245627588380487495838006789717229965299543096211881223954591132237431010637794923579924243608838904320161591070786725699094218025939731645094134803224912011281174341399152430351251704533280973435652821376932657125343086806728748113896781911487298087105813265981003709351638234609919562849814673089991361244335206032181820239990082243737399313210519271052794100064379734000090986406223591175457036597470893545409864345817133577085230879792099330032400635274097760802650488829036048673635286702790563716546960547439107312795508835905569654419414045980679591749845028274629485601931867032575919634776821098209907133182572435911277702977002750782079263043700858560561062298573701181143431372644080621271759568381831286197700863628680227110665759679675512527047053212348586414628540448832074920741243179431252855416371840063448162105288899238523843035872376547064729388399869804811836183897472441237063586543777582845725693661102626437472033809318896779213472789857777077277159113543347186759335158371483303984960857508865865238680881913715654342113345646352962399700816728523859735839047923891225251826314871368788180180820992736725436825514279423140919553742111107601072567271261301443977285198766149717527912357917879586022426955963244234255863843241663009482535308848048764661618200631769027653084736316765494483657980368774353883340965123795811303237842800981055899007034765925604316807522681128104364917515031997098634977792623296564622574656476845592754297384632582193412134117736202776725381992205908576724213780866303519260164987010736486318804933420814174071732906938176817897137197966417279770849725897850665835184369087923914239606942678814279609793429843832755209122093155554354861740383595161241825995972027577551722111531313519388194627280240051486321720775835122658449834718270606420247255090930174823845949305719136461701926960110365505722215107981575714761904062732185438553070672391568768943643558130030921188688085478812063266668358503206073312016984471701626115981313970172703925488616966104265971454818268792215256424986648853479431448479427567430726862245439697823852565400535363299113310673155562996680268071583998891707348989057717668743240378969020788211347687874323021368923175961885361852009066597467687311999805434168392888820410411078279342154953720021943298436278537853712601907545757445420759611863052636316614712880437551705726752465639216893166833090780547042288915583069827310697553553887249601889353710162370348983908278472748713042856477388197107011696363911363505070595701457968363381257972564398669413311113194918846561699625816922586442804263742565452670391738161463401103925307061421621169813623903563946598988071274018544184132732963320213643300418012717599599827535864556999221432902274251367746670790705046204333982176153840707424110884803722087083963150427370360920365433167054870830391052800071548795006501508628558104067123258241719112345205679137125758870050211740506477566686018897355237116865365713501736856555390076632567286030096671596336475946863020778250574545258313080843584328622996780702879187284121930809089626576636960463137099319410237095055534136793243279569069838388151674211924462844774087980719018609726847935061193830982814673781892469281679940493859157686732049684713362239217185384909920131911461908588922081675778859842422010011368416570150630563686225384536590321669417857209169422145718437923789635021212566162789931080044697635647744746959567637340850460503389666080668990457952806600255302740907596472573105585179426634960815174438228101341637420085634731585560043601731093355812173816741950179662309258526975545876675572719104256025026337909095628998469537758864642136169172388697814043586492352958449888416518426583646164622514722999337032616510106225014209784113125646827622885578554551094297291066186102029593835206041946831854986744037391275836771202834430362385893381221400209953696675826999110055365938872593226608988525328694049474131345603643860534516121754697988069111662977680835166668770833482705706253602414269588373706490696652719688527364345502265874252769565808669602163916994941067212776612595991911835614233533087910884513310087167348513583684763021546274355627457851500798019575350692547301883710653507854558123635102710754353297771278795557464490950923719088765239475170669264682059085621542190629450249863422223894807949539756442628419438236263575928786243416753563928147454536283682581193628202106403748972940915282658460447034932586578430187379800431497755204753144089558786477464481171099420070563430317869907029594936052741226257495125664902845016645237069238438017448976737316369836169168446435985932995752267052726715976676579648002480124100912496541713545324724860275258801007833916829439365242266076759920258705498441550899995121431296632742690537817317986205194829536326571780176091581955824310880384652971065985698584404863057634468830208778684297641981342451403863790760339171798101301611369467593577448887461579349066080243318485022369822718511604233444600043154441417296806972194317071425173333999160518599025547907429802616406981118447269150214698185350921980522461172410424837655271640658667224200225816170264977638271861998509855562108638829205037580934507144966254628829305983014187226595796690448741098689088264502955188706385090239028471291468801354561988494502363697496765311408987185930780337577681228744498803228789697440264960067814063569608132912302509523710852998303710684130218778133869092762275746273952406267746465523740374249044042856984423917324258887306349499821512322360943063021493451791233132710698075728257861509268254814578987974906842506709039321778591684392484260651717867550717148338849075701539626192874157752367735866234188775018903145231046664597026397961610835600911887969883719412114106075261249016027460619857312749123953123774324567555262628864801637468416992430779576484563282395100960611790300418955636282507440911216433025013903633147444193560694794741347552530389682663636132543284907499314696172133732459099470807980176017826394395988622435967140177721000050550092612296955641107015819963772043395186048975592325068075131425237713197439536572413990930209798811831531964213273139066400476034617748062507985606063498174390030204848796868302436842503666125871008531020359170118103322670472940907300408371345703812952691972067986607020490684401007400215781975745648815346138979585694238644954074930965492122696404034671293168070977601607676861559672026033200218581946775521990962825929566041723481391268558806370290498555721764883386359928849943652755878728781383798003210648013775525445717957218299481171812846897279311189609109437387848758425846513431505425570525816361396985731611914373663962345117339752289781006872366332634933570107233883182290843542615013531361925918761597683933011134338238656453875438271000731655290106208044419273503435768560674986284452855090700606863736207873476992338786671657737180613901344849745757713838397022104128144058030411735774370568901703330979040690633268111838058751427062354123015967064919407424179406839443091601608405085775411691130026265481330898078962310163244109278029238584215731119178282228381263750348517469605938831744590805829636371442490280705283325204355914454301758702690254650787354687466710958908829610737508456971321936999786517257599206778146422981660696387941717006703728422801981554349892778108763817389951558997496644840759009089934804976112353226170576923245619456095328306505020315014936624591380461294804549035281243215536648185904071634913231615470029088742801160075069810611815185420021080356741625166478677724725425961425451910783330453107370549605214672583442739369569684211160725304013046359762469653660902649817106996921157136555151261127750298316800354668805071952511837836402148447960392172695467830141192108380802896273036131625502704709549878170244291395071215217455976461697355443015523680218972553070840975231173954967892894433510694120009634131991484112670745910337510959815196492961028529927202102827836556315440401494250646466581634615443768534709189193695274510720011437532693249156256166028654005597018593661583658864248274627280446656058157441120102591657190063439092394559501570904228863511573594711211335293422361527969990701181563036350513435680834496767531400670546848967501640024753843353453519643017812723296750099785930406864818377570644287552248411429728333147534609686084389819089420120149519693699294652040333496195585978054993963737954236356219173721841223093369808511405818612334016517809657065737254969169633225535863285201934886872936224069970399632777993198130906354809239145046453439232456238810908352843637156859594569427180555695815783930999134543218805594862735708312435048243512060519085161343713917695169578090607325229316152909575600348449351348873513719030784881359834703936007006345000315224351023472865271250384669916698913996075825744681159257877522064185635436575237472003810004378518962578203267519840986754367339633026853872176919728023343538048933418320605702121122319234801708676443785322301883248017591006312057729877627104229398583782404220834165612797324745707407712146830835220215172771174200143638754829739932834997267762969352325826950997988310340980802645591324288413707573222017083510053903971014305233044661192451990237352888322119105208988473062879367381733530135454886092457617557506947023766719745946315853740896695003337799605899024251006642652908283124267010798429186294074441709406101399370252580743763017263864863955119685353500909430459713862671176071675500158483092188829534505801966960868435598276584059330681746130736513769998563676139263293648000583912732327953371977746367154101261718242766450136226951036200378640960860958825425430001802242137153687622919491922143379846003760213362960669451906752306667686742602411343059014640346487547869421064351148952354572614459532813165616104258902986652012304205149353177845099179176421966537921657612004556017836058317822892889953973951564741798701829426272827539241601993559113725719681324055307200930362693378935716905660226702880493143152735846508135741617153376216511566337212090409964854471259459690067466905144967542379616990580783137204197734403071992672212630708008719341765762294479695101100978391590708470899978342357671887881506689033031601224041681285518161479185499244465869994283302496983594764117824987892687565207197739606162929181185655944223778372221173095215431015260829915882032625843747199404954585902181701042971788525185376701642004465167880175809727150512174200167895422491119920096017785569192002355331773309397982775046772032431159558518293753042721080635106559760275124862479937464043728327698695134553524190816602762646499863452992397987621503329017381495585936558577952606674572710787601603223346154249276339424880106753692179141351167383283849296504460973270491844251635207095818001277957684414373603181439956704412200730516292125642014181691034389396262703474371383145961502767592892185687219761952634576183393557021641713570467058123454818337042157144043382036575286641977829423527856702676590500817477543636319638518020259634476035652852141212848840070579787291469829505088073051623928573071665935536374134140312287671644441550327637606261527856461589290227149116912376515404757745636991840154695807064362243024701568083071461143490978906421636709469236202487719791220250518192027812807762219194836206903620724533982352748898245287222616508884399770833743181118308736402826003087673616955168123219815088866090458163496599564782067706387231521428761129831617884764284223844513898194477044625803564657035362768159104311404205701182520210904552894255042790629652497597130642610529581484250072669653257441017726234650266716841706546442880835176137997656690106331684291602007597776312141832280394742310313879193889700990002412888713869090301689402799421048366951224180949869590460729153262114286397412167188494591790632332318672593753404499535211867263853209837283118871006804326598970984711912084043236854677168645208641735080202777912341490812780152846578487499992078574561233323592433537389058306846594506599144138424833170043297539720142197784437237538403843329434239629065491123882942070568457503032487329154450693521962332632336553108800630881066732219162266611706780294598590285280101538318752183356964243500861428354765341419555207733659188244895525875189449379171701158677660018605043233042561189896537532583748069193175190992372265190193294967479310475853350103183947495783445539607904372892546062812176024480245107252310018721229080593603555887302042265466946587811928942439257002490827357043600780160198454617890127087173884595509834111287621710246561932615845428422719658692267693246388211993411360908597881195573547422405017903138036450893493326807366902495015608043626777167488414017071436523462016100897489837294170537521577841487550901685832657062870415686775846762604072793113730487138447236841990467456540452138610089987751660171839306353912655460744865850569697499072551153761689913015171604965545952344517850255757297944053843021157715945628106934463362450426664335513910980281037496297884239697056911266476632684738990088308482165975713406203565998798262074164838786963396171873825394002940868864956616764848898307098352075250737464171470672896223099037251510546082086247892226556846758098774910452467810631866129621014789440870273792415420419553813699695914258947975181209514352145458737050339803371071631677120298222481814828936995792857893747881216572197971338387488326015089396046022297053930028926785334470821678914576848308597681208226379579456912303996398214234892255242872613771205799418240121259920604149286783805269345516839337177505067618178565253744386285622213115543927656331175682394350905321822671737671865283680869453482789330742077009124624123654375566118566481436368042479210230016160663448480736170608489758217630688630254451880554365064728824017052433231242125073073016210361742559352172360137959320926758587474055271186140895703233558559970490662582429004067281909132284523553543853305395287322972208037284400314156565862590869247773036510721212671983603309323377313657685687883632473252935046354189467705984960604025141562035566373441730635662124551911377344083623375243161137220080700549224314459370692192832270567409872164405380684802893678712755223501400438805836669033821723097860295823140767701224853348256645645813915150453900874708485749592424355630793161481881327432621484456408089359413998832104367525462074736648006208637845774982626539117529583265478497055649376043879928576702909063616867424350089970004365814485598177129913793308146109786101729812632249862688620940156536755262633040980217029781005206126663141157477798572683833827508064300852124885669871290216510193167637349948628706559186619031141712634656610912810809751253883163212975536118723881890901820306434543235479960314791180521610298493927782823414826830052301770755595076270232939880183380542528391209905452613610843857656955482908137596108285394638534392217956753325021620652612721856970320366238524924547731957884898952286480777788851778660371564416016868118478333295255801689121393495291337620433063702559004375370970236094983369384791889059853230559490556961908305471171564815588569880421235438005691867669681861137884746963772328953736857452739068341956178791281032822458908129931377210444806873048278639323118704549634438538113926679511874317703577036590194399382651210029812426304571680370882485093567720256554618142574668641147491262930285973022393168319377895287070964684012732078945486063890278768793865105633759145877356582549506908196705535672827590056742208416036337687354004952294332440859912959486352651720755700936265602485233224291508129866315987786105659154291473778611382841244213480045530380705229974151850095223294712713237083251974379189252831905941197855174074758133799912475413793205395077665733442796762709573080443057297651724616751431740938009528789206458686160954273916934608223257685363503793655513802978840763197906095677539194778122580865807123683793223635328098304719988033235625488355501408931643815676840065112637803001056005161214100570551075278472088119206003267147132152993445809480983579392730213936655839852463988682729677577304342988565856616965864590069874049688663901961143183628243846299848297977720414978114338136133539215274564507087147499547573867267378259921926913240447288631407431022871785239783474358569763088002107083802651735172790428319138774896527420679158007349123198243540792787633363473197615833446891508019118739127950518868630843749469978915807232112798267339273065749697346909731690656794276281300131078298356397592952921406855065829802200324246067406452879556849872369557712921274296260075780947080300232505615671405299509846124894223410841924208758341258990690716447486941631888056911779806018204580676272298542351492310823477751621385456053113997259089619144555630648610993663422633214168378905277156586773684764752623542075368520780333196716953542516865414875194135144667845782235083196076621253502432155477016365014182242868424024735356724427627752912971150003586007651087758057272097497005045340903532073374687479939779582979915534743227205598948625616174212909808384853958384471295908526573569082076632281127232977293206263930386031222354888813365305565832146441970146137546282646057080494464425871879098531732008747178419343367881037965618891980118991639553586341087325594708762956663498071518094389150495948378995839548436334772742031898672202865217794672707836689563747939374349120497548440152459065462754212371605766104261427635080380558477916276342385893546532730613973394652749931816848016997447706863481602814816405365911282856437216672820642827100376937748433627821615969570588486359159633310336122901618544000983403167885454726920132949694916183567598768563453509336907053871069132119227692095775785323351326998140894580820038811147719476848571761305026467679179468089258477985038764417193259566139161581831729385961316178342181883489313503899207028428051426980042815703100473813277178630570811758111104989780256967443855849798996361928013711400708522364101659991300536601271681302711528958861456475050695652316187743126587948996072961192347000794778212676871662136514914639438103578221032035802868733360449009559881230153652330516561124761700404431630664613297099228882262195142577059433809010404777363490857405027593423552430941264520922690149864178922375100829942773773606417744986539342845239016591462822413906833617334127456451897941277618427754435413271790581572262180204002593648323389227024284619316293228217228247237995382761756331918279424584672471466116130179637326397092972010112943487685658583973640167506795935409828200921386262288008390574150333096421030374612549016402600720267354111691386048952099168731075081045753007176706557145005843417200587274123185285213114284719722863916092207519779225542749538922405613907972131440963779287536134743852009923948051530687133319035685685206258110555605473965599324410675004055790138996295260256985149482868139507740670344508530075242929179839887695273639711077268323774982611617755488328324615558854365261721135703844397073709225513390537759022198641138525290017877591398907951198550329152099179783512090136979825850594565562867151965131715722755978511463828149272588723129383176417023350835998921462013111096769144853648636435138901901914563225012209971448456856061340464820073872576995033856321787522413812867003381463362598255778039065201744095885525773260082216767796691646494052978663291545311554875015666926978722875566951666024281250989433945138458593632792615327585319395971124326243900875141440101748494477856607821881600799085475901081996939637690545297297060489894500471938875601695820351099012258543519807846761303730428560442807111529265341211154992703459084480441039679939503440943763858977164117115989689895520810528525124833993092158057435908582923885503714400818262827724814331018347971457343365925016111938097339592357019309559241429518481342974852618657373328922319897781276002845370336735477278742264877248843863814416433788379382289889213216526876964401931380089741936738411556053689532746135917656690383594831039297061577064022491219741031433511197876326508255115132588190316600167013217467870295510754738101850890212583545250039474317495640261140867057287266238657844267011967310177331890465339109262702617133194342550700921957696056903707308171962917527933280231163595917812927866480379928859216769397506501413064358990277261007592767508689705254459452672080840465018620678868875990207897841433641238402993631856832576057118148433612047682426087522996278453456846757602667304543533489175997286463138134404354441592463406403934015016676550551379920205893797684903146356098469279594549232535838134339167082386737523163883791519313412626187308484579925402255524706088538859530599927591073329018969050916053436788220513258726678071805866629603089541568647809630825674065371207070373807996573910563670784950177839388064323283628438306650326894143893694878681738082054953233276628326175345868882118380590902666746507874941816669301132441400795088898715759516479586804127616389688024419711426115756899907574459111897662743492952522349851693853672514531727634250284574378253036583957072880325391608783147866779657601500226851481810630856004878034252243578608083217537775443143624820907250620998136650977494308912475063921936741043759266853013618074166063314231947538824694589702765970478728135798643773091753182123343690857626167196562054877190647331453002802004516970272292417870896344482878273712755617955405557674353694664880725026045509103913717715174486456975363684516995599954857271259499340930150276660008905740314156169601860976980905376961914524470157920878407869928668678552870478009355024879947966914276536201298230419397672600223396153288497626849102338607434007722962739636842849795984665138690009607039159918861009081219190398876306595484511076001037466305662591119353868310493945012772791369790269323200671545834446094403257096191664057286217642695492618392035753197137193839562660178712459199483920987728156086381260428233169148701470411679123937206953431852928016883044732227568259185623117904348597134320573904630655201914309584427487992159006450282993309033829067718543758936613422938698218066129600747500920471508894844799997312736158777731817509201332201963826172729855442076590218189978227415830759101950099893260474105793732631721121601352346050143567734712709541776215008592535193199114194286417086409688810933934163046768063996150378758865305811711730350786509378959194116234577782432090566008607367550203606234351758509315252935779192142193404728404543219803329010936047584313404937219053301155632258838986911881593225925329733910272129789698273226077359560181127382613501676196816920775295800509621798057508121608770117890583170301887911940209290406434661302998901737388461263118596037970723163417266871701281922961351587193800179669132803323139847678896916439183574241561883280055405734024886834556309479332976385891290471894374228160730194149221112516812570050296187269195397021212061565290331097417885796028047497544186367545934607957682437905466335519837163637210188422795890271778564705239834070534804664482526191398009403264431314461354485043397748141389137863497399391035488977839489486247777153069496361644090464683497843185720152823279560577416020090985124069737335514919828348423952127079013387829736281412264348397065979906962441318346323437702902749828848417627482489977309469082681087961143036393582356650472231362742081627916592032638728353660931069479311519223346881606278469292848339483924984235610422048734237681299513354380956950564465854535625662122261099484043594162084499895336741607811870060522901348495033351773751943547607545446127358065614853704659053812972636050288560912881938233212205967828953247029962199519032659117211680720704026844197122826072848032072134884044364294788735661428997106314562913559735145268965569665883185721431235310225249037110155149189405166915948293806660274180875920582567238129020742621686455967544353497719078894982824772941414886405681082144834542900362182758178693511427218982425638434758139431998524087796141881522867067286954720818584027296662096562724143059782235428174611755430620600107296593992132332676393143638042657278297625956630797813509941669041391053256075438845785829131158714871971580035083156918138307584597479012957564110351136740423446162295564160214849727448638601563220081390200340142386482247986421768536971863056017204986652870630408070760374715593317233073710548659025449090238092349715340890704792456080200029054214602585518012706102245452793653323233327520634503225117993178640473782393362313082047895160723943424516634150050383629776362809427141028269871336300728251662473366065576256013139852401569263331865331701767190897121770731985709876895317593545429386739936612686903958209398558973583636158228179931542893393879999249275810606005223991598742940949490888356585348934750228929609368859337414255211910474971526069435433481270178019990072451142590986959463995837726209342696936579864652470135728221607720271718762641698876379903944569679528230755327787453003238871156492388153108983464197209830229311962217287984078483031677238647824759709925489797497648226949781793630402012660189619243898382086583254886419417688936607450059276623496529079021244174085400643151712484925344339560675925833498029589250439021152245665990058554609380902351062651020988016462371068816686713627701514104725822374985457787099834841247837320180335326163355287723561738742468020239088073255771604046022067401467399989080004481708321515630624461135241053556133325015861182828370119230304532728731782671830226446102745719265665279480101043238186327791326583001168952909433674650804319620883501571297405461192921582701913661744979348562669507087351085996995403866436966666703424829109363575059446879460960869404390120544598183856587341663715233586969958948559787639215231002788159280663530254424911152945841427670283733535580775265029553007014807626980345151819464743365973913140488451677437895731833954005223819070359938512390471295124242531826048445514941363131754015760987486689352408572462003471812466647051461205866340128573338959875212961483818535568230744252628285608393671255036884563014556029270111394684338506172369968363059507252365480818231048411054974710536075561422252085023199927635896321847125449021351855146472147684882964537046676837061288393527187424997116392902388044339975188622249696762072997058625087266322553979311024470140059422325425257886947295763955426968288589560729601395095751830174271028130000646215638997105873173197662669547387964537519758159926651878059873719206039704155024397627905529801925054288310586439393108702789704236853431035543181049096060091022171532774709744542271276437335950545030184517751306422501594721196304203402588304455191091364218115134045339800213813317296512507892817594535241275542938396646395633330705894859463559301526915411928888402657102106845876467704085398416651239734894447839044591521694996692313456762673736476088758824566526014395239812143282742625609821387069554781279941416194843385954571042185680070161330695599967129020486958381058341643674822073507183597215983232310210510119022720742501767400479447871921929543461470068383595410526427868854934749994297545824468438463927476877463734338372222749926474322266774570392753764822821047504204947932719408480924144700447185430938487609918692164039822581114164961816866177392546336319863598621753404493385320298583961507112919575429589160205185296899988220542713497416614206640184503138574154140784900566592050423354667564481144516138177061606199445033365916242878140574594802621930224974235776389932670921691420004967059640319946468979193703598946243699176897916864973516827935157433034247561547022360722300356099028968501479159852444158132818904745583209419769066250118942677249101874586467363965594577525102822839630231388992235684719430066181140835742186975613478661129046149981765777269889111860125035458510824172868421076322791889917444857242425746633607788606902643223121019044700233865183172995606376440308648518169091025462054516214215131761980676707620383958512310794697637795623101912702864387453028127355439736428530066324319241496459627023932646038364063488769013323153634026579054195108572678016303902311670545752932471550345168341024970635788106319416407170188385251788583991133650852706674137773919732877131882416944323614137835787880369105912069951244300714387431263715898552283309594851945217226685560641249818347049109808789697436047247432857294112395522223332752423763622082103897881202822311662922538742869930476594151666451738293774281002015367429098419956772694080597427173414311696504052780948660954892743117738460596550511818903035331167023005502456457411336707741143489944005750066159893547699468454169732522565039126004571965136979475170120742847302688581301604242980789807840273394811110443804964458680331446911974190533820128871089099571480330639383295743903069271017358910505992307023625517198919675960198060198203572418805666916774481291327752809196876589949640322685432961861989844236973900441646170370409746847603605823695483803864113423450716157063096215790632612795361717506115254317519786488415478363991846642944999976532779988702807391382945355751214572531935058488511862341805006619233927540501210477587140277135089700494941355531679805796418030042956334938731253615052176821946642390401023037458416642777946206456744432758580175277146140983875427346758150695200572566921101910607958755142867533613474161620480814591032623238318585348471922279585609592170037543709688814808950999544570762707369936263880819422350974457959661862727830802060203973855822878345607333825793047494279923056843957234423567700632066880773320095257783152887730221545622511908393408785100084001054288063916498951205605906385990199237802187629284563484968642303758655627245639113154668462124019427794993432315045841579972774730959010117063578483612568163233670551909437217151274308510446595913332787324330552769917957677582135827515046454613965291459600342335551285029555896578628998056287277445489667656408245458733727900921414755596871506218623699167175335664005745686206839899395839998068733368677755034804211152735712178814922523255656258439457737282300015333767700997372007010434036554026666523963211968604159447981450125322458927320076946351081630217890557099700308274844277261997902508450272544186661182480692340078774057122708661990078299688837981905010528084919167106533879643379955450929121818624289929807253650569807314165403010683433770271159613987013637532461933451257839964770754787717958736093842198388749150130771448280998856737678698012838921909771175811190684153263863283273568860167903797705685622846851411775113488862332762139309387520181831760028794287790275293427419799544056759356597511442364637530326503012810313125865571272493433019307904348299092963111792004479632362638398791034345651395075231615711743756268478979060393200259494751497425121726944633095647059483677290132030708073550538304914292328927283465264002219996572838730529934711242029705033882876349048775113329151134584374213883215261227897679103757040417105543204216976554178695296081007674822299849680930522243583259900304085735455446995990066801744703278238177316282480876142197613836650600631588865965389675483626017272613620115623957234592780151237386815835606019252232482375803204658298680940929590081162506173752235587691457160620154046857947303001721843227046253650748357242892536649326969147227439050468301307778254593250280794283102258086427018448365734984233923757914956335446405895728574296382371350552242643098295718454320629128282867771233672540560697962962957818782367878817722728364134695282932094161892529025063624108661935184087486945838193868271686515939644555149041596317359603260697505557244994923658490492509278203897677024920901051586755145598060159833471433975333879317691146089934311679949137597895541579073474564709644055353048522369941299014150353182102554274954567013651356597786762226441408674061767578850045647193454484829852214217676333910362012493013721969072920257487651668765423318200974801992861952653598216326695725224631239867263413200190368578414936448348730232964057999464668617424880884950554491009025894457973996813279715570315580690293183744881895298755351520866515644981501648545311301885847289187487904191686290252785069977507820311102580922328230290380235057739773460788237859617467321604452348610013963501802529248848251446347168529225115971508441083384373670309132252961926017884382036546092562506242964525065429938044312205411188117167261346340136417211061107346485930397199086499200568622722448664560929502919329923810845018515965077847242435847353132913916932424494882308874921082066392188587589669285786324168971692366679130832604321882847925249408256163621995341145470710443652713907341667380505304427410265932684944559889143860258679642468061374865017138705537678050977386504322324257312920090856897537240018526070441960907807234109592380026969558219348644236916866039017024050463202796170258997100609353486179165563505929230777819666280566005312473540251952369407637043613108103332873509656267919273266721282731009908124017823726798556138445561377833921475869503522115256130258482264946423768901621671438953929108474784173220275753350971800766953676350058703138782957456710356097867625460685013260507608816090075035002940517205924627675325567060212759047757937291489210510579895359912511865767133959991366602872859891887842748133129625987821455524046904398302750777076491440459091569242395149251098039663621636732442215400487961596041235053157086882786808509844814743112802548483961795937323358676514628513476763893314290316833587048488894444988476662450860252770047271518286370853183107745622349695105300629749143538261722775712974618715624247312951162645848797523322111291903998747063465841680917997125873304948554371834045958714955423795393345912915543109644737179509282246035740808785118976379728087196118546768366871322540443973016540287874274073775262629682412011532687445182409970924685166185186903850089923549980548711965277674813451306607454891336036112322900072274978038499647661486935413854728489648851715489657293157478650475724492599627329289065257283709919992973100776319406799747178772708675374858851939461813723634853957174129511674877503253721233800112897722225933345872941397962735203742452543880514683986406079564390889794934738562106988830567727352757730467385494686111956377292349197416362170300597626548233168938781575189689066940347246481297947273464266421468627357450516725152944520706364232939144643161900443524898034629786893581490014325663548239325930830013692517918098957786348288548102912435040459429430871627140593963608676206696027378955534915138143872639945362658961261571504903803083099686502925717438518680367358667408789198447594248249400574839251582502899972179034098569074331459293625313324709093444666526698773795942838494631290494453024658912655044821156491495044276112188963852113653418000260936064011677849411038653820543295494638784885166352597157656583735150766396699152112495506737453789003032025624320126102990470499885418624808596465451353428018807922931814456962222867183818213734836103288879975748422916198629087005003366115112880132056889379108408782056770266180577187049534726004281491846898188088443544877668603676052882682768952503358619429138434619496993587042490362580373921716815659021900727756822841371457261921321356065591131333894451479574861257934834462662031802980406075628299523533644089660777004684075832116138698953803471251544836558375742926054097880506435902083739803689843850172173629077430285835284847629220942410453531711906187053213882079115597155882526222864825527309307861430550863369429702375218776058431040508174281689574385625699482083282614363007368845890612948201477488181879466037523228141093919515328586708485939498066119760829748492142535973831151050087011581130432828220045683317830057710017915030554550731463751188700872399900008887950727459522124828632163482669063106389004535128683450883069582581139292052488077245222816215615649499872728531607328680700450579349555012202873826322207838423334560065326649055457257612103217398627127952300525929264033044574838975740577601986047888795971625899722367331423709651045846098151506635416251256711866466053434747030429128183206898382474854385138286086985641508112110539547689593133308537732212471938330196369443594229926253337228749820309466961100534899052398512687905793024731170981629397234280079839684238269563013349730058928104802702027760917081710168008841983596863449992583184846310796410224819952664265179610523991119998108270562933320252946962558475875139844974679260555384826711790775740591452167673327107322628407717725025373223537848919213618776395379188363653600398292923742143038915026361158008122301765130080641710444326799631621540797020015176879414777762678894433752504417191768379106312599347219854303968209957706911193294558624741851123740271661821366501516636831468832142560228424560286776703992000745516436153882744515725791819872301020145927908065063111228986300916618591851459859723392041092822702463618363740300198394365883420592877352621874888280601450288162750660325250776400257324430886880946579334312019247964657188581586892272018738001514336098793644468060486127339336702826930688613970408900137264720106087563133279918855447257636668327002661776626646526299091442390721409883003425343156844870127709947223273170204902826610053191655637092266758286772186934015704622546622593154271110082662252078054908013044301548346535504840849454526198189136561086237815995666345169008291608072217172842226176512226981275880013349924643565334238466652831725203639996941561812213056508369139385992755189491888688020791150782359097850049243417743379875225676815708226731608595085514620617581208842497963062829947230487903828410834680192343087683969270904240663142145064471955522423942500785689287174055729218626367467585737371450401449646333670790191674538414085922252961777255231872206279221378992583210871361401592820576977843703494966188704250503534208153736693941438426087421673007588393718095604992414630296354797990138530389965523222847950072707908407848132474900903633958642799390709941781536186301429946502012778493024398853045648166652671816412066009970172686243645950667435552108284104584489954946245800860837635251516116192818338943842452272908940711694002876593380518717692261558750996361592127023795638650640329509225264705842062670060553716375098219313209314540066629469974935180988474469401205888896685792948464591923878670863185663001749236007242815953456026054278719801991186384771336815872694367212936204076683561551817194529461087134001687464383347692223535177098058752244744458559394983558300224416286669161489529281615520454769014161030827452372748643661089180000835833421190253147995847335075137533000360541747093480717567609932190823394446872798476955519003611785164965438205848722981135355243672288217237024872048523652288876688985619906877887498262792364373343500249425283874676694653188267347629310781142582791368395082646443400901600464111188589080222530681699391593502264965539152070689005127617658887606035628371530218137090794951978863342058465631140108890650773000563440235059334955849794603589932122552171041923332427560111209524069572618411519421216607179133052455698577432317662495885203845015072875993596370697778989274845507856013703015285907058788079296268214345150512704380485720405101596822976596027741969240755269708178027931750229696394788395720627782345975902895497572793889139145336481942236405786876446881987219374799285330008951757034632277663842666429470393556378056716670212369654189447521595320825872764884487392362823861591900894033227206253529258457162620851975622740495632451520703812862475890380271773225205066479949218408924501826069095816610586692207819457604771192757011404560309573212021470339678493528234281749363233349601295089561799844531090453217404106985794398641092337638985200587380972462392026431394513145852214974198388474590237668444465578073442427795616775683102846316560727158540474559559772811700265501755301133463390248028732106749432741013213783094645193366736252615673743143539473105833920529873772719210210063320208968363453424079903961944020816048046781018150081402040428470301876045471940871313478806343949315215737937198347407995945232333641467961184836679247545089294985272209307600018773392166775328435043790647564069791740053749461656587338707762484086958634858850262531541056547328790678384737101145411007785058755589719573098513046655004731608952900203866843664138198710980215480878352729804831523478389660621959656088571483358418652646196150378296312566591803008857471354010648088645205772675307567854719368269700925235827015204300039186018906346000824579882787738372174971070036074336414851093373454640493706677300666042546575079301266554323298652402635718303343948922132778756805959931587059525856467664182485366248244346673381113806901421844567044053084056538326535951561420571222572400897878979176270624036252152645515821014164387197420323095139976548529672427298346318920729476141347594213466721871372215843249002972300636316216052341038956827874801928316544368564090605939290178791156619618538541457041410141028760120492162045301148149934347447704347822067842300300435754090444602986735864365959416341214913214923631319594821545263237798417510305721465677901160369334994615321384352289164968742996531585748999452009256253484746814809842115002309296322014242814888755058752090420258101700125010006612742449987156769858130068230531081000526633424554872236103112873831631596087725807807454188394493040911358432356695394052662284564266466220933808606233078843233312511959684054833616747876379107172107714687997314765060827407307757291327316028326615105491821354548294304769954976583366642837756705577314183782823003272705167617110739874472198508147703417306088719494902683134979593878164180366710596338471328339481538316929763489444669625046379076914983959271170802884464014032068173862428737840427140005364846887951959674877760288590754265926529007725009767624224391268970590468382876538771525346146432894512385332514919263727338461038634431996041477943955832455781246300300530360588353202262159663384969814869768402366561942944640824407960405275445913134885125386822530837569141327171820478156268215686906624898747525588793575276859036871327992962467027173550173820153230312928338595821183299449325442860853573266077784332547265573129114231240179219183784471566356272624898882903702896054514098091525824121248257706114550271409457731351648786906729526259836050026530708962149639461418066777518535183776981864769184068539766547962565379165672909058460986185661496480194945532019887303846460793420537675662916847081955758399022843864767365628913012687914386488035553682055412614842940884548522171305214863012071809223206863051138800893686074620956392820054808118570219140357702919965307698234481042528200235460398090549787337502373947751654596902327520675766952175360882524334394548973766598027781289527990012708003883503292913770689129594455838095393984302631110503737494186875019903904107749744391218044235807134701378837587548039225946435932473062660212387908288120859103413597340598505064127117845776820901347104970348816725386398070341792656878568131400142392098462276862643323576077587087807014694138195633242697901624385069291540220160124729951779777283361091163544674218172702467345118398540081283230467267420774278415317439292541201475106751675824406612908615955605990030966589058164619779551311581443302400527776937993455314253088675428154065230824892378394936919321175999183692509464019576178431360717208141400518875440290495755647134554185877892019622030349812458567726843265921538069742304071658795486895506454534040780345452081926548488013150609366201480702355895211485995780506159601294032619057824002557930784099239808277529135553982040612412317941370864651145468019624343392961871440767200860458023324032112975345744529826615712013149607867356942961596830621239933349666547372992215826566003959365047701766330825180953010072530242610569080045119757249935662258953028754266974569375174007055998431890258477396323785506652739211293474766444790040332189817913330951372434699161842346812330820567993716618312658364170661817127581532415315366150964547925227184731784530375936891070519397577745010009429339939298489971647924194700728020115016966499937087341384461656133361158131314299002698787425567571657875197006914286095945598868907545642210299150311870119335958479035422441580749646496538223156815526577909940720294910350553833110841706291439956478924098968769407590887324338831552547602030413640486594153256976912923502322977618038501860664871055121523718553116558257412016326166859226682940916063417899679614224646814972641886983525281475933062083232061644204704254050384101667286096217864725308804159708434932217184788357830377298602964693560581970451025560080561500641336047970441229808472604057671326206970617680745933615731102483911603593503195678606238815068256152418922970541030343801353373053428942728745738362214220378248421354495482638194397642869797645017557238925005592860879229966122218719775557179887775518434599419811402061091894737990989256553343272471671341930938192491309838222823438334044676930649189705457782705197443060238477821032694286684596249245435010807096325458340619696759534160489216943326963933595136659538847315267550017025719772417818146574217537725011406142390472473244942191231609151241930019167698133615304763056393404094083546674909403113752613385100681977573631735188116448090858757324700289615301099851387601456048400549492140690903944800568696401604939088178300006089241716585434245630028842115813044451166610941154896862789038458278474774563555524228194997023592633425596137773618855059822784450291211654876876365756940649110322025295906992313910654515108258715308425994901127284194135109388590477534068354361631087705902354080301803666527556610017608324428514498088813424325442570396897658468121888171192690175016488938336733770873156292897624786322921329757890756711699670741322264604589348216056898073003536428712214444851439795165019845958607044217397132983736194792055162268392269202094116583056807633279463802158975120296845301984446263574319427055416611726080438356646369047594423292265018570032634374254659174357768563551498753591509285294335418607267837442078293380517645319320988509384461750746547172559133175068151555722394825300408032763135941369291644235202704717757604589974483115908099601776709820119147503169244714458128106676354265401946586595043539604610017502062714547223840420891844302409162772104903257489915367829835791379585160404561247290927744328981043347649449002119912034561544117695626496137517961756135132598221724586346708247865485329723839743651690545830877904603324679793891644571151780696823792558342950870744574293884981883564535771497836422503166722684846822316567375177422932626882108002123399515760073240488917105156291370200849068101877690766106821296139734646182231794728699231481094709971573172382881457554300484368855695052013982552434205114872645196508331064939787611620809652332231849248610757077646610462868473496347607456715813362162630037641118418531719470020484531269228018409067561325379553269852779403470126329662284508952671933213443446468676708411365607385149512217262435784290816200500495079544655757604520890310561099597887893054138096461623111550005168791280843956661849150853718192968103571784928504792871204281639575980726800000039733732557029993771479315572773412111675863175966533833706646517825096062769149286295395067514249068022010147841681612262392597305452899614234791164811560197858431302468354929806277534464706860092986256461278150939938702739238372705649434646365344354979544784304753178234780559975155112673284278475496177061768089857815193691982293218326981480576677706065552725226534799790765868378291077835682910787352227921388131070157551339814917670745277796416646291616193617691511067340116080896271144746380271277547394108617637547967481966802154744838197112440635393348421120078522227459068062031892996148227588606715853213353587699851234282129040306400677449775515015595084387949542373475376879338981743470893357325259634099328864208554379199971447208938818411380590120288348602491152173099828721098567580665271929370631490530827702948568126809028104673759248201038747182342154589713125179772706262545130560193514603745781353903509916179848264054397742424685784991260263483374527789488607656060061843530864401618245879953649797144873379936867567076196337670749964624023933715781510589453064382235416877869300759051037913851704965418578498193782030268062530348458887566221418749136671262916185070425930564114870882941117217177269208543703822213468012841256711566068331081569587297149051826686473611868125273328891134013137501917540099115834214976113863134433223883173997547156780663223772100865894176754592793010961694355451112250059237370228856011044854482829518637345687707151966409311183912649627840059115480766175141818744033398017471837566333555071298421996161797641270692212551086698839083845477433149228834726037093615793923429072293202064587138592131899079418732535248546867761915120340112770271653843772709539552799831703640178292080282627133172048840818650826467259533349042090142686444441083915924486572278033219781884379976466599489351108215809646819116551028260675655502905226929060995090943580904687083016902697153328948366995002800195846069168410951105173434277999296834964212397949880181626058773747307990004607204372771249598417283659641943661457558001556811537115014800180701215209897237861675321889608148829475174352568812091049541197862445423104852015498296880048484920961364537712360766518748961726445858720270523044489106355809370646005096637918326678400464001516132796561428677402943085659715916096758991060993775768675609526287881368719014773868703314014653733985983897442590529559016560717845822487815516256531998012279675916655811669697549667785664078726013363105189829755663230752624291007548185245839215018785926660814909040780936091492400455194730475026819943941621313974273465587230743600919214827397487910774832417283138683589624951204351050940249762843617148482427876698430541819277694950392198325181224199934517097554136623579527048207868485917124424599025136681399234080749217006963397633507116631382713278586177918352445848080706770110959973131999836526396352786096807047663942899167621349262720024218722960165240632030790763457158355168142216563880825918687186152332614820027019034832740242500096171361760850767164726518605547251085366846981042220307336134447349169308566174500460157389207640837176750969316350779322130882439412473823095835086043867016562347224001296039663400196935631763199091508324322682550017362900922392344715336873909652155394827780023294728701037615978272908386383209226194111462504576581614785619140501791297637374656473512658640052194762651279495354379797257466650829525612769532986816905544576723117204646419373221693926731716297930538266270514359119730928888250861764170607729162146192939086110785681923357323982253688117023373074020696464519909558366618313233260857545239423301338039712105866606322283277593114761015390391212373649148426003644054283267537672642594630725508642516549674727426277685790424985994688554284734471388448433229833499377540309368113300772267943982776181588812185910108006530127426142151756736441111670175046378829871332600418575425583443587014855054427427196616984669254532602254673367981553130016798095001326897915999741501188235762302095873806173385099189137039997857285891703931202707102506023752163702846420835258774407437096514633782824419225932350776271433622310020349126050500179077704432618902197761635018956299326965173284665991059145200297065843336703532814584776504000751225679076965626255771136520942968264983446474022000534358248543318302299458696677472348522699712757735165602157147065485434628399857187770118808265686553419469060168549319965571110482620384788128483774086885147419152686077284719093907378151603043773638843437344713254425350399098810164100765207365657013251357965433763994297240738029651389513492941229929609384162339096138685433755815863992846252243757144041637050073753212131973547733474677813538081596281792561065756654930655132031969322456028076011787560178802583463152172194173992895451530015402247206617463332238321400426660833083072881430553438491484142483323487650862025659240340460873427818343002694143533455686480267434071760125330577114936734049950948961397077805238151122667947996265755925670011737845268032524092313705882136799988392066175457210825495741933192123467926349412092153533534706970862483844044098463632506410796492415789527657587031629903154297206148440245246164202891731779550306999492453631621329834827581961729583288227936978504201155514956920624119289986786343683255097802128045972741383439839984244719750683201789024541644951433630875474131257749082969822061657158524181745965791972438577071902846356730334467442108827953932548193965467800593841021846981273456729628786327561163764877613168512176637342797233623814348809064153508450523544119134996570397717188807488264044321826409602449152622498978756359313458065185814856967601520066493983593857664979491937684005960035005280836410198704296469055138611484633472705930040899649272644704456219861327510153156365066633767204163849630051040347980136154302775471406755477634840753690246747911434069006323486660442785502180624919978799131710812366422428474661253360771283350862919397265413642496682240919904243341030237847385907313532650122939136384322803432345685847230235219900301271828185769007275396447447720567741873975356080155819930464044193706300122124170066330030974712889837672207831352778911573319650315939867507459210297457096560087019303947623416976181122765760215975937575640397324047545145422080131203698904155332601299691906735142207690538014552692873244632540531595088630783772379789300254498509223131507281655059559165247897713842256499072136437021328688352459662160819079050522363998498213474866914457308433382861357925304926477371461723355987266720304054522772738027624739183952386261596977578666842667430766208099774615327268249015281602936231618331580867073708407946787693668695970580783095398110830276927051960485021139469679607123930258240485497838807848886839516700759320767483151575730512076237835378661026747615451813154374467894271256785318710424667486311435433292562790330192439880890440881002836293656566124623922537943734106645208742415751749476091976226839382297591632624830439246090525129392865350584581683262063857214594721441408914910744070123685731130318065476956628623700231092081473550432004467081398343426178379052573799245545447464794731216111401666279208198928819413624175476240587076323266390155824093122491736059452435455266532959079596831149432257133914641677619679456642753494481745932414602092584103751846923583458535483410231702096328133487070734686241579556249152633715648311925396530786425189885622523378883793190066909081866358996124445492922944048484380869269473740505432215857285161241567458497739397992170828790251111659673420716665694312538050969677095093567541077224791002503958353254176376164686803815575052395761892901800324222533780161277638420363264806088443461272077807200723230161064966057794563856011251174796198645956771738031857764521281091660924842194420763965324247678759629597163757198307595596168405390525026604123283069622021351850349366028694064794499894891516398305723241054798330406445586817058368547637974093646380359848684296673226115611020977441820833000055343404107505944092884117310734429389155760734894270896433991373236558110729153751290180251777836597046910417332791774250700601161121912516183673650866644204850109400483784839215717337355021568658954642435741883656419246938366744437152119771788574461367104618153783310619710939863964315388815214655790349010789081201203911435185070788479048696836161045774825331897720059417255853543896597547715082311432081796886431520041597116672284868096856373275662970441452691243782183403674553128940568097538077251376421284250941859986778826113408854982410839368126262844590354441091222477027690161937319399402644781796020176963515278006500260775210518832774950986034926732016220574112642425004836085568572538252224462407951352096356062352410411797479404751686669571366631575234012290899805962080628429615943410498756158519965184666340137218465690232216541756641056002511558125034128873190699498909769892763621651271618939322292580214635453946390464389323515796221187478641716764971639698735077618376031404416206061199947142483426039771580168253613309575587921403089663632158906928724238546496933172916615478148325009523920662762033876886605397707519701588450587082935804616388922610912071538419606597507477638154594795941634780747024809231743642230739643328954845099243272532420010945634187934932212494068863530074254083688520505381720832084873968319550664848586039335125169716288224370295145304899799917210368277935575741925324496759350443315886987746178171712085942903729925127367304756359097917077819390055802766830196570960624792549050204010841194653619274976442560676751911103367921326476481803806812078161649542632392421433295936117522382220246253538378719045154407044333430815861671166324928751813757989372865364523661714811328286845825741788974220460663207832058647723708525927692633093436885677541873503634197369585495721069326771105839003306570973070041089878062732033405330164432210706707916952571899657092959508710034590097705594234787930623379177400533891683446321798323135778174984388243961895065192341974473748057519244934062168274907254196852036639145937531619972700291914967275290406370019281406624448183057348205846800073549030518736935216420294330235338008454430563890288348894318878727613047821831062552078360517273760999630103197944519609436167448900238256844323747520657319545698424005403528948510882234440846746283868263360461334717285823642124224165954164774258522722277419726111790391603266174150176483305495372299309125315613279989505718744252852723388354916815590857969099574145336650572291259043123401326486052784387317781118297855515332842498082811858392544706624209708792556572934626007746006598340101723789910060752166291208010969506529825905739139578996066564279152756256232389717807436462955215757705954626451911648804548676880861700908221618697181231137358991974359983221133681290160774106956729885794358988535501473531214264125892937320631208766289847987821670758190741178383670220812793061133927746665107225673130894962175623012981584917665534666796719328715512107542891249772084092832415206093716514277217058829198598098565876540350240317905195060864658293803547531092794182953872212332319080227210341814996792045054238517866982041795080247886633898982372830721163889483379442728414173488019059924314275021778390774938435104528664583583374317374074289599200260140212845366063164463492606747776814810035111516088558042157960209846788577828980725793085834637131181045843595888501113363022303430960094424685378113651958002205090161240367209482522538957786078060777927601243636162780603232189423312955370833654954658910629860539223536316949857517789863356151383564940790714019372623944201948464594276138485002231274343055223754096932743425557763234921631259745973510291525768412768170467946290362466436335126457019475942643515624243432124296046040253725479311940849959484900358213644876996869111239189210577989475177415630456448951454033183629585919292754141835118115183506678903611033384588581804176267585226920781036874252360686661455912891062157031863930456422374361438503508430428671309720351740266765021554737776603535622463805758724863877939262416989765600134062381917725048665662865485791236962310124573828354528503126509202235852510587880037578472481206748683477933641211286543775141789490987490421817352564259137041177835029874993445087722755929503438278811993698321504530635828071043302703196259972691649336010488836214557349830967971114779445107514123531125316026622345505283606769684644204381843242845984557252374496915915484360625683082591171353992316504644745658559842358552031528073953791066699672233809720427848626580804542847825297329429256710306618119622286545118805583655525700276031299101409863613045842856837698273236341538241967755221414094081582109623375222263268064417001069242577272758075514823985829103922638346173848109367999063934122704075598213327516334167560655251559801264294955120663580895377902116205520681768681250514051061146396222164548472506463758424148806519081869726984276614350112461583445769326523085783505541451560985490231484932570858316037036286097426746561663464269719353959442435927362327690251939521651641865730278800945603458933588094301114611383543671392393202045039784042820990950439895435973479874289644501502678147255219690656709263961628150585084833689540928431564161581508075223972311994838938155692894096294915910486586017951344159089402815220263618018458794880185403119027287553941564492098171341731189104726509685669171927488424528131299462719929289260984738809048392236750308223710599898888247593030608581928771741919189884104563236584693816985872481493307474934162632726398947161683743618671245130453220799468624262163949586547873422289411722108012855450052110996564099874737235274690374481469860542909282661793505623645183645315045595759907431221194149107169575403202157346268575119107298220121540428533463400315571920856344948012829789388954393748239528341106018933896405896438209183512825072848171457935067945674070611606123098263009455275714739443060143888121641153710089570825744094315004268719355611388270606947134074757263835139935480342582316749231022921515132404212409332759912797485974265323573197344567190045721719785845810847349021869731320084631141625699692698172272069284551068769299206655547002079473450145091533882337812789623404580890792728464957135107239032722140226080001379257963078393335904622416683782264238553890624370919151173434202085320037653846335831661881376024266831857500620714546571958955395838599879483271316167738339152732433211599786838706884537979386357923112139063575788597630462808644599534452829165376086007815391861192098528927987112005272242525563929873265674879181301560255943830843549650889241528884804887741780067579352254408797244259720823268991840420914807232842954466714915349725088253731825427575149595881595077132400057360155037023326038656620789891367094403886021223004502836439350544574944704160724104615856400301609772509756499620383035393399787980432735177911563488383072683526222426761435752118897464517299726421890657654687646283992397131699674647415139543250503964345354207201956269778957172471610729842735414767493064739719396675724770737526080116840079923292175492380867785755648669063834055224620916284564992095128196354946894037795689063237014347965909252098011602751243667986148830658015163575188091124134521839880082283906896135539851109319278422235316041416369808485530423468240496906574255090726984110441010432259088567092982844512853335299071705976596326245416204566703487878010633387882274108129622478061953168904943342380383211635794066687277233215481991270641832901335404341687529733239945494129285748182579190626748221776399302582988955930165845082850265609157834317454122142602848910311843478091530110420575857627990442626093050337404851268703142400795455759648182390933317773834919924256489526837672231330268171299685941710283230121012141144443445923884801617138011280283336978757966703031333416258602501678170691150912090288422841666685333921687352967784006915319931972599010768157624503386254919910930500320798106809289815840720862687055972972507803479182359048204436570726934341575991692261235371413525822118983231929788013581674780864791288616399349444017382294834565260872848559973429197889671141542212880266810583646959093405276403107691120263028605040253493934414250004883449761443071961576273006306873639268773085506206658041748066059883542396616250359479193565441437140420609685635262145944144464267926131815311763431624478797512292650138627894039095269327452864060107003360638488254278402226061707331876893890658651460791492680278335778334939744600518899141368456905868976227293720386742299431082762130973002982114902206902322221110873407002931783349857187412782603023191905176206240938200441299393914344616354119196732660955410078445495595563455223443805425393351873804169928785741245715454649805892704214303367762195724620132267035132693866508561130513198094523885487014806225290398529326578487561503205664636099460497831521031024870456947667179464371361633768178654653586746591409929794050640251079455375039921794065014185921166290673405791133909167999466416095393282640307034657257666236928643609869949559025708612898539430736114716926032646442844746857109421767099821371992552932648663164760182198955043094932176632288534454177576498080086412722872082664647942177275180561004243235282671236760913304791671419363981161534908226044526975700702776756167519516819657208910188452491469161947878312182491977839880189138442398982158471279574634023330378876641186532374677349297528739799672939827608101406010632048880002382749622790648228055990579839676307380200876867202955624776689576787074924888946927025322931465683227667797512494983544841188945188160106821006176500487662837845997336328662731952875297908256764615798564050901215683216105452734425791446272329756417249788997285661790944968786992777536165443433416264599261467293602358550800494135304088776909140296546987723379189825864211476394048060537188184903924704097836085954831219258272317113906313055795694986749385052873685243119179190458215899777514909273583218878683808842289953091266962119363334598085562464059806278194191470652220939663576263707350879791287840917888471334589530165503401443027416119406745245328013078240035704240302432554034604148334928517269401579317914654821455237571830136729247036780186970122399631776179764350886532512932802017218299004894166580581349187634693856869577605183398293768247060593283659251381022201306053063883909815364054710871310282476288250147572356917153564910439896015562151658897505195864074966625211199897926312901150473226009947721825111494514079941563692769705254152543889168323891108777743916908905113149671549633381169164610788846898444344366289683293824947537588715147393524782503976613869807340968902380417922911286946265983229550312518213976361879525220790636227573125552638856327124437887254576869980794625357189380684088995972295489595638014072355373009929183158445533393558130639398203295914105031250492757971338004283623247708486540443533472093500071635954518226820049794015061553455636040141279839839481379683337252903402577046367841541302370294828011007237016355144725157730591002178719272143707895952860967474667035762695273719474021336880086691127955934032118215982144497801879826675750013554374049964715380716853085390939321945138931514220625866739471431036358424626592532067055222339516066916480326840381336843675401278287813091434703057260940284632850095592352725540863818990907045289911564203528932064801939051046096680066971882760497311560561277864935461439626965738541319854361936562468574643042537419829988532524170592588348317496063095183310799314623399395340256239438474628985915609421292042745021085636939429158036411325727190376760927427404067383055517256632854378258777914222680242966411398311627683635503705637287848052708285028218302453664498143465020548162048716594334533239992082019545826875936349501949732108447029167074309706148372334707926928977861276763933951112784869355481214775509808075180439206914365800408628877342562373806326313162711752371111578069455339203888821394610480493038359185101577519336133004300073363225452018657803588978195443308855605293682301449319565847605196650210613399384960840425276249807576056634743569139468579328094172837660868618208263918147868450466096402848408067195790213503070273855099259024404819157042584738515401216136738404367246697861387759665085635285993168684753878347630637879595811771838025921830095503653997340373613959496935511200406126975277970758441080014322259026868519612143254062921807924385079426743811021048808453185363024904934414205740502468139259999643391018549593784611836237158251202127984340049721555464486754830041429288962944803474107479669526766158433074857873531358029617985600789991424655341797039887942030914259715831781693759356655776579197147205287379107287352670175696514849073029289304971538539787028610260008695670507894542673394957655639835744905865963371543169261691717911242625564042067577135428029282724813850955781847621347537943475456733437621142059587378382894588981852335607840081521772617066755380302166516784920400136651466288340900733578926560114703715787526282080708139002911946324082215629723031088612747796421566552866156993259494337104921968747541955153888330749118233778630958221918105333354969928131046293708178503146153097782326568364831503657109580759647087113164858134443466909487944173395425230143948403782893620429391561063647073778205290406189129546719094418902953642644999867100233027743329273237763093663760696924299432686463353545906959507203048493815070547991500722656006528842984488712763166238085126518921378163206081027064549649750803387785666190787428684513271224066977365482679844079328492026319337973596081540036178478813753433319104325514670899716776719766684452885828299641927788985067815682408956491590055950203337890075492594484803043483460010010521797262430979459620436603222850856467482259400762726349807161775745730905196891298967286488429583569620186104223319226977572557860411056298157453465749442273071829104530984569427574378119662851136668268468495442121216012181089720394666483444228018186921884614113813634072969788602076611701980625664352317349366528504568108986214015196460860563764503093160657853587646408737760545076495620455975947837437361755724790839473277328139659238031891979633887356107626644848584190314152991247893188899421898572302909223815562694036614211155706912080711791572533233173235893374898565461628978594898267462688997797193913693814454135642252528794509873550166106869503467838267973087940631697165019030256428215718984399521349933896550266027658278150500400748230719554874256630923429087699104250162636954861090714896277239629299352902552080694089660074824410433588751996167807981466254862103337044326479696033161378382636619081539034539954336201462719641114998464133158468244624864655717711958798333782126921943094061606745102901868540499830894724267660484985134166441591440454714763749153486050832567443221327531934672801840909166563458092275612741740214917941888820738055595368987230701997967604187331986730292718945423716225966602021805975202165280574948313944787148918569518147567186547029556692000520301120550174835749950859303053451975449067859579194654325179158799037002453449685997077794660144908809234033415332544068511686309549625993696608128163773465343770352389716671259788495931286926826823096804093659401730994517541778262424213484857489124761391805581389159442490285920330417532274829260093153154227541538302074289079202997133165187587015662888292885102708153048644662273331309463936290420044982033296964820727107459177116580151356165347580664962872844472605801710948177133192307992793161268637649110372093205115786755935473265407137381001232260861650344392346376805310581593185045991606357284764824942628350620881792413038254986836352840829238772104292831947991701102290593094199734056270335136020987795227003380892751275121463882014984396151896299420921174770864164671954605230907731620811792759665030814008297272509304432595273035844954015190323202374132610246347458693167200650415792714715924646041348669600694632458120151707754679863850515985057238262403429310776243711411875831918452007465326259814779307398032482577487875804719479368068429690713094304730635551530383621595242319883874515914089346986901336853602112217294464496002465196356801275715474839705533421408484032832608721674773626935659140136975947270143207621516514974044159204476562882729523408253634646687454040650989903489522684662340406566891204738870205348983338904449549093306130702899274297056922208974891176095525968380018307360260556158015307312230076140387739917104217034618411689910126168498920068906295916276846326596726810057347650922552489157630945267180446630227196104377814288198635030490839480112613707630557232331968761360241406967723988243780675141130100100764837975869784612119227656058692065006739455347200699687664339635674191387509544385245504781240755188640076916566138488222975015105107868440586313500221734831899645316917234919834048575875395875691685131027433470186844882391922275658944047746169318813533614998494511880466832294202734803680149269321658946065952464664629574698031746008988436656588808894241931397712317571041872900039701847569962637656298508651479722300573522211147201919996940959195388127660801401155770623322378559182446940816680860228333865365682727000435353881659906676454118838750747537476094914056734225138005460481193623790623245002903065143409211315475862842745899903960451188011819111144004631449905525223714866287359242453035141978384040787181037777525459640371510642097216130384675108416273179604456848578305062435707240921533794036255369005920729568101012154452689308381024492407499711805872468566980399744974359349557608482873634247049510671693815039140235771170625790778889344552036544342931395318368310285322734745467934817907916872802996732132949771669795917986391744016961780872925006466125231335513196654862404993251396038787755192289775528182208934737318516174138807991023853189560776024979358596890980047764709867414246005964425136752129821379164002594825994066154112351248634045969739122139446209466678627818935975156603338698637212570179216598643523737731498850303093329597595046193142593166265174107033268508371959255930182327922390012333608944290779109742873668762956070724639837807121487850732953617919369239363550720114599535175537633635687931669113072620005143757469988020770187997775477763644247674921646387094053008444278093687273160961415036639841069623023481122192852404409320238800512121314317702481697429413273418203619539478836763426819262383815525600872818399027565422604317561116022137015518859679479081254010923156532238585379849351881438548938133050369387785932151883797398592499921277577133772738587583677414538141487684389349013081708913307911988883556943161819977163690164353869685998129345447972181921646916169633751064496375395871313766673460804427739311813427488678254406334966248659288243387722887689173102693338857574003894033887318600819480306534044866863245064761720609494942661159024727345074987839307712133951432580873691677035707967034338856323113504906675309892478824207165190760798922428032069178163856507824062873536359618495477204628824507582244075541963436258701985072767249764657849985456065781861091418506082333388532808010264241845545371384444610799854636447943649285138272843962318456781537882249451844996607882175179780792095514142124709180547462918369210274927769694021412654505299033624813895522699817641235224078434878679410966122244866759537664675478197743501417428939015418341546957736581192671981868040053274074844638200707750609271505216487987008059328758604573849392913057182119701511464148643825558474730093702879204820450542232577254973089744657241464384155274701461274362428230268577284592462197783918413042955677251647877879257443874181813839423081677586143799037346429754984902718928694182618047575288351257270307417462363286245842014680034647584417372683204562107629251370836379232989976103054180339938277591957302589333805852262879838036020690630190101863101707781777899164612416082675481307751280115587245952937172970025495693227181688128786030129699400842693140289772460496611313115333776526439702684311194705074380768334848687734150665292261044046970876167718979086464026292906895856394910859069845462175958551122909807535872719842238001712677405310708428163963071242319180521054212457354629385782615269087498194368359838877152383486780065461350422980159152141523833599188122036051089043618424518427823044043081968751385670655556317404284328522071425286503610220240248899428739510110616712305545551342587001884999569060646770764594065767792269557158318169497557036157930575958656034248354215480340577741926538313757033078059578784182007289971818921982583260560830247099070848749651494035613906060627961940537809954768581526184074676860822549783651509289292980258635328943448834296037305513479649849509540245443177322516147381428200768488643354691246843708531215255312797218944459196521659182513144736925579826472121090803395694372714811849581099461698792399687460421294417922313674926688734990855946851605552743523149309710553034296937334381414975905526210638724063587003738330575398077740735864740163416546241776751044588307047000701789768162298639344319429003120080386798143959539919908066756995000444918887247434392228039556026842841767127432434975756279088081719772354917825340511489113649397001277358453290440087199690354972639026708200644043151868795173296335402695731081297677659310273753966613617058627572571637103234107233540520825670368909983457434624538838585266630386025699130696690959500108688993216588489340342602342794529036835995010175384248539710130065253776655213476674957219236741020631098595812576128547590765998945377205158021770699200074638504635277656915857551572763978302022413482624146025553151540178810504598956590898631472977746824197748333091852176994828743888811242865583121102843416050699443379372885006120713472595095933614619043404645792189324990533399307673599899343331732245392298624258781260837688013097986761548028050279780672334573726179257166960160066740613213387520399981275267872522128091812985019253179413920650190650760725365485778666694170940026215633515533877086564633210347978085167408549096820129338134164340009976274834105174929036781355638358335043064261539102563550487941911980808001819319846555019671184683659509105368467720547193733643846749351807205934660357163782158282335391828796484248465126469666112965951507786292151626047819294440712147402034448142265622354198512692843915113676251228938514796132070402026840383127434194196008592507084301059120771667985851407987322282032608624307995971070552584911067296444410719963815872228544546817669431497142909468638756417887279438697908108222459394851153533466621587307930585342774255110763645096841020350196723431354999481553847615475518923614227844736375645370865859382966143097022529333316509868780914513885721826622447467796773466926302500334616359635972875176216014074264829941512695405857338628779289372684920986135487140162852073620344670617720320538585475484159753891504068709659375891422887550398445460995937362182730333225510356761911537426400812460195663778626074916059615256296872679665727163376361642337201953728272917094119564726173261736610295768674669966061141888273751078993465090082670339983634273616534129766896154433086233951408951253903014926980746508064706602887796760443703776759189743066844052352932270796516486110255419289313389883903410885974016627893314400037241064210861735988956207200738986796492140417852730387936163414131938610756504612232573257134324343905094389649496717238935223675920828683061254675835746820990509689002016334884466824398487799561417453174663848633892871394197720500183444941266124381889537015119654556401723086710648826826289363984595540295693001369967804922680284820818076751375062948079344385558774581926312241176173880540747539689637657754358488927292603826295994669096244287578668899479548765930480345938490814131456317447464003131826240641072976450236506389189025939439757662757688808152257488361981694073189252760780087199253163992407734194105650339476632161705410482351005911642638365675987250088172733771716622117067649760548679094701156313303297727347382240716359322131366092458028616937875472726289176475788906393769738306915359001317571525601911681149135610029050939584792556403829954657252151002268065787480158817135920360602497255651766182201174875912480574453778776326677314876791024942004751269108911056129396573040691029778573388443106486567627908550298446865573507159621178766447841433078244803227596910845951444717514704033357130494615024487399386515199302717861205739661366972441948227282835468165913916984909377077891979814727414635586538045328527035716599850223306691341617526559977763747622323708728330839113882389157337046744982445983212795000962548235937964282658102460594515188791689647262579031595577119760099322998470719072443024180254029946799446565264801512811420871873384412917594190333128089664493092398901717677364853866184230838085602216043419371719060527454051017213793537870697693924228893354504480035028024378524746226298270599078271279820451815139668455363955763526098300709150614180441541376701690558299634590407657729564703084753835623492158576509955943559262407848637374384864523423830239682987285182317366376877809599933918856338695639447113128224581599996033383919603531933106753407680572548317269734909645509712749700708915628538007203025482423105810808339675830286195127911484446256980336876432477414260657887835170487301803892402988589214444772338255805684087362057460403820787777666646878228568269967257102699283517718970423859911408032565265845896975298571139899905822851450206262772335291025915519641262857089572807905409886431286070476944069125797435367275284657608444355376592286720715569410526369266478396306228889783327738533369292847924640424292768295722314949356858590935663388549342081041017246382285475029913596208694794931503043670638289867543516864153634655360182789357906531207884819797177203246372440000347349601005920921257879385011357085519395158899051422910529811752047463559631052626366683316727867190810909837043095358098433079104415904384120562743081454984264454297330618998569292321481519930351585678068023840935211727760348592285591678098073322391249342479827963891546019486479941636161357977280212955935539656209635415951368700754743783945221999719645922415527951592719475889116203054762148566084916393255884045537637662516147853925152423263714576509753718387201897579502812451691088464615836028087760179878185408616731914692873222883358307100530280742133451544350340310263136427686947871542276151898909559861309258998461279290120474909080084650886606797992555673375957405417269088938067785432414627257915228488274639468596887063812744194233415759064920203903537198752122214163536940372846369585217470794865742802461776960035746138216575304496575937663984697970223470179921804368592448936387678262309136613346010384362782488232786342600258494722945188220563390523687047909162735271460903925363653371259813353610088717565451678336389401092935135724238936386393605083733616974995608325198148283606299315463004750484169344045473778528164460334768039831387305954846937436532707878926025995303308149277534988386000762576296653239771889483043936935631596008993121533078292782805433205997400793636569804517117961398065191907972210369378719604091447531736239612978091681195012859582524438124912423085241472118274585868395829806664395443627803943469651958553148383877762689842053917749616682352052234436368609402122056237948687323351364438925176379219590373368580865268535459137492337186271841911071772281451736502920679815887347406657105329660385391737644224615815860625866328586753185606010733099617926681061473981428210061352353632486246162959878061074024039616360184121422903833244112854206667075736706968702208596880657921050927008300941660146262484133329293053612803285182724799644418757065908045153802030296628663851104149544504291811356048450482436165158780380778205703102024333427036967444127276373835817066449957679299193001780536955535021872047384408564438093928818757977679728458176854140684088234485006758778055631727196791236664011058137538263429216236852321848894513759842872651792262788431867362098700189563585215091177128404319929072392860836069188193306020695041739710053223300501764626183104149573358748216849061144529398002289086321069960699413228033746739967808220401690207165599109085462592903264599678698522523839148635057448126146919283501152782555244034866631103297099211075656526387196769446741381915769785963327011812262731521185207732950737014464823680999994476371411218878712328938832685582095674319383578085415350669699934928258573081306051048166659681707375694589707814130454996966098367587641872592317325551634173825330929753811074503305935234373240334494524846638673411877180757668581237947444365316077672517911296014565984980369190489133370658606262929363460760620830194344873296924961140240323584513019031621428262503853873865430967288167848997631177563434174807624679762462446552184765587353807737006762801282319659462501656162921608688241329450874742091667789108737631564399242170041586810461973842275690249033311620758770580873189660672598124439695337909974781641113693479944963258684833867232191268471449153724541545673732973378036048531796852527987991154959450972880153163628301566000945803761649482107536089210066116038385253210498093845482902771000849567340165604367319592458697668526585876359223967248183423785419913389951690779205958745090165539731450297592182743259017792915133118600180785039165498217204898678917108418347675842176455181745093878556153256144008319441219595336704225057983634080140519726208396457464820528778631656159436302070465124492102925393356524397668144154954777697492270682315101205181630184370968055425079709651180168282707553356431839733875022790672295394733364850848118369237889400126982308831471530737468911382250794165513169828799116693394807934295259215919835684730005642545756393098472732023713665323458129920736684654520981616759033834288101653851508146870736194892696772477165165094250598112394500034872540056598024625359763816654728511050891199793022542840762940348709144554204142861437792564148985344852391424755990566986801887901745324698708407002808889450505346855953488406954687140174046969839801203887622895155108050406091003240892013400227331081623811318586256437950347411662821286249026609288176215656220463493041767151894551251169738807121615845200109157296036858283655778913125279168593866138510838289527817468500527351898988013871504924362501668762814299738366959765414344925804040614609005935260317930090234979645827979544076909556576396565614807196550127018527886003199409422945529949446143535509560335960147430766075239266935806315457266702060250859319362408494166228648602461996310655363751594202672032489897854884682058519021323119141709560528076773718316109502046724447366421831736359592327226357776919426601256547084384381556141881352536294424214878450289284534252517102442132862850096114419879571578323664053588516176906569757261340545423282357390163863558021990527731968761087036538166195380174496380451537697530470243473428690609885964459700512427295777599961703739651890961552858785919871057893364084916305318863058827528777226675450688393609699391320335018000364751223220247156916585003636367762365320166460269101751309605586888723358276785324753662201029532107645359552321225165715375273439376532222590641897768508646568570799920344441871531892068817924892993128182449757303930798896717392536127570281012611127862746099198137158040833376425002562777852645900989358345101657155334755116593571742096916973800936302089082489236291225817306070026047936588192776257570827813748708909502751965985728121237280537879703783943341779118150256503836594499526782722786834312536624302011560277598369125716526542637842817658149086509432946779194413051937158580379772892747688070797860571683809612633918657507640339042219703369425091002112880573995024762526745546561688791318157152124131293833255588630973940660688200342577711097496177422506641296082330523824516512072354919374675648021967440447837184632598431866516821514688435216983906174560963834752184988005271205556403008909642655366879970046906859055074051807772657657769097345923598046014109388950613064774556078935270919725607785556913924022825564109656873367888017757821393785036667880714494894157530212974386587523055061036134386993110442084478418746808457489818182108871061122244075034799104950575153762378704172759515785436071500831967423022421843427744530462548311113860095559669780456505550896507772105604051313906649903357464206596784495159699487958160641125494450524793619582596624398962586384141256470300945948441629529428719780508126758568703673408632749018055583947879673726384575077583973337609049388887782879913998880587484113200997050703447791958982194374577390132110538679758083422031891462670141124995289881976059778387813891516120492318647137482108657523817678920598319706637060338588906070651181735787580452176111400330887194314386782655374709351257462061750833194016452897631069307204988439560418921948379662962239545173323175209315567776618346162872179590898280247719532984611862640072315331474271576559452603256193581252927722696556811702100203116656956397352085363869531096419563873358728222600593147851515202025544417200190674211073612586215101661565250893237918815561870090161418803656093779047145225957321583654149050232981607806533887807445070056268822055940887235048413143068282765230593582577284705931121445862398760594502442451378971440722141858273565335248722238889024878583075532345055626834484822605856254012546842490236497659611922436540494807281772775364878009038694754451968781235116991896770317351556332887267184806257706701785002172429817040052848013774885229132226202542343245248931969550605103459672959450235676362555287138379056461418722274427898336524440819442450559777932204205128745055226448235458475596727980124112137662758194431544666246015625759467682306173605410438597880087280324760817148445901548183165450283934678024796570231160452449069789286152421712055330521648390487571495734415400264831846858893946035018554179003340408020239544815820563520100367460243174211379254727668576312565324645493171122300259721749222578396381382848163086568996260461753595521365450956546399229632307670416058881954639994589423078416170420070118438079170029020792161052624697162493160430457483681178813266984842416879382878548927821382643048267102411817729189244253982752729409098950029744240356338237526876893268234863985211345643143595756904968120667727001071803785794700118412115546903629318644084806444952667574362744904733839693390572307636330464094183890502464819009579092138062464366160297905015913761778471034317906128149450547849919577680830497418641655905958083285209150567497636209130739819293791319635306560165123928489749218794244107667069893654267126920333971646187325015455865065911507285758760504560017065776611161680358214726678288091158543052432405216888796567358444281437505536909914694160131589425078894346764060477153656223321314666546933823618573947962342488340934665385395436340432306587861379148365094897653739105094041404154275011847056250572828714260804308778471712738325882957770570530960478489517801315866270157047215459703844252422414807841335742789963129971507836925905479942071338483196556942049423838909617037327652630215472932535781198657544374528382576057074480445939512882902096049525459772186923638204093097467256738342196972215150836916668203601221555799789764570893830066495980505512727515730303078644884044954830520509179757695426047255099196416555752974930401466990398184801098207273835511174821194451550359990361918429250144812415882007697709209912270149968040856632961473098856442300766116041162639199587939270802865911526193995434548734863681597069483931128419328186947622600586636058882968659809642878508332728184714711077609132691155555584078078200238824765495951297203892948380571919722301558691003319951626797996421844772353653582375742635888368963647344423158046587573148439780836641202303541203017764825643745351161992128267495808727836186448929175998701066772423663243693649379756106583115090011570667995731825375924812424206459731851789466821056884101866277772073543256785946823690675005733430387981610212815381637182182114670959025656135555044101093755507826193453339640036564879594395731793461864213668728924499721413611867228529741795462231022116824573124648316644168269030183762872205359035624470715895335475185638971079387384947225314191678269392031893900272978213034714482002152793377329530086802770951381054507881049247636791807017640479916545105151058730853931640520153497257440474446669846428679720241779518599466363805631180510282765081469929085063366251453933114502005211448459876037153258752737102196634100730069564385041558924466416951315265722475654054494072902598502317982682460847158643568804340371546842107282484463284162137950740174916073405320354946173070185739878034093384824136499966007260459747129388449227852076508972329566853169835766893156327308404620591509533664934962312605467104878338824768619519871307825607281837446096164109297350076557923153935029984032351640914536064203893942730964711496116410501904775846066783774525763708476100292575802265201187189171125825499501327842851786387643400782430435507773923625697899657543196680130103619080303760810437511280235451062502748528169013976144846814273541690558928935770386015717160610989220104741129611485645914498088744001781440935810192209529032920785402123912633522490255805276620283613313559113824618412196714174185814688524334812363772992662873586035098440205214310174286688251727637775205963170021844449779453563845879965918326352610847497402117973295194112378331370084560709885656753765563158236321169767251739140592206713896685063940439695641865187500340214051237848604841859827506003400967476972897393560350275021016312123707404783918996643298757347397674732729918420852004928135483206858731864538038478742116953478864215617460655779304832037651607999802296069227250194133768998367114710074099023548424192894041769295144177061901080690263143842915523118908359153753937687411522225766705922883431475171437845167403252179306123776612466919125905063795890001391780863404939564834128676424820889652747664913597342887331935857561346851837703452112603270680877200544446362380407936869108381686208215075261548172134513165566836483476948008779515541576426734574196255703182809519210390472603206408158203046859822119709125323455018597054486811554707723128329633641995991854494210929328230367377139999812117584278321823890448319172858161937423313627085943741296212175572898910743062875192443076353077643646681458256806421654847467428026465885544793640800379885416661907896521222809156440334943761915216727480659040717061518043691149006104710183283517914142659758330357389281899383067560737850731917188559771073596250581766164552836611489965259705554432470333301959131343690432039812142760972514241644068468250927244514009780687607679763657099548687387049930380032026541270353530261003815685367835748396222663260300813127716848630948636536688543482803872696291078709570405271169245274906571385928033262660900723436303805346301825874799675275857581653347910819762220462959460979795949953048023983552372689350536592869104525274151394528094820508099261059895688122755681981441044232056744470505043736613504117052184459910371639861542078219673221272600743356048502605514462002981460026925760981365328723979555963852333915337497887271934809415512954044197999287917041801095998616227538831002915267316769454561035357385027337731248030427841478969186887801218268764280386257377151795553912989662395251843309914771040990630996004231369665375293357152637394546011336197325208189449311950353457606917223254698533139188400158571793017003569998564627026456324510404701808769264622690978168020747837211688063672988489929700960557293792900857374220524731930734880151966590013411343724649795329833941057374711269778371756372170495715667755907163131367309079134785060819884355963672185521397831216687636996473303889065218896468451542224549226435747222435497922784405842307257577186158246933859694185912965679601035400712036857394201500217897766278049579109502631767264523339596098393449556458043345362576365993279481498494460054982384607594497257767675261900012190580625212344941673567953222156836450373344546582389458881794489310220881671779822673052861750154993709512596286745306826596887923375070516318618920261409301031539293109161633272298143196012928492537390329259209977037531481903099704827993838697350016592633937188131973127787191217217619459233669842225963279365228555239470010577546306318225818229020408943041310446107639616969109365914628857234292477571707776131444890035741192788257914787784958781315862544090800556122288530313582346561802898398841471243558954522939804977615521589266979940027778403675189389646485653755897306314060753734588593318337306127980607739060178576100612494019717661805271644371219648825613700829011813323271185683505450470625095822517251023141945859125914248010558027111230685348367722516685446394943299162547198089856780004121698753494198328109996608597900002979843858691017027502406312680076462677806721802232053774691628405215433953577967323759828764592195255653474093343357202205938604745357496880443847177464634895153011384308931368617193388568185679764396361638355471163262696548047970480931979864720944787141238541450883685835416684161478630649669338558102017077734269604610042477534087426836521078213987811807053929172452362217967185024575222510529627856202749723022088521014706429107323042963576402964243284865858415915727071644471359249001215563422826257693828874175473080742293057817450657567684248304344924081955850858294042070570561129901243825008691496172443143760549549272212131013618243169800354036813606730378686966474216675086052611935312390859510662678175493482498760578071391623772282630911679053543797875822590129849752564330668140904524311068220918633007021165418641782089698954751715940520423728747567423925034144983923554421193359255094520619518734916558347577484101096975644773306491708988487441393262942916590518688204564659122946383206421206828811407122288181651784386930299160680401972794456008428813384223505032995047414988823212396357567366886336458518892746726731726627939777026716272816565973738360179463796522437867269866268956628694944493087155333294337111777137893262066383949047633503519809767834149060952757471715804301600724244985885604072303103641416772711833947393393950066086209489729909205304232358371935776160372437409604475785064986427082315734999197438712998186502937234570303222650932558332305971538118877573027616524441268744603490214069447980541604116102705015510771109461959904037746236148439612589978334716083434013307102519826685837884930877209020515798405386348127813658282417315738514362479661500639497089439025963393297769022713274038120340559743560555332869200462251942942971494285003257247277351359455772395144736878830027840407867855822358654834302209875058741966553871880384215011430685819432321184211945886706851600419005324675222882737937621854812093284857034277287001897681131829935168773456559071832545263534353176529240993069038647480282901728061354338910776563342709427939304005438577516218841542397159986413142748044710863660231905692446170079950318983139570457646438669357266041337896006803506001709761569138269239194166720994953680993029739489998151683939993797021338770669008084675842419881088735637011448728483802730636656959832112597458279975493436968233488963474665745096873693323819972712062771570074727816656759883760861437918443674279232524936334671543965628542663156559605621490185180830789025589104695273057995845441700474089642668780478184513501229633736815675409974327405985504303174577594679125157476074635773336422817105845353186729048801907688685602336088525286210017878212542676757493782536932288686797615138623725428223395193631399203245685661021299754286694321718113905115361271569512394108778319675579617725407985216178488867410959836784635323678237587155791816613638315525977555376110201575983165317183276301792312726848220231763047013248381817452726267074516778918432861800829168696574655788718902030477893006267400185622850555955369284707723841913255045077762429484674838018170573781305748223003747555338721915122886814883764284910232229128023730188486135597082526371707051301667330111468879102171913890223566048935913869860123171036787216443721394980110891537214928359665488493355545548605810696736101465149734255074843280688879927049061969523700806909636630607566242854487223536202826110410051460068687785645706564193260571937033063828834053760981006394714977335091281981707606574691372097507084648288126275502360219042867924614555080586490115302598643979001526207538238418005592167871982241886604985559470905476234086834772840355808495762487872665345047418889297188205032673736411661398641850215734698073004989598037947889521298596827785064955823000889640789542247319595415879886858827152332128840205141716965196416698398995724560850871261767279992989387479171299246793649897379774642966509679722293334680021580865190871917198657319809330915125027014685502658816342146470083803867351953943538932817621201190749993379761442313010103927826699731564665675718629616820508221709652833267392831743823749902230514269558590072861861448909763274934716094563703383344284585112363768177696866199715046642838801825324830530038634643303009750883730767876948194581845668442135034503413421950225860313905218225641233132642294015518340373788288813685939759452744581864267738752825186499666603505422431065726076873371398019426949183950899367327962122603271037437163952705655050635583145269874954941265166735295739053284850993910656493336535324355238006643374976221006949178981318129416157595406402540515058618306600530218283694476789567235277233037747882041334951090978819704136175375903224732663861313335362772577946225071048384944602596662866263540656407491452323516808356199210109350823384401227364036233689612161582227945341169212939940794539904956498772719593808172890161181527323757916119581609517134856301847347283814371815750801092515165701626432723004489310169604824666903528436824370170277324625809406728906469810998324436582659816575586257450357463583373669330699336637061188768135017721544983223659517733474081546889427856695521481481468173431038917581364455860913570464145285365254991564954095694976207260290240941879577939202704532915808699062713947976413093871500099691396575179853738748852347536014738931621128039286423933008009170365304834486377346939707638510898065639985838138764421114776100583170460105438308910759561877724018659079291733870358292138097965177958516003939200015197865918732238189655702690491950975783354261415366555526622213423165926181258114271230096871308213362240911026330233853002488086610088612634861387633790615271582986364985395704714519997964240618167631253052155018685406175793444458527392034742039634583872755058033021948596286877165045259288554754877505999975688857100805340671836184831688166090672408352516397744601285973890180757074789174438677510731370922810685085942904131632345618369994769449253890362453017236159755724642889396930862491367394763706022241018526772802202682504272222425169797329103791476431418122169702176861526783414018453007075272390063498229130978542337728837872667286812243581573046920532671219048705682883231007926509590849571799298029948020682755049562726255331910994987499946984694528047937037446220628341309778696423944491353393297465799873712024110595591119300311079595023175808710564652681638183045667505290498281534902633355348935101719022188205224508808903352619345547189651267378232798179320935359870290701202952066064831320491105197778209462486695068902534445784616762189009175657758619817441885838056716575940511455225402141240966759625079211789017476836091799745691788047708819580580362309455814406455785580751451776614431173472540985390577859027222858952782307658288916892437692790048156788546163559858144409107825159935046275749263410543310424399187787305485065317882252096462084015434028808607742694163162813790829171874881315200527541345159448462031329587672561385485322097662072770285512486083530890650913889790985737334231662339537302534253640358634822671542007251988772125577013117704643591628070486049908180536323140422554254225597328589153932512375537611644022679806054941909611695684434752469212212416243942775058814941138173747129524344404718474074487361646059177914391934893509713191602163213020011815863102263647357239578128382855432991545972084991216219361678893357230597048541681299764460188909577169978267954854061158563740602338259507289933737607237269171288100920063344608650508262804361009493217315950858252464494773924370900709243918289508484041735743406121785868949006220396832612160983162381444223867687839239623465959563593645267782411745953947490794593917694070484448221383903732239840209207274902642157001211261889166882080168833785505046723934302629260390647679952285207537572045785791798237109507502099960346174856186039831162191351567957123725344949116422528963949719408047624569374975135945563543251613749903206298363533566019042746846323520445326429681398511928151705037108059864004855711617386584393468240823996947373683474349340890251982416789715325014004057462396263619275310941597746353756101008821466901805728631132091986529258517545847572411989604916692883354212507115710472968974956948832574959436124383147979163750395332006371790238564859276237639264771013302976544432674743179321972442104288822276607579559510081025681080637795065785345195097511734542008743186553841272344490340028036913568208315878287943805233769719985444613127243716370446570122325465534281144216622994558637858321514839630473335820574097338460531121110813321776366375964062229405395977432062621206910534362044343716121593823539027460969480691156019723138352811348552209051083085052749052102383881021841368012881231985321569812619764795840509135591996447013003036472662938192650275566312860678667912818297347606684609314897492804035811530066788316680806632114249784027123436100808064428006416485708153044845133551370238936146764159554037289587332170842836560928535325038627640918060811497658384596452536112008099257445018854054638253348491718570372568649683851829228378743522442406915072315476178252570389532849129890956318105095145854194289568569047867906442524843845338616241506119269435858587895161085315582208566155239267702708323340433999896457812297938161581371445704868321457461899465104802898362966437708546717089089233708086397170099937776213061686386033638267329426557366924062584212657902569169121378424335863917982444181027660717574431707248540103461081994968607053090673572484425697782670999855564141467007566954842864493541168595344169694308382807525384267570640714865604891714724809361424269689883228251190082761635463220459422188121458451138824068811959105665897919669855355725926549151720417111669615952557985962872714034356604567887455564024333459464504356983609702739181987264065399718416863544757776518974923318066244910856713222791558927358570761440377257509425334874953862887604428088732921284516444104011380446845829693348999022539928924488117703376189896963988741016320715555727976014199809167841937997760925408988027647381191382566865040718803296982005295642833230211398374537391246924600454910168785995073097487825975549030152126049052856075121943002031353263150787954691569605258887124944878862323349064389502873653101694267321781590342939893325354097269978277599432196862898448123834718956059822185135385403234203791014351647526947569279189651658659084753288760459036090376434656959152871523885576099767831074613900023319214318465080842644283545564826206828379127457008810209714450650795974583753198843842055423546384957964544297964939517824731610617117620201317335378852553928878376545699422741359812402092627188066743019956277611308552245121602508579433839571073133835029938123333661987020533696958397689221516829554392406298921688418981994409692551438556497643837577843714640117665684326144234171273226697908956307893218223920620738336768214557678420172011908017578723073059835698898625832869908792578498524823356411463609925859600006661094240872242844331849036725561155877546999718768091808462686693989866148882970581848581322100094599126594127559060850074247325748031031896125937162971988095302369907636358988920875326421270146816824503053760999520880386976520242411821660399220873733929297547455861082282528442833281693359438652476189833959808221638504583661647415461076490796482670742194260689755856316759621681239559594093881806939750877173282270630992477274273610739251529059068890547648039110841141419136445304041472794058536796033732382055878360212245331506198528568225962309724625794198641704924126401366773001385815154877464323252658965223654316254385870620139684600829697870175330322079638965424029119138439192105724133799077490767429443631951157585437333123873868364348418432656090673015574804670198942072006653620508818066496639506043944916989201874785491383936186774532159770661281845780848986181258718678599537731607505607216599850553798377064944873002917734959266109279022534655085806748229685025446559930462831867682322143127976136960011687108863421796140111345025753199188765402740210151225613751563942919589262299740039489271968373145832817717516062808726007964428680994367077291766189540639439974240311512296878446938459816487581346692238151537397623520303289321516435433064494461332484044975317695836962585203359327902503427240656575160082645324451804801179486298282917008507205060132812940873445731070885250472122879401709556847247786924140773378333204989151792202138556731608106945306862259879132435299713691864102738023550464407540124548106882970893328232220228279651523497188552899302980630981853886636746356810287233569618810403506046792701866480002494372152893735028593613308624917995790782808521747225962508066068057920096285805980615061067399263559381165206382458513508818778633255985893853625100408399487368094969897422243252540694706158351649378267879524995282640269764363448009428300540184438494151042010080548451409589577938752179470380092568266876681073036880161991439016512398156928234105989335237535553091470539205493396034524524962731486163502716828697784024277502282468429639437260267366945949240049938932031805434670793479521498704864952033980891491481365121991806936456735333526343227857797512088893360421443655938032427731992413559080038318241798842593311446589623352809872870834475524925165119420502363520350223370176414462730575938493324543339937668248106324705455681597082947468521794546144076517277702800418627349757915847032743299520555338267072669262572193116012546437608780255281808300173735190190609820544846828523961546278430199832150755510414738844665772217061167890464392435714455580345612344585440150495509076630242002388773866496754566373640104480808516135897605013505708390003701301964730740200509715494875836497915441005437019314380990759004323009321343560738158239058653884042248093835566614125665336218583123285570278221821213399128759747846054671289352361475516519571562976154499751322672212001610009819604548189654935335068614456400595155367188591499257615670825305764160489903741519533270390066198964326383284314855686558166508262369983515896150690638139435899200229424520158695584522902354511512688547469284850132558555966061974107090656442465215125800815320774042370577961379680222941874535916929134818784104418611411627988795872641667030446275510173844721261322620118631782810392164019374851058398169284787825295395376189748922667842002717489433868641589830365388496914637494073232718919224548519408411173166483886326925807166773777243012468032474863128346282449067930155856591426055885682986739808822755810728915143332769380593046166094912530487470747142196270166494545002214195086302802341552090222435447312450160582828186275343362895193051269358625473448422419224938765448968844848457931874554068399445636538207747985521007113235462020090769167188041237167454385051255098687717133522714796979882026158758786100044307056994366813927377284204204981240412020736564278652608242116716505698060968375138813329026894992403995349099947128708790680177684169528154189879817391197114100214141200059847837609373919569355824364367622486235739454760007514647083848858585091003527095822431593225808823474338469263917012727694685257519197608037587305613905042066737632658758384037374428967354120824729933628894483901031538715561882739818112123009563562396585377200743912481971093666051006054960272436092411632676454396185034586043907415565978884574650125969660086170685739532172081438386304125396483319950471469807802473011892596247871956277094560186427767472878495760610340436762028324328017201679799054343087467543174003308251697377077957423269342089812164382782364107316332323049818277100769555711386369295328159166328174318308736414743596030096551835321404646209256375618021712737483351809018108983523811291022500203092761429691164190575395628456831702832669846281832857063493622949354234491904600723995760984612261027348841810600631216365792929012374929506897279327307341468249035822789735240384555488449542283291729711998179981218139532937674938168072378775858188877844976027289226680578962177202373371650773523340211604601060738051647261876748978019939963105729968751266488681235113446533984220855660113703647619940376153725310504920168559049913171608037767018550151616494630403397583147656950949691022648675195368032798729146484063571616259291581461882314600017268659024327291956298689475545472722228445564662866459605459623528570118945755150616377672141163636880025316839792413379313919928070664467456640223774801347056165179198229415831886625212503727135908136535620339782994527887701638563968501403702600049356884210050817657213856654159417137686032933877419447156430611843941716265205099299047224650538716182300848929485316499512771054038293767929592202293875340568514703651515807014540895708941453335329883111202893670206713595545935094954648550881546510310591673401635168455454151429309745104160921425364056899819175010311022139261076382833315031105225368886792104185657996846971231949136993670997810793340465908730004057225673114508585360404713346336908393885786815084149519537690990409875798014711838333162701614838723834092618426862565372006364561504608353010954094899566536425085879900598754604368083802333860580564048052029807352942352473808418432238588303666167495087537325001710897077366440296541565757273541211463405462338377514340839445949783566819910503670458475176595847800868443088883700049679442186381751909082920532386508157910266094830692379825847928447551237123525195675473466593855583997181501096535164262763956431521007388519377398845652046589943428262594249788701231599358528705515484235948594054442088239708720284225962177932586020647153352206145729301168771330402527088811587598225904622356082594149166393101283187061721751342420385110195976288533208175668493323747428642723975055341054496888739200179105164945978082151073189729209256224687914522887600053581898728751428504635862095123435065651966655590153940067771001343696300474510797578007638595960247626340587691576955453561499587463523095497384521204421586614905389453398241034812670925502925706570328579758916572986600614529750569873874280659146175751255272706517389434472092374194864107930944018795815282290535322626516574461124717933987639712445207558305914562282447990681851678928343230839083367389401824997783656425301850402402986736828417469254900893401980735679596364452250964538275757633007832603532405941055701581068733073505348282017919779717037148016236762050052682707910052791182603581072712732126094452618106196770976910926430369071495050017502474289163370222406791439716034628813967896149117078978255502116857119728905694497419727542678177931119689955002127321610614256570879470994926088183205843930380995306257644451765237173897703059863493661640766838568815226989826302001658103764206245373580700108291348509723970850092303793478602186550871984964807015905487368542261591707529407369063603700079244116722244153599700070013272046204256922203231765652290927592094385084620947045617147404656108488163456583178179801550244111310012760522793952470772029615536716179659235502437842883107254337678951732328679510574965808358975440183562002759918169990878871590017140636350625107857001355216750407507724587795155664044757888737427650715389454785489312009477901568271253609799001501898605017771447334911544505150488698510080694918471400710467036138177581219869145352932004361995358272620059995526725298162489314983402459448356216126539405449322611552608692125056940182050411354928823312308512809144739700472521493209895053708169098571665482971753304458726986029683319825069359198953010517009303683711661028598395716786392237736954444692942900527415012724514790005719153199215843972365174221501746561044418377091554501041850883893472814718279728718607549994917706072913315486426405111988637777248578777538855025472567273260725289668830421985529279764553700784519957417881258599069404569711008707824036060795085923012856848612770175313624867486423686633889141542618506802676016219771528900838284258642524358427211770931149744426725588032491970351372662996544490063129869464118397300070617967431377944005217606795256528876468822478749216909473932309040562120711578561074849929495286058130124030711535575699048709126349498189618474721106757047723779173927503315098268204875896206479404962418984700620897932505791899963054017127198696828674689635583408090927680101205386339437915784312461092278785458581704933499264977450463049138158180025517331467141406396890088785791016580067584590872350409210879214395062697011992746406847004661595688746349695280411845776146975273297954414636074121939600362265976832284631830887050495248439150724174899848707571857484098917493990102772569847707192143888295287265137886319033824760806973045565299113723316689945952295846029323322463385331452975313957969937094888980274682110416501664698114364924922953187021007206941658190633428903450910444317190810407478512685298023786482766974117852744016946229376254821653664526446754481499010042739570195436968302293330029135344726168015841141269294270287946779927385647580023926572214528231203394321033953598726811718172802656928552530929417869796237347136545832827919955647527978384147541649623108030391885617741722003754873905171987676968444325967767969341750984940057613133883479725495667290058213522613415155814979966420108607450626074625768901073172774760503250144917753601003187160473872391044392590901109387728357617668722211492411022206335584712541850256265146680091186059547687421002870100341090098715136637211160188645012864448199140358519490593207546024471911741240314743588472525740991436955048143926356152136189162724023461283518401003628564783635683129591870295190574545838309394142919229215536890220490451979688699961470746874550684688587489465747552984872871055331138663344101236172647878037563501045249903017085749541094300096996425204232920949619791928210828960894758935207669852135110434322062277363674973594880649486498359385321875123737429602444788407648208428360988961416960851470824216200023487757169829417936651507662122458032103259263020036283246862288585281527619503064451226663234935782968478885736349481388310041606638505443935203256099912322597729309776013585002010430136245973677576534354693082411611405953161617142708818434097032771401092543227173705838024199176023292499704115360335540980915108701863804873598339053352383200539403797307702025029272293495934296978482119711858536616138110785672629090849874724058666546565780548217800026162144830279544877161497659590352653222815593806812650089469518050711145063705157403876030503753807670940479508612927940807112356541557601493452967025279886562855368148512263099960166286504351417209486087080917237581954697108693369636459530473843339401865219153540082810172648245145252739668086708808718362763058018943028136265875232508981985977359044862315075881763642131477046156576019594726625491245863810567879704679285979473669825392942524113421719089930989585059141096126666672492885748739757309540019270542793641793003844606926404104271447878473472532598303860794330510447902400154196370425507640105737487395995812870134021716834681220815690774442743109094928371557748876851543602926972531947680941130847122300491610928212157986605711190357922958624120320845311538270362027460920390980490938262352448741209212615867466120598349600034006071006556248726481217025327621403670654898890959186061771720159224817821010851152499085416827087786031277860660256158232546509073380337639220574223944957176409172668455420094946952479872158018951668665637520430701630817106755016054230514368058302654635129100737199750478097446669306240958388802583308257009509702006191866376612160545076815687165426876856528032148842088134457956620199357785674581902209920349229483736790644002175602568805364648445679658393177765468536418757225575443577776295231809252813957816878734403330958356247481250681845263081426140725195856974639186752208700817691447681605055404842298353725349874892432441450217476811657204242560148272988285197790101787613736200431482115946308132748567592223083414623049866932819026279774877812017957685692428855469629034206926943514382295410268362330623943455827964736173388685275378956348297375333870741894486203170324670491896438966447831061891294766040045746306500273868695780122014758067534279901313259553478559655859218371630301423883694259925939996044946127616195122787723119296053794655937576270885054502543801776776839747179957578942272745857789127371480018243784510578966010598905522700998825163049755740604948216577331433718137010320901205472362929363453759238396582391243560781804408103518786966256846386324766529770101873587161564481322016787174933445138569432372861875672362676591611759952429779879668123259948464663523083612925259744428589115376246423681888455532231538089104936987711046990674384991656772322477060601229355707172160162679457022953643610831457481254088105535070323141325945868970601962601969588333768539715139162576513907795891315569355127388892876364659915479552971731467352911451357023369954123392397472510171285391496695112119094238778113487969373446655643458783752205797043050785749986394926773470687203975534602638494434810316563871063571780197465659568992125063602725091437362137342967264177226244905008427996322558111313666430300046367417543189565044845833254763180894519371614971720926726499276238775594161781635323378394298524750990943615521313454731175041179135489396813723919781078608706680974347194223464959459535993414445276721815556756182312175868683162595842190465687539814834464427302950406281501697241023595351054426302913093159518991529735303318914830375205680945872159573047126734755735045030593377996885379665749256685381856612202999915427646471080403321083439241632114283605341500342383202094895707762289528619045620903066960328013397995419860467854890887136978358584432407479372665100720777509056591754531024351317853005562910329215823595806290998577974043850268535553871321706141210696502233757175114638826263712643588599955616147774246785195572593850418877505052512025691135626740199200491229222655270429751376324363991816988524317122936858646415256869345992013170448054185487611982432762171146985959572439162161181191704360986874402410911399180689413062524105307459913376804822343180540751099656195665523920808245830804756558059332149197598227396978161501988444821241424270006818921727299159504784674287397227018735572443633533842580262368584422554383337208890623375310571513963142160854145320846538986948891430996104513793339488079569140276355618384866585249944406623054200015964801642594149711714598889985461892458240388250390360303335736150050539590945991793184236715437846591433025756215267879549219937962277954195376988839919094330161494687497171631385522893510526374873382463376047813326215315966500596599481267227473014894205998808326062302276793001138827718628256678126958505079885585039900751837889667067435754468557715220876879537241740578500282326786389852457133267800807725242248011993225701086592693040545948362446215235677312744484612841342800146446156812830722156759401733235537743114327573524888270696699531194261854035030609858838516382529605217142613338230384302925166919501648050555065392241819967941706914473575991866762731223082375193531029671385781530163782917742790968092713964760114882377420300424969206269186244369944697149282825031486929149309823667601698308802506568374214130150805586770406570934235932937711644404786213117533755611765791406767013958236629723369966575001139331883178787960249049035972653854429312117556193511480563736163975681515703592254187731991685826325428824106956728120327636563882509614672626867885661176878609555103668468275270767135246983876866304085573602564644499783151160811285919517826331037519539402483317051935656854960567225880229813059426709464478729894744917503141269438502183937647642973550455143929325852717378812810774553167820286844019987576233224422602131888465505275117236210040998422894553581226317091689168114302144278072469912947539601959771332002001921574092008510811828900065207972985360211775940915061925946864605168685960523059826710426985519326792003445460529804628887700541070613030365694155602989062580904427643135529402959063851134591685318329536651306614628618188481921637426625370103085671582586083924561391978521935946139354127969058465349107145425363885371964022779408344084886851962479265995763519391345223499497336434665976034055130097298546701522924405622244861629696174346544994951609061131229814419092249115692500608898438115529242637321189180825332443488896500299050248432794520631930510107124548407196506842445270107028165060738027475572350898109494438884268313599649203145540220959345877639576502946632493149163210660265238276026713551984277589385797891115685622476759151697274202551150818223083208909410977227108749153846832981931093583415870131382691216567384898691017161578490855522954282589795308025183806334895917332221433293704161969265313233754911611449265032680026786175095216424005427771957768074041732826197848835673441766937362435618361349697582940776411850168444116459104037898873404787582495337486800106682153053794455009271016904094200783750779505947403241803289492224528777451874736567218777006941733829572095028036323354033052017247124432501555845079298626053525406246935071571892709552009537799187452217998861421912315284542748291436242440035087430734561571594328832188716754104223683054398490681734871620186726172956295561936430465263963411930906536528448623878983759234347020960939158437385787677902779467132056686661803554396361451060396028374966804213255520178385213697167269883325168688365293526531257883375596969326430847061106899309012452748698905328982131202257388627233983074493644778113747306586995802247419363231383268110437148506320806194445130239210503863528617770537598968510928879069432225516404051625625548809298993087412495078554333894273623032984750097028795568452595979791552401431049010853320891760300896304128382657765079819895223342598997817440925668714359071847286551064380101697626529281335329353447344729234682380614832927742924771180591652172294131367997544407085810782685142710197463994491173250185497981390423275761922555532497613476346654012268407916844223460850692023195463427812477549876357598343448838795883976650136236954564627755183352631006241529570860061417170469971477247985915296728527839788888480060078173609614805671180618271623676451881262971117875440659010845344049450019781185331394251335062717765258900318876747796338643522849455151528767798555959323825687049089749506171141488214675400707494556709661815271828849468968258658098260268590280511334531116246653086532031097961436859713423843102983091853564812787334088160369411910785048856299524036266701153886913969264958960902258283938813660541801921251709226128169526828785639341996664111367192321288783218644111184376812293209288454743629243645408401823891490713588663614024392083937159864157885906754987918878158179475500397243579726694031268287786855799123458106403815385852290960670979482326948274109132665608704042781048647911551928342067976854367550098682183636675503146140502643957912463542297840810829322753943699729134802542418651047099492873288745541007090966455738249337759676497290749601569736316362203205417710820225307963577046837735608408205007456354227900632725351792754584557112642059842032239142910699300573619878585599801991954063140673467007391925147498931566992984611270670102335828703095654702334991793202069060884545868081614415389751913087964299778965182501737265023701872884561829106370473264139101715870887435760279282589675527891167066083695229162590516100393569374123430386015072980412948321380580962294498199003965591055245094554224011079451331515186477243015923096912530861387630292117794288107862124035068246175373999982487727748216776715178891592651121666870905073240853353587912111453332813733528905600838702125905439632686696378182387818005107759614917329628428441556712660040007401378129238077085385065655330022848555849090615488297251735466384991434663054043116370647030439259474036098179780206766291176526398578834543221563725736604110619187906023578045879152851032662683034639199486673456752285260475009928172620088545156715230520372942241652194700301774597101679950236852676533661572568888336277673784475557696764856310159567851303514128253511321760479355440354093913077083086893835141820667524069763812421601242670390186060321057446629790045823334653085807875044586667341418745369813912813786419919547592582659917095876967488948241924686440118577619977638236201656136560073215132573138285889194718514760883524428946743885867490917233971311964754200728310690061825441056942813328008092657396152475764407726651030948262224794993138784262548421018361231289285618440721822900581586198577990489450817116180464767248716565531488423023032102858136610297790983068222445592139849191492599215769239198588536379507103476678166991289291982057184504725564040456456594082979460907823951708726541578563179240999797959571184831092689031568892296541936146633941590808009071226787272599844599265886044289373205683299807780258924571249141877246771103496396670960743665601329315335981524664596387099668198965933402483017595928821185172335830348647840801955907165973543893200033779726739371224790835291300090378519941277410768584189581902794555701227620589928461597987984772015432093941926915701200225176069710975078898852138800267657122776918418853551984287377620538107700540984545489429303154356733323350900958527183349313944086518268337238841269559180031511614005128857499373435160325092726487483994861110298703650847955099701445382562111304793230996840421049844712042015970754707412382012216782209831928071250586529787226409382825680357051089076499075748943954691571141684427748658375145863296221210631565534516262229958162738785827256785586079859202592209348646124520548257202211880700863610548178840403496265590852372235193976318582668770368982132695375594792963198162453905085064128979492281278192998257898064376232067900649890770950152193311963924744298492239261570856916335494383461866953389967121869530682550995774511608793059244234771813410198585305483386703483510343352423660607034355383633962971082522522797633321234198118372502411843588443301484374330256955351167645305426688342026439304941482004487172620619745306428849540318781476197300507497014598655964144056066266783470411615412195874993393188615348899867326044209769368447009642128099404422579182617420401469770270898578282385605373821304706661900162173298153007338714884380373607556315210891165043667855864410475763973532537501927930771874245871395936838530591227868865453076557430758349281451558200990373089075572839997387381096895693302170296278760658824401995793162990909212673431290097708362116457592014778414073978591801609114267972799670632231238853169795049478118052996215091847951001304767742630712676404972666779776536083094056461154506611039715179450181187924218769213349766609269529564841418195063826919274584363001360135004389231793706717437860609842489453800054839089417687367663191269841003874105464791283339839024251393152832551508228952299098206741962876019592850052194438332247865006002365157021106009706876406758490088803628985950600215165357281228356054935231733212036942065097842123266298605814896563893568372968228651802616837311705337354110524079262916642254384212070618621517947290241610417566576479857886594045605928943640352455608862733841704008240105280027783430862154655989739534069011952399050076070476178876355750558076155338738639049770602034165925757184818760460144511403108788895744497681020214231952971215346028688191632614156836713553840518827545443767211010570327357410400606099082539575634153168392663245854827796404037456514967281456398122066844400822747370383118526323670136476527814168750255577602934870397492749922441034256553353198109054361360928406708628203116859058251097816181721942029693878944146376051689511171308248200899297251713719201969909867975145659161749005803047367205414010924670530664000480981952847439089948540483407424420547300155073554494896188605184592777847407330324828907074676565877419849919287862848061726406117421468747465887665088508281405039457604603663036642930787220552357566978241669663149635875262521268670496322131970729271084718883355722388421221175498951673102952526903028668425378615061612471278203056852573635968620808006986319715928180720379216279602785813229111401047383436089168328379545023781908273655794885310812923188322588151091068436951046625163307264766639634377448860720902925058258190099135408715249639343884264348740600594045618555667938518888093533260179990995723977491155561504334148253043321842615487808793697271029157178012326368401172026962721289663051983341819179869238669056527988270220195336026783880396174640850991988947923648460813053920783325786647461878565811078851260180038780382323276815892435062786167359328422326897833876880123235557645441134887677291234819122327107641664339514950313018740314930733166588539116615996264392605591840630372783978839938411020828637699062106751802767058371710846178730902182139037866514780221293048899141121992760041986647359197160384287108358820382961664785302024502240509549217689948315711047438417982336176162942580626164634228547167199665299139628623350201694312839788333939887323303583416592374589945749541532767680015386984774721141791343718062313598617394927506376111284021319204365199203489415340282122147055339929648657461112433782821261942909438417398485828447791486842273608073813576151507473883808264161527652879010160521357294932091652033820275181270834944274464425125360525902775669666794574324590116013534146417925688276797561267491936740467514171775417133619531653971754325837556036689306098614533073040192788308151331159390741963910348497479440157366340973969427101410007907378309300116530759071414092077399234151655243200330629754635165442062205293764492235011886140092203622026447874366328710522361565679379258752261103250939614899257013886997448125345463202872977005872733201227391474180873079294475717002986697284765400810379549551382368856819006180064066853723090563314064152552006237963880574092657601220180061367986338113716583949670776241108424999898544600734498429108079639131045077713799312735764590772243619322173715254067590084766633946542400383632099734668181931387514645598340145564556003293109824975707835539218113433246236450885848049152072464800425080640962916338741000695631339231837363739317773092528954597890218461072965886125496899263252694576959786616531503671899086132542780744791869633195949294071020619270959433351975037644027815379797346930445540493663691580416997514109394913605990915491963617440199815539860884836147803943022311790262903276719247940912730495628168493765477953187106097384437732901872758449542803167135897174648593704027058621822226858404126102853420037580279428000403580981000917588929060717539259192838898489900567386751333543963226227441188118352958303453537743298843243942508257251996488569573549347371094961613013137517200317529014423105322855903414967739600802884994953509144428166799465053177363873201565646666733156548363837742885507633616219219408790847490520939910162707750656527488648475997400128496995696408374665977356618081722984284474186445965667230541248814000712772432754006540056276358361879484028154764190175084723938891891270896921292619459468344133973360909337734668309412781020026276063753175040323815098504452128351337325690751907551861263349316443075653308102238354140167915843147734042010363231721373068966504626323347834586707549375084696105876833332281743620959462752034427559628907951684715950388321195460722120479378558887504772859882172677100176491305447825916836174390836138833252251120762543832095896647351756406660190187624355662266980741574536136886729993978696550769886931815775834529993654521784809764294959483047123291328792170819481696880032242015718036252560412518925589273809175660586242779346905373194452417471133411873151883003542515655387267112924360108041217304169459198372914809096895133593347500319935204130485896855268745517689054784486569987579381759287068644989492976409373214038728566980747570473607365801489808836965909302300009074183559160583613067700621411988018713744236579528648594092468406111529339565580836670154396847031908270759112510718969267614604039199012022155857706838934280816116386937114308578065401036878732132965071645406134238072216373206579534586114366917451188947375112295392271762724971629021428732253626688656473687747240846531848712284029948313483867233012727166066220406568584419666532835737023854242745835266389991903284536040253778487620390989444502781461611745322449800946646530363373232476496062257477633163038011910515936914973279016464202771663832706532810490351659352069305290159104174447126670751500979879874842634186600604293552412688641001580699732593084999285526603055864700326274006728544721973191654710962865015496488058902169359339112315786121199757644285259697934687049646670092959641665918627935839853140400996706752016729049302542002808705144946955898080973190328507557733555927592503977431769718644554416993875880017082386578524134026092564059744435067191556617085844031317714103989857186803986452898347873633510336600734909985342589649073408516606850044058867650014886895133663754024690703674273079427402931023289614448988028397819804202966900800353418644203725494690079626646078514526736759336981721558544919113783899510905479555516875809324233264639490286804320796174622593735724992588040125056500237005093284247141597639427579190786188401896797073790838375003970516001087253634406373572960982667083859311070284153026747736605296413752832941822611762452228777992680967803216626499138317041976319611101282304012548808683982481526866829212226664023651119246284067672047218135381906973905132139146329576753179596897606717593688707115363073184922290340602981905460642942813777257030296152702648297748841875228287632612481861360144375161704547919390392994590659881094128790559138394037806208922622749554829956356865052269336008526295138713736686492644044849704632854189111096285539444821332984986199281146155357598877055938459445709245569301180227164666013280528161690521391855132636144356425955141299294748395866292861602398329568924618427990699291526459999993991471260259383773280876201050232883811447545699791124048739945579534636377335581249202026386029437442929328066078989267004344079961450670977100661803431055780770144892287174974015615473510310412181469426209908249398211662105162518034524469933155389346911038229215043557990418471418503978874184781809388461453844804563620966754119348241509120478840780859197119796558136686569508866743482338022564692246397998381602782528765559586887076849387673706885143227107155995048006220073513609568188021236156083473252811539977134661096700673960953100972499728225418636571359828032303366626756379316214733966408925978216944451380841401739382054768432506093922556214571196486991643499082355101924617846013171003470682059056776990777109487102955675003325686851439032969717492557540706534424362083079860831247138884541881701290605065566824054848047911279378500625122314063436407844340169440236073748489074844241108588740206766618617455441909600476042339612416368143429221017906330178523787692217759567867348139609438283320027899382091593403938437566712089565140205737453384453042563072794093362793842643162458795509587415283846827411989478941169521349014832690079145495327811179990409142608401335737060160667619985218377249217395802991867238058984200964010838571666606693056226431259383106335635570207141558335989231345728800986175952120538136775902881304518732470654942972261746054098779373518686344694533585913943637188640062338359573461905773364927986515094315966224215299677898423318032046869864699598581821077931149248422425392821018299027008071725459336207736682499100253281276293739070119013056096806195693116241233321559270521309728323738041481513180026422954476911186791048340572540075035296535545269786649794649992246789884487474525492240991010325378562731847999740065704162479027849162174047664736405771711393074741489461494906741719350871772014942390677874677903686883784105024707101618594611200904194127800336529336213415677916934621562286902597440018020444330001137119831776886278312869501764810444383515834388161568878266226655530085898521308614574740744770501030267965962010581464565138004948816367557717813106444687719751992876605380755785452717654340595968329353716451436118434035634842676437002675759501526734042752714908749505790689244878871698674580612232913960478488471979898566393461806288059912806978340142417932222090796276568243397320215807796417879531093656878808353982023769905302648237265450473349380768456032846272531917360492754862572281227353817674459603787828909192247957490352374066923769139567878649593131778918909041970619236136159022761295409688584938894249888152170723379733837750946023842508094482431361138876043833299512578102996029030562375961594433112855770408108050396868918658484718379195583277831306647485520257067584659711256927316915055432067381280697895249378819166600341803562191208334164906412087095058088687601862314297459637270439719560324299236423261665861679333514845167961853946357453312881436894551768097247200059712039705647455337435229171512582481562186488359611987839050867180879181780913770507338608733540289500362847219694129077162718645505755879715166250422874159770910085008684892140257023888401060132784022456085771276111651433621998980741578293164158143501243087810981559872559971943622469775885659790219113480000947206227730713568738906512916550358407406535140575677436212894426443883370278873129517073389413109846521817273403616030890948677183931156968328827357970199240777712559849863684610806198466199134913372470131187709096955852989321102679526072116148445585469475281690897866188847016654143794380123567905177117484394653963241402231060074985110066431018045752545722243947489823751500068754841671581919217149713914541172904024626229794897245663421907376729671134880937587001575608262628312404779999070017695788731679197432817347180800576241223076170697062348024991765783605013252216061111521657998054253303308095020506292645974453443956618246588950025177530805227403673776403098572323630391609124658671465188097824596278712185196032521617648110099308528200919257187613419502849281990281698626520137117191134436990856430624124921953227427993086166903753659507878823586665721667893561888429653418402137338836969602073822118777868467695532291270667331326445815842924441920498634968914012517539979524825721912309850560604856174555983279201853647926670014059037172022532207036742818912351875838773366736806105337712136731404826939646477511694810001955893657908424186600656325443349511046418072654478118941023809057419506309340486576176113594281619449638753959768126500564151972551345136224243750478832289894914202028072412342635726033715017045823721410495853636178971164516570606945948140072208770644918912438743295921034034811909035414703646205387652690195304986774165595532312753743330479056529025652373407156618035289980864149932594247328447447550305444574293446569491179154478891417650568279450237984012588824159651898357093293632462578384022756537292053147068820484777433696496060243622580023753117223199873313904327905992805489325396151817860195182331220153366911917797862492352501183720083436281940694322998675376605889135927103967226040634817680553699339740769447839707155615162048056863348390480704053927071809673978955546237514266400995172259162137743295194526105097184040869528627324426737293349142813569913583220185884394161459639117457290947945777200824267308722573338403704348208433680372390923963071269297661580026049368072758036803741636866914973055773755159652357765155379019702006792408820651215532316797463983994787666245444740823093980625104368985887507124768136379609026000640919248360051925415309456042765671757734296125878248492243973427915464458669051252300296379684952952939577090560916174340348876509947147011069757660831036870381191931237077158622044996285139254981744619006900989803810978521502791522036026214715231302968972085229186001692474902679432622937447430736470257974291927477556354410233501470685096172396224860264434750569353775691957729698012696458118515165904512194853025274242485569113244623161009477369774468271438601661779406472376319535454165666027078007759713158371741677847157474134814494028791131050714042471191047334826943121101623271606655200276404469340702496568024263690220152104413822004918548458152124395200929727148590086440001340910183841017124844515335350306823034866826087049858163261833615559559109212134207164461098620376749133707195964463528372932299322577736154778465376252548899130082607558167387086175359374060632155587908317213566121634781709869018560412167023614254850626036669790366782403101341899876119392816306607757190391253432040508603006700052877170403343594239585613411928935380675514382349912715673466403506487232494563067202444695398045836812323105247996800937311205367223637357675231130943106450583095328693787636756156294852986565620010194627715979811603985766273744850805170709161680953572280892708552129575641673771300976640926456308743336606033740492705662072691051039592813368893987066052406836490115840261340385769515908167419649507472207583898564830041063824154153719989216438866088746821372196180432528853670200819527658173496027497914714375009167437438368594470986927848952430532520834427852446076871324363899581700202786870971103377369384313211043312858365297522534468108330806682546104543614543175888547911066302313797938379436245066109035974743791504186741707855125402631767827568247575388786579970857345432553705100739443770374650168328549953589825832751865376123148049796802811002659467386558489937887210724767638597359409794441720398490929862624968234006071213625665293127320428327712819004922928736336185899553567762808383337713023964567053198320076292930548531165867572324354009003927933702214564741938709455410695169251104307303188446782822166447443027395781639802735493602882196715203586890679526634815908444213578282529727841620175531024953809399829141329526264918900777705677416222994850661375988132828585777407914689916826375659209734730610262929074790572518192108621737416358539183912800893226703139966601722153544277371701628242258389945440014097989735224379060565208202711360044629955160949267716422589220461165573171965043442079767479410839689146264662739625282507466888326047089254389889654135669464939183243212176599879128109567099625530203951797020768490219459742317385683653277714399947406799628512423785633726377382319727250187374374678985902656735839247269498330891284427102093167450578831007727527734715954351577684063853224830523774880344034577691928470867615170229242602636514473392469966614691766300706493836747392756413906733177503244900317857543299446342328091516649657012826705438684164014763383052408430282852073654021056683975888206404248604996154210280334958440219989109667720060592564779765444057759832131300941215329742657659019528351321195682557565782327698869467696537793832489622372898987644527501026820146803588871552181623393890506531115764592455243770135361301937299493749483089417896483565035514196789447129788500502230011092414689123431819928876275485346301417985891790897500791402757552312184911426739688856545827062485311043761065117181820888784413687915898665283134989891409009345196412928267096033532496405928704791060732862881707780467300406527520909419703802054975600386165561498411847230551429841417591643087089428316185168180364241261240677441651037986052947050919254111397045583463870202999002297083264442273463994091312638056388205960426346701557999839809263029271563593837318728772964459170173166364081315062621222030372042572392939520261687080957339993024593441473820210444309846833175969127732874601722824219229365614324061334631320090678724917437588032995468550155819955248686606943463300612991108014812183451382533841396390454977323898613953340249464717132224750709805538417531534135324943981395245503773259934987605869611798222467639347162602265925695080258803285387212723500892935817881028858185461309637940241238445090133877231029114006564537656448514694936811334043697401951781633637871292277321972600323085669449971605292513143749478618039148133795299137913213797781526040748246730341398445922220108130137824478955122413891124429736373994655432224960598731754464421295374486188796089894587478120619763296285573357121108671767247609937809159262543874148863832269326029432681333500369227120521323599008565748513476030196234279561353963436868351428522965173394331656294689637348540207615155674980689805806060806382382705547389252277572662149971248426141115717473589416826705692707116983343805323630848981250833228891175930728175174248215974933942771466000733609791254301459017452000688640846533989618395937100391895641818580932025563404352057870559156563655977472014102421703284934091272960746739350799157622936610749744370537934481385073792877055445025762092467519305485334529518351607093708894819189112679541505870530152653146193279216414442460826083424437774291897211935129705371137751409312578327583630232054358740842089337158078860173646843561826524808763770383044347238373291563134581530335862077172218465697158480180630347146658896063679299683142066644860083003352979138242433436173802608578241940668389344937487394580987722159938278178343716166322422384930431759103013789854896450551358940009019589776680957895624308614776935417686079090174924559706398831170313764951293477205052074300097569008691132620670895609929224212291209896280679177205014364615874200673255503131923835242266082450098011524308840711658239790029777390932334443577248552146830358761658573535826871155773078877150089914627670762039810369444357445914254766639435478357737988155675250156952237667394688827696783300023382676191429615721270392015557715230914707971688386913057635714000736467465816473459420881545958275861198942817847240636561574641145531471811135159061326751814435310418070782875744922243382685505761243292511840835389459651283236682034385098522569441563587835223976613540323693533019336621448870857137968967647604037826982931061490134961376364308450294071127181315220400080135531713379076473128249141473434901269809051102471216157018970052134449326884102337236649719040971672140900403843435082555640843701531279896058162017642089497400446064488450746872007304863658563455858578929072573901132321888445200738502527798921281574200781536483466367935560892532926673274440990037631600276989895925773737129230868946410423333729356326871858520457946696331446813826561825556283789701841357089314727935783005221279963994455344702445097862767386941970860078512708423105047939212561975854769145306016272656159678884311333812507075196087036072018406618963610963809622602603564380219306654668475329278191309318288782930349046069772745414791829869528110971980408171520105147371659674227568825815342323754819184636923424028901725172203525542392593506847098165809255297254116666218675350527694787661499301688617979869914289578889402768434265680856307102003342101894625436830377794805030017202997270115040045109645585074659053314446075028115410108490969488058829203515231797449397993252144583279001114414188846406940720510781764192246495810740768933706751840913269523130341066970472009858784582692700014788409909827038210423462032744867541261548119485187132232723330969206642182152498679977944257843546361944158609481365466479961972729539691920600098232305315378931354718657881636511243800211296074950738706321664047959360383800870070377814043832544472471476255971314016224897484686637643379840689610908069940290371568670912333940509475672358992352121280895800229245052773149171241319164718105090270579806514400811057695647735192537971592407945489427097743769446251575349800929131779442846636608775546661048756405115944739810568718599178663245678626015379859207047933794675056435909952051995916671836749408541888710066620339772954198572339496745078923778421639659889931896760341458328313237184049553157567471884540331211555389196778973209538725653545755966664117592697179951265849912515298820157065274591495527215313688186607852759560157590443270264434499302298311125897185389757575024789353928312283243635602275682759216040456860588786037371317018561735121083980574202187148500267483859800483110780595965325673084859109800451696607314450482411005124470534679097794153093564056257021201868827197839553323724727653014847445759718276456464560577875504526851985021494142231688866772066135393385732300977301000727691195933352061104787501376044174913174655080903458805203707478824117133767476075175389261685918106884268818417958542649717088861797165882508246491058955006884618791935703096595677307122370708572975006752595372855138559350931546719826831344837555820971994399318657307572565433807343920019977816267207634779978483457337969228809088986350986461992779442980302978790756746599351480948362218585213120606785213388795796649330246847640645696107846776312815030188771729915119038697609334679149898778694170338621166681331636873318622707587597671737459231083939528616809261168824141948350873677595451414617892264602407515671771887749421982960316566678447076950330440683597007324683916902077599954481522758769150594122024739711625430653219517041809530354318554923701406613829677821589454007538790579792543531045616361745327112340219226958526148702840019938569507526436357213614994182282331788254816898990078181682287455407095170641394462379259085016857989273467138126089796863128832443606378842038985044268578870653290692811594867249072597256026739404663953710047529180932832185109449241862223044917929484035057889745719249663138621414597498124497888589175656887079659956205461813460070215922159051358457221793259287135798145998172131266707491403550300158655915985305482893172903093034957261983766081808754675005727229532691828361497871250237229692614698405803929802196569603818576057170334370243115050689657016738073954444371065234496566301311696956099202746320415043676685000303993139918479214360018268251455132158589398804814232174827296764502637694040096910695791024372616537224404416002524566694186638633045926649137426056711435437975651937488135895757242193130642617994079136105135025329346757774091643575338250809958332358337615141595719106757542755830225643835111107793319207157831768335102471445323916670700476362281509034312303402064007631781918104313936917896568060676388439899243388679800531476986960753520467604678968135276183839887064750113211865789194680353318537779510877837428079148671603379824254062271542833685611293115624055299621574272687501338658226501777703861770125010583394337438489499017931675490436231980257496504065573323649646930682975111823070837761193905263044778813685950621953218556420803048980565234748860591646160799879040982389382443461114211904323661627340283044205327667895962086159187295212628220843662188848698583843478852062037550295685326966747289591872414043074804671563745367792482539629013528062926200293164594678019503271851009687095389678266295690195162630141757578746480337256865424527768776536824401317592951560796457933179800537396820841087712495355995140305179058359326735548767392561341387779428939166502949899629238113576436406673933667348792433993819762229112175124955080334683705166340326160881737597694078824442992151738156343141228331183241851338944548930015692376873294326629508094708930315947435442828823415898272401577018578894923784034652026013788622439822931050673279581181801709028068584523729004050246714318126417424283981915427504786637837289028947519657527146420733445284967547448800276779675207017249639817489430123596420011523910922427050798614656827445544449113653292846020672756214544451135231952816375793833997178581644911551198958263077386733991472624392728318032015760952166997892470582910255509321591763396963501365783475462560386854812141054184025025910182791462406170589140282802076968849258070781253144595496528874851986289555081153262141749243986518733542397530224137266283223250834550162991869398002551123200312386555637064103112064686109121946484466032014765159324653856485729902327769372896385255029481921607409976616882441093605362250324572309120627621553000039786227113450935145140106967606064753082814831245593673850879800910461220616999689187242761580344585400274124017761569161008729413910104119619859995582273333306180480746660884469534102375957061765866953701962802561209156061707781938938683749762434974813557536036538051133713308832109369388573529161486491159713737057854193650318131971229438048303697659773733702812781761664811460526735764170628352005612403924260709370178921791124461592570221312908463276298402028089828774209512306640816707432224869414709605543541861986892439355500995425106276344565672733341838912283823137943403548298531752362560464850805271550289142156509675139473106664758421791443460366572868700320627545088110148724948733654274795524116426392644686463816180837513246652046397877109767439325162828956467970305636763014655936941132525085514283566501647019369096293713874841027829028119173582204790902093183520763715564600214453819231890573172740991832558270996697775363046486849469542892097573212147505087733022648478389839393456988847764731345800701050248991014630532441334363273656831043823284467572187111035802966516972761449851732034837330904622839687875922043885159963673880584372301130793880850908361538382210220520470060007127128988838798926696618597219177758631272311736330794129701317574013550012728034391416160960762729494972837696798502043049643147491279873314074100191554115054886231329072408464809768937083638175344110354873308561209849779481987009563664808712167745115941731972866453290972118071590292437162456013814487123928116541295384299754769743429183342106112114797806292831453160629630270580351081675334560624385549923287557527964258186373091182669628126679248088449388617588445356605176450962540481379354729459586969241664645116086553177926969453084046961838297160140783157205564035559258304737357743941683256366266651621705327940683689190448660181251142965364106607050958801558628033601161654778675037675138895142042029827287032995564924720856930909886666304739620645875273116587811621478201237222953270757402096512265849402404611736021524425831568542764523311390328852125238999003300494190830435548939074009590427928317623649399057972307144185306910820335284670474838009248812034183380619908796700775579793115282779718776964305281246262396392789534324617863798649571246356694140781137542992027020000083709244456825758026782048159996411835722736088040845042286082635647307437421150661971567982092701699595394263724688091508708289848193696174842445479704180826540535185625669171063794530453132201084419364486343449288007156153059143882796177767107800713743451991056563750354724072485188002441165643165683103394771117347297034234719627508264518058223318832541849906981118875737298192501492758160624738342839177740650757611510941922624273139144927405203772735038296280251627805828859465631347727815663689130023991695487556188866643982309714503129056410967577581832777037894989138583490451916938377349149408213723719803707035853633005222003240222023654502799825415249897428265904812490333314633854690484556640011828203428025988346101772417818073659465345961881001748743132719542780674753233438397254209119982207244172713912234739220698441950021466601209762251800017670587054027082407802143066174298824375166952232113279791471097826154357437139883471982869006173763967423865081146538301642322374264259305965137610544279611271927453038489778734650425593321811649700872717720012759585872802836387557839949940620215820390048141464158927751536532477787753288161922546918237720580856057022718541028384283415689605027230105166063438063441985739501452533761732915676902830319107192939619173060096252330342595672206455645680257114903336082116434199922791883648662906605947745853930224370070665237201717780949637497252673524657533600711412914267295803033707627713619765005319816745607807337653359342820362792669632283970712673126594286003171727175686060746452480960152710244052121759639238297061106368347752895471241955570895326341764143459401305596853305742741745470651188970232413237019092936489676803054395592623210242591876729068651372985585576629261023886819038741711238505169617135527928074011837223554165967985687382952997482565247928587489106474158046408374813302401313025850945742855534910825356143176691980797538996967506012516787016389665085577795883938946455092607032196668840612418977456073343286959711589466866863906691196174333271553121481721316789345459437999747305770238919083665792609917404621593836811867428836282713219032958504109457035881593509557680644532494123203278617851452105644171808036871723257120008126389557936561304450603580613005374461148324360254096645021832030051433342524587972646556437031116579997983413268812412607040533812396336932745137968034110260224101088232328951178944165556423407121254198866085656381548740711274189074244819786292921505731632371677096954428454632233990032698701288819982133036959298298894839174939740773027999733134513466183487750343880576480552316876822756966619509321775142793635980011014512052086345173494755667431910270542539122834767613450671433397529531080423361292060888110646715316296758378903184673921120087734277367826099006926888314210178777722123792533857723170633621636404312027928946772129142235178727958989554253187797460568803140624227883138720778385341027115189492732571350277659740864790853650390682927017362172695685562083138195558900001376601355041006360396554739762110778581905719633787736179630290840391327540170406203221626482913154752596004064035940313371215096331815685907709510484227843457686480593941928978245683990743865397150764535933039583951002579898725262051113786331586086226640220665372317450893359019478883873228304506348133572333644044179260544901786897996406336989886092644846667081998118507222056527310708860610951923692512442672810919813870540915743046825525492508420587301321340282792373678539519040424031658209821107621567238472856688927006731958060763361617059366523063113417476380559831455019432501551322416936667243918938075327231491866294616665310970343349917444541012695909954808111187079908129622356178142379029416738425522458278293644144785750791370549912042445429922630804478764615983284661048217851984519411995222803365700146304815798324172784718348805355886735772445821191763835529170081907642221771835065561277049577368095652520766601019370653002462468444759562492104507830791949229947069746772423784008461638187318577787750809811242790027416257390486113400832694488250865014150439907060178930116156105139600270172194610543907558154909883608092205122661631849182057861737517875886766447406684343880921375860572213445492308782891806036083370198704171892877665995767457924296022779704167874560867369904217502237042863069366573833019668294636861868366845957439756564762741025015673085418021992506845596265293012774156844876623824713980172289067791342047947605246698856705137691994042701142278770337046139220144494773302288189755232588227441998423770851804231075664333554927913859331032175829004450816612948736273203392619833050285966524956704161393845602441537068934878041274722643429280541469087886011026760045196225809401178378731861926514199984345740175667708842699997856267328277165734285544966625091158585878764030724271455425274085367780716849814817878819743134775064467703283279129409489606499717328807238408526901000028416274118830883252245084864545951239836923500406062446222732910439320288593354863020141454569103931782621792948000026033410869388797839525478717206675704161007640886613329296270012746993834400329232556145847795996872962360933361261789827589447577225991543422054182987798751308011871596665564329981207789032321039607106613877184719929578511483641917940094677170689301492185626424863850980512548719179143512959574320093161666927064067935726753151327234369348492449706525537702668537364881413463145718229228969127191599251338781252196807459725967772511988316840133282347886263726991856535285950509848804095360101080070566457804217338933732596668068756402904294654827578653114338171175968488082762147306676745190300036170071508101972984880332789348922601347743673120470049280163333563381637763354436991174026719917161410353867022612271578672401295570018377735021133428658171856642325948735930151171952315824773575919738771699636632857158408355965340959595258063659117892569516594535764014979337997267588690661299037612047902087813818975716714726815838338177450777218101949934101702295771686173512964851526060455781721144673300951851441516502792565984892867048426912584728347236103116683701790584841142456343642892482846823926189184302568951110390379693606093463486453968257931701160328691586760642733590178031358245209420062811587415773978293768242883849403785044197177254747061608180139024939836936436978776712967768587594623792358339778841455254028928168562985997198139320191787072703057461882318455522248549794904416710603972608804762902391694151455923403099818858093064224445123867023016338778350978197212262529677404540663285963003936067381312632659539901524953291677720064672785281798613079496561655302789176968320901351950878825813098961262151746338229354568594455824390351237127589834075602483948124522847775096582389338842157146820522384238463716205339084611452584726034715758061048161850047155798360804715507437407062848666336585390237501048211555464895698623575022702419112514951881882924745489707206688171173054794128870763956127474600586085585279935895164787228252779872476254908354277655446593497446267281870519812860883024771676322814611146871261191622365327222219342636111553473826362329915684753782652062925375624715066337174089238874587708250848137946248722073436264878227999796636256446914137838282798859408828484863357769209610840112435861142867343993245942240120147796050417803993274478597067705493316704902645893313255447040177592045989001023628754349093928074262787082428899727379533533664943602240993128355234326569859553859991432713776097449928580988531610102368230363116737491994691134243876366756801241034852989189492006903084464240058581185091539507638136321727568212646055527249515839520802431771946271930064339326140632748955273490370856141247738495243533950617921942910659115383540638914398547055226950091976833757487691632608305246993999418682959485987720761325669117793705761236903158559905909453568595685925398992633069238477563859321940067793600607234156322800250274901145613260375043166759729143977686569977890730274104465862546656122898616633333093329214386718809601014327726210599538755840638443720777640606028973837974843976463207833623223197116120637609297217020177186496965681209918294540410288143874516494492535525454262100496389128901403873518324831359450462307632035882835325263962453160025240266346243701906559067679656047552253291878942946516509928950945921103485812117409800072282162471283724599057677646211260445965189784432122013276187062265381220815266078681319285917473813600258956019123089780076134017813320874261957088968601595226798151277153511591882680610691219198843436893162075846782833359653611058607629947383730975424879794023974157569425638642899047003559576806906958728217692436370034203873910412939134497008592876597765018745603663281181706828357009464942508830110500371717044633637401302929335626320959311767320043215126593853059923884875469392023493296063080464743537398177245617617224386926207293162464165344091520692445874267981359367924323383796141178218054329608166267427357218754755757487746546778149611631747091908276180338126053462065621696968658293356855855256629153583542991741524762704551819897179509490171784015170790228306103087274238853544038664771469420629865703918094097984044582941968916273943990747930288293910152957272096326631046030269000004783296781569356178726546402452151151227381027471201782794103611610420674463648169651252051328944434505863194087699235428004128878425153130887680882589050274379995249204122313111798339421352907914600711314776367491927865623623021476439831939336271761892112859420580624264939792053640629479445843362298236515929607800763846857839644838499536701143541225347542427845391060257013261725685293768966620708357932161911023504264260453340494202719150724265376567914420612422322144699954666894573933865147986604117296401342105001558369964886951986953650129959438507398087166690316527727986776080971865768289134798751894093246124558802618987904002009322718520299520752420687313646490967422141735180048641778934231080666717172508099871932438597642904565753056617201256708358209991913978115191307002003874775541555631781903549260467921720292416426083376241694755517753748712268914715380477089074928054221324518298573638560361930897651851722010720532758091896163595624593416092162391643432776629240805797399275614868239481476456553637480671258703401670196447218070914359338633058034099032535099052760075355866204216440637252006691754466967983266643077713710921155596759149845357795158683707659660266771051356094695946706990198573633278248335788469005000639831764330055154371470272203161838835144123909862054954269195627136296836987361317231599096172437483418744319925541315488271302219363627293790623533528662869566930946637382814274342868969133586904031657299906896852732618477707774446445895895104386138754443172943115683929612608417632528107724175833050304833418043091376372451872899593052885790702932306402525364572817363146368799949966227913728976003794007521050202453766085100135919279314807483748056064593643254632592328325627787232908027813532188382292383262937512772954451003956531351719741056648744990098791402989260850881351050068221879182395838496274441762282992727402541179209255969433268900118502032114519283846395072731337272411718497146062320385215825089569201547517480502884316747931602906981830199497206599108261838935865939646071887178578031608497883467498567449277108693969087112076979233941215724606225170451304264450055128393885135901276347856848937554398838927392079500602783017571958325614283587567458866831200565737276846122362560858275392186858006451478037591202995959782679905987927400456974232761485839277966786590148960233890212648767044841069395933471519986804888841322650928491459318576527139174976502910227740717374712660054405852951549093460133579047080341960457904235018145489384670652314842758159133963893116134498435691580001717072600004527421794947514937237288509899242316168037054023085253659709910965103850369778869582073784485989085316657097586950974264039173814492895678691169397215983508155060288652743361017784190816015766298764219585422540624382231467208451199488129413840860393574278366324839645376184522236734770108128188498879258191521761908689657691675793180362184249872035542416306975823192200302605114279850529161113512700304575291301505001713813387397803530256742472239906521806699191132056231856493497601531434371242631282132517203160710063802358612529581082375281109099169726506415214630933896635551731442896323382458585726278326105314680399436530046990312351942025507971590803968867208037461718759412742711228816130740826786571914038468725971957264965705753963621835435051754258875178164066379547275840609337584633856286422938130399421940905695283205169374864889202976728684729409917561151152851773926298006243675308177272447675561571859583656259467314713274404329171380902951527772629753953382653703472946275790192870087269914814339151762025736723795617178327895006313299636565838424334780828212553135478780505633425820185550082610863293504776524758660720310387647775976842212677300317389575309206958914868035855632295265956047291481001647941284200574327476720959744949756904177703764764305296397297944698964579218896992656555781786519822447875139645512824575602371807033640292520019732186963345327622647161046227878964302725734469736486167790347915251625463732791545810389506942849445352253607357059587291095336324755345017122377686841874834275735033598921468957058697331371815299828006863944742583566976003668723203784614259140161983306902903138171652332063084333041664073258982663412683324330761724048019623589920864801625160498427827466544801512500548300353639984522477029678694053433083580814513159212550608687171908909992887864286484647961154299347127138525421184345324039177456063743006171085512547383790262161056733365814354203724848065343506613565625664981839505876396938702189787775817239886751234735639942154620199924512439952962237155082972893451800161188270604175159290625794460251960568879875129244680707090823321555601061923253926580650901444512934458084190120177663742076295386206920797585220733084183764338205983066448416157737515306280366729337308455344222793039719521611107424825372447369424258503868753038223867536290606871082970074227223626192136210384332238403058414925837810434718068459112547735089409908076572727624959402102552101451825731552550744924441948572134621800247756900459899382308622418915028376253120090194820812476195619844322155707998689947587009002306507494510515408978602372962490586720267957812557010684292040696215763944637208689833218750835107648433372071239772194936766383400452495885542103458963430190579102365008094701878498332255542405973988092860707377333892926719943394395217162696952491110535793987083348624825883348735646540345266112155731348870791952064801508961678278885621640021192086038768665501528560442790245001597140817230485932257233747863462401172382394821258905361662361503361172483242238826518426674536768482279699951627957215758499855357392066228401541063913309210587209575184490033737592482996296757085645929151116223779708709546194692335727621022350027191556161653907894385681796471735061442566196627761822829899889618842709601286556851273979824416040171638369511413912207323747652544212290377055794065169644922502938532843499314363735465013239486170640232371973697888973112260891151740800893499972480966829323912111633756427644740041684018563058185079832104813927955451929426345307621754953538636278219340685457474854628477022606358445202614825657103553320856018543696369671706635214128915649315232483932928442119165798771733972889149874596905899499075951841326470596411980514832548103757526315019225867236315847043734146763464539595769138132438372762860990770197261021359901773863763201007687611525313483316047441322425449897821097756360519666423996303034149848283218088656440921026476192737417634902034110362928345020682736245907885917212573157379091240644873301969499729116689678319566165307921011668592882543555974725199494193528856950068750710507033239097478860365832827997584856733349525840031574618979716297929654703814704515599801173813420480746285974978749472023498133000721924021319699314875732288169695474729251277904822789367127380132110044331780956886170315062933306347337442030599438506113381116487586921913560815314785550905004249839766512715843753109128015318433150045461857988941295257405889795372662539927086700477655459832285495296848913317177040344804403943416182859391657476708981778617439243256056675258805932567376776807213340686877427588647981448091824796714093373449971168839046309881109047107839125550233512349977204064358412631951277000645891445099834443240943017671071126326267636429751782483983684762803896082846264817802764845377788723981886531170808580142856067061193790325162254683749552325802353262071010381064225792888971083310699392045834792063161215350599530523692306136818194578041868058254559003566282091079042761939547322434623545600255814128377529602077435479433661949246504578157924533292691263383188332675176893728966191791062294574398308093547019352969642829254405555961594310388249378226413647147255131138392370403570615784715692127940137119321615617142576787412238591779484534588429281952133776013452985023167598036077768082645561666505214687858098696797420397946088404969130738465294231417601912043671001252396780548377209638674046774302685274099859566085219005897345608298112306909053215140168701988186612474319889050831382414607027977204336531751640671244585651567574304484098740560634546624125135855340233921542230083969298932555035566999453725798383886968868817707995003316805464141464396993329512155624374559974485387139411579889565694020849618595684478413707078036842082543296421177123629700251431320724673600102167059446425208432036764148239184400137463723776027928076824942157076024197945070546450228763602992186244299141510975987519001651445908313050539226993289229914680047613793411554621411497039241507588405803237487258946928991543807619652819741923939324126370037901280205596767368482814004418658739278717158736594595111320911047631760640284390769213646753209362277005370858415216331412210933232018405618514162016267327966995008084727353066508251568298124867575069853365087794058742512955718889373813697841004773556887799375406332907036886362306131539714913354409771430499902468501246746048012406666794401067686570706988121451617115976498072173186028043037061545055942339332269140555436339083061484628554261128300222578500148200462439662709575714922913612080041158539738488891064910568980445617447573744263283787986108173041700483486998964332922603827495393235464751239141764711437994474447701233123277297997719200775523901236422240781082984055100055550185833597470659478797997233176194737263583060636340824015340250842083395728488192727279570309623095196240309023354371864188565267930179423762897991050389253406812379427121297957267182096268710242232574733308264028942998393323332874313804026127336323257725142999780338259593974267668963227344157813890384623799606456069073241374458138417615892724144238894757476622707431193329867782274388347765267867174474837656489757252807890158978463014002680220252206216911307846238153714220030868065948317462653073135568291443000280286460694272324523908573332132276989015944497034151121352555513256736439406945083496689111717441231647948312953885578568459365811370038153978492636745206644419417513941452651855073732459085483064777325400431699954788933084096278254794985854951418662298146444079271738629746976551476352789552676028205399231268121476933466278069079644333071271826627258360492179451138273539399002388392444209831331740874222603949117281536420715424134231570175883379400157571377357744193824483393668656200942342917146330060744021198778668104729499527098199656340488665703260045372044555467189255205340958026010672836305080820322351905944427144734999793811676197630689491365187719808501161443873819820132667139544540051038100044179885024903975351469629980614080258872968916624843111156649639198066525083467097979218647042144370846591428607320911936212480134547605347559594671346049153605355367354154183407487930148719543327962854391934355220644981383278216284295074359740584157730530413471770673710739706174826144764110937612959344610688936303750225157470531833471584851191032909911322499447659316869914773151550809513233813093288091273741384001337264675754677601742386395283276842832947290255126778391787113689765957765944118211673309619581089585573044272818979290586819713028873964338513060261366729283797787733455916832288258020655417387795503823207043780411950033113574751975230069072369226988418165823331704451405106459664581174434479613566787965639145799217544427065248736172703738111019602022314253771145874086532511964614356258226852018101617058117151919155227496834705494563740911407612513399845401741864393977791336092190172797344132154392663173575725071705633098966072792072484185102456031482325129706889492077927673844772830340536500976137900980950955453689736187588001053510500790592187844555477701265771575197481027883349969761987752125049763681155215933570182014920170783857982635301255816286534685605724768639381051702573099980933342324525639231099450791308628336981864470290172056906289206085582098375318041211780728633131038705034399159208230475160609940519791261946403972020083099952865294821370029814824406863579157309470914637708673629857520660374627778612197782977020940026343655258901772284710581123451350744374199070652293276417254098333779046523129888464082269758942429942527541333992592527920584578499954455957719912246338921610408575508120744454800728456552953115426711430253255963205655800760148617175285826139418413481741101967948581812894797838053116384620843917489083388804756496684101623386723238943742853977076596335418222561503959560788653991712958842232931313387368277024635613825419368923939679384867759845673806861358284641036982957342771829403449780446341426330421801600393980383823648675983787438947579888937311557149854759012753997997902363666252516223558082390450488578645593753214728744861253397572379081653181870093554382070204492454341038157810406951705575711487618149114605727417542771821289402992703648694993789697425494483743405803820366412731784874267454792142193862949202331348993766428755672930298374394620616928580939810176196523534711642537872653273257799937154432486170979084701396302085283586365966018492630186011980152081076586234217943101784260873766694380031367656336601053132344736122980194237566057229041624722577389499636460217165800848019412376105028897303778426765984577533806322759409411407149281042383547042053789829710974282624107458306080041576343864141151295378639288651846439432484913097591847004500065660670306881469025067196240817737943891841597077651024263514206337471651687437897604362705835626172073924146111990064063410004387679479154130843905701312638543775822043339772874539969878123292955393003117270635184721178373772982498848438446091640876339528265074608195954785293303957573728817134911002741859488021299788036648482817784768758749412440253583083124793516392043167555944758566094875694966314994744283580284357595821541944203626477571484105800766870387145873193505085917097354654028536368089795175031899825236909035212133048543534203947358017380504007808383453817649102841396642955816801933172769140680675408804414658299370797039865932830906744027141520411970348132905685016133806826151239036149163286281064069747971643483550666586745332893702044017267603396318726200694844910773492003297713879470452663577548933278146675610411432588481108442065598655014181946230994015837067331166251318279004338195859948664730935890140644623346511791177235989516583466626883115333318702905481053102579988263574840530658389763257793323268748120505042271651591001157472964364319053231206070248862536645803111375400794771770175145651213449861258038415472219194168516427851255070863329464080564567038267865138185687098436093508524047435040971379639361901108442225250758189322362164157539911957224820484017746833016122786925869646867649004416060158473504995545733738522423510683494430067620766259384745054932090939052852618901543586197524725879099173578504220446871120568885817309890820116684387965606221696186971482198792106844505368557338371783356419913734179169193828730241887029225103701575595715085991146477185424729339951410332104106913035515130085468633620431918648843301752533383962950166186984161429877282879297726219990052314543963055576656569992506858918977413250118490450316110515275167274288474869944841337140481809308653047149616023605319087385616790889802390751706737986918006619338009453071665381782608338354104091383990799502001832342534156588969212839594334446780488044728845677812146056437857019241892408356336848715785810531149314467963824396589948938399919683469116694625163079907515584343118813917786056547798251543630341575159449668367238879338324093015883108382315658481527043046293433525570175941244149388235131181648764430656035729160101719290814577483077822882679310491048396706089717970046259852990634781419001026437128793234084046274333671969077641750739693489873686817177548717141248149094194102406682237262945926002779012668756197256723247258752960701343911590688810275922031162435376010114104925591555105465216540788185942291603573469976686121157845846274807006108961789659569023155155073203966065321484259268012893859396864905093647600749870308715909592067981128997922961963973578811388513734435649355908244296828311517671863113561070986721477197589512497765328023222263177743717815614580392464673443161053455349165666816405988071962629479268618162252741981228784157965528502056806609070278468539422050053874117878831238056951721135810521927971947293591835047814029324729433021082194247535548481018868449772210531889817012617786017383282864575296808357001404064393273898364249492747776877277774064471001939555572284858321820102416692868504493911499652102222065068134651589343302955319649199070461247309784677535638299080271237956052067929128653143193410666241735122476232307840590610450112346525469507152263617508690353956873136161445339224507065411414225599517987642216432008549710693273061687516023355937738002522634397735917203540791366871148348292893551119571991096645405088204773264978402360175553281438357379164552701042152029055206622810442284663256556905349057859191659640376513463319902142049958393886043684053088568803789415342719161443853859494730253643621385941900447621858948068346633793559936520934677130110011320808484209806252771858272966643920204248056439123280660729365682563327968959271087750807593091963311374453134448958200257928948590358215106273633955181831563059833511874253806387170180243619416278623289677869834501194045801734362300356976934576521836027932749274467172156840079756109376752725817627684387874418436339228036577473708149941335690389747431936032818225615033732937569257162283269322907519110640518820168857149500314942063852445893916034616166666850469920873982835737458222440167472794532429630127882285727595110767013146759894321086658554395111969574974974974317673774044549141162339959108490995209332441182889986245978446344729192074180293775204506908581354088936023532324293650572951519082637158288224695126111187981153658653376778270548064135233163414875151243379196953135408121905247348430016834910544770011626692580969747398351409885721473355768544504381233865477005768741945509685294412435199987053173954292256777355268482723084754995450534386542332248579816131059132126519093077374394118561847506378286388851647483705945927862783809705024544602634323993393890908795794959065597561220027131273777171099420590817172670363583797861234958661364273481834133909656190193956199852088559482133326991588090202760488549963831203281569689167679563625935536086889454345457054115377541404701622038257158304498739570515652025587362986639242679801321445830035632863293595144581753885577435296593763191300166110014543244918561738679501985694957337873389319266613558247140808895035682788080785812021286069879469124338247103642880247336660217605948753397888283046889741598473671285821597621279488841439378631292755859568365424824590675112677068972684562602769252277723314646565518241302440394742051635015103208063204859481851959312280015612644262208688173850958057381150152763825042254855747601426464682560566003996195228168259607451911294234110306670016462344555390873967648045348043456232422868584418134429287123053332132989256458415914740569519598699992174529348333008748800684150466591770742853516550916301656736215252453936078208676092974631898966374347222486179349638328750450174181624627540861828938175577077293424964310001696872294835797844776996367115050464632978933301678378311851098789256922068803422895938394013356272952401117325620970390191851224546737325835963480587977456225927202638594228626766180229964069279400345219866939507388480449239438895296351292697437535554793304283796489976755649231381027046334931759643184372792328041757695372674180586058549329839613833507956893545561061533048050620597560114955219657591065229735204242885969053981288101932894864746207731093295997140157208013457347569612590680349074906291656544782052608314569470109631082734425328178667972113319183895137416840436156147738964291316758640308068307508638440768284392450669506499961362782074581223943822555076270709279270431374741550406238207577410257247311936003324755739849532285311336242998913985688734491904105759650013158216561500673848472286817002410130272955594031931025846520655897651758897218571262811068797020670331802889612082323545295136194382258040220425331145942532391005075597892351004831934505328299494523997932506453553922683473683850015048099853858692516063648021286216209496834731563735372097752513351054156714468335310306183348745717814848103399662522798326723318095434494394273657427721973450771320506070437487445051826780072164055893757587419658518660228005602417713729770484163263081406029165539743467116139287448981086058234453167326551398348272625718954120293415680436108715393018705647670344400245766196323921005788352352597150803808277531757997010549472335038066149250899533295519052565132922879917982954806994396272733517568439971509114824455198930813779788996131147765517310126714348420559777884115422039983906331515196946102908733037742822207288111912627814596021576932983499770517435399633497117616945704565192793135130803490098676446004812721453382714148410505341215448390627045368355379278940055750785675206470670358839363721763535281071218065095700789205738613281523021662738425406072715590631896716806807156490548658463376928167525108629883902221287464044201037732849970822412087139390084451443676503831990390791563661151577982154481430839395531318928867536423207673816910291566111325023949410147625949474650550302093104293859371900679298273002261298266273746100911082913150669704492193482456552262971961402398025073650074804602081452624993044896562758562218592817484893211928970799398785317714895678088595010023750052755255392845370964832414929760019199875261857940075690606771841543015479576403360504828986003506123669503687520970380258023376315610951144802012058235305605011805236797746297671188713409899058162569122882434414096250151363424584736247819238886370302598273331495603799192667854257716657413429682477029052761423490758848231586654986991123137486400352733675139880214089754262558887162714788560504578476002629219638595095865069178237857646698432670659833239054178404575619069333291897103960411828436185488357572384372045186800621223838217608806623979147184818917923993911150418290832105539970761347587949203244922822281349974448105163752145409351403339003831576952537539097288296893020505218032292077621744588912119066737758667868545390607916311277031696274265169765279563676829967007342758358569671582342329397064615978639207719112397943198933800281399038044226144723901696734664956196693482143288511677674052547129276657635611704724696553560325413457244831667340868841211023974671948801984305206327620200062736818864341107129430804327209770032778921025395308411022822347413498926583448968137027568994910064719456153008502142169411895274422012624738805077777503018498058185551456678074048150422872762149955914380498311106749891601107006680410329105669563190285781173442455165458298513282879266662010900834237740966204183550300413399122574570310859671916380944245574542602871181830734314450849406049858562866738947885300510714184078216370231685505239240956077267456808188210533622945757155814626090306572225389129944111446974673494759694533613846458223096558540251080188609590254006588414152476043440015013513791406472081144330894020715540231834174900915066959555990891891469530786166727103590757508770494201736067005433076735544326826356521613957344692012554109490565957034345541218491746524270756913701407005938873697701029865168256605609578400933099646328602820871753279878364510263298603732620570928738520276665596159168494908608934790957668003488892103237070207270492834233878193378793946899418555236751738132874965057077816453054778906550586128323846989453372435272251522344365466628773060030624240651311508340439735127690850889806576888584517670822225094853418597529635964580028604950258808033504072864026783723543354167460966531921235428785274817671957777268998754037051392763183946422296565002772097636430233676567326868319528714016041828245962889017374676459567120916289228378102264019852329854757145928104624180354823325758496946361875386279702476447852258292782873460245617866009280126008816105793085179924717928680721012863942599563631196148940236645827023985776614289534958221797514836152993621985876065388456136045492666126353306390971449738092058147366053236928355593668114655075462831670804728044353837574810049821450932604159101193919517070469451318508501635548108802586741763006264603189826400857827270233163245536622173172968325267078998212513204459524418932977644312374052598059876999547742253531890235888201360901318214685170251658345790396517905423848040723074589759569509259111653453147789892863554403640853073622580468611518415120732661304080210365725954290598342290336283501641169066217313997473770270179570665208666110227471169518073191580001185760812283974497301430809495625691760705293590190724676642586996002880974729346294246723917462914419578142061855298635147858821534239988729105745105763653973567390507344510987358414839525237250259557948932527687480555162931617777290657568093735345659705667781768619286534151085598135657011868564428592061949949842901177254818496865424863071612360957832461928138085315163288340213986930778650148959249661842626319085781035960129133181794480723448324642800580770830153094907334106089698047417373004256159899082580274074553871889673102812092046707539430174693952901589034546463539672344179050891105726341311549916531871850379573835321047089803052316338541278695023567460697890655095939734837294213216650918979154409995943065598061272286035653077859177605513549150076040961923973359124005429106380724291039855604744677997159705915053766426615132141158382476992734708672531426290327380618422245237622292440814955356140434431469674093521891809721704769336021417875944563195556964497078128328301958195312155746929835448980435234945527093044202579938897550630412520577809955701165420092243255466486796388028112749502675688555762143328605062270148519366050690792691230972429630659278282479707650446160288422382602941121631194919390091238975911039261050502396013468801395945793649653520365543185825226075560643034893781622042445755459484167875021714088311660518492413473773852422483779877392873739823289840041819574317869103579753985614980528869339954445469066348142241555939281103609456397605622058954265394075305971778193248721450347819773874543759512895520620178812639722332842408923747041886205791809901259734266723347731169357370442966344947597055301969642251652037216282877487424690875241688265430530854360132453118532050297493767410061822856859617527028985605759041571567802363239949265919746989364782182882601804894440318649987814975035058462901436553455459668890408110413543133332384771670345096370414915115397324120764973187931946036717499978146124024369312647917968140057408712796942829590128287773423730093650621362486043714887873410332580601521671329592169485213784569921547939222222226053227602596619053300362353840554883799693770744037112938869820676826029300395112699529992480119032257015634974777981231223780103167447867271907322817188202559617535373890556538968678432688743943288623483540087632341272178132574076269878963594040540906091845008892951987183526075451345794162940299246112846580346250280505028803526849875952199427080387920270475515418913931605802126924322952926145995105218066674257167931157731161004256037805426594613984089182664183482107228592992231270341339974500533993646421408851971783519788873821500678459449678653764423528058873675801918774457734005033220069261840990218637628168662274271707271004548247637558438002032871736723039038925994101944143633735608607872318382576914354359969896353059721118365697026149614831009367643929488746594485860056697279176360503648822878170697332981549865763848884317666152845764369309701177638556784399086304124358081278467083250502437523960123610841776868345153692110024434052666293975487499649895975963736041901338627471385861118628240543608381000506022468227880374727658455626140775773970321343633343122652667637869200451315400304557513557994860428383581772707990583290343228132763770388265464172120655896268501132283524312321841064904528864856010775714636926042682773122976256494218515988239044113165882580555869852770573857753709339590882410563065933537257833963317104449178413832510532736346988904223363733989255541711646979481936592388936534933990142137027270016778008057774544937859367330145269782523120690565233056366452643997990516032412066903529973155839120444927329995924814696625867656473775644661959587515319856648704584590759496809055308226631989920406138743297352805220902724873047064237140193741084482244235370169912080106563976592392358871059033818585952965252418397912366330151567280982966435374699642754826819958146215898933664705684508953076230357271791362438931749236257208338894339943920581166380687529170743531232955795927506118483847294574844069598333407710681247885711437485093363900569677782001729483794365485676119371116731341495780722271955711379870633698366591211794635129331794362884782521050833990195333602354490139921060624770205552803871963932450828581895770908874036525367251523565654846032961657502710959615922603712834450756358068713218541258862793554616344315774722215049136786148168903290928549033349618115477946725801395985463114932928875110374828153450976842341576987754970463057507809386748908293308124606150746984268167628380005547833158370058212916034366903263285320349283007932062309640567169657090808508677162329935439895963071011891388904024328481993486071142004434769363222763426366011708357294472446283021290301742304297911220336519648717222895577903449748517358006745889613466376612611693236072212743932993822286668904761339064156826311888945940389290165053017327944053808652839395292620099396522172938145024754066407193709473514903141263375134318985357214804328926124282245112807611364545430860318259883339468327295456944102670067112993320822233071801806265770897304015598779821135956663572356425489148133002675349690789768587280221058381454642824611291983277039668219887595682930705258125465371472265357925537608004275634990955740441075410452603195126045264174018825908372215133094502945820567317079800845604033075907028471686839892022751216872174337713662479364331829226116039065859020663232127766117005095810238105755041460465106098546936000922761916409820732795043716364757936148435910082288068068369762193943665605426803124584397769147060269764777560428321924291278831356768977738124573261230353655666437399442797379587850477009117717007447832865712099293798476051271246867600709077619942900041762692365728042534468289020997620149339305004435928942391144818605621940807644533227497123832139499911530845663004616154347235208438660066978894975148746789376908016536122749956144313985426456520152548978615910435950562578771490459310715744351158654956416175567254093597956376093187903449139743097932419231887644917952966515852449679477142418930969533697381908085530672435478337810386591338263671434172798920382531738495204588427657811602945800456593319080725978500092692402668523886787070122948599026527939721857000345499216726954157074153181981672313482552441812907036205080363137693750144167582749087917685017946184659372008201318246527889289108606549062800204960172467007823808803614344040236305003807793601043004555319630841393947807513371771116228536089631576626451915769382877617992548934659749706666320764843710103932402682757223402405915143439062910763452938417770117554301878342852960344466136774417641111236488014442668131606893642442627376732203342124159036464972529548191141196201878399705040910106994137562522661096635865485624857691539460133100580365080724004908240944132702022357270785147713974402832491653929604338804777047555914016447371583791341867246686139957812863186065659777083878738189894442604525141088597988637349010051064733082053871632080257864262018809384074598468925016748040632877815541514749401527554649233198745634876860451925919979466705063826097216398936812952165585967889328765652798860178314074379109991934813850620944790817417407469586729963773735550316882948276077498671934202886991260511495006042706255170419135587460357888698082192459663935916976871711524437429321899619591268140836313162899168221359341415142166226289433063715257080941515646583825624003569069762132998297640670725388670097400073222518981377652844674552465313359208609666899096620916742122484486932079125192182493826489709931757134973116342391863316193053557881200877285418265499410928512381855606201702356169403077054976909773108126055844049707762942833782746168596808251678141264956605145048434261483488332047437796940942919755612577958920678839961882170793772502220811586145102805349111972502655650211770762220757097037107493829058030565731929875526555717764705945374401466095030755115902398622384746270245827120080720530471368233836940683142733596400925223546558353639761455919384420750755453103809512632357061690716319166386945978717169668588701450630071669174518163471100526484946920592055951041265310742643643812853117319929373595864995169170491572883671020106798214176407773292450039174114983870116065062202987984821286746856291344210013428945315122388791309691577619454955553555860238801689093615921691143977164794525909526979033036358499503491147003238358604902799422342872008787092750000001887172218672775159749969104411156928741517065922045674597054305455316724867306261283060104568155928774027604519027220078826409071518282150438283236132993544637979137307952165493706156973779575058222438792326980369325326251751727541537926924601609571455062622914477182803605556488415036811439092554142900932374100988339268670412055570106182682384188851758404585986846694561967695883845129346719974211750524713130057861563891103979865427357150602215123836859525555046738652179718194254058267213026899627415526124765635151396157303026943580224352831033404493325622486786783989849643855730780683086693763052869993373557115416430423892393459399415025051765838441579124378910079748975022618128087984881361535842061156922798318849492221831684574535171092272283923315038161614236626456103965301191038360467192777940749532082673262324383701092063190840745796206128843667851788756820319983907171843245979000540711882285242256189008255496209477829773758878459022377118873304791591555667440941931129939076221842296162357250619990617706790555098774086275044770559629283065234514491576200465214513354938107561335515472360404545629953084918340558906221020739268114232402920918061913857288310730727868260755708029243582175226471525603174443457542728186074213884763342411340473609755506069858856741695935260335930467342282705513395811627512956236289537658322809329000756104643208398160586407983076843172616644506616430970212486943111422746994362772988643860094170288652988607098143308878155138215367168096653990950709495573902738322753812965076450929636407873729127356155354717180478449623079082649458965995866462740610038752675410019511196417972557564043392065322067607956763371972524265295319910475999824074440992048349626874852630623557086131809562674618759472120997357384889460332404075662463874003223125963098834050880662340685961342085886013768631395516229140044214320023221500207952902543497971128972770099199091830875780781417736917350907825085008475932336809701447538272975167239786064067213928979492118063045825691675955935367378403489363377668953602580445832211141530478223459751301343740683713340591856526531425541232854022580659620400758829219252323085333039624587470200084302623230625773851016891734290354519406301903017600851786577627353444407755514199929185099555657913738090942750607182124073344370241949100580525875612680378044928089640140195411575946992561020634596993122774224107772959605311661828682383395661406653375663768886337177267482923937036332251103818526060465532277555705455167072737294165729538612335764469518049494277126511939354546737302266274456318389015913513977151507218441808492312975677276155969561331200989693383399399856950475037444241263442032147216246718155502836733986608684418161162336930030081955746853062770664326755505972439682864105103332383192997734681805239832233993333995589057939639877234806714617334087571189423544319000447568982871262579967031265496693809759638966177684564043545918747172920458459058728800000073542591514612818177414302376911293073031667312586891841501353758043859736048146287586818937532692246838559948483576703592607659934322857881465879483401564789236429594361154998596181250089276597202056907034633751145820689471067424599339369031244600522706896005741708378595426402601506507744954226580756736567154975189671843517165364578338059311624042372534861838221200222115761602407003388912710057104045890990795422489316026743634322206303194558842604255890732525409708101939642487539904497209314369486622954006457863489928567629281225162218409512582103628527141040457500730145721274192743242481273161481288267807094860291919598299159438513447077457157335886212478305733988372465050435075214684978045901458037953154137922218399496350197023452964256013826253853709849486687544016116634372211322303641224341426842833864473972089269072676726375735172774013622115372566489056451585147135887692385734203993792001753982599493294719527420303293656920091702022094110306699343255816218976694523897437804954468546827007458122900976990920277434153360897682611659718218086016071318816364212214462420626296141759287245559951674980690535784828275098795686486174006481811375250654629367584007710930062477259640286334165911157463237053776314928630736148108311589288230953697506782729781176671026226728568619844516324135210635318364511684859030944699187852130169666865771589055535364990056618865786834861158619021345440670191563882481054426541877291008263734064430748778363299585709029841573843860505728745213897533481087639292513304890098799700594511904716494760524438715196438153292076672126528248937637901895274488127363217542771795779237696577005843010739560743281270554378406733247053960531864399102506080201490643515146522612607686941680932679170981574983928224890006132316401990608115357199807794943646213004298582412396706944847432946231142593781151104878852866411438220494350222324052912921557741137242814547065719881141006172759236500295751601971807612651551740959675578032139599200688329982483758619034036584258473061572136747052645008897873419660675247471468494182127943201733160435231245408589733203013145520585673620397102158323520848654956172094356773197120808189208386850556955539505409343539433135604511509630078121971651000490856792549792410436513162974542508642260646740057014909626896622164545873222403716888619632473729712909015105544358330210218195642194230994803215527293595691598099924561705800238009589108975017189782955969788448142224876852257471786967522650238703226451895697918746867216742055249161936672759353655122801651052479439351972520461366277104636023551906286697861978533239843275988221426243701570257773981486863346487370843787662954072008871431259788134924559993270574749284392593347039724439912845861940157034965365328580366512150209917184512619219344180794771010967960882779021627313390485645398414910786844641670430322126052157593322606477588180399894899347179355691785020669648101959441006922775982666009264137526189618406003083793928570867192407835339351023268632284732071433909143160972166930425119670439162829682004590668761954249930056149397924490113620313440404824796430785664536870587236123239101896312377928908634886487059394991144710659528692743287601460331125703607055724205735548788441560914396314598701109569452627513355857583142881424719879457433388671399580804772889120736066637845535061501310897727209701353199292288929866168087115910210587707378323026639133266492630909292988954498342302127159545230045625584962383176168784379717542330296680847391750415485702910561197081796931917411362365595544113094044563080554419280986749666443095175719931597402829784215971417133288355568739284007536188434501944839418879550072955823022963047546769580355109836901646053719758888464756116564864497889804970478134308584115142627595341135927759509955196928522434814820221712312188669353085098565093840064772255420877041672864251873488081476436392617182467553443479847848382628385605871466507368358961858287451504277664610770700691808871401573849325851899622813711315704551768373350190124170008370356417687374878878757449739511664943248829504186072347550008622637802636389336561794194901026354070162214871801190471456387924763993233213747405250735307777729159535097405067909810785379985150826421864511652662396748241127747876912800950973482345384526509329917258988620963651596583967581704268929969076959212548918114766355764468934452435215800904041470856266762571932081022742444474974691818547987518387797423445583939910072888862888606138393235303815831098111906146052298670943673627760833941400155365899173026590317322649917545892753435523858089283319242537378831680490562548161592320370913381210439634066155391736317469104156376410945682424175569082403346339615299688219000944516762358620852908436548059573012757747672476882874874301560637075406460417072888168759203660408174865389315714439191262919754740543976544913137450224675148220358663734946818507984787000064142199297076549665032728169753707821389754230885632983555986300781823011551041822715257881829114356823424140652004033823277910840837507225785935940066165983913476058903595920615037881306673293221675981309073126210456682181864074417846091104490788659317199722223373384077477358537183253732853391003316327724811539959180290321445553003528078786532672728318899864350601440674726803292632606824049289818578139351999374792454536437246855870258966421290211614846715921421659565078598841502658181164101957374491368711789777090380982438386300938483732126759917041147839744559069303426135464862841221951569737057351368737385423843051712439078154904692607122200642168472894980928067614662789012801613901373469908503221834140894905225207835249358968320908284536436447167897381868904116798875991924225909293348855347910601382248528074126623029658004909770720420242059816902596551997759131597170657377790038818981293990641402945513438784950413833184629892598040018826817297093790548805594480025738103224648701024352531491810273856473839542842686740480118365999956870659655083970531509577498685919900157422327560157509357684147230893005272527973938202378812323002364300998516688291954280062751383369565225689948419117971795109961802646825131617829265167152896458457316372517774294667476767818796053876821983013371427582145809598397184880417737683867631216432277320635117723861149376619457046849024608163873143551396907023163555438382772118883086541407765329107336134829626802149014022691966039307497719594489058575277153493480271591819487061198267154757945695009360221580560964752655436832494737698697045209230138640053889466081538482792773808725281360956951093212677106856591881507347508668620262757975504042321727286784175481857893591381471797174770573748547614881145806180409126902350947868778550874654843350816284492191556934481760731683994468745034553611190307637310234743679179993641739613804855368541213362603339447198739133286590344537315535999248470263030030542761506186773594869419629725040348911391786289355382606874070723838472665622308455014167082057455082837857838388624894579161288154646305833659775506603551038590018576561455076375247674573505669360007160599325849215146849602730522346608785052601287622903503145647766531663895494588023671173452935836588373352672969411327737138647516676841005157894474558123068221316872254740932994584733447621365543092495444837162210595222564816423766358855455471716846155045593133651879462652271729450592623245045970167115748246939403714102941656738094367280586758862461137302241147908280713077044721979435332750937684150133782184068908906472408875367188045798586533234663207939931958433157784920357628380466968837992275286611337622685771898725559182102905915357136114236810455499709344901061869234787778054260016796788029629844247199582066496796799895523507248877028604626596203012459327731959342544745616126711641191407761523060081433079106122785014789486790292867777810315644785095897409493031546277426007458937401433140345371068684460614465205259360897651123890617909125269452786142724334104709530449685540663455857939134132145361740558621474155309301912171033230908227394257016878263846907451205677494350540749787291537996168852650228587729160717826958308142698294473290590156902874874268199799137821488161230385430217445504262693855111905965333280176037802954923550188489622657291953659150104567157084264782021695168144214025732012054375040932827684622347173069173148796694471991648616689637624085099998206334231036290609502506270649953019389895572480369047502115491181619644491698404089171352460964803671732857767187467108821209270287156880620283110547370643143978015939980266972630531345891606854440729391366281016808656743779828115411484014607999704605427153544442943620423698426007999735188688792202403695962603764841277828876511813675915334023201662642628395308825623493704987371695092221336263507742474552595950687079608565875209906959102680566766242241314089580510798310501550496436420188706426565957003536391195992023934497159444067572530414374800092964572973266508692058251064463153674616969957200317848251836245557494342201789642085650403778456405965034573266421275266467437068740980233481713883137663507044238740522390478134364960295748478110445044130391480042230440457538941499607795598175648664429530310826539577699256745043716877215619740535008348420216505250144996791609554166224755203872648901798567449040085030754735383792267047398720974713974774765306500396317680774827910864492625040801044535080019250679937032668713186074263543621248808739401326924030187309454998712542054497349282766364164151445769870152972643923234644340885637354140023674033496580474093097077480340790788917925453416917439421109600563103768676612486607210854700422860766023509041717694471752329293753076267583143165683442058927410604946175380470966930310386857775709757801020148821572087902691428845706214176033148278466596428494769945586190982250159422074175628092140061133647664106503232968720488428097272944287368616983574873754873658282034560178045538584264449738816319819927606771938965877508797043782434515474903666002104770473746793198522245425687055653398609384567424858069438741250295031478716229639338976519045419421942904732212501438916545792094875157598760903195906283801622507897851825321961626653775439780502244043021459291534163042882926752460197858377173737282953503660748432637926305507515309393522668456836731610594159276429507537443435466092898810379836071453409148224828191642620843352218311052292207374199850705753299786974964105106892944847425993178662631575503685020051293270018615824840512694398747254029275449681510037322254563818839016930376368810587825228683314019701805140723978760285662456137949175587841841700885131295576081199480080881684206842314074068663813112656341186954293639498921712595151013248512447291955410517435762163318097432298847021382207640163786359662035248587465106745394057741312386558884660023544261661677705246000764608277518248412730407628915073117394538842339886040853873046422707494929686652147666137644036338508930288082526815779461905903385717739841639679025806512591071121150509350872364312184246078344804506977113602350278276356483599021004170141173776746126523311197130472769484508182769744934949279697431938701236506024754671766408823597266931010417655915203935312496967691269156368514990742754907677304970910705154407904508335372095373046030026802010457963172306182261453166300046126703011897070359193836321119685416724731885955459068445053824483653322976863418977968580106773703876344204447860912235746308364729099370390953748242041572626484697003786265460054229949494917589967883907842616027542387524088963669721131664209653009448495489785775013980951828306480826406752783802395598283782485862838652520276395463509190590903617458023319274073170644487523346014317781439924594396020514312695296129176557203541371010674672284781839119079469375720217050890972937705677407041227668486364363945776291475469046025005076659796479824123451235734862335010212037424865017696149646936240599390381136331644679076634224921238893495443484419998194620271936240009498129146152831522807268559189385412479524097488435373713590494466016009003081173142368312948098490068970569564980220760047269275211699217729205879495195549918878672543337886435105648898780972901517860687507386634620998743678797253454047061063843271723425051208232184561782737632966717489313165492035649657874962461318307648266154257332339641174994777184489976258123224421918055496031734246131434367738423774855247423115494385177287258262030676941297840803559028803849866554308260878563683762805589871791979147528401859496717633132276181879674611404912310675125596556173496961467600016279622993461342507893049420541516128101024129783903291257760606156247807570133915064946257169988139693531155313864715938871586976079508510786914738054716516029123319399705003157530672912857829154571522433290525058353881233115720863403766678064271580048915297095413691095961678194082217763942870348614565204662420179199044899650974565004765417916176751032313448679574818579412598875163759437322272225423738985840764995952350944446153280597916235981567678914980746499151459763066700022443450822696392539078005603811327098423844050861542533553086726927948286896259631076655951973605421957971003026561965540001204195085944751627840310019446118994020671005968758163236702835655361146401563821993735684621687584134206049622338054592928379463410853522423996636140242375644154710220892687699515009775671164208812467105656820775276798664233019202307389881223955997481270085775850618010004835492720106093692983714782502618210517584371703071400458364004996763967605905851512364245929008644315098043372178037434009158994487296368565186266421098840022352785294078161111080664691098519583567699405991886490240009470265566864602473740394312721390517975813613260537970797064254731716289442827331389478745794469550042515070290834995170309190067468446937642793111086053810266990406206804078033015598833153545238198182257336824734772996905960840808889608733851813748421815940336208686734852014471779118769429210670353775856777269248543184644033865710482563801664469256451688202288923163618074348403395377255615569459501953184495017171562062067837385572193205435706090153412675381076397288726483566138865500591433636461591350651997558019749477429054279545699557044962477270416507589559450798745139740611613622457270783439016148149051616208498996471759375116125601703610642971108214627862587137296096696209978949562597649473555010212265609753719861404689012826968407706794154451060122667425983308036057113700683399933326577903665771331569431928167355565706103450570908730152624364966531497617447722245600630580555337978486055239885924077938199446080369426422399501722102419303281393840011350131899111332387142543983258526651617787474952610174071858558385428441755619549958901164871840713354576834290792551334442977475048428291134149068769432092065150464575937847018683341404421081595221324414539838158742138623333175752390930704714883697955242322564216167541060121527552163067144709384112883105981014688752495407599649218300625488718429901696556057276300238694168665023739265105939711318816949025646789047202999203587919940859231856148252971483838160916876510436031897817655170104915900973831773827454604279903735241946018483103396999718326805809475355343253664068254744078383709509061428200892382186393168129126758653033432718577530655028396564911709063677404673198829402948126748830044321015022604435750805093854931238676509619349371044192845598534995218487883198833713563126934048746366873654418178819840724477282360533527553754357682970337881558484020673253668190142474880465301859974414040117390241968840378442061201841939094357517931199284000589988678459647015437697037515439762518446299985682245105596019390213633582804366547578302825904444614974105850234293537945503488170156649363448680228250313434676221630050246580495104347440967896327707847343496802241569720618411072911924873485304689764188492573472885209311841016773151872917756958739549201313385456190427165244249832741359636676580551804924868321892825387338370426504925224565967787989436123483731125796674112121214199577690884208369225965162152025025048862526391619130248049365541585348795273953432452056432801683504456675298730059357572266586818352147303176344363198010842729738479441104364140523228276759459723960674487926636778201784841459470891215488388360450043300069612474429888364547503119818953548153917017517949008066509020431626581129515996090465172485708649815754559307422223272368762492908913383125126110063025309052221049539000335410722566946035133680758215468400385369812980852326379301518283137055215675961066429903399833998800250291933000705063759473436152937125588739770225336352724040957553282701160213852455394448409634824464384717443216689693135172506882487932970560287870994308974219443041297508749848103862011385793412480239046795100953087326978834042462523300230530588777663333047826532534627733052168935602596208770337007462057706919194264875357186655475754355070149922299856359142739170557197836048200491543594960071248558690698143071954926201820531880439077400352653032772269340371211164284711618402833563840803686865034449859363026502324798452628868791601311937493407724581314656031253883534531275408460846402264096312320111409619557157650605169796750145478838596002482756677668180579482267486408857531654242358582456754589839870172742397700531765275439082561519384402275571391229366214238161198613824205844160874394851028181632394750046215255002102682908812101907835512661529958696840849742976770947065368087050448418956127943870943082073823127060582652574511203498294350895549464804128915889061594188050128757303767219984324174607136655881081814327992406190319503398261057992975949538724360139642464089909660536474650676105822892473366607459998920120288379613871382221523840448070520120442393752087472572589632569844362210022013704937826426963899810014256502764362304585764848659002840336009850916710381478578115136735495216106924966851695046682829818897354941144767369678773006679484538941467036408501757931895234297155570055389933259823138352459822778308118620144788047816662684353404797359881902350923819434630615952680620053278087623618800567550374384941139972921475645737068001199991800628509085192552339189907417766226539402854044601833918413409196886770609952084032277553820912984513294242353599897864713226504400595849629492161490607828916135709210947475652165634312817480974440567234388258213389755414993813251484614967917636011199194811684390062187159021655720185150459113415511633032764768600950294066508881636657079247355061026029831940591449453797686465956317528913976956379195003887926620322202000540723160643592192065944794888387057644357712531121863410122636555181446657817995152232784707507972928009243008858256406879049741191243101399990685199400448886636864540805867721092984435181394515963053151982013319175329798837398402589718052875628161497279330899393073282556068397644299032198839828240047329468824666524163784026066631865028034524062127872272513880871956214614650354239022330148703486707374145979934650972611047404921331822590552782733693841646647135522716931008425165547613356218959981921532448413986369599918530454910791020081571011355795100010546175973351040417327042918518155522767925921386691163420922120224604985867846070093225261394287352630105404196287282911264314251861292645384592330259717558619181433738374977798150688667489591391306455150637320844250799718958662171417271953173487754940456956557244743443013813847224114704347585883361385014322143797372317293514914085133817356728402103581965524843673327210619457670273403176796420280359289949725656439005453590023719530990128916577666862633147744890904359780527413704449797313389466453574474799970927322536102657741349980297913682432340704899956463608966510696160425994828873955726968324447451062413741789441297138733658704591624975892485334616268152239421755837953569866416825658251153716101699187607082096544308402025865525862999940415823973165594903590735991765633824973259908027353283537440969592132992589798727920273428120235138531791037691708055062705415950381202713322422516473525845496151954682096239305407993602483796423988265732127555278834507365845448394098628516277927733869234599786666616901994985980155128462812410973390084866384008931694612954800863277953237654908058680458487818478383881469834856958679954873964561318949612304504972771494251408727048787824573994480390496989374082317069527148155411686933314132822426420044107869115802378020133088150297965142961658288702517191575348411084279383925316792862371637121414538482216531478237566509268408036774199254960391268119930198646757906195741199350466935924808949709826283198495104519056805705313892242252998490034399653054520176914903516966605601642461864654674035282618266874701804544812669801243287380829332618734830101429300290919235681449349718788952141328580734506942016976230107966622508774489806930591665948685515686564025835492617371872282350191000704613400244068733734095499026792999231634103465931915917566071845085619557274793378410561921403817436878405004837888210619953742226565781822731621981889092122221246647114573071682915991159020407282393103854188358224274959951410631556536010446243350913878373565149112309726320197351984274605457232681277515446284468416280234057852115320420040945824538259217908250366841952948383795851234202516811243278863514649078960460114016810188616869834104085145405308775738717584698599492696365964702570115142686678527521254756805786316143346201584686531121769782228964024640466239264099136350383743715764242416356386371595167408900482364201865119939743714884957408129485529709605978779769601722624963385136179582451953602563593286292665188345933491405135597035258002550425975757737861885796056414651100747765796063819403690522713415300104501547603557436756952283913264863366687110384079085563518403084287100335420503089687665819495055435532603661629933855376924860025653453387804820144120897586097505517226482353878285651116537472835678168393635050195899471872942665897683210208492164919819515940601584678072022513887912693738141473256025363170593417904566081608079037420916092108346670259828040338782527627114103238865314811131884594472732173056867047889274059903007131443786917968053753360540870220212227403093778163646082535469198556238648320018079777324009517769380490535345283017737186061674879813006082482829978558079374602275263484496662078550157169863593437291124158162957290132235883592433080837267876660171113119166115144419644303184812691300650064539470786713069826702657762747638242767883363247604657141819552540617854914572370259658305603000375927511995056548704908292246095160223383174595042896315092874289045961465547046172980269912352249130303440782560311227266391528538019468802967875022639805136111881188434667181596734215429857185599845778021313553583176440685559371423437571453818424946752771509521650168727741528382016784050901600273097073243586502591520512484522109021126398126169144054581951567953267716002639259020687034595469211627590587756081562287062064973023343903074151345562899085117909962877986885224198753493304700016611569034388969347030273749761526755053552679153331443132571608824316680538797689561627724601027104368369353941335465931460195087485022811175386478369956191212149232290438767798709203560527818072632851922692936740436412031815973642516518088582840450559586712405684094451831140025369738943681313262710328625454375901350947693275182068686763616509980555022546137854212598607086342896021636023198217675329059826163562360335932575072990177691708879871953464387154274485662775241118172100173513419567982609266924142466183076389753144465321529082078393043574460714765144401787313477322283425574441205028307615952784705221511445911407844548343943242055351003263290773080890781749612948563066066085803678714314158585644521196397053517407317429768633405511664470212752342115394198263350853928829285334553881146518764878988576977936104290039246498542641695354045083013207337416998893853881398888763702262132037516754778428082216391664233506096202106424207040386679748284664790564301584291421532675162524453557642562190998543766523079108748127792404461698277600668616619901736174989025455788255080857704414795066373974066030046988598743059744642996292030894080293650536789733897311110606748318530770877277805706680477227011927303201352839243616069298821738856800385574449650293401154733926068382232142595763125701110126890340122038381115597154963675427075762469807698001835631606219725661607513678504001456429066377673000362124057592663460035623643649154890209579050622698126013297508477434136051020041097879769460717623473415399160436106867171684959964470392883363984758325420080289080430154378163686560601684106159374745967551032600184551503336664791958624251576850377484638404320792582005816801705045511568777284192574145838388308860003155932993253104715998815528909439932069630683819254125838180762613817380446609836786846204397927859235921554240445626116709744757075292243199821154893058119762457956947298651071597964792137240648018297846637139314652606155058007935332497861236270983724292139808026415707966214230761630876755269554370883294177071663928538673644684662646914349224878524742328216610813527600414370994956880244846679001793850635826094504914177681678717890862923821104703696718288685684947269159943503792904415509903262498673603612041177117436223101138943836519978197119221277831710222632203825343541230734072356498815738274354830524994709604066646552588088929505513846668449869198080295418168791273951799464975124785684013443423240267076134642184505457814158946556820441698812485833564864241666824903853651776976102637859331657638193153925218222363936247794266715466635776472794987995900466822131894212274044521681011449047952429990409061331883322563700421238632276130859062934481579814223051381251442785858117829997865513917511088058511291534492860456389230571944998935943141346226526241998185777515953199247647429527194570530122591958113393876132891285863097030751321053464853995694833105949631320218115661201790822412939277369260680498600749220374843850710589906970314121087615821992603684440816616178733562960617753505285392699991696260022013136679548904194237025032008698040426531874449902866480072693124781149948845547612620033745703693006836096162253384380914884555773048865458939734095975669660526323662792361622886385322239282899369375965323480526304047670655847095080615033068155552026962992196213367549787170808932926877595772985695700179248491017869490590936397841292940937706488759408838433050981202570095391795980203241697348089166745984638053995003636105121057536016561249863296072158823060050044594177810881115902495993166668834413274933756008433354075111461327121113865972249549005203941838100414515605871324999447916208038708352319361805205142673186996472985422086856689599573170590679951674482363356093959717840864082261820170254330237265681806436604137854590218353256412518639072494920929156632259167089759055860968756197156032532642504691428819805634873621002318482249658734124007702506957374162275722487828271243159952077290720125450547340049488812892883671208955910485581817940710379881138219449791807367811347403755903614640931587667426817636927157151795242159961618387417635943242726055085702553785301072738543547463435513028511065602467802154699227121582183440277981137430192984131505933975603483141958983472962671038666271834228437043694728110179320307235711036648862803712704085305739769914936741622645756360728729705498969651657048473852834427171615767250227099591105684373457372660608879587338603292982810264940474895346035912571531271872671417289655570759164448358868854771727996886024609628067807702560173220624438348825384785474051679537589725368407844649478350161146555451074892576399769072739134602781770550251154174153662102981381008314733938046932354228925563697766463246385809902533377548770374490138484278316463815915226685307464496552022973065581043874683894728144752459251063939371297801536862228069585957940364075358309006986308478890145279485507470786172174103883186302727224571341439030492672159744161027650397207304087943952698663996699736557266797990796045463927558912602302612808093081619871211974770903210627578582186895155599581622042000117632707272177133356150187972639288406363919034964622017595696193548188123990748212019727446558350458188251078478769244112728359071627687153300546812464549106351129647248385799105255210584371213739607821116739857232569759839133907787843422533160675358845189157580989563480961816098819265795663990453070614948277432303311765508998799350343969834880243362416102125777798002705724873945532825906233322929921446422638160909353499937816220446906847439103928633659796369719874043979226099575261597340295317014800991375651649185114707319285474125460748710044301991875866143311326652135249965585295030631128377886392885508397469902936663824425434983060026076023771591983039343780326281698975278847714120560330087500664464171873088986969902980781503150660411233155693541679970907565553983954007452169097065123639880195767597203884657803604795465027788693596930788602810837328345798558455245771615233733807025489939977244430494944442763431876843095362043944189166821951900040157796034476326707863917619858064701621230337080911069527622117614570404420707982011060433532469381935074959026066231264897839768589157632898384053870661099206154130576851816956360851141917205607989110713896417446345744538401010586437727019628670338229250374507302081677818051813772412103411325221895698942613760290038437537211137072198203182427891118671051446985335764849672528966792624650013067310341787070767254986723376006603040041997732911118445655542981802151305726020490214345803971402585371229314546768104325985536899732330178371495815940035401659219022905676196944482971672647512226892081381127770033325670246361608391513244086009629289458699283607408947983851859891037455098054122868689193144999034368409929684682189261936728741009090975259255537669525509186536915103086593971263988515595890635537962298952852364175056527340085339171627187121407182894099436784575723152206980007126600832783297089734452925653041330886770306034826386961630217836423157036625399702472640525019077346044260456649468899161388550288872260907039029696936769021888535522746911353696795400508021729005019277550801355471471915105062948329195015153115044120834331175853726349233253560039240986188061075554540916769373369711083127170488136475980366934327409956156876054922881162392413110979147292461727400562708913176674607233042793628321588702728508076499731625710867689485907947192774733767774781692214917680904724643628794615701480156403141681187595111793747310957875310944300942057379744726791748989356838055472245266168738483352191032387207883516400835837354131920024166213400436994139795577562071142173634537218808207111027806028790292483207616033258792134423170612906447880578235143277080362385096692788920172533995146211428440825447503418097933215924309904604393077411204240257701957655272126923674212276710980315575803397776317379958945655611670450458322831075150005007955370204556269840859093787975440764132871762290703350791622156675686243675692514003513041697041144275755631006109906310196286325759845267567949732928829643339885671143962001421462168300713335905579490739508075132663183598936998513136334644931342387192648364676326442733330652936484501660273097567173483289141197963226282308880938330335695566006583777655721813146675835579428094408374714422461053689312953384693110922537904672678598216450126855539070888026925804771883929980576214844599812682779445388163007226763521023795539876107916101689158249753390826382820767177297615686884851822600213176109272941152359028806070511694892173070358899866007151521788609778996441218483143970611491272813096827796849809922238553129694175740339697613168574006637039903074636974646922453887677952944184513338328653678437095939564620587641776917770001394680140435793218915458496757105857865966755498606287652522286173492759058949856254178699260419665440190758357728899399544087502920019055469523237825409609646650723709312829119387792673176921841063536271479752509376269124050992176142829388419086886285683925693421097655284034962709686478706674631034770317394020019576211577918022475890792066185522848186023257640713696828567211619676952052818893517063945768830116239407022520314198551877232185104940299285046905094244404541631619547005314518048694917678901577410252774756097743581496682605542995030754637586256719586795414598099684582379295597955966603596712649048822025944176925075486558653811694035654526457470327144313086390449922308950770448548068732928294030231196668906595498255484694748297011318900772187071049141498197289074908833284869621876977398301168201008625093053571210221030748904510736767302607436653078254929774635176617630121438411978996604718304576136629559911036407560920037946808620340151417387268088799713414230241631175711327024031524686354184645399203582958401696484905754862893523590495251637438872835333769336267919741152160553103206067206692896948689530553442692986595408091099313734369627292269654757093965954111322154868075172718236995427974281088807268679152869165331786250255561628256862443813144324313453763973907432899445681662890054236737504624164572132972375107890993391205169478316366875727373799728863553774199014452794620532632828710159670628530012524298578135886621231344563025262745942985484096063127137007219919419422288066128016229421969335067823632635237023386104201702810877884152683393253288043933009409919232244127694293922780008426963900755952431584415022422465316992009948300254448804943198245851472450458773193641642246409179598758897177446684271357990900999503808559626736187404051384197103902605448976095325477225741166797673919954522270756110427185656426368693925268943949115831855860903705167916273824259786338822972999785581173584686873702052738965950420499337136769602149291660951135782232789413337739379122315259227337245649285037340838050241717592088004503171811447130756043956868905725398337440068104334849283525339837199743333117936549854949804752746781438319650343531239521805189297390773249646172149252429480812521277113687226643318453683486715845915859662596787778359024238466014993092637241751707950618423281181135435967496639809899133758744139513257975416147575341912128332940457382997815271210436655726181764854802954177357954904638071476865687967093483725859808387374534880449407455476943106928430405880763031702325199417468340409982874510282607971619439269891911540732967239665932559835676572860077781108821536121158787565732677414590743780217634433238304274859987769638792444807977869466470222240571535912712583924187547339477823987025867880477582758649252931017702967298120745352080300149451040023604058177599946667707026488188611174332423264650290374946531109233125127909463916077990623485719800419716553961656691520241153291107551097820708506959087530447746266278883244370221674495067812555516844642618019799253125131153231931482779295320719564598660964231602259885760902595839767361972838467840725848723133919028835981528509075103057238836684605207547687963429587474465722549270467993235591986168321018275476370490997301604074133055874535326201034015638418471071439106966074264074659596542801726180740633106460188848550783671243698128151300447037396990747472842117416717121048109741473985372413230052869425152952661104678661107604537729013478309735334257791907767442791967531777392451718579056461108188417599080598858032757249948308424421243214832898296468206592836923471308117447268532015198871962696363518716049233279702820197117853805886908408243088426352507710791991048143401744478646727124050293856730953109904307998010421805819077268293146411379266184315216902727607205729510529857513995155659149278080687326627611158861988753723444637180948576494204908342604436307867208503070205411469044996892552226221806306242426378208726732492435331706991085434225185419185561764775840905510934411234863158442593399177921711191016003655655338084950329647909297802176961842956311687801323840926377728740280852957978135197729256293616019629198411862211847732957458249725575675021142825434602987043835610749637024202173304131668401490211647164697207081437938082770835506977784871786172437655157727755541360797602815962201306672549439932821529933715152944441476615601099069598780616945499207541730484897028932162240218932219974834457207798176603284462370543771135315693340165527818418463615107006148281633582558571334540438185683108525831529963255143696257689417842756535901648897194885344261659608037253379219096112704838585111293825718068422527408138932963494164033158371881974676651110931598547028228547830732796098958027665262657454464592966649419433757299508385996473224412092422507558287896142665613085665032055294165733766327870469537935658490394597705768362523187885192960805271459707077711015932029653254123844314855789702790648170945274992635977745576505484810606537644716370277362433913360624553253573532476457328863589430385167035407223139137990783700144083448960823476040502980084976197490784328434756331740293169283017478601602815117820389644675750987794371029250893455288334191722836863584750370953761023142276321778244519263256999383160800478486577720908275290236864192521655844037973599846225338353138363155118017987973919964011765092020949075404621796862234908407376159665816135714480898336892585624231274371295920364913034222835220091483788251961017902841152932648868491223210818702682011698429493765906898106272078717471566372949735739119987471034572690129283465442408353986576109494650528752144820688721393068611310573734868670214672027306108034311441581735207501779225171631010822722839808511927069834379633965343906227274567510177365090683374812426243377505931602528552645840613112378383568475167962185325573528986264827348489560788439831533911105675486453072387112450800356280118739067781326625101429388096254179926984967752567436109556810377053819035352294507257334536111044908072395400879654709867030300536159722194798560662472723516619656314386917721244022287350609023982940226973109354417086186933980343116403390913922739981582191634014237831257383244642802385944280849659949163506808280689876214298640974703483371052444521045956244873325704927348639418426990252442431023859554355887522783203108342686761900382679223431662041409691231169588683995532194850746774016089741250588340594800015513208955171760684974039456401161739013256131579160509033874576119607502347456656400859305370887773560025860109711904918795634901094264777365643197671754438068684728450435919189273556262135174299390791111543481075378932402077775784059331992703793859556446421293666138693386490845295148843599694019391356690150674943402242454898819215777070038568051499148673971182006773804470713210158020311749351794128849885580516030063235120876009635556240540711804974384437815061234524232841716483723989483198015427991260630147488541324726165501938686495013500353530603092854011222593057709872826392957487418227040425693648060504179202060521985282274809586790399466984031367170022990984773015511064284196810958896335921312644413733545412043756862654307431047074270496030174303385647525886588401155924712237416368761252559885036509169225996246718054346954651972002200977316860980576631651723794112853835882795924592557594074052133394945152852800579714783824937649991514244538838244014056318797777490044284964969422124551152791433386302197941616020603890448370797560398999785966685320328499298387190532185767756293930242666218560053845407588309345213772607203533659789004988559627951121619101214931917256480491177565222809968317299305801115153901189528245717540508089500377878322338444813650839160858679115233237326118810832159622941728235109309357053710970240920198767033468580123789385685171019640587099692902144294145753758747867171253843711175773740391940439837153710402825729271124577661120118139788127358271595824025305349207990256882985764138387213112574694183426437587605673910631556192490869062932489953432625201977743991042215500091579216697956163362608955689140643394461399441865456570565230725664667712997528272519070391899810013936422457738964460844815463899783117274678622452811807263255203307549371256092269443660742826508419416860497524178187364543505555982171081009335502320286496319092826918621885219750146326411721806848326904593029458158879640977891277692204755823863387397396027290457129356577400510994195855166968792034017859584461870570103799669728197823630920320449246457346691836400930471637774841442271338716049919381865801394597385443098537721905362962148251162642755664999581035296817038873526715341375068541442431240675592646633714161785141979981543415725063267408799727513519756570070351866102644876215043276998337772570461836313271067484768538958394410494368803737015704363491801987887793067537180996697235962388724265574990811635952443514076414502329316315699340703150395360163222561587824185704422246212498458341851175880042412544981575277222622208744490711809485843892027675183510802026080854219602904033349605394410456695989296839971765568470689148192638750933853233602056687316760308026547748921313358856246034894534866342932653811642247736892809243769087114754117124484623024421701102032848988747809715154508188259996095484870305208724965278388636059457647579052400636223402055813811029125375853434178058400007086606010539373556241261590611125068738974143246071686196145461653372629027670879012153596419979928376241433696148901231335159262417376025526573873444830510074234663266966564717780351447216582884223127577979343523171723333939859661653358658948789547378092049895907900388513963165996562425182915741513451101498864764242901654541768414443248286771917126995161101047359313152954448695300563163659856762438236977319935106734452678365106674817955876944416490739400854702608529171602432217168381458049637980502445510554375587896296321478398491849139365809993575891363608935205781402403392582933314765386068719419716840555966781812976422601924119093380773194925043340880371835002259630459995170626350958734624519419722470369505342490743669763331484088297652923662742939173850481811679077252443576929233419465713950877175055087380563957364248653528449547622501984327076188028642332887850550323717577962112854929435059540372105677026285412414758522134886877099943068571982951384634780458701904257340264606826130390013679970481761361165699859955700253938538708440538688729467303312490224103187243148975321516945644786881966678036758040046338610854446612654668559058793085364691732776899303705808945207526705335205580310224922428913683732788505315923035448928180386673213115395937694172252449803933294500578881912900867911942530630034219932043036611674099254514414102185111580394517464841023210591419834960977451563506204205310047867348915760192762258692702027309872435787028260223152320429844951761902132672098342824766220139072464075363045274893431419241904031808560301218630269524139942950375827092649835037994049190295703013238806134326892607003986615293070286983807120918723869434269805621133569834190558236035946507497767270873520645159180603102965448806367242907704224210573688398652838961684254436189049146451510587173157803237683340016145707774501327074277240173288804356597561890696862030010265049690921404087991883182308324203713733954099931902158404819992839594793384185212369311425718104816686228672956921409915865563067099304445645327244563383789680549343568607158457584882176643215927681296292284803302498734398077949915362966903388112281672134075118790905179703629723671339011310409848001350268074132402493194337181537301345538661423607435024849762438690169504884289296057403748842896354679557322838977019653756876937541661340666824843764634806405590483104391725725565752175270083049834556947830602408268728114847369227147055617366092697654295574392920667950104568098745561778567424720734330082623299543931997206046202248093332118270873204296633914751109480149310327731626235238618155738739257094938127758989277931552386926271865129252225760812108894156489481078655485437386071525282334430036897385449716869575480615732968115595564910016143432141028614850993165271144267595334078370042623975818626348396304534124392448975605582085487704021523723131573922516405783178893825227729012084822786497379300127857028604012261594991879572667526424608999392478837471071326873183118336884932749137419725566812507083899191974473241309208600942425106327110359317322826902664480576187315080048368744872781635072512108912324516101487394803209078915260113948855142486528905437824623781871861359830851420661006917008530792347006133046722384054625013071943408758507490241279963447338064019391657410305554397939312150399486660478560254429572193014340598942613841053189324232560592206192796880275529632930157254420371832865336882711466733338049721181159066205473877459839962160671834379232262938379709032039719075709142840605195455602251012895219926530756134069625168986374691090420678908873690133663804367211364977470226039137728395102850603237944705067848352524391000953767134621491041842173023368553885220305302898870855500618256327981763957904721568560852226588492780694687841915394977809655017887550545286082650903503509365237685060794734926275082672119144341240040923398499961924087025155240566671023863288686101325518700869604953149161098306794351202311682856762812730027396539820802986610321589888806792582066133970822259881978485174231528404757670455916087135038446513731251209554035699349205444951167769988533161738776117993991052738864648622315184515062658406193889961523023088677582413331060403276148381211842903646024342266702605480900325715524267445950032488343692586182323410059024862633935348117979694107705055349891074856694079538131719163738616453175064257217380049522736598640377134852638756286685227290578202551500453927643602579122773948833326790581175598499867783049583589149511809699329708794837025934220190028020358569380227590472375437300097677136068614283553307033995520146436347936495337526594580445485077731441689360123770834905716576381416218414022498263930360548497136780918768777372144773605320558084941049643340045006572596174711233530376856770922685998449429239351322651800238718198009547172038024159775722213959276978586351823644330362565311560100430703377737861179647237398387688629002113749069545541112109199288491296189018640744269892031172479792681952297905691494212560592807049586663473202114422615283312611562326936201035564029551438277537633031036037286742987616142934119908487839415919772049307445392381085504400626576995919545476361531297488155301931988762870125924097162970517517165475510427958040793822673937667943163786643897450056766172797570464628146807261385342317398578757785464285729556007757279995366492413440818911590690492618549805527405779118460511213104822121976287808408566423761935447521622518156181256694739966810499266019854357941329569817330365893388000902461545291384460207405463346712524197909162362957976464964432121106876785699531481502494656806740558552029079693367472556411867151432915005631486650002777183378249894402072154936841090987116104632621194527878281366188939649730439152690377996399415182268621682990117847741331605883267766820353531368829090348938780574328745888966935715104463340913707270218281106040898260834934666117104246810010611879089231325613854596403091586816605131057872457261829064031447480869189583284365716188272821529814736268176218940896492261018841818897645998356983991560291070028043925661037182105504191436079457445919116789079571209403632772222731283950350460241734359285863279491375468202738234335771200928865325520139031302783378450093741216491991541228665276300754552009595334481815069471033114592313781996436023752889524225454467904316997953323835141940624377289637347544167701525026002721487393013910308868632350002893800723808957783094249845073361997426525156115770644775017435848023488866346111436678982707228029370275139750461246766137038153452839492244282046975289886486790232076781217842588788131920123501596830750181244736979440811937679471587577389431236642567755336784308269000458153358229901016756647383188634380373012357362684497570243892739851808560795220079405747796193780281985836913654235412555532237196189115553834646103744574307537113812536093057292318379106953206129724571111578969223739208633709425527263455944285276060409491089043680335762954708159427225338304201982216495693754729516343842899285868606575360795165411472092777977772799497041830325441147584436664897571042133725060128097814469716136363954774272813319140888291444918463899456497713495971713599152411089404110294941909279987257543720625628442094905117072578409715363801492870175741440275221773278148211990463393770197455761366963877433260382979068437749680400432495450618350462405246132806996640662310422693604701052237028006653245376582838390350968136464897602316840910622029428581748583050427161112777510198156488766466512139251658878629236821152461186546591263471108990503862651235509784764955662772755936467240927538753005606836942456706161296867282802253679103194894710685634504433573004675650682391415430233007142191082045804393052907361596898352296827647888918802928043376884539023278180948137505621547254055410184046537757382368658318777878172432760581458229139945953887556590773355474999608667819118409427760751433812194458580578771480173895885523459469399976749769179347083557299924933642251330444693054536509756315761439597709205783972473394632311653632765932219474016268495194126716437993507198874778103447810918772234040101041107902036288595729627130627033354456777455897666286980531512417981864995179401662391859016481533768573566089723212967402477418431455226311472789997890108333608720684037346119205656604483746509000657319686407262609534535617687133136988501717339188972789456878825281420714597204407563724428442593128356535847576717122924591469144488826207018001536890921636663113210573145227848951714303086962468541176441964240787180689306425790095244552500920554644479315330602850736667374535081451610484857766228296425592662464101707258957031584725205213045776141447143885277455189225594680255597236196054840325174220464944878334738817305794736327092736238297504303388926494045914972077411522573584641140326093846371423429360656840218553473724756256549836895528419498763673212228332072258437391751278334037581943970558905818673586121426679445264365482544784282644071686925834294985183653987903120461331581233151037450604311712853176883156831528023935277588107375551420131580295482175067579047330622238370858708002400475479792706524921124225157057456499393266175189162172621237355430830442040600111012979064370453837265844997781793347023179757905976180329683891209805302115064334553790122962255321386049812085838170971679173104867143469355608964055944361018667857761760087715464885554578582759709047607140219824858233429106659087401269410208934073535567518863168991958795086258437360033358324106537190379953481218472533468447246520107696580120727033934854756326537006113555827290918521935565232747657199614740968753078337292020601207399056237968886421914205767482957869429439872979803007760347834232314246757495636797346342610574176503312643822996987111732087418991880502647458893715764616276455182138875361986104889259146367630364337011540245230131973213962651981390526158394477201348063161776893533854632961286870433275412387455424683692445378607828956516413689268483128669073393942212566360331942221999966133475294478869633847308434500332362596970335959782652724082311122408459831553421168162129466347365626327534246367750560614727121453132166777789306050639991286673522976531024476373212032203152364738934846529141069607683951760395332719961204623508212371725743077522666954431768615164090030134654510636291191660710123712747893038426866708139525702296803316358540304260043185824646103286140424904076335584917890815513367132623196194480758464583010565942234496418497279440034967069814651320486371552880202734044680292395751001443655373680324119935244938077172358434443534825906697409233809433631894302945877530667305662284214270939639867970222615688218757291533796732634093293155213959383108636116413186580750954772055537955668423279612907413805340517392929827531940913488892049147676518776538814397031709238880441628451610674650634308265867173030608900934053122249831325143188580510805860606539749262809936990814974515556918199930629668597042081763285416677160417615954103155519835903315782263715356807391154349400048238166147653941285439996537117108529232088715025144778287576047686698925538451069367083164530923774685767822398954983213778895789417078667365289204579176408223818200496520618304730464173689994689231970495843318052353947513743073534310187451129907599109810479569297073388264947222919607622000010859413585533791377670490298086576251902616362672236869550385814252639734872013771662560396896681488284147677222586554249494068476031837840508736667609633741749211719538210037202191116889097262110317443756289702058327357041401792764597400425826066192659300051494229865164758273111179999297103424027312685686025346136470645564283712757191317169463245431102842727433313568375421559668726651561525935500301353109914885502424728581861372088401271058622413274870808079533161788942009017858568660685585819373849391384064076253942130887689938078577502130200798176795160678269494497055258552740244855180819146183940106578400784259194647325690637992411400409962482761007728701849546611269293888674126531081805221229991786948094642811597122855011754929161472954232258553713344430248983726142029029396908225357987834391662289621001746103229550403576171521206996650991692723313334206047802962695597718110074940700189135787317910549306421841634087103351268367898034687733292467842461516663527145228028958787713068532429096504906534672868000725062082026412087275174467934743592143428686380736763818214354957257352451867478834545469095929212823418617800734402417297446314238544689083125465382918972039085040099001509270053931048357449403836493100443227701697437073410723087539714040381603468727624721838937742611775871052367784320361311174361542245579278671141998304168863776463423747942348171172884728153123856643587797875940812799789735764351532796119656102832854906168674168036246199251264985906513630131253317086557232854613803591073955430903829663403175341428461316099976946238503561553425222847073735720971321814702918236392970602552641906709485915344638443002729609942114695502813558613627537647336236303161049457224456399703254446810697185303700804732854316947672063577653591829396776131947204621581684829409762799257080424215404598549143093378045663133564195172751557621943800387564770395281794888445834714061933083078042127882384956127911473137130350297435221653789404873022873708987584518704314591713428702148392508518308883519739361015606318372833521833902555418343265387259364273493777715227221712331675906720921874078328277690357209750713048693247765268227606751284232232466678203789739524808678744738471779474915833573825845841182658678910471711315854522882073494064989993250940991568821044549072632308751562524492528163873318900410240116714342797496778508875647547900057089523179796991084224603106973660529947860189050956253783018706777075704770196500478281106764880055183580788328434645983854882597228886956421629873400265046261966078806519690437503837403018804365417656284229762008432890238362011799541173479872217438341003614105653404312922387758843961786259122894405750303155733508205621445726522642148272493419571067936899798582028549916762459373736386694566449914619693942947381517352838152816122459873114555931411581280082690331450365336571001996703893272652588502378578024508463856605221026552241882169907519086899203104487146292171475361162929455187722598775715706617621129434718064228283327017488815125048158943072411773145210737207900252067285994301685984842121835750207732932692408727899606249692241219957691076237191311784632713063356617964349771055770811575813143102991248249792991571751398588562700267734923486111854282881008335357669103280672607867948339718423453926505234858109448100088101195765816869312200980373171175160255880733996608065857446630473238581327913609126056060109691247175825334367422470595399238882757480557336902604359036287693872894545917483590410141728518657098818631676324073298896744067685078447703048188538893907581588183334408471166832822435521977339674844416934856957803708183121264996522428297410464448241677378091870556237412705349997105845910415610269498788448221397406032221006232222066296135510489348717328193075174911659054523454103208979500215191775004559261747620561887729937134519768571596604016693169551767641385160522458413446391184155769052677752162057605605498606915281311885039185219975328694763056549294810456197424553227640884742395198530725126055410828455426688155511934510458201141318350763394128346725842072638398904675902129491106586390744476097281126844341018507053493045647798469463311596816462641876084474851809923568630120321932696914428340611752663370426735440410262248945124401311548612851422946497101040115195592615652544530708581996787302777839340900506986081554902573854383540185422473638664826997425014390422276201097367385571618909996530199493348481564665365124243933053893403323884349503249189706125791745661659749978702475674013003646916107883676745153014055400810591931473887146028249987941343702351882779745045123419103726775723950995259532876287797200719554493731284431903003839123587288233158149178877434125406517370846373040717250488822559354645469531295171324186598223912196781176278424220702408144635271609068650842095939642444739581083505191608314899289506060555875528708012963349612578816675924424053569613689722189529335472048800441833691695147111937689168090137491361402720024419573625035138210863960971395288191502878195077431139596595249022012485744879525402539259069562180011205053225890690729572010146304397680424572833400914324172166801185921573497955456685733685341725743613701715354051869360336510572747989473338188255097880001106557426470075903150758297320864512498198678140533944675604974972517973043480276741195494513314610966376721703490833535293774109738591110181499554727308506531411523128207296974424299364033143027445440968049677390272530112937512076471469012583387991016284746883496204918229893873932286336246162894630826343092015673451158725592845501827387446524595383719553917779318613504424148992783467982114992423050034835347476128254044918759404779022857138056869191650322887510162420127444826510920089494484987696471350485247571116376154852770369875463155909843429097575931319797537436832350407107174441526753380369105979600828410320091851972674754003432434846172598418754631936250411237551247984607716768460654291263803458207687332562594030186114450036841175465874678817326503992694715949282989819014674864747582610660815462593590181122638191876644861606710203448267219443322013775133315013511921669327303219785107667266862485863276101600463931119688838959237265765008617639576712376201832502691284162541140415581991024938772922599916040722547747509618787803085947478485988327107245791409097879831157514821839947434952945323484501801306923166785799910189861014216489458733210526663096691459077336116602538542910568369783553867505624973584389061234516446946029033856197494439656108856733052974818517394561862302214854552052683032332317771570050647349979161873439160887369775819705753839382649572252790843084500400757507798718892725880308224748278520194069785378038406705795967497036298710262729089096003366997519292195875977867708097120568019325330881904838900623221206262934348013775946138668308497042662247576915603258157383516727516588580406445158709851855566493474623535645529723479137791251050183895087336846966788121136046519670204525988979725124764191198749983960007512899001197037697539285836406642862216754133507210587639258144929710277177550386466416699335504644446794122141911864939180109955116072780485892588676972390507651918756723584259227607506195863471695523355291139836336080964842781542806641380833141513940284085578472341988630518592062649183982040396933204754486566674135338681985156645391144169476098113154490063488333370815837476694926540309129134880244560677390850839654388615501871938905614717225263909804309766656828041456795883207748255983486182708032660251891374066476631862146998351215316674710016071661662800456033805167977932684572804838182669955156930987655045923176370339350714890561627119572028219231134892404636803434917200337176647733417562324469119734107185119989574289878306965979338724701539494667216389576966404925866025595598610202691596422301658441569851810297482901667047179190872042462489693994815650589762634821141350632887431265104937421918113005036944069077925751569198614346731690659045684538857912490153027186256036646303144914070610364297947871909562969913906199213546271556155969321742890146151929316325562768095040988150635209599240905331230518167656180449545358590984023368553930729862986768494741599611679193170129306783824447328588734578384358259734765118424536565668444229073963182981754242982829665287925680606800761511488313625585324354638388371867202206533992291769674943512535662861474214434222829881549523359635286329217872906625301856319965234480794268218506782259854124713753273173200369473659033306017286438382934658836172865489198511779313056387728888863849094155598235828908950013763304004192922108322804539873898096709457888617027275904547889707336883047510862735162396697932002920016622189368373539081268556463544245026354250832447778974120280983477522400163841924858161485699221763419625345066367846964075842982092892106301007669679650614767483624223206693734442679926245104502787048154839437790585857805748350410848246362452712810791919931555040164589921643603450784145962843616631481347582178446278060031749543645046691970143933969289565998703661049782621685367207962577027810775162246368094002537689171016109500088188936558081913542303420484538652712779079741839944831420635089560482341295811680865825725639008255021237482593948213106341984985252212687998920472802305395812621626517926459201305784515793593474439283094518098179072623018352077262594644255428064682846155083267161880596329581045696844434919501992820411603446671695634868957048048906846791976301209306237053633050748665714985693231919338579801809258147588728344218296702915751008249017321632173425089355980369603976051900797896942856240729246946617426242106313317033222747450518330361929191081937245978630517078229743620352392488616601696671032435552867490689604711196810013756977952412942430076950748889978616522055756860079264297623214031631039673827532585192872304122835040478728816031723945695910055927609858331579092656057456560043322320964155556598940167568864720220120322996624229516003983600506175602248426613948240264501331108651666584962010124718799388463857496095291309088896862046227673827960682132688352262231488089636881901084600734909146706239972026854870543237398737766166052245560431759670546552676407011389547736259917907022440379477154345447597102797524054512069508208874306504454475718573321993593837746689165685767498328616401816733349380376888417040630414827640142727181219543577789488097077044560167786008749759775950383842998339847690975932811867666120017802641731659681986712960980146534747273424329796096934481686664500386231713143193681863219765587115309418301977548515287443015109063149872648073748628352987148811515624911456234925650936836892399272771923898501654517610195303839828449826504977150710225218399262272755760468880931161324383447044469177958986231100705345400407280639960252321114478399255862768040294706094734329808191974600366292372527839372308695727024225454668650888976798709287845644698168114500841708623765747837074148724405295680274444117189991502847834608478082847454917063423002649729297085470521560373947638796206954491548564302130251016296514647680219728788066693876718117305486544944275492556534237655888284706354443015298134078292308098960678574370791565478459097939354758647521362296973472696575258148219004382892639132989720066030075878631486210462960111852068883865880516075626460219304223064719078351643369537998212898031400897221494685909529871411845023272011529118859554130470312727194863661745757566996293492858760410243908949729350937771550089018888369358441921677992103304714725033711772739411017867390456002697331938436381926975012942571919534162894406395923335501928169453665964240839861702635211281596385676695726176004533822851752818367593921627050415587203795873778032418881004422728954130139122276923336865441608622861360982446570527867357701896310591372522053125176639188717318523458207803641053998859333663251931733107938788630804506992544736880102777959430775734545177936952273310365953917091532587525822459791363335339361277425118260875129630144744324272598948878318702721931920233555999480633191631092071256819848648597960224849603708818168789241414230608051265660558727850991223041629555262329705085005810380194797518488719363023724749133477077356364518148305315350928451632053709534767327287557608750794229393707039726009653911052295328336397158410919149657375346363550966512217726343914574071243361940925908068062343311433961389904290661625269908325514179650892020538666292514505964820424868119268320492725681093629704611928847432414603395181081307157055407358974550920460215138299841625568694748919413813381472989343780543420276297053778470042397700033880831447120656725695641375689930246724519954998125705239939001877684409334406747709835050713437322293655204756943959890756141079468202684396418428838303710823987405748853240436901143130080841384421461199677350345223222604569675825373385841141062891225652605612235927452070027740860993570750361837339877163160188547630634597260624205658769301677015491106506683875793780176306249918587571280388919471619442691051263028276769000400548483497697200978393496406469329564539150682454112803071449963366087181979270128762711213916669963349030473163681822320006427578400706314502187637322333820334555971432698798914046356756347655596246817791149959890799939401737761697459187746623261324913585379340804387035935069146659858618391730896148279714789069770790822086206377913771545922125565352392379303164829993598090908979213792844372653802138026025759535561594775414728914604910037007320024847206640699732881938024334529296219324746091338363400963141564897161071300143541162905717897761381154284637549550461499175700130341702415592562045641159575515662797492133002247069292824169848420974864476291668356340869275040830606122390501233367090126398928943901151835538307040312883261289984678469381209880157219450330566135666274853283744441705386400635827741847417532765069111740510147101320756360473412717762937366996253528107610621842679554423619323683036499068426061359547073525710730973396099902033929421319339302068976433412584807295755320022218210300697687231612459791213277590693160555933147385577062122664780555564673305279402530332853802821067065637468048119319434965890123574268910885289578045701849676596667134047894837128906671491449387679717302063451740792902663727411709134284189956843670727800118112100237443354697829792285021778170416845703357174335201470554629673902784412020959850185781269279571273693329057853433964281745651651293775361033929768996623516099473491285631224979334125631498580665383145397983338056438793269875270830852117518085266247570462511487631269509746748273223063363863810498293706450864484386080713981474064460240680558591104012627269197750536077734433079583093038897417722931983241453241366556722889540429675297614958399770289345895543477646569945776219179213968340414815593891195692331332447179080174624181852668574205105889871085900376325554345959593693462422898545157199466717110441314796231073744564663595680390133701314141531090133524263035606606415934735408573647471256761102537812440517339913799878026413169698937403991492039472560139627478786961977531575831589714601274076853681513081631856295466977628383021420233400805079935942109370011558193685928556372312534705568996812954879459584829891215032469529484259336528831713891006298395632446629196619907609428054355239244697830431480377341049133465177395857835975364532738195966427887320912235649416598597884272014287065056595139936700660233278435026883684705010168482598712021975987872781048004105016996043824465099950833369473004815641059741785414275136436350322012312974118405289406689235694308661659833515423559090516201097371550792335225548979548376945010760818826713759801269892543605788809829553680300825593063440197330297182953171160275332098051173141120262717308196865048757210878150318261807109331076842342094866705337046335291517497652833295352308830368301997194860268187561357914842964756875417550273848182822216102968392520115661888986519119825362857898692726290599306589131452178185288730782678105432755850549712688846700230156800848236071260179175794575781030708634429617070445675763714237792676548794382832882189252150732875073219581554763564477228067745725391769255723574802680262738991181187965712632415871221824019265286427347282691937839388804886299744054164870058691057087654379822325656707900617774736155771443860886998945653773850042854101274704822705346064047768489631983880379050613975280337477650563420331741047148300527584776723527463452193022057125192307099496603916362554122758041739220935332391298930414211593746789293582303150478749136074444409598237175250891156544067242105721320490220569108540044665522865428112733595467909811307010121587531785450392278050367447706421903079656026365276506746198461500097698314750036034236572304334092877880921111160480531109988250804259150226715666210584866306164044928354979910621700601902095373982100456976053126075028967625905994015991174417501035035644904842521261809577363135597492899485307222508254763694947986840822286700708828494203029397679214722628329890193368243486036663586444843752738280148470923907507480768480320478359178765240839888080726128573789094202438314361705385903703598552667711034022396139586594587796872404808223033952490054095917893758096828882104159722455296799946859425671414944999665161553585243707161553606379463631024697496592181303357442862080649800740799061476683092440043155468256649857243126345975452781697181050223926978608731006986034431592578238265706460468163881119419893016475190525598282292243580026211381309216966528142791045961125980699210854909889151186008518900533776407693665159260845913490288030242722786338117718704299298153303099736010826561337906112539543566035222341999485586135671168612577521045112261685835160546778618308939851345400554432925345362078453059438339370455733531933999742975614247343886670313377190496306718467200607562635222360233181125249036076368179668665883128376933236730902535636921265832738169598683461575322576539209017513119231294347396226274012726458698203027507854666811238613299477429384386501222885445533633654378528041839604034737690562146575557208707768857337758918979672675076320707158740666802156591624448133825812955453612937511403188322402505210539498248588875047261009534446120527055940236971543583940793852761106865352685692765502590886833406157926522774117963445233067451811337246532349180642530917057071773852446871532102694163938950691614612256758952494622540693179551700900968599732319253347261549496190714759697720678837698211813083615517383930009239856309225299432135752601489723511780108414639304731933772017146535990903912344605884121145407245345829994408434462668179194806847197619283477129948897580807692312563014167850132208869839563330291867375005975348763599784377687487102415987148962451682502588267887900252239170489930544523496413160437279740099169904141187164705147680256215371343434888030674957564880373069544640331537918031397870728099104945751245153040344105054077702890211704499043540471949579645921257674277555326015046717768278128910774418190509626706360268390423297409004252421640188682573480046715405081349609347279777913113317434247227739513255422991652427492956532995176869345011400367892205809095078586529779152152073303874093866967049420449091133372450265858588568157372682947890830746761081789404164129533435617888421033397587407488428973773452156569742792140391671034968369112875955711669677582037545496369754315403998966505842192996981927354517236902247919742508631721355793045798557808539299523331714035574138013386500027608298778407389461474068295914500985260330237379328717427409566372442426620243048784932223788667218123483515683568736420936500302694407569748521814382402675700965483178397896371816458415222151489909766680625041607328047973928129301001681874588683625097378718551205138664327143885673594633223078743808782743436447329825905329656494719228720254378089161824687603323281354947243537527362195674809021058012976819974751362759742520706247053622172203063902766297790305384414808603267260907483370415619667522063437485479404134811341440393256035465886574418109407254508019125194515982271252342041490248767141715803171884701282774513379427862665134727398377973523748926263066056363357154181857346724149247053148498231968141023830908620899325595590097768453183610779585748777326805985729167693004223547991616654499152659709160226552598428124890558917433026377217159852469367088251402547462497411527609568644706639521990676859413580247367986513217548638617091162752867516605990788329359985907163505702197211001535918079022701558495327572692863712482073577835788545092370646037900159068925984629490872558405024373017104965192338499925795576198783021903373743662578830064554086396659396526565523843615074121728263987389079839578343835920996425997505734968100313820811014397488902260166552609324367946541908251248061817063621315576398954865838141138201162705792787997899813733093855101470177255769117081050202789560873677697340501021359278541067416228219863234312606159417269568789840365127088433221124759827806472005900297094430093810654536684738915465885487255290126462682792193671712264658574806022466978648524880761400699555200314191378685407791661117747518430829061251171967564781722491200796373860212247148039667095738848322281337225364310383680305509432421428774632897352465734447563710301837096936633954530554419137381732432317300980973688641097760976328376526872578098529914622538104825186392372171662701069703425140682365730757270524452732136585892787880953922423456689151860285394569873743125723517678463647176717747423251291893313045616158253099294732335265681976336313376967657160157419587872479079884331234086716215976788400124560355584219966647287530324936379935879680211196941495268511891020425928935078830396673121450070449075088627797371122417190476653702189855013249371768222103353329827951563704744937882976591735734388644387736660694613931909072842387177084904785778288448190728012356475314324822815714499723117517011372428050395501045239941537606705597616839331841343087692435909878883481470479601748814730016852487022647021003236260023942574338385535739913133849616537132148669297387644251178277813386300654380982387864178802211084583941883538910983501983561703185958499898121327653047759975185739491223411102051053236825263242790651818057729399227747325543866107522868988620985378652448395461869462033321033470688894509995287810772959861434348401104879418380387509495906543867656031718428236203617338040788063088689786080803604301444841787989822638503397248319407107468484203970902728099878083137771969164662724608742033684233721177561747622355080183212915064494455883516025070011464477023289837741679417157674715792576283990354287230113346501245526154278998446897826261073566172226656569416797826805852327082443851842946015923591111035747611449491069797539289444379018203556894324450051900751491141153580843189202445322939291758051150120408328912548319131619470885650080602399981228408050338105750220646288436290032517918390865641019584178099128107045364550851005712537314174966872815186204820982487615675744249438049961247090518593369852055998375960691201355775338425934881434516444888324008300082396674271439477829658396878365633453340765037009457414288176238620331417704361095318557695052956683936894740960935967771328372919597491354151513570964859349551864441876478095309324238926296528096914099963767640079378051468364495460327102044358226018123572392936314447849919867795144189034151947634211057653851240510563492254983477065522839306004299807194806896653835870801113507905374422674931598245958111946854006352189076991273634078147235769804833686794809824084119043021708355107091979668207697235059581245013917603075318171633884283278995175764897984648215764440502978872940692670718439163979419161363903160614206987699122994910970344686820303151320182684877546773268676385506095941476598907917824288962272256679945830850620901968783063363040522676193529985560885905826299964907194506181609299904859383628078937962454225123579465396046724050752273552674386499012602379478346075580955270584823550044373844609826480035810434416192786450146333800114926228242783621943617002507895635815983809557257158263509228171020030263797451167195886976044656922559125230031094396798263994162213558872172653477618211424214463909866108955882535146136359309012074912057051667768881171505137890539585557663090034094689806064327994123356708772221019909351133005957349960243740497800726029842412451381765605349714036538339630636669676667324865176978558148469284521978368118602426758190462408118709114153331007826208574488933324921529639238635556534755138777785750645340373808407045032505059352711263116594202274213294635464808238694717863583459584416783050782707115660046534149004679046369807142047100604924743327812523559364887821898781799799638968340301085167927513545287234489243061044503013658063134518360188952396449902751323354785178945790598767659310245621077719604351538090699001793032291489460163781936517422876259954768599985408443559478714461898645512208626458498804581464814706187309905103941614947811695543991581690291651799508022174743005701063920621257203752444478606001062606463802050045731498097387268212036955808294161087156957585818446472490325993685725188037771566464730951465411885675339645905100699077825226610902010077470854626885699662137853754904948991774229804821559209949817993219434520869538254726966833013778644531706386604859859976462476296479842886519075889264999279352215990109150561475733871412512349563397034404872433086469141629946553915666455661894890077650743123869725288888426780114308257820539687839351438688903130663442754536528756244423785809728969670383625085307934383013257760360052338070610234088110782592627142503261879542551177060741896104893287506845518515717539187405883019112010687285489625936007598071900931809248937883754312889427106860440631473576744945095001564839419578229550679439873547844433102979892032606792694433432355642846903376760135934654404546351801636068404666129868817731370033671456708394999106075354140043363153973744980938730038383990180160605806200634627917434384782736269498262452811326625397347718640537209297589842608279695115959196521664289367542444402710159285173082098658902256516823226437245162029893052503180644464588049937770500753014334491027709300068093233120090562716483297434845212165712902410932998443522073109116036012848273309955836979995961886282914381025735830879987378517558899525300780489502329730456493872120610359777883469891344549186194904229675773975146328486615612654993583242090429217813351077530117933879824903172353113031647600137113747342004691919746838629089384814565199260779476813886779727463591363198339491826900531207061768814987524892787263914915683533477906139090044302952627342173963481429374869789227553057732909813202139321350085421265612458770295675190282364571205718074971809788353285215353022864941407772761075867151462952726543431689711951187484070297110101360392108054077997216036136038750526710127017542414912225740368834617340911758889141811507566358683957514541143953012394249787471378152799109096540471333775010583095837748528453255550732194590885117834002281866699416070278303066155392075164134321170343494440815657704519438620221669677502239162391586187019042009627384052490518594593900746236703125085067483456767744374880927574681022497438625809419881960203152861278709256754072547695018405640557241789526018158518852994971122803641493887088987067220966380624857904253250847597019337438615929966306018016083624463515901349501053203849612345138835638076606782632381929846103888411172932659620472515081883582285080206734964976501474635397229014244393404816878525567565983476348708446941661959733846492370215695783334651754641039283366130855971206256451435812602169971235160877898824126958073028916223709961084972956444805498185480695817853580097744907835054468358856430854339083154193514993726733273327824135516817965558222431341022187103335273046343242332793468359466663502382204347992793672653013353287277797940558893025924937217159087754262186154685738104906656534584385272809270810230780539541976621813106903084485758863310197715848911512250271469824528231958263797652453090848811659795603490756994680754040047167532514260993928338037444924421369671624196970720948971603712527755114871779680697606910567454745912199037469331209624366011298364022296790781452249052537874425668015256238429027151076471742619992899896349490028058963637613006127597815506625434539176894733986260793364333932517136610323511341033191353306003709858056104769904106024106855036352217081853093446140975679175797040940131571373855814684674698861111148799578856584985604140543928625790885170036738423572359972502647268978240896123903381267678318577447330635895359612244220915584875619513491708443037716038811708917319938101411612402246138397167149863618935727288719044859552820545650806030940224020781369840126318856596393493991209823522663425669358383324615972588587917522447409495343505992121682407834254773699560055922743987206541749946142179853881137087574023601182011323113018433011502592312017236805712001646007802764697213609833470648552639100066146429380056897242300294941874646840825036775452692529698722416754830776499596580175177260819105458350490795098954830760973916578483516079656515486484232321636340748326366908579714238624386201528106384258533486714875072564274831077513370971686189247645854308769625721294913622140709000093970511521698003372800657351387720474422489810581044368939748567833527307059734298097721693307560401011075749897863427106897780799348037098087218701989656908578492281759771641591425592157858333047807157173081234488948986349289512006815955166053150626720937249845549954696814504209923840048633616526109092637661479680867423513779511316355172472152148579535953521378140471131489479449255447559486100480077091706617346516614564988308171502847640830159348058897678282441883984130893575066148387657443048572327721924427468642266296866035700578132792184194067991724336463144846079906922462618268889230232798133998887584909296256371289493769932510185824831571033220648682461079179075245375446423236527292103064613893651617347363059378879642561517276294914439863152806980402602306425604051725807487818816764735353135861657166557458550116937459520211678291236536981806007487164879895713414755069544636839870058525687174432253485515391774613170985055444359652765557843562333861223059241788763827733281030616534914522661983169187063325051907880627839361820449910992421175357332987295354580219792514713978681452346233797865704721007931839512883130805817179720262635133801482071275525958008828236003910559502050721584119213355665171091383442103223928100920512061088051106905682236812668901130755683486943025160730700839900027899995400925122170914859458049035648829614624468948413374484173752457532723526753515579861840206641136263642244974159354354032644751719699499792275884406651492034425343741139171456085646001981580039842146494035875066475404155686047783831304421216652570234506502293340300692060514299955754490261114608172896806828997992667594160802607690699778821809527439478058918465741937202783045946655445911251159560996547788097065803381071988941576639757241754103774912353158090142936992307377021679476520532177897406819299367669352292571179021144287818257430265433731825263084404737287847856322422222462820822687474181955487504833089265783529924981292696962962334388887248348452767331290141004035966459942875444288882108432001206989103279445730084854164730648635516841383429046368372991386311565002307939283168558034214561988645480858475717474832049494817997132937573539190420316857811730842924737717052797961274544863738111697535603833614595182136752414980129671660664780048688459836682305477181299813030214165510238063725868665244650948120470605365688750629462363218640897381629732125622395128954351936573556163576390587978830895127189154719928867398144804365184548245492302094540592090076827357364329806871309477845485853264160222482977522122147436640655886162122064302113852628898835804360518626719698184919752223618036413832591374497103489268602700583886719320000962671593530845991870815420113473552173292782577753743679447051054421500402629801313906954881927256505225408216549383454886066493731169383491386867438932418659092225226826010644373826388147584909987285267000488206885240151088473327578630489927105864660591042110800239083573731437528001941378957207763317665388768397755141238709439193266711798242320842124205056009994434817503127588415026216719485046737793322304530586368724892537092071751777727988362274037501197520808133445047395403226352668658223870376046575201628928740056915507672719660414824061094398769290395192070120643995504999000880757366806539670918723295665816865127893718320969278790197555754078896916100956338284138231794236724905062783525658603375521427210458225282126954913856906996515434900739021119231880865399176908319248404022499400922662174872147756170792670208693463442237600556147398959299271525361530305435835231261746631483120452439866933694611199370190617049021313778505973607044921753743783362937325834553492661724961152929116011990963086065736563178658391513457716098843890270015170890786517823669647837491473819977047748676457079502938465904144558726942034256268271495931808256604717197663810201505645405187035347303197809614181613555727116186895134757137450042988441133904843608022865749453665521091581035580425175863903657452925272195794987640161733251292296991724780898712994294376403372044011623563011619026479653503561722523977692090930352459319980015948486159413240783408311570169935488337667777608056242851596810198443461805007432499605945126961471707801691151199955828803883207601597902156705398999724873421854832482656788163414424217646968050258489880434279238557780259656027088445334810083036059773621088666327436951057802151935165520585501017403287890347423494919949999666127775034879330392506307421303852691877310362360374211069525618749701545506638720913379378632991217912166446902530428883633976731237262062072826422755245698046534455708887203130762745611861399211619533814694144480051803566894607965390922273074723334439316174751084861400508973790494888689493622248408067237396640311687026785655821622321347110592110489180951867679682528099260385579959340438261438227491769755734487213309867552756314813190415301485818060887244221767479375739513710122615960413224266421005547426713522296536242039063858220314566959508530415751468732014222527782599488696426126125801301952936527877929674747787908090003822710403786086427617116988333194264186372502335521151956466100466739668971215670958524641830845028713013942524500016489423605453090443218141023938420817375555960452730749355566277775388891517033642571169150940435063117885210883129920648653204770229721840341084344908599284924536277093256909020186807565846269271420549123592430671232781104431657164517286034365612186581764996469277192205496163098061004700560154695372718619600675739280524125023171410351676794855388715614954793214997457856694941811004440027490111931040838150965047722434524184282949456234357986260912447084319311676264751313162069829927937415842741439302833081359342098539233183129909048505934962878597141369428493376782747994204715615004027975368067498283084553763245639283864702725455275240465800277752802531244448286888968512190939518197425791304725242803345864438994830480797310035388714686828540108084962712149846178310931065349325352877829474209083562006135308017435865753855193341382099601138507619345280388166932200495021659629755749022511397945871940730307950996007523381001913957412947013824916754219412436204133553691305522579656743833725021375013027026739285080335052137503492124164859104377598881572352940938459414206004677142909655395294991856204277961889341631976295919609742110187433162687292308523899166205610983197042502573924956544403008424884566441211383469049064995781152469574524718641812836993929645642796598353161371995886776130834667137043520414172701431360153767801466182740774453117021381251242864157992910248329326977227029577907167232510740249419872974245564315302823628011255731326914672207225570191306011857065472963084869601776065449714625268381434836214783860477888737136322122548504580048595529232467645383481093669379332885708579858241849267043339389037648202449637104713115545844508749441357066869571085201924308486872288050842896501421846570998006472651060651917010654248970211140712294502996499053591567951913170694018285800396703879814570203060508577242449327858093076887265037458175487833884680032794221068656977935802997246121973652276721951884306272981957005866706488392146897633886899300657955551135612093276333281465250789020536283117151280612926662737164179526849147188326461485272016456457666227301561269496558223106138428144765563237040450392463960417385796375470389705686483885205460262917471668897548123339022579318453995721208975678674004101909842020784408948474797519100766522004550481405164904036710085655326173418205089974127625819572445940513726044817121813736850234762652993297914488629746964073530877636532040311768465963849895099635301041987481062185949359623572290400746667907828015837859988286600449280469841510855987101489936071440003601188314344469502109407174640216941242497066549243147212727855473836429789184381126140876816916673031516866244567146050637979243476381680476328567253865914567809366901907508382297236224638014215934212202181590074800288720072900104997442292137799898442644845554179837011876922706637115305223769481672156973193738906178479047417130659087785022216163206569287567033787864814576935443129260581244920877130226801711909551382370568758453186046877940837631725648368774823634609781929768290754085842600877306976925199070231168783635420767191870603808463524558408886559987748224395168694415361204855328702115794928316445036894354065326305129724877264240261617383529227313854851051375155001004355680436876289242841872297285227902950835072268912322644998461491638030758864908200751895038923915793455796054885046788475230564881398753442740586393892038053272899208867450259007957350651480091659536195463691340968860522637302738709705677500612699439678068351820593064834904141864846726197185260033858882716208460657749257370351604640142823338826597254528653518558920301489958398238337319539460386289981609889830705685020465830532578313684823597650360982866460262194329868739911444669803826229471591819385645031860714601441758098083555182462726198896410822074232005920827565205342950869395460053405068431835944271672650344608913580801643277979052918278751120709095177840333588113908198043847388450345564488416029809099937172151086642668142539540195542365499447348157807555570147867693021324558401056507280345057238297655232177471807344369222506107874655751387116765625330156851709950935901651520854301784361903861956502524272648333662566000138408068310825519622583438590573472701713058118660873731718802635413065194382889401946043023113652541717170299266564801426552337120673743166164854252208212326598385360896118068965899498847593690776340720908874826114740600168915424604441656610729896114786427800428258638757679150907582016192920182976951209035817560181410936954756169225419220389023634635181798295952339230505400097705464879487846636231848929429466268709136634499652143588150488874757197622619677044951583529213932235975736118593284605699387862456518078654285554168846199698413914250200317818260315372379007840908034676210206676481152463136777705241803441198370260000204419358426546544486751007701698866978049182489202551302364436957406996654885189751168976215383314601306768897175632858548335304163581323579482642566272605880715897313834347439639725259024458018920796109596020298380205001911539291450529461230380545190768478757072652017018279345892548809771595248175793115691952542572079357776497855791119522349052048619276751849730999754347183223557413023568112114574896220079157117164631732077365322714779992608408688580089179169948902047010109258714060382871946813473040264974274148021402047324159054834745487644037042004292569074815162679118483121100535219058026975927291303443224078338417153096011797144197393689782751192328487089449308097737943607023376779475570229547236363650862829674736828832687257014686698904612838280091296936554091846685981602975336766377045763918719889687273619159869773056184865233741319767145996095317118666506997505689109385751708551568749043616978457273729431118311167000613291873765519665436501083666371379625552313686655504280127332088110814277099256699685597797423579087908073671149722659595689263804626053914698007106305109697689001308738140898921507845589642252391358647099626914985689588024169898238711432202330382774033864832993721269445346370925945000678774899359912546103075853771698402558448235170289962422599087721515640175254170837142031291159251308133343428133931370358245767224312076073632649650356294349843774430437444240729721939292620747691855600057536264225588994451370767268750829395394838810394289304140386082438811377785722216416021768311922469466395892032786311090658311310408738013526772448623706490473717976879074634337701577390925393961034985977800318995884346900273742106228898735856089539330419905746800822261011389592478906336365714646866411816797037285884018279788852587590958006186464174246906597474231740549088636167314350031201734348432179243024540917420624097023266443373216355472735155950997821008736661001561225734283208787954363316000217597921695552792441724937618721325988906842334110216708865237041702507000138018435602092326488475349402829737623287823583875502024565903836896559052229571917159585680840066678397549664999328247670613530388905006522234469779201775226005781246662968462732529630726980551694455626030775035582618676213051645317289738265999201167761123788844614998927345979385261586389302832759814697985461078865505916791941465569015170744642537158709484637241767716654550068695487791290027802159379753947661502252930678230459078754041861718729876880608920219077746441425129961888795671031472010248315131329951745547853754741960351939313058429737869650559117619913710815913409915226547180756356723881464331975168960280918830011314180912249838267815274391108640981553211059988465885968504385573496575942284453701040293775557932415371057455328733858802999427158353225999001153212443455217405357609003153561071661993814513112838955078162029231566947122235264458136433913620075511954717349214424224007600323916776094775396167993417140395645022581994613195955631682214742102195669519665558896447815191884051756029911001023310619175732352997666896808856586492115994211742711597042186215511631603158695059601568301379046708047407829182500437524740200358430392787721706435724175926477048665698262683218688568380473961265772401658019732716257031290748305586423317146534957941122989250672485808709912517902848183922184682581508495450200472358781760245914013397708940472757873336996659803746029871022948312409413854469779842496661739025923297873496519876937251257316528949677195456706608816378726071354338913228172830927777586151155208092846209738089100828374404657429842062320605558320153148154151367929009143714713431714832253568167573132416827441697477149218515349730970105459874838816306224393439830541761672078252484049153028874289340922458543522017065810906625841989646633945321335358641157996826286079699470623471060998528089684551177521990897553119091158792132627067851415745297042044830290230958859154088708441719781004732734938795542052744059908067531374894594317908263823861213664590428205617648615862291773391487045429910267877633461297114363802031095136918748187725837491599998510547192539121788862718407088437957604687204807657620341278857513149759297034146264831813165652548229517689342538557637384051609348459719256630201020497579564365960598289902490954359822451676017869948385085128493167921564726869816134486901068144262398663144013528182581910569579256109724540439642874158062245234087896875933782914742797676669833437017970947622614589059026578335235200906937681750301677676288961763170537175682042632982842801108927345525198507297699963735173948539193180362128348412918549842631790653919574822635677992461245799273037182648685359607062412298934046398387582428368881559039918273629099264309976439993847607161470352168320377460572367302009140402573247955542820008368579967891691856587695347264320603342338530462903564288353564657426757238351477473234636868945987373473663636606764077639677379391866267106870474538150614632489796306102500796381225285466401232816300220834086531791062275768255029540515422694245323274658857658097378646161737995761986040283184534361537634079042146936522081744617157272931854804027179975864619949665405331313045078918931060753697494398648004468211728776489046420513613604550630492799899182487864675036614506659910951644461311125321388149036685554334129823050210582338120017549591777499946518736211300507224918640853596937355090142124491843500882462426838738540061984624562587500416109525734158376989329919947897592284567564800519155891731416005073401057644528525351719826029509729738935523687788018349496085124243874302551396649228375338052095993171395629145604688793809395832403784780394618236246776094152560349373294707337091285157560410099767393367323472798421008760189888844421764637481687923622353067421751352919377227700461336313809638065848461946228235021902282986062146636545354707348141164447877820460208087083831407641049491096811694330465263443665687030541223691898921972522134794965187730154733863841922112457194304222567674113568656303108861882911063669915119520646401600038629393471697307061815872585673027536890549300667215317905395760387399170499829850642965542547670614416932266661346587647199428873111238645347204689729995424346837002780066575265551479714884842625564086601780012922384158230823195173629125031902021346370799304608395802193484051503959147051378097880174489439555368528954677457852761679528327779880720013882063470771196589373697414977470802710779011979435383679263283392793529623699823279465623549508530033969563519128812020653258233776870964454773095366320711644496773438964448632301414443113355634358402096728453848223765055491741824373667818595007229602011793397593796528633120324071940273812104672658894199090300943357494152460524478974639321471810855751993015647229985741631209767003726447635557213856405551039552257910821941077974066925503894704263742961069441095170200904417114894733348768288074635211537773627441011976647852542144223120435155611319597184811008900931596831026512154521408121399876632100172728009062675991208958565988509426367271309739720592572232014715541936553144265644980403095627318864440947688007324219189766066798873136486133162908816418756944651407872010352958960743395617833725647525685837902376811150487634841610264948087124184842858727476158141342837657971874663148075803804926892132108840703638763928382498261462027181651471579669278942487072112525939797024246659469828582534141186016491935281608856919211760603794138921242221511186750565572457882417909956537843973888537626063260136018226378320802696076344784571698943557730808720415843006391604087399516474371975686831041026441345632018243411181345210065030177752622328217125629465528325602938874622958572488553952404545279374962225163059534703628162895063880647380791070399643402411936969259589530830007383057254418202046041649578867751649891866362279797681024167786287700451640239369254082078066027050851441519288372673870590811353601995946322697487272996517686049107136035583754216862755078846946477419043317157404562578677637793127178799075854701628637111225421546810832783230464605682752428603755047736358593183843272908052270349104428784905540099522467826486233933343606225974349062397364182363545967722051836859459805457167627652984493479189912062851074153197297686363007355566162450842510222820360802275497071560127845012707625659205340519142899307511055219706475991356410003200939693999823524930299110346489870033315793888656499226818350754101857573205877318386274899292434197130178277501702991934032148501235366206747205239082776376209847244033724764237066685668570117895703632986185762073738311979214334858532001101163222740187328607694832823757828494880976087733004287190783340873532006449665644350996721956932594163123257833604132969294043523587751576103011748153644075031847188286945484375410907547334412081535724991003723049575809424386375975990867476302074518758600144627341222955383762934302611080702587693206092681012563530220080405323743720937501131544907082579697000488145542140244884272176513164880826247694280242711832272502098717159256193636061627622040432246786217335337574482060742874599751294866921448337063861797936800887718223575660336039152105319807482230966178614373675336962075119042367111889182363467938871585152779679457846443795160081635459576256150631953570898873886741185381345702608896029022042295136240347963337105885731656699857290157728345534861124304899290557366438301221497678201979793436367870074672857353518697466920008086718684889480188949866141482969614168718982985717458088503699912146380050550155927750053394213781900921627766431895918853458468610970249199227298438629843301155994076099744950276265519838436932410520157200680138770951268545874114475934091927142786392506563073090106912316855576885517252003159429968392603983581361558084523888566815886401913724823003313887257472487527434595847857574120364032792095256266147888349970619024028297927157704125125277473565298886560591798277272769682162135305064994730005887040310918149390665458349091342593067078427649476066941360136008630043403475943687570523088403966688973375584450660385599747576663179294822396216773756860557152691559643030085930867820193479838735090638893746604340536196960992962986025665071263725533243377656943253145938656667336059307024877865526091442564445499924638932300835078114594779169579697907425447024975499152971830940874957835785089649457224787452224066652741169657046233525661466531122969299111965528652723474477497474305357022734941288823727869474855264674910714855387076798399476557237620677660411597384412895377925539293128937282955278004154230754714355770232056733500514858473849283849901064551316101658227839615337136264030672900779566189238719905151102372009333299043943416911333422419895028188020867834137033651123953722065734901807445192724943323282098824506150878935214134634105220962485523250997852446401567521937790114111751528036211093826446348100174638442210985227624364485937185572372786768138721467953027623979421733141288033527347856761691468229585044526458785229650373587646920079033087340948838159461179952808907975660624636825736889404430077501544853348667210036128192316097284625907079969461336611063141232916028431611858699361492313449889155602242164593210121652583131226960637842169823974864756134527675542824204801263397108369255452932297192987524512828273210217981894092612580604288859800896346848537846296677331875409870693117988940801982430539892582189299854573165734915251751059607529203001662349626262978697570266561151262703381056219285286406715552435434618596264973362487219791439071220534389783013999661476128597087939294293071727966869781827010213889846046345876233404128211848767757782260152811346193767972567048335268124433472821814156794183280099529589259590545054262907176561755801538701965069801101419674855634376801291718663102420381262815605821965269992798662469586740841208712240382438217913156991885969182892840505297254940996297131404584028822924683190681687525810200408856407394697308147395886575259292185611522919841039273126919535353976205787530608264262151406414714953456235501083431302540306094596485096737740396069601958996395636650238763848420241475916691708188641047218304085754579654162548605432056884301317158524099485136616399548855360102815925275056962230986937773170235440247419139881255272275432915529278792466535435969500920891049822590829158190473777353786026156234548320909693006322796152660870827147767311980888546122025724915607202306975445244961656589571765773336510306942729807311827538247473643902342817979319646265644299244650713400776312993581524330560596340907928622353140160560415778729153933281560378730457688247123696459843009096484428199448817648407411883975865162915674254269511856706965420316144707033174963815205604739102168727304405633670099861508174220423437629801759021216851819817862230561387893074839256879360363996440357540797097979182923638508692522942411506506335823538905576272339370309980234621802634103370911510659659695806253120926421978037706940178054847774938863147728592108231902377409347463444960092388620360672566980407262406659698689590829724968252979445343043396811586435548504835646621610889201866834947146288819146449330249281174786515652460027297984229472271222346243988534950217418416838560878345120636124068121274606180900569027625592127489873926074818288723255178636921461240898403161756905035593997494113247893231363577742533962888840851714914836896052340874294372715464785473432447217679748986464384924414147419693754127042028260412837639969374945290909828244674252324608182695626954950372115552432001081677833511397793907128645015228934865808675678369378340449081268238177349440565304599715519588895420759992118855262085429528660620737250790609438519258825620032527746234119465249137780256680430991784180155381301252530377828798507275394571149005181076862858554322778646841198810528600095213700992851689865500296331391098660210370605066775463950450639042321496623738018137873735244996544868061251374240345342085175229613171313555998870682713633262291337540113034167051408604722732534486242046932764911704600055283104516371935821141837597191164234486309754937738539325421919329803098767884254284574142205527135999102581219539372431896464467406048356161049643064736170292023024709574733790038542304371207401378745304985317232553538091899803372812437994041221776852375267156744769010010727728146683904442258694038192296699415570553037690533228739125094415547462653702643686606531041620560346342665294608739433770343345800131916631584728008389778659308286488157042904722920143154184719355769276348033061639447387377089911195095848002275617207226315600549251649843521740491064101875448340461965634346152544609594803361112728548255509723691537624037462655458113465419168322977688632943926997691278424365397978382193852151573924697654005016407141946918595412728574844549204232096730454388015961312489839824675560067385850045893401253645135990398021155022490112417054285080314355970902659240966451956867520257157325228221445550586261681856937558253270782440823374969167329791941938789245393037173935358280585976039773178642481776721052834715918763277371652661156223353286905961983721074476922984515550444972693306511644518135724244553550834587137943883729959911923330485272531001109807711255039278977553099561681766834123578624008417236423541097894991294827144859178066236758101938057014406529673253547661881094696399345593007931168699416008913930447927089931817705068953064318530742827750822506226912099597515259575754293463745242966048497700675897563664445109006627343574735450155911969104074738207786850204629082471335626003395698673127507178943576136556913482944622718823957373979687828680589015102686744071056371763293935943961299267791063809119295601682564808839044342201626104238673640915594586985376811768364450469158994348415466008424830253841041003712128435645289874933533316383789530673990527575143076633242701070529265284178954172895882026638253938226811880408916862196139598850459469825552542247182048074691695710714429520452278148163800030683205217933585869808342673506912205467380745374109537460757746412952739789839482779232099186082203937851239448918753790801420155209062869857789347260504524372021314464863302902044411720713512395726619111535841289045934164960995594197739412249061878254506958060160037731966445388687947090057778525645358816179634575598843347363745715837670244997686824035750808938009689122976718310972121860281910434163021216217014315981839511041299242208509154709579595354601519741595817938466330176863132359019892942457570560854726807492786538728420069560786966576935330909970392608437251349665874375167193441038306548031571636058051949483353044169498536872986364425148508431165846934110822646714894095817775216797545176673832023430273179464570528860705805372763324016832969016309941602482392184550592815537080834398562652690319235428290707566179884981630630889561029064402475615975024770756721557160203240716007285188530911794538789150992159018083071495312155409110375419235558354831922331458455280078411399640129291043829974642432361476342856963935949227240693553261767096541142979831299267216622543410032547815047162733390808140813814651202617571442347668599151529228868448535114302672648900813744827173593606357008145210517970941804417131903776912547932021222596598215614998966861117859089995607748136471683365245368489026550397326104522239311453780194435942747878997958837302246240099474237014340483569781859459737538601394520855658755630611180266432520120203962706551239855035959506496550532652867640021353381946195695792465001664279463660854342372844396019280313976344881135289731440058782124791663884466350471142540034956403915965691367671732118470869285540473204198477827749956463374336087792165519162499426680612977637296226194424261967641406004936316849590400802806563519644714229050695894868464340925514997738154482005030387091681519093436230897343816087925269935841273003297059434935826290648304839986496773495358232810238418021240460770054772011372038921006364812626170297341906303461075904079407680219225154508874127001117867524799853707464002741039459222148652113927785700498465378974740561295900897733567428974657641476321253019570013201937028611949268250522963117800598708907225555902950285612638712282232618944099867553417967137664378939527190982794513707257755702885506328746559985268870815222145864832746139347170124738352086096517938581290189712019987594211983791477325961779655102624207336516515559704382696188551559390619956026216989016256889756307279598924099289369395383159562428805928157532610046555134607833687649897945051238015180299277709161436462005208096355788303909548491381839390750354038675675179616111441844565447886422461802027582283060895788655172665099204963450054474658632959044342989698435475391858051065597183740898626959350815325264246147550513888989410347310058889419933912772823150447348175231355639833345613157797550487223169813599730594171951812247526398071756622419000041730211812820683560898331792444083455851308123738189319249759652641545048427120942109815708818626623049455616059664077810537652680844408779925065940595375560449544534945244546130366818812905614464090957931240944770371349293331301838457935305844539960207342178315986340868588923577339830185949729361708180679674870430185252726426370860791110262462079819343235648536527479136355451673451219870803523943718123502769843314494580194699578883751284514757979633799465255711613222372040551609921322773237019700026439066824639623187400238451995092219539054988272037739054605538509266865241898940496591349510774355267867887035812699291004936744038959929675753156046058168693216619657932696643241714460735876265378647148666884096824367805319327307722245747314550954658804114920094872001814561661807510607257765632448374124837532617935210942162697632614686796023017521090661054989141574706720210221196577153579686943601072690182021664681175297244859439888385120668272232308492640124461559681948756356184372003361819280340407577098162119006249192202367831964089587572409168561154367748090540604668002718454039278045229173796803974609128207182094929557186545106432515877654906662108426083149605330040194551957106540439495661274307022475722154297839387196019671800466510319346673956731858546664982035334415299854395877013730460159173821143145606090949816272499330519821100333319816189867858606371543105129499577276011678218067663820809505478604768811777269372653870200561350250576317030329349095808586625933640328021161111113448010148917288870591172692810591065652272412238390771496367063497112778450262143881154406978618055104008925636176192451922718577429079236177553499449164930408251875175917286264618744482912254813575426934816992262004277239513582482584079657991400013519700777207769329139242823213401572249222097268962456557728468171638916035613715401895269525422341286580315642911542199491592467306716368234950874307248652569625479180947325898542118089919053435005175069087725330708322639373998592278045578650327477230818669941167151304284193185581834052364237646087583854315072120468706865730699077842391983199741275909526632432951913288603200552321680744741458130438004458450695907199338347705698698671818380109709966060259777874701528296780679501961356489718668957371128660654910914158075882856000766930201858792198655555422514699300516721561015213744147273762772222514009029042938945950389786541369807046212789665096074523656148889971966233929126517770335662314028241277992419961559112339700375550380231552977376334755613506415486084253197711782701439849157535582634708186905212119823920817830622568711231777181659593427131577627022985866268155608894926293955983648825501352022492273306272371291627098238044019603650360824783888953863700624188345596138063937915067327869029862943526748351401764589990633721523676835861087561914126312099717460972258371744827049721806365699323408041848571960773044854027467260502825176350179325742544437144185144498263182231218673432456366080547419310100042961872837859287427992912613960543577002714517334788511129832485747293612573706787986457971994775340884798325686466082197426376737553890147772741787254632933623785348858902107541211830095135538398781580015303648760459563034981323292224270755450289837440184711475211770463857954866269669172598141062137183465934430652781259483016679893854335928819432813388862974918314483106222238787293153747417447944600916224546711063119133332195814804015994608510980548690709457983337126919262264698684787465418884211150054827508406041247225980244912615405989723976921219877558294783872028536838183927888742447068852915284001355645416603548415633493777654531523504496059859302987268614539564940765707262060378076305429431128952322161903642137679771552443200912397904017518491544815652385076563147017607166869181292900368696440239768440570572201660345521093023772856652978573762729199306115446542171853767072418851211404868472115969073089835729303370479104400553850473609282586992151040398245784561914401170897047099262282257067903015547324510592437065797684925961552125363982214468604339020287919354180781792040677603072297998156797891939674686788206360802442621983522022954761280775826198630542067712122940652709054205874597179229432156683874665607746049900459794154867772601763746803599417138219255875664281582770632136469783798158894514701610110427804533701748152998222459024194375911127298564059423797793777505958376066490190199478225781091468740241667289728540379364230721916783343063992301470472545790537396961586401779390454594509678553376739709721181559281411765179978645627005279833978778545571836127193676200641280661400934021610093547531727234190105925523094162362726407035366459238916371484416389552651017158251170434237840722493541220703951615802429177006234765463565357954253837009827459531545997160628683964375031320363055132958414955374669321428447113878219413585421650986115109916822984647992206446164622052863274142453416435258144162384936065466730130613287234645448575857516711171607167668555424743695315483863384724580499387204924463767715543503128776635304763243032412936281939924022525155616411869198450258177186808935140030557028155886660035374095747211575197227031850813251415773653076158814683616890268336247006815705168942225541568466289519596317928062260018496404348347419971590224675676714457431060661805578593659939640692121506826211347427402333713909438768580332559661649911151656105192467428658373860051141426877278802079825021882108483477340817406406592484317505680399840141438974057048027323115037156559481861378510089458450589760550245824813651253002685711518155057648738054007174627337644092812410088783405068953077280222483335787570698487901895046640968957823449527510635324232318621571437604209975410761024468529217094677689731380913358526031193976833944443604111132533150414044538678409782449033161133917662398913994734993472490841043970670371506228636845575537269599084535333194279131224081129651015110920544382428187063756591579258274352714527289063682282599808262846976952850802976644935586546699789671085468082046662711947854963441873911671735569730866740821677905847292216665590121438008132580394513491405610423561483871524386317010016042327362856963257824658749570231200839842799367719693204941485580053587587937855715423551521234470340409070426916435354689179088371362635444448148612199955138225605159816315802477565078015802407765454376600700745604402999759880715129322884075510429374982973511593299154770057656714930555919912335826700576135973052083108780346934459506784806599241521848676627587782977808606586482941787607030921298739678376714641188793816478542834302899115387976416967174832052376519149397326925300796487254192637186788887679408351080169628566608941651894287917177307392069396256810117621748531667918995446444346496689380628025694357566134812696803382513343833668640283331748468873638393874671708788286671408199677494061144985257784708231125944980691160557301130826326548662198801595333187190444978034685117925917129984302756339372709374416226780798114295314217190809694083301286712213065347261879305791232150180021609875287692501442280285224359246833172647836204585541863278538835941967459782690029682033380842201690240773917300287810513021737054912906154067486398013851709548960049669942458563182456088137026921818508535398098096224934048106710506590036986978392914503060448050378387871080303795425093993416412026441313506378601489904989823739061445601505760864059825712847475281084645915099820573001085676601671413564777287326795471728423133942287279651319097363938710630531841493467405215625311885662903700565413086984905867588271934618924741018295347332496285921236383353739195751196857361579814494368686554499095715535415233733059941316826883981633345125407751299748656715445705575805226831879065647697701797789566352125703237545129294915169497797839502920022891190777246877665998468591126926883053978981602209367887368053044942339867400436858764854176450730866574360347262270950709218105840929511466918230033911161556777681318613033744689930666055022620157238353343148895831032739438760339234118577258078433659818495833730685764335411495837311389178702844809773965395517065435067261642333838516917528002212801560045998647331308927750795807693782549125808453246188120516205451225720298224425553733607967970267324309811587256621345687702308222198749850703177116019508929211974450396861916264327767349191075310855542079671440544808461896656127349584349713783701217986916339219298043845517049320376827990298441260027646405159902429206241747401573790140953865607125189701737544977302343943976274334221996283173585677170858623955381997546116056767824033198860895245379129685166836787673751501366433067659620094566799057192998516551262193069097172566887928739469467968593835051765818344722208269265416293905277690496240141041499338413830065757381278548553380014551505394778210960093828508663666017068104610421382374825551090842889338920713938503827613740360280421328031407829414107471479055968112430651623697716856404611011045835113266083053435251872540668757982007115909592436817781059625345099635109677924684589850994037300799627718364697090342793876348892110598491353608518744761952969397708623451924200579823696688309236916975475850321512587696943294541585229649697846572380059102844726792920090910116409905337773613725201919108724258547019338745319563859040071676357077417704586042029174217771219067535276452774123525094085749014534922620782414335106261639022366860311047255508190233709727974692324858124697240560222462264116103387332162484284922778738679129928235650449551385705600776700817836901619473957837878864486103447925806980566950447867314948377744503601636434897290658853472240316458741153617132665995278667138110626585426335836035422869361230766075685078018631648603909648809707183490013404803827655028478774208579564362384215326174833382315326252965610771334463054948907686362782260106060433404630605191512677035906832635202061178509140780519107105107940814288420855901882471106676013701131185686993338326325461090062715715428652080919375112511298358589440627504551488672969834833088635210885350454313560213102291245661550005741084461192589037844916467932607788039589331331660967641215059462268613319753042169427633951579261110838052671369975227121572168337387650125672125744693957334911852945037454455241663923733220838138756472198844835392516272809925403721452875236363480234241522397552531903231974503570501624947930194333763763218334050601000908933929279181786297225970981839400042217312349366211895284058309034355053030105441963206643487488602319038375627946361863259147764834122355317626887263971178647839207279408676580598623124236454462625550184262050933442147840027904204968223698580759088384449133570615005221737876181191530767692681514150481678508467553492117114608553783083222296171848613688991122820534302716892068660111763533268696908510987512140580060866598106225685959249668021932847956997078690884595860863751699901344348317357705619783598750739879380093426477318194343793188730639320588032419249751677730843921209827521603339789724960950497033649797612071219564932907616572602172207189992367015255811429152595662552092812396493709786826434822731265040476968983214321200068009327558378089537957248654410288485904712805065533365802134732589189687020048511581085549241702080685130072890168801591880127570652147781951911190251152330790333370563429396742399885936316705136136689363487214248288565984383113626469857494635947249859042819635641888117121200059789864241992468092902523695962511575916384569491440142763054023121575239687637852210565199350452486663103528021988193426235066521972545204785271601100646520710272950081947687311825486915181817194351205124125965933259743090031226250159618466563056803172234530256591209419375660039364545279984032929764333237098813082333111686313654447413438269620676897218462454860295618571859878107836483847786758548793691608758416192623168757500988943624567453145474153383224233311507750825907937501330608324502264772218435870326136489966906837805539387125073643903683257701680945006253077765258104082965520564905703635859319349530773087228068273707529118867084281577275546053867154084796878634129270166311874255436366102310729505851146125471242260547882794881464607599642766694329523781985646183735923551719445425541659517155155249000935989277924887909817291401003378548963512909826346667749922991007374546262475347560930002648998058969970157438656384975024827307948137097622060062734991888326292605742683724773596690572500515774265493740678499193284382095552119814784960603111953154647388925096974176792997760910971678345267442946669179977078188056832843256345866904095770873431025131294176008614279935532974302936205942400749670147142029055862834414183781005875533707721831339629441765524616889906014692474353335384601599967228465518742313453706574008141842209485329599865169483719271152381597873260785838575879670823245091543437786792247557389743910100396438994782202778756069397678382851409372714546900581028873359314150016941081856462489429648443591055932524894967419833448978597864971198837045966401926206342508202526616643098830664264351259599159950718537027487769184244321160609666503482313889105156080844456577235993358169262862707616594977561556397849513027493816812952345602828039902421486589405784394680848701702994861888528346871332642985762936503271886256134918891580581979239266133134488959111944388909787232463630938756814374639772480423701569133143418553243451245813818334151069860174921781912404310590594718319182886382882627528459083519971165123524544399572796567483889612635836565946937758565610228953740041708095708321331642635661621744200656552075499709394753305316266011155312273184621533162075245696678392549891752156756603019891823932785288363295481475806809571632711297324721024999118986211795571167409173917540751363299755703039764082337244936105772214771933184391802916663237052890642838033323734364775798885500104495484522683648735594161859938880390510692141377175972313503669225479621330613000016953757863908510249047854978780554520446132597888541966355317239071332068652037913401930017951037078612289017145398482294957286344551199412187928586783771830535836409597320967433331371986854021894502830073479318538832325909215505207453341700091748377069578276309414249069865135211508358675792628603318194964711995858627907441982067486034573109023212590919414134602955719373544732609460763740533509106620927020628642526347902663091446065305397613754760840667949797773337146964857938989396786652088869169649382108142358378248088066252376662996527939384395773636476931301129917471187959028092225120181501054218227768935908450286511728670482109755178625319130768428598564388108457338457500803958650988950382590583986684554631835639125084023489210119551864072796721816234713319249608558837643874328087311354352547348185817760062401413765227760458275293495254391758842311071521213786950741443410338164884438181584062615888059866578046624453903043533583675295285755982330154758225622464126713618461305371655639049268409395387257340224060739887059060602050839406698088589190592742565933738238186191721428345098153419135010101723637116455056296726390206713757488546688710238855300973566711457689788347102710464887657380560109954196108919283279237894827298548674864831303837022792632696895137702444434105435261067617367491416034522101153837925519421444421097477511647228798135621165195676453523856743971712834990435901377548402056226615107316415052393989843401702793069258969704630031752328126149751956935268440114797393873073656120086748712690483215459149825548193465502209357093975532871951131190951523048567622080130496334210983824723353738586945862503831530689299069521549731968528850293286657801645561564199711185720088605322569151532948185324737284932642612960965842348676002210896184029848988159386120207216596111356167136152028730068506663972031305370464890266346360191848344591125153270582352171409169717912465041840901585955976261639169644208551905417386455161794803574799989028182087053027250633745635757128942242000483373455750757151217720877273942102740764190831874623796028759083001022637575784447791531936917607014537016145882497574128761412154077413907734072090622628011725535478258315408644623498743544698239804972731239054532418205023013205652697513580868310662651659659096117161081922074085603424313938549184703540178563584905677645974083936692059498208167924409395727319543595779856823070584620852807063143508419052476331642722269209468215698047011237740207007031709826223183780121030166297007630648504626174262823566178340903507866968475259198991521684927664369032766179131417134616413000416445716393885352154689430540684792604138936800151304047414390417816166342587215286291115994876581484376167339316196910357946429840967151162112030797453232736236976976081880945967114668939627944369118648676710143343079367560845193280628712991971567830634081876687933009599737216438549638284055374254393882707702840630350582114160702210776524773243118197750966999162499714199180820860825401763094583861082320116362575178151707719178046681157620499427097271855508273801459127173174470536591879900538578637488586718733597260105175997600229111621272057933029509158469700506356598720260704088801913359182307077417496431339054730584211259491016658465955869150021157825142297297506312442172926043033208181300138122338842845375894592100591017612790094058765048831074186358589142303545172298526457526144116136754824885014729801511172811097220846099188551763827545940410678394995436017577221772086661303199815432580872710158892313562552575242135314229314702677856759616015610423176168518169760500594639695997761729172233333998283506987708660728178435224220026469118945262139498609253435455945924296678403001115002616831440263988060931424573053976674273458982224322208379874947863834641516533131159158038181551105508561605150011241688615603930044152137276665816279107953499810393419316494907166298289498565890784499484913510508137769328676036999241624819069078150725726375493594875134468314201716804826104170841750235801602257379491468867615515530709277221430294045764375150715775945887007931076383829478761466585678336006470425129578278119236229488061829392525439898039904430977660403067402109150416097489265626605778307023336378738660669842605262226616575968407656074879226057605347778560030079727895343582317935888833135994306513168381948740844466372519183002613538804162704534633088230508388162731966610289589478602399618001135237450544672915046709558261263562127550566208207031936580422555593797488192865680696539209397490274093905635172359775319425854010053473162955191704322999208764299958466124243993588294369751348812529568739548041630156020384680232228356013325798743911757185091034044974023193395751625325252882628019145103222536058857110376622068744890689100618487722331859146436508087809201693954570755046172473924223485648013500032282575740765668344366409395930566469166518796400763634073400434399096009144557223663589310226255566039892287386480228268727562849478195659903964322481447066138699639377602113145261688581991831276325384339768915969007639244508085349924156651493766571075700021385555471449404237483474567340719514024833388543586293003170125205060633972670751263288142023820647039734070070715331080678193861139580869215860263791159365998485706621567618053049385340026253004109976255693945872452720496136580529436011877965022099069455936492150110571268691255719092565622253680369470830217849114713754152142424634189795754250218399632563814704179580482753824129665037906535579511915241651735336573737807677873587935619865017961658716619000894064049850671563955184132148123878444298920361284772484872702017962082737185735400355217117333534158119870365085480187564913120604039702015971415325224476657524378035116271762661989630466668763470132834602562029161924329355984234691930658439752004932170128942559897686295146434268776595529564127243822364664082868290443748084658697008306392423204821962841401183718199859375143343245400279479300704327542042875776068643620387892318999352821111791916115455550440798783192970152685161484692381630940349399256329279537582015440508780346547470003594372923213849773465769254005716555625098837958984250219913305231561345445676301274669964217517425430851552939263996147572149519928868616315147852644144814949425999709065633260836953176351897684960149743252127840370905830163835109479602408247534500578134361126520265544276937499876741629742468917653037546910371164954315823624313821202775441725920385926647424283180653358448065641463709267751588421469433768452339792712265101562844688404565747400533175802675606173286956249203471548097995122022034244295122292960957085618078598021462808555165249718830152335927022333351725489453257039997120478208909414329668819534265790265577381552078106326958219241523735138456202115462586017310003489236354054351789372459417436293890864221817651505082230115384199372519873598972958927116681122242324058788913887622946760741887252752743410199525682929068307434830778685717544044713881956622850992650600872394977379231277663046664763322271318598734575795818661877549139299358361221517392677241840333384354404425158158385134180368753112342309465352375404542192319789306867310443029527563946528843829346851375246203289610031199540668105376518379956182262870218835969394793438263868087514728965994108697028305769165126972922802805865748786564090414403699086951405958189953817567624583258259566344550410030208449742848745336994675885681153801306891974563066916471267053190803921702882205526622019682795751100112818053985591818101523426856985932070405051847511561845766440013150048163683500283949919266599012821524659014306561329418394219997327006481791167934383849226342424164550242475948387285458269193504240995216222172943394619465863311376267731267631558751448485217158771650857890891214053243483441176993986232995106716284285257941850837464214309131728783373096750503831392089066294158409368005809282722977690132685480868913578811640335390211394584231474901863955028294633003899010945687371262704273343299413589456356987039669907470149465297672350846107181581883829936805168528691852856954886673478240459258052854779544069123946069194722971285979343706952331819074928324531918059040801698905926007789134041148887582075413074177908515768359790675053650090101929681581279981678655243874128597466898078327909902194474506274218300923443249195672174613783112714707342599377302798995736626014177967826675710562628626507918145631803445302210617073831843436588886407708364487197490485046291246263661302955718055904588479075663968119016791113067798470253009631156130257471695502628407218145461312831333757242316340067385435305922974273976149318760327879729950436331576483949787726483909864438008966646852752085163301990084355076690232356533271248426691101768679304389095278234863378507625932664884678855308531480901740403880685961258269284476354232365215090812759858784306185312418975819063191614465026811661943837621422601988089873942746182702867043599273078627625770143579537236825668985993879389641368706941995502840055863584604981975265813183722335163746614852370733679889384788347171544729823451842959962333580107105380998628790091118031007227736133102497332429220956798960594514776934662564569715551565001166258964329853027069139349707635136656239032671533740113846765660252250669708665035606502124660227853589774093604178712074295348115704305155904207474810539572837805174602500369559440266874934615439946798001715199335138829828427144465381325484640306404942331317452765973586546934322757791353151066512076026682017796633170540423523084978542595162785524877961658056693517135505218825875363203399799347826716254592488139851266013347442282208829018111342390250418281347126433851012150485354548592393860736152640823310898556663606288287422829901670765062678353849932070664742767205064932236997518713013411476775791886170240967381569434376093785345097830772978949331649859772915256449749617154897751972632261067752984297060018133202754662517709886334643038060249659185564335676367800523155855191538060210104960561249770699677050638777259725066646783135180196652836934852906205488859922296135783256175893065090179345311101202905517520860431198386599891447491990418775129781877641739782437957968983734076934953905560339609500200026960737417333251557473671233462367544285765291852628286085238985072239348567109735408606693764717124907538608391999289432807957176895325488227301841175345390712953830322805152252824519938675251362980796386642677550416510253293875812730665700296707801821951890995920029196753606375094840589392200212706426865856388224453698373660103423232535015942438724479239487317832797770112285474712647010327752559537669282283638865324702471164876779212579603025271104030776645387971361340842275885149158116753162060189333981975492306051016665632044644819028399724386134703669900088648403566404186140565524406756315673535339589558805350559995845882517930556969796361552236765686054496422677133962221963467296939616153674626968248069446003743042824871006000433778275354264238834644503310921691660296870198782410242263507844066190214625768797170605678442498893363891634865889219124984296353548397707054209539596889313225443559573972712670155051494160712722967433219124162951929735121365155802230563700588087350289100540276990145997735398183140490029763133051281851203518963798992853270437019514291385500868870786656612975655819598015133537637218745170339573914999700620715405295126008937933203232475435556691862106167658921135458838049349749367479316567372474448631744251134718021760456905438165438487929562113562986426079196355784091434471292808206767741756731371015967813751547308755291866666617143199760204258889757695199059318335685420526414414614555251863593315469200418966427257299534412420812169885887700484237882092092539717791736791822822160261891821152804095622596346770318726279304283037812917324897975581589464813973272121834869879905029340671821098306059486667456748122392108445956750595710939725980941608445195497792584500452126676653480777191546144423061077568376184494485913284538942208672590488577774441852828600156292872010918216964411932407736703091868985503023770512604291548087679999850479503454946439506618233437054926848589489097691580881320637648365145440708235873898284179394838098140649820186314021707568884874244291450476954241390406725018232842096175860786450194900565310722765497041063110338178999866321539691943715135382284713944633657415019678197377461294655538278065303571109732643978678081191653458456697931365399600563477880249717955558731036614144241254894867672108260278236453870207517793977759585840026769410723232855606940649171161906039809187514535411734546517663992440607035576800953521821062118229186932881411845567414287741070203603511755803474278053517813689699771603101047071720076389582089367236754475720435444596578813806003306475604859667403652702956068670062509888250174592752972509582639444004435270603885889969788550601594921911472776447128395288673652968547830549830381633330428520134435282279789433698588653134110284397766419181417395884557236280657739816015079585471009002976843760716092878922646686197725142345123499262623497122064862304991880714889489593576771442028225272967133232177697341267479964111501561135908828752946920438932335905036286936961144246287469562731647491588822110820838141824852109884929392084182657620422503278564345533834426406935180294300169136492498200938892871081698741672838155103282871633555520506794634477120815234349053427951547367551889075674004671183551464233707541164700967126398821803703490384588106423526334463033961641367036066694562316020873670571242427203289726906184636905514407497760763071334425495848576000565908942555963552031657290083078372881609374084189905086503549414869940111943978273201654430954051792941775154165570507503349460972342790479346869070480294236839644982110522748745452151967181438523973995820350748893604714136430489087377721731061939507050223459962498645608505044518415356348036119812653287402394502992311045008646094949576035849285780304692209025186416516947955366577611328268543466821286560002437163365684631888035378324681566131832978661652033435893336502179734751518522340637640771736612733636513958080466043746688117426212254106759680628377310821350876568987644877146388787120481591636335631787263971529293073618476927817906901027044116064171968241729769853402039228143971579965035984612460518973666377977310759201427596537407537305822894862909574372680993577112568115177710887676699123500003559113313319929239096675846295245783430824932835620989608464242940120960664293086242675675788085922493692363296432832459213172857635246361681015072067295255814061112220563672652713603705153621729030633581377625539283435705682347343627464146980568808444326208614339505680140546031576735257451133680197788883993609978412467293990935421725965731574751876183554136723931401620547238206478540982187282561295629658285714287861527111407375391695531296894739912637857021833711662518627403544796331317346272581915276573004520481480165785565100079869295406038123872291007018741460457411652817137521056515682007407191177703690381863539259319849520982083325779036255099272429323031434164692556987656348110924214536939852889653023707211520294487955749632856708559772003582266454435405625236006889393964694947840052980047989968724721837229383498153878403238372865046837506301984724284253425124121289374590083373503995279778412073311509937615974577831361215428782056997088839228772828579960861823436824428862064466313347905635690988742766031646741111848472737176025060207285919188555968449576747189040845855350265766772852904050200179064669997434724242072500086852857644860835717835532899447736503485609157373668517892253201574181975406879056199983300266645183485479863594435335698428553113285405408878037376073741853547094037981046131750599053039717841722042416295209711968539127804333498050447702178873352872154705859223196614941202709455884455371707288657818287795713907525016507366479658119743737448999411042539102269263784548770503199828031852078143560813002097977978784819520127006627266775465942956597779301153961488850204836621741949187937380676503706474637688867547543609761957566448058714188288762014354106018600321182082149952025527035129778374256302241544928427347260210799581192097157234165759742212536765220548008298008953144927171753009817993278515357218520677061061776967263997537098353558242686952963829440350058141383979185132166573348176221878587284777233105162286755431452346265133204453732045197339564077139335407004134146267681986335267471136074398863940143004743620173655371977645656871510441993127716778867121185757278349483224547524104703966252616350971492651367214592936791007445037040054580454084713289680649491538974855101487453686505453675811704794605817294890798457838797552831011681903340550157006895820433801410601968306311458139315936256980504387305453393668394307807713035340576635825776316398771124476933188912994243215216905118360392989082163895296248185429072023107912603395745860983655166026615790995624991328093228530993226380106803144031813804849354158260060907663462813450183781696951588977112452819949623725680005044516296498120229084986511616596693833658159313605170074224662397482818680415227064830831949297781915125438184818623041119132491680780477697454140943548306342536764953542145365099603051183116283816817719805930312641408696369857920842040248447615826379379212293567249387711344030779511438854704912134870718467269659072336465372018666887553613127018537101491528082959028728745124017257689849241084748058972756152964936446353612677244430551192937122261899519886763504264454259122854237139722649490301025810767260667449342365555394946183159215531111192562170266526454892621531520909977820598186402368368332645215999697510680955228277351925868374443840049388292127481014006251607759288710406817062875337492263774297765151092017899892863814814523506888542466100667800393532039432605030103187110330159960481103913082994167984894938255580757517623102504741136895362622978510568404416788748155513780500003635308434065299480478665762470300371885303571186932898586502145056367420209940591112455824267928906498591476013449724205239650696249767759398453786037850012781282224117278546481467963288194643140061654304776974811669447674064941274726551750488977683105280133842092352094456949440106133372988473781859532589274524354413231487285639391182759159541343930604101180670437321592035710450729938531994088767500294336343916452617129228034590769982891244937938781064232641062541943181736274652243455618692050154472647936025948285277112667599723073716538964288452891783121367245037364904676527382305328526518009647275459244774803582925709709087643980912038071053702422928094540819241517981856235946321811201695285517243902100013049444578989131765011160127518185418633300385610005778982347547068883770096493758585575115879851800419333320709975597874999607711270482964851713378808447293031025056461023632407497468271109825422348936616513056155903042304716322160073632380601737109067081569688460566267505366564918807916448913914841757584364251904134031714494613196814908279283447233825104215346428345928513114060169743939345865968669134198135861119138400055752285620558959337786581127812067782461556051075446691957587848061962560975665430322578711015207887296267410465147399736262868083504894498186746489528655485731663101265625117079467562398053156053127696025344491474475431900713792934254818975125234599771912140804479583766880880515418836449521302389128703391276821509565371410211240780401455950854351214806403806298410039102310013858358296507525333327904300443446955617893701740359617131139958882395362807282401139448174119362988899538052736297367009999325797058095808174344860822835182838278572645619906462966087879363846885878654020960128118508883484633577565464440013771308040157901192353802828091396206851733994869507135216384819240596379128821970561295545583068957700170536074395110376307247507217838479266899216430239860196699302663634642310351936816807875527971284987117752698809364416357218266305310638348758321341441832365756654323835370500606504873352809012505636001851072053347354955294352495537780320091922738571752400595516040364340726444080443650947021275138315047248720661781709474955907297867653523725265771023194689403262472609539109573751406885445826096051352090554122123521416352885604284538422783714312064286056400452424059850030215549766188971176014823801886985496641555897331732576717846240715969781373426795063130687069152885048607357659926078870231743902664685096628474921667937732250612069554091490464363684206991679209162825378087406068100303937429038711593455458054989442190272351714929510525944895520340684143241608739602653669047282856605822366491944279074471250330314498817564599243753774445864655834457858222887179712496454665481922268779453235024406655448341894817304626824988834616005678738775185766779188641745610223248248523845805107789911494010669389570359507110334674877172906930463594313852673267472376979567428381923715944078642662532603164881793584632900867207924528674585961799631971101871439647754202412589544471795311319811468277409551846298770475269812475697116339353391271719603064120921291135941223630279694897907772891926131304891432720642128022796476100663343037820768853252822055104831426397513428089656981145600268701056963318727615398037140246867448048007668596160361080548992053389338145908489154659785051164253240487588047200586770052115659898064818345516398347611957429364854949060741090457771036276419360066092144371293725880883286572935387809213513491494759600842071527895122091284311776075309878070404743597302008688208498437264668708779477621249665787838718776089401919587867820941373401106838080227896521192212702153282512593921886000487046716545961391464947232851431182113953388768563012052645962135250982425185245935631544607647360871508126862280504285943310464113094695287700130725721665683161255934340156550972152679186578069382410017875007088293843161671531213750927869137960842970594464246236692145375245337323041962571099706469602383103292110283297327218963595149273930238670262702826681075244467753405597914101246006318726344724745715146633437663319725966945054543475686092996102516399011864852182440606551631844303271625971011497915735572437537710097792427507597264921338329828524623780102360962646723257576734009902020171398695716984637133357241050087647569474021854672921007368491915543297800826023567871757520512024366334281949305281809153221661341827581674957697103617533326947520614352194928921767677195493449741587553877553156464730896328874910764886113857038366733249549677587870650216544654795501287579747574429340299077327060123802508483887794921875531883294504800293973207178788981843236844855275524336481508108659169882495477881798005621570530604534169345054810101620714228592323052623292480556744580772398942820763537240258723167538280569647043946828479345269645089043620251635929887405427775060742715060744328047148753198719663180334579892299397181064422975485009710637770754636613139590973224068746171988202099518239458730432551264575291199873270563837690268402441755699100662419177638434267598730648075512590339754778761740788910931208015859099577323033425580011611777680842102123019295192421049513167440620709932496673498879485087910074333480750498115779074467069222242823064193410754705053484132257432561486179770286338334267283928418238736372335286248704756750178097812167238502559097852027956222379854746762647377898624088107725284284720761618956451330731358345534569031430202217865052879869044922529029587200065064226824532871992083555069890275236554870185157724512207712983120387941528307651449828641849641582280039152948585299087393690850720829495319742903408605966653370438624912111757434054366928215308594602718691484583268169483844963697730752993974358428506374413063369563792074268326893111991291856395101409744392044070148680113219114242724790689002011817923730320913620487474413999320120916228360740239397566260686904741420778398720664934474000063659539085772668993126756745240265602494523676649054763284543556499442844564911122988548968865716780539865542520831238050749783659425839242461367975945094439929917425128145840359013189229238794439304955958539067059352302430200678599353347011569369622621240406734390949617853015559740273969819584366987862739203578708639049023582509864845863529973088567669220498320600475892421968646850802411698632553756624771939075542506100214389516532803115203692162928237603433345855779133605900740768747871089922833480918947023197645906289105148908841940012559158961363940996641904540540068110234497634474125361908296022037522719340142155728928910558736453370955618663166496382984764907500769476079313465046960789011563535591779427502407670625380199453941893034163335354274225743827869887699538551686133281683658286250795769401032373487865935396040780487125969893325448464077038868656307724458517706878363149112862417506882073495236673503954881731609659275766992636392980370845024061791967886554818240990657137199490812460581745646201482180930631261885569598331759062813319092409845252454922906279574493698635024145320429640429248663037672871036870738112153529578558818741642786334200093404594461192422641396536674640539257018665009627441150480766162439173974436150084320917080000708785425115715849188703907943252656209780536381451155432397467952106047196642942067419129446096674305859212738490660398258697797168358159005662711327271570802926121597989445868464109082337330287593032149023336493523877200060966808381708655185240218926829594909847903335661669028098947616717148499538986343362601328274841046925424825273934942303883253399187920876692781822674184179240424846997146372588468244819574707968845934323751850326441924893569193340749774132620941472463185477512791293780439073301913601408378973900190693172709552898350034577563543408910744354590878461168961460835465793386212799171523193290436877501593429675108498847628426720674798075715078570883877965861799841256936336069724796077538317730872151129466739488170523286456433036599917940531178073698337087959310798792923135097927288694889685843645031357221108776412876075250049379153765749041087087397307356815160901157560022992448991918480119247826886352740256075998048535505065195964679166447501250900603851252205772411360040171607343264572074029464670669655630312991352399590702376447040352497333367960512861809607769773611182523138053603153160736350710421211724796312386796048076616175087711787217953977364872820108810380112215561935916042507752173135636384706305694199812403441911051892088330635667640185507755370316921724135200582736563603046816649286841369863803342741224376337458140446989360739427513332753120074318352492813084302289495406937200257055499763188302561914989850193822654319985438738090440091988154944913529220701486803546653107859041617481904127360724929267416012774788446584527150122515113833581747389885882801223973468640014848078667232776469419740620547623371576339630126623172149936325634723904298948684491085012565261680466358705833431715379326567309299357014456599635226008331790001356177109036186993007934314270609118835329167560384821486191799926878291849316312623150926088507556281127726679816576204580641302876299813553543969316773416046660228315783659148723639173793125947415628246082754379028908208467698110445664367120128709045586524725485624361016465751257551442450375585734997712843128150542058165033236143370557919749522848011002414473258124582534712830296823046043454734071784604541575997727799025785648730898708053353382136100537065430543972114881940855115447059244891312554775003472963718555367830790552084973617660714516993405160038776042711408917510772477491160321687632702292822695843337870219404639739824883640992195403156624322020440252827032991014312291267900107520212841631580302413313083825872169556057233395502741275161747070112508646255268158906069830309036108582698573777189920210481515639047527028196691286087639007046158050397209627327875716624808492184033494294167753215626749009782957837678845078444164605648243890877849179166749140950890352243442410651950696719357666473950515675484467317894374325672654222649754604344931494022680128461503475454652515874055900984134388839203225079108894757202796177879277024182112179984817316307590088734055779536477703186106519363903490398944844171854749235094436237762698125898820099764664801364105593568811486922479246330883223189729188359297134290726610863514240027218688765172174096250839437965226934524124200824964868649261364439344672496891526880696386899081074616258826220746846899036464967798556875900713316251451451921027067166119519878298088763445482398691803405351007808277146551322013196806119308610102758552971885355611319273253689230755511065513849748471635191516572611705587526130265909081313206794552742535858456929906736811178230597035255319037615764753722344559999258888461643821895138139255584813650659153988618663874829449006060955796025376346889187556482637515253536998779147406797668494340133965982604189940588458196443659154102262563971810455586369627351198960337404640725600899668687053714361259761581558293410503037235933504461515840039158764308142123033084378471171058321952536985812814569304581098151188380958499699187628100951037600919453750997734794277011240265034703943826540733139515023154127435992131945677388369432550534596175321923838995806676348649247530519294631439267427222569326400561280548972257926358312210168469986463828282718854147136684965355457642692203534952490398488140607573610598846402331260459594269906128028497915373971009222331336584409943206132700119514786420267868866718131810845544080181645751397633288660502232295411901621693806632532232042418333127890695424254123300844173457573878592856352946615303236570226358779180826318383468653635091667601514594182374458425422730361111672016462278600676391243197590061153079070367750382293609386861338182422763129686195029786594622900109087273153518419622968962944433517883680759011213993990741823571172512850400619295645159038357205926156738687603424857911690653076078576849716842520422425421541084887765349227256204522089883621269379111562381486848372417891714153709252014727940686036845113673504396157812298644188479016296408213696465911581544174568519565567926583267288716676768426676874621797684913949455753727951143966628492535418614446090913963013462071749303492220123536867973912802233494288052465565429364096578263975906332845394187126594079711102513266338040988344388797214886008933791514225055155706371779932245978084404288655219280847397913668323182990994672493141770622257291794992655812624219749055494253982532463460027599378324778879420711842012988850582399878223440906777711037098713779950910732006167764276339771448957822409182298626684248594485950447063605954974217274047321609474713969301794658610009888028773359419856490885429479938482064376345028304475096907858588588427799261364030639034464485785779390767478698399985080937801135978764664052687226635714315570355142471458684375322931998527658178155289548535848205686708072203057554691871314902883789193183342576741458084183729739863752525688900618481374616773224173986534990396075123667010483206681824469374330902323743186305161402743986728386927281284946238431215372824384013109221404803166358389319744000847166953409496057323357681778910914658991765661620224093689907768809102130510868423154484411176935275156571324394889119472824713190451108883508912661967076016201251281146611123006234728624495622818386808732626519010426855419378134764298746402585614458758986201631778058178153658591784776437073906647269502910415841364114866878529002900263647114678416308986577027654907689898010875648436960921091878732820917593356565645919773389466054598861945368763816310175519423654527383363588675517379264582162027360719701673185349735347250429254014009419937102731555302458766478274450923549682206853942279303179474850056161475687444332089268490523137147968907126761438744707411720587351528417162399614858227824900918298963506343554495744573746153837785201469604028640999321592492191367625441856451540777131373192855894173092113615456871617252694000448439150735533832130023283057735321383491798542644125839350448517376449081826545738365229930909293869547404481326933528562026106510958033718921852734781834342316946503619585392736593299915068448414076717884004630743566450541829171440856477494667230086368356056818345095919897570462544296118706774724998289636116347214241332130800611989425505754752865906968491544641443819821376173549216778933728723518996067760860166282872858353428068714259252756800133099686065421875704719631875981296758785258777224242528972158206812258439917360808891658087298533331885683066971651697534621222188149131137509569790752938501860627690888824468873419637889759557482189713811479609661608591376745858916215926788400590415162835212746947835174926776262843041220854150384849230181099059785510791235233473454915676815996205263425878962560923792624729415662202066409368648107730824969499232716974577815116017898274029698694364983223452898041028595072370948381991795702199151315060333531154185711556458181684729718513428183898581426793945400869798705249144921854147863756340063284720968590289952262224063771766067045140389596369358447548812654110475972414920284815050386671832440433858584483333148653005927790716566263273933562195675675832889643046748642963462808612080555987087144572191326797475117775129892093696028393362531910988301094857263198954707389633831490616973479977937792387676004919140367230891517181411568256537407273162084343744519987663578816702216791431655895806266216898478921757480945269090956931020734195216678854342008248136027265372225988824949147660304755869695419721831059748143673731519387199619022145737939857061034203718006346523995968056060166265544751928955428320506556978922016984413394215143869713632028094313130362047870526212313810850087729189438403404238936407063090928379947229022032882688996675633843885713771828030752693229460698447312228166724135907227314448231313760808267908414603003256236578606069894929705547767195502495784229389356699349850305467391823786202994604427402273766457229717385735455670406378657355141293655323667823801514777064043343005050889385607398816085773464379442627145194490674717918448466113288017597330631270972134416653111449098520097236709222692403279630939118976072369751139507407950723201097832724102857836046697412689092636407398917410008382742490374547131649974378254742885882369960345373752940166121572853817552294055810901938324097842300038117377446127123621132165658892165857938161327005770748400336918879060412215628704315092158614232871242156677157322223988675763068634343162031032359387726966886681761741886816654404623450843665416223120734326509595718585670108087280952046973727216233582480975126927076599790075286101414023806254046870819351024091407662027270903535211546634563767316425036906358758555209547031986794071391846233647944464304311132287634237415162784462328437687764789513606807992309953208843371204657156756815063206059077777923072851614883263811475266067888388456325340986063481287629778213768438564261733719530172936823610431375749738170497561515123057215638328149809882992619253933350384125372094922786403442972914486252104877676688723632533343786677452351561873397257333192968191927824027277269776498226117596538142333561381802090266362143691797452724670595021139259907215269414596403964592799896597900929498892915443364545362886752599515038246093951174938531992392407445624246687741908114580083434445316192072314438327359106894041339047247198115138605862555942731518225326939180863433426575973726458850284011588312209114357492313538128328424626702115180202114215515893525913251970353934958134193421258363749096213737956642154940862780231795796097545977340270197142211826711664995223976335573386878973273930408256871078751906279797611481596322959135345031210329462757047101842058100707792974806005471484388944209560368257642539900969454655377323972034871695950421971147832103154397184784305822923421763465120647943073004405621594623165333382744216011198818923221271601031440578742195484305892790842945091050816857674284965504283908213598172475189320832799203000233080165436915483749699341219463355666995395584185915168509849483088538556228070079083858683427507757765683248460011670780575353507453174439602074540175047615556454539810596699905854701667018896685828373227529121841968346501684397370780610266957822492977987540881925176752867225218172258572392444695515156204035700718252824390020006050378195943045485216270595397257661876407354076302174293369732601169904845610868777013147525997027411587103417372891144495961916483227353440490235438882383720594583309727493699221470103773111481525786983838650737748193949342298010612244039428335796476513992468892316187405499495181674476760239418920517576769482399281359482183585905361903418103235905357486853269879315034966524681224951304180492288018809877875631581312222528484320213863399542658295906447280420672314546407098843937753808643258568900589649029641332878113204213153349445589278683974427481857344788307666008125186362262816382161600542227418681936131641775359157328702275987560767300442768842175528766867074792178315638059182230661230107887646709737025073678383534874275273607852028271481558792819903336377213141456989541363905174277547079644200534253357645965656524849394537559674131589811328399648888926634064435325212100200062125142124006342938406425609284414030134276241912377859707087606070337495647350269798242028127269333296804131162520329591363678704536416095698373805138716629857265313258714171334063543736471177255483738323457709606959126884124099056214518090113178798451170148371074638586756211153117761041511689206492381525096512223705088779481735467125161881101287951039530014644688386403170704497860413125790456962740657370201130366682160367274912923686832276696156935269707630269351904284037912600529531432453557020597658916673932735825468192372613307384727498985747248435470716596212391653250828700760620821537804219862334571268187351374466177884741783270977586535299148478547606925568157493276365267750494049007253518096949231506683651070830227092347105890660296274983000084044413747726791115574591254463032663062744108189570718875681915736586164251263870294905283998839020831035439605322515551867097170623029310033142788541521837684436922162402554267131374742234263481799830823332290541622611255343607866057329447211904483963442345522072478375180047957043453790555206451142083441831406932361700736284490166235299641792619598822953722340047656817421041968505411306750544116580695378884975205080263027248932672389456449316594974011191737853667927806425677800187974459518061084680473830507236255763680421645296791074324619863731723600941081905850458457458063703447477181961566939151544943139870557777562728890796531422306319343429485517652351266060704533318775884850723013277963033657238413008847909523657436864646590773669431648253503511425876791272261442359297975405038499074480062494663861757155108352541333673703790749488553358442202270850727136538747299421745625438410869991352904965281109335214768803396782870900195923595890088448826509244251559546808724428477895808537630451802739756958602399012675923025961809998096115577739208582226668443861301531663114229857817983840345931540411924612724042103621156483018487289123503492637835945126714677220717969003551695181120454883174292753480357801672996626256574987603076029076586029781034177877038578771278390501889863404219738688632818201839494272746329420765133298075842889315836300898429446138525844586692057995246225345594018834579835444823360612804049768151163500419732778529700531858899258538008853839272144756123915324419989303662332401755335557151799858178596841309469204857888230435948234987745882469106893037889248840065493318814803595449273426478168888623400381747096309521347131140310575042104887414017371625160585184184928791456369404915546139428743322197964319290185902522952596243195380146431302895668860377936585930539164829384420898217753648558866460944861313339093986329186107621069961229051575011872700873137590048315057255810037166272485979649291406335241533763328528541632423899682630508964832044601510996223114877708232487722926639732869032760885599318227197781337385030462833245486946859877942775967183650090941770821247933023979002329217501149465661494509236297252540763368660045923125303502017301456394029201212452374731542885435665361222851161604232724438215670125097842519934913875721722373653459651795499629474049940052200304831853398608704555896799861985439044038209634283961597905178263075691552716088512962113532209084256950831419430917749742828084673905976080190054376747196640226488448296760601568770728665987687843329980841105236269611026360316556719262973717906648431381670760154426046921499659554626303595088296770006710840349066934131215136189518775700686275820555305772200017994034673349599718900174666294167331409796598353867820406268028546247823055146202566239713308078105117269980511228606277177964240603014918837636335521823522156545905117605633282102631487794754725783474760617717428352717796882091911121149963235761207747105878906541339974736589223267297988858791417260513518505682847373207159644836969390938528085815814894002111741819614595774752621600568674035126736742481925615672115190724608606856976208456010607302380493664955085243079369422220219544915836127165064115992486058819051283729706255833460423482873329603412210567030011950357714912496144394729557989066974800893584395978887930010963568992232222494710334193629935989029161989536854052812447626065342447448463592127224181978114522196675550142218356850597996618533491149094300694583539376579076869162571319764900078674788785180136666616038559965453795978177281602610885757789468384080969791434083901433523759673247556873069218102593307170848013973836714046461547236795222614876110197777677352863756985964343112231727677971082045987126774453893980238819187985956446909825866967493561577877905972018577260641720804755971535469260258725628265618035238950904274676319755735308460825807532941979521126167712416933910116164997617512569804182504598392662335936140711432130094084945440731763730727204180404862052487616126023329046410843115590654703729082810752425582759550910062899900649929157615011734653966961031882171812192955287990861826510928824912397641510290122772811014985117851655868916042116769402862993874818520438014373490761796330341308431317453453897375310262861561930050892851082623540226570018096575122294316000417205519655922582006224003713784818238776616571226494324229554515100374709504278839766548781597163349237877538818656475936165377526248827899803036954676408752739148638906560437643297409842379019667739811516009936743879735172541197752091142669059818617255186145355784746685825902156069804658891343418546726785247307909617424681513978360405654918845686680870381357888233946195475828279536920305138810279856683326025511658435789655502095761736547747752348876450662795729368992934790581752102540220894251043501604725897073623876269757665326397281792011614628827972963362753163193434018840377792763491726360389602880145013267104759780888126747016625474952207653484304641072830520922781934331362390944619200906428713421158875795297116346917039804696867513198209744420699799598019781380754337705161537023481173930012407614462999428122373037396326452327621757413288489989160874105796564031942851675984479405449107814255459264031249938801798794835790841613046104182407660558458048549548462261177906275167853686235015951177928685872254234859709498268473487396753497380319971337832913698647976347654587517108235983464854777529375711507489633846701848630370129100757830217465209994372492048867722988897416703145183100396803884689562912271626544784302630209804218780793358035222382501678024663282032411635631429183773679908034481031723505136513188132613322386083707685045780241399988048501821259939705894137606780924416837515166415317703684864271491540227527659931673554501995819525153413918034993500734010722094910824941324799358070635536145732262433953698086640414688807374078125143986038329120751501657302442866249367420333422851247804722053858965622421185933909412607223768813434162566597601265825551843580430116340794714620633663076166827388675912698303989108818988692528355331430474262631933047820052551844566714064653372913860277170224181506023986357488849633620629685631355439458776005049656627529570375228188387797473267232589340669617154168936935696169360336653656748427261036163063196383494481229636767955510000667833178492530927675939612672907596585540725602928309270931336577923747590393129856687627489530408305037295546176786845874519730913035501928701566113453659020735797618570994479856166103466974438880469873994175956570832334137786923073981371553352266201336306993163208593270919550004218805657369070640652426224891882365443573618633689547006901985059279206037681340333262338117012481983775375697061783280414353199720994181180392028634793851045359323062281287822055137044472816332234770152324145094418131716306253955541675576031880947388069095916546774242426526358028572989414279970095502254003269871012865778768121462180874163458694037059527250417536653735707463954143570026167722257300092215661187197517211577593278454222694489065511900852591209658380071230284640739291213619945835138774525616720234630972245058375740506279887190073015034922861650884162694328200282723787995121504893155288097532282537609538871396923201170660190575065788576666448173646429044789411724474328753305228274590234532336256441534980910571582121465130211791767347046149217517567600616234596022286895895064373480682779527998214778747393354210469974345720029511288430456301494372090291112673217314672721670494097584875016766032985082270229086727512048378064406642236851555495658478052984500004275042864895531049843733923414433795574980408352760063033719235512029078971700915600434116013341463584532072524264073810729872939771226911603549464261554513748070893203716440734550957435826326487574091217108197084139832546524696725789450351822083369533143398509676379282096680875534320645082939846777663074083462292552400311029047962684206941330003601269417043357691037974329349971059827088844826625853876952881429842966521710240749510735124848852513906575002827672938106707372012716501960820705060828282407647243890124185196246231181302489988078307844107122272179970041756207238852129587637053886156826662230538124884007360623057952925507067029251258747979605349666707034124760865033230837657937458899564373692123842232582882094008741947371652203288679434522248448648967251881211124280731451748879159779015564820226628377614224686231520556268901920398366272205247344320802089436279682169175322501763708435583045856426137624435478849153252715695696955755847552928198112719680998190613174262696717086716799164934183629050280968022203790389905894495466220713804365889549324277354511827586099982653356672969967712093295652977690631980390058675335358577261626168097128916521283860312135717597963234896593723396363657842771932452883472076775325991418836184579615773608440050664575182427478871584218706255962866988393337138574601920076188230773496471655056978506685548261061402512466963604418717235058025229989014851141473076823069834821508832715325769795698092985994454247467269224303762621666028040881075969005798371985530370679052783138913501821161994563454795739784396640224068152698188728968687595428146914224145375474854657962811470568491863168898296366696907522466507832930812149449754931143297422639730714989223464076898214676737324120033671452740213271579770330339806447964600383668967602953769235396830780966417817237498024526035340383149429348072764823265314925197214612325422422802172204551130744383942500861547847511855034606131453444840930525965843636490261457058147412931172266057803011431090342709878833053619892686006569478562880240170573801058479252070639831172194853747100494829790876389327629211388511093191623212673197933688772002082977916981646856547612656920993263700282531666299367648067494478701836791790312859944268497645075016119467914853624373709897358381787073166726361276810257146473462095748216137060673254544237667364971988217190623338464699458131209822652787836976094234414220739847609161480290167083035396369739792043675422560732065046482683466134781740128550248016286454904932108163528932204518195874895522070390638136282842197013861910032524083572261748133574953680334521945608160536981906853781573753876381492740993423767045515782635109864941463019793840309250995531755236449696879529053840338181807076980608545800923406353933711393954707732871752917370483394590912872563772528082098325779767918904534155398865795221451700635605658139832477409734501097052938669021377023192483098406548585064921134082004665586420706535705110499562971407708551382918081745922889836563779203739080749076357260509402036218282238079130879850689385226493545156605424316928852224828125100440381184080016518585987698157178856748043222039198771108786632714492936389101858031338190207097762308186364179663819668302250756595979208886307178515506642216842154552190267937737278146290626516039053678751156931070916082218569715213004241711805123732141451029455029571548600418457779025925937087611749915672969383029205717339817399150160606968725154897181079326174248327567487355665002453931007814328630896555316597629910442384373645796113373838947205758880202349052308570934202466125888510647815871206356538752673005638674507795851175812665573203615142201765111923347210859427978055104852647562020886178563654863947979021622362935750504299200374514009745381614663624535455202753367256112727709935145384368806999824728558947248890033997445507675435915838146819817546451751443730146300739795114381795974260344857928056425076750949915709925546115023469863650401520869910268482915080389054797001778397253068287928022933802347328051422208764304070165061631388558820552661097005134780018075344670541993234442585410803259850342287639545239942929056475064767120549763120993974982753741596720619685873372316279067731629667553206407678214511543519685403391778365438085041229037330098310008338212715970071102157321855876480001747244467583631266114468320104191184576727331758362339870629719862226228448420967998877936976115658079291119707431135188611828599361747459855793853403352022312980864429908485828510537850303284913332522699130848550693517753334076451048168012241349795472987322333985575684431526673147116367494803066429690218766106090602690785562418856742167458641138208466907250824286390049744773888365127059150966843719011178822727701737025277242165157139315728492608942271515885664701259070770088489753238256566651750366596974871263073891408788410143698457633014702704929402706142306041159944906803814569637715046781963350123872019754323417707455377882039864384865005640653865550584650244560291575543048009803929310665518201179268765317296095341641327045863337867218851585177914723226014208400583832239280409476407793491301377600207770310877377396867715020970306237377607484348736526231556303638308378655341921924267143711686748024820028426765305427591464099530713985992200314536704046140576239662441698757441391688761233478937179922377325515886457842866863097158304053190431586578554125518138155362312549173412195199228081779057364044124346818524515329736147161270211273252840592599717402989365493754249068091206690585342121207306348204044862315248851051222526219229494044492004138942231323951553687397431665864571767925182218044057561955593545078139463512267739135147452325275257268951389890629529462565038002326823944362463570514548333259943502187858733030401532100686728134511755780494064785563123444872224431589243969055316688509467968306650257129417951547182780227206910332028463982617859397327059903157825859932097642349676147219679928811343105177905871566446569041095424488401130599688975063936582529495465436918849627646081172443190515495485424530068578992682177678026665410779982214974778960957217313385406646906236412372761886724312762511230192574277949827478787837793440656640354952776701686370430389299854806355899796549686841986129708518478403085807912815495767165719806757286425165213216747174443696634086247811317264695206161558400180899968870258554719864574381809399358505682396456045123223717462074141310016271104048804454493085596540843301431817816540496822113185353452666076671346908306513019817552489468385977864189571689403392296680162996356304900905285372289839676166131747291404118654382137197895992837556837101586685616355635517636495709328689986835318881023972756929783894385490026154227355757326810491393528830824994040148331148908110091079015876601401491223050143863230501825460661908595418434464618261799000752614776353163153892197825132937271528911251880314998659449726585885106103018523087849009931662862197110837624815237365459134383275983043339375846705396226939695909558961635050430663217219978183464956532479514028096241958777136901372544987454434465255907667010724139896040805504757983257686391180441839411444576027759807838902907401863525708273058576103034686880556965900975181409865490269084031005225740571210038306141380298027326292746643066318576664861745988815135136299352830275376930937761025306833163895847199304953607286324553409515242102007294122633504729854891155996593583784574684841375455200149729762778241728182468329732800833096021983238012942570135402642759192025637084276249194454020836751782986219454682797051977175090744736071212535684138471573101257338074409494632846474924508985747971873965222217387119740451797879104791517669745820886255402134056553319791678826664269818739229973517928807895406014953804743464759882962087974760057184447828224942419593318724587905020687827008244659875720876466867897894652589321850597206991382486091910152945694324484246253325462182312143990645753737913563045891569816162242800824752258537674158478983915906055903187666332475031181686125505546593345920439606179244200910670844680280106467256800216643898321587239415261367519429879913369759503305593674104721285539430895775875851728188483355343396381534249690884685339620088199358660413722031776202228717981630634311931858110352630580300828681273729750058112658925663820063873904851192066365076104048889727035547273185470279244596036537849068329751257635281574936478860659397896462740815657441088871996878841017935648180423730851679064538336281417413267957894683194302303527361302626127332837453037843082153916151484335943138430155035684528641875110404317032951838994852733122792258437779398495493760567002480321894365710948822513854569485117889358222652476516243834940743467893751880924764663628182899549449454317277364878827364002575011694455449494445818427503226805575939366842409573099346934088879509065859291172792075206842984924225324748760886371531628324167020799430494784981493248214867367735705574452905934009110664763863544128465224146755111776596747302814926418362879168379389145404343323295250033922491770047678985932985578479114651385457211136875917943111039866306316613614348195012929058722761513412654279952043871024881802653380365393674937959101134803668130712018621269655713624281273294462363607956796438265214080805032310523261788392931008781044899534212192091224817473833071021554323884666009629351843036924082213268389297752418469876068951053351777949828345266611279720405350842037404652398819741439446893428705018815116169837982978909410071530314201413534255948273847269212661537705245833272530835216899886476708914477465352849060036563783678759560864053450717591453530543396593820588451962964899318470904639869213694922013310922415532707001409778293187194489072772829260171630660242939933581251058391487518758642179032469990986658473699035591573996837035718194192679002199682041021084005549964091516449203603036892485269627159555542471576357822005263681818133750185373995201876798402460948348933981553242210004162102464294589304396869671834344712963642186927035860990800378660215115144181396412475979637240464463410095650560415516312138409075978178748471253697333531625943545236490205719919908667909273438402247047706857865869839230190288059122402975245316872507104958356323777650424034124800439244179293662283340239103407027066704048446303330549618015495229428782683835936524723681756654979238669931058937629282066230490013964452455379382258884246780538061680581306940139171356947977140142466252242034052843166949725224853173467179834439627315467742410480220788117227724981006696501634641553752820448013520735478288349350097222517481405425555006456868763570153440205171119727445133569506678411426048034097513612822184546341913019485437858637376975809024700507132405036343536608202826939718724910572228674307980424161170539584647405935013218423783965259607338696481906131998568121464038156177369797213302042778408733188421962844574332160104793300568647592934709569216650972139082524800408944041549748017591763424712495827175909944258727766607877224385168153392125396041787955857628759156560403698425034015030717041107669283332053030046656991057726253874656586849984442270808456960813288076919905313818540384599938892583755472130013083435176512619031260456203391562996470287584548158494966660701426229501868562106774536507658211490020831524545486022989178055127304877389449035527809940440273186891554985150124460853823374677921954304936779843142583942749027328133500642307597031864815239484793571633579681329687536296278705835082878471624611388337791581262864426631877267242330850110058334150506522851772648591589940896722681006656069733085887186222546094432300995408557748224470236572020993732733089117317856683450818332080589472183959669991667339237008673995303490077722568924271918623438852597231227510104561373420508081550523495009550201239321769291958162740717633338431562581667035753826277300550485658097218148470845493002557122089140782179735775186221746296492604025005890508489185710429610321560346692098721525883209584265699477494646902709156009379064154224838102906459062239024694423567328936170892502126934036909414859137058409188727618030122942745349273825075070724304560100012572207395292346066056274174786574677462202506692503886652081497552622104766511611022382430546805709613997514702432764651708300230015818964073772703844801979699839075766148849527945975642876033933965730927424843270029363508247368592407709307258377565715701655236541458916439154109496025992226795195046115871501529734935092162400239344439843696936340483210532595480336176916675770565036345199845473517340592918510448039884461925987727709698184241850556484855377348382978810971799708794970308530585696864849737364169041710686531172824202027355225500419327077964149660613547173533244177273595757754675283381359603275207021573485162403809914855856998091036290936218727614786894778455937333885068110156209847406168944724240273827926910571929797740635894370536017630929922973036489027988580577290516145100232479621776862197657895124881486332171661540132998458199455469286077556474966822449494194108204341038055327477638650078814999970205763848426619339546635787167106457078263092888885640976964608966962578270282825711162366004325574128812069658038039756458107243978498145041295152245481337361569467914596980552283615461559120760968139739770693106464974097351804168163436240582966146049564335057376840350782450966817478159245155662696313741902676137043127906036086692659991402839241670671006257100369841669523655475824518434938349228836919978262464234624222963160231042666533352648041180311457581249282732484761067963062131222688587963845487925876468230233222850635906934953747632195502276388460033368698138214445684348568871435277229696570860625285869649813685573026052133856970180704066937127527817413460276869253410899806978748956001515527882397257916851339091863623153024501017481182719053114915231743426940616264605212213934329783760930579894934424667629942288075248301523473547432331645909483251074298856670480068611266925433514385951853079617130536241148673202597841656730818503520142915326922377170628812903234476522558994383861501276403870637922114098409261643935897980467126754831164103291789171548457858698223816877140205950799184329212374440488985007416580683762341626617119674596550987412041165122679101239665542957459796144669011175561062808419996201823754903232422954426771363068147422435242948409083966143843168142285945721277625145274962833387661946815026914225873675412692720624190568128482582920431892992670663303864233575252830751277936066220492652833272804685066995331110731984612926315817681841834356813323046024794385856926149340825996089972179325807559323492939577522668009383234792903108817390848255533488898077104203343743945631151451503539753354090075976976297757127580716057790152274659421640733345635455872124987240270301227131640389461292765276347696559678304475849602953848151453395094138636451119554798918969977959714530261965443424798198939789537213690711685231053935333051806803470450436456949575493507507575886637579252932794785477899767774968190845197355508211218630287768809742074757959775842336950847890379438019378643256918935139020995264062640689316504441775917833094525784971850053899268146000261113664300367476392344089253508726192342001428628242357647715526137262084165870591767890569999030797659052879553831121754439015178101069000072122413072672996879498580087844538822346512477379272633223814268235456940997553780567167003166082818492075628542594457778479253548502206779026988814952375143432949538379889415388399475103531634227402713231426713165968599807703258103973439624444337729082222950199930975695846081305893729216940666980362967423881239025653808946804228284245086748814488634133276496331234177689421303002668111623261184397814506862189276268244154810751707905919680030356068590282272048319707008753321578301419062370768069914429434912282309455544153902889410197654852328217212282218532685009072823024734520114096773144081284001219110397267217014329591947279904509234222631271474104966098021628517678899822982866298023380645136317387767970390506758254125421079229020137267531818977765597413713279281778350962130517931005948855742427440272731429576735160474510381635140593429704181729333637658337812944064679939886457484593673967824531842672522343488751659538776977121919229294462675131553292978869680330735891418307046709947892798394005685726824054422384950141212442778364243742366977923744311927864954205033248472001404111706077183565864657002316160421701989384371015923310275934910723308290033612647454703575456338184715249244455853173906014252814066554761388886391699364543762202445283431915371816414977800560554020845493379201210637809636174829397671558941936347061073028903188854663266881691367260012178787780762662810880497396876553714599934993695002992250728914205973050358453938728726576469483158154841346050870890740578888244457402358080708427493800909763047895157670583680472875990588957991281438610043696834291317298619514049709223515580193374886461267101884343891139245803176825288432145957420791859986970917542559972120982337921675685394077378921769480705036048253064008830202199677694735813097390827751361254804628163016480774421401475087764038369965699593818185201820764256711975864559430150183089123773267232342048629560961467675186206400617347335027815145295758713588459307147800729295051173697205647532779043762723565402106934028495336916860614046505193643577153877706909122002671382886733007963559771003703265362349858360895792998989233320629024887458037588874096180410648326210957343352632778304459746825734072082605162493187633807835197387137876993042153973323488414848464597079813200336123579071294384908164575274828147503984829301507628080559518684373405330314747493230177703818596828843901702072737097798805966807622876403551609652023376642178044448174306445588551548980244855646141390928718415200366660913717580686569566286506301470945252949266803878424781102278424651183086145576936376758002284771441954714495986514885632620694699481139616551714653819768378622944654130552739598966136489455809393017199951756950027411343397296127155673320526568876552319958534107651019350172891156227129586940725332946025098292582742525584548683459893669168667022845798295888449189090309483007497205779718238959624454831653542853918966653210743836717120726801969761331026238731806216783141255499068407521663968051241401038498809611292708527042494346758896192690745045697982039595150889576919603550768392755262646690465769643124772609408297310956185332597472004904863403355786213847468529007196249836001509778781668899552647152936958222608649383901023928477765592036862669753500973076186084403072995549666894404576300200507976753247374334435197692038196401759627821993370476535335640590256501457570663349621655599433878904608383659842659847097718182023278162084654897644967924177689717273938834847270047494348390602136196094527011196285389011084729665260634316560658884029308977485095615514100440893013217471496626564513426963955400007467407129179915494263326005769130513705853307254233217037030383913877793326002937174435145262893272089105518888157946903490826300984767637612200518250076989159497055056839880353172076520523458936817060394195318692981657504795306179512081575012931487013299598733179201361613660355156455006688200751732745295156282036869983371724366088831640228886142480804604390601071642202258019945517374004392057873141658910157482146560233964604420934499996784543337816466497537107427526258049696345744353038584731965187954619797917659769134007004648508896646461947334157949297733739954458235055277153566949439301626998749837454222679474328444463610759167781313774618100570700167209360446517536606377349163836205162536368083923960491325221601078294376454373839179547522289167340749370862783221540665066408332786195191589353379592972111674540544775771220193044295317256573054673017762538768554218208085319623865117222241181017700452865049588765772745844882372552777341298213780446305752319607900689993847577823717112198393635252494168819930610843118875132168618520463900868917272843312762803817924861993827452734202660487414488360529422407056095742751950502057520953771625093585965765723061012215893472261449375235700841604118026312430658633151515667477292082443153681088409070207481470142322295489080798846630075762500414366373770304182938284506608479609345186147947337720840042324810075747881440910299859881630488969758771117212030151257545645858774215893768346897925720259798196976788601957503112472946371748202400584892349728639945431439469177927583844131827640504657267377891837905106642651402161991209045303873809107356370702041459868118941811102813589638218720098037447529776572407139534985130973708344829706724757969868975349710420165650169766649143223588190800315072044059539648784865778062433813791297010471828859000068857854691804004018591152707175000958804372609563238816520542834635730815803763177554500486472203434748748546908220902527110940138370909331577151171565072783029389882336534397381241635055386940384636752269880322141304888184679804633952119519308888353134786810149767754652675855535814389772379549773856719227602226646842945242059772362790932486929586929482490410335192965513257953034814126003983793540797951808202218001515973846937546835562132600372615618428643507165972238808915520768035266597245464404519149930686862587445244205318193135221592222005125716891091910944330272762115116814546111844227525580940651967210809510552198250636133491210655636881786699967565893973680368750366737832421257039041520179874937102753936997862203032314159612974391354602830156642538271117221602979531000524243375721770048325315631287145489905370722364390592750763900223508515659998534391284739717572865092589865974967899055152772093114368536701227825019477215323018459868342264845416141782821758637408588845906003724000619818634315173388188241761291042948472658973600278433145472396901160494998151513293589476102545568137292748650210264696873642853579077887406028414795155873929073723007000400792746774221353977294837913269776469601872365702918937163668872354745016290725129250344407320406374750940230207790430697005105537017802827980018078341008371462425009651915649106506630327442852336100086874728353699882337640573669960447837799347420868664565430623501116579035078137090399265846409162386878862574289374376619789290517970393033767125643178233800910978887136055791126900516683263874617316121300733992332972342462296078924839902674038262068520180254943555041189249039916277724806944321634038519378167589612201048400128068389789160458717571369307482342093659753457654114802765471767091966909426650076771499114370287105275504386750856364680705181968183851985347349839161912061256519556863936185780258695891303807304018730923024749795793763458000075351317260841676131246436004470310328072863649851056768501440002714195743077302143781246088554387091849623901537141087612703989849942024611242867521500977497894378255129308324690285824520769660680257161418790403888266568867391481748196043059081563511555591515507736437811685799473902235679071191632584665338179540456931041823511456110854580150835436591247800658089073486854033741061262206537544353232821487317211266435549342061794411386533824774324996286099311653120935361126559005511787495561348750054808173511778254089699367592173019603304860459327014007463051639201736037002496133751796051293444789509710837828790072710540530278777666704986621313205976684271833695604271452595693032748318875601917347994879829524571644706163893969068932280287681430090639971840131285921084757281146638339292852915601084937503813921926155963768521102407992114164989312703307699144100531921122501730416914877451162081301322278670204591264926731117117862933956541823121277851252940909256971909476331341595437784702867566840274356054405341222638334619630766481238750285755053116149825245565454815079982692417187723910780275093834192485514708369601917743939198226862962189568531040469919126909800657645925622812292849005553921368469640596025461155076567389022438623542375056533846344655706766276924878746957658450289536433110465161360074855246066662084977424756822390771158238235765829748053782149126946436266400982772049419860577724964102814761980279631382648702999783136593469508830047371143802027218816499113459164008132692950925750612612283325656288017548906582424577374937989677229012933487147895565456957050002758242498515335259737915344579574032081321379843401909462519768490420252150400241044220635005318274485326041097153916848930971450969857869542260715518372498968057728992260385821033444969605254863589740662464164182038986520094656738090411952106272194459019414199223897588165219860485962558460919096530926416521454306061485100292879506503313566036056728124406378245723730745102140723741208991887798676501459665632092353487444210601459550036549403212893177122703655914017110516425869244892360226180122807952010973435643200525482848788992375399659184870614587462861244926561487056272278921924656794734753010605752213938196019084873765968259775145347559722448872133427552440890558651407819717704965849970153897761902721689652372641746337241035210566253171449318578583036854971316235260619688794942311555822785794134319183256658144898397403725823172136451994430314354145750372912577421764101791099108997347632101240440303757976672536491867704468149638684996605488477379224484127274413433065865320592311501282282081621334625026905675305298762828089559876544261440287535381593919893830021527946800167087733413099073130810675272897054538676925375377019005996266202921599811085850990982772585020982384163464733457204701970923392566047572843501458409456394488370463914085983462600847720956269928299506916861701023730719897849391599848216362159770038795534825535750310403095548663429260069698663080731251744182549926688550649270242693484491334815696446299309919915829342898597382001753756545465551934162876798023467633038196290663569444073643986996248837684086386240895669651941679480196057816988152010290037418756738472658836200037269685678024512576665495655291879739690148586365008813820741304231763191625399458136408354441419630043317978811038903789764085786155635543788379890934567854911283819553640789017874284161475174746065624875922056913240760571943385745041643591654135216885407451748208441100035040237862302312108120478735819186174575577387907146221577328057688549765912867135677624292405030007461001156709677144036137996225168966273361635886368767674343158232539262847874989951147977324492877204565406954478708007837443021292837067647478304377304351434403114818305897257911899988257443796733235885237793274404984080317220996356673925724945985633053632109007246118197624473949625661998586453353691909088683902039457480412796157476790667349055293050762920508846668768777267924337740641649686226978978457584292327287661958637900429000495326429973764675979463346134266076891021010156258694966038043993521296527203678323388487272388985574241891483114541885751673258742691232506968722679987602741550846260814554651608650665806058218145030650776450441826477810414428419445443824634200350537884969929474427536606379959436954169274041926867762756975010957623086855032884461652264439702933258420244965607451274685830661241604855310102833971460594375309633600182899305734307655704520181346956257779567143815496822025365936798552359423826926005560933691599980868707725137384272763606358191821150468750742111179699307516490678750241208405770512257484014692887945606604556495741167227667193021161244636570406529129594857518413112824964959337318606405081120738602364337686440368166077741181099275349937579923771253433966901127223169019119602281687744458014734290774991046342692253382872104073899507893980211012968932360645317493640444582182660009816008870819344810684342886678638869359561316321910548121073809450140015030595910400088410351063296011017685530431691312983885002049516051865820050383390349905429016908921412215475628192545003700864958189974142251018894353796491936553882022968217420231688529980047915803879037882740297940752301000120005377998394777150260517560455080919901295410717049718784451215837314877672960933568185949138323126374749093739039010831349235362710723072424970217733325255854786082854443864540139804190169804020470296420479069376257582548970104622302031828829714255247506198090802606874455007513282195321951982883157578495675736697359043774184989978531481046644648803969834420567219338563493138373904021272792992181619597349817435517069633544037102798281783716353379173712701182459182636395718940929048385921425277567083988357798605306075788576493273412486097193723455332403508231700542253444087719027939659701562540600538294961673398546925703378722823318939856161281422259516539764034215682048747941844780815392269089604461463975525413491155870008272136702718271481582228919657714350069396306064295883904612200296534635678169627753132402180646461003465131520605961070157021972431865927227731209745361429338393233043157138474337117917767620274347089160255409427697950171814181316175244353117852265072470968360737190583492985968870771392956133699751355409959217959060215069269459872807696926940949429487136204406015579018528079262540659056323254128979624419883402717566620122674085318184453587632673791840880217348916944062184627418168412023242517302236955794532822849093580845692671223606317114552224309988700298690684487540655557189366722411139463682782778201464341636176226153856571473763969830521961292270068118991919360436134271165881961558971857047902157584356849842598531902059511319444033359858743028725285811499629748003330291755163473785443328372110920822105000459070316068907619261902548606944598301796666633814208525018662474119437844928608244084743928993434262639199169876640229218837985520716075720591634993753124638491360323531941132845638651463263333710854455166182511300148596151021181358878948377445547777613238623366192227064466200361687065991695453933568080637898578898321661493473716106936821333719156973650789797962542245627045630144367590466510764744830416098721307441900802191419336847495129876670584062333821334888937587227574698437193750583113630290382947033261704203845506856186838729157702765742899475554613327232333104047854712946052884262000157688377226698380879765029110544232050161681084347410653990879915431751568966445421149805688399383949633839065638129910129911238928868261742985239517878459583998056747032157282719808977312922927487076321796564247398454501769898029114228496345500782759342325792779197849243625588251845513548456851443743153037166484144969499624844016973979394431594974820609331352507154695059724349859614332345943436851943517864362332874407209769472698190839923337577163811633715772973525728007535173996256591545849370959389151530868513035421489768557332596269407625263913733260296089537906087719621316758288780137512586127746049576011174326160256822554328847787837006868637491653180263152837693848929321627816349786854873797565732868340946926888364333861253063085921651887781427937121371052915459140273912368870854128637173820147738674118142774291886597358040950416858333002791192976857119909374513645484050102508786245031706555174234295225446534094625854094112447169757001684743212059972546546932638260006766914129865136240711957756670277569821238950977567023008935004112952929399641627958394968027696519001744674691757056850838373627543736021936932297107775676785174072447520706391056217221384377652645476346671347555084035500697298157997084956155032456184699419103140698541878232955345445164656979617294995850608186708094475351035688709917215998854836250341914638354949472630668583411637889740863873342571802745322926835773089258042392347640997909777065098638716121715012665446423852719667390317592399001653554694743579623386185716044470276870830291649252908768331169743175106057775992781669709283415685599256812342450629138625362572514754205054735867929532730562004690911324214250161180639543256791253093828755875883808573084617619494960671187037320386769705959829098669239241315835567897023732772301676867281156757552319735336227630225788053023792914508504748372752539242215387007269328195462428167654003487622281179678474717565540505760011081475100710015076159551934065965495792767603099333496024446970870752470948874066617623774099214184361127634285401366989568905306498664921738468264248840144951845252649743594941967894638421242379004980268382181723971940691807197081380012597625024480772108500594225155390331192690515535095788692928693266868654815091092567168494453413143702682468539241930254904560894918427355366049522809305078488421072888124598032622209899437889820193525182952539070000314400110548476663787480439099078505412816032886511123299497668874586826646365925533074466545115828715519690036017558281805281878329204248490717312158932624455264839855394882338439507940526863827995475852323735823868464831766872447369050379115952702630153990426856757999453898438876224306995781859236011521283165222716011878579341046169868352842243675298758180748275252948625408627891994650092106171106377663000438528331666496634391636842218566695633684301872508155335660846300165414353535902827490266702123847357465160587187794014844585079195706494710513034169003779191310985940476596244773977618833582746694242436524785971349433956080086671243582750662675693750213720730703847260444074210732370429113739537805096801809780332192774136366267940593959156644105322298781858013562806131927376857132846490748921652541442346683951986666033806724184894826133749894181029831624128351799639273206171188681213092035595123474565633334834145081346147906950598800503271845158195869936358864828613941279766718474503149039735327951951246744038845887192032490637531797133417226613818248795280593403670112422357053623627705972752253197290723709788139705933727360424491843572852122087207922199088386488782111289676860341213193818016215799624654709003739418855171687834104305084207089995720483008898141077325025010870828076915346207563489516990158219518896920153010924024419359778491698756607610516815859512871073334130707550348085323179175960079502030147936012609954925425038003722181727815585863753060006495328864183911042732693356205018089991334820340297973686845175617112752404922769877128766205448491170913181280402479545598413066522390861805425903709077224106853612456168981287301682830131158840476762418714116014079325371097632622362586705628415908935142669955019456614165271650115156766488704968369632625351236779470275296125746757438981351512491285649640666886419785546989793311399372550701360457859517874136989235843433862569989747142314028774576304478397818003026104557539531291148198495383798496442126096097268334488688693617788111958246876257687955796901231405713019898807599286429302591775364278984163133230270794696447128703484229067720949919141462916324719662379915039353640683758373777571844960695407440287546557426466831615592851643859721351817258974181855752126089926298623493059749159484878146591505033318096952599859194435987116106763656331206494716046588217870362614998305538794936539841759171203189003243897022383323476393108183628393595135024538772447847265542153819717348559697259594382254024084434385903132860600021416061745882790395037028145289954310124113288833820516852482099820002820353650211178005448658798551233224671361861193082061099395351051199408870819186934620524154108055176847104136190175294251366158543633268443968736900986612097306899732396440475320614936912358605483995940698279760945299723241132103861976748623898943377898540201448636101704137156597022725731966837595103343668678972036254637439017756785669797136893196979438793122870889238269635893116614254508421888347005474546437390435811032002761428956093841562241751407946189065648572237357967453099327581726540662011994106063546345980665128233774608107544854646640732129882486807943409734883935076794814916489971587465716036674134680753228726374036990867230521901598851781734361554267642008576125434883483537599361766960784904509298059565436328262869721455947959281238169662956285575556609251512069131710506654499723188953426327822724787613239317796595905811855475864270169894429730165053984373142418345369890838646923162741101376398994769126914227303473772370399771903724131671605574339677342484217801871817291906489023394606837000179280183436299200464808222285726997900484418121324431805619444155228274230752413431487422021573184643762197156046422930692359364575545563476478208737815537215074764990942991635908288908896171506638118723525988545231977312864990669049543335421114474984872037883303176524340938634458168585732740460976851203156606392712409286269716622638662689100777675946029418332341527965416536307201699521664754517725512697194369373735417344315720899854048732251683553562775931762074815333626260668482783425539049954129346222902807458050010364413470263487556872684194854669103000351451637356262408410238919376482272580826375817427986259369751936020633567087532164887058214088671297523325366815247397916749602223027130431795326391220190445915784721019613840166986950695979445896886978191438445605099893869226832337175935220091072693166114011040161039999408164795128291661017528817810394100839535574087397638755494435296920196006273063900385304934766100280002996984442066252277038859282695271766518562411697694979105170920724181144189031797478260580569235363475709071244062083618312166491634220463909492236127604977376785362734820518452397061008198322002190170791